- source: https://openapi.tools/ name: Alphadoc category: - Documentation - Description Validators link: https://alphadoc.io language: SaaS source_description: >- Alphadoc is a full featured developer experience platform. API components with granular parameter control and diagrams generated from your OpenAPI. Not only the reference, but the entire set of tutorials and guides automatically updates when the underlying API updates. v2: true v3: true v3_1: true id: 0143b34d223b2f7897e29fce204e72d9 foundInMaster: true - source: https://openapi.tools/ name: Docuo category: Documentation link: https://docuo.spreading.ai/?via=ot repository: https://github.com/spreadingai language: SaaS source_description: >- Docuo is a lightweight platform that transforms your static contents into a modern developer hub, API reference, product guides, and more. v2: false v3: true v3_1: true id: db7874d4a4e4dde0f580b7188c2f60d4 foundInMaster: true - source: https://openapi.tools/ name: API Insights category: - Monitoring - Description Validators link: https://apiinsights.io/ repository: https://github.com/treblle source_description: >- API Insights is a web application and native Mac application that allows you get real time insights into your API using your OpenAPI specification. Think of it like a static analysis tool for your API, using your OpenAPI Specification file. v2: false v3: true id: 7d6c99eb736ef40793d4004ecfbb1661 foundInMaster: true - source: https://openapi.tools/ name: APIMatic Developer Experience Portal category: Documentation link: https://www.apimatic.io/product/publish language: SaaS source_description: >- Customizable developer portals packed with language specific documentation, client libraries, code samples, an API console and much more. v2: true v3: true v3_1: true id: fe6f1a80f0b8b8c43c2c05947b9d6f7a foundInMaster: true - source: https://openapi.tools/ name: APIMatic Transformer category: Converters language: SaaS source_description: >- Transform API Descriptions to and from RAML, API Blueprint, OAI v2/v3, WSDL, etc. link: https://www.apimatic.io/transformer v2: true v3: true v3_1: true id: e455b137b6388767a0bd96244bddcf3b foundInMaster: true - source: https://openapi.tools/ name: Apitally category: Monitoring language: SaaS source_description: >- Simple REST API monitoring tool that helps engineering and product teams understand their APIs. Tracks usage, errors, response times and more using middleware for Python and Node.js frameworks. Also offers uptime monitoring and logging of individual requests. link: https://apitally.io repository: https://github.com/apitally v2: true v3: true v3_1: true id: 93c8a884c50e0448d41e99e5d1de9b1c foundInMaster: true - source: https://openapi.tools/ name: Assertible category: Testing language: SaaS link: https://assertible.com repository: null source_description: >- Import an OpenAPI specification into Assertible to generate tests that validate JSON Schema responses and status codes on every endpoint. v2: true v3: true foundInMaster: true id: da167de4273ba1c7d1a094b9939f3f69 - source: https://openapi.tools/ name: avantation category: - Converters - Testing language: TypeScript link: https://www.avantation.in/ repository: https://github.com/anbuksv/avantation source_description: Generate OpenAPI 3.x specification from HAR. v2: false v3: true repositoryMetadata: base64Readme: >- PGgyIGFsaWduPSJjZW50ZXIiPkF2YW50YXRpb248L2gyPgo8cCBhbGlnbj0iY2VudGVyIj4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KPCEtLSAgPGEgaHJlZj0iaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9hdmFudGF0aW9uIj4KICAgIDxpbWcgYWx0PSJCZXRhIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLfCfmoBiZXRhLWltcG9ydGFudC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpIj4KICA8L2E+Ci0tPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvYXZhbnRhdGlvbiI+CiAgICA8aW1nIGFsdD0iVmVyc2lvbiIgdGFyZ2V0PSJfYmxhbmsiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9hdmFudGF0aW9uLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvYXZhbnRhdGlvbiI+CiAgICA8aW1nIGFsdD0iZG93bmxvYWRzIiB0YXJnZXQ9Il9ibGFuayIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9hdmFudGF0aW9uLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSI+CiAgPC9hPgo8IS0tICA8YSBocmVmPSIjQ29kZSBTdHlsZSI+CiAgICA8aW1nIGFsdD0iY29kZSBzdHlsZTogYXZhbnRhdGlvbiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvZGVfc3R5bGUtYXZhbnRhdGlvbi1mZjY5YjQuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+Ci0tPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvYXZhbnRhdGlvbiI+CiAgICA8aW1nIGFsdD0ibGljZW5zZSIgdGFyZ2V0PSJfYmxhbmsiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9hdmFudGF0aW9uLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5tZS9hbmJ1a3N2Ij4KICAgIDxpbWcgYWx0PSJkb25hdGlvbiIgdGFyZ2V0PSJfYmxhbmsiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb25hdGlvbi1wYXlwYWwtYmx1ZXZpb2xldC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUiPgogIDwvYT4KPC9wPgoKYXZhbnRhdGlvbiBpcyBhIHRvb2wgdG8gZ2VuZXJhdGUgYW4gT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbiBmcm9tIEhUVFAgQXJjaGl2ZSBmb3JtYXQoSEFSKS4KCmF2YW50YXRpb24gaXMgd3JpdHRlbiBhbmQgbWFpbnRhaW5lZCBieSBBbmJhcmFzYW4gSyAoYW5idWtzdkBnbWFpbC5jb20pLgoKPHVsPgogIDxsaT4KICAgUHJvamVjdCBob21lIHBhZ2U6IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3d3dy5hdmFudGF0aW9uLmluLyI+aHR0cHM6Ly93d3cuYXZhbnRhdGlvbi5pbi8gPC9hPgogIDwvbGk+CiAgPGxpPgogICBDb2RlIGhvbWUgcGFnZTogPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbmJ1a3N2L2F2YW50YXRpb24iPmh0dHBzOi8vZ2l0aHViLmNvbS9hbmJ1a3N2L2F2YW50YXRpb248L2E+CiAgPC9saT4KICA8bGk+CiAgIElzc3VlIHRyYWNrZXI6IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW5idWtzdi9hdmFudGF0aW9uL2lzc3VlcyI+aHR0cHM6Ly9naXRodWIuY29tL2FuYnVrc3YvYXZhbnRhdGlvbi9pc3N1ZXM8L2E+CiAgPC9saT4KPC91bD4KCiMjIENvbnRyaWJ1dGluZwoKQnVnIHJlcG9ydHMgYW5kIGNvZGUgYW5kIGRvY3VtZW50YXRpb24gcGF0Y2hlcyBhcmUgd2VsY29tZS4KCiMjIEluc3RhbGwKCkRpcmVjdCBkb3dubG9hZHMgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBbcmVsZWFzZSBwYWdlXShodHRwczovL2dpdGh1Yi5jb20vYW5idWtzdi9hdmFudGF0aW9uL3JlbGVhc2VzL2xhdGVzdCkuCgpJZiB5b3UgaGF2ZSBOb2RlIGluc3RhbGxlZCBvbiB5b3VyIGNvbXB1dGVyIGp1c3QgcnVuIG5wbSBpbnN0YWxsCgpgYGAKbnBtIGluc3RhbGwgLWcgYXZhbnRhdGlvbgpgYGAKCiMjIEZlYXR1cmVzCgotICAgSFRUUCBzYW1wbGUgY29kZSBnZW5lcmF0aW9uCi0gICBEeW5hbWljIHJvdXRlIHBhdGggY29udmVyc2lvbgotICAgU2NoZW1hIGdlbmVyYXRpb24KLSAgIFN1cHBvcnRzIGpzb24veWFtbCBvdXRwdXQgZm9ybWF0cwotICAgSldUIGF1dGhlbnRpY2F0aW9uIGhlYWRlciBtYXBwaW5nCi0gICBTdGF0aWMtVUkgZ2VuZXJhdGlvbgoKIyMgVXNhZ2UKCmBgYHNoLXNlc3Npb24KQnVpbGQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZyb20gSEFSLgoKVVNBR0UKICAkIGF2YW50YXRpb24gSEFSCgpBUkdVTUVOVFMKICBIQVIgIGh0dHAgYXJjaGl2ZShoYXIpIHBhdGgKCk9QVElPTlMKICAtYiwgLS1iYXNlLXBhdGg9YmFzZS1wYXRoICAgICAgICAgICAgICAgIFNlcGFyYXRlIHRoZSBjb21tb24gcGF0aCBhcyBiYXNlIHBhdGggZnJvbSBIVFRQIHJlcXVlc3RzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhhbXBsZTpbJ2FwaS92MSddCgogIC1oLCAtLWhvc3Q9aG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyIHRoZSBodHRwIHJlcXVlc3QgZnJvbSBIQVIgYW5kIHVzZSBpdCBhcyBzZXJ2ZXIgdXJsIGluIG91dHB1dC4KCiAgLWosIC0tanNvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZSBvdXRwdXQgcmVzdWx0IGluIEpTT04gZm9ybWF0LgoKICAtbywgLS1vdXQ9b3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0OiAuL29wZW5hcGkueWFtbF0gV3JpdGUgb3V0cHV0IHJlc3VsdCBhdCB0aGlzIERFU1QgbG9jYXRpb24uCgogIC1yLCAtLXBhdGgtcGFyYW0tcmVnZXg9cGF0aC1wYXJhbS1yZWdleCAgW2RlZmF1bHQ6IF4oWzAtOV18Wy0kQCF+JV4qKClfK10pKyRdIENvbnZlcnQgUmVnZXggbWF0Y2hpbmcgcGFyYW1zIGludG8gZHluYW1pYyBwYXRoCgogIC1zLCAtLXNlY3VyaXR5LWhlYWRlcnM9c2VjdXJpdHktaGVhZGVycyAgW2RlZmF1bHQ6IHt9XSBNYXAgbWF0Y2hpbmcgSFRUUCBoZWFkZXJzIGludG8gc2VjdXJpdHkgaGVhZGVycyBvbiByZXF1ZXN0LgoKICAtdCwgLS10ZW1wbGF0ZT10ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIFRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHRlbXBsYXRlIHBhc3MgdGhlIHlvdXIgdGVtcGxhdGUgZmlsZSBsb2NhdGlvbi4KCiAgLS1kaXNhYmxlLXRhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWFibGUgZW5kIHBvaW50cyBncm91cGluZyBiYXNlZCBvbiByb3V0ZSBwYXRoIGluIEhBUgoKICAtLWh0dHAtc25pcHBldCAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlIEhUVFAgc21hcGxlIGNvZGUgc25pcHBldCBmb3IgcmVxdWVzdCBhbmQgYXBwZW5kIGl0IGFzICd4LWNvZGUtc2FtcGxlJyB0byBPcGVuQVBJIHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC4KCmBgYAoKIyMgRGVtbwoKIyMjIEV4aXN0aW5nIFByb2plY3RzCgohW0V4aXN0aW5nIFByb2plY3QgRGVtb10oZGVtby9FeGlzdGluZ19Qcm9qZWN0X0RlbW8uZ2lmKQoKKipUb29scyoqIDogW0ZpcmVmb3hdKGh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2VuLVVTL2ZpcmVmb3gvbmV3LykgfCBbQ2hyb21lXShodHRwczovL3d3dy5nb29nbGUuY29tL2Nocm9tZS8pIHwgW1NhZmFyaV0oaHR0cHM6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8pIHwgW0NoYXJsZXMgUHJveHldKGh0dHBzOi8vd3d3LmNoYXJsZXNwcm94eS5jb20vKQoKIyMjIE5ldyBQcm9qZWN0cwoKIVtOZXcgUHJvamVjdCBEZW1vXShkZW1vL05ld19Qcm9qZWN0X0RlbW8uZ2lmKQoKKipUb29scyoqIDogW0luc29tbmlhXShodHRwczovL2luc29tbmlhLnJlc3QvZG93bmxvYWQvKQoKIyMgVXNlciBJbnRlcmZhY2Uncwo8cD4KPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vZGVtby5hdmFudGF0aW9uLmluL3VpL3N3YWdnZXIiPgogIDxpbWcgYWx0PSJTd2FnZ2VyLVVJIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLVN3YWdnZXItZ3JlZW4uc3ZnP3N0eWxlPXNvY2lhbCZsb2dvPWRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBZ0NBWUFBQUJ6ZW5yMEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUJpSkpSRUZVV0lXdFYxMXNGTmNWL3M2ZDJkMloyY1hlWGV3MVJpNTQ3WlFDVHRMS1lXMnNvaVRFWUtBLzBGWWlQMEloU1V2NjBGYmxJUStvcElSVVNhczJVbHBWYlJWVmtTTFVKcVVQTFpIVHB0U0FpOVZHbUpnUVFpS2JDR3pzeEFhWE5YaTlYdS9PN083TVBYM1kydkptQit3bCtaNUcrczY5NTd2M25uUG1ITUppVVgrL0ZvbDR0aEhUUXd4YUJlSnFBWXBBTUxPRE9JT3VFK0ZEbHZoci9IcjJUWXowV0l2WmxoWXlXTkxTdmxTSCtyd2crUml6MEZWTk9zdlg1aFFqNk1BZmxwQU9ZQ1lGMHBNS3JsN3dTaWNyQklndFNIbzFiWXY5TStlT1R0eW1nSjFLcEdYNktTSitCa3orbGVzc3JHblBvR0c5Q2RYanZzek9BWmY3TkF3Y00vRHh1eHFJcE1sTVA3MW01SDZCbmg1NzBRTENyZHNxZkdUL1Ewcng1V2pNUk52dUZLcWlydXR2aXZpUWl0T3ZWbURrakFabVBwVzFNbDlMZnZCV1lrRUJvWHMycmZDcTRxU2ljblRianhMVTBKSXR5L0VuY2ZFdERjZGZERW1aeHhpejNIanR6SW5MTnhWUWVkZUdrR1lZWjQyZ1UvK041eWVwYW1WNXA3NFpib3lvZVAxQW1NMkVNcFoyY3MycHN6M1haemt4WjlYVTVOVUNlaGNSMTI4L21Qak1uQVBBMG5vYjJ3OG1DSUxyZE9IclFsdWJQc3Nwc3grUit1YW5pV2xYK3crbktCb3J2bllwR2ZGQkx6SlRBdjZ3dkMwUi9yQkVJQ3hwdUUrckRVaXZrcjQ2MUQwbm9LSnRTOWdMZVNRYXN6d2J2cDBxV2pnNXB1SzE3MGZ3WG1jQU56NVMwZFJoM3RMUjRiMVY2SG1wRWgrZDFiQ2lPUXVmd1hOYzVJNDhybDN5WU9xcUd2UFgxYitjdmpLY0ZnQ2cyM2dHQk8yKzd5VkxOano3bHdETUtRVU42MDJzM1p4WjhLUjNiYzFnMmVvYy92dWhGMzEvRHBUdzl6NlpCQW4yUWlyUEFZQUFkaW9RdkdkdGgwa1YxYVhYbXhndHZOSzkzMDB1ZUhvQXVITmJCZy84WUFvQUVML2tLZUdEeXgyczdUQ0pCQjVGVTVOWDFNU203Z2VUdjdITnZYS2FxVUtjK3Z6c3lydkJDQlVPa2pQZEMxYmplZ3RnMHFxTnVnY0VpSFlvSHNsMWQ3c0x5R1VLQWhUUDRnWG9TeGhDWWRoWmR3RjFYN1NnZUZnU1lZY0FjR2QxWTU3Y3lxdWRaNWhUQ253QkNkVzdhUDhBZ0VDVmcweENnZU9TemFxSFVOMllGOFJZTFVDbzk0ZmNVMnVvdDVDdXRXdHk1WGtIRVBsOEhpd0pGLyt0dS9KRzBBRUR0WUlsclRSQ1RvbkJrZjFoZEwwUWhoNTBzT0U3MDJCbUhONWJoZDgvdkF5cDZ3cnNQT1BRbm1xODhuZ05jaGJCbWlHOHZLc0doL1pFSUNXamJmYzA5S0NENDc4TTRjalQ0Wkw5L1NFSHBQRG5oQkJzQzZXRW40TlFHSXJLY096Q2IxZW9ERVdSWUZ2QXlST0FBcCszQktSRDBKZElFQUcyUmVCYjFDeFNDazlPeTFvM2p6UzBXU3UvdW4rcXlNQ2FJWngvdzQrMy8xU0JhTXpFMXcrVy9NaHVpZGNQaERGNlRrUHp0MUpvZldRR0hyMDRpTi84V1JDRHAvUkxRcklZVFUrV1hvRVdZS3g3Y0FZa0dLTWYrTXB5RGdEakExNlFZTFR1U3BVNEI0RDBwQW93eGdXWWh5YUd2RktXaGdFVUZkQXFKR3hMSUxkd0RTcUNuUlh3K2hrZUYrMTJuakV4cERJSUZ3UURSNTA4aWRIejdua21sSUw2dkNsY2VUZmsvMStBUEQ3M0lCaDdYNE9URjhRU25XSkNUYjNCNFB4c3luMFNzeFhRbWxtd2ZaeERObE93MVNyY0JWdytyUUhFMW9SNXBWdWd0OWNFMDk4R2pobWNIQytOaGNnZGhScHc4bmRCREhTN2k1eVAvbU02VHI0VUJBQ0VWNVJXb2VTNGd2NHVuVm5paitqdnp3a0FZQWY3SEFkTzkyOHJTeFpzZUdJYURXMG1ybDMwNHNJSll4RUNEQXlmMXFBSEhYeHArMHdKMy8yYlNyQ2tIR1h4WTJCZVMxWVQyL3h6a05qWHZqZUJwczFsUnR3OHhJZFV5RHdoc2lvSElZcWZyZis0anU1Zmg4REFDL0crcm4zQXZJNG9iWHpoUHdGRGZuT2t6MWNkaldYcFUzVStWUkpFeGM3amd4NzgvYmtRczZSemNYVjZOOGJHYkdCK1R6aDROSnV6NVZla1E2bk9aOE44WTBTOUxRRnVtQmhXMGZsc21DRnB6SlRaTGVqdG5idmlvcWl6eGk4bkEzV05mYllwZGc2Y01KUmduVTFMWFFLcEhBeWUwdEI1WUNuYkpvMHl5NDJUNy96cnluemVOYmNpelZ2dmhpci9TYURhYUl1SjFsMHBSQnJMSDB6ZWZtMEpodnYwOGdhVE9SR3Q3VFZnNVE4RTZnQ0ErcGlGMWUwWk5MU1dONW81TEg0eVlXUmZMR3MwS3hMU3Nta0xRZndLb0RVQW9QcWtYTjZVRTBiUWdWNVpDRlF6S1pCT0tMZzY4SmtPcDhWMk5lczZtcVRBUm1MY0IxQ1V3RlVnMUpLQS9EVGorZjhBaThPckdZdEY5aFFBQUFBQVNVVk9SSzVDWUlJPSIvPgo8L2E+CjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2RlbW8uYXZhbnRhdGlvbi5pbi91aSI+CiAgPGltZyBhbHQ9IlJlZG9jLVVJIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLVJlZG9jLWdyZWVuLnN2Zz9zdHlsZT1zb2NpYWwmbG9nbz1kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQU1BQUFBcDRYaURBQUFDVWxCTVZFVk1hWEVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0VUJRdFVCUXRVQlF0Vmx1SW9aQUFBQXhYUlNUbE1BQnYzSDZJNEI1Q01vRGJZWDF3V0hvdnNJRWxiK0Z2cFFENVg1QkFjZUFnTWtrTzMzMEl2czVWLzQ5cmNVM2c3WUtZaks5UE9HMGgzZ3k5UkpUQWtsRVBHVXpTWVkzd3JhNWt0ek1hUEZNbDdDeWRFTDNibEc0clIrc1JYVGpZRmpRWEk5ZG9Pb3RmSllJUkVaR3lDOU83NXV3YVR2VG5TS2NUNGZ3TU92cmtTbi9EeFVWOWFQNTJ4UlJVUEVrNXRyeG94SDYvV1lhVUtGck9sNkw3OFROMXF3bnB5Z3ZFQXF5RlUwU0lCOVlyb2NkV0NkcHU2cTFWMDIyekN6dUxzdVUwOU5JZ1hiRFVvQUFBTC9TVVJCVkVqSDNaYjFReUpCR0laWEVGQlBPUkVCUlVVc0xPenU3dTQreis3dU9sdXZ1N3U3dS92OXYyN1FrL1BjR2Y4QW45OTRkNStkblpudm00WGpkaG8yVXk1bVZDTGxKblJER2x3cG9aUHVVUlYrU2s1UkxJNWdHM3lGNS96NHptRlg2L0l5QjNKWk1hRGJJekp5Vkgyc3BpNFVrQlZWT1BNbHNZM21ZSjRuRUJnbi92K2RsZWRGVWNEcFJodjZsSnFxWkRCZDNobzdCNTBOaFhzOTNlRVNXMEtSOVpnWG0zaEw0SjdqekZpN01WOTR1UER6YkFrOFl4azc1Q1JTSU5tUm54ZUdZYWFXNFhUbnc3T2Y0MUtyUmVQaHU5Y0k5aWJUa0tvaE9NNnFoSWUrVUlzNTEwMGJNM0tkeE9abE9DRm5LQUVEeU5Sd3o5SzlOaW9nYTZqVGtKL0VtUXJXTURsd3NPT2tHbVBWdWF6dmZVTVlMckNVL25ZOG9jVEtPdWlkR0lyR0gzZElDWWdEbEpZYktFazlTMnRRY28yaHlEMXdreXp6WXY2S2xSRWRlZjR0V0ZreUZQdG90RWtOVTlyRWUzTHpiYmJpRjRHTFdvNzd2WnBuYmVTRGxoUG5ZWVdsSkhoQnZWN2QveUMvNHU4aTJwNmhaUHRna0JMMytxTlZ5MUIwYUo4a0ZiTmsrNWZsSDFPR2VFbUZSb2J4SWdiRmNrNCtBOEVHMkJkUEdtQWVubzhZeXBnQWx6bXVhM3BCSnBPcFpBWUU3MGhkem8xZ2x0Rmx1ZjdJTkRTTVdleW8zYy9zWDNhRXVCNnlqTThSRmtjMzByNWlZWUxTUnVNQ0ROTUhTWnRYWURhUkY4Yy9kVWZFZmFyeFdhK0FNSUVYOTZoOTRIK1Bjcjg0c2prZEVIN2ZtbmZkQ0ZFZ2Ftdm5POHJUekVkZEF3WEF0OXdNaXcwQ0V1V1dDWWVxaFQ1QVNzTVdROXRjRXJqZmNGaENZSlV2TlBJZ3hjUEt5NTJrV2FKZVh1MFdiM2NtUTFWZnlwOUZvYjRveGsxZ3VCenpaZGRteWtPOFZFRFNjSzZZNTVpVUtnc085UG1TbDU3VVNrMk1TSjNzVXp0YTNZQW9iMGZxRWx2WVJpdndhWTUzdkRidGMwRFNJTjNoSWwrcmtQbVIvNnlYYjVIMGlsR1RGaUlacHJ0NXNiTzNHeVNMcklQUEdtZ1I4NTBKSCtoWlBXa1dBY2tWZnB6eEJnNGRySk52cndwWFhjbFhUN2QyaG9jSEd6NkVxOG5KZlFxMFpUQ1UyaERXbHJvVk1JZXBOS1Z5YVVqRFVxU2RRZVkwZ3BRNzdpOFM5d2RxcmlDTkRPazFTZ0FBQUFCSlJVNUVya0pnZ2c9PSIgLz4KPC9hPgo8L3A+CgojIEZBUQoKPGgzPkhvdyB0byBnZW5lcmF0ZSBTdGF0aWMtVUk/PC9oMz4KPHA+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICBhdmFudGF0aW9uLXVpIGJhc2ggc2NyaXB0IHdpbGwgaGVscCB5b3UgdG8gYnVpbGQgc3RhdGljIHVzZXIgaW50ZXJmYWNlIGZvciB5b3VyIHNwZWNzIGJ1dCBpdCdzIHJlcXVpcmVkIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3JlZG9jLWNsaSI+cmVkb2MtY2xpLiA8L2E+PC9wPgo= readmeEtag: '"c7318ba2acb80de1609035a12fd652267e9f1c3f"' readmeLastModified: Tue, 22 Jun 2021 06:35:14 GMT repositoryId: 162068352 description: Build OpenAPI3.0 specification from HAR. created: '2018-12-17T03:17:54Z' updated: '2024-07-06T18:36:44Z' language: TypeScript archived: false stars: 82 watchers: 2 forks: 15 owner: anbuksv logo: https://avatars.githubusercontent.com/u/13810481?v=4 license: MIT repoEtag: '"45823ee270af40c1cbbf756c659f2adac0aedc7063a407ef2bba1899ba0aadd0"' repoLastModified: Sat, 06 Jul 2024 18:36:44 GMT foundInMaster: true id: 2b13d07e4984e87f5b5e3506ea242963 v3_1_link: https://github.com/anbuksv/avantation/issues/42 - source: https://openapi.tools/ name: Connexion category: - Server - Server Implementations language: Python link: https://connexion.readthedocs.io/en/latest/ repository: https://github.com/spec-first/connexion source_description: >- Connexion is a modern Python web framework that makes spec-first and api-first development easy. No code is generated. With Connexion, you write your server-side API handlers according to a naming convention, and the Connexion engine, given a spec, invokes your code after any input has been validated. v2: true v3: true repositoryMetadata: base64Readme: >- IDxhIGlkPSJ0b3AiPjwvYT4KIDxwIGFsaWduPSJjZW50ZXIiPgogICAgIDxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3BlYy1maXJzdC9jb25uZXhpb24vbWFpbi9kb2NzL2ltYWdlcy9sb2dvX2Jhbm5lci5zdmciIHdpZHRoPSIxMDAlIi8+CiA8L3A+CiA8cCBhbGlnbj0iY2VudGVyIj4KICAgICA8YSBocmVmPSJodHRwczovL3B5cGkub3JnL3Byb2plY3QvY29ubmV4aW9uIj48aW1nIGFsdD0iY292ZXJhbGxzIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9zdGF0dXMvY29ubmV4aW9uLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvcj1icmlnaHRncmVlbiI+PC9hPgogICAgIDxhIGhyZWY9Imh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9jb25uZXhpb24iPjxpbWcgYWx0PSJQeVBJIHZlcnNpb24iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvY29ubmV4aW9uP2NvbG9yPWJyaWdodGdyZWVuJnN0eWxlPWZsYXQtc3F1YXJlIj48L2E+CiAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NwZWMtZmlyc3QvY29ubmV4aW9uL2Jsb2IvbWFpbi9MSUNFTlNFIj48aW1nIGFsdD0iTGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvbC9jb25uZXhpb24/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3I9YnJpZ2h0Z3JlZW4iPjwvYT4KICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3BlYy1maXJzdC9jb25uZXhpb24vYWN0aW9ucy93b3JrZmxvd3MvcGlwZWxpbmUueW1sIj48aW1nIGFsdD0iR2l0SHViIFdvcmtmbG93IFN0YXR1cyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9hY3Rpb25zL3dvcmtmbG93L3N0YXR1cy9zcGVjLWZpcnN0L2Nvbm5leGlvbi9waXBlbGluZS55bWw/c3R5bGU9ZmxhdC1zcXVhcmUiPjwvYT4KICAgICA8YSBocmVmPSJodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvc3BlYy1maXJzdC9jb25uZXhpb24/YnJhbmNoPW1haW4iPjxpbWcgYWx0PSJDb3ZlcmFsbHMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb3ZlcmFsbHNDb3ZlcmFnZS9naXRodWIvc3BlYy1maXJzdC9jb25uZXhpb24/c3R5bGU9ZmxhdC1zcXVhcmUiPjwvYT4KICAgICA8YnI+CiAgICAgPGJyPgogICAgIDxhIGhyZWY9Imh0dHBzOi8vY29ubmV4aW9uLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS8iPjxzdHJvbmc+RXhwbG9yZSB0aGUgZG9jcyDCuzwvc3Ryb25nPjwvYT4KIDwvcD4KCi0tLQoKQ29ubmV4aW9uIGlzIGEgbW9kZXJuIFB5dGhvbiB3ZWIgZnJhbWV3b3JrIHRoYXQgbWFrZXMgc3BlYy1maXJzdCBhbmQgYXBpLWZpcnN0IGRldmVsb3BtZW50IGVhc3kuCllvdSBkZXNjcmliZSB5b3VyIEFQSSBpbiBhbiBbT3BlbkFQSV1bT3BlbkFQSV0gKG9yIFtTd2FnZ2VyXVtTd2FnZ2VyXSkgc3BlY2lmaWNhdGlvbiB3aXRoIGFzIG11Y2ggCmRldGFpbCBhcyB5b3Ugd2FudCBhbmQgQ29ubmV4aW9uIHdpbGwgZ3VhcmFudGVlIHRoYXQgaXQgd29ya3MgYXMgeW91IHNwZWNpZmllZC4KCkl0IHdvcmtzIGVpdGhlciBzdGFuZGFsb25lLCBvciBpbiBjb21iaW5hdGlvbiB3aXRoIGFueSBBU0dJIG9yIFdTR0ktY29tcGF0aWJsZSBmcmFtZXdvcmshCgo8cCBhbGlnbj0iY2VudGVyIj4KICAgPGJyPgogICA8YSBocmVmPSJodHRwczovL2Nvbm5leGlvbi5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdjMuaHRtbCI+PHN0cm9uZz7wn5OiIENvbm5leGlvbiAzIHdhcyByZWNlbnRseSByZWxlYXNlZCEgUmVhZCBhYm91dCB0aGUgY2hhbmdlcyBoZXJlIMK7PC9zdHJvbmc+PC9hPgogICA8YnI+CiAgIDxicj4KPC9wPgoKIyMg4pyoIEZlYXR1cmVzCgpDb25uZXhpb24gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbmFsaXR5ICoqYmFzZWQgb24geW91ciBzcGVjaWZpY2F0aW9uKio6CgotIPCfmo8gKipBdXRvbWF0aWMgcm91dGUgcmVnaXN0cmF0aW9uKiosIG5vIGBgQHJvdXRlYGAgZGVjb3JhdG9ycyBuZWVkZWQKLSDwn5SSICoqQXV0aGVudGljYXRpb24qKiwgc3BsaXQgZnJvbSB5b3VyIGFwcGxpY2F0aW9uIGxvZ2ljCi0g8J+UjiAqKlJlcXVlc3QgYW5kIHJlc3BvbnNlIHZhbGlkYXRpb24qKiBvZiBoZWFkZXJzLCBwYXJhbWV0ZXJzLCBhbmQgYm9keQotIPCfk6wgKipQYXJhbWV0ZXIgcGFyc2luZyBhbmQgaW5qZWN0aW9uKiosIG5vIHJlcXVlc3Qgb2JqZWN0IG5lZWRlZAotIPCfk6ggKipSZXNwb25zZSBzZXJpYWxpemF0aW9uKiosIHlvdSBjYW4gcmV0dXJuIHJlZ3VsYXIgUHl0aG9uIG9iamVjdHMKLSDwn5O6ICoqQSBTd2FnZ2VyIFVJIGNvbnNvbGUqKiB3aXRoIGxpdmUgZG9jdW1lbnRhdGlvbiBhbmQg4oCYdHJ5IGl0IG91dOKAmSBmZWF0dXJlCi0g8J+nqSAqKlBsdWdnYWJpbGl0eSoqLCBpbiBhbGwgZGltZW5zaW9ucwoKQ29ubmV4aW9uIGFsc28gKipoZWxwcyB5b3Ugd3JpdGUgeW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24qKiBhbmQgZGV2ZWxvcCBhZ2FpbnN0IGl0IGJ5IHByb3ZpZGluZyBhIGNvbW1hbmQgbGluZSBpbnRlcmZhY2Ugd2hpY2ggbGV0cyB5b3UgdGVzdCBhbmQgbW9jayB5b3VyIHNwZWNpZmljYXRpb24uCgpgYGBzaGVsbAogICBjb25uZXhpb24gcnVuIG9wZW5hcGkueWFtbApgYGAKCiA8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKCiMjIPCfq7YgU3BvbnNvcnMKCjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm1sNi5ldSI+PGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zcGVjLWZpcnN0L2Nvbm5leGlvbi9tYWluL2RvY3MvaW1hZ2VzL3Nwb25zb3JzL01MNi5wbmciIHRpdGxlPU1MNiBoZWlnaHQ9IjEwMCI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5kZXZtYXJrLmFpL2Zlcm4vP3V0bV9zb3VyY2U9Y29ubmV4aW9uJnV0bV9sb2M9cmVhZG1lJnV0bV90eXBlPWxvZ28iPjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3BlYy1maXJzdC9jb25uZXhpb24vbWFpbi9kb2NzL2ltYWdlcy9zcG9uc29ycy9GZXJuLnBuZyIgdGl0bGU9RmVybiBoZWlnaHQ9IjEwMCI+PC9hPgoKU3BvbnNvcnMgaGVscCB1cyBkZWRpY2F0ZSB0aW1lIHRvIG1haW50YWluIENvbm5leGlvbi4gV2FudCB0byBoZWxwPwoKPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3NwZWMtZmlyc3QiPjxzdHJvbmc+RXhwbG9yZSB0aGUgb3B0aW9ucyDCuzwvc3Ryb25nPjwvYT4KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiN0b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+CgojIyDwn6qkIFdoeSBDb25uZXhpb24KCldpdGggQ29ubmV4aW9uLCB5b3Ugd3JpdGUgdGhlIHNwZWMgZmlyc3QuIENvbm5leGlvbiB0aGVuIGNhbGxzIHlvdXIgUHl0aG9uCmNvZGUsIGhhbmRsaW5nIHRoZSBtYXBwaW5nIGZyb20gdGhlIHNwZWNpZmljYXRpb24gdG8gdGhlIGNvZGUuIFRoaXMKaW5jZW50aXZpemVzIHlvdSB0byB3cml0ZSB0aGUgc3BlY2lmaWNhdGlvbiBzbyB0aGF0IGFsbCBvZiB5b3VyCmRldmVsb3BlcnMgY2FuIHVuZGVyc3RhbmQgd2hhdCB5b3VyIEFQSSBkb2VzLCBldmVuIGJlZm9yZSB5b3Ugd3JpdGUgYQpzaW5nbGUgbGluZSBvZiBjb2RlLgoKSWYgbXVsdGlwbGUgdGVhbXMgZGVwZW5kIG9uIHlvdXIgQVBJcywgeW91IGNhbiB1c2UgQ29ubmV4aW9uIHRvIGVhc2lseQpzZW5kIHRoZW0gdGhlIGRvY3VtZW50YXRpb24gb2YgeW91ciBBUEkuIFRoaXMgZ3VhcmFudGVlcyB0aGF0IHlvdXIgQVBJIHdpbGwKZm9sbG93IHRoZSBzcGVjaWZpY2F0aW9uIHRoYXQgeW91IHdyb3RlLiBUaGlzIGlzIGEgZGlmZmVyZW50IHByb2Nlc3MgZnJvbQp0aGUgb25lIG9mZmVyZWQgYnkgbW9zdCBmcmFtZXdvcmtzLCB3aGljaCBnZW5lcmF0ZSBhIHNwZWNpZmljYXRpb24KKmFmdGVyKiB5b3UndmUgd3JpdHRlbiB0aGUgY29kZS4KU29tZSBkaXNhZHZhbnRhZ2VzIG9mIGdlbmVyYXRpbmcgc3BlY2lmaWNhdGlvbnMgYmFzZWQgb24gY29kZSBpcyB0aGF0CnRoZXkgb2Z0ZW4gZW5kIHVwIGxhY2tpbmcgZGV0YWlscyBvciBtaXggeW91ciBkb2N1bWVudGF0aW9uIHdpdGggdGhlIGltcGxlbWVudGF0aW9uCmxvZ2ljIG9mIHlvdXIgYXBwbGljYXRpb24uCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKIyMg4pqS77iPIEhvdyB0byBVc2UKCiMjIyBJbnN0YWxsYXRpb24KCllvdSBjYW4gaW5zdGFsbCBjb25uZXhpb24gdXNpbmcgcGlwOgoKYGBgc2hlbGwKICAgICQgcGlwIGluc3RhbGwgY29ubmV4aW9uCmBgYAoKQ29ubmV4aW9uIHByb3ZpZGVzICdleHRyYXMnIHdpdGggb3B0aW9uYWwgZGVwZW5kZW5jaWVzIHRvIHVubG9jayBhZGRpdGlvbmFsIGZlYXR1cmVzOgoKLSBgc3dhZ2dlci11aWA6IEVuYWJsZXMgYSBTd2FnZ2VyIFVJIGNvbnNvbGUgZm9yIHlvdXIgYXBwbGljYXRpb24uCi0gYHV2aWNvcm5gOiBFbmFibGVzIHRvIHJ1biB0aGUgeW91ciBhcHBsaWNhdGlvbiB1c2luZyBgYXBwLnJ1bigpYCBmb3IKICBkZXZlbG9wbWVudCBpbnN0ZWFkIG9mIHVzaW5nIGFuIGV4dGVybmFsIEFTR0kgc2VydmVyLgotIGBmbGFza2A6IEVuYWJsZXMgdGhlIGBGbGFza0FwcGAgdG8gYnVpbGQgYXBwbGljYXRpb25zIGNvbXBhdGlibGUgd2l0aCB0aGUgRmxhc2sKICBlY29zeXN0ZW0uCgpZb3UgY2FuIGluc3RhbGwgdGhlbSBhcyBmb2xsb3dzOgoKYGBgc2hlbGwKICAgICQgcGlwIGluc3RhbGwgY29ubmV4aW9uW3N3YWdnZXItdWldCiAgICAkIHBpcCBpbnN0YWxsIGNvbm5leGlvbltzd2FnZ2VyLXVpLHV2aWNvcm5dCmBgYAoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIyBDcmVhdGluZyB5b3VyIGFwcGxpY2F0aW9uCgpDb25uZXhpb24gY2FuIGJlIHVzZWQgZWl0aGVyIGFzIGEgc3RhbmRhbG9uZSBhcHBsaWNhdGlvbiBvciBhcyBhIG1pZGRsZXdhcmUgd3JhcHBpbmcgYW4gZXhpc3RpbmcKQVNHSSAob3IgV1NHSSkgYXBwbGljYXRpb24gd3JpdHRlbiB1c2luZyBhIGRpZmZlcmVudCBmcmFtZXdvcmsuIFRoZSBzdGFuZGFsb25lIGFwcGxpY2F0aW9uIGNhbiBiZQpidWlsdCB1c2luZyBlaXRoZXIgdGhlIGBBc3luY0FwcGAgb3IgYEZsYXNrQXBwYC4KCi0gVGhlIGBBc3luY0FwcGAgaXMgYSBsaWdodHdlaWdodCBhcHBsaWNhdGlvbiB3aXRoIG5hdGl2ZSBhc3luY2hyb25vdXMgc3VwcG9ydC4gVXNlIGl0IGlmIHlvdQogIGFyZSBzdGFydGluZyBhIG5ldyBwcm9qZWN0IGFuZCBoYXZlIG5vIHNwZWNpZmljIHJlYXNvbiB0byB1c2Ugb25lIG9mIHRoZSBvdGhlciBvcHRpb25zLgoKICBgYGBQeXRob24KICAgICAgZnJvbSBjb25uZXhpb24gaW1wb3J0IEFzeW5jQXBwCgogICAgICBhcHAgPSBBc3luY0FwcChfX25hbWVfXykKICBgYGAKCi0gVGhlIGBGbGFza0FwcGAgbGV2ZXJhZ2VzIHRoZSBgRmxhc2tgIGZyYW1ld29yaywgd2hpY2ggaXMgdXNlZnVsIGlmIHlvdSdyZSBtaWdyYXRpbmcgZnJvbQogIGNvbm5leGlvbiAyLlggb3IgeW91IHdhbnQgdG8gbGV2ZXJhZ2UgdGhlIGBGbGFza2AgZWNvc3lzdGVtLgoKICBgYGBweXRob24KICAgICAgZnJvbSBjb25uZXhpb24gaW1wb3J0IEZsYXNrQXBwCgogICAgICBhcHAgPSBGbGFza0FwcChfX25hbWVfXykKICBgYGAKCi0gVGhlIGBDb25uZXhpb25NaWRkbGV3YXJlYCBjYW4gYmUgd3JhcHBlZCBhcm91bmQgYW55IGV4aXN0aW5nIEFTR0kgb3IgV1NHSSBhcHBsaWNhdGlvbi4KICBVc2UgaXQgaWYgeW91IGFscmVhZHkgaGF2ZSBhbiBhcHBsaWNhdGlvbiB3cml0dGVuIGluIGEgZGlmZmVyZW50IGZyYW1ld29yayBhbmQgd2FudCB0byBhZGQKICBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IGNvbm5leGlvbgoKICBgYGBweXRob24KICAgICAgZnJvbSBhc2dpX2ZyYW1ld29yayBpbXBvcnQgQXBwCiAgICAgIGZyb20gY29ubmV4aW9uIGltcG9ydCBDb25uZXhpb25NaWRkbGV3YXJlCgogICAgICBhcHAgPSBBcHAoX19uYW1lX18pCiAgICAgIGFwcCA9IENvbm5leGlvbk1pZGRsZXdhcmUoYXBwKQogIGBgYAoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIyBSZWdpc3RlcmluZyBhbiBBUEkKCldoaWxlIHlvdSBjYW4gcmVnaXN0ZXIgaW5kaXZpZHVhbCByb3V0ZXMgb24geW91ciBhcHBsaWNhdGlvbiwgQ29ubmV4aW9uIHJlYWxseSBzaGluZXMgd2hlbiB5b3UKcmVnaXN0ZXIgYW4gQVBJIGRlZmluZWQgYnkgYW4gT3BlbkFQSSAob3IgU3dhZ2dlcikgc3BlY2lmaWNhdGlvbi4KVGhlIG9wZXJhdGlvbiBkZXNjcmliZWQgaW4geW91ciBzcGVjaWZpY2F0aW9uIGlzIGF1dG9tYXRpY2FsbHkgbGlua2VkIHRvIHlvdXIgUHl0aG9uIHZpZXcgZnVuY3Rpb24gdmlhIHRoZSBgYG9wZXJhdGlvbklkYGAKCioqcnVuLnB5KioKCmBgYHB5dGhvbgogICBkZWYgcG9zdF9ncmVldGluZyhuYW1lOiBzdHIsIGdyZWV0aW5nOiBzdHIpOiAgIyBQYXJhbWFldGVycyBhcmUgYXV0b21hdGljYWxseSB1bnBhY2tlZAogICAgICAgcmV0dXJuIGYie2dyZWV0aW5nfSB7bmFtZX0iLCAyMDAgICAgICAgICAgIyBSZXNwb25zZXMgYXJlIGF1dG9tYXRpY2FsbHkgc2VyaWFsaXplZAoKICAgYXBwLmFkZF9hcGkoIm9wZW5hcGkueWFtbCIpCmBgYAoKKipvcGVuYXBpLnlhbWwqKgoKYGBgeWFtbAogICAuLi4KICAgcGF0aHM6CiAgICAgL2dyZWV0aW5nL3tuYW1lfToKICAgICAgIHBvc3Q6CiAgICAgICAgIG9wZXJhdGlvbklkOiBydW4ucG9zdF9ncmVldGluZwogICAgICAgICByZXNwb25zZXM6CiAgICAgICAgICAgMjAwOgogICAgICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgICAgdGV4dC9wbGFpbjoKICAgICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgcGFyYW1ldGVyczoKICAgICAgICAgICAtIG5hbWU6IG5hbWUKICAgICAgICAgICAgIGluOiBwYXRoCiAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAtIG5hbWU6IGdyZWV0aW5nCiAgICAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwpgYGAKCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiN0b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+CgojIyMgUnVubmluZyB5b3VyIGFwcGxpY2F0aW9uCgpJZiB5b3UgaW5zdGFsbGVkIGNvbm5leGlvbiB1c2luZyBgY29ubmV4aW9uW3V2aWNvcm5dYCwgeW91IGNhbiBydW4gaXQgdXNpbmcgdGhlCmBydW5gIG1ldGhvZC4gVGhpcyBpcyBvbmx5IHJlY29tbWVuZGVkIGZvciBkZXZlbG9wbWVudDoKCmBgYHB5dGhvbgogICAgYXBwLnJ1bigpCmBgYAoKSW4gcHJvZHVjdGlvbiwgcnVuIHlvdXIgYXBwbGljYXRpb24gdXNpbmcgYW4gQVNHSSBzZXJ2ZXIgc3VjaCBhcyBgdXZpY29ybmAuIElmIHlvdSBkZWZpbmVkIHlvdXIKYGFwcGAgaW4gYSBweXRob24gbW9kdWxlIGNhbGxlZCBgcnVuLnB5YCwgeW91IGNhbiBydW4gaXQgYXMgZm9sbG93czoKCmBgYHNoZWxsCiAgICAkIHV2aWNvcm4gcnVuOmFwcApgYGAKCk9yIHdpdGggZ3VuaWNvcm46CgpgYGBzaGVsbAogICAgJCBndW5pY29ybiAtayB1dmljb3JuLndvcmtlcnMuVXZpY29ybldvcmtlciBydW46YXBwCmBgYAoKLS0tLQoKTm93IHlvdSdyZSBhYmxlIHRvIHJ1biBhbmQgdXNlIENvbm5leGlvbiEKClNlZSB0aGUgW2V4YW1wbGVzXVtleGFtcGxlc10gZm9sZGVyIGZvciBtb3JlIGV4YW1wbGVzLgoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIPCfk5wgQ2hhbmdlcwoKQSBmdWxsIGNoYW5nZWxvZyBpcyBtYWludGFpbmVkIG9uIHRoZSBbR2l0SHViIHJlbGVhc2VzIHBhZ2VdW1JlbGVhc2VzXS4KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiN0b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+CgojIyDwn6SyIENvbnRyaWJ1dGluZwoKV2Ugd2VsY29tZSB5b3VyIGlkZWFzLCBpc3N1ZXMsIGFuZCBwdWxsIHJlcXVlc3RzLiBKdXN0IGZvbGxvdyB0aGUKdXN1YWwvc3RhbmRhcmQgR2l0SHViIHByYWN0aWNlcy4KCkZvciBlYXN5IGRldmVsb3BtZW50LCBpbnN0YWxsIGNvbm5leGlvbiB1c2luZyBwb2V0cnkgd2l0aCBhbGwgZXh0cmFzLCBhbmQKaW5zdGFsbCB0aGUgcHJlLWNvbW1pdCBob29rcyB0byBhdXRvbWF0aWNhbGx5IHJ1biBibGFjayBmb3JtYXR0aW5nIGFuZCBzdGF0aWMgYW5hbHlzaXMgY2hlY2tzLgoKYGBgc2hlbGwKICAgIHBpcCBpbnN0YWxsIHBvZXRyeQogICAgcG9ldHJ5IGluc3RhbGwgLS1hbGwtZXh0cmFzCiAgICBwcmUtY29tbWl0IGluc3RhbGwKYGBgCgpZb3UgY2FuIGZpbmQgb3V0IG1vcmUgYWJvdXQgaG93IENvbm5leGlvbiB3b3JrcyBhbmQgd2hlcmUgdG8gYXBwbHkgeW91ciBjaGFuZ2VzIGJ5IGhhdmluZyBhIGxvb2sKYXQgb3VyIFthcmNoaXRlY3R1cmVdW0FyY2hpdGVjdHVyZV0uCgpVbmxlc3MgeW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlIGluIGFkdmFuY2UsIGFueSBub24gdHJpdmlhbApjb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGlzIHByb2plY3QgYnkgeW91CnRvIHRoZSBzdGV3YXJkIG9mIHRoaXMgcmVwb3NpdG9yeSBzaGFsbCBiZSB1bmRlciB0aGUKdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgQXBhY2hlIExpY2Vuc2UgMi4wIHdyaXR0ZW4gYmVsb3csIHdpdGhvdXQgYW55CmFkZGl0aW9uYWwgY29weXJpZ2h0IGluZm9ybWF0aW9uLCB0ZXJtcyBvciBjb25kaXRpb25zLgoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIPCfmY8gVGhhbmtzCgpXZSdkIGxpa2UgdG8gdGhhbmsgYWxsIG9mIENvbm5leGlvbidzIGNvbnRyaWJ1dG9ycyBmb3Igd29ya2luZyBvbiB0aGlzCnByb2plY3QsIFN3YWdnZXIvT3BlbkFQSSBmb3IgdGhlaXIgc3VwcG9ydCwgYW5kIFphbGFuZG8gZm9yIG9yaWdpbmFsbHkgZGV2ZWxvcGluZyBhbmQgcmVsZWFzaW5nIENvbm5leGlvbi4KCiMjIPCfk5ogUmVjb21tZW5kZWQgUmVzb3VyY2VzCgpBYm91dCB0aGUgYWR2YW50YWdlcyBvZiB3b3JraW5nIHNwZWMtZmlyc3Q6CgoqIFtCbG9nIEF0bGFzc2lhbl1bQmxvZyBBdGxhc3NpYW5dCiogW0FQSSBndWlkZWxpbmVzIFphbGFuZG9dW0FQSSBndWlkZWxpbmVzIFphbGFuZG9dCiogW0Jsb2cgTUw2XVtCbG9nIE1MNl0KKiBbQmxvZyBaYWxhbmRvXVtCbG9nIFphbGFuZG9dCgpUb29scyB0byBoZWxwIHlvdSB3b3JrIHNwZWMtZmlyc3Q6CgoqIFtPbmxpbmUgc3dhZ2dlciBlZGl0b3JdW09ubGluZSBzd2FnZ2VyIGVkaXRvcl0KKiBbVlMgQ29kZSBwbHVnaW5dW1ZTIENvZGUgcGx1Z2luXQoqIFtQeWNoYXJtIHBsdWdpbl1bUHljaGFybSBwbHVnaW5dCgpbT3BlbkFQSV06IGh0dHBzOi8vb3BlbmFwaXMub3JnLwpbU3dhZ2dlcl06IGh0dHA6Ly9zd2FnZ2VyLmlvL29wZW4tc291cmNlLWludGVncmF0aW9ucy8KW0Jsb2cgYXRsYXNzaWFuXTogaHR0cHM6Ly93d3cuYXRsYXNzaWFuLmNvbS9ibG9nL3RlY2hub2xvZ3kvc3BlYy1maXJzdC1hcGktZGV2ZWxvcG1lbnQKW0Jsb2cgTUw2XTogaHR0cHM6Ly9ibG9nLm1sNi5ldS93aHktd2UtZGVjaWRlZC10by1oZWxwLW1haW50YWluLWNvbm5leGlvbi1jOWY0NDk4NzcwODMKW0Jsb2cgWmFsYW5kb106IGh0dHBzOi8vZW5naW5lZXJpbmcuemFsYW5kby5jb20vcG9zdHMvMjAxNi8xMi9jcmFmdGluZy1lZmZlY3RpdmUtbWljcm9zZXJ2aWNlcy1pbi1weXRob24uaHRtbApbQVBJIGd1aWRlbGluZXMgWmFsYW5kb106IGh0dHBzOi8vb3BlbnNvdXJjZS56YWxhbmRvLmNvbS9yZXN0ZnVsLWFwaS1ndWlkZWxpbmVzLyNhcGktZmlyc3QKW09ubGluZSBzd2FnZ2VyIGVkaXRvcl06IGh0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vCltWUyBDb2RlIHBsdWdpbl06IGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT00MkNydW5jaC52c2NvZGUtb3BlbmFwaQpbUHljaGFybSBwbHVnaW5dOiBodHRwczovL3BsdWdpbnMuamV0YnJhaW5zLmNvbS9wbHVnaW4vMTQ4Mzctb3BlbmFwaS1zd2FnZ2VyLWVkaXRvcgpbZXhhbXBsZXNdOiBodHRwczovL2dpdGh1Yi5jb20vc3BlYy1maXJzdC9jb25uZXhpb24vYmxvYi9tYWluL2V4YW1wbGVzCltSZWxlYXNlc106IGh0dHBzOi8vZ2l0aHViLmNvbS9zcGVjLWZpcnN0L2Nvbm5leGlvbi9yZWxlYXNlcwpbQXJjaGl0ZWN0dXJlXTogaHR0cHM6Ly9naXRodWIuY29tL3NwZWMtZmlyc3QvY29ubmV4aW9uL2Jsb2IvbWFpbi9kb2NzL2ltYWdlcy9hcmNoaXRlY3R1cmUucG5nCg== readmeEtag: '"e479ff79b2d6d28f616e9d190ff2f9693a3f1303"' readmeLastModified: Thu, 30 May 2024 07:21:06 GMT repositoryId: 35882519 description: >- Connexion is a modern Python web framework that makes spec-first and api-first development easy. created: '2015-05-19T13:05:58Z' updated: '2024-09-04T00:14:37Z' language: Python archived: false stars: 4472 watchers: 84 forks: 758 owner: spec-first logo: https://avatars.githubusercontent.com/u/58754196?v=4 license: Apache-2.0 repoEtag: '"93f1e9fc863bca4a068871d75a3fddc691ae3fbc81a09e0781b3dcb48fc078b2"' repoLastModified: Wed, 04 Sep 2024 00:14:37 GMT foundInMaster: true homepage: https://github.com/zalando/connexion id: 2d575abdf2671028868058b2442d9131 oldLocations: - https://github.com/zalando/connexion - source: https://openapi.tools/ name: CUE category: DSL language: CUE source_description: >- CUE is an open source language, with a rich set of APIs and tooling, for defining, generating, and validating all kinds of data configuration, APIs, database schemas, code, etc. CUE currently supports generating OpenAPI through its API. link: https://cuelang.org/docs/integrations/openapi/ v2: false v3: true foundInMaster: true id: a3c52256b7de10d04cbf847a9f0f3fb7 - source: https://openapi.tools/ name: JetBrains tools (IntelliJ IDEA, PyCharm etc.) category: GUI Editors language: - Java - Python link: https://plugins.jetbrains.com/plugin/14394-openapi-specifications repository: null source_description: > JetBrains development tools like IntelliJ IDEA, PyCharm and others come with a bundled *OpenAPI Specifications* plugin. The plugin allows you to write the OpenAPI specifications and supports you with validations, formatting, code-completion etc. It supports a *text view* as well as a rendered SwaggerUI-like *graphical interface*. v2: true v3: true id: 7610df08711c820262bf0fa23fe0279f foundInMaster: true - source: https://openapi.tools/ name: Frevo category: - Documentation link: https://frevo.dev?ref=openapitools language: SaaS source_description: >- Keep track of changes in your OpenAPI specifications & generate API references ⛱️ v2: false v3: true v3_1: true id: 4bbbc7dd6703e50c5719dc27fbb4de65 foundInMaster: true - source: https://openapi.tools/ name: Kong Enterprise Edition category: - Documentation - Gateway link: https://konghq.com/kong-enterprise-edition/ language: Lua source_description: >- Highly customizable developer portal with developer onboarding, integrated with the Kong API Gateway v2: true v3: true foundInMaster: true id: 263dd2cb7817fcb9aa55e4fd97b6b852 v3_1_link: https://github.com/Kong/insomnia/issues/4732 v3_1: true - source: https://openapi.tools/ name: Rate My OpenAPI category: - Description Validators - Security - Server Implementations language: Go repository: https://github.com/zuplo/rate-my-openapi link: https://ratemyopenapi.com source_description: Free and open source OpenAPI automated review and validation tool. v3: true v3_1: true id: 54fc718fad968b8a7eecd1e88f3fff99 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9yYXRlbXlvcGVuYXBpLmNvbS8iPgogICAgPGltZyBzcmM9Imh0dHBzOi8vY2RuLnp1cGxvLmNvbS9zdGF0aWMvbG9nb3MvbG9nby5zdmciIGhlaWdodD0iNTAiPgogICAgPGgxIGFsaWduPSJjZW50ZXIiPlJhdGUgTXkgT3BlbkFQSTwvaDE+CiAgPC9hPgo8L3A+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxwIGFsaWduPSJjZW50ZXIiPgogICAgPGEgYXJpYS1sYWJlbD0iWnVwbG8gbG9nbyIgaHJlZj0iaHR0cHM6Ly96dXBsby5jb20iPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9NQURFJTIwQlklMjBadXBsby1GRjAwQkQuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1kYXRhOmltYWdlL3N2ZyUyYnhtbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SW01dmJtVWlJSFpwWlhkQ2IzZzlJakFnTUNBek55QXpNaUlnWVhKcFlTMW9hV1JrWlc0OUluUnlkV1VpUGdvZ0lEeHdZWFJvSUdacGJHdzlJaU5HUmpBd1FrUWlJR1E5SWsweU55NHhORElnTVRrdU9UYzRTREUyTGpZeVRESTNMamd6SURndU56UTJZUzQzTlRndU56VTRJREFnTURBdExqVXpOQzB4TGpJNU0wZzVMalE0T0ZZd2FERTVMalV6TkdFM0xqVTNNeUEzTGpVM015QXdJREF4TkM0d05qVWdNUzR4TWpVZ055NDFPVEVnTnk0MU9URWdNQ0F3TVRJdU9ETTJJRE11TVRJMklEY3VOREF5SURjdU5EQXlJREFnTURFdE1TNDBOakVnT0M0ek9UaHNMVGN1TXpJZ055NHpNamg2SWk4K0NpQWdQSEJoZEdnZ1ptbHNiRDBpSTBaR01EQkNSQ0lnWkQwaVRUa3VORGc1SURFeExqQTBNbWd4TUM0MU1qUnNMVEV4TGpFNUlERXhMakl4WVM0M056SXVOemN5SURBZ01EQXVOVFF6SURFdU16RTJhREUzTGpjMU9YWTNMalExTWtnM0xqWXhZVGN1TlRjMElEY3VOVGMwSURBZ01ERXROQzR3TmpVdE1TNHhNalZCTnk0MU9UTWdOeTQxT1RNZ01DQXdNUzQzTVNBeU5pNDNOamhoTnk0ME1ETWdOeTQwTURNZ01DQXdNVEV1TkRZeUxUZ3VNemszYkRjdU16RTRMVGN1TXpJNWVpSXZQZ284TDNOMlp6NEsmbGFiZWxDb2xvcj0wMDAiPjwvYT4KICAgIDxhIGFyaWEtbGFiZWw9Ik5QTSB2ZXJzaW9uIiBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ybW9hIj48aW1nIGFsdD0iTlBNIEJhZGdlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvcm1vYS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsYWJlbENvbG9yPTAwMDAwMCI+PC9hPgogICAgPGEgYXJpYS1sYWJlbD0iTGljZW5zZSIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3p1cGxvL3JhdGUtbXktb3BlbmFwaS9ibG9iL21haW4vTElDRU5TRSI+PGltZyBhbHQ9IkxpY2Vuc2UgQmFkZ2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9ybW9hLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9MDAwMDAwIj48L2E+CiAgICA8YSBhcmlhLWxhYmVsPSJKb2luIHRoZSBjb21tdW5pdHkgb24gRGlzY29yZCIgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmNvbS9jaGFubmVscy84NDg5MTM5OTAzNjA2MjkyNjgvMTIzNTI5NDg3Njc3ODYyNzI0NiI+PGltZyBhbHQ9IkRpc2Nyb2QgQmFkZ2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9DaGF0JTIwb24lMjBkaXNjb3JkLTU4NjVGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWRpc2NvcmQmbGFiZWxDb2xvcj0wMDAwMDAmbG9nb1dpZHRoPTIwIj48L2E+CiAgPC9wPgogIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20venVwbG8iPgogICAgPGltZyBhbHQ9IlggKGZvcm1lcmx5IFR3aXR0ZXIpIEZvbGxvdyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvZm9sbG93L3p1cGxvIj4KICA8L2E+CiAgPHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSIjb3BlbmFwaS0tLWludHJvZHVjdGlvbiI+PHN0cm9uZz5JbnRyb2R1Y3Rpb248L3N0cm9uZz48L2E+IMK3IAogICAgPGEgaHJlZj0iI3dlYnNpdGUiPjxzdHJvbmc+V2Vic2l0ZTwvc3Ryb25nPjwvYT4gwrcgCiAgICA8YSBocmVmPSIjY2xpIj48c3Ryb25nPkNMSTwvc3Ryb25nPjwvYT4gwrcgCiAgICA8YSBocmVmPSIjZ2l0aHViLWFjdGlvbiI+PHN0cm9uZz5HaXRIdWIgQWN0aW9uPC9zdHJvbmc+PC9hPiDCtyAKICAgIDxhIGhyZWY9IiNhcGlzIj48c3Ryb25nPkFQSXM8L3N0cm9uZz48L2E+CiAgPC9wPgo8L2Rpdj4KCiMjIE9wZW5BUEkgLSBJbnRyb2R1Y3Rpb24KCltPcGVuQVBJXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKSBpcyBhbiBpbmR1c3RyeSBzdGFuZGFyZCB0byBkZXNjcmliZSBIVFRQCkFQSXMuIFdoZW4gdXNpbmcgT3BlbkFQSSBpbiB5b3VyIHByb2plY3QsIHlvdSBjYW4gbGV2ZXJhZ2Ugb3RoZXIgdG9vbHMgdG8gaGVscAp5b3UgZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiwgY29kZSwgdGVzdHMsIG1vY2sgcmVzdWx0cywgb3IgZXZlbiBkZXBsb3kgeW91ciBBUEkuCkl0J3Mgd2hhdCdzIGNvbW1vbmx5IGtub3duIGFzIHRoZSBPcGVuQVBJIGxpZmVjeWNsZSwgd2hpY2ggbG9va3MgbGlrZSB0aGlzOgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KPGltZyBzdHlsZT0id2lkdGg6NTAlIiBzcmM9ImFzc2V0cy9vcGVuYXBpLWxpZmVjeWNsZS1saWdodC5wbmcjZ2gtbGlnaHQtbW9kZS1vbmx5IiAvPgogIDxpbWcgc3R5bGU9IndpZHRoOjUwJSIgc3JjPSJhc3NldHMvb3BlbmFwaS1saWZlY3ljbGUtZGFyay5wbmcjZ2gtZGFyay1tb2RlLW9ubHkiIC8+CjwvZGl2PgoKIyMgUmF0ZSBNeSBPcGVuQVBJCgpBdCBadXBsbyB3ZSBiZWxpZXZlIHRoYXQgdGhlIGJldHRlciB0aGUgcXVhbGl0eSBvZiBhbiBPcGVuQVBJIGRvY3VtZW50LCB0aGUKYmV0dGVyIHRoZSBkZXZlbG9wZXIgZXhwZXJpZW5jZSB3aWxsIGJlIGZvciB0aGUgY29uc3VtZXJzIG9mIHRoYXQgQVBJLiBUaGlzCmV4cGVyaWVuY2UgaXMgaW1wb3J0YW50IGZvciB0aGUgc3VjY2VzcyBvZiBhbiBBUEkuCgpfUmF0ZSBNeSBPcGVuQVBJXyBpcyBhIHN1aXRlIG9mIHRvb2xzIGRlc2lnbmVkIHRvIGhlbHAgc29mdHdhcmUgZGV2ZWxvcGVycyB3aG8KYXJlIHVzaW5nIE9wZW5BUEkgdG8gZGVzaWduIGFuZCBpbXBsZW1lbnQgdGhlaXIgQVBJcy4KCk91ciB0b29scyBpbmNsdWRlIGEKW3dlYnNpdGVdKGh0dHBzOi8vcmF0ZW15b3BlbmFwaS5jb20/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT13ZWIpLCBhCltDTEldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3Jtb2EpLCBhCltHaXRIdWIgQWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbWFya2V0cGxhY2UvYWN0aW9ucy9yYXRlLW15LW9wZW5hcGktYWN0aW9uKQphbmQgYW4gW0FQSV0oaHR0cHM6Ly9hcGkucmF0ZW15b3BlbmFwaS5jb20vZG9jcy9yb3V0ZXMvaW50cm9kdWN0aW9uKSwgYWxsIGFpbWVkCmF0IGVuc3VyaW5nIHlvdXIgQVBJcyBtZWV0IGhpZ2ggc3RhbmRhcmRzIG9mIHF1YWxpdHkgYW5kIHVzYWJpbGl0eS4KCiMjIyBDYXRlZ29yaWVzIG9mIEV2YWx1YXRpb24KCk91ciB0b29scyBldmFsdWF0ZSB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiBmaWxlcyBhbmQgcHJvdmlkZSBhIGNvbXByZWhlbnNpdmUKc2NvcmUgYmFzZWQgb24gZm91ciBrZXkgY2F0ZWdvcmllczoKCi0gKipEb2N1bWVudGF0aW9uOioqIEVuc3VyZSB5b3VyIEFQSSBpcyB3ZWxsLWRvY3VtZW50ZWQsIG1ha2luZyBpdCBlYXN5IGZvcgogIHVzZXJzIHRvIHVuZGVyc3RhbmQgYW5kIHVzZS4KLSAqKlNESyBHZW5lcmF0aW9uOioqIFZlcmlmeSB0aGF0IHlvdXIgQVBJIGRlZmluaXRpb24gc3VwcG9ydHMgU0RLIGdlbmVyYXRpb24sCiAgZmFjaWxpdGF0aW5nIGludGVncmF0aW9uIGFuZCB1c2FnZSBpbiBkaWZmZXJlbnQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLgotICoqU2VjdXJpdHk6KiogQ2hlY2sgZm9yIGJlc3QgcHJhY3RpY2VzIGFuZCBzdGFuZGFyZHMgdG8gZW5zdXJlIHlvdXIgQVBJIGlzCiAgc2VjdXJlIGFuZCBwcm90ZWN0ZWQgYWdhaW5zdCBjb21tb24gdnVsbmVyYWJpbGl0aWVzLgotICoqQ29tcGxldGVuZXNzKiogRW5zdXJlIHlvdXIgQVBJIGRlZmluaXRpb24gaXMgY29tcGxldGUsIHdpdGggYWxsIG5lY2Vzc2FyeQogIGVuZHBvaW50cywgcGFyYW1ldGVycywgYW5kIHJlc3BvbnNlcyBhY2N1cmF0ZWx5IGRlZmluZWQuCgojIyMgV2Vic2l0ZQoKW2h0dHBzOi8vcmF0ZW15b3BlbmFwaS5jb21dKGh0dHBzOi8vcmF0ZW15b3BlbmFwaS5jb20/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT13ZWIpCm9mZmVycyBhIHVzZXItZnJpZW5kbHkgaW50ZXJmYWNlIGZvciBkZXZlbG9wZXJzIHRvIHVwbG9hZCBhbmQgYW5hbHl6ZSB0aGVpcgpPcGVuQVBJIGRlZmluaXRpb24gZmlsZXMuCgpLZXkgZmVhdHVyZXMgaW5jbHVkZToKCi0gKipMaW50aW5nOioqIFVwbG9hZCAmIGxpbnQgeW91ciBPcGVuQVBJIGZpbGVzIHRvIHJlY2VpdmUgZGV0YWlsZWQgZmVlZGJhY2suCi0gKipDb21wcmVoZW5zaXZlIFNjb3Jpbmc6KiogR2V0IGEgY2xlYXIsIGFjdGlvbmFibGUgc2NvcmUgcmF0aW5nIHlvdXIgQVBJJ3MKICBkb2N1bWVudGF0aW9uLCBTREsgZ2VuZXJhdGlvbiwgc2VjdXJpdHksIGFuZCBjb21wbGV0ZW5lc3MuCi0gKipEZXRhaWxlZCBSZXBvcnRzOioqIEFjY2VzcyBpbi1kZXB0aCByZXBvcnRzIHRoYXQgaGlnaGxpZ2h0IGFyZWFzIG9mCiAgaW1wcm92ZW1lbnQgYW5kIHByb3ZpZGUgcmVjb21tZW5kYXRpb25zLgotICoqVmlzdWFsaXphdGlvbjoqKiBFYXNpbHkgdmlzdWFsaXplIHRoZSBzdHJ1Y3R1cmUgYW5kIHF1YWxpdHkgb2YgeW91ciBBUEkgd2l0aAogIGluLWxpbmUgZmVlZGJhY2suCgojIyMjIEdldHRpbmcgU3RhcnRlZAoKVG8gZ2V0IHN0YXJ0ZWQgdmlzaXQKW2h0dHBzOi8vcmF0ZW15b3BlbmFwaS5jb21dKGh0dHBzOi8vcmF0ZW15b3BlbmFwaS5jb20/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT13ZWIpLAp1cGxvYWQgeW91ciBPcGVuQVBJIGRlZmluaXRpb24gZmlsZSBhbmQgcmV2aWV3IHRoZSBkZXRhaWxlZCByZXBvcnRzIHRvIGlkZW50aWZ5CmFyZWFzIGZvciBpbXByb3ZlbWVudC4KCiMjIyBDTEkKClRoZSBDTEkgdG9vbCBpcyBwZXJmZWN0IGZvciBkZXZlbG9wZXJzIHdobyBwcmVmZXIgd29ya2luZyBmcm9tIHRoZSBjb21tYW5kIGxpbmUKb3IgbmVlZCB0byBpbnRlZ3JhdGUgcXVhbGl0eSBjaGVja3MgaW50byB0aGVpciBkZXZlbG9wbWVudCB3b3JrZmxvdy4KCktleSBmZWF0dXJlcyBpbmNsdWRlOgoKLSA8KipBdXRvbWF0ZWQgQ2hlY2tzOioqIEludGVncmF0ZSB0aGUgQ0xJIGludG8geW91ciBDSS9DRCBwaXBlbGluZSBmb3IKICBhdXRvbWF0ZWQgcXVhbGl0eSBjaGVja3Mgb24gZXZlcnkgY29tbWl0LgotICoqRGV0YWlsZWQgT3V0cHV0OioqIEdldCBkZXRhaWxlZCBmZWVkYmFjayBkaXJlY3RseSBpbiB5b3VyIHRlcm1pbmFsLCB3aXRoCiAgb3B0aW9ucyB0byBmdXJ0aGVyIGludGVncmF0ZSB0aGVzZSByZXN1bHRzIGludG8geW91ciBkZXZlbG9wbWVudCBmbG93LgoKIyMjIyBHZXR0aW5nIFN0YXJ0ZWQKClRvIGdldCBzdGFydGVkIGluc3RhbGwgdGhlIENMSSBhbmQgc3RhcnQgaW50ZWdyYXRpbmcgaXQgaW50byB5b3VyIGRldmVsb3BtZW50CndvcmtmbG93LgoKYGBgYmFzaApucG0gaW5zdGFsbCBybW9hCgpybW9hIGxpbnQgLS1maWxlbmFtZSA8b3BlbmFwaS1maWxlbmFtZT4gLS1hcGkta2V5IDxBUElfS0VZPgpgYGAKCkNMSSBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgYXQKW3BhY2thZ2VzL2NsaV0oL3BhY2thZ2VzL2NsaS9SRUFETUUubWQpLgoKVG8gZ2V0IGFuIGBBUElfS0VZYCBzaWduIHVwIGZvciBmcmVlIGF0CltodHRwczovL2FwaS5yYXRlbXlvcGVuYXBpLmNvbS9kb2NzXShodHRwczovL2FwaS5yYXRlbXlvcGVuYXBpLmNvbS9kb2NzKS4KCiMjIyBHaXRIdWIgQWN0aW9uCgpPdXIgR2l0SHViIEFjdGlvbiBzZWFtbGVzc2x5IGludGVncmF0ZXMgd2l0aCB5b3VyIHJlcG9zaXRvcnkgdG8gZW5zdXJlIHlvdXIgQVBJcwphcmUgY29uc2lzdGVudGx5IG9mIGhpZ2ggcXVhbGl0eS4KCktleSBmZWF0dXJlcyBpbmNsdWRlOgoKLSAqKkF1dG9tYXRlZCBMaW50aW5nOioqIEF1dG9tYXRpY2FsbHkgbGludCBPcGVuQVBJIGRlZmluaXRpb24gZmlsZXMgb24gZXZlcnkKICBwdWxsIHJlcXVlc3QgYW5kIHB1c2ggdG8gZW5zdXJlIGNvZGUgcXVhbGl0eS4KLSAqKklubGluZSBGZWVkYmFjazoqKiBSZWNlaXZlIGZlZWRiYWNrIGRpcmVjdGx5IGluIHlvdXIgcHVsbCByZXF1ZXN0cyB3aXRoCiAgY29tbWVudHMgaGlnaGxpZ2h0aW5nIGlzc3VlcyBhbmQgYXJlYXMgZm9yIGltcHJvdmVtZW50LgotICoqQ29udGludW91cyBJbXByb3ZlbWVudDoqKiBNYWludGFpbiBhIGhpZ2ggc3RhbmRhcmQgb2YgQVBJIHF1YWxpdHkgd2l0aAogIGNvbnRpbnVvdXMgbW9uaXRvcmluZyBhbmQgZmVlZGJhY2suCgojIyMjIEdldHRpbmcgU3RhcnRlZAoKVG8gZ2V0IHN0YXJ0ZWQgYWRkIG91ciBHaXRIdWIgYWN0aW9uIHRvIHlvdXIgcmVwb3NpdG9yeSBhbmQgY29uZmlndXJlIGl0IHRvIHJ1bgpvbiBQdWxsIFJlcXVlc3RzIGFuZCBQdXNoZXMgdG8gZW5zdXJlIGNvbnRpbnVvdXMgcXVhbGl0eSBtb25pdG9yaW5nLgoKYGBgeWFtbApzdGVwczoKICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjQKICAtIHVzZXM6IHp1cGxvL3Jtb2EtYWN0aW9uQHYxCiAgICB3aXRoOgogICAgICBmaWxlcGF0aDogIi4vbXktYXBpLmpzb24iCiAgICAgIGFwaWtleTogJHt7IHNlY3JldHMuUk1PQV9BUElfS0VZIH19CmBgYAoKR2l0SHViIEFjdGlvbiBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgYXQKW3Jtb2EtYWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20venVwbG8vcm1vYS1hY3Rpb24pLgoKIyMjIyBHZXR0aW5nIGFuIEFQSSBrZXkKClRvIGdldCBhbiBgQVBJX0tFWWAgeW91IGNhbiBzaWduIHVwIGZvciBmcmVlIGF0CltodHRwczovL2FwaS5yYXRlbXlvcGVuYXBpLmNvbS9kb2NzXShodHRwczovL2FwaS5yYXRlbXlvcGVuYXBpLmNvbS9kb2NzKS4KCiMjIyBBUElzCgpBbGwgb3VyIHRvb2xzIG1ha2UgdXNlIG9mIG91ciBBUElzIHRvIGFuYWx5emUgYW5kIHByb3ZpZGUgZGV0YWlsZWQgcmVzdWx0cy4KCllvdSBjYW4gYWxzbyBtYWtlIGRpcmVjdCB1c2Ugb2YgdGhlc2UgQVBJcywgd2hpY2ggaXMgYSBncmVhdCBvcHRpb24gZm9yIHRob3NlCmRldmVsb3BlcnMgdGhhdCB3YW50IHRvIGJ1aWxkIHRoZWlyIG93biB0b29scyBvciBpbnRlZ3JhdGUgdGhlIFJhdGUgTXkgT3BlbkFQSQpsaW50aW5nIGNhcGFiaWxpdGllcyBpbiBhIHdheSB0aGF0J3Mgbm90IGNvdmVyZWQgdGhlIGV4aXN0aW5nIHRvb2xzLgoKIyMjIyBHZXR0aW5nIFN0YXJ0ZWQKClRvIGdldCBzdGFydGVkLCBnbyB0bwpbaHR0cHM6Ly9hcGkucmF0ZW15b3BlbmFwaS5jb20vZG9jc10oaHR0cHM6Ly9hcGkucmF0ZW15b3BlbmFwaS5jb20vZG9jcykgdG8gZ2V0CnRoZSBkZXRhaWxlZCBkb2N1bWVudGF0aW9uIG9uIGV2ZXJ5IGVuZHBvaW50IGF2YWlsYWJsZSBmb3IgdXNlLgoKIyMjIyBHZXR0aW5nIGFuIEFQSSBrZXkKClRvIGdldCBhbiBgQVBJX0tFWWAgeW91IGNhbiBzaWduIHVwIGZvciBmcmVlIGF0CltodHRwczovL2FwaS5yYXRlbXlvcGVuYXBpLmNvbS9kb2NzXShodHRwczovL2FwaS5yYXRlbXlvcGVuYXBpLmNvbS9kb2NzKS4KCiMgTGljZW5zZQoKW01JVCBMaWNlbnNlXSguL0xJQ0VOU0UpCg== readmeEtag: '"c0f831b7566b70e4f15b7325e8eff11cccb35602"' readmeLastModified: Thu, 22 Aug 2024 17:48:19 GMT repositoryId: 653466139 description: null created: '2023-06-14T05:39:38Z' updated: '2024-09-02T20:00:06Z' language: TypeScript archived: false stars: 200 watchers: 4 forks: 4 owner: zuplo logo: https://avatars.githubusercontent.com/u/85497839?v=4 license: MIT repoEtag: '"3e63ade3fbf74cc98089fd3cb9f3e0281f516c095175f51aaf15f57ae963e186"' repoLastModified: Mon, 02 Sep 2024 20:00:06 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags name: Scalar category: Documentation language: Vue.js repository: https://github.com/scalar/scalar link: https://docs.scalar.com/swagger-editor source_description: Beautiful Open-Source API references from Swagger/OAS files ✨ v2: true v3: true v3_1: true id: 9cad3caafc5e01c5c1cd167696f30f10 repositoryMetadata: base64Readme: >- IyBTY2FsYXIgQVBJIFJlZmVyZW5jZQoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwpClshW0NvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29udHJpYnV0b3JzL3NjYWxhci9zY2FsYXIpXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci9ncmFwaHMvY29udHJpYnV0b3JzKQpbIVtHaXRIdWIgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9zY2FsYXIvc2NhbGFyKV0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvYmxvYi9tYWluL0xJQ0VOU0UpClshW0Rpc2NvcmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZGlzY29yZC8xMTM1MzMwMjA3OTYwNjc4NDEwP3N0eWxlPWZsYXQmY29sb3I9NTg2NUYyKV0oaHR0cHM6Ly9kaXNjb3JkLmdnL3NjYWxhcikKCkdlbmVyYXRlIGludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9uIGZyb20gT3BlbkFQSS9Td2FnZ2VyIGRvY3VtZW50cy4gW1RyeSBvdXIgRGVtb10oaHR0cHM6Ly9kb2NzLnNjYWxhci5jb20vc3dhZ2dlci1lZGl0b3IpCgo8aW1nIHdpZHRoPSI4MzAiIGhlaWdodD0iNDU1IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL2Fzc2V0cy82MjAxNDA3LzA0NmFhZWNhLWYwZmUtNDUzZC1hNjYxLWM3NDczOTljNTZlZiI+CgojIyBGZWF0dXJlcwoKLSBVc2VzIE9wZW5BUEkvU3dhZ2dlciBkb2N1bWVudHMKLSBSZXF1ZXN0IGV4YW1wbGVzIGZvciBtYW55IGZhdm9yaXRlIGxhbmd1YWdlcyBhbmQgZnJhbWV3b3JrcwotIENvbWVzIHdpdGggYW4gaW50ZWdyYXRlZCBBUEkgY2xpZW50Ci0gSW50ZWdyYXRlcyB3aXRoIHlvdXIgZmF2b3JpdGUgZnJhbWV3b3JrCi0gRG9lc27igJl0IGxvb2sgbGlrZSBpdOKAmXMgMjAxMQoKIyMgUXVpY2tzdGFydAoKWW914oCZcmUganVzdCBvbmUgSFRNTCBmaWxlIGF3YXkgZnJvbSBoYXZpbmcgYW4gYXdlc29tZSBBUEkgcmVmZXJlbmNlOgoKYGBgaHRtbAo8IWRvY3R5cGUgaHRtbD4KPGh0bWw+CiAgPGhlYWQ+CiAgICA8dGl0bGU+U2NhbGFyIEFQSSBSZWZlcmVuY2U8L3RpdGxlPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CiAgICA8bWV0YQogICAgICBuYW1lPSJ2aWV3cG9ydCIKICAgICAgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiIC8+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPCEtLSBOZWVkIGEgQ3VzdG9tIEhlYWRlcj8gQ2hlY2sgb3V0IHRoaXMgZXhhbXBsZSBodHRwczovL2NvZGVwZW4uaW8vc2NhbGFyb3JnL3Blbi9Wd09YcWFtIC0tPgogICAgPHNjcmlwdAogICAgICBpZD0iYXBpLXJlZmVyZW5jZSIKICAgICAgZGF0YS11cmw9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQHNjYWxhci9nYWxheHkvZGlzdC9sYXRlc3QueWFtbCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9Ac2NhbGFyL2FwaS1yZWZlcmVuY2UiPjwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPgpgYGAKCkFuZCB0aGVyZeKAmXMgYW4gZXZlci1ncm93aW5nIGxpc3Qgb2YgcGx1Z2lucyBhbmQgaW50ZWdyYXRpb25zOgoKIyMgSW50ZWdyYXRpb25zCgotIFtIVE1MXShkb2N1bWVudGF0aW9uL2ludGVncmF0aW9ucy9odG1sLm1kKQotIFsuTkVUXShwYWNrYWdlcy9zY2FsYXIuYXNwbmV0Y29yZS9SRUFETUUubWQpCi0gW0Fkb25pc0pTXShkb2N1bWVudGF0aW9uL2ludGVncmF0aW9ucy9hZG9uaXNqcy5tZCkKLSBbRG9jdXNhdXJ1c10ocGFja2FnZXMvZG9jdXNhdXJ1cy9SRUFETUUubWQpCi0gW0VseXNpYUpTXShkb2N1bWVudGF0aW9uL2ludGVncmF0aW9ucy9lbHlzaWFqcy5tZCkKLSBbRXhwcmVzc10ocGFja2FnZXMvZXhwcmVzcy1hcGktcmVmZXJlbmNlL1JFQURNRS5tZCkKLSBbRmFzdEFQSV0ocGFja2FnZXMvc2NhbGFyX2Zhc3RhcGkvUkVBRE1FLm1kKQotIFtGYXN0aWZ5XShwYWNrYWdlcy9mYXN0aWZ5LWFwaS1yZWZlcmVuY2UvUkVBRE1FLm1kKQotIFtHb10oZG9jdW1lbnRhdGlvbi9pbnRlZ3JhdGlvbnMvZ28ubWQpCi0gW0hvbm9dKHBhY2thZ2VzL2hvbm8tYXBpLXJlZmVyZW5jZS9SRUFETUUubWQpCi0gW0xhcmF2ZWxdKGRvY3VtZW50YXRpb24vaW50ZWdyYXRpb25zL2xhcmF2ZWwubWQpCi0gW0xpdGVzdGFyXShodHRwczovL2RvY3MubGl0ZXN0YXIuZGV2L2xhdGVzdC91c2FnZS9vcGVuYXBpL3VpX3BsdWdpbnMuaHRtbCkKLSBbTmVzdEpTXShwYWNrYWdlcy9uZXN0anMtYXBpLXJlZmVyZW5jZS9SRUFETUUubWQpCi0gW05leHQuanNdKHBhY2thZ2VzL25leHRqcy1hcGktcmVmZXJlbmNlL1JFQURNRS5tZCkKLSBbTml0cm9dKGRvY3VtZW50YXRpb24vaW50ZWdyYXRpb25zL25pdHJvLm1kKQotIFtOdXh0XShwYWNrYWdlcy9udXh0L1JFQURNRS5tZCkKLSBbUGxhdGZvcm1hdGljXShkb2N1bWVudGF0aW9uL2ludGVncmF0aW9ucy9wbGF0Zm9ybWF0aWMubWQpCi0gW1JlYWN0XShwYWNrYWdlcy9hcGktcmVmZXJlbmNlLXJlYWN0L1JFQURNRS5tZCkKLSBbUnVzdF0oZG9jdW1lbnRhdGlvbi9pbnRlZ3JhdGlvbnMvcnVzdC5tZCkKLSBbVnVlLmpzXShwYWNrYWdlcy9hcGktcmVmZXJlbmNlL1JFQURNRS5tZCkKCiMjIE1hbmFnZWQgSG9zdGluZwoKV2XigJlyZSBvZmZlcmluZyBhIGZyZWUgYW5kIHBhaWQgbWFuYWdlZCBob3N0aW5nIG9uIHRoZSBlZGdlLCB0b286CgotIFdyaXRlIHlvdXIgQVBJIGRvY3VtZW50YXRpb24gYW5kIHB1Ymxpc2ggeW91ciBBUEkgcmVmZXJlbmNlcyAoZnJlZSkKLSBHZXQgU1NMIGFuZCBhIHN1cGVyIGNvb2wgYCouYXBpZG9jdW1lbnRhdGlvbi5jb21gIHN1YmRvbWFpbiAoZnJlZSkKLSBXcml0ZSBmcmVlIHRleHQgZG9jdW1lbnRhdGlvbiAocGFpZCkKLSBDb2xsYWJvcmF0ZSB3aXRoIHlvdXIgd2hvbGUgdGVhbSAocGFpZCkKLSBVc2UgYW55IGRvbWFpbiAocGFpZCkKClJlYWR5PyBbQ3JlYXRlIHlvdXIgYWNjb3VudCBvbiBzY2FsYXIuY29tXShodHRwczovL3NjYWxhci5jb20pLgoKIyMgUHJvamVjdHMKCnwgUHJvamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFtTY2FsYXIgQVBJIENsaWVudF0ocGFja2FnZXMvYXBpLWNsaWVudC9SRUFETUUubWQpICAgICAgIHwgQVBJIGNsaWVudCAgICAgICAgICAgICB8CnwgW1NjYWxhciBDTEldKHBhY2thZ2VzL2NsaS9SRUFETUUubWQpICAgICAgICAgICAgICAgICAgICAgfCBDb21tYW5kLWxpbmUgaW50ZXJmYWNlIHwKfCBbU2NhbGFyIEdhbGF4eV0ocGFja2FnZXMvZ2FsYXh5L1JFQURNRS5tZCkgICAgICAgICAgICAgICB8IE9wZW5BUEkgRXhhbXBsZSAgICAgICAgfAp8IFtTY2FsYXIgUGxheSBCdXR0b25dKHBhY2thZ2VzL3BsYXktYnV0dG9uL1JFQURNRS5tZCkgICAgIHwgUXVpY2sgQVBJIENsaWVudCBFbWJlZCB8CnwgW1NjYWxhciBNb2NrIFNlcnZlcl0ocGFja2FnZXMvbW9jay1zZXJ2ZXIvUkVBRE1FLm1kKSAgICAgfCBPcGVuQVBJIE1vY2sgU2VydmVyICAgIHwKfCBbU2NhbGFyIFZvaWQgU2VydmVyXShwYWNrYWdlcy92b2lkLXNlcnZlci9SRUFETUUubWQpICAgICB8IEhUVFAgUmVxdWVzdCBNaXJyb3IgICAgfAp8IFtTY2FsYXIgT3BlbiBBUEkgUGFyc2VyXShwYWNrYWdlcy92b2lkLXNlcnZlci9SRUFETUUubWQpIHwgT3BlbkFQSSBTREsgICAgICAgICAgICB8CnwgW1NjYWxhciBTYW5kYm94XShodHRwczovL3NhbmRib3guc2NhbGFyLmNvbS8pICAgICAgICAgICAgfCBPbmxpbmUgT3BlbkFQSSBFZGl0b3IgIHwKCiMjIERvY3VtZW50YXRpb24KCnwgVG9waWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFtUaGVtZXNdKGRvY3VtZW50YXRpb24vdGhlbWVzLm1kKSAgICAgICAgICAgICAgIHwgVGhlbWVzLCBsYXlvdXRzICYgc3R5bGluZyAgICAgICAgICB8CnwgW0NvbmZpZ3VyYXRpb25dKGRvY3VtZW50YXRpb24vY29uZmlndXJhdGlvbi5tZCkgfCBUaGUgdW5pdmVyc2FsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHwKfCBbT3BlbkFQSV0oZG9jdW1lbnRhdGlvbi9vcGVuYXBpLm1kKSAgICAgICAgICAgICB8IE9wZW5BUEkgYW5kIG91ciBleHRlbnNpb25zIHRvIGl0ICAgfAp8IFtNYXJrZG93bl0oZG9jdW1lbnRhdGlvbi9tYXJrZG93bi5tZCkgICAgICAgICAgIHwgTWFya2Rvd24gc3ludGF4ICAgICAgICAgICAgICAgICAgICB8CgojIyBDb21tdW5pdHkKCldlIGFyZSBBUEkgbmVyZHMuIFlvdSB0b28/IExldOKAmXMgY2hhdCBvbiBEaXNjb3JkOiA8aHR0cHM6Ly9kaXNjb3JkLmdnL3NjYWxhcj4KCj4gWyFOT1RFXVwKPiBbU2NhbGFyIFRvd25oYWxsIGV2ZXJ5IDJuZCBUaHVyc2RheSBpbiBEaXNjb3JkXShodHRwczovL2Rpc2NvcmQuZ2cvc2NhbGFyP2V2ZW50PTEyMTkzNjMzODU0ODU4MjQwMDApCj4KPiBKb2luIHVzIHRvIHNlZSB1cGNvbWluZyBmZWF0dXJlcywgZGlzY3VzcyB0aGUgcm9hZG1hcCBhbmQgY2hhdCBhYm91dCBBUElzLiDwn5KsCgojIyBDb250cmlidXRvcnMKCkNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUhIFJlYWQgdGhlIFtgQ09OVFJJQlVUSU5HYF0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvYmxvYi9tYWluL0NPTlRSSUJVVElORykgZ3VpZGUuCgo8IS0tIHJlYWRtZTogY29sbGFib3JhdG9ycyxjb250cmlidXRvcnMgLXN0YXJ0IC0tPgo8dGFibGU+Cgk8dGJvZHk+CgkJPHRyPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaGFuc3BhZ2VsIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1Nzc5OTI/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJoYW5zcGFnZWwiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmhhbnNwYWdlbDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Ftcml0ayI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMDM5NTM5P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iYW1yaXRrIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5hbXJpdGs8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90bWFzdHJvbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNjUyNTMyOT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9InRtYXN0cm9tIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj50bWFzdHJvbTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21hcmNsYXZlIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYxNzYzMTQ/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJtYXJjbGF2ZSIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+bWFyY2xhdmU8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9od2tyIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYzNzQwOTA/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJod2tyIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5od2tyPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW50bGlvIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0OTY2MTU1P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iYW50bGlvIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5hbnRsaW88L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jYW1lcm9ucm9oYW5pIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYyMDE0MDc/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJjYW1lcm9ucm9oYW5pIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5jYW1lcm9ucm9oYW5pPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ2VvZmZnc2NvdHQiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTkyMDYxMDA/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJnZW9mZmdzY290dCIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+Z2VvZmZnc2NvdHQ8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbnlvdXJ0aW1lIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY2MTExMDMwP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iaW55b3VydGltZSIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+aW55b3VydGltZTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0Ftb3JpbTMzIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQyNjI0ODY5P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iQW1vcmltMzMiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPkFtb3JpbTMzPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWRqc2t5Ij4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ5MzA1MjE5P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iYWRqc2t5Ii8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5hZGpza3k8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9BVFJFQVkiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjY1ODUyOTU/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJBVFJFQVkiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPkFUUkVBWTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KCQk8L3RyPgoJCTx0cj4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0VkZ2FyYXN6cyI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NTY5NjI2OD92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9IkVkZ2FyYXN6cyIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+RWRnYXJhc3pzPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTW9oaWI4MzQiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDczMTY0NjQ/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJNb2hpYjgzNCIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+TW9oaWI4MzQ8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9tY29sbGluYSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MjE5NT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9Im1jb2xsaW5hIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5tY29sbGluYTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NvdWxjaGlsZCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81OTY0Mj92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9InNvdWxjaGlsZCIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+c291bGNoaWxkPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaGV4MGlkIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyNzYyNjE/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJoZXgwaWQiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmhleDBpZDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21wbWluYXJkaSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NTg3NTY3P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0ibXBtaW5hcmRpIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5tcG1pbmFyZGk8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS95a2Rvam8iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTgxMTY1MT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9InlrZG9qbyIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+eWtkb2pvPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbW91aGFubmFkLXNoIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE4NDk1NzQwP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0ibW91aGFubmFkLXNoIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5tb3VoYW5uYWQtc2g8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9tYXNvbi1hdC1waWVjZXMiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTIzNDIxMDg1P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0ibWFzb24tYXQtcGllY2VzIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5tYXNvbi1hdC1waWVjZXM8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9nc21jZG9uYWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM2MDAzMzc4P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iZ3NtY2RvbmFsZCIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+Z3NtY2RvbmFsZDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ZlZGVyaWNvYm9uZCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzg0MjY/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJmZWRlcmljb2JvbmQiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmZlZGVyaWNvYm9uZDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NpZ3B3bmVkIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyMzYzMDI/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJzaWdwd25lZCIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+c2lncHduZWQ8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9NYXNvbi1MaXR0bGUiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTA1MDA4NDQxP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iTWFzb24tTGl0dGxlIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5NYXNvbi1MaXR0bGU8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9NYXhCcmVpZGEiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTg2ODU1Nzk/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJNYXhCcmVpZGEiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPk1heEJyZWlkYTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JpY2tpaGFzdGluZ3MiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDU2NjA/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJyaWNraWhhc3RpbmdzIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5yaWNraWhhc3RpbmdzPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcmJhbmdlIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEzMjUyNTc0P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0icmJhbmdlIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5yYmFuZ2U8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yb21hbmhyeW5ldnljaCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84MjIwOTE5OD92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9InJvbWFuaHJ5bmV2eWNoIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5yb21hbmhyeW5ldnljaDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1NUUDU5NDAiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjExNDQzMDM/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJTVFA1OTQwIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5TVFA1OTQwPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgoJCTwvdHI+CgkJPHRyPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2FwdGFpbnNhZmlhIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE4NTc5OTM/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJjYXB0YWluc2FmaWEiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmNhcHRhaW5zYWZpYTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JlYWxzYW1hIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ2NDAzMjg0P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0icmVhbHNhbWEiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPnJlYWxzYW1hPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vU2ViYXN0aWFuQmllbmVydCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzQ1ODc4NT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9IlNlYmFzdGlhbkJpZW5lcnQiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPlNlYmFzdGlhbkJpZW5lcnQ8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kb3Rmb3J0dW4iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE4MjI5NTc/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJkb3Rmb3J0dW4iLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmRvdGZvcnR1bjwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NvR2l0Ij4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwNjgyNzk4P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0ic29HaXQiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPnNvR2l0PC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2luaDExNzgwMSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MzY5NjcxNT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9InNpbmgxMTc4MDEiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPnNpbmgxMTc4MDE8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90aGliYXVsdGxlb3VheSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzg5NDA1ND92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9InRoaWJhdWx0bGVvdWF5Ii8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj50aGliYXVsdGxlb3VheTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RpbWhldWVyIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ4MjE/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJ0aW1oZXVlciIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+dGltaGV1ZXI8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9iaXRsYWItcnVpemhpIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExMDM4MDYxMz92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9ImJpdGxhYi1ydWl6aGkiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmJpdGxhYi1ydWl6aGk8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9DaGlubGlubGVlIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ5MTU0NjIyP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iQ2hpbmxpbmxlZSIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+Q2hpbmxpbmxlZTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1dpbGxpYW1Cb252aW5pIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3ODM0MTUwP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iV2lsbGlhbUJvbnZpbmkiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPldpbGxpYW1Cb252aW5pPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20veC1kZWxmaW5vIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY3MTkyNTc5P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0ieC1kZWxmaW5vIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj54LWRlbGZpbm88L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Gb3RpZU1Db25zdGFudCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MjM3MjY1Nj92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9IkZvdGllTUNvbnN0YW50Ii8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5Gb3RpZU1Db25zdGFudDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2R1bmtsZXNUb2FzdCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzI3OTQ4NT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9ImR1bmtsZXNUb2FzdCIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+ZHVua2xlc1RvYXN0PC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdHNpd2VrLXBpd2lrIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNzM3MzMzMj92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9InRzaXdlay1waXdpayIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+dHNpd2VrLXBpd2lrPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXJhc2hzaGV5ZGEiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzg5MjIyMDM/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJhcmFzaHNoZXlkYSIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+YXJhc2hzaGV5ZGE8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hcnRodXJmaW9yZXR0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80NzUzNzcwND92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9ImFydGh1cmZpb3JldHRlIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5hcnRodXJmaW9yZXR0ZTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3pzaWxiaSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODg2NjU4P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0ienNpbGJpIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj56c2lsYmk8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9iZHBpcHJhdmEiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzg3MTIwOT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9ImJkcGlwcmF2YSIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+YmRwaXByYXZhPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9ncmNzYWRhIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU0NjczMjA1P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iYnJ1bm9ncmNzYWRhIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5icnVub2dyY3NhZGE8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaGFkd2hpdGFjcmUiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM0NDU1P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iY2hhZHdoaXRhY3JlIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5jaGFkd2hpdGFjcmU8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc2xlYXJuIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU4NzQ4NjQ/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJjaHJpc2xlYXJuIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5jaHJpc2xlYXJuPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGFucCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMTgyP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iZGFucCIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+ZGFucDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2x1bmRpYnVuZGkiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTEwOTYxMj92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9Imx1bmRpYnVuZGkiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmx1bmRpYnVuZGk8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9lbW1hbnVlbC1mZXJkbWFuIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM1NDcwOTIxP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iZW1tYW51ZWwtZmVyZG1hbiIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+ZW1tYW51ZWwtZmVyZG1hbjwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ZhY3VzMjYiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTgwNzkwNTk/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJmYWN1czI2Ii8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5mYWN1czI2PC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRmRhd2dzIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzODE0MTQwP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iRmRhd2dzIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5GZGF3Z3M8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9HcmV5WG9yIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc5NjAyMjczP3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iR3JleVhvciIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+R3JleVhvcjwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0hlbGdlU3ZlcnJlIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwODk2NTI/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJIZWxnZVN2ZXJyZSIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+SGVsZ2VTdmVycmU8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9DSkh3b25nIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkwNjA1Nz92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9IkNKSHdvbmciLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPkNKSHdvbmc8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCQk8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9JY2V5V3UiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjYwOTYyNTQ/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJJY2V5V3UiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPkljZXlXdTwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0phY29iQ29mZmVlIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ1ODg0MjY0P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iSmFjb2JDb2ZmZWUiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPkphY29iQ29mZmVlPC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vVGhlVmFhbiI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTA4NDg1P3Y9NCIgd2lkdGg9IjEwMDsiIGFsdD0iVGhlVmFhbiIvPgogICAgICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgICAgICAgIDxzdWI+PGI+VGhlVmFhbjwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2pvbmF0YXciPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjk3NzI3NjM/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJqb25hdGF3Ii8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5qb25hdGF3PC9iPjwvc3ViPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vSUhJdXRjaCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMDgyNTA0Nz92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9IklISXV0Y2giLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPklISXV0Y2g8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9LaUFSQyI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83Mzg0NzQ4ND92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9IktpQVJDIi8+CiAgICAgICAgICAgICAgICAgICAgPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPHN1Yj48Yj5LaUFSQzwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KCQk8L3RyPgoJCTx0cj4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t5bGxpYW4iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTgzMTIzMz92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9Imt5bGxpYW4iLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPmt5bGxpYW48L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9TaGFkaWVzdEdvYXQiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDg1OTA0OTI/dj00IiB3aWR0aD0iMTAwOyIgYWx0PSJTaGFkaWVzdEdvYXQiLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPlNoYWRpZXN0R29hdDwvYj48L3N1Yj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL01hcmlvR0siPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODM3OTA3OT92PTQiIHdpZHRoPSIxMDA7IiBhbHQ9Ik1hcmlvR0siLz4KICAgICAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgICAgICA8c3ViPjxiPk1hcmlvR0s8L2I+PC9zdWI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CgkJPC90cj4KCTx0Ym9keT4KPC90YWJsZT4KPCEtLSByZWFkbWU6IGNvbGxhYm9yYXRvcnMsY29udHJpYnV0b3JzIC1lbmQgLS0+Cg== readmeEtag: '"186e5932489a5743bbea1fd69a1c8d3083cc1156"' readmeLastModified: Wed, 04 Sep 2024 15:43:48 GMT repositoryId: 679280065 description: Beautiful API references from OpenAPI/Swagger files ✨ created: '2023-08-16T13:42:32Z' updated: '2024-09-05T22:29:53Z' language: TypeScript archived: false stars: 5640 watchers: 21 forks: 171 owner: scalar logo: https://avatars.githubusercontent.com/u/301879?v=4 license: MIT repoEtag: '"77957e2c4b62b0b045ec6175b90a041c0a0cc876f7861d50b0775ad8d49d507b"' repoLastModified: Thu, 05 Sep 2024 22:29:53 GMT foundInMaster: true - source: https://openapi.tools/ name: Scramble category: - Auto Generators - Documentation - Server Implementations language: PHP repository: https://github.com/dedoc/scramble link: https://scramble.dedoc.co/ source_description: >- Modern Laravel OpenAPI documentation generator. No PHPDoc annotations required. v2: false v3: false v3_1: true id: 98f20578b2c52e7c4116e9fa61000f60 repositoryMetadata: base64Readme: >- PHA+CiAgPGEgaHJlZj0iaHR0cHM6Ly9zY3JhbWJsZS5kZWRvYy5jbyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgPGltZyBzcmM9Ii4vLmdpdGh1Yi9naC1pbWcucG5nP3Y9MSIgYWx0PSJTY3JhbWJsZSDigJMgTGFyYXZlbCBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IiLz4KICA8L2E+CjwvcD4KCiMgU2NyYW1ibGUKClNjcmFtYmxlIGdlbmVyYXRlcyBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgTGFyYXZlbCBwcm9qZWN0LiBXaXRob3V0IHJlcXVpcmluZyB5b3UgdG8gbWFudWFsbHkgd3JpdGUgUEhQRG9jIGFubm90YXRpb25zLiBEb2NzIGFyZSBnZW5lcmF0ZWQgaW4gT3BlbkFQSSAzLjEuMCBmb3JtYXQuCgo+ICoqV2FybmluZyoqCj4gUGFja2FnZSBpcyBpbiBlYXJseSBzdGFnZS4gSXQgbWVhbnMgdGhlcmUgbWF5IGJlIGJ1Z3MgYW5kIEFQSSBpcyB2ZXJ5IGxpa2VseSB0byBjaGFuZ2UuIENyZWF0ZSBhbiBpc3N1ZSBpZiB5b3Ugc3BvdCBhIGJ1Zy4gSWRlYXMgYXJlIHdlbGNvbWUuCgojIyBEb2N1bWVudGF0aW9uCgpZb3UgY2FuIGZpbmQgZnVsbCBkb2N1bWVudGF0aW9uIGF0IFtzY3JhbWJsZS5kZWRvYy5jb10oaHR0cHM6Ly9zY3JhbWJsZS5kZWRvYy5jbykuCgojIyBJbnRyb2R1Y3Rpb24KClRoZSBtYWluIG1vdHRvIG9mIHRoZSBwcm9qZWN0IGlzIGdlbmVyYXRpbmcgeW91ciBBUEkgZG9jdW1lbnRhdGlvbiB3aXRob3V0IHJlcXVpcmluZyB5b3UgdG8gYW5ub3RhdGUgeW91ciBjb2RlLgoKVGhpcyBhbGxvd3MgeW91IHRvIGZvY3VzIG9uIGNvZGUgYW5kIGF2b2lkIGFubm90YXRpbmcgZXZlcnkgcG9zc2libGUgcGFyYW0vZmllbGQgYXMgaXQgbWF5IHJlc3VsdCBpbiBvdXRkYXRlZCBkb2N1bWVudGF0aW9uLiBCeSBnZW5lcmF0aW5nIGRvY3MgYXV0b21hdGljYWxseSBmcm9tIHRoZSBjb2RlIHlvdXIgQVBJIHdpbGwgYWx3YXlzIGhhdmUgdXAtdG8tZGF0ZSBkb2NzIHdoaWNoIHlvdSBjYW4gdHJ1c3QuCgojIyBJbnN0YWxsYXRpb24KWW91IGNhbiBpbnN0YWxsIHRoZSBwYWNrYWdlIHZpYSBjb21wb3NlcjoKYGBgc2hlbGwKY29tcG9zZXIgcmVxdWlyZSBkZWRvYy9zY3JhbWJsZQpgYGAKCiMjIFVzYWdlCkFmdGVyIGluc3RhbGwgeW91IHdpbGwgaGF2ZSAyIHJvdXRlcyBhZGRlZCB0byB5b3VyIGFwcGxpY2F0aW9uOgoKLSBgL2RvY3MvYXBpYCAtIFVJIHZpZXdlciBmb3IgeW91ciBkb2N1bWVudGF0aW9uCi0gYC9kb2NzL2FwaS5qc29uYCAtIE9wZW4gQVBJIGRvY3VtZW50IGluIEpTT04gZm9ybWF0IGRlc2NyaWJpbmcgeW91ciBBUEkuCgpCeSBkZWZhdWx0LCB0aGVzZSByb3V0ZXMgYXJlIGF2YWlsYWJsZSBvbmx5IGluIGBsb2NhbGAgZW52aXJvbm1lbnQuIFlvdSBjYW4gY2hhbmdlIHRoaXMgYmVoYXZpb3IgYnkgZGVmaW5pbmcgYHZpZXdBcGlEb2NzYCBnYXRlLgoKLS0tCgo8cD4KICA8YSBocmVmPSJodHRwczovL3NhdmVsaWZlLmluLnVhL2VuL2RvbmF0ZS1lbi8iIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgc3JjPSIuLy5naXRodWIvZ2gtcHJvbW8uc3ZnP3Y9MSIgYWx0PSJEb25hdGUiLz4KICA8L2E+CjwvcD4gCg== readmeEtag: '"64d44e4f6df8b199990ae667dc44b5ee7fed652f"' readmeLastModified: Thu, 22 Aug 2024 09:08:21 GMT repositoryId: 521720102 description: >- Modern Laravel OpenAPI (Swagger) documentation generator. No PHPDoc annotations required. created: '2022-08-05T17:16:20Z' updated: '2024-09-05T22:49:42Z' language: PHP archived: false stars: 1131 watchers: 13 forks: 106 owner: dedoc logo: https://avatars.githubusercontent.com/u/93313138?v=4 license: MIT repoEtag: '"fd9cfe8f008fe43cf02c1a4b506817f372b2a19e735c0e8013b976720b963df1"' repoLastModified: Thu, 05 Sep 2024 22:49:42 GMT foundInMaster: true - source: https://openapi.tools/ name: Scribe category: Documentation link: https://scribe.knuckles.wtf/ repository: https://github.com/knuckleswtf/scribe/ language: PHP source_description: Generate API documentation for humans from your Laravel codebase. v2: false v3: true v3_1: false id: a13f5fae7efc680dc1e5390220f1db3d repositoryMetadata: base64Readme: >- IyBTY3JpYmUKClshW0xhdGVzdCBTdGFibGUgVmVyc2lvbl0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9rbnVja2xlc3d0Zi9zY3JpYmUvdi9zdGFibGUpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMva251Y2tsZXN3dGYvc2NyaWJlKSBbIVtUb3RhbCBEb3dubG9hZHNdKGh0dHBzOi8vcG9zZXIucHVneC5vcmcva251Y2tsZXN3dGYvc2NyaWJlL2Rvd25sb2FkcyldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9rbnVja2xlc3d0Zi9zY3JpYmUpCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0ibG9nby1zY3JpYmUucG5nIj48YnI+CjwvcD4KCgo+IFt2NCBpcyBvdXQgbm93XShodHRwczovL3NjcmliZS5rbnVja2xlcy53dGYvYmxvZy9sYXJhdmVsLXY0KSEgRmVhdHVyaW5nIHN1Ymdyb3VwcywgZWFzaWVyIHNvcnRpbmcsIGFuZCBhbiBhdXRvbWF0ZWQgdXBncmFkZSBjb21tYW5kLgoKU2NyaWJlIGhlbHBzIHlvdSBnZW5lcmF0ZSBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgaHVtYW5zIGZyb20geW91ciBMYXJhdmVsL0x1bWVuL1tEaW5nb10oaHR0cHM6Ly9naXRodWIuY29tL2RpbmdvL2FwaSkgY29kZWJhc2UuIFNlZSBhIGxpdmUgZXhhbXBsZSBhdCBbZGVtby5zY3JpYmUua251Y2tsZXMud3RmXShodHRwczovL2RlbW8uc2NyaWJlLmtudWNrbGVzLnd0ZikuCgojIyBGZWF0dXJlcwotIFVzZWZ1bCBvdXRwdXQ6CiAgLSBQcmV0dHkgc2luZ2xlLXBhZ2UgSFRNTCBkb2MsIHdpdGggaHVtYW4tZnJpZW5kbHkgdGV4dCwgY29kZSBzYW1wbGVzLCBhbmQgaW4tYnJvd3NlciBBUEkgdGVzdGVyICgiVHJ5IEl0IE91dCIpCiAgLSBHZW5lcmF0ZXMgUG9zdG1hbiBjb2xsZWN0aW9uIGFuZCBPcGVuQVBJIHNwZWMKLSBTbWFydHMuIFNjcmliZSBjYW46CiAgLSBleHRyYWN0IHJlcXVlc3QgcGFyYW1ldGVyIGRldGFpbHMgZnJvbSBGb3JtUmVxdWVzdHMgb3IgdmFsaWRhdGlvbiBydWxlcwogIC0gc2FmZWx5IGNhbGwgQVBJIGVuZHBvaW50cyB0byBnZXQgc2FtcGxlIHJlc3BvbnNlcwogIC0gZ2VuZXJhdGUgc2FtcGxlIHJlc3BvbnNlcyBmcm9tIEVsb3F1ZW50IEFQSSBSZXNvdXJjZXMgb3IgVHJhbnNmb3JtZXJzCi0gQ3VzdG9taXNhYmxlIHRvIGRpZmZlcmVudCBsZXZlbHM6CiAgLSBDdXN0b21pc2UgdGhlIFVJIGJ5IGFkanVzdGluZyB0ZXh0LCBvcmRlcmluZywgZXhhbXBsZXMsIG9yIGNoYW5nZSB0aGUgVUkgaXRzZWxmCiAgLSBBZGQgY3VzdG9tIHN0cmF0ZWdpZXMgdG8gYWRqdXN0IGhvdyBkYXRhIGlzIGV4dHJhY3RlZAogIC0gU3RhdGljYWxseSBkZWZpbmUgZXh0cmEgZW5kcG9pbnRzIG9yIGluZm9ybWF0aW9uIHRoYXQgaXNuJ3QgaW4geW91ciBjb2RlYmFzZQoKPiDwn5GLIFNjcmliZSBoZWxwcyB5b3UgZ2VuZXJhdGUgZG9jcyBhdXRvbWF0aWNhbGx5LCBidXQgaWYgeW91IHJlYWxseSB3YW50IHRvIG1ha2UgZnJpZW5kbHksIG1haW50YWluYWJsZSBhbmQgdGVzdGFibGUgQVBJIGRvY3MsIHRoZXJlJ3Mgc29tZSBtb3JlIHRoaW5ncyB5b3UgbmVlZCB0byBrbm93LiBTbyBJIG1hZGUgW2EgY291cnNlXShodHRwczovL3NoYWx2YWgudGVhY2hhYmxlLmNvbS9wL2FwaS1kb2N1bWVudGF0aW9uLWZvci1kZXZlbG9wZXJzP3V0bV9zb3VyY2U9c2NyaWJlLWxhcmF2ZWwmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249bm9uZSkgZm9yIHlvdS7wn6SXCgojIyBEb2N1bWVudGF0aW9uCkNoZWNrIG91dCB0aGUgZG9jdW1lbnRhdGlvbiBhdCBbc2NyaWJlLmtudWNrbGVzLnd0Zi9sYXJhdmVsXShodHRwOi8vc2NyaWJlLmtudWNrbGVzLnd0Zi9sYXJhdmVsKS4KCklmIHlvdSdyZSBjb21pbmcgZnJvbSBgbXBvY2lvdC9sYXJhdmVsLWFwaWRvYy1nZW5lcmF0b3JgLCBmaXJzdCBtaWdyYXRlIFt0byB2M10oaHR0cHM6Ly9zY3JpYmUua251Y2tsZXMud3RmL2xhcmF2ZWwvMy54L21pZ3JhdGluZy1hcGlkb2MpLCB0aGVuIFt0byB2NF0oaHR0cHM6Ly9zY3JpYmUua251Y2tsZXMud3RmL2xhcmF2ZWwvbWlncmF0aW5nLXY0KS4KCiMjIENvbnRyaWJ1dGluZwpDb250cmlidXRpbmcgaXMgZWFzeSEgU2VlIG91ciBbY29udHJpYnV0aW9uIGd1aWRlXShodHRwczovL3NjcmliZS5rbnVja2xlcy53dGYvbGFyYXZlbC9jb250cmlidXRpbmcpLgo= readmeEtag: '"eb63d0293f78564f7e52e02c693d790cf6275c13"' readmeLastModified: Thu, 11 Jul 2024 13:57:05 GMT repositoryId: 260729799 description: Generate API documentation for humans from your Laravel codebase.✍ created: '2020-05-02T16:36:45Z' updated: '2024-09-05T06:44:56Z' language: PHP archived: false stars: 1656 watchers: 17 forks: 296 owner: knuckleswtf logo: https://avatars.githubusercontent.com/u/63367037?v=4 license: MIT repoEtag: '"7346269ee5ad15c451a7a0c460de6f900c943bb720e72a64710b2b6fea6f44ac"' repoLastModified: Thu, 05 Sep 2024 06:44:56 GMT foundInMaster: true - source: https://openapi.tools/ name: Supermodel category: DSL language: SaaS source_description: >- Model your data using JSON Schema, refer and remix the models freely, convert to various formats including OAS v2/v3. link: https://supermodel.io v2: true v3: true foundInMaster: true id: b839c288f46fd1ef91135b5544dc4aef - source: https://openapi.tools/ name: ReadMe category: Documentation link: https://readme.com repository: https://github.com/readmeio language: SaaS source_description: Interactive developer hubs that help users succeed with your APIs 🦉 v2: true v3: true v3_1: true id: e2e7cc265f4d5143a413ce6930c59d2d foundInMaster: true - source: https://openapi.tools/ name: ReDoc category: - Documentation - Parsers language: React.js repository: https://github.com/redocly/redoc/ link: https://redocly.github.io/redoc/ source_description: Open source API reference docs from OpenAPI descriptions v2: true v3: true v3_1: true id: fb3dbdf9a2210ae5f30346b6c0094df3 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8aW1nIGFsdD0iUmVkb2MgbG9nbyIgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vUmVkb2NseS9yZWRvYy9tYWluLy9kb2NzL2ltYWdlcy9yZWRvYy5wbmciIHdpZHRoPSI0MDBweCIgLz4KCiMgR2VuZXJhdGUgYmVhdXRpZnVsIEFQSSBkb2N1bWVudGF0aW9uIGZyb20gT3BlbkFQSQoKICBbIVtucG1dKGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9yZWRvYy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9yZWRvYykgWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9yZWRvYy5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYy9ibG9iL21haW4vTElDRU5TRSkKCiAgWyFbYnVuZGxlIHNpemVdKGh0dHA6Ly9pbWcuYmFkZ2VzaXplLmlvL2h0dHBzOi8vY2RuLnJlZG9jLmx5L3JlZG9jL2xhdGVzdC9idW5kbGVzL3JlZG9jLnN0YW5kYWxvbmUuanM/Y29tcHJlc3Npb249Z3ppcCZtYXg9MzAwMDAwKV0oaHR0cHM6Ly9jZG4ucmVkb2MubHkvcmVkb2MvbGF0ZXN0L2J1bmRsZXMvcmVkb2Muc3RhbmRhbG9uZS5qcykgWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9yZWRvYy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9yZWRvYykgWyFbanNEZWxpdnIgc3RhdHVzXShodHRwczovL2RhdGEuanNkZWxpdnIuY29tL3YxL3BhY2thZ2UvbnBtL3JlZG9jL2JhZGdlKV0oaHR0cHM6Ly93d3cuanNkZWxpdnIuY29tL3BhY2thZ2UvbnBtL3JlZG9jKQo8L2Rpdj4KCgojIyBBYm91dCBSZWRvYwoKUmVkb2MgaXMgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgZ2VuZXJhdGluZyBkb2N1bWVudGF0aW9uIGZyb20gT3BlbkFQSSAoZm9ybWVybHkgU3dhZ2dlcikgZGVmaW5pdGlvbnMuCgpCeSBkZWZhdWx0IFJlZG9jIG9mZmVycyBhIHRocmVlLXBhbmVsLCByZXNwb25zaXZlIGxheW91dDoKCi0gVGhlIGxlZnQgcGFuZWwgY29udGFpbnMgYSBzZWFyY2ggYmFyIGFuZCBuYXZpZ2F0aW9uIG1lbnUuCi0gVGhlIGNlbnRyYWwgcGFuZWwgY29udGFpbnMgdGhlIGRvY3VtZW50YXRpb24uCi0gVGhlIHJpZ2h0IHBhbmVsIGNvbnRhaW5zIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGV4YW1wbGVzLgoKIVtSZWRvYyBkZW1vXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vUmVkb2NseS9yZWRvYy9tYWluL2RlbW8vcmVkb2MtZGVtby5wbmcpCgojIyBMaXZlIGRlbW8KCklmIHlvdSB3YW50IHRvIHNlZSBob3cgUmVkb2MgcmVuZGVycyB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiwKeW91IGNhbiB0cnkgaXQgb3V0IG9ubGluZSBhdCBodHRwczovL3JlZG9jbHkuZ2l0aHViLmlvL3JlZG9jLy4KCkEgdmVyc2lvbiBvZiB0aGUgU3dhZ2dlciBQZXRzdG9yZSBBUEkgaXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuClRvIHRlc3QgaXQgd2l0aCB5b3VyIG93biBPcGVuQVBJIGRlZmluaXRpb24sCmVudGVyIHRoZSBVUkwgZm9yIHlvdXIgZGVmaW5pdGlvbiBhbmQgc2VsZWN0ICoqVFJZIElUKiouCgojIyBSZWRvYyBmZWF0dXJlcwoKLSBSZXNwb25zaXZlIHRocmVlLXBhbmVsIGRlc2lnbiB3aXRoIG1lbnUvc2Nyb2xsaW5nIHN5bmNocm9uaXphdGlvbgotIFN1cHBvcnQgZm9yIE9wZW5BUEkgMy4xLCBPcGVuQVBJIDMuMCwgYW5kIFN3YWdnZXIgMi4wCi0gQWJpbGl0eSB0byBpbnRlZ3JhdGUgeW91ciBBUEkgaW50cm9kdWN0aW9uIGludG8gdGhlIHNpZGUgbWVudQotIEhpZ2gtbGV2ZWwgZ3JvdXBpbmcgaW4gc2lkZSBtZW51IHdpdGggdGhlIFtgeC10YWdHcm91cHNgXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvYXBpLXJlZmVyZW5jZS1kb2NzL3NwZWNpZmljYXRpb24tZXh0ZW5zaW9ucy94LXRhZy1ncm91cHMvKSBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbgotIFtTaW1wbGUgaW50ZWdyYXRpb24gd2l0aCBgY3JlYXRlLXJlYWN0LWFwcGBdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9yZWRvYy9xdWlja3N0YXJ0L3JlYWN0LykKLSBDb2RlIHNhbXBsZXMgc3VwcG9ydCAod2l0aCB2ZW5kb3IgZXh0ZW5zaW9uKSA8YnI+CiAgIVtjb2RlIHNhbXBsZXMgaW4gYWN0aW9uXShkb2NzL2ltYWdlcy9jb2RlLXNhbXBsZXMtZGVtby5naWYpCgojIyBVc2FnZQoKUmVkb2MgaXMgcHJvdmlkZWQgYXMgYSBDTEkgdG9vbCAoYWxzbyBkaXN0cmlidXRlZCBhcyBhIERvY2tlciBpbWFnZSksIEhUTUwgdGFnLCBhbmQgUmVhY3QgY29tcG9uZW50LgoKIyMjIEdlbmVyYXRlIGRvY3VtZW50YXRpb24gZnJvbSB0aGUgQ0xJCgpJZiB5b3UgaGF2ZSBOb2RlIGluc3RhbGxlZCwgcXVpY2tseSBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uIHVzaW5nIGBucHhgOgoKYGBgYmFzaApucHggQHJlZG9jbHkvY2xpIGJ1aWxkLWRvY3Mgb3BlbmFwaS55YW1sIApgYGAKClRoZSB0b29sIG91dHB1dHMgYnkgZGVmYXVsdCB0byBhIGZpbGUgbmFtZWQgYHJlZG9jLXN0YXRpYy5odG1sYCB0aGF0IHlvdSBjYW4gb3BlbiBpbiB5b3VyIGJyb3dzZXIuCgo+IFtSZWRvY2x5IENMSV0oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2NseS1jbGkvKSBkb2VzIG1vcmUgdGhhbiBkb2NzOyBjaGVjayBpdCBvdXQgYW5kIGFkZCBsaW50aW5nLCBidW5kbGluZywgYW5kIG1vcmUgdG8geW91ciBBUEkgd29ya2Zsb3cuCgojIyMgQWRkIGFuIEhUTUwgZWxlbWVudCB0byB0aGUgcGFnZQoKQ3JlYXRlIGFuIEhUTUwgcGFnZSwgb3IgZWRpdCBhbiBleGlzdGluZyBvbmUsIGFuZCBhZGQgdGhlIGZvbGxvd2luZyB3aXRoaW4gdGhlIGJvZHkgdGFnczoKCmBgYGh0bWwKICAgIDxyZWRvYyBzcGVjLXVybD0iaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIj48L3JlZG9jPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnJlZG9jLmx5L3JlZG9jL2xhdGVzdC9idW5kbGVzL3JlZG9jLnN0YW5kYWxvbmUuanMiPiA8L3NjcmlwdD4KYGBgCgpPcGVuIHRoZSBIVE1MIGZpbGUgaW4geW91ciBicm93c2VyLCBhbmQgeW91ciBBUEkgZG9jdW1lbnRhdGlvbiBpcyBzaG93biBvbiB0aGUgcGFnZS4KCkFkZCB5b3VyIG93biBgc3BlYy11cmxgIHRvIHRoZSBgPHJlZG9jPmAgdGFnOyB0aGlzIGF0dHJpYnV0ZSBjYW4gYWxzbyBiZSBhIGxvY2FsIGZpbGUuIFRoZSBKYXZhU2NyaXB0IGxpYnJhcnkgY2FuIGFsc28gYmUgaW5zdGFsbGVkIGxvY2FsbHkgdXNpbmcgYG5wbWAgYW5kIHNlcnZlZCBmcm9tIHlvdXIgb3duIHNlcnZlciwgc2VlIHRoZSBbSFRNTCBkZXBsb3ltZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9yZWRvYy9kZXBsb3ltZW50L2h0bWwvKSBmb3IgbW9yZSBkZXRhaWxzLgoKIyMjIE1vcmUgdXNhZ2Ugb3B0aW9ucwoKQ2hlY2sgb3V0IHRoZSBbZGVwbG95bWVudCBkb2N1bWVudGF0aW9uXSguL2RvY3MvZGVwbG95bWVudC9pbnRyby5tZCkgZm9yIG1vcmUgb3B0aW9ucywgYW5kIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZm9yIGVhY2guCgojIyBSZWRvYyB2cy4gUmVkb2NseSBBUEkgUmVmZXJlbmNlCgpSZWRvYyBpcyBSZWRvY2x5J3MgY29tbXVuaXR5LWVkaXRpb24gcHJvZHVjdC4gTG9va2luZyBmb3Igc29tZXRoaW5nIG1vcmU/CldlIGFsc28gb2ZmZXIgW2hvc3RlZCBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9hcGktcmVnaXN0cnkvZ3VpZGVzL2FwaS1yZWdpc3RyeS1xdWlja3N0YXJ0LykKd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzIGluY2x1ZGluZzoKCiogVHJ5LWl0IGNvbnNvbGUKKiBBdXRvbWF0ZWQgY29kZSBzYW1wbGVzCiogUGFnaW5hdGlvbgoqIEV4dHJhIHRoZW1lIG9wdGlvbnMKCiMjIyBEb2N1bWVudGF0aW9uIGFuZCByZXNvdXJjZXMKCi0gW1JlZmVyZW5jZSBkb2NzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvYXBpLXJlZmVyZW5jZS1kb2NzL2dldHRpbmctc3RhcnRlZC8pIC0gd2UgdGFrZSBjYXJlIG9mIHRoZSBob3N0aW5nCi0gW1JlZG9jXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvcmVkb2MvKSAtIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZm9yIHRoaXMgb3BlbiBzb3VyY2UgcHJvamVjdCAoYWxzbyBpbiB0aGUgYGRvY3MvYCBmb2xkZXIpCi0gW0NvbW1hbmQtbGluZSBpbnRlcmZhY2UgdG8gYnVuZGxlIHlvdXIgZG9jcyBpbnRvIGEgd2ViLXJlYWR5IEhUTUwgZmlsZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9jb21tYW5kcy9idWlsZC1kb2NzLykKLSBBUEkgbGludGluZywgYnVuZGxpbmcsIGFuZCBtdWNoIG1vcmUgd2l0aCBvcGVuIHNvdXJjZSBbUmVkb2NseSBDTEldKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkpCgojIyBTaG93Y2FzZQoKQSBzYW1wbGUgb2YgdGhlIG9yZ2FuaXphdGlvbnMgdXNpbmcgUmVkb2NseSB0b29scyBpbiB0aGUgd2lsZDoKCi0gW1JlYmlsbHldKGh0dHBzOi8vYXBpLXJlZmVyZW5jZS5yZWJpbGx5LmNvbS8pCi0gW0RvY2tlciBFbmdpbmVdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9hcGkvdjEuMjUvKQotIFtadW9yYV0oaHR0cHM6Ly93d3cuenVvcmEuY29tL2RldmVsb3Blci9hcGktcmVmZXJlbmNlLykKLSBbRGlzY291cnNlXShodHRwOi8vZG9jcy5kaXNjb3Vyc2Uub3JnKQotIFtDb21tYm94XShodHRwczovL3d3dy5jb21tYm94LmlvL2FwaS8pCi0gW0FQSXMuZ3VydV0oaHR0cHM6Ly9hcGlzLmd1cnUvYXBpLWRvYy8pCi0gW0JveEtuaWdodF0oaHR0cHM6Ly93d3cuZG9jcy5ib3hrbmlnaHQuY29tLykKLSBbUXVhZGVybm8gQVBJXShodHRwczovL2RldmVsb3BlcnMucXVhZGVybm8uaW8vYXBpKQoKX1B1bGwgcmVxdWVzdHMgdG8gYWRkIHlvdXIgb3duIEFQSSBwYWdlIHRvIHRoZSBsaXN0IGFyZSB3ZWxjb21lXwoKIyMgQ29uZmlndXJhdGlvbgoKUmVkb2MgaXMgaGlnaGx5IGNvbmZpZ3VyYWJsZSwgc2VlIHRoZSBbY29uZmlndXJhdGlvbiBkb2N1bWVudGF0aW9uXShkb2NzL2NvbmZpZy5tZCkgZm9yIGRldGFpbHMuCgojIyMgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbnMKUmVkb2MgdXNlcyB0aGUgZm9sbG93aW5nIFtzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbnNdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9hcGktcmVmZXJlbmNlLWRvY3Mvc3BlYy1leHRlbnNpb25zLyk6CgoqIFtgeC1sb2dvYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LWxvZ28pIC0gaXMgdXNlZCB0byBzcGVjaWZ5IEFQSSBsb2dvCiogW2B4LXRyYWl0VGFnYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LXRyYWl0VGFnKSAtIHVzZWZ1bCBmb3IgdGFncyB0aGF0IHJlZmVyIHRvIG5vbi1uYXZpZ2F0aW9uIHByb3BlcnRpZXMgbGlrZSBQYWdpbmF0aW9uLCBSYXRlLUxpbWl0cywgZXRjCiogW2B4LWNvZGVTYW1wbGVzYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LWNvZGVTYW1wbGVzKSAtIHNwZWNpZnkgb3BlcmF0aW9uIGNvZGUgc2FtcGxlcwoqIFtgeC1leGFtcGxlc2BdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1leGFtcGxlcykgLSBzcGVjaWZ5IEpTT04gZXhhbXBsZSBmb3IgcmVxdWVzdHMKKiBbYHgtbnVsbGFibGVgXShkb2NzL3JlZG9jLXZlbmRvci1leHRlbnNpb25zLm1kI3gtbnVsbGFibGUpIC0gbWFyayBzY2hlbWEgcGFyYW0gYXMgYSBudWxsYWJsZQoqIFtgeC1kaXNwbGF5TmFtZWBdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1kaXNwbGF5bmFtZSkgLSBzcGVjaWZ5IGh1bWFuLWZyaWVuZGx5IG5hbWVzIGZvciB0aGUgbWVudSBjYXRlZ29yaWVzCiogW2B4LXRhZ0dyb3Vwc2BdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC10YWdHcm91cHMpIC0gZ3JvdXAgdGFncyBieSBjYXRlZ29yaWVzIGluIHRoZSBzaWRlIG1lbnUKKiBbYHgtc2VydmVyc2BdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1zZXJ2ZXJzKSAtIGFiaWxpdHkgdG8gc3BlY2lmeSBkaWZmZXJlbnQgc2VydmVycyBmb3IgQVBJIChiYWNrcG9ydGVkIGZyb20gT3BlbkFQSSAzLjApCiogW2B4LWlnbm9yZWRIZWFkZXJQYXJhbWV0ZXJzYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LWlnbm9yZWRIZWFkZXJQYXJhbWV0ZXJzKSAtIGFiaWxpdHkgdG8gc3BlY2lmeSBoZWFkZXIgcGFyYW1ldGVyIG5hbWVzIHRvIGlnbm9yZQoqIFtgeC1hZGRpdGlvbmFsUHJvcGVydGllc05hbWVgXShkb2NzL3JlZG9jLXZlbmRvci1leHRlbnNpb25zLm1kI3gtYWRkaXRpb25hbFByb3BlcnRpZXNOYW1lKSAtIGFiaWxpdHkgdG8gc3VwcGx5IGEgZGVzY3JpcHRpdmUgbmFtZSBmb3IgdGhlIGFkZGl0aW9uYWwgcHJvcGVydHkga2V5cwoqIFtgeC1zdW1tYXJ5YF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LXN1bW1hcnkpIC0gZm9yIFJlc3BvbnNlIG9iamVjdCwgdXNlIGFzIHRoZSByZXNwb25zZSBidXR0b24gdGV4dCwgd2l0aCBkZXNjcmlwdGlvbiByZW5kZXJlZCB1bmRlciB0aGUgYnV0dG9uCiogW2B4LWV4dGVuZGVkRGlzY3JpbWluYXRvcmBdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1leHRlbmRlZERpc2NyaW1pbmF0b3IpIC0gaW4gU2NoZW1hcywgdXNlcyB0aGlzIHRvIHNvbHZlIG5hbWUtY2xhc2ggaXNzdWVzIHdpdGggdGhlIHN0YW5kYXJkIGRpc2NyaW1pbmF0b3IKKiBbYHgtZXhwbGljaXRNYXBwaW5nT25seWBdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1leHBsaWNpdE1hcHBpbmdPbmx5KSAtIGluIFNjaGVtYXMsIGRpc3BsYXkgYSBtb3JlIGRlc2NyaXB0aXZlIHByb3BlcnR5IG5hbWUgaW4gb2JqZWN0cyB3aXRoIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIHdoZW4gdmlld2luZyB0aGUgcHJvcGVydHkgbGlzdCB3aXRoIGFuIG9iamVjdAoKIyMgUmVsZWFzZXMKCioqVGhlIFJFQURNRSBmb3IgdGhlIGAxLnhgIHZlcnNpb24gaXMgb24gdGhlIFt2MS54XShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYy90cmVlL3YxLngpIGJyYW5jaC4qKgoKQWxsIHRoZSAyLnggcmVsZWFzZXMgYXJlIGRlcGxveWVkIHRvIG5wbSBhbmQgY2FuIGJlIHVzZWQgd2l0aCBSZWRvY2x5LWNkbjoKLSBwYXJ0aWN1bGFyIHJlbGVhc2UsIGZvciBleGFtcGxlLCBgdjIuMC4wYDogaHR0cHM6Ly9jZG4ucmVkb2MubHkvcmVkb2MvdjIuMC4wL2J1bmRsZXMvcmVkb2Muc3RhbmRhbG9uZS5qcwotIGBsYXRlc3RgIHJlbGVhc2U6IGh0dHBzOi8vY2RuLnJlZG9jLmx5L3JlZG9jL2xhdGVzdC9idW5kbGVzL3JlZG9jLnN0YW5kYWxvbmUuanMKCkFkZGl0aW9uYWxseSwgYWxsIHRoZSAxLnggcmVsZWFzZXMgYXJlIGhvc3RlZCBvbiBvdXIgR2l0SHViIFBhZ2VzLWJhc2VkIENETiAqKihkZXByZWNhdGVkKSoqOgotIHBhcnRpY3VsYXIgcmVsZWFzZSwgZm9yIGV4YW1wbGUgYHYxLjIuMGA6IGh0dHBzOi8vcmViaWxseS5naXRodWIuaW8vUmVEb2MvcmVsZWFzZXMvdjEuMi4wL3JlZG9jLm1pbi5qcwotIGB2MS54LnhgIHJlbGVhc2U6IGh0dHBzOi8vcmViaWxseS5naXRodWIuaW8vUmVEb2MvcmVsZWFzZXMvdjEueC54L3JlZG9jLm1pbi5qcwotIGBsYXRlc3RgIHJlbGVhc2U6IGh0dHBzOi8vcmViaWxseS5naXRodWIuaW8vUmVEb2MvcmVsZWFzZXMvbGF0ZXN0L3JlZG9jLm1pbi5qcyAtIHBvaW50cyB0byBsYXRlc3QgMS54LnggcmVsZWFzZSBzaW5jZSAyLnggcmVsZWFzZXMgYXJlIG5vdCBob3N0ZWQgb24gdGhpcyBDRE4gYnV0IG9uIHVucGtnLgoKCiMjIERldmVsb3BtZW50CnNlZSBbQ09OVFJJQlVUSU5HLm1kXSguZ2l0aHViL0NPTlRSSUJVVElORy5tZCkK readmeEtag: '"68e2b3e662cf6ae0801e6b270737f78bc3f76df4"' readmeLastModified: Thu, 01 Aug 2024 07:56:39 GMT repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' updated: '2024-09-06T01:19:51Z' language: TypeScript archived: false stars: 23252 watchers: 294 forks: 2283 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"b16032f79cac6fc01994ab773fee1f0ff840269e082040198cdd09629181759c"' repoLastModified: Fri, 06 Sep 2024 01:19:51 GMT foundInMaster: true - source: https://openapi.tools/ name: RestCase Docs category: Documentation link: https://www.restcase.com/platform/docs language: SaaS source_description: >- An API-first and security-first management platform. Design visually and we will create a beautiful API documentation for your APIs. v2: true v3: true foundInMaster: true id: be441b02201591f69504f5e3c7a1e9ca - source: - https://openapi.tools/ - openapi3 tags name: Nexmo OAS Renderer category: Documentation repository: https://github.com/nexmo/nexmo-oas-renderer language: Ruby source_description: Ruby OpenAPI docs rendering, use standalone or add to your Rails app v3: true repositoryMetadata: base64Readme: >- IyBOZXhtbyBPQVMgUmVuZGVyZXIKCiFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vTmV4bW8vbmV4bW8tb2FzLXJlbmRlcmVyL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpClshW01JVCBsaWNlbnNlZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZyldKC4vTElDRU5TRS50eHQpCgpTaW5hdHJhIGFwcGxpY2F0aW9uIHRoYXQgcHJvdmlkZXMgYSBwcmV2aWV3IG9mIGhvdyB0aGUgT0FTIGRvY3VtZW50cyB3aWxsIGJlIHJlbmRlcmVkIHdpdGhpbiBbTmV4bW8gRGV2ZWxvcGVyXShodHRwczovL2RldmVsb3Blci5uZXhtby5jb20vKS4KCiogW0RlcGVuZGVuY2llc10oI3JlcXVpcmVtZW50cykKKiBbSW5zdGFsbGF0aW9uIGFuZCBVc2FnZV0oI2luc3RhbGxhdGlvbi1hbmQtdXNhZ2UpCiAgICAqIFtVc2luZyBEb2NrZXJdKCN1c2luZy1kb2NrZXIpCiAgICAqIFtBcyBhIHN0YW5kYWxvbmUgYXBwbGljYXRpb25dKCNhcy1hLXN0YW5kYWxvbmUtYXBwbGljYXRpb24pCiAgICAqIFtNb3VudGVkIGludG8gYSBSYWlscyBhcHBsaWNhdGlvbl0oI21vdW50ZWQtaW50by1hLXJhaWxzLWFwcGxpY2F0aW9uKQogICAgKiBbU3BlY2lmeWluZyB0aGUgcGF0aCB0byB0aGUgZG9jdW1lbnRzXSgjc3BlY2lmeWluZy10aGUtcGF0aC10by10aGUtZG9jdW1lbnRzKQoqIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCiogW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgRGVwZW5kZW5jaWVzCgoKIyMgSW5zdGFsbGF0aW9uIGFuZCBVc2FnZQoKIyMjIFVzaW5nIERvY2tlcgoKWW91IGNhbiBydW4gdXNpbmcgRG9ja2VyIGFuZCBpdCB3aWxsIHNlcnZlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSAodGhpcyB3aWxsIHVzdWFsbHkgYmUgdGhlIGFwaS1zcGVjaWZpY2F0aW9uIHJlcG8pOgoKIyMjIyBNYWMvTGludXgKCmBgYGJhc2gKZG9ja2VyIHJ1biAtLXJtIC1wIDQ1Njc6NDU2NyAtdiBgcHdkYDovZGVmaW5pdGlvbnMgLWUgJ09BU19QQVRIPS9kZWZpbml0aW9ucycgbmV4bW9kZXYvbmV4bW8tb2FzLXJlbmRlcmVyOmxhdGVzdApgYGAKCkFsdGVybmF0aXZlbHksIGFkZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIgYH4vLmJhc2hyY2AgZmlsZSBhbmQgeW91J2xsIGJlIGFibGUgdG8gcnVuIGBuZXhtby1vYXMtcmVuZGVyZXJgCgpgYGAKZnVuY3Rpb24gbmV4bW8tb2FzLXJlbmRlcmVyKCkgewogIGRvY2tlciBydW4gLS1ybSAtcCA0NTY3OjQ1NjcgLXYgYHB3ZGA6L2RlZmluaXRpb25zIC1lICdPQVNfUEFUSD0vZGVmaW5pdGlvbnMnIG5leG1vZGV2L25leG1vLW9hcy1yZW5kZXJlcjpsYXRlc3QKfQpgYGAKCiMjIyMgV2luZG93cwoKYGBgcHMKZG9ja2VyIHJ1biAtLXJtIC1wIDQ1Njc6NDU2NyAtdiAlQ0QlOi9kZWZpbml0aW9ucyAtZSAnT0FTX1BBVEg9L2RlZmluaXRpb25zJyBuZXhtb2Rldi9uZXhtby1vYXMtcmVuZGVyZXI6bGF0ZXN0CmBgYAoKIyMjIEFzIGEgc3RhbmRhbG9uZSBhcHBsaWNhdGlvbgoKSW5zdGFsbCB0aGUgZ2VtOgoKYGBgIHNoZWxsCiQgZ2VtIGluc3RhbGwgbmV4bW8tb2FzLXJlbmRlcmVyCmBgYAoKQW5kIHNpbXBseSBydW4gdGhlIGV4ZWN1dGFibGUgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbnYgdmFyaWFibGVzIHNldCAoc2VlIFtOb3RlXSgjbm90ZSkpOgpgYGAgc2hlbGwKJCBuZXhtby1vYXMtcmVuZGVyZXIKYGBgCgpPciwgaWYgeW91IHdhbnQgdG8gbWFrZSBjb2RlIGNoYW5nZXMsIGp1c3QgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB3aGljaCB3aWxsIHN0YXJ0IHRoZSB3ZWIgc2VydmVyIG9uIGh0dHA6Ly9sb2NhbGhvc3Q6OTM5MzoKYGBgIHNoZWxsCk9BU19QQVRIPS4uLiBidW5kbGUgZXhlYyBzaG90Z3VuIGxpYi9uZXhtby9vYXMvcmVuZGVyZXIvY29uZmlnLnJ1CmBgYAoKIyMjIE1vdW50ZWQgaW50byBhIFJhaWxzIEFwcGxpY2F0aW9uCgpBZGQgdGhpcyB0byB5b3VyIGFwcGxpY2F0aW9uJ3MgYEdlbWZpbGVgOgoKYGBgCmdlbSAnbmV4bW8tb2FzLXJlbmRlcmVyJywgcmVxdWlyZTogZmFsc2UKYGBgCgpBbmQgdGhlbiBydW4gYGJ1bmRsZSBpbnN0YWxsYC4KClJlcXVpcmUgdGhlIGdlbSBpbiBgY29uZmlnL2Vudmlyb25tZW50LnJiYCBhcyBmb2xsb3dzOgoKYGBgIHJ1YnkKIyBMb2FkIHRoZSBSYWlscyBhcHBsaWNhdGlvbi4KcmVxdWlyZV9yZWxhdGl2ZSAnYXBwbGljYXRpb24nCgpyZXF1aXJlICduZXhtby9vYXMvcmVuZGVyZXInCgojIEluaXRpYWxpemUgdGhlIFJhaWxzIGFwcGxpY2F0aW9uLgpSYWlscy5hcHBsaWNhdGlvbi5pbml0aWFsaXplIQpgYGAKCkFuZCBmaW5hbGx5IG1vdW50IHRoZSBTaW5hdHJhIGFwcCBpbnRvIHlvdXIgUmFpbHMgYXBwbGljYXRpb24gYnkgYWRkaW5nIHRoZSBmb2xsb3dpbmcgbGluZSB0byBgY29uZmlnL3JvdXRlcy5yYmA6CgpgYGAgcnVieQptb3VudCBOZXhtbzo6T0FTOjpSZW5kZXJlcjo6QVBJLCBhdDogJy9hcGknCmBgYAoKIyMjIFNwZWNpZnlpbmcgdGhlIHBhdGggdG8gdGhlIGRvY3VtZW50cwoKVGhpcyBnZW0gdXNlcyBbZG90ZW52XShodHRwczovL2dpdGh1Yi5jb20vYmtlZXBlcnMvZG90ZW52KSB0byBoYW5kbGUgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBzbyB5b3Ugc2hvdWxkIGNvcHkgdGhlIGAuZW52LmV4YW1wbGVgIHByb3ZpZGVkIGJ5IHJ1bm5pbmc6CmBgYCBzaGVsbAokIGNwIC5lbnYuZXhhbXBsZSAuZW52CmBgYAphbmQgYXNzaWduIHZhbHVlcyB0byB0aGUgY29ycmVzcG9uZGluZyB2YXJpYWJsZXMuCgojIyMjIE5vdGUKVGhlIGVudiB2YXJpYWJsZSBgT0FTX1BBVEhgIGluZGljYXRlcyB0aGUgcGF0aCB0byB0aGUgZG9jdW1lbnRzIHRoYXQgd2lsbCBiZSByZW5kZXJlZC4KCiMjIENvbnRyaWJ1dGluZwpXZSDinaTvuI8gY29udHJpYnV0aW9ucyBmcm9tIGV2ZXJ5b25lISBbQnVnIHJlcG9ydHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9OZXhtby9uZXhtby1vYXMtcmVuZGVyZXIvaXNzdWVzKSwgW2J1ZyBmaXhlc10oaHR0cHM6Ly9naXRodWIuY29tL05leG1vL25leG1vLW9hcy1yZW5kZXJlci9wdWxscykgYW5kIGZlZWRiYWNrIG9uIHRoZSBsaWJyYXJ5IGlzIGFsd2F5cyBhcHByZWNpYXRlZC4gTG9vayBhdCB0aGUgW0NvbnRyaWJ1dG9yIEd1aWRlbGluZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9OZXhtby9uZXhtby1vYXMtcmVuZGVyZXIvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgcGxlYXNlIGZvbGxvdyB0aGUgW0dpdEh1YiBGbG93XShodHRwczovL2d1aWRlcy5naXRodWIuY29tL2ludHJvZHVjdGlvbi9mbG93L2luZGV4Lmh0bWwpLgoKIyMgTGljZW5zZQpUaGlzIHByb2plY3QgaXMgdW5kZXIgdGhlIFtNSVQgTElDRU5TRV0oaHR0cHM6Ly9naXRodWIuY29tL05leG1vL25leG1vLW9hcy1yZW5kZXJlci9ibG9iL21hc3Rlci9MSUNFTlNFKS4K readmeEtag: '"9c04021414112fbdbbd64229ac548ca2d11c9bcb"' readmeLastModified: Wed, 14 Jul 2021 07:45:54 GMT repositoryId: 186776115 description: Render your API references, Nexmo-style! created: '2019-05-15T07:47:32Z' updated: '2024-05-01T17:30:22Z' language: HTML archived: false stars: 45 watchers: 15 forks: 4 owner: Nexmo logo: https://avatars.githubusercontent.com/u/551057?v=4 license: MIT repoEtag: '"63716dd50f7c54d7740b74b02f358f6b6ddbc0fb31e0faf02e88e1e8626377a1"' repoLastModified: Wed, 01 May 2024 17:30:22 GMT foundInMaster: true id: 576fdcf39b6a579d65c2e4f63ead9ff4 - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/rookie-luochao/openapi-ui v3: true id: cca834879fa03e42847529ee34ced019 repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgogIE9wZW5BUEkgVUkKPC9oMT4KPHAgYWxpZ249ImNlbnRlciI+Ck9wZW5BUEkvU3dhZ2dlciBVSSBkb2N1bWVudCwgcXVpY2tseSBnZW5lcmF0ZSBtb2NrIHBhcmFtcyBhbmQgY2FsbCBhcGksIGFsc28gc2ltcGxpZmllZCBwb3N0bWFuIHRvb2wKPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcm9va2llLWx1b2NoYW8vb3BlbmFwaS11aS9ibG9iL21hc3Rlci9MSUNFTlNFIj4KICAgIDxpbWcgYWx0PSJMaWNlbnNlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2Uvcm9va2llLWx1b2NoYW8vb3BlbmFwaS11aSI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yb29raWUtbHVvY2hhby9vcGVuYXBpLXVpL3JlbGVhc2VzIj4KICAgIDxpbWcgYWx0PSJSZWxlYXNlIChsYXRlc3QgYnkgZGF0ZSkiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi9yZWxlYXNlL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWkiPgogIDwvYT4KICA8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLXVpLWRpc3QiPgogICAgPGltZyBhbHQ9Im5wbSBvcGVuYXBpLXVpIHBhY2thZ2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vcGVuYXBpLXVpLWRpc3Quc3ZnIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWkvYWN0aW9ucy93b3JrZmxvd3MvcmVsZWFzZS1jaS55bWwiPgogICAgPGltZyBhbHQ9ImJ1aWxkIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWkvcmVsZWFzZS1jaS55bWwiPgogIDwvYT4KICA8YSBocmVmPSJodHRwczovL3JlYWN0LmRldiI+CiAgICA8aW1nIGFsdD0iZnJhbWV3b3JrIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZnJhbWV3b3JrLXJlYWN0LWJyaWdodGdyZWVuIj4KICA8L2E+CjwvcD4KPGg0IGFsaWduPSJjZW50ZXIiPgogIDxwPgogICAgPGI+RW5nbGlzaDwvYj4gfAogICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWkvYmxvYi9tYXN0ZXIvUkVBRE1FLXpoX0NOLm1kIj7nroDkvZPkuK3mloc8L2E+IAogIDwvcD4KPC9oND4KCiMjIFNjcmVlbiBTaG90CjxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleCI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWkvYmxvYi9tYXN0ZXIvc3JjL2Fzc2V0cy9zY3JlZW4tc2hvdC9vcGVuYXBpLXZpZXcucG5nIiBzdHlsZT0id2lkdGg6NTAlIj4KICAgIDxpbWcgYWx0PSJvcGVuYXBpIiBzcmM9Ii4vc3JjL2Fzc2V0cy9zY3JlZW4tc2hvdC9vcGVuYXBpLXZpZXcucG5nIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWkvYmxvYi9tYXN0ZXIvc3JjL2Fzc2V0cy9zY3JlZW4tc2hvdC9vcGVuYXBpLXZpZXcyLnBuZyIgc3R5bGU9IndpZHRoOjUwJSI+CiAgICA8aW1nIGFsdD0ib3BlbmFwaSIgc3JjPSIuL3NyYy9hc3NldHMvc2NyZWVuLXNob3Qvb3BlbmFwaS12aWV3Mi5wbmciPgogIDwvYT4KPC9kaXY+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yb29raWUtbHVvY2hhby9vcGVuYXBpLXVpL2Jsb2IvbWFzdGVyL3NyYy9hc3NldHMvc2NyZWVuLXNob3QvcG9zdG1hbi12aWV3LnBuZyI+CiAgPGltZyBhbHQ9InBvc3RtYW4iIHNyYz0iLi9zcmMvYXNzZXRzL3NjcmVlbi1zaG90L3Bvc3RtYW4tdmlldy5wbmciPgo8L2E+CgojIyBXZWJzaXRlIGRvbWFpbgoqIENOOiBbd3d3Lm9wZW5hcGktdWkuY29tXShodHRwczovL3d3dy5vcGVuYXBpLXVpLmNvbSksIHN1cHBvcnQgaHR0cCxodHRwcwoqIFVTOiBbZG9jLm9wZW5hcGktdWkuY29tXShodHRwczovL2RvYy5vcGVuYXBpLXVpLmNvbSkKKiBVUzI6IFtkb2NzLm9wZW5hcGktdWkuY29tXShodHRwczovL2RvY3Mub3BlbmFwaS11aS5jb20pCgojIyBVc2FnZQojIyMgV2l0aCBDRE4KYHNwZWMtdXJsYCBpcyBgZnVsbCBwYXRoYAoKYGBgdHN4CjwhZG9jdHlwZSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgIDx0aXRsZT5vcGVuQVBJIFVJPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGlkPSJvcGVuYXBpLXVpLWNvbnRhaW5lciIgc3BlYy11cmw9Imh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbiIgdGhlbWU9ImxpZ2h0Ij48L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL29wZW5hcGktdWktZGlzdEBsYXRlc3QvbGliL29wZW5hcGktdWkudW1kLmpzIj48L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4KYGBgCgpgc3BlYy11cmxgIGlzIGBwYXRoYAoKYGBgdHN4CjwhZG9jdHlwZSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgIDx0aXRsZT5vcGVuQVBJIFVJPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGlkPSJvcGVuYXBpLXVpLWNvbnRhaW5lciIgc3BlYy11cmw9Ii9vcGVuYXBpLmpzb24iIHRoZW1lPSJkYXJrIj48L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL29wZW5hcGktdWktZGlzdEBsYXRlc3QvbGliL29wZW5hcGktdWkudW1kLmpzIj48L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4KYGBgCgojIyMgV2l0aCBSZWFjdChvciBXaXRoIFZ1ZSkKYGBgdHN4CmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gInJlYWN0IjsKCmNvbnN0IFNldFVwT3BlbkFwaVVJID0gKCkgPT4gewogIHVzZUVmZmVjdCgoKSA9PiB7CiAgICBpbXBvcnQoIm9wZW5hcGktdWktZGlzdCIpCiAgfSwgW10pOwoKICByZXR1cm4gKAogICAgPGRpdiBpZD0ib3BlbmFwaS11aS1jb250YWluZXIiIHNwZWMtdXJsPSJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24iIHRoZW1lPSJsaWdodCIgLz4KICApOwp9CgpleHBvcnQgY29uc3Qgb3BlbmFwaVJvdXRlcyA9IHsKICBwYXRoOiAiL29wZW5hcGkiLAogIGlkOiAib3BlbmFwaSIsCiAgZWxlbWVudDogPFNldFVwT3BlbkFwaVVJIC8+LAp9OwpgYGAKIyMjIFdpdGggR28gV2ViIEZyYW1ld29yawotIFtnby1vcGVuYXBpLXVpXShodHRwczovL2dpdGh1Yi5jb20vcm9va2llLWx1b2NoYW8vZ28tb3BlbmFwaS11aSkKCiMjIyBXaXRoIE5vZGVqcyBXZWIgRnJhbWV3b3JrCi0gW25vZGVqcy1vcGVuYXBpLXVpXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS11aS9ub2RlanMtb3BlbmFwaS11aSkKCiMjIFF1aWNrIHN0YXJ0CmBgYGJhc2gKIyBub2RlIHZlcnNpb24gPj0gMTgKIyBkb3dubG9hZCBub2RlX21vZHVsZXMKcG5wbSBpbnN0YWxsCiMgb3IgbWFrZSBpbnN0YWxsCgojIHN0YXJ0Cm5wbSBydW4gZGV2CiMgb3IgbWFrZSBkZXYKYGBgCgojIyBTb21lIHNjcmlwdApgYGBiYXNoCiMgYnVpbGQKbnBtIHJ1biBidWlsZAojIG9yIG1ha2UgYnVpbGQKCiMgbWFrZSBkb2NrZXIgaW1hZ2UKbWFrZSBkb2NrZXItYnVpbGQKCiMgcnVuIGRvY2tlciBpbWFnZQptYWtlIGRvY2tlci1ydW4KCiMgbWFrZSBkb2NrZXIgaW1hZ2UgYW5kIHJ1biBkb2NrZXIgaW1hZ2UKbWFrZSBkb2NrZXItYnVpbGQtcnVuCmBgYAoKIyMgU3VwcG9ydCBkYXRhIGZvcm1hdAoqIHN3YWdnZXIyLmpzb24vc3dhZ2dlcjIueW1sCiogb3BlbmFwaTMuanNvbi9vcGVuYXBpMy55bWwKCiMjIEhvdyB0byB1c2UKKiBlbnRlciBzd2FnZ2VyMi9vcGVuYXBpMyBhcGkgZ2F0ZXdheSBVUkwsIHJlZnJlc2ggdGhlIHBhZ2UgdG8gdXBkYXRlIHRoZSBpbnRlcmZhY2UKKiB1cGxvYWQgc3dhZ2dlcjIvb3BlbmFwaTMgZmlsZQoqIGVudGVyIHN3YWdnZXIyL29wZW5hcGkzIHRleHQKCiMjIEdsb2JhbCBjb25maWcKKiBzdXBwb3J0cyBjb25maWd1cmUgcmVxdWVzdCB0aW1lb3V0LCB0aGUgZGVmYXVsdCByZXF1ZXN0IHRpbWVvdXQgaXMgMiBtaW51dGVzCiogc3VwcG9ydHMgY29uZmlndXJlIHJlcXVlc3QgQXV0aG9yaXphdGlvbiwgQXV0aG9yaXphdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgY3VycmVudCByZXF1ZXN0CgojIyBTaGFyZSBVUkwKKiB1cmwgY2FuIG9ubHkgYmUgc2hhcmVkIHdoZW4gaW1wb3J0ZWQgdGhyb3VnaCB1cmwgbW9kZQoqIGNvcHkgdGhlIHVybCBhbmQgc2hhcmUgaXQgd2l0aCB0aG9zZSB3aG8gbmVlZCBpdCwgdGhleSBjYW4gZWNobyB0aGUgdXJsIHRvIHRoZSBzcGVjaWZpZWQgaW50ZXJmYWNlCgojIyBNb2NrIHJlcXVlc3QgcGFyYW1zCjEuIGlmIHRoZSBzY2hlbWEgY29udGFpbnMgdGhlIGZvcm1hdCBmaWVsZCwgdGhlbiB1c2UgW29wZW5hcGktc2FtcGxlcl0oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvb3BlbmFwaS1zYW1wbGVyKSB0byBtb2NrIHJlcXVlc3QgcGFyYW1zCjIuIGlmIHRoZSBzY2hlbWEgZG9lcyBub3QgY29udGFpbiB0aGUgZm9ybWF0IGZpZWxkLCB0aGVuIHVzZSBmYWtlciB0byBtb2NrIHJlcXVlc3QgcGFyYW1zCgojIyBSZXF1ZXN0IGVycm9yIG1lc3NhZ2UgZGlzcGxheSBydWxlcwoxLiBpZiB0aGUgcmV0dXJuZWQgc3RydWN0dXJlIGNvbnRhaW5zIGEgbWVzc2FnZSBmaWVsZCwgZGlzcGxheSB0aGUgbWVzc2FnZSBmaWVsZAoyLiBpZiB0aGUgcmV0dXJuZWQgc3RydWN0dXJlIGNvbnRhaW5zIGEgbXNnIGZpZWxkLCBkaXNwbGF5IHRoZSBtc2cgZmllbGQKMy4gaWYgdGhlIHJldHVybmVkIHJlc3VsdCBpcyBhIHN0cmluZywgZGlzcGxheSB0aGUgc3RyaW5nCjQuIGRpc3BsYXkgQXhpb3NSZXNwb25zZS5zdGF0dXNUZXh0IGZpZWxkCjUuIGRpc3BsYXkgQXhpb3NFcnJvci5tZXNzYWdlIGZpZWxkCgojIyBDb25uZWN0IGludHJhbmV0IGFwaQoqIGlmIHVuYWJsZSB0byBjb25uZWN0IGludHJhbmV0IGFwaSwgeW91IGNhbiBydW4gdGhpcyBwcm9qZWN0IGxvY2FsbHkgb3IgdXNlIGRvY2tlciB0byBkZXBsb3kgdGhpcyBwcm9qZWN0IGxvY2FsbHkgb3Igb24gdGhlIHNlcnZlcgoKIyMgU3VwcG9ydCBtdWx0aXBsZSBhcGkgZ2F0ZXdheSBVUkwKKiB0aGUgY2FjaGluZyBzdHJhdGVneSB1c2VkIGlzIHNlc3Npb24gc3RvcmFnZSwgc28geW91IGNhbiBvcGVuIG11bHRpcGxlIHBhZ2VzIGF0IHRoZSBzYW1lIHRpbWUKCiMjIERvY2tlciBkZXBsb3ksIHN1cHBvcnQgZW52IHZhcmlhYmxlIGluamVjdGlvbgpgYGBiYXNoCiMgcHVsbCBEb2NrZXIgaW1hZ2UKZG9ja2VyIHB1bGwgZ2hjci5pby9yb29raWUtbHVvY2hhby9vcGVuYXBpLXVpOmxhdGVzdAoKIyBzdGFydCBjb250YWluZXIsIG5naW54IHJldmVyc2UgcHJveHkgY3VzdG9tIHBvcnQsIGZvciBleGFtcGxlOiBkb2NrZXIgcnVuIC1kIC1wIDgwODE6ODAgZ2hjci5pby9yb29raWUtbHVvY2hhby9vcGVuYXBpLXVpOmxhdGVzdApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwIC1lIEFQUF9DT05GSUc9ZW52PXpoLGFwcE5hbWVaSD3nroDmtIHnvo7op4LnmoTmjqXlj6PmlofmoaMgZ2hjci5pby9yb29raWUtbHVvY2hhby9vcGVuYXBpLXVpOmxhdGVzdApgYGAKCiMjIE5vZGUgdmVyc2lvbgpub2RlID49IDE4 readmeEtag: '"f53d2a377848fff538ed4462a1777f0847b07655"' readmeLastModified: Mon, 12 Aug 2024 15:46:26 GMT repositoryId: 733969338 description: >- OpenAPI/Swagger UI document, quickly generate mock params and call api, also simplified postman tool. 基于 OpenAPI/Swagger 规范的接口文档,快速模拟请求参数并调用接口,也是简化版 postman 工具 created: '2023-12-20T14:51:12Z' updated: '2024-09-06T00:47:02Z' language: TypeScript archived: false stars: 611 watchers: 2 forks: 57 owner: rookie-luochao logo: https://avatars.githubusercontent.com/u/22948077?v=4 license: MIT repoEtag: '"6fc40be086f5fa0756da27ec48cebd85b2b1b66f280810fa5b9ccdab67ac73ef"' repoLastModified: Fri, 06 Sep 2024 00:47:02 GMT category: - Documentation - Server Implementations foundInMaster: true v3_1: true name: OpenAPI-UI source_description: >- Create simple and beautiful OpenAPI/Swagger documentation from OpenAPI files. Generate mock parameters and call APIs. Like Postman, but for OpenAPI specifications. link: https://docs.openapi-ui.com language: TypeScript v2: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/tufin/oasdiff v3: true repositoryMetadata: base64Readme: >- ClshW0NJXShodHRwczovL2dpdGh1Yi5jb20vVHVmaW4vb2FzZGlmZi93b3JrZmxvd3MvZ28vYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL1R1ZmluL29hc2RpZmYvYWN0aW9ucykKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3R1ZmluL29hc2RpZmYvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPVk4Qk02WDc3SlkpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvdHVmaW4vb2FzZGlmZikKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL3R1ZmluL29hc2RpZmYpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vdHVmaW4vb2FzZGlmZikKWyFbR29Eb2NdKGh0dHBzOi8vZ29kb2Mub3JnL2dpdGh1Yi5jb20vdHVmaW4vb2FzZGlmZj9zdGF0dXMuc3ZnKV0oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS90dWZpbi9vYXNkaWZmKQpbIVtEb2NrZXIgSW1hZ2UgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi90dWZpbi9vYXNkaWZmP3NvcnQ9c2VtdmVyKV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3R1ZmluL29hc2RpZmYvdGFncykKWyFbU2xhY2tdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc2xhY2stJiM2NDtvYXNkaWZmLWdyZWVuLnN2Zz9sb2dvPXNsYWNrKV0oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L29hc2RpZmYvc2hhcmVkX2ludml0ZS96dC0xd3ZvN3dvaXMtdHRuY05CbXlqeVJYcUJ6eWd+UDZvQSkKCiFbb2FzZGlmZiBiYW5uZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS95b25hdGFubWdyL29hc2RpZmYvYXNzZXRzLzMxOTEzNDk1L2FjOWIxNTRlLTcyZDEtNDk2OS1iYzNiLWY1MjdiYmU3NzUxZCkKCgpDb21tYW5kLWxpbmUgYW5kIEdvIHBhY2thZ2UgdG8gY29tcGFyZSBhbmQgZGV0ZWN0IGJyZWFraW5nIGNoYW5nZXMgaW4gT3BlbkFQSSBzcGVjcy4KCiMjIEluc3RhbGxhdGlvbgoKIyMjIEluc3RhbGwgd2l0aCBHbwpgYGBiYXNoCmdvIGluc3RhbGwgZ2l0aHViLmNvbS90dWZpbi9vYXNkaWZmQGxhdGVzdApgYGAKCiMjIyBJbnN0YWxsIG9uIG1hY09TIHdpdGggQnJldwpgYGBiYXNoCmJyZXcgdGFwIHR1ZmluL2hvbWVicmV3LXR1ZmluCmJyZXcgaW5zdGFsbCBvYXNkaWZmCmBgYAoKIyMjIEluc3RhbGwgb24gbWFjT1MgYW5kIExpbnV4IHVzaW5nIGN1cmwKCmBgYGJhc2gKY3VybCAtZnNTTCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdHVmaW4vb2FzZGlmZi9tYWluL2luc3RhbGwuc2ggfCBzaApgYGAKCiMjIyBJbnN0YWxsIHdpdGggYXNkZgoKaHR0cHM6Ly9naXRodWIuY29tL29hc2RpZmYvYXNkZi1vYXNkaWZmCgojIyMgTWFudWFsbHkgaW5zdGFsbCBvbiBtYWNPUywgV2luZG93cyBhbmQgTGludXgKQ29weSBiaW5hcmllcyBmcm9tIFtsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL1R1ZmluL29hc2RpZmYvcmVsZWFzZXMvKQoKCiMjIFRyeSBpdAoKIyMjIExvY2FsbHkKYGBgCm9hc2RpZmYgY2hhbmdlbG9nIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9UdWZpbi9vYXNkaWZmL21haW4vZGF0YS9vcGVuYXBpLXRlc3QxLnlhbWwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1R1ZmluL29hc2RpZmYvbWFpbi9kYXRhL29wZW5hcGktdGVzdDUueWFtbApgYGAKCiMjIyBXaXRoIERvY2tlcgpgYGAKZG9ja2VyIHJ1biAtLXJtIC10IHR1ZmluL29hc2RpZmYgY2hhbmdlbG9nIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9UdWZpbi9vYXNkaWZmL21haW4vZGF0YS9vcGVuYXBpLXRlc3QxLnlhbWwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1R1ZmluL29hc2RpZmYvbWFpbi9kYXRhL29wZW5hcGktdGVzdDUueWFtbApgYGAKCiMjIEZlYXR1cmVzIAotIERldGVjdCBbYnJlYWtpbmcgY2hhbmdlc10oQlJFQUtJTkctQ0hBTkdFUy5tZCkKLSBEaXNwbGF5IGEgdXNlci1mcmllbmRseSBbY2hhbmdlbG9nXShCUkVBS0lORy1DSEFOR0VTLm1kKSBvZiBhbGwgaW1wb3J0YW50IEFQSSBjaGFuZ2VzCi0gR2VuZXJhdGUgY29tcHJlaGVuc2l2ZSBbZGlmZl0oRElGRi5tZCkgcmVwb3J0cyBpbmNsdWRpbmcgYWxsIGFzcGVjdHMgb2YgW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKTogcGF0aHMsIG9wZXJhdGlvbnMsIHBhcmFtZXRlcnMsIHJlcXVlc3QgYm9kaWVzLCByZXNwb25zZXMsIHNjaGVtYXMsIGVudW1zLCBjYWxsYmFja3MsIHNlY3VyaXR5IGV0Yy4KLSBPdXRwdXQgcmVwb3J0cyBpbiBZQU1MLCBKU09OLCBUZXh0LCBNYXJrZG93biwgSFRNTCwgSlVuaXQgWE1MIG9yIHRoZSBbZ2l0aHViIGFjdGlvbnMgYW5ub3RhdGlvbiBmb3JtYXRdKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvdXNpbmctd29ya2Zsb3dzL3dvcmtmbG93LWNvbW1hbmRzLWZvci1naXRodWItYWN0aW9ucyNzZXR0aW5nLWEtd2FybmluZy1tZXNzYWdlKQotIENvbXBhcmUgbG9jYWwgZmlsZXMgb3IgcmVtb3RlIGZpbGVzIG92ZXIgaHR0cC9zCi0gQ29tcGFyZSBzcGVjcyBpbiBZQU1MIG9yIEpTT04gZm9ybWF0Ci0gW0NvbXBhcmUgdHdvIGNvbGxlY3Rpb25zIG9mIHNwZWNzXShDT01QT1NFRC5tZCkKLSBbQVBJIGRlcHJlY2F0aW9uXShERVBSRUNBVElPTi5tZCkKLSBbQVBJIHN0YWJpbGl0eSBsZXZlbHNdKFNUQUJJTElUWS5tZCkKLSBbTXVsdGlwbGUgdmVyc2lvbnMgb2YgdGhlIHNhbWUgZW5kcG9pbnRdKE1BVENISU5HLUVORFBPSU5UUy5tZCNkdXBsaWNhdGUtZW5kcG9pbnRzKQotIFtNZXJnZSBhbGxPZiBzY2hlbWFzXShBTExPRi5tZCkKLSBbTWVyZ2UgY29tbW9uIHBhcmFtZXRlcnNdKENPTU1PTi1QQVJBTVMubWQpCi0gW0Nhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGNvbXBhcmlzb25dKEhFQURFUi1ESUZGLm1kKQotIFtQYXRoIHByZWZpeCBtb2RpZmljYXRpb25dKFBBVEgtUFJFRklYLm1kKQotIFtQYXRoIHBhcmFtZXRlciByZW5hbWluZ10oUEFUSC1QQVJBTS1SRU5BTUUubWQpCi0gW0V4Y2x1ZGluZyBjZXJ0YWluIGtpbmRzIG9mIGNoYW5nZXNdKERJRkYubWQjZXhjbHVkaW5nLXNwZWNpZmljLWtpbmRzLW9mLWNoYW5nZXMpCi0gW1RyYWNraW5nIGNoYW5nZXMgdG8gT3BlbkFQSSBFeHRlbnNpb25zXShESUZGLm1kI29wZW5hcGktZXh0ZW5zaW9ucykKLSBbRmlsdGVyaW5nIGVuZHBvaW50c10oRklMVEVSSU5HLUVORFBPSU5UUy5tZCkKLSBbRXh0ZW5kaW5nIGJyZWFraW5nIGNoYW5nZXMgd2l0aCBjdXN0b20gY2hlY2tzXShDVVNUT01JWklORy1DSEVDS1MubWQpCi0gTG9jYWxpemF0aW9uOiBkaXNwbGF5IGJyZWFraW5nIGNoYW5nZXMgYW5kIGNoYW5nZWxvZyBtZXNzYWdlcyBpbiBFbmdsaXNoIG9yIFJ1c3NpYW4gKFtwbGVhc2UgY29udHJpYnV0ZSBzdXBwb3J0IGZvciB5b3VyIGxhbmd1YWdlXShodHRwczovL2dpdGh1Yi5jb20vVHVmaW4vb2FzZGlmZi9pc3N1ZXMvMzgzKSkKLSBbQ3VzdG9taXplIHdpdGggY29uZmlndXJhdGlvbiBmaWxlc10oQ09ORklHLUZJTEVTLm1kKQotIFtSdW4gZnJvbSBEb2NrZXJdKERPQ0tFUi5tZCkKLSBbSW50ZWdyYXRlIGluIEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL29hc2RpZmYvZ2l0aHViLWRlbW8vdHJlZS9tYWluKQotIFtHaXRIdWIgQWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vb2FzZGlmZi9vYXNkaWZmLWFjdGlvbikKLSBbQ2xvdWQgU2VydmljZV0oT0FTRElGRi1TRVJWSUNFLm1kKQotIFtPcGVuQVBJIFN5bmM6IEdldCBub3RpZmllZCB3aGVuIGFuIEFQSSBwcm92aWRlciBicmVha3MgdGhlIEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL29hc2RpZmYvc3luYy8pCi0gW0VtYmVkIGluIHlvdXIgZ28gcHJvZ3JhbV0oR08ubWQpCgojIyBEZW1vCjxpbWcgc3JjPSIuL2RlbW8uc3ZnIj4KCiMjIFRoZSBtYWluIGNvbW1hbmRzCi0gW2RpZmZdKERJRkYubWQpOiB0aGUgZGlmZiBiZXR3ZWVuIE9wZW5BUEkgc3BlY3MsIGZ1bGx5IGRldGFpbGVkCi0gW2JyZWFraW5nXShCUkVBS0lORy1DSEFOR0VTLm1kKTogYnJlYWtpbmcgY2hhbmdlcyBiZXR3ZWVuIE9wZW5BUEkgc3BlY3MgIAotIFtjaGFuZ2Vsb2ddKEJSRUFLSU5HLUNIQU5HRVMubWQpOiBpbXBvcnRhbnQgY2hhbmdlcyBiZXR3ZWVuIE9wZW5BUEkgc3BlY3MgaW5jbHVkaW5nIGJyZWFraW5nIGFuZCBub24tYnJlYWtpbmcgY2hhbmdlcwotIFtmbGF0dGVuXShBTExPRi5tZCk6IHJlcGxhY2UgYWxsIGluc3RhbmNlcyBvZiBhbGxPZiBieSBhIG1lcmdlZCBlcXVpdmFsZW50Ci0gY2hlY2tzOiBkaXNwbGF5cyB0aGUgZGlmZmVyZW50IGNoZWNrcyB0aGF0IG9hc2RpZmYgcnVucyB0byBkZXRlY3QgY2hhbmdlcwoKIyMgQ3JlZGl0cwpUaGlzIHByb2plY3QgcmVsaWVzIG9uIHRoZSBleGNlbGxlbnQgaW1wbGVtZW50YXRpb24gb2YgT3BlbkFQSSAzLjAgZm9yIEdvOiBba2luLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkpLgoKIyMgRmVlZGJhY2sKV2Ugd2VsY29tZSB5b3VyIGZlZWRiYWNrLiAgCklmIHlvdSBoYXZlIGlkZWFzIGZvciBpbXByb3ZlbWVudCBvciBhZGRpdGlvbmFsIG5lZWRzIGFyb3VuZCBBUElzLCBwbGVhc2UgW2xldCB1cyBrbm93XShodHRwczovL2dpdGh1Yi5jb20vVHVmaW4vb2FzZGlmZi9kaXNjdXNzaW9ucy9uZXc/Y2F0ZWdvcnk9aWRlYXMpLgo= readmeEtag: '"04b4b2231613f556fcbe1672917e1a9e850cb5c0"' readmeLastModified: Tue, 20 Aug 2024 08:46:59 GMT repositoryId: 337689065 description: OpenAPI Diff and Breaking Changes created: '2021-02-10T10:28:36Z' updated: '2024-09-05T14:15:24Z' language: Go archived: false stars: 676 watchers: 10 forks: 59 owner: Tufin logo: https://avatars.githubusercontent.com/u/5352131?v=4 license: Apache-2.0 repoEtag: '"6dca08b936af118decc0ea154d960b95f5346ad08bd17525845fa15695ddfdc7"' repoLastModified: Thu, 05 Sep 2024 14:15:24 GMT foundInMaster: true name: oasdiff language: Go source_description: >- Golang module for deep comparison of two OpenAPI specifications. Available also as a command-line. v2: false v3_1: false homepage: https://github.com/tufin/oasdiff id: bc6193e93faf07fb5675ef9672cc836a category: Parsers - source: - https://openapi.tools/ - openapi3 tags name: - optic diff - optic category: - Learning - Server Implementations language: - Node - cli link: - https://www.useoptic.com/docs/diff-openapi - https://useoptic.com repository: https://github.com/opticdev/optic source_description: - >- Diff the effective API contract between any two versions of your OpenAPI description. Exit 1 on breaking changes. - >- Build your first OpenAPI description from traffic. Use Optic to patch the OpenAPI every time it detects new API behavior. v2: false v3: true repositoryMetadata: base64Readme: >- IAohW0dpdEh1YiBSZXBvIHN0YXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zdGFycy9vcHRpY2Rldi9vcHRpYz9zdHlsZT1zb2NpYWwpICFbR2l0SHViIGNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29udHJpYnV0b3JzLWFub24vb3B0aWNkZXYvb3B0aWM/c3R5bGU9c29jaWFsKSAhW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vQHVzZW9wdGljL29wZW5hcGktaW8/c3R5bGU9c29jaWFsKSAhW2xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2Uvb3B0aWNkZXYvb3B0aWM/c3R5bGU9c29jaWFsKQoKIyBPcHRpYyAtIHRoZSBDSSB0b29sIHRoYXQgaW1wcm92ZXMgeW91ciBBUElzCk9wdGljIGhlbHBzIHlvdSBzaGlwIGEgYmV0dGVyIEFQSSBieSBtYWtpbmcgaXQgZWFzeSBmb3IgdGVhbXMgdG8gdXNlIE9wZW5BUEkuIFByZXZlbnQgYnJlYWtpbmcgY2hhbmdlcywgcHVibGlzaCBhY2N1cmF0ZSBkb2N1bWVudGF0aW9uIGFuZCBpbXByb3ZlIHRoZSBkZXNpZ24gb2YgeW91ciBBUElzLgoKIVtTY3JlZW5zaG90IDIwMjMtMDYtMTQgYXQgMTIgNTUgMTEgUE1dKGh0dHBzOi8vZ2l0aHViLmNvbS9vcHRpY2Rldi9vcHRpYy9hc3NldHMvNTkwMDMzOC9hNDQ2YmFjMi0wNmI2LTQwYmQtYTdkNC00MmYxY2MzNjIxZWEpCgoKKipJbnN0YWxsKioKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBAdXNlb3B0aWMvb3B0aWMKYGBgCm9yCmBgYGJhc2gKc2ggLWMgIiQoY3VybCAtTHMgaHR0cHM6Ly9pbnN0YWxsLnVzZW9wdGljLmNvbS9pbnN0YWxsLnNoKSIKYGBgCgotLS0KCiMjIFJ1biBsb2NhbGx5CgojIyMgUHJldmVudCBicmVha2luZyBjaGFuZ2VzIHVzaW5nIGBvcHRpYyBkaWZmYAoKT3B0aWMgY2FuIGRldGVjdCBicmVha2luZyBjaGFuZ2VzIGJldHdlZW4gYW55IHR3byB2ZXJzaW9ucyBvZiBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24uIE9wdGljIGNhbiBsb29rdXAgdGhlIHZlcnNpb25zIHVzaW5nIEdpdCB0YWdzIGFuZCBicmFuY2ggbmFtZXMgc28geW91IGRvbid0IG5lZWQgdG8gY29weSBmaWxlcyBhcm91bmQuCgoqKkNvbXBhcmVzIHRoZSBIRUFEIHRvIHRoZSBgbWFpbmAgYnJhbmNoKioKYGBgCm9wdGljIGRpZmYgb3BlbmFwaS55bWwgLS1iYXNlIG1haW4gLS1jaGVjawpgYGAKKipDb21wYXJlcyB0d28gYnJhbmNoZXMgYnkgbmFtZSoqCmBgYApvcHRpYyBkaWZmIGZlYXR1cmUvZXhhbXBsZTpvcGVuYXBpLnltbCBkZXZlbG9wOm1haW4gLS1jaGVjawpgYGAKKipDb21wYXJlIGZpbGVzIGluIGFnYWluc3QgYSByZW1vdGUgVVJMKioKYGBgCm9wdGljIGRpZmYgLS1jaGVjayBcCmh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcHRpY2Rldi9ib29rc3RvcmUtZXhhbXBsZS84OWM5YTY3OTM1Yzg1MGMxMDUxMDU5ZjRjNzE5ZWY0MzNkZWE4Y2MwL29wZW5hcGkueW1sIFwKaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wdGljZGV2L2Jvb2tzdG9yZS1leGFtcGxlL2FjNWYzYzU1YTZmN2YyN2M0ODJhNTU3NTYzNjg2ZDAzMjhkYWZiNTUvb3BlbmFwaS55bWwKYGBgCgo8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL29wdGljZGV2L29wdGljL2Fzc2V0cy81OTAwMzM4L2ZkNmNkZDdmLWMxNDctNDY3Yi05NTE3LTg0MjMyYmFhODk4ZiIgd2lkdGg9IjUwMCIgLz4KCltSZWFkIERvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3LnVzZW9wdGljLmNvbS9kb2NzL2RpZmYtb3BlbmFwaSkKCiMjIFRlc3QgdGhlIGFjY3VyYWN5IG9mIHlvdXIgZG9jdW1lbnRhdGlvbiB1c2luZyBgb3B0aWMgY2FwdHVyZWAKSXQgY2FuIGJlIGRpZmZpY3VsdCB0byBrZWVwIGFuIE9wZW5BUEkgaW4tc3luYyB3aXRoIHlvdXIgaW1wbGVtZW50YXRpb24uIE9wdGljIHRlc3RzIGlmIHlvdXIgT3BlbkFQSSBpcyBhY2N1cmF0ZSBieSBjYXB0dXJpbmcgdHJhZmZpYyBmcm9tIHlvdXIgdGVzdHMgYW5kIGNvbXBhcmluZyBpdCB0byB0aGUgc3BlYy4KClRoaW5rIG9mIGl0IGxpa2UgU25hcHNob3QgdGVzdGluZywgYnV0IGZvciB5b3VyIEFQSSdzIGJlaGF2aW9yLCB3aXRoIE9wZW5BUEkgYXMgdGhlIHNuYXBzaG90LgoKPGRldGFpbHM+CiAgPHN1bW1hcnk+VHJ5IGl0IG91dCB3aXRoIG91ciBleGFtcGxlIHJlcG88L3N1bW1hcnk+CiAgWW91IGNhbiBjbG9uZSBvdXIgZXhhbXBsZSByZXBvIHRvIHRyeSBvdXQgYG9wdGljIGNhcHR1cmVgIGFnYWluc3QgYSByZXBvIHRoYXQgaXMgYWxyZWFkeSBzZXQgdXAuCgogIGBgYGJhc2gKICBnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206b3B0aWNkZXYvZXhhbXBsZXMuZ2l0CiAgY2QgLi9leGFtcGxlcy9hcHBzL2Jvb2tzdG9yZS1hcGkKICBucG0gaW5zdGFsbAogIGBgYAoKICBPbmNlIHlvdSd2ZSBzZXQgdXAgdGhlIHJlcG8sIHlvdSBjYW4gcnVuIGBvcHRpYyBjYXB0dXJlIG9wZW5hcGkueW1sYCB0byB2ZXJpZnkgdHJhZmZpYyBhZ2FpbnN0IHlvdXIgT3BlbkFQSSBzcGVjLCBhbmQgYG9wdGljIGNhcHR1cmUgb3BlbmFwaS55bWwgLS11cGRhdGU9aW50ZXJhY3RpdmVgIHRvIHVwZGF0ZSBhbnkgZGlmZnMuCjwvZGV0YWlscz4KClRvIHN0YXJ0IGNhcHR1cmluZyB5b3VyIHRlc3QgdHJhZmZpYywgcnVuOgoKYGBgCm9wdGljIGNhcHR1cmUgaW5pdCBvcGVuYXBpLnltbApgYGAKCkNvbmZpZ3VyYXRpb24gd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIHlvdSBpbiB0aGUgYG9wdGljLnltbGAgZmlsZQoKYGBgeW1sCmNhcHR1cmU6CiAgb3BlbmFwaS55bWw6CiAgICBzZXJ2ZXI6CiAgICAgIGNvbW1hbmQ6IG5wbSBzdGFydCAjIHlvdXIgc2VydmVyIHN0YXJ0IGNvbW1hbmQKICAgICAgdXJsOiBodHRwOi8vbG9jYWxob3N0OjgwODAgIyB3aGVyZSB5b3VyIHNlcnZlciBzdGFydHMKICAgIHJlcXVlc3RzOgogICAgICBzZW5kOgogICAgICAgIC0gcGF0aDogLwogICAgICAgICAgbWV0aG9kOiBHRVQKICAgICAgICAtIHBhdGg6IC91c2Vycy9jcmVhdGUKICAgICAgICAgIG1ldGhvZDogUE9TVAogICAgICAgICAgaGVhZGVyczoKICAgICAgICAgICAgY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgKICAgICAgICAgIGRhdGE6CiAgICAgICAgICAgIG5hbWU6IEhhbmsKYGBgCgpUaGVuIHlvdSBjYW4gcnVuOgoKYGBgCm9wdGljIGNhcHR1cmUgb3BlbmFwaS55bWwKYGBgCgo8aW1nIHdpZHRoPSI2MDIiIGFsdD0iU2NyZWVuc2hvdCAyMDIzLTA5LTA4IGF0IDIgMTEgMDAgUE0iIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL29wdGljZGV2L29wdGljL2Fzc2V0cy8xODM3NDQ4My9hNGRhYmEyYS0zYmUxLTQ0NmQtOTc0Ny0yOGExY2RjZTM5MjYiPgoKCldoZW4gT3B0aWMgZGV0ZWN0cyBhIGRpZmYsIHlvdSBjYW4gY29ycmVjdCBpdCBtYW51YWxseSwgb3IgcnVuIGBvcHRpYyBjYXB0dXJlIC0tdXBkYXRlPWludGVyYWN0aXZlYCB0byBoYXZlIE9wdGljIGZpZ3VyZXMgb3V0IGV4YWN0bHkgd2hpY2ggbGluZXMgb2YgT3BlbkFQSSBuZWVkIHRvIGJlIHVwZGF0ZWQgYW5kIG1ha2UgdGhlIGNoYW5nZXMgZm9yIHlvdS4KCmBgYApvcHRpYyBjYXB0dXJlIG9wZW5hcGkueW1sIC0tdXBkYXRlPWludGVyYWN0aXZlCmBgYAoKPGltZyB3aWR0aD0iNjA0IiBhbHQ9IlNjcmVlbnNob3QgMjAyMy0wOS0wOCBhdCAyIDEyIDE1IFBNIiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcHRpY2Rldi9vcHRpYy9hc3NldHMvMTgzNzQ0ODMvYzdjNTQwYzgtMjUwMS00ODI0LWFhYzYtMDQ5NTg3ZTI5YzBhIj4KCgpbUmVhZCBEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy51c2VvcHRpYy5jb20vZG9jcy92ZXJpZnktb3BlbmFwaSkKCiMjIEltcHJvdmUgeW91ciBBUEkgZGVzaWduIHdpdGggYG9wdGljIGRpZmZgCk9wdGljIGlzIHRoZSBmaXJzdCBBUEkgbGludGVyIGJ1aWx0IHdpdGggdGhlIEFQSSBsaWZlY3ljbGUgaW4tbWluZC4gV2hlbiB0ZXN0aW5nIHlvdXIgQVBJIGRlc2lnbiwgaXQgYWx3YXlzIGNvbnNpZGVycyB0d28gdmVyc2lvbnMgb2YgeW91ciBBUEksIGZvciBleGFtcGxlOiB0aGUgdmVyc2lvbiBvbiB0aGUgYGRldmVsb3BgIHZzIHRoZSBgbGF0ZXN0YCByZWxlYXNlIHRhZy4gVGhpcyBsZXRzIE9wdGljIGNoZWNrIGZvciBhbGwga2luZHMgb2YgdGhpbmdzIFtTcGVjdHJhbCAoYW5kIG90aGVyIGxpbmVycykgbWlzc2VzXShodHRwczovL3d3dy51c2VvcHRpYy5jb20vY29tcGFyaXNvbnMvc3BlY3RyYWwpIGxpa2UgYnJlYWtpbmcgY2hhbmdlcyBhbmQgcHJvcGVyIHVzZSBvZiB5b3VyIEFQSSB2ZXJzaW9uaW5nIHNjaGVtZS4KCgo8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL29wdGljZGV2L29wdGljL2Fzc2V0cy81OTAwMzM4LzUwYTQzZDA5LWY1MzEtNDA1Yi04YjUzLTFjOTFmZjViODIwMSIgd2lkdGg9IjUwMCIgLz4KCgpCZWNhdXNlIE9wdGljIHVuZGVyc3RhbmRzIEFQSSBjaGFuZ2UsIGl0IGNhbiBhcHBseSB5b3VyIGxhdGVzdCBBUEkgc3RhbmRhcmRzIHRvIG5ldyBBUEkgZW5kcG9pbnRzLCBhbmQgYSBsb29zZXIgc2V0IG9mIHN0YW5kYXJkcyB0byBsZWdhY3kgZW5kcG9pbnRzIHRoYXQgY2Fu4oCZdCBjaGFuZ2UuIFtUZWFtcyBsaWtlIFNueWsgdXNlIE9wdGljIGFuZCB0aGlzIGFwcHJvYWNoIHRvIGdvdmVybiBhbGwgdGhlaXIgQVBJc10oaHR0cHM6Ly9zbnlrLmlvL2Jsb2cvc255ay1hcGktZGV2ZWxvcG1lbnQtc2hpZnQtbGVmdC8pLiBXaXRoIE9wdGljLCBkZXZlbG9wZXJzIG9ubHkgZ2V0IGFjdGlvbmFibGUgZmVlZGJhY2sgZnJvbSB0aGUgdG9vbCBhbmQgdGhleSBkb27igJl0IGhhdmUgdG8gdHVybiBydWxlcyBvZmYgdG8gZ2V0IENJIHRvIHBhc3MuCgpDcmVhdGUgYW4gYG9wdGljLnltbGAgZmlsZSBpbiB5b3VyIHJlcG8gYW5kIGNvbmZpZ3VyZSBzb21lIG9mIG91ciBidWlsdC1pbiBydWxlcyBsaWtlIHVzaW5nIHRoaXMgdGVtcGxhdGUgYXMgYSBzdGFydGluZyBwb2ludDoKYGBgeWFtbApydWxlc2V0OgogICMgUHJldmVudCBicmVha2luZyBjaGFuZ2VzCiAgLSBicmVha2luZy1jaGFuZ2VzOgogICAgICAjIFBpY2sgYW4gZXh0ZW5zaW9uIGZvciB5b3VyIHdvcmstaW4tcHJvZ3Jlc3Mgb3BlcmF0aW9ucy4KICAgICAgIyBCcmVha2luZyBjaGFuZ2VzIHdpbCBsYmUgYWxsb3dlZCBoZXJlCiAgICAgIGV4Y2x1ZGVfb3BlcmF0aW9uc193aXRoX2V4dGVuc2lvbjogeC1kcmFmdAogICMgUnVuIGFueSBleGlzdGluZyBzcGVjdHJhbCBydWxlc2V0CiAgLSBzcGVjdHJhbDoKICAgICAgIyBUaGVzZSBydWxlcyB3aWxsIG9ueSBydW4gb24gdGhpbmdzIHlvdSBhZGQgdG8geW91ciBBUEkKICAgICAgIyBJZSBuZXcgcHJvcGVydGllcywgb3BlcmF0aW9ucywgcmVzcG9uc2VzLCBldGMuCiAgICAgIGFkZGVkOgogICAgICAgICMgVVJMcyBhcmUgc3VwcG9ydGVkCiAgICAgICAgLSBodHRwczovL3d3dy5hcGlzdHlsZWd1aWRlcy5kZXYvYXBpL3VybC1zdHlsZS1ndWlkZXMvM2JhMGI0YQogICAgICAgICMgTG9jYWwgZmlsZXMgd29yayB0b28uCiAgICAgICMgLSAuL2xvY2FsLWZpbGUuanMKICAgICAgIyBUaGVzZSBydWxlcyB3aWxsIG9ueSBydW4gb24gZXZlcnl0aGluZyBpbiB0aGUgc3BlYyAobm9ybWFsIHNwZWN0cmFsKQogICAgICBhbHdheXM6CiAgICAgICAgLSBodHRwczovL3d3dy5hcGlzdHlsZWd1aWRlcy5kZXYvYXBpL3VybC1zdHlsZS1ndWlkZXMvM2JhMGI0YQogICMgRW5mb3JjZSBjb25zaXN0ZW50IGNhc2VzIGluIHlvdXIgQVBJCiAgLSBuYW1pbmc6CiAgICAgICMgVGhpcyB3aWxsIGFwcGx5IHRoZSBydWxlIHRvIG9ubHkgbmV3IG5hbWVzIChleGlzdGluZyBvbmVzIHdpbGwgYmUgZXhlbXB0ZWQpCiAgICAgICMgQ2hhbmdlIHRvIGFsd2F5cyBpZiB5b3Ugd2FudCB0byBmYWlsIG9uIGxlZ2FjeSBuYW1lcwogICAgICAjIENoYW5nZSB0byBhZGRlZE9yQ2hhbmdlZCBpZiB5b3Ugd2FudCBpdCB0byBydW4gb24gYWRkZWQgb3IgY2hhbmdlZCBwYXJ0cyBvZiB0aGUgc3BlYwogICAgICByZXF1aXJlZF9vbjogYWRkZWQKICAgICAgIyBEaWZmZXJlbnQgbmFtZXMgZm9yIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3BlYwogICAgICAjIG9wdGlvbnMgPSAic25ha2VfY2FzZSIgImNhbWVsQ2FzZSIgIkNhcGl0YWwtUGFyYW0tQ2FzZSIgInBhcmFtLWNhc2UiICJQYXNjYWxDYXNlIgogICAgICByZXF1ZXN0SGVhZGVyczogQ2FwaXRhbC1QYXJhbS1DYXNlCiAgICAgIHJlc3BvbnNlSGVhZGVyczogcGFyYW0tY2FzZQogICAgICBwcm9wZXJ0aWVzOiBDYXBpdGFsLVBhcmFtLUNhc2UKICAgICAgcGF0aENvbXBvbmVudHM6ICBwYXJhbS1jYXNlCiAgICAgIHF1ZXJ5UGFyYW1ldGVyczogc25ha2VfY2FzZQogICMgUmVxdWlyZSB5b3VyIE9wZW5BUEkgaGFzIGV4YW1wbGVzLCBhbmQgdGhhdCB0aG9zZSBleGFtcGxlcyBtYXRjaCB0aGUgc2NoZW1hCiAgLSBleGFtcGxlczoKICAgICAgIyBUaGlzIHdpbGwgYXBwbHkgdGhlIHJ1bGUgdG8gb25seSBuZXcgbmFtZXMgKGV4aXN0aW5nIG9uZXMgd2lsbCBiZSBleGVtcHRlZCkKICAgICAgIyBDaGFuZ2UgdG8gYWx3YXlzIGlmIHlvdSB3YW50IHRvIGZhaWwgb24gbGVnYWN5IG5hbWVzCiAgICAgICMgQ2hhbmdlIHRvIGFkZGVkT3JDaGFuZ2VkIGlmIHlvdSB3YW50IGl0IHRvIHJ1biBvbiBhZGRlZCBvciBjaGFuZ2VkIHBhcnRzIG9mIHRoZSBzcGVjCiAgICAgIHJlcXVpcmVkX29uOiBhZGRlZAogICAgICAjIFR1cm4gb24vb2ZmIHRoZSBwYXJ0cyBvZiB0aGUgc3BlYyB0aGF0IG5lZWQgZXhhbXBsZXMKICAgICAgcmVxdWlyZV9yZXF1ZXN0X2V4YW1wbGVzOiB0cnVlCiAgICAgIHJlcXVpcmVfcmVzcG9uc2VfZXhhbXBsZXM6IHRydWUKICAgICAgcmVxdWlyZV9wYXJhbWV0ZXJfZXhhbXBsZXM6IHRydWUKICAgICAgIyAob3B0aW9uYWwpIGFsbG93IGNlcnRhaW4gb3BlcmF0aW9ucyBkbyBub3QgbmVlZCBleGFtcGxlcwogICAgICBleGNsdWRlX29wZXJhdGlvbnNfd2l0aF9leHRlbnNpb246IHgtbGVnYWN5LWFwaQogICMgUmVxdWlyZSBkb2N1bWVudGF0aW9uIGluIHlvdXIgT3BlbkFQSSBzcGVjCiAgLSBkb2N1bWVudGF0aW9uOgogICAgICAjIFRoaXMgd2lsbCBhcHBseSB0aGUgcnVsZSB0byBvbmx5IG5ldyBuYW1lcyAoZXhpc3Rpbmcgb25lcyB3aWxsIGJlIGV4ZW1wdGVkKQogICAgICAjIENoYW5nZSB0byBhbHdheXMgaWYgeW91IHdhbnQgdG8gZmFpbCBvbiBsZWdhY3kgbmFtZXMKICAgICAgIyBDaGFuZ2UgdG8gYWRkZWRPckNoYW5nZWQgaWYgeW91IHdhbnQgaXQgdG8gcnVuIG9uIGFkZGVkIG9yIGNoYW5nZWQgcGFydHMgb2YgdGhlIHNwZWMKICAgICAgcmVxdWlyZWRfb246IGFkZGVkCiAgICAgIHJlcXVpcmVfcHJvcGVydHlfZGVzY3JpcHRpb25zOiB0cnVlCiAgICAgIHJlcXVpcmVfb3BlcmF0aW9uX3N1bW1hcnk6IHRydWUKICAgICAgcmVxdWlyZV9vcGVyYXRpb25fZGVzY3JpcHRpb246IHRydWUKICAgICAgcmVxdWlyZV9vcGVyYXRpb25faWQ6IHRydWUKYGBgCgpbUmVhZCBkb2N1bWVudGF0aW9uXShodHRwczovL3d3dy51c2VvcHRpYy5jb20vZG9jcy9zdHlsZS1ndWlkZXMpCgoKIyMgU3RhcnQgcnVubmluZyBpbiBDSQpUbyBzdGFydCB1c2luZyBPcHRpYyBpbiBDSSwgW2ZvbGxvdyB0aGlzIGd1aWRlXShodHRwczovL3d3dy51c2VvcHRpYy5jb20vZG9jcy9zZXR1cC1jaSkuIFdlIHByb3ZpZGUgdGVtcGxhdGUgd29ya2Zsb3dzIGZvciBHaXRIdWIgYW5kIEdpdExhYiB0byBoZWxwIHlvdSBydW4gT3B0aWMgYXMgYSBDSSBjaGVjazoKCiMjIyBHaXRodWIKCmBgYHlhbWwgCiMgLmdpdGh1Yi93b3JrZmxvd3Mvb3B0aWMueW1sCm5hbWU6IG9wdGljCm9uOgogIHB1bGxfcmVxdWVzdDoKICBwdXNoOgogICAgYnJhbmNoZXM6CiAgICAgIC0gIm1haW4iCgpqb2JzOgogIHJ1bjoKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHN0ZXBzOgogICAgICAtIG5hbWU6IENoZWNrb3V0CiAgICAgICAgdXNlczogYWN0aW9ucy9jaGVja291dEB2MwoKICAgICAgLSBuYW1lOiBJbnN0YWxsIE9wdGljCiAgICAgICAgcnVuOiBucG0gaW5zdGFsbCAtLWxvY2F0aW9uIGdsb2JhbCBAdXNlb3B0aWMvb3B0aWMKCiAgICAgIC0gbmFtZTogUnVuIE9wdGljCiAgICAgICAgZW52OgogICAgICAgICAgT1BUSUNfVE9LRU46ICR7eyBzZWNyZXRzLk9QVElDX1RPS0VOIH19CiAgICAgICAgICBHSVRIVUJfVE9LRU46ICR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fQogICAgICAgIHJ1bjogb3B0aWMgcnVuCmBgYAoKIyMjIEdpdGxhYgoKRG9uJ3QgZm9yZ2V0IHRvIGFkZCB0aGUgYE9QVElDX1RPS0VOYCBhbmQgYE9QVElDX0dJVExBQl9UT0tFTmAgdmFyaWFibGVzIHRvIHlvdXIgd29ya2Zsb3cuCgpgYGB5YW1sCiMgLmdpdGxhYi1jaS55bWwKb3B0aWMtZGVmYXVsdC1icmFuY2gtcHVzaDoKICBpbWFnZTogbm9kZTpsYXRlc3QKICBydWxlczoKICAgIC0gaWY6ICRDSV9QSVBFTElORV9TT1VSQ0UgPT0gInB1c2giICYmIE9QVElDX1RPS0VOICYmICRDSV9DT01NSVRfUkVGX05BTUUgPT0gJENJX0RFRkFVTFRfQlJBTkNICiAgc2NyaXB0OgogICAgLSBucG0gaW5zdGFsbCAtZyBAdXNlb3B0aWMvb3B0aWMKICAgIC0gb3B0aWMgcnVuCgpvcHRpYy1tZXJnZS1yZXF1ZXN0OgogIGltYWdlOiBub2RlOmxhdGVzdAogIHJ1bGVzOgogICAgLSBpZjogJENJX1BJUEVMSU5FX1NPVVJDRSA9PSAibWVyZ2VfcmVxdWVzdF9ldmVudCIgJiYgJE9QVElDX1RPS0VOCiAgc2NyaXB0OgogICAgLSBucG0gaW5zdGFsbCAtZyBAdXNlb3B0aWMvb3B0aWMKICAgIC0gZXhwb3J0IE9QVElDX1JFU1VMVD0wOyBvcHRpYyBydW4gfHwgZXhwb3J0IE9QVElDX1JFU1VMVD0kPwogICAgLSBpZiBbICRPUFRJQ19SRVNVTFQgLW5lIDAgXTsgdGhlbiBleGl0IDE7IGZpOwpgYGAKCgo8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL29wdGljZGV2L29wdGljL2Fzc2V0cy81OTAwMzM4LzE4ZWIzODFhLTU5YWEtNDJhZi05NzVhLTM2ZDFmMjRhNTk3OCIgd2lkdGg9IjUwMCIgLz4KCgojIyBSZXNvdXJjZXMKLSBbUmVhZCBvdXIgZnVsbCBkb2N1bWVudGF0aW9uIGhlcmVdKGh0dHBzOi8vd3d3LnVzZW9wdGljLmNvbS9kb2NzKQotIFtOZWVkIGhlbHA/IEJvb2sgb2ZmaWNlIGhvdXJzXShodHRwczovL2NhbGVuZGx5LmNvbS9vcHRpYy1vbmJvYXJkaW5nL29wdGljLW9mZmljZS1ob3VycykKLSBbSm9pbiB1cyBvbiBEaXNjb3JkXShodHRwczovL2Rpc2NvcmQuY29tL2ludml0ZS90OWhBRGt1WWpQKQoKCiMjIyBMaWNlbnNlCk9wdGljIGlzIE1JVCBMaWNlbnNlZCAKCiMjIyBUZWxlbWV0cnkKT3B0aWMgY29sbGVjdHMgdGVsZW1ldHJ5IHdoaWNoIGlzIHVzZWQgdG8gaGVscCB1bmRlcnN0YW5kIGhvdyB0byBpbXByb3ZlIHRoZSBwcm9kdWN0LiBGb3IgZXhhbXBsZSwgdGhpcyB1c2FnZSBkYXRhIGhlbHBzIHRvIGRlYnVnIGlzc3VlcyBhbmQgdG8gcHJpb3JpdGl6ZSBmZWF0dXJlcyBhbmQgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIHVzYWdlLiBUaGUgdXNhZ2Ugb2Ygb3VyIHRlbGVtZXRyeSBkYXRhIGZhbGxzIHVuZGVyIG91ciBbcHJpdmFjeSBwb2xpY3ldKGh0dHBzOi8vd3d3LnVzZW9wdGljLmNvbS9wcml2YWN5LXBvbGljeSkuIFdoaWxlIHRoaXMgaW5mb3JtYXRpb24gZG9lcyBoZWxwIHVzIGJ1aWxkIGEgZ3JlYXQgcHJvZHVjdCwgd2UgdW5kZXJzdGFuZCB0aGF0IG5vdCBldmVyeW9uZSB3YW50cyB0byBzaGFyZSB0aGVpciB1c2FnZSBkYXRhLiBJZiB5b3Ugd291bGQgbGlrZSB0byBkaXNhYmxlIHRlbGVtZXRyeSB5b3UgY2FuIGFkZCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGF0IHdpbGwgb3B0IG91dCBvZiBzZW5kaW5nIHVzYWdlIGRhdGE6CgpgT1BUSUNfVEVMRU1FVFJZX0xFVkVMPW9mZmAgLSBkaXNhYmxlcyB0ZWxlbWV0cnkgKGJvdGggdXNhZ2UsIGFuZCBlcnJvciByZXBvcnRpbmcpCmBPUFRJQ19URUxFTUVUUllfTEVWRUw9ZXJyb3JgIC0gZGlzYWJsZXMgdGVsZW1ldHJ5IChvbmx5IHVzYWdlIGRhdGEgaXMgc2VudCkK readmeEtag: '"afbc5ac2129f268ce794d6fcf248a557482b1ffd"' readmeLastModified: Mon, 26 Aug 2024 22:21:55 GMT repositoryId: 123606765 description: >- OpenAPI linting, diffing and testing. Optic helps prevent breaking changes, publish accurate documentation and improve the design of your APIs. created: '2018-03-02T17:02:50Z' updated: '2024-09-03T20:59:05Z' language: TypeScript archived: false stars: 1338 watchers: 11 forks: 78 owner: opticdev logo: https://avatars.githubusercontent.com/u/34556970?v=4 license: MIT repoEtag: '"2e49e9f475f3e1b781834b9de67ced031e4b1469194963a35547ed697b617f3d"' repoLastModified: Tue, 03 Sep 2024 20:59:05 GMT foundInMaster: true id: 8c3d08406ca659662808d51ddc10b4e4 v3_1: true - source: https://openapi.tools/ name: OpenAPI CRUD Wizard language: Yaml repository: https://github.com/inssch/openapicrudwizard link: https://plugins.jetbrains.com/plugin/19889-openapi-crud-wizard source_description: >- This wizard is an IntelliJ Plugin to create a new OpenAPI document including all CRUD operations based only on a Yaml object. No knowledge about OpenAPI specification needed. v3: true v3_1: true id: 2c2fe4c5fadd80c7fe677b1ad25de5e1 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIENSVUQgV2l6YXJkCgpUaGlzIHJlcG9zaXRvcnkgaXMgYWJvdXQgdGhlIEludGVsbGlKIFBsdWdpbiAiT3BlbkFQSSBDUlVEIFdpemFyZCIKaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzE5ODg5LW9wZW5hcGktY3J1ZC13aXphcmQKCllvdSBjYW4gcmFpc2UgaXNzdWVzIG9yIGZlYXR1cmUgcmVxdWVzdHMgaW4gdGhlICJJc3N1ZXMiIHRhYi4KClRoaXMgc2l0ZSBpcyBpbiBwcm9ncmVzcy4gRnVsbCBkZXNjcmlwdGlvbiBjb21pbmcgc29vbi4KCgo= readmeEtag: '"3d9760d6304818ee7298c9d7a9e4c472c2eb02fa"' readmeLastModified: Tue, 07 Feb 2023 11:38:47 GMT repositoryId: 530957071 description: OpenAPI CRUD Wizard created: '2022-08-31T06:13:23Z' updated: '2024-05-17T16:07:37Z' language: null archived: false stars: 1 watchers: 1 forks: 1 owner: inssch logo: https://avatars.githubusercontent.com/u/109123959?v=4 repoEtag: '"e40eb0af2869d4f3561104158f0be64998795165255e6bda80376557dff95f7a"' repoLastModified: Fri, 17 May 2024 16:07:37 GMT foundInMaster: true category: Server Implementations - source: https://openapi.tools/ name: OAS RAML Converter category: Converters language: Node.js link: https://mulesoft.github.io/oas-raml-converter/ repository: https://github.com/mulesoft/oas-raml-converter source_description: Converts between OpenAPI and RAML API specifications v2: true v3: true repositoryMetadata: base64Readme: >- IyBPQVMgUkFNTCBDb252ZXJ0ZXIgKERFUFJFQ0FURUQpIFshW25wbSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvb2FzLXJhbWwtY29udmVydGVyLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29hcy1yYW1sLWNvbnZlcnRlcikKCiMgRGVwcmVjYXRpb24gTm90aWNlCioqVGhpcyBwcm9qZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIGlzIG5vIGxvbmdlciBtYWludGFpbmVkLiBQbGVhc2UgdXNlIFtXZWJBUEkgUGFyc2VyXShodHRwczovL2dpdGh1Yi5jb20vcmFtbC1vcmcvd2ViYXBpLXBhcnNlcikgY29udmVydGVyIGluc3RlYWQuIGh0dHBzOi8vZ2l0aHViLmNvbS9yYW1sLW9yZy93ZWJhcGktcGFyc2VyKioKCiMjIyBNYXN0ZXIgWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvbXVsZXNvZnQvb2FzLXJhbWwtY29udmVydGVyLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL211bGVzb2Z0L29hcy1yYW1sLWNvbnZlcnRlcikgWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvbXVsZXNvZnQvb2FzLXJhbWwtY29udmVydGVyL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL211bGVzb2Z0L29hcy1yYW1sLWNvbnZlcnRlcj9icmFuY2g9bWFzdGVyKSAKCiMjIyB2MC4yLnggWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvbXVsZXNvZnQvb2FzLXJhbWwtY29udmVydGVyLnN2Zz9icmFuY2g9djAuMi54KV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL211bGVzb2Z0L29hcy1yYW1sLWNvbnZlcnRlcikgWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvbXVsZXNvZnQvb2FzLXJhbWwtY29udmVydGVyL2JhZGdlLnN2Zz9icmFuY2g9djAuMi54KV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL211bGVzb2Z0L29hcy1yYW1sLWNvbnZlcnRlcj9icmFuY2g9djAuMi54KSAKClRoaXMgcGFja2FnZSBoZWxwcyB0byBjb252ZXJ0IGJldHdlZW4gZGlmZmVyZW50IEFQSSBzcGVjaWZpY2F0aW9ucy4gSXQgd2FzIG9yaWdpbmFsbHkgZm9ya2VkIGZyb20gW3RoZSBzdG9wbGlnaHQuaW8gY29udmVydGVyXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vYXBpLXNwZWMtY29udmVydGVyKS4gCgojIyBTdXBwb3J0ZWQgQ29udmVyc2lvbnMgKGJldGEpCgotIE9BUyAoT0FTIDIuMCkgLT4gUkFNTCAxLjA6IFtDb21wbGV0ZSBGdW5jdGlvbmFsIFNwZWNpZmljYXRpb25dKC4vZG9jcy9PQVMyMC10by1SQU1MMTAubWQpCi0gUkFNTCAxLjAgLT4gT0FTIChPQVMgMi4wKTogW0NvbXBsZXRlIEZ1bmN0aW9uYWwgU3BlY2lmaWNhdGlvbl0oLi9kb2NzL1JBTUwxMC10by1PQVMyMC5tZCkKLSBSQU1MIDEuMCAtPiBPQVMgKE9BUyAzLjApOiBbQ29tcGxldGUgRnVuY3Rpb25hbCBTcGVjaWZpY2F0aW9uXSguL2RvY3MvUkFNTDEwLXRvLU9BUzMwLm1kKQotIFJBTUwgMC44IC0+IE9BUyAoT0FTIDIuMCkKLSBSQU1MIDAuOCAtPiBSQU1MIDEuMAoKIyMgVXNpbmcKCiMjIyAxLiBPbmxpbmUgd2ViIHBhZ2UKCkZvciBhbiBvbmxpbmUgY29udmVyc2lvbiwgdXNlOiBbaHR0cHM6Ly9tdWxlc29mdC5naXRodWIuaW8vb2FzLXJhbWwtY29udmVydGVyXShodHRwczovL211bGVzb2Z0LmdpdGh1Yi5pby9vYXMtcmFtbC1jb252ZXJ0ZXIpLgoKIyMjIDIuIENvbW1hbmQgbGluZSB0b29sCgpUaGlzIGNvbW1hbmQgbmVlZHMgdG8gYmUgZXhlY3V0ZSBhZnRlciBjbG9uaW5nIHJlcG9zaXRvcnksIApgYGAKbnBtIHJ1biBidWlsZApgYGAKClRoaXMgdXRpbGl0eSBoZWxwcyB5b3UgY29udmVydGluZyBsb2NhbCBmaWxlcyBmcm9tIHlvdXIgY29tbWFuZCBsaW5lLgoKYGBgCi4vbGliL2Jpbi9jb252ZXJ0ZXIuanMgLS1mcm9tIE9BUzIwIC0tdG8gUkFNTCAuL3BhdGgvdG8vc3dhZ2dlci5qc29uCi4vbGliL2Jpbi9jb252ZXJ0ZXIuanMgLS1mcm9tIE9BUzIwIC0tdG8gUkFNTCAuL3BhdGgvdG8vc3dhZ2dlci5qc29uID4gb3V0cHV0LnJhbWwKCi4vbGliL2Jpbi9jb252ZXJ0ZXIuanMgLS1mcm9tIFJBTUwgLS10byBPQVMyMCAuL3BhdGgvdG8vc291cmNlLnJhbWwgPiBzd2FnZ2VyLmpzb24KYGBgCgpPciBpbnN0YWxsIGdsb2JhbGx5IGFuZCB0aGVuOgoKYGBgCm9hcy1yYW1sLWNvbnZlcnRlciAtLWZyb20gT0FTMjAgLS10byBSQU1MIC4vcGF0aC90by9zd2FnZ2VyLmpzb24Kb2FzLXJhbWwtY29udmVydGVyIC0tZnJvbSBPQVMyMCAtLXRvIFJBTUwgLi9wYXRoL3RvL3N3YWdnZXIuanNvbiA+IG91dHB1dC5yYW1sCgpvYXMtcmFtbC1jb252ZXJ0ZXIgLS1mcm9tIFJBTUwgLS10byBPQVMyMCAuL3BhdGgvdG8vc291cmNlLnJhbWwgPiBzd2FnZ2VyLmpzb24KYGBgCgojIyMgMy4gQXMgYSBzZXJ2aWNlCgpGb3IgYSBSRVNUIEFQSSBvZiB0aGUgY29udmVydGVyLCB5b3UgY2FuIHN0YXJ0IGl0IGluIGFuIGV4cHJlc3Mgc2VydmVyLCBjaGVja291dCB0aGUgW29hcy1yYW1sLWNvbnZlcnRlci1zZXJ2aWNlXShodHRwczovL2dpdGh1Yi5jb20vbXVsZXNvZnQvb2FzLXJhbWwtY29udmVydGVyLXNlcnZpY2UpIHByb2plY3QuCgojIyMgNC4gQXMgYSBkZXBlbmRlbmN5CgojIyMjIEluc3RhbGxhdGlvbiAoTm9kZUpTIG9yIEJyb3dzZXIpCgpgYGBiYXNoCm5wbSBpbnN0YWxsIC0tc2F2ZSBvYXMtcmFtbC1jb252ZXJ0ZXIKYGBgCgojIyMjIEluaXRpYWxpemluZyBhIGNvbnZlcnRlcgoKUmFtbCAxLjAgdG8gT0FTIDIuMDoKYGBganMKdmFyIGNvbnZlcnRlciA9IHJlcXVpcmUoJ29hcy1yYW1sLWNvbnZlcnRlcicpOwp2YXIgcmFtbDEwVG9PYXMyMCA9IG5ldyBjb252ZXJ0ZXIuQ29udmVydGVyKGNvbnZlcnRlci5Gb3JtYXRzLlJBTUwsIGNvbnZlcnRlci5Gb3JtYXRzLk9BUzIwKTsKYGBgCgpPQVMgMi4wIHRvIFJhbWwgMS4wOgpgYGBqcwp2YXIgY29udmVydGVyID0gcmVxdWlyZSgnb2FzLXJhbWwtY29udmVydGVyJyk7CnZhciBvYXMyMFRvUmFtbDEwID0gbmV3IGNvbnZlcnRlci5Db252ZXJ0ZXIoY29udmVydGVyLkZvcm1hdHMuT0FTMjAsIGNvbnZlcnRlci5Gb3JtYXRzLlJBTUwpOwpgYGAKClRoZSBjb252ZXJ0ZXIgZGV0ZWN0cyB0aGUgaW5wdXQgcmFtbCBmb3JtYXQgYXV0b21hdGljYWxseSBieSBwYXNzaW5nIGBSQU1MYCBpbXBvcnQgZm9ybWF0LCBzbzoKUmFtbCAwLjggdG8gT0FTIDIuMDoKYGBganMKdmFyIGNvbnZlcnRlciA9IHJlcXVpcmUoJ29hcy1yYW1sLWNvbnZlcnRlcicpOwp2YXIgcmFtbDA4VG9PYXMyMCA9IG5ldyBjb252ZXJ0ZXIuQ29udmVydGVyKGNvbnZlcnRlci5Gb3JtYXRzLlJBTUwsIGNvbnZlcnRlci5Gb3JtYXRzLk9BUzIwKTsKYGBgClJhbWwgMC44IHRvIFJhbWwgMS4wOgpgYGBqcwp2YXIgY29udmVydGVyID0gcmVxdWlyZSgnb2FzLXJhbWwtY29udmVydGVyJyk7CnZhciByYW1sMDhUb1JhbWwxMCA9IG5ldyBjb252ZXJ0ZXIuQ29udmVydGVyKGNvbnZlcnRlci5Gb3JtYXRzLlJBTUwsIGNvbnZlcnRlci5Gb3JtYXRzLlJBTUwpOwpgYGAKCiMjIyMgQ29udmVydGluZyBmcm9tIGEgZmlsZSBvciB1cmwKCmBgYGpzCm9hczIwVG9SYW1sMTAuY29udmVydEZpbGUoJy9wYXRoL3RvL3N3YWdnZXIuanNvbicpLnRoZW4oZnVuY3Rpb24ocmFtbCkgewogIGNvbnNvbGUubG9nKHJhbWwpOyAvLyByYW1sIGlzIHJhbWwgeWFtbCBzdHJpbmcKfSkKLmNhdGNoKGZ1bmN0aW9uKGVycikgewogIGNvbnNvbGUuZXJyb3IoZXJyKTsKfSk7CmBgYAoKIyMjIyBDb252ZXJ0aW5nIGZyb20gYSBzdHJpbmcgb3IganNvbgoKYGBganMKdmFyIG15T2FzU3RyaW5nID0gJy4uLic7Cm9hczIwVG9SYW1sMTAuY29udmVydERhdGEobXlPYXNTdHJpbmcpLnRoZW4oZnVuY3Rpb24ocmFtbCkgewogIGNvbnNvbGUubG9nKHJhbWwpOyAvLyByYW1sIGlzIHJhbWwgeWFtbCBzdHJpbmcKfSkKLmNhdGNoKGZ1bmN0aW9uKGVycikgewogIGNvbnNvbGUuZXJyb3IoZXJyKTsKfSk7CmBgYAoKIyMjIyBQYXNzaW5nIG9wdGlvbnMKCmBgYGpzCnZhciBvcHRpb25zID0gewogICAgdmFsaWRhdGU6IGZhbHNlLCAvLyBQYXJzZSBib3RoIGlucHV0IGFuZCBvdXRwdXQgdG8gY2hlY2sgdGhhdCBpdHMgYSB2YWxpZCBkb2N1bWVudAogICAgdmFsaWRhdGVJbXBvcnQ6IGZhbHNlLCAvLyBPbmx5IHZhbGlkYXRlIGlucHV0CiAgICB2YWxpZGF0ZUV4cG9ydDogZmFsc2UsIC8vIE9ubHkgdmFsaWRhdGUgb3V0cHV0CiAgICBmb3JtYXQ6ICd5YW1sJywgLy8gT3V0cHV0IGZvcm1hdDoganNvbiAoZGVmYXVsdCBmb3IgT0FTKSBvciB5YW1sIChkZWZhdWx0IGZvciBSQU1MKQogICAgZnM6IHsgLi4uIH0gLy8gVXNlIGEgY3VzdG9tIGZpbGUgc3lzdGVtIHNvbHZlciAobm90IHlldCBhdmFpbGFibGUpCn07CgpvYXMyMFRvUmFtbDEwLmNvbnZlcnRGaWxlKCcvcGF0aC90by9zd2FnZ2VyLmpzb24nLCBvcHRpb25zKS50aGVuKGZ1bmN0aW9uKHJhbWwpIHsKICBjb25zb2xlLmxvZyhyYW1sKTsgLy8gcmFtbCBpcyByYW1sIHlhbWwgc3RyaW5nCn0pCi5jYXRjaChmdW5jdGlvbihlcnIpIHsKICBjb25zb2xlLmVycm9yKGVycik7Cn0pOwpgYGAKCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSEgUGxlYXNlIGNoZWNrIHRoZSBjdXJyZW50IGlzc3VlcyB0byBtYWtlIHN1cmUgd2hhdCB5b3UgYXJlIHRyeWluZyB0byBkbyBoYXMgbm90IGFscmVhZHkgYmVlbiBkaXNjdXNzZWQuCgojIyMgU3RlcHMKCjEuIEZvcmsuCjIuIE1ha2UgY2hhbmdlcy4KMy4gV3JpdGUgdGVzdHMuCjQuIFNlbmQgYSBwdWxsIHJlcXVlc3QuCgojIyMgRGV2ZWxvcAoKSW5zdGFsbCBkZXBlbmRlbmNpZXM6CmBgYGJhc2gKbnBtIGluc3RhbGwKYGBgCgpSdW4gdGVzdHM6CmBgYGJhc2gKbnBtIHRlc3QKYGBgCgpSdW4gZXNsaW50IHRvIGNoZWNrIGxpbnRpbmcgZXJyb3JzOgpgYGBiYXNoCm5wbSBydW4gZXNsaW50CmBgYAo= readmeEtag: '"96668028f8add8a14f4ef8443482f35ccd222055"' readmeLastModified: Thu, 05 Sep 2019 20:39:33 GMT repositoryId: 65008129 description: (DEPRECATED) Converts between OAS and RAML API specifications created: '2016-08-05T09:49:24Z' updated: '2024-08-13T08:03:53Z' language: JavaScript archived: true stars: 73 watchers: 243 forks: 48 owner: mulesoft logo: https://avatars.githubusercontent.com/u/185740?v=4 license: MIT repoEtag: '"0227dc99172555a126b275a489eb3ef48d3cec0d1c8ddf66d84fcf85cec2b654"' repoLastModified: Tue, 13 Aug 2024 08:03:53 GMT foundInMaster: true id: 24686ca74b0284507f5f437578166800 - source: https://openapi.tools/ name: OData OpenAPI homepage: https://github.com/oasis-tcs/odata-openapi language: - Node.js - XSLT source_description: OData 4.0, 3.0, and 2.0 to OpenAPI v3.1, v3.0, and v2.0 converter category: Converters repository: https://github.com/oasis-tcs/odata-openapi v2: true v3: true repositoryMetadata: base64Readme: >- WyFbbnBtIERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvb2RhdGEtb3BlbmFwaSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29kYXRhLW9wZW5hcGkpCgo8ZGl2Pgo8aDI+UkVBRE1FPC9oMj4KCjxwPk1lbWJlcnMgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvb2RhdGEvIj5PQVNJUyBPcGVuIERhdGEgUHJvdG9jb2wgKE9EYXRhKSBUZWNobmljYWwgQ29tbWl0dGVlPC9hPiBjcmVhdGUgYW5kIG1hbmFnZSB0ZWNobmljYWwgY29udGVudCBpbiB0aGlzIFRDIEdpdEh1YiByZXBvc2l0b3J5ICggPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29hc2lzLXRjcy9vZGF0YS1vcGVuYXBpIj5odHRwczovL2dpdGh1Yi5jb20vb2FzaXMtdGNzL29kYXRhLW9wZW5hcGk8L2E+ICkgYXMgcGFydCBvZiB0aGUgVEMncyBjaGFydGVyZWQgd29yayAoPGk+aS5lLjwvaT4sIHRoZSBwcm9ncmFtIG9mIHdvcmsgYW5kIGRlbGl2ZXJhYmxlcyBkZXNjcmliZWQgaW4gaXRzIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvb2RhdGEvY2hhcnRlci5waHAiPmNoYXJ0ZXI8L2E+KS48L3A+Cgo8cD5PQVNJUyBUQyBHaXRIdWIgcmVwb3NpdG9yaWVzLCBhcyBkZXNjcmliZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly93d3cub2FzaXMtb3Blbi5vcmcvcmVzb3VyY2VzL3RjYWRtaW4vZ2l0aHViLXJlcG9zaXRvcmllcy1mb3Itb2FzaXMtdGMtbWVtYmVycy1jaGFydGVyZWQtd29yayI+R2l0SHViIFJlcG9zaXRvcmllcyBmb3IgT0FTSVMgVEMgTWVtYmVycycgQ2hhcnRlcmVkIFdvcms8L2E+LCBhcmUgZ292ZXJuZWQgYnkgdGhlIE9BU0lTIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL3BvbGljaWVzLWd1aWRlbGluZXMvdGMtcHJvY2VzcyI+VEMgUHJvY2VzczwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL3BvbGljaWVzLWd1aWRlbGluZXMvaXByIj5JUFIgUG9saWN5PC9hPiwgYW5kIG90aGVyIHBvbGljaWVzLCBzaW1pbGFyIHRvIFRDIFdpa2lzLCBUQyBKSVJBIGlzc3VlcyB0cmFja2luZyBpbnN0YW5jZXMsIFRDIFNWTi9TdWJ2ZXJzaW9uIHJlcG9zaXRvcmllcywgZXRjLiAgV2hpbGUgdGhleSBtYWtlIHVzZSBvZiBwdWJsaWMgR2l0SHViIHJlcG9zaXRvcmllcywgdGhlc2UgVEMgR2l0SHViIHJlcG9zaXRvcmllcyBhcmUgZGlzdGluY3QgZnJvbSA8YSBocmVmPSJodHRwczovL3d3dy5vYXNpcy1vcGVuLm9yZy9yZXNvdXJjZXMvb3Blbi1yZXBvc2l0b3JpZXMiPk9BU0lTIE9wZW4gUmVwb3NpdG9yaWVzPC9hPiwgd2hpY2ggYXJlIHVzZWQgZm9yIGRldmVsb3BtZW50IG9mIG9wZW4gc291cmNlIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL3Jlc291cmNlcy9vcGVuLXJlcG9zaXRvcmllcy9saWNlbnNlcyI+bGljZW5zZWQ8L2E+IGNvbnRlbnQuPC9wPgo8L2Rpdj4KCjxkaXY+CjxoMz5EZXNjcmlwdGlvbjwvaDM+Cgo8cD5UaGUgcHVycG9zZSBvZiB0aGlzIHJlcG9zaXRvcnkgaXMgdG8gc3VwcG9ydCBkZXZlbG9wbWVudCBvZiB0b29scyBmb3IgcHJvZHVjaW5nIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uIj5PcGVuQVBJPC9hPiBkZXNjcmlwdGlvbnMgZm9yIE9EYXRhIHNlcnZpY2VzLjwvcD4KPHA+UGxhbm5lZCB3b3JrIGl0ZW1zIGluY2x1ZGU6Cjx1bD4KPGxpPmNvbnZlcnQgT0RhdGEgQ1NETCBKU09OIG9yIE9EYXRhIENTREwgWE1MIHRvIE9wZW5BUEkgSlNPTjwvbGk+CjxsaT5leGFtcGxlIFhNTCBmaWxlczwvbGk+CjxsaT5leGFtcGxlIG9wZW5hcGkuanNvbiBmaWxlczwvbGk+CjxsaT5leGFtcGxlIGZpbGVzIGZvciB0aGUgbGl2ZSBvZGF0YS5vcmcgc2VydmljZXM8L2xpPgo8L3VsPjwvcD4KCjwvZGl2PgoKPGRpdj4KPGgzPkNvbnRyaWJ1dGlvbnM8L2gzPgo8cD5BcyBzdGF0ZWQgaW4gdGhpcyByZXBvc2l0b3J5J3MgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29hc2lzLXRjcy9vZGF0YS1vcGVuYXBpL2Jsb2IvbWFpbi9DT05UUklCVVRJTkcubWQiPkNPTlRSSUJVVElORyBmaWxlPC9hPiwgY29udHJpYnV0b3JzIHRvIHRoaXMgcmVwb3NpdG9yeSBhcmUgZXhwZWN0ZWQgdG8gYmUgTWVtYmVycyBvZiB0aGUgT0FTSVMgT0RhdGEgVEMsIGZvciBhbnkgc3Vic3RhbnRpdmUgY2hhbmdlIHJlcXVlc3RzLiAgQW55b25lIHdpc2hpbmcgdG8gY29udHJpYnV0ZSB0byB0aGlzIEdpdEh1YiBwcm9qZWN0IGFuZCA8YSBocmVmPSJodHRwczovL3d3dy5vYXNpcy1vcGVuLm9yZy9qb2luL3BhcnRpY2lwYXRpb24taW5zdHJ1Y3Rpb25zIj5wYXJ0aWNpcGF0ZTwvYT4gaW4gdGhlIFRDJ3MgdGVjaG5pY2FsIGFjdGl2aXR5IGlzIGludml0ZWQgdG8gam9pbiBhcyBhbiBPQVNJUyBUQyBNZW1iZXIuICBQdWJsaWMgZmVlZGJhY2sgaXMgYWxzbyBhY2NlcHRlZCwgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL3BvbGljaWVzLWd1aWRlbGluZXMvaXByI2FwcGVuZGl4YSI+T0FTSVMgRmVlZGJhY2sgTGljZW5zZTwvYT4uPC9wPgo8L2Rpdj4KCjxkaXY+CjxoMz5MaWNlbnNpbmc8L2gzPgo8cD5QbGVhc2Ugc2VlIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb2FzaXMtdGNzL29kYXRhLW9wZW5hcGkvYmxvYi9tYWluL0xJQ0VOU0UubWQiPkxJQ0VOU0U8L2E+IGZpbGUgZm9yIGRlc2NyaXB0aW9uIG9mIHRoZSBsaWNlbnNlIHRlcm1zIGFuZCBPQVNJUyBwb2xpY2llcyBhcHBsaWNhYmxlIHRvIHRoZSBUQydzIHdvcmsgaW4gdGhpcyBHaXRIdWIgcHJvamVjdC4gQ29udGVudCBpbiB0aGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgdG8gYmUgcGFydCBvZiB0aGUgT0RhdGEgVEMncyBwZXJtYW5lbnQgcmVjb3JkIG9mIGFjdGl2aXR5LCB2aXNpYmxlIGFuZCBmcmVlbHkgYXZhaWxhYmxlIGZvciBhbGwgdG8gdXNlLCBzdWJqZWN0IHRvIGFwcGxpY2FibGUgT0FTSVMgcG9saWNpZXMsIGFzIHByZXNlbnRlZCBpbiB0aGUgcmVwb3NpdG9yeSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb2FzaXMtdGNzL29kYXRhLW9wZW5hcGkvYmxvYi9tYWluL0xJQ0VOU0UubWQiPkxJQ0VOU0U8L2E+IGZpbGUuPC9wPgo8L2Rpdj4KCjxoMz5GdXJ0aGVyIERlc2NyaXB0aW9uIG9mIHRoaXMgUmVwb3NpdG9yeTwvaDM+CgpUaGUgT0RhdGEgVEMgaGFzIHB1Ymxpc2hlZCB0aGUgW09EYXRhIHRvIE9wZW5BUEkgTWFwcGluZyBWZXJzaW9uIDEuMF0oaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEtb3BlbmFwaS92MS4wL29kYXRhLW9wZW5hcGktdjEuMC5odG1sKSwgYSByZWNvbW1lbmRhdGlvbiBvbiBob3cgdG8gY3JlYXRlIE9wZW5BUEkgZGVzY3JpcHRpb25zIGZvciBPRGF0YSBzZXJ2aWNlcy4gVGhpcyBwcm9qZWN0IGNvbnRhaW5zIHR3byBwcm9vZi1vZi1jb25jZXB0IGltcGxlbWVudGF0aW9ucyBvZiB0aGF0IG1hcHBpbmcsIFtvbmUgdXNpbmcgSmF2YVNjcmlwdF0oaHR0cHM6Ly9naXRodWIuY29tL29hc2lzLXRjcy9vZGF0YS1vcGVuYXBpL2Jsb2IvbWFpbi9saWIpLCBhbmQgW29uZSB1c2luZyBYU0xUXShodHRwczovL2dpdGh1Yi5jb20vb2FzaXMtdGNzL29kYXRhLW9wZW5hcGkvYmxvYi9tYWluL3Rvb2xzKS4KClRoZSBbYGV4YW1wbGVzYCBmb2xkZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXNpcy10Y3Mvb2RhdGEtb3BlbmFwaS9ibG9iL21haW4vZXhhbXBsZXMpIGNvbnRhaW5zIFtPcGVuQVBJIDMuMC4yXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgZGVzY3JpcHRpb25zIHRoYXQgaGF2ZSBiZWVuIGNyZWF0ZWQgZnJvbSB0aGUgWE1MIGAkbWV0YWRhdGFgIGRvY3VtZW50cyBvZiBsaXZlIGFuZCBleGFtcGxlIE9EYXRhIHNlcnZpY2VzIHdpdGggdGhlc2UgcHJvb2Ytb2YtY29uY2VwdCBpbXBsZW1lbnRhdGlvbnMuCgpUaGUgZW50aXR5LXJlbGF0aW9uc2hpcCBkaWFncmFtcyB2aXN1YWxpemluZyB0aGUgcmVzb3VyY2UgbW9kZWxzIG9mIGVhY2ggc2VydmljZSBhcmUgZ2VuZXJhdGVkIG9uLXRoZS1mbHkgd2l0aCBbeVVNTF0oaHR0cDovL3l1bWwubWUvKS4KCk9wZW5BUEkgZGVzY3JpcHRpb25zIGZvciBsaXZlIGV4YW1wbGUgT0RhdGEgc2VydmljZXMgYXQgW3d3dy5vZGF0YS5vcmddKGh0dHA6Ly93d3cub2RhdGEub3JnLykKCi0gW1RyaXBQaW4gKHJlYWQvd3JpdGUpXShodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8/dXJsPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vYXNpcy10Y3Mvb2RhdGEtb3BlbmFwaS9tYWluL2V4YW1wbGVzL1RyaXBQaW4ub3BlbmFwaTMuanNvbikKLSBbU2ltcGxlIHJlYWQvd3JpdGUgc2VydmljZV0oaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vP3VybD1odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb2FzaXMtdGNzL29kYXRhLW9wZW5hcGkvbWFpbi9leGFtcGxlcy9leGFtcGxlLm9wZW5hcGkzLmpzb24pCi0gW05vcnRod2luZCAocmVhZCldKGh0dHA6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvLz91cmw9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29hc2lzLXRjcy9vZGF0YS1vcGVuYXBpL21haW4vZXhhbXBsZXMvTm9ydGh3aW5kLm9wZW5hcGkzLmpzb24pCgpPcGVuQVBJIGRlc2NyaXB0aW9ucyBmb3IgT0RhdGEgc2VydmljZXMgdGhhdCByZWZlcmVuY2UgZWFjaCBvdGhlciAoY3Jvc3Mtc2VydmljZSByZWZlcmVuY2VzKQoKLSBbUGVvcGxlXShodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8/dXJsPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vYXNpcy10Y3Mvb2RhdGEtb3BlbmFwaS9tYWluL2V4YW1wbGVzL1Blb3BsZS5vcGVuYXBpMy5qc29uKQotIFtQcm9kdWN0c10oaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vP3VybD1odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb2FzaXMtdGNzL29kYXRhLW9wZW5hcGkvbWFpbi9leGFtcGxlcy9Qcm9kdWN0cy5vcGVuYXBpMy5qc29uKQoKPGRpdj4KPGgzPkNvbnRhY3Q8L2gzPgo8cD5QbGVhc2Ugc2VuZCBxdWVzdGlvbnMgb3IgY29tbWVudHMgYWJvdXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cub2FzaXMtb3Blbi5vcmcvcmVzb3VyY2VzL3RjYWRtaW4vZ2l0aHViLXJlcG9zaXRvcmllcy1mb3Itb2FzaXMtdGMtbWVtYmVycy1jaGFydGVyZWQtd29yayI+T0FTSVMgVEMgR2l0SHViIHJlcG9zaXRvcmllczwvYT4gdG8gdGhlIE9BU0lTIDxhIGhyZWY9Im1haWx0bzp0Yy1hZG1pbkBvYXNpcy1vcGVuLm9yZyI+VEMgQWRtaW5pc3RyYXRvcjwvYT4uICBGb3IgcXVlc3Rpb25zIGFib3V0IGNvbnRlbnQgaW4gdGhpcyByZXBvc2l0b3J5LCBwbGVhc2UgY29udGFjdCB0aGUgVEMgQ2hhaXIgb3IgQ28tQ2hhaXJzIGFzIGxpc3RlZCBvbiB0aGUgdGhlIE9EYXRhIFRDJ3MgPGEgaHJlZj0iaHR0cHM6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9vZGF0YS8iPmhvbWUgcGFnZTwvYT4uPC9wPgo8L2Rpdj4K readmeEtag: '"8a7da56bea752700e77d95eb2ee5c2e5866f8849"' readmeLastModified: Tue, 06 Aug 2024 15:43:45 GMT repositoryId: 74067831 description: >- OASIS OData TC: Tools for producing API descriptions for OData services that adhere to the OpenAPI Specification created: '2016-11-17T21:11:22Z' updated: '2024-08-29T11:18:12Z' language: XSLT archived: false stars: 193 watchers: 21 forks: 79 owner: oasis-tcs logo: https://avatars.githubusercontent.com/u/20116735?v=4 license: NOASSERTION repoEtag: '"4294b92b4ff6a1b646d74f08c2937060b1e7128f20adda97d925c87ceabac9b0"' repoLastModified: Thu, 29 Aug 2024 11:18:12 GMT foundInMaster: true v3_1: true id: 9039f84e8e8b63849cbf15578564033e - source: - https://openapi.tools/ - openapi3 tags name: - OpenAPI Filter - openapi-filter category: - Converters - Parsers language: Node.js source_description: - Filter internal components from OpenAPI Descriptions - >- OpenAPI 2.0 and 3.0 filter utility. A CLI/module to filter out internal/private paths, operations, parameters, schemas etc from OpenAPI v1/OpenAPI v2/AsyncAPI definitions. Simply flag any OpenAPI object within the definition with an `x-internal` specification extension or target a OpenAPI property (tags, methods, OperationId), and it will be removed from the output. repository: https://github.com/mermade/openapi-filter v2: true v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWZpbHRlcgoKIVtjaV0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb3BlbmFwaS1maWx0ZXIvd29ya2Zsb3dzL2NpL2JhZGdlLnN2ZykKCkZpbHRlciBpbnRlcm5hbCBwYXRocywgb3BlcmF0aW9ucywgcGFyYW1ldGVycywgc2NoZW1hcyBldGMgZnJvbSBPcGVuQVBJL1N3YWdnZXIvQXN5bmNBUEkgZGVmaW5pdGlvbnMuCgpTaW1wbHkgZmxhZyBhbnkgb2JqZWN0IHdpdGhpbiB0aGUgZGVmaW5pdGlvbiB3aXRoIGFuIGB4LWludGVybmFsYCBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbiwgYW5kIGl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBvdXRwdXQuCgpGb3IgZXhhbXBsZToKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICB0aXRsZTogQVBJCiAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgLzoKICAgIGdldDoKICAgICAgeC1pbnRlcm5hbDogdHJ1ZQogICAgICAuLi4KYGBgCgpXb3JrcyB3aXRoIE9wZW5BUEkvU3dhZ2dlciAyLjAgYW5kIDMuMC54IGFuZCBBc3luY0FQSSBkZWZpbml0aW9ucy4KCmBgYApvcGVuYXBpLWZpbHRlci5qcyA8aW5maWxlPiBbb3V0ZmlsZV0KClBvc2l0aW9uYWxzOgogIGluZmlsZSAgIHRoZSBpbnB1dCBmaWxlCiAgb3V0ZmlsZSAgdGhlIG91dHB1dCBmaWxlCgpPcHRpb25zOgoKICAtLWluZm8gICAgICAgICAgIGluY2x1ZGUgY29tcGxldGUgaW5mbyBvYmplY3Qgd2l0aCAtLXZhbGlkICAgICAgICAgICBbYm9vbGVhbl0KICAtLWludmVyc2UsIC1pICAgIG91dHB1dCBmaWx0ZXJlZCBlbGVtZW50cyBvbmx5ICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAtLWZsYWdzLCAtZiAgICAgIGZsYWdzIHRvIGZpbHRlciBieSAgICAgICAgICBbYXJyYXldIFtkZWZhdWx0OiBbIngtaW50ZXJuYWwiXV0KICAtLWZsYWdWYWx1ZXMsIC12IGZsYWcgU3RyaW5nIHZhbHVlcyB0byBtYXRjaCAgICAgICAgICAgICBbYXJyYXldIFtkZWZhdWx0OiBbXV0KICAtLWNoZWNrVGFncyAgICAgIGZpbHRlciBpZiBmbGFncyBnaXZlbiBpbiAtLWZsYWdzIGFyZSBpbiB0aGUgdGFncyBhcnJheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXQogIC0tb3ZlcnJpZGVzLCAtbyAgcHJlZml4ZXMgdXNlZCB0byBvdmVycmlkZSBuYW1lZCBwcm9wZXJ0aWVzW2Fycl0gW2RlZmF1bHQ6IFtdXQogIC0tdmFsaWQgICAgICAgICAgdHJ5IHRvIGVuc3VyZSBpbnZlcnNlIG91dHB1dCBpcyB2YWxpZCAgICAgICAgICAgICAgIFtib29sZWFuXQogIC0tc3RyaXAsIC1zICAgICAgc3RyaXAgdGhlIGZsYWdzIGZyb20gdGhlIGZpbmlzaGVkIHByb2R1Y3QgICAgICAgICAgIFtib29sZWFuXQogIC0tc2VydmVycyAgICAgICAgaW5jbHVkZSBjb21wbGV0ZSBzZXJ2ZXJzIG9iamVjdCB3aXRoIC0tdmFsaWQgICAgICAgIFtib29sZWFuXQogIC0tbGluZVdpZHRoLCAtbCAgbWF4IGxpbmUgd2lkdGggb2YgeWFtbCBvdXRwdXQgICAgICAgICAgIFtudW1iZXJdIFtkZWZhdWx0OiAwXQogIC0tbWF4QWxpYXNDb3VudCAgbWF4aW11bSBZQU1MIGFsaWFzZXMgYWxsb3dlZCAgICAgICAgICBbbnVtYmVyXSBbZGVmYXVsdDogMTAwXQogIC0tY29uZmlnRmlsZSAgICAgVGhlIGZpbGUgJiBwYXRoIGZvciB0aGUgZmlsdGVyIG9wdGlvbnMgICAgICAgICAgICAgICAgIFtwYXRoXQogIC0taGVscCAgICAgICAgICAgU2hvdyBoZWxwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXQogIC0tdmVyYm9zZSAgICAgICAgT3V0cHV0IG1vcmUgZGV0YWlscyBvZiB0aGUgZmlsdGVyIHByb2Nlc3MgICAgICAgICAgICAgW2NvdW50XQpgYGAKCnVzZSBgLS1gIHRvIHNlcGFyYXRlIGZsYWdzIG9yIG90aGVyIGFycmF5IG9wdGlvbnMgZnJvbSBmb2xsb3dpbmcgb3B0aW9ucywgaS5lLjoKCmBvcGVuYXBpLWZpbHRlciAtLWZsYWdzIHgtcHJpdmF0ZSB4LWhpZGRlbiAtLSBzb3VyY2UueWFtbCB0YXJnZXQueWFtbGAKCm9yCgpgYGBqYXZhc2NyaXB0CmxldCBvcGVuYXBpRmlsdGVyID0gcmVxdWlyZSgnb3BlbmFwaS1maWx0ZXInKTsKbGV0IG9wdGlvbnMgPSB7fTsgLy8gZGVmYXVsdHMgYXJlIHNob3duCi8vb3B0aW9ucy5pbnZlcnNlID0gZmFsc2U7Ci8vb3B0aW9ucy52YWxpZCA9IGZhbHNlOwovL29wdGlvbnMuZmxhZ3MgPSBbJ3gtaW50ZXJuYWwnXTsKbGV0IHJlcyA9IG9wZW5hcGlGaWx0ZXIuZmlsdGVyKG9iaixvcHRpb25zKTsKYGBgCgpTZWUgdGhlIFt3aWtpXShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS9vcGVuYXBpLWZpbHRlci93aWtpKSBmb3IgZnVydGhlciBleGFtcGxlcy4K readmeEtag: '"3b83424f748e8c33bde73e794e3dcbfd7f1ef222"' readmeLastModified: Sun, 15 Oct 2023 13:23:21 GMT repositoryId: 99120783 description: >- Filter internal paths, operations, parameters, schemas etc from OpenAPI/Swagger/AsyncAPI definitions created: '2017-08-02T13:42:57Z' updated: '2024-08-24T07:18:08Z' language: JavaScript archived: false stars: 154 watchers: 5 forks: 32 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause repoEtag: '"1df135a354af1e58b9aca67a257a459de175c144acb604a1f291bc6f2b55e983"' repoLastModified: Sat, 24 Aug 2024 07:18:08 GMT foundInMaster: true id: c00a8a003ace3ce47f5740bb641667fb v3_1: true - source: https://openapi.tools/ name: OData.OpenAPI category: - Converters - Parsers repository: https://github.com/xuzhg/odata.openapi language: .NET source_description: Convert an Edm (Entity Data Model) to OpenAPI 3.0 v3: true repositoryMetadata: base64Readme: >- IyBPRGF0YS5PcGVuQVBJCgpBIHByb2plY3QgdG8gY29udmVydCBhbiBFZG0gKEVudGl0eSBEYXRhIE1vZGVsKSB0byBbT3BlbkFwaSAzLjBdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykuCgpOb3csIHRoZSBXaG9sZSBwcm9qZWN0IGlzIG1vdmluZyB0bzogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9vcGVuYXBpLm5ldCBmb3IgYmFzaWMgT3BlbiBBUEkgRE9NIGFuZAoKaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9vcGVuYXBpLm5ldC5vZGF0YSBmb3IgYmFzaWMgQ1NETCB0byBPcGVuIEFQSSBET00uCg== readmeEtag: '"22e3c2a52080e5ae6542c952011e423a4b10ac0d"' readmeLastModified: Mon, 06 Aug 2018 17:03:11 GMT repositoryId: 105206912 description: OData to Open API created: '2017-09-28T22:56:53Z' updated: '2023-05-22T09:10:47Z' language: C# archived: false stars: 7 watchers: 4 forks: 5 owner: xuzhg logo: https://avatars.githubusercontent.com/u/9426627?v=4 repoEtag: '"495b8ff899c332ff37d6f8d6c733bba87b2395390c836378d872452ff148b4cf"' repoLastModified: Mon, 22 May 2023 09:10:47 GMT foundInMaster: true id: d147d76d31836810da33ac308ffb7615 - source: https://openapi.tools/ name: OpenDocumenter category: - Documentation - Parsers link: https://github.com/ouropencode/OpenDocumenter language: Vue.js source_description: >- OpenDocumenter is a automatic documentation generator for OpenAPI v3 schemas. Simply provide your schema file in JSON or YAML, then sit back and enjoy the documentation. v2: true v3: true foundInMaster: true repository: https://github.com/ouropencode/opendocumenter repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5Eb2N1bWVudGVyPC9oMT4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgYWx0PSJWZXJzaW9uIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3BhY2thZ2UtanNvbi92L291cm9wZW5jb2RlL09wZW5Eb2N1bWVudGVyIiAvPgogIDxpbWcgYWx0PSJucG0iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vcGVuZG9jdW1lbnRlciIgLz4KICA8aW1nIGFsdD0iTGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL291cm9wZW5jb2RlL09wZW5Eb2N1bWVudGVyIiAvPgogIDxpbWcgYWx0PSJEZXBlbmRlbmNpZXMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9saWJyYXJpZXNpby9yZWxlYXNlL25wbS9vcGVuZG9jdW1lbnRlciIgLz4KICA8aW1nIGFsdD0iSXNzdWVzIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9vdXJvcGVuY29kZS9PcGVuRG9jdW1lbnRlciIgLz4KICA8aW1nIGFsdD0iTm9kZSBWZXJzaW9uIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbm9kZS92L29wZW5kb2N1bWVudGVyIiAvPgogIDxpbWcgYWx0PSJCdWlsZCBTdGF0dXMiIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL291cm9wZW5jb2RlL09wZW5Eb2N1bWVudGVyL3dvcmtmbG93cy9RdWlzcXVlJTIwQVBJJTIwQnVpbGQvYmFkZ2Uuc3ZnIiAvPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL291cm9wZW5jb2RlLmdpdGh1Yi5pby9PcGVuRG9jdW1lbnRlci8iIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgYWx0PSJOb2RlIFZlcnNpb24iIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL291cm9wZW5jb2RlL09wZW5Eb2N1bWVudGVyL21hc3Rlci9leGFtcGxlL2V4YW1wbGUuZ2lmIiAvPgogIDwvYT4KPC9wPgoKT3BlbkRvY3VtZW50ZXIgaXMgYSBhdXRvbWF0aWMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IgZm9yIFtPcGVuQVBJIHYzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCkgc2NoZW1hcy4gU2ltcGx5IHByb3ZpZGUgeW91ciBzY2hlbWEgZmlsZSBpbiBKU09OIG9yIFlBTUwsIHRoZW4gc2l0IGJhY2sgYW5kIGVuam95IHRoZSBkb2N1bWVudGF0aW9uLgoKUG93ZXJlZCBieSBbbnV4dC5qc10oaHR0cHM6Ly9udXh0anMub3JnL2h0dHBzOi8vbnV4dGpzLm9yZy8pIGFuZCBbc3dhZ2dlci1wYXJzZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXBhcnNlcikuCgojIyBFeGFtcGxlCkZvciBhIGxpdmUgcHJldmlldyBvZiBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZCB3aXRoIE9wZW5Eb2N1bWVudGVyIHlvdSBjYW4gdmlldyBvdXIgZGVtbyBkb2N1bWVudGF0aW9uICIqKltRdWlzcXVlIEFQSV0oaHR0cHM6Ly9vdXJvcGVuY29kZS5naXRodWIuaW8vT3BlbkRvY3VtZW50ZXIvKSoqIi4gVGhpcyBleGFtcGxlIHVzZXMgbG9yZW0taXBzdW0gZm9yIGFsbCBjb250ZW50IHRvIHByb3ZpZGUgcGxhY2Vob2xkZXIgdGV4dCB1c2VkIHRvIGRlbW9uc3RyYXRlIHRoZSBmb3JtIG9mIGEgZG9jdW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIG1lYW5pbmdmdWwgY29udGVudC4KCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaAo+IG5wbSBpbnN0YWxsIC1nIG9wZW5kb2N1bWVudGVyCmBgYApvcgpgYGBiYXNoCj4geWFybiBnbG9iYWwgYWRkIG9wZW5kb2N1bWVudGVyCmBgYAoKIyMgVXNhZ2UKYGBgCj4gb3BlbmRvY3VtZW50ZXIgLS1oZWxwCgogICBfX19fXyAgICAgICAgICAgICBfX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8KICB8ICAgICB8X19fIF9fXyBfX198ICAgIFwgX19fIF9fXyBfIF8gX19fX18gX19fIF9fX3wgfF8gX19fIF9fXwogIHwgIHwgIHwgLiB8IC1ffCAgIHwgIHwgIHwgLiB8ICBffCB8IHwgICAgIHwgLV98ICAgfCAgX3wgLV98ICBffAogIHxfX19fX3wgIF98X19ffF98X3xfX19fL3xfX198X19ffF9fX3xffF98X3xfX198X3xffF98IHxfX198X3wKICAgICAgICB8X3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogIE9wZW5Eb2N1bWVudGVyIGlzIGEgYXV0b21hdGljIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIGZvciBPcGVuQVBJIHYzIHNjaGVtYXMuCiAgU2ltcGx5IHByb3ZpZGUgeW91ciBzY2hlbWEgZmlsZSBpbiBKU09OIG9yIFlBTUwsIHRoZW4gc2l0IGJhY2sgYW5kIGVuam95IHRoZSBkb2N1bWVudGF0aW9uLgoKICBQb3dlcmVkIGJ5IG51eHQuanMgYW5kIHN3YWdnZXItcGFyc2VyLgoKICBVc2FnZToKCiAgICBvcGVuZG9jdW1lbnRlciAtLXNjaGVtYT08ZmlsZT4gLS1vdXRwdXQ9PGRpcj4KCiAgQXJndW1lbnRzOgoKICAgIC0tc2NoZW1hPTxmaWxlPiAgICAocmVxdWlyZWQpIFRoZSBPcGVuQVBJIDMgZm9ybWF0IGZpbGUgdG8gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmcm9tLgogICAgLS1vdXRwdXQ9PGRpcj4gICAgIChyZXF1aXJlZCkgVGhlIG91dHB1dCBkZXN0aW5hdGlvbiBkaXJlY3RvcnkuCiAgICAtLWNvbmZpZz08ZmlsZT4gICAgQSBjb25maWd1cmF0aW9uIGZpbGUgdG8gbG9hZCBhZHZhbmNlZCBvcHRpb25zIGZyb20uCmBgYAoKIyMgQ29uZmlndXJhdGlvbgpPcGVuRG9jdW1lbnRlciBjYW4gYmUgY29uZmlndXJlZCB1c2luZyBhIGAuanNvbmAgZmlsZSBzdG9yZWQgYWxvbmdzaWRlIHlvdXIgc2NoZW1hIGZpbGUuCgojIyMgTWVyZ2UgRnJvbSBEaXJlY3RvcnkKVGhlIGBtZXJnZUZyb21EaXJlY3RvcnlgIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBkaXJlY3RvcnkgdGhhdCB3aWxsIGJlIGNvcGllZCBvdmVyIHRoZSBiYXNlIHRlbXBsYXRlIGJlZm9yZSBidWlsZGluZy4gVGhpcyBhbGxvd3MgY3VzdG9taXphdGlvbiBvZiBhbnkgcGFydCBvZiBPcGVuRG9jdW1lbnRlciB0byBzdWl0IHlvdXIgbmVlZHMuCgpgYGBqc29uCnsKICAibWVyZ2VGcm9tRGlyZWN0b3J5IjogIi4vb3ZlcnJpZGVzIgp9CmBgYAoKQW55IHBhcnQgb2YgdGhlIE9wZW5Eb2N1bWVudGVyIHZ1ZSBzb3VyY2UgKHNlZTogWy4vc3JjXSguL3NyYykpIGNhbiBiZSBvdmVycmlkZGVuLCBqdXN0IGVuc3VyZSB0byBmb2xsb3cgdGhlIHNhbWUgZGlyZWN0b3J5IHN0cnVjdHVyZSEKYGBgCm92ZXJyaWRlcwogfC0gYXNzZXRzCiB8ICctIHRoZW1lLmxlc3MKICctIGNvbXBvbmVudHMKICAgfC0gRG9jSGVhZGVyLnZ1ZQogICAnLSBEb2NFbnRyeS52dWUKYGBgCgojIyMgJ0dlbmVyYXRlZCBVc2luZycgRm9vdGVyCkJ5IGRlZmF1bHQsIGEgc21hbGwgJ0dlbmVyYXRlZCBVc2luZycgbWVzc2FnZSBpcyBpbmNsdWRlZCBvbiB0aGUgZm9vdGVyIG9mIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbi4gQWx0aG91Z2ggd2UnZCBsb3ZlIHlvdSB0byBrZWVwIGl0LCB5b3UgY2FuIGRpc2FibGUgdGhpcyBieSBzZXR0aW5nIHRoZSBgZGlzYWJsZUdlbmVyYXRlZFVzaW5nRm9vdGVyYCBwYXJhbWV0ZXIgdG8gdHJ1ZS4KCmBgYGpzb24KewogICJkaXNhYmxlR2VuZXJhdGVkVXNpbmdGb290ZXIiOiB0cnVlCn0KYGBgCgojIyMgQWJvcnRpbmcgb24gSW52YWxpZCBTY2hlbWEKT3BlbkRvY3VtZW50ZXIgaXMgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIGRvY3VtZW50YXRpb24gZm9yIE9wZW5BUEkgc2NoZW1hcyB0aGF0IGRvbid0IG1hdGNoIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gZW50aXJlbHkuIFdoZW4gZ2VuZXJhdGluZyB3ZSBhdHRlbXB0IHRvIHZhbGlkYXRlIHlvdXIgc2NoZW1hLCBkaXNwbGF5IGFueSB2YWxpZGF0aW9uIHdhcm5pbmdzLCBhbmQgdGhlbiBjb250aW51ZSB0byBnZW5lcmF0ZS4gSWYgeW91IHdvdWxkIGxpa2UgdGhlIGdlbmVyYXRpb24gdG8gYWJvcnQgd2hlbiBhIHNjaGVtYSBpcyBpbnZhbGlkIHlvdSBjYW4gc2V0IHRoZSBgYWJvcnRPbkludmFsaWRTY2hlbWFgIHBhcmFtZXRlciB0byB0cnVlLgoKYGBganNvbgp7CiAgImFib3J0T25JbnZhbGlkU2NoZW1hIjogdHJ1ZQp9CmBgYAoKIyMjIFNoaWVsZHMgLyBCYWRnZXMKVmFyaW91cyBzaGllbGRzIGFyZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gaGVhZGVyLCBzdWNoIGFzIHRoZSBBUEkgdmVyc2lvbi4gQWRkaXRpb25hbCBzaGllbGRzIGNhbiBiZSBhZGRlZCB1c2luZyB0aGUgYHNoaWVsZHNgIHBhcmFtZXRlci4gRWFjaCBzaGllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgZWl0aGVyIHRoZSBgdXJsYCBrZXksIG9yIGEgY29tYmluYXRpb24gb2YgYGxlZnRgLCBgcmlnaHRgIGFuZCBgY29sb3JgLiBUaGUgYHRyYW5zbGF0ZWAgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIChgbGVmdGAsIGByaWdodGAsIGBib3RoYCkgdG8gcnVuIHRoZSB0ZXh0IHRocm91Z2ggdGhlIGludGVybmF0aW9uYWxpemF0aW9uIGhhbmRsZXIuIEFuIG9wdGlvbmFsIGxpbmsgY2FuIHByb3ZpZGVkIHdpdGggdGhlIGBocmVmYCBwYXJhbWV0ZXIuIEFsbCBzaGllbGRzIGFyZSBnZW5lcmF0ZWQgdXNpbmcgW3NoaWVsZHMuaW9dKGh0dHBzOi8vc2hpZWxkcy5pbykgdW5sZXNzIGEgVVJMIGlzIHByb3ZpZGVkLgoKYGBganNvbgp7CiAgInNoaWVsZHMiOiBbCiAgICB7ICJ1cmwiOiAiaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90ZXN0LTEuMi4zLS10ZXN0LWJsdWUiIH0sCiAgICB7ICJsZWZ0IjogInRlc3QiLCAicmlnaHQiOiAiMS4yLjMtdGVzdCIsICJjb2xvciI6ICJibHVlIiB9LAogICAgewogICAgICAibGVmdCI6ICJ0ZXN0IiwKICAgICAgInJpZ2h0IjogIjEuMi4zLXRlc3QiLAogICAgICAiY29sb3IiOiAiYmx1ZSIsCiAgICAgICJocmVmIjogImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIgogICAgfQogIF0KfQpgYGAKCiMjIyBCdWlsZDogTW9kZXJuIE1vZGUKQnkgZGVmYXVsdCwgdGhlIGJ1aWxkLWNoYWluIHByb2R1Y2VzICJNb2Rlcm4gTW9kZSIgIG91dHB1dCwgc2hpcHBpbmcgbmF0aXZlIEVTMjAxNSBjb2RlIHRvIG1vZGVybiBicm93c2VycyB0aGF0IHN1cHBvcnQgaXQsIHdpdGggYXV0byBmYWxsYmFjayB0byBhIGxlZ2FjeSBidW5kbGUuIFRoaXMgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyBgdnVlTW9kZXJuTW9kZWAgcGFyYW1ldGVyLCBhZnRlcndhcmRzIHRoZSBidWlsZC1jaGFpbiBwcm9kdWNlcyAiTGVnYWN5IiBvdXRwdXQgZm9yIG9sZGVyIGJyb3dzZXIgY29tcGF0aWJpbGl0eS4KCmBgYGpzb24KewogICJ2dWVNb2Rlcm5Nb2RlIjogZmFsc2UKfQpgYGAKCiMjIyBCdWlsZDogUmVwb3J0aW5nCllvdSBjYW4gY29udHJvbCB0aGUgcmVwb3J0aW5nIG91dHB1dCBmcm9tIHRoZSBidWlsZC1jaGFpbiB3aXRoIHRoZSBgdnVlUmVwb3J0YCBwYXJhbWV0ZXIuIFRoaXMgZGVmYXVsdHMgdG8gYG5vbmVgIGFuZCBjYW4gYmUgc2V0IHRvIGBqc29uYCwgYGh0bWxgIG9yIGBib3RoYC4gV2l0aCB0aGlzIGVuYWJsZWQgdGhlIGJ1aWxkLWNoYWluIHdpbGwgb3V0cHV0IGEgcmVwb3J0IGZpbGUgZGVzY3JpYmluZyB0aGUgd2VicGFjayBidW5kbGUuCgpgYGBqc29uCnsKICAidnVlUmVwb3J0IjogImh0bWwiCn0KYGBgCgojIyMgSW50ZXJuYXRpb25hbGl6YXRpb24KTW9zdCBvZiB0aGUgZG9jdW1lbnRhdGlvbiB0ZXh0IGlzIHRha2VuIGRpcmVjdGx5IGZyb20gdGhlIE9wZW5BUEkgc2NoZW1hIGZpbGUsIGhvd2V2ZXIsIHRoZXJlIGFyZSB2YXJpb3VzIHN0cmluZ3MgdGhyb3VnaG91dCB0aGUgcHJvamVjdCB0aGF0IGNhbm5vdCBiZSBzdG9yZWQgd2l0aGluIHRoZSBzY2hlbWEgZmlsZS4gQWxsIG9mIHRoZXNlIHN0cmluZ3MgYXJlIGN1c3RvbWl6YWJsZSBieSBlZGl0aW5nIHRoZSBgaTE4bmAgcGFyYW1ldGVyLgpgYGBqc29uCnsKICAiaTE4biI6IHsKICAgICJBUElfU0RLX0RPQ1VNRU5UQVRJT04iOiAiQVBJIGFuZCBTREsgRG9jdW1lbnRhdGlvbiIsCiAgICAiVkVSU0lPTiI6ICJ2ZXJzaW9uIiwKICAgICJOT19JTkRFUFRIX0RPQ1NfQVZBSUxBQkxFX0VORFBPSU5UIjogIk5vIGluLWRlcHRoIEFQSSBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBmb3IgdGhpcyBlbmRwb2ludC4iLAogICAgIk5PX0lOREVQVEhfRE9DU19BVkFJTEFCTEVfVEFHIjogIk5vIGluLWRlcHRoIEFQSSBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBmb3IgdGhpcyBzZWN0aW9uLiIsCiAgICAiQ0xJQ0tfVE9fQ09QWSI6ICJjbGljayB0byBjb3B5IiwKICAgICJDT1BJRUQiOiAiY29waWVkIiwKICAgICJSRVFVRVNUX0JPRFkiOiAiUmVxdWVzdCBCb2R5IiwKICAgICJSRVFVRVNUX1JFU1BPTlNFUyI6ICJSZXF1ZXN0IFJlc3BvbnNlcyIsCiAgICAiREVGSU5JVElPTiI6ICJEZWZpbml0aW9uIiwKICAgICJERUZJTklUSU9OUyI6ICJEZWZpbml0aW9ucyIsCiAgICAiU0VSVkVSIjogIlNlcnZlciIsCiAgICAiTEFOR1VBR0UiOiAiTGFuZ3VhZ2UiLAogICAgIkdFTkVSQVRFRF9VU0lORyI6ICJHZW5lcmF0ZWQgdXNpbmcgT3BlbkRvY3VtZW50ZXIgYnkgJG91ck9wZW5Db2RlIiwKICAgICJIQVZFX0FOWV9RVUVTVElPTlNfQ09OVEFDVCI6ICJIYXZlIGFueSBxdWVzdGlvbnM/IFBsZWFzZSBjb250YWN0IiwKICAgICJVUyI6ICJ1cyIsCiAgICAiT1IiOiAib3IiLAogICAgIlZJQV9FTUFJTCI6ICJ2aWEgZW1haWwiLAogICAgIlZJQV9PVVJfV0VCU0lURSI6ICJ2aWEgb3VyIHdlYnNpdGUiLAogICAgIlRFUk1TX09GX1NFUlZJQ0UiOiAiVGVybXMgb2YgU2VydmljZSIsCiAgICAiU0VORF9VU19BTl9FTUFJTCI6ICJTZW5kIHVzIGFuIGVtYWlsIiwKICAgICJWSVNJVF9PVVJfV0VCU0lURSI6ICJWaXNpdCBvdXIgd2Vic2l0ZSIsCiAgICAiRVhURVJOQUxfRE9DVU1FTlRBVElPTiI6ICJFeHRlcm5hbCBEb2N1bWVudGF0aW9uIiwKICAgICJET0NVTUVOVEFUSU9OIjogIkRvY3VtZW50YXRpb24iCiAgfQp9CmBgYAoKPiBUaGVyZSBpcyBhIHNpbmdsZSBlbmQtdXNlciB2aXNpYmxlIHN0cmluZyB0aGF0IGlzbid0IGNvbmZpZ3VyYWJsZSBpbiB0aGlzIGNvbmZpZy4gVGhlICJMb2FkaW5nIERvY3VtZW50YXRpb24uLi4iIHRleHQgaW4gdGhlIHBhZ2UgdGl0bGUsIGJyaWVmbHkgc2hvd24gZHVyaW5nIHBhZ2UgbG9hZCwgaXMgb25seSBjb25maWd1cmFibGUgdXNpbmcgdGhlICJNZXJnZSBGcm9tIERpcmVjdG9yeSIgcGFyYW1ldGVyLgoKIyMgTGljZW5zZQpMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFBsZWFzZSBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpIGZvciBtb3JlIGRldGFpbHMuCg== readmeEtag: '"d46fd60db4b32123a2d52108804bee01f5ee1640"' readmeLastModified: Mon, 31 Aug 2020 17:28:44 GMT repositoryId: 284009477 description: >- OpenDocumenter is a automatic documentation generator for OpenAPI v3 schemas. Simply provide your schema file in JSON or YAML, then sit back and enjoy the documentation. created: '2020-07-31T10:32:43Z' updated: '2024-09-03T00:23:57Z' language: Vue archived: false stars: 162 watchers: 2 forks: 11 owner: ouropencode logo: https://avatars.githubusercontent.com/u/7923793?v=4 license: MIT repoEtag: '"a38f551742b9393fdea1e67f6418983aaa3d5e70d5d0bc597bc09f65c8bfe797"' repoLastModified: Tue, 03 Sep 2024 00:23:57 GMT id: 11c244f76ef65a503bffd1ef4663f38a v3_1_link: https://github.com/ouropencode/OpenDocumenter/issues/2 - source: https://openapi.tools/ name: oas3-api-snippet-enricher category: - Documentation - Parsers language: JavaScript repository: https://github.com/cdwv/oas3-api-snippet-enricher/ link: https://github.com/cdwv/oas3-api-snippet-enricher/ source_description: Enrich your existing description documents with generated code samples v3: true repositoryMetadata: base64Readme: >- IyBFbnJpY2ggeW91ciBPcGVuQVBJIDMuMCBzY2hlbWEgd2l0aCBleGFtcGxlcwoKVGhhbmtzIHRvIHRoZSB3b25kZXJmdWwgW3N3YWdnZXItc25pcHBldF0oaHR0cHM6Ly9naXRodWIuY29tL0VyaWtXaXR0ZXJuL3N3YWdnZXItc25pcHBldCkgbW9kdWxlIHlvdSBjYW4gbm93IHNpbXBseSBlbnJpY2ggeW91ciBPcGVuQVBJIHNjaGVtYSB3aXRoIGNvZGUgc2FtcGxlcy4gSXQncyBhcyBlYXN5IGFzIDEuMi4zLgoKMS4gYGBucG0gaW5zdGFsbCBzbmlwcGV0LWVucmljaGVyLWNsaWBgCjIuIGBgLi9ub2RlX21vZHVsZXMvLmJpbi9zbmlwcGV0LWVucmljaGVyLWNsaSAtLWlucHV0PXlvdXJfb2FzLmpzb25gYAoKIyMgRXhhbXBsZSBVc2FnZQoKRW5yaWNoIHlvdXIgT0FTIDMuMCBTY2hlbWEKYGBgCi4vbm9kZV9tb2R1bGVzLy5iaW4vc25pcHBldC1lbnJpY2hlci1jbGkgLS1pbnB1dD1vcGVuYXBpLmpzb24gPiBvcGVuYXBpLXdpdGgtZXhhbXBsZXMuanNvbgpgYGAKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHBvaW50IGl0IHRvIGEgWUFNTC1mb3JtYXR0ZWQgc3BlYzoKYGBgCmN1cmwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFzdGVyL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbCAtLW91dHB1dCBwZXRzdG9yZS55YW1sCi4vbm9kZV9tb2R1bGVzLy5iaW4vc25pcHBldC1lbnJpY2hlci1jbGkgLS1pbnB1dD1wZXRzdG9yZS55YW1sID4gb3BlbmFwaS13aXRoLWV4YW1wbGVzLmpzb24KYGBgCgpVc2UgdGFyZ2V0cyBvcHRpb25zIHRvIHNwZWNpZmljIGxhbmd1YWdlczoKYGBgCi4vbm9kZV9tb2R1bGVzLy5iaW4vc25pcHBldC1lbnJpY2hlci1jbGkgLS10YXJnZXRzPSJub2RlX3JlcXVlc3Qsc2hlbGxfY3VybCIgLS1pbnB1dD1vcGVuYXBpLmpzb24gPiBvcGVuYXBpLXdpdGgtZXhhbXBsZXMuanNvbgpgYGAKClVzZSBbUmVEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jLykgdG8gYnVpbGQgYmVhdXRpZnVsIEFQSSBkb2M6CmBgYApyZWRvYy1jbGkgYnVuZGxlIG9wZW5hcGktd2l0aC1leGFtcGxlcy5qc29uCmBgYAoKZW5qb3kuCgohW1JlRG9jIEFQSSBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBzYW1wbGVzXShpbWFnZS5wbmcpCgpDb250cmlidXRpbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkNvbnRyaWJ1dGlvbnMgYXJlIG1vc3Qgd2VsY29tZSEKCgpMaWNlbnNlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpNSVQKCk1haW50YWluZXJzCj09PT09PT09PT09CgpbPGltZyB3aWR0aD0iMzAwIiB0aXRsZT0iQ29kZXdhdmUuZXUiIHNyYz0iY2R3di1sb2dvLW5ldy5zdmciPl0oaHR0cDovL2NvZGV3YXZlLmV1KQoKUHJvamVjdCBpcyBjdXJyZW50bHkgbWFpbnRhaW5lZCwgaW4gb3VyIHNwYXJlIHRpbWUsIGJ5IFtjb2Rld2F2ZS5ldV0oaHR0cDovL2NvZGV3YXZlLmV1KSBhbmQgYSBncm93aW5nIG51bWJlciBvZiBDb250cmlidXRvcnMhCg== readmeEtag: '"2e480b8b5b9a3c8516169de7cef40e16dade1c06"' readmeLastModified: Mon, 11 Dec 2023 12:08:59 GMT repositoryId: 220618185 description: Enrich your OpenAPI 3.0 JSON with code samples created: '2019-11-09T09:13:16Z' updated: '2024-09-04T16:22:44Z' language: JavaScript archived: false stars: 91 watchers: 9 forks: 13 owner: cdwv logo: https://avatars.githubusercontent.com/u/6742687?v=4 license: MIT repoEtag: '"b88a4b46b7ebb062f047b4d568636eb42aab5d8eb805c4d9fddb52497aeb82ce"' repoLastModified: Wed, 04 Sep 2024 16:22:44 GMT foundInMaster: true id: 90d603135b448f5444c654b9aba124e2 - source: https://openapi.tools/ name: MrinDoc category: Documentation source_description: OpenAPI description document viewer. link: https://mrin9.github.io/OpenAPI-Viewer/ repository: https://github.com/mrin9/openapi-viewer language: Vue.JS v2: true v3: true repositoryMetadata: base64Readme: >- PGltZyBhbHQ9Ik1yaW5Eb2MgbG9nbyIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vbXJpbjkvT3BlbkFQSS1WaWV3ZXIvYmxvYi9tYXN0ZXIvcHVibGljL2ltYWdlcy9sZWF2ZXNfbG9nbzEuc3ZnIiB3aWR0aD0iNjBweCIgLz4KCiMgTXJpbkRvYwpBbiBPcGVuQVBJIDMuMCBhbmQgMi4wIFNwZWMgdmlld2VyIHdpdGggYnVpbHQgaW4gY29uc29sZSAKCiMjIyBbRGVtb10oaHR0cHM6Ly9tcmluOS5naXRodWIuaW8vT3BlbkFQSS1WaWV3ZXIpCgojIyMgQ2hlY2tvdXQgUmFwaURvYyAtIEFub3RoZXIgcHJvamVjdCBmb3IgVmlld2luZyBPcGVuQVBJIHNwZWMgdXNpbmcgd2ViLUNvbXBvbm5ldAojIyMjIFtDaGVja291dCBSYXBpRG9jXShodHRwczovL21yaW45LmdpdGh1Yi5pby9SYXBpRG9jKQoKIyBGZWF0dXJlcwotIFN1cHBvcnRzIFN3YWdnZXIgVjIuMCBhbmQgT3BlbkFQSSAzLjAKLSBTdXBwb3J0cyBzZWFyY2hpbmcgb2YgZW5kLXBvaW50cyAocGF0aHMpCi0gQnVpbHQgSW4gY29uc29sZSB0byB0cnkgb3V0IEFQSXMKLSBSZXNwb25zaXZlIChzdXBwb3J0IGZvciBkZXNrdG9wIGFuZCB0YWJsZXRzKQotIFN1cHBvcnRzIEF1dGhlbnRpY2F0aW9uCiAgLSBPQXV0aDIKICAtIEFQSSBLZXkoVG9rZW4pCiAgLSBIVFRQIEJlYXJlcgogIC0gSFRUUCBCYXNpYwotIFVYIGZyaWVuZGx5LgogIC0gQWxsIEVuZHBvaW50cyBwYXRocyBhcmUgY2xlYW5seSBwcmVzZW50ZWQKICAtIENsZWFyIHNlcGVyYXRpb24gb2YgUmVxdWVzdCBhbmQgUmVzcG9uc2UgaW5mbyBsYWlkIG91dCBzaWRlIGJ5IHNpZGUgaW4gYSB0d28gY29sdW0gbGF5b3V0CiAgLSBMZXNzZXIgY2xpY2tzIHRvIGRlYWwgd2l0aC4gQWxsIHNjaGVtYSBtb2RlbHMsIHJlc3BvbnNlLWpzb25zIGFuZCBleGFtcGxlcyBhcmUgZXhwYW5kZWQgYnkgZGVmYXVsdHMgd2hpY2ggZWxpbWluYXRlcyB0aGUgbmVlZCBvZiBjbGljayBhbmQgcmV2ZWFsIGVhY2ggbGV2ZWwuCiAgLSBXaGlsZSB1c2luZyBBUEkgY29uc29sZSwgcmVxdWVzdCBkYXRhIGlzIHByZS1maWxsZWQgYmFzZWQgb24gc2NoZW1hCiAgLSBOZWVkcyBqdXN0IG9uZSBjbGljayB0byB0cnkgb3V0IGxpdmUgQVBJcwoKCiMjIFByb2plY3QgQnVpbGQKYGBgCnlhcm4gaW5zdGFsbAp5YXJuIHJ1biBidWlsZCAKYGBgCiMjIyBTY3JlZW5zaG90cwojIyMjIEVuZFBvaW50IExpc3RpbmdzCjxrYmQ+CiAgICA8aW1nIHNyYz0iL3NjcmVlbnNob3RzL2VuZC1wb2ludC1saXN0aW5nLnBuZz9yYXc9dHJ1ZSI+Cjwva2JkPgoKIyMjIyBSZXF1ZXN0L1Jlc3BvbnNlCkxhaWQgb3V0IGluIGEgdHdvIGNvbHVtIGZvciBlYXN5IHZpZXcgJiBjb21wYXJlIAo8a2JkPgogICAgPGltZyBzcmM9Ii9zY3JlZW5zaG90cy9yZXF1ZXN0LXJlc3BvbnNlLnBuZz9yYXc9dHJ1ZSI+Cjwva2JkPgoKIyMjIyBTY2hlbWEgVmlldwpBbGwgUmVxdWVzdC9SZXNwb25zZSBzY2hlbWEgYW5kIFJlc3BvbnNlIEpTT05zIGFyZSBleHBhbmRlZCBieSBkZWZhdWx0LCBzbyB0aGF0IHlvdSBkb250IGhhdmUgdG8gY2xpY2sgYW5kIHJldmVhbCBlYWNoIGxldmVsIGZvciBlYXN5IGJyb3dzaW5nIGFuZCByZWFkCjxrYmQ+CiAgICA8aW1nIHNyYz0iL3NjcmVlbnNob3RzL3Jlc3BvbnNlLXNjaGVtYS5wbmc/cmF3PXRydWUiPgo8L2tiZD4KCiMjIyMgQ29uc29sZQpCdWlsdCBpbiBjb25zb2xlLCBmaWVsZHMgYXJlIHByZS1maWxsZWQgd2l0aCB2YWx1ZXMgaWYgZXhpc3QgaW4gc3BlYywgcmVxdWVzdCBib2R5IGlzIGdlbmVyYXRlZCBhbmQgZmlsbGVkIGJhc2VkIG9uIHNjaGVtYSwgYWxsb3dpbmcgeW91IHRvIHF1aWNrbHkgdHJ5IG91dCB0aGUgZW5kLXBvaW50IHdpdGggYSBzaW5nbGUgY2xpY2sgCjxrYmQ+CiAgICA8aW1nIHNyYz0iL3NjcmVlbnNob3RzL2NvbnNvbGUucG5nP3Jhdz10cnVlIj4KPC9rYmQ+CgojIyMjIEF1dGhlbnRpY2F0aW9uIFN1cHBvcnQKQWxsIHRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFyZSBzdXBwb3J0ZWQuIEFsb25nIHdpdGggaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byB1c2UgaXQKPGtiZD4KICAgIDxpbWcgc3JjPSIvc2NyZWVuc2hvdHMvYXV0aGVudGljYXRpb24xLnBuZz9yYXc9dHJ1ZSI+Cjwva2JkPgo8a2JkPgogICAgPGltZyBzcmM9Ii9zY3JlZW5zaG90cy9hdXRoZW50aWNhdGlvbjIucG5nP3Jhdz10cnVlIj4KPC9rYmQ+Cgo= readmeEtag: '"1c4738347c5e8bb21cf1eeceb9278ddd435882e0"' readmeLastModified: Thu, 28 Feb 2019 23:26:40 GMT repositoryId: 159911001 description: OpenApi viewer Implemented using Vue created: '2018-12-01T05:06:18Z' updated: '2024-06-19T05:19:52Z' language: Vue archived: false stars: 104 watchers: 2 forks: 20 owner: mrin9 logo: https://avatars.githubusercontent.com/u/5056899?v=4 repoEtag: '"1d77cdddc14079578e23872dd6b844656218fb7f7e5f6da5c4fa042e4e11539b"' repoLastModified: Wed, 19 Jun 2024 05:19:52 GMT foundInMaster: true id: e8e8917a5716d2c743ba73a1b7ba57c4 - source: - https://openapi.tools/ - openapi3 tags name: RapiPdf category: Documentation source_description: Custom Element to generate PDF from OpenAPI descriptions. link: https://mrin9.github.io/RapiPdf repository: https://github.com/mrin9/rapipdf language: Web Component v2: true v3: true repositoryMetadata: base64Readme: >- PGltZyBhbHQ9Ik1yaW5Eb2MgbG9nbyIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vbXJpbjkvUmFwaVBkZi9ibG9iL21hc3Rlci9sb2dvLnBuZyIgd2lkdGg9IjYwcHgiIC8+CgoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSIvPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3NpemUvbXJpbjkvcmFwaXBkZi9kaXN0L3JhcGlwZGYtbWluLmpzLnN2Zz9jb2xvckI9Ymx1ZSZsYWJlbD1taW5pZmllZCZzdHlsZT1mbGF0LXNxdWFyZSI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvc2l6ZS9tcmluOS9yYXBpcGRmL2Rpc3QvcmFwaXBkZi1taW4uanMuZ3ouc3ZnP2NvbG9yQj1ibHVlJmxhYmVsPXppcCZzdHlsZT1mbGF0LXNxdWFyZSI+CjwvcD4KCiMgUmFwaVBERgpDdXN0b20gZWxlbWVudCBmb3IgT3Blbi1BUEkgdG8gUERGIGdlbmVyYXRpb24KCiMjIEZlYXR1cmVzCi0gU3VwcG9ydHMgU3dhZ2dlciAyLjAgYW5kIE9wZW5BUEkgMy4wCi0gR2VuZXJhdGUgUERGIHVzaW5nIFdlYi1Db21wb25lbnQKLSBXb3JrcyB3aXRoIGFueSBmcmFtZXdvcmsgb3Igd2l0aCBubyBmcmFtZXdvcmsKLSBQbGVudHkgb2YgY3VzdG9taXppbmcgb3B0aW9ucywgaW5jbHVkaW5nIHNlbGVjdGlvbiBvZiBicmFuZCBjb2xvcnMKLSBTdXBwb3J0ZWQgb24gQ2hyb21lLCBGaXJlRm94IGFuZCBTYWZhcmkuIChOb3QgeWV0IHRlc3RlZCBvbiBFZGdlKQoKIyMgRG9jdW1lbnRhdGlvbgpbQ2hlY2sgb3V0IHRoZSB1c2FnZSBhbmQgZXhhbXBsZXNdKGh0dHBzOi8vbXJpbjkuZ2l0aHViLmlvL1JhcGlQZGYvKQoKIyMgQnVpbGQgUHJvY2VzcwpXZSByZWNvbW1lbmQgYHlhcm5gIG92ZXIgYG5wbWAgYXMgd2UgdXNlIHlhcm4gW3Jlc29sdXRpb25zXShodHRwczovL3lhcm5wa2cuY29tL2xhbmcvZW4vZG9jcy9zZWxlY3RpdmUtdmVyc2lvbi1yZXNvbHV0aW9ucy8pIHRvIGtlZXAgdGhlIGJ1bmRsZSBzaXplIHNtYWxsZXIuIEFzIG9mIHRoaXMgd3JpdGluZyB0aGlzIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBpbiBucG0gbmF0aXZlbHkKYGBgYmFzaAojIENsb25lIC8gRG93bmxvYWQgdGhlIHByb2plY3QgdGhlbgp5YXJuIGluc3RhbGwKCiMgYnVpbGQgd2lsbCBnZW5lcmF0ZSByYXBpZG9jLW1pbi5qcywgdGhpcyBpcyB0aGUgb25seSBmaWxlIHlvdSB3aWxsIG5lZWQuCiMgdXNlIGl0IGluIHRoZSBzY3JpcHQgdGFnIG9mIHlvdXIgaHRtbCA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyYXBpZG9jLW1pbi5qcyI+PC9zY3JpcHQ+PC9ib2R5Pgp5YXJuIGJ1aWxkCgojIGZvciBkZXZlbG9wZW1lbnQgdXNlIHlhcm4gc2VydmUgKHRoaXMgd2lsbCBzdGFydCBhbiB3ZWJzZXJ2ZXIgYXQgcG9ydCA4MDgwLCB0aGVuIG5hdmlnYXRlIHRvIGxvY2FsaG9zdDo4MDgwKQp5YXJuIHNlcnZlCgojIGFsdGVybmF0aXZlIHRvIHlhcm4gc2VydmU6ICh0aGlzIHdpbGwgc3RhcnQgYW4gd2Vic2VydmVyIGF0IHBvcnQgODA4MCBsaXN0ZW5pbmcgdG8gYWxsIGFkYXB0ZXJzKQp5YXJuIHNlcnZlLWV2ZXJ5b25lCmBgYA== readmeEtag: '"321c11c632be27a5e95bf6eac4cf7441b3d4f28f"' readmeLastModified: Tue, 28 Jul 2020 07:01:44 GMT repositoryId: 176074336 description: PDF generation from OpenAPI / Swagger Spec created: '2019-03-17T08:21:39Z' updated: '2024-08-12T11:51:33Z' language: JavaScript archived: false stars: 279 watchers: 6 forks: 100 owner: mrin9 logo: https://avatars.githubusercontent.com/u/5056899?v=4 license: MIT repoEtag: '"bfded125df7a7ed4ca707c13f1545403036c23bcfa36cb7d0047775b1597a6b0"' repoLastModified: Mon, 12 Aug 2024 11:51:33 GMT foundInMaster: true id: 614c2b5cc8e9e45d47072d21fa7d607f - source: https://openapi.tools/ name: Stoplight Docs category: Documentation link: https://stoplight.io/api-documentation language: SaaS source_description: >- Create beautiful, customizable, interactive API documentation generated from OpenAPI, integrated with Stoplight Studio. v2: true v3: true v3_1: true foundInMaster: true id: a9510ff30812653a4089e453440ac0b7 - source: - https://openapi.tools/ - openapi3 tags name: jekyll-openapi category: - Documentation - Server Implementations link: https://github.com/robertlove/jekyll-openapi language: Jekyll source_description: >- An OpenAPI 3 documentation website generator built with Jekyll for use on GitHub Pages. v3: true repository: https://github.com/robertlove/jekyll-openapi repositoryMetadata: base64Readme: >- IyBKZWt5bGwvT3BlbkFQSQoKIVtPQVNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvT0FTLTMuMC4zLWJyaWdodGdyZWVuLnN2ZykKCioqTm90ZToqKiBUaGlzIHByb2plY3QgaXMgKipub3QgZmluaXNoZWQqKiBhbmQgaXMgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50LiBDb250cmlidXRpb25zIHdlbGNvbWUhCgpKZWt5bGwvT3BlbkFQSSBpcyBhbiBPcGVuQVBJIDMgZG9jdW1lbnRhdGlvbiB3ZWJzaXRlIGdlbmVyYXRvciBidWlsdCB3aXRoIEpla3lsbCBmb3IgdXNlIG9uIEdpdEh1YiBQYWdlcy4KCltKZWt5bGxdKGh0dHBzOi8vamVreWxscmIuY29tLykgaXMgYSBzdGF0aWMgd2Vic2l0ZSBnZW5lcmF0b3IgdGhhdCB3b3JrcyBzZWFtbGVzc2x5IHdpdGggW0dpdEh1YiBQYWdlc10oaHR0cHM6Ly9wYWdlcy5naXRodWIuY29tLyksIHdoaWxzdCB0aGUgW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pIChPQVMpIGRlZmluZXMgYSBzdGFuZGFyZCwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UtYWdub3N0aWMgaW50ZXJmYWNlIGRlc2NyaXB0aW9uIGZvciBSRVNUIEFQSXMuIFB1dCB0aGlzIGFsbCB0b2dldGhlciBhbmQgeW91IGdldCBhIGZhc3QsIHNlY3VyZSBhbmQgaGlnaGx5IGN1c3RvbWlzYWJsZSBzdGF0aWMgd2Vic2l0ZSB3aXRoIGZyZWUgaG9zdGluZyBmb3IgeW91ciBBUEkgZG9jdW1lbnRhdGlvbi4KCiMjIFRhYmxlIG9mIENvbnRlbnRzCgotIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCi0gW1VzYWdlXSgjdXNhZ2UpCi0gW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKLSBbQ3JlZGl0c10oI2NyZWRpdHMpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgSW5zdGFsbGF0aW9uCgpCZWZvcmUgeW91IGJlZ2luLCBlbnN1cmUgeW91J3ZlIGluc3RhbGxlZCBbSmVreWxsXShodHRwczovL2pla3lsbHJiLmNvbS8pLiBUaGVuOgoKMS4gYCQgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9yb2JlcnRsb3ZlL2pla3lsbC1vcGVuYXBpLmdpdGAKMS4gYCQgY2QgamVreWxsLW9wZW5hcGlgCjEuIGAkIGJ1bmRsZSBpbnN0YWxsYAoxLiBgJCBidW5kbGUgZXhlYyBqZWt5bGwgc2VydmVgCgpJZiBhbGwgd2VudCB3ZWxsLCB5b3UnbGwgYmUgYWJsZSB0byB2aWV3IHlvdXIgbmV3IEpla3lsbC9PcGVuQVBJIHdlYnNpdGUgbG9jYWxseSBieSBnb2luZyB0byBodHRwOi8vMTI3LjAuMC4xOjQwMDAvamVreWxsLW9wZW5hcGkvIGluIHlvdXIgYnJvd3Nlci4KCiMjIFVzYWdlCgpVcGRhdGUgYF9kYXRhL29wZW5hcGkuanNvbmAgd2l0aCB5b3VyIG93biBBUEkgZGVzY3JpcHRpb24sIHJlZnJlc2ggeW91ciBicm93c2VyLCBhbmQgdm9pbMOgIQoKKipOb3RlOioqIFRoaXMgcHJvamVjdCBpcyBidWlsdCB3aXRoIFtKZWt5bGwvQm9vdHN0cmFwXShodHRwczovL2dpdGh1Yi5jb20vcm9iZXJ0bG92ZS9qZWt5bGwtYm9vdHN0cmFwKS4gU2VlIFtKZWt5bGwvQm9vdHN0cmFwIFVzYWdlXShodHRwczovL2dpdGh1Yi5jb20vcm9iZXJ0bG92ZS9qZWt5bGwtYm9vdHN0cmFwI3VzYWdlKSBmb3IgbW9yZSB1c2FnZSBpbmZvcm1hdGlvbiAtIGluY2x1ZGluZyBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGNoYW5nZSB0aGUgbG9vayBhbmQgZmVlbCBvZiB5b3VyIEFQSSBkb2N1bWVudGF0aW9uLgoKIyMgQ29udHJpYnV0aW5nCgpTZWUgW0NvbnRyaWJ1dGluZ10oaHR0cHM6Ly9naXRodWIuY29tL3JvYmVydGxvdmUvLmdpdGh1Yi9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpLgoKIyMgQ3JlZGl0cwoKU2VlIFtDb250cmlidXRvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9yb2JlcnRsb3ZlL2pla3lsbC1vcGVuYXBpL2dyYXBocy9jb250cmlidXRvcnMpLgoKIyMgTGljZW5zZQoKU2VlIFtMSUNFTlNFXShMSUNFTlNFKS4K readmeEtag: '"afbe1ae786fa174dab9c5405965eae629c46b695"' readmeLastModified: Fri, 11 Jun 2021 00:22:28 GMT repositoryId: 188228581 description: >- An OpenAPI 3 documentation website generator built with Jekyll for use on GitHub Pages created: '2019-05-23T12:20:07Z' updated: '2024-06-23T11:35:00Z' language: HTML archived: true stars: 43 watchers: 3 forks: 7 owner: robertlove logo: https://avatars.githubusercontent.com/u/1000773?v=4 license: Apache-2.0 repoEtag: '"5ed9fefe973ac7bcb231ca30d86fd60fe0d7621dff1cc0ea0105e57d095a9dc6"' repoLastModified: Sun, 23 Jun 2024 11:35:00 GMT foundInMaster: true id: 5c30d43528b7d785fe7aa3f05bb9f9a3 - source: - https://openapi.tools/ - openapi3 tags name: Spot category: - DSL - Parsers repository: https://github.com/airtasker/spot language: TypeScript source_description: A concise, developer-friendly way to describe your API contract. v2: true v3: true repositoryMetadata: base64Readme: >- IyBTcG90CgoqKlNwb3QqKiAoXyJTaW5nbGUgUG9pbnQgT2YgVHJ1dGgiXykgaXMgYSBjb25jaXNlLCBkZXZlbG9wZXItZnJpZW5kbHkgd2F5IHRvIGRlc2NyaWJlIHlvdXIgQVBJIGNvbnRyYWN0LgoKTGV2ZXJhZ2luZyB0aGUgVHlwZVNjcmlwdCBzeW50YXgsIGl0IGxldHMgeW91IGRlc2NyaWJlIHlvdXIgQVBJIGFuZCBnZW5lcmF0ZSBvdGhlciBBUEkgY29udHJhY3QgZm9ybWF0cyB5b3UgbmVlZCAoT3BlbkFQSSwgU3dhZ2dlciwgSlNPTiBTY2hlbWEpLgoKWW91IGRvbid0IG5lZWQgdG8gdXNlIFR5cGVTY3JpcHQgaW4geW91ciBjb2RlYmFzZSB0byBiZW5lZml0IGZyb20gdXNpbmcgU3BvdC4KCkV4YW1wbGUgb2YgYW4gQVBJIGRlZmluaXRpb24gZmlsZSBgYXBpLnRzYCB3aGljaCBkZWZpbmVzIGEgc2luZ2xlIGBQT1NUYCBlbmRwb2ludCB0byBjcmVhdGUgYSB1c2VyOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBhcGksIGVuZHBvaW50LCByZXF1ZXN0LCByZXNwb25zZSwgYm9keSB9IGZyb20gIkBhaXJ0YXNrZXIvc3BvdCI7CgpAYXBpKHsKICBuYW1lOiAiTXkgQVBJIgp9KQpjbGFzcyBBcGkge30KCkBlbmRwb2ludCh7CiAgbWV0aG9kOiAiUE9TVCIsCiAgcGF0aDogIi91c2VycyIKfSkKY2xhc3MgQ3JlYXRlVXNlciB7CiAgQHJlcXVlc3QKICByZXF1ZXN0KEBib2R5IGJvZHk6IENyZWF0ZVVzZXJSZXF1ZXN0KSB7fQoKICBAcmVzcG9uc2UoeyBzdGF0dXM6IDIwMSB9KQogIHJlc3BvbnNlKEBib2R5IGJvZHk6IENyZWF0ZVVzZXJSZXNwb25zZSkge30KfQoKaW50ZXJmYWNlIENyZWF0ZVVzZXJSZXF1ZXN0IHsKICBmaXJzdE5hbWU6IHN0cmluZzsKICBsYXN0TmFtZTogc3RyaW5nOwp9CgppbnRlcmZhY2UgQ3JlYXRlVXNlclJlc3BvbnNlIHsKICBmaXJzdE5hbWU6IHN0cmluZzsKICBsYXN0TmFtZTogc3RyaW5nOwogIHJvbGU6IHN0cmluZzsKfQpgYGAKCiMjIEdldHRpbmcgU3RhcnRlZAoKR2V0IHN0YXJ0ZWQgd2l0aCB3cml0aW5nIFNwb3QgY29udHJhY3RzIC0gW1Nwb3QgR3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC93aWtpL1Nwb3QtR3VpZGUpCgpGb3IgYWxsIGF2YWlsYWJsZSBzeW50YXgsIHNlZSBbU3BvdCBTeW50YXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC93aWtpL1Nwb3QtU3ludGF4KQoKIyMjIEluc3RhbGxhdGlvbgoKV2l0aCBbeWFybl0oaHR0cHM6Ly95YXJucGtnLmNvbS9lbi9kb2NzL3VzYWdlKSBpbnN0YWxsZWQgYW5kIGluaXRpYWxpemVkIGFkZCBgQGFpcnRhc2tlci9zcG90YCB0byB5b3VyIHByb2plY3Q6CgpgYGBzaAp5YXJuIGFkZCBAYWlydGFza2VyL3Nwb3QKYGBgCgpZb3UgY2FuIHBhc3MgdGhlIGRlZmluaXRpb24gYWJvdmUgdG8gYSBnZW5lcmF0b3IgYnkgc2ltcGx5IHJ1bm5pbmc6CgpgYGBzaApucHggQGFpcnRhc2tlci9zcG90IGdlbmVyYXRlIC0tY29udHJhY3QgYXBpLnRzCmBgYAoKIyBXaHkgd2UgYnVpbHQgU3BvdAoKQXQgZmlyc3QgZ2xhbmNlLCB5b3UgbWF5IHdvbmRlciB3aHkgd2UgYm90aGVyZWQgYnVpbGRpbmcgU3BvdC4gV2h5IG5vdCB1c2UgT3BlbkFQSSAoZm9ybWVseSBrbm93biBhcyBTd2FnZ2VyKSB0byBkZXNjcmliZSB5b3VyIEFQST8KCkF0IHRoZSBjb3JlLCB3ZSBidWlsdCBTcG90IGJlY2F1c2Ugd2Ugd2FudGVkIGEgYmV0dGVyIGRldmVsb3BlciBleHBlcmllbmNlLgoKIyMgV3JpdGluZyBjb250cmFjdHMKCk9wZW5BUEkgZG9jdW1lbnRzIGFyZSBzdG9yZWQgYXMgWUFNTCBmaWxlcywgZm9sbG93aW5nIGEgdmVyeSBzcGVjaWZpYyBzY2hlbWEuIFlvdSB3b27igJl0IGtub3cgdGhhdCB5b3UgdXNlZCB0aGUgd3JvbmcgZmllbGQgbmFtZSBvciBmb3Jnb3QgdG8gd3JhcCBhIHR5cGUgZGVmaW5pdGlvbiBpbnRvIGEgc2NoZW1hIG9iamVjdCB1bmxlc3MgeW91IHJ1biBhIGdvb2QgT3BlbkFQSSBsaW50ZXIuIE1vc3QgZGV2ZWxvcGVycyB3aG8gYXJlbuKAmXQgaW50aW1hdGVseSBmYW1pbGlhciB3aXRoIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZW5kIHVwIHVzaW5nIGEgdmlzdWFsIGVkaXRvciBzdWNoIGFzIFN3YWdnZXIgRWRpdG9yIG9yIFN0b3BsaWdodC4KClNpbmNlIFNwb3QgbGV2ZXJhZ2VzIHRoZSBUeXBlU2NyaXB0IHN5bnRheCwgYWxsIHlvdSBuZWVkIGlzIHRvIHdyaXRlIHZhbGlkIFR5cGVTY3JpcHQgY29kZS4gWW91ciBlZGl0b3Igd2lsbCBpbW1lZGlhdGVseSB0ZWxsIHlvdSB3aGVuIHlvdXIgY29kZSBpcyBpbnZhbGlkLiBJdCB3aWxsIHRlbGwgeW91IHdoYXTigJlzIG1pc3NpbmcsIGFuZCB5b3UgZXZlbiBnZXQgYXV0b2NvbXBsZXRlIGZvciBmcmVlLiBXZSBjb3VsZCBoYXZlIHBpY2tlZCBhbnkgb3RoZXIgdHlwZWQgbGFuZ3VhZ2XigJRUeXBlU2NyaXB0IGp1c3QgaGFwcGVuZWQgdG8gYmUgb25lIG9mIHRoZSBtb3N0IGNvbmNpc2UgYW5kIHViaXF1aXRvdXMgZm9yIHVzLgoKIyMgUmV2aWV3aW5nIGNvbnRyYWN0cwoKV2UgYmVsaWV2ZSB0aGF0IEFQSSBjb250cmFjdHMgc2hvdWxkIGJlIGNoZWNrZWQgaW50byBHaXQsIG9yIHdoaWNoZXZlciBjb2RlIHZlcnNpb25pbmcgc3lzdGVtIHlvdSB1c2UuIEluIGFkZGl0aW9uLCBBUEkgY29udHJhY3RzIHNob3VsZCBiZSBzeXN0ZW1hdGljYWxseSBwZWVyIHJldmlld2VkLiBJdOKAmXMgZmFyIHRvbyBlYXN5IGZvciBhIGJhY2tlbmQgZW5naW5lZXIgdG8gaW5jb3JyZWN0bHkgYXNzdW1lIHdoYXQgY2xpZW50IGVuZ2luZWVycyBleHBlY3QgZnJvbSBhbiBlbmRwb2ludC4KCkJlY2F1c2Ugb2YgdGhlaXIgY29tcGxleCBuZXN0ZWQgc3RydWN0dXJlIGFuZCB0aGUgcmljaG5lc3Mgb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiwgT3BlbkFQSSBkb2N1bWVudHMgY2FuIGJlIGRpZmZpY3VsdCB0byByZXZpZXcgaW4gYSBwdWxsIHJlcXVlc3QuIFRoZXnigJlyZSBncmVhdCBmb3IgbWFjaGluZXMsIGJ1dCBub3QgYWx3YXlzIGZvciBodW1hbnMuCgpTcG90IGFpbXMgdG8gYmUgYXMgaHVtYW4tcmVhZGFibGUgYXMgcG9zc2libGUuIFdl4oCZdmUgc2VlbiBkZXZlbG9wZXJzIGJlY29tZSBhIGxvdCBtb3JlIGVuZ2FnZWQgaW4gZGlzY3Vzc2lvbnMgb24gcHVsbCByZXF1ZXN0cyBmb3IgU3BvdCBjb250cmFjdHMsIGNvbXBhcmVkIHRvIG91ciBwcmV2aW91cyBPcGVuQVBJIGRvY3VtZW50cy4KCiMjIEludGVyb3BlcmFiaWxpdHkgd2l0aCB2YXJpb3VzIGZvcm1hdHMKCkRlcGVuZGluZyBvbiB3aGF0IHlvdSdyZSB0cnlpbmcgdG8gYWNoaWV2ZSAodGVzdGluZywgZG9jdW1lbnRhdGlvbiwgY2xpZW50IGNvZGUgZ2VuZXJhdGlvbuKApiksIHlvdSdsbCBmaW5kIHRvb2xzIHRoYXQgb25seSB3b3JrIHdpdGggT3BlbkFQSSAyIChTd2FnZ2VyKSwgYW5kIG5ld2VyIHRvb2xzIHRoYXQgb25seSBzdXBwb3J0IE9wZW5BUEkgMy4gWW91IG1heSBhbHNvIGZpbmQgdG9vbHMgZm9yIGEgZGlmZmVyZW50IEFQSSBlY29zeXN0ZW0gc3VjaCBhcyBKU09OIFNjaGVtYSBvciBBUEkgQmx1ZXByaW50LgoKV2UgYnVpbHQgU3BvdCB3aXRoIHRoaXMgaW4gbWluZC4gSW5zdGVhZCBvZiBoYXZpbmcgdG8ganVnZ2xlIHZhcmlvdXMgQVBJIGZvcm1hdCBjb252ZXJ0ZXJzLCBTcG90IGNhbiBnZW5lcmF0ZSBldmVyeSBtYWpvciBBUEkgZG9jdW1lbnQgZm9ybWF0LiBUaGlzIGlzIHdoeSB3ZSBjYWxsZWQgaXQgIlNpbmdsZSBQb2ludCBPZiBUcnV0aCIuCgpbIVtvY2xpZl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jbGktb2NsaWYtYnJpZ2h0Z3JlZW4uc3ZnKV0oaHR0cHM6Ly9vY2xpZi5pbykKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYWlydGFza2VyL3Nwb3Quc3ZnKV0oaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9AYWlydGFza2VyL3Nwb3QpClshW0NpcmNsZUNJXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9haXJ0YXNrZXIvc3BvdC90cmVlL21hc3Rlci5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvYWlydGFza2VyL3Nwb3QvdHJlZS9tYXN0ZXIpClshW0Rvd25sb2Fkcy93ZWVrXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kdy9AYWlydGFza2VyL3Nwb3Quc3ZnKV0oaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9AYWlydGFza2VyL3Nwb3QpClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvQGFpcnRhc2tlci9zcG90LnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC9ibG9iL21hc3Rlci9wYWNrYWdlLmpzb24pCgo8IS0tIHRvYyAtLT4KKiBbU3BvdF0oI3Nwb3QpCiogW1doeSB3ZSBidWlsdCBTcG90XSgjd2h5LXdlLWJ1aWx0LXNwb3QpCiogW1VzYWdlXSgjdXNhZ2UpCiogW0NvbW1hbmRzXSgjY29tbWFuZHMpCjwhLS0gdG9jc3RvcCAtLT4KCiMgVXNhZ2UKClRvIGdldCBzdGFydGVkIGFuZCBzZXQgdXAgYW4gQVBJIGRlY2xhcmF0aW9uIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgcnVuOgoKYGBgCm5weCBAYWlydGFza2VyL3Nwb3QgaW5pdApgYGAKCllvdSBjYW4gdGhlbiBydW4gYSBnZW5lcmF0b3Igd2l0aDoKCmBgYApucHggQGFpcnRhc2tlci9zcG90IGdlbmVyYXRlIC0tY29udHJhY3QgYXBpLnRzCmBgYAoKIyMgSW4gTWVtb3J5IFVzYWdlCgpgYGB0cwppbXBvcnQgeyBTcG90IH0gZnJvbSAiQGFpcnRhc2tlci9zcG90IjsKCmNvbnN0IGNvbnRyYWN0ID0gU3BvdC5wYXJzZUNvbnRyYWN0KCIuL2FwaS50cyIpCmNvbnN0IG9wZW5BcGkgPSBTcG90Lk9wZW5BcGkzLmdlbmVyYXRlT3BlbkFQSTMoY29udHJhY3QpOwoKY29uc29sZS5sb2cob3BlbkFwaSk7CgovKgp7CiAgb3BlbmFwaTogJzMuMC4yJywKICBpbmZvOiB7IHRpdGxlOiAnbXktYXBpJywgZGVzY3JpcHRpb246IHVuZGVmaW5lZCwgdmVyc2lvbjogJzAuMC4wJyB9LAogIHBhdGhzOiB7ICcvdXNlcnMnOiB7IHBvc3Q6IFtPYmplY3RdIH0gfSwKICBjb21wb25lbnRzOiB7CiAgICBzY2hlbWFzOiB7IENyZWF0ZVVzZXJSZXF1ZXN0OiBbT2JqZWN0XSwgQ3JlYXRlVXNlclJlc3BvbnNlOiBbT2JqZWN0XSB9LAogICAgc2VjdXJpdHlTY2hlbWVzOiB1bmRlZmluZWQKICB9LAogIHNlY3VyaXR5OiB1bmRlZmluZWQKfQoqLwoKYGBgCgojIENvbW1hbmRzCgo8IS0tIGNvbW1hbmRzIC0tPgoqIFtgc3BvdCBjaGVja3N1bSBTUE9UX0NPTlRSQUNUYF0oI3Nwb3QtY2hlY2tzdW0tc3BvdF9jb250cmFjdCkKKiBbYHNwb3QgZG9jcyBTUE9UX0NPTlRSQUNUYF0oI3Nwb3QtZG9jcy1zcG90X2NvbnRyYWN0KQoqIFtgc3BvdCBnZW5lcmF0ZWBdKCNzcG90LWdlbmVyYXRlKQoqIFtgc3BvdCBoZWxwIFtDT01NQU5EXWBdKCNzcG90LWhlbHAtY29tbWFuZCkKKiBbYHNwb3QgaW5pdGBdKCNzcG90LWluaXQpCiogW2BzcG90IGxpbnQgU1BPVF9DT05UUkFDVGBdKCNzcG90LWxpbnQtc3BvdF9jb250cmFjdCkKKiBbYHNwb3QgbW9jayBTUE9UX0NPTlRSQUNUYF0oI3Nwb3QtbW9jay1zcG90X2NvbnRyYWN0KQoqIFtgc3BvdCB2YWxpZGF0ZSBTUE9UX0NPTlRSQUNUYF0oI3Nwb3QtdmFsaWRhdGUtc3BvdF9jb250cmFjdCkKKiBbYHNwb3QgdmFsaWRhdGlvbi1zZXJ2ZXIgU1BPVF9DT05UUkFDVGBdKCNzcG90LXZhbGlkYXRpb24tc2VydmVyLXNwb3RfY29udHJhY3QpCgojIyBgc3BvdCBjaGVja3N1bSBTUE9UX0NPTlRSQUNUYAoKR2VuZXJhdGUgYSBjaGVja3N1bSBmb3IgYSBTcG90IGNvbnRyYWN0CgpgYGAKVVNBR0UKICAkIHNwb3QgY2hlY2tzdW0gU1BPVF9DT05UUkFDVAoKQVJHVU1FTlRTCiAgU1BPVF9DT05UUkFDVCAgcGF0aCB0byBTcG90IGNvbnRyYWN0CgpPUFRJT05TCiAgLWgsIC0taGVscCAgc2hvdyBDTEkgaGVscAoKRVhBTVBMRQogICQgc3BvdCBjaGVja3N1bSBhcGkudHMKYGBgCgpfU2VlIGNvZGU6IFtidWlsZC9jbGkvc3JjL2NvbW1hbmRzL2NoZWNrc3VtLmpzXShodHRwczovL2dpdGh1Yi5jb20vYWlydGFza2VyL3Nwb3QvYmxvYi92MS4xMy4wL2J1aWxkL2NsaS9zcmMvY29tbWFuZHMvY2hlY2tzdW0uanMpXwoKIyMgYHNwb3QgZG9jcyBTUE9UX0NPTlRSQUNUYAoKUHJldmlldyBTcG90IGNvbnRyYWN0IGFzIE9wZW5BUEkzIGRvY3VtZW50YXRpb24uIFRoZSBkb2N1bWVudGF0aW9uIHNlcnZlciB3aWxsIHN0YXJ0IG9uIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC4KCmBgYApVU0FHRQogICQgc3BvdCBkb2NzIFNQT1RfQ09OVFJBQ1QKCkFSR1VNRU5UUwogIFNQT1RfQ09OVFJBQ1QgIHBhdGggdG8gU3BvdCBjb250cmFjdAoKT1BUSU9OUwogIC1oLCAtLWhlbHAgICAgICAgc2hvdyBDTEkgaGVscAogIC1wLCAtLXBvcnQ9cG9ydCAgW2RlZmF1bHQ6IDgwODBdIERvY3VtZW50YXRpb24gc2VydmVyIHBvcnQKCkVYQU1QTEUKICAkIHNwb3QgZG9jcyBhcGkudHMKYGBgCgpfU2VlIGNvZGU6IFtidWlsZC9jbGkvc3JjL2NvbW1hbmRzL2RvY3MuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC9ibG9iL3YxLjEzLjAvYnVpbGQvY2xpL3NyYy9jb21tYW5kcy9kb2NzLmpzKV8KCiMjIGBzcG90IGdlbmVyYXRlYAoKUnVucyBhIGdlbmVyYXRvciBvbiBhbiBBUEkuIFVzZWQgdG8gcHJvZHVjZSBjbGllbnQgbGlicmFyaWVzLCBzZXJ2ZXIgYm9pbGVycGxhdGVzIGFuZCB3ZWxsLWtub3duIEFQSSBjb250cmFjdCBmb3JtYXRzIHN1Y2ggYXMgT3BlbkFQSS4KCmBgYApVU0FHRQogICQgc3BvdCBnZW5lcmF0ZQoKT1BUSU9OUwogIC1jLCAtLWNvbnRyYWN0PWNvbnRyYWN0ICAgIChyZXF1aXJlZCkgUGF0aCB0byBhIFR5cGVTY3JpcHQgQ29udHJhY3QgZGVmaW5pdGlvbgogIC1nLCAtLWdlbmVyYXRvcj1nZW5lcmF0b3IgIEdlbmVyYXRvciB0byBydW4KICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICBzaG93IENMSSBoZWxwCiAgLWwsIC0tbGFuZ3VhZ2U9bGFuZ3VhZ2UgICAgTGFuZ3VhZ2UgdG8gZ2VuZXJhdGUKICAtbywgLS1vdXQ9b3V0ICAgICAgICAgICAgICBEaXJlY3RvcnkgaW4gd2hpY2ggdG8gb3V0cHV0IGdlbmVyYXRlZCBmaWxlcwoKRVhBTVBMRQogICQgc3BvdCBnZW5lcmF0ZSAtLWNvbnRyYWN0IGFwaS50cyAtLWxhbmd1YWdlIHlhbWwgLS1nZW5lcmF0b3Igb3BlbmFwaTMgLS1vdXQgb3V0cHV0LwpgYGAKCl9TZWUgY29kZTogW2J1aWxkL2NsaS9zcmMvY29tbWFuZHMvZ2VuZXJhdGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC9ibG9iL3YxLjEzLjAvYnVpbGQvY2xpL3NyYy9jb21tYW5kcy9nZW5lcmF0ZS5qcylfCgojIyBgc3BvdCBoZWxwIFtDT01NQU5EXWAKCmRpc3BsYXkgaGVscCBmb3Igc3BvdAoKYGBgClVTQUdFCiAgJCBzcG90IGhlbHAgW0NPTU1BTkRdCgpBUkdVTUVOVFMKICBDT01NQU5EICBjb21tYW5kIHRvIHNob3cgaGVscCBmb3IKCk9QVElPTlMKICAtLWFsbCAgc2VlIGFsbCBjb21tYW5kcyBpbiBDTEkKYGBgCgpfU2VlIGNvZGU6IFtAb2NsaWYvcGx1Z2luLWhlbHBdKGh0dHBzOi8vZ2l0aHViLmNvbS9vY2xpZi9wbHVnaW4taGVscC9ibG9iL3YzLjMuMS9zcmMvY29tbWFuZHMvaGVscC50cylfCgojIyBgc3BvdCBpbml0YAoKR2VuZXJhdGVzIHRoZSBib2lsZXJwbGF0ZSBmb3IgYW4gQVBJLgoKYGBgClVTQUdFCiAgJCBzcG90IGluaXQKCk9QVElPTlMKICAtaCwgLS1oZWxwICBzaG93IENMSSBoZWxwCgpFWEFNUExFCiAgJCBzcG90IGluaXQKICBHZW5lcmF0ZWQgdGhlIGZvbGxvd2luZyBmaWxlczoKICAtIGFwaS50cwogIC0gdHNjb25maWcuanNvbgogIC0gcGFja2FnZS5qc29uCmBgYAoKX1NlZSBjb2RlOiBbYnVpbGQvY2xpL3NyYy9jb21tYW5kcy9pbml0LmpzXShodHRwczovL2dpdGh1Yi5jb20vYWlydGFza2VyL3Nwb3QvYmxvYi92MS4xMy4wL2J1aWxkL2NsaS9zcmMvY29tbWFuZHMvaW5pdC5qcylfCgojIyBgc3BvdCBsaW50IFNQT1RfQ09OVFJBQ1RgCgpMaW50IGEgU3BvdCBjb250cmFjdAoKYGBgClVTQUdFCiAgJCBzcG90IGxpbnQgU1BPVF9DT05UUkFDVAoKQVJHVU1FTlRTCiAgU1BPVF9DT05UUkFDVCAgcGF0aCB0byBTcG90IGNvbnRyYWN0CgpPUFRJT05TCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdyBDTEkgaGVscAogIC0taGFzLWRpc2NyaW1pbmF0b3I9KGVycm9yfHdhcm58b2ZmKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgZm9yIGhhcy1kaXNjcmltaW5hdG9yCiAgLS1oYXMtcmVxdWVzdC1wYXlsb2FkPShlcnJvcnx3YXJufG9mZikgICAgICAgICAgICAgICAgICAgICAgICAgU2V0dGluZyBmb3IgaGFzLXJlcXVlc3QtcGF5bG9hZAogIC0taGFzLXJlc3BvbnNlPShlcnJvcnx3YXJufG9mZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgZm9yIGhhcy1yZXNwb25zZQogIC0taGFzLXJlc3BvbnNlLXBheWxvYWQ9KGVycm9yfHdhcm58b2ZmKSAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgZm9yIGhhcy1yZXNwb25zZS1wYXlsb2FkCiAgLS1uby1pbmxpbmUtb2JqZWN0cy13aXRoaW4tdW5pb25zPShlcnJvcnx3YXJufG9mZikgICAgICAgICAgICAgU2V0dGluZyBmb3Igbm8taW5saW5lLW9iamVjdHMtd2l0aGluLXVuaW9ucwogIC0tbm8tbnVsbGFibGUtYXJyYXlzPShlcnJvcnx3YXJufG9mZikgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgZm9yIG5vLW51bGxhYmxlLWFycmF5cwogIC0tbm8tbnVsbGFibGUtZmllbGRzLXdpdGhpbi1yZXF1ZXN0LWJvZGllcz0oZXJyb3J8d2FybnxvZmYpICAgIFNldHRpbmcgZm9yIG5vLW51bGxhYmxlLWZpZWxkcy13aXRoaW4tcmVxdWVzdC1ib2RpZXMKICAtLW5vLW9taXR0YWJsZS1maWVsZHMtd2l0aGluLXJlc3BvbnNlLWJvZGllcz0oZXJyb3J8d2FybnxvZmYpICBTZXR0aW5nIGZvciBuby1vbWl0dGFibGUtZmllbGRzLXdpdGhpbi1yZXNwb25zZS1ib2RpZXMKICAtLW5vLXRyYWlsaW5nLWZvcndhcmQtc2xhc2g9KGVycm9yfHdhcm58b2ZmKSAgICAgICAgICAgICAgICAgICBTZXR0aW5nIGZvciBuby10cmFpbGluZy1mb3J3YXJkLXNsYXNoCgpFWEFNUExFUwogICQgc3BvdCBsaW50IGFwaS50cwogICQgc3BvdCBsaW50IC0taGFzLWRlc2NyaW1pbmF0b3I9ZXJyb3IKICAkIHNwb3QgbGludCAtLW5vLW51bGxhYmxlLWFycmF5cz1vZmYKYGBgCgpfU2VlIGNvZGU6IFtidWlsZC9jbGkvc3JjL2NvbW1hbmRzL2xpbnQuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC9ibG9iL3YxLjEzLjAvYnVpbGQvY2xpL3NyYy9jb21tYW5kcy9saW50LmpzKV8KCiMjIGBzcG90IG1vY2sgU1BPVF9DT05UUkFDVGAKClJ1biBhIG1vY2sgc2VydmVyIGJhc2VkIG9uIGEgU3BvdCBjb250cmFjdAoKYGBgClVTQUdFCiAgJCBzcG90IG1vY2sgU1BPVF9DT05UUkFDVAoKQVJHVU1FTlRTCiAgU1BPVF9DT05UUkFDVCAgcGF0aCB0byBTcG90IGNvbnRyYWN0CgpPUFRJT05TCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdyBDTEkgaGVscAogIC1wLCAtLXBvcnQ9cG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1aXJlZCkgW2RlZmF1bHQ6IDMwMTBdIFBvcnQgb24gd2hpY2ggdG8gcnVuIHRoZSBtb2NrIHNlcnZlcgogIC0tcGF0aFByZWZpeD1wYXRoUHJlZml4ICAgICAgICAgICAgICAgICAgICAgIFByZWZpeCB0byBwcmVwZW5kIHRvIGVhY2ggZW5kcG9pbnQgcGF0aAoKICAtLXByb3h5QmFzZVVybD1wcm94eUJhc2VVcmwgICAgICAgICAgICAgICAgICBJZiBzZXQsIHRoZSBzZXJ2ZXIgd2lsbCBhY3QgYXMgYSBwcm94eSBhbmQgZmV0Y2ggZGF0YSBmcm9tIHRoZSBnaXZlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZSBzZXJ2ZXIgaW5zdGVhZCBvZiBtb2NraW5nIGl0CgogIC0tcHJveHlGYWxsYmFja0Jhc2VVcmw9cHJveHlGYWxsYmFja0Jhc2VVcmwgIExpa2UgcHJveHlCYXNlVXJsLCBleGNlcHQgdXNlZCB3aGVuIHRoZSByZXF1ZXN0ZWQgQVBJIGRvZXMgbm90IG1hdGNoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCBTUE9UIGNvbnRyYWN0LiBJZiB1bnNldCwgNDA0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgoKICAtLXByb3h5TW9ja0Jhc2VVcmw9cHJveHlNb2NrQmFzZVVybCAgICAgICAgICBMaWtlIHByb3h5QmFzZVVybCwgZXhjZXB0IHVzZWQgdG8gcHJveHkgZHJhZnQgZW5kcG9pbnRzIGluc3RlYWQgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5pbmcgbW9ja2VkIHJlc3BvbnNlcy4KCkVYQU1QTEUKICAkIHNwb3QgbW9jayBhcGkudHMKYGBgCgpfU2VlIGNvZGU6IFtidWlsZC9jbGkvc3JjL2NvbW1hbmRzL21vY2suanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC9ibG9iL3YxLjEzLjAvYnVpbGQvY2xpL3NyYy9jb21tYW5kcy9tb2NrLmpzKV8KCiMjIGBzcG90IHZhbGlkYXRlIFNQT1RfQ09OVFJBQ1RgCgpWYWxpZGF0ZSBhIFNwb3QgY29udHJhY3QKCmBgYApVU0FHRQogICQgc3BvdCB2YWxpZGF0ZSBTUE9UX0NPTlRSQUNUCgpBUkdVTUVOVFMKICBTUE9UX0NPTlRSQUNUICBwYXRoIHRvIFNwb3QgY29udHJhY3QKCk9QVElPTlMKICAtaCwgLS1oZWxwICBzaG93IENMSSBoZWxwCgpFWEFNUExFCiAgJCBzcG90IHZhbGlkYXRlIGFwaS50cwpgYGAKCl9TZWUgY29kZTogW2J1aWxkL2NsaS9zcmMvY29tbWFuZHMvdmFsaWRhdGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9haXJ0YXNrZXIvc3BvdC9ibG9iL3YxLjEzLjAvYnVpbGQvY2xpL3NyYy9jb21tYW5kcy92YWxpZGF0ZS5qcylfCgojIyBgc3BvdCB2YWxpZGF0aW9uLXNlcnZlciBTUE9UX0NPTlRSQUNUYAoKU3RhcnQgdGhlIHNwb3QgY29udHJhY3QgdmFsaWRhdGlvbiBzZXJ2ZXIKCmBgYApVU0FHRQogICQgc3BvdCB2YWxpZGF0aW9uLXNlcnZlciBTUE9UX0NPTlRSQUNUCgpBUkdVTUVOVFMKICBTUE9UX0NPTlRSQUNUICBwYXRoIHRvIFNwb3QgY29udHJhY3QKCk9QVElPTlMKICAtaCwgLS1oZWxwICAgICAgIHNob3cgQ0xJIGhlbHAKICAtcCwgLS1wb3J0PXBvcnQgIFtkZWZhdWx0OiA1OTA3XSBUaGUgcG9ydCB3aGVyZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF2YWlsYWJsZQoKRVhBTVBMRQogICQgc3BvdCB2YWxpZGF0aW9uLXNlcnZlciBhcGkudHMKYGBgCgpfU2VlIGNvZGU6IFtidWlsZC9jbGkvc3JjL2NvbW1hbmRzL3ZhbGlkYXRpb24tc2VydmVyLmpzXShodHRwczovL2dpdGh1Yi5jb20vYWlydGFza2VyL3Nwb3QvYmxvYi92MS4xMy4wL2J1aWxkL2NsaS9zcmMvY29tbWFuZHMvdmFsaWRhdGlvbi1zZXJ2ZXIuanMpXwo8IS0tIGNvbW1hbmRzc3RvcCAtLT4K readmeEtag: '"f7c178c762f4af87a2b91c47d5717357b1cb92cb"' readmeLastModified: Wed, 14 Aug 2024 00:06:07 GMT repositoryId: 152569547 description: Spot is a concise, developer-friendly way to describe your API contract. created: '2018-10-11T09:55:46Z' updated: '2024-08-19T17:38:58Z' language: TypeScript archived: false stars: 553 watchers: 48 forks: 38 owner: airtasker logo: https://avatars.githubusercontent.com/u/1745680?v=4 license: NOASSERTION repoEtag: '"771501c4fb888de2715af8e462f975c2526c367fbc84c203ad304d99e28d6e4f"' repoLastModified: Mon, 19 Aug 2024 17:38:58 GMT foundInMaster: true id: 7c28c31ae17b20b046f57bb6765c3939 - source: https://openapi.tools/ name: OpenAPI Client Generators category: - Code Generators - SDK link: https://github.com/zijianhuang/openapiclientgen language: C# repository: https://github.com/zijianhuang/openapiclientgen source_description: >- .NET Core command line program to generate strongly typed client API codes in C# on .NET Frameworks and .NET Core, and in TypeScript for Angular 5+, Aurelia, jQuery, AXIOS and Fetch API. v2: true v3: true repositoryMetadata: base64Readme: >- IyBTdHJvbmdseSBUeXBlZCBPcGVuQVBJIENsaWVudCBHZW5lcmF0b3JzDQpSZWFkaW5nIGFuIE9wZW5BUEkgLyBTd2FnZ2VyIFlBTUwvSlNPTiBkZWZpbml0aW9uIGZpbGUsIE9wZW5BcGlDbGllbnRHZW4gZ2VuZXJhdGVzIHN0cm9uZ2x5IHR5cGVkIGNsaWVudCBBUEkgY29kZXMgaW4gQyMgYW5kIGluIFR5cGVTY3JpcHQgZm9yIEFuZ3VsYXIsIEF4aW9zLCBGZXRjaCBBUEksIEF1cmVsaWEgYW5kIGpRdWVyeSwgYXMgd2VsbCBhcyBBbmd1bGFyIHN0cmljdGx5IHR5cGVkIHJlYWN0aXZlIGZvcm1zLg0KDQpUaGlzIHByb2dyYW0gaXMgYmFzZWQgb24gRm9ubG93LlR5cGVTY3JpcHRDb2RlRG9tQ29yZSBhbmQgRm9ubG93LlBvY28yVHNDb3JlIHdoaWNoIGFyZSBjb3JlIGNvbXBvbmVudHMgb2YgW1dlYkFwaUNsaWVudEdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3ppamlhbmh1YW5nL3dlYmFwaWNsaWVudGdlbiksIHRodXMgdGhlIGNvZGVzIGdlbmVyYXRlZCBzaGFyZSBzaW1pbGFyIGNoYXJhY3RlcmlzdGljcy4NCg0KR2VuZXJhdGVkIFR5cGVTY3JpcHQgY29kZXMgY29uZm9ybSB0byB0aGUgW1R5cGVTY3JpcHQgc3RyaWN0IG1vZGVdKGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy90c2NvbmZpZyNzdHJpY3QpLCBhbmQgdGhlIGdlbmVyYXRlZCBBbmd1bGFyIDIrIGNvZGVzIGNvbmZvcm0gdG8gdGhlIFtBbmd1bGFyIHN0cmljdCBtb2RlXShodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvc3RyaWN0LW1vZGUpLg0KDQoqKkhpbnRzKioNCg0KSWYgeW91IGFyZSB1c2luZyBBU1AuTkVUIG9yIEFTUC5ORVQgQ29yZSB0byBkZXZlbG9wIFdlYiBBUEkgYW5kIHdvdWxkIHN1cHBvcnQgQyMgY2xpZW50cyBhbmQgVHlwZVNjcmlwdCBjbGllbnRzLCBXZWJBcGlDbGllbnRHZW4gbWF5IHByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgc29sdXRpb24gdGhhdCBjb3ZlcnMgd2hhdCBvZmZlcmVkIGJ5IFN3YXNoYnVja2xlK05Td2FnLiBBbmQgaW4gc29tZSBjb250ZXh0cyBpdCBpcyBtb3JlIGVmZmljaWVudCwgZWZmZWN0aXZlIGFuZCBjb21wcmVoZW5zaXZlIHRvIHVzZSBXZWJBcGlDbGllbnRHZW4gaW4gU0RMQyB3aXRob3V0IGludm9sdmluZyBPcGVuIEFQSSAvIFN3YWdnZXIgWUFNTC9KU09OIGRlZmluaXRpb25zLg0KDQojIyBFeGFtcGxlcyBvZiBHZW5lcmF0ZWQgQ29kZXMNCg0KT3BlbkFwaUNsaWVudEdlbiBoYWQgYmVlbiB0ZXN0ZWQgdXBvbiBvdmVyIDIsMDAwIE9wZW4gQVBJIGRlZmluaXRpb25zIGluIHYzIGZvcm1hdHMgYW5kIGluIHYyIGZvcm1hdHMuDQoNCiogIFtwZXQueWFtbF0oaHR0cHM6Ly9naXRodWIuY29tL3ppamlhbmh1YW5nL29wZW5hcGljbGllbnRnZW4vYmxvYi9tYXN0ZXIvVGVzdHMvRGVtb0NsaWVudEFwaS9wZXQueWFtbCksIFtDIyBDbGllbnQgQVBJIGNvZGVzIGdlbmVyYXRlZF0oaHR0cHM6Ly9naXRodWIuY29tL3ppamlhbmh1YW5nL29wZW5hcGljbGllbnRnZW4vYmxvYi9tYXN0ZXIvVGVzdHMvRGVtb0NsaWVudEFwaS9QZXRBdXRvLmNzKSBvZiBjbGllbnQgQVBJIGxpYiwgYW5kICAgW0ludGVncmF0aW9uIFRlc3RzXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi90cmVlL21hc3Rlci9UZXN0cy9Td2FnQXBpVGVzdHMpLg0KKiBbR2VuZXJhdGVkIFR5cGVTY3JpcHQgY29kZXMgZm9yIEFuZ3VsYXIgNStdKGh0dHBzOi8vZ2l0aHViLmNvbS96aWppYW5odWFuZy9vcGVuYXBpY2xpZW50Z2VuL2Jsb2IvbWFzdGVyL1Rlc3RzL1N3YWdUc1Rlc3RzL05HMlJlc3VsdHMvKSBhbmQgW2ludGVncmF0aW9uIHRlc3RzIGZvciBwZXQueWFtbF0oaHR0cHM6Ly9naXRodWIuY29tL3ppamlhbmh1YW5nL29wZW5hcGljbGllbnRnZW4vdHJlZS9tYXN0ZXIvbmcyL3NyYykNCiogW0dlbmVyYXRlZCBUeXBlU2NyaXB0IGNvZGVzIGZvciBBbmd1bGFyIFJlYWN0aXZlIFR5cGVkIEZvcm1zXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi9ibG9iL21hc3Rlci9UZXN0cy9Td2FnVHNUZXN0cy9ORzJGb3JtR3JvdXBSZXN1bHRzKSANCiogW0dlbmVyYXRlZCBUeXBlU2NyaXB0IGNvZGVzIGZvciBBdXJlbGlhXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi90cmVlL21hc3Rlci9UZXN0cy9Td2FnVGVzdHMvQXVyZWxpYVJlc3VsdHMpIGFuZCBbaW50ZWdyYXRpb24gdGVzdHMgZm9yIHBldC55YW1sXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi90cmVlL21hc3Rlci9hdXJlbGlhL3NyYykNCiogW0dlbmVyYXRlZCBUeXBlU2NyaXB0IGNvZGVzIGZvciBBWElPU10oaHR0cHM6Ly9naXRodWIuY29tL3ppamlhbmh1YW5nL29wZW5hcGljbGllbnRnZW4vdHJlZS9tYXN0ZXIvVGVzdHMvU3dhZ1Rlc3RzL0F4aW9zUmVzdWx0cykgYW5kIFtpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgcGV0LnlhbWxdKGh0dHBzOi8vZ2l0aHViLmNvbS96aWppYW5odWFuZy9vcGVuYXBpY2xpZW50Z2VuL3RyZWUvbWFzdGVyL2F4aW9zL3NyYykNCiogW0dlbmVyYXRlZCBUeXBlU2NyaXB0IGNvZGVzIGZvciBGZXRjaCBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS96aWppYW5odWFuZy9vcGVuYXBpY2xpZW50Z2VuL3RyZWUvbWFzdGVyL1Rlc3RzL1N3YWdUZXN0cy9GZXRjaFJlc3VsdHMpIGFuZCBbaW50ZWdyYXRpb24gdGVzdHMgZm9yIHBldC55YW1sXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi90cmVlL21hc3Rlci9mZXRjaGFwaS9zcmMpDQoqIFtHZW5lcmF0ZWQgVHlwZVNjcmlwdCBjb2RlcyBmb3IgalF1ZXJ5XShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi90cmVlL21hc3Rlci9UZXN0cy9Td2FnVGVzdHMvSnFSZXN1bHRzKSBhbmQgW2ludGVncmF0aW9uIHRlc3RzIGZvciBwZXQueWFtbF0oaHR0cHM6Ly9naXRodWIuY29tL3ppamlhbmh1YW5nL29wZW5hcGljbGllbnRnZW4vdHJlZS9tYXN0ZXIvanEvc3JjKQ0KDQojIyBEYXRhIE1hcHBpbmdzDQoNClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgb25seSBtYXBwaW5ncyBmb3Igc2ltcGxlIGFuZCBwcmltaXRpdmUgdHlwZXMgaW4gT3BlbkFQSSBkZWZpbml0aW9uLCBDIyBhbmQgVHlwZVNjcmlwdC4NCg0KIyMjIFRvIEMjIENvZGVzDQoNCmBgYGMjDQpzdGF0aWMgcmVhZG9ubHkgRGljdGlvbmFyeTxzdHJpbmcsIFR5cGU+IGJhc2ljQ2xyVHlwZURpYyA9IG5ldygpDQp7DQoJeyJpbnRlZ2VyX2ludDMyIiwgdHlwZW9mKGludCkgfSwNCgl7ImludGVnZXJfaW50NjQiLCB0eXBlb2YobG9uZykgfSwNCgl7ImludGVnZXIiLCB0eXBlb2YoaW50KSB9LA0KCXsiaW50ZWdlcl91aW50MzIiLCB0eXBlb2YodWludCkgfSwNCgl7Im51bWJlcl9mbG9hdCIsIHR5cGVvZihmbG9hdCkgfSwNCgl7Im51bWJlcl9kb3VibGUiLCB0eXBlb2YoZG91YmxlKSB9LA0KCXsibnVtYmVyX2RlY2ltYWwiLCB0eXBlb2YoZGVjaW1hbCkgfSwNCgl7Im51bWJlciIsIHR5cGVvZihkb3VibGUpIH0sIC8vQyMgYnkgZGVmYXVsdCB1c2UgZG91YmxlIGZvciBudW1iZXIgbGl0ZXJhbA0KCXsic3RyaW5nIiwgdHlwZW9mKHN0cmluZykgfSwNCgl7ImJvb2xlYW4iLCB0eXBlb2YoYm9vbCkgfSwNCgl7InN0cmluZ19kYXRlIiwgdHlwZW9mKERhdGVPbmx5KSB9LA0KCXsic3RyaW5nX2RhdGUtdGltZSIsIHR5cGVvZihEYXRlVGltZU9mZnNldCkgfSwNCn07DQpgYGANCg0KIyMjIFRvIFR5cGVTY3JpcHQgQ29kZXMNCg0KYGBgYyMNCnN0YXRpYyByZWFkb25seSBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBiYXNpY1RzVHlwZURpYyA9IG5ldygpDQp7DQoJeyJpbnRlZ2VyX2ludDMyIiwgIm51bWJlciIgfSwNCgl7ImludGVnZXJfaW50NjQiLCAibnVtYmVyIiB9LA0KCXsiaW50ZWdlciIsICJudW1iZXIiIH0sDQoJeyJpbnRlZ2VyX3VpbnQzMiIsICJudW1iZXIiIH0sDQoJeyJudW1iZXJfZmxvYXQiLCAibnVtYmVyIiB9LA0KCXsibnVtYmVyX2RvdWJsZSIsICJudW1iZXIiIH0sDQoJeyJudW1iZXJfZGVjaW1hbCIsICJudW1iZXIiIH0sDQoJeyJudW1iZXIiLCAibnVtYmVyIiB9LA0KCXsic3RyaW5nIiwgInN0cmluZyIgfSwNCgl7ImJvb2xlYW4iLCAiYm9vbGVhbiIgfSwNCgl7InN0cmluZ19kYXRlIiwgIkRhdGUiIH0sDQoJeyJzdHJpbmdfZGF0ZS10aW1lIiwgIkRhdGUiIH0sDQp9Ow0KYGBgDQoNCkFuZCAiaW50ZWdlcl9pbnQ2NCIgaXMgYWN0dWFsbHkgbWFwcGVkIHRvICJzdHJpbmciIGJlY2F1c2UgSlMgc3VwcG9ydHMgaW50ZWdyYWwgcHJlY2lzaW9uIHVwIHRvIDUzIGJpdHMuDQoNCioqUmVmZXJlbmNlczoqKg0KKiBbRGVhbGluZyB3aXRoIExhcmdlIEludGVncmFsIE51bWJlcnMgaW4gSmF2YVNjcmlwdCBmb3IgSW50ZWdyYWwgVHlwZXMgb2YgQVNQLk5FVCBDb3JlIFdlYiBBUEldKGh0dHBzOi8vd3d3LmNvZGVwcm9qZWN0LmNvbS9BcnRpY2xlcy81Mzc3ODA3L0RlYWxpbmctd2l0aC1MYXJnZS1JbnRlZ3JhbC1OdW1iZXJzLWluLUphdmFTY3JpcHQpDQoNCiMjIFZhbGlkYXRpb24gTWFwcGluZ3MNCg0KIyMjIE9wZW5BUEkgdmFsaWRhdGlvbiB0byAuTkVUIHZhbGlkYXRpb24NCg0KfCBTY2hlbWEgfCAuTkVUIEF0dHJpYnV0ZSB8DQp8IC0tLS0tLSB8IC0tLS0gfCAgDQp8IE1pbkxlbmd0aCB8IE1pbkxlbmd0aCB8DQp8IE1heExlbmd0aCB8IE1heExlbmd0aCB8DQp8IE1pbkxlbmd0aCArIE1heExlbmd0aCB8IExlbmd0aCB8DQp8IE1pbmltdW0sIE1heGltdW0gfCBSYW5nZShtaW4sIG1heCkgb3IgUmFuZ2UoVHlwZUZ1bGxOYW1lLCBtaW4sIG1heCkgfA0KfCBNaW5JdGVtcyB8IE1pbkxlbmd0aCB8DQp8IE1heEl0ZW1zIHwgTWF4TGVuZ3RoIHwNCnwgTWluSXRlbXMgKyBNYXhJdGVtcyB8IExlbmd0aCB8DQp8IFBhdHRlcm4gfCBSZWd1bGFyRXhwcmVzc2lvbiB8DQoNCiMjIyBPcGVuQVBJIHZhbGlkYXRpb24gdG8gQW5ndWxhciBSZWFjdGl2ZSBGb3JtcyBWYWxpZGF0aW9uDQoNCnwgU2NoZW1hIHwgQW5ndWxhciBSZWFjdGl2ZSBGb3JtcyBWYWxpZGF0aW9uIHwNCnwgLS0tLS0gfCAtLS0tIHwNCnwgUmVxdWlyZWQgfCByZXF1aXJlZCB8DQp8IE1pbkxlbmd0aCwgTWF4TGVuZ3RoLCBNaW5JdGVtcywgTWF4SXRlbXMgfCBtaW5MZW5ndGgsIG1heExlbmd0aCB8DQp8IE1pbmltdW0sIE1heGltdW0gfCBtaW4sIG1heCB8DQp8IFBhdHRlcm4gfCBwYXR0ZXJuIHwNCg0KIyMgSW5zdGFsbGF0aW9uDQpPcGVuQXBpQ2xpZW50R2VuIGlzIGEgLk5FVCBDb3JlIGNvbnNvbGUgYXBwLg0KDQoqKlByZXJlcXVpc2l0ZXMqKg0KDQoqIC5ORVQgOCAoc2luY2UgdjMuMikNCg0KKipSZW1hcmtzKioNCg0KKiBUaGUgZ2VuZXJhdGVkIEMjIGNvZGVzIGNvdWxkIGJlIGJ1aWx0IHdpdGggLk5FVCBGcmFtZXdvcmtzIGluIGFkZGl0aW9uIHRvIC5ORVQuDQoNCg0KIyMjIFNvdXJjZSBJbnN0YWxsYXRpb24NCkNoZWNrIG91dCB0aGlzIHJlcG9zaXRvcnkgb3Igb25lIG9mIGl0cyB0YWdzLCB0aGVuIGRvIGEgcmVsZWFzZSBidWlsZCBvciBhIFZpc3VhbCBTdHVkaW8ncyBQdWJsaXNoLg0KDQoqKkhpbnRzKioNCg0KVGhlIHBsdWdpbiBhc3NlbWJsaWVzIHNob3VsZCBiZSBjb3BpZWQgYWNjb3JkaW5nbHkgYWZ0ZXIgYSByZWxlYXNlIGJ1aWxkLg0KDQojIyMgQmluYXJ5IERvd25sb2FkDQoNCkRvd25sb2FkIG9uZSB0aGUgW3ppcCBmaWxlc10oaHR0cHM6Ly9naXRodWIuY29tL3ppamlhbmh1YW5nL29wZW5hcGljbGllbnRnZW4vcmVsZWFzZXMpIG9mIHRoZSByZWxlYXNlcyBhbmQgZXh0cmFjdCB0byBhIGxvY2FsIGZvbGRlci4gVGhlIGNvbnNvbGUgYXBwIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgcGx1Z2lucyBmb3IgSmF2YVNjcmlwdC9UeXBlU2NyaXB0IGxpYnMgb3IgZnJhbWV3b3JrczoNCg0KKiBGb25sb3cuT3BlbkFwaUNsaWVudEdlbi5BdXJlbGlhDQoqIEZvbmxvdy5PcGVuQXBpQ2xpZW50R2VuLkF4aW9zDQoqIEZvbmxvdy5PcGVuQXBpQ2xpZW50R2VuLkZldGNoDQoqIEZvbmxvdy5PcGVuQXBpQ2xpZW50R2VuLkpRDQoqIEZvbmxvdy5PcGVuQXBpQ2xpZW50R2VuLk5HMg0KKiBGb25sb3cuT3BlbkFwaUNsaWVudEdlbi5ORzJGb3JtR3JvdXANCg0KDQojIyMjIE1hY09TDQpJZiB5b3UgYXJlIHVzaW5nIE1hYyBPUyBvciBMaW51eCBmb3IgZGV2ZWxvcG1lbnQsIHlvdSBtYXkgdXNlICJkb3RuZXQgcHVibGlzaCIsIGZvciBleGFtcGxlOg0KDQpgZG90bmV0IHB1Ymxpc2ggLXIgb3N4LXg2NCAtLW91dHB1dCAldGFyZ2V0JSAtLWNvbmZpZ3VyYXRpb24gcmVsZWFzZSAtLXNlbGYtY29udGFpbmVkIGZhbHNlYA0KDQpVbmRlciBmb2xkZXIgIkZvbmxvdy5PcGVuQXBpQ2xpZW5HZW4iLCB0aGVyZSBhcmUgMiBiYXRjaCBmaWxlcyB0byBidWlsZCBhIHJlbGVhc2UgZm9yIE1hY09TOg0KKiBCdWlsZEZvck1hYy5iYXQNCiogQnVpbGRGb3JNYWNTZWxmQ29udGFpbmVkLmJhdA0KDQpPbiBNYWMsIHlvdSBtYXkgcnVuIA0KDQpgYGBkb3RuZXQgRm9ubG93Lk9wZW5BcGlDbGllbnRHZW4uZGxsIG15LnlhbWwgY29kZWdlbi5qc29uYGBgDQoNCm9yIA0KDQpgYGAuL0Zvbmxvdy5PcGVuQXBpQ2xpZW50R2VuIG15LnlhbWwgY29kZWdlbi5qc29uYGBgDQoNCkFmdGVyIHJ1bm5pbmcgYGNobW9kIDc1NSBGb25sb3cuT3BlbkFwaUNsaWVudEdlbmAgb25jZS4NCg0KIyMgQ29kZSBHZW5lcmF0aW9uDQoNCldoZW4gcnVubmluZyB0aGUgcHJvZ3JhbSB3aXRob3V0IHZhbGlkIHBhcmFtZXRlcnMsIHlvdSBnZXQgc29tZSBzaW1wbGUgaGludHM6DQpgYGANClBhcmFtZXRlciAxOiBPcGVuIEFQSSBZQU1ML0pTT04gZGVmaW5pdGlvbiBmaWxlDQpQYXJhbWV0ZXIgMjogU2V0dGluZ3MgZmlsZSBpbiBKU09OIGZvcm1hdC4NCkV4YW1wbGU6ICANCiAgRm9ubG93Lk9wZW5BcGlDbGllbnRHZW4uZXhlIG15LnlhbWwNCiAgRm9ubG93Lk9wZW5BcGlDbGllbnRHZW4uZXhlIG15LnlhbWwgbXlwcm9qLmpzb24NCiAgRm9ubG93Lk9wZW5BcGlDbGllbnRHZW4uZXhlIG15LnlhbWwgLi5cbXlwcm9qLmpzb24NCmBgYA0KDQojIyMgU2V0dGluZ3MNCg0KQSB0eXBpY2FsIENvZGVHZW4gSlNPTiBmaWxlIGlzIGxpa2UgdGhpcyBbIkRlbW9Db2RlR2VuLmpzb24iXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi9ibG9iL21hc3Rlci9EZW1vQ29kZUdlbi5qc29uKToNCmBgYGpzb24NCnsNCgkiQ2xpZW50TmFtZXNwYWNlIjogIk15LlBldC5DbGllbnQiLA0KCSJDbGllbnRMaWJyYXJ5UHJvamVjdEZvbGRlck5hbWUiOiAiLi9UZXN0cy9EZW1vQ2xpZW50QXBpIiwNCgkiQ29udGFpbmVyQ2xhc3NOYW1lIjogIlBldENsaWVudCIsDQoJIkNsaWVudExpYnJhcnlGaWxlTmFtZSI6ICJQZXRBdXRvLmNzIiwNCgkiQWN0aW9uTmFtZVN0cmF0ZWd5IjogNCwNCgkiVXNlRW5zdXJlU3VjY2Vzc1N0YXR1c0NvZGVFeCI6IHRydWUsDQoJIkRlY29yYXRlRGF0YU1vZGVsV2l0aERhdGFDb250cmFjdCI6IHRydWUsDQoJIkRhdGFDb250cmFjdE5hbWVzcGFjZSI6ICJodHRwOi8vcGV0LmRvbWFpbi8yMDIwLzAzIiwNCgkiRGF0YUFubm90YXRpb25zRW5hYmxlZCI6IHRydWUsDQoJIkRhdGFBbm5vdGF0aW9uc1RvQ29tbWVudHMiOiB0cnVlLA0KCSJIYW5kbGVIdHRwUmVxdWVzdEhlYWRlcnMiOiB0cnVlLA0KDQoJIlBsdWdpbnMiOiBbDQoJCXsNCgkJCSJBc3NlbWJseU5hbWUiOiAiRm9ubG93Lk9wZW5BcGlDbGllbnRHZW4uTkcyIiwNCgkJCSJUYXJnZXREaXIiOiAiLi9uZzIvc3JjL2NsaWVudGFwaSIsDQoJCQkiVFNGaWxlIjogIkNsaWVudEFwaUF1dG8udHMiLA0KCQkJIkFzTW9kdWxlIjogdHJ1ZSwNCgkJCSJDb250ZW50VHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiDQoJCX0NCgldDQoNCn0NCmBgYA0KDQpZb3UgbWF5IHJ1biB0aGUgY29kZSBnZW5lcmF0b3IgdGhyb3VnaCBhIGJhdGNoIGZpbGU6DQpgYGBiYXRjaA0KY2QgJX5kcDANCmM6XGdyZWVuXE9wZW5BcGlDbGllbnRHZW5cRm9ubG93Lk9wZW5BcGlDbGllbnRHZW4uZXhlIHNvbWVfc2VydmljZS55YW1sIG15Y29kZWdlbi5qc29uDQpgYGANCg0KVGhlIEpTT04gZmlsZSBpcyBtYXBwZWQgdG8gdGhlIGZvbGxvd2luZyBbQyMgY29kZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS96aWppYW5odWFuZy9vcGVuYXBpY2xpZW50Z2VuL2Jsb2IvbWFzdGVyL0Zvbmxvdy5PcGVuQXBpQ2xpZW50R2VuLkNsaWVudFR5cGVzL1NldHRpbmdzLmNzKSB3aGljaCBkZXNjcmliZXMgZWFjaCBzZXR0aW5nOg0KYGBgYyMNCglwdWJsaWMgY2xhc3MgU2V0dGluZ3MgOiBJU2V0dGluZ3MNCgl7DQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFRoZSBnZW5lcmF0ZWQgY29kZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBhIG5hbWVzcGFjZS4gVGhlIGRlZmF1bHQgaXMgTXkuTmFtZXNwYWNlLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgc3RyaW5nIENsaWVudE5hbWVzcGFjZSB7IGdldDsgc2V0OyB9ID0gIk15Lk5hbWVzcGFjZSI7DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gVG8gY29tcG9zZSBjbGllbnQgZnVuY3Rpb24gbmFtZSB0aHJvdWdoIHJlbW92aW5nIHBhdGggcHJlZml4LiBUeXBpY2FsbHkgLyBvciAvYXBpLiBUaGUgZGVmYXVsdCBpcyAvLg0KCQkvLy8gVGhlIGxlbmdodCBvZiB0aGUgcHJlZml4IGlzIHVzZWQgdG8gcmVtb3ZlIHBhdGggcHJlZml4LiBBcHBsaWVkIHdoZW4gQWN0aW9uTmFtZVN0cmF0ZWd5IGlzIFBhdGhNZXRob2RRdWVyeVBhcmFtZXRlcnMuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBzdHJpbmcgUGF0aFByZWZpeFRvUmVtb3ZlIHsgZ2V0OyBzZXQ7IH0gPSAiLyI7DQoNCgkJcHVibGljIEFjdGlvbk5hbWVTdHJhdGVneSBBY3Rpb25OYW1lU3RyYXRlZ3kgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFRoZSBkZWZhdWx0IGlzIFx3KiBmb3IgcGlja2luZyB1cCBhbHBoYW51bWVyaWMgd29yZHMgZnJvbSBzb21lIGNyaWtleSBvcGVyYXRpb25JZHMgdGhyb3VnaCBtYXRjaGluZyBhIGxpc3Qgb2Ygd29yZHMgDQoJCS8vLyB3aGljaCB3aWxsIGJlIG1lcmdlZCBpbnRvIGEgZnVuY3Rpb24gbmFtZSBpbiBQYXNjYWwgb3IgY2FtZWwgY2FzaW5nLiANCgkJLy8vIEFwcGxpZWQgd2hlbiBBY3Rpb25OYW1lU3RyYXRlZ3kgaXMgTm9ycm1hbGl6ZWRPcGVyYXRpb25JZC4NCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIHN0cmluZyBSZWdleEZvck5vcm1hbGl6ZWRPcGVyYXRpb25JZCB7IGdldDsgc2V0OyB9ID0gQCJcdyoiOw0KDQoJCXB1YmxpYyBDb250YWluZXJOYW1lU3RyYXRlZ3kgQ29udGFpbmVyTmFtZVN0cmF0ZWd5IHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBDb250YWluZXIgY2xhc3MgbmFtZSB3aGVuIENvbnRhaW5lck5hbWVTdHJhdGVneSBpcyBOb25lLiBUaGUgZGVmYXVsdCBpcyBNaXNjLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgc3RyaW5nIENvbnRhaW5lckNsYXNzTmFtZSB7IGdldDsgc2V0OyB9ID0gIk1pc2MiOw0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFN1ZmZpeCBvZiBjb250YWluZXIgY2xhc3MgbmFtZSBpZiBDb250YWluZXJOYW1lU3RyYXRlZ3kgaXMgbm90IE5vbmUuIFRoZSBkZWZhdWx0IGlzICJDbGllbnQiLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgc3RyaW5nIENvbnRhaW5lck5hbWVTdWZmaXggeyBnZXQ7IHNldDsgfSA9ICJDbGllbnQiOw0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIEFzc3VtaW5nIHRoZSBjbGllbnQgQVBJIHByb2plY3QgaXMgdGhlIHNpYmxpbmcgb2YgV2ViIEFQSSBwcm9qZWN0LiBSZWxhdGl2ZSBwYXRoIHRvIHRoZSBXZWJBcGkgcHJvamVjdCBzaG91bGQgYmUgZmluZS4gQyMgb25seS4NCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIHN0cmluZyBDbGllbnRMaWJyYXJ5UHJvamVjdEZvbGRlck5hbWUgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFRoZSBuYW1lIG9mIHRoZSBDUyBmaWxlIHRvIGJlIGdlbmVyYXRlZCB1bmRlciBjbGllbnQgbGlicmFyeSBwcm9qZWN0IGZvbGRlci4gVGhlIGRlZmF1bHQgaXMgT3BlbkFwaUNsaWVudEF1dG8uY3MuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBzdHJpbmcgQ2xpZW50TGlicmFyeUZpbGVOYW1lIHsgZ2V0OyBzZXQ7IH0gPSAiT3BlbkFwaUNsaWVudEF1dG8uY3MiOw0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIEdlbmVyYXRlZCBkYXRhIHR5cGVzIHdpbGwgYmUgZGVjb3JhdGVkIHdpdGggRGF0YUNvbnRyYWN0QXR0cmlidXRlIGFuZCBEYXRhTWVtYmVyQXR0cmlidXRlIGluIEMjLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBEZWNvcmF0ZURhdGFNb2RlbFdpdGhEYXRhQ29udHJhY3QgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFdoZW4gRGVjb3JhdGVEYXRhTW9kZWxXaXRoRGF0YUNvbnRyYWN0IGlzIHRydWUsIHRoaXMgaXMgdGhlIG5hbWVzcGFjZSBvZiBEYXRhQ29udHJhY3RBdHRyaWJ1dGUuIEZvciBleGFtcGxlLCAiaHR0cDovL215YnVzaW5lc3MuY29tLzA5LzIwMTkNCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIHN0cmluZyBEYXRhQ29udHJhY3ROYW1lc3BhY2UgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFNlcmlhbGl6ZSBlbnVtIHRvIHN0cmluZy4gRm9yIEMjLCBlZmZlY3RpdmUgaWYgRGVjb3JhdGVEYXRhTW9kZWxXaXRoRGF0YUNvbnRyYWN0IGlzIHRydWUsIGFuZCB0aGUgZW51bSB0eXBlIGlzIGRlY29yYXRlZCBieQ0KCQkvLy8gW0pzb25Db252ZXJ0ZXIodHlwZW9mKE5ld3RvbnNvZnQuSnNvbi5Db252ZXJ0ZXJzLlN0cmluZ0VudW1Db252ZXJ0ZXIpKV0gb3IgW1N5c3RlbS5UZXh0Lkpzb24uU2VyaWFsaXphdGlvbi5Kc29uQ29udmVydGVyKHR5cGVvZihTeXN0ZW0uVGV4dC5Kc29uLlNlcmlhbGl6YXRpb24uSnNvblN0cmluZ0VudW1Db252ZXJ0ZXIpKV0uDQoJCS8vLyBGb3IgVHlwZVNjcmlwdCwgdGhlIG91dHB1dCBpcyBzdHJpbmcgZW51bXMuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIEVudW1Ub1N0cmluZyB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gRGVjb3JhdGUgdGhlIERhdGEgTW9kZWwgd2l0aCB0aGUgU3lzdGVtLlNlcmlhbGl6YWJsZUF0dHJpYnV0ZSBhdHRyaWJ1dGUNCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIGJvb2wgRGVjb3JhdGVEYXRhTW9kZWxXaXRoU2VyaWFsaXphYmxlIHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBGb3IgLk5FVCBjbGllbnQsIGdlbmVyYXRlIGJvdGggYXN5bmMgYW5kIHN5bmMgZnVuY3Rpb25zIGZvciBlYWNoIFdlYiBBUEkgZnVuY3Rpb24uIFdoZW4gZmFsc2UsIG9ubHkgYXN5bmMuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIEdlbmVyYXRlQm90aEFzeW5jQW5kU3luYyB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gUmVwbGFjZSBFbnN1cmVTdWNjZXNzU3RhdHVzQ29kZSB3aXRoIEVuc3VyZVN1Y2Nlc3NTdGF0dXNDb2RlRXggZm9yIHNwZWNpZmljIHVuc3VjY2Vzc2Z1bCBIVFRQIHN0YXR1cyBoYW5kbGluZywgd2hpY2ggdGhyb3dzIFlvdXJDbGllbnRXZWJBcGlSZXF1ZXN0RXhjZXB0aW9uLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBVc2VFbnN1cmVTdWNjZXNzU3RhdHVzQ29kZUV4IHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBEZWZhdWx0ICBpcyB0cnVlIHNvIHRoZSBjb2RlIGJsb2NrIGlzIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgY29kZXMuDQoJCS8vLyBEZWZpbmVkIGlmIFVzZUVuc3VyZVN1Y2Nlc3NTdGF0dXNDb2RlRXggaXMgdHJ1ZS4gUmVzcGVjdGl2ZSBjb2RlIGJsb2NrIHdpbGwgYmUgaW5jbHVkZWQgdGhlIGNvZGUgZ2VuIG91dHB1dC4gSG93ZXZlciwgaWYgeW91IGhhdmUgYSBmZXcgY2xpZW50IEFQSXMgZ2VuZXJhdGVkIHRvIGJlIHVzZWQgaW4gdGhlIHNhbWUgYXBwbGljYXRpb24sDQoJCS8vLyBhbmQgeW91IG1heSB3YW50IHRoZXNlIGNsaWVudCBBUElzIHNoYXJlIHRoZSBzYW1lIGNvZGUgYmxvY2ssIHRoZW4gcHV0IHRoZSBXZWJBcGlSZXF1ZXN0RXhjZXB0aW9uIGNvZGUgYmxvY2sgdG8gYW4gYXNzZW1ibHkgb3IgYSBzdGFuZGFsb25lIENTIGZpbGUuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIEluY2x1ZGVFbnN1cmVTdWNjZXNzU3RhdHVzQ29kZUV4QmxvY2sgeyBnZXQ7IHNldDsgfSA9IHRydWU7DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRhdGFBbm5vdGF0aW9ucyBhdHRyaWJ1dGVzIGFyZSB0byBiZSBjb3BpZWQgb3ZlciwgaW5jbHVkaW5nIFJlcXVpcmVkLCBSYW5nZSwgTWF4TGVuZ3RoLCBNaW5MZW5ndGggYW5kIFN0cmluZ0xlbmd0aC4gQXBwbGllZCB0byBDIyBvbmx5Lg0KCQkvLy8gV2hhdCBkZWZpbmVkIGluICJkZWZhdWx0IiBvZiBZQU1MIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHJlc3BlY3RpdmUgcHJvcGVydHkuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIERhdGFBbm5vdGF0aW9uc0VuYWJsZWQgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFN5c3RlbS5Db21wb25lbnRNb2RlbC5EYXRhQW5ub3RhdGlvbnMgYXR0cmlidXRlcyBhcmUgdHJhbnNsYXRlZCBpbnRvIERvYyBDb21tZW50cywgDQoJCS8vLyBpbmNsdWRpbmcgUmVxdWlyZWQsIFJhbmdlLCBNYXhMZW5ndGgsIE1pbkxlbmd0aCwgU3RyaW5nTGVuZ3RoLCBEYXRhVHlwZSBhbmQgUmVndWxhckV4cHJlc3Npb24uIEFwcGxpZWQgdG8gQyMgYW5kIFR5cGVTY3JpcHQuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIERhdGFBbm5vdGF0aW9uc1RvQ29tbWVudHMgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIEZ1bmN0aW9uIHBhcmFtZXRlcnMgY29udGFpbiBhIGNhbGxiYWNrIHRvIGhhbmRsZSBIVFRQIHJlcXVlc3QgaGVhZGVycw0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBIYW5kbGVIdHRwUmVxdWVzdEhlYWRlcnMgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIEFsbG93IGNhbmNlbGxhdGlvbiBpbiBTZW5kDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIENhbmNlbGxhdGlvblRva2VuRW5hYmxlZCB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gVXNlIFN5c3RlbS5UZXh0Lkpzb24gaW5zdGVhZCBvZiBOZXd0b25zb2Z0Lkpzb24NCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIGJvb2wgVXNlU3lzdGVtVGV4dEpzb24geyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIEZvciBkYXRlIHR5cGUsIGdlbmVyYXRlIERhdGVPbmx5IHByb3BlcnR5LiBEZWZhdWx0IHRydWUuIElmIGZhbHNlLCBnZW5lcmF0ZSBEYXRlVGltZU9mZnNldCBkZWNvcmF0ZWQgYnkgU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRhdGFBbm5vdGF0aW9ucy5EYXRhVHlwZUF0dHJpYnV0ZShTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGF0YUFubm90YXRpb25zLkRhdGFUeXBlLkRhdGUpDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIERhdGVUb0RhdGVPbmx5IHsgZ2V0OyBzZXQ7IH0gPSB0cnVlOw0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIEdlbmVyYXRlZCBkYXRhIHR5cGVzIHdpbGwgYmUgZGVjb3JhdGVkIHdpdGggU3lzdGVtLlRleHQuSnNvbi5TZXJpYWxpemF0aW9uLkpzb25Qcm9wZXJ0eU5hbWVBdHRyaWJ1dGUgb3IgTmV3dG9uc29mdC5Kc29uLkpzb25Qcm9wZXJ0eUF0dHJpYnV0ZSB3aXRoIHRoZSBvcmlnaW5hbCBwcm9wZXJ0eSBuYW1lIGRlZmluZWQgaW4gWUFNTC4NCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIGJvb2wgRGVjb3JhdGVEYXRhTW9kZWxXaXRoUHJvcGVydHlOYW1lIHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBPcGVuQXBDbGluZXRHZW4gZGVjbGFyZXMgYWxsIHZhbHVlIHR5cGUgcHJvcGVydGllcyBpbmNsdWRpbmcgZW51bSBwcm9wZXJ0aWVzIGFzIG51bGxhYmxlIGJ5IGRlZmF1bHQgaW4gZ2VuZXJhdGVkIEMjLCBhbmQgYWxsIHByb3BlcnRpZXMgYXMgbnVsbGFibGUgYnkgZGVmYXVsdCBpbiBnZW5lcmF0ZWQgVHlwZVNjcmlwdCBjb2RlcywgdW5sZXNzIHRoZSBwcm9wZXJ0eSBpcyByZXF1aXJlZC4gDQoJCS8vLyBUaGlzIGlzIHRvIHByZXZlbnQgc2VyaWFsaXplciBmcm9tIGNyZWF0aW5nIHBheWxvYWQgZm9yIHByb3BlcnRpZXMgbm90IGFzc2lnbmVkLiAgDQoJCS8vLyBUaGVyZSBtaWdodCBiZSBzaXR1YXRpb25zIGluIHdoaWNoIHlvdSBkb24ndCB3YW50IHN1Y2ggZGVmYXVsdCBmZWF0dXJlcyBhbmQgd2FudCB0aGUgY29kZWdlbiB0byByZXNwZWN0IE9wZW5BcGkgdjMgb3B0aW9uIG51bGxhYmxlLiBUaGVuIHR1cm4gdGhpcyBzZXR0aW5nIHRvIHRydWUsIHdoaWNoIGFmZmVjdHMgZ2VuZXJhdGVkIEMjIGNvZGVzIG9ubHkuDQoJCS8vLyBQbGVhc2Ugbm90ZSwgU29tZSBPcGVuIEFQSSBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBkZWZpbmUgbnVsbGFibGUgZm9yIHNvbWUgcHJlbWl0aXZlIHR5cGVzIGFuZCBlbnVtLCBob3dldmVyLCB0aGUgcmVzcGVjdGl2ZSBiYWNrZW5kcyBkbyBub3QgZXhwZWN0IHNvbWUgcHJvcGVydGllcyBwcmVzZW50ZWQgaW4gdGhlIHBheWxvYWQgb2YgdGhlIHJlcXVlc3QuDQoJCS8vLyB0aGVyZWZvcmUgeW91IG5lZWQgdG8gYnVpbGQgc29tZSBpbnRlZ3JhdGlvbiB0ZXN0IHN1aXRlcyB0byBmaW5kIG91dCB3aGF0IHRoZSBiYWNrZW5kIHdvdWxkIGxpa2UuDQoJCS8vLyBJZiB0aGUgWUFNTCBmaWxlIGRlZmluZXMgYSByZWZlcmVuY2UgdHlwZSBwcm9wZXJ0eSBhcyBudWxsYWJsZSwgdGhlIGNvZGVnZW4gaWdub3JlcyB0aGlzIHNldHRpbmcgc2luY2UgaW4gQyMgYSBudWxsYWJsZSByZWZlcmVuY2UgdHlwZSBwcm9wZXJ0eSBpcyBpbnZhbGlkLCB1bmxlc3MgeW91IHNldCBVc2VOdWxsYWJsZVJlZmVyZW5jZVR5cGUgdG8gdHJ1ZS4NCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIGJvb2wgRGlzYWJsZVN5c3RlbU51bGxhYmxlQnlEZWZhdWx0IHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBVc2UgVD8gaW5zdGVhZCBvZiBTeXN0ZW0uTnVsbGFibGU8VD4gZm9yIHZhbHVlIHR5cGVzLCB3aGlsZSBieSBkZWZhdWx0IFN5c3RlbS5OdWxsYWJsZTxUPiBpcyB1c2VkLiBDIyAyLjAgZmVhdHVyZQ0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBVc2VOdWxsYWJsZVF1ZXN0aW9uTWFyayB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gVXNlIFQ/IGZvciByZWZlcmVuY2UgdHlwZXMuIEMjIDguMCBmZWF0dXJlOiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9kb3RuZXQvY3NoYXJwL2xhbmd1YWdlLXJlZmVyZW5jZS9idWlsdGluLXR5cGVzL251bGxhYmxlLXJlZmVyZW5jZS10eXBlcw0KCQkvLy8gaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvZG90bmV0L2NzaGFycC9udWxsYWJsZS1taWdyYXRpb24tc3RyYXRlZ2llczogVGhlIGdsb2JhbCBudWxsYWJsZSBjb250ZXh0IGRvZXMgbm90IGFwcGx5IGZvciBnZW5lcmF0ZWQgY29kZSBmaWxlcy4NCgkJLy8vIFRoZXJlZm9yZSBpdCBpcyB1cCB0byB5b3UgYXBwbGljYXRpb24gcHJvZ3JhbW1lcnMgdG8gbWFrZSB0aGUgY29tcGlsZXIgcmVjb2duaXplIHRoZSBnZW5lcmF0ZWQgZmlsZSBpcyBub3Qgb2YgZ2VuZXJhdGVkIGNvZGVzLg0KCQkvLy8gQ2hlY2sgdGVzdCBjYXNlOiBUZXN0X3ZpbWVvKCkNCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIGJvb2wgVXNlTnVsbGFibGVSZWZlcmVuY2VUeXBlIHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBDcmVhdGUgdGhlIE1vZGVsIGNsYXNzZXMgb25seQ0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBHZW5lcmF0ZU1vZGVsc09ubHkgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFVzZSBHdWlkIGZvciBmb3JtYXQ6dXVpZCBzcGVjaWZpZXIsIGRlZmF1bHRzIHRvIHN0cmluZy4NCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIGJvb2wgVXNlR3VpZCB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gQnkgZGVmYXVsdCwgYXJyYXkgdHlwZSB3aWxsIGJlIGFycmF5IGluIGdlbmVyYXRlZCBDIy4gWW91IG1heSBnZW5lcmF0ZWQgSUVudW1lcmFibGUgYW5kIHNvbWUgb2YgaXRzIGRlcml2ZWQgdHlwZXMuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBBcnJheUFzSUVudW1lcmFibGVEZXJpdmVkIEFycmF5QXMgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFVzZSBwYXNjYWwgY2FzZSBmb3IgcHJvcGVydGllcyBhbmQgbW9kZWwgY2xhc3MgbmFtZXMNCgkJLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIGJvb2wgVXNlUGFzY2FsQ2FzZSB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gUHJlZml4IGNsYXNzIG5hbWVzIHdpdGggZW5jbG9zaW5nIFR5cGUgbmFtZS4gRGVmYXVsdCBUcnVlLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBQcmVmaXhXaXRoVHlwZU5hbWUgeyBnZXQ7IHNldDsgfSA9IHRydWU7DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gQ3JlYXRlIGRlc3RpbmF0aW9uIGZvbGRlciBpZiBub3QgZXhpc3RzLiBBcHBsaWVkIHRvIGJvdGggQ1MgYW5kIFRTLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBDcmVhdGVGb2xkZXIgeyBnZXQ7IHNldDsgfQ0KDQoJCS8vLyA8c3VtbWFyeT4NCgkJLy8vIFR5cGUgbmFtZSB3aXRoIGRvdHMgd2lsbCBoYXZlIHRoZSBkb3R0ZWQgc2VnbWVudHMgYmVjb21lIG5hbWVzcGFjZS4gQVBJc1xwcmVzYWx5dGljcy5pb1xvb3htbFwwLjEuMCBoYXMgdGhpcywgd2l0aCBuYW1lc3BhY2UgYW5kIHR5cGUgbmFtZSBjb2xsaXNpb25zLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBEb3RzVG9OYW1lc3BhY2VzIHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBXaGVuIGdlbmVyYXRpbmcgY29kZXMsIHNvcnQgdHlwZXMsIG1lbWJlciBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGJ5IGFscGhhYmV0aWMgb3JkZXIuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBib29sIFNvcnRUeXBlc01lbWJlcnNBbmRNZXRob2RzIHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBNZXRhIGZvciBwbHVnaW5zIHRoYXQgZ2VuZXJhdGUgVHlwZVNjcmlwdC9KYXZhU2NyaXB0IGNvZGVzLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgSlNQbHVnaW5bXSBQbHVnaW5zIHsgZ2V0OyBzZXQ7IH0NCgl9DQoNCgkJcHVibGljIGVudW0gQWN0aW9uTmFtZVN0cmF0ZWd5DQoJew0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBFaXRoZXIgT3BlcmF0aW9uSWQgb3IgTWV0aG9kUXVlcnlQYXJhbWV0ZXJzDQoJCS8vLyA8L3N1bW1hcnk+DQoJCURlZmF1bHQgPSAwLA0KDQoJCU9wZXJhdGlvbklkID0gMSwNCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBDb21wb3NlIHNvbWV0aGluZyBsaWtlIEdldFNvbWVXaGVyZUJ5SWQxQW5kSWQyLiBHZW5lcmFsbHkgdXNlZCB3aXRoIENvbnRhaW5lck5hbWVTdHJhdGVneS5QYXRoDQoJCS8vLyA8L3N1bW1hcnk+DQoJCU1ldGhvZFF1ZXJ5UGFyYW1ldGVycyA9IDIsDQoNCgkJUGF0aE1ldGhvZFF1ZXJ5UGFyYW1ldGVycyA9IDMsDQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gQWNjb3JkaW5nIHRvIE9wZW4gQVBJIHNwZWNpZmljYXRpb24sIGl0IGlzIFJFQ09NTUVOREVEIHRoYXQgdGhlIG5hbWluZyBvZiBvcGVyYXRpb25JZCBmb2xsb3dzIGNvbW1vbiBwcm9ncmFtbWluZyBuYW1pbmcgY29udmVudGlvbnMuIA0KCQkvLy8gSG93ZXZlciwgc29tZSBZQU1MIG1heSBuYW1lIG9wZXJhdGlvbklkIGFmdGVyIGEgdmFsaWQgZnVuY3Rpb24gbmFtZS4gRm9yIGV4YW1wbGUsICJsaXN0LWRhdGEtc2V0cyIsICJTZWFyY2ggYnkgbmFtZSIgb3IgIlNlYXJjaEJ5TmFtZUBXa1VsZCIuIA0KCQkvLy8gUmVndWxhciBleHByZXNzaW9uIChyZWdleCkgbWF5IGJlIG5lZWRlZCB0byBwaWNrIHVwIGFscGhhbnVtZXJpYyB3b3JkcyBmcm9tIHN1Y2ggb3BlcmF0aW9uSWQgYW5kIGNyZWF0ZSBhIHZhbGlkIGZ1bmN0aW9uIG5hbWUuDQoJCS8vLyBUaGUgZGVmYXVsdCBSZWdleEZvck5vcm1hbGl6ZWRPcGVyYXRpb25JZCBpcyAvdyouDQoJCS8vLyA8L3N1bW1hcnk+DQoJCU5vcm1hbGl6ZWRPcGVyYXRpb25JZCA9IDQsDQoJfQ0KDQoJcHVibGljIGVudW0gQ29udGFpbmVyTmFtZVN0cmF0ZWd5DQoJew0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBBbGwgY2xpZW50IGZ1bmN0aW9ucyB3aWxsIGJlIGNvbnN0cnVjdGVkIGluIGEgZ29kIGNsYXNzIG5hbWVkIGFmdGVyIENvbnRhaW5lckNsYXNzTmFtZQ0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlOb25lID0gMCwNCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBVc2UgdGFncw0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlUYWdzID0gMSwNCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBVc2UgcGF0aCBhcyByZXNvdXJjZSBmb3IgZ3JvdXBpbmcsIGFzIGEgY29udGFpbmVyIGNsYXNzIG5hbWUuDQoJCS8vLyA8L3N1bW1hcnk+DQoJCVBhdGggPSAyLA0KCX0NCg0KCXB1YmxpYyBlbnVtIEFycmF5QXNJRW51bWVyYWJsZURlcml2ZWQNCgl7DQoJCUFycmF5ID0gMCwNCg0KCQlJRW51bWVyYWJsZSA9IDEsDQoJCUlMaXN0ID0gMiwNCgkJSUNvbGxlY3Rpb24gPSAzLA0KCQlJUmVhZE9ubHlMaXN0ID0gNCwNCgkJSVJlYWRPbmx5Q29sbGVjdGlvbiA9IDUsDQoNCgkJTGlzdCA9IDYsDQoJCUNvbGxlY3Rpb24gPSA3LA0KCQlSZWFkT25seUNvbGxlY3Rpb24gPSA4LA0KCX0NCg0KCS8vLyA8c3VtbWFyeT4NCgkvLy8gQSBEVE8gY2xhc3MsIG5vdCBwYXJ0IG9mIHRoZSBDb2RlR2VuLmpzb24gDQoJLy8vIDwvc3VtbWFyeT4NCglwdWJsaWMgY2xhc3MgSlNPdXRwdXQNCgl7DQoJCXB1YmxpYyBzdHJpbmcgSlNQYXRoIHsgZ2V0OyBzZXQ7IH0NCg0KCQlwdWJsaWMgYm9vbCBBc01vZHVsZSB7IGdldDsgc2V0OyB9DQoNCgkJLy8vLy8gPHN1bW1hcnk+DQoJCS8vLy8vIEhUVFAgY29udGVudCB0eXBlIHVzZWQgaW4gUE9TVCBvZiBIVFRQIG9mIE5HMi4gc28gdGV4dC9wbGFpbiBjb3VsZCBiZSB1c2VkIHRvIGF2b2lkIHByZWZsaWdodCBpbiBDT1JTLg0KCQkvLy8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBzdHJpbmcgQ29udGVudFR5cGUgeyBnZXQ7IHNldDsgfQ0KCX0NCg0KCXB1YmxpYyBjbGFzcyBKU1BsdWdpbg0KCXsNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gQXNzZW1ibHkgZmlsZSBuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uIGRsbCBhbmQgZGlyLiBUaGUgYXNzZW1ibHkgZmlsZSBzaG91bGQgYmUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IG9mIHRoZSBtYWluIHByb2dyYW0uDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBzdHJpbmcgQXNzZW1ibHlOYW1lIHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8gPHN1bW1hcnk+DQoJCS8vLyBSZWxhdGVkIHBhdGggb3IgYWJzb2x1dGUgcGF0aC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHNsYXNoIC8gdG8gc2VwcGFyYXRlLiBJZiB5b3UgdXNlIGJhY2tsYXNoIFwsIFxcIHNob3VsZCBiZSB1c2VkLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgc3RyaW5nIFRhcmdldERpciB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gR2VuZXJhdGVkIFRTIGZpbGUgbmFtZS4gRm9yIGV4YW1wbGUsIE15TmdDbGllbnRBdXRvLnRzDQoJCS8vLyA8L3N1bW1hcnk+DQoJCXB1YmxpYyBzdHJpbmcgVFNGaWxlIHsgZ2V0OyBzZXQ7IH0NCg0KCQkvLy8vLyA8c3VtbWFyeT4NCgkJLy8vLy8gSFRUUCBjb250ZW50IHR5cGUgdXNlZCBpbiBQT1NUIG9mIEhUVFAgb2YgTkcyLiBGb3IgZXhhbXBsZSwgImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIuDQoJCS8vLy8vIDwvc3VtbWFyeT4NCgkJcHVibGljIHN0cmluZyBDb250ZW50VHlwZSB7IGdldDsgc2V0OyB9DQoNCgkJLy8vIDxzdW1tYXJ5Pg0KCQkvLy8gVHJ1ZSB0byBoYXZlICJleHBvcnQgbmFtZXNwYWNlIjsgZmFsc2UgdG8gaGF2ZSAibmFtZXNwYWNlIi4galF1ZXJ5IHdhbnRzICJuYW1lc3BhY2UiIHdoaWxlIEFuZ3VsYXIgMisgd2FudHMgImV4cG9ydCBuYW1lc3BhY2UiLg0KCQkvLy8gPC9zdW1tYXJ5Pg0KCQlwdWJsaWMgYm9vbCBBc01vZHVsZSB7IGdldDsgc2V0OyB9DQoJfQ0KDQpgYGANCg0KRm9yIG1vcmUgZGV0YWlscywgZXNwZWNpYWxseSB0aGUgY29udGV4dHMgb2YgdXNpbmcgdGhlc2Ugc2V0dGluZ3MsIHBsZWFzZSBjaGVjayBbU2V0dGluZ3MgRXhwbGFpbmVkXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi93aWtpL1NldHRpbmdzLUV4cGxhaW5lZCkuDQoNCiMjIENvbXBhcmlzb24gd2l0aCBOU3dhZw0KDQoqIFtRdWljayBDb21wYXJpc29uXShodHRwczovL2dpdGh1Yi5jb20vemlqaWFuaHVhbmcvb3BlbmFwaWNsaWVudGdlbi93aWtpL0NvbXBhcmlzb24td2l0aC1OU3dhZykNCiogW0RldGFpbGVkIENvbXBhcmlzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS96aWppYW5odWFuZy9PcGVuQXBpRXhhbXBsZXMvd2lraSkNCg0KIyMgQXJ0aWNsZXMNCg0KSW4gYWRkaXRpb24gdG8gV2lraSwgcGxlYXNlIHJlZmVyIHRvIHRoZXNlIGFydGljbGVzOg0KDQoNCiogW09wZW5BcGlDbGllbnRHZW4gdG8gR2VuZXJhdGUgU3Ryb25nbHkgVHlwZWQgQ2xpZW50IEFQSSBDb2RlcyBCYXNlZCBvbiBPcGVuIEFQSSBEZWZpbml0aW9uc10oaHR0cHM6Ly93d3cuY29kZXByb2plY3QuY29tL0FydGljbGVzLzUyNjIxODQvT3BlbkFwaUNsaWVudEdlbi10by1HZW5lcmF0ZS1TdHJvbmdseS1UeXBlZC1DbGllbnQpDQoqIFtHZW5lcmF0ZSBUeXBlZCBGb3JtcyBvZiBBbmd1bGFyIFJlYWN0aXZlIEZvcm1zIGZyb20gU3dhZ2dlciAvIE9wZW5BUEkgZGVmaW5pdGlvbnNdKGh0dHBzOi8vd3d3LmNvZGVwcm9qZWN0LmNvbS9BcnRpY2xlcy81Mzc1NTUyL0dlbmVyYXRlLVR5cGVkLUZvcm1zLW9mLUFuZ3VsYXItUmVhY3RpdmUtRm9ybXMtZnJvKQ== readmeEtag: '"c918b588b85839515fe3672d407a63fced5adb35"' readmeLastModified: Fri, 12 Jul 2024 19:59:12 GMT repositoryId: 247183556 description: >- Generate strongly typed C# and TypeScript client codes from Open API / Swagger definitions supporting jQuery, Angular, AXIOS, Fetch API, Aurelia and Angular Strictly Typed Forms created: '2020-03-14T00:15:16Z' updated: '2024-08-28T22:20:15Z' language: TypeScript archived: false stars: 68 watchers: 4 forks: 13 owner: zijianhuang logo: https://avatars.githubusercontent.com/u/8484970?v=4 license: MIT repoEtag: '"d0c4d5e782019d44cea834ee7f59942e72edafb8d70ccbd2237bb1b74982d3c7"' repoLastModified: Wed, 28 Aug 2024 22:20:15 GMT foundInMaster: true id: 7db93864fa7fbbeccc6ada53c6f9cc62 - source: - https://openapi.tools/ - openapi3 tags name: OpenAPI Generator category: - Code Generators - SDK link: https://openapi-generator.tech language: Java repository: https://github.com/openapitools/openapi-generator source_description: >- A template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI Description (community-driven fork of swagger-codegen) v2: true v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgR2VuZXJhdG9yPC9oMT4KCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKWyFbU3RhYmxlIHJlbGVhc2VzIGluIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tbWV0YWRhdGEvdi9odHRwcy9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWF2ZW4tbWV0YWRhdGEueG1sLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYXYlN0MxJTdDZyUzQSUyMm9yZy5vcGVuYXBpdG9vbHMlMjIlMjBBTkQlMjBhJTNBJTIyb3BlbmFwaS1nZW5lcmF0b3IlMjIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpClshW09wZW4gQ29sbGVjdGl2ZSBiYWNrZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2JhY2tlcnMvb3BlbmFwaV9nZW5lcmF0b3I/Y29sb3I9b3JhbmdlJmxhYmVsPU9wZW5Db2xsZWN0aXZlJTIwQmFja2VycyldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTEyanh4ZDdwMi1YVWVRTX40cHpzVTl4fmVHTFFxWDJnKQpbIVtGb2xsb3cgT3BlbkFQSSBHZW5lcmF0b3IgVHdpdHRlciBhY2NvdW50IHRvIGdldCB0aGUgbGF0ZXN0IHVwZGF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9vYXNfZ2VuZXJhdG9yLnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93KV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vYXNfZ2VuZXJhdG9yKQpbIVtDb250cmlidXRlIHdpdGggR2l0cG9kXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dGUlMjB3aXRoLUdpdHBvZC05MDhhODU/bG9nbz1naXRwb2QpXShodHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbQ29uYW4gQ2VudGVyXShodHRwczovL3NoaWVsZHMuaW8vY29uYW4vdi9vcGVuYXBpLWdlbmVyYXRvcildKGh0dHBzOi8vY29uYW4uaW8vY2VudGVyL3JlY2lwZXMvb3BlbmFwaS1nZW5lcmF0b3IpClshW1JldnZlZCB1cCBieSBEZXZlbG9jaXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JldnZlZCUyMHVwJTIwYnktRGV2ZWxvY2l0eS0wNkEwQ0U/bG9nbz1HcmFkbGUmbGFiZWxDb2xvcj0wMjMwM0EpXShodHRwczovL2dlLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gvc2NhbnMpCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCltNYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpIChgNy45LjBgKToKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2FwaS50cmF2aXMtY2kuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/YnJhbmNoPW1hc3RlciZzdGF0dXM9cGFzc2VkKV0oaHR0cHM6Ly9hcHAudHJhdmlzLWNpLmNvbS9naXRodWIvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2J1aWxkcykKWyFbSW50ZWdyYXRpb24gVGVzdDJdKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQpbIVtXaW5kb3dzIFRlc3RdKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvZ2l0aHViL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcj9icmFuY2g9bWFzdGVyJnN2Zz10cnVlJnBhc3NpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyME9LJmZhaWxpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyMEZhaWxzKV0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9XaWxsaWFtQ2hlbmcvb3BlbmFwaS1nZW5lcmF0b3IpClshW0JpdHJpc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYml0cmlzZS80YTJiMTBhODE5ZDEyYjY3L21hc3Rlcj9sYWJlbD1iaXRyaXNlJTNBJTIwU3dpZnQrNCw1JnRva2VuPTg1OUZNRFI4UUh3YWJDend2Wks2dlEpXShodHRwczovL2FwcC5iaXRyaXNlLmlvL2FwcC80YTJiMTBhODE5ZDEyYjY3KQoKPC9kaXY+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKOnN0YXI6OnN0YXI6OnN0YXI6IElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUsIHBsZWFzZSByZWZlciB0byBbZ3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKSBhbmQgYSBsaXN0IG9mIFtvcGVuIHRhc2tzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpLiA6c3Rhcjo6c3Rhcjo6c3RhcjoKCjpiYW5nYmFuZzogVG8gbWlncmF0ZSBmcm9tIFN3YWdnZXIgQ29kZWdlbiB0byBPcGVuQVBJIEdlbmVyYXRvciwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbbWlncmF0aW9uIGd1aWRlXShkb2NzL21pZ3JhdGlvbi1mcm9tLXN3YWdnZXItY29kZWdlbi5tZCkgOmJhbmdiYW5nOgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgW1dpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpKSBhbmQgW0ZBUV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpL0ZBUSkgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IFRoZSBlQm9vayBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9vaykgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBiZWdpbm5lcnMgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjp3YXJuaW5nOiBJZiB0aGUgT3BlbkFQSSBzcGVjLCB0ZW1wbGF0ZXMgb3IgYW55IGlucHV0IChlLmcuIG9wdGlvbnMsIGVudmlyb25tZW50IHZhcmlhYmxlcykgaXMgb2J0YWluZWQgZnJvbSBhbiB1bnRydXN0ZWQgc291cmNlIG9yIGVudmlyb25tZW50LCBwbGVhc2UgbWFrZSBzdXJlIHlvdSd2ZSByZXZpZXdlZCB0aGVzZSBpbnB1dHMgYmVmb3JlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIHRoZSBBUEkgY2xpZW50LCBzZXJ2ZXIgc3R1YiBvciBkb2N1bWVudGF0aW9uIHRvIGF2b2lkIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZXMgKGUuZy4gW2NvZGUgaW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db2RlX2luamVjdGlvbikpLiBGb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLCBwbGVhc2UgY29udGFjdCBbdGVhbUBvcGVuYXBpdG9vbHMub3JnXShtYWlsdG86dGVhbUBvcGVuYXBpdG9vbHMub3JnKS4gOndhcm5pbmc6Cgo6YmFuZ2Jhbmc6IEJvdGggIk9wZW5BUEkgVG9vbHMiIChodHRwczovL09wZW5BUElUb29scy5vcmcgLSB0aGUgcGFyZW50IG9yZ2FuaXphdGlvbiBvZiBPcGVuQVBJIEdlbmVyYXRvcikgYW5kICJPcGVuQVBJIEdlbmVyYXRvciIgYXJlIG5vdCBhZmZpbGlhdGVkIHdpdGggT3BlbkFQSSBJbml0aWF0aXZlIChPQUkpIDpiYW5nYmFuZzoKCjwvZGl2PgoKIyMgU3BvbnNvcnMKCklmIHlvdSBmaW5kIE9wZW5BUEkgR2VuZXJhdG9yIHVzZWZ1bCBmb3Igd29yaywgcGxlYXNlIGNvbnNpZGVyIGFza2luZyB5b3VyIGNvbXBhbnkgdG8gc3VwcG9ydCB0aGlzIE9wZW4gU291cmNlIHByb2plY3QgYnkgW2JlY29taW5nIGEgc3BvbnNvcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaV9nZW5lcmF0b3IpLiBZb3UgY2FuIGFsc28gaW5kaXZpZHVhbGx5IHNwb25zb3IgdGhlIHByb2plY3QgYnkgW2JlY29taW5nIGEgYmFja2VyXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpX2dlbmVyYXRvcikuCgojIyMjIFRoYW5rIHlvdSB0byBvdXIgYnJvbnplIHNwb25zb3JzIQoKWyFbTmFtU29yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9uYW1zb3IucG5nKV0oaHR0cHM6Ly93d3cubmFtc29yLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaWdodEJvd10oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbGlnaHRib3cucG5nKV0oaHR0cHM6Ly93d3cubGlnaHRib3cubmV0Lz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZG9jc3ByaW5nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGF0YWRvZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZGF0YWRvZ2hxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3RoYWxlcy5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vY3BsLnRoYWxlc2dyb3VwLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FwaWRlY2suanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5hcGlkZWNrLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3BleGEucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5wZXhhLmNvbS5hdS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL251bWFyeS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3Lm51bWFyeS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9vbmVzaWduYWwucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5vbmVzaWduYWwuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvdmlydHVhbGFuc29mdHdhcmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy52aXJ0dWFsYW5zb2Z0d2FyZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9tZXJnZWRldi5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5tZXJnZS5kZXYvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9idXJrZXJ0LmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYnVya2VydC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9maW5ib3VybmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5maW5ib3VybmUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYnVtcHNoLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9idW1wLnNoLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYmlsZXRvLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYmlsZXRvLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2JhaXJlc2Rldi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJhaXJlc2Rldi5jb20vc3BvbnNvcmluZy1vcGVuLXNvdXJjZS1wcm9qZWN0cy8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RtdGVjaC5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5kbXRlY2guZGUvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9hZHllbi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vYWR5ZW4uY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZm9ybmV4LnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9mb3JuZXguY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYWxsb3lhdXRvbWF0aW9uLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9ydW5hbGxveS5jb20vc2lnbnVwP3V0bV9zb3VyY2U9Z2l0aHViJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPTE1MjRfb3BlbmFwaWdlbmVyYXRvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9zc3N0d2l0dGVyLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9zc3N0d2l0dGVyLmNvbS8/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9zdml4LnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuc3ZpeC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2xpdHNsaW5rLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9saXRzbGluay5jb20vc2VydmljZXMvYXJ0aWZpY2lhbC1pbnRlbGxpZ2VuY2U/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGVzaWdubGkuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2Rlc2lnbmxpLmNvP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2l0bS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vb3BlbnNvdXJjZS5tdWVuY2hlbi5kZT91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9rb25nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9rb25naHEuY29tL3Byb2R1Y3RzL2tvbmcta29ubmVjdD91dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9zb3VyY2U9Z2l0aHViJnV0bV9jYW1wYWlnbj1wbGF0Zm9ybSZ1dG1fY29udGVudD1vcGVuYXBpLWdlbmVyYXRvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9yb3V0ZTRtZS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vcm91dGU0bWUuY29tLz91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKCiMjIyMgVGhhbmsgeW91IEdvRGFkZHkgZm9yIHNwb25zb3JpbmcgdGhlIGRvbWFpbiBuYW1lcywgTGlub2RlIGZvciBzcG9uc29yaW5nIHRoZSBWUFMsIENoZWNrbHkgZm9yIHNwb25zb3JpbmcgdGhlIEFQSSBtb25pdG9yaW5nIGFuZCBHcmFkbGUgZm9yIHNwb25zb3JpbmcgRGV2ZWxvY2l0eQoKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9nb2RhZGR5LnBuZyIgd2lkdGg9IjE1MCI+XShodHRwczovL3d3dy5nb2RhZGR5LmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL2VuY3J5cHRlZC10Ym4wLmdzdGF0aWMuY29tL2ltYWdlcz9xPXRibiUzQUFOZDlHY1JBaEVZYWRVeVpZekdVb3RaaVNkWGtWTXFxTEd1b2h5aXhMbDRlVXBVVjZwQWJVVUxMIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vY2hlY2tseWhxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvYy9jYi9HcmFkbGVfbG9nby5wbmcvMzIwcHgtR3JhZGxlX2xvZ28ucG5nIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vZ3JhZGxlLm9yZz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCgojIyBPdmVydmlldwoKT3BlbkFQSSBHZW5lcmF0b3IgYWxsb3dzIGdlbmVyYXRpb24gb2YgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNESyBnZW5lcmF0aW9uKSwgc2VydmVyIHN0dWJzLCAgZG9jdW1lbnRhdGlvbiBhbmQgY29uZmlndXJhdGlvbiBhdXRvbWF0aWNhbGx5IGdpdmVuIGFuIFtPcGVuQVBJIFNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoYm90aCAyLjAgYW5kIDMuMCBhcmUgc3VwcG9ydGVkKS4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGxhbmd1YWdlcy9mcmFtZXdvcmtzIGFyZSBzdXBwb3J0ZWQ6Cgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGFuZ3VhZ2VzL0ZyYW1ld29ya3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgKipBUEkgY2xpZW50cyoqICAgICAgICAgICAgICAgICAgfCAqKkFjdGlvblNjcmlwdCoqLCAqKkFkYSoqLCAqKkFwZXgqKiwgKipCYXNoKiosICoqQyoqLCAqKkMjKiogKC5uZXQgMi4wLCAzLjUgb3IgbGF0ZXIsIC5ORVQgU3RhbmRhcmQgMS4zIC0gMi4xLCAuTkVUIENvcmUgMy4xLCAuTkVUIDUuMC4gTGlicmFyaWVzOiBSZXN0U2hhcnAsIEdlbmVyaWNIb3N0LCBIdHRwQ2xpZW50KSwgKipDKysqKiAoQXJkdWlubywgY3BwLXJlc3RzZGssIFF0NSwgVGl6ZW4sIFVucmVhbCBFbmdpbmUgNCksICoqQ2xvanVyZSoqLCAqKkNyeXN0YWwqKiwgKipEYXJ0KiosICoqRWxpeGlyKiosICoqRWxtKiosICoqRWlmZmVsKiosICoqRXJsYW5nKiosICoqR28qKiwgKipHcm9vdnkqKiwgKipIYXNrZWxsKiogKGh0dHAtY2xpZW50LCBTZXJ2YW50KSwgKipKYXZhKiogKEFwYWNoZSBIdHRwQ2xpZW50IDQueCwgQXBhY2hlIEh0dHBDbGllbnQgNS54LCBKZXJzZXkyLngsIE9rSHR0cCwgUmV0cm9maXQxLngsIFJldHJvZml0Mi54LCBGZWlnbiwgUmVzdFRlbXBsYXRlLCBSRVNURWFzeSwgVmVydHgsIEdvb2dsZSBBUEkgQ2xpZW50IExpYnJhcnkgZm9yIEphdmEsIFJlc3QtYXNzdXJlZCwgU3ByaW5nIDUgV2ViIENsaWVudCwgU3ByaW5nIDYgUmVzdENsaWVudCwgTWljcm9Qcm9maWxlIFJlc3QgQ2xpZW50LCBIZWxpZG9uKSwgKipKZXRicmFpbnMgSFRUUCBDbGllbnQqKiwgKipKdWxpYSoqLCAqKms2KiosICoqS290bGluKiosICoqTHVhKiosICoqTjRKUyoqLCAqKk5pbSoqLCAqKk5vZGUuanMvSmF2YVNjcmlwdCoqIChFUzUsIEVTNiwgQW5ndWxhckpTIHdpdGggR29vZ2xlIENsb3N1cmUgQ29tcGlsZXIgYW5ub3RhdGlvbnMsIEZsb3cgdHlwZXMsIEFwb2xsbyBHcmFwaFFMIERhdGFTdG9yZSksICoqT2JqZWN0aXZlLUMqKiwgKipPQ2FtbCoqLCAqKlBlcmwqKiwgKipQSFAqKiwgKipQb3dlclNoZWxsKiosICoqUHl0aG9uKiosICoqUioqLCAqKlJ1YnkqKiwgKipSdXN0KiogKGh5cGVyLCByZXF3ZXN0LCBydXN0LXNlcnZlciksICoqU2NhbGEqKiAoYWtrYSwgaHR0cDRzLCBzY2FsYXosIHN0dHAsIHN3YWdnZXItYXN5bmMtaHR0cGNsaWVudCwgcGVra28pLCAqKlN3aWZ0KiogKDIueCwgMy54LCA0LngsIDUueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFySlMsIEFuZ3VsYXIgKDkueCAtIDE4LngpLCBBdXJlbGlhLCBBeGlvcywgRmV0Y2gsIEludmVyc2lmeSwgalF1ZXJ5LCBOZXN0anMsIE5vZGUsIHJlZHV4LXF1ZXJ5LCBSeGpzKSwgKipYb0pvKiosICoqWmFwaWVyKiogfAp8ICoqU2VydmVyIHN0dWJzKiogICAgICAgICAgICAgICAgIHwgKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIEF6dXJlIEZ1bmN0aW9ucyksICoqQysrKiogKFBpc3RhY2hlLCBSZXN0YmVkLCBRdDUgUUhUVFBFbmdpbmUpLCAqKkVybGFuZyoqLCAqKkYjKiogKEdpcmFmZmUpLCAqKkdvKiogKG5ldC9odHRwLCBHaW4sIEVjaG8pLCAqKkhhc2tlbGwqKiAoU2VydmFudCwgWWVzb2QpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgSmVyc2V5LCBSZXN0RWFzeSwgUGxheSBGcmFtZXdvcmssIFtQS01TVF0oaHR0cHM6Ly9naXRodWIuY29tL1Byb0thcm1hLUluYy9wa21zdC1nZXR0aW5nLXN0YXJ0ZWQtZXhhbXBsZXMpLCBbVmVydC54XShodHRwczovL3ZlcnR4LmlvLyksIFtBcGFjaGUgQ2FtZWxdKGh0dHBzOi8vY2FtZWwuYXBhY2hlLm9yZy8pLCBbSGVsaWRvbl0oaHR0cHM6Ly9oZWxpZG9uLmlvLykpLCAqKkp1bGlhKiosICoqS290bGluKiogKFNwcmluZyBCb290LCBbS3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2t0b3Jpby9rdG9yKSwgW1ZlcnQueF0oaHR0cHM6Ly92ZXJ0eC5pby8pKSwgKipQSFAqKiAoW0ZsaWdodF0oaHR0cHM6Ly9kb2NzLmZsaWdodHBocC5jb20vKSwgTGFyYXZlbCwgTHVtZW4sIFtNZXp6aW8gKGZrYSBaZW5kIEV4cHJlc3NpdmUpXShodHRwczovL2dpdGh1Yi5jb20vbWV6emlvL21lenppbyksIFNsaW0sIFNpbGV4LCBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbS8pKSwgKipQeXRob24qKiAoRmFzdEFQSSwgRmxhc2spLCAqKk5vZGVKUyoqLCAqKlJ1YnkqKiAoU2luYXRyYSwgUmFpbHM1KSwgKipSdXN0KiogKFtydXN0LXNlcnZlcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy9ydXN0LXNlcnZlci8pKSwgKipTY2FsYSoqIChBa2thLCBbRmluY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5hZ2xlL2ZpbmNoKSwgW0xhZ29tXShodHRwczovL2dpdGh1Yi5jb20vbGFnb20vbGFnb20pLCBbUGxheV0oaHR0cHM6Ly93d3cucGxheWZyYW1ld29yay5jb20vKSwgW0Nhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb20tbGloYW95aS9jYXNrKSwgU2NhbGF0cmEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqKkFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvcnMqKiB8ICoqSFRNTCoqLCAqKkNvbmZsdWVuY2UgV2lraSoqLCAqKkFzY2lpZG9jKiosICoqTWFya2Rvd24qKiwgKipQbGFudFVNTCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipDb25maWd1cmF0aW9uIGZpbGVzKiogICAgICAgICAgfCBbKipBcGFjaGUyKipdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqT3RoZXJzKiogICAgICAgICAgICAgICAgICAgICAgIHwgKipHcmFwaFFMKiosICoqSk1ldGVyKiosICoqS3Rvcm0qKiwgKipNeVNRTCBTY2hlbWEqKiwgKipQb3N0bWFuIENvbGxlY3Rpb24qKiwgKipQcm90b2NvbCBCdWZmZXIqKiwgKipXU0RMKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW09wZW5BUEkgR2VuZXJhdG9yXSgjb3BlbmFwaS1nZW5lcmF0b3IpCiAgLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFtUYWJsZSBvZiBDb250ZW50c10oI3RhYmxlLW9mLWNvbnRlbnRzKQogIC0gWzEgLSBJbnN0YWxsYXRpb25dKCMxLS0taW5zdGFsbGF0aW9uKQogICAgLSBbMS4xIC0gQ29tcGF0aWJpbGl0eV0oIzExLS0tY29tcGF0aWJpbGl0eSkKICAgIC0gWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjMTItLS1hcnRpZmFjdHMtb24tbWF2ZW4tY2VudHJhbCkKICAgIC0gWzEuMyAtIERvd25sb2FkIEpBUl0oIzEzLS0tZG93bmxvYWQtamFyKQogICAgLSBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCMxNC0tLWJ1aWxkLXByb2plY3RzKQogICAgLSBbMS41IC0gSG9tZWJyZXddKCMxNS0tLWhvbWVicmV3KQogICAgLSBbMS42IC0gRG9ja2VyXSgjMTYtLS1kb2NrZXIpCiAgICAtIFsxLjcgLSBOUE1dKCMxNy0tLW5wbSkKICAtIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjMi0tLWdldHRpbmctc3RhcnRlZCkKICAtIFszIC0gVXNhZ2VdKCMzLS0tdXNhZ2UpCiAgICAtIFszLjEgLSBDdXN0b21pemF0aW9uXSgjMzEtLS1jdXN0b21pemF0aW9uKQogICAgLSBbMy4yIC0gV29ya2Zsb3cgSW50ZWdyYXRpb25dKCMzMi0tLXdvcmtmbG93LWludGVncmF0aW9uLW1hdmVuLWdyYWRsZS1naXRodWItY2ljZCkKICAgIC0gWzMuMyAtIE9ubGluZSBHZW5lcmF0b3JzXSgjMzMtLS1vbmxpbmUtb3BlbmFwaS1nZW5lcmF0b3IpCiAgICAtIFszLjQgLSBMaWNlbnNlIEluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjMzQtLS1saWNlbnNlLWluZm9ybWF0aW9uLW9uLWdlbmVyYXRlZC1jb2RlKQogICAgLSBbMy41IC0gSURFIEludGVncmF0aW9uXSgjMzUtLS1pZGUtaW50ZWdyYXRpb24pCiAgLSBbNCAtIENvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oIzQtLS1jb21wYW5pZXNwcm9qZWN0cy11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjNS0tLXByZXNlbnRhdGlvbnN2aWRlb3N0dXRvcmlhbHNib29rcykKICAtIFs2IC0gQWJvdXQgVXNdKCM2LS0tYWJvdXQtdXMpCiAgICAtIFs2LjEgLSBPcGVuQVBJIEdlbmVyYXRvciBDb3JlIFRlYW1dKCM2MS0tLW9wZW5hcGktZ2VuZXJhdG9yLWNvcmUtdGVhbSkKICAgIC0gWzYuMiAtIE9wZW5BUEkgR2VuZXJhdG9yIFRlY2huaWNhbCBDb21taXR0ZWVdKCM2Mi0tLW9wZW5hcGktZ2VuZXJhdG9yLXRlY2huaWNhbC1jb21taXR0ZWUpCiAgICAtIFs2LjMgLSBIaXN0b3J5IG9mIE9wZW5BUEkgR2VuZXJhdG9yXSgjNjMtLS1oaXN0b3J5LW9mLW9wZW5hcGktZ2VuZXJhdG9yKQogIC0gWzcgLSBMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpCgojIyBbMSAtIEluc3RhbGxhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIFsxLjEgLSBDb21wYXRpYmlsaXR5XSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgMyByZXZpc2lvbnMgc2luY2UgaW5pdGlhbCBjcmVhdGlvbiBpbiAyMDEwLiAgVGhlIG9wZW5hcGktZ2VuZXJhdG9yIHByb2plY3QgaGFzIHRoZSBmb2xsb3dpbmcgY29tcGF0aWJpbGl0aWVzIHdpdGggdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKCnwgT3BlbkFQSSBHZW5lcmF0b3IgVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVsZWFzZSBEYXRlIHwgTm90ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgNy45LjAgKHVwY29taW5nIG1pbm9yIHJlbGVhc2UpIFtTTkFQU0hPVF0oaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cy9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjkuMC1TTkFQU0hPVC8pIHwgMjMuMDkuMjAyNCAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNy44LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y3LjguMCkgKGxhdGVzdCBzdGFibGUgcmVsZWFzZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOS4wOC4yMDI0ICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs2LjYuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjYuNi4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExLjA1LjIwMjMgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzUuNC4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92NS40LjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzEuMDEuMjAyMiAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNC4zLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y0LjMuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAwNi4wNS4yMDIwICAgfCBQYXRjaCByZWxlYXNlIChlbmhhbmNlbWVudHMsIGJ1ZyBmaXhlcywgZXRjKSAgICAgICAgICAgICAgICAgICAgICAgfAoKT3BlbkFQSSBTcGVjIGNvbXBhdGliaWxpdHk6IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wLCAzLjEgKGJldGEgc3VwcG9ydCkKCihXZSBkbyBub3QgcHVibGlzaCBkYWlseS9uaWdodGx5IGJ1aWxkLiBQbGVhc2UgdXNlIFNOQVBTSE9UIGluc3RlYWQpCgpGb3Igb2xkIHJlbGVhc2VzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFsqKlJlbGVhc2UqKl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcykgcGFnZS4KCkZvciBkZWNvbWlzc2lvbmVkIGdlbmVyYXRvcnMvbGlicmFyaWVzL2ZyYW1ld29ya3MsIHBsZWFzZSByZWZlciB0byBbdGhlICJEZWNvbW1pc3Npb24iIGxhYmVsXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWxhYmVsJTNBRGVjb21taXNzaW9uK2lzJTNBbWVyZ2VkKykgaW4gdGhlIHB1bGwgcmVxdWVzdCBwYWdlLgoKIyMgWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjdGFibGUtb2YtY29udGVudHMpCgpZb3UgY2FuIGZpbmQgb3VyIHJlbGVhc2VkIGFydGlmYWN0cyBvbiBtYXZlbiBjZW50cmFsOgoKKipDb3JlOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvcjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgClNlZSB0aGUgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBbb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KCioqQ2xpOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1jbGk8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYApTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLWNsaV0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KCioqTWF2ZW4gcGx1Z2luOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYAoqIFNlZSB0aGUgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBbb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4pIGFydGlmYWN0IGF2YWlsYWJsZSBvbiBtYXZlbiBjZW50cmFsLgoqIFtSZWFkbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kKQoKKipHcmFkbGUgcGx1Z2luOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKKiBTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW5dKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW4pIGFydGlmYWN0IGF2YWlsYWJsZSBvbiBtYXZlbiBjZW50cmFsLgoqIFtSZWFkbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luL1JFQURNRS5hZG9jKQoKIyMjIFsxLjMgLSBEb3dubG9hZCBKQVJdKCN0YWJsZS1vZi1jb250ZW50cykKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+CklmIHlvdSdyZSBsb29raW5nIGZvciB0aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uLCB5b3UgY2FuIGdyYWIgaXQgZGlyZWN0bHkgZnJvbSBNYXZlbi5vcmcgKEphdmEgMTEgcnVudGltZSBhdCBhIG1pbmltdW0pOgoKSkFSIGxvY2F0aW9uOiBgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuOC4wL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjguMC5qYXJgCgpGb3IgKipNYWMvTGludXgqKiB1c2VyczoKYGBgc2gKd2dldCBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy44LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuOC4wLmphciAtTyBvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyCmBgYAoKRm9yICoqV2luZG93cyoqIHVzZXJzLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgW3dnZXRdKGh0dHA6Ly9nbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQvcGFja2FnZXMvd2dldC5odG0pIG9yIHlvdSBjYW4gdXNlIEludm9rZS1XZWJSZXF1ZXN0IGluIFBvd2VyU2hlbGwgKDMuMCspLCBlLmcuCmBgYApJbnZva2UtV2ViUmVxdWVzdCAtT3V0RmlsZSBvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjguMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy44LjAuamFyCmBgYAoKQWZ0ZXIgZG93bmxvYWRpbmcgdGhlIEpBUiwgcnVuIGBqYXZhIC1qYXIgb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBoZWxwYCB0byBzaG93IHRoZSB1c2FnZS4KCkZvciBNYWMgdXNlcnMsIHBsZWFzZSBtYWtlIHN1cmUgSmF2YSAxMSBpcyBpbnN0YWxsZWQgKFRpcHM6IHJ1biBgamF2YSAtdmVyc2lvbmAgdG8gY2hlY2sgdGhlIHZlcnNpb24pLCBhbmQgZXhwb3J0IGBKQVZBX0hPTUVgIGluIG9yZGVyIHRvIHVzZSB0aGUgc3VwcG9ydGVkIEphdmEgdmVyc2lvbjoKYGBgc2gKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxLjExYApleHBvcnQgUEFUSD0ke0pBVkFfSE9NRX0vYmluOiRQQVRICmBgYAoKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgojIyMgTGF1bmNoZXIgU2NyaXB0CgpPbmUgZG93bnNpZGUgdG8gbWFudWFsIGphciBkb3dubG9hZHMgaXMgdGhhdCB5b3UgZG9uJ3Qga2VlcCB1cC10by1kYXRlIHdpdGggdGhlIGxhdGVzdCByZWxlYXNlZCB2ZXJzaW9uLiBXZSBoYXZlIGEgQmFzaCBsYXVuY2hlciBzY3JpcHQgYXQgW2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci5jbGkuc2hdKC4vYmluL3V0aWxzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS5zaCkgd2hpY2ggcmVzb2x2ZXMgdGhpcyBpc3N1ZS4KClRvIGluc3RhbGwgdGhlIGxhdW5jaGVyIHNjcmlwdCwgY29weSB0aGUgY29udGVudHMgb2YgdGhlIHNjcmlwdCB0byBhIGxvY2F0aW9uIG9uIHlvdXIgcGF0aCBhbmQgbWFrZSB0aGUgc2NyaXB0IGV4ZWN1dGFibGUuCgpBbiBleGFtcGxlIG9mIHNldHRpbmcgdGhpcyB1cCAoTk9URTogQWx3YXlzIGV2YWx1YXRlIHNjcmlwdHMgY3VybGVkIGZyb20gZXh0ZXJuYWwgc3lzdGVtcyBiZWZvcmUgZXhlY3V0aW5nIHRoZW0pLgoKYGBgCm1rZGlyIC1wIH4vYmluL29wZW5hcGl0b29scwpjdXJsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci1jbGkuc2ggPiB+L2Jpbi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpCmNobW9kIHUreCB+L2Jpbi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpCmV4cG9ydCBQQVRIPSRQQVRIOn4vYmluL29wZW5hcGl0b29scy8KYGBgCgpOb3csIGBvcGVuYXBpLWdlbmVyYXRvci1jbGlgIGlzICJpbnN0YWxsZWQiLiBPbiBpbnZvY2F0aW9uLCBpdCB3aWxsIHF1ZXJ5IHRoZSBHaXRIdWIgcmVwb3NpdG9yeSBmb3IgdGhlIG1vc3QgcmVjZW50bHkgcmVsZWFzZWQgdmVyc2lvbi4gSWYgdGhpcyBtYXRjaGVzIHRoZSBsYXN0IGRvd25sb2FkZWQgamFyLAppdCB3aWxsIGV4ZWN1dGUgYXMgbm9ybWFsLiBJZiBhIG5ld2VyIHZlcnNpb24gaXMgZm91bmQsIHRoZSBzY3JpcHQgd2lsbCBkb3dubG9hZCB0aGUgbGF0ZXN0IHJlbGVhc2UgYW5kIGV4ZWN1dGUgaXQuCgpJZiB5b3UgbmVlZCB0byBpbnZva2UgYW4gb2xkZXIgdmVyc2lvbiBvZiB0aGUgZ2VuZXJhdG9yLCB5b3UgY2FuIGRlZmluZSB0aGUgdmFyaWFibGUgYE9QRU5BUElfR0VORVJBVE9SX1ZFUlNJT05gIGVpdGhlciBhZCBob2Mgb3IgZ2xvYmFsbHkuIFlvdSBjYW4gZXhwb3J0IHRoaXMgdmFyaWFibGUgaWYgeW91J2QgbGlrZSB0byBwZXJzaXN0IGEgc3BlY2lmaWMgcmVsZWFzZSB2ZXJzaW9uLgoKRXhhbXBsZXM6CgpgYGAKIyBFeGVjdXRlIGxhdGVzdCByZWxlYXNlZCBvcGVuYXBpLWdlbmVyYXRvci1jbGkKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24KCiMgRXhlY3V0ZSB2ZXJzaW9uIDQuMS4wIGZvciB0aGUgY3VycmVudCBpbnZvY2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZSBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbgpPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMS4wIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjEuMC1TTkFQU0hPVCBmb3IgdGhlIGN1cnJlbnQgaW52b2NhdGlvbgpPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMS4wLVNOQVBTSE9UIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjAuMiBmb3IgZXZlcnkgaW52b2NhdGlvbiBpbiB0aGUgY3VycmVudCBzaGVsbCBzZXNzaW9uCmV4cG9ydCBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMC4yCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uICMgaXMgNC4wLjIKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24gIyBpcyBhbHNvIDQuMC4yCgojIFRvICJpbnN0YWxsIiBhIHNwZWNpZmljIHZlcnNpb24sIHNldCB0aGUgdmFyaWFibGUgaW4gLmJhc2hyYy8uYmFzaF9wcm9maWxlCmVjaG8gImV4cG9ydCBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMC4yIiA+PiB+Ly5iYXNocmMKc291cmNlIH4vLmJhc2hyYwpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbiAjIGlzIGFsd2F5cyA0LjAuMiwgdW5sZXNzIGFueSBvZiB0aGUgYWJvdmUgb3ZlcnJpZGVzIGFyZSBkb25lIGFkIGhvYwpgYGAKCiMjIyBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCN0YWJsZS1vZi1jb250ZW50cykKClRvIGJ1aWxkIGZyb20gc291cmNlLCB5b3UgbmVlZCB0aGUgZm9sbG93aW5nIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIGluIHlvdXIgYCRQQVRIOmAKCiogW0phdmEgMTFdKGh0dHBzOi8vYWRvcHRpdW0ubmV0LykKCiogW0FwYWNoZSBNYXZlbiAzLjguOCBvciBncmVhdGVyXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvKSAob3B0aW9uYWwpCgpBZnRlciBjbG9uaW5nIHRoZSBwcm9qZWN0LCB5b3UgY2FuIGJ1aWxkIGl0IGZyb20gc291cmNlIHVzaW5nIFttYXZlbiB3cmFwcGVyXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvd3JhcHBlci8pOgoKLSBMaW51eDogYC4vbXZudyBjbGVhbiBpbnN0YWxsYAotIFdpbmRvd3M6IGBtdm53LmNtZCBjbGVhbiBpbnN0YWxsYAoKIyMjIyBOaXggdXNlcnMKCklmIHlvdSdyZSBhIG5peCB1c2VyLCB5b3UgY2FuIGVudGVyIE9wZW5BUEkgR2VuZXJhdG9yIHNoZWxsLCBieSB0eXBpbmc6CmBgYHNoCm5peCBkZXZlbG9wCmBgYApJdCB3aWxsIGVudGVyIGEgc2hlbGwgd2l0aCBKYXZhIDExIGluc3RhbGxlZC4KCkRpcmVudiBzdXBwb3J0cyBhdXRvbWF0aWNhbGx5IGxvYWRpbmcgb2YgdGhlIG5peCBkZXZlbG9wZXIgc2hlbGwsIHNvIGlmIHlvdSdyZSB1c2luZyBkaXJlbnYgdG9vLCB0eXBlOgpgYGBzaApkaXJlbnYgYWxsb3cKYGBgCmFuZCBoYXZlIGBqYXZhYCBhbmQgYG12bmAgc2V0IHVwIHdpdGggY29ycmVjdCB2ZXJzaW9ucyBlYWNoIHRpbWUgeW91IGVudGVyIHByb2plY3QgZGlyZWN0b3J5LgoKVGhlIGRlZmF1bHQgYnVpbGQgY29udGFpbnMgbWluaW1hbCBzdGF0aWMgYW5hbHlzaXMgKHZpYSBDaGVja1N0eWxlKS4gVG8gcnVuIHlvdXIgYnVpbGQgd2l0aCBQTUQgYW5kIFNwb3RidWdzLCB1c2UgdGhlIGBzdGF0aWMtYW5hbHlzaXNgIHByb2ZpbGU6CgotIExpbnV4OiBgLi9tdm53IC1Qc3RhdGljLWFuYWx5c2lzIGNsZWFuIGluc3RhbGxgCi0gV2luZG93czogYG12bncuY21kIC1Qc3RhdGljLWFuYWx5c2lzIGNsZWFuIGluc3RhbGxgCgojIyMgWzEuNSAtIEhvbWVicmV3XSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBpbnN0YWxsLCBydW4gYGJyZXcgaW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvcmAKCkhlcmUgaXMgYW4gZXhhbXBsZSB1c2FnZSB0byBnZW5lcmF0ZSBhIFJ1YnkgY2xpZW50OgpgYGBzaApvcGVuYXBpLWdlbmVyYXRvciBnZW5lcmF0ZSAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCAtZyBydWJ5IC1vIC90bXAvdGVzdC8KYGBgCgpUbyByZWluc3RhbGwgd2l0aCB0aGUgbGF0ZXN0IG1hc3RlciwgcnVuIGBicmV3IHVuaW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvciAmJiBicmV3IGluc3RhbGwgLS1IRUFEIG9wZW5hcGktZ2VuZXJhdG9yYAoKVG8gaW5zdGFsbCBPcGVuSkRLIChwcmUtcmVxdWlzaXRlcyksIHBsZWFzZSBydW4KYGBgc2gKYnJldyB0YXAgQWRvcHRPcGVuSkRLL29wZW5qZGsKYnJldyBpbnN0YWxsIC0tY2FzayBhZG9wdG9wZW5qZGsxMQpleHBvcnQgSkFWQV9IT01FPWAvdXNyL2xpYmV4ZWMvamF2YV9ob21lIC12IDEuMTFgCmBgYAoKb3IgZG93bmxvYWQgaW5zdGFsbGVyIHZpYSBodHRwczovL2Fkb3B0aXVtLm5ldC8KClRvIGluc3RhbGwgTWF2ZW4gKG9wdGlvbmFsKSwgcGxlYXNlIHJ1bgpgYGBzaApicmV3IGluc3RhbGwgbWF2ZW4KYGBgCgojIyMgWzEuNiAtIERvY2tlcl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIyBQdWJsaWMgUHJlLWJ1aWx0IERvY2tlciBpbWFnZXMKCiAtIFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS9dKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLykgKG9mZmljaWFsIENMSSkKIC0gW2h0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lL10oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1vbmxpbmUvKSAob2ZmaWNpYWwgd2ViIHNlcnZpY2UpCgoKIyMjIyBPcGVuQVBJIEdlbmVyYXRvciBDTEkgRG9ja2VyIEltYWdlCgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgaW1hZ2UgYWN0cyBhcyBhIHN0YW5kYWxvbmUgZXhlY3V0YWJsZS4gSXQgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gaW5zdGFsbGluZyB2aWEgaG9tZWJyZXcsIG9yIGZvciBkZXZlbG9wZXJzIHdobyBhcmUgdW5hYmxlIHRvIGluc3RhbGwgSmF2YSBvciB1cGdyYWRlIHRoZSBpbnN0YWxsZWQgdmVyc2lvbi4KClRvIGdlbmVyYXRlIGNvZGUgd2l0aCB0aGlzIGltYWdlLCB5b3UnbGwgbmVlZCB0byBtb3VudCBhIGxvY2FsIGxvY2F0aW9uIGFzIGEgdm9sdW1lLgoKRXhhbXBsZToKCmBgYHNoCmRvY2tlciBydW4gLS1ybSAtdiAiJHtQV0R9Oi9sb2NhbCIgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgICAtZyBnbyBcCiAgICAtbyAvbG9jYWwvb3V0L2dvCmBgYAoKVGhlIGdlbmVyYXRlZCBjb2RlIHdpbGwgYmUgbG9jYXRlZCB1bmRlciBgLi9vdXQvZ29gIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCiMjIyMgT3BlbkFQSSBHZW5lcmF0b3IgT25saW5lIERvY2tlciBJbWFnZQoKVGhlIG9wZW5hcGktZ2VuZXJhdG9yLW9ubGluZSBpbWFnZSBjYW4gYWN0IGFzIGEgc2VsZi1ob3N0ZWQgd2ViIGFwcGxpY2F0aW9uIGFuZCBBUEkgZm9yIGdlbmVyYXRpbmcgY29kZS4gVGhpcyBjb250YWluZXIgY2FuIGJlIGluY29ycG9yYXRlZCBpbnRvIGEgQ0kgcGlwZWxpbmUsIGFuZCByZXF1aXJlcyBhdCBsZWFzdCB0d28gSFRUUCByZXF1ZXN0cyBhbmQgc29tZSBkb2NrZXIgb3JjaGVzdHJhdGlvbiB0byBhY2Nlc3MgZ2VuZXJhdGVkIGNvZGUuCgpFeGFtcGxlIHVzYWdlOgoKYGBgc2gKIyBTdGFydCBjb250YWluZXIgYXQgcG9ydCA4ODg4IGFuZCBzYXZlIHRoZSBjb250YWluZXIgaWQKPiBDSUQ9JChkb2NrZXIgcnVuIC1kIC1wIDg4ODg6ODA4MCBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lKQoKIyBhbGxvdyBmb3Igc3RhcnR1cAo+IHNsZWVwIDEwCgojIEdldCB0aGUgSVAgb2YgdGhlIHJ1bm5pbmcgY29udGFpbmVyIChvcHRpb25hbCkKR0VOX0lQPSQoZG9ja2VyIGluc3BlY3QgLS1mb3JtYXQgJ3t7Lk5ldHdvcmtTZXR0aW5ncy5JUEFkZHJlc3N9fScgICRDSUQpCgojIEV4ZWN1dGUgYW4gSFRUUCByZXF1ZXN0IHRvIGdlbmVyYXRlIGEgUnVieSBjbGllbnQKPiBjdXJsIC1YIFBPU1QgLS1oZWFkZXIgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLS1oZWFkZXIgJ0FjY2VwdDogYXBwbGljYXRpb24vanNvbicgXAotZCAneyJvcGVuQVBJVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIn0nIFwKJ2h0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9hcGkvZ2VuL2NsaWVudHMvcnVieScKCnsiY29kZSI6ImMyZDQ4My4zLjQ2NzItNDBlOS05MWRmLWI5ZmZkMThkMjJiOCIsImxpbmsiOiJodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9kb3dubG9hZC9jMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgifQoKIyBEb3dubG9hZCB0aGUgZ2VuZXJhdGVkIHppcCBmaWxlCj4gd2dldCBodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9kb3dubG9hZC9jMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgKCiMgVW56aXAgdGhlIGZpbGUKPiB1bnppcCBjMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgKCiMgU2h1dGRvd24gdGhlIG9wZW5hcGkgZ2VuZXJhdG9yIGltYWdlCj4gZG9ja2VyIHN0b3AgJENJRCAmJiBkb2NrZXIgcm0gJENJRApgYGAKCiMjIyMgRGV2ZWxvcG1lbnQgaW4gZG9ja2VyCgpZb3UgY2FuIHVzZSBgcnVuLWluLWRvY2tlci5zaGAgdG8gZG8gYWxsIGRldmVsb3BtZW50LiBUaGlzIHNjcmlwdCBtYXBzIHlvdXIgbG9jYWwgcmVwb3NpdG9yeSB0byBgL2dlbmAKaW4gdGhlIGRvY2tlciBjb250YWluZXIuIEl0IGFsc28gbWFwcyBgfi8ubTIvcmVwb3NpdG9yeWAgdG8gdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBsb2NhdGlvbi4KClRvIGV4ZWN1dGUgYG12biBwYWNrYWdlYDoKCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yCmNkIG9wZW5hcGktZ2VuZXJhdG9yCi4vcnVuLWluLWRvY2tlci5zaCBtdm4gcGFja2FnZQpgYGAKCkJ1aWxkIGFydGlmYWN0cyBhcmUgbm93IGFjY2Vzc2libGUgaW4geW91ciB3b3JraW5nIGRpcmVjdG9yeS4KCk9uY2UgYnVpbHQsIGBydW4taW4tZG9ja2VyLnNoYCB3aWxsIGFjdCBhcyBhbiBleGVjdXRhYmxlIGZvciBvcGVuYXBpLWdlbmVyYXRvci1jbGkuIFRvIGdlbmVyYXRlIGNvZGUsIHlvdSdsbCBuZWVkIHRvIG91dHB1dCB0byBhIGRpcmVjdG9yeSB1bmRlciBgL2dlbmAgKGUuZy4gYC9nZW4vb3V0YCkuIEZvciBleGFtcGxlOgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIGhlbHAgIyBFeGVjdXRlcyAnaGVscCcgY29tbWFuZCBmb3Igb3BlbmFwaS1nZW5lcmF0b3ItY2xpCi4vcnVuLWluLWRvY2tlci5zaCBsaXN0ICMgRXhlY3V0ZXMgJ2xpc3QnIGNvbW1hbmQgZm9yIG9wZW5hcGktZ2VuZXJhdG9yLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggZ2VuZXJhdGUgLWkgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAgLWcgZ28gLW8gL2dlbi9vdXQvZ28tcGV0c3RvcmUgLXAgcGFja2FnZU5hbWU9cGV0c3RvcmUgIyBnZW5lcmF0ZXMgZ28gY2xpZW50LCBvdXRwdXRzIGxvY2FsbHkgdG8gLi9vdXQvZ28tcGV0c3RvcmUKYGBgCgojIyMjIyBUcm91Ymxlc2hvb3RpbmcKCklmIGFuIGVycm9yIGxpa2UgdGhpcyBvY2N1cnMsIGp1c3QgZXhlY3V0ZSB0aGUgKiouL212bncgY2xlYW4gaW5zdGFsbCAtVSoqIGNvbW1hbmQ6Cgo+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLkxpZmVjeWNsZUV4ZWN1dGlvbkV4Y2VwdGlvbjogRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luOjIuMTkuMTp0ZXN0IChkZWZhdWx0LXRlc3QpIG9uIHByb2plY3Qgb3BlbmFwaS1nZW5lcmF0b3I6IEEgdHlwZSBpbmNvbXBhdGliaWxpdHkgb2NjdXJyZWQgd2hpbGUgZXhlY3V0aW5nIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1zdXJlZmlyZS1wbHVnaW46Mi4xOS4xOnRlc3Q6IGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgY2Fubm90IGJlIGNhc3QgdG8gamF2YS5pby5JT0V4Y2VwdGlvbgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIC4vbXZudyBjbGVhbiBpbnN0YWxsIC1VCmBgYAoKPiBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsIG9yZy5mb3J0YXNvZnQ6Z3JhZGxlLW1hdmVuLXBsdWdpbjoxLjAuODppbnZva2UgKGRlZmF1bHQpIG9uIHByb2plY3Qgb3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbi1tdm4td3JhcHBlcjogb3JnLmdyYWRsZS50b29saW5nLkJ1aWxkRXhjZXB0aW9uOiBDb3VsZCBub3QgZXhlY3V0ZSBidWlsZCB1c2luZyBHcmFkbGUgZGlzdHJpYnV0aW9uICdodHRwczovL3NlcnZpY2VzLmdyYWRsZS5vcmcvZGlzdHJpYnV0aW9ucy9ncmFkbGUtNC43LWJpbi56aXAnCgpSaWdodCBub3c6IG5vIHNvbHV0aW9uIGZvciB0aGlzIG9uZSA6fAoKIyMjIyBSdW4gRG9ja2VyIGluIFZhZ3JhbnQKUHJlcmVxdWlzaXRlOiBpbnN0YWxsIFtWYWdyYW50XShodHRwczovL3d3dy52YWdyYW50dXAuY29tL2Rvd25sb2Fkcy5odG1sKSBhbmQgW1ZpcnR1YWxCb3hdKGh0dHBzOi8vd3d3LnZpcnR1YWxib3gub3JnL3dpa2kvRG93bmxvYWRzKS4KIGBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLmdpdApjZCBvcGVuYXBpLWdlbmVyYXRvcgp2YWdyYW50IHVwCnZhZ3JhbnQgc3NoCmNkIC92YWdyYW50Ci4vcnVuLWluLWRvY2tlci5zaCAuL212bncgcGFja2FnZQpgYGAKCiMjIyBbMS43IC0gTlBNXSgjdGFibGUtb2YtY29udGVudHMpCgpUaGVyZSBpcyBhbHNvIGFuIFtOUE0gcGFja2FnZSB3cmFwcGVyXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkgYXZhaWxhYmxlIGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zIChlLmcuIExpbnV4LCBNYWMsIFdpbmRvd3MpLiAoSlZNIGlzIHN0aWxsIHJlcXVpcmVkKQpQbGVhc2Ugc2VlIHRoZSBbcHJvamVjdCdzIFJFQURNRV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIHRoZXJlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKSW5zdGFsbCBpdCBnbG9iYWxseSB0byBnZXQgdGhlIENMSSBhdmFpbGFibGUgb24gdGhlIGNvbW1hbmQgbGluZToKCmBgYHNoCm5wbSBpbnN0YWxsIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpIC1nCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCmBgYAoKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+ClRvIHVzZSBhIHNwZWNpZmljIHZlcnNpb24gb2YgIm9wZW5hcGktZ2VuZXJhdG9yLWNsaSIKCmBgYHNoCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uLW1hbmFnZXIgc2V0IDcuOC4wCmBgYAoKT3IgaW5zdGFsbCBpdCBhcyBkZXYtZGVwZW5kZW5jeToKCmBgYHNoCm5wbSBpbnN0YWxsIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpIC1ECmBgYAo8IS0tIC9SRUxFQVNFX1ZFUlNJT04gLS0+CgojIyMjIFVzZSBsb2NhbGx5IGJ1aWx0IEpBUgpJbiBvcmRlciB0byB1c2UgYSBsb2NhbGx5IGJ1aWx0IGphciBvZiB0aGUgZ2VuZXJhdG9yIENMSSwgeW91IGNhbiBjb3B5IHRoZSBqYXIgZnJvbSB5b3VyIGxvY2FsIGJ1aWxkIChpLmUuIGlmIHlvdSB3ZXJlIHRvIGBidWlsZGAgdGhpcyByZXBvc2l0b3J5IGl0IHdvdWxkIGJlIGluIGB+L29wZW5hcGktZ2VuZXJhdG9yL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyYCkgaW50byBgLi9ub2RlX21vZHVsZXMvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdmVyc2lvbnMvYCBhbmQgY2hhbmdlIHRoZSBgdmVyc2lvbmAgaW4gdGhlIGBvcGVuYXBpdG9vbHMuanNvbmAgZmlsZSB0byB0aGUgYmFzZSBuYW1lIG9mIHRoZSBqYXIgZmlsZS4KRS5nLjoKYGBgc2gKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKLi9tdm53IGNsZWFuIHBhY2thZ2UKY3AgLi9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciAveW91ci9wcm9qZWN0L25vZGVfbW9kdWxlcy9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS92ZXJzaW9ucy9teS1sb2NhbC1zbmFwc2hvdC5qYXIKYGBgCmFuZCB0aGVuOgpgYGBqc29uCnsKICAiJHNjaGVtYSI6ICIuL25vZGVfbW9kdWxlcy9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS9jb25maWcuc2NoZW1hLmpzb24iLAogICJzcGFjZXMiOiAyLAogICJnZW5lcmF0b3ItY2xpIjogewogICAgInZlcnNpb24iOiAibXktbG9jYWwtc25hcHNob3QiLAogIH0KfQpgYGAKCiMjIyMgVXNlIG5pZ2h0bHkgYFNOQVBTSE9UYCBidWlsZApDaGFuZ2UgeW91ciBgb3BlbmFwaXRvb2xzLmpzb25gIHRvOgoKYGBganNvbgp7CiAgIiRzY2hlbWEiOiAibm9kZV9tb2R1bGVzL0BvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL2NvbmZpZy5zY2hlbWEuanNvbiIsCiAgInNwYWNlcyI6IDIsCiAgImdlbmVyYXRvci1jbGkiOiB7CiAgICAidmVyc2lvbiI6ICI3LjkuMC0yMDI0MDgyOS4xMjM0MzEtMjIiLAogICAgInJlcG9zaXRvcnkiOiB7CiAgICAgICJkb3dubG9hZFVybCI6ICJodHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuOS4wLVNOQVBTSE9UL29wZW5hcGktZ2VuZXJhdG9yLWNsaS0ke3ZlcnNpb25OYW1lfS5qYXIiCiAgICB9CiAgfQp9CmBgYAooZXhhbXBsZSBpcyB3aXRoIGEgc25hcHNob3Qgb2YgYDcuOS4wYCwgcGxlYXNlIGNoYW5nZSB0aGUgYHZlcnNpb25gIGFuZCBgZG93bmxvYWRVcmxgIGFjY29yZGluZ2x5KQoKIyMgWzIgLSBHZXR0aW5nIFN0YXJ0ZWRdKCN0YWJsZS1vZi1jb250ZW50cykKClRvIGdlbmVyYXRlIGEgUEhQIGNsaWVudCBmb3IgW3BldHN0b3JlLnlhbWxdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sKSwgcGxlYXNlIHJ1biB0aGUgZm9sbG93aW5nCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yCmNkIG9wZW5hcGktZ2VuZXJhdG9yCi4vbXZudyBjbGVhbiBwYWNrYWdlCmphdmEgLWphciBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBnZW5lcmF0ZSBcCiAgIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAgLWcgcGhwIFwKICAgLW8gL3Zhci90bXAvcGhwX2FwaV9jbGllbnQKYGBgCihpZiB5b3UncmUgb24gV2luZG93cywgcmVwbGFjZSB0aGUgbGFzdCBjb21tYW5kIHdpdGggYGphdmEgLWphciBtb2R1bGVzXG9wZW5hcGktZ2VuZXJhdG9yLWNsaVx0YXJnZXRcb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBnZW5lcmF0ZSAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCAtZyBwaHAgLW8gYzpcdGVtcFxwaHBfYXBpX2NsaWVudGApCgo8IS0tIFJFTEVBU0VfVkVSU0lPTiAtLT4KWW91IGNhbiBhbHNvIGRvd25sb2FkIHRoZSBKQVIgKGxhdGVzdCByZWxlYXNlKSBkaXJlY3RseSBmcm9tIFttYXZlbi5vcmddKGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjguMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy44LjAuamFyKQo8IS0tIC9SRUxFQVNFX1ZFUlNJT04gLS0+CgpUbyBnZXQgYSBsaXN0IG9mICoqZ2VuZXJhbCoqIG9wdGlvbnMgYXZhaWxhYmxlLCBwbGVhc2UgcnVuIGBqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgaGVscCBnZW5lcmF0ZWAKClRvIGdldCBhIGxpc3Qgb2YgUEhQIHNwZWNpZmllZCBvcHRpb25zICh3aGljaCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBnZW5lcmF0b3Igd2l0aCBhIGNvbmZpZyBmaWxlIHZpYSB0aGUgYC1jYCBvcHRpb24pLCBwbGVhc2UgcnVuIGBqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgY29uZmlnLWhlbHAgLWcgcGhwYAoKIyMgWzMgLSBVc2FnZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIFRvIGdlbmVyYXRlIGEgc2FtcGxlIGNsaWVudCBsaWJyYXJ5CllvdSBjYW4gYnVpbGQgYSBjbGllbnQgYWdhaW5zdCB0aGUgW1BldHN0b3JlIEFQSV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwpIGFzIGZvbGxvd3M6CgpgYGBzaAouL2Jpbi9nZW5lcmF0ZS1zYW1wbGVzLnNoIC4vYmluL2NvbmZpZ3MvamF2YS1va2h0dHAtZ3Nvbi55YW1sCmBgYAoKKE9uIFdpbmRvd3MsIHBsZWFzZSBpbnN0YWxsIFtHSVQgQmFzaCBmb3IgV2luZG93c10oaHR0cHM6Ly9naXRmb3J3aW5kb3dzLm9yZy8pIHRvIHJ1biB0aGUgY29tbWFuZCBhYm92ZSkKClRoaXMgc2NyaXB0IHVzZXMgdGhlIGRlZmF1bHQgbGlicmFyeSwgd2hpY2ggaXMgYG9raHR0cC1nc29uYC4gSXQgd2lsbCBydW4gdGhlIGdlbmVyYXRvciB3aXRoIHRoaXMgY29tbWFuZDoKCmBgYHNoCmphdmEgLWphciBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBnZW5lcmF0ZSBcCiAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogIC1nIGphdmEgXAogIC10IG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL21haW4vcmVzb3VyY2VzL0phdmEgXAogIC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzIGFydGlmYWN0SWQ9cGV0c3RvcmUtb2todHRwLWdzb24saGlkZUdlbmVyYXRpb25UaW1lc3RhbXA9dHJ1ZSBcCiAgLW8gc2FtcGxlcy9jbGllbnQvcGV0c3RvcmUvamF2YS9va2h0dHAtZ3NvbgpgYGAKCndpdGggYSBudW1iZXIgb2Ygb3B0aW9ucy4gW1RoZSBqYXZhIG9wdGlvbnMgYXJlIGRvY3VtZW50ZWQgaGVyZS5dKGRvY3MvZ2VuZXJhdG9ycy9qYXZhLm1kKQoKWW91IGNhbiBhbHNvIGdldCB0aGUgb3B0aW9ucyB3aXRoIHRoZSBgaGVscCBnZW5lcmF0ZWAgY29tbWFuZCAoYmVsb3cgb25seSBzaG93cyBwYXJ0aWFsIHJlc3VsdHMpOgoKYGBgCk5BTUUKICAgICAgICBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgLSBHZW5lcmF0ZSBjb2RlIHdpdGggdGhlIHNwZWNpZmllZAogICAgICAgIGdlbmVyYXRvci4KClNZTk9QU0lTCiAgICAgICAgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlCiAgICAgICAgICAgICAgICBbKC1hIDxhdXRob3JpemF0aW9uPiB8IC0tYXV0aCA8YXV0aG9yaXphdGlvbj4pXQogICAgICAgICAgICAgICAgWy0tYXBpLW5hbWUtc3VmZml4IDxhcGkgbmFtZSBzdWZmaXg+XSBbLS1hcGktcGFja2FnZSA8YXBpIHBhY2thZ2U+XQogICAgICAgICAgICAgICAgWy0tYXJ0aWZhY3QtaWQgPGFydGlmYWN0IGlkPl0gWy0tYXJ0aWZhY3QtdmVyc2lvbiA8YXJ0aWZhY3QgdmVyc2lvbj5dCiAgICAgICAgICAgICAgICBbKC1jIDxjb25maWd1cmF0aW9uIGZpbGU+IHwgLS1jb25maWcgPGNvbmZpZ3VyYXRpb24gZmlsZT4pXSBbLS1kcnktcnVuXQogICAgICAgICAgICAgICAgWygtZSA8dGVtcGxhdGluZyBlbmdpbmU+IHwgLS1lbmdpbmUgPHRlbXBsYXRpbmcgZW5naW5lPildCiAgICAgICAgICAgICAgICBbLS1lbmFibGUtcG9zdC1wcm9jZXNzLWZpbGVdCiAgICAgICAgICAgICAgICBbKC1nIDxnZW5lcmF0b3IgbmFtZT4gfCAtLWdlbmVyYXRvci1uYW1lIDxnZW5lcmF0b3IgbmFtZT4pXQogICAgICAgICAgICAgICAgWy0tZ2VuZXJhdGUtYWxpYXMtYXMtbW9kZWxdIFstLWdpdC1ob3N0IDxnaXQgaG9zdD5dCiAgICAgICAgICAgICAgICBbLS1naXQtcmVwby1pZCA8Z2l0IHJlcG8gaWQ+XSBbLS1naXQtdXNlci1pZCA8Z2l0IHVzZXIgaWQ+XQogICAgICAgICAgICAgICAgWy0tZ2xvYmFsLXByb3BlcnR5IDxnbG9iYWwgcHJvcGVydGllcz4uLi5dIFstLWdyb3VwLWlkIDxncm91cCBpZD5dCiAgICAgICAgICAgICAgICBbLS1odHRwLXVzZXItYWdlbnQgPGh0dHAgdXNlciBhZ2VudD5dCiAgICAgICAgICAgICAgICBbKC1pIDxzcGVjIGZpbGU+IHwgLS1pbnB1dC1zcGVjIDxzcGVjIGZpbGU+KV0KICAgICAgICAgICAgICAgIFstLWlnbm9yZS1maWxlLW92ZXJyaWRlIDxpZ25vcmUgZmlsZSBvdmVycmlkZSBsb2NhdGlvbj5dCiAgICAgICAgICAgICAgICBbLS1pbXBvcnQtbWFwcGluZ3MgPGltcG9ydCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnN0YW50aWF0aW9uLXR5cGVzIDxpbnN0YW50aWF0aW9uIHR5cGVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWludm9rZXItcGFja2FnZSA8aW52b2tlciBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFstLWxhbmd1YWdlLXNwZWNpZmljLXByaW1pdGl2ZXMgPGxhbmd1YWdlIHNwZWNpZmljIHByaW1pdGl2ZXM+Li4uXQogICAgICAgICAgICAgICAgWy0tbGVnYWN5LWRpc2NyaW1pbmF0b3ItYmVoYXZpb3JdIFstLWxpYnJhcnkgPGxpYnJhcnk+XQogICAgICAgICAgICAgICAgWy0tbG9nLXRvLXN0ZGVycl0gWy0tbWluaW1hbC11cGRhdGVdCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1uYW1lLXByZWZpeCA8bW9kZWwgbmFtZSBwcmVmaXg+XQogICAgICAgICAgICAgICAgWy0tbW9kZWwtbmFtZS1zdWZmaXggPG1vZGVsIG5hbWUgc3VmZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLXBhY2thZ2UgPG1vZGVsIHBhY2thZ2U+XQogICAgICAgICAgICAgICAgWygtbyA8b3V0cHV0IGRpcmVjdG9yeT4gfCAtLW91dHB1dCA8b3V0cHV0IGRpcmVjdG9yeT4pXSBbKC1wIDxhZGRpdGlvbmFsIHByb3BlcnRpZXM+IHwgLS1hZGRpdGlvbmFsLXByb3BlcnRpZXMgPGFkZGl0aW9uYWwgcHJvcGVydGllcz4pLi4uXQogICAgICAgICAgICAgICAgWy0tcGFja2FnZS1uYW1lIDxwYWNrYWdlIG5hbWU+XSBbLS1yZWxlYXNlLW5vdGUgPHJlbGVhc2Ugbm90ZT5dCiAgICAgICAgICAgICAgICBbLS1yZW1vdmUtb3BlcmF0aW9uLWlkLXByZWZpeF0KICAgICAgICAgICAgICAgIFstLXJlc2VydmVkLXdvcmRzLW1hcHBpbmdzIDxyZXNlcnZlZCB3b3JkIG1hcHBpbmdzPi4uLl0KICAgICAgICAgICAgICAgIFsoLXMgfCAtLXNraXAtb3ZlcndyaXRlKV0gWy0tc2VydmVyLXZhcmlhYmxlcyA8c2VydmVyIHZhcmlhYmxlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1za2lwLXZhbGlkYXRlLXNwZWNdIFstLXN0cmljdC1zcGVjIDx0cnVlL2ZhbHNlIHN0cmljdCBiZWhhdmlvcj5dCiAgICAgICAgICAgICAgICBbKC10IDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+IHwgLS10ZW1wbGF0ZS1kaXIgPHRlbXBsYXRlIGRpcmVjdG9yeT4pXQogICAgICAgICAgICAgICAgWy0tdHlwZS1tYXBwaW5ncyA8dHlwZSBtYXBwaW5ncz4uLi5dIFsoLXYgfCAtLXZlcmJvc2UpXQoKT1BUSU9OUwogICAgICAgIC1hIDxhdXRob3JpemF0aW9uPiwgLS1hdXRoIDxhdXRob3JpemF0aW9uPgogICAgICAgICAgICBhZGRzIGF1dGhvcml6YXRpb24gaGVhZGVycyB3aGVuIGZldGNoaW5nIHRoZSBPcGVuQVBJIGRlZmluaXRpb25zCiAgICAgICAgICAgIHJlbW90ZWx5LiBQYXNzIGluIGEgVVJMLWVuY29kZWQgc3RyaW5nIG9mIG5hbWU6aGVhZGVyIHdpdGggYSBjb21tYQogICAgICAgICAgICBzZXBhcmF0aW5nIG11bHRpcGxlIHZhbHVlcwoKLi4uLi4uIChyZXN1bHRzIG9taXR0ZWQpCgogICAgICAgIC12LCAtLXZlcmJvc2UKICAgICAgICAgICAgdmVyYm9zZSBtb2RlCgpgYGAKCllvdSBjYW4gdGhlbiBjb21waWxlIGFuZCBydW4gdGhlIGNsaWVudCwgYXMgd2VsbCBhcyB1bml0IHRlc3RzIGFnYWluc3QgaXQ6CgpgYGBzaApjZCBzYW1wbGVzL2NsaWVudC9wZXRzdG9yZS9qYXZhL29raHR0cC1nc29uCm12biBwYWNrYWdlCmBgYAoKT3RoZXIgZ2VuZXJhdG9ycyBoYXZlIFtzYW1wbGVzXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3RyZWUvbWFzdGVyL3NhbXBsZXMpIHRvby4KCiMjIyBbMy4xIC0gQ3VzdG9taXphdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKUGxlYXNlIHJlZmVyIHRvIFtjdXN0b21pemF0aW9uLm1kXShkb2NzL2N1c3RvbWl6YXRpb24ubWQpIG9uIGhvdyB0byBjdXN0b21pemUgdGhlIG91dHB1dCAoZS5nLiBwYWNrYWdlIG5hbWUsIHZlcnNpb24pCgojIyMgWzMuMiAtIFdvcmtmbG93IEludGVncmF0aW9uIChNYXZlbiwgR3JhZGxlLCBHaXRodWIsIENJL0NEKV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKUGxlYXNlIHJlZmVyIHRvIFtpbnRlZ3JhdGlvbi5tZF0oZG9jcy9pbnRlZ3JhdGlvbi5tZCkgb24gaG93IHRvIGludGVncmF0ZSBPcGVuQVBJIGdlbmVyYXRvciB3aXRoIE1hdmVuLCBHcmFkbGUsIHNidCwgQmF6ZWwsIEdpdGh1YiBhbmQgQ0kvQ0QuCgojIyMgWzMuMyAtIE9ubGluZSBPcGVuQVBJIGdlbmVyYXRvcl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKSGVyZSBhcmUgdGhlIHB1YmxpYyBvbmxpbmUgc2VydmljZXM6CgotIGxhdGVzdCBzdGFibGUgdmVyc2lvbjogaHR0cHM6Ly9hcGkub3BlbmFwaS1nZW5lcmF0b3IudGVjaAotIGxhdGVzdCBtYXN0ZXI6IGh0dHBzOi8vYXBpLWxhdGVzdC1tYXN0ZXIub3BlbmFwaS1nZW5lcmF0b3IudGVjaCAodXBkYXRlZCB3aXRoIGxhdGVzdCBtYXN0ZXIgZXZlcnkgaG91cikKClRoZSBzZXJ2ZXIgaXMgc3BvbnNvcmVkIGJ5IFtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKSBbIVtMaW5vZGUgTG9nb10oaHR0cHM6Ly93d3cubGlub2RlLmNvbS9tZWRpYS9pbWFnZXMvbG9nb3Mvc3RhbmRhcmQvbGlnaHQvbGlub2RlLWxvZ29fc3RhbmRhcmRfbGlnaHRfc21hbGwucG5nKV0oaHR0cHM6Ly93d3cubGlub2RlLmNvbS8pCgooVGhlc2Ugc2VydmljZXMgYXJlIGJldGEgYW5kIGRvIG5vdCBoYXZlIGFueSBndWFyYW50ZWUgb24gc2VydmljZSBsZXZlbCkKClBsZWFzZSByZWZlciB0byBbb25saW5lLm1kXShkb2NzL29ubGluZS5tZCkgb24gaG93IHRvIHJ1biBhbmQgdXNlIHRoZSBgb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lYCAtIGEgd2ViIHNlcnZpY2UgZm9yIGBvcGVuYXBpLWdlbmVyYXRvcmAuCgojIyMgWzMuNCAtIExpY2Vuc2UgaW5mb3JtYXRpb24gb24gR2VuZXJhdGVkIENvZGVdKCN0YWJsZS1vZi1jb250ZW50cykKClRoZSBPcGVuQVBJIEdlbmVyYXRvciBwcm9qZWN0IGlzIGludGVuZGVkIGFzIGEgYmVuZWZpdCBmb3IgdXNlcnMgb2YgdGhlIE9wZW4gQVBJIFNwZWNpZmljYXRpb24uICBUaGUgcHJvamVjdCBpdHNlbGYgaGFzIHRoZSBbTGljZW5zZV0oIzctLS1saWNlbnNlKSBhcyBzcGVjaWZpZWQuIEluIGFkZGl0aW9uLCBwbGVhc2UgdW5kZXJzdGFuZCB0aGUgZm9sbG93aW5nIHBvaW50czoKCiogVGhlIHRlbXBsYXRlcyBpbmNsdWRlZCB3aXRoIHRoaXMgcHJvamVjdCBhcmUgc3ViamVjdCB0byB0aGUgW0xpY2Vuc2VdKCM3LS0tbGljZW5zZSkuCiogR2VuZXJhdGVkIGNvZGUgaXMgaW50ZW50aW9uYWxseSBfbm90XyBzdWJqZWN0IHRvIHRoZSBwYXJlbnQgcHJvamVjdCBsaWNlbnNlCgpXaGVuIGNvZGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBwcm9qZWN0LCBpdCBzaGFsbCBiZSBjb25zaWRlcmVkICoqQVMgSVMqKiBhbmQgb3duZWQgYnkgdGhlIHVzZXIgb2YgdGhlIHNvZnR3YXJlLiAgVGhlcmUgYXJlIG5vIHdhcnJhbnRpZXMtLWV4cHJlc3NlZCBvciBpbXBsaWVkLS1mb3IgZ2VuZXJhdGVkIGNvZGUuICBZb3UgY2FuIGRvIHdoYXQgeW91IHdpc2ggd2l0aCBpdCwgYW5kIG9uY2UgZ2VuZXJhdGVkLCB0aGUgY29kZSBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IGFuZCBzdWJqZWN0IHRvIHRoZSBsaWNlbnNpbmcgdGVybXMgdGhhdCB5b3UgZGVlbSBhcHByb3ByaWF0ZS4KCiMjIyBbMy41IC0gSURFIEludGVncmF0aW9uXSgjdGFibGUtb2YtY29udGVudHMpCgpIZXJlIGlzIGEgbGlzdCBvZiBjb21tdW5pdHktY29udHJpYnV0ZWQgSURFIHBsdWctaW5zIHRoYXQgaW50ZWdyYXRlIHdpdGggT3BlbkFQSSBHZW5lcmF0b3I6CgotIEVjbGlwc2U6IFtDb2Rld2luZCBPcGVuQVBJIFRvb2xzIGZvciBFY2xpcHNlXShodHRwczovL3d3dy5lY2xpcHNlLm9yZy9jb2Rld2luZC9vcGVuLWFwaS10b29scy1mb3ItZWNsaXBzZS5odG1sKSBieSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tKQotIEludGVsbGlKIElERUE6IFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzg0MzMtb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vamltc2NodWJlcnQudXMvIy8pCi0gSW50ZWxsaUogSURFQTogW1NlbnlhIEVkaXRvcl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzEwNjkwLXNlbnlhLWVkaXRvcikgYnkgW3NlbnlhLmlvXShodHRwczovL3NlbnlhLmlvKQotIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwczovL3d3dy5yZXByZXplbi5jb20vKQotIFZpc3VhbCBTdHVkaW86IFtSRVNUIEFQSSBDbGllbnQgQ29kZSBHZW5lcmF0b3JdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFwaUNsaWVudENvZGVHZW5lcmF0b3IpIGJ5IFtDaHJpc3RpYW4gUmVzbWEgSGVsbGVdKGh0dHBzOi8vY2hyaXN0aWFuLWhlbGxlLmJsb2dzcG90LmNvbS8pCi0gVmlzdWFsIFN0dWRpbyBDb2RlOiBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUlCTS5jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBieSBbSUJNXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vcHVibGlzaGVycy9JQk0pCgoKIyMgWzQgLSBDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKSGVyZSBhcmUgc29tZSBjb21wYW5pZXMvcHJvamVjdHMgKGFscGhhYmV0aWNhbCBvcmRlcikgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3IgaW4gcHJvZHVjdGlvbi4gVG8gYWRkIHlvdXIgY29tcGFueS9wcm9qZWN0IHRvIHRoZSBsaXN0LCBwbGVhc2UgdmlzaXQgW1JFQURNRS5tZF0oUkVBRE1FLm1kKSBhbmQgY2xpY2sgb24gdGhlIGljb24gdG8gZWRpdCB0aGUgcGFnZS4KCi0gW0FhbGJvcmcgVW5pdmVyc2l0eV0oaHR0cHM6Ly93d3cuYWF1LmRrKQotIFthY3QgY29kaW5nXShodHRwczovL2dpdGh1Yi5jb20vYWN0Y29kaW5nKQotIFtBZGFwdGFudCBTb2x1dGlvbnMgQUddKGh0dHBzOi8vd3d3LmFkYXB0YW50LmlvLykKLSBbYWRlc3NvIFNFXShodHRwczovL3d3dy5hZGVzc28uZGUvKQotIFtBZHllbl0oaHR0cHM6Ly93d3cuYWR5ZW4uY29tLykKLSBbQWdvZGFdKGh0dHBzOi8vd3d3LmFnb2RhLmNvbS8pCi0gW0FpcnRoaW5nc10oaHR0cHM6Ly93d3cuYWlydGhpbmdzLmNvbS8pCi0gW0FsZXJpIFNvbHV0aW9ucyBHbWJoXShodHRwczovL3d3dy5hbGVyaS5kZS8pCi0gW0FsbGlhbnpdKGh0dHBzOi8vd3d3LmFsbGlhbnouY29tKQotIFtBbmd1bGFyLlNjaHVsZV0oaHR0cHM6Ly9hbmd1bGFyLnNjaHVsZS8pCi0gW0Fxb3ZpYV0oaHR0cHM6Ly9hcW92aWEuY29tLykKLSBbQXVzdHJhbGlhIGFuZCBOZXcgWmVhbGFuZCBCYW5raW5nIEdyb3VwIChBTlopXShodHRwOi8vd3d3LmFuei5jb20vKQotIFtBcmR1aW5vXShodHRwczovL3d3dy5hcmR1aW5vLmNjLykKLSBbQVNLVUxdKGh0dHBzOi8vd3d3LmFza3VsLmNvLmpwKQotIFtBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpXShodHRwczovL2F3cy5hbWF6b24uY29tLykKLSBbYjw+Y29tXShodHRwczovL2ItY29tLmNvbS9lbikKLSBb55m+5bqm6JCl6ZSAXShodHRwczovL2UuYmFpZHUuY29tKQotIFtCYW5kd2lkdGhdKGh0dHBzOi8vZGV2LmJhbmR3aWR0aC5jb20pCi0gW0JhbnphaSBDbG91ZF0oaHR0cHM6Ly9iYW56YWljbG91ZC5jb20pCi0gW0JJTURhdGEuaW9dKGh0dHBzOi8vYmltZGF0YS5pbykKLSBbQml0aG9zdCBHbWJIXShodHRwczovL3d3dy5iaXRob3N0LmNoKQotIFtCb3NjaCBDb25uZWN0ZWQgSW5kdXN0cnldKGh0dHBzOi8vd3d3LmJvc2NoLWNvbm5lY3RlZC1pbmR1c3RyeS5jb20pCi0gW0JveGV2ZXJdKGh0dHBzOi8vd3d3LmJveGV2ZXIuY29tLykKLSBbQnJldnldKGh0dHBzOi8vd3d3LmJyZXZ5LmNvbSkKLSBbQnVua2VyIEhvbGRpbmcgR3JvdXBdKGh0dHBzOi8vd3d3LmJ1bmtlci1ob2xkaW5nLmNvbS8pCi0gW0NhbGlmb3JuaWEgU3RhdGUgVW5pdmVyc2l0eSwgTm9ydGhyaWRnZV0oaHR0cHM6Ly93d3cuY3N1bi5lZHUpCi0gW0NBTV0oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC8pCi0gW0NhbXB0b2NhbXBdKGh0dHBzOi8vd3d3LmNhbXB0b2NhbXAuY29tL2VuKQotIFtDYXJsc2JlcmcgR3JvdXBdKGh0dHBzOi8vd3d3LmNhcmxzYmVyZ2dyb3VwLmNvbS8pCi0gW0NocmlzdG9waGVyIFF1ZWVuIENvbnN1bHRpbmddKGh0dHBzOi8vd3d3LmNocmlzdG9waGVycXVlZW5jb25zdWx0aW5nLmNvbS8pCi0gW0Npc2NvXShodHRwczovL3d3dy5jaXNjby5jb20vKQotIFtjb2RlY2VudHJpYyBBR10oaHR0cHM6Ly93d3cuY29kZWNlbnRyaWMuZGUvKQotIFtDb2luQVBJXShodHRwczovL3d3dy5jb2luYXBpLmlvLykKLSBbQ29tbWVuY2lzXShodHRwczovL3d3dy5jb21tZW5jaXMuY29tLykKLSBbQ29uZmlnQ2F0XShodHRwczovL2NvbmZpZ2NhdC5jb20vKQotIFtjcm9ubiBHbWJIXShodHRwczovL3d3dy5jcm9ubi5kZS8pCi0gW0Nyb3Nzb3ZlciBIZWFsdGhdKGh0dHBzOi8vY3Jvc3NvdmVyaGVhbHRoLmNvbS8pCi0gW0N1cGl4XShodHRwczovL3d3dy5jdXBpeC5jb20vKQotIFtEYXRhZG9nXShodHRwczovL3d3dy5kYXRhZG9naHEuY29tKQotIFtEQiBTeXN0ZWxdKGh0dHBzOi8vd3d3LmRic3lzdGVsLmRlKQotIFtEZWVwb3J1dGUuYWldKGh0dHBzOi8vd3d3LmRlZXByb3V0ZS5haS8pCi0gW0RldnN1cHBseV0oaHR0cHM6Ly93d3cuZGV2c3VwcGx5LmNvbS8pCi0gW2RtVEVDSCBHbWJIXShodHRwczovL3d3dy5kbVRFQ0guZGUpCi0gW0RvY1NwcmluZ10oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLykKLSBbZHdhbmdvXShodHRwczovL2R3YW5nby5jby5qcC8pCi0gW0VkZ2UgSW1wdWxzZV0oaHR0cHM6Ly93d3cuZWRnZWltcHVsc2UuY29tLykKLSBbRWxlbWVudCBBSV0oaHR0cHM6Ly93d3cuZWxlbWVudGFpLmNvbS8pCi0gW0VtYm90aWNzXShodHRwczovL3d3dy5lbWJvdGljcy5jb20vKQotIFtlbWluZW9dKGh0dHBzOi8vd3d3LmVtaW5lby5jaCkKLSBbZmFzdGx5XShodHRwczovL3d3dy5mYXN0bHkuY29tLykKLSBbRmVuZXJnb10oaHR0cHM6Ly93d3cuZmVuZXJnby5jb20vKQotIFtmcmVlZV0oaHR0cHM6Ly9jb3JwLmZyZWVlLmNvLmpwL2VuLykKLSBbRnJlc2hDZWxsc10oaHR0cHM6Ly93d3cuZnJlc2hjZWxscy5kZS8pCi0gW0Z1c2VdKGh0dHBzOi8vd3d3LmZ1c2Uubm8vKQotIFtHYW50bmVyXShodHRwczovL3d3dy5nYW50bmVyLmNvbSkKLSBbR2VuRmxvd10oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL0dlbkZsb3cpCi0gW0dldFlvdXJHdWlkZV0oaHR0cHM6Ly93d3cuZ2V0eW91cmd1aWRlLmNvbS8pCi0gW0dsb3ZvXShodHRwczovL2dsb3ZvYXBwLmNvbS8pCi0gW0dNTyBQZXBhYm9dKGh0dHBzOi8vcGVwYWJvLmNvbS9lbi8pCi0gW0dvRGFkZHldKGh0dHBzOi8vZ29kYWRkeS5jb20pCi0gW0d1bXRyZWVdKGh0dHBzOi8vZ3VtdHJlZS5jb20pCi0gW0hlcmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmhlcmUuY29tLykKLSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tLykKLSBbSW5zdGFuYV0oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20pCi0gW0ludGVyeGlvbl0oaHR0cHM6Ly93d3cuaW50ZXJ4aW9uLmNvbSkKLSBbSW5xdWlzaWNvXShodHRwczovL2lucXVpc2ljby5jb20pCi0gW0p1c3RTdGFyXShodHRwczovL3d3dy5qdXN0c3RhcmluZm8uY29tKQotIFtrNi5pb10oaHR0cHM6Ly9rNi5pby8pCi0gW0tsYXJuYV0oaHR0cHM6Ly93d3cua2xhcm5hLmNvbS8pCi0gW0tyb25zb2Z0IERldmVsb3BtZW50XShodHRwczovL3d3dy5rcm9uc29mdC5yby9ob21lLykKLSBbS3ViZXJuZXRlc10oaHR0cHM6Ly9rdWJlcm5ldGVzLmlvKQotIFtMYW5kZXNoYXVwdHN0YWR0IE3DvG5jaGVuIC0gaXRATV0oaHR0cHM6Ly9tdWVuY2hlbi5kaWdpdGFsL2l0LWF0LW0vKQotIFtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKQotIFtMb2dpY2Ryb3BdKGh0dHBzOi8vd3d3LmxvZ2ljZHJvcC5jb20pCi0gW0x1bWVyaXNdKGh0dHBzOi8vd3d3Lmx1bWVyaXMuY29tKQotIFtMVk0gVmVyc2ljaGVydW5nZW5dKGh0dHBzOi8vd3d3Lmx2bS5kZSkKLSBbTWFpbFNsdXJwXShodHRwczovL3d3dy5tYWlsc2x1cnAuY29tKQotIFtNYW50aWNvcmUgU2VhcmNoXShodHRwczovL21hbnRpY29yZXNlYXJjaC5jb20pCi0gW01hc3RlcmNhcmRdKGh0dHBzOi8vZGV2ZWxvcGVycy5tYXN0ZXJjYXJkLmNvbSkKLSBbTcOpZGlhdmlzaW9uXShodHRwczovL3d3dy5tZWRpYXZpc2lvbi5mci8pCi0gW01ldGFzd2l0Y2hdKGh0dHBzOi8vd3d3Lm1ldGFzd2l0Y2guY29tLykKLSBbTW9vblZpc2lvbl0oaHR0cHM6Ly93d3cubW9vbnZpc2lvbi5pby8pCi0gW015d29ya291dF0oaHR0cHM6Ly9teXdvcmtvdXQuY29tKQotIFtOYW1Tb3JdKGh0dHBzOi8vd3d3Lm5hbXNvci5jb20vKQotIFtOZXZlcmZhaWxdKGh0dHBzOi8vd3d3Lm5ldmVyZmFpbC5jb20vKQotIFtOZXVlckVuZXJneV0oaHR0cHM6Ly9uZXVlcmVuZXJneS5jb20pCi0gW05va2lhXShodHRwczovL3d3dy5ub2tpYS5jb20vKQotIFtPbmVTaWduYWxdKGh0dHBzOi8vd3d3Lm9uZXNpZ25hbC5jb20vKQotIFtPcHRpb25zIENsZWFyaW5nIENvcnBvcmF0aW9uIChPQ0MpXShodHRwczovL3d3dy50aGVvY2MuY29tLykKLSBbT3BlbmV0XShodHRwczovL3d3dy5vcGVuZXQuY29tLykKLSBbb3BlblZBTElEQVRJT05dKGh0dHBzOi8vb3BlbnZhbGlkYXRpb24uaW8vKQotIFtPcmFjbGVdKGh0dHBzOi8vd3d3Lm9yYWNsZS5jb20vKQotIFtQYXhvc10oaHR0cHM6Ly93d3cucGF4b3MuY29tKQotIFtQbGFpZF0oaHR0cHM6Ly9wbGFpZC5jb20pCi0gW1BMQUlELCBJbmMuXShodHRwczovL3BsYWlkLmNvLmpwLykKLSBbUGludGVyZXN0XShodHRwczovL3d3dy5waW50ZXJlc3QuY29tKQotIFtQb25pY29kZV0oaHR0cHM6Ly9wb25pY29kZS5kZXYvKQotIFtQcmljZWZ4XShodHRwczovL3d3dy5wcmljZWZ4LmNvbS8pCi0gW1ByaW50TmFubnldKGh0dHBzOi8vd3d3LnByaW50LW5hbm55LmNvbS8pCi0gW1Byb21ldGhldXMvQWxlcnRtYW5hZ2VyXShodHRwczovL2dpdGh1Yi5jb20vcHJvbWV0aGV1cy9hbGVydG1hbmFnZXIpCi0gW1FhdmFyXShodHRwczovL3d3dy5xYXZhci5jb20pCi0gW1FFRElUXShodHRwczovL3FlZC1pdC5jb20pCi0gW1FvdmVyeV0oaHR0cHM6Ly9xb3ZlcnkuY29tKQotIFtRdWxpeCBTeXN0ZW1zXShodHRwczovL3d3dy5xdWxpeC5jb20pCi0gW1Jha3N1bF0oaHR0cHM6Ly9jb3JwLnJha3N1bC5jb20pCi0gW1JhaWZmZWlzZW4gU2Nod2VpeiBHZW5vc3NlbnNjaGFmdF0oaHR0cHM6Ly93d3cucmFpZmZlaXNlbi5jaCkKLSBbUmVkSGF0XShodHRwczovL3d3dy5yZWRoYXQuY29tKQotIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwczovL3d3dy5yZXByZXplbi5jb20vc3dhZ2dlci1vcGVuYXBpLWNvZGUtZ2VuZXJhdGlvbi1hcGktZmlyc3QtbWljcm9zZXJ2aWNlcy1lbnRlcnByaXNlLWRldmVsb3BtZW50KQotIFtSRVNUIFVuaXRlZF0oaHR0cHM6Ly9yZXN0dW5pdGVkLmNvbSkKLSBbUm9ib2NvcnBdKGh0dHBzOi8vd3d3LnJvYm9jb3JwLmNvbSkKLSBbUm9ib3RpbmZyYV0oaHR0cHM6Ly93d3cucm9ib3RpbmZyYS5jb20pCi0gW1NlYXJjaEFwaV0oaHR0cHM6Ly93d3cuc2VhcmNoYXBpLmlvLykKLSBbU21hcnRIUl0oaHR0cHM6Ly9zbWFydGhyLmNvLmpwLykKLSBbU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50XShodHRwczovL3d3dy5zaWUuY29tL2VuL2luZGV4Lmh0bWwpCi0gW1NwbGl0aXRdKGh0dHBzOi8vd3d3LnNwbGl0aXQuY29tLykKLSBbU3RpbmdyYXldKGh0dHA6Ly93d3cuc3RpbmdyYXkuY29tKQotIFtTdXZhXShodHRwczovL3d3dy5zdXZhLmNoLykKLSBbU3ZpeF0oaHR0cHM6Ly93d3cuc3ZpeC5jb20vKQotIFtUZWxzdHJhXShodHRwczovL2Rldi50ZWxzdHJhLmNvbSkKLSBbVGVuY2VudF0oaHR0cHM6Ly93d3cudGVuY2VudC5jb20pCi0gW1RoZSBVbml2ZXJzaXR5IG9mIEFpenVdKGh0dHBzOi8vd3d3LnUtYWl6dS5hYy5qcC9lbi8pCi0gW1RyYW5zbHVjZW50IEFwU10oaHR0cHM6Ly93d3cudHJhbnNsdWNlbnQuZGspCi0gW1RyYXZlbFRpbWUgcGxhdGZvcm1dKGh0dHBzOi8vd3d3LnRyYXZlbHRpbWVwbGF0Zm9ybS5jb20vKQotIFtUcmliYWxTY2FsZV0oaHR0cHM6Ly93d3cudHJpYmFsc2NhbGUuY29tKQotIFtUcmlmb3JrXShodHRwczovL3RyaWZvcmsuY29tKQotIFtUVUkgSW5mb1RlYyBHbWJIXShodHRwOi8vd3d3LnR1aS1pbmZvdGVjLmNvbS8pCi0gW1R3aWxpb10oaHR0cHM6Ly93d3cudHdpbGlvLmNvbS8pCi0gW1R3aXR0ZXJdKGh0dHBzOi8vdHdpdHRlci5jb20pCi0gW3VuYmx1IGluYy5dKGh0dHBzOi8vd3d3LnVuYmx1LmNvbS8pCi0gW1ZlYW1seV0oaHR0cHM6Ly93d3cudmVhbWx5LmNvbS8pCi0gW1ZNV2FyZV0oaHR0cHM6Ly93d3cudm13YXJlLmNvbS8pCi0gW3didC1zb2x1dGlvbnNdKGh0dHBzOi8vd3d3LndidC1zb2x1dGlvbnMuZGUvKQotIFtXb2xlZXRdKGh0dHBzOi8vd3d3LndvbGVldC5pby8pCi0gW1dTTzJdKGh0dHBzOi8vd3NvMi5jb20vKQotIFtWb3VjaGVyeS5pb10oaHR0cHM6Ly92b3VjaGVyeS5pbykKLSBbWGVyb10oaHR0cHM6Ly93d3cueGVyby5jb20vKQotIFtZYWhvbyBKYXBhbl0oaHR0cHM6Ly93d3cueWFob28uY28uanAvKQotIFt2aWFkZWVdKGh0dHBzOi8vd3d3LnZpYWRlZS5kZS8pCi0gW1ZvbmFnZV0oaHR0cHM6Ly92b25hZ2UuY29tKQotIFtZSVRVIFRlY2hub2xvZ3ldKGh0dHBzOi8vd3d3LnlpdHV0ZWNoLmNvbS8pCi0gW1llbHBdKGh0dHBzOi8vd3d3LnllbHAuY29tLykKLSBbWmFsYW5kb10oaHR0cHM6Ly93d3cuemFsYW5kby5jb20pCi0gWzNEUyBPdXRzY2FsZV0oaHR0cHM6Ly93d3cub3V0c2NhbGUuY29tLykKCiMjIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjdGFibGUtb2YtY29udGVudHMpCgotIDIwMTgvMDUvMTIgLSBbT3BlbkFQSSBHZW5lcmF0b3IgLSBjb21tdW5pdHkgZHJpdmVu44Gn5oiQ6ZW344GZ44KL44Kz44O844OJ44K444Kn44ON44Os44O844K/XShodHRwczovL2Fja2ludG9zaC5naXRodWIuaW8vYmxvZy8yMDE4LzA1LzEyL29wZW5hcGktZ2VuZXJhdG9yLykgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSAyMDE4LzA1LzE1IC0gW1N0YXJ0aW5nIGEgbmV3IG9wZW4tc291cmNlIHByb2plY3RdKGh0dHA6Ly9qbWluaS5naXRodWIuaW8vYmxvZy8yMDE4LzIwMTgtMDUtMTVfbmV3LW9wZW4tc291cmNlLXByb2plY3QuaHRtbCkgYnkgW0plcmVtaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKQotIDIwMTgvMDUvMTUgLSBbUkVTVCBBUEnku5Xmp5jjgYvjgolBUEnjgq/jg6njgqTjgqLjg7Pjg4jjgoTjgrnjgr/jg5bjgrXjg7zjg5DjgpLoh6rli5XnlJ/miJDjgZnjgovjgIxPcGVuQVBJIEdlbmVyYXRvcuOAjeOCquODvOODl+ODs+OCveODvOOCueOBp+WFrOmWi+OAglN3YWdnZXIgQ29kZWdlbuOBi+OCieOBruODleOCqeODvOOCr10oaHR0cHM6Ly93d3cucHVibGlja2V5MS5qcC9ibG9nLzE4L3Jlc3RfYXBpYXBpb3BlbmFwaV9nZW5lcmF0b3Jzd2FnZ2VyX2dlbmVyYXRvci5odG1sKSBieSBbUHVibGlja2V5XShodHRwczovL3d3dy5wdWJsaWNrZXkxLmpwKQotIDIwMTgvMDYvMDggLSBbU3dhZ2dlciBDb2RlZ2VuIGlzIG5vdyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hbmd1bGFyLnNjaHVsZS9ibG9nLzIwMTgtMDYtc3dhZ2dlci1jb2RlZ2VuLWlzLW5vdy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW0pvaGFubmVzSG9wcGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9Kb2hhbm5lc0hvcHBlKQotIDIwMTgvMDYvMjEgLSBbQ29ubmVjdCB5b3VyIEpIaXBzdGVyIGFwcHMgdG8gdGhlIHdvcmxkIG9mIEFQSXMgd2l0aCBPcGVuQVBJIGFuZCBnUlBDXShodHRwczovL2ZyLnNsaWRlc2hhcmUubmV0L2NoYm9ybmV0L2poaXBzdGVyLWNvbmYtMjAxOC1jb25uZWN0LXlvdXItamhpcHN0ZXItYXBwcy10by10aGUtd29ybGQtb2YtYXBpcy13aXRoLW9wZW5hcGktYW5kLWdycGMpIGJ5IFtDaHJpc3RvcGhlIEJvcm5ldF0oaHR0cHM6Ly9naXRodWIuY29tL2Nib3JuZXQpIGF0IFtKSGlwc3RlciBDb25mIDIwMThdKGh0dHBzOi8vamhpcHN0ZXItY29uZi5naXRodWIuaW8vKQotIDIwMTgvMDYvMjIgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIEdhdGxpbmcgQ2xpZW50IOOCkueUn+aIkOOBl+OBpuOBv+OBn10oaHR0cHM6Ly9yb2hraS5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE4LzA2LzIyLzA3MzAwMCkgYXQgW+OCveODouOCteODs10oaHR0cHM6Ly9yb2hraS5oYXRlbmFibG9nLmNvbS8pCi0gMjAxOC8wNi8yNyAtIFtMZXNzb25zIExlYXJuZWQgZnJvbSBMZWFkaW5nIGFuIE9wZW4tU291cmNlIFByb2plY3QgU3VwcG9ydGluZyAzMCsgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS93aW5nMzI4L2xlc3NvbnMtbGVhcm5lZC1mcm9tLWxlYWRpbmctYW4tb3Blbi1zb3VyY2UtcHJvamVjdC1zdXBwb3J0aW5nLTMwLXBsdXMtcHJvZ3JhbW1pbmctbGFuZ3VhZ2VzKSAtIFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkgYXQgW0xpbnV4Q29uICsgQ29udGFpbmVyQ29uICsgQ2xvdWRPcGVuIENoaW5hIDIwMThdKGh0dHA6Ly9iaXQubHkvMndhREtLWCkKLSAyMDE4LzA3LzE5IC0gW09wZW5BUEkgR2VuZXJhdG9yIENvbnRyaWJ1dGlvbiBRdWlja3N0YXJ0IC0gUmluZ0NlbnRyYWwgR28gU0RLXShodHRwczovL21lZGl1bS5jb20vcmluZ2NlbnRyYWwtZGV2ZWxvcGVycy9vcGVuYXBpLWdlbmVyYXRvci1mb3ItZ28tY29udHJpYnV0aW9uLXF1aWNrc3RhcnQtOGNjNzJiZjM3YjUzKSBieSBbSm9obiBXYW5nXShodHRwczovL2dpdGh1Yi5jb20vZ3Jva2lmeSkKLSAyMDE4LzA4LzIyIC0gW09wZW5BUEkgR2VuZXJhdG9y44Gu44OX44Ot44K444Kn44Kv44OI5qeL5oiQ44Gq44Gp44Gu44Oh44OiXShodHRwczovL3lpbm0uaW5mby8yMDE4MDgyMi8pIGJ5IFtZdXN1a2UgSWludW1hXShodHRwczovL2dpdGh1Yi5jb20veWlubSkKLSAyMDE4LzA5LzEyIC0gW1JlcHJlWmVuIGFuZCBPcGVuQVBJIDMuMDogTm93IGlzIHRoZSBUaW1lXShodHRwczovL3d3dy5yZXByZXplbi5jb20vYmxvZy9yZXByZXplbi1vcGVuYXBpLTMuMC11cGdyYWRlLW5vdy1pcy10aGUtdGltZSkgYnkgW01pbGVzIERhZmZpbl0oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL2Jsb2cvYXV0aG9yL21pbGVzLWRhZmZpbikKLSAyMDE4LzEwLzMxIC0gW0Egbm9kZSBwYWNrYWdlIHdyYXBwZXIgZm9yIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vSGFybW9XYXRjaC9vcGVuYXBpLWdlbmVyYXRvci1jbGkpCi0gMjAxOC8xMS8wMyAtIFtPcGVuQVBJIEdlbmVyYXRvciArIGdvbGFuZyArIEZsdXR0ZXIg44Gn44Ki44OX44Oq6ZaL55m6XShodHRwOi8vcnl1aWNoaTExMXN0ZC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE4LzExLzAzLzIxNDAwNSkgYnkgW1J5dWljaGkgRGFpZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9yeXVpY2hpMTExKQotIDIwMTgvMTEvMTUgLSBb5Z+65LqOb3BlbmFwaTMuMOeahHlhbWzmlofku7bnlJ/miJBqYXZh5Luj56CB55qE5LiA5qyh5a6e6Le1XShodHRwczovL2Jsb2cuY3Nkbi5uZXQveXp5MTk5MzkxL2FydGljbGUvZGV0YWlscy84NDAyMzk4MikgYnkgW+eEsemtlOeOi10oaHR0cHM6Ly9tZS5jc2RuLm5ldC95enkxOTkzOTEpCi0gMjAxOC8xMS8xOCAtIFtHZW5lcmF0aW5nIFBIUCBsaWJyYXJ5IGNvZGUgZnJvbSBPcGVuQVBJXShodHRwczovL2xvcm5hamFuZS5uZXQvcG9zdHMvMjAxOC9nZW5lcmF0aW5nLXBocC1saWJyYXJ5LWNvZGUtZnJvbS1vcGVuYXBpKSBieSBbTG9ybmEgSmFuZV0oaHR0cHM6Ly9sb3JuYWphbmUubmV0LykgYXQgW0xPUk5BSkFORSBCbG9nXShodHRwczovL2xvcm5hamFuZS5uZXQvYmxvZykKLSAyMDE4LzExLzE5IC0gW09wZW5BUElzIGFyZSBldmVyeXdoZXJlXShodHRwczovL3lvdXR1LmJlLy1sRG90NFluN0RnKSBieSBbSmVyZW1pZSBCcmVzc29uIChVbmJsdSldKGh0dHBzOi8vZ2l0aHViLmNvbS9qbWluaSkgYXQgW0VjbGlwc2VDb24gRXVyb3BlIDIwMThdKGh0dHBzOi8vd3d3LmVjbGlwc2Vjb24ub3JnL2V1cm9wZTIwMTgpCi0gMjAxOC8xMi8wOSAtIFtvcGVuYXBpLWdlbmVyYXRvciDjgpLjgqvjgrnjgr/jg57jgqTjgrrjgZnjgovmlrnms5VdKGh0dHBzOi8vcWlpdGEuY29tL3dhdGlrby9pdGVtcy8wOTYxMjg3YzAyZWFjOTIxMTU3MikgYnkgW0B3YXRpa29dKGh0dHBzOi8vcWlpdGEuY29tL3dhdGlrbykKLSAyMDE5LzAxLzAzIC0gW0NhbGxpbmcgYSBTd2FnZ2VyIHNlcnZpY2UgZnJvbSBBcGV4IHVzaW5nIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2xla2tpbXdvcmxkLmNvbS8yMDE5LzAxLzAzL2NhbGxpbmctYS1zd2FnZ2VyLXNlcnZpY2UtZnJvbS1hcGV4LXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLykgYnkgW01pa2tlbCBGbGluZHQgSGVpc3RlcmJlcmddKGh0dHBzOi8vbGVra2ltd29ybGQuY29tKQotIDIwMTkvMDEvMTMgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgadSRVNUZnVsIEFQSeOBruWumue+qeabuOOBi+OCieiJsuOAheiHquWLleeUn+aIkOOBmeOCi10oaHR0cHM6Ly9reS15ay1kLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMTkvMDEvMTMvMjM0MTA4KSBieSBbQGt5X3lrX2RdKGh0dHBzOi8vdHdpdHRlci5jb20va3lfeWtfZCkKLSAyMDE5LzAxLzIwIC0gW0NvbnRyYWN0LUZpcnN0IEFQSSBEZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yIGFuZCBDb25uZXhpb25dKGh0dHBzOi8vbWVkaXVtLmNvbS9jb21tZW5jaXMvY29udHJhY3QtZmlyc3QtYXBpLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1nZW5lcmF0b3ItYW5kLWNvbm5leGlvbi1iMjFiYmYyZjkyNDQpIGJ5IFtBbmlsIENhbiBBeWRpbl0oaHR0cHM6Ly9naXRodWIuY29tL2FubGNueWRuKQotIDIwMTkvMDEvMzAgLSBbUmFwaWQgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgV2l0aCBBUEkgRmlyc3QgQXBwcm9hY2ggVXNpbmcgT3Blbi1BUEkgR2VuZXJhdG9yXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9yYXBpZC1hcGktZGV2ZWxvcG1lbnQtdXNpbmctb3Blbi1hcGktZ2VuZXJhdG9yKSBieSBbTWlsYW4gU29ua2FyXShodHRwczovL2R6b25lLmNvbS91c2Vycy84MjgzMjkvbWlsYW5fc29ua2FyLmh0bWwpCi0gMjAxOS8wMi8wMiAtIFvlubPpnZnjgpLkv53jgaHjgIHjgrPjg7zjg4njgpLnlJ/miJDjgZvjgogg44CcIE9wZW5BUEkgR2VuZXJhdG9y6KqV55Sf44Gu6IOM5pmv44Go6LuM6LehIOOAnF0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vYWtpaGl0b19uYWthbm8vZ3VubWF3ZWIzNCkgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkgYXQgW0d1bm1hLndlYiAjMzQg44K544Kt44O844Oe6aeG5YuV6ZaL55m6XShodHRwczovL2d1bm1hd2ViLmNvbm5wYXNzLmNvbS9ldmVudC8xMTM5NzQvKQotIDIwMTkvMDIvMjAgLSBbQW4gYWR2ZW50dXJlIGluIE9wZW5BUEkgVjMgY29kZSBnZW5lcmF0aW9uXShodHRwczovL211eC5jb20vYmxvZy9hbi1hZHZlbnR1cmUtaW4tb3BlbmFwaS12My1hcGktY29kZS1nZW5lcmF0aW9uLykgYnkgW1BoaWwgQ2x1ZmZdKGh0dHBzOi8vbXV4LmNvbS9ibG9nL2F1dGhvci9waGlsYy8pCi0gMjAxOS8wMi8yNiAtIFtCdWlsZGluZyBBUEkgU2VydmljZXM6IEEgQmVnaW5uZXLigJlzIEd1aWRlXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkL2J1aWxkaW5nLWFwaS1zZXJ2aWNlcy1hLWJlZ2lubmVycy1ndWlkZS03Mjc0YWU0YzU0N2YpIGJ5IFtSYXRyb3MgWS5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeSkgaW4gW0dvb2dsZSBDbG91ZCBQbGF0Zm9ybSBCbG9nXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkKQotIDIwMTkvMDIvMjYgLSBbQnVpbGRpbmcgQVBJcyB3aXRoIE9wZW5BUEk6IENvbnRpbnVlZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYXRyb3N5L2J1aWxkaW5nLWFwaXMtd2l0aC1vcGVuYXBpLWNvbnRpbnVlZC01ZDBmYWFlZDMyZWIpIGJ5IFtSYXRyb3MgWS5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeSkgaW4gW0dvb2dsZSBDbG91ZCBQbGF0Zm9ybSBCbG9nXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkKQotIDIwMTktMDMtMDcgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIFNwcmluZyBCb290IOOBqCBBbmd1bGFyIOOCkuOCv+OCpOODl+OCu+ODvOODleOBq+e5i+OBkF0oaHR0cHM6Ly9xaWl0YS5jb20vY2hpYmF0by9pdGVtcy9lNGE3NDhkYjEyNDA5YjQwYzAyZikgYnkgW1RvbW9mdW1pIENoaWJhXShodHRwczovL2dpdGh1Yi5jb20vY2hpYmF0KQotIDIwMTktMDMtMTYgLSBbQSBRdWljayBpbnRyb2R1Y3Rpb24gdG8gbWFudWFsIE9wZW5BUEkgVjNdKGh0dHBzOi8vdmFkb3N3YXJlLmlvL3Bvc3QvcXVpY2staW50cm8tdG8tbWFudWFsLW9wZW5hcGktdjMvKSBieSBbdmFkb3NdKGh0dHBzOi8vZ2l0aHViLmNvbS90M2htcm1hbikgYXQgW1ZBRE9TV0FSRV0oaHR0cHM6Ly92YWRvc3dhcmUuaW8pCi0gMjAxOS0wMy0yNSAtIFtBY2Nlc3MgYW55IFJFU1Qgc2VydmljZSB3aXRoIHRoZSBTQVAgUy80SEFOQSBDbG91ZCBTREtdKGh0dHBzOi8vYmxvZ3Muc2FwLmNvbS8yMDE5LzAzLzI1L2ludGVncmF0ZS1zYXAtczRoYW5hLWNsb3VkLXNkay13aXRoLW9wZW4tYXBpLykgYnkgW0FsZXhhbmRlciBEdWVtb250XShodHRwczovL3Blb3BsZS5zYXAuY29tL2FsZXhhbmRlci5kdWVtb250KQotIDIwMTktMDMtMjUgLSBbT3BlbkFQSSBnZW5lcmF0b3LjgpLoqabjgZfjgabjgb/jgotdKGh0dHBzOi8vcWlpdGEuY29tL2FtdXlpa2FtL2l0ZW1zL2U4YTQ1ZGFhZTU5YzY4YmUwZmM4KSBieSBbQGFtdXlpa2FtXShodHRwczovL3R3aXR0ZXIuY29tL2FtdXlpa2FtKQotIDIwMTktMDMtMjcgLSBbT3BlbkFQSTPjgpLkvb/jgaPjgabjgb/jgojjgYbvvIFHb+iogOiqnuOBp+OCr+ODqeOCpOOCouODs+ODiOOBqOOCueOCv+ODluOBruiHquWLleeUn+aIkOOBvuOBp++8gV0oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9vcGVuYXBpMy9nbykgYnkgW0Bnb2xkX2tvdV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9nb2xkX2tvdSkKLSAyMDE5LTA0LTE3IC0gW09wZW5BUEnjgavjgojjgovjgrnjgq3jg7zjg57jg5XjgqHjg7zjgrnjg4jplovnmbrjga7lrp/mlr3jgrXjg7Pjg5fjg6vjgahDbG91ZCBSdW7jgavjgaTjgYTjgaZdKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwL2VudHJ5LzIwMTkvMDQvMTcvMTc0MDAwKSBieSBbQHl1a2V5MTAzMV0oaHR0cHM6Ly90d2l0dGVyLmNvbS95dWtleTEwMzEpCi0gMjAxOS0wNC0xOCAtIFtIb3cgdG8gdXNlIE9wZW5BUEkzIGZvciBBUEkgZGV2ZWxvcGVyIChSdWJ5S2FpZ2kgMjAxOSldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL290YTQyeS9ob3ctdG8tdXNlLW9wZW5hcGkzLWZvci1hcGktZGV2ZWxvcGVyKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpIGF0IFtSdWJ5S2FpZ2kgMjAxOV0oaHR0cHM6Ly9ydWJ5a2FpZ2kub3JnLzIwMTkpCi0gMjAxOS0wNC0yOSAtIFtBIEJlZ2lubmVyJ3MgR3VpZGUgdG8gQ29kZSBHZW5lcmF0aW9uIGZvciBSRVNUIEFQSXMgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2spIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpCi0gMjAxOS0wNS0wMSAtIFtEZXNpZ24gYW5kIGdlbmVyYXRlIGEgUkVTVCBBUEkgZnJvbSBTd2FnZ2VyIC8gT3BlbkFQSSBpbiBKYXZhLCBQeXRob24sIEMjIGFuZCBtb3JlXShodHRwczovL3NpbXBseS1ob3cuY29tL2Rlc2lnbi1hbmQtZ2VuZXJhdGUtYXBpLWNvZGUtZnJvbS1vcGVuYXBpKSBieSBbU2ltcGx5IEhvd10oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS8pCi0gMjAxOS0wNS0xNyAtIFtHZW5lcmF0ZSBTcHJpbmcgQm9vdCBSRVNUIEFQSSB1c2luZyBTd2FnZ2VyL09wZW5BUEldKGh0dHBzOi8vd3d3LjQ3bm9ydGhsYWJzLmNvbS9rbm93bGVkZ2UtYmFzZS9nZW5lcmF0ZS1zcHJpbmctYm9vdC1yZXN0LWFwaS11c2luZy1zd2FnZ2VyLW9wZW5hcGkvKSBieSBbQW50b25pZSBaYWZpcm92XShodHRwczovL3d3dy40N25vcnRobGFicy5jb20vYXV0aG9yL2FudG9uaWUtemFmaXJvdi8pCi0gMjAxOS0wNS0yMiAtIFtSRVNUIEFQSXPku6PnoIHnlJ/miJDmjIfljZcoT3BlbkFQSSBHZW5lcmF0b3IpXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9va19nYikgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkKLSAyMDE5LTA1LTI0IC0gW1JFU1QgQVBJIOS7o+eivOeUn+aIkOaMh+WNlyAoT3BlbkFQSSBHZW5lcmF0b3IpXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9va19iaWc1KSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTktMDYtMjQgLSBbS3ViZXJuZXRlcyBDbGllbnRzIGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9rdWJlcm5ldGVzLWNsaWVudHMtYW5kLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KSBhdCBbS3ViZXJuZXRlcyBDb250cmlidXRvciBTdW1taXRzIFNoYW5naGFpIDIwMTldKGh0dHBzOi8vd3d3LmxmYXNpYWxsYy5jb20vZXZlbnRzL2NvbnRyaWJ1dG9ycy1zdW1taXQtY2hpbmEtMjAxOS8pCi0gMjAxOS0wNi0yOCBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy9jb250ZW50L2NvZGV3aW5kLW9wZW5hcGktdG9vbHMpIGluIFtFY2xpcHNlIE1hcmtldHBsYWNlXShodHRwczovL21hcmtldHBsYWNlLmVjbGlwc2Uub3JnLykgYnkgSUJNCi0gMjAxOS0wNi0yOSBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUlCTS5jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBpbiBbVmlzdWFsIFN0dWRpbyBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tLykgYnkgSUJNCi0gMjAxOS0wNy0wNCAtIFtSRVNUIEFQSSDjga7jgZ/jgoHjga7jgrPjg7zjg4jjgpnnlJ/miJDlhaXploAgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfYmlnNSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpLCBb5ZKM55Sw5ouT5pyXXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKQotIDIwMTktMDctMDggLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44Gr44Kz44Oz44OI44Oq44OT44Ol44O844OI44GX44Gf44KJ56S+5ZCN44GM6LyJ44Gj44Gf6Kmx44CCKENBTSkgLSBDQU0gVEVDSCBCTE9HXShodHRwczovL3RlY2guY2FtLWluYy5jby5qcC9lbnRyeS8yMDE5LzA3LzA4LzE0MDAwMCkgYnkgW0NBTSwgSW5jLl0oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC8pCi0gMjAxOS0wNy0xNCAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBp1B5dGhvbuOBruOCr+ODqeOCpOOCouODs+ODiOODqeOCpOODluODqeODquOCkuS9nOaIkOOBl+OBn10oaHR0cHM6Ly9xaWl0YS5jb20veXVqaTM4a3dtdC9pdGVtcy9kZmI5MjkzMTZhMTMzNWExNjFjMCkgYnkgW3l1amkzOGt3bXRdKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQpCi0gMjAxOS0wNy0xOSAtIFtEZXZlbG9wZXIgRXhwZXJpZW5jZSAoRFgpIGZvciBPcGVuLVNvdXJjZSBQcm9qZWN0czogSG93IHRvIEVuZ2FnZSBEZXZlbG9wZXJzIGFuZCBCdWlsZCBhIEdyb3dpbmcgRGV2ZWxvcGVyIENvbW11bml0eV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9kZXZlbG9wZXItZXhwZXJpZW5jZS1keC1mb3Itb3Blbi1zb3VyY2UtcHJvamVjdHMtZW5nbGlzaC1qYXBhbmVzZSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtPcGVuIFNvdXJjZSBTdW1taXQgSmFwYW4gMjAxOV0oaHR0cHM6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9ldmVudHMvb3Blbi1zb3VyY2Utc3VtbWl0LWphcGFuLTIwMTkvKQotIDIwMTktMDgtMTQgLSBbT3VyIE9wZW5BUEkgam91cm5leSB3aXRoIFN0YW5kYXJkaXppbmcgU0RLc10oaHR0cHM6Ly9iaXRtb3Zpbi5jb20vb3VyLW9wZW5hcGktam91cm5leS13aXRoLXN0YW5kYXJkaXppbmctc2Rrcy8pIGJ5IFtTZWJhc3RpYW4gQnVyZ3N0YWxsZXJdKGh0dHBzOi8vYml0bW92aW4uY29tL2F1dGhvci9zYnVyZ3N0YWxsZXIvKSBhdCBbQml0bW92aW5dKGh0dHBzOi8vd3d3LmJpdG1vdmluLmNvbSkKLSAyMDE5LTA4LTE1IC0gW0FQSeOBruOCs+ODvOODieOCkuiHquWLleeUn+aIkOOBleOBm+OBn+OBhOOBoOOBkeOBquOCiWdSUEPjgafjgarjgY/jgabjgoLjgojjgY/jgarjgYQ/XShodHRwczovL3d3dy5tM3RlY2guYmxvZy9lbnRyeS8yMDE5LzA4LzE1LzExMDAwMCkgYnkgW00zLCBJbmMuXShodHRwczovL2NvcnBvcmF0ZS5tMy5jb20vKQotIDIwMTktMDgtMjIgLSBb44Oe44Kk44Kv44Ot44K144O844OT44K544Gr44GK44GR44KLV2ViIEFQSeOCueOCreODvOODnuOBrueuoeeQhuKUgCBHcmFwaFFM44CBZ1JQQ+OAgU9wZW5BUEnjga7nibnlvrTjgajkvb/jgYTjganjgZPjgo1dKGh0dHBzOi8vZW1wbG95bWVudC5lbi1qYXBhbi5jb20vZW5naW5lZXJodWIvZW50cnkvMjAxOS8wOC8yMi8xMDMwMDApIGJ5IFtAb3RhNDJ5XShodHRwczovL3R3aXR0ZXIuY29tL290YTQyeSkKLSAyMDE5LTA4LTI0IC0gW1N3YWdnZXLjg4njgq3jg6Xjg6Hjg7Pjg4jjgYvjgolPcGVuQVBJIEdlbmVyYXRvcuOCkuS9v+OBo+OBpuODouODg+OCr+OCteODvOODkOODvOS9nOaIkF0oaHR0cHM6Ly9xaWl0YS5jb20vbWFzYXlvc2hpMDIyMi9pdGVtcy80ODQ1ZTRjNzE1ZDA0NTg3YzEwNCkgYnkgW+WdguacrOato+e+qV0oaHR0cHM6Ly9xaWl0YS5jb20vbWFzYXlvc2hpMDIyMikKLSAyMDE5LTA4LTI5IC0gW09wZW5BUEnliJ3mjqJdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL2FydGljbGUvMTQ5NTk4NikgYnkgW3BlYWt4aWVdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL3VzZXIvMTExMzE1MikgYXQgW+iFvuiur+S6keekvuWMul0oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIpCi0gMjAxOS0wOC0yOSAtIFvlhajpnaLov5vljJbvvJpLdWJlcm5ldGVzIENSRCAxLjE2IEdB5YmN5567XShodHRwczovL3d3dy5zZXJ2aWNlbWVzaGVyLmNvbS9ibG9nL2t1YmVybmV0ZXMtMS4xNi1jcmQtZ2EtcHJldmlldy8pIGJ5IFtNaW4gS2ltXShodHRwczovL2dpdGh1Yi5jb20veXVlOTk0NDg4MikgYXQgW1NlcnZpY2VNZXNoZXIgQmxvZ10oaHR0cHM6Ly93d3cuc2VydmljZW1lc2hlci5jb20vYmxvZy8pCi0gMjAxOS0wOS0wMSAtIFtDcmVhdGluZyBhIFBIUC1TbGltIHNlcnZlciB1c2luZyBPcGVuQVBJIChZb3V0dWJlIHZpZGVvKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj01Y0p0Yklyc1lrZykgYnkgW0RhbmllbCBQZXJzc29uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDbkctVE4yM2xzd082UWJ2V2hNdHhwQSkKLSAyMDE5LTA5LTA2IC0gW1ZlcnQueCBhbmQgT3BlbkFQSV0oaHR0cHM6Ly93aXNzZWwubmV0L2Jsb2cvMjAxOS8wOS92ZXJ0eC1hbmQtb3BlbmFwaS5odG1sKSBieSBbU3RlcGhhbiBIIFdpc3NlbF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9ub3Rlc3NlbnNlaSkgYXQgW3dpc3NlbC5uZXQgYmxvZ10oaHR0cHM6Ly93aXNzZWwubmV0KQotIDIwMTktMDktMDkgLSBbQ2xvdWQtbmF0aXZlIGRldmVsb3BtZW50IC0gQ3JlYXRpbmcgUkVTVGZ1bCBtaWNyb3NlcnZpY2VzXShodHRwczovL2Nsb3VkLmlibS5jb20vZG9jcy9jbG91ZC1uYXRpdmU/dG9waWM9Y2xvdWQtbmF0aXZlLXJlc3QtYXBpKSBpbiBbSUJNIENsb3VkIERvY3NdKGh0dHBzOi8vY2xvdWQuaWJtLmNvbS9kb2NzKQotIDIwMTktMDktMTQgLSBbR2VuZXJhdGluZyBhbmQgQ29uZmlndXJpbmcgYSBNYXN0ZXJjYXJkIEFQSSBDbGllbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1hc3RlcmNhcmQuY29tL3BsYXRmb3JtL2RvY3VtZW50YXRpb24vZ2VuZXJhdGluZy1hbmQtY29uZmlndXJpbmctYS1tYXN0ZXJjYXJkLWFwaS1jbGllbnQvKSBhdCBbTWFzdGVyY2FyZCBEZXZlbG9wZXJzIFBsYXRmb3JtXShodHRwczovL2RldmVsb3Blci5tYXN0ZXJjYXJkLmNvbS9wbGF0Zm9ybS9kb2N1bWVudGF0aW9uLykKLSAyMDE5LTA5LTE1IC0gW09wZW5BUEkoU3dhZ2dlcinlsI7lhaXkuIvoqr/jgbldKGh0dHBzOi8vcWlpdGEuY29tL1Nob2ljaGlLdXJhb2thL2l0ZW1zL2YxZjdhM2MyMzc2ZjdjZDljNTZhKSBieSBbU2hvaWNoaSBLdXJhb2thXShodHRwczovL3FpaXRhLmNvbS9TaG9pY2hpS3VyYW9rYSkKLSAyMDE5LTA5LTE3IC0gW1R1dG9yaWFsOiBEb2N1bWVudGluZyBodHRwNGsgQVBJcyB3aXRoIE9wZW5BcGkzXShodHRwczovL3d3dy5odHRwNGsub3JnL3R1dG9yaWFscy9kb2N1bWVudGluZ19hcGlzX3dpdGhfb3BlbmFwaS8pIGJ5IFtodHRwNGtdKGh0dHBzOi8vd3d3Lmh0dHA0ay5vcmcvKQotIDIwMTktMDktMjIgLSBbT3BlbkFQSSAz44KS5a6M5YWo44Gr55CG6Kej44Gn44GN44KL5pysXShodHRwczovL2Jvb3RoLnBtL2phL2l0ZW1zLzE1NzE5MDIpIGJ5IFtAb3RhNDJ5XShodHRwczovL3R3aXR0ZXIuY29tL290YTQyeSkKLSAyMDE5LTA5LTIyIC0gW1JFU1RmdWwgQVBJczogVHV0b3JpYWwgb2YgT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL21lZGl1bS5jb20vQGFtaXJtLmxhdmFzYW5pL3Jlc3RmdWwtYXBpcy10dXRvcmlhbC1vZi1vcGVuYXBpLXNwZWNpZmljYXRpb24tZWVhZGEwZTM5MDFkKSBieSBbQW1pciBMYXZhc2FuaV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWlybS5sYXZhc2FuaSkKLSAyMDE5LTA5LTIyIC0gW1JlZGVmaW5pbmcgU0RLcyBhcyBzb2Z0d2FyZSBkaXZlcnNpdHkga2l0c10oaHR0cHM6Ly9kZXZyZWwubmV0L2Rldi1yZWwvcmVkZWZpbmluZy1zZGtzLWFzLXNvZnR3YXJlLWRpdmVyc2l0eS1raXRzKSBieSBbU2lkIE1hZXN0cmUgKFhlcm8pXShodHRwczovL3R3aXR0ZXIuY29tL3NpZG5leWFsbGVuKSBhdCBbRGV2UmVsQ29uIFNhbiBGcmFuY2lzY28gMjAxOV0oaHR0cHM6Ly9zZjIwMTkuZGV2cmVsLm5ldC8pCi0gMjAxOS0wOS0yMyAtIFtzd2FnZ2Vy44GL44KJT3BlbkFwaSBHZW5lcmF0b3LjgadTcHJpbmfjga7jgrPjg7zjg4njgpLoh6rli5XnlJ/miJBdKGh0dHBzOi8vcWlpdGEuY29tL2xpdHRsZUZlZXQvaXRlbXMvNDkyZGYyYWQ2OGEwNzk5YTVlNWUpIGJ5IFtAbGl0dGxlRmVldF0oaHR0cHM6Ly9xaWl0YS5jb20vbGl0dGxlRmVldCkgYXQgW1FpaXRhXShodHRwczovL3FpaXRhLmNvbS8pCi0gMjAxOS0wOS0yNCAtIFtFaW5lIFN0dW5kZSB3YXMgbWl0IEFwaSBGaXJzdCFdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L0phbldlaW5zY2hlbmtlci9laW5lLXN0dW5kZS13YXMtbWl0LWFwaS1maXJzdCkgYnkgW0BqYW53ZWluc2NoZW5rZXJdKGh0dHBzOi8vdHdpdHRlci5jb20vamFud2VpbnNjaGVua2VyKSBhdCBbSmF2YSBGb3J1bSBOb3JkXShodHRwczovL2phdmFmb3J1bW5vcmQuZGUvKQotIDIwMTktMTAtMDkgLSBbb3BlbmFwaS1nZW5lcmF0b3Ig44Gn55Sf5oiQ44GX44GfIEdvIOOCr+ODqeOCpOOCouODs+ODiOOBpyBCZWFyZXIg6KqN6Ki844KS44GZ44KLXShodHRwczovL2F1dG9wcC10ZWNoLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMTkvMTAvMDkvMjIyMDM5KSBieSBbQWtpcmEgVGFuaW11cmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9hdXRvcHApCi0gMjAxOS0xMC0xMCAtIFtBdXRvbWF0aWMgR2VuZXJhdGlvbiBvZiBSRVNUIENsaWVudHNdKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvQ3JpdGVvLUxhYnMtVGVjaC1UYWxrcy9ldmVudHMvMjY0Nzc1NzY4LykgYnkgVGhvbWFzIFBleXJhcmQsIFNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlciBhdCBDcml0ZW8gaW4gW0Z1bGwtU3RhY2sgVGVjaCBUYWxrcyAoTWVldHVwKV0oaHR0cHM6Ly93d3cubWVldHVwLmNvbS9mci1GUi9Dcml0ZW8tTGFicy1UZWNoLVRhbGtzL2V2ZW50cy8yNjQ3NzU3NjgvKQotIDIwMTktMTAtMTIgLSBbT3BlbkFwaeiHquWKqOeUn+aIkGNsaWVudF0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d4aWQyNzk4MjI2L2FydGljbGUvZGV0YWlscy8xMDI1Mjc0NjcpIGJ5IFvpg5Hms73mtLJdKGh0dHBzOi8vbWUuY3Nkbi5uZXQvd3hpZDI3OTgyMjYpCi0gMjAxOS0xMC0xNiAtIFtIb3cgdG8gc2hpcCBBUElzIGZhc3Rlcj9dKGh0dHBzOi8vbWVkaXVtLmNvbS9AYWNjb3VudHNfNzYyMjQvaG93LXRvLXNoaXAtYXBpcy1mYXN0ZXItY2FiZWYyZjgxOWU0KSBieSBbU2ltb24gR3VpbGxpYW1zIEAgUG9uaUNvZGVdKGh0dHBzOi8vcG9uaWNvZGUuZGV2KQotIDIwMTktMTAtMjIgLSBbT3BlbkFQSSArIFNwcmluZyBCb290KEtvdGxpbinjgafjg5XjgqHjgqTjg6vjg4Djgqbjg7Pjg63jg7zjg4lBUEnjgpLkvZzmiJDjgZnjgotdKGh0dHBzOi8vcWlpdGEuY29tL2Jvcm9ubmdvL2l0ZW1zLzRiNzhiOTI1MjYyMDlkYWVhZWU5KSBieSBbWXVraSBGdXJ1a2F3YV0oaHR0cHM6Ly90d2l0dGVyLmNvbS95dWtpX2Z1cnVrYXdhNSkKLSAyMDE5LTEwLTI0IC0gW01pY3JvcHJvZmlsZSBPcGVuQVBJIC0gQ29kZSBGaXJzdCBvciBEZXNpZ24gRmlyc3Q/XShodHRwczovL2dpdGh1Yi5jb20vcGUtc3QvYXBpZG9jcy9ibG9iL21hc3Rlci9NaWNyb1Byb2ZpbGUtT3BlbkFQSS1hbGwtc2xpZGVzLnBkZikgYnkgW1BldGVyIFtwyZvKg8mZXSBTdGVpbmVyXShodHRwczovL3R3aXR0ZXIuY29tL3Blc2NoZSkgYXQgW2VjbGlwc2Vjb24gRXVyb3BlIDIwMTldKGh0dHBzOi8vd3d3LmVjbGlwc2Vjb24ub3JnL2V1cm9wZTIwMTkvc2Vzc2lvbnMvbWljcm9wcm9maWxlLW9wZW5hcGktY29kZS1maXJzdC1vci1kZXNpZ24tZmlyc3QpCi0gMjAxOS0xMS0wNiAtIFtHZW5lcmF0aW5nIEFQSSBjbGllbnRzIGJhc2VkIG9uIE9wZW5BUEkgdjMgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vOThlbGVtZW50cy5jb20vYmxvZy9nZW5lcmF0aW5nLWFwaS1jbGllbnRzLWJhc2VkLW9uLW9wZW5hcGktdjMtc3BlY2lmaWNhdGlvbnMpIGJ5IFtEb21pbmlrIEphc3RyesSZYnNraSBAIDk4ZWxlbWVudHNdKGh0dHBzOi8vOThlbGVtZW50cy5jb20pCi0gMjAxOS0xMS0wNiAtIFtPcGVuQVBJ44KS5Yip55So44GX44Gm6Ieq5YmN44GuQVBJ44K144O844OQ44O8KFNpbmF0cmEp44KS56e75qSN44GX44Gf5pmC44Gu44Oh44OiXShodHRwczovL3FpaXRhLmNvbS9ZYXN1aGlyb0FCRS9pdGVtcy9jNzM5MjBlYWIyZDlkNmU5N2ZkOSkgYnkgW1lhc3VoaXJvIEFCRV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9ZYXN1aGlyb0FCRSkKLSAyMDE5LTExLTA3IC0gW0FQSSBGaXJzdCBkZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgLSBZb3Ugc2hvdWxkIHlvdSBwcmFjdGlzZSBpdCAhP10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GOWlGM2ExWjhZOCkgYnkgW05pY2sgVmFuIEhvb2ZdKGh0dHBzOi8vd3d3Lm5pY2t2YW5ob29mLmNvbS8pIGF0IFtEZXZveHggQmVsZ2l1bSAyMDE5XShodHRwczovL2Rldm94eC5iZS8pCi0gMjAxOS0xMS0wOCAtIFtKSGlwc3RlciBiZXlvbmQgQ1JVRCAtIEFQSS1GaXJzdCBmb3IgRW50ZXJwcmlzZXMgYnkgRW5yaWNvIENvc3RhbnppXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PW0yOEpGb3ZLUTIwKSBieSBbRW5yaWNvIENvc3RhbnppXShodHRwczovL3R3aXR0ZXIuY29tL2Vucmljb2Nvc3RhbnppKSBhdCBbSkhpcHN0ZXIgQ29uZiAyMDE5IGluIFBhcmlzXShodHRwczovL2poaXBzdGVyLWNvbmYuZ2l0aHViLmlvLykKLSAyMDE5LTExLTExIC0gW1R5cGVTY3JpcHQgUkVTVCBBUEnjgq/jg6njgqTjgqLjg7Pjg4hdKGh0dHBzOi8vcWlpdGEuY29tL3VuaHVycmllZC9pdGVtcy83Yjc0ZjdkM2M0MzU0NWRhZGQyYikgYnkgW0B1bmh1cnJpZWRdKGh0dHBzOi8vcWlpdGEuY29tL3VuaHVycmllZCkKLSAyMDE5LTExLTExIC0gW09uZSBTcGVjIHRvIFJ1bGUgdGhlbSBhbGwgLSBPcGVuQVBJIGluIEFjdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1NTWF5X25odDhlYykgYnkgW0FuZHJlYXMgTGl0dF0oaHR0cHM6Ly9naXRodWIuY29tL2xpdHRsZHIpIGF0IFtjb2RlLnRhbGtzIDIwMTldKGh0dHBzOi8vd3d3LmNvZGV0YWxrcy5jb20vKQotIDIwMTktMTEtMTMgLSBbT3BlbkFQSSAzLjAgRWRpdG9yIEFuZCBHZW5lcmF0b3IgV2l0aCBBIFNwcmluZyBCb290IEV4YW1wbGVdKGh0dHBzOi8vc2ltcGx5LWhvdy5jb20vZGVzaWduLWFuZC1nZW5lcmF0ZS1hcGktY29kZS1mcm9tLW9wZW5hcGkpIGF0IFtTaW1wbHkgSG93XShodHRwczovL3NpbXBseS1ob3cuY29tLykKLSAyMDE5LTExLTE3IC0gW09wZW5BUEkgR2VuZXJhdG9yIFlvdVR1YmUgcGxheWxpc3RdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3BsYXlsaXN0P2xpc3Q9UEx0SnlIVk1kemZGNmZCa09VVjVWRFZFclAyM0NHZ0hJeSkgYXQgW1lvdVR1YmVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tKQotIDIwMTktMTEtMjAgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEldKGh0dHBzOi8vbm90aS5zdC9sb3JuYWphbmUvSHZESDdVL2ludHJvZHVjdGlvbi10by1vcGVuYXBpKSBieSBbTG9ybmEgTWl0Y2hlbGxdKGh0dHBzOi8vdHdpdHRlci5jb20vbG9ybmFqYW5lKSBhdCBbR09UTyBDb3BlbmhhZ2VuIDIwMTldKGh0dHBzOi8vZ290b2NwaC5jb20vMjAxOS8pCi0gMjAxOS0xMS0yMCAtIFtIb3cgdG8gR2VuZXJhdGUgQW5ndWxhciBjb2RlIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb3RuZXR0aG91Z2h0cy5uZXQvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItY29kZS1mcm9tLW9wZW5hcGktc3BlY2lmaWNhdGlvbnMvKSBieSBBbnVyYWoKLSAyMDE5LTExLTIzIC0gW1N3YWdnZXIg44Gn44Gv44Gq44GEIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAg44Gr44KI44KLIEFQSSDjgrXjg7zjg5Djg7zplovnmbpdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L3RlY2hibG9neWFob28vc3dhZ2dlci1vcGVuYXBpLXNwZWNpZmljYXRpb24tMzAtYXBpKSBieSBbVGV0c3V5YSBNb3JpbW90b10oaHR0cHM6Ly9naXRodWIuY29tL3QyeSkgYXQgW0pKVUcgQ0NDIDIwMTkgRmFsbF0oaHR0cHM6Ly9jY2MyMDE5ZmFsbC5qYXZhLXVzZXJzLmpwLykKLSAyMDE5LTExLTI0IC0gW0FjY2VsZXJhdGUgRmx1dHRlciBkZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgYW5kIERhcnQgY29kZSBnZW5lcmF0aW9uXShodHRwczovL21lZGl1bS5jb20vQGlyaW5hc291dGh3ZWxsXzIyMC9hY2NlbGVyYXRlLWZsdXR0ZXItZGV2ZWxvcG1lbnQtd2l0aC1vcGVuYXBpLWFuZC1kYXJ0LWNvZGUtZ2VuZXJhdGlvbi0xZjE2ZjgzMjlhNmEpIGJ5IFtJcmluYSBTb3V0aHdlbGxdKGh0dHBzOi8vbWVkaXVtLmNvbS9AaXJpbmFzb3V0aHdlbGxfMjIwKQotIDIwMTktMTEtMjUgLSBbb3BlbmFwaS1nZW5lcmF0b3LjgafmiYvou73jgavjgrnjgr/jg5bjgrXjg7zjg5Djgajjgq/jg6njgqTjgqLjg7Pjg4jjga7nlJ/miJBdKGh0dHBzOi8vcWlpdGEuY29tL3BvY2hvcG9jaG8xMy9pdGVtcy84ZGI2NjJlMTkzNGZiMmI0MDhiOCkgYnkgW0Bwb2Nob3BvY2hvMTNdKGh0dHBzOi8vdHdpdHRlci5jb20vcG9jaG9wb2NobzEzKQotIDIwMTktMTEtMjYgLSBbQ29yZGFDb24gMjAxOSBIaWdobGlnaHRzOiBCcmFpZCBTZXJ2ZXIgYW5kIE9wZW5BUEkgR2VuZXJhdG9yIGZvciBDb3JkYSBDbGllbnQgQVBJ4oCZc10oaHR0cHM6Ly9ibG9nLmI5bGFiLmNvbS9jb3JkYWNvbi0yMDE5LWhpZ2hsaWdodHMtYnJhaWQtc2VydmVyLWFuZC1vcGVuYXBpLWdlbmVyYXRvci1mb3ItY29yZGEtZmxvd3MtYXBpLXMtZDI0MTc5Y2NiMjdjKSBieSBbQWRlbCBSdXN0dW1dKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vQGFkZWxyZXN0b20pIGF0IFtCOWxhYl0oaHR0cHM6Ly9ibG9nLmI5bGFiLmNvbS8pCi0gMjAxOS0xMi0wMyAtIFtBIFJvYWQgdG8gTGVzcyBDb2Rpbmc6IEF1dG8tR2VuZXJhdGUgQVBJTGlicmFyeV0oaHR0cHM6Ly93d3cuY29yZGEubmV0L2Jsb2cvYS1yb2FkLXRvLWxlc3MtY29kaW5nLWF1dG8tZ2VuZXJhdGUtYXBpbGlicmFyeS8pIGF0IFtDb3JkYSBCbG9nXShodHRwczovL3d3dy5jb3JkYS5uZXQvYmxvZy8pCi0gMjAxOS0xMi0wNCAtIFtBbmd1bGFy77yLTmVzdEpT77yLT3BlbkFQSe+8iFN3YWdnZXLvvInjgafjg57jgqTjgq/jg63jgrXjg7zjg5PjgrnjgpLoppbph47jgavlhaXjgozjgZ/nkrDlooPjgpLogIPjgYjjgotdKGh0dHBzOi8vcWlpdGEuY29tL3RlcmFjeTU1L2l0ZW1zLzAzMjdjN2ExNzBlYzc3Mjk3MGM2KSBieSBb44Gm44KJ44GX44O8XShodHRwczovL3R3aXR0ZXIuY29tL3RlcmFjeTU1KQotIDIwMTktMTItMDUgLSBbQ29kZSBnZW5lcmF0aW9uIG9uIHRoZSBKYXZhIFZNXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9zdWxsaXMvY29kZS1nZW5lcmF0aW9uLW9uLXRoZS1qYXZhLXZtLTIwMTktMTItMDUpIGJ5IFtTZWFuIFN1bGxpdmFuXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9zdWxsaXMpCi0gMjAxOS0xMi0xNyAtIFtPcGVuQVBJIEdlbmVyYXRvciDjgacgT0F1dGgyIOOCouOCr+OCu+OCueODiOODvOOCr+ODs+eZuuihjOOBruOCs+ODvOODieOBvuOBp+eUn+aIkOOBl+OBpuOBv+OCi10oaHR0cHM6Ly93d3cudGVjaHNjb3JlLmNvbS9ibG9nLzIwMTkvMTIvMTcvb3BlbmFwaS1nZW5lcmF0b3Itb2F1dGgyLWFjY2Vzc3Rva2VuLykgYnkgW1RFQ0hTQ09SRV0oaHR0cHM6Ly93d3cudGVjaHNjb3JlLmNvbS9ibG9nLykKLSAyMDE5LTEyLTIzIC0gW1VzZSBBZGEgZm9yIFlvdXIgV2ViIERldmVsb3BtZW50XShodHRwczovL3d3dy5lbGVjdHJvbmljZGVzaWduLmNvbS90ZWNobm9sb2dpZXMvZW1iZWRkZWQtcmV2b2x1dGlvbi9hcnRpY2xlLzIxMTE5MTc3L3VzZS1hZGEtZm9yLXlvdXItd2ViLWRldmVsb3BtZW50KSBieSBbU3RlcGhhbmUgQ2FycmV6XShodHRwczovL2dpdGh1Yi5jb20vc3RjYXJyZXopCi0gMjAxOS0xMi0yMyAtIFtPcGVuQVBJ44Gu44K544Kt44O844Oe44KS5YiG5Ymy44O75qeL6YCg5YyW44GX44Gm44GE44GP5pa55rOVXShodHRwczovL2dpZnQtdGVjaC5jby5qcC9hcnRpY2xlcy9zdHJ1Y3R1cmVkLW9wZW5hcGktc2NoZW1hKSBieSBb5bCP6aOv5aGa6YGU5LmfXShodHRwczovL2dpdGh1Yi5jb20vdDJoNSkgYXQgW0dpRlQsIEluY10oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvKQotIDIwMjAtMDEtMTcgLSBbT3BlbkFQSSBkZW1vIGZvciBQdWxwIDMuMCBHQV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1tRkJQLU0wWlBmdyZ0PTE3OHMpIGJ5IFtQdWxwXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSTQzRmZzNFZQRHY3YXdYdnZCSmZSUSkgYXQgW1lvdXR1YmVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tLykKLSAyMDIwLTAxLTE5IC0gW1doeSBkb2N1bWVudCBhIFJFU1QgQVBJIGFzIGNvZGU/XShodHRwczovL2Rldi50by9yb2xmc3RyZWVma2Vyay93aHktZG9jdW1lbnQtYS1yZXN0LWFwaS1hcy1jb2RlLTVlN3ApIGJ5IFtSb2xmIFN0cmVlZmtlcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9ycHN0cmVlZikgYXQgW0RFViBDb21tdW5pdHldKGh0dHBzOi8vZGV2LnRvKQotIDIwMjAtMDEtMjggLSBbR2V0IFlvdXIgU2VydmVybGVzcyBTd2FnZ2VyIEJhY2sgd2l0aCBPcGVuQVBJXShodHRwczovL2Rldi50by9tYXR0dHlsZXIvZ2V0LXlvdXItc2VydmVybGVzcy1zd2FnZ2VyLWJhY2std2l0aC1vcGVuYXBpLTQ4Z2MpIGJ5IFtNYXR0IFR5bGVyXShodHRwczovL2Rldi50by9tYXR0dHlsZXIpCi0gMjAyMC0wMS0zMCAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBuOOBruOCs+ODs+ODiOODquODk+ODpeODvOODiF0oaHR0cHM6Ly93d3cueXV0YWthMG0ud29yay9lbnRyeS8yMDIwLzAxLzMwLzE2MzkwNSkgYnkgW3l1dGFrYTBtXShodHRwczovL2dpdGh1Yi5jb20veXV0YWthMG0pCi0gMjAyMC0wMi0wMSAtIFtVc2luZyBPcGVuQVBJIHRvIE1heGltaXNlIFlvdXIgUHVscCAzIEV4cGVyaWVuY2VdKGh0dHBzOi8vZm9zZGVtLm9yZy8yMDIwL3NjaGVkdWxlL2V2ZW50L29wZW5hcGkvKSBieSBbRGVubmlzIEtsaWJhbl0oaHR0cHM6Ly9naXRodWIuY29tL2RrbGliYW4vKSBhdCBbRk9TREVNXShodHRwczovL2Zvc2RlbS5vcmcvKQotIDIwMjAtMDItMDcgLSBbV2h5IHlvdSBzaG91bGQgdXNlIE9wZW5BUEkgZm9yIHlvdXIgQVBJIGRlc2lnbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj16aGI3dlVBcExXOCZ0PTkyN3MpIGJ5IFtOaWNrIFZhbiBIb29mXShodHRwczovL2FwaWNvbmZlcmVuY2UubmV0L3NwZWFrZXIvbmljay12YW4taG9vZi8pIGF0IFtBUEkgQ29uZmVyZW5jZV0oaHR0cHM6Ly9hcGljb25mZXJlbmNlLm5ldC8pCi0gMjAyMC0wMi0xNyAtIFtSdWJ5bmV0ZXM6IHVzaW5nIE9wZW5BUEkgdG8gdmFsaWRhdGUgS3ViZXJuZXRlcyBjb25maWdzXShodHRwczovL3d3dy5icmlnaHRib3guY29tL2Jsb2cvMjAyMC8wMi8xNy91c2luZy1vcGVuYXBpLXRvLXZhbGlkYXRlLWt1YmVybmV0ZXMtY29uZmlncy8pIGJ5IE5laWwgV2lsc29uIGF0IFtCcmlnaHRib3hdKGh0dHBzOi8vd3d3LmJyaWdodGJveC5jb20vKQotIDIwMjAtMDItMjAgLSBbQnVpbGRpbmcgU0RLcyBmb3IgdGhlIGZ1dHVyZV0oaHR0cHM6Ly9kZXZibG9nLnhlcm8uY29tL2J1aWxkaW5nLXNka3MtZm9yLXRoZS1mdXR1cmUtYjc5ZmY3MjZkZmQ2KSBieSBbU2lkIE1hZXN0cmUgKFhlcm8pXShodHRwczovL3R3aXR0ZXIuY29tL3NpZG5leWFsbGVuKQotIDIwMjAtMDItMjcgLSBbTnV4dOWIqeeUqOODl+ODreODgOOCr+ODiOOBp0lFMTHjgajku7Loia/jgY/jgZnjgovjgZ/jgoHjga5FMkVdKGh0dHBzOi8vdGVjaC5tZWRwZWVyLmNvLmpwL2VudHJ5L2UyZS1pZTExKSBhdCBbTWVkcGVlci5jby5qcCBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaC5tZWRwZWVyLmNvLmpwLykKLSAyMDIwLTAyLTI5IC0gW1Byb3ZpZGluZyBTdXBwb3J0IHRvIElvVCBEZXZpY2VzIERlcGxveWVkIGluIERpc2Nvbm5lY3RlZCBSdXJhbCBFbnZpcm9ubWVudCAoQ29uZmVyZW5jZSBwYXBlcildKGh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3Lzk3OC0zLTAzMC00MTQ5NC04XzE0KSBieSBTZXJnaW8gTGFzbywgRGFuaWVsIEZsb3Jlcy1NYXJ0w61uLCBKdWFuIEx1aXMgSGVycmVyYUNhcmxvcywgQ2FuYWxKdWFuIE1hbnVlbCwgTXVyaWxsb0phdmllciBCZXJyb2NhbAotIDIwMjAtMDMtMDIgLSBbSG93IFRvIEdlbmVyYXRlIEFuZ3VsYXIgJiBTcHJpbmcgQ29kZSBGcm9tIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cubW9ra2FwcHMuZGUvYmxvZy9ob3ctdG8tZ2VuZXJhdGUtYW5ndWxhci1hbmQtc3ByaW5nLWNvZGUtZnJvbS1vcGVuLWFwaS1zcGVjaWZpY2F0aW9uLykgYnkgW01pY2hhZWwgSG9mZm1hbm5dKGh0dHBzOi8vd3d3Lm1va2thcHBzLmRlLykKLSAyMDIwLTAzLTAyIC0gW09wZW5BUEkgR2VuZXJhdG9yICsgVHlwZVNjcmlwdCDjgaflp4vjgoHjgovoh6rli5XnlJ/miJDjga7lnovjgavlrojjgonjgozjgZ/osYrjgYvjgarjgq/jg6njgqTjgqLjg7Pjg4jnlJ/mtLtdKGh0dHBzOi8vZ2lmdC10ZWNoLmNvLmpwL2FydGljbGVzL29wZW5hcGktZ2VuZXJhdG9yLXR5cGVzY3JpcHQpIGJ5IFvkupTnmb7olLUg55u05qi5XShodHRwczovL2dpZnQtdGVjaC5jby5qcC9tZW1iZXJzL25hb2tpaW9yb2kpIGF0IFtHaUZU5qCq5byP5Lya56S+XShodHRwczovL2dpZnQtdGVjaC5jby5qcC8pCi0gMjAyMC0wMy0xMCAtIFtPcGVuQVBJIEdlbmVyYXRvciBNZWV0dXAgIzFdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2FraWhpdG9fbmFrYW5vL29wZW5hcGktZ2VuZXJhdG9yLW1lZXR1cC1udW1iZXItMSkgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkgYXQgW09wZW5BUEkgR2VuZXJhdG9yIE1lZXR1cCAjMV0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci1tZWV0dXAuY29ubnBhc3MuY29tL2V2ZW50LzE2ODE4Ny8pCi0gMjAyMC0wMy0xNSAtIFtMb2FkIFRlc3RpbmcgWW91ciBBUEkgd2l0aCBTd2FnZ2VyL09wZW5BUEkgYW5kIGs2XShodHRwczovL2s2LmlvL2Jsb2cvbG9hZC10ZXN0aW5nLXlvdXItYXBpLXdpdGgtc3dhZ2dlci1vcGVuYXBpLWFuZC1rNikKLSAyMDIwLTA0LTEzIC0gW+S/uueahOOAkE9BU+OAkeOBqOOBruWQkeOBjeWQiOOBhOaWuSAo54iG6YCf44GnT3BlbkFQSeOBqOWPi+mBlOOBq+OBquOCjeOBhildKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwL2VudHJ5LzIwMjAvMDQvMTMvMTAwMDAwKSBpbiBbT1BUaW0gQmxvZ10oaHR0cHM6Ly90ZWNoLWJsb2cub3B0aW0uY28uanAvKQotIDIwMjAtMDQtMjIgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL25vcmRpY2FwaXMuY29tL2ludHJvZHVjdGlvbi10by1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtLcmlzdG9waGVyIFNhbmRvdmFsXShodHRwczovL25vcmRpY2FwaXMuY29tL2F1dGhvci9zYW5kb3ZhbGVmZmVjdC8pIGluIFtOb3JkaWMgQVBJc10oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS8pCi0gMjAyMC0wNC0yNyAtIFtIb3cgd2UgdXNlIE9wZW4gQVBJIHYzIHNwZWNpZmljYXRpb24gdG8gYXV0by1nZW5lcmF0ZSBBUEkgZG9jdW1lbnRhdGlvbiwgY29kZS1zbmlwcGV0cyBhbmQgY2xpZW50c10oaHR0cHM6Ly9tZWRpdW0uY29tL3BkZi1nZW5lcmF0b3ItYXBpL2hvdy13ZS11c2Utb3Blbi1hcGktdjMtc3BlY2lmaWNhdGlvbi10by1hdXRvLWdlbmVyYXRlLWFwaS1kb2N1bWVudGF0aW9uLWNvZGUtc25pcHBldHMtYW5kLWNsaWVudHMtZDEyN2EzY2VhNzg0KSBieSBbVGFuZWwgVMOkaGVww7VsZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0B0YW5lbC50YWhlcG9sZCkKLSAyMDIwLTA1LTA5IC0gW09wZW5BUEnjgafjgYrmiYvou73jgavjg6Ljg4Pjgq9BUEnjgrXjg7zjg5Djg7zjgpLli5XjgYvjgZldKGh0dHBzOi8vcWlpdGEuY29tL2thc2FfbGUvaXRlbXMvOTdjYTZhOGRkNDYwNTY5NWMyNWMpIGJ5IFtTYWNoaWUgS2FtYmFdKGh0dHBzOi8vcWlpdGEuY29tL2thc2FfbGUpCi0gMjAyMC0wNS0xOCAtIFtTcHJpbmcgQm9vdCBSRVNUIHdpdGggT3BlbkFQSSAzXShodHRwczovL2Rldi50by9hbGZvbnpqYW5mcml0aHovc3ByaW5nLWJvb3QtcmVzdC13aXRoLW9wZW5hcGktMy01OWptKSBieSBbQWxmb256IEphbiBGcml0aHpdKGh0dHBzOi8vZGV2LnRvL2FsZm9uemphbmZyaXRoeikKLSAyMDIwLTA1LTE5IC0gW0RlYWQgU2ltcGxlIEFQSXMgd2l0aCBPcGVuIEFQSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zSWFYbVI2eFJBdykgYnkgW0NocmlzIFRhbmtlcnNsZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9kcmFnb25tYW50YW5rKSBhdCBbTmV4bW9dKGh0dHBzOi8vZGV2ZWxvcGVyLm5leG1vLmNvbS8pCi0gMjAyMC0wNS0yMiAtIFtUeXBlU2NyaXB0IFJFU1QgQVBJIENsaWVudF0oaHR0cHM6Ly9kZXYudG8vdW5odXJyaWVkL3R5cGVzY3JpcHQtcmVzdC1hcGktY2xpZW50LTRpbjMpIGJ5IFsidW5odXJyaWVkIl0oaHR0cHM6Ly9kZXYudG8vdW5odXJyaWVkKQotIDIwMjAtMDUtMjggLSBb44CQ5L2/55SoIGxvdGlmeSArIFN3YWdnZXIg5bu6572u5Y+v5YWx55So55qEIExJTkUgTm90aWZ5IGJvdOOAkSAtICNOaUppYSBAIENoYXRib3QgRGV2ZWxvcGVyIFRhaXdhbiDnrKwgIzE5IOWwj+iBml0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1hZ1lWejZkemgxSSkgYnkgW0NoYXRib3QgRGV2ZWxvcGVyIFRhaXdhbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ3hlWVV5Wk5uSG1wWDIzWU5GLWV3dncpCi0gMjAyMC0wNS0yOCAtIFtCdWlsZGluZyBBUElzIHdpdGggTGFyYXZlbCB1c2luZyBPcGVuQVBJXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXhleEx2UXFBaGlBKSBieSBbQ2hyaXMgVGFua2Vyc2xleV0oaHR0cHM6Ly9naXRodWIuY29tL2RyYWdvbm1hbnRhbmspIGF0IFtMYXJhY29uIEVVXShodHRwczovL2xhcmFjb24uZXUvKQotIDIwMjAtMDYtMTIgLSBbSW50ZXJvcGVyYWJpbGl0eSBieSBjb25zdHJ1Y3Rpb246IGNvZGUgZ2VuZXJhdGlvbiBmb3IgQXJyb3doZWFkIENsaWVudHNdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85Mjc0NzQ2KSBieSBNaWNoZWxlIEFsYmFubywgQnJpYW4gTmllbHNlbiBhdCBbMjAyMCBJRUVFIENvbmZlcmVuY2Ugb24gSW5kdXN0cmlhbCBDeWJlcnBoeXNpY2FsIFN5c3RlbXMgKElDUFMpXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcveHBsL2NvbmhvbWUvOTI3NDU0NC9wcm9jZWVkaW5nKQotIDIwMjAtMDYtMjMgLSBb5paw6KaP44K144O844OQ44O844Ki44OX44Oq44Kx44O844K344On44Oz44GrVHlwZVNjcmlwdOOCkuaOoeeUqOOBl+OBpuOBv+OBn10oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC9uZXdzLzIwMjAwNjIzKSBhdCBbQ0FNIFRlY2ggQmxvZ10oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC9uZXdzL3RlY2gtYmxvZy8pCi0gMjAyMC0wNi0yOSAtIFtBcnRpZmFjdCBBYnN0cmFjdDogRGVwbG95bWVudCBvZiBBUElzIG9uIEFuZHJvaWQgTW9iaWxlIERldmljZXMgYW5kIE1pY3JvY29udHJvbGxlcnNdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85MTI3MzUzKSBieSBbU2VyZ2lvIExhc28gOyBNYXJpbm8gTGluYWplIDsgSm9zZSBHYXJjaWEtQWxvbnNvIDsgSnVhbiBNLiBNdXJpbGxvIDsgSmF2aWVyIEJlcnJvY2FsXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTEyNzM1My9hdXRob3JzI2F1dGhvcnMpIGF0IFsyMDIwIElFRUUgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIFBlcnZhc2l2ZSBDb21wdXRpbmcgYW5kIENvbW11bmljYXRpb25zIChQZXJDb20pXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcveHBsL2NvbmhvbWUvOTEyNTQ0OS9wcm9jZWVkaW5nKQotIDIwMjAtMDctMDcgLSBbNSBCZXN0IEFQSSBEb2N1bWVudGF0aW9uIFRvb2xzXShodHRwczovL2Jsb2cuZHJlYW1mYWN0b3J5LmNvbS81LWJlc3QtYXBpLWRvY3VtZW50YXRpb24tdG9vbHMvKSBieSBTdXNhbm5hIEJvdXNlIGF0IFtEcmVhbUZhY3RvcnkgQmxvZ10oaHR0cHM6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vKQotIDIwMjAtMDctMTIgLSBbT3BlbiBBUEkgMy4w44Gu5a6a576p44GL44KJZ29sYW5n44Gu44K144O844OQ44Kz44O844OJ44Gu44K544Kx44Or44OI44Oz44KS5L2c5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9wcm9mZXNzb3IvaXRlbXMvNGNiZDA0ZWMwODRkMTMwNTdiYzIpIGJ5IFtAcHJvZmVzc29yIChRaWl0YSBCbG9nKV0oaHR0cHM6Ly9xaWl0YS5jb20vcHJvZmVzc29yKQotIDIwMjAtMDctMjAgLSBbRGF0YWRvZyBBUEkgY2xpZW50IGxpYnJhcmllcyBub3cgYXZhaWxhYmxlIGZvciBKYXZhIGFuZCBHb10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9ibG9nL2phdmEtZ28tbGlicmFyaWVzLykgYnkgSm9yZGFuIE9iZXkgYXQgW0RhdGFkb2cgQmxvZ10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9ibG9nKQotIDIwMjAtMDctMjMgLSBbR2VuZXJhdGUgQ2xpZW50IFNESyBmb3IgLk5FVCBDb3JlIHVzaW5nIE9wZW4gQXBpXShodHRwczovL2Rldi50by9ubzBsYXcxL2dlbmVyYXRlLWNsaWVudC1zZGstZm9yLW5ldC1jb3JlLXVzaW5nLW9wZW4tYXBpLTJkZ2gpIGJ5IFtOdW5vIFJlaXNdKGh0dHBzOi8vZGV2LnRvL25vMGxhdzEpCi0gMjAyMC0wNy0yNiAtIFtEYXJ044GuaHR0cF9pbnRlcmNlcHRvcuODqeOCpOODluODqeODquOCkuS9v+OBhuOBqOmFjeWIl+OBruOCr+OCqOODquODkeODqeODoeODvOOCv+OBjOa2iOOBiOOBpuOBl+OBvuOBhuS7tuOBruW/nOaApeWHpue9rl0oaHR0cHM6Ly9xaWl0YS5jb20vZ3lhbW90by9pdGVtcy9lZWVmZjgxYjY3NzA0ODczMTllZCkgYnkgW0BneWFtb3RvXShodHRwczovL3FpaXRhLmNvbS9neWFtb3RvKQotIDIwMjAtMDgtMDEgLSBbR2VuZXJhdGUgQW5ndWxhciBSZWFjdGl2ZUZvcm1zIGZyb20gU3dhZ2dlci9PcGVuQVBJXShodHRwczovL2Rldi50by9tYXJ0aW5tY3dob3J0ZXIvZ2VuZXJhdGUtYW5ndWxhci1yZWFjdGl2ZWZvcm1zLWZyb20tc3dhZ2dlci1vcGVuYXBpLTM1aDkpIGJ5IFtNYXJ0aW4gTWNXaG9ydGVyXShodHRwczovL2Rldi50by9tYXJ0aW5tY3dob3J0ZXIpCi0gMjAyMC0wOC0wMyAtIFtDcmlhbmRvIEJpYmxpb3RlY2FzIHBhcmEgQVBJcyBSRVNUZnVsIGNvbSBPcGVuQVBJLCBTd2FnZ2VyIEVkaXRvciBlIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vQGV2ZXJpc0JyYXNpbC9jcmlhbmRvLWJpYmxpb3RlY2FzLXBhcmEtYXBpcy1yZXN0ZnVsLWNvbS1vcGVuYXBpLXN3YWdnZXItZWRpdG9yLWUtb3BlbmFwaS1nZW5lcmF0b3ItNzUzNDlhNjQyMGZkKSBieSBbZXZlcmlzIEJyYXNpbCAoYW4gTlRUIERBVEEgQ29tcGFueSldKGh0dHBzOi8vbWVkaXVtLmNvbS9AZXZlcmlzQnJhc2lsKQotIDIwMjAtMDgtMTkgLSBb44Oe44Kk44Kv44Ot44K144O844OT44K544KS6YCj5pC644GX44Gm44G/44KI44GGXShodHRwczovL3RoaW5raXQuY28uanAvYXJ0aWNsZS8xNzcwNCkgYnkgW+WyoeS6lSDoo5Xnn6Io44GK44GL44GEIOOChuOBhuOChCldKGh0dHBzOi8vdGhpbmtpdC5jby5qcC9hdXRob3IvMTc1ODgpLCBb5rOJIOWLnSjjgYTjgZrjgb8g44G+44GV44KLKV0oaHR0cHM6Ly90aGlua2l0LmNvLmpwL2F1dGhvci8xNzcwNSkgYXQgW1RoaW5rIElU77yI44K344Oz44Kv44Kk44OD44OI77yJXShodHRwczovL3RoaW5raXQuY28uanAvKQotIDIwMjAtMDgtMjUgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GoIFR5cGVTY3JpcHQg44Gn5Z6L5a6J5YWo44Gr44OV44Ot44Oz44OI44Ko44Oz44OJ6ZaL55m644KS44GX44Gm44GE44KL6KmxXShodHRwczovL3RlY2guc21hcnRoci5qcC9lbnRyeS8yMDIwLzA4LzI1LzEzNTYzMSkgYXQgW1NtYXJ0SFIgVGVjaCBCbG9nXShodHRwczovL3RlY2guc21hcnRoci5qcC8pCi0gMjAyMC0wOS0xMCAtIFtJbnRyb2R1Y3Rpb24gdG8gT3BlbkFQSSB3aXRoIEluc3RhbmFdKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tL2Jsb2cvaW50cm9kdWN0aW9uLXRvLW9wZW5hcGktd2l0aC1pbnN0YW5hLykgYnkgW0NlZHJpYyBaaWVsXShodHRwczovL3d3dy5pbnN0YW5hLmNvbS9ibG9nL2F1dGhvci9jZWRyaWN6aWVsLykgYXQgW0luc3RhbmEgQmxvZ10oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20vYmxvZy8pCi0gMjAyMC0wOS0xNyAtIFtHZW5lcmF0ZSBQb3dlclNoZWxsU0RLIHVzaW5nIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vQGdodWZ6LmxlYXJuL2dlbmVyYXRlLXBvd2Vyc2hlbGxzZGstdXNpbmctb3BlbmFwaS1nZW5lcmF0b3ItMzNiNzAwODkxZTMzKSBieSBbR2h1ZnJhbiBaYWhpZGldKGh0dHBzOi8vbWVkaXVtLmNvbS9AZ2h1ZnoubGVhcm4pCi0gMjAyMC0wOS0yNCAtIFtIb3cgdG8gYXV0b21hdGUgQVBJIGNvZGUgZ2VuZXJhdGlvbiAoT3BlbkFQSS9Td2FnZ2VyKSBhbmQgYm9vc3QgcHJvZHVjdGl2aXR5IC0gVHV0b3JpYWwgd2l0aCBSZWFjdCBOYXRpdmUgZmVhdHVyaW5nIFR5cGVTY3JpcHRdKGh0dHBzOi8vbWVkaXVtLmNvbS9Ac2NlbGVza2kvaG93LXRvLWF1dG9tYXRlLWFwaS1jb2RlLWdlbmVyYXRpb24tb3BlbmFwaS1zd2FnZ2VyLWFuZC1ib29zdC1wcm9kdWN0aXZpdHktMTE3NmEwMDU2ZDhhKSBieSBbU2FuamluIENlbGVza2ldKGh0dHBzOi8vbWVkaXVtLmNvbS9Ac2NlbGVza2kpCi0gMjAyMC0wOS0yNSAtIFtHZW5lcmF0ZSBPcGVuQVBJIEFuZ3VsYXIgQ2xpZW50XShodHRwczovL21lZGl1bS5jb20vQHBndXNvL2dlbmVyYXRlLW9wZW5hcGktYW5ndWxhci1jbGllbnQtOGM5Mjg4ZThiYmQ0KSBieSBbUGF0cmljXShodHRwczovL21lZGl1bS5jb20vQHBndXNvKQotIDIwMjAtMTAtMjQgLSBbV29ya2luZyB3aXRoIE1pY3Jvc29mdCBJZGVudGl0eSAtIFJlYWN0IE5hdGl2ZSBDbGllbnRdKGh0dHBzOi8vd3d3Lmpvc2VwaGd1YWRhZ25vLm5ldC8yMDIwLzEwLzI0L3dvcmtpbmctd2l0aC1taWNyb3NvZnQtaWRlbnRpdHktcmVhY3QtbmF0aXZlLWNsaWVudCkgYnkgW0pvc2VwaCBHdWFkYWdub10oaHR0cHM6Ly93d3cuam9zZXBoZ3VhZGFnbm8ubmV0LykKLSAyMDIwLTEwLTMxIC0gW1tCMl0gT3BlbkFQSSBTcGVjaWZpY2F0aW9u7Jy866GcIO2DgOyehS3shLjsnbTtlITtlZjqsowgQVBJIOqwnOuwnO2VmOq4sDog7Z2s66ed7Y64IFZTIOygiOunne2OuF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1KNEpITEVTQWlGaykgYnkg7LWc7YOc6rG0IGF0IFtGRUNvbmYgMjAyMF0oaHR0cHM6Ly8yMDIwLmZlY29uZi5rci8pCi0gMjAyMC0xMS0wNSAtIFtBdXRvbWF0ZWQgUkVTVC1BcGkgQ29kZSBHZW5lcmF0aW9uOiBXaWUgSVQtU3lzdGVtZSBtaXRlaW5hbmRlciBzcHJlY2hlbl0oaHR0cHM6Ly93d3cubWFzc2l2ZWFydC5jb20vYmxvZy9hdXRvbWF0ZWQtcmVzdC1hcGktY29kZS1nZW5lcmF0aW9uLXdpZS1pdC1zeXN0ZW1lLW1pdGVpbmFuZGVyLXNwcmVjaGVuKSBieSBTdGVmYW4gUm90dGVuc3RlaW5lciBhdCBbTUFTU0lWRSBBUlQgQmxvZ10oaHR0cHM6Ly93d3cubWFzc2l2ZWFydC5jb20vYmxvZykKLSAyMDIwLTEyLTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44GnR2/jga5BUEnjgrXjg7zjg5Djg7wv44Kv44Op44Kk44Ki44Oz44OI44Kz44O844OJ44KS6Ieq5YuV55Sf5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9zYWtpLWVuZ2luZWVyaW5nL2l0ZW1zL2IyMGQ4YjYwNzRjNGRhOTY2NGE1KSBieSBbQHNha2ktZW5naW5lZXJpbmddKGh0dHBzOi8vcWlpdGEuY29tL3Nha2ktZW5naW5lZXJpbmcpCi0gMjAyMC0xMi0wNCAtIFtTY2FsaW5nIHRoZSBUZXN0IENvdmVyYWdlIG9mIE9wZW5BUEkgR2VuZXJhdG9yIGZvciAzMCsgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTdMa2U5ZEhScVQwKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtPcGVuIFNvdXJjZSBTdW1taXQgSmFwYW4gKyBBdXRvbW90aXZlIExpbnV4IFN1bW1pdCAyMDIwXShodHRwczovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL2FyY2hpdmUvMjAyMC9vcGVuLXNvdXJjZS1zdW1taXQtamFwYW4vKSAoW1NsaWRlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9zY2FsaW5nLXRoZS10ZXN0LWNvdmVyYWdlLW9mLW9wZW5hcGktZ2VuZXJhdG9yLWZvci0zMC1wbHVzLXByb2dyYW1taW5nLWxhbmd1YWdlcykpCi0gMjAyMC0xMi0wOSAtIFvjg5fjg63jgrjjgqfjgq/jg4jjgatPcGVuQVBJIEdlbmVyYXRvcuOBp+iHquWLleeUn+aIkOOBleOCjOOBn+Wei+S7mOOBjUFQSSBDbGllbnTjgpLlsI7lhaXjgZfjgZ/oqbFdKGh0dHBzOi8vcWlpdGEuY29tL3lvc2hpZnVqaVQvaXRlbXMvOTA1YzE4NzAwZWRlMjNmNDA4NDApIGJ5IFtAeW9zaGlmdWppVF0oaHR0cHM6Ly9naXRodWIuY29tL3lvc2hpZnVqaVQpCi0gMjAyMC0xMi0xNSAtIFtOZXh0LmpzICsgTmVzdEpTICsgR3JhcGhRTOOBp+WkieWMluOBq+i/veW+k+OBmeOCi+ODleODreODs+ODiOOCqOODs+ODieOBuCDjgJwg44K344On44OD44OU44Oz44Kw44Kv44O844Od44Oz44Gu5LqL5L6L57S55LuLXShodHRwczovL3RlY2hibG9nLnlhaG9vLmNvLmpwL2VudHJ5LzIwMjAxMjE1MzAwNTI5NTIvKSBieSBb5bCP5YCJIOmZuF0oaHR0cHM6Ly9naXRodWIuY29tL29ndWd1OSkgYXQgW1lhaG9vISBKQVBBTiBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaGJsb2cueWFob28uY28uanAvKQotIDIwMjEtMDEtMDggLSBbSGVsbG8sIE5ldyBBUEkg4oCTIFBhcnQgMV0oaHR0cHM6Ly93d3cubmdpbnguY29tL2Jsb2cvaGVsbG8tbmV3LWFwaS1wYXJ0LTEvKSBieSBbSmVyZW15IFNjaHVsbWFuXShodHRwczovL3d3dy5uZ2lueC5jb20vcGVvcGxlL2plcmVteS1zY2h1bG1hbi8pIGF0IFtNYWpvciBMZWFndWUgQmFzZWJhbGxdKGh0dHBzOi8vd3d3Lm1sYi5jb20pCi0gMjAyMS0wMS0xOCAtIFvjgIzjgqLjg5fjg6rplovnmbrjgYLjgovjgYLjgovjgI3jgpLnlpHjgYbjgZPjgajjgYvjgonlp4vjgb7jgaPjgZ/jgIFBUEkgQ2xpZW5044Kz44O844OJ44Gu6Ieq5YuV55Sf5oiQ44CQ44OH44OW44K544OIMjAyMOOAkV0oaHR0cHM6Ly9jb2RlemluZS5qcC9hcnRpY2xlL2RldGFpbC8xMzQwNj9wPTIpIGJ5IFtDb2RlWmluZee3qOmbhumDqF0oaHR0cHM6Ly9jb2RlemluZS5qcC9hdXRob3IvMSkKLSAyMDIxLTAyLTA1IC0gW1JFU1QtQVBJLVJvdW5kdHJpcCB3aXRoIFNwcmluZ0RvYyBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYmxvZy52aWFkZWUuZGUvZW4vcmVzdC1hcGktcm91bmR0cmlwKSBieSBbQmVuamFtaW4gS2xhdHRdKGh0dHBzOi8vdHdpdHRlci5jb20vYmVua2xhdHQpIGF0IFt2aWFkZWVdKGh0dHBzOi8vd3d3LnZpYWRlZS5kZS9lbi8pCi0gMjAyMS0wMi0xNyAtIFtSRVNULUFQSS1Sb3VuZHRyaXAgd2l0aCBTcHJpbmdEb2MgYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vbmVyZC1mb3ItdGVjaC9yZXN0LWFwaS1yb3VuZHRyaXAtd2l0aC1zcHJpbmdkb2MtYW5kLW9wZW5hcGktZ2VuZXJhdG9yLTMwYmQyN2NjZjY5OCkgYnkgW2Nsb3VkIEB2aWFkZWVdKGh0dHBzOi8vY2xvdWQtdmlhZGVlLm1lZGl1bS5jb20vKQotIDIwMjEtMDMtMDggLSBbT3BlbkFQSSBHZW5lcmF0b3Ig5bel5YW355qE6Lq65Z2R5bCd6K+VXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAxOTcwMS9hcnRpY2xlL2RldGFpbHMvMTE0NTMxOTc1KSBieSBb54us5a626Zuo5aSpXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAxOTcwMSkgYXQgW0NTRE7lrpjmlrnljZrlrqJdKGh0dHBzOi8vYmxvZy5jc2RuLm5ldC8pCi0gMjAyMS0wMy0xNiAtIFvlpoLkvZXln7rkuo4gU3dhZ2dlciDkvb/nlKggT3BlbkFQSSBHZW5lcmF0b3Ig55Sf5oiQIEpNZXRlciDohJrmnKzvvJ9dKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL2FydGljbGUvMTgwMjcwNCkgYnkgW+mrmOalvFplZV0oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvdXNlci81ODM2MjU1KSBhdCBb6IW+6K6v5LqR5LiT5qCPXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9jb2x1bW4pCi0gMjAyMS0wMy0yNCAtIFtvcGVuYXBpLWdlbmVyYXRvci1jbGkg44Gr44KI44KLIFR5cGVTY3JpcHQg5Z6L5a6a576pXShodHRwczovL3plbm4uZGV2L3Rha2VwZXBlL2FydGljbGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS10cykgYnkgW1Rha2VmdW1pIFlvc2hpaV0oaHR0cHM6Ly96ZW5uLmRldi90YWtlcGVwZSkKLSAyMDIxLTAzLTI4IC0gW1RyeWluZyBvdXQgTmVzdEpTIHBhcnQgNDogR2VuZXJhdGUgVHlwZXNjcmlwdCBjbGllbnRzIGZyb20gT3BlbkFQSSBkb2N1bWVudHNdKGh0dHBzOi8vZGV2LnRvL2FybmF1ZGNvcnRpc3NlL3RyeWluZy1vdXQtbmVzdGpzLXBhcnQtNC1nZW5lcmF0ZS10eXBlc2NyaXB0LWNsaWVudHMtZnJvbS1vcGVuYXBpLWRvY3VtZW50cy0yOG1rKSBieSBbQXJuYXVkIENvcnRpc3NlXShodHRwczovL2Rldi50by9hcm5hdWRjb3J0aXNzZSkKLSAyMDIxLTAzLTMxIC0gW09wZW4gQVBJIFNlcnZlciBJbXBsZW1lbnRhdGlvbiBVc2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL2phdmEtb3BlbmFwaS1nZW5lcmF0b3Itc2VydmVyKSBhdCBbQmFlbGR1bmddKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS8pCi0gMjAyMS0wMy0zMSAtIFvkvb/nlKhPcGVuQVBJIEdlbmVyYXRvcuWvpuePvk9wZW4gQVBJIFNlcnZlcl0oaHR0cHM6Ly93d3cuMWp1Lm9yZy9hcnRpY2xlL2phdmEtb3BlbmFwaS1nZW5lcmF0b3Itc2VydmVyKSBhdCBb5YSE6IGa57ayXShodHRwczovL3d3dy4xanUub3JnLykKLSAyMDIxLTA0LTE5IC0gW0ludHJvZHVjaW5nIFR3aWxpb+KAmXMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIEJldGFdKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZy9pbnRyb2R1Y2luZy10d2lsaW8tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi1iZXRhKSBieSBbR0FSRVRIIFBBVUwgSk9ORVNdKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZy9hdXRob3IvZ3BqKSBhdCBbVHdpbGlvIEJsb2ddKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZykKLSAyMDIxLTA0LTIyIC0gW0xldmVyYWdpbmcgT3BlbkFwaSBzdHJlbmd0aHMgaW4gYSBNaWNyby1TZXJ2aWNlIGVudmlyb25tZW50XShodHRwczovL21lZGl1bS5jb20vdW5pYnVkZHktdGVjaG5vbG9neS1ibG9nL2xldmVyYWdpbmctb3BlbmFwaS1zdHJlbmd0aHMtaW4tYS1taWNyby1zZXJ2aWNlLWVudmlyb25tZW50LTNkN2Y5ZTdjMjZmZikgYnkgTmljb2xhcyBKZWxsYWIgYXQgW1VuaWJ1ZGR5IFRlY2hub2xvZ3kgQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL3VuaWJ1ZGR5LXRlY2hub2xvZ3ktYmxvZykKLSAyMDIxLTA0LTI3IC0gW0Zyb20gemVybyB0byBwdWJsaXNoaW5nIFBvd2VyU2hlbGwgQVBJIGNsaWVudHMgaW4gUG93ZXJTaGVsbCBHYWxsZXJ5IHdpdGhpbiBtaW51dGVzXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS93aW5nMzI4L2Zyb20temVyby10by1wdWJsaXNoaW5nLXBvd2Vyc2hlbGwtYXBpLWNsaWVudHMtaW4tcG93ZXJzaGVsbC1nYWxsZXJ5LXdpdGhpbi1taW51dGVzKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtQb3dlclNoZWxsICsgRGV2T3BzIEdsb2JhbCBTdW1taXQgMjAyMV0oaHR0cHM6Ly9ldmVudHMuZGV2b3BzY29sbGVjdGl2ZS5vcmcvZXZlbnQvcG93ZXJzaGVsbC1kZXZvcHMtZ2xvYmFsLXN1bW1pdC0yMDIxLykKLSAyMDIxLTA1LTMxIC0gW0ZsdXR0ZXLjgadPcGVuIEFwaSBHZW5lcmF0b3IoU3dhZ2dlcinjgpLkvb/jgYZdKGh0dHBzOi8vYWFraXJhLmFwcC9ibG9nLzIwMjEvMDUvZmx1dHRlci1vcGVuLWFwaS8pIGJ5IFtBQWtpcmFdKGh0dHBzOi8vdHdpdHRlci5jb20vX2FfYWtpcmEpCi0gMjAyMS0wNi0yMiAtIFtSZXN0IEFQSSBEb2N1bWVudGF0aW9uIGFuZCBDbGllbnQgR2VuZXJhdGlvbiBXaXRoIE9wZW5BUEldKGh0dHBzOi8vZHpvbmUuY29tL2FydGljbGVzL3Jlc3QtYXBpLWRvY3VtZW50YXRpb24tYW5kLWNsaWVudC1nZW5lcmF0aW9uLXdpdGgpIGJ5IFtQcmFzYW50aCBHdWxsYXBhbGxpXShodHRwczovL2R6b25lLmNvbS91c2Vycy8xMDExNzk3L3ByYXNhbnRobmF0aC5nQGdtYWlsLmNvbS5odG1sKQotIDIwMjEtMDctMTYgLSBb6YqA6KGM5LqL5qWt44Gu44K144O844OQ44O844K144Kk44OJ6ZaL55m644Gr44Gk44GE44GmIC8gTElORSDkuqzpg73plovnmbrlrqQg44Ko44Oz44K444OL44Ki5o6h55So6Kqs5piO5LyaXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVlycktRSHhMUHBRKSBieSDph47nlLDoqqDkurosIFJvYmVydCBNaXRjaGVsbAotIDIwMjEtMDctMTkgLSBbT3BlbkFQSSBjb2RlIGdlbmVyYXRpb24gd2l0aCBrb3RsaW5dKGh0dHBzOi8vc3lsaGFyZS5naXRodWIuaW8vMjAyMS8wNy8xOS9PcGVuYXBpLXN3YWdnZXItY29kZWdlbi13aXRoLWtvdGxpbi5odG1sKSBieSBbc3lsaGFyZV0oaHR0cHM6Ly9naXRodWIuY29tL3N5bGhhcmUpCi0gMjAyMS0wNy0yOSAtIFtIb3cgVG8gUmV3cml0ZSBhIEh1Z2UgQ29kZWJhc2VdKGh0dHBzOi8vZHpvbmUuY29tL2FydGljbGVzL2hvdy10by1yZXdyaXRlLWEtaHVnZS1jb2RlLWJhc2UpIGJ5IFtDdXJ0aXMgUG9lXShodHRwczovL2R6b25lLmNvbS91c2Vycy80NTY1NDQ2L3B1YmxpdXNvdmlkaXVzLmh0bWwpCi0gMjAyMS0wOC0yMSAtIFtHZW5lcmF0aW5nIENsaWVudCBBUElzIHVzaW5nIFN3YWdnZXIgUGFydCAxXShodHRwczovL21lZGl1bS5jb20vQGZsb3dzcXVhZC9nZW5lcmF0aW5nLWNsaWVudC1hcGlzLXVzaW5nLXN3YWdnZXItcGFydC0xLTJkNDZmMTNmNWU5MikgYnkgW0Zsb3dTcXVhZC5pb10oaHR0cHM6Ly9tZWRpdW0uY29tL0BmbG93c3F1YWQpCi0gMjAyMS0wOS0xMSAtIFtJbnZva2luZyBBV1MgUGFyYWxsZWxDbHVzdGVyIEFQSV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcmFsbGVsY2x1c3Rlci9sYXRlc3QvdWcvYXBpLXJlZmVyZW5jZS12My5odG1sKSBhdCBbQVdTIFBhcmFsbGVsQ2x1c3RlciBBUEkgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcmFsbGVsY2x1c3Rlci9sYXRlc3QvdWcvYXBpLXJlZmVyZW5jZS12My5odG1sKQotIDIwMjEtMDktMjAgLSBbT3BlbkFQSSBHZW5lcmF0b3IgLSBUaGUgQmFiZWwgRmlzaCBvZiB0aGUgQVBJIFdvcmxkXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXMyek10d2Q1a2xnKSBieSBbQ2xpZmZhbm8gU3ViYWdpbyAoUHJpbmNpcGFsIEVuZ2luZWVyIGF0IFNoaW5lIFNvbHV0aW9ucyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZmFubykgYXQgW0FwaWRheXMgTElWRSBBdXN0cmFsaWEgMjAyMV0oaHR0cHM6Ly93d3cuYXBpZGF5cy5nbG9iYWwvYXVzdHJhbGlhMjAyMS8pCi0gMjAyMS0xMC0wMiAtIFtIb3cgdG8gV3JpdGUgRmV3ZXIgTGluZXMgb2YgQ29kZSB3aXRoIHRoZSBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9oYWNrZXJub29uLmNvbS9ob3ctdG8td3JpdGUtZmV3ZXItbGluZXMtb2YtY29kZS13aXRoLXRoZS1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW01pa2hhaWwgQWxmYV0oaHR0cHM6Ly9oYWNrZXJub29uLmNvbS91L2FscGhhbWlrbGUpCi0gMjAyMS0xMC0xMiAtIFtPcGVuQVBJIEdlbmVyYXRvciA6IDQwMDAgw6l0b2lsZXMgc3VyIEdpdEh1YiBldCBkZXMgc3BhZ2hldHRpc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj05aEVzTkJTcVRGaykgYnkgW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIGF0IFtEZXZveHggRlIgMjAyMV0oaHR0cHM6Ly9jZnAuZGV2b3h4LmZyLzIwMjEvc3BlYWtlci9qZXJlbWllX2JyZXNzb24pCi0gMjAyMS0xMC0xNyAtIFtHZW5lcmF0ZSBhIFR5cGVTY3JpcHQgSFRUUCBDbGllbnQgRnJvbSBBbiBPcGVuQVBJIFNwZWMgSW4gRG90TkVUIDVdKGh0dHBzOi8vcmljaGFyZHdpbGxpcy5pbmZvL2Jsb2cvZ2VuZXJhdGUtYS10eXBlLXNjcmlwdC1odHRwLWNsaWVudC1mcm9tLWFuLW9wZW4tYXBpLXNwZWMtaW4tZG90LW5ldC01KSBieSBbUmljaGFyZCBXaWxsaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWRzeW50YXgpCi0gMjAyMS0xMS0wNiAtIFvjgrnjgr/jg7zjg4jjgqLjg4Pjg5fjga7plovnmbrjgafmhI/orZjjgZfjgZ/jgZPjgahdKGh0dHBzOi8vemVubi5kZXYvd29vX25vby9hcnRpY2xlcy81Y2IwOWY4ZTI4OTlhZTc4MmFkMSkgYnkgW3dvby1ub29dKGh0dHBzOi8vemVubi5kZXYvd29vX25vbykKLSAyMDIxLTExLTA5IC0gW0VmZmVjdGl2ZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hcGV4bGFicy5haS9wb3N0L2VmZmVjdGl2ZS1zb2Z0d2FyZS1kZXZlbG9wbWVudC11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgQWppbCBPb21tZQotIDIwMjEtMTItMDcgLSBbQW4gSW50cm9kdWN0aW9uIHRvIE9wZW5BUEldKGh0dHBzOi8vYmV0dGVycHJvZ3JhbW1pbmcucHViLzQtdXNlLWNhc2VzLW9mLW9wZW5hcGktd2hpY2gtYXJlLWdvb2QtdG8ta25vdy0xYTA0MWY0YWQ3MWUpIGJ5IFtOYSdhbWFuIEhpcnNjaGZlbGRdKGh0dHBzOi8vbmFhbWFuaGlyc2NoZmVsZC5tZWRpdW0uY29tLykKLSAyMDIyLTAxLTAyIC0gW1Rvd2FyZHMgYSBzZWN1cmUgQVBJIGNsaWVudCBnZW5lcmF0b3IgZm9yIElvVCBkZXZpY2VzXShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjIwMS4wMDI3MCkgYnkgQW5kZXJzIEFhZW4gU3ByaW5nYm9yZywgTWFydGluIEthbGRhaGwgQW5kZXJzZW4sIEthYXJlIEhvbGxhbmQgSGF0dGVsLCBNaWNoZWxlIEFsYmFubwotIDIwMjItMDItMDIgLSBbVXNlIE9wZW5BcGkgZ2VuZXJhdG9yIHRvIHNoYXJlIHlvdXIgbW9kZWxzIGJldHdlZW4gRmx1dHRlciBhbmQgeW91ciBiYWNrZW5kXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWtQVzdjY3U5WXZrKSBieSBbR3VpbGxhdW1lIEJlcm5vc10oaHR0cHM6Ly9mZWIyMDIyLmZsdXR0ZXJ2aWtpbmdzLmNvbS9zcGVha2Vycy9ndWlsbGF1bWVfYmVybm9zKSBhdCBbRmx1dHRlciBWaWtpbmdzIENvbmZlcmVuY2UgMjAyMiAoSHlicmlkKV0oaHR0cHM6Ly9mZWIyMDIyLmZsdXR0ZXJ2aWtpbmdzLmNvbS8pCi0gMjAyMi0wMy0xNSAtIFtPcGVuQVBJIFNwZWPjgafjg4/jgqTjg5Xjg7PljLrliIfjgorjga5FbnVt5YCk44KST3BlbkFQSSBHZW5lcmF0b3Ljgaflh7rlipvjgZnjgovjgajjgIHjg4/jgqTjg5Xjg7PljLrliIfjgorjga7jgb7jgb7lh7rlipvjgZXjgozjgotdKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQvaXRlbXMvODI0ZDc0ZDQ4ODkwNTVhYjM3ZDgpIGJ5IFt5dWppMzhrd210XShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210KQotIDIwMjItMDQtMDEgLSBbT3BlbkFQSSBHZW5lcmF0b3Ljga7jgrPjg7zjg4nnlJ/miJDjgahTcHJpbmcgRnJhbWV3b3Jr44Gu44Kr44K544K/44Og44OH44O844K/44OQ44Kk44Oz44OH44Kj44Oz44Kw44KS5YWx5a2Y44GV44Gb44KLXShodHRwczovL3RlY2hibG9nLnpvem8uY29tL2VudHJ5L2NvZXhpc3RlbmNlLW9mLW9wZW5hcGktYW5kLXNwcmluZykgaW4gW1pPWk8gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnpvem8uY29tLykKLSAyMDIyLTA0LTA2IC0gW0VmZmVjdGl2ZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hcGV4bGFicy5haS9wb3N0L29wZW5hcGktZ2VuZXJhdG9yKSBieSBBamlsIE9vbW1lbiAoU2VuaW9yIEZsdXR0ZXIgRGV2ZWxvcGVyKQotIDIwMjItMDUtMTMgLSBbQSBQYXRoIEZyb20gYW4gQVBJIFRvIENsaWVudCBMaWJyYXJpZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9WEM4b1ZuX2VmVHcpIGJ5IFtGaWxpcCBTcm5lY10oaHR0cHM6Ly93d3cuZGV2b3h4LmNvLnVrL3RhbGsvP2lkPTExMjExKSBhdCBJbmZvYmlwCi0gMjAyMi0wNi0wMSAtIFtBUEkgRmlyc3QsIHVzaW5nIE9wZW5BUEkgYW5kIFNwcmluZyBCb290XShodHRwczovL21lZGl1bS5jb20veGdlZWtzL2FwaS1maXJzdC11c2luZy1vcGVuYXBpLWFuZC1zcHJpbmctYm9vdC0yNjAyYzA0YmIwZDMpIGJ5IFtNaWNhZWwgRXN0csOhenVsYXMgVmlhbm5hXShodHRwczovL2VzdHJhenVsYXMubWVkaXVtLmNvbS8pCi0gMjAyMi0wNi0xMCAtIFtBdXRvZ2VuZXJhdGluZyBDbGllbnRzIHdpdGggRmFzdEFQSSBhbmQgR2l0aHViIEFjdGlvbnNdKGh0dHBzOi8vd3d3LnByb3BlbGF1dGguY29tL3Bvc3QvYXV0b2dlbmVyYXRpbmctY2xpZW50cy13aXRoLWZhc3RhcGktYW5kLWdpdGh1Yi1hY3Rpb25zKSBieSBbQW5kcmV3IElzcmFlbF0oaHR0cHM6Ly93d3cucHJvcGVsYXV0aC5jb20vYXV0aG9yL2FuZHJldykKLSAyMDIyLTA2LTEyIC0gW011c3RhY2hlIHRlbXBsYXRlcyB3aXRoIE9wZW5BUEkgc3BlY3NdKGh0dHBzOi8vbWVkaXVtLmNvbS9nZWVrY3VsdHVyZS9tdXN0YWNoZS10ZW1wbGF0ZXMtd2l0aC1vcGVuYXBpLXNwZWNzLWYyNDcxMWM2N2RlYykgYnkgW0JlcHBlIENhdGFuZXNlXShodHRwczovL2dpdGh1Yi5jb20vZ2NhdGFuZXNlKQotIDIwMjItMDctMDEgLSBbR2VuZXJhdGUgQVBJIGNvbnRyYWN0IHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tL2dlbmVyYXRlLWFwaS1jb250cmFjdC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4uaHRtbCkgYnkgW0toYW5oIE5ndXllbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tLykKLSAyMDIyLTA3LTIyIC0gW+S9v+eUqE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbuW8gOWPkWFwaeS8mOWFiOeahGphdmHlrqLmiLfnq6/lkozmnI3liqHnq6/ku6PnoIFdKGh0dHBzOi8vYmxvZy5yb2Njb3NoaS50b3AvMjAyMi9qYXZhL29wZW5hcGktZ2VuZXJhdG9yJUU3JTlBJTg0JUU0JUJEJUJGJUU3JTk0JUE4LykgYnkgW0xpbmNlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9MaW5jZXN0KQotIDIwMjItMDgtMDEgLSBbVHV0b3JpYWw6IEV0c3kgT3BlbiBBUEkgdjMgKHJ1YnkpXShodHRwczovL2Jsb2cudGpveWFsLmRldi9ldHN5LW9wZW4tYXBpLXYzLykgYnkgW1RoaWVycnkgSm95YWxdKGh0dHBzOi8vZ2l0aHViLmNvbS90am95YWwpCi0gMjAyMi0wOS0wMyAtIFtPcGVuQVBJIEdlbmVyYXRvciBGb3IgR28gV2ViIERldmVsb3BtZW50XShodHRwczovL2Jsb2cua2V2aW5odS5tZS8yMDIyLzA5LzAzLzAzLW9wZW5hcGktZ2VuZXJhdG9yLykgYnkgW0tldmluIEh1XShodHRwczovL3R3aXR0ZXIuY29tL09sZGd1bml4KQotIDIwMjItMTAtMDEgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgpLjgqvjgrnjgr/jg57jgqTjgrrjgZfjgZ/jgrPjg7zjg4njgpLnlJ/miJDjgZnjgovvvIhTd2FnZ2VyIENvZGVnZW7jgajjgbvjgbzlkIzjgZjvvIldKGh0dHBzOi8vbmFpbmFpc3Rhci5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDIyLzEwLzAzLzEyMDAwMCkgYnkgW+OBjeOCiuS4uF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9uYWluYWlzdGFyKQotIDIwMjItMTAtMjEgLSBbS290bGlu77yIU3ByaW5nIEJvb3TvvInjga4gQVBJIOOCkiBPcGVuQVBJIEdlbmVyYXRvciDjgafoh6rli5XnlJ/miJBdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtL2FydGljbGVzLzIwMjIxMDIxLWtvdGxpbi1zcHJpbmctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFttc2tzZ21dKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtKQotIDIwMjItMTAtMjYgLSBbUXVhcmt1cyBJbnNpZ2h0cyAjMTA2OiBRdWFya2l2ZXJzZSBFeHRlbnNpb24gU3BvdGxpZ2h0OiBPcGVuQXBpIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1fc19pZjY5dDJpUSkgYnkgW1F1YXJrdXNpb10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vYy9RdWFya3VzaW8pCi0gMjAyMi0xMS0yOCAtIFtUaGUgUkVTVCBBUEkgaW1wbGVtZW50YXRpb24gZmxvd10oaHR0cHM6Ly90bXN2ci5jb20vb3BlbmFwaS1jb2RlLWdlbmVyYXRpb24tZm9yLXJlc3QtYXBpcy8pIGJ5IFtJbXJlIFTDtm3DtnN2w6FyaV0oaHR0cHM6Ly90bXN2ci5jb20vYXV0aG9yL2ltcmUvKQotIDIwMjItMTItMTMgLSBbQVBJLUZpcnN0IHdpdGggU3ByaW5nIFdlYkZsdXggYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2Jvb3R0ZWNobm9sb2dpZXMtY2kubWVkaXVtLmNvbS9hcGktZmlyc3Qtd2l0aC1zcHJpbmctd2ViZmx1eC1hbmQtb3BlbmFwaS1nZW5lcmF0b3ItMzhiNzgwNGM0ZWQ0KSBieSBbRXJpYyBBbmljZXRdKGh0dHBzOi8vYm9vdHRlY2hub2xvZ2llcy1jaS5tZWRpdW0uY29tLykKLSAyMDIzLTAxLTA2IC0gW01ham9yIEltcHJvdmVtZW50cyB3aXRoIEhlbGlkb24gYW5kIE9wZW5BUEldKGh0dHBzOi8vbWVkaXVtLmNvbS9oZWxpZG9uL21ham9yLWltcHJvdmVtZW50cy13aXRoLWhlbGlkb24tYW5kLW9wZW5hcGktZjc2YTA5NTE1MDhlKSBieSBbVGltIFF1aW5uXShodHRwczovL21lZGl1bS5jb20vQHRxdWlubm82MDApCi0gMjAyMy0wMi0wMiAtIFtSZXBsYWNpbmcgUG9zdG1hbiB3aXRoIHRoZSBKZXRicmFpbnMgSFRUUCBDbGllbnRdKGh0dHBzOi8vbGVuZ3JhbmQuZnIvcmVwbGFjaW5nLXBvc3RtYW4taW4tc2Vjb25kcy13aXRoLXRoZS1qZXRicmFpbnMtaHR0cC1jbGllbnQvKSBieSBbanVsaWVuIExlbmdyYW5kLUxhbWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qbGVuZ3JhbmQpCi0gMjAyMy0wMy0xNSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBq+mBqeOBl+OBn09wZW5BUEnjga7mm7jjgY3mlrldKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vZW50cnkvaG93LXRvLXdyaXRlLW9wZW5hcGktZm9yLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbWk9aTyBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vKQotIDIwMjMtMDMtMTkgLSBbRVhPR0VNOiBFeHRlbmRpbmcgT3BlbkFQSSBHZW5lcmF0b3IgZm9yIE1vbml0b3Jpbmcgb2YgUkVTVGZ1bCBBUElzXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzEtMjY1MDctNV8xMCkgYnkgRGFuaWVsIEZyaWlzIEhvbHRlYm8sIEphbm5payBMdWNhcyBTb21tZXIsIE1hZ251cyBNw7hsZ2FhcmQgTHVuZCwgQWxlc3NhbmRybyBUaWJvLCBKdW5pb3IgRG9uZ28gJiBNaWNoZWxlIEFsYmFubyBhdCAiSUNTT0MgMjAyMjogU2VydmljZS1PcmllbnRlZCBDb21wdXRpbmcg4oCTIElDU09DIDIwMjIgV29ya3Nob3BzIgotIDIwMjMtMDMtMjggLSBbQVBJLUZpcnN0IERlc2lnbiB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vcHVsc2UvYXBpLWZpcnN0LWRlc2lnbi1vcGVuYXBpLWdlbmVyYXRvci1qb25hdGhhbi1tYW5lcmEvKSBieSBbSm9uYXRoYW4gTWFuZXJhXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vbWFuZXJham9uYS8pCi0gMjAyMy0wMy0yOCAtIFvjg4/jg7Pjgrrjgqrjg7PjgaflrabjgbbjgrXjg7zjg5Djg7zjgrXjgqTjg4kgS290bGlu77yIU3ByaW5nIEJvb3QmQXJyb3cmT3BlbkFQSSBHZW5lcmF0b3LvvIl2MS4wLjFdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtL2Jvb2tzL2ltcGxlbWVudGluZy1zZXJ2ZXItc2lkZS1rb3RsaW4tZGV2ZWxvcG1lbnQpIGJ5IFttc2tdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtKQotIDIwMjMtMDQtMDEgLSBbT3BlbkFQSSBDbGllbnQgQ29kZSBHZW5lcmF0aW9uXShodHRwczovL3Rlc3Rpbmdib3NzLmNvbS9ibG9nL29wZW5hcGktY2xpZW50LWdlbmVyYXRpb24vKSBieSBLd28gRGluZwotIDIwMjMtMDQtMjcgLSBbQ3JlYXRlIGFuIEFuZ3VsYXIgQ2xpZW50IHVzaW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnNdKENyZWF0ZSBhbiBBbmd1bGFyIENsaWVudCB1c2luZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zKSBieSBbUGF0cmljXShodHRwczovL3BndXNvLm1lZGl1bS5jb20vKQotIDIwMjMtMDUtMTYgLSBbQWR5ZW4gZm9yIEphdmEgZGV2ZWxvcGVyc10oaHR0cHM6Ly93d3cuYWR5ZW4uY29tL2Jsb2cvYWR5ZW4tamF2YS1saWJyYXJ5KSBieSBbQmVwcGUgQ2F0YW5lc2UsIERldmVsb3BlciBBZHZvY2F0ZSwgQWR5ZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9nY2F0YW5lc2UpCi0gMjAyMy0wNS0xOCAtIFvlpoLkvZXln7rkuo4gU3dhZ2dlciDkvb/nlKggT3BlbkFQSSBHZW5lcmF0b3Ig55Sf5oiQIEpNZXRlciDohJrmnKzvvJ9dKGh0dHBzOi8vYmxvZy41MWN0by5jb20vdV8xNTE4MTU3Mi82Mjk0OTc0KSBieSBb6auY5qW877yIWmVlKV0oaHR0cHM6Ly9ibG9nLjUxY3RvLmNvbS91XzE1MTgxNTcyKQotIDIwMjMtMDYtMjggLSBbR2VuZXJhdGUgQVBJIGNvbnRyYWN0IHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tL2dlbmVyYXRlLWFwaS1jb250cmFjdC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4uaHRtbCkgYnkgW0toYW5oIE5ndXllbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tLykKLSAyMDIzLTA2LTMwIC0gW0dlbmVyYXRlIENsaWVudCBTREtzIHdpdGggT3BlbkFwaSBHZW5lcmF0b3IgaW4gU3ByaW5nYm9vdF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYW1hdmF0aHZpbmF5YWsvZ2VuZXJhdGUtY2xpZW50LXNka3Mtd2l0aC1vcGVuYXBpLWdlbmVyYXRvci1pbi1zcHJpbmdib290LWY5ZjAxMmU3M2MwYikgYnkgW1ZpbmF5YWsgUmFtYXZhdGhdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmFtYXZhdGh2aW5heWFrKQotIDIwMjMtMTItMTAgLSBbVW5pdHnjgadPcGVuQVBJIEdlbmVyYXRvcuOCkuS9v+OBhl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DYk53S1ZWNUxSTSkgYnkgW1NvdXAgVG9yaV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vQHNvdXB0b3JpODQxNykKLSAyMDI0LTAxLTI0IC0gW0NvbW1lbnQgZ8OpbsOpcmVyIGRlcyBzdHVicyB3aXJlbW9jayBhdmVjIG9wZW5hcGkgZ2VuZXJhdG9yXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTBqaE9OZkJyY0t3KSBieSBbQWxleGlzIENvdXZyZXVyXShodHRwczovL2dpdGh1Yi5jb20vYWNvdXZyZXVyKQotIDIwMjQtMDMtMDQgLSBbR2VuZXJhdGluZyBUeXBlU2NyaXB0IFR5cGVzIHdpdGggT3BlbkFQSSBmb3IgUkVTVCBBUEkgQ29uc3VtcHRpb25dKGh0dHBzOi8vd3d3LnB1bGxyZXF1ZXN0LmNvbS9ibG9nL2dlbmVyYXRpbmctdHlwZXNjcmlwdC10eXBlcy13aXRoLW9wZW5hcGktZm9yLXJlc3QtYXBpLWNvbnN1bXB0aW9uLykgYnkgW1B1bGxSZXF1ZXN0XShodHRwczovL3d3dy5wdWxscmVxdWVzdC5jb20vKQotIDIwMjQtMDMtMDcgLSBbRnVsbHkgdHlwZWQgV2ViIEFwcHMgd2l0aCBPcGVuQVBJIChQYXJ0IDEpXShodHRwczovL21lZGl1bS5jb20vQGdmb3gxOTg0L2Z1bGx5LXR5cGVkLXdlYi1hcHBzLXdpdGgtb3BlbmFwaS1wYXJ0LTEtNTk1ZDU1NzY2NjcwKSBieSBbR3VpbGxhdW1lIFJlbmFyZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnZm94MTk4NCkKLSAyMDI0LTAzLTA4IC0gW0xhcmF2ZWwgT3BlbkFQSeOBq+OCiOOCiyAi6L6b44GP44Gq44GEIiDjgrnjgq3jg7zjg57pp4bli5XplovnmbpdKGh0dHBzOi8vZm9ydGVlLmpwL3BocGVya2FpZ2ktMjAyNC9wcm9wb3NhbC85ZTJlNmMzOC1kMDc4LTRlZmEtOTliNC04M2ViZjkwMzNiMzQpIGJ5IFtLZW50YXJvdVRha2VkYV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9LZW50YXJvdVRha2VkYSkKCiMjIFs2IC0gQWJvdXQgVXNdKCN0YWJsZS1vZi1jb250ZW50cykKCldoYXQncyB0aGUgZGVzaWduIHBoaWxvc29waHkgb3IgcHJpbmNpcGxlIGJlaGluZCBPcGVuQVBJIEdlbmVyYXRvcj8KCldlIGZvY3VzIG9uIGRldmVsb3BlciBleHBlcmllbmNlLiBUaGUgZ2VuZXJhdG9ycyBzaG91bGQgcHJvZHVjZSBjb2RlLCBjb25maWcsIGRvY3VtZW50YXRpb24sIGFuZCBtb3JlIHRoYXQgYXJlIGVhc2lseSB1bmRlcnN0YW5kYWJsZSBhbmQgY29uc3VtYWJsZSBieSB1c2Vycy4gV2UgZm9jdXNlZCBvbiBzaW1wbGUgdXNlIGNhc2VzIHRvIHN0YXJ0IHdpdGggKGJvdHRvbS11cCBhcHByb2FjaCkuIFNpbmNlIHRoZW4gdGhlIHByb2plY3QgYW5kIHRoZSBjb21tdW5pdHkgaGF2ZSBncm93biBhIGxvdDogNjAwayB3ZWVrbHkgZG93bmxvYWRzIHZpYSBOUE0gQ0xJIHdyYXBwZXIsIDMwTSBkb3dubG9hZHMgdmlhIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBkb2NrZXIgaW1hZ2UganVzdCB0byBoaWdobGlnaHQgYSBmZXcuIFdlJ3ZlIGdyYWR1YWxseSBzdXBwb3J0ZWQgbW9yZSBmZWF0dXJlcyAoZS5nLiBvbmVPZiwgYW55T2YgaW50cm9kdWNlZCBpbiBPcGVuQVBJIDMuMCkgaW4gdmFyaW91cyBnZW5lcmF0b3JzIGFuZCB3ZSB3aWxsIGNvbnRpbnVlIHRoaXMgYXBwcm9hY2ggdG8gZGVsaXZlciBzb21ldGhpbmcgYmFzZWQgb24gb3VyIHVuZGVyc3RhbmRpbmcgb2YgdXNlciBkZW1hbmQgYW5kIHdoYXQgdGhleSB3YW50LCBhbmQgY29udGludWUgdG8gYWRkIHN1cHBvcnQgb2YgbmV3IGZlYXR1cmVzIGludHJvZHVjZWQgaW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIChzdWNoIGFzIHYzLjEgYW5kIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uKS4KCiMjIyBbNi4xIC0gT3BlbkFQSSBHZW5lcmF0b3IgQ29yZSBUZWFtXSgjdGFibGUtb2YtY29udGVudHMpCgpPcGVuQVBJIEdlbmVyYXRvciBjb3JlIHRlYW0gbWVtYmVycyBhcmUgY29udHJpYnV0b3JzIHdobyBoYXZlIGJlZW4gbWFraW5nIHNpZ25pZmljYW50IGNvbnRyaWJ1dGlvbnMgKHJldmlldyBpc3N1ZXMsIGZpeCBidWdzLCBtYWtlIGVuaGFuY2VtZW50cywgZXRjKSB0byB0aGUgcHJvamVjdCBvbiBhIHJlZ3VsYXIgYmFzaXMuCgojIyMjIENvcmUgVGVhbSBNZW1iZXJzCiogW0B3aW5nMzI4XShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkgKDIwMTUvMDcpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQoqIFtAamltc2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkgKDIwMTYvMDUpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKKiBbQGNib3JuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jYm9ybmV0KSAoMjAxNi8wNSkKKiBbQGptaW5pXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpICgyMDE4LzA0KSAgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ptaW5pKQoqIFtAZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkgKDIwMTkvMDYpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMjIyBUZW1wbGF0ZSBDcmVhdG9yCgoqKk5PVEUqKjogRW1iZWRkZWQgdGVtcGxhdGVzIGFyZSBvbmx5IHN1cHBvcnRlZCBpbiBfTXVzdGFjaGVfIGZvcm1hdC4gU3VwcG9ydCBmb3IgYWxsIG90aGVyIGZvcm1hdHMgaXMgZXhwZXJpbWVudGFsIGFuZCBzdWJqZWN0IHRvIGNoYW5nZSBhdCBhbnkgdGltZS4KCkhlcmUgaXMgYSBsaXN0IG9mIHRlbXBsYXRlIGNyZWF0b3JzOgogKiBBUEkgQ2xpZW50czoKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEFwZXg6IEBhc25lbGxpbmcKICAgKiBCYXNoOiBAYmtyeXphCiAgICogQzogQFBvd2VyT2ZDcmVhdGlvbiBAemhlbWFudCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vemhlbWFudCkKICAgKiBDKysgUkVTVDogQERhbmllbGt1MTUKICAgKiBDKysgVGlueTogQEFuZGVyc1NwcmluZ2JvcmcgQGthYXJlSEggQG1pY2hlbGVhbGJhbm8gQG1rYWtiYXMKICAgKiBDKysgVUU0OiBAS2FobmNvZGUKICAgKiBDIyAoLk5FVCAyLjApOiBAd2hvCiAgICogQyMgKC5ORVQgU3RhbmRhcmQgMS4zICk6IEBHcm9uc2FrCiAgICogQyMgKC5ORVQgNC41IHJlZmFjdG9yZWQpOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEMjIChHZW5lcmljSG9zdCk6IEBkZXZobC1sYWJzCiAgICogQyMgKEh0dHBDbGllbnQpOiBAQmxhY2tjbGF3cwogICAqIENsb2p1cmU6IEB4aGgKICAgKiBDcnlzdGFsOiBAd2luZzMyOAogICAqIERhcnQ6IEB5aXNzYWNoYXIKICAgKiBEYXJ0IChyZWZhY3Rvcik6IEBqb2VybmFocmVucwogICAqIERhcnQgMjogQHN3aXBlc2lnaHQKICAgKiBEYXJ0IChKYWd1YXIpOiBAamF1bWFyZAogICAqIERhcnQgKERpbyk6IEBqb3NoLWJ1cnRvbgogICAqIEVsaXhpcjogQG5pa3UKICAgKiBFbG06IEBlcmlrdGltCiAgICogRWlmZmVsOiBAanZlbGlsbGEKICAgKiBFcmxhbmc6IEB0c2xvdWdodGVyCiAgICogRXJsYW5nIChQcm9wRXIpOiBAamZhY29ycm8gQHJvYmVydG9hbG9pCiAgICogR3Jvb3Z5OiBAdmljdG9yZ2l0CiAgICogR286IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIEdvIChyZXdyaXR0ZW4gaW4gMi4zLjApOiBAYW50aWhheAogICAqIEhhc2tlbGwgKGh0dHAtY2xpZW50KTogQGpvbnNjaG9uaW5nCiAgICogSmF2YSAoRmVpZ24pOiBAZGF2aWRraXNzCiAgICogSmF2YSAoUmV0cm9maXQpOiBAMGxlZ2cKICAgKiBKYXZhIChSZXRyb2ZpdDIpOiBAZW1pbGlhbm9ib25hc3NpCiAgICogSmF2YSAoSmVyc2V5Mik6IEB4aGgKICAgKiBKYXZhIChva2h0dHAtZ3Nvbik6IEB4aGgKICAgKiBKYXZhIChSZXN0VGVtcGxhdGUpOiBAbmJydW5vCiAgICogSmF2YSAoU3ByaW5nIDUgV2ViQ2xpZW50KTogQGRhb25vbWljCiAgICogSmF2YSAoU3ByaW5nIDYgUmVzdENsaWVudCk6IEBuaWNrbGFzMjc1MQogICAqIEphdmEgKFJFU1RFYXN5KTogQGdheWF0aHJpZ3MKICAgKiBKYXZhIChWZXJ0eCk6IEBsb3Blc21jYwogICAqIEphdmEgKEdvb2dsZSBBUElzIENsaWVudCBMaWJyYXJ5KTogQGNoYXJsZXNjYXBwcwogICAqIEphdmEgKFJlc3QtYXNzdXJlZCk6IEB2aWNsb3Zza3kKICAgKiBKYXZhIChKYXZhIDExIE5hdGl2ZSBIVFRQIGNsaWVudCk6IEBiYmRvdWdsYXMKICAgKiBKYXZhIChBcGFjaGUgSHR0cENsaWVudCA1LngpOiBAaGFycnl3aGl0ZTQgQGFuZHJldmVnYXMKICAgKiBKYXZhIChIZWxpZG9uKTogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEphdmFzY3JpcHQvTm9kZUpTOiBAamZpYWxhCiAgICogSmF2YVNjcmlwdCAoQXBvbGxvIERhdGFTb3VyY2UpOiBAZXJpdGhtZXRpYwogICAqIEphdmFTY3JpcHQgKENsb3N1cmUtYW5ub3RhdGVkIEFuZ3VsYXIpIEBhY2hldzIyCiAgICogSmF2YVNjcmlwdCAoRmxvdyB0eXBlcykgQGpheXBlYQogICAqIEpldGJyYWlucyBIVFRQIENsaWVudCA6IEBqbGVuZ3JhbmQKICAgKiBKTWV0ZXI6IEBkYXZpZGtpc3MKICAgKiBKdWxpYTogQHRhbm1heWttCiAgICogS290bGluOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEtvdGxpbiAoTXVsdGlQbGF0Zm9ybSk6IEBhbmRyZXdlbWVyeQogICAqIEtvdGxpbiAoVm9sbGV5KTogQGFsaXN0ZXJzCiAgICogS290bGluIChqdm0tc3ByaW5nLXdlYmNsaWVudCk6IEBzdGVmYW5rb3BwaWVyCiAgICogS290bGluIChqdm0tc3ByaW5nLXJlc3RjbGllbnQpOiBAc3RlZmFua29wcGllcgogICAqIEx1YTogQGRhdXJuaW1hdG9yCiAgICogTjRKUzogQG1tZXdzLW40CiAgICogTmltOiBAaG9rYW1vdG8KICAgKiBPQ2FtbDogQGNnZW5zb3VsCiAgICogUGVybDogQHdpbmczMjggWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3dpbmczMjgpCiAgICogUEhQIChHdXp6bGUpOiBAYmFhcnRvc3oKICAgKiBQSFAgKHdpdGggRGF0YSBUcmFuc2Zlcik6IEBBcnRpY3VzCiAgICogUG93ZXJTaGVsbDogQGJlYXRjcmFja2VyCiAgICogUG93ZXJTaGVsbCAocmVmYWN0b3JlZCBpbiA1LjAuMCk6IEB3aW5nMzI4CiAgICogUHl0aG9uOiBAc3BhY2V0aGVyIFs6aGVhcnQ6XVtzcGFjZXRoZXIgc3BvbnNvcnNoaXBdCiAgICogUHl0aG9uLUV4cGVyaW1lbnRhbDogQHNwYWNldGhlciBbOmhlYXJ0Ol1bc3BhY2V0aGVyIHNwb25zb3JzaGlwXQogICAqIFB5dGhvbiAocmVmYWN0b3JlZCBpbiA3LjAuMCk6IEB3aW5nMzI4CiAgICogUjogQHJhbW5vdgogICAqIFJ1YnkgKEZhcmFkYXkpOiBAbWVnYW5lbXVyYSBAZGtsaWJhbgogICAqIFJ1YnkgKEhUVFBYKTogQGhvbmV5cnlkZXJjaHVjawogICAqIFJ1c3Q6IEBmYXJjYWxsZXIKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgKHNjYWxheiAmIGh0dHA0cyk6IEB0YnJvd24xOTc5CiAgICogU2NhbGEgKEFra2EpOiBAY2NoYWZlcgogICAqIFNjYWxhIChzdHRwKTogQGNoYW1lbGVvbjgyCiAgICogU2NhbGEgKHN0dHA0KTogQGZsc2g4NgogICAqIFNjYWxhIChQZWtrbyk6IEBtaWNrYWVsbWFnbmllegogICAqIFN3aWZ0OiBAdGtxdWJvCiAgICogU3dpZnQgMzogQGhleGVsb24KICAgKiBTd2lmdCA0OiBAZWh5Y2hlCiAgICogU3dpZnQgNTogQDRicnVudQogICAqIFN3aWZ0IENvbWJpbmU6IEBkeWR1czB4MTQKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMSk6IEBtaGFyZG9yZgogICAqIFR5cGVTY3JpcHQgKEFuZ3VsYXIyKTogQHJvbmktZnJhbnRjaGkKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyNik6IEBha2VoaXIKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyNyk6IEB0b3BjZQogICAqIFR5cGVTY3JpcHQgKEF4aW9zKTogQG5pY29rb2VuaWcKICAgKiBUeXBlU2NyaXB0IChGZXRjaCk6IEBsZW9ueXUKICAgKiBUeXBlU2NyaXB0IChJbnZlcnNpZnkpOiBAZ3VhbHRpZXJpbQogICAqIFR5cGVTY3JpcHQgKGpRdWVyeSk6IEBiaGVyaWxhCiAgICogVHlwZVNjcmlwdCAoTmVzdGpzKTogQHZmcmFuazY2CiAgICogVHlwZVNjcmlwdCAoTm9kZSk6ICBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChSeGpzKTogQGRlbnlvCiAgICogVHlwZVNjcmlwdCAocmVkdXgtcXVlcnkpOiBAcGV0ZWpvaGFuc29ueG8KICAgKiBYb2pvOiBAVG9waGVlZQogICAqIFphcGllcjogQHZhbG1veiwgQGVtYWpvCiAqIFNlcnZlciBTdHVicwogICAqIEFkYTogQHN0Y2FycmV6CiAgICogQyMgQVNQLk5FVCA1OiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEMjIEFTUC5ORVQgQ29yZSAzLjA6IEBBLUpvc2hpCiAgICogQyMgQVBTLk5FVCBDb3JlIDMuMTogQHBoYXRjaGVyCiAgICogQyMgQXp1cmUgZnVuY3Rpb25zOiBAQWJyaG03Nzg2CiAgICogQyMgTmFuY3lGWDogQG1zdGVmYW5pdWsKICAgKiBDKysgKFF0NSBRSHR0cEVuZ2luZSk6IEBldGhlcmVhbGpveQogICAqIEMrKyBQaXN0YWNoZTogQHNlYnltaWFubwogICAqIEMrKyBSZXN0YmVkOiBAc3RrcndvcmsKICAgKiBFcmxhbmcgU2VydmVyOiBAZ2FsYXhpZQogICAqIEYjIChHaXJhZmZlKSBTZXJ2ZXI6IEBubWZpc2hlcgogICAqIEdvIFNlcnZlcjogQGd1b2h1YW5nCiAgICogR28gU2VydmVyIChyZWZhY3RvcmVkIGluIDcuMC4wKTogQGx3ajUKICAgKiBHbyAoRWNobykgU2VydmVyOiBAcGg0cjVoNGQKICAgKiBHbyAoR2luKSBTZXJ2ZXI6IEBrZW1va2VtbwogICAqIEdyYXBoUUwgRXhwcmVzcyBTZXJ2ZXI6IEByZW5lcGFyZG9uCiAgICogSGFza2VsbCBTZXJ2YW50OiBAYWxnYXMKICAgKiBIYXNrZWxsIFllc29kOiBAeW90c3V5YQogICAqIEphdmEgQ2FtZWw6IEBjYXJuZXZhbGVnaWFjb21vCiAgICogSmF2YSBNU0Y0SjogQHNhbmplZXdhLW1hbGFsZ29kYQogICAqIEphdmEgU3ByaW5nIEJvb3Q6IEBkaXlmcgogICAqIEphdmEgVW5kZXJ0b3c6IEBzdGV2ZWh1CiAgICogSmF2YSBQbGF5IEZyYW1ld29yazogQEpGQ290ZQogICAqIEphdmEgUEtNU1Q6IEBhbnNodTIxODUgQHNhbnNodW1hbiBAcmt1bWFyLXBrIEBuaW5vZHBpbGxhaQogICAqIEphdmEgVmVydC54OiBAbHdsZWUyNjA4CiAgICogSmF2YSBNaWNyb25hdXQ6IEBhbmRyaXktZG15dHJ1awogICAqIEphdmEgSGVsaWRvbjogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEphdmEgV2lyZU1vY2s6IFtAYWNvdXZyZXVyXShodHRwczovL2dpdGh1Yi5jb20vYWNvdXZyZXVyKQogICAqIEpBWC1SUyBSZXN0RWFzeTogQGNoYW1lbGVvbjgyCiAgICogSkFYLVJTIENYRjogQGhpdmVzaGlwCiAgICogSkFYLVJTIENYRiAoQ0RJKTogQG5pY2tjbWF5bmFyZAogICAqIEpBWC1SUyBSZXN0RWFzeSAoSkJvc3MgRUFQKTogQGpmaWFsYQogICAqIEp1bGlhOiBAdGFubWF5a20KICAgKiBLb3RsaW46IEBqaW1zY2h1YmVydCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiAgICogS290bGluIChTcHJpbmcgQm9vdCk6IEBkcjRrZTYxNgogICAqIEtvdGxpbiAoVmVydHgpOiBAV29veW1lCiAgICogS290bGluIChKQVgtUlMpOiBAYW50dGlsZXBwYQogICAqIEtvdGxpbiBXaXJlTW9jazogQHN0ZWZhbmtvcHBpZXIKICAgKiBOb2RlSlMgRXhwcmVzczogQFlpc2hUaXNoCiAgICogUEhQIEZsaWdodDogQGRhbmllbC1zYwogICAqIFBIUCBMYXJhdmVsOiBAcmVuZXBhcmRvbgogICAqIFBIUCBMdW1lbjogQGFiY3N1bgogICAqIFBIUCBNZXp6aW8gKHdpdGggUGF0aCBIYW5kbGVyKTogQEFydGljdXMKICAgKiBQSFAgU2xpbTogQGpmYXN0bmFjaHQKICAgKiBQSFAgU2xpbTQ6IFtAeWJlbGVua29dKGh0dHBzOi8vZ2l0aHViLmNvbS95YmVsZW5rbykKICAgKiBQSFAgU3ltZm9ueTogQGtzbTIKICAgKiBQSFAgU3ltZm9ueTY6IEBCZW5qYW1pbkhhZQogICAqIFB5dGhvbiBGYXN0QVBJOiBAa3JqYWticmphawogICAqIFB5dGhvbiBBSU9IVFRQOgogICAqIFJ1Ynkgb24gUmFpbHMgNTogQHpseAogICAqIFJ1c3QgKHJ1c3Qtc2VydmVyKTogQG1ldGFzd2l0Y2gKICAgKiBTY2FsYSBBa2thOiBAQm91aWxsaWUKICAgKiBTY2FsYSBDYXNrOiBAYWFyb25wCiAgICogU2NhbGEgRmluY2g6IEBqaW1zY2h1YmVydCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiAgICogU2NhbGEgTGFnb206IEBnbWt1bWFyMjAwNQogICAqIFNjYWxhIFBsYXk6IEBhZGlnZXJiZXIKICogRG9jdW1lbnRhdGlvbgogICAqIEFzY2lpRG9jOiBAbWFuLWF0LWhvbWUKICAgKiBIVE1MIERvYyAyOiBAamhpdGNoY29jawogICAqIENvbmZsdWVuY2UgV2lraTogQGpoaXRjaGNvY2sKICAgKiBQbGFudFVNTDogQHBidXJscwogKiBDb25maWd1cmF0aW9uCiAgICogQXBhY2hlMjogQHN0a3J3b3JrCiAgICogazY6IEBtb3N0YWZhCiAqIFNjaGVtYQogICAqIEF2cm86IEBzZ2Fkb3VhcgogICAqIEdyYXBoUUw6IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIEt0b3JtOiBATHVpei1Nb25hZAogICAqIE15U1FMOiBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pCiAgICogUG9zdG1hbiBDb2xsZWN0aW9uOiBAZ2NhdGFuZXNlCiAgICogUHJvdG9jb2wgQnVmZmVyOiBAd2luZzMyOAogICAqIFdTREw6IEBhZGVzc29EcGQKCjpoZWFydDogPSBMaW5rIHRvIHN1cHBvcnQgdGhlIGNvbnRyaWJ1dG9yIGRpcmVjdGx5CgojIyMjIEhvdyB0byBqb2luIHRoZSBjb3JlIHRlYW0KCkhlcmUgYXJlIHRoZSByZXF1aXJlbWVudHMgdG8gYmVjb21lIGEgY29yZSB0ZWFtIG1lbWJlcjoKLSByYW5rIHdpdGhpbiB0b3AgNTAgaW4gaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9ncmFwaHMvY29udHJpYnV0b3JzCiAgLSB0byBjb250cmlidXRlLCBoZXJlIGFyZSBzb21lIGdvb2QgW3N0YXJ0aW5nIHBvaW50c10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXM/cT1pcyUzQW9wZW4raXMlM0Fpc3N1ZStsYWJlbCUzQSUyMmhlbHArd2FudGVkJTIyKQotIHJlZ3VsYXIgY29udHJpYnV0aW9ucyB0byB0aGUgcHJvamVjdAogIC0gYWJvdXQgMyBob3VycyBwZXIgd2VlawogIC0gZm9yIGNvbnRyaWJ1dGlvbiwgaXQgY2FuIGJlIGFkZHJlc3NpbmcgaXNzdWVzLCByZXZpZXdpbmcgUFJzIHN1Ym1pdHRlZCBieSBvdGhlcnMsIHN1Ym1pdHRpbmcgUFIgdG8gZml4IGJ1Z3Mgb3IgbWFrZSBlbmhhbmNlbWVudHMsIGV0YwogIC0gbXVzdCBiZSBhY3RpdmUgaW4gdGhlIHBhc3QgMyBtb250aHMgYXQgdGhlIHRpbWUgb2YgYXBwbGljYXRpb24KCiBUbyBqb2luIHRoZSBjb3JlIHRlYW0sIHBsZWFzZSByZWFjaCBvdXQgdG8gdGVhbUBvcGVuYXBpdG9vbHMub3JnIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIFRvIGJlY29tZSBhIFRlbXBsYXRlIENyZWF0b3IsIHNpbXBseSBzdWJtaXQgYSBQUiBmb3IgbmV3IEFQSSBjbGllbnQgKGUuZy4gUnVzdCwgRWxpeGlyKSBvciBzZXJ2ZXIgc3R1YiAoZS5nLiBSdWJ5IEdyYXBlKSBnZW5lcmF0b3IuCgojIyMgWzYuMiAtIE9wZW5BUEkgR2VuZXJhdG9yIFRlY2huaWNhbCBDb21taXR0ZWVdKCN0YWJsZS1vZi1jb250ZW50cykKCk1lbWJlcnMgb2YgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRlY2huaWNhbCBjb21taXR0ZWUgc2hvdWxkZXIgdGhlIGZvbGxvd2luZyByZXNwb25zaWJpbGl0aWVzOgoKLSBQcm92aWRlcyBndWlkYW5jZSBhbmQgZGlyZWN0aW9uIHRvIG90aGVyIHVzZXJzCi0gUmV2aWV3cyBwdWxsIHJlcXVlc3RzIGFuZCBpc3N1ZXMKLSBJbXByb3ZlcyB0aGUgZ2VuZXJhdG9yIGJ5IG1ha2luZyBlbmhhbmNlbWVudHMsIGZpeGluZyBidWdzIG9yIHVwZGF0aW5nIGRvY3VtZW50YXRpb25zCi0gU2V0cyB0aGUgdGVjaG5pY2FsIGRpcmVjdGlvbiBvZiB0aGUgZ2VuZXJhdG9yCgpXaG8gaXMgZWxpZ2libGU/IFRob3NlIHdobyB3YW50IHRvIGpvaW4gbXVzdCBoYXZlIGF0IGxlYXN0IDMgUFJzIG1lcmdlZCBpbnRvIGEgZ2VuZXJhdG9yLiAoRXhjZXB0aW9ucyBjYW4gYmUgZ3JhbnRlZCB0byB0ZW1wbGF0ZSBjcmVhdG9ycyBvciBjb250cmlidXRvcnMgd2hvIGhhdmUgbWFkZSBhIGxvdCBvZiBjb2RlIGNoYW5nZXMgd2l0aCBsZXNzIHRoYW4gMyBtZXJnZWQgUFJzKQoKSWYgeW91IHdhbnQgdG8gam9pbiB0aGUgY29tbWl0dGVlLCBwbGVhc2Uga2luZGx5IGFwcGx5IGJ5IHNlbmRpbmcgYW4gZW1haWwgdG8gdGVhbUBvcGVuYXBpdG9vbHMub3JnIHdpdGggeW91ciBHaXRodWIgSUQuCgojIyMjIE1lbWJlcnMgb2YgVGVjaG5pY2FsIENvbW1pdHRlZQoKfCBMYW5ndWFnZXMvR2VuZXJhdG9ycyAgfCBNZW1iZXIgKGpvaW4gZGF0ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IEFjdGlvblNjcmlwdCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBZGEgICAgICAgICAgICAgICAgICAgfCBAc3RjYXJyZXogKDIwMTgvMDIpIEBtaWNoZWxlYWxiYW5vICgyMDE4LzAyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQW5kcm9pZCAgICAgICAgICAgICAgIHwgQGphei1haCAoMjAxNy8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFwZXggICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBCYXNoICAgICAgICAgICAgICAgICAgfCBAZnJvbCAoMjAxNy8wNykgQGJrcnl6YSAoMjAxNy8wOCkgQGtlbmpvbmVzLWNpc2NvICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQyAgICAgICAgICAgICAgICAgICAgIHwgQHpoZW1hbnQgKDIwMTgvMTEpIEBpdHl1aHVpICgyMDE5LzEyKSBAbWljaGVsZWFsYmFubyAoMjAyMC8wMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEMrKyAgICAgICAgICAgICAgICAgICB8IEByYXZpbmlrYW0gKDIwMTcvMDcpIEBzdGtyd29yayAoMjAxNy8wNykgQGV0aGVyZWFsam95ICgyMDE4LzAyKSBAbWFydGluZGVsaWxsZSAoMjAxOC8wMykgQG11dHRsZXl4ZCAoMjAxOS8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDIyAgICAgICAgICAgICAgICAgICAgfCBAbWFuZHJlYW4gKDIwMTcvMDgpIEBzaGliYXlhbiAoMjAyMC8wMikgQEJsYWNrY2xhd3MgKDIwMjEvMDMpIEBsdWNhbWF6emFudGkgKDIwMjEvMDUpIEBpQmljaGEgKDIwMjMvMDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IENsb2p1cmUgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDcnlzdGFsICAgICAgICAgICAgICAgfCBAY3lhbmdsZSAoMjAyMS8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRGFydCAgICAgICAgICAgICAgICAgIHwgQGphdW1hcmQgKDIwMTgvMDkpIEBqb3NoLWJ1cnRvbiAoMjAxOS8xMikgQGFtb25kbmV0ICgyMDE5LzEyKSBAc2J1LVdCVCAoMjAyMC8xMikgQGt1aG5yb3lhbCAoMjAyMC8xMikgQGFnaWxvYiAoMjAyMC8xMikgQGFobWVkbmZ3ZWxhICgyMDIxLzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVpZmZlbCAgICAgICAgICAgICAgICB8IEBqdmVsaWxsYSAoMjAxNy8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFbGl4aXIgICAgICAgICAgICAgICAgfCBAbXJtc3RuICgyMDE4LzEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRWxtICAgICAgICAgICAgICAgICAgIHwgQGVyaWt0aW0gKDIwMTgvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVybGFuZyAgICAgICAgICAgICAgICB8IEB0c2xvdWdodGVyICgyMDE3LzExKSBAamZhY29ycm8gKDIwMTgvMTApIEByb2JlcnRvYWxvaSAoMjAxOC8xMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBGIyAgICAgICAgICAgICAgICAgICAgfCBAbm1maXNoZXIgKDIwMTkvMDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR28gICAgICAgICAgICAgICAgICAgIHwgQGFudGloYXggKDIwMTcvMTEpIEBncm9raWZ5ICgyMDE4LzA3KSBAa2Vtb2tlbW8gKDIwMTgvMDkpIEBqaXJpa3VuY2FyICgyMDIxLzAxKSBAcGg0cjVoNGQgKDIwMjEvMDQpIEBsd2o1ICgyMDIzLzA0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHcmFwaFFMICAgICAgICAgICAgICAgfCBAcmVuZXBhcmRvbiAoMjAxOC8xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR3Jvb3Z5ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEhhc2tlbGwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKYXZhICAgICAgICAgICAgICAgICAgfCBAYmJkb3VnbGFzICgyMDE3LzA3KSBAc3JlZXNoYXMgKDIwMTcvMDgpIEBqZmlhbGEgKDIwMTcvMDgpIEBsdWtveWFub3YgKDIwMTcvMDkpIEBjYm9ybmV0ICgyMDE3LzA5KSBAamVmZjlmaW5nZXIgKDIwMTgvMDEpIEBrYXJpc21hbm4gKDIwMTkvMDMpIEBab216b2cgKDIwMTkvMDQpIEBsd2xlZTI2MDggKDIwMTkvMTApIEBtYXJ0aW4tbWZnICgyMDIzLzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEphdmEgU3ByaW5nICAgICAgICAgICB8IEBjYWNoZXNjcnViYmVyICgyMDIyLzAyKSBAd2Vsc2htICgyMDIyLzAyKSBATWVsbGVEICgyMDIyLzAyKSBAYXRleHRvciAoMjAyMi8wMikgQG1hbmVkZXY3OSAoMjAyMi8wMikgQGphdmlzc3QgKDIwMjIvMDIpIEBib3JzY2ggKDIwMjIvMDIpIEBiYW5sZXZlbnRlICgyMDIyLzAyKSBAWm9tem9nICgyMDIyLzA5KSBAbWFydGluLW1mZyAoMjAyMy8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSk1ldGVyICAgICAgICAgICAgICAgIHwgQGthbm5reW8gKDIwMjEvMDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEpldGJyYWlucyBIVFRQIENsaWVudCB8IEBqbGVuZ3JhbmQgKDIwMjMvMDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKdWxpYSAgICAgICAgICAgICAgICAgfCBAdGFubWF5a20gKDIwMjMvMDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgS290bGluICAgICAgICAgICAgICAgIHwgQGRyNGtlNjE2ICgyMDE4LzA4KSBAa2FyaXNtYW5uICgyMDE5LzAzKSBAWm9tem9nICgyMDE5LzA0KSBAYW5kcmV3ZW1lcnkgKDIwMTkvMTApIEA0YnJ1bnUgKDIwMTkvMTEpIEB5dXRha2EwbSAoMjAyMC8wMykgQHN0ZWZhbmtvcHBpZXIgKDIwMjIvMDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTHVhICAgICAgICAgICAgICAgICAgIHwgQGRhdXJuaW1hdG9yICgyMDE3LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE40SlMgICAgICAgICAgICAgICAgICB8IEBtbWV3cy1uNCAoMjAyMy8wMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBOaW0gICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTm9kZUpTL0phdmFzY3JpcHQgICAgIHwgQENvZGVOaW5qYWkgKDIwMTcvMDcpIEBmcm9sICgyMDE3LzA3KSBAY2xpZmZhbm8gKDIwMTcvMDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE9iakMgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPQ2FtbCAgICAgICAgICAgICAgICAgfCBAY2dlbnNvdWwgKDIwMTkvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUGVybCAgICAgICAgICAgICAgICAgIHwgQHdpbmczMjggKDIwMTcvMDcpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KSBAeXVlOTk0NDg4MiAoMjAxOS8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBIUCAgICAgICAgICAgICAgICAgICB8IEBqZWJlbnRpZXIgKDIwMTcvMDcpLCBAZGthcmxvdmkgKDIwMTcvMDcpLCBAbWFuZHJlYW4gKDIwMTcvMDgpLCBAamZhc3RuYWNodCAoMjAxNy8wOSksIFtAeWJlbGVua29dKGh0dHBzOi8vZ2l0aHViLmNvbS95YmVsZW5rbykgKDIwMTgvMDcpLCBAcmVuZXBhcmRvbiAoMjAxOC8xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQb3dlclNoZWxsICAgICAgICAgICAgfCBAd2luZzMyOCAoMjAyMC8wNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUHl0aG9uICAgICAgICAgICAgICAgIHwgQGNib3JuZXQgKDIwMTcvMDkpIEB0b21wbHVzICgyMDE4LzEwKSBAa3JqYWticmphayAoMjAyMy8wMikgQGZhMDMxMSAoMjAyMy8xMCkgQG11bHRhbmkgKDIwMjMvMTApIHwKfCBSICAgICAgICAgICAgICAgICAgICAgfCBAUmFtYW50aCAoMjAxOS8wNykgQHNhaWdpcmlkaGFyMjEgKDIwMTkvMDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUnVieSAgICAgICAgICAgICAgICAgIHwgQGNsaWZmYW5vICgyMDE3LzA3KSBAemx4ICgyMDE3LzA5KSBAYXV0b3BwICgyMDE5LzAyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFJ1c3QgICAgICAgICAgICAgICAgICB8IEBmcm9sICgyMDE3LzA3KSBAZmFyY2FsbGVyICgyMDE3LzA4KSBAcmljaGFyZHdoaXVrICgyMDE5LzA3KSBAcGFsYWRpbnpoICgyMDIwLzA1KSBAamFjb2ItcHJvICgyMDIyLzEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBTY2FsYSAgICAgICAgICAgICAgICAgfCBAY2xhc25ha2UgKDIwMTcvMDcpLCBAc2hpamlua3VpICAoMjAxOC8wMSksIEByYW16aW1hYWxlaiAoMjAxOC8wMyksIEBjaGFtZWxlb244MiAoMjAyMC8wMyksIEBCb3VpbGxpZSAoMjAyMC8wNCkgQGZpc2g4NiAoMjAyMy8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU3dpZnQgICAgICAgICAgICAgICAgIHwgQGpnYXZyaXMgKDIwMTcvMDcpIEBlaHljaGUgKDIwMTcvMDgpIEBFZHViaXRzICgyMDE3LzA5KSBAamF6LWFoICgyMDE3LzA5KSBANGJydW51ICgyMDE5LzExKSBAZHlkdXMweDE0ICgyMDIzLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFR5cGVTY3JpcHQgICAgICAgICAgICB8IEBUaUZ1ICgyMDE3LzA3KSBAdGF4cG9uICgyMDE3LzA3KSBAc2ViYXN0aWFuaGFhcyAoMjAxNy8wNykgQGtlbmlzdGV3YXJkICgyMDE3LzA3KSBAVnJvbGlqa3ggKDIwMTcvMDkpIEBtYWNqb2hubnkgKDIwMTgvMDEpIEB0b3BjZSAoMjAxOC8xMCkgQGFrZWhpciAoMjAxOS8wNykgQHBldGVqb2hhbnNvbnhvICgyMDE5LzExKSBAYW1ha2hyb3YgKDIwMjAvMDIpIEBkYXZpZGdhbWVybyAoMjAyMi8wMykgQG1rdXNha2EgKDIwMjIvMDQpIHwKfCBYb2pvICAgICAgICAgICAgICAgICAgfCBAVG9waGVlZSAoMjAyMy8wNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgoKUGFzdCBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWU6CnwgTGFuZ3VhZ2VzL0dlbmVyYXRvcnMgICAgICAgICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFB5dGhvbiAgICAgICAgICAgIHwgQHRheHBvbiAoMjAxNy8wNykgQGZyb2wgKDIwMTcvMDcpIEBtYm9obG9vbCAoMjAxNy8wNykgQGNib3JuZXQgKDIwMTcvMDkpIEBrZW5qb25lcy1jaXNjbyAoMjAxNy8xMSkgQHRvbXBsdXMgKDIwMTgvMTApIEBhcnVuLW5hbGxhICgyMDE5LzExKSAgfAoKCjpoZWFydDogPSBMaW5rIHRvIHN1cHBvcnQgdGhlIGNvbnRyaWJ1dG9yIGRpcmVjdGx5CgojIyMgWzYuMyAtIEhpc3Rvcnkgb2YgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCk9wZW5BUEkgR2VuZXJhdG9yIGlzIGEgZm9yayBvZiBbU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKS4gSW4gdmlldyBvZiB0aGUgaXNzdWVzIHdpdGggdGhlIFN3YWdnZXIgQ29kZWdlbiAzLjAuMCAoYmV0YSkgcmVsZWFzZSBhbmQgdGhlIGRpc2FncmVlbWVudCBvbiB0aGUgcHJvamVjdCdzIGRpcmVjdGlvbiwgbW9yZSB0aGFuIDQwIHRvcCBjb250cmlidXRvcnMgYW5kIHRlbXBsYXRlIGNyZWF0b3JzIG9mIFN3YWdnZXIgQ29kZWdlbiBkZWNpZGVkIHRvIGZvcmsgU3dhZ2dlciBDb2RlZ2VuIGFuZCBtYWludGFpbiBhIGNvbW11bml0eS1kcml2ZW4gdmVyc2lvbiBjYWxsZWQgIk9wZW5BUEkgR2VuZXJhdG9yIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSBbUSZBXShkb2NzL3FuYS5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMjIEZvdW5kaW5nIE1lbWJlcnMgKGFscGhhYmV0aWNhbCBvcmRlcik6CgotIFtBa2loaXRvIE5ha2Fub10oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSBbQXJ0ZW0gT2NoZXJlZGtvXShodHRwczovL2dpdGh1Yi5jb20vZ2FsYXhpZSkKLSBbQXJ0aHVyIE1vZ2xpZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9BcnRpY3VzKQotIFtCYXJ0ZWsgS3J5emFdKGh0dHBzOi8vZ2l0aHViLmNvbS9ia3J5emEpCi0gW0JlbiBXZWxsc10oaHR0cHM6Ly9naXRodWIuY29tL2J2d2VsbHMpCi0gW0JlbmphbWluIEdpbGxdKGh0dHBzOi8vZ2l0aHViLmNvbS9iamdpbGwpCi0gW0NocmlzdG9waGUgQm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkKLSBbQ2xpZmZhbm8gU3ViYWdpb10oaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmYW5vKQotIFtEYWlraSBNYXRzdWRhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kLWRhdGUpCi0gW0RhbmllbF0oaHR0cHM6Ly9naXRodWIuY29tL0RhbmllbGt1MTUpCi0gW0VtaWxpYW5vIEJvbmFzc2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbWlsaWFub2JvbmFzc2kpCi0gW0VyaWsgVGltbWVyc10oaHR0cHM6Ly9naXRodWIuY29tL2VyaWt0aW0pCi0gW0VzdGViYW4gR2VocmluZ10oaHR0cHM6Ly9naXRodWIuY29tL21hY2pvaG5ueSkKLSBbR3VzdGF2byBQYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9ndXN0YXZvYXBheikKLSBbSmF2aWVyIFZlbGlsbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdmVsaWxsYSkKLSBbSmVhbi1GcmFuw6dvaXMgQ8O0dMOpXShodHRwczovL2dpdGh1Yi5jb20vSkZDb3RlKQotIFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkKLSBbSm9uIFNjaG9uaW5nXShodHRwczovL2dpdGh1Yi5jb20vam9uc2Nob25pbmcpCi0gW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKLSBbSsO2cm4gQWhyZW5zXShodHRwczovL2dpdGh1Yi5jb20vamF5ZWFybikKLSBbS2VuaSBTdGV3YXJkXShodHRwczovL2dpdGh1Yi5jb20va2VuaXN0ZXdhcmQpCi0gW01hcmNpbiBTdGVmYW5pdWtdKGh0dHBzOi8vZ2l0aHViLmNvbS9tc3RlZmFuaXVrKQotIFtNYXJ0aW4gRGVsaWxsZV0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbkRlbGlsbGUpCi0gW01hc2FoaXJvIFlhbWF1Y2hpXShodHRwczovL2dpdGh1Yi5jb20vYWxnYXMpCi0gW01pY2hlbGUgQWxiYW5vXShodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWFsYmFubykKLSBbUmFtemkgTWFhbGVqXShodHRwczovL2dpdGh1Yi5jb20vcmFtemltYWFsZWopCi0gW1JhdmluZHJhIE5pa2FtXShodHRwczovL2dpdGh1Yi5jb20vcmF2aW5pa2FtKQotIFtSaWNhcmRvIENhcmRvbmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9yaWNhcmRvbmEpCi0gW1NlYmFzdGlhbiBIYWFzXShodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuaGFhcykKLSBbU2ViYXN0aWFuIE1hbmRyZWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFuZHJlYW4pCi0gW1NyZWVuaWRoaSBTcmVlc2hhXShodHRwczovL2dpdGh1Yi5jb20vc3JlZXNoYXMpCi0gW1N0ZWZhbiBLcmlzbWFubl0oaHR0cHM6Ly9naXRodWIuY29tL3N0a3J3b3JrKQotIFtTdGVwaGFuZSBDYXJyZXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGNhcnJleikKLSBbVGFrdXJvIFdhZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pCi0gW1RvbWFzeiBQcnVzXShodHRwczovL2dpdGh1Yi5jb20vdG9tcGx1cykKLSBbVHJpc3RhbiBTbG91Z2h0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90c2xvdWdodGVyKQotIFtWaWN0b3IgT3Jsb3Zza3ldKGh0dHBzOi8vZ2l0aHViLmNvbS92aWNsb3Zza3kpCi0gW1ZpY3RvciBUcmFraHRlbmJlcmddKGh0dHBzOi8vZ2l0aHViLmNvbS92aWN0b3JnaXQpCi0gW1ZsYWQgRnJvbG92XShodHRwczovL2dpdGh1Yi5jb20vZnJvbCkKLSBbVmxhZGltaXIgUG91emFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXJjYWxsZXIpCi0gW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KQotIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3VzZXIvb3ZlcnZpZXc/dT0xNjQzNTM4NSkKLSBbWHUgSHVpIEh1aV0oaHR0cHM6Ly9naXRodWIuY29tL3hoaCkKLSBbYW50aWhheF0oaHR0cHM6Ly9naXRodWIuY29tL2FudGloYXgpCi0gW2JlYXRjcmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYmVhdGNyYWNrZXIpCi0gW2RhdXJuaW1hdG9yXShodHRwczovZ2l0aHViLmNvbS9kYXVybmltYXRvcikKLSBbZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkKLSBbamZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKQotIFtsdWtveWFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtveWFub3YpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMgWzcgLSBMaWNlbnNlXSgjdGFibGUtb2YtY29udGVudHMpCi0tLS0tLS0KCkNvcHlyaWdodCAyMDE4IE9wZW5BUEktR2VuZXJhdG9yIENvbnRyaWJ1dG9ycyAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQpDb3B5cmlnaHQgMjAxOCBTbWFydEJlYXIgU29mdHdhcmUKCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBbYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMF0oaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgotLS0K readmeEtag: '"42f6232b6c87128afbfa94bb335060f40da838b3"' readmeLastModified: Fri, 30 Aug 2024 14:26:00 GMT repositoryId: 133134007 description: >- OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3) created: '2018-05-12T09:57:56Z' updated: '2024-09-05T22:25:27Z' language: Java archived: false stars: 21226 watchers: 219 forks: 6429 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 repoEtag: '"e77fa14af26ba1676eeb7fa9fdbc1c54afbcbe67288efcfdc8961ae8102be30b"' repoLastModified: Thu, 05 Sep 2024 22:25:27 GMT foundInMaster: true id: 0418f8afcd0196c648d1a46c0c5c20d1 v3_1_link: https://github.com/OpenAPITools/openapi-generator/issues/9083 - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator v3: true id: b03b9d5fc0aef95c46d5d148a05798ce repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEpTT04gU2NoZW1hIEdlbmVyYXRvcgoKWyFbQ0kgVGVzdHNdKGh0dHBzOi8vZGwuY2lyY2xlY2kuY29tL3N0YXR1cy1iYWRnZS9pbWcvZ2gvb3BlbmFwaS1qc29uLXNjaGVtYS10b29scy9vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci90cmVlL21hc3Rlci5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9kbC5jaXJjbGVjaS5jb20vc3RhdHVzLWJhZGdlL3JlZGlyZWN0L2doL29wZW5hcGktanNvbi1zY2hlbWEtdG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpCgpBdXRvIGdlbmVyYXRlIGEgY2xpZW50IHNkayBmcm9tIHlvdXIgb3BlbmFwaSAzLjAuMC0zLjEuMCBkb2N1bWVudCB1c2luZyBPcGVuYXBpIEpTT04gU2NoZW1hIEdlbmVyYXRvci4gClRoaXMgcHJvamVjdCBpcyBhIGNvZGUgZ2VuZXJhdG9yIHRoYXQgZm9jdXNlcyBvbiBzdXBwb3J0aW5nIGFsbCBvcGVuYXBpIGFuZCBqc29uIHNjaGVtYSBmZWF0dXJlcy4KCiMjIE92ZXJ2aWV3Ck9wZW5BUEkgSlNPTiBTY2hlbWEgR2VuZXJhdG9yIGFsbG93cyBhdXRvLWdlbmVyYXRpb24gb2YgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNESyBnZW5lcmF0aW9uKSBnaXZlbiBhbgpbT3BlbkFQSSBkb2N1bWVudF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pICgzLjAuMC1bMy4xLjAqXSgjb3BlbmFwaS12MzEwLXN1cHBvcnQpIGFyZSBzdXBwb3J0ZWQpLgpUaGlzIHByb2plY3QgZm9jdXNlcyBvbiBtYWtpbmcgdGhlIG91dHB1dCAxMDAlIGNvbXBsaWFudCB3aXRoIG9wZW5hcGkgKyBKU09OIHNjaGVtYSBzcGVjcy4KVGhlIGdvYWwgaXMgdG8gZnVsbHkgc3VwcG9ydCBldmVyeXRoaW5nIGRlZmluZWQgaW4gb3BlbmFwaSArIHRoZSBpbmNsdWRlZCBKU09OIHNjaGVtYSBzcGVjcwpzbyBkZXZlbG9wZXJzIGNhbiB1c2UgYWxsIG9mIHRob3NlIGZlYXR1cmVzLgoKQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGxhbmd1YWdlcy9mcmFtZXdvcmtzIGFyZSBzdXBwb3J0ZWQ6Cgp8IEZlYXR1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW1B5dGhvbl0oZG9jcy9nZW5lcmF0b3JzL3B5dGhvbi5tZCkgfCBbSmF2YV0oZG9jcy9nZW5lcmF0b3JzL2phdmEubWQpIHwgW0tvdGxpbl0oZG9jcy9nZW5lcmF0b3JzL2tvdGxpbi5tZCkgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IEdlbmVyYXRvciBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc3RhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc3RhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgT3BlbmFwaSB2My4wLjAtMy4xLjAgaW5nZXN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSnNvbiBTY2hlbWEgMjAyMC0xMiBTdXBwb3J0IChjb21wb25lbnRzL3NjaGVtYXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQ29tcG9uZW50IHNjaGVtYSBjbGFzc2VzICsgZG9jdW1lbnRhdGlvbiBwcm9kdWNlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRG9jdW1lbnRhdGlvbiBwcm9kdWNlZCBmb3Igb3RoZXIgY29tcG9uZW50IHR5cGVzOjxicj5oZWFkZXJzLCBwYXJhbWV0ZXJzLCByZXF1ZXN0Qm9kaWVzLCByZXNzcG9uc2VzLCBzZWN1cml0eVNjaGVtZXMgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTWV0aG9kcyBnZW5lcmF0ZWQgZm9yIGVuZHBvaW50cyA8YnI+dGhhdCBzZW5kL3JlY2VpdmUganNvbiArIGRvY3MgZ2VuZXJhdGVkIGZvciB0aGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyBSZWFzb25zIFRvIFVzZSB0aGUgR2VuZXJhdG9ycwotIE9wZW5hcGkgc3BlYyBzdXBwb3J0IGZvciB2My4wLjAtMy4xLjAKICAtIHRob3JvdWdoIHRlc3RzIHJ1biBpbiBDSSB1c2luZyBqc29uIHNjaGVtYSB0ZXN0IHN1aXRlLCBzZWUgM18wXzAgYW5kIDNfMV8wIHNhbXBsZSBjbGllbnRzCi0gU3RhdGljIGFuYWx5c2lzOgogIC0gUHl0aG9uOiBteXB5IHJ1biBpbiBDSSBhZ2FpbnN0IHB5dGhvbiBwZXRzdG9yZSBzYW1wbGUKICAtIEphdmE6IGNoZWNrZXIgZnJhbWV3b3JrIHJ1biB3LyBOdWxsbmVzc0NoZWNrZXIsIGVuc3VyZXMgbm8gbnVsbCBwb2ludGVyIGV4Y2VwdGlvbnMKLSBGb3JtYXQgc3VwcG9ydCBmb3I6IGludDMyLCBpbnQ2NCwgZmxvYXQsIGRvdWJsZSwgYmluYXJ5LCBkYXRlLCBkYXRldGltZSwgdXVpZAotIEludmFsaWQgKGluIGxhbmd1YWdlKSBwcm9wZXJ0eSBuYW1lcyBzdXBwb3J0ZWQgbGlrZSBgZnJvbWAsIGAxdmFyYCwgYGhpLXRoZXJlYCBldGMgaW4KICAtIHNjaGVtYSBwcm9wZXJ0eSBuYW1lcwogIC0gZW5kcG9pbnQgcGFyYW1ldGVyIG5hbWVzCi0gT3BlbmFwaSBkb2N1bWVudCBpbmxpbmUgc2NoZW1hcyBzdXBwb3J0ZWQgYXQgYW55IGRlcHRoIGluIGFueSBsb2NhdGlvbgotIEdlbmVyYXRlZCBDb2RlOiBDbGFzcyArIG1ldGhvZCBpbnB1dHMgYXJlIHR5cGVkCi0gR2VuZXJhdGVkIENvZGU6IFN0YXRpYyB0eXBlIGNoZWNraW5nIGRvbmUgaW4gc3RhdGljIGxhbmd1YWdlcyB1c2luZyBidWlsZGVyIGlucHV0cyBhbmQgY2xhc3MgcHJvcGVydHkgYWNjZXNzCi0gR2VuZXJhdGVkIENvZGU6IHJ1bi10aW1lIHR5cGUgY2hlY2tpbmcgZG9uZSBpbiBhbGwgZ2VuZXJhdG9ycyAoYSBwYXlsb2FkIGNhbiBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBuIHNjaGVtYXMpCi0gR2VuZXJhdGVkIENvZGUgcmUtdXNlIGJ1aWx0IGluIGZyb20gdGhlIGdyb3VuZCB1cAogIC0gY29tcG9uZW50cy9zY2hlbWFzL2hlYWRlcnMgZXRjIGFyZSBnZW5lcmF0ZWQgYXMgc2VwYXJhdGUgY2xhc3NlcyBhbmQgaW1wb3J0ZWQgd2hlbiB1c2VkIHZpYSAkcmVmCi0gUGF5bG9hZCB2YWx1ZXMgYXJlIG5vdCBjb2VyY2VkIHdoZW4gdmFsaWRhdGVkLCBzbyBhIGRhdGUvZGF0ZS10aW1lIHZhbHVlIGNhbiBwYXNzIG90aGVyIHZhbGlkYXRpb25zIHRoYXQgZGVzY3JpYmUgdGhlIHBheWxvYWQgb25seSBhcyB0eXBlIHN0cmluZwotIFN0cmluZyB0cmFuc21pc3Npb24gb2YgbnVtYmVycyBzdXBwb3J0ZWQgd2l0aCB0eXBlOiBzdHJpbmcsIGZvcm1hdDogbnVtYmVyLCB2YWx1ZSBjYW4gYmUgYWNjZXNzZWQgYXMgYSBEZWNpbWFsIHdpdGggc2NoZW1hcy5hc19kZWNpbWFsKGluc3QpCi0gTXVsdGlwbGUgY29udGVudCB0eXBlcyBzdXBwb3J0ZWQgZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGJvZGllcwotIEVuZHBvaW50IHJlc3BvbnNlIGFsd2F5cyBhbHNvIGluY2x1ZGVzIHRoZSByYXcgcmVzcG9uc2UKLSBJbnRlcmZhY2VzIGtlcHQgY29uc2lzdGVudCBhY3Jvc3MgZ2VuZXJhdGVkIGxhbmd1YWdlcwoKIyMgSm9pbiBPdXIgQ29tbXVuaXR5CldlIHVzZSBhIERpc2NvcmQgc2VydmVyIGFzIGEgcGxhY2UgdG8gYXNrIHF1ZXN0aW9ucyBhbmQgaGVscCBlYWNoIG90aGVyLiBJdCBvZmZlcnMgZnVuY3Rpb25hbGl0eSB2ZXJ5IHNpbWlsYXIgdG8gU2xhY2suCllvdSBjYW4gam9pbiB1cyBoZXJlOiBodHRwczovL2Rpc2NvcmQuZ2cvbUhCOFdFUXVZUQoKIyMjIENhbiBJIGJ1aWxkIGhlcmU/CgpZZXM7IGNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUhClN1Ym1pdCBhIFBSIGlmIHlvdSB3YW50IHRvIGFkZCBhIG5ldyBzZXJ2ZXIgc2NhZmZvbGQsIGNsaWVudCBzZGssIG9yIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIGluIGFueSBsYW5ndWFnZS4KCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW09wZW5BUEkgSlNPTiBTY2hlbWEgR2VuZXJhdG9yXSgjb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IpCiAgLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFtUYWJsZSBvZiBDb250ZW50c10oI3RhYmxlLW9mLWNvbnRlbnRzKQogIC0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKICAgIC0gW0NvbXBhdGliaWxpdHldKCNjb21wYXRpYmlsaXR5KQogICAgLSBbQnVpbGQgUHJvamVjdHNdKCNidWlsZC1wcm9qZWN0cykKICAgIC0gW0RvY2tlcl0oI2RvY2tlcikKICAtIFtHZXR0aW5nIFN0YXJ0ZWRdKCNnZXR0aW5nLXN0YXJ0ZWQpCiAgLSBbVXNhZ2VdKCN1c2FnZSkKICAgIC0gW0N1c3RvbWl6YXRpb25dKCNjdXN0b21pemF0aW9uKQogICAgLSBbV29ya2Zsb3cgSW50ZWdyYXRpb25dKCN3b3JrZmxvdy1pbnRlZ3JhdGlvbikKICAgIC0gW0xpY2Vuc2UgSW5mb3JtYXRpb25dKCNsaWNlbnNlLWluZm9ybWF0aW9uKQogIC0gW0NvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBPcGVuQVBJIEpTT04gU2NoZW1hIEdlbmVyYXRvcl0oI2NvbXBhbmllc3Byb2plY3RzLXVzaW5nLW9wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yKQogIC0gW0Fib3V0IFVzXSgjYWJvdXQtdXMpCiAgICAtIFtIaXN0b3J5IG9mIE9wZW5BUEkgSlNPTiBTY2hlbWEgR2VuZXJhdG9yXSgjaGlzdG9yeS1vZi1vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvcikKICAtIFtMaWNlbnNlXSgjbGljZW5zZSkKCiMjIEluc3RhbGxhdGlvbgoKIyMjIENvbXBhdGliaWxpdHkKClRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gaGFzIHVuZGVyZ29uZSAzIHJldmlzaW9ucyBzaW5jZSBpbml0aWFsIGNyZWF0aW9uIGluIDIwMTAuICBUaGUgb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IgcHJvamVjdCBoYXMgdGhlIGZvbGxvd2luZyBjb21wYXRpYmlsaXRpZXMgd2l0aCB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uOgoKfCBPcGVuQVBJIEpTT04gU2NoZW1hIEdlbmVyYXRvciBWZXJzaW9uIHwgT3BlbkFQSSBTcGVjIGNvbXBhdGliaWxpdHkgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgMy4zLjArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMuMC4wIC0gWzMuMS4wKl0oI29wZW5hcGktdjMxMC1zdXBwb3J0KSB8CnwgMy4xLjAgLSAzLjIuMSAgICAgICAgICAgICAgICAgICAgICAgICB8IDMuMC4wIC0gWzMuMS4wXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1qc29uLXNjaGVtYS10b29scy9vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci9ibG9iLzMuMS4wL2RvY3MvZ2VuZXJhdG9ycy9weXRob24ubWQjc2NoZW1hLWZlYXR1cmUpIHwKfCAxLjAuMCAtIDMuMC4wICAgICAgICAgICAgICAgICAgICAgICAgIHwgMy4wLjAgLSAzLjAuMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMjIyBPcGVuQVBJIHYzLjEuMCBzdXBwb3J0Ck9wZW5BUEkgdjMuMS4wIHNwZWNpZmljYXRpb24gc3VwcG9ydCBpbmNsdWRlcyB0aGVzZSBuZXcvdXBkYXRlZCAyMDIwLTEyIGpzb24gc2NoZW1hIGtleXdvcmRzOgoxLiBjb25zdDogb25seSBzdHJpbmcgdmFsdWVzIGFyZSB3b3JraW5nIGJlY2F1c2Ugb2YgYnVncyBpbiBzd2FnZ2VyIHBhcnNlcgoyLiBjb250YWlucwozLiBkZXBlbmRlbnRSZXF1aXJlZAo0LiBkZXBlbmRlbnRTY2hlbWFzCjUuIGVsc2UKNi4gaWYKNy4gbWF4Q29udGFpbnMKOC4gbWluQ29udGFpbnMKOS4gcGF0dGVyblByb3BlcnRpZXMKMTAuIHByZWZpeEl0ZW1zCjExLiBwcm9wZXJ0eU5hbWVzCjEyLiB0aGVuCjEzLiB0eXBlIChhcnJheSBvZiB0eXBlcyBzdXBwb3J0ZWQgaW4gYWRkaXRpb24gdG8gb25lIG5vbi1hcnJheSB2YWx1ZSkKMTQuIHVuZXZhbHVhdGVkSXRlbXMKMTUuIHVuZXZhbHVhdGVkUHJvcGVydGllcwoKTm90ZTogdGhlc2UgZmVhdHVyZXMgY2FuIGFsc28gYmUgc2VlbiBpbiB0aGUgZ2VuZXJhdG9yIGRvY3VtZW50YXRpb24gW3NjaGVtYSBmZWF0dXJlc10oZG9jcy9nZW5lcmF0b3JzL3B5dGhvbi5tZCNzY2hlbWEtZmVhdHVyZSkKCiMjIyBCdWlsZCBQcm9qZWN0cwoKVG8gYnVpbGQgZnJvbSBzb3VyY2UsIHlvdSBuZWVkIHRoZSBmb2xsb3dpbmcgaW5zdGFsbGVkIGFuZCBhdmFpbGFibGUgaW4geW91ciBgJFBBVEg6YAoKKiBbSmF2YSAxMV0oaHR0cHM6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2luZGV4Lmh0bWwpCgoqIFtBcGFjaGUgTWF2ZW4gMy45LjMgb3IgZ3JlYXRlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLykKCkFmdGVyIGNsb25pbmcgdGhlIHByb2plY3QsIHlvdSBjYW4gYnVpbGQgaXQgZnJvbSBzb3VyY2Ugd2l0aCB0aGlzIGNvbW1hbmQ6CmBgYHNoCm12biBjbGVhbiBpbnN0YWxsCmBgYAoKVGhlIGRlZmF1bHQgYnVpbGQgY29udGFpbnMgbWluaW1hbCBzdGF0aWMgYW5hbHlzaXMgKHZpYSBDaGVja1N0eWxlKS4gVG8gcnVuIHlvdXIgYnVpbGQgd2l0aCBQTUQgYW5kIFNwb3RidWdzLCB1c2UgdGhlIGBzdGF0aWMtYW5hbHlzaXNgIHByb2ZpbGU6CgpgYGBzaAptdm4gLVBzdGF0aWMtYW5hbHlzaXMgY2xlYW4gaW5zdGFsbApgYGAKCiMjIyBEb2NrZXIKCiMjIyMgUHVibGljIFByZS1idWlsdCBEb2NrZXIgaW1hZ2VzCgogLSBbaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGlqc29uc2NoZW1hdG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3ItY2xpL10oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGlqc29uc2NoZW1hdG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3ItY2xpLykgKG9mZmljaWFsIENMSSkKCiMjIyMgT3BlbkFQSSBKU09OIFNjaGVtYSBHZW5lcmF0b3IgQ0xJIERvY2tlciBJbWFnZQoKVGhlIGRvY2tlciBpbWFnZSBhY3RzIGFzIGEgc3RhbmRhbG9uZSBleGVjdXRhYmxlLiBJdCBjYW4gYmUgdXNlZCBhcyBhbiBhbHRlcm5hdGl2ZSB0byBpbnN0YWxsaW5nIHZpYSBob21lYnJldywgb3IgZm9yIGRldmVsb3BlcnMgd2hvIGFyZSB1bmFibGUgdG8gaW5zdGFsbCBKYXZhIG9yIHVwZ3JhZGUgdGhlIGluc3RhbGxlZCB2ZXJzaW9uLgoKVG8gZ2VuZXJhdGUgY29kZSB3aXRoIHRoaXMgaW1hZ2UsIHlvdSdsbCBuZWVkIHRvIG1vdW50IGEgbG9jYWwgbG9jYXRpb24gYXMgYSB2b2x1bWUuCgpFeGFtcGxlOgoKYGBgc2gKZG9ja2VyIHJ1biAtLXJtIC12ICIke1BXRH06L2xvY2FsIiBvcGVuYXBpanNvbnNjaGVtYXRvb2xzL29wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaS1qc29uLXNjaGVtYS10b29scy9vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci9tYXN0ZXIvc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAgIC1nIHB5dGhvbiBcCiAgICAtbyAvbG9jYWwvb3V0L3B5dGhvbgpgYGAKClRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGxvY2F0ZWQgdW5kZXIgYC4vb3V0L3B5dGhvbmAgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgoKIyMjIyBEZXZlbG9wbWVudCBpbiBkb2NrZXIKCllvdSBjYW4gdXNlIGBiaW4vcnVuLWluLWRvY2tlci5zaGAgdG8gZG8gYWxsIGRldmVsb3BtZW50LiBUaGlzIHNjcmlwdCBtYXBzIHlvdXIgbG9jYWwgcmVwb3NpdG9yeSB0byBgL2dlbmAKaW4gdGhlIGRvY2tlciBjb250YWluZXIuIEl0IGFsc28gbWFwcyBgfi8ubTIvcmVwb3NpdG9yeWAgdG8gdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBsb2NhdGlvbi4KClRvIGV4ZWN1dGUgYG12biBwYWNrYWdlYDoKCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1qc29uLXNjaGVtYS10b29scy9vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvcgouL2Jpbi9ydW4taW4tZG9ja2VyLnNoIG12biBwYWNrYWdlCmBgYAoKQnVpbGQgYXJ0aWZhY3RzIGFyZSBub3cgYWNjZXNzaWJsZSBpbiB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5LgoKT25jZSBidWlsdCwgYHJ1bi1pbi1kb2NrZXIuc2hgIHdpbGwgYWN0IGFzIGFuIGV4ZWN1dGFibGUgZm9yIG9wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yLWNsaS4gVG8gZ2VuZXJhdGUgY29kZSwgeW91J2xsIG5lZWQgdG8gb3V0cHV0IHRvIGEgZGlyZWN0b3J5IHVuZGVyIGAvZ2VuYCAoZS5nLiBgL2dlbi9vdXRgKS4gRm9yIGV4YW1wbGU6CgpgYGBzaAouL2Jpbi9ydW4taW4tZG9ja2VyLnNoIGhlbHAgIyBFeGVjdXRlcyAnaGVscCcgY29tbWFuZCBmb3Igb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3ItY2xpCi4vYmluL3J1bi1pbi1kb2NrZXIuc2ggbGlzdCAjIEV4ZWN1dGVzICdsaXN0JyBjb21tYW5kIGZvciBvcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci1jbGkKLi9iaW4vcnVuLWluLWRvY2tlci5zaCAvZ2VuL2Jpbi9weXRob24tcGV0c3RvcmUuc2ggICMgQnVpbGRzIHRoZSBQeXRob24gY2xpZW50Ci4vYmluL3J1bi1pbi1kb2NrZXIuc2ggZ2VuZXJhdGUgLWkgc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAgIC1nIGdvIC1vIC9nZW4vb3V0L3B5dGhvbi1wZXRzdG9yZSAtcCBwYWNrYWdlTmFtZT1wZXRzdG9yZV9hcGkgIyBnZW5lcmF0ZXMgcHl0aG9uIGNsaWVudCwgb3V0cHV0cyBsb2NhbGx5IHRvIC4vb3V0L3B5dGhvbi1wZXRzdG9yZQpgYGAKCiMjIyMjIFRyb3VibGVzaG9vdGluZwoKSWYgYW4gZXJyb3IgbGlrZSB0aGlzIG9jY3VycywganVzdCBleGVjdXRlIHRoZSAqKm12biBjbGVhbiBpbnN0YWxsIC1VKiogY29tbWFuZDoKCj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuTGlmZWN5Y2xlRXhlY3V0aW9uRXhjZXB0aW9uOiBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1zdXJlZmlyZS1wbHVnaW46Mi4xOS4xOnRlc3QgKGRlZmF1bHQtdGVzdCkgb24gcHJvamVjdCBvcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvcjogQSB0eXBlIGluY29tcGF0aWJpbGl0eSBvY2N1cnJlZCB3aGlsZSBleGVjdXRpbmcgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjE5LjE6dGVzdDogamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBjYW5ub3QgYmUgY2FzdCB0byBqYXZhLmlvLklPRXhjZXB0aW9uCgpgYGBzaAouL3J1bi1pbi1kb2NrZXIuc2ggbXZuIGNsZWFuIGluc3RhbGwgLVUKYGBgCgo+IEZhaWxlZCB0byBleGVjdXRlIGdvYWwgb3JnLmZvcnRhc29mdDpncmFkbGUtbWF2ZW4tcGx1Z2luOjEuMC44Omludm9rZSAoZGVmYXVsdCkgb24gcHJvamVjdCBvcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luLW12bi13cmFwcGVyOiBvcmcuZ3JhZGxlLnRvb2xpbmcuQnVpbGRFeGNlcHRpb246IENvdWxkIG5vdCBleGVjdXRlIGJ1aWxkIHVzaW5nIEdyYWRsZSBkaXN0cmlidXRpb24gJ2h0dHBzOi8vc2VydmljZXMuZ3JhZGxlLm9yZy9kaXN0cmlidXRpb25zL2dyYWRsZS00LjctYmluLnppcCcKClJpZ2h0IG5vdzogbm8gc29sdXRpb24gZm9yIHRoaXMgb25lIDp8Cgo8IS0tIC9SRUxFQVNFX1ZFUlNJT04gLS0+CiMjIEdldHRpbmcgU3RhcnRlZAoKVG8gZ2VuZXJhdGUgYSBweXRob24gY2xpZW50IGZvciBbcGV0c3RvcmUueWFtbF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGktanNvbi1zY2hlbWEtdG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IvbWFzdGVyL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCksIHBsZWFzZSBydW4gdGhlIGZvbGxvd2luZwpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktanNvbi1zY2hlbWEtdG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IKY2Qgb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IKbXZuIGNsZWFuIHBhY2thZ2UKamF2YSAtamFyIHRhcmdldC9vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIFwKICAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGktanNvbi1zY2hlbWEtdG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IvbWFzdGVyL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgIC1nIHB5dGhvbiBcCiAgIC1vIC92YXIvdG1wL3B5dGhvbl9hcGlfY2xpZW50CmBgYAooaWYgeW91J3JlIG9uIFdpbmRvd3MsIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFuZCB3aXRoIGBqYXZhIC1qYXIgdGFyZ2V0XG9wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGktanNvbi1zY2hlbWEtdG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IvbWFzdGVyL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCAtZyBweXRob24gLW8gYzpcdGVtcFxweXRob25fYXBpX2NsaWVudGApCgpUbyBnZXQgYSBsaXN0IG9mICoqZ2VuZXJhbCoqIG9wdGlvbnMgYXZhaWxhYmxlLCBwbGVhc2UgcnVuIGBqYXZhIC1qYXIgdGFyZ2V0L29wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yLWNsaS5qYXIgaGVscCBnZW5lcmF0ZWAKClRvIGdldCBhIGxpc3Qgb2YgcHl0aG9uIHNwZWNpZmllZCBvcHRpb25zICh3aGljaCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBnZW5lcmF0b3Igd2l0aCBhIGNvbmZpZyBmaWxlIHZpYSB0aGUgYC1jYCBvcHRpb24pLCBwbGVhc2UgcnVuIGBqYXZhIC1qYXIgdGFyZ2V0L29wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yLWNsaS5qYXIgY29uZmlnLWhlbHAgLWcgcHl0aG9uYAoKIyMgVXNhZ2UKCiMjIyBUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeQpZb3UgY2FuIGJ1aWxkIGEgY2xpZW50IGFnYWluc3QgdGhlIFtQZXRzdG9yZSBBUEldKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpanNvbnNjaGVtYXRvb2xzL29wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yL21hc3Rlci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwpIGFzIGZvbGxvd3M6CgpgYGBzaAouL2Jpbi9nZW5lcmF0ZS1zYW1wbGVzLnNoIC4vYmluL2dlbmVyYXRlX3NhbXBsZXNfY29uZmlncy9weXRob24ueWFtbApgYGAKCihPbiBXaW5kb3dzLCBwbGVhc2UgaW5zdGFsbCBbR0lUIEJhc2ggZm9yIFdpbmRvd3NdKGh0dHBzOi8vZ2l0Zm9yd2luZG93cy5vcmcvKSB0byBydW4gdGhlIGNvbW1hbmQgYWJvdmUpCgpUaGlzIHNjcmlwdCB3aWxsIHJ1biB0aGUgZ2VuZXJhdG9yIHdpdGggdGhpcyBjb21tYW5kOgoKYGBgc2gKamF2YSAtamFyIHRhcmdldC9vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIFwKICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaWpzb25zY2hlbWF0b29scy9vcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci9tYXN0ZXIvc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAtZyBweXRob24gXAogIC10IHNyYy9tYWluL3Jlc291cmNlcy9weXRob24gXAogIC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzIHBhY2thZ2VOYW1lPXBldHN0b3JlX2FwaSBcCiAgLW8gc2FtcGxlcy9jbGllbnQvcGV0c3RvcmUvcHl0aG9uCmBgYAoKd2l0aCBhIG51bWJlciBvZiBvcHRpb25zLiBbVGhlIHB5dGhvbiBvcHRpb25zIGFyZSBkb2N1bWVudGVkIGhlcmUuXShkb2NzL2dlbmVyYXRvcnMvcHl0aG9uLm1kKQoKWW91IGNhbiBhbHNvIGdldCB0aGUgb3B0aW9ucyB3aXRoIHRoZSBgaGVscCBnZW5lcmF0ZWAgY29tbWFuZCAoYmVsb3cgb25seSBzaG93cyBwYXJ0aWFsIHJlc3VsdHMpOgoKYGBgCk5BTUUKICAgICAgICBvcGVuYXBpLWpzb24tc2NoZW1hLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgLSBHZW5lcmF0ZSBjb2RlIHdpdGggdGhlIHNwZWNpZmllZAogICAgICAgIGdlbmVyYXRvci4KClNZTk9QU0lTCiAgICAgICAgb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlCiAgICAgICAgICAgICAgICBbKC1hIDxhdXRob3JpemF0aW9uPiB8IC0tYXV0aCA8YXV0aG9yaXphdGlvbj4pXQogICAgICAgICAgICAgICAgWy0tYXBpLW5hbWUtc3VmZml4IDxhcGkgbmFtZSBzdWZmaXg+XSBbLS1hcGktcGFja2FnZSA8YXBpIHBhY2thZ2U+XQogICAgICAgICAgICAgICAgWy0tYXJ0aWZhY3QtaWQgPGFydGlmYWN0IGlkPl0gWy0tYXJ0aWZhY3QtdmVyc2lvbiA8YXJ0aWZhY3QgdmVyc2lvbj5dCiAgICAgICAgICAgICAgICBbKC1jIDxjb25maWd1cmF0aW9uIGZpbGU+IHwgLS1jb25maWcgPGNvbmZpZ3VyYXRpb24gZmlsZT4pXSBbLS1kcnktcnVuXQogICAgICAgICAgICAgICAgWygtZSA8dGVtcGxhdGluZyBlbmdpbmU+IHwgLS1lbmdpbmUgPHRlbXBsYXRpbmcgZW5naW5lPildCiAgICAgICAgICAgICAgICBbLS1lbmFibGUtcG9zdC1wcm9jZXNzLWZpbGVdCiAgICAgICAgICAgICAgICBbKC1nIDxnZW5lcmF0b3IgbmFtZT4gfCAtLWdlbmVyYXRvci1uYW1lIDxnZW5lcmF0b3IgbmFtZT4pXQogICAgICAgICAgICAgICAgWy0tZ2l0LWhvc3QgPGdpdCBob3N0Pl0gWy0tZ2l0LXJlcG8taWQgPGdpdCByZXBvIGlkPl0KICAgICAgICAgICAgICAgIFstLWdpdC11c2VyLWlkIDxnaXQgdXNlciBpZD5dIFstLWdsb2JhbC1wcm9wZXJ0eSA8Z2xvYmFsIHByb3BlcnRpZXM+Li4uXQogICAgICAgICAgICAgICAgWy0tZ3JvdXAtaWQgPGdyb3VwIGlkPl0gWy0taGlkZS1nZW5lcmF0aW9uLXRpbWVzdGFtcF0KICAgICAgICAgICAgICAgIFstLWh0dHAtdXNlci1hZ2VudCA8aHR0cCB1c2VyIGFnZW50Pl0KICAgICAgICAgICAgICAgIFsoLWkgPHNwZWMgZmlsZT4gfCAtLWlucHV0LXNwZWMgPHNwZWMgZmlsZT4pXQogICAgICAgICAgICAgICAgWy0taWdub3JlLWZpbGUtb3ZlcnJpZGUgPGlnbm9yZSBmaWxlIG92ZXJyaWRlIGxvY2F0aW9uPl0KICAgICAgICAgICAgICAgIFstLWludHMtYWxsb3dlZC1mb3ItZmxvYXQtZG91YmxlLWZvcm1hdHNdCiAgICAgICAgICAgICAgICBbLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT5dIFstLW1pbmltYWwtdXBkYXRlXQogICAgICAgICAgICAgICAgWy0tbW9kZWwtbmFtZS1wcmVmaXggPG1vZGVsIG5hbWUgcHJlZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD5dCiAgICAgICAgICAgICAgICBbKC1vIDxvdXRwdXQgZGlyZWN0b3J5PiB8IC0tb3V0cHV0IDxvdXRwdXQgZGlyZWN0b3J5PildIFsoLXAgPGFkZGl0aW9uYWwgcHJvcGVydGllcz4gfCAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPikuLi5dCiAgICAgICAgICAgICAgICBbLS1wYWNrYWdlLW5hbWUgPHBhY2thZ2UgbmFtZT5dIFstLXJlbGVhc2Utbm90ZSA8cmVsZWFzZSBub3RlPl0KICAgICAgICAgICAgICAgIFstLXJlbW92ZS1lbnVtLXZhbHVlLXByZWZpeF0gWy0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXhdCiAgICAgICAgICAgICAgICBbKC1zIHwgLS1za2lwLW92ZXJ3cml0ZSldIFstLXNraXAtb3BlcmF0aW9uLWV4YW1wbGVdCiAgICAgICAgICAgICAgICBbLS1za2lwLXZhbGlkYXRlLXNwZWNdIFstLXN0cmljdC1zcGVjIDx0cnVlL2ZhbHNlIHN0cmljdCBiZWhhdmlvcj5dCiAgICAgICAgICAgICAgICBbKC10IDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+IHwgLS10ZW1wbGF0ZS1kaXIgPHRlbXBsYXRlIGRpcmVjdG9yeT4pXQogICAgICAgICAgICAgICAgWygtdiB8IC0tdmVyYm9zZSldCmBgYAo8ZGV0YWlscz4KPHN1bW1hcnk+Z2VuZXJhdGUgT1BUSU9OUzwvc3VtbWFyeT4KCmBgYHRleHQKT1BUSU9OUwogICAgICAgIC1hIDxhdXRob3JpemF0aW9uPiwgLS1hdXRoIDxhdXRob3JpemF0aW9uPgogICAgICAgICAgICBhZGRzIGF1dGhvcml6YXRpb24gaGVhZGVycyB3aGVuIGZldGNoaW5nIHRoZSBPcGVuQVBJIGRlZmluaXRpb25zCiAgICAgICAgICAgIHJlbW90ZWx5LiBQYXNzIGluIGEgVVJMLWVuY29kZWQgc3RyaW5nIG9mIG5hbWU6aGVhZGVyIHdpdGggYSBjb21tYQogICAgICAgICAgICBzZXBhcmF0aW5nIG11bHRpcGxlIHZhbHVlcwoKICAgICAgICAtLWFwaS1uYW1lLXN1ZmZpeCA8YXBpIG5hbWUgc3VmZml4PgogICAgICAgICAgICBTdWZmaXggdGhhdCB3aWxsIGJlIGFwcGVuZGVkIHRvIGFsbCBBUEkgbmFtZXMgKCd0YWdzJykuIERlZmF1bHQ6CiAgICAgICAgICAgIEFwaS4gZS5nLiBQZXQgPT4gUGV0QXBpLiBOb3RlOiBPbmx5IHJ1YnksIHB5dGhvbiwgamF4cnMgZ2VuZXJhdG9ycwogICAgICAgICAgICBzdXBwb3J0IHRoaXMgZmVhdHVyZSBhdCB0aGUgbW9tZW50LgoKICAgICAgICAtLWFwaS1wYWNrYWdlIDxhcGkgcGFja2FnZT4KICAgICAgICAgICAgcGFja2FnZSBmb3IgZ2VuZXJhdGVkIGFwaSBjbGFzc2VzCgogICAgICAgIC0tYXJ0aWZhY3QtaWQgPGFydGlmYWN0IGlkPgogICAgICAgICAgICBhcnRpZmFjdElkIGluIGdlbmVyYXRlZCBwb20ueG1sLiBUaGlzIGFsc28gYmVjb21lcyBwYXJ0IG9mIHRoZQogICAgICAgICAgICBnZW5lcmF0ZWQgbGlicmFyeSdzIGZpbGVuYW1lCgogICAgICAgIC0tYXJ0aWZhY3QtdmVyc2lvbiA8YXJ0aWZhY3QgdmVyc2lvbj4KICAgICAgICAgICAgYXJ0aWZhY3QgdmVyc2lvbiBpbiBnZW5lcmF0ZWQgcG9tLnhtbC4gVGhpcyBhbHNvIGJlY29tZXMgcGFydCBvZiB0aGUKICAgICAgICAgICAgZ2VuZXJhdGVkIGxpYnJhcnkncyBmaWxlbmFtZQoKICAgICAgICAtYyA8Y29uZmlndXJhdGlvbiBmaWxlPiwgLS1jb25maWcgPGNvbmZpZ3VyYXRpb24gZmlsZT4KICAgICAgICAgICAgUGF0aCB0byBjb25maWd1cmF0aW9uIGZpbGUuIEl0IGNhbiBiZSBKU09OIG9yIFlBTUwuIElmIGZpbGUgaXMgSlNPTiwKICAgICAgICAgICAgdGhlIGNvbnRlbnQgc2hvdWxkIGhhdmUgdGhlIGZvcm1hdCB7Im9wdGlvbktleSI6Im9wdGlvblZhbHVlIiwKICAgICAgICAgICAgIm9wdGlvbktleTEiOiJvcHRpb25WYWx1ZTEiLi4ufS4gSWYgZmlsZSBpcyBZQU1MLCB0aGUgY29udGVudCBzaG91bGQKICAgICAgICAgICAgaGF2ZSB0aGUgZm9ybWF0IG9wdGlvbktleTogb3B0aW9uVmFsdWUuIFN1cHBvcnRlZCBvcHRpb25zIGNhbiBiZQogICAgICAgICAgICBkaWZmZXJlbnQgZm9yIGVhY2ggbGFuZ3VhZ2UuIFJ1biBjb25maWctaGVscCAtZyB7Z2VuZXJhdG9yIG5hbWV9CiAgICAgICAgICAgIGNvbW1hbmQgZm9yIGxhbmd1YWdlLXNwZWNpZmljIGNvbmZpZyBvcHRpb25zLgoKICAgICAgICAtLWRyeS1ydW4KICAgICAgICAgICAgVHJ5IHRoaW5ncyBvdXQgYW5kIHJlcG9ydCBvbiBwb3RlbnRpYWwgY2hhbmdlcyAod2l0aG91dCBhY3R1YWxseQogICAgICAgICAgICBtYWtpbmcgY2hhbmdlcykuCgogICAgICAgIC1lIDx0ZW1wbGF0aW5nIGVuZ2luZT4sIC0tZW5naW5lIDx0ZW1wbGF0aW5nIGVuZ2luZT4KICAgICAgICAgICAgdGVtcGxhdGluZyBlbmdpbmU6ICJoYW5kbGViYXJzIihkZWZhdWx0KSBvciAibXVzdGFjaGUiCgogICAgICAgIC0tZW5hYmxlLXBvc3QtcHJvY2Vzcy1maWxlCiAgICAgICAgICAgIEVuYWJsZSBwb3N0LXByb2Nlc3NpbmcgZmlsZSB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgogICAgICAgIC1nIDxnZW5lcmF0b3IgbmFtZT4sIC0tZ2VuZXJhdG9yLW5hbWUgPGdlbmVyYXRvciBuYW1lPgogICAgICAgICAgICBnZW5lcmF0b3IgdG8gdXNlIChzZWUgbGlzdCBjb21tYW5kIGZvciBsaXN0KQoKICAgICAgICAtLWdpdC1ob3N0IDxnaXQgaG9zdD4KICAgICAgICAgICAgR2l0IGhvc3QsIGUuZy4gZ2l0bGFiLmNvbS4KCiAgICAgICAgLS1naXQtcmVwby1pZCA8Z2l0IHJlcG8gaWQ+CiAgICAgICAgICAgIEdpdCByZXBvIElELCBlLmcuIG9wZW5hcGktZ2VuZXJhdG9yLgoKICAgICAgICAtLWdpdC11c2VyLWlkIDxnaXQgdXNlciBpZD4KICAgICAgICAgICAgR2l0IHVzZXIgSUQsIGUuZy4gb3BlbmFwaWpzb25zY2hlbWF0b29scy4KCiAgICAgICAgLS1nbG9iYWwtcHJvcGVydHkgPGdsb2JhbCBwcm9wZXJ0aWVzPgogICAgICAgICAgICBzZXRzIHNwZWNpZmllZCBnbG9iYWwgcHJvcGVydGllcyAocHJldmlvdXNseSBjYWxsZWQgJ3N5c3RlbQogICAgICAgICAgICBwcm9wZXJ0aWVzJykgaW4gdGhlIGZvcm1hdCBvZiBuYW1lPXZhbHVlLG5hbWU9dmFsdWUgKG9yIG11bHRpcGxlCiAgICAgICAgICAgIG9wdGlvbnMsIGVhY2ggd2l0aCBuYW1lPXZhbHVlKQoKICAgICAgICAtLWdyb3VwLWlkIDxncm91cCBpZD4KICAgICAgICAgICAgZ3JvdXBJZCBpbiBnZW5lcmF0ZWQgcG9tLnhtbAoKICAgICAgICAtLWhpZGUtZ2VuZXJhdGlvbi10aW1lc3RhbXAKICAgICAgICAgICAgSGlkZXMgdGhlIGdlbmVyYXRpb24gdGltZXN0YW1wIHdoZW4gZmlsZXMgYXJlIGdlbmVyYXRlZC4KCiAgICAgICAgLS1odHRwLXVzZXItYWdlbnQgPGh0dHAgdXNlciBhZ2VudD4KICAgICAgICAgICAgSFRUUCB1c2VyIGFnZW50LCBlLmcuIGNvZGVnZW5fY3NoYXJwX2FwaV9jbGllbnQsIGRlZmF1bHQgdG8KICAgICAgICAgICAgJ09wZW5BUEktR2VuZXJhdG9yL3twYWNrYWdlVmVyc2lvbn0ve2xhbmd1YWdlfScKCiAgICAgICAgLWkgPHNwZWMgZmlsZT4sIC0taW5wdXQtc3BlYyA8c3BlYyBmaWxlPgogICAgICAgICAgICBsb2NhdGlvbiBvZiB0aGUgT3BlbkFQSSBzcGVjLCBhcyBVUkwgb3IgZmlsZSAocmVxdWlyZWQgaWYgbm90IGxvYWRlZAogICAgICAgICAgICB2aWEgY29uZmlnIHVzaW5nIC1jKQoKICAgICAgICAtLWlnbm9yZS1maWxlLW92ZXJyaWRlIDxpZ25vcmUgZmlsZSBvdmVycmlkZSBsb2NhdGlvbj4KICAgICAgICAgICAgU3BlY2lmaWVzIGFuIG92ZXJyaWRlIGxvY2F0aW9uIGZvciB0aGUgLm9wZW5hcGktZ2VuZXJhdG9yLWlnbm9yZQogICAgICAgICAgICBmaWxlLiBNb3N0IHVzZWZ1bCBvbiBpbml0aWFsIGdlbmVyYXRpb24uCgogICAgICAgIC0taW50cy1hbGxvd2VkLWZvci1mbG9hdC1kb3VibGUtZm9ybWF0cwogICAgICAgICAgICBJbnRlZ2VycyBhcmUgYWxsb3dlZCBpbiBmb3IgdHlwZTogbnVtYmVyIGZvcm1hdDpmbG9hdC9kb3VibGUKICAgICAgICAgICAgcGF5bG9hZHMKCiAgICAgICAgLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT4KICAgICAgICAgICAgcm9vdCBwYWNrYWdlIGZvciBnZW5lcmF0ZWQgY29kZQoKICAgICAgICAtLW1pbmltYWwtdXBkYXRlCiAgICAgICAgICAgIE9ubHkgd3JpdGUgb3V0cHV0IGZpbGVzIHRoYXQgaGF2ZSBjaGFuZ2VkLgoKICAgICAgICAtLW1vZGVsLW5hbWUtcHJlZml4IDxtb2RlbCBuYW1lIHByZWZpeD4KICAgICAgICAgICAgUHJlZml4IHRoYXQgd2lsbCBiZSBwcmVwZW5kZWQgdG8gYWxsIG1vZGVsIG5hbWVzLgoKICAgICAgICAtLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD4KICAgICAgICAgICAgU3VmZml4IHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byBhbGwgbW9kZWwgbmFtZXMuCgogICAgICAgIC1vIDxvdXRwdXQgZGlyZWN0b3J5PiwgLS1vdXRwdXQgPG91dHB1dCBkaXJlY3Rvcnk+CiAgICAgICAgICAgIHdoZXJlIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMgKGN1cnJlbnQgZGlyIGJ5IGRlZmF1bHQpCgogICAgICAgIC1wIDxhZGRpdGlvbmFsIHByb3BlcnRpZXM+LCAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyA8YWRkaXRpb25hbAogICAgICAgIHByb3BlcnRpZXM+CiAgICAgICAgICAgIHNldHMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIHJlZmVyZW5jZWQgYnkgdGhlIG11c3RhY2hlCiAgICAgICAgICAgIHRlbXBsYXRlcyBpbiB0aGUgZm9ybWF0IG9mIG5hbWU9dmFsdWUsbmFtZT12YWx1ZS4gWW91IGNhbiBhbHNvIGhhdmUKICAgICAgICAgICAgbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgdGhpcyBvcHRpb24uCgogICAgICAgIC0tcGFja2FnZS1uYW1lIDxwYWNrYWdlIG5hbWU+CiAgICAgICAgICAgIHBhY2thZ2UgZm9yIGdlbmVyYXRlZCBjbGFzc2VzICh3aGVyZSBzdXBwb3J0ZWQpCgogICAgICAgIC0tcmVsZWFzZS1ub3RlIDxyZWxlYXNlIG5vdGU+CiAgICAgICAgICAgIFJlbGVhc2Ugbm90ZSwgZGVmYXVsdCB0byAnTWlub3IgdXBkYXRlJy4KCiAgICAgICAgLS1yZW1vdmUtZW51bS12YWx1ZS1wcmVmaXgKICAgICAgICAgICAgUmVtb3ZlIHRoZSBjb21tb24gcHJlZml4IG9mIGVudW0gdmFsdWVzCgogICAgICAgIC0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXgKICAgICAgICAgICAgUmVtb3ZlIHByZWZpeCBvZiBvcGVyYXRpb25JZCwgZS5nLiBjb25maWdfZ2V0SWQgPT4gZ2V0SWQKCiAgICAgICAgLXMsIC0tc2tpcC1vdmVyd3JpdGUKICAgICAgICAgICAgc3BlY2lmaWVzIGlmIHRoZSBleGlzdGluZyBmaWxlcyBzaG91bGQgYmUgb3ZlcndyaXR0ZW4gZHVyaW5nIHRoZQogICAgICAgICAgICBnZW5lcmF0aW9uLgoKICAgICAgICAtLXNraXAtb3BlcmF0aW9uLWV4YW1wbGUKICAgICAgICAgICAgU2tpcCBleGFtcGxlcyBkZWZpbmVkIGluIG9wZXJhdGlvbnMgdG8gYXZvaWQgb3V0IG9mIG1lbW9yeSBlcnJvcnMuCgogICAgICAgIC0tc2tpcC12YWxpZGF0ZS1zcGVjCiAgICAgICAgICAgIFNraXBzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHZhbGlkYXRpbmcgYW4gaW5wdXQgc3BlY2lmaWNhdGlvbi4KCiAgICAgICAgLS1zdHJpY3Qtc3BlYyA8dHJ1ZS9mYWxzZSBzdHJpY3QgYmVoYXZpb3I+CiAgICAgICAgICAgICdNVVNUJyBhbmQgJ1NIQUxMJyB3b3JkaW5nIGluIE9wZW5BUEkgc3BlYyBpcyBzdHJpY3RseSBhZGhlcmVkIHRvLgogICAgICAgICAgICBlLmcuIHdoZW4gZmFsc2UsIG5vIGZpeGVzIHdpbGwgYmUgYXBwbGllZCB0byBkb2N1bWVudHMgd2hpY2ggcGFzcwogICAgICAgICAgICB2YWxpZGF0aW9uIGJ1dCBkb24ndCBmb2xsb3cgdGhlIHNwZWMuCgogICAgICAgIC10IDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+LCAtLXRlbXBsYXRlLWRpciA8dGVtcGxhdGUgZGlyZWN0b3J5PgogICAgICAgICAgICBmb2xkZXIgY29udGFpbmluZyB0aGUgdGVtcGxhdGUgZmlsZXMKCiAgICAgICAgLXYsIC0tdmVyYm9zZQogICAgICAgICAgICB2ZXJib3NlIG1vZGUKYGBgCgo8L2RldGFpbHM+CgpZb3UgY2FuIHRoZW4gdXNlIHRoZSBhdXRvLWdlbmVyYXRlZCBjbGllbnQuIFRoZSBSRUFETUUubWQgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LgoKT3RoZXIgZ2VuZXJhdG9ycyBoYXZlIFtzYW1wbGVzXShzYW1wbGVzKSB0b28uCgojIyMgQ3VzdG9taXphdGlvbgoKUGxlYXNlIHJlZmVyIHRvIFtjdXN0b21pemF0aW9uLm1kXShkb2NzL2N1c3RvbWl6YXRpb24ubWQpIG9uIGhvdyB0byBjdXN0b21pemUgdGhlIG91dHB1dCAoZS5nLiBwYWNrYWdlIG5hbWUsIHZlcnNpb24pCgojIyMgV29ya2Zsb3cgSW50ZWdyYXRpb24KClBsZWFzZSByZWZlciB0byBbaW50ZWdyYXRpb24ubWRdKGRvY3MvaW50ZWdyYXRpb24ubWQpIG9uIGhvdyB0byBpbnRlZ3JhdGUgT3BlbkFQSSBnZW5lcmF0b3Igd2l0aCBNYXZlbiwgR3JhZGxlLCAgR2l0aHViIGFuZCBDSS9DRC4KCiMjIyBMaWNlbnNlIEluZm9ybWF0aW9uCgpUaGUgT3BlbkFQSSBKU09OIFNjaGVtYSBHZW5lcmF0b3IgcHJvamVjdCBpcyBpbnRlbmRlZCBhcyBhIGJlbmVmaXQgZm9yIHVzZXJzIG9mIHRoZSBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uLiAgVGhlIHByb2plY3QgaXRzZWxmIGhhcyB0aGUgW0xpY2Vuc2VdKCNsaWNlbnNlKSBhcyBzcGVjaWZpZWQuIEluIGFkZGl0aW9uLCBwbGVhc2UgdW5kZXJzdGFuZCB0aGUgZm9sbG93aW5nIHBvaW50czoKCiogVGhlIHRlbXBsYXRlcyBpbmNsdWRlZCB3aXRoIHRoaXMgcHJvamVjdCBhcmUgc3ViamVjdCB0byB0aGUgW0xpY2Vuc2VdKCNsaWNlbnNlKS4KKiBHZW5lcmF0ZWQgY29kZSBpcyBpbnRlbnRpb25hbGx5IF9ub3RfIHN1YmplY3QgdG8gdGhlIHBhcmVudCBwcm9qZWN0IGxpY2Vuc2UKCldoZW4gY29kZSBpcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIHByb2plY3QsIGl0IHNoYWxsIGJlIGNvbnNpZGVyZWQgKipBUyBJUyoqIGFuZCBvd25lZCBieSB0aGUgdXNlciBvZiB0aGUgc29mdHdhcmUuICBUaGVyZSBhcmUgbm8gd2FycmFudGllcy0tZXhwcmVzc2VkIG9yIGltcGxpZWQtLWZvciBnZW5lcmF0ZWQgY29kZS4gIFlvdSBjYW4gZG8gd2hhdCB5b3Ugd2lzaCB3aXRoIGl0LCBhbmQgb25jZSBnZW5lcmF0ZWQsIHRoZSBjb2RlIGlzIHlvdXIgcmVzcG9uc2liaWxpdHkgYW5kIHN1YmplY3QgdG8gdGhlIGxpY2Vuc2luZyB0ZXJtcyB0aGF0IHlvdSBkZWVtIGFwcHJvcHJpYXRlLgoKIyMgQ29tcGFuaWVzL1Byb2plY3RzIHVzaW5nIE9wZW5BUEkgSlNPTiBTY2hlbWEgR2VuZXJhdG9yCgpbR2l0aHViIGNvZGUgc2VhcmNoXShodHRwczovL2dpdGh1Yi5jb20vc2VhcmNoP3E9RGF0ZVNjaGVtYStEYXRlVGltZVNjaGVtYStsYW5ndWFnZSUzQVB5dGhvbitwYXRoJTNBKiolMkZzY2hlbWFzLnB5JnR5cGU9Y29kZSkKCiMjIEFib3V0IFVzCgpUaGlzIHJlcG8gaXMgYmFzZWQgb24gdjYuMi4wIG9mIE9wZW5BUEkgR2VuZXJhdG9yLiBUaGlzIHByb2plY3QgZm9jdXNlcyBvbiBtYWtpbmcgdGhlIG91dHB1dCAxMDAlIGNvbXBsaWFudCB3aXRoIEpTT04gc2NoZW1hIGFzIHBhcnQgb2YgdGhlIE9wZW5BUEkgMy4xIHNwZWNpZmljYXRpb24gd2l0aCBhIGZvY3VzIG9uIGNvbXBsZXggY2FzZXMgKHRvcC1kb3duIGFwcHJvYWNoKS4gVGhlIGdvYWwgaXMgdG8gZnVsbHkgc3VwcG9ydCBldmVyeXRoaW5nIGRlZmluZWQgaW4gSlNPTiBzY2hlbWEgc28gdGhhdCBkZXZlbG9wZXJzIGNhbiBsZXZlcmFnZSBKU09OIHNjaGVtYSBhcyB3ZWxsIGFzIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpbiB0aGVpciBBUEkgZGVzaWduLiBCdWlsZGluZyBoZXJlIGFsbG93cyBmb3IgbW9yZSByYXBpZCBwcm9ncmVzcyBzdXBwb3J0aW5nIG5ldyBmZWF0dXJlcyBpbiBPcGVuQVBJIDMuWCB3aXRob3V0IGhhdmluZyB0byBzdXBwb3J0IG1hbnkgb2xkZXIgZ2VuZXJhdG9ycyB3aGljaCBkb24ndCB1c2UgdGhlIG5ldyBmZWF0dXJlcy4KCiMjIyBIaXN0b3J5IG9mIE9wZW5BUEkgSlNPTiBTY2hlbWEgR2VuZXJhdG9yCgpPcGVuQVBJIEpTT04gU2NoZW1hIEdlbmVyYXRvciBpcyBiYXNlZCBvbiBPcGVuQVBJIEdlbmVyYXRvciB2Ni4yLjAuClRoZSBwcm9qZWN0IHdhcyBjcmVhdGVkIGhlcmUgYmVjYXVzZSB0aGUgb3BlbmFwaS1nZW5lcmF0b3IgY29yZSB0ZWFtIHJlcXVpcmVkIHRoZSByZW1vdmFsIG9mIHRoZSBweXRob24gZ2VuZXJhdG9yIApmcm9tIHRoZWlyIHByb2plY3QuIFRoZSBhdXRob3Igb2YgdGhlIHB5dGhvbiBnZW5lcmF0b3IgKEBzcGFjZXRoZXIpIHByZWZlcnJlZCB0byBrZWVwIGJ1aWxkaW5nIAppbiB0aGUgb3BlbmFwaS1nZW5lcmF0b3IgcmVwbywgYnV0IGNvcmUgdGVhbSByZWZ1c2VkIHRvIGNvbnNpZGVyIGtlZXBpbmcgcHl0aG9uIGluIG9wZW5hcGktZ2VuZXJhdG9yLgpCZWxvdyBpcyBhIHRpbWVsaW5lIG9mIHRob3NlIGV2ZW50cyBhbmQgc29tZSBvZiB0aGVpciByZWFzb25zOgoKIyMjIyBUaW1lbGluZSBvZiBweXRob24gZ2VuZXJhdG9yIGRldmVsb3BtZW50Ci0gSmFuIDQsIDIwMjEgLSBbb3BlbmFwaS1nZW5lcmF0b3IgdjUuNC4wOiBweXRob24tZXhwZXJpbWVudGFsIGNyZWF0ZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcHVsbC84MzI1KS4gVGhpcyBnZW5lcmF0b3IgaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBweXRob24gZ2VuZXJhdG9yIGluIHRoaXMgcmVwby4KLSBTZXB0IDE5LCAyMDIyIC0gbWVldGluZyB0byBkaXNjdXNzIG9wZW5hcGkgMy4xLjAgKyBweXRob24gY2xpZW50LCByZW1vdmFsIG9mIHB5dGhvbiBjbGllbnQgbWVudGlvbmVkIGFzIGFuIG9wdGlvbiwgbm90IGEgcmVxdWlyZW1lbnQKLSBTZXB0IDIyLCAyMDIyIC0gW29wZW5hcGktZ2VuZXJhdG9yIHY2LjIuMDogbmV3IHB5dGhvbi1leHBlcmltZW50YWwgc3dpdGNoZWQgaW4gYXMgdGhlIHByaW1hcnkgcHl0aG9uIGNsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9wdWxsLzEzNTAxKQotIFNlcHQgMjMsIDIwMjIgLSBjb21tdW5pY2F0aW9uIGNsYXJpZmllZCB0aGF0IHJlbW92YWwgb2YgdGhlIHB5dGhvbiBnZW5lcmF0b3IgaXMgcmVxdWlyZWQKLSBTZXB0IDI0LCAyMDIyIC0gW29wZW5hcGktZ2VuZXJhdG9yIHY2LjIuMDogcmVtb3ZhbCBvZiBweXRob24gZ2VuZXJhdG9yIG1lbnRpb25lZCBpbiB2Ni4yLjAgcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjYuMi4wKQotIFNlcHQgMjYsIDIwMjIgLSBbZGlmZmVyZW50IG5ldyByZXBvIG1hZGUgZm9yIG9wZW5hcGkganNvbiBzY2hlbWEgZ2VuZXJhdG9yIGluIE9wZW5hcGlUb29scyBvcmddKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1qc29uLXNjaGVtYS1nZW5lcmF0b3IpCi0gT2N0IDIsIDIwMjIgLSBbbW92ZWQgcHJvamVjdCB0byB0aGlzIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWpzb24tc2NoZW1hLXRvb2xzL29wZW5hcGktanNvbi1zY2hlbWEtZ2VuZXJhdG9yKSBJIG1vdmVkIHRoZSBnZW5lcmF0b3IgdG8gdGhlIG5ldyByZXBvIGJlY2F1c2UgZnVsbCBvd25lcnNoaXAgcHJpdmxlZGdlcyB3ZXJlIG5vdCBncmFudGVkIG9uIHRoZSBuZXcgcmVwbyB0byBtZSwgd2hpY2ggaGFkIGJlZW4gcHJvbWlzZWQsIGFuZCBiZWNhdXNlIEkgd2FzIG5vdCBnaXZlbiBwcml2bGVkZ2VzIHRoYXQgYWxsb3dlZCBkb2NrZXIgZGlzdHJpYnV0aW9uIGZyb20gdGhlIG5ldyByZXBvCi0gTWF5IDE0LCAyMDIzIC0gW29wZW5hcGktZ2VuZXJhdG9yIHY3LjAuMDogcHl0aG9uIGdlbmVyYXRvciByZW1vdmVkLCBhIGRpZmZmZXJlbnQgZ2VuZXJhdG9yIGJlY29tZXMgdGhlIG9ubHkgcHl0aG9uIGNsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9wdWxsLzE1NDg2KQoKCiMjIyMgUmVtb3ZhbCBSZWFzb25zCi0gQ29yZSB0ZWFtIGFuZCBAd2luZzMyOCBmZWx0IGFkb3B0aW9uIG9mIHRoZSBweXRob24gY2xpZW50IHdhcyByZWR1Y2VkIGZyb20gNS4wLjAgYW5kIG9ud2FyZCBkdWUgdG8gcHl0aG9uLXByaW9yICsgcHl0aG9uIGdlbmVyYXRvcnMKLSBTb21lIHB5dGhvbiB1c2VycyBpbiB0aGUgY29tbXVuaXR5IGRpZCBub3QgcHJlZmVyIHRoZSBuZXcgcHl0aG9uIGNvZGUKLSBUaGUgZmFjdCB0aGF0IG90aGVyIHVzZXJzICsgY29tcGFuaWVzIGFyZSB1c2luZyBpdCBkb2VzIG5vdCB3YXJyYW50IGtlZXBpbmcgaXQgaW4gdGhlIHJlcG8KLSBUaGUgZmFjdCB0aGF0IGl0IGlzIG1vcmUgZnVsbHkgcGFzc2luZyBqc29uIHNjaGVtYSB0ZXN0cyAoaW5jbHVkaW5nIHRoZSBmZWF0dXJlIGtleXdvcmRzIG9uZU9mL2FueU9mL2FsbE9mL2FkZGl0aW9uYWxQcm9wZXJ0aWVzKSBkb2VzIG5vdCB3YXJyYW50IGtlZXBpbmcgaXQgaW4gdGhlIHJlcG8KLSBUaGUgb3BlbmFwaS1nZW5lcmF0b3IgY29yZSB0ZWFtIHJlZnVzZWQgdG8gY29uc2lkZXIgdGhlIG9wdGlvbiBvZiBrZWVwaW5nIHRoZSBweXRob24gZ2VuZXJhdG9yIGFzIGFub3RoZXIgZ2VuZXJhdG9yIG9wdGlvbiBpbiB0aGVpciByZXBvLCBhbmQgYnVpbGRpbmcgYW5vdGhlciBweXRob24gZ2VuZXJhdG9yIHRoYXQgbG9va3MgbW9yZSBjb252ZW50aW9uYWwgYW5kIG1ha2luZyB0aGF0IGdlbmVyYXRvciBwcmltYXJ5CgojIyBMaWNlbnNlCgotLS0tLS0tCkNvcHlyaWdodCAyMDIzIE9wZW5BUEktSnNvbi1TY2hlbWEtR2VuZXJhdG9yIENvbnRyaWJ1dG9ycwpDb3B5cmlnaHQgMjAxOCBPcGVuQVBJLUdlbmVyYXRvciBDb250cmlidXRvcnMgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkKQ29weXJpZ2h0IDIwMTggU21hcnRCZWFyIFNvZnR3YXJlCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgpZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgW2FwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBdKGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKLS0tCg== readmeEtag: '"b0d2141847afd7cc7f88872037794345f545f8da"' readmeLastModified: Sat, 15 Jun 2024 18:18:55 GMT repositoryId: 544314254 description: ' OpenAPI JSON Schema Generator allows auto-generation of API client libraries with a focus on JSON schema given an OpenAPI document' created: '2022-10-02T06:47:59Z' updated: '2024-09-02T14:30:39Z' language: Java archived: false stars: 145 watchers: 5 forks: 13 owner: openapi-json-schema-tools logo: https://avatars.githubusercontent.com/u/114849992?v=4 license: Apache-2.0 repoEtag: '"538136f3a0e1d0a2437989569ff3c27090900b6251b7ee74142421377608aeb4"' repoLastModified: Mon, 02 Sep 2024 14:30:39 GMT category: - Code Generators - SDK foundInMaster: true name: OpenAPI JSON Schema Generator link: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator language: - Python - Java source_description: >- A template-driven engine to generate API client code + documentation by parsing your OpenAPI Description v2: false v3_1_link: >- https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/issues/131 v3_1: true - source: - https://openapi.tools/ - openapi3 tags name: Kiota Api Client Generator category: - Code Generators - SDK link: https://aka.ms/kiota/docs language: C# repository: https://github.com/microsoft/kiota source_description: >- Kiota is a cross platform API Client code generator that is small, fast, and optimized for API consumers to find APIs and generate client code for just the parts of the API that they need. One tool, for any OpenAPI described API, that delivers a consistent client experience in multiple languages. v2: true v3: true v3_1: false id: c94b9d43825b39f99511edfe70e459ec repositoryMetadata: base64Readme: >- IyBQcm9qZWN0CgpbIVtEb3RuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEvYWN0aW9ucy93b3JrZmxvd3MvZG90bmV0LnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhL2FjdGlvbnMvd29ya2Zsb3dzL2RvdG5ldC55bWwpIFshW0NvZGVRTF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS9hY3Rpb25zL3dvcmtmbG93cy9jb2RlcWwtYW5hbHlzaXMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLWFuYWx5c2lzLnltbCkgWyFbQ292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PW1pY3Jvc29mdF9raW90YSZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPW1pY3Jvc29mdF9raW90YSkgWyFbU29uYXJjbG91ZCBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PW1pY3Jvc29mdF9raW90YSZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1taWNyb3NvZnRfa2lvdGEpCgpLaW90YSBpcyBhIGNvbW1hbmQgbGluZSB0b29sIGZvciBnZW5lcmF0aW5nIGFuIEFQSSBjbGllbnQgdG8gY2FsbCBhbnkgT3BlbkFQSSBkZXNjcmliZWQgQVBJIHlvdSBhcmUgaW50ZXJlc3RlZCBpbi4gVGhlIGdvYWwgaXMgdG8gZWxpbWluYXRlIHRoZSBuZWVkIHRvIHRha2UgYSBkZXBlbmRlbmN5IG9uIGEgZGlmZmVyZW50IEFQSSBTREsgZm9yIGV2ZXJ5IEFQSSB0aGF0IHlvdSBuZWVkIHRvIGNhbGwuIEtpb3RhIEFQSSBjbGllbnRzIHByb3ZpZGUgYSBzdHJvbmdseSB0eXBlZCBleHBlcmllbmNlIHdpdGggYWxsIHRoZSBmZWF0dXJlcyB5b3UgZXhwZWN0IGZyb20gYSBoaWdoIHF1YWxpdHkgQVBJIFNESywgYnV0IHdpdGhvdXQgaGF2aW5nIHRvIGxlYXJuIGEgbmV3IGxpYnJhcnkgZm9yIGV2ZXJ5IEhUVFAgQVBJLgoKVGhpcyBsaWJyYXJ5IGJ1aWxkcyBvbiB0b3Agb2YgdGhlIFtNaWNyb3NvZnQuT3BlbkFQSS5ORVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvb3BlbmFwaS5uZXQpIGxpYnJhcnkgdG8gZW5zdXJlIGNvbXByZWhlbnNpdmUgc3VwcG9ydCBmb3IgQVBJcyB0aGF0IHVzZSBPcGVuQVBJIGRlc2NyaXB0aW9ucy4gT25lIG9mIHRoZSBnb2FscyBvZiB0aGUgcHJvamVjdCBpcyB0byBwcm92aWRlIHRoZSBiZXN0IGNvZGUgZ2VuZXJhdG9yIHN1cHBvcnQgcG9zc2libGUgZm9yIE9wZW5BUEkgYW5kIEpTT04gU2NoZW1hIGZlYXR1cmVzLiBUaGUgW2NvbmNlcHR1YWwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL29wZW5hcGkva2lvdGEpIGRlc2NyaWJlcyBob3cga2lvdGEgd29ya3MgYW5kIHRoZSBoaWdoIGxldmVsIGNvbmNlcHRzLCB0aGlzIHJlYWRtZSBkb2N1bWVudHMgaG93IHRvIGdldCBzdGFydGVkIHdpdGggS2lvdGEuCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCiMjIyBHZW5lcmF0aW5nIFNES3MKCjEuIEluc3RhbGwgcmVxdWlyZWQgdG9vbHMgYW5kIGRlcGVuZGVuY2llcy4gKHJlZmVyIHRvIHRoZSBbU3VwcG9ydGVkIExhbmd1YWdlc10oI3N1cHBvcnRlZC1sYW5ndWFnZXMpIHRhYmxlIHVuZGVyIHRoZSAqKlJlcXVpcmVkIHRvb2xzICYgZGVwZW5kZW5jaWVzKiogY29sdW1uKQoxLiBHZXQgS2lvdGEgdXNpbmcgb25lIG9mIHRoZSBbYXZhaWxhYmxlIG9wdGlvbnNdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9vcGVuYXBpL2tpb3RhL2luc3RhbGwpLgoxLiBHZW5lcmF0ZSB5b3VyIEFQSSBjbGllbnQsIGNoZWNrb3V0IHRoZSBbUGFyYW1ldGVycyByZWZlcmVuY2VdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9vcGVuYXBpL2tpb3RhL3VzaW5nKSBmb3IgdGhlIGRpZmZlcmVudCBvcHRpb25zLgoxLiBTdGFydCBjYWxsaW5nIHlvdXIgQVBJIHVzaW5nIHlvdXIgZmx1ZW50IEFQSSBDbGllbnQuCgojIyMgU3VwcG9ydGVkIGxhbmd1YWdlcwoKVGhlIGZvbGxvd2luZyB0YWJsZSBwcm92aWRlcyBhbiBvdmVydmlldyBvZiB0aGUgbGFuZ3VhZ2VzIHN1cHBvcnRlZCBieSBLaW90YSBhbmQgdGhlIHByb2dyZXNzIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGlmZmVyZW50IGNvbXBvbmVudHMuCgp8IExhbmd1YWdlIHwgR2VuZXJhdGlvbiB8IEFic3RyYWN0aW9ucyAgICAgICAgICAgICAgICAgICB8IFNlcmlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQXV0aGVudGljYXRpb24gfCBIVFRQIHwgUmVxdWlyZWQgdG9vbHMgJiBkZXBlbmRlbmNpZXMgfAp8IC0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgLS0tLS0tLS0tLS0tLS0gfCAtLS0tIHwgLS0tLS0tLS0tLS0tLS0gfAp8IENTaGFycCB8IOKclCB8IFvinJRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtZG90bmV0L3RyZWUvbWFpbi9zcmMvYWJzdHJhY3Rpb25zKSAgICAgfCBbRk9STV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1kb3RuZXQvdHJlZS9tYWluL3NyYy9zZXJpYWxpemF0aW9uL2Zvcm0pLCBbSlNPTl0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1kb3RuZXQvdHJlZS9tYWluL3NyYy9zZXJpYWxpemF0aW9uL2pzb24pLCBbTVVMVElQQVJUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWRvdG5ldC90cmVlL21haW4vc3JjL3NlcmlhbGl6YXRpb24vbXVsdGlwYXJ0KSwgW1RFWFRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtZG90bmV0L3RyZWUvbWFpbi9zcmMvc2VyaWFsaXphdGlvbi90ZXh0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtBbm9ueW1vdXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtZG90bmV0L2Jsb2IvbWFpbi9zcmMvYWJzdHJhY3Rpb25zL2F1dGhlbnRpY2F0aW9uL0Fub255bW91c0F1dGhlbnRpY2F0aW9uUHJvdmlkZXIuY3MpLCBbQVBJIEtleV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1kb3RuZXQvYmxvYi9tYWluL3NyYy9hYnN0cmFjdGlvbnMvYXV0aGVudGljYXRpb24vQXBpS2V5QXV0aGVudGljYXRpb25Qcm92aWRlci5jcyksIFtBenVyZV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1kb3RuZXQvdHJlZS9tYWluL3NyYy9hdXRoZW50aWNhdGlvbi9henVyZSkgfCBb4pyUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWRvdG5ldC90cmVlL21haW4vc3JjL2h0dHAvaHR0cENsaWVudCkgfCBbbGlua10oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL29wZW5hcGkva2lvdGEvcXVpY2tzdGFydHMvZG90bmV0KSB8CnwgR28gfCDinJQgfCBb4pyUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWFic3RyYWN0aW9ucy1nbykgICAgICAgICB8IFtGT1JNXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXNlcmlhbGl6YXRpb24tZm9ybS1nbyksIFtKU09OXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXNlcmlhbGl6YXRpb24tanNvbi1nbyksIFtNVUxUSVBBUlRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtc2VyaWFsaXphdGlvbi1tdWx0aXBhcnQtZ28pLCBbVEVYVF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1zZXJpYWxpemF0aW9uLXRleHQtZ28pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW0Fub255bW91c10oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1hYnN0cmFjdGlvbnMtZ28vYmxvYi9tYWluL2F1dGhlbnRpY2F0aW9uL2Fub255bW91c19hdXRoZW50aWNhdGlvbl9wcm92aWRlci5nbyksIFtBUEkgS2V5XShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWFic3RyYWN0aW9ucy1nby9ibG9iL21haW4vYXV0aGVudGljYXRpb24vYXBpX2tleV9hdXRoZW50aWNhdGlvbl9wcm92aWRlci5nbyksIFtBenVyZV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1hdXRoZW50aWNhdGlvbi1henVyZS1nby8pIHwgW+KclF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1odHRwLWdvLykgfCBbbGlua10oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL29wZW5hcGkva2lvdGEvcXVpY2tzdGFydHMvZ28pIHwKfCBKYXZhIHwg4pyUIHwgW+KclF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1qYXZhL3RyZWUvbWFpbi9jb21wb25lbnRzL2Fic3RyYWN0aW9ucykgICAgICAgfCBbRk9STV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1qYXZhL3RyZWUvbWFpbi9jb21wb25lbnRzL3NlcmlhbGl6YXRpb24vZm9ybSksIFtKU09OXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWphdmEvdHJlZS9tYWluL2NvbXBvbmVudHMvc2VyaWFsaXphdGlvbi9qc29uKSwgW01VTFRJUEFSVF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1qYXZhL3RyZWUvbWFpbi9jb21wb25lbnRzL3NlcmlhbGl6YXRpb24vbXVsdGlwYXJ0KSwgW1RFWFRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtamF2YS90cmVlL21haW4vY29tcG9uZW50cy9zZXJpYWxpemF0aW9uL3RleHQpICAgICAgICAgICAgICAgICB8IFtBbm9ueW1vdXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtamF2YS9ibG9iL21haW4vY29tcG9uZW50cy9hYnN0cmFjdGlvbnMvc3JjL21haW4vamF2YS9jb20vbWljcm9zb2Z0L2tpb3RhL2F1dGhlbnRpY2F0aW9uL0Fub255bW91c0F1dGhlbnRpY2F0aW9uUHJvdmlkZXIuamF2YSksIFtBUEkgS2V5XShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWphdmEvYmxvYi9tYWluL2NvbXBvbmVudHMvYWJzdHJhY3Rpb25zL3NyYy9tYWluL2phdmEvY29tL21pY3Jvc29mdC9raW90YS9hdXRoZW50aWNhdGlvbi9BcGlLZXlBdXRoZW50aWNhdGlvblByb3ZpZGVyLmphdmEpLCBbQXp1cmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtamF2YS90cmVlL21haW4vY29tcG9uZW50cy9hdXRoZW50aWNhdGlvbi9henVyZSkgfCBb4pyUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWphdmEvdHJlZS9tYWluL2NvbXBvbmVudHMvaHR0cC9va0h0dHApIHwgW2xpbmtdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9vcGVuYXBpL2tpb3RhL3F1aWNrc3RhcnRzL2phdmEpIHwKfCBQSFAgfCDinJQgfCBb4pyUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWFic3RyYWN0aW9ucy1waHApICAgICAgICAgIHwgW0pTT05dKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtc2VyaWFsaXphdGlvbi1qc29uLXBocCksIFtGT1JNXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXNlcmlhbGl6YXRpb24tZm9ybS1waHApLCBbTVVMVElQQVJUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXNlcmlhbGl6YXRpb24tbXVsdGlwYXJ0LXBocCksIFtURVhUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXNlcmlhbGl6YXRpb24tdGV4dC1waHApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbQW5vbnltb3VzXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWFic3RyYWN0aW9ucy1waHAvYmxvYi9tYWluL3NyYy9BdXRoZW50aWNhdGlvbi9Bbm9ueW1vdXNBdXRoZW50aWNhdGlvblByb3ZpZGVyLnBocCksIFvinJTvuI8gUEhQIExlYWd1ZV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1hdXRoZW50aWNhdGlvbi1waHBsZWFndWUtcGhwKSB8IFvinJRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtaHR0cC1ndXp6bGUtcGhwKSB8IFtsaW5rXShodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vb3BlbmFwaS9raW90YS9xdWlja3N0YXJ0cy9waHApIHwKfCBQeXRob24gfCDinJQgfCBb4pyUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWFic3RyYWN0aW9ucy1weXRob24pICB8IFtGT1JNXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXNlcmlhbGl6YXRpb24tZm9ybS1weXRob24pLCBbSlNPTl0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1zZXJpYWxpemF0aW9uLWpzb24tcHl0aG9uKSwgW01VTFRJUEFSVF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1zZXJpYWxpemF0aW9uLW11bHRpcGFydC1weXRob24pLCBbVEVYVF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1zZXJpYWxpemF0aW9uLXRleHQtcHl0aG9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW0Fub255bW91c10oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1hYnN0cmFjdGlvbnMtcHl0aG9uL2Jsb2IvbWFpbi9raW90YV9hYnN0cmFjdGlvbnMvYXV0aGVudGljYXRpb24vYW5vbnltb3VzX2F1dGhlbnRpY2F0aW9uX3Byb3ZpZGVyLnB5KSwgW0F6dXJlXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWF1dGhlbnRpY2F0aW9uLWF6dXJlLXB5dGhvbikgfCBb4pyUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWh0dHAtcHl0aG9uKSB8IFtsaW5rXShodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vb3BlbmFwaS9raW90YS9xdWlja3N0YXJ0cy9weXRob24pIHwKfCBSdWJ5IHwg8J+boO+4jyB8IFvwn5ug77iPXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWFic3RyYWN0aW9ucy1ydWJ5KSAgICAgICB8IFvinYwgRk9STV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS9pc3N1ZXMvMjA3NyksIFtKU09OXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXNlcmlhbGl6YXRpb24tanNvbi1ydWJ5KSwgW+KdjCBNVUxUSVBBUlRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEvaXNzdWVzLzMwMzIpLCBb4p2MIFRFWFRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEvaXNzdWVzLzEwNDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW0Fub255bW91c10oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1hYnN0cmFjdGlvbnMtcnVieS9ibG9iL21haW4vbGliL21pY3Jvc29mdF9raW90YV9hYnN0cmFjdGlvbnMvYXV0aGVudGljYXRpb24vYW5vbnltb3VzX2F1dGhlbnRpY2F0aW9uX3Byb3ZpZGVyLnJiKSwgW09BdXRoMl0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS1hdXRoZW50aWNhdGlvbi1vYXV0aC1ydWJ5KSB8IFvwn5ug77iPXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWh0dHAtcnVieSl8ICB8CnwgQ0xJIHwg8J+boO+4jyB8IChzZWUgQ1NoYXJwKSArIFvwn5ug77iPXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLWNsaS1jb21tb25zKSB8IChzZWUgQ1NoYXJwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHNlZSBDU2hhcnApIHwgKHNlZSBDU2hhcnApIHwgW2xpbmtdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9vcGVuYXBpL2tpb3RhL3F1aWNrc3RhcnRzL2NsaSkgfAp8IFN3aWZ0IHwgW+KdjF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS9pc3N1ZXMvMTQ0OSkgfCBb8J+boO+4j10oLi9hYnN0cmFjdGlvbnMvc3dpZnQpICAgICAgIHwgW+KdjCBGT1JNXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhL2lzc3Vlcy8yMDc2KSwgW+KdjCBKU09OXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhL2lzc3Vlcy8xNDUxKSwgW+KdjCBGT1JNXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhL2lzc3Vlcy8zMDMzKSwgW+KdjCBURVhUXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhL2lzc3Vlcy8xNDUyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtBbm9ueW1vdXNdKC4vYWJzdHJhY3Rpb25zL3N3aWZ0L1NvdXJjZS9NaWNyb3NvZnRLaW90YUFic3RyYWN0aW9ucy9BdXRoZW50aWNhdGlvbi9Bbm9ueW1vdXNBdXRoZW50aWNhdGlvblByb3ZpZGVyLnN3aWZ0KSwgW+KdjCBBenVyZV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS9pc3N1ZXMvMTQ1MykgfCBb4p2MXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhL2lzc3Vlcy8xNDU0KXwgIHwKfCBUeXBlU2NyaXB0L0phdmFTY3JpcHQgfCDwn5ug77iPIHwgW/Cfm6DvuI9dKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtdHlwZXNjcmlwdC90cmVlL21haW4vcGFja2FnZXMvYWJzdHJhY3Rpb25zKSB8IFtGT1JNXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXR5cGVzY3JpcHQvdHJlZS9tYWluL3BhY2thZ2VzL3NlcmlhbGl6YXRpb24vZm9ybSksIFtKU09OXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXR5cGVzY3JpcHQvdHJlZS9tYWluL3BhY2thZ2VzL3NlcmlhbGl6YXRpb24vanNvbiksIFtNVUxUSVBBUlRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtdHlwZXNjcmlwdC90cmVlL21haW4vcGFja2FnZXMvc2VyaWFsaXphdGlvbi9tdWx0aXBhcnQpLCBbVEVYVF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS10eXBlc2NyaXB0L3RyZWUvbWFpbi9wYWNrYWdlcy9zZXJpYWxpemF0aW9uL3RleHQpIHwgW0Fub255bW91c10oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS10eXBlc2NyaXB0L2Jsb2IvbWFpbi9wYWNrYWdlcy9hYnN0cmFjdGlvbnMvc3JjL2F1dGhlbnRpY2F0aW9uL2Fub255bW91c0F1dGhlbnRpY2F0aW9uUHJvdmlkZXIudHMpLCBbQVBJIEtleV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS10eXBlc2NyaXB0L2Jsb2IvbWFpbi9wYWNrYWdlcy9hYnN0cmFjdGlvbnMvc3JjL2F1dGhlbnRpY2F0aW9uL2FwaUtleUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIudHMpLCBbQXp1cmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtdHlwZXNjcmlwdC90cmVlL21haW4vcGFja2FnZXMvYXV0aGVudGljYXRpb24vYXp1cmUpLCBbU1BGeF0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YS10eXBlc2NyaXB0L3RyZWUvbWFpbi9wYWNrYWdlcy9hdXRoZW50aWNhdGlvbi9zcGZ4KSB8IFvwn5ug77iPXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhLXR5cGVzY3JpcHQvdHJlZS9tYWluL3BhY2thZ2VzL2h0dHAvZmV0Y2gpIHwgW2xpbmtdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9vcGVuYXBpL2tpb3RhL3F1aWNrc3RhcnRzL3R5cGVzY3JpcHQpIHwKCj4gTGVnZW5kOiDinJQgLT4gc3RhYmxlLCDwn5ug77iPIC0+IGluIHByZXZpZXcsIOKdjCAtPiBub3Qgc3RhcnRlZCwg4pa2IC0+IGluIHByb2dyZXNzLgoKIyMjIFBhcmFtZXRlcnMgcmVmZXJlbmNlCgpQYXJhbWV0ZXJzIGFyZSBkb2N1bWVudGVkIFtoZXJlXShodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vb3BlbmFwaS9raW90YS91c2luZykuCgojIyMgRGVidWdnaW5nCgpNYWtlIHN1cmUgeW91IFtpbnN0YWxsIHRoZSBwcmUtcmVxdWlzaXRlcyBmaXJzdF0oQ09OVFJJQlVUSU5HLm1kKS4gSWYgeW91IGFyZSB1c2luZyBWaXN1YWwgU3R1ZGlvIENvZGUgYXMgeW91ciBJREUsIHRoZSAqKmxhdW5jaC5qc29uKiogZmlsZSBhbHJlYWR5IGNvbnRhaW5zIHRoZSBjb25maWd1cmF0aW9uIHRvIHJ1biBLaW90YS4gQnkgZGVmYXVsdCB0aGlzIGNvbmZpZ3VyYXRpb24gd2lsbCB1c2UgdGhlIGBvcGVuQXBpRG9jcy92MS4wL01haWwueW1sYCB1bmRlciB0aGUgW1Bvd2VyU2hlbGwgcmVwb3NpdG9yeV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdGdyYXBoL21zZ3JhcGgtc2RrLXBvd2Vyc2hlbGwpIGFzIHRoZSBPcGVuQVBJIHRvIGdlbmVyYXRlIGFuIFNESyBmb3IuIEJ5IGRlZmF1bHQgdGhpcyBjb25maWd1cmF0aW9uIHdpbGwgb3V0cHV0IHRoZSBnZW5lcmF0ZWQgZmlsZXMgaW4gYSBncmFwaGRvdG5ldHY0fGdyYXBoamF2YXY0fGdyYXBodHlwZXNjcmlwdHY0IGZvbGRlciBsb2NhdGVkIGluIHRoZSBwYXJlbnQgZm9sZGVyIHRoaXMgcmVwb3NpdG9yeSBpcyBjbG9uZWQgaW4uCgpTZWxlY3RpbmcgdGhlIGxhbmd1YWdlIHlvdSB3YW50IHRvIGdlbmVyYXRlIGFuIEFQSSBjbGllbnQgZm9yIGluIHRoZSBWaXN1YWwgU3R1ZGlvIERlYnVnIHRhYiBhbmQgaGl0dGluZyAqKkY1Kiogd2lsbCBhdXRvbWF0aWNhbGx5IGJ1aWxkLCBzdGFydCwgYW5kIGF0dGFjaCB0aGUgZGVidWdnaW5nIHByb2Nlc3MgdG8gS2lvdGEuCgojIyMgU2FtcGxlcwoKWW91IGNhbiBmaW5kIHNhbXBsZXMgb2YgY2xpZW50cyBnZW5lcmF0ZWQgd2l0aCBLaW90YSBpbiB0aGUgW0tpb3RhIHNhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEtc2FtcGxlcykgcmVwb3NpdG9yeS4KCkFuIGV4YW1wbGUgb2YgYW4gYXBwbGljYXRpb24gdGhhdCBpcyBjYWxsaW5nIG11bHRpcGxlIEFQSSBjYW4gYmUgZm91bmQgaW4gdGhlIFtLaW90YUFwcF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnJlbG1pbGxlci9LaW90YUFwcCkgcmVwbwoKIyMgQ29udHJpYnV0aW5nCgpUaGlzIHByb2plY3Qgd2VsY29tZXMgY29udHJpYnV0aW9ucyBhbmQgc3VnZ2VzdGlvbnMuICBNb3N0IGNvbnRyaWJ1dGlvbnMgcmVxdWlyZSB5b3UgdG8gYWdyZWUgdG8gYQpDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudCAoQ0xBKSBkZWNsYXJpbmcgdGhhdCB5b3UgaGF2ZSB0aGUgcmlnaHQgdG8sIGFuZCBhY3R1YWxseSBkbywgZ3JhbnQgdXMKdGhlIHJpZ2h0cyB0byB1c2UgeW91ciBjb250cmlidXRpb24uIEZvciBkZXRhaWxzLCB2aXNpdCBbaHR0cHM6Ly9jbGEub3BlbnNvdXJjZS5taWNyb3NvZnQuY29tXShodHRwczovL2NsYS5vcGVuc291cmNlLm1pY3Jvc29mdC5jb20pLgoKV2hlbiB5b3Ugc3VibWl0IGEgcHVsbCByZXF1ZXN0LCBhIENMQSBib3Qgd2lsbCBhdXRvbWF0aWNhbGx5IGRldGVybWluZSB3aGV0aGVyIHlvdSBuZWVkIHRvIHByb3ZpZGUKYSBDTEEgYW5kIGRlY29yYXRlIHRoZSBQUiBhcHByb3ByaWF0ZWx5IChlLmcuLCBzdGF0dXMgY2hlY2ssIGNvbW1lbnQpLiBTaW1wbHkgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMKcHJvdmlkZWQgYnkgdGhlIGJvdC4gWW91IHdpbGwgb25seSBuZWVkIHRvIGRvIHRoaXMgb25jZSBhY3Jvc3MgYWxsIHJlcG9zIHVzaW5nIG91ciBDTEEuCgpUaGlzIHByb2plY3QgaGFzIGFkb3B0ZWQgdGhlIFtNaWNyb3NvZnQgT3BlbiBTb3VyY2UgQ29kZSBvZiBDb25kdWN0XShodHRwczovL29wZW5zb3VyY2UubWljcm9zb2Z0LmNvbS9jb2Rlb2Zjb25kdWN0LykuCkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgW0NvZGUgb2YgQ29uZHVjdCBGQVFdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvZmFxLykgb3IKY29udGFjdCBbb3BlbmNvZGVAbWljcm9zb2Z0LmNvbV0obWFpbHRvOm9wZW5jb2RlQG1pY3Jvc29mdC5jb20pIHdpdGggYW55IGFkZGl0aW9uYWwgcXVlc3Rpb25zIG9yIGNvbW1lbnRzLgoKIyMgVHJhZGVtYXJrcwoKVGhpcyBwcm9qZWN0IG1heSBjb250YWluIHRyYWRlbWFya3Mgb3IgbG9nb3MgZm9yIHByb2plY3RzLCBwcm9kdWN0cywgb3Igc2VydmljZXMuIEF1dGhvcml6ZWQgdXNlIG9mIE1pY3Jvc29mdAp0cmFkZW1hcmtzIG9yIGxvZ29zIGlzIHN1YmplY3QgdG8gYW5kIG11c3QgZm9sbG93CltNaWNyb3NvZnQncyBUcmFkZW1hcmsgJiBCcmFuZCBHdWlkZWxpbmVzXShodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2xlZ2FsL2ludGVsbGVjdHVhbHByb3BlcnR5L3RyYWRlbWFya3MvdXNhZ2UvZ2VuZXJhbCkuClVzZSBvZiBNaWNyb3NvZnQgdHJhZGVtYXJrcyBvciBsb2dvcyBpbiBtb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGlzIHByb2plY3QgbXVzdCBub3QgY2F1c2UgY29uZnVzaW9uIG9yIGltcGx5IE1pY3Jvc29mdCBzcG9uc29yc2hpcC4KQW55IHVzZSBvZiB0aGlyZC1wYXJ0eSB0cmFkZW1hcmtzIG9yIGxvZ29zIGFyZSBzdWJqZWN0IHRvIHRob3NlIHRoaXJkLXBhcnR5J3MgcG9saWNpZXMuCg== readmeEtag: '"82761c3943e1f3ac2e28e24858508da1494a9cad"' readmeLastModified: Fri, 16 Aug 2024 14:53:40 GMT repositoryId: 323665366 description: OpenAPI based HTTP Client code generator created: '2020-12-22T15:35:49Z' updated: '2024-09-06T01:24:18Z' language: C# archived: false stars: 2812 watchers: 43 forks: 191 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT repoEtag: '"af2011d47a2b4a3360b5a6c28a5438dc0db31e596410d7c404aa343c7056be26"' repoLastModified: Fri, 06 Sep 2024 01:24:18 GMT foundInMaster: true - source: https://openapi.tools/ name: FabriKt category: - Code Generators - SDK link: https://github.com/cjbooms/fabrikt language: Kotlin repository: https://github.com/cjbooms/fabrikt source_description: >- A sophisticated Kotlin code generation library capable of generating Jackson-annotated data classes, Spring Controller interfaces, and fault-tolerant OkHttp clients. Written in Kotlin, this library programatically generates code and is capable of handling advanced OpenApi3 specification features such as polymorphism. v2: false v3: true v3_1: false id: d604cd88daaabccb12202f2d3d4429d5 repositoryMetadata: base64Readme: >- IyBGYWJyaWt0IGAvy4hmYS1icmlrdC9gIC0gS290bGluIGNvZGUgZnJvbSBPcGVuQXBpMyBzcGVjaWZpY2F0aW9ucwoKVGhpcyBsaWJyYXJ5IHdhcyBidWlsdCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgY29tcGxleCBtb2RlbGluZyBmZWF0dXJlcyBhdmFpbGFibGUgaW4gT3BlbkFwaTMuIEl0IGdlbmVyYXRlcyBLb3RsaW4gZGF0YSBjbGFzc2VzIHdpdGggYWR2YW5jZWQgc3VwcG9ydCBmb3IgZmVhdHVyZXMgc3VjaCBhczogCiAtIE51bGwgU2FmZXR5CiAtIElubGluZWQgc2NoZW1hIGRlZmluaXRpb25zCiAtIEVudW1lcmF0aW9ucyAKIC0gU2VhbGVkIENsYXNzZXMKIC0gUG9seW1vcnBoaXNtIChgQEpzb25TdWJUeXBlc2ApCiAtIE1hcHMgb2YgTWFwcyBvZiBNYXBzCiAtIEdyYWFsVk0gTmF0aXZlIFJlZmxlY3Rpb24gUmVnaXN0cmF0aW9uCiAtIEpzb24gTWVyZ2UgUGF0Y2ggKHZpYSBgSnNvbk51bGxhYmxlYCkgKGFkZCBgeC1qc29uLW1lcmdlLXBhdGNoOiB0cnVlYCB0byBzY2hlbWFzKQogLSBPdmVycmlkZSBKYWNrc29uIEluY2x1ZGUgTm9uTnVsbCAodmlhIGBKc29uSW5jbHVkZWApIChhZGQgYHgtamFja3Nvbi1pbmNsdWRlLW5vbi1udWxsOiB0cnVlYCB0byBzY2hlbWFzKQogLSBHZW5lcmF0ZSBDb21wbGV0aW9uU3RhZ2Ugd3JhcHBlZCBjb250cm9sbGVycyAoYWRkIGB4LWFzeW5jLXN1cHBvcnQ6IHRydWVgIHRvIHBhdGgpCgpNb3JlIHRoYW4ganVzdCBib290c3RyYXBwaW5nLCB0aGlzIGxpYnJhcnkgY2FuIGJlIHBlcm1hbmVudGx5IGludGVncmF0ZWQgaW50byBhIGdyYWRsZSBvciBtYXZlbiBidWlsZCBhbmQgd2lsbCBlbnN1cmUgY29udHJhY3QgYW5kIGNvZGUgYWx3YXlzIG1hdGNoLCBldmVuIGFzIEFQSXMgZXZvbHZlIGluIGNvbXBsZXhpdHkuIAoKVGhlIHRlYW0gdGhhdCBidWlsdCB0aGlzIHRvb2wgaW5pdGlhbGx5IGNvbnRyaWJ1dGVkIHRvIHRoZSBLb3RsaW4gY29kZSBnZW5lcmF0aW9uIGFiaWxpdHkgaW4gW09wZW5BcGlUb29sc10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvciksIGJ1dCByZWFjaGVkIHRoZSBsaW1pdHMgb2Ygd2hhdCBjb3VsZCBiZSBhY2hpZXZlZCB3aXRoIHRlbXBsYXRlLWJhc2VkIGdlbmVyYXRpb24uIFRoaXMgbGlicmFyeSBsZXZlcmFnZXMgdGhlIHJpY2ggT3BlbkFwaTMgbW9kZWwgcHJvdmlkZWQgYnkgW0thaVplbi1PcGVuQXBpLVBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL0thaVplbi1PcGVuQXBpLVBhcnNlcikgYW5kIHVzZXMgW0tvdGxpbiBQb2V0XShodHRwczovL3NxdWFyZS5naXRodWIuaW8va290bGlucG9ldC8pIHRvIHByb2dyYW1tYXRpY2FsbHkgY29uc3RydWN0IEtvdGxpbiBjbGFzc2VzIGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LiAKCkl0IHdhcyBidWlsdCBhdCBbWmFsYW5kbyBUZWNoXShodHRwczovL29wZW5zb3VyY2UuemFsYW5kby5jb20vKSBhbmQgaXMgYmF0dGxlLXRlc3RlZCBpbiBwcm9kdWN0aW9uIHRoZXJlLiBJdCBpcyBwYXJ0aWN1bGFyeSB3ZWxsIHN1aXRlZCB0byBBUEkncyBidWlsdCBhY2NvcmRpbmcgdG8gWmFsYW5kbydzIFtSRVNUIEFQSSBndWlkZWxpbmVzXShodHRwczovL29wZW5zb3VyY2UuemFsYW5kby5jb20vcmVzdGZ1bC1hcGktZ3VpZGVsaW5lcy8pLiBJdCBpcyBbYXZhaWxhYmxlIG9uIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9jb20uY2pib29tcy9mYWJyaWt0KSBhdCB0aGUgZm9sbG93aW5nIGNvb3JkaW5hdGVzOgoKYGBgeG1sCjxkZXBlbmRlbmN5PgogIDxncm91cElkPmNvbS5jamJvb21zPC9ncm91cElkPgogIDxhcnRpZmFjdElkPmZhYnJpa3Q8L2FydGlmYWN0SWQ+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyBGZWF0dXJlcwoKVGhlIGxpYnJhcnkgY3VycmVudGx5IGhhcyBzdXBwb3J0IGZvciBnZW5lcmF0aW5nOgoKKiAqKkphY2tzb24gYW5ub3RhdGVkIGRhdGEgY2xhc3NlcyoqCiogKipTcHJpbmcgTVZDIGFubm90YXRlZCBjb250cm9sbGVyIGludGVyZmFjZXMqKgoqICoqS3RvciBzZXJ2ZXIgcm91dGVzIGFuZCBjb250cm9sbGVyIGludGVyZmFjZXMgKFtleGFtcGxlc10oZW5kMmVuZC10ZXN0cy9rdG9yL3NyYy90ZXN0L2tvdGxpbi9jb20vY2pib29tcy9mYWJyaWt0L3NlcnZlcnMva3RvcikpKioKKiAqKk9rSHR0cCBDbGllbnQqKiAtIHdpdGggdGhlIG9wdGlvbiBmb3IgYSByZXNpbGllbmNlNGogZmF1bHQtdG9sZXJhbmNlIHdyYXBwZXIKCiMjIyBFeGFtcGxlIEdlbmVyYXRpb24KCkNvbnN1bHQgdGVzdCBkaXJlY3RvcnkgZm9yIE9BUyBjb2RlIGdlbmVyYXRpb24gZXhhbXBsZXMsIGl0IGZvcm1zIGEgbGl2aW5nIGRvY3VtZW50YXRpb24gZnVsbCBvZiBbY29kZSBleGFtcGxlc10oc3JjL3Rlc3QvcmVzb3VyY2VzL2V4YW1wbGVzKSBnZW5lcmF0ZWQgZnJvbSBkaWZmZXJlbnQgT3BlbkFwaTMgcGVybXV0YXRpb25zLiAKCiMjIyMgUG9seW1vcnBoaXNtIHZpYSBhbGxPZgoKVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyBgYWxsT2ZgIGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHBvbHltb3JwaGljIEtvdGxpbiBkYXRhIGNsYXNzZXMuIEl0IGRvZXMgdGhlIGZvbGxvd2luZzoKIC0gQSBgQ2hpbGREZWZpbml0aW9uYCBzY2hlbWEgZGVmaW5lcyBib3RoIHRoZSBkaXNjcmltaW5hdG9yIG1hcHBpbmcgZGV0YWlscyBhbmQgdGhlIHNjaGVtYSBmb3IgdGhlIGRpc2NyaW1pbmF0b3IgcHJvcGVydHkuIEluIHRoaXMgY2FzZSB0aGUgZGlzY3JpbWluYXRvciBwcm9wZXJ0eSBpcyBhbiBlbnVtZXJhdGlvbgogLSBJbiBlYWNoIGNoaWxkIHNjaGVtYSwgYGFsbE9mYCBpcyB1c2VkIHRvIG1lcmdlIHRoZSBgQ2hpbGREZWZpbml0aW9uYCB3aXRoIHRoZSBjaGlsZCdzIGN1c3RvbSBzY2hlbWEuIFRoaXMgZ3VhcmFudGVlcyB0aGF0IGVhY2ggY2hpbGQgc2NoZW1hIGluaGVyaXRzIHRoZSBjb3JyZWN0IGRpc2NyaW1pbmF0b3IgcHJvcGVydHkuIAogLSBJbiB0aGUgYFJlc3BvbnNlc2Agc2NoZW1hIGEgYG9uZU9mYCBsaXN0cyBvbmx5IGNoaWxkIHNjaGVtYXMuIFRoaXMgd2lsbCBiZSBkZXRlY3RlZCBieSBGYWJyaWt0IGFuZCBpdCB3aWxsIGdlbmVyYXRlIHRoZSBsaXN0IG9mIHBhcmVudCB0eXBlczogYExpc3Q8Q2hpbGREZWZpbml0aW9uPmAKCl9OT1RFOiBBIG5ldyBmZWF0dXJlIGhhcyBiZWVuIGFkZGVkIHRoYXQgYWxsb3dzIFBvbHltb3JwaGlzbSB0byBiZSBhY2hpZXZlZCB1c2luZyBvbmx5IGEgW2Rpc2NyaW1pbmF0ZWQgb25lT2ZdKHNyYy90ZXN0L3Jlc291cmNlcy9leGFtcGxlcy9kaXNjcmltaW5hdGVkT25lT2YpLiBUaGlzIGZlYXR1cmUgbWFrZXMgdXNlIG9mIEtvdGxpbiBgc2VhbGVkIGludGVyZmFjZWAgYW5kIG11c3QgYmUgZXhwbGljaXRseSBlbmFibGVkIHZpYSBgLS1odHRwLW1vZGVsLW9wdHMsIFNFQUxFRF9JTlRFUkZBQ0VTX0ZPUl9PTkVfT0ZgXwoKYGBgeW1sCm9wZW5hcGk6IDMuMC4wCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIENoaWxkRGVmaW5pdGlvbjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGRpc2NyaW1pbmF0b3I6CiAgICAgICAgcHJvcGVydHlOYW1lOiBzb21lX2VudW0KICAgICAgICBtYXBwaW5nOgogICAgICAgICAgb2JqX29uZV9vbmx5OiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRGlzY3JpbWluYXRlZENoaWxkMScKICAgICAgICAgIG9ial90d29fZmlyc3Q6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9EaXNjcmltaW5hdGVkQ2hpbGQyJwogICAgICAgICAgb2JqX3R3b19zZWNvbmQ6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9EaXNjcmltaW5hdGVkQ2hpbGQyJwogICAgICAgICAgb2JqX3RocmVlOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvZGlzY3JpbWluYXRlZF9jaGlsZF8zJwogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGRpc2NyaW1pbmF0aW5nX3Byb3BlcnR5OgogICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NoaWxkRGlzY3JpbWluYXRvcicKCiAgICBDaGlsZERpc2NyaW1pbmF0b3I6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBlbnVtOgogICAgICAgIC0gb2JqX29uZV9vbmx5CiAgICAgICAgLSBvYmpfdHdvX2ZpcnN0CiAgICAgICAgLSBvYmpfdHdvX3NlY29uZAogICAgICAgIC0gb2JqX3RocmVlCgogICAgRGlzY3JpbWluYXRlZENoaWxkMToKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ2hpbGREZWZpbml0aW9uJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBzb21lX3Byb3A6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCgogICAgRGlzY3JpbWluYXRlZENoaWxkMjoKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ2hpbGREZWZpbml0aW9uJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBzb21lX3Byb3A6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCgogICAgZGlzY3JpbWluYXRlZF9jaGlsZF8zOgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DaGlsZERlZmluaXRpb24nCgogICAgUmVzcG9uc2VzOgogICAgICB0eXBlOiAib2JqZWN0IgogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGVudHJpZXM6CiAgICAgICAgICB0eXBlOiAiYXJyYXkiCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgICAgLSAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvRGlzY3JpbWluYXRlZENoaWxkMiIKICAgICAgICAgICAgICAtICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9EaXNjcmltaW5hdGVkQ2hpbGQyIgogICAgICAgICAgICAgIC0gJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL2Rpc2NyaW1pbmF0ZWRfY2hpbGRfMyIKYGBgCmBgYGtvdGxpbgpASnNvblR5cGVJbmZvKAogICAgdXNlID0gSnNvblR5cGVJbmZvLklkLk5BTUUsCiAgICBpbmNsdWRlID0gSnNvblR5cGVJbmZvLkFzLkVYSVNUSU5HX1BST1BFUlRZLAogICAgcHJvcGVydHkgPSAic29tZV9lbnVtIiwKICAgIHZpc2libGUgPSB0cnVlCikKQEpzb25TdWJUeXBlcygKICAgIEpzb25TdWJUeXBlcy5UeXBlKAogICAgICAgIHZhbHVlID0gRGlzY3JpbWluYXRlZENoaWxkMTo6Y2xhc3MsCiAgICAgICAgbmFtZSA9CiAgICAgICAgIm9ial9vbmVfb25seSIKICAgICksCiAgICBKc29uU3ViVHlwZXMuVHlwZSgKICAgICAgICB2YWx1ZSA9IERpc2NyaW1pbmF0ZWRDaGlsZDI6OmNsYXNzLAogICAgICAgIG5hbWUgPQogICAgICAgICJvYmpfdHdvX2ZpcnN0IgogICAgKSwKICAgIEpzb25TdWJUeXBlcy5UeXBlKAogICAgICAgIHZhbHVlID0gRGlzY3JpbWluYXRlZENoaWxkMjo6Y2xhc3MsCiAgICAgICAgbmFtZSA9CiAgICAgICAgIm9ial90d29fc2Vjb25kIgogICAgKSwKICAgIEpzb25TdWJUeXBlcy5UeXBlKHZhbHVlID0gRGlzY3JpbWluYXRlZENoaWxkMzo6Y2xhc3MsIG5hbWUgPSAib2JqX3RocmVlIikKKQpzZWFsZWQgY2xhc3MgQ2hpbGREZWZpbml0aW9uKCkgewogICAgYWJzdHJhY3QgdmFsIHNvbWVFbnVtOiBDaGlsZERpc2NyaW1pbmF0b3IKfQoKZW51bSBjbGFzcyBDaGlsZERpc2NyaW1pbmF0b3IoCiAgICBASnNvblZhbHVlCiAgICB2YWwgdmFsdWU6IFN0cmluZwopIHsKICAgIE9CSl9PTkVfT05MWSgib2JqX29uZV9vbmx5IiksCgogICAgT0JKX1RXT19GSVJTVCgib2JqX3R3b19maXJzdCIpLAoKICAgIE9CSl9UV09fU0VDT05EKCJvYmpfdHdvX3NlY29uZCIpLAoKICAgIE9CSl9USFJFRSgib2JqX3RocmVlIik7CgogICAgY29tcGFuaW9uIG9iamVjdCB7CiAgICAgICAgcHJpdmF0ZSB2YWwgbWFwcGluZzogTWFwPFN0cmluZywgQ2hpbGREaXNjcmltaW5hdG9yPiA9CiAgICAgICAgICAgIHZhbHVlcygpLmFzc29jaWF0ZUJ5KENoaWxkRGlzY3JpbWluYXRvcjo6dmFsdWUpCgogICAgICAgIGZ1biBmcm9tVmFsdWUodmFsdWU6IFN0cmluZyk6IENoaWxkRGlzY3JpbWluYXRvcj8gPSBtYXBwaW5nW3ZhbHVlXQogICAgfQp9CgpkYXRhIGNsYXNzIERpc2NyaW1pbmF0ZWRDaGlsZDEoCiAgICBAcGFyYW06SnNvblByb3BlcnR5KCJzb21lX3Byb3AiKQogICAgQGdldDpKc29uUHJvcGVydHkoInNvbWVfcHJvcCIpCiAgICB2YWwgc29tZVByb3A6IFN0cmluZz8gPSBudWxsLAogICAgQGdldDpKc29uUHJvcGVydHkoInNvbWVfZW51bSIpCiAgICBAZ2V0Ok5vdE51bGwKICAgIG92ZXJyaWRlIHZhbCBzb21lRW51bTogQ2hpbGREaXNjcmltaW5hdG9yID0gQ2hpbGREaXNjcmltaW5hdG9yLk9CSl9PTkVfT05MWQopIDogQ2hpbGREZWZpbml0aW9uKCkKCmRhdGEgY2xhc3MgRGlzY3JpbWluYXRlZENoaWxkMigKICAgIEBnZXQ6SnNvblByb3BlcnR5KCJzb21lX2VudW0iKQogICAgQGdldDpOb3ROdWxsCiAgICBvdmVycmlkZSB2YWwgc29tZUVudW06IENoaWxkRGlzY3JpbWluYXRvciwKICAgIEBwYXJhbTpKc29uUHJvcGVydHkoInNvbWVfcHJvcCIpCiAgICBAZ2V0Okpzb25Qcm9wZXJ0eSgic29tZV9wcm9wIikKICAgIHZhbCBzb21lUHJvcDogU3RyaW5nPyA9IG51bGwKKSA6IENoaWxkRGVmaW5pdGlvbigpCgpkYXRhIGNsYXNzIERpc2NyaW1pbmF0ZWRDaGlsZDMoCiAgICBAZ2V0Okpzb25Qcm9wZXJ0eSgic29tZV9lbnVtIikKICAgIEBnZXQ6Tm90TnVsbAogICAgb3ZlcnJpZGUgdmFsIHNvbWVFbnVtOiBDaGlsZERpc2NyaW1pbmF0b3IgPSBDaGlsZERpc2NyaW1pbmF0b3IuT0JKX1RIUkVFCikgOiBDaGlsZERlZmluaXRpb24oKQoKZGF0YSBjbGFzcyBSZXNwb25zZXMoCiAgICBAcGFyYW06SnNvblByb3BlcnR5KCJlbnRyaWVzIikKICAgIEBnZXQ6SnNvblByb3BlcnR5KCJlbnRyaWVzIikKICAgIEBnZXQ6VmFsaWQKICAgIHZhbCBlbnRyaWVzOiBMaXN0PENoaWxkRGVmaW5pdGlvbj4/ID0gbnVsbAopCmBgYAoKCiMjIFVzYWdlIEluc3RydWN0aW9ucwoKVGhpcyBzZWN0aW9uIGRvY3VtZW50cyB0aGUgYXZhaWxhYmxlIENMSSBwYXJhbWV0ZXJzIGZvciBjb250cm9sbGluZyB3aGF0IGdldHMgZ2VuZXJhdGVkLiBUaGlzIGRvY3VtZW50YXRpb24gaXMgZ2VuZXJhdGVkIHVzaW5nOiBgLi9ncmFkbGV3IHByaW50Q29kZUdlblVzYWdlYAoKfCBQYXJhbWV0ZXIgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCAgIGAtLWFwaS1maWxlYCAgICAgICAgICAgICAgICB8IFRoaXMgbXVzdCBiZSBhIHZhbGlkIE9wZW4gQVBJIHYzIHNwZWMuIEFsbCBjb2RlIGdlbmVyYXRpb24gd2lsbCBiZSBiYXNlZCBvZmYgdGhpcyBpbnB1dC4gfAp8ICAgYC0tYXBpLWZyYWdtZW50YCAgICAgICAgICAgIHwgQSBwYXJ0aWFsIE9wZW4gQVBJIHYzIGZyYWdtZW50LCB0byBiZSBjb21iaW5lZCB3aXRoIHRoZSBwcmltYXJ5IEFQSSBmb3IgY29kZSBnZW5lcmF0aW9uIHB1cnBvc2VzLiB8CnwgKiBgLS1iYXNlLXBhY2thZ2VgICAgICAgICAgICAgfCBUaGUgYmFzZSBwYWNrYWdlIHdoaWNoIGFsbCBjb2RlIHdpbGwgYmUgZ2VuZXJhdGVkIHVuZGVyLiB8CnwgICBgLS1leHRlcm5hbC1yZWYtcmVzb2x1dGlvbmAgfCBTcGVjaWZ5IHRvIHdoaWNoIGRlZ3JlZSByZWZlcmVuY2VkIHNjaGVtYXMgZnJvbSBleHRlcm5hbCBmaWxlcyBhcmUgaW5jbHVkZWQgaW4gbW9kZWwgZ2VuZXJhdGlvbi4gRGVmYXVsdDogVEFSR0VURUQgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ0hPT1NFIE9ORSBPRjogfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgVEFSR0VURURgIC0gR2VuZXJhdGUgbW9kZWxzIG9ubHkgZm9yIGRpcmVjdGx5IHJlZmVyZW5jZWQgc2NoZW1hcyBpbiBleHRlcm5hbCBBUEkgZmlsZXMuIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYEFHR1JFU1NJVkVgIC0gUmVmZXJlbmNpbmcgYW55IHNjaGVtYSBpbiBhbiBleHRlcm5hbCBBUEkgZmlsZSB0cmlnZ2VycyBnZW5lcmF0aW9uIG9mIGV2ZXJ5IGV4dGVybmFsIHNjaGVtYSBpbiB0aGF0IGZpbGUuIHwKfCAgIGAtLWh0dHAtY2xpZW50LW9wdHNgICAgICAgICB8IFNlbGVjdCB0aGUgb3B0aW9ucyBmb3IgdGhlIGh0dHAgY2xpZW50IGNvZGUgdGhhdCB5b3Ugd2FudCB0byBiZSBnZW5lcmF0ZWQuIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENIT09TRSBBTlkgT0Y6IHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYFJFU0lMSUVOQ0U0SmAgLSBHZW5lcmF0ZXMgYSBmYXVsdCB0b2xlcmFuY2Ugc2VydmljZSBmb3IgdGhlIGNsaWVudCB1c2luZyB0aGUgZm9sbG93aW5nIGxpYnJhcnkgImlvLmdpdGh1Yi5yZXNpbGllbmNlNGo6cmVzaWxpZW5jZTRqLWFsbDorIiAob25seSBmb3IgT2tIdHRwIGNsaWVudHMpIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYFNVU1BFTkRfTU9ESUZJRVJgIC0gVGhpcyBvcHRpb24gYWRkcyB0aGUgc3VzcGVuZCBtb2RpZmllciB0byB0aGUgZ2VuZXJhdGVkIGNsaWVudCBmdW5jdGlvbnMgKG9ubHkgZm9yIE9wZW5GZWlnbiBjbGllbnRzKSB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBTUFJJTkdfUkVTUE9OU0VfRU5USVRZX1dSQVBQRVJgIC0gVGhpcyBvcHRpb24gYWRkcyB0aGUgU3ByaW5nLVJlc3BvbnNlRW50aXR5IGdlbmVyaWMgYXJvdW5kIHRoZSByZXNwb25zZSB0byBiZSBhYmxlIHRvIGdldCByZXNwb25zZSBoZWFkZXJzIGFuZCBzdGF0dXMgKG9ubHkgZm9yIE9wZW5GZWlnbiBjbGllbnRzKS4gfAp8ICAgYC0taHR0cC1jbGllbnQtdGFyZ2V0YCAgICAgIHwgT3B0aW9uYWxseSBzZWxlY3QgdGhlIHRhcmdldCBjbGllbnQgdGhhdCB5b3Ugd2FudCB0byBiZSBnZW5lcmF0ZWQuIERlZmF1bHRzIHRvIE9LX0hUVFAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ0hPT1NFIE9ORSBPRjogfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgT0tfSFRUUGAgLSBHZW5lcmF0ZSBPa0h0dHAgY2xpZW50LiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBPUEVOX0ZFSUdOYCAtIEdlbmVyYXRlIE9wZW5GZWlnbiBjbGllbnQuIHwKfCAgIGAtLWh0dHAtY29udHJvbGxlci1vcHRzYCAgICB8IFNlbGVjdCB0aGUgb3B0aW9ucyBmb3IgdGhlIGNvbnRyb2xsZXJzIHRoYXQgeW91IHdhbnQgdG8gYmUgZ2VuZXJhdGVkLiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDSE9PU0UgQU5ZIE9GOiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBTVVNQRU5EX01PRElGSUVSYCAtIFRoaXMgb3B0aW9uIGFkZHMgdGhlIHN1c3BlbmQgbW9kaWZpZXIgdG8gdGhlIGdlbmVyYXRlZCBjb250cm9sbGVyIGZ1bmN0aW9ucyB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBBVVRIRU5USUNBVElPTmAgLSBUaGlzIG9wdGlvbiBhZGRzIHRoZSBhdXRoZW50aWNhdGlvbiBwYXJhbWV0ZXIgdG8gdGhlIGdlbmVyYXRlZCBjb250cm9sbGVyIGZ1bmN0aW9ucyB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBDT01QTEVUSU9OX1NUQUdFYCAtIFRoaXMgb3B0aW9uIG1ha2VzIGdlbmVyYXRlZCBjb250cm9sbGVyIGZ1bmN0aW9ucyBoYXZlIFR5cGUgQ29tcGxldGlvblN0YWdlPFQ+ICh3b3JrcyBvbmx5IHdpdGggU3ByaW5nIENvbnRyb2xsZXIgZ2VuZXJhdG9yKSB8CnwgICBgLS1odHRwLWNvbnRyb2xsZXItdGFyZ2V0YCAgfCBPcHRpb25hbGx5IHNlbGVjdCB0aGUgdGFyZ2V0IGZyYW1ld29yayBmb3IgdGhlIGNvbnRyb2xsZXJzIHRoYXQgeW91IHdhbnQgdG8gYmUgZ2VuZXJhdGVkLiBEZWZhdWx0cyB0byBTcHJpbmcgQ29udHJvbGxlcnMgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ0hPT1NFIE9ORSBPRjogfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgU1BSSU5HYCAtIEdlbmVyYXRlIGZvciBTcHJpbmcgZnJhbWV3b3JrLiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBNSUNST05BVVRgIC0gR2VuZXJhdGUgZm9yIE1pY3JvbmF1dCBmcmFtZXdvcmsuIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYEtUT1JgIC0gR2VuZXJhdGUgZm9yIEt0b3Igc2VydmVyLiB8CnwgICBgLS1odHRwLW1vZGVsLW9wdHNgICAgICAgICAgfCBTZWxlY3QgdGhlIG9wdGlvbnMgZm9yIHRoZSBodHRwIG1vZGVscyB0aGF0IHlvdSB3YW50IHRvIGJlIGdlbmVyYXRlZC4gfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ0hPT1NFIEFOWSBPRjogfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgWF9FWFRFTlNJQkxFX0VOVU1TYCAtIFRoaXMgb3B0aW9uIHRyZWF0cyB4LWV4dGVuc2libGUtZW51bXMgYXMgZW51bXMgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgSkFWQV9TRVJJQUxJWkFUSU9OYCAtIFRoaXMgb3B0aW9uIGFkZHMgSmF2YSBTZXJpYWxpemFibGUgaW50ZXJmYWNlIHRvIHRoZSBnZW5lcmF0ZWQgbW9kZWxzIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYFFVQVJLVVNfUkVGTEVDVElPTmAgLSBUaGlzIG9wdGlvbiBhZGRzIEBSZWdpc3RlckZvclJlZmxlY3Rpb24gdG8gdGhlIGdlbmVyYXRlZCBtb2RlbHMuIFJlcXVpcmVzIGRlcGVuZGVuY3kgIidpby5xdWFya3VzOnF1YXJrdXMtY29yZTorIiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBNSUNST05BVVRfSU5UUk9TUEVDVElPTmAgLSBUaGlzIG9wdGlvbiBhZGRzIEBJbnRyb3NwZWN0ZWQgdG8gdGhlIGdlbmVyYXRlZCBtb2RlbHMuIFJlcXVpcmVzIGRlcGVuZGVuY3kgIidpby5taWNyb25hdXQ6bWljcm9uYXV0LWNvcmU6KyIgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgTUlDUk9OQVVUX1JFRkxFQ1RJT05gIC0gVGhpcyBvcHRpb24gYWRkcyBAUmVmbGVjdGl2ZUFjY2VzcyB0byB0aGUgZ2VuZXJhdGVkIG1vZGVscy4gUmVxdWlyZXMgZGVwZW5kZW5jeSAiJ2lvLm1pY3JvbmF1dDptaWNyb25hdXQtY29yZTorIiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBJTkNMVURFX0NPTVBBTklPTl9PQkpFQ1RgIC0gVGhpcyBvcHRpb24gYWRkcyBhIGNvbXBhbmlvbiBvYmplY3QgdG8gdGhlIGdlbmVyYXRlZCBtb2RlbHMuIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYFNFQUxFRF9JTlRFUkZBQ0VTX0ZPUl9PTkVfT0ZgIC0gVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgZ2VuZXJhdGlvbiBvZiBpbnRlcmZhY2VzIGZvciBkaXNjcmltaW5hdGVkIG9uZU9mIHR5cGVzIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYE5PTl9OVUxMX01BUF9WQUxVRVNgIC0gVGhpcyBvcHRpb24gbWFrZXMgbWFwIHZhbHVlcyBub24tbnVsbC4gVGhlIGRlZmF1bHQgKHNpbmNlIHYxNSkgYW5kIG1vc3Qgc3BlYyBjb21wbGlhbnQgaXMgbWFrZSBtYXAgdmFsdWVzIG51bGxhYmxlIHwKfCAgIGAtLW91dHB1dC1kaXJlY3RvcnlgICAgICAgICB8IEFsbG93cyB0aGUgZ2VuZXJhdGlvbiBkaXIgdG8gYmUgb3ZlcnJpZGRlbi4gRGVmYXVsdHMgdG8gY3VycmVudCBkaXIgfAp8ICAgYC0tcmVzb3VyY2VzLXBhdGhgICAgICAgICAgIHwgQWxsb3dzIHRoZSBwYXRoIGZvciBnZW5lcmF0ZWQgcmVzb3VyY2VzIHRvIGJlIG92ZXJyaWRkZW4uIERlZmF1bHRzIHRvIGBzcmMvbWFpbi9yZXNvdXJjZXNgIHwKfCAgIGAtLXNyYy1wYXRoYCAgICAgICAgICAgICAgICB8IEFsbG93cyB0aGUgcGF0aCBmb3IgZ2VuZXJhdGVkIHNvdXJjZSBmaWxlcyB0byBiZSBvdmVycmlkZGVuLiBEZWZhdWx0cyB0byBgc3JjL21haW4va290bGluYCB8CnwgICBgLS10YXJnZXRzYCAgICAgICAgICAgICAgICAgfCBUYXJnZXRzIGFyZSB0aGUgcGFydHMgb2YgdGhlIGFwcGxpY2F0aW9uIHRoYXQgeW91IHdhbnQgdG8gYmUgZ2VuZXJhdGVkLiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDSE9PU0UgQU5ZIE9GOiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBIVFRQX01PREVMU2AgLSBKYWNrc29uIGFubm90YXRlZCBkYXRhIGNsYXNzZXMgdG8gcmVwcmVzZW50IHRoZSBzY2hlbWEgb2JqZWN0cyBkZWZpbmVkIGluIHRoZSBpbnB1dC4gfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgQ09OVFJPTExFUlNgIC0gU3ByaW5nIC8gTWljcm9uYXV0IC8gS3RvciBIVFRQIGNvbnRyb2xsZXJzIGZvciBlYWNoIG9mIHRoZSBlbmRwb2ludHMgZGVmaW5lZCBpbiB0aGUgaW5wdXQuIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYENMSUVOVGAgLSBTaW1wbGUgaHR0cCByZXN0IGNsaWVudC4gfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgUVVBUktVU19SRUZMRUNUSU9OX0NPTkZJR2AgLSBUaGlzIG9wdGlvbnMgZ2VuZXJhdGVzIHRoZSByZWZsZWN0aW9uLWNvbmZpZy5qc29uIGZpbGUgZm9yIHF1YXJrdXMgaW50ZWdyYXRpb24gcHJvamVjdHMgfAp8ICAgYC0tdHlwZS1vdmVycmlkZXNgICAgICAgICAgIHwgU3BlY2lmeSBub24tZGVmYXVsdCBrb3RsaW4gdHlwZXMgZm9yIGNlcnRhaW4gT0FTIHR5cGVzLiBGb3IgZXhhbXBsZSwgZ2VuZXJhdGUgYEluc3RhbnRgIGluc3RlYWQgb2YgYE9mZnNldERhdGVUaW1lYCB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDSE9PU0UgQU5ZIE9GOiB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBEQVRFVElNRV9BU19JTlNUQU5UYCAtIFVzZSBgSW5zdGFudGAgYXMgdGhlIGRhdGV0aW1lIHR5cGUuIERlZmF1bHRzIHRvIGBPZmZzZXREYXRlVGltZWAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgREFURVRJTUVfQVNfTE9DQUxEQVRFVElNRWAgLSBVc2UgYExvY2FsRGF0ZVRpbWVgIGFzIHRoZSBkYXRldGltZSB0eXBlLiBEZWZhdWx0cyB0byBgT2Zmc2V0RGF0ZVRpbWVgIHwKfCAgIGAtLXZhbGlkYXRpb24tbGlicmFyeWAgICAgICB8IFNwZWNpZnkgd2hpY2ggdmFsaWRhdGlvbiBsaWJyYXJ5IHRvIHVzZSBmb3IgYW5ub3RhdGlvbnMgaW4gZ2VuZXJhdGVkIG1vZGVsIGNsYXNzZXMuIERlZmF1bHQ6IEpBVkFYX1ZBTElEQVRJT04gfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ0hPT1NFIE9ORSBPRjogfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBgSkFWQVhfVkFMSURBVElPTmAgLSBVc2UgYGphdmF4LnZhbGlkYXRpb25gIGFubm90YXRpb25zIGluIGdlbmVyYXRlZCBtb2RlbCBjbGFzc2VzIChkZWZhdWx0KSB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGBKQUtBUlRBX1ZBTElEQVRJT05gIC0gVXNlIGBqYWthcnRhLnZhbGlkYXRpb25gIGFubm90YXRpb25zIGluIGdlbmVyYXRlZCBtb2RlbCBjbGFzc2VzIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgYE5PX1ZBTElEQVRJT05gIC0gVXNlIG5vIHZhbGlkYXRpb24gYW5ub3RhdGlvbnMgaW4gZ2VuZXJhdGVkIG1vZGVsIGNsYXNzZXMgfAoKCiMjIyBDb21tYW5kIExpbmUKRmFicmlrdCBpcyBwYWNrYWdlZCBhcyBhbiBleGVjdXRhYmxlIGphciwgYWxsb3dpbmcgaXQgdG8gYmUgaW50ZWdyYXRlZCBpbnRvIGFueSBidWlsZCB0b29sLiBUaGUgQ0xJIGNhbiBiZSBpbnZva2VkIGFzIGZvbGxvd3M6CmBgYAogICBqYXZhIC1qYXIgZmFicmlrdC5qYXIgXAogICAgICAgICAgICAgLS1vdXRwdXQtZGlyZWN0b3J5ICcvdG1wJyBcCiAgICAgICAgICAgICAtLWJhc2UtcGFja2FnZSAnY29tLmV4YW1wbGUnIFwKICAgICAgICAgICAgIC0tYXBpLWZpbGUgJy9wYXRoLXRvLWFwaS9vcGVuLWFwaS55YW1sJyBcCiAgICAgICAgICAgICAtLXRhcmdldHMgJ2NsaWVudCcgXAogICAgICAgICAgICAgLS10YXJnZXRzICdodHRwX21vZGVscycgXAogICAgICAgICAgICAgLS1odHRwLWNsaWVudC1vcHRzIHJlc2lsaWVuY2U0agpgYGAKCiMjIyBHcmFkbGUgZXhhbXBsZQoKSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgR3JhZGxlIHRhc2sgd2l0aCBjb2RlIGdlbmVyYXRlZCB0byB0aGUgYGJ1aWxkL2dlbmVyYXRlZGAgZGlyZWN0b3J5LCBhbmQgZXhlY3V0aW9uIGxpbmtlZCB0byB0aGUgY29tcGlsZSB0YXNrLiAKCmBgYGtvdGxpbgp2YWwgZmFicmlrdDogQ29uZmlndXJhdGlvbiBieSBjb25maWd1cmF0aW9ucy5jcmVhdGluZwoKdmFsIGdlbmVyYXRpb25EaXIgPSAiJGJ1aWxkRGlyL2dlbmVyYXRlZCIKdmFsIGFwaUZpbGUgPSAiJGJ1aWxkRGlyL3BhdGgtdG8tYXBpL29wZW4tYXBpLnlhbWwiCgpzb3VyY2VTZXRzIHsKICAgIG1haW4geyBqYXZhLnNyY0RpcnMoIiRnZW5lcmF0aW9uRGlyL3NyYy9tYWluL2tvdGxpbiIpIH0KICAgIHRlc3QgeyBqYXZhLnNyY0RpcnMoIiRnZW5lcmF0aW9uRGlyL3NyYy90ZXN0L2tvdGxpbiIpIH0KICAgIC4uLgp9Cgp0YXNrcyB7ICAgCiAgICAuLi4KICAgIHZhbCBnZW5lcmF0ZUNvZGUgYnkgY3JlYXRpbmcoSmF2YUV4ZWM6OmNsYXNzKSB7CiAgICAgICAgaW5wdXRzLmZpbGVzKGFwaUZpbGUpCiAgICAgICAgb3V0cHV0cy5kaXIoZ2VuZXJhdGlvbkRpcikKICAgICAgICBvdXRwdXRzLmNhY2hlSWYgeyB0cnVlIH0KICAgICAgICBjbGFzc3BhdGgoZmFicmlrdCkKICAgICAgICBtYWluQ2xhc3Muc2V0KCJjb20uY2pib29tcy5mYWJyaWt0LmNsaS5Db2RlR2VuIikKICAgICAgICBhcmdzID0gbGlzdE9mKAogICAgICAgICAgICAiLS1vdXRwdXQtZGlyZWN0b3J5IiwgZ2VuZXJhdGlvbkRpciwKICAgICAgICAgICAgIi0tYmFzZS1wYWNrYWdlIiwgImNvbS5leGFtcGxlIiwKICAgICAgICAgICAgIi0tYXBpLWZpbGUiLCBhcGlGaWxlLAogICAgICAgICAgICAiLS10YXJnZXRzIiwgImh0dHBfbW9kZWxzIiwKICAgICAgICAgICAgIi0tdGFyZ2V0cyIsICJjbGllbnQiLAogICAgICAgICAgICAiLS1odHRwLWNsaWVudC1vcHRzIiwgInJlc2lsaWVuY2U0aiIKICAgICAgICApCiAgICB9CiAgICB3aXRoVHlwZTxvcmcuamV0YnJhaW5zLmtvdGxpbi5ncmFkbGUudGFza3MuS290bGluQ29tcGlsZT4gewogICAgICAgIGtvdGxpbk9wdGlvbnMuanZtVGFyZ2V0ID0gIjE3IgogICAgICAgIGRlcGVuZHNPbihnZW5lcmF0ZUNvZGUpCiAgICB9Cn0KCmRlcGVuZGVuY2llcyB7CiAgICAgZmFicmlrdCgiY29tLmNqYm9vbXM6ZmFicmlrdDorIikgLy8gVGhpcyBzaG91bGQgYmUgcGlubmVkICAKICAgICAuLi4KfQpgYGAKCiMjIyBNYXZlbgoKVGhlIFtleGVjLW1hdmVuLXBsdWdpbl0oaHR0cDovL3d3dy5tb2pvaGF1cy5vcmcvZXhlYy1tYXZlbi1wbHVnaW4vZXhhbXBsZXMvZXhhbXBsZS1leGVjLXVzaW5nLXBsdWdpbi1kZXBlbmRlbmNpZXMuaHRtbCkgaXMgY2FwYWJsZSBvZiBkb3dubG9hZGluZyB0aGUgRmFicmlrdCBsaWJyYXJ5IGZyb20gTWF2ZW4gQ2VudHJhbCBhbmQgZXhlY3V0aW5nIGl0cyBtYWluIG1ldGhvZCB3aXRoIGRlZmluZWQgYXJndW1lbnRzLgoKIyMgQnVpbGRpbmcgTG9jYWxseQoKRmFicmlrdCBpcyBidWlsdCB3aXRoIEdyYWRsZSBhbmQgcmVxdWlyZXMgYW4gaW5pdGlhbGlzZWQgZ2l0IHJlcG9zaXRvcnkuIFRoZSBlYXNpZXN0IHdheSB0byBidWlsZCBpdCBpcyB0byBjbG9uZSB0aGUgcmVwbyBsb2NhbGx5IGJlZm9yZSBleGVjdXRpbmcgdGhlIGJ1aWxkIGNvbW1hbmQ6CmBgYApnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206Y2pib29tcy9mYWJyaWt0LmdpdApjZCBmYWJyaWt0LwouL2dyYWRsZXcgY2xlYW4gYnVpbGQKYGBgCgojIyBQdWJsaXNoaW5nClRoaXMgbGlicmFyeSBpcyBwdWJsaXNoZWQgdG8gW1NvbmF0eXBlJ3MgT1NTXShodHRwczovL3MwMS5vc3Muc29uYXR5cGUub3JnLyN3ZWxjb21lKSBzdGFnaW5nIHJlcG9zaXRvcnkgdXNpbmcgR2l0aHViIGFjdGlvbnMgd2hlbiBhIHJlbGVhc2UgaXMgZHJhZnRlZC4gSXQgY2FuIGJlIG1hbnVhbGx5IHByb21vdGVkIGZyb20gdGhlcmUgdG8gdGhlIHJlbGVhc2UgcmVwb3NpdG9yeSB3aGljaCBpcyBpbmRleGVkIGJ5IE1hdmVuIENlbnRyYWwuCgo= readmeEtag: '"06616fd466812a7ebd333f6ad154305c7e6dc674"' readmeLastModified: Tue, 06 Aug 2024 10:40:01 GMT repositoryId: 229844927 description: Generates Kotlin Code from OpenApi3 Specifications created: '2019-12-24T00:56:42Z' updated: '2024-09-05T14:01:43Z' language: Kotlin archived: false stars: 151 watchers: 10 forks: 39 owner: cjbooms logo: https://avatars.githubusercontent.com/u/868640?v=4 license: Apache-2.0 repoEtag: '"c0f3e625a7c3bcc2a2f0aafdda6cff91cab1e5e67d6077543ea63956c2bc7559"' repoLastModified: Thu, 05 Sep 2024 14:01:43 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/bump-sh/cli v3: true repositoryMetadata: base64Readme: >- IyBCdW1wIENMSQoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyB3aWR0aD0iMjAlIiBzcmM9Imh0dHBzOi8vYnVtcC5zaC9pY29uLWRlZmF1bHQtbGFyZ2UucG5nIiAvPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL2hlbHAuYnVtcC5zaC8iPkhlbHA8L2E+IHwKICA8YSBocmVmPSJodHRwczovL2J1bXAuc2gvdXNlcnMvc2lnbl91cCI+U2lnbiB1cDwvYT4KPC9wPgoKVGhlIEJ1bXAuc2ggQ0xJIGlzIHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB5b3VyIEFQSSBkb2N1bWVudGF0aW9uIG9yIGh1YnMgaG9zdGVkIG9uIEJ1bXAuc2guIFdpdGggYW55IEFQSSBkZWZpbml0aW9uIG9mIHlvdXIgY2hvaWNlIChmcm9tIFN3YWdnZXIsIE9wZW5BUEkgb3IgQXN5bmNBUEkpLCBpdCBjYW4gaGVscCB5b3UgdG86CgotIFZhbGlkYXRlIGFuIEFQSSBkb2N1bWVudCBiZWZvcmUgcHVibGlzaGluZyBpdCB0byB5b3VyIGRvY3VtZW50YXRpb24KLSBQdWJsaXNoIGFuIEFQSSBkb2N1bWVudCB0byB5b3VyIEJ1bXAuc2ggZG9jdW1lbnRhdGlvbiBvciBodWJzCi0gQ29tcGFyZSB0d28gQVBJIGRvY3VtZW50cyB0byBnZW5lcmF0ZSBhIGh1bWFuLXJlYWRhYmxlIGRpZmYgZnJvbSB5b3VyIEFQSSBkZWZpbml0aW9ucwoKVW5kZXIgdGhlIGhvb2QsIGl0IHVzZXMgdGhlIEFQSSBvZiBbZGV2ZWxvcGVycy5idW1wLnNoXShodHRwczovL2RldmVsb3BlcnMuYnVtcC5zaCkuIEFuZCBpcyBidWlsdCB3aXRoIHRoZSBbYG9jbGlmYF0oaHR0cHM6Ly9vY2xpZi5pbykgZnJhbWV3b3JrIGluIFR5cGVzY3JpcHQuCgpbIVtWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2J1bXAtY2xpLnN2ZyldKGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvYnVtcC1jbGkpClshW1Rlc3RzXShodHRwczovL2dpdGh1Yi5jb20vYnVtcC1zaC9jbGkvYWN0aW9ucy93b3JrZmxvd3MvY2hlY2tzLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYnVtcC1zaC9jbGkvYWN0aW9ucy93b3JrZmxvd3MvY2hlY2tzLnltbCkKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9idW1wLWNsaS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYnVtcC1zaC9jbGkvYmxvYi9tYXN0ZXIvcGFja2FnZS5qc29uKQoKIyMgVGFibGUgb2YgY29udGVudHMKCiogW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKKiBbVXNhZ2VdKCN1c2FnZSkKKiBbQ29tbWFuZHNdKCNjb21tYW5kcykKKiBbRGV2ZWxvcG1lbnRdKCNkZXZlbG9wbWVudCkKKiBbQ29udHJpYnV0aW5nXSgjY29udHJpYnV0aW5nKQoqIFtWZXJzaW9uaW5nXSgjdmVyc2lvbmluZykKCiMjIEluc3RhbGxhdGlvbgoKVGhlIEJ1bXAuc2ggQ0xJIGlzIGEgbm9kZSBwYWNrYWdlIGN1cnJlbnRseSBkaXN0cmlidXRlZCB2aWEgTlBNLiBUaGlzIG1lYW5zIHlvdSBtdXN0IGhhdmUgdGhlIE5vZGUgdjE0KyBpbnRlcnByZXRlciBpbnN0YWxsZWQgb24geW91ciBjb21wdXRlciBvciBDSSBzZXJ2ZXJzLgoKX0lmIHlvdSBhcmUgbG9va2luZyB0byB1c2UgQnVtcC5zaCBpbiBhIGNvbnRpbnVvdXMgaW50ZWdyYXRpb24gZW52aXJvbm1lbnQgeW91IG1pZ2h0IGJlIGludGVyZXN0ZWQgYnkgW291ciBHaXRodWIgQWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbWFya2V0cGxhY2UvYWN0aW9ucy9hcGktZG9jdW1lbnRhdGlvbi1vbi1idW1wKS5fCgo+IFlvdSBjYW4gZG93bmxvYWQgYSBzdGFuZGFsb25lIHBhY2thZ2UgZGlyZWN0bHkgZnJvbSB0aGUgbGF0ZXN0Cj4gR2l0SHViIHJlbGVhc2UgYXNzZXRzIGlmIHlvdSBkb27igJl0IHVzZSBOb2RlLgp7OiAuaW5mb30KCiMjIyBHbG9iYWwgaW5zdGFsbGF0aW9uCgpUbyBpbnN0YWxsIGl0IGdsb2JhbGx5LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHdpdGggTlBNCgpgYGBzaC1zZXNzaW9uCm5wbSBpbnN0YWxsIC1nIGJ1bXAtY2xpCmBgYAoKT3IsIHdpdGggWWFybiB2aWEKCmBgYHNoLXNlc3Npb24KeWFybiBnbG9iYWwgYWRkIGJ1bXAtY2xpCmBgYAoKIyMjIEFkZCBCdW1wLnNoIHRvIHlvdXIgbm9kZSBwcm9qZWN0CgpBcyBvdXIgQ0xJIGlzIGEgbm9kZSBwYWNrYWdlLCB5b3UgY2FuIGVhc2lseSBlbWJlZCBpdCBpbnRvIHlvdXIgcHJvamVjdCBieSBhZGRpbmcgdGhlIHBhY2thZ2UgdG8geW91ciBgcGFja2FnZS5qc29uYCBmaWxlLCBlaXRoZXIgd2l0aCBOUE0KCmBgYHNoLXNlc3Npb24KbnBtIGluc3RhbGwgLS1zYXZlLWRldiBidW1wLWNsaQpgYGAKCk9yIHdpdGggWWFybiB2aWEKCmBgYHNoLXNlc3Npb24KeWFybiBhZGQgLS1kZXYgYnVtcC1jbGkKYGBgCgpZb3UgY2FuIHRoZW4gdXNlIGFueSBCdW1wLnNoIGNvbW1hbmRzIHdpdGggYG5weGAgKHNhbWUgYXMgYG5wbSBleGVjYCkKCmBgYHNoLXNlc3Npb24KbnB4IGJ1bXAgLS1oZWxwCmBgYAoKIyMjIEhvdyBzaG91bGQgSSBkbyBpZiBJJ20gbm90IHVzaW5nIG5wbSA/CgpVbmZvcnR1bmF0ZWx5LCBhdCB0aGUgbW9tZW50IHdlIG9ubHkgc3VwcG9ydCB0aGUgTm9kZSBlbnZpcm9ubWVudC4gSG93ZXZlciwgeW91IGNhbiBkb3dubG9hZCBhIHN0YW5kYWxvbmUgcGFja2FnZSBkaXJlY3RseSBmcm9tIHRoZSBbbGF0ZXN0IEdpdGh1YiByZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vYnVtcC1zaC9jbGkvcmVsZWFzZXMpIGFzc2V0cyB3aGljaCB5b3UgY2FuIHJ1biBhcyBhIHN0YW5kYWxvbmUgYmluYXJ5LiBPciB5b3UgY2FuIHB1c2ggeW91ciBkb2N1bWVudGF0aW9uIHVzaW5nIFtvdXIgQVBJXShodHRwczovL2RldmVsb3BlcnMuYnVtcC5zaC8pIChhZHZhbmNlZCB1c2FnZSBvbmx5KS4KCiMjIFVzYWdlCgpUbyBsaXN0IGFsbCB0aGUgYXZhaWxhYmxlIGNvbW1hbmRzLCBqdXN0IHR5cGUgYGJ1bXBgIGluIHlvdXIgY29tbWFuZCBsaW5lIGVudmlyb25tZW50LgoKYGBgc2gtc2Vzc2lvbgokIGJ1bXAgLS1oZWxwClRoZSBCdW1wLnNoIENMSSBpcyB1c2VkIHRvIGludGVyYWN0IHdpdGggeW91ciBBUEkgZG9jdW1lbnRhdGlvbiBob3N0ZWQgb24gQnVtcC5zaCBieSB1c2luZyB0aGUgQVBJIG9mIGRldmVsb3BlcnMuYnVtcC5zaAoKVkVSU0lPTgogIGJ1bXAtY2xpLzIuOC4wIGxpbnV4LXg2NCBub2RlLXYxNi4xOS4wCgpVU0FHRQogICQgYnVtcCBbQ09NTUFORF0KCkNPTU1BTkRTCiAgZGVwbG95ICAgQ3JlYXRlIGEgbmV3IHZlcnNpb24gb2YgeW91ciBkb2N1bWVudGF0aW9uIGZyb20gdGhlIGdpdmVuIGZpbGUgb3IgVVJMLgogIGRpZmYgICAgIEdldCBhIGNvbXBhcmlzb24gZGlmZiB3aXRoIHlvdXIgZG9jdW1lbnRhdGlvbiBmcm9tIHRoZSBnaXZlbiBmaWxlIG9yIFVSTC4KICBoZWxwICAgICBEaXNwbGF5IGhlbHAgZm9yIGJ1bXAuCiAgb3ZlcmxheSAgQXBwbHkgYW4gT3BlbkFQSSBzcGVjaWZpZWQgb3ZlcmxheSB0byB5b3VyIEFQSSBkZWZpbml0aW9uLgogIHByZXZpZXcgIENyZWF0ZSBhIGRvY3VtZW50YXRpb24gcHJldmlldyBmcm9tIHRoZSBnaXZlbiBmaWxlIG9yIFVSTC4KYGBgCgogWW91IGNhbiBhbHNvIGdldCBzb21lIGhlbHAgYW55dGltZSBieSBhZGRpbmcgYC0taGVscGAgdG8gYW55IGNvbW1hbmQuIEV4YW1wbGU6IGBidW1wIGRlcGxveSAtLWhlbHBgLgoKIyMgUHJlcGFyZSB5b3VyIEJ1bXAuc2ggYWNjb3VudAoKV2hpbGUgc29tZSBjb21tYW5kcyBkb24ndCBuZWVkIGFueSBBUEkgdG9rZW4gKGBwcmV2aWV3YCBvciBgZGlmZmApIHlvdSB3aWxsIG5lZWQgYW4gYWNjZXNzIGtleSBpZiB5b3Ugd2FudCB0byBpbnRlcmFjdCB3aXRoIHlvdXIgQnVtcC5zaCBkb2N1bWVudGF0aW9uLgoKSGVhZCBvdmVyIHRvIHlvdXIgRG9jdW1lbnRhdGlvbiBzZXR0aW5ncyBpbiB0aGUg4oCcQ0kgZGVwbG95bWVudOKAnSBzZWN0aW9uIG9yIHlvdXIgQWNjb3VudCBvciBPcmdhbml6YXRpb24gc2V0dGluZ3MgaW4gdGhlIOKAnEFQSSBrZXlz4oCdIHNlY3Rpb24gdG8gZmV0Y2ggYSBwZXJzb25hbCB0b2tlbiBmb3IgbGF0ZXIgdXNhZ2UuCgojIyBDb21tYW5kcwoKKiBbYGJ1bXAgZGVwbG95IFtGSUxFXWBdKCNidW1wLWRlcGxveS1maWxlKQoqIFtgYnVtcCBkaWZmIFtGSUxFXWBdKCNidW1wLWRpZmYtZmlsZSkKKiBbYGJ1bXAgcHJldmlldyBbRklMRV1gXSgjYnVtcC1wcmV2aWV3LWZpbGUpCiogW2BidW1wIG92ZXJsYXkgW0RFRklOSVRJT05fRklMRV0gW09WRVJMQVlfRklMRV1gXSgjYnVtcC1vdmVybGF5LWRlZmluaXRpb25fZmlsZS1vdmVybGF5X2ZpbGUpCgojIyMgYGJ1bXAgZGVwbG95IFtGSUxFXWAKCldoZW4geW91IHVwZGF0ZSB5b3VyIEFQSSwgeW91IGFsc28gd2FudCBpdHMgZG9jdW1lbnRhdGlvbiB0byBiZSB1cCB0byBkYXRlIGZvciB5b3VyIEFQSSB1c2Vycy4gVGhpcyBpcyB3aGF0IHRoZSBkZXBsb3kgY29tbWFuZCBpcyBmb3IuCgpgYGBzaC1zZXNzaW9uCmJ1bXAgZGVwbG95IHBhdGgvdG8vYXBpLWRvY3VtZW50LnltbCAtLWRvYyBteS1kb2N1bWVudGF0aW9uIC0tdG9rZW4gJERPQ19UT0tFTgpgYGAKCj4gWW91IGNhbiBmaW5kIHlvdXIgb3duIGBteS1kb2N1bWVudGF0aW9uYCBzbHVnIGFuZCBgJERPQ19UT0tFTmAgYXBpIGtleSBmcm9tIHlvdXIgW2RvY3VtZW50YXRpb24gc2V0dGluZ3NdKGh0dHBzOi8vYnVtcC5zaC9kb2NzKS4KezogLmluZm99CgpZb3UgY2FuIGFsc28gZGVwbG95IGEgZ2l2ZW4gQVBJIGRvY3VtZW50IHRvIGEgZGlmZmVyZW50IGJyYW5jaCBvZiB5b3VyIGRvY3VtZW50YXRpb24gd2l0aCB0aGUgYC0tYnJhbmNoIDxicmFuY2gtbmFtZT5gIHBhcmFtZXRlci4gUGxlYXNlIG5vdGUgdGhlIGJyYW5jaCB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc27igJl0IGV4aXN0LiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGJyYW5jaGluZyBmZWF0dXJlIGFyZSBhdmFpbGFibGUgb24gW3RoaXMgZGVkaWNhdGVkIGhlbHAgcGFnZV0oaHR0cHM6Ly9kb2NzLmJ1bXAuc2gvaGVscC9icmFuY2hpbmcpLiBFLmcuIGRlcGxveSB0aGUgQVBJIGRvY3VtZW50IHRvIHRoZSBgc3RhZ2luZ2AgYnJhbmNoIG9mIHRoZSBkb2N1bWVudGF0aW9uOgoKYGBgc2gtc2Vzc2lvbgpidW1wIGRlcGxveSBwYXRoL3RvL2FwaS1kb2N1bWVudC55bWwgLS1kb2MgbXktZG9jdW1lbnRhdGlvbiAtLXRva2VuICRET0NfVE9LRU4gLS1icmFuY2ggc3RhZ2luZwpgYGAKCiMjIyMgRGVwbG95IGEgZm9sZGVyIGFsbCBhdCBvbmNlCgpJZiB5b3UgYWxyZWFkeSBoYXZlIGEgaHViIGluIHlvdXIgW0J1bXAuc2hdKGh0dHBzOi8vYnVtcC5zaCkgYWNjb3VudCwgeW91IGNhbiBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBkb2N1bWVudGF0aW9uIGFuZCBkZXBsb3kgaXQgaW50byB0aGF0IGh1YiBieSBwdWJsaXNoaW5nIGEgd2hvbGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgbXVsdGlwbGUgQVBJIGRvY3VtZW50cyBpbiBhIHNpbmdsZSBjb21tYW5kOgoKYGBgc2gtc2Vzc2lvbgpidW1wIGRlcGxveSBkaXIvcGF0aC90by9hcGlzLyAtLWF1dG8tY3JlYXRlIC0taHViIG15LWh1YiAtLXRva2VuICRIVUJfVE9LRU4KYGBgCgo+IFlvdSBjYW4gZmluZCB5b3VyIG93biBgbXktaHViYCBzbHVnIGFuZCBgJEhVQl9UT0tFTmAgYXBpIGtleSBmcm9tIHlvdXIgW2h1YiBzZXR0aW5nc10oaHR0cHM6Ly9idW1wLnNoL2h1YnMpLgp7OiAuaW5mb30KClBsZWFzZSBub3RlLCBieSBkZWZhdWx0LCBvbmx5IGZpbGVzIG5hbWVkIGB7c2x1Z30tYXBpLltmb3JtYXRdYCBhcmUgcHVibGlzaGVkLiBXaGVyZSBge3NsdWd9YCBpcyBhIG5hbWUgZm9yIHlvdXIgQVBJIGFuZCBgW2Zvcm1hdF1gIGlzIGVpdGhlciBgeWFtbGAgb3IgYGpzb25gLiBBZGp1c3QgdG8geW91ciBmaWxlIG5hbWluZyBjb252ZW50aW9uIHVzaW5nIHRoZSBgLS1maWxlbmFtZS1wYXR0ZXJuIDxwYXR0ZXJuPmAgb3B0aW9uLgoKTm90ZSB0aGF0IGl0IF9jYW5fIGluY2x1ZGUgYCpgIHdpbGRjYXJkIHNwZWNpYWwgY2hhcmFjdGVyLCBidXQgKiptdXN0KiogaW5jbHVkZSB0aGUgYHtzbHVnfWAgZmlsdGVyIHRvIGV4dHJhY3QgeW91ciBkb2N1bWVudGF0aW9u4oCZcyBzbHVnIGZyb20gdGhlIGZpbGVuYW1lLiBUaGUgcGF0dGVybiBjYW4gYWxzbyBoYXZlIGFueSBvdGhlciBvcHRpb25hbCBmaXhlZCBjaGFyYWN0ZXJzLgoKSGVyZeKAmXMgYSBwcmFjdGljYWwgZXhhbXBsZS4gTGV0J3MgYXNzdW1lIHRoYXQgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBmaWxlcyBpbiB5b3VyIGBwYXRoL3RvL2FwaXMvYCBkaXJlY3Rvcnk6CgpgYGAKcGF0aC90by9hcGlzCuKUlOKUgCBwcml2YXRlLWFwaS11c2Vycy1zZXJ2aWNlLmpzb24K4pSU4pSAIHBhcnRuZXItYXBpLXBheW1lbnRzLXNlcnZpY2UueW1sCuKUlOKUgCBwdWJsaWMtYXBpLWNvbnRyYWN0cy1zZXJ2aWNlLnltbArilJTilIAgZGF0YS5qc29uCuKUlOKUgCBSRUFETUUubWQKYGBgCgpJbiBvcmRlciB0byBkZXBsb3kgdGhlIDMgc2VydmljZXMgQVBJIGRlZmluaXRpb24gZmlsZXMgZnJvbSB0aGlzIGZvbGRlciAoYHByaXZhdGUtYXBpLXVzZXJzLXNlcnZpY2UuanNvbmAsIGBwYXJ0bmVyLWFwaS1wYXltZW50cy1zZXJ2aWNlLnltbGAgYW5kIGBwdWJsaWMtYXBpLWNvbnRyYWN0cy1zZXJ2aWNlLnltbGApLCB5b3UgY2FuIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgCmJ1bXAgZGVwbG95IHBhdGgvdG8vYXBpcy8gLS1odWIgbXktaHViIC0tZmlsZW5hbWUtcGF0dGVybiAnKi1hcGkte3NsdWd9LXNlcnZpY2UnCmBgYAoKIyMjIyBWYWxpZGF0ZSBhbiBBUEkgZG9jdW1lbnQKClNpbXVsYXRlIHlvdXIgQVBJIGRvY3VtZW50J3MgZGVwbG95bWVudCB0byBlbnN1cmUgaXQgaXMgdmFsaWQgYnkgYWRkaW5nIHRoZSBgLS1kcnktcnVuYCBmbGFnIHRvIHRoZSBgZGVwbG95YCBjb21tYW5kLiBJdCBpcyBoYW5keSBpbiBhIENvbnRpbnVvdXMgSW50ZWdyYXRpb24gZW52aXJvbm1lbnQgcnVubmluZyBhIHRlc3QgZGVwbG95bWVudCBvdXRzaWRlIHlvdXIgbWFpbiBicmFuY2g6CgpgYGBzaC1zZXNzaW9uCmJ1bXAgZGVwbG95IHBhdGgvdG8vYXBpLWRvY3VtZW50LnltbCAtLWRyeS1ydW4gLS1kb2MgbXktZG9jdW1lbnRhdGlvbiAtLXRva2VuICRET0NfVE9LRU4KYGBgCgpQbGVhc2UgY2hlY2sgYGJ1bXAgZGVwbG95IC0taGVscGAgZm9yIG1vcmUgdXNhZ2UgZGV0YWlscy4KCiMjIyBgYnVtcCBkaWZmIFtGSUxFXWAKCl9JZiB5b3Ugd2FudCB0byByZWNlaXZlIGF1dG9tYXRpYyBgYnVtcCBkaWZmYCByZXN1bHRzIG9uIHlvdXIgR2l0aHViIFB1bGwgUmVxdWVzdHMgeW91IG1pZ2h0IGJlIGludGVyZXN0ZWQgYnkgW291ciBHaXRodWIgQWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbWFya2V0cGxhY2UvYWN0aW9ucy9hcGktZG9jdW1lbnRhdGlvbi1vbi1idW1wI2FwaS1kaWZmLW9uLXB1bGwtcmVxdWVzdHMpIGRpZmYgY29tbWFuZC5fCgpQbGVhc2Ugbm90ZSB0aGF0IGJ5IGRlZmF1bHQgdGhlIGNvbW1hbmQgd2lsbCBhbHdheXMgZXhpdCB3aXRoIGEKc3VjY2Vzc2Z1bCByZXR1cm4gY29kZS4gSWYgeW91IHdhbnQgdG8gdXNlIHRoaXMgY29tbWFuZCBpbiBhIENJCmVudmlyb25tZW50IGFuZCB3YW50IHRoZSBjb21tYW5kIHRvIGZhaWwgKippbiBjYXNlIG9mIGEgYnJlYWtpbmcKY2hhbmdlKiosIHlvdSB3aWxsIG5lZWQgdG8gYWRkIHRoZSBgLS1mYWlsLW9uLWJyZWFraW5nYCBmbGFnIHRvIHlvdXIKZGlmZiBjb21tYW5kLgoKIyMjIyBQdWJsaWMgQVBJIGRpZmZzCgpGcm9tIGFueSB0d28gQVBJIGRvY3VtZW50cyBvciBVUkxzLCB5b3UgY2FuIHJldHJpZXZlIGEgY29tcHJlaGVuc2l2ZSBjaGFuZ2Vsb2cgb2Ygd2hhdCBoYXMgY2hhbmdlZCBiZXR3ZWVuIHRoZW0uCgpgYGBzaC1zZXNzaW9uCiQgYnVtcCBkaWZmIHBhdGgvdG8veW91ci9maWxlLnltbCBwYXRoL3RvL3lvdXIvc2Vjb25kX2ZpbGUueW1sCiogQ29tcGFyaW5nIHRoZSB0d28gZ2l2ZW4gZGVmaW5pdGlvbiBmaWxlcy4uLiBkb25lCk1vZGlmaWVkOiBHRVQgL2NvbnNvbW1hdGlvbnMKICBSZXNwb25zZSBtb2RpZmllZDogMjAwCiAgICBbQnJlYWtpbmddIEJvZHkgYXR0cmlidXRlIG1vZGlmaWVkOiBlbmVyZ2llCmBgYAo+IFlvdSBjYW4gY3JlYXRlIGFzIG1hbnkgZGlmZnMgYXMgeW91IGxpa2Ugd2l0aG91dCBiZWluZyBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIGEgKipmcmVlIGFuZCB1bmxpbWl0ZWQgc2VydmljZSoqIHByb3ZpZGVkIGFzIGxvbmcgYXMgeW91IHVzZSB0aGUgc2VydmljZSBmYWlybHkuCns6IC5pbmZvfQoKX05vdGU6IFlvdSBjYW4gYWxzbyB0ZXN0IHRoaXMgZmVhdHVyZSBpbiBvdXIgZGVkaWNhdGVkIHdlYiBhcHBsaWNhdGlvbiBhdCA8aHR0cHM6Ly9hcGktZGlmZi5pby8+Ll8KCiMjIyMgQXV0aGVudGljYXRlZCBkaWZmcyByZWxhdGVkIHRvIHlvdXIgQnVtcC5zaCBkb2N1bWVudGF0aW9uCgpGcm9tIGFuIGV4aXN0aW5nIEJ1bXAuc2ggZG9jdW1lbnRhdGlvbiwgdGhlIGBkaWZmYCBjb21tYW5kIHdpbGwgcmV0cmlldmUgYSBjb21wYXJpc29uIGNoYW5nZWxvZyBiZXR3ZWVuIHlvdXIgbGF0ZXN0IHB1Ymxpc2hlZCBkb2N1bWVudGF0aW9uIGFuZCB0aGUgZ2l2ZW4gZmlsZSBvciBVUkw6CgpgYGBzaC1zZXNzaW9uCmJ1bXAgZGlmZiBwYXRoL3RvL3lvdXIvZmlsZS55bWwgLS1kb2MgbXktZG9jdW1lbnRhdGlvbiAtLXRva2VuICRET0NfVE9LRU4KYGBgCgpJZiB5b3Ugd2FudCB0byBjb21wYXJlIHR3byB1bnB1Ymxpc2hlZCB2ZXJzaW9ucyBvZiB5b3VyIEFQSSBkb2N1bWVudCwgdGhlIGBkaWZmYCBjb21tYW5kIGNhbiByZXRyaWV2ZSBhIGNvbXBhcmlzb24gY2hhbmdlbG9nIGJldHdlZW4gdHdvIGdpdmVuIGZpbGUgb3IgVVJMLCDigJxhcyBzaW1wbGUgYXMgYGdpdCBkaWZmYOKAnToKCmBgYHNoLXNlc3Npb24KYnVtcCBkaWZmIHBhdGgvdG8veW91ci9maWxlLnltbCBwYXRoL3RvL3lvdXIvbmV4dC1maWxlLnltbCAtLWRvYyBteS1kb2N1bWVudGF0aW9uIC0tdG9rZW4gJERPQ19UT0tFTgpgYGAKClBsZWFzZSBjaGVjayBgYnVtcCBkaWZmIC0taGVscGAgZm9yIGZ1bGwgdXNhZ2UgZGV0YWlscy4KCiMjIyBgYnVtcCBwcmV2aWV3IFtGSUxFXWAKCgpXaGVuIHdyaXRpbmcgZG9jdW1lbnRhdGlvbiwgeW91IG1pZ2h0IHdhbnQgdG8gcHJldmlldyBob3cgaXQgcmVuZGVycyBvbiBCdW1wLnNoLiBUaGlzIGlzIHByZWNpc2VseSB0aGUgZ29hbCBvZiB0aGUgYHByZXZpZXdgIGNvbW1hbmQ6IGl0IHdpbGwgY3JlYXRlIHRlbXBvcmFyeSBkb2N1bWVudGF0aW9uIHdpdGggYSB1bmlxdWUgVVJMLCB3aGljaCB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgYSBzaG9ydCBwZXJpb2QgKDMwIG1pbnV0ZXMpLgoKVXNhZ2UgZnJvbSBhIGxvY2FsIE9wZW5BUEkgb3IgQXN5bmNBUEkgZmlsZQoKYGBgc2hlbGwKYnVtcCBwcmV2aWV3IHBhdGgvdG8vZmlsZS5qc29uCmBgYAoKWW91IGNhbiBhbHNvIHByZXZpZXcgYSBmaWxlIGF2YWlsYWJsZSBmcm9tIGEgVVJMCgpgYGBzaGVsbApidW1wIHByZXZpZXcgaHR0cHM6Ly9kZXZlbG9wZXJzLmJ1bXAuc2gvc291cmNlLnlhbWwKYGBgCgojIyMjIExpdmUgcHJldmlldwoKQnkgdXNpbmcgdGhlIGAtLWxpdmVgIGZsYWcgeW91IGNhbiBzdGF5IGZvY3VzZWQgb24gQVBJIGRlc2lnbiAoT3BlbkFQSSBvciBBc3luY0FQSSBmaWxlKSB3aGlsZSBzZWVpbmcgYSBjb250aW51b3VzbHkgdXBkYXRlZCBwcmV2aWV3IGVhY2ggdGltZSB5b3Ugc2F2ZSB5b3VyIEFQSSBkb2N1bWVudC4KCi0gTGF1bmNoIHRoZSBsaXZlIHByZXZpZXcgY29tbWFuZCBpbiB5b3VyIHRlcm1pbmFsCgpgYGBzaGVsbApidW1wIHByZXZpZXcgLS1saXZlIC0tb3BlbiBvcGVuYXBpLWRlZmluaXRpb24uanNvbgpgYGAKCi0gRWRpdCB5b3VyIGBvcGVuYXBpLWRlZmluaXRpb24uanNvbmAgZmlsZSBpbiB5b3VyIGZhdm9yaXRlIHRleHQgZWRpdG9yCi0gV2F0Y2ggdGhlIGxpdmUgcHJldmlldyBiZWluZyB1cGRhdGVkIGVhY2ggdGltZSB5b3Ugc2F2ZSB5b3VyIGZpbGUuCgo+IFlvdSBjYW4gY3JlYXRlIGFzIG1hbnkgcHJldmlld3MgYXMgeW91IGxpa2Ugd2l0aG91dCBiZWluZyBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIGEgKipmcmVlIGFuZCB1bmxpbWl0ZWQgc2VydmljZSoqLgp7OiAuaW5mb30KCl9Ob3RlOiB0aGUgYWRkaXRpb25hbCBgLS1vcGVuYCBmbGFnIGhlbHBzIHRvIGF1dG9tYXRpY2FsbHkgb3BlbiB0aGUgcHJldmlldyBVUkwgaW4geW91ciBicm93c2VyLl8KClBsZWFzZSBjaGVjayBgYnVtcCBwcmV2aWV3IC0taGVscGAgZm9yIG1vcmUgdXNhZ2UgZGV0YWlscwoKIyMjIGBidW1wIG92ZXJsYXkgW0RFRklOSVRJT05fRklMRV0gW09WRVJMQVlfRklMRV1gCgo+IFRoaXMgZmVhdHVyZSBpbXBsZW1lbnRzIHRoZSBbT3BlbkFQSSBPdmVybGF5IHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3ZlcmxheS1TcGVjaWZpY2F0aW9uKS4gSXQgaXMgcG9zc2libGUgdG8gYXBwbHkgYW4gT3ZlcmxheSB0byBhbnkga2luZCBvZiBkb2N1bWVudCwgYmUgaXQgYW4gT3BlbkFQSSBvciBBc3luY0FQSSBkZWZpbml0aW9uIGZpbGUuCgpUaGUgT3ZlcmxheSBzcGVjaWZpY2F0aW9uIG9mIE9wZW5BUEkgbWFrZXMgaXQgcG9zc2libGUgdG8gbW9kaWZ5IHRoZSBjb250ZW50IG9mIGFuIEFQSSBkZWZpbml0aW9uIGZpbGUgYnkgYWRkaW5nIGEgbGF5ZXIgb24gdG9wIG9mIGl0LiBUaGF0IGxheWVyIGhlbHBzIGFkZCwgcmVtb3ZlLCBvciBjaGFuZ2Ugc29tZSBvciBhbGwgb2YgdGhlIGNvbnRlbnQgb2YgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uIAoKVGVjaG5pY2FsbHksIHRoZSBgYnVtcCBvdmVybGF5YCBjb21tYW5kIHdpbGwgb3V0cHV0IGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgYFtERUZJTklUSU9OX0ZJTEVdYCAoYW4gT3BlbkFQSSBvciBBc3luY0FQSSBkb2N1bWVudCkgYnkgYXBwbHlpbmcgdGhlIG9wZXJhdGlvbnMgZGVzY3JpYmVkIGluIHRoZSBgW09WRVJMQVlfRklMRV1gIE92ZXJsYXkgZmlsZSB0byB0aGUgb3JpZ2luYWwgQVBJIGRvY3VtZW50LgoKVG8gcmVkaXJlY3QgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCB0byBhIG5ldyBmaWxlIHlvdSBjYW4gcnVuIHRoZSBmb2xsb3dpbmc6CgpgYGBzaGVsbApidW1wIG92ZXJsYXkgYXBpLWRvY3VtZW50LnlhbWwgb3ZlcmxheS1maWxlLnlhbWwgPiBhcGktb3ZlcmxheWVkLWRvY3VtZW50LnlhbWwKYGBgCgpfTm90ZTogeW91IGNhbiBhbHNvIGFwcGx5IHRoZSBvdmVybGF5IGR1cmluZyB0aGUgW2BidW1wIGRlcGxveWAgY29tbWFuZF0oKCNidW1wLWRlcGxveS1maWxlKSkgd2l0aCB0aGUgbmV3IGAtLW92ZXJsYXlgIGZsYWc6XwoKYGBgc2hlbGwKYnVtcCBkZXBsb3kgYXBpLWRvY3VtZW50LnlhbWwgLS1kb2MgbXktZG9jIC0tdG9rZW4gbXktdG9rZW4gLS1vdmVybGF5IG92ZXJsYXktZmlsZS55YW1sIApgYGAKCiMjIERldmVsb3BtZW50CgpNYWtlIHN1cmUgdG8gaGF2ZSBOb2RlLmpzIChBdCBsZWFzdCB2MTQpIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmUuCgotIEluc3RhbGwgbm9kZSBkZXBlbmRlbmNpZXMgd2l0aAogIAogIGBgYHNoLXNlc3Npb24KICBucG0gaW5zdGFsbAogIGBgYAogIAotIENvbXBpbGUgdGhlIFR5cGVzY3JpcHQgY29kZQogIAogIGBgYHNoLXNlc3Npb24KICBucG0gcnVuIGJ1aWxkCiAgbnBtIHJ1biBjbGVhbiAjIHRvIHJlbW92ZSBidWlsZCBhcnRpZmFjdHMKICBgYGAKICAKLSBGb3JtYXQgdGhlIGNvZGViYXNlIHRvIGNvbXBseSB3aXRoIHRoZSBsaW50ZXIgcnVsZXMKICAKICBgYGBzaC1zZXNzaW9uCiAgbnBtIHJ1biBmbXQKICBgYGAKICAKLSBSdW4gdGhlIHRlc3Qgc3VpdGVzCiAgCiAgYGBgc2gtc2Vzc2lvbgogIG5wbSBydW4gdGVzdAogIG5wbSBydW4gdGVzdC1jb3ZlcmFnZSAjIFJ1biB0ZXN0cyB3aXRoIGNvdmVyYWdlCiAgYGBgCgojIyBDb21wYXRpYmxlIHNwZWNpZmljYXRpb24gdHlwZXMKCldlIGN1cnJlbnRseSBzdXBwb3J0IFtPcGVuQVBJXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgZnJvbSAyLjAgKGNhbGxlZCBTd2FnZ2VyKSB0byAzLjEgYW5kIFtBc3luY0FQSSAyLnhdKGh0dHBzOi8vd3d3LmFzeW5jYXBpLmNvbS9kb2NzL3JlZmVyZW5jZS9zcGVjaWZpY2F0aW9uL2xhdGVzdCkgc3BlY2lmaWNhdGlvbiBmaWxlIHR5cGVzLiBCb3RoIFlBTUwgYW5kIEpTT04gZmlsZSBmb3JtYXRzIGFyZSBhY2NlcHRlZCBmaWxlIGlucHV0cyB0byB0aGUgQ0xJLgoKIyMgQ29udHJpYnV0aW5nCgpCdWcgcmVwb3J0cyBhbmQgcHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZSBvbiBHaXRIdWIgYXQgPGh0dHBzOi8vZ2l0aHViLmNvbS9idW1wLXNoL2NsaT4uIFRoaXMgcHJvamVjdCBpcyBpbnRlbmRlZCB0byBiZSBhIHNhZmUsIHdlbGNvbWluZyBzcGFjZSBmb3IgY29sbGFib3JhdGlvbiwgYW5kIGNvbnRyaWJ1dG9ycyBhcmUgZXhwZWN0ZWQgdG8gYWRoZXJlIHRvIHRoZSBbQ29udHJpYnV0b3IgQ292ZW5hbnRdKGh0dHA6Ly9jb250cmlidXRvci1jb3ZlbmFudC5vcmcpIGNvZGUgb2YgY29uZHVjdC4KCiMjIFRoYW5rcwoKLSBbTG9ybmEgTWl0Y2hlbF0oaHR0cHM6Ly9naXRodWIuY29tL2xvcm5hamFuZS8pIGZvciBbb3BlbmFwaS1vdmVybGF5LWpzXShodHRwczovL2dpdGh1Yi5jb20vbG9ybmFqYW5lL29wZW5hcGktb3ZlcmxheXMtanMpCgojIyBMaWNlbnNlCgpUaGUgQnVtcCBDTEkgcHJvamVjdCBpcyByZWxlYXNlZCB1bmRlciB0aGUgW01JVCBMaWNlbnNlXShodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKS4KCiMjIENvZGUgb2YgQ29uZHVjdAoKRXZlcnlvbmUgaW50ZXJhY3RpbmcgaW4gdGhlIEJ1bXAtQ0xJIHByb2plY3QgY29kZWJhc2VzLCBpc3N1ZSB0cmFja2VycywgY2hhdCByb29tcywgYW5kIG1haWxpbmcgbGlzdHMgaXMgZXhwZWN0ZWQgdG8gZm9sbG93IHRoZSBbY29kZSBvZiBjb25kdWN0XShodHRwczovL2dpdGh1Yi5jb20vYnVtcC1zaC8uZ2l0aHViL2Jsb2IvbWFpbi9DT0RFX09GX0NPTkRVQ1QubWQpLgoKIyMgVmVyc2lvbmluZwoKVGhpcyBucG0gcGFja2FnZSBzdGFydHMgYXQgdjIuMC4wIGZvciB0d28gbWFpbiByZWFzb25zOgoKLSBPdXIgW2ZpcnN0IHZlcnNpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9idW1wLXNoL2J1bXAtY2xpKSBvZiB0aGUgQnVtcCBDTEkgd2FzIHdyaXR0ZW4gaW4gUnVieSwgc3RhcnRpbmcgYXQgdjIuMC4wLCB3aGljaCBtYWtlcyBpdCBjbGVhciB3ZSBhcmUgd29ya2luZyBvbiBvdXIgc2Vjb25kIHZlcnNpb24gb2YgdGhlIEJ1bXAgQ0xJCgotIFRoZSBgYnVtcC1jbGlgIHBhY2thZ2UgdXNlZCB0byBiZSBbb3duZWQgYnkgUmljb10oaHR0cHM6Ly9naXRodWIuY29tL3JzdGFjcnV6KSB3aGljaCBhbHJlYWR5IHB1Ymxpc2hlZCB2MS54IHBhY2thZ2VzLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIHRoZSBvbGQgbnBtIHBhY2thZ2UgcGxlYXNlIGhlYWQgdG8gW2BAcnN0YWNydXovYnVtcC1jbGlgIHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0Byc3RhY3J1ei9idW1wLWNsaSkuIF9BIGJpZyB0aGFua3MgdG8gUmljbyBmb3IgdHJhbnNmZXJyaW5nIHRoZSBvd25lcnNoaXAgb2YgdGhlIGBidW1wLWNsaWAgcGFja2FnZSBuYW1lIV8K readmeEtag: '"2e1dc695c30a270adf5ddf9a942054df96672c00"' readmeLastModified: Fri, 02 Aug 2024 07:51:41 GMT repositoryId: 353317141 description: Bump.sh CLI - Deploy your OpenAPI & AsyncAPI documentations from your CI created: '2021-03-31T10:29:18Z' updated: '2024-08-15T09:51:27Z' language: TypeScript archived: false stars: 39 watchers: 4 forks: 2 owner: bump-sh logo: https://avatars.githubusercontent.com/u/33217836?v=4 license: MIT repoEtag: '"08826af446e942739579dc72a7e61ab4cd735230c8643e83801c6d5877c7ed05"' repoLastModified: Thu, 15 Aug 2024 09:51:27 GMT foundInMaster: true category: - Documentation - Server Implementations id: 591ed1a3d5bb0d3944aa1ab23f82edfa name: Bump.sh homepage: https://github.com/bump-sh/cli language: SaaS source_description: > Bump.sh generates elegant documentation and changelogs from your OpenAPI specifications. Git diff, for your API. Integrates with CI and Slack. link: https://bump.sh v2: true v3_1: true - source: https://openapi.tools/ name: Python OpenAPI Generator category: - Code Generators - Server Implementations link: https://github.com/wael34218/python_openapi_generator language: Python repository: https://github.com/wael34218/python_openapi_generator source_description: This library facilitates creating OpenAPI document for Python projects. v2: false v3: true repositoryMetadata: base64Readme: >- IyBQeXRob24gT3BlbkFQSSAoU3dhZ2dlcikgR2VuZXJhdG9yClRoaXMgbGlicmFyeSBmYWNpbGl0YXRlcyBjcmVhdGluZyBPcGVuQVBJIChTd2FnZ2VyKSBkb2N1bWVudCBmb3IgUHl0aG9uIHByb2plY3RzLgoKSSB3b3JrZWQgZm9yIGEgbG9uZyB0aW1lIGluIGJ1aWxkaW5nIEFQSXMgYW5kIHNlcnZpY2VzLCBhbmQgSSBjYW4gdGVsbCB5b3UgdGhhdCBvbmUgdGhpbmcgSSBnb3Qgc2ljayBvZiBoZWFyaW5nIHdhcyAiV2h5IHlvdXIgQVBJcyBhcmUgbm90IGRvY3VtZW50ZWQ/Ii4KSSBzZWFyY2hlZCBsb25nIGFuZCBoYXJkIGZvciBhIGxpYnJhcnkgdGhhdCBnZW5lcmF0ZXMgZG9jdW1lbnRhdGlvbiB3aXRob3V0IG1lIGdvaW5nIGJhY2sgYW5kIGZvcnRoIGVkaXRpbmcgeWFtbC9qc29uL21hcmtkb3duIGZpbGVzIC4uLiBpdHMgZW5vdWdoIHRoYXQgSSB3b3JyeSBhYm91dCB3cml0dGluZyB1bml0IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0cy4KQWZ0ZXIgbG9uZyBzZWFyY2ggSSBmb3VuZCAwIGxpYnJhcmllcyB0aGF0IGRvZXMgdGhhdC4KSSB3YXMgd29uZGVyaW5nIHdoeSBub2JvZHkgaGFzIHlldCBleHBsb2l0ZWQgdGhpcyBnYXAgaW4gYSB2ZXJ5IGx1Y3JhdGl2ZSBtYXJrZXQsIHdvbmRlciBubyBsb25nZXIuIEhlbHAgaXMgYXQgaGFuZC4KCiMjIEluc3RhbGxhdGlvbgoKYGBgCnBpcCBpbnN0YWxsIG9wZW5hcGktZ2VuZXJhdG9yCmBgYAoKIyMgR2VuZXJhdGUgeW91ciBBUEkgdXNpbmcgc2ltcGxlIHNjcmlwdAoKYGBgCmZyb20gb3BlbmFwaV9nZW5lcmF0b3IgaW1wb3J0IE9wZW5hcGlHZW5lcmF0b3IKaW1wb3J0IHJlcXVlc3RzCgojIFN0ZXAgMTogQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBnZW5lcmF0b3IKZ2VuID0gT3BlbmFwaUdlbmVyYXRvcigiVGl0bGUiLCAiVGhpcyBpcyBhIHRlc3RpbmcgZGVzY3JpcHRpb24iLCAidjAuMC4xIiwgc2VydmVyPSJodHRwczovL3N3YXBpLmNvLyIpCgojIFN0ZXAgMjogQWRkIGFsbCByZXNwb25zZXMKcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQoImh0dHBzOi8vc3dhcGkuY28vYXBpL3BsYW5ldHMvIiwgcGFyYW1zPXsicGFnZSI6IDJ9KQpnZW4uYWRkX3Jlc3BvbnNlKHJlc3BvbnNlLCBkZXNjcmlwdGlvbj0iUmV0cmlldmluZyBwbGFuZXRzIikKCnJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KCJodHRwczovL3N3YXBpLmNvL2FwaS9wZW9wbGUvIiwgcGFyYW1zPXsicGFnZSI6IDN9LCBkZXNjcmlwdGlvbj0iUmV0cmlldmluZyBwZW9wbGUiKQpnZW4uYWRkX3Jlc3BvbnNlKHJlc3BvbnNlLCBkZXNjcmlwdGlvbj0iUmV0cmlldmluZyBwZW9wbGUiKQoKIyBTdGVwIDM6RXhwb3J0Cmdlbi5leHBvcnQoImV4YW1wbGUueW1sIiwgZXh0ZW5zaW9uPSJ5YW1sIikKIyBBbHNvIGNhbiBzZXQgdGhlIGV4dGVuc2lvbiB0byBganNvbmAKCiMgU3RlcCA0OiBQcm9maXQKYGBgCg== readmeEtag: '"d48e945e4ce335a8b31764e46ccf2b60bd829eb7"' readmeLastModified: Thu, 07 Nov 2019 03:53:13 GMT repositoryId: 173452649 description: >- This library facilitates creating OpenAPI (Swagger) document for Python projects. created: '2019-03-02T13:41:09Z' updated: '2024-05-24T19:19:07Z' language: Python archived: false stars: 10 watchers: 3 forks: 2 owner: wael34218 logo: https://avatars.githubusercontent.com/u/334876?v=4 license: MIT repoEtag: '"612ad5ebf5f01620a0dbeef599d6ba2341482bffaa7e0fb8949090462343ba5e"' repoLastModified: Fri, 24 May 2024 19:19:07 GMT foundInMaster: true id: b7a4b7aa58bd888b38858294394928aa - source: https://openapi.tools/ name: Fix My OpenAPI - A VSCode Extension by APIMatic category: - Text Editors - Description Validators language: Any link: >- https://marketplace.visualstudio.com/items?itemName=apimatic-developers.apimatic-for-vscode source_description: > APIMatic's VSCode extension helps you validate, lint, and auto-fix your OpenAPI files, along with other capabilities such as API transformations, API audit report generation, SDKs generation, and more. v2: true v3: true v3_1: true id: 587a6f1da562ea627d000b675af8c3d1 foundInMaster: true - source: https://openapi.tools/ name: - VSCode OpenAPI Editor - 42Crunch IntelliJ OpenAPI Editor category: - Text Editors - Server Implementations language: Any link: - >- https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi - https://plugins.jetbrains.com/plugin/14837-openapi-swagger-editor repository: https://github.com/42crunch/vscode-openapi source_description: > OpenAPI extension for Visual Studio Code - new file templates, navigation, intellisense, code snippets. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFRvb2xzIGZvciBWaXN1YWwgU3R1ZGlvIENvZGUKClRoaXMgW1Zpc3VhbCBTdHVkaW8gQ29kZV0oaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vKSAoVlMgQ29kZSkgW2V4dGVuc2lvbl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPTQyQ3J1bmNoLnZzY29kZS1vcGVuYXBpKSBhZGRzIHJpY2ggc3VwcG9ydCBmb3IgdGhlIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoT0FTKSAoZm9ybWVybHkga25vd24gYXMgdGhlIFN3YWdnZXIgc3BlY2lmaWNhdGlvbikuIFRoZSBwbHVnaW4gc3VwcG9ydHMgY29kZSBuYXZpZ2F0aW9uLCBsaW50aW5nLCBTd2FnZ2VyVUkgb3IgUmVEb2MgcHJldmlldywgSW50ZWxsaVNlbnNlLCBzY2hlbWEgZW5mb3JjZW1lbnQgYW5kIGdlbmVyYXRpb24sIHNjaGVtYSBkZWZpbml0aW9uIGxpbmtzLCBzbmlwcGV0cyBhcyB3ZWxsIGFzIHN0YXRpYyBhbmQgZHluYW1pYyBzZWN1cml0eSBhbmFseXNpcy4KClRoZSBleHRlbnNpb24gaW50ZWdyYXRlcyB3aXRoIFs0MkNydW5jaCBBdWRpdF0oaHR0cHM6Ly80MmNydW5jaC5jb20vZnJlZS11c2VyLWZhcS8pIGFuZCBbNDJDcnVuY2ggU2Nhbl0oaHR0cHM6Ly80MmNydW5jaC5jb20vZnJlZS11c2VyLWZhcS8pLCBzbyB0aGF0IHlvdSBjYW4gY2hlY2sgdGhlIHF1YWxpdHkgYW5kIHRoZSBzZWN1cml0eSBvZiB5b3VyIEFQSXMgZGlyZWN0bHkgaW4gVlMgQ29kZS4KCklmIHlvdSBhcmUgYSA0MkNydW5jaCBjdXN0b21lciBvciBoYXZlIGFuIGFjY291bnQgb2YgYSA0MkNydW5jaCBwbGF0Zm9ybSwgeW91IGNhbiBhbHNvIGRpcmVjdGx5IGFjY2VzcyBBUEkgY29sbGVjdGlvbnMgYW5kIHNlY3VyaXR5IHJlcG9ydHMgdGhyb3VnaCB0aGUgaW50ZWdyYXRlZCBwbGF0Zm9ybSBuYXZpZ2F0b3IuCgpCb3RoIE9BUyB2MiBhbmQgdjMuMC54IGFyZSBzdXBwb3J0ZWQsIGluIEpTT04gb3IgWUFNTCBmb3JtYXQuCgojIyBRdWljayBzdGFydAoKQWZ0ZXIgaW5zdGFsbGluZyB0aGUgcGx1Z2luLCBvcGVuIGFueSBKU09OIG9yIFlBTUwgZmlsZSB0aGF0IGNvbnRhaW5zIGFuIE9wZW5BUEkgZGVmaW5pdGlvbi4gVGhlIHBsdWdpbiBhdXRvbWF0aWNhbGx5IGRldGVjdHMgdGhhdCB0aGlzIGlzIGFuIE9wZW5BUEkgZmlsZSwgYW5kIHRoZSAqKi9BUEkqKiBidXR0b24gaXMgc2hvd24gaW4gdGhlIGxlZnQtaGFuZCBwYW5lbC4KCiFbT3BlbkFQSSBFeHBsb3Jlcl0oLi9pbWFnZXMvT3BlbkFQSSUyMEV4cGxvcmVyLlBORykKCldlIGFsc28gZW5jb3VyYWdlIHlvdSB0byB3YXRjaCBbdGhpcyB2aWRlb10oaHR0cHM6Ly80MmNydW5jaC5jb20vdHV0b3JpYWwtb3BlbmFwaS1zd2FnZ2VyLWV4dGVuc2lvbi12cy1jb2RlLyNJbnRyb2R1Y2luZy1PcGVuQVBJLUVkaXRvcikgdGhhdCBnaXZlcyB5b3UgYSBmdWxsIHRvdXIgb2YgdGhlIGVkaXRvciBhbmQgaXRzIGRpZmZlcmVudCBmZWF0dXJlcy4KCiMjIEVkaXRvciBmZWF0dXJlcwoKVGhpcyBleHRlbnNpb24gbWFrZXMgaXQgZWFzaWVyIGFuZCBmYXN0ZXIgdG8gbmF2aWdhdGUgeW91ciBPcGVuQVBJIGRlZmluaXRpb25zLCBlc3BlY2lhbGx5IHdoZW4gdGhleSBnZXQgbG9uZ2VyLgoKWW91IGNhbiBob21lIGluIG9uIGVsZW1lbnRzIGluIHRoZSBPcGVuQVBJIGV4cGxvcmVyIHZpZXcsIG9yIGp1bXAgZGlyZWN0bHkgdG8gdGhlIHRhcmdldCBvZiBhIHJlZmVyZW5jZSBpbiB0aGUgQVBJLiBZb3UgY2FuIGFsc28gYWRkIG5ldyBlbGVtZW50cyB0byB5b3VyIEFQSSBkaXJlY3RseSBpbiB0aGUgT3BlbkFQSSBleHBsb3JlciBkaXJlY3RseSB3aGVyZSB0aGV5IGFyZSBuZWVkZWQuIEZpbGxpbmcgaW4gdGhlIGRldGFpbHMgaXMgcXVpY2tlciB3aXRoIEludGVsbGlTZW5zZSBzdXBwb3J0IGZvciBPcGVuQVBJIGVsZW1lbnRzLgoKIyMjIENyZWF0aW5nIE9wZW5BUEkgZmlsZXMKCjEuIFByZXNzICoqQ3RybCtTaGlmdCtQKiogb24gV2luZG93cyBvciBMaW51eCwgb3IgKipDbWQrU2hpZnQrUCoqIG9uIGEgTWFjLgoyLiBJbiB0aGUgY29tbWFuZCBwcm9tcHQsIHN0YXJ0IHR5cGluZyBgbmV3IG9wZW5hcGlgLCBhbmQgY2xpY2sgdGhlIGNvcnJlc3BvbmRpbmcgY29tbWFuZCB0byBjcmVhdGUgZWl0aGVyIGFuIE9BUyB2MiBvciB2MyB0ZW1wbGF0ZSBmaWxlLgozLiBVc2UgdGhlIE9wZW5BUEkgZXhwbG9yZXIgdG8gcG9wdWxhdGUgdGhlIHRlbXBsYXRlIHdpdGggbmV3IHBhdGhzIGFuZCBvdGhlciBlbGVtZW50cyBhcyBuZWVkZWQuCjQuIFNhdmUgdGhlIGZpbGUgdG8geW91ciBkaXNrIHRvIGZ1bGx5IGVuYWJsZSBJbnRlbGxpU2Vuc2UuCgohW0NyZWF0ZSBuZXcgT3BlbkFQSSBmaWxlIGZyb20gYSB0ZW1wbGF0ZV0oLi9pbWFnZXMvTmV3JTIwT3BlbkFQSSUyMGZpbGUuZ2lmP3Jhdz10cnVlKQoKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGVhcm5pbmclMjBNb3JlIS1yZWQpIFdhdGNoIHRoaXMgW3ZpZGVvXShodHRwczovLzQyY3J1bmNoLmNvbS90dXRvcmlhbC1vcGVuYXBpLXN3YWdnZXItZXh0ZW5zaW9uLXZzLWNvZGUvI05hdmlnYXRpbmctT3BlbkFQSS1FeHBsb3Jlcikgb24gZWRpdG9yIGJhc2ljcy4KCiMjIyBOYXZpZ2F0aW5nIGFuIEFQSSBkZWZpbml0aW9uCgoxLiBPcGVuIGFuIE9wZW5BUEkgZmlsZS4KMi4gQ2xpY2sgdGhlIE9wZW5BUEkgYnV0dG9uIHRvIHN3aXRjaCB0byB0aGUgT3BlbkFQSSBleHBsb3JlciB2aWV3LgozLiBFeHBhbmQgdGhlIHNlY3Rpb25zIGFuZCBlbGVtZW50cyBpbiB0aGUgZmlsZSBhcyBuZWVkZWQsIGFuZCBjbGljayB0aGUgb25lcyB5b3Ugd2FudCB0byBqdW1wIHRvIGluIHRoZSBlZGl0b3IuCgohW05hdmlnYXRpb24gaW5zaWRlIHRoZSBPcGVuQVBJIGZpbGVdKC4vaW1hZ2VzL05hdmlnYXRpb24uZ2lmP3Jhdz10cnVlKQoKIyMjIEFkZCBuZXcgZWxlbWVudHMgaW4gdGhlIE9wZW5BUEkgZXhwbG9yZXIKCjEuIEluIE9wZW5BUEkgZXhwbG9yZXIgcGFuZSwgZ28gdG8gdGhlIHNlY3Rpb24gd2hlcmUgeW91IHdhbnQgdG8gYWRkIGEgbmV3IGVsZW1lbnQgYW5kIHJpZ2h0IG9uIHRoZSByZWxldmFudCBub2RlIHRvIG9wZW4gYSBjb250ZXh0IG1lbnUuCjIuIENsaWNrIHRoZSBpdGVtIHlvdSB3YW50IHRvIGFkZCBmcm9tIHRoZSBkcm9wZG93biBsaXN0LgoKIVtBZGQgbmV3IEFQSSBwYXRoIGFuZCB2ZXJiXSguL2ltYWdlcy9BZGQlMjBwYXRocyUyMGFuZCUyMHZlcmJzLmdpZj9yYXc9dHJ1ZSkKCiMjIyBVc2UgSW50ZWxsaVNlbnNlCgpBcyB5b3Ugc3RhcnQgdHlwaW5nIE9wZW5BUEkgZWxlbWVudHMgb3IgdGhlaXIgdmFsdWVzLCB0aGUgY29udGV4dC1zZW5zaXRpdmUgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyBpcyBkaXNwbGF5ZWQgaW4gdGhlIEludGVsbGlTZW5zZSBtZW51LiBJbiBKU09OIE9wZW5BUEkgZmlsZXMsIGp1c3QgdHlwZSBkb3VibGUtcXVvdGUgKGAiYCkgdG8gc2hvdyB0aGUgbWVudSwgYW5kIHR5cGUgZnVydGhlciB0byBmaWx0ZXIgdGhlIGxpc3QuIEluIFlBTUwgT3BlbkFQSSBmaWxlcywgc3RhcnQgdHlwaW5nIHRoZSBwcm9wZXJ0eSBuYW1lLgoKWW91IGNhbiBhbHNvIHVzZSB0aGUgY29ycmVzcG9uZGluZyBWUyBDb2RlIGhvdGtleSAoKipDdHJsK1NwYWNlKiogb24gV2luZG93cywgKipDbWQrU3BhY2UqKiBvbiBNYWMpIHRvIG9wZW4gdGhlIEludGVsbGlTZW5zZSBtZW51LgoKIVtJbnRlbGxpU2Vuc2UgZm9yIE9wZW5BUEkgZWRpdGluZ10oaHR0cHM6Ly9naXRodWIuY29tLzQyQ3J1bmNoL3ZzY29kZS1vcGVuYXBpL2Jsb2IvbWFzdGVyL2ltYWdlcy9JbnRlbGxpc2Vuc2UuZ2lmP3Jhdz10cnVlKQoKIyMjIEp1bXAgdG8gYSByZWZlcmVuY2UKClVzZSBHbyB0byBEZWZpbml0aW9uIHRvIGxvY2F0ZSB0aGUgdGFyZ2V0cyBvZiByZWZlcmVuY2VzIGVhc2lseS4gVG8ganVtcCB0byB2aWV3IHRoZSBkZWZpbml0aW9uIGZyb20gYSByZWZlcmVuY2UgaW4geW91ciBBUEksIGVpdGhlciAqKkN0cmwrY2xpY2sqKiBhIHJlZmVyZW5jZSwgb3IgcmlnaHQtY2xpY2sgYSByZWZlcmVuY2UgYW5kIGNsaWNrICoqR28gdG8gRGVmaW5pdGlvbioqIGluIHRoZSBzaG9ydGN1dCBtZW51LgoKIVtHbyB0byBkZWZpbml0aW9uXSguL2ltYWdlcy9HbyUyMHRvJTIwRGVmaW5pdGlvbi5naWY/cmF3PXRydWUpCgojIyMgU29ydCBlbnRyaWVzIGluIHRoZSBuYXZpZ2F0aW9uIHBhbmUKCkJ5IGRlZmF1bHQsIGVudHJpZXMgaW4gdGhlIE9wZW5BUEkgRXhwbG9yZXIgcGFuZSBhcmUgc29ydGVkIGFscGhhYmV0aWNhbGx5LiBJZiB5b3Ugd2FudCB0byBpbnN0ZWFkIGhhdmUgdGhlbSBzb3J0ZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGluIHRoZSBPcGVuQVBJIGZpbGUsIGNoYW5nZSB0aGUgY29ycmVzcG9uZGluZyBzZXR0aW5nOgoKMS4gT24gdGhlICoqRmlsZSoqIG1lbnUsIGNsaWNrICoqUHJlZmVyZW5jZXMgPiBTZXR0aW5ncyoqLgoyLiBFeHBhbmQgdGhlICoqRXh0ZW5zaW9ucyoqIHNlY3Rpb24gYW5kIGNsaWNrICoqT3BlbkFQSSoqLgozLiBDbGVhciB0aGUgY2hlY2tib3ggKipBbHBoYWJldGljYWxseSBzb3J0IGNvbnRlbnRzIG9mIE9wZW5BUEkgZXhwbG9yZXIgb3V0bGluZXMqKi4KCiFbXSguL2ltYWdlcy9PdXRsaW5lU2V0dGluZ3MucG5nKQoKIyMjIFByZXZpZXcgT3BlbkFQSSBkb2N1bWVudGF0aW9uCgpZb3UgY2FuIGdldCBhIGRvY3VtZW50YXRpb24tc3R5bGUgcHJldmlldyBvZiB0aGUgQVBJIHlvdSBhcmUgZWRpdGluZyBieSBjbGlja2luZyB0aGUgUHJldmlldyBidXR0b24gPGltZyBzcmM9Ii4vaW1hZ2VzL1ByZXZpZXdfYnV0dG9uLnBuZyIgd2lkdGg9MTkgLz4gYXQgdGhlIHRvcCByaWdodDoKCiFbT3BlbkFQSSBQcmV2aWV3IFBhbmVdKC4vaW1hZ2VzL09BU1ByZXZpZXcucG5nKQoKVGhlIGV4dGVuc2lvbiBzdXBwb3J0cyB0d28gcG9wdWxhciBPcGVuQVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yczogW1N3YWdnZXJVSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Rvb2xzL3N3YWdnZXItdWkvKSBhbmQgW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykuCgpUbyBjaGFuZ2UgdGhlIGRlZmF1bHQgT3BlbkFQSSBQcmV2aWV3IHJlbmRlcmluZyBlbmdpbmU6CgoxLiBPbiB0aGUgKipGaWxlKiogbWVudSwgY2xpY2sgKipQcmVmZXJlbmNlcyA+IFNldHRpbmdzKiouCjIuIEV4cGFuZCB0aGUgKipFeHRlbnNpb25zKiogc2VjdGlvbiBhbmQgY2xpY2sgKipPcGVuQVBJKiouCjMuIFBpY2sgdGhlIG9wdGlvbiBvZiB5b3VyIGNob2ljZSBmcm9tIHRoZSAqKkRlZmF1bHQgUHJldmlldyBSZW5kZXJlZCoqIGRyb3Bkb3duIGxpc3QuCgohW09wZW5BUEkgUHJldmlldyBQYW5lXSguL2ltYWdlcy9DaGFuZ2VfT3BlbkFQSV9QcmV2aWV3X2VuZ2luZS5wbmcpCgojIyMgRXhlY3V0ZSBvcGVyYXRpb25zIHdpdGggIlRyeSBpdCIKCldpdGggIlRyeSBpdCIsIHlvdSBjYW4gaW52b2tlIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiB5b3VyIE9wZW5BUEkgZGlyZWN0bHkgZnJvbSBWUyBDb2RlOgoKLSBDbGljayBvbiAiVHJ5IGl0IiBpbiB0aGUgY29kZSBsZW5zIHdoaWNoIGlzIGRpc3BsYXllZCByaWdodCBiZWxvdyB0aGUgSFRUUCB2ZXJiIChlLmcuICJnZXQiLCAicG9zdCIpIG9mIHlvdXIgb3BlcmF0aW9uIGFuZCBpbiB0aGUgZXhhbXBsZXMgc2VjdGlvbi4KLSBUaGUgcGF5bG9hZCBkYXRhIHdpbGwgYmUgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoZSByZXF1ZXN0IEpTT04gU2NoZW1hLCBvciB0aGUgZmlyc3QgZXhhbXBsZSBhdmFpbGFibGUuIFlvdSBjYW4gZWRpdCB0aGlzIGluZm9ybWF0aW9uIGJlZm9yZSBzZW5kaW5nIHRoZSByZXF1ZXN0LgoKIVtUcnlJdCB2aWV3XSguL2ltYWdlcy90cnlpdC5wbmcpCgpUcnkgaXQgY29tZXMgd2l0aCBhIG51bWJlciBvZiBsaW1pdGF0aW9uczoKCi0gU2VuZGluZyBmaWxlcyBpcyBub3Qgc3VwcG9ydGVkCi0gSXQgd29ya3MgYmVzdCB3aXRoIHRleHQtYmFzZWQgcmVzcG9uc2VzLCBzdWNoIGFzIEpTT04KLSBCaW5hcnkvaW1hZ2UgcmVzcG9uc2VzIHdpbGwgYmUgc2hvd24gYXMgdGV4dAoKIyMjIEdlbmVyYXRlIEpTT04gc2NoZW1hcyBiYXNlZCBvbiB0aGUgcmVzcG9uc2UgY29udGVudAoKIlRyeSBpdCIgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgSlNPTiBTY2hlbWEgYmFzZWQgb24gdGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlLgoKLSBTZWxlY3QgIlRvb2xzIiB0YWIgaW4gdGhlIFRyeUl0IHJlc3BvbnNlCi0gQ2xpY2sgIkdlbmVyYXRlIHNjaGVtYSIgYnV0dG9uLgoKIVtUcnlJdCByZXNwb25zZSB0b29sc10oaW1hZ2VzL3RyeWl0LXNjaGVtYS5wbmcpCgojIyMgQ29uZmlndXJlIGF1dGhlbnRpY2F0aW9uIGZvciBleHRlcm5hbCByZWZlcmVuY2VzIGluIE9wZW5BUEkgZmlsZXMKCklmIHlvdSB1c2UgcmVmZXJlbmNlcyB0byBzY2hlbWFzIHNlcnZlZCBieSBhbiBhdXRoZW50aWNhdGVkIEhUVFAgc2VydmljZSAoc3VjaCBhcyBhbiBTY2hlbWEgUmVnaXN0cnkgc2VydmljZSBvciBhIHJlcG9zaXRvcnkpLCB5b3UnbGwgbmVlZCB0byBjb25maWd1cmUgdGhlIGxpc3Qgb2YgYXBwcm92ZWQgaG9zdHMgaW4gdGhlIGV4dGVuc2lvbiBzZXR0aW5ncy4gVG8gZG8gdGhpczoKMS4gT24gdGhlICoqRmlsZSoqIG1lbnUsIGNsaWNrICoqUHJlZmVyZW5jZXMgPiBTZXR0aW5ncyoqLgoyLiBFeHBhbmQgdGhlICoqRXh0ZW5zaW9ucyoqIHNlY3Rpb24gYW5kIGNsaWNrICoqT3BlbkFQSSoqLgozLiBMb2NhdGUgdGhlICoqT3BlbmFwaTogQXBwcm92ZWQgSG9zdG5hbWVzKiogc2V0dGluZywgY2xpY2sgb24gKipBZGQgaXRlbSoqLCBhbmQgd3JpdGUgdGhlIGhvc3RuYW1lIHlvdSBuZWVkIGZvciByZXNvbHZpbmcgZXh0ZXJuYWwgcmVmZXJlbmNlcy4KIVtDb25maWd1cmUgYXBwcm92ZWQgaG9zdHMgYW5kIGF1dGhlbnRpY2F0aW9uXSguL2ltYWdlcy9Db25maWd1cmUlMjBhcHByb3ZlZCUyMGhvc3RzLnBuZykKCkluIGNhc2Ugc29tZSBvZiB0aGUgYXBwcm92ZWQgaG9zdHMgcmVxdWlyZXMgYXV0aGVudGljYXRpb24sIHlvdSBjYW4gY29uZmlndXJlIGl0IGluIHRoZSBPcGVuQVBJID4gRXh0ZXJuYWwgUmVmZXJlbmNlcyBzZWN0aW9uIG9mIHRoZSBgNDJDcnVuY2g6IE9wZW4gU2V0dGluZ3NgIGNvbW1hbmQgdmlldzoKCiFbQ29uZmlndXJlIGFwcHJvdmVkIGhvc3RzIGFuZCBhdXRoZW50aWNhdGlvbl0oLi9pbWFnZXMvQ29uZmlndXJlJTIwYXBwcm92ZWQlMjBob3N0cyUyMGF1dGhlbnRpY2F0aW9uLnBuZykKCjxicj4KCj4gVG8gb3BlbiB0aGlzIHZpZXcsIGdvIHRvIGBWaWV3ID4gQ29tbWFuZCBQYWxldHRlLi4uYCBpbiBWU0NvZGUgbWVudSBhbmQgdHlwZSBpbiBgNDJDcnVuY2hgLCB5b3UnbGwgc2VlIHRoZSBPcGVuIFNldHRpbmdzIGNvbW1hbmQgbGlzdGVkIGJlbG93Ogo+ICFbNDJDcnVuY2g6IE9wZW4gU2V0dGluZ3NdKC4vaW1hZ2VzLzQyQ3J1bmNoJTIwT3BlbiUyMFNldHRpbmdzLnBuZykKPiBZb3UgY2FuIGFsc28gdXNlIGtleWJvYXJkIHNob3J0Y3V0cyBmb3IgdGhlIENvbW1hbmQgUGFsZXR0ZSAqKkN0cmwrU2hpZnQrUCoqLCBvciAqKkNtZCtTaGlmdCtQKiogZm9yIE1hYyB1c2Vycy4KCjxicj4KCkFmdGVyIGNvbmZpZ3VyaW5nIGFsbCBob3N0cyB5b3UgbmVlZCB0byByZWZlciB0bywgYWxsIE9wZW5BUEkgcmVmZXJlbmNlcyB0byBhbnkgb2YgdGhlIGFwcHJvdmVkIGhvc3RzIHdpbGwgYmUgZHluYW1pY2FsbHkgcmVzb2x2ZWQgd2hlbiBsaW50aW5nIG9yIHByZXZpZXdpbmcgeW91ciBBUEkuCgojIyBTdGF0aWMgQVBJIFNlY3VyaXR5IFRlc3RpbmcKCllvdSBjYW4gdXNlIHRoaXMgT3BlbkFQSSBleHRlbnNpb24gdG8gY2hlY2sgdGhlIHF1YWxpdHkgYW5kIHNlY3VyaXR5IG9mIHlvdXIgQVBJIGRlZmluaXRpb24gYXMgeW91IHdvcmsgb24gaXQuIFRoaXMgZmVhdHVyZSBpcyBwb3dlcmVkIGJ5IDQyQ3J1bmNoIFtBdWRpdF0oaHR0cHM6Ly9kb2NzLjQyY3J1bmNoLmNvbS9sYXRlc3QvY29udGVudC9jb25jZXB0cy9hcGlfY29udHJhY3Rfc2VjdXJpdHlfYXVkaXQuaHRtP3V0bV9jYW1wYWlnbj1JREUmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fc291cmNlPXZzY29kZSkuIDQyQ3J1bmNoIEF1ZGl0IHBlcmZvcm1zIGEgc3RhdGljIGFuYWx5c2lzIG9mIHRoZSBBUEkgZGVmaW5pdGlvbiB0aGF0IGluY2x1ZGVzIG1vcmUgdGhhbiAzMDAgY2hlY2tzIG9uIGJlc3QgcHJhY3RpY2VzIGFuZCBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzIHJlbGF0ZWQgdG8gYXV0aGVudGljYXRpb24sIGF1dGhvcml6YXRpb24gYXMgd2VsbCBhcyBkYXRhIGNvbnN0cmFpbnRzLgoKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGVhcm5pbmclMjBNb3JlIS1ncmVlbikgV2F0Y2ggdGhpcyBbdmlkZW9dKGh0dHBzOi8vNDJjcnVuY2guY29tL2ZyZWUtdXNlci1mYXEvI0ZyZWUtQVBJLVNlY3VyaXR5LVRlc3RpbmctRkFRcy0wMCkgdG8gbGVhcm4gbW9yZSBhYm91dCA0MkNydW5jaCBBdWRpdC4KCllvdSBjYW4gcnVuIHRoZSBhdWRpdCBzZXJ2aWNlIGluIGZyZWVtaXVtIG9yIHBsYXRmb3JtIG1vZGU6CgotICoqVXNpbmcgb3VyIGZyZWVtaXVtIGNlbnRyYWxpemVkIHNlcnZpY2UqKjogdGhpcyBzZXJ2aWNlIGlzIGEgZnVsbHkgZmVhdHVyZWQgdmVyc2lvbiBvZiB0aGUgYXVkaXQsIGJ1dCB3aXRoIHVzYWdlIGxpbWl0cy4gSW4gdGhpcyBtb2RlLCBPQVMgZmlsZXMgYXJlIHNlbnQgdG8gdGhlIHNlcnZpY2UsIGF1ZGl0ZWQgYW5kIGEgcmVwb3J0IGlzIHJldHVybmVkLiBUaGlzIGlzIGEgc3RhdGVsZXNzIHNlcnZpY2U6ICoqd2UgZG8gbm90IGtlZXAgdGhlIE9wZW5BUEkgZmlsZSwgbm9yIHRoZSByZXBvcnQuKioKLSBOZXchICoqVXNpbmcgdGhlIDQyQ3J1bmNoIENMSSoqOiBpbiB0aGlzIG1vZGUsIGF1ZGl0cyBhcmUgcGVyZm9ybWVkIGxvY2FsbHkgKG9uIHRoZSB1c2VyJ3MgbWFjaGluZSkuIFRoaXMgaXMgb25seSBhdmFpbGFibGUgdG8gPHU+ZnJlZW1pdW08L3U+IHVzZXJzIGZvciBub3cuIFN1cHBvcnQgZm9yIGxvY2FsIGF1ZGl0L3NjYW5zIHVzaW5nIGEgcGxhdGZvcm0gQVBJIHRva2VuIHdpbGwgYmUgYXZhaWxhYmxlIHNvb24uIEluIHRoaXMgbW9kZSwgKipPcGVuQVBJIGZpbGVzIGFuZCByZXBvcnRzIGFyZSBrZXB0IGxvY2FsbHkqKi4KLSAqKlVzaW5nIDQyQ3J1bmNoIFNhYVMgcGxhdGZvcm0qKjogdGhpcyByZXF1aXJlcyBhbiBhY2NvdW50IG9uIGEgNDJDcnVuY2ggcGxhdGZvcm0sIHdoaWNoIGlzIGF2YWlsYWJsZSB0byBjdXN0b21lcnMgYW5kIHRvIHByb3NwZWN0cyBldmFsdWF0aW5nIG91ciBwcm9kdWN0LiBJbiB0aGlzIGNhc2UsIHlvdSBuZWVkIHRvIHN1cHBseSB5b3VyIHBsYXRmb3JtIFVSTCBhbmQgYW4gSURFIHRva2VuICh3aGljaCBjYW4gYmUgY3JlYXRlZCBmcm9tIHRoZSBwbGF0Zm9ybSBob21lIHBhZ2UpLiBZb3UgY2FuIHNwZWNpZnkgdGhvc2Ugc2V0dGluZ3MgYnkgaW52b2tpbmcgYDQyQ3J1bmNoOiBVcGRhdGUgcGxhdGZvcm0gY3JlZGVudGlhbHNgIGZyb20gdGhlIGNvbW1hbmQgcGFsZXR0ZS4KCiFbSURFLVBsYXRmb3JtSW50ZWdyYXRpb25dKC4vaW1hZ2VzL0lERS1QbGF0Zm9ybUludGVncmF0aW9uLnBuZykKCiMjIyBHZXR0aW5nIGEgRnJlZW1pdW0gVG9rZW4KClRvIHJ1biBTZWN1cml0eSBBdWRpdCBmcm9tIFZTIENvZGUsIHlvdSBuZWVkIGEgdG9rZW4uIFRoZSBmaXJzdCB0aW1lIHlvdSB0cnkgdG8gYXVkaXQgb3Igc2NhbiBhbiBBUEksIHlvdSBhcmUgYXNrZWQgdG8gcHJvdmlkZSB5b3VyIGVtYWlsIGFkZHJlc3Mgb3IgYW4gQVBJIHRva2VuIGZyb20gdGhlIHBsYXRmb3JtLgoKT25jZSB5b3Ugc3VwcGx5IHRoZSBhZGRyZXNzLCB0aGUgZXh0ZW5zaW9uIHJlcXVlc3RzIHRoZSB0b2tlbiB0byBiZSBzZW50IHRvIHlvdXIgbWFpbGJveC4gUGFzdGUgdGhlIHRva2VuIHlvdSByZWNlaXZlZCBpbiB0aGUgcHJvbXB0IGluIFZTIENvZGUsIGFuZCB5b3UgYXJlIGFsbCBzZXQuCgpXYXRjaCB0aGlzIHNob3J0IFt2aWRlb10oaHR0cHM6Ly80MmNydW5jaC5jb20vZnJlZS11c2VyLWZhcS8jRnJlZS1BUEktU2VjdXJpdHktVGVzdGluZy1GQVFzLTAyKSB3aGljaCB0YWtlcyB5b3UgdGhyb3VnaCB0aG9zZSBzdGVwcy4KCiMjIyBSdW5uaW5nIGFuIGF1ZGl0CgpZb3UgY2FuIHVzZSBPcGVuQVBJIGV4dGVuc2lvbiB0byBjaGVjayB0aGUgcXVhbGl0eSBvZiB5b3VyIEFQSSBhcyB5b3Ugd29yayBvbiBpdC4gWW91IGNhbiBydW4gdGhlIGF1ZGl0IGRpcmVjdGx5IGZyb20gVlMgQ29kZSBieSBjbGlja2luZyB0aGUgKio0MkMqKiBidXR0b24gaW4gdGhlIHVwcGVyIHJpZ2h0IGNvcm5lci4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBydW4gYW4gYXVkaXQgZm9yIGFuIGluZGl2aWR1YWwgZW5kcG9pbnQuCgohW10oLi9pbWFnZXMvU3RhcnRBdWRpdC5wbmcpCgojIyMgTmF2aWdhdGluZyB0aGUgaXNzdWVzIGluIHRoZSBhdWRpdCByZXBvcnQKCkFmdGVyIHRoZSBhdWRpdCBmaW5pc2hlcywgeW91IGdldCB0aGUgYXVkaXQgcmVwb3J0IGRpcmVjdGx5IGluIHRoZSBWUyBDb2RlIHZpZXcsIHNpZGUgYnkgc2lkZSB3aXRoIHlvdXIgY29kZS4gVGhlIHJlcG9ydCB2aWV3ZXIgcHJvdmlkZXMgaGFuZHkgd2F5cyB0byBuYXZpZ2F0ZSB0aGUgZm91bmQgaXNzdWVzLCBldmVuIGlmIHRoZSByZXBvcnQgaXMgcXVpdGUgbG9uZy4KCiMjIyMgUHJpb3JpdHkgaXNzdWVzCgpMb29rIGhlcmUgZm9yIGlzc3VlcyB0aGF0IHJlcXVpcmUgdGhlIG1vc3QgYXR0ZW50aW9uLgoKLSAqKk1vc3QgQ29tbW9uIGlzc3VlcyoqOiB0aGlzIGxpc3QgY29udGFpbnMgaXNzdWVzIHRoYXQgYXJlIG9jY3VyaW5nIHRoZSBtb3N0LCBhbmQgaG93IG1hbnkgdGltZXMgdGhleSBhcmUgcmVwZWF0ZWQuCi0gKipPcHBvcnR1bml0aWVzKio6IHRoaXMgbGlzdCBjb250YWlucyBpc3N1ZXMgdGhhdCwgaWYgZml4ZWQsIHdpbGwgbW9zdCBjb250cmlidXRlIHRvIHJhaXNlIHRoZSBhdWRpdCBzY29yZS4KClRob3NlIHR3byBsaXN0cyB3aWxsIG9mdGVuIG92ZXJsYXAgYW5kIGluIGNlcnRhaW4gY2FzZXMgYmUgaWRlbnRpY2FsLCBidXQgdGhpcyBpcyB0b3RhbGx5IG5vcm1hbC4KCiFbQXVkaXRJc3N1ZXNMaXN0XSguL2ltYWdlcy9BdWRpdElzc3Vlc0xpc3QucG5nKQoKIyMjIyBGdWxsIGlzc3VlIGxpc3QKClRoZSBmdWxsIGlzc3VlIGxpc3QgY29udGFpbnMgYWxsIGlzc3VlcyBmb3VuZC4gVGhlIGxpc3QgY2FuIGJlIGZpbHRlcmVkIGluIHR3byB3YXlzOgoKLSAqKlVzaW5nIHRoZSBzZWN1cml0eSBnYXRlIChTUUcpIHRvZ2dsZSoqOiBhbiBTUUcgZW5mb3JjZXMgZW50ZXJwcmlzZSBjb21wbGlhbmNlIGFuZCBoaWdodGxpZ2h0cyBpc3N1ZXMgdGhhdCBhcmUgb2ZmZW5kaW5nIHRoZSByZXF1aXJlbWVudHMgZXN0YWJsaXNoZWQsIHN1Y2ggYXMgYSBtaW5pbWFsIHNjb3JlLCBpc3N1ZXMgc2V2ZXJpdHkgb3Igc3BlY2lmaWMgaXNzdWVzIChlLmcuIGFuIEFQSSBrZXkgaXMgdXNlZCB3aGVuIG9ubHkgT0F1dGggaXMgYWxsb3dlZCBhY3Jvc3MgdGhlIGVudGVycHJpc2UpLiBXaGVuIHRoZSB0b2dnbGUgaXMgb24sIG9ubHkgdGhlIGlzc3VlcyBhZmZlY3RpbmcgdGhlIFNRRyBzdGF0dXMgYXJlIHNob3duLgoKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTm90ZSUyMC1ibHVlKSBTUUcgcmVzdWx0cyBhcmUgbm90IHZpc2libGUgeWV0IHRvIGFsbCBGcmVlbWl1bSB1c2Vycy4KCiFbQXVkaXRJc3N1ZXNMaXN0LUZ1bGxdKC4vaW1hZ2VzL0F1ZGl0SXNzdWVzTGlzdC1GdWxsLnBuZykKCi0gKipVc2luZyB0aGUgZmlsdGVyaW5nIG9wdGlvbnMqKjogeW91IGNhbiBhbHNvIHVzZSBmaWx0ZXJpbmcgb3B0aW9ucyB0byBkcmlsbC1kb3duIGludG8gdGhlIGxpc3Qgc3VjaCBhcyBzZXZlcml0eSwgY2F0ZWdvcnkgb3IgZXZlbiBhIHNwZWNpZmljIGlzc3VlIHR5cGUuCgojIyMjIElzc3VlcyBkZXRhaWxzCgpGb3IgZWFjaCBpc3N1ZSwgeW91IGhhdmUgYWNjZXNzIHRvIGZ1bGwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGlzc3VlLCB3aHkgaXQgaXMgcmVsZXZhbnQgYW5kIHJlY29tbWVuZGF0aW9ucyBvbiBob3cgdG8gYWRkcmVzcyB0aGUgaXNzdWUuCgohW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MZWFybmluZyUyME1vcmUhLWdyZWVuKSBXYXRjaCB0aGlzIFt2aWRlb10oaHR0cHM6Ly80MmNydW5jaC5jb20vZnJlZS11c2VyLWZhcS8jRnJlZS1BUEktU2VjdXJpdHktVGVzdGluZy1GQVFzLTIpIHRvIGxlYXJuIG1vcmUgYWJvdXQgYXVkaXQgYW5kIGhvdyB0byBuYXZpZ2F0ZSBpc3N1ZXMuCgojIyMgRml4aW5nIGlzc3VlcwoKTWFueSBvZiB0aGUgaXNzdWVzIHJlcG9ydGVkIGJ5IDQyQ3J1bmNoIEF1ZGl0IGhhdmUgZml4ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZW0uIFRoZXNlIGFyZSBjb2RlIHNuaXBwZXRzIHRoYXQgeW91IGNhbiBpbnNlcnQgaW50byB0aGUgT3BlbkFQSSBmaWxlIGFuZCB0aGVuIGN1c3RvbWl6ZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZS4KCjEuIENpY2sgc29tZSBvZiB0aGUgZXJyb3IgbGluZXMgaW4geW91ciBPcGVuQVBJIGZpbGUgdG8gYnJpbmcgdXAgdGhlIFF1aWNrRml4IGJsdWUgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgbGluZS4KMi4gQ2xpY2sgdGhlIFF1aWNrZml4IGljb24gYW5kIHNlbGVjdCB0aGUgZml4IHRvIGFwcGx5LgozLiBUd2VhayB0aGUgdmFsdWVzIGluIHRoZSBpbnNlcnRlZCBjb2RlIHNuaXBwZXQgYXMgeW91IHNlZSBmaXQuCgohW1F1aWNrIEZpeGVzIGluIFZTQ29kZV0oLi9pbWFnZXMvUXVpY2tfRml4ZXNfaW5fVlNDb2RlLmdpZikKCiMjIChOZXchKSBEeW5hbWljIEFQSSBTZWN1cml0eSB0ZXN0aW5nCgo0MkNydW5jaCBBdWRpdCBwZXJmb3JtcyBhIHNlY3VyaXR5IGFuYWx5c2lzIHRoYXQgZG9lcyBub3QgcmVxdWlyZSBhbnkgbGl2ZSBBUEksIGp1c3QgdGhlIGRlZmluaXRpb24gaXRzZWxmLiA0MkNydW5jaCBTY2FuIGxldmVyYWdlcyB0aGUgT3BlbkFQSSBkZWZpbml0aW9uIHRvOgoKLSBUZXN0IHRoZSByZXNpbGllbmNlIGFuZCBiZWhhdmlvciBvZiBBUElzIGJ5IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyBzZWN1cml0eSB0ZXN0cyBmcm9tIHRoZSBBUElzJyBPcGVuQVBJIGRlZmluaXRpb24uIFNjYW4gcmVwcm9kdWNlcyB0aGUgdHlwaWNhbCBiZWhhdmlvciBvZiBhIGhhY2tlciBieSBpbmplY3RpbmcgYmFkIHBheWxvYWRzLCBiYWQgdG9rZW5zLCBhbmQgdXNpbmcgaW52YWxpZCBIVFRQIHZlcmJzIGFuZCBwYXRocy4gVGhpcyBoZWxwcyBkZXRlY3QgdnVsbmVyYWJpbGl0aWVzIGVhcmx5IGluIHRoZSBBUEkgbGlmZSBjeWNsZSwgZXNwZWNpYWxseSB0aG9zZSBhc3NvY2lhdGVkIHdpdGggdGhlIFtPV0FTUCBBUEkgU2VjdXJpdHkgVG9wIDEwXShodHRwczovL2FwaXNlY3VyaXR5LmlvL293YXNwLWFwaS1zZWN1cml0eS10b3AtMTAvb3dhc3AtYXBpLXNlY3VyaXR5LXRvcC0xMC1wcm9qZWN0LykuCi0gVmFsaWRhdGUgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEFQSSBjb25mb3JtcyB0byBpdHMgZXN0YWJsaXNoZWQgY29udHJhY3Q6IFNjYW4gY2hlY2tzIGFsbCByZXNwb25zZXMgYWdhaW5zdCB0aGUgT3BlbkFQSSBkZWZpbml0aW9uIGFuZCBkZXRlY3RzIHVuZXhwZWN0ZWQgcmVzcG9uc2VzIGFuZCBkYXRhIGxlYWtzLgoKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGVhcm5pbmclMjBNb3JlIS1CbHVlKSBXYXRjaCB0aGlzIFt2aWRlb10oaHR0cHM6Ly80MmNydW5jaC5jb20vZnJlZS11c2VyLWZhcS8/dXRtX2NhbXBhaWduPUlERSZ1dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9zb3VyY2U9dnNjb2RlI0ZyZWUtQVBJLVNlY3VyaXR5LVRlc3RpbmctRkFRcy00KSB0byBsZWFybiBtb3JlIGFib3V0IDQyQ3J1bmNoIFNjYW4uCgpBUElzIHdoaWNoIHRob3JvdWdobHkgZW5mb3JjZSBjb21wbGlhbmNlIHRvIGFuIGVzdGFibGlzaGVkIGNvbnRyYWN0IGFyZSBmYXIgbW9yZSByZXNpbGllbnQgdG8gYWxsIHR5cGVzIG9mIGF0dGFja3MuCgohW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9JbXBvcnRhbnQtcmVkKSBZb3UgbXVzdCBvbmx5IHVzZSA0MkNydW5jaCBTY2FuIGFnYWluc3QgQVBJcyB0aGF0IHlvdSBvd24sIG5vdCB0aG9zZSBvZiB0aGlyZCBwYXJ0aWVzLgoKIyMjIExhdW5jaGluZyA0MkNydW5jaCBTY2FuCgpTY2FucyBhcmUgcnVuIGF0IHRoZSBvcGVyYXRpb24gbGV2ZWwgb25seS4gV2UgcmVjb21tZW5kIHlvdSB1c2UgdGhlIDQyQ3J1bmNoIEFQSSBTZWN1cml0eSBUZXN0aW5nIEJpbmFyeSB0byBydW4gc2NhbnMuIFRoZSBhbHRlcm5hdGl2ZSBpcyB0byBydW4gYSBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gNDJDcnVuY2ggY3VzdG9tZXJzIGNhbiBhbHNvIGxldmVyYWdlIG91ciBbc2NhbmQgbWFuYWdlcl0oaHR0cHM6Ly9naXRodWIuY29tLzQyQ3J1bmNoL3NjYW5kLW1hbmFnZXIpLCBieSBkZXBsb3lpbmcgYW4gQVBJLWRyaXZlbiBzY2FuIGVuZ2luZSBvbiBLdWJlcm5ldGVzLgoKSW4gb3JkZXIgdG8gcnVuIGEgc2NhbiwgeW91IHdpbGwgbmVlZCA6CgotICoqQSBjcmVkZW50aWFsKiogOiBtb3N0IGxpa2VseSwgeW91ciBBUEkgaXMgdXNpbmcgc29tZSBmb3JtIG9mIGF1dGhlbnRpY2F0aW9uLCBsaWtlIGFuIEFQSSBLZXkgb3IgdG9rZW4uIFlvdSBuZWVkIGEgdmFsaWQgY3JlZGVudGlhbCB0byBwcm92aWRlIHRvIHRoZSBzY2FuIGVuZ2luZS4KCi0gKipUaGUgVVJMKiogd2hlbiB0aGUgQVBJIGlzIGRlcGxveWVkLgoKICAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9XYXJuaW5nLW9yYW5nZSkgV2Ugc3Ryb25nbHkgcmVjb21tZW5kIHRoYXQgeW91IGRvIDx1Pm5vdDwvdT4gdGFyZ2V0IGEgcHJvZHVjdGlvbiBzeXN0ZW0uIFdoaWxlIHRoZSB0b29sIGRvZXMgbm90IHRyeSB0byBpbmplY3QgbWFsaWNpb3VzIHBheWxvYWRzLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBBUEkgaW1wbGVtZW50YXRpb24gaXMgbm90IHJlc2lsaWVudCBlbm91Z2ggdG8gaGFuZGxlIHRoZSB0ZXN0cyBhbmQgbWF5IGNyYXNoIG9yIGJlaGF2ZSB1bmV4cGVjdGVkbHkuCgpXaGVuIHlvdSBmaXJzdCBsYXVuY2ggYSBzY2FuLCB5b3UgYXJlIHByZXNlbnRlZCB3aXRoIHRoZSBzY2FuIGNvbmZpZ3VyYXRpb24gdmlld2VyLiBUaGUgc2NhbiBjb25maWd1cmF0aW9uIGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIE9wZW5BUEkgZmlsZSB5b3UgY2hvc2UgdG8gc2Nhbi4KCi0gRm9yIGVhY2ggb3BlcmF0aW9uIGluIHRoZSBPcGVuQVBJIGZpbGUsIGEgcmVxdWVzdCBpcyBjcmVhdGVkLiBZb3UgY2FuIHRlc3QgaW5kaXZpZHVhbCByZXF1ZXN0cyB1c2luZyB0aGUgKipUcnkqKiBidXR0b24gdG9wLXJpZ2h0LgoKICAhW10oLi9pbWFnZXMvU2NhbnRyeUl0LnBuZykKCi0gUmVxdWVzdHMgY2FuIGJlIGFycmFuZ2VkIGludG8gdGVzdGluZyBzY2VuYXJpb3M6IGEgc2NlbmFyaW8gY29tYmluZXMgb25lIG9yIG11bHRpcGxlIHJlcXVlc3RzLCBmb3IgZXhhbXBsZSB5b3UgbmVlZCB0byBjcmVhdGUgYSByZXNvdXJjZSBiZWZvcmUgeW91IGNhbiB2aWV3IGl0LiBUaGUgZWRpdG9yIGFsbG93cyB5b3UgdG8gZXh0cmFjdCBkYXRhIGFzIHZhcmlhYmxlcyBmcm9tIGEgcmVxdWVzdCBleGVjdXRpb24gdG8gaW5qZWN0IGl0IGludG8gdGhlIG5leHQgc3RlcC4KCiAgU2ltaWxhcmx5IHRvIHJlcXVlc3RzLCB5b3UgY2FuIHRlc3QgYW4gaW5kaXZpZHVhbCBzY2VuYXJpbyB0byBlbnN1cmUgaXQgaXMgYnVpbHQgY29ycmVjdGx5IGJlZm9yZSBzdGFydGluZyBhIHNjYW46IHRoZSBzY2FuIGVuZ2luZSB3aWxsIGV4ZWN1dGUgdGhlIHNjZW5hcmlvIGFuZCBpZiBzdWNjZXNzZnVsLCBsYXVuY2ggYXV0b21hdGljYWxseSBkb3plbnMgb2YgdGVzdHMgdXNpbmcgdGhlIGRhdGEgcHJvdmlkZWQgaW4gdGhlIE9wZW5BUEkgZmlsZS4gVGhlIHNjYW4gd2lsbCBzZW5kIGJhZCB2ZXJicywgYmFkIGRhdGEgdHlwZXMsIGJhZCBkYXRhIGZvcm1hdHMgYXMgd2VsbCBhcyBhdXRoZW50aWNhdGlvbiB0ZXN0cy4KCiAgIVtdKC9Wb2x1bWVzL01ZREFUQS9Qcm9kdWN0L3ZzY29kZS1vcGVuYXBpL2ltYWdlcy9TY2FuU2NlbmFyaW9zLnBuZykKCk9uY2UgdGhlIHNjYW4gaGFzIHJ1biwgeW91IGFyZSBwcmVzZW50ZWQgd2l0aCBhIHJlc3VsdHMgcGFnZS4gVGhlIHN1bW1hcnkgc2hvd3MgaWYgdGhlIHNjYW4gZ290IGEgdGVzdGluZyBiYXNlbGluZSBieSBydW5uaW5nIHRoZSBIYXBweVBhdGggdGVzdC4gQWRkaXRpb25hbCB0ZXN0aW5nIHJlc3VsdHMgYXJlIHZpc2libGUgZnJvbSB0aGUgdGVzdHMgbGlzdC4gRm9yIGVhY2ggaXNzdWUsIHlvdSBjYW4gZWFzaWx5IHJlcHJvZHVjZSB0aGUgcHJvYmxlbSB1c2luZyBhIGN1cmwgcmVxdWVzdC4KCiFbXSguL2ltYWdlcy9TY2FuUmVwb3J0LmdpZikKCiMjIE1pc2NlbGxhbmVvdXMgY29tbWFuZHMKCi0gWW91IGNhbiBsb2FkIHJlc3VsdHMgb2YgU2VjdXJpdHkgQXVkaXQgZnJvbSBhIGZpbGUgZm9yIGEgY3VycmVudGx5IG9wZW4gT3BlbkFQSSBmaWxlIGJ5IHJ1bm5pbmcgY29tbWFuZCBgNDJDcnVuY2g6IExvYWQgU2VjdXJpdHkgQXVkaXQgcmVwb3J0IGZyb20gZmlsZWAgZnJvbSB0aGUgY29tbWFuZCBwYWxldHRlCgojIyBOZXR3b3JrIHJlcXVpcmVtZW50cwoKVG8gZXhlY3V0ZSB0aGUgNDJDcnVuY2ggRnJlZW1pdW0gc2VydmljZXMsIHlvdSBuZWVkIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIFVSTDogaHR0cHM6Ly9zdGF0ZWxlc3MuNDJjcnVuY2guY29tLiBZb3UgbWF5IG5lZWQgdG8gYXNrIHlvdXIgYWRtaW5pc3RyYXRvcnMgdG8gYWRkIGEgZmlyZXdhbGwgcnVsZSB0byBhbGxvdyB0aGUgY29ubmVjdGlvbi4KCiMjIEtub3duIGlzc3VlcwoKLSBGb3IgbmV3IGZpbGVzLCBJbnRlbGxpU2Vuc2UgZG9lcyBub3Qgd29yayB1bnRpbCB5b3Ugc2F2ZSB0aGUgZmlsZS4gRmlsZSBleHRlbnNpb24gbXVzdCBiZSBgLmpzb25gIG9yIGAueWFtbGAuCi0gV2hlbiBydW5uaW5nIDQyQ3J1bmNoIFNjYW4gb24gYSBob3N0IHdpdGggaW5jb3JyZWN0IGNsb2NrLCB0aGUgc2NhbiBjYW4gZmFpbCB3aXRoIHRoZSBtZXNzYWdlIGBjYW5ub3Qgc2VuZCB0aGUgc2NhbiByZXBvcnQgOiBycGMgZXJyb3I6IGNvZGUgPSBJbnZhbGlkQXJndW1lbnQgZGVzYyA9IGludmFsaWQgaW5wdXRgLCB0byByZXNvbHZlIHRoZSBpc3N1ZSBtYWtlIHN1cmUgeW91ciBjbG9jayBpcyBjb3JyZWN0bHkgc2V0LgoKIyMgRmVlZGJhY2sKClN1Ym1pdCB5b3VyIGJ1ZyByZXBvcnRzIGF0IFtHaXRIdWIgcHJvamVjdCBJc3N1ZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS80MkNydW5jaC92c2NvZGUtb3BlbmFwaS9pc3N1ZXMpLgoKQW5kLCBuZWVkbGVzcyB0byBzYXksIHlvdXIgcmV2aWV3cyBhdCBbVlMgQ29kZSBtYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPTQyQ3J1bmNoLnZzY29kZS1vcGVuYXBpJnNzcj1mYWxzZSNyZXZpZXctZGV0YWlscykgbWVhbiB0aGUgd29ybGQgdG8gdXMhCg== readmeEtag: '"2006eb6dc546722c90f7e095fb3887521ef13285"' readmeLastModified: Fri, 16 Aug 2024 14:17:05 GMT repositoryId: 190430086 description: VisualStudio Code OpenAPI tools created: '2019-06-05T16:27:53Z' updated: '2024-08-29T21:51:00Z' language: TypeScript archived: false stars: 326 watchers: 11 forks: 41 owner: 42Crunch logo: https://avatars.githubusercontent.com/u/25365245?v=4 license: AGPL-3.0 repoEtag: '"d7cc35e5981a90211f65990c931dc725caa3fa5076533c3493e31dd177a3bbba"' repoLastModified: Thu, 29 Aug 2024 21:51:00 GMT foundInMaster: true id: 782ecbb10f1ff8ac9685e0ed24e52e58 v3_1: false - source: - https://openapi.tools/ - openapi3 tags name: KaiZen-OpenAPI-Editor homepage: https://github.com/RepreZen/KaiZen-OpenAPI-Editor language: Java source_description: > Full-featured Eclipse editor for OpenAPI, also available on Eclipse Marketplace. category: - Text Editors - Parsers license: EPL repository: https://github.com/reprezen/kaizen-openapi-editor v2: true v3: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vY2RuMi5odWJzcG90Lm5ldC9odWJmcy81OTc2MTEvQXNzZXRzX1N3YWdnZXIvS1pPRS5wbmciIGFsdD0iS2FpWmVuIE9wZW5BUEkgRWRpdG9yIExvZ28iIGhlaWdodD0iNTAlIiB3aWR0aD0iNTAlIi8+CgojIEthaVplbiBPcGVuQVBJIEVkaXRvciBmb3IgRWNsaXBzZQoKX0thaVplbiBPcGVuQVBJIEVkaXRvcl8gaXMgYW4gRWNsaXBzZSBlZGl0b3IgZm9yIHRoZSBbaW5kdXN0cnkgc3RhbmRhcmQgQVBJIGRlc2NyaXB0aW9uIGxhbmd1YWdlXShodHRwOi8vb3BlbmFwaXMub3JnKSwgZm9ybWVybHkga25vd24gYXMgW1N3YWdnZXJdKGh0dHA6Ly9zd2FnZ2VyLmlvKS4gSXQgbm93IHN1cHBvcnRzIGJvdGggW1N3YWdnZXItT3BlbkFQSSB2ZXJzaW9uIDIuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kKSBhbmQgW09wZW5BUEkgdmVyc2lvbiAzLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKS4gIAoKS2FpWmVuIEVkaXRvciBpcyBhIGNvcmUgY29tcG9uZW50IG9mIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwOi8vcmVwcmV6ZW4uY29tL3N3YWdnZXItdG9vbHMpLCBhIGNvbXByZWhlbnNpdmUgc29sdXRpb24gZm9yIEFQSSBtb2RlbGluZywgZG9jdW1lbnRhdGlvbiwgdmlzdWFsaXphdGlvbiwgdGVzdGluZyBhbmQgY29kZSBnZW5lcmF0aW9uLCBidWlsdCBvbiBFY2xpcHNlLgoKV2Ugd2VsY29tZSB5b3VyIHN1Z2dlc3Rpb25zIGFuZCBjb250cmlidXRpb25zIQoKIyMgRWNsaXBzZSBJbnN0YWxsZXIKCkthaVplbiBPcGVuQVBJIEVkaXRvciBpcyBhdmFpbGFibGUgb24gW0VjbGlwc2UgTWFya2V0cGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvY29udGVudC9rYWl6ZW4tb3BlbmFwaS1lZGl0b3IpLiBEcmFnLWFuZC1kcm9wIHRoaXMgYnV0dG9uIGludG8gRWNsaXBzZSBPeHlnZW4gb3IgbGF0ZXIgdG8gaW5zdGFsbCwgb3IgW3NlZSBiZWxvd10oI2luc3RhbGxpbmcta2FpemVuLW9wZW5hcGktZWRpdG9yKSBmb3Igb3RoZXIgb3B0aW9uczoKClshW0RyYWcgdG8geW91ciBydW5uaW5nIEVjbGlwc2Ugd29ya3NwYWNlLl0oLi9ldGMvaW1nL2J0bi1pbnN0YWxsLnBuZyldKGh0dHA6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy9tYXJrZXRwbGFjZS1jbGllbnQtaW50cm8/bXBjX2luc3RhbGw9MzQyOTAyOCAiRHJhZyB0byB5b3VyIHJ1bm5pbmcgRWNsaXBzZSB3b3Jrc3BhY2UuIikKCiMjIE5FVyEgT3BlbkFQSSAzLjAgRWRpdGluZwoKS2FpWmVuIE9wZW5BUEkgRWRpdG9yIG5vdyBmZWF0dXJlcyBmdWxsIHN1cHBvcnQgZm9yIHRoZSBbT3BlbkFQSSB2ZXJzaW9uIDMuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpIHNwZWNpZmljYXRpb24uIFtTZWUgaGVyZSBmb3IgZnVydGhlciBkZXRhaWxzLl0oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL0thaVplbi1PcGVuQVBJLUVkaXRvci9ibG9iL21hc3Rlci9PUEVOX0FQSV9WM19TVVBQT1JULm1kKQogCiMjIEZlYXR1cmUgSGlnaGxpZ2h0cwoKPGltZyBzcmM9Ii9ldGMvaW1nL0NvbnRlbnRBc3Npc3RRdWlja091dGxpbmUucG5nIiBhbHQ9IkRyYXdpbmciIHdpZHRoPSI0MDAiIC8+CgojIyMgVmFsaWRhdGlvbgo8aW1nIHNyYz0iaHR0cDovL2kuaW1ndXIuY29tL0dyRnc5RU0ucG5nIiBhbHQ9IlZhbGlkYXRpb25fc2NyZWVuc2hvdCIgd2lkdGg9IjQwMCI+CgojIyMgQ29kZSBBc3Npc3QKQ29kZSB0ZW1wbGF0ZXM6ICAKPGltZyBzcmM9Imh0dHA6Ly9pLmltZ3VyLmNvbS9adEhKWDZBLmdpZiIgYWx0PSJDb2RlX3RlbXBsYXRlIiB3aWR0aD0iNDAwIj4KCktleXdvcmRzIGFuZCB2YWx1ZXM6ICAKPGltZyBzcmM9Imh0dHA6Ly9pLmltZ3VyLmNvbS8zdVo1YlFhLmdpZiIgYWx0PSJDb2RlQXNzaXN0X2tleXNfYW5kX3ZhbHVlcyIgd2lkdGg9IjQwMCI+CgojIyMgQ29kZSBBc3Npc3QgZm9yIFJlZmVyZW5jZXMKQ29kZSBhc3Npc3QgZm9yIHJlZmVyZW5jZXMgaGFzIHNldmVyYWwgc2NvcGVzIHdoaWNoIGNhbiBiZSB2aWV3ZWQgaW4gc2VxdWVuY2UgYnkgcHJlc3NpbmcgYEN0cmxgK2BTcGFjZWAgcmVwZWF0ZWRseToKCiogVGhlIGZpcnN0IHNjb3BlIHNob3dzIG9ubHkgZWxlbWVudHMgZnJvbSB0aGUgY3VycmVudCBkb2N1bWVudC4KKiBUaGUgc2Vjb25kIGV4cGFuZHMgaXQgdG8gZWxlbWVudHMgZnJvbSB0aGUgY29udGFpbmluZyBwcm9qZWN0LgoqIFRoZSB0aGlyZCBzaG93cyBlbGVtZW50cyBmcm9tIHRoZSBlbnRpcmUgd29ya3NwYWNlLgoKPGltZyBzcmM9Imh0dHA6Ly9pLmltZ3VyLmNvbS9QMElXSUV0LmdpZiIgYWx0PSJDb2RlQXNzaXN0X2Zvcl9yZWZlcmVuY2VzIiB3aWR0aD0iNDAwIj4KClByZXNzaW5nIHRoZSBob3RrZXkgYSBmb3VydGggdGltZSBzdGFydHMgdGhlIGN5Y2xlIG92ZXIgYWdhaW4sIHdpdGggZG9jdW1lbnQgc2NvcGUuCgojIyMgTmF2aWdhdGlvbiB0byBhIFJlZmVyZW5jZQpZb3UgY2FuIG5hdmlnYXRlIHRvIGEgcmVmZXJlbmNlIHVzaW5nIGBDdHJsYCtgQ2xpY2tgOiAgCjxpbWcgc3JjPSJodHRwOi8vaS5pbWd1ci5jb20vN1dwdVYzSy5naWYiIGFsdD0iTmF2aWdhdGlvbl90b19yZWZlcmVuY2VzIiB3aWR0aD0iNDAwIj4KCiMjIyBRdWljayBPdXRsaW5lClF1aWNrIE91dGxpbmUgY2FuIGJlIGludm9rZWQgd2l0aCBgQ3RybGArYG9gLiBTaW1pbGFyIHRvIGNvZGUgYXNzaXN0IGZvciByZWZlcmVuY2VzLCBpdCBoYXMgdGhyZWUgc2NvcGVzOiBtb2RlbCwgcHJvamVjdCwgYW5kIHdvcmtzcGFjZS4gSXQgYWxzbyBhbGxvd3MgZmlsdGVyaW5nOiAgICAKPGltZyBzcmM9Imh0dHA6Ly9pLmltZ3VyLmNvbS9qdmNvb29hLmdpZiIgYWx0PSJOYXZpZ2F0aW9uX3RvX3JlZmVyZW5jZXMiIHdpZHRoPSI0MDAiPgoKIyMjIE91dGxpbmUKT3V0bGluZSBWaWV3IHNob3dzIHRoZSBjb250ZW50cyBvZiB0aGUgYWN0aXZlIE9wZW5BUEkgc3BlYzogIAo8aW1nIHNyYz0iaHR0cDovL2kuaW1ndXIuY29tL2l2NDlDTG4ucG5nIiBhbHQ9Ik5hdmlnYXRpb25fdG9fcmVmZXJlbmNlcyIgd2lkdGg9IjQwMCI+CgojIyBJbnN0YWxsaW5nIEthaVplbiBPcGVuQVBJIEVkaXRvcgpLYWlaZW4gT3BlbkFQSSBFZGl0b3IgcmVxdWlyZXMgSmF2YSA4ICg2NC1iaXQpIGFuZCBFY2xpcHNlIE94eWdlbiBvciBsYXRlci4KCiMjIyBJbnN0YWxsaW5nIGZyb20gRWNsaXBzZSBNYXJrZXRwbGFjZQpUaGUgW0VjbGlwc2UgTWFya2V0cGxhY2Ugc29sdXRpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvY29udGVudC9rYWl6ZW4tb3BlbmFwaS1lZGl0b3IpIGlzIHRoZSBlYXNpZXN0IHdheSB0byBpbnN0YWxsIEthaVplbiBFZGl0b3IgaW50byBhbiBFY2xpcHNlIElERS4gWW91IGNhbiBkcmFnLWFuZC1kcm9wIHRoZSBJbnN0YWxsIGJ1dHRvbiBmcm9tIHRoZSBicm93c2VyIGludG8geW91ciBFY2xpcHNlIElERSwgb3IgdXNlIHRoZSBidWlsdC1pbiBFY2xpcHNlIE1hcmtldHBsYWNlIENsaWVudC4KClshW0RyYWcgdG8geW91ciBydW5uaW5nIEVjbGlwc2Ugd29ya3NwYWNlLl0oLi9ldGMvaW1nL2J0bi1pbnN0YWxsLnBuZyldKGh0dHA6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy9tYXJrZXRwbGFjZS1jbGllbnQtaW50cm8/bXBjX2luc3RhbGw9MzQyOTAyOCAiRHJhZyB0byB5b3VyIHJ1bm5pbmcgRWNsaXBzZSB3b3Jrc3BhY2UuIikKCiMjIyBJbnN0YWxsaW5nIGZyb20gdGhlIFVwZGF0ZSBTaXRlIApZb3UgY2FuIGluc3RhbGwgS2FpWmVuIE9wZW5BUEkgRWRpdG9yIGludG8geW91ciBFY2xpcHNlIElERSBieSBjbGlja2luZyBgSGVscCA+IEluc3RhbGwgTmV3IFNvZnR3YXJlLi4uID4gQWRkLi4uYApUaGlzIHdpbGwgc2hvdyBhIGRpYWxvZyBib3ggd2hlcmUgeW91IGNhbiBzZWxlY3QgdGhlIGxvY2F0aW9uIG9mIHRoZSB1cGRhdGUgc2l0ZS4KVXNlIHRoZSB1cGRhdGUgc2l0ZSBodHRwOi8vcHJvZHVjdHMucmVwcmV6ZW4uY29tL3N3YWdlZGl0L2xhdGVzdC8gYXMgdGhlIFVSTC4KCiMjIyBJbnN0YWxsaW5nIFJlcHJlWmVuIEFQSSBTdHVkaW8KS2FpWmVuIEVkaXRvciBpcyBpbmNsdWRlZCBhcyBhIGNvcmUgY29tcG9uZW50IG9mIFJlcHJlWmVuIEFQSSBTdHVkaW8sIHdoaWNoIGFkZHMgbGl2ZSBkb2N1bWVudGF0aW9uIGFuZCBkaWFncmFtIHZpZXdzLCBzYW5kYm94IHRlc3Rpbmcgd2l0aCB0aGUgYnVpbHQtaW4gbW9jayBzZXJ2aWNlIGFuZCBTd2FnZ2VyLVVJLCBwb3dlcmZ1bCBjb2RlIGdlbmVyYXRpb24sIGFuZCBvdGhlciBmZWF0dXJlcy4KClJlcHJlWmVuIEFQSSBTdHVkaW8gaXMgYXZhaWxhYmxlIHRocm91Z2ggdHdvIGRpZmZlcmVudCBpbnN0YWxsYXRpb24gb3B0aW9uczogIAoqIFtBUEkgU3R1ZGlvIERlc2t0b3BdKGh0dHA6Ly93d3cucmVwcmV6ZW4uY29tL09wZW5BUEkpIGluc3RhbGxzIGFzIGEgc3RhbmRhbG9uZSBkZXNrdG9wIGFwcGxpY2F0aW9uIG9uIFdpbmRvd3MsIE1hY09TIG9yIExpbnV4LgoqIFtBUEkgU3R1ZGlvIGZvciBFY2xpcHNlXShodHRwczovL21hcmtldHBsYWNlLmVjbGlwc2Uub3JnL2NvbnRlbnQvcmVwcmV6ZW4tYXBpLXN0dWRpbykgaW5zdGFsbHMgaW50byBhbiBFY2xpcHNlIElERSBkaXN0cmlidXRpb24sIGFsbG93aW5nIHlvdSB0byB1c2UgUmVwcmVaZW4ncyBBUEkgZGVzaWduLCBkb2N1bWVudGF0aW9uIGFuZCBkZXZlbG9wbWVudCBmZWF0dXJlcyBpbiB5b3VyIHByaW1hcnkgRWNsaXBzZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC48YnIvPgpbIVtEcmFnIHRvIHlvdXIgcnVubmluZyBFY2xpcHNlIHdvcmtzcGFjZS5dKC4vZXRjL2ltZy9idG4taW5zdGFsbC5wbmcpXShodHRwOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvbWFya2V0cGxhY2UtY2xpZW50LWludHJvP21wY19pbnN0YWxsPTMxMzg3MTggIkRyYWcgdG8geW91ciBydW5uaW5nIEVjbGlwc2Ugd29ya3NwYWNlLiIpCgojIyBUcm91Ymxlc2hvb3RpbmcKU2VlIHRoZSBbVHJvdWJsZXNob290aW5nIEd1aWRlXShodHRwczovL2dpdGh1Yi5jb20vUmVwcmVaZW4vU3dhZ0VkaXQvYmxvYi9tYXN0ZXIvVFJPVUJMRVNIT09USU5HLm1kKSBmb3Igc29sdXRpb25zIHRvIGNvbW1vbiBwcm9ibGVtcy4KCiMjIENvbnRyaWJ1dGluZyB0byBLYWlaZW4gT3BlbkFQSSBFZGl0b3IKV2Ugd2VsY29tZSBjb250cmlidXRpb25zIC0gZG9jdW1lbnRhdGlvbiwgYnVnIHJlcG9ydHMgb3IgYnVnIGZpeGVzLgpJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHRvIEthaVplbiBFZGl0b3IsIHBsZWFzZSBzZWUgdGhlIFtEZXZlbG9wZXIncyBHdWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL1N3YWdFZGl0L2Jsb2IvbWFzdGVyL0RFVkVMT1BFUlNfR1VJREUubWQpLiAKCldlIGFsc28gY3JlYXRlZCBhIGxpc3Qgb2YgW2dvb2QgZmlyc3QgYnVnc10oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL1N3YWdFZGl0L2xhYmVscy9Hb29kJTIwRmlyc3QlMjBCdWcpCnRoYXQgYXJlIHJlbGF0aXZlbHkgZWFzeSB0byBmaXguCgojIyBMaWNlbnNlCkthaVplbiBPcGVuQVBJIEVkaXRvciBpcyBwcm92aWRlZCB1bmRlciB0aGUgW0VjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMF0oaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sKQoKIyMgVmlkZW86IEthaVplbiBFZGl0b3IgaW4gUmVwcmVaZW4gQVBJIFN0dWRpbwoKWyFbRWRpdGluZyBTd2FnZ2VyLU9wZW5BUEkgaW4gUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cDovL2ltZy55b3V0dWJlLmNvbS92aS9LWF90SHBfS1FrRS8wLmpwZyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9S1hfdEhwX0tRa0UpCgpfKipOb3RlOioqIEthaVplbiBFZGl0b3IgaW5jbHVkZXMgY29kZSBhc3Npc3QsIHJlYWwtdGltZSB2YWxpZGF0aW9uLCBzeW50YXggaGlnaGxpZ2h0aW5nLCBhbmQgb3V0bGluZSB2aWV3Ljxici8+CltFY2xpcHNlIENvbG9yIFRoZW1lXShodHRwczovL21hcmtldHBsYWNlLmVjbGlwc2Uub3JnL2NvbnRlbnQvZWNsaXBzZS1jb2xvci10aGVtZSkgYW5kIFtFZGl0Qm94XShodHRwOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvY29udGVudC9ub2RlY2xpcHNlLWVkaXRib3gtYmFja2dyb3VuZC1jb2xvcnMtdGhlbWVzLWhpZ2hsaWdodC1jb2RlLWJsb2Nrcy1jLWphdmEtamF2YXNjcmlwdC1weXRob24pIGFyZSBhdmFpbGFibGUgYXMgc2VwYXJhdGUgcGx1Z2lucy48YnIvPgpbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cDovL3JlcHJlemVuLmNvbS9zd2FnZ2VyLXRvb2xzKSBpbmNsdWRlcyB0aGUgbW9jayBzZXJ2aWNlLCBsaXZlIFN3YWdnZXItVUksIGFkdmFuY2VkIGNvZGUgZ2VuZXJhdGlvbiwgYW5kIG90aGVyIGZlYXR1cmVzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIEthaVplbiBFZGl0b3IuIFNlZSB0aGUgW2ZlYXR1cmUgY29tcGFyaXNvbiBoZXJlXShodHRwczovL3N1cHBvcnQucmVwcmV6ZW4uY29tL3N1cHBvcnQvc29sdXRpb25zL2FydGljbGVzLzI0MDAwMDQ2MjcyLXdoYXQtcy10aGUtZGlmZmVyZW5jZS1iZXR3ZWVuLWthaXplbi1vcGVuYXBpLWVkaXRvci1hbmQtcmVwcmV6ZW4tYXBpLXN0dWRpby0pLl8K readmeEtag: '"95dde4753e7016fdba087e97e0e0731224c0a021"' readmeLastModified: Tue, 17 Sep 2019 12:33:47 GMT repositoryId: 43460338 description: Eclipse Editor for the Swagger-OpenAPI Description Language created: '2015-09-30T21:30:07Z' updated: '2024-08-18T01:02:47Z' language: Java archived: false stars: 115 watchers: 16 forks: 12 owner: RepreZen logo: https://avatars.githubusercontent.com/u/15205934?v=4 license: EPL-1.0 repoEtag: '"db438f62f018c3bedebfb27d1593e2810680aa09691854198ff023ebe0325e4c"' repoLastModified: Sun, 18 Aug 2024 01:02:47 GMT foundInMaster: true id: 3927b9da31ce0c8291351fc07cace0ae - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags name: Swagger Editor homepage: https://github.com/swagger-api/swagger-editor language: Node.js source_description: > Design, describe, and document your API on the first open source editor fully dedicated to OpenAPI-based APIs. category: - Text Editors - Server Implementations repository: https://github.com/swagger-api/swagger-editor v2: true v3: true repositoryMetadata: base64Readme: >- IyA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1dFLWxvZ28tY2xyLnBuZyIgaGVpZ2h0PSI4MCI+ClshW05QTSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvc3dhZ2dlci1lZGl0b3Iuc3ZnKV0oaHR0cDovL2JhZGdlLmZ1cnkuaW8vanMvc3dhZ2dlci1lZGl0b3IpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9qZW5raW5zLnN3YWdnZXIuaW8vYnVpbGRTdGF0dXMvaWNvbj9qb2I9b3NzLXN3YWdnZXItZWRpdG9yLW1hc3RlcildKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL2pvYi9vc3Mtc3dhZ2dlci1lZGl0b3ItbWFzdGVyLykKWyFbQ29kZSBDbGltYXRlXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IvYmFkZ2VzL2dwYS5zdmcpXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9qZW5raW5zLnN3YWdnZXIuaW8vdmlldy9PU1MlMjAtJTIwSmF2YVNjcmlwdC9qb2Ivb3NzLXN3YWdnZXItZWRpdG9yLW1hc3Rlci9iYWRnZS9pY29uP3N1YmplY3Q9amVua2lucyUyMGJ1aWxkKV0oaHR0cHM6Ly9qZW5raW5zLnN3YWdnZXIuaW8vdmlldy9PU1MlMjAtJTIwSmF2YVNjcmlwdC9qb2Ivb3NzLXN3YWdnZXItZWRpdG9yLW1hc3Rlci8pCgoqKuKPsO+4jyBMb29raW5nIGZvciB0aGUgbmV4dCBnZW5lcmF0aW9uIHZlcnNpb24gb2YgU3dhZ2dlciBFZGl0b3I/KioKClN3YWdnZXJFZGl0b3IgaXMgbm93IHJlbGVhc2VkIHVuZGVyIHR3byBtYWpvciByZWxlYXNlIGNoYW5uZWxzOgoKMS4gW1N3YWdnZXJFZGl0b3JANF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItZWRpdG9yL3JlbGVhc2VzP3E9djQmZXhwYW5kZWQ9dHJ1ZSkgLSByZWxlYXNlZCBmcm9tIFttYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWVkaXRvci90cmVlL21hc3RlcikgYnJhbmNoIGFuZCBkZXBsb3llZCBhdCBodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLwoyLiBbU3dhZ2dlckVkaXRvckA1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IvcmVsZWFzZXM/cT12NSZleHBhbmRlZD10cnVlKSAtIHJlbGVhc2VkIGZyb20gW25leHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWVkaXRvci90cmVlL25leHQpIGJyYW5jaCBhbmQgZGVwbG95ZWQgYXQgaHR0cHM6Ly9lZGl0b3ItbmV4dC5zd2FnZ2VyLmlvLwoKT25seSAqKlN3YWdnZXJFZGl0b3JANSoqIHN1cHBvcnRzIFtPcGVuQVBJIDMuMS4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4xLjAubWQpLiAKU3dhZ2dlckVkaXRvckA0IHdpbGwgbm90IHJlY2VpdmUgT3BlbkFQSSAzLjEuMCBzdXBwb3J0IGFuZCBpcyBjb25zaWRlcmVkIGxlZ2FjeSBhdCB0aGlzIHBvaW50LgpUaGUgcGxhbiBpcyB0byBjb250aW51YWxseSBtaWdyYXRlIGZ1bGx5IHRvIFN3YWdnZXJFZGl0b3JANSBhbmQgZGVwcmVjYXRlIHRoZSBTd2FnZ2VyRWRpdG9yQDQgaW4gdGhlIGZ1dHVyZS4KCi0tLQoKKirwn5Ww77iPIExvb2tpbmcgZm9yIHRoZSBvbGRlciB2ZXJzaW9uIG9mIFN3YWdnZXIgRWRpdG9yPyoqIFJlZmVyIHRvIHRoZSBbKjIueCpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWVkaXRvci90cmVlLzIueCkgb3IgWyozLngqXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IvdHJlZS8zLngpIGJyYW5jaGVzLgoKLS0tCgpTd2FnZ2VyIEVkaXRvciBsZXRzIHlvdSBlZGl0ICoqT3BlbkFQSSBBUEkgZGVmaW5pdGlvbnMqKiAoW09wZW5BUEkgMi4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMi4wLm1kKSBhbmQgW09wZW5BUEkgMy4wLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZCkpIAppbiBKU09OIG9yIFlBTUwgZm9ybWF0IGluc2lkZSB5b3VyIGJyb3dzZXIgYW5kIHRvIHByZXZpZXcgZG9jdW1lbnRhdGlvbnMgaW4gcmVhbCB0aW1lLgpWYWxpZCBPcGVuQVBJIGRlZmluaXRpb25zIGNhbiB0aGVuIGJlIGdlbmVyYXRlZCBhbmQgdXNlZCB3aXRoIHRoZSBmdWxsIFN3YWdnZXIgdG9vbGluZyAoY29kZSBnZW5lcmF0aW9uLCBkb2N1bWVudGF0aW9uLCBldGMpLgoKQXMgYSBicmFuZC1uZXcgdmVyc2lvbiwgd3JpdHRlbiBmcm9tIHRoZSBncm91bmQgdXAsIHRoZXJlIGFyZSBzb21lIGtub3duIGlzc3VlcyBhbmQgdW5pbXBsZW1lbnRlZCBmZWF0dXJlcy4gQ2hlY2sgb3V0IHRoZSBbS25vd24gSXNzdWVzXSgja25vd24taXNzdWVzKSBzZWN0aW9uIGZvciBtb3JlIGRldGFpbHMuCgpUaGlzIHJlcG9zaXRvcnkgcHVibGlzaGVzIHRvIHR3byBkaWZmZXJlbnQgTlBNIG1vZHVsZXM6CgoqIFtzd2FnZ2VyLWVkaXRvcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci1lZGl0b3IpIGlzIGEgdHJhZGl0aW9uYWwgbnBtIG1vZHVsZSBpbnRlbmRlZCBmb3IgdXNlIGluIHNpbmdsZS1wYWdlIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBjYXBhYmxlIG9mIHJlc29sdmluZyBkZXBlbmRlbmNpZXMgKHZpYSBXZWJwYWNrLCBCcm93c2VyaWZ5LCBldGMpLgoqIFtzd2FnZ2VyLWVkaXRvci1kaXN0XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FnZ2VyLWVkaXRvci1kaXN0KSBpcyBhIGRlcGVuZGVuY3ktZnJlZSBtb2R1bGUgdGhhdCBpbmNsdWRlcyBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIHNlcnZlIFN3YWdnZXIgRWRpdG9yIGluIGEgc2VydmVyLXNpZGUgcHJvamVjdCwgb3IgYSB3ZWIgcHJvamVjdCB0aGF0IGNhbid0IHJlc29sdmUgbnBtIG1vZHVsZSBkZXBlbmRlbmNpZXMuCgpJZiB5b3UncmUgYnVpbGRpbmcgYSBzaW5nbGUtcGFnZSBhcHBsaWNhdGlvbiwgdXNpbmcgYHN3YWdnZXItZWRpdG9yYCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCwgc2luY2UgYHN3YWdnZXItZWRpdG9yLWRpc3RgIGlzIHNpZ25pZmljYW50bHkgbGFyZ2VyLgoKIyMgSGVscGZ1bCBzY3JpcHRzCgpBbnkgb2YgdGhlIHNjcmlwdHMgYmVsb3cgY2FuIGJlIHJ1biBieSB0eXBpbmcgYG5wbSBydW4gPHNjcmlwdCBuYW1lPmAgaW4gdGhlIHByb2plY3QncyByb290IGRpcmVjdG9yeS4KCiMjIyBEZXZlbG9waW5nClNjcmlwdCBuYW1lIHwgRGVzY3JpcHRpb24KLS0tIHwgLS0tCmBkZXZgIHwgU3Bhd24gYSBob3QtcmVsb2FkaW5nIGRldiBzZXJ2ZXIgb24gcG9ydCAzMjAwLgpgZGVwcy1jaGVja2AgfCBHZW5lcmF0ZSBhIHNpemUgYW5kIGxpY2Vuc2luZyByZXBvcnQgb24gU3dhZ2dlciBFZGl0b3JzJ3MgZGVwZW5kZW5jaWVzLgpgbGludGAgfCBSZXBvcnQgRVNMaW50IHN0eWxlIGVycm9ycyBhbmQgd2FybmluZ3MuCmBsaW50LWVycm9yc2AgfCBSZXBvcnQgRVNMaW50IHN0eWxlIGVycm9ycywgd2l0aG91dCB3YXJuaW5ncy4KYGxpbnQtZml4YCB8IEF0dGVtcHQgdG8gZml4IHN0eWxlIGVycm9ycyBhdXRvbWF0aWNhbGx5Lgpgd2F0Y2hgIHwgUmVidWlsZCB0aGUgY29yZSBmaWxlcyBpbiBgL2Rpc3RgIHdoZW4gdGhlIHNvdXJjZSBjb2RlIGNoYW5nZXMuIFVzZWZ1bCBmb3IgYG5wbSBsaW5rYC4KCiMjIyBCdWlsZGluZwpTY3JpcHQgbmFtZSB8IERlc2NyaXB0aW9uCi0tLSB8IC0tLQpgYnVpbGRgIHwgQnVpbGQgYSBuZXcgc2V0IG9mIEpTIGFuZCBDU1MgYXNzZXRzLCBhbmQgb3V0cHV0IHRoZW0gdG8gYC9kaXN0YC4KYGJ1aWxkOmJ1bmRsZWAgfCBCdWlsZCBgc3dhZ2dlci1lZGl0b3ItYnVuZGxlLmpzYCBvbmx5IChjb21tb25KUykuCmBidWlsZDpjb3JlYCB8IEJ1aWxkIGBzd2FnZ2VyLWVkaXRvci4oanNcfGNzcylgIG9ubHkgKGNvbW1vbkpTKS4KYGJ1aWxkOnN0YW5kYWxvbmVgIHwgQnVpbGQgYHN3YWdnZXItZWRpdG9yLXN0YW5kYWxvbmUtcHJlc2V0LmpzYCBvbmx5IChjb21tb25KUykuCmBidWlsZDpzdHlsZXNoZWV0c2AgfCBCdWlsZCBgc3dhZ2dlci1lZGl0b3IuY3NzYCBvbmx5LgpgYnVpbGQ6ZXM6YnVuZGxlYCB8IEJ1aWxkIGBzd2FnZ2VyLWVkaXRvci1lcy1idW5kbGUuanNgIG9ubHkgKGVzMjAxNSkuCmBidWlsZDplczpidW5kbGU6Y29yZWAgfCBCdWlsZCBgc3dhZ2dlci1lZGl0b3ItZXMtYnVuZGxlLWNvcmUuanNgIG9ubHkgKGVzMjAxNSkuCgojIyMgVGVzdGluZwpTY3JpcHQgbmFtZSB8IERlc2NyaXB0aW9uCi0tLSB8IC0tLQpgdGVzdGAgfCBSdW4gdW5pdCB0ZXN0cyBpbiBOb2RlLCBydW4gQ3lwcmVzcyBlbmQtdG8tZW5kIHRlc3RzLCBhbmQgcnVuIEVTTGludCBpbiBlcnJvcnMtb25seSBtb2RlLgpgdGVzdDp1bml0LW1vY2hhYCB8IFJ1biBNb2NoYS1iYXNlZCB1bml0IHRlc3RzIGluIE5vZGUuCmB0ZXN0OnVuaXQtamVzdGAgfCBSdW4gSmVzdC1iYXNlZCB1bml0IHRlc3RzIGluIE5vZGUuCmBlMmVgIHwgUnVuIGVuZC10by1lbmQgYnJvd3NlciB0ZXN0cyB3aXRoIEN5cHJlc3MuCmBsaW50YCB8IFJ1biBFU0xpbnQgdGVzdApgdGVzdDphcnRpZmFjdGAgfCBSdW4gbGlzdCBvZiBidW5kbGUgYXJ0aWZhY3QgdGVzdHMgaW4gSmVzdApgdGVzdDphcnRpZmFjdDp1bWQ6YnVuZGxlYCB8IFJ1biB1bml0IHRlc3QgdGhhdCBjb25maXJtcyBgc3dhZ2dlci1lZGl0b3ItYnVuZGxlYCBleHBvcnRzIGFzIGEgRnVuY3Rpb24KYHRlc3Q6YXJ0aWZhY3Q6ZXM6YnVuZGxlYCB8IFJ1biB1bml0IHRlc3QgdGhhdCBjb25maXJtcyBgc3dhZ2dlci1lZGl0b3ItZXMtYnVuZGxlYCBleHBvcnRzIGFzIGEgRnVuY3Rpb24KYHRlc3Q6YXJ0aWZhY3Q6ZXM6YnVuZGxlOmNvcmVgIHwgUnVuIHVuaXQgdGVzdCB0aGF0IGNvbmZpcm1zIGBzd2FnZ2VyLWVkaXRvci1lcy1idW5kbGUtY29yZWAgZXhwb3J0cyBhcyBhIEZ1bmN0aW9uCgoKIyMgUnVubmluZyBsb2NhbGx5CgojIyMgUHJlcmVxdWlzaXRlcwoKLSBnaXQsIGFueSB2ZXJzaW9uCi0gKipOb2RlLmpzID49MjAuMy4wKiogYW5kICoqbnBtID49OS42LjcqKiBhcmUgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbnMgdGhhdCB0aGlzIHJlcG8gcnVucyBvbiwgYnV0IHdlIGFsd2F5cyByZWNvbW1lbmQgdXNpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIE5vZGUuanMuCgpgYGBzaGVsbAogJCBucG0gaSAtLWxlZ2FjeS1wZWVyLWRlcHMKYGBgCgpJZiB5b3UgaGF2ZSBOb2RlLmpzIGFuZCBucG0gaW5zdGFsbGVkLCB5b3UgY2FuIHJ1biBgbnBtIHN0YXJ0YCB0byBzcGluIHVwIGEgc3RhdGljIHNlcnZlci4KCk90aGVyd2lzZSwgeW91IGNhbiBvcGVuIGBpbmRleC5odG1sYCBkaXJlY3RseSBmcm9tIHlvdXIgZmlsZXN5c3RlbSBpbiB5b3VyIGJyb3dzZXIuCgpJZiB5b3UnZCBsaWtlIHRvIG1ha2UgY29kZSBjaGFuZ2VzIHRvIFN3YWdnZXIgRWRpdG9yLCB5b3UgY2FuIHN0YXJ0IHVwIGEgV2VicGFjayBob3QtcmVsb2FkaW5nIGRldiBzZXJ2ZXIgdmlhIGBucG0gcnVuIGRldmAuCgojIyMjIyBCcm93c2VyIHN1cHBvcnQKClN3YWdnZXIgRWRpdG9yIHdvcmtzIGluIHRoZSBsYXRlc3QgdmVyc2lvbnMgb2YgQ2hyb21lLCBTYWZhcmksIEZpcmVmb3gsIGFuZCBFZGdlLgoKIyMjIEtub3duIElzc3VlcwoKVG8gaGVscCB3aXRoIHRoZSBtaWdyYXRpb24sIGhlcmUgYXJlIHRoZSBjdXJyZW50bHkga25vd24gaXNzdWVzIHdpdGggMy5YLiBUaGlzIGxpc3Qgd2lsbCB1cGRhdGUgcmVndWxhcmx5LCBhbmQgd2lsbCBub3QgaW5jbHVkZSBmZWF0dXJlcyB0aGF0IHdlcmUgbm90IGltcGxlbWVudGVkIGluIHByZXZpb3VzIHZlcnNpb25zLgoKLSBFdmVyeXRoaW5nIGxpc3RlZCBpbiBbU3dhZ2dlciBVSSdzIEtub3duIElzc3Vlc10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2tub3duLWlzc3VlcykuCi0gVGhlIGludGVncmF0aW9uIHdpdGggdGhlIGNvZGVnZW4gaXMgc3RpbGwgbWlzc2luZy4KCiMjIERvY2tlcgoKIyMjIFJ1bm5pbmcgdGhlIGltYWdlIGZyb20gRG9ja2VySHViClRoZXJlIGlzIGEgZG9ja2VyIGltYWdlIHB1Ymxpc2hlZCBpbiBbRG9ja2VySHViXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivc3dhZ2dlcmFwaS9zd2FnZ2VyLWVkaXRvci8pLgoKVG8gdXNlIHRoaXMsIHJ1biB0aGUgZm9sbG93aW5nOgoKYGBgCmRvY2tlciBwdWxsIHN3YWdnZXJhcGkvc3dhZ2dlci1lZGl0b3IKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MDgwIHN3YWdnZXJhcGkvc3dhZ2dlci1lZGl0b3IKYGBgCgpUaGlzIHdpbGwgcnVuIFN3YWdnZXIgRWRpdG9yIChpbiBkZXRhY2hlZCBtb2RlKSBvbiBwb3J0IDgwIG9uIHlvdXIgbWFjaGluZSwgc28geW91IGNhbiBvcGVuIGl0IGJ5IG5hdmlnYXRpbmcgdG8gYGh0dHA6Ly9sb2NhbGhvc3RgIGluIHlvdXIgYnJvd3Nlci4gIAoKKiBZb3UgY2FuIHByb3ZpZGUgYSBVUkwgcG9pbnRpbmcgdG8gYW4gQVBJIGRlZmluaXRpb24gKG1heSBub3QgYmUgYXZhaWxhYmxlIGlmIHNvbWUgc2VjdXJpdHkgcG9saWNpZXMgc3VjaCBhcyBDU1Agb3IgQ09SUyBhcmUgZW5mb3JjZWQpOgoKYGBgCmRvY2tlciBydW4gLWQgLXAgODA6ODA4MCAtZSBVUkw9Imh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbiIgc3dhZ2dlcmFwaS9zd2FnZ2VyLWVkaXRvcgpgYGAKCiogWW91IGNhbiBwcm92aWRlIHlvdXIgb3duIGBqc29uYCBvciBgeWFtbGAgZGVmaW5pdGlvbiBmaWxlIGZyb20geW91ciBsb2NhbCBob3N0OgoKYGBgCmRvY2tlciBydW4gLWQgLXAgODA6ODA4MCAtdiAkKHB3ZCk6L3RtcCAtZSBTV0FHR0VSX0ZJTEU9L3RtcC9zd2FnZ2VyLmpzb24gc3dhZ2dlcmFwaS9zd2FnZ2VyLWVkaXRvcgpgYGAKCioqTm90ZToqKiBXaGVuIGJvdGggYFVSTGAgYW5kIGBTV0FHR0VSX0ZJTEVgIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgc2V0LCBgVVJMYCBoYXMgcHJpb3JpdHkgYW5kIGBTV0FHR0VSX0ZJTEVgIGlzIGlnbm9yZWQuCgoqIFlvdSBjYW4gc3BlY2lmeSBhIGRpZmZlcmVudCBiYXNlIHVybCB2aWEgYEJBU0VfVVJMYCB2YXJpYWJsZSBmb3IgYWNjZXNzaW5nIHRoZSBhcHBsaWNhdGlvbiAtIGZvciBleGFtcGxlIGlmIHlvdSB3YW50IHRoZSBhcHBsaWNhdGlvbiB0byBiZSBhdmFpbGFibGUgYXQgYGh0dHA6Ly9sb2NhbGhvc3Qvc3dhZ2dlci1lZGl0b3IvYDoKCmBgYApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgLWUgQkFTRV9VUkw9L3N3YWdnZXItZWRpdG9yIHN3YWdnZXJhcGkvc3dhZ2dlci1lZGl0b3IKYGBgCgoqIFlvdSBjYW4gc3BlY2lmeSBhIGRpZmZlcmVudCBwb3J0IHZpYSBgUE9SVGAgdmFyaWFibGUgZm9yIGFjY2Vzc2luZyB0aGUgYXBwbGljYXRpb24sIGRlZmF1bHQgaXMgYDgwODBgLgoKYGBgCmRvY2tlciBydW4gLWQgLXAgODA6ODAgLWUgUE9SVD04MCBzd2FnZ2VyYXBpL3N3YWdnZXItZWRpdG9yCmBgYAoKKiBZb3UgY2FuIHNwZWNpZnkgR29vZ2xlIFRhZyBNYW5hZ2VyIElEIHZpYSBgR1RNYCB2YXJpYWJsZSBmb3IgdHJhY2tpbmcgdGhlIHVzYWdlIG9mIHRoZSBzd2FnZ2VyLWVkaXRvci4KCmBgYApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgLWUgR1RNPUdUTS1YWFhYWFggc3dhZ2dlcmFwaS9zd2FnZ2VyLWVkaXRvcgpgYGAKCllvdSBjYW4gYWxzbyBjdXN0b21pemUgdGhlIGRpZmZlcmVudCBlbmRwb2ludHMgdXNlZCBieSB0aGUgU3dhZ2dlciBFZGl0b3Igd2l0aCB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRm9yIGluc3RhbmNlLCB0aGlzIGNhbiBiZSB1c2VmdWwgaWYgeW91IGhhdmUgeW91ciBvd24gU3dhZ2dlciBnZW5lcmF0b3Igc2VydmVyOgoKRW52aXJvbm1lbnQgdmFyaWFibGUgfCBEZWZhdWx0IHZhbHVlCi0tLSB8IC0tLQpgVVJMX1NXQUdHRVIyX0dFTkVSQVRPUmAgfCBgaHR0cHM6Ly9nZW5lcmF0b3Iuc3dhZ2dlci5pby9hcGkvc3dhZ2dlci5qc29uYApgVVJMX09BUzNfR0VORVJBVE9SYCB8IGBodHRwczovL2dlbmVyYXRvcjMuc3dhZ2dlci5pby9vcGVuYXBpLmpzb25gCmBVUkxfU1dBR0dFUjJfQ09OVkVSVEVSYCB8IGBodHRwczovL2NvbnZlcnRlci5zd2FnZ2VyLmlvL2FwaS9jb252ZXJ0YAoKSWYgeW91IHdhbnQgdG8gcnVuIHRoZSBTd2FnZ2VyIEVkaXRvciBsb2NhbGx5IHdpdGhvdXQgdGhlIENvZGVnZW4gZmVhdHVyZXMgKEdlbmVyYXRlIFNlcnZlciBhbmQgR2VuZXJhdGUgQ2xpZW50KSB5b3UgY2FuIHNldCB0aGUgYWJvdmUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGBudWxsYCAoYFVSTF9TV0FHR0VSMl9DT05WRVJURVI9bnVsbGApLgoKIyMjIEJ1aWxkaW5nIGFuZCBydW5uaW5nIGFuIGltYWdlIGxvY2FsbHkKClRvIGJ1aWxkIGFuZCBydW4gYSBkb2NrZXIgaW1hZ2Ugd2l0aCB0aGUgY29kZSBjaGVja2VkIG91dCBvbiB5b3VyIG1hY2hpbmUsIHJ1biB0aGUgZm9sbG93aW5nIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0OgoKYGBgCiMgSW5zdGFsbCBucG0gcGFja2FnZXMgKGlmIG5lZWRlZCkKbnBtIGluc3RhbGwKCiMgQnVpbGQgdGhlIGFwcApucG0gcnVuIGJ1aWxkCgojIEJ1aWxkIGFuIGltYWdlCmRvY2tlciBidWlsZCAtdCBzd2FnZ2VyLWVkaXRvciAuCgojIFJ1biB0aGUgY29udGFpbmVyCmRvY2tlciBydW4gLWQgLXAgODA6ODA4MCBzd2FnZ2VyLWVkaXRvcgpgYGAKCllvdSBjYW4gdGhlbiB2aWV3IHRoZSBhcHAgYnkgbmF2aWdhdGluZyB0byBgaHR0cDovL2xvY2FsaG9zdGAgaW4geW91ciBicm93c2VyLgoKIyMgRG9jdW1lbnRhdGlvbgoKKiBbSW1wb3J0aW5nIHlvdXIgT3BlbkFQSSBkb2N1bWVudF0oZG9jcy9pbXBvcnQubWQpCgoqIFtDb250cmlidXRpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS8uZ2l0aHViL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCkKCiMjIyBVc2luZyBvbGRlciB2ZXJzaW9uIG9mIFJlYWN0Cgo+IFshSU1QT1JUQU5UXQo+IEJ5IG9sZGVyIHZlcnNpb25zIHdlIHNwZWNpZmljYWxseSByZWZlciB0byBgUmVhY3QgPj0xNyA8MThgLgoKQnkgZGVmYXVsdCBbc3dhZ2dlci1lZGl0b3JANF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci1lZGl0b3IpIG5wbSBwYWNrYWdlIGNvbWVzIHdpdGggbGF0ZXN0IHZlcnNpb24gb2YgW1JlYWN0QDE4XShodHRwczovL3JlYWN0LmRldi9ibG9nLzIwMjIvMDMvMjkvcmVhY3QtdjE4KS4KSXQncyBwb3NzaWJsZSB0byB1c2UgX3N3YWdnZXItZWRpdG9yQDRfIG5wbSBwYWNrYWdlIHdpdGggb2xkZXIgdmVyc2lvbiBvZiBSZWFjdC4KCkxldCdzIHNheSBteSBhcHBsaWNhdGlvbiBpbnRlZ3JhdGVzIHdpdGggX3N3YWdnZXItZWRpdG9yQDRfIG5wbSBwYWNrYWdlIGFuZCB1c2VzIFtSZWFjdEAxNy4wLjJdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3JlYWN0L3YvMTcuMC4yKS4KCiMjIyBucG0KCkluIG9yZGVyIHRvIGluZm9ybSBgc3dhZ2dlci1lZGl0b3JANGAgbnBtIHBhY2thZ2UgdGhhdCBJIHJlcXVpcmUgaXQgdG8gdXNlIG15IFJlYWN0IHZlcnNpb24sIEkgbmVlZCB0byB1c2UgW25wbSBvdmVycmlkZXNdKGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY2xpL3Y5L2NvbmZpZ3VyaW5nLW5wbS9wYWNrYWdlLWpzb24jb3ZlcnJpZGVzKS4KCmBgYGpzb24KewogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAicmVhY3QiOiAiPTE3LjAuMiIsCiAgICAicmVhY3QtZG9tIjogIj0xNy4wLjIiCiAgfSwKICAib3ZlcnJpZGVzIjogewogICAgInN3YWdnZXItZWRpdG9yIjogewogICAgICAicmVhY3QiOiAiJHJlYWN0IiwKICAgICAgInJlYWN0IjogIiRyZWFjdC1kb20iLAogICAgICAicmVhY3QtcmVkdXgiOiAiXjgiCiAgICB9CiAgfQp9CmBgYAoKPiBbIU5PVEVdCj4gVGhlIFJlYWN0IGFuZCBSZWFjdERPTSBvdmVycmlkZSBhcmUgZGVmaW5lZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZGVwZW5kZW5jeS4gU2luY2UgX3JlYWN0LXJlZHV4QDlfIG9ubHkgc3VwcG9ydHMgYFJlYWN0ID49IDE4YCwgd2UgbmVlZCB0byB1c2UgX3JlYWN0LXJlZHV4QDhfLgoKCiMjIyB5YXJuCgpJbiBvcmRlciB0byBpbmZvcm0gYHN3YWdnZXItZWRpdG9yQDRgIG5wbSBwYWNrYWdlIHRoYXQgSSByZXF1aXJlIGl0IHRvIHVzZSBteSBzcGVjaWZpYyBSZWFjdCB2ZXJzaW9uLCBJIG5lZWQgdG8gdXNlIFt5YXJuIHJlc29sdXRpb25zXShodHRwczovL3lhcm5wa2cuY29tL2NsaS9zZXQvcmVzb2x1dGlvbikuCgoKYGBganNvbgp7CiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJyZWFjdCI6ICIxNy4wLjIiLAogICAgInJlYWN0LWRvbSI6ICIxNy4wLjIiCiAgfSwKICAicmVzb2x1dGlvbnMiOiB7CiAgICAic3dhZ2dlci1lZGl0b3IvcmVhY3QiOiAiMTcuMC4yIiwKICAgICJzd2FnZ2VyLWVkaXRvci9yZWFjdC1kb20iOiAiMTcuMC4yIiwKICAgICJzd2FnZ2VyLWVkaXRvci9yZWFjdC1yZWR1eCI6ICJeOCIKICB9Cn0KYGBgCgo+IFshTk9URV0KPiBUaGUgUmVhY3QgYW5kIFJlYWN0RE9NIHJlc29sdXRpb24gY2Fubm90IGJlIGRlZmluZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGRlcGVuZGVuY3kuIFVuZm9ydHVuYXRlbHkgKnlhcm4qIGRvZXMgbm90IHN1cHBvcnQgYWxpYXNpbmcgbGlrZSBgJHJlYWN0YCBvciBgJHJlYWN0LWRvbWAgYXMgKm5wbSogZG9lcy4gWW91J2xsIG5lZWQgdG8gc3BlY2lmeSB0aGUgZXhhY3QgdmVyc2lvbnMuCgojIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4K readmeEtag: '"fc7fc7c6641c8bd3de9e81686f3700675398842f"' readmeLastModified: Mon, 15 Jul 2024 14:57:39 GMT repositoryId: 19390712 description: Swagger Editor created: '2014-05-02T22:47:10Z' updated: '2024-09-05T21:15:30Z' language: JavaScript archived: false stars: 8857 watchers: 258 forks: 2240 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"002a1b7fa7b07ec7dd5462ac3d01962ce97f034723af43d053b60fec4048e9c8"' repoLastModified: Thu, 05 Sep 2024 21:15:30 GMT foundInMaster: true id: 951cf61d12c812ef9b201ad76b5d278d v3_1: true - source: https://openapi.tools/ name: SwaggerHub category: Text Editors language: - SaaS - On-Premise NodeJS repository: null link: https://swagger.io/tools/swaggerhub/ source_description: > API design and documentation platform to improve collaboration, standardize development workflow and centralize their API discovery and consumption. v2: true v3: true foundInMaster: true id: 4b7adfae5ed14133b59e6f80811da841 - source: https://openapi.tools/ name: Redocly VSCode Extension category: - Text Editors - Parsers language: Node.js link: https://marketplace.visualstudio.com/items?itemName=Redocly.openapi-vs-code repository: https://github.com/redocly/redocly-vs-code source_description: >- Redocly OpenAPI is a Visual Studio Code extension that helps you write, validate, preview, and maintain your OpenAPI documents. v2: true v3: true v3_1: true id: 491454b1f2a266a142515a7eee661b08 repositoryMetadata: base64Readme: >- IyBSZWRvY2x5IE9wZW5BUEkKCgpSZWRvY2x5IE9wZW5BUEkgaXMgYSBWaXN1YWwgU3R1ZGlvIENvZGUgZXh0ZW5zaW9uIHRoYXQgaGVscHMgeW91IHdyaXRlLCB2YWxpZGF0ZSwgYW5kIG1haW50YWluIHlvdXIgT3BlbkFQSSBkb2N1bWVudHMuIEl0IHdhcm5zIGFib3V0IGVycm9ycyBpbiBPcGVuQVBJIGRlZmluaXRpb25zIGFuZCBsZXRzIHlvdSBxdWlja2x5IGFjY2VzcyByZWZlcmVuY2VkIHNjaGVtYXMgb3Igb3BlbiB0aGUgZmlsZXMgdGhhdCBjb250YWluIHRoZW0uIFRoZSBleHRlbnNpb24gd29ya3Mgd2l0aCBPcGVuQVBJIDIuMCBhbmQgMy4wIGRlZmluaXRpb25zLCBhbmQgaGFzIGJhc2ljIHN1cHBvcnQgZm9yIE9wZW5BUEkgMy4xLgoKKipGZWF0dXJlIGhpZ2hsaWdodHM6KioKCi0gVmFsaWRhdGUgeW91ciBPcGVuQVBJIGRlZmluaXRpb25zIAotIFF1aWNrbHkgcHJldmlldyBhbmQgYWNjZXNzIHJlZmVyZW5jZWQgc2NoZW1hcwotIFdvcmsgd2l0aCBtdWx0aS1maWxlIGRlZmluaXRpb25zCi0gUHJldmlldyBBUEkgZG9jdW1lbnRhdGlvbiBzaWRlLWJ5LXNpZGUgd2l0aCB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbgotIEFjY2VzcyBjb250ZXh0LWF3YXJlIGhlbHAgYWJvdXQgT3BlbkFQSSBmZWF0dXJlcwotIEVkaXQgQVBJIGRlZmluaXRpb25zIHRocm91Z2ggaW50ZXJhY3RpdmUgZm9ybXMgCgoKIVtQZWVrIGFuZCBnby10byBkZWZpbml0aW9uIGZlYXR1cmVzXShodHRwczovL3JlZG9jLmx5L2ltYWdlcy92c2NvZGUvb3BlbmFwaS12c2NvZGUtcGVlay5naWYpCgoqKkZvdW5kIGFuIGlzc3VlIG9yIGhhdmUgYW4gaWRlYSBmb3IgaW1wcm92aW5nIHRoZSBleHRlbnNpb24/IFtMZXQgdXMga25vdyFdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jbHktdnMtY29kZS9pc3N1ZXMvbmV3L2Nob29zZSkqKgoKKipUaGUgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBbaGVyZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zL1JlZG9jbHkub3BlbmFwaS12cy1jb2RlL2NoYW5nZWxvZykuKioKCiMjIEJlZm9yZSB5b3Ugc3RhcnQKCi0gVGhlIGV4dGVuc2lvbiByZXF1aXJlcyBhIGByZWRvY2x5LnlhbWxgIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiB5b3VyIHdvcmtzcGFjZS4gUmVhZCBob3cgdG8gY3JlYXRlIGl0IFtpbiB0aGUgQ29uZmlndXJhdGlvbiBzZWN0aW9uXSgjY29uZmlndXJhdGlvbikuCgotIE5vdGUgdGhhdCB0aGUgZXh0ZW5zaW9uIG9ubHkgd29ya3Mgd2l0aCBZQU1MIGZpbGVzLiBWYWxpZGF0aW9uIGZvciBKU09OIGZpbGVzIGlzIHN1cHBvcnRlZCBzdGFydGluZyB3aXRoIHZlcnNpb24gYDAuMi4wYCBvZiB0aGUgZXh0ZW5zaW9uLgoKCiMjIyBMaW1pdGF0aW9ucwoKQmUgYXdhcmUgdGhhdCB0aGUgZXh0ZW5zaW9uIG1heSBiZSBhZmZlY3RlZCBieSBzb21lIGxpbWl0YXRpb25zIG9mIHRoZSBWUyBDb2RlIGVkaXRvci4KClNvIGZhciwgd2UgaGF2ZSBpZGVudGlmaWVkIHRoZXNlIGxpbWl0YXRpb25zOgoKLSBTcGVjaWFsIGNoYXJhY3RlcnMgYC9gLCBgJGAgYW5kIGAjYCBkbyBub3QgdHJpZ2dlciBWUyBDb2RlIHN1Z2dlc3Rpb25zCi0gVlMgQ29kZSBkb2Vzbid0IHN1Z2dlc3QgdmFsdWVzIHdoaWxlIGluc2lkZSBhIHNuaXBwZXQKCgojIyBJbnN0YWxsYXRpb24KClRvIGluc3RhbGwgdGhlIGV4dGVuc2lvbiBpbiBWUyBDb2RlOgoKMS4gUHJlc3MgW0N0cmwrU2hpZnQrWF0gb3IgW+KHp+KMmFhdIHRvIG9wZW4gdGhlICpFeHRlbnNpb25zKiB0YWIuCgoyLiBUeXBlIGBSZWRvY2x5IE9wZW5BUElgIHRvIHNlYXJjaCBmb3IgdGhlIGV4dGVuc2lvbiBpbiBNYXJrZXRwbGFjZS4KCjMuIEZpbmQgdGhlIGV4dGVuc2lvbiBpbiB0aGUgbGlzdCBhbmQgc2VsZWN0ICoqSW5zdGFsbCoqLgoKNC4gV2hlbiB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBzZWxlY3QgKipFbmFibGUqKiB0byBhY3RpdmF0ZSB0aGUgZXh0ZW5zaW9uIGluIHlvdXIgd29ya3NwYWNlLgoKCiMjIENvbmZpZ3VyYXRpb24KClRvIHVzZSB0aGUgZXh0ZW5zaW9uLCB3ZSByZWNvbW1lbmQgeW91IGNyZWF0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBjYWxsZWQgYHJlZG9jbHkueWFtbGAgYW5kIHBsYWNlIGl0IGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB5b3VyIHdvcmtzcGFjZS4gSWYgdGhlIGV4dGVuc2lvbiBkZXRlY3RzIHRoYXQgdGhpcyBmaWxlIGRvZXNuJ3QgZXhpc3QsIGl0IHdpbGwgcHJvbXB0IHlvdSB0byBjcmVhdGUgaXQgYXV0b21hdGljYWxseSBmb3IgdGhlIGN1cnJlbnQgd29ya3NwYWNlLgoKSGVyZSdzIGFuIGV4YW1wbGUgb2Ygd2hhdCB5b3VyIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgY291bGQgbG9vayBsaWtlOgoKYGBgCi4K4pSc4pSA4pSAIHdvcmtzcGFjZSAK4pSCICAg4pSc4pSA4pSAIG9wZW5hcGktZGVmaW5pdGlvbnMK4pSCICAg4pSCICAg4pSc4pSA4pSAIHByb2R1Y3Rpb24ueWFtbArilIIgICDilIIgICDilJTilIDilIAgdGVzdC55YW1sCuKUgiAgIOKUnOKUgOKUgCByZWRvY2x5LnlhbWwK4pSCICAg4pSc4pSA4pSAIHNvbWUtZmlsZS50eHQKCmBgYAoKVGhlIGByZWRvY2x5LnlhbWxgIGNvbmZpZ3VyYXRpb24gZmlsZSBkZWZpbmVzIHRoZSBjcml0ZXJpYSBmb3IgdmFsaWRhdGluZyBPcGVuQVBJIGRlZmluaXRpb25zLiAKCkFkZCB0aGUgZm9sbG93aW5nIGV4YW1wbGUgY29udGVudHMgdG8gdGhlIGZpbGUgYW5kIHNhdmUgdGhlIGNoYW5nZXM6CgpgYGB5YW1sCmFwaXM6CiAgYXBpTmFtZUB2ZXJzaW9uOgogICAgcm9vdDogLi9vcGVuYXBpLnlhbWwKCmV4dGVuZHM6CiAgLSByZWNvbW1lbmRlZAogIApydWxlczoKICBhc3NlcnQvb3BlcmF0aW9uLWRlc2NyaXB0aW9uOgogICAgc3ViamVjdDogCiAgICAgIHR5cGU6IE9wZXJhdGlvbgogICAgICBwcm9wZXJ0eTogZGVzY3JpcHRpb24KICAgIGFzc2VydGlvbnM6CiAgICAgIGRlZmluZWQ6IHRydWUKICAgICAgbWluTGVuZ3RoOiAzMAoKdGhlbWU6CiAgb3BlbmFwaToKICAgIGdlbmVyYXRlQ29kZVNhbXBsZXM6CiAgICAgIGxhbmd1YWdlczoKICAgICAgICAtIGxhbmc6IGN1cmwKICAgICAgICAtIGxhbmc6IE5vZGUuanMKICAgICAgICAtIGxhbmc6IFB5dGhvbgpgYGAKClRoaXMgd2lsbCBsZXQgeW91IHN0YXJ0IHdvcmtpbmcgd2l0aCB0aGUgZXh0ZW5zaW9uLiBZb3UgY2FuIG1vZGlmeSB0aGUgZmlsZSBhdCBhbnkgcG9pbnQgdG8gY29udHJvbCB0aGUgYmVoYXZpb3Igb2YgdGhlIGV4dGVuc2lvbi4gV2hlbiBtb2RpZnlpbmcgdGhlIGByZWRvY2x5LnlhbWxgIGZpbGUsIHlvdSBtdXN0IHNhdmUgaXQgdG8gZGlzayBmb3IgeW91ciBjaGFuZ2VzIHRvIGFwcGx5LgoKVG8gbGVhcm4gbW9yZSBhYm91dCBidWlsdC1pbiBydWxlcyB5b3UgY2FuIHVzZSwgcmVmZXIgdG8gdGhlIFtSZWRvY2x5IE9wZW5BUEkgQ0xJIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVkb2MubHkvZG9jcy9jbGkvYnVpbHQtaW4tcnVsZXMvKS4gVGhlIFtsaW50aW5nIGd1aWRlXShodHRwczovL3JlZG9jLmx5L2RvY3MvY2xpL2d1aWRlcy9saW50LykgcHJvdmlkZXMgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29uZmlndXJlIHRoZSBsaW50ZXIuCgpOb3RlIHRoYXQgeW91IGNhbiBhZGQgbXVsdGlwbGUgcGF0aHMgdG8gT3BlbkFQSSBmaWxlcyB1bmRlciBgYXBpRGVmaW5pdGlvbnNgLCBlYWNoIGluIGl0cyBvd24gbGluZSB3aXRoIGEgY3VzdG9tLCB1bmlxdWUgbmFtZSBhcyB0aGUga2V5LiBGaWxlcyBsaXN0ZWQgaW4gdGhpcyBzZWN0aW9uIHdpbGwgYmUgYXV0b21hdGljYWxseSB2YWxpZGF0ZWQgYnkgdGhlIGV4dGVuc2lvbiB3aGVuIHlvdSBvcGVuIHRoZW0gaW4gVlMgQ29kZS4gQ2hhbmdlcyBtYWRlIHRvIGBhcGlEZWZpbml0aW9uc2AgYXJlIGR5bmFtaWNhbGx5IHJlZmxlY3RlZCBpbiB0aGUgW3ByZXZpZXcgcGFuZWxdKCNsaXZlLXByZXZpZXctb2YtdGhlLWFwaS1kb2N1bWVudGF0aW9uKS4KCgojIyBVc2FnZQoKVGhlIFJlZG9jbHkgT3BlbkFQSSBWUyBDb2RlIGV4dGVuc2lvbiBoZWxwcyB5b3UgY3JlYXRlIGFuZCB1cGRhdGUgT3BlbkFQSSBkb2N1bWVudHMuIAoKVG8gc3RhcnQgdXNpbmcgaXQsIGVpdGhlciBjcmVhdGUgYSBuZXcgT3BlbkFQSSBkZWZpbml0aW9uIG9yIG9wZW4gYW4gZXhpc3Rpbmcgb25lIGluIHlvdXIgVlMgQ29kZS4KCklmIHRoaXMgaXMgeW91ciBmaXJzdCB0aW1lIHdvcmtpbmcgd2l0aCBPcGVuQVBJIGRlZmluaXRpb25zLCB5b3UgY2FuIHVzZSBvdXIgZGVmYXVsdCB0ZW1wbGF0ZSB0byBnZXQgc3RhcnRlZC4gQ3JlYXRlIGFuIGVtcHR5IFlBTUwgZmlsZSBhbmQgb3BlbiB0aGUgKkN1cnNvciBjb250ZXh0KiBwYW5lbC4gSW4gdGhlIHBhbmVsLCBzZWxlY3QgKipBZGQgdGVtcGxhdGUqKi4gTm93IHlvdSBoYXZlIGEgZnVsbHkgZnVuY3Rpb25hbCBPcGVuQVBJIGRlZmluaXRpb24geW91IGNhbiB1c2Ugd2l0aCB0aGUgZXh0ZW5zaW9uLgoKIVtBZGRpbmcgdGhlIGRlZmF1bHQgT3BlbkFQSSB0ZW1wbGF0ZV0oaHR0cHM6Ly9yZWRvYy5seS9pbWFnZXMvdnNjb2RlL3JlZG9jbHktdnNjb2RlLWRlZmF1bHQtdGVtcGxhdGUuZ2lmKQoKCiMjIyBPcGVuQVBJIHN0cnVjdHVyZSBhdXRvY29tcGxldGlvbiAKClRvIHVzZSB0aGUgZXh0ZW5zaW9uIGZvciBPcGVuQVBJIGF1dGhvcmluZywgY3JlYXRlIGEgbmV3LCBlbXB0eSBZQU1MIGZpbGUuIEFzIHlvdSBzdGFydCB0eXBpbmcgYG9wZW5hcGlgIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIHRoZSBleHRlbnNpb24gd2lsbCBhdXRvbWF0aWNhbGx5IG9mZmVyIHN1Z2dlc3Rpb25zIGZvciBPcGVuQVBJIGRlZmluaXRpb24gZWxlbWVudHMgW2FjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pLiAKCiFbQXV0b2NvbXBsZXRpb25dKGh0dHBzOi8vcmVkb2MubHkvaW1hZ2VzL3ZzY29kZS9vcGVuYXBpLXZzY29kZS1hdXRob3IuZ2lmKQoKU2VsZWN0IGEgc3VnZ2VzdGlvbiBmcm9tIHRoZSBsaXN0LiBUaGUgZXh0ZW5zaW9uIHdpbGwgYXV0b21hdGljYWxseSBnZW5lcmF0ZSB0aGUgZmllbGRzIHN1cHBvcnRlZCBieSB0aGUgc2VsZWN0ZWQgT3BlbkFQSSBzZWN0aW9uLiBZb3UgY2FuIHRoZW4gYWRkIHlvdXIgdmFsdWVzIGZvciBlYWNoIG9mIHRoZSBmaWVsZHMuCgojIyMgVmFsdWUgYXV0b2NvbXBsZXRpb24gCgpTdGFydGluZyB3aXRoIHZlcnNpb24gYDAuMi4wYCwgdGhlIGV4dGVuc2lvbiBzdXBwb3J0cyB2YWx1ZSBhdXRvY29tcGxldGlvbiBmb3IgcmVmZXJlbmNlcyAoYCRyZWZgIGZpZWxkcykuIFRvIHVzZSB0aGlzIGZlYXR1cmUsIHlvdXIgT3BlbkFQSSBkb2N1bWVudCBtdXN0IGhhdmUgYGNvbXBvbmVudHNgIHdpdGggYSBwcm9wZXIgdHlwZSBkZWZpbmVkLiBGb3IgZXhhbXBsZSwgdGhlIGV4dGVuc2lvbiB3aWxsIG9ubHkgc3VnZ2VzdCB2YWx1ZXMgZm9yIGAkcmVmYCBpbnNpZGUgYHJlcXVlc3RCb2R5YCBpZiB5b3UgaGF2ZSBjb21wb25lbnRzIGRlZmluZWQgaW4gYHJlcXVlc3RCb2RpZXNgLiBTaW1pbGFybHksIGl0IHdpbGwgb25seSBzdWdnZXN0IHZhbHVlcyBmcm9tIGBzY2hlbWFzYCBmb3IgYCRyZWZgIGZpZWxkcyBpbnNpZGUgYHNjaGVtYWAuCgohW1JlZmVyZW5jZXMgY29tcGxldGlvbl0oaHR0cHM6Ly9yZWRvYy5seS9pbWFnZXMvdnNjb2RlL29wZW5hcGktdnNjb2RlLXJlZmVyZW5jZS1jb21wbGV0aW9uLmdpZikKCkF1dG9jb21wbGV0aW9uIGZvciBgZXhhbXBsZWAgYW5kIGBkZWZhdWx0YCBmaWVsZHMgd2lsbCBzdWdnZXN0IHZhbHVlcyB5b3UgaGF2ZSBwcmV2aW91c2x5IGRlZmluZWQgaW4gYGVudW1gIG9uIHRoZSBzYW1lIGxldmVsLgoKIVtFeGFtcGxlL0RlZmF1bHQgY29tcGxldGlvbl0oaHR0cHM6Ly9yZWRvYy5seS9pbWFnZXMvdnNjb2RlL29wZW5hcGktdnNjb2RlLWV4YW1wbGUtZGVmYXVsdC1jb21wbGV0aW9uLmdpZikKClRoZSBleHRlbnNpb24gd2lsbCBhbHNvIHNob3cgc3VnZ2VzdGVkIHZhbHVlcyBmb3IgYWxsIG90aGVyIGZpZWxkcyB0aGF0IGhhdmUgYSBwcmVkZWZpbmVkIHNldCBvZiB2YWx1ZXMgYWNjb3JkaW5nIHRvIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gKGxpa2UgYHJlcXVpcmVkYCwgd2hpY2ggaGFzIGBib29sZWFuYCB0eXBlOyBvciBgdHlwZWAsIHdoaWNoIG11c3QgYmUgb25lIG9mIGBhcnJheWAgfCBgb2JqZWN0YCB8IGBudW1iZXJgKSBhbmQgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IFtSZWRvY2x5IE9wZW5BUEkgQ0xJXS4KCiFbVmFsdWUgY29tcGxldGlvbl0oaHR0cHM6Ly9yZWRvYy5seS9pbWFnZXMvdnNjb2RlL29wZW5hcGktdnNjb2RlLWVudW0tYm9vbGVhbi1jb21wbGV0aW9uLmdpZikKCiMjIyBEeW5hbWljIE9wZW5BUEkgdmFsaWRhdGlvbiAKClRoZSBleHRlbnNpb24gY29udGludW91c2x5IHZhbGlkYXRlcyB0aGUgT3BlbkFQSSBkZWZpbml0aW9uIHlvdSdyZSB3b3JraW5nIG9uLiBEZXBlbmRpbmcgb24gdGhlIHJ1bGVzIHlvdSd2ZSBhZGRlZCB0byB5b3VyIGByZWRvY2x5LnlhbWxgIGZpbGUsIHRoZSBleHRlbnNpb24gd2lsbCB3YXJuIHlvdSBhYm91dCB0aGUgZm9sbG93aW5nIGlzc3VlczoKCi0gaW5kZW50YXRpb24KLSBpbmNvcnJlY3QgdHlwZSB1c2FnZQotIHdyb25nIHBhdGhzIHRvIHJlZmVyZW5jZWQgZmlsZXMKLSBtaXNzaW5nIG9yIHVuZGVmaW5lZCBmaWVsZHMgYW5kIHNlY3Rpb25zCi0gYW5kIG1vcmUKCkhlcmUgYXJlIHNvbWUgZXhhbXBsZXMgaWxsdXN0cmF0aW5nIGRpZmZlcmVudCB0eXBlcyBvZiBpc3N1ZXMgYW5kIGhvdyBSZWRvY2x5IE9wZW5BUEkgcG9pbnRzIHRoZW0gb3V0LgoKKipNaXNzaW5nIGZpZWxkcyBhbmQgc2VjdGlvbnMqKgoKIVtSZWRvY2x5IE9wZW5BUEkgd2FybmluZyBmb3IgdGhlIHNlcnZlcnMgc2VjdGlvbl0oaHR0cHM6Ly9yZWRvYy5seS9pbWFnZXMvdnNjb2RlL29wZW5hcGktdnNjb2RlLW1pc3Npbmctc2VjdGlvbi5wbmcpCgohW1JlZG9jbHkgT3BlbkFQSSB3YXJuaW5nIGZvciBmaWVsZHMgaW4gdGhlIG9wZXJhdGlvbiBvYmplY3RdKGh0dHBzOi8vcmVkb2MubHkvaW1hZ2VzL3ZzY29kZS9vcGVuYXBpLXZzY29kZS1yZXF1aXJlZC1maWVsZHMucG5nKQoKCioqVW5kZWZpbmVkIHNlY3Rpb25zKioKCiFbUmVkb2NseSBPcGVuQVBJIHdhcm5pbmcgZm9yIHVuZGVmaW5lZCBzZWN1cml0eSBzY2hlbWVdKGh0dHBzOi8vcmVkb2MubHkvaW1hZ2VzL3ZzY29kZS9vcGVuYXBpLXZzY29kZS1zZWN1cml0eS1zY2hlbWUucG5nKQoKCioqVHlwZSB1c2FnZSoqCgohW1JlZG9jbHkgT3BlbkFQSSB3YXJuaW5nIGFib3V0IGFsbG93ZWQgdHlwZXNdKGh0dHBzOi8vcmVkb2MubHkvaW1hZ2VzL3ZzY29kZS9vcGVuYXBpLXZzY29kZS10eXBlLnBuZykKCgoqKldyb25nIHBhdGggdG8gcmVmZXJlbmNlZCBmaWxlKioKCiFbUmVkb2NseSBPcGVuQVBJIHdhcm5pbmcgYWJvdXQgYSByZWZlcmVuY2VkIGZpbGUgbm90IGZvdW5kXShodHRwczovL3JlZG9jLmx5L2ltYWdlcy92c2NvZGUvb3BlbmFwaS12c2NvZGUtaW5jb3JyZWN0LXJlZmVyZW5jZS5wbmcpCgoKIyMjIFF1aWNrIG5hdmlnYXRpb24KCldoZW4geW91IFt1c2UgcmVmZXJlbmNlc10oaHR0cHM6Ly9yZWRvYy5seS9kb2NzL3Jlc291cmNlcy9yZWYtZ3VpZGUvKSBpbiB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiwgdGhlIGV4dGVuc2lvbiB3aWxsIHZhbGlkYXRlIHRoZW0gYW5kIHdhcm4geW91IGlmIHRoZXkgYXJlIGluY29ycmVjdCAoZm9yIGV4YW1wbGUsIGlmIHRoZSBwYXRoIHRvIGEgc2NoZW1hIGluIGEgc2VwYXJhdGUgZmlsZSBpcyBpbmNvcnJlY3QpLiAKClJpZ2h0LWNsaWNrIG9uIGFueSBgJHJlZmAgdmFsdWUgdG8gYWNjZXNzIGFkZGl0aW9uYWwgbmF2aWdhdGlvbiBvcHRpb25zOiAqKkdvIHRvIERlZmluaXRpb24qKiBhbmQgKipQZWVrKiouCgpTZWxlY3RpbmcgKipHbyB0byBEZWZpbml0aW9uKiogb3BlbnMgdGhlIHJlZmVyZW5jZWQgaXRlbSBpbiBhIG5ldyBWUyBDb2RlIHRhYiAoaWYgaXQncyBhIHNlcGFyYXRlIGZpbGUpIG9yIHRha2VzIHlvdSBkaXJlY3RseSB0byB0aGUgc2VjdGlvbiB3aGVyZSBpdCdzIGRlZmluZWQgKGlmIGl0J3MgaW4gdGhlIHNhbWUgZmlsZSkuCgpTZWxlY3RpbmcgKipQZWVrID4gUGVlayBkZWZpbml0aW9uKiogb3BlbnMgYW4gaW5saW5lIHByZXZpZXcgb2YgdGhlIHJlZmVyZW5jZWQgaXRlbSB3aXRoaW4gdGhlIGN1cnJlbnQgVlMgQ29kZSB0YWIuCgoKIyMjIExpdmUgcHJldmlldyBvZiB0aGUgQVBJIGRvY3VtZW50YXRpb24KClRoZSBSZWRvY2x5IE9wZW5BUEkgVlMgQ29kZSBleHRlbnNpb24gcmVsaWVzIG9uIFtSZWRvY2x5IFJlZmVyZW5jZV0oaHR0cHM6Ly9yZWRvYy5seS9yZWZlcmVuY2UtZG9jcykgdG8gZ2VuZXJhdGUgYSBwcmV2aWV3IG9mIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBiYXNlZCBvbiB0aGUgT3BlbkFQSSBkb2N1bWVudCB5b3UncmUgZWRpdGluZy4gVGhpcyBsZXRzIHlvdSBzZWUgdGhlIE9wZW5BUEkgc291cmNlIGFuZCB0aGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgZnJvbSBpdCBzaWRlLWJ5LXNpZGUuIFdoZW4geW91IHNhdmUgYSBjaGFuZ2UgdG8geW91ciBPcGVuQVBJIGRlZmluaXRpb24sIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSBwcmV2aWV3IHBhbmVsIGlzIGF1dG9tYXRpY2FsbHkgdXBkYXRlZC4KCkFjY2VzcyB0aGUgZG9jdW1lbnRhdGlvbiBwcmV2aWV3IGluIGFueSBvZiB0aGUgZm9sbG93aW5nIHdheXM6CgotIFNlbGVjdCB0aGUgKipPcGVuIHByZXZpZXcqKiBidXR0b24gaW4gdGhlIHVwcGVyIHJpZ2h0IHNlY3Rpb24gb2YgeW91ciBWUyBDb2RlIHdpbmRvdy4KCi0gT3BlbiB0aGUgKkNvbW1hbmQgUGFsZXR0ZSosIHN0YXJ0IHR5cGluZyBgcmVkb2NseWAsIHRoZW4gc2VsZWN0ICpSZWRvY2x5IE9wZW5BUEk6IE9wZW4gcHJldmlldyouCgpCb3RoIGFjdGlvbnMgb3BlbiB0aGUgKlByZXZpZXcqIHBhbmVsLgoKSW4gdGhlIHBhbmVsLCB5b3UgbXVzdCBwcm92aWRlIGFuIEFQSSBrZXkgZnJvbSBSZWRvY2x5IHRvIHVzZSB0aGUgZG9jdW1lbnRhdGlvbiBwcmV2aWV3IGZlYXR1cmUuIFRvIG9idGFpbiB0aGUga2V5LCBmaXJzdCBbY3JlYXRlIGEgZnJlZSBSZWRvY2x5IGFjY291bnRdKGh0dHBzOi8vYXBwLnJlZG9jLmx5L3NpZ251cCksIHRoZW4gW2dlbmVyYXRlIGEgcGVyc29uYWwgQVBJIGtleV0oaHR0cHM6Ly9yZWRvYy5seS9kb2NzL3NldHRpbmdzL3BlcnNvbmFsLWFwaS1rZXlzLykgZm9yIGl0LgoKV2hlbiB5b3UgaGF2ZSBnZW5lcmF0ZWQgeW91ciBwZXJzb25hbCBBUEkga2V5LCBwYXN0ZSBpdCBpbnRvIHRoZSAqQVBJIGtleSogaW4gdGhlICpQcmV2aWV3KiBwYW5lbCBhbmQgc2VsZWN0ICoqU3VibWl0KiouIERvY3VtZW50YXRpb24gcHJldmlld3Mgd2lsbCBiZSBlbmFibGVkIGZvciBhbGwgeW91ciB3b3Jrc3BhY2VzLgoKSW4gdGhlIHRhYiBiYXIgYWJvdmUgdGhlIHBhbmVsLCBzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIFlBTUwgZmlsZSBmb3Igd2hpY2ggeW91IHdhbnQgdG8gcHJldmlldyB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgeW91IGhhdmUgZGVmaW5lZCBjdXN0b20gbmFtZXMgaW4gdGhlIGBhcGlEZWZpbml0aW9uc2Agc2VjdGlvbiBvZiB0aGUgYHJlZG9jbHkueWFtbGAgZmlsZSwgdGhvc2UgbmFtZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGFicyBpbnN0ZWFkIG9mIGZpbGUgbmFtZXMuIFNlbGVjdGluZyBhIG5hbWUgbG9hZHMgdGhlIEFQSSBkb2N1bWVudGF0aW9uIHByZXZpZXcgZm9yIHRoZSBBUEkgZGVmaW5pdGlvbi4KCiFbVXNpbmcgdGhlIGRvY3VtZW50YXRpb24gcHJldmlldyBmZWF0dXJlXShodHRwczovL3JlZG9jLmx5L2ltYWdlcy92c2NvZGUvb3BlbmFwaS12c2NvZGUtbGl2ZS1wcmV2aWV3LnBuZykKClRvIGN1c3RvbWl6ZSB0aGUgZG9jdW1lbnRhdGlvbiBwcmV2aWV3LCBhZGQgW3N1cHBvcnRlZCBSZWZlcmVuY2UgY29uZmlndXJhdGlvbiBvcHRpb25zXShodHRwczovL3JlZG9jLmx5L2RvY3MvYXBpLXJlZmVyZW5jZS1kb2NzL2NvbmZpZ3VyYXRpb24vKSB0byB0aGUgYHJlZmVyZW5jZURvY3NgIHNlY3Rpb24gaW4geW91ciBgcmVkb2NseS55YW1sYCBmaWxlLgoKRm9yIGV4YW1wbGUsIHRvIGhpZGUgdGhlIGxvZ28gaW1hZ2UgYW5kIGNoYW5nZSB0aGUgZm9udCBzaXplIGFuZCBjb2xvciwgeW91IGNvdWxkIGFkZCB0aGUgZm9sbG93aW5nOgoKYGBgeWFtbAphcGlEZWZpbml0aW9uczoKICBtYWluOiBwYXRoL3RvL3lvdXItb3BlbmFwaS55YW1sCiAgdGVzdDogcGF0aC90by9hbm90aGVyLW9wZW5hcGkueWFtbApsaW50OgogIGV4dGVuZHM6CiAgICAtIHJlY29tbWVuZGVkCnJlZmVyZW5jZURvY3M6CiAgaGlkZUxvZ286IHRydWUKICB0aGVtZToKICAgIGNvbG9yczoKICAgICAgdGV4dDoKICAgICAgICBwcmltYXJ5OiAiI0ZGMDAwMCIKICAgIHR5cG9ncmFwaHk6CiAgICAgIGZvbnRTaXplOiAxNnB4CmBgYAoKUmVtZW1iZXIgdG8gc2F2ZSB0aGUgYHJlZG9jbHkueWFtbGAgZmlsZSBmb3IgY2hhbmdlcyB0byBhcHBseS4KClRvIGV4aXQgdGhlIGRvY3VtZW50YXRpb24gcHJldmlldywgY2xvc2UgdGhlICpQcmV2aWV3KiBwYW5lbC4gWW91IGNhbiBvcGVuIGl0IGFnYWluIGF0IGFueSBwb2ludC4KCgojIyMgSW50ZXJhY3RpdmUgZm9ybXMgYW5kIGNvbnRleHQtYXdhcmUgaGVscCBmb3IgT3BlbkFQSSBhdXRob3JpbmcKClRvIGhlbHAgeW91IHdyaXRlIHZhbGlkLCBzcGVjaWZpY2F0aW9uLWNvbXBsaWFudCBBUEkgZGVmaW5pdGlvbnMsIHRoZSBSZWRvY2x5IE9wZW5BUEkgVlMgQ29kZSBleHRlbnNpb24gcHJvdmlkZXMgZHluYW1pYyBkZXNjcmlwdGlvbnMgb2YgT3BlbkFQSSBmZWF0dXJlcyBpbiB0aGUgY3Vyc29yIGNvbnRleHQgcGFuZWwuIAoKQWNjZXNzIHRoZSBjdXJzb3IgY29udGV4dCBpbiBhbnkgb2YgdGhlIGZvbGxvd2luZyB3YXlzOgoKLSBTZWxlY3QgdGhlICoqT3BlbiBjdXJzb3IgY29udGV4dCoqIGJ1dHRvbiBpbiB0aGUgdXBwZXIgcmlnaHQgc2VjdGlvbiBvZiB5b3VyIFZTIENvZGUgd2luZG93LgoKLSBPcGVuIHRoZSAqQ29tbWFuZCBQYWxldHRlKiwgc3RhcnQgdHlwaW5nIGByZWRvY2x5YCwgdGhlbiBzZWxlY3QgKlJlZG9jbHkgT3BlbkFQSTogT3BlbiBjdXJzb3IgY29udGV4dCouCgpCb3RoIGFjdGlvbnMgb3BlbiB0aGUgKkN1cnNvciBjb250ZXh0KiBwYW5lbC4KCkFzIHlvdSBwbGFjZSB5b3VyIGN1cnNvciBpbnRvIGRpZmZlcmVudCBzZWN0aW9ucyBvZiB5b3VyIE9wZW5BUEkgZG9jdW1lbnQsIHRoZSBjb250ZXh0LWF3YXJlIGRlc2NyaXB0aW9ucyBpbiB0aGUgcGFuZWwgY2hhbmdlIHRvIG1hdGNoIHRoZSBleGFjdCBvYmplY3Qgb3IgcHJvcGVydHkgeW91J3JlIGVkaXRpbmcuCgohW1VzaW5nIHRoZSBjdXJzb3IgY29udGV4dCBwYW5lbF0oaHR0cHM6Ly9yZWRvYy5seS9pbWFnZXMvdnNjb2RlL29wZW5hcGktdnNjb2RlLWNvbnRleHQtZXhwbG9yZXIucG5nKQoKRm9yIHN1cHBvcnRlZCBzZWN0aW9ucywgdGhlICpDdXJzb3IgY29udGV4dCogcGFuZWwgY2FuIGFsc28gZGlzcGxheSBhIHZpc3VhbCBlZGl0b3Igd2hlcmUgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbnRlbnRzIG9mIHlvdXIgQVBJIGRlZmluaXRpb24gdGhyb3VnaCBpbnRlcmFjdGl2ZSBmb3Jtcy4KCiFbVXNpbmcgdGhlIHZpc3VhbCBlZGl0b3JdKGh0dHBzOi8vcmVkb2MubHkvaW1hZ2VzL3ZzY29kZS9yZWRvY2x5LXZzY29kZS12aXN1YWwtZWRpdG9yLmdpZikKCkRlcGVuZGluZyBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHNlY3Rpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQsIHRoZSAqQ3Vyc29yIGNvbnRleHQqIHBhbmVsIG1heSBzaG93IHRyaXBsZSBiYXIgKCJoYW1idXJnZXIiKSBpY29ucyB0byB0aGUgbGVmdCBvZiBlYWNoIGlucHV0IGZpZWxkIGluIHRoZSB2aXN1YWwgZWRpdG9yLiBVc2UgdGhlc2UgaWNvbnMgdG8gY2hhbmdlIHRoZSBvcmRlciBvZiBmaWVsZHMgaW4gdGhlIHBhbmVsLiBUbyByZW9yZGVyIGEgZmllbGQsIHNlbGVjdCB0aGUgdHJpcGxlIGJhciBpY29uIG5leHQgdG8gaXQsIHRoZW4gZHJhZy1hbmQtZHJvcCBpdCB1cCBvciBkb3duIGluIHRoZSBwYW5lbC4KClRvIGV4aXQsIGNsb3NlIHRoZSAqQ3Vyc29yIGNvbnRleHQqIHBhbmVsLiBZb3UgY2FuIG9wZW4gaXQgYWdhaW4gYXQgYW55IHBvaW50LgoKCiMjIEtub3duIGlzc3VlcwoKLSBJbnRlcmFjdGl2ZSBmb3JtcyBhcmUgc3VwcG9ydGVkIG9ubHkgZm9yIGBpbmZvYCwgYHNlcnZlcmAsIGB0YWdzYCBhbmQgYGV4dGVybmFsRG9jc2Agc2VjdGlvbnMgaW4gdGhlIGN1cnJlbnQgdmVyc2lvbi4KCi0gQXV0b2NvbXBsZXRpb24gc3VwcG9ydCBpcyBsaW1pdGVkIGluIHRoZSBjdXJyZW50IHZlcnNpb24uCgotIFRoZSBgcmVkb2NseS55YW1sYCBmaWxlIG11c3QgYmUgc2F2ZWQgdG8gZGlzayAoQ3RybCtTKSBmb3IgY2hhbmdlcyB0byBhcHBseS4KCgojIyBUcm91Ymxlc2hvb3RpbmcKCklmIHlvdSBzdXNwZWN0IHRoZSBleHRlbnNpb24gaXMgbm90IHdvcmtpbmcgcHJvcGVybHksIG1ha2Ugc3VyZSB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHRydWU6CgotIHRoZSBleHRlbnNpb24gaXMgZW5hYmxlZCBpbiB0aGUgY3VycmVudCBWUyBDb2RlIHdvcmtzcGFjZSAob3IgZ2xvYmFsbHkpCi0gYSBub24tZW1wdHkgYHJlZG9jbHkueWFtbGAgY29uZmlndXJhdGlvbiBmaWxlIGV4aXN0cyBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgeW91ciB3b3Jrc3BhY2UKLSB5b3VyIEFQSSBkZWZpbml0aW9uIGZpbGUgaXMgaW4gdGhlIFlBTUwgZm9ybWF0CgoKIyMgTGljZW5zZQoKSW5zdGFsbGF0aW9uIGFuZCB1c2FnZSBvZiB0aGUgZXh0ZW5zaW9uIGFyZSBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgW1JlZG9jbHkgU3Vic2NyaXB0aW9uIGFncmVlbWVudF0oaHR0cHM6Ly9yZWRvYy5seS9zdWJzY3JpcHRpb24tYWdyZWVtZW50LykuCgo= readmeEtag: '"29a324ffdfa0a7a8ee8923371921b405142f8647"' readmeLastModified: Wed, 17 Apr 2024 13:20:02 GMT repositoryId: 424036264 description: Redocly VS Code extension created: '2021-11-03T00:03:16Z' updated: '2024-06-30T23:14:20Z' language: null archived: false stars: 35 watchers: 17 forks: 6 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 repoEtag: '"df607566ab4facebb582c8bc4472eeaa7be85a8f1c4e7eddffe3a63cdc7a1fa6"' repoLastModified: Sun, 30 Jun 2024 23:14:20 GMT foundInMaster: true - source: https://openapi.tools/ name: Api-Fiddle category: GUI Editors language: - TypeScript - Saas link: https://www.api-fiddle.com/ source_description: > Opinionated API design platform built for collaboration and exploration. Create API designs for technical documents, specifications, and reviews. v2: false v3: false v3_1: true id: 83324f57ad5dff50e50148a8f4b6eef3 foundInMaster: true - source: https://openapi.tools/ name: Stoplight Studio category: - GUI Editors - Text Editors language: SaaS link: https://stoplight.io/studio source_description: > Stoplight Studio is a powerful GUI/text editor with linting and mocking built right in. The desktop version has been discontinued, but it runs in the browser, powered by your existing GitHub, GitLab, or BitBucket repos. v2: true v3: true v3_1: true foundInMaster: true id: 8348b06da005508392b6fa17c12d3ca4 - source: - https://openapi.tools/ - openapi3 tags name: Hackolade category: - GUI Editors - Parsers language: ReactJS link: https://hackolade.com repository: https://github.com/hackolade/openapi source_description: > A visual editor for OpenAPI v2/v3, from the pioneer in data modeling for NoSQL databases. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJClBsdWdpbiB0byBlbmFibGUgT3BlbkFQSSAzIGFzIGEgdGFyZ2V0IGluIEhhY2tvbGFkZSBkYXRhIG1vZGVsaW5nLiAgUmVxdWlyZXMgcHJpb3IgZG93bmxvYWQgb2YgdGhlIEhhY2tvbGFkZSBhcHBsaWNhdGlvbiBmcm9tIG91ciBbZG93bmxvYWQgcGFnZV0oaHR0cHM6Ly9oYWNrb2xhZGUuY29tL2Rvd25sb2FkLmh0bWwpCgpUaGlzIHBsdWdpbiBpcyBmb3IgT3BlbkFQSSAzLiAgSWYgaW5zdGVhZCB5b3UgbmVlZCBTd2FnZ2VyIDIsIHlvdSBuZWVkIGEgc2VwYXJhdGUgcGx1Z2luIGFjY2Vzc2libGUgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9oYWNrb2xhZGUvU3dhZ2dlcikuCgpTdGFydGluZyB3aXRoIEhhY2tvbGFkZSBTdHVkaW8gdjYuMTAuMCwgdGhpcyBwbHVnaW4gYWxzbyBzdXBwb3J0cyBPQVMgMy4xLngKCjxzcGFuIGNsYXNzPSJydnRzNzgiPk9wZW5BUEkgU3BlY2lmaWNhdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0icnZ0czc3Ij7CoG9yIE9BUyAoZm9ybWVybHkga25vd24gYXPCoDwvc3Bhbj48c3BhbiBjbGFzcz0icnZ0czc4Ij5Td2FnZ2VyIFNwZWNpZmljYXRpb248L3NwYW4+PHNwYW4gY2xhc3M9InJ2dHM3NyI+KSBpcyBhbiBvcGVuLXNvdXJjZSBmb3JtYXQgZm9yIGRlc2NyaWJpbmcgYW5kIGRvY3VtZW50aW5nIEFQSXMuIEl0IGhhcyBiZWNvbWUgYSBkZS1mYWN0byBzdGFuZGFyZCw8L3NwYW4+IDxzcGFuIGNsYXNzPSJydnRzNiI+bGFuZ3VhZ2UtYWdub3N0aWMgaW50ZXJmYWNlPC9zcGFuPiA8c3BhbiBjbGFzcz0icnZ0czc3Ij5mb3IgZGVzaWduaW5nIGFuZCBkZXNjcmliaW5nIFJFU1RmdWwgQVBJczwvc3Bhbj4gPHNwYW4gY2xhc3M9InJ2dHM2Ij53aGljaCBhbGxvdyBib3RoIGh1bWFucyBhbmQgY29tcHV0ZXJzIHRvIGRpc2NvdmVyIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIHNlcnZpY2Ugd2l0aG91dCBhY2Nlc3MgdG8gc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24sIG9yIHRocm91Z2ggbmV0d29yayB0cmFmZmljIGluc3BlY3Rpb24uIMKgV2hlbiBwcm9wZXJseSBkZWZpbmVkIHZpYSBPcGVuQVBJLCBhIGNvbnN1bWVyIGNhbiB1bmRlcnN0YW5kIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSByZW1vdGUgc2VydmljZSB3aXRoIGEgbWluaW1hbCBhbW91bnQgb2YgaW1wbGVtZW50YXRpb24gbG9naWMuPC9zcGFuPjxzcGFuIGNsYXNzPSJydnRzNzciPlRoZSBsYXRlc3QgdmVyc2lvbiBvZiBPcGVuQVBJIGlzwqA8L3NwYW4+PHNwYW4gY2xhc3M9InJ2dHM3OCI+My4wLjI8L3NwYW4+PHNwYW4gY2xhc3M9InJ2dHM3NyI+LiBPcGVuQVBJIGRlZmluaXRpb25zIGNhbiBiZSB3cml0dGVuIGluIEpTT04gb3IgWUFNTC48L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+T3BlbkFQSSBpcyBhPC9zcGFuPiBbZm9ybWFsIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kKSA8c3BhbiBjbGFzcz0icnZ0czYiPnN1cnJvdW5kZWQgYnkgYSBsYXJnZSBlY29zeXN0ZW0gb2YgdG9vbHMsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgZnJvbSBmcm9udC1lbmQgdXNlciBpbnRlcmZhY2VzLCBsb3ctbGV2ZWwgY29kZSBsaWJyYXJpZXMgYW5kIGNvbW1lcmNpYWwgQVBJIG1hbmFnZW1lbnQgc29sdXRpb25zLjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+ICAKPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij5UbyBwZXJmb3JtIG1vZGVsLWZpcnN0IGRlc2lnbiBvZiBhIFJFU1QgQVBJIHVzaW5nIE9wZW5BUEkgMyB3aXRoIEhhY2tvbGFkZSwgeW91IG11c3QgZmlyc3QgZG93bmxvYWQgdGhlIE9wZW5BUEk8L3NwYW4+IFtwbHVnaW5dKERvd25sb2FkYWRkaXRpb25hbERCdGFyZ2V0cGx1Z2luLmh0bWwpPHNwYW4gY2xhc3M9InJ2dHM2Ij4uIMKgVGhpcyBwbHVnaW4gaXMgc3RyaWN0bHkgY29tcGxpYW50IHdpdGggdmVyc2lvbiAzLjAuMiBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLiDCoElmIHlvdSBuZWVkIHN1cHBvcnQgdmVyc2lvbiAyIG9mIHRoZSBzcGVjaWZpY2F0aW9uIChhLmsuYS4gU3dhZ2dlcikgeW91IG5lZWQgYW5vdGhlciBwbHVnaW4gZGVzY3JpYmVkPC9zcGFuPiBbaGVyZV0oU3dhZ2dlckFQSS5odG1sKTxzcGFuIGNsYXNzPSJydnRzNiI+Ljwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzMjEiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzMjEiPkNyZWF0aW5nIEFQSXMgaXMgbm90IGVhc3khIEFuZCB3cml0aW5nIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBpbiBhIGRlc2lnbi1maXJzdCBhcHByb2FjaCBjYW4gYmUgdGVkaW91cyBhdCBiZXN0LCBnZW5lcmFsbHkgZXJyb3ItcHJvbmUgYW5kIGZydXN0cmF0aW5nLi4uIMKgSGFja29sYWRlIHRha2VzIGEgdmlzdWFsIHNjaGVtYS1jZW50cmljIGFwcHJvYWNoIHNvIHlvdSBjYW4gZm9jdXMgb24gdGhlIGNvbnRlbnQgb2YgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4gVGhlIGFwcGxpY2F0aW9uIGFsc28gYXNzaXN0cyB3aXRoIGFsbCB0aGUgbWV0YWRhdGEgdG8gcHJvZHVjZSB2YWxpZGF0ZWQgT3BlbkFQSSBmaWxlcyBhbmQgdGVzdCB0aGUgdHJhbnNhY3Rpb25zLiDCoFlvdSBjYW4gYWxzbyByZXZlcnNlLWVuZ2luZWVyIGV4aXN0aW5nIE9wZW5BUEkgMyBmaWxlcyBpbiBKU09OIG9yIFlBTUwgdG8gcHJvZHVjZSBhIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiB5b3VyIEFQSXMuICBZb3UgbWF5IHdhbnQgdG8gY29uc3VsdCBvdXIgPC9zcGFuPltzdGVwLWJ5LXN0ZXAgdHV0b3JpYWxdKGh0dHBzOi8vaGFja29sYWRlLmNvbS9oZWxwL0NyZWF0ZWFSRVNUQVBJbW9kZWwuaHRtbCkKCjxzcGFuIGNsYXNzPSJydnRzNiI+SGFja29sYWRlIHdhcyBzcGVjaWFsbHkgYWRhcHRlZCB0byBzdXBwb3J0IHRoZSBBUEkgZGVzaWduIG9mIE9BUywgaW5jbHVkaW5nIGFsbCB0aGUgbmVjZXNzYXJ5IG1ldGFkYXRhIGZvciB0aGUgQVBJLCB0aGUgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4gwqBUaGUgYXBwbGljYXRpb24gY2xvc2VseSBmb2xsb3dzIHRoZSB0ZXJtaW5vbG9neSBvZiB0aGUgc3BlY2lmaWNhdGlvbi4gwqBUaGUgdmlzdWFsIHRvb2wgcHV0cyB0aGUgZm9jdXMgb24gd2hhdCByZWFsbHkgbWF0dGVycyBpbiBhbiBBUEk6IHRoZSBzY2hlbWEgb2YgdGhlIGluZm9ybWF0aW9uIGJlaW5nIGV4Y2hhbmdlZCBiZXR3ZWVuIHN5c3RlbXMuIMKgQXQgdGhlIHNhbWUgdGltZSwgaXQgcHJvdmlkZXMgYXNzaXN0YW5jZSB0byBtb2RlbGVycyBhbmQgZG9lcyBub3QgcmVxdWlyZSBwZXJmZWN0IG1hc3Rlcnkgb2YgdGhlIE9wZW5BUEkgMyBzeW50YXguIMKgSXQgZ2VuZXJhdGVzIHZhbGlkYXRlZCBmaWxlcyB0aGF0IGFyZSBzeW50YWN0aWNhbGx5IGNvcnJlY3QgYW5kIGNvbXBhdGlibGUgd2l0aCB0aGUgc3BlY2lmaWNhdGlvbiB0aGVyZWJ5IGdyZWF0bHkgaW1wcm92aW5nIHByb2R1Y3Rpdml0eSBhbmQgcXVhbGl0eS48L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+VGhlIGRpYWdyYW0gYmVsb3cgcmVzdWx0cyBmcm9tIHRoZSByZXZlcnNlLWVuZ2luZWVyaW5nIG9mIHRoZTwvc3Bhbj4gW1BldCBTdG9yZV0oaHR0cHM6Ly9tZXJtYWRlLm9yZy51ay9leGFtcGxlcy9vcGVuYXBpLmpzb24pIDxzcGFuIGNsYXNzPSJydnRzNiI+c2FtcGxlIEFQSS48L3NwYW4+Cgo8aW1nIHNyYz0ibGliL09wZW5BUEkgV29ya3NwYWNlLnBuZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+Cgo8c3BhbiBjbGFzcz0icnZ0czc4Ij4gIAo8L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czc3Ij5Ob3RlIHRoZSB0b29sYmFyIGJ1dHRvbiB0byB0b29nbGUgdGhlIGxldmVsIG9mIGRldGFpbHMgZGlzcGxheWVkIGluIHRoZSBFUiBEaWFncmFtIHZpZXcuIMKgPC9zcGFuPgoKPGltZyBzcmM9ImxpYi9PcGVuQVBJIC0gVG9nZ2xlIGZpZWxkIGRldGFpbHMucG5nIiB3aWR0aD0iMjUlIiBoZWlnaHQ9IjI1JSI+Cgo8c3BhbiBjbGFzcz0icnZ0czc3Ij4gIAo8L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czc3Ij5CeSBkZWZhdWx0IEhhY2tvbGFkZSBkaXNwbGF5cyBhbGwgdGhlIHZhcmlvdXMgd2F5cyBhbiBBUEkgY2FuIGJlIGRlZmluZWQgaW4gT3BlbkFQSS4gwqBPbmNlIHlvdSdyZSBkb25lIGNyZWF0aW5nIHlvdXIgZGVzaWduLCB5b3UgbWF5IHdpc2ggdG8gaGlkZSB0aGUgZXh0cmFuZW91cyBzdHJ1Y3R1cmVzIGFuZCBhZGp1c3QgdGhlIGxheW91dCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgZXh0cmEgcmVhbCBlc3RhdGUgb24gc2NyZWVuLjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNzciPiAgCjwvc3Bhbj4KCiMjIDxzcGFuIGNsYXNzPSJydnRzMCI+PHNwYW4gY2xhc3M9InJ2dHMxNSI+RGF0YSBUeXBlczwvc3Bhbj48L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPlRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZGVzY3JpYmVzIHByaW1pdGl2ZXMgKG9yIHNjYWxhcikgZGF0YSB0eXBlcyB3aGljaCBjYW4gaGF2ZSBhbiBvcHRpb25hbCBwcm9wZXJ0eSBtb2RpZmllciw8L3NwYW4+IDxzcGFuIGNsYXNzPSJydnRzNjkiPmZvcm1hdDwvc3Bhbj48c3BhbiBjbGFzcz0icnZ0czYiPiwgcGx1cyBhIGZpbGUgcHJpbWl0aXZlIHR5cGUuIMKgQ29tcGxleCB0eXBlcyBzdWNoIGFzIGFycmF5cyBhbmQgc3ViLW9iamVjdHMsIHBsdXMgY29tYmluYXRpb25zIHRoZXJlb2YsIGFyZSBhbHNvIGFsbG93ZWQuPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij4gIAo8L3NwYW4+Cgo8aW1nIHNyYz0ibGliL1N3YWdnZXIgZGF0YSB0eXBlcy5wbmciIHdpZHRoPSIyNSUiIGhlaWdodD0iMjUlIj48aW1nIHNyYz0ibGliL1N3YWdnZXIgZGF0YSB0eXBlcyAtIHN0cmluZy5wbmciIHdpZHRoPSIyNSUiIGhlaWdodD0iMjUlIj48aW1nIHNyYz0ibGliL1N3YWdnZXIgZGF0YSB0eXBlcyAtIG51bWJlci5wbmciIHdpZHRoPSIyNSUiIGhlaWdodD0iMjUlIj48aW1nIHNyYz0ibGliL1N3YWdnZXIgZGF0YSB0eXBlcyAtIGludGVnZXIucG5nIiB3aWR0aD0iMjUlIiBoZWlnaHQ9IjI1JSI+CgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij4gIAo8L3NwYW4+CgojIyA8c3BhbiBjbGFzcz0icnZ0czAiPjxzcGFuIGNsYXNzPSJydnRzMTUiPkFQSSBtZXRhZGF0YTwvc3Bhbj48L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPlRoZSBpbmZvIG9iamVjdCwgYXMgd2VsbCBhcyB0aGUgaG9zdCwgYmFzZVBhdGgsIHNjaGVtZXMsIGNvbnN1bWVzLCBwcm9kdWNlcywgdGhlIHNlY3VyaXR5RGVmaW5pdGlvbnMgb2JqZWN0LCB0aGUgc2VjdXJpdHkgb2JqZWN0LCB0aGUgdGFncyBvYmplY3QsIGFuZCBleHRlcm5hbERvY3Mgb2JqZWN0IGFyZSBmaXhlZCBmaWVsZHMgdHJlYXRlZCBhcyBtZXRhZGF0YSBhbmQgbWFpbnRhaW5lZCBhdCBtb2RlbC1sZXZlbCBpbiBIYWNrb2xhZGUuPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij4gIAo8L3NwYW4+Cgo8aW1nIHNyYz0ibGliL09wZW5BUEkgLSBJbmZvIG9iamVjdCAxLnBuZyIgd2lkdGg9IjMzJSIgaGVpZ2h0PSIzMyUiPjxpbWcgc3JjPSJsaWIvT3BlbkFQSSAtIEluZm8gb2JqZWN0IDIucG5nIiB3aWR0aD0iMzMlIiBoZWlnaHQ9IjMzJSI+CjxpbWcgc3JjPSJsaWIvT3BlbkFQSSAtIEluZm8gb2JqZWN0IDMucG5nIiB3aWR0aD0iMzMlIiBoZWlnaHQ9IjMzJSI+Cgo8c3BhbiBjbGFzcz0icnZ0czc4Ij4gIAo8L3NwYW4+CgojIyA8c3BhbiBjbGFzcz0icnZ0czAiPjxzcGFuIGNsYXNzPSJydnRzMTUiPkNvbXBvbmVudHM8L3NwYW4+PC9zcGFuPgoKW0NvbXBvbmVudCBvYmplY3RzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCNjb21wb25lbnRzLW9iamVjdCkgPHNwYW4gY2xhc3M9InJ2dHMzNCI+aG9sZCBhIHNldCBvZiByZXVzYWJsZSBvYmplY3RzPC9zcGFuPiA8c3BhbiBjbGFzcz0icnZ0czgwIj50aGF0IGNhbiBiZSB1c2VkIGFjcm9zcyBtdWx0aXBsZSBlbmRwb2ludHMgaW4gdGhlIHNhbWUgQVBJPC9zcGFuPjxzcGFuIGNsYXNzPSJydnRzMzQiPjogc2NoZW1hLCBwYXJhbWV0ZXIsIHJlcXVlc3QgYm9keSwgcmVzcG9uc2UsIGV4YW1wbGUsIGhlYWRlciwgc2VjdXJpdHkgc2NoZW1lLCBsaW5rLCBvciBjYWxsYmFjay4gQWxsIG9iamVjdHMgZGVmaW5lZCB3aXRoaW4gdGhlIGNvbXBvbmVudHMgb2JqZWN0IHdpbGwgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIEFQSSB1bmxlc3MgdGhleSBhcmUgZXhwbGljaXRseSByZWZlcmVuY2VkIGZyb20gcHJvcGVydGllcyBvdXRzaWRlIHRoZSBjb21wb25lbnRzIG9iamVjdCBieSB1c2luZyBhICRyZWYgcmVmZXJlbmNlIGluIGFueSBwYXRoIGl0ZW0uPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHMzNCI+ICAKPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM3OSI+QXMgeW91IGV4cG9zZSBtb3JlIHJlc291cmNlcyBhbmQgb3BlcmF0aW9ucyBhZ2FpbnN0IHlvdXIgQVBJLCB5b3VyIEFQSSBtYXkgcmVwZWF0IGEgbG90IG9mIGV4aXN0aW5nIHBhcmFtZXRlcnMgb3IgcmVzcG9uc2UgZGVzY3JpcHRpb25zIGluIG1hbnkgZGlmZmVyZW50IHBhdGhzIGFuZCBvcGVyYXRpb25zLiDCoEJ5IGNyZWF0aW5nIHJldXNhYmxlIGNvbXBvbmVudCBvYmplY3RzLCB5b3UgYXZvaWQgdGltZS1jb25zdW1pbmcgcmV3cml0aW5nIGFzIHdlbGwgYXMgdGhlIHJpc2sgb2YgaW5jb25zaXN0ZW5jaWVzLjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNzkiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzMzQiPkRhdGEgdHlwZXMgY2FuIGJlIG9iamVjdHMsIGJ1dCBhbHNvIHByaW1pdGl2ZXMgYW5kIGFycmF5cy4gVGhpcyBvYmplY3QgaXMgYmFzZWQgb24gdGhlwqA8L3NwYW4+W0pTT04gU2NoZW1hIFNwZWNpZmljYXRpb24gV3JpZ2h0IERyYWZ0IDAwIChhLmsuYS4gRHJhZnQtMDUpXShodHRwOi8vanNvbi1zY2hlbWEub3JnLyk8c3BhbiBjbGFzcz0icnZ0czM0Ij7CoGFuZCB1c2VzIGEgcHJlZGVmaW5lZCBzdWJzZXQgb2YgaXQuIE9uIHRvcCBvZiB0aGlzIHN1YnNldCwgdGhlcmUgYXJlIGV4dGVuc2lvbnMgcHJvdmlkZWQgYnkgdGhpcyBzcGVjaWZpY2F0aW9uIHRvIGFsbG93IGZvciBtb3JlIGNvbXBsZXRlIGRvY3VtZW50YXRpb24uPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHMzNCI+ICAKPC9zcGFuPgoKPGltZyBzcmM9ImxpYi9PcGVuQVBJIC0gQ29tcG9uZW50cy5wbmciIHdpZHRoPSI2NiUiIGhlaWdodD0iNjYlIj4KCjxzcGFuIGNsYXNzPSJydnRzMzQiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+Q29uc3VsdDwvc3Bhbj4gW3RoaXMgcGFnZV0oUmV1c2FibGVvYmplY3RzZGVmaW5pdGlvbnMuaHRtbCkgPHNwYW4gY2xhc3M9InJ2dHM2Ij5vciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1c2UgZGVmaW5pdGlvbnMuIMKgRm9yIE9wZW5BUEksIHlvdSBzaG91bGQgbGltaXQgeW91cnNlbGYgdG8gSGFja29sYWRlIG1vZGVsIGRlZmluaXRpb25zLjwvc3Bhbj4KCiMjIDxzcGFuIGNsYXNzPSJydnRzMCI+PHNwYW4gY2xhc3M9InJ2dHMxNSI+UmVzb3VyY2U8L3NwYW4+PC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij5UaGUgcmVzb3VyY2UgcGF0aCBvYmplY3QgaXMgYSBjb250YWluZXIgcmVwcmVzZW50aW5nIHRoZSByZWxhdGl2ZSBwYXRoIHRvIGFuIGluZGl2aWR1YWwgZW5kcG9pbnQuIMKgVGhlIGZpZWxkIG5hbWUgbXVzdCBzdGFydCB3aXRoIGEgc2xhc2ggKCIvIikuIMKgVGhlIHBhdGggaXMgYXBwZW5kZWQgdG8gdGhlIGJhc2VQYXRoIGluIG9yZGVyIHRvIGNvbnN0cnVjdCB0aGUgZnVsbCBVUkwuIMKgUGF0aCB0ZW1wbGF0aW5nICg8L3NwYW4+PHNwYW4gY2xhc3M9InJ2dHMzNCI+dXNhZ2Ugb2YgY3VybHkgYnJhY2VzICgie30iKSB0byBtYXJrIGEgc2VjdGlvbiBvZiBhIFVSTCBwYXRoIGFzIHJlcGxhY2VhYmxlIHVzaW5nIHBhdGggcGFyYW1ldGVyczwvc3Bhbj48c3BhbiBjbGFzcz0icnZ0czYiPikgaXMgYWxsb3dlZC48L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+RWFjaCByZXNvdXJjZSBjb250YWlucyBvbmUgb3IgbW9yZSAiPC9zcGFuPltwYXRoIGl0ZW0gb2JqZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjIubWQjcGF0aEl0ZW1PYmplY3QpPHNwYW4gY2xhc3M9InJ2dHM2Ij4iIG1hZGUgb2YgYSByZXF1ZXN0IGFuZCBvbmUgb3IgbW9yZSByZXNwb25zZXM6PC9zcGFuPgoKPGltZyBzcmM9ImxpYi9PcGVuQVBJIC0gUmVzb3VyY2UgY29udGFpbmVyLnBuZyIgd2lkdGg9IjY2JSIgaGVpZ2h0PSI2NiUiPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij4gIAo8L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPllvdSBtYXkgY3JlYXRlIGEgbmV3IHJlc291cmNlIHZpYSByaWdodC1jbGljayBhbnl3aGVyZSBpbiB0aGUgRVJEIHZpZXcgYW5kIGNob29zaW5nIHRoZSBjb250ZXh0dWFsIG1lbnUgb3B0aW9uOjwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvU3dhZ2dlciAtIEFkZCByZXNvdXJjZSBjb250ZXh0dWFsIG1lbnUucG5nIiB3aWR0aD0iMjUlIiBoZWlnaHQ9IjI1JSI+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+b3IgdmlhIHRoZSBtZW51Ojwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvU3dhZ2dlciAtIEFkZCByZXNvdXJjZSBhY3Rpb24gbWVudS5wbmciIHdpZHRoPSIyNSUiIGhlaWdodD0iMjUlIj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+ICAKPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij5vciB0aGUgdG9vbGJhcjo8L3NwYW4+Cgo8aW1nIHNyYz0ibGliL1N3YWdnZXIgLSBBZGQgcmVzb3VyY2UgdG9vbGJhciBidXR0b24ucG5nIiB3aWR0aD0iMjUlIiBoZWlnaHQ9IjI1JSI+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPiAgCjwvc3Bhbj4KCiMjIDxzcGFuIGNsYXNzPSJydnRzMCI+PHNwYW4gY2xhc3M9InJ2dHMxNSI+UmVxdWVzdHM8L3NwYW4+PC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij5BIHJlcXVlc3QgaXMgYW4gb2JqZWN0IHdpdGggYSB0eXBlLCBhc3NvY2lhdGVkIGRhdGEsIHJlbGF0aW9uc2hpcHMgdG8gb3RoZXIgcmVzb3VyY2VzLCBhbmQgYSBzZXQgb2YgbWV0aG9kcyB0aGF0IG9wZXJhdGUgb24gaXQuIMKgT25seSBhIGZldyBzdGFuZGFyZCBtZXRob2RzIGFyZSBkZWZpbmVkIGZvciB0aGUgcmVzb3VyY2UgKGNvcnJlc3BvbmRpbmcgdG8gdGhlIHN0YW5kYXJkIEhUVFAgR0VULCBQT1NULCBQVVQgYW5kIERFTEVURSBtZXRob2RzPC9zcGFuPjxzcGFuIGNsYXNzPSJydnRzNDQiPi48L3NwYW4+PHNwYW4gY2xhc3M9InJ2dHM2Ij4pPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij4gIAo8L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPlRoZTwvc3Bhbj4gW1BhcmFtZXRlciBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kI3BhcmFtZXRlck9iamVjdCkgPHNwYW4gY2xhc3M9InJ2dHM2Ij5kPC9zcGFuPjxzcGFuIGNsYXNzPSJydnRzNzQiPmVzY3JpYmVzIGEgc2luZ2xlIG9wZXJhdGlvbiBwYXJhbWV0ZXIgZGVmaW5lZCBieSBhIGNvbWJpbmF0aW9uIG9mIGHCoDwvc3Bhbj48c3BhbiBjbGFzcz0icnZ0czIxIj5uYW1lPC9zcGFuPjxzcGFuIGNsYXNzPSJydnRzNzQiPsKgYW5kwqA8L3NwYW4+PHNwYW4gY2xhc3M9InJ2dHMyMSI+bG9jYXRpb248L3NwYW4+PHNwYW4gY2xhc3M9InJ2dHM3NCI+LiDCoEhhY2tvbGFkZSBwcm92aWRlcyBhIGhhbmR5IHRlbXBsYXRlIG9mIHBhcmFtZXRlciB0eXBlcyBhbGxvd2luZyB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHBheWxvYWQgZWl0aGVyIGJ5IGFkZGluZyBhZGRpbmcgaW5kaXZpZHVhbCBmaWVsZHMgb3IgYnkgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgY29tcG9uZW50Ojwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvT3BlbkFQSSAtIFJlcXVlc3QgUGFyYW1ldGVyIDEucG5nIiB3aWR0aD0iNzUlIiBoZWlnaHQ9Ijc1JSI+CjxpbWcgc3JjPSJsaWIvT3BlbkFQSSAtIFJlcXVlc3QgUGFyYW1ldGVyIDIucG5nIiB3aWR0aD0iNzUlIiBoZWlnaHQ9Ijc1JSI+Cgo8c3BhbiBjbGFzcz0icnZ0czc4Ij4gIAo8L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPlRvIGNyZWF0ZSBhIHJlcXVlc3Qgd2l0aGluIGEgcmVzb3VyY2UgY29udGFpbmVyLCB5b3UgbWF5Ojwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+LSByaWdodC1jbGljayBpbnNpZGUgdGhlIGNvbnRhaW5lciBhcmVhIG9mIHRoZSBFUkQgcGFuZSwgYW5kIGNob29zZSB0aGUgY29udGV4dHVhbCBtZW51IG9wdGlvbjo8L3NwYW4+Cgo8aW1nIHNyYz0ibGliL1N3YWdnZXIgLSBBZGQgcmVxdWVzdCBjb250ZXh0dWFsIG1lbnUucG5nIiB3aWR0aD0iMjUlIiBoZWlnaHQ9IjI1JSI+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPi0gY2hvb3NlIHRoZSBBY3Rpb24gbWVudTo8L3NwYW4+Cgo8aW1nIHNyYz0ibGliL1N3YWdnZXIgLSBBZGQgcmVxdWVzdCBhY3Rpb24gbWVudS5wbmciIHdpZHRoPSIyNSUiIGhlaWdodD0iMjUlIj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+LSBjaG9vc2UgdGhlIHRvb2xiYXIgYnV0dG9uOjwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvU3dhZ2dlciAtIEFkZCByZXF1ZXN0IHRvb2xiYXIgYnV0dG9uLnBuZyIgd2lkdGg9IjI1JSIgaGVpZ2h0PSIyNSUiPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij4gIAo8L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czYiPkl0IGlzIGVhc3kgdG8gbWFpbnRhaW4gdGhlIG1ldGFkYXRhIGZvciBhIHJlcXVlc3QgaW4gdGhlIHByb3BlcnRpZXMgcGFuZTo8L3NwYW4+Cgo8aW1nIHNyYz0ibGliL09wZW5BUEkgLSBSZXF1ZXN0IFByb3BlcnRpZXMucG5nIiB3aWR0aD0iMjUlIiBoZWlnaHQ9IjI1JSI+Cgo8c3BhbiBjbGFzcz0icnZ0czc4Ij4gIAo8L3NwYW4+CgojIyA8c3BhbiBjbGFzcz0icnZ0czAiPjxzcGFuIGNsYXNzPSJydnRzMTUiPlJlc3BvbnNlczwvc3Bhbj48L3NwYW4+CgpbUmVzcG9uc2Ugb2JqZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjIubWQjcmVzcG9uc2VzLW9iamVjdCkgPHNwYW4gY2xhc3M9InJ2dHMzNCI+ZGVzY3JpYmUgcmVzcG9uc2VzIGZyb20gQVBJIG9wZXJhdGlvbnMuIMKgRm9yIGVhY2ggcmVxdWVzdCwgeW91IG1heSBjcmVhdGUgb25lIG9yIG1vcmUgcmVzcG9uc2VzLjwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvT3BlbkFQSSAtIFJlc3BvbnNlcy5wbmciIHdpZHRoPSI3NSUiIGhlaWdodD0iNzUlIj4KCjxzcGFuIGNsYXNzPSJydnRzNzgiPiAgCjwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzMzQiPkEgcmVzcG9uc2UgbWF5IGhhdmUgYSBzY2hlbWEgdGhhdCBpcyBkZWZpbmVkIGFzIGluZGl2aWR1YWwgZmllbGRzIG9yIHJlZmVyZW5jZXMgYSBjb21wb25lbnQ6PC9zcGFuPgoKPGltZyBzcmM9ImxpYi9PcGVuQVBJIC0gUmVzcG9uc2Ugc2NoZW1hLnBuZyIgd2lkdGg9Ijc1JSIgaGVpZ2h0PSI3NSUiPgoKPHNwYW4gY2xhc3M9InJ2dHMzNCI+ICAKPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij5UbyBjcmVhdGUgYSByZXNwb25zZSBmb3IgYSBnaXZlbiByZXF1ZXN0LCB5b3UgbWF5Ojwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+LSByaWdodC1jbGljayBvbiB0aGUgcmVxdWVzdCBpbiB0aGUgRVJEIGFuZCBjaG9vc2UgdGhlIGNvbnRleHR1YWwgbWVudSBvcHRpb246PC9zcGFuPgoKPGltZyBzcmM9ImxpYi9Td2FnZ2VyIC0gQWRkIHJlc3BvbnNlIGNvbnRleHR1YWwgbWVudS5wbmciIHdpZHRoPSIxMCUiIGhlaWdodD0iMTAlIj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+LSBvciBjaG9vc2UgdGhlIEFjdGlvbiBtZW51Ojwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvU3dhZ2dlciAtIEFkZCByZXNwb25zZSBhY3Rpb24gbWVudS5wbmciIHdpZHRoPSIxMCUiIGhlaWdodD0iMTAlIj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+LSBvciBjaG9vc2UgdGhlIHRvb2xiYXIgYnV0dG9uOjwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvU3dhZ2dlciAtIEFkZCByZXNwb25zZSB0b29sYmFyIGJ1dHRvbi5wbmciIHdpZHRoPSIxMCUiIGhlaWdodD0iMTAlIj4KCjxzcGFuIGNsYXNzPSJydnRzNiI+ICAKPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij5JdCBpcyBlYXN5IHRvIG1haW50YWluIHRoZSBtZXRhZGF0YSBmb3IgYSByZXNwb25zZSBpbiB0aGUgcHJvcGVydGllcyBwYW5lOjwvc3Bhbj4KCjxpbWcgc3JjPSJsaWIvT3BlbkFQSSAtIFJlc3BvbnNlIHByb3BlcnRpZXMucG5nIiB3aWR0aD0iMTUlIiBoZWlnaHQ9IjE1JSI+Cgo8c3BhbiBjbGFzcz0icnZ0czc4Ij4gIAo8L3NwYW4+CgojIyA8c3BhbiBjbGFzcz0icnZ0czAiPjxzcGFuIGNsYXNzPSJydnRzMTUiPkZvcndhcmQtRW5naW5lZXJpbmc8L3NwYW4+PC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHMzNCI+VGhlIGZpbGVzIGRlc2NyaWJpbmcgdGhlIFJFU1RmdWwgQVBJIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIE9BUyBhcmUgcmVwcmVzZW50ZWQgYXMgSlNPTiBvYmplY3RzIGFuZCBjb25mb3JtIHRvIHRoZSBKU09OIHN0YW5kYXJkcy4gwqBIYWNrb2xhZGUgZ2VuZXJhdGVzIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBpbiBKU09OIGZvcm1hdCBvciBZQU1MIGZvcm1hdC4gwqBUaGUgc2NoZW1hIGV4cG9zZXMgdHdvIHR5cGVzIG9mIGZpZWxkcy4gRml4ZWQgZmllbGRzLCB3aGljaCBoYXZlIGEgZGVjbGFyZWQgbmFtZSwgYW5kIHBhdHRlcm5lZCBmaWVsZHMsIHdoaWNoIGRlY2xhcmUgYSByZWdleCBwYXR0ZXJuIGZvciB0aGUgZmllbGQgbmFtZS4gUGF0dGVybmVkIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSBvY2N1cnJlbmNlcyBhcyBsb25nIGFzIGVhY2ggaGFzIGEgdW5pcXVlIG5hbWUuIMKgVGhlIE9wZW5BUEkgcmVwcmVzZW50YXRpb24gb2YgdGhlIEFQSSBpcyBtYWRlIG9mIGEgc2luZ2xlIGZpbGUuIEhvd2V2ZXIsIHBhcnRzIG9mIHRoZSBkZWZpbml0aW9ucyBjYW4gYmUgc3BsaXQgaW50byBzZXBhcmF0ZSBmaWxlcywgYXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlIHVzZXIuIFRoaXMgaXMgYXBwbGljYWJsZSBmb3IgJHJlZiBmaWVsZHMgaW4gdGhlIHNwZWNpZmljYXRpb24gYXMgZm9sbG93cyBmcm9tIHRoZcKgPC9zcGFuPltKU09OIFNjaGVtYV0oaHR0cDovL2pzb24tc2NoZW1hLm9yZy8pIFtdKGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvKSA8c3BhbiBjbGFzcz0icnZ0czM0Ij5kZWZpbml0aW9ucy48L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czM0Ij4gIAo8L3NwYW4+Cgo8aW1nIHNyYz0ibGliL09wZW5BUEkgLSBGb3J3YXJkLUVuZ2luZWVyaW5nLnBuZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+Cgo8c3BhbiBjbGFzcz0icnZ0czc4Ij4gIAo8L3NwYW4+Cgo8c3BhbiBjbGFzcz0icnZ0czM0Ij5BbiBpbnRlcm5hbCBPcGVuQVBJIHN5bnRheCB2YWxpZGF0b3IgZW5zdXJlcyB0aGF0IHRoZSBnZW5lcmF0ZWQgZmlsZSBpcyB2YWxpZCwgYW5kIHRoZSByaWdodC1oYW5kIHBhbmUgYWxsb3dzIGludGVyYWN0aW9ucyB3aXRoIHRoZSBBUEkgYW5kIHRlc3RpbmcuPC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij4gIAo8L3NwYW4+CgojIyA8c3BhbiBjbGFzcz0icnZ0czAiPjxzcGFuIGNsYXNzPSJydnRzMTUiPlJldmVyc2UtRW5naW5lZXJpbmc8L3NwYW4+PC9zcGFuPgoKPHNwYW4gY2xhc3M9InJ2dHM2Ij5UaGlzIGZ1bmN0aW9uIGxldHMgeW91IHRha2UgYSBPcGVuQVBJIGZpbGUgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBhbmQgZ2VuZXJhdGUgYSBIYWNrb2xhZGUgbW9kZWwuIMKgVGhlbiwgeW91IG1heSBlbnJpY2ggdGhlIG1vZGVsIHdpdGggY29tbWVudHMsIGdlbmVyYXRlIHN0YW5kYXJkIEhhY2tvbGFkZSBkb2N1bWVudGF0aW9uLCBhbmQgbWFrZSB0aGUgQVBJIGV2b2x2ZSB0byBnZW5lcmF0ZSBhIG5ldyBPcGVuQVBJIGZpbGUgdGhyb3VnaCBmb3J3YXJkLWVuZ2luZWVyaW5nLjwvc3Bhbj4K readmeEtag: '"44d2984a839356f1059e17dc156d46a55a0c2aa4"' readmeLastModified: Thu, 25 Jul 2024 12:13:38 GMT repositoryId: 192987405 description: Hackolade(https://hackolade.com) plugin for OpenAPI 3 API documentation created: '2019-06-20T21:05:49Z' updated: '2024-09-05T18:54:38Z' language: JavaScript archived: false stars: 14 watchers: 7 forks: 10 owner: hackolade logo: https://avatars.githubusercontent.com/u/20265734?v=4 license: NOASSERTION repoEtag: '"6ee8aba32e402682d63bee3d0fce804c32060de8d782f9d1ee8bfeb3636795db"' repoLastModified: Thu, 05 Sep 2024 18:54:38 GMT foundInMaster: true id: 0ca14e83c7b680313bbc57c0a56e6c05 v3_1: true - source: https://openapi.tools/ name: Apicurio Studio category: - GUI Editors - Server Implementations language: - Angular 7.0 - Java - Saas link: https://www.apicur.io/ repository: https://github.com/apicurio/apicurio-studio source_description: | Web-Based Open Source API Design via the OpenAPI specification. v2: true v3: true repositoryMetadata: base64Readme: >- IVtWZXJpZnkgQnVpbGQgV29ya2Zsb3ddKGh0dHBzOi8vZ2l0aHViLmNvbS9BcGljdXJpby9hcGljdXJpby1zdHVkaW8vd29ya2Zsb3dzL0J1aWxkJTIwJTI2JTIwVmVyaWZ5L2JhZGdlLnN2ZykKWyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2FwaWN1cmlvLnp1bGlwY2hhdC5jb20vXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3p1bGlwLWpvaW5fY2hhdC1icmlnaHRncmVlbi5zdmcpXShodHRwczovL2FwaWN1cmlvLnp1bGlwY2hhdC5jb20vKQoKIVtBcGljdXJpbyBTdHVkaW9dKC5hc3NldHMvYXBpY3VyaW9fc3R1ZGlvX2xvZ29fZGVmYXVsdC5zdmcpCgojIFRoZSBhcGljdXJpby1zdHVkaW8gcHJvamVjdCAoT3BlbiBTb3VyY2UgQVBJIERlc2lnbiBTdHVkaW8pCgojIyBTdW1tYXJ5CgpUaGlzIGlzIHRoZSBvZmZpY2lhbCBHaXQgcmVwb3NpdG9yeSBmb3IgdGhlIEFwaWN1cmlvIFN0dWRpbyBwcm9qZWN0OiAgaHR0cDovL3d3dy5hcGljdXIuaW8vc3R1ZGlvCgpUaGUgQXBpY3VyaW8gU3R1ZGlvIHByb2plY3QgaXMgYSBzdGFuZGFsb25lIEFQSSBkZXNpZ24gc3R1ZGlvIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlCm5ldyBvciBlZGl0IGV4aXN0aW5nIEFQSSBkZXNpZ25zICh1c2luZyB0aGUgT3BlbkFQSSBvciBBc3luY0FQSSBzcGVjaWZpY2F0aW9ucykuCgojIyBHZXQgdGhlIGNvZGUKClRoZSBlYXNpZXN0IHdheSB0byBnZXQgc3RhcnRlZCB3aXRoIHRoZSBjb2RlIGlzIHRvIFtjcmVhdGUgeW91ciBvd24gZm9ya10oaHR0cDovL2hlbHAuZ2l0aHViLmNvbS9mb3JraW5nLykKb2YgdGhpcyByZXBvc2l0b3J5LCBhbmQgdGhlbiBjbG9uZSB5b3VyIGZvcms6CmBgYGJhc2gKICAkIGdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTo8eW91Pi9hcGljdXJpby1zdHVkaW8uZ2l0CiAgJCBjZCBhcGljdXJpby1zdHVkaW8KICAkIGdpdCByZW1vdGUgYWRkIHVwc3RyZWFtIGdpdDovL2dpdGh1Yi5jb20vYXBpY3VyaW8vYXBpY3VyaW8tc3R1ZGlvLmdpdApgYGAKQXQgYW55IHRpbWUsIHlvdSBjYW4gcHVsbCBjaGFuZ2VzIGZyb20gdGhlIHVwc3RyZWFtIGFuZCBtZXJnZSB0aGVtIG9udG8geW91ciBtYWluOgpgYGBiYXNoCiAgJCBnaXQgY2hlY2tvdXQgbWFpbiAgICAgICAgICAgICAgICMgc3dpdGNoZXMgdG8gdGhlICdtYWluJyBicmFuY2gKICAkIGdpdCBwdWxsIHVwc3RyZWFtIG1haW4gICAgICAgICAgIyBmZXRjaGVzIGFsbCAndXBzdHJlYW0nIGNoYW5nZXMgYW5kIG1lcmdlcyAndXBzdHJlYW0vbWFpbicgb250byB5b3VyICdtYWluJyBicmFuY2gKICAkIGdpdCBwdXNoIG9yaWdpbiAgICAgICAgICAgICAgICAgICAjIHB1c2hlcyBhbGwgdGhlIHVwZGF0ZXMgdG8geW91ciBmb3JrLCB3aGljaCBzaG91bGQgYmUgaW4tc3luYyB3aXRoICd1cHN0cmVhbScKYGBgClRoZSBnZW5lcmFsIGlkZWEgaXMgdG8ga2VlcCB5b3VyICdtYWluJyBicmFuY2ggaW4tc3luYyB3aXRoIHRoZSAndXBzdHJlYW0vbWFpbicuCgojIyBCdWlsZGluZyBhcGljdXJpby1zdHVkaW8KCiMjIyBSZXF1aXJlbWVudHMKLSBNYXZlbiAzLngKLSBKYXZhIDExIG9yIDE3IChyZWNvbW1lbmRlZCkKLSBOb2RlLmpzIGFuZCBOUE0KCgojIyBDb250cmlidXRlIGZpeGVzIGFuZCBmZWF0dXJlcwoKQXBpY3VyaW8gU3R1ZGlvIGlzIG9wZW4gc291cmNlLCBhbmQgd2Ugd2VsY29tZSBhbnlib2R5IHdobyB3YW50cyB0byBwYXJ0aWNpcGF0ZSBhbmQgY29udHJpYnV0ZSEKCklmIHlvdSB3YW50IHRvIGZpeCBhIGJ1ZyBvciBtYWtlIGFueSBjaGFuZ2VzLCBwbGVhc2UgW2xvZyBhbiBpc3N1ZSBpbiBHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGljdXJpby9hcGljdXJpby1zdHVkaW8vaXNzdWVzKSBkZXNjcmliaW5nIHRoZSBidWcgb3IgbmV3IGZlYXR1cmUuIFRoZW4gd2UgaGlnaGx5IHJlY29tbWVuZCBtYWtpbmcgdGhlIGNoYW5nZXMgb24gYSB0b3BpYyBicmFuY2ggbmFtZWQgd2l0aCB0aGUgR2l0SHViIGlzc3VlIG51bWJlci4gRm9yIGV4YW1wbGUsIHRoaXMgY29tbWFuZCBjcmVhdGVzIGEgYnJhbmNoIGZvciBhbiBpc3N1ZSB3aXRoIG51bWJlciAxMjM0OgoKYGBgYmFzaAogICQgZ2l0IGNoZWNrb3V0IC1iIGFwaWN1cmlvLXN0dWRpby0xMjM0CmBgYAoKQWZ0ZXIgeW91J3JlIGhhcHB5IHdpdGggeW91ciBjaGFuZ2VzIGFuZCBhIGZ1bGwgYnVpbGQgKHdpdGggdW5pdCB0ZXN0cykgcnVucyBzdWNjZXNzZnVsbHksIGNvbW1pdCB5b3VyCmNoYW5nZXMgb24geW91ciB0b3BpYyBicmFuY2guIFRoZW4gaXQncyB0aW1lIHRvIGNoZWNrIGZvciBhbmQgcHVsbCBhbnkgcmVjZW50IGNoYW5nZXMgdGhhdCB3ZXJlIG1hZGUgaW4KdGhlIG9mZmljaWFsIHJlcG9zaXRvcnk6CgpgYGBiYXNoCiAgJCBnaXQgY2hlY2tvdXQgbWFpbiAgICAgICAgICAgICAgICMgc3dpdGNoZXMgdG8gdGhlICdtYWluJyBicmFuY2gKICAkIGdpdCBwdWxsIHVwc3RyZWFtIG1haW4gICAgICAgICAgIyBmZXRjaGVzIGFsbCAndXBzdHJlYW0nIGNoYW5nZXMgYW5kIG1lcmdlcyAndXBzdHJlYW0vbWFpbicgb250byB5b3VyICdtYWluJyBicmFuY2gKICAkIGdpdCBjaGVja291dCBhcGljdXJpby1zdHVkaW8tMTIzNCAgICMgc3dpdGNoZXMgdG8geW91ciB0b3BpYyBicmFuY2gKICAkIGdpdCByZWJhc2UgbWFpbiAgICAgICAgICAgICAgICAgIyByZWFwcGxpZXMgeW91ciBjaGFuZ2VzIG9uIHRvcCBvZiB0aGUgbGF0ZXN0IGluIG1haW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChpLmUuLCB0aGUgbGF0ZXN0IGZyb20gbWFpbiB3aWxsIGJlIHRoZSBuZXcgYmFzZSBmb3IgeW91ciBjaGFuZ2VzKQpgYGAKCklmIHRoZSBwdWxsIGdyYWJiZWQgYSBsb3Qgb2YgY2hhbmdlcywgeW91IHNob3VsZCByZXJ1biB5b3VyIGJ1aWxkIHRvIG1ha2Ugc3VyZSB5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGdvb2QuCllvdSBjYW4gdGhlbiBlaXRoZXIgW2NyZWF0ZSBwYXRjaGVzXShodHRwOi8vcHJvZ2l0Lm9yZy9ib29rL2NoNS0yLmh0bWwpIChvbmUgZmlsZSBwZXIgY29tbWl0LCBzYXZlZCBpbiBgfi9hcGljdXJpby1zdHVkaW8tMTIzNGApIHdpdGgKCmBgYGJhc2gKICAkIGdpdCBmb3JtYXQtcGF0Y2ggLU0gLW8gfi9hcGljdXJpby1zdHVkaW8tMTIzNCBvcmdpbi9tYWluCmBgYAoKYW5kIHVwbG9hZCB0aGVtIHRvIHRoZSBKSVJBIGlzc3VlLCBvciB5b3UgY2FuIHB1c2ggeW91ciB0b3BpYyBicmFuY2ggYW5kIGl0cyBjaGFuZ2VzIGludG8geW91ciBwdWJsaWMgZm9yayByZXBvc2l0b3J5CgpgYGBiYXNoCiAgJCBnaXQgcHVzaCBvcmlnaW4gYXBpY3VyaW8tc3R1ZGlvLTEyMzQgICAgICAgICAjIHB1c2hlcyB5b3VyIHRvcGljIGJyYW5jaCBpbnRvIHlvdXIgcHVibGljIGZvcmsgb2YgYXBpY3VyaW8tc3R1ZGlvCmBgYAoKYW5kIFtnZW5lcmF0ZSBhIHB1bGwtcmVxdWVzdF0oaHR0cDovL2hlbHAuZ2l0aHViLmNvbS9wdWxsLXJlcXVlc3RzLykgZm9yIHlvdXIgY2hhbmdlcy4KCldlIHByZWZlciBwdWxsLXJlcXVlc3RzLCBiZWNhdXNlIHdlIGNhbiByZXZpZXcgdGhlIHByb3Bvc2VkIGNoYW5nZXMsIGNvbW1lbnQgb24gdGhlbSwKZGlzY3VzcyB0aGVtIHdpdGggeW91LCBhbmQgbGlrZWx5IG1lcmdlIHRoZSBjaGFuZ2VzIHJpZ2h0IGludG8gdGhlIG9mZmljaWFsIHJlcG9zaXRvcnkuCgpQbGVhc2UgdHJ5IHRvIGNyZWF0ZSBvbmUgY29tbWl0IHBlciBmZWF0dXJlIG9yIGZpeCwgZ2VuZXJhbGx5IHRoZSBlYXNpZXN0IHdheSB0byBkbyB0aGlzIGlzIHZpYSBbZ2l0IHNxdWFzaF0oaHR0cHM6Ly9naXQtc2NtLmNvbS9ib29rL2VuL3YyL0dpdC1Ub29scy1SZXdyaXRpbmctSGlzdG9yeSNTcXVhc2hpbmctQ29tbWl0cykuClRoaXMgbWFrZXMgcmV2ZXJ0aW5nIGNoYW5nZXMgZWFzaWVyLCBhbmQgYXZvaWRzIG5lZWRsZXNzbHkgcG9sbHV0aW5nIHRoZSByZXBvc2l0b3J5IGhpc3Rvcnkgd2l0aCBjaGVja3BvaW50IGNvbW1pdHMuCgojIyBDb2RlIEZvcm1hdHRpbmcKCldoZW4geW91IGFyZSBoYWNraW5nIG9uIHNvbWUgYXBpY3VyaW8tc3R1ZGlvIGNvZGUsIHdlJ2QgcmVhbGx5IGFwcHJlY2lhdGUgaXQgaWYgeW91IGZvbGxvd2VkIHRoZQphcGljdXJpby1zdHVkaW8gY29kaW5nIHN0YW5kYXJkcy4gIElmIHlvdSdyZSB1c2luZyBFY2xpcHNlLCB5b3UgY2FuIGZpbmQgYSBjb2RlIGZvcm1hdHRlciBjb25maWcKZmlsZSBoZXJlOgoKYGBgCi5jb25maWcvZWNsaXBzZS9hcGljdXJpby1lY2xpcHNlLWZvcm1hdHRlci54bWwKYGBgCgpZb3Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wb3J0IHRoYXQgZ3V5IHN0cmFpZ2h0IGludG8gRWNsaXBzZSBieSBnb2luZyB0bwoqV2luZG93LT5QcmVmZXJlbmNlcyA6OiBKYXZhL0NvZGUgU3R5bGUvRm9ybWF0dGVyKgoKSWYgeW91J3JlIHVzaW5nIEludGVsbGlqLCB5b3UgY2FuIGZpbmQgYSBjb2RlIGZvcm1hdHRlciBjb25maWcgZmlsZSBoZXJlOgoKYGBgCi5jb25maWcvaW50ZWxsaWovYXBpY3VyaW8taW50ZWxsaWotZm9ybWF0dGVyLnhtbApgYGA= readmeEtag: '"1bb41e010b9b427ccf6672d25c7ee67bbe986dab"' readmeLastModified: Thu, 15 Aug 2024 15:06:25 GMT repositoryId: 69595482 description: Open Source API Design created: '2016-09-29T18:22:33Z' updated: '2024-09-05T05:13:09Z' language: TypeScript archived: false stars: 982 watchers: 43 forks: 494 owner: Apicurio logo: https://avatars.githubusercontent.com/u/28107283?v=4 license: Apache-2.0 repoEtag: '"9066b6cfa2c6eecd370529c7e202a1554db384edc532c1d5f77a202f05ccc8e6"' repoLastModified: Thu, 05 Sep 2024 05:13:09 GMT foundInMaster: true homepage: https://github.com/Apicurio/apicurio-studio id: efe9656e80c1bf6304903ca5a60fe5a6 - source: - https://openapi.tools/ - openapi3 tags name: OAIE Sketch category: - GUI Editors - Parsers language: Vue.js link: https://www.github.com/OAIE/oaie-sketch repository: https://github.com/oaie/oaie-sketch source_description: > Browser based OpenApi Integrated Editor with side-by side view of the yaml and an interactive graph. v2: false v3: true repositoryMetadata: base64Readme: >- IyBPQUlFIFNrZXRjaApPQUlFIFNrZXRjaCBpcyBhIGJyb3dzZXItYmFzZWQgZWRpdG9yIGZvciBPQVMzIHNwZWMgZG9jdW1lbnRzLiBJdCBvZmZlcnMgYSBzaWRlLWJ5LXNpZGUgWUFNTCBjb2RlIGVkaXRvciBhbmQgdmlzdWFsIGVkaXRvciB3aXRoIGEgZm9jdXMgb24gdGFjdGlsZSBmZWVkYmFjaywgc2ltcGxpY2l0eSBhbmQgcGVyZm9ybWFuY2UuIEl0cyBwaGlsb3NvcGh5IGlzICJzdGF5IGNsb3NlIHRvIHRoZSBjb2RlIGFuZCB2aXN1YWxpemUiLgoKT25saW5lIERlbW86IGh0dHBzOi8vcmF3LmdpdGhhY2suY29tL09BSUUvb2FpZS1za2V0Y2gvbWFzdGVyL3NrZXRjaC5odG1sCgojIyBJbnN0YWxsYXRpb24KQ3VycmVudGx5IE9BSUUgU2tldGNoIGlzIG9ubHkgYSBmZXcgZmlsZXMgcGx1cyBDRE4gbGlua3MuIFNvIHlvdXIgcHJvY2VzcyB0byBnZXQgaXQgcnVubmluZyBpcyBtYW51YWwuCi0gY2xvbmUgcmVwb3NpdG9yeQotIG9wZW4gc2tldGNoLmh0bWwgaW4gYnJvd3NlcgoKIyMgRmVhdHVyZXMKLSBzaG93cyBlYWNoIG9wZXJhdGlvbiBhcyBncmFwaCBub2RlIChwYXRoLCBvcGVyYXRpb25JZCwgc3VtbWFyeSwgcGFyYW1ldGVycykKLSBzaG93cyBlYWNoIHNjaGVtYSBhcyBncmFwaCBub2RlIChuYW1lLCBkZXNjcmlwdGlvbiwgcHJvcGVydGllcykKLSBzaG93cyBlYWNoIHJlbGF0aW9uIGFzIGdyYXBoIGFycm93IChhcnJheS1yZWxhdGlvbnMgYXMgZG90dGVkKQotIGRyYWdnaW5nIGZvciBncmFwaCBub2RlcwotIG1hc3MtbW92ZSB0byBtYWtlIHNwYWNlIGZvciBuZXcgY29udGVudCAodXAvZG93biBhcnJvd3MgaW4gb3BlcmF0aW9uKQotIHF1aWNrIGFjdGlvbiBidXR0b25zIGZvciBhZGRpbmcgcHJvcGVydGllcyBhbmQgc2NoZW1hcwotIGNsaWNraW5nIHNjaGVtYXMgb3IgcHJvcGVydGllcyB3aWxsIHNjcm9sbCB0aGUgZG9jdW1lbnQKLSBkZXRlY3RzIGNoYW5nZXMgYW5kIGNvbG9ycyBzeW5jIGJ1dHRvbnMKLSBjYW4gYWRkIGEgImJha2VkIiB2aXogaW50byB0aGUgZG9jdW1lbnQgYXMgYSB2aWV3ZXIgc3RvcmFnZQotIHVzZXMgdml6IGFzIG1ldGFkYXRhIChub2RlIHBvc2l0aW9uKSBzdG9yYWdlCi0gc3luYyBncmFwaCBpbnRvIHlhbWwsIHN5bmMgeWFtbCBpbnRvIGdyYXBoCi0gYXV0by1zYXZlIGluIGxvY2Fsc3RvcmFnZSBvZiBicm93c2VyCgohW29haWUtc2tldGNoLTIucG5nXShvYWllLXNrZXRjaC0yLnBuZykKCiMjIE9waW5pb25hdGVkIE9BUzMgWUFNTApSZXF1ZXN0cywgUmVzcG9uc2VzIGFuZCBzdWItb2JqZWN0cyBzaG91bGQgYmUgdGhlaXIgb3duIHNjaGVtYSBkZWZpbml0aW9ucy4gTm90ZSB0aGF0IHRoaXMgaXMgYmVzdCBwcmFjdGljZSBhbnl3YXkgaWYgeW91IGV2ZXIgd2FudCB0byBnZW5lcmF0ZSBjbGFzc2VzIGZyb20geW91ciBzcGVjLgoKICAgIGNvbXBvbmVudHM6CiAgICAgIHNjaGVtYXM6CiAgICAgICAgQ2FwYWJpbGl0aWVzUmVxdWVzdDoKICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAtIHNwZWMKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIHNwZWM6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1NwZWMnCiAgICAgICAgQ2FwYWJpbGl0aWVzUmVzcG9uc2U6CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBjYXBhYmlsaXRpZXM6CiAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DYXBhYmlsaXR5JwogICAgICAgIENhcGFiaWxpdHk6CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBtZXRob2Q6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIHNrdVBhdHRlcm46CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgU3BlYzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPQUlFLm5vSW5BcnJvd3MKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBzY2hlZHVsZXM6CiAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9TY2hlZHVsZScKICAgICAgICBTY2hlZHVsZToKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIG1ldGhvZDoKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgZXhwcmVzc2lvbjoKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKCiMjIFZJWgpCZWdpbm5pbmcgZG9jdW1lbnRzIGxpa2UgdGhpcyB3aWxsIGFkZCBhIHZpeiAodmlzdWFsaXNhdGlvbikgaW50byB0aGUgaGVhZGVyICh0aGlzIHdpbGwgc2hvdyB1cCBhcyBhIGdyYXBoaWMgaW4gc3dhZ2dlcik6CgogICAgb3BlbmFwaTogIjMuMC4wIgogICAgaW5mbzoKICAgICAgdmVyc2lvbjogIjAuMC4xIgogICAgICB0aXRsZTogTXkgU2VydmljZQogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIE15IGludHJvZHVjdG9yeSBpbmZvcm1hdGlvbgogICAgICAgIDwhLS1PQUlFLnZpei0tPjwhLS0vT0FJRS52aXotLT4KICAgIC4uLgoKU2tldGNoIHBlcnNpc3RzIGdyYXBoIG5vZGUgcG9zaXRpb25zIHRvIHRoZSBicm93c2VyJ3MgbG9jYWxTdG9yYWdlLCBidXQgd2hlbiBhIHZpeiBpcyBwcmVzZW50LCBpdCB3aWxsIHN0b3JlIGFuZCBsb2FkIGdyYXBoIG5vZGUgcG9zaXRpb25zIHRvIGFuZCBmcm9tIHRoaXMgdml6IChpbnNpZGUgdGhlICZsdDshLS1PQUlFLnZpei0tJmd0OyB0YWcpLgoKIyMgQ2F2ZWF0cwotIEN1cnJlbnRseSBvbmx5IHRlc3RlZCBvbiBDaHJvbWUuCi0gT0FJRSBTa2V0Y2ggaGFzIGFuIG9waW5pb24gYWJvdXQgY29ycmVjdCBkb2N1bWVudCBzdHJ1Y3R1cmU6IGVhY2ggc2NoZW1hIHNob3VsZCBiZSBkZWNsYXJlZCBhcyBhIG5hbWVkIHNjaGVtYS4KLSBsb2NhbCBzdG9yYWdlIGlzIHVzZWQgYXMgcGVyc2lzdGVuY2UuIHRoaXMgbWVhbnMgdGhhdCBjdXJyZW50bHkgaXQgaXMgb25seSBmZWFzaWJsZSB0byBlZGl0IG9uZSBzcGVjIGF0IGEgdGltZSAobXVjaCBsaWtlIHRoZSBTd2FnZ2VyIG9ubGluZSBlZGl0b3IpLgotIE9BSUUgU2tldGNoIGlzIGluIGEgdmVyeSBlYXJseSBzdGFnZSwgcGxlYXNlIGJhY2t1cCB5b3VyIGRvY3VtZW50cyBmcmVxdWVudGx5IG91dHNpZGUgb2YgaXQhCi0gU3luYzogd2hlbiBib3RoIGFyZSB5ZWxsb3csIGZpcnN0IGNsaWNrICI8LSB1cGRhdGUgaW5saW5lIHZpeiIsIHRoZW4gInVwZGF0ZSBmcm9tIGVkaXRvciAtPiIKCiMjIFRPRE8KLSBkb2N1bWVudGF0aW9uCi0gZmluZCBjb250cmlidXRvcnMKLSBtYXJrZXRpbmcKLSBzZWUgUHJvamVjdHMgdGFiIGZvciBwbGFubmVkIGZlYXR1cmVzCgojIyBDb250cmlidXRpbmcKLSBXZSB3YW50IHRvIG1haW50YWluIGEgZm9jdXMgb24gdGhlIGNvZGUuCi0gV2Ugd2FudCB0byBmYWNpbGl0YXRlIHdyaXRpbmcgYmV0dGVyIHNwZWNzLgotIFdlIHdhbnQgdG8gbWFrZSB3cml0aW5nIHNwZWNzIGVhc2llciBhbmQgZ2l2ZSBhbiBlYXNpZXIgbGVhcm5pbmcgY3VydmUuCi0gV2Ugd2FudCB0byBiZSBhcyBsaWdodHdlaWdodCBhcyBwb3NzaWJsZSAoY3VycmVudGx5IG5lZWRzIFZ1ZSwgSlMtWUFNTCwgalF1ZXJ5LCBqUXVlcnkgVUkgLSBoZWxwIG9uIHJlbW92aW5nIGpRdWVyeSBhcHByZWNpYXRlZCEpLgotIFdlIHdhbnQgdG8ga2VlcCB0aGUgZGVwZW5kZW5jeSB0byBsaWJyYXJpZXMgYXMgbG93IGFzIHBvc3NpYmxlLgo= readmeEtag: '"5c70fc3576325791048b134c65f5e9b26df07ba9"' readmeLastModified: Wed, 09 Dec 2020 09:27:25 GMT repositoryId: 251551520 description: OpenAPI Visual Editor created: '2020-03-31T09:03:18Z' updated: '2024-09-05T11:05:14Z' language: HTML archived: false stars: 64 watchers: 6 forks: 10 owner: OAIE logo: https://avatars.githubusercontent.com/u/62933192?v=4 license: MIT repoEtag: '"bde1a1d894c417de4b6069b989519db6d25c67e074cc1c155e642b736a265c1a"' repoLastModified: Thu, 05 Sep 2024 11:05:14 GMT foundInMaster: true id: 1559682e19f96b7e2025e28b33915bed - source: https://openapi.tools/ name: OpenAPI Designer category: GUI Editors language: SaaS link: https://openapidesigner.com source_description: >- OpenAPI Designer is an easy-to-use, free, web-based, codeless description document editor with JSON and YAML outputs. v3: true v3_1: true id: 113b3e287451017a1bfd30a88f5aa402 foundInMaster: true - source: https://openapi.tools/ name: ApiBldr category: GUI Editors language: - Angular 9.0 - Saas link: https://www.apibldr.com/ source_description: | Web-Based API Designer for OpenAPI (swagger) and AsyncAPI specifications. v2: true v3: true foundInMaster: true id: 2e1e071de0cefab924eba4860c14f63f - source: https://openapi.tools/ name: RestCase Designer category: GUI Editors language: - Angular 9.0 - Saas link: https://www.restcase.com/platform/design source_description: > A design-first API managment platform with WYSIWYG API Designer for OpenAPI and AsyncAPI specifications. v2: true v3: true foundInMaster: true id: 034f272138f88f0a55801dae0857323a - source: https://openapi.tools/ name: Frogment Editor category: GUI Editors language: - Desktop - SaaS link: https://www.frogment.com source_description: > A free openAPI spec editor and linter that breaks down your spec into fragments to make editing easier and more intuituve. v2: false v3: true v3_1: true id: 372fe64c1e2965a75c3a3e3b1ccc5eaa foundInMaster: true - source: https://openapi.tools/ name: Meeshkan category: - Testing - Mock language: SaaS link: https://meeshkan.com/ source_description: >- Meeshkan is an automated testing and mocking tool. It offers first-class support for GraphQL APIs, but Meeshkan is also built to handle REST APIs and third-party dependencies. v2: false v3: true id: bfa5bf187387df6760e4366cf73a63b4 foundInMaster: true - source: https://openapi.tools/ name: Response2Schema category: - Learning - Parsers language: PHP link: https://github.com/dsuurlant/response2schema source_description: >- Takes any JSON response and generates an OpenAPI definition document with the component schema and a default endpoint. v2: false v3: true foundInMaster: true repository: https://github.com/dsuurlant/response2schema repositoryMetadata: base64Readme: >- IyBSZXNwb25zZTJTY2hlbWEKCkEgcXVpY2sgJ24gZWFzeSB3YXkgdG8gZ2VuZXJhdGUgeW91ciBPcGVuQVBJIHNwZWMgYmFzZWQgb24gYSBKU09OIG9iamVjdC4gVXNlZnVsIGZvciBib290c3RyYXBwaW5nIHlvdXIgY29tcG9uZW50CiBzY2hlbWFzLiBUaGlzIGlzIGludGVuZGVkIHRvIGJlIGEgc3RhcnRpbmcgcG9pbnQgZm9yIHdyaXRpbmcgeW91ciBzcGVjaWZpY2F0aW9uLCBhcyB0aGUgdG9vbCBjYW5ub3QgaW5mZXIgdHlwZXMgc3VjaAogIGFzIGVudW0sIG9uZU9mLCBtYXhpbXVtL21pbmltdW0sIGFuZCBzbyBvbi4gSXQgYWxzbyBkb2VzIG5vdCBzdXBwb3J0IGdlbmVyYXRpbmcgZW5kcG9pbnRzIG9yIGVycm9yIHJlc3BvbnNlcy4gQWxsCiAgIGl0IGRvZXMgaXMgdGFrZSB5b3VyIEpTT04gb2JqZWN0IGFuZCB0dXJucyBpdCBpbnRvIGFuIE9wZW5BUEkgc2NoZW1hIG9iamVjdCwgYWxvbmcgd2l0aCBhIHNpbXBsZSBleGFtcGxlIHNwZWMgdGhhdAogICAgeW91IGNhbiBleHBhbmQgb24uCiAgICAKU3VwcG9ydHMgZ2VuZXJhdGluZyBhbiBPcGVuQVBJIHNwZWMgaW4gYEpTT05gIG9yIGB5YW1sYC4KCiMgSW5zdGFsbGF0aW9uCgpgY29tcG9zZXIgcmVxdWlyZSBkc3V1cmxhbnQvcmVzcG9uc2Uyc2NoZW1hYAoKT3IgZG93bmxvYWQgdGhlIHBoYXIgZnJvbSB0aGUgW1JlbGVhc2VzIHBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9kc3V1cmxhbnQvcmVzcG9uc2Uyc2NoZW1hL3JlbGVhc2VzKS4KCiMgVXNhZ2UKCkp1c3QgcG9pbnQgUmVzcG9uc2UyU2NoZW1hIHRvIHlvdXIgaW5wdXQganNvbiBmaWxlLCBhbmQgdGVsbCBpdCB3aGVyZSB0byBwdXQgdGhlIG91dHB1dCBPcGVuQVBJIHNwZWMuCgpJdCB3aWxsIGF1dG9tYXRpY2FsbHkgZm9ybWF0IGl0IHRvIGpzb24gb3IgeWFtbCBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBvdXRwdXQgcGF0aC4KCmAuL3ZlbmRvci9iaW4vcmVzcG9uc2Uyc2NoZW1hIHJlc3BvbnNlLmpzb24gb3BlbmFwaS55YW1sYAoKT3Igd2hlbiB1c2luZyB0aGUgcGhhcjoKCmAuL3Jlc3BvbnNlMnNjaGVtYS5waGFyIHJlc3BvbnNlLmpzb24gb3BlbmFwaS55YW1sYAoKIyBFeGFtcGxlCgpHaXZlbiBhIHZlcnkgc2ltcGxlIHJlc3BvbnNlOgoKYGBganNvbgp7CiAgICAiaWQiOiAxLCAgCiAgICAibmFtZSI6ICJFeGFtcGxlIFJlc3BvbnNlIgp9CmBgYAoKUmVzcG9uc2UyU2NoZW1hIGdlbmVyYXRlcyB0aGUgZm9sbG93aW5nIHNwZWM6CgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgdGl0bGU6ICdPcGVuQVBJIHNwZWNpZmljYXRpb24gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgUmVzcG9uc2UyU2NoZW1hLicKICBkZXNjcmlwdGlvbjogJ1BsZWFzZSBhZGFwdCB0aGlzIHNwZWNpZmljYXRpb24gdG8geW91ciBvd24gbmVlZHMuJwogIHZlcnNpb246IDEuMC4wCnBhdGhzOgogIC9yZXNvdXJjZToKICAgIGdldDoKICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBvZiB0aGUgZW5kcG9pbnQnCiAgICAgIG9wZXJhdGlvbklkOiBnZXRSZXNvdXJjZQogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uIG9mIHRoaXMgcmVzcG9uc2UuJwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUmVzb3VyY2UnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFJlc291cmNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCmBgYAoKSXQgd2lsbCBhbHdheXMgZ2VuZXJhdGUgdGhlIGV4YW1wbGUgZW5kcG9pbnQgYW5kIGEgc2NoZW1hIG5hbWVkICdSZXNvdXJjZScuCgpUaGUgYmVzdCB3YXkgdG8gdXNlIHRoaXMgdG9vbCBpcyB0byB0YWtlIHRoaXMgYXMgYSBzdGFydGluZyBwb2ludCwgb3IgY29weS1wYXN0ZSB0aGUgc2NoZW1hIGRlZmluaXRpb24gdG8geW91ciBvd24KIE9wZW5BUEkgc3BlYy4KIAojIENyZWRpdHMKCkJ1aWx0IGFuZCBtYWludGFpbmVkIGJ5IFtEYW5pw6tsbGUgU3V1cmxhbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kc3V1cmxhbnQpLgoKUmVsaWVzIGhlYXZpbHkgb24gdGhlIGF3ZXNvbWUgUEhQIE9wZW5BUEkgbGlicmFyeSBbY2ViZS9waHAtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2NlYmUvcGhwLW9wZW5hcGkpLgoK readmeEtag: '"112e223871be1155102dc38aa7911ef203e0dac3"' readmeLastModified: Mon, 09 Oct 2023 08:32:37 GMT repositoryId: 266575464 description: A quick and easy tool for generating OpenAPI schemas. created: '2020-05-24T16:00:11Z' updated: '2024-05-21T12:49:07Z' language: PHP archived: false stars: 84 watchers: 4 forks: 4 owner: dsuurlant logo: https://avatars.githubusercontent.com/u/4609379?v=4 license: MIT repoEtag: '"bfe981de306f55cbf0a670c1ccf721699f651156ee11dd45a3c8ec9117e3fb8a"' repoLastModified: Tue, 21 May 2024 12:49:07 GMT id: ee1da7e4ea9bb6a42233ac4702ceebf7 - source: https://openapi.tools/ name: InducOapi category: - Learning - Parsers language: Python link: https://pypi.org/project/inducoapi repository: https://github.com/thewall89/inducoapi source_description: >- A simple python module to generate OpenAPI Description Documents by supplying request/response bodies. v2: false v3: true repositoryMetadata: base64Readme: >- IyBJbmR1Y09hcGkKClshW2NpXShodHRwczovL2dpdGh1Yi5jb20vVGhlV2FsbDg5L2luZHVjb2FwaS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2dpdGh1Yi5jb20vVGhlV2FsbDg5L2luZHVjb2FwaS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwpClshW1B5UEkgdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL3B5L2luZHVjb2FwaS5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcHkvaW5kdWNvYXBpKQoKQSBzaW1wbGUgcHl0aG9uIG1vZHVsZSB0byBnZW5lcmF0ZSBPcGVuQVBJIERlc2NyaXB0aW9uIERvY3VtZW50cyBieSBzdXBwbHlpbmcgcmVxdWVzdC9yZXNwb25zZSBib2RpZXMuCgoqQ29udHJpYnV0aW9ucyBmb3IgbmV3IGZlYXR1cmVzLCBmaXhlcyBvciBpbXByb3ZlbWVudHMgYXJlIHdlbGNvbWUuIEZlZWwgZnJlZSB0byBzZW5kIGEgcHVsbCByZXF1ZXN0LioKCiMjIE1vdGl2YXRpb24KClNvbWV0aW1lcyB5b3UgaGF2ZSBhIGZ1bGx5IGZ1bmN0aW9uaW5nIEhUVFAgc2VydmljZSB3aXRob3V0IE9wZW5BUEkgZG9jdW1lbnRhdGlvbi4gQXQgc29tZSBwb2ludCBpbiB0aW1lLCBvdGhlcnMgbWF5Cm5lZWQgdG8gdXNlIHlvdXIgc2VydmljZS4gV3JpdGluZyB0aGUgZG9jdW1lbnRhdGlvbiBieSBoYW5kIGlzIGEgcGFpbiBhbmQgY2FuIGZlZWwgbGlrZSBhbiBvdmVyd2hlbG1pbmcgam9iIGZvciBjb21wbGV4CnNlcnZpY2VzLgoqaW5kdWNvYXBpKiBoZWxwcyB5b3UgZ2VuZXJhdGUgeW91ciBPcGVuQVBJIERlc2NyaXB0aW9uIERvY3VtZW50cyBieSB0YWtpbmcgYXMgaW5wdXQgcmVxdWVzdC9yZXNwb25zZSBleGFtcGxlcyBwbHVzIHNvbWUKb3RoZXIgaW5mb3JtYXRpb24uCgpUaGUgZ2VuZXJhdGVkIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBpcyB2YWxpZGF0ZWQKd2l0aCBbb3BlbmFwaS1zcGVjLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3AxYzJ1L29wZW5hcGktc3BlYy12YWxpZGF0b3IpLgoKKldhcm5pbmcqOiBUaGlzIHByb2dyYW0gYWxzbyBnZW5lcmF0ZXMgdGhlIGBleGFtcGxlYCBmaWVsZHMgaW4gT3BlbkFQSSBzY2hlbWFzIGJ5IGRlZmF1bHQuIElmIHlvdSBoYXZlIHNlbnNpdGl2ZSBkYXRhIGluCnlvdXIgcmVxdWVzdC9yZXNwb25zZSBmaWxlcywgZGlzYWJsZSB0aGlzIGZlYXR1cmUgd2l0aCBgLS1uby1leGFtcGxlYC4KCiMjIEluc3RhbGxhdGlvbgoKIyMjIFdpdGggYHBpcGAKCmBgYHNoZWxsIHNjcmlwdApwaXAgaW5zdGFsbCBpbmR1Y29hcGkKYGBgCgojIyMgV2l0aCBbcG9ldHJ5XShodHRwczovL3B5dGhvbi1wb2V0cnkub3JnLykKCmBgYHNoZWxsIHNjcmlwdApnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206VGhlV2FsbDg5L2luZHVjb2FwaS5naXQKY2QgaW5kdWNvYXBpCnBvZXRyeSBpbnN0YWxsCmBgYAoKVG8gcnVuIHVuaXQtdGVzdHM6CgpgYGBzaGVsbCBzY3JpcHQKcG9ldHJ5IHJ1biBweXRlc3QKYGBgCgojIyBVc2FnZQoKIyMjIEZyb20gQ0xJCgpgaW5kdWNvYXBpYCBwcm92aWRlcyBpdHMgb3duIGNvbW1hbmQuIFlvdSBjYW4gc2ltcGx5IGV4ZWN1dGUgaXQgd2l0aAoKYGBgc2hlbGwgc2NyaXB0CmluZHVjb2FwaQpgYGAKCklmIHlvdSBnZXQgYSBgY29tbWFuZCBub3QgZm91bmRgIGVycm9yLCB0cnkgdG8gYWN0aXZhdGUgeW91ciB2aXJ0dWFsZW52IG9yIHJ1biBgcG9ldHJ5IHNoZWxsYCBmaXJzdC4KCllvdSBjYW4gYWxzbyBydW4gYGluZHVjb2FwaWAgaW4gdGhlIGNsYXNzaWMgd2F5OgoKYGBgc2hlbGwgc2NyaXB0CnB5dGhvbiAtbSBpbmR1Y29hcGkKYGBgCgojIyMjIEhlbHAKCmBpbmR1Y29hcGlgIHByb3ZpZGVzIGl0cyBvd24gaGVscC4gQ2hlY2sgaXQgb3V0IHdpdGg6CgpgYGBzaGVsbCBzY3JpcHQKcHl0aG9uIC1tIGluZHVjb2FwaSAtaApgYGAKCiMjIyMgRXhhbXBsZXMKCkxldCdzIGNvbnNpZGVyIGEgc2ltcGxlIGNhc2U6IHlvdSBoYXZlIGFuIEhUVFAgc2VydmljZSBtYW5hZ2luZyBlbXBsb3llZXMuIFdlIHdhbnQgdG8gZ2VuZXJhdGUgdGhlIE9wZW5BUEkgRGVzY3JpcHRpb24KRG9jdW1lbnQgZm9yIGEgR0VUIG9uIGFsbCB0aGUgZW1wbG95ZWVzLCByZXR1cm5pbmcgYSAyMDAgc3RhdHVzIGNvZGU6CgpgYGBzaGVsbCBzY3JpcHQKcHl0aG9uIC1tIGluZHVjb2FwaSBHRVQgL2VtcGxveWVlcyAyMDAKYGBgCgo8ZGV0YWlscz48c3VtbWFyeT5vdXRwdXQ8L3N1bW1hcnk+CgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgdGl0bGU6IEdlbmVyYXRlZCBieSBJbmR1Y09hcGkKICB2ZXJzaW9uOiB2MQpwYXRoczoKICAvZW1wbG95ZWVzOgogICAgZ2V0OgogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246ICcnCmBgYAoKPC9kZXRhaWxzPgoKTm93LCBhIEdFVCByZXF1ZXN0IHdpdGggYW4gZW1wdHkgcmVzcG9uc2UgaXMgbm90IHF1aXRlIHVzZWZ1bC4gTGV0J3MgYWRkIGFuIGFyZ3VtZW50IHdpdGggYSBKU09OIGZpbGUgY29udGFpbmluZyBhCnJlc3BvbnNlIGV4YW1wbGUuIElucHV0IGV4YW1wbGVzIGNhbiBiZSBmb3VuZCBpbiBbZXhhbXBsZXNdKGV4YW1wbGVzKS4KCmBgYHNoZWxsIHNjcmlwdApweXRob24gLW0gaW5kdWNvYXBpIEdFVCAvZW1wbG95ZWVzIDIwMCAtLXJlc3BvbnNlIGV4YW1wbGVzL2VtcGxveWVlcy5qc29uCmBgYAoKPGRldGFpbHM+PHN1bW1hcnk+b3V0cHV0PC9zdW1tYXJ5PgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogIHRpdGxlOiBHZW5lcmF0ZWQgYnkgSW5kdWNPYXBpCiAgdmVyc2lvbjogdjEKcGF0aHM6CiAgL2VtcGxveWVlczoKICAgIGdldDoKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogMQogICAgICAgICAgICAgICAgICAgIG5hbWU6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IER3aWdodCBTY2hydXRlCiAgICAgICAgICAgICAgICAgICAgcm9sZToKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogc2FsZXNtYW4KYGBgCgo8L2RldGFpbHM+CgpMZXQncyBhZGQgYSBwYXJhbWV0ZXIgdG8gZmlsdGVyIHRoZSBlbXBsb3llZXMgYnkgbmFtZS4KCmBgYHNoZWxsIHNjcmlwdApweXRob24gLW0gaW5kdWNvYXBpIEdFVCAvZW1wbG95ZWVzIDIwMCAtLXJlc3BvbnNlIGV4YW1wbGVzL2VtcGxveWVlcy5qc29uIC0tcGFyYW1ldGVyIG5hbWUscXVlcnkgCmBgYAoKPGRldGFpbHM+PHN1bW1hcnk+b3V0cHV0PC9zdW1tYXJ5PgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogIHRpdGxlOiBHZW5lcmF0ZWQgYnkgSW5kdWNPYXBpCiAgdmVyc2lvbjogdjEKcGF0aHM6CiAgL2VtcGxveWVlczoKICAgIGdldDoKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246ICcnCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgICAgaWQ6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICAgICAgICAgICAgbmFtZToKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogRHdpZ2h0IFNjaHJ1dGUKICAgICAgICAgICAgICAgICAgICByb2xlOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiBzYWxlc21hbgogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogbmFtZQogICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJwogICAgICAgICAgc2NoZW1hOiB7IH0KYGBgCgo8L2RldGFpbHM+CgpGaW5hbGx5LCBsZXQncyB0cnkgYSBQT1NUIHJlcXVlc3Qgd2l0aCBib3RoIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGV4YW1wbGVzLgoKYGBgc2hlbGwgc2NyaXB0CnB5dGhvbiAtbSBpbmR1Y29hcGkgUE9TVCAvZW1wbG95ZWVzIDIwMSAtLXJlcXVlc3QgZXhhbXBsZXMvbmV3X2VtcGxveWVlX3JlcS5qc29uIC0tcmVzcG9uc2UgZXhhbXBsZXMvbmV3X2VtcGxveWVlX3Jlc3AuanNvbgpgYGAKCjxkZXRhaWxzPjxzdW1tYXJ5Pm91dHB1dDwvc3VtbWFyeT4KCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICB0aXRsZTogR2VuZXJhdGVkIGJ5IEluZHVjT2FwaQogIHZlcnNpb246IHYxCnBhdGhzOgogIC9lbXBsb3llZXM6CiAgICBwb3N0OgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICBuYW1lOgogICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgZXhhbXBsZTogTWljaGFlbCBTY290dAogICAgICAgICAgICAgICAgcm9sZToKICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IG1hbmFnZXIKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMToKICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiA0CiAgICAgICAgICAgICAgICAgIG5hbWU6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogTWljaGFlbCBTY290dAogICAgICAgICAgICAgICAgICByb2xlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IG1hbmFnZXIKYGBgCgo8L2RldGFpbHM+CgpJZiB5b3Ugd2FudCB0byBkaXJlY3RseSB3cml0ZSB0aGUgZ2VuZXJhdGVkIE9wZW5BUEkgRGVzY3JpcHRpb24gRG9jdW1lbnRzIHRvIGEgWUFNTCBmaWxlLCBqdXN0CmFkZCBgLS1vdXRwdXQgb3BlbmFwaS55YW1sYAoKIyMjIEZyb20gcHl0aG9uCgpbdGVzdF9pbmR1Y29hcGkucHldKHRlc3RzL3Rlc3RfaW5kdWNvYXBpLnB5KSBwcm92aWRlcyB1c2FnZSBleGFtcGxlcyBvZiB0aGUgbW9kdWxlIGZyb20gcHl0aG9uLgoKIyMgVE9ETyBsaXN0CgotIFt4XSBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdC9yZXNwb25zZSBmaWxlcyBpbiBZQU1MCi0gW3hdIEFkZCBzdXBwb3J0IGZvciBgYXBwbGljYXRpb24veWFtbGAgY29udGVudAotIFt4XSBDdXN0b21pemUgdGl0bGUgYW5kIHZlcnNpb24gaW4gaW5mbwotIFt4XSBQYWNrYWdlIG1vZHVsZQotIFt4XSBTdXBwb3J0IGZvciBgJHJlZmAgaW4gcmVzcG9uc2Ugc2NoZW1hcwotIFt4XSBBZGQgc3VwcG9ydCBmb3IgYHBhcmFtZXRlcnNgCi0gWyBdIH5+QWRkIHN1cHBvcnQgZm9yIGBsaW5rc2B+fiAoSSBkb24ndCB0aGluayBpdCBpcyB2ZXJ5IHVzZWZ1bCkKLSBbIF0gfn5BZGQgc3VwcG9ydCBmb3IgYGZvcm1hdGB+fiAoaGFyZCB0byBpbmZlcikK readmeEtag: '"f34a0c4cc51a75366cff69cbfd8b5cd731bb3176"' readmeLastModified: Tue, 13 Aug 2024 09:44:38 GMT repositoryId: 232868853 description: >- A simple python module to generate OpenAPI Description Documents by supplying request/response bodies. created: '2020-01-09T17:43:54Z' updated: '2024-08-13T09:44:42Z' language: Python archived: false stars: 15 watchers: 3 forks: 3 owner: TheWall89 logo: https://avatars.githubusercontent.com/u/2626117?v=4 license: Apache-2.0 repoEtag: '"c4ec8839e461e9133eee67a89a9ecdf6d22af21471c7fdf06ac3245e310a6aa7"' repoLastModified: Tue, 13 Aug 2024 09:44:42 GMT foundInMaster: true id: 2829ee121d0fb8321fc8c0dbe2c74103 v3_1: true - source: - https://openapi.tools/ - openapi3 tags name: Prism category: - Mock - Server Implementations language: cli link: https://stoplight.io/open-source/prism repository: https://github.com/stoplightio/prism source_description: >- Turn any OAI file into an API server with mocking, transformations, validations, and more. v2: true v3: true v3_1: true repositoryMetadata: base64Readme: >- WyFbUHJpc20gLSBBUEkgTW9jayBTZXJ2ZXJzIGFuZCBDb250cmFjdCBUZXN0aW5nXShleGFtcGxlcy9yZWFkbWUtaGVhZGVyLnN2ZyldW21vY2tpbmdfbGFuZGluZ19wYWdlXQoKWyFbQ2lyY2xlQ0ldW2NpcmNsZV9jaV9pbWFnZV1dW2NpcmNsZV9jaV0KWyFbTlBNIERvd25sb2Fkc11bbnBtX2ltYWdlXV1bbnBtXQpbIVtTdG9wbGlnaHQgRm9yZXN0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2Vjb2xvZ2kvdHJlZXMvc3RvcGxpZ2h0aW5jKV1bc3RvcGxpZ2h0X2ZvcmVzdF0KCiMgUHJpc20gT3ZlcnZpZXcKClByaXNtIGlzIGEgc2V0IG9mIHBhY2thZ2VzIGZvciBBUEkgbW9ja2luZyBhbmQgY29udHJhY3QgdGVzdGluZyB3aXRoICoqT3BlbkFQSSB2MioqIChmb3JtZXJseSBrbm93biBhcyBTd2FnZ2VyKSBhbmQgKipPcGVuQVBJIHYzLngqKi4KClByaXNtIHByb3ZpZGVzOgoKLSAqKk1vY2sgU2VydmVycyoqOiBMaWZlLWxpa2UgbW9jayBzZXJ2ZXJzIGZyb20gYW55IEFQSSBzcGVjaWZpY2F0aW9uIGRvY3VtZW50LgotICoqVmFsaWRhdGlvbiBQcm94eSoqOiBDb250cmFjdCBUZXN0aW5nIGZvciBBUEkgY29uc3VtZXJzIGFuZCBkZXZlbG9wZXJzLgotICoqQ29tcHJlaGVuc2l2ZSBBUEkgU3BlY2lmaWNhdGlvbiBTdXBwb3J0Kio6IE9wZW5BUEkgdjMuMSwgT3BlbkFQSSB2My4wLCBPcGVuQVBJIHYyLjAgKGZvcm1lcmx5IFN3YWdnZXIpIGFuZCBQb3N0bWFuIENvbGxlY3Rpb25zLgoKIyMgV2F5cyB0byBVc2UgUHJpc20KCiMjIyBIb3N0ZWQgUHJpc20KClN0b3BsaWdodCBwcm92aWRlcyBob3N0ZWQgbW9jayBzZXJ2ZXJzIGZvciBjb252ZW5pZW5jZSBzbyB0aGF0IEFQSSBjb25zdW1lcnMgY2FuIGV4cGVyaW1lbnQgd2l0aCBhbiBBUEkgd2l0aG91dCB0aGUgbmVlZCBmb3IgYmFja2VuZCBjb2RlLgoKVXNlIG9uZSBvZiB0aGVzZSBvcHRpb25zIGZvciBpbnN0YW50LCBob3N0ZWQgbW9jayBzZXJ2ZXJzOgoKLSBbU3RvcGxpZ2h0IFBsYXRmb3JtXShodHRwczovL3N0b3BsaWdodC5pby8/dXRtX3NvdXJjZT1naXRodWIuY29tJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPWdpdGh1Yl9yZXBvX3ByaXNtKTogQ29sbGFib3JhdGl2ZSBBUEkgRGVzaWduIFBsYXRmb3JtIGZvciBkZXNpZ25pbmcsIGRldmVsb3BpbmcgYW5kIGRvY3VtZW50aW5nIEFQSXMgd2l0aCBob3N0ZWQgbW9ja2luZyBwb3dlcmVkIGJ5IFByaXNtLgotIFtTdG9wbGlnaHQgU3R1ZGlvXShodHRwczovL3N0b3BsaWdodC5pby9zdHVkaW8vP3V0bV9zb3VyY2U9Z2l0aHViLmNvbSZ1dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9jYW1wYWlnbj1naXRodWJfcmVwb19wcmlzbSk6IEZyZWUgdmlzdWFsIE9wZW5BUEkgZGVzaWduZXIgdGhhdCBjb21lcyBpbnRlZ3JhdGVkIHdpdGggbW9ja2luZyBwb3dlcmVkIGJ5IFByaXNtLgoKTGVhcm4gbW9yZSBpbiB0aGUgW2hvc3RlZCBQcmlzbSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Muc3RvcGxpZ2h0LmlvL2RvY3MvcGxhdGZvcm0vMzM2Yjc0ZGIzOGM1MC13b3JrLXdpdGgtbW9jay1zZXJ2ZXJzKS4KCiMjIyBTZWxmLWhvc3RlZCBQcmlzbQoKUHJpc20gaXMgYW4gb3Blbi1zb3VyY2UgSFRUUCBzZXJ2ZXIgcnVuIGZyb20gdGhlIGNvbW1hbmQtbGluZS4gSXQgcHJvdmlkZXMgbW9ja2luZywgcmVxdWVzdCB2YWxpZGF0aW9uLCBhbmQgY29udGVudCBuZWdvdGlhdGlvbi4gVXNlIGl0IHN0YW5kYWxvbmUgdG9vbCBvciBpbiBjb250aW51b3VzIGludGVncmF0aW9uLgoKIVtEZW1vIG9mIFByaXNtIE1vY2sgU2VydmVyIGJlaW5nIGNhbGxlZCB3aXRoIGN1cmwgZnJvbSB0aGUgQ0xJXSguL2V4YW1wbGVzL3ByaXNtLWNsaS5zdmcpCgojIyBJbnN0YWxsYXRpb24gYW5kIFVzYWdlCgpUaGlzIGluZm9ybWF0aW9uIHJlZmVycyB0byBPcGVuIFNvdXJjZSBQcmlzbSAzLngsIHdoaWNoIGlzIHRoZSBjdXJyZW50IHZlcnNpb24gbW9zdCBsaWtlbHkgeW91IHdpbGwgdXNlLiBJZiB5b3UncmUgbG9va2luZyBmb3IgdGhlIDIueCB2ZXJzaW9uLCBsb29rIGF0IHRoZSBbYDIueGAgYnJhbmNoXVsyLnhdCgojIyMgSW5zdGFsbCBTZWxmLWhvc3RlZCBQcmlzbQoKUHJpc20gcmVxdWlyZXMKCi0gTm9kZUpTID49IDE4LjIwLjEKLSBmb3IgTm9kZUpTIDE4LngsIFs+PSAxOC4xNiBpcyByZXF1aXJlZF0oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL3ByaXNtL2lzc3Vlcy8yMzA1KQoKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBAc3RvcGxpZ2h0L3ByaXNtLWNsaQoKIyBPUgoKeWFybiBnbG9iYWwgYWRkIEBzdG9wbGlnaHQvcHJpc20tY2xpCmBgYAoKRm9yIG1vcmUgaW5zdGFsbGF0aW9uIG9wdGlvbnMsIHNlZSBvdXIgW2luc3RhbGxhdGlvbiBkb2N1bWVudGF0aW9uXSguL2RvY3MvZ2V0dGluZy1zdGFydGVkLzAxLWluc3RhbGxhdGlvbi5tZCkuCgojIyMgTW9ja2luZwoKUHJpc20gY2FuIGhlbHAgeW91IGNyZWF0ZSBhIGZha2UgIm1vY2siIGJhc2VkIG9mZiBhbiBPcGVuQVBJIGRvY3VtZW50LCB3aGljaCBoZWxwcyBwZW9wbGUgc2VlIGhvdyB5b3VyIEFQSSB3aWxsIHdvcmsgYmVmb3JlIHlvdSBldmVuIGhhdmUgaXQgYnVpbHQuIFJ1biBpdCBsb2NhbGx5IHdpdGggdGhlIGBwcmlzbSBtb2NrYCBjb21tYW5kIHRvIHJ1biB5b3VyIEFQSSBvbiBhIEhUVFAgc2VydmVyIHlvdSBjYW4gaW50ZXJhY3Qgd2l0aC4KCmBgYGJhc2gKcHJpc20gbW9jayBodHRwczovL3Jhdy5naXRoYWNrLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL21hc3Rlci9leGFtcGxlcy92My4wL3BldHN0b3JlLWV4cGFuZGVkLnlhbWwKYGBgCgpMZWFybiBtb3JlIGFib3V0IFtob3cgdGhlIG1vY2sgc2VydmVyIHdvcmtzXShkb2NzL2d1aWRlcy8wMS1tb2NraW5nLm1kKS4KCiMjIyBWYWxpZGF0aW9uIFByb3h5CgpQcmlzbSBjYW4gaGVscCB5b3UgY2hlY2sgZm9yIGRpc2NyZXBlbmNpZXMgYmV0d2VlbiB5b3VyIEFQSSBpbXBsZW1lbnRhdGlvbiBhbmQgdGhlIE9wZW5BUEkgZG9jdW1lbnQgdGhhdCBkZXNjcmliZXMsIGxldHRpbmcgeW91IGZ1bm5lbCBIVFRQIHRyYWZmaWMgdGhyb3VnaCBpdCB3aXRoIHRoZSBgcHJpc20gcHJveHlgIGNvbW1hbmQuCgpgYGBiYXNoCnByaXNtIHByb3h5IGV4YW1wbGVzL3BldHN0b3JlLm9hczIueWFtbCBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIKYGBgCgpMZWFybiBtb3JlIGFib3V0IFtob3cgdGhlIHZhbGlkYXRpb24gcHJveHkgd29ya3NdKGRvY3MvZ3VpZGVzLzAzLXZhbGlkYXRpb24tcHJveHkubWQpLgoKIyMg8J+TliBEb2N1bWVudGF0aW9uIGFuZCBDb21tdW5pdHkKCi0gW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5zdG9wbGlnaHQuaW8vZG9jcy9wcmlzbS82NzRiMjdiMjYxYzNjLXByaXNtLW92ZXJ2aWV3KQogIC0gW0dldHRpbmcgU3RhcnRlZF0oLi9kb2NzL2dldHRpbmctc3RhcnRlZC8wMS1pbnN0YWxsYXRpb24ubWQpCiAgLSBbR3VpZGVzXSguL2RvY3MvZ3VpZGVzLzAxLW1vY2tpbmcubWQpCi0gW0NvbW11bml0eV0oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL3ByaXNtL2Rpc2N1c3Npb25zKQoKIyMjIOKdkyBGQVFzCgoqKkNhbm5vdCBhY2Nlc3MgbW9jayBzZXJ2ZXIgd2hlbiB1c2luZyBEb2NrZXI/KioKClByaXNtIHVzZXMgbG9jYWxob3N0IGJ5IGRlZmF1bHQsIHdoaWNoIHVzdWFsbHkgbWVhbnMgMTI3LjAuMC4xLiBXaGVuIHVzaW5nIGRvY2tlciB0aGUgbW9jayBzZXJ2ZXIgd2lsbApiZSB1bnJlYWNoYWJsZSBvdXRzaWRlIG9mIHRoZSBjb250YWluZXIgdW5sZXNzIHlvdSBydW4gdGhlIG1vY2sgY29tbWFuZCB3aXRoIGAtaCAwLjAuMC4wYC4KCioqV2h5IGFtIEkgZ2V0dGluZyA0MDQgZXJyb3JzIHdoZW4gSSBpbmNsdWRlIG15IGJhc2VQYXRoPyoqCgpPcGVuQVBJIHYyLjAgaGFkIGEgY29uY2VwdCBjYWxsZWQgImJhc2VQYXRoIiwgd2hpY2ggd2FzIGVzc2VudGlhbGx5IHBhcnQgb2YgdGhlIEhUVFAgcGF0aCB0aGUgc3R1ZmYKYWZ0ZXIgaG9zdCBuYW1lIGFuZCBwcm90b2NvbCwgYW5kIGJlZm9yZSBxdWVyeSBzdHJpbmcuIFVubGlrZSB0aGUgcGF0aHMgaW4geW91ciBgcGF0aHNgIG9iamVjdCwgdGhpcwpiYXNlUGF0aCB3YXMgYXBwbGllZCB0byBldmVyeSBzaW5nbGUgVVJMLCBzbyBQcmlzbSB2Mi54IHVzZWQgdG8gZG8gdGhlIHNhbWUuIEluIE9wZW5BUEkgdjMuMCB0aGV5Cm1lcmdlZCB0aGUgYmFzZVBhdGggY29uY2VwdCBpbiB3aXRoIHRoZSBzZXJ2ZXIudXJsLCBhbmQgUHJpc20gdjMgaGFzIGRvbmUgdGhlIHNhbWUuCgpXZSB0cmVhdCBPQVMyIGBob3N0ICsgYmFzZVBhdGhgIHRoZSBzYW1lIGFzIE9BUzMgYHNlcnZlci51cmxgLCBzbyB3ZSBkbyBub3QgcmVxdWlyZSB0aGVtIHRvIGdvIGluCnRoZSBVUkwuIElmIHlvdSBoYXZlIGEgYmFzZSBwYXRoIG9mIGBhcGkvdjFgIGFuZCB5b3VyIHBhdGggaXMgZGVmaW5lZCBhcyBgaGVsbG9gLCB0aGVuIGEgcmVxdWVzdCB0bwpgaHR0cDovL2xvY2FsaG9zdDo0MDEwL2hlbGxvYCB3b3VsZCB3b3JrLCBidXQgYGh0dHA6Ly9sb2NhbGhvc3Q6NDAxMC9hcGkvdjEvaGVsbG9gIHdpbGwgZmFpbC4gVGhpcwpjb25mdXNlcyBzb21lLCBidXQgdGhlIG90aGVyIHdheSB3YXMgY29uZnVzaW5nIHRvIG90aGVycy4gQ2hlY2sgdGhlIGRlZmF1bHQgb3V0cHV0IG9mIFByaXNtIENMSSB0bwpzZWUgd2hhdCBVUkxzIHlvdSBoYXZlIGF2YWlsYWJsZS4KCiMjIyDwn5qnIFJvYWRtYXAKCi0gW3hdIENvbnRlbnQgTmVnb3RpYXRpb24KLSBbeF0gU2VjdXJpdHkgVmFsaWRhdGlvbgotIFt4XSBWYWxpZGF0aW9uIFByb3h5Ci0gWyBdIFtSZWNvcmRpbmcvTGVhcm5pbmcgTW9kZV0oaHR0cHM6Ly9yb2FkbWFwLnN0b3BsaWdodC5pby9jLzY2LWxlYXJuaW5nLXJlY29yZGluZz91dG1fc291cmNlPWdpdGh1YiZ1dG1fbWVkaXVtPXByaXNtJnV0bV9jYW1wYWlnbj1yZWFkbWUpIChjcmVhdGUgT3BlbkFQSSBmcm9tIEhUVFAgdHJhZmZpYykKLSBbIF0gW0RhdGEgUGVyc2lzdGVuY2VdKGh0dHBzOi8vcm9hZG1hcC5zdG9wbGlnaHQuaW8vYy81MC1wZXJzaXN0ZWQtbW9jay1kYXRhP3V0bV9zb3VyY2U9Z2l0aHViJnV0bV9tZWRpdW09cHJpc20mdXRtX2NhbXBhaWduPXJlYWRtZSkgKGFsbG93IFByaXNtIGFjdCBsaWtlIGEgc2FuZGJveCkKClN1Ym1pdCB5b3VyIGlkZWFzIGZvciBuZXcgZnVuY3Rpb25hbGl0eSBvbiB0aGUgW1N0b3BsaWdodCBSb2FkbWFwXShodHRwczovL3JvYWRtYXAuc3RvcGxpZ2h0LmlvLz91dG1fc291cmNlPWdpdGh1YiZ1dG1fbWVkaXVtPXByaXNtJnV0bV9jYW1wYWlnbj1yZWFkbWUpLgoKIyMjIPCfj4EgSGVscCBPdGhlcnMgVXRpbGl6ZSBQcmlzbQoKSWYgeW91J3JlIHVzaW5nIFByaXNtIGZvciBhbiBpbnRlcmVzdGluZyB1c2UgY2FzZSwgW2NvbnRhY3QgdXNdKG1haWx0bzpncm93dGhAc3RvcGxpZ2h0LmlvKSBmb3IgYSBjYXNlIHN0dWR5LiBXZSdsbCBhZGQgaXQgdG8gYSBsaXN0IGhlcmUuIFNwcmVhZCB0aGUgZ29vZG5lc3Mg8J+OiQoKIyMjIPCfkY8gQ29udHJpYnV0aW5nCgpJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHRvIFByaXNtIGl0c2VsZiwgY2hlY2sgb3V0IG91ciBbY29udHJpYnV0aW5nIGRvY3Mg4oeXXVtjb250cmlidXRpbmddIGFuZCBbY29kZSBvZiBjb25kdWN0IOKHl11bY29kZV9vZl9jb25kdWN0XSB0byBnZXQgc3RhcnRlZC4KCiMjIyDwn46JIFRoYW5rcwoKUHJpc20gaXMgYnVpbHQgb24gdG9wIG9mIGxvdHMgb2YgZXhjZWxsZW50IHBhY2thZ2VzLCBhbmQgaGVyZSBhcmUgYSBmZXcgd2UnZCBsaWtlIHRvIHNheSBhIHNwZWNpYWwgdGhhbmtzIHRvLgoKLSBbYWp2XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9hanYpCi0gW2Zha2VyXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AZmFrZXItanMvZmFrZXIpCi0gW2ZwLXRzXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9mcC10cykKLSBbZ2F2ZWxdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2dhdmVsKQotIFtqc29uLXNjaGVtYS1mYWtlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvanNvbi1zY2hlbWEtZmFrZXIpCi0gW2xlcm5hXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9sZXJuYSkKLSBbbWljcmldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21pY3JpKQotIFtvcGVuYXBpLXNhbXBsZXJdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktc2FtcGxlcikKLSBbeWFyZ3NdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3lhcmdzKQoKQ2hlY2sgdGhlc2UgcHJvamVjdHMgb3V0IQoKIyMjIPCfjLIgU3BvbnNvciBQcmlzbSBieSBQbGFudGluZyBhIFRyZWUKCklmIHlvdSB3b3VsZCBsaWtlIHRvIHRoYW5rIHVzIGZvciBjcmVhdGluZyBQcmlzbSwgd2UgYXNrIHRoYXQgeW91IFsqKmJ1eSB0aGUgd29ybGQgYSB0cmVlKipdKGh0dHBzOi8vZWNvbG9naS5jb20vc3RvcGxpZ2h0aW5jKS4KCltjb2RlX29mX2NvbmR1Y3RdOiBDT0RFX09GX0NPTkRVQ1QubWQKW2NvbnRyaWJ1dGluZ106IENPTlRSSUJVVElORy5tZApbZG93bmxvYWQtcmVsZWFzZV06IGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9wcmlzbS9yZWxlYXNlcy9sYXRlc3QKW2NvcmVdOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac3RvcGxpZ2h0L3ByaXNtLWNvcmUKW2h0dHBdOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac3RvcGxpZ2h0L3ByaXNtLWh0dHAKW2h0dHAtc2VydmVyXTogaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN0b3BsaWdodC9wcmlzbS1odHRwLXNlcnZlcgpbY2xpXTogaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN0b3BsaWdodC9wcmlzbS1jbGkKW2NsaS1kb2NzXTogLi9kb2NzL2dldHRpbmctc3RhcnRlZC8wMy1jbGkubWQKWzIueF06IGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9wcmlzbS90cmVlLzIueApbaHR0cC1kb2NzXTogcGFja2FnZXMvaHR0cC9SRUFETUUubWQKW21vY2tpbmdfbGFuZGluZ19wYWdlXTogaHR0cHM6Ly9zdG9wbGlnaHQuaW8vYXBpLW1vY2tpbmc/dXRtX3NvdXJjZT1naXRodWIuY29tJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPWdpdGh1Yl9yZXBvX3ByaXNtCltjaXJjbGVfY2ldOiBodHRwczovL2NpcmNsZWNpLmNvbS9naC9zdG9wbGlnaHRpby9wcmlzbQpbY2lyY2xlX2NpX2ltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jaXJjbGVjaS9idWlsZC9naXRodWIvc3RvcGxpZ2h0aW8vcHJpc20vbWFzdGVyCltucG1dOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac3RvcGxpZ2h0L3ByaXNtLWNsaQpbbnBtX2ltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvQHN0b3BsaWdodC9wcmlzbS1odHRwP2NvbG9yPWJsdWUKW3N0b3BsaWdodF9mb3Jlc3RdOiBodHRwczovL2Vjb2xvZ2kuY29tL3N0b3BsaWdodGluYwo= readmeEtag: '"e15020746524747ef6ebe9ff2e7d02e0a68df86e"' readmeLastModified: Fri, 09 Aug 2024 13:10:58 GMT repositoryId: 54172257 description: >- Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations. created: '2016-03-18T03:52:09Z' updated: '2024-09-05T23:37:23Z' language: TypeScript archived: false stars: 4212 watchers: 55 forks: 343 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 repoEtag: '"29b53b2b4b6cd9fd9004931d9bee31de2760c73e72e84125396d983d3d6f6871"' repoLastModified: Thu, 05 Sep 2024 23:37:23 GMT foundInMaster: true useMasterProperties: true id: 15aad8cd322242e03733b07f2a37890a - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags name: Microcks category: - Mock Testing - SDK language: Java link: https://microcks.io repository: https://github.com/microcks/microcks source_description: >- Open source Kubernetes-native tool for API Mocking and Testing. Turn your OAI contract examples into ready-to-use mocks. Use examples to test and validate implementations according to spec and schema elements. Microcks is a Cloud Native Computing Sandbox project 🚀 v2: true v3: true v3_1: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Ii4vbWljcm9ja3MtYmFubmVyLnBuZyIgd2lkdGg9IjYwMCI+IAoKWyFbR2l0SHViIFdvcmtmbG93IFN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvbWljcm9ja3MvbWljcm9ja3MvYnVpbGQtdmVyaWZ5LnltbD9sb2dvPWdpdGh1YiZzdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3JvY2tzL21pY3JvY2tzL2FjdGlvbnMpClshW0NvbnRhaW5lcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9keW5hbWljL2pzb24/Y29sb3I9Ymx1ZXZpb2xldCZsb2dvPWRvY2tlciZzdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsPVF1YXkuaW8mcXVlcnk9dGFnc1swXS5uYW1lJnVybD1odHRwczovL3F1YXkuaW8vYXBpL3YxL3JlcG9zaXRvcnkvbWljcm9ja3MvbWljcm9ja3MvdGFnLz9saW1pdD0xMCZwYWdlPTEmb25seUFjdGl2ZVRhZ3M9dHJ1ZSldKGh0dHBzOi8vcXVheS5pby9yZXBvc2l0b3J5L21pY3JvY2tzL21pY3JvY2tzP3RhYj10YWdzKQpbIVtWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby5naXRodWIubWljcm9ja3MvbWljcm9ja3M/Y29sb3I9Ymx1ZSZzdHlsZT1mb3ItdGhlLWJhZGdlKV0oKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9pby5naXRodWIubWljcm9ja3MvbWljcm9ja3MpKQpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL21pY3JvY2tzL21pY3JvY2tzP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1hcGFjaGUpXShodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQpbIVtQcm9qZWN0IENoYXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGlzY29yZC1taWNyb2Nrcy1waW5rLnN2Zz9jb2xvcj03Mjg5ZGEmc3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWRpc2NvcmQpXShodHRwczovL21pY3JvY2tzLmlvL2Rpc2NvcmQtaW52aXRlLykKWyFbQXJ0aWZhY3QgSFVCXShodHRwczovL2ltZy5zaGllbGRzLmlvL2VuZHBvaW50P3VybD1odHRwczovL2FydGlmYWN0aHViLmlvL2JhZGdlL3JlcG9zaXRvcnkvbWljcm9ja3Mmc3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vYXJ0aWZhY3RodWIuaW8vcGFja2FnZXMvc2VhcmNoP3JlcG89bWljcm9ja3MpClshW0NOQ0YgTGFuZHNjYXBlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NOQ0YlMjBMYW5kc2NhcGUtNTY5OUM2P3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1jbmNmKV0oaHR0cHM6Ly9sYW5kc2NhcGUuY25jZi5pby8/aXRlbT1hcHAtZGVmaW5pdGlvbi1hbmQtZGV2ZWxvcG1lbnQtLWFwcGxpY2F0aW9uLWRlZmluaXRpb24taW1hZ2UtYnVpbGQtLW1pY3JvY2tzKQoKIyBNaWNyb2NrcyAtIEt1YmVybmV0ZXMgbmF0aXZlIHRvb2wgZm9yIEFQSSBNb2NraW5nICYgVGVzdGluZwoKTWljcm9ja3MgaXMgYSBwbGF0Zm9ybSBmb3IgdHVybmluZyB5b3VyIEFQSSBhbmQgbWljcm9zZXJ2aWNlcyBhc3NldHMgLSAqT3BlbkFQSSBzcGVjcyosICpBc3luY0FQSSBzcGVjcyosICpnUlBDIHByb3RvYnVmKiwgKkdyYXBoUUwgc2NoZW1hKiwgKlBvc3RtYW4gY29sbGVjdGlvbnMqLCAqU29hcFVJIHByb2plY3RzKiAtIGludG8gbGl2ZSBtb2NrcyBpbiBzZWNvbmRzLgoKSXQgYWxzbyByZXVzZXMgdGhlc2UgYXNzZXRzIGZvciBydW5uaW5nIGNvbXBsaWFuY2UgYW5kIG5vbi1yZWdyZXNzaW9uIHRlc3RzIGFnYWluc3QgeW91ciBBUEkgaW1wbGVtZW50YXRpb24uIFdlIHByb3ZpZGUgaW50ZWdyYXRpb25zIHdpdGggKkplbmtpbnMqLCAqR2l0SHViIEFjdGlvbnMqLCAqVGVrdG9uKiBhbmQgbWFueSBvdGhlcnMgdGhyb3VnaCBhIHNpbXBsZSBDTEkuCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiogW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vbWljcm9ja3MuaW8vZG9jdW1lbnRhdGlvbi9nZXR0aW5nLXN0YXJ0ZWQvKQoqIFtNaWNyb2NrcyBDb21tdW5pdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb2Nrcy9jb21tdW5pdHkpIGFuZCBjb21tdW5pdHkgbWVldGluZwoKVG8gZ2V0IGludm9sdmVkIHdpdGggb3VyIGNvbW11bml0eSwgcGxlYXNlIG1ha2Ugc3VyZSB5b3UgYXJlIGZhbWlsaWFyIHdpdGggdGhlIHByb2plY3QncyBbQ29kZSBvZiBDb25kdWN0XSguL0NPREVfT0ZfQ09ORFVDVC5tZCkuCgojIyBCdWlsZCBTdGF0dXMKClRoZSBjdXJyZW50IGRldmVsb3BtZW50IHZlcnNpb24gaXMgYDEuMTAuMS1TTkFQU0hPVGAuIAoKWyFbR2l0SHViIFdvcmtmbG93IFN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvbWljcm9ja3MvbWljcm9ja3MvYnVpbGQtdmVyaWZ5LnltbD9icmFuY2g9MS4xMC54JmxvZ289Z2l0aHViJnN0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9ja3MvbWljcm9ja3MvYWN0aW9ucykKCiMjIyMgU29uYXJjbG91ZCBRdWFsaXR5IG1ldHJpY3MKClshW0NvZGUgU21lbGxzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1taWNyb2Nrc19taWNyb2NrcyZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1taWNyb2Nrc19taWNyb2NrcykKWyFbUmVsaWFiaWxpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1taWNyb2Nrc19taWNyb2NrcyZtZXRyaWM9cmVsaWFiaWxpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9bWljcm9ja3NfbWljcm9ja3MpClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PW1pY3JvY2tzX21pY3JvY2tzJm1ldHJpYz1idWdzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9bWljcm9ja3NfbWljcm9ja3MpClshW0NvdmVyYWdlXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1taWNyb2Nrc19taWNyb2NrcyZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1taWNyb2Nrc19taWNyb2NrcykKWyFbVGVjaG5pY2FsIERlYnRdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PW1pY3JvY2tzX21pY3JvY2tzJm1ldHJpYz1zcWFsZV9pbmRleCldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPW1pY3JvY2tzX21pY3JvY2tzKQpbIVtTZWN1cml0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PW1pY3JvY2tzX21pY3JvY2tzJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1taWNyb2Nrc19taWNyb2NrcykKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9bWljcm9ja3NfbWljcm9ja3MmbWV0cmljPXNxYWxlX3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPW1pY3JvY2tzX21pY3JvY2tzKQoKIyMjIyBGb3NzYSBsaWNlbnNlIGFuZCBzZWN1cml0eSBzY2FucwoKWyFbRk9TU0EgU3RhdHVzXShodHRwczovL2FwcC5mb3NzYS5jb20vYXBpL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZtaWNyb2NrcyUyRm1pY3JvY2tzLnN2Zz90eXBlPXNoaWVsZCZpc3N1ZVR5cGU9bGljZW5zZSldKGh0dHBzOi8vYXBwLmZvc3NhLmNvbS9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGbWljcm9ja3MlMkZtaWNyb2Nrcz9yZWY9YmFkZ2Vfc2hpZWxkJmlzc3VlVHlwZT1saWNlbnNlKQpbIVtGT1NTQSBTdGF0dXNdKGh0dHBzOi8vYXBwLmZvc3NhLmNvbS9hcGkvcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRm1pY3JvY2tzJTJGbWljcm9ja3Muc3ZnP3R5cGU9c2hpZWxkJmlzc3VlVHlwZT1zZWN1cml0eSldKGh0dHBzOi8vYXBwLmZvc3NhLmNvbS9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGbWljcm9ja3MlMkZtaWNyb2Nrcz9yZWY9YmFkZ2Vfc2hpZWxkJmlzc3VlVHlwZT1zZWN1cml0eSkKWyFbRk9TU0EgU3RhdHVzXShodHRwczovL2FwcC5mb3NzYS5jb20vYXBpL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZtaWNyb2NrcyUyRm1pY3JvY2tzLnN2Zz90eXBlPXNtYWxsKV0oaHR0cHM6Ly9hcHAuZm9zc2EuY29tL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZtaWNyb2NrcyUyRm1pY3JvY2tzP3JlZj1iYWRnZV9zbWFsbCkKCiMjIyMgT3BlblNTRiBiZXN0IHByYWN0aWNlcwoKWyFbQ0lJIEJlc3QgUHJhY3RpY2VzXShodHRwczovL2Jlc3RwcmFjdGljZXMuY29yZWluZnJhc3RydWN0dXJlLm9yZy9wcm9qZWN0cy83NTEzL2JhZGdlKV0oaHR0cHM6Ly9iZXN0cHJhY3RpY2VzLmNvcmVpbmZyYXN0cnVjdHVyZS5vcmcvcHJvamVjdHMvNzUxMykKWyFbT3BlblNTRiBTY29yZWNhcmRdKGh0dHBzOi8vYXBpLnNlY3VyaXR5c2NvcmVjYXJkcy5kZXYvcHJvamVjdHMvZ2l0aHViLmNvbS9taWNyb2Nrcy9taWNyb2Nrcy9iYWRnZSldKGh0dHBzOi8vc2VjdXJpdHlzY29yZWNhcmRzLmRldi92aWV3ZXIvP3VyaT1naXRodWIuY29tL21pY3JvY2tzL21pY3JvY2tzKQoKCiMjIFZlcnNpb25zCgpIZXJlIGFyZSB0aGUgbmFtaW5nIGNvbnZlbnRpb25zIHdlJ3JlIHVzaW5nIGZvciBjdXJyZW50IHJlbGVhc2VzLCBvbmdvaW5nIGRldmVsb3BtZW50IG1haW50ZW5hbmNlIGFjdGl2aXRpZXMuCgp8IFN0YXR1cyAgICAgIHwgVmVyc2lvbiAgICAgICAgICAgfCBCcmFuY2ggICB8IENvbnRhaW5lciBpbWFnZXMgdGFncyB8CnwgLS0tLS0tLS0tLS0gfC0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBTdGFibGUgICAgICB8IGAxLjEwLjBgICAgICAgICAgIHwgYG1hc3RlcmAgfCBgMS4xMC4wYCwgYGxhdGVzdGAgICAgfAp8IERldiAgICAgICAgIHwgYDEuMTAuMS1TTkFQU0hPVGAgfCBgMS4xMC54YCB8IGBuaWdodGx5YCAgICAgICAgICAgICB8CnwgTWFpbnRlbmFuY2UgfCBgMS45LjItU05BUFNIT1RgICB8IGAxLjkueGAgIHwgYG1haW50ZW5hbmNlYCAgICAgICAgIHwKCgojIyBIb3cgdG8gYnVpbGQgTWljcm9ja3MKClRoZSBidWlsZCBpbnN0cnVjdGlvbnMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgW2NvbnRyaWJ1dGlvbiBndWlkZV0oQ09OVFJJQlVUSU5HLm1kKS4KCiMjIFRoYW5rcyB0byBjb21tdW5pdHkhCgpbIVtTdGFyZ2F6ZXJzIHJlcG8gcm9zdGVyIGZvciBAbWljcm9ja3MvbWljcm9ja3NdKGh0dHA6Ly9yZXBvcm9zdGVyLmNvbS9zdGFycy9taWNyb2Nrcy9taWNyb2NrcyldKGh0dHA6Ly9naXRodWIuY29tL21pY3JvY2tzL21pY3JvY2tzL3N0YXJnYXplcnMpClshW0ZvcmtlcnMgcmVwbyByb3N0ZXIgZm9yIEBtaWNyb2Nrcy9taWNyb2Nrc10oaHR0cDovL3JlcG9yb3N0ZXIuY29tL2ZvcmtzL21pY3JvY2tzL21pY3JvY2tzKV0oaHR0cDovL2dpdGh1Yi5jb20vbWljcm9ja3MvbWljcm9ja3MvbmV0d29yay9tZW1iZXJzKQo= readmeEtag: '"723e12e2b1170b7c2456210c30282b17390143c4"' readmeLastModified: Wed, 07 Aug 2024 14:21:57 GMT repositoryId: 31214867 description: >- The open source, cloud native tool for API Mocking and Testing. Microcks is a Cloud Native Computing Foundation sandbox project 🚀 created: '2015-02-23T15:46:09Z' updated: '2024-09-05T23:02:28Z' language: Java archived: false stars: 1330 watchers: 22 forks: 208 owner: microcks logo: https://avatars.githubusercontent.com/u/11051048?v=4 license: Apache-2.0 repoEtag: '"756ae18d74ba41c10529e17febd5043c4fc22315ca52df85215b2fb612cb29b4"' repoLastModified: Thu, 05 Sep 2024 23:02:28 GMT foundInMaster: true id: 1c0e918b5a733b0f1726199e3ea101d6 - source: https://openapi.tools/ name: OpenAPI Mocker category: - Mock - Parsers language: nodejs link: https://www.npmjs.com/package/open-api-mocker repository: https://github.com/jormaechea/open-api-mocker source_description: >- Standalone nodejs based OpenAPI 3 mock server, docker-friendly with request validation and autoreload. v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIE1vY2tlcgoKIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9qb3JtYWVjaGVhL29wZW4tYXBpLW1vY2tlci93b3JrZmxvd3MvYnVpbGQvYmFkZ2Uuc3ZnKQpbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW4tYXBpLW1vY2tlci5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuLWFwaS1tb2NrZXIpClshW01haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy83OWY2ZWNhN2VhM2Y4ZmU1NTRjMi9tYWludGFpbmFiaWxpdHkpXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvam9ybWFlY2hlYS9vcGVuLWFwaS1tb2NrZXIvbWFpbnRhaW5hYmlsaXR5KQpbIVtUZXN0IENvdmVyYWdlXShodHRwczovL2FwaS5jb2RlY2xpbWF0ZS5jb20vdjEvYmFkZ2VzLzc5ZjZlY2E3ZWEzZjhmZTU1NGMyL3Rlc3RfY292ZXJhZ2UpXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvam9ybWFlY2hlYS9vcGVuLWFwaS1tb2NrZXIvdGVzdF9jb3ZlcmFnZSkKWyFbRG9ja2VyIGNvbXBhdGlibGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZG9ja2VyLWNvbXBhdGlibGUtZ3JlZW4pXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3JlcG9zaXRvcnkvZG9ja2VyL2pvcm1hZWNoZWEvb3Blbi1hcGktbW9ja2VyKQoKQW4gQVBJIG1vY2tlciBiYXNlZCBpbiB0aGUgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbi4KCiMjIEluc3RhbGxhdGlvbiBhbmQgdXNhZ2UKCiMjIyBVc2luZyBucG0KCmBgYApucG0gaSAtZyBvcGVuLWFwaS1tb2NrZXIKCm9wZW4tYXBpLW1vY2tlciAtcyBteS1zY2hlbWEuanNvbiAtdwoKb3Blbi1hcGktbW9ja2VyIC0taGVscCAjIFRvIHByb21wdCBldmVyeSBhdmFpbGFibGUgc2V0dGluZy4KYGBgCgojIyMgVXNpbmcgZG9ja2VyCgpgYGAKZG9ja2VyIHJ1biAtdiAiJFBXRC9teXNjaGVtYS5qc29uOi9hcHAvc2NoZW1hLmpzb24iIC1wICI1MDAwOjUwMDAiIGpvcm1hZWNoZWEvb3Blbi1hcGktbW9ja2VyCmBgYAoKT3IgdG8gcnVuIGFuIHNwZWNpZmljIHZlcnNpb24KCmBgYApkb2NrZXIgcnVuIC12ICIkUFdEL215c2NoZW1hLmpzb246L2FwcC9zY2hlbWEuanNvbiIgLXAgIjUwMDA6NTAwMCIgam9ybWFlY2hlYS9vcGVuLWFwaS1tb2NrZXI6WC5ZLlpgCmBgYAoKWW91IGNhbiBzZXQgYW55IHBhcmFtZXRlciB3aGVuIHJ1bm5pbmcgaW5zaWRlIGEgZG9ja2VyIGNvbnRhaW5lcgoKYGBgCmRvY2tlciBydW4gLXYgIiRQV0QvbXlzY2hlbWEuanNvbjovYXBwL3NjaGVtYS5qc29uIiAtcCAiMzAwMDozMDAwIiBqb3JtYWVjaGVhL29wZW4tYXBpLW1vY2tlcjpYLlkuWiAtcyAvYXBwL3NjaGVtYS5qc29uIC1wIDMwMDBgCmBgYAoKIyMgQ2FwYWJpbGl0aWVzCgotIFt4XSBSZWFkIHlhbWwgYW5kIGpzb24gT3BlbkFQSSB2MyBzY2hlbWFzLgotIFt4XSBQb3J0IGJpbmRpbmcgc2VsZWN0aW9uCi0gW3hdIFJlcXVlc3QgcGFyYW1ldGVycyB2YWxpZGF0aW9uCi0gW3hdIFJlcXVlc3QgYm9keSB2YWxpZGF0aW9uCi0gW3hdIFJlc3BvbnNlIGJvZHkgYW5kIGhlYWRlcnMgZ2VuZXJhdGlvbiBiYXNlZCBvbiBleGFtcGxlcyBvciBzY2hlbWFzCi0gW3hdIFJlc3BvbnNlIHNlbGVjdGlvbiB1c2luZyByZXF1ZXN0IGhlYWRlcjogYFByZWZlcjogc3RhdHVzQ29kZT1YWFhgIG9yIGBQcmVmZXI6IGV4YW1wbGU9bmFtZWAKLSBbeF0gUmVxdWVzdCBhbmQgcmVzcG9uc2UgbG9nZ2luZwotIFt4XSBTZXJ2ZXJzIGJhc2VwYXRoIHN1cHBvcnQKLSBbeF0gU3VwcG9ydCB4LWZha2VyIGFuZCB4LWNvdW50IGV4dGVuc2lvbiBtZXRob2RzIHRvIGN1c3RvbWlzZSBnZW5lcmF0ZWQgcmVzcG9uc2VzCi0gWyBdIEFQSSBBdXRoZW50aWNhdGlvbgoKIyMgQ3VzdG9taXppbmcgR2VuZXJhdGVkIFJlc3BvbnNlcwpUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGFsbG93cyBjdXN0b20gcHJvcGVydGllcyB0byBiZSBhZGRlZCB0byBhbiBBUEkgZGVmaW5pdGlvbiBpbiB0aGUgZm9ybSBvZiBfeC0qXy4KT3BlbkFQSSBNb2NrZXIgc3VwcG9ydHMgdGhlIHVzZSBvZiB0d28gY3VzdG9tIGV4dGVuc2lvbnMgdG8gYWxsb3cgZGF0YSB0byBiZSByYW5kb21pc2VkIHdoaWNoIHNob3VsZCBhbGxvdyBmb3IgbW9yZQpyZWFsaXN0aWMgbG9va2luZyBkYXRhIHdoZW4gZGV2ZWxvcGluZyBhIFVJIGFnYWluc3QgYSBtb2NrIEFQSSBmb3IgaW5zdGFuY2UuCgojIyMgeC1mYWtlcgpUaGUgX3gtZmFrZXJfIGV4dGVuc2lvbiBpcyB2YWxpZCBmb3IgdXNlIG9uIHByb3BlcnRpZXMgdGhhdCBoYXZlIGEgcHJpbWl0aXZlIHR5cGUgKGUuZy4gYHN0cmluZ2AvYGludGVnZXJgLCBldGMuKQphbmQgY2FuIGJlIHVzZWQgd2l0aGluIGFuIEFQSSBkZWZpbml0aW9uIHRvIHVzZSBvbmUgb3IgbW9yZSBtZXRob2RzIGZyb20gdGhlIGNvbW11bml0eSBtYW50YWluZWQKW0Zha2VyXShodHRwczovL2Zha2VyanMuZGV2LykgbGlicmFyeSBmb3IgZ2VuZXJhdGluZyByYW5kb20gZGF0YS4KCkdpdmVuIHRoZSBmb2xsb3dpbmcgQVBJIGRlZmluaXRpb246CmBgYHlhbWwKb3BlbmFwaTogJzMuMC4yJwppbmZvOgogIHRpdGxlOiBDYXRzCiAgdmVyc2lvbjogJzEuMCcKc2VydmVyczoKICAtIHVybDogaHR0cHM6Ly9hcGkuY2F0cy50ZXN0L3YxCnBhdGhzOgogIC9jYXQ6CiAgICBnZXQ6CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICB4LWZha2VyOiBwZXJzb24uZmlyc3ROYW1lCiAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIHgtZmFrZXI6IHBlcnNvbi5sYXN0TmFtZQogICAgICAgICAgICAgICAgICBmdWxsTmFtZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICB4LWZha2VyOiAne3twZXJzb24uZmlyc3ROYW1lfX0ge3twZXJzb24ubGFzdE5hbWV9fScKICAgICAgICAgICAgICAgICAgYWdlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIHgtZmFrZXI6ICdudW1iZXIuaW50KHsgIm1pbiI6IDEsICJtYXgiOiAyMCB9KScKCmBgYAoKQSBKU09OIHJlc3BvbnNlIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyB3b3VsZCBiZSBwcm9kdWNlZDoKYGBgSlNPTgp7CiAgICAiZmlyc3ROYW1lIjogIlRlZCIsCiAgICAibGFzdE5hbWUiOiAiS296ZXkiLAogICAgImZ1bGxOYW1lIjogIkhlcmJlcnQgTG93ZSIsCiAgICAiYWdlIjogMTIKfQpgYGAKClRoZSBfeC1mYWtlcl8gZXh0ZW5zaW9uIGFjY2VwdHMgdmFsdWVzIGluIDMgZm9ybXM6CjEuIF9mYWtlck5hbWVzcGFjZS5tZXRob2RfLiBlLmcuIGBzdHJpbmcudXVpZGAKMi4gX2Zha2VyTmFtZXNwYWNlLm1ldGhvZCh7ICJtZXRob2RBcmdzIjogImluIiwgImpzb24iOiAiZm9ybWF0IiB9KV8uIGUuZy4gYG51bWJlci5pbnQoeyAibWF4IjogMTAwIH0pYAozLiBBIG11c3RhY2hlIHRlbXBsYXRlIHN0cmluZyBtYWtpbmcgdXNlIG9mIHRoZSAyIGZvcm1zIGFib3ZlLiBlLmcuIGBNeSBuYW1lIGlzIHt7cGVyc29uLmZpcnN0TmFtZX19IHt7cGVyc29uLmxhc3ROYW1lfX1gCgoqTk9URSo6IFRvIGF2b2lkIG5ldyBmYWtlIGRhdGEgZnJvbSBiZWluZyBnZW5lcmF0ZWQgb24gZXZlcnkgY2FsbCwgdXAgdG8gMTAgcmVzcG9uc2VzIHBlciBlbmRwb2ludCBhcmUgY2FjaGVkCmJhc2VkIG9uIHRoZSBpbmNvbWluZyBxdWVyeSBzdHJpbmcsIHJlcXVlc3QgYm9keSBhbmQgaGVhZGVycy4KCiMjIyB4LWNvdW50ClRoZSBfeC1jb3VudF8gZXh0ZW5zaW9uIGhhcyBlZmZlY3Qgb25seSB3aGVuIHVzZWQgb24gYW4gYGFycmF5YCB0eXBlIHByb3BlcnR5LgpJZiBlbmNvdW50ZXJlZCwgT3BlbkFQSSBNb2NrZXIgd2lsbCByZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgb2YgYW4KYXJyYXkgd2l0aCBhIHNpbmdsZSBpdGVtLgoKRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgQVBJIGRlZmluaXRpb246CmBgYHlhbWwKb3BlbmFwaTogJzMuMC4yJwppbmZvOgogIHRpdGxlOiBDYXRzCiAgdmVyc2lvbjogJzEuMCcKc2VydmVyczoKICAtIHVybDogaHR0cHM6Ly9hcGkuY2F0cy50ZXN0L3YxCnBhdGhzOgogIC9jYXQ6CiAgICBnZXQ6CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgeC1jb3VudDogNQogICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwpgYGAKCldpbGwgcHJvZHVjZSB0aGUgZm9sbG93aW5nIHJlc3BvbnNlOgpgYGBKU09OClsKICAgICJzdHJpbmciLAogICAgInN0cmluZyIsCiAgICAic3RyaW5nIiwKICAgICJzdHJpbmciLAogICAgInN0cmluZyIKXQpgYGAKCiMjIEFkdmFuY2VkIHVzYWdlCgpTZWUgdGhlIFthZHZhbmNlZCB1c2FnZSBkb2NzXShkb2NzL1JFQURNRS5tZCkgdG8gZXh0ZW5kIG9yIGJ1aWxkIHlvdXIgb3duIGFwcCB1cG9uIE9wZW5BUEkgTW9ja2VyLgoKIyMgVGVzdHMKClNpbXBseSBydW4gYG5wbSB0YAoKIyMgQ29udHJpYnV0aW5nCgpJc3N1ZXMgYW5kIFBScyBhcmUgd2VsY29tZS4K readmeEtag: '"e4336bc8f8f199bdf64e37116044d8f822da68ef"' readmeLastModified: Tue, 30 May 2023 23:48:16 GMT repositoryId: 193262126 description: A mock server based in OpenAPI Specification created: '2019-06-22T17:38:08Z' updated: '2024-08-15T08:16:20Z' language: JavaScript archived: false stars: 113 watchers: 4 forks: 35 owner: jormaechea logo: https://avatars.githubusercontent.com/u/5612500?v=4 license: MIT repoEtag: '"95ba2dcd383843e6cb4250b9746f0cbcf72dde9a19b23ca798d6124c67c807b6"' repoLastModified: Thu, 15 Aug 2024 08:16:20 GMT foundInMaster: true id: 025e0dafdc92cfc32c40f410a4c333b7 - source: https://openapi.tools/ name: Wiremock category: - Mock - Testing - Data Validators - Documentation language: SaaS link: https://www.wiremock.io/product repository: https://www.wiremock.io/product source_description: >- WireMock Cloud is a managed, hosted version of WireMock, developed by the same team who wrote the open-source project. It is built on the same technology that powers open source WireMock and is 100% compatible with the WireMock API, with additional features that make it quick and easy to mock any API you depend on. WireMock Cloud also introduces advanced capabilities such as chaos engineering, OpenAPI generation, validation and documentation as well as better collaboration and user management. v2: true v3: true v3_1: true id: f6eb4e8c5fd7bad5d57f440b0ae64ae1 foundInMaster: true - source: https://openapi.tools/ name: Fakeit category: - Mock - Parsers language: - cli - Docker link: https://github.com/justinfeng/fakeit repository: https://github.com/justinfeng/fakeit source_description: >- Create mock server from OpenAPI 3 specification with random response generation and request validation. v3: true repositoryMetadata: base64Readme: >- IyBGYWtlaXQKCltGdWt1b2thIFJ1YnkgQXdhcmQgLSBTcGVjaWFsIEF3YXJkXShodHRwczovL3d3dy5kaWdpdGFsZnVrdW9rYS5qcC9ldmVudF9yZXBvcnRzLzIxP2xvY2FsZT1qYSkKClshW0NpcmNsZUNJXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NpcmNsZWNpL2J1aWxkL2dpdGh1Yi9KdXN0aW5GZW5nL2Zha2VpdC5zdmcpXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9KdXN0aW5GZW5nL2Zha2VpdCkKWyFbQ29kZSBDbGltYXRlIG1haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY2xpbWF0ZS9tYWludGFpbmFiaWxpdHkvSnVzdGluRmVuZy9mYWtlaXQuc3ZnKV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL0p1c3RpbkZlbmcvZmFrZWl0KQpbIVtHZW1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2VtL3YvZmFrZWl0LnN2ZyldKGh0dHBzOi8vcnVieWdlbXMub3JnL2dlbXMvZmFrZWl0KQpbIVtHZW1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2VtL2R0L2Zha2VpdC5zdmcpXShodHRwczovL3J1YnlnZW1zLm9yZy9nZW1zL2Zha2VpdCkKWyFbRG9ja2VyIFB1bGxzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci9wdWxscy9yZWFsZmVuZ2ppYS9mYWtlaXQuc3ZnKV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3JlYWxmZW5namlhL2Zha2VpdCkKWyFbR2l0SHViXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL0p1c3RpbkZlbmcvZmFrZWl0LnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQoKQ3JlYXRlIG1vY2sgc2VydmVyIGZyb20gT3BlbmFwaSBzcGVjaWZpY2F0aW9uCgojIyBNb3RpdmF0aW9uCgpPcGVuYXBpIG1vY2sgc2VydmVyIGlzIG9uZSBvZiBjb3JlIGNvbXBvbmVudHMgdG8gc3VwcG9ydCBjb250cmFjdCBiYXNlZCBkZXZlbG9wbWVudCBhbmQgdGVzdGluZy4gQXMgcGFydCBvZiBvdXIgam91cm5hbCwgc2V2ZXJhbCBrZXkgcmVxdWlyZW1lbnRzIGZvciBzdWNoIG1vY2sgc2VydmVyIGhhdmUgYmVlbiBpZGVudGlmaWVkOgoKKiBDb250cm9sIHJlc3BvbnNlIGdlbmVyYXRpb24gaW4gbm9uIGludHJ1c2l2ZSBtYW5uZXIuIGkuZS4gd2l0aG91dCBtb2RpZnlpbmcgZXhhbXBsZSBpbiBjb250cmFjdAoqIFJhbmRvbWx5IGdlbmVyYXRlZCByZXNwb25zZSB0byBzdXBwb3J0IHByb3BlcnR5IGJhc2VkIHRlc3RpbmcKKiBGdWxmaWxsIHByb3BlcnR5IHJlZmVyZW5jZSBpbiByZXNwb25zZSBnZW5lcmF0aW9uIHRvIHN1cHBvcnQgZGV2ZWxvcG1lbnQgYWdhaW5zdCBjb250cmFjdC4gaS5lLiByZWdhcmRpbmcgdGhlIGZvbGxvd2luZyByZXNwb25zZSwgZ3VhcmFudGVlIHRoZSBgc2VsZWN0ZWRJZGAgcHJvcGVydHkgaXMgYWx3YXlzIGEgdmFsaWQgYGlkYCBpbiB0aGUgaXRlbXMKYGBganNvbgp7CiAgInNlbGVjdGVkSWQiOiAxLAogICJpdGVtcyI6IFsKICAgIHsgImlkIjogMSB9LAogICAgeyAiaWQiOiAyIH0KICBdCn0KYGBgCgpBZnRlciB0cmllZCBzZXZlcmFsIGV4aXN0aW5nIG9wdGlvbnMsIHdlIGNhbm5vdCBmaW5kIGEgYmVzdCBzb2x1dGlvbiB0byBtZWV0IGFsbCB0aGUgcmVxdWlyZW1lbnRzLiBTbyB3ZSBlbmQgdXAgd2l0aCBfX0Zha2VpdF9fLgoKIyMgRmVhdHVyZXMKCiogUmFuZG9tbHkgb3Igc3RhdGljYWxseSBnZW5lcmF0ZWQgcmVzcG9uc2UgKGBhcHBsaWNhdGlvbi8uKmpzb25gKQoqIFJlcXVlc3QgdmFsaWRhdGlvbiAoYGFwcGxpY2F0aW9uLy4qanNvbmAsIGBtdWx0aXBhcnQvZm9ybS1kYXRhYCkKKiBMb2FkIHNwZWNpZmljYXRpb24gZnJvbSBsb2NhbCBvciByZW1vdGUKKiBTdXBwb3J0IGhvdCByZWxvYWQgbG9jYWwgc3BlY2lmaWNhdGlvbgoqIFN1cHBvcnQgc3BlY2lmaWNhdGlvbiBpbiB5YW1sIG9yIGpzb24gZm9ybWF0CiogW0V4cGVyaW1lbnRhbF0gU3VwcG9ydCBwbGFpbiB0ZXh0IGFuZCBiaW5hcnkgcmVzcG9uc2UsIGUuZy4gYGFwcGxpY2F0aW9uL3BkZmAKCiMjIEluc3RhbGxhdGlvbgoKSW5zdGFsbCBpdCB3aXRoOgoKICAgICQgZ2VtIGluc3RhbGwgZmFrZWl0CgpPciB1c2UgdGhlIFtkb2NrZXIgaW1hZ2VdKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9yZWFsZmVuZ2ppYS9mYWtlaXQpCgojIyBVc2FnZQoKICAgICQgZmFrZWl0IC0tc3BlYyA8TG9jYWwgZmlsZSBvciByZW1vdGUgdXJsPgoKIyMjIENvbW1hbmQgbGluZSBvcHRpb25zCgogICAgJCBmYWtlaXQgLS1oZWxwCiAgICB1c2FnZToKICAgICAgICAtLXNwZWMgICAgICAgICAgICAgICBzcGVjIGZpbGUgdXJpIChyZXF1aXJlZCkKICAgICAgICAtcCwgLS1wb3J0ICAgICAgICAgICBjdXN0b20gcG9ydAogICAgICAgIC1xLCAtLXF1aWV0ICAgICAgICAgIG11dGUgcmVxdWVzdCBhbmQgcmVzcG9uc2UgbG9nCiAgICAgICAgLWwsIC0tbG9nLWZpbGUgICAgICAgcmVkaXJlY3QgbG9nIHRvIGEgZmlsZQogICAgICAgIC0tcGVybWlzc2l2ZSAgICAgICAgIGxvZyB2YWxpZGF0aW9uIGVycm9yIGFzIHdhcm5pbmcgaW5zdGVhZCBvZiBkZW55aW5nIHJlcXVlc3QKICAgICAgICAtLXVzZS1leGFtcGxlICAgICAgICB1c2UgZXhhbXBsZSBwcm92aWRlZCBpbiBzcGVjIGlmIGV4aXN0cwogICAgICAgIC0tc3RhdGljICAgICAgICAgICAgIGdlbmVyYXRlIHN0YXRpYyByZXNwb25zZQogICAgICAgIC0tc3RhdGljLXR5cGVzICAgICAgIGdlbmVyYXRlIHN0YXRpYyB2YWx1ZSBmb3Igc3BlY2lmaWVkIHR5cGVzLCBlLmcuIC0tc3RhdGljLXR5cGVzIGludGVnZXIsc3RyaW5nCiAgICAgICAgLS1zdGF0aWMtcHJvcGVydGllcyAgZ2VuZXJhdGUgc3RhdGljIHZhbHVlIGZvciBzcGVjaWZpZWQgcHJvcGVydGllcywgZS5nLiAtLXN0YXRpYy1wcm9wZXJ0aWVzIGlkLHV1aWQKICAgICAgICAtLWJhc2UtcGF0aCAgICAgICAgICBtb3VudHMgdGhlIG1vY2sgc2VydmVyIGF0IHRoZSBnaXZlbiBwYXRoLCBlLmcuIC0tYmFzZS1wYXRoIC9hcGkKCiAgICBvdGhlciBvcHRpb25zOgogICAgICAgIC12LCAtLXZlcnNpb24KICAgICAgICAtaCwgLS1oZWxwCgoqKk5vdGVzOioqCiogU2VlIFtoZXJlXShkb2NzL3JhbmRvbS5tZCkgZm9yIE9wZW5hcGkgcHJvcGVydGllcyBzdXBwb3J0ZWQgaW4gcmFuZG9tIHJlc3BvbnNlIGdlbmVyYXRpb24KKiBTZWUgW2hlcmVdKGRvY3Mvc3RhdGljLm1kKSBmb3IgZGVmYXVsdCB2YWx1ZSBpbiBzdGF0aWMgcmVzcG9uc2UgZ2VuZXJhdGlvbgoqIFJlZ2FyZGluZyBgLS11c2UtZXhhbXBsZWAgbW9kZSwgcHJvcGVydHkgd2l0aG91dCBleGFtcGxlIHNwZWNpZmllZCB3aWxsIHN0aWxsIGJlIHJhbmRvbWx5IG9yIHN0YXRpY2FsbHkgZ2VuZXJhdGVkCiogUmFuZG9tIHJlc3BvbnNlIGdlbmVyYXRpb24gY2FuIG5vdCBoYW5kbGUgcmVjdXJzaXZlIHNjaGVtYSByZWZlcmVuY2UuIElmIHlvdSBkbyBuZWVkIGl0IGluIHlvdXIgc3BlYyBmaWxlLCBwbGVhc2UgcHJvdmlkZSBgZXhhbXBsZWAgcHJvcGVydHkgZm9yIHRoZSByZWN1cnNpdmUgcGFydCBvZiBzY2hlbWEgYW5kIHNwZWNpZnkgYC0tdXNlLWV4YW1wbGVgIG9wdGlvbi4KCiMjIyBDb25maWd1cmF0aW9uIGVuZHBvaW50CgpNb2NrIHNlcnZlciBiZWhhdmlvdXIgY2FuIGJlIGNoYW5nZWQgb24gdGhlIGZseQoKUmV0cmlldmUgY3VycmVudCBjb25maWc6CgogICAgR0VUIC9fX2Zha2VpdF9jb25maWdfXwoKVXBkYXRlIGNvbmZpZzoKCiAgICBQVVQgL19fZmFrZWl0X2NvbmZpZ19fCgpSZXF1ZXN0IGFuZCByZXNwb25zZToKYGBganNvbgp7CiAgInBlcm1pc3NpdmUiOiBmYWxzZSwKICAidXNlX2V4YW1wbGUiOiB0cnVlLAogICJzdGF0aWMiOiBmYWxzZSwKICAic3RhdGljX3R5cGVzIjogWwogICAgImludGVnZXIiCiAgXSwKICAic3RhdGljX3Byb3BlcnRpZXMiOiBbCiAgICAiaWQiCiAgXSwKICAiYmFzZV9wYXRoIjogIi9hcGkiCn0KYGBgCgojIyBEZXZlbG9wbWVudAoKQWZ0ZXIgY2hlY2tpbmcgb3V0IHRoZSByZXBvLCBydW4gYGJ1bmRsZSBpbnN0YWxsYCB0byBpbnN0YWxsIGRlcGVuZGVuY2llcy4gVGhlbiwgcnVuIGByYWtlYCB0byBydW4gdGhlIHRlc3RzLgoKVG8gaW5zdGFsbCB0aGlzIGdlbSBvbnRvIHlvdXIgbG9jYWwgbWFjaGluZSwgcnVuIGBidW5kbGUgZXhlYyByYWtlIGluc3RhbGxgLgoKVG8gcmVsZWFzZSBhIG5ldyB2ZXJzaW9uLCB1cGRhdGUgdGhlIHZlcnNpb24gbnVtYmVyIGluIGB2ZXJzaW9uLnJiYCwgYW5kIHRoZW4gcnVuIGBidW5kbGUgZXhlYyByYWtlIHJlbGVhc2VgLCB3aGljaCB3aWxsIGNyZWF0ZSBhIGdpdCB0YWcgZm9yIHRoZSB2ZXJzaW9uLCBwdXNoIGdpdCBjb21taXRzIGFuZCB0YWdzLCBhbmQgcHVzaCB0aGUgYC5nZW1gIGZpbGUgdG8gW3J1YnlnZW1zLm9yZ10oaHR0cHM6Ly9ydWJ5Z2Vtcy5vcmcpLgoKIyMgQ29udHJpYnV0aW5nCgpCdWcgcmVwb3J0cyBhbmQgcHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZSBvbiBHaXRIdWIgYXQgaHR0cHM6Ly9naXRodWIuY29tL0p1c3RpbkZlbmcvZmFrZWl0LgoKIyMgTGljZW5zZQoKVGhlIGdlbSBpcyBhdmFpbGFibGUgYXMgb3BlbiBzb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIExpY2Vuc2VdKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKS4K readmeEtag: '"527c50eea9720a5f527a8f03d1df652a9162a865"' readmeLastModified: Fri, 02 Aug 2024 01:56:10 GMT repositoryId: 179582526 description: Create mock server from Openapi specification created: '2019-04-04T21:51:59Z' updated: '2024-08-21T04:23:32Z' language: Ruby archived: false stars: 76 watchers: 4 forks: 5 owner: JustinFeng logo: https://avatars.githubusercontent.com/u/1527902?v=4 license: MIT repoEtag: '"0c24e9e965bdfd6cc217b2adc7589cfdda1bce6cf3634dc07c7d821fa7cc8358"' repoLastModified: Wed, 21 Aug 2024 04:23:32 GMT foundInMaster: true id: 6b67af7dabca973abebd21b956d683e7 - source: https://openapi.tools/ name: Mockintosh category: Mock language: - CLI - Docker link: https://mockintosh.io source_description: > Mocks for CloudNative Environments - Converts OpenAPI files to Mocks and use them to develop in isolated environments and test edge cases, Async call to queues such as Kafka or RabbitMQ or simulate performance & chaos testing v2: true v3: true v3_1: true foundInMaster: true id: c51e06db0cd86207ca6bf9b9a9e781f1 - source: https://openapi.tools/ name: openapi-data-mocker category: - Mock - Parsers language: PHP repository: https://github.com/ybelenko/openapi-data-mocker source_description: > Tiny library to generate basic OpenAPI Data Types. Consider it as extended Faker package. First version able to mock most of the data formats. It doesn't support polymorphism yet, but work in progress. May be useful for writing custom unit tests. v2: false v3: true repositoryMetadata: base64Readme: >- IyBPcGVuYXBpIERhdGEgTW9ja2VyCgpbIVtMYXRlc3QgU3RhYmxlIFZlcnNpb25dKGh0dHBzOi8vcG9zZXIucHVneC5vcmcveWJlbGVua28vb3BlbmFwaS1kYXRhLW1vY2tlci92L3N0YWJsZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy95YmVsZW5rby9vcGVuYXBpLWRhdGEtbW9ja2VyKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS95YmVsZW5rby9vcGVuYXBpLWRhdGEtbW9ja2VyL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28vb3BlbmFwaS1kYXRhLW1vY2tlci9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwpClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL3liZWxlbmtvL29wZW5hcGktZGF0YS1tb2NrZXIvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIveWJlbGVua28vb3BlbmFwaS1kYXRhLW1vY2tlcj9icmFuY2g9bWFzdGVyKQpbIVtMaWNlbnNlXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL3liZWxlbmtvL29wZW5hcGktZGF0YS1tb2NrZXIvbGljZW5zZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy95YmVsZW5rby9vcGVuYXBpLWRhdGEtbW9ja2VyKQoKT3BlbmFwaSBEYXRhIE1vY2tlciBoZWxwcyB0byBnZW5lcmF0ZSBmYWtlIGRhdGEgZnJvbSBPcGVuQVBJIDMuMCBkb2N1bWVudHMuIE1vc3Qgb2YgdGhlIG1ldGhvZHMgbWF5IHdvcmsgd2l0aCAyLjAgdmVyc2lvbihma2EgU3dhZ2dlciAyLjApLCBidXQgaXQncyBub3QgdGVzdGVkLiBUaGlzIHBhY2thZ2Ugd2FzIGFuIGVuaGFuY2VtZW50IG9mIFBIUCBTbGltNCBzZXJ2ZXIgaW4gW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSBwcm9qZWN0LCBidXQgaXQgZWFzaWVyIHRvIG1haW50YWluIGl0IGluIHNlcGFyYXRlZCByZXBvLgoKIyMgUmVxdWlyZW1lbnRzCi0gUEhQIF43LjMKCl9fSW1wb3J0YW50IG5vdGljZSEgV2hpbGUgUEhQIDguMCBkZWNsYXJlZCBpbiBjb21wb3Nlci5qc29uIHRoaXMgcGFja2FnZSBoYXNuJ3QgYmVlbiB0ZXN0ZWQgYWdhaW5zdCBpdC5fXwoKIyMgSW5zdGFsbGF0aW9uIHZpYSBDb21wb3NlcgoKUnVuIGluIHRlcm1pbmFsOgpgYGBjb25zb2xlCmNvbXBvc2VyIHJlcXVpcmUgeWJlbGVua28vb3BlbmFwaS1kYXRhLW1vY2tlcgpgYGAKCiMjIFVzYWdlIGV4YW1wbGUKCkltYWdpbmUgd2UgaGF2ZSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDMuMC4zIC0gU2NoZW1hIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjMubWQjc2NoZW1hLW9iamVjdCkgbGlrZSB0aGlzOgpgYGB5YW1sCmRlc2NyaXB0aW9uOiBSZWFsIHdvcmxkIGV4YW1wbGUgc2NoZW1hCnR5cGU6IG9iamVjdApwcm9wZXJ0aWVzOgogIGlkOgogICAgdHlwZTogaW50ZWdlcgogICAgZm9ybWF0OiBpbnQzMgogICAgbWluaW11bTogMQogIHB1cmNoYXNlZF9pdGVtczoKICAgIHR5cGU6IGFycmF5CiAgICBpdGVtczoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgU0tVOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IHV1aWQKICAgICAgICAgIG1heExlbmd0aDogMjAKICAgICAgICBxdWFudGl0eToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGZvcm1hdDogaW50MzIKICAgICAgICAgIG1pbmltdW06IDEKICAgICAgICAgIG1heGltdW06IDUKICAgICAgICBwcmljZToKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgY3VycmVuY3k6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgbWluTGVuZ3RoOiAzCiAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAzCiAgICAgICAgICAgICAgZW51bToKICAgICAgICAgICAgICAtIFVTRAogICAgICAgICAgICAgIC0gRVVSCiAgICAgICAgICAgICAgLSBSVUIKICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICAgICAgZm9ybWF0OiBmbG9hdAogICAgICAgICAgICAgIG1pbmltdW06IDAuMDEKICAgICAgICAgICAgICBtYXhpbXVtOiA5OS45OQogICAgICAgIG1hbnVmYWN0dXJlcjoKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgbmFtZToKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICBtYXhMZW5ndGg6IDMwCiAgICAgICAgICAgIGNvdW50cnk6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZW51bToKICAgICAgICAgICAgICAtIENITgogICAgICAgICAgICAgIC0gVVNBCiAgICAgICAgICAgICAgLSBSVVMKICBidXllcjoKICAgIHR5cGU6IG9iamVjdAogICAgcHJvcGVydGllczoKICAgICAgZmlyc3RfbmFtZToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtaW5MZW5ndGg6IDMKICAgICAgICBtYXhMZW5ndGg6IDE1CiAgICAgIGxhc3RfbmFtZToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtaW5MZW5ndGg6IDMKICAgICAgICBtYXhMZW5ndGg6IDE1CiAgICAgIGNyZWRpdF9jYXJkOgogICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBtaW5pbXVtOiAxMDAwMDAwMDAwMDAwMDAwCiAgICAgICAgbWF4aW11bTogMTAwMDAwMDAwMDAwMDAwMDAKICAgICAgcGhvbmU6CiAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1pbmltdW06IDEwMDAwMDAwMDAwMDAwCiAgICAgICAgbWF4aW11bTogOTk5OTk5OTk5OTk5OTkKICAgICAgZW1haWw6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZm9ybWF0OiBlbWFpbAogIHN0YXR1czoKICAgIHR5cGU6IHN0cmluZwogICAgZW51bToKICAgIC0gcmVnaXN0ZXJlZAogICAgLSBwYWlkCiAgICAtIHNoaXBwZWQKICAgIC0gZGVsaXZlcmVkCiAgICBkZWZhdWx0OiByZWdpc3RlcmVkCiAgY3JlYXRlZF9hdDoKICAgIHR5cGU6IHN0cmluZwogICAgZm9ybWF0OiBkYXRlLXRpbWUKYGBgCj4gTm90aWNlISBXaGlsZSBzY2hlbWEgb2JqZWN0IHByZXNlbnRlZCBpbiBZQU1MIGZvcm1hdCB0aGlzIGxpYnJhcnkgZG9lc24ndCBzdXBwb3J0IFlBTUwgb3IgSlNPTiBwYXJzaW5nIHJpZ2h0IG5vdy4gSXQgbWVhbnMgdGhhdCBgbW9ja1NjaGVtYU9iamVjdGAgbWV0aG9kIGV4cGVjdHMgYWxyZWFkeSBkZWNvZGVkIEpTT04gdmFsdWUgYXMgYXJndW1lbnQuCgpXaGVuIHdlIG1vY2sgbWVudGlvbmVkIHNjaGVtYSB3aXRoIGBtb2NrU2NoZW1hT2JqZWN0YCBtZXRob2Q6CmBgYHBocApyZXF1aXJlIF9fRElSX18gLiAnL3ZlbmRvci9hdXRvbG9hZC5waHAnOwoKdXNlIE9wZW5BUElTZXJ2ZXJcTW9ja1xPcGVuQXBpRGF0YU1vY2tlciBhcyBNb2NrZXI7CiRtb2NrZXIgPSBuZXcgTW9ja2VyKCk7Ci8vIHNldCBtb2RlbCBjbGFzc2VzIG5hbWVzcGFjZSBmb3IgJHJlZiBoYW5kbGluZwovLyBjdXJyZW50IGV4YW1wbGUgZG9lc24ndCB1c2UgJHJlZnMgaW4gc2NoZW1hcywgaG93ZXZlcgokbW9ja2VyLT5zZXRNb2RlbHNOYW1lc3BhY2UoJ0pvaG5Eb2VzUGFja2FnZVxcTW9kZWxcXCcpOwovLyBjbGFzcyBJbnZvaWNlVGVzdCBjb250YWlucyBzY2hlbWEgbWVudGlvbmVkIHByZXZpb3VzbHkKLy8gaXQgcmV0dXJucyB0aGF0IHNjaGVtYSB3aXRoIGdldE9wZW5BcGlTY2hlbWEoKSBtZXRob2QgZGVjbGFyZWQgaW4gT3BlbkFQSVNlcnZlclxNb2NrXEJhc2VNb2RlbCBwYXJlbnQgY2xhc3MKJHNjaGVtYSA9IFxPcGVuQVBJU2VydmVyXE1vY2tcTW9kZWxcSW52b2ljZVRlc3Q6OmdldE9wZW5BcGlTY2hlbWEoKTsKJGRhdGEgPSAkbW9ja2VyLT5tb2NrU2NoZW1hT2JqZWN0KCRzY2hlbWEpOwplY2hvIGpzb25fZW5jb2RlKCRkYXRhLCBcSlNPTl9QUkVUVFlfUFJJTlQpOwpgYGAKCnRoZSBvdXRwdXQgbG9va3MgbGlrZToKYGBganNvbgp7CiAgICAiaWQiOiAxOTEyNzc3OTM5LAogICAgInB1cmNoYXNlZF9pdGVtcyI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJTS1UiOiAiNWVlNzhjZmRlOWYwNSIsCiAgICAgICAgICAgICJxdWFudGl0eSI6IDQsCiAgICAgICAgICAgICJwcmljZSI6IHsKICAgICAgICAgICAgICAgICJjdXJyZW5jeSI6ICJFVVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogNTcuNjM1CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJtYW51ZmFjdHVyZXIiOiB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJMb3JlbSBpIiwKICAgICAgICAgICAgICAgICJjb3VudHJ5IjogIlVTQSIKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIF0sCiAgICAiYnV5ZXIiOiB7CiAgICAgICAgImZpcnN0X25hbWUiOiAiTG9yZW0gaXBzdW0gZG8iLAogICAgICAgICJsYXN0X25hbWUiOiAiTG9yZW0gaXBzdW0gIiwKICAgICAgICAiY3JlZGl0X2NhcmQiOiAyNDU1MDg3NDczOTE1OTA4LAogICAgICAgICJwaG9uZSI6IDY1NTI2MjYwNTE3NjkzLAogICAgICAgICJlbWFpbCI6ICJqZmtlbm5lZHlAZXhhbXBsZS5jb20iCiAgICB9LAogICAgInN0YXR1cyI6ICJkZWxpdmVyZWQiLAogICAgImNyZWF0ZWRfYXQiOiAiMTk3OC0wOC0wOFQwNDowMzowOSswMDowMCIKfQpgYGAKT2YgY291cnNlIHRoYXQgb3V0cHV0IHdpbGwgYmUgc2xpZ2h0bHkgZGlmZmVyZW50IG9uIGV2ZXJ5IGNhbGwuIFRoYXQncyB3aGF0IG1vY2tlciBwYWNrYWdlIGhhcyBiZWVuIGRldmVsb3BlZCBmb3IuCgpZb3UgY2FuIGNoZWNrIGV4dGVuZGVkIGV4YW1wbGUgYXQgW2V4YW1wbGVzL2V4dGVuZGVkX2V4YW1wbGUucGhwXShleGFtcGxlcy9leHRlbmRlZF9leGFtcGxlLnBocCkuCgojIyBTdXBwb3J0ZWQgZmVhdHVyZXMKCkFsbCBkYXRhIHR5cGVzIHN1cHBvcnRlZCBleGNlcHQgc3BlY2lmaWMgc3RyaW5nIGZvcm1hdHM6IGBlbWFpbGAsIGB1dWlkYCwgYHBhc3N3b3JkYCB3aGljaCBhcmUgcG9vcmx5IGltcGxlbWVudGVkLgoKIyMjIERhdGEgVHlwZXMgU3VwcG9ydAoKfCBEYXRhIFR5cGUgfCBEYXRhIEZvcm1hdCB8ICAgICAgU3VwcG9ydGVkICAgICB8Cnw6LS0tLS0tLS0tOnw6LS0tLS0tLS0tLS06fDotLS0tLS0tLS0tLS0tLS0tLS06fAp8IGBpbnRlZ2VyYCB8IGBpbnQzMmAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgaW50ZWdlcmAgfCBgaW50NjRgICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYG51bWJlcmAgIHwgYGZsb2F0YCAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBudW1iZXJgICB8IGBkb3VibGVgICAgIHwgICAgICAgICAgICAgICAgICAgIHwKfCBgc3RyaW5nYCAgfCBgYnl0ZWAgICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYHN0cmluZ2AgIHwgYGJpbmFyeWAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBib29sZWFuYCB8ICAgICAgICAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgc3RyaW5nYCAgfCBgZGF0ZWAgICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYHN0cmluZ2AgIHwgYGRhdGUtdGltZWAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBzdHJpbmdgICB8IGBwYXNzd29yZGAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgc3RyaW5nYCAgfCBgZW1haWxgICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYHN0cmluZ2AgIHwgYHV1aWRgICAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAoKIyMjIERhdGEgT3B0aW9ucyBTdXBwb3J0Cgp8IERhdGEgVHlwZSAgIHwgICAgICAgICBPcHRpb24gICAgICAgICB8ICAgICAgU3VwcG9ydGVkICAgICB8Cnw6LS0tLS0tLS0tLS06fDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tLS0tLS0tLS0tOnwKfCBgc3RyaW5nYCAgICB8IGBtaW5MZW5ndGhgICAgICAgICAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBzdHJpbmdgICAgIHwgYG1heExlbmd0aGAgICAgICAgICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYHN0cmluZ2AgICAgfCBgZW51bWAgICAgICAgICAgICAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgc3RyaW5nYCAgICB8IGBwYXR0ZXJuYCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfAp8IGBpbnRlZ2VyYCAgIHwgYG1pbmltdW1gICAgICAgICAgICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYGludGVnZXJgICAgfCBgbWF4aW11bWAgICAgICAgICAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgaW50ZWdlcmAgICB8IGBleGNsdXNpdmVNaW5pbXVtYCAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBpbnRlZ2VyYCAgIHwgYGV4Y2x1c2l2ZU1heGltdW1gICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYG51bWJlcmAgICAgfCBgbWluaW11bWAgICAgICAgICAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgbnVtYmVyYCAgICB8IGBtYXhpbXVtYCAgICAgICAgICAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBudW1iZXJgICAgIHwgYGV4Y2x1c2l2ZU1pbmltdW1gICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8CnwgYG51bWJlcmAgICAgfCBgZXhjbHVzaXZlTWF4aW11bWAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgYXJyYXlgICAgICB8IGBpdGVtc2AgICAgICAgICAgICAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBhcnJheWAgICAgIHwgYGFkZGl0aW9uYWxJdGVtc2AgICAgICB8ICAgICAgICAgICAgICAgICAgICB8CnwgYGFycmF5YCAgICAgfCBgbWluSXRlbXNgICAgICAgICAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgYXJyYXlgICAgICB8IGBtYXhJdGVtc2AgICAgICAgICAgICAgfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8IGBhcnJheWAgICAgIHwgYHVuaXF1ZUl0ZW1zYCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8CnwgYG9iamVjdGAgICAgfCBgcHJvcGVydGllc2AgICAgICAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgb2JqZWN0YCAgICB8IGBtYXhQcm9wZXJ0aWVzYCAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfAp8IGBvYmplY3RgICAgIHwgYG1pblByb3BlcnRpZXNgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8CnwgYG9iamVjdGAgICAgfCBgcGF0dGVyblByb3BlcnRpZXNgICAgIHwgICAgICAgICAgICAgICAgICAgIHwKfCBgb2JqZWN0YCAgICB8IGBhZGRpdGlvbmFsUHJvcGVydGllc2AgfCAgICAgICAgICAgICAgICAgICAgfAp8IGBvYmplY3RgICAgIHwgYHJlcXVpcmVkYCAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8CnwgYCpgICAgICAgICAgfCBgJHJlZmAgICAgICAgICAgICAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwKfCBgKmAgICAgICAgICB8IGBhbGxPZmAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfAp8IGAqYCAgICAgICAgIHwgYGFueU9mYCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8CnwgYCpgICAgICAgICAgfCBgb25lT2ZgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwKfCBgKmAgICAgICAgICB8IGBub3RgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfAoKIyMgS25vd24gTGltaXRhdGlvbnMKCkF2b2lkIGNpcmN1bGFyIHJlZnMgaW4geW91ciBzY2hlbWEuIFNjaGVtYSBiZWxvdyBjYW4gY2F1c2UgaW5maW5pdGUgbG9vcCBhbmQgYE91dCBvZiBNZW1vcnlgIFBIUCBlcnJvcjoKYGBgeW1sCiMgTW9kZWxBIGhhcyByZWZlcmVuY2UgdG8gTW9kZWxCIHdoaWxlIE1vZGVsQiBoYXMgcmVmZXJlbmNlIHRvIE1vZGVsQS4KIyBNb2NrIHNlcnZlciB3aWxsIHByb2R1Y2UgaHVnZSBuZXN0ZWQgSlNPTiBleGFtcGxlIGFuZCBlbmRlZCB3aXRoIGBPdXQgb2YgTWVtb3J5YCBlcnJvci4KZGVmaW5pdGlvbnM6CiAgTW9kZWxBOgogICAgdHlwZTogb2JqZWN0CiAgICBwcm9wZXJ0aWVzOgogICAgICBtb2RlbF9iOgogICAgICAgICRyZWY6ICcjL2RlZmluaXRpb25zL01vZGVsQicKICBNb2RlbEI6CiAgICB0eXBlOiBhcnJheQogICAgaXRlbXM6CiAgICAgICRyZWY6ICcjL2RlZmluaXRpb25zL01vZGVsQScKYGBgCgpEb24ndCByZWYgc2NhbGFyIHR5cGVzLCBiZWNhdXNlIGdlbmVyYXRvciB3aWxsIG5vdCBwcm9kdWNlIG1vZGVscyB3aGljaCBtb2NrIHNlcnZlciBjYW4gZmluZC4gU28gc2NoZW1hIGJlbG93IHdpbGwgY2F1c2UgZXJyb3I6CmBgYHltbAojIGdlbmVyYXRlZCBidWlsZCBjb250YWlucyBvbmx5IGBPdXRlckNvbXBvc2l0ZWAgbW9kZWwgY2xhc3Mgd2hpY2ggcmVmZXJlbmNlZCB0byBub3QgZXhpc3RlZCBgT3V0ZXJOdW1iZXJgLCBgT3V0ZXJTdHJpbmdgLCBgT3V0ZXJCb29sZWFuYCBjbGFzc2VzCiMgbW9jayBzZXJ2ZXIgY2Fubm90IG1vY2sgYE91dGVyQ29tcG9zaXRlYCBtb2RlbCBhbmQgdGhyb3dzIGV4Y2VwdGlvbgpkZWZpbml0aW9uczoKICBPdXRlckNvbXBvc2l0ZToKICAgIHR5cGU6IG9iamVjdAogICAgcHJvcGVydGllczoKICAgICAgbXlfbnVtYmVyOgogICAgICAgICRyZWY6ICcjL2RlZmluaXRpb25zL091dGVyTnVtYmVyJwogICAgICBteV9zdHJpbmc6CiAgICAgICAgJHJlZjogJyMvZGVmaW5pdGlvbnMvT3V0ZXJTdHJpbmcnCiAgICAgIG15X2Jvb2xlYW46CiAgICAgICAgJHJlZjogJyMvZGVmaW5pdGlvbnMvT3V0ZXJCb29sZWFuJwogIE91dGVyTnVtYmVyOgogICAgdHlwZTogbnVtYmVyCiAgT3V0ZXJTdHJpbmc6CiAgICB0eXBlOiBzdHJpbmcKICBPdXRlckJvb2xlYW46CiAgICB0eXBlOiBib29sZWFuCmBgYAoKIyMgTGlua3MgdG8gbWVudGlvbmVkIHRlY2hub2xvZ2llcwoKKiBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDMuMC4zXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMy5tZCkKKiBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkKKiBbQ29tcG9zZXJdKGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnL2Rvd25sb2FkLykK readmeEtag: '"3734033c26f4362ef1101866e41d60139b869ca6"' readmeLastModified: Mon, 21 Mar 2022 19:46:27 GMT repositoryId: 253581764 description: Library that generates fake data from OpenAPI 3.0 Spec created: '2020-04-06T18:24:20Z' updated: '2024-08-26T17:55:26Z' language: PHP archived: false stars: 9 watchers: 1 forks: 0 owner: ybelenko logo: https://avatars.githubusercontent.com/u/5541023?v=4 license: MIT repoEtag: '"dfcd55ace8a2353ed56703f38e8dab4aa0baf1e2fb92156de697a7ced44715da"' repoLastModified: Mon, 26 Aug 2024 17:55:26 GMT foundInMaster: true id: f47895ca9fc1749e90dd75e64d5ab471 - source: https://openapi.tools/ name: tsoa category: - Server - Data Validators - Parsers language: - Node.js - TypeScript link: https://github.com/lukeautry/tsoa repository: https://github.com/lukeautry/tsoa source_description: >- Creates OpenAPI docs and provides free runtime validation for your Koa, Express, Hapi (and more) services v2: true v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3Rzb2EtY29tbXVuaXR5LmdpdGh1Yi5pby9kb2NzLyIgdGFyZ2V0PSJibGFuayI+CiAgICA8aDE+dHNvYTwvaDE+CiAgPC9hPgpQcm9ub3VuY2VkIHNvwrd1aAoKT3BlbkFQSS1jb21wbGlhbnQgUkVTVCBBUElzIHVzaW5nIFR5cGVTY3JpcHQgYW5kIE5vZGUKCiFbYnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vbHVrZWF1dHJ5L3Rzb2EvYWN0aW9ucy93b3JrZmxvd3MvcnVuVGVzdHNPblB1c2gueW1sL2JhZGdlLnN2ZykKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvdHNvYS9sYXRlc3QpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS90c29hKQoKPC9kaXY+CgojIyBHb2FsCgotIFR5cGVTY3JpcHQgY29udHJvbGxlcnMgYW5kIG1vZGVscyBhcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgeW91ciBBUEkKLSBBIHZhbGlkIE9wZW5BUEkgKGZvcm1lcmx5IFN3YWdnZXIpIHNwZWMgKDIuMCBvciAzLjAgaWYgeW91IGNob29zZSDwn5iNKSBpcyBnZW5lcmF0ZWQgZnJvbSB5b3VyIGNvbnRyb2xsZXJzIGFuZCBtb2RlbHMsIGluY2x1ZGluZzoKICAtIFBhdGhzIChlLmcuIEdFVCAvdXNlcnMpCiAgLSBEZWZpbml0aW9ucyBiYXNlZCBvbiBUeXBlU2NyaXB0IGludGVyZmFjZXMgKG1vZGVscykKICAtIFBhcmFtZXRlcnMvbW9kZWwgcHJvcGVydGllcyBtYXJrZWQgYXMgcmVxdWlyZWQgb3Igb3B0aW9uYWwgYmFzZWQgb24gVHlwZVNjcmlwdCAoZS5nLiBteVByb3BlcnR5Pzogc3RyaW5nIGlzIG9wdGlvbmFsIGluIHRoZSBPcGVuQVBJIHNwZWMpCiAgLSBqc0RvYyBzdXBwb3J0ZWQgZm9yIG9iamVjdCBkZXNjcmlwdGlvbnMgKG1vc3Qgb3RoZXIgbWV0YWRhdGEgY2FuIGJlIGluZmVycmVkIGZyb20gVHlwZVNjcmlwdCB0eXBlcykKLSBSb3V0ZXMgYXJlIGdlbmVyYXRlZCBmb3IgbWlkZGxld2FyZSBvZiBjaG9pY2UKICAtIEV4cHJlc3MsIEhhcGksIGFuZCBLb2EgY3VycmVudGx5IHN1cHBvcnRlZCwgb3RoZXIgbWlkZGxld2FyZSBjYW4gYmUgc3VwcG9ydGVkIHVzaW5nIGEgc2ltcGxlIGhhbmRsZWJhcnMgdGVtcGxhdGUKICAtIFZhbGlkYXRlIHJlcXVlc3QgcGF5bG9hZHMKCiMjIFBoaWxvc29waHkKCi0gUmVseSBvbiBUeXBlU2NyaXB0IHR5cGUgYW5ub3RhdGlvbnMgdG8gZ2VuZXJhdGUgQVBJIG1ldGFkYXRhIGlmIHBvc3NpYmxlCi0gSWYgcmVndWxhciB0eXBlIGFubm90YXRpb25zIGFyZW4ndCBhbiBhcHByb3ByaWF0ZSB3YXkgdG8gZXhwcmVzcyBtZXRhZGF0YSwgdXNlIGRlY29yYXRvcnMKLSBVc2UganNkb2MgZm9yIHB1cmUgdGV4dCBtZXRhZGF0YSAoZS5nLiBlbmRwb2ludCBkZXNjcmlwdGlvbnMpCi0gTWluaW1pemUgYm9pbGVycGxhdGUKLSBNb2RlbHMgYXJlIGJlc3QgcmVwcmVzZW50ZWQgYnkgaW50ZXJmYWNlcyAocHVyZSBkYXRhIHN0cnVjdHVyZXMpLCBidXQgY2FuIGFsc28gYmUgcmVwcmVzZW50ZWQgYnkgY2xhc3NlcwotIFJ1bnRpbWUgdmFsaWRhdGlvbiBvZiB0c29hIHNob3VsZCBiZWhhdmUgYXMgY2xvc2VseSBhcyBwb3NzaWJsZSB0byB0aGUgc3BlY2lmaWNhdGlvbnMgdGhhdCB0aGUgZ2VuZXJhdGVkIE9wZW5BUEkgMi8zIHNjaGVtYSBkZXNjcmliZXMuIEFueSBkaWZmZXJlbmNlcyBpbiB2YWxpZGF0aW9uIGxvZ2ljIGFyZSBjbGFyaWZpZWQgYnkgbG9nZ2luZyB3YXJuaW5ncyBkdXJpbmcgdGhlIGdlbmVyYXRpb24gb2YgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAoT0FTKSBhbmQvb3IgdGhlIHJvdXRlcy4KICAtIFBsZWFzZSBub3RlIHRoYXQgYnkgZW5hYmxpbmcgT3BlbkFQSSAzIHlvdSBtaW5pbWl6ZSB0aGUgY2hhbmNlcyBvZiBkaXZlcmdlbnQgdmFsaWRhdGlvbiBsb2dpYyBzaW5jZSBPcGVuQVBJIDMgaGFzIGEgbW9yZSBleHByZXNzaXZlIHNjaGVtYSBzeW50YXguCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCi0gW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vdHNvYS1jb21tdW5pdHkuZ2l0aHViLmlvL2RvY3MvKQotIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3Rzb2EtY29tbXVuaXR5LmdpdGh1Yi5pby9yZWZlcmVuY2UvKQotIFtHZXR0aW5nIHN0YXJ0ZWQgZ3VpZGVdKGh0dHBzOi8vdHNvYS1jb21tdW5pdHkuZ2l0aHViLmlvL2RvY3MvZ2V0dGluZy1zdGFydGVkKQoKIyMgRXhhbXBsZXMKCkNoZWNrIG91dCB0aGUgW2d1aWRlc10oaHR0cHM6Ly90c29hLWNvbW11bml0eS5naXRodWIuaW8vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQpCgpTZWUgZXhhbXBsZSBjb250cm9sbGVycyBpbiBbdGhlIHRlc3RzXSh0ZXN0cy9maXh0dXJlcy9jb250cm9sbGVycykKClNlZSBleGFtcGxlIG1vZGVscyBpbiBbdGhlIHRlc3RzXSh0ZXN0cy9maXh0dXJlcy90ZXN0TW9kZWwudHMpCgojIyBIZWxwIHdhbnRlZAoKIyMjIENvbnRyaWJ1dGluZyBjb2RlCgpUbyBjb250cmlidXRlICh2aWEgYSBQUiksIHBsZWFzZSBmaXJzdCBzZWUgdGhlIFtDb250cmlidXRpbmcgR3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlYXV0cnkvdHNvYS90cmVlL21hc3Rlci9kb2NzL0NPTlRSSUJVVElORy5tZCkKCiMjIyBCZWNvbWluZyBhIG1haW50YWluZXIKCnRzb2Egd2FudHMgYWRkaXRpb25hbCBtYWludGFpbmVycyEgVGhlIGxpYnJhcnkgaGFzIGluY3JlYXNlZCBpbiBwb3B1bGFyaXR5IGFuZCBoYXMgcXVpdGUgYSBsb3Qgb2YgcHVsbCByZXF1ZXN0cyBhbmQgaXNzdWVzLiBbUGxlYXNlIHBvc3QgaW4gdGhpcyBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2x1a2VhdXRyeS90c29hL2lzc3Vlcy8yMzYpIGlmIHlvdSdyZSB3aWxsaW5nIHRvIHRha2Ugb24gdGhlIHJvbGUgb2YgYSBtYWludGFpbmVyLgo= readmeEtag: '"81295b201e9ff99d873dc633f42632deb1156566"' readmeLastModified: Fri, 12 Jul 2024 09:50:15 GMT repositoryId: 61366800 description: Build OpenAPI-compliant REST APIs using TypeScript and Node created: '2016-06-17T10:42:50Z' updated: '2024-09-05T18:14:18Z' language: TypeScript archived: false stars: 3436 watchers: 29 forks: 492 owner: lukeautry logo: https://avatars.githubusercontent.com/u/8770560?v=4 license: MIT repoEtag: '"6b65d43dce76926faf288ee8e208886224295a52ad29b0a1066a51aa88786c0c"' repoLastModified: Thu, 05 Sep 2024 18:14:18 GMT foundInMaster: true id: 2529db76d3d9f042b0c624f65b13fc41 - source: https://openapi.tools/ name: Vert.x Web Api Contract category: Server language: - Java - Kotlin - JavaScript - Groovy - Ruby - Ceylon or Scala link: https://vertx.io/docs/#web repository: https://github.com/vert-x3/vertx-web/tree/master/vertx-web-api-contract source_description: >- Create API endpoints with Vert.x 3 and OpenAPI 3 with automatic requests validation v2: false v3: true repositoryMetadata: base64Readme: >- PSBWZXJ0LngtV2ViCgppbWFnZTpodHRwczovL2dpdGh1Yi5jb20vdmVydC14My92ZXJ0eC13ZWIvYWN0aW9ucy93b3JrZmxvd3MvY2ktNS54LnltbC9iYWRnZS5zdmdbIkJ1aWxkIFN0YXR1cyAoNS54KSIsbGluaz0iaHR0cHM6Ly9naXRodWIuY29tL3ZlcnQteDMvdmVydHgtd2ViL2FjdGlvbnMvd29ya2Zsb3dzL2NpLTUueC55bWwiXQppbWFnZTpodHRwczovL2dpdGh1Yi5jb20vdmVydC14My92ZXJ0eC13ZWIvYWN0aW9ucy93b3JrZmxvd3MvY2ktNC54LnltbC9iYWRnZS5zdmdbIkJ1aWxkIFN0YXR1cyAoNC54KSIsbGluaz0iaHR0cHM6Ly9naXRodWIuY29tL3ZlcnQteDMvdmVydHgtd2ViL2FjdGlvbnMvd29ya2Zsb3dzL2NpLTQueC55bWwiXQppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby52ZXJ0eC92ZXJ0eC13ZWIuc3ZnWyJNYXZlbiBDZW50cmFsIl0KaW1hZ2U6aHR0cHM6Ly9iZXN0cHJhY3RpY2VzLmNvcmVpbmZyYXN0cnVjdHVyZS5vcmcvcHJvamVjdHMvNTQwL2JhZGdlWyJDSUkgQmVzdCBQcmFjdGljZXMiLGxpbms9Imh0dHBzOi8vYmVzdHByYWN0aWNlcy5jb3JlaW5mcmFzdHJ1Y3R1cmUub3JnL3Byb2plY3RzLzU0MCJdCgpWZXJ0LngtV2ViIGlzIGEgc2V0IG9mIGJ1aWxkaW5nIGJsb2NrcyBmb3IgYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucyB3aXRoIFZlcnQueC4gVGhpbmsgb2YgaXQgYXMgYSBTd2lzcyBBcm15IEtuaWZlIGZvciBidWlsZGluZwptb2Rlcm4sIHNjYWxhYmxlLCB3ZWIgYXBwcy4KClBsZWFzZSBzZWUgdGhlIG1haW4gZG9jdW1lbnRhdGlvbiBvbiB0aGUgd2ViLXNpdGUgZm9yIGEgZnVsbCBkZXNjcmlwdGlvbjoKCiogaHR0cHM6Ly92ZXJ0eC5pby9kb2NzLyN3ZWJbV2ViLXNpdGUgZG9jdW1lbnRhdGlvbl0KCj09IFRlbXBsYXRlIGVuZ2luZXMKClRlbXBsYXRlIGVuZ2luZSBpbXBsZW1lbnRhdGlvbnMgYXJlIGluIHRoZSB0ZW1wbGF0ZSBlbmdpbmUgc3ViLXByb2plY3QuCg== readmeEtag: '"269b52e98cea5813787f90c67bef329932b70760"' readmeLastModified: Fri, 16 Aug 2024 21:55:56 GMT repositoryId: 26628954 description: HTTP web applications for Vert.x created: '2014-11-14T08:15:20Z' updated: '2024-09-05T14:48:11Z' language: Java archived: false stars: 1105 watchers: 82 forks: 532 owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 repoEtag: '"d63c40405c7c36a6470b5059d16f2c05482a1d683b40046af540c5f1a4ed999d"' repoLastModified: Thu, 05 Sep 2024 14:48:11 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872 id: 2657bfe401922934e35bc38fbbef6b6d - source: https://openapi.tools/ name: express-openapi category: Server language: - Node.js - Typescript link: https://www.npmjs.com/package/express-openapi repository: >- https://github.com/kogosoftwarellc/open-api/tree/master/packages/express-openapi source_description: >- An unopinionated OpenAPI framework for Express, which supports Promise based middleware, response handlers and Security Filtering. v2: true v3: true v3_1_link: https://github.com/vert-x3/vertx-web/issues/1872 id: d3549059c844ac132a254310d4d7ac01 repositoryMetadata: base64Readme: >- IyBAb3Blbi1hcGkgWyFbQ292ZXJhbGxzIFN0YXR1c11bY292ZXJhbGxzLWltYWdlXV1bY292ZXJhbGxzLXVybF0KPiBBIE1vbm9yZXBvIG9mIHZhcmlvdXMgcGFja2FnZXMgdG8gcG93ZXIgT3BlbkFQSSBpbiBub2RlLgoKIyMgUXVpY2sgU3RhcnQgRXhwcmVzcwoKKiBTZWUgW2V4cHJlc3Mtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2tvZ29zb2Z0d2FyZWxsYy9vcGVuLWFwaS90cmVlL21hc3Rlci9wYWNrYWdlcy9leHByZXNzLW9wZW5hcGkpJm5ic3A7Jm5ic3A7Jm5ic3A7WyFbZXhwcmVzcy1vcGVuYXBpIERvd25sb2Fkc11bZXhwcmVzcy1vcGVuYXBpLWRvd25sb2Fkcy1pbWFnZV1dW2V4cHJlc3Mtb3BlbmFwaS1ucG0tdXJsXQoKIyMgUXVpY2sgU3RhcnQgS29hCiogU2VlIFtrb2Etb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2tvZ29zb2Z0d2FyZWxsYy9vcGVuLWFwaS90cmVlL21hc3Rlci9wYWNrYWdlcy9rb2Etb3BlbmFwaSkmbmJzcDsmbmJzcDsmbmJzcDtbIVtrb2Etb3BlbmFwaSBEb3dubG9hZHNdW2tvYS1vcGVuYXBpLWRvd25sb2Fkcy1pbWFnZV1dW2tvYS1vcGVuYXBpLW5wbS11cmxdCgojIyBQYWNrYWdlcwoqIFtleHByZXNzLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9rb2dvc29mdHdhcmVsbGMvb3Blbi1hcGkvdHJlZS9tYXN0ZXIvcGFja2FnZXMvZXhwcmVzcy1vcGVuYXBpKQoqIFtmZXRjaC1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20va29nb3NvZnR3YXJlbGxjL29wZW4tYXBpL3RyZWUvbWFzdGVyL3BhY2thZ2VzL2ZldGNoLW9wZW5hcGkpCiogW2ZzLXJvdXRlc10oaHR0cHM6Ly9naXRodWIuY29tL2tvZ29zb2Z0d2FyZWxsYy9vcGVuLWFwaS90cmVlL21hc3Rlci9wYWNrYWdlcy9mcy1yb3V0ZXMpCiogW29wZW5hcGktZGVmYXVsdC1zZXR0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9rb2dvc29mdHdhcmVsbGMvb3Blbi1hcGkvdHJlZS9tYXN0ZXIvcGFja2FnZXMvb3BlbmFwaS1kZWZhdWx0LXNldHRlcikKKiBbb3BlbmFwaS1mcmFtZXdvcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9rb2dvc29mdHdhcmVsbGMvb3Blbi1hcGkvdHJlZS9tYXN0ZXIvcGFja2FnZXMvb3BlbmFwaS1mcmFtZXdvcmspCiogW29wZW5hcGktanNvbnNjaGVtYS1wYXJhbWV0ZXJzXShodHRwczovL2dpdGh1Yi5jb20va29nb3NvZnR3YXJlbGxjL29wZW4tYXBpL3RyZWUvbWFzdGVyL3BhY2thZ2VzL29wZW5hcGktanNvbnNjaGVtYS1wYXJhbWV0ZXJzKQoqIFtvcGVuYXBpLXJlcXVlc3QtY29lcmNlcl0oaHR0cHM6Ly9naXRodWIuY29tL2tvZ29zb2Z0d2FyZWxsYy9vcGVuLWFwaS90cmVlL21hc3Rlci9wYWNrYWdlcy9vcGVuYXBpLXJlcXVlc3QtY29lcmNlcikKKiBbb3BlbmFwaS1yZXF1ZXN0LXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL2tvZ29zb2Z0d2FyZWxsYy9vcGVuLWFwaS90cmVlL21hc3Rlci9wYWNrYWdlcy9vcGVuYXBpLXJlcXVlc3QtdmFsaWRhdG9yKQoqIFtvcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL2tvZ29zb2Z0d2FyZWxsYy9vcGVuLWFwaS90cmVlL21hc3Rlci9wYWNrYWdlcy9vcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvcikKKiBbb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20va29nb3NvZnR3YXJlbGxjL29wZW4tYXBpL3RyZWUvbWFzdGVyL3BhY2thZ2VzL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvcikKKiBbb3BlbmFwaS10eXBlc10oaHR0cHM6Ly9naXRodWIuY29tL2tvZ29zb2Z0d2FyZWxsYy9vcGVuLWFwaS90cmVlL21hc3Rlci9wYWNrYWdlcy9vcGVuYXBpLXR5cGVzKQoKIyMgRGV2ZWxvcG1lbnQKClRoaXMgbW9ub3JlcG8gdXNlcyBsZXJuYSBmb3IgZGV2ZWxvcG1lbnQuICBTZWUgdGhlIHJvb3QgcGFja2FnZS5qc29uIGZvciBoZWxwZnVsIHNjcmlwdHMuCgojIyMgVHlwaWNhbCBXb3JrZmxvdyBmb3IgQ29udHJpYnV0b3JzCgpMZXQncyBzYXkgeW91J3JlIHdvcmtpbmcgb24gYSBwYWNrYWdlIHVuZGVyIFsuL3BhY2thZ2VzXShodHRwczovL2dpdGh1Yi5jb20va29nb3NvZnR3YXJlbGxjL29wZW4tYXBpL3RyZWUvbWFzdGVyL3BhY2thZ2VzKS4gIEhlcmUncyB3aGF0IHlvdSBkbzoKCjEuIGBjZCBvcGVuLWFwaWAKMS4gYG5wbSBydW4gYm9vdHN0cmFwYAoxLiBgbnBtIHRgCjEuIE1ha2UgeW91ciBjaGFuZ2VzLgogIDEuIF9EbyBub3QgYnVtcCB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24uXyAgQSBtYWludGFpbmVyIHdpbGwgaGFuZGxlIHRoYXQgb25jZSB5b3VyIFBSIGlzIG1lcmdlZC4KMS4gT25jZSB5b3UncmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzOgogIDEuIENyZWF0ZSBhIG5ldyBicmFuY2ggYGdpdCBjaGVja291dCAtYiBteS1icmFuY2hgIChpbiBjYXNlIHlvdSBoYXZlbid0IGRvbmUgc28gYWxyZWFkeSkuCiAgMS4gYC4vYmluL2NvbW1pdCBwYWNrYWdlcy88cGFja2FnZV95b3UncmVfd29ya2luZ19vbj4gJ2NvbW1pdCBtZXNzYWdlIGRlc2NyaWJpbmcgeW91ciBjaGFuZ2UuICBjYW4gYmUgbXVsdGkgbGluZSBoZXJlLiAganVzdCBjbG9zZSB3aXRoIGEgc2luZ2xlIHF1b3RlIGxpa2Ugc286J2AKICAxLiBQdXNoIHlvdXIgY2hhbmdlIHRvIHlvdXIgZm9yawogIDEuIE9wZW4gYSBQUi4KCiMjIyBiaW4KClNldmVyYWwgc2NyaXB0cyBoYXZlIGJlZW4gY3JlYXRlZCB0byBhaWQgaW4gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9ub3JlcG8gKHNlZSBbLi9iaW5dKC4vYmluKSkuICBUaGV5IGFzc3VtZSB0aGF0IHlvdXIgYCRQV0RgIGlzIHRoZSByb290IG9mIHRoZSByZXBvc2l0b3J5LiAgSGVyZSBpcyBhIGJyaWVmIHN1bW1hcnkgb2YgY29tbW9uIGFjdGlvbnM6CgoqIENvbW1pdCBjaGFuZ2VzIHRvIGEgcGFja2FnZSAtIGAuL2Jpbi9jb21taXQgcGFja2FnZXMvPHBhY2thZ2VfdG9fY29tbWl0PiAnQ29tbWl0IG1lc3NhZ2UnYCAodGhlIGNvbW1pdCBtZXNzYWdlIHdpbGwgYmUgcHJlcGVuZGVkIHdpdGggdGhlIHBhY2thZ2UgbmFtZSBlLmcuIGA8cGFja2FnZV90b19jb21taXQ+OiBDb21taXQgbWVzc2FnZWAKKiBUaGVzZSByZWR1Y2UgYm9pbGVycGxhdGUgYW5kIGFyZSBjYWxsZWQgZnJvbSBucG0gc2NyaXB0cyBpbiBsZWFmIHJlcG9zLgogICogbnljCiAgKiB0c2MKICAqIG1vY2hhCgojIyBMSUNFTlNFCgpgYGAKVGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTggS29nbyBTb2Z0d2FyZSBMTEMKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgpUSEUgU09GVFdBUkUuCmBgYAoKW2V4cHJlc3Mtb3BlbmFwaS1kb3dubG9hZHMtaW1hZ2VdOiBodHRwOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2V4cHJlc3Mtb3BlbmFwaS5zdmcKW2V4cHJlc3Mtb3BlbmFwaS1ucG0tdXJsXTogaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9leHByZXNzLW9wZW5hcGkKW2tvYS1vcGVuYXBpLWRvd25sb2Fkcy1pbWFnZV06IGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0va29hLW9wZW5hcGkuc3ZnCltrb2Etb3BlbmFwaS1ucG0tdXJsXTogaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9rb2Etb3BlbmFwaQoKW2NvdmVyYWxscy11cmxdOiBodHRwczovL2NvdmVyYWxscy5pby9naXRodWIva29nb3NvZnR3YXJlbGxjL29wZW4tYXBpP2JyYW5jaD1tYWluCltjb3ZlcmFsbHMtaW1hZ2VdOiBodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIva29nb3NvZnR3YXJlbGxjL29wZW4tYXBpL2JhZGdlLnN2Zz9icmFuY2g9bWFpbgo= readmeEtag: '"8f1d406d4ad10b939db247a64e8ebfb658ba4536"' readmeLastModified: Wed, 08 May 2024 21:06:34 GMT repositoryId: 48869446 description: A Monorepo of various packages to power OpenAPI in node created: '2016-01-01T04:28:48Z' updated: '2024-09-05T11:17:21Z' language: JavaScript archived: false stars: 889 watchers: 13 forks: 233 owner: kogosoftwarellc logo: https://avatars.githubusercontent.com/u/15419153?v=4 license: MIT repoEtag: '"7b22f4d754b6e58aa8c820f4e0f2913fac239e343da6d4e13f28e0d62325bf14"' repoLastModified: Thu, 05 Sep 2024 11:17:21 GMT foundInMaster: true - source: https://openapi.tools/ name: BaucisJS + baucis-openapi3 homepage: https://github.com/metadevpro/baucis-openapi3 language: Node.js source_description: >- Create REST resources with persistence on MongoDB and expose OpenAPI v.3 contracts category: Server link: https://www.npmjs.com/package/baucis-openapi3 repository: https://github.com/metadevpro/baucis-openapi3 v2: false v3: true repositoryMetadata: base64Readme: >- YmF1Y2lzLW9wZW5hcGkzCj09PT09PT09PT09PT09PQoKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL21ldGFkZXZwcm8vYmF1Y2lzLW9wZW5hcGkzLnN2ZyldKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9tZXRhZGV2cHJvL2JhdWNpcy1vcGVuYXBpMykKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvbWV0YWRldnByby9iYXVjaXMtb3BlbmFwaTMvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvbWV0YWRldnByby9iYXVjaXMtb3BlbmFwaTM/YnJhbmNoPW1hc3RlcikKWyFbRGVwZW5kZW5jeSBTdGF0dXNdKGh0dHBzOi8vZGF2aWQtZG0ub3JnL21ldGFkZXZwcm8vYmF1Y2lzLW9wZW5hcGkzLnN2ZyldKGh0dHBzOi8vZGF2aWQtZG0ub3JnL21ldGFkZXZwcm8vYmF1Y2lzLW9wZW5hcGkzKQpbIVtLbm93biBWdWxuZXJhYmlsaXRpZXNdKGh0dHBzOi8vc255ay5pby90ZXN0L25wbS9iYXVjaXMtb3BlbmFwaTMvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9zbnlrLmlvL3Rlc3QvbnBtL2JhdWNpcy1vcGVuYXBpMykKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9iYXVjaXMtb3BlbmFwaTMuc3ZnKV0oaHR0cDovL2JhZGdlLmZ1cnkuaW8vanMvYmF1Y2lzLW9wZW5hcGkzKQpbIVtHcmVlbmtlZXBlciBiYWRnZV0oaHR0cHM6Ly9iYWRnZXMuZ3JlZW5rZWVwZXIuaW8vbWV0YWRldnByby9iYXVjaXMtb3BlbmFwaTMuc3ZnKV0oaHR0cHM6Ly9ncmVlbmtlZXBlci5pby8pCgpbIVtOUE1dKGh0dHBzOi8vbm9kZWkuY28vbnBtL2JhdWNpcy1vcGVuYXBpMy5wbmc/ZG93bmxvYWRzPXRydWUmZG93bmxvYWRSYW5rPXRydWUmc3RhcnM9dHJ1ZSldKGh0dHBzOi8vbm9kZWkuY28vbnBtL2JhdWNpcy1vcGVuYXBpMy8pCgoKVGhpcyBtb2R1bGUgZ2VuZXJhdGVzIGN1c3RvbWl6YWJsZSBbT3BlbkFQSSAzLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKSBkZWZpbml0aW9ucyBmb3IgeW91ciBCYXVjaXMgQVBJLgpVc2UgdGhpcyBtb2R1bGUgaW4gY29uanVuY3Rpb24gd2l0aCBbQmF1Y2lzXShodHRwczovL2dpdGh1Yi5jb20vd3BybC9iYXVjaXMpLgoKClVzYWdlCi0tLS0tCgpJbnN0YWxsIHdpdGg6CgogICAgbnBtIGluc3RhbGwgLS1zYXZlIGJhdWNpcyBiYXVjaXMtb3BlbmFwaTMKCkluY2x1ZGUgdGhlIHBhY2thZ2UgYWZ0ZXIgYmF1Y2lzIGlzIGluY2x1ZGVkLCBhbmQgYmVmb3JlIHlvdXIgQVBJIGlzIGJ1aWx0LgoKYGBgamF2YXNjcmlwdAogICAgdmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7CiAgICB2YXIgYmF1Y2lzID0gcmVxdWlyZSgnYmF1Y2lzJyk7CiAgICB2YXIgYXBpRG9jID0gcmVxdWlyZSgnYmF1Y2lzLW9wZW5hcGkzJyk7CgogICAgdmFyIGFwcCA9IGV4cHJlc3MoKTsKCiAgICAvLyAuLi4gU2V0IHVwIGEgbW9uZ29vc2Ugc2NoZW1hIC4uLgoKICAgIGJhdWNpcy5yZXN0KCd2ZWdldGFibGUnKTsKICAgIGFwcC51c2UoJy9hcGknLCBiYXVjaXMoKSk7CmBgYAoKVGhlbiwgYWNjZXNzIGUuZy4gYEdFVCBodHRwOi8vbG9jYWxob3N0OjMzMzMvYXBpL29wZW5hcGkuanNvbmAuICBTZWUgdGhlIFtCYXVjaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS93cHJsL2JhdWNpcykgcmVwbyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBidWlsZGluZyBSRVNUIEFQSXMgd2l0aCBbQmF1Y2lzXShodHRwczovL2dpdGh1Yi5jb20vd3BybC9iYXVjaXMpLgoKVGVzdHMKLS0tLS0KQ2hhbmdlIHRoZSBgdGVzdC9maXh1cmVzL2NvbmZpZy5qc29uYCBpZiBuZWVkZWQsIHRvIHBvaW50IHRvIGEgdmFsaWQgbW9uZ29kYiBkYXRhYmFzZS4KVGhlbiBydW46CgpgYGAKbnBtIHRlc3QKYGBgCgoKRXh0ZW5zaWJpbGl0eQotLS0tLS0tLS0tLS0tCgpJZiB5b3Ugd2FudCB0byBtb2RpZnkgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbiwgZ2VuZXJhdGUgdGhlIGRlZmluaXRpb24gZmlyc3QuICAoVGhpcyB3aWxsIGhhcHBlbiBhdXRvbWF0aWNhbGx5IG90aGVyd2lzZS4pCgpVc2UgdGhlIGBvcGVuQXBpM2AgbWVtYmVyIG9mIHRoZSBjb250cm9sbGVyIHRvIGV4dGVuZCBgcGF0aHNgIGFuZCBgY29tcG9uZW50c2AgcGVyIGNvbnRyb2xsZXIuCgpgYGBqYXZhc2NyaXB0CmNvbnRyb2xsZXIuZ2VuZXJhdGVPcGVuQXBpMygpOwpjb250cm9sbGVyLm9wZW5BcGkzLnBhdGhzLnh5eiA9ICcxMjMnOwpjb250cm9sbGVyLm9wZW5BcGkzLmNvbXBvbmVudHMuc2NoZW1hcy54eXogPSB7fTsKYGBgCgpPciB1c2UgdGhlIGBvcGVuQXBpM0RvY3VtZW50YCBvZiB0aGUgYmF1Y2lzIGluc3RhbmNlIG1vZHVsZSB0byBhY2Nlc3MgYW5kIG1vZGlmeSBkaXJyZWN0eSB0aGUgZnVsbCBkb2N1bWVudCBhZnRlciBjYWxsaW5nIGBnZW5lcmF0ZU9wZW5BcGkzKClgIG9uIHRoZSBBUEkuCgpgYGBqYXZhc2NyaXB0CnZhciBiYXVjaXNJbnN0YW5jZSA9IGJhdWNpcygpOwoKLy9nZW5lcmF0ZSBzdGFuZGFyZCB0ZW1wbGF0ZSBmb3IgT3BlbkFQSTMKYmF1Y2lzSW5zdGFuY2UuZ2VuZXJhdGVPcGVuQXBpMygpOwovL2V4dGVuZCBPcGVuQVBJMyBkZWZpbml0aW9ucwpiYXVjaXNJbnN0YW5jZS5vcGVuQXBpM0RvY3VtZW50LmluZm8udGl0bGUgPSAibXlBcGkiOwoKYXBwLnVzZSgnL2FwaScsIGJhdWNpc0luc3RhbmNlKTsKYGBgCgpCYWNrd2FyZCBjb21wYXRpYmlsaXR5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkluIGNhc2UgeW91IHdhbnQgdG8gcHJvdmlkZSBhbiBlYXN5IHRyYW5zaXRpb24gYXMgcG9zc2libGUgZm9yIHlvdXIgY3VycmVudCBBUEkgY2xpZW50cy4gWW91IGNhbiBleHBvc2UgYm90aCBBUEkgZGVzY3JpcHRpb25zIGF0IHRoZSBzYW1lIHRpbWUgaW5jbHVkaW5nIGJvdGggbW9kdWxlczoKCmBgYGphdmFzY3JpcHQKICAgIHZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpOwogICAgdmFyIGJhdWNpcyA9IHJlcXVpcmUoJ2JhdWNpcycpOwogICAgdmFyIHN3YWdnZXIgPSByZXF1aXJlKCdiYXVjaXMtc3dhZ2dlcicpOwogICAgdmFyIHN3YWdnZXIyID0gcmVxdWlyZSgnYmF1Y2lzLXN3YWdnZXIyJyk7CiAgICB2YXIgb3BlbmFwaTMgPSByZXF1aXJlKCdiYXVjaXMtb3BlbmFwaTMnKTsKCiAgICB2YXIgYXBwID0gZXhwcmVzcygpOwoKICAgIC8vIC4uLiBTZXQgdXAgYSBtb25nb29zZSBzY2hlbWEgLi4uCgogICAgYmF1Y2lzLnJlc3QoJ3ZlZ2V0YWJsZScpOwogICAgYXBwLnVzZSgnL2FwaScsIGJhdWNpcygpKTsKYGBgCgpBZnRlciB0aGF0OgotIFN3YWdnZXIgMS4xIGRvYyB3aWxsIGJlIGV4cG9zZWQgYXQgYC9hcGkvZG9jdW1lbnRhdGlvbmAKLSBTd2FnZ2VyIDIuMCBkb2Mgd2lsbCBiZSBleHBvc2VkIGF0IGAvYXBpL3N3YWdnZXIuanNvbmAKLSBPcGVuQVBJIDMuMCBkb2Mgd2lsbCBiZSBleHBvc2VkIGF0IGAvYXBpL29wZW5hcGkuanNvbmAKCgpDb250YWN0Ci0tLS0tLS0KCiAqIFtAbWV0YWQzdl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9tZXRhZDN2KSBodHRwczovL21ldGFkZXYucHJvCiAqIFtAcG1vbGluYW1dKGh0dHBzOi8vdHdpdHRlci5jb20vcG1vbGluYW0pCgpSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZS4gJmNvcHk7IDIwMTctMjAxOCBNZXRhZGV2Cg== readmeEtag: '"911d64ea488af9377794cca8eec31a8a217f35df"' readmeLastModified: Mon, 01 Apr 2019 21:55:30 GMT repositoryId: 83848050 description: BaucisJS pluging for generating OpenAPI 3.0 compliance API contracts. created: '2017-03-03T22:41:11Z' updated: '2020-10-09T16:51:43Z' language: JavaScript archived: false stars: 13 watchers: 3 forks: 2 owner: metadevpro logo: https://avatars.githubusercontent.com/u/24300914?v=4 license: MIT repoEtag: '"5036292614f8d00a6d3dcec234db27b98fb1671c1c676ee30cef23dda8cc705e"' repoLastModified: Fri, 09 Oct 2020 16:51:43 GMT foundInMaster: true id: e39508ff695c02cf804c421dd228064e - source: - https://openapi.tools/ - openapi3 tags name: '@smartrecruiters/openapi-first' category: - Server - Parsers language: Node.js link: https://www.npmjs.com/package/@smartrecruiters/openapi-first repository: https://github.com/smartrecruiters/openapi-first source_description: > Initializes your API express application with the description in OpenAPI 3.0 format using provided middlewares (parsers, validators, controller, defaults setting) or custom ones v2: false v3: true repositoryMetadata: base64Readme: >- IyBAc21hcnRyZWNydWl0ZXJzL29wZW5hcGktZmlyc3QKClshW05QTSBWZXJzaW9uXVtucG0taW1hZ2VdXVtucG0tdXJsXQpbIVtOUE0gRG93bmxvYWRzXVtkb3dubG9hZHMtaW1hZ2VdXVtkb3dubG9hZHMtdXJsXQpbIVtOb2RlLmpzIFZlcnNpb25dW25vZGUtdmVyc2lvbi1pbWFnZV1dW25vZGUtdmVyc2lvbi11cmxdClshW0xpY2VuY2VdW2xpY2Vuc2UtaW1hZ2VdXVtsaWNlbnNlLXVybF0KWyFbQnVpbGRdW3RyYXZpcy1pbWFnZV1dW3RyYXZpcy11cmxdCgpTdGFydCB5b3VyIG5vZGUgUkVTVCBhcHAgd2l0aCBkZXNpZ25pbmcgQVBJIGZpcnN0IQoKIyMgSXMgaXQgZm9yIHlvdT8KCklmIHlvdToKLSB1c2UgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDMuMCB0byBkb2N1bWVudCB5b3VyIFJFU1QgQVBJcyB3cml0dGVuIGluIG5vZGUuanMsCi0gbGlrZSBkZXNpZ24gZmlyc3QgYXBwcm9hY2ggcmVnYXJkaW5nIFJFU1QgQVBJcwotIHdhbnQgeW91ciBzcGVjaWZpY2F0aW9uIHRvIGJlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggb2YgeW91ciBBUEksCi0gd2FudCB0byBoYW5kbGUgdmFsaWRhdGlvbiBhbmQgcGFyc2luZyBvZiByZXF1ZXN0cyBxdWVyeSwgcGF0aCwgYm9keSwgY29udGVudC10eXBlIGluIGEgdW5pZmllZCBtYW5uZXIgZm9yIGFsbCBBUEkgZW5kcG9pbnRzLAoKdGhlbiBgQHNtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLWZpcnN0YCBpcyB3aGF0IHlvdSBhcmUgbG9va2luZyBmb3IhCgpUaGlzIG1vZHVsZSBpbml0aWFsaXplcyB5b3VyIEFQSSBjb25uZWN0LXN0eWxlIGFwcGxpY2F0aW9uIHdpdGggc3BlY2lmaWNhdGlvbiBpbgpbT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDMuMF0oaHR0cHM6Ly9vcGVuYXBpcy5vcmcvc3BlY2lmaWNhdGlvbikgZm9ybWF0LgoKIyMgSG93IHRvIHN0YXJ0CgpMZXQncyBzYXkgeW91IGhhdmUgc3BlY2lmaWNhdGlvbiBpbiBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wIGluIGBzcGVjLmpzb25gOgoKYGBgamF2YXNjcmlwdAp7CiAgICAib3BlbmFwaSI6ICIzLjAuMCIsCiAgICAiaW5mbyI6IHsKICAgICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICAgInRpdGxlIjogIkhlbGxvIFdvcmxkIEFQSSIKICAgIH0sCiAgICAicGF0aHMiOiB7CiAgICAgICAgIi9oZWxsbyI6IHsKICAgICAgICAgICAgImdldCI6IHsKICAgICAgICAgICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN1Y2Nlc3MiLAogICAgICAgICAgICAgICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL0dyZWV0aW5nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAieC1zd2FnZ2VyLXJvdXRlci1jb250cm9sbGVyIjogImdyZWV0aW5nL2hlbGxvIiwKICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImluIjogInF1ZXJ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAibmFtZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQiOiAid29ybGQiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9LAogICAgImNvbXBvbmVudHMiOiB7CiAgICAgICAgInNjaGVtYXMiOiB7CiAgICAgICAgICAgICJHcmVldGluZyI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZ3JlZXRpbmciOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KYGBgCgpOb3cgeW91IGNhbiBpbXBsZW1lbnQgY29ubmVjdC1zdHlsZSBtaWRkbGV3YXJlIHdpdGggImJ1c2luZXNzIGxvZ2ljIiBpbiBgZ3JlZXRpbmcvaGVsbG8uanNgOgoKYGBgamF2YXNjcmlwdAptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHJlcSwgcmVzKSB7CiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7Z3JlZXRpbmc6IGBIZWxsbywgJHtyZXEucXVlcnkubmFtZX0hYH0pCn0KYGBgCgpOb3csIGxldCdzIG1ha2UgYW4gYGFwcC5qc2AgZmlsZToKYGBgamF2YXNjcmlwdApjb25zdCBvcGVuQXBpRmlyc3QgPSByZXF1aXJlKCdAc21hcnRyZWNydWl0ZXJzL29wZW5hcGktZmlyc3QnKQpjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpCgovLyBjcmVhdGUgZXhwcmVzcyBhcHAKY29uc3QgYXBwID0gZXhwcmVzcygpCgpjb25zdCBzcGVjID0gcmVxdWlyZSgnLi9zcGVjLmpzb24nKQoKLy8gY3JlYXRlIG9wZW4gYXBpIHNwZWNpZmljYXRpb24gaW5pdGlhbGl6ZXIKY29uc3QgYXBpID0gb3BlbkFwaUZpcnN0KGFwcCwgc3BlYykKCi8vIHRvIGVuYWJsZSBzZXR0aW5nIGRlZmF1bHQgdmFsdWVzIG9uIGVtcHR5IHF1ZXJ5IHBhcmFtcwphcGkudXNlKHJlcXVpcmUoJ0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1maXJzdC9taWRkbGV3YXJlcy9xdWVyeS9kZWZhdWx0cycpKCkpCgovLyB0byBsaW5rIHRoZSBzcGVjaWZpY2F0aW9uIHdpdGggY29kZSBpbiAnYXBpJyBkaXJlY3RvcnkKYXBpLnVzZShyZXF1aXJlKCdAc21hcnRyZWNydWl0ZXJzL29wZW5hcGktZmlyc3QvbWlkZGxld2FyZXMvY29udHJvbGxlcnMvYnktcHJvcGVydHknKSh7ZGlyOiBfX2Rpcm5hbWV9KSkKCmFwcC5saXN0ZW4oODA4MCkKCmBgYAoKV2UgY2FuIG5vdyBydW4gdGhlIGFwcGxpY2F0aW9uOgpgYGBiYXNoCm5vZGUgYXBwCmBgYApUbyB2ZXJpZnkgaXQncyB3b3JraW5nLCBsZXQncyBoaXQgdGhlIGVuZHBvaW50OgpgYGBiYXNoCmN1cmwgbG9jYWxob3N0OjgwODAvaGVsbG8/d2hvPXdvcmxkCmBgYApUaGUgcmVzcG9uc2Ugc2hvdWxkIGJlIDIwMCB3aXRoIGJvZHk6CmBgYGpzb24KeyJncmVldGluZyI6IkhlbGxvLCB3b3JsZCEifQpgYGAKCiMjIG9wZW5hcGkgbWlkZGxld2FyZXMKCllvdSBjYW4gdXNlIG9uZSBvZiB0aGUgbWlkZGxld2FyZXMgdW5kZXIgYEBzbWFydHJlY3J1aXRlcnMvbWlkZGxld2FyZXMvKmAgb3IgY3JlYXRlIHlvdXIgb3duLiBTdWNoIG1pZGRsZXdhcmVzIHdpbGwgYmUKYXBwbGllZCB0byBjb25uZWN0LXN0eWxlIGFwcCBmb3IgZWFjaCBvcGVyYXRpb24gYXMgdGhleSBhcmUgc3BlY2lmaWNhdGlvbiBhbmQgb3BlcmF0aW9uIGF3YXJlLiBGb3IgaW5zdGFuY2UsCmBAc21hcnRyZWNydWl0ZXJzL21pZGRsZXdhcmVzL3F1ZXJ5L3ZhbGlkYXRlYCBtaWRkbGV3YXJlIHdpbGwgYmUgYXBwbGllZCB0byBhbnkgYW5kIG9ubHkgb3BlcmF0aW9uIHdoaWNoIGhhcyBxdWVyeQpwYXJhbWV0ZXJzIGRlZmluZWQsIHBhc3NpbmcgYW4gRXJyb3IgdG8gYG5leHRgIGNhbGxiYWNrIHdoZW4gYHJlcS5xdWVyeWAgaXMgaW52YWxpZC4KCkN1cnJlbnRseSBmb2xsb3dpbmcgbWlkZGxld2FyZXMgYXJlIGF2YWlsYWJsZToKLSByZXF1ZXN0IGJvZHkgdmFsaWRhdGlvbiwKLSByZXF1ZXN0IGJvZHkgcGFyc2luZyAoZS5nLiBmb3JtIHN0cmluZyBwYXJhbWV0ZXJzIHRvIHR5cGVzIHNwZWNpZmllZCBpbiBBUEkgZG9jdW1lbnRhdGlvbikKLSBzZXR0aW5nIGRlZmF1bHQgdmFsdWVzIG9uIHJlcXVlc3QgYm9keSwKLSBxdWVyeSBwYXJhbWV0ZXJzIHZhbGlkYXRpb24sCi0gc2V0dGluZyBkZWZhdWx0IHF1ZXJ5IHBhcmFtZXRlcnMgdmFsdWVzCi0gcmVtb3ZpbmcgdW5zcGVjaWZpZWQgcXVlcnkgcGFyYW1ldGVycywKLSBwYXRoIHBhcmFtZXRlcnMgdmFsaWRhdGlvbiwKLSBjb250ZW50IHR5cGUgdmFsaWRhdGlvbiwKLSByb3V0aW5nIHRvIGFwcHJvcHJpYXRlIGNvbnRyb2xsZXIsCi0gb2F1dGggc2NvcGVzIGF1dGhvcml6YXRpb24sCi0gZXJyb3IgaGFuZGxlcnMgKGBNaXNzaW5nUmVxdWlyZWRTY29wZXNgKS4KCiMjIyBWYWxpZGF0aW9uIG1pZGRsZXdhcmVzCgpNaWRkbGV3YXJlcyBmb3IgcmVxdWVzdCBib2R5LCBxdWVyeSBhbmQgcGF0aCB2YWxpZGF0aW9uIGV4cGVjdHMgc2NoZW1hIHZhbGlkYXRvcnMgaW4gb3JkZXIgdG8gYmUgY3JlYXRlZC4KVGhlIHJlY29tbWVuZGVkIHNjaGVtYSB2YWxpZGF0b3IgaXMgW2BAc21hcnRyZWNydWl0ZXJzL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvcmBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1zY2hlbWFzLXZhbGlkYXRvcikKCiMjIyBDcmVhdGUgeW91ciBvd24gb3BlbmFwaSBtaWRkbGV3YXJlCgpBZGRpbmcgeW91ciBvd24gb3BlbmFwaSBpcyB2ZXJ5IHNpbXBsZS4gTGV0J3Mgc2F5IHlvdXIgb3BlcmF0aW9uIGhhcyBleHRlbnNpb24KW09wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAgU3BlY2lmaWNhdGlvbiBFeHRlbnNpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4xLm1kI3NwZWNpZmljYXRpb25FeHRlbnNpb25zKSAneC1vbmx5LWFkbWluJy4KSWYgaXQgaXMgc2V0IG9uLCB0aGlzIHdpbGwgbWVhbiB0aGF0IG9ubHkgdXNlcnMgd2l0aCBhZG1pbiBjYW4gdXNlIHRoaXMgbWV0aG9kLgpBc3N1bWluZyBzb21lIHByZWNlZGluZyBtaWRkbGV3YXJlIGlzIHNldHRpbmcgYHJlcS51c2VyLnJvbGVgLCB5b3UgY2FuIHdyaXRlIGEgc2ltcGxlIG9wZW5hcGkgbWlkZGxld2FyZQp0aGF0IHdpbGwgZ2F0aGVyIGluZm9ybWF0aW9uIGZyb20gb3BlcmF0aW9uIG9iamVjdCBhbmQgYWN0IGFjY29yZGluZ2x5OgpgYGBqYXZhc2NyaXB0CmNvbnN0IG9ubHlBZG1pbk1pZGRsZXdhcmUgPSBvcGVyYXRpb24gPT4KICAgIChyZXEsIHJlcywgbmV4dCkgPT4gewogICAgICAgIGlmKG9wZXJhdGlvblsneC1vbmx5LWFkbWluJ10gJiYgcmVxLnVzZXIucm9sZSAhPT0gImFkbWluIikgewogICAgICAgICAgICByZXMuc3RhdHVzKDQwMykuanNvbigiQWNjZXNzIGZvcmJpZGRlbi4gRm9yIHRoaXMgb3BlcmF0aW9uLCB5b3UgbmVlZCB0byBoYXZlIGFkbWluIHJvbGUiKQogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV4dCgpCiAgICB9CmBgYAoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2Ugc2VlIG91ciBbQ29kZSBvZiBjb25kdWN0XShkb2NzL0NPREVfT0ZfQ09ORFVDVC5tZCkgYW5kIFtDb250cmlidXRpbmcgZ3VpZGVsaW5lc10oZG9jcy9DT05UUklCVVRJTkcubWQpCgojIyBMaWNlbnNlCgpbTUlUXShMSUNFTlNFKQoKW25wbS1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHNtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLWZpcnN0LnN2ZwpbbnBtLXVybF06IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1maXJzdApbZG93bmxvYWRzLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vQHNtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLWZpcnN0LnN2ZwpbZG93bmxvYWRzLXVybF06IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1maXJzdApbbm9kZS12ZXJzaW9uLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ub2RlL3YvQHNtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLWZpcnN0LnN2Zwpbbm9kZS12ZXJzaW9uLXVybF06IGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9kb3dubG9hZC8KW2xpY2Vuc2UtdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL3NtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLWZpcnN0L2Jsb2IvbWFzdGVyL0xJQ0VOU0UKW2xpY2Vuc2UtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9sL0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1maXJzdC5zdmcKW3RyYXZpcy11cmxdOiBodHRwczovL3RyYXZpcy1jaS5jb20vc21hcnRyZWNydWl0ZXJzL29wZW5hcGktZmlyc3QKW3RyYXZpcy1pbWFnZV06IGh0dHBzOi8vYXBpLnRyYXZpcy1jaS5jb20vc21hcnRyZWNydWl0ZXJzL29wZW5hcGktZmlyc3Quc3ZnP2JyYW5jaD1tYXN0ZXIK readmeEtag: '"9b52f3708e00f17d78a68292d12aed651637223f"' readmeLastModified: Wed, 07 Aug 2024 14:25:42 GMT repositoryId: 124390318 description: Start your node REST app with designing API first! created: '2018-03-08T12:46:22Z' updated: '2024-08-07T14:31:26Z' language: JavaScript archived: false stars: 38 watchers: 23 forks: 5 owner: smartrecruiters logo: https://avatars.githubusercontent.com/u/1618540?v=4 license: MIT repoEtag: '"8857aed29815a2991d26f3d32dd4085fbf830d70a2489f72ba09c5213ad159e4"' repoLastModified: Wed, 07 Aug 2024 14:31:26 GMT foundInMaster: true id: b6882b9c2b3386fd0dac448d07cbcb36 - source: https://openapi.tools/ name: API Platform category: - Server - Server Implementations language: PHP link: https://api-platform.com repository: https://github.com/api-platform/api-platform source_description: REST and GraphQL framework to build modern API-driven projects v2: true v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vYXBpLXBsYXRmb3JtLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vYXBpLXBsYXRmb3JtLmNvbS9pbWFnZXMvbG9nb3MvTG9nb19DaXJjbGUlMjB3ZWJieSUyMHRleHQlMjBibHVlLnBuZyIgYWx0PSJBUEkgUGxhdGZvcm0iIHdpZHRoPSIyNTAiIGhlaWdodD0iMjUwIj48L2E+PC9oMT4KCkFQSSBQbGF0Zm9ybSBpcyBhIG5leHQtZ2VuZXJhdGlvbiB3ZWIgZnJhbWV3b3JrIGRlc2lnbmVkIHRvIGVhc2lseSBjcmVhdGUgQVBJLWZpcnN0IHByb2plY3RzIHdpdGhvdXQgY29tcHJvbWlzaW5nIGV4dGVuc2liaWxpdHkKYW5kIGZsZXhpYmlsaXR5OgoKKiBEZXNpZ24geW91ciBvd24gZGF0YSBtb2RlbCBhcyBwbGFpbiBvbGQgUEhQIGNsYXNzZXMgb3IgWyoqaW1wb3J0IGFuIGV4aXN0aW5nIG9udG9sb2d5KipdKGh0dHBzOi8vYXBpLXBsYXRmb3JtLmNvbS9kb2NzL3NjaGVtYS1nZW5lcmF0b3IpLgoqICoqRXhwb3NlIGluIG1pbnV0ZXMgYSBoeXBlcm1lZGlhIFJFU1Qgb3IgYSBHcmFwaFFMIEFQSSoqIHdpdGggcGFnaW5hdGlvbiwgZGF0YSB2YWxpZGF0aW9uLCBhY2Nlc3MgY29udHJvbCwgcmVsYXRpb24gZW1iZWRkaW5nLAogIGZpbHRlcnMsIGFuZCBlcnJvciBoYW5kbGluZy4uLgoqIEJlbmVmaXQgZnJvbSBDb250ZW50IE5lZ290aWF0aW9uOiBbR3JhcGhRTF0oaHR0cHM6Ly9hcGktcGxhdGZvcm0uY29tL2RvY3MvY29yZS9ncmFwaHFsLyksIFtKU09OLUxEXShodHRwczovL2pzb24tbGQub3JnKSwgW0h5ZHJhXShodHRwczovL2h5ZHJhLWNnLmNvbSksCiAgW0hBTF0oaHR0cHM6Ly9naXRodWIuY29tL21pa2VrZWxseS9oYWxfc3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9oYWxfc3BlY2lmaWNhdGlvbi5tZCksIFtKU09OOkFQSV0oaHR0cHM6Ly9qc29uYXBpLm9yZy8pLCBbWUFNTF0oaHR0cHM6Ly95YW1sLm9yZy8pLCBbSlNPTl0oaHR0cHM6Ly93d3cuanNvbi5vcmcvKSwgW1hNTF0oaHR0cHM6Ly93d3cudzMub3JnL1hNTC8pIGFuZCBbQ1NWXShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjNDE4MC50eHQpIGFyZSBzdXBwb3J0ZWQgb3V0IG9mIHRoZSBib3guCiogRW5qb3kgdGhlICoqYmVhdXRpZnVsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIEFQSSBkb2N1bWVudGF0aW9uKiogKFtPcGVuQVBJXShodHRwczovL2FwaS1wbGF0Zm9ybS5jb20vZG9jcy9jb3JlL29wZW5hcGkvKSkuCiogQWRkIFsqKmEgY29udmVuaWVudCBNYXRlcmlhbCBEZXNpZ24gYWRtaW5pc3RyYXRpb24gaW50ZXJmYWNlKipdKGh0dHBzOi8vYXBpLXBsYXRmb3JtLmNvbS9kb2NzL2FkbWluKSBidWlsdCB3aXRoIFtSZWFjdF0oaHR0cHM6Ly9yZWFjdGpzLm9yZy8pCiAgd2l0aG91dCB3cml0aW5nIGEgbGluZSBvZiBjb2RlLgoqICoqU2NhZmZvbGQgZnVsbHkgZnVuY3Rpb25hbCBQcm9ncmVzc2l2ZS1XZWItQXBwcyBhbmQgbW9iaWxlIGFwcHMqKiBidWlsdCB3aXRoIFtOZXh0LmpzXShodHRwczovL2FwaS1wbGF0Zm9ybS5jb20vZG9jcy9jbGllbnQtZ2VuZXJhdG9yL25leHRqcy8pIChSZWFjdCksCltOdXh0LmpzXShodHRwczovL2FwaS1wbGF0Zm9ybS5jb20vZG9jcy9jbGllbnQtZ2VuZXJhdG9yL251eHRqcy8pIChWdWUuanMpIG9yIFtSZWFjdCBOYXRpdmVdKGh0dHBzOi8vYXBpLXBsYXRmb3JtLmNvbS9kb2NzL2NsaWVudC1nZW5lcmF0b3IvcmVhY3QtbmF0aXZlLykKdGhhbmtzIHRvIFt0aGUgY2xpZW50IGdlbmVyYXRvcl0oaHR0cHM6Ly9hcGktcGxhdGZvcm0uY29tL2RvY3MvY2xpZW50LWdlbmVyYXRvci8pIChhIFZ1ZS5qcyBnZW5lcmF0b3IgaXMgYWxzbyBhdmFpbGFibGUpLgoqIEluc3RhbGwgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCBhbmQgZGVwbG95IHlvdXIgcHJvamVjdCBpbiBwcm9kdWN0aW9uIHVzaW5nICoqW0RvY2tlcl0oaHR0cHM6Ly9hcGktcGxhdGZvcm0uY29tL2RvY3MvZGlzdHJpYnV0aW9uKSoqCmFuZCBbS3ViZXJuZXRlc10oaHR0cHM6Ly9hcGktcGxhdGZvcm0uY29tL2RvY3MvZGVwbG95bWVudC9rdWJlcm5ldGVzKS4KKiBFYXNpbHkgYWRkICoqW09BdXRoXShodHRwczovL29hdXRoLm5ldC8pIGF1dGhlbnRpY2F0aW9uKiouCiogQ3JlYXRlIHNwZWNzIGFuZCB0ZXN0cyB3aXRoICoqW2EgZGV2ZWxvcGVyIGZyaWVuZGx5IEFQSSB0ZXN0aW5nIHRvb2xdKGh0dHBzOi8vYXBpLXBsYXRmb3JtLmNvbS9kb2NzL2Rpc3RyaWJ1dGlvbi90ZXN0aW5nLykqKi4KClRoZSBvZmZpY2lhbCBwcm9qZWN0IGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlICoqW29uIHRoZSBBUEkgUGxhdGZvcm0gd2Vic2l0ZV0oaHR0cHM6Ly9hcGktcGxhdGZvcm0uY29tKSoqLgoKQVBJIFBsYXRmb3JtIGVtYnJhY2VzIG9wZW4gd2ViIHN0YW5kYXJkcyBhbmQgdGhlCltMaW5rZWQgRGF0YV0oaHR0cHM6Ly93d3cudzMub3JnL3N0YW5kYXJkcy9zZW1hbnRpY3dlYi9kYXRhKSBtb3ZlbWVudC4gWW91ciBBUEkgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cG9zZSBzdHJ1Y3R1cmVkIGRhdGEuCkl0IG1lYW5zIHRoYXQgeW91ciBBUEkgUGxhdGZvcm0gYXBwbGljYXRpb24gaXMgdXNhYmxlICoqb3V0IG9mIHRoZSBib3gqKiB3aXRoIHRlY2hub2xvZ2llcyBvZgp0aGUgc2VtYW50aWMgd2ViLgoKSXQgYWxzbyBtZWFucyB0aGF0ICoqeW91ciBTRU8gd2lsbCBiZSBpbXByb3ZlZCoqIGJlY2F1c2UgKipbR29vZ2xlIGxldmVyYWdlcyB0aGVzZSBmb3JtYXRzXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9zZWFyY2gvZG9jcy9ndWlkZXMvaW50cm8tc3RydWN0dXJlZC1kYXRhKSoqLgoKTGFzdCBidXQgbm90IGxlYXN0LCB0aGUgc2VydmVyIGNvbXBvbmVudCBvZiBBUEkgUGxhdGZvcm0gaXMgYnVpbHQgb24gdG9wIG9mIHRoZSBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbSkgZnJhbWV3b3JrLAp3aGlsZSBjbGllbnQgY29tcG9uZW50cyBsZXZlcmFnZSBbUmVhY3RdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvKSAoW1Z1ZS5qc10oaHR0cHM6Ly92dWVqcy5vcmcvKSBmbGF2b3JzIGFyZSBhbHNvIGF2YWlsYWJsZSkuCkl0IG1lYW5zIHRoYXQgeW91IGNhbjoKCiogVXNlICoqdGhvdXNhbmRzIG9mIFN5bWZvbnkgYnVuZGxlcyBhbmQgUmVhY3QgY29tcG9uZW50cyoqIHdpdGggQVBJIFBsYXRmb3JtLgoqIEludGVncmF0ZSBBUEkgUGxhdGZvcm0gaW4gKiphbnkgZXhpc3RpbmcgU3ltZm9ueSwgUmVhY3QsIG9yIFZ1ZSBhcHBsaWNhdGlvbioqLgoqIFJldXNlICoqYWxsIHlvdXIgU3ltZm9ueSBhbmQgSmF2YVNjcmlwdCBza2lsbHMqKiwgYW5kIGJlbmVmaXQgZnJvbSB0aGUgaW5jcmVkaWJsZSBhbW91bnQgb2YgZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUuCiogRW5qb3kgdGhlIHBvcHVsYXIgW0RvY3RyaW5lIE9STV0oaHR0cHM6Ly93d3cuZG9jdHJpbmUtcHJvamVjdC5vcmcvcHJvamVjdHMvb3JtLmh0bWwpICh1c2VkIGJ5IGRlZmF1bHQsIGJ1dCBmdWxseSBvcHRpb25hbDoKICB5b3UgY2FuIHVzZSB0aGUgZGF0YSBwcm92aWRlciB5b3Ugd2FudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBNb25nb0RCIGFuZCBFbGFzdGljc2VhcmNoKQoKIyMgSW5zdGFsbAoKW1JlYWQgdGhlIG9mZmljaWFsICJHZXR0aW5nIFN0YXJ0ZWQiIGd1aWRlXShodHRwczovL2FwaS1wbGF0Zm9ybS5jb20vZG9jcy9kaXN0cmlidXRpb24vKS4KCiMjIENyZWRpdHMKCkNyZWF0ZWQgYnkgW0vDqXZpbiBEdW5nbGFzXShodHRwczovL2R1bmdsYXMuZnIpLiBDb21tZXJjaWFsIHN1cHBvcnQgaXMgYXZhaWxhYmxlIGF0IFtMZXMtVGlsbGV1bHMuY29vcF0oaHR0cHM6Ly9sZXMtdGlsbGV1bHMuY29vcCkuCg== readmeEtag: '"76a11567f28b360e0fc0597ffdefb227a6c9cf86"' readmeLastModified: Tue, 06 Aug 2024 14:12:56 GMT repositoryId: 31790438 description: >- 🕸️ Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time. created: '2015-03-06T21:46:05Z' updated: '2024-09-04T22:17:57Z' language: TypeScript archived: false stars: 8428 watchers: 213 forks: 953 owner: api-platform logo: https://avatars.githubusercontent.com/u/13420081?v=4 license: MIT repoEtag: '"8f0c6f7524b0f5df5b032e9149e2f1840e1251a01ca471a527c74723222e7ab5"' repoLastModified: Wed, 04 Sep 2024 22:17:57 GMT foundInMaster: true id: d14f5904300aabf1ceef4660a6b3d57e - source: https://openapi.tools/ name: Mojolicious::Plugin::OpenApi category: Server language: Perl link: https://metacpan.org/pod/Mojolicious::Plugin::OpenAPI repository: https://github.com/jhthorsen/mojolicious-plugin-openapi source_description: > Mojolicious::Plugin::OpenAPI is a plugin for Mojolicious framework that add routes and input/output validation to your Mojolicious application based on OpenAPI description documents.' v2: true v3: true repositoryMetadata: base64Readme: >- IyBOQU1FCgpNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJIC0gT3BlbkFQSSAvIFN3YWdnZXIgcGx1Z2luIGZvciBNb2pvbGljaW91cwoKIyBTWU5PUFNJUwoKICAgICMgSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIE1vam9saWNpb3VzOjpQbHVnaW46Ok9wZW5BUEkgd2l0aCBhICJmdWxsIGFwcCIuCiAgICAjIFNlZSB0aGUgbGlua3MgYWZ0ZXIgdGhpcyBleGFtcGxlIGZvciBtb3JlIGluZm9ybWF0aW9uLgogICAgdXNlIE1vam9saWNpb3VzOjpMaXRlOwoKICAgICMgQmVjYXVzZSB0aGUgcm91dGUgbmFtZSAiZWNobyIgbWF0Y2hlcyB0aGUgIngtbW9qby1uYW1lIiwgdGhpcyByb3V0ZQogICAgIyB3aWxsIGJlIG1vdmVkIHVuZGVyICJiYXNlUGF0aCIsIHJlc3VsdGluZyBpbiAiUE9TVCAvYXBpL2VjaG8iCiAgICBwb3N0ICIvZWNobyIgPT4gc3ViIHsKCiAgICAgICMgVmFsaWRhdGUgaW5wdXQgcmVxdWVzdCBvciByZXR1cm4gYW4gZXJyb3IgZG9jdW1lbnQKICAgICAgbXkgJGMgPSBzaGlmdC0+b3BlbmFwaS0+dmFsaWRfaW5wdXQgb3IgcmV0dXJuOwoKICAgICAgIyBHZW5lcmF0ZSBzb21lIGRhdGEKICAgICAgbXkgJGRhdGEgPSB7Ym9keSA9PiAkYy0+cmVxLT5qc29ufTsKCiAgICAgICMgVmFsaWRhdGUgdGhlIG91dHB1dCByZXNwb25zZSBhbmQgcmVuZGVyIGl0IHRvIHRoZSB1c2VyIGFnZW50CiAgICAgICMgdXNpbmcgYSBjdXN0b20gIm9wZW5hcGkiIGhhbmRsZXIuCiAgICAgICRjLT5yZW5kZXIob3BlbmFwaSA9PiAkZGF0YSk7CiAgICB9LCAiZWNobyI7CgogICAgIyBMb2FkIHNwZWNpZmljYXRpb24gYW5kIHN0YXJ0IHdlYiBzZXJ2ZXIKICAgIHBsdWdpbiBPcGVuQVBJID0+IHt1cmwgPT4gImRhdGE6Ly8vc3dhZ2dlci55YW1sIn07CiAgICBhcHAtPnN0YXJ0OwoKICAgIF9fREFUQV9fCiAgICBAQCBzd2FnZ2VyLnlhbWwKICAgIHN3YWdnZXI6ICIyLjAiCiAgICBpbmZvOiB7IHZlcnNpb246ICIwLjgiLCB0aXRsZTogIkVjaG8gU2VydmljZSIgfQogICAgc2NoZW1lczogWyJodHRwcyJdCiAgICBiYXNlUGF0aDogIi9hcGkiCiAgICBwYXRoczoKICAgICAgL2VjaG86CiAgICAgICBwb3N0OgogICAgICAgICB4LW1vam8tbmFtZTogImVjaG8iCiAgICAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgIC0geyBpbjogImJvZHkiLCBuYW1lOiAiYm9keSIsIHNjaGVtYTogeyB0eXBlOiAib2JqZWN0IiB9IH0KICAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgIDIwMDoKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiRWNobyByZXNwb25zZSIKICAgICAgICAgICAgIHNjaGVtYTogeyB0eXBlOiAib2JqZWN0IiB9CgpTZWUgW01vam9saWNpb3VzOjpQbHVnaW46Ok9wZW5BUEk6Okd1aWRlczo6T3BlbkFQSXYyXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvTW9qb2xpY2lvdXMlM0ElM0FQbHVnaW4lM0ElM0FPcGVuQVBJJTNBJTNBR3VpZGVzJTNBJTNBT3BlbkFQSXYyKSBvcgpbTW9qb2xpY2lvdXM6OlBsdWdpbjo6T3BlbkFQSTo6R3VpZGVzOjpPcGVuQVBJdjNdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Nb2pvbGljaW91cyUzQSUzQVBsdWdpbiUzQSUzQU9wZW5BUEklM0ElM0FHdWlkZXMlM0ElM0FPcGVuQVBJdjMpIGZvciBtb3JlIGluIGRlcHRoCmluZm9ybWF0aW9uIGFib3V0IGhvdyB0byB1c2UgW01vam9saWNpb3VzOjpQbHVnaW46Ok9wZW5BUEldKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Nb2pvbGljaW91cyUzQSUzQVBsdWdpbiUzQSUzQU9wZW5BUEkpIHdpdGggYSAiZnVsbCBhcHAiLgpFdmVuIHdpdGggYSAibGl0ZSBhcHAiIGl0IGNhbiBiZSB2ZXJ5IHVzZWZ1bCB0byByZWFkIHRob3NlIGd1aWRlcy4KCkxvb2tpbmcgYXQgdGhlIGRvY3VtZW50YXRpb24gZm9yClsieC1tb2pvLXRvIiBpbiBNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJOjpHdWlkZXM6Ok9wZW5BUEl2Ml0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSUzQSUzQUd1aWRlcyUzQSUzQU9wZW5BUEl2MiN4LW1vam8tdG8pIGNhbiBiZSBlc3BlY2lhbGx5CnVzZWZ1bC4gKFRoZSBsb2dpYyBpcyB0aGUgc2FtZSBmb3IgT3BlbkFQSXYyIGFuZCBPcGVuQVBJdjMpCgojIERFU0NSSVBUSU9OCgpbTW9qb2xpY2lvdXM6OlBsdWdpbjo6T3BlbkFQSV0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSkgaXMgW01vam9saWNpb3VzOjpQbHVnaW5dKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Nb2pvbGljaW91cyUzQSUzQVBsdWdpbikgdGhhdCBhZGQgcm91dGVzIGFuZAppbnB1dC9vdXRwdXQgdmFsaWRhdGlvbiB0byB5b3VyIFtNb2pvbGljaW91c10oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzKSBhcHBsaWNhdGlvbiBiYXNlZCBvbiBhIE9wZW5BUEkKKFN3YWdnZXIpIHNwZWNpZmljYXRpb24uIFRoaXMgcGx1Z2luIHN1cHBvcnRzIGJvdGggdmVyc2lvbiBbMi4wXSgjc2NoZW1hKSBhbmQKWzMueF0oI3NjaGVtYSksIHRob3VnaCAzLnggX21pZ2h0XyBoYXZlIHNvbWUgbWlzc2luZyBmZWF0dXJlcy4KCkhhdmUgYSBsb29rIGF0IHRoZSBbIlNFRSBBTFNPIl0oI3NlZS1hbHNvKSBmb3IgcmVmZXJlbmNlcyB0byBwbHVnaW5zIGFuZCBvdGhlciB1c2VmdWwKZG9jdW1lbnRhdGlvbi4KClBsZWFzZSByZXBvcnQgaW4gW2lzc3Vlc10oaHR0cHM6Ly9naXRodWIuY29tL2podGhvcnNlbi9qc29uLXZhbGlkYXRvci9pc3N1ZXMpCm9yIG9wZW4gcHVsbCByZXF1ZXN0cyB0byBlbmhhbmNlIHRoZSAzLjAgc3VwcG9ydC4KCiMgSEVMUEVSUwoKIyMgb3BlbmFwaS5zcGVjCgogICAgJGhhc2ggPSAkYy0+b3BlbmFwaS0+c3BlYygkanNvbl9wb2ludGVyKQogICAgJGhhc2ggPSAkYy0+b3BlbmFwaS0+c3BlYygiL2luZm8vdGl0bGUiKQogICAgJGhhc2ggPSAkYy0+b3BlbmFwaS0+c3BlYzsKClJldHVybnMgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gQSBKU09OIFBvaW50ZXIgY2FuIGJlIHVzZWQgdG8gZXh0cmFjdCBhCmdpdmVuIHNlY3Rpb24gb2YgdGhlIHNwZWNpZmljYXRpb24uIFRoZSBkZWZhdWx0IHZhbHVlIG9mIGAkanNvbl9wb2ludGVyYCB3aWxsCmJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IG9wZXJhdGlvbi4gRXhhbXBsZToKCiAgICB7CiAgICAgICJwYXRocyI6IHsKICAgICAgICAiL3BldHMiOiB7CiAgICAgICAgICAiZ2V0IjogewogICAgICAgICAgICAvLyBUaGlzIGRhdGFzdHJ1Y3R1cmUgaXMgcmV0dXJuZWQgYnkgZGVmYXVsdAogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQoKIyMgb3BlbmFwaS52YWxpZGF0ZQoKICAgIEBlcnJvcnMgPSAkYy0+b3BlbmFwaS0+dmFsaWRhdGU7CgpVc2VkIHRvIHZhbGlkYXRlIGEgcmVxdWVzdC4gYEBlcnJvcnNgIGhvbGRzIGEgbGlzdCBvZgpbSlNPTjo6VmFsaWRhdG9yOjpFcnJvcl0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL0pTT04lM0ElM0FWYWxpZGF0b3IlM0ElM0FFcnJvcikgb2JqZWN0cyBvciBlbXB0eSBsaXN0IG9uIHZhbGlkIGlucHV0LgoKTm90ZSB0aGF0IHRoaXMgaGVscGVyIGlzIG9ubHkgZm9yIGN1c3RvbWl6YXRpb24uIFlvdSBwcm9iYWJseSB3YW50Clsib3BlbmFwaS52YWxpZFxfaW5wdXQiXSgjb3BlbmFwaS12YWxpZF9pbnB1dCkgaW4gbW9zdCBjYXNlcy4KCiMjIG9wZW5hcGkudmFsaWRcX2lucHV0CgogICAgJGMgPSAkYy0+b3BlbmFwaS0+dmFsaWRfaW5wdXQ7CgpSZXR1cm5zIHRoZSBbTW9qb2xpY2lvdXM6OkNvbnRyb2xsZXJdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Nb2pvbGljaW91cyUzQSUzQUNvbnRyb2xsZXIpIG9iamVjdCBpZiB0aGUgaW5wdXQgaXMgdmFsaWQgb3IKYXV0b21hdGljYWxseSByZW5kZXIgYW4gZXJyb3IgZG9jdW1lbnQgaWYgbm90IGFuZCByZXR1cm4gZmFsc2UuIFNlZQpbIlNZTk9QU0lTIl0oI3N5bm9wc2lzKSBmb3IgZXhhbXBsZSB1c2FnZS4KCiMgSE9PS1MKCltNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvTW9qb2xpY2lvdXMlM0ElM0FQbHVnaW4lM0ElM0FPcGVuQVBJKSB3aWxsIGVtaXQgdGhlIGZvbGxvd2luZyBob29rcyBvbiB0aGUKW2FwcGxpY2F0aW9uXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvTW9qb2xpY2lvdXMpIG9iamVjdC4KCiMjIG9wZW5hcGlcX3JvdXRlc1xfYWRkZWQKCkVtaXR0ZWQgYWZ0ZXIgYWxsIHJvdXRlcyBoYXZlIGJlZW4gYWRkZWQgYnkgdGhpcyBwbHVnaW4uCgogICAgJGFwcC0+aG9vayhvcGVuYXBpX3JvdXRlc19hZGRlZCA9PiBzdWIgewogICAgICBteSAoJG9wZW5hcGksICRyb3V0ZXMpID0gQF87CgogICAgICBmb3IgbXkgJHJvdXRlIChAJHJvdXRlcykgewogICAgICAgIC4uLgogICAgICB9CiAgICB9KTsKClRoaXMgaG9vayBpcyBFWFBFUklNRU5UQUwgYW5kIHN1YmplY3QgZm9yIGNoYW5nZS4KCiMgUkVOREVSRVIKClRoaXMgcGx1Z2luIHJlZ2lzdGVyIGEgbmV3IGhhbmRsZXIgY2FsbGVkIGBvcGVuYXBpYC4gVGhlIHNwZWNpYWwgdGhpbmcgYWJvdXQKdGhpcyBoYW5kbGVyIGlzIHRoYXQgaXQgd2lsbCB2YWxpZGF0ZSB0aGUgZGF0YSBiZWZvcmUgc2VuZGluZyBpdCBiYWNrIHRvIHRoZQp1c2VyIGFnZW50LiBFeGFtcGxlczoKCiAgICAkYy0+cmVuZGVyKGpzb24gPT4ge2ZvbyA9PiAxMjN9KTsgICAgIyB3aXRob3V0IHZhbGlkYXRpb24KICAgICRjLT5yZW5kZXIob3BlbmFwaSA9PiB7Zm9vID0+IDEyM30pOyAjIHdpdGggdmFsaWRhdGlvbgoKVGhpcyBoYW5kbGVyIHdpbGwgYWxzbyB1c2UgWyJyZW5kZXJlciJdKCNyZW5kZXJlcikgdG8gZm9ybWF0IHRoZSBvdXRwdXQgZGF0YS4gVGhlIGNvZGUKYmVsb3cgc2hvd3MgdGhlIGRlZmF1bHQgWyJyZW5kZXJlciJdKCNyZW5kZXJlcikgd2hpY2ggZ2VuZXJhdGVzIEpTT04gZGF0YToKCiAgICAkYXBwLT5wbHVnaW4oCiAgICAgIE9wZW5BUEkgPT4gewogICAgICAgIHJlbmRlcmVyID0+IHN1YiB7CiAgICAgICAgICBteSAoJGMsICRkYXRhKSA9IEBfOwogICAgICAgICAgcmV0dXJuIE1vam86OkpTT046OmVuY29kZV9qc29uKCRkYXRhKTsKICAgICAgICB9CiAgICAgIH0KICAgICk7CgojIEFUVFJJQlVURVMKCiMjIHJvdXRlCgogICAgJHJvdXRlID0gJG9wZW5hcGktPnJvdXRlOwoKVGhlIHBhcmVudCBbTW9qb2xpY2lvdXM6OlJvdXRlczo6Um91dGVdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Nb2pvbGljaW91cyUzQSUzQVJvdXRlcyUzQSUzQVJvdXRlKSBvYmplY3QgZm9yIGFsbCB0aGUgT3BlbkFQSSBlbmRwb2ludHMuCgojIyB2YWxpZGF0b3IKCiAgICAkanYgPSAkb3BlbmFwaS0+dmFsaWRhdG9yOwoKSG9sZHMgZWl0aGVyIGEgW0pTT046OlZhbGlkYXRvcjo6U2NoZW1hOjpPcGVuQVBJdjJdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9KU09OJTNBJTNBVmFsaWRhdG9yJTNBJTNBU2NoZW1hJTNBJTNBT3BlbkFQSXYyKSBvciBhCltKU09OOjpWYWxpZGF0b3I6OlNjaGVtYTo6T3BlbkFQSXYzXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvSlNPTiUzQSUzQVZhbGlkYXRvciUzQSUzQVNjaGVtYSUzQSUzQU9wZW5BUEl2Mykgb2JqZWN0LgoKIyBNRVRIT0RTCgojIyByZWdpc3RlcgoKICAgICRvcGVuYXBpID0gJG9wZW5hcGktPnJlZ2lzdGVyKCRhcHAsIFwlY29uZmlnKTsKICAgICRvcGVuYXBpID0gJGFwcC0+cGx1Z2luKE9wZW5BUEkgPT4gXCVjb25maWcpOwoKTG9hZHMgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiwgdmFsaWRhdGVzIGl0IGFuZCBhZGQgcm91dGVzIHRvClskYXBwXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvTW9qb2xpY2lvdXMpLiBJdCB3aWxsIGFsc28gc2V0IHVwIFsiSEVMUEVSUyJdKCNoZWxwZXJzKSBhbmQgYWRkcyBhCltiZWZvcmVcX3JlbmRlcl0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzI2JlZm9yZV9yZW5kZXIpIGhvb2sgZm9yIGF1dG8tcmVuZGVyaW5nIG9mIGVycm9yCmRvY3VtZW50cy4gVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgb2JqZWN0IGluc3RhbmNlLCB3aGljaCBhbGxvdyB5b3UgdG8gYWNjZXNzCnRoZSBbIkFUVFJJQlVURVMiXSgjYXR0cmlidXRlcykgYWZ0ZXIgeW91IGxvYWQgdGhlIHBsdWdpbi4KCmAlY29uZmlnYCBjYW4gaGF2ZToKCiMjIyBjb2VyY2UKClNlZSBbImNvZXJjZSIgaW4gSlNPTjo6VmFsaWRhdG9yXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvSlNPTiUzQSUzQVZhbGlkYXRvciNjb2VyY2UpIGZvciBwb3NzaWJsZSB2YWx1ZXMgdGhhdCBgY29lcmNlYCBjYW4gdGFrZS4KCkRlZmF1bHQ6IGJvb2xlYW5zLG51bWJlcnMsc3RyaW5ncwoKVGhlIGRlZmF1bHQgdmFsdWUgd2lsbCBpbmNsdWRlICJkZWZhdWx0cyIgaW4gdGhlIGZ1dHVyZSwgb25jZSB0aGF0IGlzIHN0YWJsZSBlbm91Z2guCgojIyMgZGVmYXVsdFxfcmVzcG9uc2UKCkluc3RydWN0aW9ucyBmb3IKWyJhZGRcX2RlZmF1bHRcX3Jlc3BvbnNlXF9zY2hlbWEiIGluIEpTT046OlZhbGlkYXRvcjo6U2NoZW1hOjpPcGVuQVBJdjJdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9KU09OJTNBJTNBVmFsaWRhdG9yJTNBJTNBU2NoZW1hJTNBJTNBT3BlbkFQSXYyI2FkZF9kZWZhdWx0X3Jlc3BvbnNlX3NjaGVtYSkuIChBbHNvIHVzZWQKZm9yIE9wZW5BUEl2MykKCiMjIyBmb3JtYXQKClNldCB0aGlzIHRvIGEgZGVmYXVsdCBsaXN0IG9mIGZpbGUgZXh0ZW5zaW9ucyB0aGF0IHlvdXIgQVBJIGFjY2VwdHMuIFRoaXMgdmFsdWUKY2FuIGJlIG92ZXJ3cml0dGVuIGJ5ClsieC1tb2pvLXRvIiBpbiBNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJOjpHdWlkZXM6Ok9wZW5BUEl2Ml0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSUzQSUzQUd1aWRlcyUzQSUzQU9wZW5BUEl2MiN4LW1vam8tdG8pLgoKVGhpcyBjb25maWcgcGFyYW1ldGVyIGlzIEVYUEVSSU1FTlRBTCBhbmQgc3ViamVjdCBmb3IgY2hhbmdlLgoKIyMjIGxvZ1xfbGV2ZWwKCmBsb2dfbGV2ZWxgIGlzIHVzZWQgd2hlbiBsb2dnaW5nIGludmFsaWQgcmVxdWVzdC9yZXNwb25zZSBlcnJvciBtZXNzYWdlcy4KCkRlZmF1bHQ6ICJ3YXJuIi4KCiMjIyBvcFxfc3BlY1xfdG9cX3JvdXRlCgpgb3Bfc3BlY190b19yb3V0ZWAgY2FuIGJlIHByb3ZpZGVkIGlmIHlvdSB3YW50IHRvIGFkZCByb3V0ZSBkZWZpbml0aW9ucwp3aXRob3V0IHVzaW5nICJ4LW1vam8tdG8iLiBFeGFtcGxlOgoKICAgICRhcHAtPnBsdWdpbihPcGVuQVBJID0+IHtvcF9zcGVjX3RvX3JvdXRlID0+IHN1YiB7CiAgICAgIG15ICgkcGx1Z2luLCAkb3Bfc3BlYywgJHJvdXRlKSA9IEBfOwoKICAgICAgIyBIZXJlIGFyZSB0d28gd2F5cyB0byBjdXN0b21pemUgd2hlcmUgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QKICAgICAgJHJvdXRlLT50byhjYiA9PiBzdWIgeyBzaGlmdC0+cmVuZGVyKG9wZW5hcGkgPT4gLi4uKSB9KTsKICAgICAgJHJvdXRlLT50byh1Y2ZpcnN0ICIkb3Bfc3BlYy0+e29wZXJhdGlvbklkfSNoYW5kbGVfcmVxdWVzdCIpOwogICAgfX0pOwoKVGhpcyBmZWF0dXJlIGlzIEVYUEVSSU1FTlRBTCBhbmQgbWlnaHQgYmUgYWx0ZXJlZCBhbmQvb3IgcmVtb3ZlZC4KCiMjIyBwbHVnaW5zCgpBIGxpc3Qgb2YgT3BlbkFQSSBjbGFzc2VzIHRvIGV4dGVuZCB0aGUgZnVuY3Rpb25hbGl0eS4gRGVmYXVsdCBpczoKW01vam9saWNpb3VzOjpQbHVnaW46Ok9wZW5BUEk6OkNvcnNdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Nb2pvbGljaW91cyUzQSUzQVBsdWdpbiUzQSUzQU9wZW5BUEklM0ElM0FDb3JzKSwKW01vam9saWNpb3VzOjpQbHVnaW46Ok9wZW5BUEk6OlNwZWNSZW5kZXJlcl0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSUzQSUzQVNwZWNSZW5kZXJlcikgYW5kCltNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJOjpTZWN1cml0eV0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSUzQSUzQVNlY3VyaXR5KS4KCiAgICAkYXBwLT5wbHVnaW4oT3BlbkFQSSA9PiB7cGx1Z2lucyA9PiBbcXcoK0NvcnMgK1NwZWNSZW5kZXJlciArU2VjdXJpdHkpXX0pOwoKWW91IGNhbiBsb2FkIHlvdXIgb3duIHBsdWdpbnMgYnkgZG9pbmc6CgogICAgJGFwcC0+cGx1Z2luKE9wZW5BUEkgPT4ge3BsdWdpbnMgPT4gW3F3KCtTcGVjUmVuZGVyZXIgTXk6OkNvb2w6Ok9wZW5BUEk6OlBsdWdpbildfSk7CgojIyMgcmVuZGVyZXIKClNlZSBbIlJFTkRFUkVSIl0oI3JlbmRlcmVyKS4KCiMjIyByb3V0ZQoKYHJvdXRlYCBjYW4gYmUgc3BlY2lmaWVkIGluIGNhc2UgeW91IHdhbnQgdG8gaGF2ZSBhIHByb3RlY3RlZCBBUEkuIEV4YW1wbGU6CgogICAgJGFwcC0+cGx1Z2luKE9wZW5BUEkgPT4gewogICAgICByb3V0ZSA9PiAkYXBwLT5yb3V0ZXMtPnVuZGVyKCIvYXBpIiktPnRvKCJ1c2VyI2F1dGgiKSwKICAgICAgdXJsICAgPT4gJGFwcC0+aG9tZS0+cmVsX2ZpbGUoImNvb2wuYXBpIiksCiAgICB9KTsKCiMjIyBza2lwXF92YWxpZGF0aW5nXF9zcGVjaWZpY2F0aW9uCgpVc2VkIHRvIHByZXZlbnQgY2FsbGluZyBbImVycm9ycyIgaW4gSlNPTjo6VmFsaWRhdG9yOjpTY2hlbWE6Ok9wZW5BUEl2Ml0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL0pTT04lM0ElM0FWYWxpZGF0b3IlM0ElM0FTY2hlbWElM0ElM0FPcGVuQVBJdjIjZXJyb3JzKSBmb3IgdGhlCnNwZWNpZmljYXRpb24uCgojIyMgc3BlY1xfcm91dGVcX25hbWUKCk5hbWUgb2YgdGhlIHJvdXRlIHRoYXQgaGFuZGxlcyB0aGUgImJhc2VQYXRoIiBwYXJ0IG9mIHRoZSBzcGVjaWZpY2F0aW9uIGFuZApzZXJ2ZXMgdGhlIHNwZWNpZmljYXRpb24uIERlZmF1bHRzIHRvICJ4LW1vam8tbmFtZSIgaW4gdGhlIHNwZWNpZmljYXRpb24gYXQKdGhlIHRvcCBsZXZlbC4KCiMjIyBzcGVjLCB1cmwKClNlZSBbInNjaGVtYSIgaW4gSlNPTjo6VmFsaWRhdG9yXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvSlNPTiUzQSUzQVZhbGlkYXRvciNzY2hlbWEpIGZvciB0aGUgZGlmZmVyZW50IGB1cmxgIGZvcm1hdHMgdGhhdCBpcwphY2NlcHRlZC4KCmBzcGVjYCBpcyBhbiBhbGlhcyBmb3IgInVybCIsIHdoaWNoIG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSBpZiB5b3VyCnNwZWNpZmljYXRpb24gaXMgd3JpdHRlbiBpbiBwZXJsLCBpbnN0ZWFkIG9mIEpTT04gb3IgWUFNTC4KCkhlcmUgYXJlIHNvbWUgY29tbW9uIHVzZXM6CgogICAgJGFwcC0+cGx1Z2luKE9wZW5BUEkgPT4ge3VybCAgPT4gJGFwcC0+aG9tZS0+cmVsX2ZpbGUoJ29wZW5hcGkueWFtbCcpKTsKICAgICRhcHAtPnBsdWdpbihPcGVuQVBJID0+IHt1cmwgID0+ICdodHRwczovL2V4YW1wbGUuY29tL3N3YWdnZXIuanNvbid9KTsKICAgICRhcHAtPnBsdWdpbihPcGVuQVBJID0+IHtzcGVjID0+IEpTT046OlZhbGlkYXRvcjo6U2NoZW1hOjpPcGVuQVBJdjMtPm5ldyguLi4pfSk7CiAgICAkYXBwLT5wbHVnaW4oT3BlbkFQSSA9PiB7c3BlYyA9PiB7c3dhZ2dlciA9PiAiMi4wIiwgcGF0aHMgPT4gey4uLn0sIC4uLn19KTsKCiMjIyB2ZXJzaW9uXF9mcm9tXF9jbGFzcwoKQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGRlbiBgL2luZm8vdmVyc2lvbmAgaW4gdGhlIEFQSSBzcGVjaWZpY2F0aW9uLCBmcm9tIHRoZQpyZXR1cm4gdmFsdWUgZnJvbSB0aGUgYFZFUlNJT04oKWAgbWV0aG9kIGluIGB2ZXJzaW9uX2Zyb21fY2xhc3NgLgoKRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYCRhcHBgLiBUaGlzIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIHRoZQoidmVyc2lvblxfZnJvbVxfY2xhc3MiIHRvIHplcm8gKDApLgoKIyBBVVRIT1JTCgojIyBQcm9qZWN0IEZvdW5kZXIKCkphbiBIZW5uaW5nIFRob3JzZW4gLSBgamh0aG9yc2VuQGNwYW4ub3JnYAoKIyMgQ29udHJpYnV0b3JzCgotIEJlcm5oYXJkIEdyYWYgPGF1Z2Vuc2FsYXRAZ21haWwuY29tPgotIERvdWcgQmVsbCA8ZG91Z0BwcmVhY3Rpb24ubWU+Ci0gRWQgSiA8bW9oYXdrMkB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci0gSGVucmlrIEFuZGVyc2VuIDxoZW1AZmliaWEuZGs+Ci0gSGVucmlrIEFuZGVyc2VuIDxoZW1AaGFtc3Rlci5kaz4KLSBJbHlhIFJhc3NhZGluIDxlbGNhbWxvc3RAZ21haWwuY29tPgotIEphbiBIZW5uaW5nIFRob3JzZW4gPGphbi5oZW5uaW5nQHRob3JzZW4ucG0+Ci0gSmFuIEhlbm5pbmcgVGhvcnNlbiA8amh0aG9yc2VuQGNwYW4ub3JnPgotIEppLUh5ZW9uIEdpbSA8cG90YXRvZ2ltQGdsdWVzeXMuY29tPgotIEpvZWwgQmVyZ2VyIDxqb2VsLmEuYmVyZ2VyQGdtYWlsLmNvbT4KLSBLcmFzaW1pciBCZXJvdiA8ay5iZXJvdkBnbWFpbC5jb20+Ci0gTGFycyBUaGVnbGVyIDxsdGhAZmliaWEuZGs+Ci0gTGVlIEpvaG5zb24gPGxlZUBnaXZlbmdhaW4uY2g+Ci0gTGlubi1IZWdlIEtyaXN0ZW5zZW4gPGxpbm4taGVnZUBzdGl4Lm5vPgotIE1hbnVlbCA8bWFudWVsQG1hdXN6LmF0PgotIE1hcnRpbiBSZW52b2l6ZSA8bWFydGluLnJlbnZvaXplQHB0ZnMtZXVyb3BlLmNvbT4KLSBNb2hhbW1hZCBTIEFud2FyIDxtb2hhbW1hZC5hbndhckB5YWhvby5jb20+Ci0gTmljayBNb3Jyb3R0IDxrbm93bGVkZ2VqdW5raWVAZ21haWwuY29tPgotIFJlbmVlIDxyZWJAcGVybC1zZXJ2aWNlcy5kZT4KLSBSb3kgU3RvcmV5IDxraXdpcm95QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KLSBTZWJNb3VybGhvdSA8MzU5MTg5NTMrU2ViTW91cmxob3VAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgotIFNlYk1vdXJsaG91IDxzZWJhc3RpZW4ubW91cmxob3VAanVzdGljZS5nZS5jaD4KLSBTZWJNb3VybGhvdSA8c2VibW91cmxob3VAeWFob28uZnI+Ci0gU8O4cmVuIEx1bmQgPHNsQGtleWNvcmUuZGs+Ci0gU3RlcGhhbiBIcmFkZWsgPGdpdGh1YkBocmFkZWsubmV0PgotIFN0ZXBoYW4gSHJhZGVrIDxzdGVwaGFuLmhyYWRla0BlY28uZGU+CgojIENPUFlSSUdIVCBBTkQgTElDRU5TRQoKQ29weXJpZ2h0IChDKSBKYW4gSGVubmluZyBUaG9yc2VuCgpUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZSwgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgp0aGUgdGVybXMgb2YgdGhlIEFydGlzdGljIExpY2Vuc2UgdmVyc2lvbiAyLjAuCgojIFNFRSBBTFNPCgotIFtNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJOjpHdWlkZXM6Ok9wZW5BUEl2Ml0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSUzQSUzQUd1aWRlcyUzQSUzQU9wZW5BUEl2MikKCiAgICBHdWlkZSBmb3IgaG93IHRvIHVzZSB0aGlzIHBsdWdpbiB3aXRoIE9wZW5BUEkgdmVyc2lvbiAyLjAgc3BlYy4KCi0gW01vam9saWNpb3VzOjpQbHVnaW46Ok9wZW5BUEk6Okd1aWRlczo6T3BlbkFQSXYzXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvTW9qb2xpY2lvdXMlM0ElM0FQbHVnaW4lM0ElM0FPcGVuQVBJJTNBJTNBR3VpZGVzJTNBJTNBT3BlbkFQSXYzKQoKICAgIEd1aWRlIGZvciBob3cgdG8gdXNlIHRoaXMgcGx1Z2luIHdpdGggT3BlbkFQSSB2ZXJzaW9uIDMuMCBzcGVjLgoKLSBbTW9qb2xpY2lvdXM6OlBsdWdpbjo6T3BlbkFQSTo6Q29yc10oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSUzQSUzQUNvcnMpCgogICAgUGx1Z2luIHRvIGFkZCBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyAoQ09SUykuCgotIFtNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJOjpTZWN1cml0eV0oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL01vam9saWNpb3VzJTNBJTNBUGx1Z2luJTNBJTNBT3BlbkFQSSUzQSUzQVNlY3VyaXR5KQoKICAgIFBsdWdpbiBmb3IgaGFuZGxpbmcgc2VjdXJpdHkgZGVmaW5pdGlvbnMgaW4geW91ciBzY2hlbWEuCgotIFtNb2pvbGljaW91czo6UGx1Z2luOjpPcGVuQVBJOjpTcGVjUmVuZGVyZXJdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9Nb2pvbGljaW91cyUzQSUzQVBsdWdpbiUzQSUzQU9wZW5BUEklM0ElM0FTcGVjUmVuZGVyZXIpCgogICAgUGx1Z2luIGZvciBleHBvc2luZyB5b3VyIHNwZWMgaW4gaHVtYW4gcmVhZGFibGUgb3IgSlNPTiBmb3JtYXQuCgotIFtodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKQoKICAgIE9mZmljaWFsIE9wZW5BUEkgd2Vic2l0ZS4K readmeEtag: '"181a2e75e3a4070b490bafd549b9cd816d1466a1"' readmeLastModified: Sun, 26 Feb 2023 01:22:10 GMT repositoryId: 60654453 description: OpenAPI / Swagger plugin for Mojolicious created: '2016-06-07T23:50:24Z' updated: '2024-08-07T08:30:25Z' language: Perl archived: false stars: 54 watchers: 18 forks: 44 owner: jhthorsen logo: https://avatars.githubusercontent.com/u/45729?v=4 repoEtag: '"ff844852b5673d0a206cbb88e8edce6c2ae9feb78bde6519586bb1ace902a884"' repoLastModified: Wed, 07 Aug 2024 08:30:25 GMT foundInMaster: true id: edf3e4e2b3dc32976ffd777bb48b410c - source: https://openapi.tools/ name: Fusio homepage: https://github.com/apioo/fusio language: PHP source_description: Open source API management platform category: - Server - Gateway - Server Implementations link: https://www.fusio-project.org/ repository: https://github.com/apioo/fusio v2: false v3: true repositoryMetadata: base64Readme: >- CjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZnVzaW8tcHJvamVjdC5vcmcvIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LmZ1c2lvLXByb2plY3Qub3JnL2ltZy9mdXNpb182NHB4LnBuZyI+PC9hPgo8L3A+CgojIEFib3V0CgpGdXNpbyBpcyBhbiBvcGVuIHNvdXJjZSBBUEkgbWFuYWdlbWVudCBwbGF0Zm9ybSB3aGljaCBoZWxwcyB0byBjcmVhdGUgaW5ub3ZhdGl2ZSBBUEkgc29sdXRpb25zLgoKIyMgVXNlLUNhc2VzCgoqIF9fQVBJLVByb2R1Y3RfXyAgCiAgRnVzaW8gaGVscHMgeW91IHRvIGNyZWF0ZSBhIGdyZWF0IEFQSSBwcm9kdWN0LCBiZXNpZGVzIGJ1aWxkaW5nIGFuIEFQSSBpdCBwcm92aWRlcyBhIGRldmVsb3BlciBwb3J0YWwgd2hlcmUgZGV2ZWxvcGVycwogIGNhbiByZWdpc3RlciBhbmQgYSB3YXkgdG8gbW9uZXRpemUgeW91ciBBUEkKKiBfX0FQSS1HYXRld2F5X18gIAogIEZ1c2lvIGNhbiBiZSB1c2VkIGFzIGdhdGV3YXkgdG8geW91ciBpbnRlcm5hbCBBUEkgYW5kIG1pY3Jvc2VydmljZXMuIEl0IGhhbmRsZXMgYWxsIGNvbW1vbiBmZWF0dXJlcyBsaWtlCiAgQXV0aG9yaXphdGlvbiwgUmF0ZS1MaW1pdGluZyBhbmQgU2NoZW1hLVZhbGlkYXRpb24KKiBfX1NQQS1CYWNrZW5kX18gIAogIEZ1c2lvIGNhbiBiZSB1c2VkIGFzIGJhY2tlbmQgdG8gYnVpbGQgU1BBcyB1c2luZyBwb3B1bGFyIEphdmFzY3JpcHQtRnJhbWV3b3JrcyBsaWtlIGkuZS4gQW5ndWxhciwgUmVhY3Qgb3IgVnVlLiBJdAogIHByb3ZpZGVzIGEgcG93ZXJmdWwgY29kZSBnZW5lcmF0b3Igd2hpY2ggY2FuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYW4gU0RLIGZvciB5b3VyIEFQSQoqIF9fTG93LUNvZGUtUGxhdGZvcm1fXyAgCiAgRnVzaW8gYWxsb3dzIHlvdSB0byBidWlsZCBBUEkgZW5kcG9pbnRzIHdpdGhvdXQgY29kaW5nIGtub3dsZWRnZS4gSS5lLiBpdCBwcm92aWRlcyBhbiBFbnRpdHkgZ2VuZXJhdG9yIHdoaWNoIHlvdSBjYW4KICB1c2UgdG8gZWFzaWx5IGNyZWF0ZSBjb21wbGV0ZSBDUlVEIEFQSXMuCiogX19BUEktRnJhbWV3b3JrX18gIAogIEZvciBtb3JlIGNvbXBsZXggdXNlIGNhc2VzIHlvdSBjYW4gdXNlIEZ1c2lvIGFsc28gYXMgZnJhbWV3b3JrIHRvIGJ1aWxkIGNvbXBsZXRlIEFQSXMgZnJvbSBzY3JhdGNoLiBUaGlzIG1lYW5zIHlvdQogIGJ1aWxkIGN1c3RvbSBhY3Rpb25zIHdoZXJlIHlvdSBjYW4gdXNlIHRoZSB3aWRlIFBIUCBlY29zeXN0ZW0gdG8gc29sdmUgeW91ciB0YXNrLgoKIyMgRmVhdHVyZXMKCkZ1c2lvIGhlbHBzIHlvdSB0byBidWlsZCBBUElzIHByb3ZpZGluZyBvdXQtb2YtdGhlLWJveCBlbnRlcnByaXNlIGZlYXR1cmVzIHNvIHRoYXQgeW91IGNhbiBjb25jZW50cmF0ZSBvbiB5b3VyIGJ1c2luZXNzCmNhc2UuIFBsZWFzZSB0YWtlIGEgbG9vayBhdCBvdXIgW2RvY3VtZW50YXRpb24gd2Vic2l0ZV0oaHR0cHM6Ly9kb2NzLmZ1c2lvLXByb2plY3Qub3JnLykKZm9yIG1vcmUgaW5mb3JtYXRpb24uIFRoZSBmb2xsb3dpbmcgZmVhdHVyZSBsaXN0IGdpdmVzIHlvdSBhIGZpcnN0IG92ZXJ2aWV3OgoKKiBfX09wZW5BUEkgZ2VuZXJhdGlvbl9fICAKICBGdXNpbyBnZW5lcmF0ZXMgYXV0b21hdGljYWxseSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZm9yIHRoZSBkZWZpbmVkIHJvdXRlcwoqIF9fU0RLIGdlbmVyYXRpb25fXyAgCiAgRnVzaW8gY2FuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjbGllbnQgU0RLIGZvciB5b3VyIEFQSSBiYXNlZCBvbiB0aGUgZGVmaW5lZCBzY2hlbWEKKiBfX1dlYmhvb2sgc3VwcG9ydF9fICAKICBGdXNpbyBjb250YWlucyBhIHdlYmhvb2sgc3lzdGVtIHdoaWNoIGhlbHBzIHRvIGJ1aWxkIHB1Ymxpc2gvc3Vic2NyaWJlIGZvciB5b3VyIEFQSQoqIF9fUmF0ZSBsaW1pdGluZ19fICAKICBGdXNpbyBwcm92aWRlcyBhIHdheSB0byByYXRlIGxpbWl0IHJlcXVlc3RzIGJhc2VkIG9uIHRoZSB1c2VyIG9yIGFwcAoqIF9fQXV0aG9yaXphdGlvbl9fICAKICBGdXNpbyB1c2VzIE9BdXRoMiBmb3IgQVBJIGF1dGhvcml6YXRpb24KKiBfX01vbmV0aXphdGlvbl9fICAKICBGdXNpbyBwcm92aWRlcyBhIHNpbXBsZSBwYXltZW50IHN5c3RlbSB0byBjaGFyZ2UgZm9yIHNwZWNpZmljIHJvdXRlcwoqIF9fVmFsaWRhdGlvbl9fICAKICBGdXNpbyB1c2VzIHRoZSBUeXBlU2NoZW1hIHRvIGF1dG9tYXRpY2FsbHkgdmFsaWRhdGUgaW5jb21pbmcgcmVxdWVzdCBkYXRhCiogX19BbmFseXRpY3NfXyAgCiAgRnVzaW8gbW9uaXRvcnMgYWxsIEFQSSBhY3Rpdml0aWVzIGFuZCBzaG93cyB0aGVtIG9uIGEgZGFzaGJvYXJkCiogX19Vc2VyIG1hbmFnZW1lbnRfXyAgCiAgRnVzaW8gcHJvdmlkZXMgYSBkZXZlbG9wZXIgYXBwIHdoZXJlIG5ldyB1c2VycyBjYW4gbG9naW4gb3IgcmVnaXN0ZXIgYSBuZXcgYWNjb3VudCB0aHJvdWdoIEdpdEh1YiwgR29vZ2xlLCBGYWNlYm9vayBvcgogIHRocm91Z2ggbm9ybWFsIGVtYWlsIHJlZ2lzdHJhdGlvbgoKIyBBcHBzCgpGdXNpbyBwcm92aWRlcyBtYW55IGFwcHMgd2hpY2ggaGVscCB0byB3b3JrIHdpdGggdGhlIEFQSS4gTW9zdGx5IGFwcHMgYXJlCnNpbXBsZSBKUyBhcHBzLCB3aGljaCB3b3JrIHdpdGggdGhlIGludGVybmFsIEFQSSBvZiBGdXNpby4gWW91IGNhbiBzZWUgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgYXBwcyBhdCBvdXIKW21hcmtldHBsYWNlXShodHRwczovL3d3dy5mdXNpby1wcm9qZWN0Lm9yZy9tYXJrZXRwbGFjZSkuIFlvdSBjYW4gaW5zdGFsbCBzdWNoIGFuIGFwcCBlaXRoZXIgdGhyb3VnaCBhIENMSSBjb21tYW5kIGkuZS4KYHBocCBiaW4vZnVzaW8gbWFya2V0cGxhY2U6aW5zdGFsbCBmdXNpb2Agb3IgdGhyb3VnaCB0aGUgYmFja2VuZCBhcHAuCgpBbGwgYXBwcyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBgYXBwcy9gIGZvbGRlci4gWW91IG5lZWQgdG8gdGVsbCBGdXNpbyB0aGUgcHVibGljIHVybCB0byB0aGUgYXBwcyBmb2xkZXIgYXQgdGhlIGAuZW52YApmaWxlIGJ5IGRlZmluaW5nIHRoZSBgQVBQX0FQUFNfVVJMYCB2YXJpYWJsZS4gRGVwZW5kaW5nIG9uIHlvdXIgc2V0dXAgdGhpcyBjYW4gYmUgZWl0aGVyIGEgY3VzdG9tIHN1Yi1kb21haW4gbGlrZQpgaHR0cHM6Ly9hcHBzLmFjbWUuY29tYCBvciBzaW1wbHkgdGhlIHN1YiBmb2xkZXIgYGh0dHBzOi8vYWNtZS5jb20vYXBwc2AuCgojIyBCYWNrZW5kCgohW0JhY2tlbmRdKGh0dHBzOi8vd3d3LmZ1c2lvLXByb2plY3Qub3JnL21lZGlhL2JhY2tlbmQvZGFzaGJvYXJkLnBuZykKClRoZSBiYWNrZW5kIGFwcCBpcyB0aGUgbWFpbiBhcHAgdG8gY29uZmlndXJlIGFuZCBtYW5hZ2UgeW91ciBBUEkuIFRoZSBpbnN0YWxsZXIgYXV0b21hdGljYWxseSBpbnN0YWxscyB0aGlzIGFwcC4gVGhlIGFwcAppcyBsb2NhdGVkIGF0IGAvYXBwcy9mdXNpby9gLgoKIyMgVlNDb2RlCgpGdXNpbyBwcm92aWRlcyBhIFtWU0NvZGUgZXh0ZW5zaW9uXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9RnVzaW8uZnVzaW8pCndoaWNoIGNhbiBiZSB1c2VkIHRvIHNpbXBsaWZ5IGFjdGlvbiBkZXZlbG9wbWVudC4gVGhpcyBtZWFucyB5b3UgY2FuIGRldmVsb3AgZXZlcnkgYWN0aW9uIGRpcmVjdGx5IGluc2lkZQp0aGUgVlNDb2RlIGVkaXRvci4KCiMgU0RLCgpUbyBidWlsZCBhbmQgaW50ZWdyYXRlIGFwcHMgd2l0aCBGdXNpbyB3ZSBwcm92aWRlIHNldmVyYWwgU0RLcyB3aGljaCB5b3UgY2FuIHVzZSB0byB3b3JrIHdpdGggYSBGdXNpbyBpbnN0YW5jZSBvciB5b3UKY2FuIGFsc28gc2ltcGx5IG1hbnVhbGx5IHRhbGsgdG8gdGhlIFJFU1QgQVBJLgoKfCBMYW5ndWFnZSAgIHwgR2l0SHViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhY2thZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRXhhbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBDIyAgICAgICAgIHwgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2FwaW9vL2Z1c2lvLXNkay1jc2hhcnApICAgICB8IFtOdUdldF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0Z1c2lvLlNESykgICAgICAgICAgICAgICAgIHwgW0V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlvby9mdXNpby1zYW1wbGUtY3NoYXJwLWNsaSkgIHwKfCBHbyAgICAgICAgIHwgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2FwaW9vL2Z1c2lvLXNkay1nbykgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW0V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlvby9mdXNpby1zYW1wbGUtZ28tY2xpKSAgICAgIHwKfCBKYXZhICAgICAgIHwgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2FwaW9vL2Z1c2lvLXNkay1qYXZhKSAgICAgICB8IFtNYXZlbl0oaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuZnVzaW8tcHJvamVjdC9zZGspIHwgW0V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlvby9mdXNpby1zYW1wbGUtamF2YS1jbGkpICAgIHwKfCBKYXZhc2NyaXB0IHwgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2FwaW9vL2Z1c2lvLXNkay1qYXZhc2NyaXB0KSB8IFtOUE1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2Z1c2lvLXNkaykgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQSFAgICAgICAgIHwgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2FwaW9vL2Z1c2lvLXNkay1waHApICAgICAgICB8IFtQYWNrYWdpc3RdKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9mdXNpby9zZGspICAgICAgICAgICAgIHwgW0V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlvby9mdXNpby1zYW1wbGUtcGhwLWNsaSkgICAgIHwKfCBQeXRob24gICAgIHwgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2FwaW9vL2Z1c2lvLXNkay1weXRob24pICAgICB8IFtQeVBJXShodHRwczovL3B5cGkub3JnL3Byb2plY3QvZnVzaW8tc2RrLykgICAgICAgICAgICAgICAgICAgICAgIHwgW0V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlvby9mdXNpby1zYW1wbGUtcHl0aG9uLWNsaSkgIHwKCiMjIEZyYW1ld29ya3MKCnwgRnJhbWV3b3JrIHwgR2l0SHViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhY2thZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEV4YW1wbGUgfAp8LS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwKfCBBbmd1bGFyICAgfCBbR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vYXBpb28vZnVzaW8tc2RrLWphdmFzY3JpcHQtYW5ndWxhcikgIHwgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvbmd4LWZ1c2lvLXNkaykgIHwgW0V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlvby9mdXNpby1zYW1wbGUtamF2YXNjcmlwdC1hbmd1bGFyKSAgICAgICAgfAoKIyMgUkVTVCBBUEkKCnwgRG9tYWluICAgfCBEb2N1bWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTcGVjaWZpY2F0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBCYWNrZW5kICB8IFtSZURvY10oaHR0cHM6Ly93d3cuZnVzaW8tcHJvamVjdC5vcmcvYXBpL2JhY2tlbmQpICB8IFtPcGVuQVBJXShodHRwczovL2RlbW8uZnVzaW8tcHJvamVjdC5vcmcvc3lzdGVtL2dlbmVyYXRvci9zcGVjLW9wZW5hcGk/ZmlsdGVyPWJhY2tlbmQpICB8CnwgQ29uc3VtZXIgfCBbUmVEb2NdKGh0dHBzOi8vd3d3LmZ1c2lvLXByb2plY3Qub3JnL2FwaS9jb25zdW1lcikgfCBbT3BlbkFQSV0oaHR0cHM6Ly9kZW1vLmZ1c2lvLXByb2plY3Qub3JnL3N5c3RlbS9nZW5lcmF0b3Ivc3BlYy1vcGVuYXBpP2ZpbHRlcj1jb25zdW1lcikgfAp8IFN5c3RlbSAgIHwgW1JlRG9jXShodHRwczovL3d3dy5mdXNpby1wcm9qZWN0Lm9yZy9hcGkvc3lzdGVtKSAgIHwgW09wZW5BUEldKGh0dHBzOi8vZGVtby5mdXNpby1wcm9qZWN0Lm9yZy9zeXN0ZW0vZ2VuZXJhdG9yL3NwZWMtb3BlbmFwaT9maWx0ZXI9c3lzdGVtKSAgIHwKCiMgRWNvc3lzdGVtCgpGdXNpbyBpcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IHdoaWNoIHlvdSBjYW4gdXNlIGZyZWVseSBmb3IgcHJpdmF0ZSBhbmQgY29tbWVyY2lhbCBwcm9qZWN0cyB1bmRlciB0aGUgdGVybXMgb2YgdGhlCkFwYWNoZSAyLjAgbGljZW5zZS4gQmVzaWRlcyBvdXIgY29yZSBwcm9kdWN0IHdlIG9mZmVyIGFkZGl0aW9uYWwgc2VydmljZXMgdG8gYXVnbWVudCB0aGUgZnVuY3Rpb25hbGl0eSBvZiBGdXNpby4KCiogW1NES2dlbl0oaHR0cHM6Ly9zZGtnZW4uYXBwLykgIAogIFNES2dlbiBpcyBhIHBvd2VyZnVsIGNvZGUgZ2VuZXJhdG9yIHRvIGF1dG9tYXRpY2FsbHkgYnVpbGQgY2xpZW50IFNES3MgZm9yIHlvdXIgUkVTVCBBUEkuCiogW0FQSWdlbl0oaHR0cHM6Ly9hcGlnZW4uYXBwLykgIAogIEdlbmVyYXRlIGZ1bGx5IHdvcmtpbmcgYW5kIGN1c3RvbWl6YWJsZSBBUElzIGJhc2VkIG9uIHlvdXIgZGF0YSBtb2RlbC4KKiBbQVBJbW9uXShodHRwczovL2FwaW1vbi5hcHAvKSAgCiAgQVBJbW9uIHByb3ZpZGVzIGFuIGludHVpdGl2ZSBzZXJ2aWNlIHRvIG1vbml0b3IgYW5kIGFuYWx5emUgQVBJIGVuZHBvaW50cy4KKiBbVHlwZVNjaGVtYV0oaHR0cHM6Ly90eXBlc2NoZW1hLm9yZy8pICAKICBBIEpTT04gZm9ybWF0IHRvIGRlc2NyaWJlIGRhdGEgbW9kZWxzIGluIGEgbGFuZ3VhZ2UgbmV1dHJhbCBmb3JtYXQuCiogW1R5cGVBUEldKGh0dHBzOi8vdHlwZWFwaS5vcmcvKSAgCiAgQW4gT3BlbkFQSSBhbHRlcm5hdGl2ZSB0byBkZXNjcmliZSBSRVNUIEFQSXMgZm9yIHR5cGUtc2FmZSBjb2RlIGdlbmVyYXRpb24uCiogW1R5cGVIdWJdKGh0dHBzOi8vdHlwZWh1Yi5jbG91ZC8pICAKICBBIGNvbGxhYm9yYXRpdmUgcGxhdGZvcm0gdG8gZGVzaWduIGFuZCBidWlsZCBBUEkgbW9kZWxzIGFuZCBjbGllbnQgU0RLcy4KKiBbUFNYXShodHRwczovL3BocHN4Lm9yZy8pICAKICBBbiBpbm5vdmF0aXZlIFBIUCBmcmFtZXdvcmsgZGVkaWNhdGVkIHRvIGJ1aWxkIGZ1bGx5IHR5cGVkIFJFU1QgQVBJcy4KCiMgSW5zdGFsbGF0aW9uCgpJdCBpcyBwb3NzaWJsZSB0byBpbnN0YWxsIEZ1c2lvIGVpdGhlciB0aHJvdWdoIGNvbXBvc2VyIG9yIG1hbnVhbGx5IGZpbGUgZG93bmxvYWQuCgojIyBDb21wb3NlcgoKYGBgCmNvbXBvc2VyIGNyZWF0ZS1wcm9qZWN0IGZ1c2lvL2Z1c2lvCmBgYAoKIyMgRG93bmxvYWQKCmh0dHBzOi8vZ2l0aHViLmNvbS9hcGlvby9mdXNpby9yZWxlYXNlcwoKIyMgQ29uZmlndXJhdGlvbgoKWW91IGNhbiBlaXRoZXIgbWFudWFsbHkgaW5zdGFsbCBGdXNpbyB3aXRoIHRoZSBzdGVwcyBiZWxvdyBvciB5b3UgY2FuIGFsc28gdXNlIHRoZSBicm93c2VyIGJhc2VkIGluc3RhbGxlciBhdApgcHVibGljL2luc3RhbGwucGhwYC4gTm90ZSBiZWNhdXNlIG9mIHNlY3VyaXR5IHJlYXNvbnMgaXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHJlbW92aW5nIHRoZSBpbnN0YWxsZXIgc2NyaXB0IGFmdGVyIHRoZQppbnN0YWxsYXRpb24uCgoqIF9fQWRqdXN0IHRoZSBjb25maWd1cmF0aW9uIGZpbGVfXyAgCiAgT3BlbiB0aGUgZmlsZSBgLmVudmAgaW4gdGhlIEZ1c2lvIGRpcmVjdG9yeSBhbmQgY2hhbmdlIHRoZSBgQVBQX1VSTGAgdG8gdGhlIGRvbWFpbiBwb2ludGluZyB0byB0aGUgcHVibGljIGZvbGRlci4KICBBbHNvIGluc2VydCB0aGUgZGF0YWJhc2UgY3JlZGVudGlhbHMgdG8gdGhlIGBBUFBfQ09OTkVDVElPTmAga2V5cy4gT3B0aW9uYWwgYWRqdXN0IGBBUFBfQVBQU19VUkxgIHRvIHRoZSBwdWJsaWMgdXJsCiAgb2YgdGhlIGFwcHMgZm9sZGVyIChpbiBjYXNlIHlvdSB3YW50IHRvIHVzZSBhcHBzKS4KKiBfX0V4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBjb21tYW5kX18gIAogIFRoZSBpbnN0YWxsYXRpb24gc2NyaXB0IGluc2VydHMgdGhlIEZ1c2lvIGRhdGFiYXNlIHNjaGVtYSBpbnRvIHRoZSBwcm92aWRlZCBkYXRhYmFzZS4gSXQgY2FuIGJlIGV4ZWN1dGVkIHdpdGggdGhlCiAgZm9sbG93aW5nIGNvbW1hbmQgYHBocCBiaW4vZnVzaW8gbWlncmF0ZWAuCiogX19DcmVhdGUgYWRtaW5pc3RyYXRvciB1c2VyX18gIAogIEFmdGVyIHRoZSBpbnN0YWxsYXRpb24gaXMgY29tcGxldGUgeW91IGhhdmUgdG8gY3JlYXRlIGEgbmV3IGFkbWluaXN0cmF0b3IgYWNjb3VudC4gVGhlcmVmb3IgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZwogIGNvbW1hbmQgYHBocCBiaW4vZnVzaW8gYWRkdXNlcmAuIENob29zZSBhcyBhY2NvdW50IHR5cGUgIkFkbWluaXN0cmF0b3IiLgoqIF9fSW5zdGFsbCBiYWNrZW5kIGFwcF9fICAKICBUbyBtYW5hZ2UgeW91ciBBUEkgdGhyb3VnaCBhbiBhZG1pbiBwYW5lbCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBiYWNrZW5kIGFwcC4gVGhlIGFwcCBjYW4gYmUgaW5zdGFsbGVkIHdpdGggdGhlCiAgZm9sbG93aW5nIGNvbW1hbmQgYHBocCBiaW4vZnVzaW8gbWFya2V0cGxhY2U6aW5zdGFsbCBmdXNpb2AKCllvdSBjYW4gdmVyaWZ5IHRoZSBpbnN0YWxsYXRpb24gYnkgdmlzaXRpbmcgdGhlIGBBUFBfVVJMYCB3aXRoIGEgYnJvd3Nlci4gWW91IHNob3VsZCBzZWUgYW4gQVBJIHJlc3BvbnNlIHRoYXQgdGhlCmluc3RhbGxhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KCkluIGNhc2UgeW91IHdhbnQgdG8gaW5zdGFsbCBGdXNpbyBvbiBhIHNwZWNpZmljIGRhdGFiYXNlIHlvdSBuZWVkIHRvIGFkanVzdCB0aGUgYEFQUF9DT05ORUNUSU9OYCBwYXJhbWV0ZXIuIFlvdSBjYW4KdXNlIHRoZSBmb2xsb3dpbmcgY29ubmVjdGlvbiBzdHJpbmdzOgoKKiBNeVNRTDogYHBkby1teXNxbDovL3Jvb3Q6dGVzdDEyMzRAbG9jYWxob3N0L2Z1c2lvYAoqIFBvc3RncmVTUUw6IGBwZG8tcGdzcWw6Ly9wb3N0Z3Jlczpwb3N0Z3Jlc0Bsb2NhbGhvc3QvZnVzaW9gCiogU1FMaXRlOiBgcGRvLXNxbGl0ZTovLy9mdXNpby5zcWxpdGVgCgpJbiBnZW5lcmFsIGl0IGlzIHBvc3NpYmxlIHRvIGluc3RhbGwgRnVzaW8gb24gYWxsIGRhdGFiYXNlIHdoaWNoIGFyZSBbc3VwcG9ydGVkXShodHRwczovL3d3dy5kb2N0cmluZS1wcm9qZWN0Lm9yZy9wcm9qZWN0cy9kb2N0cmluZS1kYmFsL2VuL2N1cnJlbnQvcmVmZXJlbmNlL2NvbmZpZ3VyYXRpb24uaHRtbCNkcml2ZXIpCmJ5IG91ciBkYXRhYmFzZSBhYnN0cmFjdGlvbiBsYXllciBidXQgb3VyIGludGVybmFsIHRlc3QgY2FzZXMgYXJlIG9ubHkgY292ZXJpbmcgTXlTUUwsIFBvc3RncmVTUUwgYW5kIFNRTGl0ZSBzbyB0aGVyZSBpcwpubyBndWFyYW50ZWUgdGhhdCBldmVyeXRoaW5nIHdvcmtzLgoKIyMgRG9ja2VyCgpJdCBpcyBwb3NzaWJsZSB0byBzZXR1cCBGdXNpbyB0aHJvdWdoIGRvY2tlci4gVGhpcyBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IHlvdSBhdXRvbWF0aWNhbGx5IGdldCBhIGNvbXBsZXRlIHJ1bm5pbmcgRnVzaW8Kc3lzdGVtIHdpdGhvdXQgY29uZmlndXJhdGlvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IGdyZWF0IGZvciB0ZXN0aW5nIGFuZCBldmFsdWF0aW9uLiBUbyBzZXR1cCB0aGUgY29udGFpbmVyIHlvdSBoYXZlIHRvCmNoZWNrb3V0IHRoZSBbcmVwb3NpdG9yeV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaW9vL2Z1c2lvLWRvY2tlcikgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGAKZG9ja2VyLWNvbXBvc2UgdXAgLWQKYGBgCgpUaGlzIGJ1aWxkcyB0aGUgRnVzaW8gc3lzdGVtIHdpdGggYSBwcmVkZWZpbmVkIGJhY2tlbmQgYWNjb3VudC4gVGhlIGNyZWRlbnRpYWxzIGFyZSB0YWtlbiBmcm9tIHRoZSBlbnYgdmFyaWFibGVzCmBGVVNJT19CQUNLRU5EX1VTRVJgLCBgRlVTSU9fQkFDS0VORF9FTUFJTGAgYW5kIGBGVVNJT19CQUNLRU5EX1BXYCBpbiB0aGUgYGRvY2tlci1jb21wb3NlLnltbGAuIElmIHlvdSBhcmUgcGxhbmluZyB0bwpydW4gdGhlIGNvbnRhaW5lciBvbiB0aGUgaW50ZXJuZXQgeW91IG11c3QgY2hhbmdlIHRoZXNlIGNyZWRlbnRpYWxzLgoKIyMgRG9tYWlucwoKQnkgZGVmYXVsdCB0aGUgY29tcGxldGUgRnVzaW8gcHJvamVjdCBjYW4gYmUgaG9zdGVkIG9uIGEgc2luZ2xlIGRvbWFpbi4gSW4gdGhpcyBzZXR1cCB5b3VyIEFQSSBpcyBzZXJ2ZWQgYXQgdGhlIHJvb3QKZGlyZWN0b3J5IGFuZCB0aGUgZGV2ZWxvcGVyIHBvcnRhbCBhbmQgYmFja2VuZCBhcHBzIGFyZSBkaXJlY3RseSBzZXJ2ZWQgZnJvbSB0aGUgL2FwcHMgZm9sZGVyLiBUaGlzIHNldHVwIGlzIGVhc3kgdG8gdXNlCnNpbmNlIGl0IHJlcXVpcmVzIG5vIGNvbmZpZ3VyYXRpb24uIElmIHlvdSB3YW50IHRvIHJ1biBGdXNpbyBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgd2UgcmVjb21tZW5kIHRvIGNyZWF0ZSB0aGUKZm9sbG93aW5nIHN1Yi1kb21haW4gc3RydWN0dXJlOgoKKiBfX2FwaS5hY21lLmNvbV9fICAKICBDb250YWlucyBvbmx5IEZ1c2lvIHdoZXJlIHlvdXIgQVBJIGlzIHNlcnZlZCwgaW4gdGhpcyBjYXNlIHlvdSBjYW4gZGVsZXRlIHRoZSBhcHBzLyBmb2xkZXIgZnJvbSB0aGUgcHVibGljLyBmb2xkZXIKKiBfX2RldmVsb3Blci5hY21lLmNvbV9fICAKICBDb250YWlucyB0aGUgZGV2ZWxvcGVyIHBvcnRhbCBhcHAgd2hlcmUgZXh0ZXJuYWwgZGV2ZWxvcGVycyBjYW4gcmVnaXN0ZXIgCiogX19mdXNpby5hY21lLmNvbV9fICAKICBPcHRpb25hbCB0aGUgYmFja2VuZCBhcHAgd2hlcmUgeW91IGNhbiBtYW5hZ2UgeW91ciBGdXNpbyBpbnN0YW5jZS4gWW91IGNhbiBob3N0IHRoaXMgYWxzbyBvbiBhIGNvbXBsZXRlIHNlcGFyYXRlCiAgaW50ZXJuYWwgZG9tYWluLCB0aGUgYmFja2VuZCBhcHAgb25seSBuZWVkcyBhY2Nlc3MgdG8gdGhlIEZ1c2lvIEFQSS4KClRoaXMgaXMgb2YgY291cnNlIG9ubHkgYSBzdWdnZXN0aW9uIGFuZCB5b3UgYXJlIGZyZWUgdG8gY2hvb3NlIHRoZSBkb21haW4gbmFtZXMgaG93IHlvdSBsaWtlLgoKIyBEb2N1bWVudGF0aW9uCgpQbGVhc2UgY2hlY2sgb3V0IG91ciBvZmZpY2lhbCBkb2N1bWVudGF0aW9uIHdlYnNpdGUgd2hlcmUgd2UgYnVuZGxlIGFsbCBkb2N1bWVudGF0aW9uIHJlc291cmNlczoKaHR0cHM6Ly9kb2NzLmZ1c2lvLXByb2plY3Qub3JnLwoKIyBTdXBwb3J0CgojIyBQcm9tb3Rpb24KCklmIHlvdSBhcmUgYSBibG9nZ2VyIG9yIG1hZ2F6aW5lIHdlIHdvdWxkIGJlIGhhcHB5IGlmIHlvdSBsaWtlIHRvIGNvdmVyIEZ1c2lvLiBQbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIE1lZGlhIHNlY3Rpb24Kb2Ygb3VyIFtBYm91dCBQYWdlXShodHRwczovL3d3dy5mdXNpby1wcm9qZWN0Lm9yZy9hYm91dCkgdG8gZG93bmxvYWQgdGhlIG9mZmljaWFsIGljb24gc2V0LiBJbiBjYXNlIHlvdSBoYXZlIGFueQpxdWVzdGlvbnMgcGxlYXNlIHdyaXRlIHVzIGEgbWVzc2FnZSBkaXJlY3RseSBzbyB3ZSBjYW4gaGVscCB5b3UgdG8gY3JlYXRlIGdyZWF0IGNvbnRlbnQuCgojIyBDb25zdWx0aW5nCgpJZiB5b3UgYXJlIGEgY29tcGFueSBvciBmcmVlbGFuY2VyIGFuZCB3YW50IHRvIGdldCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBob3cgeW91IGNhbiB1c2UgRnVzaW8geW91IGNhbiBjb250YWN0IHVzIGZvcgpjb25zdWx0aW5nLiBJbiB0aGUgd29ya3Nob3Agd2UgdHJ5IHRvIGZpbmQgdGhlIGJlc3Qgd2F5IGhvdyB5b3UgY2FuIHVzZS9pbnRlZ3JhdGUgRnVzaW8gYWxzbyB3ZSB0cnkgdG8gZXhwbGFpbiB0aGUKZnVuY3Rpb25hbGl0eSBhbmQgYW5zd2VyIHlvdXIgcXVlc3Rpb25zLgoKIyMgRG9uYXRpb25zCgpJZiB0aGlzIHByb2plY3QgaGVscHMgeW91IHRvIGdlbmVyYXRlIHJldmVudWUgb3IgaW4gZ2VuZXJhbCBpZiB5b3UgbGlrZSB0byBzdXBwb3J0IHRoZSBwcm9qZWN0IHBsZWFzZSBjaGVjayBvdXQgdGhlCmRvbmF0aW9uIG9wdGlvbnMgYXQgb3VyIHJlcG9zaXRvcnkuCgojIyBQYXJ0bmVyCgpUaGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgYWxsIHBhcnRuZXJzIG9mIHRoZSBGdXNpbyBwcm9qZWN0LiBXZSBsaWtlIHRvIHRoYW5rIGV2ZXJ5IHBhcnRuZXIgc3VwcG9ydGluZyB1cyBpbiBvdXIgdmlzaW9uCnRvIG1vdmUgQVBJIGRldmVsb3BtZW50IHRvIHRoZSBuZXh0IGxldmVsLiBJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gZ2V0dGluZyBsaXN0ZWQgaGVyZSBmZWVsIGZyZWUgdG8gc3BvbnNvciBvdXIKcHJvamVjdC4KCjxhIGhyZWY9Imh0dHBzOi8vamIuZ2cvT3BlblNvdXJjZVN1cHBvcnQiPgo8aW1nIHNyYz0iaHR0cHM6Ly9yZXNvdXJjZXMuamV0YnJhaW5zLmNvbS9zdG9yYWdlL3Byb2R1Y3RzL2NvbXBhbnkvYnJhbmQvbG9nb3MvamJfYmVhbS5zdmciPgo8L2E+Cg== readmeEtag: '"5f681a136fdad692033bc606fab3a5264f98f6f6"' readmeLastModified: Tue, 13 Aug 2024 19:07:48 GMT repositoryId: 39904377 description: Open source API management platform created: '2015-07-29T16:34:52Z' updated: '2024-09-03T22:55:05Z' language: PHP archived: false stars: 1837 watchers: 58 forks: 217 owner: apioo logo: https://avatars.githubusercontent.com/u/18172950?v=4 license: Apache-2.0 repoEtag: '"e9ac2c3ab9d9ace0d81a4eff3240775d70d8f825c5e053ed448590a2c84c57a9"' repoLastModified: Tue, 03 Sep 2024 22:55:05 GMT foundInMaster: true id: 5458da680012a142d20e79ac150bc4ab - source: - https://openapi.tools/ - openapi3 tags name: yii2-app-api category: - Server - Mock - Server Implementations language: PHP repository: https://github.com/php-openapi/yii2-app-api source_description: > Generate Server side API code with routing, models, data validation and database schema from an OpenAPI description. Based on Yii Framework. v2: false v3: true repositoryMetadata: base64Readme: >- IyB5aWkyLWFwcC1hcGkKCj4gT3BlbkFQSSBTcGVjIHRvIEFQSSBpbiAzLCAyLCAxLi4uIGRvbmUhCgpZaWkgRnJhbWV3b3JrIEFwcGxpY2F0aW9uIFRlbXBsYXRlIGZvciBxdWlja2x5IGJ1aWxkaW5nIEFQSS1maXJzdCBhcHBsaWNhdGlvbnMuCgpCYXNlZCBvbiBbeWlpMi1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vcGhwLW9wZW5hcGkveWlpMi1vcGVuYXBpKSAoY29kZSBnZW5lcmF0b3IpIGFuZCBbcGhwLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9waHAtb3BlbmFwaS9waHAtb3BlbmFwaSkgKHNwZWNpZmljYXRpb24gcmVhZGVyIGFuZCB2YWxpZGF0b3IpLgoKWyFbTGF0ZXN0IFN0YWJsZSBWZXJzaW9uXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL3BocC1vcGVuYXBpL3lpaTItYXBwLWFwaS92L3N0YWJsZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9waHAtb3BlbmFwaS95aWkyLWFwcC1hcGkpClshW1RvdGFsIERvd25sb2Fkc10oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9waHAtb3BlbmFwaS95aWkyLWFwcC1hcGkvZG93bmxvYWRzKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL3BocC1vcGVuYXBpL3lpaTItYXBwLWFwaSkKWyFbTGljZW5zZV0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9waHAtb3BlbmFwaS95aWkyLWFwcC1hcGkvbGljZW5zZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9waHAtb3BlbmFwaS95aWkyLWFwcC1hcGkpCgoKIyMgRGVtbwoKWyFbYXNjaWljYXN0XShodHRwczovL2FzY2lpbmVtYS5vcmcvYS9HU25aRmVMMGJlQXdMdmJoSW41MG9WSTl3LnN2ZyldKGh0dHBzOi8vYXNjaWluZW1hLm9yZy9hL0dTblpGZUwwYmVBd0x2YmhJbjUwb1ZJOXcpCgoKIyMgT3ZlcnZpZXcKClRoaXMgYXBwbGljYXRpb24gdGVtcGxhdGUgZG9lcyBub3QgY29udGFpbiBhbnkgdXNlZnVsIGNvZGUsIGl0IG9ubHkgcHJvdmlkZXMgdGhlIFtkaXJlY3Rvcnkgc3RydWN0dXJlXSgjc3RydWN0dXJlKSBmb3IgeW91ciBBUEkgcHJvamVjdC4gCkFsbCB0aGUgY29kZSBpcyBnZW5lcmF0ZWQgZnJvbSBhbiBbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnL2Fib3V0KSBBUEkgZGVzY3JpcHRpb24gZmlsZS4KCldoZW4gd29ya2luZyB3aXRoIHRoaXMgdGVtcGxhdGUgeW91IGZvbGxvdyB0aGUgW0FQSSBEZXNpZ24tRmlyc3QgQXBwcm9hY2hdKGh0dHBzOi8vYXBpc3lvdXdvbnRoYXRlLmNvbS9ibG9nL2FwaS1kZXNpZ24tZmlyc3QtdnMtY29kZS1maXJzdCkuClNvIHRvIGdldCBzdGFydGVkIGJ1aWxkaW5nIGFuIEFQSSB3aXRoIHRoaXMgYXBwbGljYXRpb24gdGVtcGxhdGUgeW91IG5lZWQgYW4gQVBJIGRlc2NyaXB0aW9uIGZpcnN0LgpJZiB5b3UgZG9uJ3QgaGF2ZSBvbmUgeWV0LCB5b3UgbWlnaHQgd2FudCB0byBjaGVjayB0aGUgZm9sbG93aW5nIHJlc291cmNlcyBmaXJzdDogCgotIFtPcGVuQVBJIDMuMCB0dXRvcmlhbF0oaHR0cHM6Ly9pZHJhdGhlcmJld3JpdGluZy5jb20vbGVhcm5hcGlkb2MvcHViYXBpc19vcGVuYXBpX3R1dG9yaWFsX292ZXJ2aWV3KQotIFtPcGVuQVBJIFNwZWNpZmljYXRpb24gVmVyc2lvbiAzLjAuMl0oaHR0cDovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjIpIAoKSWYgeW91IGhhdmUgYW4gT3BlbkFQSSBkZXNjcmlwdGlvbiwgeW91IGNhbiBjb250aW51ZSB3aXRoIHRoZSBuZXh0IHN0ZXBzOgoKMS4gW1NldHVwXSgjc2V0dXApCjIuIFtHZW5lcmF0ZSBDb2RlXSgjZ2VuZXJhdGUtY29kZSkKCk1vcmUgRG9jcyBhbmQgR3VpZGVzIGNhbiBiZSBmb3VuZCBpbiBbL2RvY3NdKC9kb2NzL1JFQURNRS5tZCkuCgojIyBTZXR1cCA8c3BhbiBpZD0ic2V0dXAiPjwvc3Bhbj4KClRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHdheXM6CgotIFBIUCBkaXJlY3RseSBvbiB5b3VyIG1hY2hpbmUKLSBVc2luZyBEb2NrZXIKCiMjIyBQSFAgZGlyZWN0bHkKCkhhdmluZyBQSFAgYW5kIGEgZGF0YWJhc2Ugc2VydmVyIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmUsIHlvdSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CgogICAgY29tcG9zZXIgY3JlYXRlLXByb2plY3QgcGhwLW9wZW5hcGkveWlpMi1hcHAtYXBpIG15LWFwaQogICAgY2QgbXktYXBpCiAgICBjcCBlbnYucGhwLmRpc3QgZW52LnBocAogICAgY3AgY29uZmlnL2NvbXBvbmVudHMtRU5WLmxvY2FsLnBocCBjb25maWcvY29tcG9uZW50cy1kZXYubG9jYWwucGhwCgpZb3UgbmVlZCB0byBhZGp1c3QgYGNvbmZpZy9jb21wb25lbnRzLWRldi5sb2NhbC5waHBgIHRvIGNvbmZpZ3VyZSB5b3VyIGRhdGFiYXNlIGNvbm5lY3Rpb24uCgpBZnRlciB0aGF0LCBydW4gYG1ha2Ugc3RhcnRgIGFuZCBgbWFrZSBzdG9wYCB0byBjb250cm9sIHRoZSBQSFAgd2Vic2VydmVycyBmb3IgQVBJIGFuZCBiYWNrZW5kLgoKWW91IG1heSB1c2UgYFhERUJVR1c9MWAgdG8gZW5hYmxlIHhkZWJ1ZyBmb3IgdGhlIHdlYnNlcnZlciwgZS5nLiBgbWFrZSBYREVCVUdXPTEgc3RhcnRgLgoKWW91IGNhbiBub3cgY29udGludWUgd2l0aCBbZ2VuZXJhdGluZyBjb2RlXSgjZ2VuZXJhdGUtY29kZSkuCgojIyMgVXNpbmcgRG9ja2VyCgpZb3UgbmVlZCBbRG9ja2VyXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9pbnN0YWxsLykgYW5kIFtEb2NrZXIgQ29tcG9zZV0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vY29tcG9zZS9pbnN0YWxsLykgaW5zdGFsbGVkLgoKQ3JlYXRlIHRoZSByZXBvc2l0b3J5OgoKICAgIGNvbXBvc2VyIGNyZWF0ZS1wcm9qZWN0IHBocC1vcGVuYXBpL3lpaTItYXBwLWFwaSBteS1hcGkKCkZvciB0aGUgZWFzaWVzdCB3YXkgeW91IG5lZWQgR05VIG1ha2UsIHRoZW4gcnVuOgoKICAgIG1ha2Ugc3RhcnQtZG9ja2VyCiAgICAKVGhpcyB1c2VzIGBkb2NrZXItY29tcG9zZWAgdG8gc3RhcnQgZG9ja2VyIGNvbnRhaW5lcnMgZm9yIHRoZSBBUEkgYW5kIHRoZSBiYWNrZW5kIGluY2x1ZGluZyBhIGRhdGFiYXNlLgoKWW91IGNhbiBub3cgY29udGludWUgd2l0aCBbZ2VuZXJhdGluZyBjb2RlXSgjZ2VuZXJhdGUtY29kZSkuCgo+IE5vdGU6IElmIHlvdSBkb24ndCBoYXZlIEdOVSBtYWtlLCB5b3UgbmVlZCB0byBjb3B5IHRoZSBjb25maWd1cmF0aW9uIGZpbGVzIGFzIGluIHRoZSBQSFAgZGlyZWN0bHkgc2VjdGlvbiwgdGhlbiBydW46Cj4gCj4gICAgIGNwIGRvY2tlci1jb21wb3NlLm92ZXJyaWRlLmRpc3QueW1sIGRvY2tlci1jb21wb3NlLm92ZXJyaWRlLnltbAo+ICAgICBkb2NrZXItY29tcG9zZSB1cCAtZAo+ICAgICBkb2NrZXItY29tcG9zZSBleGVjIGJhY2tlbmQtcGhwIHNoIC1jICdjZCAvYXBwICYmIGNvbXBvc2VyIGluc3RhbGwnCgoKIyMgR2VuZXJhdGUgQ29kZSA8c3BhbiBpZD0iZ2VuZXJhdGUtY29kZSI+PC9zcGFuPgoKQXQgdGhpcyBwb2ludCB5b3UgY2FuIHN0YXJ0IGdlbmVyYXRpbmcgeW91ciBBUEkgY29kZSB0byBwbGF5IHdpdGggaXQgYnkgZm9sbG93aW5nIHRoZSBpbnN0cnVjdGlvbnMgYmVsb3cuCklmIHlvdSdkIGxpa2UgdG8gc3RhcnQgYSByZWFsIHByb2plY3QgaW5zdGVhZCBvZiBqdXN0IHBsYXlpbmcgYXJvdW5kIHlvdSBjYW4gZmluZCBtb3JlIGRldGFpbGVkCmRvY3VtZW50YXRpb24gaW4gW2RvY3MvUkVBRE1FLm1kXShkb2NzL1JFQURNRS5tZCkgc3BlY2lmaWNhbGx5IHRoZSBbIkdldHRpbmcgU3RhcnRlZCItU2VjdGlvbl0oZG9jcy9nZXR0aW5nLXN0YXJ0ZWQubWQpLgoKIyMjIENvbnNvbGUKCj4gVGlwOiBJZiB5b3UgdXNlIERvY2tlciwgcnVuIGBtYWtlIGNsaWAgYmVmb3JlIHJ1bm5pbmcgYW55IG9mIHRoZXNlIGNvbW1hbmRzLgoKUnVuIGAuL3lpaSBnaWkvYXBpYCB0byBnZW5lcmF0ZSB5b3VyIEFQSSBjb2RlLiBUaGUgYC0tb3BlbkFwaVBhdGhgIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHBhdGggdG8geW91ciBPcGVuQVBJCnNwZWMgZmlsZS4gVGhlIGZvbGxvd2luZyBleGFtcGxlIHdpbGwgZ2VuZXJhdGUgQVBJIGNvZGUgZm9yIHRoZSBbT3BlbkFQSSBwZXRzdG9yZSBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iLzMuMC4yL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUtZXhwYW5kZWQueWFtbCkuCgogICAgLi95aWkgZ2lpL2FwaSAtLW9wZW5BcGlQYXRoPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uLzMuMC4yL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUtZXhwYW5kZWQueWFtbAoKPiBOb3RlOiBJZiB0aGUgT3BlbkFQSSBzcGVjIGZpbGUgaXMgcHJlc2VudCBsb2NhbGx5IG9uIHRoZSBmaWxlIHN5c3RlbSwgdGhlbiBgb3BlbkFwaVBhdGhgIG11c3QgYmUgc3BlY2lmaWVkIGFzIGFuIGFic29sdXRlIHBhdGgsIHJlbGF0aXZlIHBhdGhzIHdpbGwgbm90IHdvcmsgY29ycmVjdGx5Lgo+IE9uIFVOSVggYmFzZWQgT1MgaXQgbXVzdCBzdGFydCB3aXRoIGAvYC4gRXhhbXBsZTogYC9ob21lL3VzZXIvZG9jdW1lbnRzL015UHJvamVjdE9wZW5BUElTcGVjLnltbGAKClJ1biBgLi95aWkgZ2lpL2FwaSAtLWhlbHBgIGZvciBhIGxpc3Qgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zLiBZb3UgbWF5IGFsc28gYWRqdXN0IHRoZSBjb25maWd1cmF0aW9uIGluIGBjb25maWcvZ2lpLWdlbmVyYXRvcnMucGhwYC4KClRoZW4gc2V0IHVwIHRoZSBkYXRhYmFzZToKCiAgICAuL3lpaSBtaWdyYXRlL3VwCiAgICAuL3lpaSBmYWtlcgoKIyMjIFdlYgoKVG8gdXNlIHRoZSB3ZWIgZ2VuZXJhdG9yLCBvcGVuIDxodHRwOi8vbG9jYWxob3N0OjgzMzgvZ2lpPiBhbmQgc2VsZWN0IHRoZSBgUkVTVCBBUEkgR2VuZXJhdG9yYC4KCiFbR2lpIC0gUkVTVCBBUEkgR2VuZXJhdG9yXShkb2NzL2ltZy9naWktZ2VuZXJhdG9yLnBuZykKCkVudGVyIHRoZSBwYXRoIG9yIFVSTCB0byB0aGUgIk9wZW5BUEkgMyBTcGVjIGZpbGUiLCBlLmcuIGBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi8zLjAuMi9leGFtcGxlcy92My4wL3BldHN0b3JlLWV4cGFuZGVkLnlhbWxgLgoKQ2xpY2sgIlByZXZpZXciOgoKIVtHaWkgLSBSRVNUIEFQSSBHZW5lcmF0b3IgLSBHZW5lcmF0ZWQgZmlsZXNdKGRvY3MvaW1nL2dpaS1nZW5lcmF0b3ItZmlsZXMucG5nKQoKQ2xpY2sgIkdlbmVyYXRlIiB0byBnZW5lcmF0ZSBBUEkgZmlsZXMuCgpUaGVuIHNldCB1cCB0aGUgZGF0YWJhc2UgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIG9uIHRoZSBjb21tYW5kIGxpbmU6CgogICAgLi95aWkgbWlncmF0ZS91cAogICAgLi95aWkgZmFrZXIKCiMjIFRyeSBpdAoKICAgIGNkIGFwaQogICAgbWFrZSBzdGFydAoKWW91ciBBUEkgaXMgbm93IGF2YWlsYWJsZSBhdCBgaHR0cDovL2xvY2FsaG9zdDo4MzM3L2AuIFRyeSB0byBhY2Nlc3MgYW4gZW5kcG9pbnQgb2YgeW91ciBzcGVjIHZpYSBgY3VybGA6CgogICAgJCBjdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6ODMzNy9wZXRzCiAgICBbCiAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJFb3MgcmVydW0gbW9kaSBldCBxdWFlcmF0IHZvbHVwdGF0aWJ1cy4iLAogICAgICAgICAgICAidGFnIjogIlRvdGFtIGluIGNvbW1vZGkgaW4gZXN0IG5pc2kgbmloaWwgYXV0IGV0LiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiVm9sdXB0YXMgcXVpYSBlb3MgbmlzaSBkZWxlbml0aSBpdGFxdWUgYXNwZXJuYXR1ciBhc3Blcm5hdHVyLiIsCiAgICAgICAgICAgICJ0YWciOiAiVGVtcG9yaWJ1cyBpZCBjdWxwYSBkb2xvcmVtIHNlcXVpIGF1dC4iCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogIkZhY2VyZSBhdXQgc2ltaWxpcXVlIGxhYm9yaW9zYW0gb21uaXMgcGVyZmVyZW5kaXMgZXQuIiwKICAgICAgICAgICAgInRhZyI6ICJRdW8gaGFydW0gcXVvIGV0IGVhIGRpc3RpbmN0aW8gbm9uIHF1YW0uIgogICAgICAgIH0sCiAgICAgICAgLi4uCiAgICBdCgoKIyMgTGludGluZyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uCgpZb3UgY2FuIHJ1biBhIGxpbnRlciB0byBjaGVjayB0aGUgdmFsaWRpdHkgb2YgeW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZToKCiAgICBtYWtlIGxpbnQtanMgICMgcnVuIHNwZWN0cmFsIGxpbnQKICAgIG1ha2UgbGludC1waHAgIyBydW4gcGhwLW9wZW5hcGkgdmFsaWRhdGUKICAgIG1ha2UgbGludCAgICAgIyBydW4gYm90aCBvZiB0aGUgYWJvdmUgY29tbWFuZHMKCllvdSBjYW4gZmluZCBtb3JlIGluZm9ybWF0aW9uIG9uIHNwZWN0cmFsIGF0IDxodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac3RvcGxpZ2h0L3NwZWN0cmFsLWNsaSMtZG9jdW1lbnRhdGlvbi1hbmQtY29tbXVuaXR5Pi4KCgojIyBBcHBsaWNhdGlvbiBzdHJ1Y3R1cmUgPHNwYW4gaWQ9InN0cnVjdHVyZSI+PC9zcGFuPgoKVGhpcyBhcHBsaWNhdGlvbiB0ZW1wbGF0ZSBjb25zaXN0cyBvZiAzIGFwcGxpY2F0aW9uIHRpZXJzOgoKLSBgYXBpYCwgY29udGFpbnMgdGhlIFlpaSBhcHBsaWNhdGlvbiBmb3IgdGhlIFJFU1QgQVBJLgotIGBjb25zb2xlYCwgY29udGFpbnMgdGhlIFlpaSBhcHBsaWNhdGlvbiBmb3IgY29uc29sZSBjb21tYW5kcywgY3JvbmpvYnMgb3IgcXVldWVzIChgeWlpYCBjb21tYW5kKS4KLSBgYmFja2VuZGAsIGNvbnRhaW5zIHRoZSBZaWkgYXBwbGljYXRpb24gZm9yIGEgQ1JVRCBiYWNrZW5kIG9uIHRoZSBBUEkgZGF0YS4KClRoZSBmb2xsb3dpbmcgbGlzdCBleHBsYWlucyB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBpbiBtb3JlIGRldGFpbDoKCi0gYGFwaS9gIC0gQVBJIGFwcGxpY2F0aW9uIHRpZXIKICAtIGBjb25maWcvYCAtIGNvbmZpZ3VyYXRpb24gZm9yIEFQSSB0aWVyCiAgICAtIGB1cmwtcnVsZXMucGhwYCAtIGN1c3RvbSBVUkwgcnVsZXMKICAgIC0gYHVybC1ydWxlcy5yZXN0LnBocGAgLSBVUkwgcnVsZXMgKipnZW5lcmF0ZWQqKiBmcm9tIE9wZW5BUEkgRGVzY3JpcHRpb24KICAgIC0gYGNvbXBvbmVudHMucGhwYCAtIGFwcGxpY2F0aW9uIGNvbXBvbmVudHMKICAgIC0gYGFwcC5waHBgIC0gWWlpIGFwcGxpY2F0aW9uIGNvbmZpZyAoKyBvdmVycmlkZXMgZm9yIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgYGFwcC0qLnBocGApCiAgLSBgY29udHJvbGxlcnMvYCAtIENvbnRyb2xsZXIgY2xhc3NlcyAqKmdlbmVyYXRlZCoqIGZyb20gT3BlbkFQSSBEZXNjcmlwdGlvbgogIC0gYHdlYi9gIC0gcHVibGljIHdlYiBkaXJlY3RvcnkgZm9yIEFQSSBhcHBsaWNhdGlvbgoKLSBgYmFja2VuZC9gIC0gQmFja2VuZCBhcHBsaWNhdGlvbiB0aWVyCiAgLSBgY29uZmlnL2AgLSBjb25maWd1cmF0aW9uIGZvciBCYWNrZW5kIHRpZXIKICAgIC0gYGNvbXBvbmVudHMucGhwYCAtIGFwcGxpY2F0aW9uIGNvbXBvbmVudHMKICAgIC0gYGFwcC5waHBgIC0gWWlpIGFwcGxpY2F0aW9uIGNvbmZpZyAoKyBvdmVycmlkZXMgZm9yIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgYGFwcC0qLnBocGApCiAgLSBgY29udHJvbGxlcnMvYCAtIENvbnRyb2xsZXIgY2xhc3NlcwogIC0gYHZpZXdzL2AgLSBWaWV3IGZpbGVzCiAgLSBgd2ViL2AgLSBwdWJsaWMgd2ViIGRpcmVjdG9yeSBmb3IgQmFja2VuZCBhcHBsaWNhdGlvbgoKLSBgY29tbW9uL2AgLSBjb21tb24gY29kZSBmaWxlcwogIC0gYG1vZGVscy9gIC0gbW9kZWwgY2xhc3NlcyAqKmdlbmVyYXRlZCoqIGZyb20gT3BlbkFQSSBEZXNjcmlwdGlvbgogIC0gYG1pZ3JhdGlvbnMvYCAtIGRhdGFiYXNlIG1pZ3JhdGlvbnMgKipnZW5lcmF0ZWQqKiBmcm9tIE9wZW5BUEkgRGVzY3JpcHRpb24KCi0gYGNvbmZpZy9gIC0gQ29tbW9uIGNvbmZpZ3VyYXRpb24gZm9yIGFsbCBhcHBsaWNhdGlvbiB0aWVycwogIC0gYGNvbXBvbmVudHMucGhwYCAtIFlpaSBhcHBsaWNhdGlvbiBjb21wb25lbnRzICgrIG92ZXJyaWRlcyBmb3IgZGlmZmVyZW50IGVudmlyb25tZW50cyBgY29tcG9uZW50cy0qLnBocGApCiAgLSBgZW52LnBocGAgLSBFbnZpcm9ubWVudCBzZXR1cCAoWUlJX0RFQlVHLCBZSUlfRU5WLCBwYXRoIGFsaWFzZXMsIGNvbXBvc2VyIGF1dG9sb2FkZXIpCiAgLSBgZXZlbnRzLnBocGAgLSBDbGFzcyB3aWRlIGV2ZW50IGxpc3RlbmVycwogIC0gYGdpaS1nZW5lcmF0b3JzLnBocGAgLSBjb25maWd1cmF0aW9uIGZvciB0aGUgR2lpIGNvZGUgZ2VuZXJhdG9yIChhbGxvd3MgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgQXBpR2VuZXJhdG9yKQogIC0gYHBhcmFtcy5waHBgIC0gQ29uZmlndXJhdGlvbiBmb3IgYFlpaTo6JGFwcC0+cGFyYW1zYAoKLSBgY29uc29sZS9gIC0gQ29uc29sZSBhcHBsaWNhdGlvbiB0aWVyCiAgLSBgY29uZmlnL2AgLSBjb25maWd1cmF0aW9uIGZvciBDb25zb2xlIHRpZXIKICAgIC0gYGNvbXBvbmVudHMucGhwYCAtIGFwcGxpY2F0aW9uIGNvbXBvbmVudHMKICAgIC0gYGFwcC5waHBgIC0gWWlpIGFwcGxpY2F0aW9uIGNvbmZpZyAoKyBvdmVycmlkZXMgZm9yIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgYGFwcC0qLnBocGApCgotIGBsb2dzL2AgLSBsb2cgZmlsZXMKLSBgcnVudGltZS9gIC0gdGVtcG9yYXJ5IHJ1bnRpbWUgZmlsZXMKCgojIERldmVsb3BtZW50CgpCZWxvdyBjb21tYW5kcyBhcmUgaGVscGZ1bCB3aGlsZSBkZXZlbG9waW5nIHRoaXMgcHJvamVjdDoKCmBgYGJhc2gKLi95aWkgZ2lpL2FwaSAtLW9wZW5BcGlQYXRoPS9hcHAvb3BlbmFwaS9zY2hlbWEueWFtbCAtLWdlbmVyYXRlTWlncmF0aW9ucz0wICAtLWdlbmVyYXRlQ29udHJvbGxlcnM9MCAtLWdlbmVyYXRlVXJscz0wCgouL3lpaSBnaWkvYXBpIC0tb3BlbkFwaVBhdGg9L2FwcC9vcGVuYXBpL3NjaGVtYS55YW1sIC0tZ2VuZXJhdGVNaWdyYXRpb25zPTEgIC0tZ2VuZXJhdGVDb250cm9sbGVycz0wIC0tZ2VuZXJhdGVVcmxzPTAgLS1nZW5lcmF0ZU1vZGVscz0wIC0tZ2VuZXJhdGVNb2RlbEZha2VyPTAKYGBgCgoKIyBTdXBwb3J0CgoqKk5lZWQgaGVscCB3aXRoIHlvdXIgQVBJIHByb2plY3Q/KioKClByb2Zlc3Npb25hbCBzdXBwb3J0LCBjb25zdWx0aW5nIGFzIHdlbGwgYXMgc29mdHdhcmUgZGV2ZWxvcG1lbnQgc2VydmljZXMgYXJlIGF2YWlsYWJsZToKCmh0dHBzOi8vd3d3LmNlYmUuY2MvZW4vY29udGFjdAoKRGV2ZWxvcG1lbnQgb2YgdGhpcyBsaWJyYXJ5IGlzIHNwb25zb3JlZCBieSBbY2ViZS46Y2xvdWQ6ICJZb3VyIFByb2Zlc3Npb25hbCBEZXBsb3ltZW50IFBsYXRmb3JtIl0oaHR0cHM6Ly9jZWJlLmNsb3VkKS4K readmeEtag: '"d802cae7aa749c8a93fc3f6e3ff805ea35bcbaea"' readmeLastModified: Thu, 06 Jun 2024 12:21:10 GMT repositoryId: 175403734 description: OpenAPI Spec to API in 3, 2, 1... done! created: '2019-03-13T11:03:55Z' updated: '2024-06-06T12:21:38Z' language: PHP archived: false stars: 105 watchers: 8 forks: 10 owner: php-openapi logo: https://avatars.githubusercontent.com/u/71378648?v=4 license: MIT repoEtag: '"ac3d01d7e2228b35cc11a3cd47a17abeae39fd1f058744b0774ebc41f531d99a"' repoLastModified: Thu, 06 Jun 2024 12:21:38 GMT foundInMaster: true id: 97701731f0fe680b9faea9103bf2242e oldLocations: - https://github.com/cebe/yii2-app-api - source: https://openapi.tools/ name: Beeceptor category: Mock language: SaaS link: https://beeceptor.com/ source_description: >- 🐝 An HTTP interceptor and rule-based mocking service for REST APIs. No coding required to create a mock endpoint. No sign-up required. v2: false v3: true id: 3add01284466aef304a66bf0c91b6717 foundInMaster: true - source: https://openapi.tools/ name: '@eropple/nestjs-openapi3' category: Server language: Node.js link: https://github.com/eropple/nestjs-openapi3 repository: https://github.com/eropple/nestjs-openapi3 source_description: > Integrates tightly with a NestJS application to infers complex descriptions and expresses them in its generated OpenAPI document. It then presents that document via ReDoc, and validates inputs for conformance to spec. v2: false v3: true repositoryMetadata: base64Readme: >- IyBgQGVyb3BwbGUvbmVzdGpzLW9wZW5hcGkzYCAjClshW25wbSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvJTQwZXJvcHBsZSUyRm5lc3Rqcy1vcGVuYXBpMy5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvJTQwZXJvcHBsZSUyRm5lc3Rqcy1vcGVuYXBpMykKCmBAZXJvcHBsZS9uZXN0anMtb3BlbmFwaTNgIGlzIGEgbGlicmFyeSBmb3IgW05lc3RKU10oKSB0byBnZW5lcmF0ZSBbT3BlbkFQSSAzLnhdKCkgZG9jdW1lbnRzIGZyb20geW91ciBBUEkgc3BlY2lmaWNhdGlvbi4gSXQgYXR0ZW1wdHMgdG8gYmUgbW9yZSBpbnRlZ3JhdGVkIHdpdGggdGhlIGZsb3cgb2YgeW91ciBhcHBsaWNhdGlvbiB0aGFuIFtAbmVzdGpzL3N3YWdnZXJdKCkgYW5kIHRvIHB1c2ggeW91IHRvd2FyZHMgYnVpbGRpbmcgY2xlYW4sIHdlbGwtc2VwYXJhdGVkIEFQSXMgYWxvbmcgdGhlIHdheS4KCiMjIFJlbGVhc2UgSGlzdG9yeSAjIwojIyMgYDAuNC40YCAjIyMKLSBBZGRlZCBgT0FTLnByb3BQcmVmYWJzYCB0aGF0IGluY2x1ZGVzIHNvbWUgaGVscGZ1bCBwcmVzZXRzIGZvciBkZWFsaW5nIHdpdGggVVVJRHMsIGRhdGVzLCBldGMuIGluIHByb3BlciBmb3JtYXR0aW5nLiBTb21lIG9mIHRoZXNlLCBsaWtlIGRhdGVzLCBhcmUgYXV0b21hdGljYWxseSBoYW5kbGVkIF9pZiBpdCdzIGEgYERhdGVgXywgYnV0IGlmIHlvdSwgc2F5LCBoYXZlIGBEYXRlIHwgbnVsbGAsIGl0IGJlY29tZXMgYSBwYWluLiBIZW5jZSB0aGluZ3MgbGlrZSBgT0FTLnByb3BQcmVmYWJzLnV1aWRgIGFuZCBgT0FTLnByb3BQcmVmYWJzLmRhdGVgLgotIEFkZGluZyB0aGUgSlNPTiBzY2hlbWEgdGV4dCBkaXJlY3RseSB0byB0aGUgYHdpbmRvd2Agb2JqZWN0IGZvciBSYXBpRG9jOyBpZiB5b3UgbWFuYWdlIHRvIHNlbmQgYSBiYWQgSlNPTiBmaWxlIGZvciBvbmUgcmVhc29uIG9yIGFub3RoZXIsIHlvdSBjYW4gYXQgbGVhc3QgZ28gYHdpbmRvdy5zcGVjVGV4dGAgYW5kIGZpbmQgb3V0IHdoYXQncyB1cC4KLSBBZGRlZCBgZXhhbXBsZWAgYW5kIGBkZXNjcmlwdGlvbmAgdG8gcHJvcCBhcmd1bWVudHMuCgojIyMgYDAuNC4zYCAjIyMKLSBBZGRlZCB0aGUgYHZhbGlkYXRpb25GYWlsZWRSZXNwb25zZWAgb3B0aW9uIHRvIGBPcGVuYXBpTW9kdWxlLmF0dGFjaGAuIFRoaXMgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgdGhlIEpTT04gb3V0cHV0IGZyb20gdGhlIHZhbGlkYXRpb24gaW50ZXJjZXB0b3Igc28geW91IGNhbiByZXR1cm4gcHJlZGljdGFibHktc2hhcGVkIGVycm9ycy4gSXQgd29uJ3QsIGhvd2V2ZXIsIHNldCBhIGA0MDBgIGRlZmF1bHQgaW4gYGRlZmF1bHRSZXNwb25zZXNgOyB0aGF0J3MgeW91ciBqb2IuIChBbHNvIG1ha2Ugc3VyZSB5b3VyIGVycm9yIGZpbHRlciByZXR1cm5zIHRoZSBzYW1lIHNoYXBlIGZvciBhIDQwMCEpCgojIyMgYDAuNC4yYCAjIyMKLSBMZWZ0IGEgbG9nZ2luZyBzdGF0ZW1lbnQgaW4sICdjYXVzZSBJJ20gYSBtb25zdGVyLiBNeSBhcG9sb2dpZXMgdG8geW91ciBzdGRvdXQuCgojIyMgYDAuNC4xYCAjIyMKLSBBZGRlZCBgZGVmYXVsdFJlc3BvbnNlc2AgYXMgYW4gb3B0aW9uIHdoZW4gY3JlYXRpbmcgYSBkb2N1bWVudCwgdG8gYWxsb3cgZm9yIHN0YW5kYXJkIGVycm9yIHR5cGVzIHRvIGJlIHJldHVybmVkIGZyb20geW91ciBBUElzLiBUaGlzIGRvZXMgX25vdF8gZW5zdXJlIHRoYXQgdGhlc2Ugb2JqZWN0cyBhcmUgY3JlYXRlZDsgeW91IHNob3VsZCB3cml0ZSBhbiBleGNlcHRpb24gZmlsdGVyIHRvIGRvIHRoYXQtLWJ1dCBzaW5jZSB5b3UgY2FuIGp1c3QgcGFzcyBhIG1vZGVsIHR5cGUgYXMgeW91ciByZXNwb25zZSB0eXBlIGhlcmUsIGl0J3MgcHJldHR5IGVhc3kgdG8ganVzdCBjcmVhdGUgdGhlIG9iamVjdCBhbmQgd3JpdGUgaXQgb3V0IHRvIHlvdXIgcmVzcG9uc2UuCi0gUmV0cmFjdGVkIFJlRG9jIHN1cHBvcnQ7IGFmdGVyIGludmVzdGlnYXRpbmcgdGhlbSBtb3JlIGNvbXBsZXRlbHkgSSBkaXNjb3ZlcmVkIHRoYXQgdGhleSBpbnRlbmQgdG8ga2VlcCBvbi1wYWdlIGNsaWVudCBmdW5jdGlvbmFsaXR5IGFzIGEgcGFpZCBwcm9kdWN0IGFuZCBJIGhhdmUgbm8gaW50ZXJlc3QgaW4gZW5jb3VyYWdpbmcgdGhhdC4KLSBBZGRlZCBSYXBpRG9jIDUuMy4wIHN1cHBvcnQuIGBhcGlEb2NzOmAgbm93IHRha2VzIGAnc3dhZ2dlcicgfCAncmFwaWRvYycgfCBudWxsYC4gVGhpcyBpcyBzZWxmLWhvc3RlZCwgd2l0aCBubyBkZXBlbmRlbmN5IG9uIGEgcmVtb3RlIHJlc291cmNlIGZvciBpdHMgc2NyaXB0LCBzbyB5b3UgY2FuIHVzZSBpdCBpbiBlbnZpcm9ubWVudHMgd2l0aG91dCBJbnRlcm5ldCBhY2Nlc3MuICoqYHJhcGlkb2NgIHNoYWxsIGJlY29tZSB0aGUgbmV3IGRlZmF1bHQgaW4gb3IgYmVmb3JlIHZlcnNpb24gYDEuMC4wYC4qKgotIEZpeGVkIGFub3RoZXIgYnVnIHJlbGF0ZWQgdG8gTmVzdEpTIG1ldGFkYXRhIHBhcnNpbmcuIChQdWxsZWQgYDAuNC4wYCBhZnRlciBkaXNjb3Zlcnk7IGl0IHdhcyBhIHRvdWdoIG9uZS4pCgojIyMgPHN0cmlrZT5gMC40LjBgPC9zdHJpa2U+ICMjIwotIEFkZGVkIFJlRG9jIHN1cHBvcnQuIFRoZXJlIGlzIGEgbmV3IGNvbmZpZyBvcHRpb24sIGBhcGlEb2NzOiAnc3dhZ2dlcicgfCAncmVkb2MnIHwgbnVsbGA7IGl0IGRlZmF1bHRzIHRvIGBzd2FnZ2VyYC4gSWYgbnVsbCBpcyBwYXNzZWQsIEFQSXMgd2lsbCBub3QgYmUgc2VydmVkOyB0aGlzIGlzIGluIGFkZGl0aW9uIHRvIGBza2lwQXBpU2VydmluZzogdHJ1ZWAuICoqVGhpcyB3aWxsIGNoYW5nZSBiZWZvcmUgYDEuMC4wYDoqKiB0aGUgZGVmYXVsdCB3aWxsIGJlY29tZSBgcmVkb2NgIGFuZCBgc2tpcEFwaVNlcnZpbmc6IHRydWVgIHdpbGwgYmUgcmVtb3ZlZC4KCiMjIyBgMC4zLjBgICMjIwotIE5vdyBzZXJ2aW5nIHlvdXIgZG9jcyB3aXRoIFN3YWdnZXIgVUksIGxvY2F0ZWQgYXQgYC9hcGktZG9jc2AuIFBhc3MgYHNraXBBcGlTZXJ2aW5nOiB0cnVlYCB0byBgT3BlbmFwaU1vZHVsZSNhdHRhY2hgIHRvIGRpc2FibGUgaXQuCi0gQWRkZWQgYENvb2tpZWAgcGFyYW1ldGVyIGRlY29yYXRvci4gSWYgeW91IGFscmVhZHkgaGF2ZSBzb21ldGhpbmcgbGlrZSBgY29va2llLXBhcnNlcmAgc2V0IHVwLCB0aGlzIGxpYnJhcnkgd2lsbCB1c2UgdGhlIGNvb2tpZXMgdGhhdCBpdCBwYXJzZWQ7IG90aGVyd2lzZSwgaXQnbGwgcGFyc2UgYW5kIGNyZWF0ZSBgcmVxLmNvb2tpZXNgIHdpdGggYGNvb2tpZWAuCgojIyMgYDAuMi4xYCAjIyMKLSBGaXhlZCBzb21lIGxpbmdlcmluZyBlcnJvcnMgaW4gdGhlIHdheSBlbmRwb2ludCBtZXRhZGF0YSB3YXMgYmVpbmcgc2V0IGluIHNvbWUgY2FzZXMuCi0gRml4ZWQgYSBidW5jaCBvZiBUU0xpbnQgZXJyb3JzIEknZCBmb3Jnb3R0ZW4gdG8gdGFrZSBjYXJlIG9mLiBOZXh0IFRPRE8gd2lsbCBiZSBzZXR0aW5nIHVwIEh1c2t5LgoKIyMjIGAwLjIuMGAgIyMjCi0gWW91IGNhbiBub3cgcGFzcyAxLXR1cGxlIGFycmF5cyBhcyBgY29udGVudGAgYW5kIG90aGVyIHBsYWNlcyB3aGVyZSBzY2hlbWFzIGFyZSBleHBlY3RlZDsgdGhleSB3aWxsIGJlIHBhcnNlZCBhcyBhbiBhcnJheSBvZiB3aGF0ZXZlciB0eXBlIG9yIHNjaGVtYSBpcyBpbiB0aGF0IGFycmF5LgotIGBhbGxPZmAsIGBhbnlPZmAsIGBvbmVPZmAsIGFuZCBgaXRlbXNgIGFsbCBhY3QgYXMgeW91J2QgZXhwZWN0LS10aGF0IGlzLCBbZG8td2hhdC1JLW1lYW4gc2NoZW1hIGNvbnZlcnNpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9lcm9wcGxlL25lc3Rqcy1vcGVuYXBpMy8jc2NoZW1hbGlrZS1kby13aGF0LWktbWVhbi1zY2hlbWEtb2JqZWN0cykgbm93IHJlc3BlY3QgZnVuY3Rpb25zLCBhcnJheXMsIGV0Yy4gYW5kIHBhcnNlIHRoZW0gY29ycmVjdGx5LgoKIyMjIGAwLjEuMWAgIyMjCi0gRml4ZWQgb25lIG9mIHRoZSB3aWxkZXN0IGJ1Z3MgaW4gcmVjZW50IG1lbW9yeS4gVGhlIGxvbmcgYW5kIHRoZSBzaG9ydCBvZiBpdCBpcyB0aGF0IFR5cGVTY3JpcHQgZGVjb3JhdG9ycyBvbiBhbiB1bnNldCBwcm9wZXJ0eSByZW5kZXIgdGhhdCBwcm9wZXJ0eSBhcyBiZWluZyBub24td3JpdGFibGUuIEEgcmVhbCBzb2x1dGlvbiBpcyBwcm9iYWJseSBpbiB0aGUgVHlwZVNjcmlwdCBmb2xrcydzIGNvdXJ0LCBidXQgaW4gdGhlIGludGVyaW0gdGhpcyBsaWJyYXJ5IG5vdyBnZW5lcmF0ZXMgYSBkZXNjcmlwdG9yIGZvciBhIHByb3BlcnR5IHdoZW4gYXBwbGljYWJsZSB0byBhdm9pZCBtYWtpbmcgaXQgdW53cml0YWJsZS4KCiMjIyBgMC4xLjBgICMjIwotIEluaXRpYWwgcmVsZWFzZS4KCiMjIEluc3RhbGxhdGlvbiAjIwpQb3AgaW50byB5b3VyIE5lc3RKUyBwcm9qZWN0IGFuZCBgbnBtIGluc3RhbGwgQGVyb3BwbGUvbmVzdGpzLW9wZW5hcGkzYCBvciBgeWFybiBhZGQgQGVyb3BwbGUvbmVzdGpzLW9wZW5hcGkzYC4KCllvdSdsbCBuZWVkIHJlYXNvbmFibHkgdXAtdG8tZGF0ZSB2ZXJzaW9ucyBvZiBgQG5lc3Rqcy9jb21tb25gLCBgQG5lc3Rqcy9jb3JlYCwgYHJlZmxlY3QtbWV0YWRhdGFgLCBhbmQgYHJ4anNgLiAqKk5lc3RKUyBiZWZvcmUgdmVyc2lvbiA2LjUgaXMgdW5zdXBwb3J0ZWQgYW5kIHNoYWxsIG5vdCBiZSBzdXBwb3J0ZWQuKioKClRvIHNlcnZlIHlvdXIgT3BlbkFQSSBkb2N1bWVudCBhcyBhbiBleHBsb3JhYmxlIHBhZ2Ugd2l0aCAidHJ5IGl0IG91dCIgZnVuY3Rpb25hbGl0eSwgeW91J2xsIGFsc28gbmVlZCBgc3dhZ2dlci11aS1leHByZXNzYCAod2hlbiBgYXBpRG9jczogJ3N3YWdnZXInYCwgdGhlIGRlZmF1bHQsIGlzIHNldCkgb3IgYHJhcGlkb2NgICh3aGVuIGBhcGlEb2NzOiAncmFwaWRvYydgIGlzIHNldCkuIElmIHlvdSBkb24ndCB3YW50IHRvIHNlcnZlIHRoaXMsIHBhc3MgYGFwaURvY3M6IG51bGxgLgoKIyMgVXNhZ2UgIyMKRmlyc3QgYW5kIGZvcmVtb3N0LCB5b3Ugc2hvdWxkIGJlIGF3YXJlIHRoYXQgYEBlcm9wcGxlL25lc3Rqcy1vcGVuYXBpM2AgaXMgYSBoZWF2aWx5IGludGVncmF0ZWQgbGlicmFyeS4gVGhpcyBpcyBnb2luZyB0byB0b3VjaCBhIGxvdCBvZiB5b3VyIGNvZGViYXNlLiBJZiB5b3UncmUgbmV3IHRvIE9wZW5BUEksIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgW3RoZSBPcGVuQVBJIDMueCBzcGVjXSgpLiBJZiB5b3UndmUgdXNlZCBTd2FnZ2VyLCB3aGV0aGVyIHRocm91Z2ggYEBuZXN0anMvc3dhZ2dlcmAgb3IgYW5vdGhlciBhdmVudWUsIHlvdSBzaG91bGQgcmVhZCB1cCBvbiBbd2hhdCdzIG5ldyBpbiBPcGVuQVBJIDMueF0oKS4KCiMjIyBBdHRhY2hpbmcgYE9wZW5hcGlNb2R1bGVgICMjIwpZb3UnbGwgbmVlZCB0byBhdHRhY2ggdGhlIG1vZHVsZSB0byB5b3VyIGFwcGxpY2F0aW9uLiBXZSBoYXZlIHRvIGRvIGl0IHRoaXMgd2F5LCByYXRoZXIgdGhhbiBhcyBhIG5vcm1hbCBtb2R1bGUgZGVwZW5kZW5jeSBvbiBgQXBwTW9kdWxlYCBvciBzaW1pbGFyLCBiZWNhdXNlIHdlIG5lZWQgdG8gZ2V0IGFjY2VzcyB0byB0aGUgY29tcGxldGVseSBwb3B1bGF0ZWQgZGVwZW5kZW5jeSBpbmplY3Rpb24gY29udGFpbmVyLgoKYGBgdHMKLy8gSXQncyBnb29kIHByYWN0aWNlIHRvIG1ha2UgdGhpcyBhIHNlcGFyYXRlIG1ldGhvZDsgeW91IGNhbiB0aGVuCi8vIGRvIGhhbmR5IHN0dWZmIGxpa2UgZ2VuZXJhdGUgeW91ciBPcGVuQVBJIGRvY3VtZW50IHdpdGhvdXQgaGF2aW5nCi8vIHRvIHN0YXJ0IGEgd2ViIHNlcnZlci4gVGFrZSBhIGxvb2sgYXQgb3VyIGV4YW1wbGUgYXBwIGZvciBtb3JlCi8vIGluZm9ybWF0aW9uLgphc3luYyBmdW5jdGlvbiBidWlsZE9wZW5hcGlEb2N1bWVudChhcHA6IElOZXN0QXBwbGljYXRpb24pIHsKICByZXR1cm4gT3BlbmFwaU1vZHVsZS5jcmVhdGVEb2N1bWVudCgKICAgIHsKICAgICAgYXBwLAogICAgICAvLyBZb3UgY2FuIHBhc3MgYGNvbnNvbGVgIGhlcmUgaWYgeW91J3JlIGxhbWUsIGJ1dCB5b3UKICAgICAgLy8gc2hvdWxkIGJlIHVzaW5nIEJ1bnlhbi4gQ2hlY2sgb3V0IGBAZXJvcHBsZS9uZXN0anMtYnVueWFuYCEKICAgICAgYmFzZUxvZ2dlcjogb3BlbmFwaUxvZ2dlciwKICAgIH0sCiAgICAoYikgPT4gewogICAgICBiLmFkZFRpdGxlKGAke0FQUExJQ0FUSU9OX05BTUV9IEFQSWApOwogICAgICBiLmFkZFZlcnNpb24oUEFDS0FHRV9WRVJTSU9OKTsKICAgICAgYi5hZGRTZXJ2ZXIoewogICAgICAgIHVybDogQVBJX1VSTCwKICAgICAgfSk7CiAgICAgIGIuYWRkU2VjdXJpdHlTY2hlbWUoJ3Rva2VuJywgewogICAgICAgIG5hbWU6ICdBdXRob3JpemF0aW9uJywKICAgICAgICB0eXBlOiAnYXBpS2V5JywKICAgICAgICBpbjogJ2hlYWRlcicsCiAgICAgIH0pOwogICAgfSwKICApOwp9Cgphc3luYyBmdW5jdGlvbiBjb25maWd1cmVBcHAoYXBwOiBJTmVzdEFwcGxpY2F0aW9uKSB7CiAgLy8gV2hlcmV2ZXIgeW91IHNldCB1cCBDT1JTLCBoZWxtZXQsIGV0Yy4gLSBqdXN0IGRvIHRoaXMKCiAgYXdhaXQgT3BlbmFwaU1vZHVsZS5hdHRhY2goCiAgICB7CiAgICAgIGFwcCwKICAgICAgYmFzZUxvZ2dlcjogb3BlbmFwaUxvZ2dlciwKICAgICAgZG9jdW1lbnQ6IGF3YWl0IGJ1aWxkT3BlbmFwaURvY3VtZW50KGFwcCksCiAgICB9LAogICk7Cn0KYGBgCgpZb3UgY2FuIG5vdyBzZWUgeW91ciBBUEkgZG9jdW1lbnQgYXQgYC9vcGVuYXBpLmpzb25gIGFuZCB5b3VyIFN3YWdnZXIgVUkgYXQgYC9hcGktZG9jc2AuCgojIyMgRGVjb3JhdG9ycywgRGVjb3JhdG9ycywgYW5kIE1vcmUgRGVjb3JhdG9ycyAjIyMKVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGRlY29yYXRvcnMgYW5kIGl0J3MgcHJvYmFibHkgYmVzdCB0byBsb29rIGF0IFtFZCdzIHNrZWxldG9uIHByb2plY3RdKCkgdG8gZ2V0IGEgd29ya3MtaW4tYW5nZXIgZXhhbXBsZSBvZiB0aGUgZnVsbCBBUEkuCgpPbmUgdGhpbmcgSSd2ZSBmb3VuZCB0byBiZSB2ZXJ5IHVzZWZ1bCBpcyB0byBpbXBvcnQgZGVjb3JhdG9ycyB1bmRlciBhIG5hbWVzcGFjZSBpbiBvcmRlciB0byBtYWtlIGl0IGNsZWFyZXIgd2hlbiBkZWNvcmF0b3JzIHRoYXQgX2FyZW4ndF8gZnJvbSBOZXN0SlMgYXJlIGJlaW5nIHVzZWQuIE15IHN0YW5kYXJkIGFwcHJvYWNoLCB0aGVuLCBpcyB0byBpbXBvcnQgdGhlIGVudGlyZSBwYWNrYWdlOgoKYGBgdHMKaW1wb3J0ICogYXMgT0FTIGZyb20gJ0Blcm9wcGxlL25lc3Rqcy1vcGVuYXBpMyc7CmBgYAoKIyMjIyBQYXJlbnQtIGFuZCBFbmRwb2ludC1MZXZlbCBEZWNvcmF0b3JzICMjIyMKU29tZSBkZWNvcmF0b3JzIGNhbiBiZSBhcHBsaWVkIHRvIGNvbnRyb2xsZXJzIChhbmQgYWxsIGVuZHBvaW50cyB3aXRoaW4gdGhhdCBjb250cm9sbGVyKSBhbmQgbW9kdWxlcyAoYW5kIGFsbCBlbmRwb2ludHMgd2l0aGluIGFsbCBjb250cm9sbGVycykuIFRoZXNlIGluY2x1ZGU6CgotIGBAT0FTLlRhZ3MoKWAgLSB0YWdzIG9wZXJhdGlvbnMgaW4gdGhlIGRvY3VtZW50IChvZnRlbiB1c2VkIHRvIG1vcmUgcmljaGx5IGRlZmluZSBjbGllbnRzKQotIGBAT0FTLkRlcHJlY2F0ZWQoKWAgLSBtYXJrcyBhcyBkZXByZWNhdGVkCi0gYEBPQVMuSWdub3JlKClgIC0gc2tpcHMgT3BlbkFQSSBoYW5kbGluZwotIGBAT0FTLlBhcmFtZXRlcigpYCAtIGRlZmluZXMgYSBwYXJhbWV0ZXIgdGhhdCdzIHVzZWQgb3V0c2lkZSBvZiB0aGUgaGFuZGxlci4gRm9yIGV4YW1wbGUsIGluIFtFZCdzIHNrZWxldG9uIHByb2plY3RdKCksIGl0J3MgdXNlZCB0byBwcm92aWRlIGB0ZW5hbnROYW1lYCBpbiBhIHdheSB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gYEBlcm9wcGxlL25lc3Rqcy1hdXRoYCB0byBkZXRlcm1pbmUgdGVuYW5jeSwgZnJvbSB3aGljaCBhIHVzZXIgY2FuIGJlIGZvdW5kLgotIGBAT0FTLlNlY3VyaXR5U2NoZW1lKClgIC0gYWRkcyBhIHNlY3VyaXR5IHNjaGVtZSwgd2l0aCBzY29wZXMgZm9yIE9BdXRoMiBvciBPSURDIHNjaGVtZXMKCiMjIyMgRW5kcG9pbnQtTGV2ZWwgRGVjb3JhdG9ycyAjIyMjCkluIGFkZGl0aW9uIHRvIHRoZSBhYm92ZSwgc29tZSBkZWNvcmF0b3JzIGFwcGx5IGV4cGxpY2l0bHkgdG8gdGhlIGVuZHBvaW50IGhhbmRsZXIuCgotIGBAT0FTLkdldCgpYCwgYEBPQVMuUG9zdCgpYCwgYEBPQVMuUHV0KClgLCBldGMuIC0gcmVwbGFjZXMgTmVzdEpTJ3MgaHR0cCBtZXRob2QgZGVjb3JhdG9ycyAoc3VjaCBhcyBgQEdldCgpYCkgd2l0aCBkZWNvcmF0b3JzIHRoYXQgYWNjZXB0IE9wZW5BUEkgb3BlcmF0b3IgZGV0YWlscy4KLSBgQE9BUy5PcGVyYXRpb24oKWAgLSB0aGUgImJyZWFrIGdsYXNzIGluIGNhc2Ugb2YiIG9wdGlvbi4gSWYgeW91IHdhbnQgdG8gd3JpdGUgYSBsaXRlcmFsIG9wZXJhdGlvbiBmb3IgaW5jbHVzaW9uIGluIHlvdXIgT3BlbkFQSSBkb2N1bWVudCwgdXNlIHRoaXMgb25lLiBZb3UnbGwgbmVlZCB0byB1c2UgYSBOZXN0SlMgSFRUUCBtZXRob2QgZGVjb3JhdG9yLCBzdWNoIGFzIGBAR2V0KClgLCB0byBtYWtlIHN1cmUgdGhhdCBOZXN0SlMgY2FuIHJvdXRlIHJlcXVlc3RzLgoKIyMjIyBBcmd1bWVudC1MZXZlbCBEZWNvcmF0b3JzICMjIyMKVGhlc2UgZGVjb3JhdG9ycyBvbmx5IGFwcGx5IHRvIHRoZSBhcmd1bWVudHMgaW4gYW4gZW5kcG9pbnQgaGFuZGVyIGZ1bmN0aW9uLgoKLSBgQE9BUy5Cb2R5KClgIC0gd3JhcHMgTmVzdEpTJ3MgYEBCb2R5KClgIGFuZCBhY2NlcHRzIHNjaGVtYXMgZm9yIHJlcXVlc3QgYm9kaWVzLgotIGBAT0FTLlBhdGgoKWAgLSB3cmFwcyBOZXN0SlMncyBgQFBhcmFtKClgLiBUaGUgbmFtZSBjaGFuZ2UgaXMgX2ludGVudGlvbmFsXyB0byBtYXRjaCB1cCB3aXRoIHRoZSBgaW5gIGZpZWxkIG9mIGFuIE9wZW5BUEkgcGFyYW1ldGVyIG9iamVjdC4KLSBgQE9BUy5IZWFkZXIoKWAgLSB3cmFwcyBOZXN0SlMncyBgQEhlYWRlcnMoKWAsIG9ubHkgc3VwcG9ydGluZyBhIHNpbmdsZSBzZWxlY3RlZCBoZWFkZXIuCi0gYEBPQVMuUXVlcnkoKWAgLSB3cmFwcyBOZXN0SlMncyBgQFF1ZXJ5KClgLgoKIyMjIGBTY2hlbWFMaWtlYDogIkRvIFdoYXQgSSBNZWFuIiBTY2hlbWEgT2JqZWN0cyAjIyMKTW9zdCBvZiB0aGlzIGxpYnJhcnkgZG9lc24ndCByZWx5IGRpcmVjdGx5IG9uIHRoZSBgTzNUUy5TY2hlbWFPYmplY3RgIGZldGNoZWQgb3V0IG9mIG91ciBkZXBlbmRlbmN5LCBgb3BlbmFwaTMtdHNgLiBJbnN0ZWFkLCB3ZSByZWx5IG9uIHRoZSBjb25jZXB0IG9mIGEgYFNjaGVtYUxpa2VgLCB3aGljaCBpcyBkZWZpbmVkIGFzIHRodXM6CgpgYGB0cwpleHBvcnQgdHlwZSBTY2hlbWFMaWtlU2NoZW1hT2JqZWN0ID0KICAmIE8zVFMuU2NoZW1hT2JqZWN0CiAgJiB7CiAgICBhbGxPZjogQXJyYXk8TzNUUy5TY2hlbWFPYmplY3QgfCBPM1RTLlJlZmVyZW5jZU9iamVjdCB8IEN0b3IgfCBTY2hlbWFMaWtlU2NoZW1hT2JqZWN0PjsKICAgIGFueU9mOiBBcnJheTxPM1RTLlNjaGVtYU9iamVjdCB8IE8zVFMuUmVmZXJlbmNlT2JqZWN0IHwgQ3RvciB8IFNjaGVtYUxpa2VTY2hlbWFPYmplY3Q+OwogICAgb25lT2Y6IEFycmF5PE8zVFMuU2NoZW1hT2JqZWN0IHwgTzNUUy5SZWZlcmVuY2VPYmplY3QgfCBDdG9yIHwgU2NoZW1hTGlrZVNjaGVtYU9iamVjdD47CgogICAgaXRlbXM6IE8zVFMuU2NoZW1hT2JqZWN0IHwgTzNUUy5SZWZlcmVuY2VPYmplY3QgfCBDdG9yIHwgU2NoZW1hTGlrZVNjaGVtYU9iamVjdDsKICB9OwoKZXhwb3J0IHR5cGUgU2NoZW1hTGlrZSA9CiAgU2NoZW1hTGlrZVNjaGVtYU9iamVjdCB8IE8zVFMuU2NoZW1hT2JqZWN0IHwgTzNUUy5SZWZlcmVuY2VPYmplY3QgfCBDdG9yIHwKICBbU2NoZW1hTGlrZVNjaGVtYU9iamVjdCB8IE8zVFMuU2NoZW1hT2JqZWN0IHwgTzNUUy5SZWZlcmVuY2VPYmplY3QgfCBDdG9yXTsKYGBgCgpBbnl3aGVyZSB5b3Ugd291bGQgbm9ybWFsbHkgd3JpdGUgYSBbU2NoZW1hIE9iamVjdF0oKSwgeW91IGNhbiBwYXNzIGFueSBvZiB0aGUgYWJvdmU6CgotIEEgc2NoZW1hIG9iamVjdCAoYHsgdHlwZTogJ3N0cmluZycgfWAsIGV0Yy4pIC0tIGJ1dCB0aGVyZSdzIGEgdHdpc3Q6IGFueSBvZiBgYWxsT2ZgLCBgYW55T2ZgLCBvciBgb25lT2ZgIGNhbiBiZSBhIGBTY2hlbWFMaWtlYC4KLSBBIHJlZmVyZW5jZSBvYmplY3QgdG8gYSBzY2hlbWEgZGVjbGFyZWQgZWxzZXdoZXJlIGluIHRoZSBBUEkgb3IgZXhwbGljaXRseSBhZ2FpbnN0IHRoZSBgT3BlbkFwaUJ1aWxkZXJgIGNsYXNzIGR1cmluZyB0aGUgYXR0YWNobWVudCBvZiB0aGUgbW9kdWxlLgotIEEgMS10dXBsZSBhcnJheSB3aXRoIGFueSBvZiB0aGUgYWJvdmUsIHdoaWNoIHdpbGwgeWllbGQgYHsgdHlwZTogJ2FycmF5JywgaXRlbXM6IFlvdXJTdWJTY2hlbWFIZXJlIH1gLgotIEEgY29uc3RydWN0b3IgZm9yIGEgY2xhc3MgZGVjb3JhdGVkIHdpdGggYEBPQVMuTW9kZWwoKWAsIHdoaWNoIHdpbGwgeWllbGQgYXMgYSBzY2hlbWEgZW50ZXJlZCBpbnRvIGAjL2NvbXBvbmVudHMvc2NoZW1hc2AgYW5kIHVzZWQgYXMgYSByZWZlcmVuY2UgKGB7ICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Zb3VyQ2xhc3NOYW1lJyB9YCkuCgojIyMgRmV0Y2hpbmcgdGhlIE9wZW5BUEkgRG9jdW1lbnQgIyMjClRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCB0aGUgT3BlbkFQSSBKU09OIGRvY3VtZW50IHNob3VsZCBiZSBzZXJ2ZWQgYXQgYC9vcGVuYXBpLmpzb25gLiBXZSBmb2xsb3cgdGhhdCBzdWdnZXN0aW9uLgoKWW91ciBBUEkgZG9jcyBhcmUgc2VydmVkIGF0IGAvYXBpLWRvY3NgLiBJdCdzIGNvbmZpZ3VyYWJsZSBiZXR3ZWVuIGByYXBpZG9jYCBhbmQgYHN3YWdnZXJgICh0aGUgZGVmYXVsdCwgdGhvdWdoIGl0IHdpbGwgc3RvcCBiZWluZyB0aGUgZGVmYXVsdCBpbiBvciBiZWZvcmUgdmVyc2lvbiBgMS4wLjBgKS4KCiMjIyBWYWxpZGF0aW9uIGFuZCBDb2VyY2lvbiAjIyMKT25lIGltcG9ydGFudCBkaWZmZXJlbmNlIGJldHdlZW4gYEBuZXN0anMvc3dhZ2dlcmAgYW5kIGBAZXJvcHBsZS9uZXN0anMtb3BlbmFwaTNgIGlzIHRoYXQgdGhpcyBsaWJyYXJ5IGRvZXMgdHlwZSBjb252ZXJzaW9uIHRvIG1hdGNoIHlvdXIgZGVzaXJlZCBzY2hlbWEuIEJ5IGRlZmF1bHQsIGluIE5lc3RKUywgdGhlIGZvbGxvd2luZyBIVFRQIGhhbmRsZXIgZG9lc24ndCBkbyB3aGF0IHlvdSdkIGV4cGVjdDoKCmBgYHRzCkBDb250cm9sbGVyKCdmb28nKQpleHBvcnQgY2xhc3MgRm9vQ29udHJvbGxlciB7CiAgQEdldCgpCiAgZG9Tb21ldGhpbmcoQFF1ZXJ5KCd2JykgdjogbnVtYmVyKSB7CiAgICBjb25zb2xlLmxvZyh0eXBlb2YodikpOyAvLyBUaGlzIHdpbGwgcmV0dXJuIGBzdHJpbmdgLCBub3QgYG51bWJlcmAhCiAgfQp9CmBgYAoKVGhpcyBzdGlua3MsIHNvIGBAZXJvcHBsZS9uZXN0anMtb3BlbmFwaTNgIHRyaWVzIHRvIGRvIG9uZSBiZXR0ZXIuIFNpbmNlIE9wZW5BUEkgc2NoZW1hcyBhcmUganVzdCBKU09OIHNjaGVtYXMsIHdlIHVzZSBbYWp2XSgpIHRvIHZhbGlkYXRlIGluY29taW5nIHBhcmFtZXRlcnMgYW5kIHJlcXVlc3QgYm9kaWVzLiBhanYgYWxzbyBzdXBwb3J0cyB0eXBlIGNvZXJjaW9uLCB3aGljaCB3ZSd2ZSBlbmFibGVkLiBTbyBpbnN0ZWFkLCB5b3UndmUgZ290IHNvbWV0aGluZyBtb3JlIGxpa2UgdGhpczoKCmBgYHRzCkBDb250cm9sbGVyKCdmb28nKQpleHBvcnQgY2xhc3MgRm9vQ29udHJvbGxlciB7CiAgQE9BUy5HZXQoKQogIGRvU29tZXRoaW5nKEBPQVMuUXVlcnkoJ3YnKSB2OiBudW1iZXIpIHsKICAgIGNvbnNvbGUubG9nKHR5cGVvZih2KSk7IC8vIFRoaXMgd2lsbCByZXR1cm4gYG51bWJlcmAuCiAgfQp9CmBgYAoKYWp2J3MgdHlwZSBjb2VyY2lvbiBhbHNvIGFwcGxpZXMgdG8gb2JqZWN0cyBpbiByZXF1ZXN0IGJvZGllcy4KClRoZXJlIGFyZSBzb21lIHNoYXJwIGVkZ2VzIHRvIGFqdiB0eXBlIGNvZXJjaW9uLiBNb3N0IG5vdGFibHksIGlmIGEgY2xpZW50IHBhc3NlcyBgbnVsbGAgd2hlbiBhIHN0cmluZyBpcyBleHBlY3RlZCwgaXQgd2lsbCBiZSBjb2VyY2VkIHRvIHRoZSBlbXB0eSBzdHJpbmcgKGAiImApLiBZb3UgbWlnaHQgd2FudCB0byB0YWtlIGEgbG9vayBhdCB0aGUgW2FqdiBjb2VyY2lvbiBjaGFydF0oKSB0byBhdm9pZCBhbnkgZm9vdGd1bnMuCgojIyMgVXBncmFkaW5nIGZyb20gYEBuZXN0anMvc3dhZ2dlcmAgIyMjCkRpc2N1c3NpbmcgdGhpcyBpbi1kZXB0aCBpcyBhIGJpZyBvbCcgKipUT0RPKiogaXRlbS4gSSd2ZSBjb252ZXJ0ZWQgcHJvamVjdHMgdXNpbmcgU3dhZ2dlciAyLjAgdG8gdXNpbmcgdGhpcyBsaWJyYXJ5OyBpZiB5b3UgaGF2ZSBhIGJhc2ljIHVuZGVyc3RhbmRpbmcgb2YgYSBTd2FnZ2VyIGRvY3VtZW50IGFuZCBpdHMgY29tcG9uZW50cywgcG9ydGluZyBpcyBwcmV0dHkgZWFzeS4gU29tZSBub3RlcyAocGxlYXNlIGZlZWwgZnJlZSB0byBhZGQgbW9yZSB0byB0aGlzIGxpc3QpOgoKLSBOZXN0SlMncyBidWlsdC1pbiByb3V0aW5nIGRlY29yYXRvcnMsIGxpa2UgYEBHZXQoKWAgYW5kIGBAUG9zdCgpYCwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYEBPQVMuR2V0KClgIGFuZCBgQE9BUy5Qb3N0KClgLiBZb3UgY2FuIHNwZWNpZnkgb3BlcmF0aW9uIGluZm9ybWF0aW9uIGFzIGFuIGFyZ3VtZW50IHRvIHRoaXMgZGVjb3JhdG9yLgotIGBAUGFyYW0oKWAgaXMgcmVwbGFjZWQgd2l0aCBgQE9BUy5QYXRoKClgCi0gYEBIZWFkZXJzKClgIGlzIHN0aWxsIHVzYWJsZSB0byBmZXRjaCBhbGwgaGVhZGVycyBmcm9tIGEgcmVxdWVzdCwgYnV0IGBASGVhZGVycygnc3BlY2lmaWMtaGVhZGVyJylgIGlzIHJlcGxhY2VkIHdpdGggYEBPQVMuSGVhZGVyKClgLgotIGBAUXVlcnkoKWAgaXMgcmVwbGFjZWQgd2l0aCBgQE9BUy5RdWVyeSgpYC4KLSBgQEJvZHkoKWAgaXMgcmVwbGFjZWQgd2l0aCBgQE9BUy5Cb2R5KClgLgotIEJ1cm4gYWxsIHRoYXQgYEBBcGlFeHBsaWNpdFBhcmFtKClgIHN0dWZmIHdpdGggY2xlYW5zaW5nIGZpcmUuCi0gQWRkIGBAT0FTLk1vZGVsKClgIG9yIGBAT0FTLk1vZGVsUmF3KClgIHRvIGFsbCB5b3VyIHJlcXVlc3QgYm9kaWVzIG9yIHJlc3BvbnNlcy4gKGBAT0FTLk1vZGVsUmF3KClgIGlzIHVzZWZ1bCBmb3IgdHVybmluZyBvZmYgbW9kZWwgaW50cm9zcGVjdGlvbiBpZiB5b3UndmUgZ290IGFuIG9iamVjdCB0aGF0IGhpbmdlcyBvbiBkaXNjcmltaW5hdG9ycyBvciBvdGhlciBhZHZhbmNlZCkKLSBSZXBsYWNlIGBAQXBpTW9kZWxQcm9wZXJ0eSgpYCB3aXRoIGBAT0FTLlByb3AoKWAgb3IsIGlmIHlvdSdyZSB3cml0aW5nIHNvbWV0aGluZyB0aGF0J3MgaGFyZCB0byBkZXNjcmliZSwgYEBPQVMuUHJvcFJhdygpYC4KCiMjIFdoYXQgVGhpcyBMaWJyYXJ5IERvZXNuJ3QgKEFuZCBQcm9iYWJseSBXb24ndCkgRG8gIyMKLSBbRGlzY3JpbWluYXRvcnNdKCkgYXJlIG5vdCBzdXBwb3J0ZWQgYW5kIHByb2JhYmx5IG5ldmVyIHdpbGwuIEkgdGhpbmsgdGhleSdyZSBhIGJhZCBpZGVhIGFuZCBuZWFybHkgaW1wb3NzaWJsZSB0byBtb2RlbCBpbiBhIGdlbmVyaWMgd2F5LiBJZiB5b3UndmUgZ290IGEgYnJpbGxpYW50IFBSIHN1Z2dlc3Rpb24sIEknZCBiZSB3aWxsaW5nIHRvIGxvb2sgYXQgaXQsIGJ1dCBzZWVpbmcgYXMgaG93IGl0IG1ha2VzIGEgbG90IG9mIHRoaW5ncyBicmVhayAoZm9yIGV4YW1wbGUsIHdlIG5vIGxvbmdlciBjYW4gdXNlIFthanZdKCkgdG8gdmFsaWRhdGUgc2NoZW1hcyksIEknbSBza2VwdGljYWwuCgojIyBBdmVudWVzIGZvciBDb250cmlidXRpb24gIyMKTG9vayBmb3IgYFRPRE9gcyBpbiB0aGUgY29kZWJhc2U7IHRoZXkncmUgdXN1YWxseSBnb29kIGNvbnRyaWJ1dGlvbiBvcHBvcnR1bml0aWVzIQoKLSBGYXN0aWZ5IHN1cHBvcnQuIEEgbG90IG9mIGBPcGVuYXBpVmFsaWRhdGlvbkludGVyY2VwdG9yYCBleHBlY3RzIHRvIGJlIHVzaW5nIEV4cHJlc3MuIFByb2JhYmx5IG5vdCBhIGh1Z2UgY2hhbGxlbmdlLCB0aG91Z2guCi0gQWRkIG9wdGlvbmFsIFN3YWdnZXIgVUkgZnVuY3Rpb25hbGl0eSwgc2ltaWxhciB0byBgQG5lc3Rqcy9zd2FnZ2VyYC4KLSBUZXN0cyBpbiBpc29sYXRpb24uIEknbSBub3QgY2xlYXIgb24gaG93IHRvIGFkZXF1YXRlbHkgdW5pdCB0ZXN0IGFnYWluc3QgZnVuY3Rpb25hbGl0eSBoYW5naW5nIGRpcmVjdGx5IG9mZiBvZiBOZXN0SlM7IHJpZ2h0IG5vdyB0aGlzIGxpYnJhcnkgKGFsb25nIHdpdGggb3RoZXIgaGlnaGx5IGludGVncmF0ZWQgbGlicmFyaWVzIG9mIG1pbmUsIGxpa2UgbmVzdGpzLWF1dGgpIHJlbGllcyBvbiBpbnRlZ3JhdGlvbiB0ZXN0cyBpbiBleGFtcGxlIHByb2plY3RzLgotIE9ubHkgdGhlIHNpbXBsZXN0IHBhcmFtZXRlciBzdHlsZXMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQ6IGBzaW1wbGVgICh0aGUgb25seSBvbmUgZm9yIGhlYWRlcnMsIHRob3VnaCBwYXRocyBoYXZlIG90aGVyIG9wdGlvbnMgdGhhdCB3ZSBkb24ndCBzdXBwb3J0KSBhbmQgYGZvcm1gIGZvciBxdWVyeSBwYXJhbWV0ZXJzLiBJZiBzb21lYm9keSBvdXQgdGhlcmUgbmVlZHMgbW9yZSBjb21wbGV4IHN0eWxlcywgeW91IHNob3VsZAotIENsZWFuZXIgdHlwZXMgYXJvdW5kIHNvbWUgb2YgdGhlIEFQSS4gRm9yIGV4YW1wbGUsIHJpZ2h0IG5vdyB5b3UgbXVzdCB1c2Ugb25lIG9mIGBjb250ZW50YCBvciBgbXVsdGlDb250ZW50YCBmb3IgcmVxdWVzdCBib2RpZXMsIGJ1dCB0aGVyZSdzIG5vIHR5cGUgY2hlY2tpbmcgdG8gYXNzZXJ0IHRoYXQgb25lIF9tdXN0XyBiZSB1c2VkLiBTaW1pbGFybHksIG9wZXJhdGlvbiByZXNwb25zZXMgYXJlIGEgbGl0dGxlIGtsdWRneS4gUHJvYmFibHkgYW4gZWFzeSBmaXggZm9yIHNvbWVib2R5IQotIERlZXBseSBuZXN0ZWQgU2NoZW1hTGlrZXMgKHNlZSBhYm92ZSkgbWF5IG5vdCBiZSBiZWluZyBoYW5kbGVkIGNvcnJlY3RseSBpbiBhbGwgY2FzZXMuCi0gW0V4YW1wbGUgZnVuY3Rpb25hbGl0eV0oKSBpcyBlbnRpcmVseSBhYnNlbnQuIFNxdWFyaW5nIGl0IHdpdGggc2ltcGxpZmllZCBmbGF2b3JzIG9mIGNvbnRlbnQgb2JqZWN0cyBpcyBoYXJkIGFuZCBJIGRvbid0IHVzZSBpdDsgcHVsbCByZXF1ZXN0cyB3ZWxjb21lLgotIFRoZXJlIGFyZSBhIGNvdXBsZSBvZiBvZGQgYmVoYXZpb3JzIHJlc3VsdGluZyBmcm9tIHVzaW5nIFthanZdKCkgdG8gdmFsaWRhdGUgY2xpZW50IHBhcmFtZXRlcnMvcmVxdWVzdCBib2RpZXMgYWdhaW5zdCBvdXIgT3BlbkFQSSAzIHNjaGVtYXMuIEluIHBhcnRpY3VsYXIsIHdoZW4gZGVhbGluZyB3aXRoIGEgc3RyaW5nIGZpZWxkLCBhanYgY29lcmNlcyBgbnVsbGAgdG8gdGhlIGVtcHR5IHN0cmluZy4gSSB0aGluayB0aGlzIHNob3VsZCBmYWlsIGhhcmQgaW5zdGVhZCwgYnV0IG5vdCBlbm91Z2ggdG8gbm90IHVzZSBhanYhCi0gTWF5YmUgbWFrZSBgZGVmYXVsdFJlc3BvbnNlc2AgYSBsaXR0bGUgc21hcnRlci4gU2F5IHlvdSdyZSB1c2luZyB0aGUgbW9kdWxlJ3MgYHZhbGlkYXRpb25GYWlsZWRSZXNwb25zZWAgYnVpbGRlci0taXQgZG9lc24ndCBtYWtlIHNlbnNlIGZvciBhIGA0MDBgIHRvIGJlIG9uIGFsbCBlbmRwb2ludHMsIGV2ZW4gb25lcyB3aGVyZSB0aGVyZSBhcmUgbm8gcGFyYW1ldGVycyBvciBoZWFkZXJzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQgX21pZ2h0XyBtYWtlIHNlbnNlLCBiZWNhdXNlIGl0IG1lYW5zIGEgdXNlciBjYW4gdGhyb3cgYSBjb2RlIDQwMCBgSHR0cEV4Y2VwdGlvbmAgZXZlbiB3aGVuIHRoZXkncmUgZGVhbGluZyB3aXRoIG1vcmUgaW50cmljYXRlIGRldGFpbHMgb2YgYSBiYWQgcmVxdWVzdC4gT3BlbiB0byBkaXNjdXNzaW9uLgoKW05lc3RKU106IGh0dHBzOi8vbmVzdGpzLmNvbS8KW0VkJ3Mgc2tlbGV0b24gcHJvamVjdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9lcm9wcGxlL25lc3QtYW5kLW5leHQtc2tlbGV0b24KW09wZW5BUEkgMy54XTogaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8KW0BuZXN0anMvc3dhZ2dlcl06IGh0dHBzOi8vZG9jcy5uZXN0anMuY29tL3JlY2lwZXMvc3dhZ2dlcgpbU2NoZW1hIE9iamVjdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kI3NjaGVtYU9iamVjdApbdGhlIE9wZW5BUEkgMy54IHNwZWNdOiBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZApbd2hhdCdzIG5ldyBpbiBPcGVuQVBJIDMueF06IGh0dHBzOi8vc3dhZ2dlci5pby9ibG9nL25ld3Mvd2hhdHMtbmV3LWluLW9wZW5hcGktMy0wLwpbRXhhbXBsZSBmdW5jdGlvbmFsaXR5XTogaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjIubWQjZXhhbXBsZU9iamVjdApbRGlzY3JpbWluYXRvcnNdOiBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCNkaXNjcmltaW5hdG9yT2JqZWN0ClthanZdOiBodHRwczovL2dpdGh1Yi5jb20vZXBvYmVyZXpraW4vYWp2ClthanYgY29lcmNpb24gY2hhcnRdOiBodHRwczovL2Fqdi5qcy5vcmcvY29lcmNpb24uaHRtbAo= readmeEtag: '"b7f5fb24078604d03f75aeed32db07e8b1fb568a"' readmeLastModified: Tue, 19 Nov 2019 20:15:40 GMT repositoryId: 210099348 description: OpenAPI 3.x document generation and serving for NestJS. created: '2019-09-22T06:09:28Z' updated: '2024-01-13T14:54:17Z' language: TypeScript archived: false stars: 24 watchers: 4 forks: 1 owner: eropple logo: https://avatars.githubusercontent.com/u/109262?v=4 repoEtag: '"24373ba3da6c53d212600ea3ab8aaed2ed3a0f0bcb6d3842b4e25a9d204d0161"' repoLastModified: Sat, 13 Jan 2024 14:54:17 GMT foundInMaster: true id: 45bed8813d1c030edf5f60d19fc7791d - source: https://openapi.tools/ name: '@nestjs/swagger' category: Server language: Node.js link: https://docs.nestjs.com/recipes/swagger repository: https://github.com/nestjs/swagger source_description: > Official OpenAPI (Swagger) module for NestJS. Use decorators to define OpenAPI endpoint documentation, parameters and return types. Integrates tightly with a NestJS application. Ships with Swagger UI and serves OpenAPI v3 spec. v2: false v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+DQogIDxhIGhyZWY9Imh0dHA6Ly9uZXN0anMuY29tLyIgdGFyZ2V0PSJibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vbmVzdGpzLmNvbS9pbWcvbG9nby1zbWFsbC5zdmciIHdpZHRoPSIxMjAiIGFsdD0iTmVzdCBMb2dvIiAvPjwvYT4NCjwvcD4NCg0KPHAgYWxpZ249ImNlbnRlciI+QSBwcm9ncmVzc2l2ZSA8YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZyIgdGFyZ2V0PSJibGFuayI+Tm9kZS5qczwvYT4gZnJhbWV3b3JrIGZvciBidWlsZGluZyBlZmZpY2llbnQgYW5kIHNjYWxhYmxlIHNlcnZlci1zaWRlIGFwcGxpY2F0aW9ucy48L3A+DQo8cCBhbGlnbj0iY2VudGVyIj4NCiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL35uZXN0anNjb3JlIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AbmVzdGpzL2NvcmUuc3ZnIiBhbHQ9Ik5QTSBWZXJzaW9uIiAvPjwvYT4NCiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL35uZXN0anNjb3JlIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AbmVzdGpzL2NvcmUuc3ZnIiBhbHQ9IlBhY2thZ2UgTGljZW5zZSIgLz48L2E+DQogIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9+bmVzdGpzY29yZSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL0BuZXN0anMvY29yZS5zdmciIGFsdD0iTlBNIERvd25sb2FkcyIgLz48L2E+DQogIDxhIGhyZWY9Imh0dHBzOi8vY2lyY2xlY2kuY29tL2doL25lc3Rqcy9uZXN0IiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY2lyY2xlY2kvYnVpbGQvZ2l0aHViL25lc3Rqcy9uZXN0L21hc3RlciIgYWx0PSJDaXJjbGVDSSIgLz48L2E+DQogIDxhIGhyZWY9Imh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9uZXN0anMvbmVzdD9icmFuY2g9bWFzdGVyIj48aW1nIHNyYz0iaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL25lc3Rqcy9uZXN0L2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyIzUiIGFsdD0iQ292ZXJhZ2UiIC8+PC9hPg0KICA8YSBocmVmPSJodHRwczovL2Rpc2NvcmQuZ2cvRzdRbm5oeSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2Rpc2NvcmQtb25saW5lLWJyaWdodGdyZWVuLnN2ZyIgYWx0PSJEaXNjb3JkIi8+PC9hPg0KICA8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9uZXN0I2JhY2tlciI+PGltZyBzcmM9Imh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL25lc3QvYmFja2Vycy9iYWRnZS5zdmciIGFsdD0iQmFja2VycyBvbiBPcGVuIENvbGxlY3RpdmUiIC8+PC9hPg0KICA8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9uZXN0I3Nwb25zb3IiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9uZXN0L3Nwb25zb3JzL2JhZGdlLnN2ZyIgYWx0PSJTcG9uc29ycyBvbiBPcGVuIENvbGxlY3RpdmUiIC8+PC9hPg0KICA8YSBocmVmPSJodHRwczovL3BheXBhbC5tZS9rYW1pbG15c2xpd2llYyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRG9uYXRlLVBheVBhbC1kYzNkNTMuc3ZnIi8+PC9hPg0KICA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL25lc3RmcmFtZXdvcmsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvZm9sbG93L25lc3RmcmFtZXdvcmsuc3ZnP3N0eWxlPXNvY2lhbCZsYWJlbD1Gb2xsb3ciPjwvYT4NCjwvcD4NCiAgPCEtLVshW0JhY2tlcnMgb24gT3BlbiBDb2xsZWN0aXZlXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9uZXN0L2JhY2tlcnMvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vbmVzdCNiYWNrZXIpDQogIFshW1Nwb25zb3JzIG9uIE9wZW4gQ29sbGVjdGl2ZV0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vbmVzdC9zcG9uc29ycy9iYWRnZS5zdmcpXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9uZXN0I3Nwb25zb3IpLS0+DQoNCiMjIERlc2NyaXB0aW9uDQoNCltPcGVuQVBJIChTd2FnZ2VyKV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgbW9kdWxlIGZvciBbTmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL25lc3Rqcy9uZXN0KS4NCg0KIyMgSW5zdGFsbGF0aW9uDQoNCmBgYGJhc2gNCiQgbnBtIGkgLS1zYXZlIEBuZXN0anMvc3dhZ2dlciANCmBgYA0KDQojIyBRdWljayBTdGFydA0KDQpbT3ZlcnZpZXcgJiBUdXRvcmlhbF0oaHR0cHM6Ly9kb2NzLm5lc3Rqcy5jb20vb3BlbmFwaS9pbnRyb2R1Y3Rpb24pDQoNCiMjIE1pZ3JhdGlvbiBmcm9tIHYzDQoNCklmIHlvdSdyZSBjdXJyZW50bHkgdXNpbmcgYEBuZXN0anMvc3dhZ2dlckAzLipgLCBub3RlIHRoZSBmb2xsb3dpbmcgYnJlYWtpbmcvQVBJIGNoYW5nZXMgaW4gdmVyc2lvbiA0LjAuDQoNClRoZSBmb2xsb3dpbmcgZGVjb3JhdG9ycyBoYXZlIGJlZW4gY2hhbmdlZC9yZW5hbWVkOg0KDQotIGBAQXBpTW9kZWxQcm9wZXJ0eWAgaXMgbm93IGBAQXBpUHJvcGVydHlgDQotIGBAQXBpTW9kZWxQcm9wZXJ0eU9wdGlvbmFsYCBpcyBub3cgYEBBcGlQcm9wZXJ0eU9wdGlvbmFsYA0KLSBgQEFwaVJlc3BvbnNlTW9kZWxQcm9wZXJ0eWAgaXMgbm93IGBAQXBpUmVzcG9uc2VQcm9wZXJ0eWANCi0gYEBBcGlJbXBsaWNpdFF1ZXJ5YCBpcyBub3cgYEBBcGlRdWVyeWANCi0gYEBBcGlJbXBsaWNpdFBhcmFtYCBpcyBub3cgYEBBcGlQYXJhbWANCi0gYEBBcGlJbXBsaWNpdEJvZHlgIGlzIG5vdyBgQEFwaUJvZHlgDQotIGBAQXBpSW1wbGljaXRIZWFkZXJgIGlzIG5vdyBgQEFwaUhlYWRlcmANCi0gYEBBcGlPcGVyYXRpb24oeyB0aXRsZTogJ3Rlc3QnIH0pYCBpcyBub3cgYEBBcGlPcGVyYXRpb24oeyBzdW1tYXJ5OiAndGVzdCcgfSlgDQotIGBAQXBpVXNlVGFnc2AgaXMgbm93IGBAQXBpVGFnc2ANCg0KYERvY3VtZW50QnVpbGRlcmAgYnJlYWtpbmcgY2hhbmdlcyAodXBkYXRlZCBtZXRob2Qgc2lnbmF0dXJlcyk6DQoNCi0gYGFkZFRhZ2ANCi0gYGFkZEJlYXJlckF1dGhgDQotIGBhZGRPQXV0aDJgDQotIGBzZXRDb250YWN0RW1haWxgIGlzIG5vdyBgc2V0Q29udGFjdGANCi0gYHNldEhvc3RgIGhhcyBiZWVuIHJlbW92ZWQNCi0gYHNldFNjaGVtZXNgIGhhcyBiZWVuIHJlbW92ZWQgKHVzZSB0aGUgYGFkZFNlcnZlcmAgaW5zdGVhZCwgZS5nLiwgYGFkZFNlcnZlcignaHR0cDovLycpYCkNCg0KVGhlIGZvbGxvd2luZyBtZXRob2RzIGhhdmUgYmVlbiBhZGRlZDoNCg0KLSBgYWRkU2VydmVyYA0KLSBgYWRkQXBpS2V5YA0KLSBgYWRkQmFzaWNBdXRoYA0KLSBgYWRkU2VjdXJpdHlgDQotIGBhZGRTZWN1cml0eVJlcXVpcmVtZW50c2ANCg0KIyMgU3VwcG9ydA0KDQpOZXN0IGlzIGFuIE1JVC1saWNlbnNlZCBvcGVuIHNvdXJjZSBwcm9qZWN0LiBJdCBjYW4gZ3JvdyB0aGFua3MgdG8gdGhlIHNwb25zb3JzIGFuZCBzdXBwb3J0IGJ5IHRoZSBhbWF6aW5nIGJhY2tlcnMuIElmIHlvdSdkIGxpa2UgdG8gam9pbiB0aGVtLCBwbGVhc2UgW3JlYWQgbW9yZSBoZXJlXShodHRwczovL2RvY3MubmVzdGpzLmNvbS9zdXBwb3J0KS4NCg0KIyMgU3RheSBpbiB0b3VjaA0KDQotIEF1dGhvciAtIFtLYW1pbCBNecWbbGl3aWVjXShodHRwczovL3R3aXR0ZXIuY29tL2thbW15c2xpd2llYykNCi0gV2Vic2l0ZSAtIFtodHRwczovL25lc3Rqcy5jb21dKGh0dHBzOi8vbmVzdGpzLmNvbS8pDQotIFR3aXR0ZXIgLSBbQG5lc3RmcmFtZXdvcmtdKGh0dHBzOi8vdHdpdHRlci5jb20vbmVzdGZyYW1ld29yaykNCg0KIyMgTGljZW5zZQ0KDQpOZXN0IGlzIFtNSVQgbGljZW5zZWRdKExJQ0VOU0UpLg0K readmeEtag: '"cac62dffa72b643a08d596107ef4e1a07ec35cbc"' readmeLastModified: Fri, 16 Aug 2024 22:01:00 GMT repositoryId: 105440153 description: 'OpenAPI (Swagger) module for Nest framework (node.js) :earth_americas:' created: '2017-10-01T12:20:24Z' updated: '2024-09-05T14:46:20Z' language: TypeScript archived: false stars: 1674 watchers: 31 forks: 462 owner: nestjs logo: https://avatars.githubusercontent.com/u/28507035?v=4 license: MIT repoEtag: '"2c62a537fd20b0e8f1b5e60fd82e574da907750674eff9b76d5ecf6ad1d5f413"' repoLastModified: Thu, 05 Sep 2024 14:46:20 GMT foundInMaster: true id: 7071babd9853fc901c5decfa9b465b67 - source: - https://openapi.tools/ - openapi3 tags name: Falcon Heavy category: - Server - Mock - Parsers language: Python link: https://github.com/NotJustAToy/falcon-heavy repository: https://github.com/notjustatoy/falcon-heavy source_description: > The framework for building app backends and microservices via the API design-first workflow. v3: true repositoryMetadata: base64Readme: >- KioqKioqKioqKioqCkZhbGNvbiBIZWF2eQoqKioqKioqKioqKioKCgpBYm91dAojIyMjIwoKVGhlIGZyYW1ld29yayBmb3IgYnVpbGRpbmcgYXBwIGJhY2tlbmRzIGFuZCBtaWNyb3NlcnZpY2VzIGJ5IHNwZWNpZmljYXRpb24tZmlyc3QgQVBJIGRlc2lnbiBhcHByb2FjaCBiYXNlZCBvbiB0aGUgYE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzIDxodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbj5gX18uCgpGYWxjb24gSGVhdnkgY29udmVydHMgYW5kIHZhbGlkYXRlcyByZXF1ZXN0cyBhbmQgcmVuZGVycyByZXNwb25zZXMgY29ycmVzcG9uZGVkIHNwZWNpZmljYXRpb24uIEl0IGNhbiBiZSB1c2VkIHdpdGggYERqYW5nbyA8aHR0cHM6Ly93d3cuZGphbmdvcHJvamVjdC5jb20vPmBfXywgYEZhbGNvbiA8aHR0cHM6Ly9mYWxjb25mcmFtZXdvcmsub3JnLz5gX18gYW5kIGBGbGFzayA8aHR0cHM6Ly9wYWxsZXRzcHJvamVjdHMuY29tL3AvZmxhc2svPmBfXyB3ZWIgZnJhbWV3b3Jrcy4KCkluc3RhbGxhdGlvbgojIyMjIyMjIyMjIyMKClJlY29tbWVuZGVkIHdheSAodmlhIHBpcCk6CgouLiBjb2RlOjogYmFzaAoKICAgICQgcGlwIGluc3RhbGwgZmFsY29uLWhlYXZ5CgpVc2FnZQojIyMjIwoKMS4gSW1wbGVtZW50IGFsbCBhYnN0cmFjdCBtZXRob2RzIGZyb20gYSBjb3JyZXNwb25kaW5nIGRlY29yYXRvciBjbGFzcy4KMi4gU2V0IHVwIHJvdXRpbmcgYmFzZWQgb24gYSBzcGVjaWZpY2F0aW9uLgozLiBEZWNvcmF0ZSB2aWV3cyB3aXRoIHlvdXIgZGVjb3JhdG9yLgoKTGltaXRhdGlvbnMKIyMjIyMjIyMjIyMKCiogWE1MIGlzIG5vdCBzdXBwb3J0ZWQuCiogQ2FuJ3QgdXNlIHJlc2VydmVkIGNoYXJhY3RlcnMgaW4gcGF0aCBhbmQgcXVlcnkgcGFyYW1ldGVycy4KKiBSZWN1cnNpdmUgZGVwZW5kZW5jaWVzIGRldGVjdGlvbiBub3QgaW1wbGVtZW50ZWQuCgpMaWNlbnNlCiMjIyMjIyMKCkNvcHlyaWdodCAyMDE5LTIwMjAgTm90IEp1c3QgQSBUb3kgQ29ycC4KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo= readmeEtag: '"d8e2ecbcd8419e851febf59ce35af5d437dd822e"' readmeLastModified: Mon, 02 Mar 2020 08:05:48 GMT repositoryId: 226058346 description: >- The framework for building app backends and microservices by specification-first API design approach based on the OpenAPI Specification 3 created: '2019-12-05T08:57:06Z' updated: '2024-06-05T00:02:47Z' language: Python archived: false stars: 23 watchers: 3 forks: 1 owner: NotJustAToy logo: https://avatars.githubusercontent.com/u/58468738?v=4 license: Apache-2.0 repoEtag: '"f663ba1f8d7666935dea4ddc4f7c96eb229cf928e23d266593145f7647777d65"' repoLastModified: Wed, 05 Jun 2024 00:02:47 GMT foundInMaster: true id: fec1361e049c40cc2fb370a08b153cb0 - source: - https://openapi.tools/ - openapi3 tags name: Dredd category: Testing link: https://dredd.io/ repository: https://github.com/apiaryio/dredd language: Javascript source_description: >- Language-agnostic command-line tool for validating API description document against backend implementation of the API v2: true v3: true repositoryMetadata: base64Readme: >- IyBEcmVkZCDigJQgSFRUUCBBUEkgVGVzdGluZyBGcmFtZXdvcmsKClshW25wbSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvZHJlZGQuc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZHJlZGQpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvYXBpYXJ5aW8vZHJlZGQvdHJlZS9tYXN0ZXIuc3ZnP3N0eWxlPXN2ZyldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL2FwaWFyeWlvL2RyZWRkL3RyZWUvbWFzdGVyKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvbjNpeGZ4aDcycXVzaHlyNC9icmFuY2gvbWFzdGVyP3N2Zz10cnVlKV0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9BcGlhcnkvZHJlZGQvYnJhbmNoL21hc3RlcikKWyFbRG9jdW1lbnRhdGlvbiBTdGF0dXNdKGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL2RyZWRkL2JhZGdlLz92ZXJzaW9uPWxhdGVzdCldKGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL2RyZWRkL2J1aWxkcy8pClshW0tub3duIFZ1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zbnlrLmlvL3Rlc3QvbnBtL2RyZWRkL2JhZGdlLnN2ZyldKGh0dHBzOi8vc255ay5pby90ZXN0L25wbS9kcmVkZCkKCiFbRHJlZGQgLSBIVFRQIEFQSSBUZXN0aW5nIEZyYW1ld29ya10oZG9jcy9fc3RhdGljL2ltYWdlcy9kcmVkZC5wbmc/cmF3PXRydWUpCgo+ICoqRHJlZGQgaXMgYSBsYW5ndWFnZS1hZ25vc3RpYyBjb21tYW5kLWxpbmUgdG9vbCBmb3IgdmFsaWRhdGluZwo+IEFQSSBkZXNjcmlwdGlvbiBkb2N1bWVudCBhZ2FpbnN0IGJhY2tlbmQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEFQSS4qKgoKLSBbRG9jdW1lbnRhdGlvbl1bXQotIFtDaGFuZ2Vsb2ddW10KLSBbQ29udHJpYnV0b3IncyBHdWlkZWxpbmVzXVtdCgpEcmVkZCByZWFkcyB5b3VyIEFQSSBkZXNjcmlwdGlvbiBhbmQgc3RlcCBieSBzdGVwIHZhbGlkYXRlcyB3aGV0aGVyIHlvdXIgQVBJCmltcGxlbWVudGF0aW9uIHJlcGxpZXMgd2l0aCByZXNwb25zZXMgYXMgdGhleSBhcmUgZGVzY3JpYmVkIGluIHRoZQpkb2N1bWVudGF0aW9uLgoKIyMjIFN1cHBvcnRlZCBBUEkgRGVzY3JpcHRpb24gRm9ybWF0cwoKLSBbQVBJIEJsdWVwcmludF1bXQotIFtPcGVuQVBJIDJdW10gKGZvcm1lcmx5IGtub3duIGFzIFN3YWdnZXIpCi0gW09wZW5BUEkgM11bXSAoW2V4cGVyaW1lbnRhbF0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWFyeWlvL2FwaS1lbGVtZW50cy5qcy9ibG9iL21hc3Rlci9wYWNrYWdlcy9vcGVuYXBpMy1wYXJzZXIvU1RBVFVTLm1kKSwgY29udHJpYnV0aW9ucyB3ZWxjb21lISkKCiMjIyBTdXBwb3J0ZWQgSG9va3MgTGFuZ3VhZ2VzCgpEcmVkZCBzdXBwb3J0cyB3cml0aW5nIFtob29rc10oaHR0cHM6Ly9kcmVkZC5vcmcvZW4vbGF0ZXN0L2hvb2tzLykK4oCUIGEgZ2x1ZSBjb2RlIGZvciBlYWNoIHRlc3Qgc2V0dXAgYW5kIHRlYXJkb3duLiBGb2xsb3dpbmcgbGFuZ3VhZ2VzIGFyZSBzdXBwb3J0ZWQ6CgotIFtHb10oaHR0cHM6Ly9kcmVkZC5vcmcvZW4vbGF0ZXN0L2hvb2tzLWdvLykKLSBbTm9kZS5qcyAoSmF2YVNjcmlwdCldKGh0dHBzOi8vZHJlZGQub3JnL2VuL2xhdGVzdC9ob29rcy1ub2RlanMvKQotIFtQZXJsXShodHRwczovL2RyZWRkLm9yZy9lbi9sYXRlc3QvaG9va3MtcGVybC8pCi0gW1BIUF0oaHR0cHM6Ly9kcmVkZC5vcmcvZW4vbGF0ZXN0L2hvb2tzLXBocC8pCi0gW1B5dGhvbl0oaHR0cHM6Ly9kcmVkZC5vcmcvZW4vbGF0ZXN0L2hvb2tzLXB5dGhvbi8pCi0gW1J1YnldKGh0dHBzOi8vZHJlZGQub3JnL2VuL2xhdGVzdC9ob29rcy1ydWJ5LykKLSBbUnVzdF0oaHR0cHM6Ly9kcmVkZC5vcmcvZW4vbGF0ZXN0L2hvb2tzLXJ1c3QvKQotIERpZG4ndCBmaW5kIHlvdXIgZmF2b3JpdGUgbGFuZ3VhZ2U/IF9bQWRkIGEgbmV3IG9uZSFdKGh0dHBzOi8vZHJlZGQub3JnL2VuL2xhdGVzdC9ob29rcy1uZXctbGFuZ3VhZ2UvKV8KCiMjIyBTdXBwb3J0ZWQgU3lzdGVtcwoKLSBMaW51eCwgbWFjT1MsIFdpbmRvd3MsIC4uLgotIFtUcmF2aXMgQ0ldW10sIFtDaXJjbGVDSV1bXSwgW0plbmtpbnNdW10sIFtBcHBWZXlvcl1bXSwgLi4uCgojIyBJbnN0YWxsYXRpb24KCmBgYAokIG5wbSBpbnN0YWxsIC1nIGRyZWRkCmBgYAoKIyMgUXVpY2sgU3RhcnQKCjEuICBDcmVhdGUgYW4gW0FQSSBCbHVlcHJpbnRdW10gZmlsZSBjYWxsZWQgYGFwaS1kZXNjcmlwdGlvbi5hcGliYC4KICAgIEZvbGxvdyBbdHV0b3JpYWwgYXQgQVBJIEJsdWVwcmludCB3ZWJzaXRlXVthcGkgYmx1ZXByaW50IHR1dG9yaWFsXQogICAgb3IganVzdCB0YWtlIG9uZSBvZiB0aGUgW3JlYWR5LW1hZGUgZXhhbXBsZXNdW2FwaSBibHVlcHJpbnQgZXhhbXBsZXNdLgoyLiAgUnVuIGludGVyYWN0aXZlIGNvbmZpZ3VyYXRpb246CgogICAgYGBgc2hlbGwKICAgICQgZHJlZGQgaW5pdAogICAgYGBgCgozLiAgUnVuIERyZWRkOgoKICAgIGBgYHNoZWxsCiAgICAkIGRyZWRkCiAgICBgYGAKCjQuICBUbyBzZWUgaG93IHRvIHVzZSBhbGwgRHJlZGQncyBmZWF0dXJlcywgYnJvd3NlIHRoZQogICAgW2Z1bGwgZG9jdW1lbnRhdGlvbl1bZG9jdW1lbnRhdGlvbl0uCgojIyBIb3d0b3MsIFR1dG9yaWFscywgQmxvZ3Bvc3RzICgzcmQgcGFydHkpCgotIFtNYWludGVuaXIgw6Agam91ciBzYSBkb2N1bWVudGF0aW9uIGQnQVBJIGF2ZWMgRHJlZGQhXShodHRwczovL2Jsb2cuaXRuZXR3b3JrLmZyL2Jsb2ctcG9zdC8yMDE5LzA1LzA2L2RyZWRkLXBhcnRpZS0xLWVjcml0dXJlLWRvY3VtZW50YXRpb24uaHRtbCkgXzA1LzA2LzIwMTlfCi0gW0RyZWRkIC0gTGFuZ3VhZ2UtYWdub3N0aWMgSFRUUCBBUEkgVGVzdGluZyBUb29sIC0gSW50ZXJ2aWV3IHdpdGggSG9uemEgSmF2b3Jla10oaHR0cHM6Ly9zdXJ2aXZlanMuY29tL2Jsb2cvZHJlZGQtaW50ZXJ2aWV3LykgXzAzLzIyLzIwMTlfCi0gW0xhcmF2ZWwgT3BlbkFQSSAzIERvY3VtZW50YXRpb24gVmVyaWZpY2F0aW9uIFVzaW5nIERyZWRkXShodHRwczovL2NvbW1hbmR6LmlvL3NuaXBwZXRzL2xhcmF2ZWwvbGFyYXZlbC1kcmVkZC1vcGVuYXBpLXYzLykgXzAyLzI0LzIwMTlfCi0gW1Rlc3RpbmcgeW91ciBBUEkgd2l0aCBEcmVkZF0oaHR0cHM6Ly9tZWRpdW0uY29tL21vcC1kZXZlbG9wZXJzL3Rlc3RpbmcteW91ci1hcGktd2l0aC1kcmVkZC1jMDJlNmNhMTUxZjIpIF8wOS8yNy8yMDE4XwotIFtXcml0aW5nIFRlc3RhYmxlIEFQSSBEb2N1bWVudGF0aW9uIFVzaW5nIEFQSUIgYW5kIERyZWRkIChSYWlscyldKGh0dHBzOi8vYmxvZy5yZWJhc2VkLnBsLzIwMTgvMDYvMjkvdGVzdGFibGUtYXBpLWRvY3MuaHRtbCkgXzA2LzI5LzIwMThfCi0gW0Rlc2lnbi1maXJzdCBBUEkgU3BlY2lmaWNhdGlvbiBXb3JrZmxvdyBNYXR1cmVzXShodHRwczovL3BoaWxzdHVyZ2Vvbi51ay9hcGkvMjAxOC8wMy8wMS9hcGktc3BlY2lmaWNhdGlvbi13b3JrZmxvdy1tYXR1cmVzLykgXzAzLzAxLzIwMThfCi0gW1dyaXRpbmcgYW5kIHRlc3RpbmcgQVBJIHNwZWNpZmljYXRpb25zIHdpdGggQVBJIEJsdWVwcmludCwgRHJlZGQgYW5kIEFwaWFyeV0oaHR0cHM6Ly9oYWNrZXJub29uLmNvbS93cml0aW5nLWFuZC10ZXN0aW5nLWFwaS1zcGVjaWZpY2F0aW9ucy13aXRoLWFwaS1ibHVlcHJpbnQtZHJlZWQtYW5kLWFwaWFyeS1kZjEzOGFjY2NlNWEpIF8xMi8wNC8yMDE3XwotIFtUZXN0aW5nIGFuIEFQSSBBZ2FpbnN0IGl0cyBEb2N1bWVudGF0aW9uXShodHRwczovL2Rldi50by9hbGJlcnRvZmR6bS90ZXN0aW5nLWFuLWFwaS1hZ2FpbnN0LWRvY3VtZW50YXRpb24tNmNsKSBfMTEvMjMvMjAxN18KLSBbS2VlcGluZyBEb2N1bWVudGF0aW9uIEhvbmVzdF0oaHR0cHM6Ly9ibG9nLmFwaXN5b3V3b250aGF0ZS5jb20va2VlcGluZy1kb2N1bWVudGF0aW9uLWhvbmVzdC1kOWFiNTM1MWRkZDQpIF8xMS8yMS8yMDE3XwotIFtBcGlhcnkgZGVzaWduZWQgQVBJcyB0ZXN0ZWQgdXNpbmcgRHJlZGRdKGh0dHBzOi8vcmVkdGh1bmRlci5ibG9nLzIwMTcvMDkvMjAvYXBpYXJ5LWRlc2lnbmVkLWFwaXMtdGVzdGVkLXVzaW5nLWRyZWRkLykgXzA5LzIwLzIwMTdfCi0gW0RyZWRkICsgU3dhZ2dlciBmb3IgUkVTVCBBUEkgdGVzdGluZ10oaHR0cHM6Ly9jb2RlYnVyc3QuaW8vZHJlZGQtc3dhZ2dlci1mb3ItcmVzdC1hcGktdGVzdGluZy03MTVkMWFmNWU4YzUpIF8wMS8yNC8yMDE3XwotIFtUZXN0aW5nIFlvdXIgQVBJIERvY3VtZW50YXRpb24gV2l0aCBEcmVkZF0oaHR0cHM6Ly9tYXR0aGV3ZGFseS5jby51ay9ibG9nLzIwMTYvMDgvMDgvdGVzdGluZy15b3VyLWFwaS1kb2N1bWVudGF0aW9uLXdpdGgtZHJlZGQvKSBfMDgvMDgvMjAxNl8KLSBbRFJFREQgQVBJIFRlc3RlciB3b3JrcyB3aXRoIEFQSSBCbHVlcHJpbnRzXShodHRwOi8vd3d3LmZpbmtsYWJzLm9yZy9hcnRpY2xlcy9hcGktYmx1ZXByaW50LWRyZWRkLmh0bWwpIF8wNy8wNS8yMDE2XwotIFtEb2N1bWVudGF0aW9uIGRyaXZlbiBBUEkgRGV2ZWxvcG1lbnQgdXNpbmcgTGFyYXZlbCwgRHJlZGQgYW5kIEFwaWFyeV0oaHR0cHM6Ly9tZWRpdW0uY29tL2ZyaWFuYml6L2FwaS1waHAtcGlsb3QlQzMlQTllLXBhci1sYS1kb2MtM2M5ZWI0ZGFhMmFhKSBfMDYvMjEvMjAxNl8KLSBbRHJlZGQgdjEuMS4wOiBBIEJpdCBEaWZmZXJlbnRdKGh0dHBzOi8vcGhpbHN0dXJnZW9uLnVrL2FwaS8yMDE2LzA2LzIwL2RyZWRkLXYxLTEtMC1hLWJpdC1kaWZmZXJlbnQvKSBfMDYvMjAvMjAxNl8KLSBbRHJlZGQ6IERvIFlvdXIgSFRUUCBBUEkgSnVzdGljZV0oaHR0cHM6Ly9waGlsc3R1cmdlb24udWsvYXBpLzIwMTUvMDEvMjgvZHJlZGQtYXBpLXRlc3RpbmctZG9jdW1lbnRhdGlvbi8pIF8wMS8yOC8yMDE1XwoKW2FwaSBibHVlcHJpbnRdOiBodHRwczovL2FwaWJsdWVwcmludC5vcmcvClthcGkgYmx1ZXByaW50IHR1dG9yaWFsXTogaHR0cHM6Ly9hcGlibHVlcHJpbnQub3JnL2RvY3VtZW50YXRpb24vdHV0b3JpYWwuaHRtbApbYXBpIGJsdWVwcmludCBleGFtcGxlc106IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlhcnlpby9hcGktYmx1ZXByaW50L3RyZWUvbWFzdGVyL2V4YW1wbGVzCltvcGVuYXBpIDJdOiBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQKW29wZW5hcGkgM106IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kCltkb2N1bWVudGF0aW9uXTogaHR0cHM6Ly9kcmVkZC5vcmcvZW4vbGF0ZXN0LwpbY2hhbmdlbG9nXTogaHR0cHM6Ly9naXRodWIuY29tL2FwaWFyeWlvL2RyZWRkL3JlbGVhc2VzCltjb250cmlidXRvcidzIGd1aWRlbGluZXNdOiBodHRwczovL2RyZWRkLm9yZy9lbi9sYXRlc3QvY29udHJpYnV0aW5nLwpbdHJhdmlzIGNpXTogaHR0cHM6Ly90cmF2aXMtY2kub3JnLwpbY2lyY2xlY2ldOiBodHRwczovL2NpcmNsZWNpLmNvbS8KW2plbmtpbnNdOiBodHRwczovL2plbmtpbnMuaW8vClthcHB2ZXlvcl06IGh0dHBzOi8vd3d3LmFwcHZleW9yLmNvbS8K readmeEtag: '"ea4790fbe4413cc1856328d57208245ecfe7cf46"' readmeLastModified: Wed, 19 Jul 2023 20:05:32 GMT repositoryId: 12590052 description: Language-agnostic HTTP API Testing Tool created: '2013-09-04T12:21:35Z' updated: '2024-09-03T10:04:19Z' language: JavaScript archived: false stars: 4177 watchers: 76 forks: 278 owner: apiaryio logo: https://avatars.githubusercontent.com/u/765943?v=4 license: MIT repoEtag: '"49276162f90bb3c8ac977e8cb7d4cfc02dc3cc6f2bc5e62883726f25813c15d8"' repoLastModified: Tue, 03 Sep 2024 10:04:19 GMT foundInMaster: true id: bb2e4b0879fce0d8706dcebfd2c10a4c - source: https://openapi.tools/ name: django-contract-tester category: Data Validators repository: https://github.com/maticardenas/django-contract-tester language: Python source_description: >- Validate Django REST Framework (DRF) and Django Ninja APIs against their OpenAPI specification. v2: true v3: true v3_1: true id: e7a16a54a9f5280da020e35d32fc151c repositoryMetadata: base64Readme: >- WyFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvZGphbmdvLWNvbnRyYWN0LXRlc3Rlci5zdmcpXShodHRwczovL3B5cGkub3JnL3Byb2plY3QvZGphbmdvLWNvbnRyYWN0LXRlc3Rlci8pClshW0NvdmVyYWdlXShodHRwczovL2NvZGVjb3YuaW8vZ2gvbWF0aWNhcmRlbmFzL2RqYW5nby1jb250cmFjdC10ZXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9hcHAuY29kZWNvdi5pby9naC9tYXRpY2FyZGVuYXMvZGphbmdvLWNvbnRyYWN0LXRlc3RlcikKWyFbUHl0aG9uIHZlcnNpb25zXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1B5dGhvbi0zLjglMkItYmx1ZSldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kamFuZ28tY29udHJhY3QtdGVzdGVyLykKWyFbRGphbmdvIHZlcnNpb25zXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0RqYW5nby0zLjIlMkItYmx1ZSldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kamFuZ28tY29udHJhY3QtdGVzdGVyLykKCgojIERqYW5nbyBDb250cmFjdCBUZXN0ZXIKClRoaXMgaXMgYSB0ZXN0IHV0aWxpdHkgdG8gdmFsaWRhdGUgYERSRiAoRGphbmdvIFJFU1QgRnJhbWV3b3JrKWAgYW5kIGBEamFuZ28gTmluamFgIHRlc3QgcmVxdWVzdHMgJiByZXNwb25zZXMgYWdhaW5zdCBgT3BlbkFQSWAgdmVyc2lvbnMgMi54IGFuZCAzLnggc2NoZW1hcy4KCkl0IGhhcyBidWlsdC1pbiBzdXBwb3J0IGZvciBgT3BlbkFQSWB2ZXJzaW9uIGAyLjBgLCBgMy4wLnhgIGFuZCBgMy4xLnhgLCBib3RoIGB5YW1sYCBvciBganNvbmAgc2NoZW1hIGZpbGVzLgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBzaGVsbCBzY3JpcHQKcGlwIGluc3RhbGwgZGphbmdvLWNvbnRyYWN0LXRlc3RlcgpgYGAKCiMjIFVzYWdlCgpJbnN0YW50aWF0ZSBvbmUgb3IgbW9yZSBpbnN0YW5jZXMgb2YgYFNjaGVtYVRlc3RlcmA6CgpgYGBweXRob24KZnJvbSBvcGVuYXBpX3Rlc3RlciBpbXBvcnQgU2NoZW1hVGVzdGVyCgpzY2hlbWFfdGVzdGVyID0gU2NoZW1hVGVzdGVyKCkKYGBgCgpJZiB5b3UgYXJlIHVzaW5nIGVpdGhlciBbZHJmLXlhc2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9heG5zYW4xMi9kcmYteWFzZykKb3IgW2RyZi1zcGVjdGFjdWxhcl0oaHR0cHM6Ly9naXRodWIuY29tL3RmcmFuemVsL2RyZi1zcGVjdGFjdWxhcikgdGhpcyB3aWxsIGJlIGF1dG8tZGV0ZWN0ZWQsIGFuZCB0aGUgc2NoZW1hIHdpbGwgYmUKbG9hZGVkIGJ5IHRoZSBgU2NoZW1hVGVzdGVyYCBhdXRvbWF0aWNhbGx5LgoKSWYgeW91IGFyZSB1c2luZyBzY2hlbWEgZmlsZXMsIHlvdSB3aWxsIG5lZWQgdG8gcGFzcyB0aGUgZmlsZSBwYXRoOgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKIyBwYXRoIHNob3VsZCBiZSBhIHN0cmluZwpzY2hlbWFfdGVzdGVyID0gU2NoZW1hVGVzdGVyKHNjaGVtYV9maWxlX3BhdGg9Ii4vc2NoZW1hcy9wdWJsaXNoZWRTcGVjcy55YW1sIikKYGBgCgpPbmNlIHlvdSd2ZSBpbnN0YW50aWF0ZWQgYSB0ZXN0ZXIsIHlvdSBjYW4gdXNlIGl0IHRvIHRlc3QgcmVzcG9uc2VzIGFuZCByZXF1ZXN0IGJvZGllczoKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfdGVzdGVyLnNjaGVtYV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcigpCgoKZGVmIHRlc3RfcmVzcG9uc2VfZG9jdW1lbnRhdGlvbihjbGllbnQpOgogICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KCdhcGkvdjEvdGVzdC8xJykKICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDAKICAgIHNjaGVtYV90ZXN0ZXIudmFsaWRhdGVfcmVzcG9uc2UocmVzcG9uc2U9cmVzcG9uc2UpCgoKZGVmIHRlc3RfcmVxdWVzdF9kb2N1bWVudGF0aW9uKGNsaWVudCk6CiAgICByZXNwb25zZSA9IGNsaWVudC5nZXQoJ2FwaS92MS90ZXN0LzEnKQogICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2RlID09IDIwMAogICAgc2NoZW1hX3Rlc3Rlci52YWxpZGF0ZV9yZXF1ZXN0KHJlc3BvbnNlPXJlc3BvbnNlKQpgYGAKCklmIHlvdSBhcmUgdXNpbmcgdGhlIERqYW5nbyB0ZXN0aW5nIGZyYW1ld29yaywgeW91IGNhbiBjcmVhdGUgYSBiYXNlIGBBUElUZXN0Q2FzZWAgdGhhdCBpbmNvcnBvcmF0ZXMgc2NoZW1hIHZhbGlkYXRpb246CgpgYGBweXRob24KZnJvbSByZXN0X2ZyYW1ld29yay5yZXNwb25zZSBpbXBvcnQgUmVzcG9uc2UKZnJvbSByZXN0X2ZyYW1ld29yay50ZXN0IGltcG9ydCBBUElUZXN0Q2FzZQoKZnJvbSBvcGVuYXBpX3Rlc3Rlci5zY2hlbWFfdGVzdGVyIGltcG9ydCBTY2hlbWFUZXN0ZXIKCnNjaGVtYV90ZXN0ZXIgPSBTY2hlbWFUZXN0ZXIoKQoKCmNsYXNzIEJhc2VBUElUZXN0Q2FzZShBUElUZXN0Q2FzZSk6CiAgICAiIiIgQmFzZSB0ZXN0IGNsYXNzIGZvciBhcGkgdmlld3MgaW5jbHVkaW5nIHNjaGVtYSB2YWxpZGF0aW9uICIiIgoKICAgIEBzdGF0aWNtZXRob2QKICAgIGRlZiBhc3NlcnRSZXNwb25zZShyZXNwb25zZTogUmVzcG9uc2UsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgICIiIiBoZWxwZXIgdG8gcnVuIHZhbGlkYXRlX3Jlc3BvbnNlIGFuZCBwYXNzIGt3YXJncyB0byBpdCAiIiIKICAgICAgICBzY2hlbWFfdGVzdGVyLnZhbGlkYXRlX3Jlc3BvbnNlKHJlc3BvbnNlPXJlc3BvbnNlLCAqKmt3YXJncykKYGBgCgpUaGVuIHVzZSBpdCBpbiBhIHRlc3QgZmlsZToKCmBgYHB5dGhvbgpmcm9tIHNoYXJlZC50ZXN0aW5nIGltcG9ydCBCYXNlQVBJVGVzdENhc2UKCgpjbGFzcyBNeUFQSVRlc3RzKEJhc2VBUElUZXN0Q2FzZSk6CiAgICBkZWYgdGVzdF9zb21lX3ZpZXcoc2VsZik6CiAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNsaWVudC5nZXQoIi4uLiIpCiAgICAgICAgc2VsZi5hc3NlcnRSZXNwb25zZShyZXNwb25zZSkKYGBgCgojIyBPcHRpb25zCgpZb3UgY2FuIHBhc3Mgb3B0aW9ucyBlaXRoZXIgZ2xvYmFsbHksIHdoZW4gaW5zdGFudGlhdGluZyBhIGBTY2hlbWFUZXN0ZXJgLCBvciBsb2NhbGx5LCB3aGVuCmludm9raW5nIGB2YWxpZGF0ZV9yZXNwb25zZWA6CgpgYGBweXRob24KZnJvbSBvcGVuYXBpX3Rlc3RlciBpbXBvcnQgU2NoZW1hVGVzdGVyLCBpc19jYW1lbF9jYXNlCmZyb20gdGVzdHMudXRpbHMgaW1wb3J0IG15X3V1aWRfNF92YWxpZGF0b3IKCnNjaGVtYV90ZXN0X3dpdGhfY2FzZV92YWxpZGF0aW9uID0gU2NoZW1hVGVzdGVyKAogICAgY2FzZV90ZXN0ZXI9aXNfY2FtZWxfY2FzZSwKICAgIGlnbm9yZV9jYXNlPVsiSVAiXSwKICAgIHZhbGlkYXRvcnM9W215X3V1aWRfNF92YWxpZGF0b3JdCikKCmBgYAoKT3IKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfdGVzdGVyIGltcG9ydCBTY2hlbWFUZXN0ZXIsIGlzX2NhbWVsX2Nhc2UKZnJvbSB0ZXN0cy51dGlscyBpbXBvcnQgbXlfdXVpZF80X3ZhbGlkYXRvcgoKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcigpCgoKZGVmIG15X3Rlc3QoY2xpZW50KToKICAgIHJlc3BvbnNlID0gY2xpZW50LmdldCgnYXBpL3YxL3Rlc3QvMScpCiAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwCiAgICBzY2hlbWFfdGVzdGVyLnZhbGlkYXRlX3Jlc3BvbnNlKAogICAgICAgIHJlc3BvbnNlPXJlc3BvbnNlLAogICAgICAgIGNhc2VfdGVzdGVyPWlzX2NhbWVsX2Nhc2UsCiAgICAgICAgaWdub3JlX2Nhc2U9WyJJUCJdLAogICAgICAgIHZhbGlkYXRvcnM9W215X3V1aWRfNF92YWxpZGF0b3JdCiAgICApCmBgYAoKIyMjIGNhc2VfdGVzdGVyCgpUaGUgY2FzZSB0ZXN0ZXIgYXJndW1lbnQgdGFrZXMgYSBjYWxsYWJsZSB0aGF0IGlzIHVzZWQgdG8gdmFsaWRhdGUgdGhlIGtleSBjYXNlIG9mIGJvdGggc2NoZW1hcyBhbmQgcmVzcG9uc2VzLiBJZgpub3RoaW5nIGlzIHBhc3NlZCwgY2FzZSB2YWxpZGF0aW9uIGlzIHNraXBwZWQuCgpUaGUgbGlicmFyeSBjdXJyZW50bHkgaGFzIDQgYnVpbHQtaW4gY2FzZSB0ZXN0ZXJzOgoKLSBgaXNfcGFzY2FsX2Nhc2VgCi0gYGlzX3NuYWtlX2Nhc2VgCi0gYGlzX2NhbWVsX2Nhc2VgCi0gYGlzX2tlYmFiX2Nhc2VgCgpZb3UgY2FuIHVzZSBvbmUgb2YgdGhlc2UsIG9yIHlvdXIgb3duLgoKIyMjIGlnbm9yZV9jYXNlCgpMaXN0IG9mIGtleXMgdG8gaWdub3JlIHdoZW4gdGVzdGluZyBrZXkgY2FzZS4gVGhpcyBzZXR0aW5nIG9ubHkgYXBwbGllcyB3aGVuIGNhc2VfdGVzdGVyIGlzIG5vdCBgTm9uZWAuCgojIyMgdmFsaWRhdG9ycwoKTGlzdCBvZiBjdXN0b20gdmFsaWRhdG9ycy4gQSB2YWxpZGF0b3IgaXMgYSBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHR3byBwYXJhbWV0ZXJzOiBzY2hlbWFfc2VjdGlvbiBhbmQgZGF0YSwgYW5kIHJldHVybnMKZWl0aGVyIGFuIGVycm9yIG1lc3NhZ2Ugb3IgYE5vbmVgLCBlLmcuOgoKYGBgcHl0aG9uCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIE9wdGlvbmFsCmZyb20gdXVpZCBpbXBvcnQgVVVJRAoKCmRlZiBteV91dWlkXzRfdmFsaWRhdG9yKHNjaGVtYV9zZWN0aW9uOiBkaWN0LCBkYXRhOiBBbnkpIC0+IE9wdGlvbmFsW3N0cl06CiAgICBzY2hlbWFfZm9ybWF0ID0gc2NoZW1hX3NlY3Rpb24uZ2V0KCJmb3JtYXQiKQogICAgaWYgc2NoZW1hX2Zvcm1hdCA9PSAidXVpZDQiOgogICAgICAgIHRyeToKICAgICAgICAgICAgcmVzdWx0ID0gVVVJRChkYXRhLCB2ZXJzaW9uPTQpCiAgICAgICAgICAgIGlmIG5vdCBzdHIocmVzdWx0KSA9PSBzdHIoZGF0YSk6CiAgICAgICAgICAgICAgICByZXR1cm4gZiJFeHBlY3RlZCB1dWlkNCwgYnV0IHJlY2VpdmVkIHtkYXRhfSIKICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKICAgICAgICAgICAgcmV0dXJuIGYiRXhwZWN0ZWQgdXVpZDQsIGJ1dCByZWNlaXZlZCB7ZGF0YX0iCiAgICByZXR1cm4gTm9uZQpgYGAKCiMjIyBmaWVsZF9rZXlfbWFwCgpZb3UgY2FuIHBhc3MgYW4gb3B0aW9uYWwgZGljdGlvbmFyeSB0aGF0IG1hcHMgY3VzdG9tIHVybCBwYXJhbWV0ZXIgbmFtZXMgaW50byB2YWx1ZXMsIGZvciBzaXR1YXRpb25zIHdoZXJlIHRoaXMgY2Fubm90IGJlCmluZmVycmVkIGJ5IHRoZSBEUkYgYEVuZHBvaW50RW51bWVyYXRvcmAuIEEgY29uY3JldGUgdXNlIGNhc2UgZm9yIHRoaXMgb3B0aW9uIGlzIHdoZW4KdGhlIFtkamFuZ28gaTE4biBsb2NhbGUgcHJlZml4ZXNdKGh0dHBzOi8vZG9jcy5kamFuZ29wcm9qZWN0LmNvbS9lbi8zLjEvdG9waWNzL2kxOG4vdHJhbnNsYXRpb24vI2xhbmd1YWdlLXByZWZpeC1pbi11cmwtcGF0dGVybnMpLgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcihmaWVsZF9rZXlfbWFwPXsKICAibGFuZ3VhZ2UiOiAiZW4iLAp9KQpgYGAKCiMjIFNjaGVtYSBWYWxpZGF0aW9uCgpXaGVuIHRoZSBTY2hlbWFUZXN0ZXIgbG9hZHMgYSBzY2hlbWEsIGl0IHBhcnNlcyBpdCB1c2luZyBhbgpbT3BlbkFQSSBzcGVjIHZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3AxYzJ1L29wZW5hcGktc3BlYy12YWxpZGF0b3IpLiBUaGlzIHZhbGlkYXRlcyB0aGUgc2NoZW1hLgpJbiBjYXNlIG9mIGlzc3VlcyB3aXRoIHRoZSBzY2hlbWEgaXRzZWxmLCB0aGUgdmFsaWRhdG9yIHdpbGwgcmFpc2UgdGhlIGFwcHJvcHJpYXRlIGVycm9yLgoKIyMgRGphbmdvIHRlc3RpbmcgY2xpZW50CgpUaGUgbGlicmFyeSBpbmNsdWRlcyBhbiBgT3BlbkFQSUNsaWVudGAsIHdoaWNoIGV4dGVuZHMgRGphbmdvIFJFU1QgZnJhbWV3b3JrJ3MKW2BBUElDbGllbnRgIGNsYXNzXShodHRwczovL3d3dy5kamFuZ28tcmVzdC1mcmFtZXdvcmsub3JnL2FwaS1ndWlkZS90ZXN0aW5nLyNhcGljbGllbnQpLgpJZiB5b3Ugd2lzaCB0byB2YWxpZGF0ZSBlYWNoIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGFnYWluc3QgT3BlbkFQSSBzY2hlbWEgd2hlbiB3cml0aW5nCnVuaXQgdGVzdHMgLSBgT3BlbkFQSUNsaWVudGAgaXMgd2hhdCB5b3UgbmVlZCEKClRvIHVzZSBgT3BlbkFQSUNsaWVudGAgc2ltcGx5IHBhc3MgYFNjaGVtYVRlc3RlcmAgaW5zdGFuY2UgdGhhdCBzaG91bGQgYmUgdXNlZAp0byB2YWxpZGF0ZSByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzIGFuZCB0aGVuIHVzZSBpdCBsaWtlIHJlZ3VsYXIgRGphbmdvIHRlc3RpbmcgY2xpZW50OgoKYGBgcHl0aG9uCnNjaGVtYV90ZXN0ZXIgPSBTY2hlbWFUZXN0ZXIoKQpjbGllbnQgPSBPcGVuQVBJQ2xpZW50KHNjaGVtYV90ZXN0ZXI9c2NoZW1hX3Rlc3RlcikKcmVzcG9uc2UgPSBjbGllbnQuZ2V0KCcvYXBpL3YxL3Rlc3RzLzEyMy8nKQpgYGAKClRvIGZvcmNlIGFsbCBkZXZlbG9wZXJzIHdvcmtpbmcgb24gdGhlIHByb2plY3QgdG8gdXNlIGBPcGVuQVBJQ2xpZW50YCBzaW1wbHkKb3ZlcnJpZGUgdGhlIGBjbGllbnRgIGZpeHR1cmUgKHdoZW4gdXNpbmcgYHB5dGVzdGAgd2l0aCBgcHl0ZXN0LWRqYW5nb2ApOgoKYGBgcHl0aG9uCmZyb20gcHl0ZXN0X2RqYW5nby5sYXp5X2RqYW5nbyBpbXBvcnQgc2tpcF9pZl9ub19kamFuZ28KCmZyb20gb3BlbmFwaV90ZXN0ZXIuc2NoZW1hX3Rlc3RlciBpbXBvcnQgU2NoZW1hVGVzdGVyCgoKQHB5dGVzdC5maXh0dXJlCmRlZiBzY2hlbWFfdGVzdGVyKCk6CiAgICByZXR1cm4gU2NoZW1hVGVzdGVyKCkKCgpAcHl0ZXN0LmZpeHR1cmUKZGVmIGNsaWVudChzY2hlbWFfdGVzdGVyKToKICAgIHNraXBfaWZfbm9fZGphbmdvKCkKCiAgICBmcm9tIG9wZW5hcGlfdGVzdGVyLmNsaWVudHMgaW1wb3J0IE9wZW5BUElDbGllbnQKCiAgICByZXR1cm4gT3BlbkFQSUNsaWVudChzY2hlbWFfdGVzdGVyPXNjaGVtYV90ZXN0ZXIpCmBgYAoKSWYgeW91IGFyZSB1c2luZyBwbGFpbiBEamFuZ28gdGVzdCBmcmFtZXdvcmssIHdlIHN1Z2dlc3QgdG8gY3JlYXRlIGN1c3RvbQp0ZXN0IGNhc2UgaW1wbGVtZW50YXRpb24gYW5kIHVzZSBpdCBpbnN0ZWFkIG9mIG9yaWdpbmFsIERqYW5nbyBvbmU6CgpgYGBweXRob24KaW1wb3J0IGZ1bmN0b29scwoKZnJvbSBkamFuZ28udGVzdC50ZXN0Y2FzZXMgaW1wb3J0IFNpbXBsZVRlc3RDYXNlCmZyb20gb3BlbmFwaV90ZXN0ZXIuY2xpZW50cyBpbXBvcnQgT3BlbkFQSUNsaWVudApmcm9tIG9wZW5hcGlfdGVzdGVyLnNjaGVtYV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcigpCgoKY2xhc3MgTXlTaW1wbGVUZXN0Q2FzZShTaW1wbGVUZXN0Q2FzZSk6CiAgICBjbGllbnRfY2xhc3MgPSBPcGVuQVBJQ2xpZW50CiAgICAjIG9yIHVzZSBgZnVuY3Rvb2xzLnBhcnRpYWxgIHdoZW4geW91IHdhbnQgdG8gcHJvdmlkZSBjdXN0b20KICAgICMgYGBTY2hlbWFUZXN0ZXJgYCBpbnN0YW5jZToKICAgICMgY2xpZW50X2NsYXNzID0gZnVuY3Rvb2xzLnBhcnRpYWwoT3BlbkFQSUNsaWVudCwgc2NoZW1hX3Rlc3Rlcj1zY2hlbWFfdGVzdGVyKQpgYGAKClRoaXMgd2lsbCBlbnN1cmUgeW91IGFsbCBuZXdseSBpbXBsZW1lbnRlZCB2aWV3cyB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0CnRoZSBPcGVuQVBJIHNjaGVtYS4KCgojIyMgRGphbmdvIE5pbmphIFRlc3QgQ2xpZW50CgpJbiBjYXNlIHlvdSBhcmUgdXNpbmcgYERqYW5nbyBOaW5qYWAgYW5kIGl0cyBjb3JyZXNwb25kaW5nIFt0ZXN0IGNsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL3ZpdGFsaWsvZGphbmdvLW5pbmphL2Jsb2IvbWFzdGVyL25pbmphL3Rlc3RpbmcvY2xpZW50LnB5I0wxNTkpLCB5b3UgY2FuIHVzZSB0aGUgYE9wZW5BUElOaW5qYUNsaWVudGAsIHdoaWNoIGV4dGVuZHMgZnJvbSBpdCwgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZSBgT3BlbkFQSUNsaWVudGA6CgpgYGBweXRob24Kc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcigpCmNsaWVudCA9IE9wZW5BUElOaW5qYUNsaWVudCgKICAgICAgICByb3V0ZXJfb3JfYXBwPXJvdXRlciwKICAgICAgICBzY2hlbWFfdGVzdGVyPXNjaGVtYV90ZXN0ZXIsCiAgICApCnJlc3BvbnNlID0gY2xpZW50LmdldCgnL2FwaS92MS90ZXN0cy8xMjMvJykKYGBgCgpHaXZlbiB0aGF0IHRoZSBEamFuZ28gTmluamEgdGVzdCBjbGllbnQgd29ya3Mgc2VwYXJhdGVseSBmcm9tIHRoZSBkamFuZ28gdXJsIHJlc29sdmVyLCB5b3UgY2FuIHBhc3MgdGhlIGBwYXRoX3ByZWZpeGAgYXJndW1lbnQgdG8gdGhlIGBPcGVuQVBJTmluamFDbGllbnRgIHRvIHNwZWNpZnkgdGhlIHByZWZpeCBvZiB0aGUgcGF0aCB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGxvb2sgaW50byB0aGUgT3BlbkFQSSBzY2hlbWEuCgpgYGBweXRob24KY2xpZW50ID0gT3BlbkFQSU5pbmphQ2xpZW50KAogICAgICAgIHJvdXRlcl9vcl9hcHA9cm91dGVyLAogICAgICAgIHBhdGhfcHJlZml4PScvYXBpL3YxJywKICAgICAgICBzY2hlbWFfdGVzdGVyPXNjaGVtYV90ZXN0ZXIsCiAgICApCmBgYAoKIyMgS25vd24gSXNzdWVzCgoqIFdlIGFyZSB1c2luZyBbcHJhbmNlXShodHRwczovL2dpdGh1Yi5jb20vamZpbmtoYWV1c2VyL3ByYW5jZSkgYXMgYSBzY2hlbWEgcmVzb2x2ZXIsIGFuZCBpdCBoYXMgc29tZSBpc3N1ZXMgd2l0aCB0aGUKICByZXNvbHV0aW9uIG9mICh2ZXJ5KSBjb21wbGV4IE9wZW5BUEkgMi4wIHNjaGVtYXMuCgojIyBDb250cmlidXRpbmcKCkNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUuIFBsZWFzZSBzZWUgdGhlIFtjb250cmlidXRpbmcgZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRpY2FyZGVuYXMvZGphbmdvLWNvbnRyYWN0LXRlc3Rlci9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCg== readmeEtag: '"17a575591ae4e51893e1d53bd2e3ce16c3c05103"' readmeLastModified: Mon, 02 Sep 2024 08:22:59 GMT repositoryId: 561525667 description: >- Test utility for validating Django APIs against their OpenAPI specification created: '2022-11-03T22:07:32Z' updated: '2024-09-02T08:23:03Z' language: Python archived: false stars: 8 watchers: 1 forks: 1 owner: maticardenas logo: https://avatars.githubusercontent.com/u/12075970?v=4 license: BSD-3-Clause repoEtag: '"e6ff4b7e0d44afb50f1e3060cb3e533bfcee059e8052467aca95fc6cbee12fae"' repoLastModified: Mon, 02 Sep 2024 08:23:03 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags name: express-openapi-validator category: - Description Validators - Data Validators repository: https://github.com/cdimascio/express-openapi-validator language: JavaScript source_description: 🦋 Auto-validate API requests and responses in ExpressJS. v2: false v3: true repositoryMetadata: base64Readme: >- IyDwn6aLIGV4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IKClshW2V4YW1wbGUgd29ya2Zsb3ddKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvci9hY3Rpb25zL3dvcmtmbG93cy9kZWZhdWx0LnltbC9iYWRnZS5zdmcpXSgjKSBbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvci5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yKSBbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3I/Y29sb3I9Ymx1ZSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IpIFshW0FsbCBDb250cmlidXRvcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYWxsX2NvbnRyaWJ1dG9ycy01NC1kYXJrY3lhbi5zdmc/c3R5bGU9ZmxhdCldKCNjb250cmlidXRvcnMpIFshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL2NkaW1hc2Npby9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2NkaW1hc2Npby9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yP2JyYW5jaD1tYXN0ZXIpIFshW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlLzE1NzBhMDZmNjA5MzQ1ZGRiMjM3MTE0YmJkNmNlZWQ3KV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9tYW51YWwvY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3I/dXRtX3NvdXJjZT1naXRodWIuY29tJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NvbnRlbnQ9Y2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3ImdXRtX2NhbXBhaWduPUJhZGdlX0dyYWRlKSBbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0dGVyL3Jvb20vY2RpbWFzY2lvLW9zcy9jb21tdW5pdHk/Y29sb3I9JTIzZWIyMDVhKV0oaHR0cHM6Ly9naXR0ZXIuaW0vY2RpbWFzY2lvLW9zcy9jb21tdW5pdHkpIFshW0dpdHBvZCBSZWFkeS10by1Db2RlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0dpdHBvZC1SZWFkeS0tdG8tLUNvZGUtYmx1ZT9sb2dvPWdpdHBvZCldKGh0dHBzOi8vZ2l0cG9kLmlvLyNodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IpIFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb2N1bWVudGF0aW9uLXllcy1pbmZvcm1hdGlvbmFsKV0oaHR0cHM6Ly9jZGltYXNjaW8uZ2l0aHViLmlvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3ItZG9jdW1lbnRhdGlvbi8pIFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZyldKCNsaWNlbnNlKQoKKipBbiBPcGVuQXBpIHZhbGlkYXRvciBmb3IgRXhwcmVzc0pTKiogdGhhdCBhdXRvbWF0aWNhbGx5IHZhbGlkYXRlcyAqKkFQSSoqIF8qKnJlcXVlc3RzKipfIGFuZCBfKipyZXNwb25zZXMqKl8gdXNpbmcgYW4gKipPcGVuQVBJIDMqKiBzcGVjaWZpY2F0aW9uLgoKPHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IvbWFzdGVyL2Fzc2V0cy9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yLWxvZ28tdjIucG5nIiB3aWR0aD0iNjAwIj4KPC9wPgoKW/CfpotleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IpIGlzIGFuIHVub3BpbmlvbmF0ZWQgbGlicmFyeSB0aGF0IGludGVncmF0ZXMgd2l0aCBuZXcgYW5kIGV4aXN0aW5nIEFQSSBhcHBsaWNhdGlvbnMuIGV4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IgbGV0cyB5b3Ugd3JpdGUgY29kZSB0aGUgd2F5IHlvdSB3YW50OyBpdCBkb2VzIG5vdCBpbXBvc2UgYW55IGNvZGluZyBjb252ZW50aW9uIG9yIHByb2plY3QgbGF5b3V0LiBTaW1wbHksIGluc3RhbGwgdGhlIHZhbGlkYXRvciBvbnRvIHlvdXIgZXhwcmVzcyBhcHAsIHBvaW50IGl0IHRvIHlvdXIgT3BlbkFQSSAzIHNwZWNpZmljYXRpb24sIHRoZW4gZGVmaW5lIGFuZCBpbXBsZW1lbnQgcm91dGVzIHRoZSB3YXkgeW91IHByZWZlci4gU2VlIGFuIFtleGFtcGxlXShodHRwczovL2NkaW1hc2Npby5naXRodWIuaW8vZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvci1kb2N1bWVudGF0aW9uL2d1aWRlLXN0YW5kYXJkLykuCgoqKkZlYXR1cmVzOioqCgotIOKclO+4jyByZXF1ZXN0IHZhbGlkYXRpb24KLSDinJTvuI8gcmVzcG9uc2UgdmFsaWRhdGlvbiAoanNvbiBvbmx5KQotIPCfka4gc2VjdXJpdHkgdmFsaWRhdGlvbiAvIGN1c3RvbSBzZWN1cml0eSBmdW5jdGlvbnMKLSDwn5G9IDNyZCBwYXJ0eSAvIGN1c3RvbSBmb3JtYXRzIC8gY3VzdG9tIGRhdGEgc2VyaWFsaXphdGlvbi1kZXNlcmlhbGl6YXRpb24KLSDwn6e1IG9wdGlvbmFsbHkgYXV0by1tYXAgT3BlbkFQSSBlbmRwb2ludHMgdG8gRXhwcmVzcyBoYW5kbGVyIGZ1bmN0aW9ucwotIOKcgu+4jyAqKlwkcmVmKiogc3VwcG9ydDsgc3BsaXQgc3BlY3Mgb3ZlciBtdWx0aXBsZSBmaWxlcwotIPCfjoggZmlsZSB1cGxvYWQKCioqRG9jczoqKgotIPCfk5YgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vY2RpbWFzY2lvLmdpdGh1Yi5pby9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yLWRvY3VtZW50YXRpb24vKQoKWyFbR2l0SHViIHN0YXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zdGFycy9jZGltYXNjaW8vZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvci5zdmc/c3R5bGU9c29jaWFsJmxhYmVsPVN0YXImbWF4QWdlPTI1OTIwMDApXShodHRwczovL0dpdEh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3Ivc3RhcmdhemVycy8pIFshW1R3aXR0ZXIgVVJMXShodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvdXJsL2h0dHBzL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3Iuc3ZnP3N0eWxlPXNvY2lhbCldKGh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9Q2hlY2slMjBvdXQlMjBleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yJTIwYnklMjAlNDBDYXJtaW5lRGlNYXNjaW8lMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZjZGltYXNjaW8lMkZleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yJTIwJUYwJTlGJTkxJThEKQoKW05lc3RKU10oaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yL3RyZWUvbWFzdGVyL2V4YW1wbGVzLzktbmVzdGpzKQpbS29hXShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IvdHJlZS9sZXJuYS1mYXN0aWZ5L3BhY2thZ2VzL2tvYS1vcGVuYXBpLXZhbGlkYXRvcikgYW5kIFtGYXN0aWZ5XShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IvdHJlZS9sZXJuYS1mYXN0aWZ5L3BhY2thZ2VzL2Zhc3RpZnktb3BlbmFwaS12YWxpZGF0b3IpIG5vdyBhdmFpbGFibGUhIPCfmoAKCltPQVMgMy4xIChleHBlcmltZW50YWwpXShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IvcHVsbC84ODIpCgojIyBJbnN0YWxsCgpgYGBzaGVsbApucG0gaW5zdGFsbCBleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yCgojIGV4cGVyaW1lbnRhbCBPQVMgMy4xIGluIGFscGhhIChjb250cmlidXRpb25zIHdlbGNvbWUgLSBzZWUgYnJhbmNoIGBvYXMtMy4xYCBhbmQgcHItODgyKQpucG0gaW5zdGFsbCBleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yQDYuMC4wLWFscGhhLjIKYGBgCgojIyBVc2FnZQoKMS4gUmVxdWlyZS9pbXBvcnQgdGhlIG9wZW5hcGkgdmFsaWRhdG9yCgpgYGBqYXZhc2NyaXB0CmNvbnN0IE9wZW5BcGlWYWxpZGF0b3IgPSByZXF1aXJlKCdleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yJyk7CmBgYAoKb3IKCmBgYGphdmFzY3JpcHQKaW1wb3J0ICogYXMgT3BlbkFwaVZhbGlkYXRvciBmcm9tICdleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yJzsKYGBgCgoyLiBJbnN0YWxsIHRoZSBtaWRkbGV3YXJlCgpgYGBqYXZhc2NyaXB0CmFwcC51c2UoCiAgT3BlbkFwaVZhbGlkYXRvci5taWRkbGV3YXJlKHsKICAgIGFwaVNwZWM6ICcuL29wZW5hcGkueWFtbCcsCiAgICB2YWxpZGF0ZVJlcXVlc3RzOiB0cnVlLCAvLyAoZGVmYXVsdCkKICAgIHZhbGlkYXRlUmVzcG9uc2VzOiB0cnVlLCAvLyBmYWxzZSBieSBkZWZhdWx0CiAgfSksCik7CmBgYAoKMy4gUmVnaXN0ZXIgYW4gZXJyb3IgaGFuZGxlcgoKYGBgamF2YXNjcmlwdAphcHAudXNlKChlcnIsIHJlcSwgcmVzLCBuZXh0KSA9PiB7CiAgLy8gZm9ybWF0IGVycm9yCiAgcmVzLnN0YXR1cyhlcnIuc3RhdHVzIHx8IDUwMCkuanNvbih7CiAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSwKICAgIGVycm9yczogZXJyLmVycm9ycywKICB9KTsKfSk7CmBgYAoKXyoqSW1wb3J0YW50OioqIEVuc3VyZSBleHByZXNzIGlzIGNvbmZpZ3VyZWQgd2l0aCBhbGwgcmVsZXZhbnQgYm9keSBwYXJzZXJzLiBCb2R5IHBhcnNlciBtaWRkbGV3YXJlIGZ1bmN0aW9ucyBtdXN0IGJlIHNwZWNpZmllZCBwcmlvciB0byBhbnkgdmFsaWRhdGVkIHJvdXRlcy4gU2VlIGFuIFtleGFtcGxlXSgjZXhhbXBsZS1leHByZXNzLWFwaS1zZXJ2ZXIpXy4KCiMjIFtEb2N1bWVudGF0aW9uXShodHRwczovL2NkaW1hc2Npby5naXRodWIuaW8vZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvci1kb2N1bWVudGF0aW9uLykKClNlZSB0aGUgW2RvY10oaHR0cHM6Ly9jZGltYXNjaW8uZ2l0aHViLmlvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3ItZG9jdW1lbnRhdGlvbi8pIGZvciBjb21wbGV0ZSBkb2N1bWVuYXRpb24KCl9kZXByZWNhdGVkXyBbbGVnYWN5IGRvY10oaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yL3dpa2kpIAoKIyMgTGljZW5zZQoKW01JVF0oTElDRU5TRSkKCjxhIGhyZWY9Imh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vbTk3dEE1YyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2JtYy1jZG4ubnljMy5kaWdpdGFsb2NlYW5zcGFjZXMuY29tL0JNQy1idXR0b24taW1hZ2VzL2N1c3RvbV9pbWFnZXMvb3JhbmdlX2ltZy5wbmciIGFsdD0iQnV5IE1lIEEgQ29mZmVlIiBzdHlsZT0iaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7d2lkdGg6IGF1dG8gIWltcG9ydGFudDsiID48L2E+Cg== readmeEtag: '"3abca22a2f6467a12d0d69791ed826b56fa2583b"' readmeLastModified: Sat, 31 Aug 2024 23:53:17 GMT repositoryId: 176581314 description: >- 🦋 Auto-validates api requests, responses, and securities using ExpressJS and an OpenAPI 3.x specification created: '2019-03-19T19:08:05Z' updated: '2024-09-06T01:36:37Z' language: TypeScript archived: false stars: 905 watchers: 19 forks: 205 owner: cdimascio logo: https://avatars.githubusercontent.com/u/4706618?v=4 license: MIT repoEtag: '"32b84acc7f04d67edf1e8c2b6e5e2f1a5afc7c8d5ab08ea5f14684cef996eb18"' repoLastModified: Fri, 06 Sep 2024 01:36:37 GMT foundInMaster: true id: 3a27bc1a71642e0c1c020c41dc66e206 - source: https://openapi.tools/ name: openapi-dev-tool category: - Testing - Documentation - Parsers repository: https://github.com/lyra/openapi-dev-tool language: JavaScript source_description: >- OpenAPI Dev Tool proposes to developers a unique tool to address development and industrialization needs! v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIERldiBUb29sCgpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtQXBhY2hlJTIwMi4wLWJsdWUuc3ZnKV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wKQoKPCEtLSBBVVRPLUdFTkVSQVRFRC1DT05URU5UOlNUQVJUIChiYWRnZVBsdWdpbjpzcmM9Li9zY3JpcHRzL2JhZGdlLXRlbXBsYXRlKSAtLT4KClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvbHlyYS9vcGVuYXBpLWRldi10b29sL2RldmVsb3ApXShodHRwczovL2FwcC50cmF2aXMtY2kuY29tL2dpdGh1Yi9seXJhL29wZW5hcGktZGV2LXRvb2wpCgo8IS0tIEFVVE8tR0VORVJBVEVELUNPTlRFTlQ6RU5EIC0tPgoKWyFbbnBtIHBhY2thZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGx5cmEtbmV0d29yay9vcGVuYXBpLWRldi10b29sL2xhdGVzdC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbHlyYS1uZXR3b3JrL29wZW5hcGktZGV2LXRvb2wpClshW25wbSBkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2R0L0BseXJhLW5ldHdvcmsvb3BlbmFwaS1kZXYtdG9vbC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbHlyYS1uZXR3b3JrL29wZW5hcGktZGV2LXRvb2wpCgojIyBTcG9uc29yCgpgb3BlbmFwaS1kZXYtdG9vbGAgaXMgYSB0b29sIGRldmVsb3BlZCBieSBbTHlyYSBOZXR3b3JrXShodHRwczovL3d3dy5seXJhLmNvbS8pCgo8aW1nIHNyYz0iZG9jLWFzc2V0cy9sb2dvX2x5cmFfYmx1ZS5zdmciIGFsdD0iTHlyYSIgd2lkdGg9IjQ4Ii8+CgojIyBXaGF0IGlzIE9wZW5BUEk/CgpbT3BlbkFQSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8pIHNwZWNpZmljYXRpb24gaXMgYW4gQVBJIGRlc2NyaXB0aW9uIGZvcm1hdCBmb3IgUkVTVCBBUElzIHdoZXJlIHlvdSBjYW4gZGVzY3JpYmUgeW91ciBlbnRpcmUgQVBJLCBpbmNsdWRpbmc6CgotIEF2YWlsYWJsZSBlbmRwb2ludHMgKC91c2VycykgYW5kIG9wZXJhdGlvbnMgb24gZWFjaCBlbmRwb2ludCAoR0VUIC91c2VycywgUE9TVCAvdXNlcnMpCi0gT3BlcmF0aW9ucyBpbnB1dCBhbmQgb3V0cHV0IHBhcmFtZXRlcnMKLSBBdXRoZW50aWNhdGlvbiBtZXRob2RzCi0gQ29udGFjdCBpbmZvcm1hdGlvbiwgbGljZW5zZSwgdGVybXMgb2YgdXNlIGFuZCBvdGhlciBpbmZvcm1hdGlvbgoKIyMgQWltCgpBbHRob3VnaCB1c2luZyBPcGVuQVBJIGNvbWVzIHdpdGggYSBsb3Qgb2YgYWR2YW50YWdlcyAoZG9jdW1lbnRhdGlvbiBhbmQgY29kZSBnZW5lcmF0aW9uLCBmYXN0ZXIgQVBJIHB1Ymxpc2hpbmcsIHRlYW1zIGNvbGxhYm9yYXRpb24gcHJvbW90aW9uLi4uKSwgaW5kdXN0cmlhbGl6aW5nIGl0IHJlbWFpbnMgY29tcGxpY2F0ZWQgZHVlIHRvIGNlcnRhaW4gc2hvcnRjb21pbmdzLiBVc2luZyBhIHNpbmdsZSBPcGVuQVBJIGZpbGUgZm9yIHNldmVyYWwgY29udGV4dHMgKHB1YmxpYyBhbmQgcHJpdmF0ZSB1c2FnZSBmb3IgZXhhbXBsZSkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCByZWxlYXNlIG9mIE9wZW5BUEkuIFVzaW5nIHRoZSBleHRlcm5hbCByZWZlcmVuY2VzIHRvIGRlc2lnbiB5b3VyIEFQSSBmcm9tIHNldmVyYWwgZmlsZXMgdG8gZmFjaWxpdGF0ZSB0aGUgbWFpbnRhaW5hYmlsaXR5IGlzIHN0aWxsIHJlcXVpcmVkLiBQYWlubGVzc2x5IHB1Ymxpc2ggeW91ciBzcGVjaWZpY2F0aW9ucyBpbnRvIGEgc29mdHdhcmUgcmVwb3NpdG9yeSB0byBiZSBhYmxlIHRvIHJldXNlIGl0ICh0byBnZW5lcmF0ZSBjbGllbnQgb3Igc2VydmVyIGNvZGUpLiBFdGMuCkFsc28sIHRoZSBPcGVuQVBJIGVjb3N5c3RlbSBpcyB2ZXJ5IGxhcmdlIChodHRwczovL29wZW5hcGkudG9vbHMvKSB3aXRoIGEgbG90IG9mIHRvb2xzIHdpdGggZGlmZmVyZW50IHF1YWxpdHkgbGV2ZWxzLiBDb25zZXF1ZW50bHksIHRvIHNldCB1cCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IGVudmlyb25tZW50LCBtYW55IHRvb2xzIGhhdmUgdG8gYmUgaW5zdGFsbGVkIGFuZCB1cGdyYWRlZCByZWd1bGFybHkuCgpPcGVuQVBJIERldiBUb29sIGZpeGVzIGFsbCB0aGVzZSBpc3N1ZXMgYnkgb2ZmZXJpbmcgdG8gZGV2ZWxvcGVycyBhIHVuaXF1ZSB0b29sIHRvIGFkZHJlc3MgZGV2ZWxvcG1lbnQgYW5kIGluZHVzdHJpYWxpemF0aW9uIG5lZWRzIQoKRnJvbSBgb3BlbmFwaS1kZXYtdG9vbGAgY29tbWFuZC1saW5lIGludGVyZmFjZSwgeW91IGNhbjoKCi0gZGVzaWduIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBmb3Igc2V2ZXJhbCBjb250ZXh0cyBvZiB1c2VzICh3aXRob3V0IGFueSBjb3B5LXBhc3RlKSA7Ci0gd3JpdGUgeW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGJ5IHVzaW5nIHNldmVyYWwgZmlsZXMgKHRvIGF2b2lkIGhhdmluZyBhIHVuaXF1ZSBsYXJnZSBhbmQgdW5tYWludGFpbmFibGUgZmlsZSkgOwotIGVhc2lseSBwdWJsaXNoIHlvdXIgT3BlbkFQSSBmaWxlcyBhbmQgcmV1c2UgdGhlbSB0byBnZW5lcmF0ZSB5b3VyIGNsaWVudCBvciB5b3VyIHNlcnZlciA7Ci0gdmlldyBkb2N1bWVudGF0aW9uIGluIHJlYWwtdGltZSA7Ci0gdmFsaWRhdGUgeW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGFuZCB5b3VyIGV4YW1wbGVzIGF1dG9tYXRpY2FsbHkgOwotIGV0Yy4KCiFbcHJlc2VudGF0aW9uXShkb2MtYXNzZXRzL3ByZXMuZ2lmKQoKIyMgU3RhbmRhcmQgc3VwcG9ydAoKT3BlbkFQSSBEZXYgVG9vbCBzdXBwb3J0cyB0aGlzIGZvbGxvd2luZyBzdGFuZGFyZHMgdmVyc2lvbjoKCi0gW1N3YWdnZXIgMi4wXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi92Mi8pCi0gW09wZW5hcGkgMy4wLnhdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykKLSBbT3BlbmFwaSAzLjEuMF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wKQoKIyMgSW5zdGFsbGF0aW9uCgoxLiBJbnN0YWxsIGBOb2RlLkpTYCAoaHR0cHM6Ly9ub2RlanMub3JnLykKCjEuIEluc3RhbGwgYE9wZW5BUEkgRGV2IFRvb2xgIHRvb2wKCiAgIC0gV2l0aCBucG0KICAgICA+IGBucG0gaSAtZyBAbHlyYS1uZXR3b3JrL29wZW5hcGktZGV2LXRvb2xgCiAgIC0gV2l0aCB5YXJuCiAgICAgPiBgeWFybiBnbG9iYWwgYWRkIEBseXJhLW5ldHdvcmsvb3BlbmFwaS1kZXYtdG9vbGAKCjEuIFNob3cgdXNhZ2UKICAgPiBgb3BlbmFwaS1kZXYtdG9vbCBoZWxwYAoKIyMgRmVhdHVyZXMKCiMjIyBTZXJ2aW5nCgojIyMjIE92ZXJ2aWV3Cgo+IERldmVsb3AgeW91ciBzcGVjaWZpY2F0aW9ucyEKCi0gKipTZXJ2ZSBvbmUgb3Igc2V2ZXJhbCBPcGVuQVBJIGZpbGVzKiogc3BlY2lmaWVkIGluIFtjb25maWd1cmF0aW9uIGZpbGVdKCNjb25maWd1cmF0aW9uLWZpbGUpIGFuZCB3cml0dGVuIGluIFlBTUwgb3IgSlNPTgotICoqTGl2ZSByZWxvYWRpbmcqKiB0byB2aWV3IGR5bmFtaWNhbGx5IHlvdXIgY2hhbmdlcyBpbiB5b3VyIGJyb3dzZXIgaW4gcmVhbC10aW1lCi0gKipCdW5kbGUgT3BlbkFQSSBmaWxlcyoqIHRvIG1lcmdlIGFsbCB0aGUgZmlsZXMgYmVmb3JlIHNlcnZpbmcuIEJ5IHVzaW5nIFtPcGVuQVBJIHJlbW90ZSByZWZlcmVuY2VdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vdXNpbmctcmVmLyksIHlvdSBjYW4gd29yayBvbiBzZXZlcmFsIGZpbGVzLiBJdCBpbXByb3ZlcyB0aGUgbWFpbnRhaW5hYmlsaXR5IGFuZCBhdm9pZHMgaGF2aW5nIGEgbGFyZ2UgT3BlbkFQSSBmaWxlIQotICoqU2V2ZXJhbCBkb2N1bWVudGF0aW9uIHZpZXdlcnMgZW1iZWRkZWQqKiB3aXRoIHRoZSBwb3NzaWJpbGl0eSB0byBbb3ZlcnJpZGUgdGhlIHRlbXBsYXRlc10oI3RlbXBsYXRlcy1vdmVycmlkZSkgdXNlZDoKICAtIFJlZG9jIChodHRwOi8vbG9jYWxob3N0OjMwMDApCiAgLSBTd2FnZ2VyIFVJIChodHRwOi8vbG9jYWxob3N0OjMwMDAvc3dhZ2dlci11aSkKLSAqKmB4LXRhZ3NgIHZlbmRvciBleHRlbnNpb24qKiBpbiBgSW5mb2Agb2JqZWN0IHRvIGJlIGFibGUgdG8gW3RhZyBPcGVuQVBJIGZpbGVzXSgjdGFncy11c2FnZSkuIE9wZW5BUEkgZG9lc24ndCBzdXBwb3J0IHNwZWNpZmljYXRpb25zIHRhZ3MgYW5kIG9ubHkgc3VwcG9ydHMgb3BlcmF0aW9ucyB0YWdzIChmb3Igb3JnYW5pemF0aW9uIHB1cnBvc2VzKS4gV2l0aCB0aGUgYHgtdGFnc2AgdmVuZG9yIGV4dGVuc2lvbiBhbmQgZm9yIFJlZG9jIHZpZXdlciwgaXQgaXMgbm93IHBvc3NpYmxlIHRvIGNhdGVnb3JpemUgYW5kIG9yZ2FuaXplIHNwZWNpZmljYXRpb25zLgoKRm9yIGV4YW1wbGUsIGRlY2xhcmUgYSBwcml2YXRlIGFuZCBhIHB1YmxpYyBzcGVjaWZpY2F0aW9uczoKCiFbcHJlc2VudGF0aW9uXShkb2MtYXNzZXRzL3h0YWcucG5nKQoKLSAqKlZhbGlkYXRlKiogeW91ciBzcGVjaWZpY2F0aW9ucyBhbmQgeW91ciBleGFtcGxlcyBhdXRvbWF0aWNhbGx5Ci0gKipTdGF0aWMgZmlsZXMqKiBjYW4gYmUgZXhwb3NlZCBpbiBhZGRpdGlvbiBvZiB5b3VyIG9wZW5hcGkgZG9jdW1lbnRhdGlvbgotICoqQ29udGV4dCB1c2VzKio6IGl0IGlzIHBvc3NpYmxlIHRvIHNlcnZlIGEgc2FtZSBzcGVjaWZpY2F0aW9uIGluIFtzZXZlcmFsIGNvbnRleHRzXSgjY29udGV4dC11c2FnZSkgKGludGVybmFsLCBwdWJsaWMsIGV0Yy4pCi0gKipWaWV3ZXJzIHVwLXRvLWRhdGUqKiB5b3UgY2FuIHVzZSB0aGUgbGF0ZXN0IHJlbGVhc2VzIG9mIHZpZXdlcnMgZGlyZWN0bHkgYnkgZGVjbGFyaW5nIGl0IGZyb20geW91ciBgcGFja2FnZS5qc29uYCAoW3N3YWdnZXItdWktZGlzdF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci11aS1kaXN0KSAmIFtyZWRvY10oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvcmVkb2MpKS4gYG9wZW5hcGktZGV2LXRvb2xgIHdpbGwgYXV0b21hdGljYWxseSB1c2UgdGhlIHZpZXdlcnMgZGVmaW5lZCBpbiB5b3VyIGFwcC4KCiMjIyMgVXNhZ2UKClVzYWdlIGNhbiBiZSBkaXNwbGF5ZWQgYnkgdHlwaW5nIHRoZSBjb21tYW5kCgo+IGBvcGVuYXBpLWRldi10b29sIGhlbHAgc2VydmVgCgpgYGAKb3BlbmFwaS1kZXYtdG9vbCBzZXJ2ZQoKICBTZXJ2ZSBvbmUgb3Igc2VydmVyYWwgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGVzIGluIFlBTUwgb3IgSlNPTgogIGZvcm1hdAoKQ29tbWFuZCBPcHRpb25zCgogIC1iLCAtLXNraXBCdW5kbGUgICAgICAgICAgICAgICBTa2lwcyBidW5kbGUgb3BlbmFwaSBmaWxlcyBpbnRvIG9uZSBiZWZvcmUgc2VydmluZyBvciBwdWJsaXNoaW5nLCBkZWZhdWx0IGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlCiAgLXAsIC0tcG9ydCBudW1iZXIgICAgICAgICAgICAgIFBvcnQgdG8gdXNlLCBkZWZhdWx0IGlzIDMwMDAKICAtdSwgLS1jb250ZXh0UGF0aCBzdHJpbmcgICAgICAgQ29udGV4dCB1c2VkIHRvIGV4cG9zZSBvcGVuYXBpIGRvY3VtZW50YXRpb25zLiBIYXMgdG8gYmUgc3RhcnQgd2l0aCAnLycsIGRlZmF1bHQgaXMgJy8nCiAgLWUsIC0tdmlld3NGb2xkZXIgc3RyaW5nICAgICAgIEZvbGRlciB0aGF0IGNvbnRhaW5zIHZpZXdzIGluIEVKUyB0byBvdmVycmlkZSBkZWZhdWx0cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICJhcGkuZWpzIjogZm9yIEFQSSBMaXN0IHBhZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAicmVkb2MuZWpzIjogZm9yIFJlZG9jIHBhZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAic3dhZ2dlci11aS5lanMiOiBmb3IgU3dhZ2dlciBVSSBwYWdlCiAgLXMsIC0tc3RhdGljRm9sZGVycyBzdHJpbmdbXSAgIEV4cG9zZXMgYSBzdGF0aWMgZm9sZGVyIGluIGFkZGl0aW9uIG9mIG9wZW5hcGkgZG9jdW1lbnRhdGlvbiwgZm9yIGV4YW1wbGUsIGlmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSB3YW50IGV4cG9zZSBnZW5lcmFsIGRvY3VtZW50YXRpb24gKG1pZ3JhdGlvbiwgQVBJIG92ZXJ2aWV3LC4uLikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzIHRvIGJlIGEgbWFwIGxpa2UgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPHBhdGgxPjo8Zm9sZGVyMT4gd2hlcmUgcGF0aDEgYW5kIGZvbGRlcjEgaGF2ZSB0byBbYS16QS1aMC05Xy1dKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuYXBpLWRldi10b29sIHdpbGwgY3JlYXRlIGEgcGF0aCAiL3BhdGgxIiB3aGVyZSBzdGF0aWMgZmlsZXMgb2YgZm9sZGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb2xkZXIxIiB3aWxsIGJlIGV4cG9zZWQKICAteCwgLS1za2lwVmFsaWRhdGlvbiAgICAgICAgICAgU2tpcHMgT3BlbkFQSSB2YWxpZGF0aW9uIHByb2Nlc3MsIGRlZmF1bHQgaXMgZmFsc2UKCkdsb2JhbCBPcHRpb25zCgogIC1jLCAtLWNvbmZpZyBzdHJpbmcgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBmaWxlIGluIEpTT04gb3IgWUFNTCBmb3JtYXQgd2hlcmUgc3BlY2lmaWNhdGlvbnMgYXJlIGRlZmluZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IGlzIGNvbmZpZy5qc29uCiAgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgICAgICAgICAgICBWZXJib3NlIG1vZGUsIGRlZmF1bHQgaXMgZmFsc2UKICAtYSwgLS11cmxEb3dubG9hZFRlbXBsYXRlIHN0cmluZyAgIFJhdGhlciB0byB1c2Ugc3BlY3MgZnJvbSBsb2NhbCBGUywgeW91IGNhbiBzcGVjaWZ5IHJlbW90ZSBzcGVjcyAodXNpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcnRpZmFjdCcgY29uZmlnIHByb3BlcnR5KSB3aGljaCB3aWxsIGJlIGRvd25sb2FkZWQgYnkgdXNpbmcgdGhpcyB1cmwuIEZyb20KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdXJsIHRlbXBsYXRlICdbQVJUSUZBQ1RfSURdJywgJ1tHUk9VUF9JRF0nIGFuZCAnW1ZFUlNJT05dJyB3aWxsIGJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC4KYGBgCgojIyMgUHVibGlzaGluZwoKIyMjIyBPdmVydmlldwoKPiBQdWJsaXNoIHlvdXIgc3BlY2lmaWNhdGlvbnMhCj4gVXNlIHRoZSB2ZXJzaW9uIGFuZCB0aXRsZSBvZiB5b3VyIHNwZWNpZmljYXRpb25zIHRvIHB1Ymxpc2ggdGhlbSBkaXJlY3RseSBpbiB5b3VyIHNvZnR3YXJlIHJlcG9zaXRvcnkgc2VydmVyIQoKLSAqKlB1Ymxpc2ggb25lIG9yIHNldmVyYWwgT3BlbkFQSSBmaWxlcyoqIHNwZWNpZmllZCBpbiBbY29uZmlndXJhdGlvbiBmaWxlXSgjY29uZmlndXJhdGlvbi1maWxlKSBhbmQgd3JpdHRlbiBpbiBZQU1MIG9yIEpTT04KLSAqKkJ1bmRsZSBPcGVuQVBJIGZpbGVzKiogdG8gbWVyZ2UgYWxsIHRoZSBmaWxlcyBiZWZvcmUgcHVibGlzaGluZy4gQnkgdXNpbmcgKE9wZW5BUEkgcmVtb3RlIHJlZmVyZW5jZSlbaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi91c2luZy1yZWYvXSwgeW91IGNhbiB3b3JrIG9uIHNldmVyYWwgZmlsZXMuIEl0IGltcHJvdmVzIHRoZSBtYWludGFpbmFiaWxpdHkgYW5kIGF2b2lkIGhhdmluZyBhIGxhcmdlIE9wZW5BUEkgZmlsZSEKLSAqKkNvbnRleHQgdXNlcyoqOiBpdCBpcyBwb3NzaWJsZSB0byBwdWJsaXNoIGEgc2FtZSBzcGVjaWZpY2F0aW9uIGluIFtzZXZlcmFsIGNvbnRleHRzXSgjY29udGV4dC11c2FnZSkgKGludGVybmFsLCBwdWJsaWMsIGV0Yy4pCgojIyMjIFVzYWdlCgpVc2FnZSBjYW4gYmUgZGlzcGxheWVkIGJ5IHR5cGluZyB0aGUgY29tbWFuZAoKPiBgb3BlbmFwaS1kZXYtdG9vbCBoZWxwIHB1Ymxpc2hgCgpgYGAKb3BlbmFwaS1kZXYtdG9vbCBwdWJsaXNoCgogIFB1Ymxpc2ggaW50byBhIHNvZnR3YXJlIHJlcG9zaXRvcnkgc2VydmVyIChsaWtlIFNvbmF0eXBlIE5leHVzKSBvbmUgb3Igc2VydmVyYWwgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucwogIGZpbGVzLiBUaGUgcmVwbyBjYW4gYmUgYSBNYXZlbiByZXBvc2l0b3J5IG9yIGEgbnBtIHJlcG9zaXRvcnkuCgpDb21tYW5kIE9wdGlvbnMKCiAgLWIsIC0tc2tpcEJ1bmRsZSAgICAgICAgICAgICAgIFNraXBzIGJ1bmRsZSBvcGVuYXBpIGZpbGVzIGludG8gb25lIGJlZm9yZSBzZXJ2aW5nIG9yIHB1Ymxpc2hpbmcsIGRlZmF1bHQgaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UKICAtdCwgLS1yZXBvVHlwZSBzdHJpbmcgICAgICAgICAgUmVwb3NpdG9yeSBzZXJ2ZXIgdHlwZS4gbWF2ZW4gb3IgbnBtIGFyZSBwb3NzaWJsZSwgZGVmYXVsdCBpcyBtYXZlbgogIC1nLCAtLWdyb3VwSWQgc3RyaW5nICAgICAgICAgICBHcm91cElkIHVzZWQgaW4gcmVwbyBzZXJ2ZXIsIGRlZmF1bHQgaXMgY29tLm9wZW5hcGkgZm9yIG1hdmVuIHJlcG8gYW5kIEBteUNvbXBhbnkgZm9yIG5wbSByZXBvCiAgLXMsIC0tcmVwb1NlcnZlciBzdHJpbmcgICAgICAgIFJlcG9zaXRvcnkgc2VydmVyIHVybCB0byBzdG9yZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZXMKICAtLXJlcG9TbmFwc2hvdHNTZXJ2ZXIgc3RyaW5nICAgUmVwb3NpdG9yeSBzZXJ2ZXIgdXJsIHRvIHN0b3JlIE9wZW5BUEkgc25hcHNob3RzIHNwZWNpZmljYXRpb24gZmlsZXMuIElmIHNwZWNpZmllZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1yZXBvU2VydmVyIHdpbGwgYmUgdXNlZCB0byBzdG9yZSBPcGVuQVBJIHJlbGVhc2VzIHNwZWNpZmljYXRpb24gZmlsZXMKICAtdSwgLS1yZXBvVXNlciBzdHJpbmcgICAgICAgICAgUmVwb3NpdG9yeSBzZXJ2ZXIgdXNlcm5hbWUuIEF1dGhlbnRpY2F0aW9uIGJ5IHVzaW5nIHVzZXIvcGFzc3dvcmQKICAtcCwgLS1yZXBvUGFzc3dvcmQgc3RyaW5nICAgICAgUmVwb3NpdG9yeSBzZXJ2ZXIgcGFzc3dvcmQuIEF1dGhlbnRpY2F0aW9uIGJ5IHVzaW5nIHVzZXIvcGFzc3dvcmQKICAtLXJlcG9Ub2tlbiBzdHJpbmcgICAgICAgICAgICAgUmVwb3NpdG9yeSBzZXJ2ZXIgdG9rZW4uIEF1dGhlbnRpY2F0aW9uIGJ5IHVzaW5nIHRva2VuLiBGb3IgbnBtIHJlcG8gb25seQogIC14LCAtLXNraXBWYWxpZGF0aW9uICAgICAgICAgICBTa2lwcyBPcGVuQVBJIHZhbGlkYXRpb24gcHJvY2VzcywgZGVmYXVsdCBpcyBmYWxzZQoKR2xvYmFsIE9wdGlvbnMKCiAgLWMsIC0tY29uZmlnIHN0cmluZyAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIGZpbGUgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCB3aGVyZSBzcGVjaWZpY2F0aW9ucyBhcmUgZGVmaW5lZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgaXMgY29uZmlnLmpzb24KICAtdiwgLS12ZXJib3NlICAgICAgICAgICAgICAgICAgICAgIFZlcmJvc2UgbW9kZSwgZGVmYXVsdCBpcyBmYWxzZQogIC1hLCAtLXVybERvd25sb2FkVGVtcGxhdGUgc3RyaW5nICAgUmF0aGVyIHRvIHVzZSBzcGVjcyBmcm9tIGxvY2FsIEZTLCB5b3UgY2FuIHNwZWNpZnkgcmVtb3RlIHNwZWNzICh1c2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FydGlmYWN0JyBjb25maWcgcHJvcGVydHkpIHdoaWNoIHdpbGwgYmUgZG93bmxvYWRlZCBieSB1c2luZyB0aGlzIHVybC4gRnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB1cmwgdGVtcGxhdGUgJ1tBUlRJRkFDVF9JRF0nLCAnW0dST1VQX0lEXScgYW5kICdbVkVSU0lPTl0nIHdpbGwgYmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLgpgYGAKCiMjIyBQdWJsaXNoaW5nIExvY2FsbHkKCiMjIyMgVXNhZ2UKCj4gKipXYXJuaW5nKioKPgo+IFB1Ymxpc2hpbmcgbG9jYWxseSBpcyBvbmx5IHBvc3NpYmxlIHRvIHB1Ymxpc2ggaW4gbG9jYWwgTWF2ZW4gcmVwb3NpdG9yeSBhbmQgaXQgdXNlcyB0aGUgYG12bmAgY29tbWFuZCBmcm9tIFBBVEguCgpVc2FnZSBjYW4gYmUgZGlzcGxheWVkIGJ5IHR5cGluZyB0aGUgY29tbWFuZAoKPiBgb3BlbmFwaS1kZXYtdG9vbCBoZWxwIHB1Ymxpc2gtbG9jYWxgCgpgYGAKb3BlbmFwaS1kZXYtdG9vbCBwdWJsaXNoLWxvY2FsCgogIFB1Ymxpc2ggaW50byB0aGUgbG9jYWwgTWF2ZW4gcmVwb3NpdG9yeQoKQ29tbWFuZCBPcHRpb25zCgogIC1iLCAtLXNraXBCdW5kbGUgICAgICAgICAgICAgICBTa2lwcyBidW5kbGUgb3BlbmFwaSBmaWxlcyBpbnRvIG9uZSBiZWZvcmUgc2VydmluZyBvciBwdWJsaXNoaW5nLCBkZWZhdWx0IGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlCiAgLWcsIC0tZ3JvdXBJZCBzdHJpbmcgICAgICAgICAgIEdyb3VwSWQgdXNlZCBpbiByZXBvIHNlcnZlciwgZGVmYXVsdCBpcyBjb20ub3BlbmFwaQogIC14LCAtLXNraXBWYWxpZGF0aW9uICAgICAgICAgICBTa2lwcyBPcGVuQVBJIHZhbGlkYXRpb24gcHJvY2VzcywgZGVmYXVsdCBpcyBmYWxzZQoKR2xvYmFsIE9wdGlvbnMKCiAgLWMsIC0tY29uZmlnIHN0cmluZyAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIGZpbGUgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCB3aGVyZSBzcGVjaWZpY2F0aW9ucyBhcmUgZGVmaW5lZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgaXMgY29uZmlnLmpzb24KICAtdiwgLS12ZXJib3NlICAgICAgICAgICAgICAgICAgICAgIFZlcmJvc2UgbW9kZSwgZGVmYXVsdCBpcyBmYWxzZQogIC1hLCAtLXVybERvd25sb2FkVGVtcGxhdGUgc3RyaW5nICAgUmF0aGVyIHRvIHVzZSBzcGVjcyBmcm9tIGxvY2FsIEZTLCB5b3UgY2FuIHNwZWNpZnkgcmVtb3RlIHNwZWNzICh1c2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FydGlmYWN0JyBjb25maWcgcHJvcGVydHkpIHdoaWNoIHdpbGwgYmUgZG93bmxvYWRlZCBieSB1c2luZyB0aGlzIHVybC4gRnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB1cmwgdGVtcGxhdGUgJ1tBUlRJRkFDVF9JRF0nLCAnW0dST1VQX0lEXScgYW5kICdbVkVSU0lPTl0nIHdpbGwgYmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLgpgYGAKCj4gKipXYXJuaW5nKioKPgo+IGBvcGVuYXBpLWRldi10b29sYCBpcyBnb2luZyB0byBkZXRlcm1pbmF0ZSBsb2NhbCByZXBvc2l0b3J5IHBhdGggYXV0b21hdGljYWxseSBmcm9tIGBtdm5gIGNvbW1hbmQuIFNvLCBmb3IgdGhpcyB0byB3b3JrLCBgbXZuYCBjb21tYW5kIGhhcyB0byBiZSBhdmFpbGFibGUgaW4gUEFUSC4KCiMjIyBNZXJnaW5nCgojIyMjIE92ZXJ2aWV3Cgo+IE1lcmdlIHlvdXIgc3BlY2lmaWNhdGlvbiEKPiBUbyBkZWJ1ZywgaXQgY2FuIGJlIGludGVyZXN0aW5nIHRvIGdldCB0aGUgbWVyZ2UgcmVzdWx0IHVzZWQgYnkgYHB1Ymxpc2hgLCBgcHVibGlzaC1sb2NhbGAgYW5kIGBzZXJ2ZWAgY29tbWFuZC4KCi0gKipNZXJnZSBzcGxpdCBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZXMqKiBpLmUuIGNvbXBvbmVudHMgc3BlY2lmaWMgZmlsZXMsIHBhdGhzIHNwZWNpZmljIGZpbGVzLCBpbmZvLCBldGMuIHRoYXQgY2FuIGJlIHdyaXR0ZW4gaW4gWUFNTCBvciBKU09OIGludG8gYSBzaW5nbGUgZmlsZSAocGVyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbikKCiMjIyMgVXNhZ2UKClVzYWdlIGNhbiBiZSBkaXNwbGF5ZWQgYnkgdHlwaW5nIHRoZSBjb21tYW5kCgo+IGBvcGVuYXBpLWRldi10b29sIGhlbHAgbWVyZ2VgCgpgYGAKb3BlbmFwaS1kZXYtdG9vbCBtZXJnZQoKICBNZXJnZSBzcGxpdCBPcGVuQVBJIHNwZWNpZmljYXRpb24gKGNvbXBvbmVudHMsIHBhdGhzLCBpbmZvLCBldGMuKSBpbnRvIGEgYnVuZGxlZCBzcGVjaWZpY2F0aW9uIGZpbGUKCkNvbW1hbmQgT3B0aW9ucwoKICAtbywgLS1vdXRwdXQgc3RyaW5nICAgICAgICAgICAgTWVyZ2VkIGZpbGUgb3V0cHV0IGRpcmVjdG9yeQoKR2xvYmFsIE9wdGlvbnMKCiAgLWMsIC0tY29uZmlnIHN0cmluZyAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIGZpbGUgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCB3aGVyZSBzcGVjaWZpY2F0aW9ucyBhcmUgZGVmaW5lZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgaXMgY29uZmlnLmpzb24KICAtdiwgLS12ZXJib3NlICAgICAgICAgICAgICAgICAgICAgIFZlcmJvc2UgbW9kZSwgZGVmYXVsdCBpcyBmYWxzZQogIC1hLCAtLXVybERvd25sb2FkVGVtcGxhdGUgc3RyaW5nICAgUmF0aGVyIHRvIHVzZSBzcGVjcyBmcm9tIGxvY2FsIEZTLCB5b3UgY2FuIHNwZWNpZnkgcmVtb3RlIHNwZWNzICh1c2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FydGlmYWN0JyBjb25maWcgcHJvcGVydHkpIHdoaWNoIHdpbGwgYmUgZG93bmxvYWRlZCBieSB1c2luZyB0aGlzIHVybC4gRnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB1cmwgdGVtcGxhdGUgJ1tBUlRJRkFDVF9JRF0nLCAnW0dST1VQX0lEXScgYW5kICdbVkVSU0lPTl0nIHdpbGwgYmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLgpgYGAKCiMjIENvbmZpZ3VyYXRpb24gZmlsZQoKQ29uZmlndXJhdGlvbiBmaWxlIGlzIHRoZSBtYWluIGl0ZW0gdG8gZXhlY3V0ZSBgb3BlbmFwaS1kZXYtdG9vbGAuIFdyaXR0ZW4gaW4gSlNPTiBvciBZQU1MIGZvcm1hdCwgdGhpcyBjb25maWd1cmF0aW9uIGZpbGUgY29udGFpbnMgdGhlIHNwZWNpZmljYXRpb25zIGxpc3QgdGhhdCBoYXZlIHRvIGJlIHNlcnZlZCwgcHVibGlzaGVkIG9yIG1lcmdlZC4KSXQgYWxzbyBkZXNjcmliZXMgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIHVzZWQgYnkgc3BlY2lmaWMgY29tbWFuZHMgKGFzIGRlc2NyaWJlZCBhYm92ZSkuCgpgYGB5YW1sCnsKICAgICJzcGVjcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcnJheSBvZiBzcGVjaWZpY2F0aW9ucyAoc2V2ZXJhbCBzcGVjaWZpY2F0aW9ucyBjYW4gYmUgZXhwb3NlZCkKICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCBzcGVjaWZpY2F0aW9uIGZpbGUKICAgICAgICAgICAgImZpbGUiOiAiLi9wZXRzdG9yZS55YW1sIiwgICAgICAgICAgICAgICAvLyBSZWxhdGl2ZSBwYXRoIG9mIHRoZSBzcGVjaWZpY2F0aW9uIG1haW4gZmlsZSAob3IgZnJvbSBhcnRpZmFjdCBhcmNoaXZlKS4gSXQgaGFzIHRvIGJlIGFuIE9wZW5BUEkgZmlsZSBpbiBZQU1MIG9yIEpTT04uCiAgICAgICAgICAgICJhcnRpZmFjdCI6ICJncm91cElkOmFydGlmYWN0SWQ6dmVyc2lvbiIgLy8gQXJ0aWZhY3Qgb2Ygc3BlYyBkb3dubG9hZGVkIHJhdGhlciB0byBiZSByZWZlcmVuY2VkIGxvY2FsbHkKICAgICAgICAgICAgInZGb2xkZXJzIjogIm15Rm9sZGVyIiwgICAgICAgICAgICAgICAgICAvLyBWaXJ0dWFsIGZvbGRlcnMgdG8gb3JnYW5pemUgc3BlY3MgZG9jdW1lbnRhdGlvbiBpbnRvIHNldmVyYWwgZm9sZGVyLiB2Rm9sZGVycyBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncwogICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBvciBub3Qgc3BlY2lmaWNhdGlvbiBmaWxlIHRvIGF2b2lkIHRvIHNlcnZlIC8gcHVibGlzaCAvIG1lcmdlIHNvbWUgc3BlY2lmaWNhdGlvbiBmaWxlIChkZWZhdWx0IGlzIHRydWUpIC0tPiBjYW4gYmUgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUKICAgICAgICAgICAgImNvbnRleHQiOiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPYmplY3QgdXNlZCBmb3IgdGVtcGxhdGUgZ2VuZXJhdGlvbiAoc2VlIFRlbXBsYXRlIHVzYWdlIGNoYXB0ZXIgYmVsb3cpCiAgICAgICAgICAgICAgLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlY29uZCBzcGVjaWZpY2F0aW9uIGZpbGUKICAgICAgICAgICAgImZpbGUiOiAiLi9wZXRzdG9yZTIueWFtbCIsCiAgICAgICAgICAgIC4uLgogICAgICAgIH0KICAgIF0sCiAgICAiaHRtbC1pbmplY3RvciI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG8gY2hhbmdlIHJlbmRlciBvZiBwYWdlcyBvZiBzZXJ2ZSBjb21tYW5kIHlvdSBjYW4gcHJvdmlkZSB5b3VyIG93biB0ZW1wbGF0ZSBmaWxlcyBidXQgeW91IGNhbiBhbHNvIHVzZSB0aGlzIEhUTUwgaW5qZWN0b3Igd2hlcmUgZWFjaCBsaW5lcyB3aWxsIGJlIGluamVjdGVkIGludG8gSFRNTAp9CmBgYAoKIyMgQWR2YW5jZWQgdXNhZ2UKCiMjIyBDb21tYW5kIG9wdGlvbnMgZnJvbSBSQyBGaWxlCgpJdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoZSB3aG9sZSBvZiBjb21tYW5kIG9wdGlvbnMgb2YgYHB1Ymxpc2hgLCBgcHVibGlzaC1sb2NhbGAsIGBzZXJ2ZWAsIGBtZXJnZWAgY29tbWFuZHMgYnkgdXNpbmcgYSByYyBmaWxlIChpbiBKU09OKSByYXRoZXIgdG8gc3BlY2lmeSB0aGVzZSBmcm9tIGNvbW1hbmQtbGluZS4KRm9yIGV4YW1wbGU6CgpgY2F0IC5vcGVuYXBpLWRldi10b29scmNgCgpgYGAKewogICAgICJyZXBvU2VydmVyIjogImh0dHBzOi8vbXlTZXJ2ZXIvcmVwb3NpdG9yeS9vcGVuYXBpIiwKICAgICAicmVwb1VzZXIiOiAiYWRtaW4iLAogICAgICJyZXBvUGFzc3dvcmQiOiAiYWRtaW4iLAogICAgICJncm91cElkIjogImNvbS5teUNvbXBhbnkub3BlbmFwaSIKfQpgYGAKCiMjIyBUZW1wbGF0ZXMgb3ZlcnJpZGUKCkJ5IGRlZmF1bHQsIHRoZSBzZXJ2ZSBmZWF0dXJlIHJlbmRlcnMgSFRNTCBjb250ZW50IGJ5IHBhcnNpbmcgRUpTIHRlbXBsYXRlcyBkZWZpbmVkIGluIGBvcGVuYXBpLWRldi10b29sYCBtb2R1bGU6CgotIGBhcGkuZWpzYDogZm9yIEFQSSBMaXN0IHBhZ2UuIFRoaXMgcGFnZSBsaXN0cyBhbGwgdGhlIGF2YWlsYWJsZSBBUElzIGJlZm9yZSBhY2Nlc3NpbmcgaXQgd2l0aCBSZWRvYyB2aWV3ZXIKLSBgcmVkb2MuZWpzYDogZm9yIFJlZG9jIHBhZ2UuIFRoaXMgcGFnZSBsb2FkcyBSZWRvYyB2aWV3ZXIuCi0gYHN3YWdnZXItdWkuZWpzYDogZm9yIFN3YWdnZXIgVUkgcGFnZS4gVGhpcyBwYWdlIGxvYWRzIFJlZG9jIHZpZXdlci4KCkZyb20gYHZpZXdzRm9sZGVyYCBjb21tYW5kIG9wdGlvbiBvZiBgc2VydmVgIGNvbW1hbmQsIHlvdSBjYW4gc3BlY2lmeSBhIGZvbGRlciB3aGVyZSB5b3VyIG93biBFSlMgdGVtcGxhdGVzIGFyZSBkZWZpbmVkIHRoZSBjaGFuZ2UgdGhlIEhUTUwgZ2VuZXJhdGVkLgoKRm9yIGV4YW1wbGUsIGBhcGkuZWpzYDoKCmBgYGh0bWwKPCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPk15IENvbXBhbnk8L3RpdGxlPgogIDxoZWFkPgogIDxib2R5PgogIDwlIHNwZWNzLmZvckVhY2goZnVuY3Rpb24oc3BlYyl7ICU+CiAgICA8YSBocmVmPSIvcmVkb2M/c3BlY05hbWU9PCU9c3BlYy5uYW1lJT4iPjwlPXNwZWMubmFtZSU+PC9hPgogIDwlIH0pOyAlPgogIDwvYm9keT4KPC9odG1sPgpgYGAKCkZvciBlYWNoIHRlbXBsYXRlLCB0aGUgZm9sbG93aW5nIG9iamVjdHMgYXJlIGxvYWRlZCBpbiBFSlMgY29udGV4dDoKCi0gYGFwaS5lanNgCiAgLSBgc3BlY3NgOiBhcnJheSBvZiBPcGVuQVBJIHNwZWNpZmljYXRpb25zIHdoZXJlIGVhY2ggYHNwZWNgIGl0ZW0gY29udGFpbnMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgogICAgLSBgbmFtZWA6IG5hbWUgb2Ygc3BlY2lmaWNhdGlvbgogICAgLSBgdmVyc2lvbmA6IHZlcnNpb24gb2Ygc3BlY2lmaWNhdGlvbgogICAgLSBgZGVzY3JpcHRpb25gOiBkZXNjcmlwdGlvbiBjb252ZXJ0ZWQgaW4gSFRNTCAoZnJvbSBNYXJrZG93bikKICAgIC0gYHVybGA6IHVybCB3aGVyZSBzcGVjcyBjYW4gYmUgdmlld2VkCiAgICAtIGBmaWxlYDogZmlsZSBvZiBzcGVjaWZpY2F0aW9uCiAgICAtIGBjb250ZXh0YDogY3VycmVudCBjb250ZXh0CiAgICAtIGB0YWdzYDogdGFncyBsb2FkZWQgYnkgdXNpbmcgdGhlIGB4LXRhZ3NgIHZlbmRvciBleHRlbnNpb24KLSBgcmVkb2MuZWpzYAogIC0gYHNwZWNgOiBvYmplY3Qgd2l0aCBvbmx5IGB1cmxgIGF0dHJpYnV0ZQotIGBzd2FnZ2VyLXVpLmVqc2AKICAtIGBzcGVjc2A6IGFycmF5IG9mIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgd2hlcmUgZWFjaCBgc3BlY2AgaXRlbSBjb250YWlucyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CiAgICAtIGBuYW1lYDogbmFtZSBvZiBzcGVjaWZpY2F0aW9uCiAgICAtIGB1cmxgOiB1cmwgd2hlcmUgc3BlY3MgY2FuIGJlIHZpZXdlZAoKIyMjIENvbnRleHQgdXNhZ2UKCkl0IGlzIHBvc3NpYmxlIHRvIHNlcnZlLCBwdWJsaXNoIGFuZCBtZXJnZSBhIHNhbWUgQVBJIGZvciBzZXZlcmFsIGNvbnRleHRzLgpGb3IgZXhhbXBsZSwgZm9yIHNvbWUgdXNlLWNhc2VzIGEgc2FtZSBBUEkgc2hvdWxkIGJlIHVzZWQgaW4gc2V2ZXJhbCBjb250ZXh0czogZnJvbSBjdXN0b21lcnMgKHB1YmxpYyBhY2Nlc3MpIGFuZCBmcm9tIGludGVybmFsIHN5c3RlbXMgKHByaXZhdGUgYWNjZXNzKS4gVGhlIEFQSSBpcyBleGFjdGx5IHRoZSBzYW1lLCBvbmx5IHRoZSBhdXRoZW50aWNhdGlvbiBsYXllciBjb3VsZCBiZSBkaWZmZXJlbnQuIFRvIGF2b2lkIGR1cGxpY2F0aW5nIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCB5b3UgY2FuIHVzZSB0aGUgc2FtZSBBUEkgZXhlY3V0ZWQgaW4gdHdvIGNvbnRleHRzIChwdWJsaWMgYW5kIHByaXZhdGUpLgoKVG8gZG8gdGhhdCwgeW91IGNhbiB1c2UgRUpTIHRlbXBsYXRlIGRpcmVjdGx5IGluIHlvdXIgT3BlbkFQSSBmaWxlcyB0byBzcGVjaWZ5IGRpZmZlcmVudCBiZWhhdmlvcnMgd2hlcmUgYGNvbnRleHRgIHNwZWNpZmllZCBpbiBDb25maWd1cmF0aW9uIGZpbGUgd2lsbCBiZSB1c2VkIGZvciByZW5kZXJpbmcuIEZvciBleGFtcGxlIGZvciBwdWJsaWMgYWNjZXNzLCB3ZSB3YW50IHRvIGFkZCBhIHNlY3VyaXR5IGxheWVyIHdoaWNoIGRvZXNuJ3QgZXhpc3QgZm9yIGludGVybmFsIGFjY2VzczoKCmBzcGVjcy55YW1sYAoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAouLi4KCmNvbXBvbmVudHM6CjwlaWYgKHB1YmxpYykgeyAlPgogIHNlY3VyaXR5U2NoZW1lczoKICAgIGJhc2ljQXV0aDoKICAgICAgdHlwZTogaHR0cAogICAgICBzY2hlbWU6IGJhc2ljCjwlIH0gJT4KCi4uLgoKPCVpZiAocHVibGljKSB7ICU+CnNlY3VyaXR5OgotIGJhc2ljQXV0aDogW10KPCUgfSAlPgouLi4KYGBgCgpUaGlzIHNwZWNpZmljYXRpb24gY291bGQgYmUgdXNlZCBpbiBzZXZlcmFsIGNvbnRleHRzIChwdWJsaWMgb3IgaW50ZXJuYWwpOgoKYGNvbmZpZy5qc29uYAoKYGBganNvbgp7CiAgInNwZWNzIjogWwogICAgewogICAgICAiZmlsZSI6ICIuL3NwZWNzL3NwZWNzLnlhbWwiLAogICAgICAiY29udGV4dCI6IHsKICAgICAgICAicHVibGljIjogZmFsc2UKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgImZpbGUiOiAiLi9zcGVjcy9zcGVjcy55YW1sIiwKICAgICAgImNvbnRleHQiOiB7CiAgICAgICAgInB1YmxpYyI6IHRydWUKICAgICAgfQogICAgfQogIF0KfQpgYGAKCiMjIyBUYWdzIHVzYWdlCgpJbiBPcGVuQVBJIHNwZWNpZmljYXRpb25zLCBpdCBpcyBwb3NzaWJsZSB0byB1c2UgYSBgVGFnYCBvYmplY3QgdG8gZ3JvdXAgb3BlcmF0aW9ucyBpbiBzZXZlcmFsIGNhdGVnb3JpZXMuIEl0IGlzIGdyZWF0IHRvIG9yZ2FuaXplIG91ciBzcGVjaWZpY2F0aW9ucyBidXQgaXQgaXMgbm90IHVzYWJsZSB0byB0YWcgYWxsIHRoZSBPcGVuQVBJIGZpbGVzLiBGb3IgZXhhbXBsZSwgdG8gaW5kaWNhdGUgdGhhdCB0aGUgY3VycmVudCBzcGVjaWZpY2F0aW9uIGlzIHB1YmxpYywgaW50ZXJuYWwsIGV0Yy4KClRvIGNvdmVyIHRoaXMgbmVlZCwgd2UgdXNlIGFuIE9wZW5BUEkgdmVuZG9yIGV4dGVuc2lvbiBgeC10YWdzYCBpbiBgSW5mb2Agb2JqZWN0LiBUaGlzIG5ldyBmaWVsZCBpcyBhIHN0cmluZyBhcnJheSB0aGF0IGNvbnRhaW5zIHRhZ3Mgb2YgdGhlIGN1cnJlbnQgc3BlY2lmaWNhdGlvbi4KCkZvciBleGFtcGxlOgpgc3BlY3MueWFtbGAKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB4LXRhZ3M6CiAgICAtIHB1YmxpYwpgYGAKClRoZXNlIHRhZ3MgYXJlIGRpc3BsYXllZCBpbiBBUEkgcGFnZXMgKGJlZm9yZSBSZWRvYyBwYWdlKS4KCiMjIExpY2Vuc2UKCltBcGFjaGUgMi4wIExpY2Vuc2VdKExJQ0VOU0UpCg== readmeEtag: '"0a99b531f63120cb4f38d0c5ffe47cbdeefa1bf8"' readmeLastModified: Mon, 18 Dec 2023 15:33:46 GMT repositoryId: 310225760 description: >- OpenAPI Dev Tool proposes to developers a unique tool to address development and industrialization needs! created: '2020-11-05T07:50:31Z' updated: '2024-04-24T12:09:07Z' language: JavaScript archived: false stars: 42 watchers: 11 forks: 6 owner: lyra logo: https://avatars.githubusercontent.com/u/572508?v=4 license: Apache-2.0 repoEtag: '"5256ab5a51a50e495b62844ae773c12e37ad551614bc036db053d8c45f95afa8"' repoLastModified: Wed, 24 Apr 2024 12:09:07 GMT foundInMaster: true id: 921cd13437e80edc1d65f659e39df975 v3_1: true - source: https://openapi.tools/ name: portman category: - Testing - Converters link: https://getportman.com/ repository: https://github.com/apideck-libraries/portman language: Node.js source_description: >- Port OpenAPI Spec to Postman Collection, with contract & variation tests included! v2: false v3: true repositoryMetadata: base64Readme: >- IVtwb3J0bWFuLWhlcm9dKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzExMTIxMjkvMTI1ODMzNTEyLWMzMjM1OWQ4LWFmMjctNDk1Yi04MjExLTc0NGM1MDQxNDZiMi5wbmcpCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AYXBpZGVjay9wb3J0bWFuIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXBpZGVjay9wb3J0bWFuLnN2ZyIgYWx0PSJUb3RhbCBEb3dubG9hZHMiPjwvYT4KICA8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AYXBpZGVjay9wb3J0bWFuIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvQGFwaWRlY2svcG9ydG1hbi5zdmciIGFsdD0iTGF0ZXN0IFN0YWJsZSBWZXJzaW9uIj48L2E+CjwvcD4KCiMgUG9ydG1hbiDwn5Go8J+PveKAjfCfmoAKClBvcnQgT3BlbkFQSSBTcGVjIHRvIFBvc3RtYW4gQ29sbGVjdGlvbiwgd2l0aCBjb250cmFjdCAmIHZhcmlhdGlvbiB0ZXN0cyBpbmNsdWRlZCEKClBvcnRtYW4gbGV2ZXJhZ2VzIE9wZW5BUEkgZG9jdW1lbnRzLCB3aXRoIGFsbCBpdHMgZGVmaW5lZCBBUEkgcmVxdWVzdC9yZXNwb25zZSBwcm9wZXJ0aWVzLCB0byBwb3dlciB5b3VyIFBvc3RtYW4gY29sbGVjdGlvbi4KTGV0IFBvcnRtYW4gZG8gYWxsIHRoZSB3b3JrIGFuZCBpbmplY3QgY29udHJhY3QgJiB2YXJpYXRpb24gdGVzdHMgd2l0aCBhIG1pbmltdW0gb2YgY29uZmlndXJhdGlvbi4KQ3VzdG9taXplIHRoZSBQb3N0bWFuIHJlcXVlc3RzICYgdmFyaWFibGVzIHdpdGggYSB3aWRlIHJhbmdlIG9mIG9wdGlvbnMgdG8gYXNzaWduICYgb3ZlcndyaXRlIHZhcmlhYmxlcy4KCj4gWyFJTVBPUlRBTlRdICAKPiAqKkltcG9ydGFudCBDaGFuZ2U6KiogSWYgeW91IGFyZSB1c2luZyB2ZXJzaW9uIDEuMjguMCB3aXRoIGEgY3VzdG9tIFBvc3RtYW4gY29uZmlnIGZpbGUgc3BlY2lmaWVkIGJ5IHRoZSBgLS1wb3N0bWFuQ29uZmlnRmlsZWAgZmxhZywgcGxlYXNlIGVuc3VyZSB0aGF0IHRoZSBgcGFyYW1ldGVyc1Jlc29sdXRpb25gIG9wdGlvbiBpcyBzZXQgdG8gZWl0aGVyICJFeGFtcGxlIiBvciAiU2NoZW1hIi4gVGhlIG9wdGlvbnMgYHJlcXVlc3RQYXJhbWV0ZXJzUmVzb2x1dGlvbmAgYW5kIGBleGFtcGxlUGFyYW1ldGVyc1Jlc29sdXRpb25gIGFyZSBkZXByZWNhdGVkIG9wZW5hcGktdG8tcG9zdG1hbiBvcHRpb25zLgoKIyMgV2h5IHVzZSBQb3J0bWFuPwoKQ29udmVydCB5b3VyIE9wZW5BUEkgc3BlYyB0byBQb3N0bWFuLCBnZW5lcmF0ZSBjb250cmFjdCAmIHZhcmlhdGlvbiB0ZXN0cywgdXBsb2FkIHRoZSBQb3N0bWFuIGNvbGxlY3Rpb24gJiBydW4gdGhlIHRlc3RzIHRocm91Z2ggTmV3bWFuLgpJbmNsdWRlIHRoZSBQb3J0bWFuIENMSSBhcyBwYXJ0IG9mIGFuIGF1dG9tYXRlZCBwcm9jZXNzIGZvciBpbmplY3RpbmcgdGhlIHBvd2VyIG9mIFBvcnRtYW4gZGlyZWN0bHkgaW50byB5b3VyIENJL0NEIHBpcGVsaW5lLgoKW1JlYWQgdGhlIGZ1bGwgYmxvZyBwb3N0XShodHRwczovL2Jsb2cuYXBpZGVjay5jb20vYW5ub3VuY2luZy1wb3J0bWFuKQoKIyMgRmVhdHVyZXMKCldpdGggUG9ydG1hbiwgeW91IGNhbjoKCi0gW3hdIENvbnZlcnQgYW4gT3BlbkFQSSBkb2N1bWVudCB0byBhIFBvc3RtYW4gY29sbGVjdGlvbgogIC0gW3hdIFN1cHBvcnQgZm9yIE9wZW5BUEkgMy4wCiAgLSBbeF0gU3VwcG9ydCBmb3IgT3BlbkFQSSAzLjEgKGJldGEpCi0gRXh0ZW5kIHRoZSBQb3N0bWFuIGNvbGxlY3Rpb24gd2l0aCBjYXBhYmlsaXRpZXMKICAtIFt4XSBJbmplY3QgUG9zdG1hbiBDb250cmFjdCBUZXN0cyAtIFtsZWFybiBtb3JlXSguL2V4YW1wbGVzL3Rlc3RzdWl0ZS1jb250cmFjdC10ZXN0cy9yZWFkbWUubWQpCiAgLSBbeF0gQXNzaWduIGNvbGxlY3Rpb24gdmFyaWFibGVzIC0gW2xlYXJuIG1vcmVdKC4vZXhhbXBsZXMvdGVzdHN1aXRlLWFzc2lnbi12YXJpYWJsZXMvcmVhZG1lLm1kKQogIC0gW3hdIEluamVjdCBQb3N0bWFuIFZhcmlhdGlvbiBUZXN0cyAtIFtsZWFybiBtb3JlXSguL2V4YW1wbGVzL3Rlc3RzdWl0ZS12YXJpYXRpb24tdGVzdHMvcmVhZG1lLm1kKQogIC0gW3hdIEluamVjdCBQb3N0bWFuIEludGVncmF0aW9uIFRlc3RzCiAgLSBbeF0gSW5qZWN0IFBvc3RtYW4gd2l0aCBQcmUtcmVxdWVzdCAmIFRlc3RzIHNjcmlwdHMgb24gYSBjb2xsZWN0aW9uIG9yIG9wZXJhdGlvbiBsZXZlbCAtIFtsZWFybiBtb3JlXSguL2V4YW1wbGVzL3Rlc3RzdWl0ZS1wcmUtcmVxdWVzdC1zY3JpcHRzL3JlYWRtZS5tZCkKICAtIFt4XSBNb2RpZnkgUG9zdG1hbiByZXF1ZXN0cyAtIGxlYXJuIG1vcmUgW2hlcmVdKC4vZXhhbXBsZXMvdGVzdHN1aXRlLW92ZXJ3cml0ZXMvcmVhZG1lLm1kKSBhbmQgW2hlcmVdKC4vZXhhbXBsZXMvdGVzdHN1aXRlLWFzc2lnbi1vdmVyd3JpdGUvcmVhZG1lLm1kKQogIC0gW3hdIEZ1enogUG9zdG1hbiByZXF1ZXN0cyAtIFtsZWFybiBtb3JlXSguL2V4YW1wbGVzL3Rlc3RzdWl0ZS1mdXp6aW5nLXRlc3RzL3JlYWRtZS5tZCkKLSBbeF0gVXBsb2FkIHRoZSBQb3N0bWFuIGNvbGxlY3Rpb24gdG8geW91ciBQb3N0bWFuIGFwcCAtIFtsZWFybiBtb3JlXSgjY29uZmlndXJlLWF1dG9tYXRpYy11cGxvYWQtdG8tcG9zdG1hbi1hcHApCi0gW3hdIFRlc3QgdGhlIFBvc3RtYW4gY29sbGVjdGlvbiB3aXRoIE5ld21hbiAtIFtsZWFybiBtb3JlXSgjcnVuLW5ld21hbi13aXRoLW5ld21hbi1vcHRpb25zKQotIFt4XSBTcGxpdCB0aGUgY29uZmlndXJhdGlvbiBpbnRvIG11bHRpcGxlIGZpbGVzIHVzaW5nICRyZWYKLSBbeF0gTWFuYWdlIGV2ZXJ5dGhpbmcgaW4gY29uZmlnIGZpbGUgZm9yIGVhc3kgbG9jYWwgb3IgQ0kvQ0QgdXNhZ2UgLSBbbGVhcm4gbW9yZV0oI3Bhc3MtYWxsLWNsaS1vcHRpb25zLWFzLWpzb255YW1sLWZpbGUpCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCjEuIFtJbnN0YWxsIFBvcnRtYW5dKCNpbnN0YWxsYXRpb24pCjIuIEluaXRpYWxpemUgUG9ydG1hbiBDTEkgY29uZmlndXJhdGlvbiBieSBydW5uaW5nOiBgJCBwb3J0bWFuIC0taW5pdGAKCk9SCgoxLiBbSW5zdGFsbCBQb3J0bWFuXSgjaW5zdGFsbGF0aW9uKQoyLiBDb3B5IGAuZW52LmV4YW1wbGVgIHRvIGAuZW52YCBhbmQgYWRkIGVudmlyb25tZW50IHZhcmlhYmxlcyB5b3UgbmVlZCBhdmFpbGFibGUgdG8geW91ciBjb2xsZWN0aW9uCjMuIENvcHkvcmVuYW1lIGFuZCBjdXN0b21pemUgZWFjaCBvZiB0aGUgXF9cX1xfXF8uZGVmYXVsdC5qc29uIGNvbmZpZyBmaWxlcyBpbiB0aGUgcm9vdCBkaXJlY3RvcnkgdG8gc3VpdCB5b3VyIG5lZWRzCjQuIFN0YXJ0IGNvbnZlcnRpbmcgeW91ciBPcGVuQVBJIGRvY3VtZW50IHRvIFBvc3RtYW4KCk9SCgpJZiB5b3UgaGF2ZSBhbiBleGlzdGluZyBPcGVuQVBJIHNwZWNpZmljYXRpb24sIHRyeSBydW5uaW5nIFBvcnRtYW4gd2l0aG91dCBhbnkgc3BlY2lhbCBzZXR1cCB0byBzZWUgaG93IGl0IGNhbiBnZW5lcmF0ZSBhIFBvc3RtYW4gY29sbGVjdGlvbiB3aXRoIGNvbnRyYWN0IHRlc3RzIHdpdGggaXQncyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uCgoxLiBbSW5zdGFsbCBQb3J0bWFuXSgjaW5zdGFsbGF0aW9uKQoyLiBSdW4gcG9ydG1hbiBvbiB5b3VyIE9wZW5BUEkgc3BlYywgaWU6IAotIGBucHggcG9ydG1hbiAtbCBteS1vcGVuYXBpLXNwZWMueWFtbGAgCi0gKGlmIHlvdXIgc3BlYyBpcyBob3N0ZWQgdXNlIHRoZSBgLXVgIHBhcmFtZXRlciwgaWU6CiAgLSBgbnB4IHBvcnRtYW4gLXUgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uYAoKVGhpcyB3aWxsIGdlbmVyYXRlIGEgcG9zdG1hbiBjb2xsZWN0aW9uIHRoYXQgY29udGFpbnMgYSByZXF1ZXN0IGZvciBldmVyeSBtZXRob2Q6ZW5kcG9pbnQgY29tYmluYXRpb24gZGVmaW5lZCBpbiB5b3VyIHNwZWMsIGFuZCBpbmNsdWRlIGEgc2V0IG9mICJDb250cmFjdCBUZXN0cyIgZm9yIGVhY2ggb25lLiAgWW91IGNhbiBsZWFybiBtb3JlIGFib3V0IGNvbnRyYWN0IHRlc3RzLCBhbmQgaG93IHRvIGV4YW1pbmUgdGhlIGdlbmVyYXRlZCBjb2xsZWN0aW9uIFtoZXJlXSguL2V4YW1wbGVzL3Rlc3RzdWl0ZS1jb250cmFjdC10ZXN0cy9yZWFkbWUubWQpLgoKKFJ1bm5pbmcgcG9ydG1hbiB3aXRoIG5vIGV4cGxpY2l0IGNvbmZpZ3VyYXRpb24gaXMgdGhlIHNhbWUgYXMgcnVubmluZyBpdCB3aXRoIFt0aGlzIGNvbmZpZ3VyYXRpb24gZmlsZV0oLi9leGFtcGxlcy90ZXN0c3VpdGUtY29udHJhY3QtdGVzdHMvZGVmYXVsdC1wb3J0bWFuLWNvbmZpZy5qc29uKSkKCkFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gY29udmVydCBmcm9tIE9wZW5BUEkgdG8gUG9zdG1hbiBjYW4gYmUgZm91bmQgaW4gdGhlIFtvcGVuYXBpLXRvLXBvc3RtYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0bWFubGFicy9vcGVuYXBpLXRvLXBvc3RtYW4vYmxvYi9kZXZlbG9wL09QVElPTlMubWQpIHBhY2thZ2UgZG9jdW1lbnRhdGlvbi4KQWxsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBmaWx0ZXIgZmxhZ3MvdGFncy9tZXRob2RzL29wZXJhdGlvbnMvLi4uIGZyb20gT3BlbkFQSSBjYW4gYmUgZm91bmQgaW4gdGhlIFtvcGVuYXBpLWZvcm1hdF0oaHR0cHM6Ly9naXRodWIuY29tL3RoaW04MS9vcGVuYXBpLWZvcm1hdCNvcGVuYXBpLWZpbHRlci1vcHRpb25zKSBwYWNrYWdlIGRvY3VtZW50YXRpb24gb3IgdXNpbmcgdGhlIG9ubGluZSBbb3BlbmFwaS1mb3JtYXQgcGxheWdyb3VuZF0oaHR0cHM6Ly9vcGVuYXBpLWZvcm1hdC1wbGF5Z3JvdW5kLnZlcmNlbC5hcHAvKS4KCiMjIEluc3RhbGxhdGlvbgoKIyMjIExvY2FsIEluc3RhbGxhdGlvbiAocmVjb21tZW5kZWQpCgpZb3UgY2FuIGFkZCB0aGUgUG9ydG1hbiBDTEkgdG8gdGhlIGBub2RlX21vZHVsZXNgIGJ5IHVzaW5nOgoKYGBgc2hlbGwKJCBucG0gaW5zdGFsbCAtLXNhdmUgQGFwaWRlY2svcG9ydG1hbgpgYGAKCm9yIHVzaW5nIHlhcm46CgpgYGBzaGVsbAokIHlhcm4gYWRkIEBhcGlkZWNrL3BvcnRtYW4KYGBgCgpOb3RlIHRoYXQgdGhpcyB3aWxsIHJlcXVpcmUgeW91IHRvIHJ1biB0aGUgUG9ydG1hbiBDTEkgd2l0aCBgbnB4IEBhcGlkZWNrL3BvcnRtYW4gLWwgeW91ci1vcGVuYXBpLWZpbGUueWFtbGAgb3IsIGlmCnlvdSBhcmUgdXNpbmcgYW4gb2xkZXIgdmVyc2lvbiBvZiBucG0sIGAuL25vZGVfbW9kdWxlcy8uYmluL3BvcnRtYW4gLWwgeW91ci1vcGVuYXBpLWZpbGUueWFtbGAuCgojIyMgR2xvYmFsIEluc3RhbGxhdGlvbgoKYGBgc2hlbGwKJCBucG0gaW5zdGFsbCAtZyBAYXBpZGVjay9wb3J0bWFuCmBgYAoKIyMjIE5QWCB1c2FnZQoKVG8gZXhlY3V0ZSB0aGUgQ0xJIHdpdGhvdXQgaW5zdGFsbGluZyBpdCB2aWEgbnBtLCB1c2UgdGhlIG5weCBtZXRob2QuCgpgYGBzaGVsbAokIG5weCBAYXBpZGVjay9wb3J0bWFuIC1sIHlvdXItb3BlbmFwaS1maWxlLnlhbWwKYGBgCgojIyBDTEkgVXNhZ2UKCmBgYApVc2FnZTogLXUgPHVybD4gLWwgPGxvY2FsPiAtYiA8YmFzZVVybD4gLXQgPGluY2x1ZGVUZXN0cz4KCk9wdGlvbnM6CiAtLWhlbHAgICAgICAgICAgICAgICAgICAgICBTaG93IGhlbHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgIFNob3cgdmVyc2lvbiBudW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXQogLS11cmwsLXUgICAgICAgICAgICAgICAgICAgVVJMIG9mIE9BUyB0byBwb3J0IHRvIFBvc3RtYW4gY29sbGVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10KIC0tbG9jYWwsIC1sICAgICAgICAgICAgICAgIFVzZSBsb2NhbCBPQVMgdG8gcG9ydCB0byBQb3N0bWFuIGNvbGxlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAtLWJhc2VVcmwsIC1iICAgICAgICAgICAgICBPdmVycmlkZSBzcGVjIGJhc2VVcmwgdG8gdXNlIGluIFBvc3RtYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXQogLS1vdXRwdXQsIC1vICAgICAgICAgICAgICAgV3JpdGUgdGhlIFBvc3RtYW4gY29sbGVjdGlvbiB0byBhbiBvdXRwdXQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10KIC0tb2FPdXRwdXQgICAgICAgICAgICAgICAgIFdyaXRlIHRoZSAoZmlsdGVyZWQpIE9wZW5BUEkgZmlsZSB0byBhbiBvdXRwdXQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAtLXJ1bk5ld21hbiwgLW4gICAgICAgICAgICBSdW4gTmV3bWFuIG9uIG5ld2x5IGNyZWF0ZWQgY29sbGVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KIC0tbmV3bWFuUnVuT3B0aW9ucyAgICAgICAgIEpTT04gc3RyaW5naWZpZWQgb2JqZWN0IHRvIHBhc3Mgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgTmV3bWFuICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAtLW5ld21hbk9wdGlvbnNGaWxlICAgICAgICBQYXRoL1VSTCB0byBOZXdtYW4gb3B0aW9ucyBmaWxlIHRvIHBhc3Mgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgTmV3bWFuICAgICAgICAgICBbc3RyaW5nXQogLS1uZXdtYW5JdGVyYXRpb25EYXRhLCAtZCAgSXRlcmF0aW9uIGRhdGEgdG8gcnVuIE5ld21hbiB3aXRoIG5ld2x5IGNyZWF0ZWQgY29sbGVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10KIC0tbG9jYWxQb3N0bWFuICAgICAgICAgICAgIFVzZSBsb2NhbCBQb3N0bWFuIGNvbGxlY3Rpb24sIHNraXBzIE9wZW5BUEkgY29udmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAtLXN5bmNQb3N0bWFuICAgICAgICAgICAgICBVcGxvYWQgZ2VuZXJhdGVkIGNvbGxlY3Rpb24gdG8gUG9zdG1hbiAoZGVmYXVsdDogZmFsc2UpICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KIC0tc3luY1Bvc3RtYW5Db2xsZWN0aW9uSWRzIFN5bmNocm9uaXNlcyB0aGUgSURzIG9mIG5ld2x5IGNyZWF0ZWQgcG9zdG1hbiBjb2xsZWN0aW9ucyB3aXRoIHRob3NlIGFscmVhZHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIFBvc3RtYW4sIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHVzZSBQb3N0bWFuIHB1bGwgcmVxdWVzdCAoZGVmYXVsdDogZmFsc2UpICAgIFtib29sZWFuXQogLS1wb3N0bWFuRmFzdFN5bmMgICAgICAgICAgUG9zdG1hbiBzeW5jIGNyZWF0ZXMgbmV3IGNvbGxlY3Rpb24gKG5ldyBVSUQpLGluc3RlYWQgb2YgdXBkYXRlIChkZWZhdWx0OiBmYWxzZSkgW2Jvb2xlYW5dCiAtLXBvc3RtYW5SZWZyZXNoQ2FjaGUgICAgICBQb3N0bWFuIHN5bmMgd2lsbCByZWZyZXNoIGFsbCBsb2NhbCBjYWNoZWQgUG9zdG1hbiBBUEkgZGF0YSAoZGVmYXVsdDogZmFsc2UpICAgICBbYm9vbGVhbl0KIC0tcG9zdG1hblVpZCwgLXAgICAgICAgICAgIFBvc3RtYW4gY29sbGVjdGlvbiBVSUQgdG8gdXBsb2FkIHdpdGggdGhlIGdlbmVyYXRlZCBQb3N0bWFuIGNvbGxlY3Rpb24gICAgICAgICAgIFtzdHJpbmddCiAtLXBvc3RtYW5Xb3Jrc3BhY2VOYW1lICAgICBQb3N0bWFuIFdvcmtzcGFjZSBuYW1lIHRvIHRhcmdldCB0aGUgdXBsb2FkIG9mIHRoZSBnZW5lcmF0ZWQgUG9zdG1hbiBjb2xsZWN0aW9uICBbc3RyaW5nXQogLS1pbmNsdWRlVGVzdHMsIC10ICAgICAgICAgSW5qZWN0IFBvcnRtYW4gdGVzdCBzdWl0ZSAoZGVmYXVsdDogdHJ1ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dCiAtLWJ1bmRsZUNvbnRyYWN0VGVzdHMgICAgICBCdW5kbGUgUG9ydG1hbiBjb250cmFjdCB0ZXN0cyBpbiBhIHNlcGFyYXRlIGZvbGRlciBpbiBQb3N0bWFuIChkZWZhdWx0OiBmYWxzZSkgICBbYm9vbGVhbl0KIC0tcG9ydG1hbkNvbmZpZ0ZpbGUsIC1jICAgIFBhdGgvVVJMIHRvIFBvcnRtYW4gc2V0dGluZ3MgY29uZmlnIGZpbGUgKHBvcnRtYW4tY29uZmlnLmpzb24pICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAtLXBvc3RtYW5Db25maWdGaWxlLC1zICAgICBQYXRoIHRvIG9wZW5hcGktdG8tcG9zdG1hbiBjb25maWcgZmlsZSAocG9zdG1hbi1jb25maWcuanNvbikgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXQogLS1maWx0ZXJGaWxlICAgICAgICAgICAgICAgUGF0aC9VUkwgdG8gb3BlbmFwaS1mb3JtYXQgY29uZmlnIGZpbGUgKG9hcy1mb3JtYXQtZmlsdGVyLmpzb24pICAgICAgICAgICAgICAgICAgW3N0cmluZ10KIC0tZW52RmlsZSAgICAgICAgICAgICAgICAgIFBhdGggdG8gdGhlIC5lbnYgZmlsZSB0byBpbmplY3QgZW52aXJvbm1lbnQgdmFyaWFibGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAtLWNvbGxlY3Rpb25OYW1lICAgICAgICAgICBPdmVyd3JpdGUgT3BlbkFQSSB0aXRsZSB0byBzZXQgdGhlIFBvc3RtYW4gY29sbGVjdGlvbiBuYW1lICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXQogLS1jbGlPcHRpb25zRmlsZSAgICAgICAgICAgUGF0aC9VUkwgdG8gUG9ydG1hbiBDTEkgb3B0aW9ucyBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXQogLS1pZ25vcmVDaXJjdWxhclJlZnMgICAgICAgSWdub3JlIGNpcmN1bGFyIHJlZmVyZW5jZXMgaW4gT3BlbkFQSSBzcGVjIChkZWZhdWx0OiBmYWxzZSkgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dCiAtLWxvZ0Fzc2lnblZhcmlhYmxlcyAgICAgICBUb2dnbGUgbG9nZ2luZyBvZiBhc3NpZ25lZCB2YXJpYWJsZXMgKGRlZmF1bHQ6IHRydWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KIC0taW5pdCAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyZSBQb3J0bWFuIENMSSBvcHRpb25zIGluIGFuIGludGVyYWN0aXZlIG1hbm5lciAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAtLWV4dHJhVW5rbm93bkZvcm1hdHMgICAgICBBZGQgZXh0cmEgdW5rbm93biBmb3JtYXRzIHRvIGpzb24gc2NoZW1hIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJyYXldCmBgYAoKIyMjIEVudmlyb25tZW50IHZhcmlhYmxlcyBhcyBQb3N0bWFuIHZhcmlhYmxlcwoKUG9ydG1hbiB1c2VzIGBkb3RlbnZgIHRvIG5vdCBvbmx5IGFjY2VzcyB2YXJpYWJsZXMgZm9yIGZ1bmN0aW9uYWxpdHksIGJ1dCB5b3UgY2FuIGFsc28gYWRkIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IHlvdSdkIGxpa2UgZGVjbGFyZWQgd2l0aGluIHlvdXIgUG9zdG1hbiBlbnZpcm9ubWVudC4KU2ltcGx5IHByZWZpeCBhbnkgdmFyaWFibGUgbmFtZSB3aXRoIGBQT1JUTUFOX2AsIGFuZCBpdCB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgdXNlIGluIHlvdXIgUG9zdG1hbiBjb2xsZWN0aW9uIGFzIHRoZSBjYW1lbC1jYXNlZCBlcXVpdmFsZW50LiBGb3IgZXhhbXBsZToKCmBgYApQT1JUTUFOX0NPTlNVTUVSX0lEPXRlc3RfdXNlcl9pZApgYGAKCndpbGwgYmUgYXZhaWxhYmxlIGluIHlvdXIgY29sbGVjdGlvbiBvciB0ZXN0cyBieSByZWZlcmVuY2luZzoKCmBgYAp7e2NvbnN1bWVySWR9fQpgYGAKCkl0IGlzIHBvc3NpYmxlIHRvIHNldCBhIHNwZWMtc3BlY2lmaWMgYC5lbnZgIGZpbGUsIHRoYXQgbGl2ZXMgbmV4dCB0byB5b3VyIGNvbmZpZyBmaWxlcy4gVGhlIHBhdGggY2FuIGJlIHBhc3NlZCBpbiB2aWEgYGVudkZpbGVgIGNsaSBvcHRpb24uClRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIFBvcnRtYW4gbWFuYWdpbmcgbXVsdGlwbGUgc3BlY3MgdGhhdCBoYXZlIHVuaXF1ZSBlbnZpcm9ubWVudCByZXF1aXJlbWVudHMuCgpCeSBkZWZhdWx0LCBQb3J0bWFuIHdpbGwgbGV2ZXJhZ2UgYW55IEVOVklST05NRU5UIHZhcmlhYmxlIHRoYXQgaXMgZGVmaW5lZCB0aGF0IHN0YXJ0cyB3aXRoIGBQT1JUTUFOX2AuCgpBbm90aGVyIG9wdGlvbiB0byBzZXQgdmFyaWFibGVzIGlzIGJ5IGNvbmZpZ3VyaW5nIHRoZW0gYXMgYGNvbGxlY3Rpb25WYXJpYWJsZXNgIGluIHRoZSBbZ2xvYmFscyBzZWN0aW9uXSgjcG9ydG1hbi0tLWdsb2JhbHMtcHJvcGVydHkpIG9mIHlvdXIgUG9ydG1hbiBjb25maWd1cmF0aW9uLgoKIyMjIENMSSBPcHRpb25zCgojIyMjIyMgSW5pdGlhbGl6ZSBQb3J0bWFuIENMSSBjb25maWd1cmF0aW9uCgpgYGAKcG9ydG1hbiAtLWluaXQKYGBgCgpUaGUgYGluaXRgIG9wdGlvbiB3aWxsIGhlbHAgeW91IHRvIGNvbmZpZ3VyZSB0aGUgY2xpQ29uZmlnIG9wdGlvbnMgYW5kIHB1dCB0aGUgZGVmYXVsdCBjb25maWcsIGVudiBmaWxlIGluIHBsYWNlIHRvIGtpY2stc3RhcnQgdGhlIHVzYWdlIG9mIFBvcnRtYW4uCgojIyMjIyMgUGFzcyBpbiB0aGUgcmVtb3RlbHkgaG9zdGVkIHNwZWMKCmBgYApwb3J0bWFuIC11IGh0dHBzOi8vc3BlY3MuYXBpZGVjay5jb20vY3JtLnltbApgYGAKCiMjIyMjIyBPdmVyd3JpdGUgdGhlIGJhc2VVcmwgaW4gc3BlYyBhbmQgcnVuIE5ld21hbgoKYGBgCnBvcnRtYW4gLXUgaHR0cHM6Ly9zcGVjcy5hcGlkZWNrLmNvbS9jcm0ueW1sIC1iIGh0dHA6Ly9sb2NhbGhvc3Q6MzA1MCAtbiB0cnVlCmBgYAoKIyMjIyMjIFBhdGggcGFzcyB0byBhIGxvY2FsIGRhdGEgZmlsZSBmb3IgTmV3bWFuIHRvIHVzZSBmb3IgaXRlcmF0aW9ucwoKYGBgCnBvcnRtYW4gLXUgaHR0cHM6Ly9zcGVjcy5hcGlkZWNrLmNvbS9jcm0ueW1sIC1iIGh0dHA6Ly9sb2NhbGhvc3Q6MzA1MCAtbiB0cnVlIC1kIC4vdG1wL25ld21hbi9kYXRhL2NybS5qc29uCmBgYAoKIyMjIyMjIFBhc3MgdGhlIHBhdGggdG8gYSBsb2NhbCBzcGVjICh1c2VmdWwgd2hlbiB1cGRhdGluZyB5b3VyIHNwZWNzKSBhbmQgb3V0cHV0IFBvc3RtYW4gY29sbGVjdGlvbiBsb2NhbGx5CgpgYGAKcG9ydG1hbiAtbCAuL3RtcC9zcGVjcy9jcm0ueW1sIC1vIC4vdG1wL3NwZWNzL2NybS5wb3N0bWFuLmpzb24KYGBgCgojIyMjIyMgU2tpcCB0ZXN0cyBhbmQganVzdCBnZW5lcmF0ZSBjb2xsZWN0aW9uCgpgYGAKcG9ydG1hbiAtbCAuL3RtcC9zcGVjcy9jcm0ueW1sIC10IGZhbHNlCmBgYAoKIyMjIyMjIEZpbHRlciBPcGVuQVBJIGFuZCBnZW5lcmF0ZSBjb2xsZWN0aW9uCgpgYGAKcG9ydG1hbiAtdSBodHRwczovL3NwZWNzLmFwaWRlY2suY29tL2NybS55bWwgLS1maWx0ZXJGaWxlIGV4YW1wbGVzL2NsaS1maWx0ZXJpbmcvb2FzLWZvcm1hdC1maWx0ZXIuanNvbgpgYGAKCkZvciBtb3JlIGRldGFpbHMsIHJldmlldyB0aGUgW2NsaS1maWx0ZXJpbmcgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL2NsaS1maWx0ZXJpbmcpLgoKIyMjIyMjIEFkZCBleHRyYSBmb3JtcyB0byBKc29uIHNjaGVtYSB2YWxpZGF0aW9uCgpgYGAKcG9ydG1hbiAtbCAuL3RtcC9zcGVjcy9jcm0ueW1sIC1vIC4vdG1wL3NwZWNzL2NybS5wb3N0bWFuLmpzb24gLS1leHRyYVVua25vd25Gb3JtYXRzIHVsaWQgb25lIHR3bwpgYGAKClRoaXMgbWFrZXMgdGhlIHNjaGVtYSB2YWxpZGF0aW9uIG1vcmUgbGVuaWVudCwgYW5kIHNvbHZlcyBwcm9ibGVtcyB3aXRoIHVua25vd24gZm9ybWF0cwoKIyMjIyMjIFVwbG9hZCBuZXdseSBnZW5lcmF0ZWQgY29sbGVjdGlvbiB0byBQb3N0bWFuLCB3aGljaCB3aWxsIHVwc2VydCB0aGUgY29sbGVjdGlvbiwgYmFzZWQgb24gdGhlIGNvbGxlY3Rpb24gbmFtZQoKYGBgCnBvcnRtYW4gLWwgLi90bXAvc3BlY3MvY3JtLnltbCAtLXN5bmNQb3N0bWFuCmBgYAoKVXBsb2FkIG5ld2x5IGdlbmVyYXRlZCBjb2xsZWN0aW9uIHRvIFBvc3RtYW4gdXNpbmcgdGhlIGNvbGxlY3Rpb24gVUlEIHRvIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcuCgpgYGAKcG9ydG1hbiAtbCAuL3RtcC9zcGVjcy9jcm0ueW1sIC0tc3luY1Bvc3RtYW4gLXAgOTYwMTk2M2EtNTNmZi00YWFhLTkyYTAtMmU3MGE4YTJhNzQ4CmBgYAoKV2hlbiBhIGNvbGxlY3Rpb24gZ2V0cyBsYXJnZSwgdGhlIFBvc3RtYW4gQVBJIHdpbGwgY29tcGFyZSBhbGwgdGhlIHJlcXVlc3RzIHdoZW4gdXBkYXRpbmcgdGhlIGNvbGxlY3Rpb24uIFRoaXMgY2FuIHRha2Ugc29tZSB0aW1lIGV2ZW4gcmVzdWx0IGluIDV4eCBlcnJvcnMuClRvIG92ZXJjb21lIHRoaXMsIHlvdSBjYW4gdXNlIHRoZSBgLS1wb3N0bWFuRmFzdFN5bmNgIG9wdGlvbi4gVGhpcyBvcHRpb24gd2lsbCBzeW5jIHlvdXIgY29sbGVjdGlvbiB0byBQb3N0bWFuIGJ5IHVzaW5nICJkZWxldGUiIGFuZCAiY3JlYXRlIiBvcGVyYXRpb25zIGluc3RlYWQgb2YgdGhlICJ1cGRhdGUiLgoKUkVNQVJLOiBVc2luZyBgLS1wb3N0bWFuRmFzdFN5bmNgIHdpbGwgcmVzdWx0IGluIGEgbmV3IFBvc3RtYW4gY29sbGVjdGlvbiBhbmQgUG9zdG1hbiBVSUQgZm9yIGVhY2ggc3luYy4KCmBgYApwb3J0bWFuIC1sIC4vdG1wL3NwZWNzL2NybS55bWwgLS1zeW5jUG9zdG1hbiAtLXBvc3RtYW5GYXN0U3luYwpgYGAKClBvcnRtYW4gY2FjaGVzIGEgc2V0IG9mIFBvc3RtYW4gQVBJIGRhdGEgdG8gZmFjaWxpdGF0ZSBmYXN0ZXIgbG9va3VwcyBhbmQgdXBsb2FkcywgcHJldmVudGluZyB1bm5lY2Vzc2FyeSBjb25uZWN0aW5nIHRvIHRoZSBQb3N0bWFuIEFQSS4KSW4gY2FzZSB5b3UgbmVlZCB0byByZXNldCB0aGUgY2FjaGUgeW91IHNpbXBseSByZW1vdmUgdGhlIGAucG9ydG1hbi5jYWNoZS5qc29uYCBmaWxlIG9yIHNldCB0aGUgYC0tcG9zdG1hblJlZnJlc2hDYWNoZWAgb3B0aW9uIHdoZW4gcnVubmluZyB0aGUgUG9zdG1hbiBzeW5jLgoKYGBgCnBvcnRtYW4gLWwgLi90bXAvc3BlY3MvY3JtLnltbCAtLXN5bmNQb3N0bWFuIC0tcG9zdG1hblJlZnJlc2hDYWNoZQpgYGAKCiMjIyMjIyBQYXNzIGN1c3RvbSBwYXRocyBmb3IgY29uZmlnIGZpbGVzCgpBbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGNvbnZlcnQgZnJvbSBPcGVuQVBJIHRvIFBvc3RtYW4gY2FuIGJlIG9uIHRoZSBbb3BlbmFwaS10by1wb3N0bWFuXShodHRwczovL2dpdGh1Yi5jb20vcG9zdG1hbmxhYnMvb3BlbmFwaS10by1wb3N0bWFuL2Jsb2IvZGV2ZWxvcC9PUFRJT05TLm1kKSBwYWNrYWdlIGRvY3VtZW50YXRpb24uClBvcnRtYW4gcHJvdmlkZXMgYSBkZWZhdWx0IG9wZW5hcGktdG8tcG9zdG1hbiBjb25maWd1cmF0aW9uIFtwb3N0bWFuLWNvbmZpZy5kZWZhdWx0Lmpzb25dKHBvc3RtYW4tY29uZmlnLmRlZmF1bHQuanNvbiksIHdoaWNoIHdpbGwgYmUgdXNlZCBpZiBubyBjdXN0b20gY29uZmlnIGAtLXBvc3RtYW5Db25maWdGaWxlYCBpcyBwYXNzZWQuCgpQb3J0bWFuIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBKU09OIGZvcm1hdDoKCmBgYApwb3J0bWFuIC11IGh0dHBzOi8vc3BlY3MuYXBpZGVjay5jb20vY3JtLnltbCAtYyAuL3RtcC9jcm0vcG9ydG1hbi1jb25maWcuanNvbiAtcyAuL2NvbW1vbi9wb3N0bWFuLWNvbmZpZy5qc29uCmBgYAoKUG9ydG1hbiBjb25maWd1cmF0aW9uIGZpbGUgaW4gWUFNTCBmb3JtYXQ6CgpgYGAKcG9ydG1hbiAtdSBodHRwczovL3NwZWNzLmFwaWRlY2suY29tL2NybS55bWwgLWMgLi90bXAvY3JtL3BvcnRtYW4tY29uZmlnLnlhbWwgLXMgLi9jb21tb24vcG9zdG1hbi1jb25maWcuanNvbgpgYGAKCiMjIyMjIyBQYXNzIGFsbCBDTEkgb3B0aW9ucyBhcyBKU09OL1lBTUwgZmlsZQoKQWxsIHRoZSBDTEkgb3B0aW9ucyBjYW4gYmUgbWFuYWdlZCBpbiBhIHNlcGFyYXRlIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgcGFzc2VkIGFsb25nIHRvIHRoZSBwb3J0bWFuIGNvbW1hbmQuIFRoaXMgd2lsbAptYWtlIGNvbmZpZ3VyYXRpb24gZWFzaWVyLCBlc3BlY2lhbGx5IGluIENJL0NEIGltcGxlbWVudGF0aW9ucy4KClBvcnRtYW4gQ0xJIG9wdGlvbnMgc2V0dGluZ3MgaW4gSlNPTiBmb3JtYXQKCmBgYApwb3J0bWFuIC0tY2xpT3B0aW9uc0ZpbGUgLi9leGFtcGxlcy9jbGktb3B0aW9ucy9wb3J0bWFuLWNsaS1vcHRpb25zLmpzb24KYGBgCgpQb3J0bWFuIENMSSBvcHRpb25zIHNldHRpbmdzIGluIFlBTUwgZm9ybWF0CgpgYGAKcG9ydG1hbiAtLWNsaU9wdGlvbnNGaWxlIC4vZXhhbXBsZXMvY2xpLW9wdGlvbnMvcG9ydG1hbi1jbGktb3B0aW9ucy55YW1sCmBgYAoKQWxsIHRoZSBhdmFpbGFibGUgUG9ydG1hbiBDTEkgb3B0aW9ucyBjYW4gYmUgdXNlZCBpbiB0aGUgY29uZmlnIGZpbGUuCkJ5IHBhc3NpbmcgdGhlIENMSSBvcHRpb25zIGFzIHBhcmFtZXRlciwgeW91IGNhbiBvdmVyd3JpdGUgdGhlIGRlZmluZWQgQ0xJIG9wdGlvbnMgZGVmaW5lZCBpbiB0aGUgZmlsZS4KCkZvciBtb3JlIGRldGFpbHMsIHJldmlldyB0aGUgW2NsaS1vcHRpb25zIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlkZWNrLWxpYnJhcmllcy9wb3J0bWFuL3RyZWUvbWFpbi9leGFtcGxlcy9jbGktb3B0aW9ucykuCgojIyMjIyMgUnVuIE5ld21hbiB3aXRoIE5ld21hbiBvcHRpb25zCgpBbGwgW05ld21hbiBjb25maWd1cmF0aW9uIG9wdGlvbnNdKGh0dHBzOi8vbGVhcm5pbmcucG9zdG1hbi5jb20vZG9jcy9ydW5uaW5nLWNvbGxlY3Rpb25zL3VzaW5nLW5ld21hbi1jbGkvY29tbWFuZC1saW5lLWludGVncmF0aW9uLXdpdGgtbmV3bWFuLyNvcHRpb25zKSB0byBydW4gTmV3bWFuIGNhbiBiZSBwYXNzZWQgYWxvbmcgdGhyb3VnaCBQb3J0bWFuLgoKYGBgCnBvcnRtYW4gLXUgaHR0cHM6Ly9zcGVjcy5hcGlkZWNrLmNvbS9jcm0ueW1sIC1jIC4vdG1wL2NybS9wb3J0bWFuLWNvbmZpZy5qc29uIC0tcnVuTmV3bWFuIC0tbmV3bWFuT3B0aW9uc0ZpbGUgLi90bXAvY3JtL25ld21hbi1vcHRpb25zLmpzb24KYGBgCgpGb3IgbW9yZSBkZXRhaWxzLCByZXZpZXcgdGhlIFtjbGktb3B0aW9ucyBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vYXBpZGVjay1saWJyYXJpZXMvcG9ydG1hbi90cmVlL21haW4vZXhhbXBsZXMvY2xpLW9wdGlvbnMpLgoKTk9URTogTmV3bWFuIGlzIHNldCB0byBpZ25vcmUgcmVkaXJlY3RzIHRvIGFsbG93IGZvciB0ZXN0aW5nIHJlZGlyZWN0IHJlc3BvbnNlIGNvZGVzLiBJZiB5b3UgYXJlIHJ1bm5pbmcgY29sbGVjdGlvbnMgd2l0aGluIFBvc3RtYW4gVUksIHlvdSdsbCBuZWVkIHRvIGVuc3VyZSBQb3N0bWFuIGlzIHNldCB0byB0aGUgc2FtZSwgb3IgeW91ciByZWRpcmVjdCB0ZXN0cyB3aWxsIGZhaWwuCgo+IFBvc3RtYW4gPiBQcmVmZXJlbmNlcyA+IEF1dG9tYXRpY2FsbHkgZm9sbG93IHJlZGlyZWN0cyA+IE9GRgoKIyMjIE91dHB1dAoKV2l0aG91dCBzcGVjaWZ5aW5nIHRoZSBvdXRwdXQgbG9jYXRpb24sIHlvdXIgZ2VuZXJhdGVkIFBvc3RtYW4gQ29sbGVjdGlvbiBpcyB3cml0dGVuIHRvIGAuL3RtcC9jb252ZXJ0ZWQvJHtzcGVjTmFtZX0uanNvbmAgaWYgeW91IGFyZSBtYW51YWxseSBpbXBvcnRpbmcgdG8gUG9zdG1hbiBvciBuZWVkIHRvIGluc3BlY3QgZm9yIGRlYnVnZ2luZy4KCkJ5IHVzaW5nIGAtb2Agb3IgYC0tb3V0cHV0YCBwYXJhbWV0ZXIsIHlvdSBjYW4gZGVmaW5lIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgUG9zdG1hbiBjb2xsZWN0aW9uIHdpbGwgYmUgd3JpdHRlbi4KCmBgYApwb3J0bWFuIC1sIC4vdG1wL3NwZWNzL2NybS55bWwgLW8gLi90bXAvc3BlY3MvY3JtLlBvc3RtYW4uanNvbgpgYGAKCiMjIFBvcnRtYW4gc2V0dGluZ3MKClRoZSBQb3J0bWFuIHNldHRpbmdzIGNvbnNpc3Qgb3V0IG9mIG11bHRpcGxlIHBhcnRzOgoKLSAqKnZlcnNpb24qKiA6IHdoaWNoIHJlZmVycyB0byB0aGUgSlNPTiBQb3J0bWFuIGNvbmZpZ3VyYXRpb24gdmVyc2lvbi4KLSAqKnRlc3RzKiogOiB3aGljaCByZWZlcnMgdG8gdGhlIGRlZmluaXRpb25zIGZvciB0aGUgZ2VuZXJhdGVkIGNvbnRyYWN0ICYgdmFyaWFuY2UgdGVzdHMuCiAgLSAqKmNvbnRyYWN0VGVzdHMqKiA6IHJlZmVycyB0byB0aGUgb3B0aW9ucyB0byBlbmFibGVkIGF1dG9nZW5lcmF0ZWQgY29udHJhY3QgdGVzdHMuCiAgLSAqKmNvbnRlbnRUZXN0cyoqIDogcmVmZXJzIHRvIHRoZSBhZGRpdGlvbmFsIFBvc3RtYW4gdGVzdHMgdGhhdCBjaGVjayB0aGUgY29udGVudC4KICAtICoqdmFyaWF0aW9uVGVzdHMqKiA6IHJlZmVycyB0byB0aGUgb3B0aW9ucyB0byBkZWZpbmUgdmFyaWF0aW9uIHRlc3RzLgogIC0gKippbnRlZ3JhdGlvblRlc3RzKiogOiByZWZlcnMgdG8gdGhlIG9wdGlvbnMgdG8gZGVmaW5lIGludGVncmF0aW9uIHRlc3RzLgogIC0gKipleHRlbmRUZXN0cyoqIDogcmVmZXJzIHRvIHRoZSBjdXN0b20gYWRkaXRpb25zIG9mIG1hbnVhbGx5IGNyZWF0ZWQgUG9zdG1hbiB0ZXN0cy4KLSAqKmFzc2lnblZhcmlhYmxlcyoqIDogd2hpY2ggcmVmZXJzIHRvIHNldHRpbmcgUG9zdG1hbiBjb2xsZWN0aW9uIHZhcmlhYmxlcyBmb3IgZWFzaWVyIGF1dG9tYXRpb24uCi0gKipvdmVyd3JpdGVzKiogOiB3aGljaCByZWZlcnMgdG8gdGhlIGN1c3RvbSBhZGRpdGlvbnMvbW9kaWZpY2F0aW9ucyBvZiB0aGUgT3BlbkFQSS9Qb3N0bWFuIHJlcXVlc3QgZGF0YS4KLSAqKm9wZXJhdGlvblByZVJlcXVlc3RTY3JpcHRzKiogOiB3aGljaCByZWZlcnMgdG8gaW5qZWN0aW5nIFBvc3RtYW4gUHJlLXJlcXVlc3QgU2NyaXB0cyBmb3IgcmVxdWVzdHMuCi0gKipnbG9iYWxzKiogOiB3aGljaCByZWZlcnMgdG8gdGhlIGN1c3RvbWl6YXRpb24gdGhhdCBhcHBsaWVzIGZvciB0aGUgd2hvbGUgUG9zdG1hbiBjb2xsZWN0aW9uLgoKIyMjIFBvcnRtYW4gdGFyZ2V0aW5nCgpJdCBpcyBwb3NzaWJsZSB0byBpbmplY3QgUG9zdG1hbiB0ZXN0cyBhbmQgcHJlLXJlZ2lzdGVyIHNjcmlwdHMsIGFzc2lnbiB2YXJpYWJsZXMgYW5kIG92ZXJ3cml0ZSBxdWVyeSBwYXJhbXMsIGhlYWRlcnMsIHJlcXVlc3QgYm9keSBkYXRhIHdpdGggdmFsdWVzLgoKVG8gYmUgYWJsZSB0byBkbyB0aGlzIHZlcnkgc3BlY2lmaWNhbGx5LCB0aGVyZSBhcmUgb3B0aW9ucyB0byBkZWZpbmUgdGhlIHRhcmdldHM6CgotICoqb3BlbkFwaU9wZXJhdGlvbklkIChTdHJpbmcpKiogOiBSZWZlcmVuY2VzIHRvIHRoZSBPcGVuQVBJIG9wZXJhdGlvbklkLCBleGFtcGxlOiBgbGVhZHNBbGxgCi0gKipvcGVuQXBpT3BlcmF0aW9uSWRzIChBcnJheSkqKiA6IFJlZmVyZW5jZXMgdG8gYW4gYXJyYXkgb2YgT3BlbkFQSSBvcGVyYXRpb25JZHMsIGV4YW1wbGU6IGBbJ2xlYWRzQWxsJywgJ2NvbXBhbmllc0FsbCcsICdjb250YWN0c0FsbCddYAotICoqb3BlbkFwaU9wZXJhdGlvbiAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byBhIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGgsIGV4YW1wbGU6IGBHRVQ6Oi9jcm0vbGVhZHNgCgotICoqZXhjbHVkZUZvck9wZXJhdGlvbnMgKEFycmF5KSoqIDogUmVmZXJlbmNlcyB0byBPcGVuQVBJIG9wZXJhdGlvbnMgdGhhdCB3aWxsIGJlIHNraXBwZWQgZm9yIHRhcmdldGluZy4gSXQgc3VwcG9ydHMgYm90aCB0aGUgYG9wZW5BcGlPcGVyYXRpb25JZGAgYW5kIGBvcGVuQXBpT3BlcmF0aW9uYCBmb3JtYXQsIGV4YW1wbGU6IGBbImxlYWRzQWRkIiwgIkdFVDo6L2NybS9sZWFkcy97aWR9Il1gCgpBbiBgb3BlbkFwaU9wZXJhdGlvbklkYCBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eS4gVG8gb2ZmZXIgc3VwcG9ydCBmb3IgT3BlbkFQSSBkb2N1bWVudHMgdGhhdCBkb24ndCBoYXZlIG9wZXJhdGlvbklkcywgd2UKaGF2ZSBhZGRlZCB0aGUgYG9wZW5BcGlPcGVyYXRpb25gIGRlZmluaXRpb24sIHdoaWNoIGlzIHRoZSB1bmlxdWUgY29tYmluYXRpb24gb2YgdGhlIE9wZW5BUEkgbWV0aG9kICYgcGF0aCwgd2l0aCBhIGA6OmAKc2VwYXJhdG9yIHN5bWJvbC4gVGhlIHRhcmdldGluZyBvcHRpb24gYGV4Y2x1ZGVGb3JPcGVyYXRpb25zYCBpcyByZWFsbHkgdXNlZnVsIHdoZW4gdXNpbmcgd2lsZGNhcmRzLCB0byBhbGxvdyBleGNsdXNpb25zIGZyb20gdGhlIHdpbGRjYXJkLgoKVGhpcyB3aWxsIGFsbG93IHRhcmdldGluZyBmb3IgdmVyeSBzcGVjaWZpYyBPcGVuQVBJIGl0ZW1zLgoKVG8gZmFjaWxpdGF0ZSBtYW5hZ2luZyB0aGUgZmlsdGVyaW5nLCB3ZSBoYXZlIGluY2x1ZGVkIHdpbGRjYXJkIG9wdGlvbnMgZm9yIHRoZSBgb3BlbkFwaU9wZXJhdGlvbmAgb3B0aW9uLCBzdXBwb3J0aW5nCnRoZSBtZXRob2RzICYgcGF0aCBkZWZpbml0aW9ucy4KClJFTUFSSzogQmUgc3VyZSB0byBwdXQgcXVvdGVzIGFyb3VuZCB0aGUgdGFyZ2V0IGRlZmluaXRpb24uCgotICoqU3RyaWN0IG1hdGNoaW5nKiogZXhhbXBsZTogYCJvcGVuQXBpT3BlcmF0aW9uIjogIkdFVDo6L2NybS9sZWFkcyIsYAogIFRoaXMgd2lsbCB0YXJnZXQgb25seSB0aGUgIkdFVCIgbWV0aG9kIGFuZCB0aGUgc3BlY2lmaWMgcGF0aCAiL2NybS9sZWFkcyIKCi0gKipNZXRob2Qgd2lsZGNhcmQgbWF0Y2hpbmcqKiBleGFtcGxlOiBgIm9wZW5BcGlPcGVyYXRpb24iOiAiKjo6L2NybS9sZWFkcyIsYAogIFRoaXMgd2lsbCB0YXJnZXQgYWxsIG1ldGhvZHMgKCdnZXQnLCAncHV0JywgJ3Bvc3QnLCAnZGVsZXRlJywgJ29wdGlvbnMnLCAnaGVhZCcsICdwYXRjaCcsICd0cmFjZScpIGFuZCB0aGUgc3BlY2lmaWMKICBwYXRoICIvY3JtL2xlYWRzIgoKLSAqKlBhdGggd2lsZGNhcmQgbWF0Y2hpbmcqKiBleGFtcGxlOiBgIm9wZW5BcGlPcGVyYXRpb24iOiAiR0VUOjovY3JtLyoiYAogIFRoaXMgd2lsbCB0YXJnZXQgb25seSB0aGUgIkdFVCIgbWV0aG9kIGFuZCBhbnkgcGF0aCBtYXRjaGluZyBhbnkgZm9sZGVyIGJlaGluZCB0aGUgIi9jcm0iLCBsaWtlICIvY3JtL2NvbXBhbmllcyIgYW5kCiAgIi9jcm0vbGVhZHMiLgoKLSAqKk1ldGhvZCAmIFBhdGggd2lsZGNhcmQgbWF0Y2hpbmcqKiBleGFtcGxlOiBgIm9wZW5BcGlPcGVyYXRpb24iOiAiKjo6L2NybS8qIixgCiAgQSBjb21iaW5hdGlvbiBvZiB3aWxkY2FyZHMgZm9yIHRoZSBtZXRob2QgYW5kIHBhdGggcGFydHMgaXMgZXZlbiBwb3NzaWJsZS4KCiMjIyBQb3J0bWFuIC0gYHRlc3RzYCBwcm9wZXJ0aWVzCgpUaGUgUG9ydG1hbiBgdGVzdHNgIGlzIHdoZXJlIHlvdSB3b3VsZCBkZWZpbmUgdGhlIHRlc3RzIHRoYXQgd291bGQgYmUgYXBwbGljYWJsZSBhbmQgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgUG9ydG1hbiwgYmFzZWQgb24gdGhlIE9wZW5BUEkgZG9jdW1lbnQuClRoZSBjb250cmFjdCB0ZXN0cyBhcmUgZ3JvdXBlZCBpbiBhbiBhcnJheSBvZiBgY29udHJhY3RUZXN0c2AuCgojIyMjIGNvbnRyYWN0VGVzdHMgb3B0aW9ucwoKLSAqKm9wZW5BcGlPcGVyYXRpb25JZCAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byB0aGUgT3BlbkFQSSBvcGVyYXRpb25JZC4gKGV4YW1wbGU6IGBsZWFkc0FsbGApCi0gKipvcGVuQXBpT3BlcmF0aW9uSWRzIChBcnJheSkqKiA6IFJlZmVyZW5jZXMgdG8gYW4gYXJyYXkgb2YgT3BlbkFQSSBvcGVyYXRpb25JZHMsIGV4YW1wbGU6IGBbJ2xlYWRzQWxsJywgJ2NvbXBhbmllc0FsbCcsICdjb250YWN0c0FsbCddYAotICoqb3BlbkFwaU9wZXJhdGlvbiAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byBhIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGggKGV4YW1wbGU6IGBHRVQ6Oi9jcm0vbGVhZHNgKQotICoqZXhjbHVkZUZvck9wZXJhdGlvbnMgKEFycmF5IHwgb3B0aW9uYWwpKiogOiBSZWZlcmVuY2VzIHRvIE9wZW5BUEkgb3BlcmF0aW9ucyB0aGF0IHdpbGwgYmUgc2tpcHBlZCBmb3IgdGFyZ2V0aW5nLCBleGFtcGxlOiBgWyJsZWFkc0FkZCIsICJHRVQ6Oi9jcm0vbGVhZHMve2lkfSJdYAoKLSAqKnN0YXR1c1N1Y2Nlc3MgKEJvb2xlYW4pKiogOiBBZGRzIHRoZSB0ZXN0IGlmIHRoZSByZXNwb25zZSBvZiB0aGUgUG9zdG1hbiByZXF1ZXN0IHJldHVybmVkIGEgMnh4Ci0gKipzdGF0dXNDb2RlIChCb29sZWFuLCBIVFRQIGNvZGUpKiogOiBBZGRzIHRoZSB0ZXN0IGlmIHRoZSByZXNwb25zZSBvZiB0aGUgUG9zdG1hbiByZXF1ZXN0IHJldHVybiBhIHNwZWNpZmljIHN0YXR1cyBjb2RlLgotICoqcmVzcG9uc2VUaW1lIChCb29sZWFuKSoqIDogQWRkcyB0aGUgdGVzdCB0byB2ZXJpZnkgaWYgdGhlIHJlc3BvbnNlIG9mIHRoZSBQb3N0bWFuIHJlcXVlc3QgaXMgcmV0dXJuZWQgd2l0aGluIGEgbnVtYmVyIG9mIG1zLgogIC0gKiptYXhNcyAobnVtYmVyKSoqIDogRGVmaW5lIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgbXMgZm9yIHRoZSBgcmVzcG9uc2VUaW1lYCBjaGVjay4KLSAqKmNvbnRlbnRUeXBlIChCb29sZWFuKSoqIDogQWRkcyB0aGUgdGVzdCBpZiB0aGUgcmVzcG9uc2UgaGVhZGVyIGlzIG1hdGNoaW5nIHRoZSBleHBlY3RlZCBjb250ZW50LXR5cGUgZGVmaW5lZCBpbiB0aGUgT3BlbkFQSSBzcGVjLgotICoqanNvbkJvZHkgKEJvb2xlYW4pKiogOiBBZGRzIHRoZSB0ZXN0IGlmIHRoZSByZXNwb25zZSBib2R5IGlzIG1hdGNoaW5nIHRoZSBleHBlY3RlZCBjb250ZW50LXR5cGUgZGVmaW5lZCBpbiB0aGUgT3BlbkFQSSBzcGVjLgotICoqc2NoZW1hVmFsaWRhdGlvbiAoQm9vbGVhbikqKiA6IEFkZHMgdGhlIHRlc3QgaWYgdGhlIHJlc3BvbnNlIGJvZHkgaXMgbWF0Y2hpbmcgdGhlIEpTT04gc2NoZW1hIGRlZmluZWQgaW4gdGhlIE9wZW5BUEkgc3BlYy4gVGhlIEpTT04gc2NoZW1hIGlzIGluc2VydGVkIGlubGluZSBpbiB0aGUgUG9zdG1hbiB0ZXN0LgogIC0gKiphZGRpdGlvbmFsUHJvcGVydGllcyAoQm9vbGVhbikqKiA6IEV4dGVuZCB0aGUgZXhwZWN0ZWQgSlNPTiBzY2hlbWEgdXNlZCBmb3IgdGhlIGBzY2hlbWFWYWxpZGF0aW9uYCBieSBzZXR0aW5nIGFsbCB0aGUgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzYC4KLSAqKmhlYWRlcnNQcmVzZW50IChCb29sZWFuKSoqIDogQWRkcyB0aGUgdGVzdCB0byB2ZXJpZnkgaWYgdGhlIFBvc3RtYW4gcmVzcG9uc2UgaGVhZGVyIGhhcyB0aGUgcmVxdWlyZWQgaGVhZGVyIG5hbWVzIHByZXNlbnQsIGxpa2UgZGVmaW5lZCBpbiB0aGUgT3BlbkFQSSBzcGVjLgoKRm9yIG1vcmUgZGV0YWlscywgcmV2aWV3IHRoZSBbY29udHJhY3QtdGVzdHMgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1jb250cmFjdC10ZXN0cykuCgojIyMjIHZhcmlhdGlvblRlc3RzIG9wdGlvbnMKCi0gKipvcGVuQXBpT3BlcmF0aW9uSWQgKFN0cmluZykqKiA6IFJlZmVyZW5jZXMgdG8gdGhlIE9wZW5BUEkgb3BlcmF0aW9uSWQgZm9yIHdoaWNoIGEgdmFyaWF0aW9uIHdpbGwgYmUgY3JlYXRlZC4gKGV4YW1wbGU6IGBsZWFkc0FsbGApCi0gKipvcGVuQXBpT3BlcmF0aW9uSWRzIChBcnJheSkqKiA6IFJlZmVyZW5jZXMgdG8gYW4gYXJyYXkgb2YgT3BlbkFQSSBvcGVyYXRpb25JZHMsIGV4YW1wbGU6IGBbJ2xlYWRzQWxsJywgJ2NvbXBhbmllc0FsbCcsICdjb250YWN0c0FsbCddYAotICoqb3BlbkFwaU9wZXJhdGlvbiAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byBhIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGggZm9yIHdoaWNoIGEgdmFyaWF0aW9uIHdpbGwgYmUgY3JlYXRlZC4gKGV4YW1wbGU6IGBHRVQ6Oi9jcm0vbGVhZHNgKQotICoqZXhjbHVkZUZvck9wZXJhdGlvbnMgKEFycmF5IHwgb3B0aW9uYWwpKiogOiBSZWZlcmVuY2VzIHRvIE9wZW5BUEkgb3BlcmF0aW9ucyB0aGF0IHdpbGwgYmUgc2tpcHBlZCBmb3IgdGFyZ2V0aW5nLCBleGFtcGxlOiBgWyJsZWFkc0FkZCIsICJHRVQ6Oi9jcm0vbGVhZHMve2lkfSJdYAotICoqb3BlbkFwaVJlc3BvbnNlIChTdHJpbmcgfCBvcHRpb25hbCkqKiA6IFJlZmVyZW5jZXMgdG8gdGhlIE9wZW5BUEkgcmVzcG9uc2Ugb2JqZWN0IGNvZGUvbmFtZSBmb3Igd2hpY2ggYSB2YXJpYXRpb24gd2lsbCBiZSBjcmVhdGVkLiAoZXhhbXBsZTogYCI0MDQiYCkuIElmIG5vdCBkZWZpbmVkLCB0aGUgMXN0IHJlc3BvbnNlIG9iamVjdCBmcm9tIE9wZW5BUEkgd2lsbCBiZSB0YWtlbiBhcyBleHBlY3RlZCByZXNwb25zZS4gSWYgdGhlIGNvbmZpZ3VyZWQgYG9wZW5BcGlSZXNwb25zZWAgY29kZSBpcyBub3QgZGVmaW5lZCBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudCwgUG9ydG1hbiB3aWxsIG5vdCBnZW5lcmF0ZSBhIHZhcmlhdGlvbiBmb3IgdGhlIHRhcmdldGVkIG9wZXJhdGlvbnMuCgotICoqb3ZlcndyaXRlcyoqIDogd2hpY2ggcmVmZXJzIHRvIHRoZSBjdXN0b20gYWRkaXRpb25zL21vZGlmaWNhdGlvbnMgb2YgdGhlIE9wZW5BUEkvUG9zdG1hbiByZXF1ZXN0IGRhdGEsIHNwZWNpZmljYWxseSBmb3IgdGhlIHZhcmlhdGlvbi4KLSAqKmZ1enppbmcqKiA6IEZ1enogdGVzdGluZyBzZXRzIHVuZXhwZWN0ZWQgdmFsdWVzIGZvciBBUEkgcmVxdWVzdHMsIHRvIGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IgYW5kIGVycm9ycyBpbiB0aGUgQVBJIHJlc3BvbnNlLgotICoqdGVzdHMqKiA6IHdoaWNoIHJlZmVycyB0byB0aGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBnZW5lcmF0ZWQgY29udHJhY3QgJiB2YXJpYW5jZSB0ZXN0cyBmb3IgdGhlIHZhcmlhdGlvbi4KICAtICoqY29udHJhY3RUZXN0cyoqIDogcmVmZXJzIHRvIHRoZSBvcHRpb25zIHRvIGVuYWJsZWQgYXV0b2dlbmVyYXRlZCBjb250cmFjdCB0ZXN0cyBmb3IgdGhlIHZhcmlhdGlvbi4KICAtICoqY29udGVudFRlc3RzKiogOiByZWZlcnMgdG8gdGhlIGFkZGl0aW9uYWwgUG9zdG1hbiB0ZXN0cyB0aGF0IGNoZWNrIHRoZSBjb250ZW50IGZvciB0aGUgdmFyaWF0aW9uLgogIC0gKipleHRlbmRUZXN0cyoqIDogcmVmZXJzIHRvIHRoZSBjdXN0b20gYWRkaXRpb25zIG9mIG1hbnVhbCBjcmVhdGVkIFBvc3RtYW4gdGVzdHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHZhcmlhdGlvbi4KLSAqKmFzc2lnblZhcmlhYmxlcyoqIDogVGhpcyByZWZlcnMgdG8gc2V0dGluZyBQb3N0bWFuIGNvbGxlY3Rpb24gdmFyaWFibGVzIHRoYXQgYXJlIGFzc2lnbmVkIGJhc2VkIG9uIHZhcmlhdGlvbi4KCkZvciBtb3JlIGRldGFpbHMsIHJldmlldyB0aGUgW2NvbnRlbnQtdmFyaWF0aW9uIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlkZWNrLWxpYnJhcmllcy9wb3J0bWFuL3RyZWUvbWFpbi9leGFtcGxlcy90ZXN0c3VpdGUtdmFyaWF0aW9uLXRlc3RzKS4KCiMjIyMgaW50ZWdyYXRpb25UZXN0cyBvcHRpb25zCgotICoqbmFtZSAoU3RyaW5nKSoqIDogQXMgSW50ZWdyYXRpb24gdGVzdHMgd2lsbCBub3JtYWxseSBjb250YWluIG11bHRpcGxlIG9wZXJhdGlvbnMsIHRoaXMgaXMgdGhlIGZvbGRlciBuYW1lIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGhlIEludGVncmF0aW9uIFRlc3RzIGZvbGRlciBpbiB5b3VyIFBvc3RtYW4gY29sbGVjdGlvbi4KLSAqKm9wZXJhdGlvbnMgKEFycmF5KSoqIDogQXJyYXkgb2Ygb3BlcmF0aW9ucyB0byBiZSBwZXJmb3JtZWQKCiMjIyBQb3J0bWFuIC0gYGNvbnRlbnRUZXN0c2AgcHJvcGVydGllcwoKQ29udGVudCB0ZXN0cyB3aWxsIHZhbGlkYXRlIGlmIHRoZSByZXNwb25zZSBwcm9wZXJ0eSB2YWx1ZXMgd2lsbCBtYXRjaCB0aGUgZXhwZWN0ZWQgZGVmaW5lZCB2YWx1ZXMuCldoaWxlIHRoZSBQb3J0bWFuIGB0ZXN0c2AgdmVyaWZ5IHRoZSAiY29udHJhY3QiIG9mIHRoZSBBUEksIHRoZSBgY29udGVudFRlc3RzYCB3aWxsIHZlcmlmeSB0aGUgY29udGVudCBvZiB0aGUgQVBJLgoKIyMjIyBjb250ZW50VGVzdHMgb3B0aW9ucwoKLSAqKm9wZW5BcGlPcGVyYXRpb25JZCAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byB0aGUgT3BlbkFQSSBvcGVyYXRpb25JZC4gKGV4YW1wbGU6IGBsZWFkc0FsbGApCi0gKipvcGVuQXBpT3BlcmF0aW9uSWRzIChBcnJheSkqKiA6IFJlZmVyZW5jZXMgdG8gYW4gYXJyYXkgb2YgT3BlbkFQSSBvcGVyYXRpb25JZHMsIGV4YW1wbGU6IGBbJ2xlYWRzQWxsJywgJ2NvbXBhbmllc0FsbCcsICdjb250YWN0c0FsbCddYAotICoqb3BlbkFwaU9wZXJhdGlvbiAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byBhIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGggKGV4YW1wbGU6IGBHRVQ6Oi9jcm0vbGVhZHNgKQotICoqZXhjbHVkZUZvck9wZXJhdGlvbnMgKEFycmF5IHwgb3B0aW9uYWwpKiogOiBSZWZlcmVuY2VzIHRvIE9wZW5BUEkgb3BlcmF0aW9ucyB0aGF0IHdpbGwgYmUgc2tpcHBlZCBmb3IgdGFyZ2V0aW5nLCBleGFtcGxlOiBgWyJsZWFkc0FkZCIsICJHRVQ6Oi9jcm0vbGVhZHMve2lkfSJdYAoKLSAqKnJlc3BvbnNlQm9keVRlc3RzIChBcnJheSkqKiA6IEFycmF5IG9mIGtleS92YWx1ZSBwYWlycyBvZiBwcm9wZXJ0aWVzICYgdmFsdWVzIGluIHRoZSBQb3N0bWFuIHJlc3BvbnNlIGJvZHkuCgogIC0gKiprZXkgKFN0cmluZykqKiA6IFRoZSBrZXkgdGhhdCB3aWxsIGJlIHRhcmdldGVkIGluIHRoZSByZXNwb25zZSBib2R5IHRvIGNoZWNrIGlmIGl0IGV4aXN0cy4gVG8gbG9vayB1cCBhIGtleSB3aXRoaW4gaW4gYXJyYXkgb2Ygb2JqZWN0cywgeW91IGNhbiB1c2UgYW4gYXJyYXkgaW5kZXggKGV4YW1wbGUgYGRhdGEud2Vic2l0ZXNbMF0udXJsYCkgb3IgYSAqIHdpbGRjYXJkIChleGFtcGxlOiBgZGF0YS53ZWJzaXRlc1sqXS51cmxgKSB3aGljaCB1c2VzIHRoZSBgdmFsdWVgIHRvIG1hdGNoIGFuIG9iamVjdCBpbiBhbiBhcnJheS4gCiAgLSAqKnZhbHVlIChTdHJpbmcpKiogOiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIHZhbHVlIGluIHRoZSByZXNwb25zZSBib2R5IHByb3BlcnR5IG1hdGNoZXMuCiAgLSAqKmNvbnRhaW5zIChTdHJpbmcpKiogOiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIHZhbHVlIGlzIHByZXNlbnQgaW4gdGhlIHZhbHVlIG9mIHRoZSByZXNwb25zZSBib2R5IHByb3BlcnR5LgogIC0gKipvbmVPZiAoU3RyaW5nW10sTnVtYmVyW10sQm9vbGVhbltdKSoqIDogVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIG9uZSBvZiB0aGUgdmFsdWVzIGlzIG1hdGNoaW5nIHRoZSByZXNwb25zZSBib2R5IHByb3BlcnR5LgogIC0gKipsZW5ndGggKE51bWJlcikqKiA6IFRoZSBudW1iZXIgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIHZhbHVlIG9mIHRoZSByZXNwb25zZSBib2R5IHByb3BlcnR5IChzdHJpbmcvYXJyYXkpIGhhcyBhIGxlbmd0aCBvZiB0aGUgZGVmaW5lZCBudW1iZXIuCiAgLSAqKm1pbkxlbmd0aCAoTnVtYmVyKSoqIDogVGhlIG51bWJlciB0aGF0IHdpbGwgYmUgdXNlZCB0byBjaGVjayBpZiB0aGUgdmFsdWUgb2YgdGhlIHJlc3BvbnNlIGJvZHkgcHJvcGVydHkgKHN0cmluZy9hcnJheSkgaGFzIGEgbWluaW11bSBsZW5ndGggb2YgdGhlIGRlZmluZWQgbnVtYmVyLgogIC0gKiptYXhMZW5ndGggKE51bWJlcikqKiA6IFRoZSBudW1iZXIgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIHZhbHVlIG9mIHRoZSByZXNwb25zZSBib2R5IHByb3BlcnR5IChzdHJpbmcvYXJyYXkpIGhhcyBhIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBkZWZpbmVkIG51bWJlci4KICAtICoqbm90RXhpc3QgKEJvb2xlYW4pKiogOiBUaGUgaW52ZXJzZSBvZiB0aGUga2V5IGNoZWNrIHRoYXQgdmVyaWZ5IGlmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4gdGhlIHJlc3BvbnNlIGJvZHkuCiAgLSAqKmFzc2VydCAoU3RyaW5nKSoqIDogQSBjdXN0b20gUG9zdG1hbiBhc3NlcnRpb24gdG8gY2hlY2sgaWYgdGhlIHZhbHVlIGluIHRoZSByZXNwb25zZSBib2R5IHByb3BlcnR5IG1hdGNoZXMgd2l0aCB0aGUgcHJvdmlkZWQgYXNzZXJ0aW9uIChleGFtcGxlOiBgbm90LnRvLmJlLm51bGxgKS4KICAKLSAqKnJlc3BvbnNlSGVhZGVyVGVzdHMgKEFycmF5KSoqIDogQXJyYXkgb2Yga2V5L3ZhbHVlIHBhaXJzIG9mIHByb3BlcnRpZXMgJiB2YWx1ZXMgaW4gdGhlIFBvc3RtYW4gcmVzcG9uc2UgaGVhZGVyLgogIC0gKiprZXkgKFN0cmluZykqKiA6IFRoZSBoZWFkZXIgbmFtZSB0aGF0IHdpbGwgYmUgdGFyZ2V0ZWQgaW4gdGhlIHJlc3BvbnNlIGhlYWRlciB0byBjaGVjayBpZiBpdCBleGlzdHMuCiAgLSAqKnZhbHVlIChTdHJpbmcpKiogOiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIHZhbHVlIGluIHRoZSByZXNwb25zZSBoZWFkZXIgbWF0Y2hlcy4KICAtICoqY29udGFpbnMgKFN0cmluZykqKiA6IFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjaGVjayBpZiB0aGUgdmFsdWUgaXMgcHJlc2VudCBpbiB0aGUgdmFsdWUgb2YgdGhlIHJlc3BvbnNlIGhlYWRlci4KICAtICoqb25lT2YgKFN0cmluZ1tdLE51bWJlcltdLEJvb2xlYW5bXSkqKiA6IFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjaGVjayBvbmUgb2YgdGhlIHZhbHVlcyBpcyBtYXRjaGluZyB0aGUgdmFsdWUgb2YgdGhlIHJlc3BvbnNlIGhlYWRlci4KICAtICoqbGVuZ3RoIChOdW1iZXIpKiogOiBUaGUgbnVtYmVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSB2YWx1ZSBvZiB0aGUgcmVzcG9uc2UgaGVhZGVyIGhhcyBhIGxlbmd0aCBvZiB0aGUgZGVmaW5lZCBudW1iZXIgb2YgY2hhcmFjdGVycy4KICAtICoqbWluTGVuZ3RoIChOdW1iZXIpKiogOiBUaGUgbnVtYmVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSB2YWx1ZSBvZiB0aGUgcmVzcG9uc2UgaGVhZGVyIGhhcyBhIG1pbmltdW0gbGVuZ3RoIG9mIHRoZSBkZWZpbmVkIG51bWJlciBvZiBjaGFyYWN0ZXJzLgogIC0gKiptYXhMZW5ndGggKE51bWJlcikqKiA6IFRoZSBudW1iZXIgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIHZhbHVlIG9mIHRoZSByZXNwb25zZSBoZWFkZXIgaGFzIGEgbWF4aW11bSBsZW5ndGggb2YgdGhlIGRlZmluZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMuCiAgLSAqKm5vdEV4aXN0IChCb29sZWFuKSoqIDogVGhlIGludmVyc2Ugb2YgdGhlIGtleSBjaGVjayB0aGF0IHZlcmlmeSBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0IGluIHRoZSByZXNwb25zZSBoZWFkZXIuCiAgLSAqKmFzc2VydCAoU3RyaW5nKSoqIDogQSBjdXN0b20gUG9zdG1hbiBhc3NlcnRpb24gdG8gY2hlY2sgaWYgdGhlIHZhbHVlIGluIHRoZSByZXNwb25zZSBoZWFkZXIgbWF0Y2hlcyB3aXRoIHRoZSBwcm92aWRlZCBhc3NlcnRpb24gKGV4YW1wbGU6IGBub3QudG8uYmUubnVsbGApLgoKRm9yIG1vcmUgZGV0YWlscywgcmV2aWV3IHRoZSBbY29udGVudC10ZXN0cyBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vYXBpZGVjay1saWJyYXJpZXMvcG9ydG1hbi90cmVlL21haW4vZXhhbXBsZXMvdGVzdHN1aXRlLWNvbnRlbnQtdGVzdHMpLgoKIyMjIFBvcnRtYW4gLSBgZXh0ZW5kVGVzdHNgIHByb3BlcnRpZXMKCldoZW4geW91IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgdGVzdHMgb3Igb3ZlcndyaXRlIHRoZSBQb3J0bWFuLWdlbmVyYXRlZCB0ZXN0LCB5b3UgY2FuIHVzZSB0aGUgYGV4dGVuZFRlc3RzYCB0byBkZWZpbmUgdGhlIHJhdyBQb3N0bWFuIHRlc3RzLgpBbnl0aGluZyBhZGRlZCBpbiB0aGUgYHRlc3RzYCBhcnJheSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBQb3N0bWFuIHRlc3Qgc2NyaXB0cy4KCiMjIyMgZXh0ZW5kVGVzdHMgb3B0aW9ucwoKLSAqKm9wZW5BcGlPcGVyYXRpb25JZCAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byB0aGUgT3BlbkFQSSBvcGVyYXRpb25JZC4gKGV4YW1wbGU6IGBsZWFkc0FsbGApCi0gKipvcGVuQXBpT3BlcmF0aW9uSWRzIChBcnJheSkqKiA6IFJlZmVyZW5jZXMgdG8gYW4gYXJyYXkgb2YgT3BlbkFQSSBvcGVyYXRpb25JZHMsIGV4YW1wbGU6IGBbJ2xlYWRzQWxsJywgJ2NvbXBhbmllc0FsbCcsICdjb250YWN0c0FsbCddYAotICoqb3BlbkFwaU9wZXJhdGlvbiAoU3RyaW5nKSoqIDogUmVmZXJlbmNlcyB0byBhIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGggKGV4YW1wbGU6IGBHRVQ6Oi9jcm0vbGVhZHNgKQotICoqZXhjbHVkZUZvck9wZXJhdGlvbnMgKEFycmF5IHwgb3B0aW9uYWwpKiogOiBSZWZlcmVuY2VzIHRvIE9wZW5BUEkgb3BlcmF0aW9ucyB0aGF0IHdpbGwgYmUgc2tpcHBlZCBmb3IgdGFyZ2V0aW5nLCBleGFtcGxlOiBgWyJsZWFkc0FkZCIsICJHRVQ6Oi9jcm0vbGVhZHMve2lkfSJdYAoKLSAqKnRlc3RzIChBcnJheSkqKiA6IEFycmF5IG9mIGFkZGl0aW9uYWwgUG9zdG1hbiB0ZXN0IHNjcmlwdHMuICBWYWx1ZXMgY2FuIGJlIHRoZSBzY3JpcHQgY29udGVudCBvciBwYXRoIHRvIHRoZSBzY3JpcHQgZmlsZSAod2l0aCBgZmlsZTpgIHByZWZpeCkuCi0gKipvdmVyd3JpdGUgKEJvb2xlYW4gdHJ1ZS9mYWxzZSB8IERlZmF1bHQ6IGZhbHNlKSoqIDogUmVzZXRzIGFsbCBnZW5lcmF0ZVRlc3RzIGFuZCBvdmVyd3JpdGVzIHRoZW0gd2l0aCB0aGUgZGVmaW5lZCB0ZXN0cyBmcm9tCiAgdGhlIGB0ZXN0c2AgYXJyYXkuCi0gKiphcHBlbmQgKEJvb2xlYW4gdHJ1ZS9mYWxzZSB8IERlZmF1bHQ6IHRydWUpKiogOiBQbGFjZSB0aGUgdGVzdHMgYWZ0ZXIgKGFwcGVuZCkgb3IgYmVmb3JlIChwcmVwZW5kKSBhbGwgZ2VuZXJhdGVkIHRlc3RzLgoKPGhyPgoKIyMjIFBvcnRtYW4gLSBgYXNzaWduVmFyaWFibGVzYCBwcm9wZXJ0aWVzCgpUaGUgImFzc2lnblZhcmlhYmxlcyIgYWxsb3dzIHlvdSB0byBzZXQgUG9zdG1hbiBjb2xsZWN0aW9uIHZhcmlhYmxlcyBmb3IgZWFzaWVyIGF1dG9tYXRpb24uCgojIyMjIGFzc2lnblZhcmlhYmxlcyBvcHRpb25zCgotICoqb3BlbkFwaU9wZXJhdGlvbklkIChTdHJpbmcpKiogOiBSZWZlcmVuY2UgdG8gdGhlIE9wZW5BUEkgb3BlcmF0aW9uSWQgZm9yIHdoaWNoIHRoZSBQb3N0bWFuIHBtLmNvbGxlY3Rpb25WYXJpYWJsZXMgd2lsbCBiZSBzZXQuIChleGFtcGxlOiBgbGVhZHNBbGxgKQotICoqb3BlbkFwaU9wZXJhdGlvbklkcyAoQXJyYXkpKiogOiBSZWZlcmVuY2VzIHRvIGFuIGFycmF5IG9mIE9wZW5BUEkgb3BlcmF0aW9uSWRzLCBmb3Igd2hpY2ggdGhlIFBvc3RtYW4gcG0uY29sbGVjdGlvblZhcmlhYmxlcyB3aWxsIGJlIHNldC4gZXhhbXBsZTogYFsnbGVhZHNBbGwnLCAnY29tcGFuaWVzQWxsJywgJ2NvbnRhY3RzQWxsJ11gCi0gKipvcGVuQXBpT3BlcmF0aW9uIChTdHJpbmcpKiogOiBSZWZlcmVuY2UgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGgsIGZvciB3aGljaCB0aGUgUG9zdG1hbiBwbS5jb2xsZWN0aW9uVmFyaWFibGVzIHdpbGwgYmUgc2V0LiAoZXhhbXBsZTogYEdFVDo6L2NybS9sZWFkc2ApCi0gKipleGNsdWRlRm9yT3BlcmF0aW9ucyAoQXJyYXkgfCBvcHRpb25hbCkqKiA6IFJlZmVyZW5jZXMgdG8gT3BlbkFQSSBvcGVyYXRpb25zIHRoYXQgd2lsbCBiZSBza2lwcGVkIGZvciB0YXJnZXRpbmcsIGV4YW1wbGU6IGBbImxlYWRzQWRkIiwgIkdFVDo6L2NybS9sZWFkcy97aWR9Il1gCgotICoqY29sbGVjdGlvblZhcmlhYmxlcyAoQXJyYXkpKiogOiBBcnJheSBvZiBrZXkvdmFsdWUgcGFpcnMgdG8gc2V0IHRoZSBQb3N0bWFuIGNvbGxlY3Rpb24gdmFyaWFibGVzLgogIC0gKipyZXNwb25zZUJvZHlQcm9wIChTdHJpbmcpKiogOiBUaGUgcHJvcGVydHkgZm9yIHdoaWNoIHRoZSB2YWx1ZSB3aWxsIGJlIHRha2VuIGZyb20gdGhlIHJlc3BvbnNlIGJvZHkgYW5kIHNldCB0aGUgdmFsdWUgYXMgdGhlIHBtLmNvbGxlY3Rpb25WYXJpYWJsZXMgdmFsdWUuIFRvIHN0b3JlIHRoZSByb290IGxldmVsLCB1c2UgYC5gIGFzIGtleS4KICAtICoqcmVzcG9uc2VIZWFkZXJQcm9wIChTdHJpbmcpKiogOiBUaGUgcHJvcGVydHkgZm9yIHdoaWNoIHRoZSB2YWx1ZSB3aWxsIGJlIHRha2VuIGZyb20gdGhlIHJlc3BvbnNlIGhlYWRlciBhbmQgc2V0IHRoZSB2YWx1ZSBhcyB0aGUgcG0uY29sbGVjdGlvblZhcmlhYmxlcyB2YWx1ZS4KICAtICoqcmVxdWVzdEJvZHlQcm9wIChTdHJpbmcpKiogOiBUaGUgcHJvcGVydHkgZm9yIHdoaWNoIHRoZSB2YWx1ZSB3aWxsIGJlIHRha2VuIGZyb20gdGhlIHJlcXVlc3QgYm9keSBhbmQgc2V0IHRoZSB2YWx1ZSBhcyB0aGUgcG0uY29sbGVjdGlvblZhcmlhYmxlcyB2YWx1ZS4KICAtICoqdmFsdWUgKFN0cmluZykqKiA6IFRoZSBkZWZpbmVkIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXQgYXMgdGhlIHBtLmNvbGxlY3Rpb25WYXJpYWJsZXMgdmFsdWUuIFRoZSB2YWx1ZSBjYW4gYmUgZ2VuZXJhdGVkIHVzaW5nIHRlbXBsYXRlIGV4cHJlc3Npb25zLiAgRm9yIHRoZSBmdWxsIGxpc3Qgb2YgdGVtcGxhdGUgZXhwcmVzc2lvbnMsIGNoZWNrIHRoZSBbQXNzaWduICYgT3ZlcndyaXRlIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlkZWNrLWxpYnJhcmllcy9wb3J0bWFuL3RyZWUvbWFpbi9leGFtcGxlcy90ZXN0c3VpdGUtYXNzaWduLW92ZXJ3cml0ZSN0ZW1wbGF0ZS1leHByZXNzaW9ucykKICAtICoqbmFtZSAoc3RyaW5nIE9QVElPTkFMIHwgIERlZmF1bHQ6IDxvcGVyYXRpb25JZD4uPHZhclByb3A+KSoqIDogVGhlIGRlc2lyZWQgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBhcyB0aGUgUG9zdG1hbiB2YXJpYWJsZSBuYW1lLiBJZiB0aGUgYG5hbWVgIGlzIG5vdCBwcm92aWRlZCwgUG9ydG1hbiB3aWxsIGdlbmVyYXRlIGEgdmFyaWFibGUgbmFtZSwgdXNpbmcgdGhlIGA8b3BlcmF0aW9uSWQ+Ljx2YXJQcm9wPmAuIFlvdSBjYW4gcGFzcyB5b3VyIG93biB0ZW1wbGF0ZSBleHByZXNzaW9ucywgdG8gZHluYW1pY2FsbHkgZ2VuZXJhdGUgdmFyaWFibGUgbmFtZXMuIFRoZSB0ZW1wbGF0ZSBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIGR5bmFtaWMgZXhwcmVzc2lvbnM6IGA8b3BlcmF0aW9uSWQ+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIG9wZXJhdGlvbiBJRCAoZXhhbXBsZSBgbGVhZHNBZGRgKSwgYDxwYXRoPmAgcmVzdWx0cyBpbiB0aGUgT3BlbkFQSSBvcGVyYXRpb24gSUQgKGV4YW1wbGUgYC9jcm0vbGVhZHNgKSwgYDxwYXRoUmVmPmAgcmVzdWx0cyBpbiB0aGUgUG9ydG1hbiBvcGVyYXRpb24gKGV4YW1wbGUgYFBPU1Q6Oi9jcm0vbGVhZHNfUE9TVGApLCBgPG1ldGhvZD5gIHJlc3VsdHMgaW4gdGhlIE9wZW5BUEkgbWV0aG9kIChleGFtcGxlIGBHRVRgKSwgYDxvcHNSZWY+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIGBvcGVyYXRpb25JZGAgd2l0aCBhIGZhbGxiYWNrIHRvIHRoZSBgcGF0aFJlZmAgaW4gY2FzZSB0aGUgT3BlbkFQSSBkb2VzIG5vdCBjb250YWluIGFuIG9wZXJhdGlvbiBJRC4gRm9yIHRoZSBmdWxsIGxpc3Qgb2YgZHluYW1pYyBleHByZXNzaW9ucywgY2hlY2sgdGhlIFtBc3NpZ24gJiBPdmVyd3JpdGUgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1hc3NpZ24tb3ZlcndyaXRlI3RlbXBsYXRlLWV4cHJlc3Npb25zKS4KCkZvciBtb3JlIGRldGFpbHMsIHJldmlldyB0aGUgW0Fzc2lnbiB2YXJpYWJsZXMgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1hc3NpZ24tdmFyaWFibGVzKSBhbmQgW0Fzc2lnbiAmIE92ZXJ3cml0ZSBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vYXBpZGVjay1saWJyYXJpZXMvcG9ydG1hbi90cmVlL21haW4vZXhhbXBsZXMvdGVzdHN1aXRlLWFzc2lnbi1vdmVyd3JpdGUjdGVtcGxhdGUtZXhwcmVzc2lvbnMpLgoKPGhyPgoKIyMjIFBvcnRtYW4gLSBgb3ZlcndyaXRlc2AgcHJvcGVydGllcwoKVG8gZmFjaWxpdGF0ZSBhdXRvbWF0aW9uLCB5b3UgbWlnaHQgd2FudCB0byBtb2RpZnkgcHJvcGVydGllcyB3aXRoICJyYW5kb21pemVkIiBvciBzcGVjaWZpYyB2YWx1ZXMuIFRoZSBvdmVyd3JpdGVzIGFyZSBtYXBwZWQgYmFzZWQgb24gdGhlIE9wZW5BUEkgb3BlcmF0aW9uSWQgb3IgT3BlbkFQSSBPcGVyYXRpb24gcmVmZXJlbmNlLgoKIyMjIyBvdmVyd3JpdGVzIG9wdGlvbnMKCi0gKipvcGVuQXBpT3BlcmF0aW9uSWQgKFN0cmluZykqKiA6IFJlZmVyZW5jZSB0byB0aGUgT3BlbkFQSSBvcGVyYXRpb25JZCBmb3Igd2hpY2ggdGhlIFBvc3RtYW4gcmVxdWVzdCB3aWxsIGJlIG92ZXJ3cml0dGVuIG9yIGV4dGVuZGVkLiAoZXhhbXBsZTogYGxlYWRzQWxsYCkKLSAqKm9wZW5BcGlPcGVyYXRpb25JZHMgKEFycmF5KSoqIDogUmVmZXJlbmNlcyB0byBhbiBhcnJheSBvZiBPcGVuQVBJIG9wZXJhdGlvbklkcywgZm9yIHdoaWNoIHRoZSBQb3N0bWFuIHJlcXVlc3Qgd2lsbCBiZSBvdmVyd3JpdHRlbiBvciBleHRlbmRlZCAoZXhhbXBsZTogYFsnbGVhZHNBbGwnLCAnY29tcGFuaWVzQWxsJywgJ2NvbnRhY3RzQWxsJ11gKQotICoqb3BlbkFwaU9wZXJhdGlvbiAoU3RyaW5nKSoqIDogUmVmZXJlbmNlIHRvIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGgsIGZvciB3aGljaCB0aGUgUG9zdG1hbiByZXF1ZXN0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gb3IgZXh0ZW5kZWQgKGV4YW1wbGU6IGBHRVQ6Oi9jcm0vbGVhZHNgKQotICoqZXhjbHVkZUZvck9wZXJhdGlvbnMgKEFycmF5IHwgb3B0aW9uYWwpKiogOiBSZWZlcmVuY2VzIHRvIE9wZW5BUEkgb3BlcmF0aW9ucyB0aGF0IHdpbGwgYmUgc2tpcHBlZCBmb3IgdGFyZ2V0aW5nLiAoZXhhbXBsZTogYFsibGVhZHNBZGQiLCAiR0VUOjovY3JtL2xlYWRzL3tpZH0iXWApCgotICoqb3ZlcndyaXRlUmVxdWVzdEJhc2VVcmwgKE9iamVjdCkqKiA6CgogIEtleS92YWx1ZSBwYWlyIHRvIG92ZXJ3cml0ZSB0aGUgUG9zdG1hbiBSZXF1ZXN0IEJhc2UgVVJMLgoKICAtICoqdmFsdWUgKFN0cmluZykqKiA6IFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBvdmVyd3JpdGUvZXh0ZW5kIHRoZSB2YWx1ZSBpbiB0aGUgcmVxdWVzdCBiYXNlIFVSTC4gKGV4YW1wbGU6IGBodHRwczovL2V4YW1wbGUuY29tYCBvciBge3tiYXNlVXJsfX1gKS4KICAtICoqb3ZlcndyaXRlIChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogT3ZlcndyaXRlcyB0aGUgcmVxdWVzdCBiYXNlIFVSTCB2YWx1ZSBPUiBhdHRhY2ggdGhlIHZhbHVlIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0IGJhc2UgVVJMIHZhbHVlLgogIC0gKipyZW1vdmUgKEJvb2xlYW4gdHJ1ZS9mYWxzZSB8IERlZmF1bHQ6IGZhbHNlKSoqIDogUmVtb3ZlcyB0aGUgdGFyZ2V0ZWQgcmVxdWVzdCBiYXNlIFVSTCBmcm9tIFBvc3RtYW4uCgotICoqb3ZlcndyaXRlUmVxdWVzdFF1ZXJ5UGFyYW1zIChBcnJheSkqKiA6CgogIEFycmF5IG9mIGtleS92YWx1ZSBwYWlycyB0byBvdmVyd3JpdGUgaW4gdGhlIFBvc3RtYW4gUmVxdWVzdCBRdWVyeSBwYXJhbXMuCgogIC0gKiprZXkgKFN0cmluZykqKiA6IFRoZSBrZXkgdGhhdCB3aWxsIGJlIHRhcmdldGVkIGluIHRoZSByZXF1ZXN0IFF1ZXJ5IFBhcmFtIHRvIG92ZXJ3cml0ZS9leHRlbmQuIFN1cHBvcnRzIHdpbGRjYXJkICogdG8gbWF0Y2ggYW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlLCBgZmlsdGVyWypdYCBtYXRjaGVzIGBmaWx0ZXJbMF1gLCBgZmlsdGVyWzFdYCwgZXRjLgogIC0gKip2YWx1ZSAoU3RyaW5nKSoqIDogVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIG92ZXJ3cml0ZS9leHRlbmQgdGhlIHZhbHVlIGluIHRoZSByZXF1ZXN0IFF1ZXJ5IFBhcmFtIE9SIHVzZSB0aGUgW1Bvc3RtYW4gRHluYW1pYyB2YXJpYWJsZXNdKGh0dHBzOi8vbGVhcm5pbmcuUG9zdG1hbi5jb20vZG9jcy93cml0aW5nLXNjcmlwdHMvc2NyaXB0LXJlZmVyZW5jZXMvdmFyaWFibGVzLWxpc3QvKSB0byB1c2UgZHluYW1pYyB2YWx1ZXMgbGlrZSBge3skZ3VpZH19YCBvciBge3skcmFuZG9tSW50fX1gLiBTdXBwb3J0cyBhbHNvIHRlbXBsYXRpbmcgdG8gZ2VuZXJhdGUgdmFyaWFibGUgbmFtZXMuIFRoZSB0ZW1wbGF0ZSBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIGR5bmFtaWMgZXhwcmVzc2lvbnM6IGA8b3BlcmF0aW9uSWQ+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIG9wZXJhdGlvbiBJRCAoZXhhbXBsZSBgbGVhZHNBZGRgKSwgYDxwYXRoPmAgcmVzdWx0cyBpbiB0aGUgT3BlbkFQSSBvcGVyYXRpb24gSUQgKGV4YW1wbGUgYC9jcm0vbGVhZHNgKSwgYDxwYXRoUmVmPmAgcmVzdWx0cyBpbiB0aGUgUG9ydG1hbiBvcGVyYXRpb24gKGV4YW1wbGUgYFBPU1Q6Oi9jcm0vbGVhZHNfUE9TVGApLCBgPG1ldGhvZD5gIHJlc3VsdHMgaW4gdGhlIE9wZW5BUEkgbWV0aG9kIChleGFtcGxlIGBHRVRgKSwgYDxvcHNSZWY+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIGBvcGVyYXRpb25JZGAgd2l0aCBhIGZhbGxiYWNrIHRvIHRoZSBgcGF0aFJlZmAgaW4gY2FzZSB0aGUgT3BlbkFQSSBkb2VzIG5vdCBjb250YWluIGFuIG9wZXJhdGlvbiBJRC4gRm9yIHRoZSBmdWxsIGxpc3Qgb2YgZHluYW1pYyBleHByZXNzaW9ucywgY2hlY2sgdGhlIFtBc3NpZ24gJiBPdmVyd3JpdGUgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1hc3NpZ24tb3ZlcndyaXRlI3RlbXBsYXRlLWV4cHJlc3Npb25zKS4KICAtICoqb3ZlcndyaXRlIChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogT3ZlcndyaXRlcyB0aGUgcmVxdWVzdCBxdWVyeSBwYXJhbSB2YWx1ZSBPUiBhdHRhY2ggdGhlIHZhbHVlIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHF1ZXJ5IHBhcmFtIHZhbHVlLgogIC0gKipkaXNhYmxlIChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiBmYWxzZSkqKiA6IERpc2FibGVzIHRoZSByZXF1ZXN0IHF1ZXJ5IHBhcmFtIGluIFBvc3RtYW4uCiAgLSAqKnJlbW92ZSAoQm9vbGVhbiB0cnVlL2ZhbHNlIHwgRGVmYXVsdDogZmFsc2UpKiogOiBSZW1vdmVzIHRoZSB0YXJnZXRlZCByZXF1ZXN0IHF1ZXJ5IHBhcmFtIGZyb20gUG9zdG1hbi4KICAtICoqaW5zZXJ0IChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogSW5zZXJ0IGFkZGl0aW9uYWwgdGhlIHJlcXVlc3QgcXVlcnkgcGFyYW0gaW4gUG9zdG1hbiB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiBPcGVuQVBJLgogIC0gKipkZXNjcmlwdGlvbiAoU3RyaW5nKSoqIDogT3ZlcndyaXRlcyB0aGUgcmVxdWVzdCBxdWVyeSBwYXJhbSBkZXNjcmlwdGlvbiBpbiBQb3N0bWFuLgoKLSAqKm92ZXJ3cml0ZVJlcXVlc3RQYXRoVmFyaWFibGVzIChBcnJheSkqKiA6CgogIEFycmF5IG9mIGtleS92YWx1ZSBwYWlycyB0byBvdmVyd3JpdGUgaW4gdGhlIFBvc3RtYW4gUmVxdWVzdCBQYXRoIFZhcmlhYmxlcy4KCiAgLSAqKmtleSAoU3RyaW5nKSoqIDogVGhlIGtleSB0aGF0IHdpbGwgYmUgdGFyZ2V0ZWQgaW4gdGhlIHJlcXVlc3QgUGF0aCB2YXJpYWJsZXMgdG8gb3ZlcndyaXRlL2V4dGVuZC4KICAtICoqdmFsdWUgKFN0cmluZykqKiA6IFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBvdmVyd3JpdGUvZXh0ZW5kIHRoZSB2YWx1ZSBpbiB0aGUgcmVxdWVzdCBwYXRoIHZhcmlhYmxlIE9SIHVzZSB0aGUgW1Bvc3RtYW4gRHluYW1pYyB2YXJpYWJsZXNdKGh0dHBzOi8vbGVhcm5pbmcuUG9zdG1hbi5jb20vZG9jcy93cml0aW5nLXNjcmlwdHMvc2NyaXB0LXJlZmVyZW5jZXMvdmFyaWFibGVzLWxpc3QvKSB0byB1c2UgZHluYW1pYyB2YWx1ZXMgbGlrZSBge3skZ3VpZH19YCBvciBge3skcmFuZG9tSW50fX1gLiBTdXBwb3J0cyBhbHNvIHRlbXBsYXRpbmcgdG8gZ2VuZXJhdGUgdmFyaWFibGUgbmFtZXMuIFRoZSB0ZW1wbGF0ZSBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIGR5bmFtaWMgZXhwcmVzc2lvbnM6IGA8b3BlcmF0aW9uSWQ+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIG9wZXJhdGlvbiBJRCAoZXhhbXBsZSBgbGVhZHNBZGRgKSwgYDxwYXRoPmAgcmVzdWx0cyBpbiB0aGUgT3BlbkFQSSBvcGVyYXRpb24gSUQgKGV4YW1wbGUgYC9jcm0vbGVhZHNgKSwgYDxwYXRoUmVmPmAgcmVzdWx0cyBpbiB0aGUgUG9ydG1hbiBvcGVyYXRpb24gKGV4YW1wbGUgYFBPU1Q6Oi9jcm0vbGVhZHNfUE9TVGApLCBgPG1ldGhvZD5gIHJlc3VsdHMgaW4gdGhlIE9wZW5BUEkgbWV0aG9kIChleGFtcGxlIGBHRVRgKSwgYDxvcHNSZWY+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIGBvcGVyYXRpb25JZGAgd2l0aCBhIGZhbGxiYWNrIHRvIHRoZSBgcGF0aFJlZmAgaW4gY2FzZSB0aGUgT3BlbkFQSSBkb2VzIG5vdCBjb250YWluIGFuIG9wZXJhdGlvbiBJRC4gRm9yIHRoZSBmdWxsIGxpc3Qgb2YgZHluYW1pYyBleHByZXNzaW9ucywgY2hlY2sgdGhlIFtBc3NpZ24gJiBPdmVyd3JpdGUgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1hc3NpZ24tb3ZlcndyaXRlI3RlbXBsYXRlLWV4cHJlc3Npb25zKS4KICAtICoqb3ZlcndyaXRlIChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogT3ZlcndyaXRlcyB0aGUgcmVxdWVzdCBwYXRoIHZhcmlhYmxlIHZhbHVlIE9SIGF0dGFjaGVzIHRoZSB2YWx1ZSB0byB0aGUgb3JpZ2luYWwgcmVxdWVzdCBQYXRoIHZhcmlhYmxlIHZhbHVlLgogIC0gKipyZW1vdmUgKEJvb2xlYW4gdHJ1ZS9mYWxzZSB8IERlZmF1bHQ6IGZhbHNlKSoqIDogUmVtb3ZlcyB0aGUgdGFyZ2V0ZWQgcmVxdWVzdCBwYXRoIHZhcmlhYmxlIGZyb20gUG9zdG1hbi4KICAtICoqaW5zZXJ0IChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogSW5zZXJ0IGFkZGl0aW9uYWwgdGhlIHJlcXVlc3QgcGF0aCB2YXJpYWJsZSBpbiBQb3N0bWFuIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIE9wZW5BUEkuCiAgLSAqKmRlc2NyaXB0aW9uIChTdHJpbmcpKiogOiBPcHRpb25hbCwgT3ZlcndyaXRlcyB0aGUgcmVxdWVzdCBwYXRoIHZhcmlhYmxlIGRlc2NyaXB0aW9uIGluIFBvc3RtYW4uCgotICoqb3ZlcndyaXRlUmVxdWVzdEhlYWRlcnMgKEFycmF5KSoqIDoKCiAgQXJyYXkgb2Yga2V5L3ZhbHVlIHBhaXJzIHRvIG92ZXJ3cml0ZSBpbiB0aGUgUG9zdG1hbiBSZXF1ZXN0IEhlYWRlcnMuCgogIC0gKiprZXkgKFN0cmluZykqKiA6IFRoZSBrZXkgdGhhdCB3aWxsIGJlIHRhcmdldGVkIGluIHRoZSByZXF1ZXN0IEhlYWRlcnMgdG8gb3ZlcndyaXRlL2V4dGVuZC4KICAtICoqdmFsdWUgKFN0cmluZykqKiA6IFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBvdmVyd3JpdGUvZXh0ZW5kIHRoZSB2YWx1ZSBpbiB0aGUgcmVxdWVzdCBoZWFkZXJzIE9SIHVzZSB0aGUgW1Bvc3RtYW4gRHluYW1pYyB2YXJpYWJsZXNdKGh0dHBzOi8vbGVhcm5pbmcuUG9zdG1hbi5jb20vZG9jcy93cml0aW5nLXNjcmlwdHMvc2NyaXB0LXJlZmVyZW5jZXMvdmFyaWFibGVzLWxpc3QvKSB0byB1c2UgZHluYW1pYyB2YWx1ZXMgbGlrZSBge3skZ3VpZH19YCBvciBge3skcmFuZG9tSW50fX1gLiBTdXBwb3J0cyBhbHNvIHRlbXBsYXRpbmcgdG8gZ2VuZXJhdGUgdmFyaWFibGUgbmFtZXMuIFRoZSB0ZW1wbGF0ZSBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIGR5bmFtaWMgZXhwcmVzc2lvbnM6IGA8b3BlcmF0aW9uSWQ+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIG9wZXJhdGlvbiBJRCAoZXhhbXBsZSBgbGVhZHNBZGRgKSwgYDxwYXRoPmAgcmVzdWx0cyBpbiB0aGUgT3BlbkFQSSBvcGVyYXRpb24gSUQgKGV4YW1wbGUgYC9jcm0vbGVhZHNgKSwgYDxwYXRoUmVmPmAgcmVzdWx0cyBpbiB0aGUgUG9ydG1hbiBvcGVyYXRpb24gKGV4YW1wbGUgYFBPU1Q6Oi9jcm0vbGVhZHNfUE9TVGApLCBgPG1ldGhvZD5gIHJlc3VsdHMgaW4gdGhlIE9wZW5BUEkgbWV0aG9kIChleGFtcGxlIGBHRVRgKSwgYDxvcHNSZWY+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIGBvcGVyYXRpb25JZGAgd2l0aCBhIGZhbGxiYWNrIHRvIHRoZSBgcGF0aFJlZmAgaW4gY2FzZSB0aGUgT3BlbkFQSSBkb2VzIG5vdCBjb250YWluIGFuIG9wZXJhdGlvbiBJRC4gRm9yIHRoZSBmdWxsIGxpc3Qgb2YgZHluYW1pYyBleHByZXNzaW9ucywgY2hlY2sgdGhlIFtBc3NpZ24gJiBPdmVyd3JpdGUgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1hc3NpZ24tb3ZlcndyaXRlI3RlbXBsYXRlLWV4cHJlc3Npb25zKS4KICAtICoqb3ZlcndyaXRlIChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogT3ZlcndyaXRlcyB0aGUgcmVxdWVzdCBoZWFkZXIgdmFsdWUgT1IgYXR0YWNoZXMgdGhlIHZhbHVlIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0IGhlYWRlciB2YWx1ZS4KICAtICoqZGlzYWJsZSAoQm9vbGVhbiB0cnVlL2ZhbHNlIHwgRGVmYXVsdDogZmFsc2UpKiogOiBEaXNhYmxlcyB0aGUgcmVxdWVzdCBoZWFkZXIgaW4gUG9zdG1hbi4KICAtICoqcmVtb3ZlIChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiBmYWxzZSkqKiA6IFJlbW92ZXMgdGhlIHRhcmdldGVkIHJlcXVlc3QgaGVhZGVyIGZyb20gUG9zdG1hbi4KICAtICoqaW5zZXJ0IChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogSW5zZXJ0IHRoZSBhZGRpdGlvbmFsIHJlcXVlc3QgaGVhZGVyIGluIFBvc3RtYW4gdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gT3BlbkFQSS4KICAtICoqZGVzY3JpcHRpb24gKFN0cmluZykqKiA6IE92ZXJ3cml0ZXMgdGhlIHJlcXVlc3QgaGVhZGVyIGRlc2NyaXB0aW9uIGluIFBvc3RtYW4uCgotICoqb3ZlcndyaXRlUmVxdWVzdEJvZHkgKEFycmF5KSoqIDoKCiAgQXJyYXkgb2Yga2V5L3ZhbHVlIHBhaXJzIHRvIG92ZXJ3cml0ZSBpbiB0aGUgUG9zdG1hbiBSZXF1ZXN0IEJvZHkuCgogICoqQXBwbGljYWJsZSBmb3IgcmVxdWVzdCBib2R5IHR5cGVzOiBKU09OL2Zvcm0tZGF0YS94LXd3dy1mb3JtLXVybGVuY29kZWQqKgogIC0gKiprZXkgKFN0cmluZykqKiA6IFRoZSBrZXkgdGhhdCB3aWxsIGJlIHRhcmdldGVkIGluIHRoZSByZXF1ZXN0IGJvZHkgdG8gb3ZlcndyaXRlL2V4dGVuZC4gVXNlIHRoZSBgLmAgbm90YXRpb24gdG8gdGFyZ2V0IG5lc3RlZCBwcm9wZXJ0aWVzLiBUbyB0YXJnZXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSBgLmAgYXMga2V5LgogIC0gKip2YWx1ZSAoQW55KSoqIDogVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIG92ZXJ3cml0ZS9leHRlbmQgdGhlIGtleSBpbiB0aGUgcmVxdWVzdCBib2R5IE9SIHVzZSB0aGUgW1Bvc3RtYW4gRHluYW1pYyB2YXJpYWJsZXNdKGh0dHBzOi8vbGVhcm5pbmcuUG9zdG1hbi5jb20vZG9jcy93cml0aW5nLXNjcmlwdHMvc2NyaXB0LXJlZmVyZW5jZXMvdmFyaWFibGVzLWxpc3QvKSB0byB1c2UgZHluYW1pYyB2YWx1ZXMgbGlrZSBge3skZ3VpZH19YCBvciBge3skcmFuZG9tSW50fX1gLiBUaGUgdmFsdWUgY2FuIGJlIGEgdGV4dC9udW1iZXIvYm9vbGVhbi9hcnJheS9vYmplY3Qgb3IgUG9zdG1hbiB2YXJpYWJsZSAodG8gcGFzcyB0aGUgUG9zdG1hbiB2YXJpYWJsZSBhcyB0eXBlIGJvb2xlYW4gb3IgbnVtYmVyLCB1c2UgYHt7e3ZhcmlhYmxlTmFtZX19fWAgc3Vycm91bmRlZCBieSAzeCB7e3sgYW5kIDN4IH19fSkuIFN1cHBvcnRzIGFsc28gdGVtcGxhdGluZyB0byBnZW5lcmF0ZSB2YXJpYWJsZSBuYW1lcy4gVGhlIHRlbXBsYXRlIGNhbiBjb250YWluIHRoZSBmb2xsb3dpbmcgZHluYW1pYyBleHByZXNzaW9uczogYDxvcGVyYXRpb25JZD5gIHJlc3VsdHMgaW4gdGhlIE9wZW5BUEkgb3BlcmF0aW9uIElEIChleGFtcGxlIGBsZWFkc0FkZGApLCBgPHBhdGg+YCByZXN1bHRzIGluIHRoZSBPcGVuQVBJIG9wZXJhdGlvbiBJRCAoZXhhbXBsZSBgL2NybS9sZWFkc2ApLCBgPHBhdGhSZWY+YCByZXN1bHRzIGluIHRoZSBQb3J0bWFuIG9wZXJhdGlvbiAoZXhhbXBsZSBgUE9TVDo6L2NybS9sZWFkc19QT1NUYCksIGA8bWV0aG9kPmAgcmVzdWx0cyBpbiB0aGUgT3BlbkFQSSBtZXRob2QgKGV4YW1wbGUgYEdFVGApLCBgPG9wc1JlZj5gIHJlc3VsdHMgaW4gdGhlIE9wZW5BUEkgYG9wZXJhdGlvbklkYCB3aXRoIGEgZmFsbGJhY2sgdG8gdGhlIGBwYXRoUmVmYCBpbiBjYXNlIHRoZSBPcGVuQVBJIGRvZXMgbm90IGNvbnRhaW4gYW4gb3BlcmF0aW9uIElELiBGb3IgdGhlIGZ1bGwgbGlzdCBvZiBkeW5hbWljIGV4cHJlc3Npb25zLCBjaGVjayB0aGUgW0Fzc2lnbiAmIE92ZXJ3cml0ZSBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vYXBpZGVjay1saWJyYXJpZXMvcG9ydG1hbi90cmVlL21haW4vZXhhbXBsZXMvdGVzdHN1aXRlLWFzc2lnbi1vdmVyd3JpdGUjdGVtcGxhdGUtZXhwcmVzc2lvbnMpLgogIC0gKipvdmVyd3JpdGUgKEJvb2xlYW4gdHJ1ZS9mYWxzZSB8IERlZmF1bHQ6IHRydWUpKiogOiBPdmVyd3JpdGVzIHRoZSByZXF1ZXN0IGJvZHkgdmFsdWUgT1IgYXR0YWNoZXMgdGhlIHZhbHVlIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0IGJvZHkgdmFsdWUuCiAgLSAqKnJlbW92ZSAoQm9vbGVhbiB0cnVlL2ZhbHNlIHwgRGVmYXVsdDogZmFsc2UpKiogOiBSZW1vdmVzIHRoZSByZXF1ZXN0IGJvZHkgcHJvcGVydHksIGluY2x1ZGluZyB0aGUgdmFsdWUuCgogICoqQXBwbGljYWJsZSBmb3IgcmVxdWVzdCBib2R5IHR5cGVzOiBmb3JtLWRhdGEveC13d3ctZm9ybS11cmxlbmNvZGVkKioKICAtICoqaW5zZXJ0IChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiB0cnVlKSoqIDogSW5zZXJ0IHRoZSBhZGRpdGlvbmFsIHJlcXVlc3QgZm9ybSBrZXkvdmFsdWUgaW4gUG9zdG1hbiB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiBPcGVuQVBJLgogIC0gKipkZXNjcmlwdGlvbiAoU3RyaW5nKSoqIDogT3ZlcndyaXRlcyB0aGUgcmVxdWVzdCBmb3JtIGRhdGEgZGVzY3JpcHRpb24gaW4gUG9zdG1hbi4KCi0gKipvdmVyd3JpdGVSZXF1ZXN0U2VjdXJpdHkgKE9iamVjdCkqKiA6CgogIEEgUG9zdG1hbiBSZXF1ZXN0QXV0aERlZmluaXRpb24gb2JqZWN0IHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSByZXF1ZXN0LlRoZSBzZWN1cml0eSBvdmVyd3JpdGVzIHByb3ZpZGVzIGEgbnVtYmVyIG9mIHNlY3VyaXR5IHR5cGVzOgoKICAtICoqcmVtb3ZlIChCb29sZWFuIHRydWUvZmFsc2UgfCBEZWZhdWx0OiBmYWxzZSkqKiA6IFVuc2V0cyB0aGUgQXV0aG9yaXphdGlvbiB0eXBlIGluIFBvc3RtYW4uCgogIC0gKiphcGlLZXkqKjogVGhlIEFQSSBrZXkgYXV0aCB3aWxsIHNlbmQgYSBrZXktdmFsdWUgcGFpciB0byB0aGUgQVBJIGVpdGhlciBpbiB0aGUgcmVxdWVzdCBoZWFkZXJzIG9yIHF1ZXJ5IHBhcmFtZXRlcnMuCiAgICAtICoqdmFsdWUgKFN0cmluZykqKiA6IFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgaW5zZXJ0ZWQgYXMgdGhlIFBvc3RtYW4gYXBpS2V5IHZhbHVlLiBJdCBjYW4gYmUgYSBwbGFpbiB2YWx1ZSBvciBhIFBvc3RtYW4gdmFyaWFibGUuCiAgICAtICoqa2V5IChTdHJpbmcgfCBvcHRpb25hbCkqKiA6IFRoZSAia2V5IiB2YWx1ZSB0aGF0IHdpbGwgYmUgaW5zZXJ0ZWQgaW4gdGhlIFBvc3RtYW4gYXBpS2V5IGtleSBmaWVsZC4gSXQgY2FuIGJlIGEgcGxhaW4gdmFsdWUgb3IgYSBQb3N0bWFuIHZhcmlhYmxlLgogICAgLSAqKmluIChTdHJpbmcgfCBvcHRpb25hbCkqKiA6IFRoZSAiaW4iIHZhbHVlIHRoYXQgZGVmaW5lcyB3aGVyZSB0aGUgQXBpIEtleSB3aWxsIGJlIGFkZGVkIGluIHRoZSBQb3N0bWFuIHJlcXVlc3QgSGVhZGVyIG9yIFF1ZXJ5IHBhcmFtcy4gUG9zdG1hbiBzdXBwb3J0cyBgaGVhZGVyYCBmb3IgIkhlYWRlciIgb3IgYHF1ZXJ5YCBmb3IgIlF1ZXJ5IFBhcmFtcyIuCgogIGBgYGpzb24KICAib3ZlcndyaXRlUmVxdWVzdFNlY3VyaXR5IjogewogICAgICAgICJhcGlLZXkiOiB7CiAgICAgICAgICAidmFsdWUiOiAie3thcGlLZXl9fSIKICAgICAgICB9CiAgICAgIH0KICBgYGAKCiAgLSAqKmJlYXJlcioqOiBUaGUgYmVhcmVyIHRva2VucyBhbGxvdyByZXF1ZXN0cyB0byBhdXRoZW50aWNhdGUgdXNpbmcgYW4gYWNjZXNzIGtleSwgc3VjaCBhcyBhIEpTT04gV2ViIFRva2VuIChKV1QpLgogICAgLSAqKnRva2VuIChTdHJpbmcpKiogOiBUaGUgInRva2VuIiB0aGF0IHdpbGwgYmUgaW5zZXJ0ZWQgYXMgdGhlIFBvc3RtYW4gYmVhcmVyIHRva2VuIHZhbHVlLiBJdCBjYW4gYmUgYSBwbGFpbiB2YWx1ZSBvciBhIFBvc3RtYW4gdmFyaWFibGUuCgogIGBgYGpzb24KICAib3ZlcndyaXRlUmVxdWVzdFNlY3VyaXR5IjogewogICAgICAgICJiZWFyZXIiOiB7CiAgICAgICAgICAidG9rZW4iOiAie3tiZWFyZXJUb2tlbn19IgogICAgICAgIH0KICAgICAgfQogIGBgYAoKICAtICoqYmFzaWMqKjogQmFzaWMgYXV0aGVudGljYXRpb24gaW52b2x2ZXMgc2VuZGluZyBhIHZlcmlmaWVkIHVzZXJuYW1lIGFuZCBwYXNzd29yZCB3aXRoIHlvdXIgcmVxdWVzdC4KICAgIC0gKip1c2VybmFtZSAoU3RyaW5nKSoqIDogVGhlIHVzZXJuYW1lIHRoYXQgd2lsbCBiZSBpbnNlcnRlZCBhcyB0aGUgYmFzaWMgYXV0aGVudGljYXRpb24gdXNlcm5hbWUgdmFsdWUKICAgIC0gKipwYXNzd29yZCAoU3RyaW5nKSoqIDogVGhlIHBhc3N3b3JkIHRoYXQgd2lsbCBiZSBpbnNlcnRlZCBhcyB0aGUgYmFzaWMgYXV0aGVudGljYXRpb24gcGFzc3dvcmQgdmFsdWUKICAKICBgYGBqc29uCiAgIm92ZXJ3cml0ZVJlcXVlc3RTZWN1cml0eSI6IHsKICAgICAgICAiYmFzaWMiOiB7CiAgICAgICAgICAidXNlcm5hbWUiOiAie3t1c2VybmFtZX19IiwKICAgICAgICAgICJwYXNzd29yZCI6ICJ7e3Bhc3N3b3JkfX0iLAogICAgICAgIH0KICAgICAgfQogIGBgYAogIAogIC0gKipQb3N0bWFuIHNlY3VyaXR5IG9wdGlvbnMqKjogT3ZlcndyaXRlL0luc2VydCBQb3N0bWFuIGF1dGhvcml6YXRpb24gc2V0dGluZ3MuCiAgICAtICoqUG9zdG1hbiBUeXBlIChBcnJheSkqKiA6IFRoZSBQb3N0bWFuIGF1dGhvcml6YXRpb24gb3B0aW9uIHR5cGUuIFN1cHBvcnRlZCB0eXBlcyBhcmU6IGBhd3N2NGAsIGBkaWdlc3RgLCBgZWRnZWdyaWRgLCBgbnRsbWAsIGBvYXV0aDFgLCBgb2F1dGgyYAogICAgICAtICoqQXR0cmlidXRlcyoqIDoga2V5L3ZhbHVlL3R5cGUgYXMgZGVmaW5lZCBpbiBQb3N0bWFuICh0aGUgZWFzaWVzdCB3YXkgdG8gZGVmaW5lIGl0LCBpcyB0byBzZXQgaXQgbWFudWFsbHkgaW4gUG9zdG1hbiwgZXhwb3J0IHRoZSBjb2xsZWN0aW9uIGFuZCBleHRyYWN0IHRoZSBtYXRjaGluZyB2YWx1ZXMgZnJvbSB0aGUgSlNPTiBmaWxlKS4KCkZvciBtb3JlIGRldGFpbHMsIHJldmlldyB0aGUgW092ZXJ3cml0ZXMgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1vdmVyd3JpdGVzKSBhbmQgW0Fzc2lnbiAmIE92ZXJ3cml0ZSBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vYXBpZGVjay1saWJyYXJpZXMvcG9ydG1hbi90cmVlL21haW4vZXhhbXBsZXMvdGVzdHN1aXRlLWFzc2lnbi1vdmVyd3JpdGUjdGVtcGxhdGUtZXhwcmVzc2lvbnMpLgoKPGhyPgoKIyMjIFBvcnRtYW4gLSBgZnV6emluZ2AgcHJvcGVydGllcyAtIEJFVEEg8J+PlwoKTk9USUNFOiBUaGlzIGZlYXR1cmUgaXMgY29uc2lkZXJlZCBCRVRBLCBzaW5jZSB3ZSBhcmUgaW52ZXN0aWdhdGluZyBhZGRpdGlvbmFsIGZ1enppbmcgY2FwYWJpbGl0aWVzLgoKPiBGdXp6aW5nIG9yIGZ1enogdGVzdGluZyBpcyBhbiBhdXRvbWF0ZWQgc29mdHdhcmUgdGVzdGluZyB0ZWNobmlxdWUgdGhhdCBpbnZvbHZlcyBwcm92aWRpbmcgaW52YWxpZCwgdW5leHBlY3RlZCwgb3IgcmFuZG9tIGRhdGEgYXMgaW5wdXRzIHRvIGEgY29tcHV0ZXIgcHJvZ3JhbSAoYSBSRVNUIEFQSSBpbiB0aGUgY2FzZSBvZiBQb3J0bWFuKS4KCkZ1enppbmcgY2hhbmdlcyB0aGUgcmVxdWVzdHMgKGJvZHksIHF1ZXJ5IHBhcmFtcywgLi4uICkgdG8gdW5leHBlY3RlZCB2YWx1ZXMgaW4gYW4gZWZmb3J0IHRvIGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IgYW5kIGVycm9ycyBpbiB0aGUgQVBJIHJlc3BvbnNlLgpGb3IgUG9ydG1hbiwgd2Ugd2FudCB0byBwcm92aWRlIGEgc2ltcGxlIGZvcm0gb2YgRnV6emluZywgd2l0aCB0aGUgZ29hbCB0byB0cmlnZ2VyIHZhbGlkYXRpb24vZXJyb3IgcmVzcG9uc2VzLCB3aGljaCBjYW4gYmUgY29udHJhY3QgdGVzdGVkLgpUaGUgYXV0b21hdGljIGZ1enppbmcgaXMgYmFzZWQgb24gdGhlIE9wZW5BUEkgcmVxdWVzdCBwcm9wZXJ0aWVzLCB3aGVyZSBmb3IgZWFjaCBmdXp6aW5nIHZhcmlhdGlvbiBhIG5ldyBQb3N0bWFuIHJlcXVlc3Qgd2lsbCBiZSBnZW5lcmF0ZWQsIHdpdGggb3B0aW9uYWwgY29udHJhY3QgdGVzdHMuCgpUaGUgRnV6emluZyBvcHRpb25zIGRlc2NyaWJlIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmcgZm9yIGF2YWlsYWJsZSBPcGVuQVBJIGZ1enppbmcgdmFyaWF0aW9ucy4KClJFTUFSS1M6CgotIFtQb3N0bWFuIER5bmFtaWMgdmFyaWFibGVzXShodHRwczovL2xlYXJuaW5nLlBvc3RtYW4uY29tL2RvY3Mvd3JpdGluZy1zY3JpcHRzL3NjcmlwdC1yZWZlcmVuY2VzL3ZhcmlhYmxlcy1saXN0LykgYXJlIHJlbmRlcmVkIGJlZm9yZSBiZWluZyBmdXp6ZWQuCi0gUmVndWxhciBQb3N0bWFuIHZhcmlhYmxlcyBhcmUgc2tpcHBlZCBmcm9tIGZ1enppbmcuCgojIyMjIGZ1enppbmcgb3B0aW9ucwoKLSAqKnJlcXVlc3RCb2R5IChBcnJheSkqKiA6CgogIEFuIGFycmF5IG9mIGZ1enppbmcgb3B0aW9ucyBmb3IgdGhlIFBvc3RtYW4gUmVxdWVzdCBCb2R5LgoKICBSRU1BUks6IEZ1enppbmcgaXMgb25seSBhcHBsaWNhYmxlIGZvciBPcGVuQVBJIHJlcXVlc3QgYm9kaWVzIG9mIG1lZGlhIHR5cGU6ICJhcHBsaWNhdGlvbi9qc29uIgoKICAtICoqcmVxdWlyZWRGaWVsZHMgKEJvb2xlYW4pKiogOiBSZW1vdmVzIHRoZSBwcm9wZXJ0aWVzICYgdmFsdWVzIGZyb20gdGhlIHJlcXVlc3QgYm9keSB0aGF0IGFyZSBtYXJrZWQgYXMgInJlcXVpcmVkIiBpbiBPcGVuQVBJLgogIC0gKiptaW5pbXVtTnVtYmVyRmllbGRzIChCb29sZWFuKSoqIDogQ2hhbmdlcyB0aGUgdmFsdWVzIG9mIHRoZSBudW1lcmljIGZpZWxkcyB0byBhIGxvd2VyIHZhbHVlIHRoYW4gdGhlIGRlZmluZWQgIm1pbmltdW0iIHByb3BlcnR5IGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LgogIC0gKiptYXhpbXVtTnVtYmVyRmllbGRzIChCb29sZWFuKSoqIDogQ2hhbmdlcyB0aGUgdmFsdWUgb2YgdGhlIG51bWVyaWMgZmllbGRzIHRvIGEgaGlnaGVyIHZhbHVlIHRoYW4gdGhlIGRlZmluZWQgIm1heGltdW0iIHByb3BlcnR5IGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LgogIC0gKiptaW5MZW5ndGhGaWVsZHMgKEJvb2xlYW4pKiogOiBDaGFuZ2VzIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIHRvIGEgbG93ZXIgbGVuZ3RoIHRoYW4gdGhlIGRlZmluZWQgIm1pbkxlbmd0aCIgcHJvcGVydHkgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCiAgLSAqKm1heExlbmd0aEZpZWxkcyAoQm9vbGVhbikqKiA6IENoYW5nZXMgdGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgdG8gYSBoaWdoZXIgbGVuZ3RoIHRoYW4gdGhlIGRlZmluZWQgIm1heExlbmd0aCIgcHJvcGVydHkgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgotICoqcmVxdWVzdFF1ZXJ5UGFyYW1zIChBcnJheSkqKiA6CgogIEFuIGFycmF5IG9mIGZ1enppbmcgb3B0aW9ucyBmb3IgdGhlIFBvc3RtYW4gUmVxdWVzdCBRdWVyeSBwYXJhbWV0ZXJzLgoKICAtICoqcmVxdWlyZWRGaWVsZHMgKEJvb2xlYW4pKiogOiBSZW1vdmVzIHRoZSBwcm9wZXJ0aWVzICYgdmFsdWVzIGZyb20gdGhlIHJlcXVlc3QgcXVlcnkgcGFyYW1zIHRoYXQgYXJlIG1hcmtlZCBhcyAicmVxdWlyZWQiIGluIE9wZW5BUEkuCiAgLSAqKm1pbmltdW1OdW1iZXJGaWVsZHMgKEJvb2xlYW4pKiogOiBDaGFuZ2VzIHRoZSB2YWx1ZXMgb2YgdGhlIG51bWVyaWMgZmllbGRzIHRvIGEgbG93ZXIgdmFsdWUgdGhhbiB0aGUgZGVmaW5lZCAibWluaW11bSIgcHJvcGVydHkgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCiAgLSAqKm1heGltdW1OdW1iZXJGaWVsZHMgKEJvb2xlYW4pKiogOiBDaGFuZ2VzIHRoZSB2YWx1ZSBvZiB0aGUgbnVtZXJpYyBmaWVsZHMgdG8gYSBoaWdoZXIgdmFsdWUgdGhhbiB0aGUgZGVmaW5lZCAibWF4aW11bSIgcHJvcGVydHkgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCiAgLSAqKm1pbkxlbmd0aEZpZWxkcyAoQm9vbGVhbikqKiA6IENoYW5nZXMgdGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgdG8gYSBsb3dlciBsZW5ndGggdGhhbiB0aGUgZGVmaW5lZCAibWluTGVuZ3RoIiBwcm9wZXJ0eSBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudC4KICAtICoqbWF4TGVuZ3RoRmllbGRzIChCb29sZWFuKSoqIDogQ2hhbmdlcyB0aGUgbGVuZ3RoIG9mIHRoZSB2YWx1ZSB0byBhIGhpZ2hlciBsZW5ndGggdGhhbiB0aGUgZGVmaW5lZCAibWF4TGVuZ3RoIiBwcm9wZXJ0eSBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCi0gKipyZXF1ZXN0SGVhZGVycyAoQXJyYXkpKiogOgoKICBBbiBhcnJheSBvZiBmdXp6aW5nIG9wdGlvbnMgZm9yIHRoZSBQb3N0bWFuIFJlcXVlc3QgSGVhZGVycy4KCiAgLSAqKnJlcXVpcmVkRmllbGRzIChCb29sZWFuKSoqIDogUmVtb3ZlcyB0aGUgcHJvcGVydGllcyAmIHZhbHVlcyBmcm9tIHRoZSByZXF1ZXN0IGhlYWRlcnMgdGhhdCBhcmUgbWFya2VkIGFzICJyZXF1aXJlZCIgaW4gT3BlbkFQSS4KICAtICoqbWluaW11bU51bWJlckZpZWxkcyAoQm9vbGVhbikqKiA6IENoYW5nZXMgdGhlIHZhbHVlcyBvZiB0aGUgbnVtZXJpYyBmaWVsZHMgdG8gYSBsb3dlciB2YWx1ZSB0aGFuIHRoZSBkZWZpbmVkICJtaW5pbXVtIiBwcm9wZXJ0eSBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudC4KICAtICoqbWF4aW11bU51bWJlckZpZWxkcyAoQm9vbGVhbikqKiA6IENoYW5nZXMgdGhlIHZhbHVlIG9mIHRoZSBudW1lcmljIGZpZWxkcyB0byBhIGhpZ2hlciB2YWx1ZSB0aGFuIHRoZSBkZWZpbmVkICJtYXhpbXVtIiBwcm9wZXJ0eSBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudC4KICAtICoqbWluTGVuZ3RoRmllbGRzIChCb29sZWFuKSoqIDogQ2hhbmdlcyB0aGUgbGVuZ3RoIG9mIHRoZSB2YWx1ZSB0byBhIGxvd2VyIGxlbmd0aCB0aGFuIHRoZSBkZWZpbmVkICJtaW5MZW5ndGgiIHByb3BlcnR5IGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LgogIC0gKiptYXhMZW5ndGhGaWVsZHMgKEJvb2xlYW4pKiogOiBDaGFuZ2VzIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIHRvIGEgaGlnaGVyIGxlbmd0aCB0aGFuIHRoZSBkZWZpbmVkICJtYXhMZW5ndGgiIHByb3BlcnR5IGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LgoKRm9yIG1vcmUgZGV0YWlscywgcmV2aWV3IHRoZSBbZnV6emluZyBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vYXBpZGVjay1saWJyYXJpZXMvcG9ydG1hbi90cmVlL21haW4vZXhhbXBsZXMvdGVzdHN1aXRlLWZ1enppbmctdGVzdHMpLgoKPGhyPgoKIyMjIFBvcnRtYW4gLSBgb3BlcmF0aW9uUHJlUmVxdWVzdFNjcmlwdHNgIHByb3BlcnRpZXMKClRoZSBgb3BlcmF0aW9uUHJlUmVxdWVzdFNjcmlwdHNgIGNvbmZpZ3VyYXRpb24gd2lsbCBpbmplY3QgcHJlLXJlcXVlc3Qgc2NyaXB0cyBpbiB0aGUgUG9zdG1hbiBjb2xsZWN0aW9uLCBvbiByZXF1ZXN0IGxldmVsLgpQb3N0bWFuIGV4ZWN1dGVzIHByZS1yZXF1ZXN0IHNjcmlwdHMgYmVmb3JlIGEgcmVxdWVzdCBydW5zLiBJZiB5b3Ugd2FudCB0byBzZXQgdGhlIFBvc3RtYW4gQ29sbGVjdGlvbiBwcmUtcmVxdWVzdCBzY3JpcHRzIG9uIHRoZSBjb2xsZWN0aW9uIGxldmVsLCB5b3UgY2FuIHVzZSB0aGUgYGdsb2JhbHNgID4gYGNvbGxlY3Rpb25QcmVSZXF1ZXN0U2NyaXB0c2AgY29uZmlndXJhdGlvbi4KVGhlIGBvcGVyYXRpb25QcmVSZXF1ZXN0U2NyaXB0c2AgaXMgaW5zZXJ0ZWQgb24gdGhlIHJlcXVlc3QgbGV2ZWwuCgojIyMjIG9wZXJhdGlvblByZVJlcXVlc3RTY3JpcHRzIG9wdGlvbnMKCi0gKipvcGVuQXBpT3BlcmF0aW9uSWQgKFN0cmluZykqKiA6IFJlZmVyZW5jZSB0byB0aGUgT3BlbkFQSSBvcGVyYXRpb25JZCBvbiB3aGljaCB0aGUgIlByZS1yZXF1ZXN0IFNjcmlwdHMiIHdpbGwgYmUgaW5zZXJ0ZWQuIChleGFtcGxlOiBgbGVhZHNBbGxgKQotICoqb3BlbkFwaU9wZXJhdGlvbklkcyAoQXJyYXkpKiogOiBSZWZlcmVuY2VzIHRvIGFuIGFycmF5IG9mIE9wZW5BUEkgb3BlcmF0aW9uSWRzLCBmb3Igd2hpY2ggdGhlICJQcmUtcmVxdWVzdCBTY3JpcHRzIiB3aWxsIGJlIGluc2VydGVkIChleGFtcGxlOiBgWydsZWFkc0FsbCcsICdjb21wYW5pZXNBbGwnLCAnY29udGFjdHNBbGwnXWAKLSAqKm9wZW5BcGlPcGVyYXRpb24gKFN0cmluZykqKiA6IFJlZmVyZW5jZSB0byBjb21iaW5hdGlvbiBvZiB0aGUgT3BlbkFQSSBtZXRob2QgJiBwYXRoLCBmb3Igd2hpY2ggdGhlICJQcmUtcmVxdWVzdCBTY3JpcHRzIiB3aWxsIGJlIGluc2VydGVkIChleGFtcGxlOiBgR0VUOjovY3JtL2xlYWRzYCkKLSAqKmV4Y2x1ZGVGb3JPcGVyYXRpb25zIChBcnJheSB8IG9wdGlvbmFsKSoqIDogUmVmZXJlbmNlcyB0byBPcGVuQVBJIG9wZXJhdGlvbnMgdGhhdCB3aWxsIGJlIHNraXBwZWQgZm9yIHRhcmdldGluZy4gKGV4YW1wbGU6IGBbImxlYWRzQWRkIiwgIkdFVDo6L2NybS9sZWFkcy97aWR9Il1gKQoKLSAqKnNjcmlwdHMgKEFycmF5KSoqIDogQXJyYXkgb2Ygc2NyaXB0cyB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgYXMgUG9zdG1hbiBQcmUtcmVxdWVzdCBTY3JpcHRzIG9uIHJlcXVlc3QgbGV2ZWwsIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBiZWZvcmUgdGhlIHRhcmdldGVkIHJlcXVlc3RzIGluIHRoaXMgY29sbGVjdGlvbi4gVmFsdWVzIGNhbiBiZSB0aGUgc2NyaXB0IGNvbnRlbnQgb3IgcGF0aCB0byB0aGUgc2NyaXB0IGZpbGUgKHdpdGggYGZpbGU6YCBwcmVmaXgpLgoKPGhyPgoKIyMjIFBvcnRtYW4gLSBgZ2xvYmFsc2AgcHJvcGVydHkKClRoZSBjb25maWd1cmF0aW9uIGRlZmluZWQgaW4gdGhlIGBnbG9iYWxzYCB3aWxsIGJlIGV4ZWN1dGVkIG9uIHRoZSBmdWxsIFBvc3RtYW4gY29sbGVjdGlvbi4gVGhpcyBpcyBoYW5keSBpZiB5b3UgbmVlZCB0byBkbyBtYXNzIHJlcGxhY2VtZW50cyBvZiB2YXJpYWJsZXMgb3Igc3BlY2lmaWMgd29yZHMva2V5cy92YWx1ZXMgaW4gdGhlIGZ1bGwgY29sbGVjdGlvbiB0aGF0IGNhbm5vdCBiZSBvdmVyd3JpdHRlbiBwZXIgcmVxdWVzdC4KCiMjIyMgZ2xvYmFscyBvcHRpb25zCgotICoqc3RyaXBSZXNwb25zZUV4YW1wbGVzIChEZWZhdWx0OiBmYWxzZSkqKiA6IFN0cmlwIHRoZSByZXNwb25zZSBleGFtcGxlcyBmcm9tIHRoZSBnZW5lcmF0ZWQgUG9zdG1hbiBjb2xsZWN0aW9uLgotICoqdmFyaWFibGVDYXNpbmcqKiA6IENoYW5nZSB0aGUgY2FzaW5nIG9mIHRoZSBhdXRvLWdlbmVyYXRlZCBQb3N0bWFuIHZhcmlhYmxlcy4gU3VwcG9ydGVkIHZhbHVlcyBhcmU6IGBjYW1lbENhc2VgLCBgcGFzY2FsQ2FzZWAsIGBrZWJhYkNhc2VgLCBgdHJhaW5DYXNlYCwgYHNuYWtlQ2FzZWAsIGBhZGFDYXNlYCwgYGNvbnN0YW50Q2FzZWAsIGBjb2JvbENhc2VgLCBgZG90Tm90YXRpb25gLiBTZWUgdGhlIFtBc3NpZ24gJiBPdmVyd3JpdGUgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Rlc3RzdWl0ZS1hc3NpZ24tb3ZlcndyaXRlI2dsb2JhbHMpIGZvciB0aGUgZGlmZmVyZW50IGNhc2luZyBvcHRpb25zLgotICoqc2VwYXJhdG9yU3ltYm9sIChEZWZhdWx0OiAiOjoiKSoqIDogQ2hhbmdlIHRoZSBzZXBhcmF0b3Igc3ltYm9sIGZvciB0aGUgYXV0by1nZW5lcmF0ZWQgUG9zdG1hbiB0ZXN0TmFtZSBkZXNjcmlwdGlvbiAoRXhhbXBsZTogYFtHRVRdOjovY3JtL2xlYWRzIC0gU3RhdHVzIGNvZGUgaXMgMnh4YCkuIEhlbHBmdWwgd2hlbiB1c2luZyB0aGUgW3Bvc3RtYW4tdG8tazZdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlkZWNrLWxpYnJhcmllcy9wb3N0bWFuLXRvLWs2KSBjb252ZXJ0ZXIuCi0gKipjb2xsZWN0aW9uUHJlUmVxdWVzdFNjcmlwdHMqKiA6IEFycmF5IG9mIHNjcmlwdHMgdGhhdCB3aWxsIGJlIGluamVjdGVkIGFzIFBvc3RtYW4gQ29sbGVjdGlvbiBQcmUtcmVxdWVzdCBTY3JpcHRzIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBieSBQb3N0bWFuIGJlZm9yZSBldmVyeSByZXF1ZXN0IGluIHRoaXMgY29sbGVjdGlvbi4gVmFsdWVzIGNhbiBiZSB0aGUgc2NyaXB0IGNvbnRlbnQgb3IgcGF0aCB0byB0aGUgc2NyaXB0IGZpbGUgKHdpdGggYGZpbGU6YCBwcmVmaXgpLgotICoqY29sbGVjdGlvblRlc3RTY3JpcHRzKio6IEFycmF5IG9mIHNjcmlwdHMgdGhhdCB3aWxsIGJlIGluamVjdGVkIGFzIFBvc3RtYW4gQ29sbGVjdGlvbiBUZXN0IFNjcmlwdHMgd2lsbCBiZSBleGVjdXRlZCBieSBQb3N0bWFuIGFmdGVyIGV2ZXJ5IHJlcXVlc3QgaW4gdGhpcyBjb2xsZWN0aW9uLiBWYWx1ZXMgY2FuIGJlIHRoZSBzY3JpcHQgY29udGVudCBvciBwYXRoIHRvIHRoZSBzY3JpcHQgZmlsZSAod2l0aCBgZmlsZTpgIHByZWZpeCkuCi0gKipjb2xsZWN0aW9uVmFyaWFibGVzKio6IEEgbWFwIG9mIGtleSB2YWx1ZSBwYWlycyB0aGF0IHdpbGwgaW5zZXJ0ZWQgYXMgUG9zdG1hbiBjb2xsZWN0aW9uIHZhcmlhYmxlcy4KLSAqKmtleVZhbHVlUmVwbGFjZW1lbnRzKiogOiBBIG1hcCBvZiBwYXJhbWV0ZXIga2V5IG5hbWVzIHRoYXQgd2lsbCBoYXZlIHRoZWlyIHZhbHVlcyByZXBsYWNlZCB3aXRoIHRoZSBwcm92aWRlZCBQb3N0bWFuIHZhcmlhYmxlcy4KLSAqKnZhbHVlUmVwbGFjZW1lbnRzKiogOiBBIG1hcCBvZiB2YWx1ZXMgdGhhdCB3aWxsIGhhdmUgdGhlaXIgdmFsdWVzIHJlcGxhY2VkIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlcy4KLSAqKnJhd1JlcGxhY2VtZW50cyoqIDogQ29uc2lkZXIgdGhpcyBhICJzZWFyY2ggJiByZXBsYWNlIiB1dGlsaXR5LCB0aGF0IHdpbGwgc2VhcmNoIGEgc3RyaW5nL29iamVjdC8uLi4gYW5kIHJlcGxhY2UgaXQgd2l0aCBhbm90aGVyIHN0cmluZy9vYmplY3QvLi4uCiAgVGhpcyBpcyB2ZXJ5IHVzZWZ1bCB0byByZXBsYWNlIGRhdGEgZnJvbSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBiZWZvcmUgaXQgaXMgdXNlZCBpbiB0aGUgUG9ydG1hbiB0ZXN0IGF1dG9tYXRpb24gZ2VuZXJhdGlvbi4KLSAqKnBvcnRtYW5SZXBsYWNlbWVudHMqKiA6IFRoZSAic2VhcmNoICYgcmVwbGFjZSIgdXRpbGl0eSByaWdodCBiZWZvcmUgdGhlIGZpbmFsIFBvc3RtYW4gZmlsZSBpcyB3cml0dGVuLCB0aGF0IHdpbGwgc2VhcmNoIGEgc3RyaW5nL29iamVjdC8uLi4gYW5kIHJlcGxhY2UgaXQgd2l0aCBhbm90aGVyIHN0cmluZy9vYmplY3QvLi4uCiAgVGhpcyBpcyBwcmFjdGljYWwgdG8gcmVwbGFjZSBhbnkgZGF0YSBmcm9tIHRoZSBnZW5lcmF0ZWQgUG9ydG1hbiBjb2xsZWN0aW9uLCBiZWZvcmUgaXQgaXMgdXNlZCBpbiBQb3N0bWFuIC8gTmV3bWFuIHRlc3QgZXhlY3V0aW9uLgotICoqb3JkZXJPZk9wZXJhdGlvbnMqKiA6IFRoZSBgb3JkZXJPZk9wZXJhdGlvbnNgIGlzIGEgbGlzdCBvZiBPcGVuQVBJIG9wZXJhdGlvbnMsIHdoaWNoIGlzIHVzZWQgYnkgUG9ydG1hbiB0byBzb3J0IHRoZSBQb3N0bWFuIHJlcXVlc3RzIGluIHRoZSBkZXNpcmVkIG9yZGVyLCBpbiB0aGVpciBmb2xkZXIuIFRoZSBvcmRlcmluZyBmcm9tIGBvcmRlck9mT3BlcmF0aW9uc2AgaXMgcGVyZm9ybWVkIHBlciBmb2xkZXIuIEl0ZW1zIHRoYXQgYXJlICoqbm90KiogZGVmaW5lZCBpbiB0aGUgYG9yZGVyT2ZPcGVyYXRpb25zYCBsaXN0IHdpbGwgcmVtYWluIGF0IHRoZWlyIGN1cnJlbnQgb3JkZXIuCi0gKipvcmRlck9mRm9sZGVycyoqIDogVGhlIGBvcmRlck9mRm9sZGVyc2AgaXMgYSBsaXN0IG9mIFBvc3RtYW4gZm9sZGVyIG5hbWVzLCB3aGljaCBpcyB1c2VkIGJ5IFBvcnRtYW4gdG8gc29ydCB0aGUgUG9zdG1hbiBmb2xkZXJzIGluIHRoZSBkZXNpcmVkIG9yZGVyLiBGb2xkZXJzIHRoYXQgYXJlICoqbm90KiogZGVmaW5lZCBpbiB0aGUgYG9yZGVyT2ZGb2xkZXJzYCBsaXN0IHdpbGwgcmVtYWluIGF0IHRoZWlyIGN1cnJlbnQgb3JkZXIsIGFmdGVyIHRoZSByZS1vcmRlciBmb2xkZXJzLgotICoqc2VjdXJpdHlPdmVyd3JpdGVzKiogOiBPdmVyd3JpdGUgb2YgdGhlIE9wZW5BUEkgU2VjdXJpdHkgU2NoZW1lIE9iamVjdCAoc3VwcG9ydGVkIHR5cGVzOiAiYXBpS2V5IiwgImh0dHAgYmFzaWMgYXV0aCIsICJodHRwIGJlYXJlciB0b2tlbiIpIG9yIGluamVjdCBhIFBvc3RtYW4gYXV0aG9yaXphdGlvbiBvcHRpb24gKHN1cHBvcnRlZCB0eXBlczogYXdzdjQsIGRpZ2VzdCwgZWRnZWdyaWQsIG50bG0sIG9hdXRoMSwgb2F1dGgyKSBvbiBhIGNvbGxlY3Rpb24gbGV2ZWwuIAoKICBUaGUgc2VjdXJpdHkgb3ZlcndyaXRlcyBwcm92aWRlcyBhIG51bWJlciBvZiBzZWN1cml0eSB0eXBlczoKCiAgLSAqKnJlbW92ZSAoQm9vbGVhbiB0cnVlL2ZhbHNlIHwgRGVmYXVsdDogZmFsc2UpKiogOiBVbnNldHMgdGhlIEF1dGhvcml6YXRpb24gdHlwZSBpbiBQb3N0bWFuLgogIAogIC0gKiphcGlLZXkqKjogVGhlIEFQSSBrZXkgYXV0aCB3aWxsIHNlbmQgYSBrZXktdmFsdWUgcGFpciB0byB0aGUgQVBJIGVpdGhlciBpbiB0aGUgcmVxdWVzdCBoZWFkZXJzIG9yIHF1ZXJ5IHBhcmFtZXRlcnMuCiAgICAtICoqdmFsdWUgKFN0cmluZykqKiA6IFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgaW5zZXJ0ZWQgYXMgdGhlIFBvc3RtYW4gYXBpS2V5IHZhbHVlLiBJdCBjYW4gYmUgYSBwbGFpbiB2YWx1ZSBvciBhIFBvc3RtYW4gdmFyaWFibGUuCiAgICAtICoqa2V5IChTdHJpbmcgfCBvcHRpb25hbCkqKiA6IFRoZSAia2V5IiB2YWx1ZSB0aGF0IHdpbGwgYmUgaW5zZXJ0ZWQgaW4gdGhlIFBvc3RtYW4gYXBpS2V5IGtleSBmaWVsZC4gSXQgY2FuIGJlIGEgcGxhaW4gdmFsdWUgb3IgYSBQb3N0bWFuIHZhcmlhYmxlLgogICAgLSAqKmluIChTdHJpbmcgfCBvcHRpb25hbCkqKiA6IFRoZSAiaW4iIHZhbHVlIHRoYXQgZGVmaW5lcyB3aGVyZSB0aGUgQXBpIEtleSB3aWxsIGJlIGFkZGVkIGluIHRoZSBQb3N0bWFuIHJlcXVlc3QgSGVhZGVyIG9yIFF1ZXJ5IHBhcmFtcy4gUG9zdG1hbiBzdXBwb3J0cyBgaGVhZGVyYCBmb3IgIkhlYWRlciIgb3IgYHF1ZXJ5YCBmb3IgIlF1ZXJ5IFBhcmFtcyIuCiAgCiAgYGBganNvbgogICJzZWN1cml0eU92ZXJ3cml0ZXMiOiB7CiAgICAgICAgImFwaUtleSI6IHsKICAgICAgICAgICJ2YWx1ZSI6ICJ7e2FwaUtleX19IgogICAgICAgIH0KICAgICAgfQogIGBgYAogIAogIC0gKipiZWFyZXIqKjogVGhlIGJlYXJlciB0b2tlbnMgYWxsb3cgcmVxdWVzdHMgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFjY2VzcyBrZXksIHN1Y2ggYXMgYSBKU09OIFdlYiBUb2tlbiAoSldUKS4KICAgIC0gKip0b2tlbiAoU3RyaW5nKSoqIDogVGhlICJ0b2tlbiIgdGhhdCB3aWxsIGJlIGluc2VydGVkIGFzIHRoZSBQb3N0bWFuIGJlYXJlciB0b2tlbiB2YWx1ZS4gSXQgY2FuIGJlIGEgcGxhaW4gdmFsdWUgb3IgYSBQb3N0bWFuIHZhcmlhYmxlLgogIAogIGBgYGpzb24KICAic2VjdXJpdHlPdmVyd3JpdGVzIjogewogICAgICAgICJiZWFyZXIiOiB7CiAgICAgICAgICAidG9rZW4iOiAie3tiZWFyZXJUb2tlbn19IgogICAgICAgIH0KICAgICAgfQogIGBgYAogIAogIC0gKipiYXNpYyoqOiBCYXNpYyBhdXRoZW50aWNhdGlvbiBpbnZvbHZlcyBzZW5kaW5nIGEgdmVyaWZpZWQgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHdpdGggeW91ciByZXF1ZXN0LgogICAgLSAqKnVzZXJuYW1lIChTdHJpbmcpKiogOiBUaGUgdXNlcm5hbWUgdGhhdCB3aWxsIGJlIGluc2VydGVkIGFzIHRoZSBiYXNpYyBhdXRoZW50aWNhdGlvbiB1c2VybmFtZSB2YWx1ZQogICAgLSAqKnBhc3N3b3JkIChTdHJpbmcpKiogOiBUaGUgcGFzc3dvcmQgdGhhdCB3aWxsIGJlIGluc2VydGVkIGFzIHRoZSBiYXNpYyBhdXRoZW50aWNhdGlvbiBwYXNzd29yZCB2YWx1ZQogIAogIGBgYGpzb24KICAic2VjdXJpdHlPdmVyd3JpdGVzIjogewogICAgICAgICJiYXNpYyI6IHsKICAgICAgICAgICJ1c2VybmFtZSI6ICJ7e3VzZXJuYW1lfX0iLAogICAgICAgICAgInBhc3N3b3JkIjogInt7cGFzc3dvcmR9fSIsCiAgICAgICAgfQogICAgICB9CiAgYGBgCiAgCiAgLSAqKlBvc3RtYW4gc2VjdXJpdHkgb3B0aW9ucyoqOiBPdmVyd3JpdGUvSW5zZXJ0IFBvc3RtYW4gYXV0aG9yaXphdGlvbiBzZXR0aW5ncy4KICAgIC0gKipQb3N0bWFuIFR5cGUgKEFycmF5KSoqIDogVGhlIFBvc3RtYW4gYXV0aG9yaXphdGlvbiBvcHRpb24gdHlwZS4gU3VwcG9ydGVkIHR5cGVzIGFyZTogYGF3c3Y0YCwgYGRpZ2VzdGAsIGBlZGdlZ3JpZGAsIGBudGxtYCwgYG9hdXRoMWAsIGBvYXV0aDJgCiAgICAgIC0gKipBdHRyaWJ1dGVzKiogOiBrZXkvdmFsdWUvdHlwZSBhcyBkZWZpbmVkIGluIFBvc3RtYW4gKHRoZSBlYXNpZXN0IHdheSB0byBkZWZpbmUgaXQsIGlzIHRvIHNldCBpdCBtYW51YWxseSBpbiBQb3N0bWFuLCBleHBvcnQgdGhlIGNvbGxlY3Rpb24gYW5kIGV4dHJhY3QgdGhlIG1hdGNoaW5nIHZhbHVlcyBmcm9tIHRoZSBKU09OIGZpbGUpLiAKICAKICBgYGBqc29uCiAgewogICAgImdsb2JhbHMiOiB7CiAgICAgICJzZWN1cml0eU92ZXJ3cml0ZXMiOiB7CiAgICAgICAgIm9hdXRoMSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImtleSI6ICJhZGRFbXB0eVBhcmFtc1RvU2lnbiIsCiAgICAgICAgICAgICJ2YWx1ZSI6IHRydWUsCiAgICAgICAgICAgICJ0eXBlIjogImJvb2xlYW4iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAia2V5IjogInRpbWVzdGFtcCIsCiAgICAgICAgICAgICJ2YWx1ZSI6ICIxNDYxMzE5NzY5IiwKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImtleSI6ICJub25jZSIsCiAgICAgICAgICAgICJ2YWx1ZSI6ICJpazNvVDUiLAogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAia2V5IjogImNvbnN1bWVyU2VjcmV0IiwKICAgICAgICAgICAgInZhbHVlIjogIkQrRWRRLWdzJC0lQDJOdTciLAogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAia2V5IjogImNvbnN1bWVyS2V5IiwKICAgICAgICAgICAgInZhbHVlIjogIlJLQ0d6bmE3YnY5WUQ1N2MiLAogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAia2V5IjogInNpZ25hdHVyZU1ldGhvZCIsCiAgICAgICAgICAgICJ2YWx1ZSI6ICJITUFDLVNIQTEiLAogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAia2V5IjogInZlcnNpb24iLAogICAgICAgICAgICAidmFsdWUiOiAiMS4wIiwKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImtleSI6ICJhZGRQYXJhbXNUb0hlYWRlciIsCiAgICAgICAgICAgICJ2YWx1ZSI6IGZhbHNlLAogICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KICBgYGAKCkZvciBtb3JlIGRldGFpbHMgb24gdGhlIGBnbG9iYWxzYCBjb25maWd1cmF0aW9uIG9wdGlvbnMgLCByZXZpZXcgdGhlIFtnbG9iYWxzIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlkZWNrLWxpYnJhcmllcy9wb3J0bWFuL3RyZWUvbWFpbi9leGFtcGxlcy9wb3J0bWFuLWdsb2JhbHMpIGFuZCBbb3JkZXJpbmcgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vdHJlZS9tYWluL2V4YW1wbGVzL3Bvc3RtYW4tb3JkZXJpbmcpCgo8aHI+CgojIyBDb25maWd1cmUgYXV0b21hdGljIHVwbG9hZCB0byBQb3N0bWFuIEFwcAoKPiBSRU1BUks6IFBvcnRtYW4gZG9lcyAqKm5vdCoqIHJlcXVpcmUgeW91IHRvIGhhdmUgYSBQb3N0bWFuIGFjY291bnQuCgpJbiBjYXNlIHlvdSB3YW50IHRvIHN5bmMgdGhlIGdlbmVyYXRlZCBQb3N0bWFuIGNvbGxlY3Rpb24gd2l0aCB0aGUgUG9zdG1hbiBhcHAgKGBwb3J0bWFuIC0tc3luY1Bvc3RtYW5gKSwgeW91IHdvdWxkIG5lZWQgYSBQb3N0bWFuIGFjY291bnQgc2luY2UgUG9ydG1hbiBsZXZlcmFnZXMgdGhlIFBvc3RtYW4gQVBJIHRvIHN5bmMgdGhlIGNvbGxlY3Rpb24uCgpUaGlzIGNhbiBiZSBhICJmcmVlIiBQb3N0bWFuIGFjY291bnQgb3IgYW55IG9mIHRoZSBwYWlkIFtQb3N0bWFuIHBsYW5zXShodHRwczovL3d3dy5wb3N0bWFuLmNvbS9wcmljaW5nLykuCgpUaGUgZ2VuZXJhdGVkIFBvc3RtYW4gY29sbGVjdGlvbiBjYW4gYWx3YXlzIGJlIFtpbXBvcnRlZCBtYW51YWxseV0oaHR0cHM6Ly9sZWFybmluZy5wb3N0bWFuLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9pbXBvcnRpbmctYW5kLWV4cG9ydGluZy1kYXRhLyNpbXBvcnRpbmctZGF0YS1pbnRvLXBvc3RtYW4pLCB3aXRob3V0IGEgUG9zdG1hbiBhY2NvdW50LgoKVG8gZW5hYmxlIGF1dG9tYXRpYyB1cGxvYWRzIG9mIHRoZSBnZW5lcmF0ZWQgUG9zdG1hbiBjb2xsZWN0aW9uIHRocm91Z2ggUG9ydG1hbiwgZm9sbG93IHRoZXNlIHN0ZXBzOgoKMS4gR2V0IHlvdXIgUG9zdG1hbiBBUEkga2V5CgohW0RvY3VtZW50YXRpb24gUGlwZWxpbmVdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hcGlkZWNrLWxpYnJhcmllcy9wb3J0bWFuL21haW4vZG9jcy9pbWcvcG9zdG1hbi1hdXRvbWF0aW9uLTAucG5nKQoKIVtEb2N1bWVudGF0aW9uIFBpcGVsaW5lXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYXBpZGVjay1saWJyYXJpZXMvcG9ydG1hbi9tYWluL2RvY3MvaW1nL3Bvc3RtYW4tYXV0b21hdGlvbi0xLnBuZykKCiFbRG9jdW1lbnRhdGlvbiBQaXBlbGluZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FwaWRlY2stbGlicmFyaWVzL3BvcnRtYW4vbWFpbi9kb2NzL2ltZy9wb3N0bWFuLWF1dG9tYXRpb24tMi5wbmcpCgoyLiBHb3RvIHRoZSByb290IGZvbGRlciBvZiB5b3VyIHByb2plY3QKCjMuIENvcHkgW2Vudi1wb3N0bWFuLWFwcC1leGFtcGxlXSguLy5lbnYtcG9zdG1hbi1hcHAuZXhhbXBsZSkgYXMgYC5lbnZgIGluIHRoZSByb290IGZvbGRlciBvZiB5b3VyIHByb2plY3QKCjQuIEVudGVyIHlvdXIgUG9zdG1hbiBBUEkga2V5IGluIGEgbG9jYWwgYC5lbnZgIGZpbGUsIGFzIGBQT1NUTUFOX0FQSV9LRVk9W3JlcGxhY2Ugd2l0aCBQb3N0bWFuIGFwaSBrZXldYAoKTmV4dCB0byB0aGUgUG9zdG1hbiBBUEkga2V5LCB5b3UgY2FuIGFsc28gcGFzcyBhbG9uZyB0aGUgUG9zdG1hbiBXb3Jrc3BhY2UgbmFtZSAmIHRoZSBzcGVjaWZpYyBQb3N0bWFuIENvbGxlY3Rpb24gVUlELgoKU3VwcG9ydGVkIFBvc3RtYW4gQVBJIC5FTlYgdmFyaWFibGVzOgoKLSAqKlBPU1RNQU5fQVBJX0tFWSoqIDogUG9zdG1hbiBBUEkga2V5Ci0gKipQT1NUTUFOX1dPUktTUEFDRV9OQU1FKiogOiBQb3N0bWFuIFdvcmtzcGFjZSBuYW1lIHRvIHRhcmdldCB0aGUgdXBsb2FkIG9mIHRoZSBnZW5lcmF0ZWQgUG9zdG1hbiBjb2xsZWN0aW9uCi0gKipQT1NUTUFOX0NPTExFQ1RJT05fVUlEKiogOiBQb3N0bWFuIGNvbGxlY3Rpb24gVUlEIHRvIHVwbG9hZCB3aXRoIHRoZSBnZW5lcmF0ZWQgUG9zdG1hbiBjb2xsZWN0aW9uCgpUaGUgYFBPU1RNQU5fV09SS1NQQUNFX05BTUVgICYgYFBPU1RNQU5fQ09MTEVDVElPTl9VSURgIHZhcmlhYmxlcyBjYW4gYWxzbyBiZSBzZXQgYXMgQ0xJIE9wdGlvbnMgYC0tcG9zdG1hbldvcmtzcGFjZU5hbWVgICYgYC0tcG9zdG1hblVpZGAgLCB3aGljaCB3aWxsIG92ZXJydWxlIHRoZSB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgLkVOViBmaWxlLgoKPiAqKlJFQ09NTUVOREFUSU9OKio6IERvIG5vdCBjb21taXQgdGhlIGAuZW52YCBmaWxlIGluIGFueSB2ZXJzaW9uaW5nIHN5c3RlbSBsaWtlIEdJVCBpZiBpdCBjb250YWlucyBjb25maWRlbnRpYWwgY3JlZGVudGlhbHMuCgojIENyZWRpdHMKClBvcnRtYW4gc3RhcnRlZCBhcyBhIFBSIG9uIHRoZSBoYW5keSBbb3BlbmFwaS10by1wb3N0bWFuXShodHRwczovL2dpdGh1Yi5jb20vcG9zdG1hbmxhYnMvb3BlbmFwaS10by1wb3N0bWFuKSBwYWNrYWdlIHRvIGdlbmVyYXRlIGJhc2ljIFBvc3RtYW4gdGVzdHMgZnJvbSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgoKW0FwaWRlY2tdKGh0dHBzOi8vd3d3LmFwaWRlY2suY29tLykgaW1tZWRpYXRlbHkgc2F3IHRoZSBQUidzIHZhbHVlIGFuZCBjb2xsYWJvcmF0ZWQgd2l0aCB0aGUgb3JpZ2luYWwgYXV0aG9yLCBbVGltIEhhc2VsYWFyc10oaHR0cHM6Ly9naXRodWIuY29tL3RoaW04MSksIHRvIGFkb3B0IHRoZSBmdW5jdGlvbmFsaXR5IGFuZCBleHRlbmQgdGhlIG9wdGlvbnMgJiB0b29saW5nIHRvIGNyZWF0ZSAiUG9ydG1hbiIuCgpUaGUgZ29hbCBvZiBQb3J0bWFuIGlzIHRvIGRyaXZlIEFQSSBhdXRvbWF0aW9uIGJ5ICdwb3J0aW5nJyBhIHN0YXRpYyBPcGVuQVBJIGRvY3VtZW50IHRvIGEgZHluYW1pYyBQb3N0bWFuIGNvbGxlY3Rpb24gdGhhdCBpbmNsdWRlcyBhIHBvd2VyZnVsIHRlc3Rpbmcgc3VpdGUgd2l0aCB2YXJpYWJsZSByZXF1ZXN0cywgYm9kaWVzIGFuZCBtb3JlLiBBbGwgdGhpcyB3aGlsZSBiZWluZyBlYXN5IHRvIGNvbmZpZ3VyZSAmIHJlYWR5IHRvIHVzZS4KClBvcnRtYW4gaXMgYSB2YWx1YWJsZSB0b29sIGluIGFueSBPcGVuQVBJIHdvcmtmbG93LCBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQgb3IgYXMgcGFydCBvZiBhIENJL0NEIGF1dG9tYXRpb24gcGlwZWxpbmUuCgpDcmVkaXRzIGZvciB0aGlzIHBhY2thZ2UgZm9yIHRoZSBoYXJkIHdvcmsgb2YgW05pY2sgTGxveWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrbGxveWQpIGFuZCBbVGltIEhhc2VsYWFyc10oaHR0cHM6Ly9naXRodWIuY29tL3RoaW04MSkuCgojIEZ1dHVyZSBpZGVhcwoKLSBbIF0gTWFrZSBQb3N0bWFuIHNlY3VyaXR5IGR5bmFtaWMKCiMgUmVzb3VyY2VzCgpBIGNvbGxlY3Rpb24gb2YgYmxvZyBwb3N0cyBhbmQgcmVzb3VyY2VzIGFib3V0IFBvcnRtYW4KCi0gaHR0cHM6Ly93d3cuYW5kbW9yZS5kZXYvYmxvZy9nZXR0aW5nLXN0YXJ0ZWQtcG9ydG1hbi8gYnkgW2FuZG1vcmVkZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRtb3JlZGV2KQotIGh0dHBzOi8vaXRuZXh0LmlvL2F1dG9tYXRpbmctYXBpLXRlc3Rpbmctd2l0aC1wb3J0bWFuLXBvc3RtYW4tYW5kLW5ld21hbi1lYzFhODY5Y2JjOTkgYnkgVHlsZXIgT3dlbgotIGh0dHBzOi8vd3d3LmNvZGVjZW50cmljLmRlL3dpc3NlbnMtaHViL2Jsb2cvY2hhcmdlLXlvdXItYXBpcy12b2x1bWUtMy1vcHRpbWl6aW5nLWFwaS10ZXN0aW5nLXdpdGgtY29udHJhY3QtdGVzdGluZyBieSBbRGFuaWVsIEtvY290XShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsa29jb3QpCi0gaHR0cHM6Ly9ibG9nLmFwaWRlY2suY29tL3BvcnRtYW4tYXBpLXRlc3RpbmcgYnkgW0NocmlzIFdvb2RdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9zZW5zaWJsZXdvb2QvKQotIGh0dHBzOi8vZGV2LnRvL29uZWFkdmFuY2VkL2FwaS1wcm92aWRlci1jb250cmFjdC10ZXN0aW5nLWZvci1hbGwtd2l0aC1wb3J0bWFuLW9wZW5hcGktYW5kLXBvc3RtYW4tNGxsMSBieSBbQWxleCBTYXZhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zYXZhZ2UtYWxleCkKLSBodHRwczovL2dpdGh1Yi5jb20vdGhpbTgxL3NwZWMtZHJpdmVuLW9wZW5hcGktY29udHJhY3QtcGVyZm9ybWFuY2UtdGVzdGluZyBieSBbVGltIEhhc2VsYWFyc10oaHR0cHM6Ly9naXRodWIuY29tL3RoaW04MSkKLSBodHRwczovL3d3dy5jb2RlY2VudHJpYy5kZS93aXNzZW5zLWh1Yi9ibG9nL2NoYXJnZS15b3VyLWFwaXMtdm9sdW1lLTI1LWNvbnRyYWN0LXRlc3RpbmcgYnkgUGFzcXVhbGUgQnJ1bmVsbGkKLSBodHRwczovL3Fhc2UuaW8vYmxvZy9hdXRvbWF0ZWQtY29udHJhY3QtdGVzdGluZy9hbXAvIENvbnRyYWN0IFRlc3RpbmcgaW4gQWN0aW9uIGJ5IEtpcmlsbCBJdmxpZXYK readmeEtag: '"110a3b4a82f73303073d59bb138e829fa9055262"' readmeLastModified: Thu, 22 Aug 2024 08:45:07 GMT repositoryId: 364542854 description: >- Port OpenAPI Specs to Postman Collections, inject test suite and run via Newman 👨🏽‍🚀 created: '2021-05-05T10:42:29Z' updated: '2024-08-28T20:27:14Z' language: TypeScript archived: false stars: 632 watchers: 10 forks: 59 owner: apideck-libraries logo: https://avatars.githubusercontent.com/u/73573473?v=4 license: Apache-2.0 repoEtag: '"21cb819cc4766b913857ed66b2898bd3d241dc33bd873deb0c5587861baabedb"' repoLastModified: Wed, 28 Aug 2024 20:27:14 GMT foundInMaster: true id: a03cdb329f630a946a946dfe26802c43 - source: https://openapi.tools/ name: Step CI category: - Testing - Converters - Data Validators language: - CLI - Node.js link: https://stepci.com repository: https://github.com/stepci/stepci source_description: > Open-source framework for API Quality Assurance. Generate multi-step test-scenarios from OpenAPI. Validate responses against description documents and more. v3: true id: 50dd208178d094d51cbcd8e57f209c23 repositoryMetadata: base64Readme: >- IVtTY3JlZW4gUmVjb3JkaW5nIDIwMjMtMTAtMDQgYXQgMTUgNDMgMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwY2kvc3RlcGNpL2Fzc2V0cy8xMDQwMDA2NC84ODFlZmQ0OS1mZDkzLTRmZjgtOGU5OS00YjZlMjRmZTEyMjcpCgo+ICoqTm90ZSoqCj4gV2UganVzdCBhbm5vdW5jZWQgW1N1cHBvcnQgUGxhbl0oaHR0cHM6Ly9zdGVwY2kuY29tLyNwcmljaW5nKSBmb3IgU3RlcCBDSQoKPiAqKkltcG9ydGFudCoqCj4gRm9yIHVzZXJzIG1pZ3JhdGluZyBmcm9tIFBvc3RtYW4gYW5kIEluc29tbmlhLCBzZWUgaXNzdWVzIFsjMjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwY2kvc3RlcGNpL2lzc3Vlcy8yOSkgYW5kIFsjMzBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwY2kvc3RlcGNpL2lzc3Vlcy8zMCkgcmVzcGVjdGl2ZWx5CgojIFdlbGNvbWUKClN0ZXAgQ0kgaXMgYW4gb3Blbi1zb3VyY2UgQVBJIFF1YWxpdHkgQXNzdXJhbmNlIGZyYW1ld29yawoKLSAqKkxhbmd1YWdlLWFnbm9zdGljKiouIENvbmZpZ3VyZSBlYXNpbHkgdXNpbmcgWUFNTCwgSlNPTiBvciBKYXZhU2NyaXB0Ci0gKipSRVNULCBHcmFwaFFMLCBnUlBDLCB0UlBDLCBTT0FQKiouIFRlc3QgZGlmZmVyZW50IEFQSSB0eXBlcyBpbiBvbmUgd29ya2Zsb3cKLSAqKlNlbGYtaG9zdGVkKiouIFRlc3Qgc2VydmljZXMgb24geW91ciBuZXR3b3JrLCBsb2NhbGx5IGFuZCBDSS9DRAotICoqSW50ZWdyYXRlZCoqLiBQbGF5IG5pY2VseSB3aXRoIG90aGVycwoKW+KGkiAqKlJlYWQgdGhlIERvY3MqKl0oaHR0cHM6Ly9kb2NzLnN0ZXBjaS5jb20pCgpb4oaSICoqVHJ5IHRoZSBPbmxpbmUgUGxheWdyb3VuZCoqXShodHRwczovL3N0ZXBjaS5jb20pCgpb4oaSICoqSm9pbiB1cyBvbiBEaXNjb3JkKipdKGh0dHBzOi8vZGlzY29yZC5nZy9LcUpKekozQlR1KQoKIyMgR2V0IHN0YXJ0ZWQKCjEuIEluc3RhbGwgdGhlIENMSQoKICAgKipVc2luZyBbTm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnL2VuLykqKgoKICAgIGBgYAogICAgbnBtIGluc3RhbGwgLWcgc3RlcGNpCiAgICBgYGAKCiAgICA+ICoqTm90ZSoqOiBNYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBMVFMgdmVyc2lvbiBvZiBOb2RlLmpzCgogICAgKipVc2luZyBbSG9tZWJyZXddKGh0dHBzOi8vYnJldy5zaC8pKioKCiAgICBgYGAKICAgIGJyZXcgaW5zdGFsbCBzdGVwY2kKICAgIGBgYAoKMi4gQ3JlYXRlIGV4YW1wbGUgd29ya2Zsb3cKCiAgICAqKndvcmtmbG93LnltbCoqCgogICAgYGBgeWFtbAogICAgdmVyc2lvbjogIjEuMSIKICAgIG5hbWU6IFN0YXR1cyBDaGVjawogICAgZW52OgogICAgICBob3N0OiBleGFtcGxlLmNvbQogICAgdGVzdHM6CiAgICAgIGV4YW1wbGU6CiAgICAgICAgc3RlcHM6CiAgICAgICAgICAtIG5hbWU6IEdFVCByZXF1ZXN0CiAgICAgICAgICAgIGh0dHA6CiAgICAgICAgICAgICAgdXJsOiBodHRwczovLyR7e2Vudi5ob3N0fX0KICAgICAgICAgICAgICBtZXRob2Q6IEdFVAogICAgICAgICAgICAgIGNoZWNrOgogICAgICAgICAgICAgICAgc3RhdHVzOiAvXjIwLwogICAgYGBgCgogICAgPiAqKk5vdGUqKjogWW91IGNhbiBhbHNvIGFsc28gdXNlIEpTT04gZm9ybWF0IHRvIGNvbmZpZ3VyZSB5b3VyIHdvcmtmbG93CgozLiBSdW4gdGhlIHdvcmtmbG93CgogICAgYGBgCiAgICBzdGVwY2kgcnVuIHdvcmtmbG93LnltbAogICAgYGBgCgogICAgYGBgCiAgICBQQVNTICBleGFtcGxlCgogICAgVGVzdHM6IDAgZmFpbGVkLCAxIHBhc3NlZCwgMSB0b3RhbAogICAgU3RlcHM6IDAgZmFpbGVkLCAxIHBhc3NlZCwgMSB0b3RhbAogICAgVGltZTogIDAuNTU5cywgZXN0aW1hdGVkIDFzCgogICAgV29ya2Zsb3cgcGFzc2VkIGFmdGVyIDAuNTU5cwogICAgYGBgCgojIyBEb2N1bWVudGF0aW9uCgpEb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBvbiBbZG9jcy5zdGVwY2kuY29tXShodHRwczovL2RvY3Muc3RlcGNpLmNvbSkKCiMjIEV4YW1wbGVzCgpZb3UgY2FuIGZpbmQgZXhhbXBsZSB3b3JrZmxvd3MgdW5kZXIgW2BleGFtcGxlcy9gXShleGFtcGxlcy8pCgojIyBDb21tdW5pdHkKCkpvaW4gb3VyIGNvbW11bml0eSBvbiBbRGlzY29yZF0oaHR0cHM6Ly9kaXNjb3JkLmdnL0txSkp6SjNCVHUpIGFuZCBbR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vc3RlcGNpL3N0ZXBjaS9kaXNjdXNzaW9ucykKCiMjIENvbnRyaWJ1dGluZwoKQXMgYW4gb3Blbi1zb3VyY2UgcHJvamVjdCwgd2Ugd2VsY29tZSBjb250cmlidXRpb25zIGZyb20gdGhlIGNvbW11bml0eS4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW55IGJ1Z3Mgb3Igd2FudCB0byBhZGQgc29tZSBpbXByb3ZlbWVudHMsIHBsZWFzZSBmZWVsIGZyZWUgdG8gb3BlbiBhbiBpc3N1ZSBvciBwdWxsIHJlcXVlc3QKCiMjIFN1cHBvcnQgUGxhbgoKR2V0IFByby1sZXZlbCBzdXBwb3J0IHdpdGggU0xBLCBvbmJvYXJkaW5nLCBwcmlvcml0aXplZCBmZWF0dXJlLXJlcXVlc3RzIGFuZCBidWdmaXhlcy4KClvihpIgKipMZWFybiBtb3JlKipdKGh0dHBzOi8vc3RlcGNpLmNvbS8jcHJpY2luZykKCjxhIGhyZWY9Imh0dHBzOi8vY2FsLmNvbS91c2hha292L3N0ZXAtY2ktZGVtbyI+PGltZyBhbHQ9IkJvb2sgdXMgd2l0aCBDYWwuY29tIiBzcmM9Imh0dHBzOi8vY2FsLmNvbS9ib29rLXdpdGgtY2FsLWRhcmsuc3ZnIiAvPjwvYT4KCiMjIFByaXZhY3kKCkJ5IGRlZmF1bHQsIHRoZSBDTEkgY29sbGVjdHMgYW5vbnltb3VzIHVzYWdlIGRhdGEsIHdoaWNoIGluY2x1ZGVzOgoKLSBVbmlxdWUgdXNlciBJRAotIE9TIE5hbWUKLSBOb2RlIFZlcnNpb24KLSBDTEkgVmVyc2lvbgotIENvbW1hbmQgKGBzdGVwY2kgaW5pdGAsIGBzdGVwY2kgcnVuYCwgYHN0ZXBjaSBnZW5lcmF0ZWApCi0gRW52aXJvbm1lbnQgKExvY2FsLCBEb2NrZXIsIENJL0NEKQoKPiAqKk5vdGUqKgo+IFRoZSB1c2FnZSBhbmFseXRpY3MgY2FuIGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgYFNURVBDSV9ESVNBQkxFX0FOQUxZVElDU2AgZW52aXJvbm1lbnQgdmFyaWFibGUKCiMjIExpY2Vuc2UKClRoZSBzb3VyY2UgY29kZSBpcyBkaXN0cmlidXRlZCB1bmRlciBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIHRlcm1zCg== readmeEtag: '"dd8463cf1c9e81e4c7825e4e6f74da1ca906f414"' readmeLastModified: Sat, 03 Aug 2024 09:44:52 GMT repositoryId: 537500924 description: Automated API Testing and Quality Assurance created: '2022-09-16T14:48:21Z' updated: '2024-09-04T13:09:50Z' language: TypeScript archived: false stars: 1616 watchers: 13 forks: 72 owner: stepci logo: https://avatars.githubusercontent.com/u/61350067?v=4 license: MPL-2.0 repoEtag: '"726611a5bafad92268a813609937998f0af681110e9f8362cd2cac2cc04c4871"' repoLastModified: Wed, 04 Sep 2024 13:09:50 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags name: openapi-spring-webflux-validator category: - Description Validators - Data Validators repository: https://github.com/cdimascio/openapi-spring-webflux-validator language: - Java - Kotlin source_description: > A friendly kotlin library to validate API endpoints against an OpenAPI description document. v2: true v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvcgohW10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2NkaW1hc2Npby9vcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvci5zdmc/YnJhbmNoPW1hc3RlcilbIVtNYXZlbiBDZW50cmFsXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby5naXRodWIuY2RpbWFzY2lvL29wZW5hcGktc3ByaW5nLXdlYmZsdXgtdmFsaWRhdG9yLnN2Zz9sYWJlbD1NYXZlbiUyMENlbnRyYWwpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3QvaW8uZ2l0aHViLmNkaW1hc2Npby9vcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvci80LjIuMC9qYXIpIFshW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlL2Y3OGI3MmNhOTAxMDRlNDJiMTExNzIzYTc3MjBhZGYzKV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9hcHAvY2RpbWFzY2lvL29wZW5hcGktc3ByaW5nLXdlYmZsdXgtdmFsaWRhdG9yP3V0bV9zb3VyY2U9Z2l0aHViLmNvbSZhbXA7dXRtX21lZGl1bT1yZWZlcnJhbCZhbXA7dXRtX2NvbnRlbnQ9Y2RpbWFzY2lvL29wZW5hcGktc3ByaW5nLXdlYmZsdXgtdmFsaWRhdG9yJmFtcDt1dG1fY2FtcGFpZ249QmFkZ2VfR3JhZGUpICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtQXBhY2hlJTIwMi4wLWJsdWUuc3ZnKTwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTYtb3JhbmdlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKCNjb250cmlidXRvcnMtKQo8IS0tIEFMTC1DT05UUklCVVRPUlMtQkFER0U6RU5EIC0tPiAKCkEgZnJpZW5kbHkga290bGluIGxpYnJhcnkgdG8gdmFsaWRhdGUgQVBJIGVuZHBvaW50cyB1c2luZyBhbiBfT3BlbkFwaSAzXyBvciBfU3dhZ2dlciAyXyBzcGVjaWZpY2F0aW9uLiBHcmVhdCB3aXRoIHdlYmZsdXggZnVuY3Rpb25hbC4gCkl0ICoqd29ya3MgaGFwcGlseSB3aXRoIFNwcmluZyBXZWJmbHV4IDYncyBiYXNlbGluZSBvZiBKYWthcnRhIEpWTSBydW50aW1lID49MTcqKi4gCjxwIGFsaWduPSJjZW50ZXIiPgoJPGltZyB3aWR0aD0iMzAwIiBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jZGltYXNjaW8vb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IvbWFzdGVyL2Fzc2V0cy9vcGVuYXBpLXdlYmZsdXgtdmFsaWRhdG9yLWxvZ28yLnBuZyIgd2lkdGg9IjYwMCIvPgo8L3A+CgpTdXBwb3J0cyBzcGVjaWZpY2F0aW9ucyBpbiBfWUFNTF8gYW5kIF9KU09OXwoKIyMgUHJlcXVpc2l0ZXMKCmFuZCBTcHJpbmcgV2ViZmx1eCA2ICsgSmF2YSA+PTE3CgpfRm9yIHVzZSB3aXRoIFNwcmluZyBCb290IDIgYW5kIFdlYmZsdXggNSwgdXNlIGBvcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvcmAgdmVyc2lvbiBgMy41LjBgLiBKYXZhIDggb3IgZ3JlYXRlciBpcyByZXF1aXJlZC5fIAoKIyMgSW5zdGFsbAoKIyMjIE1hdmVuCgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5pby5naXRodWIuY2RpbWFzY2lvPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3I8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj40LjIuMDwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCiMjIyBHcmFkbGUKCmBgYGdyb292eQpjb21waWxlICdpby5naXRodWIuY2RpbWFzY2lvOm9wZW5hcGktc3ByaW5nLXdlYmZsdXgtdmFsaWRhdG9yOjQuMi4wJwpgYGAKCkZvciBzYnQsIGdyYXBlLCBpdnkgYW5kIG1vcmUsIHNlZSBbaGVyZV0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnLyNhcnRpZmFjdGRldGFpbHMlN0Npby5naXRodWIuY2RpbWFzY2lvJTdDb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IlN0MyLjAuMCU3Q2phcikKCiMjIFVzYWdlIChLb3RsaW4pCgpUaGlzIHNlY3Rpb24gYW5kIHRoZSBuZXh0IGRlc2NyaWJlIHVzYWdlIHdpdGggS290bGluIGFuZCBKYXZhIHJlc3BlY3RpdmVseS4KClNlZSB0aGlzIFtjb21wbGV0ZSBTcHJpbmcgV2ViZmx1eCBleGFtcGxlIHRoYXQgdXNlcyBvcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9rb3RsaW4tc3dhZ2dlci1zcHJpbmctZnVuY3Rpb25hbC10ZW1wbGF0ZSkuCgojIyMgQ29uZmlndXJlIChLb3RsaW4pCgpUaGlzIG9uZS10aW1lIGNvbmZpZ3VyYXRpb24gcmVxdWlyZXMgeW91IHRvIHByb3ZpZGUgdGhlIF9sb2NhdGlvbiBvZiB0aGUgb3BlbmFwaS9zd2FnZ2VyIHNwZWNpZmljYXRpb25fIGFuZCBhbiBvcHRpb25hbCBfY3VzdG9tIGVycm9yIGhhbmRsZXJfLgoKU3VwcG9ydHMgYEpTT05gIGFuZCBgWUFNTGAKCmBgYGtvdGxpbgppbXBvcnQgaW8uZ2l0aHViLmNkaW1hc2Npby5vcGVuYXBpLlZhbGlkYXRlCgp2YWwgdmFsaWRhdGUgPSBWYWxpZGF0ZS5jb25maWd1cmUoInN0YXRpYy9hcGkueWFtbCIpCmBgYAoKd2l0aCBjdXN0b20gZXJyb3IgaGFuZGxlcgoKYGBga290bGluCmltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5yZWFjdGl2ZS5mdW5jdGlvbi5zZXJ2ZXIuU2VydmVyUmVxdWVzdAoKZGF0YSBjbGFzcyBNeUVycm9yKHZhbCByZXF1ZXN0OiBTZXJ2ZXJSZXF1ZXN0LCB2YWwgY29kZTogU3RyaW5nLCB2YWwgbWVzc2FnZXM6IExpc3Q8U3RyaW5nPikKdmFsIHZhbGlkYXRlID0gVmFsaWRhdGUuY29uZmlndXJlKCJzdGF0aWMvYXBpLmpzb24iKSB7IHJlcXVlc3QsIHN0YXR1cywgbWVzc2FnZXMgLT4KICAgTXlFcnJvcihyZXF1ZXN0LCBzdGF0dXMubmFtZSwgbWVzc2FnZXMpCn0KYGBgCgp3aXRoIGN1c3RvbSBPYmplY3RNYXBwZXIgZmFjdG9yeToKCmBgYGtvdGxpbgp2YWwgdmFsaWRhdGUgPSBWYWxpZGF0ZS5jb25maWd1cmUoCiAgIG9wZW5BcGlTd2FnZ2VyUGF0aCA9ICJhcGkueWFtbCIsCiAgIGVycm9ySGFuZGxlciA9IHsgcmVxdWVzdCwgc3RhdHVzLCBtZXNzYWdlIC0+IFZhbGlkYXRpb25FcnJvcihyZXF1ZXN0LCBzdGF0dXMudmFsdWUoKSwgbWVzc2FnZVswXSkgfSwKICAgb2JqZWN0TWFwcGVyRmFjdG9yeSA9IHsgT2JqZWN0TWFwcGVyKCkKICAgICAgIC5yZWdpc3RlcktvdGxpbk1vZHVsZSgpCiAgICAgICAucmVnaXN0ZXJNb2R1bGUoSmF2YVRpbWVNb2R1bGUoKSkKICAgICAgIC5jb25maWd1cmUoU2VyaWFsaXphdGlvbkZlYXR1cmUuV1JJVEVfREFURVNfQVNfVElNRVNUQU1QUywgZmFsc2UpIH0KKQpgYGAKCiMjIyBWYWxpZGF0ZSBhIHJlcXVlc3QgKEtvdGxpbiArIFJlYWN0b3IpCgpZb3UgY2FuIG5vdyB2YWxpZGF0ZSBhIHJlcXVlc3QgaW4gYSBjb3JvdXRpbmUgc3R5bGUsCnVzaW5nIHRoZSBgdmFsaWRhdGVgIGluc3RhbmNlIGNyZWF0ZWQgW2Fib3ZlXSgjY29uZmlndXJlLWtvdGxpbik6Cgp3aXRob3V0IGEgYm9keQoKYGBga290bGluCnZhbGlkYXRlLnJlcXVlc3QocmVxKSB7CiAgICAvLyBEbyBzdHVmZiBlLmcuIHJldHVybiBhIGxpc3Qgb2YgbmFtZXMgCiAgICBvaygpLmJvZHkoTW9uby5qdXN0KGxpc3RPZigiY2FybWluZSIsICJhbGV4IiwgImVsaWFuYSIpKSkKfQpgYGAKCndpdGggYm9keQoKYGBga290bGluCnZhbGlkYXRlLnJlcXVlc3QocmVxKS53aXRoQm9keShVc2VyOjpjbGFzcy5qYXZhKSB7IGJvZHkgLT4KICAgIC8vIE5vdGUgdGhhdCBib2R5IGlzIGRlc2VyaWFsaXplZCBhcyBVc2VyIQogICAgLy8gTm93IHlvdSBjYW4gZG8gc3R1ZmYuIAogICAgLy8gRm9yIGV4YW1wbGUsIGxldHMgZWNobyB0aGUgcmVxdWVzdCBhcyB0aGUgcmVzcG9uc2UgCiAgICBvaygpLmJvZHkoTW9uby5qdXN0KGJvZHkpKQp9CmBgYAoKd2l0aCBib2R5IHlvdSB3YW50IHRvIHByb2Nlc3MgYXMgc3RyaW5nIChlLmcuIGZvciBjb21wdXRpbmcgYSByZXF1ZXN0IHNpZ25hdHVyZSksIG9yIHRoYXQgeW91IHdhbnQgdG8gZGVzZXJpYWxpemUgc29tZWhvdyBzcGVjaWZpY2FsbHkKCmBgYGtvdGxpbgp2YWwgaWRlbnRpdHk6IChTdHJpbmcpIC0+IFN0cmluZyA9IHsgaXQgfQp2YWxpZGF0ZS5yZXF1ZXN0KHJlcSkud2l0aEJvZHkoU3RyaW5nOjpjbGFzcy5qYXZhLCByZWFkVmFsdWUgPSBpZGVudGl0eSkgeyBib2R5IC0+CiAgICBvaygpLmJvZHkoTW9uby5qdXN0KCJjb250ZW50IGxlbmd0aCBpcyAke2JvZHkubGVuZ3RofSIpKQp9CmBgYAoKIyMjIFZhbGlkYXRlIGEgcmVxdWVzdCAoS290bGluICsgY29yb3V0aW5lcykKCk9yIHlvdSBjYW4gdmFsaWRhdGUgYSByZXF1ZXN0IGluIGEgY29yb3V0aW5lIHN0eWxlLAp1c2luZyB0aGUgYHZhbGlkYXRlYCBpbnN0YW5jZSBjcmVhdGVkIFthYm92ZV0oI2NvbmZpZ3VyZS1rb3RsaW4pOgoKCndpdGhvdXQgYSBib2R5CgpgYGBrb3RsaW4KdmFsaWRhdGUucmVxdWVzdEFuZEF3YWl0KHJlcSkgewogICAgLy8gRG8gc3R1ZmYgZS5nLiByZXR1cm4gYSBsaXN0IG9mIG5hbWVzIAogICAgb2soKS5ib2R5VmFsdWVBbmRBd2FpdChsaXN0T2YoImNhcm1pbmUiLCAiYWxleCIsICJlbGlhbmEiKSkKfQpgYGAKCndpdGggYm9keQoKYGBga290bGluCnZhbGlkYXRlLnJlcXVlc3QocmVxKS5hd2FpdEJvZHkoVXNlcjo6Y2xhc3MuamF2YSkgeyBib2R5OiBVc2VyIC0+CiAgICAvLyBOb3RlIHRoYXQgYm9keSBpcyBkZXNlcmlhbGl6ZWQgYXMgVXNlciEKICAgIC8vIE5vdyB5b3UgY2FuIGRvIHN0dWZmLiAKICAgIC8vIEZvciBleGFtcGxlLCBsZXRzIGVjaG8gdGhlIHJlcXVlc3QgYXMgdGhlIHJlc3BvbnNlIAogICAgb2soKS5ib2R5VmFsdWVBbmRBd2FpdChib2R5KQp9CmBgYAoKd2l0aCBib2R5IHlvdSB3YW50IHRvIHByb2Nlc3MgYXMgc3RyaW5nIChlLmcuIGZvciBjb21wdXRpbmcgYSByZXF1ZXN0IHNpZ25hdHVyZSksIG9yIHRoYXQgeW91IHdhbnQgdG8gZGVzZXJpYWxpemUgc29tZWhvdyBzcGVjaWZpY2FsbHkKCmBgYGtvdGxpbgp2YWwgaWRlbnRpdHk6IChTdHJpbmcpIC0+IFN0cmluZyA9IHsgaXQgfQp2YWxpZGF0ZS5yZXF1ZXN0KHJlcSkuYXdhaXRCb2R5KFN0cmluZzo6Y2xhc3MuamF2YSwgaWRlbnRpdHkpIHsgYm9keTogU3RyaW5nIC0+CiAgICBvaygpLmJvZHlWYWx1ZUFuZEF3YWl0KCJjb250ZW50IGxlbmd0aCBpcyAke2JvZHkubGVuZ3RofSIpCn0KYGBgCgojIyBVc2FnZQoKIyMjIENvbmZpZ3VyZSAoSmF2YSkKVGhpcyBvbmUtdGltZSBjb25maWd1cmF0aW9uIHJlcXVpcmVzIHlvdSB0byBwcm92aWRlIHRoZSBfbG9jYXRpb24gb2YgdGhlIG9wZW5hcGkvc3dhZ2dlciBzcGVjaWZpY2F0aW9uXyBhbmQgYW4gb3B0aW9uYWwgX2N1c3RvbSBlcnJvciBoYW5kbGVyXy4KCmBgYGphdmEKaW1wb3J0IGlvLmdpdGh1Yi5jZGltYXNjaW8ub3BlbmFwaS5WYWxpZGF0ZTsKClZhbGlkYXRlPFZhbGlkYXRpb25FcnJvcj4gdmFsaWRhdGUgPSBWYWxpZGF0ZS5jb25maWd1cmUoInN0YXRpYy9hcGkuanNvbiIpCmBgYAoKd2l0aCBjdXN0b20gZXJyb3IgaGFuZGxlcgoKYGBgamF2YQppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIucmVhY3RpdmUuZnVuY3Rpb24uc2VydmVyLlNlcnZlclJlcXVlc3Q7CgpjbGFzcyBNeUVycm9yIHsKICAgIHByaXZhdGUgU2VydmVyUmVxdWVzdCByZXF1ZXN0OwogICAgcHJpdmF0ZSBTdHJpbmcgaWQ7CiAgICBwcml2YXRlICBTdHJpbmcgbWVzc2FnZXM7CiAgICBwdWJsaWMgTXlFcnJvcihTZXJ2ZXJSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBpZCwgTGlzdDxTdHJpbmc+IG1lc3NhZ2VzKSB7CiAgICAgICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICB0aGlzLmlkID0gaWQ7CiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IG1lc3NhZ2VzOwogICAgfQogICAgcHVibGljIFNlcnZlclJlcXVlc3QgZ2V0UmVxdWVzdCgpIHsKICAgICAgICByZXR1cm4gcmVxdWVzdDsKICAgIH0KICAgIHB1YmxpYyBTdHJpbmcgZ2V0SWQoKSB7CiAgICAgICAgcmV0dXJuIGlkOwogICAgfQogICAgcHVibGljIHZvaWQgc2V0SWQoU3RyaW5nIGlkKSB7CiAgICAgICAgdGhpcy5pZCA9IGlkOwogICAgfQogICAgcHVibGljIExpc3Q8U3RyaW5nPiBnZXRNZXNzYWdlcygpIHsKICAgICAgICByZXR1cm4gbWVzc2FnZXM7CiAgICB9CiAgICBwdWJsaWMgdm9pZCBzZXRNZXNzYWdlcyhMaXN0PFN0cmluZz4gbWVzc2FnZXMpIHsKICAgICAgICB0aGlzLm1lc3NhZ2VzID0gbWVzc2FnZXM7CiAgICB9ICAgICAKfQpgYGAKCmBgYGphdmEKVmFsaWRhdGU8VmFsaWRhdGlvbkVycm9yPiB2YWxpZGF0ZSA9IFZhbGlkYXRlLmNvbmZpZ3VyZSgic3RhdGljL2FwaS5qc29uIiwgKHJlcXVlc3QsIHN0YXR1cywgbWVzc2FnZXMpIC0+CiAgICBuZXcgTXlFcnJvcihyZXF1ZXN0LCBzdGF0dXMuZ2V0TmFtZSgpLCBtZXNzYWdlcykKKTsKYGBgCgojIyMgVmFsaWRhdGUgYSByZXF1ZXN0IChKYXZhKQoKVXNpbmcgdGhlIGB2YWxpZGF0ZWAgaW5zdGFuY2UgY3JlYXRlZCBhYm92ZSwgeW91IGNhbiBub3cgdmFsaWRhdGUgYSByZXF1ZXN0OgoKd2l0aG91dCBhIGJvZHkKCmBgYGphdmEKQXJyYXlMaXN0PFN0cmluZz4gdXNlcnMgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKSB7ewogICAgYWRkKCJjYXJtaW5lIik7CiAgICBhZGQoImFsZXgiKTsKICAgIGFkZCgiZWxpYW5hIik7Cn19OwoKdmFsaWRhdGUucmVxdWVzdChyZXEsICgpIC0+CiAgICAvLyBEbyBzdHVmZiBlLmcuIHJldHVybiBhIGxpc3Qgb2YgdXNlciBuYW1lcwogICAgU2VydmVyUmVzcG9uc2Uub2soKS5ib2R5VmFsdWUodXNlcnMpCik7CmBgYAoKd2l0aCBib2R5CgpgYGBqYXZhCnZhbGlkYXRlCiAgICAucmVxdWVzdChyZXEpCiAgICAud2l0aEJvZHkoVXNlci5jbGFzcywgdXNlciAtPiAKICAgICAgICAvLyBOb3RlIHRoYXQgYm9keSBpcyBkZXNlcmlhbGl6ZWQgYXMgVXNlciEKICAgICAgICAvLyBOb3cgeW91IGNhbiBkbyBzdHVmZi4gCiAgICAgICAgLy8gRm9yIGV4YW1wbGUsIGxldHMgZWNobyB0aGUgcmVxdWVzdCBhcyB0aGUgcmVzcG9uc2UKICAgICAgICBTZXJ2ZXJSZXNwb25zZS5vaygpLmJvZHlWYWx1ZSh1c2VyKQogICAgKTsKYGBgCgp3aXRoIGJvZHkgeW91IHdhbnQgdG8gcHJvY2VzcyBhcyBzdHJpbmcgKGUuZy4gZm9yIGNvbXB1dGluZyBhIHJlcXVlc3Qgc2lnbmF0dXJlKQoKYGBgamF2YQp2YWxpZGF0ZQogICAgLnJlcXVlc3QocmVxKQogICAgLndpdGhCb2R5KFN0cmluZy5jbGFzcywgcyAtPiBzLCBib2R5IC0+CiAgICAgICAgU2VydmVyUmVzcG9uc2Uub2soKS5ib2R5VmFsdWUoImNvbnRlbnQgbGVuZ3RoIGlzICIgKyBib2R5Lmxlbmd0aCgpKQogICAgKTsKYGBgCgojIyBFeGFtcGxlIFZhbGlkYXRpb24gT3V0cHV0CgpMZXQncyBhc3N1bWUgYSBgUE9TVGAgcmVxdWVzdCB0byBjcmVhdGUgYSB1c2VyIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgcmVxdWVzdCBib2R5OgoKYGBganNvbgp7CiAgImZpcnN0bmFtZSI6ICJjYXJtaW5lIiwKICAibGFzdG5hbWUiOiAiZGltYXNpY28iCn0KYGBgCgpMZXQncyBub3cgYXNzdW1lIGFuIEFQSSB1c2VyIG1pc3NwZWxscyBgbGFzdG5hbWVgIGFzIGBsYXN0bmFtYAoKYGBgc2hlbGwKY3VybCAtWCBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvdXNlcnMgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgLWQneyAKICAiZmlyc3RuYW1lIjogImMiLCAKICAibGFzdG5hbSI6ICJkIiAKfScKYGBgCgpgb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3JgIGF1dG9tYXRpY2FsbHkgdmFsaWRhdGVzIHRoZSByZXF1ZXN0IGFnYWluc3QgYSBTd2FnZ2VyIHNwZWN0IGFuZCByZXR1cm5zOgoKYGBganNvbgp7CiAgImNvZGUiOiA0MDAsCiAgIm1lc3NhZ2VzIjpbCgkgICJPYmplY3QgaW5zdGFuY2UgaGFzIHByb3BlcnRpZXMgd2hpY2ggYXJlIG5vdCBhbGxvd2VkIGJ5IHRoZSBzY2hlbWE6IFtcImxhc3RuYW1cIl0iLAoJICAiT2JqZWN0IGhhcyBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnRpZXMgKFtcImxhc3RuYW1lXCJdKSIKICBdCn0gCmBgYAoKKipXb2FoISBDb29sISEqKiA6LUQgCgojIyBFeGFtcGxlCgpMZXQncyBzYXkgeW91IGhhdmUgYW4gZW5kcG9pbnQgYC91c2Vyc2AgdGhhdCBzdXBwb3J0cyBib3RoIGBHRVRgIGFuZCBgUE9TVGAgb3BlcmF0aW9ucy4KCllvdSBjYW4gY3JlYXRlIHRob3NlIHJvdXRlcyBhbmQgdmFsaWRhdGUgdGhlbSBsaWtlIHNvOgoKKipDcmVhdGUgdGhlIHJvdXRlcyBpbiBhIHJlYWN0aXZlIG9yIGNvcm91dGluZSBzdHlsZToqKgoKYGBga290bGluCnBhY2thZ2UgbXlwcm9qZWN0LmNvbnRyb2xsZXJzCgppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5jb3JlLmlvLkNsYXNzUGF0aFJlc291cmNlCmltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuTWVkaWFUeXBlLioKaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLnJlYWN0aXZlLmZ1bmN0aW9uLnNlcnZlci5TZXJ2ZXJSZXNwb25zZS5wZXJtYW5lbnRSZWRpcmVjdAppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIucmVhY3RpdmUuZnVuY3Rpb24uc2VydmVyLmNvUm91dGVyCmltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5yZWFjdGl2ZS5mdW5jdGlvbi5zZXJ2ZXIucGx1cwppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIucmVhY3RpdmUuZnVuY3Rpb24uc2VydmVyLnJvdXRlcgppbXBvcnQgamF2YS5uZXQuVVJJCgpjbGFzcyBSb3V0ZXMocHJpdmF0ZSB2YWwgdXNlckhhbmRsZXI6IFVzZXJIYW5kbGVyKSB7CiAgICBmdW4gcm91dGVyKCkgPSByb3V0ZXIgewogICAgICAgICIvYXBpIi5uZXN0IHsKICAgICAgICAgICAgYWNjZXB0KEFQUExJQ0FUSU9OX0pTT04pLm5lc3QgewogICAgICAgICAgICAgICAgUE9TVCgiL3VzZXJzIiwgdXNlckhhbmRsZXI6OmNyZWF0ZSkKICAgICAgICAgICAgfQogICAgICAgICAgICBhY2NlcHQoVEVYVF9FVkVOVF9TVFJFQU0pLm5lc3QgewogICAgICAgICAgICAgICAgR0VUKCIvdXNlcnMiLCB1c2VySGFuZGxlcjo6ZmluZEFsbCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gKyBjb1JvdXRlciB7IAogICAgICAgICIvY29BcGkiLm5lc3QgewogICAgICAgICAgICBhY2NlcHQoQVBQTElDQVRJT05fSlNPTikubmVzdCB7CiAgICAgICAgICAgICAgICBQT1NUKCIvdXNlcnMiLCB1c2VySGFuZGxlcjo6Y29DcmVhdGUpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgYWNjZXB0KFRFWFRfRVZFTlRfU1RSRUFNKS5uZXN0IHsKICAgICAgICAgICAgICAgIEdFVCgiL3VzZXJzIiwgdXNlckhhbmRsZXI6OmNvRmluZEFsbCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpgYGAKCmBgYGtvdGxpbgpwYWNrYWdlIG15cHJvamVjdAoKaW1wb3J0IGlvLmdpdGh1Yi5jZGltYXNjaW8ub3BlbmFwaS5WYWxpZGF0ZQoKdmFsIHZhbGlkYXRlID0gVmFsaWRhdGUuY29uZmlndXJlKCJzdGF0aWMvYXBpLnlhbWwiKQpgYGAKCioqVmFsaWRhdGUgd2l0aCBvcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvcioqCgpgYGBrb3RsaW4KcGFja2FnZSBteXByb2plY3QuY29udHJvbGxlcnMKCmltcG9ydCBteXByb2plY3QubW9kZWxzLlVzZXIKaW1wb3J0IG15cHJvamVjdC52YWxpZGF0ZQppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIucmVhY3RpdmUuZnVuY3Rpb24uc2VydmVyLlNlcnZlclJlcXVlc3QKaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLnJlYWN0aXZlLmZ1bmN0aW9uLnNlcnZlci5TZXJ2ZXJSZXNwb25zZQppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIucmVhY3RpdmUuZnVuY3Rpb24uc2VydmVyLlNlcnZlclJlc3BvbnNlLm9rCmltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5yZWFjdGl2ZS5mdW5jdGlvbi5zZXJ2ZXIuYm9keVZhbHVlQW5kQXdhaXQKaW1wb3J0IHJlYWN0b3IuY29yZS5wdWJsaXNoZXIuRmx1eAppbXBvcnQgcmVhY3Rvci5jb3JlLnB1Ymxpc2hlci5Nb25vCgpjbGFzcyBVc2VySGFuZGxlciB7CgogICAgZnVuIGZpbmRBbGwocmVxOiBTZXJ2ZXJSZXF1ZXN0KTogTW9ubzxTZXJ2ZXJSZXNwb25zZT4gewogICAgICAgIHJldHVybiB2YWxpZGF0ZS5yZXF1ZXN0KHJlcSkgewogICAgICAgICAgICBvaygpLmJvZHlWYWx1ZShsaXN0T2YoImNhcm1pbmUiLCAiYWxleCIsICJlbGlhbmEiKSkKICAgICAgICB9CiAgICB9CgogICAgZnVuIGNyZWF0ZShyZXE6IFNlcnZlclJlcXVlc3QpOiBNb25vPFNlcnZlclJlc3BvbnNlPiB7CiAgICAgICAgcmV0dXJuIHZhbGlkYXRlLnJlcXVlc3QocmVxKS53aXRoQm9keShVc2VyOjpjbGFzcy5qYXZhKSB7CiAgICAgICAgICAgIC8vIGl0IGlzIHRoZSByZXF1ZXN0IGJvZHkgZGVzZXJpYWxpemVkIGFzIFVzZXIKICAgICAgICAgICAgb2soKS5ib2R5VmFsdWUoaXQpCiAgICAgICAgfQogICAgfQoKICAgIHN1c3BlbmQgZnVuIGNvRmluZEFsbChyZXE6IFNlcnZlclJlcXVlc3QpOiBTZXJ2ZXJSZXNwb25zZSB7CiAgICAgICAgcmV0dXJuIHZhbGlkYXRlLnJlcXVlc3RBbmRBd2FpdChyZXEpIHsKICAgICAgICAgICAgb2soKS5ib2R5VmFsdWVBbmRBd2FpdChsaXN0T2YoImNhcm1pbmUiLCAiYWxleCIsICJlbGlhbmEiKSkKICAgICAgICB9CiAgICB9CgogICAgc3VzcGVuZCBmdW4gY29DcmVhdGUocmVxOiBTZXJ2ZXJSZXF1ZXN0KTogU2VydmVyUmVzcG9uc2UgewogICAgICAgIHJldHVybiB2YWxpZGF0ZS5yZXF1ZXN0KHJlcSkuYXdhaXRCb2R5KFVzZXI6OmNsYXNzLmphdmEpIHsKICAgICAgICAgICAgLy8gaXQgaXMgdGhlIHJlcXVlc3QgYm9keSBkZXNlcmlhbGl6ZWQgYXMgVXNlcgogICAgICAgICAgICBvaygpLmJvZHlWYWx1ZUFuZEF3YWl0KGl0KQogICAgICAgIH0KICAgIH0KfQpgYGAKCiMjIExpY2Vuc2UKCltBcGFjaGUgMi4wXShodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQoKPGEgaHJlZj0iaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9tOTd0QTVjIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vYm1jLWNkbi5ueWMzLmRpZ2l0YWxvY2VhbnNwYWNlcy5jb20vQk1DLWJ1dHRvbi1pbWFnZXMvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyIgYWx0PSJCdXkgTWUgQSBDb2ZmZWUiIHN0eWxlPSJoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDt3aWR0aDogYXV0byAhaW1wb3J0YW50OyIgPjwvYT4KCiMjIENvbnRyaWJ1dG9ycyDinKgKClRoYW5rcyBnb2VzIHRvIHRoZXNlIHdvbmRlcmZ1bCBwZW9wbGUgKFtlbW9qaSBrZXldKGh0dHBzOi8vYWxsY29udHJpYnV0b3JzLm9yZy9kb2NzL2VuL2Vtb2ppLWtleSkpOgoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ3MDY2MTg/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+Q2FybWluZSBEaU1hc2NpbzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9vcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvci9jb21taXRzP2F1dGhvcj1jZGltYXNjaW8iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL29wZW5hcGktc3ByaW5nLXdlYmZsdXgtdmFsaWRhdG9yL2NvbW1pdHM/YXV0aG9yPWNkaW1hc2NpbyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IvY29tbWl0cz9hdXRob3I9Y2RpbWFzY2lvIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rcnp5a3J1Y3oiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE4MzY0MTc3P3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPktyenlzaWVrIEtydWN6ecWEc2tpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL29wZW5hcGktc3ByaW5nLXdlYmZsdXgtdmFsaWRhdG9yL2NvbW1pdHM/YXV0aG9yPWtyenlrcnVjeiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IvY29tbWl0cz9hdXRob3I9a3J6eWtydWN6IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9vcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvci9jb21taXRzP2F1dGhvcj1rcnp5a3J1Y3oiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NoZWplcmxha2FydGhpayI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTI4NzEwNzk/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+Q2hlamVybGEgS2FydGhpazwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9vcGVuYXBpLXNwcmluZy13ZWJmbHV4LXZhbGlkYXRvci9jb21taXRzP2F1dGhvcj1jaGVqZXJsYWthcnRoaWsiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5rYXRpZWxldnkuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS84OTc1MTgxP3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPkthdGllIExldnk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IvY29tbWl0cz9hdXRob3I9a2F0aWVsZXZ5MSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcmVpbnRlcnByZXRjYXQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE2MTEwNzc/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+SWx5YSBCdWlsdWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IvY29tbWl0cz9hdXRob3I9cmVpbnRlcnByZXRjYXQiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3NpbW9uLnphbWJyb3Zza2kub3JnLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjczMTI4P3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlNpbW9uIFphbWJyb3Zza2k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IvY29tbWl0cz9hdXRob3I9emFtYnJvdnNraSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vb3BlbmFwaS1zcHJpbmctd2ViZmx1eC12YWxpZGF0b3IvY29tbWl0cz9hdXRob3I9emFtYnJvdnNraSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKPCEtLSBtYXJrZG93bmxpbnQtZW5hYmxlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lIQo= readmeEtag: '"a2e728aee174f34ca6d5605aad0082ccc6702d5c"' readmeLastModified: Wed, 28 Dec 2022 03:11:56 GMT repositoryId: 112494052 description: >- 🌱 A friendly kotlin library to validate API endpoints using an OpenApi 3.0 and Swagger 2.0 specification created: '2017-11-29T15:41:04Z' updated: '2024-06-05T21:22:01Z' language: Kotlin archived: false stars: 97 watchers: 6 forks: 13 owner: cdimascio logo: https://avatars.githubusercontent.com/u/4706618?v=4 license: NOASSERTION repoEtag: '"328d297af2b350f33bbb43e817e892e1e3fb7fd397e733953564b996b37b1fc9"' repoLastModified: Wed, 05 Jun 2024 21:22:01 GMT foundInMaster: true id: 73c574b5f31d77e560375bfaef2b65eb - source: - https://openapi.tools/ - openapi3 tags name: Spectral homepage: https://github.com/stoplightio/spectral language: - CLI - TypeScript - JavaScript source_description: > A flexible OpenAPI/AsyncAPI API linter, which can help you build anything from automated API Style Guides for API Governance workflows, or handle any other JSON/YAML object linting. functions. category: Description Validators link: https://stoplight.io/spectral repository: https://github.com/stoplightio/spectral v2: true v3: true v3_1: true repositoryMetadata: base64Readme: >- WyFbRGVtbyBvZiBTcGVjdHJhbCBsaW50aW5nIGFuIE9wZW5BUEkgZG9jdW1lbnQgZnJvbSB0aGUgQ0xJXSguL2RvY3MvaW1nL3JlYWRtZS1oZWFkZXIuc3ZnKV0oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vYXBpLWdvdmVybmFuY2U/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT1zcGVjdHJhbCZ1dG1fY2FtcGFpZ249cmVhZG1lKQpbIVtDaXJjbGVDSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jaXJjbGVjaS9idWlsZC9naXRodWIvc3RvcGxpZ2h0aW8vc3BlY3RyYWwvZGV2ZWxvcCldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL3N0b3BsaWdodGlvL3NwZWN0cmFsKSBbIVtucG0gRG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kdy9Ac3RvcGxpZ2h0L3NwZWN0cmFsLWNvcmU/Y29sb3I9Ymx1ZSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BzdG9wbGlnaHQvc3BlY3RyYWwtY29yZSkgWyFbU3RvcGxpZ2h0IEZvcmVzdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lY29sb2dpL3RyZWVzL3N0b3BsaWdodGluYyldW3N0b3BsaWdodF9mb3Jlc3RdCgotICoqQ3VzdG9tIFJ1bGVzZXRzKio6IENyZWF0ZSBjdXN0b20gcnVsZXMgdG8gbGludCBKU09OIG9yIFlBTUwgb2JqZWN0cwotICoqUmVhZHktdG8tdXNlIFJ1bGVzZXRzKio6IFZhbGlkYXRlIGFuZCBsaW50ICoqT3BlbkFQSSB2MiAmIHYzLngqKiBhbmQgKipBc3luY0FQSSoqIERvY3VtZW50cwotICoqQVBJIFN0eWxlIEd1aWRlcyoqOiBBdXRvbWF0ZWQgW0FQSSBTdHlsZSBHdWlkZXNdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL2FwaS1zdHlsZS1ndWlkZXMtZ3VpZGVsaW5lcy1hbmQtYmVzdC1wcmFjdGljZXM/dXRtX3NvdXJjZT1naXRodWIuY29tJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPWdpdGh1Yl9yZXBvX3NwZWN0cmFsKSB1c2luZyBydWxlc2V0cyBpbXByb3ZlIGNvbnNpc3RlbmN5IGFjcm9zcyBhbGwgeW91ciBBUElzCi0gKipSZWFkeS10by11c2UgRnVuY3Rpb25zKio6IEJ1aWx0LWluIHNldCBvZiBmdW5jdGlvbnMgdG8gaGVscCBbY3JlYXRlIGN1c3RvbSBydWxlc10oaHR0cHM6Ly9tZXRhLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL2U1Yjk2MTZkNmQ1MGMtY3VzdG9tLXJ1bGVzZXRzI2FkZGluZy1ydWxlcykuIEZ1bmN0aW9ucyBpbmNsdWRlIHBhdHRlcm4gY2hlY2tzLCBwYXJhbWV0ZXIgY2hlY2tzLCBhbHBoYWJldGljYWwgb3JkZXJpbmcsIGEgc3BlY2lmaWVkIG51bWJlciBvZiBjaGFyYWN0ZXJzLCBwcm92aWRlZCBrZXlzIGFyZSBwcmVzZW50IGluIGFuIG9iamVjdCwgZXRjLgotICoqQ3VzdG9tIEZ1bmN0aW9ucyoqOiBDcmVhdGUgY3VzdG9tIGZ1bmN0aW9ucyBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzCgojIE92ZXJ2aWV3CgotIFvwn6ewIEluc3RhbGxhdGlvbl0oIy1pbnN0YWxsYXRpb24pCi0gW/CfkrsgVXNhZ2VdKCMtdXNhZ2UpCi0gW/Cfk5YgRG9jdW1lbnRhdGlvbl0oIy1kb2N1bWVudGF0aW9uKQotIFvihLnvuI8gU3VwcG9ydF0oI+KEue+4jy1zdXBwb3J0KQotIFvwn4yOIFJlYWwtV29ybGQgUnVsZXNldHNdKCMtcmVhbC13b3JsZC1ydWxlc2V0cykKLSBb4pqZ77iPIEludGVncmF0aW9uc10oI++4jy1pbnRlZ3JhdGlvbnMpCi0gW/CfkY8gQ29udHJpYnV0aW5nXSgjLWNvbnRyaWJ1dGluZykKLSBb8J+MsiBTcG9uc29yIFNwZWN0cmFsIGJ5IFBsYW50aW5nIGEgVHJlZV0oIy1zcG9uc29yLXNwZWN0cmFsLWJ5LXBsYW50aW5nLWEtdHJlZSkKCiMjIPCfp7AgSW5zdGFsbGF0aW9uCgpUaGUgZWFzaWVzdCB3YXkgdG8gaW5zdGFsbCBzcGVjdHJhbCBpcyB0byB1c2UgZWl0aGVyIFtucG1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS8pOgoKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBAc3RvcGxpZ2h0L3NwZWN0cmFsLWNsaQpgYGAKCk9yIFt5YXJuXShodHRwczovL3lhcm5wa2cuY29tLyk6CgpgYGAKeWFybiBnbG9iYWwgYWRkIEBzdG9wbGlnaHQvc3BlY3RyYWwtY2xpCmBgYAoKVGhlcmUgYXJlIGFsc28gW2FkZGl0aW9uYWwgaW5zdGFsbGF0aW9uIG9wdGlvbnNdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9zcGVjdHJhbC9aRzlqT2pZeU1EYzBNdy1pbnN0YWxsYXRpb24pLgoKIyMg8J+SuyBVc2FnZQoKIyMjIDEuIENyZWF0ZSBhIGxvY2FsIHJ1bGVzZXQKClNwZWN0cmFsLCBiZWluZyBhIGdlbmVyaWMgWUFNTC9KU09OIGxpbnRlciwgKipuZWVkcyBhIHJ1bGVzZXQqKiB0byBsaW50IGZpbGVzLiBBIHJ1bGVzZXQgaXMgYSBKU09OLCBZQU1MLCBvciBKYXZhU2NyaXB0L1R5cGVTY3JpcHQgZmlsZSAob2Z0ZW4gdGhlIGZpbGUgaXMgY2FsbGVkIGAuc3BlY3RyYWwueWFtbGAgZm9yIGEgWUFNTCBydWxlc2V0KSB0aGF0IGNvbnRhaW5zIGEgY29sbGVjdGlvbiBvZiBydWxlcywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gbGludCBvdGhlciBKU09OIG9yIFlBTUwgZmlsZXMgc3VjaCBhcyBhbiBBUEkgZGVzY3JpcHRpb24uCgpUbyBnZXQgc3RhcnRlZCwgcnVuIHRoaXMgY29tbWFuZCBpbiB5b3VyIHRlcm1pbmFsIHRvIGNyZWF0ZSBhIGAuc3BlY3RyYWwueWFtbGAgZmlsZSB0aGF0IHVzZXMgdGhlIFNwZWN0cmFsIHByZWRlZmluZWQgcnVsZXNldHMgYmFzZWQgb24gT3BlbkFQSSBvciBBc3luY0FQSToKCmBgYGJhc2gKZWNobyAnZXh0ZW5kczogWyJzcGVjdHJhbDpvYXMiLCAic3BlY3RyYWw6YXN5bmNhcGkiXScgPiAuc3BlY3RyYWwueWFtbApgYGAKCklmIHlvdSB3b3VsZCBsaWtlIHRvIGNyZWF0ZSB5b3VyIG93biBydWxlcywgY2hlY2sgb3V0IHRoZSBbQ3VzdG9tIFJ1bGVzZXRzXShodHRwczovL21ldGEuc3RvcGxpZ2h0LmlvL2RvY3Mvc3BlY3RyYWwvMDFiYWYwNmJkZDA1YS1ydWxlc2V0cykgcGFnZS4KCiMjIyAyLiBMaW50CgpVc2UgdGhpcyBjb21tYW5kIGlmIHlvdSBoYXZlIGEgcnVsZXNldCBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgZG9jdW1lbnRzIHlvdSBhcmUgbGludGluZzoKCmBgYGJhc2gKc3BlY3RyYWwgbGludCBteWFwaWZpbGUueWFtbApgYGAKClVzZSB0aGlzIGNvbW1hbmQgdG8gbGludCB3aXRoIGEgY3VzdG9tIHJ1bGVzZXQsIG9yIG9uZSB0aGF0J3MgbG9jYXRlZCBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnkgdGhhbiB0aGUgZG9jdW1lbnRzIGJlaW5nIGxpbnRlZDoKCmBgYGJhc2gKc3BlY3RyYWwgbGludCBteWFwaWZpbGUueWFtbCAtLXJ1bGVzZXQgbXlydWxlc2V0LnlhbWwKYGBgCgojIyDwn5OWIERvY3VtZW50YXRpb24KCi0gW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9zcGVjdHJhbC9kb2NzL2dldHRpbmctc3RhcnRlZC8xLWNvbmNlcHRzLm1kKQogIC0gW0dldHRpbmcgU3RhcnRlZF0oaHR0cHM6Ly9tZXRhLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL2RvY3MvZ2V0dGluZy1zdGFydGVkLzEtY29uY2VwdHMubWQpIC0gVGhlIGJhc2ljcyBvZiBTcGVjdHJhbC4KICAtIFtSdWxlc2V0c10oaHR0cHM6Ly9tZXRhLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsLzAxYmFmMDZiZGQwNWEtcnVsZXNldHMpIC0gVW5kZXJzdGFuZCB0aGUgc3RydWN0dXJlIG9mIGEgcnVsZXNldCBzbyB5b3UgY2FuIHR3ZWFrIGFuZCBtYWtlIHlvdXIgb3duIHJ1bGVzLgoKT25jZSB5b3UndmUgaGFkIGEgbG9vayB0aHJvdWdoIHRoZSBnZXR0aW5nIHN0YXJ0ZWQgbWF0ZXJpYWwsIHNvbWUgb2YgdGhlc2UgZ3VpZGVzIGNhbiBoZWxwIHlvdSBiZWNvbWUgYSBwb3dlciB1c2VyLgoKLSBbRGlmZmVyZW50IFdvcmtmbG93c10oaHR0cHM6Ly9tZXRhLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL2RvY3MvZ3VpZGVzLzEtd29ya2Zsb3dzLm1kKSAtIFdoZW4gYW5kIHdoZXJlIHNob3VsZCB5b3UgdXNlIFNwZWN0cmFsPyBFZGl0b3JzLCBHaXQgaG9va3MsIGNvbnRpbnVvdXMgaW50ZWdyYXRpb24sIEdpdEh1YiBBY3Rpb25zLCB3aGVyZXZlciB5b3UgbGlrZSEKLSBbVXNpbmcgdGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2VdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9zcGVjdHJhbC9kb2NzL2d1aWRlcy8yLWNsaS5tZCkgLSBRdWlja2VzdCB3YXkgdG8gZ2V0IGdvaW5nIHdpdGggU3BlY3RyYWwgaXMgaW4gdGhlIENMSS4KLSBbVXNpbmcgdGhlIEphdmFTY3JpcHQgQVBJXShodHRwczovL21ldGEuc3RvcGxpZ2h0LmlvL2RvY3Mvc3BlY3RyYWwvZG9jcy9ndWlkZXMvMy1qYXZhc2NyaXB0Lm1kKSAtIEFjY2VzcyB0aGUgX3JhdyBwb3dlcl8gb2YgU3BlY3RyYWwgdmlhIHRoZSBKUywgb3IgaGV5LCBUeXBlU2NyaXB0IGlmIHlvdSB3YW50LgotIFtDdXN0b20gUnVsZXNldHNdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9zcGVjdHJhbC9kb2NzL2d1aWRlcy80LWN1c3RvbS1ydWxlc2V0cy5tZCkgLSBOZWVkIHNvbWV0aGluZyBtb3JlIHRoYW4gdGhlIGNvcmUgcnVsZXNldHMgcHJvdmlkZT8gRmFuY3kgYnVpbGRpbmcgeW91ciBvd24gQVBJIFN0eWxlIEd1aWRlPyBMZWFybiBob3cgdG8gY3JlYXRlIGEgY3VzdG9tIHJ1bGVzZXQuCi0gW0N1c3RvbSBGdW5jdGlvbnNdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9zcGVjdHJhbC9kb2NzL2d1aWRlcy81LWN1c3RvbS1mdW5jdGlvbnMubWQpIC0gSGFuZGxlIG1vcmUgYWR2YW5jZWQgcnVsZXMsIGJ5IHdyaXRpbmcgYSBsaXR0bGUgSmF2YVNjcmlwdC9UeXBlU2NyaXB0IGFuZCBjYWxsaW5nIGl0IGFzIGEgZnVuY3Rpb24uCgojIyDihLnvuI8gU3VwcG9ydAoKSWYgeW91IG5lZWQgaGVscCB1c2luZyBTcGVjdHJhbCBvciBoYXZlIGFueSBxdWVzdGlvbnMsIHlvdSBjYW4gdXNlIFtHaXRIdWIgRGlzY3Vzc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbC9kaXNjdXNzaW9ucyksIG9yIHZpc2l0IHRoZSBbU3RvcGxpZ2h0IENvbW11bml0eSBEaXNjb3JkXShodHRwczovL2Rpc2NvcmQuY29tL2ludml0ZS9zdG9wbGlnaHQpLiBUaGVzZSBjb21tdW5pdGllcyBhcmUgYSBncmVhdCBwbGFjZSB0byBzaGFyZSB5b3VyIHJ1bGVzZXRzLCBvciBzaG93IG9mZiB0b29scyB0aGF0IHVzZSBTcGVjdHJhbC4KCklmIHlvdSBoYXZlIGEgYnVnIG9yIGZlYXR1cmUgcmVxdWVzdCwgW2NyZWF0ZSBhbiBpc3N1ZSBmb3IgaXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbC9pc3N1ZXMpLgoKIyMg8J+MjiBSZWFsLVdvcmxkIFJ1bGVzZXRzCgpTdG9wbGlnaHQgaGFzIGEgc2V0IG9mIFNwZWN0cmFsIHJ1bGVzZXRzIHRoYXQgd2VyZSBjcmVhdGVkIHRvIGhlbHAgdXNlcnMgZ2V0IHN0YXJ0ZWQgd2l0aCBTdG9wbGlnaHQncyBTdHlsZSBHdWlkZXMuIFlvdSBjYW4gZmluZCB0aGVtIG9uIFtBUEkgU3R5bGVib29rXShodHRwczovL2FwaXN0eWxlYm9vay5zdG9wbGlnaHQuaW8vKSwgYW5kIHlvdSBjYW4gZG93bmxvYWQgdGhlIHNvdXJjZSBTcGVjdHJhbCBmaWxlIGJ5IHNlbGVjdGluZyBhIHN0eWxlIGd1aWRlIG9uIHRoZSBwcm9qZWN0IHNpZGViYXIgYW5kIHNlbGVjdGluZyAqKkV4cG9ydCoqIC0+ICoqU3BlY3RyYWwgRmlsZShzKSoqIG9uIHRoZSB0b3AtcmlnaHQuIEEgZmV3IG5vdGV3b3J0aHkgc3R5bGUgZ3VpZGVzIGFyZToKCi0gW09XQVNQIFRvcCAxMF0oaHR0cHM6Ly9hcGlzdHlsZWJvb2suc3RvcGxpZ2h0LmlvL2RvY3Mvb3dhc3AtdG9wLTEwKSAtIFNldCBvZiBydWxlcyB0byBlbmZvcmNlIFtPV0FTUCBzZWN1cml0eSBndWlkZWxpbmVzXShodHRwczovL293YXNwLm9yZy93d3ctcHJvamVjdC1hcGktc2VjdXJpdHkvKS4KLSBbVVJMIFN0eWxlIEd1aWRlbGluZXNdKGh0dHBzOi8vYXBpc3R5bGVib29rLnN0b3BsaWdodC5pby9kb2NzL3VybC1ndWlkZWxpbmVzKSAtIFNldCBvZiBydWxlcyB0byBoZWxwIGRldmVsb3BlcnMgbWFrZSBiZXR0ZXIgYW5kIGNvbnNpc3RlbnQgZW5kcG9pbnRzLgotIFtEb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vc3BlY3RyYWwtZG9jdW1lbnRhdGlvbikgLSBTY2FuIGFuIE9wZW5BUEkgZGVzY3JpcHRpb24gdG8gbWFrZSBzdXJlIHlvdSdyZSBsZXZlcmFnaW5nIGVub3VnaCBvZiBpdHMgZmVhdHVyZXMgdG8gaGVscCBkb2N1bWVudGF0aW9uIHRvb2xzIGxpa2UgU3RvcGxpZ2h0IEVsZW1lbnRzLCBSZURvYywgYW5kIFN3YWdnZXIgVUkgYnVpbGQgdGhlIGJlc3QgcXVhbGl0eSBBUEkgUmVmZXJlbmNlIERvY3VtZW50YXRpb24gcG9zc2libGUuCgpUaGVyZSBhcmUgYWxzbyBydWxlc2V0cyBjcmVhdGVkIGJ5IG1hbnkgY29tcGFuaWVzIHRvIGltcHJvdmUgdGhlaXIgQVBJcy4gWW91IGNhbiB1c2UgdGhlc2UgYXMgaXMgdG8gbGludCB5b3VyIE9wZW5BUEkgZGVzY3JpcHRpb25zLCBvciB1c2UgdGhlc2UgYXMgYSByZWZlcmVuY2UgdG8gbGVhcm4gbW9yZSBhYm91dCB3aGF0IHJ1bGVzIHlvdSB3b3VsZCB3YW50IGluIHlvdXIgb3duIHJ1bGVzZXQ6CgotIFtBZGlkYXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hZGlkYXMvYXBpLWd1aWRlbGluZXMvYmxvYi9tYXN0ZXIvLnNwZWN0cmFsLnltbCkgLSBBZGlkYXMgd2VyZSBvbmUgb2YgdGhlIGZpcnN0IGNvbXBhbmllcyB0byByZWxlYXNlIHRoZWlyIEFQSSBTdHlsZSBHdWlkZSBpbiBhIHdyaXR0ZW4gZ3VpZGUgX2FuZF8gYSBTcGVjdHJhbCBydWxlc2V0LiBMb3RzIG9mIGdvb2QgcnVsZXMgdG8gdHJ5IGluIGhlcmUuCi0gW0FQSXMgWW91IFdvbid0IEhhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlzeW91d29udGhhdGUvc3R5bGUtZ3VpZGUpIC0gQW4gb3BpbmlvbmF0ZWQgY29sbGVjdGlvbiBvZiBydWxlcyBiYXNlZCBvbiBhZHZpY2UgaW4gdGhlIFtBUElzIFlvdSBXb24ndCBIYXRlXShodHRwczovL2FwaXN5b3V3b250aGF0ZS5jb20vKSBjb21tdW5pdHkuCi0gW0F6dXJlXShodHRwczovL2dpdGh1Yi5jb20vQXp1cmUvYXp1cmUtYXBpLXN0eWxlLWd1aWRlL2Jsb2IvbWFpbi9zcGVjdHJhbC55YW1sKSAtIFJ1bGVzZXQgYW5kIGNvbXBsaW1lbnRhcnkgc3R5bGUgZ3VpZGUgZm9yIGNyZWF0aW5nIE9wZW5BUEkgMiBvciAzIGRlZmluaXRpb25zIG9mIEF6dXJlIHNlcnZpY2VzLgotIFtCb3hdKGh0dHBzOi8vZ2l0aHViLmNvbS9ib3gvYm94LW9wZW5hcGkvYmxvYi9tYWluLy5zcGVjdHJhbC55bWwpIC0gTG90cyBvZiBbQ3VzdG9tIEZ1bmN0aW9uc10oaHR0cHM6Ly9tZXRhLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL1pHOWpPakkxTVRrdy1jdXN0b20tZnVuY3Rpb25zKSBiZWluZyB1c2VkIHRvIGVuZm9yY2UgZ29vZCBwcmFjdGljZXMgdGhhdCB0aGUgQm94IEFQSSBnb3Zlcm5hbmNlIGZvbGtzIGFyZSBpbnRlcmVzdGVkIGluLgotIFtEaWdpdGFsT2NlYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kaWdpdGFsb2NlYW4vb3BlbmFwaS9ibG9iL21haW4vc3BlY3RyYWwvcnVsZXNldC55bWwpIC0gS2VlcGluZyB0aGVpciBPcGVuQVBJIG5pY2UgYW5kIHRpZHksIGVuZm9yY2luZyB1c2Ugb2YgYCRyZWZgIChwcm9iYWJseSB0byBtaW5pbWl6ZSBjb25mbGljdHMpLCBuYW1pbmcgY29udmVudGlvbnMgZm9yIE9wZXJhdGlvbiBJRHMsIGFuZCBhbGwgc29ydHMgb2Ygb3RoZXIgaGFuZHkgT3BlbkFQSSB0aXBzLgotIFtUcmFuYXNjb21dKGh0dHBzOi8vZ2l0aHViLmNvbS90cmFuc2NvbS9teW1vdmUvYmxvYi9tYXN0ZXIvc3dhZ2dlci1kZWYvLnNwZWN0cmFsLnltbCkgLSBEb24ndCBldmVuIHRoaW5rIGFib3V0IHVzaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gYGFwcGxpY2F0aW9uL2pzb25gLgotIFtaYWxhbmRvXShodHRwczovL2FwaXN0eWxlYm9vay5zdG9wbGlnaHQuaW8vZG9jcy96YWxhbmRvLXJlc3RmdWwtYXBpLWd1aWRlbGluZXMpIC0gQmFzZWQgb24gW1phbGFuZG8ncyBSRVNURlVMIEFQSSBHdWlkZWxpbmVzXShodHRwczovL2dpdGh1Yi5jb20vemFsYW5kby9yZXN0ZnVsLWFwaS1ndWlkZWxpbmVzKSwgY292ZXJzIGEgd2lkZS1yYW5nZSBvZiBBUEkgdG9waWNzIHN1Y2ggYXMgdmVyc2lvbmluZyBzdGFuZGFyZHMsIHByb3BlcnR5IG5hbWluZyBzdGFuZGFyZHMsIHRoZSBkZWZhdWx0IGZvcm1hdCBmb3IgcmVxdWVzdC9yZXNwb25zZSBwcm9wZXJ0aWVzLCBhbmQgbW9yZS4KCkNoZWNrIG91dCBzb21lIGFkZGl0aW9uYWwgc3R5bGUgZ3VpZGVzIGhlcmU6CgotIFtTcGVjdHJhbCBSdWxlc2V0cyBieSBTdG9wbGlnaHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbC1ydWxlc2V0cykKLSBbQVBJIFN0eWxlYm9vayBieSBTdG9wbGlnaHRdKGh0dHBzOi8vYXBpc3R5bGVib29rLnN0b3BsaWdodC5pbykKCiMjIOKame+4jyBJbnRlZ3JhdGlvbnMKCi0gW0dpdEh1YiBBY3Rpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbC1hY3Rpb24pIC0gTGludHMgZG9jdW1lbnRzIGluIHlvdXIgcmVwbywgYnVpbHQgYnkgW1ZpbmNlbnpvIENoaWFuZXNlXShodHRwczovL2dpdGh1Yi5jb20vWFZpbmNlbnRYLykuCi0gW0pldEJyYWlucyBQbHVnaW5dKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi8xODUyMC1zcGVjdHJhbCkgLSBBdXRvbWF0aWMgbGludGluZyBvZiB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgYW5kIGhpZ2hsaWdodGluZyBpbiB5b3VyIGVkaXRvci4KLSBbU3RvcGxpZ2h0IFN0dWRpb10oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vc3R1ZGlvP3V0bV9zb3VyY2U9Z2l0aHViLmNvbSZ1dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9jYW1wYWlnbj1naXRodWJfcmVwb19zcGVjdHJhbCkgLSBVc2VzIFNwZWN0cmFsIHRvIHZhbGlkYXRlIGFuZCBsaW50IE9wZW5BUEkgZG9jdW1lbnRzLgotIFtWUyBDb2RlIFNwZWN0cmFsIEV4dGVuc2lvbl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXN0b3BsaWdodC5zcGVjdHJhbCkgLSBBbGwgdGhlIHBvd2VyIG9mIFNwZWN0cmFsIHdpdGhvdXQgbGVhdmluZyBWUyBDb2RlLgoKIyMg8J+PgSBIZWxwIE90aGVycyBVdGlsaXplIFNwZWN0cmFsCgpJZiB5b3UncmUgdXNpbmcgU3BlY3RyYWwgZm9yIGFuIGludGVyZXN0aW5nIHVzZSBjYXNlLCBbY29udGFjdCBTdG9wbGlnaHRdKG1haWx0bzpncm93dGhAc3RvcGxpZ2h0LmlvKSBmb3IgYSBjYXNlIHN0dWR5LiDwn46JCgojIyDwn5GPIENvbnRyaWJ1dGluZwoKSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGNvbnRyaWJ1dGluZyB0byBTcGVjdHJhbCwgY2hlY2sgb3V0IFtDT05UUklCVVRJTkcubWRdKENPTlRSSUJVVElORy5tZCkuCgojIyDwn46JIFRoYW5rcwoKLSBbTWlrZSBSYWxwaHNvbl0oaHR0cHM6Ly9naXRodWIuY29tL01pa2VSYWxwaHNvbikgZm9yIGtpY2tpbmcgb2ZmIHRoZSBTcGVjdHJhbCBDTEkgYW5kIGhpcyB3b3JrIG9uIFNwZWNjeQotIFtKYW11bmQgRmVyZ3Vzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS94amFtdW5keCkgZm9yIEpVbml0IGZvcm1hdHRlcgotIFtTaW5kcmUgU29yaHVzXShodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzKSBmb3IgU3R5bGlzaCBmb3JtYXR0ZXIKLSBbQXZhIFRob3JuXShodHRwczovL2dpdGh1Yi5jb20vYW10aG9ybikgZm9yIHRoZSBQcmV0dHkgZm9ybWF0dGVyCi0gSnVsaWFuIExhdmFsIGZvciBIVE1MIGZvcm1hdHRlcgotIFtAbnVsbHRva2VuXShodHRwczovL2dpdGh1Yi5jb20vbnVsbHRva2VuKSBmb3IgYSB3aG9sZSBidW5jaCBvZiBhbWF6aW5nIGZlYXR1cmVzCgojIyDwn5OcIExpY2Vuc2UKClNwZWN0cmFsIGlzIDEwMCUgZnJlZSBhbmQgb3Blbi1zb3VyY2UsIHVuZGVyIFtBcGFjaGUgTGljZW5zZSAyLjBdKExJQ0VOU0UpLgoKIyMg8J+MsiBTcG9uc29yIFNwZWN0cmFsIGJ5IFBsYW50aW5nIGEgVHJlZQoKSWYgeW91IHdvdWxkIGxpa2UgdG8gdGhhbmsgU3RvcGxpZ2h0IGZvciBjcmVhdGluZyBTcGVjdHJhbCwgWyoqYnV5IHRoZSB3b3JsZCBhIHRyZWUqKl1bc3RvcGxpZ2h0X2ZvcmVzdF0uCgpbc3RvcGxpZ2h0X2ZvcmVzdF06IGh0dHBzOi8vZWNvbG9naS5jb20vc3RvcGxpZ2h0aW5jCg== readmeEtag: '"cd990c5cda87517b2faec404ace6122c73a0f00e"' readmeLastModified: Wed, 14 Aug 2024 13:49:22 GMT repositoryId: 144890632 description: >- A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v3.1, v3.0, and v2.0 as well as AsyncAPI v2.x. created: '2018-08-15T18:43:18Z' updated: '2024-09-05T23:06:28Z' language: TypeScript archived: false stars: 2446 watchers: 34 forks: 235 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 repoEtag: '"872d88ccf6dd0cbc8f54d98693542527caa8aef352c9db79cc5872e57ddad9f4"' repoLastModified: Thu, 05 Sep 2024 23:06:28 GMT foundInMaster: true id: fab3cc58898cd8953a30e43cc622e0fe - source: https://openapi.tools/ name: OpenAPI Style Validator category: Description Validators repository: https://github.com/openapitools/openapi-style-validator language: - Java - CLI source_description: > A customizable style validator to make sure your OpenAPI description follows your organization's standards. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQXBpIFRvb2xzOiBPcGVuQVBJIFN0eWxlIFZhbGlkYXRvcgoKIVtdKHdlYnNpdGUvc3RhdGljL2ltZy9sb2dvLnBuZykKCkEgY3VzdG9taXphYmxlIHN0eWxlIHZhbGlkYXRvciB0byBtYWtlIHN1cmUgeW91ciBPcGVuQXBpIHNwZWMgZm9sbG93cyB5b3VyIG9yZ2FuaXphdGlvbidzIHN0YW5kYXJkcy4KClshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9CdXklMjB1cyUyMGElMjB0cmVlLSVGMCU5RiU4QyVCMy1saWdodGdyZWVuKV0oaHR0cHM6Ly9vZmZzZXQuZWFydGgvZGFya2phZmYpCgohW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLXN0eWxlLXZhbGlkYXRvci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwvYmFkZ2Uuc3ZnKSBbIVtNYXZlbiBDZW50cmFsXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9vcmcub3BlbmFwaXRvb2xzLm9wZW5hcGlzdHlsZXZhbGlkYXRvci9vcGVuYXBpLXN0eWxlLXZhbGlkYXRvci1jbGkpXShodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMub3BlbmFwaXN0eWxldmFsaWRhdG9yKSBbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1PcGVuQVBJVG9vbHNfb3BlbmFwaS1zdHlsZS12YWxpZGF0b3ImbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9T3BlbkFQSVRvb2xzX29wZW5hcGktc3R5bGUtdmFsaWRhdG9yKSBbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9T3BlbkFQSVRvb2xzX29wZW5hcGktc3R5bGUtdmFsaWRhdG9yJm1ldHJpYz1jb3ZlcmFnZSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9T3BlbkFQSVRvb2xzX29wZW5hcGktc3R5bGUtdmFsaWRhdG9yKQoKWyFbSm9pbiB0aGUgU2xhY2sgY2hhdCByb29tXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NsYWNrLUpvaW4lMjB0aGUlMjBjaGF0JTIwcm9vbS1vcmFuZ2UpXShodHRwczovL2pvaW4uc2xhY2suY29tL3Qvb3BlbmFwaS1nZW5lcmF0b3Ivc2hhcmVkX2ludml0ZS9lblF0TnpBeU5ETXlPVFUwT1RFMUxUWTVaREJpTkRJNU56STVaalExWTJFNU9XVmpNalprWXpZMVpHTTJNV1E0WVdGak16Y3lORFk1TUdJNE5qUXhOREJpTVRsbVpUYzVOalkyWlRRNU1HTSkgWyFbV2Vic2l0ZSBhbmQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9XZWJzaXRlJTIwYW5kJTIwRG9jdW1lbnRhdGlvbi1DbGljayUyMHRvJTIwVmlldy1ncmVlbildKGh0dHBzOi8vb3BlbmFwaXRvb2xzLmdpdGh1Yi5pby9vcGVuYXBpLXN0eWxlLXZhbGlkYXRvci8pIFshW0NvbnRyaWJ1dGUgd2l0aCBHaXRwb2RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQ29udHJpYnV0ZSUyMHdpdGgtR2l0cG9kLTkwOGE4NT9sb2dvPWdpdHBvZCldKGh0dHBzOi8vZ2l0cG9kLmlvLyNodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktc3R5bGUtdmFsaWRhdG9yKQoKIyMgU3VtbWFyeQoKSW4gdGhlIGNvbGxhYm9yYXRpdmUgd29ybGQgb2YgQVBJIGRldmVsb3BtZW50LCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgYWRoZXJlbmNlIHRvIHN0YW5kYXJkcyBpbiB5b3VyIE9wZW5BUEkgKFlBTUwpIHNwZWNpZmljYXRpb24gZmlsZSBpcyBhIHBhcmFtb3VudCBjaGFsbGVuZ2UuIEV2ZW4gaWYgeW91J3ZlIG1ldGljdWxvdXNseSBkb2N1bWVudGVkIGRpcmVjdGl2ZXMgYW5kIGd1aWRlbGluZXMgaW4gYSBzaGFyZWQgUERGIG9yIGEgY29tcGFueSB3aWtpLCB0aGVyZSdzIG5vIGd1YXJhbnRlZSB0aGF0IGV2ZXJ5IHRlYW0gbWVtYmVyIHdpbGwgc3RyaWN0bHkgZm9sbG93IHRoZW0uCgpPbmUgY291bGQgYXJndWUgdGhhdCBtYW51YWwgY29kZSByZXZpZXdzIG1heSBjYXRjaCB0aGVzZSBkZXZpYXRpb25zLCBidXQgd2hhdCBpZiB0aGVyZSB3ZXJlIGEgbW9yZSBlZmZpY2llbnQgd2F5IHRvIGVuc3VyZSBjb25mb3JtaXR5PyBFbnRlciBvcGVuYXBpLXN0eWxlLXZhbGlkYXRvciwgYSB0b29sIGRlc2lnbmVkIHRvIGF1dG9tYXRlIHRoaXMgcHJvY2Vzcy4gV2hpbGUgeW91IG1heSBzdGlsbCBjb25kdWN0IGNvZGUgcmV2aWV3cyB0byBhZGRyZXNzIGJ1c2luZXNzIGxvZ2ljLCByZXF1aXJlbWVudHMsIGFuZCBSRVNUIHBhdGggaXNzdWVzLCBvcGVuYXBpLXN0eWxlLXZhbGlkYXRvciBleGNlbHMgYXQgdmFsaWRhdGluZyB0aGUgc3R5bGUgYW5kIGFkaGVyZW5jZSB0byBzdGFuZGFyZHMsIGluY2x1ZGluZyBtYW5kYXRvcnkgZXhhbXBsZXMsIG5hbWluZyBjb252ZW50aW9ucywgZGVzY3JpcHRpb25zLCBhbmQgbW9yZS4gQnkgaW50ZWdyYXRpbmcgdGhpcyBwb3dlcmZ1bCB0b29sIGludG8geW91ciB3b3JrZmxvdywgeW91IGNhbiBlZmZvcnRsZXNzbHkgZWxldmF0ZSB0aGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgeW91ciBPcGVuQVBJIGZpbGVzLCBsZWF2aW5nIHlvdSB3aXRoIG1vcmUgdGltZSB0byBmb2N1cyBvbiB0aGUgY3JpdGljYWwgYXNwZWN0cyBvZiB5b3VyIEFQSSBkZXZlbG9wbWVudC4KCiMjIDp0cm9waHk6IFNwb25zb3JzCgpUaGFua3MgdG8gb3VyIHNwb25zb3JzIGZvciBzdXBwb3J0aW5nIHRoaXMgcHJvamVjdCEKCiMjIyA6MXN0X3BsYWNlX21lZGFsOiBHb2xkCgpbU2VsZWN0IHlvdXIgc3BvbnNvciB0aWVyXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvSkZDb3RlKSBhbmQgZ2V0IHlvdXIgQklHIGxvZ28gaGVyZSB3aXRoIGEgbGluayB0byB5b3VyIHdlYnNpdGUuCgojIyMgOjJuZF9wbGFjZV9tZWRhbDogU2lsdmVyCgpbU2VsZWN0IHlvdXIgc3BvbnNvciB0aWVyXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvSkZDb3RlKSBhbmQgZ2V0IHlvdXIgbG9nbyBoZXJlIHdpdGggYSBsaW5rIHRvIHlvdXIgd2Vic2l0ZS4KCiMjIyA6M3JkX3BsYWNlX21lZGFsOiBCcm9uemUKCltTZWxlY3QgeW91ciBzcG9uc29yIHRpZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9KRkNvdGUpIGFuZCBnZXQgeW91ciBjb21wYW55IG5hbWUgaGVyZSB3aXRoIGEgbGluayB0byB5b3VyIHdlYnNpdGUuCgojIyBXaGF0IGl0IGNhbiB2YWxpZGF0ZQoKIyMjIEFQSSBJbmZvCi0gQVBJIGxpY2Vuc2UgbXVzdCBiZSBwcmVzZW50IGFuZCBub24tZW1wdHkgc3RyaW5nCi0gQVBJIGRlc2NyaXB0aW9uIG11c3QgYmUgcHJlc2VudCBhbmQgbm9uLWVtcHR5IHN0cmluZwotIEFQSSBjb250YWN0IG11c3QgYmUgcHJlc2VudCBhbmQgbm9uLWVtcHR5IHN0cmluZwoKIyMjIE9wZXJhdGlvbnMKLSBPcGVyYXRpb25JZCBtdXN0IGJlIHByZXNlbnQgYW5kIG5vbi1lbXB0eSBzdHJpbmcKLSBPcGVyYXRpb24gZGVzY3JpcHRpb24gbXVzdCBiZSBwcmVzZW50IGFuZCBub24tZW1wdHkgc3RyaW5nCi0gT3BlcmF0aW9uIG11c3QgaGF2ZSBhIHRhZyBhbmQgbm9uLWVtcHR5IHN0cmluZwotIE9wZXJhdGlvbiBzdW1tYXJ5IG11c3QgYmUgcHJlc2VudCBhbmQgbm9uLWVtcHR5IHN0cmluZwoKIyMjIE1vZGVscwotIEFsbCBtb2RlbCBwcm9wZXJ0aWVzIG11c3QgaGF2ZSBleGFtcGxlcwotIEFsbCBtb2RlbCBwcm9wZXJ0aWVzIG11c3QgaGF2ZSBkZXNjcmlwdGlvbnMKLSBBbGwgcmVxdWlyZWQgcHJvcGVydGllcyBtdXN0IGJlIGxpc3RlZCBhbW9uZyB0aGUgcHJvcGVydGllcwoKIyMjIE5hbWluZyBjb252ZW50aW9uCi0gRW5mb3JjZSBuYW1pbmcgY29udmVudGlvbiBmb3IgcGF0aHMsIHBhcmFtZXRlcnMgKHBhdGgsIHF1ZXJ5IGFuZCBjb29raWUpLCBoZWFkZXJzIGFuZCBwcm9wZXJ0aWVzCiAgLSB1bmRlcnNjb3JlX2Nhc2UKICAtIFVOREVSU0NPUkVfVVBQRVJfQ0FTRQogIC0gY2FtZWxDYXNlCiAgLSBoeXBoZW4tY2FzZQogIC0gSHlwaGVuLVVwcGVyLUNhc2UKCiMjIFBhaWQgQWx0ZXJuYXRpdmVzCgpUaGlzIHByb2plY3Qgd2FzIHN0YXJ0ZWQgYmVjYXVzZSB3aGVuIEkgdHJpZWQgU3dhZ2dlckh1YiAod2hpY2ggaXMgdGhlIHBhaWQgdmVyc2lvbiBvZiB0aGUgc3dhZ2dlciB0b29sa2l0KSwgdGhleSBoYWQKc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCBpdCB3YXMgcHJvcHJpZXRhcnkuIEkgZGlkbid0IHdhbnQgdG8gcGF5IGZvciB0aGUgc2VydmljZSBzbyBJIGNyZWF0ZWQgdGhpcyBwcm9qZWN0IGluIG15IGZyZWUKdGltZXMuIEkgZGlkIG5vdCB2YWxpZGF0ZSBsYXRlbHkgaWYgdGhleSBzdGlsbCBoYXZlIHRoaXMgZmVhdHVyZS4KCiMjIEhvdyB0byB1c2UgdGhlIHN0eWxlIHZhbGlkYXRvcgoKRm9yIG5vdywgdGhlIHByb2plY3QgaXMgYSBzaW1wbGUgY29tbWFuZCBsaW5lIGludGVyZmFjZSAoQ0xJKSBhbmQgYSBsaWJyYXJ5LiBUaGUgZWFzaWVzdCB3YXkgdG8gdXNlIGl0IHJpZ2h0IG5vdwppcyB0byB1c2UgdGhlIENMSSBhbmQgY2hlY2sgdGhlIG91dHB1dC4gSXQgd2lsbCBsaXN0IGFsbCBlcnJvcnMgZm91bmQgYmFzZWQgb24gdGhlIG9wdGlvbnMgeW91IHByb3ZpZGVkLgoKIyMjIFRvIGJ1aWxkCgpUaGUgcHJvamVjdCBpcyBjb25maWd1cmVkIHRvIHVzZSBncmFkbGUuIFRvIGJ1aWxkIHRoZSBqYXIsIGp1c3QgZG86CgpgZ3JhZGxldyBhc3NlbWJsZWAKCm9yIGlmIHlvdSB3YW50IHRvIGludm9rZSB0aGUgamFyIGNyZWF0aW9uIGRpcmVjdGx5CgpgZ3JhZGxldyBzaGFkb3dKYXJgCgojIyMgVG8gY2hhbmdlIHRoZSBjb2RlCgpJZiB5b3Ugd2FudCB0byBvcGVuIHRoZSBwcm9qZWN0LCBJIGhpZ2hseSBzdWdnZXN0IHRoYXQgeW91IHVzZSBJbnRlbGxpSiBJREVBIENvbW11bml0eSAoRnJlZSkgb3IgVWx0aW1hdGUgKHBhaWQpLgpUaGlzIElERSBpcyBjcm9zcyBwbGF0Zm9ybSBzbyBpdCBzaG91bGQgd29yayBvbiBhbnkgT1MuIFRoaXMgcHJvamVjdCB3YXMgY3JlYXRlZCB1c2luZyB0aGlzIHRvb2wgYW5kIHlvdSBjYW4ganVzdCBvcGVuIGl0IGRpcmVjdGx5LiBNYXliZSB5b3UgY2FuIHVzZSBvdGhlciB0b29scyB0byBvcGVuIHRoZSBwcm9qZWN0IGJ1dCBJIHdpbGwgbm90IHByb3ZpZGUgYW55IHN1cHBvcnQuCgojIyMgVG8gbGF1bmNoCgpgamF2YSAtamFyIG9wZW5hcGktc3R5bGUtdmFsaWRhdG9yLmphciAtcyAuL3BhdGgvdG8vc3BlYy55YW1sIC1vIC4vcGF0aC90by9vcHRpb25zLmpzb25gCgpFeGFtcGxlIHVzaW5nIHRoZSBkZWZhdWx0IG91dHB1dCBwYXRoIGZvciB0aGUgamFyIChyZXBsYWNlIGA8dmVyc2lvbj5gIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbik6CgpgamF2YSAtamFyIG1vZHVsZXMvY2xpL2J1aWxkL2xpYnMvb3BlbmFwaS1zdHlsZS12YWxpZGF0b3ItY2xpLTx2ZXJzaW9uPi1hbGwuamFyIC1zIHNwZWNzL3BldHN0b3JlLnlhbWwgLW8gc3BlY3Mvb3B0aW9ucy5qc29uYAoKIyMjIyBDb21tYW5kIExpbmUKCnxQYXJhbWV0ZXJ8UmVxdWlyZWQ/fERlc2NyaXB0aW9ufAp8LS0tfC0tLXwtLS18CnwtcywgLXNvdXJjZXx5ZXN8VGhlIHBhdGggdG8geW91ciBqc29uL3lhbWwgc3BlYyBmaWxlfAp8LW8sIC1vcHRpb25zfG5vfFRoZSBwYXRoIHRvIHlvdXIganNvbiBvcHRpb25zIGZpbGV8CgojIyMjIE9wdGlvbnMgRmlsZQpUaGUgb3B0aW9ucyBmaWxlIGlzIGRlc2NyaWJlZCBpbiBqc29uIChleGFtcGxlIGluIGBzcGVjcy9vcHRpb25zLmpzb25gKSwgYW5kIGhhcyB0aGUgZm9sbG93aW5nIHBvc3NpYmxlIHZhbHVlczoKCnxPcHRpb258VHlwZXwgUG9zc2libGUgVmFsdWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfERlZmF1bHQgVmFsdWV8RGVzY3JpcHRpb258CnwtLS18LS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tfC0tLXwKfHZhbGlkYXRlSW5mb0xpY2Vuc2V8Ym9vbGVhbnwgYHRydWVgLCBgZmFsc2VgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfGB0cnVlYHxFbnN1cmVzIHRoYXQgdGhlcmUgaXMgYSBsaWNlbnNlIHNlY3Rpb24gaW4gdGhlIGluZm8gc2VjdGlvbnwKfHZhbGlkYXRlSW5mb0Rlc2NyaXB0aW9ufGJvb2xlYW58IGB0cnVlYCwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgdHJ1ZWB8RW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgZGVzY3JpcHRpb24gYXR0cmlidXRlIGluIHRoZSBpbmZvIHNlY3Rpb258Cnx2YWxpZGF0ZUluZm9Db250YWN0fGJvb2xlYW58IGB0cnVlYCwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgdHJ1ZWB8RW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgY29udGFjdCBzZWN0aW9uIGluIHRoZSBpbmZvIHNlY3Rpb258Cnx2YWxpZGF0ZU9wZXJhdGlvbk9wZXJhdGlvbklkfGJvb2xlYW58IGB0cnVlYCwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgdHJ1ZWB8RW5zdXJlcyB0aGF0IHRoZXJlIGlzIGFuIG9wZXJhdGlvbiBpZCBmb3IgZWFjaCBvcGVyYXRpb258Cnx2YWxpZGF0ZU9wZXJhdGlvbkRlc2NyaXB0aW9ufGJvb2xlYW58IGB0cnVlYCwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgdHJ1ZWB8RW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgZGVzY3JpcHRpb24gZm9yIGVhY2ggb3BlcmF0aW9ufAp8dmFsaWRhdGVPcGVyYXRpb25UYWd8Ym9vbGVhbnwgYHRydWVgLCBgZmFsc2VgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfGB0cnVlYHxFbnN1cmVzIHRoYXQgdGhlcmUgaXMgYSB0YWcgZm9yIGVhY2ggb3BlcmF0aW9ufAp8dmFsaWRhdGVPcGVyYXRpb25TdW1tYXJ5fGJvb2xlYW58IGB0cnVlYCwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgdHJ1ZWB8RW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgc3VtbWFyeSBmb3IgZWFjaCBvcGVyYXRpb258Cnx2YWxpZGF0ZU1vZGVsUHJvcGVydGllc0V4YW1wbGV8Ym9vbGVhbnwgYHRydWVgLCBgZmFsc2VgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfGB0cnVlYHxFbnN1cmVzIHRoYXQgdGhlIHByb3BlcnRpZXMgb2YgdGhlIFNjaGVtYXMgaGF2ZSBhbiBleGFtcGxlIHZhbHVlIGRlZmluZWR8Cnx2YWxpZGF0ZU1vZGVsUHJvcGVydGllc0Rlc2NyaXB0aW9ufGJvb2xlYW58IGB0cnVlYCwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgdHJ1ZWB8RW5zdXJlcyB0aGF0IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBTY2hlbWFzIGhhdmUgYSBkZXNjcmlwdGlvbiB2YWx1ZSBkZWZpbmVkfAp8dmFsaWRhdGVNb2RlbFJlcXVpcmVkUHJvcGVydGllc3xib29sZWFufCBgdHJ1ZWAsIGBmYWxzZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8YHRydWVgfEVuc3VyZXMgdGhhdCBhbGwgcmVxdWlyZWQgcHJvcGVydGllcyBvZiB0aGUgU2NoZW1hcyBhcmUgbGlzdGVkIGFtb25nIHRoZWlyIHByb3BlcnRpZXN8Cnx2YWxpZGF0ZU1vZGVsTm9Mb2NhbERlZnxib29sZWFufCBgdHJ1ZWAsIGBmYWxzZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8YHRydWVgfE5vdCBpbXBsZW1lbnRlZCB5ZXR8Cnx2YWxpZGF0ZU5hbWluZ3xib29sZWFufCBgdHJ1ZWAsIGBmYWxzZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8YHRydWVgfEVuc3VyZXMgdGhlIG5hbWVzIGZvbGxvdyBhIGdpdmVuIG5hbWluZyBjb252ZW50aW9ufAp8aWdub3JlSGVhZGVyWE5hbWluZ3xib29sZWFufCBgdHJ1ZWAsIGBmYWxzZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8YHRydWVgfEV4Y2x1ZGUgZnJvbSB2YWxpZGF0aW9uIGhlYWRlciBwYXJhbWV0ZXJzIHN0YXJ0aW5nIHdpdGggYHgtYHwKfHBhdGhOYW1pbmdDb252ZW50aW9ufHN0cmluZ3wgYENhbWVsQ2FzZWAsIGBQYXNjYWxDYXNlYCwgYEh5cGhlblVwcGVyQ2FzZWAsIGBIeXBoZW5DYXNlYCwgYFVuZGVyc2NvcmVDYXNlYCwgYFVuZGVyc2NvcmVVcHBlckNhc2VgLCBgQW55Q2FzZWAgfGBIeXBoZW5DYXNlYHxOYW1pbmcgY29udmVudGlvbiBmb3IgcGF0aHN8CnxwYXJhbWV0ZXJOYW1pbmdDb252ZW50aW9ufHN0cmluZ3wgYENhbWVsQ2FzZWAsIGBQYXNjYWxDYXNlYCwgYEh5cGhlblVwcGVyQ2FzZWAsIGBIeXBoZW5DYXNlYCwgYFVuZGVyc2NvcmVDYXNlYCwgYFVuZGVyc2NvcmVVcHBlckNhc2VgLCBgQW55Q2FzZWAgfGBDYW1lbENhc2VgfEdsb2JhbCBuYW1pbmcgY29udmVudGlvbiBmb3IgYWxsIHBhcmFtZXRlciB0eXBlcyAocGF0aCwgcXVlcnkgYW5kIGNvb2tpZSkgWyhub3RlKV0oI3BhcmFtZXRlci1uYW1pbmctY29udmVudGlvbi1oaWVyYXJjaHkpfAp8cGF0aFBhcmFtTmFtaW5nQ29udmVudGlvbnxzdHJpbmd8IGBDYW1lbENhc2VgLCBgUGFzY2FsQ2FzZWAsIGBIeXBoZW5VcHBlckNhc2VgLCBgSHlwaGVuQ2FzZWAsIGBVbmRlcnNjb3JlQ2FzZWAsIGBVbmRlcnNjb3JlVXBwZXJDYXNlYCwgYEFueUNhc2VgIHwoc2FtZSBhcyBgcGFyYW1ldGVyTmFtaW5nQ29udmVudGlvbmApfFNwZWNpZmljIG5hbWluZyBjb252ZW50aW9uIGZvciBwYXRoIHBhcmFtZXRlcnMgWyhub3RlKV0oI3BhcmFtZXRlci1uYW1pbmctY29udmVudGlvbi1oaWVyYXJjaHkpfAp8cXVlcnlQYXJhbU5hbWluZ0NvbnZlbnRpb258c3RyaW5nfCBgQ2FtZWxDYXNlYCwgYFBhc2NhbENhc2VgLCBgSHlwaGVuVXBwZXJDYXNlYCwgYEh5cGhlbkNhc2VgLCBgVW5kZXJzY29yZUNhc2VgLCBgVW5kZXJzY29yZVVwcGVyQ2FzZWAsIGBBbnlDYXNlYCB8KHNhbWUgYXMgYHBhcmFtZXRlck5hbWluZ0NvbnZlbnRpb25gKXxTcGVjaWZpYyBuYW1pbmcgY29udmVudGlvbiBmb3IgcXVlcnkgcGFyYW1ldGVycyBbKG5vdGUpXSgjcGFyYW1ldGVyLW5hbWluZy1jb252ZW50aW9uLWhpZXJhcmNoeSl8Cnxjb29raWVQYXJhbU5hbWluZ0NvbnZlbnRpb258c3RyaW5nfCBgQ2FtZWxDYXNlYCwgYFBhc2NhbENhc2VgLCBgSHlwaGVuVXBwZXJDYXNlYCwgYEh5cGhlbkNhc2VgLCBgVW5kZXJzY29yZUNhc2VgLCBgVW5kZXJzY29yZVVwcGVyQ2FzZWAsIGBBbnlDYXNlYCB8KHNhbWUgYXMgYHBhcmFtZXRlck5hbWluZ0NvbnZlbnRpb25gKXxTcGVjaWZpYyBuYW1pbmcgY29udmVudGlvbiBmb3IgY29va2llIHBhcmFtZXRlcnMgWyhub3RlKV0oI3BhcmFtZXRlci1uYW1pbmctY29udmVudGlvbi1oaWVyYXJjaHkpfAp8aGVhZGVyTmFtaW5nQ29udmVudGlvbnxzdHJpbmd8IGBDYW1lbENhc2VgLCBgUGFzY2FsQ2FzZWAsIGBIeXBoZW5VcHBlckNhc2VgLCBgSHlwaGVuQ2FzZWAsIGBVbmRlcnNjb3JlQ2FzZWAsIGBVbmRlcnNjb3JlVXBwZXJDYXNlYCwgYEFueUNhc2VgIHxgVW5kZXJzY29yZVVwcGVyQ2FzZWB8TmFtaW5nIGNvbnZlbnRpb24gZm9yIGhlYWRlcnN8CnxzY2hlbWFOYW1pbmdDb252ZW50aW9ufHN0cmluZ3wgYENhbWVsQ2FzZWAsIGBQYXNjYWxDYXNlYCwgYEh5cGhlblVwcGVyQ2FzZWAsIGBIeXBoZW5DYXNlYCwgYFVuZGVyc2NvcmVDYXNlYCwgYFVuZGVyc2NvcmVVcHBlckNhc2VgLCBgQW55Q2FzZWAgfGBQYXNjYWxDYXNlYHxOYW1pbmcgY29udmVudGlvbiBmb3Igc2NoZW1hc3wKfHByb3BlcnR5TmFtaW5nQ29udmVudGlvbnxzdHJpbmd8IGBDYW1lbENhc2VgLCBgUGFzY2FsQ2FzZWAsIGBIeXBoZW5VcHBlckNhc2VgLCBgSHlwaGVuQ2FzZWAsIGBVbmRlcnNjb3JlQ2FzZWAsIGBVbmRlcnNjb3JlVXBwZXJDYXNlYCwgYEFueUNhc2VgIHxgQ2FtZWxDYXNlYHxOYW1pbmcgY29udmVudGlvbiBmb3IgcHJvcGVydGllc3wKfGVudW1OYW1pbmdDb252ZW50aW9ufHN0cmluZ3wgYENhbWVsQ2FzZWAsIGBQYXNjYWxDYXNlYCwgYEh5cGhlblVwcGVyQ2FzZWAsIGBIeXBoZW5DYXNlYCwgYFVuZGVyc2NvcmVDYXNlYCwgYFVuZGVyc2NvcmVVcHBlckNhc2VgLCBgQW55Q2FzZWAgfGBBbnlDYXNlYHxOYW1pbmcgY29udmVudGlvbiBmb3IgZW51bXN8CnxhbGxvd2VkTW9kZWxQcm9wZXJ0aWVzfGFycmF5fCBgWyJfbGlua3MiLCAiX2VtYmVkZGVkIl1gfGBbXWB8QW4gYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdGhhdCBhcmUgYXV0aG9yaXNlZCBldmVuIGlmIHRoZXkgZG8gbm90IG1hdGNoIHRvIHRoZSAicHJvcGVydHlOYW1pbmdDb252ZW50aW9uInwKCiMjIyMgUGFyYW1ldGVyIE5hbWluZyBDb252ZW50aW9uIGhpZXJhcmNoeQoKVGhlIFBhcmFtZXRlciBOYW1pbmcgQ29udmVudGlvbiBjYW4gYmUgZGVmaW5lZCBieSBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBpbiB0aGUgYG9wdGlvbnMuanNvbmAgZmlsZToKLSBwYXJhbWV0ZXJOYW1pbmdDb252ZW50aW9uCi0gcGF0aFBhcmFtTmFtaW5nQ29udmVudGlvbgotIHF1ZXJ5UGFyYW1OYW1pbmdDb252ZW50aW9uCi0gY29va2llUGFyYW1OYW1pbmdDb252ZW50aW9uCgpUaGUgZmlyc3Qgb3B0aW9uIChwYXJhbWV0ZXJOYW1pbmdDb252ZW50aW9uKSBkZWZpbmVzIGEgZ2xvYmFsIGNvbnZlbnRpb24gZm9yIGFsbCBvdGhlciBwYXJhbWV0ZXIgbmFtaW5nIGNvbnZlbnRpb24gb3B0aW9ucyAocGF0aCwgcXVlcnkgYW5kIGNvb2tpZSksIHVubGVzcyB0aGV5IGFyZSBleHBsaWNpdGx5IGRlZmluZWQgaW4gdGhlIGBvcHRpb25zLmpzb25gIGZpbGUuCgpJbiBvdGhlciB3b3JkcywgdGhlIGBwYXRoUGFyYW1OYW1pbmdDb252ZW50aW9uYCwgYHF1ZXJ5UGFyYW1OYW1pbmdDb252ZW50aW9uYCBhbmQgYGNvb2tpZVBhcmFtTmFtaW5nQ29udmVudGlvbmAgYXJlIHNwZWNpZmljIGZvciB0aGUgcGFyYW1ldGVyIHR5cGUgdGhlaXIgbmFtZXMgaW5kaWNhdGUuIFRodXMsIHRoZXkgdGFrZSBwcmVjZWRlbmNlIG92ZXIgYHBhcmFtZXRlck5hbWluZ0NvbnZlbnRpb25gIHdoZW4gdGhleSBhcmUgZGVmaW5lZC4gSWYgbm90IGRlZmluZWQsIHRoZSB1bmRlZmluZWQgb3B0aW9uIGlzIGFzc2lnbmVkIHRoZSBzYW1lIHZhbHVlIGZvciBgcGFyYW1ldGVyTmFtaW5nQ29udmVudGlvbmAgKGVpdGhlciBleHBsaWNpdGx5IGRlZmluZWQgb3IgZGVmYXVsdCkuCgpFeGFtcGxlIDE6CmBgYGpzb24KewogIC8qCiAgICAncGFyYW1ldGVyTmFtaW5nQ29udmVudGlvbicgaXMgbm90IGRlZmluZWQuCiAgICAgICAgVGhlbiBpdCBhc3N1bWVzIHRoZSAnQ2FtZWxDYXNlJyBjb252ZW50aW9uLgogICAqLwogICJwYXRoUGFyYW1OYW1pbmdDb252ZW50aW9uIjogIlVuZGVyc2NvcmVDYXNlIiwKICAicXVlcnlQYXJhbU5hbWluZ0NvbnZlbnRpb24iOiAiSHlwaGVuQ2FzZSIKICAvKgogICAgJ2Nvb2tpZVBhcmFtTmFtaW5nQ29udmVudGlvbicgaXMgbm90IGRlZmluZWQuCiAgICAgICAgVGhlbiBpdCBhc3N1bWVzIHRoZSBzYW1lIHZhbHVlIGFzICdwYXJhbWV0ZXJOYW1pbmdDb252ZW50aW9uJywKICAgICAgICB3aGljaCBpcyBpdHMgZGVmYXVsdCB2YWx1ZSAoJ0NhbWVsQ2FzZScpLgogICAqLwp9CmBgYAoKRXhhbXBsZSAyOgpgYGBqc29uCnsKICAicGFyYW1ldGVyTmFtaW5nQ29udmVudGlvbiI6ICJIeXBoZW5DYXNlIiwKICAicGF0aFBhcmFtTmFtaW5nQ29udmVudGlvbiI6ICJVbmRlcnNjb3JlQ2FzZSIsCiAgInF1ZXJ5UGFyYW1OYW1pbmdDb252ZW50aW9uIjogIkh5cGhlbkNhc2UiCiAgLyoKICAgICdjb29raWVQYXJhbU5hbWluZ0NvbnZlbnRpb24nIGlzIG5vdCBkZWZpbmVkLgogICAgICAgIFRoZW4gaXQgYXNzdW1lcyB0aGUgc2FtZSB2YWx1ZSBhcyAncGFyYW1ldGVyTmFtaW5nQ29udmVudGlvbicsCiAgICAgICAgd2hpY2ggaXMgZXhwbGljaXRseSBkZWZpbmVkIGFzICdIeXBoZW5DYXNlJy4KICAgKi8KfQpgYGAKCiMjIFN1cHBvcnRlZCBFeHRlbnNpb25zCgpXZSBzb21ldGltZXMgaGF2ZSBzb21lIHBhdGhzIGluIG91ciBBUEkgdGhhdCBhcmUgdGhlcmUgZm9yIGxlZ2FjeSByZWFzb25zLiBUbyBzdXBwb3J0IHRoaXMgc2NlbmFyaW8sIHRoZXJlIGlzIG5vdyB0aGUgcG9zc2liaWxpdHkgdG8gYWRkIGFuIGV4dGVuc2lvbiBwcm9wZXJ0eSBpbiB5b3VyIHNwZWMgbmFtZWQgYHgtc3R5bGUtdmFsaWRhdG9yLWlnbm9yZWRgLiBIZXJlIGlzIGFuIGV4YW1wbGU6CgpgYGB5YW1sCi9teS1wYXRoV2l0aFdlaXJkX05BTUlORy1Gb1JMZUdhQ3lSZUFzT25TTE9MOgogIHgtc3R5bGUtdmFsaWRhdG9yLWlnbm9yZWQ6IHRydWUKICBwb3N0OgogICAgdGFnczoKICAgICAgLSBXaGF0ZXZlcgogICAgc3VtbWFyeTogQSBzdW1tYXJ5CiAgICAvKiBtaXNzaW5nIG9wZXJhdGluZyBpZCBvciBvdGhlciBpbXBvcnRhbnQgcHJvcGVydHkgKi8KICAgIHJlc3BvbnNlczoKICAgICAgMjAwOgogICAgICAgIGRlc2NyaXB0aW9uOiBPSwogIGdldDoKICAgIC4uLgpgYGAKClRoZSBwYXRoIChHRVQsIFBPU1QsIGV0Yy4uKSB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZCBieSB0aGUgc3R5bGUgdmFsaWRhdG9yLgoKIyMgUm9hZG1hcAoKVG8gdmlldyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHJvYWRtYXAsIHBsZWFzZSBzZWUgdGhlIFtvZmZpY2lhbCByb2FkbWFwXShodHRwczovL29wZW5hcGl0b29scy5naXRodWIuaW8vb3BlbmFwaS1zdHlsZS12YWxpZGF0b3IvZG9jcy9yb2FkbWFwLykuCgojIyBSZWxlYXNlcyBvbiBtYXZlbiBjZW50cmFsCgpUaGUgZGlmZmVyZW50IGNvbXBvbmVudHMgb2YgdGhpcyBwcm9qZWN0IGFyZSByZWxlYXNlZCBvbiBNYXZlbiBDZW50cmFsOgoKVGhlIGNvcmUgbGlicmFyeToKCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzLm9wZW5hcGlzdHlsZXZhbGlkYXRvcjwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5vcGVuYXBpLXN0eWxlLXZhbGlkYXRvci1saWI8L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+JHt2YWxpZGF0b3JWZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKClRoZSBjb21tYW5kIGxpbmUgdG9vbCAod2l0aG91dCBkZXBlbmRlbmN5KToKCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzLm9wZW5hcGlzdHlsZXZhbGlkYXRvcjwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5vcGVuYXBpLXN0eWxlLXZhbGlkYXRvci1jbGk8L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+JHt2YWxpZGF0b3JWZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKClRoZSBjb21tYW5kIGxpbmUgdG9vbCBpcyBhbHNvIGF2YWlsYWJsZSBhcyBzdGFuZGFsb25lIGphciAoY29udGFpbmluZyBpdHMgZGVwZW5kZW5jaWVzKToKCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzLm9wZW5hcGlzdHlsZXZhbGlkYXRvcjwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5vcGVuYXBpLXN0eWxlLXZhbGlkYXRvci1jbGk8L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+JHt2YWxpZGF0b3JWZXJzaW9ufTwvdmVyc2lvbj4KICA8Y2xhc3NpZmllcj5hbGw8L2NsYXNzaWZpZXI+CjwvZGVwZW5kZW5jeT4KYGBgCgpZb3UgY2FuIGRvd25sb2FkIGl0IG1hbnVhbGx5IChyZXBsYWNlIHRoZSBgPHZlcnNpb24+YCBwbGFjZWhvbGRlciBpbiBmb2xsb3dpbmcgVVJMKToKCmBgYApodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpc3R5bGV2YWxpZGF0b3Ivb3BlbmFwaS1zdHlsZS12YWxpZGF0b3ItY2xpLzx2ZXJzaW9uPi9vcGVuYXBpLXN0eWxlLXZhbGlkYXRvci1jbGktPHZlcnNpb24+LWFsbC5qYXIKYGBgCg== readmeEtag: '"2f3dd64751b151bba10a340fd5bf931f433df9f2"' readmeLastModified: Thu, 15 Aug 2024 19:20:15 GMT repositoryId: 101086314 description: >- A customizable style validator to make sure your OpenAPI spec follows your organization's standards. created: '2017-08-22T16:53:13Z' updated: '2024-09-04T11:19:00Z' language: Java archived: false stars: 202 watchers: 8 forks: 42 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 repoEtag: '"ab75f995897e0822e335247c2c4126498e69600e29150c269355ad1871ee47c3"' repoLastModified: Wed, 04 Sep 2024 11:19:00 GMT foundInMaster: true id: 30d322c922366df3f6f8fb9c681b2139 - source: https://openapi.tools/ name: OpenAPI Validator category: Description Validators repository: https://github.com/ibm/openapi-validator language: Node.js source_description: Configurable and extensible validator/linter for OpenAPI documents v2: true v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5jb20vSUJNL29wZW5hcGktdmFsaWRhdG9yLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9JQk0vb3BlbmFwaS12YWxpZGF0b3IpClshW25wbS12ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2libS1vcGVuYXBpLXZhbGlkYXRvci5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9pYm0tb3BlbmFwaS12YWxpZGF0b3IpClshW3NlbWFudGljLXJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvJTIwJTIwJUYwJTlGJTkzJUE2JUYwJTlGJTlBJTgwLXNlbWFudGljLS1yZWxlYXNlLWUxMDA3OS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2VtYW50aWMtcmVsZWFzZS9zZW1hbnRpYy1yZWxlYXNlKQpbIVtHaXR0ZXJdKGh0dHBzOi8vYmFkZ2VzLmdpdHRlci5pbS9vcGVuYXBpLXZhbGlkYXRvci9jb21tdW5pdHkuc3ZnKV0oaHR0cHM6Ly9naXR0ZXIuaW0vb3BlbmFwaS12YWxpZGF0b3IvY29tbXVuaXR5P3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UpClshW0NvbW1pdGl6ZW4gZnJpZW5kbHldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29tbWl0aXplbi1mcmllbmRseS1icmlnaHRncmVlbi5zdmcpXShodHRwOi8vY29tbWl0aXplbi5naXRodWIuaW8vY3otY2xpLykKWyFbQ0xBIGFzc2lzdGFudF0oaHR0cHM6Ly9jbGEtYXNzaXN0YW50LmlvL3JlYWRtZS9iYWRnZS9pYm0vb3BlbmFwaS12YWxpZGF0b3IpXShodHRwczovL2NsYS1hc3Npc3RhbnQuaW8vaWJtL29wZW5hcGktdmFsaWRhdG9yKQoKIyBPcGVuQVBJIFZhbGlkYXRvcgpUaGUgSUJNIE9wZW5BUEkgVmFsaWRhdG9yIGxldHMgeW91IHZhbGlkYXRlIFtPcGVuQVBJIDMuMC54XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCkKYW5kIFtPcGVuQVBJIDMuMS54XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjEuMC5tZCkgZG9jdW1lbnRzIGZvciBjb21wbGlhbmNlIHdpdGggdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMsIGFzIHdlbGwgYXMgSUJNLWRlZmluZWQgYmVzdCBwcmFjdGljZXMuCgojIyMjIFByZXJlcXVpc2l0ZXMKLSBOb2RlIDE2LjAuMCsKLSBOUE0gOC4zLjArCgojIyBUYWJsZSBvZiBjb250ZW50cwoKPCEtLQogIFRoZSBUT0MgYmVsb3cgaXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBgbWFya2Rvd24tdG9jYCBub2RlIHBhY2thZ2UuCgogICAgICBodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9tYXJrZG93bi10b2MKCiAgWW91IHNob3VsZCByZWdlbmVyYXRlIHRoZSBUT0MgYWZ0ZXIgbWFraW5nIGNoYW5nZXMgdG8gdGhpcyBmaWxlLgoKICAgICAgbnBtIHJ1biBmb3JtYXQtcmVhZG1lLXRvYwogIC0tPgoKPCEtLSB0b2MgLS0+CgotIFtHZXR0aW5nIFN0YXJ0ZWRdKCNnZXR0aW5nLXN0YXJ0ZWQpCiAgKiBbUnVsZXNldF0oI3J1bGVzZXQpCiAgKiBbQ3VzdG9taXphdGlvbl0oI2N1c3RvbWl6YXRpb24pCi0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKICAqIFtJbnN0YWxsIHdpdGggTlBNIChyZWNvbW1lbmRlZCldKCNpbnN0YWxsLXdpdGgtbnBtLXJlY29tbWVuZGVkKQogICogW0Rvd25sb2FkIGFuIGV4ZWN1dGFibGUgYmluYXJ5XSgjZG93bmxvYWQtYW4tZXhlY3V0YWJsZS1iaW5hcnkpCiAgKiBbQnVpbGQgZnJvbSBzb3VyY2VdKCNidWlsZC1mcm9tLXNvdXJjZSkKICAgICsgW0J1aWxkIHBsYXRmb3JtLXNwZWNpZmljIGJpbmFyaWVzXSgjYnVpbGQtcGxhdGZvcm0tc3BlY2lmaWMtYmluYXJpZXMpCiAgKiBbQ29udGFpbmVyIGltYWdlXSgjY29udGFpbmVyLWltYWdlKQogICAgKyBbQnVpbGRpbmcgeW91ciBvd25dKCNidWlsZGluZy15b3VyLW93bikKLSBbVXNhZ2VdKCN1c2FnZSkKICAqIFtDb21tYW5kIFN5bnRheF0oI2NvbW1hbmQtc3ludGF4KQogICogW0NvbmZpZ3VyYXRpb25dKCNjb25maWd1cmF0aW9uKQogICAgKyBbQ29uZmlndXJhdGlvbiBQcm9wZXJ0aWVzXSgjY29uZmlndXJhdGlvbi1wcm9wZXJ0aWVzKQogICAgICAtIFtjb2xvcml6ZU91dHB1dF0oI2NvbG9yaXplb3V0cHV0KQogICAgICAtIFtlcnJvcnNPbmx5XSgjZXJyb3Jzb25seSkKICAgICAgLSBbZmlsZXNdKCNmaWxlcykKICAgICAgLSBbaWdub3JlRmlsZXNdKCNpZ25vcmVmaWxlcykKICAgICAgLSBbbGltaXRzXSgjbGltaXRzKQogICAgICAtIFtsb2dMZXZlbHNdKCNsb2dsZXZlbHMpCiAgICAgIC0gW291dHB1dEZvcm1hdF0oI291dHB1dGZvcm1hdCkKICAgICAgLSBbcnVsZXNldF0oI3J1bGVzZXQpCiAgICAgIC0gW3N1bW1hcnlPbmx5XSgjc3VtbWFyeW9ubHkpCiAgKiBbUHJvZ3JhbW1hdGljIFVzYWdlXSgjcHJvZ3JhbW1hdGljLXVzYWdlKQotIFtWYWxpZGF0b3IgT3V0cHV0XSgjdmFsaWRhdG9yLW91dHB1dCkKICAqIFtUZXh0XSgjdGV4dCkKICAqIFtKU09OXSgjanNvbikKLSBbTG9nZ2luZ10oI2xvZ2dpbmcpCi0gW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKLSBbTGljZW5zZV0oI2xpY2Vuc2UpCgo8IS0tIHRvY3N0b3AgLS0+CgojIyBHZXR0aW5nIFN0YXJ0ZWQKVGhlIHZhbGlkYXRvciBhbmFseXplcyB5b3VyIEFQSSBkZWZpbml0aW9uIGFuZCByZXBvcnRzIGFueSBwcm9ibGVtcyB3aXRoaW4uIFRoZSB2YWxpZGF0b3IgaXMgaGlnaGx5IGN1c3RvbWl6YWJsZSwKYW5kIHN1cHBvcnRzIE9wZW5BUEkgMy4wLnggYW5kIDMuMS54IGRvY3VtZW50cy4KVGhlIHRvb2wgYWxzbyBzdXBwb3J0cyBhIG51bWJlciBvZiBydWxlcyBmcm9tIFtTcGVjdHJhbF0oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vb3Blbi1zb3VyY2Uvc3BlY3RyYWwvKS4gWW91IGNhbiBlYXNpbHkgZXh0ZW5kIHRoZSB0b29sIHdpdGggY3VzdG9tIHJ1bGVzIHRvIG1lZXQgeW91ciBzcGVjaWZpYyBuZWVkcyBhbmQgZW5zdXJlIGNvbXBsaWFuY2UgdG8geW91ciBzdGFuZGFyZHMuCgpHZXQgc3RhcnRlZCBieSBbaW5zdGFsbGluZyB0aGUgdG9vbF0oI2luc3RhbGxhdGlvbiksIHRoZW4gW3J1biB0aGUgdG9vbF0oI3VzYWdlKSBvbiB5b3VyIEFQSSBkZWZpbml0aW9uLgoKIyMjIFJ1bGVzZXQKQnkgZGVmYXVsdCwgdGhlIHZhbGlkYXRvciB3aWxsIHVzZSB0aGUgW0lCTSBDbG91ZCBWYWxpZGF0aW9uIFJ1bGVzZXRdKGRvY3MvaWJtLWNsb3VkLXJ1bGVzLm1kKSAobnBtIHBhY2thZ2UgYEBpYm0tY2xvdWQvb3BlbmFwaS1ydWxlc2V0YCkuCkhvd2V2ZXIsIGlmIHRoZSB2YWxpZGF0b3IgZGV0ZWN0cyB0aGUgcHJlc2VuY2Ugb2YgYW55IG9mIHRoZSBzdGFuZGFyZCBTcGVjdHJhbCBydWxlc2V0IGZpbGVzIChgc3BlY3RyYWwueWFtbGAsIGBzcGVjdHJhbC55bWxgLCBgc3BlY3RyYWwuanNvbmAsCm9yIGBzcGVjdHJhbC5qc2ApIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSAoZnJvbSB3aGljaCB0aGUgdmFsaWRhdG9yIGlzIGJlaW5nIHJ1bikgb3IgaW4gYW55IGNvbnRhaW5pbmcgZGlyZWN0b3J5IHdpdGhpbiB0aGUgZmlsZSBzeXN0ZW0sCnRoZW4gdGhhdCBydWxlc2V0IGZpbGUgd2lsbCBiZSB1c2VkIGluc3RlYWQuClRvIGV4cGxpY2l0bHkgc3BlY2lmeSBhbiBhbHRlcm5hdGUgcnVsZXNldCwgeW91IGNhbiB1c2UgdGhlIGAtcmAvYC0tcnVsZXNldGAgb3B0aW9uIChvciB0aGUgYHJ1bGVzZXRgIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkpCnRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgeW91ciBjdXN0b20gcnVsZXNldCBmaWxlLgoKSWYgb25lIG9mIHRoZSBzdGFuZGFyZCBTcGVjdHJhbCBydWxlc2V0IGZpbGVzIGFyZSBwcmVzZW50IGFuZCB5b3UnZCBsaWtlIHRvIGZvcmNlIHRoZSB1c2Ugb2YgdGhlIElCTSBDbG91ZCBWYWxpZGF0aW9uIFJ1bGVzZXQgaW5zdGVhZCwKeW91IGNhbiB1c2UgYC1yIGRlZmF1bHRgIG9yIGAtLXJ1bGVzZXQgZGVmYXVsdGAgKG9yIHNldCB0aGUgYHJ1bGVzZXRgIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgdG8gdGhlIHZhbHVlIGAnZGVmYXVsdCdgKS4KCkRldGFpbHMgYWJvdXQgdGhlc2Ugb3B0aW9ucyBhcmUgcHJvdmlkZWQgYmVsb3cgaW4gdGhlIFtVc2FnZV0oI3VzYWdlKSBzZWN0aW9uLgoKIyMjIEN1c3RvbWl6YXRpb24KCllvdSBjYW4gbW9kaWZ5IHRoZSBiZWhhdmlvciBvZiB0aGUgdmFsaWRhdG9yIGZvciB5b3VyIHByb2plY3QgdG8gbWVldCB5b3VyIHByZWZlcnJlZCBzdGFuZGFyZHMuIFNlZSB0aGUgW2N1c3RvbWl6YXRpb24gZG9jdW1lbnRhdGlvbl0oZG9jcy9pYm0tY2xvdWQtcnVsZXMubWQjY3VzdG9taXphdGlvbikgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyBJbnN0YWxsYXRpb24KVGhlcmUgYXJlIHRocmVlIHdheXMgdG8gaW5zdGFsbCB0aGUgdmFsaWRhdG9yOiB1c2luZyBOUE0sIGRvd25sb2FkaW5nIGEgcGxhdGZvcm0tc3BlY2lmaWMgYmluYXJ5LCBvciBidWlsZGluZyBmcm9tIHNvdXJjZS4KCiMjIyBJbnN0YWxsIHdpdGggTlBNIChyZWNvbW1lbmRlZCkKCmBucG0gaW5zdGFsbCAtZyBpYm0tb3BlbmFwaS12YWxpZGF0b3JgCgpUaGUgYC1nYCBmbGFnIGluc3RhbGxzIHRoZSB0b29sIGdsb2JhbGx5IHNvIHRoYXQgdGhlIHZhbGlkYXRvciBjYW4gYmUgcnVuIGZyb20gYW55d2hlcmUgaW4gdGhlIGZpbGUgc3lzdGVtLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHBhc3Mgbm8gZmxhZyBvciB0aGUgYC0tc2F2ZS1kZXZgIGZsYWcgdG8gYWRkIHRoZSB2YWxpZGF0b3IgYXMgYSBkZXBlbmRlbmN5IHRvIHlvdXIgcHJvamVjdCBhbmQgcnVuIGl0IGZyb20geW91ciBOUE0gc2NyaXB0cyBvciBKYXZhU2NyaXB0IGNvZGUuCgojIyMgRG93bmxvYWQgYW4gZXhlY3V0YWJsZSBiaW5hcnkKClBsYXRmb3JtLXNwZWNpZmljIGJpbmFyeSBmaWxlcyBhcmUgcGFja2FnZWQgd2l0aCBlYWNoIHJlbGVhc2UgZm9yIE1hY09TLCBMaW51eCwgYW5kIFdpbmRvd3MuIFNlZSBbdGhlIHJlbGVhc2VzXShodHRwczovL2dpdGh1Yi5jb20vSUJNL29wZW5hcGktdmFsaWRhdG9yL3JlbGVhc2VzKSBwYWdlIHRvIGRvd25sb2FkIHRoZSBleGVjdXRhYmxlIGZvciB5b3VyIHBsYXRmb3JtLiBUaGVzZSBkbyBub3QgZGVwZW5kIG9uIE5vZGUuSlMgYmVpbmcgaW5zdGFsbGVkLgoKIyMjIEJ1aWxkIGZyb20gc291cmNlCjEuIENsb25lIG9yIGRvd25sb2FkIHRoaXMgcmVwb3NpdG9yeQoyLiBOYXZpZ2F0ZSB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LgozLiBJbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMgdXNpbmcgYG5wbSBpbnN0YWxsYAo0LiBCdWlsZCB0aGUgY29tbWFuZCBsaW5lIHRvb2wgYnkgcnVubmluZyBgbnBtIHJ1biBsaW5rYC4KCl9JZiB5b3UgaW5zdGFsbGVkIHRoZSB2YWxpZGF0b3IgdXNpbmcgYG5wbSBpbnN0YWxsIC1nIGlibS1vcGVuYXBpLXZhbGlkYXRvcmAsIHlvdSB3aWxsIG5lZWQgdG8gcnVuIGBucG0gdW5pbnN0YWxsIC1nIGlibS1vcGVuYXBpLXZhbGlkYXRvcmAgYmVmb3JlIHJ1bm5pbmcgYG5wbSBydW4gbGlua2AuXwoKIyMjIyBCdWlsZCBwbGF0Zm9ybS1zcGVjaWZpYyBiaW5hcmllcwpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGJ1aWxkIHBsYXRmb3JtIHNwZWNpZmljIGJpbmFyaWVzIGZyb20gdGhlIHNvdXJjZSBjb2RlIGJ5IHJ1bm5pbmcgYG5wbSBydW4gcGtnYCBpbiB0aGUgcHJvamVjdCByb290IGRpcmVjdG9yeS4gIFRoZSBiaW5hcmllcyAobGludC1vcGVuYXBpLW1hY29zLCBsaW50LW9wZW5hcGktbGludXgsIGxpbnQtb3BlbmFwaS13aW5kb3dzLmV4ZSkgd2lsbCBiZSBpbiB0aGUgcHJvamVjdCdzIGBwYWNrYWdlcy92YWxpZGF0b3IvYmluYCBkaXJlY3RvcnkuCgojIyMgQ29udGFpbmVyIGltYWdlCgpSdW4gdGhlIHZhbGlkYXRvciB3aXRoIHRoZSBjb250YWluZXIgaW1hZ2UgYnkgbW91bnRpbmcgeW91ciBBUEkgZGVmaW5pdGlvbi4KCklmIGl0IGlzIG5hbWVkIGBvcGVuYXBpLnlhbWxgIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgdGhlbiBydW46CmBgYGJhc2gKZG9ja2VyIHJ1biBcCiAgLS1ybSAtLXR0eSBcCiAgLS12b2x1bWUgIiRQV0Q6L2RhdGE6cm8iIFwKICBpYm1kZXZ4c2RrL29wZW5hcGktdmFsaWRhdG9yOmxhdGVzdCBcCiAgICBvcGVuYXBpLnlhbWwKYGBgCgpZb3Ugc2hvdWxkICoqcmVwbGFjZSBgbGF0ZXN0YCB3aXRoIGEgc3BlY2lmaWMgdGFnZ2VkIHZlcnNpb24qKiB0byBhdm9pZCBhbnkgc3VycHJpc2VzIHdoZW4gbmV3IHJlbGVhc2VzIGFyZSBwdWJsaXNoZWQuCgpGbGFnIGFuZCBhcmd1bWVudCBzeW50YXggaXMgdGhlIHNhbWUgYXMgZGVzY3JpYmVkIGluIFtVc2FnZV0oI3VzYWdlKSwgYnV0IGZpbGUgcGF0aHMgYXJlIHJlbGF0aXZlIHRvIGAvZGF0YWAuCgpUbyB1c2UgYSBjdXN0b20gcnVsZXNldCBuYW1lZCBgcnVsZXNldC55YW1sYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnksIHJ1bjoKYGBgYmFzaApkb2NrZXIgcnVuIFwKICAtLXJtIC0tdHR5IFwKICAtLXZvbHVtZSAiJFBXRDovZGF0YTpybyIgXAogIGlibWRldnhzZGsvb3BlbmFwaS12YWxpZGF0b3I6bGF0ZXN0IFwKICAgIC0tcnVsZXNldCBydWxlc2V0LnlhbWwgXAogICAgb3BlbmFwaS55YW1sCmBgYAoKIyMjIyBCdWlsZGluZyB5b3VyIG93bgoKSWYgdGhlIGV4aXN0aW5nIGltYWdlIGRvZXNuJ3Qgc3VpdCB5b3VyIG5lZWRzLCB5b3UgY291bGQgZXh0ZW5kIGl0IGFuZCBidWlsZCB5b3VyIG93bi4KCkZvciBleGFtcGxlLCB0byBidWlsZCBhIHZhbGlkYXRvciBpbWFnZSB3aXRoIHlvdXIgb3duIGN1c3RvbSBydWxlc2V0IHBhY2thZ2UgaW5zdGFsbGVkLCBtYWtlIGEgYERvY2tlcmZpbGVgIGxpa2UgdGhpczoKCmBgYERvY2tlcmZpbGUKRlJPTSBpYm1kZXZ4c2RrL29wZW5hcGktdmFsaWRhdG9yOmxhdGVzdApSVU4gbnBtIGluc3RhbGwgLWcgJHt5b3VyLXJ1bGVzZXQtcGtnLWhlcmV9CmBgYAoKIyMgVXNhZ2UKIyMjIENvbW1hbmQgU3ludGF4CmBgYGJhc2gKVXNhZ2U6IGxpbnQtb3BlbmFwaSBbb3B0aW9uc10gW2ZpbGUuLi5dCgpSdW4gdGhlIHZhbGlkYXRvciBvbiBvbmUgb3IgbW9yZSBPcGVuQVBJIDMueCBkb2N1bWVudHMKCk9wdGlvbnM6CiAgLWMsIC0tY29uZmlnIDxmaWxlPiAgICAgICAgICAgIHVzZSBjb25maWd1cmF0aW9uIHN0b3JlZCBpbiA8ZmlsZT4gKCouanNvbiwgKi55YW1sLCAqLmpzKQogIC1lLCAtLWVycm9ycy1vbmx5ICAgICAgICAgICAgICBpbmNsdWRlIG9ubHkgZXJyb3JzIGluIHRoZSBvdXRwdXQgYW5kIHNraXAgd2FybmluZ3MgKGRlZmF1bHQgaXMgZmFsc2UpCiAgLWksIC0taWdub3JlIDxmaWxlPiAgICAgICAgICAgIGF2b2lkIHZhbGlkYXRpbmcgPGZpbGU+IChlLmcuIC1pIC9kaXIxL2lnbm9yZS1maWxlMS5qc29uIC0taWdub3JlIC9kaXIyL2lnbm9yZS1maWxlMi55YW1sIC4uLikgKGRlZmF1bHQgaXMgW10pIChkZWZhdWx0OiBbXSkKICAtaiwgLS1qc29uICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZSBKU09OIG91dHB1dCAoZGVmYXVsdCBpcyB0ZXh0KQogIC1sLCAtLWxvZy1sZXZlbCA8bG9nbGV2ZWw+ICAgICBzZXQgdGhlIGxvZyBsZXZlbCBmb3Igb25lIG9yIG1vcmUgbG9nZ2VycyAoZS5nLiAtbCByb290PWluZm8gLWwgaWJtLXNjaGVtYS1kZXNjcmlwdGlvbi1leGlzdHM9ZGVidWcgLi4uKSAgKGRlZmF1bHQ6IFtdKQogIC1uLCAtLW5vLWNvbG9ycyAgICAgICAgICAgICAgICBkaXNhYmxlIGNvbG9yaXppbmcgb2YgdGhlIG91dHB1dCAoZGVmYXVsdCBpcyBmYWxzZSkKICAtciwgLS1ydWxlc2V0IDxmaWxlPiAgICAgICAgICAgdXNlIFNwZWN0cmFsIHJ1bGVzZXQgY29udGFpbmVkIGluIGA8ZmlsZT5gICgiZGVmYXVsdCIgZm9yY2VzIHVzZSBvZiBkZWZhdWx0IElCTSBDbG91ZCBWYWxpZGF0aW9uIFJ1bGVzZXQpCiAgLXMsIC0tc3VtbWFyeS1vbmx5ICAgICAgICAgICAgIGluY2x1ZGUgb25seSB0aGUgc3VtbWFyeSBpbmZvcm1hdGlvbiBhbmQgc2tpcCBpbmRpdmlkdWFsIGVycm9ycyBhbmQgd2FybmluZ3MgKGRlZmF1bHQgaXMgZmFsc2UpCiAgLXcsIC0td2FybmluZ3MtbGltaXQgPG51bWJlcj4gIHNldCB3YXJuaW5ncyBsaW1pdCB0byA8bnVtYmVyPiAoZGVmYXVsdCBpcyAtMSkKICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgb3V0cHV0IHRoZSB2ZXJzaW9uIG51bWJlcgogIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHAgZm9yIGNvbW1hbmQKYGBgCndoZXJlIGBbZmlsZS4uLl1gIGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3QgY29udGFpbmluZyB0aGUgZmlsZW5hbWVzIG9mIG9uZSBvciBtb3JlIE9wZW5BUEkgMy54IGRvY3VtZW50cyB0byBiZSB2YWxpZGF0ZWQuClRoZSB2YWxpZGF0b3Igc3VwcG9ydHMgT3BlbkFQSSBkb2N1bWVudHMgaW4gZWl0aGVyIEpTT04gb3IgWUFNTCBmb3JtYXQsIHVzaW5nIHRoZXNlIHN1cHBvcnRlZCBmaWxlIGV4dGVuc2lvbnM6CmBgYAouanNvbgoueWFtbAoueW1sCmBgYApBc3N1bWluZyB5b3VyIGNvbW1hbmQgc2hlbGwgc3VwcG9ydHMgdGhlIHVzZSBvZiB3aWxkY2FyZHMsIHlvdSBjYW4gdXNlIHdpbGRjYXJkcyB3aGVuIHNwZWNpZnlpbmcgdGhlIG5hbWVzIG9mIGZpbGVzIHRvIGJlIHZhbGlkYXRlZC4KRm9yIGV4YW1wbGUsIHRvIHJ1biB0aGUgdmFsaWRhdG9yIG9uIGFsbCBgLnlhbWxgIGZpbGVzIGNvbnRhaW5lZCBpbiB0aGUgYC9teS9hcGlzYCBkaXJlY3RvcnksIHlvdSBjb3VsZCB1c2UKdGhpcyBjb21tYW5kOgpgYGBiYXNoCmxpbnQtb3BlbmFwaSAvbXkvYXBpcy8qLnlhbWwKYGBgCgpOb3RlIHRoYXQgdGhlIGAtaWAvYC0taWdub3JlYCBvcHRpb24gY2FuIGJlIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiB1c2luZyB3aWxkY2FyZHMgYmVjYXVzZSBpdCBhbGxvd3MgeW91IHRvIHNraXAgdGhlCnZhbGlkYXRpb24gb2Ygc3BlY2lmaWMgZmlsZXMgd2hpY2ggbWlnaHQgb3RoZXJ3aXNlIGJlIGluY2x1ZGVkIGluIGEgdmFsaWRhdGlvbiBydW4uCkZvciBleGFtcGxlLCB0byB2YWxpZGF0ZSBhbGwgYC55YW1sYCBmaWxlcyBpbiB0aGUgYC9teS9hcGlzYCBkaXJlY3RvcnksIGV4Y2VwdCBmb3IgYC9teS9hcGlzL2Jyb2tlbi1hcGkueWFtbGAgdXNlIHRoZSBjb21tYW5kOgpgYGBiYXNoCmxpbnQtb3BlbmFwaSAvbXkvYXBpcy8qLnlhbWwgLWkgL215L2FwaXMvYnJva2VuLWFwaS55YW1sCmBgYAoKIyMjIENvbmZpZ3VyYXRpb24KSW4gYWRkaXRpb24gdG8gY29tbWFuZC1saW5lIG9wdGlvbnMsIHRoZSB2YWxpZGF0b3Igc3VwcG9ydHMgdGhlIHVzZSBvZiBhIGNvbmZpZ3VyYXRpb24gZmlsZSBjb250YWluaW5nIG9wdGlvbnMgYXMgd2VsbC4KQSBjb25maWd1cmF0aW9uIGZpbGUgY2FuIGJlIGluIEpTT04sIFlBTUwgb3IgSmF2YXNjcmlwdCBmb3JtYXQsIHVzaW5nIHRoZXNlIHN1cHBvcnRlZCBleHRlbnNpb25zOiBgLmpzb25gLCBgLnlhbWxgLCBgLnltbGAsIGFuZCBgLmpzYC4KSXRzIHN0cnVjdHVyZSBtdXN0IGNvbXBseSB3aXRoIFt0aGlzIEpTT04gc2NoZW1hXShwYWNrYWdlcy92YWxpZGF0b3Ivc3JjL3NjaGVtYXMvY29uZmlnLWZpbGUueWFtbCkuCgpZb3UgY2FuIHNwZWNpZnkgdGhlIG5hbWUgb2YgeW91ciBjb25maWd1cmF0aW9uIGZpbGUgd2l0aCB0aGUgYC1jYC9gLS1jb25maWdgIG9wdGlvbi4gIEhlcmUncyBhbiBleGFtcGxlOgpgYGBiYXNoCmxpbnQtb3BlbmFwaSAtYyBteS1jb25maWcueWFtbCBteS1hcGkuanNvbgpgYGAKd2hlcmUgYG15LWNvbmZpZy55YW1sYCBtaWdodCBjb250YWluIHRoZSBmb2xsb3dpbmc6CmBgYHlhbWwKZXJyb3JzT25seTogdHJ1ZQpsaW1pdHM6CiAgd2FybmluZ3M6IDI1Cm91dHB1dEZvcm1hdDogJ2pzb24nCnN1bW1hcnlPbmx5OiB0cnVlCmBgYApUaGlzIHdvdWxkIGJlIGVxdWl2YWxlbnQgdG8gdGhpcyBjb21tYW5kOgpgYGBiYXNoCmxpbnQtb3BlbmFwaSAtLWVycm9ycy1vbmx5IC0td2FybmluZ3MtbGltaXQ9MjUgLS1qc29uIC0tc3VtbWFyeS1vbmx5IG15LWFwaS5qc29uCmBgYApXaGVuIHVzaW5nIGJvdGggYSBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHZhcmlvdXMgY29tbWFuZC1saW5lIG9wdGlvbnMsIGJlIGF3YXJlIHRoYXQgdGhlIG9wdGlvbnMgc3BlY2lmaWVkCnZpYSB0aGUgY29tbWFuZC1saW5lIHdpbGwgdGFrZSBwcmVjZW5kZW5jZSBhbmQgb3ZlcnJpZGUgYW55IGNvcnJlc3BvbmRpbmcgcHJvcGVydGllcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiMjIyMgQ29uZmlndXJhdGlvbiBQcm9wZXJ0aWVzClRoaXMgc2VjdGlvbiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIG9mIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIHN1cHBvcnRlZCB3aXRoaW4gYSBjb25maWd1cmF0aW9uIGZpbGUuCgojIyMjIyBjb2xvcml6ZU91dHB1dAo8dGFibGUgYm9yZGVyPTE+Cjx0cj4KPHRkPjxiPkRlc2NyaXB0aW9uPC9iPjwvdGQ+Cjx0ZCB3aWR0aD0yNSU+PGI+RGVmYXVsdDwvYj48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5UaGUgPGNvZGU+Y29sb3JpemVPdXRwdXQ8L2NvZGU+IGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgY29ycmVzcG9uZHMgdG8gdGhlIDxjb2RlPi1uPC9jb2RlPi88Y29kZT4tLW5vLWNvbG9yczwvY29kZT4KY29tbWFuZC1saW5lIG9wdGlvbi4gSWYgc2V0IHRvIHRydWUsIHRoZW4gdGhlIHZhbGlkYXRvciB3aWxsIGNvbG9yaXplIGl0cyBvdXRwdXQuPC90ZD4KPHRkPjxjb2RlPnRydWU8L2NvZGU+PC90ZD4KPC90cj4KPC90YWJsZT4KPGI+RXhhbXBsZXM6PC9iPgo8dGFibGUgYm9yZGVyPTE+Cjx0cj4KPC90cj4KPHRyPgo8dGQ+PGNvZGU+LnlhbWwvLnltbDwvY29kZT48L3RkPgo8dGQ+PGNvZGU+Lmpzb248L2NvZGU+PC90ZD4KPHRkPjxjb2RlPi5qczwvY29kZT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KPHByZT4KY29sb3JpemVPdXRwdXQ6IGZhbHNlCjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+CnsKICAiY29sb3JpemVPdXRwdXQiOiBmYWxzZQp9CjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+Cm1vZHVsZS5leHBvcnRzID0gewogIGNvbG9yaXplT3V0cHV0OiBmYWxzZQp9Owo8L3ByZT4KPC90ZD4KPC90cj4KPC90YWJsZT4KCiMjIyMjIGVycm9yc09ubHkKPHRhYmxlIGJvcmRlcj0xPgo8dHI+Cjx0ZD48Yj5EZXNjcmlwdGlvbjwvYj48L3RkPgo8dGQgd2lkdGg9MjUlPjxiPkRlZmF1bHQ8L2I+PC90ZD4KPC90cj4KPHRyPgo8dGQ+VGhlIDxjb2RlPmVycm9yc09ubHk8L2NvZGU+IGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgY29ycmVzcG9uZHMgdG8gdGhlIDxjb2RlPi1lPC9jb2RlPi88Y29kZT4tLWVycm9ycy1vbmx5PC9jb2RlPiBjb21tYW5kLWxpbmUgb3B0aW9uLgpJZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIHRoZSB2YWxpZGF0b3Igd2lsbCBpbmNsdWRlIG9ubHkgZXJyb3JzIGluIGl0cyBvdXRwdXQsIHdoaWxlIG1lc3NhZ2VzIG9mIHNldmVyaXR5IHdhcm5pbmcsCmluZm8gb3IgaGludCB3aWxsIGJlIHNraXBwZWQuPC90ZD4KPHRkPjxjb2RlPmZhbHNlPC9jb2RlPjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxiPkV4YW1wbGVzOjwvYj4KPHRhYmxlIGJvcmRlcj0xPgo8dHI+CjwvdHI+Cjx0cj4KPHRkPjxjb2RlPi55YW1sLy55bWw8L2NvZGU+PC90ZD4KPHRkPjxjb2RlPi5qc29uPC9jb2RlPjwvdGQ+Cjx0ZD48Y29kZT4uanM8L2NvZGU+PC90ZD4KPC90cj4KPHRyPgo8dGQ+CjxwcmU+CmVycm9yc09ubHk6IHRydWUKPC9wcmU+CjwvdGQ+Cjx0ZD4KPHByZT4KewogICJlcnJvcnNPbmx5IjogdHJ1ZQp9CjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+Cm1vZHVsZS5leHBvcnRzID0gewogIGVycm9yc09ubHk6IHRydWUKfTsKPC9wcmU+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMjIyBmaWxlcwo8dGFibGUgYm9yZGVyPTE+Cjx0cj4KPHRkPjxiPkRlc2NyaXB0aW9uPC9iPjwvdGQ+Cjx0ZCB3aWR0aD0yNSU+PGI+RGVmYXVsdDwvYj48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5UaGUgPGNvZGU+ZmlsZXM8L2NvZGU+IGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgY29ycmVzcG9uZHMgdG8gcG9zaXRpb25hbCBjb21tYW5kLWxpbmUgYXJndW1lbnRzIChpLmUuIDxjb2RlPltmaWxlLi4uXTwvY29kZT4pLgpZb3UgY2FuIHNldCB0aGlzIHByb3BlcnR5IHRvIHRoZSBuYW1lcyBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudHMgdG8gYmUgdmFsaWRhdGVkLiBJZiBhbnkgZmlsZW5hbWVzIGFyZSBhbHNvIGVudGVyZWQgYXMgcG9zaXRpb25hbCBhcmd1bWVudHMKb24gdGhlIGNvbW1hbmQtbGluZSwgdGhleSB3aWxsIG92ZXJyaWRlIGFueSB2YWx1ZXMgc3BlY2lmaWVkIGluIHRoaXMgY29uZmlndXJhdGlvbiBwcm9wZXJ0eS48L3RkPgo8dGQ+PGNvZGU+W108L2NvZGU+KGVtcHR5IGxpc3QpPC90ZD4KPC90cj4KPC90YWJsZT4KPGI+RXhhbXBsZXM6PC9iPgo8dGFibGUgYm9yZGVyPTE+Cjx0cj4KPC90cj4KPHRyPgo8dGQ+PGNvZGU+LnlhbWwvLnltbDwvY29kZT48L3RkPgo8dGQ+PGNvZGU+Lmpzb248L2NvZGU+PC90ZD4KPHRkPjxjb2RlPi5qczwvY29kZT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KPHByZT4KZmlsZXM6CiAgLSBmaWxlMS5qc29uCiAgLSBmaWxlMi55YW1sCjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+CnsKICAiZmlsZXMiOiBbCiAgICAiZmlsZTEuanNvbiIsCiAgICAiZmlsZTIueWFtbCIKICBdCn0KPC9wcmU+CjwvdGQ+Cjx0ZD4KPHByZT4KbW9kdWxlLmV4cG9ydHMgPSB7CiAgZmlsZXM6IFsKICAgICdmaWxlMS5qc29uJywKICAgICdmaWxlMi55YW1sJwogIF0KfTsKPC9wcmU+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMjIyBpZ25vcmVGaWxlcwo8dGFibGUgYm9yZGVyPTE+Cjx0cj4KPHRkPjxiPkRlc2NyaXB0aW9uPC9iPjwvdGQ+Cjx0ZCB3aWR0aD0yNSU+PGI+RGVmYXVsdDwvYj48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5UaGUgPGNvZGU+aWdub3JlRmlsZXM8L2NvZGU+IGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgY29ycmVzcG9uZHMgdG8gdGhlIDxjb2RlPi1pPC9jb2RlPi88Y29kZT4tLWlnbm9yZTwvY29kZT4gY29tbWFuZC1saW5lIG9wdGlvbi4KU2V0IHRoaXMgcHJvcGVydHkgdG8gdGhlIGZ1bGx5LXF1YWxpZmllZCBmaWxlbmFtZXMgb2YgT3BlbkFQSSBkb2N1bWVudHMgdG8gYmUgZXhjbHVkZWQgZnJvbSB2YWxpZGF0aW9uLgpUaGlzIHByb3BlcnR5IGNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gdXNpbmcgd2lsZGNhcmRzIGZvciBzcGVjaWZ5aW5nIHRoZSBPcGVuQVBJIGRvY3VtZW50cyB0byBiZSB2YWxpZGF0ZWQsCmJlY2F1c2UgaXQgYWxsb3dzIHlvdSB0byBza2lwIHRoZSB2YWxpZGF0aW9uIG9mIHNwZWNpZmljIGZpbGVzIHdoaWNoIG1pZ2h0IG90aGVyd2lzZSBiZSBpbmNsdWRlZCBpbiBhIHZhbGlkYXRpb24gcnVuLgpGb3IgZXhhbXBsZSwgdG8gdmFsaWRhdGUgYWxsIDxjb2RlPi55YW1sPC9jb2RlPiBmaWxlcyBpbiB0aGUgPGNvZGU+L215L2FwaXM8L2NvZGU+IGRpcmVjdG9yeSwgZXhjZXB0IGZvcgo8Y29kZT4vbXkvYXBpcy9icm9rZW4tYXBpLnlhbWw8L2NvZGU+IHVzZSB0aGUgY29tbWFuZDoKPHByZT4KICAgIGxpbnQtb3BlbmFwaSAvbXkvYXBpcy8qLnlhbWwgLS1pZ25vcmUgL215L2FwaXMvYnJva2VuLWFwaS55YW1sCjwvcHJlPgo8L3RkPgo8dGQ+PGNvZGU+W108L2NvZGU+KGVtcHR5IGxpc3QpPC90ZD4KPC90cj4KPC90YWJsZT4KPGI+RXhhbXBsZXM6PC9iPgo8dGFibGUgYm9yZGVyPTE+Cjx0cj4KPC90cj4KPHRyPgo8dGQ+PGNvZGU+LnlhbWwvLnltbDwvY29kZT48L3RkPgo8dGQ+PGNvZGU+Lmpzb248L2NvZGU+PC90ZD4KPHRkPjxjb2RlPi5qczwvY29kZT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KPHByZT4KaWdub3JlRmlsZXM6CiAgLSAvbXkvYXBpcy9maWxlMS55bWwKPC9wcmU+CjwvdGQ+Cjx0ZD4KPHByZT4KewogICJpZ25vcmVGaWxlcyI6IFsKICAgICIvbXkvYXBpcy9maWxlMS55bWwiCiAgXQp9CjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+Cm1vZHVsZS5leHBvcnRzID0gewogIGlnbm9yZUZpbGVzOiBbCiAgICAnL215L2FwaXMvZmlsZTEueW1sJwogIF0KfTsKPC9wcmU+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMjIyBsaW1pdHMKPHRhYmxlIGJvcmRlcj0xPgo8dHI+Cjx0ZD48Yj5EZXNjcmlwdGlvbjwvYj48L3RkPgo8dGQgd2lkdGg9MjUlPjxiPkRlZmF1bHQ8L2I+PC90ZD4KPC90cj4KPHRyPgo8dGQ+VGhlIDxjb2RlPmxpbWl0czwvY29kZT4gY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBjb3JyZXNwb25kcyB0byB0aGUgPGNvZGU+LXc8L2NvZGU+Lzxjb2RlPi0td2FybmluZ3MtbGltaXQ8L2NvZGU+IGNvbW1hbmQtbGluZSBvcHRpb24uClVzZSB0aGlzIHByb3BlcnR5IHRvIHNldCB0aGUgd2FybmluZ3MgbGltaXQuICBXaGVuIHZhbGlkYXRpbmcgYW4gT3BlbkFQSSBkb2N1bWVudCwgdGhlIHZhbGlkYXRvciB3aWxsIGNvbXBhcmUgdGhlIG51bWJlciBvZiB3YXJuaW5ncwppdCBlbmNvdW50ZXJzIHdpdGggdGhlIHdhcm5pbmdzIGxpbWl0LiAgSWYgdGhlIG51bWJlciBvZiB3YXJuaW5ncyBleGNlZWRzIHRoZSBsaW1pdCwgdGhlbiBhbiBlcnJvciB3aWxsIGJlIGxvZ2dlZCBhbmQgdGhlCnZhbGlkYXRvciB3aWxsIHJldHVybiBleGl0Q29kZSAxLCBzaW1pbGFyIHRvIGlmIGFjdHVhbCBlcnJvcnMgd2VyZSBmb3VuZC4gSWYgdGhlIHdhcm5pbmdzIGxpbWl0IGlzIHNldCB0byBhIG5lZ2F0aXZlIG51bWJlciwKdGhlbiBubyB3YXJuaW5ncyBsaW1pdCBjaGVjayB3aWxsIGJlIHBlcmZvcm1lZCBieSB0aGUgdmFsaWRhdG9yLjwvdGQ+Cjx0ZD48Y29kZT57IHdhcm5pbmdzOiAtMSB9PC9jb2RlPih3YXJuaW5ncyBsaW1pdCBjaGVjayBkaXNhYmxlZCk8L3RkPgo8L3RyPgo8L3RhYmxlPgo8Yj5FeGFtcGxlczo8L2I+Cjx0YWJsZSBib3JkZXI9MT4KPHRyPgo8L3RyPgo8dHI+Cjx0ZD48Y29kZT4ueWFtbC8ueW1sPC9jb2RlPjwvdGQ+Cjx0ZD48Y29kZT4uanNvbjwvY29kZT48L3RkPgo8dGQ+PGNvZGU+LmpzPC9jb2RlPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgo8cHJlPgpsaW1pdHM6CiAgd2FybmluZ3M6IDI1CjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+CnsKICAibGltaXRzIjogewogICAgIndhcm5pbmdzIjogMjUKICB9Cn0KPC9wcmU+CjwvdGQ+Cjx0ZD4KPHByZT4KbW9kdWxlLmV4cG9ydHMgPSB7CiAgbGltaXRzOiB7CiAgICB3YXJuaW5nczogMjUKICB9Cn07CjwvcHJlPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgoKIyMjIyMgbG9nTGV2ZWxzCjx0YWJsZSBib3JkZXI9MT4KPHRyPgo8dGQ+PGI+RGVzY3JpcHRpb248L2I+PC90ZD4KPHRkIHdpZHRoPTI1JT48Yj5EZWZhdWx0PC9iPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPlRoZSA8Y29kZT5sb2dMZXZlbHM8L2NvZGU+IHByb3BlcnR5IGlzIGFuIG9iamVjdCB0aGF0IHNwZWNpZmllcyB0aGUgbG9nZ2luZyBsZXZlbAooPGNvZGU+ZXJyb3I8L2NvZGU+LCA8Y29kZT53YXJuPC9jb2RlPiwgPGNvZGU+aW5mbzwvY29kZT4sIG9yIDxjb2RlPmRlYnVnPC9jb2RlPikKYXNzb2NpYXRlZCB3aXRoIGVhY2ggbG9nZ2VyIHdpdGhpbiB0aGUgdmFsaWRhdG9yLiAgSXQgY29ycmVzcG9uZHMgdG8gdGhlIDxjb2RlPi1sPC9jb2RlPi88Y29kZT4tLWxvZy1sZXZlbDwvY29kZT4gY29tbWFuZC1saW5lIG9wdGlvbi48L3RkPgo8dGQ+PGNvZGU+eyByb290OiAnaW5mbycgfTwvY29kZT48L3RkPgo8L3RyPgo8L3RhYmxlPgo8Yj5FeGFtcGxlczo8L2I+Cjx0YWJsZSBib3JkZXI9MT4KPHRyPgo8L3RyPgo8dHI+Cjx0ZD48Y29kZT4ueWFtbC8ueW1sPC9jb2RlPjwvdGQ+Cjx0ZD48Y29kZT4uanNvbjwvY29kZT48L3RkPgo8dGQ+PGNvZGU+LmpzPC9jb2RlPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgo8cHJlPgpsb2dMZXZlbHM6CiAgcm9vdDogZXJyb3IKICBpYm0tc2NoZW1hLWRlc2NyaXB0aW9uLWV4aXN0czogZGVidWcKPC9wcmU+CjwvdGQ+Cjx0ZD4KPHByZT4KewogICJsb2dMZXZlbHMiOiB7CiAgICAicm9vdCI6ICJlcnJvciIsCiAgICAiaWJtLXNjaGVtYS1kZXNjcmlwdGlvbi1leGlzdHMiOiAiZGVidWciCiAgfQp9CjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+Cm1vZHVsZS5leHBvcnRzID0gewogIGxvZ0xldmVsczogewogICAgcm9vdDogJ2Vycm9yJywKICAgICdpYm0tc2NoZW1hLWRlc2NyaXB0aW9uLWV4aXN0cyc6ICdkZWJ1ZycKICB9Cn07CjwvcHJlPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgoKIyMjIyMgb3V0cHV0Rm9ybWF0Cjx0YWJsZSBib3JkZXI9MT4KPHRyPgo8dGQ+PGI+RGVzY3JpcHRpb248L2I+PC90ZD4KPHRkIHdpZHRoPTI1JT48Yj5EZWZhdWx0PC9iPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPllvdSBjYW4gc2V0IHRoZSA8Y29kZT5vdXRwdXRGb3JtYXQ8L2NvZGU+IGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgdG8gZWl0aGVyIDxjb2RlPnRleHQ8L2NvZGU+IG9yIDxjb2RlPmpzb248L2NvZGU+CnRvIGluZGljYXRlIHRoZSB0eXBlIG9mIG91dHB1dCB5b3Ugd2FudCB0aGUgdmFsaWRhdG9yIHRvIHByb2R1Y2UuClRoaXMgcHJvcGVydHkgY29ycmVzcG9uZHMgdG8gdGhlIDxjb2RlPi1qPC9jb2RlPi88Y29kZT4tLWpzb248L2NvZGU+IGNvbW1hbmQtbGluZSBvcHRpb24uPC90ZD4KPHRkPjxjb2RlPnRleHQ8L2NvZGU+PC90ZD4KPC90cj4KPC90YWJsZT4KPGI+RXhhbXBsZXM6PC9iPgo8dGFibGUgYm9yZGVyPTE+Cjx0cj4KPC90cj4KPHRyPgo8dGQ+PGNvZGU+LnlhbWwvLnltbDwvY29kZT48L3RkPgo8dGQ+PGNvZGU+Lmpzb248L2NvZGU+PC90ZD4KPHRkPjxjb2RlPi5qczwvY29kZT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KPHByZT4Kb3V0cHV0Rm9ybWF0OiBqc29uCjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+CnsKICAib3V0cHV0Rm9ybWF0IjogImpzb24iCn0KPC9wcmU+CjwvdGQ+Cjx0ZD4KPHByZT4KbW9kdWxlLmV4cG9ydHMgPSB7CiAgb3V0cHV0Rm9ybWF0OiAnanNvbicKfTsKPC9wcmU+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMjIyBydWxlc2V0Cjx0YWJsZSBib3JkZXI9MT4KPHRyPgo8dGQ+PGI+RGVzY3JpcHRpb248L2I+PC90ZD4KPHRkIHdpZHRoPTI1JT48Yj5EZWZhdWx0PC9iPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPllvdSBjYW4gdXNlIHRoZSA8Y29kZT5ydWxlc2V0PC9jb2RlPiBjb25maWd1cmF0aW9uIHByb3BlcnR5IHRvIHNwZWNpZnkgYSBjdXN0b20gcnVsZXNldCB0byBiZSB1c2VkIGJ5IHRoZSB2YWxpZGF0b3IuClRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIDxjb2RlPi1yPC9jb2RlPi88Y29kZT4tLXJ1bGVzZXQ8L2NvZGU+IGNvbW1hbmQtbGluZSBvcHRpb24uCgpCeSBkZWZhdWx0LCB0aGUgdmFsaWRhdG9yIHdpbGwgbG9vayBmb3IgdGhlIHN0YW5kYXJkIFNwZWN0cmFsIHJ1bGVzZXQgZmlsZXMgKDxjb2RlPi5zcGVjdHJhbC55YW1sPC9jb2RlPiwgPGNvZGU+LnNwZWN0cmFsLnltbDwvY29kZT4sCjxjb2RlPi5zcGVjdHJhbC5qc29uPC9jb2RlPiwgb3IgPGNvZGU+LnNwZWN0cmFsLmpzPC9jb2RlPikgaW4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgYW5kCml0cyBwYXJlbnQgZGlyZWN0b3JpZXMgd2l0aGluIHRoZSBmaWxlc3lzdGVtLiAgSWYgbm9uZSBhcmUgZm91bmQsIHRoZW4gdGhlIElCTSBDbG91ZCBWYWxpZGF0aW9uIFJ1bGVzZXQKd2lsbCBiZSB1c2VkLgoKSWYgeW91IHdhbnQgdG8gZm9yY2UgdGhlIHVzZSBvZiB0aGUgSUJNIENsb3VkIFZhbGlkYXRpb24gUnVsZXNldCBldmVuIGlmIG9uZSBvZiB0aGUgc3RhbmRhcmQgU3BlY3RyYWwgcnVsZXNldCBmaWxlcyBhcmUgcHJlc2VudCwKeW91IGNhbiBzcGVjaWZ5IDxjb2RlPidkZWZhdWx0JzwvY29kZT4gZm9yIHRoZSA8Y29kZT5ydWxlc2V0PC9jb2RlPiBjb25maWd1cmF0aW9uIHByb3BlcnR5Lgo8L3RkPgo8dGQ+PGNvZGU+bnVsbDwvY29kZT4sIHdoaWNoIGltcGxpZXMgdGhhdCBhIHN0YW5kYXJkIFNwZWN0cmFsIHJ1bGVzZXQgZmlsZSB3aWxsIGJlIHVzZWQgKGlmIHByZXNlbnQpLApvdGhlcndpc2UgdGhlIElCTSBDbG91ZCBWYWxpZGF0aW9uIFJ1bGVzZXQgd2lsbCBiZSB1c2VkLjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxiPkV4YW1wbGVzOjwvYj4KPHRhYmxlIGJvcmRlcj0xPgo8dHI+CjwvdHI+Cjx0cj4KPHRkPjxjb2RlPi55YW1sLy55bWw8L2NvZGU+PC90ZD4KPHRkPjxjb2RlPi5qc29uPC9jb2RlPjwvdGQ+Cjx0ZD48Y29kZT4uanM8L2NvZGU+PC90ZD4KPC90cj4KPHRyPgo8dGQ+CjxwcmU+CnJ1bGVzZXQ6IG15LWN1c3RvbS1ydWxlcy55YW1sCjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+CnsKICAicnVsZXNldCI6ICJteS1jdXN0b20tcnVsZXMueWFtbCIKfQo8L3ByZT4KPC90ZD4KPHRkPgo8cHJlPgptb2R1bGUuZXhwb3J0cyA9IHsKICBydWxlc2V0OiAnbXktY3VzdG9tLXJ1bGVzLnlhbWwnCn07CjwvcHJlPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgoKIyMjIyMgc3VtbWFyeU9ubHkKPHRhYmxlIGJvcmRlcj0xPgo8dHI+Cjx0ZD48Yj5EZXNjcmlwdGlvbjwvYj48L3RkPgo8dGQgd2lkdGg9MjUlPjxiPkRlZmF1bHQ8L2I+PC90ZD4KPC90cj4KPHRyPgo8dGQ+VGhlIDxjb2RlPnN1bW1hcnlPbmx5PC9jb2RlPiBjb25maWd1cmF0aW9uIHByb3BlcnR5IGNvcnJlc3BvbmRzIHRvIHRoZSA8Y29kZT4tczwvY29kZT4vPGNvZGU+LS1zdW1tYXJ5LW9ubHk8L2NvZGU+IGNvbW1hbmQtbGluZSBvcHRpb24uCklmIHNldCB0byB0cnVlLCB0aGUgdmFsaWRhdG9yIHdpbGwgaW5jbHVkZSBvbmx5IHRoZSBzdW1tYXJ5IHNlY3Rpb24gaW4gaXRzIG91dHB1dC4KPC90ZD4KPHRkPjxjb2RlPmZhbHNlPC9jb2RlPjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxiPkV4YW1wbGVzOjwvYj4KPHRhYmxlIGJvcmRlcj0xPgo8dHI+CjwvdHI+Cjx0cj4KPHRkPjxjb2RlPi55YW1sLy55bWw8L2NvZGU+PC90ZD4KPHRkPjxjb2RlPi5qc29uPC9jb2RlPjwvdGQ+Cjx0ZD48Y29kZT4uanM8L2NvZGU+PC90ZD4KPC90cj4KPHRyPgo8dGQ+CjxwcmU+CnN1bW1hcnlPbmx5OiB0cnVlCjwvcHJlPgo8L3RkPgo8dGQ+CjxwcmU+CnsKICAic3VtbWFyeU9ubHkiOiB0cnVlCn0KPC9wcmU+CjwvdGQ+Cjx0ZD4KPHByZT4KbW9kdWxlLmV4cG9ydHMgPSB7CiAgc3VtbWFyeU9ubHk6IHRydWUKfTsKPC9wcmU+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMgUHJvZ3JhbW1hdGljIFVzYWdlCldoaWxlIHRoZSB2YWxpZGF0b3IgZG9lcyBub3QgZXhwb3NlIGFuIEFQSSBmb3IgdXNhZ2Ugd2l0aGluIGEgTm9kZS5qcyBwcm9ncmFtLCB5b3UgY2FuIGFjaGlldmUgcHJvZ3JhbW1hdGljIGJlaGF2aW9yCmNvbnNpc3RlbnQgd2l0aCB0aGUgQ0xJIGJ5IHVzaW5nIHRoZSBvcGVuLXNvdXJjZSB0b29sIFtTcGVjdHJhbCdzIE5vZGUgQVBJXShodHRwczovL21ldGEuc3RvcGxpZ2h0LmlvL2RvY3Mvc3BlY3RyYWwvZWI2OGU3YWZkNDYzZS1zcGVjdHJhbC1pbi1qYXZhLXNjcmlwdCkKYW5kIHRoZSBbSUJNIE9wZW5BUEkgUnVsZXNldCBwYWNrYWdlXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AaWJtLWNsb3VkL29wZW5hcGktcnVsZXNldCkuCkhlcmUgaXMgYSBzaW1wbGUgZXhhbXBsZSBvZiB3aGF0IHRoYXQgbWlnaHQgbG9vayBsaWtlOgpgYGBqcwpjb25zdCBpYm1PcGVuYXBpUnVsZXNldCA9IHJlcXVpcmUoJ0BpYm0tY2xvdWQvb3BlbmFwaS1ydWxlc2V0Jyk7CmNvbnN0IHsgU3BlY3RyYWwgfSA9IHJlcXVpcmUoJ0BzdG9wbGlnaHQvc3BlY3RyYWwtY29yZScpOwoKZnVuY3Rpb24gYXN5bmMgcnVuU3BlY3RyYWwob3BlbmFwaURvY3VtZW50KSB7CiAgY29uc3Qgc3BlY3RyYWwgPSBuZXcgU3BlY3RyYWwoKTsKICBzcGVjdHJhbC5zZXRSdWxlc2V0KGlibU9wZW5hcGlSdWxlc2V0KTsKICByZXN1bHRzID0gYXdhaXQgc3BlY3RyYWwucnVuKG9wZW5hcGlEb2N1bWVudCk7CiAgY29uc29sZS5sb2cocmVzdWx0cyk7Cn0KYGBgCgojIyBWYWxpZGF0b3IgT3V0cHV0ClRoZSB2YWxpZGF0b3IgY2FuIHByb2R1Y2Ugb3V0cHV0IGluIGVpdGhlciB0ZXh0IG9yIEpTT04gZm9ybWF0LiAgVGhlIGRlZmF1bHQgaXMgYHRleHRgIG91dHB1dCwgYW5kIHRoaXMgY2FuIGJlCmNvbnRyb2xsZWQgd2l0aCB0aGUgYC1qYC9gLS1qc29uYCBjb21tYW5kLWxpbmUgb3B0aW9uIG9yIGBvdXRwdXRGb3JtYXRgIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkuCgojIyMgVGV4dApIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdGV4dCBvdXRwdXQ6CmBgYApJQk0gT3BlbkFQSSBWYWxpZGF0b3IgKHZhbGlkYXRvcjogMC45Ny41OyBydWxlc2V0OiAwLjQ1LjUpLCBAQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAyMDE3LCAyMDIzLgoKVmFsaWRhdGlvbiBSZXN1bHRzIGZvciAvbXkvZGlyZWN0b3J5L215LWFwaS55YW1sOgoKRXJyb3JzOgoKICBNZXNzYWdlIDogICBQYXRoIGNvbnRhaW5zIHR3byBvciBtb3JlIGNvbnNlY3V0aXZlIHBhdGggcGFyYW1ldGVyIHJlZmVyZW5jZXM6IC92MS9jbG91ZHMve2Nsb3VkX2lkfS97cmVnaW9uX2lkfQogIFJ1bGUgICAgOiAgIGlibS1uby1jb25zZWN1dGl2ZS1wYXRoLXBhcmFtZXRlci1zZWdtZW50cwogIFBhdGggICAgOiAgIHBhdGhzLi92MS9jbG91ZHMve2Nsb3VkX2lkfS97cmVnaW9uX2lkfQogIExpbmUgICAgOiAgIDMzMgoKV2FybmluZ3M6CgogIE1lc3NhZ2UgOiAgIE9wZXJhdGlvbiBzdW1tYXJpZXMgc2hvdWxkIG5vdCBoYXZlIGEgdHJhaWxpbmcgcGVyaW9kCiAgUnVsZSAgICA6ICAgaWJtLXN1bW1hcnktc2VudGVuY2Utc3R5bGUKICBQYXRoICAgIDogICBwYXRocy4vdjEvY2xvdWRzLnBvc3Quc3VtbWFyeQogIExpbmUgICAgOiAgIDQ2CgogIE1lc3NhZ2UgOiAgIE9wZXJhdGlvbiBzdW1tYXJpZXMgc2hvdWxkIG5vdCBoYXZlIGEgdHJhaWxpbmcgcGVyaW9kCiAgUnVsZSAgICA6ICAgaWJtLXN1bW1hcnktc2VudGVuY2Utc3R5bGUKICBQYXRoICAgIDogICBwYXRocy4vdjEvY2xvdWRzLmdldC5zdW1tYXJ5CiAgTGluZSAgICA6ICAgOTMKClN1bW1hcnk6CgogIFRvdGFsIG51bWJlciBvZiBlcnJvcnMgICA6IDEKICBUb3RhbCBudW1iZXIgb2Ygd2FybmluZ3MgOiAyCgogIEVycm9yczoKICAgMSAoMTAwJSkgOiBQYXRoIGNvbnRhaW5zIHR3byBvciBtb3JlIGNvbnNlY3V0aXZlIHBhdGggcGFyYW1ldGVyIHJlZmVyZW5jZXMKCiAgV2FybmluZ3M6CiAgIDIgKDEwMCUpIDogT3BlcmF0aW9uIHN1bW1hcmllcyBzaG91bGQgbm90IGhhdmUgYSB0cmFpbGluZyBwZXJpb2QKYGBgCkFzIHlvdSBjYW4gc2VlLCBhbnkgZXJyb3JzIGRldGVjdGVkIGJ5IHRoZSB2YWxpZGF0b3IgYXJlIGxpc3RlZCBmaXJzdCwgdGhlbgp3YXJuaW5ncywgYW5kIGZpbmFsbHkgYSBzdW1tYXJ5IHNlY3Rpb24uICBUaGUgYC1zYC9gLS1zdW1tYXJ5LW9ubHlgIGNvbW1hbmQtbGluZSBvcHRpb24gb3IgdGhlCmBzdW1tYXJ5T25seWAgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byByZXF1ZXN0IHRoYXQgb25seSB0aGUgc3VtbWFyeQppcyBkaXNwbGF5LgpBbHNvLCB0aGUgYC1lYC9gLS1lcnJvcnMtb25seWAgb3B0aW9uIG9yIGBlcnJvcnNPbmx5YCBjb25maWd1cmF0aW9uIHByb3BlcnR5IGNhbiBiZSB1c2VkCnRvIGNhdXNlIHRoZSB2YWxpZGF0b3IgdG8gZGlzcGxheSBvbmx5IGVycm9ycyBpbiB0aGUgb3V0cHV0LgoKIyMjIEpTT04KV2hlbiBkaXNwbGF5aW5nIEpTT04gb3V0cHV0LCB0aGUgdmFsaWRhdG9yIHdpbGwgcHJvZHVjZSBhIEpTT04gb2JqZWN0IHdoaWNoIGNvbXBsaWVzIHdpdGgKW3RoaXMgSlNPTiBzY2hlbWFdKHBhY2thZ2VzL3ZhbGlkYXRvci9zcmMvc2NoZW1hcy9yZXN1bHRzLW9iamVjdC55YW1sKS4KSGVyZSBpcyBhbiBleGFtcGxlIG9mIEpTT04gb3V0cHV0OgpgYGBqc29uCnsKICAiZXJyb3IiOiB7CiAgICAicmVzdWx0cyI6IFsKICAgICAgewogICAgICAgICJtZXNzYWdlIjogIlBhdGggY29udGFpbnMgdHdvIG9yIG1vcmUgY29uc2VjdXRpdmUgcGF0aCBwYXJhbWV0ZXIgcmVmZXJlbmNlczogL3YxL2Nsb3Vkcy97Y2xvdWRfaWR9L3tyZWdpb25faWR9IiwKICAgICAgICAicGF0aCI6IFsKICAgICAgICAgICJwYXRocyIsCiAgICAgICAgICAiL3YxL2Nsb3Vkcy97Y2xvdWRfaWR9L3tyZWdpb25faWR9IgogICAgICAgIF0sCiAgICAgICAgInJ1bGUiOiAiaWJtLWNvbnNlY3V0aXZlLXBhdGgtc2VnbWVudHMiLAogICAgICAgICJsaW5lIjogMzMyCiAgICAgIH0KICAgIF0sCiAgICAic3VtbWFyeSI6IHsKICAgICAgInRvdGFsIjogMSwKICAgICAgImVudHJpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImdlbmVyYWxpemVkTWVzc2FnZSI6ICJQYXRoIGNvbnRhaW5zIHR3byBvciBtb3JlIGNvbnNlY3V0aXZlIHBhdGggcGFyYW1ldGVyIHJlZmVyZW5jZXMiLAogICAgICAgICAgImNvdW50IjogMSwKICAgICAgICAgICJwZXJjZW50YWdlIjogMTAwCiAgICAgICAgfQogICAgICBdCiAgICB9CiAgfSwKICAid2FybmluZyI6IHsKICAgICJyZXN1bHRzIjogWwogICAgICB7CiAgICAgICAgIm1lc3NhZ2UiOiAiT3BlcmF0aW9uIHN1bW1hcmllcyBzaG91bGQgbm90IGhhdmUgYSB0cmFpbGluZyBwZXJpb2QiLAogICAgICAgICJwYXRoIjogWwogICAgICAgICAgInBhdGhzIiwKICAgICAgICAgICIvdjEvY2xvdWRzIiwKICAgICAgICAgICJwb3N0IiwKICAgICAgICAgICJzdW1tYXJ5IgogICAgICAgIF0sCiAgICAgICAgInJ1bGUiOiAiaWJtLXN1bW1hcnktc2VudGVuY2Utc3R5bGUiLAogICAgICAgICJsaW5lIjogNDYKICAgICAgfSwKICAgICAgewogICAgICAgICJtZXNzYWdlIjogIk9wZXJhdGlvbiBzdW1tYXJpZXMgc2hvdWxkIG5vdCBoYXZlIGEgdHJhaWxpbmcgcGVyaW9kIiwKICAgICAgICAicGF0aCI6IFsKICAgICAgICAgICJwYXRocyIsCiAgICAgICAgICAiL3YxL2Nsb3VkcyIsCiAgICAgICAgICAiZ2V0IiwKICAgICAgICAgICJzdW1tYXJ5IgogICAgICAgIF0sCiAgICAgICAgInJ1bGUiOiAiaWJtLXN1bW1hcnktc2VudGVuY2Utc3R5bGUiLAogICAgICAgICJsaW5lIjogOTMKICAgICAgfQogICAgXSwKICAgICJzdW1tYXJ5IjogewogICAgICAidG90YWwiOiAyLAogICAgICAiZW50cmllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiZ2VuZXJhbGl6ZWRNZXNzYWdlIjogIk9wZXJhdGlvbiBzdW1tYXJpZXMgc2hvdWxkIG5vdCBoYXZlIGEgdHJhaWxpbmcgcGVyaW9kIiwKICAgICAgICAgICJjb3VudCI6IDIsCiAgICAgICAgICAicGVyY2VudGFnZSI6IDEwMAogICAgICAgIH0KICAgICAgXQogICAgfQogIH0sCiAgImluZm8iOiB7CiAgICAicmVzdWx0cyI6IFtdLAogICAgInN1bW1hcnkiOiB7CiAgICAgICJ0b3RhbCI6IDAsCiAgICAgICJlbnRyaWVzIjogW10KICAgIH0KICB9LAogICJoaW50IjogewogICAgInJlc3VsdHMiOiBbXSwKICAgICJzdW1tYXJ5IjogewogICAgICAidG90YWwiOiAwLAogICAgICAiZW50cmllcyI6IFtdCiAgICB9CiAgfSwKICAiaGFzUmVzdWx0cyI6IHRydWUKfQoKYGBgClRoZSBKU09OIG91dHB1dCBpcyBhbHNvIGFmZmVjdGVkIGJ5IHRoZSBgLXNgL2AtLXN1bW1hcnktb25seWAgYW5kIGAtZWAvYC0tZXJyb3JzLW9ubHlgIG9wdGlvbnMgYXMgd2VsbCBhcyB0aGUgYHN1bW1hcnlPbmx5YCBhbmQgYGVycm9yc09ubHlgCmNvbmZpZ3VyYXRpb24gcHJvcGVydGllcy4KCiMjIExvZ2dpbmcKVGhlIHZhbGlkYXRvciB1c2VzIGEgKmxvZ2dlciogZm9yIGRpc3BsYXlpbmcgbWVzc2FnZXMgb24gdGhlIGNvbnNvbGUuClRoZSBjb3JlIHZhbGlkYXRvciB1c2VzIGEgc2luZ2xlIGxvZ2dlciBuYW1lZCBgcm9vdGAsIHdoaWxlIGVhY2ggb2YgdGhlIHJ1bGVzIGNvbnRhaW5lZCBpbiB0aGUKSUJNIENsb3VkIFZhbGlkYXRpb24gUnVsZXNldCB1c2VzIHRoZWlyIG93biB1bmlxdWUgbG9nZ2VyIHdob3NlIG5hbWUgd2lsbCBtYXRjaCB0aGUgcnVsZSdzIGlkCihlLmcuIGBpYm0tYWNjZXB0LWhlYWRlcmAsIGBpYm0tc2NoZW1hLWRlc2NyaXB0aW9uLWV4aXN0c2AsIGV0Yy4pLgoKRWFjaCBsb2dnZXIgaGFzIGEgbG9nZ2luZyBsZXZlbCBhc3NvY2lhdGVkIHdpdGggaXQ6IGBlcnJvcmAsIGB3YXJuYCwgYGluZm9gLCBhbmQgYGRlYnVnYC4KRWFjaCBvZiB0aGVzZSBsZXZlbHMgaW1wbGljaXRseSBpbmNsdWRlcyB0aGUgbGV2ZWxzIHRoYXQgcHJlY2VkZSBpdCBpbiB0aGUgbGlzdC4KRm9yIGV4YW1wbGUsIGlmIHlvdSBzZXQgdGhlIGxvZ2dpbmcgbGV2ZWwgb2YgYSBsb2dnZXIgdG8gYGluZm9gLCB0aGVuIGFsbCBtZXNzYWdlcyBvZiB0eXBlCmBpbmZvYCwgYHdhcm5gLCBhbmQgYGVycm9yYCB3aWxsIGJlIGRpc3BsYXllZCwgYnV0IGBkZWJ1Z2AgbWVzc2FnZXMgd2lsbCBub3QuCgpUbyBzZXQgdGhlIGxldmVsIG9mIHRoZSBgcm9vdGAgbG9nZ2VyIHRvIGBpbmZvYCwgeW91IGNvdWxkIHVzZSB0aGlzIG9wdGlvbjogYC0tbG9nLWxldmVsIHJvb3Q9aW5mb2AuCgpUbyBzZXQgdGhlIGxldmVsIG9mIHRoZSBsb2dnZXIgdXNlZCBieSB0aGUgYGlibS1hY2NlcHQtaGVhZGVyYCBydWxlIHRvIGBkZWJ1Z2AsCnlvdSBjb3VsZCB1c2UgdGhpcyBvcHRpb246IGAtbCBpYm0tYWNjZXB0LWhlYWRlcj1kZWJ1Z2AuCgpZb3UgY2FuIGFsc28gdXNlIGEgZ2xvYi1saWtlIHZhbHVlIGZvciBhIGxvZ2dlciBuYW1lIHRvIHNldCB0aGUgbGV2ZWwgb24gbXVsdGlwbGUgbG9nZ2Vycy4KRm9yIGV4YW1wbGUsIHRvIHNldCB0aGUgbGV2ZWwgZm9yICphbGwqIGxvZ2dlcnMgd2hvc2UgbmFtZSBzdGFydHMgd2l0aCBgaWJtLXByb3BlcnR5YCwgdHJ5IHRoaXM6CmAtbCBpYm0tcHJvcGVydHkqPWRlYnVnYC4KCkVuYWJsaW5nIGRlYnVnIGxvZ2dpbmcgZm9yIGEgc3BlY2lmaWMgcnVsZSBtaWdodCBiZSB1c2VmdWwgaW4gYSBzaXR1YXRpb24gd2hlcmUgdGhlIHJ1bGUgaXMKcmVwb3J0aW5nIHZpb2xhdGlvbnMgd2hpY2ggc2VlbSB0byBiZSBpbmV4cGxpY2FibGUuIEluIHRoaXMgY2FzZSwgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvcm1hdGlvbgptaWdodCBiZSBoZWxwZnVsIGluIGRldGVybWluaW5nIHdoeSB0aGUgdmlvbGF0aW9ucyBhcmUgb2NjdXJyaW5nLCBhbmQgY291bGQgcG9zc2libHkgbGVhZCB0byBhIHNvbHV0aW9uLgpGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGUgYGlibS1wYWdpbmF0aW9uLXN0eWxlYCBydWxlIGlzIHJlcG9ydGluZyBzZXZlcmFsIHZpb2xhdGlvbnMsCmJ1dCB5ZXQgYXQgZmlyc3QgZ2xhbmNlIGl0J3Mgbm90IG9idmlvdXMgd2h5IHRoZXNlIHZpb2xhdGlvbnMgYXJlIG9jY3VycmluZy4KVG8gZW5hYmxlIGRlYnVnIGxvZ2dpbmcgZm9yIHRoaXMgcnVsZSwgdXNlIGEgY29tbWFuZCBsaWtlIHRoaXM6CmBgYApsaW50X29wZW5hcGkgLWwgaWJtLXBhZ2luYXRpb24tc3R5bGU9ZGVidWcgbXktbmV3LWFwaS55YW1sCmBgYAoKVGhlIGRlZmF1bHQgbG9nIGxldmVsIGZvciB0aGUgYHJvb3RgIGxvZ2dlciBpcyBgaW5mb2AsIHdoaWxlIHRoZSBkZWZhdWx0IGxvZyBsZXZlbCBmb3IKcnVsZS1zcGVjaWZpYyBsb2dnZXJzIGlzIGB3YXJuYC4KCiMjIENvbnRyaWJ1dGluZwoKU2VlIFtDT05UUklCVVRJTkddKENPTlRSSUJVVElORy5tZCkuCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgQXBhY2hlIDIuMC4gIEZ1bGwgbGljZW5zZSB0ZXh0IGlzIGF2YWlsYWJsZSBpbiBbTElDRU5TRV0oTElDRU5TRSkuCg== readmeEtag: '"43af2d3d7c1188dcec2fec90a9f6b258055daa43"' readmeLastModified: Tue, 06 Aug 2024 14:59:47 GMT repositoryId: 153173690 description: Configurable and extensible validator/linter for OpenAPI documents created: '2018-10-15T19:59:22Z' updated: '2024-09-04T20:40:56Z' language: JavaScript archived: false stars: 480 watchers: 22 forks: 88 owner: IBM logo: https://avatars.githubusercontent.com/u/1459110?v=4 license: Apache-2.0 repoEtag: '"e7c864f97dd6d846888fb029c6ff5ae30b7a4ef8533a4032f1fd0cf122a6ccb9"' repoLastModified: Wed, 04 Sep 2024 20:40:56 GMT foundInMaster: true id: 0bf7dd29a9d07232135bb00764928296 v3_1: true - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/redocly/redocly-cli v3: true v3_1: true id: dc53a7154c15667d6f54d47cdb300949 repositoryMetadata: base64Readme: >- IyBSZWRvY2x5IENMSQoKW0BSZWRvY2x5XShodHRwczovL3JlZG9jbHkuY29tKSBDTEkgaXMgeW91ciBhbGwtaW4tb25lIE9wZW5BUEkgdXRpbGl0eS4gSXQgYnVpbGRzLCBtYW5hZ2VzLCBpbXByb3ZlcywgYW5kIHF1YWxpdHktY2hlY2tzIHlvdXIgT3BlbkFQSSBkZXNjcmlwdGlvbnMsIGFsbCBvZiB3aGljaCBjb21lcyBpbiBoYW5keSBmb3IgdmFyaW91cyBwaGFzZXMgb2YgdGhlIEFQSSBMaWZlY3ljbGUuIENyZWF0ZSB5b3VyIG93biBydWxlc2V0cyB0byBtYWtlIEFQSSBnb3Zlcm5hbmNlIGVhc3ksIGFuZCBwdWJsaXNoIGJlYXV0aWZ1bCBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24uIFN1cHBvcnRzIE9wZW5BUEkgMy4xLCAzLjAgYW5kIE9wZW5BUEkgMi4wIChsZWdhY3kgU3dhZ2dlcikuCgohW2J1aWxkIGFuZCB0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vcmVkb2NseS9yZWRvY2x5LWNsaS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55YW1sL2JhZGdlLnN2ZykKIVtucG0gKHNjb3BlZCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHJlZG9jbHkvY2xpKQohW05QTV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AcmVkb2NseS9jbGkpCgohW09wZW5BUEkgQ0xJIHRvb2xzZXRdKC4vbWVkaWEvcmVkb2NseS1jbGkuZ2lmKQoKIyMgVXNhZ2UKCiMjIyBOb2RlCgpgYGBzaApucHggQHJlZG9jbHkvY2xpIGxpbnQgcGF0aC10by1yb290LWZpbGUueWFtbApgYGAKCkFsdGVybmF0aXZlbHksIGluc3RhbGwgaXQgZ2xvYmFsbHkgd2l0aCBgbnBtYDoKCmBgYHNoCm5wbSBpbnN0YWxsIEByZWRvY2x5L2NsaSAtZwpgYGAKClRoZW4geW91IGNhbiB1c2UgaXQgYXMgYHJlZG9jbHkgW2NvbW1hbmRdIFtvcHRpb25zXWAsIGZvciBleGFtcGxlOgoKYGBgc2gKcmVkb2NseSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpUaGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9ucyBvZiBOb2RlLmpzIGFuZCBOUE0gYXJlIDE0LjE5LjAgYW5kIDcuMC4wIHJlc3BlY3RpdmVseS4KCiMjIyBEb2NrZXIKClRvIGdpdmUgdGhlIERvY2tlciBjb250YWluZXIgYWNjZXNzIHRvIHRoZSBPcGVuQVBJIGRlc2NyaXB0aW9uIGZpbGVzLCB5b3UgbmVlZCB0bwptb3VudCB0aGUgY29udGFpbmluZyBkaXJlY3RvcnkgYXMgYSB2b2x1bWUuIEFzc3VtaW5nIHRoZSBBUEkgZGVzY3JpcHRpb24gaXMgcm9vdGVkCmluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LCB5b3UgbmVlZCB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovc3BlYyByZWRvY2x5L2NsaSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpUbyBidWlsZCBhbmQgcnVuIHdpdGggYSBsb2NhbCBpbWFnZSwgcnVuIHRoZSBmb2xsb3dpbmcgZnJvbSB0aGUgcHJvamVjdCByb290OgoKYGBgc2gKZG9ja2VyIGJ1aWxkIC10IHJlZG9jbHkvY2xpIC4KZG9ja2VyIHJ1biAtLXJtIC12ICRQV0Q6L3NwZWMgcmVkb2NseS9jbGkgbGludCBwYXRoLXRvLXJvb3QtZmlsZS55YW1sCmBgYAoKIyMgQ29tbW9uIHRhc2tzCgojIyMgR2VuZXJhdGUgQVBJIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uCgpSZWRvY2x5IENMSSBpcyBhIGdyZWF0IHdheSB0byByZW5kZXIgQVBJIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uLiBJdCB1c2VzIG9wZW4gc291cmNlIFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL3JlZG9jbHkvcmVkb2MpIHRvIGJ1aWxkIHlvdXIgZG9jdW1lbnRhdGlvbi4gVXNlIGEgY29tbWFuZCBsaWtlIHRoaXM6CgpgYGBzaApyZWRvY2x5IGJ1aWxkLWRvY3Mgb3BlbmFwaS55YW1sCmBgYAoKWW91ciBBUEkgcmVmZXJlbmNlIGRvY3MgYXJlIGluIGByZWRvYy1zdGF0aWMuaHRtbGAgYnkgZGVmYXVsdC4gWW91IGNhbiBjdXN0b21pemUgdGhpcyBpbiBtYW55IHdheXMuIFtSZWFkIHRoZSBtYWluIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvY29tbWFuZHMvYnVpbGQtZG9jcykgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgo+IDpidWxiOiBSZWRvY2x5IGFsc28gaGFzIFtob3N0ZWQgQVBJIHJlZmVyZW5jZSBkb2NzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvYXBpLXJlZ2lzdHJ5L2d1aWRlcy9hcGktcmVnaXN0cnktcXVpY2tzdGFydC8pLCBhIChjb21tZXJjaWFsKSBhbHRlcm5hdGl2ZSB0byBSZWRvYy4gQm90aCBSZWRvYyBhbmQgUmVkb2NseSBBUEkgcmVmZXJlbmNlIGRvY3MgY2FuIGJlIHdvcmtlZCBvbiBsb2NhbGx5IHVzaW5nIHRoZSBgcHJldmlldy1kb2NzYCBjb21tYW5kLgoKIyMjIEJ1bmRsZSBtdWx0aXBsZSBPcGVuQVBJIGRvY3VtZW50cwoKSGF2aW5nIG9uZSBtYXNzaXZlIE9wZW5BUEkgZGVzY3JpcHRpb24gY2FuIGJlIGFubm95aW5nLCBzbyBtb3N0IHBlb3BsZSBzcGxpdCB0aGVtIHVwIGludG8gbXVsdGlwbGUgZG9jdW1lbnRzIHZpYSBgJHJlZmAsIG9ubHkgdG8gbGF0ZXIgZmluZCBvdXQgc29tZSB0b29scyBkb24ndCBzdXBwb3J0IGAkcmVmYCBvciBkb24ndCBzdXBwb3J0IG11bHRpcGxlIGRvY3VtZW50cy4gUmVkb2NseSBDTEkgdG8gdGhlIHJlc2N1ZSEgSXQgaGFzIGEgYGJ1bmRsZWAgY29tbWFuZCB5b3UgY2FuIHVzZSB0byByZWNvbWJpbmUgYWxsIG9mIHRob3NlIGRvY3VtZW50cyBiYWNrIGludG8gb25lIHNpbmdsZSBkb2N1bWVudC4gVGhlIGJ1bmRsZWQgb3V0cHV0IHRoYXQgUmVkb2NseSBDTEkgcHJvdmlkZXMgaXMgY2xlYW4sIHRpZHksIGFuZCBsb29rcyBsaWtlIGEgaHVtYW4gbWFkZSBpdC4KCiMjIyBBdXRvbWF0ZSBBUEkgZ3VpZGVsaW5lcyB3aXRoIExpbnRpbmcKCkNoZWNrIHRoYXQgeW91ciBBUEkgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgQVBJIGd1aWRlbGluZXMgYnkgdXNpbmcgdGhlIGBsaW50YCBjb21tYW5kLiBBUEkgZ3VpZGVsaW5lcyBhcmUgYW4gaW1wb3J0YW50IHBpZWNlIG9mIEFQSSBnb3Zlcm5hbmNlLiBUaGV5IGhlbHAgdG8ga2VlcCBBUElzIGNvbnNpc3RlbnQgYnkgZW5mb3JjaW5nIHRoZSBzYW1lIHN0YW5kYXJkcyBhbmQgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgdGhleSBjYW4gYWxzbyBndWlkZSBBUEkgdGVhbXMgdGhyb3VnaCBwb3RlbnRpYWwgc2VjdXJpdHkgaGF6YXJkcyBhbmQgb3RoZXIgcGl0ZmFsbHMuIEF1dG9tYXRpbmcgQVBJIGd1aWRlbGluZXMgbWVhbnMgeW91IGNhbiBrZWVwIEFQSXMgY29uc2lzdGVudCBhbmQgc2VjdXJlIHRocm91Z2hvdXQgdGhlaXIgbGlmZWN5Y2xlLiBFdmVuIGJldHRlciwgeW91IGNhbiBzaGFwZSB0aGUgZGVzaWduIG9mIHRoZSBBUEkgYmVmb3JlIGl0IGV2ZW4gZXhpc3RzIGJ5IGNvbWJpbmluZyBBUEkgbGludGluZyB3aXRoIGEgZGVzaWduLWZpcnN0IEFQSSB3b3JrZmxvdy4KCk91ciBBUEkgbGludGVyIGlzIGRlc2lnbmVkIGZvciBzcGVlZCBvbiBldmVuIGxhcmdlIGRvY3VtZW50cywgYW5kIGl0J3MgZWFzeSB0byBydW4gbG9jYWxseSwgaW4gQ0ksIG9yIGFueXdoZXJlIHlvdSBuZWVkIGl0LiBJdCdzIGFsc28gZGVzaWduZWQgZm9yIGh1bWFucywgd2l0aCBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIHRvIGhlbHAgeW91IGdldCB5b3VyIEFQSSByaWdodCBldmVyeSB0aW1lLgoKVHJ5IGl0IGxpa2UgdGhpczoKCmBgYHNoCnJlZG9jbHkgbGludCBvcGVuYXBpLnlhbWwKYGBgCgoqKkNvbmZpZ3VyZSB0aGUgcnVsZXMqKiBhcyB5b3Ugd2lzaC4gT3RoZXIgQVBJIExpbnRlcnMgdXNlIGNvbXBsaWNhdGVkIGlkZW50aWZpZXJzIGxpa2UgSlNPTlBhdGgsIGJ1dCBSZWRvY2x5IG1ha2VzIGxpZmUgZWFzeSB3aXRoIHNpbXBsZSBleHByZXNzaW9ucyB0aGF0IHVuZGVyc3RhbmQgdGhlIE9wZW5BUEkgc3RydWN0dXJlLiBZb3UgY2FuIGVpdGhlciB1c2UgdGhlIFtidWlsdC1pbiBydWxlc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcykgdG8gbWl4LWFuZC1tYXRjaCB5b3VyIGlkZWFsIEFQSSBndWlkZWxpbmVzLCBvciBicmVhayBvdXQgdGhlIHRvb2xzIHRvIGJ1aWxkIHlvdXIgb3duLgoKKipGb3JtYXQgdGhlIG91dHB1dCoqIGluIHdoYXRldmVyIHdheSB5b3UgbmVlZC4gVGhlIGBzdHlsaXNoYCBvdXRwdXQgaXMgYXMgZ29vZCBhcyBpdCBzb3VuZHMsIGJ1dCBpZiB5b3UgbmVlZCBKU09OIG9yIENoZWNrc3R5bGUgb3V0cHV0cyB0byBpbnRlZ3JhdGUgd2l0aCBvdGhlciB0b29scywgdGhlIGBsaW50YCBjb21tYW5kIGNhbiBvdXRwdXQgdGhvc2UgdG9vLgoKKipNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQqKiBzbyB5b3UgZG9uJ3QgbmVlZCB0byBidW5kbGUgeW91ciBBUEkgZGVzY3JpcHRpb24gdG8gbGludCBpdDsganVzdCBwb2ludCBSZWRvY2x5IENMSSBhdCB0aGUgImVudHJ5IHBvaW50IiAoZS5nLjogYG9wZW5hcGkueWFtbGApIGFuZCBpdCBoYW5kbGVzIHRoZSByZXN0LgoKW0xlYXJuIG1vcmUgYWJvdXQgQVBJIHN0YW5kYXJkcyBhbmQgY29uZmlndXJpbmcgUmVkb2NseSBydWxlc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9hcGktc3RhbmRhcmRzKS4KCiMjIyBUcmFuc2Zvcm0gYW4gT3BlbkFQSSBkZXNjcmlwdGlvbgoKSWYgeW91ciBPcGVuQVBJIGRlc2NyaXB0aW9uIGlzbid0IGV2ZXJ5dGhpbmcgeW91IGhvcGVkIGl0IHdvdWxkIGJlLCBlbmhhbmNlIGl0IHdpdGggdGhlIFJlZG9jbHkgW2RlY29yYXRvcnNdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvZGVjb3JhdG9ycykgZmVhdHVyZS4gVGhpcyBhbGxvd3MgeW91IHRvOgoKLSBQdWJsaXNoIHJlZmVyZW5jZSBkb2NzIHdpdGggYSBzdWJzZXQgb2YgZW5kcG9pbnRzIGZvciBwdWJsaWMgdXNlCi0gSW1wcm92ZSB0aGUgZG9jcyBieSBhZGRpbmcgZXhhbXBsZXMgYW5kIGRlc2NyaXB0aW9ucwotIEFkYXB0IGFuIGV4aXN0aW5nIE9wZW5BUEkgZGVzY3JpcHRpb24sIGFuZCByZXBsYWNlIGRldGFpbHMgbGlrZSBVUkxzIGZvciB1c2Ugb24gc3RhZ2luZyBwbGF0Zm9ybXMKCiMjIERhdGEgY29sbGVjdGlvbgoKVGhpcyB0b29sIFtjb2xsZWN0cyBkYXRhXSguL2RvY3MvdXNhZ2UtZGF0YS5tZCkgdG8gaGVscCBSZWRvY2x5IGltcHJvdmUgb3VyIHByb2R1Y3RzIGFuZCBzZXJ2aWNlcy4gWW91IGNhbiBvcHQgb3V0IGJ5IHNldHRpbmcgdGhlIGBSRURPQ0xZX1RFTEVNRVRSWWAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYG9mZmAuCgojIyBNb3JlIHJlc291cmNlcwoKW1JlYWQgdGhlIGRldGFpbGVkIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvKS4KCiMjIENyZWRpdHMKClRoYW5rcyB0byBbZ3JhcGhxbC1qc10oaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwvZ3JhcGhxbC1qcykgYW5kIFtlc2xpbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9lc2xpbnQvZXNsaW50KSBmb3IgaW5zcGlyYXRpb24gb2YgdGhlIEFQSSBkZXNjcmlwdGlvbiB0cmF2ZXJzYWwgYXBwcm9hY2ggYW5kIHRvIFtTd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IpLCBbU3BlY3RyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbCksIGFuZCBbT0FTLUtpdF0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb2FzLWtpdCkgZm9yIGluc3BpcmluZyB0aGUgcmVjb21tZW5kZWQgcnVsZXNldC4KCiMjIERldmVsb3BtZW50CgpDb250cmlidXRpb25zIGFyZSB3ZWxjb21lISBBbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBuZWVkIGlzIGluIFtDT05UUklCVVRJTkcubWRdKENPTlRSSUJVVElORy5tZCkuCg== readmeEtag: '"ed4ce86cbf40ca72ae803ed52b08958d6930deab"' readmeLastModified: Fri, 16 Aug 2024 12:50:05 GMT repositoryId: 207588519 description: >- ⚒️ Redocly CLI makes OpenAPI easy. Lint/validate to any standard, generate beautiful docs, and more. created: '2019-09-10T14:56:25Z' updated: '2024-09-05T20:33:08Z' language: TypeScript archived: false stars: 899 watchers: 28 forks: 137 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"d18683eae7491f3d39779958587df6ca74e209d1cba94b3e37c7393ec537303f"' repoLastModified: Thu, 05 Sep 2024 20:33:08 GMT category: - Description Validators - Documentation - Server Implementations foundInMaster: true oldLocations: - https://github.com/redocly/openapi-cli name: Redocly CLI link: https://redocly.com/redocly-cli/ language: - CLI - TypeScript source_description: > Bring versatile OpenAPI validation, linting & bundling to your command line with this open-source Swiss-army knife. v2: true - source: https://openapi.tools/ name: - openapi-validator-middleware - fastify-openapi-glue category: - Data Validators - Server link: - https://www.npmjs.com/package/openapi-validator-middleware - https://www.npmjs.com/package/fastify-openapi-glue repository: https://github.com/payu/openapi-validator-middleware language: Node.js source_description: - > Provides data validation within an Express, Koa or Fastify app according to a OpenAPI definition. It uses Ajv under the hood for validation. - >- A plugin for the Fastify webserver to autogenerate a Fastify configuration based on a OpenApi description. v2: true v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlCgpbIVtOUE0gVmVyc2lvbl1bbnBtLWltYWdlXV1bbnBtLXVybF0KIVttYWluIHdvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20vUGF5VS9vcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlL2FjdGlvbnMvd29ya2Zsb3dzL21haW4ueW1sL2JhZGdlLnN2ZykKWyFbTlBNIERvd25sb2Fkc11bZG93bmxvYWRzLWltYWdlXV1bZG93bmxvYWRzLXVybF0KWyFbVGVzdCBDb3ZlcmFnZV1bY292ZXJhbGxzLWltYWdlXV1bY292ZXJhbGxzLXVybF0KWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXVtzbnlrLWltYWdlXV1bc255ay11cmxdClshW0FwYWNoZSAyLjAgTGljZW5zZV1bbGljZW5zZS1pbWFnZV1dW2xpY2Vuc2UtdXJsXQoKVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGRhdGEgdmFsaWRhdGlvbiB3aXRoaW4gYW4gRXhwcmVzcywgS29hIG9yIEZhc3RpZnkgYXBwIGFjY29yZGluZyB0byBhIFtTd2FnZ2VyL09wZW5BUEkgZGVmaW5pdGlvbl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKS4gSXQgdXNlcyBbQWp2XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9hanYpIHVuZGVyIHRoZSBob29kIGZvciB2YWxpZGF0aW9uLgoKTk9USUNFOiBBcyB0aGlzIHBhY2thZ2UgZ29uZSB0aHJvdWdoIGEgbG9uZyB3YXksIGFzIHdlIGFkZGVkIHN1cHBvcnQgZm9yIE9wZW5BUEkgZGVmaW5pdGlvbnMsIHdoaWxlIGFsc28gYWRkaW5nIHN1cHBvcnQgZm9yIG1vcmUgZnJhbWV3b3JrcyBzdWNoIGFzIEtvYSBhbmQgRmFzdGlmeSwgd2UgZmluYWxseSB0b29rIHRoZSBzdGVwIG9mIGNoYW5naW5nIFtleHByZXNzLWFqdi1zd2FnZ2VyLXZhbGlkYXRpb25dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2V4cHJlc3MtYWp2LXN3YWdnZXItdmFsaWRhdGlvbikgbmFtZSB0byBzb21ldGhpbmcgdGhhdCBkZXNjcmliZXMgaXQgYmV0dGVyLiBBcyBvZiBub3cgd2UnbGwgYmUgdXNpbmcgdGhlIG5hbWUgW29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmVdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUpIGluc3RlYWQuICAKVGhlcmUgYXJlIG5vIGNvZGUgY2hhbmdlcyBpbiBgb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZUAyLjAuMGAgY29tcGFyZWQgdG8gYGV4cHJlc3MtYWp2LXN3YWdnZXItdmFsaWRhdGlvbkAxLjIuMGAgYXBhcnQgZnJvbSB0aGUgbmFtZSBjaGFuZ2UuCgo8IS0tIFNUQVJUIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KPCEtLSBET04nVCBFRElUIFRISVMgU0VDVElPTiwgSU5TVEVBRCBSRS1SVU4gZG9jdG9jIFRPIFVQREFURSAtLT4KKipUYWJsZSBvZiBDb250ZW50cyoqICA8IS0tICpnZW5lcmF0ZWQgd2l0aCBbRG9jVG9jXShodHRwczovL2dpdGh1Yi5jb20vdGhsb3JlbnovZG9jdG9jKSogLS0+CgotIFtvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlXSgjb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZSkKICAtIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgLSBbQVBJXSgjYXBpKQogICAgLSBbb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZS52YWxpZGF0ZShmYXN0aWZ5T3B0aW9ucyldKCNvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJldmFsaWRhdGVmYXN0aWZ5b3B0aW9ucykKICAgICAgLSBbZmFzdGlmeU9wdGlvbnNdKCNmYXN0aWZ5b3B0aW9ucykKICAgIC0gW29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUuaW5pdChwYXRoVG9Td2FnZ2VyRmlsZSwgb3B0aW9ucyldKCNvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlaW5pdHBhdGh0b3N3YWdnZXJmaWxlLW9wdGlvbnMpCiAgICAtIFtvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlLmluaXRBc3luYyhwYXRoVG9Td2FnZ2VyRmlsZSwgb3B0aW9ucyldKCNvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlaW5pdGFzeW5jcGF0aHRvc3dhZ2dlcmZpbGUtb3B0aW9ucykKICAgICAgLSBbT3B0aW9uc10oI29wdGlvbnMpCiAgLSBbVXNhZ2UgRXhhbXBsZV0oI3VzYWdlLWV4YW1wbGUpCiAgICAtIFtFeHByZXNzXSgjZXhwcmVzcykKICAgIC0gW0tvYV0oI2tvYSkKICAgIC0gW0Zhc3RpZnldKCNmYXN0aWZ5KQogICAgLSBbTXVsdGlwbGUtaW5zdGFuY2VzXSgjbXVsdGlwbGUtaW5zdGFuY2VzKQogIC0gW0ltcG9ydGFudCBOb3Rlc10oI2ltcG9ydGFudC1ub3RlcykKICAgIC0gW1NjaGVtYSBPYmplY3RzXSgjc2NoZW1hLW9iamVjdHMpCiAgICAtIFtNdWx0aXBhcnQvZm9ybS1kYXRhIChmaWxlcyldKCNtdWx0aXBhcnRmb3JtLWRhdGEtZmlsZXMpCiAgICAtIFtGYXN0aWZ5IHN1cHBvcnRdKCNmYXN0aWZ5LXN1cHBvcnQpCiAgICAtIFtLb2Egc3VwcG9ydF0oI2tvYS1zdXBwb3J0KQogICAgLSBbS29hIHBhY2thZ2VzXSgja29hLXBhY2thZ2VzKQogIC0gW0tub3duIElzc3VlcyB3aXRoIE9wZW5BUEkgM10oI2tub3duLWlzc3Vlcy13aXRoLW9wZW5hcGktMykKICAtIFtSdW5uaW5nIFRlc3RzXSgjcnVubmluZy10ZXN0cykKCjwhLS0gRU5EIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KCiMjIEluc3RhbGxhdGlvbgoKSW5zdGFsbCB1c2luZyB0aGUgbm9kZSBwYWNrYWdlIHJlZ2lzdHJ5OgoKYGBgYmFzaApucG0gaW5zdGFsbCAtLXNhdmUgb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZQpgYGAKClRoZW4gaW1wb3J0IHRoZSBtb2R1bGUgaW4geW91ciBjb2RlOgoKYGBganMKY29uc3Qgc3dhZ2dlclZhbGlkYXRpb24gPSByZXF1aXJlKCdvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlJyk7CmBgYAoKIyMgQVBJCgojIyMgb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZS52YWxpZGF0ZShmYXN0aWZ5T3B0aW9ucykKClRoaXMgbWlkZGxld2FyZSBmdW5jdGlvbiB2YWxpZGF0ZXMgdGhlIHJlcXVlc3QgYm9keSwgaGVhZGVycywgcGF0aCBwYXJhbWV0ZXJzIGFuZCBxdWVyeSBwYXJhbWV0ZXJzIGFjY29yZGluZyB0byB0aGUgX3BhdGhzXyBkZWZpbml0aW9uIG9mIHRoZSBzd2FnZ2VyIGZpbGUuIE1ha2Ugc3VyZSB0byB1c2UgdGhpcyBtaWRkbGV3YXJlIGluc2lkZSBhIHJvdXRlIGRlZmluaXRpb24gaW4gb3JkZXIgdG8gaGF2ZSBgcmVxLnJvdXRlLnBhdGhgIGFzc2lnbmVkIHRvIHRoZSBtb3N0IGFjY3VyYXRlIGV4cHJlc3Mgcm91dGUuCgotIGBmYXN0aWZ5T3B0aW9uc2A6IE9ubHkgYXBwbGljYWJsZSBmb3IgYGZhc3RpZnlgIGZyYW1ld29yay4gU2VlIGJlbG93LgoKIyMjIyBmYXN0aWZ5T3B0aW9ucwoKLSBgc2tpcGxpc3RgOiBFbmRwb2ludCBwYXRocyBmb3Igd2hpY2ggdmFsaWRhdGlvbiBzaG91bGQgbm90IGJlIGFwcGxpZWQuIEFuIGFycmF5IG9mIHN0cmluZ3MgaW4gUmVnRXhwIGZvcm1hdCwgZS4gZy4gYFsnXi9wZXRzJCddYCAKCiMjIyBvcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlLmluaXQocGF0aFRvU3dhZ2dlckZpbGUsIG9wdGlvbnMpCgpJbml0aWFsaXplIHRoZSBtaWRkbGV3YXJlIHVzaW5nIGEgc3dhZ2dlciBkZWZpbml0aW9uLgpUaGUgZnVuY3Rpb24gZXhlY3V0ZXMgc3luY2hyb25vdXNseSBhbmQgZG9lcyBub3QgcmV0dXJuIGFueXRoaW5nLgoKLSBgcGF0aFRvU3dhZ2dlckZpbGVgOiBQYXRoIHRvIHRoZSBzd2FnZ2VyIGRlZmluaXRpb24uCi0gYG9wdGlvbnNgOiBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBtaWRkbGV3YXJlIChbc2VlIGJlbG93XSgjb3B0aW9ucykpLgoKIyMjIG9wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUuaW5pdEFzeW5jKHBhdGhUb1N3YWdnZXJGaWxlLCBvcHRpb25zKQoKSW5pdGlhbGl6ZSB0aGUgbWlkZGxld2FyZSB1c2luZyBhIHN3YWdnZXIgZGVmaW5pdGlvbi4KVGhlIGZ1bmN0aW9uIGV4ZWN1dGVzIGFzeW5jaHJvbm91c2x5IGFuZCB0aGUgcmVzb2x2ZWQgcHJvbWlzZSBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcuCgpUaGlzIEluaXRpbGF6dGlvbiBmdW5jdGlvbiBhbHNvIHN1cHBvcnRzIHNjaGVtYSB3aXRoIHJlZmVyZW5jZXMgdG8gZXh0ZXJuYWwgZmlsZXMuIAoKLSBgcGF0aFRvU3dhZ2dlckZpbGVgOiBQYXRoIHRvIHRoZSBzd2FnZ2VyIGRlZmluaXRpb24uCi0gYG9wdGlvbnNgOiBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBtaWRkbGV3YXJlIChbc2VlIGJlbG93XSgjb3B0aW9ucykpLgoKIyMjIyBPcHRpb25zCgpPcHRpb25zIGN1cnJlbnRseSBzdXBwb3J0ZWQ6Ci0gYGZyYW1ld29ya2AgLSBEZWZpbmVzIGluIHdoaWNoIGZyYW1ld29yayB0aGUgbWlkZGxld2FyZSBpcyB3b3JraW5nICgnZmFzdGlmeScsICdrb2EnIG9yICdleHByZXNzJykuIEFzIGRlZmF1bHQsIHNldCB0byAnZXhwcmVzcycuCi0gYGZvcm1hdHNgIC0gQXJyYXkgb2YgZm9ybWF0cyB0aGF0IGNhbiBiZSBhZGRlZCB0byBgYWp2YCBjb25maWd1cmF0aW9uLCBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5IHNob3VsZCBpbmNsdWRlIGBuYW1lYCBhbmQgYHBhdHRlcm5gLgogICAgYGBganMKICAgIGZvcm1hdHM6IFsKICAgICAgICB7IG5hbWU6ICdkb3VibGUnLCBwYXR0ZXJuOiAvXGQrXC4oXGQrKSsvIH0sCiAgICAgICAgeyBuYW1lOiAnaW50NjQnLCBwYXR0ZXJuOiAvXlxkezEsMTl9JC8gfSwKICAgICAgICB7IG5hbWU6ICdpbnQzMicsIHBhdHRlcm46IC9eXGR7MSwxMH0kLyB9CiAgICBdCiAgICBgYGAKCi0gYGtleXdvcmRzYCAtIEFycmF5IG9mIGtleXdvcmRzIHRoYXQgY2FuIGJlIGFkZGVkIHRvIGBhanZgIGNvbmZpZ3VyYXRpb24sIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgY2FuIGJlIGVpdGhlciBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbi4gCklmIHRoZSBlbGVtZW50IGlzIGFuIG9iamVjdCwgaXQgbXVzdCBpbmNsdWRlIGBuYW1lYCBhbmQgYGRlZmluaXRpb25gLiBJZiB0aGUgZWxlbWVudCBpcyBhIGZ1bmN0aW9uLCBpdCBzaG91bGQgYWNjZXB0IGBhanZgIGFzIGl0cyBmaXJzdCBhcmd1bWVudCBhbmQgaW5zaWRlIHRoZSBmdW5jdGlvbiB5b3UgbmVlZCB0byBjYWxsIGBhanYuYWRkS2V5d29yZGAgdG8gYWRkIHlvdXIgY3VzdG9tIGtleXdvcmQgCi0gYGJlYXV0aWZ5RXJyb3JzYC0gQm9vbGVhbiB0aGF0IGluZGljYXRlcyBpZiB0byBiZWF1dGlmeSB0aGUgZXJyb3JzLCBpbiB0aGlzIGNhc2UgaXQgd2lsbCBjcmVhdGUgYSBzdHJpbmcgZnJvbSB0aGUgQWp2IGVycm9yLgogICAgLSBFeGFtcGxlczoKICAgICAgICAtIGBxdWVyeS9saW1pdCBzaG91bGQgYmUgPD0gMTAwYCAtIHF1ZXJ5IHBhcmFtCiAgICAgICAgLSBgcGF0aC9wZXRJZCBzaG91bGQgTk9UIGJlIHNob3J0ZXIgdGhhbiAzIGNoYXJhY3RlcnNgIC0gcGF0aCBwYXJhbSBub3QgaW4gZm9ybWF0CiAgICAgICAgLSBgYm9keS9bMF0udGVzdC5maWVsZDEgc2hvdWxkIGJlIHN0cmluZ2AgLSBJdGVtIGluIGFuIGFycmF5IGJvZHkKICAgICAgICAtIGBib2R5L3Rlc3Qgc2hvdWxkIGhhdmUgcmVxdWlyZWQgcHJvcGVydHkgJ2ZpZWxkMSdgIC0gbmVzdGVkIGZpZWxkCiAgICAgICAgLSBgYm9keSBzaG91bGQgaGF2ZSByZXF1aXJlZCBwcm9wZXJ0eSAnbmFtZSdgIC0gTWlzc2luZyBmaWVsZCBpbiBib2R5CgogICAgWW91IGNhbiBzZWUgbW9yZSBleGFtcGxlcyBpbiB0aGUgW3Rlc3RzXSguL3Rlc3QpLgoKLSBgZmlyc3RFcnJvcmAgLSBCb29sZWFuIHRoYXQgaW5kaWNhdGVzIGlmIHRvIHJldHVybiBvbmx5IHRoZSBmaXJzdCBlcnJvci4KLSBgbWFrZU9wdGlvbmFsQXR0cmlidXRlc051bGxhYmxlYCAtIEJvb2xlYW4gdGhhdCBmb3JjZXMgcHJlcHJvY2Vzc2luZyBvZiBTd2FnZ2VyIHNjaGVtYSB0byBpbmNsdWRlICdudWxsJyBhcyBwb3NzaWJsZSB0eXBlIGZvciBhbGwgbm9uLXJlcXVpcmVkIHByb3BlcnRpZXMuIE1haW4gdXNlLWNhc2UgZm9yIHRoaXMgaXMgdG8gZW5zdXJlIGNvcnJlY3QgaGFuZGxpbmcgb2YgbnVsbCB2YWx1ZXMgd2hlbiBBanYgdHlwZSBjb2VyY2lvbiBpcyBlbmFibGVkCi0gYGFqdkNvbmZpZ0JvZHlgIC0gT2JqZWN0IHRoYXQgd2lsbCBiZSBwYXNzZWQgYXMgY29uZmlnIHRvIG5ldyBBanYgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSB1c2VkIGZvciB2YWxpZGF0aW5nIHJlcXVlc3QgYm9keS4gQ2FuIGJlIHVzZWZ1bCB0byBlLiBnLiBlbmFibGUgdHlwZSBjb2VyY2lvbiAodG8gYXV0b21hdGljYWxseSBjb252ZXJ0IHN0cmluZ3MgdG8gbnVtYmVycyBldGMpLiBTZWUgQWp2IGRvY3VtZW50YXRpb24gZm9yIHN1cHBvcnRlZCB2YWx1ZXMuCi0gYGFqdkNvbmZpZ1BhcmFtc2AgLSBPYmplY3QgdGhhdCB3aWxsIGJlIHBhc3NlZCBhcyBjb25maWcgdG8gbmV3IEFqdiBpbnN0YW5jZSB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIHZhbGlkYXRpbmcgcmVxdWVzdCBib2R5LiBTZWUgQWp2IGRvY3VtZW50YXRpb24gZm9yIHN1cHBvcnRlZCB2YWx1ZXMuCi0gYGNvbnRlbnRUeXBlVmFsaWRhdGlvbmAgLSBCb29sZWFuIHRoYXQgaW5kaWNhdGVzIGlmIHRvIHBlcmZvcm0gY29udGVudCB0eXBlIHZhbGlkYXRpb24gaW4gY2FzZSBgY29uc3VtZWAgZmllbGQgaXMgc3BlY2lmaWVkIGFuZCB0aGUgcmVxdWVzdCBib2R5IGlzIG5vdCBlbXB0eS4KLSBgZXhwZWN0Rm9ybUZpZWxkc0luQm9keWAgLSBCb29sZWFuIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgZm9ybSBmaWVsZHMgb2Ygbm9uLWZpbGUgdHlwZSB0aGF0IGFyZSBzcGVjaWZpZWQgaW4gdGhlIHNjaGVtYSBzaG91bGQgYmUgdmFsaWRhdGVkIGFnYWluc3QgcmVxdWVzdCBib2R5IChlLiBnLiBNdWx0ZXIgaXMgY29weWluZyB0ZXh0IGZvcm0gZmllbGRzIHRvIGJvZHkpCi0gYGVycm9yRm9ybWF0dGVyYCAtIG9wdGlvbmFsIGN1c3RvbSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgaW52b2tlZCB0byBjcmVhdGUgYSB2YWxpZGF0aW9uIGVycm9yIHRoYXQgd2lsbCBiZSB0aHJvd24gaWYgQWp2IHZhbGlkYXRpb24gZmFpbHMuIEZ1bmN0aW9uIHNob3VsZCBhY2NlcHQgdHdvIHBhcmFtZXRlcnM6IGAoZXJyb3JzLCBtaWRkbGV3YXJlT3B0aW9ucylgIGFuZCByZXR1cm4gYW4gZXJyb3IgdGhhdCB3aWxsIGJlIHRocm93bi4KCiMjIFVzYWdlIEV4YW1wbGUKIyMjIEV4cHJlc3MKYGBganMKc3dhZ2dlclZhbGlkYXRpb24uaW5pdCgndGVzdC91bml0LXRlc3RzL2lucHV0LXZhbGlkYXRpb24vcGV0LXN0b3JlLXN3YWdnZXIueWFtbCcpOwpjb25zdCBhcHAgPSBleHByZXNzKCk7CmFwcC51c2UoYm9keVBhcnNlci5qc29uKCkpOwphcHAuZ2V0KCcvcGV0cycsIHN3YWdnZXJWYWxpZGF0aW9uLnZhbGlkYXRlLCAocmVxLCByZXMsIG5leHQpID0+IHsKICAgIHJldHVybiByZXMuanNvbih7IHJlc3VsdDogJ09LJyB9KTsKfSk7CmFwcC5wb3N0KCcvcGV0cycsIHN3YWdnZXJWYWxpZGF0aW9uLnZhbGlkYXRlLCAocmVxLCByZXMsIG5leHQpID0+IHsKICAgIHJldHVybiByZXMuanNvbih7IHJlc3VsdDogJ09LJyB9KTsKfSk7CmFwcC5nZXQoJy9wZXRzLzpwZXRJZCcsIHN3YWdnZXJWYWxpZGF0aW9uLnZhbGlkYXRlLCAocmVxLCByZXMsIG5leHQpID0+IHsKICAgIHJldHVybiByZXMuanNvbih7IHJlc3VsdDogJ09LJyB9KTsKfSk7CgphcHAudXNlKChlcnIsIHJlcSwgcmVzLCBuZXh0KSA9PiB7CiAgICBpZiAoZXJyIGluc3RhbmNlb2Ygc3dhZ2dlclZhbGlkYXRpb24uSW5wdXRWYWxpZGF0aW9uRXJyb3IpIHsKICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oeyBtb3JlX2luZm86IEpTT04uc3RyaW5naWZ5KGVyci5lcnJvcnMpIH0pOwogICAgfQp9KTsKCmNvbnN0IHNlcnZlciA9IGFwcC5saXN0ZW4oc2VydmVyUG9ydCwgKCkgPT4ge30pOwpgYGAKCiMjIyBLb2EKYGBganMKJ3VzZSBzdHJpY3QnOwpjb25zdCBLb2EgPSByZXF1aXJlKCdrb2EnKTsKY29uc3QgUm91dGVyID0gcmVxdWlyZSgna29hLXJvdXRlcicpOwpjb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgna29hLWJvZHlwYXJzZXInKTsKY29uc3QgaW5wdXRWYWxpZGF0aW9uID0gcmVxdWlyZSgnb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZScpOwpjb25zdCBhcHAgPSBuZXcgS29hKCk7CmNvbnN0IHJvdXRlciA9IG5ldyBSb3V0ZXIoKTsKYXBwLnVzZShib2R5UGFyc2VyKCkpOwphcHAudXNlKHJvdXRlci5yb3V0ZXMoKSk7CmlucHV0VmFsaWRhdGlvbi5pbml0KCd0ZXN0L3BldC1zdG9yZS1zd2FnZ2VyLnlhbWwnLCB7IGZyYW1ld29yazogJ2tvYScgfSk7Cgpyb3V0ZXIuZ2V0KCcvcGV0cycsIGlucHV0VmFsaWRhdGlvbi52YWxpZGF0ZSwgYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgY3R4LnN0YXR1cyA9IDIwMDsKICAgIGN0eC5ib2R5ID0geyByZXN1bHQ6ICdPSycgfTsKfSk7CnJvdXRlci5wb3N0KCcvcGV0cycsIGlucHV0VmFsaWRhdGlvbi52YWxpZGF0ZSwgYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgY3R4LnN0YXR1cyA9IDIwMDsKICAgIGN0eC5ib2R5ID0geyByZXN1bHQ6ICdPSycgfTsKfSk7CnJvdXRlci5nZXQoJy9wZXRzLzpwZXRJZCcsIGlucHV0VmFsaWRhdGlvbi52YWxpZGF0ZSwgYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgY3R4LnN0YXR1cyA9IDIwMDsKICAgIGN0eC5ib2R5ID0geyByZXN1bHQ6ICdPSycgfTsKfSk7CnJvdXRlci5wdXQoJy9wZXRzJywgaW5wdXRWYWxpZGF0aW9uLnZhbGlkYXRlLCBhc3luYyAoY3R4LCBuZXh0KSA9PiB7CiAgICBjdHguc3RhdHVzID0gMjAwOwogICAgY3R4LmJvZHkgPSB7IHJlc3VsdDogJ09LJyB9Owp9KTsKCmFwcC51c2UoYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgdHJ5IHsKICAgICAgICByZXR1cm4gYXdhaXQgbmV4dCgpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIGlucHV0VmFsaWRhdGlvbi5JbnB1dFZhbGlkYXRpb25FcnJvcikgewogICAgICAgICAgICBjdHguc3RhdHVzID0gNDAwOwogICAgICAgICAgICBjdHguYm9keSA9IGVyci5lcnJvcnM7CiAgICAgICAgfQogICAgICAgIHRocm93IGVycjsKICAgIH0KfSkKYXBwLmxpc3Rlbihwcm9jZXNzLmVudi5QT1JUIHx8IDg4ODgsIGZ1bmN0aW9uICgpIHsKICAgIGNvbnNvbGUubG9nKCdsaXN0ZW5pbmcgb24nLCB0aGlzLmFkZHJlc3MoKSk7Cn0pOwpgYGAKCiMjIyBGYXN0aWZ5CmBgYGpzCid1c2Ugc3RyaWN0JzsKY29uc3QgZmFzdGlmeSA9IHJlcXVpcmUoJ2Zhc3RpZnknKTsKY29uc3QgaW5wdXRWYWxpZGF0aW9uID0gcmVxdWlyZSgnb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZScpOwoKYXN5bmMgZnVuY3Rpb24gZ2V0QXBwKCkgewogICAgaW5wdXRWYWxpZGF0aW9uLmluaXQoJ3Rlc3QvcGV0LXN0b3JlLXN3YWdnZXIueWFtbCcsIHsgCiAgICAgICAgZnJhbWV3b3JrOiAnZmFzdGlmeScKICAgIH0pOwogICAgY29uc3QgYXBwID0gZmFzdGlmeSh7IGxvZ2dlcjogdHJ1ZSB9KTsKCiAgICBhcHAucmVnaXN0ZXIoaW5wdXRWYWxpZGF0aW9uLnZhbGlkYXRlKHsKICAgICAgc2tpcGxpc3Q6IFsnXi9fbWV0cmljcyQnXQogICAgfSkpOwogICAgYXBwLnNldEVycm9ySGFuZGxlcihhc3luYyAoZXJyLCByZXEsIHJlcGx5KSA9PiB7CiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIGlucHV0VmFsaWRhdGlvbi5JbnB1dFZhbGlkYXRpb25FcnJvcikgewogICAgICAgICAgICAgcmV0dXJuIHJlcGx5LnN0YXR1cyg0MDApLnNlbmQoeyBtb3JlX2luZm86IEpTT04uc3RyaW5naWZ5KGVyci5lcnJvcnMpIH0pOwogICAgICAgIH0KCiAgICAgICAgcmVwbHkuc3RhdHVzKDUwMCk7CiAgICAgICAgcmVwbHkuc2VuZCgpOwogICAgfSk7CgogICAgYXBwLmdldCgnL3BldHMnLCAocmVxLCByZXBseSkgPT4gewogICAgICAgIHJlcGx5LnN0YXR1cygyMDQpLnNlbmQoKTsKICAgIH0pOwoKICAgIGF3YWl0IGFwcC5yZWFkeSgpOwogICAgcmV0dXJuIGFwcDsKfQpgYGAKCiMjIyBtdWx0aXBsZS1pbnN0YW5jZXMKYGBganMKY29uc3QgaW5wdXRWYWxpZGF0aW9uID0gcmVxdWlyZSgnb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZScpOwpjb25zdCB2YWxpZGF0b3JBID0gaW5wdXRWYWxpZGF0aW9uLmdldE5ld01pZGRsZXdhcmUoJ3Rlc3QvcGV0LXN0b3JlLXN3YWdnZXJBLnlhbWwnLCB7ZnJhbWV3b3JrOiAnZXhwcmVzcyd9KTsKY29uc3QgdmFsaWRhdG9yQiA9IGlucHV0VmFsaWRhdGlvbi5nZXROZXdNaWRkbGV3YXJlKCd0ZXN0L3BldC1zdG9yZS1zd2FnZ2VyQi55YW1sJywge2ZyYW1ld29yazogJ2V4cHJlc3MnfSk7CgphcHAuZ2V0KCcvcGV0cycsIHZhbGlkYXRvckEudmFsaWRhdGUsIChyZXEsIHJlcywgbmV4dCkgPT4gewogICAgcmV0dXJuIHJlcy5qc29uKHsgcmVzdWx0OiAnT0snIH0pOwp9KTsKCmFwcC5wb3N0KCcvcGV0cycsIHZhbGlkYXRvckIudmFsaWRhdGUsIChyZXEsIHJlcywgbmV4dCkgPT4gewogICAgcmV0dXJuIHJlcy5qc29uKHsgcmVzdWx0OiAnT0snIH0pOwp9KTsKCmBgYAojIyBJbXBvcnRhbnQgTm90ZXMKCiMjIyBTY2hlbWEgT2JqZWN0cwoKSXQgaXMgaW1wb3J0YW50IHRvIHNldCB0aGUgYHR5cGVgIHByb3BlcnR5IG9mIGFueSBbU2NoZW1hIE9iamVjdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNzY2hlbWEtb2JqZWN0KSBleHBsaWNpdGx5IHRvIGBvYmplY3RgLiBBbHRob3VnaCBpdCBpc24ndCByZXF1aXJlZCBpbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBpdCBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgZm9yIFtBanZdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2FqdikgdG8gd29yayBjb3JyZWN0bHkuCgojIyMgTXVsdGlwYXJ0L2Zvcm0tZGF0YSAoZmlsZXMpIAoKTXVsdGlwYXJ0L2Zvcm0tZGF0YSAoZmlsZXMpIHN1cHBvcnQgaXMgYmFzZWQgb24gW2BleHByZXNzL211bHRlcmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9leHByZXNzanMvbXVsdGVyKS4KCiMjIyBGYXN0aWZ5IHN1cHBvcnQKCkZhc3RpZnkgc3VwcG9ydCByZXF1aXJlcyBgdXJpLWpzYCBkZXBlbmRlbmN5IHRvIGJlIGluc3RhbGxlZC4gTWFrZSBzdXJlIHRvIHJ1biBgbnBtIGluc3RhbGwgdXJpLWpzYC4KV2hlbiB1c2luZyB0aGlzIHBhY2thZ2UgYXMgYSBtaWRkbGV3YXJlIGZvciBmYXN0aWZ5LCB0aGUgdmFsaWRhdGlvbnMgZXJyb3JzIHdpbGwgYmUgdGhyb3duLgoKIyMjIEtvYSBzdXBwb3J0CgpXaGVuIHVzaW5nIHRoaXMgcGFja2FnZSBhcyBtaWRkbGV3YXJlIGZvciBrb2EsIHRoZSB2YWxpZGF0aW9ucyBlcnJvcnMgd2lsbCBiZSB0aHJvd24uCgojIyMgS29hIHBhY2thZ2VzCgpUaGlzIHBhY2thZ2Ugc3VwcG9ydHMgS29hIHNlcnZlcnMgdGhhdCB1c2UgW2Brb2Etcm91dGVyYF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uva29hLXJvdXRlciksIFtga29hLWJvZHlwYXJzZXJgXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9rb2EtYm9keXBhcnNlcikgYW5kIFtga29hLW11bHRlcmBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2tvYS1tdWx0ZXIpLgoKIyMgS25vd24gSXNzdWVzIHdpdGggT3BlbkFQSSAzIAoKLSBJbmhlcml0YW5jZSB3aXRoIGEgZGlzY3JpbWluYXRvciBpcyBzdXBwb3J0ZWQgb25seSBpZiB0aGUgYW5jZXN0b3Igb2JqZWN0IGlzIHRoZSBkaXNjcmltaW5hdG9yLgotIFRoZSBkaXNjcmltaW5hdG9yIHN1cHBvcnQgaW4gdGhlIGluaGVyaXRhbmNlIGNoYWluIHN0b3BzIHdoZW4gZ2V0dGluZyB0byBhIGNoaWxkIHdpdGhvdXQgYSBkaXNjcmltaW5hdG9yIChhIGxlYWYgaW4gdGhlIGluaGVyaXRhbmNlIHRyZWUpLCBtZWFuaW5nIGEgY2hpbGQgd2l0aG91dCBhIGRpc2NyaW1pbmF0b3IgY2Fubm90IHBvaW50IHRvIGFub3RoZXIgY2hpbGQgd2l0aCBhIGRpc2NyaW1pbmF0b3IuCgojIyBSdW5uaW5nIFRlc3RzCgpUaGUgdGVzdHMgdXNlIG1vY2hhLCBpc3RhbmJ1bCBhbmQgbW9jaGF3ZXNvbWUuIFJ1biB0aGVtIHVzaW5nIHRoZSBub2RlIHRlc3Qgc2NyaXB0OgoKYGBgYmFzaApucG0gdGVzdApgYGAKCltucG0taW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUuc3ZnP3N0eWxlPWZsYXQKW25wbS11cmxdOiBodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUKW2NvdmVyYWxscy1pbWFnZV06IGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9QYXlVL29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIKW2NvdmVyYWxscy11cmxdOiBodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvUGF5VS9vcGVuYXBpLXZhbGlkYXRvci1taWRkbGV3YXJlP2JyYW5jaD1tYXN0ZXIKW2Rvd25sb2Fkcy1pbWFnZV06IGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vb3BlbmFwaS12YWxpZGF0b3ItbWlkZGxld2FyZS5zdmc/c3R5bGU9ZmxhdApbZG93bmxvYWRzLXVybF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUuc3ZnCltsaWNlbnNlLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUFwYWNoZV8yLjAtZ3JlZW4uc3ZnP3N0eWxlPWZsYXQKW2xpY2Vuc2UtdXJsXTogTElDRU5TRQpbc255ay1pbWFnZV06IGh0dHBzOi8vc255ay5pby90ZXN0L2dpdGh1Yi9QYXlVL29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmUvYmFkZ2Uuc3ZnP3RhcmdldEZpbGU9cGFja2FnZS5qc29uCltzbnlrLXVybF06IGh0dHBzOi8vc255ay5pby90ZXN0L2dpdGh1Yi9QYXlVL29wZW5hcGktdmFsaWRhdG9yLW1pZGRsZXdhcmU/dGFyZ2V0RmlsZT1wYWNrYWdlLmpzb24K readmeEtag: '"9c580833b662962db48b0e4df553ad32e2707add"' readmeLastModified: Thu, 24 Mar 2022 08:37:29 GMT repositoryId: 107256133 description: Input validation using Swagger (Open API) and ajv created: '2017-10-17T10:56:52Z' updated: '2024-05-22T21:50:37Z' language: JavaScript archived: false stars: 144 watchers: 32 forks: 50 owner: PayU logo: https://avatars.githubusercontent.com/u/10152107?v=4 license: Apache-2.0 repoEtag: '"ecfdec0016a648fba2cf1b510a3878026977b45693d1294d2e80ea787f73db82"' repoLastModified: Wed, 22 May 2024 21:50:37 GMT foundInMaster: true id: a412c258fff439cbb6458a2a341038f9 v3_1: true - source: https://openapi.tools/ name: committee category: Data Validators repository: https://github.com/interagent/committee language: Ruby source_description: >- Validation middleware for Rack server. This gem validates request and response using an OpenAPI Description. And convert parameter string to specific Ruby object (e.g. convert datetime string to DateTime class). v2: true v3: true repositoryMetadata: base64Readme: >- IyBDb21taXR0ZWUgIFshW2NpXShodHRwczovL2dpdGh1Yi5jb20vaW50ZXJhZ2VudC9jb21taXR0ZWUvYWN0aW9ucy93b3JrZmxvd3MvY2kueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vaW50ZXJhZ2VudC9jb21taXR0ZWUvYWN0aW9ucy93b3JrZmxvd3MvY2kueWFtbCkgWyFbR2VtIFZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9yYi9jb21taXR0ZWUuc3ZnKV0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL3JiL2NvbW1pdHRlZSkKCkEgY29sbGVjdGlvbiBvZiBtaWRkbGV3YXJlIHRvIGhlbHAgYnVpbGQgc2VydmljZXMgd2l0aCBKU09OIFNjaGVtYSwgT3BlbkFQSSAyLCBPcGVuQVBJIDMuCgojIyBTdXBwb3J0ZWQgUnVieSBWZXJzaW9ucwoKQ29tbWl0dGVlIGlzIHRlc3RlZCBvbiB0aGUgZm9sbG93aW5nIE1SSSB2ZXJzaW9uczoKCi0gMi43Ci0gMy4wCi0gMy4xCi0gMy4yCi0gMy4zCgojIyBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlJlcXVlc3RWYWxpZGF0aW9uCgpUaGlzIGZlYXR1cmUgaXMgc3VwcG9ydGVkIGJ5IGFsbCBvZiBIeXBlci1TY2hlbWEsIE9wZW5BUEkgMiwgYW5kIE9wZW5BUEkgMy4KCmBgYCBydWJ5CnVzZSBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlJlcXVlc3RWYWxpZGF0aW9uLCBzY2hlbWFfcGF0aDogJ2RvY3Mvc2NoZW1hLmpzb24nLCBjb2VyY2VfZGF0ZV90aW1lczogdHJ1ZQpgYGAKClRoaXMgcGllY2Ugb2YgbWlkZGxld2FyZSB2YWxpZGF0ZXMgdGhlIHBhcmFtZXRlcnMgb2YgaW5jb21pbmcgcmVxdWVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgdGhleSdyZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBjb25zdHJhaW50cyBpbXBvc2VkIGJ5IGEgcGFydGljdWxhciBzY2hlbWEuCgojIyMgQ29uZmlndXJhdGlvbiBPcHRpb25zCgp8IG5hbWUgfCBIeXBlci1TY2hlbWEgfCBPcGVuQVBJIDMgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS06fCA6LS0tLS0tLS0tLS0tIHwKfGFsbG93X2JsYW5rX3N0cnVjdHVyZXMgfCBmYWxzZSB8IGFsd2F5cyB0cnVlIHwgQWxsb3cgRW1wdHkgUmVzcG9uc2UgQm9keS4gc3VwcG9ydGVkIG9uIEh5cGVyLXNjaGVtYSBwYXJzZXIgYnV0IHdpbGwgZGVmYXVsdCB0byB0cnVlIGluIG5leHQgbWFqb3IgdmVyc2lvbi4gfAp8YWxsb3dfZm9ybV9wYXJhbXMgfCB0cnVlIHwgdHJ1ZSB8IFNwZWNpZmllcyB0aGF0IGlucHV0IGNhbiBhbHRlcm5hdGl2ZWx5IGJlIHNwZWNpZmllZCBhcyBgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkYCBwYXJhbWV0ZXJzIHdoZW4gcG9zc2libGUuIFRoaXMgd29uJ3Qgd29yayBmb3IgbW9yZSBjb21wbGV4IHNjaGVtYSB2YWxpZGF0aW9ucy4gfAp8YWxsb3dfZ2V0X2JvZHkgfCB0cnVlIHwgZmFsc2UgfCBBbGxvdyBHRVQgcmVxdWVzdCBib2R5LCB3aGljaCBtZXJnZSB0byByZXF1ZXN0IHBhcmFtZXRlci4gU2VlICgjMjExKSB8CnxhbGxvd19xdWVyeV9wYXJhbXMgfCB0cnVlIHwgdHJ1ZSB8IFNwZWNpZmllcyB0aGF0IHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIHdpbGwgYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uIHdoZW4gZG9pbmcgdmFsaWRhdGlvbi4gfAp8Y2hlY2tfY29udGVudF90eXBlIHwgdHJ1ZSB8IHRydWUgfCBTcGVjaWZpZXMgdGhhdCBgQ29udGVudC1UeXBlYCBzaG91bGQgYmUgdmVyaWZpZWQgYWNjb3JkaW5nIHRvIEpTT04gSHlwZXItc2NoZW1hIG9yIE9wZW5BUEkgMyBkZWZpbml0aW9uLiB8CnxjaGVja19oZWFkZXIgfCB0cnVlIHwgdHJ1ZSB8IENoZWNrIGhlYWRlciBkYXRhIHVzaW5nIEpTT04gSHlwZXItc2NoZW1hIG9yIE9wZW5BUEkgMyBkZWZpbml0aW9uLiB8Cnxjb2VyY2VfZGF0ZV90aW1lcyB8IGZhbHNlIHwgdHJ1ZSB8IENvbnZlcnQgdGhlIHN0cmluZyB3aXRoIGAiZm9ybWF0IjogImRhdGUtdGltZSJgIHBhcmFtZXRlciB0byBEYXRlVGltZSBvYmplY3QuIHwKfGNvZXJjZV9mb3JtX3BhcmFtc3wgZmFsc2UgfCB0cnVlIHwgVHJpZXMgdG8gY29udmVydCBQT1NUIGRhdGEgZW5jb2RlZCBpbnRvIGFuIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgIGJvZHkgKHdoZXJlIHZhbHVlcyBhcmUgYWxsIHN0cmluZ3MpIGludG8gY29uY3JldGUgdHlwZXMgcmVxdWlyZWQgYnkgdGhlIHNjaGVtYS4gVGhpcyB3b3JrcyBmb3IgYG51bGxgIChlbXB0eSB2YWx1ZSksIGBpbnRlZ2VyYCAobnVtZXJpYyB2YWx1ZSB3aXRob3V0IGRlY2ltYWxzKSwgYG51bWJlcmAgKG51bWVyaWMgdmFsdWUpIGFuZCBgYm9vbGVhbmAgKCJ0cnVlIiBpcyBjb252ZXJ0ZWQgdG8gYHRydWVgIGFuZCAiZmFsc2UiIHRvIGBmYWxzZWApLiBJZiBjb2VyY2lvbiBpcyBub3QgcG9zc2libGUsIHRoZSBvcmlnaW5hbCB2YWx1ZSBpcyBwYXNzZWQgdW5jaGFuZ2VkIHRvIHNjaGVtYSB2YWxpZGF0aW9uLiB8Cnxjb2VyY2VfcGF0aF9wYXJhbXN8IGZhbHNlIHwgdHJ1ZSB8IFRoZSBzYW1lIGFzIGBjb2VyY2VfZm9ybV9wYXJhbXNgLCBidXQgdHJpZXMgdG8gY29lcmNlIHBhcmFtZXRlcnMgZW5jb2RlZCBpbiBhIHJlcXVlc3QncyBVUkwgcGF0aC4gfAp8Y29lcmNlX3F1ZXJ5X3BhcmFtc3wgZmFsc2UgfCB0cnVlICB8IFRoZSBzYW1lIGFzIGBjb2VyY2VfZm9ybV9wYXJhbXNgLCBidXQgdHJpZXMgdG8gY29lcmNlIGBHRVRgIHBhcmFtZXRlcnMgZW5jb2RlZCBpbiBhIHJlcXVlc3QncyBxdWVyeSBzdHJpbmcuIHwKfGNvZXJjZV9yZWN1cnNpdmV8IGZhbHNlIHwgYWx3YXlzIHRydWUgfCBDb2VyY2UgZGF0YSBpbiBhcnJheXMgYW5kIG90aGVyIG5lc3RlZCBvYmplY3RzIHwKfG9wdGltaXN0aWNfanNvbnwgZmFsc2UgfCBmYWxzZSB8IFdpbGwgYXR0ZW1wdCB0byBwYXJzZSBKU09OIGluIHRoZSByZXF1ZXN0IGJvZHkgZXZlbiB3aXRob3V0IGEgYENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbmAgYmVmb3JlIGZhbGxpbmcgYmFjayB0byBvdGhlciBvcHRpb25zLiB8CnxyYWlzZXwgZmFsc2UgfCBmYWxzZSB8IFJhaXNlIGFuIGV4Y2VwdGlvbiBvbiBlcnJvciBpbnN0ZWFkIG9mIHJlc3BvbmRpbmcgd2l0aCBhIGdlbmVyaWMgZXJyb3IgYm9keS4gfAp8c3RyaWN0fCBmYWxzZSB8IGZhbHNlIHwgUHV0cyB0aGUgbWlkZGxld2FyZSBpbnRvIHN0cmljdCBtb2RlLCBtZWFuaW5nIHRoYXQgcGF0aHMgd2hpY2ggYXJlIG5vdCBkZWZpbmVkIGluIHRoZSBzY2hlbWEgd2lsbCBiZSByZXNwb25kZWQgdG8gd2l0aCBhIDQwNCBpbnN0ZWFkIG9mIGJlaW5nIHJ1bi4gfAp8c3RyaWN0X3JlZmVyZW5jZV92YWxpZGF0aW9ufCBhbHdheXMgZmFsc2UgfCBmYWxzZSB8IFJhaXNlcyBhbiBleGNlcHRpb24gKGBPcGVuQVBJUGFyc2VyOjpNaXNzaW5nUmVmZXJlbmNlRXJyb3JgKSBvbiBtaWRkbGV3YXJlIGxvYWQgaWYgdGhlIHByb3ZpZGVkIHNjaGVtYSBmaWxlIGNvbnRhaW5zIHVucmVzb2x2YWJsZSByZWZlcmVuY2VzIChgJHJlZjoiIy9zb21ldGhpbmcvbm90L2hlcmUiYCkuIE5vdCBzdXBwb3J0ZWQgb24gSHlwZXItc2NoZW1hIHBhcnNlci4gRGVmYXVsdHMgdG8gYGZhbHNlYCBvbiBPcGVuQVBJMyBidXQgd2lsbCBkZWZhdWx0IHRvIGB0cnVlYCBpbiBuZXh0IG1ham9yIHZlcnNpb24uIHwKfGlnbm9yZV9lcnJvcnwgZmFsc2UgfCBmYWxzZSB8IFZhbGlkYXRlIGFuZCBpZ25vcmUgcmVzdWx0IGV2ZW4gaWYgdmFsaWRhdGlvbiBpcyBlcnJvci4gU28gYWx3YXlzIHJldHVybiBvcmlnaW5hbCBkYXRhLiB8CgpOb24tYm9vbGVhbiBvcHRpb25zOgoKfCBuYW1lIHwgYWxsb3dlZCBvYmplY3QgdHlwZSB8IEh5cGVyLVNjaGVtYSB8IE9wZW5BUEkgMyB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tOnwgOi0tLS0tLS0tLS0tLSB8CnxlcnJvcl9jbGFzc3wgU3RhbmRhcmRFcnJvciB8IHN1cHBvcnRlZCB8IHN1cHBvcnRlZCB8IENoYW5nZSB2YWxpZGF0aW9uIGVycm9ycyBmcm9tIGBDb21taXR0ZWU6OlZhbGlkYXRpb25FcnJvcmApLiB8CnxwcmVmaXh8IFN0cmluZyB8IHN1cHBvcnRlZCB8IHN1cHBvcnRlZCB8IE1vdW50cyB0aGUgbWlkZGxld2FyZSB0byByZXNwb25kIGF0IGEgY29uZmlndXJlZCBwcmVmaXguIChlLmcuIHByZWZpeCBpcyAnL3YxJyBhbmQgcmVxdWVzdCBwYXRoIGlzICcvdjEvdGVzdCcgdXNlICcvdGVzdCcgZGVmaW5pdGlvbikuIHwKfHNjaGVtYV9wYXRofCBTdHJpbmcgfCBzdXBwb3J0ZWQgfCBzdXBwb3J0ZWQgfCBEZWZpbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hIGZpbGUgdG8gdXNlIGZvciB2YWxpZGF0aW9uLiB8CnxlcnJvcl9oYW5kbGVyfCBQcm9jIE9iamVjdCB8IHN1cHBvcnRlZCB8IHN1cHBvcnRlZCB8IEEgcHJvYyB3aGljaCB3aWxsIGJlIGNhbGxlZCB3aGVuIGVycm9yIG9jY3Vycy4gVGFrZSBhbiBFcnJvciBpbnN0YW5jZSBhcyBmaXJzdCBhcmd1bWVudCwgYW5kIHJlcXVlc3QuZW52IGFzIHNlY29uZCBhcmd1bWVudC4gKGUuZy4gYC0+IChleCwgZW52KSB7IFJhdmVuLmNhcHR1cmVfZXhjZXB0aW9uKGV4LCBleHRyYTogeyByYWNrX2VudjogZW52IH0pIH1gKSB8CnxhY2NlcHRfcmVxdWVzdF9maWx0ZXIgIHwgUHJvYyBPYmplY3QgfCBzdXBwb3J0ZWQgfCBzdXBwb3J0ZWQgfCBBIHByb2MgdGhhdCBhY2NlcHRzIGEgUmVxdWVzdCBhbmQgcmV0dXJucyBhIGJvb2xlYW4uIEl0IGluZGljYXRlcyB3aGV0aGVyIHRvIHZhbGlkYXRlIHRoZSBjdXJyZW50IHJlcXVlc3QsIG9yIG5vdC4gKGUuZy4gYC0+IChyZXF1ZXN0KSB7IHJlcXVlc3QucGF0aC5zdGFydF93aXRoPygnL3NvbWV0aGluZycpIH1gKSB8CnxwYXJhbXNfa2V5fCBTdHJpbmcgfCBzdXBwb3J0ZWQgfCBzdXBwb3J0ZWQgfCBTYXZlIGNoZWNrZWQgYW5kIG1lcmdlZCBwYXJhbWV0ZXIgdmFsdWUgdG8gcmVxdWVzdC5lbnYgdXNpbmcgdGhpcyBrZXkuIERlZmF1bHQgdmFsdWUgaXMgYGNvbW1pdHRlZS5wYXJhbXNgIHwKfGhlYWRlcnNfa2V5fCBTdHJpbmcgfCBzdXBwb3J0ZWQgfCBzdXBwb3J0ZWQgfCBTYXZlIGNoZWNrZWQgaGVhZGVyIHZhbHVlIHRvIHJlcXVlc3QuZW52IHVzaW5nIHRoaXMga2V5LiBEZWZhdWx0IHZhbHVlIGlzIGBjb21taXR0ZWUuaGVhZGVyc2AgfAp8cXVlcnlfaGFzaF9rZXl8IFN0cmluZyB8IHN1cHBvcnRlZCB8IHN1cHBvcnRlZCB8IFNhdmUgY2hlY2tlZCBxdWVyeSBwYXJhbWV0ZXIgdmFsdWUgdG8gcmVxdWVzdC5lbnYgdXNpbmcgdGhpcyBrZXkuIERlZmF1bHQgdmFsdWUgaXMgYHJhY2sucmVxdWVzdC5xdWVyeV9oYXNoYCBidXQgd2Ugd2lsbCBjaGFuZ2UgIGBjb21taXR0ZWUucXVlcnlfaGFzaGAgaW4gbmV4dCB2ZXJzaW9uIHwKfHBhdGhfaGFzaF9rZXl8IFN0cmluZyB8IHN1cHBvcnRlZCB8IHN1cHBvcnRlZCB8IFNhdmUgY2hlY2tlZCBwYXRoIHBhcmFtZXRlciB2YWx1ZSB0byByZXF1ZXN0LmVudiB1c2luZyB0aGlzIGtleS4gRGVmYXVsdCB2YWx1ZSBpcyBgY29tbWl0dGVlLnBhdGhfaGFzaGAgfAp8cmVxdWVzdF9ib2R5X2hhc2hfa2V5fCBTdHJpbmcgfCBzdXBwb3J0ZWQgfCBzdXBwb3J0ZWQgfCBTYXZlIGNoZWNrZWQgcmVxdWVzdCBib2R5IHBhcmFtZXRlciAoanNvbiwgZm9ybSkgdmFsdWUgdG8gcmVxdWVzdC5lbnYgdXNpbmcgdGhpcyBrZXkuIERlZmF1bHQgdmFsdWUgaXMgYGNvbW1pdHRlZS5yZXF1ZXN0X2JvZHlfaGFzaGAgfAoKCk5vdGUgdGhhdCBIeXBlci1TY2hlbWEgYW5kIE9wZW5BUEkgMiBnZXQgdGhlIHNhbWUgZGVmYXVsdHMgZm9yIG9wdGlvbnMuCgpTb21lIGV4YW1wbGVzIG9mIHVzZToKCmBgYCBiYXNoCiMgbWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIKJCBjdXJsIC1YIFBPU1QgaHR0cDovL2xvY2FsaG9zdDo5MjkyL2FjY291bnQvYXBwLXRyYW5zZmVycyAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtZCAneyJhcHAiOiJoZXJva3UtYXBpIn0nCnsiaWQiOiJiYWRfcmVxdWVzdCIsIm1lc3NhZ2UiOiIjL3BhdGhzL34xYWNjb3VudH4xYXBwLXRyYW5zZmVycy9wb3N0L3JlcXVlc3RCb2R5L2NvbnRlbnQvYXBwbGljYXRpb25+MWpzb24vc2NoZW1hIG1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyczogcmVjaXBpZW50In0KCiMgbWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgKHNob3VsZCBoYXZlICZxdWVyeT0uLi4pCiQgY3VybCAtWCBHRVQgaHR0cDovL2xvY2FsaG9zdDo5MjkyL3NlYXJjaD9jYXRlZ29yeT1hbGwKeyJpZCI6ImJhZF9yZXF1ZXN0IiwibWVzc2FnZSI6IiMvcGF0aHMvfjFzZWFyY2gvZ2V0IG1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyczogcXVlcnkifQoKIyBjb250YWlucyBhbiB1bmtub3duIHBhcmFtZXRlcgokIGN1cmwgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OjkyOTIvYWNjb3VudC9hcHAtdHJhbnNmZXJzIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1kICd7ImFwcCI6Imhlcm9rdS1hcGkiLCJyZWNpcGllbnQiOiJhcGlAaGVyb2t1LmNvbSIsInNlbmRlciI6ImFwaUBoZXJva3UuY29tIn0nCnsiaWQiOiJiYWRfcmVxdWVzdCIsIm1lc3NhZ2UiOiIjL3BhdGhzL34xYWNjb3VudH4xYXBwLXRyYW5zZmVycy9wb3N0L3JlcXVlc3RCb2R5L2NvbnRlbnQvYXBwbGljYXRpb25+MWpzb24vc2NoZW1hIGRvZXMgbm90IGRlZmluZSBwcm9wZXJ0aWVzOiBzZW5kZXIifQoKIyBpbnZhbGlkIHR5cGUKJCBjdXJsIC1YIFBPU1QgaHR0cDovL2xvY2FsaG9zdDo5MjkyL2FjY291bnQvYXBwLXRyYW5zZmVycyAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtZCAneyJhcHAiOiJoZXJva3UtYXBpIiwicmVjaXBpZW50Ijo3fScKeyJpZCI6ImJhZF9yZXF1ZXN0IiwibWVzc2FnZSI6IiMvcGF0aHMvfjFhY2NvdW50fjFhcHAtdHJhbnNmZXJzL3Bvc3QvcmVxdWVzdEJvZHkvY29udGVudC9hcHBsaWNhdGlvbn4xanNvbi9zY2hlbWEvcHJvcGVydGllcy9yZWNpcGllbnQgZXhwZWN0ZWQgc3RyaW5nLCBidXQgcmVjZWl2ZWQgSW50ZWdlcjogNyJ9CgojIGludmFsaWQgZm9ybWF0IChzdXBwb3J0cyBkYXRlLXRpbWUsIGVtYWlsLCB1dWlkKQokIGN1cmwgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OjkyOTIvYWNjb3VudC9hcHAtdHJhbnNmZXJzIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1kICd7ImFwcCI6Imhlcm9rdS1hcGkiLCJyZWNpcGllbnQiOiJtYXR6In0nCnsiaWQiOiJiYWRfcmVxdWVzdCIsIm1lc3NhZ2UiOiIjL3BhdGhzL34xYWNjb3VudH4xYXBwLXRyYW5zZmVycy9wb3N0L3JlcXVlc3RCb2R5L2NvbnRlbnQvYXBwbGljYXRpb25+MWpzb24vc2NoZW1hL3Byb3BlcnRpZXMvcmVjaXBpZW50IGVtYWlsIGFkZHJlc3MgZm9ybWF0IGRvZXMgbm90IG1hdGNoIHZhbHVlOiBtYXR6In0KCiMgaW52YWxpZCBwYXR0ZXJuCiQgY3VybCAtWCBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6OTI5Mi9hcHBzIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1kICd7Im5hbWUiOiIkIyUifScKeyJpZCI6ImJhZF9yZXF1ZXN0IiwibWVzc2FnZSI6IiMvcGF0aHMvfjFhcHBzL3Bvc3QvcmVxdWVzdEJvZHkvY29udGVudC9hcHBsaWNhdGlvbn4xanNvbi9zY2hlbWEvcHJvcGVydGllcy9uYW1lIHBhdHRlcm4gXlthLXpdW2EtejAtOS1dezMsNTB9JCBkb2VzIG5vdCBtYXRjaCB2YWx1ZTogJCMlIn0KYGBgCgojIyBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlN0dWIKCioqTm90ZToqKiBUaGlzIGZlYXR1cmUgaXMgbm90IHlldCBhdmFpbGFibGUgZm9yIE9wZW5BUEkgMy4KCmBgYCBydWJ5CnVzZSBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlN0dWIsIHNjaGVtYV9wYXRoOiAnZG9jcy9zY2hlbWEuanNvbicKYGBgCgpUaGlzIHBpZWNlIG9mIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyBhbnkgcm91dGVzIHRoYXQgYXJlIGluIHRoZSBKU09OIFNjaGVtYSwgdGhlbiBidWlsZHMgYW5kIHJldHVybnMgYW4gYXBwcm9wcmlhdGUgcmVzcG9uc2UgZm9yIHRoZW0uCgpgYGAgYmFzaAokIGN1cmwgLVggR0VUIGh0dHA6Ly9sb2NhbGhvc3Q6OTI5Mi9hcHBzClsKICB7CiAgICAiYXJjaGl2ZWRfYXQiOiIyMDEyLTAxLTAxVDEyOjAwOjAwWiIsCiAgICAiYnVpbGRwYWNrX3Byb3ZpZGVkX2Rlc2NyaXB0aW9uIjoiUnVieS9SYWNrIiwKICAgICJjcmVhdGVkX2F0IjoiMjAxMi0wMS0wMVQxMjowMDowMFoiLAogICAgImdpdF91cmwiOiJnaXRAaGVyb2t1LmNvbS9leGFtcGxlLmdpdCIsCiAgICAiaWQiOiIwMTIzNDU2Ny04OWFiLWNkZWYtMDEyMy00NTY3ODlhYmNkZWYiLAogICAgIm1haW50ZW5hbmNlIjpmYWxzZSwKICAgICJuYW1lIjoiZXhhbXBsZSIsCiAgICAib3duZXIiOlsKICAgICAgewogICAgICAgICJlbWFpbCI6InVzZXJuYW1lQGV4YW1wbGUuY29tIiwKICAgICAgICAiaWQiOiIwMTIzNDU2Ny04OWFiLWNkZWYtMDEyMy00NTY3ODlhYmNkZWYiCiAgICAgIH0KICAgIF0sCiAgICAicmVnaW9uIjpbCiAgICAgIHsKICAgICAgICAiaWQiOiIwMTIzNDU2Ny04OWFiLWNkZWYtMDEyMy00NTY3ODlhYmNkZWYiLAogICAgICAgICJuYW1lIjoidXMiCiAgICAgIH0KICAgIF0sCiAgICAicmVsZWFzZWRfYXQiOiIyMDEyLTAxLTAxVDEyOjAwOjAwWiIsCiAgICAicmVwb19zaXplIjowLAogICAgInNsdWdfc2l6ZSI6MCwKICAgICJzdGFjayI6WwogICAgICB7CiAgICAgICAgImlkIjoiMDEyMzQ1NjctODlhYi1jZGVmLTAxMjMtNDU2Nzg5YWJjZGVmIiwKICAgICAgICAibmFtZSI6ImNlZGFyIgogICAgICB9CiAgICBdLAogICAgInVwZGF0ZWRfYXQiOiIyMDEyLTAxLTAxVDEyOjAwOjAwWiIsCiAgICAid2ViX3VybCI6Imh0dHA6Ly9leGFtcGxlLmhlcm9rdWFwcC5jb20iCiAgfQpdCmBgYAoKIyMjIGNvbW1pdHRlZS1zdHViCgpBIGJ1bmRsZWQgZXhlY3V0YWJsZSBpcyBhbHNvIGF2YWlsYWJsZSB0byBlYXNpbHkgc3RhcnQgdXAgYSBzZXJ2ZXIgdGhhdCB3aWxsIHNlcnZlIHRoZSBzdHViIGZvciBzb21lIHBhcnRpY3VsYXIgSlNPTiBTY2hlbWEgZmlsZToKCmBgYCBiYXNoCmNvbW1pdHRlZS1zdHViIC1wIDxwb3J0PiA8cGF0aCB0byBKU09OIHNjaGVtYT4KYGBgCgojIyBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlJlc3BvbnNlVmFsaWRhdGlvbgoKVGhpcyBmZWF0dXJlIGlzIHN1cHBvcnRlZCBieSBhbGwgb2YgSHlwZXItU2NoZW1hLCBPcGVuQVBJIDIsIGFuZCBPcGVuQVBJIDMuCgpgYGAgcnVieQp1c2UgQ29tbWl0dGVlOjpNaWRkbGV3YXJlOjpSZXNwb25zZVZhbGlkYXRpb24sIHNjaGVtYV9wYXRoOiAnZG9jcy9zY2hlbWEuanNvbicKYGBgCgpUaGlzIHBpZWNlIG9mIG1pZGRsZXdhcmUgdmFsaWRhdGVzIHRoZSBjb250ZW50cyBvZiB0aGUgcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSB1cCB0aGUgc3RhY2sgZm9yIGFueSByb3V0ZSB0aGF0IG1hdGNoZXMgdGhlIEpTT04gU2NoZW1hLiBBIGh5cGVyLXNjaGVtYSBsaW5rJ3MgYHRhcmdldFNjaGVtYWAgcHJvcGVydHkgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hhdCBhIHZhbGlkIHJlc3BvbnNlIGxvb2tzIGxpa2UuCgojIyMgQ29uZmlndXJhdGlvbiBPcHRpb25zCgp8IG5hbWUgfCBIeXBlci1TY2hlbWEgfCBPcGVuQVBJIDMgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS06fCA6LS0tLS0tLS0tLS0tIHwKfHJhaXNlfCBmYWxzZSB8IGZhbHNlIHwgUmFpc2UgYW4gZXhjZXB0aW9uIG9uIGVycm9yIGluc3RlYWQgb2YgcmVzcG9uZGluZyB3aXRoIGEgZ2VuZXJpYyBlcnJvciBib2R5LiB8Cnx2YWxpZGF0ZV9zdWNjZXNzX29ubHl8IHRydWUgfCBmYWxzZSB8IEFsc28gdmFsaWRhdGUgbm9uLTJ4eCByZXNwb25zZXMgb25seS4gfAp8aWdub3JlX2Vycm9yfCBmYWxzZSB8IGZhbHNlIHwgVmFsaWRhdGUgYW5kIGlnbm9yZSByZXN1bHQgZXZlbiBpZiB2YWxpZGF0aW9uIGlzIGVycm9yLiBTbyBhbHdheXMgcmV0dXJuIG9yaWdpbmFsIGRhdGEuIHwKfHBhcnNlX3Jlc3BvbnNlX2J5X2NvbnRlbnRfdHlwZXwgZmFsc2UgfCBmYWxzZSB8IFBhcnNlIHJlc3BvbnNlIGJvZHkgdG8gSlNPTiBvbmx5IGlmIENvbnRlbnQtVHlwZSBoZWFkZXIgaXMgJ2FwcGxpY2F0aW9uL2pzb24nLiBXaGVuIGZhbHNlLCB0aGlzIGFsd2F5cyBvcHRpbWlzdGljYWxseSBwYXJzZXMgYXMgSlNPTiB3aXRob3V0IGNoZWNraW5nIGZvciBDb250ZW50LVR5cGUgaGVhZGVyLiB8CnxzdHJpY3R8IGZhbHNlIHwgZmFsc2UgfCBQdXRzIHRoZSBtaWRkbGV3YXJlIGludG8gc3RyaWN0IG1vZGUsIG1lYW5pbmcgdGhhdCByZXNwb25zZSBjb2RlIGFuZCBjb250ZW50IHR5cGUgZG9lcyBub3QgZGVmaW5lZCBpbiB0aGUgc2NoZW1hIHdpbGwgYmUgcmVzcG9uZGVkIHRvIHdpdGggYSA1MDAgaW5zdGVhZCBvZiBhcHBsaWNhdGlvbidzIHN0YXR1cyBjb2RlLiB8CnxzdHJpY3RfcmVmZXJlbmNlX3ZhbGlkYXRpb258IGFsd2F5cyBmYWxzZSB8IGZhbHNlIHwgUmFpc2VzIGFuIGV4Y2VwdGlvbiAoYE9wZW5BUElQYXJzZXI6Ok1pc3NpbmdSZWZlcmVuY2VFcnJvcmApIG9uIG1pZGRsZXdhcmUgbG9hZCBpZiB0aGUgcHJvdmlkZWQgc2NoZW1hIGZpbGUgY29udGFpbnMgdW5yZXNvbHZhYmxlIHJlZmVyZW5jZXMgKGAkcmVmOiIjL3NvbWV0aGluZy9ub3QvaGVyZSJgKS4gTm90IHN1cHBvcnRlZCBvbiBIeXBlci1zY2hlbWEgcGFyc2VyLiBEZWZhdWx0cyB0byBgZmFsc2VgIG9uIE9wZW5BUEkzIGJ1dCB3aWxsIGRlZmF1bHQgdG8gYHRydWVgIGluIG5leHQgbWFqb3IgdmVyc2lvbi4gfAoKTm8gYm9vbGVhbiBvcHRpb24gdmFsdWVzOgoKfCBuYW1lIHwgYWxsb3dlZCBvYmplY3QgdHlwZSB8IEh5cGVyLVNjaGVtYSB8IE9wZW5BUEkgMyB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tOnwgOi0tLS0tLS0tLS0tLSB8CnxwcmVmaXh8IFN0cmluZyB8IHN1cHBvcnQgfCBzdXBwb3J0IHwgTW91bnRzIHRoZSBtaWRkbGV3YXJlIHRvIHJlc3BvbmQgYXQgYSBjb25maWd1cmVkIHByZWZpeC4gfAp8ZXJyb3JfY2xhc3N8IFN0YW5kYXJkRXJyb3IgfCBzdXBwb3J0IHwgc3VwcG9ydCB8IFNwZWNpZmllcyB0aGUgY2xhc3MgdG8gdXNlIGZvciBmb3JtYXR0aW5nIGFuZCBvdXRwdXR0aW5nIHZhbGlkYXRpb24gZXJyb3JzIChkZWZhdWx0cyB0byBgQ29tbWl0dGVlOjpWYWxpZGF0aW9uRXJyb3JgKS4gfAp8ZXJyb3JfaGFuZGxlcnwgUHJvYyBPYmplY3QgfCBzdXBwb3J0IHwgc3VwcG9ydCB8IEEgcHJvYyB3aGljaCB3aWxsIGJlIGNhbGxlZCB3aGVuIGVycm9yIG9jY3Vycy4gVGFrZSBhbiBFcnJvciBpbnN0YW5jZSBhcyBmaXJzdCBhcmd1bWVudCwgYW5kIHJlcXVlc3QuZW52IGFzIHNlY29uZCBhcmd1bWVudC4gKGUuZy4gYC0+IChleCwgZW52KSB7IFJhdmVuLmNhcHR1cmVfZXhjZXB0aW9uKGV4LCBleHRyYTogeyByYWNrX2VudjogZW52IH0pIH1gKSB8CgpHaXZlbiBhIHNpbXBsZSBTaW5hdHJhIGFwcCB0aGF0IHJlc3BvbmRzIGZvciBhbiBlbmRwb2ludCBpbiBhbiBpbmNvbXBsZXRlIGZhc2hpb246CgpgYGAgcnVieQpyZXF1aXJlICJjb21taXR0ZWUiCnJlcXVpcmUgInNpbmF0cmEiCgp1c2UgQ29tbWl0dGVlOjpNaWRkbGV3YXJlOjpSZXNwb25zZVZhbGlkYXRpb24sIHNjaGVtYV9wYXRoOiAnZG9jcy9zY2hlbWEuanNvbicKCmdldCAiL2FwcHMiIGRvCiAgY29udGVudF90eXBlIDpqc29uCiAgIlt7fV0iCmVuZApgYGAKClRoZSBtaWRkbGV3YXJlIHdpbGwgcmFpc2UgYW4gZXJyb3IgdG8gaW5kaWNhdGUgd2hhdCB0aGUgcHJvYmxlbXMgYXJlOgoKYGBgIGJhc2gKIyBtaXNzaW5nIGtleXMgaW4gcmVzcG9uc2UKJCBjdXJsIC1YIEdFVCBodHRwOi8vbG9jYWxob3N0OjkyOTIvYXBwcwp7ImlkIjoiaW52YWxpZF9yZXNwb25zZSIsIm1lc3NhZ2UiOiJNaXNzaW5nIGtleXMgaW4gcmVzcG9uc2U6IGFyY2hpdmVkX2F0LCBidWlsZHBhY2tfcHJvdmlkZWRfZGVzY3JpcHRpb24sIGNyZWF0ZWRfYXQsIGdpdF91cmwsIGlkLCBtYWludGVuYW5jZSwgbmFtZSwgb3duZXI6ZW1haWwsIG93bmVyOmlkLCByZWdpb246aWQsIHJlZ2lvbjpuYW1lLCByZWxlYXNlZF9hdCwgcmVwb19zaXplLCBzbHVnX3NpemUsIHN0YWNrOmlkLCBzdGFjazpuYW1lLCB1cGRhdGVkX2F0LCB3ZWJfdXJsLiJ9CmBgYAoKSWYgeW91IHdhbnQgdG8gdGFrZSBsb2cgb25seSAoZm9yIGV4YW1wbGUgYXZvaWRpbmcgZmFsc2UtcG9zaXRpdmUgaW4gcHJvZHVjdGlvbiksIHVzZSBgaWdub3JlX2Vycm9yYCBhbmQgYGVycm9yX2hhbmRsZXJgIG9wdGlvbi4KCiMjIFZhbGlkYXRpb24gRXJyb3JzCgpDb21taXR0ZWUgd2lsbCBieSBkZWZhdWx0IHJlc3BvbmQgd2l0aCBhIGdlbmVyaWMgZXJyb3IgSlNPTiBib2R5IGZvciB2YWxpZGF0aW9uIGVycm9ycyAod2hlbiB0aGUgYHJhaXNlYCBtaWRkbGV3YXJlIG9wdGlvbiBpcyBgZmFsc2VgKS4KCkhlcmUncyBhbiBleGFtcGxlIGVycm9yIHRvIHNob3cgdGhlIGRlZmF1bHQgZm9ybWF0OgoKYGBganNvbgp7CiAgImlkIjoiaW52YWxpZF9yZXNwb25zZSIsCiAgIm1lc3NhZ2UiOiJNaXNzaW5nIGtleXMgaW4gcmVzcG9uc2U6IGFyY2hpdmVkX2F0LCBidWlsZHBhY2tfcHJvdmlkZWRfZGVzY3JpcHRpb24sIGNyZWF0ZWRfYXQsIGdpdF91cmwsIGlkLCBtYWludGVuYW5jZSwgbmFtZSwgb3duZXI6ZW1haWwsIG93bmVyOmlkLCByZWdpb246aWQsIHJlZ2lvbjpuYW1lLCByZWxlYXNlZF9hdCwgcmVwb19zaXplLCBzbHVnX3NpemUsIHN0YWNrOmlkLCBzdGFjazpuYW1lLCB1cGRhdGVkX2F0LCB3ZWJfdXJsLiIKfQpgYGAKCllvdSBjYW4gY3VzdG9taXplIHRoaXMgSlNPTiBib2R5IGJ5IHNldHRpbmcgdGhlIGBlcnJvcl9jbGFzc2AgbWlkZGxld2FyZSBvcHRpb24uIFRoZSBgZXJyb3JfY2xhc3NgIHdpbGwgYmUgaW5zdGFudGlhdGVkIHdpdGg6IGBzdGF0dXNgLCBgaWRgLCBhbmQgYG1lc3NhZ2VgLgoKKiBgc3RhdHVzYDogSFRUUCBzdGF0dXMgY29kZQoqIGBpZGA6IEhUVFAgc3RhdHVzIG5hbWUvc3RyaW5nCiogYG1lc3NhZ2VgOiBlcnJvciBtZXNzYWdlCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBhIGNsYXNzIHRvIGZvcm1hdCBlcnJvcnMgYWNjb3JkaW5nIHRvIFtKU09OIEFQSV0oaHR0cDovL2pzb25hcGkub3JnL2Zvcm1hdC8jZXJyb3JzKToKCmBgYHJ1YnkKbW9kdWxlIE15QVBJCiAgY2xhc3MgVmFsaWRhdGlvbkVycm9yIDwgQ29tbWl0dGVlOjpWYWxpZGF0aW9uRXJyb3IKICAgIGRlZiBlcnJvcl9ib2R5CiAgICAgIHsKICAgICAgICBlcnJvcnM6IFsKICAgICAgICAgIHsgc3RhdHVzOiBpZCwgZGV0YWlsOiBtZXNzYWdlIH0KICAgICAgICBdCiAgICAgIH0KICAgIGVuZAoKICAgIGRlZiByZW5kZXIKICAgICAgWwogICAgICAgIHN0YXR1cywKICAgICAgICB7ICJDb250ZW50LVR5cGUiID0+ICJhcHBsaWNhdGlvbi92bmQuYXBpK2pzb24iIH0sCiAgICAgICAgW0pTT04uZ2VuZXJhdGUoZXJyb3JfYm9keSldCiAgICAgIF0KICAgIGVuZAogIGVuZAplbmQKYGBgCgojIyBUZXN0IEFzc2VydGlvbnMKClN1cHBvcnRlZCBpbiBIeXBlclNjaGVtYSBhbmQgT3BlbkFQSSAzLgoKQ29tbWl0dGVlIHNoaXBzIHdpdGggYSBzbWFsbCBzZXQgb2Ygc2NoZW1hIHZhbGlkYXRpb24gdGVzdCBhc3NlcnRpb25zIGRlc2lnbmVkIHRvIGJlIHVzZWQgYWxvbmcgd2l0aCBgcmFjay10ZXN0YC4KCkhlcmUncyBhIHNpbXBsZSB0ZXN0IHRvIGRlbW9uc3RyYXRlOgoKYGBgIHJ1YnkKZGVzY3JpYmUgQ29tbWl0dGVlOjpNaWRkbGV3YXJlOjpTdHViIGRvCiAgaW5jbHVkZSBDb21taXR0ZWU6OlRlc3Q6Ok1ldGhvZHMKICBpbmNsdWRlIFJhY2s6OlRlc3Q6Ok1ldGhvZHMKCiAgZGVmIGFwcAogICAgU2luYXRyYS5uZXcgZG8KICAgICAgZ2V0ICIvIiBkbwogICAgICAgIGNvbnRlbnRfdHlwZSA6anNvbgogICAgICAgIEpTT04uZ2VuZXJhdGUoeyAiZm9vIiA9PiAiYmFyIiB9KQogICAgICBlbmQKICAgIGVuZAogIGVuZAoKICBkZWYgY29tbWl0dGVlX29wdGlvbnMKICAgIEBjb21taXR0ZWVfb3B0aW9ucyB8fD0geyBzY2hlbWE6IENvbW1pdHRlZTo6RHJpdmVyczo6bG9hZF9mcm9tX2ZpbGUoJ2RvY3Mvc2NoZW1hLmpzb24nKSwgcHJlZml4OiAiL3YxIiB9CiAgZW5kCgogIGRlZiByZXF1ZXN0X29iamVjdAogICAgbGFzdF9yZXF1ZXN0CiAgZW5kCgogIGRlZiByZXNwb25zZV9kYXRhCiAgICBbbGFzdF9yZXNwb25zZS5zdGF0dXMsIGxhc3RfcmVzcG9uc2UuaGVhZGVycywgbGFzdF9yZXNwb25zZS5ib2R5XQogIGVuZAoKICBkZXNjcmliZSAiR0VUIC8iIGRvCiAgICBpdCAiY29uZm9ybXMgdG8gc2NoZW1hIHdpdGggMjAwIHJlc3BvbnNlIGNvZGUiIGRvCiAgICAgIGdldCAiLyIKICAgICAgYXNzZXJ0X3NjaGVtYV9jb25mb3JtKDIwMCkKICAgIGVuZAoKICAgIGl0ICJjb25mb3JtcyB0byByZXF1ZXN0IHNjaGVtYSIgZG8KICAgICAgZ2V0ICIvIgogICAgICBhc3NlcnRfcmVxdWVzdF9zY2hlbWFfY29uZmlybQogICAgZW5kCgogICAgaXQgImNvbmZvcm1zIHRvIHJlc3BvbnNlIHNjaGVtYSB3aXRoIDIwMCByZXNwb25zZSBjb2RlIiBkbwogICAgICBnZXQgIi8iCiAgICAgIGFzc2VydF9yZXNwb25zZV9zY2hlbWFfY29uZmlybSgyMDApCiAgICBlbmQKCiAgICBpdCAiY29uZm9ybXMgdG8gcmVzcG9uc2UgYW5kIHJlcXVlc3Qgc2NoZW1hIHdpdGggMjAwIHJlc3BvbnNlIGNvZGUiIGRvCiAgICAgIEBjb21taXR0ZWVfb3B0aW9uc1s6b2xkX2Fzc2VydF9iZWhhdmlvcl0gPSBmYWxzZQogICAgICBnZXQgIi8iCiAgICAgIGFzc2VydF9zY2hlbWFfY29uZm9ybSgyMDApCiAgICBlbmQKICBlbmQKZW5kCmBgYAoKCiMjIFRpcHMKCiMjIyBVc2UgUnVieSBvbiBSYWlscyB3aXRoIGNvZXJjZSBvcHRpb24KUGxlYXNlIHNldCBgJ2FjdGlvbl9kaXNwYXRjaC5yZXF1ZXN0LnJlcXVlc3RfcGFyYW1ldGVycydgIHRvIGBwYXJhbXNfa2V5YCBvcHRpb24uCgpgYGAKdXNlIENvbW1pdHRlZTo6TWlkZGxld2FyZTo6UmVxdWVzdFZhbGlkYXRpb24sCiAgICAgIHNjaGVtYV9wYXRoOiAnZG9jcy9zY2hlbWEuanNvbicsCiAgICAgIGNvZXJjZV9kYXRlX3RpbWVzOiB0cnVlLAogICAgICBwYXJhbXNfa2V5OiAnYWN0aW9uX2Rpc3BhdGNoLnJlcXVlc3QucmVxdWVzdF9wYXJhbWV0ZXJzJwpgYGAKCkNvbW1pdHRlZSBoYXMgZmV3IG9wdGlvbnMgd2hpY2ggZW5hYmxlIGNvbnZlcnQgcmVxdWVzdCBkYXRhLgpCeSBkZWZhdWx0IGNvbW1pdHRlZSBzYXZlIGNvbnZlcnRlZCBkYXRhIHRvIGBjb21taXR0ZWUucGFyYW1zYCBhbmQgcmFpbHMgZG9lcyBub3QgcmVhZCBpdC4KU28gd2UgbmVlZCB0byBzYXZlIGNvbnZlcnRlZCB2YWx1ZSB0byBgJ2FjdGlvbl9kaXNwYXRjaC5yZXF1ZXN0LnJlcXVlc3RfcGFyYW1ldGVycydgIGJlY2F1c2UgcmFpbHMgY3JlYXRlIHBhcmFtZXRlciBmcm9tIHRoaXMgdmFsdWUuCgojIyBVc2luZyBPcGVuQVBJIDMKCkNvbW1pdHRlZSBjYW4gZGV0ZWN0IHRoZSB0eXBlIG9mIHNjaGVtYSAoSHlwZXItU2NoZW1hLCBPcGVuQVBJIDMsIGV0Yy4pIGZyb20gdGhlIHByb3ZpZGVkIGZpbGUsIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBwYXNzIGluIGFueSBhZGRpdGlvbmFsIG9wdGlvbnM6CgpgYGBydWJ5CnVzZSBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlJlcXVlc3RWYWxpZGF0aW9uLCBzY2hlbWFfcGF0aDogJ29wZW5fYXBpXzMvc2NoZW1hLnlhbWwnCmBgYAoKSWYgeW91IHdhbnQgdG8gc2VsZWN0IHRoZSB0eXBlIG1hbnVhbGx5LCBwYXNzIGFuIGBPcGVuQVBJIDNgIG9iamVjdCB0byB0aGUgYHNjaGVtYWAgb3B0aW9uIG1hbnVhbGx5OgoKYGBgcnVieQpvcGVuX2FwaSA9IE9wZW5BUElQYXJzZXIucGFyc2UoWUFNTC5sb2FkX2ZpbGUoJ29wZW5fYXBpXzMvc2NoZW1hLnlhbWwnKSkKc2NoZW1hID0gQ29tbWl0dGVlOjpEcml2ZXJzOjpPcGVuQVBJMzo6RHJpdmVyLm5ldy5wYXJzZShvcGVuX2FwaSkKdXNlIENvbW1pdHRlZTo6TWlkZGxld2FyZTo6UmVxdWVzdFZhbGlkYXRpb24sIHNjaGVtYTogc2NoZW1hCmBgYAoKIyMjIExpbWl0YXRpb25zIG9mIE9wZW5BUEkgMyBzdXBwb3J0CgoqIFN0dWIgc2VydmVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQsIHNvIG5laXRoZXIgYENvbW1pdHRlZTo6TWlkZGxld2FyZTo6U3R1YmAgb3IgYENvbW1pdHRlZTo6QmluOjpDb21taXR0ZWVTdHViYCBhcmUgZnVuY3Rpb25hbC4KKiBDaGFuZ2luZyBgY29lcmNlX3JlY3Vyc2l2ZWAgaXNuJ3Qgc3VwcG9ydGVkLiBUaGlzIG9wdGlvbiBpcyBhbHdheXMgb24uCgojIyMgVXBncmFkaW5nIGZyb20gQ29tbWl0dGVlIDIuKiB0byAzLioKCkNvbW1pdHRlZSAzLiogaGFzIG1hbnkgYnJlYWtpbmcgY2hhbmdlcyBzbyB3ZSByZWNvbW1lbmQgdXBncmFkaW5nIHRvIHRoZSBsYXRlc3QgcmVsZWFzZSBvbiAyLiogYW5kIGZpeGluZyBhbnkgZGVwcmVjYXRpb24gZXJyb3JzIHlvdSBzZWUgYmVmb3JlIHVwZ3JhZGluZyB0byAzLiouIFRoZSBzdGVwcyB3b3VsZCBiZSByb3VnaGx5IGFzIGZvbGxvd3M6CgoxLiBVcGRhdGUgdG8gdGhlIGxhdGVzdCAyLiogcmVsZWFzZSAodXN1YWxseSBieSBtb2RpZnlpbmcgdGhlIHN0YXRlbWVudCBpbiB5b3VyIGBHZW1maWxlYCBhbmQgcnVubmluZyBgYnVuZGxlIHVwZGF0ZWApLgoyLiBSdW4geW91ciB0ZXN0IHN1aXRlIGFuZCBmaXggYW55IGRlcHJlY2F0aW9uIHdhcm5pbmdzIHRoYXQgYXBwZWFyLgozLiBVcGRhdGUgdG8gdGhlIGxhdGVzdCAzLiogcmVsZWFzZS4KNC4gU3dpdGNoIHRvIE9wZW5BUEkgMyBpZiB5b3UnZCBsaWtlIHRvIGRvIHNvLgoKSW1wb3J0YW50IGNoYW5nZXMgYXJlIGFsc28gZGVzY3JpYmVkIGJlbG93LgoKIyMjIFVwZ3JhZGluZyBmcm9tIENvbW1pdHRlZSA0LiogdG8gNS4qCgpDb21taXR0ZWUgNS4qIGhhcyBmZXcgYnJlYWtpbmcgY2hhbmdlcyBzbyB3ZSByZWNvbW1lbmQgdXBncmFkaW5nIHRvIHRoZSBsYXRlc3QgcmVsZWFzZSBvbiA0LiogYW5kIGZpeGluZyBhbnkgZGVwcmVjYXRpb24gZXJyb3JzIHlvdSBzZWUgYmVmb3JlIHVwZ3JhZGluZy4KCi0gc2V0IGBwYXJzZV9yZXNwb25zZV9ieV9jb250ZW50X3R5cGU9dHJ1ZWAgYnkgZGVmYXVsdCAob2xkIHZlcnNpb25zIHNldCBgZmFsc2VgKQotIHNldCBgcGFyYW1ldGVyX292ZXJ3cml0ZV9ieV9yYWlsc19ydWxlPXRydWVgIGJ5IGRlZmF1bHQgKG9sZCB2ZXJzaW9uIHNldCBgZmFsc2VgKQoKIyMjIyBGdXR1cmUgVXBkYXRlcyAoNS4qfikKT3BlbkFQSTMgU2NoZW1hIFVzZXJzOiBOZXdseS1hZGRlZCBgc3RyaWN0X3JlZmVyZW5jZV92YWxpZGF0aW9uYCBvcHRpb24gZGVmYXVsdHMgdG8gYGZhbHNlYCBpZiBub3Qgc2V0LgpGcm9tIGEgbGF0ZXIgbWFqb3IgdmVyc2lvbiBvZiBDb21taXR0ZWUsIHdlIHdhbnQgdG8gY2hhbmdlIGl0IHRvIGB0cnVlYCAob3IgcmVtb3ZlIHRoZSBvcHRpb24gZW50aXJlbHkgYW5kIGZvcmNlCmB0cnVlYCB0byBiZSBwYXNzZWQgdG8gdGhlIE9wZW5BUEkzIHBhcnNlciAoc2VlOiBodHRwczovL2dpdGh1Yi5jb20vaW50ZXJhZ2VudC9jb21taXR0ZWUvaXNzdWVzLzM0MykuCgpUbyByZW1vdmUgZGVwcmVjYXRpb24gd2FybmluZ3MsIHBhc3MgYHN0cmljdF9yZWZlcmVuY2VfdmFsaWRhdGlvbjogdHJ1ZWAgYXMgYW4gb3B0aW9uIHdoZW4gbG9hZGluZyB0aGUgbWlkZGxld2FyZQooYmVjYXVzZSB0aGlzIGlzIGFib3V0IHNjaGVtYSBwYXJzaW5nL2luaXRpYWxpemF0aW9uLCB0aGUgc2V0dGluZyBpcyB2YWxpZCBmb3IgYm90aCByZXF1ZXN0IGFuZCByZXNwb25zZSB2YWxpZGF0aW9uKS4KCiMjIyBTZXR0aW5nIHNjaGVtYXMgaW4gbWlkZGxld2FyZQoKQ29tbWl0dGVlIDIuKiBzdXBwb3J0ZWQgc2V0dGluZyBgc2NoZW1hYCB0byBhIHN0cmluZyBvciBhIGhhc2ggbGlrZSB0aGlzOgoKYGBgcnVieQojIHZhbGlkCnVzZSBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlJlcXVlc3RWYWxpZGF0aW9uLCBzY2hlbWE6IEpTT04ucGFyc2UoRmlsZS5yZWFkKC4uLikpCgojIHZhbGlkCnVzZSBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlJlcXVlc3RWYWxpZGF0aW9uLCBzY2hlbWE6IHtqc29uOiAnanNvbl9kYXRhLi4uJ30KCiMgdmFsaWQKdXNlIENvbW1pdHRlZTo6TWlkZGxld2FyZTo6UmVxdWVzdFZhbGlkYXRpb24sIHNjaGVtYTogJ2pzb24gc3RyaW5nJwoKYGBgCgpUaGF0IHVzYWdlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgaW4gMy4qIEluc3RlYWQsIHVzZSBlaXRoZXIgYHNjaGVtYV9wYXRoYCBvciBzZXQgYSBwYXJzZWQgc2NoZW1hIG9iamVjdCB0byBgc2NoZW1hYDoKCmBgYHJ1YnkKIyBhdXRvLXNlbGVjdCBIeXBlci1TY2hlbWEvT3BlbkFQSSAyL09wZW5BUEkgMyBmcm9tIGZpbGUKdXNlIENvbW1pdHRlZTo6TWlkZGxld2FyZTo6UmVxdWVzdFZhbGlkYXRpb24sIHNjaGVtYV9wYXRoOiAnZG9jcy9zY2hlbWEuanNvbicgIyB1c2luZyBmaWxlIGV4dGVuc2lvbgoKIyBhdXRvLXNlbGVjdCBIeXBlci1TY2hlbWEvT3BlbkFQSSAyL09wZW5BUEkgMyBmcm9tIGhhc2gKanNvbiA9IEpTT04ucGFyc2UoRmlsZS5yZWFkKCdkb2NzL3NjaGVtYS5qc29uJykpCnVzZSBDb21taXR0ZWU6Ok1pZGRsZXdhcmU6OlJlcXVlc3RWYWxpZGF0aW9uLCBzY2hlbWE6IENvbW1pdHRlZTo6RHJpdmVyczo6bG9hZF9kYXRhKGpzb24pCgojIG1hbnVhbGx5IHNlbGVjdApqc29uID0gSlNPTi5wYXJzZShGaWxlLnJlYWQoLi4uKSkKc2NoZW1hID0gQ29tbWl0dGVlOjpEcml2ZXJzOjpIeXBlclNjaGVtYTo6RHJpdmVyLm5ldy5wYXJzZShqc29uKQp1c2UgQ29tbWl0dGVlOjpNaWRkbGV3YXJlOjpSZXF1ZXN0VmFsaWRhdGlvbiwgc2NoZW1hOiBzY2hlbWEKYGBgCgpUaGUgYXV0by1zZWxlY3QgYWxnb3JpdGhtIHdvcmtzIHJvdWdobHkgbGlrZSB0aGlzIChzbyBtYWtlIHN1cmUgdGhhdCB5b3VyIGZpbGUgc2V0cyBvbmUgb2YgdGhlc2UgYXR0cmlidXRlcyBjb3JyZWN0bHkpOgoKYGBgcnVieQpoYXNoID0gSlNPTi5sb2FkKGpzb25fcGF0aCkKCiMgT3BlbkFQSSAzIHJlcXVpcmVzIHRoZSBgb3BlbmFwaWAga2V5IGFuZCBhIHZlcnNpb24KaWYgaGFzaFsnb3BlbmFwaSddJi5zdGFydF93aXRoPygnMy4nKQogIHJldHVybiBDb21taXR0ZWU6OkRyaXZlcnM6Ok9wZW5BUEkzOjpEcml2ZXIubmV3LnBhcnNlKGhhc2gpCgojIE9wZW5BUEkgMiByZXF1aXJlcyB0aGUgYHN3YWdnZXJgIGtleQplbHNpZiBoYXNoWydzd2FnZ2VyJ10gPT0gJzIuMCcKICByZXR1cm4gQ29tbWl0dGVlOjpEcml2ZXJzOjpPcGVuQVBJMjo6RHJpdmVyLm5ldy5wYXJzZShoYXNoKQoKZWxzZQogIHJldHVybiBDb21taXR0ZWU6OkRyaXZlcnM6Okh5cGVyU2NoZW1hOjpEcml2ZXIubmV3LnBhcnNlKGhhc2gpCmVuZApgYGAKCiMjIyBUZXN0IGFzc2VydGlvbnMKCkNvbW1pdHRlZSAzLiogZHJvcHMgbWFueSBvZiB0aGUgbWV0aG9kcyB0aGF0IHdlcmUKcHJldmlvdXNseSBhdmFpbGFibGUgZnJvbSB0aGUgYENvbW1pdHRlZTo6VGVzdDo6TWV0aG9kc2AKbWl4aW4uCgpVc2UgaXQgYnkgZGVmaW5pbmcgYSBgY29tbWl0dGVlX29wdGlvbnNgIG1ldGhvZCBhbmQgaGF2aW5nCml0IHJldHVybiBhIHNjaGVtYSBhbmQgb3RoZXIgb3B0aW9ucyB5b3UnZCBsaWtlIHRvIHVzZToKCmBgYHJ1YnkKZGVmIGNvbW1pdHRlZV9vcHRpb25zCiAgQGNvbW1pdHRlZV9vcHRpb25zIHx8PSB7IHNjaGVtYTogQ29tbWl0dGVlOjpEcml2ZXJzOjpsb2FkX2Zyb21fZmlsZSgnZG9jcy9zY2hlbWEuanNvbicpLCBwcmVmaXg6ICIvdjEiLCB2YWxpZGF0ZV9zdWNjZXNzX29ubHk6IHRydWUgfQplbmQKYGBgCgpUaGUgZGVmYXVsdCBhc3NlcnRpb24gb3B0aW9uIGluIDIuKiB3YXMgYHZhbGlkYXRlX3N1Y2Nlc3Nfb25seT10cnVlYCwgYnV0IHRoaXMgYmVjb21lcyBgdmFsaWRhdGVfc3VjY2Vzc19vbmx5PWZhbHNlYCBpbiAzLiouIEZvciB0aGUgc21vb3RoZXN0IHBvc3NpYmxlIHVwZ3JhZGUsIHlvdSBzaG91bGQgc2V0IGl0IHRvIGBmYWxzZWAgaW4geW91ciB0ZXN0IHN1aXRlIGJlZm9yZSB1cGdyYWRpbmcgdG8gMy4qLgoKIyMjIFRlc3Qgc2NoZW1hIGNvdmVyYWdlCllvdSBjYW4gY2hlY2sgaG93IG11Y2ggb2YgeW91ciBBUEkgc2NoZW1hIHlvdXIgdGVzdHMgaGF2ZSBjb3ZlcmVkLgpOT1RJQ0U6IEN1cnJlbnRseSBjb21taXR0ZWUgb25seSBzdXBwb3J0cyBzY2hlbWEgY292ZXJhZ2UgZm9yICoqb3BlbmFwaSoqIHNjaGVtYXMsIGFuZCBvbmx5IGNoZWNrcyBjb3ZlcmFnZSBvbiByZXNwb25zZXMsIHZpYSBgYXNzZXJ0X3Jlc3BvbnNlX3NjaGVtYV9jb25maXJtYCBvciBgYXNzZXJ0X3NjaGVtYV9jb25mb3JtYCBtZXRob2RzLgpVc2FnZToKMS4gU2V0IHNjaGVtYV9jb3ZlcmFnZSBvcHRpb24gb2YgYGNvbW1pdHRlZV9vcHRpb25zYAoyLiBVc2UgYGFzc2VydF9yZXNwb25zZV9zY2hlbWFfY29uZmlybWAgb3IgYGFzc2VydF9zY2hlbWFfY29uZm9ybWAKMy4gVGhlbiB1c2UgYFNjaGVtYUNvdmVyYWdlI3JlcG9ydGAgb3IgYFNjaGVtYUNvdmVyYWdlI3JlcG9ydF9mbGF0dGVuYCB0byBnZXQgY292ZXJhZ2UgcmVwb3J0CgpFeGFtcGxlOgpgYGBydWJ5CmJlZm9yZSBkbwogIHNjaGVtYV9jb3ZlcmFnZSA9IENvbW1pdHRlZTo6VGVzdDo6U2NoZW1hQ292ZXJhZ2UubmV3KG9wZW5hcGlfc2NoZW1hKQogIEBjb21taXR0ZWVfb3B0aW9uc1s6c2NoZW1hX2NvdmVyYWdlXSA9IHNjaGVtYV9jb3ZlcmFnZQplbmQKaXQgJ2NvdmVycyAvc29tZV9hcGknIGRvCiAgZ2V0ICcvc29tZV9hcGknCiAgYXNzZXJ0X3Jlc3BvbnNlX3NjaGVtYV9jb25maXJtICMgb3IgYXNzZXJ0X3NjaGVtYV9jb25mb3JtCiAgY292ZXJhZ2VfcmVwb3J0ID0gc2NoZW1hX2NvdmVyYWdlLnJlcG9ydAogICMgY2hlY2sgY292ZXJhZ2UgZXhwZWN0YXRpb25zIG9mIC9zb21lX2FwaSBoZXJlCmVuZAppdCAnY292ZXJzIC9vdGhlcl9hcGkgc2NoZW1hJyBkbwogIGdldCAnL290aGVyX2FwaScKICBhc3NlcnRfcmVzcG9uc2Vfc2NoZW1hX2NvbmZpcm0gIyBvciBhc3NlcnRfc2NoZW1hX2NvbmZvcm0KICBjb3ZlcmFnZV9yZXBvcnQgPSBzY2hlbWFfY292ZXJhZ2UucmVwb3J0CiAgIyBjaGVjayBjb3ZlcmFnZSBleHBlY3RhdGlvbnMgb2YgL290aGVyX2FwaSBoZXJlCmVuZAphZnRlciBkbwogIGNvdmVyYWdlX3JlcG9ydCA9IHNjaGVtYV9jb3ZlcmFnZS5yZXBvcnQKICAjIGNoZWNrIGNvdmVyYWdlIGV4cGVjdGF0aW9ucyBvZiBhbGwgYXBpcyBoZXJlCmVuZApgYGAKCkNvdmVyYWdlIHJlcG9ydCBzdHJ1Y3R1cmU6CmBgYAovKiB1c2luZyAjcmVwb3J0ICovCnsKICA8cGF0aD4gPT4gewogICAgPG1ldGhvZD4gPT4gewogICAgICAncmVzcG9uc2VzJyA9PiB7CiAgICAgICAgPHN0YXR1cz4gPT4gPHRydWV8ZmFsc2U+CiAgICAgIH0KICAgIH0KICB9Cn0KLyogdXNpbmcgI3JlcG9ydF9mbGF0dGVuICovCnsKICByZXNwb25zZXM6IFsKICAgIHsgcGF0aDogPHBhdGg+LCBtZXRob2Q6IDxtZXRob2Q+LCBzdGF0dXM6IDxzdGF0dXM+LCBpc19jb3ZlcmVkOiA8dHJ1ZXxmYWxzZT4gfSwKICBdCn0KYGBgCgpPdGhlciBoZWxwZXIgbWV0aG9kczoKKiBgQ29tbWl0dGVlOjpUZXN0OjpTY2hlbWFDb3ZlcmFnZS5tZXJnZV9yZXBvcnQoPEhhc2g+LCA8SGFzaD4pYDogbWVyZ2UgMiBjb3ZlcmFnZSByZXBvcnRzIHRvZ2V0aGVyCiogYENvbW1pdHRlZTo6VGVzdDo6U2NoZW1hQ292ZXJhZ2UuZmxhdHRlbl9yZXBvcnQoPEhhc2g+KWA6IGZsYXR0ZW4gYSBjb3ZlcmFnZSByZXBvcnQgSGFzaCBpbnRvIGZsYXR0ZW4gc3RydWN0dXJlCgojIyMgT3RoZXIgY2hhbmdlcwoKKiBgR0VUYCByZXF1ZXN0IGJvZGllcyBhcmUgaWdub3JlZCBpbiBPcGVuQVBJIDMgYnkgZGVmYXVsdC4gSWYgeW91IHdhbnQgdG8gdXNlIHRoZW0sIHNldCB0aGUgYGFsbG93X2dldF9ib2R5YCBvcHRpb24gdG8gYHRydWVgLgoKIyMgRGV2ZWxvcG1lbnQKClJ1biB0ZXN0cyB3aXRoIHRoZSBmb2xsb3dpbmc6CgpgYGAKYnVuZGxlIGluc3RhbGwKYnVuZGxlIGV4ZWMgcmFrZQpgYGAKClJ1biBhIHBhcnRpY3VsYXIgdGVzdCBzdWl0ZSBvciB0ZXN0OgoKYGBgCmJ1bmRsZSBleGVjIHJ1YnkgLUlsaWIgLUl0ZXN0IHRlc3Qvcm91dGVyX3Rlc3QucmIKYnVuZGxlIGV4ZWMgcnVieSAtSWxpYiAtSXRlc3QgdGVzdC9yb3V0ZXJfdGVzdC5yYiAtbiAvcHJlZml4LwpgYGAKCiMjIFJlbGVhc2UKCjEuIFVwZGF0ZSB0aGUgdmVyc2lvbiBpbiBgbGliL2NvbW1pdHRlZS92ZXJzaW9uLnJiYCBhcyBhcHByb3ByaWF0ZSBmb3IgW3NlbWFudGljCiAgIHZlcnNpb25pbmddKGh0dHA6Ly9zZW12ZXIub3JnKSBhbmQgYWRkIGRldGFpbHMgdG8gYENIQU5HRUxPRy5tZGAuCjIuIENvbW1pdCB0aG9zZSBjaGFuZ2VzLiBVc2UgYSBjb21taXQgbWVzc2FnZSBsaWtlIGBCdW1wIHZlcnNpb24gdG8gMS4yLjNgLgozLiBSdW4gdGhlIGByZWxlYXNlYCB0YXNrOgoKICAgIGBgYAogICAgYnVuZGxlIGV4ZWMgcmFrZSByZWxlYXNlCiAgICBgYGAKCiMjIFR1dG9yaWFscwoKLSBbVmFsaWRhdGluZyByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzIHVzaW5nIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiB3aXRoIENvbW1pdHRlZV0oaHR0cHM6Ly9uaWNvbGFzaWVuc2VuLmdpdGh1Yi5pby8yMDIyLTA0LTE4LXZhbGlkYXRpbmctcmVxdWVzdHMtYW5kLXJlc3BvbnNlcy11c2luZy1vcGVuYXBpLXNwZWNpZmljYXRpb24td2l0aC1jb21taXR0ZWUvKQo= readmeEtag: '"968bd385490039f64a52ad9bd30bc02ec220e324"' readmeLastModified: Mon, 17 Jun 2024 14:47:03 GMT repositoryId: 14134534 description: A collection of Rack middleware to support JSON Schema. created: '2013-11-05T07:05:45Z' updated: '2024-09-03T19:32:22Z' language: Ruby archived: false stars: 869 watchers: 16 forks: 132 owner: interagent logo: https://avatars.githubusercontent.com/u/7388387?v=4 license: MIT repoEtag: '"9d84a5e38e405af95101f3e1ba9ea352c3cb203e4c50542d45f0ca26f997aa53"' repoLastModified: Tue, 03 Sep 2024 19:32:22 GMT foundInMaster: true id: 64f8f7a816e2d8825abd1a213d9e3fb5 - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/ahx/openapi_first v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpX2ZpcnN0CgpPcGVuYXBpRmlyc3QgaGVscHMgdG8gaW1wbGVtZW50IEhUVFAgQVBJcyBiYXNlZCBvbiBhbiBbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgQVBJIGRlc2NyaXB0aW9uLiBJdCBzdXBwb3J0cyBPcGVuQVBJIDMuMCBhbmQgMy4xLiBJdCBvZmZlcnMgcmVxdWVzdCBhbmQgcmVzcG9uc2UgdmFsaWRhdGlvbiBhbmQgaXQgZW5zdXJlcyB0aGF0IHlvdXIgaW1wbGVtZW50YXRpb24gZm9sbG93cyBleGFjdGx5IHRoZSBBUEkgZGVzY3JpcHRpb24uCgpbIVtUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2FoeC9vcGVuYXBpX2ZpcnN0L2FjdGlvbnMvd29ya2Zsb3dzL3J1YnkueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9haHgvb3BlbmFwaV9maXJzdC9hY3Rpb25zL3dvcmtmbG93cy9ydWJ5LnltbCkKWyFbQ29kZVFMXShodHRwczovL2dpdGh1Yi5jb20vYWh4L29wZW5hcGlfZmlyc3QvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYWh4L29wZW5hcGlfZmlyc3QvYmxvYi9jb2RlcWwvLmdpdGh1Yi93b3JrZmxvd3MvY29kZXFsLnltbCkKCiMjIENvbnRlbnRzCgo8IS0tIFRPQyAtLT4KCi0gW01hbnVhbCB1c2VdKCNtYW51YWwtdXNlKQogIC0gW1ZhbGlkYXRlIHJlcXVlc3RdKCN2YWxpZGF0ZS1yZXF1ZXN0KQogIC0gW1ZhbGlkYXRlIHJlc3BvbnNlXSgjdmFsaWRhdGUtcmVzcG9uc2UpCi0gW1JhY2sgTWlkZGxld2FyZXNdKCNyYWNrLW1pZGRsZXdhcmVzKQogIC0gW1JlcXVlc3QgdmFsaWRhdGlvbl0oI3JlcXVlc3QtdmFsaWRhdGlvbikKICAtIFtSZXNwb25zZSB2YWxpZGF0aW9uXSgjcmVzcG9uc2UtdmFsaWRhdGlvbikKLSBbVGVzdCBhc3NlcnRpb25zXSgjdGVzdC1hc3NlcnRpb25zKQotIFtGcmFtZXdvcmsgaW50ZWdyYXRpb25dKCNmcmFtZXdvcmstaW50ZWdyYXRpb24pCi0gW0NvbmZpZ3VyYXRpb25dKCNjb25maWd1cmF0aW9uKQotIFtIb29rc10oI2hvb2tzKQotIFtBbHRlcm5hdGl2ZXNdKCNhbHRlcm5hdGl2ZXMpCi0gW0RldmVsb3BtZW50XSgjZGV2ZWxvcG1lbnQpCiAgLSBbQmVuY2htYXJrc10oI2JlbmNobWFya3MpCiAgLSBbQ29udHJpYnV0aW5nXSgjY29udHJpYnV0aW5nKQoKPCEtLSAvVE9DIC0tPgoKIyMgTWFudWFsIHVzZQoKTG9hZCB0aGUgQVBJIGRlc2NyaXB0aW9uOgoKYGBgcnVieQpyZXF1aXJlICdvcGVuYXBpX2ZpcnN0JwoKZGVmaW5pdGlvbiA9IE9wZW5hcGlGaXJzdC5sb2FkKCdvcGVuYXBpLnlhbWwnKQpgYGAKCiMjIyBWYWxpZGF0ZSByZXF1ZXN0CgpgYGBydWJ5CnZhbGlkYXRlZF9yZXF1ZXN0ID0gZGVmaW5pdGlvbi52YWxpZGF0ZV9yZXF1ZXN0KHJhY2tfcmVxdWVzdCkKCiMgSW5zcGVjdCB0aGUgcmVxdWVzdCBhbmQgYWNjZXNzIHBhcnNlZCBwYXJhbWV0ZXJzCnZhbGlkYXRlZF9yZXF1ZXN0LnZhbGlkPwp2YWxpZGF0ZWRfcmVxdWVzdC5pbnZhbGlkPwp2YWxpZGF0ZWRfcmVxdWVzdC5lcnJvciAjID0+IEZhaWx1cmUgb2JqZWN0IG9yIG5pbAp2YWxpZGF0ZWRfcmVxdWVzdC5wYXJzZWRfYm9keSAjID0+IFRoZSBwYXJzZWQgcmVxdWVzdCBib2R5IChIYXNoKQp2YWxpZGF0ZWRfcmVxdWVzdC5wYXJzZWRfcXVlcnkgIyBBIEhhc2ggb2YgcXVlcnkgcGFyYW1ldGVycyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBBUEkgZGVzY3JpcHRpb24sIHBhcnNlZCBleGFjdGx5IGFzIGRlc2NyaWJlZC4KdmFsaWRhdGVkX3JlcXVlc3QucGFyc2VkX3BhdGhfcGFyYW1ldGVycwp2YWxpZGF0ZWRfcmVxdWVzdC5wYXJzZWRfaGVhZGVycwp2YWxpZGF0ZWRfcmVxdWVzdC5wYXJzZWRfY29va2llcwp2YWxpZGF0ZWRfcmVxdWVzdC5wYXJzZWRfcGFyYW1zICMgTWVyZ2VkIHBhcnNlZCBwYXRoLCBxdWVyeSBwYXJhbWV0ZXJzIGFuZCByZXF1ZXN0IGJvZHkKIyBBY2Nlc3MgdGhlIE9wZW5hcGkgMyBPcGVyYXRpb24gT2JqZWN0IEhhc2gKdmFsaWRhdGVkX3JlcXVlc3Qub3BlcmF0aW9uWyd4LWZvbyddCnZhbGlkYXRlZF9yZXF1ZXN0Lm9wZXJhdGlvblsnb3BlcmF0aW9uSWQnXSA9PiAiZ2V0U3R1ZmYiCiMgb3IgdGhlIHdob2xlIHJlcXVlc3QgZGVmaW5pdGlvbgp2YWxpZGF0ZWRfcmVxdWVzdC5yZXF1ZXN0X2RlZmluaXRpb24ucGF0aCAjID0+ICIvcGV0cy97cGV0SWR9Igp2YWxpZGF0ZWRfcmVxdWVzdC5yZXF1ZXN0X2RlZmluaXRpb24ub3BlcmF0aW9uX2lkICMgPT4gInNob3dQZXRCeUlkIgoKIyBPciB5b3UgY2FuIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB2YWxpZGF0aW9uIGZhaWxzOgpkZWZpbml0aW9uLnZhbGlkYXRlX3JlcXVlc3QocmFja19yZXF1ZXN0LCByYWlzZV9lcnJvcjogdHJ1ZSkgIyBSYWlzZXMgT3BlbmFwaUZpcnN0OjpSZXF1ZXN0SW52YWxpZEVycm9yIG9yIE9wZW5hcGlGaXJzdDo6Tm90Rm91bmRFcnJvciBpZiByZXF1ZXN0IGlzIGludmFsaWQKYGBgCgojIyMgVmFsaWRhdGUgcmVzcG9uc2UKCmBgYHJ1YnkKdmFsaWRhdGVkX3Jlc3BvbnNlID0gZGVmaW5pdGlvbi52YWxpZGF0ZV9yZXNwb25zZShyYWNrX3JlcXVlc3QsIHJhY2tfcmVzcG9uc2UpCgojIEluc3BlY3QgdGhlIHJlc3BvbnNlIGFuZCBhY2Nlc3MgcGFyc2VkIHBhcmFtZXRlcnMgYW5kCnZhbGlkYXRlZF9yZXNwb25zZS52YWxpZD8KdmFsaWRhdGVkX3Jlc3BvbnNlLmludmFsaWQ/CnZhbGlkYXRlZF9yZXNwb25zZS5lcnJvciAjID0+IEZhaWx1cmUgb2JqZWN0IG9yIG5pbAp2YWxpZGF0ZWRfcmVzcG9uc2Uuc3RhdHVzICMgPT4gMjAwCnZhbGlkYXRlZF9yZXNwb25zZS5wYXJzZWRfYm9keQp2YWxpZGF0ZWRfcmVzcG9uc2UucGFyc2VkX2hlYWRlcnMKCiMgT3IgeW91IGNhbiByYWlzZSBhbiBleGNlcHRpb24gaWYgdmFsaWRhdGlvbiBmYWlsczoKZGVmaW5pdGlvbi52YWxpZGF0ZV9yZXNwb25zZShyYWNrX3JlcXVlc3QscmFja19yZXNwb25zZSwgcmFpc2VfZXJyb3I6IHRydWUpICMgUmFpc2VzIE9wZW5hcGlGaXJzdDo6UmVzcG9uc2VJbnZhbGlkRXJyb3Igb3IgT3BlbmFwaUZpcnN0OjpSZXNwb25zZU5vdEZvdW5kRXJyb3IKYGBgCgpPcGVuYXBpRmlyc3QgdXNlcyBbYG11bHRpX2pzb25gXShodHRwczovL3J1YnlnZW1zLm9yZy9nZW1zL211bHRpX2pzb24pLgoKIyMgUmFjayBNaWRkbGV3YXJlcwoKIyMjIFJlcXVlc3QgdmFsaWRhdGlvbgoKVGhlIHJlcXVlc3QgdmFsaWRhdGlvbiBtaWRkbGV3YXJlIHJldHVybnMgYSA0eHggaWYgdGhlIHJlcXVlc3QgaXMgaW52YWxpZCBvciBub3QgZGVmaW5lZCBpbiB0aGUgQVBJIGRlc2NyaXB0aW9uLiBJdCBhZGRzIGEgcmVxdWVzdCBvYmplY3QgdG8gdGhlIGN1cnJlbnQgUmFjayBlbnZpcm9ubWVudCBhdCBgZW52W09wZW5hcGlGaXJzdDo6UkVRVUVTVF1gIHdpdGggdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBwYXJzZWQgZXhhY2x0eSBhcyBkZXNjcmliZWQgaW4geW91ciBBUEkgZGVzY3JpcHRpb24gcGx1cyBhY2Nlc3MgdG8gbWV0YSBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgQVBJIGRlc2NyaXB0aW9uLiBTZWUgX1tNYW51YWwgdXNlXSgjbWFudWFsLXVzZSlfIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgdGhhdCBvYmplY3QuCgpgYGBydWJ5CnVzZSBPcGVuYXBpRmlyc3Q6Ok1pZGRsZXdhcmVzOjpSZXF1ZXN0VmFsaWRhdGlvbiwgc3BlYzogJ29wZW5hcGkueWFtbCcKYGBgCgojIyMjIE9wdGlvbnMKCnwgTmFtZSAgICAgICAgICAgICAgfCBQb3NzaWJsZSB2YWx1ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYHNwZWM6YCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaGUgcGF0aCB0byB0aGUgc3BlYyBmaWxlIG9yIHNwZWMgbG9hZGVkIHZpYSBgT3BlbmFwaUZpcnN0LmxvYWRgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHJhaXNlX2Vycm9yOmAgICAgfCBgZmFsc2VgIChkZWZhdWx0KSwgYHRydWVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBJZiBzZXQgdG8gdHJ1ZSB0aGUgbWlkZGxld2FyZSByYWlzZXMgYE9wZW5hcGlGaXJzdDo6UmVxdWVzdEludmFsaWRFcnJvcmAgb3IgYE9wZW5hcGlGaXJzdDo6Tm90Rm91bmRFcnJvcmAgaW5zdGVhZCBvZiByZXR1cm5pbmcgNHh4LiB8CnwgYGVycm9yX3Jlc3BvbnNlOmAgfCBgOmRlZmF1bHRgIChkZWZhdWx0KSwgYDpqc29uYXBpYCwgWW91ciBpbXBsZW1lbnRhdGlvbiBvZiBgRXJyb3JSZXNwb25zZWAgb3IgYGZhbHNlYCB0byBkaXNhYmxlIHJlc3BvbmRpbmcgIHwKCiMjIyMgRXJyb3IgcmVzcG9uc2VzCgpvcGVuYXBpX2ZpcnN0IHByb2R1Y2VzIGEgdXNlZnVsIG1hY2hpbmUgcmVhZGFibGUgZXJyb3IgcmVzcG9uc2UgdGhhdCBjYW4gYmUgY3VzdG9taXplZC4KVGhlIGRlZmF1bHQgcmVzcG9uc2UgbG9va3MgbGlrZSB0aGlzLiBTZWUgYWxzbyBbUkZDIDk0NTddKGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM5NDU3KS4KCmBgYGpzb24KaHR0cC1zdGF0dXM6IDQwMApjb250ZW50LXR5cGU6ICJhcHBsaWNhdGlvbi9wcm9ibGVtK2pzb24iCgp7CiAgInRpdGxlIjogIkJhZCBSZXF1ZXN0IEJvZHkiLAogICJzdGF0dXMiOiA0MDAsCiAgImVycm9ycyI6IFsKICAgIHsKICAgICAgIm1lc3NhZ2UiOiAidmFsdWUgYXQgYC9kYXRhL25hbWVgIGlzIG5vdCBhIHN0cmluZyIsCiAgICAgICJwb2ludGVyIjogIi9kYXRhL25hbWUiLAogICAgICAiY29kZSI6ICJzdHJpbmciCiAgICB9LAogICAgewogICAgICAibWVzc2FnZSI6ICJudW1iZXIgYXQgYC9kYXRhL251bWJlck9mTGVnc2AgaXMgbGVzcyB0aGFuOiAyIiwKICAgICAgInBvaW50ZXIiOiAiL2RhdGEvbnVtYmVyT2ZMZWdzIiwKICAgICAgImNvZGUiOiAibWluaW11bSIKICAgIH0sCiAgICB7CiAgICAgICJtZXNzYWdlIjogIm9iamVjdCBhdCBgL2RhdGFgIGlzIG1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydGllczogbWFuZGF0b3J5IiwKICAgICAgInBvaW50ZXIiOiAiL2RhdGEiLAogICAgICAiY29kZSI6ICJyZXF1aXJlZCIKICAgIH0KICBdCn0KYGBgCgpvcGVuYXBpX2ZpcnN0IG9mZmVycyBhIFtKU09OOkFQSV0oaHR0cHM6Ly9qc29uYXBpLm9yZy8pIGVycm9yIHJlc3BvbnNlIGFzIHdlbGw6CgpgYGBydWJ5CnVzZSBPcGVuYXBpRmlyc3Q6Ok1pZGRsZXdhcmVzOjpSZXF1ZXN0VmFsaWRhdGlvbiwgc3BlYzogJ29wZW5hcGkueWFtbCwgZXJyb3JfcmVzcG9uc2U6IDpqc29uYXBpJwpgYGAKCjxkZXRhaWxzPgo8c3VtbWFyeT5TZWUgZGV0YWlscyBvZiBKU09OOkFQSSBlcnJvciByZXNwb25zZTwvc3VtbWFyeT4KCmBgYGpzb24KLy8gaHR0cC1zdGF0dXM6IDQwMAovLyBjb250ZW50LXR5cGU6ICJhcHBsaWNhdGlvbi92bmQuYXBpK2pzb24iCgp7CiAgImVycm9ycyI6IFsKICAgIHsKICAgICAgInN0YXR1cyI6ICI0MDAiLAogICAgICAic291cmNlIjogewogICAgICAgICJwb2ludGVyIjogIi9kYXRhL25hbWUiCiAgICAgIH0sCiAgICAgICJ0aXRsZSI6ICJ2YWx1ZSBhdCBgL2RhdGEvbmFtZWAgaXMgbm90IGEgc3RyaW5nIiwKICAgICAgImNvZGUiOiAic3RyaW5nIgogICAgfSwKICAgIHsKICAgICAgInN0YXR1cyI6ICI0MDAiLAogICAgICAic291cmNlIjogewogICAgICAgICJwb2ludGVyIjogIi9kYXRhL251bWJlck9mTGVncyIKICAgICAgfSwKICAgICAgInRpdGxlIjogIm51bWJlciBhdCBgL2RhdGEvbnVtYmVyT2ZMZWdzYCBpcyBsZXNzIHRoYW46IDIiLAogICAgICAiY29kZSI6ICJtaW5pbXVtIgogICAgfSwKICAgIHsKICAgICAgInN0YXR1cyI6ICI0MDAiLAogICAgICAic291cmNlIjogewogICAgICAgICJwb2ludGVyIjogIi9kYXRhIgogICAgICB9LAogICAgICAidGl0bGUiOiAib2JqZWN0IGF0IGAvZGF0YWAgaXMgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0aWVzOiBtYW5kYXRvcnkiLAogICAgICAiY29kZSI6ICJyZXF1aXJlZCIKICAgIH0KICBdCn0KYGBgCgo8L2RldGFpbHM+CgojIyMjIEN1c3RvbSBlcnJvciByZXNwb25zZXMKCllvdSBjYW4gYnVpbGQgeW91ciBvd24gY3VzdG9tIGVycm9yIHJlc3BvbnNlIHdpdGggYGVycm9yX3Jlc3BvbnNlOiBNeUN1c3RvbUNsYXNzYCB0aGF0IGltcGxlbWVudHMgYE9wZW5hcGlGaXJzdDo6RXJyb3JSZXNwb25zZWAuCllvdSBjYW4gZGVmaW5lIGN1c3RvbSBlcnJvciByZXNwb25zZXMgZ2xvYmFsbHkgYnkgaW5jbHVkaW5nIC8gaW1wbGVtZW50aW5nIGBPcGVuYXBpRmlyc3Q6OkVycm9yUmVzcG9uc2VgIGFuZCByZWdpc3RlciBpdCB2aWEgYE9wZW5hcGlGaXJzdC5yZWdpc3Rlcl9lcnJvcl9yZXNwb25zZShteV9uYW1lLCBNeUN1c3RvbUVycm9yUmVzcG9uc2UpYCBhbmQgc2V0IGBlcnJvcl9yZXNwb25zZTogbXlfbmFtZWAuCgojIyMjIHJlYWRPbmx5IC8gd3JpdGVPbmx5IHByb3BlcnRpZXMKClJlcXVlc3QgdmFsaWRhdGlvbiBmYWlscyBpZiByZXF1ZXN0IGluY2x1ZGVzIGEgcHJvcGVydHkgd2l0aCBgcmVhZE9ubHk6IHRydWVgLgoKUmVzcG9uc2UgdmFsaWRhdGlvbiBmYWlscyBpZiByZXNwb25zZSBib2R5IGluY2x1ZGVzIGEgcHJvcGVydHkgd2l0aCBgd3JpdGVPbmx5OiB0cnVlYC4KCiMjIyBSZXNwb25zZSB2YWxpZGF0aW9uCgpUaGlzIG1pZGRsZXdhcmUgaXMgZXNwZWNpYWxseSB1c2VmdWwgd2hlbiB0ZXN0aW5nLiBJdCByYWlzZXMgYW4gZXJyb3IgYnkgZGVmYXVsdCBpZiB0aGUgcmVzcG9uc2UgaXMgbm90IHZhbGlkLgoKYGBgcnVieQp1c2UgT3BlbmFwaUZpcnN0OjpNaWRkbGV3YXJlczo6UmVzcG9uc2VWYWxpZGF0aW9uLCBzcGVjOiAnb3BlbmFwaS55YW1sJyBpZiBFTlZbJ1JBQ0tfRU5WJ10gPT0gJ3Rlc3QnCmBgYAoKIyMjIyBPcHRpb25zCgp8IE5hbWUgICAgfCBQb3NzaWJsZSB2YWx1ZXMgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCA6LS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYHNwZWM6YCB8ICAgICAgICAgICAgICAgICB8IFRoZSBwYXRoIHRvIHRoZSBzcGVjIGZpbGUgb3Igc3BlYyBsb2FkZWQgdmlhIGBPcGVuYXBpRmlyc3QubG9hZGAgfAp8IGByYWlzZV9lcnJvcjpgICAgIHwgYHRydWVgIChkZWZhdWx0KSwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSWYgc2V0IHRvIHRydWUgdGhlIG1pZGRsZXdhcmUgcmFpc2VzIGBPcGVuYXBpRmlyc3Q6OlJlc3BvbnNlSW52YWxpZEVycm9yYCBvciBgT3BlbmFwaUZpcnN0OjpSZXNvbnNlTm90Rm91bmRFcnJvcmAgaWYgdGhlIHJlc3BvbnNlIGRvZXMgbm90IG1hdGNoIHRoZSBBUEkgZGVzY3JpcHRpb24uIHwKCiMjIFRlc3QgYXNzZXJ0aW9ucwoKb3BlbmFwaV9maXJzdCBzaGlwcyB3aXRoIGEgc2ltcGxlIGJ1dCBwb3dlcmZ1bCBUZXN0IG1vZHVsZSB0byBydW4gcmVxdWVzdCBhbmQgcmVzcG9uc2UgdmFsaWRhdGlvbiBpbiB5b3VyIHRlc3RzIHdpdGhvdXQgdXNpbmcgdGhlIG1pZGRsZXdhcmVzLiBUaGlzIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCByYWNrLXRlc3Qgb3IgUnVieSBvbiBSYWlscyBpbnRlZ3JhdGlvbiB0ZXN0cyBvciByZXF1ZXN0IHNwZWNzLgoKSGVyZSBpcyBob3cgdG8gc2V0IGl0IHVwIGZvciBSYWlscyBpbnRlZ3JhdGlvbiB0ZXN0czoKCmBgYHJ1YnkKIyB0ZXN0X2hlbHBlci5yYgpyZXF1aXJlICdvcGVuYXBpX2ZpcnN0L3Rlc3QnCk9wZW5hcGlGaXJzdDo6VGVzdC5yZWdpc3Rlcignb3BlbmFwaS92MS5vcGVuYXBpLnlhbWwnKQpgYGAKCkluc2lkZSB5b3VyIHRlc3Q6CmBgYHJ1YnkKIyB0ZXN0L2ludGVncmF0aW9uL3RyaXBzX2FwaV90ZXN0LnJiCnJlcXVpcmUgJ3Rlc3RfaGVscGVyJwoKY2xhc3MgVHJpcHNBcGlUZXN0IDwgQWN0aW9uRGlzcGF0Y2g6OkludGVncmF0aW9uVGVzdAogIGluY2x1ZGUgT3BlbmFwaUZpcnN0OjpUZXN0OjpNZXRob2RzCgogIHRlc3QgJ0dFVCAvdHJpcHMnIGRvCiAgICBnZXQgJy90cmlwcycsCiAgICAgICAgcGFyYW1zOiB7IG9yaWdpbjogJ2VmZGJiOWQxLTAyYzItNGJjMy1hZmI3LTY3ODhkODc4MmIxZScsIGRlc3RpbmF0aW9uOiAnYjJlNzgzZTEtYzgyNC00ZDYzLWIzN2EtZDhkNjk4ODYyZjFkJywKICAgICAgICAgICAgICAgICAgZGF0ZTogJzIwMjQtMDctMDJUMDk6MDA6MDBaJyB9CgogICAgYXNzZXJ0X2FwaV9jb25mb3JtKHN0YXR1czogMjAwKQogIGVuZAplbmQKYGBgCgojIyBDb25maWd1cmF0aW9uCgpZb3UgY2FuIGNvbmZpZ3VyZSBkZWZhdWx0IG9wdGlvbnMgZ2xvYmFsbHk6CgpgYGBydWJ5Ck9wZW5hcGlGaXJzdC5jb25maWd1cmUgZG8gfGNvbmZpZ3wKICAjIFNwZWNpZnkgd2hpY2ggcGx1Z2luIGlzIHVzZWQgdG8gcmVuZGVyIGVycm9yIHJlc3BvbnNlcyByZXR1cm5lZCBieSB0aGUgcmVxdWVzdCB2YWxpZGF0aW9uIG1pZGRsZXdhcmUgKGRlZmF1bHRzIHRvIDpkZWZhdWx0KQogIGNvbmZpZy5yZXF1ZXN0X3ZhbGlkYXRpb25fZXJyb3JfcmVzcG9uc2UgPSA6anNvbmFwaQogICMgQ29uZmlndXJlIGlmIHRoZSByZXF1ZXN0IHZhbGlkYXRpb24gbWlkZGxld2FyZSBzaG91bGQgcmFpc2UgYW4gZXhjZXB0aW9uIChkZWZhdWx0cyB0byBmYWxzZSkKICBjb25maWcucmVxdWVzdF92YWxpZGF0aW9uX3JhaXNlX2Vycm9yID0gdHJ1ZQplbmQKYGBgCgpvciBjb25maWd1cmUgcGVyIGluc3RhbmNlOgoKYGBgcnVieQpPcGVuYXBpRmlyc3QubG9hZCgnb3BlbmFwaS55YW1sJykgZG8gfGNvbmZpZ3wKICBjb25maWcucmVxdWVzdF92YWxpZGF0aW9uX2Vycm9yX3Jlc3BvbnNlID0gOmpzb25hcGkKZW5kCmBgYAoKIyMgSG9va3MKCllvdSBjYW4gaW50ZWdyYXRlIHlvdXIgY29kZSBhdCBjZXJ0YWluIHBvaW50cyBkdXJpbmcgcmVxdWVzdC9yZXNwb25zZSB2YWxpZGF0aW9uIHZpYSBob29rcy4KCkF2YWlsYWJsZSBob29rczoKCi0gYGFmdGVyX3JlcXVlc3RfdmFsaWRhdGlvbmAKLSBgYWZ0ZXJfcmVzcG9uc2VfdmFsaWRhdGlvbmAKLSBgYWZ0ZXJfcmVxdWVzdF9wYXJhbWV0ZXJfcHJvcGVydHlfdmFsaWRhdGlvbmAKLSBgYWZ0ZXJfcmVxdWVzdF9ib2R5X3Byb3BlcnR5X3ZhbGlkYXRpb25gCgpTZXR1cCBwZXIgcGVyIGluc3RhbmNlOgoKYGBgcnVieQpPcGVuYXBpRmlyc3QubG9hZCgnb3BlbmFwaS55YW1sJykgZG8gfGNvbmZpZ3wKICBjb25maWcuYWZ0ZXJfcmVxdWVzdF92YWxpZGF0aW9uIGRvIHx2YWxpZGF0ZWRfcmVxdWVzdHwKICAgIHZhbGlkYXRlZF9yZXF1ZXN0LnZhbGlkPyAjID0+IHRydWUgLyBmYWxzZQogIGVuZAogIGNvbmZpZy5hZnRlcl9yZXNwb25zZV92YWxpZGF0aW9uIGRvIHx2YWxpZGF0ZWRfcmVzcG9uc2UsIHJlcXVlc3R8CiAgICBpZiB2YWxpZGF0ZWRfcmVzcG9uc2UuaW52YWxpZD8KICAgICAgd2FybiAiI3tyZXF1ZXN0LnJlcXVlc3RfbWV0aG9kfSAje3JlcXVlc3QucGF0aH06ICN7dmFsaWRhdGVkX3Jlc3BvbnNlLmVycm9yLm1lc3NhZ2V9IgogICAgZW5kCiAgZW5kCmVuZApgYGAKClNldHVwIGdsb2JhbGx5OgoKYGBgcnVieQpPcGVuYXBpRmlyc3QuY29uZmlndXJlIGRvIHxjb25maWd8CiAgY29uZmlnLmFmdGVyX3JlcXVlc3RfcGFyYW1ldGVyX3Byb3BlcnR5X3ZhbGlkYXRpb24gZG8gfGRhdGEsIHByb3BlcnR5LCBwcm9wZXJ0eV9zY2hlbWF8CiAgICBkYXRhW3Byb3BlcnR5XSA9IERhdGUuaXNvODYwMShkYXRhW3Byb3BlcnR5XSkgaWYgcHJvcGVydF9zY2hlbWFbJ2Zvcm1hdCddID09ICdkYXRlJwogIGVuZAplbmQKYGBgCgojIyBGcmFtZXdvcmsgaW50ZWdyYXRpb24KClVzaW5nIHJhY2sgbWlkZGxld2FyZXMgaXMgc3VwcG9ydGVkIGluIHByb2JhYmx5IGFsbCBSdWJ5IHdlYiBmcmFtZXdvcmtzLgpJZiB5b3UgYXJlIHVzaW5nIFJ1Ynkgb24gUmFpbHMgZm9yIGV4YW1wbGUsIHlvdSBjYW4gYWRkIHRoZSByZXF1ZXN0IHZhbGlkYXRpb24gbWlkZGxld2FyZSBnbG9iYWxseSBpbiBgY29uZmlnL2FwcGxpY2F0aW9uLnJiYCBvciBpbnNpZGUgc3BlY2lmaWMgY29udHJvbGxlcnMuCgpXaGVuIHJ1bm5pbmcgaW50ZWdyYXRpb24gdGVzdHMgKG9yIHJlcXVlc3Qgc3BlY3Mgd2hlbiB1c2luZyByc3BlYyksIGl0IG1ha2VzIHNlbnNlIHRvIGFkZCB0aGUgcmVzcG9uc2UgdmFsaWRhdGlvbiBtaWRkbGV3YXJlIHRvIGBjb25maWcvZW52aXJvbm1lbnRzL3Rlc3QucmJgOgoKYGBgcnVieQpjb25maWcubWlkZGxld2FyZS51c2UgT3BlbmFwaUZpcnN0OjpNaWRkbGV3YXJlczo6UmVzcG9uc2VWYWxpZGF0aW9uLAogIHNwZWM6ICdhcGkvb3BlbmFwaS55YW1sJwpgYGAKClRoYXQgd2F5IHlvdSBkb24ndCBoYXZlIHRvIGNhbGwgc3BlY2lmaWMgdGVzdCBhc3NlcnRpb25zIHRvIG1ha2Ugc3VyZSB5b3VyIEFQSSBtYXRjaGVzIHRoZSBPcGVuQVBJIGRvY3VtZW50LgpUaGVyZSBpcyBubyBuZWVkIHRvIHJ1biByZXNwb25zZSB2YWxpZGF0aW9uIG9uIHByb2R1Y3Rpb24gaWYgeW91ciB0ZXN0IGNvdmVyYWdlIGlzIGRlY2VudC4KCiMjIEFsdGVybmF0aXZlcwoKVGhpcyBnZW0gd2FzIGluc3BpcmVkIGJ5IFtjb21taXR0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2ludGVyYWdlbnQvY29tbWl0dGVlKSAoUnVieSkgYW5kIFtDb25uZXhpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zcGVjLWZpcnN0L2Nvbm5leGlvbikgKFB5dGhvbikuCkhlcmUgaXMgYSBbZmVhdHVyZSBjb21wYXJpc29uIGJldHdlZW4gb3BlbmFwaV9maXJzdCBhbmQgY29tbWl0dGVlXShodHRwczovL2dpc3QuZ2l0aHViLmNvbS9haHgvMTUzOGMzMWYwNjUyZjQ1OTg2MTcxM2I1MjU5ZTM2NmEpLgoKIyMgRGV2ZWxvcG1lbnQKClJ1biBgYmluL3NldHVwYCB0byBpbnN0YWxsIGRlcGVuZGVuY2llcy4KClNlZSBgYnVuZGxlIGV4ZWMgcmFrZWAgdG8gcnVuIHRoZSBsaW50ZXIgYW5kIHRoZSB0ZXN0cy4KClJ1biBgYnVuZGxlIGV4ZWMgcnNwZWNgIHRvIHJ1biB0aGUgdGVzdHMgb25seS4KCiMjIyBCZW5jaG1hcmtzCgpbUmVzdWx0c10oaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vYWh4L2U2ZmZjZWQ1OGJkMmU4ZDViYWZmYjJmNGQyYzFmODIzKQoKUnVuIGJlbmNobWFya3M6CgpgYGBzaApjZCBiZW5jaG1hcmtzCmJ1bmRsZQpidW5kbGUgZXhlYyBydWJ5IGJlbmNobWFya3MucmIKYGBgCgojIyMgQ29udHJpYnV0aW5nCgpJZiB5b3UgaGF2ZSBhIHF1ZXN0aW9uIG9yIGFuIGlkZWEgb3IgZm91bmQgYSBidWcgZG9uJ3QgaGVzaXRhdGUgdG8gW2NyZWF0ZSBhbiBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2FoeC9vcGVuYXBpX2ZpcnN0L2lzc3Vlcykgb3IgW3N0YXJ0IGEgZGlzY3Vzc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL2FoeC9vcGVuYXBpX2ZpcnN0L2Rpc2N1c3Npb25zKS4KClB1bGwgcmVxdWVzdHMgYXJlIHZlcnkgd2VsY29tZSBhcyB3ZWxsLCBvZiBjb3Vyc2UuIEZlZWwgZnJlZSB0byBjcmVhdGUgYSAiZHJhZnQiIHB1bGwgcmVxdWVzdCBlYXJseSBvbiwgZXZlbiBpZiB5b3VyIGNoYW5nZSBpcyBzdGlsbCB3b3JrIGluIHByb2dyZXNzLiDwn6SXCg== readmeEtag: '"e7f854c3c6c201f75101297446f2f9a25bcb0442"' readmeLastModified: Sat, 03 Aug 2024 22:05:18 GMT repositoryId: 171639126 description: >- openapi_first is a Ruby gem for request / response validation and contract-testing against an OpenAPI API description. It makes APIFirst easy and reliable. created: '2019-02-20T09:11:47Z' updated: '2024-08-26T12:14:14Z' language: Ruby archived: false stars: 105 watchers: 6 forks: 12 owner: ahx logo: https://avatars.githubusercontent.com/u/8669?v=4 license: MIT repoEtag: '"b96e0e39ef6c94b78d4d3dd1088da7ca6e234ff0bf1eee18f97ebdf038c34c39"' repoLastModified: Mon, 26 Aug 2024 12:14:14 GMT foundInMaster: true category: Data Validators id: d8781910209a542c2f846aa8c740baf2 name: openapi_first language: Ruby source_description: >- It validates requests and responses against your API description using rack middlewares or a low-level interface. It gives you access to request parameters that are parsed exactly as described in your API description and produces useful customizable error responses if request validation fails. v3_1: true - source: https://openapi.tools/ name: openVALIDATION category: - Description Validators - Data Validators - Parsers repository: https://github.com/openvalidation/openvalidation-openapi link: https://docs.openvalidation.io/openapi/openapi-specification language: Java source_description: >- Allows complex validation rules to be specified in openAPI spec files using natural language. v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgU3RhdHVzXShodHRwczovL2Rldi5henVyZS5jb20vdmFsaWRhcmlhL29wZW52YWxpZGF0aW9uL19hcGlzL2J1aWxkL3N0YXR1cy9vcGVuVkFMSURBVElPTiUyME9wZW5BUEkvb3BlblZBTElEQVRJT04lMjBPcGVuQVBJJTIwbWFzdGVyP2JyYW5jaE5hbWU9bWFzdGVyKV0oaHR0cHM6Ly9kZXYuYXp1cmUuY29tL3ZhbGlkYXJpYS9vcGVudmFsaWRhdGlvbi9fYnVpbGQvbGF0ZXN0P2RlZmluaXRpb25JZD0zJmJyYW5jaE5hbWU9bWFzdGVyKQohW0F6dXJlIERldk9wcyB0ZXN0cyAoY29tcGFjdCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYXp1cmUtZGV2b3BzL3Rlc3RzL3ZhbGlkYXJpYS9vcGVudmFsaWRhdGlvbi8zP2NvbXBhY3RfbWVzc2FnZSkKWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3YvaW8ub3BlbnZhbGlkYXRpb24vb3BlbnZhbGlkYXRpb24tb3BlbmFwaS1nZW5lcmF0b3IpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9Zzppby5vcGVudmFsaWRhdGlvbikKWyFbRm9sbG93IHVzIG9uIFR3aXR0ZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHdpdHRlci9mb2xsb3cvb3BlblZBTElEQVRJT04/c3R5bGU9c29jaWFsKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vcGVuVkFMSURBVElPTikKCgojIE9wZW5BUEkgR2VuZXJhdG9yIGZvciBvcGVuVkFMSURBVElPTgoKVGhpcyBwcm9qZWN0IHByb3ZpZGVzIGFuIG9wZW5hcGktZ2VuZXJhdG9yIGludGVncmF0aW9uIHRvIGdlbmVyYXRlIHNlcnZpY2VzIHdpdGggdmFsaWRhdGlvbiBsb2dpYyBwcm92aWRlZCBieSBvcGVuVkFMSURBVElPTi4KCiMjIFdoYXQncyBPcGVuQVBJClRoZSBnb2FsIG9mIE9wZW5BUEkgaXMgdG8gZGVmaW5lIGEgc3RhbmRhcmQsIGxhbmd1YWdlLWFnbm9zdGljIGludGVyZmFjZSB0byBSRVNUIEFQSXMgd2hpY2ggYWxsb3dzIGJvdGggaHVtYW5zIGFuZCBjb21wdXRlcnMgdG8gZGlzY292ZXIgYW5kIHVuZGVyc3RhbmQgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgc2VydmljZSB3aXRob3V0IGFjY2VzcyB0byBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbiwgb3IgdGhyb3VnaCBuZXR3b3JrIHRyYWZmaWMgaW5zcGVjdGlvbi4KV2hlbiBwcm9wZXJseSBkZXNjcmliZWQgd2l0aCBPcGVuQVBJLCBhIGNvbnN1bWVyIGNhbiB1bmRlcnN0YW5kIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSByZW1vdGUgc2VydmljZSB3aXRoIGEgbWluaW1hbCBhbW91bnQgb2YgaW1wbGVtZW50YXRpb24gbG9naWMuClNpbWlsYXIgdG8gd2hhdCBpbnRlcmZhY2VzIGhhdmUgZG9uZSBmb3IgbG93ZXItbGV2ZWwgcHJvZ3JhbW1pbmcsIE9wZW5BUEkgcmVtb3ZlcyB0aGUgZ3Vlc3N3b3JrIGluIGNhbGxpbmcgdGhlIHNlcnZpY2UuCgpDaGVjayBvdXQgW09wZW5BUEktU3BlY10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBPcGVuQVBJIHByb2plY3QsIGluY2x1ZGluZyBhZGRpdGlvbmFsIGxpYnJhcmllcyB3aXRoIHN1cHBvcnQgZm9yIG90aGVyIGxhbmd1YWdlcyBhbmQgbW9yZS4gCgojIyBXaGF0J3Mgb3BlblZBTElEQVRJT04KCkNoZWNrIG91dCBbb3BlblZBTElEQVRJT05dKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVudmFsaWRhdGlvbi9vcGVudmFsaWRhdGlvbikgdG8gbGVhcm4gYWJvdXQgaHVtYW4gcmVhZGFibGUgdmFsaWRhdGlvbiBydWxlcyBmb3Igc29mdHdhcmUgc29sdXRpb25zLgoKIyMgb3BlblZBTElEQVRJT04gT3BlbkFQSSBDb2RlZ2VuIERvY3VtZW50YXRpb24KCltEb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Mub3BlbnZhbGlkYXRpb24uaW8vb3BlbmFwaS9vcGVuYXBpLXNwZWNpZmljYXRpb24pCgpbVHV0b3JpYWxdKGh0dHBzOi8vZG9jcy5vcGVudmFsaWRhdGlvbi5pby9vcGVuYXBpL29wZW5hcGktdHV0b3JpYWwpCgojIyBIb3cgZG8gSSB1c2UgdGhpcz8KCkRvd25sb2FkIHRoZSBbb3BlblZBTElEQVRJT04gT3BlbkFQSSBnZW5lcmF0b3IgQ0xJXShodHRwczovL2Rvd25sb2FkYXJjaGl2ZS5ibG9iLmNvcmUud2luZG93cy5uZXQvb3BlbnZhbGlkYXRpb24tb3BlbmFwaS1nZW5lcmF0b3Ivb3Ytb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphcikgKHJlcXVpcmVzIHRoZSBKYXZhIFNFIDggcnVudGltZSBlbnZpcm9ubWVudCkuClVzZSBgb3Ytb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphcmAgYXMgYSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciB0aGUgYG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXJgCgpOb3cgeW91IGNhbiB1c2Ugb3BlblZBTElEQVRJT04gcnVsZXMgaW4geW91ciBzZXJ2aWNlIGNvbnRyYWN0OgpgYGB5YW1sCnBhdGhzOgogIC86IAogICBwb3N0OgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9hcHBsaWNhbnQnCiAgICAgICAgICAgIHgtb3YtcnVsZXM6CiAgICAgICAgICAgICAgY3VsdHVyZTogZW4KICAgICAgICAgICAgICBydWxlOiB8CiAgICAgICAgICAgICAgICB0aGUgbG9jYXRpb24gb2YgdGhlIGFwcGxpY2FudCBtdXN0IGJlIERvcnRtdW5kCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdWNjZXNzCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIGFwcGxpY2FudDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGFnZToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBsb2NhdGlvbjoKICAgICAgICAgIHR5cGU6IHN0cmluZwpgYGAKKihGb3IgZnVydGhlciBkZXRhaWxzIGNoZWNrIHRoZSBhYm92ZS1tZW50aW9uZWQgZG9jdW1lbnRhdGlvbiBvciB0aGUgb3BlblZBTElEQVRJT04gcHJvamVjdCBpdHNlbGYuKSoKCkFsdGVybmF0aXZlbHksIHRoZSBgb3BlbnZhbGlkYXRpb24tb3BlbmFwaS1nZW5lcmF0b3JgIGphciBpdHNlbGYgY2FuIGJlIGNhbGxlZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBPcGVuQVBJIGdlbmVyYXRvci4KCkZvciBtYWMvbGludXg6CmBgYApqYXZhIC1jcCAvcGF0aC90by9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyOi9wYXRoL3RvL29wZW52YWxpZGF0aW9uLW9wZW5hcGktZ2VuZXJhdG9yLmphciBvcmcub3BlbmFwaXRvb2xzLmNvZGVnZW4uT3BlbkFQSUdlbmVyYXRvciBnZW5lcmF0ZSAtZyBvdi1qYXZhLXNwcmluZy1zZXJ2ZXIgLWkgL3BhdGgvdG8vb3BlbmFwaS55YW1sIC1vIC4vdGVzdApgYGAKKERvIG5vdCBmb3JnZXQgdG8gcmVwbGFjZSB0aGUgdmFsdWVzIGAvcGF0aC90by9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyYCwgYC9wYXRoL3RvL29wZW52YWxpZGF0aW9uLW9wZW5hcGktZ2VuZXJhdG9yLmphcmAgYW5kIGAvcGF0aC90by9vcGVuYXBpLnlhbWxgIGluIHRoZSBwcmV2aW91cyBjb21tYW5kKQoKRm9yIFdpbmRvd3MgdXNlcnMsIHlvdSB3aWxsIG5lZWQgdG8gdXNlIGA7YCBpbnN0ZWFkIG9mIGA6YCBpbiB0aGUgY2xhc3NwYXRoLCBlLmcuCmBgYApqYXZhIC1jcCAvcGF0aC90by9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyOy9wYXRoL3RvL29wZW52YWxpZGF0aW9uLW9wZW5hcGktZ2VuZXJhdG9yLmphciBvcmcub3BlbmFwaXRvb2xzLmNvZGVnZW4uT3BlbkFQSUdlbmVyYXRvciBnZW5lcmF0ZSAtZyBvdi1qYXZhLXNwcmluZy1zZXJ2ZXIgLWkgL3BhdGgvdG8vb3BlbmFwaS55YW1sIC1vIC4vdGVzdApgYGAKCk9yIHVzZSBvcGVuVkFMSURBVElPTiBHZW5lcmF0b3IgYXMgTWF2ZW4gUGx1Z2luOgpgYGB4bWwKICAgIDxidWlsZD4KICAgICAgICA8cGx1Z2lucz4KICAgICAgICAgICAgPHBsdWdpbj4KICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAgICAgICAgICAgICA8dmVyc2lvbj4zLjMuNDwvdmVyc2lvbj4KICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPgogICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPmdlbmVyYXRlPC9nb2FsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFNwZWM+JHtwcm9qZWN0LmJhc2VkaXJ9L215LnNwZWMueWFtbDwvaW5wdXRTcGVjPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdlbmVyYXRvck5hbWU+b3YtamF2YS1ydWxlczwvZ2VuZXJhdG9yTmFtZT4gPCEtIHJ1bGVzIG9ubHkgZ2VuZXJhdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWdPcHRpb25zPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnZva2VyUGFja2FnZT5teS5jdXN0b20ucGFja2FnZTwvaW52b2tlclBhY2thZ2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGVsUGFja2FnZT5teS5jdXN0b20ucGFja2FnZS5tb2RlbDwvbW9kZWxQYWNrYWdlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWdPcHRpb25zPgogICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CiAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CiAgICAgICAgICAgICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5PgogICAgICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5pby5vcGVudmFsaWRhdGlvbjwvZ3JvdXBJZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+b3BlbnZhbGlkYXRpb24tb3BlbmFwaS1nZW5lcmF0b3I8L2FydGlmYWN0SWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjAuMC4xPC92ZXJzaW9uPgogICAgICAgICAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4KICAgICAgICAgICAgICAgIDwvZGVwZW5kZW5jaWVzPgogICAgICAgICAgICA8L3BsdWdpbj4KICAgICAgICA8L3BsdWdpbnM+CiAgICA8L2J1aWxkPgpgYGAKCgojIyBHZXR0aW5nIGludm9sdmVkCgpQbGVhc2UgcmVmZXIgdG8gb3VyIFtjb250cmlidXRpb24gZ3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKS4KCiMjIENvbnRhY3QKCllvdSBjYW4gd3JpdGUgYW4gW0UtTWFpbF0obWFpbHRvOnZhbGlkYXJpYUBvcGVudmFsaWRhdGlvbi5pbykgb3IgbWVudGlvbiBvdXIgdHdpdHRlciBhY2NvdW50IFtAb3BlblZBTElEQVRJT05dKGh0dHBzOi8vdHdpdHRlci5jb20vb3BlbnZhbGlkYXRpb24pLgo= readmeEtag: '"ff79107deef69e96cf5810a882930e2902173b98"' readmeLastModified: Thu, 05 Mar 2020 16:36:31 GMT repositoryId: 204974336 description: >- Generate OpenAPI service stubs with complete validation layer using this openVALIDATION adapter. created: '2019-08-28T16:18:50Z' updated: '2024-01-23T16:11:18Z' language: Java archived: false stars: 4 watchers: 3 forks: 2 owner: openvalidation logo: https://avatars.githubusercontent.com/u/50744669?v=4 license: Apache-2.0 repoEtag: '"6b08fe0bedd1368834f79773629719b440459bfe7db2a9415b6d339670bb8ab7"' repoLastModified: Tue, 23 Jan 2024 16:11:18 GMT foundInMaster: true id: 7a685d5b3cc00e5c26420228fb5f8f00 - source: - https://openapi.tools/ - openapi3 tags name: swagger-parser homepage: https://github.com/swagger-api/swagger-parser language: Java source_description: Swagger Parser reads OpenAPI definitions into current Java POJOs. category: Parsers repository: https://github.com/swagger-api/swagger-parser v2: true v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIFBhcnNlciA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1ctbG9nby1jbHIucG5nIiBoZWlnaHQ9IjUwIiBhbGlnbj0icmlnaHQiPgoKKipOT1RFOioqIElmIHlvdSdyZSBsb29raW5nIGZvciBgc3dhZ2dlci1wYXJzZXJgIDEuWCBhbmQgT3BlbkFQSSAyLjAsIHBsZWFzZSByZWZlciB0byBbdjEgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wYXJzZXIvdHJlZS92MSkKCioqTk9URToqKiBTaW5jZSB2ZXJzaW9uIDIuMS4wIFN3YWdnZXIgUGFyc2VyIHN1cHBvcnRzIE9wZW5BUEkgMy4xOyBzZWUgW3RoaXMgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS93aWtpL1N3YWdnZXItMi5YLS0tT3BlbkFQSS0zLjEpIGZvciBkZXRhaWxzCgohW0J1aWxkIE1hc3RlciAtIEphdmEgMTEsIDE0IGFuZCAxN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItcGFyc2VyL3dvcmtmbG93cy9CdWlsZCUyMFRlc3QlMjBEZXBsb3klMjBtYXN0ZXIvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpCgojIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW092ZXJ2aWV3XSgjb3ZlcnZpZXcpCiAgLSBbVGFibGUgb2YgQ29udGVudHNdKCN0YWJsZS1vZi1jb250ZW50cykKICAtIFtVc2FnZV0oI3VzYWdlKQogIC0gW0FkZGluZyB0byB5b3VyIHByb2plY3RdKCNhZGRpbmctdG8teW91ci1wcm9qZWN0KQogICAgLSBbUHJlcmVxdWlzaXRlc10oI3ByZXJlcXVpc2l0ZXMpCiAgLSBbQXV0aGVudGljYXRpb25dKCNhdXRoZW50aWNhdGlvbikgIAogIC0gW09wdGlvbnNdKCNvcHRpb25zKQogICAgLSBbUmVzb2x2ZV0oIzEtcmVzb2x2ZSkKICAgIC0gW1Jlc29sdmVGdWxseV0oIzItcmVzb2x2ZWZ1bGx5KQogICAgLSBbRmxhdHRlbl0oIzMtZmxhdHRlbikKICAgIC0gW1Jlc29sdmVDb21iaW5hdG9yc10oIzQtcmVzb2x2ZWNvbWJpbmF0b3JzKQogIC0gW0V4dGVuc2lvbnNdKCNleHRlbnNpb25zKQogIC0gW09wZW5BUEkgMy4xIFN1cHBvcnRdKCNvcGVuYXBpLTMxLXN1cHBvcnQpCiAgLSBbTGljZW5zZV0oI2xpY2Vuc2UpCiAgIAojIyBPdmVydmlldyAKClRoaXMgaXMgdGhlIFN3YWdnZXIgUGFyc2VyIHByb2plY3QsIHdoaWNoIHBhcnNlcyBPcGVuQVBJIGRlZmluaXRpb25zIGluIEpTT04gb3IgWUFNTCBmb3JtYXQgaW50byBbc3dhZ2dlci1jb3JlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlKSByZXByZXNlbnRhdGlvbiBhcyBbSmF2YSBQT0pPXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL2Jsb2IvbWFzdGVyL21vZHVsZXMvc3dhZ2dlci1tb2RlbHMvc3JjL21haW4vamF2YS9pby9zd2FnZ2VyL3YzL29hcy9tb2RlbHMvT3BlbkFQSS5qYXZhI0wzNiksIHJldHVybmluZyBhbnkgdmFsaWRhdGlvbiB3YXJuaW5ncy9lcnJvcnMuICAKCkl0IGFsc28gcHJvdmlkZXMgYSBzaW1wbGUgZnJhbWV3b3JrIHRvIGFkZCBhZGRpdGlvbmFsIGNvbnZlcnRlcnMgZnJvbSBkaWZmZXJlbnQgZm9ybWF0cyBpbnRvIHRoZSBTd2FnZ2VyIG9iamVjdHMsIG1ha2luZyB0aGUgZW50aXJlIHRvb2xjaGFpbiBhdmFpbGFibGUuCgoKIyMjIFVzYWdlClVzaW5nIHRoZSBTd2FnZ2VyIFBhcnNlciBpcyBzaW1wbGUuICBPbmNlIGluY2x1ZGVkIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiByZWFkIGEgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGZyb20gYW55IGxvY2F0aW9uOgoKYGBgamF2YQppbXBvcnQgaW8uc3dhZ2dlci5wYXJzZXIuT3BlbkFQSVBhcnNlcjsKaW1wb3J0IGlvLnN3YWdnZXIudjMucGFyc2VyLk9wZW5BUElWM1BhcnNlcjsKaW1wb3J0IGlvLnN3YWdnZXIudjMucGFyc2VyLmNvcmUubW9kZWxzLlN3YWdnZXJQYXJzZVJlc3VsdDsKaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLm1vZGVscy5PcGVuQVBJOwoKLy8gLi4uIHlvdXIgY29kZQoKICAvLyBwYXJzZSBhIHN3YWdnZXIgZGVzY3JpcHRpb24gZnJvbSB0aGUgcGV0c3RvcmUgYW5kIGdldCB0aGUgcmVzdWx0CiAgU3dhZ2dlclBhcnNlUmVzdWx0IHJlc3VsdCA9IG5ldyBPcGVuQVBJUGFyc2VyKCkucmVhZExvY2F0aW9uKCJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24iLCBudWxsLCBudWxsKTsKICAKICAvLyBvciBmcm9tIGEgZmlsZQogIC8vICAgU3dhZ2dlclBhcnNlUmVzdWx0IHJlc3VsdCA9IG5ldyBPcGVuQVBJUGFyc2VyKCkucmVhZExvY2F0aW9uKCIuL3BhdGgvdG8vb3BlbmFwaS55YW1sIiwgbnVsbCwgbnVsbCk7CiAgCiAgLy8gdGhlIHBhcnNlZCBQT0pPCiAgT3BlbkFQSSBvcGVuQVBJID0gcmVzdWx0LmdldE9wZW5BUEkoKTsKICAKICBpZiAocmVzdWx0LmdldE1lc3NhZ2VzKCkgIT0gbnVsbCkgcmVzdWx0LmdldE1lc3NhZ2VzKCkuZm9yRWFjaChTeXN0ZW0uZXJyOjpwcmludGxuKTsgLy8gdmFsaWRhdGlvbiBlcnJvcnMgYW5kIHdhcm5pbmdzCiAgCiAgaWYgKG9wZW5BUEkgIT0gbnVsbCkgewogICAgLi4uCiAgfQogIApgYGAKCm9yIGZyb20gYSBzdHJpbmc6CgpgYGBqYXZhCmltcG9ydCBpby5zd2FnZ2VyLnBhcnNlci5PcGVuQVBJUGFyc2VyOwppbXBvcnQgaW8uc3dhZ2dlci52My5wYXJzZXIuT3BlbkFQSVYzUGFyc2VyOwppbXBvcnQgaW8uc3dhZ2dlci52My5wYXJzZXIuY29yZS5tb2RlbHMuU3dhZ2dlclBhcnNlUmVzdWx0OwppbXBvcnQgaW8uc3dhZ2dlci52My5vYXMubW9kZWxzLk9wZW5BUEk7CgovLyAuLi4geW91ciBjb2RlCgogIC8vIHBhcnNlIGEgc3dhZ2dlciBkZXNjcmlwdGlvbiBmcm9tIHRoZSBwZXRzdG9yZSBhbmQgZ2V0IHRoZSByZXN1bHQKICBTd2FnZ2VyUGFyc2VSZXN1bHQgcmVzdWx0ID0gbmV3IE9wZW5BUElQYXJzZXIoKS5yZWFkQ29udGVudHMoImh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbiIsIG51bGwsIG51bGwpOwogIAogIC8vIG9yIGZyb20gYSBmaWxlCiAgLy8gICBTd2FnZ2VyUGFyc2VSZXN1bHQgcmVzdWx0ID0gbmV3IE9wZW5BUElQYXJzZXIoKS5yZWFkQ29udGVudHMoIi4vcGF0aC90by9vcGVuYXBpLnlhbWwiLCBudWxsLCBudWxsKTsKICAKICAvLyB0aGUgcGFyc2VkIFBPSk8KICBPcGVuQVBJIG9wZW5BUEkgPSByZXN1bHQuZ2V0T3BlbkFQSSgpOwogIAogIGlmIChyZXN1bHQuZ2V0TWVzc2FnZXMoKSAhPSBudWxsKSByZXN1bHQuZ2V0TWVzc2FnZXMoKS5mb3JFYWNoKFN5c3RlbS5lcnI6OnByaW50bG4pOyAvLyB2YWxpZGF0aW9uIGVycm9ycyBhbmQgd2FybmluZ3MKICAKICBpZiAob3BlbkFQSSAhPSBudWxsKSB7CiAgICAuLi4KICB9CiAgCmBgYAoKSWYgeW91IGFyZSBwcm92aWRpbmcgYSBTd2FnZ2VyL09wZW5BUEkgMi4wIGRvY3VtZW50IHRvIHRoZSBwYXJzZXIgLCBlLmcuOgoKYGBgamF2YQpTd2FnZ2VyUGFyc2VSZXN1bHQgcmVzdWx0ID0gbmV3IE9wZW5BUElQYXJzZXIoKS5yZWFkQ29udGVudHMoIi4vcGF0aC90by9zd2FnZ2VyLnlhbWwiLCBudWxsLCBudWxsKTsKYGBgCgp0aGUgU3dhZ2dlci9PcGVuQVBJIDIuMCBkb2N1bWVudCB3aWxsIGJlIGZpcnN0IGNvbnZlcnRlZCBpbnRvIGEgY29tcGFyYWJsZSBPcGVuQVBJIDMuMCBvbmUuCgpZb3UgY2FuIGFsc28gZGlyZWN0bHkgdXNlIGBPcGVuQVBJVjNQYXJzZXJgIHdoaWNoIG9ubHkgaGFuZGxlcyBPcGVuQVBJIDMuMCBkb2N1bWVudHMsIGFuZCBwcm92aWRlcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0byBnZXQgZGlyZWN0bHkgdGhlIHBhcnNlZCBgT3BlbkFQSSBvYmplY3Q6CgpgYGBqYXZhCmltcG9ydCBpby5zd2FnZ2VyLnYzLnBhcnNlci5PcGVuQVBJVjNQYXJzZXI7CmltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5tb2RlbHMuT3BlbkFQSTsKCi8vIC4uLiB5b3VyIGNvZGUKCiAgLy8gcmVhZCBhIHN3YWdnZXIgZGVzY3JpcHRpb24gZnJvbSB0aGUgcGV0c3RvcmUKICAgIAogIE9wZW5BUEkgb3BlbkFQSSA9IG5ldyBPcGVuQVBJVjNQYXJzZXIoKS5yZWFkKCJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24iKTsKICAKYGBgCgojIyMgQWRkaW5nIHRvIHlvdXIgcHJvamVjdApZb3UgY2FuIGluY2x1ZGUgdGhpcyBsaWJyYXJ5IGZyb20gU29uYXR5cGUgT1NTIGZvciBTTkFQU0hPVFMsIG9yIE1hdmVuIGNlbnRyYWwgZm9yIHJlbGVhc2VzLiAgSW4geW91ciBkZXBlbmRlbmNpZXM6CgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgPGdyb3VwSWQ+aW8uc3dhZ2dlci5wYXJzZXIudjM8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+c3dhZ2dlci1wYXJzZXI8L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+Mi4xLjIyPC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYAoKIyMjIyBQcmVyZXF1aXNpdGVzCllvdSBuZWVkIHRoZSBmb2xsb3dpbmcgaW5zdGFsbGVkIGFuZCBhdmFpbGFibGUgaW4geW91ciAkUEFUSDoKCiogSmF2YSAxMQoqIFtBcGFjaGUgbWF2ZW4gMy54XShodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy8pCgpBZnRlciBjbG9uaW5nIHRoZSBwcm9qZWN0LCB5b3UgY2FuIGJ1aWxkIGl0IGZyb20gc291cmNlIHdpdGggdGhpcyBjb21tYW5kOgoKYGBgCm12biBwYWNrYWdlCmBgYAoKIyMjIEF1dGhlbnRpY2F0aW9uCgpJZiB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiBpcyBwcm90ZWN0ZWQsIHlvdSBjYW4gcGFzcyBoZWFkZXJzIGluIHRoZSByZXF1ZXN0OgpgYGBqYXZhCmltcG9ydCBpby5zd2FnZ2VyLnYzLnBhcnNlci5jb3JlLm1vZGVscy5BdXRob3JpemF0aW9uVmFsdWU7CgovLyAuLi4geW91ciBjb2RlCgogIC8vIGJ1aWxkIGEgYXV0aG9yaXphdGlvbiB2YWx1ZQogIEF1dGhvcml6YXRpb25WYWx1ZSBteVNwZWNpYWxIZWFkZXIgPSBuZXcgQXV0aG9yaXphdGlvblZhbHVlKCkKICAgIC5rZXlOYW1lKCJ4LXNwZWNpYWwtYWNjZXNzIikgIC8vICB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yaXphdGlvbiB0byBwYXNzCiAgICAudmFsdWUoImktYW0tc3BlY2lhbCIpICAgICAgICAvLyAgdGhlIHZhbHVlIG9mIHRoZSBhdXRob3JpemF0aW9uCiAgICAudHlwZSgiaGVhZGVyIik7ICAgICAgICAgICAgICAvLyAgdGhlIGxvY2F0aW9uLCBhcyBlaXRoZXIgYGhlYWRlcmAgb3IgYHF1ZXJ5YAoKICAvLyBvciBpbiBhIHNpbmdsZSBjb25zdHJ1Y3RvcgogIEF1dGhvcml6YXRpb25WYWx1ZSBhcGlLZXkgPSBuZXcgQXV0aG9yaXphdGlvblZhbHVlKCJhcGlfa2V5IiwgInNwZWNpYWwta2V5IiwgImhlYWRlciIpOwogIE9wZW5BUEkgb3BlbkFQSSA9IG5ldyBPcGVuQVBJVjNQYXJzZXIoKS5yZWFkV2l0aEluZm8oCiAgICAiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIiwKICAgIEFycmF5cy5hc0xpc3QobXlTcGVjaWFsSGVhZGVyLCBhcGlLZXkpCiAgKTsKYGBgCgojIyMjIERlYWxpbmcgd2l0aCBzZWxmLXNpZ25lZCBTU0wgY2VydGlmaWNhdGVzCklmIHlvdSdyZSBkZWFsaW5nIHdpdGggc2VsZi1zaWduZWQgU1NMIGNlcnRpZmljYXRlcywgb3IgdGhvc2Ugc2lnbmVkIGJ5IEdvRGFkZHksIHlvdSdsbCBuZWVkIHRvIGRpc2FibGUgU1NMIFRydXN0IApNYW5hZ2VyLiAgVGhhdCdzIGRvbmUgYnkgc2V0dGluZyBhIHN5c3RlbSBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyBzdWNoOgoKYGBgCmV4cG9ydCBUUlVTVF9BTEw9dHJ1ZQpgYGAKCkFuZCB0aGVuIHRoZSBTd2FnZ2VyIFBhcnNlciB3aWxsIF9pZ25vcmVfIGludmFsaWQgY2VydGlmaWNhdGVzLiAgT2YgY291cnNlIHRoaXMgaXMgZ2VuZXJhbGx5IGEgYmFkIGlkZWEsIGJ1dCBpZiB5b3UncmUgCndvcmtpbmcgaW5zaWRlIGEgZmlyZXdhbGwgb3IgcmVhbGx5IGtub3cgd2hhdCB5b3UncmUgZG9pbmcsIHdlbGwsIHRoZXJlJ3MgeW91ciByb3BlLgoKIyMjIyBEZWFsaW5nIHdpdGggTGV0J3MgRW5jcnlwdApEZXBlbmRpbmcgb24gdGhlIHZlcnNpb24gb2YgSmF2YSB0aGF0IHlvdSB1c2UsIGNlcnRpZmljYXRlcyBzaWduZWQgYnkgdGhlIFtMZXQncyBFbmNyeXB0XShodHRwczovL2xldHNlbmNyeXB0Lm9yZykgY2VydGlmaWNhdGUgYXV0aG9yaXR5IF9tYXkgbm90IHdvcmtfIGJ5IGRlZmF1bHQuICBJZiB5b3UgYXJlIHVzaW5nIGFueSB2ZXJzaW9uIG9mIEphdmEgcHJpb3IgdG8gMS44dTEwMSwgeW91IG1vc3QgbGlrZWx5IF9tdXN0XyBpbnN0YWxsIGFuIGFkZGl0aW9uYWwgQ0EgaW4geW91cgpKVk0uICBBbHNvIG5vdGUgdGhhdCAxLjh1MTAxIG1heSBfbm90XyBiZSBzdWZmaWNpZW50IG9uIGl0J3Mgb3duLiAgU29tZSB1c2VycyBoYXZlIHJlcG9ydGVkIHRoYXQgY2VydGFpbiBvcGVyYXRpbmcgc3lzdGVtcyBhcmUgCm5vdCBhY2NlcHRpbmcgTGV0J3MgRW5jcnlwdCBzaWduZWQgY2VydGlmaWNhdGVzLgoKWW91ciBvcHRpb25zIGluY2x1ZGU6CgoqIEFjY2VwdGluZyBhbGwgY2VydGlmaWNhdGVzIHBlciBhYm92ZQoqIEluc3RhbGxpbmcgdGhlIGNlcnRpZmljYXRlIG1hbnVhbGx5IGluIHlvdXIgSlZNIHVzaW5nIHRoZSBrZXlzdG9yZSB1c2luZyB0aGUgYGtleXRvb2xgIGNvbW1hbmQKKiBDb25maWd1cmluZyB0aGUgSlZNIG9uIHN0YXJ0dXAgdG8gbG9hZCB5b3VyIGNlcnRpZmljYXRlCgpCdXQuLi4gdGhpcyBpcyBhbGwgc3RhbmRhcmQgU1NMIGNvbmZpZ3VyYXRpb24gc3R1ZmYgYW5kIGlzIHdlbGwgZG9jdW1lbnRlZCBhY3Jvc3MgdGhlIHdlYi4KCgojIyMgT3B0aW9ucwpQYXJzZXIgdXNlcyBvcHRpb25zIGFzIGEgd2F5IHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igd2hpbGUgcGFyc2luZzoKCiMjIyMgMS4gcmVzb2x2ZToKCmBgYGphdmEKUGFyc2VPcHRpb25zIHBhcnNlT3B0aW9ucyA9IG5ldyBQYXJzZU9wdGlvbnMoKTsKcGFyc2VPcHRpb25zLnNldFJlc29sdmUodHJ1ZSk7IApmaW5hbCBPcGVuQVBJIG9wZW5BUEkgPSBuZXcgT3BlbkFQSVYzUGFyc2VyKCkucmVhZCgiYS55YW1sIiwgbnVsbCwgcGFyc2VPcHRpb25zKTsKYGBgCgoKLSBXaGVuIHJlbW90ZSBvciByZWxhdGl2ZSByZWZlcmVuY2VzIGFyZSBmb3VuZCBpbiB0aGUgcGFyc2VkIGRvY3VtZW50LCBwYXJzZXIgd2lsbCBhdHRlbXB0IHRvOgoKMS4gcmVzb2x2ZSB0aGUgcmVmZXJlbmNlIGluIHRoZSByZW1vdGUgb3IgcmVsYXRpdmUgbG9jYXRpb24gCjEuIHBhcnNlIHRoZSByZXNvbHZlZCByZWZlcmVuY2UKMS4gYWRkIHRoZSByZXNvbHZlZCAiY29tcG9uZW50IiAoZS5nLiBwYXJhbWV0ZXIsIHNjaGVtYSwgcmVzcG9uc2UsIGV0Yy4pIHRvIHRoZSByZXNvbHZlZCBgT3BlbkFQSWAgUE9KTyBjb21wb25lbnRzIHNlY3Rpb24KMS4gcmVwbGFjZSB0aGUgcmVtb3RlL3JlbGF0aXZlIHJlZmVyZW5jZSB3aXRoIGEgbG9jYWwgcmVmZXJlbmNlLCAgZS5nLiA6IGAjL2NvbXBvbmVudHMvc2NoZW1hcy9OYW1lT2ZSZW1vdGVTY2hlbWFgLiAKClRoaXMgYXBwbGllcyB0byBzY2hlbWFzLCBwYXJhbWV0ZXJzLCByZXNwb25zZXMsIHByZXR0eSBtdWNoIGV2ZXJ5dGhpbmcgY29udGFpbmluZyBhIHJlZi4KCiMjIyMgMi4gcmVzb2x2ZUZ1bGx5OgoKYGBgamF2YQpQYXJzZU9wdGlvbnMgcGFyc2VPcHRpb25zID0gbmV3IFBhcnNlT3B0aW9ucygpOwpwYXJzZU9wdGlvbnMuc2V0UmVzb2x2ZSh0cnVlKTsgLy8gaW1wbGljaXQKcGFyc2VPcHRpb25zLnNldFJlc29sdmVGdWxseSh0cnVlKTsKZmluYWwgT3BlbkFQSSBvcGVuQVBJID0gbmV3IE9wZW5BUElWM1BhcnNlcigpLnJlYWQoImEueWFtbCIsIG51bGwsIHBhcnNlT3B0aW9ucyk7CmBgYAoKLSBJbiBzb21lIHNjZW5hcmlvcywgYWZ0ZXIgcmVmZXJlbmNlcyBhcmUgcmVzb2x2ZWQgKHdpdGggYHJlc29sdmVgLCBzZWUgYWJvdmUpLCB5b3UgbWlnaHQgbmVlZCB0byBoYXZlIGFsbCBsb2NhbCByZWZlcmVuY2VzIHJlbW92ZWQgcmVwbGFjaW5nIHRoZSByZWZlcmVuY2Ugd2l0aCB0aGUgY29udGVudCBvZiB0aGUgcmVmZXJlbmNlZCBlbGVtZW50LiBUaGlzIGlzIGZvciBleGFtcGxlIHVzZWQgaW4gW1N3YWdnZXIgSW5mbGVjdG9yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1pbmZsZWN0b3IpLiBCZSBhd2FyZSB0aGF0IHRoZSByZXN1bHQgY291bGQgYmUgbW9yZSBoZWF2eS9sb25nIGR1ZSB0byBkdXBsaWNhdGlvbgogICAgCk9yaWdpbmFsIGRvY3VtZW50OgoKYGEueWFtbGAgCmBgYApvcGVuYXBpOiAzLjAuMQpwYXRoczoKICAiL25ld1BlcnNvbiI6CiAgICBwb3N0OgogICAgICBzdW1tYXJ5OiBDcmVhdGUgbmV3IHBlcnNvbgogICAgICBkZXNjcmlwdGlvbjogQ3JlYXRlIG5ldyBwZXJzb24KICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IG9rCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAiKi8qIjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIuL3JlZi13aXRob3V0LWNvbXBvbmVudC9iLnlhbWwjL2NvbXBvbmVudHMvc2NoZW1hcy9DdXN0b21lclR5cGUiCmBgYApgYi55YW1sYApgYGAKb3BlbmFwaTogMy4wLjEKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgQ3VzdG9tZXJUeXBlOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgZXhhbXBsZTogRXhhbXBsZSB2YWx1ZQpgYGAKClNlcmlhbGl6ZWQgcmVzdWx0IGFmdGVyIHBhcnNpbmcgd2l0aCBvcHRpb24gYHJlc29sdmVGdWxseSh0cnVlKWAKCmBhLnlhbWxgCmBgYApvcGVuYXBpOiAzLjAuMQpzZXJ2ZXJzOgotIHVybDogLwpwYXRoczoKICAvbmV3UGVyc29uOgogICAgcG9zdDoKICAgICAgc3VtbWFyeTogQ3JlYXRlIG5ldyBwZXJzb24KICAgICAgZGVzY3JpcHRpb246IENyZWF0ZSBuZXcgcGVyc29uCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogb2sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICcqLyonOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgZXhhbXBsZTogRXhhbXBsZSB2YWx1ZQpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBDdXN0b21lclR5cGU6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBleGFtcGxlOiBFeGFtcGxlIHZhbHVlCmBgYAoKIyMjIyAzLiBmbGF0dGVuOiAKCmBgYGphdmEKUGFyc2VPcHRpb25zIHBhcnNlT3B0aW9ucyA9IG5ldyBQYXJzZU9wdGlvbnMoKTsKcGFyc2VPcHRpb25zLnNldEZsYXR0ZW4odHJ1ZSk7IApmaW5hbCBPcGVuQVBJIG9wZW5BUEkgPSBuZXcgT3BlbkFQSVYzUGFyc2VyKCkucmVhZCgiYS55YW1sIiwgbnVsbCwgcGFyc2VPcHRpb25zKTsKYGBgCgoKVGhpcyBpcyBraW5kIG9mIHRoZSBvcHBvc2l0ZSBvZiByZXNvbHZlRnVsbHksIGxpbWl0ZWQgdG8gZGVmaW5lZCBzY2hlbWFzLgoKSW4gc29tZSBzY2VuYXJpb3MsIHlvdSBtaWdodCBuZWVkIHRvIGhhdmUgYWxsIHNjaGVtYXMgZGVmaW5lZCBpbmxpbmUgKGUuZy4gYSByZXNwb25zZSBzY2hlbWEpIG1vdmVkIHRvIHRoZSBgY29tcG9uZW50cy9zY2hlbWFzYCBzZWN0aW9uIGFuZCByZXBsYWNlZCB3aXRoIGEgcmVmZXJlbmNlIHRvIHRoZSBuZXdseSBhZGRlZCBzY2hlbWEgd2l0aGluIGBjb21wb25lbnRzL3NjaGVtYXNgLiBUaGlzIGlzIGZvciBleGFtcGxlIHVzZWQgaW4gW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikuCgpPcmlnaW5hbCBkb2N1bWVudDoKCmBmbGF0dGVuLnlhbWxgCgpgYGAKb3BlbmFwaTogMy4wLjAKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiBTd2FnZ2VyIFBldHN0b3JlCiAgbGljZW5zZToKICAgIG5hbWU6IE1JVApwYXRoczoKICAvcGV0czoKICAgIGdldDoKICAgICAgc3VtbWFyeTogTGlzdCBhbGwgcGV0cwogICAgICBvcGVyYXRpb25JZDogbGlzdFBldHMKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IEFuIHBhZ2VkIGFycmF5IG9mIHBldHMKICAgICAgICAgIGhlYWRlcnM6CiAgICAgICAgICAgIHgtbmV4dDoKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogQSBsaW5rIHRvIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzcG9uc2VzCiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiBpbnQ2NAogICAgICAgICAgICAgICAgICAgIG5hbWU6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICB0YWc6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKYGBgCgpTZXJpYWxpemVkIHJlc3VsdCBhZnRlciBwYXJzaW5nIHdpdGggb3B0aW9uIGBmbGF0dGVuKHRydWUpYAoKYGBgCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgdGl0bGU6IFN3YWdnZXIgUGV0c3RvcmUKICBsaWNlbnNlOgogICAgbmFtZTogTUlUCiAgdmVyc2lvbjogMS4wLjAKc2VydmVyczoKLSB1cmw6IC8KcGF0aHM6CiAgL3BldHM6CiAgICBnZXQ6CiAgICAgIHRhZ3M6CiAgICAgIC0gcGV0cwogICAgICBzdW1tYXJ5OiBMaXN0IGFsbCBwZXRzCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQW4gcGFnZWQgYXJyYXkgb2YgcGV0cwogICAgICAgICAgaGVhZGVyczoKICAgICAgICAgICAgeC1uZXh0OgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIGxpbmsgdG8gdGhlIG5leHQgcGFnZSBvZiByZXNwb25zZXMKICAgICAgICAgICAgICBzdHlsZTogc2ltcGxlCiAgICAgICAgICAgICAgZXhwbG9kZTogZmFsc2UKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL2lubGluZV9yZXNwb25zZV8yMDAnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIGlubGluZV9yZXNwb25zZV8yMDA6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZm9ybWF0OiBpbnQ2NAogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB0YWc6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKYGBgCgojIyMjIDQuIHJlc29sdmVDb21iaW5hdG9yczogCgpgYGBqYXZhClBhcnNlT3B0aW9ucyBwYXJzZU9wdGlvbnMgPSBuZXcgUGFyc2VPcHRpb25zKCk7CnBhcnNlT3B0aW9ucy5zZXRSZXNvbHZlKHRydWUpOyAvLyBpbXBsaWNpdApwYXJzZU9wdGlvbnMuc2V0UmVzb2x2ZUZ1bGx5KHRydWUpOwpwYXJzZU9wdGlvbnMuc2V0UmVzb2x2ZUNvbWJpbmF0b3JzKGZhbHNlKTsgLy8gZGVmYXVsdCBpcyB0cnVlIApmaW5hbCBPcGVuQVBJIG9wZW5BUEkgPSBuZXcgT3BlbkFQSVYzUGFyc2VyKCkucmVhZCgiYS55YW1sIiwgbnVsbCwgcGFyc2VPcHRpb25zKTsKYGBgCgpUaGlzIG9wdGlvbiAob25seSBhdmFpbGFibGUgd2l0aCBgcmVzb2x2ZUZ1bGx5ID0gdHJ1ZWApIGFsbG93cyB0byBjdXN0b21pemUgYmVoYXZpb3VyIHJlbGF0ZWQgdG8gYGFsbE9mL2FueU9mL29uZU9mYCAoY29tcG9zZWQgc2NoZW1hcykgIHByb2Nlc3NpbmcuIFdpdGggb3B0aW9uIHNldCB0byBgdHJ1ZWAgKGRlZmF1bHQpLCBjb21wb3NlZCBzY2hlbWFzIGFyZSB0cmFuc2Zvcm1lZCBpbnRvICJub24gY29tcG9zZWQiIG9uZXMsIGJ5IGhhdmluZyBhbGwgcHJvcGVydGllcyBtZXJnZWQgaW50byBhIHNpbmdsZSByZXN1bHRpbmcgc2NoZW1hIChzZWUgZXhhbXBsZSBiZWxvdykuCklmIG9wdGlvbiBpcyBzZXQgdG8gYGZhbHNlYCwgdGhlIHJlc3VsdGluZyBzY2hlbWEgd2lsbCBpbnN0ZWFkIG1haW50YWluIGl0cyAiY29tcG9zZWQiIG5hdHVyZSwga2VlcGluZyBwcm9wZXJ0aWVzIHdpdGhpbiBlLmcuIHRoZSBgYWxsT2ZgIG1lbWJlcnMuCgpQbGVhc2Ugc2VlIGV4YW1wbGVzIGJlbG93OgoKKipVbnJlc29sdmVkIHlhbWwqKgoKYGBgCm9wZW5hcGk6IDMuMC4xCnNlcnZlcnM6Ci0gdXJsOiBodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby9hcGkKCmluZm86CiAgZGVzY3JpcHRpb246ICdUaGlzIGlzIGEgc2FtcGxlIHNlcnZlciBQZXRzdG9yZScKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiB0ZXN0aW5nIHNvdXJjZSBmaWxlCiAgdGVybXNPZlNlcnZpY2U6IGh0dHA6Ly9zd2FnZ2VyLmlvL3Rlcm1zLwoKcGF0aHM6CiAgIi93aXRoSW52YWxpZENvbXBvc2VkTW9kZWwiOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IHdpdGhJbnZhbGlkQ29tcG9zZWRNb2RlbAogICAgICByZXF1ZXN0Qm9keToKICAgICAgICBjb250ZW50OgogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvRXh0ZW5kZWRBZGRyZXNzIgogICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogc3VjY2VzcyEKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgRXh0ZW5kZWRBZGRyZXNzOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQWRkcmVzcycKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAtIGdwcwogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgZ3BzOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgQWRkcmVzczoKICAgICAgcmVxdWlyZWQ6CiAgICAgIC0gc3RyZWV0CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHN0cmVldDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogMTIzNDUgRWwgTW9udGUgUm9hZAogICAgICAgIGNpdHk6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IExvcyBBbHRvcyBIaWxscwogICAgICAgIHN0YXRlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBDQQogICAgICAgIHppcDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogJzk0MDIyJwpgYGAKCioqcmVzb2x2ZWRDb21iaW5hdG9yID0gdHJ1ZSAoZGVmYXVsdCkgLSBUZXN0IGNhc2UqKgoKYGBgCkBUZXN0CiAgICBwdWJsaWMgdm9pZCByZXNvbHZlQWxsT2ZXaXRob3V0QWdncmVnYXRpbmdQYXJhbWV0ZXJzKEBJbmplY3RhYmxlIGZpbmFsIExpc3Q8QXV0aG9yaXphdGlvblZhbHVlPiBhdXRocykgewogICAgICAgIFBhcnNlT3B0aW9ucyBvcHRpb25zID0gbmV3IFBhcnNlT3B0aW9ucygpOwogICAgICAgIG9wdGlvbnMuc2V0UmVzb2x2ZUZ1bGx5KHRydWUpOwogICAgICAgIG9wdGlvbnMuc2V0UmVzb2x2ZUNvbWJpbmF0b3JzKHRydWUpOwoKICAgICAgICAvLyBUZXN0aW5nIGNvbXBvbmVudHMvc2NoZW1hcwogICAgICAgIE9wZW5BUEkgb3BlbkFQSSA9IG5ldyBPcGVuQVBJVjNQYXJzZXIoKS5yZWFkTG9jYXRpb24oInNyYy90ZXN0L3Jlc291cmNlcy9jb21wb3NlZC55YW1sIixhdXRocyxvcHRpb25zKS5nZXRPcGVuQVBJKCk7CiAgICAgICAgCiAgICAgICAgQ29tcG9zZWRTY2hlbWEgYWxsT2YgPSAoQ29tcG9zZWRTY2hlbWEpIG9wZW5BUEkuZ2V0Q29tcG9uZW50cygpLmdldFNjaGVtYXMoKS5nZXQoIkV4dGVuZGVkQWRkcmVzcyIpOwogICAgICAgIGFzc2VydEVxdWFscyhhbGxPZi5nZXRBbGxPZigpLnNpemUoKSwgMik7CgogICAgICAgIGFzc2VydFRydWUoYWxsT2YuZ2V0QWxsT2YoKS5nZXQoMCkuZ2V0JHJlZigpICE9IG51bGwpOwogICAgICAgIGFzc2VydFRydWUoYWxsT2YuZ2V0QWxsT2YoKS5nZXQoMSkuZ2V0UHJvcGVydGllcygpLmNvbnRhaW5zS2V5KCJncHMiKSk7CgoKICAgICAgICAvLyBUZXN0aW5nIHBhdGggaXRlbQogICAgICAgIE9iamVjdFNjaGVtYSBzY2hlbWEgPSAoT2JqZWN0U2NoZW1hKSBvcGVuQVBJLmdldFBhdGhzKCkuZ2V0KCIvd2l0aEludmFsaWRDb21wb3NlZE1vZGVsIikuZ2V0UG9zdCgpLmdldFJlcXVlc3RCb2R5KCkuZ2V0Q29udGVudCgpLmdldCgiYXBwbGljYXRpb24vanNvbiIpLmdldFNjaGVtYSgpOwoKICAgICAgICBhc3NlcnRFcXVhbHMoc2NoZW1hLmdldFByb3BlcnRpZXMoKS5zaXplKCksIDUpOwogICAgICAgIGFzc2VydFRydWUoc2NoZW1hLmdldFByb3BlcnRpZXMoKS5jb250YWluc0tleSgic3RyZWV0IikpOwogICAgICAgIGFzc2VydFRydWUoc2NoZW1hLmdldFByb3BlcnRpZXMoKS5jb250YWluc0tleSgiZ3BzIikpOwoKICAgIH0KYGBgCgoqKnJlc29sdmVkQ29tYmluYXRvciA9IHRydWUgKGRlZmF1bHQpIC0gUmVzb2x2ZWQgWWFtbCoqCgpgYGAKb3BlbmFwaTogMy4wLjEKaW5mbzoKICB0aXRsZTogdGVzdGluZyBzb3VyY2UgZmlsZQogIGRlc2NyaXB0aW9uOiBUaGlzIGlzIGEgc2FtcGxlIHNlcnZlciBQZXRzdG9yZQogIHRlcm1zT2ZTZXJ2aWNlOiBodHRwOi8vc3dhZ2dlci5pby90ZXJtcy8KICB2ZXJzaW9uOiAxLjAuMApzZXJ2ZXJzOgotIHVybDogaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vYXBpCnBhdGhzOgogIC93aXRoSW52YWxpZENvbXBvc2VkTW9kZWw6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogd2l0aEludmFsaWRDb21wb3NlZE1vZGVsCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgICAgLSBncHMKICAgICAgICAgICAgICAtIHN0cmVldAogICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICBzdHJlZXQ6CiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICBleGFtcGxlOiAxMjM0NSBFbCBNb250ZSBSb2FkCiAgICAgICAgICAgICAgICBjaXR5OgogICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgZXhhbXBsZTogTG9zIEFsdG9zIEhpbGxzCiAgICAgICAgICAgICAgICBzdGF0ZToKICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IENBCiAgICAgICAgICAgICAgICB6aXA6CiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICBleGFtcGxlOiAiOTQwMjIiCiAgICAgICAgICAgICAgICBncHM6CiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IHN1Y2Nlc3MhCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIEV4dGVuZGVkQWRkcmVzczoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGFsbE9mOgogICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BZGRyZXNzJwogICAgICAtIHJlcXVpcmVkOgogICAgICAgIC0gZ3BzCiAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgIGdwczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICBBZGRyZXNzOgogICAgICByZXF1aXJlZDoKICAgICAgLSBzdHJlZXQKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgc3RyZWV0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAxMjM0NSBFbCBNb250ZSBSb2FkCiAgICAgICAgY2l0eToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogTG9zIEFsdG9zIEhpbGxzCiAgICAgICAgc3RhdGU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IENBCiAgICAgICAgemlwOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiOTQwMjIiCiBgYGAKIAogKipyZXNvbHZlZENvbWJpbmF0b3IgPSBmYWxzZSAtIFRlc3QgY2FzZSoqCiAKIGBgYAogQFRlc3QKICAgIHB1YmxpYyB2b2lkIHJlc29sdmVBbGxPZldpdGhvdXRBZ2dyZWdhdGluZ1BhcmFtZXRlcnMoQEluamVjdGFibGUgZmluYWwgTGlzdDxBdXRob3JpemF0aW9uVmFsdWU+IGF1dGhzKSB7CiAgICAgICAgUGFyc2VPcHRpb25zIG9wdGlvbnMgPSBuZXcgUGFyc2VPcHRpb25zKCk7CiAgICAgICAgb3B0aW9ucy5zZXRSZXNvbHZlRnVsbHkodHJ1ZSk7CiAgICAgICAgb3B0aW9ucy5zZXRSZXNvbHZlQ29tYmluYXRvcnMoZmFsc2UpOwoKICAgICAgICAvLyBUZXN0aW5nIGNvbXBvbmVudHMvc2NoZW1hcwogICAgICAgIE9wZW5BUEkgb3BlbkFQSSA9IG5ldyBPcGVuQVBJVjNQYXJzZXIoKS5yZWFkTG9jYXRpb24oInNyYy90ZXN0L3Jlc291cmNlcy9jb21wb3NlZC55YW1sIixhdXRocyxvcHRpb25zKS5nZXRPcGVuQVBJKCk7CiAgICAgICAKICAgICAgICBDb21wb3NlZFNjaGVtYSBhbGxPZiA9IChDb21wb3NlZFNjaGVtYSkgb3BlbkFQSS5nZXRDb21wb25lbnRzKCkuZ2V0U2NoZW1hcygpLmdldCgiRXh0ZW5kZWRBZGRyZXNzIik7CiAgICAgICAgYXNzZXJ0RXF1YWxzKGFsbE9mLmdldEFsbE9mKCkuc2l6ZSgpLCAyKTsKICAgICAgICBhc3NlcnRUcnVlKGFsbE9mLmdldEFsbE9mKCkuZ2V0KDApLmdldFByb3BlcnRpZXMoKS5jb250YWluc0tleSgic3RyZWV0IikpOwogICAgICAgIGFzc2VydFRydWUoYWxsT2YuZ2V0QWxsT2YoKS5nZXQoMSkuZ2V0UHJvcGVydGllcygpLmNvbnRhaW5zS2V5KCJncHMiKSk7CgogICAgICAgIC8vIFRlc3RpbmcgcGF0aCBpdGVtCiAgICAgICAgQ29tcG9zZWRTY2hlbWEgc2NoZW1hID0gKENvbXBvc2VkU2NoZW1hKSBvcGVuQVBJLmdldFBhdGhzKCkuZ2V0KCIvd2l0aEludmFsaWRDb21wb3NlZE1vZGVsIikuZ2V0UG9zdCgpLmdldFJlcXVlc3RCb2R5KCkuZ2V0Q29udGVudCgpLmdldCgiYXBwbGljYXRpb24vanNvbiIpLmdldFNjaGVtYSgpOwogICAgICAgIC8vIEluIGZhY3QgdGhlIHNjaGVtYSByZXNvbHZlZCBwcmV2aW91c2x5IGlzIHRoZSBzYW1lIG9mIC93aXRoSW52YWxpZENvbXBvc2VkTW9kZWwKICAgICAgICBhc3NlcnRFcXVhbHMoc2NoZW1hLCBhbGxPZik7CiAgICAgICAgYXNzZXJ0RXF1YWxzKHNjaGVtYS5nZXRBbGxPZigpLnNpemUoKSwgMik7CiAgICAgICAgYXNzZXJ0VHJ1ZShzY2hlbWEuZ2V0QWxsT2YoKS5nZXQoMCkuZ2V0UHJvcGVydGllcygpLmNvbnRhaW5zS2V5KCJzdHJlZXQiKSk7CiAgICAgICAgYXNzZXJ0VHJ1ZShzY2hlbWEuZ2V0QWxsT2YoKS5nZXQoMSkuZ2V0UHJvcGVydGllcygpLmNvbnRhaW5zS2V5KCJncHMiKSk7CgogICAgfQogIGBgYAogIAogICoqcmVzb2x2ZWRDb21iaW5hdG9yID0gZmFsc2UgLSBSZXNvbHZlZCBZYW1sKioKICAKICBgYGAKb3BlbmFwaTogMy4wLjEKaW5mbzoKICB0aXRsZTogdGVzdGluZyBzb3VyY2UgZmlsZQogIGRlc2NyaXB0aW9uOiBUaGlzIGlzIGEgc2FtcGxlIHNlcnZlciBQZXRzdG9yZQogIHRlcm1zT2ZTZXJ2aWNlOiBodHRwOi8vc3dhZ2dlci5pby90ZXJtcy8KICB2ZXJzaW9uOiAxLjAuMApzZXJ2ZXJzOgotIHVybDogaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vYXBpCnBhdGhzOgogIC93aXRoSW52YWxpZENvbXBvc2VkTW9kZWw6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogd2l0aEludmFsaWRDb21wb3NlZE1vZGVsCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgYWxsT2Y6CiAgICAgICAgICAgICAgLSByZXF1aXJlZDoKICAgICAgICAgICAgICAgIC0gc3RyZWV0CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIHN0cmVldDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiAxMjM0NSBFbCBNb250ZSBSb2FkCiAgICAgICAgICAgICAgICAgIGNpdHk6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogTG9zIEFsdG9zIEhpbGxzCiAgICAgICAgICAgICAgICAgIHN0YXRlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IENBCiAgICAgICAgICAgICAgICAgIHppcDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiAiOTQwMjIiCiAgICAgICAgICAgICAgLSByZXF1aXJlZDoKICAgICAgICAgICAgICAgIC0gZ3BzCiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIGdwczoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdWNjZXNzIQpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBFeHRlbmRlZEFkZHJlc3M6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBhbGxPZjoKICAgICAgLSByZXF1aXJlZDoKICAgICAgICAtIHN0cmVldAogICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICBzdHJlZXQ6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBleGFtcGxlOiAxMjM0NSBFbCBNb250ZSBSb2FkCiAgICAgICAgICBjaXR5OgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgZXhhbXBsZTogTG9zIEFsdG9zIEhpbGxzCiAgICAgICAgICBzdGF0ZToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIGV4YW1wbGU6IENBCiAgICAgICAgICB6aXA6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBleGFtcGxlOiAiOTQwMjIiCiAgICAgIC0gcmVxdWlyZWQ6CiAgICAgICAgLSBncHMKICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgZ3BzOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgIEFkZHJlc3M6CiAgICAgIHJlcXVpcmVkOgogICAgICAtIHN0cmVldAogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBzdHJlZXQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IDEyMzQ1IEVsIE1vbnRlIFJvYWQKICAgICAgICBjaXR5OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBMb3MgQWx0b3MgSGlsbHMKICAgICAgICBzdGF0ZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogQ0EKICAgICAgICB6aXA6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6ICI5NDAyMiIKYGBgCgojIyMgRXh0ZW5zaW9ucwpUaGlzIHByb2plY3QgaGFzIGEgY29yZSBhcnRpZmFjdC0tYHN3YWdnZXItcGFyc2VyYCwgd2hpY2ggdXNlcyBKYXZhIFNlcnZpY2UgUHJvdmlkZXIgSW50ZXJmYWNlIChTUEkpIHNvIGFkZGl0aW9uYWwgZXh0ZW5zaW9ucyBjYW4gYmUgYWRkZWQuIAoKVG8gYnVpbGQgeW91ciBvd24gZXh0ZW5zaW9uLCB5b3Ugc2ltcGx5IG5lZWQgdG8gY3JlYXRlIGEgYHNyYy9tYWluL3Jlc291cmNlcy9NRVRBLUlORi9zZXJ2aWNlcy9pby5zd2FnZ2VyLnYzLnBhcnNlci5jb3JlLmV4dGVuc2lvbnMuU3dhZ2dlclBhcnNlckV4dGVuc2lvbmAgZmlsZSB3aXRoIHRoZSBmdWxsIGNsYXNzbmFtZSBvZiB5b3VyIGltcGxlbWVudGF0aW9uLiAgWW91ciBjbGFzcyBtdXN0IGFsc28gaW1wbGVtZW50IHRoZSBgaW8uc3dhZ2dlci52My5wYXJzZXIuY29yZS5leHRlbnNpb25zLlN3YWdnZXJQYXJzZXJFeHRlbnNpb25gIGludGVyZmFjZS4gIFRoZW4sIGluY2x1ZGluZyB5b3VyIGxpYnJhcnkgd2l0aCB0aGUgYHN3YWdnZXItcGFyc2VyYCBtb2R1bGUgd2lsbCBjYXVzZSBpdCB0byBiZSB0cmlnZ2VyZWQgYXV0b21hdGljYWxseS4KCiMjIyBPcGVuQVBJIDMuMSBzdXBwb3J0CgpTaW5jZSB2ZXJzaW9uIDIuMS4wIFN3YWdnZXIgUGFyc2VyIHN1cHBvcnRzIE9wZW5BUEkgMy4xOyBzZWUgW3RoaXMgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS93aWtpL1N3YWdnZXItMi5YLS0tT3BlbkFQSS0zLjEpIGZvciBkZXRhaWxzCgojIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4K readmeEtag: '"e60e55bdcf5aa7778578b7d4e10cd32968f5d770"' readmeLastModified: Thu, 09 May 2024 09:50:31 GMT repositoryId: 18997610 description: Swagger Spec to Java POJOs created: '2014-04-21T16:00:22Z' updated: '2024-09-03T11:21:31Z' language: Java archived: false stars: 778 watchers: 45 forks: 525 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"aff0b4e94221bcfd3dc69b5f9e5ab2d1df05104a1b1ba0f6ce51962b4bc31094"' repoLastModified: Tue, 03 Sep 2024 11:21:31 GMT foundInMaster: true id: 45f46a8f7ac698cfe3926303bf3dff9d v3_1_link: https://github.com/swagger-api/swagger-parser/pull/1730 v3_1: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/apidevtools/swagger-parser v3: true id: 18a1495e6591ba141a4db34b3ae36f32 repositoryMetadata: base64Readme: >- U3dhZ2dlciAyLjAgYW5kIE9wZW5BUEkgMy4wIHBhcnNlci92YWxpZGF0b3IKPT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vQVBJRGV2VG9vbHMvc3dhZ2dlci1wYXJzZXIvd29ya2Zsb3dzL0NJLUNEL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL3N3YWdnZXItcGFyc2VyL2FjdGlvbnMpClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL0FQSURldlRvb2xzL3N3YWdnZXItcGFyc2VyL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL0FQSURldlRvb2xzL3N3YWdnZXItcGFyc2VyKQpbIVtUZXN0ZWQgb24gQVBJcy5ndXJ1XShodHRwczovL2FwaS5hcGlzLmd1cnUvYmFkZ2VzL3Rlc3RlZF9vbi5zdmcpXShodHRwczovL2FwaXMuZ3VydS9icm93c2UtYXBpcy8pCgpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGFwaWRldnRvb2xzL3N3YWdnZXItcGFyc2VyLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BhcGlkZXZ0b29scy9zd2FnZ2VyLXBhcnNlcikKWyFbRGVwZW5kZW5jaWVzXShodHRwczovL2RhdmlkLWRtLm9yZy9BUElEZXZUb29scy9zd2FnZ2VyLXBhcnNlci5zdmcpXShodHRwczovL2RhdmlkLWRtLm9yZy9BUElEZXZUb29scy9zd2FnZ2VyLXBhcnNlcikKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AYXBpZGV2dG9vbHMvc3dhZ2dlci1wYXJzZXIuc3ZnKV0oTElDRU5TRSkKWyFbQnV5IHVzIGEgdHJlZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9UcmVld2FyZS0lRjAlOUYlOEMlQjMtbGlnaHRncmVlbildKGh0dHBzOi8vcGxhbnQudHJlZXdhcmUuZWFydGgvQVBJRGV2VG9vbHMvc3dhZ2dlci1wYXJzZXIpCgpbIVtPUyBhbmQgQnJvd3NlciBDb21wYXRpYmlsaXR5XShodHRwczovL2FwaXRvb2xzLmRldi9pbWcvYmFkZ2VzL2NpLWJhZGdlcy13aXRoLWllLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLXBhcnNlci9hY3Rpb25zKQoKWyFbT25saW5lIERlbW9dKGh0dHBzOi8vYXBpdG9vbHMuZGV2L3N3YWdnZXItcGFyc2VyL29ubGluZS9pbWcvZGVtby5zdmcpXShodHRwczovL2FwaXRvb2xzLmRldi9zd2FnZ2VyLXBhcnNlci9vbmxpbmUvKQoKCgpGZWF0dXJlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFBhcnNlcyBTd2FnZ2VyIHNwZWNzIGluICoqSlNPTioqIG9yICoqWUFNTCoqIGZvcm1hdAotIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSBbU3dhZ2dlciAyLjAgc2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9zY2hlbWFzL3YyLjAvc2NoZW1hLmpzb24pIG9yIFtPcGVuQVBJIDMuMCBTY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3NjaGVtYXMvdjMuMC9zY2hlbWEuanNvbikKLSBbUmVzb2x2ZXNdKGh0dHBzOi8vYXBpdG9vbHMuZGV2L3N3YWdnZXItcGFyc2VyL2RvY3Mvc3dhZ2dlci1wYXJzZXIuaHRtbCNyZXNvbHZlYXBpLW9wdGlvbnMtY2FsbGJhY2spIGFsbCBgJHJlZmAgcG9pbnRlcnMsIGluY2x1ZGluZyBleHRlcm5hbCBmaWxlcyBhbmQgVVJMcwotIENhbiBbYnVuZGxlXShodHRwczovL2FwaXRvb2xzLmRldi9zd2FnZ2VyLXBhcnNlci9kb2NzL3N3YWdnZXItcGFyc2VyLmh0bWwjYnVuZGxlYXBpLW9wdGlvbnMtY2FsbGJhY2spIGFsbCB5b3VyIFN3YWdnZXIgZmlsZXMgaW50byBhIHNpbmdsZSBmaWxlIHRoYXQgb25seSBoYXMgX2ludGVybmFsXyBgJHJlZmAgcG9pbnRlcnMKLSBDYW4gW2RlcmVmZXJlbmNlXShodHRwczovL2FwaXRvb2xzLmRldi9zd2FnZ2VyLXBhcnNlci9kb2NzL3N3YWdnZXItcGFyc2VyLmh0bWwjZGVyZWZlcmVuY2VhcGktb3B0aW9ucy1jYWxsYmFjaykgYWxsIGAkcmVmYCBwb2ludGVycywgZ2l2aW5nIHlvdSBhIG5vcm1hbCBKYXZhU2NyaXB0IG9iamVjdCB0aGF0J3MgZWFzeSB0byB3b3JrIHdpdGgKLSAqKltUZXN0ZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLXBhcnNlci9hY3Rpb25zKSoqIGluIE5vZGUuanMgYW5kIGFsbCBtb2Rlcm4gd2ViIGJyb3dzZXJzIG9uIE1hYywgV2luZG93cywgYW5kIExpbnV4Ci0gVGVzdGVkIG9uICoqW292ZXIgMSw1MDAgcmVhbC13b3JsZCBBUElzXShodHRwczovL2FwaXMuZ3VydS9icm93c2UtYXBpcy8pKiogZnJvbSBHb29nbGUsIE1pY3Jvc29mdCwgRmFjZWJvb2ssIFNwb3RpZnksIGV0Yy4KLSBTdXBwb3J0cyBbY2lyY3VsYXIgcmVmZXJlbmNlc10oaHR0cHM6Ly9hcGl0b29scy5kZXYvc3dhZ2dlci1wYXJzZXIvZG9jcy8jY2lyY3VsYXItcmVmcyksIG5lc3RlZCByZWZlcmVuY2VzLCBiYWNrLXJlZmVyZW5jZXMsIGFuZCBjcm9zcy1yZWZlcmVuY2VzCi0gTWFpbnRhaW5zIG9iamVjdCByZWZlcmVuY2UgZXF1YWxpdHkgJm1kYXNoOyBgJHJlZmAgcG9pbnRlcnMgdG8gdGhlIHNhbWUgdmFsdWUgYWx3YXlzIHJlc29sdmUgdG8gdGhlIHNhbWUgb2JqZWN0IGluc3RhbmNlCgoKClJlbGF0ZWQgUHJvamVjdHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBbU3dhZ2dlciBDTEldKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLWNsaSkKLSBbU3dhZ2dlciBFeHByZXNzIE1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLWV4cHJlc3MtbWlkZGxld2FyZSkKCgoKRXhhbXBsZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKYGBgamF2YXNjcmlwdApTd2FnZ2VyUGFyc2VyLnZhbGlkYXRlKG15QVBJLCAoZXJyLCBhcGkpID0+IHsKICBpZiAoZXJyKSB7CiAgICBjb25zb2xlLmVycm9yKGVycik7CiAgfQogIGVsc2UgewogICAgY29uc29sZS5sb2coIkFQSSBuYW1lOiAlcywgVmVyc2lvbjogJXMiLCBhcGkuaW5mby50aXRsZSwgYXBpLmluZm8udmVyc2lvbik7CiAgfQp9KTsKYGBgCgpPciB1c2UgYGFzeW5jYC9gYXdhaXRgIG9yIFtQcm9taXNlXShodHRwOi8vamF2YXNjcmlwdHBsYXlncm91bmQuY29tL2Jsb2cvMjAxNS8wMi9wcm9taXNlcy8pIHN5bnRheCBpbnN0ZWFkLiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaXMgdGhlIHNhbWUgYXMgYWJvdmU6CgpgYGBqYXZhc2NyaXB0CnRyeSB7CiAgbGV0IGFwaSA9IGF3YWl0IFN3YWdnZXJQYXJzZXIudmFsaWRhdGUobXlBUEkpOwogIGNvbnNvbGUubG9nKCJBUEkgbmFtZTogJXMsIFZlcnNpb246ICVzIiwgYXBpLmluZm8udGl0bGUsIGFwaS5pbmZvLnZlcnNpb24pOwp9CmNhdGNoKGVycikgewogIGNvbnNvbGUuZXJyb3IoZXJyKTsKfQpgYGAKCkZvciBtb3JlIGRldGFpbGVkIGV4YW1wbGVzLCBwbGVhc2Ugc2VlIHRoZSBbQVBJIERvY3VtZW50YXRpb25dKGh0dHBzOi8vYXBpdG9vbHMuZGV2L3N3YWdnZXItcGFyc2VyL2RvY3MvKQoKCgpJbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5zdGFsbCB1c2luZyBbbnBtXShodHRwczovL2RvY3MubnBtanMuY29tL2Fib3V0LW5wbS8pOgoKYGBgYmFzaApucG0gaW5zdGFsbCBAYXBpZGV2dG9vbHMvc3dhZ2dlci1wYXJzZXIKYGBgCgoKClVzYWdlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCldoZW4gdXNpbmcgU3dhZ2dlciBQYXJzZXIgaW4gTm9kZS5qcyBhcHBzLCB5b3UnbGwgcHJvYmFibHkgd2FudCB0byB1c2UgKipDb21tb25KUyoqIHN5bnRheDoKCmBgYGphdmFzY3JpcHQKY29uc3QgU3dhZ2dlclBhcnNlciA9IHJlcXVpcmUoIkBhcGlkZXZ0b29scy9zd2FnZ2VyLXBhcnNlciIpOwpgYGAKCldoZW4gdXNpbmcgYSB0cmFuc3BpbGVyIHN1Y2ggYXMgW0JhYmVsXShodHRwczovL2JhYmVsanMuaW8vKSBvciBbVHlwZVNjcmlwdF0oaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnLyksIG9yIGEgYnVuZGxlciBzdWNoIGFzIFtXZWJwYWNrXShodHRwczovL3dlYnBhY2suanMub3JnLykgb3IgW1JvbGx1cF0oaHR0cHM6Ly9yb2xsdXBqcy5vcmcvKSwgeW91IGNhbiB1c2UgKipFQ01BU2NyaXB0IG1vZHVsZXMqKiBzeW50YXggaW5zdGVhZDoKCmBgYGphdmFzY3JpcHQKaW1wb3J0ICogYXMgU3dhZ2dlclBhcnNlciBmcm9tICdAYXBpZGV2dG9vbHMvc3dhZ2dlci1wYXJzZXInOwpgYGAKCgoKQnJvd3NlciBzdXBwb3J0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClN3YWdnZXIgUGFyc2VyIHN1cHBvcnRzIHJlY2VudCB2ZXJzaW9ucyBvZiBldmVyeSBtYWpvciB3ZWIgYnJvd3Nlci4gIE9sZGVyIGJyb3dzZXJzIG1heSByZXF1aXJlIFtCYWJlbF0oaHR0cHM6Ly9iYWJlbGpzLmlvLykgYW5kL29yIFtwb2x5ZmlsbHNdKGh0dHBzOi8vYmFiZWxqcy5pby9kb2NzL2VuL25leHQvYmFiZWwtcG9seWZpbGwpLgoKVG8gdXNlIFN3YWdnZXIgUGFyc2VyIGluIGEgYnJvd3NlciwgeW91J2xsIG5lZWQgdG8gdXNlIGEgYnVuZGxpbmcgdG9vbCBzdWNoIGFzIFtXZWJwYWNrXShodHRwczovL3dlYnBhY2suanMub3JnLyksIFtSb2xsdXBdKGh0dHBzOi8vcm9sbHVwanMub3JnLyksIFtQYXJjZWxdKGh0dHBzOi8vcGFyY2VsanMub3JnLyksIG9yIFtCcm93c2VyaWZ5XShodHRwOi8vYnJvd3NlcmlmeS5vcmcvKS4gU29tZSBidW5kbGVycyBtYXkgcmVxdWlyZSBhIGJpdCBvZiBjb25maWd1cmF0aW9uLCBzdWNoIGFzIHNldHRpbmcgYGJyb3dzZXI6IHRydWVgIGluIFtyb2xsdXAtcGx1Z2luLXJlc29sdmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9yb2xsdXAvcm9sbHVwLXBsdWdpbi1ub2RlLXJlc29sdmUpLgoKCgpBUEkgRG9jdW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGdWxsIEFQSSBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBbcmlnaHQgaGVyZV0oaHR0cHM6Ly9hcGl0b29scy5kZXYvc3dhZ2dlci1wYXJzZXIvZG9jcy8pCgoKCkNvbnRyaWJ1dGluZwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJIHdlbGNvbWUgYW55IGNvbnRyaWJ1dGlvbnMsIGVuaGFuY2VtZW50cywgYW5kIGJ1Zy1maXhlcy4gIFtPcGVuIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vQVBJRGV2VG9vbHMvc3dhZ2dlci1wYXJzZXIvaXNzdWVzKSBvbiBHaXRIdWIgYW5kIFtzdWJtaXQgYSBwdWxsIHJlcXVlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLXBhcnNlci9wdWxscykuCgojIyMjIEJ1aWxkaW5nL1Rlc3RpbmcKVG8gYnVpbGQvdGVzdCB0aGUgcHJvamVjdCBsb2NhbGx5IG9uIHlvdXIgY29tcHV0ZXI6CgoxLiBfX0Nsb25lIHRoaXMgcmVwb19fPGJyPgpgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLXBhcnNlci5naXRgCgoyLiBfX0luc3RhbGwgZGVwZW5kZW5jaWVzX188YnI+CmBucG0gaW5zdGFsbGAKCjMuIF9fUnVuIHRoZSBidWlsZCBzY3JpcHRfXzxicj4KYG5wbSBydW4gYnVpbGRgCgo0LiBfX1J1biB0aGUgdGVzdHNfXzxicj4KYG5wbSB0ZXN0YAoKNS4gX19DaGVjayB0aGUgY29kZSBjb3ZlcmFnZV9fPGJyPgpgbnBtIHJ1biBjb3ZlcmFnZWAKCkxpY2Vuc2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KU3dhZ2dlciBQYXJzZXIgaXMgMTAwJSBmcmVlIGFuZCBvcGVuLXNvdXJjZSwgdW5kZXIgdGhlIFtNSVQgbGljZW5zZV0oTElDRU5TRSkuIFVzZSBpdCBob3dldmVyIHlvdSB3YW50LgoKVGhpcyBwYWNrYWdlIGlzIFtUcmVld2FyZV0oaHR0cDovL3RyZWV3YXJlLmVhcnRoKS4gSWYgeW91IHVzZSBpdCBpbiBwcm9kdWN0aW9uLCB0aGVuIHdlIGFzayB0aGF0IHlvdSBbKipidXkgdGhlIHdvcmxkIGEgdHJlZSoqXShodHRwczovL3BsYW50LnRyZWV3YXJlLmVhcnRoL0FQSURldlRvb2xzL3N3YWdnZXItcGFyc2VyKSB0byB0aGFuayB1cyBmb3Igb3VyIHdvcmsuIEJ5IGNvbnRyaWJ1dGluZyB0byB0aGUgVHJlZXdhcmUgZm9yZXN0IHlvdeKAmWxsIGJlIGNyZWF0aW5nIGVtcGxveW1lbnQgZm9yIGxvY2FsIGZhbWlsaWVzIGFuZCByZXN0b3Jpbmcgd2lsZGxpZmUgaGFiaXRhdHMuCgoKCkJpZyBUaGFua3MgVG8KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhhbmtzIHRvIHRoZXNlIGF3ZXNvbWUgY29tcGFuaWVzIGZvciB0aGVpciBzdXBwb3J0IG9mIE9wZW4gU291cmNlIGRldmVsb3BlcnMg4p2kCgpbIVtHaXRIdWJdKGh0dHBzOi8vYXBpdG9vbHMuZGV2L2ltZy9iYWRnZXMvZ2l0aHViLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZSkKWyFbTlBNXShodHRwczovL2FwaXRvb2xzLmRldi9pbWcvYmFkZ2VzL25wbS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vKQpbIVtDb3ZlcmFsbHNdKGh0dHBzOi8vYXBpdG9vbHMuZGV2L2ltZy9iYWRnZXMvY292ZXJhbGxzLnN2ZyldKGh0dHBzOi8vY292ZXJhbGxzLmlvKQo= readmeEtag: '"c8525f81dfe332c5624f9ff2e97e19cc0ba28470"' readmeLastModified: Fri, 28 Jul 2023 09:41:21 GMT repositoryId: 25453221 description: Swagger 2.0 and OpenAPI 3.0 parser/validator created: '2014-10-20T06:14:51Z' updated: '2024-09-06T02:59:56Z' language: JavaScript archived: false stars: 1088 watchers: 18 forks: 154 owner: APIDevTools logo: https://avatars.githubusercontent.com/u/43750074?v=4 license: MIT repoEtag: '"58b96f3bfdf0ba2fdda2f956aa7a9646e1f7ada9d171b3e0d2e8ce4cbe1ee388"' repoLastModified: Fri, 06 Sep 2024 02:59:56 GMT category: Parsers foundInMaster: true name: APIDevTools/swagger-parser language: Node.js source_description: >- OpenAPI 2.0 and 3.0 parser and validator. Can also bundle multiple documents into one via `$ref`. v2: true oldLocations: - https://github.com/bigstickcarpet/swagger-parser - source: - https://openapi.tools/ - openapi3 tags name: openapi-snippet category: Parsers repository: https://github.com/erikwittern/openapi-snippet language: Node.js source_description: >- Generates code snippets in various languages & tools (cURL, Node, Python, Ruby, Java, Go, C#...), from OpenAPI documents. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNuaXBwZXQKKipHZW5lcmF0ZXMgY29kZSBzbmlwcGV0cyBmcm9tIE9wZW4gQVBJIChwcmV2aW91c2x5IFN3YWdnZXIpIGRvY3VtZW50cy4qKgoKVGhpcyBwYWNrYWdlIHRha2VzIGFzIGlucHV0IGFuIE9wZW5BUEkgdjIuMCBvciB2My4wLnggZG9jdW1lbnQuIEl0IHRyYW5zbGF0ZXMgdGhlIGRvY3VtZW50IGludG8gYW4gW0hUVFAgQXJjaGl2ZSAxLjIgcmVxdWVzdCBvYmplY3RdKGh0dHA6Ly93d3cuc29mdHdhcmVpc2hhcmQuY29tL2Jsb2cvaGFyLTEyLXNwZWMvI3JlcXVlc3QpLiBJdCB1c2VzIHRoZSBbSFRUUCBTbmlwcGV0XShodHRwczovL2dpdGh1Yi5jb20vTWFzaGFwZS9odHRwc25pcHBldCkgbGlicmFyeSB0byBnZW5lcmF0ZSBjb2RlIHNuaXBwZXRzIGZvciBldmVyeSBBUEkgZW5kcG9pbnQgKFVSTCBwYXRoICsgSFRUUCBtZXRob2QpIGRlZmluZWQgaW4gdGhlIHNwZWNpZmljYXRpb24gaW4gdmFyaW91cyBsYW5ndWFnZXMgJiB0b29scyAoYGNVUkxgLCBgTm9kZWAsIGBQeXRob25gLCBgUnVieWAsIGBKYXZhYCwgYEdvYCwgYEMjYC4uLiksIG9yIGZvciBzZWxlY3RlZCBlbmRwb2ludHMuCgojIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKbnBtIGkgb3BlbmFwaS1zbmlwcGV0CmBgYAoKIyMgQnVpbGQgT3BlbkFQSSBTbmlwcGV0IChmb3IgdXNlIGluIGJyb3dzZXIpCkNsb25lIHRoaXMgcmVwb3NpdG9yeS4gSW5zdGFsbCByZXF1aXJlZCBkZXBlbmRlbmNpZXM6CgpgYGBiYXNoCm5wbSBpCmBgYAoKQnVpbGQgYSBtaW5pZmllZCB2ZXJzaW9uIG9mIE9wZW5BUEkgU25pcHBldCAoYG9wZW5hcGlzbmlwcGV0Lm1pbi5qc2ApOgoKYGBgYmFzaApucG0gcnVuIGJ1aWxkCmBgYAoKIyMgVXNhZ2UKCiMjIyBBcyBhIG1vZHVsZQoKYGBgamF2YXNjcmlwdApjb25zdCBPcGVuQVBJU25pcHBldCA9IHJlcXVpcmUoJ29wZW5hcGktc25pcHBldCcpCgovLyBkZWZpbmUgaW5wdXQ6CmNvbnN0IG9wZW5BcGkgPSAuLi4gLy8gT3BlbiBBUEkgZG9jdW1lbnQKY29uc3QgdGFyZ2V0cyA9IFsnbm9kZV91bmlyZXN0JywgJ2MnXSAvLyBhcnJheSBvZiB0YXJnZXRzIGZvciBjb2RlIHNuaXBwZXRzLiBTZWUgbGlzdCBiZWxvdy4uLgoKdHJ5IHsKICAvLyBlaXRoZXIsIGdldCBzbmlwcGV0cyBmb3IgQUxMIGVuZHBvaW50czoKICBjb25zdCByZXN1bHRzID0gT3BlbkFQSVNuaXBwZXQuZ2V0U25pcHBldHMob3BlbkFwaSwgdGFyZ2V0cykgLy8gcmVzdWx0cyBpcyBub3cgYXJyYXkgb2Ygc25pcHBldHMsIHNlZSAiT3V0cHV0IiBiZWxvdy4KCiAgLy8gLi4ub3IsIGdldCBzbmlwcGV0cyBmb3IgYSBzaW5nbGUgZW5kcG9pbnQ6CiAgY29uc3QgcmVzdWx0czIgPSBPcGVuQVBJU25pcHBldC5nZXRFbmRwb2ludFNuaXBwZXRzKG9wZW5BcGksICcvdXNlcnMve3VzZXItaWR9L3JlbGF0aW9uc2hpcCcsICdnZXQnLCB0YXJnZXRzKQp9IGNhdGNoIChlcnIpIHsKICAvLyBkbyBzb21ldGhpbmcgd2l0aCBwb3RlbnRpYWwgZXJyb3JzLi4uCn0KYGBgCgojIyMgV2l0aGluIHRoZSBicm93c2VyCgpJbmNsdWRlIHRoZSBgb3BlbmFwaXNuaXBwZXQubWluLmpzYCBmaWxlIGNyZWF0ZWQgYWZ0ZXIgYnVpbGRpbmcgdGhlIHRoZSBsaWJyYXJ5IChzZWUgYWJvdmUpIGluIHlvdXIgSFRNTCBwYWdlOgoKYGBgaHRtbAo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwYXRoL3RvL29wZW5hcGlzbmlwcGV0Lm1pbi5qcyI+PC9zY3JpcHQ+CmBgYAoKVXNlIE9wZW5BUEkgU25pcHBldCwgd2hpY2ggbm93IGRlZmluZXMgdGhlIGdsb2JhbCB2YXJpYWJsZSBgT3BlbkFQSVNuaXBwZXRgLgoKCiMjIE91dHB1dApUaGUgb3V0cHV0IGZvciBldmVyeSBlbmRwb2ludCBpcyBhbiBvYmplY3QsIGNvbnRhaW5pbmcgdGhlIGBtZXRob2RgLCBgdXJsYCwgYSBodW1hbi1yZWFkYWJsZSBgZGVzY3JpcHRpb25gLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYHJlc291cmNlYCAtIGFsbCBvZiB0aGVzZSB2YWx1ZXMgc3RlbSBmcm9tIHRoZSBPcGVuQVBJIGRvY3VtZW50LiBJbiBhZGRpdGlvbiwgd2l0aGluIHRoZSBgc25pcHBldHNgIGxpc3QsIGFuIG9iamVjdCBjb250YWluaW5nIGEgY29kZSBzbmlwcGV0IGZvciBldmVyeSBjaG9zZW4gdGFyZ2V0IGlzIHByb3ZpZGVkLiBBcyBvZiB2ZXJzaW9uIGAwLjQuMGAsIHRoZSBzbmlwcGV0cyBpbmNsdWRlIGV4ZW1wbGFyeSBwYXlsb2FkIGRhdGEuCgpJZiBgZ2V0U25pcHBldHNgIGlzIHVzZWQsIGFuIGFycmF5IG9mIHRoZSBhYm92ZSBkZXNjcmliZWQgb2JqZWN0cyBpcyByZXR1cm5lZC4KCkZvciBleGFtcGxlOgoKYGBganMKWwogIC8vIC4uLgogIHsKICAgICJtZXRob2QiOiAiR0VUIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuaW5zdGFncmFtLmNvbS92MS91c2Vycy97dXNlci1pZH0vcmVsYXRpb25zaGlwIiwKICAgICJkZXNjcmlwdGlvbiI6ICJHZXQgaW5mb3JtYXRpb24gYWJvdXQgYSByZWxhdGlvbnNoaXAgdG8gYW5vdGhlciB1c2VyLiIsCiAgICAicmVzb3VyY2UiOiAicmVsYXRpb25zaGlwIiwKICAgICJzbmlwcGV0cyI6IFsKICAgICAgewogICAgICAgICJpZCI6ICJub2RlIiwKICAgICAgICAibWltZVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsICAvLyBPbmx5IHNldCBmb3IgbWV0aG9kcyB3aXRoIGEgcmVxdWVzdCBib2R5CiAgICAgICAgInRpdGxlIjogIk5vZGUgKyBOYXRpdmUiLAogICAgICAgICJjb250ZW50IjogInZhciBodHRwID0gcmVxdWlyZShcImh0dHBzXCIpO1xuXG52YXIgb3B0aW9ucyA9IHsuLi4iCiAgICAgIH0KICAgIF0KICB9CiAgLy8gLi4uCl0KYGBgCgojIyBUYXJnZXRzCkN1cnJlbnRseSwgT3BlbkFQSSBTbmlwcGV0IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgW3RhcmdldHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9Lb25nL2h0dHBzbmlwcGV0L3RyZWUvbWFzdGVyL3NyYy90YXJnZXRzKSAoZGVwZW5kaW5nIG9uIHRoZSBIVFRQIFNuaXBwZXQgbGlicmFyeSk6CgoqIGBjX2xpYmN1cmxgIChkZWZhdWx0KQoqIGBjc2hhcnBfcmVzdHNoYXJwYCAoZGVmYXVsdCkKKiBgY3NoYXJwX2h0dHBjbGllbnRgCiogYGdvX25hdGl2ZWAgKGRlZmF1bHQpCiogYGphdmFfb2todHRwYAoqIGBqYXZhX3VuaXJlc3RgIChkZWZhdWx0KQoqIGBqYXZhc2NyaXB0X2pxdWVyeWAKKiBgamF2YXNjcmlwdF94aHJgIChkZWZhdWx0KQoqIGBub2RlX25hdGl2ZWAgKGRlZmF1bHQpCiogYG5vZGVfcmVxdWVzdGAKKiBgbm9kZV91bmlyZXN0YAoqIGBvYmpjX25zdXJsc2Vzc2lvbmAgKGRlZmF1bHQpCiogYG9jYW1sX2NvaHR0cGAgKGRlZmF1bHQpCiogYHBocF9jdXJsYCAoZGVmYXVsdCkKKiBgcGhwX2h0dHAxYAoqIGBwaHBfaHR0cDJgCiogYHB5dGhvbl9weXRob24zYCAoZGVmYXVsdCkKKiBgcHl0aG9uX3JlcXVlc3RzYAoqIGBydWJ5X25hdGl2ZWAgKGRlZmF1bHQpCiogYHNoZWxsX2N1cmxgIChkZWZhdWx0KQoqIGBzaGVsbF9odHRwaWVgCiogYHNoZWxsX3dnZXRgCiogYHN3aWZ0X25zdXJsc2Vzc2lvbmAgKGRlZmF1bHQpCgpJZiBvbmx5IHRoZSBsYW5ndWFnZSBpcyBwcm92aWRlZCAoZS5nLiwgYGNgKSwgdGhlIGRlZmF1bHQgbGlicmFyeSB3aWxsIGJlIHNlbGVjdGVkLgoKCkxpY2Vuc2U6IE1JVAo= readmeEtag: '"7e8dcc103099999269c433a3422041583fb19760"' readmeLastModified: Wed, 13 Jul 2022 18:36:58 GMT repositoryId: 66855599 description: Generates code snippets for given Swagger / Open API documents created: '2016-08-29T15:24:00Z' updated: '2024-09-04T16:20:25Z' language: JavaScript archived: false stars: 116 watchers: 6 forks: 67 owner: ErikWittern logo: https://avatars.githubusercontent.com/u/1745998?v=4 license: MIT repoEtag: '"1794410910406b2770f4429241c6d15925c1f9546216d661a14cae52293e98fd"' repoLastModified: Wed, 04 Sep 2024 16:20:25 GMT foundInMaster: true id: fbf76c5bdaef3297eb35739ca2ca0954 - source: https://openapi.tools/ name: openapi-snippet-cli category: Parsers repository: https://github.com/richardkabiling/openapi-snippet-cli language: Node.js source_description: >- Adds code snippets in redoc style (x-codeSamples) to OpenAPI documents. This is a CLI wrapper for the "openapi-snippet". v2: true v3: true repositoryMetadata: base64Readme: >- b3BlbmFwaS1zbmlwcGV0LWNsaQo9PT09PT09PT09PT09PT09PT09CgpBZGRzIG9wZW5hcGkgc25pcHBldHMgdXNpbmcgYG9wZW5hcGktc25pcHBldGAgbW9kdWxlIGluIHJlZG9jIHN0eWxlICh4LWNvZGVTYW1wbGVzKS4gVGhpcyBpcyBhIENMSSB3cmFwcGVyIG9uIFtvcGVuYXBpLXNuaXBwZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9FcmlrV2l0dGVybi9vcGVuYXBpLXNuaXBwZXQpCgpbIVtvY2xpZl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jbGktb2NsaWYtYnJpZ2h0Z3JlZW4uc3ZnKV0oaHR0cHM6Ly9vY2xpZi5pbykKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vcGVuYXBpLXNuaXBwZXQtY2xpLnN2ZyldKGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2Uvb3BlbmFwaS1zbmlwcGV0LWNsaSkKWyFbRG93bmxvYWRzL3dlZWtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2R3L29wZW5hcGktc25pcHBldC1jbGkuc3ZnKV0oaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9vcGVuYXBpLXNuaXBwZXQtY2xpKQpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9sL29wZW5hcGktc25pcHBldC1jbGkuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3JpY2hhcmRrYWJpbGluZy9vcGVuYXBpLXNuaXBwZXQtY2xpL2Jsb2IvbWFzdGVyL3BhY2thZ2UuanNvbikKCiogW0dldHRpbmcgU3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKKiBbVXNhZ2VdKCN1c2FnZSkKKiBbQXJndW1lbnRzXSgjYXJndW1lbnRzKQoqIFtPcHRpb25zXSgjb3B0aW9ucykKCiMgR2V0dGluZyBTdGFydGVkClRvIGluc3RhbGw6CgpgYGBzaC1zZXNzaW9uCiQgbnBtIGluc3RhbGwgLWcgb3BlbmFwaS1zbmlwcGV0LWNsaQpgYGAKCiMgVXNhZ2UKIyMgQWRkaW5nIFNuaXBwZXRzIHRvIGEgU2NoZW1hCmBgYHNoLXNlc3Npb24KJCBvcGVuYXBpLXNuaXBwZXQgc2NoZW1hLnlhbWwgLW8gZGlzdC9zY2hlbWEueWFtbApgYGAKClRoZSBleGFtcGxlIGFib3ZlIHNob3VsZCBhZGQgc25pcHBldHMgdG8gYHNjaGVtYS55YW1sYCBhbmQgb3V0cHV0IHRoZSBtb2RpZmllZCBzY2hlbWEgdG8gYSBuZXcgZmlsZSBgZGlzdC9zY2hlbWEueWFtbGAuCgojIyBPdXRwdXR0aW5nIEpTT04KYGBgc2gtc2Vzc2lvbgokIG9wZW5hcGktc25pcHBldCBzY2hlbWEueWFtbCAtZSBqc29uIC1vIGRpc3Qvc2NoZW1hLmpzb24KYGBgCgojIyBDaG9vc2luZyBUYXJnZXRzCmBgYHNoLXNlc3Npb24KJCBvcGVuYXBpLXNuaXBwZXQgc2NoZW1hLnlhbWwgLXQgamF2YSAtdCBjIC1vIGRpc3Qvc2NoZW1hLmpzb24KYGBgCgpUaGUgZXhhbXBsZSBhYm92ZSBzaG91bGQgYWRkIHNuaXBwZXRzIGZvciBgamF2YWAgYW5kIGBjYCB1c2luZyB0aGVpciBkZWZhdWx0IGZyYW1ld29ya3MKCmBgYHNoLXNlc3Npb24KJCBvcGVuYXBpLXNuaXBwZXQgc2NoZW1hLnlhbWwgLXQgamF2YV9va2h0dHAgLW8gZGlzdC9zY2hlbWEuanNvbgpgYGAKClRoaXMgc2hvdWxkIGFkZCBzbmlwcGV0cyBmb3IgJ2phdmFgIHVzaW5nIE9rSHR0cC4KCiMgQXJndW1lbnRzCmBgYApVU0FHRQogICQgb3BlbmFwaS1zbmlwcGV0IFtGSUxFXQoKQVJHVU1FTlRTCiAgRklMRSAgaW5wdXQgb3BlbmFwaSBkb2N1bWVudC4gSXQgd2lsbCBhdHRlbXB0IHRvIHJlc29sdmUgcmVmZXJlbmNlcyAoaW5jbHVkaW5nIGJvdGggaW50ZXJuYWwgYWRuIGV4dGVybmFsIG9uZXMpCmBgYAoKIyBPcHRpb25zCgpgYGAKT1BUSU9OUwogIC1lLCAtLWV4dD15YW1sfGpzb24gICAgW2RlZmF1bHQ6IHlhbWxdIG91dHB1dCBmb3JtYXQKICAtaCwgLS1oZWxwICAgICAgICAgICAgIHNob3cgQ0xJIGhlbHAKICAtbywgLS1vdXRwdXQ9b3V0cHV0ICAgIFtkZWZhdWx0OiBvdXRwdXQueWFtbF0gb3V0cHV0IGZpbGUgbmFtZQoKICAtdCwgLS10YXJnZXRzPXRhcmdldHMgIHRhcmdldCBzbmlwcGV0IGxhbmd1YWdlcyArIGZyYW1ld29ya3MuIENhbiBiZSBwcm92aWRlZCBtdWx0aXBsZSB0aW1lcy4gSWYgaW5wdXR0aW5nIGxhbmd1YWdlIG9ubHksIGRlZmF1bHRzIHRvIG9uZSBvZiB0aGUgZnJhbWV3b3Jrcy4gU3VwcG9ydHMKICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlcyBzdXBwb3J0ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL0VyaWtXaXR0ZXJuL29wZW5hcGktc25pcHBldC4gRGVmYXVsdHMgdG8gYWRkaW5nIHNuaXBwZXRzIGZvciBBTEwgc3VwcG9ydGVkIGxhbmd1YWdlcy4KCiAgLXYsIC0tdmVyc2lvbiAgICAgICAgICBzaG93IENMSSB2ZXJzaW9uCmBgYAo= readmeEtag: '"66f502da67823c809b038892e9a42d544b64900a"' readmeLastModified: Fri, 05 Jun 2020 08:06:30 GMT repositoryId: 269371079 description: null created: '2020-06-04T13:45:15Z' updated: '2024-08-16T14:51:48Z' language: TypeScript archived: false stars: 8 watchers: 1 forks: 2 owner: richardkabiling logo: https://avatars.githubusercontent.com/u/2498349?v=4 repoEtag: '"7450c7205fde1897decd74a0ad99899eb28554ff8fbb6820b0d2a5344bfd8ea3"' repoLastModified: Fri, 16 Aug 2024 14:51:48 GMT foundInMaster: true id: e96651ada1af40ecd2c2595e9341e5ea - source: - https://openapi.tools/ - openapi3 tags name: KaiZen OpenAPI Parser repository: https://github.com/reprezen/kaizen-openapi-parser owner: RepreZen category: Parsers language: Java source_description: High-performance Parser, Validator, and Java Object Model for OpenAPI 3.x v3: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vY2RuMi5odWJzcG90Lm5ldC9odWJmcy81OTc2MTEvQXNzZXRzX1N3YWdnZXIvS2FpWmVuJTIwT3BlbkFQSSUyMFBhcnNlciUyMExvZ28lMjAobWVkaXVtKS5wbmciIGhlaWdodD0iNTAlIiB3aWR0aD0iNTAlIiBhbHQ9IkthaVplbiBPcGVuQVBJIFBhcnNlciBMb2dvIiAvPgoKIyBLYWlaZW4gT3BlbkFQSSBQYXJzZXIKCiMjIE92ZXJ2aWV3ICMjCgpUaGUgS2FpWmVuIE9wZW5BcGkgUGFyc2VyIGZyb20gUmVwcmVaZW4gaXMgYSBKYXZhLWJhc2VkIHZhbGlkYXRpbmcKcGFyc2VyIGZvciBPcGVuQVBJIDMuMCBvZmZlcmluZyBmdWxsIGNvbXBsaWFuY2Ugd2l0aCB0aGUKW09wZW5BUEkgMy4wIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKSwKYW5kIGEgaGlnaGx5IHVuaWZvcm0gcmVhZC93cml0ZSBwcm9ncmFtbWluZyBBUEkuCltPcGVuQVBJXShodHRwOi8vb3BlbmFwaXMub3JnKSwgZm9ybWVybHkga25vd24gYXMgdGhlIFN3YWdnZXIKc3BlY2lmaWNhdGlvbiwgaXMgdGhlIGluZHVzdHJ5LXN0YW5kYXJkIGZvcm1hdCBmb3IgbWFjaGluZS1yZWFkYWJsZQpSRVNUIEFQSSBkZXNjcmlwdGlvbnMuCgpGZWF0dXJlIGhpZ2hsaWdodHMgb2YgS2FpWmVuIE9wZW5BUEkgUGFyc2VyIGluY2x1ZGU6CiogKipIaWdoIFBlcmZvcm1hbmNlKiogLSBJbmZvcm1hbCB0ZXN0aW5nIHNob3dzIGEgM3gtNHggcGVyZm9ybWFuY2UKICBpbXByb3ZlbWVudCBvdmVyIHRoZSBjdXJyZW50IEphdmEgU3dhZ2dlciAyLjAgcGFyc2VyLiBUaGlzIGlzCiAgbGFyZ2VseSBhdHRyaWJ1dGFibGUgdG8gYSBkZXNpZ24gYmFzZWQgb24gYWRhcHRpbmcgSmFja3NvbgogIGBKc29uTm9kZWAgb2JqZWN0cywgcmF0aGVyIHRoYW4gZGVzZXJpYWxpemluZyB0byBpbnRlcm5hbCBQT0pPcy4KICAKKiAqKlJlYWQvV3JpdGUgQVBJKiogLSBBbGwgYXNwZWN0cyBvZiBhIG1vZGVsIG1heSBiZSBpbnRlcnJvZ2F0ZWQgYW5kCiAgbW9kaWZpZWQuIFdlIGFsc28gcGxhbiB0byBwcm92aWRlIGZsdWVudCBidWlsZGVycyBmb3IgYWxsCiAgbW9kZWwgb2JqZWN0IHR5cGVzLiBXZSBwcm92aWRlIGJpZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiB0aHJvdWdob3V0IHRoZQogIG1vZGVsLCBhbmQgZXZlcnkgb2JqZWN0IHRoYXQgaXMgYSBwcm9wZXJ0eSB2YWx1ZSBvZiBpdHMgY29udGFpbmluZwogIG9iamVjdCAod2hldGhlciBhcyBhIG5hbWVkIGZpZWxkIG9yIGEgbWFwIGVudHJ5KSBrbm93cyBpdHMgb3duIG5hbWUuCiAgCiogKipUb2xlcmFudCBSZWFkZXIqKiAtIFRoZSBwYXJzZXIgeWllbGRzIGEgZnVsbHkgYWNjZXNzaWJsZSByZXN1bHQKICBmcm9tIGFueSB2YWxpZCBKU09OIG9yIFlBTUwgaW5wdXQgLSB3aGV0aGVyIG9yIG5vdCB0aGUgaW5wdXQgaXMgYQogIHZhbGlkIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KICAKKiAqKlNlcGFyYXRlIHZhbGlkYXRpb24qKiAtIEFsbCB2YWxpZGF0aW9uIGJleW9uZCBiYXNpYwogIEpTT04vWUFNTCBwYXJzaW5nIGlzIHBlcmZvcm1lZCBhZnRlciB0aGUgaW5pdGlhbCBwYXJzZSwgYW5kIGl0IGNhbgogIGJlIGRpc2FibGVkIGZvciBzcGVlZC4gVmFsaWRhdGlvbiBnb2VzIGJleW9uZCBjaGVja2luZyB3aGF0IGNhbiBiZQogIGV4cHJlc3NlZCBpbiBKU09OIFNjaGVtYSwgdG8gaW5jbHVkZSBhbGwgcmVxdWlyZW1lbnRzIGRlc2NyaWJlZCBpbgogIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uCgoqICoqU2VyaWFsaXphdGlvbioqIC0gU2VyaWFsaXphdGlvbiB0byBKU09OIG9yIFlBTUwgaXMgc3VwcG9ydGVkLCBhbmQKICBieSBkZWZhdWx0LCByb3VuZC10cmlwcGluZyB3aWxsIG5vdCBjYXVzZSBhbnkgcmVvcmRlcmluZyBvZiBtb2RlbAogIGNvbnRlbnQuCiAgCiogKipFYXN5IEV2b2x1dGlvbioqIC0gQSBZQU1MLWJhc2VkIERTTCBpcyB1c2VkIHRvIGNhcHR1cmUgbW9zdCBvZiB0aGUKICBkZXRhaWxzIG9mIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24uIFdlIHVzZSBjb2RlIGdlbmVyYXRpb24gdG8KICBjcmVhdGUgaW50ZXJmYWNlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xhc3Nlcy4gTWVtYmVyLWxldmVsCiAgYEBHZW5lcmF0ZWRgIGFubm90YXRpb25zIG1ha2UgaXQgcG9zc2libGUgdG8gYXVnbWVudCB0aGUgZ2VuZXJhdGVkCiAgc291cmNlcyB3aXRoIG1hbnVhbCBjb2RlIHRoYXQgaXMgcHJlc2VydmVkIGR1cmluZyByZS1nZW5lcmF0aW9uLgogIAoqICoqRmxleGlibGUgUmVmZXJlbmNlIEhhbmRsaW5nKiogLSBBbGwgcmVmZXJlbmNlcyBhcmUgZGV0ZWN0ZWQgYW5kCiAgZHVyaW5nIHBhcnNpbmcsIGluY2x1ZGluZyByZWZlcmVuY2VzIG5vdCB0ZWNobmljYWxseSBwZXJtaXR0ZWQgYnkKICB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLiBSZWZlcmVuY2VzIGFyZSBub3JtYWxseSB0cmF2ZXJzZWQgCiAgYXV0b21hdGljYWxseSBieSB0aGUgQVBJLCBidXQgZnVsbCBkZXRhaWxzIG9mIHJlZmVyZW5jZXMgYW5kIAogIHRoZWlyIHJlc29sdXRpb24gc3RhdHVzIGFyZSBhbHNvIGF2YWlsYWJsZS4KICAKKiAqKlVucG9sbHV0ZWQgQVBJKiogLSBNYW55IGZlYXR1cmVzIG9mIHRoZSBwYXJzZXIgQVBJIGFyZSBub3QgZGlyZWN0bHkKICBhY2Nlc3NpYmxlIGZyb20gbW9kZWxlZCBvYmplY3RzLCBidXQgYXJlIGFjY2Vzc2VkIHZpYSBhZGFwdGVyIG9iamVjdHMuCiAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlc2UgZmVhdHVyZXMgd2lsbCBub3QgY29sbGlkZSB3aXRoIGdlbmVyYXRlZAogIG1ldGhvZHMgb2YgdGhlIG1vZGVsIEFQSSwgZXZlbiBhcyBuZXcgZmVhdHVyZXMgYXJlIGFkZGVkIHRvIHRoZQogIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpbiB0aGUgZnV0dXJlLgogICAgCiMjIERvY3VtZW50YXRpb24KClRoZSBbR2V0dGluZyBTdGFydGVkIEd1aWRlXShHZXR0aW5nU3RhcnRlZC5tZCkgc2hvd3MgaG93IHRvIGJ1aWxkIHRoZSAKc29mdHdhcmUgbG9jYWxseSwgYW5kIGNvbnRhaW5zIGEgc2ltcGxlIHNhbXBsZSBwcm9ncmFtIHRoYXQgc2hvd3MgaG93IAp0byB1c2UgdGhlIHBhcnNlci4KClRoZSBbQVBJIE92ZXJ2aWV3XShBUEktT3ZlcnZpZXcubWQpIGRlc2NyaWJlcyB0aGUgQVBJcyBwcmVzZW50ZWQgaW4KdGhlIHByb2plY3QsIGluY2x1ZGluZyB0aGUgcGFyc2VyLCB0aGUgc2VyaWFsaXplciwgdGhlIHJlYWQvd3JpdGUKbW9kZWwsIGFuZCB0aGUgdHJlYXRtZW50IG9mIHJlZmVyZW5jZXMuCgojIyBXaG8ncyB1c2luZyBLYWlaZW4gUGFyc2VyPwoKSGVyZSdzIGEgc3RhcnRpbmcgbGlzdCBvZiBwcm9qZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgdXNpbmcgS2FpWmVuIE9wZW5BUEkgUGFyc2VyLiBJZiB5b3UgZG9uJ3Qgc2VlIHlvdXIgcHJvamVjdCBoZXJlLCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvciBwdWxsIHJlcXVlc3QgdG8gYWRkIGl0OgoKfCBQcm9qZWN0IExpbmsgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tIHwgCnwgW0VjbGlwc2UgVmVydC54XShodHRwOi8vdmVydHguaW8vKSB8IEVjbGlwc2UgVmVydC54IGlzIGEgdG9vbC1raXQgZm9yIGJ1aWxkaW5nIHJlYWN0aXZlIGFwcGxpY2F0aW9ucyBvbiB0aGUgSlZNLiB8IAp8IFtMaWdodC1yZXN0LTRqXShodHRwczovL2dpdGh1Yi5jb20vbmV0d29ya250L2xpZ2h0LXJlc3QtNGopIHwgTGlnaHQtNGogUkVTVGZ1bCBmcmFtZXdvcmsgZm9yIGJ1aWxkaW5nIGZhc3QsIGxpZ2h0d2VpZ2h0IG1pY3Jvc2VydmljZXMgb24gdGhlIEpWTS4gfCAKfCBbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cDovL3JlcHJlemVuLmNvbS9PcGVuQVBJKSB8IFJlcHJlWmVuIEFQSSBTdHVkaW8gaXMgYW4gaW50ZWdyYXRlZCB3b3JrYmVuY2ggZm9yIEFQSSBkZXNpZ24sIGRvY3VtZW50YXRpb24gYW5kIGRldmVsb3BtZW50LCBidWlsdCBvbiB0aGUgRWNsaXBzZSBwbGF0Zm9ybS4gfCAKCgojIyBDdXJyZW50IFN0YXRlCgoqIFRoZSBwYXJzZXIgaXMgY3VycmVudGx5IGJhc2VkIG9uIHRoZSBwcmUtcmVsZWFzZSBbcmV2aXNpb24gMy4wLjAtcmMwXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL2QyMzJlNmQzZTFlYTQwMzhhNTMzMzI5YTgyODc2YWU4NjhlOWNmMTMvdmVyc2lvbnMvMy4wLm1kKS4gV2UgYXJlIG5lYXJseSByZWFkeSB3aXRoIGFuIHVwZ3JhZGUgdG8gdGhlIFszLjAuMiBkcmFmdCByZXZpc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi92My4wLjItZGV2L3ZlcnNpb25zLzMuMC4yLm1kKS4KCiogVGhlIFtKc29uT3ZlcmxheSBQcm9qZWN0XShodHRwczovL2dpdGh1Yi5jb20vUmVwcmVaZW4vSnNvbk92ZXJsYXkpIGlzIGEgZnJhbWV3b3JrIGZvciBjcmVhdGluZyBwYXJzZXJzIGFuZCBBUElzIGZvciBZQU1ML0pTT04gYmFzZWQgRFNMcy4gSXQgaXMgdGhlIGJhY2tib25lIG9mIHRoZSBLYWlaZW4gT3BlbkFwaSBQYXJzZXIuIEZlYXR1cmVzIHRoYXQgdGhhdCBpdCBwcm92aWRlcyBpbmNsdWRlOgogCiAgKiBSZWFkLVdyaXRlIEFQSSBmb3IgYWxsIG1vZGVsIG9iamVjdHMsIGJhc2VkIG9uIGEgWUFNTCBkb2N1bWVudCB0aGF0IGRlc2NyaWJlcyB0aGUgT3BlbkFQSSBtb2RlbCBzdHJ1Y3R1cmUKICAqIEZhY3RvcmllcyBmb3IgbW9kZWwgb2JqZWN0cyAodXNlZCBpbnRlcm5hbGx5LCBidXQgbm90IGN1cnJlbnRseSB3ZWxsIGV4cG9zZWQgdG8gdXNlciBjb2RlOyB0aGF0IHdpbGwgY2hhbmdlIHNob3J0bHkpCiAgKiBGdWxsIGhhbmRsaW5nIG9mIGFsbCByZWZlcmVuY2VzLgogICogU2VyaWFsaXphdGlvbiwgcmVmZXJlbmNlIGluc3BlY3Rpb24sIG5hdmlnYXRpb24sIGFuZCBudW1lcm91cyBvdGhlciBmZWF0dXJlcyB2aWEgaXRzIGBPdmVybGF5YCBhZGFwdGVyIGNsYXNzZXMuCiAgKiBQb3NpdGlvbi1hd2FyZSBwYXJzZXIgcHJvdmlkaW5nIFVSTCwgbGluZSBhbmQgZmlsZSBudW1iZXIgZm9yIGFsbCBwYXJzZWQgb2JqZWN0cywgYXZhaWxhYmxlIHRocm91Z2ggYE92ZXJsYXlgIGFkYXB0ZXJzIGFuZCB1c2VkIGJ5IHRoZSBLYWlaZW4gcGFyc2VyIGluIGl0cyB2YWxpZGF0aW9uIG1lc3NhZ2VzLgoKKiBWYWxpZGF0aW9ucyBhcmUgY3VycmVudGx5IGFsbCBjb250YWluZWQgd2l0aGluIHRoaXMgcHJvamVjdCwgaG93ZXZlciBtYW55IHJvdXRpbmUgdmFsaWRhdGlvbnMgKGUuZy4gdmFsaWRhdGluZyBwcm9wZXIgSlNPTiB0eXBlcyB0aHJvdWdob3V0IGEgbW9kZWwgZG9jdW1lbnQsIGNoZWNraW5nIHRoYXQgcmVxdWlyZWQgcHJvcGVydGllcyBhcmUgcHJlc2VudCwgZXRjLikgd2lsbCBhdCBzb21lIHBvaW50IGJlIG1vdmVkIGludG8gdGhlIEpzb25PdmVybGF5IHByb2plY3QuCgoqIE1vc3QgdmFsaWRhdGlvbnMgYXJlIHByZXNlbnQsIGJ1dCB0aGVyZSBhcmUgYSBudW1iZXIgdGhhdCBhcmUgY3VycmVudGx5IG1pc3NpbmcsIGFuZCBzb21lIGV4aXN0aW5nIHZhbGlkYXRpb25zIHN0aWxsIHJlZmxlY3QgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpbiBpdHMgcHJlLXJlbGVhc2UgcmV2aXNpb24gMy4wLjAtcmMwLiBXb3JrIGlzIHVuZGVyd2F5IG9uIElzc3VlICMyNl0oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL0thaVplbi1PcGVuQXBpLVBhcnNlci9pc3N1ZXMvMjYpLCB3aGljaCBzaG91bGQgcmVzdWx0IGluIGEgY29tcGxldGUgYW5kIHJvYnVzdCBpbXBsZW1lbnRhdGlvbiBvZiBhbGwgbW9kZWwgdmFsaWRhdGlvbnMsIHVwZGF0ZWQgdG8gdGhlIDMuMC4yIHJldmlzaW9uIChjdXJyZW50bHkgaW4gZHJhZnQgc3RhdHVzKS4KCiogU2VyaWFsaXphdGlvbiBpcyBhdmFpbGFibGUgdmlhIHRoZSBgT3ZlcmxheWAgYWRhcHRlcidzIGB0b0pzb25gIG1ldGhvZC4gQnkgZGVmYXVsdCByZWZlcmVuY2VzIGFwcGVhciBpbiB0aGUgc2VyaWFsaXplZCBvdXRwdXQsIGJ1dCBhbiBvcHRpb24gY2F1c2VzIHJlZmVyZW5jZXMgdG8gYmUgZm9sbG93ZWQgYW5kIGlubGluZWQgaW4gdGhlIG91dHB1dC4gUmVjdXJzaXZlIHJlZmVyZW5jZXMgY2F1c2Ugc2VyaWFsaXphdGlvbiB0byBibG93IHVwIGlmIHRoaXMgb3B0aW9uIGlzIHVzZWQuCiAgLSBBIHNlcGFyYXRlIGNvbXBvbmVudCwgY2FsbGVkICJPcGVuQVBJIE5vcm1hbGl6ZXIsIiB3aWxsIHNvb24gYmUgbWFkZSBhdmFpbGFibGUgdGhhdCB3aWxsIHByb3ZpZGUgbXVjaCBncmVhdGVyIGNvbnRyb2wgb3ZlciB0aGUgdHJlYXRtZW50IG9mIHJlZmVyZW5jZXMuIFRoaXMgaXMgY3VycmVudGx5IGEgcHJpdmF0ZSBmZWF0dXJlIGVtYmVkZGVkIGluIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwczovL3d3dy5yZXByZXplbi5jb20vKS4gSXRzIHByaW1hcnkgZnVuY3Rpb24gaXMgdG8gdHVybiBhbiBPcGVuQVBJIG1vZGVsIHNwcmVhZCBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMgaW50byBhbiBlcXVpdmFsZW50IHNpbmdsZS1maWxlIG1vZGVsLiBPcHRpb25zIGNvbnRyb2wgd2hpY2ggcmVmZXJlbmNlcyBhcmUgaW5saW5lZCwgYW5kIHdoaWNoIGFyZSBfbG9jYWxpemVkXyBhcyBuYW1lZCBjb21wb25lbnQgb2JqZWN0cyBpbiB0aGUgY29uc3RydWN0ZWQgc2luZ2xlLWZpbGUgbW9kZWwuCiAgCiogQSBoYW5kZnVsIG9mIGhpZ2gtbGV2ZWwgdGVzdHMgaGF2ZSBiZWVuIGltcGxlbWVudGVkOgogIC0gKkJpZ1BhcnNlVGVzdCogcGFyc2VzIGEgbGFyZ2UgbW9kZWwgd2l0aG91dCB2YWxpZGF0aW9uIGFuZCBjaGVja3MKICAgIHRoYXQgZXZlcnkgdmFsdWUgbm9kZSBpbiB0aGUgaW5wdXQgaXMgYWNjZXNzaWJsZSBpbiB0aGUgZXhwZWN0ZWQKICAgIGZhc2hpb24gaW4gdGhlIHJlc3VsdGluZyBtb2RlbCBvYmplY3QuCiAgLSAqRXhhbXBsZXNUZXN0KiAtIFBhcnNlcyBhbmQgdmFsaWRhdGVzIGFsbCBleGFtcGxlIG1vZGVscyBjdXJyZW50bHkKICAgIGluIHRoZSB0aGUgYE9BSS9PcGVuQVBJLVNwZWNpZmljYXRpb25gIEdpdEh1YiByZXBvLgoKICAgIE1hbnkgbW9yZSB0ZXN0cyBhcmUgcmVxdWlyZWQhCgoqIEZldyBKYXZhRG9jcyBleGlzdCBhdCBwcmVzZW50LCB1bmZvcnR1bmF0ZWx5LiBUaGVyZSdzIGFuIG9wZW4gaXNzdWUKICB0byBjb3JyZWN0IHRoYXQuCgojIyMgUGFja2FnZXMKCl9Tb21lIG9mIHRoZXNlIHBhY2thZ2VzIGFyZSBsaWtlbHkgdG8gYmUgcmVmYWN0b3JlZCBvdXQgaW50byBzZXBhcmF0ZQpjb21wb25lbnQgTWF2ZW4gcHJvamVjdHMuXwoKQWxsIHBhY2thZ2VzIGFyZSBwcmVmaXhlZCBieSBgY29tLnJlcHJlemVuLmthaXplbmAKCiogYG9hc3BhcnNlcmA6IFRvcC1sZXZlbCBwYWNrYWdlLCBkaXJlY3RseSBpbmNsdWRlcwogIGBPcGVuQXBpUGFyc2VyYCBjbGFzcyBhbmQgc29tZSB0aGluZ3MgcmVsYXRlZCB0byBjb2RlIGdlbmVyYXRpb24uCiAgCiogYG9hc3BhcnNlci5tb2RlbDNgOiBHZW5lcmF0ZWQgbW9kZWwgaW50ZXJmYWNlcyAoZ2VuZXJhdGVkIGJ5IEpzb25PdmVybGF5KQoKKiBgb2FzcGFyc2VyLm92bDNgOiBHZW5lcmF0ZWQgbW9kZWwgaW1wbGVtZW50YXRpb24gY2xhc3NlcyAoZ2VuZXJhdGVkIGJ5IEpzb25PdmVybGF5KQoKKiBgb2FzcGFyc2VyLnZhbGA6IEJhc2UgY2xhc3NlcyBmb3IgdmFsaWRhdG9ycwoKKiBgb2FzcGFyc2VyLnZhbDNgOiBWYWxpZGF0b3JzIGZvciBhbGwgT3BlbkFQSSBvYmplY3RzLgoKKiBgb2FzcGFyc2VyLnRlc3RgOiBUaGUgaGFuZGZ1bCBvZiB0ZXN0cyB0aGF0IGhhdmUgYmVlbgogIGltcGxlbWVudGVkIHNvIGZhci4gTW9yZSBuZWVkZWQKCgojIyBMaWNlbnNlCkthaVplbiBPcGVuQVBJIFBhcnNlciBpcyBwcm92aWRlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAoaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sKQoKIyMgQ29udHJpYnV0aW5nCgpXZSB3ZWxjb21lIHNlcmlvdXMgY29udHJpYnV0b3JzLiBIb3dldmVyLCB3ZSBhcmUgYXQgYW4gZWFybHkgYW5kCmZhc3QtY2hhbmdpbmcgcGhhc2UgaW4gdGhpcyBwcm9qZWN0LCBzbyB3ZSByZWNvbW1lbmQgY29vcmRpbmF0aW5nCndpdGggdXMgYmVmb3JlIGRpdmluZyBpbnRvIGEganVpY3kgYml0IG9mIGNvZGluZy4gVGhpcyBtaWdodCBzcGFyZSAKeW91IHRoZSBmcnVzdHJhdGlvbiBvZiBmaW5kaW5nIHRoYXQgc29tZSBzd2VlcGluZyBsb3ctbGV2ZWwgY2hhbmdlCmhhcyByZW5kZXJlZCB5b3VyIGVmZm9ydHMgdW51c2FibGUuCgpJZiB5b3Ugd291bGQgbGlrZSB0byB3b3JrIHdpdGggdXMsIHBsZWFzZSBkcm9wIHVzIGEgbGluZSBhdApBUEkuQ29tbXVuaXR5QFJlcHJlWmVuLmNvbSwgb3Igb3BlbiBhIG5ldyBpc3N1ZSBpZiB5b3UgaGF2ZQphIHN1Z2dlc3Rpb24gb3Igd2FudCB0byByZXBvcnQgYSBidWcgb3Igb21pc3Npb24uCgojIyBSZXNvdXJjZXMKKiBCbG9nIFBvc3Q6IFtJbnRyb2R1Y2luZyBLYWlaZW4gT3BlbkFQSSAzLjAgUGFyc2VyOiBmYXN0LCBmbGV4aWJsZSBKYXZhIHBhcnNpbmcgJiB2YWxpZGF0aW9uXShodHRwOi8vd3d3LnJlcHJlemVuLmNvbS9ibG9nL2thaXplbi1vcGVuYXBpLTNfMC1wYXJzZXItc3dhZ2dlci1qYXZhLW9wZW4tc291cmNlKQoqIFtHZXR0aW5nIFN0YXJ0ZWQgR3VpZGVdKEdldHRpbmdTdGFydGVkLm1kKQoqIFtBUEkgT3ZlcnZpZXddKEFQSS1PdmVydmlldy5tZCkK readmeEtag: '"65b773015321acdbf3de73891ebfec4619170091"' readmeLastModified: Wed, 17 Jul 2019 13:54:46 GMT repositoryId: 86403618 description: High-performance Parser, Validator, and Java Object Model for OpenAPI 3.x created: '2017-03-28T02:00:01Z' updated: '2024-07-19T11:55:42Z' language: Java archived: false stars: 130 watchers: 9 forks: 31 owner: RepreZen logo: https://avatars.githubusercontent.com/u/15205934?v=4 repoEtag: '"96593c4b4400a620fbaf782b3f4668a7807c2e62bb65e5b494793b9fb7010a8c"' repoLastModified: Fri, 19 Jul 2024 11:55:42 GMT foundInMaster: true homepage: https://github.com/RepreZen/KaiZen-OpenAPI-Parser id: f542543d6021da9cbce2c66599690853 - source: https://openapi.tools/ name: OpenAPI-TS homepage: https://github.com/metadevpro/openapi3-ts language: TypeScript source_description: TS Model & utils for OpenAPI 3.0.x contracts category: Parsers repository: https://github.com/metadevpro/openapi3-ts v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQXBpMy1UUwoKVHlwZVNjcmlwdCBsaWJyYXJ5IHRvIGhlbHAgYnVpbGRpbmcgT3BlbkFQSSAzLnggY29tcGxpYW50IEFQSSBjb250cmFjdHMuCgpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9tZXRhZGV2cHJvL29wZW5hcGkzLXRzL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL21ldGFkZXZwcm8vb3BlbmFwaTMtdHM/YnJhbmNoPW1hc3RlcikKWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvbWV0YWRldnByby9vcGVuYXBpMy10cy9iYWRnZS5zdmc/dGFyZ2V0RmlsZT1wYWNrYWdlLmpzb24pXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvbWV0YWRldnByby9vcGVuYXBpMy10cz90YXJnZXRGaWxlPXBhY2thZ2UuanNvbikKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9vcGVuYXBpMy10cy5zdmcpXShodHRwOi8vYmFkZ2UuZnVyeS5pby9qcy9vcGVuYXBpMy10cykKClshW05QTV0oaHR0cHM6Ly9ub2RlaS5jby9ucG0vb3BlbmFwaTMtdHMucG5nP2Rvd25sb2Fkcz10cnVlJmRvd25sb2FkUmFuaz10cnVlJnN0YXJzPXRydWUpXShodHRwczovL25vZGVpLmNvL25wbS9vcGVuYXBpMy10cy8pCgojIyBWZXJzaW9uIDQKCipCcmVha2luZyBjaGFuZ2Ugbm90aWNlOioKClZlcnNpb24gNC4wIEFkZHMgZXhwbGljaXQgc3VwcG9ydCBmb3IgT0FTIDMuMCBhbmQgT0FTIDMuMSBhcyBzZXBhcmF0ZSBpbXBsZW1lbnRhdGlvbnMuCgojIyMgVG8gdXNlIHZlcnNpb24gMy4xIGltcG9ydAoKYGBganMKaW1wb3J0IHsgb2FzMzEgfSBmcm9tICdvcGVuYXBpMy10cyc7CmBgYAoKT3IgZGlyZWN0bHkgaW1wb3J0IGZyb20gc3VicGF0aDoKCmBgYGpzCmltcG9ydCB7IE9wZW5BUElPYmplY3QsIE9wZW5BcGlCdWlsZGVyIH0gZnJvbSAnb3BlbmFwaTMtdHMvb2FzMzEnOwpgYGAKCiMjIyBUbyB1c2UgdmVyc2lvbiAzLjAgaW1wb3J0CgpgYGBqcwppbXBvcnQgeyBvYXMzMCB9IGZyb20gJ29wZW5hcGkzLXRzJzsKYGBgCgpPciBkaXJlY3RseSBpbXBvcnQgZnJvbSBzdWJwYXRoOgoKYGBganMKaW1wb3J0IHsgT3BlbkFQSU9iamVjdCwgT3BlbkFwaUJ1aWxkZXIgfSBmcm9tICdvcGVuYXBpMy10cy9vYXMzMCc7CmBgYAoKIyMgSW5jbHVkZXMKCiogYC9zcmMvbW9kZWxgIFRTIHR5cGVkIGludGVyZmFjZXMgZm9yIGhlbHBpbmcgYnVpbGRpbmcgYSBjb250cmFjdC4KKiBgL3NyYy9kc2xgIEZsdWVudCBEU0wgZm9yIGJ1aWxkaW5nIGEgY29udHJhY3QuCgojIyBJbnN0YWxsCgpJbnN0YWxsIHBhY2thZ2UgdmlhICoqbnBtKio6CgpgYGBiYXNoCm5wbSBpIC0tc2F2ZSBvcGVuYXBpMy10cwpgYGAKCiMjIERvY3VtZW50YXRpb24sIFZlcnNpb25zLCBhbmQgQ2hhbmdlbG9nCgoqIFtEb2N1bWVudGF0aW9uXShkb2NzL2luZGV4Lm1kKS4KKiBTZWUgW2NoYW5nZWxvZ10oQ2hhbmdlbG9nLm1kKSBmb3IgdmVyc2lvbiBhbmQgY2hhbmdlcy4KCiMjIFJlZmVyZW5jZXMKCiogT3BlbkFQSSBzcGVjIDMuMS4wLiBbaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4xLjAubWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMS4wLm1kKQoKIyMgTGljZW5zZQoKTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLgoKIyMgQ3JlZGl0cwoKKipDb250YWN0OioqIFBlZHJvIEouIE1vbGluYSB8IGdpdGh1YjogW3BqbW9saW5hXShodHRwczovL2dpdGh1Yi5jb20vcGptb2xpbmEpIHwgdHdpdHRlcjogW3Btb2xpbmFtXShodHRwczovL3R3aXR0ZXIuY29tL3Btb2xpbmFtKQoKKGMpIDIwMTctMjAyNC4gW1BlZHJvIEouIE1vbGluYV0oaHR0cDovL3BqbW9saW5hLmNvbSkgYXQgTWV0YWRldiBTLkwuIFtodHRwczovL21ldGFkZXYucHJvXShodHRwczovL21ldGFkZXYucHJvKSAmIGNvbnRyaWJ1dG9ycy4K readmeEtag: '"12f647d08b21592b28224cc4ed886b16d9bc840f"' readmeLastModified: Mon, 10 Jun 2024 15:05:07 GMT repositoryId: 84108450 description: TS Model & utils for creating and exposing OpenAPI 3.x contracts. created: '2017-03-06T18:47:56Z' updated: '2024-09-04T03:02:15Z' language: TypeScript archived: false stars: 470 watchers: 7 forks: 64 owner: metadevpro logo: https://avatars.githubusercontent.com/u/24300914?v=4 license: MIT repoEtag: '"268b4c1f1716168a29fc4dca1075f92278da49f0350ba8faafd280a5d1ce9e4d"' repoLastModified: Wed, 04 Sep 2024 03:02:15 GMT foundInMaster: true id: 390339b2a28f2e5660519a2422c29196 - source: - https://openapi.tools/ - openapi3 tags name: kin-openapi homepage: https://github.com/getkin/kin-openapi language: Go source_description: >- OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more) category: - Parsers - Data Validators repository: https://github.com/getkin/kin-openapi v3: true repositoryMetadata: base64Readme: >- WyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvd29ya2Zsb3dzL2dvL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvYWN0aW9ucykKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaSldKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkpClshW0dvRG9jXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaT9zdGF0dXMuc3ZnKV0oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkpClshW0pvaW4gR2l0dGVyIENoYXQgQ2hhbm5lbCAtXShodHRwczovL2JhZGdlcy5naXR0ZXIuaW0vZ2V0a2luL2tpbi5zdmcpXShodHRwczovL2dpdHRlci5pbS9nZXRraW4va2luP3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UmdXRtX2NvbnRlbnQ9YmFkZ2UpCgojIEludHJvZHVjdGlvbgpBIFtHb10oaHR0cHM6Ly9nb2xhbmcub3JnKSBwcm9qZWN0IGZvciBoYW5kbGluZyBbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgZmlsZXMuIFdlIHRhcmdldDoKKiBbT3BlbkFQSSBgdjIuMGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8yLjAubWQpIChmb3JtZXJseSBrbm93biBhcyBTd2FnZ2VyKQoqIFtPcGVuQVBJIGB2My4wYF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4zLm1kKQoqIFtPcGVuQVBJIGB2My4xYF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kKSBTb29uISBbVHJhY2tpbmcgaXNzdWUgaGVyZS5dKGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvaXNzdWVzLzIzMCkKCkxpY2Vuc2VkIHVuZGVyIHRoZSBbTUlUIExpY2Vuc2VdKC4vTElDRU5TRSkuCgojIyBDb250cmlidXRvcnMsIHVzZXJzIGFuZCBzcG9uc29ycwpUaGUgcHJvamVjdCBoYXMgcmVjZWl2ZWQgcHVsbCByZXF1ZXN0cyBbZnJvbSBtYW55IHBlb3BsZV0oaHR0cHM6Ly9naXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaS9ncmFwaHMvY29udHJpYnV0b3JzKS4gVGhhbmtzIHRvIGV2ZXJ5b25lIQoKUGxlYXNlLCBbZ2l2ZSBiYWNrIHRvIHRoaXMgcHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL2Zlbm9sbHApIGJ5IGJlY29taW5nIGEgc3BvbnNvci4KCkhlcmUncyBzb21lIHByb2plY3RzIHRoYXQgZGVwZW5kIG9uIF9raW4tb3BlbmFwaV86CiAgKiBbZ2l0aHViLmNvbS9hLWgvcmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL2EtaC9yZXN0KSAtICJHZW5lcmF0ZSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9ucyBmcm9tIEdvIGNvZGUgd2l0aG91dCBhbm5vdGF0aW9ucyBvciBtYWdpYyBjb21tZW50cyIKICAqIFtnaXRodWIuY29tL1R1ZmluL29hc2RpZmZdKGh0dHBzOi8vZ2l0aHViLmNvbS9UdWZpbi9vYXNkaWZmKSAtICJBIGRpZmYgdG9vbCBmb3IgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDMiCiAgKiBbZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2FwaXNwcm91dF0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvYXBpc3Byb3V0KSAtICJMaWdodHdlaWdodCwgYmxhemluZyBmYXN0LCBjcm9zcy1wbGF0Zm9ybSBPcGVuQVBJIDMgbW9jayBzZXJ2ZXIgd2l0aCB2YWxpZGF0aW9uIgogICogW2dpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbikgLSAiR2VuZXJhdGUgR28gY2xpZW50IGFuZCBzZXJ2ZXIgYm9pbGVycGxhdGUgZnJvbSBPcGVuQVBJIDMgc3BlY2lmaWNhdGlvbnMiCiAgKiBbZ2l0aHViLmNvbS9kdW5nbGFzL3Z1bGNhaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kdW5nbGFzL3Z1bGNhaW4pIC0gIlVzZSBIVFRQLzIgU2VydmVyIFB1c2ggdG8gY3JlYXRlIGZhc3QgYW5kIGlkaW9tYXRpYyBjbGllbnQtZHJpdmVuIFJFU1QgQVBJcyIKICAqIFtnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvcmVzdGlzaF0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvcmVzdGlzaCkgLSAiLi4uYSBDTEkgZm9yIGludGVyYWN0aW5nIHdpdGggUkVTVC1pc2ggSFRUUCBBUElzIHdpdGggc29tZSBuaWNlIGZlYXR1cmVzIGJ1aWx0LWluIgogICogW2dpdGh1Yi5jb20vZ29hZGVzaWduL2dvYV0oaHR0cHM6Ly9naXRodWIuY29tL2dvYWRlc2lnbi9nb2EpIC0gIkRlc2lnbi1iYXNlZCBBUElzIGFuZCBtaWNyb3NlcnZpY2VzIGluIEdvIgogICogW2dpdGh1Yi5jb20vaGFzaGljb3JwL25vbWFkLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvbm9tYWQtb3BlbmFwaSkgLSAiTm9tYWQgaXMgYW4gZWFzeS10by11c2UsIGZsZXhpYmxlLCBhbmQgcGVyZm9ybWFudCB3b3JrbG9hZCBvcmNoZXN0cmF0b3IgdGhhdCBjYW4gZGVwbG95IGEgbWl4IG9mIG1pY3Jvc2VydmljZSwgYmF0Y2gsIGNvbnRhaW5lcml6ZWQsIGFuZCBub24tY29udGFpbmVyaXplZCBhcHBsaWNhdGlvbnMuIE5vbWFkIGlzIGVhc3kgdG8gb3BlcmF0ZSBhbmQgc2NhbGUgYW5kIGhhcyBuYXRpdmUgQ29uc3VsIGFuZCBWYXVsdCBpbnRlZ3JhdGlvbnMuIgogICogW2dpdGxhYi5jb20vamFtaWV0YW5uYS9odHRwdGVzdC1vcGVuYXBpXShodHRwczovL2dpdGxhYi5jb20vamFtaWV0YW5uYS9odHRwdGVzdC1vcGVuYXBpKSAoWypibG9nIHBvc3QqXShodHRwczovL3d3dy5qdnQubWUvcG9zdHMvMjAyMi8wNS8yMi9nby1vcGVuYXBpLWNvbnRyYWN0LXRlc3QvKSkgLSAiR28gT3BlbkFQSSBDb250cmFjdCBWZXJpZmljYXRpb24gZm9yIHVzZSB3aXRoIGBuZXQvaHR0cGAiCiAgKiBbZ2l0aHViLmNvbS9TSU1JVEdST1VQL29wZW5hcGlnZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9TSU1JVEdST1VQL29wZW5hcGlnZW5lcmF0b3IpIC0gIk9wZW5hcGkgdjMgbWljcm9zZXJ2aWNlcyBnZW5lcmF0b3IiCiAgKiBbaHR0cHM6Ly9naXRodWIuY29tL3Byb2plY3RzdmVsdG9zL2FkZG9uLWNvbnRyb2xsZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZWN0c3ZlbHRvcy9hZGRvbi1jb250cm9sbGVyKSAtICJLdWJlcm5ldGVzIGFkZC1vbiBjb250cm9sbGVyIGRlc2lnbmVkIHRvIG1hbmFnZSB0ZW5zIG9mIGNsdXN0ZXJzLiIKICAqIChGZWVsIGZyZWUgdG8gYWRkIHlvdXIgcHJvamVjdCBieSBbY3JlYXRpbmcgYW4gaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvaXNzdWVzL25ldykgb3IgYSBwdWxsIHJlcXVlc3QpCgojIyBBbHRlcm5hdGl2ZXMKKiBbbGlib3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGkpIGEgZnVsbHkgZmVhdHVyZWQsIGhpZ2ggcGVyZm9ybWFuY2UgT3BlbkFQSSAzLjEsIDMuMCBhbmQgU3dhZ2dlciBwYXJzZXIsIGxpYnJhcnksIHZhbGlkYXRvciBhbmQgdG9vbGtpdAoqIFtnby1zd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vZ28tc3dhZ2dlci9nby1zd2FnZ2VyKSBzdGF0ZWQgWypPcGVuQVBJdjMgd29uJ3QgYmUgc3VwcG9ydGVkKl0oaHR0cHM6Ly9naXRodWIuY29tL2dvLXN3YWdnZXIvZ28tc3dhZ2dlci9pc3N1ZXMvMTEyMiNpc3N1ZWNvbW1lbnQtNTc1OTY4NDk5KQoqIFtzd2FnZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ28vc3dhZykgaGFzIGFuIFtvcGVuIGlzc3VlIG9uIE9wZW5BUEl2M10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnby9zd2FnL2lzc3Vlcy8zODYpCiogW2dvLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1vcGVuYXBpKSdzIFtzcGVjM10oaHR0cHM6Ly9naXRodWIuY29tL2dvLW9wZW5hcGkvc3BlYzMpCgkqIGFuIGl0ZXJhdGlvbiBvbiBbc3BlY10oaHR0cHM6Ly9naXRodWIuY29tL2dvLW9wZW5hcGkvc3BlYykgKGZvciBPcGVuQVBJdjIpCgkqIHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vZ28tb3BlbmFwaS9zcGVjMy90cmVlLzNmYWI5ZmFhOTA5NGUwNmViZDE5ZGVkN2VhOTZkMTU2YzIyODNkY2Ejb2FpLW9iamVjdC1tb2RlbC0tLSkgZm9yIHRoZSBtaXNzaW5nIHBhcnRzCgpCZSBzdXJlIHRvIGNoZWNrIFtPcGVuQVBJIEluaXRpYXRpdmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkpJ3MgW2dyZWF0IHRvb2xpbmcgbGlzdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvSU1QTEVNRU5UQVRJT05TLm1kKSBhcyB3ZWxsIGFzIFtPcGVuQVBJLlRvb2xzXShodHRwczovL29wZW5hcGkudG9vbHMvKS4KCiMgU3RydWN0dXJlCiAgKiBfb3BlbmFwaTJfIChbZ29kb2NdKGh0dHBzOi8vZ29kb2Mub3JnL2dpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpL29wZW5hcGkyKSkKICAgICogU3VwcG9ydCBmb3IgT3BlbkFQSSAyIGZpbGVzLCBpbmNsdWRpbmcgc2VyaWFsaXphdGlvbiwgZGVzZXJpYWxpemF0aW9uLCBhbmQgdmFsaWRhdGlvbi4KICAqIF9vcGVuYXBpMmNvbnZfIChbZ29kb2NdKGh0dHBzOi8vZ29kb2Mub3JnL2dpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpL29wZW5hcGkyY29udikpCiAgICAqIENvbnZlcnRzIE9wZW5BUEkgMiBmaWxlcyBpbnRvIE9wZW5BUEkgMyBmaWxlcy4KICAqIF9vcGVuYXBpM18gKFtnb2RvY10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvb3BlbmFwaTMpKQogICAgKiBTdXBwb3J0IGZvciBPcGVuQVBJIDMgZmlsZXMsIGluY2x1ZGluZyBzZXJpYWxpemF0aW9uLCBkZXNlcmlhbGl6YXRpb24sIGFuZCB2YWxpZGF0aW9uLgogICogX29wZW5hcGkzZmlsdGVyXyAoW2dvZG9jXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaS9vcGVuYXBpM2ZpbHRlcikpCiAgICAqIFZhbGlkYXRlcyBIVFRQIHJlcXVlc3RzIGFuZCByZXNwb25zZXMKICAgICogUHJvdmlkZXMgYSBbZ29yaWxsYS9tdXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb3JpbGxhL211eCkgcm91dGVyIGZvciBPcGVuQVBJIG9wZXJhdGlvbnMKICAqIF9vcGVuYXBpM2dlbl8gKFtnb2RvY10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvb3BlbmFwaTNnZW4pKQogICAgKiBHZW5lcmF0ZXMgYCpvcGVuYXBpMy5TY2hlbWFgIHZhbHVlcyBmb3IgR28gdHlwZXMuCgojIFNvbWUgcmVjaXBlcwojIyBWYWxpZGF0aW5nIGFuIE9wZW5BUEkgZG9jdW1lbnQKYGBgc2hlbGwKZ28gcnVuIGdpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpL2NtZC92YWxpZGF0ZUBsYXRlc3QgWy0tY2lyY3VsYXJdIFstLWRlZmF1bHRzXSBbLS1leGFtcGxlc10gWy0tZXh0XSBbLS1wYXR0ZXJuc10gLS0gPGxvY2FsIFlBTUwgb3IgSlNPTiBmaWxlPgpgYGAKCiMjIExvYWRpbmcgT3BlbkFQSSBkb2N1bWVudApVc2UgYG9wZW5hcGkzLkxvYWRlcmAsIHdoaWNoIHJlc29sdmVzIGFsbCByZWZlcmVuY2VzOgpgYGBnbwpsb2FkZXIgOj0gb3BlbmFwaTMuTmV3TG9hZGVyKCkKZG9jLCBlcnIgOj0gbG9hZGVyLkxvYWRGcm9tRmlsZSgibXktb3BlbmFwaS1zcGVjLmpzb24iKQpgYGAKCiMjIEdldHRpbmcgT3BlbkFQSSBvcGVyYXRpb24gdGhhdCBtYXRjaGVzIHJlcXVlc3QKYGBgZ28KbG9hZGVyIDo9IG9wZW5hcGkzLk5ld0xvYWRlcigpCmRvYywgXyA6PSBsb2FkZXIuTG9hZEZyb21EYXRhKFtdYnl0ZShgLi4uYCkpCl8gPSBkb2MuVmFsaWRhdGUobG9hZGVyLkNvbnRleHQpCnJvdXRlciwgXyA6PSBnb3JpbGxhbXV4Lk5ld1JvdXRlcihkb2MpCnJvdXRlLCBwYXRoUGFyYW1zLCBfIDo9IHJvdXRlci5GaW5kUm91dGUoaHR0cFJlcXVlc3QpCi8vIERvIHNvbWV0aGluZyB3aXRoIHJvdXRlLk9wZXJhdGlvbgpgYGAKCiMjIFZhbGlkYXRpbmcgSFRUUCByZXF1ZXN0cy9yZXNwb25zZXMKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImNvbnRleHQiCgkiZm10IgoJIm5ldC9odHRwIgoKCSJnaXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaS9vcGVuYXBpMyIKCSJnaXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaS9vcGVuYXBpM2ZpbHRlciIKCSJnaXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaS9yb3V0ZXJzL2dvcmlsbGFtdXgiCikKCmZ1bmMgbWFpbigpIHsKCWN0eCA6PSBjb250ZXh0LkJhY2tncm91bmQoKQoJbG9hZGVyIDo9ICZvcGVuYXBpMy5Mb2FkZXJ7Q29udGV4dDogY3R4LCBJc0V4dGVybmFsUmVmc0FsbG93ZWQ6IHRydWV9Cglkb2MsIF8gOj0gbG9hZGVyLkxvYWRGcm9tRmlsZSgiLi4uL015LU9wZW5BUEl2My1BUEkueW1sIikKCS8vIFZhbGlkYXRlIGRvY3VtZW50CglfID0gZG9jLlZhbGlkYXRlKGN0eCkKCXJvdXRlciwgXyA6PSBnb3JpbGxhbXV4Lk5ld1JvdXRlcihkb2MpCglodHRwUmVxLCBfIDo9IGh0dHAuTmV3UmVxdWVzdChodHRwLk1ldGhvZEdldCwgIi9pdGVtcyIsIG5pbCkKCgkvLyBGaW5kIHJvdXRlCglyb3V0ZSwgcGF0aFBhcmFtcywgXyA6PSByb3V0ZXIuRmluZFJvdXRlKGh0dHBSZXEpCgoJLy8gVmFsaWRhdGUgcmVxdWVzdAoJcmVxdWVzdFZhbGlkYXRpb25JbnB1dCA6PSAmb3BlbmFwaTNmaWx0ZXIuUmVxdWVzdFZhbGlkYXRpb25JbnB1dHsKCQlSZXF1ZXN0OiAgICBodHRwUmVxLAoJCVBhdGhQYXJhbXM6IHBhdGhQYXJhbXMsCgkJUm91dGU6ICAgICAgcm91dGUsCgl9CglfID0gb3BlbmFwaTNmaWx0ZXIuVmFsaWRhdGVSZXF1ZXN0KGN0eCwgcmVxdWVzdFZhbGlkYXRpb25JbnB1dCkKCgkvLyBIYW5kbGUgdGhhdCByZXF1ZXN0CgkvLyAtLT4gWU9VUiBDT0RFIEdPRVMgSEVSRSA8LS0KCXJlc3BvbnNlSGVhZGVycyA6PSBodHRwLkhlYWRlcnsiQ29udGVudC1UeXBlIjogW11zdHJpbmd7ImFwcGxpY2F0aW9uL2pzb24ifX0KCXJlc3BvbnNlQ29kZSA6PSAyMDAKCXJlc3BvbnNlQm9keSA6PSBbXWJ5dGUoYHt9YCkKCgkvLyBWYWxpZGF0ZSByZXNwb25zZQoJcmVzcG9uc2VWYWxpZGF0aW9uSW5wdXQgOj0gJm9wZW5hcGkzZmlsdGVyLlJlc3BvbnNlVmFsaWRhdGlvbklucHV0ewoJCVJlcXVlc3RWYWxpZGF0aW9uSW5wdXQ6IHJlcXVlc3RWYWxpZGF0aW9uSW5wdXQsCgkJU3RhdHVzOiAgICAgICAgICAgICAgICAgcmVzcG9uc2VDb2RlLAoJCUhlYWRlcjogICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVycywKCX0KCXJlc3BvbnNlVmFsaWRhdGlvbklucHV0LlNldEJvZHlCeXRlcyhyZXNwb25zZUJvZHkpCglfID0gb3BlbmFwaTNmaWx0ZXIuVmFsaWRhdGVSZXNwb25zZShjdHgsIHJlc3BvbnNlVmFsaWRhdGlvbklucHV0KQp9CmBgYAoKIyMgQ3VzdG9tIGNvbnRlbnQgdHlwZSBmb3IgYm9keSBvZiBIVFRQIHJlcXVlc3QvcmVzcG9uc2UKCkJ5IGRlZmF1bHQsIHRoZSBsaWJyYXJ5IHBhcnNlcyBhIGJvZHkgb2YgdGhlIEhUVFAgcmVxdWVzdCBhbmQgcmVzcG9uc2UKaWYgaXQgaGFzIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbnRlbnQgdHlwZXM6IGAidGV4dC9wbGFpbiJgIG9yIGAiYXBwbGljYXRpb24vanNvbiJgLgpUbyBzdXBwb3J0IG90aGVyIGNvbnRlbnQgdHlwZXMgeW91IG11c3QgcmVnaXN0ZXIgZGVjb2RlcnMgZm9yIHRoZW06CgpgYGBnbwpmdW5jIG1haW4oKSB7CgkvLyAuLi4KCgkvLyBSZWdpc3RlciBhIGJvZHkncyBkZWNvZGVyIGZvciBjb250ZW50IHR5cGUgImFwcGxpY2F0aW9uL3htbCIuCglvcGVuYXBpM2ZpbHRlci5SZWdpc3RlckJvZHlEZWNvZGVyKCJhcHBsaWNhdGlvbi94bWwiLCB4bWxCb2R5RGVjb2RlcikKCgkvLyBOb3cgeW91IGNhbiB2YWxpZGF0ZSBIVFRQIHJlcXVlc3QgdGhhdCBjb250YWlucyBhIGJvZHkgd2l0aCBjb250ZW50IHR5cGUgImFwcGxpY2F0aW9uL3htbCIuCglyZXF1ZXN0VmFsaWRhdGlvbklucHV0IDo9ICZvcGVuYXBpM2ZpbHRlci5SZXF1ZXN0VmFsaWRhdGlvbklucHV0ewoJCVJlcXVlc3Q6ICAgIGh0dHBSZXEsCgkJUGF0aFBhcmFtczogcGF0aFBhcmFtcywKCQlSb3V0ZTogICAgICByb3V0ZSwKCX0KCWlmIGVyciA6PSBvcGVuYXBpM2ZpbHRlci5WYWxpZGF0ZVJlcXVlc3QoY3R4LCByZXF1ZXN0VmFsaWRhdGlvbklucHV0KTsgZXJyICE9IG5pbCB7CgkJcGFuaWMoZXJyKQoJfQoKCS8vIC4uLgoKCS8vIEFuZCB5b3UgY2FuIHZhbGlkYXRlIEhUVFAgcmVzcG9uc2UgdGhhdCBjb250YWlucyBhIGJvZHkgd2l0aCBjb250ZW50IHR5cGUgImFwcGxpY2F0aW9uL3htbCIuCglpZiBlcnIgOj0gb3BlbmFwaTNmaWx0ZXIuVmFsaWRhdGVSZXNwb25zZShjdHgsIHJlc3BvbnNlVmFsaWRhdGlvbklucHV0KTsgZXJyICE9IG5pbCB7CgkJcGFuaWMoZXJyKQoJfQp9CgpmdW5jIHhtbEJvZHlEZWNvZGVyKGJvZHkgaW8uUmVhZGVyLCBoIGh0dHAuSGVhZGVyLCBzY2hlbWEgKm9wZW5hcGkzLlNjaGVtYVJlZiwgZW5jRm4gb3BlbmFwaTNmaWx0ZXIuRW5jb2RpbmdGbikgKGRlY29kZWQgYW55LCBlcnIgZXJyb3IpIHsKCS8vIERlY29kZSBib2R5IHRvIGEgcHJpbWl0aXZlLCBbXWFueSwgb3IgbWFwW3N0cmluZ11hbnkuCn0KYGBgCgojIyBDdXN0b20gZnVuY3Rpb24gdG8gY2hlY2sgdW5pcXVlbmVzcyBvZiBhcnJheSBpdGVtcwoKQnkgZGVmYXVsdCwgdGhlIGxpYnJhcnkgY2hlY2tzIHVuaXF1ZSBpdGVtcyB1c2luZyB0aGUgZm9sbG93aW5nIHByZWRlZmluZWQgZnVuY3Rpb246CgpgYGBnbwpmdW5jIGlzU2xpY2VPZlVuaXF1ZUl0ZW1zKHhzIFtdYW55KSBib29sIHsKCXMgOj0gbGVuKHhzKQoJbSA6PSBtYWtlKG1hcFtzdHJpbmddc3RydWN0e30sIHMpCglmb3IgXywgeCA6PSByYW5nZSB4cyB7CgkJa2V5LCBfIDo9IGpzb24uTWFyc2hhbCgmeCkKCQltW3N0cmluZyhrZXkpXSA9IHN0cnVjdHt9e30KCX0KCXJldHVybiBzID09IGxlbihtKQp9CmBgYAoKSW4gdGhlIHByZWRlZmluZWQgZnVuY3Rpb24gYGpzb24uTWFyc2hhbGAgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIHN0cmluZyB0aGF0IGNhbgpiZSB1c2VkIGFzIGEgbWFwIGtleSB3aGljaCBpcyB0byBjaGVjayB0aGUgdW5pcXVlbmVzcyBvZiBhbiBhcnJheQp3aGVuIHRoZSBhcnJheSBpdGVtcyBhcmUgb2JqZWN0cyBvciBhcnJheXMuIFlvdSBjYW4gcmVnaXN0ZXIKeW91IG93biBmdW5jdGlvbiBhY2NvcmRpbmcgdG8geW91ciBpbnB1dCBkYXRhIHRvIGdldCBiZXR0ZXIgcGVyZm9ybWFuY2U6CgpgYGBnbwpmdW5jIG1haW4oKSB7CgkvLyAuLi4KCgkvLyBSZWdpc3RlciBhIGN1c3RvbWl6ZWQgZnVuY3Rpb24gdXNlZCB0byBjaGVjayB1bmlxdWVuZXNzIG9mIGFycmF5LgoJb3BlbmFwaTMuUmVnaXN0ZXJBcnJheVVuaXF1ZUl0ZW1zQ2hlY2tlcihhcnJheVVuaXF1ZUl0ZW1zQ2hlY2tlcikKCgkvLyAuLi4gb3RoZXIgdmFsaWRhdGUgY29kZXMKfQoKZnVuYyBhcnJheVVuaXF1ZUl0ZW1zQ2hlY2tlcihpdGVtcyBbXWFueSkgYm9vbCB7CgkvLyBDaGVjayB0aGUgdW5pcXVlbmVzcyBvZiB0aGUgaW5wdXQgc2xpY2UKfQpgYGAKCiMjIEN1c3RvbSBmdW5jdGlvbiB0byBjaGFuZ2Ugc2NoZW1hIGVycm9yIG1lc3NhZ2VzCgpCeSBkZWZhdWx0LCB0aGUgZXJyb3IgbWVzc2FnZSByZXR1cm5lZCB3aGVuIHZhbGlkYXRpbmcgYSB2YWx1ZSBpbmNsdWRlcyB0aGUgZXJyb3IgcmVhc29uLCB0aGUgc2NoZW1hLCBhbmQgdGhlIGlucHV0IHZhbHVlLgoKRm9yIGV4YW1wbGUsIGdpdmVuIHRoZSBmb2xsb3dpbmcgc2NoZW1hOgoKYGBganNvbgp7CiAgInR5cGUiOiAic3RyaW5nIiwKICAiYWxsT2YiOiBbCiAgICB7ICJwYXR0ZXJuIjogIltBLVpdIiB9LAogICAgeyAicGF0dGVybiI6ICJbYS16XSIgfSwKICAgIHsgInBhdHRlcm4iOiAiWzAtOV0iIH0sCiAgICB7ICJwYXR0ZXJuIjogIlshQCMkJV4mKigpXys9LT9+XSIgfQogIF0KfQpgYGAKClBhc3NpbmcgdGhlIGlucHV0IHZhbHVlIGAic2VjcmV0ImAgdG8gdGhpcyBzY2hlbWEgd2lsbCBwcm9kdWNlIHRoZSBmb2xsb3dpbmcgZXJyb3IgbWVzc2FnZToKCmBgYApzdHJpbmcgZG9lc24ndCBtYXRjaCB0aGUgcmVndWxhciBleHByZXNzaW9uICJbQS1aXSIKU2NoZW1hOgogIHsKICAgICJwYXR0ZXJuIjogIltBLVpdIgogIH0KClZhbHVlOgogICJzZWNyZXQiCmBgYAoKSW5jbHVkaW5nIHRoZSBvcmlnaW5hbCB2YWx1ZSBpbiB0aGUgZXJyb3IgbWVzc2FnZSBjYW4gYmUgaGVscGZ1bCBmb3IgZGVidWdnaW5nLCBidXQgaXQgbWF5IG5vdCBiZSBhcHByb3ByaWF0ZSBmb3Igc2Vuc2l0aXZlIGluZm9ybWF0aW9uIHN1Y2ggYXMgc2VjcmV0cy4KClRvIGRpc2FibGUgdGhlIGV4dHJhIGRldGFpbHMgaW4gdGhlIHNjaGVtYSBlcnJvciBtZXNzYWdlLCB5b3UgY2FuIHNldCB0aGUgYG9wZW5hcGkzLlNjaGVtYUVycm9yRGV0YWlsc0Rpc2FibGVkYCBvcHRpb24gdG8gYHRydWVgOgoKYGBgZ28KZnVuYyBtYWluKCkgewoJLy8gLi4uCgoJLy8gRGlzYWJsZSBzY2hlbWEgZXJyb3IgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZXMKCW9wZW5hcGkzLlNjaGVtYUVycm9yRGV0YWlsc0Rpc2FibGVkID0gdHJ1ZQoKCS8vIC4uLiBvdGhlciB2YWxpZGF0ZSBjb2Rlcwp9CmBgYAoKVGhpcyB3aWxsIHNob3J0ZW4gdGhlIGVycm9yIG1lc3NhZ2UgdG8gcHJlc2VudCBvbmx5IHRoZSByZWFzb246CgpgYGAKc3RyaW5nIGRvZXNuJ3QgbWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAiW0EtWl0iCmBgYAoKRm9yIG1vcmUgZmluZS1ncmFpbmVkIGNvbnRyb2wgb3ZlciB0aGUgZXJyb3IgbWVzc2FnZSwgeW91IGNhbiBwYXNzIGEgY3VzdG9tIGBvcGVuYXBpM2ZpbHRlci5PcHRpb25zYCBvYmplY3QgdG8gYG9wZW5hcGkzZmlsdGVyLlJlcXVlc3RWYWxpZGF0aW9uSW5wdXRgIHRoYXQgaW5jbHVkZXMgYSBgb3BlbmFwaTNmaWx0ZXIuQ3VzdG9tU2NoZW1hRXJyb3JGdW5jYC4KCmBgYGdvCmZ1bmMgdmFsaWRhdGlvbk9wdGlvbnMoKSAqb3BlbmFwaTNmaWx0ZXIuT3B0aW9ucyB7CglvcHRpb25zIDo9ICZvcGVuYXBpM2ZpbHRlci5PcHRpb25ze30KCW9wdGlvbnMuV2l0aEN1c3RvbVNjaGVtYUVycm9yRnVuYyhzYWZlRXJyb3JNZXNzYWdlKQoJcmV0dXJuIG9wdGlvbnMKfQoKZnVuYyBzYWZlRXJyb3JNZXNzYWdlKGVyciAqb3BlbmFwaTMuU2NoZW1hRXJyb3IpIHN0cmluZyB7CglyZXR1cm4gZXJyLlJlYXNvbgp9CmBgYAoKVGhpcyB3aWxsIGNoYW5nZSB0aGUgc2NoZW1hIHZhbGlkYXRpb24gZXJyb3JzIHRvIHJldHVybiBvbmx5IHRoZSBgUmVhc29uYCBmaWVsZCwgd2hpY2ggaXMgZ3VhcmFudGVlZCB0byBub3QgaW5jbHVkZSB0aGUgb3JpZ2luYWwgdmFsdWUuCgojIyBSZWNvbmNpbGluZyBjb21wb25lbnQgJHJlZiB0eXBlcwoKYFJlZmVyZW5jZXNDb21wb25lbnRJblJvb3REb2N1bWVudGAgaXMgYSB1c2VmdWwgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgY29tcG9uZW50IHJlZmVyZW5jZQpjb2luY2lkZXMgd2l0aCBhIHJlZmVyZW5jZSBpbiB0aGUgcm9vdCBkb2N1bWVudCdzIGNvbXBvbmVudCBvYmplY3RzIGZpeGVkIGZpZWxkcy4KClRoaXMgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHR3byBzY2hlbWEgZGVmaW5pdGlvbnMgYXJlIG9mIHRoZSBzYW1lIHN0cnVjdHVyZSwgaGVscGZ1bCBmb3IKY29kZSBnZW5lcmF0aW9uIHRvb2xzIHdoZW4gZ2VuZXJhdGluZyBnbyB0eXBlIG1vZGVscy4KCmBgYGdvCmRvYywgZXJyID0gbG9hZGVyLkxvYWRGcm9tRmlsZSgib3BlbmFwaS55bWwiKQoKZm9yIF8sIHBhdGggOj0gcmFuZ2UgZG9jLlBhdGhzLkluTWF0Y2hpbmdPcmRlcigpIHsKCXBhdGhJdGVtIDo9IGRvYy5QYXRocy5GaW5kKHBhdGgpCgoJaWYgcGF0aEl0ZW0uR2V0ID09IG5pbCB8fCBwYXRoSXRlbS5HZXQuUmVzcG9uc2VzLlN0YXR1cygyMDApIHsKCQljb250aW51ZQoJfQoKCWZvciBfLCBzIDo9IHJhbmdlIHBhdGhJdGVtLkdldC5SZXNwb25zZXMuU3RhdHVzKDIwMCkuVmFsdWUuQ29udGVudCB7CgkJbmFtZSwgbWF0Y2ggOj0gUmVmZXJlbmNlc0NvbXBvbmVudEluUm9vdERvY3VtZW50KGRvYywgcy5TY2hlbWEpCgkJZm10LlByaW50bG4ocGF0aCwgbWF0Y2gsIG5hbWUpIC8vIC9yZWNvcmQgdHJ1ZSAjL2NvbXBvbmVudHMvc2NoZW1hcy9Cb29rUmVjb3JkCgl9Cn0KYGBgCgojIyBDSEFOR0VMT0c6IFN1Yi12MSBicmVha2luZyBBUEkgY2hhbmdlcwoKIyMjIHYwLjEyNy4wCiogRG93bmdyYWRlZCBgZ2l0aHViLmNvbS9nb3JpbGxhL211eGAgZGVwIGZyb20gYDEuOC4xYCB0byBgMS44LjBgLgoKIyMjIHYwLjEyNi4wCiogYG9wZW5hcGkzLkNpcmN1bGFyUmVmZXJlbmNlRXJyb3JgIGFuZCBgb3BlbmFwaTMuQ2lyY3VsYXJSZWZlcmVuY2VDb3VudGVyYCBhcmUgcmVtb3ZlZC4gYG9wZW5hcGkzLkxvYWRlcmAgbm93IGltcGxlbWVudHMgcmVmZXJlbmNlIGJhY2t0cmFja2luZywgc28gYW55IGtpbmQgb2YgY2lyY3VsYXIgcmVmZXJlbmNlcyBzaG91bGQgYmUgcHJvcGVybHkgcmVzb2x2ZWQuCiogYEludGVybmFsaXplUmVmc2Agbm93IHRha2VzIGEgcmVmTmFtZVJlc29sdmVyIHRoYXQgaGFzIGFjY2VzcyB0byBgb3BlbmFwaTMuVGAgYW5kIG1vcmUgcHJvcGVydGllcyBvZiB0aGUgcmVmZXJlbmNlIG5lZWRpbmcgcmVzb2x2aW5nLgoqIFRoZSBgRGVmYXVsdFJlZk5hbWVSZXNvbHZlcmAgaGFzIGJlZW4gdXBkYXRlZCwgY2hvb3NpbmcgbmFtZXMgdGhhdCB3aWxsIGJlIGxlc3MgbGlrZWx5IHRvIGNvbGxpZGUgd2l0aCBlYWNoIG90aGVyLiBCZWNhdXNlIG9mIHRoaXMgaW50ZXJuYWxpemVkIHNwZWNzIHdpbGwgbGlrZWx5IGNoYW5nZSBzbGlnaHRseS4KKiBgb3BlbmFwaTMuRm9ybWF0YCBhbmQgYG9wZW5hcGkzLkZvcm1hdENhbGxiYWNrYCBhcmUgcmVtb3ZlZCBhbmQgdGhlIHR5cGUgb2YgYG9wZW5hcGkzLlNjaGVtYVN0cmluZ0Zvcm1hdHNgIGhhcyBjaGFuZ2VkLgoKIyMjIHYwLjEyNS4wCiogVGhlIGBvcGVuYXBpM2ZpbHRlci5FcnJGdW5jYCBhbmQgYG9wZW5hcGkzZmlsdGVyLkxvZ0Z1bmNgIGZ1bmMgdHlwZXMgbm93IHRha2UgdGhlIHZhbGlkYXRlZCByZXF1ZXN0J3MgY29udGV4dCBhcyBmaXJzdCBhcmd1bWVudC4KCiMjIyB2MC4xMjQuMAoqIGBvcGVuYXBpMy5TY2hlbWEuVHlwZWAgJiBgb3BlbmFwaTIuUGFyYW1ldGVyLlR5cGVgIGZpZWxkcyB3ZW50IGZyb20gYSBgc3RyaW5nYCB0byB0aGUgdHlwZSBgKlR5cGVgIHdpdGggbWV0aG9kczogYEluY2x1ZGVzYCwgYElzYCwgYFBlcm1pdHNgICYgYFNsaWNlYC4KCiMjIyB2MC4xMjIuMAoqIGBQYXRoc2AgZmllbGQgb2YgYG9wZW5hcGkzLlRgIGlzIG5vdyBhIHBvaW50ZXIKKiBgUmVzcG9uc2VzYCBmaWVsZCBvZiBgb3BlbmFwaTMuT3BlcmF0aW9uYCBpcyBub3cgYSBwb2ludGVyCiogYG9wZW5hcGkzLlBhdGhzYCB3ZW50IGZyb20gYG1hcFtzdHJpbmddKlBhdGhJdGVtYCB0byBhIHN0cnVjdCB3aXRoIGFuIGBFeHRlbnNpb25zYCBmaWVsZCBhbmQgbWV0aG9kczogYFNldGAsIGBWYWx1ZWAsIGBMZW5gLCBgTWFwYCwgYW5kIGBOZXcqYC4KKiBgb3BlbmFwaTMuQ2FsbGJhY2tgIHdlbnQgZnJvbSBgbWFwW3N0cmluZ10qUGF0aEl0ZW1gIHRvIGEgc3RydWN0IHdpdGggYW4gYEV4dGVuc2lvbnNgIGZpZWxkIGFuZCBtZXRob2RzOiBgU2V0YCwgYFZhbHVlYCwgYExlbmAsIGBNYXBgLCBhbmQgYE5ldypgLgoqIGBvcGVuYXBpMy5SZXNwb25zZXNgIHdlbnQgZnJvbSBgbWFwW3N0cmluZ10qUmVzcG9uc2VSZWZgIHRvIGEgc3RydWN0IHdpdGggYW4gYEV4dGVuc2lvbnNgIGZpZWxkIGFuZCBtZXRob2RzOiBgU2V0YCwgYFZhbHVlYCwgYExlbmAsIGBNYXBgLCBhbmQgYE5ldypgLgoqIGAob3BlbmFwaTMuUmVzcG9uc2VzKS5HZXQoaW50KWAgcmVuYW1lZCB0byBgKCpvcGVuYXBpMy5SZXNwb25zZXMpLlN0YXR1cyhpbnQpYAoKIyMjIHYwLjEyMS4wCiogSW50cm9kdWNlIGBvcGVuYXBpMy5SZXF1ZXN0Qm9kaWVzYCAoYW4gYWxpYXMgb24gYG1hcFtzdHJpbmddKm9wZW5hcGkzLlJlc3BvbnNlUmVmYCkgYW5kIHVzZSBpdCBpbiBwbGFjZSBvZiBgb3BlbmFwaTMuUmVzcG9uc2VzYCBmb3IgZmllbGQgYG9wZW5hcGkzLkNvbXBvbmVudHMuUmVzcG9uc2VzYC4KCiMjIyB2MC4xMTYuMAoqIERyb3BwZWQgYG9wZW5hcGkzZmlsdGVyLkRlZmF1bHRPcHRpb25zYC4gVXNlIGAmb3BlbmFwaTNmaWx0ZXIuT3B0aW9uc3t9YCBkaXJlY3RseSBpbnN0ZWFkLgoKIyMjIHYwLjExMy4wCiogVGhlIHN0cmluZyBmb3JtYXQgYGVtYWlsYCBoYXMgYmVlbiByZW1vdmVkIGJ5IGRlZmF1bHQuIFRvIHVzZSBpdCBwbGVhc2UgY2FsbCBgb3BlbmFwaTMuRGVmaW5lU3RyaW5nRm9ybWF0KCJlbWFpbCIsIG9wZW5hcGkzLkZvcm1hdE9mU3RyaW5nRm9yRW1haWwpYC4KKiBGaWVsZCBgb3BlbmFwaTMuVC5Db21wb25lbnRzYCBpcyBub3cgYSBwb2ludGVyLgoqIEZpZWxkcyBgb3BlbmFwaTMuU2NoZW1hLkFkZGl0aW9uYWxQcm9wZXJ0aWVzYCBhbmQgYG9wZW5hcGkzLlNjaGVtYS5BZGRpdGlvbmFsUHJvcGVydGllc0FsbG93ZWRgIGFyZSByZXBsYWNlZCBieSBgb3BlbmFwaTMuU2NoZW1hLkFkZGl0aW9uYWxQcm9wZXJ0aWVzLlNjaGVtYWAgYW5kIGBvcGVuYXBpMy5TY2hlbWEuQWRkaXRpb25hbFByb3BlcnRpZXMuSGFzYCByZXNwZWN0aXZlbHkuCiogVHlwZSBgb3BlbmFwaTMuRXh0ZW5zaW9uUHJvcHNgIGlzIG5vdyBqdXN0IGBtYXBbc3RyaW5nXWFueWAgYW5kIGV4dGVuc2lvbnMgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgYEV4dGVuc2lvbnNgIGZpZWxkLgoKIyMjIHYwLjExMi4wCiogYChvcGVuYXBpMy5WYWxpZGF0aW9uT3B0aW9ucykuRXhhbXBsZXNWYWxpZGF0aW9uRGlzYWJsZWRgIGhhcyBiZWVuIHVuZXhwb3J0ZWQuCiogYChvcGVuYXBpMy5WYWxpZGF0aW9uT3B0aW9ucykuU2NoZW1hRm9ybWF0VmFsaWRhdGlvbkVuYWJsZWRgIGhhcyBiZWVuIHVuZXhwb3J0ZWQuCiogYChvcGVuYXBpMy5WYWxpZGF0aW9uT3B0aW9ucykuU2NoZW1hUGF0dGVyblZhbGlkYXRpb25EaXNhYmxlZGAgaGFzIGJlZW4gdW5leHBvcnRlZC4KCiMjIyB2MC4xMTEuMAoqIENoYW5nZWQgYGZ1bmMgKCpfKSBWYWxpZGF0ZShjdHggY29udGV4dC5Db250ZXh0KSBlcnJvcmAgdG8gYGZ1bmMgKCpfKSBWYWxpZGF0ZShjdHggY29udGV4dC5Db250ZXh0LCBvcHRzIC4uLlZhbGlkYXRpb25PcHRpb24pIGVycm9yYC4KKiBgb3BlbmFwaTMuV2l0aFZhbGlkYXRpb25PcHRpb25zKGN0eCBjb250ZXh0LkNvbnRleHQsIG9wdHMgKlZhbGlkYXRpb25PcHRpb25zKSBjb250ZXh0LkNvbnRleHRgIHByb3RvdHlwZSBjaGFuZ2VkIHRvIGBvcGVuYXBpMy5XaXRoVmFsaWRhdGlvbk9wdGlvbnMoY3R4IGNvbnRleHQuQ29udGV4dCwgb3B0cyAuLi5WYWxpZGF0aW9uT3B0aW9uKSBjb250ZXh0LkNvbnRleHRgLgoKIyMjIHYwLjEwMS4wCiogYG9wZW5hcGkzLlNjaGVtYUZvcm1hdFZhbGlkYXRpb25EaXNhYmxlZGAgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgYW4gb3B0aW9uIGBvcGVuYXBpMy5FbmFibGVTY2hlbWFGb3JtYXRWYWxpZGF0aW9uKClgIHBhc3NlZCB0byBgb3BlbmFwaTMuVC5WYWxpZGF0ZWAuIFRoZSBkZWZhdWx0IGJlaGF2aW91ciBpcyBhbHNvIG5vdyB0byBub3QgdmFsaWRhdGUgZm9ybWF0cywgYXMgdGhlIE9wZW5BUEkgc3BlYyBtZW50aW9ucyB0aGUgYGZvcm1hdGAgaXMgYW4gb3BlbiB2YWx1ZS4KCiMjIyB2MC44NC4wCiogVGhlIHByb3RvdHlwZSBvZiBgb3BlbmFwaTNnZW4uTmV3U2NoZW1hUmVmRm9yVmFsdWVgIGNoYW5nZWQ6CgkqIEl0IG5vIGxvbmdlciByZXR1cm5zIGEgbWFwIGJ1dCB0aGF0IGlzIHN0aWxsIGFjY2Vzc2libGUgdW5kZXIgdGhlIGZpZWxkIGAoKkdlbmVyYXRvcikuU2NoZW1hUmVmc2AuCgkqIEl0IG5vdyB0YWtlcyBpbiBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IChiYXNpY2FsbHkgYGRvYy5Db21wb25lbnRzLlNjaGVtYXNgKSB3aGljaCBnZXRzIHdyaXR0ZW4gdG8gc28gYCRyZWZgIGN5Y2xlcyBjYW4gYmUgcHJvcGVybHkgaGFuZGxlZC4KCiMjIyB2MC42MS4wCiogUmVuYW1lZCBgb3BlbmFwaTIuU3dhZ2dlcmAgdG8gYG9wZW5hcGkyLlRgLgoqIFJlbmFtZWQgYG9wZW5hcGkyY29udi5Gcm9tVjNTd2FnZ2VyYCB0byBgb3BlbmFwaTJjb252LkZyb21WM2AuCiogUmVuYW1lZCBgb3BlbmFwaTJjb252LlRvVjNTd2FnZ2VyYCB0byBgb3BlbmFwaTJjb252LlRvVjNgLgoqIFJlbmFtZWQgYG9wZW5hcGkzLkxvYWRTd2FnZ2VyRnJvbURhdGFgIHRvIGBvcGVuYXBpMy5Mb2FkRnJvbURhdGFgLgoqIFJlbmFtZWQgYG9wZW5hcGkzLkxvYWRTd2FnZ2VyRnJvbURhdGFXaXRoUGF0aGAgdG8gYG9wZW5hcGkzLkxvYWRGcm9tRGF0YVdpdGhQYXRoYC4KKiBSZW5hbWVkIGBvcGVuYXBpMy5Mb2FkU3dhZ2dlckZyb21GaWxlYCB0byBgb3BlbmFwaTMuTG9hZEZyb21GaWxlYC4KKiBSZW5hbWVkIGBvcGVuYXBpMy5Mb2FkU3dhZ2dlckZyb21VUklgIHRvIGBvcGVuYXBpMy5Mb2FkRnJvbVVSSWAuCiogUmVuYW1lZCBgb3BlbmFwaTMuTmV3U3dhZ2dlckxvYWRlcmAgdG8gYG9wZW5hcGkzLk5ld0xvYWRlcmAuCiogUmVuYW1lZCBgb3BlbmFwaTMuU3dhZ2dlcmAgdG8gYG9wZW5hcGkzLlRgLgoqIFJlbmFtZWQgYG9wZW5hcGkzLlN3YWdnZXJMb2FkZXJgIHRvIGBvcGVuYXBpMy5Mb2FkZXJgLgoqIFJlbmFtZWQgYG9wZW5hcGkzZmlsdGVyLlZhbGlkYXRpb25IYW5kbGVyLlN3YWdnZXJGaWxlYCB0byBgb3BlbmFwaTNmaWx0ZXIuVmFsaWRhdGlvbkhhbmRsZXIuRmlsZWAuCiogUmVuYW1lZCBgcm91dGVycy5Sb3V0ZS5Td2FnZ2VyYCB0byBgcm91dGVycy5Sb3V0ZS5TcGVjYC4KCiMjIyB2MC41MS4wCiogVHlwZSBgb3BlbmFwaTNmaWx0ZXIuUm91dGVgIG1vdmVkIHRvIGByb3V0ZXJzYCAoYW5kIGBSb3V0ZS5IYW5kbGVyYCB3YXMgZHJvcHBlZC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvaXNzdWVzLzMyOSkKKiBUeXBlIGBvcGVuYXBpM2ZpbHRlci5Sb3V0ZUVycm9yYCBtb3ZlZCB0byBgcm91dGVyc2AgKHNvIGRpZCBgRXJyUGF0aE5vdEZvdW5kYCBhbmQgYEVyck1ldGhvZE5vdEFsbG93ZWRgIHdoaWNoIGFyZSBub3cgYFJvdXRlRXJyb3JgcykKKiBSb3V0ZXJzJyBgRmluZFJvdXRlKC4uLilgIG1ldGhvZCBub3cgdGFrZXMgb25seSBvbmUgYXJndW1lbnQ6IGAqaHR0cC5SZXF1ZXN0YAoqIGBnZXRraW4va2luLW9wZW5hcGkvb3BlbmFwaTNmaWx0ZXIuUm91dGVyYCBtb3ZlZCB0byBgZ2V0a2luL2tpbi1vcGVuYXBpL3JvdXRlcnMvbGVnYWN5YAoqIGBvcGVuYXBpM2ZpbHRlci5OZXdSb3V0ZXIoKWAgYW5kIGl0cyByZWxhdGVkIGBXaXRoU3dhZ2dlckZyb21GaWxlKHN0cmluZylgLCBgV2l0aFN3YWdnZXIoKm9wZW5hcGkzLlN3YWdnZXIpYCwgYEFkZFN3YWdnZXJGcm9tRmlsZShzdHJpbmcpYCBhbmQgYEFkZFN3YWdnZXIoKm9wZW5hcGkzLlN3YWdnZXIpYCBhcmUgYWxsIHJlcGxhY2VkIHdpdGggYSBzaW5nbGUgYDxyb3V0ZXIgcGFja2FnZT4uTmV3Um91dGVyKCpvcGVuYXBpMy5Td2FnZ2VyKWAKCSogTk9URTogdGhlIGBOZXdSb3V0ZXIoZG9jKWAgY2FsbCBub3cgcmVxdWlyZXMgdGhhdCB0aGUgdXNlciBlbnN1cmVzIGBkb2NgIGlzIHZhbGlkIChgZG9jLlZhbGlkYXRlKCkgIT0gbmlsYCkuIFRoaXMgdXNlZCB0byBiZSBhc3NlcnRlZC4KCiMjIyB2MC40Ny4wCkZpZWxkIGAoKm9wZW5hcGkzLlN3YWdnZXJMb2FkZXIpLkxvYWRTd2FnZ2VyRnJvbVVSSUZ1bmNgIG9mIHR5cGUgYGZ1bmMoKm9wZW5hcGkzLlN3YWdnZXJMb2FkZXIsICp1cmwuVVJMKSAoKm9wZW5hcGkzLlN3YWdnZXIsIGVycm9yKWAgd2FzIHJlbW92ZWQgYWZ0ZXIgdGhlIGFkZGl0aW9uIG9mIHRoZSBmaWVsZCBgKCpvcGVuYXBpMy5Td2FnZ2VyTG9hZGVyKS5SZWFkRnJvbVVSSUZ1bmNgIG9mIHR5cGUgYGZ1bmMoKm9wZW5hcGkzLlN3YWdnZXJMb2FkZXIsICp1cmwuVVJMKSAoW11ieXRlLCBlcnJvcilgLgo= readmeEtag: '"690ef903cb342d822a999b26d34a1d4fc3b0aa68"' readmeLastModified: Thu, 22 Aug 2024 12:26:31 GMT repositoryId: 94029207 description: >- OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more) created: '2017-06-11T20:12:06Z' updated: '2024-09-05T08:35:38Z' language: Go archived: false stars: 2545 watchers: 23 forks: 426 owner: getkin logo: https://avatars.githubusercontent.com/u/40365715?v=4 license: MIT repoEtag: '"8f58783e6d244ec86bb533e619a51940d8a526683cf831eade3b3fc18a5add0b"' repoLastModified: Thu, 05 Sep 2024 08:35:38 GMT foundInMaster: true v2: true id: f6838ce08e87fa4c3dc813c97193ece3 oldLocations: - https://github.com/jban332/kin-openapi - source: https://openapi.tools/ name: openapi.tanna.dev/go/validator category: Data Validators repository: https://gitlab.com/jamietanna/httptest-openapi/ language: Go source_description: >- A Go library for making it easier to validate that your OpenAPI contracts match your HTTP request/responses used in your tests. Based on kin-openapi. v3: true id: 839cc8f67fdfb81f410fbc29ab770cc8 foundInMaster: true - source: https://openapi.tools/ name: openapi-psr7-validator category: Data Validators repository: https://github.com/thephpleague/openapi-psr7-validator language: PHP source_description: >- Using a PHP framework that supports PSR-7? Get free validation without writing a bunch of code, by registering this middleware and pointing it at your API description document. v3: true repositoryMetadata: base64Readme: >- WyFbTGF0ZXN0IFN0YWJsZSBWZXJzaW9uXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL2xlYWd1ZS9vcGVuYXBpLXBzcjctdmFsaWRhdG9yL3Yvc3RhYmxlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2xlYWd1ZS9vcGVuYXBpLXBzcjctdmFsaWRhdG9yKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy90aGVwaHBsZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvci5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy90aGVwaHBsZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcikKWyFbTGljZW5zZV0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9sZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvci9saWNlbnNlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2xlemhuZXY3NC9vcGVuYXBpLXBzcjctdmFsaWRhdG9yKQohW2NvbnRyaWJ1dGlvbnMgd2VsY29tZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb250cmlidXRpb25zLXdlbGNvbWUtYnJpZ2h0Z3JlZW4uc3ZnKQoKIyBPcGVuQVBJIFBTUi03IE1lc3NhZ2UgKEhUVFAgUmVxdWVzdC9SZXNwb25zZSkgVmFsaWRhdG9yClRoaXMgcGFja2FnZSBjYW4gdmFsaWRhdGUgUFNSLTcgbWVzc2FnZXMgYWdhaW5zdCBPcGVuQVBJICgzLjAueCkgc3BlY2lmaWNhdGlvbnMgCmV4cHJlc3NlZCBpbiBZQU1MIG9yIEpTT04uIAoKIVtdKGltYWdlLmpwZykKCiMjIEluc3RhbGxhdGlvbgpgYGAKY29tcG9zZXIgcmVxdWlyZSBsZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcgpgYGAKCiMjIE9wZW5BUEkgKE9BUykgVGVybXMKVGhlcmUgYXJlIHNvbWUgc3BlY2lmaWMgdGVybXMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgcGFja2FnZS4gVGhlc2UgdGVybXMgY29tZSAKZnJvbSBPcGVuQVBJOgotIGBzcGVjaWZpY2F0aW9uYCAtIGFuIE9wZW5BUEkgZG9jdW1lbnQgZGVzY3JpYmluZyBhbiBBUEksIGV4cHJlc3NlZCBpbiBKU09OIG9yIFlBTUwgZmlsZQotIGBkYXRhYCAtIGFjdHVhbCB0aGluZyB0aGF0IHdlIHZhbGlkYXRlIGFnYWluc3QgYSBzcGVjaWZpY2F0aW9uLCBpbmNsdWRpbmcgYm9keSBhbmQgbWV0YWRhdGEKLSBgc2NoZW1hYCAtIHRoZSBwYXJ0IG9mIHRoZSBzcGVjaWZpY2F0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0IC8gcmVzcG9uc2UKLSBga2V5d29yZGAgLSBwcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgdG8gZGVzY3JpYmUgdGhlIGluc3RhbmNlIGFyZSBjYWxsZWQga2V5CndvcmRzLCBvciBzY2hlbWEga2V5d29yZHMKLSBgcGF0aGAgLSBhIHJlbGF0aXZlIHBhdGggdG8gYW4gaW5kaXZpZHVhbCBlbmRwb2ludAotIGBvcGVyYXRpb25gIC0gYSBtZXRob2QgdGhhdCB3ZSBhcHBseSBvbiB0aGUgcGF0aCAobGlrZSBgZ2V0IC9wYXNzd29yZGApCi0gYHJlc3BvbnNlYCAtIGRlc2NyaWJlZCByZXNwb25zZSAoaW5jbHVkZXMgc3RhdHVzIGNvZGUsIGNvbnRlbnQgdHlwZXMgZXRjKQoKCiMjIEhvdyBUbyBWYWxpZGF0ZQoKIyMjIFNlcnZlclJlcXVlc3QgTWVzc2FnZQpZb3UgY2FuIHZhbGlkYXRlIGBcUHNyXEh0dHBcTWVzc2FnZVxTZXJ2ZXJSZXF1ZXN0SW50ZXJmYWNlYCBpbnN0YW5jZSBsaWtlIHRoaXM6CgpgYGBwaHAKJHlhbWxGaWxlID0gImFwaS55YW1sIjsKJGpzb25GaWxlID0gImFwaS5qc29uIjsKCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbVlhbWxGaWxlKCR5YW1sRmlsZSktPmdldFNlcnZlclJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbVlhbWwoZmlsZV9nZXRfY29udGVudHMoJHlhbWxGaWxlKSktPmdldFNlcnZlclJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbUpzb24oZmlsZV9nZXRfY29udGVudHMoJGpzb25GaWxlKSktPmdldFNlcnZlclJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbUpzb25GaWxlKCRqc29uRmlsZSktPmdldFNlcnZlclJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiRzY2hlbWEgPSBuZXcgXGNlYmVcb3BlbmFwaVxzcGVjXE9wZW5BcGkoKTsgLy8gZ2VuZXJhdGUgc2NoZW1hIG9iamVjdCBieSBoYW5kCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbVNjaGVtYSgkc2NoZW1hKS0+Z2V0U2VydmVyUmVxdWVzdFZhbGlkYXRvcigpOwoKJG1hdGNoID0gJHZhbGlkYXRvci0+dmFsaWRhdGUoJHJlcXVlc3QpOwpgYGAKCkFzIGEgcmVzdWx0IHlvdSB3b3VsZCBnZXQgYW5kIGBPcGVyYXRpb25BZGRyZXNzICRtYXRjaGAgd2hpY2ggaGFzIG1hdGNoZWQgdGhlIGdpdmVuIHJlcXVlc3QuIElmIHlvdSBhbHJlYWR5IGtub3cKdGhlIG9wZXJhdGlvbiB3aGljaCBzaG91bGQgbWF0Y2ggeW91ciByZXF1ZXN0IChpLmUgeW91IGhhdmUgcm91dGluZyBpbiB5b3VyIHByb2plY3QpLCB5b3UgY2FuIHVzZSAKYFJvdXRlclJlcXVlc3RWYWxpZGF0b3JgCgpgYGBwaHAKJGFkZHJlc3MgPSBuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XE9wZXJhdGlvbkFkZHJlc3MoJy9zb21lL29wZXJhdGlvbicsICdwb3N0Jyk7CgokdmFsaWRhdG9yID0gKG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21TY2hlbWEoJHNjaGVtYSktPmdldFJvdXRlZFJlcXVlc3RWYWxpZGF0b3IoKTsKCiR2YWxpZGF0b3ItPnZhbGlkYXRlKCRhZGRyZXNzLCAkcmVxdWVzdCk7CmBgYAoKVGhpcyB3b3VsZCBzaW1wbGlmeSB2YWxpZGF0aW9uIGEgbG90IGFuZCBnaXZlIHlvdSBtb3JlIHBlcmZvcm1hbmNlLgoKIyMjIFJlcXVlc3QgTWVzc2FnZQpZb3UgY2FuIHZhbGlkYXRlIGBcUHNyXEh0dHBcTWVzc2FnZVxSZXF1ZXN0SW50ZXJmYWNlYCBpbnN0YW5jZSBsaWtlIHRoaXM6CgpgYGBwaHAKJHlhbWxGaWxlID0gImFwaS55YW1sIjsKJGpzb25GaWxlID0gImFwaS5qc29uIjsKCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbVlhbWxGaWxlKCR5YW1sRmlsZSktPmdldFJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbVlhbWwoZmlsZV9nZXRfY29udGVudHMoJHlhbWxGaWxlKSktPmdldFJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbUpzb24oZmlsZV9nZXRfY29udGVudHMoJGpzb25GaWxlKSktPmdldFJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbUpzb25GaWxlKCRqc29uRmlsZSktPmdldFJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiRzY2hlbWEgPSBuZXcgXGNlYmVcb3BlbmFwaVxzcGVjXE9wZW5BcGkoKTsgLy8gZ2VuZXJhdGUgc2NoZW1hIG9iamVjdCBieSBoYW5kCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbVNjaGVtYSgkc2NoZW1hKS0+Z2V0UmVxdWVzdFZhbGlkYXRvcigpOwoKJG1hdGNoID0gJHZhbGlkYXRvci0+dmFsaWRhdGUoJHJlcXVlc3QpOwpgYGAKCiMjIyBSZXNwb25zZSBNZXNzYWdlClZhbGlkYXRpb24gb2YgYFxQc3JcSHR0cFxNZXNzYWdlXFJlc3BvbnNlSW50ZXJmYWNlYCBpcyBhIGJpdCBtb3JlIGNvbXBsaWNhdGVkCi4gQmVjYXVzZSB5b3UgbmVlZCBub3Qgb25seSBZQU1MIGZpbGUgYW5kIFJlc3BvbnNlIGl0c2VsZiwgYnV0IGFsc28geW91IG5lZWQgCnRvIGtub3cgd2hpY2ggb3BlcmF0aW9uIHRoaXMgcmVzcG9uc2UgYmVsb25ncyB0byAoaW4gdGVybXMgb2YgT3BlbkFQSSkuCgpFeGFtcGxlOgoKYGBgcGhwCiR5YW1sRmlsZSA9ICJhcGkueWFtbCI7CiRqc29uRmlsZSA9ICJhcGkuanNvbiI7CgokdmFsaWRhdG9yID0gKG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwojb3IKJHZhbGlkYXRvciA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tWWFtbChmaWxlX2dldF9jb250ZW50cygkeWFtbEZpbGUpKS0+Z2V0UmVzcG9uc2VWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbUpzb24oZmlsZV9nZXRfY29udGVudHMoJGpzb25GaWxlKSktPmdldFJlc3BvbnNlVmFsaWRhdG9yKCk7CiNvcgokdmFsaWRhdG9yID0gKG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21Kc29uRmlsZSgkanNvbkZpbGUpLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwojb3IKJHNjaGVtYSA9IG5ldyBcY2ViZVxvcGVuYXBpXHNwZWNcT3BlbkFwaSgpOyAvLyBnZW5lcmF0ZSBzY2hlbWEgb2JqZWN0IGJ5IGhhbmQKJHZhbGlkYXRvciA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tU2NoZW1hKCRzY2hlbWEpLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwoKJG9wZXJhdGlvbiA9IG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcT3BlcmF0aW9uQWRkcmVzcygnL3Bhc3N3b3JkL2dlbicsICdnZXQnKSA7CgokdmFsaWRhdG9yLT52YWxpZGF0ZSgkb3BlcmF0aW9uLCAkcmVzcG9uc2UpOwpgYGAKCiMjIyBSZXVzZSBTY2hlbWEgQWZ0ZXIgVmFsaWRhdGlvbgoKYFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyYCByZWFkcyBhbmQgY29tcGlsZXMgc2NoZW1hIGluIG1lbW9yeSBhcyBpbnN0YW5jZSBvZiBgXGNlYmVcb3BlbmFwaVxzcGVjXE9wZW5BcGlgLiBWYWxpZGF0b3JzIHVzZSB0aGlzIGluc3RhbmNlIHRvIHBlcmZvcm0gdmFsaWRhdGlvbiBsb2dpYy4gWW91IGNhbiByZXVzZSB0aGlzIGluc3RhbmNlIGFmdGVyIHRoZSB2YWxpZGF0aW9uIGxpa2UgdGhpczoKCmBgYHBocAokdmFsaWRhdG9yID0gKG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpLT5nZXRTZXJ2ZXJSZXF1ZXN0VmFsaWRhdG9yKCk7CiMgb3IKJHZhbGlkYXRvciA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tWWFtbEZpbGUoJHlhbWxGaWxlKS0+Z2V0UmVzcG9uc2VWYWxpZGF0b3IoKTsKCi8qKiBAdmFyIFxjZWJlXG9wZW5hcGlcc3BlY1xPcGVuQXBpICovCiRvcGVuQXBpID0gJHZhbGlkYXRvci0+Z2V0U2NoZW1hKCk7CmBgYAoKIyMjIFBTUi0xNSBNaWRkbGV3YXJlClBTUi0xNSBtaWRkbGV3YXJlIGNhbiBiZSB1c2VkIGxpa2UgdGhpczoKCmBgYHBocAokeWFtbEZpbGUgPSAnYXBpLnlhbWwnOwokanNvbkZpbGUgPSAnYXBpLmpzb24nOwoKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1IxNVxWYWxpZGF0aW9uTWlkZGxld2FyZUJ1aWxkZXIpLT5mcm9tWWFtbEZpbGUoJHlhbWxGaWxlKS0+Z2V0VmFsaWRhdGlvbk1pZGRsZXdhcmUoKTsKI29yCiRwc3IxNU1pZGRsZXdhcmUgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSMTVcVmFsaWRhdGlvbk1pZGRsZXdhcmVCdWlsZGVyKS0+ZnJvbVlhbWwoZmlsZV9nZXRfY29udGVudHMoJHlhbWxGaWxlKSktPmdldFZhbGlkYXRpb25NaWRkbGV3YXJlKCk7CiNvcgokcHNyMTVNaWRkbGV3YXJlID0gKG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21Kc29uRmlsZSgkanNvbkZpbGUpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1IxNVxWYWxpZGF0aW9uTWlkZGxld2FyZUJ1aWxkZXIpLT5mcm9tSnNvbihmaWxlX2dldF9jb250ZW50cygkanNvbkZpbGUpKS0+Z2V0VmFsaWRhdGlvbk1pZGRsZXdhcmUoKTsKI29yCiRzY2hlbWEgPSBuZXcgXGNlYmVcb3BlbmFwaVxzcGVjXE9wZW5BcGkoKTsgLy8gZ2VuZXJhdGUgc2NoZW1hIG9iamVjdCBieSBoYW5kCiR2YWxpZGF0b3IgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0aW9uTWlkZGxld2FyZUJ1aWxkZXIpLT5mcm9tU2NoZW1hKCRzY2hlbWEpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwpgYGAKCiMjIyBTbGltRnJhbWV3b3JrIE1pZGRsZXdhcmUKU2xpbSBmcmFtZXdvcmsgdXNlcyBzbGlnaHRseSBkaWZmZXJlbnQgbWlkZGxld2FyZSBpbnRlcmZhY2UsIHNvIGhlcmUgaXMgYW4gCmFkYXB0ZXIgd2hpY2ggeW91IGNhbiB1c2UgbGlrZSB0aGlzOgoKYGBgcGhwCiR5YW1sRmlsZSA9ICdhcGkueWFtbCc7CiRqc29uRmlsZSA9ICdhcGkuanNvbic7CgokcHNyMTVNaWRkbGV3YXJlID0gKG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1IxNVxWYWxpZGF0aW9uTWlkZGxld2FyZUJ1aWxkZXIpLT5mcm9tWWFtbChmaWxlX2dldF9jb250ZW50cygkeWFtbEZpbGUpKS0+Z2V0VmFsaWRhdGlvbk1pZGRsZXdhcmUoKTsKI29yCiRwc3IxNU1pZGRsZXdhcmUgPSAobmV3IFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSMTVcVmFsaWRhdGlvbk1pZGRsZXdhcmVCdWlsZGVyKS0+ZnJvbUpzb25GaWxlKCRqc29uRmlsZSktPmdldFZhbGlkYXRpb25NaWRkbGV3YXJlKCk7CiNvcgokcHNyMTVNaWRkbGV3YXJlID0gKG5ldyBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21Kc29uKGZpbGVfZ2V0X2NvbnRlbnRzKCRqc29uRmlsZSkpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHNjaGVtYSA9IG5ldyBcY2ViZVxvcGVuYXBpXHNwZWNcT3BlbkFwaSgpOyAvLyBnZW5lcmF0ZSBzY2hlbWEgb2JqZWN0IGJ5IGhhbmQKJHZhbGlkYXRvciA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21TY2hlbWEoJHNjaGVtYSktPmdldFZhbGlkYXRpb25NaWRkbGV3YXJlKCk7Cgokc2xpbU1pZGRsZXdhcmUgPSBuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1IxNVxTbGltQWRhcHRlcigkcHNyMTVNaWRkbGV3YXJlKTsKCi8qKiBAdmFyIFxTbGltXEFwcCAkYXBwICovCiRhcHAtPmFkZCgkc2xpbU1pZGRsZXdhcmUpOwpgYGAKCiMjIyBDYWNoaW5nIExheWVyIC8gUFNSLTYgU3VwcG9ydApQU1ItNyBWYWxpZGF0b3IgaGFzIGEgYnVpbHQtaW4gY2FjaGluZyBsYXllciAoYmFzZWQgb24gW1BTUi02XShodHRwczovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTYvKSBpbnRlcmZhY2VzKSB3aGljaCBzYXZlcyB0aW1lIG9uIHBhcnNpbmcgT3BlbkFQSSBzcGVjcy4gSXQgaXMgb3B0aW9uYWwuCllvdSBlbmFibGUgY2FjaGluZyBpZiB5b3UgcGFzcyBhIGNvbmZpZ3VyZWQgQ2FjaGUgUG9vbCBPYmplY3QgdG8gdGhlIHN0YXRpYyBjb25zdHJ1Y3RvciBsaWtlIHRoaXM6CmBgYHBocAovLyBDb25maWd1cmUgYSBQU1ItNiBDYWNoZSBQb29sCiRjYWNoZVBvb2wgPSBuZXcgQXJyYXlDYWNoZVBvb2woKTsKCi8vIFBhc3MgaXQgYXMgYSAybmQgYXJndW1lbnQKJHZhbGlkYXRvciA9IChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpCiAgICAtPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpCiAgICAtPnNldENhY2hlKCRjYWNoZVBvb2wpCiAgICAtPmdldFJlc3BvbnNlVmFsaWRhdG9yKCk7CiMgb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlcikKICAgIC0+ZnJvbVlhbWxGaWxlKCR5YW1sRmlsZSkKICAgIC0+c2V0Q2FjaGUoJGNhY2hlUG9vbCkKICAgIC0+Z2V0VmFsaWRhdGlvbk1pZGRsZXdhcmUoKTsKYGBgCgpZb3UgY2FuIHVzZSBgLT5zZXRDYWNoZSgkcG9vbCwgJHR0bClgIGNhbGwgZm9yIGJvdGggUFNSLTcgYW5kIFBTUi0xNSBidWlsZGVyIGluIG9yZGVyIHRvIHNldCAKW3Byb3BlciBleHBpcmF0aW9uIHR0bCBpbiBzZWNvbmRzIChvciBleHBsaWNpdCBgbnVsbGApXShodHRwczovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTYvI2RlZmluaXRpb25zKQoKSWYgeW91IHdhbnQgdGFrZSBjb250cm9sIG92ZXIgdGhlIGNhY2hlIGtleSBmb3Igc2NoZW1hIGl0ZW0sIG9yIHlvdXIgY2FjaGUgZG9lcyBub3Qgc3VwcG9ydCBjYWNoZSBrZXkgZ2VuZXJhdGlvbiBieSBpdHNlbGYKeW91IGNhbiBgLT5vdmVycmlkZUNhY2hlS2V5KCdteV9jdXN0b21fa2V5JylgIHRvIGVuc3VyZSBjYWNoZSB1c2VzIGtleSB5b3Ugd2FudC4KCiMjIyBTdGFuZGFsb25lIE9wZW5BUEkgVmFsaWRhdG9yClRoZSBwYWNrYWdlIGNvbnRhaW5zIGEgc3RhbmRhbG9uZSB2YWxpZGF0b3Igd2hpY2ggY2FuIHZhbGlkYXRlIGFueSBkYXRhIAphZ2FpbnN0IGFuIE9wZW5BUEkgc2NoZW1hIGxpa2UgdGhpczoKCmBgYHBocAokc3BlYyA9IDw8PFNQRUMKc2NoZW1hOgogIHR5cGU6IHN0cmluZwogIGVudW06CiAgLSBhCiAgLSBiClNQRUM7CiRkYXRhID0gImMiOwoKJHNwZWMgICA9IGNlYmVcb3BlbmFwaVxSZWFkZXI6OnJlYWRGcm9tWWFtbCgkc3BlYyk7CiMgKG9wdGlvbmFsKSByZWZlcmVuY2UgcmVzb2x2aW5nCiRzcGVjLT5yZXNvbHZlUmVmZXJlbmNlcyhuZXcgUmVmZXJlbmNlQ29udGV4dCgkc3BlYywgIi8iKSk7CiRzY2hlbWEgPSBuZXcgY2ViZVxvcGVuYXBpXHNwZWNcU2NoZW1hKCRzcGVjLT5zY2hlbWEpOwoKdHJ5IHsKICAgIChuZXcgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxTY2hlbWFcU2NoZW1hVmFsaWRhdG9yKCkpLT52YWxpZGF0ZSgkZGF0YSwgJHNjaGVtYSk7Cn0gY2F0Y2goXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxTY2hlbWFcRXhjZXB0aW9uXEtleXdvcmRNaXNtYXRjaCAkZSkgewogICAgLy8geW91IGNhbiBldmFsdWF0ZSBmYWlsdXJlIGRldGFpbHMKICAgIC8vICRlLT5rZXl3b3JkKCkgPT0gImVudW0iCiAgICAvLyAkZS0+ZGF0YSgpID09ICJjIgogICAgLy8gJGUtPmRhdGFCcmVhZENydW1iKCktPmJ1aWxkQ2hhaW4oKSAtLSBvbmx5IGZvciBuZXN0ZWQgZGF0YQp9CmBgYAoKIyMgQ3VzdG9tIFR5cGUgRm9ybWF0cwpBcyB5b3Uga25vdywgT3BlbkFQSSBhbGxvd3MgeW91IHRvIGFkZCBmb3JtYXRzIHRvIHR5cGVzOgoKYGBgeWFtbApzY2hlbWE6CiAgdHlwZTogc3RyaW5nCiAgZm9ybWF0OiBiaW5hcnkKYGBgCgpUaGlzIHBhY2thZ2UgY29udGFpbnMgYSBidW5jaCBvZiBidWlsdC1pbiBmb3JtYXQgdmFsaWRhdG9yczoKLSBgc3RyaW5nYCB0eXBlOgogICAgLSBgYnl0ZWAKICAgIC0gYGRhdGVgCiAgICAtIGBkYXRlLXRpbWVgCiAgICAtIGBlbWFpbGAKICAgIC0gYGhvc3RuYW1lYAogICAgLSBgaXB2NGAKICAgIC0gYGlwdjZgCiAgICAtIGB1cmlgCiAgICAtIGB1dWlkYCAodXVpZDQpCi0gYG51bWJlcmAgdHlwZQogICAgLSBgZmxvYXRgCiAgICAtIGBkb3VibGVgCgpZb3UgY2FuIGFsc28gYWRkIHlvdXIgb3duIGZvcm1hdHMuIExpa2UgdGhpczoKYGBgcGhwCiMgQSBmb3JtYXQgdmFsaWRhdG9yIG11c3QgYmUgYSBjYWxsYWJsZQojIEl0IG11c3QgcmV0dXJuIGJvb2wgdmFsdWUgKHRydWUgaWYgZm9ybWF0IG1hdGNoZWQgdGhlIGRhdGEsIGZhbHNlIG90aGVyd2lzZSkKCiMgQSBjYWxsYWJsZSBjbGFzczoKJGN1c3RvbUZvcm1hdCA9IG5ldyBjbGFzcygpCnsKICAgIGZ1bmN0aW9uIF9faW52b2tlKCR2YWx1ZSk6IGJvb2wKICAgIHsKICAgICAgICByZXR1cm4gJHZhbHVlID09PSAiZ29vZCB2YWx1ZSI7CiAgICB9Cn07CgojIE9yIGp1c3QgYSBjbG9zdXJlOgokY3VzdG9tRm9ybWF0ID0gZnVuY3Rpb24gKCR2YWx1ZSk6IGJvb2wgewogICAgcmV0dXJuICR2YWx1ZSA9PT0gImdvb2QgdmFsdWUiOwp9OwoKIyBSZWdpc3RlciB5b3VyIGNhbGxhYmxlIGxpa2UgdGhpcyBiZWZvcmUgdmFsaWRhdGluZyB5b3VyIGRhdGEKXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxTY2hlbWFcVHlwZUZvcm1hdHNcRm9ybWF0c0NvbnRhaW5lcjo6cmVnaXN0ZXJGb3JtYXQoJ3N0cmluZycsICdjdXN0b20nLCAkY3VzdG9tRm9ybWF0KTsKYGBgCgojIyBFeGNlcHRpb25zClRoZSBwYWNrYWdlIHRocm93cyBhIGxpc3Qgb2YgdmFyaW91cyBleGNlcHRpb25zIHdoaWNoIHlvdSBjYW4gY2F0Y2ggYW5kIGhhbmRsZS4gVGhlcmUgYXJlIHNvbWUgb2YgdGhlbToKLSBTY2hlbWEgcmVsYXRlZDoKICAgIC0gYFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cU2NoZW1hXEV4Y2VwdGlvblxLZXl3b3JkTWlzbWF0Y2hgIC0gSW5kaWNhdGVzIHRoYXQgZGF0YSB3YXMgbm90IG1hdGNoZWQgYWdhaW5zdCBhIHNjaGVtYSdzIGtleXdvcmQKICAgICAgICAtIGBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFNjaGVtYVxFeGNlcHRpb25cVHlwZU1pc21hdGNoYCAtIFZhbGlkYXRpb24gZm9yIGB0eXBlYCBrZXl3b3JkIGZhaWxlZCBhZ2FpbnN0IGEgZ2l2ZW4gZGF0YS4gRm9yIGV4YW1wbGUgYHR5cGU6c3RyaW5nYCBhbmQgdmFsdWUgaXMgYDEyYAogICAgICAgIC0gYFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cU2NoZW1hXEV4Y2VwdGlvblxGb3JtYXRNaXNtYXRjaGAgLSBkYXRhIG1pc21hdGNoZWQgYSBnaXZlbiB0eXBlIGZvcm1hdC4gRm9yIGV4YW1wbGUgYHR5cGU6IHN0cmluZywgZm9ybWF0OiBlbWFpbGAgd29uJ3QgbWF0Y2ggYG5vdC1lbWFpbGAuCi0gUFNSNyBNZXNzYWdlcyByZWxhdGVkOgogICAgLSBgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XEV4Y2VwdGlvblxOb0NvbnRlbnRUeXBlYCAtIEhUVFAgbWVzc2FnZShyZXF1ZXN0L3Jlc3BvbnNlKSBjb250YWlucyBubyBDb250ZW50LVR5cGUgaGVhZGVyLiBHZW5lcmFsIEhUVFAgZXJyb3JzLgogICAgLSBgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XEV4Y2VwdGlvblxOb1BhdGhgIC0gcGF0aCBpcyBub3QgZm91bmQgaW4gdGhlIHNwZWMKICAgIC0gYFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cTm9PcGVyYXRpb25gIC0gb3BlcmF0aW9uIG9zIG5vdCBmb3VuZCBpbiB0aGUgcGF0aAogICAgLSBgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XEV4Y2VwdGlvblxOb1Jlc3BvbnNlQ29kZWAgLSByZXNwb25zZSBjb2RlIG5vdCBmb3VuZCB1bmRlciB0aGUgb3BlcmF0aW9uIGluIHRoZSBzcGVjCiAgICAtIFZhbGlkYXRpb24gZXhjZXB0aW9ucyAoY2hlY2sgcGFyZW50IGV4Y2VwdGlvbiBmb3IgcG9zc2libGUgcm9vdCBjYXVzZXMpOgogICAgICAgIC0gYFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cVmFsaWRhdGlvbkZhaWxlZGAgLSBnZW5lcmljIGV4Y2VwdGlvbiBmb3IgZmFpbGVkIFBTUi03IG1lc3NhZ2UKICAgICAgICAtIGBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXFZhbGlkYXRpb25cSW52YWxpZEJvZHlgIC0gYm9keSBkb2VzIG5vdCBtYXRjaCBzY2hlbWEKICAgICAgICAtIGBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXFZhbGlkYXRpb25cSW52YWxpZENvb2tpZXNgIC0gY29va2llcyBkb2VzIG5vdCBtYXRjaCBzY2hlbWEgb3IgbWlzc2luZyByZXF1aXJlZCBjb29raWUKICAgICAgICAtIGBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXFZhbGlkYXRpb25cSW52YWxpZEhlYWRlcnNgIC0gaGVhZGVyIGRvZXMgbm90IG1hdGNoIHNjaGVtYSBvciBtaXNzaW5nIHJlcXVpcmVkIGhlYWRlcgogICAgICAgIC0gYFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cVmFsaWRhdGlvblxJbnZhbGlkUGF0aGAgLSBwYXRoIGRvZXMgbm90IG1hdGNoIHBhdHRlcm4gb3IgcGF0dGVybiB2YWx1ZXMgZG9lcyBub3QgbWF0Y2ggc2NoZW1hCiAgICAgICAgLSBgXExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XEV4Y2VwdGlvblxWYWxpZGF0aW9uXEludmFsaWRRdWVyeUFyZ3NgIC0gcXVlcnkgYXJncyBkb2VzIG5vdCBtYXRjaCBzY2hlbWEgb3IgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudAogICAgICAgIC0gYFxMZWFndWVcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cVmFsaWRhdGlvblxJbnZhbGlkU2VjdXJpdHlgIC0gcmVxdWVzdCBkb2VzIG5vdCBtYXRjaCBzZWN1cml0eSBzY2hlbWEgb3IgaW52YWxpZCBzZWN1cml0eSBoZWFkZXJzCiAgICAtIFJlcXVlc3QgcmVsYXRlZDoKICAgICAgICAtIGBcTGVhZ3VlXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXE11bHRpcGxlT3BlcmF0aW9uc01pc21hdGNoRm9yUmVxdWVzdGAgLSByZXF1ZXN0IG1hdGNoZWQgbXVsdGlwbGUgb3BlcmF0aW9ucyBpbiB0aGUgc3BlYywgCiAgICAgICAgYnV0IHZhbGlkYXRpb24gZmFpbGVkIGZvciBhbGwgb2YgdGhlbS4KCiMjIFRlc3RpbmcKWW91IGNhbiBydW4gdGhlIHRlc3RzIHdpdGg6CgpgYGAKdmVuZG9yL2Jpbi9waHB1bml0CmBgYAoKIyMgQ29udHJpYnV0aW9uIEd1aWRlCkZlZWwgZnJlZSB0byBvcGVuIGFuIElzc3VlIG9yIGFkZCBhIFB1bGwgcmVxdWVzdC4gClRoZXJlIGlzIGEgY2VydGFpbiBjb2RlIHN0eWxlIHRoYXQgdGhpcyBwYWNrYWdlIGZvbGxvd3M6IFtkb2N0cmluZS9jb2Rpbmctc3RhbmRhcmRdKGh0dHBzOi8vd3d3LmRvY3RyaW5lLXByb2plY3Qub3JnL3Byb2plY3RzL2RvY3RyaW5lLWNvZGluZy1zdGFuZGFyZC9lbi9sYXRlc3QvcmVmZXJlbmNlL2luZGV4Lmh0bWwjaW50cm9kdWN0aW9uKS4KClRvIGNvbmZvcm0gdG8gdGhpcyBzdHlsZSBwbGVhc2UgdXNlIGEgZ2l0IGhvb2ssIHNoaXBwZWQgd2l0aCB0aGlzIHBhY2thZ2UgYXQgYC5naXRob29rcy9wcmUtY29tbWl0YC4KCkhvdyB0byB1c2UgaXQ6CjEuIENsb25lIHRoZSBwYWNrYWdlIGxvY2FsbHkgYW5kIG5hdmlnYXRlIHRvIHRoZSBmb2xkZXIKMi4gQ3JlYXRlIGEgc3ltbGluayB0byB0aGUgaG9vayBsaWtlIHRoaXM6IGBsbiAtcyAtZiAuLi8uLi8uZ2l0aG9va3MvcHJlLWNvbW1pdCAuZ2l0L2hvb2tzL3ByZS1jb21taXRgCjMuIEFkZCBleGVjdXRpb24gcmlnaHRzOiBgY2htb2QgK3ggLmdpdC9ob29rcy9wcmUtY29tbWl0YAo0LiBOb3cgY29tbWl0IGFueSBuZXcgY2hhbmdlcyBhbmQgdGhlIGNvZGUgd2lsbCBiZSBjaGVja2VkIGFuZCBmb3JtYXR0ZWQgYWNjb3JkaW5nbHkuCjUuIElmIHRoZXJlIGFyZSBhbnkgaXNzdWVzIHdpdGggeW91ciBjb2RlLCBjaGVjayB0aGUgbG9nIGhlcmU6IGAucGhwY3MtcmVwb3J0LnR4dGAKCiMjIENyZWRpdHMKUGVvcGxlOgotIFtEbWl0cnkgTGV6aG5ldl0oaHR0cHM6Ly9naXRodWIuY29tL2xlemhuZXY3NCkKLSBbQ2Fyc3RlbiBCcmFuZHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZWJlKQotIFtTYW11ZWwgTmVsYV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbW5lbGEpCi0gW1BhdmVsIEJhdGFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2F5dHJhc2UpCi0gW0NocmlzdG9waGVyIEwgQnJheV0oaHR0cHM6Ly9naXRodWIuY29tL2JyYXluaXZlcnNlKQotIFtEYXZpZCBQYXVsaV0oaHR0cHM6Ly9naXRodWIuY29tL2RwYXVsaSkKLSBbSmFzb24gSnVkZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWRnZWopCi0gW1lhbm5pY2sgQ2hlbm90XShodHRwczovL2dpdGh1Yi5jb20vb3N0ZWVsKQotIFtUYXJhc0JLXShodHRwczovL2dpdGh1Yi5jb20vVGFyYXNCSykKLSBbSmFzb24gQi4gU3RhbmRpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNvbmJzdGFuZGluZykKLSBbRG15dHJvIERlbWNoeW5hXShodHRwczovL2dpdGh1Yi5jb20vZG15dHJvLWRlbWNoeW5hKQotIFtXaWxsIENoYW1iZXJzXShodHRwczovL2dpdGh1Yi5jb20vd2lsbGNoYW1iZXJzOTkpCi0gW0lnbmFjaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9pbWVmaXN0bykKLSBBIGJpZyB0aGFuayB5b3UgdG8gW0hlbnJpayBLYXJsc3Ryw7ZtXShodHRwczovL2dpdGh1Yi5jb20vaGthcmxzdHJvbSkgd2hvIGtpbmQgb2YgaW5zcGlyZWQgbWUgdG8gd29yayBvbiB0aGlzIHBhY2thZ2UuIAoKUmVzb3VyY2VzOgotIEljb25zIG1hZGUgYnkgRnJlZXBpaywgbGljZW5zZWQgYnkgQ0MgMy4wIEJZCi0gW2NlYmUvcGhwLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9jZWJlL3BocC1vcGVuYXBpKSBwYWNrYWdlIGZvciBSZWFkaW5nIE9wZW5BUEkgZmlsZXMKLSBbc2xpbTMtcHNyMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ibmYvc2xpbTMtcHNyMTUpIHBhY2thZ2UgZm9yIFNsaW0gbWlkZGxld2FyZSBhZGFwdGVyCiAKIyMgTGljZW5zZQpUaGUgTUlUIExpY2Vuc2UgKE1JVCkuIFBsZWFzZSBzZWUgYExpY2Vuc2UubWRgIGZpbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyBUT0RPCi0gWyBdIFN1cHBvcnQgRGlzY3JpbWluYXRvciBPYmplY3QgKG5vdGU6IGFwcGFyZW50bHksIHRoaXMgaXMgbm90IHNvIHN0cmFpZ2h0Zm9yd2FyZCwgYXMgZGlzY3JpbWluYXRvciBjYW4gcG9pbnQgdG8gYW55IGV4dGVybmFsIHNjaGVtZSkK readmeEtag: '"bb4441fcf3a344c1448c23f38f6b5d2b6242e9ce"' readmeLastModified: Wed, 10 Jan 2024 19:11:09 GMT repositoryId: 209473440 description: >- It validates PSR-7 messages (HTTP request/response) against OpenAPI specifications created: '2019-09-19T05:57:05Z' updated: '2024-08-27T19:14:58Z' language: PHP archived: false stars: 523 watchers: 23 forks: 92 owner: thephpleague logo: https://avatars.githubusercontent.com/u/527621?v=4 license: MIT repoEtag: '"a0beefc7179f4502567e8d4fc86c943a9fde2675b0dc910953660fde27981f21"' repoLastModified: Tue, 27 Aug 2024 19:14:58 GMT foundInMaster: true v3_1_link: https://github.com/thephpleague/openapi-psr7-validator/issues/163 id: 5db76a91d3b4f650045f409b9e0f4e9b v3_1: true - source: - https://openapi.tools/ - openapi3 tags name: php-openapi category: - Parsers - Description Validators repository: https://github.com/cebe/php-openapi language: PHP source_description: A PHP library for manipulating and validating OpenAPI 3.0 Descriptions v3: true repositoryMetadata: base64Readme: >- IyBwaHAtb3BlbmFwaQoKUmVhZCBhbmQgd3JpdGUgW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIDMuMC54IFlBTUwgYW5kIEpTT04gZmlsZXMgYW5kIG1ha2UgdGhlIGNvbnRlbnQgYWNjZXNzaWJsZSBpbiBQSFAgb2JqZWN0cy4KCkl0IGFsc28gcHJvdmlkZXMgYSBDTEkgdG9vbCBmb3IgdmFsaWRhdGluZyBhbmQgY29udmVydGluZyBPcGVuQVBJIDMuMC54IERlc2NyaXB0aW9uIGZpbGVzLgoKWyFbTGF0ZXN0IFN0YWJsZSBWZXJzaW9uXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL2NlYmUvcGhwLW9wZW5hcGkvdi9zdGFibGUpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvY2ViZS9waHAtb3BlbmFwaSkKWyFbVG90YWwgRG93bmxvYWRzXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL2NlYmUvcGhwLW9wZW5hcGkvZG93bmxvYWRzKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2NlYmUvcGhwLW9wZW5hcGkpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL2NlYmUvcGhwLW9wZW5hcGkvd29ya2Zsb3dzL0NJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jZWJlL3BocC1vcGVuYXBpL2FjdGlvbnMpCgoKIyMgSW5zdGFsbAoKICAgIGNvbXBvc2VyIHJlcXVpcmUgY2ViZS9waHAtb3BlbmFwaQoKIyMgUmVxdWlyZW1lbnRzCgotIFBIUCA3LjEgb3IgaGlnaGVyICh3b3JrcyBmaW5lIHdpdGggUEhQIDgpCgojIyBVc2VkIGJ5CgpUaGlzIGxpYnJhcnkgcHJvdmlkZXMgYSBsb3cgbGV2ZWwgQVBJIGZvciByZWFkaW5nIGFuZCB3cml0aW5nIE9wZW5BUEkgZmlsZXMuIEl0IGlzIHVzZWQgYnkgaGlnaGVyIGxldmVsIHRvb2xzIHRvCmRvIGF3ZXNvbWUgd29yazoKCi0gW2NlYmUveWlpMi1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vY2ViZS95aWkyLW9wZW5hcGkpIENvZGUgR2VuZXJhdG9yIGZvciBSRVNUIEFQSSBmcm9tIE9wZW5BUEkgMyBEZXNjcmlwdGlvbnMsIGluY2x1ZGVzIGZha2UgZGF0YSBnZW5lcmF0b3IuCi0gW2NlYmUveWlpMi1hcHAtYXBpXShodHRwczovL2dpdGh1Yi5jb20vY2ViZS95aWkyLWFwcC1hcGkpIFlpaSBmcmFtZXdvcmsgYXBwbGljYXRpb24gdGVtcGxhdGUgZm9yIGRldmVsb3BpbmcgQVBJLWZpcnN0IGFwcGxpY2F0aW9ucy4KLSBbbGVhZ3VlL29wZW5hcGktcHNyNy12YWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS90aGVwaHBsZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcikgdmFsaWRhdGVzIFBTUi03IG1lc3NhZ2VzIChIVFRQIHJlcXVlc3QvcmVzcG9uc2UpIGFnYWluc3QgT3BlbkFQSSBkZXNjcmlwdGlvbnMuCi0gW2RzdXVybGFudC9yZXNwb25zZTJzY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kc3V1cmxhbnQvcmVzcG9uc2Uyc2NoZW1hKSBhIHF1aWNrIGFuZCBlYXN5IHRvb2wgZm9yIGdlbmVyYXRpbmcgT3BlbkFQSSBzY2hlbWFzIGJhc2VkIG9uIGV4YW1wbGUgZGF0YS4KLSAuLi4gKFthZGQgeW91cnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZWJlL3BocC1vcGVuYXBpL2VkaXQvbWFzdGVyL1JFQURNRS5tZCNMMjQpKQoKIyMgVXNhZ2UKCiMjIyBDTEkgVG9vbAoKICAgICQgdmVuZG9yL2Jpbi9waHAtb3BlbmFwaSBoZWxwCiAgICBQSFAgT3BlbkFQSSAzIHRvb2wKICAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgYnkgQ2Fyc3RlbiBCcmFuZHQgPG1haWxAY2ViZS5jYz4KCiAgICBVc2FnZToKICAgICAgcGhwLW9wZW5hcGkgPGNvbW1hbmQ+IFs8b3B0aW9ucz5dIFtpbnB1dC55bWx8aW5wdXQuanNvbl0gW291dHB1dC55bWx8b3V0cHV0Lmpzb25dCgogICAgICBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSBhdmFpbGFibGU6CgogICAgICAgIHZhbGlkYXRlICAgVmFsaWRhdGUgdGhlIEFQSSBEZXNjcmlwdGlvbiBpbiB0aGUgc3BlY2lmaWVkIGlucHV0IGZpbGUgYWdhaW5zdCB0aGUgT3BlbkFQSSB2My4wIHNjaGVtYS4KICAgICAgICAgICAgICAgICAgIE5vdGU6IHRoZSB2YWxpZGF0aW9uIGlzIHBlcmZvcm1lZCBpbiB0d28gc3RlcHMuIFRoZSByZXN1bHRzIGFyZSBjb21wb3NlZCBvZgogICAgICAgICAgICAgICAgICAgICgxKSBzdHJ1Y3R1cmFsIGVycm9ycyBmb3VuZCB3aGlsZSByZWFkaW5nIHRoZSBBUEkgRGVzY3JpcHRpb24gZmlsZSwgYW5kCiAgICAgICAgICAgICAgICAgICAgKDIpIHZpb2xhdGlvbnMgb2YgdGhlIE9wZW5BUEkgdjMuMCBzY2hlbWEuCgogICAgICAgICAgICAgICAgICAgSWYgbm8gaW5wdXQgZmlsZSBpcyBzcGVjaWZpZWQgaW5wdXQgd2lsbCBiZSByZWFkIGZyb20gU1RESU4uCiAgICAgICAgICAgICAgICAgICBUaGUgdG9vbCB3aWxsIHRyeSB0byBhdXRvLWRldGVjdCB0aGUgY29udGVudCB0eXBlIG9mIHRoZSBpbnB1dCwgYnV0IG1heSBmYWlsCiAgICAgICAgICAgICAgICAgICB0byBkbyBzby4gWW91IG1heSBzcGVjaWZ5IC0tcmVhZC15YW1sIG9yIC0tcmVhZC1qc29uIHRvIGZvcmNlIHRoZSBmaWxlIHR5cGUuCgogICAgICAgICAgICAgICAgICAgRXhpdHMgd2l0aCBjb2RlIDIgb24gdmFsaWRhdGlvbiBlcnJvcnMsIDEgb24gb3RoZXIgZXJyb3JzIGFuZCAwIG9uIHN1Y2Nlc3MuCgogICAgICAgIGNvbnZlcnQgICAgQ29udmVydCBhIEpTT04gb3IgWUFNTCBpbnB1dCBmaWxlIHRvIEpTT04gb3IgWUFNTCBvdXRwdXQgZmlsZS4KCiAgICAgICAgICAgICAgICAgICBJZiBubyBpbnB1dCBmaWxlIGlzIHNwZWNpZmllZCBpbnB1dCB3aWxsIGJlIHJlYWQgZnJvbSBTVERJTi4KICAgICAgICAgICAgICAgICAgIElmIG5vIG91dHB1dCBmaWxlIGlzIHNwZWNpZmllZCBvdXRwdXQgd2lsbCBiZSB3cml0dGVuIHRvIFNURE9VVC4KICAgICAgICAgICAgICAgICAgIFRoZSB0b29sIHdpbGwgdHJ5IHRvIGF1dG8tZGV0ZWN0IHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIGlucHV0IGFuZCBvdXRwdXQgZmlsZSwgYnV0IG1heSBmYWlsCiAgICAgICAgICAgICAgICAgICB0byBkbyBzby4gWW91IG1heSBzcGVjaWZ5IC0tcmVhZC15YW1sIG9yIC0tcmVhZC1qc29uIHRvIGZvcmNlIHRoZSBpbnB1dCBmaWxlIHR5cGUuCiAgICAgICAgICAgICAgICAgICBhbmQgLS13cml0ZS15YW1sIG9yIC0td3JpdGUtanNvbiB0byBmb3JjZSB0aGUgb3V0cHV0IGZpbGUgdHlwZS4KCiAgICAgICAgICAgICAgICAgICBCeSBkZWZhdWx0IGFsbCByZWZlcmVuY2VzIGFyZSByZXNvbHZlZCAocmVwbGFjZWQgd2l0aCB0aGUgb2JqZWN0IHJlZmVycmVkIHRvKS4gWW91IGNhbiBjb250cm9sCiAgICAgICAgICAgICAgICAgICBoYW5kbGluZyBvZiByZWZlcmVuY2VzIHdpdGggdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6CgogICAgICAgICAgICAgICAgICAgLS1yZXNvbHZlLW5vbmUgICAgICBEbyBub3QgcmVzb2x2ZSByZWZlcmVuY2VzLgogICAgICAgICAgICAgICAgICAgLS1yZXNvbHZlLWV4dGVybmFsICBPbmx5IHJlc29sdmUgcmVmZXJlbmNlcyB0aGF0IHBvaW50IHRvIGV4dGVybmFsIGZpbGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHByb2Nlc3MgaXMgb2Z0ZW4gcmVmZXJyZWQgdG8gYXMgImlubGluaW5nIi4KICAgICAgICAgICAgICAgICAgIC0tcmVzb2x2ZS1hbGwgICAgICAgUmVzb2x2ZSBhbGwgcmVmZXJlbmNlcyAoZGVmYXVsdCkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3Vyc2l2ZSBwb2ludGVycyB3aWxsIHN0YXkgcmVmZXJlbmNlcy4KCiAgICAgICAgaW5saW5lICAgICBDb252ZXJ0IGEgSlNPTiBvciBZQU1MIGlucHV0IGZpbGUgdG8gSlNPTiBvciBZQU1MIG91dHB1dCBmaWxlIGFuZAogICAgICAgICAgICAgICAgICAgcmVzb2x2ZSBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcy4gVGhlIG91dHB1dCB3aWxsIGJlIGEgc2luZ2xlIEFQSSBEZXNjcmlwdGlvbiBmaWxlLgogICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIHNob3J0Y3V0IGZvciBjYWxsaW5nIGNvbnZlcnQgLS1yZXNvbHZlLWV4dGVybmFsLgoKICAgICAgICBoZWxwICAgICAgIFNob3dzIHRoaXMgdXNhZ2UgaW5mb3JtYXRpb24uCgogICAgICBPcHRpb25zOgoKICAgICAgICAtLXJlYWQtanNvbiAgIGZvcmNlIHJlYWRpbmcgaW5wdXQgYXMgSlNPTi4gQXV0by1kZXRlY3QgaWYgbm90IHNwZWNpZmllZC4KICAgICAgICAtLXJlYWQteWFtbCAgIGZvcmNlIHJlYWRpbmcgaW5wdXQgYXMgWUFNTC4gQXV0by1kZXRlY3QgaWYgbm90IHNwZWNpZmllZC4KICAgICAgICAtLXdyaXRlLWpzb24gIGZvcmNlIHdyaXRpbmcgb3V0cHV0IGFzIEpTT04uIEF1dG8tZGV0ZWN0IGlmIG5vdCBzcGVjaWZpZWQuCiAgICAgICAgLS13cml0ZS15YW1sICBmb3JjZSB3cml0aW5nIG91dHB1dCBhcyBZQU1MLiBBdXRvLWRldGVjdCBpZiBub3Qgc3BlY2lmaWVkLgogICAgICAgIC1zLCAtLXNpbGVudCAgc2lsZW50IG1vZGUuIFdpbGwgaGlkZSBhbGwgc3VjY2Vzcy9pbmZvcm1hdGlvbiBtZXNzYWdlcyBhbmQgb25seSBwcmludCBlcnJvcnMuCgoKIyMjIFJlYWRpbmcgQVBJIERlc2NyaXB0aW9uIEZpbGVzCgpSZWFkIE9wZW5BUEkgRGVzY3JpcHRpb24gZnJvbSBKU09OIGZpbGU6CgpgYGBwaHAKdXNlIGNlYmVcb3BlbmFwaVxSZWFkZXI7CgovLyByZWFscGF0aCBpcyBuZWVkZWQgZm9yIHJlc29sdmluZyByZWZlcmVuY2VzIHdpdGggcmVsYXRpdmUgUGF0aHMgb3IgVVJMcwokb3BlbmFwaSA9IFJlYWRlcjo6cmVhZEZyb21Kc29uRmlsZShyZWFscGF0aCgnb3BlbmFwaS5qc29uJykpOwpgYGAKClJlYWQgT3BlbkFQSSBEZXNjcmlwdGlvbiBmcm9tIFlBTUw6CgpgYGBwaHAKdXNlIGNlYmVcb3BlbmFwaVxSZWFkZXI7CgovLyByZWFscGF0aCBpcyBuZWVkZWQgZm9yIHJlc29sdmluZyByZWZlcmVuY2VzIHdpdGggcmVsYXRpdmUgUGF0aHMgb3IgVVJMcwokb3BlbmFwaSA9IFJlYWRlcjo6cmVhZEZyb21ZYW1sRmlsZShyZWFscGF0aCgnb3BlbmFwaS55YW1sJykpOwovLyB5b3UgbWF5IGFsc28gc3BlY2lmeSB0aGUgVVJMIHRvIHlvdXIgQVBJIERlc2NyaXB0aW9uIGZpbGUKJG9wZW5hcGkgPSBSZWFkZXI6OnJlYWRGcm9tWWFtbEZpbGUoJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uLzMuMC4yL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUtZXhwYW5kZWQueWFtbCcpOwpgYGAKCkFjY2VzcyBBUEkgRGVzY3JpcHRpb24gZGF0YToKCmBgYHBocAplY2hvICRvcGVuYXBpLT5vcGVuYXBpOyAvLyBvcGVuQVBJIHZlcnNpb24sIGUuZy4gMy4wLjAKZWNobyAkb3BlbmFwaS0+aW5mby0+dGl0bGU7IC8vIEFQSSB0aXRsZQpmb3JlYWNoKCRvcGVuYXBpLT5wYXRocyBhcyAkcGF0aCA9PiAkZGVmaW5pdGlvbikgewogICAgLy8gaXRlcmF0ZSBwYXRoIGRlZmluaXRpb25zCn0KYGBgCgpPYmplY3QgcHJvcGVydGllcyBhcmUgZXhhY3RseSBsaWtlIGluIHRoZSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iLzMuMC4yL3ZlcnNpb25zLzMuMC4yLm1kI29wZW5hcGktc3BlY2lmaWNhdGlvbikuCllvdSBtYXkgYWxzbyBhY2Nlc3MgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGFkZGVkIGJ5IFtzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvMy4wLjIvdmVyc2lvbnMvMy4wLjIubWQjc3BlY2lmaWNhdGlvbkV4dGVuc2lvbnMpLgoKIyMjIFdyaXRpbmcgQVBJIERlc2NyaXB0aW9uIEZpbGVzCgpgYGBwaHAKdXNlIGNlYmVcb3BlbmFwaVxzcGVjXE9wZW5BcGk7CnVzZSBjZWJlXG9wZW5hcGlcc3BlY1xQYXRoSXRlbTsKCi8vIGNyZWF0ZSBiYXNlIEFQSSBEZXNjcmlwdGlvbgokb3BlbmFwaSA9IG5ldyBPcGVuQXBpKFsKICAgICdvcGVuYXBpJyA9PiAnMy4wLjInLAogICAgJ2luZm8nID0+IFsKICAgICAgICAndGl0bGUnID0+ICdUZXN0IEFQSScsCiAgICAgICAgJ3ZlcnNpb24nID0+ICcxLjAuMCcsCiAgICBdLAogICAgJ3BhdGhzJyA9PiBbXSwKXSk7Ci8vIG1hbmlwdWxhdGUgZGVzY3JpcHRpb24gYXMgbmVlZGVkCiRvcGVuYXBpLT5wYXRoc1snL3Rlc3QnXSA9IG5ldyBQYXRoSXRlbShbCiAgICAnZGVzY3JpcHRpb24nID0+ICdzb21ldGhpbmcnCl0pOwovLyAuLi4KCiRqc29uID0gXGNlYmVcb3BlbmFwaVxXcml0ZXI6OndyaXRlVG9Kc29uKCRvcGVuYXBpKTsKYGBgCgpyZXN1bHRzIGluIHRoZSBmb2xsb3dpbmcgSlNPTiBkYXRhOgoKYGBganNvbgp7CiAgICAib3BlbmFwaSI6ICIzLjAuMCIsCiAgICAiaW5mbyI6IHsKICAgICAgICAidGl0bGUiOiAiVGVzdCBBUEkiLAogICAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIgogICAgfSwKICAgICJwYXRocyI6IHsKICAgICAgICAiL3Rlc3QiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJzb21ldGhpbmciCiAgICAgICAgfQogICAgfQp9CmBgYAoKIyMjIFdyaXRpbmcgQVBJIERlc2NyaXB0aW9uIEZpbGVzIHVzaW5nIHByZXBhcmVkIE9iamVjdHMKClNpbmNlIHZlcnNpb24gMS4yLjAsIHRoZSBhYm92ZSBleGFtcGxlIGNhbiBhbHNvIGJlIHdyaXR0ZW4gbGlrZSB0aGlzIChwYXNzaW5nIG9iamVjdHMgaW5zdGVhZCBvZiBhcnJheXMpOgoKYGBgcGhwCnVzZSBjZWJlXG9wZW5hcGlcc3BlY1xPcGVuQXBpOwp1c2UgY2ViZVxvcGVuYXBpXHNwZWNcUGF0aEl0ZW07CnVzZSBjZWJlXG9wZW5hcGlcc3BlY1xJbmZvOwoKCi8vIGNyZWF0ZSBiYXNlIEFQSSBEZXNjcmlwdGlvbgokb3BlbmFwaSA9IG5ldyBPcGVuQXBpKFsKICAgICdvcGVuYXBpJyA9PiAnMy4wLjInLAogICAgJ2luZm8nID0+IG5ldyBJbmZvKFsKICAgICAgICAndGl0bGUnID0+ICdUZXN0IEFQSScsCiAgICAgICAgJ3ZlcnNpb24nID0+ICcxLjAuMCcsCiAgICBdKSwKICAgICdwYXRocycgPT4gWwogICAgICAgICcvdGVzdCcgPT4gbmV3IFBhdGhJdGVtKFsKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiAnc29tZXRoaW5nJwogICAgICAgIF0pLAogICAgXSwKXSk7CiRqc29uID0gXGNlYmVcb3BlbmFwaVxXcml0ZXI6OndyaXRlVG9Kc29uKCRvcGVuYXBpKTsKYGBgCgojIyMgUmVhZGluZyBBUEkgRGVzY3JpcHRpb24gRmlsZXMgYW5kIFJlc29sdmluZyBSZWZlcmVuY2VzCgpJbiB0aGUgYWJvdmUgd2UgaGF2ZSBwYXNzZWQgdGhlIHJhdyBKU09OIG9yIFlBTUwgZGF0YSB0byB0aGUgUmVhZGVyLiBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHJlc29sdmUKcmVmZXJlbmNlcyB0byBzdHJ1Y3R1cmVzIGluIGV4dGVybmFsIGZpbGVzLCB3ZSBtdXN0IHByb3ZpZGUgdGhlIGZ1bGwgY29udGV4dC4KCmBgYHBocAp1c2UgY2ViZVxvcGVuYXBpXFJlYWRlcjsKdXNlIGNlYmVcb3BlbmFwaVxzcGVjXE9wZW5BUEk7CnVzZSBjZWJlXG9wZW5hcGlcUmVmZXJlbmNlQ29udGV4dDsKCi8vIHRoZXJlIGFyZSB0d28gZGlmZmVyZW50IG1vZGVzIGZvciByZXNvbHZpbmcgcmVmZXJlbmNlczoKLy8gQUxMOiByZXNvbHZlIGFsbCByZWZlcmVuY2VzLCB3aGljaCB3aWxsIHJlc3VsdCBpbiBhIGxhcmdlIGRlc2NyaXB0aW9uIHdpdGggYSBsb3Qgb2YgcmVwZXRpdGlvbgovLyBidXQgbm8gcmVmZXJlbmNlcyAoZXhjZXB0IGlmIHRoZXJlIGFyZSByZWN1cnNpdmUgcmVmZXJlbmNlcywgdGhlc2Ugd2lsbCBzdG9wIGF0IHNvbWUgbGV2ZWwpCiRtb2RlID0gUmVmZXJlbmNlQ29udGV4dDo6UkVTT0xWRV9NT0RFX0FMTDsKLy8gSU5MSU5FOiBvbmx5IHJlZmVyZW5jZXMgdG8gZXh0ZXJuYWwgZmlsZXMgYXJlIHJlc29sdmVkLCByZWZlcmVuY2VzIHRvIHBsYWNlcyBpbiB0aGUgY3VycmVudCBmaWxlCi8vIGFyZSBzdGlsbCBSZWZlcmVuY2Ugb2JqZWN0cy4KJG1vZGUgPSBSZWZlcmVuY2VDb250ZXh0OjpSRVNPTFZFX01PREVfSU5MSU5FOwoKLy8gYW4gYWJzb2x1dGUgVVJMIG9yIGZpbGUgcGF0aCBpcyBuZWVkZWQgdG8gYWxsb3cgcmVzb2x2aW5nIGV4dGVybmFsIHJlZmVyZW5jZXMKJG9wZW5hcGkgPSBSZWFkZXI6OnJlYWRGcm9tSnNvbkZpbGUoJ2h0dHBzOi8vd3d3LmV4YW1wbGUuY29tL2FwaS9vcGVuYXBpLmpzb24nLCBPcGVuQVBJOjpjbGFzcywgJG1vZGUpOwokb3BlbmFwaSA9IFJlYWRlcjo6cmVhZEZyb21ZYW1sRmlsZSgnaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vYXBpL29wZW5hcGkueWFtbCcsIE9wZW5BUEk6OmNsYXNzLCAkbW9kZSk7CmBgYAoKSWYgZGF0YSBoYXMgYmVlbiBsb2FkZWQgaW4gYSBkaWZmZXJlbnQgd2F5IHlvdSBjYW4gbWFudWFsbHkgcmVzb2x2ZSByZWZlcmVuY2VzIGxpa2UgdGhpcyBieSBnaXZpbmcgYSBjb250ZXh0OgoKYGBgcGhwCiRvcGVuYXBpLT5yZXNvbHZlUmVmZXJlbmNlcygKICAgIG5ldyBcY2ViZVxvcGVuYXBpXFJlZmVyZW5jZUNvbnRleHQoJG9wZW5hcGksICdodHRwczovL3d3dy5leGFtcGxlLmNvbS9hcGkvb3BlbmFwaS55YW1sJykKKTsKYGBgCgojIyMgVmFsaWRhdGlvbgoKVGhlIGxpYnJhcnkgcHJvdmlkZXMgc2ltcGxlIHZhbGlkYXRpb24gb3BlcmF0aW9ucywgdGhhdCBjaGVjayBiYXNpYyBPcGVuQVBJIHNwZWMgcmVxdWlyZW1lbnRzLgpUaGlzIGlzIHRoZSBzYW1lIGFzICJzdHJ1Y3R1cmFsIGVycm9ycyBmb3VuZCB3aGlsZSByZWFkaW5nIHRoZSBBUEkgRGVzY3JpcHRpb24gZmlsZSIgZnJvbSB0aGUgQ0xJIHRvb2wuClRoaXMgdmFsaWRhdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGNoZWNraW5nIGFnYWluc3QgdGhlIE9wZW5BUEkgdjMuMCBKU09OIHNjaGVtYSwgdGhpcyBpcyBvbmx5IGltcGxlbWVudGVkIGluIHRoZSBDTEkuCgpgYGAKLy8gcmV0dXJuIGB0cnVlYCBpbiBjYXNlIG5vIGVycm9ycyBoYXZlIGJlZW4gZm91bmQsIGBmYWxzZWAgaW4gY2FzZSBvZiBlcnJvcnMuCiRzcGVjVmFsaWQgPSAkb3BlbmFwaS0+dmFsaWRhdGUoKTsKLy8gYWZ0ZXIgdmFsaWRhdGlvbiBnZXRFcnJvcnMoKSBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgbGlzdCBvZiBlcnJvcnMgZm91bmQuCiRlcnJvcnMgPSAkb3BlbmFwaS0+Z2V0RXJyb3JzKCk7CmBgYAoKPiAqKk5vdGU6KiogVmFsaWRhdGlvbiBpcyBkb25lIG9uIGEgdmVyeSBiYXNpYyBsZXZlbCBhbmQgaXMgbm90IGNvbXBsZXRlLiBTbyBhIGZhaWxpbmcgdmFsaWRhdGlvbiB3aWxsIHNob3cgc29tZSBlcnJvcnMsCj4gYnV0IHRoZSBsaXN0IG9mIGVycm9ycyBnaXZlbiBtYXkgbm90IGJlIGNvbXBsZXRlLiBBbHNvIGEgcGFzc2luZyB2YWxpZGF0aW9uIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGluZGljYXRlIGEgY29tcGxldGVseQo+IHZhbGlkIHNwZWMuCgoKIyMgQ29tcGxldGVuZXNzCgpUaGlzIGxpYnJhcnkgaXMgY3VycmVudGx5IHdvcmsgaW4gcHJvZ3Jlc3MsIHRoZSBmb2xsb3dpbmcgbGlzdCB0cmFja3MgY29tcGxldGVuZXNzOgoKLSBbeF0gcmVhZCBPcGVuQVBJIDMuMCBKU09OCi0gW3hdIHJlYWQgT3BlbkFQSSAzLjAgWUFNTAotIFsgXSBPcGVuQVBJIDMuMCBTY2hlbWEKICAtIFt4XSBPcGVuQVBJIE9iamVjdAogIC0gW3hdIEluZm8gT2JqZWN0CiAgLSBbeF0gQ29udGFjdCBPYmplY3QKICAtIFt4XSBMaWNlbnNlIE9iamVjdAogIC0gW3hdIFNlcnZlciBPYmplY3QKICAtIFt4XSBTZXJ2ZXIgVmFyaWFibGUgT2JqZWN0CiAgLSBbeF0gQ29tcG9uZW50cyBPYmplY3QKICAtIFt4XSBQYXRocyBPYmplY3QKICAtIFt4XSBQYXRoIEl0ZW0gT2JqZWN0CiAgLSBbeF0gT3BlcmF0aW9uIE9iamVjdAogIC0gW3hdIEV4dGVybmFsIERvY3VtZW50YXRpb24gT2JqZWN0CiAgLSBbeF0gUGFyYW1ldGVyIE9iamVjdAogIC0gW3hdIFJlcXVlc3QgQm9keSBPYmplY3QKICAtIFt4XSBNZWRpYSBUeXBlIE9iamVjdAogIC0gW3hdIEVuY29kaW5nIE9iamVjdAogIC0gW3hdIFJlc3BvbnNlcyBPYmplY3QKICAtIFt4XSBSZXNwb25zZSBPYmplY3QKICAtIFt4XSBDYWxsYmFjayBPYmplY3QKICAtIFt4XSBFeGFtcGxlIE9iamVjdAogIC0gW3hdIExpbmsgT2JqZWN0CiAgICAtIFsgXSBbUnVudGltZSBFeHByZXNzaW9uc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi8zLjAuMi92ZXJzaW9ucy8zLjAuMi5tZCNydW50aW1lLWV4cHJlc3Npb25zKQogIC0gW3hdIEhlYWRlciBPYmplY3QKICAtIFt4XSBUYWcgT2JqZWN0CiAgLSBbeF0gUmVmZXJlbmNlIE9iamVjdAogIC0gW3hdIFNjaGVtYSBPYmplY3QKICAgIC0gW3hdIGxvYWQvcmVhZAogICAgLSBbIF0gdmFsaWRhdGlvbgogIC0gW3hdIERpc2NyaW1pbmF0b3IgT2JqZWN0CiAgLSBbeF0gWE1MIE9iamVjdAogIC0gW3hdIFNlY3VyaXR5IFNjaGVtZSBPYmplY3QKICAtIFt4XSBPQXV0aCBGbG93cyBPYmplY3QKICAtIFt4XSBPQXV0aCBGbG93IE9iamVjdAogIC0gW3hdIFNlY3VyaXR5IFJlcXVpcmVtZW50IE9iamVjdAoKIyBEZXZlbG9wbWVudAoKWW91IG1heSB1c2UgdGhlIGRvY2tlciBlbnZpcm9ubWVudCBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQ6CgogICAgZG9ja2VyLWNvbXBvc2UgYnVpbGQKICAgIG1ha2UgSU5fRE9DS0VSPTEgaW5zdGFsbAogICAgbWFrZSBJTl9ET0NLRVI9MSB0ZXN0CiAgICAuLi4KCgojIFN1cHBvcnQKCioqTmVlZCBoZWxwIHdpdGggeW91ciBBUEkgcHJvamVjdD8qKgoKUHJvZmVzc2lvbmFsIHN1cHBvcnQsIGNvbnN1bHRpbmcgYXMgd2VsbCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCBzZXJ2aWNlcyBhcmUgYXZhaWxhYmxlOgoKaHR0cHM6Ly93d3cuY2ViZS5jYy9lbi9jb250YWN0CgpEZXZlbG9wbWVudCBvZiB0aGlzIGxpYnJhcnkgaXMgc3BvbnNvcmVkIGJ5IFtjZWJlLjpjbG91ZDogIllvdXIgUHJvZmVzc2lvbmFsIERlcGxveW1lbnQgUGxhdGZvcm0iXShodHRwczovL2NlYmUuY2xvdWQpLgo= readmeEtag: '"3d25df05ca9398f1cfa622e3a578ee767198a448"' readmeLastModified: Wed, 20 Apr 2022 14:46:44 GMT repositoryId: 154310978 description: >- Read and write OpenAPI yaml/json files and make the content accessible in PHP objects. created: '2018-10-23T10:46:11Z' updated: '2024-08-15T17:32:23Z' language: PHP archived: false stars: 466 watchers: 22 forks: 88 owner: cebe logo: https://avatars.githubusercontent.com/u/189796?v=4 license: MIT repoEtag: '"fcbc5de5e982cf70b9ff2837abb03e68c2f882ac1adce68bec759ed206db9d19"' repoLastModified: Thu, 15 Aug 2024 17:32:23 GMT foundInMaster: true v3_1_link: https://github.com/cebe/php-openapi/pull/128 id: 3a26d5049f03c42cb9771c179db0f35f - source: https://openapi.tools/ name: Object Oriented OpenAPI Specification homepage: https://github.com/goldspecdigital/oooas language: PHP source_description: >- An object oriented approach to generating OpenAPI Descriptions, implemented in PHP category: Parsers repository: https://github.com/goldspecdigital/oooas v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ29sZHNwZWNkaWdpdGFsL29vb2FzIj48aW1nIAogICAgICAgIGFsdD0iT2JqZWN0IE9yaWVudGVkIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiIKICAgICAgICBzcmM9Imh0dHBzOi8vc3Znc2hhcmUuY29tL2kvRDcwLnN2ZyIgd2lkdGg9IjQwMHB4IgogICAgPjwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ29sZHNwZWNkaWdpdGFsL29vb2FzIj48aW1nIAogICAgICAgIGFsdD0iR2l0SHViIHN0YXJzIiAKICAgICAgICBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL2dvbGRzcGVjZGlnaXRhbC9vb29hcy5zdmc/c3R5bGU9c29jaWFsIgogICAgPjwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ29sZHNwZWNkaWdpdGFsL29vb2FzL3RhZ3MiPjxpbWcgCiAgICAgICAgYWx0PSJHaXRIdWIgdGFnIChsYXRlc3QgU2VtVmVyKSIgCiAgICAgICAgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi90YWcvZ29sZHNwZWNkaWdpdGFsL29vb2FzLnN2ZyIKICAgID48L2E+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ29sZHNwZWNkaWdpdGFsL29vb2FzL2FjdGlvbnMiPjxpbWcgCiAgICAgICAgYWx0PSJCdWlsZCBzdGF0dXMiCiAgICAgICAgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vZ29sZHNwZWNkaWdpdGFsL29vb2FzL3dvcmtmbG93cy9UZXN0cy9iYWRnZS5zdmciIAogICAgPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9nb2xkc3BlY2RpZ2l0YWwvb29vYXMiPjxpbWcgCiAgICAgICAgYWx0PSJQYWNrYWdpc3QiIAogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9wYWNrYWdpc3QvZHQvZ29sZHNwZWNkaWdpdGFsL29vb2FzLnN2ZyIKICAgID48L2E+CiAgICA8aW1nIAogICAgICAgIGFsdD0iUEhQIGZyb20gUGFja2FnaXN0IiAKICAgICAgICBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3BocC12L2dvbGRzcGVjZGlnaXRhbC9vb29hcy5zdmciCiAgICA+CiAgICA8aW1nIAogICAgICAgIGFsdD0iRGVwZW5kZW5jeSBjb3VudCIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGVwZW5kZW5jaWVzLTAtYnJpZ2h0Z3JlZW4uc3ZnIiAKICAgID4KICAgIDxpbWcgCiAgICAgICAgYWx0PSJQYWNrYWdpc3QiIAogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9wYWNrYWdpc3QvbC9nb2xkc3BlY2RpZ2l0YWwvb29vYXMuc3ZnIgogICAgPgo8L3A+CgojIyBJbnRyb2R1Y3Rpb24KCkFuIG9iamVjdCBvcmllbnRlZCBhcHByb2FjaCB0byBnZW5lcmF0aW5nIE9wZW5BUEkgc3BlY3MsIGltcGxlbWVudGVkIGluIFBIUC4gCgpZb3UgY2FuIGJ1aWxkIHVwIHlvdXIgQVBJIHNwZWMgdXNpbmcgaW1tdXRhYmxlIFBIUCBjbGFzc2VzLCBhbmQgdGhlbiBleHBvcnQgdGhlIApzcGVjIHRvIEpTT04gKG9yIFlBTUwgd2l0aCB0aGUgaGVscCBvZiBhbm90aGVyIHBhY2thZ2UpLgoKVGhpcyBwYWNrYWdlIGlzICoqZGVwZW5kZW5jeSBmcmVlKiogYW5kIG1ha2VzIGhlYXZ5IHVzZSBvZiAqKlBIUCA3IGZlYXR1cmVzKiosIAptYWlubHkgYmVpbmcgKip0eXBlIGhpbnRzKiogYW5kIGVuYWJsaW5nICoqc3RyaWN0IHR5cGVzKiouIFRoaXMgc2hvdWxkIG1ha2UgeW91ciAKbGlmZSBhIGxvdCBlYXNpZXIgd2hlbiB3b3JraW5nIHdpdGggYSBnb29kIElERSB0aGF0IGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbi4KCiMjIEluc3RhbGxpbmcKCllvdSBjYW4gaW5zdGFsbCB0aGUgcGFja2FnZSB2aWEgY29tcG9zZXI6CmBgYGJhc2gKY29tcG9zZXIgcmVxdWlyZSBnb2xkc3BlY2RpZ2l0YWwvb29vYXMKYGBgCgojIyBFeGFtcGxlCgpTZWUgdGhlIGNvZGUgc2FtcGxlIGJlbG93IGZvciB0aGUgbW9zdCBiYXNpYyB1c2FnZToKCmBgYHBocAp1c2UgR29sZFNwZWNEaWdpdGFsXE9iamVjdE9yaWVudGVkT0FTXE9iamVjdHNcewogICAgSW5mbywgTWVkaWFUeXBlLCBPcGVyYXRpb24sIFBhdGhJdGVtLCBSZXNwb25zZSwgU2NoZW1hLCBUYWcKfTsKdXNlIEdvbGRTcGVjRGlnaXRhbFxPYmplY3RPcmllbnRlZE9BU1xPcGVuQXBpOwoKLy8gQ3JlYXRlIGEgdGFnIGZvciBhbGwgdGhlIHVzZXIgZW5kcG9pbnRzLgokdXNlcnNUYWcgPSBUYWc6OmNyZWF0ZSgpCiAgICAtPm5hbWUoJ1VzZXJzJykKICAgIC0+ZGVzY3JpcHRpb24oJ0FsbCB1c2VyIHJlbGF0ZWQgZW5kcG9pbnRzJyk7CgovLyBDcmVhdGUgdGhlIGluZm8gc2VjdGlvbi4KJGluZm8gPSBJbmZvOjpjcmVhdGUoKQogICAgLT50aXRsZSgnQVBJIFNwZWNpZmljYXRpb24nKQogICAgLT52ZXJzaW9uKCd2MScpCiAgICAtPmRlc2NyaXB0aW9uKCdGb3IgdXNpbmcgdGhlIEV4YW1wbGUgQXBwIEFQSScpOwogICAgCi8vIENyZWF0ZSB0aGUgdXNlciBzY2hlbWEuCiR1c2VyU2NoZW1hID0gU2NoZW1hOjpvYmplY3QoKQogICAgLT5wcm9wZXJ0aWVzKAogICAgICAgIFNjaGVtYTo6c3RyaW5nKCdpZCcpLT5mb3JtYXQoU2NoZW1hOjpGT1JNQVRfVVVJRCksCiAgICAgICAgU2NoZW1hOjpzdHJpbmcoJ25hbWUnKSwKICAgICAgICBTY2hlbWE6OmludGVnZXIoJ2FnZScpLT5leGFtcGxlKDIzKSwKICAgICAgICBTY2hlbWE6OnN0cmluZygnY3JlYXRlZF9hdCcpLT5mb3JtYXQoU2NoZW1hOjpGT1JNQVRfREFURV9USU1FKQogICAgKTsKICAgIAovLyBDcmVhdGUgdGhlIHVzZXIgcmVzcG9uc2UuCiR1c2VyUmVzcG9uc2UgPSBSZXNwb25zZTo6Y3JlYXRlKCkKICAgIC0+c3RhdHVzQ29kZSgyMDApCiAgICAtPmRlc2NyaXB0aW9uKCdPSycpCiAgICAtPmNvbnRlbnQoCiAgICAgICAgTWVkaWFUeXBlOjpqc29uKCktPnNjaGVtYSgkdXNlclNjaGVtYSkKICAgICk7CiAgICAKLy8gQ3JlYXRlIHRoZSBvcGVyYXRpb24gZm9yIHRoZSByb3V0ZSAoaS5lLiBHRVQsIFBPU1QsIGV0Yy4pLgokc2hvd1VzZXIgPSBPcGVyYXRpb246OmdldCgpCiAgICAtPnJlc3BvbnNlcygkdXNlclJlc3BvbnNlKQogICAgLT50YWdzKCR1c2Vyc1RhZykKICAgIC0+c3VtbWFyeSgnR2V0IGFuIGluZGl2aWR1YWwgdXNlcicpCiAgICAtPm9wZXJhdGlvbklkKCd1c2Vycy5zaG93Jyk7CiAgICAKLy8gRGVmaW5lIHRoZSAvdXNlcnMgcGF0aCBhbG9uZyB3aXRoIHRoZSBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4KJHVzZXJzUGF0aCA9IFBhdGhJdGVtOjpjcmVhdGUoKQogICAgLT5yb3V0ZSgnL3VzZXJzJykKICAgIC0+b3BlcmF0aW9ucygkc2hvd1VzZXIpOwogICAgCi8vIENyZWF0ZSB0aGUgbWFpbiBPcGVuQVBJIG9iamVjdCBjb21wb3NlZCBvZmYgZXZlcnl0aGluZyBjcmVhdGVkIGFib3ZlLgokb3BlbkFwaSA9IE9wZW5BcGk6OmNyZWF0ZSgpCiAgICAtPm9wZW5hcGkoT3BlbkFwaTo6T1BFTkFQSV8zXzBfMikKICAgIC0+aW5mbygkaW5mbykKICAgIC0+cGF0aHMoJHVzZXJzUGF0aCkKICAgIC0+dGFncygkdXNlcnNUYWcpOwogICAgCmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CmVjaG8gJG9wZW5BcGktPnRvSnNvbigpOwpgYGAKCiMjIyBZQU1MIG91dHB1dAoKVXNpbmcgdGhlIHNhbWUgY29kZSBhYm92ZSB3aWxsIG91dHB1dCB0aGUgZm9sbG93aW5nIFlBTUw6Cgo+IEluIHRoaXMgZXhhbXBsZSwgdGhlIFlBTUwgbWF5IHNlZW0gc2ltcGxlciB0byBsb29rIGF0LCBob3dldmVyIG9uY2UgdGhlIHNwZWMKc3RhcnRzIHRvIGluY3JlYXNlIGluIHNpemUgLSB0aGUgYWJpbGl0eSB0byByZXVzZSBvYmplY3RzIGFuZCBzcGxpdCB0aGVtIGludG8Kc2VwYXJhdGUgZmlsZXMgZWFzaWx5IHdpbGwgYmUgYSBtYXNzaXZlIGhlbHAuCgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4yCmluZm86CiAgdGl0bGU6IEFQSSBTcGVjaWZpY2F0aW9uCiAgZGVzY3JpcHRpb246IEZvciB1c2luZyB0aGUgRXhhbXBsZSBBcHAgQVBJCiAgdmVyc2lvbjogdjEKcGF0aHM6CiAgIi91c2VycyI6CiAgICBnZXQ6CiAgICAgIHRhZ3M6CiAgICAgIC0gVXNlcnMKICAgICAgc3VtbWFyeTogR2V0IGFuIGluZGl2aWR1YWwgdXNlcgogICAgICBvcGVyYXRpb25JZDogdXNlcnMuc2hvdwogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICBpZDoKICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IHV1aWQKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgbmFtZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgYWdlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiAyMwogICAgICAgICAgICAgICAgICBjcmVhdGVkX2F0OgogICAgICAgICAgICAgICAgICAgIGZvcm1hdDogZGF0ZS10aW1lCiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCnRhZ3M6Ci0gbmFtZTogVXNlcnMKICBkZXNjcmlwdGlvbjogQWxsIHVzZXIgcmVsYXRlZCBlbmRwb2ludHMKYGBgCgojIyMgT3V0cHV0dGluZyBhcyBKU09OIG9yIFlBTUwKCkJ1aWx0IGluIG91dHB1dCB0byBZQU1MIGhhcyBiZWVuIG9taXR0ZWQgb24gcHVycG9zZSB0byBrZWVwIHRoaXMgcGFja2FnZQpkZXBlbmRlbmN5IGZyZWUuIEhvd2V2ZXIsIHlvdSBjYW4gZWFzaWx5IGNvbnZlcnQgdGhlIGFycmF5IHRvIGEgWUFNTCBzdHJpbmcgCnVzaW5nIHNldmVyYWwgb3BlbiBzb3VyY2UgcGFja2FnZXMuIFNlZSBiZWxvdyBmb3IgYW4gZXhhbXBsZSBvZiAgb3V0cHV0dGluZyB0byAKYm90aCBKU09OIGFuZCBZQU1MOgoKYGBgcGhwCnVzZSBHb2xkU3BlY0RpZ2l0YWxcT2JqZWN0T3JpZW50ZWRPQVNcT3BlbkFwaTsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFlhbWxcWWFtbDsKCiRvcGVuQXBpID0gT3BlbkFwaTo6Y3JlYXRlKCk7CgokanNvbiA9ICRvcGVuQXBpLT50b0pzb24oKTsKJGFycmF5ID0gJG9wZW5BcGktPnRvQXJyYXkoKTsKJHlhbWwgPSBZYW1sOjpkdW1wKCRhcnJheSk7CmBgYAoKIyMgR3VpZGFuY2UKCklmIHlvdSB3YW50IHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIE9wZW5BUEkgc2NoZW1hLCB0aGVuIGhhdmUgYSBsb29rIGF0IHRoZSAKb2ZmaWNpYWwgW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjIubWQpLgoKQWx0ZXJuYXRpdmVseSwgaWYgeW91IHdvdWxkIGxpa2UgYSBxdWljayByZWZlcmVuY2UsIHRoZW4gY2hlY2sgb3V0IHRoZSAKW09wZW5BUEkgTWFwXShodHRwczovL29wZW5hcGktbWFwLmFwaWhhbmR5bWFuLmlvLz92ZXJzaW9uPTMuMCkgcHJvamVjdCBjcmVhdGVkIApieSBbQXJuYXVkIExhdXJldF0oaHR0cDovL2FwaWhhbmR5bWFuLmlvLykuCgpZb3UgY2FuIHVzZSB0aGlzIGludGVyYWN0aXZlIHRvb2wgdG8gZmlndXJlIG91dCB3aGF0IG9iamVjdHMgZ28gd2hlcmUgYW5kIGhvdwp0aGV5IHJlbGF0ZSB0byBvbmUgYW5vdGhlci4KCiMjIFVzYWdlCgojIyMgU2V0dGluZyBhbmQgdW5zZXR0aW5nIHByb3BlcnRpZXMKCkVhY2ggb2JqZWN0IGhhcyBzZXR0ZXIgbWV0aG9kcyBmb3IgaXQncyBzdXBwb3J0ZWQgcHJvcGVydGllcy4gTW9zdCBvZiB0aGVzZSAKbWV0aG9kcyBhbGxvdyBgbnVsbGAgdmFsdWVzIHdoaWNoIHdpbGwgbmVlZCB0byBiZSBleHBsaWNpdGx5IHBhc3NlZCAoc2VlIHRoZSAKbmV4dCBleGFtcGxlIGZvciBob3cgdG8gdW5zZXQgdXNpbmcgdmFyaWFkaWMgc2V0dGVyIG1ldGhvZHMpLiBUaGlzIHdpbGwgaGF2ZSB0aGUgCmVmZmVjdCBvZiB1bnNldHRpbmcgdGhlIHByb3BlcnR5OgoKYGBgcGhwCiRpbmZvID0gSW5mbzo6Y3JlYXRlKCkKICAgIC0+dGl0bGUoJ0V4YW1wbGUgQVBJJyk7Cgokb3BlbkFwaSA9IE9wZW5BcGk6OmNyZWF0ZSgpCiAgICAtPmluZm8oJGluZm8pOwplY2hvICRvcGVuQXBpLT50b0pzb24oKTsgLy8gJ3siaW5mbyI6IHsidGl0bGUiOiAiRXhhbXBsZSBBUEkifX0nCgokb3BlbkFwaSA9ICRvcGVuQXBpLT5pbmZvKG51bGwpOwplY2hvICRvcGVuQXBpLT50b0pzb24oKTsgLy8gJ3t9JwpgYGAKCkZvciB2YXJpYWRpYyBzZXR0ZXIgbWV0aG9kcywgaWYgeW91IGNhbGwgdGhlIG1ldGhvZCBhbmQgZG9uJ3Qgc3VwcGx5IGFueQpwYXJhbWV0ZXJzLCB0aGVuIHRoaXMgd2lsbCBoYXZlIHRoZSBlZmZlY3Qgb2YgdW5zZXR0aW5nIHRoZSBwcm9wZXJ0eToKCmBgYHBocAokcGF0aCA9IFBhdGhJdGVtOjpjcmVhdGUoKQogICAgLT5yb3V0ZSgnL3VzZXJzJyk7Cgokb3BlbkFwaSA9IE9wZW5BcGk6OmNyZWF0ZSgpCiAgICAtPnBhdGhzKCRwYXRoKTsKZWNobyAkb3BlbkFwaS0+dG9Kc29uKCk7IC8vICd7InBhdGhzIjogeyIvdXNlcnMiOiBbXX19JwoKJG9wZW5BcGkgPSAkb3BlbkFwaS0+cGF0aHMoKTsKZWNobyAkb3BlbkFwaS0+dG9Kc29uKCk7IC8vICd7fScKYGBgCgojIyMgUmV0cmlldmluZyBwcm9wZXJ0aWVzCgpZb3UgY2FuIGVhc2lseSByZXRyaWV2ZSBhIHByb3BlcnR5IHVzaW5nIGEgbWFnaWMgZ2V0dGVyLiBUaGVzZSBoYXZlIGJlZW4KaW1wbGVtZW50ZWQgZm9yIGFsbCBwcm9wZXJ0aWVzIGZvciBldmVyeSBvYmplY3QuIERvY0Jsb2NrcyBoYXZlIGJlZW4gcHJvdmlkZWQKdG8gZ2l2ZSBiZXR0ZXIgYXV0by1jb21wbGV0aW9uIGluIElERXM6CgpgYGBwaHAKJGluZm8gPSBJbmZvOjpjcmVhdGUoKS0+dGl0bGUoJ0V4YW1wbGUgQVBJJyk7CgplY2hvICRpbmZvLT50aXRsZTsgLy8gJ0V4YW1wbGUgQVBJJwpgYGAKCiMjIyBPYmplY3QgSUQKCkV2ZXJ5IG9iamVjdCBoYXMgYW4gb3B0aW9uYWwgYCRvYmplY3RJZGAgcHJvcGVydHkgd2hpY2ggaXMgYSBgc3RyaW5nYCBhbmQgY2FuIAplaXRoZXIgYmUgc2V0IGluIHRoZSBjbGFzcyBjb25zdHJ1Y3RvciBvciB0aGUgcHJlZmVycmVkIGBjcmVhdGUoKWAgbWV0aG9kLiBUaGlzIApwcm9wZXJ0eSBpcyB1c2VkIHdoZW4gYSBwYXJlbnQgb2JqZWN0IG5lZWRzIHRvIHVzZSBhIG5hbWUgZm9yIHRoZSBjaGlsZHJlbi4KCkFuIGV4YW1wbGUgb2YgdGhpcyBpbiB1c2UgaXMgd2hlbiBhIHNjaGVtYSBvYmplY3QgaXMgY29tcG9zZWQgb2Ygb3RoZXIgc2NoZW1hCnByb3BlcnRpZXM6CgpgYGBwaHAKJHNjaGVtYSA9IFNjaGVtYTo6Y3JlYXRlKCkKICAgIC0+dHlwZShTY2hlbWE6OlRZUEVfT0JKRUNUKQogICAgLT5wcm9wZXJ0aWVzKAogICAgICAgIFNjaGVtYTo6Y3JlYXRlKCd1c2VybmFtZScpLT50eXBlKFNjaGVtYTo6VFlQRV9TVFJJTkcpLAogICAgICAgIFNjaGVtYTo6Y3JlYXRlKCdhZ2UnKS0+dHlwZShTY2hlbWE6OlRZUEVfSU5URUdFUikKICAgICk7CiAgICAKZWNobyAkc2NoZW1hLT50b0pzb24oKTsKLyogCnsKICAidHlwZSI6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIjogewogICAgInVzZXJuYW1lIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9LAogICAgImFnZSI6IHsKICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgIH0KICB9Cn0gCiovCmBgYCAKCklmIGFuIG9iamVjdCBjb250YWlucyBhbnkgaGVscGVyIGNyZWF0aW9uIG1ldGhvZHMsIHRoZW4gdGhlc2UgbWV0aG9kcyBhbHNvIGFsbG93CnlvdSB0byBzcGVjaWZ5IHRoZSBgJG9iamVjdElkYCBwcm9wZXJ0eSBhcyBhIHBhcmFtZXRlci4gVGhlIGNvZGUgc2FtcGxlIGJlbG93IGlzCmZ1bmN0aW9uYWxseSBpZGVudGljYWwgdG8gdGhlIG9uZSBhYm92ZToKCmBgYHBocAokc2NoZW1hID0gU2NoZW1hOjpvYmplY3QoKQogICAgLT5wcm9wZXJ0aWVzKAogICAgICAgIFNjaGVtYTo6c3RyaW5nKCd1c2VybmFtZScpLAogICAgICAgIFNjaGVtYTo6aW50ZWdlcignYWdlJykKICAgICk7CiAgICAKZWNobyAkc2NoZW1hLT50b0pzb24oKTsKLyogCnsKICAidHlwZSI6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIjogewogICAgInVzZXJuYW1lIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9LAogICAgImFnZSI6IHsKICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgIH0KICB9Cn0gCiovCmBgYCAKCiMjIyAkcmVmCgpUaGUgdXNlIG9mIGAkcmVmYCBoYXMgYmVlbiBhcHBsaWVkIHRvIGV2ZXJ5IHNpbmdsZSBvYmplY3QgdG8gdXNlIGFzIHlvdSB3aXNoLgpZb3UgbWF5IHN1YnN0aXR1dGUgYW55IG9iamVjdCBmb3IgYSBgJHJlZmAgYnkgaW52b2tpbmcgdGhlIGByZWYoKWAgc3RhdGljIG1ldGhvZCAKb24gdGhlIG9iamVjdCBjbGFzczogCgpgYGBwaHAKJHNjaGVtYSA9IEFsbE9mOjpjcmVhdGUoKQogICAgLT5zY2hlbWFzKAogICAgICAgIFNjaGVtYTo6cmVmKCcjL2NvbXBvbmVudHMvc2NoZW1hcy9FeGFtcGxlU2NoZW1hJykKICAgICk7CiAgICAKZWNobyAkc2NoZW1hLT50b0pzb24oKTsKLyoKewogICJhbGxPZiI6IFsKICAgIFsiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9FeGFtcGxlU2NoZW1hIl0KICBdCn0KKi8KYGBgCgojIyMgU3BlY2lmaWNhdGlvbiBleHRlbnNpb25zCgpZb3UgY2FuIGFkZCBbc3BlY2lmaWNhdGlvbiBleHRlbnNpb25zXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCNzcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucykKdG8gYWxsIG9iamVjdHM6CgpgYGBwaHAKJHNjaGVtYSA9IFNjaGVtYTo6Y3JlYXRlKCkKICAgIC0+eCgnZm9vJywgJ2JhcicpCiAgICAtPngoJ2l0ZW1zJywgU2NoZW1hOjphcnJheSgpLT5pdGVtcyhTY2hlbWE6OnN0cmluZygpKSk7CiAgICAKZWNobyAkc2NoZW1hLT50b0pzb24oKTsKLyoKewogICJ4LWZvbyI6ICJiYXIiLAogICJ4LWl0ZW1zIjogewogICAgInR5cGUiOiAiYXJyYXkiLAogICAgIml0ZW1zIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9CiAgfQp9CiovCgplY2hvICRzY2hlbWEtPnsneC1mb28nfTsgLy8gJ2JhcicKYGBgCgpZb3UgY2FuIGFsc28gdW5zZXQgc3BlY2lmaWNhdGlvbiBleHRlbnNpb25zIGJ5IGludm9raW5nIHRoZSBgeCgpYCBtZXRob2QgYW5kCm9ubHkgcHJvdmlkaW5nIHRoZSBrZXk6CgpgYGBwaHAKJHNjaGVtYSA9IFNjaGVtYTo6Y3JlYXRlKCkKICAgIC0+eCgnZm9vJywgJ2JhcicpCiAgICAtPngoJ2l0ZW1zJywgU2NoZW1hOjphcnJheSgpLT5pdGVtcyhTY2hlbWE6OnN0cmluZygpKSk7Cgokc2NoZW1hID0gJHNjaGVtYS0+eCgnZm9vJyk7CiAgICAKZWNobyAkc2NoZW1hLT50b0pzb24oKTsKLyoKewogICJ4LWl0ZW1zIjogewogICAgInR5cGUiOiAiYXJyYXkiLAogICAgIml0ZW1zIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9CiAgfQp9CiovCmBgYAoKVG8gcmV0cmlldmUgYW4gYXJyYXkgb2YgYWxsIHRoZSBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbnMgeW91IGNhbiBjYWxsIHRoZSBgJHhgCnByb3BlcnR5OgoKYGBgcGhwCiRzY2hlbWEgPSBTY2hlbWE6OmNyZWF0ZSgpCiAgICAtPngoJ2ZvbycsICdiYXInKQogICAgLT54KCdpdGVtcycsIFNjaGVtYTo6YXJyYXkoKS0+aXRlbXMoU2NoZW1hOjpzdHJpbmcoKSkpOwoKZWNobyBqc29uX2VuY29kZSgkc2NoZW1hLT54KTsKLyoKewogICJ4LWZvbyI6ICJiYXIiLAogICJ4LWl0ZW1zIjogewogICAgInR5cGUiOiAiYXJyYXkiLAogICAgIml0ZW1zIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9CiAgfQp9CiovCmBgYAoKIyMjIFZhbGlkYXRpb24KCkluIG9yZGVyIHRvIHBlcmZvcm0gc2NoZW1hIHZhbGlkYXRpb24geW91IG11c3QgZmlyc3QgaW5zdGFsbCB0aGUKYGp1c3RpbnJhaW5ib3cvanNvbi1zY2hlbWFgIHBhY2thZ2U6CgpgYGBiYXNoCmNvbXBvc2VyIHJlcXVpcmUganVzdGlucmFpbmJvdy9qc29uLXNjaGVtYTpeNS4yCmBgYAoKT25jZSBpbnN0YWxsZWQsIHlvdSBtYXkgbm93IG1ha2UgdXNlIG9mIHRoZSBgdmFsaWRhdGUoKWAgbWV0aG9kIG9uIHRoZSBgT3BlbkFwaWAKb2JqZWN0OgoKYGBgcGhwCiRvcGVuQXBpID0gT3BlbkFwaTo6Y3JlYXRlKCk7CiRvcGVuQXBpLT52YWxpZGF0ZSgpOwpgYGAKCl9JZiB5b3UgaGF2ZW4ndCBpbnN0YWxsZWQgdGhlIGBqdXN0aW5yYWluYm93L2pzb24tc2NoZW1hYCBwYWNrYWdlIGFuZCBhdHRlbXB0IHRvIAp1c2UgdGhlIGB2YWxpZGF0ZSgpYCBtZXRob2QsIHRoZW4gYSBgUnVudGltZUV4Y2VwdGlvbmAgd2lsbCBiZSB0aHJvd24uXwoKSWYgdmFsaWRhdGlvbiBmYWlscyBmb3IgdGhlIHNjaGVtYSwgdGhlbiBhIApgR29sZFNwZWNEaWdpdGFsXE9iamVjdE9yaWVudGVkT0FTXEV4Y2VwdGlvbnNcVmFsaWRhdGlvbkV4Y2VwdGlvbmAgd2lsbCBiZSAKdGhyb3duLiBZb3UgY2FuIHVzZSB0aGUgYGdldEVycm9ycygpYCBtZXRob2Qgb24gdGhpcyBleGNlcHRpb24gdG8gcmV0cmlldmUgYWxsCm9mIHRoZSB2YWxpZGF0aW9uIGVycm9ycy4KCiMjIFJ1bm5pbmcgdGhlIHRlc3RzCgpUbyBydW4gdGhlIHRlc3Qgc3VpdGUgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kczoKCmBgYGJhc2gKIyBUbyBydW4gYm90aCBzdHlsZSBhbmQgdW5pdCB0ZXN0cy4KY29tcG9zZXIgdGVzdAoKIyBUbyBydW4gb25seSBzdHlsZSB0ZXN0cy4KY29tcG9zZXIgdGVzdDpzdHlsZQoKIyBUbyBydW4gb25seSB1bml0IHRlc3RzLgpjb21wb3NlciB0ZXN0OnVuaXQKYGBgCgpJZiB5b3UgcmVjZWl2ZSBhbnkgZXJyb3JzIGZyb20gdGhlIHN0eWxlIHRlc3RzLCB5b3UgY2FuIGF1dG9tYXRpY2FsbHkgZml4IG1vc3QsCmlmIG5vdCBhbGwgb2YgdGhlIGlzc3VlcyB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKY29tcG9zZXIgZml4OnN0eWxlCmBgYAoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2UgcmVhZCBbQ09OVFJJQlVUSU5HLm1kXShDT05UUklCVVRJTkcubWQpIGZvciBkZXRhaWxzIG9uIG91ciBjb2RlIG9mIApjb25kdWN0LCBhbmQgdGhlIHByb2Nlc3MgZm9yIHN1Ym1pdHRpbmcgcHVsbCByZXF1ZXN0cyB0byB1cy4KCiMjIFZlcnNpb25pbmcKCldlIHVzZSBbU2VtVmVyXShodHRwOi8vc2VtdmVyLm9yZy8pIGZvciB2ZXJzaW9uaW5nLiBGb3IgdGhlIHZlcnNpb25zIGF2YWlsYWJsZSwgCnNlZSB0aGUgW3RhZ3Mgb24gdGhpcyByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vZ29sZHNwZWNkaWdpdGFsL29vb2FzL3RhZ3MpLiAKCiMjIEF1dGhvcnMKCiogW0dvbGRTcGVjIERpZ2l0YWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb2xkc3BlY2RpZ2l0YWwpCgpTZWUgYWxzbyB0aGUgbGlzdCBvZiBbY29udHJpYnV0b3JzXShodHRwczovL2dpdGh1Yi5jb20vZ29sZHNwZWNkaWdpdGFsL29vb2FzL2NvbnRyaWJ1dG9ycykgCndobyBwYXJ0aWNpcGF0ZWQgaW4gdGhpcyBwcm9qZWN0LgoKIyMgTGljZW5zZQoKVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAtIHNlZSB0aGUgW0xJQ0VOU0UubWRdKExJQ0VOU0UubWQpIApmaWxlIGZvciBkZXRhaWxzLgo= readmeEtag: '"b4d5d56bfb406f0b47465e5ba6a2ab4341aad3e9"' readmeLastModified: Wed, 20 Jul 2022 09:57:04 GMT repositoryId: 150484399 description: >- An object oriented approach to generating OpenAPI specs, implemented in PHP. created: '2018-09-26T20:11:56Z' updated: '2024-08-11T14:35:49Z' language: PHP archived: false stars: 224 watchers: 8 forks: 21 owner: goldspecdigital logo: https://avatars.githubusercontent.com/u/31162012?v=4 license: MIT repoEtag: '"07bf8f7f35dff35d43e81966be2621318af6a8ff3253623f5e202cc2e1f48991"' repoLastModified: Sun, 11 Aug 2024 14:35:49 GMT foundInMaster: true id: b572581c8e045165d5121ee9c5bc361e - source: https://openapi.tools/ name: OpenAPI3-Rust category: Parsers repository: https://github.com/adwhit/openapi3-rust language: Rust source_description: Rust serialization library for OpenAPI v3 v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJdjMKClNwZWM6IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvT3BlbkFQSS5uZXh0L3ZlcnNpb25zLzMuMC5tZAo= readmeEtag: '"ce669f4ef3578a7762c5d175c06a9368bee7d84c"' readmeLastModified: Sun, 09 Dec 2018 15:37:14 GMT repositoryId: 97812110 description: Rust serialization library for OpenAPIv3 created: '2017-07-20T08:43:25Z' updated: '2024-04-22T10:18:12Z' language: Rust archived: true stars: 13 watchers: 2 forks: 4 owner: adwhit logo: https://avatars.githubusercontent.com/u/3189554?v=4 license: MIT repoEtag: '"f828f16848b109ebb87da174e47bb87b28e07f99b21042c27a8166c4095d052e"' repoLastModified: Mon, 22 Apr 2024 10:18:12 GMT foundInMaster: true id: 000be8d50bcd3022727597e652c33e7f - source: https://openapi.tools/ name: psx-api category: Parsers link: https://phpsx.org repository: https://github.com/apioo/psx-api language: PHP source_description: Parse and generate API specification formats v2: true v3: true repositoryMetadata: base64Readme: >- CiMgQVBJCgpUaGUgQVBJIGNvbXBvbmVudCBpcyB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBbVHlwZUFQSV0oaHR0cHM6Ly90eXBlYXBpLm9yZy8pIHNwZWNpZmljYXRpb24uCkl0IHByb3ZpZGVzIG1vZGVscyB0byBkZXNjcmliZSBhbiBSRVNUIEFQSSBhbmQgZ2VuZXJhdGUgYmFzZWQgb24gdGhvc2UgbW9kZWxzIGRpZmZlcmVudCBvdXRwdXRzLiBZb3UgY2FuIGNyZWF0ZSB0aG9zZQptb2RlbHMgZWl0aGVyIGJ5IHBhcnNpbmcgYSBUeXBlQVBJIG9yIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBvciBieSB1c2luZyBQSFAgQXR0cmlidXRlcy4gQmFzZWQgb24gdGhvc2UgbW9kZWxzIGl0IGlzIHRoZW4KcG9zc2libGUgdG8gZ2VuZXJhdGUgaS5lLiBjbGllbnQgU0RLcy4KCiMjIFVzYWdlCgpUaGUgcm9vdCBtb2RlbCBvYmplY3QgaXMgY2FsbGVkIGEgYFNwZWNpZmljYXRpb25gIHdoaWNoIGNvbnRhaW5zIGBPcGVyYXRpb25zYCBhbmQgYERlZmluaXRpb25zYC4gRWFjaCBvcGVyYXRpb24KbWFwcyB0byBhIHNwZWNpZmljIFJFU1QgQVBJIGVuZHBvaW50IGFuZCB0aGUgZGVmaW5pdGlvbnMgcmVwcmVzZW50IHRoZSBzY2hlbWFzIHRvIGRlc2NyaWJlIHRoZSBKU09OIHJlcXVlc3Qgb3IgcmVzcG9uc2UKcGF5bG9hZC4KCiMjIyBGcmFtZXdvcmsKCllvdSBjYW4gdXNlIFBIUCBhdHRyaWJ1dGVzIHRvIGRlc2NyaWJlIHRoZSBzdHJ1Y3R1cmUgb2YgeW91ciBlbmRwb2ludHMuIFlvdSBjYW4gdGhlbiB1c2UgdGhlIGF0dHJpYnV0ZSBwYXJzZXIgKGBQU1hcQXBpXFBhcnNlclxBdHRyaWJ1dGVgKQp0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgc3BlY2lmaWNhdGlvbiBmb3IgeW91ciBjb250cm9sbGVyLiBBIGNvbnRyb2xsZXIgY2xhc3MgY291bGQgdGhlbiBsb29rIGxpa2U6CgpgYGBwaHAKPD9waHAKCmNsYXNzIE15Q29udHJvbGxlcgp7CiAgICAjW0dldF0KICAgICNbUGF0aCgnL215L2VuZHBvaW50LzppZCcpXQogICAgcHVibGljIGZ1bmN0aW9uIGdldE1vZGVsKCNbUGFyYW1dIGludCAkaWQsICNbUXVlcnldIGludCAkeWVhcik6IFxNeVxSZXNwb25zZVxNb2RlbAogICAgewogICAgICAgIC8vIEBUT0RPIGltcGxlbWVudAogICAgfQogICAgCiAgICAjW1Bvc3RdCiAgICAjW1BhdGgoJy9teS9lbmRwb2ludCcpXQogICAgcHVibGljIGZ1bmN0aW9uIGluc2VydE1vZGVsKCNbQm9keV0gXE15XFJlcXVlc3RcTW9kZWwgJG1vZGVsKTogXE15XFJlc3BvbnNlXE1vZGVsCiAgICB7CiAgICAgICAgLy8gQFRPRE8gaW1wbGVtZW50CiAgICB9Cn0KCmBgYAoKVGhpcyB3b3VsZCBiZSB0aGVuIGVub3VnaCBmb3IgdGhlIEFQSSBjb21wb25lbnQgdG8gZ2VuZXJhdGUgZWl0aGVyIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBvciBhIGNsaWVudCBTREsuCk5vdGUgdGhpcyBsaWJyYXJ5IG9ubHkgbmVlZHMgdGhlIG1ldGEgaW5mb3JtYXRpb24sIGlmIHlvdSBjYW4gZ2V0IHRob3NlIG1ldGEgaW5mb3JtYXRpb24gYXQgeW91ciBmcmFtZXdvcmsgaW4gYW5vdGhlcgp3YXkgeW91IGNhbiBhbHNvIGltcGxlbWVudCBhIGN1c3RvbSBgUGFyc2VySW50ZXJmYWNlYC4KCiMjIyBTdGFuZGFsb25lCgpCZXNpZGUgdGhlIGZyYW1ld29yayBpbnRlZ3JhdGlvbiB5b3UgY2FuIHVzZSB0aGlzIGNvbXBvbmVudCBhbHNvIHRvIHNpbXBseSBwYXJzZSBleGlzdGluZyBUeXBlQVBJIHNwZWNpZmljYXRpb24gYW5kCmdlbmVyYXRlIHNwZWNpZmljIG91dHB1dC4gVGhlIGZvbGxvd2luZyBpcyBhIHNpbXBsZSBleGFtcGxlIGhvdyB0byB1c2UgdGhlIFBIUCBBUEkgYW5kIGhvdyB0byBnZW5lcmF0ZSBjb2RlLgoKYGBgcGhwCjw/cGhwCgovLyB1c2UgdGhlIEFQSSBtYW5hZ2VyIHRvIG9idGFpbiBhIHNwZWNpZmljYXRpb24gZnJvbSBkaWZmZXJlbnQgc291cmNlcwokbWFuYWdlciA9IG5ldyBcUFNYXEFwaVxBcGlNYW5hZ2VyKG5ldyBcUFNYXFNjaGVtYVxTY2hlbWFNYW5hZ2VyKCkpOwoKLy8gcmVhZHMgdGhlIFR5cGVBUEkgc3BlY2lmaWNhdGlvbiBhbmQgZ2VuZXJhdGVzIGEgc3BlY2lmaWNhdGlvbgokc3BlY2lmaWNhdGlvbiA9ICRtYW5hZ2VyLT5nZXRBcGkoJy4vdHlwZWFwaS5qc29uJyk7CgovLyBjb250YWlucyBhbGwgc2NoZW1hIHR5cGUgZGVmaW5pdGlvbnMKJGRlZmluaXRpb25zID0gJHNwZWNpZmljYXRpb24tPmdldERlZmluaXRpb25zKCk7CgovLyByZXR1cm5zIHRoZSByZXNvdXJjZSBmb28gZnJvbSB0aGUgc3BlY2lmaWNhdGlvbgokb3BlcmF0aW9uID0gJHNwZWNpZmljYXRpb24tPmdldE9wZXJhdGlvbnMoKS0+Z2V0KCdteS5vcGVyYXRpb24nKTsKCi8vIHJldHVybnMgYWxsIGF2YWlsYWJsZSBhcmd1bWVudHMKJG9wZXJhdGlvbi0+Z2V0QXJndW1lbnRzKCk7CgovLyByZXR1cm5zIHRoZSByZXR1cm4gdHlwZQokb3BlcmF0aW9uLT5nZXRSZXR1cm4oKTsKCi8vIHJldHVybnMgYWxsIGV4Y2VwdGlvbnMgd2hpY2ggYXJlIGRlc2NyaWJlZAokb3BlcmF0aW9uLT5nZXRUaHJvd3MoKTsKCi8vIHJldHVybnMgdGhlIGFzc2lnbmVkIEhUVFAgbWV0aG9kCiRvcGVyYXRpb24tPmdldE1ldGhvZCgpOwoKLy8gcmV0dXJucyB0aGUgYXNzaWduZWQgSFRUUCBwYXRoCiRvcGVyYXRpb24tPmdldFBhdGgoKTsKCi8vIGNyZWF0ZXMgYSBQSFAgY2xpZW50IHdoaWNoIGNvbnN1bWVzIHRoZSBkZWZpbmVkIG9wZXJhdGlvbnMKJHJlZ2lzdHJ5ID0gXFBTWFxBcGlcR2VuZXJhdG9yRmFjdG9yeTo6ZnJvbUxvY2FsKCktPmZhY3RvcnkoKTsKJGdlbmVyYXRvciA9ICRyZWdpc3RyeS0+Z2V0R2VuZXJhdG9yKFxQU1hcQXBpXFJlcG9zaXRvcnlcTG9jYWxSZXBvc2l0b3J5OjpDTElFTlRfUEhQKQoKJHNvdXJjZSA9ICRnZW5lcmF0b3ItPmdlbmVyYXRlKCRyZXNvdXJjZSk7CgpgYGAKCiMjIEdlbmVyYXRvcgoKIyMjIENsaWVudAoKLSBQSFAKLSBUeXBlc2NyaXB0CgojIyMgTWFya3VwCgotIENsaWVudAotIEhUTUwKLSBNYXJrZG93bgoKIyMjIFNwZWMKCi0gW09wZW5BUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKQotIFtUeXBlQVBJXShodHRwczovL3R5cGVhcGkub3JnLykK readmeEtag: '"b2824140b37957c3f5d888e0cff37aa7f4d1885f"' readmeLastModified: Tue, 20 Aug 2024 21:12:15 GMT repositoryId: 55149439 description: Parse and generate API specification formats created: '2016-03-31T12:39:05Z' updated: '2024-09-05T18:27:17Z' language: PHP archived: false stars: 35 watchers: 3 forks: 9 owner: apioo logo: https://avatars.githubusercontent.com/u/18172950?v=4 license: Apache-2.0 repoEtag: '"77d6c07188cc9aa1542b3a7d9a66a0aa9bce967847517c79f9e8d16b94d11484"' repoLastModified: Thu, 05 Sep 2024 18:27:17 GMT foundInMaster: true id: ee32e280cf10ca5103c9b9e144021b91 - source: https://openapi.tools/ name: Microsoft/OpenAPI.NET category: Parsers repository: https://github.com/microsoft/openapi.net language: .NET source_description: >- C# based parser with OpenAPI Description validation and migration support from V2 v2: true v3: true repositoryMetadata: base64Readme: >- IVtDYXRlZ29yeSBvdmVydmlldyBzY3JlZW5zaG90XShkb2NzL2ltYWdlcy9vYWluZXQucG5nICJNaWNyb3NvZnQgKyBPcGVuQVBJID0gTG92ZSIpDQoNCiMgT3BlbkFQSS5ORVQgDQoNCnxQYWNrYWdlfE51Z2V0fA0KfC0tfC0tfA0KfE1vZGVscyBhbmQgV3JpdGVyc3xbIVtudWdldF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC92L01pY3Jvc29mdC5PcGVuQXBpLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS8pIHwNCnxSZWFkZXJzIHwgWyFbbnVnZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9NaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzLykgfA0KfEhpZGl8WyFbbnVnZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9NaWNyb3NvZnQuT3BlbkFwaS5IaWRpLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS5IaWRpLykNCg0KDQpUaGUgKipPcGVuQVBJLk5FVCoqIFNESyBjb250YWlucyBhIHVzZWZ1bCBvYmplY3QgbW9kZWwgZm9yIE9wZW5BUEkgZG9jdW1lbnRzIGluIC5ORVQgYWxvbmcgd2l0aCBjb21tb24gc2VyaWFsaXplcnMgdG8gZXh0cmFjdCByYXcgT3BlbkFQSSBKU09OIGFuZCBZQU1MIGRvY3VtZW50cyBmcm9tIHRoZSBtb2RlbC4NCg0KKipTZWUgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGFuZCBpdHMgaGlzdG9yeSBoZXJlOiA8YSBocmVmPSJodHRwczovL3d3dy5vcGVuYXBpcy5vcmciPk9wZW5BUEkgSW5pdGlhdGl2ZTwvYT4qKg0KDQpQcm9qZWN0IE9iamVjdGl2ZXMgDQoNCi0gUHJvdmlkZSBhIHNpbmdsZSBzaGFyZWQgb2JqZWN0IG1vZGVsIGluIC5ORVQgZm9yIE9wZW5BUEkgZGVzY3JpcHRpb25zLg0KLSBJbmNsdWRlIHRoZSBtb3N0IHByaW1pdGl2ZSBSZWFkZXIgZm9yIGluZ2VzdGluZyBPcGVuQVBJIEpTT04gYW5kIFlBTUwgZG9jdW1lbnRzIGluIGJvdGggVjIgYW5kIFYzIGZvcm1hdHMuDQotIFByb3ZpZGUgT3BlbkFQSSBkZXNjcmlwdGlvbiB3cml0ZXJzIGZvciBib3RoIFYyIGFuZCBWMyBzcGVjaWZpY2F0aW9uIGZvcm1hdHMuDQotIEVuYWJsZSBkZXZlbG9wZXJzIHRvIGNyZWF0ZSBSZWFkZXJzIHRoYXQgdHJhbnNsYXRlIGRpZmZlcmVudCBkYXRhIGZvcm1hdHMgaW50byBPcGVuQVBJIGRlc2NyaXB0aW9ucy4gDQoNCiMgSW5zdGFsbGF0aW9uDQoNCi0gSW5zdGFsbCBjb3JlIE51Z2V0IHBhY2thZ2UgWyoqTWljcm9zb2Z0Lk9wZW5BcGkqKl0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5PcGVuQXBpKQ0KLSBJbnN0YWxsIHJlYWRlcnMgTnVnZXQgcGFja2FnZSBbKipNaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzKipdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzKQ0KDQojIFByb2Nlc3NvcnMNClRoZSBPcGVuQVBJLk5FVCBwcm9qZWN0IGhvbGRzIHRoZSBiYXNlIG9iamVjdCBtb2RlbCBmb3IgcmVwcmVzZW50aW5nIE9wZW5BUEkgZG9jdW1lbnRzIGFzIC5ORVQgb2JqZWN0cy4gU29tZSBkZXZlbG9wZXJzIGhhdmUgZm91bmQgdGhlIG5lZWQgdG8gd3JpdGUgcHJvY2Vzc29ycyB0aGF0IGNvbnZlcnQgb3RoZXIgZGF0YSBmb3JtYXRzIGludG8gdGhpcyBPcGVuQVBJLk5FVCBvYmplY3QgbW9kZWwuIFdlJ2QgbGlrZSB0byBjdXJhdGUgdGhhdCBsaXN0IG9mIHByb2Nlc3NvcnMgaW4gdGhpcyBzZWN0aW9uIG9mIHRoZSByZWFkbWUuIA0KDQpUaGUgYmFzZSBKU09OIGFuZCBZQU1MIHByb2Nlc3NvcnMgYXJlIGJ1aWx0IGludG8gdGhpcyBwcm9qZWN0LiBCZWxvdyBpcyB0aGUgbGlzdCBvZiB0aGUgb3RoZXIgc3VwcG9ydGVkIHByb2Nlc3NvciBwcm9qZWN0cy4NCg0KLSBbKipDIyBDb21tZW50IC8gQW5ub3RhdGlvbiBQcm9jZXNzb3IqKl0oaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9PcGVuQVBJLk5FVC5DU2hhcnBBbm5vdGF0aW9ucykgOiBDb252ZXJ0cyBzdGFuZGFyZCAuTkVUIGFubm90YXRpb25zICggLy8vIGNvbW1lbnRzICkgZW1pdHRlZCBmcm9tIHlvdXIgYnVpbGQgKE1TQnVpbGQuZXhlKSBpbnRvIE9wZW5BUEkuTkVUIGRvY3VtZW50IG9iamVjdC4gDQoNCi0gWyoqT0RhdGEgQ1NETCBQcm9jZXNzb3IqKl0oaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9PcGVuQVBJLk5FVC5PRGF0YSkgOiBDb252ZXJ0cyB0aGUgWE1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBFbnRpdHkgRGF0YSBNb2RlbCAoRURNKSBkZXNjcmliaW5nIGFuIE9EYXRhIFNlcnZpY2UgaW50byBPcGVuQVBJLk5FVCBkb2N1bWVudCBvYmplY3QuIA0KDQojIEV4YW1wbGUgVXNhZ2UNCg0KQ3JlYXRpbmcgYW4gT3BlbkFQSSBEb2N1bWVudA0KDQpgYGBDIw0KdmFyIGRvY3VtZW50ID0gbmV3IE9wZW5BcGlEb2N1bWVudA0Kew0KICAgIEluZm8gPSBuZXcgT3BlbkFwaUluZm8NCiAgICB7DQogICAgICAgIFZlcnNpb24gPSAiMS4wLjAiLA0KICAgICAgICBUaXRsZSA9ICJTd2FnZ2VyIFBldHN0b3JlIChTaW1wbGUpIiwNCiAgICB9LA0KICAgIFNlcnZlcnMgPSBuZXcgTGlzdDxPcGVuQXBpU2VydmVyPg0KICAgIHsNCiAgICAgICAgbmV3IE9wZW5BcGlTZXJ2ZXIgeyBVcmwgPSAiaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vYXBpIiB9DQogICAgfSwNCiAgICBQYXRocyA9IG5ldyBPcGVuQXBpUGF0aHMNCiAgICB7DQogICAgICAgIFsiL3BldHMiXSA9IG5ldyBPcGVuQXBpUGF0aEl0ZW0NCiAgICAgICAgew0KICAgICAgICAgICAgT3BlcmF0aW9ucyA9IG5ldyBEaWN0aW9uYXJ5PE9wZXJhdGlvblR5cGUsIE9wZW5BcGlPcGVyYXRpb24+DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgW09wZXJhdGlvblR5cGUuR2V0XSA9IG5ldyBPcGVuQXBpT3BlcmF0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9ICJSZXR1cm5zIGFsbCBwZXRzIGZyb20gdGhlIHN5c3RlbSB0aGF0IHRoZSB1c2VyIGhhcyBhY2Nlc3MgdG8iLA0KICAgICAgICAgICAgICAgICAgICBSZXNwb25zZXMgPSBuZXcgT3BlbkFwaVJlc3BvbnNlcw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBbIjIwMCJdID0gbmV3IE9wZW5BcGlSZXNwb25zZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0gIk9LIg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfTsNCmBgYA0KDQpSZWFkaW5nIGFuZCB3cml0aW5nIGFuIE9wZW5BUEkgZGVzY3JpcHRpb24NCg0KYGBgQyMNCnZhciBodHRwQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQNCnsNCiAgICBCYXNlQWRkcmVzcyA9IG5ldyBVcmkoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uLyIpDQp9Ow0KDQp2YXIgc3RyZWFtID0gYXdhaXQgaHR0cENsaWVudC5HZXRTdHJlYW1Bc3luYygibWFzdGVyL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbCIpOw0KDQovLyBSZWFkIFYzIGFzIFlBTUwNCnZhciBvcGVuQXBpRG9jdW1lbnQgPSBuZXcgT3BlbkFwaVN0cmVhbVJlYWRlcigpLlJlYWQoc3RyZWFtLCBvdXQgdmFyIGRpYWdub3N0aWMpOw0KDQovLyBXcml0ZSBWMiBhcyBKU09ODQp2YXIgb3V0cHV0U3RyaW5nID0gb3BlbkFwaURvY3VtZW50LlNlcmlhbGl6ZShPcGVuQXBpU3BlY1ZlcnNpb24uT3BlbkFwaTJfMCwgT3BlbkFwaUZvcm1hdC5Kc29uKTsNCg0KYGBgDQoNCiMgVmFsaWRhdGluZy9UZXN0aW5nIE9wZW5BUEkgZGVzY3JpcHRpb25zDQpJbiBvcmRlciB0byB0ZXN0IHRoZSB2YWxpZGl0eSBvZiBhbiBPcGVuQXBpIGRvY3VtZW50LCB3ZSBhdmFpbCB0aGUgZm9sbG93aW5nIHRvb2xzOg0KLSBbTWljcm9zb2Z0Lk9wZW5BcGkuSGlkaV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5PcGVuQXBpLkhpZGkpDQoNCiAgICBBIGNvbW1hbmRsaW5lIHRvb2wgZm9yIHZhbGlkYXRpbmcgYW5kIHRyYW5zZm9ybWluZyBPcGVuQVBJIGRlc2NyaXB0aW9ucy4gW0luc3RhbGxhdGlvbiBndWlkZWxpbmVzIGFuZCBkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L09wZW5BUEkuTkVUL2Jsb2Ivdm5leHQvc3JjL01pY3Jvc29mdC5PcGVuQXBpLkhpZGkvcmVhZG1lLm1kKQ0KDQotIE1pY3Jvc29mdC5PcGVuQXBpLldvcmtiZW5jaA0KDQogICAgQSB3b3JrYmVuY2ggdG9vbCBjb25zaXN0aW5nIG9mIGEgR1VJIHdoZXJlIHlvdSBjYW4gdGVzdCBhbmQgY29udmVydCBPcGVuQVBJIGRlc2NyaXB0aW9ucyBpbiBib3RoIEpTT04gYW5kIFlBTUwgZnJvbSB2Mi0tPnYzIGFuZCB2aWNlIHZlcnNhLg0KDQogICAgIyMjIyBJbnN0YWxsYXRpb24gZ3VpZGVsaW5lczoNCiAgICAxLiBDbG9uZSB0aGUgcmVwbyBsb2NhbGx5IGJ5IHJ1bm5pbmcgdGhpcyBjb21tYW5kOg0KICAgICAgICBgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvT3BlbkFQSS5ORVQuZ2l0YA0KICAgIDIuIE9wZW4gdGhlIHNvbHV0aW9uIGZpbGUgYCguc2xuKWAgaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3Qgd2l0aCBWaXN1YWwgU3R1ZGlvDQogICAgMy4gTmF2aWdhdGUgdG8gdGhlIGBzcmMvTWljcm9zb2Z0Lk9wZW5BcGkuV29ya2JlbmNoYCBkaXJlY3RvcnkgYW5kIHNldCBpdCBhcyB0aGUgc3RhcnR1cCBwcm9qZWN0DQogICAgNC4gUnVuIHRoZSBwcm9qZWN0IGFuZCB5b3UnbGwgc2VlIGEgR1VJIHBvcCB1cCByZXNlbWJsaW5nIHRoZSBvbmUgYmVsb3c6DQogICAgDQogICAgDQogICAgPGltZyBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM2Nzg3NjQ1LzIzNTg4NDQ0MS1mNDVkMmVmNy1jMjdiLTRlMWEtYTg5MC1kNmY3ZmJlZjg3YzMucG5nIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCI+DQogICAgDQogICAgNS4gQ29weSBhbmQgcGFzdGUgeW91ciBPcGVuQVBJIGRlc2NyaXB0aW9ucyBpbiB0aGUgKipJbnB1dCBDb250ZW50Kiogd2luZG93IG9yIHBhc3RlIHRoZSBwYXRoIHRvIHRoZSBkZXNjcmlwdGlvbnMgZmlsZSBpbiB0aGUgKipJbnB1dCBGaWxlKiogdGV4dGJveCBhbmQgY2xpY2sgb24gYENvbnZlcnRgIHRvIHJlbmRlciB0aGUgcmVzdWx0cy4NCg0KIyBDb250cmlidXRpbmcNCg0KVGhpcyBwcm9qZWN0IHdlbGNvbWVzIGNvbnRyaWJ1dGlvbnMgYW5kIHN1Z2dlc3Rpb25zLiAgTW9zdCBjb250cmlidXRpb25zIHJlcXVpcmUgeW91IHRvIGFncmVlIHRvIGENCkNvbnRyaWJ1dG9yIExpY2Vuc2UgQWdyZWVtZW50IChDTEEpIGRlY2xhcmluZyB0aGF0IHlvdSBoYXZlIHRoZSByaWdodCB0bywgYW5kIGFjdHVhbGx5IGRvLCBncmFudCB1cw0KdGhlIHJpZ2h0cyB0byB1c2UgeW91ciBjb250cmlidXRpb24uIEZvciBkZXRhaWxzLCB2aXNpdCBodHRwczovL2NsYS5taWNyb3NvZnQuY29tLg0KDQpXaGVuIHlvdSBzdWJtaXQgYSBwdWxsIHJlcXVlc3QsIGEgQ0xBLWJvdCB3aWxsIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHdoZXRoZXIgeW91IG5lZWQgdG8gcHJvdmlkZQ0KYSBDTEEgYW5kIGRlY29yYXRlIHRoZSBQUiBhcHByb3ByaWF0ZWx5IChlLmcuLCBsYWJlbCwgY29tbWVudCkuIFNpbXBseSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucw0KcHJvdmlkZWQgYnkgdGhlIGJvdC4gWW91IHdpbGwgb25seSBuZWVkIHRvIGRvIHRoaXMgb25jZSBhY3Jvc3MgYWxsIHJlcG9zIHVzaW5nIG91ciBDTEEuDQoNClRoaXMgcHJvamVjdCBoYXMgYWRvcHRlZCB0aGUgW01pY3Jvc29mdCBPcGVuIFNvdXJjZSBDb2RlIG9mIENvbmR1Y3RdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvKS4NCkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgW0NvZGUgb2YgQ29uZHVjdCBGQVFdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvZmFxLykgb3INCmNvbnRhY3QgW29wZW5jb2RlQG1pY3Jvc29mdC5jb21dKG1haWx0bzpvcGVuY29kZUBtaWNyb3NvZnQuY29tKSB3aXRoIGFueSBhZGRpdGlvbmFsIHF1ZXN0aW9ucyBvciBjb21tZW50cy4NCg0KVG8gcHJvdmlkZSBmZWVkYmFjayBhbmQgYXNrIHF1ZXN0aW9ucyB5b3UgY2FuIHVzZSBTdGFjayBPdmVyZmxvdyB3aXRoIHRoZSBbT3BlbkFQSS5ORVRdKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zL3RhZ2dlZC9vcGVuYXBpLm5ldCkgdGFnLg0K readmeEtag: '"c804787c1a0abcbcadc19d4c697c76a95fad82d3"' readmeLastModified: Tue, 13 Aug 2024 22:18:42 GMT repositoryId: 97175798 description: >- The OpenAPI.NET SDK contains a useful object model for OpenAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model. created: '2017-07-14T00:24:14Z' updated: '2024-09-05T21:59:27Z' language: C# archived: false stars: 1379 watchers: 64 forks: 231 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT repoEtag: '"d29905670462ecce4115ed53be829bd75cc14b8c5c0a5485b979e31b07b508de"' repoLastModified: Thu, 05 Sep 2024 21:59:27 GMT foundInMaster: true id: 1066748bb5b1f114a70856a29fee4aa7 - source: - https://openapi.tools/ - openapi3 tags name: oas_parser homepage: https://github.com/Nexmo/oas_parser language: Ruby source_description: A Ruby parser for OpenAPI 3.0+ descriptions. category: Parsers repository: https://github.com/nexmo/oas_parser v2: false v3: true repositoryMetadata: base64Readme: >- IyDimqDvuI8gVGhpcyByZXBvc2l0b3J5IGlzIG5vIGxvbmdlciBtYWludGFpbmVkLgoKLS0tCgojIE9wZW4gQVBJIERlZmluaXRpb24gUGFyc2VyCgo8aW1nIHNyYz0iaHR0cHM6Ly9kZXZlbG9wZXIubmV4bW8uY29tL2Fzc2V0cy9pbWFnZXMvVm9uYWdlX05leG1vLnN2ZyIgaGVpZ2h0PSI0OHB4IiBhbHQ9Ik5leG1vIGlzIG5vdyBrbm93biBhcyBWb25hZ2UiIC8+CgpBIFJ1YnkgcGFyc2VyIGZvciBPcGVuIEFQSSBTcGVjIDMuMCsgZGVmaW5pdGlvbnMuCgojIyMgSW5zdGFsbAoKSW5zdGFsbCB0aGUgZ2VtOgoKYGBgCiQgZ2VtIGluc3RhbGwgb2FzX3BhcnNlcgpgYGAKCk9yIGFkZCBpdCB0byB5b3VyIEdlbWZpbGU6CgpgYGBydWJ5CmdlbSAnb2FzX3BhcnNlcicKYGBgCgojIyMgVXNhZ2UKCkhlcmUgaXMgYSBiYXNpYyBleGFtcGxlIG9mIGhvdyB5b3UgY2FuIHRyYXZlcnNlIHRocm91Z2ggYW4gT3BlbiBBUEkgU3BlYyAzIERlZmluaXRpb246CgpgYGBydWJ5CnJlcXVpcmUgJ29hc19wYXJzZXInCgpkZWZpbml0aW9uID0gT2FzUGFyc2VyOjpEZWZpbml0aW9uLnJlc29sdmUoJ3BldHN0b3JlLnltbCcpCiMgPT4gIzxPYXNQYXJzZXI6OkRlZmluaXRpb24+CgojIEdldCBhIHNwZWNpZmljIHBhdGgKcGF0aCA9IGRlZmluaXRpb24ucGF0aF9ieV9wYXRoKCcvcGV0cycpCiMgPT4gIzxPYXNQYXJzZXI6OlBhdGg+CgojIEdldCBhbGwgcGF0aHMuCmRlZmluaXRpb24ucGF0aHMKIyA9PiBbIzxPYXNQYXJzZXI6OlBhdGg+LCAuLi5dCgojIEdldCBhIHNwZWNpZmljIGVuZHBvaW50IGJ5IG1ldGhvZAplbmRwb2ludCA9IHBhdGguZW5kcG9pbnRfYnlfbWV0aG9kKCdnZXQnKQojID0+ICM8T2FzUGFyc2VyOjpFbmRwb2ludD4KCiMgR2V0IGFsbCBlbmRwb2ludHMKcGF0aC5lbmRwb2ludHMKIyA9PiBbIzxPYXNQYXJzZXI6OkVuZHBvaW50PiwgLi4uXQoKIyBHZXQgZW5kcG9pbnQgZGVzY3JpcHRpb24KZW5kcG9pbnQuZGVzY3JpcHRpb24KIyA9PiAiUmV0dXJucyBhbGwgcGV0cyBmcm9tIHRoZSBzeXN0ZW0gdGhhdCB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIgpgYGAKCkNoZWNrb3V0IHRoZSB0ZXN0cyBhbmQgYGxpYmAgZGlyZWN0b3J5IGZvciBtb3JlIGNsYXNzZXMgYW5kIG1ldGhvZHMuCgojIyMgRGV2ZWxvcG1lbnQKClJ1biB0ZXN0czoKCmBgYAokIHJzcGVjCmBgYAoKIyMjIFB1Ymxpc2hpbmcKCkNsb25lIHRoZSByZXBvIGFuZCBuYXZpZ2F0ZSB0byBpdHMgZGlyZWN0b3J5OgoKYGBgCiQgY2Qgb2FzLXBhcnNlcgpgYGAKCkJ1bXAgdGhlIGxhdGVzdCB2ZXJzaW9uIGluIGBvYXNfcGFyc2VyL2xpYi9vYXNfcGFyc2VyL3ZlcnNpb24ucmJgOgoKYGBgCi8vb2xkCm1vZHVsZSBPYXNQYXJzZXIKICBWRVJTSU9OID0gJzEuMC4wJy5mcmVlemUKZW5kCgovL25ldwptb2R1bGUgT2FzUGFyc2VyCiAgVkVSU0lPTiA9ICcxLjEuMCcuZnJlZXplCmVuZApgYGAKCkJ1aWxkIHRoZSBnZW06CgpgYGAKJCBnZW0gYnVpbGQgb2FzX3BhcnNlci5nZW1zcGVjCmBgYAoKX1RoaXMgd2lsbCBjcmVhdGUgYSBgb2FzX3BhcnNlci0xLjEuMC5nZW1gIGZpbGUuXwoKUHVzaCB0aGUgZ2VtIHRvIHJ1YnlnZW1zLm9yZzoKCmBgYAokIGdlbSBwdXNoIG9hc19wYXJzZXItMS4xLjAuZ2VtCmBgYAoKVmVyaWZ5IHRoZSBjaGFuZ2Ugd2FzIG1hZGUgYnkgY2hlY2tpbmcgZm9yIHRoZSBbbmV3IHZlcnNpb24gb24gcnVieWdlbXMub3JnXShodHRwczovL3J1YnlnZW1zLm9yZy9nZW1zL29hc19wYXJzZXIpCgoKCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSwgcGxlYXNlIGZvbGxvdyBbR2l0SHViIEZsb3ddKGh0dHBzOi8vZ3VpZGVzLmdpdGh1Yi5jb20vaW50cm9kdWN0aW9uL2Zsb3cvaW5kZXguaHRtbCkK readmeEtag: '"c585d4ba158489b3abc75240e2a9651e74086477"' readmeLastModified: Thu, 06 Jul 2023 13:35:37 GMT repositoryId: 114796887 description: An open source Open API Spec 3 Definition Parser created: '2017-12-19T18:12:33Z' updated: '2023-07-06T13:35:44Z' language: Ruby archived: false stars: 51 watchers: 18 forks: 16 owner: Nexmo logo: https://avatars.githubusercontent.com/u/551057?v=4 license: MIT repoEtag: '"c45367e3e95b626ea0461db31d415c9fe08650b959dff32fc55fbe7c10524540"' repoLastModified: Thu, 06 Jul 2023 13:35:44 GMT foundInMaster: true id: f2aacc6ec161af737088d825023eb174 - source: https://openapi.tools/ name: openapi3 category: Parsers repository: https://github.com/dorthu/openapi3 language: Python source_description: >- An OpenAPI 3 Specification client, and validator, covering both description validation and limited data validation for Python 3. v2: false v3: true repositoryMetadata: base64Readme: >- b3BlbmFwaTMKPT09PT09PT0KCkEgUHl0aG9uIGBPcGVuQVBJIDMgU3BlY2lmaWNhdGlvbmBfIGNsaWVudCBhbmQgdmFsaWRhdG9yIGZvciBQeXRob24gMy4KCi4uIGltYWdlOjogaHR0cHM6Ly9naXRodWIuY29tL0RvcnRodS9vcGVuYXBpMy9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbC9iYWRnZS5zdmcKICAgOmFsdDogR2l0SHViIEFjdGlvbnMgQnVpbGQgQmFkZ2UKCi4uIGltYWdlOjogaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL3B5L29wZW5hcGkzLnN2ZwogICA6dGFyZ2V0OiBodHRwczovL2JhZGdlLmZ1cnkuaW8vcHkvb3BlbmFwaTMKCgpWYWxpZGF0aW9uIE1vZGUKLS0tLS0tLS0tLS0tLS0tCgpUaGlzIG1vZHVsZSBjYW4gYmUgcnVuIGFnYWluc3QgYSBzcGVjIGZpbGUgdG8gdmFsaWRhdGUgaXQgbGlrZSBzbzo6CgogICBweXRob24zIC1tIG9wZW5hcGkzIC9wYXRoL3RvL3NwZWMKClVzYWdlIGFzIGEgQ2xpZW50Ci0tLS0tLS0tLS0tLS0tLS0tCgpUaGlzIGxpYnJhcnkgYWxzbyBmdW5jdGlvbnMgYXMgYW4gaW50ZXJhY3RpdmUgY2xpZW50IGZvciBhcmJpdHJhcnkgT3BlbkFQSSAzCnNwZWNzLiBGb3IgZXhhbXBsZSwgdXNpbmcgYExpbm9kZSdzIE9wZW5BUEkgMyBTcGVjaWZpY2F0aW9uYF8gZm9yIHJlZmVyZW5jZTo6CgogICBmcm9tIG9wZW5hcGkzIGltcG9ydCBPcGVuQVBJCiAgIGltcG9ydCB5YW1sCgogICAjIGxvYWQgdGhlIHNwZWMgZmlsZSBhbmQgcmVhZCB0aGUgeWFtbAogICB3aXRoIG9wZW4oJ29wZW5hcGkueWFtbCcpIGFzIGY6CiAgICAgICBzcGVjID0geWFtbC5zYWZlX2xvYWQoZi5yZWFkKCkpCgogICAjIHBhcnNlIHRoZSBzcGVjIGludG8gcHl0aG9uIC0gdGhpcyB3aWxsIHJhaXNlIGlmIHRoZSBzcGVjIGlzIGludmFsaWQKICAgYXBpID0gT3BlbkFQSShzcGVjKQoKICAgIyBjYWxsIG9wZXJhdGlvbnMgYW5kIHJlY2VpdmUgcmVzdWx0IG1vZGVscwogICByZWdpb25zID0gYXBpLmNhbGxfZ2V0UmVnaW9ucygpCgogICAjIGF1dGhlbnRpY2F0ZSB1c2luZyBhIHNlY3VyaXR5U2NoZW1lIGRlZmluZWQgaW4gdGhlIHNwZWMncyBjb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcwogICBhcGkuYXV0aGVudGljYXRlKCdwZXJzb25hbEFjY2Vzc1Rva2VuJywgbXlfdG9rZW4pCgogICAjIGNhbGwgYW4gb3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMgYXV0aGVudGljYXRpb24KICAgbGlub2RlcyAgPSBhcGkuY2FsbF9nZXRMaW5vZGVJbnN0YW5jZXMoKQoKICAgIyBjYWxsIGFuIG9wZXJhdGlvbiB3aXRoIHBhcmFtZXRlcnMKICAgbGlub2RlID0gYXBpLmNhbGxfZ2V0TGlub2RlSW5zdGFuY2UocGFyYW1ldGVycz17Imxpbm9kZUlkIjogMTIzfSkKCiAgICMgdGhlIG1vZGVscyByZXR1cm5zIGFyZSBhbGwgb2YgdGhlIHNhbWUgKGdlbmVyYXRlZCkgdHlwZQogICBwcmludCh0eXBlKGxpbm9kZSkpICAgICAgICAgICAgICAgICAgICAgICMgb3BlbmFwaS5zY2hlbWFzLkxpbm9kZQogICB0eXBlKGxpbm9kZSkgPT0gdHlwZShsaW5vZGVzLmRhdGFbMF0pICAgICMgVHJ1ZQoKICAgIyBjYWxsIGFuIG9wZXJhdGlvbiB3aXRoIGEgcmVxdWVzdCBib2R5CiAgIG5ld19saW5vZGUgPSBhcGkuY2FsbF9jcmVhdGVMaW5vZGVJbnN0YW5jZShkYXRhPXsicmVnaW9uIjoidXMtZWFzdCIsInR5cGUiOiJnNi1zdGFuZGFyZC0yIn0pCgogICAjIHRoZSByZXR1cm5lZCBtb2RlbHMgaXMgc3RpbGwgb2YgdGhlIGNvcnJlY3QgdHlwZQogICB0eXBlKG5ld19saW5vZGUpID09IHR5cGUobGlub2RlKSAgICAgIyBUcnVlCgpIVFRQIGJhc2ljIGF1dGhlbnRpY2F0aW9uIGFuZCBIVFRQIGRpZ2VzdCBhdXRoZW50aWNhdGlvbiB3b3JrcyBsaWtlIHRoaXM6OgoKICAgIyBhdXRoZW50aWNhdGUgdXNpbmcgYSBzZWN1cml0eVNjaGVtZSBkZWZpbmVkIGluIHRoZSBzcGVjJ3MgY29tcG9uZW50cy5zZWN1cml0eVNjaGVtZXMKICAgIyBUdXBsZSB3aXRoICh1c2VybmFtZSwgcGFzc3dvcmQpIGFzIHNlY29uZCBhcmd1bWVudAogICBhcGkuYXV0aGVudGljYXRlKCdiYXNpY0F1dGgnLCAoJ3VzZXJuYW1lJywgJ3Bhc3N3b3JkJykpCgpSdW5uaW5nIFRlc3RzCi0tLS0tLS0tLS0tLS0KClRoaXMgcHJvamVjdCBpbmNsdWRlcyBhIHRlc3Qgc3VpdGUsIHJ1biB2aWEgYGBweXRlc3RgYC4gIFRvIHJ1biB0aGUgdGVzdCBzdWl0ZSwKZW5zdXJlIHRoYXQgeW91J3ZlIGluc3RhbGxlZCB0aGUgZGVwZW5kZW5jaWVzIGFuZCB0aGVuIHJ1biBgYHB5dGVzdGBgIGluIHRoZSByb290Cm9mIHRoaXMgcHJvamVjdC4KClJvYWRtYXAKLS0tLS0tLQoKVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgcGxhbm5lZCBmb3IgdGhlIGZ1dHVyZToKCiogUmVxdWVzdCBib2R5IG1vZGVscywgY3JlYXRpb24sIGFuZCB2YWxpZGF0aW9uLgoqIFBhcmFtZXRlcnMgaW50ZXJmYWNlIHdpdGggdmFsaWRhdGlvbiBhbmQgZXhwbGljaXQgdHlwaW5nLgoqIFN1cHBvcnQgZm9yIG1vcmUgYXV0aGVudGljYXRpb24gdHlwZXMuCiogU3VwcG9ydCBmb3Igbm9uLWpzb24gcmVxdWVzdC9yZXNwb25zZSBjb250ZW50LgoqIEZ1bGwgc3VwcG9ydCBmb3IgYWxsIG9iamVjdHMgZGVmaW5lZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4KCi4uIF9PcGVuQVBJIDMgU3BlY2lmaWNhdGlvbjogaHR0cHM6Ly9vcGVuYXBpcy5vcmcKLi4gX0xpbm9kZSdzIE9wZW5BUEkgMyBTcGVjaWZpY2F0aW9uOiBodHRwczovL2RldmVsb3BlcnMubGlub2RlLmNvbS9hcGkvdjQKCg== readmeEtag: '"53e8b32a8eaf9d75e4b358be541b0006e16edabc"' readmeLastModified: Tue, 29 Aug 2023 17:12:35 GMT repositoryId: 132167773 description: A Python3 OpenAPI 3 Spec Parser created: '2018-05-04T17:08:13Z' updated: '2024-06-04T07:25:47Z' language: Python archived: false stars: 116 watchers: 4 forks: 48 owner: Dorthu logo: https://avatars.githubusercontent.com/u/7172953?v=4 license: BSD-3-Clause repoEtag: '"50ff1dbaa15b9b52a02d2166c17ec4a1bac5697f77745dfdbeb4a54a81d5c1fa"' repoLastModified: Tue, 04 Jun 2024 07:25:47 GMT foundInMaster: true id: c4167980072f8c84fc27a9160da0380a - source: https://openapi.tools/ name: openapi3_parser homepage: https://github.com/kevindew/openapi3_parser language: Ruby source_description: >- A Ruby implementation of parser and validator for the OpenAPI 3 Specification. category: Parsers repository: https://github.com/kevindew/openapi3_parser v2: false v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIDMgUGFyc2VyCgohW2NpIHdvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20va2V2aW5kZXcvb3BlbmFwaTNfcGFyc2VyL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpCgpUaGlzIGEgUnVieSBiYXNlZCBwYXJzZXIvdmFsaWRhdG9yIGZvciBbT3BlbkFQSSAzXVtvcGVuYXBpLTNdLiBJdCBpcyB1c2VkIHRvCmNvbnZlcnQgYW4gT3BlbkFQSSBmaWxlIChjYW4gYmUgYSBsb2NhbCBmaWxlLCBhIFVSTCwgYSBzdHJpbmcgb3IgZXZlbiBhIFJ1YnkKaGFzaCkgaW50byBhbiBvYmplY3QgZ3JhcGggd2l0aCBhIHNpbXBsZSBBUEkgdGhhdCBmb2xsb3dzIHRoZSBbT3BlbkFQSQpzcGVjaWZpY2F0aW9uXVtvcGVuYXBpLTMtc3BlY10uCgpCYXNpYyBleGFtcGxlOgoKYGBgcnVieQpyZXF1aXJlICJvcGVuYXBpM19wYXJzZXIiCgpkb2N1bWVudCA9IE9wZW5hcGkzUGFyc2VyLmxvYWRfdXJsKCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9tYXN0ZXIvZXhhbXBsZXMvdjMuMC9wZXRzdG9yZS55YW1sIikKCmRvY3VtZW50LnBhdGhzWyIvcGV0cyJdLmdldC5zdW1tYXJ5CiMgPT4gIkxpc3QgYWxsIHBldHMiCmBgYAoKSXQgYWltcyB0byBzdXBwb3J0IDEwMCUgb2YgdGhlIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24sIHdpdGgga2V5IGZlYXR1cmVzCmJlaW5nOgoKLSBTdXBwb3J0cyBsb2FkaW5nIGEgc3BlY2lmaWNhdGlvbiBieSBwYXRoIHRvIGEgZmlsZSwgVVJMLCBSdWJ5IGZpbGUgb2JqZWN0cywKICBhbmQgc3RyaW5ncyBpbiBZQU1MIGFuZCBKU09OIGZvcm1hdHMsIGl0IGV2ZW4gc3VwcG9ydHMgbG9hZGluZyB2aWEgYSBSdWJ5IGhhc2g7Ci0gU3VwcG9ydCBmb3IgbG9hZGluZyByZWZlcmVuY2VzIGZyb20gZXh0ZXJuYWwgZmlsZXMgaW5jbHVkaW5nIFVSTHM7Ci0gSGFuZGxlcyByZWN1cnNpdmUgcmVmZXJlbmNlczsKLSBBbGwgb2YgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIG1hcHBlZCB0byBSdWJ5IG9iamVjdHMsIHByb3ZpZGluZyBhIG5hdHVyYWwKICBSdWJ5IGludGVyZmFjZSB0aGF0IG1hcHMgY2xlYXJseSB0byB0aGUgc3BlY2lmaWNhdGlvbjsKLSBPcGVuQVBJIGZpbGVzIHZhbGlkYXRlZCB3aXRoIGEgc2ltcGxlIEFQSSB0byBxdWlja2x5IGFuZCBzaW1wbHkgc2VlIGFsbAogIHByb2JsZW1zIHdpdGggYSBmaWxlCi0gQnVpbHQtaW4gTWFya2Rvd24gdG8gSFRNTCBjb252ZXJzaW9uOwotIERvY3VtZW50YXRpb24gZm9yIHRoZSBBUEkgdG8gbmF2aWdhdGUgdGhlIE9wZW5BUEkgbm9kZXMgaXMgYXZhaWxhYmxlIG9uCiAgW3J1Ynlkb2MuaW5mb11bZG9jc10uCgpJJ3ZlIHdyb3RlIGEgYmxvZyBwb3N0IHJlZmxlY3Rpbmcgb24gdGhlIGRlY2lzaW9ucyBpbnZvbHZlZCBpbiBidWlsZGluZyB0aGlzCnBhcnNlciBpbiBbSG93IHRvIHdyaXRlIGFuIE9wZW5BUEkgMyBwYXJzZXJdW2Jsb2ddLgoKW29wZW5hcGktM106IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uCltvcGVuYXBpLTMtc3BlY106IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kI3NwZWNpZmljYXRpb24KW2RvY3NdOiBodHRwOi8vd3d3LnJ1Ynlkb2MuaW5mby9naXRodWIva2V2aW5kZXcvb3BlbmFwaTNfcGFyc2VyL09wZW5hcGkzUGFyc2VyL05vZGUvT3BlbmFwaQpbYmxvZ106IGh0dHBzOi8va2V2aW5kZXcubWUvcG9zdC8xODg2MTE0MjMyMzEvaG93LXRvLXdyaXRlLWFuLW9wZW5hcGktMy1wYXJzZXIKCiMjIFVzYWdlCgojIyMgTG9hZGluZyBhIHNwZWNpZmljYXRpb24KCmBgYHJ1YnkKIyBieSBVUkwKT3BlbmFwaTNQYXJzZXIubG9hZF91cmwoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9rZXZpbmRldy9vcGVuYXBpM19wYXJzZXIvbWFpbi9zcGVjL3N1cHBvcnQvZXhhbXBsZXMvcGV0c3RvcmUtZXhwYW5kZWQueWFtbCIpCgojIGJ5IHBhdGggdG8gZmlsZQpPcGVuYXBpM1BhcnNlci5sb2FkX2ZpbGUoInNwZWMvc3VwcG9ydC9leGFtcGxlcy91YmVyLnlhbWwiKQoKIyBieSBGaWxlCk9wZW5hcGkzUGFyc2VyLmxvYWQoRmlsZS5vcGVuKCJzcGVjL3N1cHBvcnQvZXhhbXBsZXMvdWJlci55YW1sIikpCgojIGJ5IFN0cmluZwpPcGVuYXBpM1BhcnNlci5sb2FkKCd7ICJvcGVuYXBpIjogIjMuMC4wIiwgImluZm8iOiB7ICJ0aXRsZSI6ICJBUEkiLCAidmVyc2lvbiI6ICIxLjAuMCIgfSwgInBhdGhzIjoge30gIH0nKQoKIyBieSBIYXNoCk9wZW5hcGkzUGFyc2VyLmxvYWQob3BlbmFwaTogIjMuMC4wIiwgaW5mbzogeyB0aXRsZTogIkFQSSIsIHZlcnNpb246ICIxLjAuMCIgfSwgcGF0aHM6IHt9KQoKYGBgCgojIyMgVmFsaWRhdGluZwoKYGBgcnVieQpkb2N1bWVudCA9IE9wZW5hcGkzUGFyc2VyLmxvYWQob3BlbmFwaTogIjMuMC4wIiwgaW5mbzoge30sIHBhdGhzOiB7fSkKZG9jdW1lbnQudmFsaWQ/CiMgPT4gZmFsc2UKZG9jdW1lbnQuZXJyb3JzCiPCoD0+IE9wZW5hcGkzUGFyc2VyOjpWYWxpZGF0aW9uOjpFcnJvckNvbGxlY3Rpb24oZXJyb3JzOiB7IiMvaW5mbyI9PlsiTWlzc2luZyByZXF1aXJlZCBmaWVsZHM6IHRpdGxlIGFuZCB2ZXJzaW9uIl19KQpgYGAKCiMjIyBUcmF2ZXJzaW5nCgpgYGBydWJ5CmRvY3VtZW50ID0gT3BlbmFwaTNQYXJzZXIubG9hZF91cmwoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9rZXZpbmRldy9vcGVuYXBpM19wYXJzZXIvbWFpbi9zcGVjL3N1cHBvcnQvZXhhbXBsZXMvcGV0c3RvcmUtZXhwYW5kZWQueWFtbCIpCgojIGJ5IG9iamVjdHMKCmRvY3VtZW50LmluZm8udGVybXNfb2Zfc2VydmljZQojID0+ICJodHRwOi8vc3dhZ2dlci5pby90ZXJtcy8iCgpkb2N1bWVudC5wYXRocy5rZXlzCiMgPT4gWyIvcGV0cyIsICIvcGV0cy97aWR9Il0KCmRvY3VtZW50LnBhdGhzWyIvcGV0cyJdLmdldC5wYXJhbWV0ZXJzLm1hcCgmOm5hbWUpCiMgPT4gWyJ0YWdzIiwgImxpbWl0Il0KCiMgYnkgaGFzaCBzeW50YXgKCmRvY3VtZW50WyJpbmZvIl1bInRlcm1zT2ZTZXJ2aWNlIl0KPT4gImh0dHA6Ly9zd2FnZ2VyLmlvL3Rlcm1zLyIKCmRvY3VtZW50WyJwYXRocyJdLmtleXMKIyA9PiBbIi9wZXRzIiwgIi9wZXRzL3tpZH0iXQoKZG9jdW1lbnRbInBhdGhzIl1bIi9wZXRzIl1bImdldCJdWyJwYXJhbWV0ZXJzIl0ubWFwKCY6bmFtZSkKIyA9PiBbInRhZ3MiLCAibGltaXQiXQoKIyBieSBhIHBhdGggdG8gYSBub2RlCmRvY3VtZW50Lm5vZGVfYXQoIiMvcGF0aHMvJTJGcGV0cy9nZXQvb3BlcmF0aW9uSWQiKQo9PiAiZmluZFBldHMiCgpkb2N1bWVudC5ub2RlX2F0KCIjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQvYWxsT2YvMC9yZXF1aXJlZC8wIikKPT4gIm5hbWUiCgojIG9yIGNvbWJpbmluZwoKZG9jdW1lbnQuY29tcG9uZW50cy5zY2hlbWFzWyJQZXQiXS5ub2RlX2F0KCIjLi4vTmV3UGV0IikKPT4gT3BlbmFwaTNQYXJzZXI6Ok5vZGU6OlNjaGVtYSgjL2NvbXBvbmVudHMvc2NoZW1hcy9OZXdQZXQpCmBgYAoKWW91IGNhbiBsZWFybiBtb3JlIGFib3V0IHRoZSBBUEkgb24gW3J1Ynlkb2MuaW5mb11bZG9jc10KCiMjIEluc3RhbGxhdGlvbgoKWW91IGNhbiBpbnN0YWxsIHRoaXMgZ2VtIGludG8geW91ciBidW5kbGVyIGFwcGxpY2F0aW9uIGJ5IGFkZGluZyB0aGlzIGxpbmUgdG8KeW91ciBHZW1maWxlOgoKYGBgCmdlbSAib3BlbmFwaTNfcGFyc2VyIiwgIn4+IDAuMTAuMCIKYGBgCgphbmQgdGhlbiBydW5uaW5nIGAkIGJ1bmRsZSBpbnN0YWxsYAoKT3IgaW5zdGFsbCB0aGUgZ2VtIG9udG8geW91ciBtYWNoaW5lIHZpYSBgJCBnZW0gaW5zdGFsbCBvcGVuYXBpM19wYXJzZXJgCgojIyBTdGF0dXMKClRoaXMgaXMgY3VycmVudGx5IGEgd29yayBpbiBwcm9ncmVzcyBhbmQgd2lsbCByZW1haW4gc28gdW50aWwgaXQgcmVhY2hlcyAxLjAuCgpTZWUgW1RPRE9dKFRPRE8ubWQpIGZvciBkZXRhaWxzIG9mIHRoZSBmZWF0dXJlcyBzdGlsbCB0byBpbXBsZW1lbnQuCgojIyBMaWNlbmNlCgpbTUlUIExpY2Vuc2VdKExJQ0VOQ0UpCg== readmeEtag: '"91b00fb70c82fca634eb45633bb90a4ba8e6349d"' readmeLastModified: Tue, 21 May 2024 08:42:03 GMT repositoryId: 107609542 description: Open API 3 Parser/Validator for Ruby created: '2017-10-19T23:33:52Z' updated: '2024-08-28T05:27:49Z' language: Ruby archived: false stars: 90 watchers: 8 forks: 12 owner: kevindew logo: https://avatars.githubusercontent.com/u/282717?v=4 license: MIT repoEtag: '"d14876e047b5292aa345bc8eea39d01ecea25f7a7ed131e95ef4b3c40a774366"' repoLastModified: Wed, 28 Aug 2024 05:27:49 GMT foundInMaster: true id: 609fe191ac5d7b1b89c772e47fd2deb8 - source: https://openapi.tools/ name: APIMatic Generate category: - Code Generators - SDK language: SaaS link: https://www.apimatic.io/product/generate source_description: >- Bring in your API description (OAI v2/v3, RAML, API Blueprint, WSDL, etc.) to generate fully functional SDKs in over 10 languages. v2: true v3: true v3_1: true id: 7cbb02fd80f5559ac1fd392da1417abe foundInMaster: true - source: https://openapi.tools/ name: docler-labs/api-client-generator category: SDK language: PHP repository: https://github.com/doclerlabs/api-client-generator source_description: >- API client generator is a console application capable of auto-generating a PSR18/PSR7 API client based on OpenAPI specification according to PHP best practices and your code style standards. v3: true id: 0c78f909fbd7707b739560ebfa258b81 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNESyBnZW5lcmF0b3IgLSBBUEkgY2xpZW50IGdlbmVyYXRvcgoKQVBJIGNsaWVudCBnZW5lcmF0b3IgaXMgYSBjb25zb2xlIGFwcGxpY2F0aW9uIGNhcGFibGUgb2YgYXV0by1nZW5lcmF0aW5nIGEgW1BTUjE4XShodHRwczovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTE4LykvW1BTUjddKGh0dHBzOi8vd3d3LnBocC1maWcub3JnL3Bzci9wc3ItNy8pIGNvbXBsaWFudCBBUEkgY2xpZW50IGJhc2VkIG9uIFtPcGVuQVBJIHYzXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIHNwZWNpZmljYXRpb24gYWNjb3JkaW5nIHRvIFBIUCBiZXN0IHByYWN0aWNlcyBhbmQgeW91ciBjb2RlIHN0eWxlIHN0YW5kYXJkcy4KClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL0RvY2xlckxhYnMvYXBpLWNsaWVudC1nZW5lcmF0b3Iuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvRG9jbGVyTGFicy9hcGktY2xpZW50LWdlbmVyYXRvcikKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvRG9jbGVyTGFicy9hcGktY2xpZW50LWdlbmVyYXRvci9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9Eb2NsZXJMYWJzL2FwaS1jbGllbnQtZ2VuZXJhdG9yP2JyYW5jaD1tYXN0ZXIpClshW1BIUFN0YW4gTGV2ZWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUEhQU3Rhbi1sZXZlbCUyMDgtYnJpZ2h0Z3JlZW4uc3ZnP3N0eWxlPWZsYXQpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BIUFN0YW4tbGV2ZWwlMjA4LWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KQoKIyMgUmVxdWlyZW1lbnRzCi0gT3BlbkFQSSA+PSAzLjAKLSBQSFAgPj0gNy4wCgojIyBXaHkgdXNpbmcgaXQ/Ci0gV2l0aCBnZW5lcmF0ZWQgY2xpZW50IHlvdSBhcmUgYWx3YXlzIHN1cmUgdGhhdCB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpcyB1cC10by1kYXRlLgotIFdvcmsgd2l0aCBvYmplY3RzIGluc3RlYWQgb2YgcmF3IGRhdGEsIGl0IGlzIE9PUCBmcmllbmRseS4KLSBTYXZlcyB5b3VyIHRpbWUuIFlvdSBkb24ndCBuZWVkIHRvIHdyaXRlIGRhdGEgbWFwcGVycyB5b3Vyc2VsZiB0byBwb3B1bGF0ZSB0aG9zZSBvYmplY3RzIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgcmVzcG9uc2UuCi0gQWxsIHRoZSBiYXNpYyB0eXBlIHZhbGlkYXRpb25zIGluIHRoZSByZXF1ZXN0IGFuZCB0aGUgcmVzcG9uc2UgZG9uZSBhdXRvbWF0aWNhbGx5LgotIERlc3BpdGUgdGhlIGZhY3QgdGhlIGNvZGUgaXMgZ2VuZXJhdGVkIGl0J3MgY2xlYXIgYW5kIHJlYWRhYmxlLCBzaW1wbGUgdG8gZGVidWcgYW5kIHRvIHJlYXNvbiBhYm91dC4KLSBIaWdobHkgY29uZmlndXJhYmxlIGFuZCBleHRlbnNpYmxlLgotIFJlbGlhYmxlIGFuZCB3ZWxsIHRlc3RlZC4KLSBTaW1wbHksICoqaWYgc29tZXRoaW5nIGNhbiBiZSBhdXRvbWF0ZWQgaXQgc2hvdWxkIGJlIGF1dG9tYXRlZC4qKiAgRm9jdXMgb24gaW1wb3J0YW50IHN0dWZmLgoKIyMgRmVhdHVyZXMKLSBTdXBwb3J0cyB5YW1sIG9yIGpzb24gc3BlY2lmaWNhdGlvbiBmaWxlIGZvcm1hdHMuCi0gVmFsaWRhdGVzIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgotIFN1cHBvcnRzIG11bHRpcGxlIGNvbnRlbnQgdHlwZXM6CiAgICAqIGFwcGxpY2F0aW9uL2pzb24KICAgICogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkCiAgICAqIGFwcGxpY2F0aW9uL3htbAotIFN1cHBvcnRzIG5ldyBQSFAgdmVyc2lvbnMgc3ludGF4IGZlYXR1cmVzLgotIEl0IGlzIGJhc2UgY2xpZW50IGluZGVwZW5kZW50LCB5b3UgYXJlIGZyZWUgdG8gY2hvb3NlIGFueSBbZXhpc3RpbmcgUFNSLTE4IGNvbXBsaWFudCBjbGllbnRdKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wcm92aWRlcnMvcHNyL2h0dHAtY2xpZW50LWltcGxlbWVudGF0aW9uKS4gSnVzdCBjaG9vc2UgdGhlIG9uZSB3aGljaCB5b3UgYWxyZWFkeSB1c2UsIHNvIGdlbmVyYXRlZCBjbGllbnQgd291bGQgbm90IGNhdXNlIGFueSBjb25mbGljdHMgd2l0aCB5b3VyIGRlcGVuZGVuY2llcy4gQWx0aG91Z2ggbm90IHJlY29tbWVuZGVkLCB5b3UgY2FuIGFsc28gdXNlIG9yIGJ1aWxkIHlvdXIgb3duIFBTUi0xOCBpbXBsZW1lbnRhdGlvbiwgYXMgdGhlIGdlbmVyYXRlZCBjbGllbnQgZGVwZW5kcyBvbiBQU1IgaW50ZXJmYWNlcyBvbmx5LgotIEFwcGxpZXMgY29kZSBzdHlsZSBydWxlcyB0byBnZW5lcmF0ZWQgY29kZSwgeW91IGNhbiBzcGVjaWZ5IHlvdXIgb3duLgotIEdlbmVyYXRlcyBSRUFETUUgYW5kIGNvbXBvc2VyLmpzb24gZmlsZXMgd2l0aCBwb3NzaWJpbGl0eSB0byB1c2UgeW91ciBvd24gdGVtcGxhdGUuCi0gU3VwcG9ydHMgYGFsbE9mYCwgYG9uZU9mYCwgYGFueU9mYCBPcGVuQVBJIHBhcmFtZXRlcnMuCi0gU3VwcG9ydHMgbnVsbGFibGUgb3B0aW9uYWwgc2NoZW1lIHByb3BlcnR5LgoKIyMgRXhhbXBsZQpDaGVjayBvdXQgW2V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9Eb2NsZXJMYWJzL2FwaS1jbGllbnQtZ2VuZXJhdG9yL3RyZWUvbWFzdGVyL2V4YW1wbGUpIGRpcmVjdG9yeSB0byBzZWUgdGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IGFwaS1jbGllbnQtZ2VuZXJhdG9yLgoKVHJ5IGl0IG91dDoKYGBgYmFzaApjZCBleGFtcGxlICYmIFwKY29tcG9zZXIgaW5zdGFsbCAmJiBcCnBocCB0ZXN0LWV4YW1wbGUucGhwCmBgYAoKIyMgVXNhZ2UKIyMjIFdpdGggRG9ja2VyCmBgYGJhc2gKJCBkb2NrZXIgcnVuIC1pdCBcCi12IHtwYXRoLXRvLXNwZWNpZmljYXRpb259L29wZW5hcGkueWFtbDovb3BlbmFwaS55YW1sOnJvIFwKLXYge3BhdGgtdG8tY2xpZW50fS9zb21lLWFwaS1jbGllbnQ6L2NsaWVudCBcCi1lIE5BTUVTUEFDRT1Hcm91cFxcU29tZUFwaUNsaWVudCBcCi1lIE9QRU5BUEk9L29wZW5hcGkueWFtbCBcCi1lIE9VVFBVVF9ESVI9L2NsaWVudCBcCi1lIFBBQ0tBR0U9Z3JvdXAvc29tZS1hcGktY2xpZW50IFwKZGhsYWJzL2FwaS1jbGllbnQtZ2VuZXJhdG9yCmBgYAoKIyMjIFdpdGhvdXQgRG9ja2VyClByZWNvbmRpdGlvbnM6IFBIUCA3LjQKCkNsb25lIHRoZSByZXBvc2l0b3J5IGFuZCBydW46CmBgYGJhc2ggCk9QRU5BUEk9e3BhdGgtdG8tc3BlY2lmaWNhdGlvbn0vb3BlbmFwaS55YW1sIE5BTUVTUEFDRT1Hcm91cFxTb21lQXBpQ2xpZW50IFBBQ0tBR0U9Z3JvdXAvc29tZS1hcGktY2xpZW50IE9VVFBVVF9ESVI9e3BhdGgtdG8tY2xpZW50fS9nZW5lcmF0ZWQgLi9iaW4vYXBpLWNsaWVudC1nZW5lcmF0b3IgZ2VuZXJhdGUKYGBgIAoKIyMgQ29uZmlndXJhdGlvbgpUaGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlOgoKfCBWYXJpYWJsZSB8IFJlcXVpcmVkIHwgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFbnVtIHwgRXhhbXBsZSAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgYE5BTUVTUEFDRWAgfCB5ZXMgfCB8IHwgR3JvdXBcXFNvbWVBcGlDbGllbnQgfAp8IGBQQUNLQUdFYCB8IHllcyB8IHwgfCBncm91cC9zb21lLWFwaS1jbGllbnQgfAp8IGBPUEVOQVBJIGAgfCB5ZXMgfCB8IHwgL2FwaS9vcGVuYXBpLnlhbWwgfAp8IGBPVVRQVVRfRElSYCB8IHllcyB8IHwgfCAvY2xpZW50IHwKfCBgQ09ERV9TVFlMRWAgfCBubyB8IHtwYXRoLXRvLXJlcG9zaXRvcnl9Ly5waHAtY3MtZml4ZXIucGhwLmRpc3QgfCB8IC9jbGllbnQvbXlDb2RlU3R5bGUucGhwIHwKfCBgU09VUkNFX0RJUmAgfCBubyB8IHNyYyB8IHwgc3JjIHwKfCBgQ0xJRU5UX1BIUF9WRVJTSU9OYCB8IG5vIHwgNy40IHwgNy4wLCA3LjEsIDcuMiwgNy4zLCA3LjQsIDguMCwgOC4xLCA4LjIsIDguMyB8IDcuNCB8CnwgYENPTVBPU0VSX0pTT05fVEVNUExBVEVfRElSYCB8IG5vIHwge3BhdGgtdG8tcmVwb3NpdG9yeX0vdGVtcGxhdGUvY29tcG9zZXIuanNvbi50d2lnIHwgfCAvcGF0aC9jb21wb3Nlci5qc29uLnR3aWcgfAp8IGBSRUFETUVfTURfVEVNUExBVEVfRElSYCB8IG5vIHwge3BhdGgtdG8tcmVwb3NpdG9yeX0vdGVtcGxhdGUvUkVBRE1FLm1kLnR3aWcgfCB8IC9wYXRoL1JFQURNRS5tZC50d2lnIHwKfCBgSFRUUF9NRVNTQUdFYCB8IG5vIHwgZ3V6emxlIHwgZ3V6emxlLCBueWhvbG0gfCBueWhvbG0gfAp8IGBDT05UQUlORVJgIHwgbm8gfCBwaW1wbGUgfCBwaW1wbGUgfCBwaW1wbGUgfAp8IGBJTkNMVURFX1RBR1NgIHwgbm8gfCB8IHwgdGFnMSx0YWcyLHRhZzMgfCB0YWcgd2hpdGVsaXN0IHRvIHNlbGVjdCBnZW5lcmF0ZWQgb3BlcmF0aW9ucyB8CnwgYEVYQ0xVREVfVEFHU2AgfCBubyB8IHwgfCB0YWcxLHRhZzIsdGFnMyB8IHRhZyBibGFja2xpc3QgdG8gc2VsZWN0IGdlbmVyYXRlZCBvcGVyYXRpb25zIHwKCiMjIFJ1bm5pbmcgdGVzdHMKCmBgYGJhc2gKJCBjb21wb3NlciBpbnN0YWxsCiQgbWFrZSB0ZXN0CmBgYAoKKGNoZWNrIGBtYWtlYCBmb3IgYWxsIGF2YWlsYWJsZSByb3V0aW5lcykuCg== readmeEtag: '"13048ced3d20d0bd15746eb60aadfcc1175c8dda"' readmeLastModified: Thu, 22 Aug 2024 09:46:52 GMT repositoryId: 267043092 description: >- API client generator is a console application capable of generating an API client based on OpenAPI(Swagger) specification. created: '2020-05-26T12:57:31Z' updated: '2024-08-22T09:46:56Z' language: PHP archived: false stars: 31 watchers: 15 forks: 19 owner: DoclerLabs logo: https://avatars.githubusercontent.com/u/12913135?v=4 license: MIT repoEtag: '"8b12ceeb6e108d8a86e9f2bd53a17ad1ef930c759018f118d2b5dc4b1a546b19"' repoLastModified: Thu, 22 Aug 2024 09:46:56 GMT foundInMaster: true - source: https://openapi.tools/ name: janephp/open-api category: SDK language: PHP repository: https://github.com/janephp/open-api source_description: Generate a PHP Client API (PSR-7 compatible) given a OpenAPI specification. v2: true v3: true repositoryMetadata: base64Readme: >- IyBKYW5lIE9wZW5BUEkKCkdlbmVyYXRlIGEgUEhQIENsaWVudCBBUEkgKFBTUjcgY29tcGF0aWJsZSkgZ2l2ZW4gYSBbT3BlbkFQSSAoU3dhZ2dlcikgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kKS4KCiMjIExpY2Vuc2UKClZpZXcgdGhlIFtMSUNFTlNFXShMSUNFTlNFKSBmaWxlIGF0dGFjaCB0byB0aGlzIHByb2plY3QuCgojIyBSZXNvdXJjZXMKCiAqIFtEb2N1bWVudGF0aW9uXShodHRwOi8vamFuZS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKQogKiBbQ29udHJpYnV0aW5nXShodHRwczovL2dpdGh1Yi5jb20vamFuZXBocC9qYW5lcGhwL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCkKICogW1JlcG9ydCBJc3N1ZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYW5lcGhwL2phbmVwaHAvaXNzdWVzKSBhbmQgW3NlbmQgUHVsbCBSZXF1ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2phbmVwaHAvamFuZXBocC9wdWxscykgCiBpbiB0aGUgW21haW4gSmFuZSBSZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vamFuZXBocC9qYW5lcGhwKQogCiMjIFNwb25zb3IKClshW0pvbGlDb2RlXShodHRwczovL2pvbGljb2RlLmNvbS9pbWFnZXMvbG9nby5zdmcpXShodHRwczovL2pvbGljb2RlLmNvbSkKCk9wZW4gU291cmNlIHRpbWUgc3BvbnNvcmVkIGJ5IEpvbGlDb2RlCgojIyBDcmVkaXRzCgoqIFtBbGwgY29udHJpYnV0b3JzXShodHRwczovL2dpdGh1Yi5jb20vam9saWNvZGUvamFuZS9ncmFwaHMvY29udHJpYnV0b3JzKQo= readmeEtag: '"a1df2b781a7f621d4ed7f6708fa220b5d61ab794"' readmeLastModified: Fri, 20 Mar 2020 07:42:44 GMT repositoryId: 112961308 description: '[READ-ONLY] Subtree split of Jane OpenAPI library' created: '2017-12-03T20:30:50Z' updated: '2024-04-04T11:09:25Z' language: PHP archived: true stars: 43 watchers: 4 forks: 8 owner: janephp logo: https://avatars.githubusercontent.com/u/21155132?v=4 license: MIT repoEtag: '"b3a56490d1ff5373b59b4f44ba0ab5c0cb8eff67c0999b54af3984bb6e6dd701"' repoLastModified: Thu, 04 Apr 2024 11:09:25 GMT foundInMaster: true id: 6db70c053b88f67063720245f841e5a6 - source: https://openapi.tools/ name: go-swagger category: - Parsers - SDK - Converters link: https://goswagger.io/ repository: https://github.com/go-swagger/go-swagger language: Go source_description: >- Unmaintained v2.0 only project seeking new maintainer, or probably a fork. Parser, validator, generates descriptions from code, or code from descriptions! v2: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIDIuMCBbIVtSdW4gQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1zd2FnZ2VyL2dvLXN3YWdnZXIvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55YW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1zd2FnZ2VyL2dvLXN3YWdnZXIvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55YW1sKSBbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvZ28tc3dhZ2dlci9nby1zd2FnZ2VyL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2dvLXN3YWdnZXIvZ28tc3dhZ2dlcilbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZ28tc3dhZ2dlci9nby1zd2FnZ2VyKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2dvLXN3YWdnZXIvZ28tc3dhZ2dlcikKClshW0dpdEh1YiB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vZ2gvZ28tc3dhZ2dlciUyRmdvLXN3YWdnZXIuc3ZnKV0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2doL2dvLXN3YWdnZXIlMkZnby1zd2FnZ2VyKSBbIVtEb2NrZXIgUmVwb3NpdG9yeSBvbiBRdWF5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2R5bmFtaWMvanNvbj91cmw9aHR0cHMlM0ElMkYlMkZxdWF5LmlvJTJGYXBpJTJGdjElMkZyZXBvc2l0b3J5JTJGZ29zd2FnZ2VyJTJGc3dhZ2dlciUyRnRhZyUyRiUzRmxpbWl0JTNEMSUyNm9ubHlBY3RpdmVUYWdzJTNEdHJ1ZSUyNmZpbHRlcl90YWdfbmFtZSUzRGxpa2UlM0F2JmxhYmVsPURvY2tlciUyMFJlcG9zaXRvcnklMjBvbiUyMFF1YXkmcXVlcnk9JTI0LnRhZ3NbOjFdLm5hbWUpXShodHRwczovL3F1YXkuaW8vcmVwb3NpdG9yeS9nb3N3YWdnZXIvc3dhZ2dlcj90YWI9dGFncykgWyFbRG9ja2VyIFJlcG9zaXRvcnkgb24gR2l0aHViXShodHRwczovL2doY3ItYmFkZ2UuZWdwbC5kZXYvZ28tc3dhZ2dlci9nby1zd2FnZ2VyL2xhdGVzdF90YWc/dHJpbT1tYWpvciZpZ25vcmU9c2hhLSombGFiZWw9RG9ja2VyJTIwUmVwb3NpdG9yeSUyMG9uJTIwR2l0aHViKV0oaHR0cHM6Ly9naXRodWIuY29tL29yZ3MvZ28tc3dhZ2dlci9wYWNrYWdlcy9jb250YWluZXIvZ28tc3dhZ2dlci92ZXJzaW9ucykgIVtHaXRIdWIgY29tbWl0cyBzaW5jZSBsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29tbWl0cy1zaW5jZS9nby1zd2FnZ2VyL2dvLXN3YWdnZXIvbGF0ZXN0KQoKWyFbU2xhY2sgU3RhdHVzXShodHRwczovL3NsYWNraW4uZ29zd2FnZ2VyLmlvL2JhZGdlLnN2ZyldKGh0dHBzOi8vc2xhY2tpbi5nb3N3YWdnZXIuaW8pClshW2xpY2Vuc2VdKGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUFwYWNoZSUyMHYyLW9yYW5nZS5zdmcpXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1zcGVjL21hc3Rlci9MSUNFTlNFKQpbIVtHb0RvY10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9nby1zd2FnZ2VyL2dvLXN3YWdnZXI/c3RhdHVzLnN2ZyldKGh0dHA6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9nby1zd2FnZ2VyL2dvLXN3YWdnZXIpCgpbIVtPcGVuIFNTRiBTY29yZWNhcmRdKGh0dHBzOi8vYXBpLnNlY3VyaXR5c2NvcmVjYXJkcy5kZXYvcHJvamVjdHMvZ2l0aHViLmNvbS9nby1zd2FnZ2VyL2dvLXN3YWdnZXIvYmFkZ2UpXShodHRwczovL3NlY3VyaXR5c2NvcmVjYXJkcy5kZXYvdmlld2VyLz91cmk9Z2l0aHViLmNvbS9nby1zd2FnZ2VyL2dvLXN3YWdnZXIpClshW0ZPU1NBIFN0YXR1c10oaHR0cHM6Ly9hcHAuZm9zc2EuaW8vYXBpL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZnby1zd2FnZ2VyJTJGZ28tc3dhZ2dlci5zdmc/dHlwZT1zaGllbGQpXShodHRwczovL2FwcC5mb3NzYS5pby9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGZ28tc3dhZ2dlciUyRmdvLXN3YWdnZXI/cmVmPWJhZGdlX3NoaWVsZCkKCi0tLQoKVGhpcyBwcm9qZWN0IGNvbnRhaW5zIGEgZ29sYW5nIGltcGxlbWVudGF0aW9uIG9mIFN3YWdnZXIgMi4wIChha2EgW09wZW5BUEkgMi4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQpKS4KSXQgcHJvdmlkZSB0b29scyB0byB3b3JrIHdpdGggc3dhZ2dlciBzcGVjaWZpY2F0aW9ucy4KCltTd2FnZ2VyXShodHRwczovL3N3YWdnZXIuaW8vKSBpcyBhIHNpbXBsZSB5ZXQgcG93ZXJmdWwgcmVwcmVzZW50YXRpb24gb2YgeW91ciBSRVNUZnVsIEFQSS48YnI+CgojIyBEb2N1bWVudGF0aW9uCgo8aHR0cHM6Ly9nb3N3YWdnZXIuaW8+CgojIyAgRmVhdHVyZXMKCmBnby1zd2FnZ2VyYCBicmluZ3MgdG8gdGhlIGdvIGNvbW11bml0eSBhIGNvbXBsZXRlIHN1aXRlIG9mIGZ1bGx5LWZlYXR1cmVkLCBoaWdoLXBlcmZvcm1hbmNlLCBBUEkgY29tcG9uZW50cyB0byAgd29yayB3aXRoIGEgU3dhZ2dlciBBUEk6IHNlcnZlciwgY2xpZW50IGFuZCBkYXRhIG1vZGVsLgoKKiBHZW5lcmF0ZXMgYSBzZXJ2ZXIgZnJvbSBhIHN3YWdnZXIgc3BlY2lmaWNhdGlvbgoqIEdlbmVyYXRlcyBhIGNsaWVudCBmcm9tIGEgc3dhZ2dlciBzcGVjaWZpY2F0aW9uCiogR2VuZXJhdGVzIGEgQ0xJIChjb21tYW5kIGxpbmUgdG9vbCkgZnJvbSBhIHN3YWdnZXIgc3BlY2lmaWNhdGlvbiAoYWxwaGEgc3RhZ2UpCiogU3VwcG9ydHMgbW9zdCBmZWF0dXJlcyBvZmZlcmVkIGJ5IGpzb25zY2hlbWEgYW5kIHN3YWdnZXIsIGluY2x1ZGluZyBwb2x5bW9ycGhpc20KKiBHZW5lcmF0ZXMgYSBzd2FnZ2VyIHNwZWNpZmljYXRpb24gZnJvbSBhbm5vdGF0ZWQgZ28gY29kZQoqIEFkZGl0aW9uYWwgdG9vbHMgdG8gd29yayB3aXRoIGEgc3dhZ2dlciBzcGVjCiogR3JlYXQgY3VzdG9taXphdGlvbiBmZWF0dXJlcywgd2l0aCB2ZW5kb3IgZXh0ZW5zaW9ucyBhbmQgY3VzdG9taXphYmxlIHRlbXBsYXRlcwoKT3VyIGZvY3VzIHdpdGggY29kZSBnZW5lcmF0aW9uIGlzIHRvIHByb2R1Y2UgaWRpb21hdGljLCBmYXN0IGdvIGNvZGUsIHdoaWNoIHBsYXlzIG5pY2Ugd2l0aCBnb2xpbnQsIGdvIHZldCBldGMuCgpbTW9yZSBkZXRhaWxzXShodHRwczovL2dvc3dhZ2dlci5pby9nby1zd2FnZ2VyL2ZlYXR1cmVzKS4KCiMjICBQcm9qZWN0IHN0YXR1cwoKVGhpcyBwcm9qZWN0IHN1cHBvcnRzIE9wZW5BUEkgMi4wLiAqKkF0IHRoaXMgbW9tZW50IGl0IGRvZXMgbm90IHN1cHBvcnQgT3BlbkFQSSAzLngqKi4KCmBnby1zd2FnZ2VyYCBpcyBub3cgZmVhdHVyZSBjb21wbGV0ZSBhbmQgaGFzIHN0YWJpbGl6ZWQgaXRzIEFQSS4KCk1vc3QgZmVhdHVyZXMgYW5kIGJ1aWxkaW5nIGJsb2NrcyBhcmUgbm93IGluIGEgc3RhYmxlIHN0YXRlLCB3aXRoIGEgcmljaCBzZXQgb2YgQ0kgdGVzdHMuCgpUaGUgZ28tb3BlbmFwaSBjb21tdW5pdHkgYWN0aXZlbHkgY29udGludWVzIGJyaW5naW5nIGZpeGVzIGFuZCBlbmhhbmNlbWVudHMgdG8gdGhpcyBjb2RlIGJhc2UuCgpUaGVyZSBpcyBzdGlsbCBtdWNoIHJvb20gZm9yIGltcHJvdmVtZW50OiBjb250cmlidXRvcnMgYW5kIFBSJ3MgYXJlIHdlbGNvbWUuIFlvdSBtYXkgYWxzbyBnZXQgaW4gdG91Y2ggd2l0aCBtYWludGFpbmVycyBvbiBbb3VyIHNsYWNrIGNoYW5uZWxdKGh0dHBzOi8vc2xhY2tpbi5nb3N3YWdnZXIuaW8pLgoKIyMgSW5zdGFsbGluZwoKYGBgc2gKZ28gaW5zdGFsbCBnaXRodWIuY29tL2dvLXN3YWdnZXIvZ28tc3dhZ2dlci9jbWQvc3dhZ2dlckBsYXRlc3QKYGBgCgpgZ28tc3dhZ2dlcmAgaXMgYWxzbyBhdmFpbGFibGUgYXMgYmluYXJ5IG9yIGRvY2tlciByZWxlYXNlcyBhcyB3ZWxsIGFzIGZyb20gc291cmNlOiBbbW9yZSBkZXRhaWxzXShodHRwczovL2dvc3dhZ2dlci5pby9nby1zd2FnZ2VyL2luc3RhbGwpLgoKIyMgVHJ5IGl0CgpUcnkgYGdvLXN3YWdnZXJgIGluIGEgZnJlZSBvbmxpbmUgd29ya3NwYWNlIHVzaW5nIEdpdHBvZDoKClshW09wZW4gaW4gR2l0cG9kXShodHRwczovL2dpdHBvZC5pby9idXR0b24vb3Blbi1pbi1naXRwb2Quc3ZnKV0oaHR0cHM6Ly9naXRwb2QuaW8jaHR0cHM6Ly9naXRodWIuY29tL2dvLXN3YWdnZXIvZ28tc3dhZ2dlcikKCiMjIExpY2Vuc2luZwoKVGhlIHRvb2xraXQgaXRzZWxmIGlzIGxpY2Vuc2VkIHVuZGVyIGFuIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMC4KCkp1c3QgbGlrZSBzd2FnZ2VyLCB0aGlzIGRvZXMgbm90IGNvdmVyIGNvZGUgZ2VuZXJhdGVkIGJ5IHRoZSB0b29sa2l0LiBUaGF0IGNvZGUgaXMgZW50aXJlbHkgeW91cnMgdG8gbGljZW5zZSBob3dldmVyIHlvdSBzZWUgZml0LgoKIyMjIExpY2VuY2Ugc2NhbiBvbiBkZXBlbmRlbmNpZXMgClshW0ZPU1NBIFN0YXR1c10oaHR0cHM6Ly9hcHAuZm9zc2EuaW8vYXBpL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZnby1zd2FnZ2VyJTJGZ28tc3dhZ2dlci5zdmc/dHlwZT1sYXJnZSldKGh0dHBzOi8vYXBwLmZvc3NhLmlvL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZnby1zd2FnZ2VyJTJGZ28tc3dhZ2dlcj9yZWY9YmFkZ2VfbGFyZ2UpCg== readmeEtag: '"717656fc4d57a231f8a85ef6881a3c5464118cca"' readmeLastModified: Mon, 13 May 2024 17:21:38 GMT repositoryId: 26726495 description: Swagger 2.0 implementation for go created: '2014-11-16T20:13:15Z' updated: '2024-09-06T03:06:29Z' language: Go archived: false stars: 9454 watchers: 120 forks: 1244 owner: go-swagger logo: https://avatars.githubusercontent.com/u/10362650?v=4 license: Apache-2.0 repoEtag: '"9e3f1943afbf4cac1d1cbc6ab18c6fe39921151aaba8f653759c4c6fdd130334"' repoLastModified: Fri, 06 Sep 2024 03:06:29 GMT foundInMaster: true id: ef136df9ffb40bb33ccbd76665d8f5b4 - source: https://openapi.tools/ name: docs category: - Parsers - Converters - SDK - Server Implementations link: https://github.com/go-oas/docs repository: https://github.com/go-oas/docs source_description: >- A modern alternative to `go-swagger`. Offers generation and parsing of OpenAPI Specs, depending on the usage. v3: true v3_1: true id: 421481e00ec1f8e0df0d1e7806edbe2d repositoryMetadata: base64Readme: >- IyBkb2NzCgojIyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZSBSRVNUZnVsIEFQSSBkb2N1bWVudGF0aW9uIGZvciBHTyBwcm9qZWN0cyAtIGFsaWduZWQgd2l0aCBbT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBzdGFuZGFyZF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjMubWQpLgoKPGltZyBhbGlnbj0icmlnaHQiIHdpZHRoPSIxODBweCIgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20va2F5bmV0aWsvZG90ZmlsZXMvbWFzdGVyL3N2Zy1yZXNvdXJjZXMvZ28tZ3JwYy13ZWIuc3ZnIj4KCiFbR29sYW5nQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1vYXMvZG9jcy93b3JrZmxvd3MvZ29sYW5nY2kvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKQohW0J1aWxkXShodHRwczovL2dpdGh1Yi5jb20vZ28tb2FzL2RvY3Mvd29ya2Zsb3dzL0J1aWxkL2JhZGdlLnN2Zz9icmFuY2g9bWFpbikKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS92ZXJzaW9uLXYxLjAuNS1zdWNjZXNzLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1vYXMvZG9jcy9yZWxlYXNlcykKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2dvLW9hcy9kb2NzKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2dvLW9hcy9kb2NzKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9nby1vYXMvZG9jcy9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvZ28tb2FzL2RvY3M/YnJhbmNoPW1haW4pClshW2NvZGViZWF0IGJhZGdlXShodHRwczovL2NvZGViZWF0LmNvL2JhZGdlcy8zMmI4NjU1Ni04NGUzLTRkYjktOWYxMS05MjNkMTI5OTRmOTApXShodHRwczovL2NvZGViZWF0LmNvL3Byb2plY3RzL2dpdGh1Yi1jb20tZ28tb2FzLWRvY3MtbWFpbikKWyFbR28gUmVmZXJlbmNlXShodHRwczovL3BrZy5nby5kZXYvYmFkZ2UvZ2l0aHViLmNvbS9nby1vYXMvZG9jcy5zdmcpXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9nby1vYXMvZG9jcykKWyFbTWVudGlvbmVkIGluIEF3ZXNvbWUgR29dKGh0dHBzOi8vYXdlc29tZS5yZS9tZW50aW9uZWQtYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9hd2Vzb21lLWdvLmNvbSkKCmdvLU9BUyBEb2NzIGNvbnZlcnRzIHN0cnVjdHVyZWQgT0FTMyAoU3dhZ2dlcjMpIG9iamVjdHMgaW50byB0aGUgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiAmIGF1dG9tYXRpY2FsbHkgc2VydmVzIGl0IG9uCmNob3NlbiByb3V0ZSBhbmQgcG9ydC4gSXQncyBleHRyZW1lbHkgZmxleGlibGUgYW5kIHNpbXBsZSwgc28gYmFzaWNhbGx5IGl0IGNhbiBiZSBpbnRlZ3JhdGVkIGludG8gYW55IGZyYW1ld29yayBvcgpleGlzdGluZyBwcm9qZWN0LgoKV2UgaW52aXRlIGFueW9uZSBpbnRlcmVzdGVkIHRvIGpvaW4gb3VyICoqW0dIIERpc2N1c3Npb25zIGJvYXJkXShodHRwczovL2dpdGh1Yi5jb20vZ28tb2FzL2RvY3MvZGlzY3Vzc2lvbnMpKiouIEhvbmVzdApmZWVkYmFjayB3aWxsIGVuYWJsZSB1cyB0byBidWlsZCBiZXR0ZXIgcHJvZHVjdCBhbmQgYXQgdGhlIHNhbWUgdGltZSBub3Qgd2FzdGUgdmFsdWFibGUgdGltZSBhbmQgZWZmb3J0IG9uIHNvbWV0aGluZwp0aGF0IG1pZ2h0IG5vdCBmaXQgaW50ZW5kZWQgdXNhZ2UuIFNvIGlmIHlvdSBjYW4sIHBsZWFzZSBzcGFyZSBmZXcgbWludXRlcyB0byBnaXZlIHlvdXIgb3BpbmlvbiBvZiB3aGF0IHNob3VsZCBiZSBkb25lCm5leHQsIG9yIHdoYXQgc2hvdWxkIGJlIHRoZSBwcmlvcml0eSBmb3Igb3VyIHJvYWRtYXAuIDptdXNjbGU6IDp0YWRhOgoKLS0tLQoKIyMgVGFibGUgb2YgQ29udGVudHMKCi0gW0dldHRpbmcgU3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKLSBbSG93IHRvIHVzZV0oI2hvdy10by11c2UpCiAgICAqIFtFeGFtcGxlc10oI2V4YW1wbGVzKQotIFtDb250YWN0XSgjY29udGFjdCkKLSBbVGhlIGN1cnJlbnQgcm9hZG1hcCAocGxhbm5lZCBmZWF0dXJlcyldKCNyb2FkbWFwKQoKIyMgR2V0dGluZyBTdGFydGVkCgoxLiBEb3dubG9hZCAqKl9kb2NzXyoqIGJ5IHVzaW5nOgogICBgYGBzaAogICAkIGdvIGdldCAtdSBnaXRodWIuY29tL2dvLW9hcy9kb2NzCiAgIGBgYCAKMi4gQWRkIG9uZSBsaW5lIGFubm90YXRpb24gdG8gdGhlIGhhbmRsZXIgeW91IHdpc2ggdG8gdXNlIGluIHRoZSBmb2xsb3dpbmcKICAgZm9ybWF0OiBgLy8gQE9BUyA8RlVOQ19OQU1FPiA8Uk9VVEU+IDxIVFRQX01FVEhPRD5gCiAgIEV4YW1wbGVzOgogICBgYGAKICAgLy8gQE9BUyBoYW5kbGVDcmVhdGVVc2VyIC91c2VycyBQT1NUCiAgIC8vIEBPQVMgaGFuZGxlR2V0VXNlciAvdXNlcnMgR0VUCiAgIGBgYAozLiBEZWNsYXJlIGFsbCByZXF1aXJlZCBkb2N1bWVudGF0aW9uIGVsZW1lbnRzIHRoYXQgYXJlIHNoYXJlZC4gT3IgcmV1c2Ugb25lcyB0aGF0IGFscmVhZHkgZXhpc3QgaW4gdGhlIGV4YW1wbGVzCiAgIGRpcmVjdG9yeS4KNC4gRGVjbGFyZSBzcGVjaWZpYyBkb2NzIGVsZW1lbnRzIHBlciByb3V0ZS4KCi0tLS0KCiMjIEhvdyB0byB1c2UKCkZvciBtb3JlIGV4cGxpY2l0IGV4YW1wbGUsIHBsZWFzZSByZWZlciB0byBbZG9jcy9leGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL2dvLW9hcy9kb2NzL2V4YW1wbGVzKQoKQWRkIE9BUyBUQUcgdG8geW91ciBleGlzdGluZyBoYW5kbGVyIHRoYXQgaGFuZGxlcyBmZXRjaGluZyBvZiBhIFVzZXI6CgpgYGBnbwpwYWNrYWdlIHVzZXJzCgppbXBvcnQgIm5ldC9odHRwIgoKLy8gQE9BUyBoYW5kbGVHZXRVc2VyIC91c2VycyBHRVQKZnVuYyAocyAqc2VydmljZSkgaGFuZGxlR2V0VXNlcigpIGh0dHAuSGFuZGxlckZ1bmMgewoJcmV0dXJuIGZ1bmModyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHsKCX0KfQpgYGAKCkNyZWF0ZSBhIHVuaXF1ZSBBUEkgZG9jdW1lbnRhdGlvbiBmdW5jdGlvbiBmb3IgdGhhdCBlbmRwb2ludDoKCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICJnaXRodWIuY29tL2dvLW9hcy9kb2NzIgoKZnVuYyBoYW5kbGVHZXRVc2VyUm91dGUob2FzUGF0aEluZGV4IGludCwgb2FzICpkb2NzLk9BUykgewoJcGF0aCA6PSBvYXMuR2V0UGF0aEJ5SW5kZXgob2FzUGF0aEluZGV4KQoKCXBhdGguU3VtbWFyeSA9ICJHZXQgYSBVc2VyIgoJcGF0aC5PcGVyYXRpb25JRCA9ICJnZXRVc2VyIgoJcGF0aC5SZXF1ZXN0Qm9keSA9IGRvY3MuUmVxdWVzdEJvZHl7fQoJcGF0aC5SZXNwb25zZXMgPSBkb2NzLlJlc3BvbnNlc3sKCQlnZXRSZXNwb25zZU9LKCksCgl9CgoJcGF0aC5UYWdzID0gYXBwZW5kKHBhdGguVGFncywgInBldCIpCn0KYGBgCgpCZWFyIGluIG1pbmQgdGhhdCBjcmVhdGluZyBhIHVuaXF1ZSBmdW5jdGlvbiBwZXIgZW5kcG9pbnQgaGFuZGxlciBpcyBub3QgcmVxdWlyZWQsIGJ1dCBzaW1wbHkgcHJvdmlkZXMgZ29vZCB2YWx1ZSBpbgp1c2FiaWxpdHkgb2Ygc2hhcmVkIGRvY3VtZW50YXRpb24gZWxlbWVudHMuCgpPbmNlIHlvdSBjcmVhdGVkIHRoZSBmdW5jdGlvbiwgc2ltcGx5IHJlZ2lzdGVyIGl0IGZvciBwYXJzaW5nIGJ5IHVzaW5nIGBBdHRhY2hSb3V0ZXMoKWAgZGVmaW5lZCB1cG9uIGBPQVNgIHN0cnVjdHVyZS4KRS5nLjoKCmBgYGdvCgpwYWNrYWdlIG1haW4KCmltcG9ydCAoCgkiZ2l0aHViLmNvbS9nby1vYXMvZG9jcyIKKQoKZnVuYyBtYWluKCkgewoJYXBpRG9jIDo9IGRvY3MuTmV3KCkKCWFwaURvYy5BdHRhY2hSb3V0ZXMoW11pbnRlcmZhY2V7fXsKCQloYW5kbGVHZXRVc2VyUm91dGUsCgl9KQpgYGAKCklmIHRoaXMgYXBwcm9hY2ggaXMgdG9vIGZsZXhpYmxlIGZvciB5b3UsIHlvdSBhcmUgYWx3YXlzIGxlZnQgd2l0aCB0aGUgcG9zc2liaWxpdHkgdG8gY3JlYXRlIHlvdXIgb3duIGF0dGFjaGVyIC0gb3IgYW55Cm90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gZm9yIHRoYXQgbWF0dGVyLgoKIyMjIEV4YW1wbGVzCgpUbyBydW4gZXhhbXBsZXMsIGFuZCBjaGVja291dCBob3N0ZWQgZG9jdW1lbnRhdGlvbiB2aWEgU3dhZ2dlciBVSSwgaXNzdWUgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2gKJCBnbyBydW4gLi9leGFtcGxlcy9maWxlX291dHB1dC8qLmdvCiMgb3IgdW5jb21tZW50IGxpbmUgNDAgYW5kIGNvbW1lbnQgbGluZSAzOCBpbiBpbnRlcm5hbC9kaXN0L2luZGV4Lmh0bWwgYmVmb3JlIHJ1bm5pbmc6CiQgZ28gcnVuIC4vZXhhbXBsZXMvc3RyZWFtX291dHB1dC8qLmdvCmBgYAoKQW5kIG5hdmlnYXRlIHRvIGBodHRwOi8vbG9jYWxob3N0OjMwMDUvZG9jcy9hcGkvYCBpbiBjYXNlIHRoYXQgeW91IGRpZG4ndCBjaGFuZ2UgYW55dGhpbmcgYmVmb3JlIHJ1bm5pbmcgdGhlIGV4YW1wbGUKYWJvdmUuCgotLS0tCgojIyBDb250YWN0CgpDaGVjayBvdXQgdGhlIGN1cnJlbnQgW1Byb2plY3QgYm9hcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1vYXMvZG9jcy9wcm9qZWN0cy8xKSBvcgpvdXIgKipbR0ggRGlzY3Vzc2lvbnMgYm9hcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1vYXMvZG9jcy9kaXNjdXNzaW9ucykqKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCllvdSBjYW4gam9pbiBvdXIgVGVsZWdyYW0gZ3JvdXAgYXQ6IFtodHRwczovL3QubWUvZ29fb2FzXShodHRwczovL3QubWUvZ29fb2FzKQoKIyMgUm9hZG1hcAoKfCBGZWF0dXJlIChHSCBpc3N1ZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVsZWFzZSB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0gfAp8IFtWYWxpZGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vZ28tb2FzL2RvY3MvaXNzdWVzLzE3KSAgICAgICAgICB8IEFkZCB2YWxpZGF0aW9uIHRvIGFsbCBzdHJ1Y3R1cmVzIGJhc2VkIG9uIE9BUzMuMC4zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2MS4xLjAgIHwKfCBbQ0xJXShodHRwczovL2dpdGh1Yi5jb20vZ28tb2FzL2RvY3MvaXNzdWVzLzE4KSAgICAgICAgICAgICAgICAgfCBBZGQgQ0xJIHN1cHBvcnQgLSBtYWtlIGl0IENMSSBmcmllbmRseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdjEuMi4wICB8CnwgW1Bvc3RtYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1vYXMvZG9jcy9pc3N1ZXMvMTkpICAgICAgICAgICAgIHwgQWRkIHBvc3RtYW4gc3VwcG9ydCB2aWEgUE0gQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHYxLjMuMCAgfAp8IFtSZURvY10oaHR0cHM6Ly9naXRodWIuY29tL2dvLW9hcy9kb2NzL2lzc3Vlcy8yMCkgICAgICAgICAgICAgICB8IEFkZCBSZURvYyBzdXBwb3J0IGFzIGFuIGFsdGVybmF0aXZlIHRvIFN3YWdnZXJVSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2MS40LjAgIHwKfCBbRTJFIEF1dG8tZ2VuZXJhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2dvLW9hcy9kb2NzL2lzc3Vlcy8yMSkgfCBHbyB0ZXN0cyBjb252ZXJzaW9uIHRvIEN5cHJlc3MvS2F0YWxvbiBzdWl0ZXMgKGNvbnZlcnQgbW9ja2VkIHVuaXQgdGVzdHMgaW50byBlMmUgdGVzdHMpIHwgdjEuNS4wICB8Cgo= readmeEtag: '"815b19fa38654d6cd804e799ef507047e040dc05"' readmeLastModified: Wed, 15 Mar 2023 07:41:11 GMT repositoryId: 333859606 description: >- Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard created: '2021-01-28T18:51:47Z' updated: '2024-07-14T20:44:59Z' language: Go archived: false stars: 39 watchers: 3 forks: 5 owner: go-oas logo: https://avatars.githubusercontent.com/u/78081803?v=4 license: MIT repoEtag: '"dd9e16d9386b80401fb7fcf33f9b5a7af16f7990bad071ea821f3bcde5ad7190"' repoLastModified: Sun, 14 Jul 2024 20:44:59 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags name: restful-react homepage: https://github.com/contiamo/restful-react language: React (Typescript) source_description: >- Generate React hooks with appropriate type-signatures from OpenAPI descriptions category: SDK link: https://github.com/contiamo/restful-react repository: https://github.com/contiamo/restful-react v2: true v3: true repositoryMetadata: base64Readme: >- IyBgcmVzdGZ1bC1yZWFjdGAKClshW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9yZXN0ZnVsLXJlYWN0LnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3Jlc3RmdWwtcmVhY3QpCgrimqDvuI8gKipyZXN0ZnVsLXJlYWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQ6KiogV2UgYXJlIGZvY3VzaW5nIG9uIGEgbmV3IG9wZW4gYXBpIGdlbmVyYXRvciB0aGF0IGdlbmVyYXRlcyBgcmVhY3QtcXVlcnlgIGNvbXBvbmVudHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWJpZW4wMTAyL29wZW5hcGktY29kZWdlbiDimqDvuI8KCkJ1aWxkaW5nIFJlYWN0IGFwcHMgdGhhdCBpbnRlcmFjdCB3aXRoIGEgUkVTVGZ1bCBBUEkgcHJlc2VudHMgYSBzZXQgb2YgcXVlc3Rpb25zLCBjaGFsbGVuZ2VzIGFuZCBwb3RlbnRpYWwgZ290Y2hhcy4gVGhpcyBwcm9qZWN0IGFpbXMgdG8gcmVtb3ZlIHN1Y2ggcGl0ZmFsbHMsIGFuZCBwcm92aWRlIGEgcGxlYXNhbnQgZGV2ZWxvcGVyIGV4cGVyaWVuY2Ugd2hlbiBjcmFmdGluZyBzdWNoIGFwcGxpY2F0aW9ucy4KCkl0IGNhbiBiZSBjb25zaWRlcmVkICoqYSB0aGluIHdyYXBwZXIgYXJvdW5kIHRoZSBbZmV0Y2ggQVBJXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9BUEkvRmV0Y2hfQVBJKSBpbiB0aGUgZm9ybSBvZiBSZWFjdCBjb21wb25lbnRzIGFuZCBob29rcy4qKgoKV2hlbiB1c2VkIGluIGEgc2V0dXAgd2l0aCBbT3BlbkFQSSAvIFN3YWdnZXJdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL09wZW5BUElfU3BlY2lmaWNhdGlvbikgc3BlY3MgYW5kIFtUeXBlc2NyaXB0XShodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvKSwgKipyZXN0ZnVsLXJlYWN0IGVuc3VyZXMgYSByZWxpYWJsZSBhbmQgYWx3YXlzIHVwIHRvIGRhdGUgY29udHJhY3QgYmV0d2VlbiBiYWNrZW5kIGFuZCBmcm9udGVuZC4qKiBJdCBnZW5lcmF0ZXMgY29tcG9uZW50cyBhbmQgdHlwZXMgZnJvbSB5b3VyIHNwZWNzIGFuZCBjYW4gYmUgaW50ZWdyYXRlZCBxdWl0ZSBjb21mb3J0YWJseSBpbnRvIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3dzIChmZWF0dXJpbmcgZm9yIGV4YW1wbGUgdGhlIGltcG9ydCBvZiBPcGVuQVBJIHNwZWNzIGZyb20geW91ciBnaXRodWIgcmVwb3MpLgoKcmVzdGZ1bC1yZWFjdCBpcyAqKnZlcnkgd2VsbCB0ZXN0ZWQsIHByb2R1Y3Rpb24gcmVhZHkqKiBhbmQgcG93ZXJzIGFsbCBvZiBvdXIgcHJvamVjdHMgYXQgQ29udGlhbW8uCgo8IS0tIFNUQVJUIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KPCEtLSBET04nVCBFRElUIFRISVMgU0VDVElPTiwgSU5TVEVBRCBSRS1SVU4gZG9jdG9jIFRPIFVQREFURSAtLT4KCi0gW092ZXJ2aWV3XSgjb3ZlcnZpZXcpCi0gW0dldHRpbmcgU3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKLSBbRmVhdHVyZXNdKCNmZWF0dXJlcykKICAtIFtHbG9iYWwgQ29uZmlndXJhdGlvbl0oI2dsb2JhbC1jb25maWd1cmF0aW9uKQogICAgLSBbYFJlc3RmdWxQcm92aWRlcmAgQVBJXSgjcmVzdGZ1bHByb3ZpZGVyLWFwaSkKICAtIFtMb2FkaW5nIGFuZCBFcnJvciBTdGF0ZXNdKCNsb2FkaW5nLWFuZC1lcnJvci1zdGF0ZXMpCiAgLSBbTGF6eSBGZXRjaGluZ10oI2xhenktZmV0Y2hpbmcpCiAgLSBbUmVzcG9uc2UgUmVzb2x1dGlvbl0oI3Jlc3BvbnNlLXJlc29sdXRpb24pCiAgLSBbRGVib3VuY2luZyBSZXF1ZXN0c10oI2RlYm91bmNpbmctcmVxdWVzdHMpCiAgLSBbVHlwZVNjcmlwdCBJbnRlZ3JhdGlvbl0oI3R5cGVzY3JpcHQtaW50ZWdyYXRpb24pCiAgLSBbUXVlcnkgUGFyYW1ldGVyc10oI3F1ZXJ5LXBhcmFtZXRlcnMpCiAgLSBbTXV0YXRpb25zIHdpdGggYHVzZU11dGF0ZWBdKCNtdXRhdGlvbnMtd2l0aC11c2VtdXRhdGUpCiAgLSBbTW9ja3NdKCNtb2NrcykKICAtIFtQb2xsaW5nIHdpdGggYFBvbGxgXSgjcG9sbGluZy13aXRoLXBvbGwpCiAgICAtIFtMb25nIFBvbGxpbmddKCNsb25nLXBvbGxpbmcpCiAgICAtIFtGdWxsIGBQb2xsYCBDb21wb25lbnQgQVBJXSgjZnVsbC1wb2xsLWNvbXBvbmVudC1hcGkpCiAgICAtIFtQb2xsaW5nIGFuZCBDb2RlIEdlbmVyYXRpb25dKCNwb2xsaW5nLWFuZC1jb2RlLWdlbmVyYXRpb24pCiAgLSBbQ29kZSBHZW5lcmF0aW9uIGZyb20gT3BlbkFQSSAvIFN3YWdnZXIgc3BlY3NdKCNjb2RlLWdlbmVyYXRpb24tZnJvbS1vcGVuYXBpLS1zd2FnZ2VyLXNwZWNzKQogICAgLSBbVXNhZ2VdKCN1c2FnZSkKICAgIC0gW1ZhbGlkYXRpb24gb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbl0oI3ZhbGlkYXRpb24tb2YtdGhlLW9wZW5hcGktc3BlY2lmaWNhdGlvbikKICAgIC0gW0FQSSBWZXJzaW9uaW5nXSgjYXBpLXZlcnNpb25pbmcpCiAgICAtIFtJbXBvcnQgZnJvbSBVUkxdKCNpbXBvcnQtZnJvbS11cmwpCiAgICAtIFtJbXBvcnQgZnJvbSBHaXRIdWJdKCNpbXBvcnQtZnJvbS1naXRodWIpCiAgICAtIFtUcmFuc2Zvcm1pbmcgYW4gT3JpZ2luYWwgU3BlY10oI3RyYW5zZm9ybWluZy1hbi1vcmlnaW5hbC1zcGVjKQogICAgLSBbQWR2YW5jZWQgY29uZmlndXJhdGlvbl0oI2FkdmFuY2VkLWNvbmZpZ3VyYXRpb24pCiAgICAgIC0gW0NvbmZpZyBGaWxlIEZvcm1hdF0oI2NvbmZpZy1maWxlLWZvcm1hdCkKICAgICAgLSBbQ29uZmlnIEZpbGUgRXhhbXBsZV0oI2NvbmZpZy1maWxlLWV4YW1wbGUpCiAgICAgIC0gW0N1c3RvbSBnZW5lcmF0b3JdKCNjdXN0b20tZ2VuZXJhdG9yKQogICAgICAtIFtPbmx5IGdlbmVyYXRpbmcgY3VzdG9tIGNvZGUgKG5vIHJlYWN0IGhvb2tzL2NvbXBvbmVudHMpXSgjb25seS1nZW5lcmF0aW5nLWN1c3RvbS1jb2RlLW5vLXJlYWN0LWhvb2tzY29tcG9uZW50cykKLSBbQ29udHJpYnV0aW5nXSgjY29udHJpYnV0aW5nKQogIC0gW0NvZGVdKCNjb2RlKQogIC0gW0hvdyB0byBwdWJsaXNoIHRvIG5wbV0oI2hvdy10by1wdWJsaXNoLXRvLW5wbSkKLSBbYEB3aXRob3V0LWNsaWAgbnBtIHBhY2thZ2VdKCN3aXRob3V0LWNsaS1ucG0tcGFja2FnZSkKLSBbTmV4dCBTdGVwc10oI25leHQtc3RlcHMpCgo8IS0tIEVORCBkb2N0b2MgZ2VuZXJhdGVkIFRPQyBwbGVhc2Uga2VlcCBjb21tZW50IGhlcmUgdG8gYWxsb3cgYXV0byB1cGRhdGUgLS0+CgojIyBPdmVydmlldwoKQXQgaXRzIGNvcmUsIGByZXN0ZnVsLXJlYWN0YCBleHBvc2VzIGEgW2hvb2tdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1pbnRyby5odG1sKSwgY2FsbGVkIGB1c2VHZXRgLiBUaGlzIGNvbXBvbmVudCByZXRyaWV2ZXMgZGF0YSwgZWl0aGVyIG9uIG1vdW50IG9yIGxhdGVyLCBhbmQgdGhlbiBoYW5kbGVzIGVycm9yIHN0YXRlcywgbG9hZGluZyBzdGF0ZXMsIGFuZCBvdGhlciBjYXNlcyBmb3IgeW91LiBBcyBzdWNoLCB5b3UgZ2V0IGEgY29tcG9uZW50IHRoYXQgX2dldHMgc3R1ZmZfIGFuZCB0aGVuIGRvZXMgc3R1ZmYgd2l0aCBpdC4gSGVyZSdzIGEgcXVpY2sgb3ZlcnZpZXcgd2hhdCBpdCBsb29rcyBsaWtlLgoKWyFbRWRpdCByZXN0ZnVsLXJlYWN0IGRlbW9zXShodHRwczovL2NvZGVzYW5kYm94LmlvL3N0YXRpYy9pbWcvcGxheS1jb2Rlc2FuZGJveC5zdmcpXShodHRwczovL2NvZGVzYW5kYm94LmlvL3MvcmVzdGZ1bC1yZWFjdC1kZW1vcy12amV0cykKCmBgYGpzeAppbXBvcnQgUmVhY3QgZnJvbSAicmVhY3QiOwppbXBvcnQgeyB1c2VHZXQgfSBmcm9tICJyZXN0ZnVsLXJlYWN0IjsKCmNvbnN0IE15Q29tcG9uZW50ID0gKCkgPT4gewogIGNvbnN0IHsgZGF0YTogcmFuZG9tRG9nSW1hZ2UgfSA9IHVzZUdldCh7CiAgICBwYXRoOiAiaHR0cHM6Ly9kb2cuY2VvL2FwaS9icmVlZHMvaW1hZ2UvcmFuZG9tIiwKICB9KTsKCiAgcmV0dXJuIDxpbWcgYWx0PSJIZXJlJ3MgYSBnb29kIGJveWUhIiBzcmM9e3JhbmRvbURvZ0ltYWdlICYmIHJhbmRvbURvZ0ltYWdlLm1lc3NhZ2V9IC8+Owp9OwoKZXhwb3J0IGRlZmF1bHQgTXlDb21wb25lbnQ7CmBgYAoKYW5kIG9uIFJlYWN0IE5hdGl2ZSwKW0VkaXQgcmVzdGZ1bC1yZWFjdCBiYXNpYyBkZW1vIG9uIEV4cG9dKGh0dHBzOi8vc25hY2suZXhwby5pby9TSmFTQWo0OXIpCgpgYGBqc3gKaW1wb3J0IHsgQXBwUmVnaXN0cnksIEltYWdlIH0gZnJvbSAicmVhY3QtbmF0aXZlIjsKaW1wb3J0IFJlYWN0IGZyb20gInJlYWN0IjsKCmltcG9ydCB7IHVzZUdldCB9IGZyb20gInJlc3RmdWwtcmVhY3QiOwoKY29uc3QgQXBwID0gKCkgPT4gewogIGNvbnN0IHsgZGF0YTogcmFuZG9tRG9nSW1hZ2UgfSA9IHVzZUdldCh7CiAgICBwYXRoOiAiaHR0cHM6Ly9kb2cuY2VvL2FwaS9icmVlZHMvaW1hZ2UvcmFuZG9tIiwKICB9KTsKICByZXR1cm4gKAogICAgPD4KICAgICAge3JhbmRvbURvZ0ltYWdlICYmICgKICAgICAgICA8SW1hZ2UKICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyNTAsIGhlaWdodDogMjUwIH19CiAgICAgICAgICBzb3VyY2U9e3sKICAgICAgICAgICAgdXJpOiByYW5kb21Eb2dJbWFnZS5tZXNzYWdlLAogICAgICAgICAgfX0KICAgICAgICAvPgogICAgICApfQogICAgPC8+CiAgKTsKfTsKCkFwcFJlZ2lzdHJ5LnJlZ2lzdGVyQ29tcG9uZW50KCJyZWFjdC1uYXRpdmUtYXBwIiwgKCkgPT4gQXBwKTsKYGBgCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClRvIGluc3RhbGwgYW5kIHVzZSB0aGlzIGxpYnJhcnksIGluc3RhbGwgaXQgYnkgcnVubmluZyBgeWFybiBhZGQgcmVzdGZ1bC1yZWFjdGAsIG9yIGBucG0gaSByZXN0ZnVsLXJlYWN0IC0tc2F2ZWAgYW5kIHlvdSBzaG91bGQgYmUgZ29vZCB0byBnby4gRG9uJ3QgZm9yZ2V0IHRvIGBpbXBvcnQgeyB1c2VHZXQgfSBmcm9tICJyZXN0ZnVsLXJlYWN0ImAgb3Igc2ltaWxhciB3aGVyZXZlciB5b3UgbmVlZCBpdCEKCiMjIEZlYXR1cmVzCgpgcmVzdGZ1bC1yZWFjdGAgc2hpcHMgd2l0aCB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIHRoYXQgd2UgdGhpbmsgbWlnaHQgYmUgdXNlZnVsLgoKIyMjIEdsb2JhbCBDb25maWd1cmF0aW9uCgpSRVNUIEFQSSBlbmRwb2ludHMgdXN1YWxseSBzaXQgYWxvbmdzaWRlIGEgYmFzZSwgZ2xvYmFsIFVSTC4gQXMgYSBjb252ZW5pZW5jZSwgdGhlIGBSZXN0ZnVsUHJvdmlkZXJgIGFsbG93cyB0b3AtbGV2ZWwgY29uZmlndXJhdGlvbiBvZiB5b3VyIHJlcXVlc3RzLCB0aGF0IGFyZSB0aGVuIHBhc3NlZCBkb3duIHRoZSBSZWFjdCB0cmVlIHRvIGB1c2VHZXRgIGhvb2tzLgoKQ29uc2lkZXIsCgpbIVtFZGl0IHJlc3RmdWwtcmVhY3QgZGVtb3NdKGh0dHBzOi8vY29kZXNhbmRib3guaW8vc3RhdGljL2ltZy9wbGF5LWNvZGVzYW5kYm94LnN2ZyldKGh0dHBzOi8vY29kZXNhbmRib3guaW8vcy9yZXN0ZnVsLXJlYWN0LWRlbW9zLXZqZXRzKQoKYGBganN4Ci8vIGluZGV4LmpzCgppbXBvcnQgUmVhY3QgZnJvbSAicmVhY3QiOwppbXBvcnQgeyBSZXN0ZnVsUHJvdmlkZXIgfSBmcm9tICJyZXN0ZnVsLXJlYWN0IjsKCmltcG9ydCBBcHAgZnJvbSAiLi9BcHAuanN4IjsKCmNvbnN0IE15UmVzdGZ1bEFwcCA9ICgpID0+ICgKICA8UmVzdGZ1bFByb3ZpZGVyIGJhc2U9Imh0dHBzOi8vZG9nLmNlby9hcGkiPgogICAgPEFwcCAvPgogIDwvUmVzdGZ1bFByb3ZpZGVyPgopOwoKZXhwb3J0IGRlZmF1bHQgTXlSZXN0ZnVsQXBwOwpgYGAKCk1lYW53aGlsZSwgaW4gYC4vQXBwLmpzeGAsCgpgYGBqc3gKLy8gQXBwLmpzeAoKaW1wb3J0IFJlYWN0IGZyb20gInJlYWN0IjsKaW1wb3J0IHsgdXNlR2V0IH0gZnJvbSAicmVzdGZ1bC1yZWFjdCI7Cgpjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHsKICBjb25zdCB7IGRhdGE6IHJhbmRvbURvZ0ltYWdlIH0gPSB1c2VHZXQoewogICAgLy8gSW5mZXJyZWQgZnJvbSBSZXN0ZnVsUHJvdmlkZXIgaW4gaW5kZXguanMKICAgIHBhdGg6ICJicmVlZHMvaW1hZ2UvcmFuZG9tIiwKICB9KTsKCiAgcmV0dXJuIDxpbWcgYWx0PSJIZXJlJ3MgYSBnb29kIGJveWUhIiBzcmM9e3JhbmRvbURvZ0ltYWdlICYmIHJhbmRvbURvZ0ltYWdlLm1lc3NhZ2V9IC8+Owp9OwoKZXhwb3J0IGRlZmF1bHQgTXlDb21wb25lbnQ7CmBgYAoKTmF0dXJhbGx5LCB0aGUgcmVxdWVzdCB3aWxsIGJlIHNlbnQgdG8gdGhlIGZ1bGwgcGF0aCBgaHR0cHM6Ly9kb2cuY2VvL2FwaS9icmVlZHMvaW1hZ2UvcmFuZG9tYC4gVGhlIGZ1bGwgQVBJIG9mIHRoZSBgUmVzdGZ1bFByb3ZpZGVyYCBpcyBvdXRsaW5lZCBiZWxvdy4gRWFjaCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBjb21wb3NhYmxlIGFuZCBfY2FuIGJlXyBvdmVycmlkZGVuIGJ5IGBHZXRgIGNvbXBvbmVudHMgZnVydGhlciBkb3duIHRoZSB0cmVlLgoKIyMjIyBgUmVzdGZ1bFByb3ZpZGVyYCBBUEkKCkhlcmUncyBhIGZ1bGwgb3ZlcnZpZXcgb2YgdGhlIEFQSSBhdmFpbGFibGUgdGhyb3VnaCB0aGUgYFJlc3RmdWxQcm92aWRlcmAsIGFsb25nIHdpdGggaXRzIGRlZmF1bHRzLgoKYGBgdHN4Ci8vIEludGVyZmFjZQpleHBvcnQgaW50ZXJmYWNlIFJlc3RmdWxSZWFjdFByb3ZpZGVyUHJvcHM8VCA9IGFueT4gewogIC8qKiBUaGUgYmFja2VuZCBVUkwgd2hlcmUgdGhlIFJFU1RmdWwgcmVzb3VyY2VzIGxpdmUuICovCiAgYmFzZTogc3RyaW5nOwogIC8qKgogICAqIFRoZSBwYXRoIHRoYXQgZ2V0cyBhY2N1bXVsYXRlZCBmcm9tIGVhY2ggbGV2ZWwgb2YgbmVzdGluZwogICAqIHRha2luZyB0aGUgYWJzb2x1dGUgYW5kIHJlbGF0aXZlIG5hdHVyZSBvZiBlYWNoIHBhdGggaW50byBjb25zaWRlcmF0aW9uCiAgICovCiAgcGFyZW50UGF0aD86IHN0cmluZzsKICAvKioKICAgKiBBIGZ1bmN0aW9uIHRvIHJlc29sdmUgZGF0YSByZXR1cm4gZnJvbSB0aGUgYmFja2VuZCwgbW9zdCB0eXBpY2FsbHkKICAgKiB1c2VkIHdoZW4gdGhlIGJhY2tlbmQgcmVzcG9uc2UgbmVlZHMgdG8gYmUgYWRhcHRlZCBpbiBzb21lIHdheS4KICAgKi8KICByZXNvbHZlPzogUmVzb2x2ZUZ1bmN0aW9uPFQ+OwogIC8qKgogICAqIE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmZXRjaCByZXF1ZXN0LgogICAqLwogIHJlcXVlc3RPcHRpb25zPzogKCh1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHJlcXVlc3RCb2R5Pzogc3RyaW5nKSA9PiBQYXJ0aWFsPFJlcXVlc3RJbml0PikgfCBQYXJ0aWFsPFJlcXVlc3RJbml0PjsKICAvKioKICAgKiBUcmlnZ2VyIG9uIGVhY2ggZXJyb3IuCiAgICogRm9yIGBHZXRgIGFuZCBgTXV0YXRpb25gIGNhbGxzLCB5b3UgY2FuIGFsc28gY2FsbCBgcmV0cnlgIHRvIHJldHJ5IHRoZSBleGFjdCBzYW1lIHJlcXVlc3QuCiAgICogUGxlYXNlIG5vdGUgdGhhdCBpdCdzIHF1aXRlIGhhcmQgdG8gcmV0cmlldmUgdGhlIHJlc3BvbnNlIGRhdGEgYWZ0ZXIgYSByZXRyeSBtdXRhdGlvbiBpbiB0aGlzIGNhc2UuCiAgICogRGVwZW5kaW5nIG9mIHlvdXIgY2FzZSwgaXQgY2FuIGJlIGVhc2llciB0byBhZGQgYSBgbG9jYWxFcnJvck9ubHlgIG9uIHlvdXIgYE11dGF0ZWAgY29tcG9uZW50CiAgICogdG8gZGVhbCB3aXRoIHlvdXIgcmV0cnkgbG9jYWxseSBpbnN0ZWFkIG9mIGluIHRoZSBwcm92aWRlciBzY29wZS4KICAgKi8KICBvbkVycm9yPzogKGVycjogYW55LCByZXRyeTogKCkgPT4gUHJvbWlzZTxUIHwgbnVsbD4sIHJlc3BvbnNlPzogUmVzcG9uc2UpID0+IHZvaWQ7CiAgLyoqCiAgICogVHJpZ2dlciBvbiBlYWNoIHJlcXVlc3QuCiAgICovCiAgb25SZXF1ZXN0PzogKHJlcTogUmVxdWVzdCkgPT4gdm9pZDsKICAvKioKICAgKiBUcmlnZ2VyIG9uIGVhY2ggcmVzcG9uc2UuCiAgICovCiAgb25SZXNwb25zZT86IChyZXE6IFJlc3BvbnNlKSA9PiB2b2lkOwogIC8qKgogICAqIFF1ZXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIGVhY2ggcmVxdWVzdC4KICAgKi8KICBxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07CiAgLyoqCiAgICogUXVlcnkgcGFyYW1ldGVyIHN0cmluZ2lmeSBvcHRpb25zIGFwcGxpZWQgZm9yIGVhY2ggcmVxdWVzdC4KICAgKi8KICBxdWVyeVBhcmFtU3RyaW5naWZ5T3B0aW9ucz86IElTdHJpbmdpZnlPcHRpb25zOwp9CgovLyBVc2FnZQo8UmVzdGZ1bFByb3ZpZGVyCiAgYmFzZT0iU3RyaW5nISIKICByZXNvbHZlPXtkYXRhID0+IGRhdGF9CiAgcmVxdWVzdE9wdGlvbnM9eyh1cmwsIG1ldGhvZCwgcmVxdWVzdEJvZHkpID0+ICh7IGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogYXV0aFRva2VuIH0gfSl9Ci8+OwpgYGAKCkhlcmUncyBzb21lIGRvY3MgYWJvdXQgdGhlIFtSZXF1ZXN0SW5pdF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1JlcXVlc3QvUmVxdWVzdCkgdHlwZSBvZiByZXF1ZXN0IG9wdGlvbnMuCgojIyMgTG9hZGluZyBhbmQgRXJyb3IgU3RhdGVzCgpgdXNlR2V0YCBob29rcyByZXR1cm4gYW4gb2JqZWN0IHdpdGggbG9hZGluZyBhbmQgZXJyb3Igc3RhdGVzLCB0byBhbGxvdyBmb3Igc3RhdGUgaGFuZGxpbmcuIENvbnNpZGVyLAoKWyFbRWRpdCByZXN0ZnVsLXJlYWN0IGRlbW9zXShodHRwczovL2NvZGVzYW5kYm94LmlvL3N0YXRpYy9pbWcvcGxheS1jb2Rlc2FuZGJveC5zdmcpXShodHRwczovL2NvZGVzYW5kYm94LmlvL3MvcmVzdGZ1bC1yZWFjdC1kZW1vcy12amV0cykKCmBgYGpzeAppbXBvcnQgUmVhY3QgZnJvbSAicmVhY3QiOwppbXBvcnQgeyB1c2VHZXQgfSBmcm9tICJyZXN0ZnVsLXJlYWN0IjsKCmNvbnN0IE15Q29tcG9uZW50ID0gKCkgPT4gewogIGNvbnN0IHsgZGF0YTogcmFuZG9tRG9nSW1hZ2UsIGxvYWRpbmcgfSA9IHVzZUdldCh7CiAgICBwYXRoOiAiaHR0cHM6Ly9kb2cuY2VvL2FwaS9icmVlZHMvaW1hZ2UvcmFuZG9tIiwKICB9KTsKCiAgcmV0dXJuIGxvYWRpbmcgPyA8aDE+TG9hZGluZy4uLjwvaDE+IDogPGltZyBhbHQ9IkhlcmUncyBhIGdvb2QgYm95ZSEiIHNyYz17cmFuZG9tRG9nSW1hZ2UubWVzc2FnZX0gLz47Cn07CgpleHBvcnQgZGVmYXVsdCBNeUNvbXBvbmVudDsKYGBgCgojIyMgTGF6eSBGZXRjaGluZwoKSXQgaXMgcG9zc2libGUgdG8gdXNlIGEgYHVzZUdldGAgaG9vayBhbmQgZGVmZXIgdGhlIGZldGNoIHRvIGEgbGF0ZXIgc3RhZ2UuIFRoaXMgaXMgZG9uZSB3aXRoIHRoZSBgbGF6eWAgYm9vbGVhbiBwcm9wZXJ0eS4gVGhpcyBpcyBncmVhdCBmb3IgZGlzcGxheWluZyBVSSBpbW1lZGlhdGVseSwgYW5kIHRoZW4gYWxsb3dpbmcgcGFydHMgb2YgaXQgdG8gYmUgZmV0Y2hlZCBhcyBhIHJlc3BvbnNlIHRvIGFuIGV2ZW50OiBsaWtlIHRoZSBjbGljayBvZiBhIGJ1dHRvbiwgZm9yIGluc3RhbmNlLiBDb25zaWRlciwKClshW0VkaXQgcmVzdGZ1bC1yZWFjdCBkZW1vc10oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zdGF0aWMvaW1nL3BsYXktY29kZXNhbmRib3guc3ZnKV0oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL3Jlc3RmdWwtcmVhY3QtZGVtb3MtdmpldHMpCgpgYGBqc3gKaW1wb3J0IFJlYWN0IGZyb20gInJlYWN0IjsKaW1wb3J0IHsgdXNlR2V0IH0gZnJvbSAicmVzdGZ1bC1yZWFjdCI7Cgpjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHsKICBjb25zdCB7IGRhdGE6IHJhbmRvbURvZ0ltYWdlLCBsb2FkaW5nLCByZWZldGNoIH0gPSB1c2VHZXQoewogICAgcGF0aDogImh0dHBzOi8vZG9nLmNlby9hcGkvYnJlZWRzL2ltYWdlL3JhbmRvbSIsCiAgICBsYXp5OiB0cnVlLAogIH0pOwoKICByZXR1cm4gIXJhbmRvbURvZ0ltYWdlICYmIGxvYWRpbmcgPyAoCiAgICA8aDE+TG9hZGluZyE8L2gxPgogICkgOiAoCiAgICA8ZGl2PgogICAgICA8ZGl2PgogICAgICAgIDxoMT5XZWxjb21lIHRvIG15IGltYWdlIGdldHRlciE8L2gxPgogICAgICAgIDxidXR0b24gb25DbGljaz17KCkgPT4gcmVmZXRjaCgpfT5HZXQgYSBnb29kIGJveWUhPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2PntyYW5kb21Eb2dJbWFnZSAmJiA8aW1nIGFsdD0iSGVyZSdzIGEgZ29vZCBib3llISIgc3JjPXtyYW5kb21Eb2dJbWFnZS5tZXNzYWdlfSAvPn08L2Rpdj4KICAgIDwvZGl2PgogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBNeUNvbXBvbmVudDsKYGBgCgpUaGUgYWJvdmUgZXhhbXBsZSB3aWxsIGRpc3BsYXkgeW91ciBVSSwgYW5kIHRoZW4gbG9hZCBnb29kIGJveWVzIG9uIGRlbWFuZC4KCiMjIyBSZXNwb25zZSBSZXNvbHV0aW9uCgpTb21ldGltZXMsIHlvdXIgYmFja2VuZCByZXNwb25zZXMgYXJyaXZlIGluIGEgc2hhcGUgdGhhdCB5b3UgbWlnaHQgd2FudCB0byBhZGFwdCwgdmFsaWRhdGUsIG9yIHJlc3RydWN0dXJlLiBPdGhlciB0aW1lcywgbWF5YmUgeW91ciBkYXRhIGNvbnNpc3RlbnRseSBhcnJpdmVzIGluIGEgYHsgZGF0YToge30gfWAgc2hhcGUsIHdpdGggYGRhdGFgIGNvbnRhaW5pbmcgdGhlIHN0dWZmIHlvdSB3YW50LgoKQXQgdGhlIGBSZXN0ZnVsUHJvdmlkZXJgIGxldmVsLCBfb3JfIG9uIHRoZSBgdXNlR2V0YCBsZXZlbCwgYSBgcmVzb2x2ZWAgcHJvcCB3aWxsIHRha2UgdGhlIGRhdGEgYW5kIF9kbyBzdHVmZl8gdG8gaXQsIHByb3ZpZGluZyB0aGUgZmluYWwgcmVzb2x2ZWQgb3IgdW53cmFwcGVkIGRhdGEgdG8gdGhlIGNoaWxkcmVuLiBDb25zaWRlciwKClshW0VkaXQgcmVzdGZ1bC1yZWFjdCBkZW1vc10oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zdGF0aWMvaW1nL3BsYXktY29kZXNhbmRib3guc3ZnKV0oaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL3Jlc3RmdWwtcmVhY3QtZGVtb3MtdmpldHMpCgpgYGBqc3gKaW1wb3J0IFJlYWN0IGZyb20gInJlYWN0IjsKaW1wb3J0IHsgdXNlR2V0IH0gZnJvbSAicmVzdGZ1bC1yZWFjdCI7Cgpjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHsKICBjb25zdCB7IGRhdGE6IGltYWdlVXJsIH0gPSB1c2VHZXQoewogICAgcGF0aDogImh0dHBzOi8vZG9nLmNlby9hcGkvYnJlZWRzL2ltYWdlL3JhbmRvbSIsCiAgICByZXNvbHZlOiBpbWFnZSA9PiBpbWFnZSAmJiBpbWFnZS5tZXNzYWdlLAogIH0pOwoKICByZXR1cm4gaW1hZ2VVcmwgJiYgPGltZyBhbHQ9IkhlcmUncyBhIGdvb2QgYm95ZSEiIHNyYz17aW1hZ2VVcmx9IC8+Owp9OwoKZXhwb3J0IGRlZmF1bHQgTXlDb21wb25lbnQ7CmBgYAoKIyMjIERlYm91bmNpbmcgUmVxdWVzdHMKClNvbWUgcmVxdWVzdHMgZmlyZSBpbiByZXNwb25zZSB0byBhIHJhcGlkIHN1Y2Nlc3Npb24gb2YgdXNlciBldmVudHM6IHRoaW5ncyBsaWtlIGF1dG9jb21wbGV0ZSBvciByZXNpemluZyBhIHdpbmRvdy4gRm9yIHRoaXMgcmVhc29uLCB1c2VycyBzb21ldGltZXMgbmVlZCB0byB3YWl0IHVudGlsIGFsbCB0aGUga2V5c3Ryb2tlcyBhcmUgdHlwZWQgKHVudGlsIGV2ZXJ5dGhpbmcncyBfZG9uZV8pLCBiZWZvcmUgc2VuZGluZyBhIHJlcXVlc3QuCgpgcmVzdGZ1bC1yZWFjdGAgZXhwb3NlcyBhIGBkZWJvdW5jZWAgcHJvcCBvbiBgR2V0YCB0aGF0IGRvZXMgZXhhY3RseSB0aGlzLgoKSGVyZSdzIGFuIGV4YW1wbGU6CgpgYGBqc3gKY29uc3QgU2VhcmNoVGhpcyA9IHByb3BzID0+IHsKICBjb25zdCB7IGRhdGEgfSA9IHVzZUdldCh7CiAgICBwYXRoOiAiL2hlbGxvL3dvcmxkIiwKICAgIGRlYm91bmNlOiB0cnVlLAogIH0pOwoKICByZXR1cm4gKAogICAgPGRpdj4KICAgICAgPGgxPkhlcmUncyBhbGwgdGhlIHRoaW5ncyBJIHNlYXJjaDwvaDE+CiAgICAgIDx1bD4KICAgICAgICB7ZGF0YS5tYXAodGhpbmcgPT4gKAogICAgICAgICAgPGxpPnt0aGluZ308L2xpPgogICAgICAgICkpfQogICAgICA8L3VsPgogICAgPC9kaXY+CiAgKTsKfTsKYGBgCgpEZWJvdW5jZSBhbHNvIGFjY2VwdHMgYSBudW1iZXIsIHdoaWNoIHRlbGxzIGB1c2VHZXRgIGhvdyBsb25nIHRvIHdhaXQgdW50aWwgZG9pbmcgdGhlIHJlcXVlc3QuCgpgYGBkaWZmCmNvbnN0IFNlYXJjaFRoaXMgPSBwcm9wcyA9PiB7CiAgY29uc3QgeyBkYXRhIH0gPSB1c2VHZXQoewogICAgcGF0aDogIi9oZWxsby93b3JsZCIsCi0gICAgZGVib3VuY2U6IHRydWUsCisgICAgZGVib3VuY2U6IDIwMCAvKiBtcyAqLywKICB9KQoKICByZXR1cm4gPGRpdj4KICAgICAgICA8aDE+SGVyZSdzIGFsbCB0aGUgdGhpbmdzIEkgc2VhcmNoPC9oMT4KICAgICAgICA8dWw+CiAgICAgICAgICB7ZGF0YS5tYXAodGhpbmcgPT4gKAogICAgICAgICAgICA8bGk+e3RoaW5nfTwvbGk+CiAgICAgICAgICApKX0KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KfQpgYGAKCkl0IHVzZXMgW2xvZGFzaCdzIGRlYm91bmNlXShodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjEwI2RlYm91bmNlKSBmdW5jdGlvbiB1bmRlciB0aGUgaG9vZCwgc28geW91IGdldCBhbGwgdGhlIGJlbmVmaXRzIG9mIGl0IG91dCBvZiB0aGUgYm94IGxpa2Ugc28hCgpgYGBkaWZmCgpjb25zdCBTZWFyY2hUaGlzID0gcHJvcHMgPT4gewogIGNvbnN0IHsgZGF0YSB9ID0gdXNlR2V0KHsKICAgIHBhdGg6ICIvaGVsbG8vd29ybGQiLAotICAgIGRlYm91bmNlOiAyMDAsCisgICAgZGVib3VuY2U6IHsgd2FpdDogMjAwLCBvcHRpb25zOiB7IGxlYWRpbmc6IHRydWUsIG1heFdhaXQ6IDMwMCwgdHJhaWxpbmc6IGZhbHNlIH0gfSAvKiBtcyAqLywKICB9KQoKICByZXR1cm4gPGRpdj4KICAgICAgICA8aDE+SGVyZSdzIGFsbCB0aGUgdGhpbmdzIEkgc2VhcmNoPC9oMT4KICAgICAgICA8dWw+CiAgICAgICAgICB7ZGF0YS5tYXAodGhpbmcgPT4gKAogICAgICAgICAgICA8bGk+e3RoaW5nfTwvbGk+CiAgICAgICAgICApKX0KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KfQpgYGAKCiMjIyBUeXBlU2NyaXB0IEludGVncmF0aW9uCgpPbmUgb2YgdGhlIG1vc3QgcG93ZXJmdWwgZmVhdHVyZXMgb2YgYHJlc3RmdWwtcmVhY3RgIGlzIHRoYXQgZWFjaCBjb21wb25lbnQgZXhwb3J0ZWQgaXMgc3Ryb25nbHkgdHlwZWQsIGVtcG93ZXJpbmcgZGV2ZWxvcGVycyB0aHJvdWdoIHNlbGYtZG9jdW1lbnRpbmcgQVBJcy4KCiFbVXNpbmcgcmVzdGZ1bC1yZWFjdCBpbiBWUyBDb2RlXShhc3NldHMvbGFicy5naWYpCgojIyMgUXVlcnkgUGFyYW1ldGVycwoKQWxsIGNvbXBvbmVudHMgaW4gdGhpcyBsaWJyYXJ5IHN1cHBvcnQgcXVlcnkgcGFyYW1zIChgaHR0cHM6Ly9teS5zaXRlLz9xdWVyeT1wYXJhbWApIHZpYSBhIGBxdWVyeVBhcmFtc2AgcHJvcC4gRWFjaCBgdXNlR2V0YCwgYHVzZU11dGF0ZWAgYW5kIGBQb2xsYCBpbnN0YW5jZSBpcyBfZ2VuZXJpY18sIGhhdmluZyBhIHR5cGUgc2lnbmF0dXJlIG9mIGB1c2VHZXQ8VERhdGEsIFRFcnJvciwgVFF1ZXJ5UGFyYW1zPmAuIElmIGRlc2NyaWJlZCwgdGhlIGBxdWVyeVBhcmFtc2AgcHJvcCBpcyBfZnVsbHlfIHR5cGUtc2FmZSBpbiB1c2FnZSBhbmQgcHJvdmlkZXMgYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHkuCgohW0F1dG9jb21wbGV0aW9uIG9uIFF1ZXJ5UGFyYW1zXShhc3NldHMvaWRwLmdpZikKClBsZWFzZSBub3RlIHRoYXQgdGhlIGFib3ZlIGV4YW1wbGUgd2FzIGJ1aWx0IHVzaW5nIG91ciBbT3BlbkFQSSBnZW5lcmF0b3JdKCNjb2RlLWdlbmVyYXRpb24pIGluIG9yZGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIGNvbXBvbmVudCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoZSBlbnRpcmUgdHlwZS1zYWZlIGNvbXBvbmVudCBpbiBhIF92ZXJ5XyBxdWljayBhbmQgZWFzeSB3YXkuCgojIyMgTXV0YXRpb25zIHdpdGggYHVzZU11dGF0ZWAKCmByZXN0ZnVsLXJlYWN0YCBleHBvc2VzIGFuIGFkZGl0aW9uYWwgaG9vayBjYWxsZWQgYHVzZU11dGF0ZWAuIFRoZXNlIGNvbXBvbmVudHMgYWxsb3cgc2VuZGluZyByZXF1ZXN0cyB3aXRoIG90aGVyIEhUVFAgdmVyYnMgaW4gb3JkZXIgdG8gbXV0YXRlIGJhY2tlbmQgcmVzb3VyY2VzLgoKWyFbRWRpdCByZXN0ZnVsLXJlYWN0IGRlbW9zXShodHRwczovL2NvZGVzYW5kYm94LmlvL3N0YXRpYy9pbWcvcGxheS1jb2Rlc2FuZGJveC5zdmcpXShodHRwczovL2NvZGVzYW5kYm94LmlvL3MvcmVzdGZ1bC1yZWFjdC1kZW1vcy12amV0cykKCmBgYGpzeAppbXBvcnQgUmVhY3QgZnJvbSAicmVhY3QiOwppbXBvcnQgeyB1c2VHZXQsIHVzZU11dGF0ZSB9IGZyb20gInJlc3RmdWwtcmVhY3QiOwoKY29uc3QgYmFzZSA9ICJodHRwczovL2pzb25wbGFjZWhvbGRlci50eXBpY29kZS5jb20iOwoKY29uc3QgTGlzdEl0ZW0gPSAoeyBpZCwgY2hpbGRyZW4gfSkgPT4gewogIGNvbnN0IHsgbXV0YXRlOiBkZWwsIGxvYWRpbmcgfSA9IHVzZU11dGF0ZSh7CiAgICB2ZXJiOiAiREVMRVRFIiwKICAgIHBhdGg6IGAvcG9zdHMvYCwKICAgIGJhc2UsCiAgfSk7CgogIHJldHVybiAoCiAgICA8bGkga2V5PXtpZH0+CiAgICAgIHtsb2FkaW5nID8gKAogICAgICAgICJEZWxldGluZy4uLiIKICAgICAgKSA6ICgKICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IGRlbChpZCkudGhlbigoKSA9PiBhbGVydCgiRGVsZXRlZCBzdWNjZXNzZnVsbHkuIFByZXRlbmQgaXQgZ290IHJlbW92ZWQgZnJvbSB0aGUgRE9NLiIpKX0+CiAgICAgICAgICDinYwKICAgICAgICA8L2J1dHRvbj4KICAgICAgKX0KICAgICAgJm5ic3A7e2NoaWxkcmVufQogICAgPC9saT4KICApOwp9OwoKY29uc3QgTXlIdWdlTGlzdCA9ICgpID0+IHsKICBjb25zdCB7IGRhdGE6IHBvc3RzIH0gPSB1c2VHZXQoewogICAgcGF0aDogIi9wb3N0cyIsCiAgICBiYXNlLAogIH0pOwogIHJldHVybiAoCiAgICA8ZGl2PgogICAgICA8aDE+UG9zdHM8L2gxPgogICAgICA8dWw+CiAgICAgICAge3Bvc3RzICYmCiAgICAgICAgICBwb3N0cy5tYXAocG9zdCA9PiAoCiAgICAgICAgICAgIDxMaXN0SXRlbSBrZXk9e3Bvc3QuaWR9IGlkPXtwb3N0LmlkfT4KICAgICAgICAgICAgICB7cG9zdC50aXRsZX0KICAgICAgICAgICAgPC9MaXN0SXRlbT4KICAgICAgICAgICkpfQogICAgICA8L3VsPgogICAgPC9kaXY+CiAgKTsKfTsKZXhwb3J0IGRlZmF1bHQgTXlIdWdlTGlzdDsKYGBgCgpgdXNlTXV0YXRlYCBpcyBzdHJvbmdseSB0eXBlZCwgYW5kIHByb3ZpZGVzIGludGVsbGlnZW50IGF1dG9jb21wbGV0aW9uIG91dCBvZiB0aGUgYm94LCBjb21wbGV0ZSB3aXRoIG90aGVyIGF2YWlsYWJsZSBbSFRUUCB2ZXJic10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZGUvZG9jcy9XZWIvSFRUUC9NZXRob2RzKS4KCiFbTXV0YXRlXShhc3NldHMvbXV0YXRlLnBuZykKCkVhY2ggbXV0YXRpb24gcmV0dXJucyBhIHByb21pc2UgdGhhdCBjYW4gdGhlbiBiZSB1c2VkIHRvIHVwZGF0ZSBsb2NhbCBjb21wb25lbnQgc3RhdGUsIGRpc3BhdGNoIGFuIGFjdGlvbiwgb3IgZG8gc29tZXRoaW5nIGVsc2UgZGVwZW5kaW5nIG9uIHlvdXIgdXNlIGNhc2UuCgojIyMgTW9ja3MKCk5vIGJhY2tlbmQgc3VwcG9ydCB5ZXQgZm9yIHlvdXIgYW1hemluZyBmZWF0dXJlPyBOZWVkIHRvIGlzb2xhdGUgYW4gZWRnZSBjYXNlPyBZb3UgY2FuIGVhc2lseSBwcm92aWRlIGEgbW9jayB0byBgdXNlTXV0YXRlYCBhbmQgYHVzZUdldGAgdG8gYnlwYXNzIHRoZSBjbGFzc2ljIGZsb3cuCgovIVwgSWYgYG1vY2tgIG9wdGlvbiBpcyBwcm92aWRlZCwgbm8gcmVxdWVzdHMgd2lsbCBiZSBzZW5kIHRvIHRoZSBzZXJ2ZXIuIC8hXAoKYGBganN4CmltcG9ydCBSZWFjdCBmcm9tICJyZWFjdCI7CmltcG9ydCB7IHVzZUdldCwgdXNlTXV0YXRlIH0gZnJvbSAicmVzdGZ1bC1yZWFjdCI7Cgpjb25zdCBiYXNlID0gImh0dHBzOi8vanNvbnBsYWNlaG9sZGVyLnR5cGljb2RlLmNvbSI7CgovLyBNb2NrIHRoZSBgbXV0YXRlYCBoYW5kbGVyCmNvbnN0IHsgbXV0YXRlOiBkZWwsIGxvYWRpbmcgfSA9IHVzZU11dGF0ZSh7CiAgdmVyYjogIkRFTEVURSIsCiAgcGF0aDogYC9wb3N0cy9gLAogIGJhc2UsCiAgLy8gVGhpcyB3aWxsIGF2b2lkIGFueSBzZXJ2ZXIgY2FsbCBpbiBmYXZvciBvZiBtb2NrIHJlc3BvbnNlCiAgbW9jazogewogICAgbXV0YXRlOiBpZCA9PiBjb25zb2xlLmxvZyhgVGhlIGl0ZW0gJHtpZH0gd2FzIGRlbGV0ZWRgKSwKICB9LAp9KTsKCi8vIE1vY2sgdGhlIGBsb2FkaW5nYCwgc28gaXQncyBlYXN5IHRvIGlzb2xhdGUgdGhlIGxvYWRpbmcgc3RhdGUKY29uc3QgeyBkYXRhOiBwb3N0cyB9ID0gdXNlR2V0KHsKICBwYXRoOiAiL3Bvc3RzIiwKICBiYXNlLAogIC8vIFRoaXMgd2lsbCBhdm9pZCBhbnkgc2VydmVyIGNhbGwgaW4gZmF2b3Igb2YgbW9jayByZXNwb25zZQogIG1vY2s6IHsKICAgIGxvYWRpbmc6IHRydWUsCiAgfSwKfSk7CgovLyBNb2NrIHRoZSBgZXJyb3JgLCBzbyBpdCdzIGVhc3kgdG8gaXNvbGF0ZSB0aGUgZXJyb3Igc3RhdGUKY29uc3QgeyBkYXRhOiBwb3N0cyB9ID0gdXNlR2V0KHsKICBwYXRoOiAiL3Bvc3RzIiwKICBiYXNlLAogIC8vIFRoaXMgd2lsbCBhdm9pZCBhbnkgc2VydmVyIGNhbGwgaW4gZmF2b3Igb2YgbW9jayByZXNwb25zZQogIG1vY2s6IHsKICAgIGVycm9yOiAib2ggbm8hIiwKICB9LAp9KTsKYGBgCgojIyMgUG9sbGluZyB3aXRoIGBQb2xsYAoKYHJlc3RmdWwtcmVhY3RgIGFsc28gZXhwb3J0cyBhIGBQb2xsYCByZW5kZXIgcHJvcHMgY29tcG9uZW50IHRoYXQgd2lsbCBwb2xsIGEgYmFja2VuZCBlbmRwb2ludCBvdmVyIGEgcHJlZGV0ZXJtaW5lZCBpbnRlcnZhbCB1bnRpbCBhIHN0b3AgY29uZGl0aW9uIGlzIG1ldC4gQ29uc2lkZXIsCgpgYGBqc3gKaW1wb3J0IHsgUG9sbCB9IGZyb20gInJlc3RmdWwtcmVhY3QiCgo8UG9sbCBwYXRoPSIvZGVwbG95TG9ncyIgcmVzb2x2ZT17ZGF0YSA9PiBkYXRhICYmIGRhdGEuZGF0YX0+CiAgeyhkZXBsb3lMb2dzOiBEZXBsb3lMb2dbXSwgeyBsb2FkaW5nIH0pID0+CiAgICBsb2FkaW5nID8gKAogICAgICA8UGFnZVNwaW5uZXIgLz4KICAgICkgOiAoCiAgICAgIDxEYXRhVGFibGUKICAgICAgICBjb2x1bW5zPXtbImNyZWF0ZWRBdCIsICJkZXBsb3lJZCIsICJzdGF0dXMiLCAic2hhIiwgIm1lc3NhZ2UiXX0KICAgICAgICBvcmRlckJ5PSJjcmVhdGVkQXQiCiAgICAgICAgZGF0YT17ZGVwbG95TG9nc30KICAgICAgICBmb3JtYXR0ZXJzPXt7CiAgICAgICAgICBjcmVhdGVkQXQ6IChkOiBEZXBsb3lMb2dbImNyZWF0ZWRBdCJdKSA9PiB0aXRsZShmb3JtYXRSZWxhdGl2ZShkLCBEYXRlLm5vdygpKSksCiAgICAgICAgICBzaGE6IChpOiBEZXBsb3lMb2dbInNoYSJdKSA9PiBpICYmIGkuc2xpY2UoMCwgNyksCiAgICAgICAgfX0KICAgICAgLz4KICAgICkKICB9CjwvUG9sbD4KYGBgCgpgUG9sbGAgc3VwcG9ydHM6CgotIGFuIGBpbnRlcnZhbGAgcHJvcCB0aGF0IHdpbGwgcG9sbCBhdCBhIHNwZWNpZmllZCBpbnRlcnZhbCAoZGVmYXVsdHMgdG8gcG9sbGluZyAxIHNlY29uZCksIGFuZAotIGFuIGB1bnRpbGAgcHJvcCB0aGF0IGFjY2VwdHMgYSBjb25kaXRpb24gZXhwcmVzc2VkIGFzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZS4gV2hlbiB0aGlzIGNvbmRpdGlvbiBpcyBtZXQsIHBvbGxpbmcgd2lsbCBzdG9wLgoKICBUaGUgc2lnbmF0dXJlIG9mIHRoaXMgZnVuY3Rpb24gaXMgYChkYXRhOiBULCByZXNwb25zZTogUmVzcG9uc2VJbml0KSA9PiBib29sZWFuYC4gQXMgYSBkZXZlbG9wZXIsIHlvdSBoYXZlIGFjY2VzcyB0byB0aGUgcmV0dXJuZWQgZGF0YSwgYWxvbmcgd2l0aCB0aGUgcmVzcG9uc2Ugb2JqZWN0IGluIGNhc2UgeW91J2QgbGlrZSB0byBzdG9wIHBvbGxpbmcgaWYgYHJlc3BvbnNlLm9rID09PSBmYWxzZWAsIGZvciBleGFtcGxlLgoKQmVsb3cgaXMgYSBtb3JlIGNvbnZvbHV0ZWQgZXhhbXBsZSB0aGF0IGVtcGxveXMgbmVhcmx5IHRoZSBmdWxsIHBvd2VyIG9mIHRoZSBgUG9sbGAgY29tcG9uZW50LgoKYGBganN4CjxQb2xsIHBhdGg9Ii9zdGF0dXMiIHVudGlsPXsoXywgcmVzcG9uc2UpID0+IHJlc3BvbnNlICYmIHJlc3BvbnNlLm9rfSBpbnRlcnZhbD17MH0gbGF6eT4KICB7KF8sIHsgbG9hZGluZywgZXJyb3IsIGZpbmlzaGVkLCBwb2xsaW5nIH0sIHsgc3RhcnQgfSkgPT4gewogICAgcmV0dXJuIGxvYWRpbmcgPyAoCiAgICAgIDxQcm9ncmVzcyBlcnJvcj17ZXJyb3J9IC8+CiAgICApIDogKAogICAgICA8QnV0dG9uCiAgICAgICAgbG9hZGluZz17ZWRpdG9yTG9hZGluZyB8fCBwb2xsaW5nfQogICAgICAgIGNvbmRlbnNlZAogICAgICAgIGljb249IkV4dGVybmFsTGluayIKICAgICAgICBjb2xvcj0iZ2hvc3QiCiAgICAgICAgb25DbGljaz17KCkgPT4gewogICAgICAgICAgaWYgKGZpbmlzaGVkKSB7CiAgICAgICAgICAgIHJldHVybiB3aW5kb3cub3BlbihlZGl0b3IudXJsKTsKICAgICAgICAgIH0KICAgICAgICAgIHJlcXVlc3RFZGl0b3IoKTsKICAgICAgICAgIHN0YXJ0KCk7CiAgICAgICAgfX0KICAgICAgPgogICAgICAgIHtmaW5pc2hlZCA/ICJMYXVuY2ggRWRpdG9yIiA6ICJSZXF1ZXN0IEVkaXRvciJ9CiAgICAgIDwvQnV0dG9uPgogICAgKTsKICB9fQo8L1BvbGw+CmBgYAoKTm90ZSBmcm9tIHRoZSBwcmV2aW91cyBleGFtcGxlLCBgUG9sbGAgYWxzbyBleHBvc2VzIG1vcmUgc3RhdGVzOiBgZmluaXNoZWRgLCBhbmQgYHBvbGxpbmdgIHRoYXQgYWxsb3cgYmV0dGVyIGZsb3cgY29udHJvbCwgYXMgd2VsbCBhcyBsYXp5LXN0YXJ0IHBvbGxzIHRoYXQgY2FuIGFsc28gYmUgcHJvZ3JhbW1hdGljYWxseSBzdG9wcGVkIGF0IGEgbGF0ZXIgc3RhZ2UuCgojIyMjIExvbmcgUG9sbGluZwoKQXQgQ29udGlhbW8sIHdlIGhhdmUgYSBbcG93ZXJmdWwgTG9uZyBQb2xsaW5nIHNwZWNpZmljYXRpb25dKGRvY3MvY29udGlhbW8tbG9uZy1wb2xsLm1kKSBpbiBwbGFjZSB0aGF0IGFsbG93cyB1cyB0byBidWlsZCByZWFsLXRpbWUgYXBwcyBvdmVyIEhUVFBTLCBhcyBvcHBvc2VkIHRvIFdlYlNvY2tldHMuIEF0IGEgZ2xhbmNlIHRoZSBzcGVjaWZpY2F0aW9uIGNhbiBiZSBkaXN0aWxsZWQgaW50bzoKCi0gV2ViIFVJIHNlbmRzIGEgcmVxdWVzdCB3aXRoIGEgYFByZWZlcmAgaGVhZGVyIHRoYXQgY29udGFpbnM6CiAgLSBhIHRpbWUsIGluIHNlY29uZHMsIHRvIGtlZXAgcmVxdWVzdHMgb3BlbiAoYDYwc2ApLCBhbmQKICAtIGEgKipwb2xsaW5nIGluZGV4KiogdGhhdCBpcyBhIHNlcnZlci1zZW50IGhhc2ggYGFocGllZ2hgLgogIC0gYWxsIHRvZ2V0aGVyLCB0aGUgY2xpZW50IHNlbmRzIGEgcmVxdWVzdCB3aXRoIGEgaGVhZGVyIGBQcmVmZXI6IHdhaXQ9NjBzO2luZGV4PTkzOTE5MmAuCi0gVGhlIGJhY2tlbmQgc2VydmVyIHJlc3BvbmRzLCBlaXRoZXIgd2l0aDoKICAtIGFuIGVtcHR5IHJlc3BvbnNlIHdpdGggc3RhdHVzIGAzMDQgTm90IE1vZGlmaWVkYAogIC0gYSBzdWNjZXNzZnVsIHJlc3BvbnNlIHdpdGggZGF0YSBhbmQgYSBuZXcgKipwb2xsaW5nIGluZGV4KiouCgpUaGUgcG9sbGluZyBpbmRleCBhbGxvdyB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyIHRvIHN0YXkgaW4gc3luYzogdGhlIGNsaWVudCBzYXlzICJ0aGUgbGFzdCBzdHVmZiBJIGdvdCB3YXMgYXQgdGhpcyBpbmRleCIuIFRoZSBzZXJ2ZXIgc2F5cyAib2gsIGxldCBtZSBnZXQgeW91IHVwIHRvIHNwZWVkIGFuZCBzZW5kIHlvdSBhIG5ldyBpbmRleCIuCgpWaXN1YWxseSwgdGhpcyBpcyByZXByZXNlbnRlZCBhcyBiZWxvdy4KCiFbQ29udGlhbW8gUG9sbF0oZG9jcy9sb25nLXBvbGwtZmxvdy5wbmcpLgoKVG8gZ2V0IHRoaXMgZnVuY3Rpb25hbGl0eSBpbiBgcmVzdGZ1bC1yZWFjdGAsIHRoaXMgbWVhbnMgc3BlY2lmeWluZyBhIGB3YWl0YCBwcm9wIG9uIHlvdXIgYFBvbGxgIGNvbXBvbmVudCwgcHJvdmlkZWQgeW91ciBzZXJ2ZXIgaW1wbGVtZW50cyB0aGlzIHNwZWNpZmljYXRpb24gYXMgd2VsbC4KCiMjIyMgW0Z1bGwgYFBvbGxgIENvbXBvbmVudCBBUEldKHNyYy9Qb2xsLnRzeCNMNTMtTDEwMSkKCiMjIyMgUG9sbGluZyBhbmQgQ29kZSBHZW5lcmF0aW9uCgpCeSBkZWZhdWx0IHdlIGdlbmVyYXRlIGEgYFBvbGxgIGNvbXBvbmVudCB3aGVuIHRoZSBgcHJlZmVyYCBoZWFkZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBPcGVuQVBJL1N3YWdnZXIgc3BlY3MgKG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBkZXNpZ24gZGVjaXNpb24gaGVyZSAtPiBodHRwczovL2dpdGh1Yi5jb20vY29udGlhbW8vcmVzdGZ1bC1yZWFjdCNsb25nLXBvbGxpbmcpLgoKV2UgZG8gbm90IGdlbmVyYXRlIGFuIGVxdWl2YWxlbnQgaG9vayB2ZXJzaW9uLiBQb2xsaW5nIGlzIHF1aXRlIHRyaXZpYWwgaW4gYSByZWFjdCBob29rLCBzbyB3ZSB1c3VhbGx5IGp1c3QgdXNlIGB1c2VFZmZlY3RgIHdoZW4gd2UgbmVlZCBzb21lIHBvbGxpbmcgZmVhdHVyZS4KCkV4YW1wbGU6CgpgYGB0cwovLyBQb2xsIGRhdGEgaWYgbm8gY29tcGxldGVkQXQKdXNlRWZmZWN0KCgpID0+IHsKICBpZiAoZXJyb3IpIHsKICAgIHJldHVybiBvbkVycm9yKCk7CiAgfSBlbHNlIGlmIChkYXRhICYmICFkYXRhLmNvbXBsZXRlZEF0KSB7CiAgICBjb25zdCB0aW1lcklkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gcmVmZXRjaCgpLCAxMDAwKTsKICAgIHJldHVybiAoKSA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySWQpOwogIH0gZWxzZSB7CiAgICByZXR1cm47CiAgfQp9LCBbZGF0YSwgcmVmZXRjaCwgZXJyb3JdKTsKYGBgCgojIyMgQ29kZSBHZW5lcmF0aW9uIGZyb20gT3BlbkFQSSAvIFN3YWdnZXIgc3BlY3MKCmByZXN0ZnVsLXJlYWN0YCBpcyBhYmxlIHRvIGdlbmVyYXRlIFJlYWN0IGhvb2tzIHdpdGggYXBwcm9wcmlhdGUgdHlwZS1zaWduYXR1cmVzIChUeXBlU2NyaXB0KSBmcm9tIGFueSB2YWxpZCBPcGVuQVBJIHYzIG9yIFN3YWdnZXIgdjIgc3BlY2lmaWNhdGlvbiwgZWl0aGVyIGluIGB5YW1sYCBvciBganNvbmAgZm9ybWF0cy4KCiMjIyMgVXNhZ2UKClR5cGUtc2FmZSBSZWFjdCBkYXRhIGZldGNoZXJzIGNhbiBiZSBnZW5lcmF0ZWQgZnJvbSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKLSBgcmVzdGZ1bC1yZWFjdCBpbXBvcnQgLS1maWxlIE1ZX09QRU5BUElfU1BFQy55YW1sIC0tb3V0cHV0IG15LWF3ZXNvbWUtZ2VuZXJhdGVkLXR5cGVzLnRzeGAKClRoaXMgY29tbWFuZCBjYW4gYmUgaW52b2tlZCBieSBfZWl0aGVyXzoKCi0gSW5zdGFsbGluZyBgcmVzdGZ1bC1yZWFjdGAgZ2xvYmFsbHkgYW5kIHJ1bm5pbmcgaXQgaW4gdGhlIHRlcm1pbmFsOiBgbnBtIGkgLWcgcmVzdGZ1bC1yZWFjdGAsIG9yCi0gQWRkaW5nIGEgYHNjcmlwdGAgdG8geW91ciBgcGFja2FnZS5qc29uYCBsaWtlIHNvOgoKYGBgZGlmZgogICAgICAic2NyaXB0cyI6IHsKICAgICAgICAic3RhcnQiOiAid2VicGFjay1kZXYtc2VydmVyIiwKICAgICAgICAiYnVpbGQiOiAid2VicGFjayAtcCIsCisgICAgICAgImdlbmVyYXRlLWZldGNoZXIiOiAicmVzdGZ1bC1yZWFjdCBpbXBvcnQgLS1maWxlIE1ZX1NXQUdHRVJfRE9DUy5qc29uIC0tb3V0cHV0IEZFVENIRVJTLnRzeCIKICAgICAgfQpgYGAKCllvdXIgY29tcG9uZW50cyBjYW4gdGhlbiBiZSBnZW5lcmF0ZWQgYnkgcnVubmluZyBgbnBtIHJ1biBnZW5lcmF0ZS1mZXRjaGVyYC4gT3B0aW9uYWxseSwgd2UgcmVjb21tZW5kIGxpbnRpbmcvcHJldHRpZnlpbmcgdGhlIG91dHB1dCBmb3IgcmVhZGFiaWxpdHkgbGlrZSBzbzoKCmBgYGRpZmYKICAgICAgInNjcmlwdHMiOiB7CiAgICAgICAgInN0YXJ0IjogIndlYnBhY2stZGV2LXNlcnZlciIsCiAgICAgICAgImJ1aWxkIjogIndlYnBhY2sgLXAiLAogICAgICAgICJnZW5lcmF0ZS1mZXRjaGVyIjogInJlc3RmdWwtcmVhY3QgaW1wb3J0IC0tZmlsZSBNWV9TV0FHR0VSX0RPQ1MuanNvbiAtLW91dHB1dCBGRVRDSEVSUy50c3giLAorICAgICAgICJwb3N0Z2VuZXJhdGUtZmV0Y2hlciI6ICJwcmV0dGllciBGRVRDSEVSUy5kLnRzeCAtLXdyaXRlIgogICAgICB9CmBgYAoKIyMjIyBWYWxpZGF0aW9uIG9mIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24KClRvIGVuZm9yY2UgdGhlIGJlc3QgcXVhbGl0eSBhcyBwb3NzaWJsZSBvZiBzcGVjaWZpY2F0aW9uLCB3ZSBoYXZlIGludGVncmF0ZWQgdGhlIGFtYXppbmcgW09wZW5BUEkgbGludGVyIGZyb20gSUJNXShodHRwczovL2dpdGh1Yi5jb20vSUJNL29wZW5hcGktdmFsaWRhdG9yKS4gV2Ugc3Ryb25nbHkgZW5jb3VyYWdlIHlvdSB0byBzZXR1cCB5b3VyIGN1c3RvbSBydWxlcyB3aXRoIGEgYC52YWxpZGF0ZXJjYCBmaWxlLCB5b3UgY2FuIGZpbmQgYWxsIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGNvbmZpZ3VyYXRpb24gW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9JQk0vb3BlbmFwaS12YWxpZGF0b3IvI2NvbmZpZ3VyYXRpb24pLgoKVG8gYWN0aXZhdGUgdGhpcywgYWRkIGEgYC0tdmFsaWRhdGlvbmAgZmxhZyB0byB5b3VyIGByZXN0ZnVsLXJlYWN0YCBjYWxsLgoKIyMjIyBBUEkgVmVyc2lvbmluZwoKVGhlIGdlbmVyYXRlZCBmaWxlIHdpbGwgaW5jbHVkZSBhbiBleHBvcnRlZCBjb25zdGFudCBgU1BFQ19WRVJTSU9OYCB0aGF0IHdpbGwgY29udGFpbiB0byB0aGUgT3BlbkFQSSBgaW5mby52ZXJzaW9uYCBwcm9wZXJ0eSdzIHZhbHVlLgoKIyMjIyBJbXBvcnQgZnJvbSBVUkwKCkFkZGluZyB0aGUgYC0tdXJsYCBmbGFnIHRvIGByZXN0ZnVsLXJlYWN0IGltcG9ydGAgaW5zdGVhZCBvZiB1c2luZyB0aGUgYC0tZmlsZWAgZmxhZyB3aWxsIGF0dGVtcHQgdG8gZmV0Y2ggdGhlIHNwZWMgZnJvbSB0aGF0IGVuZHBvaW50LgoKLSBgcmVzdGZ1bC1yZWFjdCBpbXBvcnQgLS11cmwgaHR0cHM6Ly9hcGkubWluZS5jb20vb3BlbmFwaS5qc29uIC0tb3V0cHV0IG15LWF3ZXNvbWUtZ2VuZXJhdGVkLXR5cGVzLnRzeGAKCiMjIyMgSW1wb3J0IGZyb20gR2l0SHViCgpBZGRpbmcgdGhlIGAtLWdpdGh1YmAgZmxhZyB0byBgcmVzdGZ1bC1yZWFjdCBpbXBvcnRgIGluc3RlYWQgb2YgdXNpbmcgdGhlIGAtLWZpbGVgIGZsYWcgYWxsb3dzIHVzIHRvICoqY3JlYXRlIFJlYWN0IGNvbXBvbmVudHMgZnJvbSBhbiBPcGVuQVBJIHNwZWMgX3JlbW90ZWx5IGhvc3RlZCBvbiBHaXRIdWIuXyoqIDxzdXA+Xyhob3cgaXMgdGhpcyByZWFsIGxpZmVfIPCflKUgXylfPC9zdXA+CgpUbyBnZW5lcmF0ZSBjb21wb25lbnRzIGZyb20gcmVtb3RlIHNwZWNpZmljYXRpb25zLCB5b3UnbGwgbmVlZCB0byBmb2xsb3cgdGhlIGZvbGxvd2luZyBzdGVwczoKCjEuICBWaXNpdCBbeW91ciBHaXRIdWIgc2V0dGluZ3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZXR0aW5ncy90b2tlbnMpLgoxLiAgQ2xpY2sgKipHZW5lcmF0ZSBOZXcgVG9rZW4qKiBhbmQgY2hvb3NlIHRoZSBmb2xsb3dpbmc6CgogICAgICAgIFRva2VuIERlc2NyaXB0aW9uOiAoZW50ZXIgYW55dGhpbmcpCiAgICAgICAgU2NvcGVzOgogICAgICAgICAgICBbWF0gcmVwbwogICAgICAgICAgICAgICAgW1hdIHJlcG86c3RhdHVzCiAgICAgICAgICAgICAgICBbWF0gcmVwb19kZXBsb3ltZW50CiAgICAgICAgICAgICAgICBbWF0gcHVibGljX3JlcG8KICAgICAgICAgICAgICAgIFtYXSByZXBvOmludml0ZQogICAgICAgICAgICAgICAgW1hdIHNlY3VyaXR5X2V2ZW50cwoKMS4gIENsaWNrICoqR2VuZXJhdGUgdG9rZW4qKi4KMS4gIENvcHkgdGhlIGdlbmVyYXRlZCBzdHJpbmcuCjEuICBPcGVuIGEgdGVybWluYWwgYW5kIHJ1biBgcmVzdGZ1bC1yZWFjdCBpbXBvcnQgLS1naXRodWIgdXNlcm5hbWU6cmVwbzpicmFuY2g6cGF0aC90by9vcGVuYXBpLnlhbWwgLS1vdXRwdXQgTVlfRkVUQ0hFUlMudHN4YCwgc3Vic3RpdHV0aW5nIHRoaW5ncyB3aGVyZSBuZWNlc3NhcnkuCjEuICBZb3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSB0b2tlbi4KMS4gIFBhc3RlIHlvdXIgdG9rZW4uCjEuICBZb3Ugd2lsbCBiZSBhc2tlZCBpZiB5b3UnZCBsaWtlIHRvIHNhdmUgaXQgZm9yIGxhdGVyLiBUaGlzIGlzIF9lbnRpcmVseV8gdXAgdG8geW91IGFuZCBjb21wbGV0ZWx5IHNhZmU6IGl0IGlzIHNhdmVkIGluIHlvdXIgaG9tZSBkaXJlY3RvcnkuCjEuICBZb3UncmUgZG9uZSEg8J+OiQoKTm90ZTogRm9yIENJIGVudmlyb25tZW50LCB5b3UgY2FuIGFsc28gcHJvdmlkZSB0aGUgZ2l0aHViIHRva2VuIHdpdGggdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGNhbGxlZCBgR0lUSFVCX1RPS0VOYAoKIyMjIyBUcmFuc2Zvcm1pbmcgYW4gT3JpZ2luYWwgU3BlYwoKSW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IG5lZWQgdG8gYXVnbWVudCBhbiBleGlzdGluZyBPcGVuQVBJIHNwZWNpZmljYXRpb24gb24gdGhlIGZseSwgZm9yIGNvZGUtZ2VuZXJhdGlvbiBwdXJwb3Nlcy4gT3VyIENMSSBtYWtlcyB0aGlzIHF1aXRlIHN0cmFpZ2h0Zm9yd2FyZDoKCmBgYGJhc2gKICByZXN0ZnVsLXJlYWN0IGltcG9ydCAtLWZpbGUgbXlzcGVjLnlhbWwgLS1vdXRwdXQgbXliZXR0ZXJjb21wb25lbnRzLnRzeCAtLXRyYW5zZm9ybWVyIHBhdGgvdG8vbXktdHJhbnNmb3JtZXIuanMKYGBgCgpUaGUgZnVuY3Rpb24gc3BlY2lmaWVkIGluIGAtLXRyYW5zZm9ybWVyYCBpcyBwdXJlOiBpdCBpbXBvcnRzIHlvdXIgYC0tZmlsZWAsIHRyYW5zZm9ybXMgaXQsIGFuZCBwYXNzZXMgdGhlIGF1Z21lbnRlZCBPcGVuQVBJIHNwZWNpZmljYXRpb24gdG8gYHJlc3RmdWwtcmVhY3RgJ3MgZ2VuZXJhdG9yLiBIZXJlJ3MgaG93IGl0IGNhbiBiZSB1c2VkOgoKYGBgdHMKLy8gL3BhdGgvdG8vbXktdHJhbnNmb3JtZXIuanMKCi8qKgogKiBUcmFuc2Zvcm1lciBmdW5jdGlvbiBmb3IgcmVzdGZ1bC1yZWFjdC4KICoKICogQHBhcmFtIHtPcGVuQVBJT2JqZWN0fSBzY2hlbWEKICogQHJldHVybiB7T3BlbkFQSU9iamVjdH0KICovCm1vZHVsZS5leHBvcnRzID0gaW5wdXRTY2hlbWEgPT4gKHsKICAuLi5pbnB1dFNjaGVtYSwKICAvLyBQbGFjZSB5b3VyIGF1Z21lbnRhdGlvbnMgaGVyZQogIHBhdGhzOiBPYmplY3QuZW50cmllcyhzY2hlbWEucGF0aHMpLnJlZHVjZSgKICAgIChtZW0sIFtwYXRoLCBwYXRoSXRlbV0pID0+ICh7CiAgICAgIC4uLm1lbSwKICAgICAgW3BhdGhdOiBPYmplY3QuZW50cmllcyhwYXRoSXRlbSkucmVkdWNlKAogICAgICAgIChwYXRoSXRlbU1lbSwgW3ZlcmIsIG9wZXJhdGlvbl0pID0+ICh7CiAgICAgICAgICAuLi5wYXRoSXRlbU1lbSwKICAgICAgICAgIFt2ZXJiXTogewogICAgICAgICAgICAuLi5maXhPcGVyYXRpb25JZChwYXRoLCB2ZXJiLCBvcGVyYXRpb24pLAogICAgICAgICAgfSwKICAgICAgICB9KSwKICAgICAgICB7fSwKICAgICAgKSwKICAgIH0pLAogICAge30sCiAgKSwKfSk7CmBgYAoKIyMjIyBBZHZhbmNlZCBjb25maWd1cmF0aW9uCgpgcmVzdGZ1bC1yZWFjdGAgc3VwcG9ydHMgdGhlIGNvbmNlcHQgb2YgInNjaGVtYSBzdGl0Y2hpbmciIGluIGEgUkVTVGZ1bCBlY29zeXN0ZW0gYXMgd2VsbC4gV2UgYXJlIGFibGUgdG8gdGllIG11bHRpcGxlIGJhY2tlbmRzIHRvZ2V0aGVyIGFuZCBnZW5lcmF0ZSBjb2RlIHVzaW5nIGEgc2luZ2xlIGNvbmZpZ3VyYXRpb24gZmlsZSwgYHJlc3RmdWwtcmVhY3QuY29uZmlnLmpzYAoKVG8gYWN0aXZhdGUgdGhpcyAiYWR2YW5jZWQgbW9kZSIsIHJlcGxhY2UgYWxsIGZsYWdzIGZyb20geW91ciBgcmVzdGZ1bC1yZWFjdGAgY2FsbCB3aXRoIHRoZSBjb25maWcgZmxhZzogYC0tY29uZmlnIHJlc3RmdWwtcmVhY3QuY29uZmlnLmpzYCAob3IgYW55IGZpbGVuYW1lIHRoYXQgeW91IHdhbnQpLgoK4pqg77iPICoqTm90ZToqKiB1c2luZyBhIGNvbmZpZyBmaWxlIG1ha2VzIHVzZSBvZiBhbGwgb2YgdGhlIG9wdGlvbnMgY29udGFpbmVkIHRoZXJlaW4sIGFuZCBpZ25vcmVzIGFsbCBvdGhlciBDTEkgZmxhZ3MuCgojIyMjIyBDb25maWcgRmlsZSBGb3JtYXQKCmBgYHRzCmludGVyZmFjZSBSZXN0ZnVsUmVhY3RDb25maWcgewogIFtiYWNrZW5kOiBzdHJpbmddOiB7CiAgICAvLyBjbGFzc2ljIGNvbmZpZ3VyYXRpb24KICAgIG91dHB1dDogc3RyaW5nOwogICAgZmlsZT86IHN0cmluZzsKICAgIGdpdGh1Yj86IHN0cmluZzsKICAgIHRyYW5zZm9ybWVyPzogc3RyaW5nOwogICAgdmFsaWRhdGlvbj86IGJvb2xlYW47CiAgICBza2lwUmVhY3Q/OiBib29sZWFuOwoKICAgIC8vIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24KICAgIGN1c3RvbUltcG9ydD86IHN0cmluZzsKICAgIGN1c3RvbVByb3BzPzogewogICAgICBiYXNlPzogc3RyaW5nOwogICAgfTsKICAgIHBhdGhQYXJhbWV0ZXJzRW5jb2RpbmdNb2RlPzogInVyaUNvbXBvbmVudCIgfCAicmZjMzk4NiI7CiAgICBjdXN0b21HZW5lcmF0b3I/OiAoZGF0YTogewogICAgICBjb21wb25lbnROYW1lOiBzdHJpbmc7CiAgICAgIHZlcmI6IHN0cmluZzsKICAgICAgcm91dGU6IHN0cmluZzsKICAgICAgZGVzY3JpcHRpb246IHN0cmluZzsKICAgICAgZ2VuZXJpY3NUeXBlczogc3RyaW5nOwogICAgICBvcGVyYXRpb246IE9wZXJhdGlvbk9iamVjdDsKICAgICAgcGFyYW1zSW5QYXRoOiBzdHJpbmdbXTsKICAgICAgcGFyYW1zVHlwZXM6IHN0cmluZzsKICAgIH0pID0+IHN0cmluZzsKICB9Owp9CmBgYAoKIyMjIyMgQ29uZmlnIEZpbGUgRXhhbXBsZQoKYGBganMKLy8gcmVzdGZ1bC1yZWFjdC5jb25maWcuanMKLyoqCiAqIFJlc3RmdWwtcmVhY3QgY29uZmlndXJhdGlvbi4KICoKICogQHR5cGUge2ltcG9ydCgicmVzdGZ1bC1yZWFjdC9kaXN0L2Jpbi9jb25maWciKS5SZXN0ZnVsUmVhY3RBZHZhbmNlZENvbmZpZ3VyYXRpb259CiAqLwptb2R1bGUuZXhwb3J0cyA9IHsKICBteUZpcnN0QmFja2VuZDogewogICAgb3V0cHV0OiAic3JjL3F1ZXJpZXMvbXlGaXJzdEJhY2tlbmQudHN4IiwKICAgIGZpbGU6ICJzcGVjcy9teS1maXJzdC1iYWNrZW5kLnlhbWwiLAogICAgY3VzdG9tUHJvcHM6IHsKICAgICAgYmFzZTogYCJodHRwOi8vbXktZmlyc3QtYmFja2VuZC5jb20iYCwKICAgIH0sCiAgfSwKICBjb25maWd1cmFibGVCYWNrZW5kOiB7CiAgICBvdXRwdXQ6ICJzcmMvcXVlcmllcy9jb25maWd1cmFibGVCYWNrZW5kLnRzeCIsCiAgICBnaXRodWI6ICJjb250aWFtbzpyZXN0ZnVsLXJlYWN0Om1hc3Rlcjpkb2NzL3N3YWdnZXIuanNvbiIsCiAgICBjdXN0b21JbXBvcnQ6IGBpbXBvcnQgeyBnZXRDb25maWcgfSBmcm9tICIuLi9jb21wb25lbnRzL0NvbmZpZy50c3giO2AsCiAgICBjdXN0b21Qcm9wczogewogICAgICBiYXNlOiBge2dldENvbmZpZygiYmFja2VuZEJhc2VQYXRoIil9YCwKICAgIH0sCiAgfSwKfTsKYGBgCgpgYGBqc29uCi8vIHBhY2thZ2UuanNvbgp7CiAgInNjcmlwdHMiOiB7CiAgICAiZ2VuIjogInJlc3RmdWwtcmVhY3QgaW1wb3J0IC0tY29uZmlnIHJlc3RmdWwtcmVhY3QuY29uZmlnLmpzIiwKICAgICJnZW4tZmlyc3QiOiAicmVzdGZ1bC1yZWFjdCBpbXBvcnQgLS1jb25maWcgcmVzdGZ1bC1yZWFjdC5jb25maWcuanMgbXlGaXJzdEJhY2tlbmQiCiAgfQp9CmBgYAoKIyMjIyMgQ3VzdG9tIGdlbmVyYXRvcgoKVG8gc3VwcG9ydCBldmVuIG1vcmUgYWR2YW5jZWQgdXNlY2FzZXMgKGxpa2UgYSBwcm9taXNlIGJhc2UgQVBJLCBtb2NrIGdlbmVyYXRvciBvciBhbnl0aGluZyBlbHNlIHRoYXQgY2FuIGluZmVyIGZyb20geW91ciBzcGVjcyksIHlvdSBjYW4gZGVmaW5lIHlvdXIgb3duIHRlbXBsYXRlIGluIGBjdXN0b21HZW5lcmF0b3JgLiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbCBmb3IgZWFjaCByb3V0ZSB3aXRoIHNvbWUgdXNlZnVsIGNvbXB1dGVkIHZhbHVlcyAoc2VlIHRoZSB0eXBlcyBhYm92ZSkgYW5kIHRoZSByZXN1bHRlZCBzdHJpbmcgd2lsbCBiZSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGZpbGUuCgpZb3UgY2FuIHNlZSBhIGNvbmNyZXRlIHVzYWdlIGluc2lkZSB0aGUgYGV4YW1wbGVzYCBmb2xkZXIgYW5kIHRyeSB5b3Vyc2VsZiBpbiB0aGlzIHJlcG9zaXRvcnkgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgotIGB5YXJuIGJ1aWxkYAotIGB5YXJuIGV4YW1wbGU6YWR2YW5jZWQgcGV0c3RvcmUtY3VzdG9tLWZldGNoYAoKWW91IGNhbiBpbnNwZWN0IHRoZSByZXN1bHQgaW5zaWRlIGAvZXhhbXBsZXMvcGV0c3RvcmVGcm9tRmlsZVNwZWNXaXRoQ3VzdG9tRmV0Y2gudHN4YAoKIyMjIyMgT25seSBnZW5lcmF0aW5nIGN1c3RvbSBjb2RlIChubyByZWFjdCBob29rcy9jb21wb25lbnRzKQoKSW4gc29tZSBjYXNlcyB5b3UgbWlnaHQgd2FudCB0byB1c2UgdGhlIGZhbWlsaWFyIHJlc3RmdWwtcmVhY3QgdG8gZ2VuZXJhdGUgY29kZSBmb3Igbm9uLXJlYWN0IGVudmlyb25tZW50cyAoZS5nLiBwcm9taXNlLWJhc2VkIGZldGNoZXJzIGZvciBub2RlanMgb3Igb3RoZXIgZnJhbWV3b3JrcykuIEluIHRoaXMgY2FzZSwgeW91IGNhbiBkaXNhYmxlIHJlYWN0IGNvZGUgZ2VuZXJhdGlvbiBhbHRvZ2V0aGVyIGJ5IHBhc3NpbmcgdGhlIGAtLXNraXBSZWFjdGAgZmxhZyBvciwgaWYgeW91IGFyZSB1c2luZyBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgc2V0dGluZyBgc2tpcFJlYWN0OiB0cnVlYC4KCldoZW4gc2V0LCBvbmx5IHlvdXIgY3VzdG9tIGdlbmVyYXRvcnMgd2lsbCBiZSBleGVjdXRlZC4KCiMjIENvbnRyaWJ1dGluZwoKQWxsIGNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUg4oCTIGVzcGVjaWFsbHk6CgotIGRvY3VtZW50YXRpb24sCi0gYnVnIHJlcG9ydHMgYW5kIGlzc3VlcywKLSBjb2RlIGNvbnRyaWJ1dGlvbnMuCgojIyMgQ29kZQoKSWYgeW91J2QgbGlrZSB0byBhY3RpdmVseSBkZXZlbG9wIG9yIGhlbHAgbWFpbnRhaW4gdGhpcyBwcm9qZWN0IHRoZW4gdGhlcmUgYXJlIGV4aXN0aW5nIHRlc3RzIGFnYWluc3Qgd2hpY2ggeW91IGNhbiB0ZXN0IHRoZSBsaWJyYXJ5IHdpdGguIFR5cGljYWxseSwgdGhpcyBsb29rcyBsaWtlCgotIGBnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206Y29udGlhbW8vcmVzdGZ1bC1yZWFjdC5naXRgCi0gYGNkIHJlc3RmdWwtcmVhY3RgCi0gYHlhcm4gaW5zdGFsbGAKLSBgeWFybiB0ZXN0IC0td2F0Y2hgCgpGcm9tIHRoZXJlLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc3RhcnQgZGV2ZWxvcGluZyB3aXRob3V0IHByb2JsZW1zLgoKIyMjIEhvdyB0byBwdWJsaXNoIHRvIG5wbQoKSnVzdCB1cGRhdGUgdGhlIGB2ZXJzaW9uYCBpbiBgcGFja2FnZS5qc29uYCEKCkFzIHNvb24gYXMgeW91ciBicmFuY2ggd2lsbCBiZSBtZXJnZWQgdG8gbWFzdGVyLCBhIG5ldyBucG0gdmVyc2lvbiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcHVibGlzaGVkIGZvciB5b3UuCgojIyBgQHdpdGhvdXQtY2xpYCBucG0gcGFja2FnZQoKSWYgZm9yIGFueSByZWFzb25zIHlvdSBkb24ndCB3YW50IHRvIHVzZSBvdXIgQ0xJIHRvIGdlbmVyYXRlIHJlc3RmdWwtcmVhY3QgY29tcG9uZW50cywgd2UgcHJvdmlkZSBhIGB3aXRob3V0LWNsaWAgdmVyc2lvbiBvZiB0aGUgcGFja2FnZS4KCkp1c3QgYG5wbSBpbnN0YWxsIHJlc3RmdWwtcmVhY3RAd2l0aG91dC1jbGlgIHRvIGhhdmUgdGhpcyBsaWdodCB2ZXJzaW9uLgoKVGhpcyB2ZXJzaW9uIHdpbGwgZm9sbG93IGBsYXRlc3RgIGJ1dCB3aXRob3V0IHRoZSBjbGkgcGFydCAobW9yZSBkZXRhaWxzIGludG8gYHB1Ymxpc2gtd2l0aG91dC1jbGkuanNgKS4KCiMjIE5leHQgU3RlcHMKCldlJ3JlIGFjdGl2ZWx5IGRldmVsb3BpbmcgdGhpcyBhdCBDb250aWFtbyB0byBtZWV0IG91ciB1c2UgY2FzZXMgYXMgdGhleSBhcmlzZS4gSWYgeW91IGhhdmUgYSB1c2UgY2FzZSB0aGF0IHlvdSdkIGxpa2UgdG8gaW1wbGVtZW50LCBkbyBpdCEgT3BlbiBhbiBpc3N1ZSwgc3VibWl0IGEgUHVsbCBSZXF1ZXN0LCBoYXZlIGZ1biEgV2UncmUgZnJpZW5kbHkuCg== readmeEtag: '"177e8cd0afe6c2003d24e3c25e1f3b437abba9d3"' readmeLastModified: Thu, 16 Jun 2022 12:35:09 GMT repositoryId: 139149148 description: >- A consistent, declarative way of interacting with RESTful backends, featuring code-generation from Swagger and OpenAPI specs 🔥 created: '2018-06-29T12:52:25Z' updated: '2024-08-24T04:34:10Z' language: TypeScript archived: true stars: 1869 watchers: 19 forks: 109 owner: contiamo logo: https://avatars.githubusercontent.com/u/862286?v=4 license: MIT repoEtag: '"a1aff7308a3be4b3d959d0148c45165dc7e2dd461ba4f687d65c330971309011"' repoLastModified: Sat, 24 Aug 2024 04:34:10 GMT foundInMaster: true id: 7fa6fa97d3fc13594a92cd5594506906 - source: https://openapi.tools/ name: NSwag category: SDK link: https://NSwag.org repository: https://github.com/ricosuter/nswag language: .NET source_description: OpenAPI toolchain for .NET, Web API and TypeScript v2: true v3: true repositoryMetadata: base64Readme: >- IyMgTlN3YWc6IFRoZSBTd2FnZ2VyL09wZW5BUEkgdG9vbGNoYWluIGZvciAuTkVULCBBU1AuTkVUIENvcmUgYW5kIFR5cGVTY3JpcHQKCk5Td2FnIHwgW05Kc29uU2NoZW1hXShodHRwOi8vbmpzb25zY2hlbWEub3JnKSB8IFtBcGltdW5kb10oaHR0cHM6Ly9hcGltdW5kby5jb20pIHwgW05hbW90aW9uLlJlZmxlY3Rpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTmFtb3Rpb24uUmVmbGVjdGlvbikKClshW051R2V0IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9OU3dhZy5Db3JlLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcz9xPU5Td2FnKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvbnN3YWcuc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbnN3YWcpClshW051R2V0IFZlcnNpb24gUHJldmlld10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC92cHJlL05Td2FnLkNvcmUuc3ZnKV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzP3E9TlN3YWcpClshW2J1aWxkXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbCkKWyFbRGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EaXNjb3JkLWpvaW4lMjBjaGF0LTFkY2U3My5zdmcpXShodHRwczovL2Rpc2NvcmQuZ2cvQnhRTnkyNVdGNikKWyFbU3RhY2tPdmVyZmxvd10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9xdWVzdGlvbnMtb24lMjBTdGFja092ZXJmbG93LW9yYW5nZS5zdmc/c3R5bGU9ZmxhdCldKGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvdGFnZ2VkL25zd2FnKQpbIVtXaWtpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY3MtaW4lMjB3aWtpLW9yYW5nZS5zdmc/c3R5bGU9ZmxhdCldKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvbnN3YWcvd2lraSkKWyFbQmFja2VycyBvbiBPcGVuIENvbGxlY3RpdmVdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL05Td2FnL2JhY2tlcnMvYmFkZ2Uuc3ZnKV0oI2JhY2tlcnMpIApbIVtTcG9uc29ycyBvbiBPcGVuIENvbGxlY3RpdmVdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL05Td2FnL3Nwb25zb3JzL2JhZGdlLnN2ZyldKCNzcG9uc29ycykKCjpwb2ludF9yaWdodDogWyoqQW5ub3VuY2luZyBBcGltdW5kbzoqKiBBbiBBUEkgZG9jdW1lbnRhdGlvbiBzeXN0ZW0gYmFzZWQgb24gTlN3YWcgYW5kIE5Kc29uU2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL2lzc3Vlcy8zMDc3KSA6cG9pbnRfbGVmdDoKCk5Td2FnIGlzIGEgU3dhZ2dlci9PcGVuQVBJIDIuMCBhbmQgMy4wIHRvb2xjaGFpbiBmb3IgLk5FVCwgLk5FVCBDb3JlLCBXZWIgQVBJLCBBU1AuTkVUIENvcmUsIFR5cGVTY3JpcHQgKGpRdWVyeSwgQW5ndWxhckpTLCBBbmd1bGFyIDIrLCBBdXJlbGlhLCBLbm9ja291dEpTIGFuZCBtb3JlKSBhbmQgb3RoZXIgcGxhdGZvcm1zLCB3cml0dGVuIGluIEMjLiBUaGUgW09wZW5BUEkvU3dhZ2dlciBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgdXNlcyBKU09OIGFuZCBKU09OIFNjaGVtYSB0byBkZXNjcmliZSBhIFJFU1RmdWwgd2ViIEFQSS4gVGhlIE5Td2FnIHByb2plY3QgcHJvdmlkZXMgdG9vbHMgdG8gZ2VuZXJhdGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBmcm9tIGV4aXN0aW5nIEFTUC5ORVQgV2ViIEFQSSBjb250cm9sbGVycyBhbmQgY2xpZW50IGNvZGUgZnJvbSB0aGVzZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zLiAKClRoZSBwcm9qZWN0IGNvbWJpbmVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIFN3YXNoYnVja2xlIChPcGVuQVBJL1N3YWdnZXIgZ2VuZXJhdGlvbikgYW5kIEF1dG9SZXN0IChjbGllbnQgZ2VuZXJhdGlvbikgaW4gb25lIHRvb2xjaGFpbiAodGhlc2UgdHdvIGxpYnMgYXJlIG5vdCBuZWVkZWQpLiBUaGlzIHdheSBhIGxvdCBvZiBpbmNvbXBhdGliaWxpdGVzIGNhbiBiZSBhdm9pZGVkIGFuZCBmZWF0dXJlcyB3aGljaCBhcmUgbm90IHdlbGwgZGVzY3JpYmVkIGJ5IHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gb3IgSlNPTiBTY2hlbWEgYXJlIGJldHRlciBzdXBwb3J0ZWQgKGUuZy4gW2luaGVyaXRhbmNlXShodHRwczovL2dpdGh1Yi5jb20vTkpzb25TY2hlbWEvTkpzb25TY2hlbWEvd2lraS9Jbmhlcml0YW5jZSksIFtlbnVtXShodHRwczovL2dpdGh1Yi5jb20vTkpzb25TY2hlbWEvTkpzb25TY2hlbWEvd2lraS9FbnVtcykgYW5kIHJlZmVyZW5jZSBoYW5kbGluZykuIFRoZSBOU3dhZyBwcm9qZWN0IGhlYXZpbHkgdXNlcyBbTkpzb25TY2hlbWEgZm9yIC5ORVRdKGh0dHA6Ly9uanNvbnNjaGVtYS5vcmcpIGZvciBKU09OIFNjaGVtYSBoYW5kbGluZyBhbmQgQyMvVHlwZVNjcmlwdCBjbGFzcy9pbnRlcmZhY2UgZ2VuZXJhdGlvbi4gCgohW1Rvb2xjaGFpbkRpYWdyYW1dKGFzc2V0cy9Ub29sY2hhaW5EaWFncmFtLnBuZykgCgpUaGUgcHJvamVjdCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgW1JpY28gU3V0ZXJdKGh0dHA6Ly9yc3V0ZXIuY29tKSBhbmQgb3RoZXIgY29udHJpYnV0b3JzLgoKIyMjIEZlYXR1cmVzCgotIFtHZW5lcmF0ZSBTd2FnZ2VyIDIuMCBhbmQgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbnMgZnJvbSBDIyBBU1AuTkVUIChDb3JlKSBjb250cm9sbGVyc10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL01pZGRsZXdhcmVzKQotIFNlcnZlIHRoZSBzcGVjcyB2aWEgQVNQLk5FVCAoQ29yZSkgbWlkZGxld2FyZSwgb3B0aW9uYWxseSB3aXRoIFtTd2FnZ2VyIFVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkgb3IgW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmViaWxseS9SZURvYykKLSBHZW5lcmF0ZSBDIyBvciBUeXBlU2NyaXB0IGNsaWVudHMvcHJveGllcyBmcm9tIHRoZXNlIHNwZWNzCi0gRXZlcnl0aGluZyBjYW4gYmUgYXV0b21hdGVkIHZpYSBDTEkgKGRpc3RyaWJ1dGVkIHZpYSBOdUdldCB0b29sIG9yIGJ1aWxkIHRhcmdldDsgb3IgTlBNKQotIENMSSBjb25maWd1cmVkIHZpYSBKU09OIGZpbGUgb3IgTlN3YWdTdHVkaW8gV2luZG93cyBVSQoKIyMjIFdheXMgdG8gdXNlIHRoZSB0b29sY2hhaW4KCi0gU2ltcGxlIHRvIHVzZSBXaW5kb3dzIEdVSSwgW05Td2FnU3R1ZGlvXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvTlN3YWdTdHVkaW8pCi0gQnkgdXNpbmcgdGhlIFtPcGVuQVBJIG9yIE9wZW5BUEkgVUkgT1dJTiBhbmQgQVNQLk5FVCBDb3JlIE1pZGRsZXdhcmVzXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvTWlkZGxld2FyZXMpIChhbHNvIHNlcnZlcyB0aGUgW1N3YWdnZXIgVUldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKSkgKHJlY29tbWVuZGVkKQotIFZpYSBbY29tbWFuZCBsaW5lXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvQ29tbWFuZExpbmUpIChXaW5kb3dzLCBNYWMgYW5kIExpbnV4IHN1cHBvcnQgdGhyb3VnaCBbTW9ub10oaHR0cDovL3d3dy5tb25vLXByb2plY3QuY29tLykgb3IgLk5FVCBDb3JlIGNvbnNvbGUgYmluYXJ5LCBhbHNvIHZpYSBbTlBNIHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL25zd2FnKSkKLSBJbiB5b3VyIEMjIGNvZGUsIHZpYSBbTnVHZXRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcz9xPU5Td2FnKQotIEluIHlvdXIgW01TQnVpbGQgdGFyZ2V0c10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL05Td2FnLk1TQnVpbGQpCi0gV2l0aCBbU2VydmljZVByb2plY3RSZWZlcmVuY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9TZXJ2aWNlUHJvamVjdFJlZmVyZW5jZSkgdGFncyBpbiB5b3VyIC5jc3Byb2ogKHByZXZpZXcpCi0gSW4geW91ciBbQXp1cmUgVjIgRnVuY3Rpb25zXShodHRwczovL2dpdGh1Yi5jb20vSnVzYXMvTlN3YWcuQXp1cmVGdW5jdGlvbnNWMikgKGV4dGVybmFsIHByb2plY3QsIG1pZ2h0IG5vdCB1c2UgbGF0ZXN0IE5Td2FnIHZlcnNpb24pCgojIyMgVHV0b3JpYWxzCgotIFtBZGQgTlN3YWcgdG8geW91ciBBU1AuTkVUIENvcmUgYXBwXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvQXNwTmV0Q29yZS1NaWRkbGV3YXJlKQotIFtJbnRlZ3JhdGUgdGhlIE5Td2FnIHRvb2xjaGFpbiBpbnRvIHlvdXIgQVNQLk5FVCBXZWIgQVBJIHByb2plY3RdKGh0dHBzOi8vYmxvZy5yc3V0ZXIuY29tL25zd2FnLXR1dG9yaWFsLWludGVncmF0ZS10aGUtbnN3YWctdG9vbGNoYWluLWludG8teW91ci1hc3AtbmV0LXdlYi1hcGktcHJvamVjdC8pCi0gW0dlbmVyYXRlIGFuIEFuZ3VsYXIgVHlwZVNjcmlwdCBjbGllbnQgZnJvbSBhbiBleGlzdGluZyBBU1AuTkVUIFdlYiBBUEkgd2ViIGFzc2VtYmx5XShodHRwczovL2Jsb2cucnN1dGVyLmNvbS9uc3dhZy10dXRvcmlhbC1nZW5lcmF0ZS1hbi1hbmd1bGFyLTItdHlwZXNjcmlwdC1jbGllbnQtZnJvbS1hbi1leGlzdGluZy1hc3AtbmV0LXdlYi1hcGktd2ViLWFzc2VtYmx5LykKLSBbVmlkZW8gVHV0b3JpYWw6IEhvdyB0byBpbnRlZ3JhdGUgTlN3YWcgaW50byB5b3VyIEFTUC5ORVQgQ29yZSBXZWIgQVBJIHByb2plY3QgKDUgbWlucyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bEY5Wlo4cDJDaXcpCgojIyMgT3BlbkFQSS9Td2FnZ2VyIEdlbmVyYXRvcnMKCi0gQVNQLk5FVCBXZWIgQVBJIGFzc2VtYmx5IHRvIE9wZW5BUEkgKHN1cHBvcnRzIC5ORVQgQ29yZSkKICAgIC0gW0FzcE5ldENvcmVPcGVuQXBpRG9jdW1lbnRHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9Bc3BOZXRDb3JlT3BlbkFwaURvY3VtZW50R2VuZXJhdG9yKQogICAgLSBbV2ViQXBpT3BlbkFwaURvY3VtZW50R2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvV2ViQXBpT3BlbkFwaURvY3VtZW50R2VuZXJhdG9yKQogICAgICAgIC0gR2VuZXJhdGVzIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmb3IgV2ViIEFQSSBjb250cm9sbGVycwogICAgLSBbV2ViQXBpVG9PcGVuQXBpQ29tbWFuZF0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL1dlYkFwaVRvT3BlbkFwaUNvbW1hbmQpCiAgICAgICAgLSBHZW5lcmF0ZXMgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZvciBjb250cm9sbGVycyBpbiBhbiBleHRlcm5hbCBXZWIgQVBJIGFzc2VtYmx5CiAgICAgICAgLSBbQWxzbyBzdXBwb3J0cyBsb2FkaW5nIG9mIC5ORVQgQ29yZSBhc3NlbWJsaWVzXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvQXNzZW1ibHktbG9hZGluZykKICAgIC0gW1R5cGVzVG9PcGVuQXBpQ29tbWFuZF0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL1R5cGVzVG9PcGVuQXBpQ29tbWFuZCkKICAgICAgICAtIEdlbmVyYXRlcyBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gY29udGFpbmluZyBvbmx5IHR5cGVzIGZyb20gLk5FVCBhc3NlbWJsaWVzCgojIyMgQ29kZSBHZW5lcmF0b3JzCgotICoqQ1NoYXJwIENsaWVudCoqCgktIFtDU2hhcnBDbGllbnRHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpCgkJLSBHZW5lcmF0ZXMgQyMgY2xpZW50cyBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbgoJCS0gR2VuZXJhdGVzIFBPQ09zIG9yIGNsYXNzZXMgaW1wbGVtZW50aW5nIFtJTm90aWZ5UHJvcGVydHlDaGFuZ2VkXShodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3N5c3RlbS5jb21wb25lbnRtb2RlbC5pbm90aWZ5cHJvcGVydHljaGFuZ2VkKHY9dnMuMTEwKS5hc3B4KSBzdXBwb3J0aW5nIERUT3MKCQktIFRoZSBnZW5lcmF0ZWQgY2xpZW50cyBjYW4gYmUgdXNlZCB3aXRoIGZ1bGwgLk5FVCwgLk5FVCBDb3JlLCBYYW1hcmluIGFuZCAuTkVUIFN0YW5kYXJkIDEuNCBpbiBnZW5lcmFsCi0gKipDU2hhcnAgQ29udHJvbGxlcnMqKiAoY29udHJhY3QgZmlyc3Qvc2NoZW1hIGZpcnN0IGRldmVsb3BtZW50KQoJLSBbQ1NoYXJwQ29udHJvbGxlckdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL0NTaGFycENvbnRyb2xsZXJHZW5lcmF0b3IpCgkgICAgLSBHZW5lcmF0ZXMgV2ViIEFQSSBDb250cm9sbGVycyBiYXNlZCBvbiBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gKEFTUC5ORVQgV2ViIEFQSSBhbmQgQVNQLk5FVCBDb3JlKQotICoqVHlwZVNjcmlwdCBDbGllbnQqKgoJLSBbVHlwZVNjcmlwdENsaWVudEdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL1R5cGVTY3JpcHRDbGllbnRHZW5lcmF0b3IpCgkJLSBHZW5lcmF0ZXMgVHlwZVNjcmlwdCBjbGllbnRzIGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uCgkJLSBBdmFpbGFibGUgdGVtcGxhdGVzL3N1cHBvcnRlZCBsaWJyYXJpZXM6IAoJCQktIEpRdWVyeSB3aXRoIENhbGxiYWNrcywgYEpRdWVyeUNhbGxiYWNrc2AKCQkJLSBKUXVlcnkgd2l0aCBwcm9taXNlcyBgSlF1ZXJ5UHJvbWlzZXNgCgkJCS0gQW5ndWxhckpTIHVzaW5nICRodHRwLCBgQW5ndWxhckpTYAoJCQktIEFuZ3VsYXIgKHYyKykgdXNpbmcgdGhlIGh0dHAgc2VydmljZSwgYEFuZ3VsYXJgCgkJCS0gd2luZG93LmZldGNoIEFQSSBhbmQgRVM2IHByb21pc2VzLCBgRmV0Y2hgICh1c2UgdGhpcyB0ZW1wbGF0ZSBpbiB5b3VyIFJlYWN0L1JlZHV4IGFwcCkKCQkJLSBBdXJlbGlhIHVzaW5nIHRoZSBIdHRwQ2xpZW50IGZyb20gYXVyZWxpYS1mZXRjaC1jbGllbnQsIGBBdXJlbGlhYCAoYmFzZWQgb24gdGhlIEZldGNoIHRlbXBsYXRlKQoJCQktIGBBeGlvc2AgKHByZXZpZXcpCgkgICAgCiMjIyBEb3dubG9hZHMKCi0gW0Rvd25sb2FkIGxhdGVzdCAqKk5Td2FnU3R1ZGlvIE1TSSBpbnN0YWxsZXIgKE5Td2FnU3R1ZGlvLm1zaSkqKl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy9yZWxlYXNlcykgKFdpbmRvd3MgRGVza3RvcCBhcHBsaWNhdGlvbikKLSBbRG93bmxvYWQgbGF0ZXN0ICoqTlN3YWcgY29tbWFuZCBsaW5lIHRvb2xzKiogYW5kIE5Td2FnU3R1ZGlvIChOU3dhZy56aXApXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3JlbGVhc2VzKQoKIyMjIE5QTSBQYWNrYWdlcwoKLSBbTlN3YWddKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL25zd2FnKTogQ29tbWFuZCBsaW5lIHRvb2xzICguTkVUIGFuZCAuTkVUIENvcmUpIGRpc3RyaWJ1dGVkIGFzIE5QTSBwYWNrYWdlCgojIyMgTnVHZXQgUGFja2FnZXMKCiMjIyMgU3BlY2lmaWNhdGlvbgoKLSAqKltOU3dhZy5Db3JlXShodHRwczovL2FwaW11bmRvLmNvbS9vcmdhbml6YXRpb25zL251Z2V0LW9yZy9udWdldC1mZWVkcy9wdWJsaWMvcGFja2FnZXMvTlN3YWcuQ29yZS92ZXJzaW9ucy9sYXRlc3QpKioKICAgIC0gVGhlIE9wZW5BUEkvU3dhZ2dlciByZWFkZXIgYW5kIHdyaXRlciBjbGFzc2VzLCBzZWUgW09wZW5BcGlEb2N1bWVudF0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL09wZW5BcGlEb2N1bWVudCkgKC5ORVQgU3RhbmRhcmQgMS4wIC8gMi4wIGFuZCAuTkVUIDQuNSkKLSAqKltOU3dhZy5Db3JlLllhbWxdKGh0dHBzOi8vYXBpbXVuZG8uY29tL29yZ2FuaXphdGlvbnMvbnVnZXQtb3JnL251Z2V0LWZlZWRzL3B1YmxpYy9wYWNrYWdlcy9OU3dhZy5Db3JlLllhbWwvdmVyc2lvbnMvbGF0ZXN0KSoqICguTkVUIFN0YW5kYXJkIDEuMyAvIDIuMCBhbmQgLk5FVCA0LjUpCiAgICAtIEV4dGVuc2lvbnMgdG8gcmVhZCBhbmQgd3JpdGUgWUFNTCBPcGVuQVBJIHNwZWNpZmljYXRpb25zCi0gKipbTlN3YWcuQW5ub3RhdGlvbnNdKGh0dHBzOi8vYXBpbXVuZG8uY29tL29yZ2FuaXphdGlvbnMvbnVnZXQtb3JnL251Z2V0LWZlZWRzL3B1YmxpYy9wYWNrYWdlcy9OU3dhZy5Bbm5vdGF0aW9ucy92ZXJzaW9ucy9sYXRlc3QpKiogKC5ORVQgU3RhbmRhcmQgMS4wIC8gMi4wIGFuZCAuTkVUIDQuNSkKICAgIC0gQXR0cmlidXRlcyB0byBkZWNvcmF0ZSBXZWIgQVBJIGNvbnRyb2xsZXJzIHRvIGNvbnRyb2wgdGhlIE9wZW5BUEkgZ2VuZXJhdGlvbgoKIyMjIyBPcGVuQVBJIGdlbmVyYXRpb24KCi0gKipbTlN3YWcuR2VuZXJhdGlvbl0oaHR0cHM6Ly9hcGltdW5kby5jb20vb3JnYW5pemF0aW9ucy9udWdldC1vcmcvbnVnZXQtZmVlZHMvcHVibGljL3BhY2thZ2VzL05Td2FnLkdlbmVyYXRpb24vdmVyc2lvbnMvbGF0ZXN0LykqKiAoLk5FVCBTdGFuZGFyZCAxLjAgLyAyLjAgYW5kIC5ORVQgNC41KQogICAgLSBDbGFzc2VzIHRvIGdlbmVyYXRlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMKLSAqKltOU3dhZy5HZW5lcmF0aW9uLldlYkFwaV0oaHR0cHM6Ly9hcGltdW5kby5jb20vb3JnYW5pemF0aW9ucy9udWdldC1vcmcvbnVnZXQtZmVlZHMvcHVibGljL3BhY2thZ2VzL05Td2FnLkdlbmVyYXRpb24uV2ViQXBpL3ZlcnNpb25zL2xhdGVzdCkqKiAoLk5FVCBTdGFuZGFyZCAxLjAgLyAyLjAgYW5kIC5ORVQgNC41KQogICAgLSBDbGFzc2VzIHRvIGdlbmVyYXRlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZnJvbSBXZWIgQVBJIGNvbnRyb2xsZXJzLCBzZWUgW1dlYkFwaU9wZW5BcGlEb2N1bWVudEdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL1dlYkFwaU9wZW5BcGlEb2N1bWVudEdlbmVyYXRvcikKLSAqKltOU3dhZy5HZW5lcmF0aW9uLkFzcE5ldENvcmVdKGh0dHBzOi8vYXBpbXVuZG8uY29tL29yZ2FuaXphdGlvbnMvbnVnZXQtb3JnL251Z2V0LWZlZWRzL3B1YmxpYy9wYWNrYWdlcy9OU3dhZy5HZW5lcmF0aW9uLkFzcE5ldENvcmUvdmVyc2lvbnMvbGF0ZXN0KSoqICguTkVUIFN0YW5kYXJkIDEuNiAvIDIuMCBhbmQgLk5FVCA0LjUuMSkKICAgIC0gKEV4cGVyaW1lbnRhbCkgQ2xhc3NlcyB0byBnZW5lcmF0ZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGZyb20gQVNQLk5FVCBDb3JlIE1WQyBjb250cm9sbGVycyB1c2luZyB0aGUgQXBpRXhwbG9yZXIKCiMjIyMgQ29kZSBnZW5lcmF0aW9uCgotICoqW05Td2FnLkNvZGVHZW5lcmF0aW9uXShodHRwczovL2FwaW11bmRvLmNvbS9vcmdhbml6YXRpb25zL251Z2V0LW9yZy9udWdldC1mZWVkcy9wdWJsaWMvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24vdmVyc2lvbnMvbGF0ZXN0KSoqICguTkVUIFN0YW5kYXJkIDEuMyAvIDIuMCAvIC5ORVQgNC41LjEpCiAgICAtIEJhc2UgY2xhc3NlcyB0byBnZW5lcmF0ZSBjbGllbnRzIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucwotICoqW05Td2FnLkNvZGVHZW5lcmF0aW9uLkNTaGFycF0oaHR0cHM6Ly9hcGltdW5kby5jb20vb3JnYW5pemF0aW9ucy9udWdldC1vcmcvbnVnZXQtZmVlZHMvcHVibGljL3BhY2thZ2VzL05Td2FnLkNvZGVHZW5lcmF0aW9uLkNTaGFycC92ZXJzaW9ucy9sYXRlc3QpKiogKC5ORVQgU3RhbmRhcmQgMS4zIGFuZCAuTkVUIDQuNS4xKQogICAgLSBDbGFzc2VzIHRvIGdlbmVyYXRlIEMjIGNsaWVudHMgZnJvbSBPcGVuQVBJIHNwZWNpZmljYXRpb25zLCBzZWUgW0NTaGFycENsaWVudEdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL0NTaGFycENsaWVudEdlbmVyYXRvcikgYW5kIFtDU2hhcnBDb250cm9sbGVyR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvQ1NoYXJwQ29udHJvbGxlckdlbmVyYXRvcikKLSAqKltOU3dhZy5Db2RlR2VuZXJhdGlvbi5UeXBlU2NyaXB0XShodHRwczovL2FwaW11bmRvLmNvbS9vcmdhbml6YXRpb25zL251Z2V0LW9yZy9udWdldC1mZWVkcy9wdWJsaWMvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24uVHlwZVNjcmlwdC92ZXJzaW9ucy9sYXRlc3QpKiogKC5ORVQgU3RhbmRhcmQgMS4zIGFuZCAuTkVUIDQuNS4xKQogICAgLSBDbGFzc2VzIHRvIGdlbmVyYXRlIFR5cGVTY3JpcHQgY2xpZW50cyBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMsIHNlZSBbVHlwZVNjcmlwdENsaWVudEdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL1R5cGVTY3JpcHRDbGllbnRHZW5lcmF0b3IpCgojIyMjIEFTUC5ORVQgYW5kIEFTUC5ORVQgQ29yZQoKLSAqKltOU3dhZy5Bc3BOZXRDb3JlXShodHRwczovL2FwaW11bmRvLmNvbS9vcmdhbml6YXRpb25zL251Z2V0LW9yZy9udWdldC1mZWVkcy9wdWJsaWMvcGFja2FnZXMvTlN3YWcuQXNwTmV0Q29yZS92ZXJzaW9ucy9sYXRlc3QpKiogKC5ORVQgU3RhbmRhcmQgMS42IC8gMi4wIGFuZCAuTkVUIDQuNS4xKykKLSAqKltOU3dhZy5Bc3BOZXQuT3dpbl0oaHR0cHM6Ly9hcGltdW5kby5jb20vb3JnYW5pemF0aW9ucy9udWdldC1vcmcvbnVnZXQtZmVlZHMvcHVibGljL3BhY2thZ2VzL05Td2FnLkFzcE5ldC5Pd2luL3ZlcnNpb25zL2xhdGVzdCkqKiAoLk5FVCA0LjUrKQogICAgLSBbQVNQLk5FVCBDb3JlL09XSU4gbWlkZGxld2FyZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9NaWRkbGV3YXJlcykgZm9yIHNlcnZpbmcgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBhbmQgU3dhZ2dlciBVSQotICoqW05Td2FnLkFzcE5ldC5XZWJBcGldKGh0dHBzOi8vYXBpbXVuZG8uY29tL29yZ2FuaXphdGlvbnMvbnVnZXQtb3JnL251Z2V0LWZlZWRzL3B1YmxpYy9wYWNrYWdlcy9OU3dhZy5Bc3BOZXQuV2ViQXBpL3ZlcnNpb25zL2xhdGVzdCkqKiAoLk5FVCA0LjUrKQogICAgLSBBU1AuTkVUIFdlYiBBUEkgZmlsdGVyIHdoaWNoIHNlcmlhbGl6ZXMgZXhjZXB0aW9ucyAoW0pzb25FeGNlcHRpb25GaWx0ZXJBdHRyaWJ1dGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9Kc29uRXhjZXB0aW9uRmlsdGVyQXR0cmlidXRlKSkKCiMjIyMgRnJvbnRlbmRzCgotICoqW05Td2FnLkFzc2VtYmx5TG9hZGVyXShodHRwczovL2FwaW11bmRvLmNvbS9vcmdhbml6YXRpb25zL251Z2V0LW9yZy9udWdldC1mZWVkcy9wdWJsaWMvcGFja2FnZXMvTlN3YWcuQXNzZW1ibHlMb2FkZXIvdmVyc2lvbnMvbGF0ZXN0KSoqICguTkVUIFN0YW5kYXJkIDEuNiAvIDIuMCBhbmQgLk5FVCA0LjUuMSk6IAogICAgLSBDbGFzc2VzIHRvIGxvYWQgYXNzZW1ibGllcyBpbiBhbiBpc29sYXRlZCBBcHBEb21haW4gYW5kIGdlbmVyYXRlIE9wZW5BUEkgc3BlY3MgZnJvbSBXZWIgQVBJIGNvbnRyb2xsZXJzCi0gKipbTlN3YWcuQ29tbWFuZHNdKGh0dHBzOi8vYXBpbXVuZG8uY29tL29yZ2FuaXphdGlvbnMvbnVnZXQtb3JnL251Z2V0LWZlZWRzL3B1YmxpYy9wYWNrYWdlcy9OU3dhZy5Db21tYW5kcy92ZXJzaW9ucy9sYXRlc3QpKiogKC5ORVQgU3RhbmRhcmQgMS42IC8gMi4wIGFuZCAuTkVUIDQuNS4xKyk6IAogICAgLSBDb21tYW5kcyBmb3IgdGhlIGNvbW1hbmQgbGluZSB0b29sIGltcGxlbWVudGF0aW9ucyBhbmQgVUkKLSAqKltOU3dhZy5NU0J1aWxkXShodHRwczovL2FwaW11bmRvLmNvbS9vcmdhbml6YXRpb25zL251Z2V0LW9yZy9udWdldC1mZWVkcy9wdWJsaWMvcGFja2FnZXMvTlN3YWcuTVNCdWlsZC92ZXJzaW9ucy9sYXRlc3QpKiogKE1TQnVpbGQgLnRhcmdldHMpOiAKICAgIC0gQWRkcyBhIC50YXJnZXRzIGZpbGUgdG8geW91ciBWaXN1YWwgU3R1ZGlvIHByb2plY3QsIHNvIHRoYXQgeW91IGNhbiBydW4gdGhlIE5Td2FnIGNvbW1hbmQgbGluZSB0b29sIGluIGFuIE1TQnVpbGQgdGFyZ2V0LCBzZWUgW01TQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9NU0J1aWxkKQotICoqW05Td2FnLkNvbnNvbGVDb3JlXShodHRwczovL2FwaW11bmRvLmNvbS9vcmdhbml6YXRpb25zL251Z2V0LW9yZy9udWdldC1mZWVkcy9wdWJsaWMvcGFja2FnZXMvTlN3YWcuQ29uc29sZUNvcmUvdmVyc2lvbnMvbGF0ZXN0KSoqICguTkVUIENvcmUgMS4wLCAxLjEsIDIuMCwgMi4xIGFuZCAyLjIpOiAKICAgIC0gQ29tbWFuZCBsaW5lIHRvb2wgZm9yIC5ORVQgQ29yZSAoYGRvdG5ldCBuc3dhZ2ApCiAgICAtIGA8RG90TmV0Q2xpVG9vbFJlZmVyZW5jZSBJbmNsdWRlPSJOU3dhZy5Db25zb2xlQ29yZSIgVmVyc2lvbj0iLi4uIiAvPmAKLSAqKltOU3dhZ1N0dWRpb10oaHR0cHM6Ly9jaG9jb2xhdGV5Lm9yZy9wYWNrYWdlcy9uc3dhZ3N0dWRpbykqKiAoQ2hvY29sYXRleSwgV2luZG93cyk6IAogICAgLSBQYWNrYWdlIHRvIGluc3RhbGwgdGhlIE5Td2FnU3R1ZGlvIGFuZCBjb21tYW5kIGxpbmUgdG9vbHMgdmlhIENob2NvbGF0ZXkKCiMjIyMgQ0kgTnVHZXQgRmVlZAoKaHR0cHM6Ly93d3cubXlnZXQub3JnL0YvbnN3YWcvYXBpL3YzL2luZGV4Lmpzb24KClRoZSBOdUdldCBwYWNrYWdlcyBtYXkgcmVxdWlyZSB0aGUgKipNaWNyb3NvZnQuTkVUQ29yZS5Qb3J0YWJsZS5Db21wYXRpYmlsaXR5KiogcGFja2FnZSBvbiAuTkVUIENvcmUvVVdQIHRhcmdldHMgKGlmIG1zY29ybGliIGlzIG1pc3NpbmcpLiAKCiFbTGF5ZXJEaWFncmFtXShhc3NldHMvTGF5ZXJEaWFncmFtLnBuZykKCiMjIyBVc2FnZSBpbiBDJiMzNTsKClRvIHJlZ2lzdGVyIHRoZSBbbWlkZGxld2FyZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9Bc3BOZXRDb3JlLU1pZGRsZXdhcmUpIHRvIGdlbmVyYXRlIGFuIE9wZW5BUEkgc3BlYyBhbmQgcmVuZGVyIHRoZSBVSSwgcmVnaXN0ZXIgTlN3YWcgaW4gYFN0YXJ0dXAuY3NgOiAKCmBgYGNzaGFycApwdWJsaWMgY2xhc3MgU3RhcnR1cAp7CiAgICAuLi4KCiAgICBwdWJsaWMgdm9pZCBDb25maWd1cmVTZXJ2aWNlcyhJU2VydmljZUNvbGxlY3Rpb24gc2VydmljZXMpCiAgICB7CiAgICAgICAgc2VydmljZXMuQWRkT3BlbkFwaURvY3VtZW50KCk7IC8vIGFkZCBPcGVuQVBJIHYzIGRvY3VtZW50Ci8vICAgICAgc2VydmljZXMuQWRkU3dhZ2dlckRvY3VtZW50KCk7IC8vIGFkZCBTd2FnZ2VyIHYyIGRvY3VtZW50CiAgICB9CgogICAgcHVibGljIHZvaWQgQ29uZmlndXJlKElBcHBsaWNhdGlvbkJ1aWxkZXIgYXBwLCBJSG9zdGluZ0Vudmlyb25tZW50IGVudiwgSUxvZ2dlckZhY3RvcnkgbG9nZ2VyRmFjdG9yeSkKICAgIHsKICAgICAgICAuLi4KCiAgICAgICAgYXBwLlVzZU9wZW5BcGkoKTsgLy8gc2VydmUgT3BlbkFQSS9Td2FnZ2VyIGRvY3VtZW50cwogICAgICAgIGFwcC5Vc2VTd2FnZ2VyVWkoKTsgLy8gc2VydmUgU3dhZ2dlciBVSQogICAgICAgIGFwcC5Vc2VSZURvYygpOyAvLyBzZXJ2ZSBSZURvYyBVSQogICAgfQp9CmBgYAoKVGhlIGZvbGxvd2luZyBjb2RlIHNob3dzIGhvdyB0byByZWFkIGFuIE9wZW5BUEkvU3dhZ2dlciBzcGVjaWZpY2F0aW9uIGFuZCBnZW5lcmF0ZSBDIyBjbGllbnQgY2xhc3NlcyB0byBjYWxsIHRoZSBkZXNjcmliZWQgd2ViIHNlcnZpY2VzOiAKCQpgYGBjcwp2YXIgZG9jdW1lbnQgPSBhd2FpdCBPcGVuQXBpRG9jdW1lbnQuRnJvbUZpbGVBc3luYygib3BlbmFwaS5qc29uIik7CnZhciBjbGllbnRTZXR0aW5ncyA9IG5ldyBDU2hhcnBDbGllbnRHZW5lcmF0b3JTZXR0aW5ncyAKewogICAgQ2xhc3NOYW1lID0gIk15Q2xhc3MiLAogICAgQ1NoYXJwR2VuZXJhdG9yU2V0dGluZ3MgPSAKICAgIHsKICAgICAgICBOYW1lc3BhY2UgPSAiTXlOYW1lc3BhY2UiCiAgICB9Cn07Cgp2YXIgY2xpZW50R2VuZXJhdG9yID0gbmV3IENTaGFycENsaWVudEdlbmVyYXRvcihkb2N1bWVudCwgY2xpZW50U2V0dGluZ3MpOwp2YXIgY29kZSA9IGNsaWVudEdlbmVyYXRvci5HZW5lcmF0ZUZpbGUoKTsKYGBgCgpDaGVjayBvdXQgdGhlIFtwcm9qZWN0IFdpa2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMgTlN3YWdTdHVkaW8KClRoZSBnZW5lcmF0b3JzIGNhbiBiZSB1c2VkIGluIGEgY29tZm9ydGFibGUgYW5kIHNpbXBsZSBXaW5kb3dzIEdVSSBjYWxsZWQgW05Td2FnU3R1ZGlvXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvTlN3YWdTdHVkaW8pOiAKClshW10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JpY29TdXRlci9OU3dhZy9tYXN0ZXIvYXNzZXRzL3NjcmVlbnNob3RzLzAzX1dlYkFQSV9DU2hhcnAucG5nKV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JpY29TdXRlci9OU3dhZy9tYXN0ZXIvYXNzZXRzL3NjcmVlbnNob3RzLzAzX1dlYkFQSV9DU2hhcnAucG5nKQoKIyMgU3BvbnNvcnMsIHN1cHBvcnQgYW5kIGNvbnN1bHRpbmcKCkNvbXBhbmllcyBvciBpbmRpdmlkdWFscyB3aGljaCBwYWlkIGEgc3Vic3RhbnRpYWwgYW1vdW50IGZvciBpbXBsZW1lbnRpbmcsIGZpeGluZyBpc3N1ZXMsIHN1cHBvcnQgb3Igc3BvbnNvcmluZyBhcmUgbGlzdGVkIGJlbG93LiBUaGFuayB5b3UgZm9yIHN1cHBvcnRpbmcgdGhpcyBwcm9qZWN0ISBZb3UgY2FuIGFsc28gYmVjb21lIGEgZmluYW5jaWFsIGNvbnRyaWJ1dG9yOgoKLSBbU3BvbnNvciBtYWluIGNvbnRyaWJ1dG9yIFJpY28gU3V0ZXIgdmlhIEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL1JpY29TdXRlcikKLSBbU3BvbnNvciBwcm9qZWN0IHZpYSBPcGVuIENvbGxlY3RpdmUgZm9yIE5Td2FnXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9uc3dhZykKClBsZWFzZSBjb250YWN0IFtSaWNvIFN1dGVyXShodHRwczovL3JzdXRlci5jb20pIGZvciBwYWlkIGNvbnN1bHRpbmcgYW5kIHN1cHBvcnQuIAoKIyMgQ29udHJpYnV0b3JzCgpUaGlzIHByb2plY3QgZXhpc3RzIHRoYW5rcyB0byBhbGwgdGhlIHBlb3BsZSB3aG8gY29udHJpYnV0ZS4gW1tDb250cmlidXRlXShDT05UUklCVVRJTkcubWQpXS4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy9ncmFwaHMvY29udHJpYnV0b3JzIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vTlN3YWcvY29udHJpYnV0b3JzLnN2Zz93aWR0aD04OTAmYnV0dG9uPWZhbHNlIiAvPjwvYT4KCiMjIFNwb25zb3JzCgpTdXBwb3J0IHRoaXMgcHJvamVjdCBieSBiZWNvbWluZyBhIHNwb25zb3IuIFlvdXIgbG9nbyB3aWxsIHNob3cgdXAgaGVyZSB3aXRoIGEgbGluayB0byB5b3VyIHdlYnNpdGUuIAoKKipUb3Agc3BvbnNvcnM6KioKClshW10oaHR0cHM6Ly9pbWFnZXMuZ290b3dlYmluYXIuY29tLzMwZGNjNDJkMzM5NDU2ODRiZTljZjY2ODUyMzAwZDFhKV0oaHR0cHM6Ly9waWN0dXJlcGFyay5jb20pCgoqKlNwb25zb3JzOioqCgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzAvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzAvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzEvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzEvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzIvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzIvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzMvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzMvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzQvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzQvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzUvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzUvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzYvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzYvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzcvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzcvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzgvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzgvYXZhdGFyLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzkvd2Vic2l0ZSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9OU3dhZy9zcG9uc29yLzkvYXZhdGFyLnN2ZyI+PC9hPgoKIyMgQmFja2VycwoKVGhhbmsgeW91IHRvIGFsbCBvdXIgYmFja2VycyEKCjxhIGhyZWY9Imh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL05Td2FnI2JhY2tlcnMiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vTlN3YWcvYmFja2Vycy5zdmc/d2lkdGg9ODkwIj48L2E+CiAK readmeEtag: '"642164cf56d36dea29ee9425fb719d6e41d0c01c"' readmeLastModified: Wed, 17 Jul 2024 15:18:44 GMT repositoryId: 41822320 description: 'The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. ' created: '2015-09-02T19:11:57Z' updated: '2024-09-04T11:47:46Z' language: C# archived: false stars: 6684 watchers: 166 forks: 1235 owner: RicoSuter logo: https://avatars.githubusercontent.com/u/2603405?v=4 license: MIT repoEtag: '"1ded2b728eeabd3b07eab36bddb63ba9e7643239589c723cf1ae2a7a5a0da964"' repoLastModified: Wed, 04 Sep 2024 11:47:46 GMT foundInMaster: true id: 93636e95435e95198d7d15c9d507f0d3 - source: https://openapi.tools/ name: api-codegen-ts category: - SDK - Data Validators - Parsers link: https://www.npmjs.com/package/@nll/api-codegen-ts repository: https://github.com/nullpub/api-codegen-ts language: TypeScript source_description: >- Generates TypeScript models, response validators, and operation controllers from OpenAPI descriptions v2: true v3: true repositoryMetadata: base64Readme: >- IyBhcGktY29kZWdlbi10cwoKQSBnZW5lcmFsIHR5cGVzY3JpcHQgY29kZSBnZW5lcmF0aW9uIGxpYnJhcnkuIEN1cnJlbnRseSBpdCBjYW4gdGFrZSBzd2FnZ2VyIDIuMCBhbmQgb3BlbmFwaSAzLjAuMCsganNvbiBzcGVjcyBhbmQgdHVybiB0aGVtIGludG8gdHlwZXNjcmlwdCBjb250cm9sbGVycyB0aGF0IHZhbGlkYXRlIGFwaSByZXNwb25zZXMuCgojIyBJbnN0YWxsYXRpb24KCmBucG0gaSAtRCBAbmxsL2FwaS1jb2RlZ2VuLXRzYAoKIyMgQ29uZmlndXJhdGlvbgoKQWRkIGFuIGFwaUNvZGVnZW4gc2VjdGlvbiB0byBgcGFja2FnZS5qc29uYC4KCmBgYGpzb24KewogICJhcGlDb2RlZ2VuIjogewogICAgInNyYyI6ICIuL3BhdGgvdG8veW91ci9zd2FnZ2VyLXNwZWMuanNvbiIsCiAgICAiZHN0IjogIi4vcGF0aC90by95b3VyL2NvZGVnZW4vZGVzdGluYXRpb24iCiAgfQp9CmBgYAoKIyMgVXNhZ2UKCkFmdGVyIGNvbmZpZ3VyaW5nIGFwaS1jb2RlZ2VuLXRzIHlvdSBjYW4gZ2VuZXJhdGUgY29kZSBsaWtlIHNvOgoKYG5weCBAbmxsL2FwaS1jb2RlZ2VuLXRzYAoKQW5kIGl0IHdpbGwgb3V0cHV0IGl0cyBwcm9ncmVzcyBhbmQgb3V0cHV0IGNvZGUuCgojIyBBZHZhbmNlZCB1c2FnZQoKVGhpcyBjb2RlZ2VuIGxpYnJhcnkgYWJzdHJhY3RzIHBhcnNlcnMgYW5kIHByaW50ZXJzLiBBIHBhcnNlciBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIGFuIGlucHV0IHN0cmluZyAoYSBzcGVjaWZpY2F0aW9uKSBhbmQgZ2VuZXJhdGluZyBhbnkgaW50ZXJtZWRpYXRlIHJlcHJlc2VudGF0aW9uLiBDdXJyZW50bHksIHRoZXJlIGFyZSBwcmltaXRpdmUgc3dhZ2dlciAyLjAgYW5kIG9wZW5hcGkgMy4wLjAgcGFyc2Vycy4gQSBwcmludGVyIHRha2VzIGFuIGludGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbiAoaXQgbXVzdCBtYXRjaCB3aGF0ZXZlciB0aGUgcGFyc2VyIG91dHB1dHMpIGFuZCByZXR1cm5zIHRoZSBmaWxlIHN0cmluZ3MgdG8gd3JpdGUgdG8gZGlzay4gVGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvZiBhcGktY29kZWdlbi10cyBpcyBtYW5hZ2luZyB0aGlzIHdvcmtmbG93LCBpdCBoYW5kbGVzIHRoZSByZWFkaW5nIG9mIHRoZSBzb3VyY2UgZmlsZXMgYW5kIHRoZSBwcmludGluZyBvZiB0aGUgZ2VuZXJhdGVkIGZpbGVzLgoKIyMgU3VwcG9ydAoKVGhpcyBpcyBteSBmaXJzdCBhdHRlbXB0IGF0IGEgY29kZWdlbiBsaWJyYXJ5LiBJZiB5b3UgZmluZCBidWdzIG9yIHNvbWUgc2V0IG9mIGZlYXR1cmVzIHRoYXQgYXJlbid0IHN1cHBvcnRlZCBwbGVhc2UgY3JlYXRlIGEgZ2l0aHViIGlzc3VlLiBUaGFua3MhCg== readmeEtag: '"406840cedd6d31bf4b9ac20d6743f83bec5c3f59"' readmeLastModified: Wed, 28 Aug 2019 04:48:19 GMT repositoryId: 190281420 description: >- A generalized codegen library by default setup to go from swagger 2.0 to typescript. created: '2019-06-04T21:23:53Z' updated: '2024-04-26T12:08:00Z' language: TypeScript archived: true stars: 5 watchers: 1 forks: 1 owner: nullpub logo: https://avatars.githubusercontent.com/u/22160158?v=4 repoEtag: '"bb26ab74c503e346e7044104710f5b30fca5f12ecb7adff119e689e548b533e9"' repoLastModified: Fri, 26 Apr 2024 12:08:00 GMT foundInMaster: true id: 753c3c0a8c4ef510d178b3a4a5ff35ca - source: - https://openapi.tools/ - openapi3 tags name: Swagger-Codegen category: Code Generators link: https://swagger.io/swagger-codegen/ repository: https://github.com/swagger-api/swagger-codegen language: Java source_description: >- Swagger Codegen enables generating server stubs and client SDKs for APIs described in OpenAPI v2: true v3: true repositoryMetadata: base64Readme: >- IyA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1dDLWxvZ28tY2xyLnBuZyIgaGVpZ2h0PSI4MCI+CgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vamVua2lucy9idWlsZC5zdmc/am9iVXJsPWh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL2pvYi9vc3Mtc3dhZ2dlci1jb3JlLW1hc3Rlci1qYXZhLTgpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb3JlLW1hc3Rlci1qYXZhLTgpCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmEvam9iL29zcy1zd2FnZ2VyLWNvZGVnZW4tbWFzdGVyL2JhZGdlL2ljb24/c3ViamVjdD1qZW5raW5zJTIwYnVpbGQpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3Rlci8pCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmEvam9iL29zcy1zd2FnZ2VyLWNvZGVnZW4tbWFzdGVyLWphdmE3L2JhZGdlL2ljb24/c3ViamVjdD1qZW5raW5zJTIwYnVpbGQlMjAtJTIwamF2YSUyMDcpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3Rlci1qYXZhNy8pCgoKW01hdmVuIENlbnRyYWxdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9pby5zd2FnZ2VyL3N3YWdnZXItY29kZWdlbi1wcm9qZWN0KQoKOnN0YXI6OnN0YXI6OnN0YXI6IElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUsIHBsZWFzZSByZWZlciB0byBbZ3VpZGVsaW5lc10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpIGFuZCBhIGxpc3Qgb2YgW29wZW4gdGFza3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vaXNzdWVzP3E9aXMlM0FvcGVuK2lzJTNBaXNzdWUrbGFiZWwlM0ElMjJoZWxwK3dhbnRlZCUyMikuOnN0YXI6OnN0YXI6OnN0YXI6Cgo6bm90ZWJvb2tfd2l0aF9kZWNvcmF0aXZlX2NvdmVyOiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbV2lraSBwYWdlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3dpa2kpIGFuZCBbRkFRXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3dpa2kvRkFRKSA6bm90ZWJvb2tfd2l0aF9kZWNvcmF0aXZlX2NvdmVyOgoKOndhcm5pbmc6IElmIHRoZSBPcGVuQVBJL1N3YWdnZXIgc3BlYyBpcyBvYnRhaW5lZCBmcm9tIGFuIHVudHJ1c3RlZCBzb3VyY2UsIHBsZWFzZSBtYWtlIHN1cmUgeW91J3ZlIHJldmlld2VkIHRoZSBzcGVjIGJlZm9yZSB1c2luZyBTd2FnZ2VyIENvZGVnZW4gdG8gZ2VuZXJhdGUgdGhlIEFQSSBjbGllbnQsIHNlcnZlciBzdHViIG9yIGRvY3VtZW50YXRpb24gYXMgW2NvZGUgaW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db2RlX2luamVjdGlvbikgbWF5IG9jY3VyIDp3YXJuaW5nOgoKOnJvY2tldDogUHJvZHVjdEh1bnQ6IGh0dHBzOi8vcHJvZHVjdGh1bnQuY29tL3Bvc3RzL3N3YWdnZXItY29kZWdlbiA6cm9ja2V0OgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogVGhlIGVCb29rIFtBIEJlZ2lubmVyJ3MgR3VpZGUgdG8gQ29kZSBHZW5lcmF0aW9uIGZvciBSRVNUIEFQSXNdKGh0dHBzOi8vZ3Vtcm9hZC5jb20vbC9zd2FnZ2VyX2NvZGVnZW5fYmVnaW5uZXIpIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgYmVnaW5uZXJzLgoKIyMgVmVyc2lvbmluZwoKKipOT1RFOioqIHZlcnNpb24gMi5YIChgaW8uc3dhZ2dlcmApIGFuZCAzLlggKGBpby5zd2FnZ2VyLmNvZGVnZW4udjNgKSBoYXZlICoqZGlmZmVyZW50KiogZ3JvdXAgaWRzLgoKMi5YIGFuZCAzLlggdmVyc2lvbiBsaW5lcyBvZiBTd2FnZ2VyIENvZGVnZW4gYXJlIGF2YWlsYWJsZTsgMi5YIChgbWFzdGVyYCBicmFuY2gpIHN1cHBvcnRzIFN3YWdnZXIvT3BlbkFQSSB2ZXJzaW9uIDIsCndoaWxlIDMuWCAoW2AzLjAuMGAgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjApKSBzdXBwb3J0cyBPcGVuQVBJIHZlcnNpb24gMyAoYW5kIHZlcnNpb24gMiB2aWEgc3BlYyBjb252ZXJzaW9uIHRvIHZlcnNpb24gMykuCltPbmxpbmUgZ2VuZXJhdG9yIG9mIHZlcnNpb24gMy5YXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjAjb25saW5lLWdlbmVyYXRvcnMpIHN1cHBvcnRzIGJvdGggZ2VuZXJhdGlvbiBmcm9tIFN3YWdnZXIvT3BlbkFQSSB2ZXJzaW9uIDIgKGJ5IHVzaW5nIGVuZ2luZSArIGdlbmVyYXRvcnMgb2YgMi5YKSBhbmQgdmVyc2lvbiAzIHNwZWNpZmljYXRpb25zLgoKCioqTk9URToqKiB0aGlzIGRvY3VtZW50IHJlZmVycyB0byB2ZXJzaW9uIDIuWCwgY2hlY2sgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS8zLjAuMCkgZm9yIDMuWC4KCgojIyMgU3dhZ2dlciBDb2RlZ2VuIDIuWCAoW2BtYXN0ZXJgIGJyYW5jaF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL21hc3RlcikpCgpTd2FnZ2VyIENvZGVnZW4gMi5YIHN1cHBvcnRzIFN3YWdnZXIvT3BlbkFQSSB2ZXJzaW9uIDIuCgpncm91cCBpZDogYGlvLnN3YWdnZXJgCm1hdmVuIGNlbnRyYWwgKG1hdmVuIHBsdWdpbik6IGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvaW8uc3dhZ2dlci9zd2FnZ2VyLWNvZGVnZW4tbWF2ZW4tcGx1Z2luCgpkZXBlbmRlbmN5IGV4YW1wbGU6CgpgYGAKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5pby5zd2FnZ2VyPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+c3dhZ2dlci1jb2RlZ2VuLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPjIuNC40MzwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCiMjIyBTd2FnZ2VyIENvZGVnZW4gMy5YIChbYDMuMC4wYCBicmFuY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS8zLjAuMCkpCgpTd2FnZ2VyIENvZGVnZW4gMy5YIHN1cHBvcnRzIE9wZW5BUEkgdmVyc2lvbiAzIChhbmQgdmVyc2lvbiAyIHZpYSBzcGVjIGNvbnZlcnNpb24gdG8gdmVyc2lvbiAzKQpbT25saW5lIGdlbmVyYXRvciBvZiB2ZXJzaW9uIDMuWF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlLzMuMC4wI29ubGluZS1nZW5lcmF0b3JzKSBzdXBwb3J0cyBib3RoIGdlbmVyYXRpb24gZnJvbSBTd2FnZ2VyL09wZW5BUEkgdmVyc2lvbiAyIChieSB1c2luZyBlbmdpbmUgKyBnZW5lcmF0b3JzIG9mIDIuWCkgYW5kIHZlcnNpb24gMyBzcGVjaWZpY2F0aW9ucy4KCmdyb3VwIGlkOiBgaW8uc3dhZ2dlci5jb2RlZ2VuLnYzYAptYXZlbiBjZW50cmFsOiBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L2lvLnN3YWdnZXIuY29kZWdlbi52MwoKZGVwZW5kZW5jeSBleGFtcGxlOgoKYGBgCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+aW8uc3dhZ2dlci5jb2RlZ2VuLnYzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+c3dhZ2dlci1jb2RlZ2VuLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPjMuMC42MTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCgoKIyMgT3ZlcnZpZXcKVGhpcyBpcyB0aGUgU3dhZ2dlciBDb2RlZ2VuIHByb2plY3QsIHdoaWNoIGFsbG93cyBnZW5lcmF0aW9uIG9mIEFQSSBjbGllbnQgbGlicmFyaWVzIChTREsgZ2VuZXJhdGlvbiksIHNlcnZlciBzdHVicyBhbmQgZG9jdW1lbnRhdGlvbiBhdXRvbWF0aWNhbGx5IGdpdmVuIGFuIFtPcGVuQVBJIFNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKS4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGxhbmd1YWdlcy9mcmFtZXdvcmtzIGFyZSBzdXBwb3J0ZWQ6CgotICoqQVBJIGNsaWVudHMqKjogKipBY3Rpb25TY3JpcHQqKiwgKipBZGEqKiwgKipBcGV4KiosICoqQmFzaCoqLCAqKkMjKiogKC5uZXQgMi4wLCAzLjUgb3IgbGF0ZXIpLCAqKkMrKyoqIChjcHByZXN0LCBRdDUsIFRpemVuKSwgKipDbG9qdXJlKiosICoqRGFydCoqLCAqKkVsaXhpcioqLCAqKkVsbSoqLCAqKkVpZmZlbCoqLCAqKkVybGFuZyoqLCAqKkdvKiosICoqR3Jvb3Z5KiosICoqSGFza2VsbCoqIChodHRwLWNsaWVudCwgU2VydmFudCksICoqSmF2YSoqIChKZXJzZXkxLngsIEplcnNleTIueCwgT2tIdHRwLCBSZXRyb2ZpdDEueCwgUmV0cm9maXQyLngsIEZlaWduLCBSZXN0VGVtcGxhdGUsIFJFU1RFYXN5LCBWZXJ0eCwgR29vZ2xlIEFQSSBDbGllbnQgTGlicmFyeSBmb3IgSmF2YSwgUmVzdC1hc3N1cmVkKSwgKipLb3RsaW4qKiwgKipMdWEqKiwgKipOb2RlLmpzKiogKEVTNSwgRVM2LCBBbmd1bGFySlMgd2l0aCBHb29nbGUgQ2xvc3VyZSBDb21waWxlciBhbm5vdGF0aW9ucykgKipPYmplY3RpdmUtQyoqLCAqKlBlcmwqKiwgKipQSFAqKiwgKipQb3dlclNoZWxsKiosICoqUHl0aG9uKiosICoqUioqLCAqKlJ1YnkqKiwgKipSdXN0KiogKHJ1c3QsIHJ1c3Qtc2VydmVyKSwgKipTY2FsYSoqIChha2thLCBodHRwNHMsIHN3YWdnZXItYXN5bmMtaHR0cGNsaWVudCksICoqU3dpZnQqKiAoMi54LCAzLngsIDQueCwgNS54KSwgKipUeXBlc2NyaXB0KiogKEFuZ3VsYXIxLngsIEFuZ3VsYXIyLngsIEZldGNoLCBqUXVlcnksIE5vZGUpCi0gKipTZXJ2ZXIgc3R1YnMqKjogKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIE5hbmN5RngpLCAqKkMrKyoqIChQaXN0YWNoZSwgUmVzdGJlZCksICoqRXJsYW5nKiosICoqR28qKiwgKipIYXNrZWxsKiogKFNlcnZhbnQpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgUmVzdEVhc3ksIFBsYXkgRnJhbWV3b3JrLCBbUEtNU1RdKGh0dHBzOi8vZ2l0aHViLmNvbS9Qcm9LYXJtYS1JbmMvcGttc3QtZ2V0dGluZy1zdGFydGVkLWV4YW1wbGVzKSksICoqS290bGluKiosICoqUEhQKiogKEx1bWVuLCBTbGltLCBTaWxleCwgW1N5bWZvbnldKGh0dHBzOi8vc3ltZm9ueS5jb20vKSwgW1plbmQgRXhwcmVzc2l2ZV0oaHR0cHM6Ly9naXRodWIuY29tL3plbmRmcmFtZXdvcmsvemVuZC1leHByZXNzaXZlKSksICoqUHl0aG9uKiogKEZsYXNrKSwgKipOb2RlSlMqKiwgKipSdWJ5KiogKFNpbmF0cmEsIFJhaWxzNSksICoqUnVzdCoqIChydXN0LXNlcnZlciksICoqU2NhbGEqKiAoW0ZpbmNoXShodHRwczovL2dpdGh1Yi5jb20vZmluYWdsZS9maW5jaCksIFtMYWdvbV0oaHR0cHM6Ly9naXRodWIuY29tL2xhZ29tL2xhZ29tKSwgU2NhbGF0cmEpCi0gKipBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3JzKio6ICoqSFRNTCoqLCAqKkNvbmZsdWVuY2UgV2lraSoqCi0gKipDb25maWd1cmF0aW9uIGZpbGVzKio6IFsqKkFwYWNoZTIqKl0oaHR0cHM6Ly9odHRwZC5hcGFjaGUub3JnLykKLSAqKk90aGVycyoqOiAqKkpNZXRlcioqCgpDaGVjayBvdXQgW09wZW5BUEktU3BlY10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBPcGVuQVBJIHByb2plY3QuCgojIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW1ZlcnNpb25pbmddKCN2ZXJzaW9uaW5nKQogIC0gW092ZXJ2aWV3XSgjb3ZlcnZpZXcpCiAgLSBbVGFibGUgb2YgQ29udGVudHNdKCN0YWJsZS1vZi1jb250ZW50cykKICAtIEluc3RhbGxhdGlvbgogICAgLSBbQ29tcGF0aWJpbGl0eV0oI2NvbXBhdGliaWxpdHkpCiAgICAtIFtQcmVyZXF1aXNpdGVzXSgjcHJlcmVxdWlzaXRlcykKICAgICAgLSBbT1MgWCBVc2Vyc10oI29zLXgtdXNlcnMpCiAgICAtIFtCdWlsZGluZ10oI2J1aWxkaW5nKQogICAgLSBbRG9ja2VyXSgjZG9ja2VyKQogICAgICAtIFtEZXZlbG9wbWVudCBpbiBEb2NrZXJdKCNkZXZlbG9wbWVudC1pbi1kb2NrZXIpCiAgICAgIC0gW1J1biBkb2NrZXIgaW4gVmFncmFudF0oI3J1bi1kb2NrZXItaW4tdmFncmFudCkKICAgICAgLSBbUHVibGljIHByZS1idWlsdCBEb2NrZXIgaW1hZ2VzXSgjcHVibGljLXByZS1idWlsdC1kb2NrZXItaW1hZ2VzKQogICAgLSBbSG9tZWJyZXddKCNob21lYnJldykKICAtIFtHZXR0aW5nIFN0YXJ0ZWRdKCNnZXR0aW5nLXN0YXJ0ZWQpCiAgLSBHZW5lcmF0b3JzCiAgICAtIFtUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeV0oI3RvLWdlbmVyYXRlLWEtc2FtcGxlLWNsaWVudC1saWJyYXJ5KQogICAgLSBbR2VuZXJhdGluZyBsaWJyYXJpZXMgZnJvbSB5b3VyIHNlcnZlcl0oI2dlbmVyYXRpbmctbGlicmFyaWVzLWZyb20teW91ci1zZXJ2ZXIpCiAgICAtIFtNb2RpZnlpbmcgdGhlIGNsaWVudCBsaWJyYXJ5IGZvcm1hdF0oI21vZGlmeWluZy10aGUtY2xpZW50LWxpYnJhcnktZm9ybWF0KQogICAgLSBbTWFraW5nIHlvdXIgb3duIGNvZGVnZW4gbW9kdWxlc10oI21ha2luZy15b3VyLW93bi1jb2RlZ2VuLW1vZHVsZXMpCiAgICAtIFtXaGVyZSBpcyBKYXZhc2NyaXB0Pz8/XSgjd2hlcmUtaXMtamF2YXNjcmlwdCkKICAgIC0gW0dlbmVyYXRpbmcgYSBjbGllbnQgZnJvbSBsb2NhbCBmaWxlc10oI2dlbmVyYXRpbmctYS1jbGllbnQtZnJvbS1sb2NhbC1maWxlcykKICAgIC0gW0N1c3RvbWl6aW5nIHRoZSBnZW5lcmF0b3JdKCNjdXN0b21pemluZy10aGUtZ2VuZXJhdG9yKQogICAgLSBbVmFsaWRhdGluZyB5b3VyIE9wZW5BUEkgU3BlY10oI3ZhbGlkYXRpbmcteW91ci1vcGVuYXBpLXNwZWMpCiAgICAtIFtHZW5lcmF0aW5nIGR5bmFtaWMgaHRtbCBhcGkgZG9jdW1lbnRhdGlvbl0oI2dlbmVyYXRpbmctZHluYW1pYy1odG1sLWFwaS1kb2N1bWVudGF0aW9uKQogICAgLSBbR2VuZXJhdGluZyBzdGF0aWMgaHRtbCBhcGkgZG9jdW1lbnRhdGlvbl0oI2dlbmVyYXRpbmctc3RhdGljLWh0bWwtYXBpLWRvY3VtZW50YXRpb24pCiAgICAtIFtUbyBidWlsZCBhIHNlcnZlciBzdHViXSgjdG8tYnVpbGQtYS1zZXJ2ZXItc3R1YikKICAgIC0gW1RvIGJ1aWxkIHRoZSBjb2RlZ2VuIGxpYnJhcnldKCN0by1idWlsZC10aGUtY29kZWdlbi1saWJyYXJ5KQogIC0gW1dvcmtmbG93IEludGVncmF0aW9uXSgjd29ya2Zsb3ctaW50ZWdyYXRpb24pCiAgICAtIFtNYXZlbiBJbnRlZ3JhdGlvbl0oI21hdmVuLWludGVncmF0aW9uKQogICAgLSBbR3JhZGxlIEludGVncmF0aW9uXSgjZ3JhZGxlLWludGVncmF0aW9uKQogIC0gW0dpdGh1YiBJbnRlZ3JhdGlvbl0oI2dpdGh1Yi1pbnRlZ3JhdGlvbikKICAtIFtPbmxpbmUgR2VuZXJhdG9yc10oI29ubGluZS1nZW5lcmF0b3JzKQogIC0gW0d1aWRlbGluZXMgZm9yIENvbnRyaWJ1dGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjZ3VpZGVsaW5lcy1mb3ItY29udHJpYnV0aW5nKQogIC0gW0NvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBTd2FnZ2VyIENvZGVnZW5dKCNjb21wYW5pZXNwcm9qZWN0cy11c2luZy1zd2FnZ2VyLWNvZGVnZW4pCiAgLSBbUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjcHJlc2VudGF0aW9uc3ZpZGVvc3R1dG9yaWFsc2Jvb2tzKQogIC0gW1N3YWdnZXIgQ29kZWdlbiBDb3JlIFRlYW1dKCNzd2FnZ2VyLWNvZGVnZW4tY29yZS10ZWFtKQogIC0gW1N3YWdnZXIgQ29kZWdlbiBUZWNobmljYWwgQ29tbWl0dGVlXSgjc3dhZ2dlci1jb2RlZ2VuLXRlY2huaWNhbC1jb21taXR0ZWUpCiAgLSBbTGljZW5zZV0oI2xpY2Vuc2UpCgoKIyMgQ29tcGF0aWJpbGl0eQpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgMyByZXZpc2lvbnMgc2luY2UgaW5pdGlhbCBjcmVhdGlvbiBpbiAyMDEwLiAgVGhlIFN3YWdnZXIgQ29kZWdlbiBwcm9qZWN0IGhhcyB0aGUgZm9sbG93aW5nIGNvbXBhdGliaWxpdGllcyB3aXRoIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb246CgpTd2FnZ2VyIENvZGVnZW4gVmVyc2lvbiAgICB8IFJlbGVhc2UgRGF0ZSB8IE9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5IHwgTm90ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfC0tLS0tLS0tLS0tLS0tfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tCjMuMC42Mi1TTkFQU0hPVCAoY3VycmVudCAzLjAuMCwgdXBjb21pbmcgbWlub3IgcmVsZWFzZSkgW1NOQVBTSE9UXShodHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzL2lvL3N3YWdnZXIvY29kZWdlbi92My9zd2FnZ2VyLWNvZGVnZW4tY2xpLzMuMC42Mi1TTkFQU0hPVC8pfCBUQkQgICAgICAgICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCB8IE1pbm9yIHJlbGVhc2UKWzMuMC42MV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC42MSkgKCoqY3VycmVudCBzdGFibGUqKikgfCAyMDI0LTA4LTA5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjYxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC42MSkKWzMuMC42MF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC42MCkgfCAyMDI0LTA4LTAxICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjYwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC42MCkKWzMuMC41OV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41OSkgfCAyMDI0LTA3LTIyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjU5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41OSkKWzMuMC41OF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41OCkgfCAyMDI0LTA3LTA4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjU4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41OCkKWzMuMC41N10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41NykgfCAyMDI0LTA1LTI3ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjU3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41NykKWzMuMC41Nl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41NikgfCAyMDI0LTA1LTEwICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjU2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41NikKWzMuMC41NV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41NSkgfCAyMDI0LTA0LTIyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjU1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41NSkKWzMuMC41NF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41NCkgfCAyMDI0LTAyLTE5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjU0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41NCkKWzMuMC41M10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41MykgfCAyMDI0LTAyLTE0ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjUzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41MykKWzMuMC41Ml0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41MikgfCAyMDIzLTEyLTMwICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjUyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41MikKWzMuMC41MV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41MSkgfCAyMDIzLTExLTIxICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjUxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41MSkKWzMuMC41MF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41MCkgfCAyMDIzLTEwLTI2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjUwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41MCkKWzMuMC40OV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40OSkgfCAyMDIzLTEwLTIzICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQ5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40OSkKWzMuMC40OF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40OCkgfCAyMDIzLTEwLTE5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQ4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40OCkKWzMuMC40N10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40NykgfCAyMDIzLTEwLTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQ3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40NykKWzMuMC40Nl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40NikgfCAyMDIzLTA2LTA3ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQ2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40NikKWzMuMC40NV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40NSkgfCAyMDIzLTA2LTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQ1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40NSkKWzMuMC40NF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40NCkgfCAyMDIzLTA1LTIzICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQ0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40NCkKWzMuMC40M10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40MykgfCAyMDIzLTA1LTE3ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40MykKWzMuMC40Ml0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40MikgfCAyMDIzLTA0LTA1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40MikKWzMuMC40MV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40MSkgfCAyMDIzLTAyLTE2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40MSkKWzMuMC40MF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC40MCkgfCAyMDIzLTAxLTI3ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjQwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40MCkKWzMuMC4zOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zOSkgfCAyMDIzLTAxLTI1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjM5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zOSkKWzMuMC4zOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zOCkgfCAyMDIzLTAxLTIyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjM4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zOCkKWzMuMC4zN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zNykgfCAyMDIzLTAxLTE5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjM3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zNykKWzMuMC4zNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zNikgfCAyMDIyLTExLTEwICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjM2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zNikKWzMuMC4zNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zNSkgfCAyMDIyLTA4LTE1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjM1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zNSkKWzMuMC4zNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zNCkgfCAyMDIyLTA0LTEyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjM0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zNCkKWzMuMC4zM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zMykgfCAyMDIyLTAyLTA3ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjMzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zMykKWzMuMC4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zMikgfCAyMDIyLTAxLTExICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjMyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zMikKWzMuMC4zMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zMSkgfCAyMDIxLTEyLTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjMxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zMSkKWzMuMC4zMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zMCkgfCAyMDIxLTExLTE4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjMwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4zMCkKWzMuMC4yOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yOSkgfCAyMDIxLTEwLTA1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjI5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yOSkKWzMuMC4yOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yOCkgfCAyMDIxLTA5LTMwICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjI4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yOCkKWzMuMC4yN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yNykgfCAyMDIxLTA2LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjI3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yNykKWzMuMC4yNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yNikgfCAyMDIxLTA1LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjI2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yNikKWzMuMC4yNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yNSkgfCAyMDIxLTAzLTA0ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjI1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yNSkKWzMuMC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yNCkgfCAyMDIwLTEyLTI5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjI0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yNCkKWzMuMC4yM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yMykgfCAyMDIwLTExLTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjIzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yMykKWzMuMC4yMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yMikgfCAyMDIwLTEwLTA1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjIyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yMikKWzMuMC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yMSkgfCAyMDIwLTA3LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjIxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yMSkKWzMuMC4yMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yMCkgfCAyMDIwLTA1LTE4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjIwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4yMCkKWzMuMC4xOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xOSkgfCAyMDIwLTA0LTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjE5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xOSkKWzMuMC4xOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xOCkgfCAyMDIwLTAyLTI2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjE4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xOCkKWzMuMC4xN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xNykgfCAyMDIwLTAyLTIzICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjE3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xNykKWzMuMC4xN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xNikgfCAyMDIwLTAxLTE1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjE2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xNikKWzMuMC4xNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xNSkgfCAyMDIwLTAxLTAzICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjE1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xNSkKWzMuMC4xNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xNCkgfCAyMDE5LTExLTE2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjE0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xNCkKWzMuMC4xM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xMykgfCAyMDE5LTEwLTE2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjEzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xMykKWzMuMC4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xMikgfCAyMDE5LTEwLTE0ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjEyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xMikKWzMuMC4xMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xMSkgfCAyMDE5LTA4LTI0ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjExXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xMSkKWzMuMC4xMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xMCkgfCAyMDE5LTA3LTExICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjEwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC4xMCkKWzMuMC45XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjkpIHwgMjAxOS0wNi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC45XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC45KQpbMy4wLjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuOCkgfCAyMDE5LTA0LTI1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92My4wLjgpClszLjAuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC43KSB8IDIwMTktMDMtMjYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wICAgfCBbdGFnIHYzLjAuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNykKWzMuMC41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjUpIHwgMjAxOS0wMi0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC41KQpbMy4wLjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNCkgfCAyMDE5LTAxLTE2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92My4wLjQpClszLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4zKSB8IDIwMTgtMTEtMzAgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wICAgfCBbdGFnIHYzLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMykKWzMuMC4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjIpfCAyMDE4LTEwLTE5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCB8IE1pbm9yIHJlbGVhc2UKWzMuMC4xXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjEpfCAyMDE4LTEwLTA1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCB8IE1ham9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzClszLjAuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4wKXwgMjAxOC0wOS0wNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgfCBNYWpvciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcwoyLjQuNDQtU05BUFNIT1QgKGN1cnJlbnQgbWFzdGVyLCB1cGNvbWluZyBtaW5vciByZWxlYXNlKSBbU05BUFNIT1RdKGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvaW8vc3dhZ2dlci9zd2FnZ2VyLWNvZGVnZW4tY2xpLzIuNC40NC1TTkFQU0hPVC8pfCBUQkQgICAgICAgICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IE1pbm9yIHJlbGVhc2UKWzIuNC40M10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC40MykgKCoqY3VycmVudCBzdGFibGUqKikgfCAyMDI0LTA4LTA5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC40Ml0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuNDMpClsyLjQuNDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuNDIpIHwgMjAyNC0wNy0yOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuNDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjQyKQpbMi40LjQxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjQxKSB8IDIwMjQtMDQtMjIgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjQxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC40MSkKWzIuNC4zOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zOSkgfCAyMDI0LTAxLTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzkpClsyLjQuMzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzgpIHwgMjAyMy0xMi0yOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjM4KQpbMi40LjM3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjM3KSB8IDIwMjMtMTEtMjEgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjM3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zNykKWzIuNC4zNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zNikgfCAyMDIzLTEwLTI2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzYpClsyLjQuMzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzUpIHwgMjAyMy0xMC0yNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjM1KQpbMi40LjM0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjM0KSB8IDIwMjMtMTAtMTkgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjM0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zNCkKWzIuNC4zM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zMykgfCAyMDIzLTEwLTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzMpClsyLjQuMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzIpIHwgMjAyMy0wNS0xNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjMyKQpbMi40LjMxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjMxKSB8IDIwMjMtMDQtMDIgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjMxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zMSkKWzIuNC4zMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zMCkgfCAyMDIzLTAyLTE2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzApClsyLjQuMjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjkpIHwgMjAyMi0xMS0xMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjI5KQpbMi40LjI4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjI4KSB8IDIwMjItMDgtMTUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjI4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yOCkKWzIuNC4yN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yNykgfCAyMDIyLTA0LTEyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjcpClsyLjQuMjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjYpIHwgMjAyMi0wMi0wNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjI2KQpbMi40LjI1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjI1KSB8IDIwMjEtMTItMjggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjI1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yNSkKWzIuNC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yNCkgfCAyMDIxLTExLTE4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjQpClsyLjQuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjMpIHwgMjAyMS0xMC0wOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjIzKQpbMi40LjIyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjIyKSB8IDIwMjEtMDktMzAgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjIyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yMikKWzIuNC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yMSkgfCAyMDIxLTA2LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjEpClsyLjQuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjApIHwgMjAyMS0wNS0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjIwKQpbMi40LjE5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjE5KSB8IDIwMjEtMDMtMDQgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjE5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xOSkKWzIuNC4xOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xOCkgfCAyMDIwLTEyLTI5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTgpClsyLjQuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTcpIHwgMjAyMC0xMS0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjE3KQpbMi40LjE2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjE2KSB8IDIwMjAtMTAtMDUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjE2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xNikKWzIuNC4xNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xNSkgfCAyMDIwLTA3LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTUpClsyLjQuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTQpIHwgMjAyMC0wNS0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjE0KQpbMi40LjEzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjEzKSB8IDIwMjAtMDQtMDIgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjEzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xMykKWzIuNC4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xMikgfCAyMDIwLTAxLTE1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTIpClsyLjQuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTEpIHwgMjAyMC0wMS0wMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjExKQpbMi40LjEwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjEwKSB8IDIwMTktMTEtMTYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjEwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xMCkKWzIuNC45XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjkpIHwgMjAxOS0xMC0xNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuOSkKWzIuNC44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjgpIHwgMjAxOS0wOC0yNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuOCkKWzIuNC43XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjcpIHwgMjAxOS0wNy0xMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuNykKWzIuNC42XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjYpIHwgMjAxOS0wNi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuNikKWzIuNC41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjUpICB8IDIwMTktMDQtMjUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjUpClsyLjQuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC40KSB8IDIwMTktMDMtMjYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjQpClsyLjQuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yKSB8IDIwMTktMDItMTggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjIpClsyLjQuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xKSB8IDIwMTktMDEtMTYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjEpClsyLjQuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4wKSB8IDIwMTgtMTEtMzAgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjApClsyLjMuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMy4xKSB8IDIwMTgtMDEtMTcgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4zLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4zLjEpClsyLjMuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMy4wKSB8IDIwMTctMTItMjEgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4zLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4zLjApClsyLjIuM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMi4zKSB8IDIwMTctMDctMTUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4yLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4yLjMpClsyLjIuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMi4yKSB8IDIwMTctMDMtMDEgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4yLjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4yLjIpClsyLjIuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMi4xKSB8IDIwMTYtMDgtMDcgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4yLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4yLjEpClsyLjEuNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMS42KSB8IDIwMTYtMDQtMDYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4xLjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4xLjYpCjIuMC4xNyAgICAgICAgICAgICAgICAgICAgIHwgMjAxNC0wOC0yMiAgIHwgMS4xLCAxLjIgICAgICAgICAgICAgfCBbdGFnIHYyLjAuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS8yLjAuMTcpCjEuMC40ICAgICAgICAgICAgICAgICAgICAgIHwgMjAxMi0wNC0xMiAgIHwgMS4wLCAxLjEgICAgICAgICAgICAgfCBbdGFnIHYxLjAuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3N3YWdnZXItY29kZWdlbl8yLjkuMS0xLjEpCgojIyMgUHJlcmVxdWlzaXRlcwpJZiB5b3UncmUgbG9va2luZyBmb3IgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiwgeW91IGNhbiBncmFiIGl0IGRpcmVjdGx5IGZyb20gTWF2ZW4ub3JnIChKYXZhIDggcnVudGltZSBhdCBhIG1pbmltdW0pOgoKYGBgc2gKIyBEb3dubG9hZCBjdXJyZW50IHN0YWJsZSAyLngueCBicmFuY2ggKFN3YWdnZXIgYW5kIE9wZW5BUEkgdmVyc2lvbiAyKQp3Z2V0IGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9pby9zd2FnZ2VyL3N3YWdnZXItY29kZWdlbi1jbGkvMi40LjQzL3N3YWdnZXItY29kZWdlbi1jbGktMi40LjQzLmphciAtTyBzd2FnZ2VyLWNvZGVnZW4tY2xpLmphcgoKamF2YSAtamFyIHN3YWdnZXItY29kZWdlbi1jbGkuamFyIGhlbHAKCiMgRG93bmxvYWQgY3VycmVudCBzdGFibGUgMy54LnggYnJhbmNoIChPcGVuQVBJIHZlcnNpb24gMykKd2dldCBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvaW8vc3dhZ2dlci9jb2RlZ2VuL3YzL3N3YWdnZXItY29kZWdlbi1jbGkvMy4wLjYxL3N3YWdnZXItY29kZWdlbi1jbGktMy4wLjYxLmphciAtTyBzd2FnZ2VyLWNvZGVnZW4tY2xpLmphcgoKamF2YSAtamFyIHN3YWdnZXItY29kZWdlbi1jbGkuamFyIC0taGVscApgYGAKCkZvciBXaW5kb3dzIHVzZXJzLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgW3dnZXRdKGh0dHA6Ly9nbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQvcGFja2FnZXMvd2dldC5odG0pIG9yIHlvdSBjYW4gdXNlIEludm9rZS1XZWJSZXF1ZXN0IGluIFBvd2VyU2hlbGwgKDMuMCspLCBlLmcuIGBJbnZva2UtV2ViUmVxdWVzdCAtT3V0RmlsZSBzd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvaW8vc3dhZ2dlci9zd2FnZ2VyLWNvZGVnZW4tY2xpLzIuNC40My9zd2FnZ2VyLWNvZGVnZW4tY2xpLTIuNC40My5qYXJgCgpPbiBhIG1hYywgaXQncyBldmVuIGVhc2llciB3aXRoIGBicmV3YDoKYGBgc2gKYnJldyBpbnN0YWxsIHN3YWdnZXItY29kZWdlbgpgYGAKClRvIGJ1aWxkIGZyb20gc291cmNlLCB5b3UgbmVlZCB0aGUgZm9sbG93aW5nIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIGluIHlvdXIgYCRQQVRIOmAKCiogW0phdmEgMTErXShodHRwOi8vamF2YS5vcmFjbGUuY29tKQoKKiBbQXBhY2hlIG1hdmVuIDMuNi4yIG9yIGdyZWF0ZXJdKGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnLykKCiMjIyMgT1MgWCBVc2VycwpEb24ndCBmb3JnZXQgdG8gaW5zdGFsbCBKYXZhIDExKy4KCkV4cG9ydCBgSkFWQV9IT01FYCBpbiBvcmRlciB0byB1c2UgdGhlIHN1cHBvcnRlZCBKYXZhIHZlcnNpb246CmBgYHNoCmV4cG9ydCBKQVZBX0hPTUU9YC91c3IvbGliZXhlYy9qYXZhX2hvbWUgLXYgMTFgCmV4cG9ydCBQQVRIPSR7SkFWQV9IT01FfS9iaW46JFBBVEgKYGBgCgojIyMgQnVpbGRpbmcKCkFmdGVyIGNsb25pbmcgdGhlIHByb2plY3QsIHlvdSBjYW4gYnVpbGQgaXQgZnJvbSBzb3VyY2Ugd2l0aCB0aGlzIGNvbW1hbmQ6CmBgYHNoCm12biBjbGVhbiBwYWNrYWdlCmBgYAoKSWYgeW91IGRvbid0IGhhdmUgbWF2ZW4gaW5zdGFsbGVkLCB5b3UgbWF5IGRpcmVjdGx5IHVzZSB0aGUgaW5jbHVkZWQgW21hdmVuIHdyYXBwZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90YWthcmkvbWF2ZW4td3JhcHBlciksIGFuZCBidWlsZCB3aXRoIHRoZSBjb21tYW5kOgpgYGBzaAouL212bncgY2xlYW4gcGFja2FnZQpgYGAKCiMjIyBIb21lYnJldwoKVG8gaW5zdGFsbCwgcnVuIGBicmV3IGluc3RhbGwgc3dhZ2dlci1jb2RlZ2VuYAoKSGVyZSBpcyBhbiBleGFtcGxlIHVzYWdlOgpgYGBzaApzd2FnZ2VyLWNvZGVnZW4gZ2VuZXJhdGUgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiAtbCBydWJ5IC1vIC90bXAvdGVzdC8KYGBgCgojIyMgRG9ja2VyCgojIyMjIERldmVsb3BtZW50IGluIGRvY2tlcgoKWW91IGNhbiB1c2UgYHJ1bi1pbi1kb2NrZXIuc2hgIHRvIGRvIGFsbCBkZXZlbG9wbWVudC4gVGhpcyBzY3JpcHQgbWFwcyB5b3VyIGxvY2FsIHJlcG9zaXRvcnkgdG8gYC9nZW5gCmluIHRoZSBkb2NrZXIgY29udGFpbmVyLiBJdCBhbHNvIG1hcHMgYH4vLm0yL3JlcG9zaXRvcnlgIHRvIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIgbG9jYXRpb24uCgpUbyBleGVjdXRlIGBtdm4gcGFja2FnZWA6CgpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbgpjZCBzd2FnZ2VyLWNvZGVnZW4KLi9ydW4taW4tZG9ja2VyLnNoIG12biBwYWNrYWdlCmBgYAoKQnVpbGQgYXJ0aWZhY3RzIGFyZSBub3cgYWNjZXNzaWJsZSBpbiB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5LgoKT25jZSBidWlsdCwgYHJ1bi1pbi1kb2NrZXIuc2hgIHdpbGwgYWN0IGFzIGFuIGV4ZWN1dGFibGUgZm9yIHN3YWdnZXItY29kZWdlbi1jbGkuIFRvIGdlbmVyYXRlIGNvZGUsIHlvdSdsbCBuZWVkIHRvIG91dHB1dCB0byBhIGRpcmVjdG9yeSB1bmRlciBgL2dlbmAgKGUuZy4gYC9nZW4vb3V0YCkuIEZvciBleGFtcGxlOgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIGhlbHAgIyBFeGVjdXRlcyAnaGVscCcgY29tbWFuZCBmb3Igc3dhZ2dlci1jb2RlZ2VuLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggbGFuZ3MgIyBFeGVjdXRlcyAnbGFuZ3MnIGNvbW1hbmQgZm9yIHN3YWdnZXItY29kZWdlbi1jbGkKLi9ydW4taW4tZG9ja2VyLnNoIC9nZW4vYmluL2dvLXBldHN0b3JlLnNoICAjIEJ1aWxkcyB0aGUgR28gY2xpZW50Ci4vcnVuLWluLWRvY2tlci5zaCBnZW5lcmF0ZSAtaSBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi9zcmMvdGVzdC9yZXNvdXJjZXMvMl8wL3BldHN0b3JlLnlhbWwgXAogICAgLWwgZ28gLW8gL2dlbi9vdXQvZ28tcGV0c3RvcmUgLURwYWNrYWdlTmFtZT1wZXRzdG9yZSAjIGdlbmVyYXRlcyBnbyBjbGllbnQsIG91dHB1dHMgbG9jYWxseSB0byAuL291dC9nby1wZXRzdG9yZQpgYGAKIyMjIyBTdGFuZGFsb25lIGdlbmVyYXRvciBEZXZlbG9wbWVudCBpbiBkb2NrZXIKClNlZSBbc3RhbmRhbG9uZSBnZW5lcmF0b3IgZGV2ZWxvcG1lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvc3RhbmRhbG9uZS1nZW4tZGV2L3N0YW5kYWxvbmUtZ2VuZXJhdG9yLWRldmVsb3BtZW50Lm1kKQoKIyMjIyBSdW4gRG9ja2VyIGluIFZhZ3JhbnQKUHJlcmVxdWlzaXRlOiBpbnN0YWxsIFtWYWdyYW50XShodHRwczovL3d3dy52YWdyYW50dXAuY29tL2Rvd25sb2Fkcy5odG1sKSBhbmQgW1ZpcnR1YWxCb3hdKGh0dHBzOi8vd3d3LnZpcnR1YWxib3gub3JnL3dpa2kvRG93bmxvYWRzKS4KIGBgYHNoCmdpdCBjbG9uZSBodHRwOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0CmNkIHN3YWdnZXItY29kZWdlbgp2YWdyYW50IHVwCnZhZ3JhbnQgc3NoCmNkIC92YWdyYW50Ci4vcnVuLWluLWRvY2tlci5zaCBtdm4gcGFja2FnZQogYGBgCgojIyMjIFB1YmxpYyBQcmUtYnVpbHQgRG9ja2VyIGltYWdlcwoKIC0gaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3N3YWdnZXJhcGkvc3dhZ2dlci1nZW5lcmF0b3IvIChvZmZpY2lhbCB3ZWIgc2VydmljZSkKIC0gaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3N3YWdnZXJhcGkvc3dhZ2dlci1jb2RlZ2VuLWNsaS8gKG9mZmljaWFsIENMSSkKCgojIyMjIyBTd2FnZ2VyIEdlbmVyYXRvciBEb2NrZXIgSW1hZ2UKClRoZSBTd2FnZ2VyIEdlbmVyYXRvciBpbWFnZSBjYW4gYWN0IGFzIGEgc2VsZi1ob3N0ZWQgd2ViIGFwcGxpY2F0aW9uIGFuZCBBUEkgZm9yIGdlbmVyYXRpbmcgY29kZS4gVGhpcyBjb250YWluZXIgY2FuIGJlICBpbmNvcnBvcmF0ZWQgaW50byBhIENJIHBpcGVsaW5lLCBhbmQgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIEhUVFAgcmVxdWVzdHMgYW5kIHNvbWUgZG9ja2VyIG9yY2hlc3RyYXRpb24gdG8gYWNjZXNzIGdlbmVyYXRlZCBjb2RlLgoKRXhhbXBsZSB1c2FnZSAobm90ZSB0aGlzIGFzc3VtZXMgYGpxYCBpcyBpbnN0YWxsZWQgZm9yIGNvbW1hbmQgbGluZSBwcm9jZXNzaW5nIG9mIEpTT04pOgoKYGBgc2gKIyBTdGFydCBjb250YWluZXIgYW5kIHNhdmUgdGhlIGNvbnRhaW5lciBpZApDSUQ9JChkb2NrZXIgcnVuIC1kIHN3YWdnZXJhcGkvc3dhZ2dlci1nZW5lcmF0b3IpCiMgYWxsb3cgZm9yIHN0YXJ0dXAKc2xlZXAgNQojIEdldCB0aGUgSVAgb2YgdGhlIHJ1bm5pbmcgY29udGFpbmVyCkdFTl9JUD0kKGRvY2tlciBpbnNwZWN0IC0tZm9ybWF0ICd7ey5OZXR3b3JrU2V0dGluZ3MuSVBBZGRyZXNzfX0nICAkQ0lEKQojIEV4ZWN1dGUgYW4gSFRUUCByZXF1ZXN0IGFuZCBzdG9yZSB0aGUgZG93bmxvYWQgbGluawpSRVNVTFQ9JChjdXJsIC1YIFBPU1QgLS1oZWFkZXIgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLS1oZWFkZXIgJ0FjY2VwdDogYXBwbGljYXRpb24vanNvbicgLWQgJ3sKICAic3dhZ2dlclVybCI6ICJodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIgp9JyAnaHR0cDovL2xvY2FsaG9zdDo4MTg4L2FwaS9nZW4vY2xpZW50cy9qYXZhc2NyaXB0JyB8IGpxICcubGluaycgfCB0ciAtZCAnIicpCiMgRG93bmxvYWQgdGhlIGdlbmVyYXRlZCB6aXAgYW5kIHJlZGlyZWN0IHRvIGEgZmlsZQpjdXJsICRSRVNVTFQgPiByZXN1bHQuemlwCiMgU2h1dGRvd24gdGhlIHN3YWdnZXIgZ2VuZXJhdG9yIGltYWdlCmRvY2tlciBzdG9wICRDSUQgJiYgZG9ja2VyIHJtICRDSUQKYGBgCgpJbiB0aGUgZXhhbXBsZSBhYm92ZSwgYHJlc3VsdC56aXBgIHdpbGwgY29udGFpbiB0aGUgZ2VuZXJhdGVkIGNsaWVudC4KCiMjIyMjIFN3YWdnZXIgQ29kZWdlbiBDTEkgRG9ja2VyIEltYWdlCgpUaGUgU3dhZ2dlciBDb2RlZ2VuIGltYWdlIGFjdHMgYXMgYSBzdGFuZGFsb25lIGV4ZWN1dGFibGUuIEl0IGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIHRvIGluc3RhbGxpbmcgdmlhIGhvbWVicmV3LCBvciBmb3IgZGV2ZWxvcGVycyB3aG8gYXJlIHVuYWJsZSB0byBpbnN0YWxsIEphdmEgb3IgdXBncmFkZSB0aGUgaW5zdGFsbGVkIHZlcnNpb24uCgpUbyBnZW5lcmF0ZSBjb2RlIHdpdGggdGhpcyBpbWFnZSwgeW91J2xsIG5lZWQgdG8gbW91bnQgYSBsb2NhbCBsb2NhdGlvbiBhcyBhIHZvbHVtZS4KCkV4YW1wbGU6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgJHtQV0R9Oi9sb2NhbCBzd2FnZ2VyYXBpL3N3YWdnZXItY29kZWdlbi1jbGkgZ2VuZXJhdGUgXAogICAgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiBcCiAgICAtbCBnbyBcCiAgICAtbyAvbG9jYWwvb3V0L2dvCmBgYAoKKE9uIFdpbmRvd3MgcmVwbGFjZSBgJHtQV0R9YCB3aXRoIGAlQ0QlYCkKClRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGxvY2F0ZWQgdW5kZXIgYC4vb3V0L2dvYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClRvIGdlbmVyYXRlIGEgUEhQIGNsaWVudCBmb3IgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiwgcGxlYXNlIHJ1biB0aGUgZm9sbG93aW5nCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuCmNkIHN3YWdnZXItY29kZWdlbgptdm4gY2xlYW4gcGFja2FnZQpqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBnZW5lcmF0ZSBcCiAgIC1pIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24gXAogICAtbCBwaHAgXAogICAtbyAvdmFyL3RtcC9waHBfYXBpX2NsaWVudApgYGAKKGlmIHlvdSdyZSBvbiBXaW5kb3dzLCByZXBsYWNlIHRoZSBsYXN0IGNvbW1hbmQgd2l0aCBgamF2YSAtamFyIG1vZHVsZXNcc3dhZ2dlci1jb2RlZ2VuLWNsaVx0YXJnZXRcc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiAtbCBwaHAgLW8gYzpcdGVtcFxwaHBfYXBpX2NsaWVudGApCgpZb3UgY2FuIGFsc28gZG93bmxvYWQgdGhlIEpBUiAobGF0ZXN0IHJlbGVhc2UpIGRpcmVjdGx5IGZyb20gW21hdmVuLm9yZ10oaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL2lvL3N3YWdnZXIvc3dhZ2dlci1jb2RlZ2VuLWNsaS8yLjQuNDMvc3dhZ2dlci1jb2RlZ2VuLWNsaS0yLjQuNDMuamFyKQoKVG8gZ2V0IGEgbGlzdCBvZiAqKmdlbmVyYWwqKiBvcHRpb25zIGF2YWlsYWJsZSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgaGVscCBnZW5lcmF0ZWAgKGZvciB2ZXJzaW9uIDMueCBjaGVjayBbMy4wLjAgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjApKQoKVG8gZ2V0IGEgbGlzdCBvZiBQSFAgc3BlY2lmaWVkIG9wdGlvbnMgKHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gdGhlIGdlbmVyYXRvciB3aXRoIGEgY29uZmlnIGZpbGUgdmlhIHRoZSBgLWNgIG9wdGlvbiksIHBsZWFzZSBydW4gYGphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGNvbmZpZy1oZWxwIC1sIHBocGAKCiMjIEdlbmVyYXRvcnMKCiMjIyBUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeQpZb3UgY2FuIGJ1aWxkIGEgY2xpZW50IGFnYWluc3QgdGhlIHN3YWdnZXIgc2FtcGxlIFtwZXRzdG9yZV0oaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvKSBBUEkgYXMgZm9sbG93czoKCmBgYHNoCi4vYmluL2phdmEtcGV0c3RvcmUuc2gKYGBgCgooT24gV2luZG93cywgcnVuIGAuXGJpblx3aW5kb3dzXGphdmEtcGV0c3RvcmUuYmF0YCBpbnN0ZWFkKQoKVGhpcyB3aWxsIHJ1biB0aGUgZ2VuZXJhdG9yIHdpdGggdGhpcyBjb21tYW5kOgoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgZ2VuZXJhdGUgXAogIC1pIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24gXAogIC1sIGphdmEgXAogIC1vIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEKYGBgCgp3aXRoIGEgbnVtYmVyIG9mIG9wdGlvbnMuIFlvdSBjYW4gZ2V0IHRoZSBvcHRpb25zIHdpdGggdGhlIGBoZWxwIGdlbmVyYXRlYCBjb21tYW5kIChiZWxvdyBvbmx5IHNob3dzIHBhcnRpYWwgcmVzdWx0cyk6CgpgYGAKTkFNRQogICAgICAgIHN3YWdnZXItY29kZWdlbi1jbGkgZ2VuZXJhdGUgLSBHZW5lcmF0ZSBjb2RlIHdpdGggY2hvc2VuIGxhbmcKClNZTk9QU0lTCiAgICAgICAgc3dhZ2dlci1jb2RlZ2VuLWNsaSBnZW5lcmF0ZQogICAgICAgICAgICAgICAgWygtYSA8YXV0aG9yaXphdGlvbj4gfCAtLWF1dGggPGF1dGhvcml6YXRpb24+KV0KICAgICAgICAgICAgICAgIFstLWFkZGl0aW9uYWwtcHJvcGVydGllcyA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWFwaS1wYWNrYWdlIDxhcGkgcGFja2FnZT5dIFstLWFydGlmYWN0LWlkIDxhcnRpZmFjdCBpZD5dCiAgICAgICAgICAgICAgICBbLS1hcnRpZmFjdC12ZXJzaW9uIDxhcnRpZmFjdCB2ZXJzaW9uPl0KICAgICAgICAgICAgICAgIFsoLWMgPGNvbmZpZ3VyYXRpb24gZmlsZT4gfCAtLWNvbmZpZyA8Y29uZmlndXJhdGlvbiBmaWxlPildCiAgICAgICAgICAgICAgICBbLUQgPHN5c3RlbSBwcm9wZXJ0aWVzPi4uLl0gWy0tZ2l0LXJlcG8taWQgPGdpdCByZXBvIGlkPl0KICAgICAgICAgICAgICAgIFstLWdpdC11c2VyLWlkIDxnaXQgdXNlciBpZD5dIFstLWdyb3VwLWlkIDxncm91cCBpZD5dCiAgICAgICAgICAgICAgICBbLS1odHRwLXVzZXItYWdlbnQgPGh0dHAgdXNlciBhZ2VudD5dCiAgICAgICAgICAgICAgICAoLWkgPHNwZWMgZmlsZT4gfCAtLWlucHV0LXNwZWMgPHNwZWMgZmlsZT4pCiAgICAgICAgICAgICAgICBbLS1pZ25vcmUtZmlsZS1vdmVycmlkZSA8aWdub3JlIGZpbGUgb3ZlcnJpZGUgbG9jYXRpb24+XQogICAgICAgICAgICAgICAgWy0taW1wb3J0LW1hcHBpbmdzIDxpbXBvcnQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWy0taW5zdGFudGlhdGlvbi10eXBlcyA8aW5zdGFudGlhdGlvbiB0eXBlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT5dCiAgICAgICAgICAgICAgICAoLWwgPGxhbmd1YWdlPiB8IC0tbGFuZyA8bGFuZ3VhZ2U+KQogICAgICAgICAgICAgICAgWy0tbGFuZ3VhZ2Utc3BlY2lmaWMtcHJpbWl0aXZlcyA8bGFuZ3VhZ2Ugc3BlY2lmaWMgcHJpbWl0aXZlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1saWJyYXJ5IDxsaWJyYXJ5Pl0gWy0tbW9kZWwtbmFtZS1wcmVmaXggPG1vZGVsIG5hbWUgcHJlZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1wYWNrYWdlIDxtb2RlbCBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFsoLW8gPG91dHB1dCBkaXJlY3Rvcnk+IHwgLS1vdXRwdXQgPG91dHB1dCBkaXJlY3Rvcnk+KV0KICAgICAgICAgICAgICAgIFstLXJlbGVhc2Utbm90ZSA8cmVsZWFzZSBub3RlPl0gWy0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXhdCiAgICAgICAgICAgICAgICBbLS1yZXNlcnZlZC13b3Jkcy1tYXBwaW5ncyA8cmVzZXJ2ZWQgd29yZCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbKC1zIHwgLS1za2lwLW92ZXJ3cml0ZSldCiAgICAgICAgICAgICAgICBbKC10IDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+IHwgLS10ZW1wbGF0ZS1kaXIgPHRlbXBsYXRlIGRpcmVjdG9yeT4pXQogICAgICAgICAgICAgICAgWy0tdHlwZS1tYXBwaW5ncyA8dHlwZSBtYXBwaW5ncz4uLi5dIFsoLXYgfCAtLXZlcmJvc2UpXQoKT1BUSU9OUwogICAgICAgIC1hIDxhdXRob3JpemF0aW9uPiwgLS1hdXRoIDxhdXRob3JpemF0aW9uPgogICAgICAgICAgICBhZGRzIGF1dGhvcml6YXRpb24gaGVhZGVycyB3aGVuIGZldGNoaW5nIHRoZSBzd2FnZ2VyIGRlZmluaXRpb25zCiAgICAgICAgICAgIHJlbW90ZWx5LiBQYXNzIGluIGEgVVJMLWVuY29kZWQgc3RyaW5nIG9mIG5hbWU6aGVhZGVyIHdpdGggYSBjb21tYQogICAgICAgICAgICBzZXBhcmF0aW5nIG11bHRpcGxlIHZhbHVlcwoKLi4uLi4uIChyZXN1bHRzIG9taXR0ZWQpCgogICAgICAgIC12LCAtLXZlcmJvc2UKICAgICAgICAgICAgdmVyYm9zZSBtb2RlCgpgYGAKCllvdSBjYW4gdGhlbiBjb21waWxlIGFuZCBydW4gdGhlIGNsaWVudCwgYXMgd2VsbCBhcyB1bml0IHRlc3RzIGFnYWluc3QgaXQ6CgpgYGBzaApjZCBzYW1wbGVzL2NsaWVudC9wZXRzdG9yZS9qYXZhCm12biBwYWNrYWdlCmBgYAoKT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgcGV0c3RvcmUgc2FtcGxlcywgdG9vOgpgYGBzaAouL2Jpbi9hbmRyb2lkLXBldHN0b3JlLnNoCi4vYmluL2phdmEtcGV0c3RvcmUuc2gKLi9iaW4vb2JqYy1wZXRzdG9yZS5zaApgYGAKCiMjIyBHZW5lcmF0aW5nIGxpYnJhcmllcyBmcm9tIHlvdXIgc2VydmVyCkl0J3MganVzdCBhcyBlYXN5LS1qdXN0IHVzZSB0aGUgYC1pYCBmbGFnIHRvIHBvaW50IHRvIGVpdGhlciBhIHNlcnZlciBvciBmaWxlLgoKIyMjIE1vZGlmeWluZyB0aGUgY2xpZW50IGxpYnJhcnkgZm9ybWF0CkRvbid0IGxpa2UgdGhlIGRlZmF1bHQgc3dhZ2dlciBjbGllbnQgc3ludGF4PyAgV2FudCBhIGRpZmZlcmVudCBsYW5ndWFnZSBzdXBwb3J0ZWQ/ICBObyBwcm9ibGVtISAgU3dhZ2dlciBDb2RlZ2VuIHByb2Nlc3NlcyBtdXN0YWNoZSB0ZW1wbGF0ZXMgd2l0aCB0aGUgW2ptdXN0YWNoZV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbXNraXZlcnQvam11c3RhY2hlKSBlbmdpbmUuICBZb3UgY2FuIG1vZGlmeSBvdXIgdGVtcGxhdGVzIG9yIG1ha2UgeW91ciBvd24uCgpZb3UgY2FuIGxvb2sgYXQgYG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuL3NyYy9tYWluL3Jlc291cmNlcy8ke3lvdXItbGFuZ3VhZ2V9YCBmb3IgZXhhbXBsZXMuICBUbyBtYWtlIHlvdXIgb3duIHRlbXBsYXRlcywgY3JlYXRlIHlvdXIgb3duIGZpbGVzIGFuZCB1c2UgdGhlIGAtdGAgZmxhZyB0byBzcGVjaWZ5IHlvdXIgdGVtcGxhdGUgZm9sZGVyLiAgSXQgYWN0dWFsbHkgaXMgdGhhdCBlYXN5LgoKIyMjIE1ha2luZyB5b3VyIG93biBjb2RlZ2VuIG1vZHVsZXMKSWYgeW91J3JlIHN0YXJ0aW5nIGEgcHJvamVjdCB3aXRoIGEgbmV3IGxhbmd1YWdlIGFuZCBkb24ndCBzZWUgd2hhdCB5b3UgbmVlZCwgU3dhZ2dlciBDb2RlZ2VuIGNhbiBoZWxwIHlvdSBjcmVhdGUgYSBwcm9qZWN0IHRvIGdlbmVyYXRlIHlvdXIgb3duIGxpYnJhcmllczoKCmBgYHNoCmphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIG1ldGEgXAogIC1vIG91dHB1dC9teUxpYnJhcnkgLW4gbXlDbGllbnRDb2RlZ2VuIC1wIGNvbS5teS5jb21wYW55LmNvZGVnZW4KYGBgCgpUaGlzIHdpbGwgd3JpdGUsIGluIHRoZSBmb2xkZXIgYG91dHB1dC9teUxpYnJhcnlgLCBhbGwgdGhlIGZpbGVzIHlvdSBuZWVkIHRvIGdldCBzdGFydGVkLCBpbmNsdWRpbmcgYSBgUkVBRE1FLm1kLiBPbmNlIG1vZGlmaWVkIGFuZCBjb21waWxlZCwgeW91IGNhbiBsb2FkIHlvdXIgbGlicmFyeSB3aXRoIHRoZSBjb2RlZ2VuIGFuZCBnZW5lcmF0ZSBjbGllbnRzIHdpdGggeW91ciBvd24sIGN1c3RvbS1yb2xsZWQgbG9naWMuCgpZb3Ugd291bGQgdGhlbiBjb21waWxlIHlvdXIgbGlicmFyeSBpbiB0aGUgYG91dHB1dC9teUxpYnJhcnlgIGZvbGRlciB3aXRoIGBtdm4gcGFja2FnZWAgYW5kIGV4ZWN1dGUgdGhlIGNvZGVnZW4gbGlrZSBzdWNoOgoKYGBgc2gKamF2YSAtY3Agb3V0cHV0L215TGlicmFyeS90YXJnZXQvbXlDbGllbnRDb2RlZ2VuLXN3YWdnZXItY29kZWdlbi0xLjAuMC5qYXI6bW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBpby5zd2FnZ2VyLmNvZGVnZW4uU3dhZ2dlckNvZGVnZW4KYGBgCkZvciBXaW5kb3dzIHVzZXJzLCB5b3Ugd2lsbCBuZWVkIHRvIHVzZSBgO2AgaW5zdGVhZCBvZiBgOmAgaW4gdGhlIGNsYXNzcGF0aCwgZS5nLgpgYGAKamF2YSAtY3Agb3V0cHV0L215TGlicmFyeS90YXJnZXQvbXlDbGllbnRDb2RlZ2VuLXN3YWdnZXItY29kZWdlbi0xLjAuMC5qYXI7bW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBpby5zd2FnZ2VyLmNvZGVnZW4uU3dhZ2dlckNvZGVnZW4KYGBgCgpOb3RlIHRoZSBgbXlDbGllbnRDb2RlZ2VuYCBpcyBhbiBvcHRpb24gbm93LCBhbmQgeW91IGNhbiB1c2UgdGhlIHVzdWFsIGFyZ3VtZW50cyBmb3IgZ2VuZXJhdGluZyB5b3VyIGxpYnJhcnk6CgpgYGBzaApqYXZhIC1jcCBvdXRwdXQvbXlMaWJyYXJ5L3RhcmdldC9teUNsaWVudENvZGVnZW4tc3dhZ2dlci1jb2RlZ2VuLTEuMC4wLmphcjptb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIFwKICBpby5zd2FnZ2VyLmNvZGVnZW4uU3dhZ2dlckNvZGVnZW4gZ2VuZXJhdGUgLWwgbXlDbGllbnRDb2RlZ2VuXAogIC1pIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24gXAogIC1vIG15Q2xpZW50CmBgYAoKU2VlIGFsc28gW3N0YW5kYWxvbmUgZ2VuZXJhdG9yIGRldmVsb3BtZW50XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2Jsb2IvbWFzdGVyL3N0YW5kYWxvbmUtZ2VuLWRldi9zdGFuZGFsb25lLWdlbmVyYXRvci1kZXZlbG9wbWVudC5tZCkKCiMjIyBXaGVyZSBpcyBKYXZhc2NyaXB0Pz8/ClNlZSBvdXIgW2phdmFzY3JpcHQgbGlicmFyeV0oaHR0cDovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcyktLWl0J3MgY29tcGxldGVseSBkeW5hbWljIGFuZCBkb2Vzbid0IHJlcXVpcmUKc3RhdGljIGNvZGUgZ2VuZXJhdGlvbi4KVGhlcmUgaXMgYSB0aGlyZC1wYXJ0eSBjb21wb25lbnQgY2FsbGVkIFtzd2FnZ2VyLWpzLWNvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS93Y2FuZGlsbG9uL3N3YWdnZXItanMtY29kZWdlbikgdGhhdCBjYW4gZ2VuZXJhdGUgYW5ndWxhcmpzIG9yIG5vZGVqcyBzb3VyY2UgY29kZSBmcm9tIGFuIE9wZW5BUEkgU3BlY2lmaWNhdGlvbi4KCjpleGNsYW1hdGlvbjogT24gRGVjIDd0aCAyMDE1LCBhIEphdmFzY3JpcHQgQVBJIGNsaWVudCBnZW5lcmF0b3IgaGFzIGJlZW4gYWRkZWQgYnkgQGpmaWFsYS4KCiMjIyBHZW5lcmF0aW5nIGEgY2xpZW50IGZyb20gbG9jYWwgZmlsZXMKSWYgeW91IGRvbid0IHdhbnQgdG8gY2FsbCB5b3VyIHNlcnZlciwgeW91IGNhbiBzYXZlIHRoZSBPcGVuQVBJIFNwZWMgZmlsZXMgaW50byBhIGRpcmVjdG9yeSBhbmQgcGFzcyBhbiBhcmd1bWVudAp0byB0aGUgY29kZSBnZW5lcmF0b3IgbGlrZSB0aGlzOgoKYGBgCi1pIC4vbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4vc3JjL3Rlc3QvcmVzb3VyY2VzLzJfMC9wZXRzdG9yZS5qc29uCmBgYAoKR3JlYXQgZm9yIGNyZWF0aW5nIGxpYnJhcmllcyBvbiB5b3VyIGNpIHNlcnZlciwgZnJvbSB0aGUgW1N3YWdnZXIgRWRpdG9yXShodHRwOi8vZWRpdG9yLnN3YWdnZXIuaW8pLi4uIG9yIHdoaWxlIGNvZGluZyBvbiBhbiBhaXJwbGFuZS4KCiMjIyBTZWxlY3RpdmUgZ2VuZXJhdGlvbgpZb3UgbWF5IG5vdCB3YW50IHRvIGdlbmVyYXRlICphbGwqIG1vZGVscyBpbiB5b3VyIHByb2plY3QuICBMaWtld2lzZSB5b3UgbWF5IHdhbnQganVzdCBvbmUgb3IgdHdvIGFwaXMgdG8gYmUgd3JpdHRlbi4gIElmIHRoYXQncyB0aGUgY2FzZSwgeW91IGNhbiB1c2Ugc3lzdGVtIHByb3BlcnRpZXMgdG8gY29udHJvbCB0aGUgb3V0cHV0OgoKVGhlIGRlZmF1bHQgaXMgZ2VuZXJhdGUgKmV2ZXJ5dGhpbmcqIHN1cHBvcnRlZCBieSB0aGUgc3BlY2lmaWMgbGlicmFyeS4gIE9uY2UgeW91IGVuYWJsZSBhIGZlYXR1cmUsIGl0IHdpbGwgcmVzdHJpY3QgdGhlIGNvbnRlbnRzIGdlbmVyYXRlZDoKCmBgYHNoCiMgZ2VuZXJhdGUgb25seSBtb2RlbHMKamF2YSAtRG1vZGVscyB7b3B0c30KCiMgZ2VuZXJhdGUgb25seSBhcGlzCmphdmEgLURhcGlzIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IHN1cHBvcnRpbmcgZmlsZXMKamF2YSAtRHN1cHBvcnRpbmdGaWxlcwoKIyBnZW5lcmF0ZSBtb2RlbHMgYW5kIHN1cHBvcnRpbmcgZmlsZXMKamF2YSAtRG1vZGVscyAtRHN1cHBvcnRpbmdGaWxlcwpgYGAKClRvIGNvbnRyb2wgdGhlIHNwZWNpZmljIGZpbGVzIGJlaW5nIGdlbmVyYXRlZCwgeW91IGNhbiBwYXNzIGEgQ1NWIGxpc3Qgb2Ygd2hhdCB5b3Ugd2FudDoKYGBgc2gKIyBnZW5lcmF0ZSB0aGUgVXNlciBhbmQgUGV0IG1vZGVscyBvbmx5Ci1EbW9kZWxzPVVzZXIsUGV0CgojIGdlbmVyYXRlIHRoZSBVc2VyIG1vZGVsIGFuZCB0aGUgc3VwcG9ydGluZ0ZpbGUgYFN0cmluZ1V0aWwuamF2YWA6Ci1EbW9kZWxzPVVzZXIgLURzdXBwb3J0aW5nRmlsZXM9U3RyaW5nVXRpbC5qYXZhCmBgYAoKVG8gY29udHJvbCBnZW5lcmF0aW9uIG9mIGRvY3MgYW5kIHRlc3RzIGZvciBhcGkgYW5kIG1vZGVscywgcGFzcyBmYWxzZSB0byB0aGUgb3B0aW9uLiBGb3IgYXBpLCB0aGVzZSBvcHRpb25zIGFyZSAgYC1EYXBpVGVzdHM9ZmFsc2VgIGFuZCBgLURhcGlEb2NzPWZhbHNlYC4gRm9yIG1vZGVscywgYC1EbW9kZWxUZXN0cz1mYWxzZWAgYW5kIGAtRG1vZGVsRG9jcz1mYWxzZWAuClRoZXNlIG9wdGlvbnMgZGVmYXVsdCB0byB0cnVlIGFuZCBkb24ndCBsaW1pdCB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgZmVhdHVyZSBvcHRpb25zIGxpc3RlZCBhYm92ZSAobGlrZSBgLURhcGlgKToKCmBgYHNoCiMgZ2VuZXJhdGUgb25seSBtb2RlbHMgKHdpdGggdGVzdHMgYW5kIGRvY3VtZW50YXRpb24pCmphdmEgLURtb2RlbHMge29wdHN9CgojIGdlbmVyYXRlIG9ubHkgbW9kZWxzICh3aXRoIHRlc3RzIGJ1dCBubyBkb2N1bWVudGF0aW9uKQpqYXZhIC1EbW9kZWxzIC1EbW9kZWxEb2NzPWZhbHNlIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IFVzZXIgYW5kIFBldCBtb2RlbHMgKG5vIHRlc3RzIGFuZCBubyBkb2N1bWVudGF0aW9uKQpqYXZhIC1EbW9kZWxzPVVzZXIsUGV0IC1EbW9kZWxUZXN0cz1mYWxzZSB7b3B0c30KCiMgZ2VuZXJhdGUgb25seSBhcGlzICh3aXRob3V0IHRlc3RzKQpqYXZhIC1EYXBpcyAtRGFwaVRlc3RzPWZhbHNlIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IGFwaXMgKG1vZGVsVGVzdHMgb3B0aW9uIGlzIGlnbm9yZWQpCmphdmEgLURhcGlzIC1EbW9kZWxUZXN0cz1mYWxzZSB7b3B0c30KYGBgCgpXaGVuIHVzaW5nIHNlbGVjdGl2ZSBnZW5lcmF0aW9uLCBfb25seV8gdGhlIHRlbXBsYXRlcyBuZWVkZWQgZm9yIHRoZSBzcGVjaWZpYyBnZW5lcmF0aW9uIHdpbGwgYmUgdXNlZC4KCiMjIyBJZ25vcmUgZmlsZSBmb3JtYXQKClN3YWdnZXIgQ29kZWdlbiBzdXBwb3J0cyBhIGAuc3dhZ2dlci1jb2RlZ2VuLWlnbm9yZWAgZmlsZSwgc2ltaWxhciB0byBgLmdpdGlnbm9yZWAgb3IgYC5kb2NrZXJpZ25vcmVgIHlvdSdyZSBwcm9iYWJseSBhbHJlYWR5IGZhbWlsaWFyIHdpdGguCgpUaGUgaWdub3JlIGZpbGUgYWxsb3dzIGZvciBiZXR0ZXIgY29udHJvbCBvdmVyIG92ZXJ3cml0aW5nIGV4aXN0aW5nIGZpbGVzIHRoYW4gdGhlIGAtLXNraXAtb3ZlcndyaXRlYCBmbGFnLiBXaXRoIHRoZSBpZ25vcmUgZmlsZSwgeW91IGNhbiBzcGVjaWZ5IGluZGl2aWR1YWwgZmlsZXMgb3IgZGlyZWN0b3JpZXMgY2FuIGJlIGlnbm9yZWQuIFRoaXMgY2FuIGJlIHVzZWZ1bCwgZm9yIGV4YW1wbGUgaWYgeW91IG9ubHkgd2FudCBhIHN1YnNldCBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUuCgpFeGFtcGxlczoKCmBgYHNoCiMgU3dhZ2dlciBDb2RlZ2VuIElnbm9yZQojIExpbmVzIGJlZ2lubmluZyB3aXRoIGEgIyBhcmUgY29tbWVudHMKCiMgVGhpcyBzaG91bGQgbWF0Y2ggYnVpbGQuc2ggbG9jYXRlZCBhbnl3aGVyZS4KYnVpbGQuc2gKCiMgTWF0Y2hlcyBidWlsZC5zaCBpbiB0aGUgcm9vdAovYnVpbGQuc2gKCiMgRXhjbHVkZSBhbGwgcmVjdXJzaXZlbHkKZG9jcy8qKgoKIyBFeHBsaWNpdGx5IGFsbG93IGZpbGVzIGV4Y2x1ZGVkIGJ5IG90aGVyIHJ1bGVzCiFkb2NzL1VzZXJBcGkubWQKCiMgUmVjdXJzaXZlbHkgZXhjbHVkZSBkaXJlY3RvcmllcyBuYW1lZCBBcGkKIyBZb3UgY2FuJ3QgbmVnYXRlIGZpbGVzIGJlbG93IHRoaXMgZGlyZWN0b3J5LgpzcmMvKiovQXBpLwoKIyBXaGVuIHRoaXMgZmlsZSBpcyBuZXN0ZWQgdW5kZXIgL0FwaSAoZXhjbHVkZWQgYWJvdmUpLAojIHRoaXMgcnVsZSBpcyBpZ25vcmVkIGJlY2F1c2UgcGFyZW50IGRpcmVjdG9yeSBpcyBleGNsdWRlZCBieSBwcmV2aW91cyBydWxlLgohc3JjLyoqL1BldEFwaVRlc3RzLmNzCgojIEV4Y2x1ZGUgYSBzaW5nbGUsIG5lc3RlZCBmaWxlIGV4cGxpY2l0bHkKc3JjL0lPLlN3YWdnZXIuVGVzdC9Nb2RlbC9BbmltYWxGYXJtVGVzdHMuY3MKYGBgCgpUaGUgYC5zd2FnZ2VyLWNvZGVnZW4taWdub3JlYCBmaWxlIG11c3QgZXhpc3QgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3RvcnkuCgpVcG9uIGZpcnN0IGNvZGUgZ2VuZXJhdGlvbiwgeW91IG1heSBhbHNvIHBhc3MgdGhlIENMSSBvcHRpb24gYC0taWdub3JlLWZpbGUtb3ZlcnJpZGU9L3BhdGgvdG8vaWdub3JlX2ZpbGVgIGZvciBncmVhdGVyIGNvbnRyb2wgb3ZlciBnZW5lcmF0ZWQgb3V0cHV0cy4gTm90ZSB0aGF0IHRoaXMgaXMgYSBjb21wbGV0ZSBvdmVycmlkZSwgYW5kIHdpbGwgb3ZlcnJpZGUgdGhlIGAuc3dhZ2dlci1jb2RlZ2VuLWlnbm9yZWAgZmlsZSBpbiBhbiBvdXRwdXQgZGlyZWN0b3J5IHdoZW4gcmVnZW5lcmF0aW5nIGNvZGUuCgpFZGl0b3Igc3VwcG9ydCBmb3IgYC5zd2FnZ2VyLWNvZGVnZW4taWdub3JlYCBmaWxlcyBpcyBhdmFpbGFibGUgaW4gSW50ZWxsaUogdmlhIHRoZSBbLmlnbm9yZSBwbHVnaW5dKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi83NDk1LS1pZ25vcmUpLgoKIyMjIEN1c3RvbWl6aW5nIHRoZSBnZW5lcmF0b3IKClRoZXJlIGFyZSBkaWZmZXJlbnQgYXNwZWN0cyBvZiBjdXN0b21pemluZyB0aGUgY29kZSBnZW5lcmF0b3IgYmV5b25kIGp1c3QgY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIHRlbXBsYXRlcy4gIEVhY2ggbGFuZ3VhZ2UgaGFzIGEgc3VwcG9ydGluZyBjb25maWd1cmF0aW9uIGZpbGUgdG8gaGFuZGxlIGRpZmZlcmVudCB0eXBlIG1hcHBpbmdzLCBldGM6CgpgYGBzaAokIGxzIC0xIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuL3NyYy9tYWluL2phdmEvaW8vc3dhZ2dlci9jb2RlZ2VuL2xhbmd1YWdlcy8KQWJzdHJhY3RKYXZhSkFYUlNTZXJ2ZXJDb2RlZ2VuLmphdmEKQWJzdHJhY3RUeXBlU2NyaXB0Q2xpZW50Q29kZWdlbi5qYXZhCi4uLiAocmVzdWx0cyBvbWl0dGVkKQpUeXBlU2NyaXB0QW5ndWxhckNsaWVudENvZGVnZW4uamF2YQpUeXBlU2NyaXB0Tm9kZUNsaWVudENvZGVnZW4uamF2YQpgYGAKCkVhY2ggb2YgdGhlc2UgZmlsZXMgY3JlYXRlcyByZWFzb25hYmxlIGRlZmF1bHRzIHNvIHlvdSBjYW4gZ2V0IHJ1bm5pbmcgcXVpY2tseS4gIEJ1dCBpZiB5b3Ugd2FudCB0byBjb25maWd1cmUgcGFja2FnZSBuYW1lcywgcHJlZml4ZXMsIG1vZGVsIGZvbGRlcnMsIGV0Yy4geW91IGNhbiB1c2UgYSBqc29uIGNvbmZpZyBmaWxlIHRvIHBhc3MgdGhlIHZhbHVlcy4KCmBgYHNoCmphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGdlbmVyYXRlIFwKICAtaSBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIFwKICAtbCBqYXZhIFwKICAtbyBzYW1wbGVzL2NsaWVudC9wZXRzdG9yZS9qYXZhIFwKICAtYyBwYXRoL3RvL2NvbmZpZy5qc29uCmBgYAphbmQgYGNvbmZpZy5qc29uYCBjb250YWlucyB0aGUgZm9sbG93aW5nIGFzIGFuIGV4YW1wbGU6CmBgYGpzb24KewogICJhcGlQYWNrYWdlIiA6ICJwZXRzdG9yZSIKfQpgYGAKClN1cHBvcnRlZCBjb25maWcgb3B0aW9ucyBjYW4gYmUgZGlmZmVyZW50IHBlciBsYW5ndWFnZS4gUnVubmluZyBgY29uZmlnLWhlbHAgLWwge2xhbmd9YCB3aWxsIHNob3cgYXZhaWxhYmxlIG9wdGlvbnMuCioqVGhlc2Ugb3B0aW9ucyBhcmUgYXBwbGllZCB2aWEgY29uZmlndXJhdGlvbiBmaWxlIChlLmcuIGNvbmZpZy5qc29uKSBvciBieSBwYXNzaW5nIHRoZW0gd2l0aCBgamF2YSAtamFyIHN3YWdnZXItY29kZWdlbi1jbGkuamFyIC1Ee29wdGlvbk5hbWV9PXtvcHRpb25WYWx1ZX1gKiouIChJZiBgLUR7b3B0aW9uTmFtZX1gIGRvZXMgbm90IHdvcmssIHBsZWFzZSBvcGVuIGEgW3RpY2tldF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9pc3N1ZXMvbmV3KSBhbmQgd2UnbGwgbG9vayBpbnRvIGl0KQoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgY29uZmlnLWhlbHAgLWwgamF2YQpgYGAKCk91dHB1dAoKYGBgCkNPTkZJRyBPUFRJT05TCgltb2RlbFBhY2thZ2UKCSAgICBwYWNrYWdlIGZvciBnZW5lcmF0ZWQgbW9kZWxzCgoJYXBpUGFja2FnZQoJICAgIHBhY2thZ2UgZm9yIGdlbmVyYXRlZCBhcGkgY2xhc3NlcwouLi4uLi4gKHJlc3VsdHMgb21pdHRlZCkKCWxpYnJhcnkKCSAgICBsaWJyYXJ5IHRlbXBsYXRlIChzdWItdGVtcGxhdGUpIHRvIHVzZToKCSAgICBqZXJzZXkxIC0gSFRUUCBjbGllbnQ6IEplcnNleSBjbGllbnQgMS4xOC4gSlNPTiBwcm9jZXNzaW5nOiBKYWNrc29uIDIuNC4yCgkgICAgamVyc2V5MiAtIEhUVFAgY2xpZW50OiBKZXJzZXkgY2xpZW50IDIuNgoJICAgIGZlaWduIC0gSFRUUCBjbGllbnQ6IE5ldGZsaXggRmVpZ24gOC4xLjEuICBKU09OIHByb2Nlc3Npbmc6IEphY2tzb24gMi42LjMKCSAgICBva2h0dHAtZ3NvbiAoZGVmYXVsdCkgLSBIVFRQIGNsaWVudDogT2tIdHRwIDIuNC4wLiBKU09OIHByb2Nlc3Npbmc6IEdzb24gMi4zLjEKCSAgICByZXRyb2ZpdCAtIEhUVFAgY2xpZW50OiBPa0h0dHAgMi40LjAuIEpTT04gcHJvY2Vzc2luZzogR3NvbiAyLjMuMSAoUmV0cm9maXQgMS45LjApCiAgICAgICAgcmV0cm9maXQyIC0gSFRUUCBjbGllbnQ6IE9rSHR0cCAyLjUuMC4gSlNPTiBwcm9jZXNzaW5nOiBHc29uIDIuNCAoUmV0cm9maXQgMi4wLjAtYmV0YTIpCiAgICAgICAgZ29vZ2xlLWFwaS1jbGllbnQgLSBIVFRQIGNsaWVudDogZ29vZ2xlLWFwaS1jbGllbnQgMS4yMy4wLiBKU09OIHByb2Nlc3Npbmc6IEphY2tzb24gMi44LjkKICAgICAgICByZXN0LWFzc3VyZWQgLSBIVFRQIGNsaWVudDogcmVzdC1hc3N1cmVkIDogMy4xLjAuIEpTT04gcHJvY2Vzc2luZzogR3NvbiAyLjYuMS4gT25seSBmb3IgSmF2YTgKYGBgCgpZb3VyIGNvbmZpZyBmaWxlIGZvciBKYXZhIGNhbiBsb29rIGxpa2UKCmBgYGpzb24KewogICJncm91cElkIjogImNvbS5teS5jb21wYW55IiwKICAiYXJ0aWZhY3RJZCI6ICJNeUNsaWVudCIsCiAgImFydGlmYWN0VmVyc2lvbiI6ICIxLjIuMCIsCiAgImxpYnJhcnkiOiAiZmVpZ24iCn0KYGBgCgpGb3IgYWxsIHRoZSB1bnNwZWNpZmllZCBvcHRpb25zIGRlZmF1bHQgdmFsdWVzIHdpbGwgYmUgdXNlZC4KCkFub3RoZXIgd2F5IHRvIG92ZXJyaWRlIGRlZmF1bHQgb3B0aW9ucyBpcyB0byBleHRlbmQgdGhlIGNvbmZpZyBjbGFzcyBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlLgpUbyBjaGFuZ2UsIGZvciBleGFtcGxlLCB0aGUgcHJlZml4IGZvciB0aGUgT2JqZWN0aXZlLUMgZ2VuZXJhdGVkIGZpbGVzLCBzaW1wbHkgc3ViY2xhc3MgdGhlIGBPYmpjQ2xpZW50Q29kZWdlbi5qYXZhYDoKCmBgYGphdmEKcGFja2FnZSBjb20ubXljb21wYW55LnN3YWdnZXIuY29kZWdlbjsKCmltcG9ydCBpby5zd2FnZ2VyLmNvZGVnZW4ubGFuZ3VhZ2VzLio7CgpwdWJsaWMgY2xhc3MgTXlPYmpjQ29kZWdlbiBleHRlbmRzIE9iamNDbGllbnRDb2RlZ2VuIHsKICAgIHN0YXRpYyB7CiAgICAgICAgUFJFRklYID0gIkhFTE8iOwogICAgfQp9CmBgYAoKYW5kIHNwZWNpZnkgdGhlIGBjbGFzc25hbWVgIHdoZW4gcnVubmluZyB0aGUgZ2VuZXJhdG9yOgoKYGBgCi1sIGNvbS5teWNvbXBhbnkuc3dhZ2dlci5jb2RlZ2VuLk15T2JqY0NvZGVnZW4KYGBgCgpZb3VyIHN1YmNsYXNzIHdpbGwgbm93IGJlIGxvYWRlZCBhbmQgb3ZlcnJpZGVzIHRoZSBgUFJFRklYYCB2YWx1ZSBpbiB0aGUgc3VwZXJjbGFzcy4KCiMjIyBCcmluZ2luZyB5b3VyIG93biBtb2RlbHMKClNvbWV0aW1lcyB5b3UgZG9uJ3Qgd2FudCBhIG1vZGVsIGdlbmVyYXRlZC4gIEluIHRoaXMgY2FzZSwgeW91IGNhbiBzaW1wbHkgc3BlY2lmeSBhbiBpbXBvcnQgbWFwcGluZyB0byB0ZWxsCnRoZSBjb2RlZ2VuIHdoYXQgX25vdF8gdG8gY3JlYXRlLiAgV2hlbiBkb2luZyB0aGlzLCBldmVyeSBsb2NhdGlvbiB0aGF0IHJlZmVyZW5jZXMgYSBzcGVjaWZpYyBtb2RlbCB3aWxsCnJlZmVyIGJhY2sgdG8geW91ciBjbGFzc2VzLiAgTm90ZSwgdGhpcyBtYXkgbm90IGFwcGx5IHRvIGFsbCBsYW5ndWFnZXMuLi4KClRvIHNwZWNpZnkgYW4gaW1wb3J0IG1hcHBpbmcsIHVzZSB0aGUgYC0taW1wb3J0LW1hcHBpbmdzYCBhcmd1bWVudCBhbmQgc3BlY2lmeSB0aGUgbW9kZWwtdG8taW1wb3J0IGxvZ2ljIGFzIHN1Y2g6CgpgYGAKLS1pbXBvcnQtbWFwcGluZ3MgUGV0PW15Lm1vZGVscy5NeVBldApgYGAKCk9yIGZvciBtdWx0aXBsZSBtYXBwaW5nczoKCmBgYAotLWltcG9ydC1tYXBwaW5ncyBQZXQ9bXkubW9kZWxzLk15UGV0LE9yZGVyPW15Lm1vZGVscy5NeU9yZGVyCmBgYApvcgpgYGAKLS1pbXBvcnQtbWFwcGluZ3MgUGV0PW15Lm1vZGVscy5NeVBldCAtLWltcG9ydC1tYXBwaW5ncyBPcmRlcj1teS5tb2RlbHMuTXlPcmRlcgpgYGAKCgojIyMgVmFsaWRhdGluZyB5b3VyIE9wZW5BUEkgU3BlYwoKWW91IGhhdmUgb3B0aW9ucy4gIFRoZSBlYXNpZXN0IGlzIHRvIHVzZSBvdXIgW29ubGluZSB2YWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS92YWxpZGF0b3ItYmFkZ2UpIHdoaWNoIG5vdCBvbmx5IHdpbGwgbGV0IHlvdSB2YWxpZGF0ZSB5b3VyIHNwZWMsIGJ1dCB3aXRoIHRoZSBkZWJ1ZyBmbGFnLCB5b3UgY2FuIHNlZSB3aGF0J3Mgd3Jvbmcgd2l0aCB5b3VyIHNwZWMuICBGb3IgZXhhbXBsZToKCmh0dHA6Ly9vbmxpbmUuc3dhZ2dlci5pby92YWxpZGF0b3IvZGVidWc/dXJsPWh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24KCiMjIyBHZW5lcmF0aW5nIGR5bmFtaWMgaHRtbCBhcGkgZG9jdW1lbnRhdGlvbgoKVG8gZG8gc28sIGp1c3QgdXNlIHRoZSBgLWwgZHluYW1pYy1odG1sYCBmbGFnIHdoZW4gcmVhZGluZyBhIHNwZWMgZmlsZS4gIFRoaXMgY3JlYXRlcyBIVE1MIGRvY3VtZW50YXRpb24gdGhhdCBpcyBhdmFpbGFibGUgYXMgYSBzaW5nbGUtcGFnZSBhcHBsaWNhdGlvbiB3aXRoIEFKQVguICBUbyB2aWV3IHRoZSBkb2N1bWVudGF0aW9uOgoKYGBgc2gKY2Qgc2FtcGxlcy9keW5hbWljLWh0bWwvCm5wbSBpbnN0YWxsCm5vZGUgLgpgYGAKCldoaWNoIGxhdW5jaGVzIGEgbm9kZS5qcyBzZXJ2ZXIgc28gdGhlIEFKQVggY2FsbHMgaGF2ZSBhIHBsYWNlIHRvIGdvLgoKCiMjIyBHZW5lcmF0aW5nIHN0YXRpYyBodG1sIGFwaSBkb2N1bWVudGF0aW9uCgpUbyBkbyBzbywganVzdCB1c2UgdGhlIGAtbCBodG1sYCBmbGFnIHdoZW4gcmVhZGluZyBhIHNwZWMgZmlsZS4gIFRoaXMgY3JlYXRlcyBhIHNpbmdsZSwgc2ltcGxlIEhUTUwgZmlsZSB3aXRoIGVtYmVkZGVkIGNzcyBzbyB5b3UgY2FuIHNoaXAgaXQgYXMgYW4gZW1haWwgYXR0YWNobWVudCwgb3IgbG9hZCBpdCBmcm9tIHlvdXIgZmlsZXN5c3RlbToKCmBgYHNoCmNkIHNhbXBsZXMvaHRtbC8Kb3BlbiBpbmRleC5odG1sCmBgYAoKCiMjIyBUbyBidWlsZCBhIHNlcnZlciBzdHViCgpQbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi93aWtpL1NlcnZlci1zdHViLWdlbmVyYXRvci1IT1dUTyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIyBUbyBidWlsZCB0aGUgY29kZWdlbiBsaWJyYXJ5CgpUaGlzIHdpbGwgY3JlYXRlIHRoZSBTd2FnZ2VyIENvZGVnZW4gbGlicmFyeSBmcm9tIHNvdXJjZS4KCmBgYHNoCm12biBwYWNrYWdlCmBgYAoKTm90ZSEgIFRoZSB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5IGdlbmVyYXRlZC4gIElmIHlvdSB3YW50IHRvIG1vZGlmeSB0aGUgdGVtcGxhdGVzLCB5b3UnbGwgbmVlZCB0byBlaXRoZXIgcmVwYWNrYWdlIHRoZSBsaWJyYXJ5IE9SIHNwZWNpZnkgYSBwYXRoIHRvIHlvdXIgc2NyaXB0cwoKIyMgV29ya2Zsb3cgSW50ZWdyYXRpb24KCiMjIyBNYXZlbiBJbnRlZ3JhdGlvbgoKWW91IGNhbiB1c2UgdGhlIFtzd2FnZ2VyLWNvZGVnZW4tbWF2ZW4tcGx1Z2luXShtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kKSBmb3IgaW50ZWdyYXRpbmcgd2l0aCB5b3VyIHdvcmtmbG93LCBhbmQgZ2VuZXJhdGluZyBhbnkgY29kZWdlbiB0YXJnZXQuCgojIyMgR3JhZGxlIEludGVncmF0aW9uCgpbR3JhZGxlIFN3YWdnZXIgR2VuZXJhdG9yIFBsdWdpbl0oaHR0cHM6Ly9naXRodWIuY29tL2ludDEyOC9ncmFkbGUtc3dhZ2dlci1nZW5lcmF0b3ItcGx1Z2luKSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYXRpbmcgc291cmNlIGNvZGUgYW5kIEFQSSBkb2N1bWVudC4KCiMjIEdpdEh1YiBJbnRlZ3JhdGlvbgoKVG8gcHVzaCB0aGUgYXV0by1nZW5lcmF0ZWQgU0RLIHRvIEdpdEh1Yiwgd2UgcHJvdmlkZSBgZ2l0X3B1c2guc2hgIHRvIHN0cmVhbWxpbmUgdGhlIHByb2Nlc3MuIEZvciBleGFtcGxlOgoKIDEpIENyZWF0ZSBhIG5ldyByZXBvc2l0b3J5IGluIEdpdEh1YiAoUmVmOiBodHRwczovL2hlbHAuZ2l0aHViLmNvbS9hcnRpY2xlcy9jcmVhdGluZy1hLW5ldy1yZXBvc2l0b3J5LykKCiAyKSBHZW5lcmF0ZSB0aGUgU0RLCmBgYHNoCiBqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBnZW5lcmF0ZSBcCiAtaSBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi9zcmMvdGVzdC9yZXNvdXJjZXMvMl8wL3BldHN0b3JlLmpzb24gLWwgcGVybCBcCiAtLWdpdC11c2VyLWlkICJzd2FnZ2VyYXBpIiBcCiAtLWdpdC1yZXBvLWlkICJwZXRzdG9yZS1wZXJsIiBcCiAtLXJlbGVhc2Utbm90ZSAiR2l0aHViIGludGVncmF0aW9uIGRlbW8iIFwKIC1vIC92YXIvdG1wL3BlcmwvcGV0c3RvcmUKYGBgCiAzKSBQdXNoIHRoZSBTREsgdG8gR2l0SHViCmBgYHNoCmNkIC92YXIvdG1wL3BlcmwvcGV0c3RvcmUKL2Jpbi9zaCAuL2dpdF9wdXNoLnNoCmBgYAoKIyMgT25saW5lIGdlbmVyYXRvcnMKCk9uZSBjYW4gYWxzbyBnZW5lcmF0ZSBBUEkgY2xpZW50IG9yIHNlcnZlciB1c2luZyB0aGUgb25saW5lIGdlbmVyYXRvcnMgKGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8pCgpGb3IgZXhhbXBsZSwgdG8gZ2VuZXJhdGUgUnVieSBBUEkgY2xpZW50LCBzaW1wbHkgc2VuZCB0aGUgZm9sbG93aW5nIEhUVFAgcmVxdWVzdCB1c2luZyBjdXJsOgpgYGBzaApjdXJsIC1YIFBPU1QgLUggImNvbnRlbnQtdHlwZTphcHBsaWNhdGlvbi9qc29uIiAtZCAneyJzd2FnZ2VyVXJsIjoiaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiJ9JyBodHRwczovL2dlbmVyYXRvci5zd2FnZ2VyLmlvL2FwaS9nZW4vY2xpZW50cy9ydWJ5CmBgYApUaGVuIHlvdSB3aWxsIHJlY2VpdmUgYSBKU09OIHJlc3BvbnNlIHdpdGggdGhlIFVSTCB0byBkb3dubG9hZCB0aGUgemlwcGVkIGNvZGUuCgpUbyBjdXN0b21pemUgdGhlIFNESywgeW91IGNhbiBgUE9TVGAgdG8gYGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8vYXBpL2dlbi9jbGllbnRzL3tsYW5ndWFnZX1gIHdpdGggdGhlIGZvbGxvd2luZyBIVFRQIGJvZHk6CmBgYGpzb24KewogICJvcHRpb25zIjogIHt9LAogICJzd2FnZ2VyVXJsIjogImh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24iCn0KYGBgCmluIHdoaWNoIHRoZSBgb3B0aW9uc2AgZm9yIGEgbGFuZ3VhZ2UgY2FuIGJlIG9idGFpbmVkIGJ5IHN1Ym1pdHRpbmcgYSBgR0VUYCByZXF1ZXN0IHRvIGBodHRwczovL2dlbmVyYXRvci5zd2FnZ2VyLmlvL2FwaS9nZW4vY2xpZW50cy97bGFuZ3VhZ2V9YDoKCkZvciBleGFtcGxlLCBgY3VybCBodHRwczovL2dlbmVyYXRvci5zd2FnZ2VyLmlvL2FwaS9nZW4vY2xpZW50cy9weXRob25gIHJldHVybnMKYGBganNvbgp7CiAgInBhY2thZ2VOYW1lIjogewogICAgIm9wdCI6ICJwYWNrYWdlTmFtZSIsCiAgICAiZGVzY3JpcHRpb24iOiAicHl0aG9uIHBhY2thZ2UgbmFtZSAoY29udmVudGlvbjogc25ha2VfY2FzZSkuIiwKICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAiZGVmYXVsdCI6ICJzd2FnZ2VyX2NsaWVudCIKICB9LAogICJwYWNrYWdlVmVyc2lvbiI6IHsKICAgICJvcHQiOiAicGFja2FnZVZlcnNpb24iLAogICAgImRlc2NyaXB0aW9uIjogInB5dGhvbiBwYWNrYWdlIHZlcnNpb24uIiwKICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAiZGVmYXVsdCI6ICIxLjAuMCIKICB9LAogICJzb3J0UGFyYW1zQnlSZXF1aXJlZEZsYWciOiB7CiAgICAib3B0IjogInNvcnRQYXJhbXNCeVJlcXVpcmVkRmxhZyIsCiAgICAiZGVzY3JpcHRpb24iOiAiU29ydCBtZXRob2QgYXJndW1lbnRzIHRvIHBsYWNlIHJlcXVpcmVkIHBhcmFtZXRlcnMgYmVmb3JlIG9wdGlvbmFsIHBhcmFtZXRlcnMuIiwKICAgICJ0eXBlIjogImJvb2xlYW4iLAogICAgImRlZmF1bHQiOiAidHJ1ZSIKICB9Cn0KYGBgClRvIHNldCBwYWNrYWdlIG5hbWUgdG8gYHBldF9zdG9yZWAsIHRoZSBIVFRQIGJvZHkgb2YgdGhlIHJlcXVlc3QgaXMgYXMgZm9sbG93czoKYGBganNvbgp7CiAgIm9wdGlvbnMiOiB7CiAgICAicGFja2FnZU5hbWUiOiAicGV0X3N0b3JlIgogIH0sCiAgInN3YWdnZXJVcmwiOiAiaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiIKfQpgYGAKYW5kIGhlcmUgaXMgdGhlIGN1cmwgY29tbWFuZDoKYGBgc2gKY3VybCAtSCAiQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtWCBQT1NUIC1kICd7Im9wdGlvbnMiOiB7InBhY2thZ2VOYW1lIjogInBldF9zdG9yZSJ9LCJzd2FnZ2VyVXJsIjogImh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24ifScgaHR0cHM6Ly9nZW5lcmF0b3Iuc3dhZ2dlci5pby9hcGkvZ2VuL2NsaWVudHMvcHl0aG9uCmBgYAoKSW5zdGVhZCBvZiB1c2luZyBgc3dhZ2dlclVybGAgd2l0aCBhbiBVUkwgdG8gdGhlIE9wZW5BUEkvU3dhZ2dlciBzcGVjLCBvbmUgY2FuIGluY2x1ZGUgdGhlIHNwZWMgaW4gdGhlIEpTT04gcGF5bG9hZCB3aXRoIGBzcGVjYCwgZS5nLgpgYGBqc29uCnsKICAib3B0aW9ucyI6IHt9LAogICJzcGVjIjogewogICAgInN3YWdnZXIiOiAiMi4wIiwKICAgICJpbmZvIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJ0aXRsZSI6ICJUZXN0IEFQSSIKICAgIH0sCiAgICAuLi4KICB9Cn0KYGBgCgpHdWlkZWxpbmVzIGZvciBDb250cmlidXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpQbGVhc2UgcmVmZXIgdG8gdGhpcyBbcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCgpDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSGVyZSBhcmUgc29tZSBjb21wYW5pZXMvcHJvamVjdHMgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuIGluIHByb2R1Y3Rpb24uIFRvIGFkZCB5b3VyIGNvbXBhbnkvcHJvamVjdCB0byB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0IFtSRUFETUUubWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvUkVBRE1FLm1kKSBhbmQgY2xpY2sgb24gdGhlIGljb24gdG8gZWRpdCB0aGUgcGFnZS4KLSBbQWNhbmRvXShodHRwczovL3d3dy5hY2FuZG8uZGUvKQotIFtBY2NlbmdhZ2VdKGh0dHBzOi8vd3d3LmFjY2VuZ2FnZS5jb20vKQotIFtBY2NydWVudF0oaHR0cHM6Ly93d3cuYWNjcnVlbnQuY29tLykKLSBbQWN0aXZlaG91cnNdKGh0dHBzOi8vd3d3LmFjdGl2ZWhvdXJzLmNvbS8pCi0gW0FjdG9uaWNhXShodHRwczovL3d3dy5hY3RvbmljYS5jb20pCi0gW0FjdW5ldGl4XShodHRwczovL3d3dy5hY3VuZXRpeC5jb20vKQotIFtBZGFwdGFudF0oaHR0cHM6Ly93d3cuYWRhcHRhbnQuaW8vKQotIFtBdGxhc3NpYW5dKGh0dHBzOi8vd3d3LmF0bGFzc2lhbi5jb20vKQotIFtBdXRvZGVza10oaHR0cDovL3d3dy5hdXRvZGVzay5jb20vKQotIFtBdmVuaWRhIENvbXByYXMgUy5BLl0oaHR0cHM6Ly93d3cuYXZlbmlkYS5jb20uYXIpCi0gW0FZTElFTl0oaHR0cDovL2F5bGllbi5jb20vKQotIFtCYWxhbmNlIEludGVybmV0XShodHRwczovL3d3dy5iYWxhbmNlaW50ZXJuZXQuY29tLmF1LykKLSBbYmVlbW9dKGh0dHA6Ly93d3cuYmVlbW8uZXUpCi0gW2JpdGx5XShodHRwczovL2JpdGx5LmNvbSkKLSBbQmVlelVQXShodHRwOi8vd3d3LmJlZXp1cC5jb20pCi0gW0JveF0oaHR0cHM6Ly9ib3guY29tKQotIFtCdWZmZXJmbHkgTmV0d29ya10oaHR0cHM6Ly93d3cuYnV0dGVyZmx5bmV0aW5jLmNvbS8pCi0gW0NhY2hldCBGaW5hbmNpYWxdKGh0dHA6Ly93d3cuY2FjaGV0ZmluYW5jaWFsLmNvbS8pCi0gW2NhcnBvbG9dKGh0dHA6Ly93d3cuY2FycG9sby5jby8pCi0gW0NhcnVzXShodHRwczovL3d3dy5jYXJ1cy5jb20vKQotIFtDaXNjb10oaHR0cDovL3d3dy5jaXNjby5jb20vKQotIFtDbG91ZEJvb3N0XShodHRwczovL3d3dy5DbG91ZEJvb3N0LmlvLykKLSBbQ2xvdWRzbWl0aF0oaHR0cHM6Ly9jbG91ZHNtaXRoLmlvLykKLSBbQ29ucGxlbWVudF0oaHR0cDovL3d3dy5jb25wbGVtZW50LmRlLykKLSBbQ3VtbWluc10oaHR0cDovL3d3dy5jdW1taW5zLmNvbS8pCi0gW0N1cGl4XShodHRwOi8vd3d3LmN1cGl4LmNvbSkKLSBbREJCZXN0IFRlY2hub2xvZ2llc10oaHR0cHM6Ly93d3cuZGJiZXN0LmNvbSkKLSBbRGVjZW50Rm9YXShodHRwOi8vZGVjZW50Zm94LmNvbS8pCi0gW0RvY1JhcHRvcl0oaHR0cHM6Ly9kb2NyYXB0b3IuY29tKQotIFtEb2N1U2lnbl0oaHR0cHM6Ly93d3cuZG9jdXNpZ24uY29tKQotIFtFbGFzdGljXShodHRwczovL3d3dy5lbGFzdGljLmNvLykKLSBbRXJnb25dKGh0dHA6Ly93d3cuZXJnb24uY2gvKQotIFtEZWxsIEVNQ10oaHR0cHM6Ly93d3cuZW1jLmNvbS8pCi0gW2V1cmVrYV0oaHR0cDovL2V1cmUuanAvKQotIFtldmVyeXN0b3J5LnVzXShodHRwOi8vZXZlcnlzdG9yeS51cykKLSBbRXhwZWN0ZWQgQmVoYXZpb3JdKGh0dHA6Ly93d3cuZXhwZWN0ZWRiZWhhdmlvci5jb20vKQotIFtmYXNoaW9uVHJhZGVdKGh0dHBzOi8vd3d3LmZhc2hpb250cmFkZS5jb20vKQotIFtGYXN0bHldKGh0dHBzOi8vd3d3LmZhc3RseS5jb20vKQotIFtGSU5SQV0oaHR0cHM6Ly9naXRodWIuY29tL0ZJTlJBT1MvaGVyZC8pCi0gW0ZsYXRdKGh0dHBzOi8vZmxhdC5pbykKLSBbRmluZGVyXShodHRwOi8vZW4uZmluZGVyLnBsLykKLSBbRml0d2VsbF0oaHR0cHM6Ly9maXR3ZWxsLmNvLykKLSBbRkggTcO8bnN0ZXIgLSBVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2NpZW5jZXNdKGh0dHA6Ly93d3cuZmgtbXVlbnN0ZXIuZGUpCi0gW0Zvcm1BUEldKGh0dHBzOi8vZm9ybWFwaS5pby8pCi0gW0ZvdGl0aW9uXShodHRwczovL3d3dy5mb3RpdGlvbi5jb20vKQotIFtHZWFyIFplcm8gTmV0d29ya10oaHR0cHM6Ly93d3cuZ2Vhcnplcm8uY2EpCi0gW0dlbmVyYWwgRWxlY3RyaWNdKGh0dHBzOi8vd3d3LmdlLmNvbS8pCi0gW0dlbmVudGVjaF0oaHR0cHM6Ly9nZW5lLmNvbSkKLSBbR2VuZXN5cyAtIFB1cmVDbG91ZF0oaHR0cDovL2RldmVsb3Blci5teXB1cmVjbG91ZC5jb20vKQotIFtHZXJtaW44XShodHRwOi8vd3d3Lmdlcm1pbjguY29tKQotIFtHaWdhU3BhY2VzXShodHRwOi8vd3d3LmdpZ2FzcGFjZXMuY29tKQotIFtHTU8gUGVwYWJvXShodHRwczovL3BlcGFiby5jb20vZW4vKQotIFtnb1RyYW5zdmVyc2VdKGh0dHA6Ly93d3cuZ290cmFuc3ZlcnNlLmNvbS9hcGkpCi0gW0dyYXBoSG9wcGVyXShodHRwczovL2dyYXBoaG9wcGVyLmNvbS8pCi0gW0dyYXZpdGF0ZSBTb2x1dGlvbnNdKGh0dHA6Ly9ncmF2aXRhdGVzb2x1dGlvbnMuY29tLykKLSBbSGFzaERhdGFdKGh0dHA6Ly93d3cuaGFzaGRhdGEuY24vKQotIFtIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZV0oaHR0cHM6Ly9ocGUuY29tKQotIFtIaWdoIFRlY2hub2xvZ2llcyBDZW50ZXJdKGh0dHA6Ly9odGMtY3MuY29tKQotIFtIb290c3VpdGVdKGh0dHBzOi8vaG9vdHN1aXRlLmNvbS8pCi0gW0h1YXdlaSBDbG91ZF0oaHR0cDovL3d3dy5odWF3ZWljbG91ZC5jb20vZW4tdXMvcHJvZHVjdC9jcy5odG1sKQotIFtIdXNiYW5rZW5dKGh0dHBzOi8vd3d3Lmh1c2Jhbmtlbi5ubykKLSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tKQotIFtJTVMgSGVhbHRoXShodHRwOi8vd3d3Lmltc2hlYWx0aC5jb20vZW4vc29sdXRpb24tYXJlYXMvdGVjaG5vbG9neS1hbmQtYXBwbGljYXRpb25zKQotIFtJbmRpdmlkdWFsIFN0YW5kYXJkIElWU10oaHR0cDovL3d3dy5pbmRpdmlkdWFsLXN0YW5kYXJkLmNvbSkKLSBbSU5TUElERV0oaHR0cDovL3d3dy5pbnNwaWRlLmNvbSkKLSBbSW50ZW50IEhRXShodHRwOi8vd3d3LmludGVudGhxLmNvbSkKLSBbS2FidWt1XShodHRwOi8vd3d3LmthYnVrdS5jby5qcC9lbikKLSBbS3VyaW9dKGh0dHBzOi8va3VyaW8uY28uaWQpCi0gW0t1cm9pXShodHRwOi8va3Vyb2l3ZWJkZXNpZ24uY29tLykKLSBbS3VhcnldKGh0dHBzOi8va3VhcnkuY29tLykKLSBbS3ViZXJuZXRlc10oaHR0cHM6Ly9rdWJlcm5ldGVzLmlvLykKLSBbTEFORFIgQXVkaW9dKGh0dHBzOi8vd3d3LmxhbmRyLmNvbS8pCi0gW0xhc2NhdXhdKGh0dHA6Ly93d3cubGFzY2F1eC5pdC8pCi0gW0xlYW5peF0oaHR0cDovL3d3dy5sZWFuaXgubmV0LykKLSBbTGVpY2EgR2Vvc3lzdGVtcyBBR10oaHR0cDovL2xlaWNhLWdlb3N5c3RlbXMuY29tKQotIFtMaXZlQWdlbnRdKGh0dHBzOi8vd3d3LmxhZGVzay5jb20vKQotIFtMWEwgVGVjaF0oaHR0cDovL2x4bHRlY2guY29tKQotIFtMeWZ0XShodHRwczovL3d3dy5seWZ0LmNvbS9kZXZlbG9wZXJzKQotIFtNYWlsTW9qb10oaHR0cHM6Ly9tYWlsbW9qby5uby8pCi0gW01ldGFzd2l0Y2hdKGh0dHBzOi8vd3d3Lm1ldGFzd2l0Y2guY29tLykKLSBbTWluZGVyYV0oaHR0cDovL21pbmRlcmEuY29tLykKLSBbTW9kdWxlUV0oaHR0cHM6Ly9tb2R1bGVxLmNvbSkKLSBbTXBvcml1bV0oaHR0cDovL21wb3JpdW0uY29tLykKLSBbTmV2ZXJmYWlsXShodHRwczovL25ldmVyZmFpbC5jb20vKQotIFtOZXhDYXBdKGh0dHA6Ly93d3cubmV4ZXNzLXNvbHV0aW9ucy5jb20vZnIvcGxhdGVmb3JtZS1pb3QvKQotIFtOaXRyb2JveF0oaHR0cHM6Ly93d3cubml0cm9ib3guY29tKQotIFtOb3J3ZWdpYW4gQWlyIFNodXR0bGVdKGh0dHBzOi8vd3d3Lm5vcndlZ2lhbi5jb20vKQotIFtOVFQgREFUQV0oaHR0cDovL3d3dy5udHRkYXRhLmNvbS8pCi0gW25WaXNvXShodHRwOi8vd3d3Lm52aXNvLmNoLykKLSBbTkhTRF0oaHR0cHM6Ly9kaWdpdGFsLm5ocy51ay8pCi0gW09raW9rXShodHRwczovL3d3dy5va2lvay5jb20pCi0gW09uZWRhdGFdKGh0dHA6Ly9vbmVkYXRhLm9yZykKLSBbT3BlbiBJbnRlcm5hdGlvbmFsIFN5c3RlbXNdKGh0dHBzOi8vb3BlbmludGwuY29tLykKLSBbT3JkZXJDbG91ZC5pb10oaHR0cDovL29yZGVyY2xvdWQuaW8pCi0gW09TRE5dKGh0dHBzOi8vb3Nkbi5qcCkKLSBbUGFnZXJEdXR5XShodHRwczovL3d3dy5wYWdlcmR1dHkuY29tKQotIFtQYWdlclRyZWVdKGh0dHBzOi8vcGFnZXJ0cmVlLmNvbSkKLSBbUGVwaXBvc3RdKGh0dHBzOi8vd3d3LnBlcGlwb3N0LmNvbSkKLSBbUGVhdGlvIFRlY2hdKGh0dHBzOi8vd3d3LnBlYXRpby50ZWNoKQotIFtQbGV4eGldKGh0dHA6Ly93d3cucGxleHhpLmNvbSkKLSBbUGl4b25leWVdKGh0dHA6Ly93d3cucGl4b25leWUuY29tLykKLSBbUG9zdEFmZmlsaWF0ZVByb10oaHR0cHM6Ly93d3cucG9zdGFmZmlsaWF0ZXByby5jb20vKQotIFtQcmFjdGljZUJpcmRdKGh0dHBzOi8vd3d3LnByYWN0aWNlYmlyZC5jb20vKQotIFtQcmlsbCBUZWNub2xvZ2lhXShodHRwOi8vd3d3LnByaWxsLmNvbS5icikKLSBbUHJva2FybWFdKGh0dHBzOi8vd3d3LnByb2thcm1hLmNvbSkKLSBbUUFkZXB0XShodHRwOi8vcWFkZXB0LmNvbS8pCi0gW1F1YW50aU1vZG9dKGh0dHBzOi8vcXVhbnRpbW8uZG8vKQotIFtRdWlja0Jsb3hdKGh0dHBzOi8vcXVpY2tibG94LmNvbS8pCi0gW1JhcGlkN10oaHR0cHM6Ly9yYXBpZDcuY29tLykKLSBbUmVkIEhhdF0oaHR0cHM6Ly93d3cucmVkaGF0LmNvbS8pCi0gW1JlbG9hZCEgQS9TXShodHRwczovL3JlbG9hZC5kay8pCi0gW1JFc3RvcmVdKGh0dHBzOi8vd3d3LnJlc3RvcmUuZXUpCi0gW1JFU1QgVW5pdGVkXShodHRwczovL3Jlc3R1bml0ZWQuY29tKQotIFtSZXZhdWx0IFPDoHJsXShodHRwOi8vcmV2YXVsdC5jaCkKLSBbUmlmZnluXShodHRwczovL3JpZmZ5bi5jb20pCi0gW1JvY2hlXShodHRwczovL3JvY2hlLmNvbSkKLSBbUm95YWwgQmFuayBvZiBDYW5hZGEgKFJCQyldKGh0dHA6Ly93d3cucmJjLmNvbS9jYW5hZGEuaHRtbCkKLSBbU2FyaXRhc2FdKGh0dHBzOi8vd3d3LnNhcml0YXNhLmNvbS8pCi0gW1NBU10oaHR0cHM6Ly93d3cuc2FzLmNvbSkKLSBbU0NPT1AgU29mdHdhcmUgR21iSF0oaHR0cDovL3d3dy5zY29vcC1zb2Z0d2FyZS5kZSkKLSBbU2Vzc2lvbk1dKGh0dHBzOi8vd3d3LnNlc3Npb25tLmNvbS8pCi0gW1NoaW5lIFNvbHV0aW9uc10oaHR0cHM6Ly9zaGluZXNvbHV0aW9ucy5jb20vKQotIFtTaW1wZm9ueV0oaHR0cHM6Ly93d3cuc2ltcGZvbnkuY29tLykKLSBbU2t1cnRdKGh0dHA6Ly93d3cuc2t1cnQuY29tKQotIFtTbGFtYnldKGh0dHBzOi8vd3d3LnNsYW1ieS5jb20vKQotIFtTbWFydFJlY3J1aXRlcnNdKGh0dHBzOi8vd3d3LnNtYXJ0cmVjcnVpdGVycy5jb20vKQotIFtzbmFwQ1hdKGh0dHBzOi8vc25hcGN4LmlvKQotIFtTUElORU5dKGh0dHA6Ly93d3cuc3BpbmVuLmNvbSkKLSBbU3BvbnNvb10oaHR0cHM6Ly93d3cuc3BvbnNvby5kZSkKLSBbU1JDXShodHRwczovL3d3dy5zcmMuc2kvKQotIFtTdGFyZG9nIFZlbnR1cmVzXShodHRwczovL3d3dy5zdGFyZG9nLmlvKQotIFtTdGluZ3JheV0oaHR0cDovL3d3dy5zdGluZ3JheS5jb20pCi0gW1N0eWxlUmVjaXBlXShodHRwOi8vc3R5bGVyZWNpcGUuY28uanApCi0gW1N2ZW5za2EgU3BlbCBBQl0oaHR0cHM6Ly93d3cuc3ZlbnNrYXNwZWwuc2UvKQotIFtTd2l0Y2ggRGF0YWJhc2VdKGh0dHBzOi8vd3d3LnN3aXRjaGRhdGFiYXNlLmNvbS8pCi0gW1Rhc2tEYXRhXShodHRwOi8vd3d3LnRhc2tkYXRhLmNvbS8pCi0gW1RoaXJkV2F0Y2guYWldKGh0dHBzOi8vd3d3LnRoaXJkd2F0Y2guYWkvKQotIFtUaG91Z2h0V29ya3NdKGh0dHBzOi8vd3d3LnRob3VnaHR3b3Jrcy5jb20pCi0gW1RwYXldKGh0dHBzOi8vdHBheS5jb20pCi0gW1RyZXhsZV0oaHR0cHM6Ly90cmV4bGUuY29tLykKLSBbVXB3b3JrXShodHRwOi8vdXB3b3JrLmNvbS8pCi0gW3VTaGlwXShodHRwczovL3d3dy51c2hpcC5jb20vKQotIFtWYXJpb2dyYW1hXShodHRwczovL3ZhcmlvZ3JhbWEucHQpCi0gW1ZNd2FyZV0oaHR0cHM6Ly92bXdhcmUuY29tLykKLSBbVmlhdmkgU29sdXRpb25zIEluYy5dKGh0dHBzOi8vd3d3LnZpYXZpc29sdXRpb25zLmNvbSkKLSBbVy5VUF0oaHR0cDovL3d1cC5odS8/c2l0ZUxhbmc9ZW4pCi0gW1dlYWx0aGZyb250XShodHRwczovL3d3dy53ZWFsdGhmcm9udC5jb20vKQotIFtXZWJldmVyIEdtYkhdKGh0dHBzOi8vd3d3LndlYmV2ZXIuZGUvKQotIFtXRVhPIEEvU10oaHR0cHM6Ly93d3cud2V4by5kay8pCi0gW1hTa3ldKGh0dHA6Ly93d3cueHNreS5jb20vKQotIFtZZWxwXShodHRwOi8vd3d3LnllbHAuY29tLykKLSBbWmFsYW5kb10oaHR0cHM6Ly90ZWNoLnphbGFuZG8uY29tKQotIFtaRUVGLmNvbV0oaHR0cHM6Ly96ZWVmLmNvbS8pCi0gW3pvb3BsdXNdKGh0dHBzOi8vd3d3Lnpvb3BsdXMuY29tLykKLSBbVHJpZm9ya10oaHR0cHM6Ly93d3cudHJpZm9yay5jb20vKQoKUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAyMDExLzA4LzMxIC0gW0ludHJvZHVjaW5nIFN3YWdnZXJdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L2ZlaGd1eS9pbnRyb2R1Y2luZy1zd2FnZ2VyKSBieSBbVG9ueSBUYW1dKGh0dHBzOi8vdHdpdHRlci5jb20vZmVoZ3V5KQotIDIwMTQvMDUvMjIgLSBbU3dhZ2dlciBBUElzIGZvciBIdW1hbnMgYW5kIFJvYm90c10oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvZmVoZ3V5L3N3YWdnZXItYXBpcy1mb3ItaHVtYW5zLWFuZC1yb2JvdHMtZ2x1ZWNvbikgYnkgW1RvbnkgVGFtXShodHRwczovL3R3aXR0ZXIuY29tL2ZlaGd1eSkgYXQgW0dsdWVjb25dKGh0dHA6Ly9nbHVlY29uLmNvbS8pCi0gMjAxNC8xMS8xMSAtIFtHZW5pZSAyLjA6IFNlY29uZCBXaXNoIEdyYW50ZWQhXShodHRwczovL21lZGl1bS5jb20vbmV0ZmxpeC10ZWNoYmxvZy9nZW5pZS0yLTAtc2Vjb25kLXdpc2gtZ3JhbnRlZC1kODg4ZDc5NDU1YzYpIGJ5IFtUb20gR2lhbm9zXShodHRwOi8vd3d3LmxpbmtlZGluLmNvbS9pbi90aG9tYXNnaWFub3MvKSBhbmQgW0FtaXQgU2hhcm1hXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vcHViL2FtaXQtc2hhcm1hLzUvMTYzL2E4MykgQCBbTmV0ZmxpeF0oaHR0cHM6Ly93d3cubmV0ZmxpeC5jb20vKSBCaWcgRGF0YSBQbGF0Zm9ybSBUZWFtCi0gMjAxNS8wNy8yOCAtIFtFbnJpY2hpbmcgUkVTVGZ1bCBTZXJ2aWNlcyB3aXRoIFN3YWdnZXJdKGh0dHBzOi8vYmxvZy5waGlsaXBwaGF1ZXIuZGUvZW5yaWNoaW5nLXJlc3RmdWwtc2VydmljZXMtc3dhZ2dlci8pIGJ5IFtQaGlsaXBwIEhhdWVyXShodHRwczovL2Jsb2cucGhpbGlwcGhhdWVyLmRlLykKLSAyMDE1LzExLzExIC0gW0dlbmVyYXRlIGNsaWVudCBzdHVicyAmIGRvY3VtZW50IHlvdXIgUkVTVC1BUEkgdXNpbmcgU3dhZ2dlciAmIFNwcmluZ10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj00M0doQmJQLS1vSSkgYnkgW0pvaGFubmVzIEZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKSBAIERldm94eCBCZWxnaXVtIDIwMTUKLSAyMDE1LzEyLzAzIC0gW+OBk+OCk+OBquOBq+ewoeWNmCEgU3dhZ2dlciBDb2RlZ2Vu44Gu44Kr44K544K/44Oe44Kk44K6XShodHRwOi8vcWlpdGEuY29tL1F1cmFteS9pdGVtcy9jNTgzZjMyMTNmMGI3N2ZmMWJhYykgYnkgW1F1cmFteV0oaHR0cDovL3FpaXRhLmNvbS9RdXJhbXkpCi0gMjAxNi8wMS8xMiAtIFtHZW5lcmF0ZSBjbGllbnQgc2lkZSBjb2RlIHVzaW5nIFN3YWdnZXIgQ29kZWdlbl0oaHR0cDovL3JuYXZhZ2FtdXdhLmNvbS9vcGVuLXNvdXJjZS9nZW5lcmF0ZS1jbGllbnQtc2lkZS1jb2RlLXVzaW5nLXN3YWdnZXItY29kZWdlbi8pIGJ5IFtSTkFWQUdBTVVXQV0oaHR0cDovL3JuYXZhZ2FtdXdhLmNvbS9hdXRob3IvYWRtaW4vKQotIDIwMTYvMDEvMTUgLSBbSG93IHRvIGVuZCBtYW51YWwgUkVTVC1BUEkgY2xpZW50IGNvZGluZ10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1SelpSZHFacDZPbykgYnkgW0pvaGFubmVzIEZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKSBAIGRvdEpTIDIwMTUKLSAyMDE2LzA0LzI3IC0gW0F1dG9tYXRlZCBSRVNUIEFQSSBEZXZlbG9wbWVudF0oaHR0cHM6Ly95b3MuaW8vMjAxNi8wNC8yNy9hdXRvbWF0ZWQtYXBpLWRldmVsb3BtZW50LykgYnkgW1lvcyBSaWFkeV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3lvc3JpYWR5KQotIDIwMTYvMDUvMjkgLSBbR2VuZXJhdGluZyBKYXZhIFNwcmluZy1NVkMgY29kZSBmcm9tIFN3YWdnZXIgU3BlY10oaHR0cHM6Ly93d3cuY2xpYW56LmNvbS8yMDE2LzA1LzI5L2phdmEtbXZjLXN3YWdnZXItZ2VuLykgYnkgW0BpY2hhMDI0XShodHRwczovL2dpdGh1Yi5jb20vaWNoYTAyNCkKLSAyMDE2LzA3LzIyIC0gW0J1aWxkaW5nIE1pY3Jvc2VydmljZXM/IEhlcmUgaXMgd2hhdCB5b3Ugc2hvdWxkIGtub3ddKGh0dHBzOi8vY2xvdWRuY29kZS5ibG9nLzIwMTYvMDcvMjIvbXNhLWdldHRpbmctc3RhcnRlZC8pIGJ5IFN1bWl0IE1haW5naQotIDIwMTYvMDgvMjMgLSBbR2VuZXJhdGluZyBEcmVhbWZhY3RvcnkgQ2xpZW50IFNES3MgYmFzZWQgb24gU3dhZ2dlciBBUEkgRGVmaW5pdGlvbnNdKGh0dHA6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vZ2VuZXJhdGluZy1kcmVhbWZhY3RvcnktY2xpZW50LXNka3MtYmFzZWQtb24tc3dhZ2dlci1hcGktZGVmaW5pdGlvbnMpIGJ5IFtQaGlsIFNjaHVsZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaWNpb3VzLykKLSAyMDE2LzA5LzI4IC0gWzEgVU5CRUxJRVZBQkxFIFRSSUNLIFRPIENSRUFURSBBTiBFQVNZIFRPIENPTlNVTUUgQVBJIElOIC5ORVRdKGh0dHBzOi8vc3RhcHAuc3BhY2UvMS1zaW1wbGUtdHJpY2stdG8tY3JlYXRlLWEtZ29vZC1hcGktaW4tbmV0LykgYnkgW1Bpb3RyIFN0YXBwXShodHRwczovL3N0YXBwLnNwYWNlL2F1dGhvci9waW90ci1zdGFwcC8pCi0gMjAxNi8xMC8xMCAtIFtVc2luZyBzd2FnZ2VyLWNvZGVnZW4gd2l0aCBNYXJrZXRvXShodHRwOi8vZGV2ZWxvcGVycy5tYXJrZXRvLmNvbS9ibG9nL3VzaW5nLXN3YWdnZXItY29kZWdlbi13aXRoLW1hcmtldG8vKSBieSBbS2VubnkgRWxraW5ndG9uXShodHRwOi8vZGV2ZWxvcGVycy5tYXJrZXRvLmNvbS9ibG9nL3VzaW5nLXN3YWdnZXItY29kZWdlbi13aXRoLW1hcmtldG8vKQotIDIwMTYvMTAvMTIgLSBbRGVzaWduaW5nIGEgU3dhZ2dlciBBUEldKGh0dHBzOi8vc29va29jaGVmZi5jb20vcG9zdC9hcGkvc3dhZ2dlci8pIGJ5IFtLZXZpbiBTb29rb2NoZWZmXShodHRwczovL3Nvb2tvY2hlZmYuY29tLykKLSAyMDE2LzExLzA1IC0gW0hvdyB0byBnZW5lcmF0ZSBhIFJFU1QgQXBwbGljYXRpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9aXlDOUJXTWU3NVEpIGJ5IFtKb2hhbm5lcyBGaWFsYV0oaHR0cHM6Ly9naXRodWIuY29tL2pmaWFsYSkgQCBEZXZGZXN0IFZpZW5uYSAyMDE2Ci0gMjAxNi8xMS8xMCAtIFtCdWlsZGluZyBhbiBBRU0gQVBJIGNsaWVudHMgZWNvc3lzdGVtXShodHRwOi8vYmxvZy5jbGlmZmFuby5jb20vMjAxNi8xMS8xMC9hZG9iZS1tYXJrZXRpbmctY2xvdWQtY29tbXVuaXR5LWV4cG8vKSBieSBDbGlmZmFubyBTdWJhZ2lvLCBNaWNoYWVsIERpZW5kZXIsIFN0ZXBoZW4gU2hpbSBmcm9tIFtTaGluZSBTb2x1dGlvbnNdKGh0dHBzOi8vc2hpbmVzb2x1dGlvbnMuY29tLykgQCBbQWRvYmUgTWFya2V0aW5nIENsb3VkIENvbW11bml0eSBFeHBvIChBTUNDRSldKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vTWVsYm91cm5lLUFFTS1DUS1NZWV0dXAvZXZlbnRzLzIzMzM2MzEwMS8pCi0gMjAxNi8xMS8xOCAtIFtIb3cgdG8gZ2VuZXJhdGUgYSBSRVNUIENYRjMgYXBwbGljYXRpb24gZnJvbSBTd2FnZ2VyLUNvbnRyYWN0XShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9qb2hhbm5lc19maWFsYS9ob3ctdG8tZ2VuZXJhdGUtYS1yZXN0LWN4ZjMtYXBwbGljYXRpb24tZnJvbS1zd2FnZ2VyLWFwYWNoZWNvbmV1LTIwMTYpIGJ5IFtKb2hhbm5lcyBGaWFsYV0oaHR0cHM6Ly9naXRodWIuY29tL2pmaWFsYSkgQCBBcGFjaGVDb25FVSAyMDE2Ci0gMjAxNi8xMS8yNSAtIFtTd2FnZ2VyIENvZGVnZW4gZm9yIFN3aWZ0MyBhbmQgTm9kZUpTXShodHRwczovL25vcm1hbmQxLmdpdGh1Yi5pby9ibG9nL3N3aWZ0L3N3YWdnZXIvY29kZWdlbi8yMDE2LzExLzI1L1N3YWdnZXItQ29kZWdlbi1mb3ItU3dpZnQzLWFuZC1Ob2RlSlMuaHRtbCkgYnkgW0RhdmlkIE5vcm1hbl0oaHR0cHM6Ly9naXRodWIuY29tL25vcm1hbmQxKQotIDIwMTYvMTIvMDggLSBbQnVpbGRpbmcgYW4gQVBJIHdpdGggU3dhZ2dlcl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1QYndRV3c3eFNPTSkKLSAyMDE2LzEyLzA4IC0gW0dlbmVyYXRlIGNsaWVudCBzaWRlIGNvZGUgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL2NhcnJhLWx1Y2lhLWx0ZC5jby51ay8yMDE2LzEyLzA4L2dlbmVyYXRlLWNsaWVudC1zaWRlLWNvZGUtdXNpbmctc3dhZ2dlci1jb2RlZ2VuLykgYnkgW3RoZUZlcmtlbF0oaHR0cHM6Ly9jYXJyYS1sdWNpYS1sdGQuY28udWsvYXV0aG9yL3RoZWZlcmtlbC8pCi0gMjAxNy8wMS8xNiAtIFtaZXJvIHRvIEFQSSBpbiA0IG1pbnV0ZXNdKGh0dHBzOi8vY2lkcmJsb2NrLmdpdGh1Yi5pby96ZXJvLXRvLWFwaS1pbi00LW1pbnV0ZXMuaHRtbCkgYnkgW0JyYWRsZXkgQS4gVGhvcm50b25dKGh0dHBzOi8vZ2l0aHViLmNvbS9jaWRyYmxvY2spCi0gMjAxNy8wMi8wOSAtIFvjgIxTd2FnZ2Vy44KS5Yip55So44GX44Gf5paw6KaP44K144O844OT44K56ZaL55m644CN44Go44GE44GG44K/44Kk44OI44Or44Gn55m75aOH44GX44Gm5p2l44G+44GX44GfXShodHRwczovL3RlY2hibG9nLnJlY29jaG9rdS5qcC8xMDU1KSBieSBbcmVjb3RlY2hdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L3JlY290ZWNoKQotIDIwMTcvMDMvMDMgLSBbU3dhZ2dlciBDb2RlZ2VuIOOBruS9v+OBhOaWueOBruewoeWNmOOBquiqrOaYjuOBp+OBmV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2FneXUyOTgvc3dhZ2dlci1jb2RlZ2VuKSBieSBbd2FneXUyOThdKGh0dHBzOi8vZ2l0aHViLmNvbS93YWd5dTI5OCkKLSAyMDE3LzAzLzI0IC0gW1VzaW5nIE9wZW4gQVBJIFNwZWNpZmljYXRpb24gVG8gUHV0IEx5ZnQgU0RLIFN1cHBvcnQgaW4gdGhlIEZhc3QgTGFuZV0oaHR0cHM6Ly9tZWRpdW0uY29tL2x5ZnQtZGV2ZWxvcGVyLXBsYXRmb3JtL3VzaW5nLW9wZW4tYXBpLXNwZWNpZmljYXRpb24tdG8tcHV0LWx5ZnQtc2RrLXN1cHBvcnQtaW4tdGhlLWZhc3QtbGFuZS03YjYyMzIxOGU0ZWUpIGJ5IFtWYWwgUG9sb3VjaGtpbmVdKGh0dHBzOi8vZ2l0aHViLmNvbS92cG9sb3VjaGtpbmUpCi0gMjAxNy8wNC8xMyAtIFtBdXRvbWF0aWNhbGx5IEdlbmVyYXRpbmcgeW91ciBBUEkgQ2xpZW50IHdpdGggU3dhZ2dlciBhbmQgU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUV6S3dpLXU5alFvKSBieSBbSmVzc2UgQ29sbGlzXShodHRwczovL2dpdGh1Yi5jb20vamVzc2VkYykgQCBNZWxib3VybmUgQ29jb2FoZWFkcwotIDIwMTcvMDQvMjcgLSBbU3dhZ2dlciBDb2RlZ2VuIOOBrlBIUOWun+ijheOBjOOBguOBvuOCiuOBq+OCouODrOOBoOOBo+OBn+OBruOBp+OAgeODqeOCpOODluODqeODquiHquS9nOOBl+OBpuWFrOmWi+OBl+OBpuOBv+OBn10oaHR0cDovL3FpaXRhLmNvbS9pbXVuZXcvaXRlbXMvMmU5YzQ3MmUwMDk3ZTMyOWYyY2QpIGJ5IFtpbXVuZXddKGh0dHA6Ly9xaWl0YS5jb20vaW11bmV3KQotIDIwMTcvMDUvMTcgLSBbRGlzZcOxbyBkZSBBUElzIGNvbiBPcGVuQVBJXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9wam1vbGluYS9kaXNlby1kZS1hcGlzLWNvbi1vcGVuYXBpKSBieSBbUGVkcm8gSi4gTW9saW5hXShodHRwczovL2dpdGh1Yi5jb20vcGptb2xpbmEpIEAgW0pTRGF5RVMgMjAxN10oaHR0cDovLzIwMTcuanNkYXkuZXMvKQotIDIwMTcvMDUvMjIgLSBbUHJlc2VudGF0aW9uIG9mIHRoZSBWZXJ0LngtU3dhZ2dlciBwcm9qZWN0XShodHRwOi8vdmVydHguaW8vYmxvZy9wcmVzZW50YXRpb24tb2YtdGhlLXZlcnQteC1zd2FnZ2VyLXByb2plY3QvKSBieSBbQHBoaXo3MV0oaHR0cDovL2dpdGh1Yi5jb20vcGhpejcxKQotIDIwMTcvMDUvMjIgLSBbQXV0b21hdGljYWxseSBnZW5lcmF0aW5nIHlvdXIgQVBJIGZyb20gYSBzd2FnZ2VyIGZpbGUgdXNpbmcgZ3JhZGxlXShodHRwczovL3d3dy5qY29yZS5jb20vMjAxNy8wNS8yMi9hdXRvbWF0aWNhbGx5LWdlbmVyYXRpbmctYXBpLXVzaW5nLXN3YWdnZXItYW5kLWdyYWRsZS8pIGJ5IFtEZW5peiBUdXJhbl0oaHR0cHM6Ly93d3cuamNvcmUuY29tL2F1dGhvci9kZW5pei8pCi0gMjAxNy8wNi8yMSAtIFtTd2FnZ2VyIFByZXNlbnRhdGlvbiAtIFdhcnNhdyBSdWJ5IFVzZXJzIEdyb3VwXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXVDbm5ETUZRQjhVKSBieSBbQHJhZmFscGV0cnlrYV0oaHR0cDovL2dpdGh1Yi5jb20vcmFmYWxwZXRyeWthKQotIDIwMTcvMDYvMjkgLSBbTWFraW5nIFNES3M6IHRoZSBiZXNwb2tlLCB0aGUgaG9wZWZ1bCBhbmQgdGhlIGdlbmVyYXRlZF0oaHR0cHM6Ly9kZXZyZWwubmV0L2RldmVsb3Blci1leHBlcmllbmNlL21ha2luZy1zZGtzLWJlc3Bva2UtaG9wZWZ1bC1nZW5lcmF0ZWQpIGJ5IFtUcmlzdGFuIFNva29sXShodHRwczovL2dpdGh1Yi5jb20vdHJpc3RhbnNva29sKSAoW1NxdWFyZV0oaHR0cHM6Ly9naXRodWIuY29tL3NxdWFyZSkpIGF0IERldlhjb24gMjAxNwotIDIwMTcvMDcvMTEgLSBbT3BlbkFQSSBkZXZlbG9wbWVudCB3aXRoIFB5dGhvbl0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvVGFrdXJvV2FkYS8yMDE3MDcxMS1ldXJvLXB5dGhvbjIwMTcpIGJ5IFvlkoznlLDmi5PmnJddKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pIGF0IFtFdXJvUHl0aG9uIDIwMTddKGh0dHBzOi8vZXAyMDE3LmV1cm9weXRob24uZXUvZW4vKQotIDIwMTcvMDcvMjkgLSBbSG93IFNxdWFyZSBtYWtlcyBpdHMgU0RLc10oaHR0cHM6Ly9tZWRpdW0uY29tL3NxdWFyZS1jb3JuZXItYmxvZy9ob3ctc3F1YXJlLW1ha2VzLWl0cy1zZGtzLTZhMGZkN2VhNGIyZCkgYnkgW1RyaXN0YW4gU29rb2xdKGh0dHBzOi8vZ2l0aHViLmNvbS90cmlzdGFuc29rb2wpIChbU3F1YXJlXShodHRwczovL2dpdGh1Yi5jb20vc3F1YXJlKSkKLSAyMDE3LzA3LzMxIC0gW0hvdyB0byBHZW5lcmF0ZSBhIERlcGxveWFibGUgUkVTVCBDWEYzIEFwcGxpY2F0aW9uIGZyb20gYSBTd2FnZ2VyLUNvbnRyYWN0XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdNNjNySmxVSFpRKSBieSBbSm9oYW5uZXMgRmlhbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZmlhbGEpIEAgVm94eGVkIERheXMgVmllbm5hCi0gMjAxNy8wOC8xMSAtIFtTd2FnZ2VyIENvZGVnZW4g6Ieq5Yqo55Sf5oiQUmV0cm9maXQg5Luj56CBXShodHRwczovL2p1ZWppbi5pbS9lbnRyeS81OThkOGViODZmYjlhMDNjNTI0NTllMmEpIGJ5IFvlvpDno4pdKGh0dHA6Ly93d3cuamlhbnNodS5jb20vdS83OTJjNzM4YjMzZmMpCi0gMjAxNy8wOC8yNCAtIFtBUElzIEZpcnN0XShodHRwczovL2VuZ2luZWVyaW5nLnNxdWFyZXNwYWNlLmNvbS9ibG9nLzIwMTcvYXBpcy1maXJzdCkgYnkgW3JveWthY2hvdWhdKGh0dHBzOi8vZ2l0aHViLmNvbS9yb3lrYWNob3VoKSAoW1NxdWFyZV0oaHR0cHM6Ly9naXRodWIuY29tL3NxdWFyZSkpCi0gMjAxNy8wOC8zMSAtIFtCcmluZ2luZyBKZW5raW5zIFJlbW90ZSBBY2Nlc3MgQVBJIFRvIFRoZSBNYXNzZXNdKGh0dHA6Ly9ibG9nLmNsaWZmYW5vLmNvbS8yMDE3LzA5LzAxL2plbmtpbnMtd29ybGQtMjAxNy8pIGJ5IFtDbGlmZmFubyBTdWJhZ2lvXShodHRwOi8vY2xpZmZhbm8uY29tKSBmcm9tIFtTaGluZSBTb2x1dGlvbnNdKGh0dHBzOi8vc2hpbmVzb2x1dGlvbnMuY29tLykgQCBbSmVua2lucyBXb3JsZCAyMDE3XShodHRwczovL2plbmtpbnN3b3JsZDIwMTYyMDE3LnNjaGVkLmNvbS8pCi0gMjAxNy8wOS8wOCAtIFtTd2FnZ2VyIENvZGVnZW4g44Gn6Ieq5YuV55Sf5oiQ44GX44Gf44Kv44Op44Kk44Ki44Oz44OIU0RL44KS5L2/44GGKGlPU+e3qCldKGh0dHA6Ly9ibG9nLnRlY2hpdW0uanAvZW50cnkvMjAxNy8wOS8wOC8wNzE2NTApIGJ5IFtrZnVydWVdKGh0dHA6Ly9wcm9maWxlLmhhdGVuYS5uZS5qcC9rZnVydWUvKQotIDIwMTcvMDkvMDkgLSBbU3dhZ2dlciBDb2RlZ2VuIOOBp+iHquWLleeUn+aIkOOBl+OBn+OCr+ODqeOCpOOCouODs+ODiFNES+OCkuS9v+OBhihSeFN3aWZ0IOe3qCldKGh0dHA6Ly9ibG9nLnRlY2hpdW0uanAvZW50cnkvMjAxNy8wOS8wOS8xMTMwMDMpIGJ5IFtrZnVydWVdKGh0dHA6Ly9wcm9maWxlLmhhdGVuYS5uZS5qcC9rZnVydWUvKQotIDIwMTcvMDkvMDkgLSBbT3BlbkFQSeOCkuWIqeeUqOOBl+OBn1B5dGhvbldlYuOCouODl+ODquOCseODvOOCt+ODp+ODs+mWi+eZul0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvVGFrdXJvV2FkYS9vcGVuYXBpcHl0aG9ud2ViKSBieSBb5ZKM55Sw5ouT5pyXXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKSBhdCBbUHlDb24gSlAgMjAxN10oaHR0cHM6Ly9weWNvbi5qcC8yMDE3L2phLykKLSAyMDE3LzA5LzIxIC0gW0dlbmVyYXRpbmcgYW4gRWxhc3RpYyBDbG91ZCBFbnRlcnByaXNlIENsaWVudF0oaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ibG9nL2dlbmVyYXRpbmctYW4tZWxhc3RpYy1jbG91ZC1lbnRlcnByaXNlLWNsaWVudCkgYnkgW0dyZWcgTWFyem91a2FdKGh0dHBzOi8vZ2l0aHViLmNvbS9nbWFyeikgKFtFbGFzdGljXShodHRwczovL3d3dy5lbGFzdGljLmNvLykpCi0gMjAxNy8wOS8yNiAtIFtIb3cgdG8gVXNlIElvVCBBcHBsaWNhdGlvbiBFbmFibGVtZW50IEFwaSBIdWIgSlNPTiBEZXNjcmlwdG9yIGluIFBvc3RtYW4gYW5kIEhvdyB0byBHZW5lcmF0ZSBDbGllbnQgQ29kZV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3JhZHUtc2ltZW4vKSBieSBbUmFkdSBTaW1lbl0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3JhZHUtc2ltZW4vKSAoW1NBUF0oaHR0cHM6Ly93d3cuc2FwLmNvbS8pKQotIDIwMTcvMDkvMjggLSBbU3dhZ2dlciBDb2RlZ2Vu44GnIEFQSeOCr+ODqeOCpOOCouODs+ODiGdlbSDoh6rli5XnlJ/miJAgI20za3RdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2p1bnRha2kvc3dhZ2dlci1jb2RlZ2VuZGUtYXBpa3VyYWlhbnRvZ2VtLXppLWRvbmctc2hlbmctY2hlbmctbnVtYmVyLW0za3QpIGJ5IFtKdW1wZWkgVGFraXlhc3VdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdW50YWtpKQotIDIwMTcvMDkvMzAgLSBbU3dhZ2dlcuOBruODhuODs+ODl+ODrOODvOODiOOCkumtlOaUuemAoOOBl+OBn+ipsSAj5riL6LC3amF2YV0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvaW50MTI4L3N3YWdnZXItODAzMDkyMjQpIGJ5IFtIaWRldGFrZSBJd2F0YV0oaHR0cHM6Ly9naXRodWIuY29tL2ludDEyOCkgKFtOVFQgREFUQSBDb3Jwb3JhdGlvbl0oaHR0cDovL3d3dy5udHRkYXRhLmNvbS9nbG9iYWwvZW4vKSkKLSAyMDE3LzEwLzA0IC0gW0VudGVycHJpc2UtZnJpZW5kbHkgSmF2YSBjbGllbnQgZm9yIE1pY3Jvc29mdCBNYWNoaW5lIExlYXJuaW5nIFNlcnZlcl0oaHR0cHM6Ly9ibG9ncy5tc2RuLm1pY3Jvc29mdC5jb20vbWxzZXJ2ZXIvMjAxNy8xMC8wNC9lbnRlcnByaXNlLWZyaWVuZGx5LWphdmEtY2xpZW50LWZvci1taWNyb3NvZnQtbWFjaGluZS1sZWFybmluZy1zZXJ2ZXIvKSBieSBbUHJhdGlrIFBhbG5pdGthcl0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3ByYXRpa3BhbG5pdGthci8pIChbTWljcm9zb2Z0XShodHRwczovL3d3dy5taWNyb3NvZnQuY29tLykpCi0gMjAxNy8xMC8wOCAtIFtHZW5lcmF0aW5nIGEgUkVTVCBBZGEgY2xpZW50IHdpdGggT3BlbkFQSSBhbmQgU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL2Jsb2cudmFjcy5mci92YWNzL2Jsb2dzL3Bvc3QuaHRtbD9wb3N0PTIwMTcvMTAvMDgvR2VuZXJhdGluZy1hLVJFU1QtQWRhLWNsaWVudC13aXRoLU9wZW5BUEktYW5kLVN3YWdnZXItQ29kZWdlbikgYnkgW1N0ZXBoYW5lIENhcnJlel0oaHR0cHM6Ly9naXRodWIuY29tL3N0Y2FycmV6KQotIDIwMTcvMTEvMDggLSBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bS5jby9zd2FnZ2VyX2NvZGVnZW5fYmVnaW5uZXIpKGVCb29rKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTcvMTEvMTggLSBbMTDlubTliY3jga7jg6zjgqzjgrfjg7zjgrfjgrnjg4bjg6DjgpLjgrXjg7zjg5Djg7zjgrXjgqTjg4lLb3RsaW7jgafjg5Xjg6vjg6rjg4vjg6Xjg7zjgqLjg6vjgZfjgabjgYTjgovoqbEgI2pqdWdfY2NjICNjY2NfZzJdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL21hZWhhcmluLzEwbmlhbi1xaWFuLWZhbHNlcmVnYXNpc2lzdXRlbXV3b3NhYmFzYWlkb2tvdGxpbmRlaHVydXJpbml5dWFydXNpdGVpcnVodWEtbnVtYmVyLWpqdWctY2NjLW51bWJlci1jY2MtZzIpIGJ5IFtIaWRlbm9yaSBNYWVoYXJhXShodHRwczovL2dpdGh1Yi5jb20vbWFlaGFyaW4pCi0gMjAxNy8xMS8yMSAtIFtzd2FnZ2VyLWNvZGVnZW4g44GL44KJ55y644KB44KLIFN3aWZ0NF0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vZF9kYXRlL3N3YWdnZXItY29kZWdlbi1rYXJhdGlhby1tZXJ1LXN3aWZ0NCkgYnkgW0RhaWtpIE1hdHN1ZGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2QtZGF0ZSkKLSAyMDE3LzEyLzA3IC0gW0FQSS1kcml2ZW4gZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIGFuZCBTd2FnZ2VyLCBQYXJ0IDJdKGh0dHBzOi8vd3d3Lml0d29ybGQuY29tL2FydGljbGUvMzE5OTE5MC9hcGlzL2FwaS1kcml2ZW4tZGV2ZWxvcG1lbnQtd2l0aC1vcGVuYXBpLWFuZC1zd2FnZ2VyLXBhcnQtMi5odG1sKSBieSBNYXR0aGV3IFR5c29uCi0gMjAxNy8xMi8yOSAtIFtSRVNUIEFQSXPku6PnoIHnlJ/miJDmjIfljZddKGh0dHBzOi8vZ3Vtcm9hZC5jb20vbC9zd2FnZ2VyX2NvZGVnZW5fYmVnaW5uZXJfemgpKGVCb29rKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpLCBbWGluIE1lbmddKGh0dHBzOi8vZ2l0aHViLmNvbS94bWVuZzEpCi0gMjAxNy8xMi8yMSAtIFtVc2luZyBQcm90b2NvbCBCdWZmZXIgdG8gR2VuZXJhdGUgU0RLIGF0IEhvb3RzdWl0ZV0oaHR0cDovL2NvZGUuaG9vdHN1aXRlLmNvbS91c2luZy1wcm90b2NvbC1idWZmZXItdG8tZ2VuZXJhdGUtc2RrLWF0LWhvb3N1aXRlLz9saXBpPXVybiUzQWxpJTNBcGFnZSUzQWRfZmxhZ3NoaXAzX21lc3NhZ2luZyUzQnk0QVR6M1NEUlh5dlhKSjE0TFF5c1ElM0QlM0QpIGJ5IFtKb3kgWmhhbmddKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9qb3k4emhhbmcvKQotIDIwMTgvMDEvMTEgLSBbU3dhZ2dlciDlt6XlhbfnrrHku4vnu43lj4rku6PnoIHoh6rliqjnlJ/miJDnpLrkvotdKGh0dHBzOi8vZ2l0aHViLmNvbS9xY3Qvc3dhZ2dlci1leGFtcGxlKSBieSBbcWN0XShodHRwczovL2dpdGh1Yi5jb20vcWN0KQotIDIwMTgvMDEvMTkgLSBbR2VuZXJvd2FuaWUga29kdSB1c8WCdWcgUkVTVCAtIHByemV3b2RuaWsgZGxhIHBvY3rEhXRrdWrEhWN5Y2hdKGh0dHBzOi8vZ3VtLmNvL3N3YWdnZXJfY29kZWdlbl9iZWdpbm5lcl9wbCkoZUJvb2spIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCksIFtUb21hc3ogUHJ1c10oaHR0cHM6Ly9naXRodWIuY29tL3RvbXBsdXMpLCBbQmFydGVrIEtyeXphXShodHRwczovL2dpdGh1Yi5jb20vYmtyeXphKQotIDIwMTgvMDIvMDMgLSBbV3JpdGluZyBSRVNUIEFQSXMgd2l0aCBPcGVuQVBJIGFuZCBTd2FnZ2VyIEFkYV0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvU3RlcGhhbmVDYXJyZXoxL3dyaXRpbmctcmVzdC1hcGlzLXdpdGgtb3BlbmFwaS1hbmQtc3dhZ2dlci1hZGEvU3RlcGhhbmVDYXJyZXoxL3dyaXRpbmctcmVzdC1hcGlzLXdpdGgtb3BlbmFwaS1hbmQtc3dhZ2dlci1hZGEpIGJ5IFtTdGVwaGFuZSBDYXJyZXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGNhcnJleikgYXQgW0ZPU0RFTSAyMDE4XShodHRwczovL2Zvc2RlbS5vcmcvMjAxOCkKLSAyMDE4LzAyLzI4IC0gW09wZW5BUEnigJNBbiBlQmF5IFBlcnNwZWN0aXZlXShodHRwczovL3d3dy5lYmF5aW5jLmNvbS9zdG9yaWVzL2Jsb2dzL3RlY2gvb3BlbmFwaS1hbi1lYmF5LXBlcnNwZWN0aXZlLykgYnkgU2hla2hhciBCYW5lcmplZSAoZUJheSkKLSAyMDE4LzAzLzE2IC0gW1JFU1QgQVBJ44Gu44Gf44KB44Gu44Kz44O844OJ55Sf5oiQ5YWl6ZaAXShodHRwczovL2d1bXJvYWQuY29tL2wvc3dhZ2dlcl9jb2RlZ2VuX2JlZ2lubmVyX2pwKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSwgW+WSjOeUsOaLk+acl10oaHR0cHM6Ly9naXRodWIuY29tL3RheHBvbikKCiMgU3dhZ2dlciBDb2RlZ2VuIENvcmUgVGVhbQoKU3dhZ2dlciBDb2RlZ2VuIGNvcmUgdGVhbSBtZW1iZXJzIGFyZSBjb250cmlidXRvcnMgd2hvIGhhdmUgYmVlbiBtYWtpbmcgc2lnbmlmaWNhbnQgY29udHJpYnV0aW9ucyAocmV2aWV3IGlzc3VlcywgZml4IGJ1Z3MsIG1ha2UgZW5oYW5jZW1lbnRzLCBldGMpIHRvIHRoZSBwcm9qZWN0IG9uIGEgcmVndWxhciBiYXNpcy4KCiMjIENvcmUgVGVhbSBNZW1iZXJzCgoKIyMgVGVtcGxhdGUgQ3JlYXRvcgpIZXJlIGlzIGEgbGlzdCBvZiB0ZW1wbGF0ZSBjcmVhdG9yczoKICogQVBJIENsaWVudHM6CiAgICogQWRhOiBAc3RjYXJyZXoKICAgKiBBa2thLVNjYWxhOiBAY2NoYWZlcgogICAqIEFwZXg6IEBhc25lbGxpbmcKICAgKiBCYXNoOiBAYmtyeXphCiAgICogQysrIFJFU1Q6IEBEYW5pZWxrdTE1CiAgICogQyMgKC5ORVQgMi4wKTogQHdobwogICAqIEMjICguTkVUIFN0YW5kYXJkIDEuMyApOiBAR3JvbnNhawogICAqIEMjICguTkVUIDQuNSByZWZhY3RvcmVkKTogQGppbXNjaHViZXJ0CiAgICogQ2xvanVyZTogQHhoaAogICAqIERhcnQ6IEB5aXNzYWNoYXIKICAgKiBEYXJ0IChyZWZhY3RvcmVkIGluIDIuNC4wKTogQGpvZXJuYWhyZW5zCiAgICogRWxpeGlyOiBAbmlrdQogICAqIEVsbTogQHRyZW5uZW1hbgogICAqIEVpZmZlbDogQGp2ZWxpbGxhCiAgICogRXJsYW5nOiBAdHNsb3VnaHRlcgogICAqIEdyb292eTogQHZpY3RvcmdpdAogICAqIEdvOiBAd2luZzMyOAogICAqIEdvIChyZXdyaXR0ZW4gaW4gMi4zLjApOiBAYW50aWhheAogICAqIEhhc2tlbGwgKGh0dHAtY2xpZW50KTogQGpvbnNjaG9uaW5nCiAgICogSmF2YSAoRmVpZ24pOiBAZGF2aWRraXNzCiAgICogSmF2YSAoUmV0cm9maXQpOiBAMGxlZ2cKICAgKiBKYXZhIChSZXRyb2ZpdDIpOiBAZW1pbGlhbm9ib25hc3NpCiAgICogSmF2YSAoSmVyc2V5Mik6IEB4aGgKICAgKiBKYXZhIChva2h0dHAtZ3Nvbik6IEB4aGgKICAgKiBKYXZhIChSZXN0VGVtcGxhdGUpOiBAbmJydW5vCiAgICogSmF2YSAoUkVTVEVhc3kpOiBAZ2F5YXRocmlncwogICAqIEphdmEgKFZlcnR4KTogQGxvcGVzbWNjCiAgICogSmF2YSAoR29vZ2xlIEFQSXMgQ2xpZW50IExpYnJhcnkpOiBAY2hhcmxlc2NhcHBzCiAgICogSmF2YSAoUmVzdC1hc3N1cmVkKTogQHZpY2xvdnNreQogICAqIEphdmFzY3JpcHQvTm9kZUpTOiBAamZpYWxhCiAgICogSmF2YXNjcmlwdCAoQ2xvc3VyZS1hbm5vdGF0ZWQgQW5ndWxhcikgQGFjaGV3MjIKICAgKiBKTWV0ZXI6IEBkYXZpZGtpc3MKICAgKiBLb3RsaW46IEBqaW1zY2h1YmVydAogICAqIEx1YTogQGRhdXJuaW1hdG9yCiAgICogUGVybDogQHdpbmczMjgKICAgKiBQSFAgKEd1enpsZSk6IEBiYWFydG9zegogICAqIFBvd2VyU2hlbGw6IEBiZWF0Y3JhY2tlcgogICAqIFI6IEByYW1ub3YKICAgKiBSdXN0OiBAZmFyY2FsbGVyCiAgICogUnVzdCAocnVzdC1zZXJ2ZXIpOiBAbWV0YXN3aXRjaAogICAqIFNjYWxhIChzY2FsYXogJiBodHRwNHMpOiBAdGJyb3duMTk3OQogICAqIFN3aWZ0OiBAdGtxdWJvCiAgICogU3dpZnQgMzogQGhleGVsb24KICAgKiBTd2lmdCA0OiBAZWh5Y2hlCiAgICogVHlwZVNjcmlwdCAoTm9kZSk6ICBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMSk6ICBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChGZXRjaCk6IEBsZW9ueXUKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMik6IEByb25pLWZyYW50Y2hpCiAgICogVHlwZVNjcmlwdCAoalF1ZXJ5KTogQGJoZXJpbGEKICogU2VydmVyIFN0dWJzCiAgICogQWRhOiBAc3RjYXJyZXoKICAgKiBDIyBBU1AuTkVUNTogQGppbXNjaHViZXJ0CiAgICogQyMgTmFuY3lGWDogQG1zdGVmYW5pdWsKICAgKiBDKysgUGlzdGFjaGU6IEBzZWJ5bWlhbm8KICAgKiBDKysgUmVzdGJlZDogQHN0a3J3b3JrCiAgICogRXJsYW5nIFNlcnZlcjogQGdhbGF4aWUKICAgKiBHbyBTZXJ2ZXI6IEBndW9odWFuZwogICAqIEhhc2tlbGwgU2VydmFudDogQGFsZ2FzCiAgICogSmF2YSBNU0Y0SjogQHNhbmplZXdhLW1hbGFsZ29kYQogICAqIEphdmEgU3ByaW5nIEJvb3Q6IEBkaXlmcgogICAqIEphdmEgVW5kZXJ0b3c6IEBzdGV2ZWh1CiAgICogSmF2YSBQbGF5IEZyYW1ld29yazogQEpGQ290ZQogICAqIEphdmEgUEtNU1Q6IEBhbnNodTIxODUgQHNhbnNodW1hbiBAcmt1bWFyLXBrIEBuaW5vZHBpbGxhaQogICAqIEpBWC1SUyBSZXN0RWFzeTogQGNoYW1lbGVvbjgyCiAgICogSkFYLVJTIENYRjogQGhpdmVzaGlwCiAgICogSkFYLVJTIENYRiAoQ0RJKTogQG5pY2tjbWF5bmFyZAogICAqIEpBWC1SUyBSZXN0RWFzeSAoSkJvc3MgRUFQKTogQGpmaWFsYQogICAqIEtvdGxpbjogQGppbXNjaHViZXJ0CiAgICogUEhQIEx1bWVuOiBAYWJjc3VuCiAgICogUEhQIFNsaW06IEBqZmFzdG5hY2h0CiAgICogUEhQIFN5bWZvbnk6IEBrc20yCiAgICogUEhQIFplbmQgRXhwcmVzc2l2ZSAod2l0aCBQYXRoIEhhbmRsZXIpOiBAQXJ0aWN1cwogICAqIFJ1Ynkgb24gUmFpbHMgNTogQHpseAogICAqIFJ1c3QgKHJ1c3Qtc2VydmVyKTogQG1ldGFzd2l0Y2gKICAgKiBTY2FsYSBGaW5jaDogQGppbXNjaHViZXJ0CiAgICogU2NhbGEgTGFnb206IEBnbWt1bWFyMjAwNQogKiBEb2N1bWVudGF0aW9uCiAgICogSFRNTCBEb2MgMjogQGpoaXRjaGNvY2sKICAgKiBDb25mbHVlbmNlIFdpa2k6IEBqaGl0Y2hjb2NrCiAqIENvbmZpZ3VyYXRpb24KICAgKiBBcGFjaGUyOiBAc3RrcndvcmsKCiMjIEhvdyB0byBqb2luIHRoZSBjb3JlIHRlYW0KCkhlcmUgYXJlIHRoZSByZXF1aXJlbWVudHMgdG8gYmVjb21lIGEgY29yZSB0ZWFtIG1lbWJlcjoKLSByYW5rIHdpdGhpbiB0b3AgNTAgaW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9ncmFwaHMvY29udHJpYnV0b3JzCiAgLSB0byBjb250cmlidXRlLCBoZXJlIGFyZSBzb21lIGdvb2QgW3N0YXJ0aW5nIHBvaW50c10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9pc3N1ZXM/cT1pcyUzQW9wZW4raXMlM0Fpc3N1ZStsYWJlbCUzQSUyMmhlbHArd2FudGVkJTIyKQotIHJlZ3VsYXIgY29udHJpYnV0aW9ucyB0byB0aGUgcHJvamVjdAogIC0gYWJvdXQgMyBob3VycyBwZXIgd2VlawogIC0gZm9yIGNvbnRyaWJ1dGlvbiwgaXQgY2FuIGJlIGFkZHJlc3NpbmcgaXNzdWVzLCByZXZpZXdpbmcgUFJzIHN1Ym1pdHRlZCBieSBvdGhlcnMsIHN1Ym1pdHRpbmcgUFIgdG8gZml4IGJ1Z3Mgb3IgbWFrZSBlbmhhbmNlbWVudHMsIGV0YwoKIFRvIGJlY29tZSBhIFRlbXBsYXRlIENyZWF0b3IsIHNpbXBseSBzdWJtaXQgYSBQUiBmb3IgbmV3IEFQSSBjbGllbnQgKGUuZy4gUnVzdCwgRWxpeGlyKSBvciBzZXJ2ZXIgc3R1YiAoZS5nLiBSdWJ5IEdyYXBlKSBnZW5lcmF0b3IuCgojIFN3YWdnZXIgQ29kZWdlbiBUZWNobmljYWwgQ29tbWl0dGVlCgpNZW1iZXJzIG9mIHRoZSBTd2FnZ2VyIENvZGVnZW4gdGVjaG5pY2FsIGNvbW1pdHRlZSBzaG91bGRlciB0aGUgZm9sbG93aW5nIHJlc3BvbnNpYmlsaXRpZXM6CgotIFByb3ZpZGVzIGd1aWRhbmNlIGFuZCBkaXJlY3Rpb24gdG8gb3RoZXIgdXNlcnMKLSBSZXZpZXdzIHB1bGwgcmVxdWVzdHMgYW5kIGlzc3VlcwotIEltcHJvdmVzIHRoZSBnZW5lcmF0b3IgYnkgbWFraW5nIGVuaGFuY2VtZW50cywgZml4aW5nIGJ1Z3Mgb3IgdXBkYXRpbmcgZG9jdW1lbnRhdGlvbnMKLSBTZXRzIHRoZSB0ZWNobmljYWwgZGlyZWN0aW9uIG9mIHRoZSBnZW5lcmF0b3IKCldobyBpcyBlbGlnaWJsZT8gVGhvc2Ugd2hvIHdhbnQgdG8gam9pbiBtdXN0IGhhdmUgYXQgbGVhc3QgMyBQUnMgbWVyZ2VkIGludG8gYSBnZW5lcmF0b3IuIChFeGNlcHRpb25zIGNhbiBiZSBncmFudGVkIHRvIHRlbXBsYXRlIGNyZWF0b3JzIG9yIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBtYWRlIGEgbG90IG9mIGNvZGUgY2hhbmdlcyB3aXRoIGxlc3MgdGhhbiAzIG1lcmdlZCBQUnMpCgojIyBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWUKCnwgTGFuZ3VhZ2VzICAgICB8IE1lbWJlciAoam9pbiBkYXRlKSB8Cnw6LS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLXwKfCBBY3Rpb25TY3JpcHQgfCAgICAgIHwKfCBBZGEgfCBAc3RjYXJyZXogKDIwMTgvMDIpIHwKfCBBbmRyb2lkIHwgIHwKfCBBcGV4ICB8ICAgICB8CnwgQmFzaCAgfCBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMDkpIHwKfCBDKysgICAgICB8IHwKfCBDIyAgICAgICAgfCBAbWFuZHJlYW4gKDIwMTcvMDgpIHwKfCBDbG9qdXJlICAgfCAgfAp8IERhcnQgICAgICB8IEBpcmNlY2hvICgyMDE3LzA3KSB8CnwgRWlmZmVsICAgIHwgfAp8IEVsaXhpciAgICB8ICB8CnwgRWxtICAgICAgIHwgIHwKfCBFcmxhbmcgICAgfCB8CnwgR3Jvb3Z5ICAgIHwgIHwKfCBHbyAgICAgICAgfCB8CnwgSGFza2VsbCAgIHwgfAp8IEphdmEgICAgICB8IHwKfCBLb3RsaW4gICAgIHwgfAp8IEx1YSAgICAgfCB8CnwgTm9kZUpTL0phdmFzY3JpcHQgfCBAQ29kZU5pbmphaSAoMjAxNy8wNykgfAp8IE9iakMgICAgICB8ICB8CnwgUGVybCAgICAgIHwgfAp8IFBIUCAgICAgIHwgQGRrYXJsb3ZpICgyMDE3LzA3KSBAbWFuZHJlYW4gKDIwMTcvMDgpIHwKfCBQeXRob24gICB8IEBrZW5qb25lcy1jaXNjbyAoMjAxNy8xMSl8CnwgUiAgICAgICAgfCAgfAp8IFJ1YnkgICAgICB8IEB6bHggKDIwMTcvMDkpIHwKfCBSdXN0ICAgICAgfCB8CnwgU2NhbGEgICAgIHwgfAp8IFN3aWZ0ICAgICB8IEBlaHljaGUgKDIwMTcvMDgpIHwKfCBUeXBlU2NyaXB0IHwgfAoKIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4KCiMgTGljZW5zZSBpbmZvcm1hdGlvbiBvbiBHZW5lcmF0ZWQgQ29kZQoKVGhlIFN3YWdnZXIgQ29kZWdlbiBwcm9qZWN0IGlzIGludGVuZGVkIGFzIGEgYmVuZWZpdCBmb3IgdXNlcnMgb2YgdGhlIFN3YWdnZXIgLyBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uLiAgVGhlIHByb2plY3QgaXRzZWxmIGhhcyB0aGUgW0xpY2Vuc2VdKCNsaWNlbnNlKSBhcyBzcGVjaWZpZWQuICBJbiBhZGRpdGlvbiwgcGxlYXNlIHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBwb2ludHM6CgoqIFRoZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgd2l0aCB0aGlzIHByb2plY3QgYXJlIHN1YmplY3QgdG8gdGhlIFtMaWNlbnNlXSgjbGljZW5zZSkuCiogR2VuZXJhdGVkIGNvZGUgaXMgaW50ZW50aW9uYWxseSBfbm90XyBzdWJqZWN0IHRvIHRoZSBwYXJlbnQgcHJvamVjdCBsaWNlbnNlCgpXaGVuIGNvZGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBwcm9qZWN0LCBpdCBzaGFsbCBiZSBjb25zaWRlcmVkICoqQVMgSVMqKiBhbmQgb3duZWQgYnkgdGhlIHVzZXIgb2YgdGhlIHNvZnR3YXJlLiAgVGhlcmUgYXJlIG5vIHdhcnJhbnRpZXMtLWV4cHJlc3NlZCBvciBpbXBsaWVkLS1mb3IgZ2VuZXJhdGVkIGNvZGUuICBZb3UgY2FuIGRvIHdoYXQgeW91IHdpc2ggd2l0aCBpdCwgYW5kIG9uY2UgZ2VuZXJhdGVkLCB0aGUgY29kZSBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IGFuZCBzdWJqZWN0IHRvIHRoZSBsaWNlbnNpbmcgdGVybXMgdGhhdCB5b3UgZGVlbSBhcHByb3ByaWF0ZS4KCiMgTGljZW5zZQoKYGBgCkNvcHlyaWdodCAyMDE5IFNtYXJ0QmVhciBTb2Z0d2FyZQoKTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IFthcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXShodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpgYGAK readmeEtag: '"1a0a887c277805faeb107e3d2e01bbceae450f53"' readmeLastModified: Fri, 09 Aug 2024 04:55:53 GMT repositoryId: 2006876 description: >- swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. created: '2011-07-06T14:26:48Z' updated: '2024-09-05T16:03:54Z' language: Mustache archived: false stars: 16883 watchers: 412 forks: 6025 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"506ffb70f97cb7d46e473d9c0ceeb8b4f4416ea58b017d6099995a88ea7041f0"' repoLastModified: Thu, 05 Sep 2024 16:03:54 GMT foundInMaster: true id: eda1e66e1b7805496e42f57851791a32 - source: https://openapi.tools/ name: Azure AutoRest category: SDK repository: https://github.com/azure/autorest/ language: TypeScript source_description: >- Generates client libraries for accessing RESTful web services from an OpenAPI document. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python, and Ruby. v2: true v3: true repositoryMetadata: base64Readme: >- IyA8aW1nIGFsaWduPSJjZW50ZXIiIHNyYz0iLi9kb2NzL2ltYWdlcy9sb2dvLnBuZyI+IEF1dG9SZXN0CgpUaGUgKipBdXRvUmVzdCoqIHRvb2wgZ2VuZXJhdGVzIGNsaWVudCBsaWJyYXJpZXMgZm9yIGFjY2Vzc2luZyBSRVNUZnVsIHdlYiBzZXJ2aWNlcy4gSW5wdXQgdG8gX0F1dG9SZXN0XyBpcyBhIHNwZWMgdGhhdCBkZXNjcmliZXMgdGhlIFJFU1QgQVBJIHVzaW5nIHRoZSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgZm9ybWF0LgoKW1JlbGVhc2Ugbm90ZXNdKC4vZG9jcy9yZWxlYXNlcykKCiMjIFBhY2thZ2VzCgp8IE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2hhbmdlbG9nICAgICAgICAgICAgICAgICAgICAgICB8IExhdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5leHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgQ29yZSBmdW5jdGlvbmFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFthdXRvcmVzdF1bYXV0b3Jlc3Rfc3JjXSAgICAgICAgICAgICAgICAgICAgICAgIHwgW0NoYW5nZWxvZ11bYXV0b3Jlc3RfY2hnXSAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2F1dG9yZXN0KSAgICAgICAgICAgICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2F1dG9yZXN0L25leHQpICAgICAgICAgICAgICAgICAgIHwKfCBbQGF1dG9yZXN0L2NvcmVdW2NvcmVfc3JjXSAgICAgICAgICAgICAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW2NvcmVfY2hnXSAgICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXV0b3Jlc3QvY29yZSkgICAgICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXV0b3Jlc3QvY29yZS9uZXh0KSAgICAgICAgICAgICB8CnwgW0BhdXRvcmVzdC9tb2RlbGVyZm91cl1bbW9kZWxlcmZvdXJfc3JjXSAgICAgICAgfCBbQ2hhbmdlbG9nXVttb2RlbGVyZm91cl9jaGddICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF1dG9yZXN0L21vZGVsZXJmb3VyKSAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF1dG9yZXN0L21vZGVsZXJmb3VyL25leHQpICAgICAgfAp8IExhbmd1YWdlIGdlbmVyYXRvcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbQGF1dG9yZXN0L2NzaGFycF1bY3NoYXJwX3NyY10gICAgICAgICAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW2NzaGFycF9jaGddICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXV0b3Jlc3QvY3NoYXJwKSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW0BhdXRvcmVzdC9nb11bZ29fc3JjXSAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbQ2hhbmdlbG9nXVtnb19jaGddICAgICAgICAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF1dG9yZXN0L2dvKSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtAYXV0b3Jlc3QvamF2YV1bamF2YV9zcmNdICAgICAgICAgICAgICAgICAgICAgIHwgW0NoYW5nZWxvZ11bamF2YV9jaGddICAgICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhdXRvcmVzdC9qYXZhKSAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbQGF1dG9yZXN0L3Bvd2Vyc2hlbGxdW3Bvd2Vyc2hlbGxfc3JjXSAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW3Bvd2Vyc2hlbGxfY2hnXSAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXV0b3Jlc3QvcG93ZXJzaGVsbCkgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW0BhdXRvcmVzdC9weXRob25dW3B5dGhvbl9zcmNdICAgICAgICAgICAgICAgICAgfCBbQ2hhbmdlbG9nXVtweXRob25fY2hnXSAgICAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF1dG9yZXN0L3B5dGhvbikgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtAYXV0b3Jlc3Qvc3dpZnRdW3N3aWZ0X3NyY10gICAgICAgICAgICAgICAgICAgIHwgW0NoYW5nZWxvZ11bc3dpZnRfY2hnXSAgICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhdXRvcmVzdC9zd2lmdCkgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbQGF1dG9yZXN0L3R5cGVzY3JpcHRdW3R5cGVzY3JpcHRfc3JjXSAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW3R5cGVzY3JpcHRfY2hnXSAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXV0b3Jlc3QvdHlwZXNjcmlwdCkgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSW50ZXJuYWwgcGFja2FnZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtAYXV0b3Jlc3QvY29kZW1vZGVsXVtjb2RlbW9kZWxfc3JjXSAgICAgICAgICAgIHwgW0NoYW5nZWxvZ11bY29kZW1vZGVsX2NoZ10gICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhdXRvcmVzdC9jb2RlbW9kZWwpICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhdXRvcmVzdC9jb2RlbW9kZWwvbmV4dCkgICAgICAgIHwKfCBbQGF1dG9yZXN0L2NvbW1vbl1bY29tbW9uX3NyY10gICAgICAgICAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW2NvbW1vbl9jaGddICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXV0b3Jlc3QvY29tbW9uKSAgICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXV0b3Jlc3QvY29tbW9uL25leHQpICAgICAgICAgICB8CnwgW0BhdXRvcmVzdC9jb25maWd1cmF0aW9uXVtjb25maWd1cmF0aW9uX3NyY10gICAgfCBbQ2hhbmdlbG9nXVtjb25maWd1cmF0aW9uX2NoZ10gIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF1dG9yZXN0L2NvbmZpZ3VyYXRpb24pICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF1dG9yZXN0L2NvbmZpZ3VyYXRpb24vbmV4dCkgICAgfAp8IFtAYXV0b3Jlc3QvZXh0ZW5zaW9uLWJhc2VdW2V4dGVuc2lvbl9iYXNlX3NyY10gIHwgW0NoYW5nZWxvZ11bZXh0ZW5zaW9uX2Jhc2VfY2hnXSB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhdXRvcmVzdC9leHRlbnNpb24tYmFzZSkgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhdXRvcmVzdC9leHRlbnNpb24tYmFzZS9uZXh0KSAgIHwKfCBbQGF6dXJlLXRvb2xzL2V4dGVuc2lvbl1bZXh0ZW5zaW9uX3NyY10gICAgICAgICB8IFtDaGFuZ2Vsb2ddW2V4dGVuc2lvbl9jaGddICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXp1cmUtdG9vbHMvZXh0ZW5zaW9uKSAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXp1cmUtdG9vbHMvZXh0ZW5zaW9uL25leHQpICAgICB8CnwgW0BhenVyZS10b29scy9jb2RlZ2VuXVtjb2RlZ2VuX3NyY10gICAgICAgICAgICAgfCBbQ2hhbmdlbG9nXVtjb2RlbW9kZWxfY2hnXSAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF6dXJlLXRvb2xzL2NvZGVnZW4pICAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF6dXJlLXRvb2xzL2NvZGVnZW4vbmV4dCkgICAgICAgfAp8IFtAYXp1cmUtdG9vbHMvb3BlbmFwaV1bb3BlbmFwaV9zcmNdICAgICAgICAgICAgIHwgW0NoYW5nZWxvZ11bb3BlbmFwaV9jaGddICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhenVyZS10b29scy9vcGVuYXBpKSAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhenVyZS10b29scy9vcGVuYXBpL25leHQpICAgICAgIHwKfCBbQGF6dXJlLXRvb2xzL2RlZHVwbGljYXRpb25dW2RlZHVwbGljYXRpb25fc3JjXSB8IFtDaGFuZ2Vsb2ddW2RlZHVwbGljYXRpb25fY2hnXSAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXp1cmUtdG9vbHMvZGVkdXBsaWNhdGlvbikgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXp1cmUtdG9vbHMvZGVkdXBsaWNhdGlvbi9uZXh0KSB8CnwgW0BhenVyZS10b29scy9kYXRhc3RvcmVdW2RhdGFzdG9yZV9zcmNdICAgICAgICAgfCBbQ2hhbmdlbG9nXVtkYXRhc3RvcmVfY2hnXSAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF6dXJlLXRvb2xzL2RhdGFzdG9yZSkgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGF6dXJlLXRvb2xzL2RhdGFzdG9yZS9uZXh0KSAgICAgfAp8IFtAYXp1cmUtdG9vbHMvb2FpMi10by1vYWkzXVtvYWkyLXRvLW9haTNfc3JjXSAgIHwgW0NoYW5nZWxvZ11bb2FpMi10by1vYWkzX2NoZ10gICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhenVyZS10b29scy9vYWkyLXRvLW9haTMpICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhenVyZS10b29scy9vYWkyLXRvLW9haTMvbmV4dCkgIHwKfCBbQGF6dXJlLXRvb2xzL2pzb25zY2hlbWFdW2pzb25zY2hlbWFfc3JjXSAgICAgICB8IFtDaGFuZ2Vsb2ddW2pzb25zY2hlbWFfY2hnXSAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXp1cmUtdG9vbHMvanNvbnNjaGVtYSkgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXp1cmUtdG9vbHMvanNvbnNjaGVtYS9uZXh0KSAgICB8CgpbYXV0b3Jlc3Rfc3JjXTogcGFja2FnZXMvYXBwcy9hdXRvcmVzdApbY29yZV9zcmNdOiBwYWNrYWdlcy9leHRlbnNpb25zL2NvcmUKW21vZGVsZXJmb3VyX3NyY106IHBhY2thZ2VzL2V4dGVuc2lvbnMvbW9kZWxlcmZvdXIKW2NzaGFycF9zcmNdOiBodHRwczovL2dpdGh1Yi5jb20vQXp1cmUvYXV0b3Jlc3QuY3NoYXJwCltweXRob25fc3JjXTogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0LnB5dGhvbgpbZ29fc3JjXTogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0LmdvCltqYXZhX3NyY106IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9hdXRvcmVzdC5qYXZhCltzd2lmdF9zcmNdOiBodHRwczovL2dpdGh1Yi5jb20vQXp1cmUvYXV0b3Jlc3Quc3dpZnQKW3R5cGVzY3JpcHRfc3JjXTogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0LnR5cGVzY3JpcHQKW3Bvd2Vyc2hlbGxfc3JjXTogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0LnBvd2Vyc2hlbGwKW2NvZGVtb2RlbF9zcmNdOiBwYWNrYWdlcy9saWJzL2NvZGVtb2RlbApbY29tbW9uX3NyY106IHBhY2thZ2VzL2xpYnMvY29tbW9uCltjb25maWd1cmF0aW9uX3NyY106IHBhY2thZ2VzL2xpYnMvY29uZmlndXJhdGlvbgpbZXh0ZW5zaW9uX2Jhc2Vfc3JjXTogcGFja2FnZXMvbGlicy9leHRlbnNpb24tYmFzZQpbb2FpMi10by1vYWkzX3NyY106IHBhY2thZ2VzL2xpYnMvb2FpMi10by1vYWkzX3NyYwpbZXh0ZW5zaW9uX3NyY106IHBhY2thZ2VzL2xpYnMvZXh0ZW5zaW9uCltjb2RlZ2VuX3NyY106IHBhY2thZ2VzL2xpYnMvY29kZWdlbgpbb3BlbmFwaV9zcmNdOiBwYWNrYWdlcy9saWJzL29wZW5hcGkKW2RlZHVwbGljYXRpb25fc3JjXTogcGFja2FnZXMvbGlicy9kZWR1cGxpY2F0aW9uCltkYXRhc3RvcmVfc3JjXTogcGFja2FnZXMvbGlicy9kYXRhc3RvcmUKW2pzb25zY2hlbWFfc3JjXTogcGFja2FnZXMvbGlicy9vYWkyLXRvLW9haTMKW2F1dG9yZXN0X2NoZ106IHBhY2thZ2VzL2FwcHMvYXV0b3Jlc3QvQ0hBTkdFTE9HLm1kCltjb3JlX2NoZ106IHBhY2thZ2VzL2V4dGVuc2lvbnMvY29yZS9DSEFOR0VMT0cubWQKW21vZGVsZXJmb3VyX2NoZ106IHBhY2thZ2VzL2V4dGVuc2lvbnMvbW9kZWxlcmZvdXIvQ0hBTkdFTE9HLm1kCltjc2hhcnBfY2hnXTogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0LmNzaGFycApbcHl0aG9uX2NoZ106IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9hdXRvcmVzdC5weXRob24vYmxvYi9tYWluL3BhY2thZ2VzL2F1dG9yZXN0LnB5dGhvbi9DaGFuZ2VMb2cubWQKW2dvX2NoZ106IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9hdXRvcmVzdC5nbwpbamF2YV9jaGddOiBodHRwczovL2dpdGh1Yi5jb20vQXp1cmUvYXV0b3Jlc3QuamF2YS9yZWxlYXNlcwpbc3dpZnRfY2hnXTogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0LnN3aWZ0Clt0eXBlc2NyaXB0X2NoZ106IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9hdXRvcmVzdC50eXBlc2NyaXB0Cltwb3dlcnNoZWxsX2NoZ106IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9hdXRvcmVzdC5wb3dlcnNoZWxsL3JlbGVhc2VzCltjb2RlbW9kZWxfY2hnXTogcGFja2FnZXMvbGlicy9jb2RlbW9kZWwvQ0hBTkdFTE9HLm1kCltjb21tb25fY2hnXTogcGFja2FnZXMvbGlicy9jb21tb24vQ0hBTkdFTE9HLm1kCltjb25maWd1cmF0aW9uX2NoZ106IHBhY2thZ2VzL2xpYnMvY29uZmlndXJhdGlvbi9DSEFOR0VMT0cubWQKW2V4dGVuc2lvbl9iYXNlX2NoZ106IHBhY2thZ2VzL2xpYnMvZXh0ZW5zaW9uLWJhc2UvQ0hBTkdFTE9HLm1kCltleHRlbnNpb25fY2hnXTogcGFja2FnZXMvbGlicy9leHRlbnNpb24vQ0hBTkdFTE9HLm1kCltjb2RlZ2VuX2NoZ106IHBhY2thZ2VzL2xpYnMvY29kZWdlbi9DSEFOR0VMT0cubWQKW29wZW5hcGlfY2hnXTogcGFja2FnZXMvbGlicy9vcGVuYXBpL0NIQU5HRUxPRy5tZApbZGVkdXBsaWNhdGlvbl9jaGddOiBwYWNrYWdlcy9saWJzL2RlZHVwbGljYXRpb24vQ0hBTkdFTE9HLm1kCltkYXRhc3RvcmVfY2hnXTogcGFja2FnZXMvbGlicy9kYXRhc3RvcmUvQ0hBTkdFTE9HLm1kCltvYWkyLXRvLW9haTNfY2hnXTogcGFja2FnZXMvbGlicy9vYWkyLXRvLW9haTMvQ0hBTkdFTE9HLm1kCltqc29uc2NoZW1hX2NoZ106IHBhY2thZ2VzL2xpYnMvanNvbnNjaGVtYS9DSEFOR0VMT0cubWQKCiMjIFN1cHBvcnQgUG9saWN5CgpBdXRvUmVzdCBpcyBhbiBvcGVuIHNvdXJjZSB0b29sIC0tIGlmIHlvdSBuZWVkIGFzc2lzdGFuY2UsIGZpcnN0IGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uLiBJZiB5b3UgZmluZCBhIGJ1ZyBvciBuZWVkIHNvbWUgaGVscCwgZmVlbCBmcmVlIHRvIHN1Ym1pdCBhbiBbaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9hdXRvcmVzdC9pc3N1ZXMpCgojIyBHZXR0aW5nIFN0YXJ0ZWQgdXNpbmcgQXV0b1Jlc3QgIVtpbWFnZV0oLi9kb2NzL2ltYWdlcy9ub3JtYWwucG5nKQoKVmlldyBvdXIgW2RvY3MgcmVhZG1lXVtkb2NzX3JlYWRtZV0gYXMgYSBzdGFydGluZyBwb2ludCB0byBmaW5kIGJvdGggZ2VuZXJhbCBpbmZvcm1hdGlvbiBhbmQgbGFuZ3VhZ2UtZ2VuZXJhdG9yIHNwZWNpZmljIGluZm9ybWF0aW9uCgojIyBDb250cmlidXRpbmcKCiMjIyBDb250cmlidXRpbmcgZ3VpZGUKCkNoZWNrIG91ciBbaW50ZXJuYWwgZGV2ZWxvcGVyIGRvY3NdKC4vZG9jcy9kZXZlbG9wZXIvcmVhZG1lLm1kKSB0byBsZWFybiBhYm91dCBvdXIgZGV2ZWxvcG1lbnQgcHJvY2VzcywgaG93IHRvIHByb3Bvc2UgYnVnZml4ZXMgYW5kIGltcHJvdmVtZW50cywgYW5kIGhvdyB0byBidWlsZCBhbmQgdGVzdCB5b3VyIGNoYW5nZXMgdG8gQXV0b3Jlc3QuCgojIyMgQ29kZSBvZiBDb25kdWN0CgpUaGlzIHByb2plY3QgaGFzIGFkb3B0ZWQgdGhlIFtNaWNyb3NvZnQgT3BlbiBTb3VyY2UgQ29kZSBvZiBDb25kdWN0XShodHRwczovL29wZW5zb3VyY2UubWljcm9zb2Z0LmNvbS9jb2Rlb2Zjb25kdWN0LykuIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgW0NvZGUgb2YgQ29uZHVjdCBGQVFdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvZmFxLykgb3IgY29udGFjdCBbb3BlbmNvZGVAbWljcm9zb2Z0LmNvbV0obWFpbHRvOm9wZW5jb2RlQG1pY3Jvc29mdC5jb20pIHdpdGggYW55IGFkZGl0aW9uYWwgcXVlc3Rpb25zIG9yIGNvbW1lbnRzLgoKPCEtLUxJTktTLS0+CgpbZG9jc19yZWFkbWVdOiBkb2NzL3JlYWRtZS5tZAo= readmeEtag: '"f205b0054148c6362d9b9a5d930c27da17b36eca"' readmeLastModified: Tue, 13 Aug 2024 07:26:42 GMT repositoryId: 31089461 description: >- OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python created: '2015-02-20T23:02:54Z' updated: '2024-09-05T13:22:53Z' language: TypeScript archived: false stars: 4584 watchers: 881 forks: 731 owner: Azure logo: https://avatars.githubusercontent.com/u/6844498?v=4 license: MIT repoEtag: '"b51182ff33bd3db784c199754a8378c4ae5449c6483f33fa001f27190a6e7828"' repoLastModified: Thu, 05 Sep 2024 13:22:53 GMT foundInMaster: true id: 648d92bca90bf58cd74407e0bcad2936 - source: https://openapi.tools/ name: spring-openapi homepage: https://github.com/jrcodeza/spring-openapi language: Java source_description: >- OpenAPI v3 generator for Java Spring. Includes also client generation. Supports inheritance with discriminators, Jackson annotations and custom interceptors. category: SDK repository: https://github.com/jrcodeza/spring-openapi v3: true repositoryMetadata: base64Readme: >- IyBzcHJpbmctb3BlbmFwaSAoT3BlbkFQSSAzIGdlbmVyYXRvcikKIVtKYXZhIENJXShodHRwczovL2dpdGh1Yi5jb20vanJjb2RlemEvc3ByaW5nLW9wZW5hcGkvd29ya2Zsb3dzL0phdmElMjBDSS9iYWRnZS5zdmcpCgpTcHJpbmcgQm9vdCBPcGVuQVBJIDMgZ2VuZXJhdG9yLiBJdCBzY2FucyBwcm92aWRlZCBwYWNrYWdlcyAKKG1vZGVsIGFuZCBjb250cm9sbGVyKSBhbmQgZ2VuZXJhdGVzIGJhc2VkIG9uIHJlZmxlY3Rpb24sIGphdmF4IHZhbGlkYXRpb24KYW5kIHNwcmluZyBhbm5vdGF0aW9ucyB0aGUgT3BlbkFQSSAzIGpzb24uIEl0IGlzIGFibGUgdG8gaGFuZGxlIGFsc28KaW5oZXJpdGFuY2UgdXNpbmcgT3BlbkFQSSAzIGRpc2NyaW1pbmF0b3IgcG9zc2liaWxpdGllcy4gVGhlIGluaGVyaXRhbmNlCmdlbmVyYXRpb24gaXMgYWNoaWV2ZWQgdXNpbmcgamFja3NvbiBhbm5vdGF0aW9ucy4KCkdlbmVyYXRvciBhbGxvd3MgeW91IHRvIGFsc28gaW50ZXJjZXB0IHNjaGVtYSwgc2NoZW1hIGZpZWxkLCBvcGVyYXRpb24KYW5kIG9wZXJhdGlvbiBwYXJhbWV0ZXIgcHJvY2Vzcywgc28geW91IGNhbiBpbmNsdWRlIHlvdXIgb3duIGJlaGF2aW9yCnRvIGVucmljaCBhbHJlYWR5IG1hcHBlZCBzZWN0aW9ucyAoZS5nLiBpbmNsdWRlIG93biBhbm5vdGF0aW9uIGJlaGF2aW9yCnRvIGRlc2NyaXB0aW9ucyBldGMuKS4KClNvIGZhciB0aGVyZSBpcyBjb3JlIGdlbmVyYXRvciBmdW5jdGlvbmFsaXR5IAoqKnNwcmluZy1vcGVuYXBpLXNjaGVtYS1nZW5lcmF0b3IqKiBhbmQgbWF2ZW4gcGx1Z2luCioqc3ByaW5nLW9wZW5hcGktc2NoZW1hLWdlbmVyYXRvci1wbHVnaW4qKiBhdmFpbGFibGUuU29vbiB0aGVyZSB3aWxsIGJlIAphbHNvIGphdmEgY2xpZW50IGdlbmVyYXRvciBmaW5hbGl6ZWQsIGJlY2F1c2UgY3VycmVudCB0b29saW5nIGlzIHN0aWxsIApub3QgYWJsZSB0byBnZW5lcmF0ZSBjbGllbnQgd2l0aCBmdWxsIE9wZW5BUEkgMyBkaXNjcmltaW5hdG9yIGZlYXR1cmVzCihqYWNrc29uIGFubm90YXRpb25zKS4KClRoZXJlIGlzIGFsc28gc2hvcnQgYXJ0aWNsZSBkZXNjcmliaW5nIHVzYWdlIG9mIHNwcmluZy1vcGVuYXBpIGdlbmVyYXRvciBoZXJlOiAKaHR0cHM6Ly9tZWRpdW0uY29tL0ByZW1lbmVjLmpha3ViL29wZW5hcGktMy1zcGVjLWFuZC1jbGllbnQtZ2VuZXJhdGlvbi1vbi1qYXZhLXNwcmluZy1hcHBsaWNhdGlvbi0zOGE5YmE1YTI5MzIuCgojIyBDdXJyZW50IHZlcnNpb24KKioxLjQuNioqCgpOb3cgZ2VuZXJhdG9yIHN1cHBvcnRzIGFsc28gT3BlbkFQSSB2ZXJzaW9uIDIgZ2VuZXJhdGlvbi4KClJlbGVhc2Ugbm90ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9qcmNvZGV6YS9zcHJpbmctb3BlbmFwaS9ibG9iL21hc3Rlci9DSEFOR0VMT0cubWQgCgoxLjIuMSAtIHRvIGVuc3VyZSBjb21wYXRpYmxpdHkgd2l0aCBzd2FnZ2VyIHVpIGZvciBiaWdnZXIgaW5oZXJpdGFuY2Ugc3RydWN0dXJlcy4KVGhpcyB2ZXJzaW9uIG1vZGVscyBpbmhlcml0YW5jZSB1c2luZyBhbGxPZiBvbmx5IGlmIGRpc2NyaW1pbmF0b3IgKEpzb25TdWJUeXBlcykgaXMgZm91bmQKaW4gaW5oZXJpdGFuY2UgaGllcmFyY2h5LiBJZiBub3QsIGl0IHRha2VzIGFsbCBhdHRyaWJ1dGVzIGZyb20gcGFyZW50IGNsYXNzZXMKYW5kIGFkZHMgdGhlbSB0byB0aGUgY3VycmVudCBvbmUuIFNlZSB0ZXN0cyBmb3IgbW9yZSBpbmZvLgoKIyMgRXhhbXBsZSBwcm9qZWN0CllvdSBjYW4gY2hlY2sgdGhpcyByZXBvc2l0b3J5IGh0dHBzOi8vZ2l0aHViLmNvbS9qcmNvZGV6YS9zcHJpbmctb3BlbmFwaS1leGFtcGxlIGZvciBhbiBleGFtcGxlCnVzYWdlLiBJdCBzaG93cyBzcGVjIHRvIGNvZGUgYW5kIGFsc28gY29kZSB0byBzcGVjIGdlbmVyYXRpb24gdXNpbmcgbWF2ZW4gcGx1Z2lucy4gSXQgY29udGFpbnMKc2ltcGxlIFJFU1QgcmVzb3VyY2VzLCBtb2RlbCAoaW5jbHVkaW5nIGluaGVyaXRhbmNlKSwgaW50ZXJjZXB0b3JzIGFuZCBleGFtcGxlcyByZXNvbHZlci4KCiMjIE9wZW5BUEkgVUkgaW50ZXJwcmV0ZXIKSWYgeW91IG5lZWQgdG8gZGlzcGxheSBPcGVuQVBJIHYzIHNwZWMgaW4gYnJvd3NlciB5b3UgY2FuIGhhdmUgYSBsb29rIGFsc28gb24gKipvYXMtdWkqKgpwbHVnaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZhaGFuaXRvL29hcy11aSAod2hpY2ggd2FzIGRldmVsb3BlZCB0b2dldGhlciB3aXRoIHNwcmluZy1vcGVuYXBpKSAuIApJdCBzdXBwb3J0cyBzZWFyY2hpbmcgb2YgY29tcG9uZW50cyBhbmQgcmVzb3VyY2VzLiBDb3JyZWN0bHkgZGlzcGxheXMgaW5oZXJpdGFuY2UgYWxzbyAKd2l0aCBkaXNjcmltaW5hdG9yIGluZm8uIFlvdSBjYW4gdXNlIGl0IGluIHJlYWN0IGFzIHBsdWdpbiBvciBhbHNvIGFzIHN0YW5kYWxvbmUgYnVuZGxlIGpzLiAKCiMjIEFubm90YXRpb25zCiMjIyBAT3BlbkFwaUV4YW1wbGUKWW91IGNhbiBkZWZpbmUgaXQgb24gY2xhc3MsIG1ldGhvZCwgcGFyYW1ldGVyIG9yIGZpZWxkLiBUaGVyZSBhcmUgMiBtYWluIHVzZSBjYXNlczoKCi0gUHJvdmlkaW5nIHRoZSBleGFtcGxlIHZhbHVlICoqaW4gcGxhY2UqKgpgYGBqYXZhCkBPcGVuQXBpRXhhbXBsZShuYW1lID0gIlN0YW5kYXJkRXhhbXBsZSIsIHZhbHVlID0gInN0YW5kYXJkRXhhbXBsZVZhbHVlIikKYGBgCi0gcHJvdmlkaW5nICoqa2V5KiogdG8gZXhhbXBsZS4gWW91IGhhdmUgdG8gbWFuYWdlIHRoYXQga2V5IGlzIGhhbmRsZWQgYnkgZXhhbXBsZXMgcmVzb2x2ZXIKYGBgamF2YQpAT3BlbkFwaUV4YW1wbGUobmFtZSA9ICJLZXlFeGFtcGxlIiwga2V5ID0gIktFWSIpCmBgYApFeGFtcGxlIHJlc29sdmVyIGlzIGEgc2ltcGxlIGludGVyZmFjZToKYGBgamF2YQpwdWJsaWMgaW50ZXJmYWNlIE9wZW5BcGlFeGFtcGxlUmVzb2x2ZXIgewoJCiAgICBTdHJpbmcgcmVzb2x2ZUV4YW1wbGUoU3RyaW5nIGV4YW1wbGVLZXkpOwoKfQpgYGAKVGhlICoqZXhhbXBsZUtleSoqIHBhcmFtZXRlciBpcyBhIGtleSBmb3Igd2hpY2ggZXhhbXBsZSB2YWx1ZSBzaG91bGQgYmUgcHJvdmlkZWQgYnkgcmVzb2x2ZXIuIEl0IGNhbiBiZSAKZm9yIGV4YW1wbGUgYSBmaWxlIG5hbWUgd2l0aCBleGFtcGxlIHJlcXVlc3QgLSB0aGVuIGdvYWwgb2YgdGhlIHJlc29sdmVyIGlzIHRvIHJlYWQgZmlsZSBjb250ZW50IGFuZCBwcm92aWRlCml0LiAKCkl0J3MgcG9zc2libGUgdG8gZGVmaW5lIG1vcmUgZXhhbXBsZXMgZm9yIG9uZSBlbGVtZW50IGJ5IHdyYXBwaW5nIEBPcGVuQXBpRXhhbXBsZSBhbm5vdGF0aW9uIHRvICoqQE9wZW5BcGlFeGFtcGxlcyoqCm9uZS4gTmFtZSBvZiB0aGUgZXhhbXBsZSBiZWNvbWVzIGltcG9ydGFudCBpbiB0aGlzIGNhc2UsIGJlY2F1c2UgaXQgd2lsbCBiZSBzdG9yZWQgdG8gc3BlYyBhcyBleGFtcGxlIG5hbWUuCgojIyMgQE9wZW5BcGlJZ25vcmUKRWxlbWVudCBhbm5vdGF0ZWQgd2l0aCB0aGlzIGFubm90YXRpb24gd2lsbCBub3QgYmUgZ2VuZXJhdGVkIHRvIHNwZWMuCgojIyMgQFJlc3BvbnNlClNvbWV0aW1lcyB5b3UgbmVlZCB0byBzcGVjaWZ5IG1ldGhvZCAob3BlcmF0aW9uKSByZXNwb25zZSBpbiB5b3VyIG93biB3YXkuIEl0IGNhbiAKYmUgbmVjZXNzYXJ5IHdoZW4geW91IGhhdmUgc2V2ZXJhbCByZXR1cm4gc3RhdHVzZXMgb3IgcmVzcG9uc2UgdHlwZXMuIEFsc28gd2hlbiAKeW91IHdhbnQgdG8gc3BlY2lmeSByZXNwb25zZSBoZWFkZXJzLiBGb3IgdGhpcyBwdXJwb3NlIHlvdSBjYW4gdXNlIHRoaXMgYW5ub3RhdGlvbi4KCkl0J3MgYWxzbyBwb3NzaWJsZSB0byB3cmFwIG11bHRpcGxlIEBSZXNwb25zZSBhbm5vdGF0aW9ucyB0byAqKkBSZXNwb25zZXMqKiBhbm5vdGF0aW9ucy4gRS5nLjoKYGBgamF2YQpAUmVzcG9uc2VzKHsKCUBSZXNwb25zZShyZXNwb25zZUNvZGUgPSAyMDEsIGRlc2NyaXB0aW9uID0gIkNyZWF0ZWQiLCByZXNwb25zZUJvZHkgPSBWYWxpZGF0aW9uRHVtbXkuY2xhc3MsCgkJCWhlYWRlcnMgPSBASGVhZGVyKG5hbWUgPSAiU29tZUhlYWRlciIsIGRlc2NyaXB0aW9uID0gIlRlc3RIZWFkZXIiKSksCglAUmVzcG9uc2UocmVzcG9uc2VDb2RlID0gMjAwLCBkZXNjcmlwdGlvbiA9ICJSZXBsYWNlZCIsIHJlc3BvbnNlQm9keSA9IFZhbGlkYXRpb25EdW1teS5jbGFzcykKfSkgCmBgYApASGVhZGVyIGFubm90YXRpb24gaXMgYWxzbyBjdXN0b20gc3ByaW5nLW9wZW5hcGkgYW5ub3RhdGlvbi4KCiMjIEdlbmVyYXRlIHNwZWMgZnJvbSBjb2RlCiMjIyBSdW50aW1lIHVzYWdlCkluY2x1ZGUgZGVwZW5kZW5jeQoKYGBgamF2YQo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmNvbS5naXRodWIuanJjb2RlemE8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5zcHJpbmctb3BlbmFwaS1zY2hlbWEtZ2VuZXJhdG9yPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS40LjY8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgpJbnN0YW50aWF0ZSAqKk9wZW5BUElHZW5lcmF0b3IqKgoKYGBgamF2YQpPcGVuQVBJR2VuZXJhdG9yIG9wZW5BUElHZW5lcmF0b3IgPSBuZXcgT3BlbkFQSUdlbmVyYXRvcigKICAgICAgICAgICAgICAgIHNpbmdsZXRvbkxpc3QoIm9yZy5zcHJpbmcub3BlbmFwaS5zY2hlbWEuZ2VuZXJhdG9yLnBsdWdpbi5tb2RlbC4qIiksCiAgICAgICAgICAgICAgICBzaW5nbGV0b25MaXN0KCJvcmcuc3ByaW5nLm9wZW5hcGkuc2NoZW1hLmdlbmVyYXRvci5wbHVnaW4uY29udHJvbGxlci4qIiksCiAgICAgICAgICAgICAgICBjcmVhdGVUZXN0SW5mbygpCiAgICAgICAgKTsKYGBgClRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbW9kZWwgcGFja2FnZSBhbmQgdGhlIHNlY29uZCBpcyBjb250cm9sbGVyIHBhY2thZ2UuIEl0CmlzIHBvc3NpYmxlIHRvIGRlZmluZSBtdWx0aXBsZSBwYWNrYWdlcyBmb3IgZWFjaC4gVGhlIHRoaXJkIHBhcmFtZXRlcgppcyBPcGVuQVBJIGJhc2ljIGluZm8gbGlrZSBwcm9qZWN0IHRpdGxlLCBkZXNjcmlwdGlvbiwgdmVyc2lvbiBldGMuIEl0IGlzCnJlcXVpcmVkIGluIG9yZGVyIHRvIGNyZWF0ZSB2YWxpZCBPcGVuQVBJIDMgb3V0cHV0LgpBZGRpdGlvbmFsbHkgeW91IGNhbiBkZWZpbmUgaW50ZXJjZXB0b3JzCiogKipPcGVyYXRpb25JbnRlcmNlcHRvcioqIC0gZXhlY3V0ZWQgYWZ0ZXIgY29udHJvbGxlciBtZXRob2QgaXMgbWFwcGVkCiogKipPcGVyYXRpb25QYXJhbWV0ZXJJbnRlcmNlcHRvcioqIC0gZXhlY3V0ZWQgYWZ0ZXIgZWFjaCBtZXRob2QgcGFyYW1ldGVyIGlzIG1hcHBlZAoqICoqUmVxdWVzdEJvZHlJbnRlcmNlcHRvcioqIC0gZXhlY3V0ZWQgYWZ0ZXIgUmVxdWVzdEJvZHkgYW5ub3RhdGVkIHBhcmFtZXRlciBvZiBhIG1ldGhvZCBpcyBtYXBwZWQKKiAqKlNjaGVtYUZpZWxkSW50ZXJjZXB0b3IqKiAtIGV4ZWN1dGVkIGFmdGVyIGNsYXNzIGZpZWxkIGlzIG1hcHBlZAoqICoqU2NoZW1hSW50ZXJjZXB0b3IqKiAtIGV4ZWN1dGVkIGFmdGVyIGVhY2ggY2xhc3MgaXMgbWFwcGVkCgpZb3UgY2FuIGFkZCB0aGVzZSBpbnRlcmNlcHRvcnMgZWl0aGVyIHRvIGNvbnN0cnVjdG9yIGFmdGVyIGluZm8gcGFyYW1ldGVyIG9yCmJ5IGNhbGxpbmcgYWRkICsgaW50ZXJjZXB0b3JOYW1lIG1ldGhvZCBvbiBPcGVuQVBJR2VuZXJhdG9yIGNsYXNzLiBFLmcuOgoKYGBgamF2YQpvcGVuQVBJR2VuZXJhdG9yLmFkZE9wZXJhdGlvbkludGVyY2VwdG9yKG9wZXJhdGlvbkludGVyY2VwdG9yKTsKb3BlbkFQSUdlbmVyYXRvci5hZGRPcGVyYXRpb25QYXJhbWV0ZXJJbnRlcmNlcHRvcihvcGVyYXRpb25QYXJhbWV0ZXJJbnRlcmNlcHRvcik7Cm9wZW5BUElHZW5lcmF0b3IuYWRkUmVxdWVzdEJvZHlJbnRlcmNlcHRvcihyZXF1ZXN0Qm9keUludGVyY2VwdG9yKTsKb3BlbkFQSUdlbmVyYXRvci5hZGRTY2hlbWFGaWVsZEludGVyY2VwdG9yKHNjaGVtYUZpZWxkSW50ZXJjZXB0b3IpOwpvcGVuQVBJR2VuZXJhdG9yLmFkZFNjaGVtYUludGVyY2VwdG9yKHNjaGVtYUludGVyY2VwdG9yKTsKYGBgCgpZb3UgY2FuIGRlZmluZSB5b3VyIG93biBpbnRlcmNlcHRvciBhcyBmb2xsb3dzOgpgYGBqYXZhCnBhY2thZ2UgY29tLmdpdGh1Yi5qcmNvZGV6YS5zY2hlbWEuZ2VuZXJhdG9yLnBsdWdpbi5pbnRlcmNlcHRvcnM7CgppbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOwoKaW1wb3J0IGNvbS5naXRodWIuanJjb2RlemEuc2NoZW1hLmdlbmVyYXRvci5pbnRlcmNlcHRvcnMuT3BlcmF0aW9uSW50ZXJjZXB0b3I7CgppbXBvcnQgaW8uc3dhZ2dlci52My5vYXMubW9kZWxzLk9wZXJhdGlvbjsKCnB1YmxpYyBjbGFzcyBUZXN0T3BlcmF0aW9uSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBPcGVyYXRpb25JbnRlcmNlcHRvciB7CgoJQE92ZXJyaWRlCglwdWJsaWMgdm9pZCBpbnRlcmNlcHQoTWV0aG9kIG1ldGhvZCwgT3BlcmF0aW9uIHRyYW5zZm9ybWVkT3BlcmF0aW9uKSB7CgkJdHJhbnNmb3JtZWRPcGVyYXRpb24uc2V0U3VtbWFyeSgiSW50ZXJjZXB0b3Igc3VtbWFyeSIpOwoJfQoKfQpgYGAKCkl0J3MgcG9zc2libGUgdG8gZGVmaW5lIGFsc28gZ2xvYmFsIGhlYWRlcnMgd2hpY2ggYXJlIGFwcGxpY2FibGUgZm9yIGFsbCByZXNvdXJjZXMuCmBgYGphdmEKb3BlbkFQSUdlbmVyYXRvci5hZGRHbG9iYWxIZWFkZXIoIlRlc3QtR2xvYmFsLUhlYWRlciIsICJTb21lIGRlc2MiLCBmYWxzZSk7CmBgYAoKT3BlbkFQSUdlbmVyYXRvciBtZXRob2QgKipnZW5lcmF0ZSoqIGNhbiBhbHNvIHRha2UgT3BlbkFwaUdlbmVyYXRvckNvbmZpZyBhcyBwYXJhbWV0ZXIuCkluIHRoaXMgY29uZmlnIHlvdSBjYW4gZGVmaW5lIGlmIGdlbmVyYXRpb24gb2YgZXhhbXBsZXMgaXMgZW5hYmxlZC4gWW91IGNhbiBhbHNvIGRlZmluZQpleGFtcGxlIHJlc29sdmVyLCB3aGljaCBjYW4gYmUgdXNlZnVsIGlmIGZvciBleGFtcGxlIHlvdSBoYXZlIGJpZ2dlciBleGFtcGxlcyBvZiBQT1NUIGJvZHkgcmVxdWVzdHMKc3RvcmVkIGluIGZpbGVzLiBZb3UgY2FuIGRlZmluZSBpdCBhcyBmb2xsb3dzOgoKYGBgamF2YQpPcGVuQXBpR2VuZXJhdG9yQ29uZmlnQnVpbGRlci5kZWZhdWx0Q29uZmlnKCkKICAgICAgICAgICAgICAgICAgICAgICAgLndpdGhHZW5lcmF0ZUV4YW1wbGVzKHRydWUpCiAgICAgICAgICAgICAgICAgICAgICAgIC53aXRoT3BlbkFwaUV4YW1wbGVSZXNvbHZlcihjcmVhdGVFeGFtcGxlUmVzb2x2ZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLmJ1aWxkKCkKYGBgCgpGaW5hbGx5IHdoZW4geW91IHdhbnQgdG8gKipnZW5lcmF0ZSBPcGVuQVBJIDMgc3BlYyoqIHlvdSBoYXZlIHRvIGV4ZWN1dGUKZ2VuZXJhdGUgbWV0aG9kIG9uIE9wZW5BUElHZW5lcmF0b3IgaW5zdGFuY2UuCmBgYGphdmEKT3BlbkFQSSBvcGVuQVBJID0gb3BlbkFQSUdlbmVyYXRvci5nZW5lcmF0ZSgpOwpgYGAKYW5kIHlvdSB3aWxsIHJlY2VpdmUgT3BlbkFQSSBvYmplY3QgKGZyb20gc3dhZ2dlciBBUEkpIHdoaWNoIGNhbiBiZSBzZXJpYWxpemVkCnRvIHN0cmluZyBsaWtlIHRoaXMKYGBgamF2YQpPYmplY3RNYXBwZXIgb2JqZWN0TWFwcGVyID0gbmV3IE9iamVjdE1hcHBlcigpOwpvYmplY3RNYXBwZXIuc2V0U2VyaWFsaXphdGlvbkluY2x1c2lvbihKc29uSW5jbHVkZS5JbmNsdWRlLk5PTl9OVUxMKTsKdHJ5IHsKICAgIFN0cmluZyBnZW5lcmF0ZWQgPSBvYmplY3RNYXBwZXIud3JpdGVWYWx1ZUFzU3RyaW5nKG9wZW5BUEkpOwogICAgSlNPTkFzc2VydC5hc3NlcnRFcXVhbHMoZ2V0UmVzb3VyY2VGaWxlQXNTdHJpbmcoKSwgZ2VuZXJhdGVkLCBmYWxzZSk7Cn0gY2F0Y2ggKEpzb25Qcm9jZXNzaW5nRXhjZXB0aW9uIHwgSlNPTkV4Y2VwdGlvbiBlKSB7CiAgICBlLnByaW50U3RhY2tUcmFjZSgpOwp9CmBgYAoKIyMjIE1hdmVuIHBsdWdpbiB1c2FnZQpNYXZlbiBwbHVnaW4gd3JhcHMgYmVmb3JlIG1lbnRpb25lZCBmdW5jdGlvbmFsaXR5IGludG8gbWF2ZW4gcGx1Z2luLgoKYGBgeG1sCjxidWlsZD4KICAgIDxwbHVnaW5zPgogICAgICAgIDxwbHVnaW4+CiAgICAgICAgICAgIDxncm91cElkPmNvbS5naXRodWIuanJjb2RlemE8L2dyb3VwSWQ+CiAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1vcGVuYXBpLXNjaGVtYS1nZW5lcmF0b3ItcGx1Z2luPC9hcnRpZmFjdElkPgogICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgICAgIDx0aXRsZT5UZXN0IHRpdGxlPC90aXRsZT4KICAgICAgICAgICAgICAgIDxkZXNjcmlwdGlvbj5UZXN0IGRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjEuMC4wLVRFU1Q8L3ZlcnNpb24+CiAgICAgICAgICAgICAgICA8bW9kZWxQYWNrYWdlcz4KICAgICAgICAgICAgICAgICAgICA8bW9kZWxQYWNrYWdlPm9yZy5zcHJpbmcub3BlbmFwaS5zY2hlbWEuZ2VuZXJhdG9yLnRlc3QubW9kZWwuKjwvbW9kZWxQYWNrYWdlPgogICAgICAgICAgICAgICAgPC9tb2RlbFBhY2thZ2VzPgogICAgICAgICAgICAgICAgPGNvbnRyb2xsZXJCYXNlUGFja2FnZXM+CiAgICAgICAgICAgICAgICAgICAgPGNvbnRyb2xsZXJCYXNlUGFja2FnZT5vcmcuc3ByaW5nLm9wZW5hcGkuc2NoZW1hLmdlbmVyYXRvci50ZXN0LmNvbnRyb2xsZXIuKjwvY29udHJvbGxlckJhc2VQYWNrYWdlPgogICAgICAgICAgICAgICAgPC9jb250cm9sbGVyQmFzZVBhY2thZ2VzPgogICAgICAgICAgICAgICAgPG91dHB1dERpcmVjdG9yeT50YXJnZXQvb3BlbmFwaTwvb3V0cHV0RGlyZWN0b3J5PgogICAgICAgICAgICAgICAgPHNjaGVtYUZpZWxkSW50ZXJjZXB0b3JzPgogICAgICAgICAgICAgICAgICAgIDxzY2hlbWFGaWVsZEludGVyY2VwdG9yPmNvbS5naXRodWIuanJjb2RlemEuc2NoZW1hLmdlbmVyYXRvci5wbHVnaW4uaW50ZXJjZXB0b3IuVGVzdFNjaGVtYUZpZWxkSW50ZXJjZXB0b3I8L3NjaGVtYUZpZWxkSW50ZXJjZXB0b3I+CiAgICAgICAgICAgICAgICA8L3NjaGVtYUZpZWxkSW50ZXJjZXB0b3JzPgogICAgICAgICAgICAgICAgPG9wZXJhdGlvbkludGVyY2VwdG9ycz4KICAgICAgICAgICAgICAgICAgICA8b3BlcmF0aW9uSW50ZXJjZXB0b3I+Y29tLmdpdGh1Yi5qcmNvZGV6YS5zY2hlbWEuZ2VuZXJhdG9yLnBsdWdpbi5pbnRlcmNlcHRvci5UZXN0T3BlcmF0aW9uSW50ZXJjZXB0b3I8L29wZXJhdGlvbkludGVyY2VwdG9yPgogICAgICAgICAgICAgICAgPC9vcGVyYXRpb25JbnRlcmNlcHRvcnM+CiAgICAgICAgICAgICAgICA8Z2VuZXJhdGVFeGFtcGxlcz50cnVlPC9nZW5lcmF0ZUV4YW1wbGVzPgogICAgICAgICAgICAgICAgPG9wZW5BcGlFeGFtcGxlc1Jlc29sdmVyPmNvbS5naXRodWIuanJjb2RlemEuc2NoZW1hLmdlbmVyYXRvci5wbHVnaW4uZXhhbXBsZS5UZXN0RXhhbXBsZVJlc29sdmVyPC9vcGVuQXBpRXhhbXBsZXNSZXNvbHZlcj4KICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgogICAgICAgIDwvcGx1Z2luPgogICAgPC9wbHVnaW5zPgo8L2J1aWxkPgpgYGAKCllvdSBjYW4gc2VlIHRoYXQgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCB2ZXJzaW9uIGFyZSB0aGUgT3BlbkFQSSBpbmZvIHBhcmFtZXRlcnMuClRoZW4geW91IGhhdmUgdG8gZGVmaW5lIGFsc28gbW9kZWxQYWNrYWdlcyBhbmQgY29udHJvbGxlclBhY2thZ2VzLiBBZGRpdGlvbmFsbHkKeW91IHNob3VsZCBkZWZpbmUgYWxzbyBvdXRwdXREaXJlY3RvcnksIGluIG91ciBjYXNlIHRhcmdldC9vcGVuYXBpIHdpbGwgYmUgdGhlIHRhcmdldCBmb2xkZXIKd2hlcmUgdGhlIHN3YWdnZXIuanNvbiB3aWxsIGJlIHNhdmVkLgoKRnJvbSAxLjIuMCB2ZXJzaW9uIGl0IGlzIGFsc28gcG9zc2libGUgdG8gZGVmaW5lIGFsbCBpbnRlcmNlcHRvcnMgYWxzbyBpbiBwbHVnaW4uIEFkZGl0aW9uYWxseSB0aGVyZQppcyBhbHNvIG9wdGlvbiB0byB0dXJuIG9uL29mZiBnZW5lcmF0ZUV4YW1wbGVzIGFuZCBvZiBjb3Vyc2Ugc3BlY2lmeSBvcGVuQXBpRXhhbXBsZXNSZXNvbHZlci4KCiMjIEdlbmVyYXRlIGNsaWVudCBmcm9tIHNwZWMKCiMjIyBSdW50aW1lIHVzYWdlCkluY2x1ZGUgZGVwZW5kZW5jeQoKYGBgamF2YQo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmNvbS5naXRodWIuanJjb2RlemE8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5zcHJpbmctb3BlbmFwaS1jbGllbnQtZ2VuZXJhdG9yPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS40LjY8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgpVc2UgZ2VuZXJhdG9yIGluIGNvZGUKCmBgYGphdmEKbmV3IE9wZW5BcGlDbGllbnRHZW5lcmF0b3IoKS5nZW5lcmF0ZUNsaWVudCgKCQkJCSJ0YXJnZXQucGFja2FnZSIsCgkJCQkicGF0aFRvT3BlbkFwaTNTcGVjIiwKCQkJCSJ0YXJnZXRGb2xkZXIiLCAvLyBlLmcuIC90YXJnZXQvZ2VuZXJhdGVkU291cmNlcy9vYXMKCQkJCXRydWUpOyAvLyBzaG91bGQgZ2VuZXJhdGUgaW50ZXJmYWNlCmBgYAoKIyMjIE1hdmVuIHBsdWdpbiB1c2FnZQoKMS4gSW5jbHVkZSBkZXBlbmRlbmN5CmBgYGphdmEKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5jb20uZ2l0aHViLmpyY29kZXphPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+c3ByaW5nLW9wZW5hcGktY2xpZW50LWdlbmVyYXRvci1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4xLjQuNjwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCjIuIEFkZCBwbHVnaW4gdG8gbWF2ZW4gcGx1Z2lucyBzZWN0aW9uCmBgYHhtbAo8cGx1Z2luPgogICAgPGdyb3VwSWQ+Y29tLmdpdGh1Yi5qcmNvZGV6YTwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPnNwcmluZy1vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3ItcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPGV4ZWN1dGlvbnM+CiAgICAgICAgPGV4ZWN1dGlvbj4KICAgICAgICAgICAgPGdvYWxzPgogICAgICAgICAgICAgICAgPGdvYWw+Z2VuZXJhdGVDbGllbnRGcm9tT3BlbkFwaTwvZ29hbD4KICAgICAgICAgICAgPC9nb2Fscz4KICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CiAgICAgICAgICAgICAgICA8b3V0cHV0UGFja2FnZT50ZXN0LnBhY2thZ2U8L291dHB1dFBhY2thZ2U+CiAgICAgICAgICAgICAgICA8b3V0cHV0UGF0aD50YXJnZXQvZ2VuZXJhdGVkLXNvdXJjZXM8L291dHB1dFBhdGg+CiAgICAgICAgICAgICAgICA8c2NoZW1hUGF0aD5zcmMvbWFpbi9yZXNvdXJjZXMvb2FzMy5qc29uPC9zY2hlbWFQYXRoPgogICAgICAgICAgICAgICAgPGdlbmVyYXRlUmVzb3VyY2VJbnRlcmZhY2U+dHJ1ZTwvZ2VuZXJhdGVSZXNvdXJjZUludGVyZmFjZT4KICAgICAgICAgICAgICAgIDxnZW5lcmF0ZURpc2NyaW1pbmF0b3JQcm9wZXJ0eT50cnVlPC9nZW5lcmF0ZURpc2NyaW1pbmF0b3JQcm9wZXJ0eT4KICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgogICAgICAgIDwvZXhlY3V0aW9uPgogICAgPC9leGVjdXRpb25zPgo8L3BsdWdpbj4KYGBgCioqZ2VuZXJhdGVSZXNvdXJjZUludGVyZmFjZSoqIG9wdGlvbiBhbGxvd3MgeW91IHRvIHR1cm4gb24vb2ZmIGdlbmVyYXRpb24gb2YgaW50ZXJmYWNlCndpdGggbWV0aG9kcyB0aGF0IHJlcHJlc2VudCBvcGVyYXRpb25zIG9mIHRoZSBBUEkuCgoqKmdlbmVyYXRlRGlzY3JpbWluYXRvclByb3BlcnR5KiogYWxsb3dzIHlvdSB0byB0dXJuIG9uL29mZiBmdW5jdGlvbmFsaXR5IHdoZXJlCnBsdWdpbiBnZW5lcmF0ZXMgdGhlIGRpc2NyaW1pbmF0b3IgcHJvcGVydHkgZXhwbGljaXRseSB0byBjbGFzcyAoc2V0dGluZyBpdCB2aXNpYmxlPXRydWUgaW4gamFja3NvbikuClRoaXMgaXMgaGFuZHkgd2hlbiB5b3UgbmVlZCB0byBzZWUgdGhlIGRpc2NyaW1pbmF0b3IgcHJvcGVydHkgaW5zaWRlIHRoZSBjbGFzcwphbmQgYmVpbmcgYWJsZSB0byBhY2Nlc3MgaXQgdXNpbmcgc2V0dGVyIG9yIGdldHRlci4gCgojIyBDb250cmlidXRpb25zClB1bGwgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbGxhYm9yYXRlIG1vcmUgZmVlbCBmcmVlIHRvIGNvbnRhY3QKbWUgb24gcmVtZW5lYy5qYWt1YkBnbWFpbC5jb20gLgoKIyMgTGljZW5zZQpMaWNlbnNlIGZvciB0aGlzIHRvb2wgaXMgR05VIEdQTCBWMy4K readmeEtag: '"76b9a39260eb7d089c5fffd6deb2e95d164440cf"' readmeLastModified: Tue, 23 Jun 2020 10:13:33 GMT repositoryId: 199309560 description: Spring Boot OpenAPI generator, container and UI. created: '2019-07-28T16:13:05Z' updated: '2024-06-09T22:35:44Z' language: Java archived: false stars: 54 watchers: 8 forks: 18 owner: jrcodeza logo: https://avatars.githubusercontent.com/u/25500422?v=4 license: MIT repoEtag: '"f19bceed1de612a3a3b6f7c72f6993b0b4e96065d4f0a5e09fa9b2d7cbaf2789"' repoLastModified: Sun, 09 Jun 2024 22:35:44 GMT foundInMaster: true id: e66e43593ee243e46c820555721612a7 - source: https://openapi.tools/ name: - oas - oas-normalize language: - JavaScript - TypeScript link: https://openap.is repository: https://github.com/readmeio/oas source_description: - Comprehensive tooling for working with OpenAPI definitions - Comprehensive tooling for working with OpenAPI definitions. v2: true v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9ucG0uaW0vb2FzIj4KICAgIDxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmVhZG1laW8vb2FzL21haW4vLmdpdGh1Yi9oZXJvLnBuZyIgYWx0PSJvYXMiIC8+CiAgPC9hPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICBDb21wcmVoZW5zaXZlIHRvb2xpbmcgZm9yIHdvcmtpbmcgd2l0aCBPcGVuQVBJIGRlZmluaXRpb25zCjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtLmltL29hcyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvb2FzP3N0eWxlPWZvci10aGUtYmFkZ2UiIGFsdD0iTlBNIFZlcnNpb24iIC8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtLmltL29hcyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbm9kZS92L29hcz9zdHlsZT1mb3ItdGhlLWJhZGdlIiBhbHQ9Ik5vZGUgVmVyc2lvbiIgLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9ucG0uaW0vb2FzIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9vYXM/c3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJNSVQgTGljZW5zZSIgLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JlYWRtZWlvL29hcyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3JlYWRtZWlvL29hcy9jaS55bWw/YnJhbmNoPW1haW4mc3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJCdWlsZCBzdGF0dXMiIC8+PC9hPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3JlYWRtZS5jb20iPjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmVhZG1laW8vLmdpdGh1Yi9tYWluL29zcy1iYWRnZS5zdmciIC8+PC9hPgo8L3A+Cgpgb2FzYCBpcyB0aGUgbGlicmFyeSB0aGF0IHdlJ3ZlIGJ1aWx0IGF0IFtSZWFkTWVdKGh0dHBzOi8vcmVhZG1lLmNvbSkgZm9yIHBvd2VyaW5nIGV2ZXJ5dGhpbmcgd2UgZG8gcmVsYXRlZCB0byBbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLyk7IGZyb20gb3VyIFtSZWZlcmVuY2UgR3VpZGVzXShodHRwczovL3JlYWRtZS5jb20vZG9jdW1lbnRhdGlvbiksIHRvIG91ciBbTWV0cmljcyBwcm9kdWN0XShodHRwczovL3JlYWRtZS5jb20vbWV0cmljcyksIG9yIG90aGVyIGluLWhvdXNlIHRvb2xpbmcgbGlrZSBbY29kZSBnZW5lcmF0aW9uXShodHRwczovL25wbS5pbS9AcmVhZG1lL29hcy10by1zbmlwcGV0KSwgW3JlcXVlc3QgZXhlY3V0aW9uXShodHRwczovL25wbS5pbS9AcmVhZG1lL29hcy10by1oYXIpLCBhbmQgW1NESyBjb2RlIGdlbmVyYXRpb25dKGh0dHBzOi8vYXBpLnJlYWRtZS5kZXYvKS4KCi0tLQoKLSBbSW5zdGFsbGF0aW9uXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvaW5zdGFsbGF0aW9uKQotIFtVc2FnZV0oI3VzYWdlKQogIC0gW09wZW5BUEkgZGVmaW5pdGlvbnNdKCNvcGVuYXBpLWRlZmluaXRpb25zKQogICAgLSBbR2VuZXJhbF0oI2dlbmVyYWwpCiAgICAtIFtPcGVyYXRpb25zXSgjb3BlcmF0aW9ucykKICAgIC0gW1NlcnZlcnNdKCNzZXJ2ZXJzKQogICAgLSBbU3BlY2lmaWNhdGlvbiBFeHRlbnNpb25zXSgjc3BlY2lmaWNhdGlvbi1leHRlbnNpb25zKQogICAgLSBbVXNlciBBdXRoZW50aWNhdGlvbl0oI3VzZXItYXV0aGVudGljYXRpb24pCiAgLSBbT3BlcmF0aW9uc10oI29wZXJhdGlvbnMtMSkKICAgIC0gW0dlbmVyYWxdKCNnZW5lcmFsLTEpCiAgICAtIFtDYWxsYmFja3NdKCNjYWxsYmFja3MpCiAgICAtIFtSZXF1ZXN0IEJvZHldKCNyZXF1ZXN0LWJvZHkpCiAgICAtIFtSZXNwb25zZXNdKCNyZXNwb25zZXMpCiAgICAtIFtTZWN1cml0eV0oI3NlY3VyaXR5KQogICAgLSBbU3BlY2lmaWNhdGlvbiBFeHRlbnNpb25zXSgjc3BlY2lmaWNhdGlvbi1leHRlbnNpb25zLTEpCiAgLSBbQ2FsbGJhY2tzXSgjY2FsbGJhY2tzKQogICAgLSBbR2VuZXJhbF0oI2dlbmVyYWwtMikKICAtIFtXZWJob29rc10oI3dlYmhvb2tzKQotIFtGQVFdKCNmYXEpCgojIyBJbnN0YWxsYXRpb24KCmBgYApucG0gaW5zdGFsbCBvYXMKYGBgCgojIyBVc2FnZQoKPiAqKk5vdGUqKgo+IElmIHlvdSBuZWVkIHRvIHVzZSB0aGlzIGxpYnJhcnkgd2l0aGluIGEgYnJvd3NlciB5b3UnbGwgbGlrZWx5IG5lZWQgdG8gdXNlIGEgYnVuZGxlciBsaWtlIFtXZWJwYWNrXShodHRwczovL3dlYnBhY2suanMub3JnLykgb3IgW1JvbGx1cF0oaHR0cHM6Ly9yb2xsdXBqcy5vcmcvKS4KCmBvYXNgIG9mZmVycyBhIG1haW4gYE9hc2AgY2xhc3MsIHdoaWNoIHdpbGwgYmUgeW91ciBtYWluIGVudHJ5cG9pbnQgZm9yIHVzaW5nIHRoZSBsaWJyYXJ5LgoKYGBganMKaW1wb3J0IE9hcyBmcm9tICdvYXMnOwppbXBvcnQgcGV0c3RvcmVTcGVjIGZyb20gJ0ByZWFkbWUvb2FzLWV4YW1wbGVzLzMuMC9qc29uL3BldHN0b3JlLmpzb24nOwoKY29uc3QgcGV0c3RvcmUgPSBuZXcgT2FzKHBldHN0b3JlU3BlYyk7CmBgYAoKSGVyZSB0aGUgYE9hc2AgY29uc3RydWN0b3IgdGFrZXMgYSBKU09OIEFQSSBkZWZpbml0aW9uIChgcGV0c3RvcmVTcGVjYCkuIEFsbCBBUEkgZGVmaW5pdGlvbnMgeW91IGZlZWQgaXQgbXVzdCBiZSBKU09OIGFuZCBtdXN0IGJlIGFuIE9wZW5BUEkgZGVmaW5pdGlvbi4gSWYgeW91IGhhdmUgYSBZQU1MIG9yIFN3YWdnZXIgZGVmaW5pdGlvbiB5b3Ugd2lsbCBuZWVkIHRvIGNvbnZlcnQgaXQgKG91ciBbb2FzLW5vcm1hbGl6ZV0oaHR0cHM6Ly9ucG0uaW0vb2FzLW5vcm1hbGl6ZSkgbGlicmFyeSBjYW4gZG8gdGhpcyBmb3IgeW91KS4gQW5kIGlmIHlvdSdyZSBpbiBhIENKUyBvciBub24tYGltcG9ydGAgZW52aXJvbm1lbnQgeW91IGNhbiBwdWxsIHRoZSBsaWJyYXJ5IGluIHdpdGggYHJlcXVpcmUoJ29hcycpLmRlZmF1bHRgLgoKRnJvbSBoZXJlLCB0aGUgZm9sbG93aW5nIEFQSXMgYXJlIGF0IHlvdXIgZGlzcG9zYWwuCgojIyMgT3BlbkFQSSBkZWZpbml0aW9ucwoKQmVjYXVzZSB0aGlzIGxpYnJhcnkgaGFzIGZ1bGwgVHlwZVNjcmlwdCB0eXBlcyBhbmQgZG9jYmxvY2tzIHRoaXMgUkVBRE1FIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBmdWxsIGRvY3VtZW50YXRpb24gc28gY29uc3VsdCB0aGUgaW5kaXZpZHVhbCBtZXRob2QgZG9jYmxvY2tzIGlmIHlvdSBuZWVkIG1vcmUgaW5mb3JtYXRpb24gb24gYSBzcGVjaWZpYyBtZXRob2QuCgojIyMjIEdlbmVyYWwKCjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgp8IE1ldGhvZCB8IERlc2NyaXB0aW9uIHwKfCA6LS0tIHwgOi0tLSB8CnwgYC5kZXJlZmVyZW5jZSgpYCB8IERlcmVmZXJlbmNlIHRoZSBjdXJyZW50IE9wZW5BUEkgZGVmaW5pdGlvbi4gTm90ZSB0aGF0IHRoaXMgd2lsbCBpZ25vcmUgY2lyY3VsYXIgcmVmZXJlbmNlcy4gfAp8IGAuZ2V0Q2lyY3VsYXJSZWZlcmVuY2VzKClgIHwgUmV0cmlldmUgYW4gYXJyYXkgb2YgYW55IGNpcmN1bGFyIGAkcmVmYCBwb2ludGVyIHRoYXQgbWF5IGV4aXN0IHd0aGluIHRoZSBPcGVuQVBJIGRlZmluaXRpb24uIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIGAuZGVyZWZlcmVuY2UoKWAgdG8gYmUgY2FsbGVkIGZpcnN0LiB8CnwgYC5nZXREZWZpbml0aW9uKClgIHwgUmV0cmlldmUgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbiB0aGF0IHdhcyBmZWQgaW50byB0aGUgYE9hc2AgY29uc3RydWN0b3IuIHwKfCBgLmdldFRhZ3MoKWAgfCBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhbGwgdGFncyB0aGF0IGV4aXN0IHdpdGhpbiB0aGUgQVBJIGRlZmluaXRpb24gYW5kIGFyZSBzZXQgb24gb3BlcmF0aW9ucy4gfAp8IGAuZ2V0UGF0aHMoKWAgfCBSZXRyaWV2ZSBldmVyeSBvcGVyYXRpb24gdGhhdCBleGlzdHMgd2l0aGluIHRoZSBBUEkgZGVmaW5pdGlvbi4gVGhpcyByZXR1cm5zIGFuIGFycmF5IG9mIGluc3RhbmNlcyBvZiB0aGUgYE9wZXJhdGlvbmAgY2xhc3MuIHwKfCBgLmdldFZlcnNpb24oKWAgfCBSZXRyaWV2ZSB0aGUgT3BlbkFQSSB2ZXJzaW9uIHRoYXQgdGhpcyBBUEkgZGVmaW5pdGlvbiBpcyB0YXJnZXRlZCBmb3IuIHwKfCBgLmdldFdlYmhvb2tzKClgIHwgUmV0cmlldmUgZXZlcnkgd2ViaG9vayBvcGVyYXRpb24gdGhhdCBleGlzdHMgd2l0aGluIHRoZSBBUEkgZGVmaW5pdGlvbi4gVGhpcyByZXR1cm5zIGFuIGFycmF5IG9mIGluc3RhbmNlcyBvZiB0aGUgYFdlYmhvb2tgIGNsYXNzLiB8CnwgYCNpbml0KClgIHwgQW4gYWx0ZXJuYXRpdmUgZm9yIGBuZXcgT2FzKClgIHRoYXQgeW91IGNhbiB1c2UgaWYgdGhlIHR5cGluZyBvbiB0aGUgYE9hc2AgY29uc3RydWN0b3IgZ2l2ZXMgeW91IHRyb3VibGUuIFR5cGluZyBPcGVuQVBJIGRlZmluaXRpb25zIGlzIGhhcmQhIHwKPCEtLSBwcmV0dGllci1pZ25vcmUtZW5kIC0tPgoKIyMjIyBPcGVyYXRpb25zCgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KfCBNZXRob2QgfCBEZXNjcmlwdGlvbiB8CnwgOi0tLSB8IDotLS0gfAp8IGAuZmluZE9wZXJhdGlvbigpYCB8IERpc2NvdmVyIGFuIG9wZXJhdGlvbiB3aXRoIHRoZSBjdXJyZW50IE9wZW5BUEkgZGVmaW5pdGlvbiB0aGF0IG1hdGNoZXMgYSBnaXZlbiBVUkwgYW5kIEhUVFAgbWV0aG9kLiB8CnwgYC5maW5kT3BlcmF0aW9uV2l0aG91dE1ldGhvZCgpYCB8IExpa2UgYC5maW5kT3BlcmF0aW9uKClgIGJ1dCB3aXRob3V0IHN1cHBseWluZyBhbiBIVFRQIG1ldGhvZC4gfAp8IGAuZ2V0T3BlcmF0aW9uKClgIHwgU2FtZSBhcyBgLmZpbmRPcGVyYXRpb24oKWAgYnV0IHRoaXMgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUgYE9wZXJhdGlvbmAgY2xhc3MuIHwKfCBgLmdldE9wZXJhdGlvbkJ5SWQoKWAgfCBSZXRyaWV2ZSBhbiBvcGVyYXRpb24gaW4gYW4gT3BlbkFQSSBkZWZpbml0aW9uIGJ5IGFuIGBvcGVyYXRpb25JZGAuIHwKfCBgLm9wZXJhdGlvbigpYCB8IFJldHJpZXZlIGFuIGluc3RhbmNlIG9mIHRoZSBgT3BlcmF0aW9uYCBvciBgV2ViaG9va2AgY2xhc3NlcyBmb3IgYSBnaXZlbiBwYXRoIGFuZCBIVFRQIG1ldGhvZC4gfAo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CgojIyMjIFNlcnZlcnMKCjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgp8IE1ldGhvZCB8IERlc2NyaXB0aW9uIHwKfCA6LS0tIHwgOi0tLSB8CnwgYC5kZWZhdWx0VmFyaWFibGVzKClgIHwgUmV0cmlldmUgdGhlIGRlZmF1bHQgc2VydmVyIHZhcmlhYmxlcyBmb3IgYSBzcGVjaWZpYyBzZXJ2ZXIgVVJMLCB3aGlsZSBhbHNvIHBvdGVudGlhbGx5IGZhY3RvcmluZyBpbiB1c2VyIGRhdGEuIFlvdSBjYW4gc3BlY2lmeSB1c2VyIHZhcmlhYmxlIGRhdGEgdG8gdGhlIGBPYXNgIGNvbnN0cnVjdG9yLiBDaGVjayBvdXQgW1VzaW5nIFZhcmlhYmxlcyBpbiBEb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MucmVhZG1lLmNvbS9kb2NzL3VzZXItZGF0YS1vcHRpb25zI3VzaW5nLXZhcmlhYmxlcy1pbi1kb2N1bWVudGF0aW9uKSBmb3Igc29tZSBiYWNrZ3JvdW5kIG9uIGhvdyB3ZSB1c2UgdGhpcy4gfAp8IGAucmVwbGFjZVVybCgpYCB8IFJlcGxhY2UgYSBnaXZlbiB0ZW1wbGF0ZWQgc2VydmVyIFVSTCB3aXRoIHN1cHBsaWVkIHNlcnZlciB2YXJpYWJsZSBkYXRhLiB8CnwgYC5zcGxpdFVybCgpYCB8IENodW5rIG91dCBhIHNwZWNpZmljIHNlcnZlciBVUkwgaW50byBpdHMgaW5kaXZpZHVhbCBwYXJ0cy4gfAp8IGAuc3BsaXRWYXJpYWJsZXNgIHwgQ2h1bmsgb3V0IGEgZ2l2ZW4gVVJMIGFuZCBpZiBpdCBtYXRjaGVzIGEgc2VydmVyIFVSTCBpbiB0aGUgT3BlbkFQSSBmaWxlLCBleHRyYWN0IHRoZSBtYXRjaGVkIHNlcnZlciB2YXJpYWJsZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgVVJMLiB8CnwgYC51cmwoKWAgfCBSZXRyaWV2ZSBhIGZ1bGx5IGNvbXBvc2VkIHNlcnZlciBVUkwuIFlvdSBjYW4gb3B0aW9uYWxseSBzZWxlY3Qgd2hpY2ggb2YgdGhlIGRlZmluZWQgc2VydmVyIFVSTHMgdG8gdXNlIGFzIHdlbGwgYXMgc3BlY2lmeSBzZXJ2ZXIgdmFyaWFibGUgaW5mb3JtYXRpb24uIHwKfCBgLnZhcmlhYmxlcygpYCB8IFJldHJpZXZlIGFsbCBzZXJ2ZXIgdmFyaWFibGVzIHRoYXQgYSBzcGVjaWZpYyBzZXJ2ZXIgVVJMIGluIHRoZSBkZWZpbml0aW9uIGhhcy4gfAo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CgojIyMjIFNwZWNpZmljYXRpb24gRXh0ZW5zaW9ucwoKPiAqKk5vdGUqKgo+IE9wdGlvbmFsbHkgeW91IGNhbiBhbHNvIHN1cHBseSBhbiBpbnN0YW5jZSBvZiB0aGUgYE9wZXJhdGlvbmAgdG8gYm90aCBvZiB0aGVzZSBtZXRob2RzIHRvIHNlZSBvciByZXRyaWV2ZSBhIGdpdmVuIGV4dGVuc2lvbiBpZiBpdCBleGlzdHMgb24gdGhhdCBvcGVyYXRpb24gYnV0IGlmIGl0IGV4aXN0cyBpbiBib3RoIHRoZSBvcGVyYXRpb24gYW5kIGF0IHRoZSByb290IHRoZSBvcGVyYXRpb24tbGV2ZWwgZXh0ZW5zaW9uIHdpbGwgYmUgcHJpb3JpdGl6ZWQuCgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KfCBNZXRob2QgfCBEZXNjcmlwdGlvbiB8CnwgOi0tLSB8IDotLS0gfAp8IGAuZ2V0RXh0ZW5zaW9uKClgIHwgUmV0cmlldmUgYSBnaXZlbiBbc3BlY2lmaWNhdGlvbiBleHRlbnNpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNzcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucykgaWYgaXQgZXhpc3RzIGF0IHRoZSByb290IG9mIHRoZSBBUEkgZGVmaW5pdGlvbi4gIHwKfCBgLmhhc0V4dGVuc2lvbigpYCB8IERldGVybWluZSBpZiBhIGdpdmVuIFtzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3NwZWNpZmljYXRpb25FeHRlbnNpb25zKSBleGlzdHMgb24gdGhlIHJvb3Qgb2YgdGhlIEFQSSBkZWZpbml0aW9uLiB8CnwgYC52YWxpZGF0ZUV4dGVuc2lvbigpYCB8IERldGVybWluZSBpZiBhIGdpdmVuIFtSZWFkTWUgY3VzdG9tIE9wZW5BUEkgZXh0ZW5zaW9uXShodHRwczovL2RvY3MucmVhZG1lLmNvbS9kb2NzL29wZW5hcGktZXh0ZW5zaW9ucykgaXMgdmFsaWQgb3Igbm90LiB8CnwgYC52YWxpZGF0ZUV4dGVuc2lvbnMoKWAgfCBWYWxpZGF0ZSBhbGwgb2Ygb3VyIFtSZWFkTWUgY3VzdG9tIE9wZW5BUEkgZXh0ZW5zaW9uXShodHRwczovL2RvY3MucmVhZG1lLmNvbS9kb2NzL29wZW5hcGktZXh0ZW5zaW9ucyksIHRocm93aW5nIGV4Y2VwdGlvbnMgd2hlbiBuZWNlc3NhcnkuIHwKPCEtLSBwcmV0dGllci1pZ25vcmUtZW5kIC0tPgoKSW5mb3JtYXRpb24gYWJvdXQgUmVhZE1lJ3Mgc3VwcG9ydGVkIE9wZW5BUEkgZXh0ZW5zaW9ucyBhdCBodHRwczovL2RvY3MucmVhZG1lLmNvbS9kb2NzL29wZW5hcGktZXh0ZW5zaW9ucy4KCiMjIyMgVXNlciBBdXRoZW50aWNhdGlvbgoKPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CnwgTWV0aG9kIHwgRGVzY3JpcHRpb24gfAp8IDotLS0gfCA6LS0tIHwKfCBgLmdldEF1dGgoKWAgfCBSZXRyaWV2ZSB0aGUgYXBwcm9wcmlhdGUgQVBJIGtleXMgZm9yIHRoZSBjdXJyZW50IE9wZW5BUEkgZGVmaW5pdGlvbiBmcm9tIGFuIG9iamVjdCBvZiB1c2VyIGRhdGEuIENoZWNrIG91dCBbVXNpbmcgVmFyaWFibGVzIGluIERvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5yZWFkbWUuY29tL2RvY3MvdXNlci1kYXRhLW9wdGlvbnMjdXNpbmctdmFyaWFibGVzLWluLWRvY3VtZW50YXRpb24pIGZvciBzb21lIGJhY2tncm91bmQgb24gaG93IHdlIHVzZSB0aGlzLiB8CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCi0tLQoKIyMjIE9wZXJhdGlvbnMKCkZvciB5b3VyIGNvbnZlbmllbmNlLCB0aGUgZW50cnlwb2ludCBpbnRvIHRoZSBgT3BlcmF0aW9uYCBjbGFzcyBzaG91bGQgZ2VuZXJhbGx5IGFsd2F5cyBiZSB0aHJvdWdoIGAub3BlcmF0aW9uKClgLiBGb3IgZXhhbXBsZToKCmBgYGpzCmltcG9ydCBPYXMgZnJvbSAnb2FzJzsKaW1wb3J0IHBldHN0b3JlU3BlYyBmcm9tICdAcmVhZG1lL29hcy1leGFtcGxlcy8zLjAvanNvbi9wZXRzdG9yZS5qc29uJzsKCmNvbnN0IHBldHN0b3JlID0gbmV3IE9hcyhwZXRzdG9yZVNwZWMpOwpjb25zdCBvcGVyYXRpb24gPSBwZXRzdG9yZS5vcGVyYXRpb24oJy9wZXQnLCAncG9zdCcpOwpgYGAKCiMjIyMgR2VuZXJhbAoKPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CnwgTWV0aG9kIHwgRGVzY3JpcHRpb24gfAp8IDotLS0gfCA6LS0tIHwKfCBgLmdldENvbnRlbnRUeXBlKClgIHwgUmV0cmlldmUgdGhlIHByaW1hcnkgcmVxdWVzdCBib2R5IGNvbnRlbnQgdHlwZS4gSWYgbXVsdGlwbGUgYXJlIHByZXNlbnQsIHByZWZlciB3aGljaGV2ZXIgaXMgSlNPTi1jb21wbGlhbnQuIHwKfCBgLmdldERlc2NyaXB0aW9uKClgIHwgUmV0cmlldmUgdGhlIGBkZXNjcmlwdGlvbmAgdGhhdCdzIHNldCBvbiB0aGlzIG9wZXJhdGlvbi4gVGhpcyBzdXBwb3J0cyBjb21tb24gZGVzY3JpcHRpb25zIHRoYXQgbWF5IGJlIHNldCBhdCB0aGUgW3BhdGggaXRlbSBsZXZlbF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3BhdGhJdGVtT2JqZWN0KS4gfAp8IGAuZ2V0T3BlcmF0aW9uSWQoKWAgfCBSZXRyaWV2ZSB0aGUgYG9wZXJhdGlvbklkYCB0aGF0J3MgcHJlc2VudCBvbiB0aGUgb3BlcmF0aW9uLCBhbmQgaWYgb25lIGlzIG5vdCBwcmVzZW50IG9uZSB3aWxsIGJlIGNyZWF0ZWQgYmFzZWQgb2ZmIHRoZSBtZXRob2QgKyBwYXRoIGFuZCByZXR1cm5lZCBpbnN0ZWFkLiB8CnwgYC5oYXNPcGVyYXRpb25JZCgpYCB8IERldGVybWluZSBpZiB0aGUgb3BlcmF0aW9uIGhhcyBhbiBgb3BlcmF0aW9uSWRgIHByZXNlbnQuIHwKfCBgLmlzRGVwcmVjYXRlZCgpYCB8IERldGVybWluZSBpZiB0aGlzIG9wZXJhdGlvbiBpcyBtYXJrZWQgYXMgZGVwcmVjYXRlZC4gfAp8IGAuaXNGb3JtVXJsRW5jb2RlZCgpYCB8IERldGVybWluZSBpZiB0aGlzIG9wZXJhdGlvbiByZXF1aXJlcyBpdHMgcGF5bG9hZCB0byBiZSBkZWxpdmVyZWQgYXMgYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAuIHwKfCBgLmlzSnNvbigpYCB8IERldGVybWluZSBpZiB0aGlzIG9wZXJhdGlvbiByZXF1aXJlcyBpdHMgcGF5bG9hZCB0byBiZSBkZWxpdmVyZWQgYXMgSlNPTi4gfAp8IGAuaXNNdWx0aXBhcnQoKWAgfCBEZXRlcm1pbmUgaWYgdGhpcyBvcGVyYXRpb24gcmVxdWlyZXMgaXRzIGRhdGEgdG8gYmUgc2VudCBhcyBhIG11bHRpcGFydCBwYXlsb2FkLiB8CnwgYC5pc1htbCgpYCB8IERldGVybWluZSBpZiB0aGlzIG9wZXJhdGlvbiByZXF1aXJlcyBpdHMgZGF0YSB0byBiZSBzZW50IGFzIFhNTC4gfAp8IGAuaXNXZWJob29rKClgIHwgRGV0ZXJtaW5lIGlmIHRoaXMgb3BlcmF0aW9uIGlzIGFuIGluc3RhbmNlIG9mIHRoZSBgV2ViaG9va2AgY2xhc3MuIHwKfCBgLmdldEV4YW1wbGVHcm91cHMoKWAgfCBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIGdyb3VwcyBvZiBhbGwgZXhhbXBsZSBkZWZpbml0aW9ucyAoYm9keS9oZWFkZXIvcXVlcnkvcGF0aC9yZXNwb25zZS9ldGMuKS4gVGhlIGV4YW1wbGVzIGFyZSBncm91cGVkIGJ5IHRoZWlyIGtleSB3aGVuIGRlZmluZWQgdmlhIHRoZSBgZXhhbXBsZXNgIG1hcC4gfAp8IGAuZ2V0SGVhZGVycygpYCB8IFJldHJpZXZlIGFsbCBoZWFkZXJzIHRoYXQgY2FuIGVpdGhlciBiZSBzZW50IGZvciBvciByZXR1cm5lZCBmcm9tIHRoaXMgb3BlcmF0aW9uLiBUaGlzIGluY2x1ZGVzIGhlYWRlci1iYXNlZCBhdXRoZW50aWNhdGlvbiBzY2hlbWVzLCBjb21tb24gaGVhZGVyIHBhcmFtZXRlcnMsIGFuZCByZXF1ZXN0IGJvZHkgYW5kIHJlc3BvbnNlIGNvbnRlbnQgdHlwZXMuIHwKfCBgLmdldFN1bW1hcnkoKWAgfCBSZXRyaWV2ZSB0aGUgYHN1bW1hcnlgIHRoYXQncyBzZXQgb24gdGhpcyBvcGVyYXRpb24uIFRoaXMgc3VwcG9ydHMgY29tbW9uIHN1bW1hcmllcyB0aGF0IG1heSBiZSBzZXQgYXQgdGhlIFtwYXRoIGl0ZW0gbGV2ZWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNwYXRoSXRlbU9iamVjdCkuIHwKfCBgLmdldFRhZ3MoKWAgfCBSZXRyaWV2ZSBhbGwgdGFncywgYW5kIFt0aGVpciBtZXRhZGF0YV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3RhZ09iamVjdCksIHRoYXQgZXhpc3Qgb24gdGhpcyBvcGVyYXRpb24uIHwKPCEtLSBwcmV0dGllci1pZ25vcmUtZW5kIC0tPgoKIyMjIyBDYWxsYmFja3MKCjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgp8IE1ldGhvZCB8IERlc2NyaXB0aW9uIHwKfCA6LS0tIHwgOi0tLSB8CnwgYC5nZXRDYWxsYmFjaygpYCB8IFJldHJpZXZlIGEgc3BlY2lmaWMgY2FsbGJhY2sgb24gdGhpcyBvcGVyYXRpb24uIFRoaXMgd2lsbCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgdGhlIGBDYWxsYmFja2AgY2xhc3MuIHwKfCBgLmdldENhbGxiYWNrRXhhbXBsZXMoKWAgfCBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhbGwgY2FsYmFjayBleGFtcGxlcyB0aGF0IHRoaXMgb3BlcmF0aW9uIGhhcyBkZWZpbmVkLiB8CnwgYC5nZXRDYWxsYmFja3MoKWAgfCBSZXRyaWV2ZSBhbGwgY2FsbGJhY2tzIHRoYXQgdGhpcyBvcGVyYXRpb24gaGFzLiBTaW1pbGFyIHRvIGAuZ2V0UGF0aHMoKWAgcmV0dXJuaW5nIGFuIGFycmF5IG9mIGBPcGVyYXRpb25gIGluc3RhbmNlcyB0aGlzIHdpbGwgcmV0dXJuIGFuIGFycmF5IG9mIGBDYWxsYmFja2AgaW5zdGFuY2VzLiB8CnwgYC5oYXNDYWxsYmFja3MoKWAgfCBEZXRlcm1pbmUgaWYgdGhpcyBvcGVyYXRpb24gaGFzIGFueSBjYWxsYmFja3MgZGVmaW5lZC4gfAo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CgojIyMjIFBhcmFtZXRlcnMKCj4gKipOb3RlKioKPiBBbGwgcGFyYW1ldGVyIGFjY2Vzc29ycyBoZXJlIHN1cHBvcnQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgcmV0cmlldmUgYW5kIGhhbmRsZSwgY29tbW9uIHBhcmFtZXRlcnMgdGhhdCBtYXkgYmUgc2V0IGF0IHRoZSBbcGF0aCBpdGVtIGxldmVsXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4xLjAubWQjcGF0aEl0ZW1PYmplY3QpLgoKPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CnwgTWV0aG9kIHwgRGVzY3JpcHRpb24gfAp8IDotLS0gfCA6LS0tIHwKfCBgLmdldFBhcmFtZXRlcnMoKWAgfCBSZXRyaWV2ZSBhbGwgcGFyYW1ldGVycyB0aGF0IG1heSBiZSB1c2VkIHdpdGggb24gdGhpcyBvcGVyYXRpb24uIHwKfCBgLmdldFBhcmFtZXRlcnNBc0pTT05TY2hlbWEoKWAgfCBSZXRyaWV2ZSBhbmQgY29udmVydCB0aGUgb3BlcmF0aW9ucyBwYXJhbWV0ZXJzIGludG8gYW4gYXJyYXkgb2YgSlNPTiBTY2hlbWEgc2NoZW1hcyBmb3IgZWFjaCBhdmFpbGFibGUgdHlwZSBvZiBwYXJhbWV0ZXIgYXZhaWxhYmxlIG9uIHRoZSBvcGVyYXRpb246IGBwYXRoYCwgYHF1ZXJ5YCwgYGJvZHlgLCBgY29va2llYCwgYGZvcm1EYXRhYCwgYW5kIGBoZWFkZXJgLiB8CnwgYC5oYXNQYXJhbWV0ZXJzKClgIHwgRGV0ZXJtaW5lIGlmIHRoZSBvcGVyYXRpb24gaGFzIGFueSBwYXJhbWV0ZXJzIHRvIHNlbmQuIHwKfCBgLmhhc1JlcXVpcmVkUGFyYW1ldGVycygpYCB8IERldGVybWluZSBpZiBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgb24gdGhpcyBvcGVyYXRpb24gYXJlIHJlcXVpcmVkLiB8CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCiMjIyMgUmVxdWVzdCBCb2R5Cgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KfCBNZXRob2QgfCBEZXNjcmlwdGlvbiB8CnwgOi0tLSB8IDotLS0gfAp8IGAuZ2V0UmVxdWVzdEJvZHkoKWAgfCBSZXRyaWV2ZSB0aGUgcmF3IHJlcXVlc3QgYm9keSBvYmplY3QgZm9yIGEgZ2l2ZW4gY29udGVudCB0eXBlLiBJZiBub25lIGlzIHNwZWNpZmllZCBpdCB3aWxsIHJldHVybiBlaXRoZXIgdGhlIGZpcnN0IHRoYXQncyBKU09OLWxpa2UsIG9yIHRoZSBmaXJzdCBkZWZpbmVkLiB8CnwgYC5nZXRSZXF1ZXN0Qm9keUV4YW1wbGVzKClgIHwgUmV0cmlldmUgYW4gYXJyYXkgb2YgYWxsIHJlcXVlc3QgYm9keSBleGFtcGxlcyB0aGF0IHRoaXMgb3BlcmF0aW9uIGhhcyBkZWZpbmVkLiB8CnwgYC5nZXRSZXF1ZXN0Qm9keU1lZGlhVHlwZXMoKWAgfCBSZXRyaWV2ZSBhIGxpc3Qgb2YgYWxsIHRoZSBtZWRpYS9jb250ZW50IHR5cGVzIHRoYXQgdGhlIG9wZXJhdGlvbiBjYW4gYWNjZXB0IGEgcmVxdWVzdCBib2R5IHBheWxvYWQgZm9yLiB8CnwgYC5oYXNSZXF1ZXN0Qm9keSgpYCB8IERldGVybWluZSBpZiB0aGlzIG9wZXJhdGlvbiBoYXMgYSByZXF1ZXN0IGJvZHkgZGVmaW5lZC4gfAo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CgojIyMjIFJlc3BvbnNlcwoKPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CnwgTWV0aG9kIHwgRGVzY3JpcHRpb24gfAp8IDotLS0gfCA6LS0tIHwKfCBgLmdldFJlc3BvbnNlQXNKU09OU2NoZW1hKClgIHwgUmV0cml2ZSBhbmQgY29udmVydCBhIHJlc3BvbnNlIG9uIHRoaXMgb3BlcmF0aW9uIGludG8gSlNPTiBTY2hlbWEuIHwKfCBgLmdldFJlc3BvbnNlQnlTdGF0dXNDb2RlKClgIHwgUmV0cmlldmUgdGhlIHJhdyByZXNwb25zZSBvYmplY3QgZm9yIGEgZ2l2ZW4gc3RhdHVzIGNvZGUuIHwKfCBgLmdldFJlc3BvbnNlRXhhbXBsZXMoKWAgfCBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhbGwgcmVzcG9uc2UgZXhhbXBsZXMgdGhhdCB0aGlzIG9wZXJhdGlvbiBoYXMgZGVmaW5lZC4gfAp8IGAuZ2V0UmVzcG9uc2VTdGF0dXNDb2RlcygpYCB8IFJldHJpZXZlIGFsbCBzdGF0dXMgY29kZXMgdGhhdCB0aGlzIG9wZXJhdGlvbiBtYXkgcmVzcG9uZCB3aXRoLiB8CnwgYC5oYXNSZXF1aXJlZFJlcXVlc3RCb2R5KClgIHwgRGV0ZXJtaW5lIGlmIHRoaXMgb3BlcmF0aW9uIGhhcyBhIHJlcXVpcmVkIHJlcXVlc3QgYm9keS4gfAo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CgojIyMjIFNlY3VyaXR5Cgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KfCBNZXRob2QgfCBEZXNjcmlwdGlvbiB8CnwgOi0tLSB8IDotLS0gfAp8IGAuZ2V0U2VjdXJpdHkoKWAgfCBSZXR1cm4gYWxsIHNlY3VyaXR5IHJlcXVpcmVtZW50cyB0aGF0IGFyZSBhcHBsaWNhYmxlIGZvciBlaXRoZXIgdGhpcyBvcGVyYXRpb24sIG9yIGlmIHRoZSBvcGVyYXRpb24gaGFzIG5vbmUgc3BlY2lmaWMgdG8gaXQsIHRoZW4gZm9yIHRoZSBlbnRpcmUgQVBJLiB8CnwgYC5nZXRTZWN1cml0eVdpdGhUeXBlcygpYCB8IFJldHVybiBhIGNvbGxlY3Rpb24gb2YgYWxsIHNlY3VyaXR5IHNjaGVtZXMgYXBwbGljYWJsZSB0byB0aGlzIG9wZXJhdGlvbiAodXNpbmcgYC5nZXRTZWN1cml0eSgpYCksIGdyb3VwZWQgYnkgaG93IHRoZSBzZWN1cml0eSBzaG91bGQgYmUgaGFuZGxlZCAoZWl0aGVyIEFORCBvciBPUiBhdXRoIHJlcXVpcmVtZW50cykuIHwKfCBgLnByZXBhcmVTZWN1cml0eWAgfCBSZXR1cm4gYW4gb2JqZWN0IG9mIGV2ZXJ5IHNlY3VyaXR5IHNjaGVtZSB0aGF0IF9jYW5fIGJlIHVzZWQgb24gdGhpcyBvcGVyYXRpb24sIGluZGV4ZWQgYnkgdGhlIHR5cGUgb2Ygc2VjdXJpdHkgc2NoZW1lIGl0IGlzIChlZy4gYEJhc2ljYCwgYE9BdXRoMmAsIGBBUElLZXlgLCBldGMuKS4gfAo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CgojIyMjIFNwZWNpZmljYXRpb24gRXh0ZW5zaW9ucwoKPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CnwgTWV0aG9kIHwgRGVzY3JpcHRpb24gfAp8IDotLS0gfCA6LS0tIHwKfCBgLmhhc0V4dGVuc2lvbigpYCB8IERldGVybWluZSBpZiBhIGdpdmVuIFtzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3NwZWNpZmljYXRpb25FeHRlbnNpb25zKSBleGlzdHMgb24gdGhpcyBvcGVyYXRpb24uIHwKPCEtLSBwcmV0dGllci1pZ25vcmUtZW5kIC0tPgoKSW5mb3JtYXRpb24gYWJvdXQgUmVhZE1lJ3Mgc3VwcG9ydGVkIE9wZW5BUEkgZXh0ZW5zaW9ucyBhdCBodHRwczovL2RvY3MucmVhZG1lLmNvbS9kb2NzL29wZW5hcGktZXh0ZW5zaW9ucy4KCiMjIyBDYWxsYmFja3MKClRoZSBgQ2FsbGJhY2tgIGNsYXNzIGluaGVyaXRzIGBPcGVyYXRpb25gIHNvIGV2ZXJ5IEFQSSBhdmFpbGFibGUgb24gaW5zdGFuY2VzIG9mIGBPcGVyYXRpb25gIGlzIGF2YWlsYWJsZSBoZXJlIHRvby4gTXVjaCBsaWtlIGBPcGVyYXRpb25gLCB3ZSBhbHNvIHN1cHBvcnQgY29tbW9uIHBhcmFtZXRlcnMsIHN1bW1hcmllcywgYW5kIGRlc2NyaXB0aW9ucyB0aGF0IG1heSBiZSBzZXQgYXQgdGhlIFtwYXRoIGl0ZW0gbGV2ZWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNwYXRoSXRlbU9iamVjdCkgd2l0aGluIGEgYGNhbGxiYWNrc2AgZGVmaW5pdGlvbi4KCiMjIyMgR2VuZXJhbAoKPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CnwgTWV0aG9kIHwgRGVzY3JpcHRpb24gfAp8IDotLS0gfCA6LS0tIHwKfCBgLmdldElkZW50aWZpZXIoKWAgfCBSZXRyaWV2ZSB0aGUgcHJpbWFyeSBpZGVudGlmaWVyIG9mIHRoaXMgY2FsbGJhY2suIHwKPCEtLSBwcmV0dGllci1pZ25vcmUtZW5kIC0tPgoKIyMjIFdlYmhvb2tzCgpCZWNhdXNlIG91ciBgV2ViaG9va2AgY2xhc3MgZXh0ZW5kcyBgT3BlcmF0aW9uYCwgZXZlcnkgQVBJIHRoYXQncyBhdmFpbGFibGUgb24gdGhlIFtPcGVyYXRpb25dKCNvcGVyYXRpb24pIGNsYXNzIGlzIGF2YWlsYWJsZSBvbiB3ZWJob29rcy4KCiMjIEZBUQoKIyMjIyBDYW4gSSBjcmVhdGUgYW4gT3BlbkFQSSBkZWZpbml0aW9uIHdpdGggdGhpcz8KClRob3VnaCBgb2FzYCB1c2VkIHRvIG9mZmVyIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byB0aGlzLCBpdCBkb2VzIG5vIGxvbmdlci4gSWYgeW91IG5lZWQgYW4gT3BlbkFQSSAob3IgU3dhZ2dlcikgZGVmaW5pdGlvbiBmb3IgeW91ciBBUEkgd2UgcmVjb21tZW5kIGNoZWNraW5nIG91dCB0aGUgQVBJIGVkaXRpbmcgZXhwZXJpZW5jZSB3aXRoaW4gW1JlYWRNZV0oaHR0cHM6Ly9yZWFkbWUuY29tKSwgbWFudWFsbHkgbWFpbnRhaW5pbmcgSlNPTi9ZQU1MIGZpbGVzIChpdCBzb3VuZHMgd29yc2UgdGhhbiBpdCBhY3R1YWxseSBpcyksIG9yIHRoZSBsYW5ndWFnZS1hZ25vc3RpYyBbc3dhZ2dlci1pbmxpbmVdKGh0dHBzOi8vbnBtLmltL3N3YWdnZXItaW5saW5lKS4K readmeEtag: '"555c17afbbfa2ab4a4ecd2630f78041b3ceeac5e"' readmeLastModified: Wed, 04 Sep 2024 21:55:47 GMT repositoryId: 84146520 description: Comprehensive tooling for working with OpenAPI definitions. created: '2017-03-07T02:46:31Z' updated: '2024-09-05T14:48:26Z' language: TypeScript archived: false stars: 268 watchers: 20 forks: 26 owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT repoEtag: '"6316c21fec725f76debd1b1e5235b14fc5ffecc3893063073b6fa3456b68b786"' repoLastModified: Thu, 05 Sep 2024 14:48:26 GMT foundInMaster: true id: 362a4b56c90877840a8032f920389bf6 v3_1: true category: - Parsers - Description Validators - Converters - source: https://openapi.tools/ name: api category: - Parsers - Description Validators - Converters language: - JavaScript - TypeScript repository: https://github.com/readmeio/api link: https://api.readme.dev source_description: Magical SDK generation from an OpenAPI definition v2: true v3: true v3_1: true id: fe3a10e114b8e1a8d9f03e70c963b89e repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyB3aWR0aD0iNDAwIiBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yZWFkbWVpby9hcGkvbWFpbi9kb2NzL2ltYWdlcy9sb2dvLnN2ZyIgLz4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgTWFnaWNhbCBTREsgZ2VuZXJhdGlvbiBmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbiDwn6qECjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtLmltL2FwaSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvYXBpP3N0eWxlPWZvci10aGUtYmFkZ2UiIGFsdD0iTlBNIFZlcnNpb24iPjwvYT4KICA8YSBocmVmPSJodHRwczovL25wbS5pbS9hcGkiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25vZGUvdi9hcGk/c3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJOb2RlIFZlcnNpb24iPjwvYT4KICA8YSBocmVmPSJodHRwczovL25wbS5pbS9hcGkiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9sL2FwaT9zdHlsZT1mb3ItdGhlLWJhZGdlIiBhbHQ9Ik1JVCBMaWNlbnNlIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JlYWRtZWlvL2FwaSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3JlYWRtZWlvL2FwaS9jaS55bWw/YnJhbmNoPW1haW4mc3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJCdWlsZCBzdGF0dXMiPjwvYT4KPC9wPgoKLSBbSW5zdGFsbGF0aW9uXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvaW5zdGFsbGF0aW9uKQotIFtVc2FnZV0oaHR0cHM6Ly9hcGkucmVhZG1lLmRldi9kb2NzL3VzYWdlKQogIC0gW0F1dGhlbnRpY2F0aW9uXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvYXV0aGVudGljYXRpb24pCiAgLSBbUGFyYW1ldGVycyBhbmQgUGF5bG9hZHNdKGh0dHBzOi8vYXBpLnJlYWRtZS5kZXYvZG9jcy9wYXJhbWV0ZXJzLWFuZC1wYXlsb2FkcykKICAtIFtNYWtpbmcgcmVxdWVzdHNdKGh0dHBzOi8vYXBpLnJlYWRtZS5kZXYvZG9jcy9tYWtpbmctcmVxdWVzdHMpCiAgLSBbU2VydmVyIGNvbmZpZ3VyYXRpb25zXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3Mvc2VydmVyLWNvbmZpZ3VyYXRpb25zKQotIFtIb3cgZG9lcyBpdCB3b3JrP10oaHR0cHM6Ly9hcGkucmVhZG1lLmRldi9kb2NzL2hvdy1pdC13b3JrcykKLSBbRkFRXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvZmFxKQoKYGFwaWAgaXMgYSBsaWJyYXJ5IHRoYXQgZmFjaWxpdGF0ZXMgY3JlYXRpbmcgYW4gU0RLIGZyb20gYW4gT3BlbkFQSSBkZWZpbml0aW9uLiBZb3UgY2FuIHVzZSBpdHMgY29kZWdlbiBvZmZlcmluZyB0byBjcmVhdGUgYW4gb3BpbmlvbmF0ZWQgU0RLIGZvciBUeXBlU2NyaXB0IG9yIEpTICgrIFR5cGVTY3JpcHQgdHlwZXMpLgoKYGBgc2gKJCBucHggYXBpIGluc3RhbGwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL3BldHN0b3JlLmpzb24KYGBgCgpgYGBqcwpjb25zdCBwZXRzdG9yZSA9IHJlcXVpcmUoJ0BhcGkvcGV0c3RvcmUnKTsKCnBldHN0b3JlLmxpc3RQZXRzKCkudGhlbigoeyBkYXRhIH0pID0+IHsKICBjb25zb2xlLmxvZyhgTXkgcGV0cyBuYW1lIGlzICR7ZGF0YVswXS5uYW1lfSFgKTsKfSk7CmBgYAoKVGhlIEVTTSBzeW50YXggaXMgc3VwcG9ydGVkIGFzIHdlbGw6CgpgYGBqcwppbXBvcnQgcGV0c3RvcmUgZnJvbSAnQGFwaS9wZXRzdG9yZSc7CgpwZXRzdG9yZS5saXN0UGV0cygpLnRoZW4oKHsgZGF0YSB9KSA9PiB7CiAgY29uc29sZS5sb2coYE15IHBldHMgbmFtZSBpcyAke2RhdGFbMF0ubmFtZX0hYCk7Cn0pOwpgYGAK readmeEtag: '"2fcc971cbd1848188ddab0a4634dc071390696a0"' readmeLastModified: Thu, 01 Aug 2024 17:08:22 GMT repositoryId: 81140437 description: 🚀 Automatic SDK generation from an OpenAPI definition created: '2017-02-06T22:31:07Z' updated: '2024-09-05T14:49:07Z' language: TypeScript archived: false stars: 562 watchers: 22 forks: 25 owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT repoEtag: '"ee2e0624bcb662de32442fe5269a61739cd7a140a9f335d706b899c031d8fecc"' repoLastModified: Thu, 05 Sep 2024 14:49:07 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags name: openapi-cli-tool link: https://pypi.org/project/openapi-cli-tool/ repository: https://github.com/hakopako/openapi-cli-tool language: Python source_description: >- Can list up defined API paths and bundle multi-file into one. Supports multiple file extensions. v2: false v3: true repositoryMetadata: base64Readme: >- IVtvcGVuYXBpLWNsaS10b29sXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vaGFrb3Bha28vb3BlbmFwaS1jbGktdG9vbC9tYXN0ZXIvZG9jL2xvZ28ucG5nKQoKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kuY29tL2hha29wYWtvL29wZW5hcGktY2xpLXRvb2wuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5jb20vaGFrb3Bha28vb3BlbmFwaS1jbGktdG9vbCkKIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3ZlcnNpb24tdjAuMy4wLWdyZWVuLnN2ZyI+CiA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1saWdodGdyYXkuc3ZnIj4gIAo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9weXRob24tMi43LDMuNDw9LWJsdWUuc3ZnIj4gPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3dhZ2dlci0zLngteWVsbG93LnN2ZyI+CgojIG9wZW5hcGktY2xpLXRvb2wKT3BlbkFQSSAoU3dhZ2dlciAzLngpIENMSSBUb29sLiAgCgotIFN1cHBvcnRzIG11bHRpcGxlIGZpbGUgZXh0ZW5zaW9ucyAoanNvbnx5YW1sfHltbCkuCi0gQ2FuIGxpc3QgdXAgZGVmaW5lZCBBUEkgcGF0aHMuCi0gRGlzcGxheSBhbiBBUEkgc3BlY2lmaWNhdGlvbiB3aGljaCBpcyByZXNvbHZlZCAoYCRyZWZgKS4KLSBCdW5kbGUgbXVsdGktZmlsZSBpbnRvIG9uZSAob3V0cHV0IHRvIGpzb258eWFtbHxodG1sKS4KLSBPQVMgaW50ZXJhY3RpdmUgc2NhZmZvbGRpbmcuICAKCiMgUmVxdWlyZW1lbnRzCgpQeXRob24gMi43LCAzLjQgPD0uCgojIEluc3RhbGxhdGlvbgoKV2l0aCBwaXA6CgpgYGBiYXNoCiQgcGlwIGluc3RhbGwgb3BlbmFwaS1jbGktdG9vbApgYGAKTWFudWFsbHk6ICAKQ2xvbmUgdGhlIHJlcG9zaXRvcnkgYW5kIGV4ZWN1dGUgdGhlIFB5dGhvbiBpbnN0YWxsYXRpb24gY29tbWFuZCBvbiB5b3VyIG1hY2hpbmUuICAKCmBgYGJhc2gKJCBwaXAgLXIgcmVxdWlyZW1lbnRzLnR4dCBpbnN0YWxsCiQgcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKYGBgCgpUaGVuIGBvcGVuYXBpLWNsaS10b29sYCBjb21tYW5kIGlzIGluc3RhbGxlZC4KCiMgVXNhZ2UKCmBgYAokIG9wZW5hcGktY2xpLXRvb2wgLS1oZWxwClVzYWdlOiBvcGVuYXBpLWNsaS10b29sIFtPUFRJT05TXSBDT01NQU5EIFtBUkdTXS4uLgoKT3B0aW9uczoKICAtLWhlbHAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgoKQ29tbWFuZHM6CiAgYnVuZGxlICAgIEJ1bmRsZSBtdWx0aXBsZSBmaWxlcyBpbnRvIG9uZS4KICBsaXN0ICAgICAgTGlzdCB1cCBBUEkgcGF0aHMgaW4gYSBmaWxlIG9yIGRpcmVjdG9yeS4KICByZXNvbHZlICAgRGlzcGxheSBgJHJlZmAgcmVzb2x2ZWQgQVBJIHNwZWNpZmljYXRpb24uCiAgc2NhZmZvbGQgIEludGVyYWN0aXZlbHkgY3JlYXRlIGEgc2ltcGxlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbi4KYGBgCgojIyBCdW5kbGUKCkJ1bmRsZSBtdWx0aS1maWxlIHNwZWNpZmljYXRpb25zIGludG8gb25lLCByZWdhcmRsZXNzIG9mIGZpbGUgZXh0ZW5zaW9uIChqc29ufHlhbWx8eW1sKS4KCmBgYAokIG9wZW5hcGktY2xpLXRvb2wgYnVuZGxlIC0taGVscApVc2FnZTogb3BlbmFwaS1jbGktdG9vbCBidW5kbGUgW09QVElPTlNdIEZJTEVfUEFUSFMKCiAgQnVuZGxlIG11bHRpcGxlIGZpbGVzIGludG8gb25lLgoKT3B0aW9uczoKICAtZiwgLS1maWxlIFRFWFQgIExvYWQgY29tbW9uIG9iamVjdHMgc3VjaCBhcyBpbmZvIGFuZCBzZXJ2ZXJzIGZyb20gYQogICAgICAgICAgICAgICAgICAgc3BlY2lmaWMgZmlsZS4gRGVmYXVsdCBpcyBhIGZpbGUgd2hpY2ggaXMgdGhlIHRvcCBvZiBsaXN0CiAgICAgICAgICAgICAgICAgICBjb21tYW5kIHJlc3VsdC4KICAtdCwgLS10eXBlIFRFWFQgIEV4cG9ydCBkYXRhIHR5cGUuIHtqc29ufHlhbWx8aHRtbH0gIFtkZWZhdWx0OiBqc29uXQogIC0taGVscCAgICAgICAgICAgU2hvdyB0aGlzIG1lc3NhZ2UgYW5kIGV4aXQuCmBgYAoKZXhhbXBsZToKYGBgCiQgb3BlbmFwaS1jbGktdG9vbCBidW5kbGUgLXQgaHRtbCBmaWxlMS5qc29uIGZpbGUyLnlhbWxgID4gLi9zcGVjaWZpY2F0aW9uLmh0bWwKYGBgCgpJbiB0aGUgaHRtbCBmaWxlLCBhbiB1bnBrZyB2ZXJzaW9uIG9mIFtzd2FnZ2VyLXVpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkgaXMgZW1iZWRkZWQuIFJlbmRlcmVkIHNjcmVlbnNob3QgYmVsb3c6ICAKCgohW2J1bmRsZS1odG1sLWltZ10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hha29wYWtvL29wZW5hcGktY2xpLXRvb2wvbWFzdGVyL2RvYy9idW5kbGUtaHRtbC5wbmcpCgoKIyMgTGlzdAoKTGlzdCB1cCBBUEkgcGF0aHMgZnJvbSBhIGZpbGUvZGlyZWN0b3J5IHJlZ2FyZGxlc3Mgb2YgdGhlIGZpbGUgZXh0ZW5zaW9uIChqc29ufHlhbWx8eW1sKS4KCmBgYGJhc2gKJCBvcGVuYXBpLWNsaS10b29sIGxpc3QgYGZpbmQgLi9zcGVjYAoKTWV0aG9kICAgIFBhdGggICAgICAgRmlsZQotLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KUFVUICAgICAgIC9hdmF0YXIgICAgLi90ZXN0cy9yZXNvdXJjZXMvc3BlYy9zYW1wbGUueW1sCkdFVCAgICAgICAvZm9sbHdlcnMgIC4vdGVzdHMvcmVzb3VyY2VzL3NwZWMvZm9sZGVyMS9zYW1wbGUyLnlhbWwKUE9TVCAgICAgIC9mb2xsd2VycyAgLi90ZXN0cy9yZXNvdXJjZXMvc3BlYy9mb2xkZXIxL3NhbXBsZTIueWFtbApQVVQgICAgICAgL2ZvbGx3ZXJzICAuL3Rlc3RzL3Jlc291cmNlcy9zcGVjL2ZvbGRlcjEvc2FtcGxlMi55YW1sClBPU1QgICAgICAvcGV0cyAgICAgIC4vdGVzdHMvcmVzb3VyY2VzL3NwZWMvc2FtcGxlLnltbApHRVQgICAgICAgL3Bvc3RzICAgICAuL3Rlc3RzL3Jlc291cmNlcy9zcGVjL2ZvbGRlcjEvc2FtcGxlLmpzb24KUE9TVCAgICAgIC9wb3N0cyAgICAgLi90ZXN0cy9yZXNvdXJjZXMvc3BlYy9mb2xkZXIxL3NhbXBsZS5qc29uCkdFVCAgICAgICAvdXNlcnMgICAgIC4vdGVzdHMvcmVzb3VyY2VzL3NwZWMvZm9sZGVyMS9zYW1wbGUuanNvbgpQT1NUICAgICAgL3VzZXJzICAgICAuL3Rlc3RzL3Jlc291cmNlcy9zcGVjL2ZvbGRlcjEvc2FtcGxlLmpzb24KYGBgCgoKIyMgUmVzb2x2ZQoKRGlzcGxheSBhbiBBUEkgc3BlY2lmaWNhdGlvbiB3aGljaCBpcyByZXNvbHZlZCBmcm9tICBhIG11bHRpLWZpbGUgQVBJIHNwZWNpZmljYXRpb24gdmlhICRyZWYgcG9pbnRlcnMuICAKCmBgYApVc2FnZTogb3BlbmFwaS1jbGktdG9vbCByZXNvbHZlIFtPUFRJT05TXSBNRVRIT0QgUEFUSCBGSUxFX1BBVEhTCgogIERpc3BsYXkgYCRyZWZgIHJlc29sdmVkIEFQSSBzcGVjaWZpY2F0aW9uLgoKT3B0aW9uczoKICAtdCwgLS10eXBlIFRFWFQgIEV4cG9ydCBkYXRhIHR5cGUuIHtqc29ufHlhbWx9ICBbZGVmYXVsdDoganNvbl0KICAtLWhlbHAgICAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgpgYGAKCmV4YW1wbGU6CmBgYGJhc2gKJCBvcGVuYXBpLWNsaS10b29sIHJlc29sdmUgcG9zdCAvY2F0cyBgZmluZCAuL3Rlc3RzL3Jlc291cmNlcy9zcGVjYApgYGAKCgojIyBTY2FmZm9sZAoKSW50ZXJhY3RpdmVseSBpbnB1dCBpbmZvcm1hdGlvbiBvZiB5b3VyIEFQSS4gIApBIHNpbXBsZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gaXMgZ2VuZXJhdGVkIGZyb20geW91ciBwcm9tcHQuCgpgYGBiYXNoCiQgb3BlbmFwaS1jbGktdG9vbCBzY2FmZm9sZAoKUGxlYXNlIGVudGVyIHRpdGxlIFsiIl06IHNhbXBsZQpQbGVhc2UgZW50ZXIgdmVyc2lvbiBbdjEuMF06ClBsZWFzZSBlbnRlciBsaWNlbnNlIFtBcGFjaGUgMi4wXToKUGxlYXNlIGVudGVyIHNlcnZlciB1cmwgW2h0dHA6Ly9leGFtcGxlLmNvbV06ClBsZWFzZSBlbnRlciBwYXRoIFsvXTogL2V4YW1wbGUKUGxlYXNlIGVudGVyIG1ldGhvZCBmb3IgL2V4YW1wbGUgW2dldHxwb3N0fHB1dHxkZWxldGV8aGVhZHxvcHRpb258dHJhY2VdOiBnZXQKUGxlYXNlIGVudGVyIGRlc2NyaXB0aW9uIGZvciBnZXQgL2V4YW1wbGUgWyIiXTogc2FtcGxlIGdldCBlbmRwb2ludApQbGVhc2UgZW50ZXIgcmVzcG9uc2UgY29kZSBmb3IgZ2V0IC9leGFtcGxlIFsyMDBdOgpgYGAK readmeEtag: '"4160acff531aee88dd1cb97794807f5b79204ae4"' readmeLastModified: Fri, 13 Dec 2019 15:18:01 GMT repositoryId: 189242303 description: >- OpenAPI (Swagger 3.x) CLI Tool. Supports multiple file extensions. Can list up defined API paths and bundle multi-file into one. created: '2019-05-29T14:31:14Z' updated: '2024-01-13T23:59:57Z' language: Python archived: false stars: 22 watchers: 2 forks: 4 owner: hakopako logo: https://avatars.githubusercontent.com/u/4510192?v=4 license: MIT repoEtag: '"776ae013d444774f4eb70b9120e7d2131d4d4ee7cd39f82ceadc3b5c4306ef7a"' repoLastModified: Sat, 13 Jan 2024 23:59:57 GMT foundInMaster: true id: 74cfd1a51e146dbdbfccbf999d194eae category: Parsers - source: https://openapi.tools/ name: laravel-openapi category: - Converters - Testing language: PHP repository: https://github.com/vyuldashev/laravel-openapi source_description: Generate OpenAPI 3 specification for Laravel Applications. v2: false v3: true repositoryMetadata: base64Readme: >- IyBHZW5lcmF0ZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZm9yIExhcmF2ZWwgQXBwbGljYXRpb25zCgpbIVtMYXRlc3QgVmVyc2lvbiBvbiBQYWNrYWdpc3RdKGh0dHBzOi8vcG9zZXIucHVneC5vcmcvdnl1bGRhc2hldi9sYXJhdmVsLW9wZW5hcGkvdi9zdGFibGU/Zm9ybWF0PWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL3Z5dWxkYXNoZXYvbGFyYXZlbC1vcGVuYXBpKQpbIVtNSVQgTGljZW5zZWRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtYnJpZ2h0Z3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oTElDRU5TRS5tZCkKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vdnl1bGRhc2hldi9sYXJhdmVsLW9wZW5hcGkvd29ya2Zsb3dzL1Rlc3RzL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS92eXVsZGFzaGV2L2xhcmF2ZWwtb3BlbmFwaS9hY3Rpb25zKQpbIVtUb3RhbCBEb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L2R0L3Z5dWxkYXNoZXYvbGFyYXZlbC1vcGVuYXBpLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy92eXVsZGFzaGV2L2xhcmF2ZWwtb3BlbmFwaSkKCiMjIERvY3VtZW50YXRpb24KCllvdSdsbCBmaW5kIHRoZSBkb2N1bWVudGF0aW9uIG9uIGh0dHBzOi8vdnl1bGRhc2hldi5naXRodWIuaW8vbGFyYXZlbC1vcGVuYXBpLgoKIyMgTGljZW5zZQoKVGhlIE1JVCBMaWNlbnNlIChNSVQpLiBQbGVhc2Ugc2VlIFtMaWNlbnNlIEZpbGVdKExJQ0VOU0UubWQpIGZvciBtb3JlIGluZm9ybWF0aW9uLgo= readmeEtag: '"5f41c782107174831f4d9482f6f3a2dfecec277b"' readmeLastModified: Thu, 04 May 2023 10:01:53 GMT repositoryId: 182520856 description: Generate OpenAPI specification for Laravel Applications created: '2019-04-21T10:45:45Z' updated: '2024-09-04T14:20:57Z' language: PHP archived: false stars: 406 watchers: 13 forks: 94 owner: vyuldashev logo: https://avatars.githubusercontent.com/u/1809081?v=4 license: MIT repoEtag: '"978b6cca034819c195c8124f34fe3c6b404ba1ca4a30d6e04a69bc4e1ede681e"' repoLastModified: Wed, 04 Sep 2024 14:20:57 GMT foundInMaster: true id: ee05a2f19f3fd6fc886e5e4711ef400f - source: https://openapi.tools/ name: Flotiq - headless CMS with OpenAPI support category: - SDK - GUI Editors link: https://flotiq.com source_description: >- Visually define your Content Types, Flotiq automatically generates your own OpenAPI v3 compatible endpoints, SDKs and Postman collections. v3: true foundInMaster: true id: 478d41ac500dd9ce23e0f0213a656154 - source: https://openapi.tools/ name: Chai OpenAPI Response Validator category: Testing language: Node.js repository: >- https://github.com/openapi-library/openapivalidators/tree/master/packages/chai-openapi-response-validator source_description: >- Simple Chai support for asserting that HTTP responses satisfy an OpenAPI spec. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFZhbGlkYXRvcnMKCiFbYnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpCiFbc3R5bGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWFpcmJuYi1mZjVhNWYuc3ZnKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycykKWyFbTUlUIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvb3BlbmFwaS12YWxpZGF0b3Iuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFKQpbIVtjb250cmlidXRpb25zIHdlbGNvbWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29udHJpYnV0aW9ucy13ZWxjb21lLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCgpVc2UgSmVzdCBvciBDaGFpIHRvIGFzc2VydCB0aGF0IEhUVFAgcmVzcG9uc2VzIHNhdGlzZnkgYW4gT3BlbkFQSSBzcGVjLgoKIyMgUHJvYmxlbSDwn5iVCgpJZiB5b3VyIHNlcnZlcidzIGJlaGF2aW91ciBkb2Vzbid0IG1hdGNoIHlvdXIgQVBJIGRvY3VtZW50YXRpb24sIHRoZW4geW91IG5lZWQgdG8gY29ycmVjdCB5b3VyIHNlcnZlciwgeW91ciBkb2N1bWVudGF0aW9uLCBvciBib3RoLiBUaGUgc29vbmVyIHlvdSBrbm93IHRoZSBiZXR0ZXIuCgojIyBTb2x1dGlvbiDwn5iECgpUaGVzZSB0ZXN0IHBsdWdpbnMgbGV0IHlvdSBhdXRvbWF0aWNhbGx5IHRlc3Qgd2hldGhlciB5b3VyIHNlcnZlcidzIGJlaGF2aW91ciBhbmQgZG9jdW1lbnRhdGlvbiBtYXRjaC4gVGhleSBleHRlbmQgSmVzdCBhbmQgQ2hhaSB0byBzdXBwb3J0IHRoZSBbT3BlbkFQSSBzdGFuZGFyZF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8pIGZvciBkb2N1bWVudGluZyBSRVNUIEFQSXMuIEluIHlvdXIgSmF2YVNjcmlwdCB0ZXN0cywgeW91IGNhbiBzaW1wbHkgYXNzZXJ0IGBleHBlY3QocmVzcG9uc2VPYmplY3QpLnRvU2F0aXNmeUFwaVNwZWMoKWAKCiMjIyBbamVzdC1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL3RyZWUvbWFzdGVyL3BhY2thZ2VzL2plc3Qtb3BlbmFwaSNyZWFkbWUpCgpbIVtkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2plc3Qtb3BlbmFwaSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2plc3Qtb3BlbmFwaSkKWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2plc3Qtb3BlbmFwaS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9qZXN0LW9wZW5hcGkpCgojIyMgW0NoYWkgT3BlbkFQSSBSZXNwb25zZSBWYWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvdHJlZS9tYXN0ZXIvcGFja2FnZXMvY2hhaS1vcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvciNyZWFkbWUpCgpbIVtkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2NoYWktb3BlbmFwaS1yZXNwb25zZS12YWxpZGF0b3IpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jaGFpLW9wZW5hcGktcmVzcG9uc2UtdmFsaWRhdG9yKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvY2hhaS1vcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvci5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jaGFpLW9wZW5hcGktcmVzcG9uc2UtdmFsaWRhdG9yKQoKIyMgQ29udHJpYnV0b3JzIOKcqAoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yd2FsbGU2MSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTgxNzAxNjk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+UmljaGFyZCBXYWxsZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNtYWludGVuYW5jZS1yd2FsbGU2MSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPXJ3YWxsZTYxIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1yd2FsbGU2MSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBcndhbGxlNjEiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0pvbm55U3BydWNlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMDgxMjI3Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5Kb25ueSBTcHJ1Y2U8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9Sm9ubnlTcHJ1Y2UiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPUpvbm55U3BydWNlIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FKb25ueVNwcnVjZSIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQWxleERvYmVjayI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTA1MTkzODg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+QWxleCBEb2JlY2s8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9QWxleERvYmVjayIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvaXNzdWVzP3E9YXV0aG9yJTNBQWxleERvYmVjayIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0Jlbkd1MyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzEwNTg1Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5CZW4gR3V0aHJpZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1CZW5HdTMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2lzc3Vlcz9xPWF1dGhvciUzQUJlbkd1MyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9tYXJ0aWpudmVndGVyLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI1MTM0NDc3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPk1hcnRpam4gVmVndGVyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPW12ZWd0ZXIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2x1ZGVrbm92eSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM2MTA2MTI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+THVkZWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9bHVkZWtub3Z5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9pc3N1ZXM/cT1hdXRob3IlM0FsdWRla25vdnkiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90Z2lhcmRpbmEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3NDU5MTA0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlRvbW15IEdpYXJkaW5hPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPXRnaWFyZGluYSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvaXNzdWVzP3E9YXV0aG9yJTNBdGdpYXJkaW5hIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL3hvdGFidTQuZ2l0aHViLmlvLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzAzMzk3Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5PbGVrc2FuZHIgS2hvdGVtc2t5aTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1Yb3RhYnU0IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbWl0a2VpbmFuOSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjU3NzMzNT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5BbWl0IEtlaW5hbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1hbWl0a2VpbmFuOSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRGV0YWNoSGVhZCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzAyODMzNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5EZXRhY2hIZWFkPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2lzc3Vlcz9xPWF1dGhvciUzQURldGFjaEhlYWQiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly9rYXJsc3NvbmtyaXN0b2ZmZXIuY29tLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMDQ5MDIwMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5LcmlzdG9mZmVyIEthcmxzc29uPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPWtyaXN0b2ZmZXJrYXJsc3NvbjkzIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogIDwvdHI+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+Cg== readmeEtag: '"4d5a529f7a19b52fab62aaf17e9c5263bd765e2d"' readmeLastModified: Tue, 29 Mar 2022 10:12:21 GMT repositoryId: 199614125 description: Use Jest or Chai to assert that HTTP responses satisfy an OpenAPI spec created: '2019-07-30T08:56:01Z' updated: '2024-09-01T09:39:22Z' language: TypeScript archived: false stars: 189 watchers: 11 forks: 35 owner: openapi-library logo: https://avatars.githubusercontent.com/u/53815441?v=4 license: MIT repoEtag: '"b2c0e920bdb845322218363d2d55bd3f389ac782dbdd1df6796252abb4685800"' repoLastModified: Sun, 01 Sep 2024 09:39:22 GMT foundInMaster: true id: b5cd9eb978510085ded374f60b8e1486 - source: https://openapi.tools/ name: jest-openapi category: Testing language: Node.js repository: >- https://github.com/openapi-library/openapivalidators/tree/master/packages/jest-openapi source_description: >- Additional Jest matchers for asserting that HTTP responses satisfy an OpenAPI spec. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFZhbGlkYXRvcnMKCiFbYnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpCiFbc3R5bGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWFpcmJuYi1mZjVhNWYuc3ZnKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycykKWyFbTUlUIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvb3BlbmFwaS12YWxpZGF0b3Iuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFKQpbIVtjb250cmlidXRpb25zIHdlbGNvbWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29udHJpYnV0aW9ucy13ZWxjb21lLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCgpVc2UgSmVzdCBvciBDaGFpIHRvIGFzc2VydCB0aGF0IEhUVFAgcmVzcG9uc2VzIHNhdGlzZnkgYW4gT3BlbkFQSSBzcGVjLgoKIyMgUHJvYmxlbSDwn5iVCgpJZiB5b3VyIHNlcnZlcidzIGJlaGF2aW91ciBkb2Vzbid0IG1hdGNoIHlvdXIgQVBJIGRvY3VtZW50YXRpb24sIHRoZW4geW91IG5lZWQgdG8gY29ycmVjdCB5b3VyIHNlcnZlciwgeW91ciBkb2N1bWVudGF0aW9uLCBvciBib3RoLiBUaGUgc29vbmVyIHlvdSBrbm93IHRoZSBiZXR0ZXIuCgojIyBTb2x1dGlvbiDwn5iECgpUaGVzZSB0ZXN0IHBsdWdpbnMgbGV0IHlvdSBhdXRvbWF0aWNhbGx5IHRlc3Qgd2hldGhlciB5b3VyIHNlcnZlcidzIGJlaGF2aW91ciBhbmQgZG9jdW1lbnRhdGlvbiBtYXRjaC4gVGhleSBleHRlbmQgSmVzdCBhbmQgQ2hhaSB0byBzdXBwb3J0IHRoZSBbT3BlbkFQSSBzdGFuZGFyZF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8pIGZvciBkb2N1bWVudGluZyBSRVNUIEFQSXMuIEluIHlvdXIgSmF2YVNjcmlwdCB0ZXN0cywgeW91IGNhbiBzaW1wbHkgYXNzZXJ0IGBleHBlY3QocmVzcG9uc2VPYmplY3QpLnRvU2F0aXNmeUFwaVNwZWMoKWAKCiMjIyBbamVzdC1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL3RyZWUvbWFzdGVyL3BhY2thZ2VzL2plc3Qtb3BlbmFwaSNyZWFkbWUpCgpbIVtkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2plc3Qtb3BlbmFwaSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2plc3Qtb3BlbmFwaSkKWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2plc3Qtb3BlbmFwaS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9qZXN0LW9wZW5hcGkpCgojIyMgW0NoYWkgT3BlbkFQSSBSZXNwb25zZSBWYWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvdHJlZS9tYXN0ZXIvcGFja2FnZXMvY2hhaS1vcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvciNyZWFkbWUpCgpbIVtkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2NoYWktb3BlbmFwaS1yZXNwb25zZS12YWxpZGF0b3IpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jaGFpLW9wZW5hcGktcmVzcG9uc2UtdmFsaWRhdG9yKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvY2hhaS1vcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvci5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jaGFpLW9wZW5hcGktcmVzcG9uc2UtdmFsaWRhdG9yKQoKIyMgQ29udHJpYnV0b3JzIOKcqAoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yd2FsbGU2MSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTgxNzAxNjk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+UmljaGFyZCBXYWxsZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNtYWludGVuYW5jZS1yd2FsbGU2MSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPXJ3YWxsZTYxIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1yd2FsbGU2MSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBcndhbGxlNjEiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0pvbm55U3BydWNlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMDgxMjI3Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5Kb25ueSBTcHJ1Y2U8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9Sm9ubnlTcHJ1Y2UiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPUpvbm55U3BydWNlIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FKb25ueVNwcnVjZSIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQWxleERvYmVjayI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTA1MTkzODg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+QWxleCBEb2JlY2s8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9QWxleERvYmVjayIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvaXNzdWVzP3E9YXV0aG9yJTNBQWxleERvYmVjayIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0Jlbkd1MyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzEwNTg1Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5CZW4gR3V0aHJpZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1CZW5HdTMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2lzc3Vlcz9xPWF1dGhvciUzQUJlbkd1MyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9tYXJ0aWpudmVndGVyLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI1MTM0NDc3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPk1hcnRpam4gVmVndGVyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPW12ZWd0ZXIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2x1ZGVrbm92eSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM2MTA2MTI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+THVkZWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9bHVkZWtub3Z5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9pc3N1ZXM/cT1hdXRob3IlM0FsdWRla25vdnkiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90Z2lhcmRpbmEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3NDU5MTA0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlRvbW15IEdpYXJkaW5hPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPXRnaWFyZGluYSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvaXNzdWVzP3E9YXV0aG9yJTNBdGdpYXJkaW5hIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL3hvdGFidTQuZ2l0aHViLmlvLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzAzMzk3Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5PbGVrc2FuZHIgS2hvdGVtc2t5aTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1Yb3RhYnU0IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbWl0a2VpbmFuOSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjU3NzMzNT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5BbWl0IEtlaW5hbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1hbWl0a2VpbmFuOSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRGV0YWNoSGVhZCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzAyODMzNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5EZXRhY2hIZWFkPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2lzc3Vlcz9xPWF1dGhvciUzQURldGFjaEhlYWQiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly9rYXJsc3NvbmtyaXN0b2ZmZXIuY29tLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMDQ5MDIwMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5LcmlzdG9mZmVyIEthcmxzc29uPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPWtyaXN0b2ZmZXJrYXJsc3NvbjkzIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogIDwvdHI+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+Cg== readmeEtag: '"4d5a529f7a19b52fab62aaf17e9c5263bd765e2d"' readmeLastModified: Tue, 29 Mar 2022 10:12:21 GMT repositoryId: 199614125 description: Use Jest or Chai to assert that HTTP responses satisfy an OpenAPI spec created: '2019-07-30T08:56:01Z' updated: '2024-09-01T09:39:22Z' language: TypeScript archived: false stars: 189 watchers: 11 forks: 35 owner: openapi-library logo: https://avatars.githubusercontent.com/u/53815441?v=4 license: MIT repoEtag: '"b2c0e920bdb845322218363d2d55bd3f389ac782dbdd1df6796252abb4685800"' repoLastModified: Sun, 01 Sep 2024 09:39:22 GMT foundInMaster: true id: e77dbc0bddfdcddf31c2fb1cff63cb6c - source: https://openapi.tools/ name: hikaku category: Testing language: Kotlin repository: https://github.com/codecentric/hikaku source_description: >- A library that tests if the implementation of a REST-API meets its specification. v2: false v3: true repositoryMetadata: base64Readme: >- IyBoaWtha3UKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2FwaS50cmF2aXMtY2kub3JnL2NvZGVjZW50cmljL2hpa2FrdS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9jb2RlY2VudHJpYy9oaWtha3UpIFshW01hdmVuIENlbnRyYWwgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3YvZGUuY29kZWNlbnRyaWMuaGlrYWt1L2hpa2FrdS1jb3JlLnN2ZyldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9zZWFyY2g/cT1nOmRlLmNvZGVjZW50cmljLmhpa2FrdSkKCjxwIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSJkb2NzL2ltYWdlcy9oaWtha3UtbG9nby1zbWFsbC5wbmciPgo8L3A+CgpIaWtha3UgKOavlOi8gykgaXMgamFwYW5lc2UgYW5kIG1lYW5zICJjb21wYXJpc29uIi4gVGhpcyBsaWJyYXJ5IHRlc3RzIGlmIGEgUkVTVC1BUEkgaW1wbGVtZW50YXRpb24gbWVldHMgaXRzIHNwZWNpZmljYXRpb24uCgpJZiB5b3UgY3JlYXRlIHlvdXIgUkVTVC1BUEkgY29udHJhY3QtZmlyc3Qgd2l0aG91dCB1c2luZyBhbnkgdHlwZSBvZiBnZW5lcmF0aW9uLCB5b3UgaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCBzcGVjaWZpY2F0aW9uIGFuZCBpbXBsZW1lbnRhdGlvbiBkb24ndCBkaXZlcmdlLgpUaGUgYWltIG9mIHRoaXMgcHJvamVjdCBpcyB0byBtZWV0IHRoaXMgbmVlZCBhbmQgb2ZmZXIgYSBtZWNoYW5pc20gdG8gY2hlY2sgc3BlY2lmaWNhdGlvbiBhbmQgaW1wbGVtZW50YXRpb24gZm9yIGVxdWFsaXR5IHdpdGhvdXQgaGF2aW5nIHRvIGNyZWF0ZSByZXF1ZXN0cyB3aGljaCBhcmUgZmlyZWQgYWdhaW5zdCBhIG1vY2sgc2VydmVyLiBTbyB0aGlzIGxpYnJhcnkgd29uJ3QgY2hlY2sgdGhlIGJlaGF2aW9yIG9mIHRoZSBBUEksIGJ1dCB0aGUgc3RydWN0dXJhbCBjb3JyZWN0bmVzcy4gUGxlYXNlIHNlZSBhbHNvIHRoZSBzZWN0aW9uIFtsaW1pdGF0aW9uc10oI2xpbWl0YXRpb25zKQoKIyMgQ3VycmVudGx5IHN1cHBvcnRlZAoKKyAqKlNwZWNpZmljYXRpb25zKioKICArIFtPcGVuQVBJIDMuMC5YXShvcGVuYXBpL1JFQURNRS5tZCkKICArIFtSQU1MIDEuWF0ocmFtbC9SRUFETUUubWQpCiAgKyBbV0FETF0od2FkbC9SRUFETUUubWQpCisgKipJbXBsZW1lbnRhdGlvbnMqKgogICsgW1NwcmluZyBNVkMgNS4zLlhdKHNwcmluZy9SRUFETUUubWQpCiAgKyBbTWljcm9uYXV0XShtaWNyb25hdXQvUkVBRE1FLm1kKQogICsgW0pBWC1SUyAzLjAuWF0oamF4LXJzL1JFQURNRS5tZCkKICAgICsgW0FwYWNoZSBDWEZdKGh0dHA6Ly9jeGYuYXBhY2hlLm9yZykKICAgICsgW0Ryb3B3aXphcmRdKGh0dHBzOi8vd3d3LmRyb3B3aXphcmQuaW8pCiAgICArIFtKZXJzZXldKGh0dHBzOi8vamVyc2V5LmdpdGh1Yi5pbykKICAgICsgW1Jlc3RlYXN5XShodHRwczovL3Jlc3RlYXN5LmdpdGh1Yi5pbykKICAgICsgW1Jlc3RsZXRdKGh0dHBzOi8vcmVzdGxldC5jb20vb3Blbi1zb3VyY2UvZG9jdW1lbnRhdGlvbi91c2VyLWd1aWRlLzIuMy9leHRlbnNpb25zL2pheHJzKQogICAgKyBbUXVhcmt1c10oaHR0cHM6Ly9xdWFya3VzLmlvKQogIApQbGVhc2UgcmVmZXIgdG8gdGhlIGxpc3Qgb2YgW2FsbCBmZWF0dXJlc10oZG9jcy9mZWF0dXJlcy5tZCkuIFRvIGNoZWNrIHRoZSBmZWF0dXJlIHN1cHBvcnQgZm9yIGVhY2ggY29udmVydGVyLgpJdCBpcyBwb3NzaWJsZSB0aGF0IG5vdCBldmVyeSBjb252ZXJ0ZXIgc3VwcG9ydHMgZXZlcnkgZmVhdHVyZS4gT25seSB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSBmZWF0dXJlcyBvZiB0d28gYEVuZHBvaW50Q29udmVydGVyYHMgaXMgdXNlZCBmb3IgdGhlIG1hdGNoaW5nLiBQbGVhc2Uga2VlcCB0aGF0IGluIG1pbmQgcmVnYXJkaW5nIHRoZSBlcXVhbGl0eSBvZiBpbXBsZW1lbnRhdGlvbiBhbmQgc3BlY2lmaWNhdGlvbi4KICAKIyMgVXNhZ2UKClNldHRpbmcgdXAgYSB0ZXN0IHdpdGggaGlrYWt1IGlzIHZlcnkgc2ltcGxlLiBZb3UganVzdCBpbnN0YW50aWF0ZSB0aGUgYEhpa2FrdWAgY2xhc3MgYW5kIHByb3ZpZGUgYW4gYEVuZHBvaW50Q29udmVydGVyYCBmb3IgdGhlIHNwZWNpZmljYXRpb24gYW5kIGFub3RoZXIgb25lIGZvciB0aGUgaW1wbGVtZW50YXRpb24uIE9wdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBwYXNzIGFuIGluc3RhbmNlIG9mIGBIaWtha3VDb25maWdgLiBDaGVjayB0aGUgbGlzdCBvZiBvcHRpb25zIGFuZCBkZWZhdWx0IHZhbHVlcyBvZiB0aGUgW2NvbmZpZ10oZG9jcy9jb25maWcubWQpLiBUaGVuIHlvdSBjYWxsIGBtYXRjaCgpYCBvbiB0aGUgYEhpa2FrdWAgY2xhc3MuClRoZSBtYXRjaCByZXN1bHQgaXMgc2VudCB0byBvbmUgb3IgbXVsdGlwbGUgYFJlcG9ydGVyYC4gSWYgdGhlIHRlc3QgZmFpbHMga290bGluJ3MgYERlZmF1bHRBc3NlcnRlci5mYWlsKClgIG1ldGhvZCBpcyBjYWxsZWQuCgojIyMgRXhhbXBsZQoKVGhlcmUgaXMgYW4gYXJ0aWZhY3QgZm9yIGVhY2ggY29udmVydGVyLiBTbyB3ZSBuZWVkIG9uZSBkZXBlbmRlbmN5IGZvciB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgb25lIGZvciB0aGUgaW1wbGVtZW50YXRpb24uIEluIHRoaXMgZXhhbXBsZSBvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gYW5kIGEgU3ByaW5nIGltcGxlbWVudGF0aW9uLiBUaGUgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBjb250YWluIHRoZSBfL2Vycm9yXyBlbmRwb2ludHMgY3JlYXRlZCBieSBzcHJpbmcsIHNvIHdlIHdhbnQgdG8gb21pdCB0aG9zZS4KRmlyc3QgYWRkIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBjb252ZXJ0ZXJzLCB0aGF0IHdlIHdhbnQgdG8gdXNlLiBJbiB0aGlzIGNhc2UgYGhpa2FrdS1vcGVuYXBpYCBhbmQgYGhpa2FrdS1zcHJpbmdgLgoKYGBgZ3JhZGxlCmRlcGVuZGVuY2llcyB7CiAgICB0ZXN0SW1wbGVtZW50YXRpb24gImRlLmNvZGVjZW50cmljLmhpa2FrdTpoaWtha3Utb3BlbmFwaTokaGlrYWt1VmVyc2lvbiIKICAgIHRlc3RJbXBsZW1lbnRhdGlvbiAiZGUuY29kZWNlbnRyaWMuaGlrYWt1Omhpa2FrdS1zcHJpbmc6JGhpa2FrdVZlcnNpb24iCn0KYGBgCgojIyMjIEtvdGxpbgoKQW5kIG5vdyB3ZSBjYW4gY3JlYXRlIHRoZSB0ZXN0IGNhc2U6CgpgYGBrb3RsaW4KQFNwcmluZ0Jvb3RUZXN0CmNsYXNzIFNwZWNpZmljYXRpb25UZXN0IHsKCiAgICBAQXV0b3dpcmVkCiAgICBwcml2YXRlIGxhdGVpbml0IHZhciBzcHJpbmdDb250ZXh0OiBBcHBsaWNhdGlvbkNvbnRleHQKCiAgICBAVGVzdAogICAgZnVuIGBzcGVjaWZpY2F0aW9uIG1hdGNoZXMgaW1wbGVtZW50YXRpb25gKCkgewogICAgICAgIEhpa2FrdSgKICAgICAgICAgICAgICAgIHNwZWNpZmljYXRpb24gPSBPcGVuQXBpQ29udmVydGVyKFBhdGhzLmdldCgib3BlbmFwaS55YW1sIikpLAogICAgICAgICAgICAgICAgaW1wbGVtZW50YXRpb24gPSBTcHJpbmdDb252ZXJ0ZXIoc3ByaW5nQ29udGV4dCksCiAgICAgICAgICAgICAgICBjb25maWcgPSBIaWtha3VDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnMgPSBsaXN0T2YoU3ByaW5nQ29udmVydGVyLklHTk9SRV9FUlJPUl9FTkRQT0lOVCkKICAgICAgICAgICAgICAgICkKICAgICAgICApCiAgICAgICAgLm1hdGNoKCkKICAgIH0KfQpgYGAKCiMjIyMgSmF2YQoKU2FtZSBleGFtcGxlIGluIEphdmE6CgpgYGBqYXZhCkBTcHJpbmdCb290VGVzdApwdWJsaWMgY2xhc3MgU3BlY2lmaWNhdGlvblRlc3QgewoKICBAQXV0b3dpcmVkCiAgcHJpdmF0ZSBBcHBsaWNhdGlvbkNvbnRleHQgc3ByaW5nQ29udGV4dDsKCiAgQFRlc3QKICBwdWJsaWMgdm9pZCBzcGVjaWZpY2F0aW9uX21hdGNoZXNfaW1wbGVtZW50YXRpb24oKSB7CiAgICBMaXN0PEZ1bmN0aW9uMTxFbmRwb2ludCwgQm9vbGVhbj4+IGZpbHRlcnMgPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgIGZpbHRlcnMuYWRkKFNwcmluZ0NvbnZlcnRlci5JR05PUkVfRVJST1JfRU5EUE9JTlQpOwoKICAgIExpc3Q8UmVwb3J0ZXI+IHJlcG9ydGVycyA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgcmVwb3J0ZXJzLmFkZChuZXcgQ29tbWFuZExpbmVSZXBvcnRlcigpKTsKCiAgICBuZXcgSGlrYWt1KAogICAgICAgICAgICBuZXcgT3BlbkFwaUNvbnZlcnRlcihQYXRocy5nZXQoIm9wZW5hcGkuanNvbiIpKSwKICAgICAgICAgICAgbmV3IFNwcmluZ0NvbnZlcnRlcihzcHJpbmdDb250ZXh0KSwKICAgICAgICAgICAgbmV3IEhpa2FrdUNvbmZpZygKICAgICAgICAgICAgICAgICAgICByZXBvcnRlcnMsCiAgICAgICAgICAgICAgICAgICAgZmlsdGVycwogICAgICAgICAgICApCiAgICApCiAgICAubWF0Y2goKTsKICB9Cn0KYGBgCgojIyBMaW1pdGF0aW9ucwpIaWtha3UgY2hlY2tzIHRoZSBpbXBsZW1lbnRhdGlvbiB3aXRoIHN0YXRpYyBjb2RlIGFuYWx5c2lzLiBTbyBldmVyeXRoaW5nIHRoYXQgaXMgaGlnaGx5IGR5bmFtaWMgaXMgbm90IGNvdmVyZWQgYnkgaGlrYWt1LiBUaGVyZSBtaWdodCBiZSBvdGhlciBsaWJyYXJpZXMgYW5kIGZyYW1ld29ya3MgdGhhdCBjYW4gY292ZXIgdGhlc2UgYXNwZWN0cyBieSBjaGVja2luZyB0aGUgYmVoYXZpb3IuCgojIyMgaHR0cCBzdGF0dXMgY29kZXMKRm9yIGltcGxlbWVudGF0aW9ucyB0aGUgc3RhdHVzIGNvZGVzIGFyZSB2ZXJ5IGR5bmFtaWMuIFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgdG8gc2V0IGEgaHR0cCBzdGF0dXMuIEZvciBleGFtcGxlIHVzaW5nIGEgYFJlc3BvbnNlRW50aXR5YCBvYmplY3QgaW4gc3ByaW5nIG9yIHVzaW5nIGFkZGl0aW9uYWwgZmlsdGVycyBhbmQgc28gb24uIFRoYXQncyB3aHkgaGlrYWt1IGRvZXMgbm90IHN1cHBvcnQgaHR0cCBzdGF0dXMgY29kZXMuCgojIyMgUmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0CkZvciBpbXBsZW1lbnRhdGlvbnMgYm90aCByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3RzIGFyZSBoaWdobHkgZHluYW1pYy4gRm9yIHJlc3BvbnNlIG9iamVjdHMgdGhlcmUgbWlnaHQgYmUgYSBnZW5lcmljIGBSZXNwb25zZUVudGl0eWAgYXMgd2VsbCBvciBpbnRlcmZhY2VzIHdpdGggZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBjYW4gYmUgdXNlZC4gSW4gYm90aCBjYXNlcyAocmVxdWVzdCBhbmQgcmVzcG9uc2UpIHRoZSBvYmplY3RzIGNhbiBiZSBhbHRlcmVkIGJ5IGEgc2VyaWFsaXphdGlvbiBsaWJyYXJ5IGFuZCB0aGVyZSBhIGxvdCBvZiBkaWZmZXJlbnQgbGlicyBvdXQgdGhlcmUuIFRoYXQncyB3aHkgaGlrYWt1IG5laXRoZXIgc3VwcG9ydHMgcmVxdWVzdCBub3IgcmVzcG9uc2Ugb2JqZWN0cy4KCiMjIE1vcmUgSW5mbwoKKiAqKkJsb2cgKGVuZ2xpc2gpOioqIFtTcG90dGluZyBtaXNtYXRjaGVzIGJldHdlZW4geW91ciBzcGVjIGFuZCB5b3VyIFJFU1QtQVBJIHdpdGggaGlrYWt1XShodHRwczovL2Jsb2cuY29kZWNlbnRyaWMuZGUvZW4vMjAxOS8wMy9zcG90LW1pc21hdGNoZXMtYmV0d2Vlbi15b3VyLXNwZWMtYW5kLXlvdXItcmVzdC1hcGkvKQoqICoqQmxvZyAoZ2VybWFuKToqKiBbIEFid2VpY2h1bmdlbiB6d2lzY2hlbiBTcGV6aWZpa2F0aW9uIHVuZCBSRVNULUFQSSBtaXQgaGlrYWt1IGVya2VubmVuXShodHRwczovL2Jsb2cuY29kZWNlbnRyaWMuZGUvMjAxOS8wMy9hYndlaWNodW5nZW4tendpc2NoZW4tcmVzdC1hcGktc3BlemlmaWthdGlvbi1lcmtlbm5lbi8pCiogKipTYW1wbGUgcHJvamVjdCoqIFtBIGNvbXBsZXRlIHNhbXBsZSBwcm9qZWN0XShodHRwczovL2dpdGh1Yi5jb20vY2MtamhyL2hpa2FrdS1zYW1wbGUpCg== readmeEtag: '"9552177ad0f534c779e456e00de9b84f2e23f7b9"' readmeLastModified: Thu, 19 Aug 2021 18:39:18 GMT repositoryId: 167929609 description: >- A library that tests if the implementation of a REST-API meets its specification. created: '2019-01-28T08:54:05Z' updated: '2024-08-30T16:00:25Z' language: Kotlin archived: false stars: 198 watchers: 8 forks: 19 owner: codecentric logo: https://avatars.githubusercontent.com/u/1009716?v=4 license: Apache-2.0 repoEtag: '"fdaa3f76dc61453c533f3d85405361d5865a8ab96a50d29d0b41e12f5cafc033"' repoLastModified: Fri, 30 Aug 2024 16:00:25 GMT foundInMaster: true id: 0724d08c486c3cc69b4e067f07cdabd8 - source: https://openapi.tools/ name: Tcases for OpenAPI category: Testing language: Java repository: https://github.com/cornutum/tcases/blob/master/tcases-openapi/readme.md source_description: >- Generates test cases directly from an OpenAPI v3 description of your API. Creates tests executable using various test frameworks. Bonus: Semantic linter reports elements that are inconsistent, superfluous, or dubious. v2: false v3: true repositoryMetadata: base64Readme: >- IyBUY2FzZXM6IEEgTW9kZWwtQmFzZWQgVGVzdCBDYXNlIEdlbmVyYXRvciAjCgpbIVtNYXZlbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYXZlbi00LjAuNS1ncmVlbi5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9dGNhc2VzLXNoZWxsKQpbIVtKYXZhZG9jXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmFkb2MtNC4wLjUtZ3JlZW4uc3ZnKV0oaHR0cHM6Ly9qYXZhZG9jLmlvL2RvYy9vcmcuY29ybnV0dW0udGNhc2VzL3RjYXNlcy1zaGVsbCkKCiMjIFdoYXQncyBOZXc/ICMjCiAgKiBUaGUgbGF0ZXN0IHZlcnNpb24gKFtUY2FzZXMgNC4wLjVdKFJlbGVhc2VOb3Rlcy5tZCM0MDUpKSBpcyBub3cgYXZhaWxhYmxlIGF0IHRoZSBNYXZlbiBDZW50cmFsIFJlcG9zaXRvcnkuCiAgICBTZWUgWypIb3cgVG8gRG93bmxvYWQgVGNhc2VzKl0oSG93VG9Eb3dubG9hZC5tZCkgZm9yIGRvd25sb2FkIGluc3RydWN0aW9ucy4KCiAgKiBIYXZpbmcgdHJvdWJsZSB3aXRoIFRjYXNlcz8gQ2hlY2sgb3V0IFt0aGVzZSB0aXBzXSguL1Ryb3VibGVzaG9vdGluZy1GQVFzLm1kKS4KCiAgKiBHb3QgYSBxdWVzdGlvbj8gTmVlZCBzb21lIGd1aWRhbmNlPyBTdGFydCBhIFtkaXNjdXNzaW9uXShodHRwczovL2dpdGh1Yi5jb20vQ29ybnV0dW0vdGNhc2VzL2Rpc2N1c3Npb25zKS4KCiMjIFdoYXQgRG9lcyBJdCBEbz8gIyMKClRjYXNlcyBpcyBhIHRvb2wgZm9yIGRlc2lnbmluZyB0ZXN0cy4gSXQgZG9lc24ndCBtYXR0ZXIgd2hhdCBraW5kIG9mIHN5c3RlbSB5b3UgYXJlIHRlc3RpbmcgLS0gVUksIGNvbW1hbmQgbGluZSwKW1JFU1QtZnVsIEFQSV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKSwgb3IgYmFja2VuZC4gIE5vciBkb2VzIGl0IG1hdHRlcgp3aGF0IGxldmVsIG9mIHRoZSBzeXN0ZW0geW91IGFyZSB0ZXN0aW5nIC0tIHVuaXQsIHN1YnN5c3RlbSwgb3IgZnVsbCBzeXN0ZW0uIFlvdSBjYW4gdXNlIFRjYXNlcyB0byBkZXNpZ24geW91ciB0ZXN0cyBpbiBhbnkgb2YKdGhlc2Ugc2l0dWF0aW9ucy4gV2l0aCBUY2FzZXMsIHlvdSBkZWZpbmUgdGhlIGlucHV0IHNwYWNlIGZvciB5b3VyIHN5c3RlbS11bmRlci10ZXN0IGFuZCB0aGUgbGV2ZWwgb2YgY292ZXJhZ2UgdGhhdCB5b3UKd2FudC4gVGhlbiBUY2FzZXMgZ2VuZXJhdGVzIGEgbWluaW1hbCBzZXQgb2YgdGVzdCBjYXNlcyB0aGF0IG1lZXRzIHlvdXIgcmVxdWlyZW1lbnRzLgoKVGNhc2VzIGlzIHByaW1hcmlseSBhIHRvb2wgZm9yIGJsYWNrLWJveCB0ZXN0IGRlc2lnbi4gRm9yIHN1Y2ggdGVzdHMsIHRoZSBjb25jZXB0IG9mICJjb3ZlcmFnZSIgaXMgZGlmZmVyZW50IGZyb20gc3RydWN0dXJhbAp0ZXN0aW5nIGNyaXRlcmlhIHN1Y2ggYXMgbGluZSBjb3ZlcmFnZSwgYnJhbmNoIGNvdmVyYWdlLCBldGMuIEluc3RlYWQsIFRjYXNlcyBpcyBndWlkZWQgYnkgY292ZXJhZ2Ugb2YgdGhlIGlucHV0IHNwYWNlIG9mIHlvdXIKc3lzdGVtLgoKVGNhc2VzIGdpdmVzIHlvdSBhIHdheSB0byBkZWZpbmUgdGhlIGlucHV0IHNwYWNlIGZvciB5b3VyIHN5c3RlbSBpbiBhIGZvcm0gdGhhdCBpcyBjb25jaXNlIGJ1dCBjb21wcmVoZW5zaXZlLiBUaGVuIFRjYXNlcyBhbGxvd3MKeW91IHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzIGluIHlvdXIgc2FtcGxlIHN1YnNldCBieSBzcGVjaWZ5aW5nIHRoZSBsZXZlbCBvZiBjb3ZlcmFnZSB5b3Ugd2FudC4gWW91IGNhbiBzdGFydCB3aXRoIGEKYmFzaWMgbGV2ZWwgb2YgY292ZXJhZ2UsIGFuZCBUY2FzZXMgd2lsbCBnZW5lcmF0ZSBhIHNtYWxsIHNldCBvZiB0ZXN0IGNhc2VzIHRoYXQgdG91Y2hlcyBldmVyeSBzaWduaWZpY2FudCBlbGVtZW50IG9mIHRoZSBpbnB1dApzcGFjZS4gVGhlbiB5b3UgY2FuIGltcHJvdmUgeW91ciB0ZXN0cyBieSBzZWxlY3RpdmVseSBhZGRpbmcgY292ZXJhZ2UgaW4gc3BlY2lmaWMgaGlnaC1yaXNrIGFyZWFzLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBzcGVjaWZ5CnBhaXJ3aXNlIGNvdmVyYWdlIG9yIGhpZ2hlci1vcmRlciBjb21iaW5hdGlvbnMgb2Ygc2VsZWN0ZWQgaW5wdXQgdmFyaWFibGVzLgoKIyMgSG93IERvZXMgSXQgV29yaz8gIyMKCkZpcnN0LCB5b3UgY3JlYXRlIGEgc3lzdGVtIGlucHV0IGRlZmluaXRpb24sIGEgZG9jdW1lbnQgdGhhdCBkZWZpbmVzIHlvdXIgc3lzdGVtIGFzIGEgc2V0IG9mIGZ1bmN0aW9ucy4gRm9yIGVhY2ggc3lzdGVtCmZ1bmN0aW9uLCB0aGUgc3lzdGVtIGlucHV0IGRlZmluaXRpb24gZGVmaW5lcyB0aGUgdmFyaWFibGVzIHRoYXQgY2hhcmFjdGVyaXplIHRoZSBmdW5jdGlvbiBpbnB1dCBzcGFjZS4gSWYgeW91IGFyZSB0ZXN0aW5nIGEgV2ViCnNlcnZpY2UgQVBJLCB5b3UgY2FuIGV2ZW4gW2dlbmVyYXRlIGEgc3lzdGVtIGlucHV0IGRlZmluaXRpb24gYXV0b21hdGljYWxseV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKQpmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbi4KClRoZW4sIHlvdSBjYW4gY3JlYXRlIGEgZ2VuZXJhdG9yIGRlZmluaXRpb24uIFRoYXQncyBhbm90aGVyIGRvY3VtZW50IHRoYXQgZGVmaW5lcyB0aGUgY292ZXJhZ2UgeW91IHdhbnQgZm9yIGVhY2ggc3lzdGVtCmZ1bmN0aW9uLiBUaGUgZ2VuZXJhdG9yIGRlZmluaXRpb24gaXMgb3B0aW9uYWwuIFlvdSBjYW4gc2tpcCB0aGlzIHN0ZXAgYW5kIHN0aWxsIGdldCBhIGJhc2ljIGxldmVsIG9mIGNvdmVyYWdlLgoKRmluYWxseSwgeW91IHJ1biBUY2FzZXMuIFRjYXNlcyBpcyBhIEphdmEgcHJvZ3JhbSB0aGF0IHlvdSBjYW4gcnVuIGZyb20gdGhlIGNvbW1hbmQgbGluZSBvciB1c2luZyB0aGUKW1RjYXNlcyBNYXZlbiBQbHVnaW5dKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL3RjYXNlcy1tYXZlbi1wbHVnaW4vKS4gVGhlIGNvbW1hbmQgbGluZSB2ZXJzaW9uIG9mIFRjYXNlcyBjb21lcyB3aXRoIGJ1aWx0LWluCnN1cHBvcnQgZm9yIHJ1bm5pbmcgdXNpbmcgYSBzaGVsbCBzY3JpcHQgb3IgYW4gYW50IHRhcmdldC4gVXNpbmcgeW91ciBpbnB1dCBkZWZpbml0aW9uIGFuZCB5b3VyIGdlbmVyYXRvciBkZWZpbml0aW9uLCBUY2FzZXMKZ2VuZXJhdGVzIGEgc3lzdGVtIHRlc3QgZGVmaW5pdGlvbi4gVGhlIHN5c3RlbSB0ZXN0IGRlZmluaXRpb24gaXMgYSBkb2N1bWVudCB0aGF0IGxpc3RzLCBmb3IgZWFjaCBzeXN0ZW0gZnVuY3Rpb24sIGEgc2V0IG9mIHRlc3QKY2FzZXMgdGhhdCBwcm92aWRlcyB0aGUgc3BlY2lmaWVkIGxldmVsIG9mIGNvdmVyYWdlLiBFYWNoIHRlc3QgY2FzZSBkZWZpbmVzIGEgc3BlY2lmaWMgdmFsdWUgZm9yIGV2ZXJ5IGZ1bmN0aW9uIGlucHV0CnZhcmlhYmxlLiBUY2FzZXMgZ2VuZXJhdGVzIG5vdCBvbmx5IHZhbGlkIGlucHV0IHZhbHVlcyB0aGF0IGRlZmluZSBzdWNjZXNzZnVsIHRlc3QgY2FzZXMgYnV0IGFsc28gaW52YWxpZCB2YWx1ZXMgZm9yIHRoZSB0ZXN0cwpjYXNlcyB0aGF0IGFyZSBuZWVkZWQgdG8gdmVyaWZ5IGV4cGVjdGVkIGVycm9yIGhhbmRsaW5nLgoKT2YgY291cnNlLCB0aGUgc3lzdGVtIHRlc3QgZGVmaW5pdGlvbiBpcyBub3Qgc29tZXRoaW5nIHlvdSBjYW4gZXhlY3V0ZSBkaXJlY3RseS4gKFVubGVzcyBpdCB3YXMKW2Rlcml2ZWQgYXV0b21hdGljYWxseSBmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbl0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI2hvdy1kby15b3UtcnVuLWdlbmVyYXRlZC1hcGktdGVzdC1jYXNlcykhKQpCdXQgaXQgZm9sbG93cyBhIHdlbGwtZGVmaW5lZCBzY2hlbWEsIHdoaWNoIG1lYW5zIHlvdSBjYW4gdXNlIGEgdmFyaWV0eSBvZiB0cmFuc2Zvcm1hdGlvbiB0b29scyB0byBjb252ZXJ0IGl0IGludG8gYSBmb3JtIHRoYXQKaXMgc3VpdGFibGUgZm9yIHRlc3RpbmcgeW91ciBzeXN0ZW0uIEZvciBleGFtcGxlLCBUY2FzZXMgY29tZXMgd2l0aCBhIGJ1aWx0LWluIHRyYW5zZm9ybWVyIHRoYXQgY29udmVydHMgYSBzeXN0ZW0gdGVzdApkZWZpbml0aW9uIGludG8gYSBKYXZhIHNvdXJjZSBjb2RlIHRlbXBsYXRlIGZvciBhIEpVbml0IG9yIFRlc3RORyB0ZXN0IGNsYXNzLgoKIyMgR2V0IFN0YXJ0ZWQhICMjCgogICogKipUaGUgTG93ZG93bioqCiAgICAqIFtUY2FzZXM6IFRoZSBDb21wbGV0ZSBHdWlkZV0oLi9UY2FzZXMtR3VpZGUubWQjdGNhc2VzLXRoZS1jb21wbGV0ZS1ndWlkZSkKICAgICogW1RjYXNlcyBmb3IgT3BlbkFQSV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKTogVGVzdGluZyBhIFJFU1QtZnVsIEFQST8gR2VuZXJhdGUgdGVzdCBjYXNlcyBkaXJlY3RseSBmcm9tIHlvdXIgT3BlbkFQSSB2MyBkZWZpbml0aW9uLgogICAgKiBbVGhlIFRjYXNlcyBNYXZlbiBQbHVnaW5dKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL3RjYXNlcy1tYXZlbi1wbHVnaW4vKQoKICAqICoqSGVscGZ1bCBHdWlkZXMqKgogICAgKiBbSG93IFRvIERvd25sb2FkIFVzaW5nIE1hdmVuXShIb3dUb0Rvd25sb2FkLm1kKQogICAgKiBbSG93IFRvIFNldHVwIGEgVGNhc2VzIFdlYiBTZXJ2aWNlXSguL1RjYXNlcy1XZWItU2VydmljZS5tZCkKICAgICogW1VzaW5nIFRoZSBUY2FzZXMgQVBJXSguL1VzaW5nLVRjYXNlcy1BUEkubWQpCiAgICAqIFtUcm91Ymxlc2hvb3RpbmcgRkFRXSguL1Ryb3VibGVzaG9vdGluZy1GQVFzLm1kI3Ryb3VibGVzaG9vdGluZy1mYXFzKQogICAgKiBbUmVsZWFzZSBOb3Rlc10oUmVsZWFzZU5vdGVzLm1kKQoKICAqICoqTW9yZSBJbmZvKioKICAgICogW01vZGVsLURyaXZlbiBUZXN0aW5nIFVzaW5nIFRjYXNlc10oTW9kZWxEcml2ZW5UZXN0aW5nRm9yQWdpbGVUZWFtcy5tZCkKICAgICogSmF2YWRvYzogW1RjYXNlcyBBUEldKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL2FwaS9pbmRleC5odG1sKQoKIyMgQ29udHJpYnV0b3JzICMjCgpUaGFua3MgdG8gdGhlIGZvbGxvd2luZyBwZW9wbGUsIHdobyBoYXZlIGNvbnRyaWJ1dGVkIHNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBUY2FzZXMuCgogICogW0tlcnJ5IEtpbWJyb3VnaF0oaHR0cHM6Ly9naXRodWIuY29tL2tlcnJ5a2ltYnJvdWdoKSAocHJvamVjdCBmb3VuZGVyKQogICogW0p1Z2xhcl0oaHR0cHM6Ly9naXRodWIuY29tL2p1Z2xhcikKICAqIFtUaGliYXVsdCBLcnVzZV0oaHR0cHM6Ly9naXRodWIuY29tL3RrcnVzZSkK readmeEtag: '"f230676de22e22cd64556f829daff2ce7cc58112"' readmeLastModified: Sat, 06 Apr 2024 16:58:48 GMT repositoryId: 32223373 description: A model-based test case generator created: '2015-03-14T17:22:38Z' updated: '2024-08-10T02:42:35Z' language: Java archived: false stars: 215 watchers: 20 forks: 52 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT repoEtag: '"221153f820cc6cbf4fe0bd4ad9a4e694a12f4718779d7a0ef7c06426d65fc534"' repoLastModified: Sat, 10 Aug 2024 02:42:35 GMT foundInMaster: true id: 64dc602f01798a9a39aba18c09d655ae - source: https://openapi.tools/ name: StackHawk HawkScan category: Security language: SaaS repository: https://github.com/stackhawk source_description: >- StackHawk is an application vulnerability scanner purpose built for developers to use in the DevOps pipeline. It leverages a provided OpenAPI v2 or v3 spec file for route discovery and enhanced scanning. link: https://stackhawk.com/ v2: true v3: true foundInMaster: true id: d27194a62778c331d662fae462dc8045 - source: https://openapi.tools/ name: FireTail category: Security language: SaaS repository: https://github.com/firetail-io source_description: >- FireTail provides discovery, logging, posture management and in-line enforcement of APIs using OpenAPI. API governance is backed by cloud provider integrations and a suite of open-source application libraries. link: https://www.firetail.io/ v2: true v3: true id: cbc88089f856e67eed142049e8a38063 foundInMaster: true - source: https://openapi.tools/ name: 42crunch category: Security language: SaaS source_description: >- A unique set of integrated API security tools that allow discovery, remediation of OpenAPI vulnerabilities and runtime protection against API attacks. link: https://42crunch.com/ v2: true v3: true foundInMaster: true id: 1b7c824e66c86452d1843ccac1465b71 - source: https://openapi.tools/ name: openapi-fuzzer category: - Security - Parsers language: Rust source_description: >- Based on OpenAPI specification, openapi-fuzzer provides random data as inputs to the API endpoints in order to find bugs. link: https://github.com/matusf/openapi-fuzzer v2: false v3: true foundInMaster: true repository: https://github.com/matusf/openapi-fuzzer repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIGZ1enplcgoKIVtjaV0oaHR0cHM6Ly9naXRodWIuY29tL21hdHVzZi9vcGVuYXBpLWZ1enplci9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnKQoKQmxhY2stYm94IGZ1enplciB0aGF0IGZ1enplcyBBUElzIGJhc2VkIG9uIFtPcGVuQVBJIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uLykuIEFsbCB5b3UgbmVlZCB0byBkbyBpcyB0byBzdXBwbHkgVVJMIG9mIHRoZSBBUEkgYW5kIGl0cyBzcGVjaWZpY2F0aW9uLiBGaW5kIGJ1Z3MgZm9yIGZyZWUhCgohW2ltYWdlXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xODIyODk5NS8yMjU0MTMzMTUtZWFiMDhkZjItZWQ1Ni00YjdhLThjOGEtMDI3YzE4ZDlhMTA2LnBuZykKCiMjIEZpbmRpbmdzCgpUaGUgZnV6emVyIGhhcyBiZWVuIHVzZWQgdG8gZmluZCBidWdzIGluIG51bWVyb3VzIHNvZnR3YXJlLiBTb21lIG9mIHRoZSB3ZWxsLWtub3duIGZ1enplZCBzb2Z0d2FyZSBpbmNsdWRlW14xXToKCjxkZXRhaWxzPjxzdW1tYXJ5PjxiPkt1YmVybmV0ZXM8L2I+PC9zdW1tYXJ5PgoKLSBba3ViZW5ldGVzIzEwMTM1MF0oaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva3ViZXJuZXRlcy9pc3N1ZXMvMTAxMzUwKQotIFtrdWJlbmV0ZXMjMTAxMzQ4XShodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rdWJlcm5ldGVzL2lzc3Vlcy8xMDEzNDgpCi0gW2t1YmVuZXRlcyMxMDEzNTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2t1YmVybmV0ZXMvaXNzdWVzLzEwMTM1NSkKCjwvZGV0YWlscz4KCjxkZXRhaWxzPjxzdW1tYXJ5PjxiPkdpdGVhPC9iPjwvc3VtbWFyeT4KCi0gW2dpdGVhIzE1MzU3XShodHRwczovL2dpdGh1Yi5jb20vZ28tZ2l0ZWEvZ2l0ZWEvaXNzdWVzLzE1MzU3KQotIFtnaXRlYSMxNTM1Nl0oaHR0cHM6Ly9naXRodWIuY29tL2dvLWdpdGVhL2dpdGVhL2lzc3Vlcy8xNTM1NikKLSBbZ2l0ZWEjMTUzNDZdKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1naXRlYS9naXRlYS9pc3N1ZXMvMTUzNDYpCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz48c3VtbWFyeT48Yj5WYXVsdDwvYj48L3N1bW1hcnk+CgotIFt2YXVsdCMxMTMxMF0oaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC92YXVsdC9pc3N1ZXMvMTEzMTApCi0gW3ZhdWx0IzExMzExXShodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3ZhdWx0L2lzc3Vlcy8xMTMxMSkKLSBbdmF1bHQjMTEzMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdmF1bHQvaXNzdWVzLzExMzEzKQoKPC9kZXRhaWxzPgoKVGhlIGNhdGVnb3J5IG9mIGJ1Z3MgZGlmZmVyLCBidXQgc29tZSBvZiB0aGUgY29tbW9uIGFyZSBwYXJzaW5nIGJ1Z3MsIGludmFsaWQgZm9ybWF0IGJ1Z3MgYW5kIHF1ZXJ5aW5nIG5vbi1leGlzdGVudCBlbnRpdGllcy4gKipJZiB5b3UgaGF2ZSBmb3VuZCBidWdzIHdpdGggdGhpcyBmdXp6ZXIsIHBsZWFzZSByZWFjaCBvdXQgdG8gbWUuIEkgd291bGQgbG92ZSB0byBoZWFyIGZyb20geW91LioqIEZlZWwgZnJlZSB0byBzdWJtaXQgYSBQUiBhbmQgYWRkIHlvdXIgZmluZGluZyB0byB0aGUgbGlzdCBhYm92ZS4KCiMjIEJ1aWxkaW5nICYgaW5zdGFsbGluZwoKIyMjIEZyb20gY3JhdGVzLmlvCgpUbyBidWlsZCB0aGUgZnV6emVyLCB5b3Ugd2lsbCBuZWVkIHRvIGhhdmUgW3J1c3QgaW5zdGFsbGVkXShodHRwczovL3d3dy5ydXN0LWxhbmcub3JnL2xlYXJuL2dldC1zdGFydGVkKS4KCmBgYHNoCmNhcmdvIGluc3RhbGwgb3BlbmFwaS1mdXp6ZXIKYGBgCgojIyMgRnJvbSBzb3VyY2UKCmBgYHNoCmdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTptYXR1c2Yvb3BlbmFwaS1mdXp6ZXIuZ2l0CmNkIG9wZW5hcGktZnV6emVyCgojIEluc3RhbGwgdG8gdGhlICRQQVRICmNhcmdvIGluc3RhbGwgLS1wYXRoIC4KCiMgT3IgYnVpbGQgaW5zaWRlIHRoZSByZXBvCmNhcmdvIGJ1aWxkIC0tcmVsZWFzZQpgYGAKCiMjIyBVc2luZyBjb250YWluZXJzCgpgYGBzaApwb2RtYW4gcHVsbCBnaGNyLmlvL21hdHVzZi9vcGVuYXBpLWZ1enplcgpgYGAKCiMjIFVzYWdlCgpBZnRlciBpbnN0YWxsYXRpb24geW91IHdpbGwgaGF2ZSB0aGUgYG9wZW5hcGktZnV6emVyYCBiaW5hcnkgYXZhaWxhYmxlIHRvIHlvdSwgd2hpY2ggb2ZmZXJzIHR3byBzdWJjb21tYW5kcyAtIGBydW5gIGFuZCBgcmVzZW5kYC4gIFRoZSBgcnVuYCBzdWJjb21tYW5kIHdpbGwgZnV6eiB0aGUgQVBJIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcmVwb3J0IGFueSBmaW5kaW5ncy4gQWxsIGZpbmRpbmdzIHdpbGwgYmUgc3RvcmVkIGluIGEgSlNPTiBmb3JtYXQgaW4gYSBgcmVzdWx0c2AgZGlyZWN0b3J5ICh0aGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IGNhbiBiZSBzcGVjaWZpZWQgYnkgYC0tcmVzdWx0cy1kaXJgIGZsYWcpLgoKSWYgdGhlIGZ1enplciBmaW5kcyBhIGJ1ZyBpdCB3aWxsIHNhdmUgdGhlIHNlZWQgdGhhdCBsZWFkcyB0byB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgcGF5bG9hZCB0cmlnZ2VyaW5nIHRoZSBidWcuIFRob3NlIHNlZWRzIGFyZSBzYXZlZCBpbiBhIHJlZ3Jlc3Npb25zIGZpbGUgY2FsbGVkIGBvcGVuYXBpLWZ1enplci5yZWdyZXNzaW9uc2AuIFRoZSBzZWVkcyB3aWxsIGJlIHVzZWQgaW4gdGhlIG5leHQgcnVucyBvZiB0aGUgZnV6emVyIHRvIGNoZWNrIGlmIHRoZSBidWcgcGVyc2lzdHMuIFlvdSBzaGFsbCBzYXZlIGl0IGFsb25nc2lkZSB5b3VyIHByb2plY3QuCgpXaGVuIHlvdSBhcmUgZG9uZSB3aXRoIGZ1enppbmcsIHlvdSBjYW4gdXNlIGBvcGVuYXBpLWZ1enplciByZXNlbmRgIHRvIHJlc2VuZCBwYXlsb2FkcyB0aGF0IHRyaWdnZXJlZCBidWdzIGFuZCBleGFtaW5lIHRoZSBjYXVzZSBpbiBkZXB0aC4KCk9wZW5BUEkgZnV6emVyIHN1cHBvcnRzIHZlcnNpb24gMyBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIFlBTUwgb3IgSlNPTiBmb3JtYXQuIFlvdSBjYW4gY29udmVydCBvbGRlciB2ZXJzaW9ucyBhdCBbZWRpdG9yLnN3YWdnZXIuaW9dKGh0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vKS4KCiMjIyBUaXBzCgotIFdoZW4gdGhlIGZ1enplciByZWNlaXZlcyBhbiB1bmV4cGVjdGVkIHN0YXR1cyBjb2RlLCBpdCB3aWxsIHJlcG9ydCBpdCBhcyBhIGZpbmRpbmcuIEhvd2V2ZXIsIG1hbnkgQVBJcyBkbyBub3Qgc3BlY2lmeSBjbGllbnQgZXJyb3Igc3RhdHVzIGNvZGVzIGluIHRoZSBzcGVjaWZpY2F0aW9uLiBUbyBtaW5pbWl6ZSBmYWxzZSBwb3NpdGl2ZSBmaW5kaW5ncyBpZ25vcmUgc3RhdHVzIGNvZGVzIHRoYXQgeW91IGFyZSBub3QgaW50ZXJlc3RlZCBpbiB3aXRoIGAtaWAgZmxhZy4gSXQgaXMgYWR2aXNlZCB0byBmdXp6IGl0IGluIHR3byBzdGFnZXMuIEZpcnN0bHksIHJ1biB0aGUgZnV6emVyIHdpdGhvdXQgYC1pYCBmbGFnLiBUaGVuIGNoZWNrIHRoZSBgcmVzdWx0c2AgZm9sZGVyIGZvciB0aGUgcmVwb3J0ZWQgZmluZGluZ3MuIElmIHRoZXJlIGFyZSByZXBvcnRzIGZyb20gc3RhdHVzIGNvZGVzIHlvdSBkbyBub3QgY2FyZSBhYm91dCwgYWRkIHRoZW0gdmlhIGAtaWAgZmxhZyBhbmQgcmVydW4gdGhlIGZ1enplci4KLSBNb3N0IEFQSXMgdXNlIHNvbWUgYmFzZSBwcmVmaXggZm9yIGVuZHBvaW50cyBsaWtlIGAvdjFgIG9yIGAvYXBpYCwgaG93ZXZlciwgdGhlIHNwZWNpZmljYXRpb25zIGFyZSBzb21ldGltZXMgd3JpdHRlbiB3aXRob3V0IGl0LiBEbyBub3QgZm9yZ2V0IHRvICoqaW5jbHVkZSB0aGUgcGF0aCBwcmVmaXggaW4gdGhlIHVybCoqLgotIFlvdSBtYXkgYWRkIGFuIGV4dHJhIGhlYWRlciB3aXRoIGAtSGAgZmxhZy4gSXQgbWF5IGJlIHVzZWZ1bCB3aGVuIHlvdSB3b3VsZCBsaWtlIHRvIGluY3JlYXNlIGNvdmVyYWdlIGJ5IHByb3ZpZGluZyBzb21lIHNvcnQgb2YgYXV0aG9yaXphdGlvbi4gWW91IGNhbiB1c2UgdGhlIGAtSGAgZmxhZyB0byBhZGQgY29va2llcyB0b28uIGUuZy4gYC1IICJDb29raWU6IEE9MTsiYC4gVXNlIGEgc2luZ2xlIGAtSGAgZmxhZyB3aGVuIGFkZGluZyBtdWx0aXBsZSBjb29raWVzIGFzIHdlbGwuIGUuZy4gYC1IICJDb29raWU6IEE9MTsgQj0yOyBDPTM7ImAuCi0gQ3VycmVudGx5LCB0aGUgZnV6emVyIG1ha2VzIDI1NiByZXF1ZXN0cyBwZXIgZW5kcG9pbnQuIElmIGFsbCByZWNlaXZlZCByZXNwb25zZXMgYXJlIGV4cGVjdGVkLCBpdCBkZWNsYXJlcyB0aGUgZW5kcG9pbnQgYXMgb2sgYW5kIGNvbnRpbnVlcyB0byBmdXp6IHRoZSBuZXh0IG9uZS4gWW91IGNhbiBhZGp1c3QgdGhpcyBudW1iZXIgYnkgc2V0dGluZyBhIGAtLW1heC10ZXN0LWNhc2UtY291bnRgIGZsYWcuCi0gVG8gZGlzYWJsZSB0aGUgdmVyaWZpY2F0aW9uIG9mIFRMUyBjZXJ0aWZpY2F0ZXMgYW5kIHRodXMgdXNlLCBmb3IgZXhhbXBsZSwgc2VsZi1zaWduZWQgY2VydGlmaWNhdGVzLCB5b3UgY2FuIHVzZSB0aGUgYC0tc2tpcC10bHMtdmVyaWZ5YCBmbGFnLgotIEJ5IGRlZmF1bHQsIHRoZSBmdXp6ZXIgdXNlcyByYXRlIGxpbWl0aW5nLiBJZiBpdCByZWNlaXZlcyBhbiBIVFRQIHN0YXR1cyBjb2RlIG9mIDQyOSBvciA1MDMsIGl0IHdpbGwgd2FpdCBmb3IgYSBudW1iZXIgb2Ygc2Vjb25kcyBzcGVjaWZpZWQgYnkgdGhlIGBSZXRyeS1BZnRlcmAgaGVhZGVyLiBJZiB0aGUgaGVhZGVyIGlzIG5vdCBwcmVzZW50LCBpdCB3aWxsIHVzZSBhbiBleHBvbmVudGlhbCBiYWNrb2ZmIGFsZ29yaXRobSB3aXRoIGEgc3RhcnRpbmcgdmFsdWUgb2YgMSBzZWNvbmQuIEFmdGVyIDEwIHVuc3VjY2Vzc2Z1bCByZXRyaWVzLCBmdXp6aW5nIG9mIHRoZSBlbmRwb2ludCBpcyBhYm9ydGVkLgoKYGBgY29uc29sZQokIG9wZW5hcGktZnV6emVyIHJ1biAtLWhlbHAKVXNhZ2U6IG9wZW5hcGktZnV6emVyIHJ1biAtcyA8c3BlYz4gLXUgPHVybD4gWy1pIDxpZ25vcmUtc3RhdHVzLWNvZGU+XSBbLUggPGhlYWRlcj5dIFstLW1heC10ZXN0LWNhc2UtY291bnQgPG1heC10ZXN0LWNhc2UtY291bnQ+XSBbLW8gPHJlc3VsdHMtZGlyPl0gWy0tc3RhdHMtZGlyIDxzdGF0cy1kaXI+XSBbLS1za2lwLXRscy12ZXJpZnldIFstLW5vLXJhdGUtbGltaXRpbmddCgpydW4gb3BlbmFwaS1mdXp6ZXIKCk9wdGlvbnM6CiAgLXMsIC0tc3BlYyAgICAgICAgcGF0aCB0byBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZQogIC11LCAtLXVybCAgICAgICAgIHVybCBvZiBhcGkgdG8gZnV6egogIC1pLCAtLWlnbm9yZS1zdGF0dXMtY29kZQogICAgICAgICAgICAgICAgICAgIHN0YXR1cyBjb2RlcyB0aGF0IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYXMgZmluZGluZwogIC1ILCAtLWhlYWRlciAgICAgIGFkZGl0aW9uYWwgaGVhZGVyIHRvIHNlbmQKICAtLW1heC10ZXN0LWNhc2UtY291bnQKICAgICAgICAgICAgICAgICAgICBtYXhpbXVtIG51bWJlciBvZiB0ZXN0IGNhc2VzIHRoYXQgd2lsbCBydW4gZm9yIGVhY2gKICAgICAgICAgICAgICAgICAgICBjb21iaW5hdGlvbiBvZiBlbmRwb2ludCBhbmQgbWV0aG9kIChkZWZhdWx0OiAyNTYpCiAgLW8sIC0tcmVzdWx0cy1kaXIgZGlyZWN0b3J5IGZvciByZXN1bHRzIHdpdGggbWluaW1hbCBnZW5lcmF0ZWQgcGF5bG9hZCB1c2VkCiAgICAgICAgICAgICAgICAgICAgZm9yIHJlc2VuZGluZyByZXF1ZXN0cyAoZGVmYXVsdDogcmVzdWx0cykuCiAgLS1zdGF0cy1kaXIgICAgICAgZGlyZWN0b3J5IGZvciByZXF1ZXN0IHRpbWVzIHN0YXRpc3RpY3MuIGlmIG5vIHZhbHVlIGlzCiAgICAgICAgICAgICAgICAgICAgc3VwcGxpZWQsIHN0YXRpc3RpY3Mgd2lsbCBub3QgYmUgc2F2ZWQKICAtLXNraXAtdGxzLXZlcmlmeSBkaXNhYmxlIHZlcmlmaWNhdGlvbiBvZiBUTFMgY2VydGlmaWNhdGVzCiAgLS1uby1yYXRlLWxpbWl0aW5nCiAgICAgICAgICAgICAgICAgICAgZG8gbm90IHVzZSByYXRlIGxpbWl0aW5nCiAgLS1oZWxwICAgICAgICAgICAgZGlzcGxheSB1c2FnZSBpbmZvcm1hdGlvbgoKJCBvcGVuYXBpLWZ1enplciBydW4gLXMgLi9zcGVjLnlhbWwgLXUgaHR0cDovLzEyNy4wLjAuMTo4MjAwL3YxLyAtaSA0MDQgLWkgNDAwIC1IICAiQXV0aG9yaXphdGlvbjogQmFzaWMgUVd4aFpHUnBianB2Y0dWdUlITmxjMkZ0WlE9PSIKYGBgCgojIyMgUmVwbGF5aW5nIGZpbmRpbmdzCgpXaGVuIHlvdSBhcmUgZG9uZSBmdXp6aW5nIHlvdSBjYW4gcmVwbGF5IHRoZSBmaW5kaW5ncy4gQWxsIGZpbmRpbmdzIGFyZSBzdG9yZWQgaW4gdGhlIGByZXN1bHRzYCBmb2xkZXIuIE5hbWUgb2YgZWFjaCBmaWxlIGNvbnNpc3RzIG9mIGNvbmNhdGVuYXRlZCBlbmRwb2ludCwgSFRUUCBtZXRob2QgYW5kIHJlY2VpdmVkIHN0YXR1cyBjb2RlLiBUbyByZXNlbmQgdGhlIHNhbWUgcGF5bG9hZCB0byBBUEksIHlvdSBuZWVkIHRvIHJ1biBgb3BlbmFwaS1mdXp6ZXIgcmVzZW5kYCBhbmQgc3BlY2lmeSBhIHBhdGggdG8gdGhlIGZpbmRpbmcgZmlsZSBhcyBhbiBhcmd1bWVudCBhbmQgYSB1cmwgb2YgdGhlIGFwaS4gWW91IGNhbiBvdmVyd3JpdGUgdGhlIGhlYWRlcnMgd2l0aCBgLUhgIGZsYWcgYXMgd2VsbCwgd2hpY2ggaXMgdXNlZnVsLCB3aGVuIHlvdSBuZWVkIGF1dGhvcml6YXRpb24uCgpgYGBjb25zb2xlCiQgbHMgLTEgcmVzdWx0cy8KYXBpLXYxLWNvbXBvbmVudHN0YXR1c2VzLXtuYW1lfS1HRVQtNTAwLmpzb24KYXBpLXYxLW5hbWVzcGFjZXMte25hbWVzcGFjZX0tY29uZmlnbWFwcy1HRVQtNTAwLmpzb24KYXBpLXYxLW5hbWVzcGFjZXMte25hbWVzcGFjZX0tZW5kcG9pbnRzLUdFVC01MDAuanNvbgphcGktdjEtbmFtZXNwYWNlcy17bmFtZXNwYWNlfS1ldmVudHMtR0VULTUwMC5qc29uCmFwaS12MS1uYW1lc3BhY2VzLXtuYW1lc3BhY2V9LWxpbWl0cmFuZ2VzLUdFVC01MDAuanNvbgphcGktdjEtbmFtZXNwYWNlcy17bmFtZXNwYWNlfS1wZXJzaXN0ZW50dm9sdW1lY2xhaW1zLUdFVC01MDAuanNvbgphcGktdjEtbmFtZXNwYWNlcy17bmFtZXNwYWNlfS1wb2RzLUdFVC01MDAuanNvbgphcGktdjEtbmFtZXNwYWNlcy17bmFtZXNwYWNlfS1wb2R0ZW1wbGF0ZXMtR0VULTUwMC5qc29uCmFwaS12MS1uYW1lc3BhY2VzLXtuYW1lc3BhY2V9LXJlcGxpY2F0aW9uY29udHJvbGxlcnMtR0VULTUwMC5qc29uCmFwaS12MS1uYW1lc3BhY2VzLXtuYW1lc3BhY2V9LXJlc291cmNlcXVvdGFzLUdFVC01MDAuanNvbgphcGktdjEtbmFtZXNwYWNlcy17bmFtZXNwYWNlfS1zZWNyZXRzLUdFVC01MDAuanNvbgphcGktdjEtbmFtZXNwYWNlcy17bmFtZXNwYWNlfS1zZXJ2aWNlYWNjb3VudHMtR0VULTUwMC5qc29uCmFwaS12MS1uYW1lc3BhY2VzLXtuYW1lc3BhY2V9LXNlcnZpY2VzLUdFVC01MDAuanNvbgphcGktdjEtd2F0Y2gtbmFtZXNwYWNlcy17bmFtZX0tR0VULTUwMC5qc29uCi4uLgoKJCBvcGVuYXBpLWZ1enplciByZXNlbmQgLS1oZWxwClVzYWdlOiBvcGVuYXBpLWZ1enplciByZXNlbmQgPGZpbGU+IFstSCA8aGVhZGVyLi4uPl0gLXUgPHVybD4KCnJlc2VuZCBwYXlsb2FkIGdlbmVyZXRlZCBieSBmdXp6ZXIKClBvc2l0aW9uYWwgQXJndW1lbnRzOgogIGZpbGUgICAgICAgICAgICAgIHBhdGggdG8gcmVzdWx0IGZpbGUgZ2VuZXJhdGVkIGJ5IGZ1enplcgoKT3B0aW9uczoKICAtSCwgLS1oZWFkZXIgICAgICBleHRyYSBoZWFkZXIKICAtdSwgLS11cmwgICAgICAgICB1cmwgb2YgYXBpCiAgLS1oZWxwICAgICAgICAgICAgZGlzcGxheSB1c2FnZSBpbmZvcm1hdGlvbgoKJCBvcGVuYXBpLWZ1enplciByZXNlbmQgLS11cmwgaHR0cHM6Ly9taW5pa3ViZWNhOjg0NDMgcmVzdWx0cy9hcGktdjEtY29tcG9uZW50c3RhdHVzZXMtXHtuYW1lXH0tR0VULTUwMC5qc29uIC1IICJBdXRob3JpemF0aW9uOiBCZWFyZXIgJEtVQkVfVE9LRU4iIHwganEKNTAwIChJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IpCnsKICAia2luZCI6ICJTdGF0dXMiLAogICJhcGlWZXJzaW9uIjogInYxIiwKICAibWV0YWRhdGEiOiB7fSwKICAic3RhdHVzIjogIkZhaWx1cmUiLAogICJtZXNzYWdlIjogIkNvbXBvbmVudCBub3QgZm91bmQ6IOGKijAiLAogICJjb2RlIjogNTAwCn0KYGBgCgpbXjFdOiBub3QgYWxsIGZvdW5kIGJ1Z3MgYXJlIGxpbmtlZAo= readmeEtag: '"c9b6f61b75afa2e8df985085f45893790dd4841b"' readmeLastModified: Mon, 16 Oct 2023 16:56:16 GMT repositoryId: 324014659 description: >- Black-box fuzzer that fuzzes APIs based on OpenAPI specification. Find bugs for free! created: '2020-12-23T22:33:38Z' updated: '2024-09-04T08:26:25Z' language: Rust archived: false stars: 529 watchers: 8 forks: 22 owner: matusf logo: https://avatars.githubusercontent.com/u/18228995?v=4 license: AGPL-3.0 repoEtag: '"8f64cbbcfbf4aec3b27c2ad9f422f8df28206ea2cebbe5bd2d0d03ac41eda2c2"' repoLastModified: Wed, 04 Sep 2024 08:26:25 GMT id: 9e0191ba47403298459b30242dbfe9ad - source: https://openapi.tools/ name: cats category: - Security - Server Implementations language: Java source_description: >- CATS is a REST API Fuzzer and negative testing tool for OpenAPI endpoints. CATS automatically generates, runs and reports tests with minimum configuration and no coding effort. Tests are self-healing and do not require maintenance. link: https://github.com/Endava/cats v2: true v3: true v3_1: true repository: https://github.com/endava/cats id: a6ff4bc9abd488fc56bf9b04747b4051 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CjxwaWN0dXJlPgogIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0VuZGF2YS9jYXRzL21hc3Rlci9pbWFnZXMvY2F0c19sb2dvX2Rhcmsuc3ZnIiAvPgogIDxpbWcgYWx0PSJDQVRTIGxvZ28iIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0VuZGF2YS9jYXRzL21hc3Rlci9pbWFnZXMvY2F0c19sb2dvX2xpZ2h0LnN2ZyIgd2lkdGg9IjQwMCI+CjwvcGljdHVyZT4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KCiFbQ0ldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL0VuZGF2YS9jYXRzL21haW4ueW1sP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1naXQmbG9nb0NvbG9yPXdoaXRlKQpbIVtDb21taXRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9jb21taXQtYWN0aXZpdHkvbS9FbmRhdmEvY2F0cz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289Z2l0JmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9FbmRhdmEvY2F0cy9wdWxzZSkKCgpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jYXRzJm1ldHJpYz1hbGVydF9zdGF0dXMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNhdHMpClshW1RlY2huaWNhbCBEZWJ0XShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jYXRzJm1ldHJpYz1zcWFsZV9pbmRleCldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9Y2F0cykKWyFbQ292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNhdHMmbWV0cmljPWNvdmVyYWdlKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jYXRzKQpbIVtCdWdzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jYXRzJm1ldHJpYz1idWdzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jYXRzKQpbIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2F0cyZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNhdHMpCgo8L3A+Cgo+IENBVFMgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgYXQgW2h0dHBzOi8vZW5kYXZhLmdpdGh1Yi5pby9jYXRzL10oaHR0cHM6Ly9lbmRhdmEuZ2l0aHViLmlvL2NhdHMvKQoKKipSRVNUIEFQSSBmdXp6ZXIgYW5kIG5lZ2F0aXZlIHRlc3RpbmcgdG9vbC4gUnVuIHRob3VzYW5kcyBvZiBzZWxmLWhlYWxpbmcgQVBJIHRlc3RzIHdpdGhpbiBtaW51dGVzIHdpdGggbm8gY29kaW5nIGVmZm9ydCEqKgoKLSAqKkNvbXByZWhlbnNpdmUqKjogdGVzdHMgYXJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIGEgbGFyZ2UgbnVtYmVyIHNjZW5hcmlvcyBhbmQgY292ZXIgKipldmVyeSoqIGZpZWxkIGFuZCBoZWFkZXIKLSAqKkludGVsbGlnZW50Kio6IHRlc3RzIGFyZSBnZW5lcmF0ZWQgYmFzZWQgb24gZGF0YSB0eXBlcyBhbmQgY29uc3RyYWludHM7IGVhY2ggRnV6emVyIGhhcyBzcGVjaWZpYyBleHBlY3RhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSBzY2VuYXJpbyB1bmRlciB0ZXN0Ci0gKipIaWdobHkgQ29uZmlndXJhYmxlKio6IGhpZ2ggYW1vdW50IG9mIGN1c3RvbWl6YXRpb246IHlvdSBjYW4gZmlsdGVyIHNwZWNpZmljIEZ1enplcnMsIEhUVFAgcmVzcG9uc2UgY29kZXMsIEhUVFAgbWV0aG9kcywgcmVxdWVzdCBwYXRocywgcHJvdmlkZSBidXNpbmVzcyBjb250ZXh0IGFuZCBhIGxvdCBtb3JlCi0gKipTZWxmLUhlYWxpbmcqKjogYXMgdGVzdHMgYXJlIGdlbmVyYXRlZCwgYW55IE9wZW5BUEkgc3BlYyBjaGFuZ2UgaXMgcGlja2VkIHVwIGF1dG9tYXRpY2FsbHkKLSAqKlNpbXBsZSB0byBMZWFybioqOiBmbGF0IGxlYXJuaW5nIGN1cnZlLCB3aXRoIGludHVpdGl2ZSBjb25maWd1cmF0aW9uIGFuZCBzeW50YXgKLSAqKkZhc3QqKjogYXV0b21hdGljIHByb2Nlc3MgZm9yIHdyaXRlLCBydW4gYW5kIHJlcG9ydCB0ZXN0cyB3aGljaCBjb3ZlcnMgdGhvdXNhbmRzIG9mIHNjZW5hcmlvcyB3aXRoaW4gbWludXRlcwoKPHAgYWxpZ249ImNlbnRlciI+PC9wPgoKPiBTaG9ydCBvbiB0aW1lPyBDaGVjayBvdXQgdGhlIFsxLW1pbnV0ZSBRdWljayBTdGFydCBHdWlkZV0oaHR0cHM6Ly9lbmRhdmEuZ2l0aHViLmlvL2NhdHMvZG9jcy9pbnRybykhCgojIE92ZXJ2aWV3CkJ5IHVzaW5nIGEgc2ltcGxlIGFuZCBtaW5pbWFsIHN5bnRheCwgd2l0aCBhIGZsYXQgbGVhcm5pbmcgY3VydmUsIENBVFMgKCoqQyoqb250cmFjdCAqKkEqKlBJICoqVCoqZXN0aW5nIGFuZCAqKlMqKmVjdXJpdHkpIGVuYWJsZXMgeW91IHRvIGdlbmVyYXRlIHRob3VzYW5kcyBvZiBBUEkgdGVzdHMgd2l0aGluIG1pbnV0ZXMgd2l0aCAqKm5vIGNvZGluZyBlZmZvcnQqKi4KQWxsIHRlc3RzIGFyZSAqKmdlbmVyYXRlZCwgcnVuIGFuZCByZXBvcnRlZCBhdXRvbWF0aWNhbGx5KiogYmFzZWQgb24gYSBwcmUtZGVmaW5lZCBzZXQgb2YgKioxMDArIEZ1enplcnMqKi4gClRoZSBGdXp6ZXJzIGNvdmVyIGEgd2lkZSByYW5nZSBvZiBib3VuZGFyeSB0ZXN0aW5nIGFuZCBuZWdhdGl2ZSBzY2VuYXJpb3MgZnJvbSBmdWxseSByYW5kb20gbGFyZ2UgVW5pY29kZSB2YWx1ZXMgdG8gd2VsbCBjcmFmdGVkLCBjb250ZXh0IGRlcGVuZGFudCB2YWx1ZXMgYmFzZWQgb24gdGhlIHJlcXVlc3QgZGF0YSB0eXBlcyBhbmQgY29uc3RyYWludHMuIApFdmVuIG1vcmUsIHlvdSBjYW4gbGV2ZXJhZ2UgdGhlIGZhY3QgdGhhdCBDQVRTIGdlbmVyYXRlcyByZXF1ZXN0IHBheWxvYWRzIGR5bmFtaWNhbGx5IGFuZCB3cml0ZSBzaW1wbGUgZW5kLXRvLWVuZCBmdW5jdGlvbmFsIHRlc3RzLgoKIyMgSFRNTCBSZXBvcnQKCjxkaXYgYWxpZ249ImNlbnRlciI+CiAgPGltZyBhbHQ9IkNBVFMiIHdpZHRoPSIxMDAlIiBzcmM9ImltYWdlcy90ZXN0c19yZXN1bHQucG5nIi8+CjwvZGl2PgoKIyMgQ29tbWFuZCBMaW5lCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxpbWcgYWx0PSJDQVRTIiB3aWR0aD0iMTAwJSIgc3JjPSJpbWFnZXMvcnVuX3Jlc3VsdC5wbmciLz4KPC9kaXY+CgojIFR1dG9yaWFscyBvbiBob3cgdG8gdXNlIENBVFMKClRoaXMgaXMgYSBsaXN0IG9mIGFydGljbGVzIHdpdGggc3RlcC1ieS1zdGVwIGd1aWRlcyBvbiBob3cgdG8gdXNlIENBVFM6CiogW1Rlc3RpbmcgdGhlIEdpdEh1YiBBUEkgd2l0aCBDQVRTXShodHRwczovL2x1ZG92aWNpYW51bC5naXRodWIuaW8vMjAyMC8xMC8wNS9naXRodWItYXBpLXRlc3RpbmcvKQoqIFtIb3cgdG8gd3JpdGUgc2VsZi1oZWFsaW5nIGZ1bmN0aW9uYWwgdGVzdHMgd2l0aCBubyBjb2RpbmcgZWZmb3J0XShodHRwczovL2x1ZG92aWNpYW51bC5naXRodWIuaW8vMjAyMC8wOS8wOS9jYXRzLykKCiMgU29tZSBidWdzIGZvdW5kIGJ5IENBVFMKCi0gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC92YXVsdC9pc3N1ZXMvMTMyNzQgfCBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3ZhdWx0L2lzc3Vlcy8xMzI3MwotIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdmF1bHQvaXNzdWVzLzEzMjI1IHwgaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC92YXVsdC9pc3N1ZXMvMTMyMzIKLSBodHRwczovL2dpdGh1Yi5jb20vZ28tZ2l0ZWEvZ2l0ZWEvaXNzdWVzLzE5Mzk3ICB8IGh0dHBzOi8vZ2l0aHViLmNvbS9nby1naXRlYS9naXRlYS9pc3N1ZXMvMTkzOTgKLSBodHRwczovL2dpdGh1Yi5jb20vZ28tZ2l0ZWEvZ2l0ZWEvaXNzdWVzLzE5Mzk5CgojIEluc3RhbGxhdGlvbgoKIyMgSG9tZWJyZXcKCmBgYHNoZWxsCj4gYnJldyB0YXAgZW5kYXZhL3RhcAo+IGJyZXcgaW5zdGFsbCBjYXRzCmBgYAoKIyMgTWFudWFsCkNBVFMgaXMgYnVuZGxlZCBib3RoIGFzIGFuIGV4ZWN1dGFibGUgSkFSIG9yIGEgbmF0aXZlIGJpbmFyeS4gVGhlIG5hdGl2ZSBiaW5hcmllcyBkbyBub3QgbmVlZCBKYXZhIGluc3RhbGxlZC4gCgpBZnRlciBkb3dubG9hZGluZyB5b3VyIE9TIG5hdGl2ZSBiaW5hcnksIHlvdSBjYW4gYWRkIGl0IHRvIFBBVEggc28gdGhhdCB5b3UgY2FuIGV4ZWN1dGUgaXQgYXMgYW55IG90aGVyIGNvbW1hbmQgbGluZSB0b29sOgoKYGBgc2hlbGwKc3VkbyBjcCBjYXRzIC91c3IvbG9jYWwvYmluL2NhdHMKYGBgCgpZb3UgY2FuIGFsc28gZ2V0IGF1dG9jb21wbGV0ZSBieSBkb3dubG9hZGluZyB0aGUgW2NhdHNfYXV0b2NvbXBsZXRlXShjYXRzX2F1dG9jb21wbGV0ZSkgc2NyaXB0IGFuZCBkbzoKCmBgYHNoZWxsCnNvdXJjZSBjYXRzX2F1dG9jb21wbGV0ZQpgYGAKClRvIGdldCBwZXJzaXN0ZW50IGF1dG9jb21wbGV0ZSwgYWRkIHRoZSBhYm92ZSBsaW5lIGluIGAuenNocmNgIG9yIGAuYmFzaHJjYCwgYnV0IG1ha2Ugc3VyZSB5b3UgcHV0IHRoZSBmdWxseSBxdWFsaWZpZWQgcGF0aCBmb3IgdGhlIGBjYXRzX2F1dG9jb21wbGV0ZWAgc2NyaXB0LgoKWW91IGNhbiBhbHNvIGNoZWNrIHRoZSBgY2F0c19hdXRvY29tcGxldGVgIHNvdXJjZSBmb3IgYWx0ZXJuYXRpdmUgc2V0dXAuCgpUaGVyZSBpcyBubyBuYXRpdmUgYmluYXJ5IGZvciBXaW5kb3dzLCBidXQgeW91IGNhbiB1c2UgdGhlIHViZXJqYXIgdmVyc2lvbi4gVGhpcyByZXF1aXJlcyBKYXZhIDE3KyB0byBiZSBpbnN0YWxsZWQuCgpZb3UgY2FuIHJ1biBpdCBhcyBgamF2YSAtamFyIGNhdHMuamFyYC4KCkhlYWQgdG8gdGhlIHJlbGVhc2VzIHBhZ2UgdG8gZG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uOiBbaHR0cHM6Ly9naXRodWIuY29tL0VuZGF2YS9jYXRzL3JlbGVhc2VzXShodHRwczovL2dpdGh1Yi5jb20vRW5kYXZhL2NhdHMvcmVsZWFzZXMpLgoKIyMgQnVpbGQgZnJvbSBzb3VyY2VzCgpZb3UgY2FuIGJ1aWxkIENBVFMgZnJvbSBzb3VyY2VzIG9uIHlvdSBsb2NhbCBib3guIFlvdSBuZWVkIFtKYXZhIDE3K10oaHR0cHM6Ly9zZGttYW4uaW8vamRrcykuIE1hdmVuIGlzIGFscmVhZHkgYnVuZGxlZC4KCj4gQmVmb3JlIHJ1bm5pbmcgdGhlIGZpcnN0IGJ1aWxkLCBwbGVhc2UgbWFrZSBzdXJlIHlvdSBkbyBhIGAuL212bncgY2xlYW5gLiBDQVRTIHVzZXMgYSBmb3JrIG9mIFtPS0h0dHBdKGh0dHBzOi8vc3F1YXJlLmdpdGh1Yi5pby9va2h0dHAvKSB3aGljaCB3aWxsIGluc3RhbGwgbG9jYWxseQp1bmRlciB0aGUgYDQuMTEuMC1DQVRTYCB2ZXJzaW9uLCBzbyBkb24ndCB3b3JyeSBhYm91dCBvdmVycmlkaW5nIHRoZSBvZmZpY2lhbCB2ZXJzaW9ucy4KCgpZb3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIE1hdmVuIGNvbW1hbmQgdG8gYnVpbGQgdGhlIHByb2plY3QgYXMgYW4gdWJlcmphcjoKCmAuL212bncgcGFja2FnZSAtRHF1YXJrdXMucGFja2FnZS50eXBlPXViZXItamFyYAoKCllvdSB3aWxsIGVuZCB1cCB3aXRoIGEgYGNhdHMtcnVubmVyLmphcmAgaW4gdGhlIGB0YXJnZXRgIGZvbGRlci4gWW91IGNhbiBydW4gaXQgd2loIGBqYXZhIC1qYXIgY2F0cy1ydW5uZXIuamFyIC4uLmAuCgpZb3UgY2FuIGFsc28gYnVpbGQgbmF0aXZlIGltYWdlcyB1c2luZyBhIFtHcmFhbFZNIEphdmEgdmVyc2lvbl0oaHR0cHM6Ly93d3cuZ3JhYWx2bS5vcmcvKS4KCmAuL212bncgcGFja2FnZSAtUG5hdGl2ZWAKCiMjIyBOb3RlcyBvbiBVbml0IFRlc3RzCgpZb3UgbWF5IHNlZSBzb21lIGBlcnJvcmAgbG9nIG1lc3NhZ2VzIHdoaWxlIHJ1bm5pbmcgdGhlIFVuaXQgVGVzdHMuIFRob3NlIGFyZSBleHBlY3RlZCBiZWhhdmlvdXIgZm9yIHRlc3RpbmcgdGhlIG5lZ2F0aXZlIHNjZW5hcmlvcyBvZiB0aGUgRnV6emVycy4KCiMjIEV4cGVyaW1lbnRhbDogTWF2ZW4gZGVwZW5kZW5jeSBmb3IgcHJvZ3JhbW1hdGljIHVzZQpDQVRTIGRvZXNuJ3QgaGF2ZSBleHBsaWNpdCBzdXBwb3J0ICh5ZXQpIGZvciBwcm9ncmFtbWF0aWMgdXNlIHZpYSBKVW5pdCBvciBUZXN0TkcuIApZb3UgY2FuIGhvd2V2ZXIgZXhwZXJpbWVudCB3aXRoIHJ1bm5pbmcgdGhlIGBDYXRzTWFpbmAgY2xhc3Mgd2l0aCB0aGUgc2FtZSBhcmd1bWVudHMgYXMgeW91IHdvdWxkIHJ1biBpbiB0aGUgY29tbWFuZCBsaW5lLgoKWW91IG11c3QgYWRkIHRoZXNlIDIgZGVwZW5kZW5jaWVzOgoKYGBgeG1sCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+Y29tLnNxdWFyZXVwLm9raHR0cDM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5va2h0dHA8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj40LjExLjA8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5jb20uZW5kYXZhPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+Y2F0czwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPjkuMC4zPC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYAoKPiBQbGVhc2Ugbm90IHRoYXQgeW91IGFsc28gbmVlZCB0byBleHBsaWNpdGx5IGFkZCB0aGUgYG9raHR0cGAgZGVwZW5kZW5jeS4gCj4gQ0FUUyB1c2VzIGEgZm9yayBvZiBva2h0dHAgdGhhdCBpcyBub3QgcHVibGlzaGVkIGluIE1hdmVuIGNlbnRyYWwuCj4gV2hlbiB1c2luZyBDQVRTIGFzIGEgZGVwZW5kZW5jeSwgSFRUUCBoZWFkZXIgZnV6emVycyB0aGF0IHByZWZpeC9zdWZmaXggaGVhZGVyIHZhbHVlcyB3aXRoIHNwYWNlcyB3b24ndCBwcm9wZXJseSB3b3JrLgoKIyBDb250cmlidXRpbmcKUGxlYXNlIHJlZmVyIHRvIFtDT05UUklCVVRJTkcubWRdKENPTlRSSUJVVElORy5tZCkuIAo= readmeEtag: '"2a01ddc6e9bc1e86ee1392562d9fabb8c7ca0c92"' readmeLastModified: Tue, 13 Aug 2024 19:18:21 GMT repositoryId: 252459854 description: >- CATS is a REST API Fuzzer and negative testing tool for OpenAPI endpoints. CATS automatically generates, runs and reports tests with minimum configuration and no coding effort. Tests are self-healing and do not require maintenance. created: '2020-04-02T13:14:39Z' updated: '2024-09-05T20:36:00Z' language: Java archived: false stars: 1138 watchers: 14 forks: 73 owner: Endava logo: https://avatars.githubusercontent.com/u/19396140?v=4 license: Apache-2.0 repoEtag: '"dd28360dbb6d7a01653191aae4deab489c5c3fdb0ba89e029183d67a44b2f1fa"' repoLastModified: Thu, 05 Sep 2024 20:36:00 GMT foundInMaster: true - source: https://openapi.tools/ name: API Insights category: Security language: SaaS source_description: >- RestCase executes hundrends of security and quality checks against the API definition, the API insights report provides detailed security scoring for prioritization, and remediation advice to help developers define the best API definition possible. link: https://restcase.com/platform/security v2: true v3: true foundInMaster: true id: aab65db9be3090f79ce65c7fc9808dce - source: https://openapi.tools/ name: OpenAPI Schema to JSON Schema category: - Converters - Parsers language: TypeScript source_description: >- Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS library to convert OpenAPI Schema objects to proper JSON Schema. link: https://www.npmjs.com/package/@openapi-contrib/openapi-schema-to-json-schema repository: https://github.com/openapi-contrib/openapi-schema-to-json-schema v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNjaGVtYSB0byBKU09OIFNjaGVtYQoKQSBsaXR0bGUgTm9kZUpTIHBhY2thZ2UgdG8gY29udmVydCBPcGVuQVBJIFNjaGVtYSBPYmplY3Qgb3IgUGFyYW1ldGVyIE9iamVjdCB0byBKU09OIFNjaGVtYS4KCkN1cnJlbnRseSBjb252ZXJ0cyBmcm9tIFtPcGVuQVBJIDMuMF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwpIHRvIFtKU09OIFNjaGVtYSBEcmFmdCA0XShodHRwOi8vanNvbi1zY2hlbWEub3JnL3NwZWNpZmljYXRpb24tbGlua3MuaHRtbCNkcmFmdC00KS4KClshW1RyZWV3YXJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2R5bmFtaWMvanNvbj9jb2xvcj1icmlnaHRncmVlbiZsYWJlbD1UcmVld2FyZSZxdWVyeT0lMjQudG90YWwmdXJsPWh0dHBzJTNBJTJGJTJGcHVibGljLm9mZnNldC5lYXJ0aCUyRnVzZXJzJTJGdHJlZXdhcmUlMkZ0cmVlcyldKGh0dHBzOi8vdHJlZXdhcmUuZWFydGgpCgojIyBXaHk/CgpPcGVuQVBJIGlzIGEgc3BlY2lmaWNhdGlvbiBmb3IgZGVzY3JpYmluZyBSRVNUZnVsIEFQSXMuIE9wZW5BUEkgdjMuMCBhbGxvd3MgdXMgdG8gZGVzY3JpYmUgdGhlIHN0cnVjdHVyZXMgb2YgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcGF5bG9hZHMgaW4gYSBkZXRhaWxlZCBtYW5uZXIuIFRoaXMgd291bGQsIHRoZW9yZXRpY2FsbHksIG1lYW4gdGhhdCB3ZSBzaG91bGQgYmUgYWJsZSB0byBhdXRvbWF0aWNhbGx5IHZhbGlkYXRlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHBheWxvYWRzLiBIb3dldmVyLCBhcyBvZiB3cml0aW5nIHRoZXJlIGFyZW4ndCBtYW55IHZhbGlkYXRvcnMgYXJvdW5kLgoKVGhlIGdvb2QgbmV3cyBpcyB0aGF0IHRoZXJlIGFyZSBtYW55IHZhbGlkYXRvcnMgZm9yIEpTT04gU2NoZW1hIGZvciBkaWZmZXJlbnQgbGFuZ3VhZ2VzLiBUaGUgYmFkIG5ld3MgaXMgdGhhdCBPcGVuQVBJIHYzLjAgaXMgW25vdCBlbnRpcmVseSBjb21wYXRpYmxlIHdpdGggSlNPTiBTY2hlbWFdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL2Jsb2cvb3BlbmFwaS1qc29uLXNjaGVtYS8pLiBUaGUgU2NoZW1hIE9iamVjdCBvZiBPcGVuQVBJIHYzLjAgaXMgYW4gZXh0ZW5kZWQgc3Vic2V0IG9mIEpTT04gU2NoZW1hIFNwZWNpZmljYXRpb24gV3JpZ2h0IERyYWZ0IDAwIHdpdGggc29tZSBkaWZmZXJlbmNlcy4gVGhpcyB3aWxsIGJlIHJlc29sdmVkIGluIE9wZW5BUEkgdjMuMSwgYnV0IHVudGlsIHRoZW4uLi4gdGhpcyB0b29sIHdpbGwgZmlsbCB0aGF0IGdhcC4KClRoZXJlIGlzIGFsc28gYSBbQ0xJIHRvb2xdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1bm4vb3BlbmFwaTJzY2hlbWEpIGZvciBjcmVhdGluZyBhIEpTT04gb2Ygc2NoZW1hcyBmcm9tIHRoZSB3aG9sZSBBUEkgc3BlY2lmaWNhdGlvbi4KCklmIHlvdSBuZWVkIHRvIGRvIHRoZSBjb252ZXJzaW9uIGluIHJldmVyc2UsIGNoZWNrb3V0IFtqc29uLXNjaGVtYS10by1vcGVuYXBpLXNjaGVtYV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktY29udHJpYi9qc29uLXNjaGVtYS10by1vcGVuYXBpLXNjaGVtYSkuCgojIyBGZWF0dXJlcwoKLSBjb252ZXJ0cyBPcGVuQVBJIHYzLjAgU2NoZW1hIE9iamVjdCB0byBKU09OIFNjaGVtYSBEcmFmdCA0Ci0gY29udmVydHMgT3BlbkFQSSB2My4wIFBhcmFtZXRlciBPYmplY3QgdG8gSlNPTiBTY2hlbWEgRHJhZnQgNAotIGRlbGV0ZXMgYG51bGxhYmxlYCBhbmQgYWRkcyBgIm51bGwiYCB0byBgdHlwZWAgYXJyYXkgaWYgYG51bGxhYmxlYCBpcyBgdHJ1ZWAKLSBzdXBwb3J0cyBkZWVwIHN0cnVjdHVyZXMgd2l0aCBuZXN0ZWQgYGFsbE9mYHMgZXRjLgotIHJlbW92ZXMgW09wZW5BUEkgc3BlY2lmaWMgcHJvcGVydGllc10oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjZml4ZWQtZmllbGRzLTIwKSBzdWNoIGFzIGBkaXNjcmltaW5hdG9yYCwgYGRlcHJlY2F0ZWRgIGV0Yy4gdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UKLSBvcHRpb25hbGx5IHN1cHBvcnRzIGBwYXR0ZXJuUHJvcGVydGllc2Agd2l0aCBgeC1wYXR0ZXJuUHJvcGVydGllc2AgaW4gdGhlIFNjaGVtYSBPYmplY3QKCioqTk9URSoqOiBgJHJlZmBzIGFyZSBub3QgaGFuZGxlZCBpbiBhbnkgd2F5LCBzbyBwbGVhc2UgdXNlIGEgcmVzb2x2ZXIgc3VjaCBhcyBbanNvbi1zY2hlbWEtcmVmLXBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL2pzb24tc2NoZW1hLXJlZi1wYXJzZXIpIG9yIFtzd2FnZ2VyLWNsaSBidW5kbGVdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXItY2xpKSBwcmlvciB0byB1c2luZyB0aGlzIHBhY2thZ2UuCgojIyBJbnN0YWxsYXRpb24KCmBgYApucG0gaW5zdGFsbCAtLXNhdmUgQG9wZW5hcGktY29udHJpYi9vcGVuYXBpLXNjaGVtYS10by1qc29uLXNjaGVtYQpgYGAKCiMjIyBDTEkKCmBgYGJhc2gKbnB4ICJAb3BlbmFwaS1jb250cmliL29wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hIiAtLWlucHV0IG9wZW5hcGkuanNvbiAtLW91dHB1dCBqc29uLXNjaGVtYS5qc29uCmBgYAoKIyMgQ29udmVydGluZyBPcGVuQVBJIHNjaGVtYQoKSGVyZSdzIGEgc21hbGwgZXhhbXBsZSB0byBnZXQgdGhlIGlkZWE6CgpgYGBqcwp2YXIgeyBvcGVuYXBpU2NoZW1hVG9Kc29uU2NoZW1hOiB0b0pzb25TY2hlbWEgfSA9IHJlcXVpcmUoIkBvcGVuYXBpLWNvbnRyaWIvb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWEiKTsKCnZhciBzY2hlbWEgPSB7CiAgdHlwZTogInN0cmluZyIsCiAgZm9ybWF0OiAiZGF0ZS10aW1lIiwKICBudWxsYWJsZTogdHJ1ZSwKfTsKCnZhciBjb252ZXJ0ZWRTY2hlbWEgPSB0b0pzb25TY2hlbWEoc2NoZW1hKTsKCmNvbnNvbGUubG9nKGNvbnZlcnRlZFNjaGVtYSk7CmBgYAoKVGhlIGV4YW1wbGUgcHJpbnRzIG91dAoKYGBganMKewogIHR5cGU6IFsnc3RyaW5nJywgJ251bGwnXSwKICBmb3JtYXQ6ICdkYXRlLXRpbWUnLAogICckc2NoZW1hJzogJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIycKfQpgYGAKClByb3ZpZGUgdGhlIGZ1bmN0aW9uIHRoZSBzY2hlbWEgb2JqZWN0IHdpdGggcG9zc2libGUgb3B0aW9ucy4KCiMjIyBPcHRpb25zCgpUaGUgZnVuY3Rpb24gYWNjZXB0cyBgb3B0aW9uc2Agb2JqZWN0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuCgojIyMjIGBjbG9uZVNjaGVtYWAgKGJvb2xlYW4pCgpJZiBzZXQgdG8gYGZhbHNlYCwgY29udmVydHMgdGhlIHByb3ZpZGVkIHNjaGVtYSBpbiBwbGFjZS4gSWYgYHRydWVgLCBjbG9uZXMgdGhlIHNjaGVtYSBieSBjb252ZXJ0aW5nIGl0IHRvIEpTT04gYW5kIGJhY2suIFRoZSBvdmVyaGVhZCBvZiB0aGUgY2xvbmluZyBpcyB1c3VhbGx5IG5lZ2xpZ2libGUuIERlZmF1bHRzIHRvIGB0cnVlYC4KCiMjIyMgYGRhdGVUb0RhdGVUaW1lYCAoYm9vbGVhbikKClRoaXMgaXMgYGZhbHNlYCBieSBkZWZhdWx0IGFuZCBsZWF2ZXMgYGRhdGVgIGZvcm1hdCBhcyBpcy4gSWYgc2V0IHRvIGB0cnVlYCwgc2V0cyBgZm9ybWF0OiAnZGF0ZSdgIHRvIGBmb3JtYXQ6ICdkYXRlLXRpbWUnYC4KCkZvciBleGFtcGxlCgpgYGBqcwp2YXIgc2NoZW1hID0gewogIHR5cGU6ICJzdHJpbmciLAogIGZvcm1hdDogImRhdGUiLAp9OwoKdmFyIGNvbnZlcnRlZFNjaGVtYSA9IHRvSnNvblNjaGVtYShzY2hlbWEsIHsgZGF0ZVRvRGF0ZVRpbWU6IHRydWUgfSk7Cgpjb25zb2xlLmxvZyhjb252ZXJ0ZWRTY2hlbWEpOwpgYGAKCnByaW50cwoKYGBganMKewogIHR5cGU6ICdzdHJpbmcnLAogIGZvcm1hdDogJ2RhdGUtdGltZScsCiAgJyRzY2hlbWEnOiAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjJwp9CmBgYAoKIyMjIyBga2VlcE5vdFN1cHBvcnRlZGAgKGFycmF5KQoKQnkgZGVmYXVsdCwgdGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcmVzdWx0IHNjaGVtYTogYG51bGxhYmxlYCwgYGRpc2NyaW1pbmF0b3JgLCBgcmVhZE9ubHlgLCBgd3JpdGVPbmx5YCwgYHhtbGAsIGBleHRlcm5hbERvY3NgLCBgZXhhbXBsZWAgYW5kIGBkZXByZWNhdGVkYCBhcyB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEpTT04gU2NoZW1hIERyYWZ0IDQuIFByb3ZpZGUgYW4gYXJyYXkgb2YgdGhlIG9uZXMgeW91IHdhbnQgdG8ga2VlcCAoYXMgc3RyaW5ncykgYW5kIHRoZXkgd29uJ3QgYmUgcmVtb3ZlZC4KCiMjIyMgYHJlbW92ZVJlYWRPbmx5YCAoYm9vbGVhbikKCklmIHNldCB0byBgdHJ1ZWAsIHdpbGwgcmVtb3ZlIHByb3BlcnRpZXMgc2V0IGFzIGByZWFkT25seWAuIElmIHRoZSBwcm9wZXJ0eSBpcyBzZXQgYXMgYHJlcXVpcmVkYCwgaXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIGByZXF1aXJlZGAgYXJyYXkgYXMgd2VsbC4gVGhlIHByb3BlcnR5IHdpbGwgYmUgcmVtb3ZlZCBldmVuIGlmIGByZWFkT25seWAgaXMgc2V0IHRvIGJlIGtlcHQgd2l0aCBga2VlcE5vdFN1cHBvcnRlZGAuCgojIyMjIGByZW1vdmVXcml0ZU9ubHlgIChib29sZWFuKQoKU2ltaWxhciB0byBgcmVtb3ZlUmVhZE9ubHlgLCBidXQgZm9yIGB3cml0ZU9ubHlgIHByb3BlcnRpZXMuCgojIyMjIGBzdXBwb3J0UGF0dGVyblByb3BlcnRpZXNgIChib29sZWFuKQoKSWYgc2V0IHRvIGB0cnVlYCBhbmQgYHgtcGF0dGVyblByb3BlcnRpZXNgIHByb3BlcnR5IGlzIHByZXNlbnQsIGNoYW5nZSBgeC1wYXR0ZXJuUHJvcGVydGllc2AgdG8gYHBhdHRlcm5Qcm9wZXJ0aWVzYCBhbmQgY2FsbCBgcGF0dGVyblByb3BlcnRpZXNIYW5kbGVyYC4gSWYgYHBhdHRlcm5Qcm9wZXJ0aWVzSGFuZGxlcmAgaXMgbm90IGRlZmluZWQsIGNhbGwgdGhlIGRlZmF1bHQgaGFuZGxlci4gU2VlIGBwYXR0ZXJuUHJvcGVydGllc0hhbmRsZXJgIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIyBgcGF0dGVyblByb3BlcnRpZXNIYW5kbGVyYCAoZnVuY3Rpb24pCgpQcm92aWRlIGEgZnVuY3Rpb24gdG8gaGFuZGxlIHBhdHRlcm4gcHJvcGVydGllcyBhbmQgc2V0IGBzdXBwb3J0UGF0dGVyblByb3BlcnRpZXNgIHRvIHRha2UgZWZmZWN0LiBUaGUgZnVuY3Rpb24gdGFrZXMgdGhlIHNjaGVtYSB3aGVyZSBgeC1wYXR0ZXJuUHJvcGVydGllc2AgaXMgZGVmaW5lZCBvbiB0aGUgcm9vdCBsZXZlbC4gQXQgdGhpcyBwb2ludCBgeC1wYXR0ZXJuUHJvcGVydGllc2AgaXMgY2hhbmdlZCB0byBgcGF0dGVyblByb3BlcnRpZXNgLiBJdCBtdXN0IHJldHVybiB0aGUgbW9kaWZpZWQgc2NoZW1hLgoKSWYgdGhlIGhhbmRsZXIgaXMgbm90IHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBoYW5kbGVyIGlzIHVzZWQuIElmIGBhZGRpdGlvbmFsUHJvcGVydGllc2AgaXMgc2V0IGFuZCBpcyBhbiBvYmplY3QsIHRoZSBkZWZhdWx0IGhhbmRsZXIgc2V0cyBpdCB0byBmYWxzZSBpZiB0aGUgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzYCBvYmplY3QgaGFzIGRlZXAgZXF1YWxpdHkgd2l0aCBhIHBhdHRlcm4gb2JqZWN0IGluc2lkZSBgcGF0dGVyblByb3BlcnRpZXNgLiBUaGlzIGlzIGJlY2F1c2Ugd2UgbWlnaHQgd2FudCB0byBkZWZpbmUgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzYCBpbiBPcGVuQVBJIHNwZWMgZmlsZSwgYnV0IHdhbnQgdG8gdmFsaWRhdGUgYWdhaW5zdCBhIHBhdHRlcm4uIFRoZSBwYXR0ZXJuIHdvdWxkIHR1cm4gb3V0IHRvIGJlIHVzZWxlc3MgaWYgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzYCBvZiB0aGUgc2FtZSBzdHJ1Y3R1cmUgd2VyZSBhbGxvd2VkLiBDcmVhdGUgeW91IG93biBoYW5kbGVyIHRvIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb25hbGl0eS4KClNlZSBgdGVzdC9wYXR0ZXJuX3Byb3BlcnRpZXMudGVzdC5qc2AgZm9yIGV4YW1wbGVzIGhvdyB0aGlzIHdvcmtzLgoKIyMjIyBgZGVmaW5pdGlvbktleXdvcmRzYCAoYXJyYXkpCgpCeSBkZWZhdWx0LCBkZWZpbml0aW9ucyBhcmUgbm90IGNvbnZlcnRlZC4gSWYgeW91ciBkb2N1bWVudHMgZm9sbG93IHRoZSBjb252ZW50aW9uIG9mIGhhdmluZyBhIGRlZmluaXRpb25zIG9iamVjdCBhdCB0aGUgcm9vdCBvZiBhIChzdWIpc2NoZW1hLCB5b3UgY2FuIHNldCBkZWZpbml0aW9uS2V5d29yZHMgdG8gYFsnZGVmaW5pdGlvbnMnXWAuCgpgYGBqcwp2YXIgc2NoZW1hID0gewogIGRlZmluaXRpb25zOiB7CiAgICBzaGFyZWREZWZpbml0aW9uOiB7CiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgZm9vOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIG51bGxhYmxlOiB0cnVlLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogIH0sCn07CnZhciBjb252ZXJ0ZWRTY2hlbWEgPSB0b0pzb25TY2hlbWEoc2NoZW1hLCB7CiAgZGVmaW5pdGlvbktleXdvcmRzOiBbImRlZmluaXRpb25zIl0sCn0pOwpjb25zb2xlLmxvZyhjb252ZXJ0ZWRTY2hlbWEpOwpgYGAKCnByaW50cwoKYGBganMKewogICRzY2hlbWE6ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMnLAogIGRlZmluaXRpb25zOiB7CiAgICBzaGFyZWREZWZpbml0aW9uOiB7CiAgICAgIHR5cGU6ICdvYmplY3QnLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgZm9vOiB7CiAgICAgICAgICB0eXBlOiBbJ3N0cmluZycsICdudWxsJ10KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgojIyBDb252ZXJ0aW5nIE9wZW5BUEkgcGFyYW1ldGVycwoKT3BlbkFQSSBwYXJhbWV0ZXJzIGNhbiBiZSBjb252ZXJ0ZWQ6CgpgYGBqcwp2YXIgeyBmcm9tUGFyYW1ldGVyIH0gPSByZXF1aXJlKCJAb3BlbmFwaS1jb250cmliL29wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hIik7Cgp2YXIgcGFyYW0gPSB7CiAgbmFtZTogInBhcmFtZXRlciBuYW1lIiwKICBpbjogInF1ZXJ5IiwKICBzY2hlbWE6IHsKICAgIHR5cGU6ICJzdHJpbmciLAogICAgZm9ybWF0OiAiZGF0ZSIsCiAgfSwKfTsKCnZhciBjb252ZXJ0ZWRTY2hlbWEgPSBmcm9tUGFyYW1ldGVyKHBhcmFtKTsKCmNvbnNvbGUubG9nKGNvbnZlcnRlZFNjaGVtYSk7CmBgYAoKVGhlIHJlc3VsdCBpcyBhcyBmb2xsb3dzOgoKYGBganMKewogIHR5cGU6ICdzdHJpbmcnLAogIGZvcm1hdDogJ2RhdGUnLAogICckc2NoZW1hJzogJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIycKfQpgYGAKCldoZW4gYSBwYXJhbWV0ZXIgaGFzIHNldmVyYWwgc2NoZW1hcyAob25lIHBlciBNSU1FIHR5cGUpIGEgbWFwIGlzIHJldHVybmVkIGluc3RlYWQuCgpgYGBqcwp7CiAgbmFtZTogJ3BhcmFtZXRlciBuYW1lJywKICBpbjogJ3F1ZXJ5JywKICBjb250ZW50OiB7CiAgICAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc6IHsKICAgICAgc2NoZW1hOiB7CiAgICAgICAgdHlwZTogJ3N0cmluZycKICAgICAgfQogICAgfSwKICAgICd0ZXh0L2Nzcyc6IHsKICAgICAgc2NoZW1hOiB7CiAgICAgICAgdHlwZTogJ3N0cmluZycKICAgICAgfQogICAgfQogIH0KfQpgYGAKCndvdWxkIGJlIGNvbnZlcnRlZCB0bzoKCmBgYGpzCnsKICAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc6IHsKICAgIHR5cGU6ICdzdHJpbmcnLAogICAgJyRzY2hlbWEnOiAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjJwogIH0sCiAgJ3RleHQvY3NzJzogewogICAgdHlwZTogJ3N0cmluZycsCiAgICAnJHNjaGVtYSc6ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMnCiAgfQp9CmBgYAoKIyMgVHJlZXdhcmUKClRoaXMgcGFja2FnZSBpcyBbVHJlZXdhcmVdKGh0dHBzOi8vdHJlZXdhcmUuZWFydGgpLiBJZiB5b3UgdXNlIGl0IGluIHByb2R1Y3Rpb24sIHRoZW4gd2UgYXNrIHRoYXQgeW91IFsqKmJ1eSB0aGUgd29ybGQgYSB0cmVlKipdKGh0dHBzOi8vcGxhbnQudHJlZXdhcmUuZWFydGgve3ZlbmZvcn0ve3BhY2thZ2V9KSB0byB0aGFuayB1cyBmb3Igb3VyIHdvcmsuIEJ5IGNvbnRyaWJ1dGluZyB0byB0aGUgVHJlZXdhcmUgZm9yZXN0IHlvdeKAmWxsIGJlIGNyZWF0aW5nIGVtcGxveW1lbnQgZm9yIGxvY2FsIGZhbWlsaWVzIGFuZCByZXN0b3Jpbmcgd2lsZGxpZmUgaGFiaXRhdHMuCgojIyBUaGFua3MKCi0gW1N0b3BsaWdodF1bXSBmb3IgZG9uYXRpbmcgdGltZSBhbmQgZWZmb3J0IHRvIHRoaXMgcHJvamVjdCwgYW5kIG1hbnkgbW9yZS4KLSBbbWlrdW5uXVtdIGZvciBvcmlnaW5hbGx5IGNyZWF0aW5nIHRoaXMgcGFja2FnZS4KLSBbQWxsIENvbnRyaWJ1dG9yc11bbGluay1jb250cmlidXRvcnNdCgpbc3RvcGxpZ2h0XTogaHR0cHM6Ly9zdG9wbGlnaHQuaW8vClttaWt1bm5dOiBodHRwczovL2dpdGh1Yi5jb20vbWlrdW5uCltsaW5rLWNvbnRyaWJ1dG9yc106IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWNvbnRyaWIvb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWEvZ3JhcGhzL2NvbnRyaWJ1dG9ycwoKIyMgQ29weXJpZ2h0CgpDb3B5cmlnaHQgMjAyMyB0aGUgW09wZW5BUEkgQ29udHJpYiBvcmdhbml6YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWNvbnRyaWIpLiBDb2RlIHJlbGVhc2VkIHVuZGVyIHRoZSBbTUlUIExpY2Vuc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWNvbnRyaWIvb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWEvYmxvYi9tYWluL0xJQ0VOU0UpLgo= readmeEtag: '"48037924913e4772a488531513892eaf0a796630"' readmeLastModified: Tue, 11 Jul 2023 22:18:10 GMT repositoryId: 234640931 description: >- Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS library to convert OpenAPI Schema objects to proper JSON Schema. created: '2020-01-17T21:37:32Z' updated: '2024-09-02T14:28:36Z' language: TypeScript archived: false stars: 238 watchers: 6 forks: 19 owner: openapi-contrib logo: https://avatars.githubusercontent.com/u/49447320?v=4 license: MIT repoEtag: '"4f5d8ccb9e245f733586d3a17bdadcf887d6e3c28cb9b11dac0f3c2977f60815"' repoLastModified: Mon, 02 Sep 2024 14:28:36 GMT foundInMaster: true id: f6608d418f20d73a1e15b74206edd45a - source: https://openapi.tools/ name: JSON Schema to OpenAPI Schema category: - Converters - Parsers language: TypeScript source_description: >- Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS library to convert JSON Schema objects to OpenAPI Schema. link: https://www.npmjs.com/package/@openapi-contrib/json-schema-to-openapi-schema repository: https://github.com/openapi-contrib/json-schema-to-openapi-schema v3: true repositoryMetadata: base64Readme: >- IyBKU09OIFNjaGVtYSB0byBPcGVuQVBJIFNjaGVtYQoKQSBsaXR0bGUgTm9kZUpTIHBhY2thZ2UgdG8gY29udmVydCBKU09OIFNjaGVtYSB0byBhIFtPcGVuQVBJIFNjaGVtYSBPYmplY3RdKGh0dHA6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjc2NoZW1hLW9iamVjdCkuCgpbIVtUcmVld2FyZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9keW5hbWljL2pzb24/Y29sb3I9YnJpZ2h0Z3JlZW4mbGFiZWw9VHJlZXdhcmUmcXVlcnk9JTI0LnRvdGFsJnVybD1odHRwcyUzQSUyRiUyRnB1YmxpYy5vZmZzZXQuZWFydGglMkZ1c2VycyUyRnRyZWV3YXJlJTJGdHJlZXMpXShodHRwczovL3RyZWV3YXJlLmVhcnRoKQoKIyMgRmVhdHVyZXMKCi0gY29udmVydHMgSlNPTiBTY2hlbWEgRHJhZnQgMDQgdG8gT3BlbkFQSSAzLjAgU2NoZW1hIE9iamVjdAotIHN3aXRjaGVzIGB0eXBlOiBbJ2ZvbycsICdudWxsJ11gIHRvIGB0eXBlOiBmb29gIGFuZCBgbnVsbGFibGU6IHRydWVgCi0gc3VwcG9ydHMgZGVlcCBzdHJ1Y3R1cmVzIHdpdGggbmVzdGVkIGBhbGxPZmBzIGV0Yy4KLSBzd2l0Y2hlcyBgcGF0dGVyblByb3BlcnRpZXNgIHRvIGB4LXBhdHRlcm5Qcm9wZXJ0aWVzYAotIGNvbnZlcnRzIGBkZXBlbmRlbmNpZXNgIHRvIGFuIGFsbE9mICsgb25lT2YgT3BlbkFQSS12YWxpZCBlcXVpdmFsZW50CgojIyBJbnN0YWxsYXRpb24KCmBgYHNoZWxsCm5wbSBpbnN0YWxsIC0tc2F2ZSBAb3BlbmFwaS1jb250cmliL2pzb24tc2NoZW1hLXRvLW9wZW5hcGktc2NoZW1hCmBgYAoKUmVxdWlyZXMgTm9kZUpTIHYxMCBvciBncmVhdGVyLgoKIyMgVXNhZ2UKCkhlcmUncyBhIHNtYWxsIGV4YW1wbGUgdG8gZ2V0IHRoZSBpZGVhOgoKYGBganMKY29uc3QgY29udmVydCA9IHJlcXVpcmUoJ0BvcGVuYXBpLWNvbnRyaWIvanNvbi1zY2hlbWEtdG8tb3BlbmFwaS1zY2hlbWEnKTsKCmNvbnN0IHNjaGVtYSA9IHsKCSRzY2hlbWE6ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMnLAoJdHlwZTogWydzdHJpbmcnLCAnbnVsbCddLAoJZm9ybWF0OiAnZGF0ZS10aW1lJywKfTsKCihhc3luYyAoKSA9PiB7Cgljb25zdCBjb252ZXJ0ZWRTY2hlbWEgPSBhd2FpdCBjb252ZXJ0KHNjaGVtYSk7Cgljb25zb2xlLmxvZyhjb252ZXJ0ZWRTY2hlbWEpOwp9KSgpOwpgYGAKClRoZSBleGFtcGxlIHByaW50cyBvdXQKCmBgYGpzCnsKICB0eXBlOiAnc3RyaW5nJywKICBmb3JtYXQ6ICdkYXRlLXRpbWUnLAogIG51bGxhYmxlOiB0cnVlCn0KYGBgCgojIyMgT3B0aW9ucwoKVGhlIGZ1bmN0aW9uIGFjY2VwdHMgYG9wdGlvbnNgIG9iamVjdCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LgoKIyMjIyBgY2xvbmVTY2hlbWFgIChib29sZWFuKQoKSWYgc2V0IHRvIGBmYWxzZWAsIGNvbnZlcnRzIHRoZSBwcm92aWRlZCBzY2hlbWEgaW4gcGxhY2UuIElmIGB0cnVlYCwgY2xvbmVzIHRoZSBzY2hlbWEgYnkgY29udmVydGluZyBpdCB0byBKU09OIGFuZCBiYWNrLiBUaGUgb3ZlcmhlYWQgb2YgdGhlIGNsb25pbmcgaXMgdXN1YWxseSBuZWdsaWdpYmxlLiBEZWZhdWx0cyB0byBgdHJ1ZWAuCgojIyMjIGBkZXJlZmVyZW5jZWAgKGJvb2xlYW4pCgpJZiBzZXQgdG8gYHRydWVgLCBhbGwgbG9jYWwgYW5kIHJlbW90ZSByZWZlcmVuY2VzIChodHRwL2h0dHBzIGFuZCBmaWxlKSAkcmVmcyB3aWxsIGJlIGRlcmVmZXJlbmNlZC4gRGVmYXVsdHMgdG8gYGZhbHNlYC4KCiMjIyMgYGNvbnZlcnRVbnJlZmVyZW5jZWREZWZpbml0aW9uc2AgKGJvb2xlYW4pCgpEZWZhdWx0cyB0byB0cnVlLgoKSWYgYSBzY2hlbWEgaGFkIGEgZGVmaW5pdGlvbnMgcHJvcGVydHkgKHdoaWNoIGlzIHZhbGlkIGluIEpTT05TY2hlbWEpLCBhbmQgb25seSBzb21lIG9mIHRob3NlIGVudHJpZXMgYXJlIHJlZmVyZW5jZWQsIHdlJ2xsIHN0aWxsIHRyeSBhbmQgY29udmVydCB0aGUgcmVtYWluaW5nIGRlZmluaXRpb25zIHRvIE9wZW5BUEkuIElmIHlvdSBkbyBub3Qgd2FudCB0aGlzIGJlaGF2aW9yLCBzZXQgdGhpcyB0byBgZmFsc2VgLgoKIyMjIyBgZGVyZWZlcmVuY2VPcHRpb25zYCAob2JqZWN0ID0gJFJlZlBhcnNlci5PcHRpb25zKQoKT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBkZXJlZmVyZW5jZXIgKEBhcGlkZXZ0b29scy9qc29uLXNjaGVtYS1yZWYtcGFyc2VyKS4gVG8gcHJldmVudCBjaXJjdWxhciByZWZlcmVuY2VzLCBwYXNzIGB7IGRlcmVmZXJlbmNlOiB7IGNpcmN1bGFyOiAnaWdub3JlJyB9IH1gLgoKIyMgQ29tbWFuZCBMaW5lCgpgYGBzaApVc2FnZToKICAgIGpzb24tc2NoZW1hLXRvLW9wZW5hcGktc2NoZW1hIDxjb21tYW5kPiBbb3B0aW9uc10gPGZpbGU+CgpDb21tYW5kczoKICAgIGNvbnZlcnQgICAgICAgICAgICAgICAgIENvbnZlcnRzIEpTT04gU2NoZW1hIERyYWZ0IDA0IHRvIE9wZW5BUEkgMy4wIFNjaGVtYSBPYmplY3QKCk9wdGlvbnM6CiAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICBTaG93IGhlbHAgZm9yIGFueSBjb21tYW5kCiAgICAtdiwgLS12ZXJzaW9uICAgICAgICAgICBPdXRwdXQgdGhlIENMSSB2ZXJzaW9uIG51bWJlcgogICAgLWQsIC0tZGVyZWZlcmVuY2UgICAgICAgSWYgc2V0IGFsbCBsb2NhbCBhbmQgcmVtb3RlIHJlZmVyZW5jZXMgKGh0dHAvaHR0cHMgYW5kIGZpbGUpICRyZWZzIHdpbGwgYmUgZGVyZWZlcmVuY2VkCmBgYAoKIyMgV2h5PwoKT3BlbkFQSSBpcyBvZnRlbiBkZXNjcmliZWQgYXMgYW4gZXh0ZW5zaW9uIG9mIEpTT04gU2NoZW1hLCBidXQgYm90aCBzcGVjcyBoYXZlIGNoYW5nZWQgb3ZlciB0aW1lIGFuZCBncm93biBpbmRlcGVuZGVudGx5LiBPcGVuQVBJIHYyIHdhcyBiYXNlZCBvbiBKU09OIFNjaGVtYSBkcmFmdCB2NCB3aXRoIGEgbG9uZyBsaXN0IG9mIGRldmlhdGlvbnMsIGJ1dCBPcGVuQVBJIHYzIHNocmFuayB0aGF0IGxpc3QsIHVwcGluZyB0aGVpciBzdXBwb3J0IHRvIGRyYWZ0IHY0IGFuZCBtYWtpbmcgdGhlIGxpc3Qgb2YgZGlzY3JlcGFuY2llcyBzaG9ydGVyLiBUaGlzIGhhcyBiZWVuIHNvbHZlZCBmb3IgT3BlbkFQSSB2My4xLCBidXQgZm9yIHRob3NlIHVzaW5nIE9wZW5BUEkgdjMuMCwgeW91IGNhbiB1c2UgdGhpcyB0b29sIHRvIHNvbHZlIFt0aGUgZGl2ZXJnZW5jZV0oaHR0cHM6Ly9hcGlzeW91d29udGhhdGUuY29tL2Jsb2cvb3BlbmFwaS1hbmQtanNvbi1zY2hlbWEtZGl2ZXJnZW5jZSkuCgohW0RpYWdyYW0gc2hvd2luZyBkYXRhIG1vZGVsICh0aGUgb2JqZWN0cywgcGF5bG9hZCBib2RpZXMsIGV0YykgYW5kIHNlcnZpY2UgbW9kZWwgKGVuZHBvaW50cywgaGVhZGVycywgbWV0YWRhdGEsIGV0YyldKGh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzE2MDAvMCpoaWpJTC0zWGE1RUZaNzgzLnBuZykKClRoaXMgdG9vbCBzZXRzIG91dCB0byBhbGxvdyBmb2xrcyB0byBjb252ZXJ0IGZyb20gSlNPTiBTY2hlbWEgKHRoZWlyIG9uZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGV2ZXJ5dGhpbmcpIHRvIE9wZW5BUEkgKGEgdGhpbmcgZm9yIEhUTUwgZG9jcyBhbmQgbWFraW5nIFNES3MpLgoKIyMgVmVyc2lvbnMKCi0gKipGcm9tOioqIFtKU09OIFNjaGVtYSBEcmFmdCB2NSDigKBdKGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvc3BlY2lmaWNhdGlvbi1saW5rcy5odG1sI2RyYWZ0LTUpCi0gKipUbzoqKiBbT3BlbkFQSSAzLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4zLm1kKQoKX+KAoCBEcmFmdCB2NSBpcyBhbHNvIGtub3duIGFzIERyYWZ0IFdyaWdodCAwMCwgYXMgdGhlIGRyYWZ0cyBhcmUgb2Z0ZW4gbmFtZWQgYWZ0ZXIgdGhlIGF1dGhvciwgYW5kIHRoaXMgd2FzIHRoZSBmaXJzdCBvbmUgYnkgQS4gV3JpZ2h0LiBBbW9uZ3N0IG90aGVyIHRoaW5ncywgZHJhZnQgdjUgYWltZWQgdG8gcmV3cml0ZSB0aGUgbWV0YSBmaWxlcywgYnV0IHRoZSBleHBlcmltZW50IGZhaWxlZCwgbWVhbmluZyB3ZSBuZWVkIHRvIGNvbnRpbnVlIHRvIHVzZSB0aGUgZHJhZnQgdjQgbWV0YWZpbGVzLiBVZ2guXwoKIyMgQ29udmVydGluZyBCYWNrCgpUbyBjb252ZXJ0IHRoZSBvdGhlciB3YXksIGNoZWNrIG91dCBbb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWFdLCB3aGljaCB0aGlzIHBhY2thZ2Ugd2FzIGJhc2VkIG9uLgoKIyMgVGVzdHMKClRvIHJ1biB0aGUgdGVzdC1zdWl0ZToKCmBgYHNoZWxsCm5wbSB0ZXN0CmBgYAoKIyMgVHJlZXdhcmUKClRoaXMgcGFja2FnZSBpcyBbVHJlZXdhcmVdKGh0dHBzOi8vdHJlZXdhcmUuZWFydGgpLiBJZiB5b3UgdXNlIGl0IGluIHByb2R1Y3Rpb24sIHRoZW4gd2UgYXNrIHRoYXQgeW91IFsqKmJ1eSB0aGUgd29ybGQgYSB0cmVlKipdKGh0dHBzOi8vcGxhbnQudHJlZXdhcmUuZWFydGgve3ZlbmZvcn0ve3BhY2thZ2V9KSB0byB0aGFuayB1cyBmb3Igb3VyIHdvcmsuIEJ5IGNvbnRyaWJ1dGluZyB0byB0aGUgVHJlZXdhcmUgZm9yZXN0IHlvdeKAmWxsIGJlIGNyZWF0aW5nIGVtcGxveW1lbnQgZm9yIGxvY2FsIGZhbWlsaWVzIGFuZCByZXN0b3Jpbmcgd2lsZGxpZmUgaGFiaXRhdHMuCgojIyBUaGFua3MKCi0gW1N0b3BsaWdodF1bXSBmb3IgW2RvbmF0aW5nIHRpbWUgYW5kIGVmZm9ydF0oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vYmxvZy9jb21wYW5pZXMtc3VwcG9ydGluZy1vcGVuLXNvdXJjZS8pIHRvIHRoaXMgcHJvamVjdCwgYW5kIG1hbnkgbW9yZS4KLSBbbWlrdW5uXVtdIGZvciBjcmVhdGluZyBbb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWFdIHdoaWNoIHRoaXMgaXMgYmFzZWQgb24uCi0gW1BoaWwgU3R1cmdlb25dW10gZm9yIGZsaXBwaW5nIHRoYXQgY29udmVyc2lvbiBzY3JpcHQgYWJvdXQgZmFjZS4KLSBbV2VXb3JrXVtdIGZvciBnaXZpbmcgdGhpcyBhIGhvbWUgZm9yIGEgd2hpbGUuCi0gW0FsbCBDb250cmlidXRvcnNdW2xpbmstY29udHJpYnV0b3JzXQoKW21pa3Vubl06IGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1bm4KW3dld29ya106IGh0dHBzOi8vZ2l0aHViLmNvbS93ZXdvcmsKW3N0b3BsaWdodF06IGh0dHBzOi8vc3RvcGxpZ2h0LmlvLwpbcGhpbCBzdHVyZ2Vvbl06IGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsc3R1cmdlb24KW29wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hXTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktY29udHJpYi9vcGVuYXBpLXNjaGVtYS10by1qc29uLXNjaGVtYQpbbGluay1jb250cmlidXRvcnNdOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1jb250cmliL2pzb24tc2NoZW1hLXRvLW9wZW5hcGktc2NoZW1hL2dyYXBocy9jb250cmlidXRvcnMK readmeEtag: '"5a1da2f6e2f19679f2af2afba24f30f5f4c853aa"' readmeLastModified: Sun, 02 Jun 2024 02:56:00 GMT repositoryId: 212850148 description: >- Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS library to convert JSON Schema objects to OpenAPI Schema. created: '2019-10-04T15:44:03Z' updated: '2024-09-02T14:31:00Z' language: TypeScript archived: false stars: 111 watchers: 4 forks: 16 owner: openapi-contrib logo: https://avatars.githubusercontent.com/u/49447320?v=4 license: MIT repoEtag: '"af96e957001b5e0d0ed7bc60be36a161f6aa373ba9d6bfff426c4a2f28dc621d"' repoLastModified: Mon, 02 Sep 2024 14:31:00 GMT foundInMaster: true id: c443b19d564b9a8e21fe8b6192f75f8f - source: - https://openapi.tools/ - openapi3 tags name: Unchase.OpenAPI.Connectedservice category: - SDK - Code Generators link: https://github.com/unchase/Unchase.OpenAPI.Connectedservice repository: https://github.com/unchase/unchase.openapi.connectedservice language: .NET source_description: >- Visual Studio extension to generate C# (TypeScript) HttpClient (or C# Controllers) code for OpenAPI web service with NSwag. v2: true v3: true repositoryMetadata: base64Readme: >- IVtMb2dvXShpbWcvVW5jaGFzZS1PcGVuQVBJLVN3YWdnZXItQ29ubmVjdGVkLVNlcnZpY2UtTG9nby5wbmcpCgpbVW5jaGFzZSBPcGVuQVBJIChTd2FnZ2VyKSBDb25uZWN0ZWQgU2VydmljZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPVVuY2hhc2UudW5jaGFzZU9wZW5BUElDb25uZWN0ZWRTZXJ2aWNlKSBpcyBhIFZpc3VhbCBTdHVkaW8gMjAxNy8yMDE5LzIwMjIgZXh0ZW5zaW9uIHRvIGdlbmVyYXRlIGBDI2AgKGBUeXBlU2NyaXB0YCkgYEh0dHBDbGllbnRgIChvciBgQyNgIGBDb250cm9sbGVyc2ApIGNvZGUgZm9yIGBPcGVuQVBJYCAoZm9ybWVybHkgW2BTd2FnZ2VyIEFQSWBdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYWJvdXQvKSkgd2ViIHNlcnZpY2Ugd2l0aCBbTlN3YWddKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcpLgoKPiBTdGFydGluZyBmcm9tIFZpc3VhbCBTdHVkaW8gQ29tbXVuaXR5IDIwMTkgdjE2LjEuMyBleHRlbnNpb25zIGJhc2VkIG9uIGBNaWNyb3NvZnQgQ29ubmVjdGVkIFNlcnZpY2VzYCBub3cgd29yayBmaW5lLgoKPiBUaGUgcHJvamVjdCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgW05pa29sYXkgQ2hlYm90b3YgKCoqVW5jaGFzZSoqKV0oaHR0cHM6Ly9naXRodWIuY29tL3VuY2hhc2UpLgoKIyMgR2V0dGluZyBTdGFydGVkCgojIyMjICoqW1JlYWQgSG93LVRvIG9uIG1lZGl1bS5jb21dKGh0dHBzOi8vbWVkaXVtLmNvbS9AdW5jaGFzZS9ob3ctdG8tZ2VuZXJhdGUtYy1vci10eXBlc2NyaXB0LWNsaWVudC1jb2RlLWZvci1vcGVuYXBpLXN3YWdnZXItc3BlY2lmaWNhdGlvbi1kODgyZDU5ZTNiNzcpKioKCkluc3RhbGwgZnJvbSBgVG9vbHMgLT4gRXh0ZW5zaW9ucyBhbmQgVXBkYXRlc2AgbWVudSBpbnNpZGUgW1Zpc3VhbCBTdHVkaW9dKGh0dHBzOi8vdmlzdWFsc3R1ZGlvLm1pY3Jvc29mdC5jb20vdnMvKSAyMDE3IChmb3IgW1Zpc3VhbFN0dWRpb10oaHR0cHM6Ly92aXN1YWxzdHVkaW8ubWljcm9zb2Z0LmNvbS92cy8pIDIwMTk6IGBFeHRlbnNpb25zIC0+IE1hbmFnZSBFeHRlbnNpb25zYCkgb3IgW2Rvd25sb2FkXShodHRwOi8vdnNpeGdhbGxlcnkuY29tL2V4dGVuc2lvbnMvVW5jaGFzZS5PcGVuQVBJLkNvbm5lY3RlZFNlcnZpY2UuNjMxOTk2MzgtNjIxMS00Mjg1LWJhOGYtNzViMWYwMzI2YzJhL2V4dGVuc2lvbi52c2l4KSAgYXMgYFZTSVhgIHBhY2thZ2UgZnJvbSBWU0dhbGxlcnkgb3IgW2Rvd25sb2FkXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9dW5jaGFzZS51bmNoYXNlT3BlbkFQSUNvbm5lY3RlZFNlcnZpY2UpICBhcyBgVlNJWGAgcGFja2FnZSBmcm9tIFtWaXN1YWwgU3R1ZGlvIE1hcmtldHBsYWNlXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9VW5jaGFzZS51bmNoYXNlb3BlbmFwaWNvbm5lY3RlZHNlcnZpY2UpOgoKIVtBZGRpbmcgVW5jaGFzZSBPcGVuQVBJIChTd2FnZ2VyKSBDb25uZWN0ZWQgU2VydmljZSBpbiBWaXN1YWwgU3R1ZGlvXShpbWcvVW5jaGFzZS1PcGVuQVBJLVN3YWdnZXItQ29ubmVjdGVkLVNlcnZpY2UuZ2lmKQoKIyMgQnVpbGRzIHN0YXR1cwoKfFN0YXR1c3xWYWx1ZXwKfDotLS0tfDotLS06fAp8QnVpbGR8WyFbQnVpbGQgc3RhdHVzXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzLzkwb2V3YW5maDMyZmpjcjYpXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L3VuY2hhc2UvdW5jaGFzZS5vcGVuYXBpLmNvbm5lY3RlZHNlcnZpY2UpCnxCdWlkIEhpc3Rvcnl8IVtCdWlsZCBoaXN0b3J5XShodHRwczovL2J1aWxkc3RhdHMuaW5mby9hcHB2ZXlvci9jaGFydC91bmNoYXNlL3VuY2hhc2Utb3BlbmFwaS1jb25uZWN0ZWRzZXJ2aWNlKQp8R2l0SHViIFJlbGVhc2V8WyFbR2l0SHViIHJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlbGVhc2UvdW5jaGFzZS9VbmNoYXNlLk9wZW5BUEkuQ29ubmVjdGVkc2VydmljZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vdW5jaGFzZS9VbmNoYXNlLk9wZW5BUEkuQ29ubmVjdGVkc2VydmljZS9yZWxlYXNlcy9sYXRlc3QpCnxHaXRIdWIgUmVsZWFzZSBEYXRlfFshW0dpdEh1YiBSZWxlYXNlIERhdGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlbGVhc2UtZGF0ZS91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlL3JlbGVhc2VzL2xhdGVzdCkKfEdpdEh1YiBSZWxlYXNlIERvd25sb2Fkc3xbIVtHaXRodWIgUmVsZWFzZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2Rvd25sb2Fkcy91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlL3RvdGFsLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlL3JlbGVhc2VzL2xhdGVzdCkKfFZTIE1hcmtldHBsYWNlfFshW1ZTIE1hcmtldHBsYWNlXShodHRwOi8vdnNtYXJrZXRwbGFjZWJhZGdlLmFwcGhiLmNvbS92ZXJzaW9uLXNob3J0L3VuY2hhc2UuVW5jaGFzZU9wZW5BUElDb25uZWN0ZWRTZXJ2aWNlLnN2ZyldKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT11bmNoYXNlLnVuY2hhc2VPcGVuQVBJQ29ubmVjdGVkU2VydmljZSkKfFZTIE1hcmtldHBsYWNlIERvd25sb2Fkc3xbIVtWUyBNYXJrZXRwbGFjZSBEb3dubG9hZHNdKGh0dHA6Ly92c21hcmtldHBsYWNlYmFkZ2UuYXBwaGIuY29tL2Rvd25sb2Fkcy1zaG9ydC91bmNoYXNlLlVuY2hhc2VPcGVuQVBJQ29ubmVjdGVkU2VydmljZS5zdmcpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9dW5jaGFzZS51bmNoYXNlT3BlbkFQSUNvbm5lY3RlZFNlcnZpY2UpCnxWUyBNYXJrZXRwbGFjZSBJbnN0YWxsc3xbIVtWUyBNYXJrZXRwbGFjZSBJbnN0YWxsc10oaHR0cDovL3ZzbWFya2V0cGxhY2ViYWRnZS5hcHBoYi5jb20vaW5zdGFsbHMtc2hvcnQvdW5jaGFzZS5VbmNoYXNlT3BlbkFQSUNvbm5lY3RlZFNlcnZpY2Uuc3ZnKV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXVuY2hhc2UudW5jaGFzZU9wZW5BUElDb25uZWN0ZWRTZXJ2aWNlKQoKIyMgRmVhdHVyZXMKCi0gR2VuZXJhdGUgYEMjYCBvciBgVHlwZVNjcmlwdGAgY2xpZW50cy9wcm94aWVzIChjbGllbnQgY29kZSkgZnJvbSBTd2FnZ2VyIDIuMCBhbmQgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbnMKLSBHZW5lcmF0ZSBgQyNgIEFTUC5ORVQgQ29udHJvbGxlciBmcm9tIFN3YWdnZXIgMi4wIGFuZCBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9ucwotICoqRXhwZXJpbWVudGFsKio6IEdlbmVyYXRlIGBDI2Agb3IgYFR5cGVTY3JpcHRgIGNsaWVudHMvcHJveGllcyAoY2xpZW50IGNvZGUpIG9yIEFTUC5ORVQgQ29udHJvbGxlciBmcm9tIE9EYXRhIHNwZWNpZmljYXRpb24gY29udmVydGVkIHRvIE9wZW5BUEkgYmFzZWQgb24gW09wZW5BUEkuTkVULk9EYXRhXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L09wZW5BUEkuTkVULk9EYXRhKQotIEdlbmVyYXRlIGAubnN3YWdgIGZpbGUgZm9yIHVzaW5nIGluIFtgTlN3YWdTdHVkaW9gXShodHRwczovL2dpdGh1Yi5jb20vTlN3YWcvTlN3YWcvd2lraS9OU3dhZ1N0dWRpbykgKG5vIG5lZWQgdG8gaW5zdGFsbCBmb3IgZ2VuZXJhdGluZykKLSBBZGQgcmVxdWlyZWQgZGVwZW5kZW5jaWVzIGZvciB0aGUgYEMjYCBjbGllbnQgKGJlZm9yZSBnZW5lcmF0aW5nKToKCS0gTGlicmFyeSB0YXJnZXRpbmcgLk5FVCBTdGFuZGFyZCAxLjQrOgoJCTEuIE5ld3RvbnNvZnQuSnNvbiAoW051R2V0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uKSkKCQkyLiBTeXN0ZW0uTmV0Lkh0dHAgKFtOdUdldF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL1N5c3RlbS5OZXQuSHR0cCkpCgkJMy4gU3lzdGVtLkNvbXBvbmVudE1vZGVsLkFubm90YXRpb25zIChbTnVHZXRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9TeXN0ZW0uQ29tcG9uZW50TW9kZWwuQW5ub3RhdGlvbnMpKQoJLSBMaWJyYXJ5IHRhcmdldGluZyB0aGUgZnVsbCAuTkVUOgoJCTEuIE5ld3RvbnNvZnQuSnNvbiAoW051R2V0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uKSkKCQkyLiBTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uIChHQUMpCgkJMy4gU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRhdGFBbm5vdGF0aW9ucyAoR0FDKQoJLSBMaWJyYXJ5IHRhcmdldGluZyBQQ0wgMjU5IChQb3J0YWJsZSBDbGFzcyBMaWJyYXJ5KToKCQkxLiBOZXd0b25zb2Z0Lkpzb24gKFtOdUdldF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL05ld3RvbnNvZnQuSnNvbikpCgkJMi4gTWljcm9zb2Z0Lk5ldC5IdHRwIChbTnVHZXRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuTmV0Lkh0dHApKQoJCTMuIFBvcnRhYmxlLkRhdGFBbm5vdGF0aW9ucyAoW051R2V0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUG9ydGFibGUuRGF0YUFubm90YXRpb25zKSkKLSBBZGQgUmVxdWlyZWQgZGVwZW5kZW5jZXMgZm9yIHRoZSBgQyNgIGNvbnRyb2xsZXIgKGJlZm9yZSBnZW5lcmF0aW5nKToKCTEuIE1pY3Jvc29mdC5Bc3BOZXRDb3JlLk12YyAoW051R2V0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0LkFzcE5ldENvcmUuTVZDKSkKLSAqKkNvbW1hbmQqKiB0byBvcGVuIGdlbmVyYXRlZCBgLm5zd2FnYCBhbmQgYC5uc3dhZy5qc29uYCBmaWxlcyBpbiBbTlNXYWdTdHVkaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9OU3dhZy9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKQotICoqQ29tbWFuZCoqIHRvIGNvbXBhcmUgYC5uc3dhZy5qc29uYCBzcGVjaWZpY2F0aW9uIGZpbGUgd2l0aCBhbm90aGVyIGAubnN3YWcuanNvbmAgc3BlY2lmaWNhdGlvbiBmaWxlIChvciBzcGVjaWZpY2F0aW9uIGdpdmVuIGJ5IGBlbmRwb2ludGApCi0gU3RvcmFnZSBvZiB0aGUgbGFzdCAxMCBlbmRwb2ludHMgKHNwZWNpZmljYXRpb24gcGF0aCkKCiMjIFNldHRpbmdzIE1lYW5pbmcKCk1lYW5pbmcgb2YgdGhlIFVuY2hhc2UgW09wZW5BUEkgKFN3YWdnZXIpIENvbm5lY3RlZCBTZXJ2aWNlXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9dW5jaGFzZS51bmNoYXNlT3BlbkFQSUNvbm5lY3RlZFNlcnZpY2UpIHNldHRpbmdzIGFjY29yZGluZyB0byBbTlN3YWdTdHVkaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9OU3dhZy9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKToKCiFbVW5jaGFzZSBPcGVuQVBJIChTd2FnZ2VyKSBDb25uZWN0ZWQgU2VydmljZSBzZXR0aW5ncyBtZWFuaW5nXShpbWcvVW5jaGFzZS1PcGVuQVBJLVN3YWdnZXItQ29ubmVjdGVkLVNlcnZpY2UtU2V0dGluZ3MtTWVhbmluZy5wbmcpCgojIyBFeGNsdWRlIHR5cGUgbmFtZXMKClNpbmNlIFt2MS40LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlL3JlbGVhc2VzL3RhZy92MS40LjApIHlvdSBjYW4gZXhjbHVkZSB0eXBlIG5hbWVzIGluIHNlcGFyYXRlIFdpbmRvdyBmb3IgQyMgY2xpZW50IGNvZGUgZ2VuZXJhdGlvbjoKCiFbVW5jaGFzZSBPcGVuQVBJIChTd2FnZ2VyKSBDb25uZWN0ZWQgU2VydmljZSAtIGV4Y2x1ZGUgdHlwZSBuYW1lc10oaW1nL0NzaGFycC1DbGllbnQtR2VuZXJhdGlvbi1FeGNsdWRlLVR5cGUtTmFtZXMucG5nKQoKIyMgR2VuZXJhdGUgY29kZSBmcm9tIE9EYXRhIHNwZWNpZmljYXRpb24gY29udmVydGVkIHRvIE9wZW5BUEkgc3BlY2lmaWNhdGlvbgoKU2luY2UgW3YxLjUuMF0oaHR0cHM6Ly9naXRodWIuY29tL3VuY2hhc2UvVW5jaGFzZS5PcGVuQVBJLkNvbm5lY3RlZHNlcnZpY2UvcmVsZWFzZXMvdGFnL3YxLjQuMCkgeW91IGNhbiBnZW5lcmF0ZSBjb2RlIGZyb20gT0RhdGEgc3BlY2lmaWNhdGlvbiBjb252ZXJ0ZWQgdG8gT3BlbkFQSSBzcGVjaWZpY2F0aW9uOgoKIVtVbmNoYXNlIE9wZW5BUEkgKFN3YWdnZXIpIENvbm5lY3RlZCBTZXJ2aWNlIC0gZ2VuZXJhdGUgZnJvbSBPRGF0YV0oaW1nL0NzaGFycC1DbGllbnQtR2VuZXJhdGlvbi1PRGF0YS5wbmcpCgojIyBDdXN0b20gQ29tbWFuZHMKCiMjIyBgT3BlbiBpbiBOU3dhZ1N0dWRpb2AgQ29tbWFuZAoKU2luY2UgKnYxLjEuKiogaGF2ZSBiZWVuIGFkZGVkIG1lbnUgY29tbWFuZCBlbWJlZGRlZCBpbiBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEV4cGxvcmVyIGNvbnRleHQgbWVudSBsZXRzIHlvdSBvcGVuIGdlbmVyYXRlZCBgLm5zd2FnYCBhbmQgYC5uc3dhZy5qc29uYCBmaWxlcyBpbiBbTlN3YWdTdHVkaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9OU3dhZy9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKS4KClRoaXMgZXh0ZW5zaW9uIGlzIGZvciB0aG9zZSB0aW1lcyB3aGVyZSB5b3UgZ2VuZXJhdGUgYC5uc3dhZ2AgYW5kIGAubnN3YWcuanNvbmAgZmlsZXMgYW5kIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gcXVpY2tseSBvcGVuIGl0IGluIFtOU3dhZ1N0dWRpb10oaHR0cHM6Ly9naXRodWIuY29tL05Td2FnL05Td2FnL3dpa2kvTlN3YWdTdHVkaW8pLgoKIyMjIyBQcmVyZXF1aXNpdGUKCj4gSW4gb3JkZXIgdG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFtWaXN1YWwgU3R1ZGlvXShodHRwczovL3Zpc3VhbHN0dWRpby5taWNyb3NvZnQuY29tL3ZzLykgMjAxNy8yMDE5LCB0aGlzIGNvbm5lY3RlZCBzZXJ2aWNlIGFzIHdlbGwgYXMgW05Td2FnU3R1ZGlvXShodHRwczovL2dpdGh1Yi5jb20vTlN3YWcvTlN3YWcvd2lraS9OU3dhZ1N0dWRpbykgaW5zdGFsbGVkLgoKIyMjIyBTb2x1dGlvbiBFeHBsb3JlcgoKWW91IGNhbiBvcGVuIGAubnN3YWdgIGFuZCBgLm5zd2FnLmpzb25gIGZpbGVzIGluIFtOU1dhZ1N0dWRpb10oaHR0cHM6Ly9naXRodWIuY29tL05Td2FnL05Td2FnL3dpa2kvTlN3YWdTdHVkaW8pIGJ5IHNpbXBseSByaWdodC1jbGlja2luZyBpdCBpbiBTb2x1dGlvbiBFeHBsb3JlciBhbmQgc2VsZWN0ICoqT3BlbiBpbiBOU3dhZ1N0dWRpbyoqOgoKIVtPcGVuIGluIE5Td2FnU3R1ZGlvIG1lbnUgQ29tbWFuZF0oaW1nL09wZW5XaXRoTlN3YWdDb21tYW5kTWVudS5wbmcpCgojIyMjIFBhdGggdG8gTlN3YWdTdHVkaW8uZXhlCgpJZiB5b3UgaW5zdGFsbGVkIFtOU3dhZ1N0dWRpb10oaHR0cHM6Ly9naXRodWIuY29tL05Td2FnL05Td2FnL3dpa2kvTlN3YWdTdHVkaW8pIGF0IGEgbm9uLWRlZmF1bHQgbG9jYXRpb24sIGEgcHJvbXB0IHdpbGwgYXNrIGZvciB0aGUgcGF0aCB0byBgTlN3YWdTdHVkaW8uZXhlYC4KCllvdSBjYW4gYWx3YXlzIGNoYW5nZSB0aGUgbG9jYXRpb24gaW4gKlRvb2xzIC0+IE9wdGlvbnMgLT4gV2ViIC0+IFVuY2hhc2UgT3BlbkFQSSAoU3dhZ2dlcikgQ29ubmVjdGVkIFNlcnZpY2UqOgoKIVtPcGVuIGluIE5Td2FnU3R1ZGlvIE9wdGlvbl0oaW1nL1VuY2hhc2VPcGVuQVBJQ29ubmVjdGVkU2VydmljZUNvbW1hbmRzT3B0aW9uczEucG5nKQoKIyMjIGBDb21wYXJlIE9wZW5BUEktc3BlY2lmaWNhdGlvbnMuLi5gIENvbW1hbmQKClNpbmNlICp2MS4yLioqIGhhdmUgYmVlbiBhZGRlZCBtZW51IGNvbW1hbmQgZW1iZWRkZWQgaW4gVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBFeHBsb3JlciBjb250ZXh0IG1lbnUgbGV0cyB5b3UgY29tcGFyZSBnZW5lcmF0ZWQgYC5uc3dhZy5qc29uYCBzcGVjaWZpY2F0aW9uLWZpbGUgd2l0aCBhbm90aGVyIGAubnN3YWcuanNvbmAgc3BlY2lmaWNhdGlvbi1maWxlIChvciB3aXRoIHNwZWNpZmljYXRpb24gZ2l2ZW4gYnkgYGVuZHBvaW50YCkuCgpUaGlzIGV4dGVuc2lvbiBpcyBmb3IgdGhvc2UgdGltZXMgd2hlcmUgeW91IGdlbmVyYXRlIGAubnN3YWcuanNvbmAgZmlsZSBhbmQgeW91IHdhbnQgdG8gcXVpY2tseSBjb21wYXJlIGl0IHdpdGggYW5vdGhlciBzcGVjaWZpY2F0aW9uIG9yIHNwZWNpZmljYXRpb24gZ2l2ZW4gYnkgYGVuZHBvaW50YC4KCiMjIyMgUHJlcmVxdWlzaXRlCgo+IEluIG9yZGVyIHRvIHVzZSB0aGlzIGV4dGVuc2lvbiwgeW91IG11c3QgaGF2ZSBbVmlzdWFsIFN0dWRpb10oaHR0cHM6Ly92aXN1YWxzdHVkaW8ubWljcm9zb2Z0LmNvbS92cy8pIDIwMTcvMjAxOSBhcyB3ZWxsIGFzIHRoaXMgY29ubmVjdGVkIHNlcnZpY2UuCgojIyMjIFNvbHV0aW9uIEV4cGxvcmVyCgpZb3UgY2FuIGNvbXBhcmUgYC5uc3dhZy5qc29uYCBzcGVjaWZpY2F0aW9uLWZpbGUgd2l0aCBhbm90aGVyIGAubnN3YWcuanNvbmAgc3BlY2lmaWNhdGlvbi1maWxlIChvciB3aXRoIHNwZWNpZmljYXRpb24gZ2l2ZW4gYnkgYGVuZHBvaW50YCkgYnkgc2ltcGx5IHNlbGVjdGluZyBvbmUgb3IgdHdvIGZpbGVzIGFuZCByaWdodC1jbGlja2luZyB0aGVtIGluIFNvbHV0aW9uIEV4cGxvcmVyIGFuZCBzZWxlY3QgKipDb21wYXJlIE9wZW5BUEktc3BlY2lmaWNhdGlvbnMuLi4qKjoKCiFbQ29tcGFyZSBPcGVuQVBJIFNwZWNpZmljYXRpb25zIENvbW1hbmRdKGltZy9Db21wYXJlT3BlbkFQSVNwZWNpZmljYXRpb25zT25lRmlsZUNvbW1hbmRNZW51LnBuZykgIVtDb21wYXJlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgQ29tbWFuZF0oaW1nL0NvbXBhcmVPcGVuQVBJU3BlY2lmaWNhdGlvbnNUd29GaWxlc0NvbW1hbmRNZW51LnBuZykKCiMjIyMgUGF0aCB0byB0aGUgc3BlY2lmaWNhdGlvbiBgRW5kcG9pbnRgCgpZb3UgY2FuIGFsd2F5cyBjaGFuZ2UgdGhlIHNwZWNpZmljYXRpb24gRW5kcG9pbnQgdG8gY29tcGFyZSB3aXRoIGluICpUb29scyAtPiBPcHRpb25zIC0+IFdlYiAtPiBVbmNoYXNlIE9wZW5BUEkgKFN3YWdnZXIpIENvbm5lY3RlZCBTZXJ2aWNlKjoKCiFbQ29tcGFyZSBPcGVuQVBJIFNwZWNpZmljYXRpb25zIE9wdGlvbl0oaW1nL1VuY2hhc2VPcGVuQVBJQ29ubmVjdGVkU2VydmljZUNvbW1hbmRzT3B0aW9uczIucG5nKQoKIyMjIyBDb21wYXJlIFZpZXcKCiFbQ29tcGFyZSBPcGVuQVBJIFNwZWNpZmljYXRpb25zIENvbW1hbmQgcmVzdWx0XShpbWcvQ29tcGFyZU9wZW5BUElTcGVjaWZpY2F0aW9uc0NvbW1hbmRSZXN1bHQucG5nKQoKIyMgSG93VG9zCgotIFsgXSBBZGQgSG93VG9zIGluIGEgZnV0dXJlCi0gWyBdIC4uLiBbcmVxdWVzdCBmb3IgSG93VG8geW91IG5lZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlL2lzc3Vlcy9uZXc/dGl0bGU9RE9DKQoKIyMgVHJvdWJsZXNob290aW5nCgojIyMgQ2FuJ3Qgb3BlbiAubnN3YWcgZmlsZSBpbiBOU3dhZ1N0dWRpbwoKLSBZb3UgY2FuIHVzZSAqKk9wZW4gaW4gTlN3YWdTdHVkaW8qKiBtZW51IGNvbW1hbmQKLSBJZiBnZW5lcmF0ZWQgY29kZSBjb3JydXB0ZWQsIHRyeSB0byBvcGVuIGAubnN3YWdgIGZpbGUgaW4gW2BOU3dhZ1N0dWRpb2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcvd2lraS9OU3dhZ1N0dWRpbykgKFdpbmRvd3MgR1VJIGZvciBlZGl0aW5nIC4qbnN3YWcgZmlsZXMpCi0gSWYgaXQgZG9lc24ndCBvcGVuLCB0cnkgdG8gY3JlYXRlIG5ldyBgLm5zd2FnYCBmaWxlIGluIFtgTlN3YWdTdHVkaW9gXShodHRwczovL2dpdGh1Yi5jb20vUlN1dGVyL05Td2FnL3dpa2kvTlN3YWdTdHVkaW8pIGZvciB0aGUgc2FtZSBBUEkgc2VydmljZSBsaW5rIGFuZCBjaGVjayB0aGUgZGlmZmVyZW5jZXMKCiMjIyBJbnN0YWxsYXRpb24gY29tcGxldGVzIGJ1dCBJIGNhbid0IHNlZSB0aGUgU2VydmljZSBpbiB0aGUgbGlzdCBvZiBjb25uZWN0ZWQgc2VydmljZXMgKFZpc3VhbCBTdHVkaW8gMjAxOSkKCi0gUmVsZXZhbnQgW2J1ZyByZXBvcnRdKGh0dHBzOi8vZGV2ZWxvcGVyY29tbXVuaXR5LnZpc3VhbHN0dWRpby5jb20vY29udGVudC9wcm9ibGVtLzQ2ODc1MS92czIwMTktcHJldmlldy1jYW5ub3QtaW5zdGFsbC1jb25uZWN0ZWQtc2VydmljZS1leC5odG1sKS4gYENvbm5lY3RlZCBTZXJ2aWNlc2AgcmVzdG9yZWQgaW4gdGhlIHYxNi4xLjMgdXBkYXRlIHRvIFtWaXN1YWwgU3R1ZGlvXShodHRwczovL3Zpc3VhbHN0dWRpby5taWNyb3NvZnQuY29tL3ZzLykgMjAxOS4KCiMjIFJvYWRtYXAKClNlZSB0aGUgW2NoYW5nZWxvZ10oQ0hBTkdFTE9HLm1kKSBmb3IgdGhlIGZ1cnRoZXIgZGV2ZWxvcG1lbnQgcGxhbnMgYW5kIHZlcnNpb24gaGlzdG9yeS4KCiMjIEZlZWRiYWNrCgpQbGVhc2UgZmVlbCBmcmVlIHRvIGFkZCB5b3VyIFtyZXZpZXddKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT11bmNoYXNlLnVuY2hhc2VPcGVuQVBJQ29ubmVjdGVkU2VydmljZSZzc3I9ZmFsc2UjcmV2aWV3LWRldGFpbHMpLCBbcmVxdWVzdCBhIGZlYXR1cmVdKGh0dHBzOi8vZ2l0aHViLmNvbS91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlL2lzc3Vlcy9uZXc/dGl0bGU9RkVBVFVSRSksIFthc2sgYSBxdWVzdGlvbl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXVuY2hhc2UudW5jaGFzZU9wZW5BUElDb25uZWN0ZWRTZXJ2aWNlJnNzcj1mYWxzZSNxbmEpIG9yIFtyZXBvcnQgYSBidWddKGh0dHBzOi8vZ2l0aHViLmNvbS91bmNoYXNlL1VuY2hhc2UuT3BlbkFQSS5Db25uZWN0ZWRzZXJ2aWNlL2lzc3Vlcy9uZXc/dGl0bGU9QlVHKSBpbmNsdWRpbmcgaW4gY29ubmVjdGVkIHNlcnZpY2U6IAoKIVtVbmNoYXNlIE9wZW5BUEkgQ29ubmVjdGVkIFNlcnZpY2UgUmVwb3J0IGEgQnVnXShpbWcvVW5jaGFzZS1PcGVuQVBJLUNvbm5lY3RlZC1TZXJ2aWNlLVJlcG9ydEJ1Zy5wbmcpCgpUaGFuayB5b3UgaW4gYWR2YW5jZSEKCiMjIFRoYW5rIG1lIQoKSWYgeW91IGxpa2Ugd2hhdCBJIGFtIGRvaW5nIGFuZCB5b3Ugd291bGQgbGlrZSB0byB0aGFuayBtZSwgcGxlYXNlIGNvbnNpZGVyOgoKWyFbQnV5IG1lIGEgY29mZmUhXShpbWcvYnV5bWVhY29mZmUucG5nKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uaWtvbGF5Y2hlYm90b3YpCgpUaGFuayB5b3UgZm9yIHlvdXIgc3VwcG9ydCEKCi0tLS0tLS0tLS0KCkNvcHlyaWdodCAmY29weTsgMjAxOSBbTmlrb2xheSBDaGVib3RvdiAoKipVbmNoYXNlKiopXShodHRwczovL2dpdGh1Yi5jb20vdW5jaGFzZSkgLSBQcm92aWRlZCB1bmRlciB0aGUgW0FwYWNoZSBMaWNlbnNlIDIuMF0oTElDRU5TRS5tZCkuCgo= readmeEtag: '"de7939daae9afa578f8259c0e47d0ad3c1d2ccf3"' readmeLastModified: Tue, 20 Jun 2023 19:32:43 GMT repositoryId: 178596119 description: >- :scroll: Visual Studio extension to generate OpenAPI (Swagger) web service reference. created: '2019-03-30T18:26:16Z' updated: '2024-08-27T18:14:07Z' language: C# archived: false stars: 108 watchers: 2 forks: 17 owner: unchase logo: https://avatars.githubusercontent.com/u/29679226?v=4 license: Apache-2.0 repoEtag: '"766673fbad5bddca19609d26c1dbc87757eaa23f754bf63c408bdff509ba5a8d"' repoLastModified: Tue, 27 Aug 2024 18:14:07 GMT foundInMaster: true id: b552c4cab06ab1125ad610aaea022ee3 - source: https://openapi.tools/ name: VSCode OpenAPI Preview category: Documentation language: TypeScript link: https://marketplace.visualstudio.com/items?itemName=zoellner.openapi-preview repository: https://github.com/zoellner/openapi-preview source_description: >- Preview OpenAPI v3.0 & v3.1 documents in Visual Studio Code using Spotlight Elements. v2: false v3: true v3_1: true id: b17945a4cfa653f43157e65867d551ec repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXByZXZpZXcKCkludGVncmF0ZWQgV2ViIFBhbmVsIHByZXZpZXcgZm9yIGFuIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKQpPcGVuQVBJIEZvcm1hdCAzLjEKCiMjIEZlYXR1cmVzCgoqIERpc3BsYXlzIEFQSSBkb2NzIGluIGEgYnVpbGQgaW4gd2ViIHBhbmVsIHVzaW5nIFtTcG90bGlnaHQgRWxlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9lbGVtZW50cykuCgoKIyMgVXNhZ2UKCiogT3BlbiB0aGUgbWFpbiAqT3BlbkFQSSBZQU1MIGZpbGUqLgoqIFJ1biB0aGUgQ29tbWFuZCBg4oen4oyYUGAgKG9uIE1hYykgb3IgYEN0cmwrU2hpZnQrUGAgKG9uIFdpbmRvd3MpICoqT3BlbkFQSSBQcmV2aWV3KiouCg== readmeEtag: '"7cd2c62d79bed77fc8ed34039610334c16c1f1d3"' readmeLastModified: Thu, 11 Jul 2024 06:28:46 GMT repositoryId: 160854009 description: OpenAPI Preview Extension for VS Code created: '2018-12-07T17:16:12Z' updated: '2024-07-16T19:45:50Z' language: TypeScript archived: false stars: 7 watchers: 3 forks: 3 owner: zoellner logo: https://avatars.githubusercontent.com/u/2665319?v=4 license: MIT repoEtag: '"94fc86e549d406927f6cda5f78bbfb338ae1f50f06e531b050ccaaf38d86ada7"' repoLastModified: Tue, 16 Jul 2024 19:45:50 GMT foundInMaster: true - source: https://openapi.tools/ name: openapi-processor category: Server language: Java link: https://docs.openapiprocessor.io repository: https://github.com/openapi-processor source_description: > Generates java interfaces & model classes for Spring Boot (annotation based, MVC & WebFlux) or Micronaut (annotation based) from an OpenAPI yaml description. Provides powerful type mapping capabilities to adjust the generated code. Gradle & Maven support. Playground. v2: false v3: true v3_1: true id: 8dde59828e2a316fa7a7f1f7f038cea6 foundInMaster: true - source: https://openapi.tools/ name: openapi-processor/openapi-parser category: - Parsers - Schema Validators language: Java link: https://github.com/openapi-processor/openapi-parser repository: https://github.com/openapi-processor/openapi-parser source_description: > OpenAPI parser with (json schema) validation (currently 3.0 only). Separate apis for OpenAPI 3.0 & 3.1. Easily get resolved $ref objects. Pluggable document reader & json/yaml converter. Minimal dependencies. v2: false v3: true v3_1: true id: 22335853514b99484180f312b1db1fa1 repositoryMetadata: base64Readme: >- Om9wZW5hcGk6IGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8KOnBhcnNlcjogaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktcHJvY2Vzc29yL29wZW5hcGktcGFyc2VyL3RyZWUvbWFzdGVyL29wZW5hcGktcGFyc2VyCjpwYXJzZXItYm9tOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1wcm9jZXNzb3Ivb3BlbmFwaS1wYXJzZXIvdHJlZS9tYXN0ZXIvb3BlbmFwaS1wYXJzZXItYm9tCjp2YWxpZGF0b3I6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLXByb2Nlc3Nvci9vcGVuYXBpLXBhcnNlci90cmVlL21hc3Rlci9qc29uLXNjaGVtYS12YWxpZGF0b3IKOnZhbGlkYXRvci1ib206IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLXByb2Nlc3Nvci9vcGVuYXBpLXBhcnNlci90cmVlL21hc3Rlci9qc29uLXNjaGVtYS12YWxpZGF0b3ItYm9tCjppby1pbnRlcmZhY2VzOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1wcm9jZXNzb3Ivb3BlbmFwaS1wYXJzZXIvdHJlZS9tYXN0ZXIvaW8taW50ZXJmYWNlcwo6Y29udmVydGVyLWphY2tzb246IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLXByb2Nlc3Nvci9vcGVuYXBpLXBhcnNlci90cmVlL21hc3Rlci9pby1qYWNrc29uCjpjb252ZXJ0ZXItc25ha2V5YW1sOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1wcm9jZXNzb3Ivb3BlbmFwaS1wYXJzZXIvdHJlZS9tYXN0ZXIvaW8tc25ha2V5YW1sCjptZW1vcnk6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLXByb2Nlc3Nvci9vcGVuYXBpLXBhcnNlci90cmVlL21hc3Rlci9tZW1vcnktcHJvdG9jb2wKOmphY2tzb246IGh0dHBzOi8vZ2l0aHViLmNvbS9GYXN0ZXJYTUwvamFja3Nvbgo6c25ha2V5YW1sOiBodHRwczovL2JpdGJ1Y2tldC5vcmcvc25ha2V5YW1sL3NuYWtleWFtbC9zcmMvbWFzdGVyLwoKOmFsbC1jaTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktcHJvY2Vzc29yL29wZW5hcGktcGFyc2VyL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FidWlsZAo6YWxsLWNpLWJhZGdlOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1wcm9jZXNzb3Ivb3BlbmFwaS1wYXJzZXIvd29ya2Zsb3dzL2J1aWxkL2JhZGdlLnN2ZwoKOmNlbnRyYWwtc2VhcmNoOiBodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9aW8ub3BlbmFwaXByb2Nlc3Nvcgo6cGFyc2VyLWNlbnRyYWwtYmFkZ2U6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2lvLm9wZW5hcGlwcm9jZXNzb3Ivb3BlbmFwaS1wYXJzZXI/bGFiZWw9TWF2ZW4lMjBDZW50cmFsCjpwYXJzZXItYm9tLWNlbnRyYWwtYmFkZ2U6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2lvLm9wZW5hcGlwcm9jZXNzb3Ivb3BlbmFwaS1wYXJzZXItYm9tP2xhYmVsPU1hdmVuJTIwQ2VudHJhbAo6dmFsaWRhdG9yLWNlbnRyYWwtYmFkZ2U6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2lvLm9wZW5hcGlwcm9jZXNzb3IvanNvbi1zY2hlbWEtdmFsaWRhdG9yP2xhYmVsPU1hdmVuJTIwQ2VudHJhbAo6dmFsaWRhdG9yLWJvbS1jZW50cmFsLWJhZGdlOiBodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby5vcGVuYXBpcHJvY2Vzc29yL2pzb24tc2NoZW1hLXZhbGlkYXRvci1ib20/bGFiZWw9TWF2ZW4lMjBDZW50cmFsCjppbnRlcmZhY2VzLWNlbnRyYWwtYmFkZ2U6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2lvLm9wZW5hcGlwcm9jZXNzb3IvaW8taW50ZXJmYWNlcz9sYWJlbD1NYXZlbiUyMENlbnRyYWwKOmphY2tzb24tY2VudHJhbC1iYWRnZTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3YvaW8ub3BlbmFwaXByb2Nlc3Nvci9pby1qYWNrc29uP2xhYmVsPU1hdmVuJTIwQ2VudHJhbAo6c25ha2V5YW1sLWNlbnRyYWwtYmFkZ2U6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2lvLm9wZW5hcGlwcm9jZXNzb3IvaW8tc25ha2V5YW1sP2xhYmVsPU1hdmVuJTIwQ2VudHJhbAoKSXQgaXMgdXNhYmxlLCBpdCBpcyB1c2VkIGFzIHRoZSBpbnRlcm5hbCBvcGVuYXBpIHBhcnNlci92YWxpZGF0b3IgYnkgb3BlbmFwaS1wcm9jZXNzb3IuCgo9PSBvcGVuYXBpLXBhcnNlciAmIHZhbGlkYXRvcgoKYSBKYXZhIDExIGJhc2VkIGxpbms6e29wZW5hcGl9W09wZW5BUEldIDMuMC54ICYgMy4xIHBhcnNlciB3aXRoIHZhbGlkYXRpb24gYW5kIHBsdWdnYWJsZSBkb2N1bWVudCByZWFkZXIgJiBqc29uL3lhbWwgY29udmVydGVyLgoKKiBwYXJzZSBPcGVuQVBJIDMuMC54ICYgMy4xCiogdmFsaWRhdGUgT3BlbkFQSSAzLjAueCAmIDMuMSAoanNvbiBzY2hlbWEgdmFsaWRhdGlvbiwgY2FuIGZvbGxvdyAkcmVmJ3MgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQpCiogc2VwYXJhdGUgYXBpcyBmb3IgT3BlbkFQSSAzLjAgJiAzLjEKKiBlYXNpbHkgZ2V0IHJlc29sdmVkICRyZWYgb2JqZWN0CiogbWluaW1hbCBkZXBlbmRlbmNpZXMKKiBwbHVnZ2FibGUgZG9jdW1lbnQgcmVhZGVyCiogcGx1Z2dhYmxlIGpzb24veWFtbCBjb252ZXJ0ZXIKKiBwbHVnZ2FibGUgYGZvcm1hdGAgdmFsaWRhdG9ycyAocGxhbm5lZCkKCj09IG1vZHVsZXMKCi8vIGJhZGdlcwpsaW5rOnthbGwtY2l9W2ltYWdlOnthbGwtY2ktYmFkZ2V9W11dCgoKPT09IGxpbms6e3BhcnNlcn1bb3BlbmFwaS1wYXJzZXJdCgpsaW5rOntjZW50cmFsLXNlYXJjaH1baW1hZ2U6e3BhcnNlci1jZW50cmFsLWJhZGdlfVtdXQoKdGhlIGxpbms6e29wZW5hcGl9W09wZW5BUEldIHBhcnNlci4KCj09PSBsaW5rOntwYXJzZXItYm9tfVtvcGVuYXBpLXBhcnNlci1ib21dCgpsaW5rOntjZW50cmFsLXNlYXJjaH1baW1hZ2U6e3BhcnNlci1ib20tY2VudHJhbC1iYWRnZX1bXV0KCkEgImJpbGwgb2YgbWF0ZXJpYWxzIiBQT00gZm9yIG9wZW5hcGktcGFyc2VyIGRlcGVuZGVuY2llcy4KCj09PSBsaW5rOnt2YWxpZGF0b3J9W2pzb24tc2NoZW1hLXZhbGlkYXRvcl0KCmxpbms6e2NlbnRyYWwtc2VhcmNofVtpbWFnZTp7dmFsaWRhdG9yLWNlbnRyYWwtYmFkZ2V9W11dCmltYWdlOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGYm93dGllLnJlcG9ydCUyRmJhZGdlcyUyRmphdmEtaW8ub3BlbmFwaXByb2Nlc3Nvci5qc29uLXNjaGVtYS12YWxpZGF0b3IlMkZzdXBwb3J0ZWRfdmVyc2lvbnMuanNvbltTdXBwb3J0ZWQgRGlhbGVjdHNdCgp0aGUgSlNPTiBTY2hlbWEgdmFsaWRhdG9yIHVzZWQgYnkgdGhlIGBvcGVuYXBpLXBhcnNlcmAuCgo9PT0gbGluazp7dmFsaWRhdG9yLWJvbX1banNvbi1zY2hlbWEtdmFsaWRhdG9yLWJvbV0KCmxpbms6e2NlbnRyYWwtc2VhcmNofVtpbWFnZTp7dmFsaWRhdG9yLWJvbS1jZW50cmFsLWJhZGdlfVtdXQoKQSAiYmlsbCBvZiBtYXRlcmlhbHMiIFBPTSBmb3IganNvbi1zY2hlbWEtdmFsaWRhdG9yIGRlcGVuZGVuY2llcy4KCj09PSBsaW5rOntjb252ZXJ0ZXItamFja3Nvbn1baW8tamFja3Nvbl0KCmxpbms6e2NlbnRyYWwtc2VhcmNofVtpbWFnZTp7amFja3Nvbi1jZW50cmFsLWJhZGdlfVtdXQoKanNvbi95YW1sIGBSZWFkZXJgICYgYENvbnZlcnRlcmAgYmFzZWQgb24gbGluazp7amFja3Nvbn1bSmFja3Nvbl0uCgo9PT0gbGluazp7Y29udmVydGVyLXNuYWtleWFtbH1baW8tc25ha2V5YW1sXQoKbGluazp7Y2VudHJhbC1zZWFyY2h9W2ltYWdlOntzbmFrZXlhbWwtY2VudHJhbC1iYWRnZX1bXV0KCnlhbWwgYFJlYWRlcmAgJiBgQ29udmVydGVyYCBiYXNlZCBvbiBsaW5rOntzbmFrZXlhbWx9W3NuYWtleWFtbF0uCgo9PT0gbGluazp7aW8taW50ZXJmYWNlc31baW8taW50ZXJmYWNlc10KCmxpbms6e2NlbnRyYWwtc2VhcmNofVtpbWFnZTp7aW50ZXJmYWNlcy1jZW50cmFsLWJhZGdlfVtdXQoKZGVmaW5lcyB0aGUgaW50ZXJmYWNlcyBmb3IgdGhlIHBsdWdnYWJsZSBkb2N1bWVudCByZWFkZXIgYW5kIGpzb24veWFtbCBjb252ZXJ0ZXIuIE9ubHkgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgYWRkaXRpb25hbCByZWFkZXIgb3IgY29udmVydGVyLgo= readmeEtag: '"126ea96b40895bafa05641d7cfb12093dcda65dc"' readmeLastModified: Sun, 04 Aug 2024 12:47:14 GMT repositoryId: 418185783 description: OpenAPI 3.0/3.1 Parser & JSON Schema Validator, Java created: '2021-10-17T16:14:37Z' updated: '2024-08-24T15:08:28Z' language: Java archived: false stars: 12 watchers: 2 forks: 1 owner: openapi-processor logo: https://avatars.githubusercontent.com/u/66728774?v=4 license: Apache-2.0 repoEtag: '"91bcf81b1809b48bde10c30bfa2cd6a650fe660a8b2a99e8e90c7b9425903e7e"' repoLastModified: Sat, 24 Aug 2024 15:08:28 GMT foundInMaster: true - source: https://openapi.tools/ name: mitmproxy2swagger category: - Auto Generators - Server Implementations language: Python link: https://github.com/alufers/mitmproxy2swagger repository: https://github.com/alufers/mitmproxy2swagger source_description: >- A tool for automatically converting mitmproxy captures to OpenAPI 3.0 specifications. Automatically reverse-engineer REST APIs by just running the apps and capturing the traffic. v3: true id: 8799f612e2b1a072f59a35691ca68ff3 repositoryMetadata: base64Readme: >- IyBtaXRtcHJveHkyc3dhZ2dlcgoKWyFbUHlQSSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcHkvbWl0bXByb3h5MnN3YWdnZXIuc3ZnKV0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL3B5L21pdG1wcm94eTJzd2FnZ2VyKQpbIVtBcmNoIExpbnV4IHJlcG9zaXRvcnldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYXJjaGxpbnV4LW1pdG1wcm94eTJzd2FnZ2VyLWJsdWUpXShodHRwczovL2FyY2hsaW51eC5vcmcvcGFja2FnZXMvZXh0cmEvYW55L21pdG1wcm94eTJzd2FnZ2VyLykKCjxodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS81NDAwOTQwLzE2ODA4NjgxOC1jNDhmNjBhYi0zZjk1LTQyZWItYjQzNS1jOGIxYTYzMjZiODEubXA0PgoKQSB0b29sIGZvciBhdXRvbWF0aWNhbGx5IGNvbnZlcnRpbmcgW21pdG1wcm94eV0oaHR0cHM6Ly9taXRtcHJveHkub3JnLykgY2FwdHVyZXMgdG8gW09wZW5BUEkgMy4wXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIHNwZWNpZmljYXRpb25zLiBUaGlzIG1lYW5zIHRoYXQgeW91IGNhbiBhdXRvbWF0aWNhbGx5IHJldmVyc2UtZW5naW5lZXIgUkVTVCBBUElzIGJ5IGp1c3QgcnVubmluZyB0aGUgYXBwcyBhbmQgY2FwdHVyaW5nIHRoZSB0cmFmZmljLgoKLS0tCgoqKvCfhpUgTkVXISoqCgpBZGRlZCBzdXBwb3J0IGZvciBwcm9jZXNzaW5nIEhBUiBleHBvcnRlZCBmcm9tIHRoZSBicm93c2VyIERldlRvb2xzLiBTZWUgW1VzYWdlIC0gSEFSXSgjaGFyKSBmb3IgbW9yZSBkZXRhaWxzLgoKLS0tCgojIyBJbnN0YWxsYXRpb24KCkZpcnN0IHlvdSB3aWxsIG5lZWQgcHl0aG9uMyBhbmQgcGlwMy4KCmBgYGJhc2gKJCBwaXAgaW5zdGFsbCBtaXRtcHJveHkyc3dhZ2dlcgojIC4uLiBvciAuLi4KJCBwaXAzIGluc3RhbGwgbWl0bXByb3h5MnN3YWdnZXIKIyAuLi4gb3IgLi4uCiQgZ2l0IGNsb25lIGdpdEBnaXRodWIuY29tOmFsdWZlcnMvbWl0bXByb3h5MnN3YWdnZXIuZ2l0CiQgY2QgbWl0bXByb3h5MnN3YWdnZXIKJCBkb2NrZXIgYnVpbGQgLXQgbWl0bXByb3h5MnN3YWdnZXIgLgpgYGAKClRoZW4gY2xvbmUgdGhlIHJlcG8gYW5kIHJ1biBgbWl0bXByb3h5MnN3YWdnZXJgIGFzIHBlciBleGFtcGxlcyBiZWxvdy4KCiMjIFVzYWdlCgojIyMgTWl0bXByb3h5CgpUbyBjcmVhdGUgYSBzcGVjaWZpY2F0aW9uIGJ5IGluc3BlY3RpbmcgSFRUUCB0cmFmZmljIHlvdSB3aWxsIG5lZWQgdG86CgoxLiBDYXB0dXJlIHRoZSB0cmFmZmljIGJ5IHVzaW5nIHRoZSBtaXRtcHJveHkgdG9vbC4gSSBwZXJzb25hbGx5IHJlY29tbWVuZCB1c2luZyBtaXRtd2ViLCB3aGljaCBpcyBhIHdlYiBpbnRlcmZhY2UgYnVpbHQtaW4gdG8gbWl0bXByb3h5LgoKICAgYGBgYmFzaAogICAkIG1pdG13ZWIKICAgV2ViIHNlcnZlciBsaXN0ZW5pbmcgYXQgaHR0cDovLzEyNy4wLjAuMTo4MDgxLwogICBQcm94eSBzZXJ2ZXIgbGlzdGVuaW5nIGF0IGh0dHA6Ly8qOjk5OTkKICAgLi4uCiAgIGBgYAoKICAgKipJTVBPUlRBTlQqKgoKICAgVG8gY29uZmlndXJlIHlvdXIgY2xpZW50IHRvIHVzZSB0aGUgcHJveHkgZXhwb3NlZCBieSBtaXRtIHByb3h5LCBwbGVhc2UgY29uc3VsdCB0aGUgW21pdG1wcm94eSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MubWl0bXByb3h5Lm9yZy9zdGFibGUvKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCjIuIFNhdmUgdGhlIHRyYWZmaWMgdG8gYSBmbG93IGZpbGUuCgogICBJbiBtaXRtd2ViIHlvdSBjYW4gZG8gdGhpcyBieSB1c2luZyB0aGUgIkZpbGUiIG1lbnUgYW5kIHNlbGVjdGluZyAiU2F2ZSI6CgogICAhW0Egc2NyZWVuc2hvdCBzaG93aW5nIHRoZSBsb2NhdGlvbiBvZiB0aGUgIlNhdmUiIG9wdGlvbiBpbiB0aGUgIkZpbGUiIG1lbnVdKC4vZG9jcy9taXRtd2ViX3NhdmUucG5nKQoKMy4gUnVuIHRoZSBmaXJzdCBwYXNzIG9mIG1pdG1wcm94eTJzd2FnZ2VyOgoKICAgYGBgYmFzaAogICAkIG1pdG1wcm94eTJzd2FnZ2VyIC1pIDxwYXRoX3RvX21pdG1wdG94eV9mbG93PiAtbyA8cGF0aF90b19vdXRwdXRfc2NoZW1hPiAtcCA8YXBpX3ByZWZpeD4KICAgIyAuLi4gb3IgLi4uCiAgICQgZG9ja2VyIHJ1biAtaXQgLXYgJFBXRDovYXBwIG1pdG1wcm94eTJzd2FnZ2VyIG1pdG1wcm94eTJzd2FnZ2VyIC1pIDxwYXRoX3RvX21pdG1wdG94eV9mbG93PiAtbyA8cGF0aF90b19vdXRwdXRfc2NoZW1hPiAtcCA8YXBpX3ByZWZpeD4KICAgYGBgCgogICBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHNjaGVtYSwgaW4gd2hpY2ggY2FzZSB0aGUgZXhpc3Rpbmcgc2NoZW1hIHdpbGwgYmUgZXh0ZW5kZWQgd2l0aCB0aGUgbmV3IGRhdGEuIFlvdSBjYW4gYWxzbyBydW4gaXQgYSBmZXcgdGltZXMgd2l0aCBkaWZmZXJlbnQgZmxvdyBjYXB0dXJlcywgdGhlIGNhcHR1cmVkIGRhdGEgd2lsbCBiZSBzYWZlbHkgbWVyZ2VkLgoKICAgYDxhcGlfcHJlZml4PmAgaXMgdGhlIGJhc2UgdXJsIG9mIHRoZSBBUEkgeW91IHdpc2ggdG8gcmV2ZXJzZS1lbmdpbmVlci4gWW91IHdpbGwgbmVlZCB0byBvYnRhaW4gaXQgYnkgb2JzZXJ2aW5nIHRoZSByZXF1ZXN0cyBiZWluZyBtYWRlIGluIG1pdG1wcm94eS4KCiAgIEZvciBleGFtcGxlIGlmIGFuIGFwcCBoYXMgbWFkZSByZXF1ZXN0cyBsaWtlIHRoZXNlOgoKICAgYGBgaHR0cAogICBodHRwczovL2FwaS5leGFtcGxlLmNvbS92MS9sb2dpbgogICBodHRwczovL2FwaS5leGFtcGxlLmNvbS92MS91c2Vycy8yCiAgIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3YxL3VzZXJzLzIvcHJvZmlsZQogICBgYGAKCiAgIFRoZSBsaWtlbHkgcHJlZml4IGlzIGBodHRwczovL2FwaS5leGFtcGxlLmNvbS92MWAuCgo0LiBSdW5uaW5nIHRoZSBmaXJzdCBwYXNzIHNob3VsZCBoYXZlIGNyZWF0ZWQgYSBzZWN0aW9uIGluIHRoZSBzY2hlbWEgZmlsZSBsaWtlIHRoaXM6CgogICBgYGB5YW1sCiAgIHgtcGF0aC10ZW1wbGF0ZXM6CiAgICAgIyBSZW1vdmUgdGhlIGlnbm9yZTogcHJlZml4IHRvIGdlbmVyYXRlIGFuIGVuZHBvaW50IHdpdGggaXRzIFVSTAogICAgICMgTGluZXMgdGhhdCBhcmUgY2xvc2VyIHRvIHRoZSB0b3AgdGFrZSBwcmVjZWRlbmNlLCB0aGUgbWF0Y2hpbmcgaXMgZ3JlZWR5CiAgICAgLSBpZ25vcmU6L2FkZHJlc3NlcwogICAgIC0gaWdub3JlOi9iYXNrZXQKICAgICAtIGlnbm9yZTovYmFza2V0L2FkZAogICAgIC0gaWdub3JlOi9iYXNrZXQvY2hlY2tvdXRzCiAgICAgLSBpZ25vcmU6L2Jhc2tldC9jb3Vwb25zL2F0dGFjaC97aWR9CiAgICAgLSBpZ25vcmU6L2Jhc2tldC9jb3Vwb25zL2F0dGFjaC8xMDQ3NTQKICAgYGBgCgogICBZb3Ugc2hvdWxkIGVkaXQgdGhlIHNjaGVtYSBmaWxlIHdpdGggYSB0ZXh0IGVkaXRvciBhbmQgcmVtb3ZlIHRoZSBgaWdub3JlOmAgcHJlZml4IGZyb20gdGhlIHBhdGhzIHlvdSB3aXNoIHRvIGJlIGdlbmVyYXRlZC4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgcGFyYW1ldGVycyBhcHBlYXJpbmcgaW4gdGhlIHBhdGhzLgoKNS4gUnVuIHRoZSBzZWNvbmQgcGFzcyBvZiBtaXRtcHJveHkyc3dhZ2dlcjoKCiAgIGBgYGJhc2gKICAgJCBtaXRtcHJveHkyc3dhZ2dlciAtaSA8cGF0aF90b19taXRtcHRveHlfZmxvdz4gLW8gPHBhdGhfdG9fb3V0cHV0X3NjaGVtYT4gLXAgPGFwaV9wcmVmaXg+IFstLWV4YW1wbGVzXQogICAjIC4uLiBvciAuLi4KICAgJCBkb2NrZXIgcnVuIC1pdCAtdiAkUFdEOi9hcHAgbWl0bXByb3h5MnN3YWdnZXIgbWl0bXByb3h5MnN3YWdnZXIgLWkgPHBhdGhfdG9fbWl0bXB0b3h5X2Zsb3c+IC1vIDxwYXRoX3RvX291dHB1dF9zY2hlbWE+IC1wIDxhcGlfcHJlZml4PiBbLS1leGFtcGxlc10KICAgYGBgCgogICBSdW4gdGhlIGNvbW1hbmQgYSBzZWNvbmQgdGltZSAod2l0aCB0aGUgc2FtZSBzY2hlbWEgZmlsZSkuIEl0IHdpbGwgcGljayB1cCB0aGUgZWRpdGVkIGxpbmVzIGFuZCBnZW5lcmF0ZSBlbmRwb2ludCBkZXNjcmlwdGlvbnMuCgogICBQbGVhc2Ugbm90ZSB0aGF0IG1pdG1wcm94eTJzd2FnZ2VyIHdpbGwgbm90IG92ZXJ3cml0ZSBleGlzdGluZyBlbmRwb2ludCBkZXNjcmlwdGlvbnMsIGlmIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB0aGVtLCB5b3UgY2FuIGRlbGV0ZSB0aGVtIGJlZm9yZSBydW5uaW5nIHRoZSBzZWNvbmQgcGFzcy4KCiAgIFBhc3NpbmcgYC0tZXhhbXBsZXNgIHdpbGwgYWRkIGV4YW1wbGUgZGF0YSB0byByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLiBUYWtlIGNhdXRpb24gd2hlbiB1c2luZyB0aGlzIG9wdGlvbiwgYXMgaXQgbWF5IGFkZCBzZW5zaXRpdmUgZGF0YSAodG9rZW5zLCBwYXNzd29yZHMsIHBlcnNvbmFsIGluZm9ybWF0aW9uIGV0Yy4pIHRvIHRoZSBzY2hlbWEuCiAgIFBhc3NpbmcgYC0taGVhZGVyc2Agd2lsbCBhZGQgaGVhZGVycyBkYXRhIHRvIHJlcXVlc3RzIGFuZCByZXNwb25zZXMuIFRha2UgY2F1dGlvbiB3aGVuIHVzaW5nIHRoaXMgb3B0aW9uLCBhcyBpdCBtYXkgYWRkIHNlbnNpdGl2ZSBkYXRhICh0b2tlbnMsIHBhc3N3b3JkcywgcGVyc29uYWwgaW5mb3JtYXRpb24gZXRjLikgdG8gdGhlIHNjaGVtYS4KCiMjIyBIQVIKCjEuIENhcHR1cmUgYW5kIGV4cG9ydCB0aGUgdHJhZmZpYyBmcm9tIHRoZSBicm93c2VyIERldlRvb2xzLgoKICAgSW4gdGhlIGJyb3dzZXIgRGV2VG9vbHMsIGdvIHRvIHRoZSBOZXR3b3JrIHRhYiBhbmQgY2xpY2sgdGhlICJFeHBvcnQgSEFSIiBidXR0b24uCgogICAhW0Egc2NyZWVuc2hvdCBzaG93aW5nIHdoZXJlIHRoZSBleHBvcnQgaGFyIGJ1dHRvbiBpcyBsb2NhdGVkXSguL2RvY3MvZXhwb3J0X2hhcl9idXR0b24ucG5nKQoKMi4gQ29udGludWUgdGhlIHNhbWUgd2F5IHlvdSB3b3VsZCBkbyB3aXRoIHRoZSBtaXRtcHJveHkgZHVtcC4gYG1pdG1wcm94eTJzd2FnZ2VyYCB3aWxsIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IHRoZSBIQVIgZmlsZSBhbmQgcHJvY2VzcyBpdC4KCiMjIEV4YW1wbGUgb3V0cHV0CgpTZWUgdGhlIFtleGFtcGxlc10oLi9leGFtcGxlX291dHB1dHMvKS4gWW91IHdpbGwgZmluZCBhIGdlbmVyYXRlZCBzY2hlbWEgdGhlcmUgYW5kIGFuIGh0bWwgZmlsZSB3aXRoIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiAodmlhIFtyZWRvYy1jbGldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3JlZG9jLWNsaSkpLgoKU2VlIHRoZSBnZW5lcmF0ZWQgaHRtbCBmaWxlIFtoZXJlXShodHRwczovL3Jhdy5naXRoYWNrLmNvbS9hbHVmZXJzL21pdG1wcm94eTJzd2FnZ2VyL21hc3Rlci9leGFtcGxlX291dHB1dHMvbGlzZWstc3RhdGljLmh0bWwpLgoKIyMgRGV2ZWxvcG1lbnQgYW5kIGNvbnRyaWJ1dGluZwoKVGhpcyBwcm9qZWN0IHVzZXM6CgotIFtwb2V0cnldKGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvKSBmb3IgZGVwZW5kZW5jeSBtYW5hZ2VtZW50Ci0gW3ByZS1jb21taXRdKGh0dHBzOi8vcHJlLWNvbW1pdC5jb20vKSBmb3IgY29kZSBmb3JtYXR0aW5nIGFuZCBsaW50aW5nCi0gW3B5dGVzdF0oaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vc3RhYmxlLykgZm9yIHVuaXQgdGVzdGluZwoKVG8gaW5zdGFsbCB0aGUgZGVwZW5kZW5jaWVzOgoKYGBgYmFzaApwb2V0cnkgaW5zdGFsbApgYGAKClJ1biBsaW50ZXJzOgoKYGBgYmFzaApwcmUtY29tbWl0IHJ1biAtLWFsbC1maWxlcwpgYGAKCkluc3RhbGwgcHJlLWNvbW1pdCBob29rczoKCmBgYGJhc2gKcHJlLWNvbW1pdCBpbnN0YWxsCmBgYAoKUnVuIHRlc3RzOgoKYGBgYmFzaApwb2V0cnkgcnVuIHB5dGVzdApgYGAKClJ1biB0ZXN0cyB3aXRoIGNvdmVyYWdlOgoKYGBgYmFzaApwb2V0cnkgcnVuIHB5dGVzdCAtLWNvdj1taXRtcHJveHkyc3dhZ2dlcgpgYGAKCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"7bc61550d619b1125bbf77e397d6ca00184686ea"' readmeLastModified: Wed, 03 Apr 2024 08:07:41 GMT repositoryId: 491304964 description: Automagically reverse-engineer REST APIs via capturing traffic created: '2022-05-11T23:48:49Z' updated: '2024-09-06T00:15:38Z' language: HTML archived: false stars: 4996 watchers: 21 forks: 216 owner: alufers logo: https://avatars.githubusercontent.com/u/5400940?v=4 repoEtag: '"6fe47f0400bac9135cf0fdc20d99a1296907b81638b1ab958ed65feee62ac73e"' repoLastModified: Fri, 06 Sep 2024 00:15:38 GMT foundInMaster: true - source: https://openapi.tools/ name: OpenApiSpecGeneratorPlugin category: - Auto Generators - Server Implementations language: C# link: >- https://learn.microsoft.com/en-us/microsoft-cloud/dev/dev-proxy/technical-reference/openapispecgeneratorplugin repository: https://github.com/microsoft/dev-proxy source_description: >- Built-in plugin for open-source DevProxy that automatically generates OpenAPI 3.0 Spec from captured network requests v3: true id: 629b95f968f37bea96439a3cddccf385 repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgogICAgPGltZyBhbHQ9IkRldiBQcm94eSIgc3JjPSIuL3NhbXBsZXMvaW1nL2RldnByb3h5LnBuZyIgd2lkdGg9IjEyNSIgLz4KICA8YnI+RGV2IFByb3h5PGJyPgo8L2gxPgoKPGg0IGFsaWduPSJjZW50ZXIiPgogIFRlc3QgdGhlIHVudGVzdGFibGUKPC9oND4KIAo8cCBhbGlnbj0iY2VudGVyIj4KICAgIDxhIGhyZWY9Imh0dHBzOi8vYWthLm1zL2RldnByb3h5L2Rvd25sb2FkIj4KICAgICAgICA8aW1nIGFsdD0iRG93bmxvYWQgTm93IiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZG93bmxvYWQtbm93LWdyZWVuP3N0eWxlPWZvci10aGUtYmFkZ2UiPgogICAgPC9hPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9ha2EubXMvZGV2cHJveHkvZGlzY29yZCI+CiAgICAgICAgPGltZyBhbHQ9IkRpc2NvcmQiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kaXNjb3JkLWNoYXQtZ3JlZW4/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWRpc2NvcmQiPgogICAgPC9hPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSIjZ2V0LXN0YXJ0ZWQiPkdldCBzdGFydGVkPC9hPiB8CiAgPGEgaHJlZj0iaHR0cHM6Ly9ha2EubXMvZGV2cHJveHkvZG9jcyI+RG9jdW1lbnRhdGlvbjwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iI2V4YW1wbGUiPkV4YW1wbGU8L2E+IHwKICA8YSBocmVmPSIjZmVhdHVyZXMiPkZlYXR1cmVzPC9hPiB8CiAgPGEgaHJlZj0iI3RyYWRlbWFya3MiPlRyYWRlbWFya3M8L2E+CjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGRldGFpbHMgY2xhc3M9ImRldGFpbHMtcmVzZXQgYm9yZGVyIHJvdW5kZWQtMiIgb3Blbj0iIj4KICA8c3VtbWFyeSBjbGFzcz0icHgtMyBweS0yIj4KICAgIDxzdmcgYXJpYS1oaWRkZW49InRydWUiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTYiIGRhdGEtdmlldy1jb21wb25lbnQ9InRydWUiIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZGV2aWNlLWNhbWVyYS12aWRlbyI+CiAgICA8cGF0aCBkPSJNMTYgMy43NXY4LjVhLjc1Ljc1IDAgMCAxLTEuMTM2LjY0M0wxMSAxMC41NzV2LjY3NUExLjc1IDEuNzUgMCAwIDEgOS4yNSAxM2gtNy41QTEuNzUgMS43NSAwIDAgMSAwIDExLjI1di02LjVDMCAzLjc4NC43ODQgMyAxLjc1IDNoNy41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2LjY3NWwzLjg2NC0yLjMxOEEuNzUuNzUgMCAwIDEgMTYgMy43NVptLTYuNSAxYS4yNS4yNSAwIDAgMC0uMjUtLjI1aC03LjVhLjI1LjI1IDAgMCAwLS4yNS4yNXY2LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LTYuNVpNMTEgOC44MjVsMy41IDIuMXYtNS44NWwtMy41IDIuMVoiPjwvcGF0aD4KPC9zdmc+CiAgICA8c3BhbiBhcmlhLWxhYmVsPSIiIGNsYXNzPSJtLTEiPvCfk73vuI8gU2ltdWxhdGUgdGhyb3R0bGluZyB1c2luZyBEZXYgUHJveHk8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0iZHJvcGRvd24tY2FyZXQiPjwvc3Bhbj4KICA8L3N1bW1hcnk+CgogIDx2aWRlbyBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzExNTYzMzQ3LzI0OTQyNjU2NS00MTI4NDlhNC0xNWJiLTQ0NmQtYWNkOC00MGI5ZDY0ZWY4YmMubXA0IiBkYXRhLWNhbm9uaWNhbC1zcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzExNTYzMzQ3LzI0OTQyNjU2NS00MTI4NDlhNC0xNWJiLTQ0NmQtYWNkOC00MGI5ZDY0ZWY4YmMubXA0IiBjb250cm9scz0iY29udHJvbHMiIG11dGVkPSJtdXRlZCIgY2xhc3M9ImQtYmxvY2sgcm91bmRlZC1ib3R0b20tMiBib3JkZXItdG9wIHdpZHRoLWZpdCIgc3R5bGU9Im1heC1oZWlnaHQ6NjQwcHg7IG1pbi1oZWlnaHQ6IDIwMHB4Ij4KCiAgPC92aWRlbz4KPC9kZXRhaWxzPgo8L3A+CgpEZXYgUHJveHkgaXMgYSBjb21tYW5kIGxpbmUgdG9vbCBmb3Igc2ltdWxhdGluZyBBUElzIGZvciB0ZXN0aW5nIGFwcHMuCgpJdCBhaW1zIHRvIHByb3ZpZGUgYSBiZXR0ZXIgd2F5IHRvIHRlc3QgYXBwbGljYXRpb25zLgoKVXNlIHRoZSBwcm94eSB0bzoKCi0gc2ltdWxhdGUgZXJyb3JzCi0gc2ltdWxhdGUgQVBJIGJlaGF2aW91cnMKLSBtb2NrIHJlc3BvbnNlcwoKSWRlbnRpZnkgYW5kIGZpeCBpc3N1ZXMgaW4geW91ciBjb2RlIGJlZm9yZSB0aGV5IHJlYWNoIHByb2R1Y3Rpb24uCgojIyBHZXQgc3RhcnRlZAoKQmVnaW4gd2l0aCBvdXIgW3R1dG9yaWFsXShodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vbWljcm9zb2Z0LWNsb3VkL2Rldi9kZXYtcHJveHkvZ2V0LXN0YXJ0ZWQvKS4gSXQgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MgYW5kIHJ1bm5pbmcgdGhlIHByb3h5IGZvciB0aGUgZmlyc3QgdGltZS4KCiMjIEV4YW1wbGUKCkZhaWwgcmVxdWVzdHMgKHdpdGggYSA1MCUgY2hhbmNlKSBhbmQgcmVzcG9uZCB3aXRoIGA0MjkgVG9vIE1hbnkgUmVxdWVzdHNgIG9yIGA1MDMgU2VydmljZSBVbmF2YWlsYWJsZWA6CgpgYGAKZGV2cHJveHkgLS1mYWlsdXJlLXJhdGUgNTAgLS1uby1tb2NrcyAtLWFsbG93ZWQtZXJyb3JzIDQyOSA1MDMKYGBgCgojIyBGZWF0dXJlcwoKLSBydW4gb24gYW55IE9TCiAgLSBXaW5kb3dzCiAgLSBtYWNPUwogIC0gTGludXgKLSBpbnRlcmNlcHQgcmVxdWVzdHMgZnJvbSBNaWNyb3NvZnQgR3JhcGggYW5kIG90aGVyIEFQSXMKLSBzaW11bGF0ZSBlcnJvcnMKLSBzaW11bGF0ZSB0aHJvdHRsaW5nCi0gc2ltdWxhdGUgcmF0ZS1saW1pdGluZwotIG1vY2sgcmVzcG9uc2VzCi0gbW9jayBlcnJvciByZXNwb25zZXMKLSBkZWZpbmUgd2lsZGNhcmQgcGF0aHMgdG8gc2VydmUgbW9ja2VkIHJlc3BvbnNlcwotIG1vY2sgcmVzcG9uc2VzIG9mIGRpZmZlcmVudCB0eXBlcyAoSlNPTiwgYmluYXJ5LCBldGMuKQotIGAkc2VsZWN0YCBndWlkYW5jZSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlCi0gY2FjaGluZyBndWlkYW5jZSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlCi0gT0RhdGEgcGFnaW5nIGd1aWRhbmNlCi0gY2xpZW50LXJlcXVlc3QtaWQgaGVhZGVyIGd1aWRhbmNlCi0gbm9uLXByb2R1Y3Rpb24gYmV0YSBlbmRwb2ludCBndWlkYW5jZSBmb3IgTWljcm9zb2Z0IEdyYXBoCi0gY29uZmlndXJlIHByb3h5IHRvIHlvdXIgbmVlZHMsIGJ5IHNldHRpbmc6CiAgLSBmYWlsdXJlIHJhdGUKICAtIHBvcnQKICAtIHdoZXRoZXIgdG8gdXNlIG1vY2sgcmVzcG9uc2VzIG9yIG5vdAogIC0gVVJMcyB0byBpbnRlcmNlcHQgdHJhZmZpYwotIHJlY29yZCBwcm94eSBhY3Rpdml0eQotIGdldCBwcm94eSBhY3Rpdml0eSBzdW1tYXJ5IHJlcG9ydAotIGRldGVjdCBtaW5pbWFsIE1pY3Jvc29mdCBHcmFwaCBBUEkgcGVybWlzc2lvbnMKLSBjaGVjayBmb3IgZXhjZXNzaXZlIE1pY3Jvc29mdCBHcmFwaCBBUEkgcGVybWlzc2lvbnMKCiMjIFRyYWRlbWFya3MKClRoaXMgcHJvamVjdCBtYXkgY29udGFpbiB0cmFkZW1hcmtzIG9yIGxvZ29zIGZvciBwcm9qZWN0cywgcHJvZHVjdHMsIG9yIHNlcnZpY2VzLiBBdXRob3JpemVkIHVzZSBvZiBNaWNyb3NvZnQgdHJhZGVtYXJrcyBvciBsb2dvcyBpcyBzdWJqZWN0IHRvIGFuZCBtdXN0IGZvbGxvdyBbTWljcm9zb2Z04oCZcyBUcmFkZW1hcmsgJiBCcmFuZCBHdWlkZWxpbmVzXShodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2VuLXVzL2xlZ2FsL2ludGVsbGVjdHVhbHByb3BlcnR5L3RyYWRlbWFya3MvdXNhZ2UvZ2VuZXJhbCkuIFVzZSBvZiBNaWNyb3NvZnQgdHJhZGVtYXJrcyBvciBsb2dvcyBpbiBtb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGlzIHByb2plY3QgbXVzdCBub3QgY2F1c2UgY29uZnVzaW9uIG9yIGltcGx5IE1pY3Jvc29mdCBzcG9uc29yc2hpcC4gQW55IHVzZSBvZiB0aGlyZC1wYXJ0eSB0cmFkZW1hcmtzIG9yIGxvZ29zIGFyZSBzdWJqZWN0IHRvIHRob3NlIHRoaXJkLXBhcnR54oCZcyBwb2xpY2llcy4KCiMjIEEgTWljcm9zb2Z0IEhhY2thdGhvbiAyMDIyIFByb2plY3QKClRoZSBpbml0aWFsIGJ1aWxkIG9mIHRoaXMgcHJvamVjdCB3YXMgY29tcGxldGVkIGluIHRoZSB3ZWVrIG9mIDUtOSBTZXB0ZW1iZXIgMjAyMiBieSBXYWxkZWsgTWFzdHlrYXJ6LCBHYXZpbiBCYXJyb24gYW5kIEdhcnJ5IFRyaW5kZXIKCg== readmeEtag: '"aa1a7b48d82ff140a56ea3f379365f88702587de"' readmeLastModified: Thu, 15 Aug 2024 08:06:18 GMT repositoryId: 534755927 description: >- Dev Proxy is an API simulator that helps you effortlessly test your app beyond the happy path. created: '2022-09-09T18:11:29Z' updated: '2024-09-05T21:36:44Z' language: C# archived: false stars: 470 watchers: 16 forks: 56 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT repoEtag: '"4f45d5fd9e442bc1a595f8432e87ac2ad9bc8c0bcd0733eb106d60f9867e5908"' repoLastModified: Thu, 05 Sep 2024 21:36:44 GMT foundInMaster: true - source: https://openapi.tools/ name: har2openapi category: - Auto Generators - Parsers language: TypeScript link: https://github.com/dcarr178/har2openapi repository: https://github.com/dcarr178/har2openapi source_description: >- Automatically generate OpenAPI 3.0 Spec by using network requests captured in one or more HAR files v2: false v3: true repositoryMetadata: base64Readme: >- IyBoYXIyb3BlbmFwaQoKVGhpcyBwcm9ncmFtIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBBUEkgZG9jdW1lbnRhdGlvbiB2aWEgYSBPcGVuQXBpIFNwZWMgKE9BUykgZmlsZSBieSB1c2luZyBuZXR3b3JrIHJlcXVlc3RzIGNhcHR1cmVkIGluIApvbmUgb3IgbW9yZSBIQVIgZmlsZXMuCgojIyBTdGVwIDEgLSBDcmVhdGUgSEFSIGZpbGUocykKVGhlcmUgYXJlIGxvdHMgb2Ygd2F5cyB0byBjcmVhdGUgSEFSIGZpbGVzIHRvIHVzZSBhcyBpbnB1dCBmb3IgdGhpcyBwcm9ncmFtLiBPbmUgd2F5IGlzIHRvIG1hbnVhbGx5IGNsaWNrIHlvdXIgd2F5CnRocm91Z2ggYSB3ZWIgYXBwbGljYXRpb24gYW5kIGNhcHR1cmUgbmV0d29yayByZXF1ZXN0cyBpbiBDaHJvbWUgYXMgaWxsdXN0cmF0ZWQgaW4gdGhpcyBbaGFuZHkgZ3VpZGVdKGh0dHBzOi8vaGVscC5vMi52ZXJpem9ubWVkaWEuY29tL2hjL2VuLXVzL2FydGljbGVzLzM2MDAwMDA3NDUyMy1Ib3ctdG8tU2F2ZS1hLUhBUi1GaWxlLUxvZy1pbi1Hb29nbGUtQ2hyb21lKS4KCkFub3RoZXIgd2F5IHRvIGdlbmVyYXRlIEhBUiBmaWxlcyBpcyB0byBpbnN0YWxsIFtDaGFybGVzIFByb3h5XShodHRwczovL3d3dy5jaGFybGVzcHJveHkuY29tLykgYW5kIHRoZW4gcnVuIGFsbCB5b3VyCmVuZC10by1lbmQgYnJvd3NlciB0ZXN0cy4gQ2hhcmxlcyBQcm94eSBzYXZlcyBpdHMgcmF3IGNhcHR1cmVzIGluIGEgLmNobHMgZmlsZSBidXQgeW91IGNhbiBleHBvcnQgdGhhdCB0byBhIGhhciBmaWxlIGFzIENoYXJsZXMgUHJveHkgCm91dHB1dHMgaGFyIGZpbGVzIGluIGEgY29udmVuaWVudCBqc29uIGZvcm1hdC4gR2VuZXJhdGluZyBIQVIgZmlsZXMgdXNpbmcgeW91ciBlbmQtdG8tZW5kIHRlc3RzIGNhbiBzYXZlIHlvdSBhIGxvdCBvZgptYW51YWwgY2xpY2tpbmchCgpUaGVyZSBhcmUgbWFueSBvdGhlciB3YXlzIHRvIGdlbmVyYXRlIEhBUiBmaWxlcyBzbyBnbyBjcmF6eS4gR29vZ2xlIGlzIHlvdXIgZnJpZW5kLgoKIyMgU3RlcCAyIC0gR2VuZXJhdGUgcmVxdWVzdC9yZXNwb25zZSBleGFtcGxlcwpTdGFydCBieSBjb3B5aW5nIGBjb25maWcuanNvbi50ZW1wbGF0ZWAgdG8gYGNvbmZpZy5qc29uYC4gT25jZSB5b3UgaGF2ZSBhIHZhbGlkIGNvbmZpZy5qc29uIGZpbGUsIHJ1bgpgYGAgYmFzaApub2RlIGluZGV4LmpzIGdlbmVyYXRlIG91dHB1dEZpbGVuYW1lLmpzb24gaW5wdXRIYXJGaWxlMS5qc29uIGlucHV0SGFyRmlsZTIuanNvbiBpbnB1dEhhckZpbGUzLmpzb24uLi4KYGBgCgpUaGlzIGNvbW1hbmQgY29uc3VtZXMgb25lIG9yIG1vcmUgSEFSIGZpbGVzIGFuZCBvdXRwdXRzIGFuIE9BUyBmaWxlLiBBIGZldyBhZGRpdGlvbmFsIGZpbGVzIGFyZSBjcmVhdGVkIGZvciB5b3VyIGNvbnZlbmllbmNlOgoqIGBvdXRwdXQvbWV0aG9kTGlzdC50eHRgIC0gdGhpcyBmaWxlIGNvbnRhaW5zIG9uZSBsaW5lIGZvciBlYWNoIG1ldGhvZC9vcGVyYXRpb24gY3JlYXRlZAoqIGBvdXRwdXQvcGF0aExpc3QudHh0YCAtIHRoaXMgZmlsZSBjb250YWlucyBvbmUgbGluZSBmb3IgZWFjaCBwYXRoIGNyZWF0ZWQKKiBgb3V0cHV0L291dHB1dEZpbGVuYW1lLmpzb24ueWFtbGAgLSB0aGlzIGlzIGEgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB0aGUgc2FtZSBPQVMgb2JqZWN0IG91dHB1dCB0byBvdXRwdXRGaWxlbmFtZS5qc29uCgojIyMgSXRlcmF0aXZlbHkgZWRpdCBjb25maWcuanNvbiBhbmQgZ2VuZXJhdGUgT0FTIGFnYWluCgpZb3UnbGwgcHJvYmFibHkgbm90aWNlIHRoYXQgdGhlIE9BUyBmaWxlIHN0YXJ0cyBvdXQgcHJldHR5IG5vaXN5IHdoaWNoIGlzIHdoeSB5b3UnbGwgd2FudCB0byBlZGl0IGBjb25maWcuanNvbmAgYW5kIHRoZW4gcmluc2UgCmFuZCByZXBlYXQgZ2VuZXJhdGluZyB0aGUgT0FTIGZpbGUgYWdhaW4uCgojIyMgUmVwbGFjZSBzdHJpbmdzIGluIHBhdGgKSW4gdGhlIGNvbmZpZyBmaWxlLCB5b3UgY2FuIHNldCB5b3VyIEFQSSBiYXNlIHBhdGggYW5kIGFueSBudW1iZXIgb2Ygc2VhcmNoL3JlcGxhY2UgY29tbWFuZHMuIEZvciBlYWNoIHBhcmFtZXRlciBpbgpgYGBqYXZhc2NyaXB0Ci4uLgogICJwYXRoUmVwbGFjZSI6IHsKICAgICJrZXkiOiAidmFsdWUiLAogICAgImtleSI6ICJ2YWx1ZSIKICB9Ci4uLgpgYGAKVGhlIHByb2dyYW0gZXhlY3V0ZXMgYXMKYGBgCnBhdGggPSBwYXRoLnJlcGxhY2UoL2tleS9nLCB2YWx1ZSkKYGBgCldoeSB3b3VsZCB3ZSB3YW50IHRvIGRvIHRoaXM/IEknbSBnbGFkIHlvdSBhc2tlZC4gVGhlcmUgYXJlIHZhcmlvdXMgYW5zd2VyczoKCiogUmVtb3ZlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIGZyb20gdGhlIHBhdGguIFF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIGFyZSBkZXRlY3RlZCBhdXRvbWF0aWNhbGx5IGFuZCBtb3ZlZCB0byBwYXRoIHZhcmlhYmxlcyBpbiB0aGUgT0FTIGZpbGUuCiogU2VhcmNoIGFuZCByZXBsYWNlIElEcyBpbiB0aGUgcGF0aC4gQSBub2lzeSBPQVMgZmlsZSB3aWxsIGNvbnRhaW4gb25lIGVuZHBvaW50IGRlZmluaXRpb24gZm9yIGAvYWNjb3VudC8xYCBhbmQgYW5vdGhlciBlbmRwb2ludCBkZWZpbml0aW9uCmZvciBgL2FjY291bnQvMmAuIEJ5IGFkZGluZyByZXBsYWNlIHN0cmluZ3MgdG8gY29uZmlnLmpzb24geW91IGNhbiBjb2xsYXBzZSBkdXBsaWNhdGUgcGF0aHMgaW50byBvbmUgZW5kcG9pbnQgZGVmaW5pdGlvbgphbmQgYXV0b21hdGljYWxseSBtb3ZlIHRoZSBwYXRoIElEcyBpbnRvIHBhdGggcGFyYW1ldGVycyBpbiB0aGUgT0FTIGZpbGUuCgojIyMgUmVwbGFjZSBzdHJpbmdzIGFueXdoZXJlCkluIGFkZGl0aW9uIHRvIHBhdGggcGFyYW1ldGVycywgdGhlcmUgYXJlIGluc3RhbmNlcyB3aGVuIHdlIHdhbnQgdG8gcmVtb3ZlIGNlcnRhaW4gc3RyaW5ncyBmcm9tIGFueXdoZXJlIGluIHRoZSBlbmRwb2ludCBkZWZpbnRpb24KaW5jbHVkaW5nIHJlcXVlc3QgZXhhbXBsZXMsIHJlc3BvbnNlIGV4YW1wbGVzLCBldGMuIFNwZWNpZmljYWxseSwgeW91IG1heSB3YW50IHRvIHJlbW92ZSBzZWNyZXRzIGxpa2UgcGFzc3dvcmRzLCBzZXNzaW9uSWRzLCBhbmQgb3RoZXIgdGhpbmdzIAp5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCBpbiB5b3VyIE9BUyBmaWxlLiBUbyBkbyB0aGlzLCBhZGQgc2VhcmNoL3JlcGxhY2UgaXRlbXMgaGVyZToKYGBgamF2YXNjcmlwdAouLi4KICAicmVwbGFjZSI6IHsKICAgICJzZWNyZXQiOiAiIgogIH0KLi4uCmBgYAojIyMgVGFnIGVuZHBvaW50cwpFYWNoIGVuZHBvaW50IGRlZmluaXRpb24gKGFrYSBvcGVyYXRpb24pIGluIHRoZSBPQVMgZmlsZSBjYW4gaGF2ZSBhIHRhZyB3aGljaCBhc3Npc3RzIHJlbmRlcnMgaW4gZ3JvdXBpbmcgcmVsYXRlZCBlbmRwb2ludHMKdG9nZXRoZXIuIENvbmZpZy5qc29uIGFsbG93cyB5b3UgdG8gc2VhcmNoIGZvciB0ZXh0IGluIHRoZSBwYXRoIGFuZCBhc3NpZ24gbWF0Y2hlcyB0byBhIHNwZWNpZmljIFRhZy4KCmBgYGphdmFzY3JpcHQKLi4uCiAgInRhZ3MiOiBbCiAgICBbInNsaWRlcyJdLAogICAgWyJwcm9ncmVzcyIsICJUYXNrIFByb2dyZXNzIl0KICBdCi4uLgpgYGAKClVzaW5nIHRoaXMgZXhhbXBsZSwgaWYgYHBhdGguaW5jbHVkZXMoInNsaWRlcyIpIHRoZW4gdGFnID0gIlNsaWRlcyJgLiBpZiBgcGF0aC5pbmNsdWRlcygicHJvZ3Jlc3MiKSB0aGVuIHRhZyA9ICJUYXNrIFByb2dyZXNzImAgIAoKIyMgU3RlcCAzIC0gTWFudWFsbHkgZWRpdCByZXF1ZXN0IGFuZCByZXNwb25zZSBleGFtcGxlcwpBdCB0aGlzIHBvaW50IGluIHRoZSBwcm9jZXNzIGl0J3MgYmVzdCB0byBtYW51YWxseSByZXZpZXcgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGV4YW1wbGVzIGluIHRoZSBnZW5lcmF0ZWQgT0FTIGZpbGUgYW5kIHNob3J0ZW4gdGhlbSB3aGVyZSBuZWNlc3NhcnkuIEZvcgpleGFtcGxlLCBpZiBhbiBBUEkgcmVzcG9uc2UgcmV0dXJucyBhbiBhcnJheSBvZiAyLDAwMCBlbGVtZW50cywgcGVyaGFwcyB5b3VyIGFwaSBkb2N1bWVudGF0aW9uIGNvdWxkIHJlc3RyaWN0IGl0c2VsZiB0byBhIGhhbmRmdWwgb2YKZWxlbWVudHMgaW5zdGVhZCBvZiBkaXNwbGF5aW5nIGFsbCAyLDAwMC4gVGhlc2UgZGVzY2lzaW9ucyBuZWVkIHRvIGJlIG1hZGUgb24gYSBjYXNlLWJ5LWNhc2UgYmFzaXMgYW5kIHlvdSBjYW4gCmVkaXQgdGhlIGdlbmVyYXRlZCBPQVMgZmlsZSBkaXJlY3RseS4KCiMjIFN0ZXAgNCAtIEdlbmVyYXRlIGpzb24gc2NoZW1hcyBhbmQgeC1jb2RlLXNhbXBsZXMKQWZ0ZXIgeW91IGhhdmUgbWFudWFsbHkgZWRpdGVkIHlvdXIgT0FTIGZpbGUsIHlvdSBjYW4gZ2VuZXJhdGUganNvbiBzY2hlbWFzIGZvciBhbGwgcmVxdWVzdCBhbmQgcmVzcG9uc2UgZXhhbXBsZXMgYW5kIGdlbmVyYXRlIAp4LWNvZGUtc2FtcGxlcyBieSBydW5uaW5nCmBgYGJhc2gKbm9kZSBpbmRleC5qcyBzYW1wbGVzIG91dHB1dC9nZW5lcmF0ZWQuanNvbiBvdXRwdXQvd2l0aFNjaGVtYS5qc29uCmBgYApUaGlzIGNvbW1hbmQgY29uc3VtZXMgdGhlIChwcmVzdW1hYmx5IGVkaXRlZCkgZ2VuZXJhdGVkLmpzb24gT0FTIGZpbGUgYW5kIG91dHB1dHMgYSBuZXcgT0FTIGZpbGUgY29udGFpbmluZyBqc29uIHNjaGVtYXMgYW5kIHgtY29kZS1zYW1wbGVzLiAKSXQgYWxzbyBjcmVhdGVzIGFuIGFkZGl0aW9uYWwgZmlsZSBmb3IgeW91ciBjb252ZW5pZW5jZToKKiBgb3V0cHV0L3dpdGhTY2hlbWEuanNvbi55YW1sYCAtIHRoaXMgaXMgYSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzYW1lIE9BUyBvYmplY3Qgb3V0cHV0IHRvIHdpdGhTY2hlbWEuanNvbgoKIyMgU3RlcCA1IC0gTWVyZ2UgZ2VuZXJhdGVkIHBhdGhzL21ldGhvZHMvb3BlcmF0aW9ucyBpbnRvIG1hc3RlciBPQVMgZmlsZQpJZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHlvdSBhcmUgY3JlYXRpbmcgeW91ciBPQVMgZmlsZSB0aGVuIHlvdSB3aWxsIHdhbnQgdG8gc3RhcnQgZWRpdGluZyB3aXRoU2NoZW1hLmpzb24gYW5kIGFkZGluZyB5b3VyIG93bgphcGkgc2VydmVycywgaW5mbyBvYmplY3QsIHNlY3VyaXR5LCBldGMuIFlvdXIgZWRpdGVkIGZpbGUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgeW91ciBtYXN0ZXIgT0FTIGZpbGUuIEhvd2V2ZXIsIGluIHRoZSBmdXR1cmUKeW91IG1heSB3YW50IHRvIHJlLXJ1biBoYXIyb3BlbmFwaSBhZ2FpbnN0IG5ldyBIQVIgZmlsZXMgdG8gaWRlbnRpZnkgZGlmZmVyZW5jZXMgb3IgZGV0ZWN0IG5ldyBhcGkgZW5kcG9pbnRzIHRoYXQKd2VyZW4ndCBwaWNrZWQgdXAgcHJldmlvdXNseS4KCldoZW4gdGhpcyBoYXBwZW5zLCB5b3UnbGwgd2FudCB0byBnZW5lcmF0ZSBhIG5ldyBPQVMgZmlsZSBhbmQgdGhlbiBjYXJlZnVsbHkgbWVyZ2UgaXQgaW50byB5b3VyIG1hc3RlciBPQVMgZmlsZSB3aXRob3V0CmRhbWFnaW5nIHRoZSBlZGl0cyB5b3UgaGF2ZSBjYXJlZnVsbHkgbWFkZS4gVG8gZG8gdGhpcywgcnVuCgpgYGBiYXNoCm5vZGUgaW5kZXguanMgbWVyZ2UgaW5wdXQvbWFzdGVyLmpzb24gb3V0cHV0L3dpdGhTY2hlbWEuanNvbiBvdXRwdXQvb3BlbmFwaS1zcGVjLmpzb24KYGBgClRoaXMgY29tbWFuZCBjb25zdW1lcyB0aGUgZ2VuZXJhdGVkIHdpdGhTY2hlbWEuanNvbiBPQVMgZmlsZSB3aXRoIHlvdXIgbWFzdGVyLmpzb24gZmlsZSBhbmQgb3V0cHV0cyBhIG5ldyBPQVMgZmlsZSB3aXRoIHRoZW0gbWVyZ2VkLiBOZXcgbWV0aG9kcy9vcGVyYXRpb25zIGZvdW5kCmluIHdpdGhTY2hlbWEuanNvbiB3aWxsIGJlIGFkZGVkIHRvIG1hc3Rlci5qc29uIGJ1dCBub3RoaW5nIGluIG1hc3Rlci5qc29uIHdpbGwgYmUgcmVwbGFjZWQuIAoKVGhpcyBwcm9ncmFtIGFsc28gY3JlYXRlcyBhbiBhZGRpdGlvbmFsIGZpbGUgZm9yIHlvdXIgY29udmVuaWVuY2U6CiogYG91dHB1dC9vcGVuLXNwZWMuanNvbi55YW1sYCAtIHRoaXMgaXMgYSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzYW1lIE9BUyBvYmplY3Qgb3V0cHV0IHRvIG9wZW4tc3BlYy5qc29uCgojIyBIaXN0b3J5CgpJbiBBcHJpbCwgMjAyMCBJIG5lZWRlZCB0byBkb2N1bWVudCBhIHB5dGhvbiBSRVNUIGFwaSB3aXRoIDE1MCBwYXRocyBhbmQgMjUwIGVuZHBvaW50cyAoYWthIG1ldGhvZHMsIG9wZXJhdGlvbnMpLiBNeSAKcHJlZmVycmVkIGFwcHJvYWNoIHdhcyB0byBjcmVhdGUgYW4gW09wZW5BUEkgU3BlYyAzLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjMubWQpIApmaWxlIChPQVMpIHNvIGl0IGNvdWxkIGJlIGNvbnN1bWVkIGFuZCByZW5kZXJlZCB1c2luZyBhbnkgbnVtYmVyIG9mIFtkaWZmZXJlbnQgdG9vbHNdKGh0dHBzOi8vb3BlbmFwaS50b29scy8pLgoKVG8gYmVnaW4gY3JlYXRpbmcgbXkgT0FTIGZpbGUsIEkgZmlyZWQgdXAgW1N0b3BsaWdodCBTdHVkaW9dKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL3N0dWRpby8pIGFuZCBiZWdhbiBjcmFua2luZwphd2F5IGF0IGJ1aWxkaW5nIGVuZHBvaW50IGRlZmluaXRpb25zLiBBZnRlciBjcmVhdGluZyA1IG9yIDEwIGVuZHBvaW50cyBieSBoYW5kLCBJIHdhcyBhbHJlYWR5IGJ1cm5lZCBvdXQuIEknbSBqdXN0Cm5vdCBjdXQgb3V0IGZvciBtaW5kLW51bWJpbmcsIHJlcGV0aXRpdmUgd29yay4gQ3JlYXRpbmcgZXZlcnkgcmVxdWVzdCBhbmQgcmVzcG9uc2UgZXhhbXBsZSBieSBoYW5kIHdhcyBtYXNzaXZlbHkgbGFib3Jpb3VzCm5vdCB0byBtZW50aW9uIGNyZWF0aW5nIGpzb24gc2NoZW1hcyBmb3IgZWFjaCBvbmUuIEknbSBhbHNvIHZlcnkgbGF6eS4gQ3JlYXRpbmcgZW5kcG9pbnQgZG9jdW1lbnRhdGlvbiBieSBoYW5kIGNvdWxkIHRha2UgeWVhcnMhCgpCZXNpZGVzLCBJIGhhZCBhIGJpZ2dlciBwcm9ibGVtLiBUaGUgQVBJIEkgd2FzIGRvY3VtZW50aW5nIHdhcyBwb29ybHkgZG9jdW1lbnRlZCAoaGVuY2UgbXkgaW52b2x2ZW1lbnQpIGFuZCBJIGNvdWxkbid0IHJlYWxseSByZWx5IG9uCml0IHRvIGV2ZW4gdGVsbCBtZSB3aGF0IGFsbCB0aGUgcGF0aHMgYW5kIHN1cHBvcnRlZCAoaHR0cCkgbWV0aG9kcyB3ZXJlLiAKCkFzIEkgbGFpZCBhd2FrZSBhdCBuaWdodCB3b25kZXJpbmcgaG93IHRvIGVzY2FwZSBteSBwcmVkaWNhbWVudCwgSSB0aG91Z2h0IHdoeSBub3QgcnVuIGFsbCBvZiBvdXIgW2N5cHJlc3NdKGh0dHBzOi8vY3lwcmVzcy5pbykgZW5kLXRvLWVuZCB0ZXN0cywgY2FwdHVyZSBhbGwgdGhlIG5ldHdvcmsgcmVxdWVzdHMgd2l0aCBzb21ldGhpbmcgbGlrZSAKW0NoYXJsZXMgUHJveHldKGh0dHBzOi8vd3d3LmNoYXJsZXNwcm94eS5jb20vKSwgYW5kIGZpZ3VyZSBvdXQgYSB3YXkgdG8gdXNlIHRoZSBwcm94eSBvdXRwdXQgdG8gYXV0b21hZ2ljYWxseSBjcmVhdGUKbXkgT0FTIGZpbGUgZm9yIG1lIGFuZCB0aHVzIGVzY2FwZSBtb250aHMgb2YgbGlmZS1kcmFpbmluZyBtb25vdG9ueT8KClRoYXQgaXMgaG93IHRoaXMgcHJvamVjdCBiZWdhbi4K readmeEtag: '"2197cf34c6e33a3a32f907d556e6cecd3257128f"' readmeLastModified: Tue, 24 Aug 2021 17:42:44 GMT repositoryId: 262170349 description: Generate openapi spec api documentation from captured har files created: '2020-05-07T22:19:19Z' updated: '2024-08-31T17:51:05Z' language: JavaScript archived: false stars: 147 watchers: 8 forks: 21 owner: dcarr178 logo: https://avatars.githubusercontent.com/u/2379611?v=4 repoEtag: '"ecba78037a9fdc653dbd3f37ab0bcfdc2102533f92d30a9987f2a682621fcc2a"' repoLastModified: Sat, 31 Aug 2024 17:51:05 GMT foundInMaster: true id: 4df801fc431a2975d8981b7c4879ff7a - source: https://openapi.tools/ name: har-to-openapi category: - Auto Generators - Parsers language: TypeScript link: https://github.com/jonluca/har-to-openapi repository: https://github.com/jonluca/har-to-openapi source_description: >- Automatically generate OpenAPI 3.0 Spec by using network requests captured in one or more HAR files v3: true id: 98cb389f9d59b10647b4a8c30ed2c230 repositoryMetadata: base64Readme: >- IyBIQVIgdG8gT3BlbkFQSQoKWyFbbnBtIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvaGFyLXRvLW9wZW5hcGkuc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvaGFyLXRvLW9wZW5hcGkpIFshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvaGFyLXRvLW9wZW5hcGkuc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvaGFyLXRvLW9wZW5hcGkpCgpDb252ZXJ0IGEgSEFSIGZpbGUgdG8gYW4gT3BlbkFQSSBzcGVjCgojIEludHJvZHVjdGlvbgoKX1RoaXMgbGlicmFyeSBpcyBsb29zZWx5IGJhc2VkIG9uIFtoYXIyb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2RjYXJyMTc4L2hhcjJvcGVuYXBpKSwgYnV0IGNsZWFuZWQgdXAgYW5kIGNoYW5nZWQgZm9yIHVzYWdlIGluIGEgbW9yZSBwcm9ncmFtbWF0aWMgZmFzaGlvbl8KCiMgR2V0dGluZyBTdGFydGVkCgpgYGAKeWFybiBhZGQgaGFyLXRvLW9wZW5hcGkKYGBgCgpvcgoKYGBgCm5wbSBpIC0tc2F2ZSBoYXItdG8tb3BlbmFwaQpgYGAKCiMgVXNhZ2UKCmBgYHR5cGVzY3JpcHQKaW1wb3J0IHsgZ2VuZXJhdGVTcGVjIH0gZnJvbSAiaGFyLXRvLW9wZW5hcGkiOwoKLy8gcmVhZCBhIGhhciBmaWxlIGZyb20gd2hlcmV2ZXIgeW91IHdhbnQgLSBpbiB0aGlzIGV4YW1wbGUgaXRzIGp1c3QgYSByb290IGpzb24gb2JqZWN0Ci8vIGNvbnN0IGhhciA9IGF3YWl0IGZzLnJlYWRGaWxlKCJteS5oYXIiKTsKCmNvbnN0IGhhciA9IHsKICBsb2c6IHsKICAgIGVudHJpZXM6IFsKICAgICAgewogICAgICAgIGluZGV4OiAwLAogICAgICAgIHJlcXVlc3Q6IHsKICAgICAgICAgIG1ldGhvZDogIkNVU1RPTSIsCiAgICAgICAgICB1cmw6ICJodHRwOi8vdGVzdC5sb2FkaW1wYWN0LmNvbS9sb2dpbiIsCiAgICAgICAgICBoZWFkZXJzOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBuYW1lOiAiQ29udGVudC1UeXBlIiwKICAgICAgICAgICAgICB2YWx1ZTogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgcG9zdERhdGE6IHsKICAgICAgICAgICAgbWltZVR5cGU6ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLAogICAgICAgICAgICB0ZXh0OiAiZm9vMD1iYXIwJmZvbzE9YmFyMSIsCiAgICAgICAgICAgIHBhcmFtczogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5hbWU6ICJmb28wIiwKICAgICAgICAgICAgICAgIHZhbHVlOiAiYmFyMCIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIF0sCiAgfSwKfTsKCmNvbnN0IG9wZW5hcGkgPSBhd2FpdCBnZW5lcmF0ZVNwZWMoaGFyLCB7IHJlbGF4ZWRNZXRob2RzOiB0cnVlIH0pOwpjb25zdCB7IHNwZWMsIHlhbWxTcGVjIH0gPSBvcGVuYXBpOwovLyBzcGVjID0geyAuLi4gfSBvcGVuYXBpIHNwZWMgc2NoZW1hIGRvY3VtZW50Ci8vIHlhbWxTcGVjID0gc3RyaW5nLCAiaW5mbzogLi4uIgpgYGAKCiMjIE9wdGlvbnMKCmBgYHR5cGVzY3JpcHQKZXhwb3J0IGludGVyZmFjZSBDb25maWcgewogIC8vIGlmIHRydWUsIHdlJ2xsIHRyZWF0IGV2ZXJ5IHVybCBhcyBoYXZpbmcgdGhlIHNhbWUgZG9tYWluLCByZWdhcmRsZXNzIG9mIHdoYXQgaXRzIGFjdHVhbCBkb21haW4gaXMKICAvLyB0aGUgZmlyc3QgZG9tYWluIHdlIHNlZSBpcyB0aGUgZG9tYWluIHdlJ2xsIHVzZQogIGZvcmNlQWxsUmVxdWVzdHNJblNhbWVTcGVjPzogYm9vbGVhbjsKICAvLyBpZiB0cnVlLCBldmVyeSBwYXRoIG9iamVjdCB3aWxsIGhhdmUgaXRzIG93biBzZXJ2ZXJzIGVudHJ5LCBkZWZpbmluZyBpdHMgYmFzZSBwYXRoLiBUaGlzIGlzIHVzZWZ1bCB3aGVuCiAgLy8gZm9yY2VBbGxSZXF1ZXN0c0luU2FtZVNwZWMgaXMgc2V0CiAgYWRkU2VydmVyc1RvUGF0aHM/OiBib29sZWFuOwogIC8vIHRyeSBhbmQgZ3Vlc3MgY29tbW9uIGF1dGggaGVhZGVycwogIGd1ZXNzQXV0aGVudGljYXRpb25IZWFkZXJzPzogYm9vbGVhbjsKICAvLyBpZiB0aGUgcmVzcG9uc2UgaGFzIHRoaXMgc3RhdHVzIGNvZGUsIGlnbm9yZSB0aGUgYm9keQogIGlnbm9yZUJvZGllc0ZvclN0YXR1c0NvZGVzPzogbnVtYmVyW107CiAgLy8gd2hldGhlciBub24gc3RhbmRhcmQgbWV0aG9kcyBzaG91bGQgYmUgYWxsb3dlZCAobGlrZSBIVFRQIE1ZX0NVU1RPTV9NRVRIT0QpCiAgcmVsYXhlZE1ldGhvZHM/OiBib29sZWFuOwogIC8vIHdoZXRoZXIgd2Ugc2hvdWxkIHRyeSBhbmQgcGFyc2Ugbm9uIGFwcGxpY2F0aW9uL2pzb24gcmVzcG9uc2VzIGFzIGpzb24gLSBkZWZhdWx0cyB0byB0cnVlCiAgcmVsYXhlZENvbnRlbnRUeXBlSnNvblBhcnNlPzogYm9vbGVhbjsKICAvLyBhIGxpc3Qgb2YgdGFncyB0aGF0IG1hdGNoIHBhc3NlZCBvbiB0aGUgcGF0aCwgZWl0aGVyIFttYXRjaF9hbmRfdGFnXSBvciBbbWF0Y2gsIHRhZ10KICB0YWdzPzogKFtzdHJpbmddIHwgW3N0cmluZywgc3RyaW5nXSB8IHN0cmluZylbXSB8ICgodXJsOiBzdHJpbmcpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgdm9pZCk7CiAgLy8gcmVzcG9uc2UgbWltZSB0eXBlcyB0byBmaWx0ZXIgZm9yCiAgbWltZVR5cGVzPzogc3RyaW5nW107CiAgLy8ga25vd24gc2VjdXJpdHkgaGVhZGVycyBmb3IgdGhpcyBoYXIsIHRvIGFkZCB0byBzZWN1cml0eSBmaWVsZCBpbiBvcGVuYXBpIChlLmcuICJYLUF1dGgtVG9rZW4iKQogIHNlY3VyaXR5SGVhZGVycz86IHN0cmluZ1tdOwogIC8vIFdoZXRoZXIgdG8gZmlsdGVyIG91dCBhbGwgc3RhbmRhcmQgaGVhZGVycyBmcm9tIHRoZSBwYXJhbWV0ZXIgbGlzdCBpbiBvcGVuYXBpCiAgZmlsdGVyU3RhbmRhcmRIZWFkZXJzPzogYm9vbGVhbjsKICAvLyBXaGV0aGVyIHRvIGxvZyBlcnJvcnMgdG8gY29uc29sZQogIGxvZ0Vycm9ycz86IGJvb2xlYW47CiAgLy8gYSBzdHJpbmcsIHJlZ2V4LCBvciBjYWxsYmFjayB0byBmaWx0ZXIgdXJscyBmb3IgaW5jbHVzaW9uCiAgdXJsRmlsdGVyPzogc3RyaW5nIHwgUmVnRXhwIHwgKCh1cmw6IHN0cmluZykgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pOwogIC8vIHdoZW4gd2UgZW5jb3VudGVyIGEgVVJMLCB0cnkgYW5kIHBhcmFtZXRlcml6ZSBpdCwgc3VjaCB0aGF0IHNvbWV0aGluZyBsaWtlCiAgLy8gR0VUIC91dWlkcy8xMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2NTU0NDAwMDAgYmVjb21lcyBHRVQgL3V1aWRzL3t1dWlkfQogIGF0dGVtcHRUb1BhcmFtZXRlcml6ZVVybD86IGJvb2xlYW47CiAgLy8gd2hlbiB3ZSBlbmNvdW50ZXIgYSBwYXRoIHdpdGhvdXQgYSByZXNwb25zZSBvciB3aXRoIGEgcmVzcG9uc2UgdGhhdCBkb2VzIG5vdCBoYXZlIDJ4eCwgZG9udCBpbmNsdWRlIGl0CiAgZHJvcFBhdGhzV2l0aG91dFN1Y2Nlc3NmdWxSZXNwb25zZT86IGJvb2xlYW47Cn0KYGBgCg== readmeEtag: '"b1c6645596b604d10ba4cf9034427636a80c3dbf"' readmeLastModified: Fri, 11 Aug 2023 17:49:57 GMT repositoryId: 519317344 description: HAR to OpenAPI spec generator created: '2022-07-29T18:43:20Z' updated: '2024-09-03T03:48:02Z' language: TypeScript archived: false stars: 80 watchers: 2 forks: 8 owner: jonluca logo: https://avatars.githubusercontent.com/u/13029040?v=4 repoEtag: '"4ce3176e133591d91e84b3b97b1d3df2ade850c17a98e3b7e7c6e5dbaf2df539"' repoLastModified: Tue, 03 Sep 2024 03:48:02 GMT foundInMaster: true - source: https://openapi.tools/ name: GranthAi category: - Auto Generators - Documentation language: Javascript link: https://granthai.com repository: https://www.npmjs.com/package/granthai source_description: >- NodeJs OpenAPI 3 based documentation generator which sits between server APIs and anyone calling the APIs v3: true id: 29fe99d026b8f20572226028e338a960 foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/adawg4/openapi-autospec v3: true id: 87df782257819ac984fca13d011b0283 repositoryMetadata: base64Readme: >- PGEgbmFtZT0icmVhZG1lLXRvcCI+PC9hPgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KPGltZyBoZWlnaHQ9IjEyMCIgc3JjPSJsb2dvLnBuZyI+CgojIE9wZW5BUEkgQXV0b1NwZWMKCk5lZWQgbGFzdC1taW51dGUgZG9jcz8gUXVpY2tseSBjYXB0dXJlIEFQSSBiZWhhdmlvciB3aXRoIGEgc2VydmVyIHByb3h5IHRoYXQgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBpbiByZWFsLXRpbWUgZnJvbSBhbnkgbG9jYWxseSBydW5uaW5nIHdlYnNpdGUgb3Igc2VydmljZS4KCjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJsdWUiIGFsdD0ibGljZW5zZSIvPiBbIVtKb2luIERpc2NvcmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC1Kb2luLWdyZXk/c3R5bGU9ZmxhdCZsb2dvPURpc2NvcmQpXShodHRwczovL2Rpc2NvcmQuZ2cvQ1JueGc3dWR1SCkKPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9T3BlbkFQSSBBdXRvU3BlYyBpcyBhIHByb3h5IHNlcnZlciB0aGF0IGdlbmVyYXRlcyBBUEkgc3BlY3MgZm9yIGFueSBhcHAgb3Igd2Vic2l0ZSBvbiBsb2NhbGhvc3QhIFRyeSBpdCBvdXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hZGF3ZzQvb3BlbmFwaS1hdXRvc3BlYyIgY2xhc3M9Iml0ZW0iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvdXJsP2xhYmVsPVR3ZWV0JmFtcDtzdHlsZT1zb2NpYWwmYW1wO3VybD1odHRwczovL2dpdGh1Yi5jb20vYWRhd2c0L29wZW5hcGktYXV0b3NwZWMiPjwvYT4KPC9kaXY+CgojIyBBYm91dAo8cCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAwJSI+CiAgICA8aW1nIHdpZHRoPSI4MCUiIHNyYz0iYXV0b2dpZi5naWYiPgo8L3A+Ck9wZW5BUEkgQXV0b1NwZWMgaXMgYSBsb2NhbCBzZXJ2ZXIgcHJveHkgdGhhdCBnZW5lcmF0ZXMgbmV3IE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZnJvbSBuZXR3b3JrIHJlcXVlc3RzLiBXaGVuIHJ1bm5pbmcsIGl0IHdpbGwgY29ubmVjdCB5b3VyIGxvY2FsIEhUVFAgdHJhZmZpYyB0byB0aGUgcHJveHkuIE9uY2UgdGhhdCBoYXBwZW5zLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgY29udmVydCBuZXR3b3JrIHRyYWZmaWMgaW50byB0aGUgc3BlY2lmaWNhdGlvbi4KCipGZWF0dXJlcyo6Ci0gR2VuZXJhdGUgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbnMgYXV0b21hdGljYWxseSBmb3IgYW55IGxvY2FsIHdlYnNpdGUgb3IgYXBwbGljYXRpb24KLSBDYXB0dXJlIGFuZCBkb2N1bWVudCBuZXcgcmVxdWVzdHMgJiByZXNwb25zZXMsIGluY2x1ZGluZyBoZWFkZXJzLCBib2RpZXMsIGFuZCBxdWVyeSBwYXJhbWV0ZXJzCi0gUmV2aWV3IGdlbmVyYXRlZCBzcGVjaWZpY2F0aW9ucyBpbiByZWFsLXRpbWUgb24geW91ciB0ZXJtaW5hbCBhbmQgZG93bmxvYWQgdGhlbSB3aXRoIGVhc2UKLSBFeHBvcnQgeW91ciBPcGVuQVBJIGZpbGUgZm9yIHNoYXJpbmcKLSBJZ25vcmVzIHN0YXRpYyBmaWxlIFVSTHM6IC5qcywgLmNzcywgLnN2ZywgLnBuZywgLmpwZWcsIC5pY28uCjwvYnI+CgojIyBJbnN0YWxsYXRpb24KClRoaXMgaXMgYSBbTm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnL2VuLykgbW9kdWxlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZQpbbnBtIHJlZ2lzdHJ5XShodHRwczovL3d3dy5ucG1qcy5jb20vKS4KCkJlZm9yZSBpbnN0YWxsaW5nLCBbZG93bmxvYWQgYW5kIGluc3RhbGwgTm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnL2VuL2Rvd25sb2FkLykuCk5vZGUuanMgMC4xMCBvciBoaWdoZXIgaXMgcmVxdWlyZWQuCgpJbnN0YWxsYXRpb24gc3RlcHM6CltgbnBtIGluc3RhbGxgIGNvbW1hbmRdKGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vZ2V0dGluZy1zdGFydGVkL2luc3RhbGxpbmctbnBtLXBhY2thZ2VzLWxvY2FsbHkpOgoKYGBgY29uc29sZQokIG5wbSBpbnN0YWxsIG9wZW5hcGktYXV0b3NwZWMKYGBgCjwvYnI+CgojIyBVc2FnZQpTdGFydCB0aGUgc2VydmVyLCBpdCBnZW5lcmF0ZXMgYSBsaW5rIGZvciB5b3UgdG8gdXNlLCBhbmQgdGhlbiB1c2UgdGhlIG5ldyBsaW5rIGZyb20gdGhlIHByb3h5IHNlcnZlciB0byBjYXRjaCB0cmFmZmljIG9uIGEgdGFyZ2V0IHNlcnZlci4gVG8gZ2VuZXJhdGUgdGhlIGRvY3VtZW50IHlvdSB3YW50OiB2aXNpdCBwYWdlcywgZmlsbCBvdXQgZm9ybXMvYWxsIHRoZSBmaWVsZHMgb3IgZGF0YSB5b3Ugd2lzaCB0byB0cmFjaywgYW5kIHBlcmZvcm0gdGhlIGFjdGlvbnMgeW91IHdhbnQgdG8gZG9jdW1lbnQgZnJvbSB5b3VyIEFQSXMuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGdldHRpbmcgZG9jdW1lbnRhdGlvbiBmcm9tIGEgZnVsbC1zdGFjayBzZXJ2ZXIgdmVyc3VzIGJvdGggZnJvbnRlbmQgYW5kIGJhY2tlbmQgc2VydmVycyAtIDxhIGhyZWY9IiNyZWFkbWUtbWlzYyI+dXNlIHRoaXMgcmVmZXJlbmNlPC9hPi4KClRvIHN0YXJ0IHRoZSBzZXJ2ZXI6CmBgYGNvbnNvbGUKJCBucHggYXV0b3NwZWMgLS1wb3J0VG8gUE9SVCAtLXBvcnRGcm9tIFBPUlQgLS1maWxlUGF0aCBvcGVuYXBpLmpzb24KYGBgCgotIC0tcG9ydFRvIGNob29zZSB0aGUgcG9ydCB5b3VyIGxvY2FsaG9zdCB3ZWJzZXJ2ZXIgaXMgcnVubmluZyBmcm9tLgotIC0tcG9ydEZyb20gKG9wdGlvbmFsKSBpcyBmb3IgaWYgYW5vdGhlciBwb3J0IGlzIGluIHVzZS4KLSAtLWZpbGVQYXRoIGlzIHdoZXJlIHlvdSB3b3VsZCBsaWtlIHRvIGV4cG9ydCB0aGUgc3BlYy4KCjwvYnI+Ck9uY2UgdGhlIHNlcnZlciBpcyBydW5uaW5nLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmVnaW4gZG9jdW1lbnRpbmcgdGhlIEFQSSBiZWhhdmlvciBvZiB5b3VyIGxvY2FsIHdlYiBhcHBsaWNhdGlvbnMuIFRoZSBkb2N1bWVudGF0aW9uIHByb2Nlc3MgaXMgYmFzZWQgb24gdGhlIG5ldHdvcmsgcmVxdWVzdHMgb2JzZXJ2ZWQsIHNvIHlvdSBkb24ndCBuZWVkIHRvIGRvIGFueSBjcmF6eSBzZXR1cCB3aXRoaW4geW91ciBhcHBsaWNhdGlvbnMgYmV5b25kIHRoZSBiZWxvdy4KCgpUaGUgc2VydmVyIHByb3ZpZGVzIHJlYWwtdGltZSBwcmludG91dHMgb2YgdGhlIGdlbmVyYXRlZCBPcGVuQVBJIHNwZWNpZmljYXRpb25zLiBGcm9tIGhlcmU6Ci0gRmlsbCBvdXQgYWxsIGZpZWxkcyB5b3Ugd2lzaCB0byBiZSBkb2N1bWVudGVkIGZvciBmb3JtcwotIEV4cG9ydCB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZvciBleHRlcm5hbCB1c2Ugb3Igc2hhcmluZyAoZXhwb3J0cyB3aGVyZSB5b3UgYXJlIGluIHRoZSB0ZXJtaW5hbCBpZiB5b3UgZG9uJ3Qgc3BlY2lmeSB0aGUgLS1maWxlUGF0aCBmbGFnKQotIFlvdSBzaG91bGQgZmluZCBhbmQgcmVwbGFjZSBhbGwgaW5zdGFuY2VzIG9mIOKAmGxvY2FsaG9zdOKAmSBvciDigJgxMjcuMC4wLjE6ODAwMOKAmSBpbiB0aGUgZXhwb3J0ZWQgZG9jIHdpdGggeW91ciBhY3R1YWwgd2Vic2l0ZQotIEZpbHRlciBob3N0cyBhbmQgcGFyYW1ldGVyaXplIHBhdGhzIHRvIGZpbmUtdHVuZSB0aGUgZG9jdW1lbnRhdGlvbiBwcm9wZXJseSBmb3Igc2VydmVyIHN0dWJzCi0gUmVzdGFydCB0aGUgZG9jdW1lbnRhdGlvbiBwcm9jZXNzIGF0IGFueSB0aW1lIHRvIHJlZnJlc2ggdGhlIGdlbmVyYXRlZCBzcGVjaWZpY2F0aW9ucwo8L2JyPgoKIyMgUm9hZG1hcAoKV2FudCBhbiBlYXN5IHdheSB0byBhdXRvbWF0aWNhbGx5IGJ1aWxkIGFuZCBtYW5hZ2UgeW91ciBTREtzLCBaYXBpZXIvTWFrZSBpbnRlZ3JhdGlvbnMsIERvY3MsIFdlYmhvb2tzLCBSUEEgcGx1Z2lucywgYW5kIGN1c3RvbSBwbHVnaW5zIHRvIG1hcmtldHBsYWNlcyBsaWtlIFNhbGVzZm9yY2UsIFpvb20sIEdTdWl0ZSBhbGwgaW4gb25lIHNwb3Qgd2hpbGUgZ2V0dGluZyB5b3VyIGFwcCBBSS1hZ2VudCByZWFkeT8gW0NvbnRhY3QgdXNdKGh0dHBzOi8vY2FsZW5kbHkuY29tL2FpZGFuXy9kZW1vKS4gV2UgY2FuIGN1c3RvbSB0YWlsb3IgdGhpcyBhbmQgbW9yZSB3aXRoIG91ciBwYWlkIHNlcnZpY2UuCgpBcyBmb3IgdGhlIHJlcG86Ci0gW1BhdGggcGFyYW1ldGVyaXphdGlvbl0oaHR0cHM6Ly93d3cuYWJzdHJhY3RhcGkuY29tL2FwaS1nbG9zc2FyeS9wYXRoLXBhcmFtZXRlcnMpIHRvb2xzCi0gSFRUUFMgYW5kIE9wZW5BUEkgMy4xIFNwZWNpZmljYXRpb24gc3VwcG9ydAotIFJ1biBvbiBHQ1AsIEFXUywgQXp1cmUsIERvY2tlciwgYW5kIEt1YmVybmV0ZXMKPC9icj4KCiMjIFdoYXQgaXMgT3BlbkFQST8KT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBwcm92aWRlIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uIG9mIGFuIEFQSSdzIGV4cGVjdGVkIHJlcXVlc3RzIGFuZCByZXNwb25zZXMsIG1ha2luZyBBUElzIGVhc2llciB0byB1bmRlcnN0YW5kIGFuZCBpbnRlZ3JhdGUgd2l0aC4gR292ZXJuZWQgYnkgdGhlIE9wZW5BUEkgSW5pdGlhdGl2ZSBhbmQgdGhlIExpbnV4IEZvdW5kYXRpb24sIHRoZXkgYXJlIHRoZSBtb2Rlcm4gc3RhbmRhcmQgZm9yIGRvY3VtZW50aW5nIFJFU1RmdWwgQVBJcy4KPC9icj4KPC9icj4KCiMjIENvbW11bml0eQoKW0pvaW4gb3VyIERpc2NvcmQhXShodHRwczovL2Rpc2NvcmQuZ2cvQ1JueGc3dWR1SCkgV2UgYXJlIGhlcmUgdG8gYW5zd2VyIHF1ZXN0aW9ucyBhbmQgaGVscCB5b3UgZ2V0IHRoZSBtb3N0IG91dCBvZiBvdXIgT3BlbkFQSSB0b29sLgo8L2JyPgo8L2JyPgoKIyMgQ29udHJpYnV0aW5nCgpXZSB3ZWxjb21lIGNvbW11bml0eSBjb250cmlidXRpb25zLiBGb3IgZ3VpZGVsaW5lcywgcmVmZXIgdG8gb3VyIFtDT05UUklCVVRJTkcubWRdKC9DT05UUklCVVRJTkcubWQpLgoKCgpTaG91dG91dHMgdG8gW0F3ZXNvbWUgQVBJIERldlRvb2xzXShodHRwczovL2dpdGh1Yi5jb20veW9zcmlhZHkvYXdlc29tZS1hcGktZGV2dG9vbHMpIGFuZCBbT3BlbkFQSSBEZXZ0b29sc10oaHR0cHM6Ly9jaHJvbWV3ZWJzdG9yZS5nb29nbGUuY29tL2RldGFpbC9vcGVuYXBpLWRldnRvb2xzL2plbGdobmRva25rbGdhYmpnYWVwcGpob21ta2ttZGlpKS4KPC9icj4KCgo8YSBuYW1lPSJyZWFkbWUtbWlzYyI+PC9hPgojIyBSdW5uaW5nIHByb3hpZXMgZm9yIG11bHRpcGxlIHNlcnZlcnMKCiMjIyBGdWxsLVN0YWNrIFdlYiBGcmFtZXdvcmtzIChlLmcuLCBEamFuZ28pCgoxLiBSdW4geW91ciB3ZWJzaXRlIGFuZCBub3RlIGRvd24gdGhlIHBvcnQgYW5kIGxvY2FsaG9zdCBpbmZvcm1hdGlvbi4gRXguIDEyNy4wLjAuMTo4MDAwCjIuIFJ1biB0aGUgc2NyaXB0IGFuZCBzcGVjaWZ5IHRoZSBsb2NhbGhvc3QgaW5mb3JtYXRpb24gd2hlcmUgdHJhZmZpYyBzaG91bGQgYmUgcm91dGVkLiBFeC4gbnB4IGF1dG9zcGVjIC0tcG9ydFRvIDgwMDAuIApgYGAKJCBucHggYXV0b3NwZWMgLS1wb3J0VG8gUE9SVCAtLXBvcnRGcm9tIFBPUlQtLWZpbGVQYXRoIG9wZW5hcGkuanNvbgpgYGAKLSBUaGUgLS1wb3J0VG8gZmxhZyBzaG91bGQgYmUgZm9sbG93ZWQgYnkgdGhlIGxvY2FsaG9zdCBpbmZvcm1hdGlvbiB3aGVyZSB5b3Ugd2FudCB0aGUgdHJhZmZpYyB0byBiZSByb3V0ZWQuIEV4LiAiMTI3LjAuMC4xOjgwMDAiCi0gVGhlIG9wdGlvbmFsIC0tcG9ydEZyb20gZmxhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IHBvcnQgdG8gcnVuIHRoZSBwcm94eSwgaW4gY2FzZSB0aGUgZGVmYXVsdCBwb3J0IGlzIGFscmVhZHkgaW4gdXNlLiBUaGUgdmFsdWUgZm9sbG93aW5nIHRoaXMgd291bGQgYmUgdGhlIHBvcnQgeW91IHdhbnQgdG8gdXNlIGZvciB0aGUgcHJveHkuIEV4LiAiMzAwMCIgCjMuIENvcHkgdGhlIG91dHB1dCBVUkwgKEV4LiBsb2NhbGhvc3Q6NzkyOCkgYW5kIHVzZSB5b3VyIHdlYnNpdGUgb3IgYXBwbGljYXRpb24gYXMgZGVzY3JpYmVkIGFib3ZlLgo0LiBBY2Nlc3MgdGhlIG5ld2x5IGNyZWF0ZWQgZmlsZSAtIG5hbWVkIHdpdGggdGhlIGN1cnJlbnQgdGltZXN0YW1wLgoKIyMjIEZyb250ZW5kIGFuZCBCYWNrZW5kIFNlcGFyYXRlbHkgKGUuZy4sIGEgTm9kZSBiYWNrZW5kIGFuZCBSZWFjdCBmcm9udGVuZCkKCkZvciBhcHBsaWNhdGlvbnMgd2l0aCBhIHNlcGFyYXRlIGZyb250ZW5kIGFuZCBiYWNrZW5kLCBydW4gcHJveGllcyBmb3IgYm90aC4KCjEuIFJ1biB5b3VyIGZyb250ZW5kIGFuZCBub3RlIGRvd24gdGhlIGhvc3QgYW5kIHBvcnQgaW5mb3JtYXRpb24uIEUuZy4sIDEyNy4wLjAuMTozMDAwCgoyLiBPcGVyYXRlIHlvdXIgYmFja2VuZCBvbiBhIGRpZmZlcmVudCBwb3J0IGFuZCBub3RlIHRoZSBob3N0IGFuZCBwb3J0IGluZm9ybWF0aW9uLiBFLmcuLCAxMjcuMC4wLjE6NTAwMCAoRm9yIGRldGFpbGVkIGd1aWRlbGluZXMgb24gaG93IHRvIGNoYW5nZSBwb3J0IGluZm8sIHZpc2l0IDxhIGhyZWY9IiNyZWFkbWUtYm90dG9tIj5oZXJlPC9hPikuCgozLiBSdW4gdGhlIHByb3h5IGZvciB0aGUgZnJvbnRlbmQsIHNwZWNpZnlpbmcgdGhlIGZyb250ZW5kJ3MgaG9zdCBhbmQgcG9ydCBpbmZvcm1hdGlvbiB3aGVyZSB0cmFmZmljIHNob3VsZCBiZSByb3V0ZWQuIElmIG5lY2Vzc2FyeSwgeW91IGNhbiBzcGVjaWZ5IGEgZGlmZmVyZW50IHBvcnQgZm9yIHRoZSBwcm94eSB0byBvcGVyYXRlIGZyb20uCgpgYGBjb25zb2xlCiQgbnB4IGF1dG9zcGVjIC0tcG9ydFRvIEZST05URU5EX1BPUlQgLS1maWxlUGF0aCBmcm9udGVuZC5qc29uCmBgYAoKNC4gU2ltaWxhcmx5LCBydW4gdGhlIHByb3h5IGZvciB0aGUgYmFja2VuZCwgc3BlY2lmeWluZyB0aGUgYmFja2VuZCdzIGhvc3QgYW5kIHBvcnQgd2hlcmUgdGhlIGZyb250ZW5kIG5vcm1hbGx5IHNlbmRzIGluZm9ybWF0aW9uLgoKYGBgY29uc29sZQokIG5weCBhdXRvc3BlYyAtLXBvcnRUbyBORVdfQkFDS0VORF9QT1JUIC0tcG9ydEZyb20gTk9STUFMX0JBQ0tFTkRfUE9SVCAtLWZpbGVQYXRoIGJhY2tlbmQuanNvbgpgYGAKClRoaXMgd2lsbCBpbml0aWF0ZSB0aGUgc2VydmVyIHRoYXQgbGlzdGVucyB0byBuZXR3b3JrIHJlcXVlc3RzIGZyb20geW91ciBsb2NhbGx5IHJ1bm5pbmcgd2Vic2l0ZXMsIGF1dG9tYXRpY2FsbHkgZG9jdW1lbnRpbmcgdGhlaXIgQVBJIGludGVyYWN0aW9ucy4KCiMjIENoYW5naW5nIGJhY2tlbmQgcG9ydHMKCjxhIG5hbWU9InJlYWRtZS1ib3R0b20iPjwvYT4KYGBgbWFya2Rvd24KIyMjIDEuIEV4cHJlc3MuanMgKE5vZGUuanMpClRvIGNoYW5nZSB0aGUgcG9ydCBmb3IgYW4gRXhwcmVzcy5qcyBhcHBsaWNhdGlvbiwgeW91IGNhbiBzZXQgdGhlIHBvcnQgaW4geW91ciBhcHBsaWNhdGlvbiBjb2RlIGJlZm9yZSBzdGFydGluZyB0aGUgc2VydmVyLiBGb3IgZXhhbXBsZToKCmBgYGphdmFzY3JpcHQKY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTsKY29uc3QgYXBwID0gZXhwcmVzcygpOwpjb25zdCBwb3J0ID0gMzAwMTsgLy8gQ2hhbmdlIHRvIHlvdXIgZGVzaXJlZCBwb3J0CgphcHAubGlzdGVuKHBvcnQsICgpID0+IHsKICBjb25zb2xlLmxvZyhgRXhhbXBsZSBhcHAgbGlzdGVuaW5nIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fWApOwp9KTsKYGBgCgojIyMgMi4gRGphbmdvIChQeXRob24pCkZvciBEamFuZ28sIHlvdSBjYW4gc3BlY2lmeSB0aGUgcG9ydCB3aGVuIHlvdSBydW4gdGhlIHJ1bnNlcnZlciBjb21tYW5kIGZyb20gdGhlIGNvbW1hbmQgbGluZToKCmBgYHNoZWxsCnB5dGhvbiBtYW5hZ2UucHkgcnVuc2VydmVyIDgwODAKYGBgClRoaXMgY29tbWFuZCBydW5zIHRoZSBzZXJ2ZXIgb24gcG9ydCA4MDgwLgoKIyMjIDMuIEZsYXNrIChQeXRob24pCkluIEZsYXNrLCB5b3UgY2FuIHNwZWNpZnkgdGhlIHBvcnQgd2hlbiBjYWxsaW5nIHRoZSBhcHAucnVuKCkgbWV0aG9kOgoKYGBgcHl0aG9uCmZyb20gZmxhc2sgaW1wb3J0IEZsYXNrCmFwcCA9IEZsYXNrKF9fbmFtZV9fKQoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIGFwcC5ydW4ocG9ydD01MDAxKSAvLyBDaGFuZ2UgdG8geW91ciBkZXNpcmVkIHBvcnQKYGBgCgojIyMgNC4gUmFpbHMgKFJ1YnkpCkZvciBhIFJhaWxzIGFwcGxpY2F0aW9uLCB5b3UgY2FuIHNwZWNpZnkgdGhlIHBvcnQgd2l0aCB0aGUgLXAgb3B0aW9uIHdoZW4gc3RhcnRpbmcgdGhlIHNlcnZlcjoKCmBgYHNoZWxsCnJhaWxzIHNlcnZlciAtcCA0MDAwCmBgYApUaGlzIGNvbW1hbmQgcnVucyB0aGUgc2VydmVyIG9uIHBvcnQgNDAwMC4KCiMjIyA1LiBTcHJpbmcgQm9vdCAoSmF2YSkKSW4gU3ByaW5nIEJvb3QsIHlvdSBjYW4gc3BlY2lmeSB0aGUgc2VydmVyIHBvcnQgaW4gdGhlIGFwcGxpY2F0aW9uLnByb3BlcnRpZXMgb3IgYXBwbGljYXRpb24ueW1sIGZpbGUgbG9jYXRlZCBpbiB0aGUgc3JjL21haW4vcmVzb3VyY2VzIGRpcmVjdG9yeToKCmBgYApzZXJ2ZXIucG9ydD04MDgxCmBgYAoKIyMjIDYuIEFTUC5ORVQgQ29yZSAoQyMpCkZvciBhbiBBU1AuTkVUIENvcmUgYXBwbGljYXRpb24sIHlvdSBjYW4gc3BlY2lmeSB0aGUgcG9ydCBpbiB0aGUgbGF1bmNoU2V0dGluZ3MuanNvbiBmaWxlIGZvdW5kIGluIHRoZSBQcm9wZXJ0aWVzIGZvbGRlciBvZiB5b3VyIHByb2plY3QuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHRoZSAtLXVybHMgY29tbWFuZC1saW5lIGFyZ3VtZW50OgoKYGBgc2hlbGwKZG90bmV0IHJ1biAtLXVybHM9Imh0dHA6Ly9sb2NhbGhvc3Q6NTAwMiIKYGBgClRoaXMgY29tbWFuZCBydW5zIHRoZSBzZXJ2ZXIgb24gcG9ydCA1MDAyLgoKIyMjIDcuIExhcmF2ZWwgKFBIUCkKSW4gTGFyYXZlbCwgeW91IGNhbiBzcGVjaWZ5IHRoZSBwb3J0IHdpdGggdGhlIC0tcG9ydCBvcHRpb24gd2hlbiBzZXJ2aW5nIHRoZSBhcHBsaWNhdGlvbjoKCmBgYHNoZWxsCnBocCBhcnRpc2FuIHNlcnZlIC0tcG9ydD04MDAxCmBgYApUaGlzIGNvbW1hbmQgcnVucyB0aGUgc2VydmVyIG9uIHBvcnQgODAwMS4KCiMjIyA4LiBWdWUuanMgKE5vZGUuanMpCkZvciBhIFZ1ZS5qcyBwcm9qZWN0IGNyZWF0ZWQgd2l0aCB2dWUtY2xpLCB5b3UgY2FuIHNwZWNpZnkgdGhlIHBvcnQgaW4gdGhlIHZ1ZS5jb25maWcuanMgZmlsZToKCmBgYGphdmFzY3JpcHQKbW9kdWxlLmV4cG9ydHMgPSB7CiAgZGV2U2VydmVyOiB7CiAgICBwb3J0OiA4MDgxCiAgfQp9CmBgYAoKIyMjIDkuIFJlYWN0IChOb2RlLmpzKQpGb3IgYSBSZWFjdCBhcHBsaWNhdGlvbiBjcmVhdGVkIHdpdGggY3JlYXRlLXJlYWN0LWFwcCwgeW91IGNhbiBzZXQgdGhlIHBvcnQgYnkgbW9kaWZ5aW5nIHRoZSBzdGFydCBzY3JpcHQgaW4geW91ciBwYWNrYWdlLmpzb24gZmlsZSwgb3IgYnkgc2V0dGluZyB0aGUgUE9SVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBiZWZvcmUgcnVubmluZyB0aGUgbnBtIHN0YXJ0IGNvbW1hbmQ6CgpgYGBzaGVsbApQT1JUPTMwMDEgbnBtIHN0YXJ0CmBgYAoKIyMjIDEwLiBBbmd1bGFyIChOb2RlLmpzKQpGb3IgYW4gQW5ndWxhciBhcHBsaWNhdGlvbiwgeW91IGNhbiBzcGVjaWZ5IHRoZSBwb3J0IHdpdGggdGhlIC0tcG9ydCBvcHRpb24gd2hlbiBzZXJ2aW5nIHRoZSBhcHBsaWNhdGlvbjoKCmBgYHNoZWxsCm5nIHNlcnZlIC0tcG9ydCA0MjAxCmBgYAoKVGhlc2UgYXJlIHJlZmVyZW5jZXMgLSBBbHdheXMgcmVmZXIgdG8gdGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb24gZm9yIHRoZSBtb3N0IGFjY3VyYXRlIGFuZCB1cC10by1kYXRlIGluZm9ybWF0aW9uLgoK readmeEtag: '"c753c9a0e8becf3d65fcff649d634259360122c0"' readmeLastModified: Sat, 04 May 2024 00:18:47 GMT repositoryId: 760891853 description: Proxy server that generates API specs for any app or website on localhost. created: '2024-02-20T21:16:04Z' updated: '2024-09-05T14:10:09Z' language: JavaScript archived: false stars: 632 watchers: 3 forks: 15 owner: Adawg4 logo: https://avatars.githubusercontent.com/u/27599708?v=4 repoEtag: '"47c22f6403ba78cbe103c0447fa37d437afad707a9ddeef20156b415c14e75c2"' repoLastModified: Thu, 05 Sep 2024 14:10:09 GMT category: - Auto Generators - Documentation - Server Implementations foundInMaster: true name: OpenAPI AutoSpec language: JavaScript link: https://www.portway.ai/ source_description: >- Proxy server that generates API descriptions for any app or website on localhost. v2: false v3_1: false - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/andrewwalsh/openapi-devtools v3: true id: 34445bbc3e815731b195a393a2a9d3f4 repositoryMetadata: base64Readme: >- PGEgbmFtZT0icmVhZG1lLXRvcCI+PC9hPgoKWyFbTUlUIExpY2Vuc2VdW2xpY2Vuc2Utc2hpZWxkXV1bbGljZW5zZS11cmxdClshW0Rvd25sb2FkIGluIHRoZSBDaHJvbWUgV2ViIFN0b3JlXVtjaHJvbWUtc2hpZWxkXV1bY2hyb21lLXVybF0KWyFbRG93bmxvYWQgaW4gdGhlIEZpcmVmb3ggQWRkLW9uIFN0b3JlXVtmaXJlZm94LXNoaWVsZF1dW2ZpcmVmb3gtdXJsXQoKPCEtLSBQUk9KRUNUIExPR08gLS0+CjxiciAvPgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9BbmRyZXdXYWxzaC9vcGVuYXBpLWRldnRvb2xzIj4KICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvbG9nby5zdmciIGFsdD0iT3BlbiBBUEkgZGV2IHRvb2xzIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI1MCI+CiAgPC9hPgoKCiAgPHAgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1heC13aWR0aDogNjAwcHg7Ij4KICAgIEVmZm9ydGxlc3NseSBkaXNjb3ZlciBBUEkgYmVoYXZpb3VyIHdpdGggYSBicm93c2VyIGV4dGVuc2lvbiB0aGF0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgaW4gcmVhbCB0aW1lIGZvciBhbnkgYXBwIG9yIHdlYnNpdGUuCiAgICA8YnIgLz4KICAgIDxiciAvPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9hd2Fsc2guaW8vcG9zdHMvb3BlbmFwaS1kZXZ0b29scy8iPlJlYWQgTW9yZTwvYT4KICAgIMK3CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3V2Fsc2gvb3BlbmFwaS1kZXZ0b29scy9pc3N1ZXMiPlJlcG9ydCBCdWc8L2E+CiAgICDCtwogICAgPGEgaHJlZj0iaHR0cHM6Ly9mb3Jtcy5nbGUvZkEyRXR2YW1VcnNSeFhLWUEiPkdpdmUgRmVlZGJhY2s8L2E+CiAgPC9wPgogIDwvcD4KPC9kaXY+CgojIyBBYm91dCBUaGUgUHJvamVjdAoKPHAgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwMCUiPgogICAgPGltZyB3aWR0aD0iODAlIiBzcmM9InJlc291cmNlcy9kZW1vLmdpZiI+CjwvcD4KCk9wZW5BUEkgRGV2VG9vbHMgaXMgYSBicm93c2VyIGV4dGVuc2lvbiB0aGF0IGdlbmVyYXRlcyBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGluIHJlYWwgdGltZSBmcm9tIG5ldHdvcmsgcmVxdWVzdHMuIE9uY2UgaW5zdGFsbGVkIGl0IGFkZHMgYSBuZXcgdGFiIHRvIERldlRvb2xzIGNhbGxlZCBgT3BlbkFQSWAuIFdoaWxlIHRoZSB0b29sIGlzIG9wZW4gaXQgYXV0b21hdGljYWxseSBjb252ZXJ0cyBuZXR3b3JrIHJlcXVlc3RzIGludG8gYSBzcGVjaWZpY2F0aW9uLgoKKkZlYXR1cmVzKjoKLSBJbnN0YW50bHkgZ2VuZXJhdGUgYW4gT3BlbkFQSSAzLjEgc3BlY2lmaWNhdGlvbiBmb3IgYW55IHdlYnNpdGUgb3IgYXBwbGljYXRpb24ganVzdCBieSB1c2luZyBpdAotIEF1dG9tYXRpY2FsbHkgbWVyZ2VzIG5ldyByZXF1ZXN0ICYgcmVzcG9uc2UgaGVhZGVycywgYm9kaWVzLCBhbmQgcXVlcnkgcGFyYW1ldGVycyBwZXIgZW5kcG9pbnQKLSBDbGljayBvbiBhIFtwYXRoIHBhcmFtZXRlcl0oaHR0cHM6Ly93d3cuYWJzdHJhY3RhcGkuY29tL2FwaS1nbG9zc2FyeS9wYXRoLXBhcmFtZXRlcnMpIGFuZCB0aGUgYXBwIHdpbGwgYXV0b21hdGljYWxseSBtZXJnZSBleGlzdGluZyBhbmQgZnV0dXJlIG1hdGNoaW5nIHJlcXVlc3RzCi0gVmlldyB0aGUgc3BlY2lmaWNhdGlvbiBpbnNpZGUgdGhlIHRvb2wgdXNpbmcgW1JlZG9jXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9yZWRvYykgYW5kIGRvd25sb2FkIHdpdGggYSBjbGljawotIEV4cG9ydCBhbmQgc2F2ZSBhIHNlc3Npb24gYXQgYW55IHRpbWUsIG9yIHNoYXJlIGl0IHdpdGggb3RoZXJzCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIEluc3RhbGxhdGlvbgoKPHAgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwMCUiPgogICAgPGltZyB3aWR0aD0iODAlIiBzcmM9InJlc291cmNlcy9kZW1vLWltZy5wbmciPgo8L3A+CgpbRG93bmxvYWQgdGhlIGV4dGVuc2lvbiBpbiB0aGUgQ2hyb21lIFdlYiBTdG9yZV1bY2hyb21lLXVybF0uCgpbRG93bmxvYWQgdGhlIGV4dGVuc2lvbiBpbiB0aGUgRmlyZWZveCBBZGQtb24gU3RvcmVdW2ZpcmVmb3gtdXJsXS4KCk90aGVyd2lzZSwgdG8gaW5zdGFsbCBtYW51YWxseToKICAtIFtEb3dubG9hZCBhbmQgZXh0cmFjdCB0aGUgZGlzdC56aXAgZmlsZSBpbiB0aGUgbGF0ZXN0IHJlbGVhc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9BbmRyZXdXYWxzaC9vcGVuYXBpLWRldnRvb2xzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9kaXN0LnppcCkKICAtIEluIENocm9tZSwgbmF2aWdhdGUgdG8gYGNocm9tZTovL2V4dGVuc2lvbnNgCiAgLSBJbiB0aGUgdG9wIHJpZ2h0IGVuYWJsZSB0aGUgYERldmVsb3BlciBtb2RlYCB0b2dnbGUKICAtIEluIHRoZSB0b3AgbGVmdCBjbGljayBgTG9hZCB1bnBhY2tlZGAgYW5kIHNlbGVjdCB0aGUgZXh0cmFjdGVkIGBkaXN0YCBkaXJlY3RvcnkKICAtIE9wZW4gYSBuZXcgdGFiIGFuZCB0aGVuIHNlbGVjdCBgT3BlbkFQSWAgaW4gdGhlIGRldmVsb3BlciB0b29scyAob3BlbiB3aXRoIGBjbWQraWAgb3IgYGN0cmwraWApCiAgLSBGaXJlZm94IGlzIG1vcmUgY2hhbGxlbmdpbmcuIFBsZWFzZSB1c2UgdGhlIGFkZC1vbiBzdG9yZS4KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiNyZWFkbWUtdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKIyMgVXNhZ2UKClRoZSBzcGVjaWZpY2F0aW9uIHdpbGwgYXV0b21hdGljYWxseSBwb3B1bGF0ZSBiYXNlZCBvbiBKU09OIHJlcXVlc3RzIHRoYXQgZmlyZSBhcyB5b3UgYnJvd3NlIHRoZSB3ZWIuIEluIHRoZSBzZXR0aW5ncyBtZW51IHlvdSBjYW4gZmlsdGVyIGhvc3RzIGFuZCBwYXJhbWV0ZXJpc2UgcGF0aHMgaW4gVVJMcy4gT25jZSB5b3UgZG8gc28gYWxsIG1hdGNoaW5nIGV4aXN0aW5nIGFuZCBmdXR1cmUgcmVxdWVzdHMgdG8gdGhhdCBlbmRwb2ludCB3aWxsIGJlIG1lcmdlZC4gVGhpcyBwcm9jZXNzIGlzIGlycmV2ZXJzaWJsZSwgYnV0IHlvdSBjYW4gY2xlYXIgdGhlIHNwZWNpZmljYXRpb24gYW5kIHJlc3RhcnQgYXQgYW55IHRpbWUuCgpXaGVuIHRoZSBzYW1lIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggZGlmZmVyZW50IGRhdGEsIHN1Y2ggYXMgYSB2YWx1ZSB0aGF0IGlzIHNvbWV0aW1lcyBhIHN0cmluZyBhbmQgc29tZXRpbWVzIG51bGwsIHRoZSBzcGVjaWZpY2F0aW9uIGZvciB0aGF0IHZhbHVlIHdpbGwgYmUgKmVpdGhlciogc3RyaW5nIG9yIG51bGwuIEFsbCBpbmZvcm1hdGlvbiBpcyBhY2NvdW50ZWQgZm9yIGluIHRoZSBmaW5hbCBzcGVjaWZpY2F0aW9uLiBJZiB5b3Ugc2VlIHNvbWV0aGluZyBtaXNzaW5nIGZyb20gYSByZXF1ZXN0LCB0cmlnZ2VyIGEgcmVxdWVzdCB0aGF0IGNvbnRhaW5zIHRoZSBtaXNzaW5nIGluZm9ybWF0aW9uLgoKVGhlIHNldHRpbmdzIG1lbnUgY29udGFpbnMgc2V2ZXJhbCBvcHRpb25zLiBIZXJlIHlvdSBjYW4gZW5hYmxlIHJlYWwgZXhhbXBsZXMgaW4gdGhlIHNwZWNpZmljYXRpb24uIFlvdSBjYW4gYWxzbyBleHBvcnQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcCBhcyBhIHN0cmluZywgc2hhcmUgb3Igc3RvcmUgaXQsIGFuZCBpbXBvcnQgaXQgbGF0ZXIuCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIFdoYXQgaXMgT3BlbkFQST8KCkFuIFtPcGVuQVBJXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKSBzcGVjaWZpY2F0aW9uIGlzIGEgZGVzY3JpcHRpb24gb2Ygd2hhdCBhbiBBUEkgZXhwZWN0cyB0byByZWNlaXZlIGFuZCB3aGF0IGl0IHdpbGwgcmVzcG9uZCB3aXRoLiBJdCBpcyBnb3Zlcm5lZCBieSB0aGUgT3BlbkFQSSBJbml0aWF0aXZlIGFuZCB0aGUgTGludXggRm91bmRhdGlvbi4gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBhcmUgdGhlIG1vZGVybiBzdGFuZGFyZCBmb3IgUkVTVGZ1bCBBUElzLCBhbmQgc3lzdGVtcyB0aGF0IGhhdmUgdGhlbSBhcmUgZmFyIGVhc2llciB0byB3b3JrIHdpdGguCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIENvbnRyaWJ1dGluZwoKVG8gZGV2ZWxvcCB0aGUgcHJvamVjdDoKLSBgbnBtIGluc3RhbGxgCi0gYG5wbSBydW4gZGV2YAoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3JlYWRtZS10b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+Cgo8IS0tIE1BUktET1dOIExJTktTICYgSU1BR0VTIC0tPgo8IS0tIGh0dHBzOi8vd3d3Lm1hcmtkb3duZ3VpZGUub3JnL2Jhc2ljLXN5bnRheC8jcmVmZXJlbmNlLXN0eWxlLWxpbmtzIC0tPgpbbGljZW5zZS11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3V2Fsc2gvb3BlbmFwaS1kZXZ0b29scy9ibG9iL21haW4vTElDRU5TRS50eHQKW2xpY2Vuc2Utc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9BbmRyZXdXYWxzaC9vcGVuYXBpLWRldnRvb2xzLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlCltjaHJvbWUtdXJsXTogaHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS93ZWJzdG9yZS9kZXRhaWwvb3BlbmFwaS1kZXZ0b29scy9qZWxnaG5kb2tua2xnYWJqZ2FlcHBqaG9tbWtrbWRpaQpbY2hyb21lLXNoaWVsZF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvR29vZ2xlJTIwQ2hyb21lLTQyODVGND9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289R29vZ2xlQ2hyb21lJmxvZ29Db2xvcj13aGl0ZQpbZmlyZWZveC11cmxdOiBodHRwczovL2FkZG9ucy5tb3ppbGxhLm9yZy9lbi1VUy9maXJlZm94L2FkZG9uL29wZW5hcGktZGV2dG9vbHMvCltmaXJlZm94LXNoaWVsZF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRmlyZWZveC1GRjcxMzk/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZpcmVmb3gtQnJvd3NlciZsb2dvQ29sb3I9d2hpdGU= readmeEtag: '"6a2484e7a5531ca0f05684a0502a56f737f7d99a"' readmeLastModified: Tue, 26 Mar 2024 22:49:57 GMT repositoryId: 709571808 description: Browser extension that generates API specs for any app or website created: '2023-10-25T00:36:06Z' updated: '2024-09-04T05:33:33Z' language: TypeScript archived: false stars: 3891 watchers: 21 forks: 69 owner: AndrewWalsh logo: https://avatars.githubusercontent.com/u/15863952?v=4 license: MIT repoEtag: '"d33a5d8b1b08c149be16f3018754e23f847af0c70455fb023127918897b015b5"' repoLastModified: Wed, 04 Sep 2024 05:33:33 GMT category: - Auto Generators - Documentation categoryByRequestIndicator: true foundInMaster: true v3_1: true name: OpenAPI DevTools language: TypeScript link: >- https://chrome.google.com/webstore/detail/openapi-devtools/jelghndoknklgabjgaeppjhommkkmdii source_description: Browser extension that generates API specs for any app or website v2: false - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/microsoft/typespec v3: true id: 0a49bbbd9d784c681b8eb737004a2eab repositoryMetadata: base64Readme: >- IyBUeXBlU3BlYwoKW09mZmljaWFsIERvY3NdKGh0dHBzOi8vdHlwZXNwZWMuaW8vKSB8IFtUcnkgVHlwZVNwZWMgT25saW5lXShodHRwczovL2FrYS5tcy90cnl0eXBlc3BlYykgfCBbR2V0dGluZyBTdGFydGVkXShodHRwczovL3R5cGVzcGVjLmlvL2RvY3MpIHwgW0xhbmd1YWdlIE92ZXJ2aWV3XShodHRwczovL3R5cGVzcGVjLmlvL2RvY3MvbGFuZ3VhZ2UtYmFzaWNzL292ZXJ2aWV3KQoKVHlwZVNwZWMgaXMgYSBsYW5ndWFnZSBmb3IgZGVmaW5pbmcgY2xvdWQgc2VydmljZSBBUElzIGFuZCBzaGFwZXMuIFR5cGVTcGVjIGlzIGEgaGlnaGx5IGV4dGVuc2libGUgbGFuZ3VhZ2Ugd2l0aCBwcmltaXRpdmVzIHRoYXQgY2FuIGRlc2NyaWJlIEFQSSBzaGFwZXMgY29tbW9uIGFtb25nIFJFU1QsIE9wZW5BUEksIGdSUEMsIGFuZCBvdGhlciBwcm90b2NvbHMuCgpUeXBlU3BlYyBpcyBleGNlbGxlbnQgZm9yIGdlbmVyYXRpbmcgbWFueSBkaWZmZXJlbnQgQVBJIGRlc2NyaXB0aW9uIGZvcm1hdHMsIGNsaWVudCBhbmQgc2VydmljZSBjb2RlLCBkb2N1bWVudGF0aW9uLCBhbmQgbWFueSBvdGhlciBhc3NldHMuIEFsbCB0aGlzIHdoaWxlIGtlZXBpbmcgeW91ciBUeXBlU3BlYyBkZWZpbml0aW9uIGFzIGEgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aC4KClVzaW5nIFR5cGVTcGVjLCB5b3UgY2FuIGNyZWF0ZSByZXVzYWJsZSBwYXR0ZXJucyBmb3IgYWxsIGFzcGVjdHMgb2YgYW4gQVBJIGFuZCBwYWNrYWdlIHRob3NlIHJldXNhYmxlIHBhdHRlcm5zIGludG8gbGlicmFyaWVzLiBUaGVzZSBwYXR0ZXJucyBlc3RhYmxpc2ggImd1YXJkcmFpbHMiIGZvciBBUEkgZGVzaWduZXJzIGFuZCBtYWtlcyBpdCBlYXNpZXIgdG8gZm9sbG93IGJlc3QgcHJhY3RpY2VzIHRoYW4gdG8gZGV2aWF0ZSBmcm9tIHRoZW0uIFR5cGVTcGVjIGFsc28gaGFzIGEgcmljaCBsaW50ZXIgZnJhbWV3b3JrIHdpdGggdGhlIGFiaWxpdHkgdG8gZmxhZyBhbnRpLXBhdHRlcm5zIGFzIHdlbGwgYXMgYW4gZW1pdHRlciBmcmFtZXdvcmsgdGhhdCBsZXRzIHlvdSBjb250cm9sIG9mIHRoZSBvdXRwdXQgdG8gZW5zdXJlIGl0IGZvbGxvd3MgdGhlIHBhdHRlcm5zIHlvdSB3YW50LgoKIyMgW0luc3RhbGxhdGlvbl0oaHR0cHM6Ly90eXBlc3BlYy5pby9kb2NzKQoKYGBgCm5wbSBpbnN0YWxsIC1nIEB0eXBlc3BlYy9jb21waWxlcgpgYGAKCiMjIyMgVG9vbHMKClRoZSBbVHlwZVNwZWMgVlMgQ29kZSBleHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT10eXBlc3BlYy50eXBlc3BlYy12c2NvZGUpIGNhbiBiZSBpbnN0YWxsZWQgZnJvbSB0aGUgVlMgQ29kZSBbbWFya2V0cGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT10eXBlc3BlYy50eXBlc3BlYy12c2NvZGUpIG9yIGRpcmVjdGx5IG9uIHRoZSBjb21tYW5kIGxpbmU6CgpgYGAKdHNwIGNvZGUgaW5zdGFsbApgYGAKClRoZSBbVHlwZVNwZWMgVlMgRXh0ZW5zaW9uXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9dHlwZXNwZWMudHlwZXNwZWN2cykgY2FuIGJlIGluc3RhbGxlZCBmcm9tIHRoZSBbVlMgTWFya2V0cGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT10eXBlc3BlYy50eXBlc3BlY3ZzKSBvciBkaXJlY3RseSBvbiB0aGUgY29tbWFuZCBsaW5lOgoKYGBgCnRzcCB2cyBpbnN0YWxsCmBgYAoKIyMgW1VzYWdlXShodHRwczovL3R5cGVzcGVjLmlvL2RvY3MjY3JlYXRlLWZpcnN0LXR5cGVzcGVjLXByb2plY3QpCgojIyMgVHlwZVNwZWMgdG8gT3BlbkFQSSAzLjAgRXhhbXBsZQoKVGhpcyBleGFtcGxlIHVzZXMgdGhlIGBAdHlwZXNwZWMvaHR0cGAsIGBAdHlwZXNwZWMvcmVzdGAsIGFuZCBgQHR5cGVzcGVjL29wZW5hcGkzYCBsaWJyYXJpZXMgdG8gZGVmaW5lIGEgYmFzaWMgUkVTVCBzZXJ2aWNlIGFuZCBnZW5lcmF0ZSBhbiBPcGVuQVBJIDMuMCBkb2N1bWVudCBmcm9tIGl0LgoKUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhbmQgc2VsZWN0ICJHZW5lcmljIFJFU1QgQVBJIjoKCmBgYAp0c3AgaW5pdApgYGAKCkhpdCBlbnRlciBhIGZldyB0aW1lcyB0byBjb25maXJtIHRoZSBkZWZhdWx0cy4KCkNvcHkgdGhlIGNvbnRlbnRzIGJlbG93IGludG8geW91ciAqKm1haW4udHNwKio6CgpgYGB0eXBlc3BlYwppbXBvcnQgIkB0eXBlc3BlYy9odHRwIjsKaW1wb3J0ICJAdHlwZXNwZWMvcmVzdCI7CmltcG9ydCAiQHR5cGVzcGVjL29wZW5hcGkzIjsKCnVzaW5nIFR5cGVTcGVjLkh0dHA7CnVzaW5nIFR5cGVTcGVjLlJlc3Q7CgovKiogVGhpcyBpcyBhIHBldCBzdG9yZSBzZXJ2aWNlLiAqLwpAc2VydmljZSh7CiAgdGl0bGU6ICJQZXQgU3RvcmUgU2VydmljZSIsCn0pCkBzZXJ2ZXIoImh0dHBzOi8vZXhhbXBsZS5jb20iLCAiVGhlIHNlcnZpY2UgZW5kcG9pbnQiKQpuYW1lc3BhY2UgUGV0U3RvcmU7CgpAcm91dGUoIi9wZXRzIikKaW50ZXJmYWNlIFBldHMgewogIGxpc3QoKTogUGV0W107Cn0KCm1vZGVsIFBldCB7CiAgQG1pbkxlbmd0aCgxMDApCiAgbmFtZTogc3RyaW5nOwoKICBAbWluVmFsdWUoMCkKICBAbWF4VmFsdWUoMTAwKQogIGFnZTogaW50MzI7CgogIGtpbmQ6ICJkb2ciIHwgImNhdCIgfCAiZmlzaCI7Cn0KYGBgCgpJbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMgb2YgbWFpbi50c3A6CgpgYGAKdHNwIGluc3RhbGwKYGBgCgpDb21waWxlIGl0IHRvIE9wZW5BUEkgMy4wOgoKYGBgCnRzcCBjb21waWxlIG1haW4udHNwIC0tZW1pdCBAdHlwZXNwZWMvb3BlbmFwaTMKYGBgCgpZb3UgY2FuIGZpbmQgdGhlIGVtaXR0ZWQgT3BlbkFQSSBvdXRwdXQgaW4gYC4vdHNwLW91dHB1dC9vcGVuYXBpLmpzb25gLgoKIyMgQWR2YW5jZWQgU2NlbmFyaW9zCgojIyMgSW5zdGFsbGluZyBuaWdodGx5IHZlcnNpb24KCk9uIGV2ZXJ5IGNvbW1pdCB0byB0aGUgbWFpbiBicmFuY2gsIHBhY2thZ2VzIHdpdGggY2hhbmdlcyBhcmUgYXV0b21hdGljYWxseSBwdWJsaXNoZWQgdG8gbnBtIHdpdGggdGhlIGBAbmV4dGAgdGFnLgpUaGUgW3BhY2thZ2VzXSgjcGFja2FnZXMpIHNlY3Rpb24gc2hvd3Mgd2hpY2ggdmVyc2lvbiBjb3JyZXNwb25kcyB0byB0aGUgYG5leHRgIHRhZyBmb3IgZWFjaCBwYWNrYWdlLgoKVG8gdXNlIGEgYG5pZ2h0bHlgIHZlcnNpb24gb2YgdGhlIHBhY2thZ2VzLCBnbyBvdmVyIGVhY2ggb25lIG9mIHRoZSBwYWNrYWdlcyBpbiB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSBhbmQgdXBkYXRlIGl0IHRvIGVpdGhlciB0aGUgbGF0ZXN0IHB1Ymxpc2hlZCBgQG5leHRgIHZlcnNpb24gb3IgYEBsYXRlc3RgLCB3aGljaGV2ZXIgaXMgdGhlIG5ld2VzdC4gWW91IGNhbiBhbHNvIHVzZSB0aGUgdGFnIGBsYXRlc3RgIG9yIGBuZXh0YCBpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IHZlcnNpb24uCgpBZnRlciB1cGRhdGluZyB0aGUgcGFja2FnZS5qc29uIGZpbGUgeW91IGNhbiBydW4gYG5wbSB1cGRhdGUgLS1mb3JjZWAuIEZvcmNlIGlzIHJlcXVpcmVkIGFzIHRoZXJlIG1pZ2h0IGJlIHNvbWUgaW5jb21wYXRpYmxlIHZlcnNpb24gcmVxdWlyZW1lbnQuCgpFeGFtcGxlCgpgYGBqc29uNQovLyBTdGFibGUgc2V0dXAKImRlcGVuZGVuY2llcyI6IHsKICAiQHR5cGVzcGVjL2NvbXBpbGVyIjogIn4wLjMwLjAiLAogICJAdHlwZXNwZWMvaHR0cCI6ICJ+MC4xNC4wIiwKICAiQHR5cGVzcGVjL3Jlc3QiOiAifjAuMTQuMCIsCiAgIkB0eXBlc3BlYy9vcGVuYXBpIjogIn4wLjkuMCIsCn0KCi8vIENvbnN1bWUgbmV4dCB2ZXJzaW9uCi8vIEluIHRoaXMgZXhhbXBsZTogY29tcGlsZXIgYW5kIG9wZW5hcGkgaGF2ZSBjaGFuZ2VzIGJ1dCByZXN0IGxpYnJhcnkgaGFzIG5vbmUKImRlcGVuZGVuY2llcyI6IHsKICAiQHR5cGVzcGVjL2NvbXBpbGVyIjogIn4wLjMxLjAtZGV2LjUiLAogICJAdHlwZXNwZWMvaHR0cCI6ICJ+MC4xNC4wIiwKICAiQHR5cGVzcGVjL3Jlc3QiOiAifjAuMTQuMCIsIC8vIE5vIGNoYW5nZXMgdG8gQHR5cGVzcGVjL3Jlc3QgbGlicmFyeSBzbyBuZWVkIHRvIHN0YXkgdGhlIGxhdGVzdC4KICAiQHR5cGVzcGVjL29wZW5hcGkiOiAifjAuMTAuMC1kZXYuMiIsCn0KYGBgCgojIyBQYWNrYWdlcwoKfCBOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENoYW5nZWxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgTGF0ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5leHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgQ29yZSBmdW5jdGlvbmFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbQHR5cGVzcGVjL2NvbXBpbGVyXVtjb21waWxlcl9zcmNdICAgICAgICAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW2NvbXBpbGVyX2NoZ10gICAgICAgIHwgWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0B0eXBlc3BlYy9jb21waWxlcildKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0B0eXBlc3BlYy9jb21waWxlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0B0eXBlc3BlYy9jb21waWxlci9uZXh0KSAgICAgICAgICAgICAgICAgfAp8IFR5cGVTcGVjIExpYnJhcmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW0B0eXBlc3BlYy9odHRwXVtodHRwX3NyY10gICAgICAgICAgICAgICAgICAgICAgICAgfCBbQ2hhbmdlbG9nXVtodHRwX2NoZ10gICAgICAgICAgICB8IFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AdHlwZXNwZWMvaHR0cCldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0B0eXBlc3BlYy9odHRwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AdHlwZXNwZWMvaHR0cC9uZXh0KSAgICAgICAgICAgICAgICAgICAgIHwKfCBbQHR5cGVzcGVjL3Jlc3RdW3Jlc3Rfc3JjXSAgICAgICAgICAgICAgICAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW3Jlc3RfY2hnXSAgICAgICAgICAgIHwgWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0B0eXBlc3BlYy9yZXN0KV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHR5cGVzcGVjL3Jlc3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0B0eXBlc3BlYy9yZXN0L25leHQpICAgICAgICAgICAgICAgICAgICAgfAp8IFtAdHlwZXNwZWMvb3BlbmFwaV1bb3BlbmFwaV9zcmNdICAgICAgICAgICAgICAgICAgIHwgW0NoYW5nZWxvZ11bb3BlbmFwaV9jaGddICAgICAgICAgfCBbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHR5cGVzcGVjL29wZW5hcGkpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AdHlwZXNwZWMvb3BlbmFwaSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHR5cGVzcGVjL29wZW5hcGkvbmV4dCkgICAgICAgICAgICAgICAgICB8CnwgW0B0eXBlc3BlYy9vcGVuYXBpM11bb3BlbmFwaTNfc3JjXSAgICAgICAgICAgICAgICAgfCBbQ2hhbmdlbG9nXVtvcGVuYXBpM19jaGddICAgICAgICB8IFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AdHlwZXNwZWMvb3BlbmFwaTMpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AdHlwZXNwZWMvb3BlbmFwaTMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AdHlwZXNwZWMvb3BlbmFwaTMvbmV4dCkgICAgICAgICAgICAgICAgIHwKfCBbQHR5cGVzcGVjL3ZlcnNpb25pbmddW3ZlcnNpb25pbmdfc3JjXSAgICAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW3ZlcnNpb25pbmdfY2hnXSAgICAgIHwgWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0B0eXBlc3BlYy92ZXJzaW9uaW5nKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHR5cGVzcGVjL3ZlcnNpb25pbmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0B0eXBlc3BlYy92ZXJzaW9uaW5nL25leHQpICAgICAgICAgICAgICAgfAp8IFR5cGVTcGVjIFRvb2xzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW0B0eXBlc3BlYy9wcmV0dGllci1wbHVnaW4tdHlwZXNwZWNdW3ByZXR0aWVyX3NyY10gfCBbQ2hhbmdlbG9nXVtwcmV0dGllcl9jaGddICAgICAgICB8IFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AdHlwZXNwZWMvcHJldHRpZXItcGx1Z2luLXR5cGVzcGVjKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHR5cGVzcGVjL3ByZXR0aWVyLXBsdWdpbi10eXBlc3BlYykgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AdHlwZXNwZWMvcHJldHRpZXItcGx1Z2luLXR5cGVzcGVjL25leHQpIHwKfCBbdHlwZXNwZWMtdnNdW3R5cGVzcGVjLXZzX3NyY10gICAgICAgICAgICAgICAgICAgICB8IFtDaGFuZ2Vsb2ddW3R5cGVzcGVjLXZzX2NoZ10gICAgIHwgWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3R5cGVzcGVjLXZzKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdHlwZXNwZWMtdnMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3R5cGVzcGVjLXZzL25leHQpICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFt0eXBlc3BlYy12c2NvZGVdW3R5cGVzcGVjLXZzY29kZV9zcmNdICAgICAgICAgICAgIHwgW0NoYW5nZWxvZ11bdHlwZXNwZWMtdnNjb2RlX2NoZ10gfCBbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvdHlwZXNwZWMtdnNjb2RlKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdHlwZXNwZWMtdnNjb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvdHlwZXNwZWMtdnNjb2RlL25leHQpICAgICAgICAgICAgICAgICAgICB8CnwgW3RtbGFuZ3VhZ2UtZ2VuZXJhdG9yXVt0bWxhbmd1YWdlX3NyY10gICAgICAgICAgICAgfCBbQ2hhbmdlbG9nXVt0bWxhbmd1YWdlX2NoZ10gICAgICB8IFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi90bWxhbmd1YWdlLWdlbmVyYXRvcildKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3RtbGFuZ3VhZ2UtZ2VuZXJhdG9yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAhW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi90bWxhbmd1YWdlLWdlbmVyYXRvci9uZXh0KSAgICAgICAgICAgICAgIHwKCltjb21waWxlcl9zcmNdOiBwYWNrYWdlcy9jb21waWxlcgpbY29tcGlsZXJfY2hnXTogcGFja2FnZXMvY29tcGlsZXIvQ0hBTkdFTE9HLm1kCltodHRwX3NyY106IHBhY2thZ2VzL2h0dHAKW2h0dHBfY2hnXTogcGFja2FnZXMvaHR0cC9DSEFOR0VMT0cubWQKW3Jlc3Rfc3JjXTogcGFja2FnZXMvcmVzdApbcmVzdF9jaGddOiBwYWNrYWdlcy9yZXN0L0NIQU5HRUxPRy5tZApbb3BlbmFwaV9zcmNdOiBwYWNrYWdlcy9vcGVuYXBpCltvcGVuYXBpX2NoZ106IHBhY2thZ2VzL29wZW5hcGkvQ0hBTkdFTE9HLm1kCltvcGVuYXBpM19zcmNdOiBwYWNrYWdlcy9vcGVuYXBpMwpbb3BlbmFwaTNfY2hnXTogcGFja2FnZXMvb3BlbmFwaTMvQ0hBTkdFTE9HLm1kClt2ZXJzaW9uaW5nX3NyY106IHBhY2thZ2VzL3ZlcnNpb25pbmcKW3ZlcnNpb25pbmdfY2hnXTogcGFja2FnZXMvdmVyc2lvbmluZy9DSEFOR0VMT0cubWQKW3ByZXR0aWVyX3NyY106IHBhY2thZ2VzL3ByZXR0aWVyLXBsdWdpbi10eXBlc3BlYwpbcHJldHRpZXJfY2hnXTogcGFja2FnZXMvcHJldHRpZXItcGx1Z2luLXR5cGVzcGVjL0NIQU5HRUxPRy5tZApbdHlwZXNwZWMtdnNfc3JjXTogcGFja2FnZXMvdHlwZXNwZWMtdnMKW3R5cGVzcGVjLXZzX2NoZ106IHBhY2thZ2VzL3R5cGVzcGVjLXZzL0NIQU5HRUxPRy5tZApbdHlwZXNwZWMtdnNjb2RlX3NyY106IHBhY2thZ2VzL3R5cGVzcGVjLXZzY29kZQpbdHlwZXNwZWMtdnNjb2RlX2NoZ106IHBhY2thZ2VzL3R5cGVzcGVjLXZzY29kZS9DSEFOR0VMT0cubWQKW3RtbGFuZ3VhZ2Vfc3JjXTogcGFja2FnZXMvdG1sYW5ndWFnZS1nZW5lcmF0b3IKW3RtbGFuZ3VhZ2VfY2hnXTogcGFja2FnZXMvdG1sYW5ndWFnZS1nZW5lcmF0b3IvQ0hBTkdFTE9HLm1kCgpgQG5leHRgIHZlcnNpb24gb2YgdGhlIHBhY2thZ2UgYXJlIHRoZSBsYXRlc3QgdmVyc2lvbnMgYXZhaWxhYmxlIG9uIHRoZSBgbWFpbmAgYnJhbmNoLgo= readmeEtag: '"83869260d9ad434649ae10a7bfa43abc4f92ab71"' readmeLastModified: Fri, 16 Aug 2024 18:24:23 GMT repositoryId: 381857226 description: null created: '2021-06-30T23:29:49Z' updated: '2024-09-06T02:27:45Z' language: Java archived: false stars: 4099 watchers: 44 forks: 193 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT repoEtag: '"54f0f2e1c3d6f514773dd1c8e522827fd5d70c16e54022ee6a49b279d48f9edc"' repoLastModified: Fri, 06 Sep 2024 02:27:45 GMT category: - Auto Generators - Server Implementations foundInMaster: true name: TypeSpec language: TypeScript link: https://typespec.io/ source_description: >- Emit OpenAPI specifications from API descriptions defined in the generic, interoperable, and extensible TypeSpec language. - source: - https://openapi.tools/ - openapi3 tags name: oa-client category: - SDK - Parsers language: TypeScript link: https://github.com/ninofiliu/oa-client repository: https://github.com/ninofiliu/oa-client source_description: >- Flexible client helper for making and validating calls to OpenAPI backends. For Node and the browser. Runtime lib - no need for code generation! v2: false v3: true repositoryMetadata: base64Readme: >- IyBvYS1jbGllbnQKCkhhcm5lc3MgYWxsIHRoZSBwb3dlciBvZiB5b3VyIGJhY2tlbmQncyBPcGVuQVBJIHYzIHNwZWMgZmlsZXMgYnkgZ2VuZXJhdGluZyBhIGNsaWVudCBvYmplY3QgaW4gYSBmZXcgbGluZXMKCiMjIEZlYXR1cmVzCgrwn5qAIENyZWF0ZXMgYXQgcnVudGltZSBhIGNsaWVudCBvYmplY3QgaW4gYSBmZXcgbGluZXMgKHJlYWQgbW9yZSBpbiBbR2V0dGluZyBTdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKSkKCmBgYGpzCi8vIENyZWF0aW9uCmltcG9ydCB7IGNyZWF0ZUNsaWVudCB9IGZyb20gJ29hLWNsaWVudCc7CmNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudChzcGVjcywgY2FsbGVycywgewogIG9yaWdpbjogJ2h0dHBzOi8vbXkuYXBpLmNvbScsCiAgdmFsaWRhdGlvbkxldmVsOiAnZXJyb3InLAp9KTsKLy8gVXNhZ2UKY2xpZW50Wy8qIHBhdGggKi9dWy8qIG1ldGhvZCAqL10oLyogb3B0aW9uYWwgcGFyYW1zICovKS50aGVuKGFwaVJlc3BvbnNlID0+IHsgLyogLi4uICovIH0pCmBgYAoK8J+agCBPcHRpb25hbGx5IHRocm93cyBmb3IgaW52YWxpZCBwYXRoLCBxdWVyeSwgb3IgYm9keQoKYGBgeWFtbAojIE9wZW5BUEkgc3BlY3MKcGF0aHM6CiAgL3VzZXJzL3t1c2VySWR9OgogICAgZ2V0OgogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gaW46IHBhdGgKICAgICAgICAgIG5hbWU6IHVzZXJJZAogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCmBgYAoKYGBganMKY2xpZW50WyIvdXNlcnMve3VzZXJJZH0iXS5nZXQoeyBwYXRoUGFyYW1zOiB7IHVzZXJJZDogImpvaG4iIH0gfSk7Ci8vIHRocm93cyBbb2EtY2xpZW50OjEwM10gRGF0YSBkb2VzIG5vdCBwYXNzIHZhbGlkYXRpb246IGRhdGEudXNlcklkIHNob3VsZCBiZSBhbiBpbnRlZ2VyCmBgYAoK8J+agCBDb21waWxlcyB0aGUgcGF0aCBhbmQgcXVlcnkgcGFyYW1zCgpgYGBqcwpjbGllbnRbIi9uZXctdXNlci97am9ifSJdLnBvc3QoewogIHBhdGhQYXJhbXM6IHsgam9iOiAiZGlyZWN0b3IiIH0sCiAgcXVlcnlQYXJhbXM6IHsgbmFtZTogIkdhc3BhciBOb8OpIiB9LAp9KTsKLy8gY2FsbHMgL25ldy11c2VyL2RpcmVjdG9yP25hbWU9R2FzcGFyK05vJUMzJUE5CmBgYAoKIyMgR2V0dGluZyBzdGFydGVkCgojIyMgMS4gSW5zdGFsbCB0aGUgcGFja2FnZQoKYGBgc2gKbnBtIGluc3RhbGwgLS1zYXZlIG9hLWNsaWVudApgYGAKCiMjIyAyLiBJbXBvcnQgdGhlIHBhY2thZ2UKClRoaXMgcGFja2FnZSBpcyBpc29tb3JwaGljOiBpdCBjYW4gYmUgdXNlZCBib3RoIGFzIGFuIEVTTSBvciBhIENvbW1vbkpTCgpgYGBqcwovLyBvawppbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tICJvYS1jbGllbnQiOwovLyBhbHNvIG9rCmNvbnN0IHsgY3JlYXRlQ2xpZW50IH0gPSByZXF1aXJlKCJvYS1jbGllbnQiKTsKYGBgCgojIyMgMy4gSGF2ZSBzb21ld2hlcmUgeW91ciBPcGVuQVBJIHNwZWNzIGFzIGEgSlMgb2JqZWN0CgpZb3UgZG9uJ3QgbmVlZCB0byBhZGQgYW55dGhpbmcgY29tcGFyZWQgdG8gbm9ybWFsIHNwZWNzLCBleGNlcHQgZm9yIGFuIG9wdGlvbmFsIGAucGF0aHNbcGF0aF1bbWV0aG9kXVsneC10eXBlJ11gLCB0aGF0IGRlZmluZXMgdGhlIF9jYWxsZXJfLCBtb3JlIG9uIHRoZW0gYmVsb3cuIElmIHRoaXMga2V5IGlzIG9taXR0ZWQsIGl0cyB2YWx1ZSBkZWZhdWx0cyB0byB0aGUgcmVxdWVzdCB0eXBlIChlLmcuIGAiZ2V0ImAgb3IgYCJwb3N0ImApLgoKTm90ZSB0aGF0IGBvYS1jbGllbnRgIGRvZXMgbm90IHJlc29sdmUgc3BlY3MgZm9yIHlvdS4gSWYgeW91IGhhdmUgYCRyZWZzYCwgeW91IHNob3VsZCB1c2UgYSBwYWNrYWdlIGxpa2UgW2pzb24tc2NoZW1hLXJlZi1wYXJzZXJdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BhcGlkZXZ0b29scy9qc29uLXNjaGVtYS1yZWYtcGFyc2VyKSB0byByZXNvbHZlIHRoZW0uCgpgYGBqcwpjb25zdCBzcGVjcyA9IHsKICBvcGVuYXBpOiAiMy4wLjAiLAogIGluZm86IHsKICAgIC8qIC4uLiAqLwogIH0sCiAgcGF0aHM6IHsKICAgICIvdXNlcnMve3VzZXJJZH0iOiB7CiAgICAgIGdldDogewogICAgICAgICJ4LXR5cGUiOiAiYXV0aG9yaXplZEdldCIsIC8vIHdpbGwgdXNlIHRoZSAiYXV0aG9yaXplZEdldCIgY2FsbGVyCiAgICAgICAgcGFyYW1ldGVyczogWwogICAgICAgICAgewogICAgICAgICAgICBpbjogInBhdGgiLAogICAgICAgICAgICBuYW1lOiAidXNlcklkIiwKICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICAgIHNjaGVtYTogewogICAgICAgICAgICAgIHR5cGU6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICByZXNwb25zZXM6IHsKICAgICAgICAgIC8qIC4uLiAqLwogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgIi9zdGF0dXMiOiB7CiAgICAgIGdldDogewogICAgICAgIC8vIG5vIHgtdHlwZSAtPiB3aWxsIHVzZSB0aGUgImdldCIgY2FsbGVyCiAgICAgICAgcmVzcG9uc2VzOiB7CiAgICAgICAgICAvKiAuLi4gKi8KICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9LAp9OwpgYGAKCiMjIyA0LiBXcml0ZSB5b3VyIF9jYWxsZXJzXwoKVGhlc2UgYXJlIGdlbmVyaWMgZnVuY3Rpb25zIHRoYXQgaGFuZGxlIHJlcXVlc3RzIGF0IHRoZSBIVFRQIGxldmVsLgoKVGhleSBhcmUgbm90IGhhbmRsZWQgYnkgdGhpcyBwYWNrYWdlLCBiZWNhdXNlIHRoZXkgY2FuIGJlIHZlcnkgZGlmZmVyZW50IGZyb20gb25lIGNvZGViYXNlIHRvIGFub3RoZXI7IGJ1dCB1c3VhbGx5IHlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG90IG9mIHRoZW0uCgpgdXJsYCBpcyBhbiBbVVJMXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVVJMKSwgYGJvZHlgIGlzIGEgcGxhaW4gSlMgb2JqZWN0LgoKYGBganMKY29uc3QgY2FsbGVycyA9IHsKICBnZXQ6IGFzeW5jICh1cmwpID0+IHsKICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBmZXRjaCh1cmwpOwogICAgY29uc3QganNvbiA9IGF3YWl0IHJlc3AuanNvbigpOwogICAgcmV0dXJuIGpzb247CiAgfSwKICBhdXRob3JpemVkR2V0OiBhc3luYyAodXJsKSA9PiB7CiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKICAgIGhlYWRlcnMuYXBwZW5kKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpOwogICAgaGVhZGVycy5hcHBlbmQoIkF1dGhvcml6YXRpb24iLCBgQmVhcmVyICR7bG9jYWxTdG9yYWdlLnRva2VufWApOwogICAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKHVybCwgeyBoZWFkZXJzIH0pOwogICAgY29uc3QganNvbiA9IGF3YWl0IHJlc3AuanNvbigpOwogICAgcmV0dXJuIGpzb247CiAgfSwKICBhdXRob3JpemVkUG9zdDogYXN5bmMgKHVybCwgYm9keSkgPT4gewogICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7CiAgICBoZWFkZXJzLmFwcGVuZCgiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2pzb24iKTsKICAgIGhlYWRlcnMuYXBwZW5kKCJBdXRob3JpemF0aW9uIiwgYEJlYXJlciAke2xvY2FsU3RvcmFnZS50b2tlbn1gKTsKICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBmZXRjaCh1cmwsIHsKICAgICAgbWV0aG9kOiAiUE9TVCIsCiAgICAgIGhlYWRlcnMsCiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLAogICAgfSk7CiAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzcC5qc29uKCk7CiAgICByZXR1cm4ganNvbjsKICB9LAp9OwpgYGAKCiMjIyA1LiBDcmVhdGUgeW91ciBjbGllbnQKCllvdSBkbyB0aGlzIG9uY2UgYW5kIGBjbGllbnRgIGNhbiBiZSB1c2VkIGluIHRoZSByZXN0IG9mIHlvdXIgY29kZSBhZnRlcndhcmQuCgpgb3JpZ2luYCBkZWZhdWx0cyB0byBgc3BlY3Muc2VydmVyc1swXS51cmxgLiBPcHRpb25hbCBpZiBpdCdzIGRlZmluZWQsIGVsc2UgcmVxdWlyZWQuCgpgdmFsaWRhdGlvbkxldmVsYCBpcyBvbmUgb2YgYCdvZmYnYCAoZGVmYXVsdCksIGAnd2FybidgLCBvciBgJ2Vycm9yJ2AuIEl0IGNoZWNrcyB0aGUgcGF0aCBwYXJhbXMsIHRoZSBxdWVyeSBwYXJhbXMsIGFuZCB0aGUgYm9keSBhZ2FpbnN0IHRoZSBzY2hlbWEgcHJlc2VudCBpbiB0aGUgc3BlY3MuCgpgYGBqcwpjb25zdCBjbGllbnQgPSBjcmVhdGVDbGllbnQoc3BlY3MsIGNhbGxlcnMsIHsKICBvcmlnaW46ICJodHRwczovL215LmFwaS5jb20iLAogIHZhbGlkYXRpb25MZXZlbDogImVycm9yIiwKfSk7CmBgYAoKIyMjIDYuIFVzZSB5b3VyIGNsaWVudAoKVGhlcmVhZnRlciwgYG9hLWNsaWVudGAgZG9lcyBhbGwgdGhlIHdvcmsgb2YgYnVpbGRpbmcgdGhlIGZ1bGwgVVJMIGFuZCB2YWxpZGF0aW5nIGlucHV0IGRhdGEgZm9yIHlvdSEKCkluIHRoaXMgZXhhbXBsZSwgdGhpcwoKYGBganMKY29uc3QgZGF0YSA9IGF3YWl0IGNsaWVudFsiL3VzZXJzL3t1c2VySWR9Il0uZ2V0KHsKICBwYXRoUGFyYW1zOiB7IHVzZXJJZDogMTIzIH0sCn0pOwpgYGAKCmlzIGVxdWl2YWxlbnQgdG8KCmBgYGpzCmNvbnN0IHVybCA9IG5ldyBVUkwoImh0dHBzOi8vbXkuYXBpLmNvbS91c2Vycy8xMjMiKTsKY29uc3QgZGF0YSA9IGF3YWl0IGNhbGxlcnMuYXV0aG9yaXplZEdldCh1cmwpOwpgYGAKCiMjIERpZmZlcmVuY2VzIHdpdGggb3BlbmFwaS1jbGllbnQKClRoZSBbb3BlbmFwaS1jbGllbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWtlc3RlYWQvb3BlbmFwaS1jbGllbnQpIHBhY2thZ2UgaXMgc2ltaWxhciBidXQgYWNjb21wbGlzaGVzIHRoaW5ncyBkaWZmZXJlbnRseS4KCmBvcGVuYXBpLWNsaWVudGAgaXMgYSAqKmNvZGUgZ2VuZXJhdGlvbioqIHBhY2thZ2UuIFlvdSB1c2UgaXQgYXMgYSBjb21tYW5kIGxpbmUgc28gdGhhdCBpdCBjb25zdW1lcyBPcGVuQVBJIHNwZWNzIGFuZCBvdXRwdXRzIGNvZGUgdGhhdCB3aWxsIGNhbGwgeW91ciBzZXJ2ZXIuIEl0IGlzIG5vdCBpZGVhbCBiZWNhdXNlIHlvdSBkb24ndCBvd24gYW5kIGNvbnRyb2wgYWxsIG9mIHlvdXIgY29kZSwgYW5kIGl0IGFkZHMgY29tcGxleGl0eS4KCmBvYS1jbGllbnRgIGlzIHNpbXBsZXIgLSBpdCBleHBvc2VzIGBjcmVhdGVDbGllbnRgLCBhICoqZmFjdG9yeSoqIHRoYXQgdGFrZSBzcGVjcyBhcyBpbnB1dCBhbmQgYnVpbGRzIHRoZSBjbGllbnQgYXQgcnVudGltZS4gSWYgeW91ciBBUEkgdXBkYXRlcywgeW91IGRvbid0IGhhdmUgdG8gd3JpdGUgb3IgZ2VuZXJhdGUgYSBzaW5nbGUgbGluZSBvZiBjb2RlLgoKYG9wZW5hcGktY2xpZW50YCBoYW5kbGVzIGFsbCB0aGUgSFRUUCBjYWxscyBhbmQgYXV0aGVudGljYXRpb24gZm9yIHlvdS4gVGhhdCBjYW4gc2VlbSBwb3dlcmZ1bCwgYnV0IGFjdHVhbGx5IHRoZSBzeXN0ZW0gaXMgX3ZlcnlfIHJpZ2lkLCBldmVuIGZvciBzbWFsbCBjdXN0b21pemF0aW9ucywgYW5kIGRvZXNuJ3QgY292ZXIgYWxsIGNhc2VzIHlvdSdsbCBmYWNlIGFsb25nIHRoZSB3YXkuCgpJbiBgb2EtY2xpZW50YCwgeW91IGZ1bGx5IG93biB5b3VyIGdlbmVyaWMgSFRUUCBjYWxsZXJzOiB5b3Ugd3JpdGUgdGhlbSB5b3Vyc2VsZiwgYnV0IHlvdSBwcm9iYWJseSB3b24ndCB3cml0ZSBtb3JlIHRoYW4gZml2ZSBvZiB0aGVtIGR1cmluZyB5b3VyIHdob2xlIHByb2plY3QgbGlmZXRpbWU6IHdobyBuZWVkcyBtb3JlIHRoYW4gZ2V0LCBwb3N0LCBhdXRob3JpemVkIGdldCwgYXV0aG9yaXplZCBwb3N0IGFuZCBmaWxlIHVwbG9hZD8KCmBgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBXcml0dGVuIHdpdGggPDMgYnkgTmlubyBGaWxpdSB8CnwgIENvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWVkISAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAgICAgXCAgIF5fX14KICAgICAgICAgIFwgIChvbylcX19fX19fXwogICAgICAgICAgICAgKF9fKVwgICAgICAgKVwvXAogICAgICAgICAgICAgICAgIHx8LS0tLXcgfAogICAgICAgICAgICAgICAgIHx8ICAgICB8fApgYGAK readmeEtag: '"6f8355e6d3d524c4d07e934c70a40d077eac6bc1"' readmeLastModified: Fri, 29 Dec 2023 15:35:35 GMT repositoryId: 258327118 description: >- Flexible client helper for making and validating calls to OpenAPI backends. For Node and the browser. Runtime lib - no need for code generation! created: '2020-04-23T20:49:35Z' updated: '2024-07-22T09:37:45Z' language: TypeScript archived: false stars: 48 watchers: 4 forks: 2 owner: ninofiliu logo: https://avatars.githubusercontent.com/u/29477588?v=4 license: MIT repoEtag: '"3a598d788e53dc9d877d5ffad9888e7af4994eeb498a54ca394cde143f260178"' repoLastModified: Mon, 22 Jul 2024 09:37:45 GMT foundInMaster: true id: 90d109eb23c36d0136638c20f8f43cd3 - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags name: Restish category: - Documentation - Testing language: - CLI - Go link: https://rest.sh/ repository: https://github.com/danielgtaylor/restish source_description: >- A CLI for REST-ish APIs with HTTP/2, built-in auth, content negotiation, caching, and more that understands and can discover OpenAPI descriptions. v3: true repositoryMetadata: base64Readme: >- IVtSZXN0aXNoIExvZ29dKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzEwNjgyNi84MjEwOTkxOC1lYzViMjMwMC05NmVlLTExZWEtOWFmMC04NTE1MzI5ZDU5NjUucG5nKQoKWyFbV29ya3MgV2l0aCBSZXN0aXNoXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1dvcmtzJTIwV2l0aC1SZXN0aXNoLWZmNWY4NyldKGh0dHBzOi8vcmVzdC5zaC8pIFshW1VzZXIgR3VpZGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRG9jcy1HdWlkZS01ZmFmZDcpXShodHRwczovL3Jlc3Quc2gvIy9ndWlkZSkgWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL3Jlc3Rpc2gvd29ya2Zsb3dzL0NJL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL3Jlc3Rpc2gvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQUNJK2JyYW5jaCUzQW1haW4rKykgWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbGd0YXlsb3IvcmVzdGlzaC9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvZGFuaWVsZ3RheWxvci9yZXN0aXNoKSBbIVtEb2NzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2dvZG9jLXJlZmVyZW5jZS01ZmFmZDcpXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL3Jlc3Rpc2g/dGFiPXN1YmRpcmVjdG9yaWVzKSBbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9yZXN0aXNoKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvcmVzdGlzaCkKCltSZXN0aXNoXShodHRwczovL3Jlc3Quc2gvKSBpcyBhIENMSSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBbUkVTVF0oaHR0cHM6Ly9hcGlzeW91d29udGhhdGUuY29tL2Jsb2cvcmVzdC1hbmQtaHlwZXJtZWRpYS1pbi0yMDE5KS1pc2ggSFRUUCBBUElzIHdpdGggc29tZSBuaWNlIGZlYXR1cmVzIGJ1aWx0LWluIOKAlCBsaWtlIGFsd2F5cyBoYXZpbmcgdGhlIGxhdGVzdCBBUEkgcmVzb3VyY2VzLCBmaWVsZHMsIGFuZCBvcGVyYXRpb25zIGF2YWlsYWJsZSB3aGVuIHRoZXkgZ28gbGl2ZSBvbiB0aGUgQVBJIHdpdGhvdXQgbmVlZGluZyB0byBpbnN0YWxsIG9yIHVwZGF0ZSBhbnl0aGluZy4KQ2hlY2sgb3V0IFtob3cgUmVzdGlzaCBjb21wYXJlcyB0byBjVVJMICYgSFRUUGllXShodHRwczovL3Jlc3Quc2gvIy9jb21wYXJpc29uKS4KClNlZSB0aGUgW3VzZXIgZ3VpZGVdKGh0dHBzOi8vcmVzdC5zaC8jL2d1aWRlKSBmb3IgaG93IHRvIGluc3RhbGwgUmVzdGlzaCBhbmQgZ2V0IHN0YXJ0ZWQuCgpGZWF0dXJlcyBpbmNsdWRlOgoKLSBIVFRQLzIgKFtSRkMgNzU0MF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzc1NDApKSB3aXRoIFRMUyBieSBfZGVmYXVsdF8gd2l0aCBmYWxsYmFjayB0byBIVFRQLzEuMQotIEdlbmVyaWMgaGVhZC9nZXQvcG9zdC9wdXQvcGF0Y2gvZGVsZXRlIHZlcmJzIGxpa2UgYGN1cmxgIG9yIFtIVFRQaWVdKGh0dHBzOi8vaHR0cGllLm9yZy8pCi0gR2VuZXJhdGVkIGNvbW1hbmRzIGZvciBDTEkgb3BlcmF0aW9ucywgZS5nLiBgcmVzdGlzaCBteS1hcGkgbGlzdC11c2Vyc2AKICAtIEF1dG9tYXRpY2FsbHkgZGlzY292ZXJzIEFQSSBkZXNjcmlwdGlvbnMKICAgIC0gW1JGQyA4NjMxXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODYzMSkgYHNlcnZpY2UtZGVzY2AgbGluayByZWxhdGlvbgogICAgLSBbUkZDIDU5ODhdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1OTg4I3NlY3Rpb24tNi4yLjIpIGBkZXNjcmliZWRieWAgbGluayByZWxhdGlvbgogIC0gU3VwcG9ydGVkIGZvcm1hdHMKICAgIC0gT3BlbkFQSSBbMy4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMy5tZCkgLyBbMy4xXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAuaHRtbCkgYW5kIFtKU09OIFNjaGVtYV0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvKQogIC0gQXV0b21hdGljIGNvbmZpZ3VyYXRpb24gb2YgQVBJIGF1dGggaWYgYWR2ZXJ0aXNlZCBieSB0aGUgQVBJCiAgLSBTaGVsbCBjb21tYW5kIGNvbXBsZXRpb24gZm9yIEJhc2gsIEZpc2gsIFpzaCwgUG93ZXJzaGVsbAotIEF1dG9tYXRpYyBwYWdpbmF0aW9uIG9mIHJlc291cmNlIGNvbGxlY3Rpb25zIHZpYSBbUkZDIDU5ODhdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1OTg4KSBgcHJldmAgYW5kIGBuZXh0YCBoeXBlcm1lZGlhIGxpbmtzCi0gQVBJIGVuZHBvaW50LWJhc2VkIGF1dGggYnVpbHQtaW4gd2l0aCBzdXBwb3J0IGZvciBwcm9maWxlczoKICAtIEhUVFAgQmFzaWMKICAtIEFQSSBrZXkgdmlhIGhlYWRlciBvciBxdWVyeSBwYXJhbQogIC0gT0F1dGgyIGNsaWVudCBjcmVkZW50aWFscyBmbG93IChtYWNoaW5lLXRvLW1hY2hpbmUsIFtSRkMgNjc0OV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkpKQogIC0gT0F1dGgyIGF1dGhvcml6YXRpb24gY29kZSAod2l0aCBQS0NFIFtSRkMgNzYzNl0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzc2MzYpKSBmbG93CiAgLSBPbiB0aGUgZmx5IGF1dGhvcml6YXRpb24gdGhyb3VnaCBleHRlcm5hbCB0b29scyBmb3IgY3VzdG9tIEFQSSBzaWduYXR1cmUgbWVjaGFuaXNtcwotIENvbnRlbnQgbmVnb3RpYXRpb24sIGRlY29kaW5nICYgdW5tYXJzaGFsbGluZyBidWlsdC1pbjoKICAtIEpTT04gKFtSRkMgODI1OV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzgyNTkpLCA8aHR0cHM6Ly93d3cuanNvbi5vcmcvPikKICAtIFlBTUwgKDxodHRwczovL3lhbWwub3JnLz4pCiAgLSBDQk9SIChbUkZDIDcwNDldKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MDQ5KSwgPGh0dHA6Ly9jYm9yLmlvLz4pCiAgLSBNZXNzYWdlUGFjayAoPGh0dHBzOi8vbXNncGFjay5vcmcvPikKICAtIEFtYXpvbiBJb24gKDxodHRwOi8vYW16bi5naXRodWIuaW8vaW9uLWRvY3MvPikKICAtIEd6aXAgKFtSRkMgMTk1Ml0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzE5NTIpKSwgRGVmbGF0ZSAoW1JGQyAxOTUxXShodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzE5NTEpKSwgYW5kIEJyb3RsaSAoW1JGQyA3OTMyXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzkzMikpIGNvbnRlbnQgZW5jb2RpbmcKLSBBdXRvbWF0aWMgcmV0cmllcyB3aXRoIHN1cHBvcnQgZm9yIFtgUmV0cnktQWZ0ZXJgXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvUmV0cnktQWZ0ZXIpIGFuZCBgWC1SZXRyeS1JbmAgaGVhZGVycyB3aGVuIEFQSXMgYXJlIHJhdGUtbGltaXRlZC4KLSBTdGFuZGFyZGl6ZWQgW2h5cGVybWVkaWFdKGh0dHBzOi8vc21hcnRiZWFyLmNvbS9sZWFybi9hcGktZGVzaWduL3doYXQtaXMtaHlwZXJtZWRpYS8pIHBhcnNpbmcgaW50byBxdWVyeWFibGUvZm9sbG93YWJsZSByZXNwb25zZSBsaW5rczoKICAtIEhUVFAgTGluayByZWxhdGlvbiBoZWFkZXJzIChbUkZDIDU5ODhdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1OTg4I3NlY3Rpb24tNi4yLjIpKQogIC0gW0hBTF0oaHR0cDovL3N0YXRlbGVzcy5jby9oYWxfc3BlY2lmaWNhdGlvbi5odG1sKQogIC0gW1NpcmVuXShodHRwczovL2dpdGh1Yi5jb20va2V2aW5zd2liZXIvc2lyZW4pCiAgLSBbVGVycmlmaWNhbGx5IFNpbXBsZSBKU09OXShodHRwczovL2dpdGh1Yi5jb20vbXBuYWxseS9UZXJyaWZpY2FsbHktU2ltcGxlLUpTT04pCiAgLSBbSlNPTjpBUEldKGh0dHBzOi8vanNvbmFwaS5vcmcvKQotIExvY2FsIGNhY2hpbmcgdGhhdCByZXNwZWN0cyBbUkZDIDcyMzRdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjM0KSBgQ2FjaGUtQ29udHJvbGAgYW5kIGBFeHBpcmVzYCBoZWFkZXJzCi0gQ0xJIFtzaG9ydGhhbmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL29wZW5hcGktY2xpLWdlbmVyYXRvci90cmVlL21hc3Rlci9zaG9ydGhhbmQjY2xpLXNob3J0aGFuZC1zeW50YXgpIGZvciBzdHJ1Y3R1cmVkIGRhdGEgaW5wdXQgKGUuZy4gZm9yIEpTT04pCi0gW1Nob3J0aGFuZCBxdWVyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3Ivc2hvcnRoYW5kI3F1ZXJ5aW5nKSByZXNwb25zZSBmaWx0ZXJpbmcgJiBwcm9qZWN0aW9uCi0gQ29sb3JpemVkIHByZXR0aWZpZWQgcmVhZGFibGUgb3V0cHV0Ci0gRmFzdCBuYXRpdmUgemVyby1kZXBlbmRlbmN5IGJpbmFyeQoKQXJ0aWNsZXM6CgotIFtBIENMSSBmb3IgUkVTVCBBUElzXShodHRwczovL2Rldi50by9kYW5pZWxndGF5bG9yL2EtY2xpLWZvci1yZXN0LWFwaXMtcGFydC0xLTEwNGIpCi0gW01hcHBpbmcgT3BlbkFQSSB0byB0aGUgQ0xJXShodHRwczovL2Rldi50by9kYW5pZWxndGF5bG9yL21hcHBpbmctb3BlbmFwaS10by10aGUtY2xpLTM3cGIpCgpUaGlzIHByb2plY3Qgc3RhcnRlZCBsaWZlIGFzIGEgZm9yayBvZiBbT3BlbkFQSSBDTEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9vcGVuYXBpLWNsaS1nZW5lcmF0b3IpLgo= readmeEtag: '"a3771b85636ba09622d845d151224b8cdf9c4bd2"' readmeLastModified: Wed, 29 May 2024 06:09:48 GMT repositoryId: 264117985 description: >- Restish is a CLI for interacting with REST-ish HTTP APIs with some nice features built-in created: '2020-05-15T06:45:59Z' updated: '2024-09-06T00:51:28Z' language: Go archived: false stars: 748 watchers: 7 forks: 69 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT repoEtag: '"583c4e83ca305e16a509b34f3d519257f43b802e1656c99b1e3574e099ef98eb"' repoLastModified: Fri, 06 Sep 2024 00:51:28 GMT foundInMaster: true id: 22a8c610015b1b9d89af39221beabe66 v3_1: true - source: - https://openapi.tools/ - openapi3 tags name: openapi-examples-validator category: - Description Validators - Data Validators - Parsers repository: https://github.com/codekie/openapi-examples-validator language: JavaScript source_description: Validates embedded JSON-examples in OpenAPI-specs v2: true v3: true repositoryMetadata: base64Readme: >- b3BlbmFwaS1leGFtcGxlcy12YWxpZGF0b3IKPT09PT09PT09PT09PT09PT09PT09PT09PT0KClZhbGlkYXRlcyBlbWJlZGRlZCBKU09OLWV4YW1wbGVzIGluIE9wZW5BUEktc3BlY3MgKHYyIGFuZCB2MyBhcmUgc3VwcG9ydGVkKQoKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9vcGVuYXBpLWV4YW1wbGVzLXZhbGlkYXRvci5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvb3BlbmFwaS1leGFtcGxlcy12YWxpZGF0b3IpClshW1N0YW5kYXJkIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS1zdGFuZGFyZCUyMHZlcnNpb24tYnJpZ2h0Z3JlZW4uc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NvbnZlbnRpb25hbC1jaGFuZ2Vsb2cvc3RhbmRhcmQtdmVyc2lvbikKWyFbUnVuIHRlc3RzXShodHRwczovL2dpdGh1Yi5jb20vY29kZWtpZS9vcGVuYXBpLWV4YW1wbGVzLXZhbGlkYXRvci9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LWFuZC1kZXBsb3ktZG9ja2VyLnltbC9iYWRnZS5zdmc/cXVlcnk9YnJhbmNoJTNBbWFpbildKGh0dHBzOi8vZ2l0aHViLmNvbS9jb2Rla2llL29wZW5hcGktZXhhbXBsZXMtdmFsaWRhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3QtYW5kLWRlcGxveS1kb2NrZXIueW1sP3F1ZXJ5PWJyYW5jaCUzQW1haW4pClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL2NvZGVraWUvb3BlbmFwaS1leGFtcGxlcy12YWxpZGF0b3IvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2NvZGVraWUvb3BlbmFwaS1leGFtcGxlcy12YWxpZGF0b3I/YnJhbmNoPW1haW4pClshW011dGF0aW9uIHRlc3RpbmcgYmFkZ2VdKGh0dHBzOi8vYmFkZ2Uuc3RyeWtlci1tdXRhdG9yLmlvL2dpdGh1Yi5jb20vY29kZWtpZS9vcGVuYXBpLWV4YW1wbGVzLXZhbGlkYXRvci9tYWluKV0oaHR0cHM6Ly9zdHJ5a2VyLW11dGF0b3IuZ2l0aHViLmlvKQpbIVtNYWludGFpbmFiaWxpdHldKGh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvNTA5NGY2YWM3NzU0ZTVhMThiMWIvbWFpbnRhaW5hYmlsaXR5KV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL2NvZGVraWUvb3BlbmFwaS1leGFtcGxlcy12YWxpZGF0b3IvbWFpbnRhaW5hYmlsaXR5KQpbIVtLbm93biBWdWxuZXJhYmlsaXRpZXNdKGh0dHBzOi8vc255ay5pby90ZXN0L2dpdGh1Yi9jb2Rla2llL29wZW5hcGktZXhhbXBsZXMtdmFsaWRhdG9yL2JhZGdlLnN2ZyldKGh0dHBzOi8vc255ay5pby90ZXN0L2dpdGh1Yi9jb2Rla2llL29wZW5hcGktZXhhbXBsZXMtdmFsaWRhdG9yKQpbIVtEb2NrZXIgSHViXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY2tlci1yZWFkeS1ibHVlLnN2ZyldKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9jb2Rla2llL29wZW5hcGktZXhhbXBsZXMtdmFsaWRhdG9yKQoKUHJlcmVxdWlzaXRlcwotLS0tLS0tLS0tLS0KCi0gW05vZGUuanNdKGh0dHBzOi8vbm9kZWpzLm9yZy8pID49MTYuCgpJbnN0YWxsCi0tLS0tLS0KCkluc3RhbGwgdXNpbmcgW25wbV0oaHR0cHM6Ly9kb2NzLm5wbWpzLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvd2hhdC1pcy1ucG0pOgoKICAgIG5wbSBpbnN0YWxsIC1nIG9wZW5hcGktZXhhbXBsZXMtdmFsaWRhdG9yCgpVc2FnZQotLS0tLQoKYGBgCm9wZW5hcGktZXhhbXBsZXMtdmFsaWRhdG9yIFtvcHRpb25zXSA8ZmlsZXBhdGg+CgpWYWxpZGF0ZSBlbWJlZGRlZCBleGFtcGxlcyBpbiBPcGVuQVBJLXNwZWNzIChKU09OIGFuZCBZQU1MIHN1cHBvcnRlZCkuCiAgVG8gdmFsaWRhdGUgZXh0ZXJuYWwgZXhhbXBsZXMsIHVzZSB0aGUgYC1zYCBhbmQgYC1lYCBvcHRpb24uCiAgVG8gcGFzcyBhIG1hcHBpbmctZmlsZSwgdG8gdmFsaWRhdGUgbXVsdGlwbGUgZXh0ZXJuYWwgZXhhbXBsZXMsIHVzZSB0aGUgYC1tYCBvcHRpb24uCgpPcHRpb25zOgogIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgdGhlIHZlcnNpb24gbnVtYmVyCiAgLXMsIC0tc2NoZW1hLWpzb25wYXRoIDxzY2hlbWEtanNvbnBhdGg+ICAgIFBhdGggdG8gT3BlbkFQSS1zY2hlbWEsIHRvIHZhbGlkYXRlIHRoZSBleGFtcGxlIGZpbGUgYWdhaW5zdAogIC1lLCAtLWV4YW1wbGUtZmlsZXBhdGggPGV4YW1wbGUtZmlsZXBhdGg+ICBmaWxlIHBhdGggdG8gZXhhbXBsZSBmaWxlLCB0byBiZSB2YWxpZGF0ZWQKICAtbSwgLS1tYXBwaW5nLWZpbGVwYXRoIDxtYXBwaW5nLWZpbGVwYXRoPiAgZmlsZSBwYXRoIHRvIG1hcCwgY29udGFpbmluZyBzY2hlbWEtcGF0aHMgYXMga2V5IGFuZCB0aGUgZmlsZS1wYXRoKHMpIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4YW1wbGVzIGFzIHZhbHVlLiBJZiB3aWxkY2FyZHMgYXJlIHVzZWQsIHRoZSBwYXJhbWV0ZXIgaGFzIHRvIGJlIHB1dCBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZXMuCiAgLWMsIC0tY3dkLXRvLW1hcHBpbmctZmlsZSAgICAgICAgICAgICAgICAgIGNoYW5nZXMgdG8gdGhlIGRpcmVjdG9yeSBvZiB0aGUgbWFwcGluZy1maWxlLCBiZWZvcmUgcmVzb2x2aW5nIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFtcGxlJ3MgcGF0aHMuIFVzZSB0aGlzIG9wdGlvbiwgaWYgeW91ciBtYXBwaW5nLWZpbGVzIHVzZSByZWxhdGl2ZSBwYXRocwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGV4YW1wbGVzCiAgLW4sIC0tbm8tYWRkaXRpb25hbC1wcm9wZXJ0aWVzICAgICAgICAgICAgIGRvbid0IGFsbG93IHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IGRlc2NyaWJlZCBpbiB0aGUgc2NoZW1hCiAgLXIsIC0tYWxsLXByb3BlcnRpZXMtcmVxdWlyZWQgICAgICAgICAgICAgIG1ha2UgYWxsIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBzY2hlbWEgcmVxdWlyZWQKICAtbywgLS1pZ25vcmUtZm9ybWF0cyA8aWdub3JlZC1mb3JtYXRzLi4uPiAgRGF0YXR5cGUgZm9ybWF0cyB0byBpZ25vcmUgKHRvIHByZXZlbnQgInVua25vd24gZm9ybWF0IiBlcnJvcnMuKQogIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgdXNhZ2UgaW5mb3JtYXRpb24KYGBgYAoKVGhlIHZhbGlkYXRvciB3aWxsIHNlYXJjaCB0aGUgT3BlbkFQSS1zcGVjIGZvciByZXNwb25zZS1leGFtcGxlcyBhbmQgdmFsaWRhdGUgdGhlbSBhZ2FpbnN0IGl0cyBzY2hlbWEuCgpJZiBhbiBleHRlcm5hbCBleGFtcGxlIGhhcyB0byBiZSB2ZXJpZmllZCwgdGhlIGAtc2AgYW5kIGAtZWAgb3B0aW9uIGhhcyB0byBiZSB1c2VkLgoKRm9yIGV4YW1wbGU6CgpgYGAKJCBvcGVuYXBpLWV4YW1wbGVzLXZhbGlkYXRvciAtcyAkLnBhdGhzLi8uZ2V0LnJlc3BvbnNlcy4yMDAuc2NoZW1hIC1lIGV4YW1wbGUuanNvbiBvcGVuYXBpLXNwZWMuanNvbgpgYGAKClRvIHZhbGlkYXRlIG11bHRpcGxlIGV4dGVybmFsIGV4YW1wbGVzLCBwYXNzIGEgbWFwcGluZyBmaWxlIHdpdGggYSBzaW1pbGFyIHN0cnVjdHVyZSBhbG9uZyB3aXRoIHRoZSBgLW1gIG9wdGlvbjoKCmBgYGpzb24KewogICIkLnBhdGhzLi8uZ2V0LnJlc3BvbnNlcy4yMDAuc2NoZW1hIjogWwogICAgInRlc3QvZGF0YS9leHRlcm5hbC1leGFtcGxlcy12YWxpZC1leGFtcGxlMS5qc29uIiwKICAgICJ0ZXN0L2RhdGEvZXh0ZXJuYWwtZXhhbXBsZXMtdmFsaWQtZXhhbXBsZTIuanNvbiIsCiAgICAidGVzdC9kYXRhL2V4dGVybmFsLWV4YW1wbGVzLWludmFsaWQtdHlwZS5qc29uIgogIF0sCiAgIiQucGF0aHMuLy5nZXQucmVzcG9uc2VzLjMwMC5zY2hlbWEiOiAidGVzdC9kYXRhL2V4dGVybmFsLWV4YW1wbGVzLWludmFsaWQtbWlzc2luZy1saW5rLmpzb24iLAogICIkLnBhdGhzLi8ucG9zdC5wYXJhbWV0ZXJzWz8oQC5pbj09PSJib2R5IildLnNjaGVtYSI6ICJ0ZXN0L2RhdGEvdjIvcG9zdC1yZXF1ZXN0LyouanNvbiIKfQpgYGAKSXQgaXMgcG9zc2libGUgdG8gdXNlIHdpbGRjYXJkcyBpbiB0aGUgY29tbWFuZCBsaW5lIHRvIHNlbGVjdCBtdWx0aXBsZSBtYXBwaW5nIGZpbGVzLCBhbmQgaXQgaXMgcG9zc2libGUgdG8gdXNlIHdpbGRjYXJkcyBpbnNpZGUgdGhlIG1hcHBpbmcgZmlsZSB0byBzZWxlY3QgbXVsdGlwbGUgZXhhbXBsZXMuCgpFcnJvcnMgd2lsbCBiZSB3cml0dGVuIHRvIGBzdGRlcnJgLgoKU2FtcGxlIG91dHB1dCBvZiB2YWxpZGF0aW9uIGVycm9yczoKCmBgYGpzb24KWwogICAgewogICAgICAgICJrZXl3b3JkIjogInR5cGUiLAogICAgICAgICJpbnN0YW5jZVBhdGgiOiAiL3ZlcnNpb25zLzAvaWQiLAogICAgICAgICJzY2hlbWFQYXRoIjogIiMvcHJvcGVydGllcy92ZXJzaW9ucy9pdGVtcy9wcm9wZXJ0aWVzL2lkL3R5cGUiLAogICAgICAgICJwYXJhbXMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICB9LAogICAgICAgICJtZXNzYWdlIjogIm11c3QgYmUgc3RyaW5nIiwKICAgICAgICAiZXhhbXBsZVBhdGgiOiAiL34xL2dldC9yZXNwb25zZXMvMjAwL2V4YW1wbGVzL2FwcGxpY2F0aW9ufjFqc29uIgogICAgfQpdCmBgYAoKRG9ja2VyCi0tLS0tLQoKRXhhbXBsZSB1c2FnZToKCmBgYHNoZWxsCiQgZG9ja2VyIHJ1biAtLXJtIC1pIFwKICAgIC0tdXNlcj0kKGlkIC11KSBcCiAgICAtdiAke1BXRH06L2RhdGEgXAogICAgY29kZWtpZS9vcGVuYXBpLWV4YW1wbGVzLXZhbGlkYXRvcjpsYXRlc3QgXAogICAgL2RhdGEvdGVzdC9kYXRhL3YzL3NpbXBsZS1hcGktd2l0aC1leGFtcGxlcy13aXRoLXJlZnMtaW52YWxpZC55bWwKYGBgCgpDYXZlYXQKLS0tLS0tCgotIFRoZSBmb3JtYXRzIGBpbnQzMmAsIGBmbG9hdGAgYW5kIGBkb3VibGVgIGFyZSBzdXBwb3J0ZWQgZm9yIHRoZSB0eXBlIGBudW1iZXJgLiBUaGUgZm9ybWF0IGBpbnQ2NGAgaXMgb25seSBhdmFpbGFibGUKICBmb3IgdGhlIHR5cGUgYHN0cmluZ2AsIHRob3VnaCAoZHVlIHRvIHRoZSBwcmVjaXNpb24tbGltaXRhdGlvbnMgb2YgSmF2YXNjcmlwdCkuCi0gVGhlIG9wdGlvbnMgYC0tbm8tYWRkaXRpb25hbC1wcm9wZXJ0aWVzYCBhbmQgYC0tYWxsLXByb3BlcnRpZXMtcmVxdWlyZWRgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIFtzdWItc2NoZW1hcyBjb21iaW5lciBrZXl3b3JkXShodHRwczovL2pzb24tc2NoZW1hLm9yZy91bmRlcnN0YW5kaW5nLWpzb24tc2NoZW1hL3JlZmVyZW5jZS9jb21iaW5pbmcuaHRtbCkuIEEgd2FybmluZyB3aWxsIGJlIGxvZ2dlZCBpZiBvbmUgbW9kZWwgaXMgc2tpcHBlZCBiZWNhdXNlIGl0IGNvbnRhaW5zIGEgY29tYmluZXIga2V5d29yZC4KClRlc3QKLS0tLQoKVG8gcnVuIHRoZSB0ZXN0cywgZXhlY3V0ZQoKICAgIG5wbSB0ZXN0CgpvciB0byBjaGVjayB0aGUgY292ZXJhZ2UKCiAgICBucG0gcnVuIGNvdmVyYWdlCg== readmeEtag: '"850e1fac7b1c74b39487120f86b4975daae0a925"' readmeLastModified: Mon, 09 Oct 2023 12:00:38 GMT repositoryId: 78840041 description: Validates embedded examples in OpenAPI-files created: '2017-01-13T10:34:47Z' updated: '2024-08-28T16:03:44Z' language: JavaScript archived: false stars: 56 watchers: 3 forks: 11 owner: codekie logo: https://avatars.githubusercontent.com/u/1512840?v=4 license: MIT repoEtag: '"b5e3befad0116715d4107b6b4ab9da58a95c668fcf805dd805b3212dbe73d66b"' repoLastModified: Wed, 28 Aug 2024 16:03:44 GMT foundInMaster: true id: 301e3f380f248daf345a88c8971d2a71 - source: - https://openapi.tools/ - openapi3 tags name: openapi-to-postman category: - Converters - Parsers repository: https://github.com/postmanlabs/openapi-to-postman language: JavaScript source_description: Convert OpenAPI and Swagger specs to the Postman Collection (v2) format v2: true v3: true repositoryMetadata: base64Readme: >- CjxpbWcgc3JjPSJodHRwczovL3ZveWFnZXIucG9zdG1hbi5jb20vbG9nby9wb3N0bWFuLWxvZ28tb3JhbmdlLnN2ZyIgd2lkdGg9IjMyMCIgYWx0PSJUaGUgUG9zdG1hbiBMb2dvIj4KCipTdXBlcmNoYXJnZSB5b3VyIEFQSSB3b3JrZmxvdy4qCipNb2Rlcm4gc29mdHdhcmUgaXMgYnVpbHQgb24gQVBJcy4gUG9zdG1hbiBoZWxwcyB5b3UgZGV2ZWxvcCBBUElzIGZhc3Rlci4qCgojIE9wZW5BUEkgMy4wLCAzLjEgYW5kIFN3YWdnZXIgMi4wIHRvIFBvc3RtYW4gQ29sbGVjdGlvbgoKIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0bWFubGFicy9vcGVuYXBpLXRvLXBvc3RtYW4vYWN0aW9ucy93b3JrZmxvd3MvaW50ZWdyYXRpb24ueW1sL2JhZGdlLnN2ZykKCjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdG8tcG9zdG1hbnYyIiBhbHQ9IkxhdGVzdCBTdGFibGUgVmVyc2lvbiI+IVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvb3BlbmFwaS10by1wb3N0bWFudjIuc3ZnKTwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS10by1wb3N0bWFudjIiIGFsdD0iVG90YWwgRG93bmxvYWRzIj4hW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvb3BlbmFwaS10by1wb3N0bWFudjIuc3ZnKTwvYT4KCiMjIyMgQ29udGVudHMKCjEuIFtHZXR0aW5nIFN0YXJ0ZWRdKCNnZXR0aW5nLXN0YXJ0ZWQpCjIuIFtDb21tYW5kIExpbmUgSW50ZXJmYWNlXSgjY29tbWFuZC1saW5lLWludGVyZmFjZSkKICAgIDEuIFtPcHRpb25zXSgjb3B0aW9ucykKICAgIDIuIFtVc2FnZV0oI3VzYWdlKQozLiBbVXNpbmcgdGhlIGNvbnZlcnRlciBhcyBhIE5vZGVKUyBtb2R1bGVdKCN1c2luZy10aGUtY29udmVydGVyLWFzLWEtbm9kZWpzLW1vZHVsZSkKICAgIDEuIFtDb252ZXJ0IEZ1bmN0aW9uXSgjY29udmVydCkKICAgIDIuIFtPcHRpb25zXSgjb3B0aW9ucykKICAgIDMuIFtDb252ZXJzaW9uUmVzdWx0XSgjY29udmVyc2lvbnJlc3VsdCkKICAgIDQuIFtTYW1wbGUgdXNhZ2VdKCNzYW1wbGUtdXNhZ2UpCiAgICA1LiBbVmFsaWRhdGUgZnVuY3Rpb25dKCN2YWxpZGF0ZS1mdW5jdGlvbikKNC4gW0NvbnZlcnNpb24gU2NoZW1hXSgjY29udmVyc2lvbi1zY2hlbWEpCgotLS0KCi0tLQoKIyMjIPCfmoAgV2Ugbm93IGFsc28gc3VwcG9ydCBPcGVuQVBJIDMuMSBhbmQgU3dhZ2dlciAyLjAgYWxvbmcgd2l0aCBPcGVuQVBJIDMuMC4KLS0tCi0tLQoKIyMg8J+SrSBHZXR0aW5nIFN0YXJ0ZWQKClRvIHVzZSB0aGUgY29udmVydGVyIGFzIGEgTm9kZSBtb2R1bGUsIHlvdSBuZWVkIHRvIGhhdmUgYSBjb3B5IG9mIHRoZSBOb2RlSlMgcnVudGltZS4gVGhlIGVhc2llc3Qgd2F5IHRvIGRvIHRoaXMgaXMgdGhyb3VnaCBucG0uIElmIHlvdSBoYXZlIE5vZGVKUyBpbnN0YWxsZWQgeW91IGhhdmUgbnBtIGluc3RhbGxlZCBhcyB3ZWxsLgoKYGBgdGVybWluYWwKJCBucG0gaW5zdGFsbCBvcGVuYXBpLXRvLXBvc3RtYW52MgpgYGAKCklmIHlvdSB3YW50IHRvIHVzZSB0aGUgY29udmVydGVyIGluIHRoZSBDTEksIGluc3RhbGwgaXQgZ2xvYmFsbHkgd2l0aCBOUE06CgpgYGB0ZXJtaW5hbAokIG5wbSBpIC1nIG9wZW5hcGktdG8tcG9zdG1hbnYyCmBgYAoKCiMjIPCfk5YgQ29tbWFuZCBMaW5lIEludGVyZmFjZQoKVGhlIGNvbnZlcnRlciBjYW4gYmUgdXNlZCBhcyBhIENMSSB0b29sIGFzIHdlbGwuIFRoZSBmb2xsb3dpbmcgW2NvbW1hbmQgbGluZSBvcHRpb25zXSgjb3B0aW9ucykgYXJlIGF2YWlsYWJsZS4KCmBvcGVuYXBpMnBvc3RtYW52MiBbb3B0aW9uc11gCgojIyMgT3B0aW9ucwoKLSBgLXMgPHNvdXJjZT5gLCBgLS1zcGVjIDxzb3VyY2U+YAogIFVzZWQgdG8gc3BlY2lmeSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIChmaWxlIHBhdGgpIHdoaWNoIGlzIHRvIGJlIGNvbnZlcnRlZAoKLSBgLW8gPGRlc3RpbmF0aW9uPmAsIGAtLW91dHB1dCA8ZGVzdGluYXRpb24+YAogIFVzZWQgdG8gc3BlY2lmeSB0aGUgZGVzdGluYXRpb24gZmlsZSBpbiB3aGljaCB0aGUgY29sbGVjdGlvbiBpcyB0byBiZSB3cml0dGVuCgotIGAtcGAsIGAtLXByZXR0eWAKICBVc2VkIHRvIHByZXR0eSBwcmludCB0aGUgY29sbGVjdGlvbiBvYmplY3Qgd2hpbGUgd3JpdGluZyB0byBhIGZpbGUKCi0gYC1pYCwgYC0taW50ZXJmYWNlLXZlcnNpb25gCiAgU3BlY2lmaWVzIHRoZSBpbnRlcmZhY2UgdmVyc2lvbiBvZiB0aGUgY29udmVydGVyIHRvIGJlIHVzZWQuIFZhbHVlIGNhbiBiZSAndjInIG9yICd2MScuIERlZmF1bHQgaXMgJ3YyJy4KCi0gYC1PYCwgYC0tb3B0aW9uc2AKICBVc2VkIHRvIHN1cHBseSBvcHRpb25zIHRvIHRoZSBjb252ZXJ0ZXIsIGZvciBjb21wbGV0ZSBvcHRpb25zIGRldGFpbHMgc2VlIFtoZXJlXSgvT1BUSU9OUy5tZCkKCi0gYC1jYCwgYC0tb3B0aW9ucy1jb25maWdgCiAgVXNlZCB0byBzdXBwbHkgb3B0aW9ucyB0byB0aGUgY29udmVydGVyIHRocm91Z2ggY29uZmlnIGZpbGUsIGZvciBjb21wbGV0ZSBvcHRpb25zIGRldGFpbHMgc2VlIFtoZXJlXSgvT1BUSU9OUy5tZCkKCi0gYC10YCwgYC0tdGVzdGAKICBVc2VkIHRvIHRlc3QgdGhlIGNvbGxlY3Rpb24gd2l0aCBhbiBpbi1idWlsdCBzYW1wbGUgc3BlY2lmaWNhdGlvbgoKLSBgLXZgLCBgLS12ZXJzaW9uYAogIFNwZWNpZmllcyB0aGUgdmVyc2lvbiBvZiB0aGUgY29udmVydGVyCgotIGAtaGAsIGAtLWhlbHBgCiAgU3BlY2lmaWVzIGFsbCB0aGUgb3B0aW9ucyBhbG9uZyB3aXRoIGEgZmV3IHVzYWdlIGV4YW1wbGVzIG9uIHRoZSB0ZXJtaW5hbAoKCiMjIyAgVXNhZ2UKCi0gVGFrZXMgYSBzcGVjaWZpY2F0aW9uIChzcGVjLnlhbWwpIGFzIGFuIGlucHV0IGFuZCB3cml0ZXMgdG8gYSBmaWxlIChjb2xsZWN0aW9uLmpzb24pIHdpdGggcHJldHR5IHByaW50aW5nIGFuZCB1c2luZyBwcm92aWRlZCBvcHRpb25zCmBgYHRlcm1pbmFsCiQgb3BlbmFwaTJwb3N0bWFudjIgLXMgc3BlYy55YW1sIC1vIGNvbGxlY3Rpb24uanNvbiAtcCAtTyBmb2xkZXJTdHJhdGVneT1UYWdzLGluY2x1ZGVBdXRoSW5mb0luRXhhbXBsZT1mYWxzZQpgYGAKCi0gVGFrZXMgYSBzcGVjaWZpY2F0aW9uIChzcGVjLnlhbWwpIGFzIGFuIGlucHV0IGFuZCB3cml0ZXMgdG8gYSBmaWxlIChjb2xsZWN0aW9uLmpzb24pIHdpdGggcHJldHR5IHByaW50aW5nIGFuZCB1c2luZyBwcm92aWRlZCBvcHRpb25zIHZpYSBjb25maWcgZmlsZQpgYGB0ZXJtaW5hbAokIG9wZW5hcGkycG9zdG1hbnYyIC1zIHNwZWMueWFtbCAtbyBjb2xsZWN0aW9uLmpzb24gLXAgIC1jIC4vZXhhbXBsZXMvY2xpLW9wdGlvbnMtY29uZmlnLmpzb24KYGBgCgotIFRha2VzIGEgc3BlY2lmaWNhdGlvbiAoc3BlYy55YW1sKSBhcyBhbiBpbnB1dCBhbmQgd3JpdGVzIHRvIGEgZmlsZSAoY29sbGVjdGlvbi5qc29uKSB3aXRoIHByZXR0eSBwcmludGluZyBhbmQgdXNpbmcgcHJvdmlkZWQgb3B0aW9ucyAoQWxzbyBhdm9pZHMgYW55IGAiPEVycm9yOiBUb28gbWFueSBsZXZlbHMgb2YgbmVzdGluZyB0byBmYWtlIHRoaXMgc2NoZW1hPiJgIGtpbmQgb2YgZXJyb3JzIHByZXNlbnQgaW4gY29udmVydGVkIGNvbGxlY3Rpb24pCmBgYHRlcm1pbmFsCiQgb3BlbmFwaTJwb3N0bWFudjIgLXMgc3BlYy55YW1sIC1vIGNvbGxlY3Rpb24uanNvbiAtcCAtTyBmb2xkZXJTdHJhdGVneT1UYWdzLHJlcXVlc3RQYXJhbWV0ZXJzUmVzb2x1dGlvbj1FeGFtcGxlLG9wdGltaXplQ29udmVyc2lvbj1mYWxzZSxzdGFja0xpbWl0PTUwCmBgYAoKLSBUZXN0aW5nIHRoZSBjb252ZXJ0ZXIKYGBgdGVybWluYWwKJCBvcGVuYXBpMnBvc3RtYW52MiAtLXRlc3QKYGBgCgoKIyMg8J+boCBVc2luZyB0aGUgY29udmVydGVyIGFzIGEgTm9kZUpTIG1vZHVsZQoKSW4gb3JkZXIgdG8gdXNlIHRoZSBjb252ZXJ0IGluIHlvdXIgbm9kZSBhcHBsaWNhdGlvbiwgeW91IG5lZWQgdG8gaW1wb3J0IHRoZSBwYWNrYWdlIHVzaW5nIGByZXF1aXJlYC4KCmBgYGphdmFzY3JpcHQKdmFyIENvbnZlcnRlciA9IHJlcXVpcmUoJ29wZW5hcGktdG8tcG9zdG1hbnYyJykKYGBgCgpUaGUgY29udmVydGVyIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgoKIyMjIENvbnZlcnQKClRoZSBjb252ZXJ0IGZ1bmN0aW9uIHRha2VzIGluIHlvdXIgT3BlbkFQSSAzLjAsIDMuMSBhbmQgU3dhZ2dlciAyLjAgc3BlY2lmaWNhdGlvbiAoIFlBTUwgLyBKU09OICkgYW5kIGNvbnZlcnRzIGl0IHRvIGEgUG9zdG1hbiBjb2xsZWN0aW9uLgoKU2lnbmF0dXJlOiBgY29udmVydCAoZGF0YSwgb3B0aW9ucywgY2FsbGJhY2spO2AKCioqZGF0YToqKgoKYGBgamF2YXNjcmlwdAp7IHR5cGU6ICdmaWxlJywgZGF0YTogJ2ZpbGVwYXRoJyB9Ck9SCnsgdHlwZTogJ3N0cmluZycsIGRhdGE6ICc8ZW50aXJlIE9wZW5BUEkgc3RyaW5nIC0gSlNPTiBvciBZQU1MPicgfQpPUgp7IHR5cGU6ICdqc29uJywgZGF0YTogT3BlbkFQSS1KUy1vYmplY3QgfQpgYGAKCioqb3B0aW9uczoqKgpgYGBqYXZhc2NyaXB0CnsKICBzY2hlbWFGYWtlcjogdHJ1ZSwKICByZXF1ZXN0TmFtZVNvdXJjZTogJ2ZhbGxiYWNrJywKICBpbmRlbnRDaGFyYWN0ZXI6ICcgJwp9Ci8qCkFsbCB0aHJlZSBwcm9wZXJ0aWVzIGFyZSBvcHRpb25hbC4gQ2hlY2sgdGhlIG9wdGlvbnMgc2VjdGlvbiBiZWxvdyBmb3IgcG9zc2libGUgdmFsdWVzIGZvciBlYWNoIG9wdGlvbi4KKi8KYGBgCk5vdGU6IEFsbCBwb3NzaWJsZSB2YWx1ZXMgb2Ygb3B0aW9ucyBhbmQgdGhlaXIgdXNhZ2UgY2FuIGJlIGZvdW5kIG92ZXIgaGVyZTogW09QVElPTlMubWRdKC9PUFRJT05TLm1kKQoKKipjYWxsYmFjazoqKgpgYGBqYXZhc2NyaXB0CmZ1bmN0aW9uIChlcnIsIHJlc3VsdCkgewogIC8qCiAgcmVzdWx0ID0gewogICAgcmVzdWx0OiB0cnVlLAogICAgb3V0cHV0OiBbCiAgICAgIHsKICAgICAgICB0eXBlOiAnY29sbGVjdGlvbicsCiAgICAgICAgZGF0YTogey4uY29sbGVjdGlvbiBvYmplY3QuLn0KICAgICAgfQogICAgXQogIH0KICAqLwp9CmBgYAoKIyMjIE9wdGlvbnMKCkNoZWNrIG91dCBjb21wbGV0ZSBsaXN0IG9mIG9wdGlvbnMgYW5kIHRoZWlyIHVzYWdlIGF0IFtPUFRJT05TLm1kXSgvT1BUSU9OUy5tZCkKCiMjIyBDb252ZXJzaW9uUmVzdWx0CgotIGByZXN1bHRgIC0gRmxhZyByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIGEgc3RhdHVzIHdoZXRoZXIgdGhlIGNvbnZlcnNpb24gd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LgoKLSBgcmVhc29uYCAtIFByb3ZpZGVzIHRoZSByZWFzb24gZm9yIGFuIHVuc3VjY2Vzc2Z1bCBjb252ZXJzaW9uLCBkZWZpbmVkIG9ubHkgaWYgcmVzdWx0IGlmIGBmYWxzZWAuCgotIGBvdXRwdXRgIC0gQ29udGFpbnMgYW4gYXJyYXkgb2YgUG9zdG1hbiBvYmplY3RzLCBlYWNoIG9uZSB3aXRoIGEgYHR5cGVgIGFuZCBgZGF0YWAuIFRoZSBvbmx5IHR5cGUgY3VycmVudGx5IHN1cHBvcnRlZCBpcyBgY29sbGVjdGlvbmAuCgoKCiMjIyBTYW1wbGUgVXNhZ2UKYGBgamF2YXNjcmlwdApjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyksCiAgQ29udmVydGVyID0gcmVxdWlyZSgnb3BlbmFwaS10by1wb3N0bWFudjInKSwKICBvcGVuYXBpRGF0YSA9IGZzLnJlYWRGaWxlU3luYygnc2FtcGxlLXNwZWMueWFtbCcsIHtlbmNvZGluZzogJ1VURjgnfSk7CgpDb252ZXJ0ZXIuY29udmVydCh7IHR5cGU6ICdzdHJpbmcnLCBkYXRhOiBvcGVuYXBpRGF0YSB9LAogIHt9LCAoZXJyLCBjb252ZXJzaW9uUmVzdWx0KSA9PiB7CiAgICBpZiAoIWNvbnZlcnNpb25SZXN1bHQucmVzdWx0KSB7CiAgICAgIGNvbnNvbGUubG9nKCdDb3VsZCBub3QgY29udmVydCcsIGNvbnZlcnNpb25SZXN1bHQucmVhc29uKTsKICAgIH0KICAgIGVsc2UgewogICAgICBjb25zb2xlLmxvZygnVGhlIGNvbGxlY3Rpb24gb2JqZWN0IGlzOiAnLCBjb252ZXJzaW9uUmVzdWx0Lm91dHB1dFswXS5kYXRhKTsKICAgIH0KICB9Cik7CmBgYAoKIyMjIFZhbGlkYXRlIEZ1bmN0aW9uCgpUaGUgdmFsaWRhdGUgZnVuY3Rpb24gaXMgbWVhbnQgdG8gZW5zdXJlIHRoYXQgdGhlIGRhdGEgdGhhdCBpcyBiZWluZyBwYXNzZWQgdG8gdGhlIFtjb252ZXJ0IGZ1bmN0aW9uXSgjY29udmVydC1mdW5jdGlvbikgaXMgYSB2YWxpZCBKU09OIG9iamVjdCBvciBhIHZhbGlkIChZQU1ML0pTT04pIHN0cmluZy4KClRoZSB2YWxpZGF0ZSBmdW5jdGlvbiBpcyBzeW5jaHJvbm91cyBhbmQgcmV0dXJucyBhIHN0YXR1cyBvYmplY3Qgd2hpY2ggY29uZm9ybXMgdG8gdGhlIGZvbGxvd2luZyBzY2hlbWEKCiMjIyMgVmFsaWRhdGlvbiBvYmplY3Qgc2NoZW1hCgpgYGBqYXZhc2NyaXB0CnsKICB0eXBlOiAnb2JqZWN0JywKICBwcm9wZXJ0aWVzOiB7CiAgICByZXN1bHQ6IHsgdHlwZTogJ2Jvb2xlYW4nfSwKICAgIHJlYXNvbjogeyB0eXBlOiAnc3RyaW5nJyB9CiAgfSwKICByZXF1aXJlZDogWydyZXN1bHQnXQp9CmBgYAoKIyMjIyMgVmFsaWRhdGlvbiBvYmplY3QgZXhwbGFuYXRpb24KLSBgcmVzdWx0YCAtIHRydWUgaWYgdGhlIGRhdGEgbG9va3MgbGlrZSBPcGVuQVBJIGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb252ZXJ0IGZ1bmN0aW9uCgotIGByZWFzb25gIC0gUHJvdmlkZXMgYSByZWFzb24gZm9yIGFuIHVuc3VjY2Vzc2Z1bCB2YWxpZGF0aW9uIG9mIHRoZSBzcGVjaWZpY2F0aW9uCgojIyDwn6etIENvbnZlcnNpb24gU2NoZW1hCgp8ICpwb3N0bWFuKiB8ICpvcGVuYXBpKiB8ICpyZWxhdGVkIG9wdGlvbnMqIHwKfCAtLS0gfCAtLS0gfCA6LS0tOiB8CnwgY29sbGVjdGlvbk5hbWUgfCBpbmZvLnRpdGxlIHwgLSB8CnwgZGVzY3JpcHRpb24gfCBpbmZvLmRlc2NyaXB0aW9uICsgaW5mby5jb250YWN0IHwgLSB8CnwgY29sbGVjdGlvblZhcmlhYmxlc3wgc2VydmVyLnZhcmlhYmxlcyArIHBhdGhWYXJpYWJsZXMgfCAtIHwKfCBmb2xkZXJOYW1lIHwgcGF0aHMucGF0aCAvIHRhZ3MubmFtZSB8IGZvbGRlclN0cmF0ZWd5IHwKfCByZXF1ZXN0TmFtZSB8IG9wZXJhdGlvbkl0ZW0obWV0aG9kKS5zdW1tYXJ5IC8gb3BlcmF0aW9uSXRlbShtZXRob2QpLm9wZXJhdGlvbklkIC8gdXJsIHwgcmVxdWVzdE5hbWVTb3VyY2UgfAp8IHJlcXVlc3QubWV0aG9kIHwgcGF0aC5tZXRob2QgfCAtIHwKfCByZXF1ZXN0LmhlYWRlcnMgfCBwYXJhbWV0ZXIgKGBpbiA9IGhlYWRlcmApIHwgLSB8IFtsaW5rXSgjSGVhZGVyL1BhdGgtcGFyYW0tY29udmVyc2lvbi1leGFtcGxlKSB8CnwgcmVxdWVzdC5ib2R5IHwgb3BlcmF0aW9uSXRlbShtZXRob2QpLnJlcXVlc3RCb2R5IHwgcmVxdWVzdFBhcmFtZXRlcnNSZXNvbHV0aW9uLCBleGFtcGxlUGFyYW1ldGVyc1Jlc29sdXRpb24gfAp8IHJlcXVlc3QudXJsLnJhdyB8IHNlcnZlci51cmwgKHBhdGggbGV2ZWwgc2VydmVyID4+IG9wZW5hcGkgc2VydmVyKSArIHBhdGggfCAtIHwKfCByZXF1ZXN0LnVybC52YXJpYWJsZXMgfCBwYXJhbWV0ZXIgKGBpbiA9IHBhdGhgKSB8IC0gfAp8IHJlcXVlc3QudXJsLnBhcmFtcyB8IHBhcmFtZXRlciAoYGluID0gcXVlcnlgKSB8IC0gfAp8IGFwaV9rZXkgaW4gKHF1ZXJ5IG9yIGhlYWRlcikgfCBjb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcy5hcGlfa2V5IHwgaW5jbHVkZUF1dGhJbmZvSW5FeGFtcGxlIHwK readmeEtag: '"12eec4601d37679aafcc68ff321ea83a2279292f"' readmeLastModified: Tue, 13 Aug 2024 04:44:06 GMT repositoryId: 161469924 description: >- Plugin for converting OpenAPI 3.0 specs to the Postman Collection (v2) format created: '2018-12-12T10:13:46Z' updated: '2024-08-30T21:59:47Z' language: JavaScript archived: false stars: 908 watchers: 22 forks: 194 owner: postmanlabs logo: https://avatars.githubusercontent.com/u/10251060?v=4 license: Apache-2.0 repoEtag: '"cce24743d922f8a5e46dcea69ad26b821e338c11c5ff895f82151c325f04da94"' repoLastModified: Fri, 30 Aug 2024 21:59:47 GMT foundInMaster: true id: 31b717a2084e3d92f6cda2c33484c789 v3_link: true v3_1: true - source: https://openapi.tools/ name: openapi-format category: - Parsers - Converters repository: https://github.com/thim81/openapi-format link: https://www.npmjs.com/package/openapi-format language: Node.js source_description: > A CLI to format an OpenAPI document by ordering fields in a hierarchical order, with the option to filter out flags, tags, methods, operationIDs; including the option to convert an OpenAPI 3.0 document to an OpenAPI version 3.1. v2: false v3: true repositoryMetadata: base64Readme: >- IVtvcGVuYXBpLWZvcm1hdCBpY29uXSguL2Fzc2V0cy9vcGVuYXBpLWZvcm1hdC1sb2dvLnN2ZykKCjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktZm9ybWF0IiBhbHQ9IkxhdGVzdCBTdGFibGUgVmVyc2lvbiI+IVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvb3BlbmFwaS1mb3JtYXQuc3ZnKTwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS1mb3JtYXQiIGFsdD0iVG90YWwgRG93bmxvYWRzIj4hW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvb3BlbmFwaS1mb3JtYXQuc3ZnKTwvYT4KCiMgb3BlbmFwaS1mb3JtYXQKCkZvcm1hdCBhbiBPcGVuQVBJIGRvY3VtZW50IGJ5IG9yZGVyaW5nLCBmb3JtYXR0aW5nIGFuZCBmaWx0ZXJpbmcgZmllbGRzLgoKVGhlIG9wZW5hcGktZm9ybWF0IENMSSBjYW4gbG9hZCBhbiBPcGVuQVBJIGZpbGUsIHNvcnRzIHRoZSBPcGVuQVBJIGZpZWxkcyBieSBvcmRlcmluZyB0aGVtIGluIGEgaGllcmFyY2hpY2FsIG9yZGVyLCBmb3JtYXQgdGhlIGNhc2luZyBvZiB0aGUgZmllbGRzIGFuZApjYW4gb3V0cHV0IHRoZSBmaWxlIHdpdGggY2xlYW4gaW5kZW50aW5nLCB0byBlaXRoZXIgSlNPTiBvciBZQU1MLgoKTmV4dCB0byB0aGUgb3JkZXJpbmcgJiBmb3JtYXR0aW5nLCB0aGUgQ0xJIHByb3ZpZGVzIGFkZGl0aW9uYWwgb3B0aW9ucyB0byBmaWx0ZXIgZmllbGRzICYgcGFydHMgb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQgYmFzZWQgb24KZmxhZ3MsIHRhZ3MsIG1ldGhvZHMsIG9wZXJhdGlvbklEJ3MgYW5kIGV2ZW4gdW51c2VkIGNvbXBvbmVudHMuCgpUaGUgb3BlbmFwaS1mb3JtYXQgQ0xJIGhhcyB0aGUgb3B0aW9uIHRvIGNvbnZlcnQgYW4gT3BlbkFQSSAzLjAgZG9jdW1lbnQgdG8gYW4gT3BlbkFQSSB2ZXJzaW9uIDMuMS4KCiMjIFRhYmxlIG9mIGNvbnRlbnQKKiBbVXNlLWNhc2VzXSgjdXNlLWNhc2VzKQoqIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQoqIFtPbmxpbmUgcGxheWdyb3VuZF0oI29ubGluZS1wbGF5Z3JvdW5kKQoqIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgICArIFtMb2NhbCBJbnN0YWxsYXRpb24gKHJlY29tbWVuZGVkKV0oI2xvY2FsLWluc3RhbGxhdGlvbi1yZWNvbW1lbmRlZCkKICAgICsgW0dsb2JhbCBJbnN0YWxsYXRpb25dKCNnbG9iYWwtaW5zdGFsbGF0aW9uKQogICAgKyBbTlBYIHVzYWdlXSgjbnB4LXVzYWdlKQoqIFtDb21tYW5kIExpbmUgSW50ZXJmYWNlXSgjY29tbWFuZC1saW5lLWludGVyZmFjZSkKKiBbT3BlbkFQSSBmb3JtYXQgQ0xJIG9wdGlvbnNdKCNvcGVuYXBpLWZvcm1hdC1jbGktb3B0aW9ucykKKiBbT3BlbkFQSSBzb3J0IGNvbmZpZ3VyYXRpb24gb3B0aW9uc10oI29wZW5hcGktc29ydC1jb25maWd1cmF0aW9uLW9wdGlvbnMpCiogW09wZW5BUEkgZm9ybWF0dGluZyBjb25maWd1cmF0aW9uIG9wdGlvbnNdKCNvcGVuYXBpLWZvcm1hdHRpbmctY29uZmlndXJhdGlvbi1vcHRpb25zKQoqIFtPcGVuQVBJIGZpbHRlciBvcHRpb25zXSgjb3BlbmFwaS1maWx0ZXItb3B0aW9ucykKKiBbQ0xJIHNvcnQgdXNhZ2VdKCNjbGktc29ydC11c2FnZSkKKiBbQ0xJIGZpbHRlciB1c2FnZV0oI2NsaS1maWx0ZXItdXNhZ2UpCiogW0NMSSByZW5hbWUgdXNhZ2VdKCNjbGktcmVuYW1lLXVzYWdlKQoqIFtDTEkgY29udmVydFRvIHVzYWdlXSgjY2xpLWNvbnZlcnR0by11c2FnZSkKKiBbQ0xJIGNvbmZpZ3VyYXRpb24gdXNhZ2VdKCNjbGktY29uZmlndXJhdGlvbi11c2FnZSkKKiBbQ3JlZGl0c10oI2NyZWRpdHMpCgojIyBVc2UtY2FzZXMKCioqUHVibGljIGRvY3VtZW50YXRpb246KioKQW4gT3BlbkFQSSBkb2N1bWVudCBpcyBhIHNwZWNpZmljYXRpb24gdGhhdCBldm9sdmVzIGFuZCBjaGFuZ2VzLiBUbyBmYWNpbGl0YXRlIHdvcmtpbmcgd2l0aCB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcHVibGlzaGluZyB0aGUKZG9jdW1lbnQgYXMgcHVibGljIGRvY3VtZW50YXRpb24sIHlvdSB3YW50IHRvIGRlbGl2ZXIgYSBjbGVhbiBhbmQgc3RydWN0dXJlZCBzcGVjaWZpY2F0aW9uLiBPcGVuQVBJLWZvcm1hdCBoZWxwcyB5b3UgdG8Kb3JnYW5pemUgdGhlIGZpZWxkcyBieSBzb3J0aW5nLCBmb3JtYXR0aW5nIGFuZCBmaWx0ZXJpbmcgc3BlY2lmaWMgZWxlbWVudHMgZnJvbSB0aGUgT3BlbkFQSSBsaWtlIGludGVybmFsIGVuZHBvaW50cywgYmV0YSB0YWdzLCAuLi4KYW5kIGV2ZW4gdW51c2VkIHNjaGVtYXMsIGV4YW1wbGVzLCByZXNwb25zZXMsIC4uLiB3aXRoIGEgY2xlYW4gYW5kIG9wdGltaXplZCBPcGVuQVBJIGRvY3VtZW50IGFzIGEgcmVzdWx0LgoKKipNYWludGVuYW5jZToqKgpXaGVuIHdvcmtpbmcgb24gbGFyZ2UgT3BlbkFQSSBkb2N1bWVudHMgb3Igd2l0aCBtdWx0aXBsZSB0ZWFtIG1lbWJlcnMsIHRoZSBmaWxlIGNhbiBiZSBiZWNvbWUgbWVzc3kgYW5kIGRpZmZpY3VsdCB0bwpjb21wYXJlIGNoYW5nZXMuIEJ5IHNvcnRpbmcgJiBmb3JtYXR0aW5nIGZyb20gdGltZSB0byB0aW1lLCB0aGUgZmllbGRzIGFyZSBhbGwgb3JkZXJlZCBpbiBhIHN0cnVjdHVyZWQgbWFubmVyICYgcHJvcGVybHkgY2FzZWQsIHdoaWNoIHdpbGwgaGVscCB5b3UKdG8gbWFpbnRhaW4gdGhlIGZpbGUgd2l0aCBncmVhdGVyIGVhc2UuCgoqKkNJL0NEIHBpcGVsaW5lczoqKgpPcGVuQVBJLWZvcm1hdCBjYW4gYmUgdXNlZnVsIGluIENJL0NEIHBpcGVsaW5lcywgd2hlcmUgdGhlIE9wZW5BUEkgaXMgdXNlZCBhcyB0aGUgc291cmNlIGZvciBvdGhlciBkb2N1bWVudHMgbGlrZSBXZWIgZG9jdW1lbnRhdGlvbiwKUG9zdG1hbiBjb2xsZWN0aW9ucywgdGVzdCBzdWl0ZXMsIC4uLgoKIyMgRmVhdHVyZXMKCi0gW3hdIE9yZGVyIE9wZW5BUEkgZmllbGRzIGluIGEgZGVmYXVsdCBvcmRlcgotIFt4XSBPcmRlciBPcGVuQVBJIGZpZWxkcyBpbiBhIGN1c3RvbSBvcmRlcgotIFt4XSBPcmRlciBDb21wb25lbnRzIGVsZW1lbnRzIGJ5IGFscGhhYmV0Ci0gW3hdIEZvcm1hdCB0aGUgY2FzaW5nIChjYW1lbENhc2UsUGFzY2FsQ2FzZSwgLi4uKSBvZiBjb21wb25lbnQgZWxlbWVudHMKLSBbeF0gRmlsdGVyIE9wZW5BUEkgZmlsZXMgYmFzZWQgb24gbWV0aG9kcwotIFt4XSBGaWx0ZXIgT3BlbkFQSSBmaWxlcyBiYXNlZCBvbiBmbGFncwotIFt4XSBGaWx0ZXIgT3BlbkFQSSBmaWxlcyBiYXNlZCBvbiBmbGFncyB2YWx1ZXMKLSBbeF0gRmlsdGVyIE9wZW5BUEkgZmlsZXMgYmFzZWQgb24gdGFncwotIFt4XSBGaWx0ZXIgT3BlbkFQSSBmaWxlcyBiYXNlZCBvbiBvcGVyYXRpb25JRCdzCi0gW3hdIEZpbHRlciBPcGVuQVBJIGZpbGVzIGJhc2VkIG9uIG9wZXJhdGlvbnMgZGVmaW5pdGlvbgotIFt4XSBGaWx0ZXIgT3BlbkFQSSBmaWxlcyBiYXNlZCBvbiByZXNwb25zZSBjb250ZW50LXR5cGVzCi0gW3hdIFN0cmlwIGZsYWdzIGZyb20gT3BlbkFQSSBmaWxlcwotIFt4XSBTdHJpcCB1bnVzZWQgY29tcG9uZW50cyBmcm9tIE9wZW5BUEkgZmlsZXMKLSBbeF0gQ29udmVydCBPcGVuQVBJIDMuMCBkb2N1bWVudHMgdG8gT3BlbkFQSSAzLjEgCi0gW3hdIFJlbmFtZSB0aGUgT3BlbkFQSSB0aXRsZQotIFt4XSBTdXBwb3J0IE9wZW5BUEkgZG9jdW1lbnRzIGluIEpTT04gZm9ybWF0Ci0gW3hdIFN1cHBvcnQgT3BlbkFQSSBkb2N1bWVudHMgaW4gWUFNTCBmb3JtYXQKLSBbeF0gRm9ybWF0IHZpYSBDTEkKLSBbeF0gRm9ybWF0IHZpYSBsb2NhbCBvciByZW1vdGUgY29uZmlnIGZpbGVzCi0gW3hdIFVzZSBhcyBhIE1vZHVsZQotIFt4XSBBbGlnbmVkIFlBTUwgcGFyc2luZyBzdHlsZSB3aXRoIFN0b3BsaWdodCBTdHVkaW8gc3R5bGUKLSBbeF0gU3VwcG9ydCBmb3IgT3BlbkFQSSAzLjAKLSBbeF0gU3VwcG9ydCBmb3IgT3BlbkFQSSAzLjEgKGJldGEpCi0gW3hdIE9ubGluZSBwbGF5Z3JvdW5kIChodHRwczovL29wZW5hcGktZm9ybWF0LXBsYXlncm91bmQudmVyY2VsLmFwcC8pCgojIyBPbmxpbmUgcGxheWdyb3VuZAoKVGhlIFtPcGVuQVBJLUZvcm1hdCBQbGF5Z3JvdW5kXShodHRwczovL29wZW5hcGktZm9ybWF0LXBsYXlncm91bmQudmVyY2VsLmFwcC8pIGlzIGEgd2ViLWJhc2VkIHRvb2wgZm9yIGZvcm1hdHRpbmcgYW5kIHNvcnRpbmcgT3BlbkFQSSBkb2N1bWVudHMsIHBvd2VyZWQgYnkgdGhlIG9wZW5hcGktZm9ybWF0IENMSS4KCjxhIGhyZWY9Imh0dHBzOi8vb3BlbmFwaS1mb3JtYXQtcGxheWdyb3VuZC52ZXJjZWwuYXBwLyIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJPcGVuQVBJLWZvcm1hdCBQbGF5Z3JvdW5kIiByZWw9Im5vZm9sbG93Ij4KPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90aGltODEvb3BlbmFwaS1mb3JtYXQvbWFpbi9hc3NldHMvb3BlbmFwaS1mb3JtYXQtcGxheWdyb3VuZC5wbmciIGFsdD0iT3BlbkFQSS1mb3JtYXQgUGxheWdyb3VuZCIgd2lkdGg9IjUwJSI+PGJyPgo8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoaW04MS9vcGVuYXBpLWZvcm1hdC9tYWluL2Fzc2V0cy9vcGVuYXBpLWZvcm1hdC1wbGF5Z3JvdW5kLWRpZmYucG5nIiBhbHQ9Ik9wZW5BUEktZm9ybWF0IFBsYXlncm91bmQgRGlmZiB2aWV3ZXIiIHdpZHRoPSIyNSUiPgo8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoaW04MS9vcGVuYXBpLWZvcm1hdC9tYWluL2Fzc2V0cy9vcGVuYXBpLWZvcm1hdC1wbGF5Z3JvdW5kLWZpbHRlci5wbmciIGFsdD0iT3BlbkFQSS1mb3JtYXQgUGxheWdyb3VuZCBGaWx0ZXIgVUkiIHdpZHRoPSIyNSUiPgo8L2E+CgpNb3JlIGluZm8gYWJvdXQgdGhlIGZlYXR1cmVzIGFuZCB1c2FnZSwgY2FuIGJlIGZvdW5kIGluIHRoZSBbcmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vdGhpbTgxL29wZW5hcGktZm9ybWF0LXBsYXlncm91bmQ/dGFiPXJlYWRtZS1vdi1maWxlI2ZlYXR1cmVzKS4KCiMjIEluc3RhbGxhdGlvbgoKIyMjIExvY2FsIEluc3RhbGxhdGlvbiAocmVjb21tZW5kZWQpCgpXaGlsZSBwb3NzaWJsZSB0byBpbnN0YWxsIGdsb2JhbGx5LCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgYWRkIHRoZSBvcGVuYXBpLWZvcm1hdCBDTEkgdG8gdGhlIGBub2RlX21vZHVsZXNgIGJ5IHVzaW5nOgoKYGBgc2hlbGwKJCBucG0gaW5zdGFsbCAtLXNhdmUgb3BlbmFwaS1mb3JtYXQKYGBgCgpvciB1c2luZyB5YXJuLi4uCgpgYGBzaGVsbAokIHlhcm4gYWRkIG9wZW5hcGktZm9ybWF0CmBgYAoKTm90ZSB0aGF0IHRoaXMgd2lsbCByZXF1aXJlIHlvdSB0byBydW4gdGhlIG9wZW5hcGktZm9ybWF0IENMSSB3aXRoIGBucHggb3BlbmFwaS1mb3JtYXQgeW91ci1vcGVuYXBpLWZpbGUueWFtbGAgb3IsIGlmCnlvdSBhcmUgdXNpbmcgYW4gb2xkZXIgdmVyc2lvbnMgb2YgbnBtLCBgLi9ub2RlX21vZHVsZXMvLmJpbi9vcGVuYXBpLWZvcm1hdCB5b3VyLW9wZW5hcGktZmlsZS55YW1sYC4KCiMjIyBHbG9iYWwgSW5zdGFsbGF0aW9uCgpgYGBzaGVsbAokIG5wbSBpbnN0YWxsIC1nIG9wZW5hcGktZm9ybWF0CmBgYAoKIyMjIE5QWCB1c2FnZQoKVG8gZXhlY3V0ZSB0aGUgQ0xJIHdpdGhvdXQgaW5zdGFsbGluZyBpdCB2aWEgbnBtLCB1c2UgdGhlIG5weCBtZXRob2QKCmBgYHNoZWxsCiQgbnB4IG9wZW5hcGktZm9ybWF0IHlvdXItb3BlbmFwaS1maWxlLnlhbWwKYGBgCgojIyBDb21tYW5kIExpbmUgSW50ZXJmYWNlCgpgYGAKb3BlbmFwaS1mb3JtYXQuanMgPGlucHV0LWZpbGU+IC1vIFtvdXRwdXQtZmlsZV0gW29wdGlvbnNdCgpBcmd1bWVudHM6CiAgaW5wdXQtZmlsZSAgIHRoZSBPcGVuQVBJIGRvY3VtZW50IGNhbiBiZSBhIGxvY2FsIG9yIHJlbW90ZSBmaWxlIGluIEpTT04gb3IgWUFNTCBmb3JtYXQKICBvdXRwdXQtZmlsZSAgdGhlIG91dHB1dCBmaWxlIGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgZWl0aGVyIGEgLmpzb24gb3IgLnlhbWwgZmlsZS4gCgpPcHRpb25zOgoKICAtLW91dHB1dCwgLW8gICAgICAgICAgU2F2ZSB0aGUgZm9ybWF0ZWQgT3BlbkFQSSBmaWxlIGFzIEpTT04vWUFNTCAgICAgICAgICAgICBbcGF0aF0KCiAgLS1zb3J0RmlsZSAgICAgICAgICAgIFRoZSBmaWxlIHRvIHNwZWNpZnkgY3VzdG9tIE9wZW5BUEkgZmllbGRzIG9yZGVyaW5nICAgICAgW3BhdGhdCiAgLS1jYXNpbmdGaWxlICAgICAgICAgIFRoZSBmaWxlIHRvIHNwZWNpZnkgY2FzaW5nIHJ1bGVzICAgICAgICAgICAgICAgICAgICAgICAgW3BhdGhdCiAgLS1maWx0ZXJGaWxlICAgICAgICAgIFRoZSBmaWxlIHRvIHNwZWNpZnkgZmlsdGVyIHJ1bGVzICAgICAgICAgICAgICAgICAgICAgICAgW3BhdGhdCgogIC0tbm8tc29ydCAgICAgICAgICAgICBEb24ndCBzb3J0IHRoZSBPcGVuQVBJIGZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXQogIC0tc29ydENvbXBvbmVudHNGaWxlICBUaGUgZmlsZSB3aXRoIGNvbXBvbmVudHMgdG8gc29ydCBhbHBoYWJldGljYWxseSAgICAgICAgIFtwYXRoXQoKICAtLXJlbmFtZSAgICAgICAgICAgICAgUmVuYW1lIHRoZSBPcGVuQVBJIHRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10KICAKICAtLWNvbnZlcnRUbyAgICAgICAgICAgY29udmVydCB0aGUgT3BlbkFQSSBkb2N1bWVudCB0byBPcGVuQVBJIHZlcnNpb24gMy4xICAgW3N0cmluZ10KCiAgLS1jb25maWdGaWxlICAgICAgICAgIFRoZSBmaWxlIHdpdGggdGhlIE9wZW5BUEktZm9ybWF0IENMSSBvcHRpb25zICAgICAgICAgICAgW3BhdGhdCgogIC0tbGluZVdpZHRoICAgICAgICAgICBNYXggbGluZSB3aWR0aCBvZiBZQU1MIG91dHB1dCAgICAgICAgICAgICAgICAgICAgICAgICBbbnVtYmVyXQoKICAtLWpzb24gICAgICAgICAgICAgICAgUHJpbnRzIHRoZSBmaWxlIHRvIHN0ZG91dCBhcyBKU09OICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAtLXlhbWwgICAgICAgICAgICAgICAgUHJpbnRzIHRoZSBmaWxlIHRvIHN0ZG91dCBhcyBZQU1MICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KCiAgLS1wbGF5Z3JvdW5kLCAtcCAgICAgIE9wZW4gY29uZmlnIGluIG9ubGluZSBwbGF5Z3JvdW5kCiAgLS1oZWxwICAgICAgICAgICAgICAgIFNob3cgaGVscCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dCiAgLS12ZXJzaW9uICAgICAgICAgICAgIE91dHB1dCB0aGUgdmVyc2lvbiBudW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLS12ZXJib3NlICAgICAgICAgICAgIE91dHB1dCBtb3JlIGRldGFpbHMgb2YgdGhlIGZpbHRlciBwcm9jZXNzICAgICAgICAgICAgICBbY291bnRdCmBgYAoKIyMgT3BlbkFQSSBmb3JtYXQgQ0xJIG9wdGlvbnMKCnwgUGFyYW1ldGVyICAgICAgICAgICAgfCBBbGlhcyAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSW5wdXQgdHlwZSAgIHwgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgIHwgSW5mbyAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tfAp8IGZpbGUgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8IHRoZSBPcGVuQVBJIGRvY3VtZW50IGNhbiBiZSBhIGxvY2FsIG9yIHJlbW90ZSBmaWxlIGluIEpTT04gb3IgWUFNTCBmb3JtYXQgICB8IHBhdGggdG8gZmlsZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlcXVpcmVkICB8CnwgLS1vdXRwdXQgICAgICAgICAgICAgfCAtbyAgICAgICAgICAgIHwgc2F2ZSB0aGUgZm9ybWF0dGVkIE9wZW5BUEkgZmlsZSBhcyBKU09OL1lBTUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGF0aCB0byBmaWxlIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3B0aW9uYWwgIHwKfCAtLXNvcnRGaWxlICAgICAgICAgICB8IC1zICAgICAgICAgICAgfCB0aGUgZmlsZSB0byBzcGVjaWZ5IGN1c3RvbSBPcGVuQVBJIGZpZWxkcyBvcmRlcmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwYXRoIHRvIGZpbGUgfCBkZWZhdWx0U29ydC5qc29uICAgICAgICAgICAgfCBvcHRpb25hbCAgfAp8IC0tZmlsdGVyRmlsZSAgICAgICAgIHwgLWYgICAgICAgICAgICB8IHRoZSBmaWxlIHRvIHNwZWNpZnkgZmlsdGVyIHNldHRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBhdGggdG8gZmlsZSB8IGRlZmF1bHRGaWx0ZXIuanNvbiAgICAgICAgICB8IG9wdGlvbmFsICB8CnwgLS1jYXNpbmdGaWxlICAgICAgICAgfCAtYyAgICAgICAgICAgIHwgdGhlIGZpbGUgdG8gc3BlY2lmeSBjYXNpbmcgc2V0dGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGF0aCB0byBmaWxlIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3B0aW9uYWwgIHwKfCAtLW5vLXNvcnQgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCBkb24ndCBzb3J0IHRoZSBPcGVuQVBJIGZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBib29sZWFuICAgICAgfCBGQUxTRSAgICAgICAgICAgICAgICAgICAgICAgfCBvcHRpb25hbCAgfAp8IC0tc29ydENvbXBvbmVudHNGaWxlIHwgICAgICAgICAgICAgICB8IHNvcnQgdGhlIGl0ZW1zIG9mIHRoZSBjb21wb25lbnRzIChzY2hlbWFzLCBwYXJhbWV0ZXJzLCAuLi4pIGJ5IGFscGhhYmV0ICAgICB8IHBhdGggdG8gZmlsZSB8IGRlZmF1bHRTb3J0Q29tcG9uZW50cy5qc29uICB8IG9wdGlvbmFsICB8CnwgLS1yZW5hbWUgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgcmVuYW1lIHRoZSBPcGVuQVBJIHRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc3RyaW5nICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3B0aW9uYWwgIHwKfCAtLWNvbnZlcnRUbyAgICAgICAgICB8ICAgICAgICAgICAgICAgfCBjb252ZXJ0IHRoZSBPcGVuQVBJIGRvY3VtZW50IHRvIE9wZW5BUEkgdmVyc2lvbiAzLjEgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdHJpbmcgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvcHRpb25hbCAgfAp8IC0tY29uZmlnRmlsZSAgICAgICAgIHwgLWMgICAgICAgICAgICB8IHRoZSBmaWxlIHdpdGggYWxsIHRoZSBmb3JtYXQgY29uZmlnIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBhdGggdG8gZmlsZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG9wdGlvbmFsICB8CnwgLS1saW5lV2lkdGggICAgICAgICAgfCAgICAgICAgICAgICAgIHwgbWF4IGxpbmUgd2lkdGggb2YgWUFNTCBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbnVtYmVyICAgICAgIHwgLTEgKEluZmluaXR5KSAgICAgICAgICAgICAgIHwgb3B0aW9uYWwgIHwKfCAtLWpzb24gICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCBwcmludHMgdGhlIGZpbGUgdG8gc3Rkb3V0IGFzIEpTT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCBGQUxTRSAgICAgICAgICAgICAgICAgICAgICAgfCBvcHRpb25hbCAgfAp8IC0teWFtbCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8IHByaW50cyB0aGUgZmlsZSB0byBzdGRvdXQgYXMgWUFNTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IEZBTFNFICAgICAgICAgICAgICAgICAgICAgICB8IG9wdGlvbmFsICB8CnwgLS1wbGF5Z3JvdW5kICAgICAgICAgfCAtcCAgICAgICAgICAgIHwgb3BlbiBjb25maWcgaW4gb25saW5lIHBsYXlncm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3B0aW9uYWwgIHwKfCAtLXZlcnNpb24gICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCBvdXRwdXQgdGhlIHZlcnNpb24gbnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvcHRpb25hbCAgfAp8IC0tdmVyYm9zZSAgICAgICAgICAgIHwgLXYsIC12diwgLXZ2diB8IHZlcmJvc2l0eSB0aGF0IGNhbiBiZSBpbmNyZWFzZWQsIHdoaWNoIHdpbGwgc2hvdyBtb3JlIG91dHB1dCBvZiB0aGUgcHJvY2VzcyB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG9wdGlvbmFsICB8CnwgLS1oZWxwICAgICAgICAgICAgICAgfCBoICAgICAgICAgICAgIHwgZGlzcGxheSBoZWxwIGZvciBjb21tYW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3B0aW9uYWwgIHwKCiMjIE9wZW5BUEkgc29ydCBjb25maWd1cmF0aW9uIG9wdGlvbnMKClRoZSBDTEkgd2lsbCBzb3J0IHRoZSBPcGVuQVBJIGRvY3VtZW50IGluIHRoZSBkZWZpbmVkIG9yZGVyIGxpa2VkIGRlZmluZWQgcGVyIE9wZW5BUEkga2V5L2ZpZWxkL3Byb3BlcnR5L2VsZW1lbnQuIFRoZSBmaWVsZHMgdGhhdCBhcmUKbm90IHNwZWNpZmllZCB3aWxsIGtlZXAgdGhlaXIgb3JkZXIgbGlrZSBpdCBpcyBpbiB0aGUgb3JpZ2luYWwgT3BlbkFQSSBkb2N1bWVudCwgc28gb25seSBkZWZpbmVkIGZpZWxkcyB3aWxsIGJlCnJlLW9yZGVyZWQuCgpUaGUgZGVmYXVsdCBzb3J0aW5nIG9mIHRoZSBkaWZmZXJlbnQgZmllbGRzIGJhc2VkIG9uIHRoZSBkZWZpbmVkIG9yZGVyIChsaXN0ZWQgaW4gdGhlIHRhYmxlIGJlbG93KSwgd2hpY2ggaXMgc3RvcmVkIGluCnRoZSBbZGVmYXVsdFNvcnQuanNvbl0oaHR0cHM6Ly9naXRodWIuY29tL3RoaW04MS9vcGVuYXBpLWZvcm1hdC9ibG9iL21haW4vZGVmYXVsdFNvcnQuanNvbikgZmlsZS4KCiMjIyBPcGVuQVBJIHNvcnQgZmllbGRzCgpZb3UgY2FuIGVhc2lseSBtb2RpZnkgdGhpcyBieSBzcGVjaWZ5aW5nIHlvdXIgb3duIG9yZGVyaW5nIHBlciBrZXksIHdoaWNoIGNhbiBiZSBwYXNzZWQgb24gdG8gdGhlIENMSSAoc2VlIGJlbG93IGZvciBhbgpleGFtcGxlIG9uIGhvdyB0byBkbyB0aGlzKS4KCnwgS2V5ICAgICAgICAgfCBPcmRlcmVkIGJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBPcGVuQVBJIHJlZmVyZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IHJvb3QgICAgICAgIHwgLSBvcGVuYXBpPGJyPlwtIGluZm88YnI+XC0gc2VydmVyczxicj5cLSBwYXRoczxicj5cLSBjb21wb25lbnRzPGJyPlwtIHRhZ3M8YnI+XC0geC10YWdHcm91cHM8YnI+XC0gZXh0ZXJuYWxEb2NzIHwgW29wZW5hcGktb2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNvcGVuYXBpLW9iamVjdCkgICAgICAgICAgICAgICAgICB8CnwgZ2V0ICAgICAgICAgfCAtIG9wZXJhdGlvbklkPGJyPlwtIHN1bW1hcnk8YnI+XC0gZGVzY3JpcHRpb248YnI+XC0gcGFyYW1ldGVyczxicj5cLSByZXF1ZXN0Qm9keTxicj5cLSByZXNwb25zZXMgICAgICAgICAgICAgICAgfCBbb3BlcmF0aW9uT2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNvcGVyYXRpb25PYmplY3QpICAgICAgICAgICAgICAgIHwKfCBwb3N0ICAgICAgICB8IC0gb3BlcmF0aW9uSWQ8YnI+XC0gc3VtbWFyeTxicj5cLSBkZXNjcmlwdGlvbjxicj5cLSBwYXJhbWV0ZXJzPGJyPlwtIHJlcXVlc3RCb2R5PGJyPlwtIHJlc3BvbnNlcyAgICAgICAgICAgICAgICB8IFtvcGVyYXRpb25PYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI29wZXJhdGlvbk9iamVjdCkgICAgICAgICAgICAgICAgIHwKfCBwdXQgICAgICAgICB8IC0gb3BlcmF0aW9uSWQ8YnI+XC0gc3VtbWFyeTxicj5cLSBkZXNjcmlwdGlvbjxicj5cLSBwYXJhbWV0ZXJzPGJyPlwtIHJlcXVlc3RCb2R5PGJyPlwtIHJlc3BvbnNlcyAgICAgICAgICAgICAgICB8IFtvcGVyYXRpb25PYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI29wZXJhdGlvbk9iamVjdCkgICAgICAgICAgICAgICAgIHwKfCBwYXRjaCAgICAgICB8IC0gb3BlcmF0aW9uSWQ8YnI+XC0gc3VtbWFyeTxicj5cLSBkZXNjcmlwdGlvbjxicj5cLSBwYXJhbWV0ZXJzPGJyPlwtIHJlcXVlc3RCb2R5PGJyPlwtIHJlc3BvbnNlcyAgICAgICAgICAgICAgICB8IFtvcGVyYXRpb25PYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI29wZXJhdGlvbk9iamVjdCkgICAgICAgICAgICAgICAgIHwKfCBkZWxldGUgICAgICB8IC0gb3BlcmF0aW9uSWQ8YnI+XC0gc3VtbWFyeTxicj5cLSBkZXNjcmlwdGlvbjxicj5cLSBwYXJhbWV0ZXJzPGJyPlwtIHJlcXVlc3RCb2R5PGJyPlwtIHJlc3BvbnNlcyAgICAgICAgICAgICAgICB8IFtvcGVyYXRpb25PYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI29wZXJhdGlvbk9iamVjdCkgICAgICAgICAgICAgICAgIHwKfCBwYXJhbWV0ZXJzICB8IC0gbmFtZTxicj5cLSBpbjxicj5cLSBkZXNjcmlwdGlvbjxicj5cLSByZXF1aXJlZDxicj5cLSBzY2hlbWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtwYXJhbWV0ZXJPYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI3BhcmFtZXRlck9iamVjdCkgICAgICAgICAgICAgICAgIHwKfCByZXF1ZXN0Qm9keSB8IC0gZGVzY3JpcHRpb248YnI+XC0gaGVhZGVyczxicj5cLSBjb250ZW50PGJyPlwtIGxpbmtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtyZXF1ZXN0LWJvZHktb2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNyZXF1ZXN0LWJvZHktb2JqZWN0KSAgICAgICAgICAgICB8CnwgcmVzcG9uc2VzICAgfCAtIGRlc2NyaXB0aW9uPGJyPlwtIGhlYWRlcnM8YnI+XC0gY29udGVudDxicj5cLSBsaW5rcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbcmVzcG9uc2VzLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjcmVzcG9uc2VzLW9iamVjdCkgICAgICAgICAgICAgICAgfAp8IGNvbnRlbnQgICAgIHwgKEJ5IGFscGhhYmV0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3Jlc3BvbnNlcy1vYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI3Jlc3BvbnNlcy1vYmplY3QpICAgICAgICAgICAgICAgIHwKfCBjb21wb25lbnRzICB8IC0gcGFyYW1ldGVyczxicj5cLSBzY2hlbWFzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtjb21wb25lbnRzLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjY29tcG9uZW50cy1vYmplY3QpICAgICAgICAgICAgICAgfAp8IHNjaGVtYSAgICAgIHwgLSBkZXNjcmlwdGlvbjxicj5cLSB0eXBlPGJyPlwtIGl0ZW1zPGJyPlwtIHByb3BlcnRpZXM8YnI+XC0gZm9ybWF0PGJyPlwtIGV4YW1wbGU8YnI+XC0gZGVmYXVsdCAgICAgICAgICAgICAgICAgIHwgW3NjaGVtYU9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjc2NoZW1hT2JqZWN0KSAgICAgICAgICAgICAgICAgICAgfAp8IHNjaGVtYXMgICAgIHwgLSBkZXNjcmlwdGlvbjxicj5cLSB0eXBlPGJyPlwtIGl0ZW1zPGJyPlwtIHByb3BlcnRpZXM8YnI+XC0gZm9ybWF0PGJyPlwtIGV4YW1wbGU8YnI+XC0gZGVmYXVsdCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcHJvcGVydGllcyAgfCAtIGRlc2NyaXB0aW9uPGJyPlwtIHR5cGU8YnI+XC0gaXRlbXM8YnI+XC0gZm9ybWF0PGJyPlwtIGV4YW1wbGU8YnI+XC0gZGVmYXVsdDxicj5cLSBlbnVtICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCkhhdmUgYSBsb29rIGF0IHRoZSBmb2xkZXIgW3lhbWwtZGVmYXVsdF0odGVzdC95YW1sLWRlZmF1bHQpIGFuZCBjb21wYXJlIHRoZSAib3V0cHV0LnlhbWwiIChzb3J0ZWQgZG9jdW1lbnQpIHdpdGggdGhlICJpbnB1dC55YW1sIiAob3JpZ2luYWwgZG9jdW1lbnQpLCB0byBzZWUgaG93IG9wZW5hcGktZm9ybWF0IGhhdmUgc29ydGVkIHRoZSBPcGVuQVBJIGRvY3VtZW50LgoKIyMjIE9wZW5BUEkgc29ydCBQYXRocwoKWW91IGNhbiBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBwYXRocyBkZWZpbmVkIGluIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gYW5kIHNvcnQgdGhlbSBhbHBoYWJldGljYWxseSAoYHBhdGhgKSBvciBieSB0aGUgZmlyc3QgdGFnIG9mIHRoZSBmaXJzdCBtZXRob2QgKGB0YWdzYCkuCgpPcHRpb25zIHRvIHNvcnQgYnk6CgotIGBvcmlnaW5hbGAgKGRlZmF1bHQpOiBrZWVwIHRoZSBvcmRlciBhcyBkZWZpbmVkIGluIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24KLSBgcGF0aGA6IG9yZGVyIHRoZSBwYXRocyBhbHBoYWJldGljYWxseSBieSB0aGUgcGF0aCBwYXJ0cwotIGB0YWdzYDogb3JkZXIgYnkgdGhlIGZpcnN0IHRhZyBvZiB0aGUgZmlyc3QgbWV0aG9kCgp8IEtleSAgICAgICAgIHwgT3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICB8IE9wZW5BUEkgcmVmZXJlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IHNvcnRQYXRoc0J5IHwgJ29yaWdpbmFsJyAvICdwYXRoJyAvICd0YWdzJyB8IFtwYXRocy1vYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI3BhdGhzLW9iamVjdCkgfAoKCgojIyBPcGVuQVBJIGZpbHRlciBvcHRpb25zCgpCeSBzcGVjaWZ5aW5nIHRoZSBkZXNpcmVkIGZpbHRlciB2YWx1ZXMgZm9yIHRoZSBhdmFpbGFibGUgZmlsdGVyIHR5cGVzLCB0aGUgb3BlbmFwaS1mb3JtYXQgQ0xJIHdpbGwgc3RyaXAgb3V0IGFueQptYXRjaGluZyBpdGVtIGZyb20gdGhlIE9wZW5BUEkgZG9jdW1lbnQuIFlvdSBjYW4gY29tYmluZSBtdWx0aXBsZSB0eXBlcyB0byBmaWx0ZXIgb3V0IGEgcmFuZ2Ugb2YgT3BlbkFQSSBpdGVtcy4KCkZvciBtb3JlIGNvbXBsZXggdXNlLWNhc2VzLCB3ZSBjYW4gYWR2aXNlIHRoZSBleGNlbGxlbnQgaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb3BlbmFwaS1maWx0ZXIgcGFja2FnZSwgd2hpY2ggaGFzCmV4dGVuZGVkIG9wdGlvbnMgZm9yIGZpbHRlcmluZyBPcGVuQVBJIGRvY3VtZW50cy4KCnwgVHlwZSAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlICAgIHwgRXhhbXBsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBtZXRob2RzICAgICAgICAgICAgICAgIHwgT3BlbkFQSSBtZXRob2RzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFycmF5ICAgfCBbJ2dldCcsJ3Bvc3QnLCdwdXQnXSAgICAgICAgICAgICAgICAgICAgICB8CnwgaW52ZXJzZU1ldGhvZHMgICAgICAgICB8IE9wZW5BUEkgbWV0aG9kcyB0aGF0IHdpbGwgYmUga2VwdCAgICAgICAgICAgfCBhcnJheSAgIHwgWydnZXQnLCdwb3N0JywncHV0J10gICAgICAgICAgICAgICAgICAgICAgfAp8IHRhZ3MgICAgICAgICAgICAgICAgICAgfCBPcGVuQVBJIHRhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYXJyYXkgICB8IFsncGV0JywndXNlciddICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbnZlcnNlVGFncyAgICAgICAgICAgIHwgT3BlbkFQSSB0YWdzIHRoYXQgd2lsbCBiZSBrZXB0ICAgICAgICAgICAgICB8IGFycmF5ICAgfCBbJ3BldCcsJ3VzZXInXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cnwgb3BlcmF0aW9uSWRzICAgICAgICAgICB8IE9wZW5BUEkgb3BlcmF0aW9uIElEJ3MgICAgICAgICAgICAgICAgICAgICAgfCBhcnJheSAgIHwgWydmaW5kUGV0c0J5U3RhdHVzJywndXBkYXRlUGV0J10gICAgICAgICAgfAp8IGludmVyc2VPcGVyYXRpb25JZHMgICAgfCBPcGVuQVBJIG9wZXJhdGlvbiBJRCdzIHRoYXQgd2lsbCBiZSBrZXB0ICAgIHwgYXJyYXkgICB8IFsnZmluZFBldHNCeVN0YXR1cycsJ3VwZGF0ZVBldCddICAgICAgICAgIHwKfCBvcGVyYXRpb25zICAgICAgICAgICAgIHwgT3BlbkFQSSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFycmF5ICAgfCBbJ0dFVDo6L3BldHMnLCdQVVQ6Oi9wZXRzJ10gICAgICAgICAgICAgICB8CnwgZmxhZ3MgICAgICAgICAgICAgICAgICB8IEN1c3RvbSBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhcnJheSAgIHwgWyd4LWV4Y2x1ZGUnLCd4LWludGVybmFsJ10gICAgICAgICAgICAgICAgfAp8IGludmVyc2VGbGFncyAgICAgICAgICAgfCBDdXN0b20gZmxhZ3MgdGhhdCB3aWxsIGtlcHQgICAgICAgICAgICAgICAgIHwgYXJyYXkgICB8IFsneC1leGNsdWRlJywneC1pbnRlcm5hbCddICAgICAgICAgICAgICAgIHwKfCBmbGFnVmFsdWVzICAgICAgICAgICAgIHwgQ3VzdG9tIGZsYWdzIHdpdGggYSBzcGVjaWZpYyB2YWx1ZSAgICAgICAgICB8IGFycmF5ICAgfCBbJ3gtdmVyc2lvbjogMS4wJywneC12ZXJzaW9uOiAzLjAnXSAgICAgICB8CnwgaW52ZXJzZUZsYWdWYWx1ZXMgICAgICB8IEN1c3RvbSBmbGFncyB3aXRoIGEgdmFsdWUgdGhhdCB3aWxsIGJlIGtlcHQgfCBhcnJheSAgIHwgWyd4LXZlcnNpb246IDEuMCcsJ3gtdmVyc2lvbjogMy4wJ10gICAgICAgfAp8IHJlc3BvbnNlQ29udGVudCAgICAgICAgfCBSZXNwb25zZSBDb250ZW50IHR5cGVzICAgICAgICAgICAgICAgICAgICAgIHwgYXJyYXkgICB8IFsnYXBwbGljYXRpb24vanNvbicsJ2FwcGxpY2F0aW9uL2h0bWwnXSAgIHwKfCBpbnZlcnNlUmVzcG9uc2VDb250ZW50IHwgUmVzcG9uc2UgQ29udGVudCB0eXBlcyB0aGF0IHdpbGwga2VwdCAgICAgICB8IGFycmF5ICAgfCBbJ2FwcGxpY2F0aW9uL2xkK2pzb24nXSAgICAgICAgICAgICAgICAgICB8CnwgcmVxdWVzdENvbnRlbnQgICAgICAgICB8IFJlcXVlc3QgQm9keSBDb250ZW50IHR5cGVzICAgICAgICAgICAgICAgICAgfCBhcnJheSAgIHwgWydhcHBsaWNhdGlvbi9qc29uJywnYXBwbGljYXRpb24vaHRtbCddICAgfAp8IGludmVyc2VSZXF1ZXN0Q29udGVudCAgfCBSZXF1ZXN0IEJvZHkgQ29udGVudCB0eXBlcyB0aGF0IHdpbGwga2VwdCAgIHwgYXJyYXkgICB8IFsnYXBwbGljYXRpb24vbGQranNvbiddICAgICAgICAgICAgICAgICAgIHwKfCB1bnVzZWRDb21wb25lbnRzICAgICAgIHwgVW51c2VkIGNvbXBvbmVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFycmF5ICAgfCBbJ2V4YW1wbGVzJywnc2NoZW1hcyddICAgICAgICAgICAgICAgICAgICB8Cnwgc3RyaXBGbGFncyAgICAgICAgICAgICB8IEN1c3RvbSBmbGFncyB0aGF0IHdpbGwgYmUgc3RyaXBwZWQgICAgICAgICAgfCBhcnJheSAgIHwgWyd4LWV4Y2x1ZGUnLCd4LWludGVybmFsJ10gICAgICAgICAgICAgICAgfAp8IHByZXNlcnZlRW1wdHlPYmplY3RzICAgfCBQcmVzZXJ2ZSBlbXB0eSBvYmplY3QgICAgICAgICAgICAgICAgICAgICAgIHwgYm9vbGVhbiB8IHRydWUgT1IgWydzY2hlbWEnXSAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB0ZXh0UmVwbGFjZSAgICAgICAgICAgIHwgU2VhcmNoICYgcmVwbGFjZSB2YWx1ZXMgdG8gcmVwbGFjZSAgICAgICAgICB8IGFycmF5ICAgfCBbeydzZWFyY2hGb3InOidQZXQnLCdyZXBsYWNlV2l0aCc6J0RvZyd9XSB8CgpTb21lIG1vcmUgZGV0YWlscyBvbiB0aGUgYXZhaWxhYmxlIGZpbHRlciB0eXBlczoKCiMjIyBGaWx0ZXIgLSBtZXRob2RzL2ludmVyc2VNZXRob2RzCgo9PiAqKm1ldGhvZHMqKjogUmVmZXJzIHRvIHRoZSBbUGF0aCBJdGVtIE9iamVjdF0oaHR0cDovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNvcGVyYXRpb25PYmplY3QpCgpUaGlzIHdpbGwgcmVtb3ZlIGFsbCBmaWVsZHMgYW5kIGF0dGFjaGVkIGZpZWxkcyB0aGF0IG1hdGNoIHRoZSB2ZXJicy4gSW4gdGhlIGV4YW1wbGUgYmVsb3csIHRoaXMgd291bGQgbWVhbiB0aGF0CmFsbCBgZ2V0YCwgYHB1dGAsIGBwb3N0YCBpdGVtcyB3b3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgICB0aXRsZTogQVBJCiAgICB2ZXJzaW9uOiAxLjAuMApwYXRoczoKICAgIC9wZXRzOgogICAgICAgIGdldDoKICAgICAgICAgICAgc3VtbWFyeTogRmluZHMgUGV0cyBieSBzdGF0dXMKICAgICAgICBwdXQ6CiAgICAgICAgICAgIHN1bW1hcnk6IFVwZGF0ZSBhbiBleGlzdGluZyBwZXQKYGBgCgo9PiAqKmludmVyc2VNZXRob2RzKio6IFRoaXMgb3B0aW9uIGRvZXMgdGhlIGludmVyc2UgZmlsdGVyaW5nLCBieSBrZWVwaW5nIG9ubHkgdGhlIHZlcmJzIGRlZmluZWQgYW5kIHJlbW92ZSBhbGwgb3RoZXIgdmVyYnMuCgojIyMgRmlsdGVyIC0gdGFncwoKPT4gKip0YWdzKio6IFJlZmVycyB0byB0aGUgInRhZ3MiIGZpZWxkIGZyb20gdGhlICJPcGVyYXRpb24KICBPYmplY3QiIGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI29wZXJhdGlvbk9iamVjdAoKVGhpcyB3aWxsIHJlbW92ZSBhbGwgZmllbGRzIGFuZCBhdHRhY2hlZCBmaWVsZHMgdGhhdCBtYXRjaCB0aGUgdGFncy4gSW4gdGhlIGV4YW1wbGUgYmVsb3csIHRoaXMgd291bGQgbWVhbiB0aGF0IGFsbAppdGVtcyB3aXRoIHRoZSB0YWdzIGBwZXRgIG9yIGB1c2VyYCB3b3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpGb3IgZXhhbXBsZToKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICAgIHRpdGxlOiBBUEkKICAgIHZlcnNpb246IDEuMC4wCnBhdGhzOgogICAgL3BldHM6CiAgICAgICAgcHV0OgogICAgICAgICAgICB0YWdzOgogICAgICAgICAgICAgICAgLSBwZXQKICAgICAgICAgICAgc3VtbWFyeTogVXBkYXRlIGFuIGV4aXN0aW5nIHBldApgYGAKCj0+ICoqaW52ZXJzZVRhZ3MqKjogVGhpcyBvcHRpb24gZG9lcyB0aGUgaW52ZXJzZSBmaWx0ZXJpbmcsIGJ5IGtlZXBpbmcgb25seSB0aGUgdGFncyBkZWZpbmVkIGFuZCByZW1vdmUgYWxsIG90aGVyIHRhZ3MsIGluY2x1ZGluZyB0aGUgb3BlcmF0aW9ucyB3aXRob3V0IGEgdGFncy4KCiMjIyBGaWx0ZXIgLSBvcGVyYXRpb25JZHMKCj0+ICoqb3BlcmF0aW9uSWRzKio6IFJlZmVycyB0byB0aGUgIm9wZXJhdGlvbklkIiBmaWVsZCBmcm9tIHRoZSBbT3BlcmF0aW9uIE9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjb3BlcmF0aW9uT2JqZWN0KQoKVGhpcyB3aWxsIHJlbW92ZSBzcGVjaWZpYyBmaWVsZHMgYW5kIGF0dGFjaGVkIGZpZWxkcyB0aGF0IG1hdGNoIHRoZSBvcGVyYXRpb24gSUQncy4gSW4gdGhlIGV4YW1wbGUgYmVsb3csIHRoaXMgd291bGQKbWVhbiB0aGF0IHRoZSBpdGVtIHdpdGggb3BlcmF0aW9uSUQgYGZpbmRQZXRzQnlTdGF0dXNgIHdvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCkZvciBleGFtcGxlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogICAgdGl0bGU6IEFQSQogICAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgICAvcGV0czoKICAgICAgICBnZXQ6CiAgICAgICAgICAgIG9wZXJhdGlvbklkOiBmaW5kUGV0c0J5U3RhdHVzCmBgYAoKPT4gKippbnZlcnNlVGFncyoqOiBUaGlzIG9wdGlvbiBkb2VzIHRoZSBpbnZlcnNlIGZpbHRlcmluZywgYnkga2VlcGluZyBvbmx5IHRoZSBvcGVyYXRpb25JZHMgZGVmaW5lZCBhbmQgcmVtb3ZlIGFsbCBvdGhlciBvcGVyYXRpb25JZHMsIGluY2x1ZGluZyB0aGUgb3BlcmF0aW9ucyB3aXRob3V0IGFuIG9wZXJhdGlvbklkLgoKIyMjIEZpbHRlciAtIG9wZXJhdGlvbnMKCj0+ICoqb3BlcmF0aW9ucyoqOiBSZWZlcnMgdG8gYSBjb21iaW5hdGlvbiBvZiBhIE9wZW5BUEkgbWV0aG9kICYgcGF0aCBmcm9tIHRoZSBbUGF0aCBPYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI3BhdGhzLW9iamVjdCkKJiBbUGF0aCBpdGVtXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNwYXRoLWl0ZW0tb2JqZWN0KQoKVGhpcyB3aWxsIHJlbW92ZSBzcGVjaWZpYyBwYXRoIGl0ZW1zIHRoYXQgbWF0Y2ggdGhlIG9wZXJhdGlvbiBkZWZpbml0aW9uIGBQVVQ6Oi9wZXRzYC4gSW4gdGhlIGV4YW1wbGUgYmVsb3csIHRoaXMgd291bGQKbWVhbiB0aGF0IHRoZSBpdGVtIHdpdGggdGhlIHBhdGggJy9wZXRzJyBhbmQgbWV0aG9kICdQVVQnIHdvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCkZvciBleGFtcGxlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogICAgdGl0bGU6IEFQSQogICAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgICAvcGV0czoKICAgICAgICBnZXQ6CiAgICAgICAgICAgIHN1bW1hcnk6IEZpbmRzIFBldHMgYnkgc3RhdHVzCiAgICAgICAgcHV0OgogICAgICAgICAgICBzdW1tYXJ5OiBVcGRhdGUgYW4gZXhpc3RpbmcgcGV0CmBgYAoKQW4gYG9wZXJhdGlvbklkYCBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eS4gVG8gb2ZmZXIgc3VwcG9ydCBmb3IgT3BlbkFQSSBkb2N1bWVudHMgdGhhdCBkb24ndCBoYXZlIG9wZXJhdGlvbklkcywgd2UgaGF2ZQphZGRlZCB0aGUgYG9wZXJhdGlvbmAgZGVmaW5pdGlvbiB3aGljaCBpcyB0aGUgdW5pcXVlIGNvbWJpbmF0aW9uIG9mIHRoZSBPcGVuQVBJIG1ldGhvZCAmIHBhdGgsIHdpdGggYSBgOjpgIHNlcGFyYXRvcgpzeW1ib2wuCgpUaGlzIHdpbGwgYWxsb3cgZmlsdGVyaW5nIGZvciB2ZXJ5IHNwZWNpZmljIE9wZW5BUEkgaXRlbXMsIHdpdGhvdXQgdGhlIG5lZWQgb2YgYWRkaW5nIG9wZXJhdGlvbklkcyB0byB0aGUgT3BlbkFQSQpkb2N1bWVudC4KClRvIGZhY2lsaXRhdGUgbWFuYWdpbmcgdGhlIGZpbHRlcmluZywgd2UgaGF2ZSBpbmNsdWRlZCB3aWxkY2FyZCBvcHRpb25zIGZvciB0aGUgYG9wZXJhdGlvbnNgIG9wdGlvbiwgc3VwcG9ydGluZyB0aGUKbWV0aG9kcyAmIHBhdGggZGVmaW5pdGlvbnMuCgpSRU1BUks6IEJlIHN1cmUgdG8gcHV0IHF1b3RlcyBhcm91bmQgdGhlIHRhcmdldCBkZWZpbml0aW9uLgoKU3RyaWN0IG1hdGNoaW5nIGV4YW1wbGU6IGAiR0VUOjovcGV0cyJgClRoaXMgd2lsbCB0YXJnZXQgb25seSB0aGUgIkdFVCIgbWV0aG9kIGFuZCB0aGUgc3BlY2lmaWMgcGF0aCAiL3BldHMiCgpNZXRob2Qgd2lsZGNhcmQgbWF0Y2hpbmcgZXhhbXBsZTogYCIqOjovcGV0cyJgClRoaXMgd2lsbCB0YXJnZXQgYWxsIG1ldGhvZHMgKCdnZXQnLCAncHV0JywgJ3Bvc3QnLCAnZGVsZXRlJywgJ29wdGlvbnMnLCAnaGVhZCcsICdwYXRjaCcsICd0cmFjZScpIGFuZCB0aGUgc3BlY2lmaWMKcGF0aCAiL3BldHMiCgpQYXRoIHdpbGRjYXJkIG1hdGNoaW5nIGV4YW1wbGU6IGAiR0VUOjovcGV0cy8qImAKVGhpcyB3aWxsIHRhcmdldCBvbmx5IHRoZSAiR0VUIiBtZXRob2QgYW5kIGFueSBwYXRoIG1hdGNoaW5nIGFueSBmb2xkZXIgYmVoaW5kIHRoZSAiL3BldHMiLCBsaWtlICIvcGV0cy8xMjMiIGFuZAoiL3BldHMvMTIzL2J1eSIuCgpNZXRob2QgJiBQYXRoIHdpbGRjYXJkIG1hdGNoaW5nIGV4YW1wbGU6IGAiKjo6L3BldHMvKiJgCkEgY29tYmluYXRpb24gb2Ygd2lsZGNhcmRzIGZvciB0aGUgbWV0aG9kIGFuZCBwYXRoIHBhcnRzIGlzIGV2ZW4gcG9zc2libGUuCgojIyMgRmlsdGVyIC0gZmxhZ3MvaW52ZXJzZUZsYWdzCgo9PiAqKmZsYWdzKio6IFJlZmVycyB0byBhIGN1c3RvbSBwcm9wZXJ0eSB0aGF0IGNhbiBiZSBzZXQgb24gYW55IGZpZWxkIGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LgoKVGhpcyB3aWxsIHJlbW92ZSBhbGwgZmllbGRzIGFuZCBhdHRhY2hlZCBmaWVsZHMgdGhhdCBtYXRjaCB0aGUgZmxhZ3MuIEluIHRoZSBleGFtcGxlIGJlbG93LCB0aGlzIHdvdWxkIG1lYW4gdGhhdCBhbGwKaXRlbXMgd2l0aCB0aGUgZmxhZyBgeC1leGNsdWRlYCB3b3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpGb3IgZXhhbXBsZToKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICAgIHRpdGxlOiBBUEkKICAgIHZlcnNpb246IDEuMC4wCnBhdGhzOgogICAgL3BldHM6CiAgICAgICAgZ2V0OgogICAgICAgICAgICB4LWV4Y2x1ZGU6IHRydWUKYGBgCgo9PiAqKmludmVyc2VGbGFncyoqOiBUaGlzIG9wdGlvbiBkb2VzIHRoZSBpbnZlcnNlIGZpbHRlcmluZywgYnkga2VlcGluZyBvbmx5IHRoZSBvcGVyYXRpb25zLCBjb21wb25lbnRzLCB0YWdzLCB4LXRhZ0dyb3VwcyB0aGF0IG1hdGNoIHRoZSBmbGFnKHMpLiBUaGlzIGlzIGEgdmVyeSBhZ2dyZXNzaXZlIG9wdGlvbiB0byBrZWVwIG9ubHkgdGhlIGl0ZW1zIHRoYXQgYXJlIG5lZWRlZC4KCiMjIyBGaWx0ZXIgLSBmbGFnVmFsdWVzL2ludmVyc2VGbGFnVmFsdWVzCgo9PiAqKmZsYWdWYWx1ZXMqKjogUmVmZXJzIHRvIGEgZmxhZywgY3VzdG9tIHByb3BlcnR5IHdoaWNoIGNhbiBiZSBzZXQgb24gYW55IGZpZWxkIGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LCBhbmQgdGhlIGNvbWJpbmF0aW9uIHdpdGggdGhlIHZhbHVlIGZvciB0aGF0IGZsYWcuCgpUaGlzIHdpbGwgcmVtb3ZlIGFsbCBmaWVsZHMgYW5kIGF0dGFjaGVkIGZpZWxkcyB0aGF0IG1hdGNoIHRoZSBmbGFnIHdpdGggdGhlIHNwZWNpZmljIHZhbHVlLgoKQSBgZmxhZ1ZhbHVlc2AgZXhhbXBsZToKCmBgYHlhbWwKZmxhZ1ZhbHVlczoKICAgIC0geC12ZXJzaW9uOiAxLjAKICAgIC0geC12ZXJzaW9uOiAzLjAKYGBgCkluIHRoZSBleGFtcGxlIGJlbG93LCB0aGlzIHdvdWxkIG1lYW4gdGhhdCBhbGwgaXRlbXMgd2l0aCB0aGUgZmxhZyBgeC12ZXJzaW9uYCB0aGF0IG1hdGNoZXMgYHgtdmVyc2lvbjogMS4wYCBPUiBgeC12ZXJzaW9uOiAzLjBgIHdvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICAgIHRpdGxlOiBBUEkKICAgIHZlcnNpb246IDEuMC4wCnBhdGhzOgogICAgL3BldHM6CiAgICAgICAgZ2V0OgogICAgICAgICAgICB4LXZlcnNpb246IDEuMApgYGAKClRoZSBmaWx0ZXIgb3B0aW9uIGBmbGFnVmFsdWVzYCBhbHNvIHdpbGwgcmVtb3ZlIGZsYWdzIHRoYXQgY29udGFpbiBhbiBhcnJheSBvZiB2YWx1ZXMgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpBIGBmbGFnVmFsdWVzYCBleGFtcGxlOgoKYGBgeWFtbApmbGFnVmFsdWVzOgogICAgLSB4LXZlcnNpb25zOiAxLjAKICAgIC0geC12ZXJzaW9uczogMi4wCmBgYAoKSW4gdGhlIGV4YW1wbGUgYmVsb3csIHRoaXMgd291bGQgbWVhbiB0aGF0IGFsbCBpdGVtcyB3aXRoIHRoZSBmbGFnIGB4LXZlcnNpb25zYCwgd2hpY2ggaXMgYW4gYXJyYXksIHRoYXQgbWF0Y2ggYHgtdmVyc2lvbjogMS4wYCBPUiBgeC12ZXJzaW9uOiAzLjBgIHdvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICAgIHRpdGxlOiBBUEkKICAgIHZlcnNpb246IDEuMC4wCnBhdGhzOgogICAgL3BldHM6CiAgICAgICAgZ2V0OgogICAgICAgICAgICB4LXZlcnNpb25zOgogICAgICAgICAgICAgICAgLSAxLjAKICAgICAgICAgICAgICAgIC0gMy4wCiAgICAgICAgICAgICAgICAtIDUuMApgYGAKCkhhdmUgYSBsb29rIGF0IFtmbGFnVmFsdWVzXSh0ZXN0L3lhbWwtZmlsdGVyLWN1c3RvbS1mbGFnc3ZhbHVlLXZhbHVlKSBhbmQgW2ZsYWdWYWx1ZXMgZm9yIGFycmF5IHZhbHVlc10odGVzdC95YW1sLWZpbHRlci1jdXN0b20tZmxhZ3N2YWx1ZS1hcnJheSkgZm9yIGEgcHJhY3RpY2FsIGV4YW1wbGUuCgo9PiAqKmludmVyc2VGbGFnVmFsdWVzKio6IFRoaXMgb3B0aW9uIGRvZXMgdGhlIGludmVyc2UgZmlsdGVyaW5nLCBieSBrZWVwaW5nIG9ubHkgdGhlIG9wZXJhdGlvbnMsIGNvbXBvbmVudHMsIHRhZ3MsIHgtdGFnR3JvdXBzIHRoYXQgbWF0Y2ggdGhlIGZsYWcgd2l0aCB0aGUgc3BlY2lmaWMgdmFsdWUuIFRoaXMgaXMgYSB2ZXJ5IGFnZ3Jlc3NpdmUgb3B0aW9uIHRvIGtlZXAgb25seSB0aGUgaXRlbXMgdGhhdCBhcmUgbmVlZGVkLgoKIyMjIEZpbHRlciAtIHJlc3BvbnNlQ29udGVudC9pbnZlcnNlUmVzcG9uc2VDb250ZW50Cgo9PiAqKlJlc3BvbnNlQ29udGVudCoqOiBSZWZlcnMgdG8gdGhlIFtSZXNwb25zZSBPYmplY3QncyBjb250ZW50XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNyZXNwb25zZS1vYmplY3QpCgpBIHJlc3BvbnNlcyBgY29udGVudGAgZmlsdGVyIGV4YW1wbGU6CgpgYGB5YW1sCnJlc3BvbnNlQ29udGVudDoKICAtIGFwcGxpY2F0aW9uL2pzb24KYGBgCgpUaGlzIHdpbGwgcmVtb3ZlIGFsbCB0aGUgY29udGVudCB0aGF0IG1hdGNoIHRoZSBtZWRpYSB0eXBlcyBmcm9tIHRoZSByZXNwb25zZXMuIEluIHRoZSBleGFtcGxlIGJlbG93LCB0aGlzIHdvdWxkIG1lYW4gdGhhdCBhbGwgYGFwcGxpY2F0aW9uL2pzb25gCmNvbnRlbnQgaXRlbXMgd291bGQgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcGVuQVBJIGRvY3VtZW50CgpFeGFtcGxlIGJlZm9yZToKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICAgIHRpdGxlOiBBUEkKICAgIHZlcnNpb246IDEuMC4wCnBhdGhzOgogIC9wZXQ6CiAgICBwb3N0OgogICAgICB0YWdzOgogICAgICAgIC0gcGV0CiAgICAgIHN1bW1hcnk6IEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCiAgICAgIGRlc2NyaXB0aW9uOiBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogICAgICBvcGVyYXRpb25JZDogYWRkUGV0CiAgICAgIHgtdmlzaWJpbGl0eTogdHJ1ZQogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogU3VjY2Vzc2Z1bCBvcGVyYXRpb24KICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL3htbDoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQnCiAgICAgICAgJzQwNSc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW52YWxpZCBpbnB1dApgYGAKCkV4YW1wbGUgYWZ0ZXI6CgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgICB0aXRsZTogQVBJCiAgICB2ZXJzaW9uOiAxLjAuMApwYXRoczoKICAvcGV0OgogICAgcG9zdDoKICAgICAgdGFnczoKICAgICAgICAtIHBldAogICAgICBzdW1tYXJ5OiBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogICAgICBkZXNjcmlwdGlvbjogQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKICAgICAgb3BlcmF0aW9uSWQ6IGFkZFBldAogICAgICB4LXZpc2liaWxpdHk6IHRydWUKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IFN1Y2Nlc3NmdWwgb3BlcmF0aW9uCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi94bWw6CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BldCcKICAgICAgICAnNDA1JzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJbnZhbGlkIGlucHV0CmBgYAoKPT4gKippbnZlcnNlUmVzcG9uc2VDb250ZW50Kio6IFRoaXMgb3B0aW9uIGRvZXMgdGhlIGludmVyc2UgZmlsdGVyaW5nLCBieSBrZWVwaW5nIG9ubHkgdGhlIGNvbnRlbnQgd2l0aCBtZWRpYSB0eXBlcyBkZWZpbmVkIGFuZCByZW1vdmUgYWxsIG90aGVyIGNvbnRlbnQuCgojIyMgRmlsdGVyIC0gcmVxdWVzdENvbnRlbnQvaW52ZXJzZVJlcXVlc3RDb250ZW50Cgo9PiAqKnJlcXVlc3RDb250ZW50Kio6IFJlZmVycyB0byB0aGUgW1JlcXVlc3QgQm9keSBPYmplY3QncyBjb250ZW50XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNyZXF1ZXN0LWJvZHktb2JqZWN0KQoKQSAgcmVxdWVzdCBib2R5IGBjb250ZW50YCBmaWx0ZXIgZXhhbXBsZToKCmBgYHlhbWwKcmVxdWVzdENvbnRlbnQ6CiAgLSBhcHBsaWNhdGlvbi9qc29uCmBgYAoKVGhpcyB3aWxsIHJlbW92ZSBhbGwgdGhlIGNvbnRlbnQgdGhhdCBtYXRjaCB0aGUgbWVkaWEgdHlwZXMgZnJvbSB0aGUgcmVxdWVzdCBib2R5LiBJbiB0aGUgZXhhbXBsZSBiZWxvdywgdGhpcyB3b3VsZCBtZWFuIHRoYXQgYWxsIGBhcHBsaWNhdGlvbi9qc29uYApjb250ZW50IGl0ZW1zIHdvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCkV4YW1wbGUgYmVmb3JlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogICAgdGl0bGU6IEFQSQogICAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgL3BldDoKICAgIHBvc3Q6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBwZXQKICAgICAgc3VtbWFyeTogQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKICAgICAgZGVzY3JpcHRpb246IEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCiAgICAgIG9wZXJhdGlvbklkOiBhZGRQZXQKICAgICAgeC12aXNpYmlsaXR5OiB0cnVlCiAgICAgIHJlcXVlc3RCb2R5OiAKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL3htbDoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQnCgpgYGAKCkV4YW1wbGUgYWZ0ZXI6CgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgICB0aXRsZTogQVBJCiAgICB2ZXJzaW9uOiAxLjAuMApwYXRoczoKICAvcGV0OgogICAgcG9zdDoKICAgICAgdGFnczoKICAgICAgICAtIHBldAogICAgICBzdW1tYXJ5OiBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogICAgICBkZXNjcmlwdGlvbjogQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKICAgICAgb3BlcmF0aW9uSWQ6IGFkZFBldAogICAgICB4LXZpc2liaWxpdHk6IHRydWUKICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi94bWw6CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BldCcKYGBgCgo9PiAqKmludmVyc2VSZXF1ZXN0Q29udGVudCoqOiBUaGlzIG9wdGlvbiBkb2VzIHRoZSBpbnZlcnNlIGZpbHRlcmluZywgYnkga2VlcGluZyBvbmx5IHRoZSBjb250ZW50IHdpdGggbWVkaWEgdHlwZXMgZGVmaW5lZCBhbmQgcmVtb3ZlIGFsbCBvdGhlciBjb250ZW50IHR5cGVzIGZyb20gdGhlIHJlcXVlc3QgYm9keS4KCiMjIyBGaWx0ZXIgLSB1bnVzZWRDb21wb25lbnRzCgo9PiAqKnVudXNlZENvbXBvbmVudHMqKjogUmVmZXJzIHRvIGEgbGlzdCBvZiBbcmV1c2FibGUgY29tcG9uZW50IHR5cGVzXSggaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjY29tcG9uZW50cy1vYmplY3QpLCBmcm9tIHdoaWNoIHVudXNlZCBpdGVtcyB3aWxsIGJlIHJlbW92ZWQuCgpUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIHN0cmlwIHRoZSBPcGVuQVBJIGRvY3VtZW50IGZyb20gYW55IHVudXNlZCBpdGVtcyBvZiB0aGUgdGFyZ2V0ZWQgYGNvbXBvbmVudHNgIHR5cGVzLgpBbnkgaXRlbSBpbiB0aGUgbGlzdCBvZiBPcGVuQVBJIGBjb21wb25lbnRzYCB0aGF0IGlzIG5vdCByZWZlcmVuY2VkIGFzIGAkcmVmYCwgd2lsbCBnZXQgbWFya2VkIGFuZCByZW1vdmVkIGZyb20gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpSRU1BUks6IFdlIHdpbGwgcmVjdXJzaXZlbHkgc3RyaXAgYWxsIHVudXNlZCBjb21wb25lbnRzLCB3aXRoIGEgbWF4aW11bSBkZXB0aCBvZiAxMCB0aW1lcy4gVGhpcyBtZWFucyB0aGF0ICJuZXN0ZWQiIGNvbXBvbmVudHMsIHRoYXQgYmVjb21lIHVudXNlZCwgd2lsbCBhbHNvIGdldCByZW1vdmVkCgpTdXBwb3J0ZWQgY29tcG9uZW50IHR5cGVzIHRoYXQgY2FuIGJlIG1hcmtlZCBhcyAidW51c2VkIjoKLSBzY2hlbWFzCi0gcGFyYW1ldGVycwotIGV4YW1wbGVzCi0gaGVhZGVycwotIHJlcXVlc3RCb2RpZXMKLSByZXNwb25zZXMKCiMjIyBGaWx0ZXIgLSB0ZXh0UmVwbGFjZQoKPT4gKip0ZXh0UmVwbGFjZSoqOiAic2VhcmNoICYgcmVwbGFjZSIgb3B0aW9uIHRvIHJlcGxhY2UgdGV4dCBpbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uCgpUaGUgYHRleHRSZXBsYWNlYCBwcm92aWRlcyBhICJzZWFyY2ggJiByZXBsYWNlIiBtZXRob2QsIHRoYXQgd2lsbCBzZWFyY2ggZm9yIGEgdGV4dC93b3JkL2NoYXJhY3RlcnMgaW4gdGhlIE9wZW5BUEkgZGVzY3JpcHRpb24sIHN1bW1hcnksIFVSTCBmaWVsZHMgYW5kIHJlcGxhY2UgaXQgd2l0aCBhbm90aGVyIHRleHQvd29yZC9jaGFyYWN0ZXJzLgpUaGlzIGlzIHZlcnkgdXNlZnVsIHRvIHJlcGxhY2UgZGF0YSBpbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgoKQSBgdGV4dFJlcGxhY2VgIGV4YW1wbGU6CgpgYGB5YW1sCnRleHRSZXBsYWNlOgogICAgLSBzZWFyY2hGb3I6ICdQZXRzJwogICAgICByZXBsYWNlV2l0aDogJ0RvZ3MnCiAgICAtIHNlYXJjaEZvcjogJ3N3YWdnZXIuaW8nCiAgICAgIHJlcGxhY2VXaXRoOiAnb3BlbmFwaXMub3JnJwpgYGAKClRoaXMgd2lsbCByZXBsYWNlIGFsbCAiUGV0cyIgd2l0aCAiRG9ncyIgJiAic3dhZ2dlci5pbyIgd2l0aCAib3BlbmFwaS5vcmciIGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LgoKIyMjIEZpbHRlciAtIHN0cmlwRmxhZ3MKCj0+ICoqc3RyaXBGbGFncyoqOiBSZWZlcnMgdG8gYSBsaXN0IG9mIGN1c3RvbSBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIHNldCBvbiBhbnkgZmllbGQgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpUaGUgYHN0cmlwRmxhZ3NgIHdpbGwgcmVtb3ZlIG9ubHkgdGhlIGZsYWdzLCB0aGUgbGlua2VkIHBhcmVudCBhbmQgcHJvcGVydGllcyB3aWxsIHJlbWFpbi4gSW4gdGhlIGV4YW1wbGUgYmVsb3csIHRoaXMgd291bGQgbWVhbiB0aGF0IGFsbApmbGFncyBgeC1leGNsdWRlYCBpdHNlbGYgd291bGQgYmUgc3RyaXBwZWQgZnJvbSB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCkV4YW1wbGUgYmVmb3JlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogICAgdGl0bGU6IEFQSQogICAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgICAvcGV0czoKICAgICAgICBnZXQ6CiAgICAgICAgICB4LWV4Y2x1ZGU6IHRydWUKICAgICAgICAgIHN1bW1hcnk6IEZpbmRzIFBldHMgYnkgc3RhdHVzCmBgYAoKRXhhbXBsZSBhZnRlcjoKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICAgIHRpdGxlOiBBUEkKICAgIHZlcnNpb246IDEuMC4wCnBhdGhzOgogICAgL3BldHM6CiAgICAgICAgZ2V0OgogICAgICAgICAgc3VtbWFyeTogRmluZHMgUGV0cyBieSBzdGF0dXMKYGBgCgojIyMgRmlsdGVyIC0gcHJlc2VydmVFbXB0eU9iamVjdHMKCj0+ICoqcHJlc2VydmVFbXB0eU9iamVjdHMqKjogUmVmZXJzIHRvIGFueSBwcm9wZXJ0aWVzIG9mIHlvdXIgT3BlbkFQSSBkb2N1bWVudCwgZnJvbSB3aGljaCBlbXB0eSBvYmplY3QgdmFsdWVzIHdvdWxkIGJlIGtlcHQuCgpUaGUgYHByZXNlcnZlRW1wdHlPYmplY3RzYCB3aWxsIHByZXNlcnZlIGFsbCBlbXB0eSBvYmplY3RzIGlmIHNldCB0byBgdHJ1ZWAuCgpZb3UgY2FuIGFsc28gcGFzcyBhIGxpc3Qgb2Yga2V5cyBmcm9tIHdoaWNoIHByZXNlcnZlIGVtcHR5IG9iamVjdHMuIEZvciBpbnN0YW5jZSBhIGBbJ3NjaGVtYSddYCB2YWx1ZSB3b3VsZCBvbmx5IHByZXZlbnQgcmVtb3ZhbCBvZiBlbXB0eSBvYmplY3RzIGhhdmluZyBmb3Iga2V5IGBzY2hlbWFgLgoKUkVNQVJLOiBQbGVhc2Ugbm90ZSB0aGF0IG9wZW5hcGktZm9ybWF0IGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcmVtb3ZlIGFsbCBlbXB0eSBvYmplY3RzIGZyb20geW91ciBkb2N1bWVudCwgZXhjZXB0IGZvciBpdGVtcyBvZiBleGFtcGxlcywgc2VjdXJpdHksIHNjaGVtYXMsIGRlZmF1bHQsIG9uZU9mLCBhbGxPZi4KCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICAgIHRpdGxlOiBBUEkKICAgIHZlcnNpb246IDEuMC4wCnBhdGhzOgogICAgL3BldHM6CiAgICAgICAgcG9zdDoKICAgICAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgICAgICBkZXNjcmlwdGlvbjogQ3JlYXRlIGEgbmV3IHBldCBpbiB0aGUgc3RvcmUKICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgICAgc2NoZW1hOiB7fQpgYGAKCkV4YW1wbGUgYWZ0ZXIgKHdpdGggYHByZXNlcnZlRW1wdHlPYmplY3RzOiBmYWxzZWApOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogICAgdGl0bGU6IEFQSQogICAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgICAvcGV0czoKICAgICAgICBwb3N0OgogICAgICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBDcmVhdGUgYSBuZXcgcGV0IGluIHRoZSBzdG9yZQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246IHt9CmBgYAoKIyMgT3BlbkFQSSBmb3JtYXR0aW5nIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwoKVG9vbHMgbGlrZSBbc3BlY3RyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbCkgb3IgW3NwZWNjeV0oaHR0cHM6Ly9zcGVjY3kuaW8vKSwgb3IgYW55IG9mIHRoZSBbbGludGluZyB0b29sc10oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS84LW9wZW5hcGktbGludGVycy8pLCBwcm92aWRlIGEgbWFubmVyIHRvIHZhbGlkYXRlICYgbGludCBPcGVuQVBJIHNwZWNpZmljYXRpb25zIHRvIGJlIHVuaWZvcm0uIFRoZSBsaW50aW5nIHRvb2wgaW5mb3JtcyBhYm91dCB0aGUgaW5jb3JyZWN0IHVzYWdlIG9mIE9wZW5BUEkgcHJvcGVydGllcyAmIGluY29uc2lzdGVudCBmaWVsZCBuYW1lcy4KVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBhbmQgaGVscHMgdG8gZ3VhcmQgdGhlIHF1YWxpdHkgb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gVGhleSBpbmZvcm0gd2hpY2ggZmllbGRzIHRvIGNvcnJlY3Qgc28gdGhhdCB0aGUgc3BlY2lmaWNhdGlvbiB3aWxsIGNvbXBseSB3aXRoIGFsbCB0aGUgZGVmaW5lZCBsaW50aW5nIHJ1bGVzLgoKVGhlIG9wZW5hcGktZm9ybWF0IENMSSBmb3JtYXR0aW5nIG9wdGlvbiBjYW4gYXNzaXN0IHdpdGgga2VlcGluZyB0aGUgZmllbGQgbmFtZXMgY29uc2lzdGVudCBieSBhdXRvbWF0aWNhbGx5IGNoYW5naW5nIHRoZSBjYXNpbmcgb2YgdGhlIHByb3BlcnRpZXMva2V5cy9uYW1lcyBmb3IgdGhlIGRpZmZlcmVudCBlbGVtZW50cyBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudC4KVGhlIGRlc2lyZWQgY2FzaW5nIGNhbiBiZSBkZWZpbmVkIHBlciBPcGVuQVBJIGtleS9lbGVtZW50IChzZWUgbGlzdCBiZWxvdykuClRoZSBrZXlzIHRoYXQgYXJlIG5vdCBzcGVjaWZpZWQgd2lsbCBrZWVwIHRoZWlyIGNhc2luZyBsaWtlIGl0IGlzIGluIHRoZSBvcmlnaW5hbCBPcGVuQVBJIGRvY3VtZW50LCBzbyBvbmx5IGZvciBkZWZpbmVkIGZpZWxkcywgdGhlIGNhc2luZyB3aWxsIGJlIGNoYW5nZWQuCgp8IEtleSAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE9wZW5BUEkgcmVmZXJlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IG9wZXJhdGlvbklkICAgICAgICAgICAgICAgIHwgQ2hhbmdlcyBvcGVyYXRpb24gSUQncyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBPcGVyYXRpb25zIE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtvcGVyYXRpb24tb2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNvcGVyYXRpb24tb2JqZWN0KXwKfCBwcm9wZXJ0aWVzICAgICAgICAgICAgICAgICB8IENoYW5nZXMgcHJvcGVydHkga2V5cyBvZiB0aGUgc2NoZW1hcyBvZiB0aGUgaW5saW5lIHJlc3BvbnNlL3JlcXVlc3RCb2R5ICYgY29tcG9uZW50cyAgICAgICAgICAgICAgICAgfCBbc2NoZW1hT2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNzY2hlbWFPYmplY3QpIHwKfCBwYXJhbWV0ZXJzQ29va2llICAgICAgICAgICB8IENoYW5nZXMgdGhlIGNvb2tpZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXJzIGlubGluZSAmIG1vZGVscyBpbiB0aGUgY29tcG9uZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbcGFyYW1ldGVyLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjcGFyYW1ldGVyLW9iamVjdCkgfAp8IHBhcmFtZXRlcnNQYXRoICAgICAgICAgICAgIHwgQ2hhbmdlcyB0aGUgcGF0aCBuYW1lIG9mIHRoZSBwYXJhbWV0ZXJzIGlubGluZSAmIG1vZGVscyBpbiB0aGUgY29tcG9uZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtwYXJhbWV0ZXItb2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNwYXJhbWV0ZXItb2JqZWN0KSB8CnwgcGFyYW1ldGVyc0hlYWRlciAgICAgICAgICAgfCBDaGFuZ2VzIHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgcGFyYW1ldGVycyBpbmxpbmUgJiBtb2RlbHMgaW4gdGhlIGNvbXBvbmVudHMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3BhcmFtZXRlci1vYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI3BhcmFtZXRlci1vYmplY3QpIHwKfCBwYXJhbWV0ZXJzUXVlcnkgICAgICAgICAgICB8IENoYW5nZXMgdGhlIHF1ZXJ5IG5hbWUgb2YgdGhlIHBhcmFtZXRlcnMgaW5saW5lICYgbW9kZWxzIGluIHRoZSBjb21wb25lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbcGFyYW1ldGVyLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjcGFyYW1ldGVyLW9iamVjdCkgfAp8IGNvbXBvbmVudHNQYXJhbWV0ZXJzQ29va2llIHwgQ2hhbmdlcyB0aGUga2V5IG9mIHRoZSBjb29raWUgbW9kZWxzIGluIHRoZSBjb21wb25lbnRzIHBhcmFtZXRlcnMgc2VjdGlvbnMgJiAiJHJlZiIgbGlua3MgICAgICAgICAgICB8IFtjb21wb25lbnRzLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjY29tcG9uZW50cy1vYmplY3QpIHwKfCBjb21wb25lbnRzUGFyYW1ldGVyc1BhdGggICB8IENoYW5nZXMgdGhlIGtleSBvZiB0aGUgcGF0aCBtb2RlbHMgaW4gdGhlIGNvbXBvbmVudHMgcGFyYW1ldGVycyBzZWN0aW9ucyAmICIkcmVmIiBsaW5rcyAgICAgICAgICAgICAgfCBbY29tcG9uZW50cy1vYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI2NvbXBvbmVudHMtb2JqZWN0KSB8CnwgY29tcG9uZW50c1BhcmFtZXRlcnNRdWVyeSAgfCBDaGFuZ2VzIHRoZSBrZXkgb2YgdGhlIHF1ZXJ5IG1vZGVscyBpbiB0aGUgY29tcG9uZW50cyBwYXJhbWV0ZXJzIHNlY3Rpb25zICYgIiRyZWYiIGxpbmtzICAgICAgICAgICAgIHwgW2NvbXBvbmVudHMtb2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNjb21wb25lbnRzLW9iamVjdCkgfAp8IGNvbXBvbmVudHNQYXJhbWV0ZXJzSGVhZGVyIHwgQ2hhbmdlcyB0aGUga2V5IG9mIHRoZSBoZWFkZXIgbW9kZWxzIGluIHRoZSBjb21wb25lbnRzIHBhcmFtZXRlcnMgc2VjdGlvbnMgJiAiJHJlZiIgbGlua3MgICAgICAgICAgICB8IFtjb21wb25lbnRzLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjY29tcG9uZW50cy1vYmplY3QpIHwKfCBjb21wb25lbnRzU2NoZW1hcyAgICAgICAgICB8IENoYW5nZXMgdGhlIGtleSBvZiB0aGUgc2NoZW1hIG1vZGVscyBpbiB0aGUgY29tcG9uZW50cyBzZWN0aW9ucyAmICIkcmVmIiBsaW5rcyAgICAgICAgICAgICAgICAgICAgICAgfCBbY29tcG9uZW50cy1vYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI2NvbXBvbmVudHMtb2JqZWN0KSB8CnwgY29tcG9uZW50c0V4YW1wbGVzICAgICAgICAgfCBDaGFuZ2VzIHRoZSBrZXkgb2YgdGhlIGV4YW1wbGUgbW9kZWxzIGluIHRoZSBjb21wb25lbnRzIHNlY3Rpb25zICYgIiRyZWYiIGxpbmtzICAgICAgICAgICAgICAgICAgICAgIHwgW2NvbXBvbmVudHMtb2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNjb21wb25lbnRzLW9iamVjdCkgfAp8IGNvbXBvbmVudHNIZWFkZXJzICAgICAgICAgIHwgQ2hhbmdlcyB0aGUga2V5IG9mIHRoZSBoZWFkZXIgbW9kZWxzIGluIHRoZSBjb21wb25lbnRzIHNlY3Rpb25zICYgIiRyZWYiIGxpbmtzICAgICAgICAgICAgICAgICAgICAgICB8IFtjb21wb25lbnRzLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjY29tcG9uZW50cy1vYmplY3QpIHwKfCBjb21wb25lbnRzUmVzcG9uc2VzICAgICAgICB8IENoYW5nZXMgdGhlIGtleSBvZiB0aGUgcmVzcG9uc2UgbW9kZWxzIGluIHRoZSBjb21wb25lbnRzIHNlY3Rpb25zICYgIiRyZWYiIGxpbmtzICAgICAgICAgICAgICAgICAgICAgfCBbY29tcG9uZW50cy1vYmplY3RdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMy5odG1sI2NvbXBvbmVudHMtb2JqZWN0KSB8CnwgY29tcG9uZW50c1JlcXVlc3RCb2RpZXMgICAgfCBDaGFuZ2VzIHRoZSBrZXkgb2YgdGhlIHJlcXVlc3QgYm9keSBtb2RlbHMgaW4gdGhlIGNvbXBvbmVudHMgc2VjdGlvbnMgJiAiJHJlZiIgbGlua3MgICAgICAgICAgICAgICAgIHwgW2NvbXBvbmVudHMtb2JqZWN0XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMuaHRtbCNjb21wb25lbnRzLW9iamVjdCkgfAp8IGNvbXBvbmVudHNTZWN1cml0eVNjaGVtZXMgIHwgQ2hhbmdlcyB0aGUga2V5IG9mIHRoZSBzZWN1cml0eSBzY2hlbWVzIGluIHRoZSBjb21wb25lbnRzIHNlY3Rpb25zICYgIiRyZWYiIGxpbmtzICAgICAgICAgICAgICAgICAgICB8IFtjb21wb25lbnRzLW9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjY29tcG9uZW50cy1vYmplY3QpIHwKCiMjIyBDYXNpbmcgb3B0aW9ucwoKfCBDYXNpbmcgdHlwZSAgICAgIHwgQ2FzaW5nIGFsaWFzIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEV4YW1wbGUgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tfCAtLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKfCDwn5CqIGNhbWVsQ2FzZSAgICAgfCBjYW1lbENhc2UgICAgfCBjb252ZXJ0cyBhIHN0cmluZ3MgdG8gYGNhbWVsQ2FzZWAgICAgICAgICAgICAgICAgIHwgYG9wZW5hcGlGb3JtYXRgICB8Cnwg8J+RqOKAjfCfj6sgUGFzY2FsQ2FzZSAgICB8IFBhc2NhbENhc2UgICB8IGNvbnZlcnRzIGEgc3RyaW5ncyB0byBgUGFzY2FsQ2FzZWAgICAgICAgICAgICAgICAgfCBgT3BlbmFwaUZvcm1hdGAgIHwKfCDwn6WZIGtlYmFiLWNhc2UgICAgfCBrZWJhYkNhc2UgICAgfCBjb252ZXJ0cyBhIHN0cmluZ3MgdG8gYGtlYmFiLWNhc2VgICAgICAgICAgICAgICAgIHwgYG9wZW5hcGktZm9ybWF0YCB8Cnwg8J+agiBUcmFpbi1DYXNlICAgIHwgVHJhaW5DYXNlICAgIHwgY29udmVydHMgYSBzdHJpbmdzIHRvIGBUcmFpbi1DYXNlYCAgICAgICAgICAgICAgICB8IGBPcGVuYXBpLUZvcm1hdGAgfAp8IPCfkI0gc25ha2VfY2FzZSAgICB8IHNuYWtlQ2FzZSAgICB8IGNvbnZlcnRzIGEgc3RyaW5ncyB0byBgc25ha2VfY2FzZWAgICAgICAgICAgICAgICAgfCBgb3BlbmFwaV9mb3JtYXRgIHwKfCDwn5WKIEFkYV9DYXNlICAgICAgfCBBZGFDYXNlICAgICAgfCBjb252ZXJ0cyBhIHN0cmluZ3MgdG8gYEFkYV9DYXNlYCAgICAgICAgICAgICAgICAgIHwgYE9wZW5hcGlfRm9ybWF0YCB8Cnwg8J+ToyBDT05TVEFOVF9DQVNFIHwgY29uc3RhbnRDYXNlIHwgY29udmVydHMgYSBzdHJpbmdzIHRvIGBDT05TVEFOVF9DQVNFYCAgICAgICAgICAgICB8IGBPUEVOQVBJX0ZPUk1BVGAgfAp8IPCfkZQgQ09CT0wtQ0FTRSAgICB8IGNvYm9sQ2FzZSAgICB8IGNvbnZlcnRzIGEgc3RyaW5ncyB0byBgQ09CT0wtQ0FTRWAgICAgICAgICAgICAgICAgfCBgT1BFTkFQSS1GT1JNQVRgIHwKfCDwn5ONIERvdC5ub3RhdGlvbiAgfCBkb3ROb3RhdGlvbiAgfCBjb252ZXJ0cyBhIHN0cmluZ3MgdG8gYERvdC5ub3RhdGlvbmAgICAgICAgICAgICAgIHwgYG9wZW5hcGkuZm9ybWF0YCB8Cnwg8J+bsCBTcGFjZSBjYXNlICAgIHwgc3BhY2VDYXNlICAgIHwgY29udmVydHMgYSBzdHJpbmdzIHRvIGBTcGFjZSBjYXNlYCAod2l0aCBzcGFjZXMpICB8IGBvcGVuYXBpIGZvcm1hdGAgfAp8IPCfj5sgQ2FwaXRhbCBDYXNlICB8IGNhcGl0YWxDYXNlICB8IGNvbnZlcnRzIGEgc3RyaW5ncyB0byBgQ2FwaXRhbCBDYXNlYCAod2l0aCBzcGFjZXMpfCBgT3BlbmFwaSBGb3JtYXRgIHwKfCDwn5ShIGxvd2VyIGNhc2UgICAgfCBsb3dlckNhc2UgICAgfCBjb252ZXJ0cyBhIHN0cmluZ3MgdG8gYGxvd2VyIGNhc2VgICh3aXRoIHNwYWNlcykgIHwgYG9wZW5hcGkgZm9ybWF0YCB8Cnwg8J+UoCBVUFBFUiBDQVNFICAgIHwgdXBwZXJDYXNlICAgIHwgY29udmVydHMgYSBzdHJpbmdzIHRvIGBVUFBFUiBDQVNFYCAod2l0aCBzcGFjZXMpICB8IGBPUEVOQVBJIEZPUk1BVGAgfAoKPiBSRU1BUks6IEFsbCBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHN0cmlwcGVkIGR1cmluZyBjb252ZXJzaW9uLCBleGNlcHQgZm9yIHRoZSBgQGAgYW5kIGAkYCwgc2luY2UgdGhleSBjYW4gYmUgcGFydCBvZiB0aGUgcXVlcnkgc3RyaW5ncy4KClRoZSBjYXNpbmcgb3B0aW9ucyBhcmUgcHJvdmlkZWQgYnkgdGhlIG5hbm8gTlBNIFtjYXNlLWFueXRoaW5nXShodHRwczovL2dpdGh1Yi5jb20vbWVzcXVlZWIvY2FzZS1hbnl0aGluZykgcGFja2FnZS4KCiMjIyBGb3JtYXQgY2FzaW5nIC0gb3BlcmF0aW9uSWQKCj0+ICoqb3BlcmF0aW9uSWQqKjogUmVmZXJzIHRvIHRoZSBgb3BlcmF0aW9uSWRgIHByb3BlcnRpZXMgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpGb3JtYXR0aW5nIGNhc2luZyBleGFtcGxlOgoKYGBgeWFtbApvcGVyYXRpb25JZDoga2ViYWItY2FzZQpgYGAKCkV4YW1wbGUgYmVmb3JlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMwpwYXRoczoKICAgIC9wZXRzOgogICAgICAgIGdldDoKICAgICAgICAgIG9wZXJhdGlvbklkOiBnZXRQZXRzCmBgYAoKb3BlbmFwaS1mb3JtYXQgd2lsbCBmb3JtYXQgdGhlICJnZXRQZXRzIiBmcm9tIHRoZSBvcmlnaW5hbCBjYW1lbGNhc2UgdG8ga2ViYWItY2FzZS4KCkV4YW1wbGUgYWZ0ZXI6CgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4zCnBhdGhzOgogICAgL3BldHM6CiAgICAgICAgZ2V0OgogICAgICAgICAgb3BlcmF0aW9uSWQ6IGdldC1wZXRzCmBgYAoKIyMjIEZvcm1hdCBjYXNpbmcgLSBtb2RlbCAmIHNjaGVtYSBwcm9wZXJ0aWVzCgo9PiAqKnByb3BlcnRpZXMqKjogUmVmZXJzIHRvIGFsbCB0aGUgc2NoZW1hIHByb3BlcnRpZXMsIHRoYXQgYXJlIGRlZmluZWQgaW5saW5lIGluIHRoZSBwYXRocyByZXF1ZXN0IGJvZGllcyAmIHJlc3BvbnNlcyBhbmQgdGhlIG1vZGVscyBpbiB0aGUgY29tcG9uZW50cyBzZWN0aW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50LgoKRm9ybWF0dGluZyBjYXNpbmcgZXhhbXBsZToKCmBgYHlhbWwKcHJvcGVydGllczogc25ha2VfY2FzZQpgYGAKCkV4YW1wbGUgYmVmb3JlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMwpjb21wb25lbnRzOgogICAgc2NoZW1hczoKICAgICAgICBVc2VyTW9kZWw6CiAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgaWQ6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IDEwCiAgICAgICAgICAgICAgICBlbWFpbEFkZHJlc3M6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogam9obkBkb2UuY29tCiAgICAgICAgICAgICAgICBmaXJzdE5hbWU6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogSm9obgpgYGAKClRoZSBDTEkgd2lsbCBmb3JtYXQgYWxsIHRoZSBwcm9wZXJ0aWVzIGxpa2U6ICJpZCIsICJ1c2VybmFtZSIsICJmaXJzdE5hbWUiIGZyb20gdGhlIG9yaWdpbmFsIGNhbWVsY2FzZSB0byBzbmFrZV9jYXNlLgoKRXhhbXBsZSBhZnRlcjoKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjMKY29tcG9uZW50czoKICAgIHNjaGVtYXM6CiAgICAgICAgVXNlck1vZGVsOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiAxMAogICAgICAgICAgICAgICAgZW1haWxfYWRkcmVzczoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiBqb2huQGRvZS5jb20KICAgICAgICAgICAgICAgIGZpcnN0X25hbWU6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogSm9obgpgYGAKCiMjIyBGb3JtYXQgY2FzaW5nIC0gY29tcG9uZW50IGtleXMKCj0+ICoqY29tcG9uZW50c1NjaGVtYXMgLyBjb21wb25lbnRzRXhhbXBsZXMgLyBjb21wb25lbnRzUGFyYW1ldGVyc0Nvb2tpZSAvIGNvbXBvbmVudHNQYXJhbWV0ZXJzSGVhZGVyIC8gY29tcG9uZW50c1BhcmFtZXRlcnNRdWVyeSAvIGNvbXBvbmVudHNQYXJhbWV0ZXJzUXVlcnkgLyBjb21wb25lbnRzUGFyYW1ldGVyc1BhdGggLyBjb21wb25lbnRzSGVhZGVycyAvIGNvbXBvbmVudHNSZXNwb25zZXMgLyBjb21wb25lbnRzUmVxdWVzdEJvZGllcyAvIGNvbXBvbmVudHNTZWN1cml0eVNjaGVtZXMqKjogUmVmZXJzIHRvIGFsbCB0aGUgbW9kZWwgb2JqZWN0cyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBjb21wb25lbnRzIHNlY3Rpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpGb3JtYXR0aW5nIGNhc2luZyBleGFtcGxlOgoKYGBgeWFtbApjb21wb25lbnRzU2NoZW1hczogUGFzY2FsQ2FzZQpgYGAKCkV4YW1wbGUgYmVmb3JlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMwpwYXRoczoKICAgIC9vcmRlcnM6CiAgICAgICAgZ2V0OgogICAgICAgICAgICByZXNwb25zZXM6CiAgICAgICAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9vcmRlci1tb2RlbCcKY29tcG9uZW50czoKICAgIHNjaGVtYXM6CiAgICAgICAgdXNlck1vZGVsOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBvcmRlci1tb2RlbDoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgcGV0X21vZGVsOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKYGBgCgpvcGVuYXBpLWZvcm1hdCB3aWxsIGZvcm1hdCBhbGwgdGhlIGNvbXBvbmVudCBrZXlzIGxpa2U6ICJ1c2VyTW9kZWwiLCAib3JkZXItbW9kZWwiLCAicGV0X21vZGVsIiB0byBQYXNjYWxDYXNlLCBpbmNsdWRpbmcgZm9ybWF0dGluZyBhbGwgdGhlICIkcmVmIiB1c2VkIGluIHRoZSBPcGVuQVBJIGRvY3VtZW50LgoKRXhhbXBsZSBhZnRlcjoKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjMKcGF0aHM6CiAgICAvb3JkZXJzOgogICAgICAgIGdldDoKICAgICAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvT3JkZXJNb2RlbCcKY29tcG9uZW50czoKICAgIHNjaGVtYXM6CiAgICAgICAgVXNlck1vZGVsOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBPcmRlck1vZGVsOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBQZXRNb2RlbDoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CmBgYAoKIyMjIEZvcm1hdCBjYXNpbmcgLSBwYXJhbWV0ZXIgbmFtZXMKCj0+ICoqY29tcG9uZW50c1BhcmFtZXRlcnNDb29raWUgLyBjb21wb25lbnRzUGFyYW1ldGVyc1BhdGggLyBjb21wb25lbnRzUGFyYW1ldGVyc1F1ZXJ5IC8gY29tcG9uZW50c1BhcmFtZXRlcnNIZWFkZXIqKjogUmVmZXJzIHRvICJuYW1lIiBpbiB0aGUgUGFyYW1ldGVycyB0eXBlczogUGF0aCwgUXVlcnkgb3IgSGVhZGVyLCB3aGljaCBjYW4gYmUgZGVmaW5lZCBpbmxpbmUgaW4gdGhlIFBhdGggb3IgYXMgYSByZWZlcmVuY2UgaW4gdGhlIGNvbXBvbmVudHMgb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpGb3JtYXR0aW5nIGNhc2luZyBleGFtcGxlOgoKYGBgeWFtbApjb21wb25lbnRzUGFyYW1ldGVyc1BhdGg6IGtlYmFiLWNhc2UKYGBgCgpFeGFtcGxlIGJlZm9yZToKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjMKcGF0aHM6CiAgICAnL3BldC97cGV0SWR9JzoKICAgICAgICBnZXQ6CiAgICAgICAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgICAgICAgICAtIG5hbWU6IHBldElkCiAgICAgICAgICAgICAgICAgIGluOiBwYXRoCiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiBwZXQgdG8gcmV0dXJuCiAgICAgICAgICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9MaW1pdFBhcmFtJwpjb21wb25lbnRzOgogICAgcGFyYW1ldGVyczoKICAgICAgICBMaW1pdFBhcmFtOgogICAgICAgICAgICBuYW1lOiBsaW1pdFBhcmFtCiAgICAgICAgICAgIGluOiBxdWVyeQogICAgICAgICAgICBkZXNjcmlwdGlvbjogbWF4IHJlY29yZHMgdG8gcmV0dXJuCmBgYAoKVGhlIENMSSB3aWxsIGZvcm1hdCB0aGUgIm5hbWUiIG9mIHRoZSBwYXJhbWV0ZXJzOiBQYXRoLCBRdWVyeSBvciBIZWFkZXIgbGlrZTogInBldElkIiwgImxpbWl0UGFyYW0iIHRvIGtlYmFiLWNhc2UgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQuCgpFeGFtcGxlIGFmdGVyOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMwpwYXRoczoKICAgICcvcGV0L3twZXRJZH0nOgogICAgICAgIGdldDoKICAgICAgICAgICAgcGFyYW1ldGVyczoKICAgICAgICAgICAgICAgIC0gbmFtZTogcGV0LWlkCiAgICAgICAgICAgICAgICAgIGluOiBwYXRoCiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiBwZXQgdG8gcmV0dXJuCiAgICAgICAgICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL0xpbWl0UGFyYW0nCmNvbXBvbmVudHM6CiAgICBwYXJhbWV0ZXJzOgogICAgICAgIExpbWl0UGFyYW06CiAgICAgICAgICAgIG5hbWU6IGxpbWl0LXBhcmFtCiAgICAgICAgICAgIGluOiBxdWVyeQogICAgICAgICAgICBkZXNjcmlwdGlvbjogbWF4IHJlY29yZHMgdG8gcmV0dXJuCmBgYAoKIyMgQ0xJIHNvcnQgdXNhZ2UKCi0gRm9ybWF0IGEgc3BlYyB3aXRoIHRoZSBkZWZhdWx0IHNvcnRpbmcgYW5kIHNhdmVzIGl0IGFzIGEgbmV3IEpTT04gZmlsZQoKYGBgc2hlbGwKJCBvcGVuYXBpLWZvcm1hdCBvcGVuYXBpLmpzb24gLW8gb3BlbmFwaS1mb3JtYXR0ZWQuanNvbgpgYGAKCi0gRm9ybWF0IGEgcmVtb3RlIHNwZWMgd2l0aCB0aGUgZGVmYXVsdCBzb3J0aW5nIGFuZCBzYXZlcyBpdCBhcyBhIG5ldyBKU09OIGZpbGUKCmBgYHNoZWxsCiQgb3BlbmFwaS1mb3JtYXQgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL2FwaS13aXRoLWV4YW1wbGVzLmpzb24gLW8gb3BlbmFwaS1mb3JtYXR0ZWQuanNvbgpgYGAKCi0gRm9ybWF0IGFuIE9wZW5BUEkgSlNPTiBkb2N1bWVudCB3aXRoIHRoZSBkZWZhdWx0IHNvcnRpbmcgYW5kIHNhdmVzIGl0IGFzIGEgbmV3IFlBTUwgZmlsZQoKYGBgc2hlbGwKJCBvcGVuYXBpLWZvcm1hdCBvcGVuYXBpLmpzb24gLW8gb3BlbmFwaS55YW1sCmBgYAoKLSBGb3JtYXQgYW4gT3BlbkFQSSBkb2N1bWVudCB3aXRoIHRoZSBkZWZhdWx0IHNvcnRpbmcgYW5kIG91dHB1dCBpdCBhcyBKU09OIHRvIFNURE9VVAoKYGBgc2hlbGwKJCBvcGVuYXBpLWZvcm1hdCBvcGVuYXBpLmpzb24gLS1qc29uCmBgYAoKLSBGb3JtYXQgYW4gT3BlbkFQSSBkb2N1bWVudCB3aXRoIHRoZSBkZWZhdWx0IHNvcnRpbmcgYW5kIG91dHB1dCBpdCBhcyBZQU1MIHRvIFNURE9VVAoKYGBgc2hlbGwKJCBvcGVuYXBpLWZvcm1hdCBvcGVuYXBpLmpzb24gLS15YW1sCmBgYAoKLSBGb3JtYXQgYW4gT3BlbkFQSSBKU09OIGRvY3VtZW50IHdpdGggdGhlIGRlZmF1bHQgc29ydGluZyBhbmQgc2F2ZSBpdCBhcyBZQU1MCgpgYGBzaGVsbAokIG9wZW5hcGktZm9ybWF0IG9wZW5hcGkuanNvbiAtbyBvcGVuYXBpLnlhbWwKYGBgCgotIEZvcm1hdCBhbiBPcGVuQVBJIGRvY3VtZW50IGJ1dCBza2lwIHRoZSBzb3J0aW5nIGFuZCBzYXZlIGl0IGFzIGEgbmV3IEpTT04gZmlsZQoKYGBgc2hlbGwKJCBvcGVuYXBpLWZvcm1hdCBvcGVuYXBpLmpzb24gLW8gb3BlbmFwaS1mb3JtYXR0ZWQuanNvbiAtLW5vLXNvcnQKYGBgCgpUaGlzIHNob3VsZCBrZWVwIHRoZSBPcGVuQVBJIGZpZWxkcyBpbiB0aGUgc2FtZSBvcmRlci4gVGhpcyBjYW4gYmUgbmVlZGVkLCB3aGVuIHlvdSBvbmx5IHdhbnQgdG8gZG8gYSBmaWx0ZXJpbmcgb3IKcmVuYW1lIGFjdGlvbi4KCi0gQ29udmVydCB0aGUgT3BlbkFQSSAzLjAgZG9jdW1lbnQgdG8gT3BlbkFQSSAzLjEgYnV0IHNraXAgdGhlIHNvcnRpbmcgYW5kIHNhdmUgaXQgYXMgYSBuZXcgWUFNTCBmaWxlCgpgYGBzaGVsbAokIG9wZW5hcGktZm9ybWF0IG9wZW5hcGkueWFtbCAtbyBvcGVuYXBpLTMuMS55YW1sIC0tbm8tc29ydCAtLWNvbnZlcnRUbyAiMy4xIgpgYGAKClRoaXMgd2lsbCBjb252ZXJ0IHRoZSBPcGVuQVBJIDMuMCBkb2N1bWVudCBpbnRvIHZlcnNpb24gMy4xIG9mIE9wZW5BUEksIHdpdGhvdXQgYW55IG9yZGVyaW5nIG9yIGZpbHRlcmluZy4KRHVyaW5nIHRoZSBjb252ZXJzaW9uLCBvcGVuYXBpLWZvcm1hdCB3aWxsIHRyYW5zZm9ybSBhbGwgT3BlbkFQSSAzLjAgcHJvcGVydGllcyBpbnRvIHRoZSBPcGVuQVBJIDMuMSBwcm9wZXJ0aWVzLCBhcyBkZXNjcmliZWQgaW4gdGhlIFttaWdyYXRpb24gZ3VpZGUgZnJvbQpQaGlsIFN0dXJnZW9uXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvYmxvZy8yMDIxLzAyLzE2L21pZ3JhdGluZy1mcm9tLW9wZW5hcGktMy0wLXRvLTMtMS0wKS4KCi0gRm9ybWF0IGFuIE9wZW5BUEkgZG9jdW1lbnQsIGluY2x1ZGluZyBzb3J0aW5nIGFsbCBlbGVtZW50cyBpbiB0aGUgY29tcG9uZW50cyBzZWN0aW9uCgpgYGBzaGVsbAokIG9wZW5hcGktZm9ybWF0IG9wZW5hcGkuanNvbiAtbyBvcGVuYXBpLWZvcm1hdHRlZC5qc29uIC0tc29ydENvbXBvbmVudHNGaWxlIC4vdGVzdC9qc29uLXNvcnQtY29tcG9uZW50cy9jdXN0b21Tb3J0Q29tcG9uZW50cy5qc29uCmBgYAoKVGhpcyB3aWxsIHNvcnQgYWxsIGVsZW1lbnRzIGluIHRoZSBjb21wb25lbnRzICggY29tcG9uZW50cy9zY2hlbWFzLCBjb21wb25lbnRzL3BhcmFtZXRlcnMsIGNvbXBvbmVudHMvaGVhZGVycywKY29tcG9uZW50cy9yZXF1ZXN0Qm9kaWVzLCBjb21wb25lbnRzL3Jlc3BvbnNlcywgLi4uKSBzZWN0aW9uIGJ5IGFscGhhYmV0LgoKCiMjIENMSSBmaWx0ZXIgdXNhZ2UKCi0gRm9ybWF0IGFuIE9wZW5BUEkgZG9jdW1lbnQgYnkgZmlsdGVyaW5nIGZpZWxkcywgZGVmYXVsdCBzb3J0aW5nIGFuZCBzYXZlcyBpdCBhcyBhIG5ldyBmaWxlCgpXaGVuIHlvdSB3YW50IHRvIHN0cmlwIGNlcnRhaW4gbWV0aG9kcyAsdGFncywgb3BlcmF0aW9uSWRzLCBvcGVyYXRpb25zLCBmbGFncyB5b3UgY2FuIHBhc3MgYSBgZmlsdGVyRmlsZWAgd2hpY2ggY29udGFpbnMgdGhlCnNwZWNpZmljIHZhbHVlcyBmb3IgdGhlIG1ldGhvZHMgLHRhZ3MsIG9wZXJhdGlvbklkcywgb3BlcmF0aW9ucywgZmxhZ3MuCgpUaGlzIGNhbiBiZSB1c2VmdWwgdG8gY29tYmluZSB3aXRoIHRoZSBzb3J0aW5nLCB0byBlbmQgdXAgd2l0aCBhbiBvcmRlciBhbmQgZmlsdGVyZWQgT3BlbkFQSSBkb2N1bWVudC4KCmV4YW1wbGU6CgpgYGBzaGVsbAokIG9wZW5hcGktZm9ybWF0IG9wZW5hcGkuanNvbiAtbyBvcGVuYXBpLWZvcm1hdHRlZC5qc29uIC0tZmlsdGVyRmlsZSBjdXN0b21GaWx0ZXIueWFtbApgYGAKCndoZXJlIHRoZSBgY3VzdG9tRmlsdGVyLnlhbWxgIHdvdWxkIGNvbnRhaW4gYSBjb21iaW5hdGlvbiBvZiBhbGwgdGhlIGVsZW1lbnRzIHlvdSB3YW50IHRvIGZpbHRlciBvdXQuCgpgYGB5YW1sCmZsYWdzOgogICAgLSB4LXZpc2liaWxpdHkKZmxhZ1ZhbHVlczogWyBdCnRhZ3M6IFsgXQpvcGVyYXRpb25JZHM6CiAgICAtIGFkZFBldAogICAgLSBmaW5kUGV0c0J5U3RhdHVzCmBgYAoKIyMgQ0xJIHJlbmFtZSB1c2FnZQoKLSBGb3JtYXQgYW4gT3BlbkFQSSBkb2N1bWVudCBieSBjaGFuZ2luZyB0aGUgdGl0bGUgYW5kIHNhdmVzIGl0IGFzIGEgbmV3IEpTT04gZmlsZQoKRHVyaW5nIENJL0NEIHBpcGVsaW5lcywgeW91IG1pZ2h0IHdhbnQgdG8gY3JlYXRlIGRpZmZlcmVudCByZXN1bHRzIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50LiBIYXZpbmcgdGhlIG9wdGlvbiB0byByZW5hbWUKdGhlbSBtaWdodCBtYWtlIGl0IGVhc2llciB0byB3b3JrIHdpdGggdGhlIHJlc3VsdHMsIHNvIHRoYXQgaXMgd2h5IHdlIHByb3ZpZGUgdGhpcyBjb21tYW5kIG9wdGlvbi4KCmBgYHNoZWxsCiQgb3BlbmFwaS1mb3JtYXQgb3BlbmFwaS5qc29uIC1vIG9wZW5hcGkuanNvbiAtLXJlbmFtZSAiT3BlbkFQSSBQZXRzdG9yZSAtIE9wZW5BUEkgMy4wIgpgYGAKCndoaWNoIHJlc3VsdHMgaW4KCioqYmVmb3JlKioKCmBgYGpzb24KewogICAgIm9wZW5hcGkiOiAiMy4wLjIiLAogICAgImluZm8iOiB7CiAgICAgICAgInRpdGxlIjogIlBldHN0b3JlIC0gT3BlbkFQSSAzLjAiLApgYGAKCioqYWZ0ZXIqKgoKYGBganNvbgp7CiAgICAib3BlbmFwaSI6ICIzLjAuMiIsCiAgICAiaW5mbyI6IHsKICAgICAgICAidGl0bGUiOiAiT3BlbkFQSSBQZXRzdG9yZSAtIE9wZW5BUEkgMy4wIiwKYGBgCgojIyBDTEkgY29udmVydFRvIHVzYWdlCgo+IPCfj5cgQkVUQSBOT1RJQ0U6IFRoaXMgZmVhdHVyZSBpcyBjb25zaWRlcmVkIEJFVEEgc2luY2Ugd2UgYXJlIGludmVzdGlnYXRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gc3ludGF4IGFuZCBleHRyYSBmb3JtYXR0aW5nL2Nhc2luZyBjYXBhYmlsaXRpZXMuCgotIEZvcm1hdCAmIGNvbnZlcnQgdGhlIE9wZW5BUEkgZG9jdW1lbnQgdG8gT3BlbkFQSSB2ZXJzaW9uIDMuMQoKb3BlbmFwaS1mb3JtYXQgY2FuIGhlbHAgeW91IHRvIHVwZ3JhZGUgeW91ciBjdXJyZW50IE9wZW5BUEkgMy4wLnggZG9jdW1lbnQgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIE9wZW5BUEkgMy4xLgoKYGBgc2hlbGwKJCBvcGVuYXBpLWZvcm1hdCBvcGVuYXBpLmpzb24gLW8gb3BlbmFwaS0zLjEuanNvbiAtLWNvbnZlcnRUbyAiMy4xIgpgYGAKCndoaWNoIHJlc3VsdHMgaW4gYWxsIHRoZSBjaGFuZ2VzIGRlc2NyaWJlZCBpbiB0aGUgW21pZ3JhdGlvbiBndWlkZSBmcm9tIFBoaWwgU3R1cmdlb25dKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy9ibG9nLzIwMjEvMDIvMTYvbWlncmF0aW5nLWZyb20tb3BlbmFwaS0zLTAtdG8tMy0xLTApCgoqKmJlZm9yZSoqCgpgYGBqc29uCnsKICAgICJvcGVuYXBpIjogIjMuMC4yIiwKICAgICJpbmZvIjogewogICAgICAgICJ0aXRsZSI6ICJQZXRzdG9yZSAtIE9wZW5BUEkiLApgYGAKCioqYWZ0ZXIqKgoKYGBganNvbgp7CiAgICAib3BlbmFwaSI6ICIzLjEuMCIsCiAgICAiaW5mbyI6IHsKICAgICAgICAidGl0bGUiOiAiT3BlbkFQSSBQZXRzdG9yZSAtIE9wZW5BUEkiLApgYGAKCiMjIENMSSBjb25maWd1cmF0aW9uIHVzYWdlCgpBbGwgdGhlIENMSSBvcHRpb25zIGNhbiBiZSBtYW5hZ2VkIGluIGEgc2VwYXJhdGUgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBwYXNzZWQgYWxvbmcgdGhlIG9wZW5hcGktZm9ybWF0IGNvbW1hbmQuIFRoaXMKd2lsbCBtYWtlIGNvbmZpZ3VyYXRpb24gZWFzaWVyLCBlc3BlY2lhbGx5IGluIENJL0NEIGltcGxlbWVudGF0aW9ucyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBjYW4gYmUgc3RvcmVkIGluIHZlcnNpb24KY29udHJvbCBzeXN0ZW1zLgoKZXhhbXBsZToKCmBgYHNoZWxsCiQgb3BlbmFwaS1mb3JtYXQgb3BlbmFwaS5qc29uIC0tY29uZmlnRmlsZSBvcGVuYXBpLWZvcm1hdC1vcHRpb25zLmpzb24KYGBgCgpUaGUgZm9ybWF0dGluZyB3aWxsIGhhcHBlbiBiYXNlZCBvbiBhbGwgdGhlIG9wdGlvbnMgc2V0IGluIHRoZSBgb3BlbmFwaS1mb3JtYXQtb3B0aW9ucy5qc29uYCBmaWxlLiBBbGwgdGhlCmF2YWlsYWJsZSBbT3BlbkFQSSBmb3JtYXQgb3B0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3RoaW04MS9vcGVuYXBpLWZvcm1hdCNvcGVuYXBpLWZvcm1hdC1vcHRpb25zKSBjYW4gYmUgdXNlZCBpbiB0aGUKY29uZmlnIGZpbGUuCgojIyBBc3luY0FQSSBkb2N1bWVudHMKCkZvciBoYW5kbGluZyBBc3luY0FQSSBkb2N1bWVudHMsIHdlIGhhdmUgY3JlYXRlZCBhIHNlcGFyYXRlCnBhY2thZ2UgW2FzeW5jYXBpLWZvcm1hdF0oaHR0cHM6Ly9naXRodWIuY29tL3RoaW04MS9hc3luY2FwaS1mb3JtYXQpIHRvIGFsbG93IGN1c3RvbWlzYXRpb24gc3BlY2lmaWMgZm9yIEFzeW5jQVBJCnVzZS1jYXNlcy4KCiMjIFN0b3BsaWdodCBTdHVkaW8KCldlIGhhdmUgYWRvcHRlZCB0aGUgWUFNTCBwYXJzaW5nIHN0eWxlIGZyb20gW1N0b3BsaWdodCBTdHVkaW9dKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL3N0dWRpby8pLCBieSBsZXZlcmFnaW5nCnRoZSBbQHN0b3BsaWdodC95YW1sXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac3RvcGxpZ2h0L3lhbWwpIHBhY2thZ2UgZm9yIGhhbmRsaW5nIHRoZSBwYXJzaW5nIG9mIE9wZW5BUEkgWUFNTApmaWxlcy4KCkJ5IHVzaW5nIHRoZSBTdG9wbGlnaHQgWUFNTCBwYXJzaW5nLCB0aGUgcmVzdWx0cyB3aWxsIGJlIHNsaWdodGx5IGRpZmZlcmVudCBmcm9tIHdoZW4gdXNpbmcgYSBub3JtYWwgWUFNTCBwYXJzaW5nCmxpYnJhcnksIGxpa2UgW2pzLXRvLXlhbWxdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2pzLXlhbWwpLiBXZSBhcHByZWNpYXRlIHRoZSBTdG9wbGlnaHQgU3R1ZGlvIHRvb2wsIHNpbmNlIGl0IGlzCmFuIGV4Y2VsbGVudCBHVUkgZm9yIHdvcmtpbmcgd2l0aCBPcGVuQVBJIGRvY3VtZW50cyBmb3Igbm9uLU9wZW5BUEkgZXhwZXJ0cyB3aG8gd2lsbCBiZSBjb250cmlidXRpbmcgY2hhbmdlcy4gQnkKYWRvcHRpbmcgdGhlIFN0b3BsaWdodCBTdHVkaW8gWUFNTCBwYXJzaW5nLCB0aGUgcG90ZW50aWFsIHJpc2sgb2YgbWVyZ2UgY29uZmxpY3RzIHdpbGwgYmUgbG93ZXJlZCwgd2hpY2ggaXMgdGhlIG1haW4KcmVhc29uIHdoeSB3ZSBvcHRlZCBmb3IgdXNpbmcgdGhlIEBzdG9wbGlnaHQveWFtbCBwYWNrYWdlLgoKIyMgQ3JlZGl0cwoKVGhpcyBwYWNrYWdlIGlzIGluc3BpcmVkIGJ5CnRoZSBbQG1pY3Jvc29mdC5henVyZS9mb3JtYXQtc3BlY10oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG1pY3Jvc29mdC5henVyZS9mb3JtYXQtc3BlYykgZnJvbSBbQGZlYXJ0aGVjb3dib3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWFydGhlY293Ym95KS4gVGhlCm9yaWdpbmFsIGNvZGUgd2FzIG5vdCBhdmFpbGFibGUgb24gR2l0SHViLCB3aXRoIHRoZSBsYXN0IHVwZGF0ZSBiZWluZyAzIHllYXJzIGFnbywgc28gdG8gaW1wcm92ZSBzdXBwb3J0IGFuZCBleHRlbmQgaXQgd2UKdHJpZWQgdG8gcmVwcm9kdWNlIHRoZSBvcmlnaW5hbCBmdW5jdGlvbmFsaXR5LgoKVGhlIGZpbHRlciBjYXBhYmlsaXRpZXMgZnJvbSBgb3BlbmFwaS1mb3JtYXRgIGFyZSBhIGxpZ2h0IHZlcnNpb24gZ3JvdW5kZWQgYnkgdGhlIHdvcmsgZnJvbSBbQE1pa2VSYWxwaHNvbl0oaHR0cHM6Ly9naXRodWIuY29tL21pa2VyYWxwaHNvbikgb24KdGhlIFtvcGVuYXBpLWZpbHRlcl0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb3BlbmFwaS1maWx0ZXIpIHBhY2thZ2UuCgpUaGUgY2FzaW5nIG9wdGlvbnMgYXZhaWxhYmxlIGluIGBvcGVuYXBpLWZvcm1hdGAgYXJlIHBvd2VyZWQgYnkgdGhlIGV4Y2VsbGVudCBbY2FzZS1hbnl0aGluZ10oaHR0cHM6Ly9naXRodWIuY29tL21lc3F1ZWViL2Nhc2UtYW55dGhpbmcpIG5hbm8gcGFja2FnZSBmcm9tIEx1Y2EgQmFuIChbQG1lc3F1ZWViXShodHRwczovL2dpdGh1Yi5jb20vbWVzcXVlZWIpKS4= readmeEtag: '"fdb92030964a34b30d450d6d113b644047b6b4e0"' readmeLastModified: Sat, 17 Aug 2024 09:40:56 GMT repositoryId: 345077537 description: Format an OpenAPI document by ordering, formatting and filtering fields. created: '2021-03-06T11:31:52Z' updated: '2024-09-05T22:01:13Z' language: JavaScript archived: false stars: 92 watchers: 4 forks: 15 owner: thim81 logo: https://avatars.githubusercontent.com/u/952446?v=4 license: MIT repoEtag: '"d390325b8c38ae94b2bc5da19e78f9711c5aee51b073ce8f6acb5668a0e5aaf5"' repoLastModified: Thu, 05 Sep 2024 22:01:13 GMT foundInMaster: true id: 788dd625de099d0d3403fe30067f3743 v3_1: true - source: https://openapi.tools/ name: super-linter category: - Description Validators - Server Implementations repository: https://github.com/github/super-linter language: - CLI - Docker source_description: >- GitHub Action to lint repositories as part of CI/CD. Implements the latest version of Spectral. v2: true v3: true repositoryMetadata: base64Readme: >- ClRoaXMgcmVwb3NpdG9yeSBpcyBhIGZvcmsgb2YgdGhlIHVwc3RyZWFtIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBlci1saW50ZXIvc3VwZXItbGludGVyLiBQbGVhc2UgZGlyZWN0IGFsbCBwdWxsIHJlcXVlc3RzIGFuZCBpc3N1ZXMgdGhlcmUgYXMgdGhpcyByZXBvc2l0b3J5IHdpbGwgbm90IGFsd2F5cyBiZSB1cCB0byBkYXRlLgo= readmeEtag: '"7939d5a68eedbc0f5647e25027156d13fe577f47"' readmeLastModified: Thu, 29 Aug 2024 18:27:11 GMT repositoryId: 633129333 description: Combination of multiple linters to install as a GitHub Action created: '2023-04-26T21:02:26Z' updated: '2024-08-29T18:28:03Z' language: Shell archived: false stars: 97 watchers: 4 forks: 15 owner: github logo: https://avatars.githubusercontent.com/u/9919?v=4 license: MIT repoEtag: '"0d6319d774d2112d47a4b1c02cc4350568c601874749c85754906383ef03f47b"' repoLastModified: Thu, 29 Aug 2024 18:28:03 GMT foundInMaster: true id: ec6a7a1e4a69a9beeb95bdebb88cb36d - source: https://openapi.tools/ name: SpringFox category: Server language: - Java - Kotlin - Groovy - or Ruby link: https://springfox.io repository: https://github.com/springfox/springfox source_description: Automated JSON API documentation for APIs built with Spring and SpringBoot v1: true v2: true v3: true repositoryMetadata: base64Readme: >- IyBTcHJpbmdmb3gKClshW0pvaW4gdGhlIGNoYXQgYXQgaHR0cHM6Ly9naXR0ZXIuaW0vc3ByaW5nZm94L3NwcmluZ2ZveF0oaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL0pvaW4lMjBDaGF0LnN2ZyldKGh0dHBzOi8vZ2l0dGVyLmltL3NwcmluZ2ZveC9zcHJpbmdmb3g/dXRtX3NvdXJjZT1iYWRnZSZ1dG1fbWVkaXVtPWJhZGdlJnV0bV9jYW1wYWlnbj1wci1iYWRnZSZ1dG1fY29udGVudD1iYWRnZSkKWyFbRk9TU0EgU3RhdHVzXShodHRwczovL2FwcC5mb3NzYS5pby9hcGkvcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRnNwcmluZ2ZveCUyRnNwcmluZ2ZveC5zdmc/dHlwZT1zaGllbGQpXShodHRwczovL2FwcC5mb3NzYS5pby9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGc3ByaW5nZm94JTJGc3ByaW5nZm94P3JlZj1iYWRnZV9zaGllbGQpClsgIVtEb3dubG9hZF0oaHR0cHM6Ly9hcGkuYmludHJheS5jb20vcGFja2FnZXMvc3ByaW5nZm94L21hdmVuLXJlcG8vc3ByaW5nZm94L2ltYWdlcy9kb3dubG9hZC5zdmcpIF0oaHR0cHM6Ly9iaW50cmF5LmNvbS9zcHJpbmdmb3gvbWF2ZW4tcmVwby9zcHJpbmdmb3gvX2xhdGVzdFZlcnNpb24pIApbIVtQcm9qZWN0IFN0YXRzXShodHRwczovL3d3dy5vcGVuaHViLm5ldC9wL3NwcmluZ2ZveC93aWRnZXRzL3Byb2plY3RfdGhpbl9iYWRnZS5naWYpXShodHRwczovL3d3dy5vcGVuaHViLm5ldC9wL3NwcmluZ2ZveCkKCnwgQnVpbGQgU3RhdHVzICB8IENvdmVyYWdlICAgfCBDb2RlIEFuYWx5c2lzIHwKfC0tLXwtLS18LS0tfAp8WyFbQ2lyY2xlIENJXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9zcHJpbmdmb3gvc3ByaW5nZm94L3RyZWUvbWFzdGVyLnN2Zz9zdHlsZT1zdmcpXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9zcHJpbmdmb3gvc3ByaW5nZm94L3RyZWUvbWFzdGVyKXxbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvc3ByaW5nZm94L3NwcmluZ2ZveC9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9zcHJpbmdmb3gvc3ByaW5nZm94KSB8WyFbUXVhbGl0eSBHYXRlIFN0YXR1c10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9c3ByaW5nZm94X3NwcmluZ2ZveCZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1zcHJpbmdmb3hfc3ByaW5nZm94KXwKCnwgU29uYXIgQ2xvdWQgfAp8LS0tLS0tLS0tLS0tIHwKfFshW1NlY3VyaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9c3ByaW5nZm94X3NwcmluZ2ZveCZtZXRyaWM9c2VjdXJpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1zcHJpbmdmb3hfc3ByaW5nZm94KXwKfFshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9c3ByaW5nZm94X3NwcmluZ2ZveCZtZXRyaWM9dnVsbmVyYWJpbGl0aWVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1zcHJpbmdmb3hfc3ByaW5nZm94KXwKfFshW01haW50YWluYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXNwcmluZ2ZveF9zcHJpbmdmb3gmbWV0cmljPXNxYWxlX3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9c3ByaW5nZm94X3NwcmluZ2ZveCl8CnxbIVtSZWxpYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXNwcmluZ2ZveF9zcHJpbmdmb3gmbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9c3ByaW5nZm94X3NwcmluZ2ZveCl8CnxbIVtUZWNobmljYWwgRGVidF0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9c3ByaW5nZm94X3NwcmluZ2ZveCZtZXRyaWM9c3FhbGVfaW5kZXgpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPXNwcmluZ2ZveF9zcHJpbmdmb3gpfAp8WyFbQ292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXNwcmluZ2ZveF9zcHJpbmdmb3gmbWV0cmljPWNvdmVyYWdlKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1zcHJpbmdmb3hfc3ByaW5nZm94KXwKCiMjIyBBYm91dApGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIHByb2plY3QgdmlzaXQgdGhlIFtTcHJpbmdmb3ggV2Vic2l0ZV0oaHR0cDovL3NwcmluZ2ZveC5pbykgb3IKIFtodHRwOi8vc3ByaW5nZm94LmdpdGh1Yi5pby9zcHJpbmdmb3gvXShodHRwOi8vc3ByaW5nZm94LmdpdGh1Yi5pby9zcHJpbmdmb3gvKQoKIyMjIFVzZWZ1bCBsaW5rcwotIFtSZWZlcmVuY2UgRG9jdW1lbnRhdGlvbl0oaHR0cDovL3NwcmluZ2ZveC5pbykKLSBbRXhhbXBsZXMgcmVwb3NpdG9yeV0oaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZ2ZveC9zcHJpbmdmb3gtZGVtb3MpCi0gW0NvbnRyaWJ1dGlvbiBHdWlkZWxpbmVzXShodHRwczovL2dpdGh1Yi5jb20vc3ByaW5nZm94L3NwcmluZ2ZveC93aWtpL0NvbnRyaWJ1dGlvbi1ndWlkZWxpbmVzKQotIFtDb3JlIGNvbnRyaWJ1dG9yc10oaHR0cDovL3NwcmluZ2ZveC5naXRodWIuaW8vc3ByaW5nZm94L2NvbnRyaWJ1dG9ycy5odG1sKQotIFtEZXZlbG9wbWVudCBhbmQgY29udHJpYnV0aW9uIGd1aWRlbGluZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0eXBpdHQvc3dhZ2dlci1zcHJpbmdtdmMvd2lraS9EZXZlbG9wbWVudCkKLSBbQ2hhbmdlIGxvZ10oZG9jcy9yZWxlYXNlLW5vdGVzLm1kKQotIFtEZXZlbG9wbWVudCBFbnZpcm9ubWVudF0oaHR0cDovL3NwcmluZ2ZveC5naXRodWIuaW8vc3ByaW5nZm94L2RvY3MvY3VycmVudC8jZGV2ZWxvcG1lbnQtZW52aXJvbm1lbnQpCi0gW1JlbGVhc2UgSW5zdHJ1Y3Rpb25zXShodHRwOi8vc3ByaW5nZm94LmdpdGh1Yi5pby9zcHJpbmdmb3gvZG9jcy9jdXJyZW50LyNyZWxlYXNpbmcpCgojIyMgR2V0dGluZyBTdGFydGVkCgojIyMjIEZvciBuZXcgcHJvamVjdHMKRm9yIE1hdmVuCmBgYHhtbCAKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5pby5zcHJpbmdmb3g8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5zcHJpbmdmb3gtYm9vdC1zdGFydGVyPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+My4wLjA8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KCmBgYAoKRm9yIEdyYWRsZQpgYGBncmFkbGUgCiAgaW1wbGVtZW50YXRpb24gImlvLnNwcmluZ2ZveDpzcHJpbmdmb3gtYm9vdC1zdGFydGVyOjx2ZXJzaW9uPiIKYGBgCiMjIyMgTWlncmF0aW5nIGZyb20gZWFybGllciBzbmFwc2hvdCAKIyMjIyBTcHJpbmcgQm9vdCBBcHBsaWNhdGlvbnMKTk9URTogV291bGQgbG92ZSBmZWVkYmFjayB0byBtYWtlIHRoaXMgYmV0dGVyCjEuIFJlbW92ZSBleHBsaWNpdCBkZXBlbmRlbmNpZXMgb24gYHNwcmluZ2ZveC1zd2FnZ2VyMmAKMi4gUmVtb3ZlIGFueSBgQEVuYWJsZVN3YWdnZXIyLi4uYCBhbm5vdGF0aW9ucwozLiBBZGQgdGhlIGBzcHJpbmdmb3gtYm9vdC1zdGFydGVyYCBkZXBlbmRlbmN5CjQuIFNwcmluZ2ZveCAzLnggcmVtb3ZlcyBkZXBlbmRlbmNpZXMgb24gZ3VhdmEgYW5kIG90aGVyIDNyZCBwYXJ0eSBsaWJyYXJpZXMgKG5vdCB6ZXJvIGRlcCB5ZXQhIGRlcGVuZHMgb24gc3ByaW5nIHBsdWdpbgphbmQgb3BlbiBhcGkgbGlicmFyaWVzIGZvciBhbm5vdGF0aW9ucyBhbmQgbW9kZWxzKSBzbyBpZiB5b3UgdXNlZCBndWF2YSBwcmVkaWNhdGVzL2Z1bmN0aW9ucyB0aG9zZSB3aWxsIG5lZWQgdG8gCnRyYW5zaXRpb24gdG8gamF2YSA4IGZ1bmN0aW9uIGludGVyZmFjZXMuCgojIyMjIE1pZ3JhdGluZyBmcm9tIGV4aXN0aW5nIDIueCB2ZXJzaW9uCiMjIyMgU3ByaW5nIEJvb3QgQXBwbGljYXRpb25zCk5PVEU6IFdvdWxkIGxvdmUgZmVlZGJhY2sgdG8gbWFrZSB0aGlzIGJldHRlcgoxLiBSZW1vdmUgZXhwbGljaXQgZGVwZW5kZW5jaWVzIG9uIGBzcHJpbmdmb3gtc3dhZ2dlcjJgCjIuIFJlbW92ZSB0aGUgYEBFbmFibGVTd2FnZ2VyMmAgYW5ub3RhdGlvbnMKMy4gQWRkIHRoZSBgc3ByaW5nZm94LWJvb3Qtc3RhcnRlcmAgZGVwZW5kZW5jeQo0LiBTcHJpbmdmb3ggMy54IHJlbW92ZXMgZGVwZW5kZW5jaWVzIG9uIGd1YXZhIGFuZCBvdGhlciAzcmQgcGFydHkgbGlicmFyaWVzIChub3QgemVybyBkZXAgeWV0ISBkZXBlbmRzIG9uIHNwcmluZyBwbHVnaW4KYW5kIG9wZW4gYXBpIGxpYnJhcmllcyBmb3IgYW5ub3RhdGlvbnMgYW5kIG1vZGVscykgc28gaWYgeW91IHVzZWQgZ3VhdmEgcHJlZGljYXRlcy9mdW5jdGlvbnMgdGhvc2Ugd2lsbCBuZWVkIHRvIAp0cmFuc2l0aW9uIHRvIGphdmEgOCBmdW5jdGlvbiBpbnRlcmZhY2VzIAo1LiBJZiB5b3UgYXJlIHVzaW5nIFdlYk12YyBidXQgeW91IGRvbid0IHVzZSB0aGUgW2BARW5hYmxlV2ViTXZjYF0oaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctZnJhbWV3b3JrL2RvY3MvY3VycmVudC9qYXZhZG9jLWFwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL3dlYi9zZXJ2bGV0L2NvbmZpZy9hbm5vdGF0aW9uL0VuYWJsZVdlYk12Yy5odG1sKSBhbm5vdGF0aW9uIHlldCwgYWRkIHRoaXMgYW5ub3RhdGlvbi4KCiMjIyMgUmVndWxhciBzcHJpbmcgbXZjICAKTk9URTogV291bGQgbG92ZSBmZWVkYmFjayB0byBtYWtlIHRoaXMgZXhwZXJpZW5jZSBiZXR0ZXIKMS4gUmVtb3ZlIGV4cGxpY2l0IGRlcGVuZGVuY2llcyBvbiBgc3ByaW5nZm94LXN3YWdnZXIyYAoyLiBBZGQgYEBFbmFibGVPcGVuQXBpYCBmb3Igb3BlbiBBUEkgKGFuZCBgQEVuYWJsZVN3YWdnZXIyV2ViTXZjYCBvciBgQEVuYWJsZVN3YWdnZXIyV2ViRmx1eGAgZm9yIG9sZGVyIHZlcnNpb25zKSAgCjMuIEFkZGVkIHRoZSBgc3ByaW5nZm94LW9hc2AgbGlicmFyeSAKNC4gU3ByaW5nZm94IDMueCByZW1vdmVzIGRlcGVuZGVuY2llcyBvbiBndWF2YSBhbmQgb3RoZXIgM3JkIHBhcnR5IGxpYnJhcmllcyAobm90IHplcm8gZGVwIHlldCEgZGVwZW5kcyBvbiBzcHJpbmcgcGx1Z2luCmFuZCBvcGVuIGFwaSBsaWJyYXJpZXMgZm9yIGFubm90YXRpb25zIGFuZCBtb2RlbHMpIHNvIGlmIHlvdSB1c2VkIGd1YXZhIHByZWRpY2F0ZXMvZnVuY3Rpb25zIHRob3NlIHdpbGwgbmVlZCB0byAKdHJhbnNpdGlvbiB0byBqYXZhIDggZnVuY3Rpb24gaW50ZXJmYWNlcyAKCgpMaWNlbnNlCi0tLS0tLS0KCkNvcHlyaWdodCAyMDE1IE1hcnR5IFBpdHQgLSBbQG1hcnR5cGl0dF0oaHR0cHM6Ly9naXRodWIuY29tL21hcnR5cGl0dCksIERpbGlwIEtyaXNobmFuIC0gW0BkaWxpcGtyaXNoXShodHRwczovL2dpdGh1Yi5jb20vZGlsaXBrcmlzaCksCkFkcmlhbiBLZWxseSAtICBbQGFkcmlhbmJrXShodHRwczovL2dpdGh1Yi5jb20vYWRyaWFuYmspLAoKTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IFthcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXShodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCiMjIExpY2Vuc2UKWyFbRk9TU0EgU3RhdHVzXShodHRwczovL2FwcC5mb3NzYS5pby9hcGkvcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRnNwcmluZ2ZveCUyRnNwcmluZ2ZveC5zdmc/dHlwZT1sYXJnZSldKGh0dHBzOi8vYXBwLmZvc3NhLmlvL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZzcHJpbmdmb3glMkZzcHJpbmdmb3g/cmVmPWJhZGdlX2xhcmdlKQo= readmeEtag: '"fd6ee0fdca5a5307c2655e0354220fb22686b380"' readmeLastModified: Wed, 14 Oct 2020 01:49:23 GMT repositoryId: 4238977 description: Automated JSON API documentation for API's built with Spring created: '2012-05-06T06:38:57Z' updated: '2024-09-02T07:53:51Z' language: Java archived: false stars: 5926 watchers: 266 forks: 1535 owner: springfox logo: https://avatars.githubusercontent.com/u/11529357?v=4 license: Apache-2.0 repoEtag: '"e4fef26350dcbe45cbcbccc77e2486ba5557f91aef45cdfdf9725fc4da57f59b"' repoLastModified: Mon, 02 Sep 2024 07:53:51 GMT foundInMaster: true id: 2addde4c497bf582f20025ccac2cda86 - source: - https://openapi.tools/ - openapi3 tags name: php-openapi-faker language: PHP repository: https://github.com/canvural/php-openapi-faker source_description: >- Library to generate fake data for OpenAPI 3.x requests, responses and schemas. v2: false v3: true repositoryMetadata: base64Readme: >- IyBwaHAtb3BlbmFwaS1mYWtlcgoKIVtUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2NhbnZ1cmFsL3BocC1vcGVuYXBpLWZha2VyL3dvcmtmbG93cy9UZXN0cy9iYWRnZS5zdmcpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9jYW52dXJhbC9waHAtb3BlbmFwaS1mYWtlci9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9jYW52dXJhbC9waHAtb3BlbmFwaS1mYWtlcikKWyFbSW5mZWN0aW9uIE1TSV0oaHR0cHM6Ly9iYWRnZS5zdHJ5a2VyLW11dGF0b3IuaW8vZ2l0aHViLmNvbS9jYW52dXJhbC9waHAtb3BlbmFwaS1mYWtlci9tYXN0ZXIpXShodHRwczovL2luZmVjdGlvbi5naXRodWIuaW8pClshW1BIUFN0YW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUEhQU3Rhbi1MZXZlbCUyME1heC1icmlnaHRncmVlbi5zdmc/c3R5bGU9ZmxhdCZsb2dvPXBocCldKGh0dHBzOi8vcGhwc3Rhbi5vcmcpCgpMaWJyYXJ5IHRvIGdlbmVyYXRlIGZha2UgZGF0YSBmb3IgeW91ciBPcGVuQVBJIHJlcXVlc3RzLCByZXNwb25zZXMgYW5kIHNjaGVtYXMuCgpgYGBwaHAKJGZha2VyID0gXFZ1cmFsXE9wZW5BUElGYWtlclxPcGVuQVBJRmFrZXI6OmNyZWF0ZUZyb21Kc29uKCR5b3VyU2NoZW1hQXNKc29uKTsKJGZha2VEYXRhID0gJGZha2VyLT5tb2NrUmVzcG9uc2UoJy90b2RvcycsJ0dFVCcpOwpgYGAKCiMjIEluc3RhbGxhdGlvbgoKWW91IGNhbiBpbnN0YWxsIHRoZSBwYWNrYWdlIHZpYSBjb21wb3NlcjoKCmBgYGJhc2gKY29tcG9zZXIgcmVxdWlyZSAtLWRldiBjYW52dXJhbC9waHAtb3BlbmFwaS1mYWtlcgpgYGAKCiMjIFVzYWdlCgpGaXJzdCB5b3UgbmVlZCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE9wZW5BUElGYWtlcmAgd2l0aCB5b3VyIHNjaGVtYSB0aGF0IHlvdSB3YW50IHRvIGZha2UgZGF0YSBmcm9tLiBZb3UgY2FuIHVzZSBgY3JlYXRlRnJvbUpzb25gLCBgY3JlYXRlRnJvbVlhbWxgIG9yIGBjcmVhdGVGcm9tU2NoZW1hYCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE9wZW5BUElGYWtlcmAuCmBgYHBocAokZmFrZXIgPSBcVnVyYWxcT3BlbkFQSUZha2VyXE9wZW5BUElGYWtlcjo6Y3JlYXRlRnJvbUpzb24oJHlvdXJTY2hlbWFBc0pzb24pOwpgYGAKClRoZW4geW91IGNhbiB1c2UgYG1vY2tSZXNwb25zZWAsIGBtb2NrUmVzcG9uc2VGb3JFeGFtcGxlYCwgYG1vY2tSZXF1ZXN0YCwgYG1vY2tSZXF1ZXN0Rm9yRXhhbXBsZWAsIGBtb2NrQ29tcG9uZW50U2NoZW1hYCBhbmQgYG1vY2tDb21wb25lbnRTY2hlbWFGb3JFeGFtcGxlYCBtZXRob2RzIG9uIGl0IHRvIGdlbmVyYXRlIGZha2UgZGF0YSBmb3IgeW91ciByZXF1ZXN0cywgcmVzcG9uc2VzIGFuZCBzY2hlbWFzLiBMaWtlIHNvOgoKYGBgcGhwCiRmYWtlRGF0YSA9ICRmYWtlci0+bW9ja1Jlc3BvbnNlKCcvdG9kb3MnLCdHRVQnKTsKYGBgCgojIyMgT3B0aW9ucwoKVGhlcmUgYXJlIHNvbWUgb3B0aW9ucyB5b3UgY2FuIHVzZSB0byBtb2RpZnkgc29tZSBiZWhhdmlvdXIuIFlvdSBjYW4gcGFzcyBvcHRpb25zIGFzIGFuIGFzc29jaWF0aXZlIGFycmF5IHRvIGBzZXRPcHRpb25zYCBtZXRob2QgaW4gYE9wZW5BUElGYWtlcmAuIEZvciBleGFtcGxlOgoKYGBgcGhwCiRmYWtlciA9IFxWdXJhbFxPcGVuQVBJRmFrZXJcT3BlbkFQSUZha2VyOjpjcmVhdGVGcm9tSnNvbigkeW91clNjaGVtYUFzSnNvbikKICAgIC0+c2V0T3B0aW9ucyhbJ21pbkl0ZW1zJyA9PiA1XSk7CmBgYAoKQmVsb3cgeW91IGNhbiBmaW5kIGV4cGxhbmF0aW9uIGZvciBlYWNoIG9wdGlvbi4KCiMjIyMgYG1pbkl0ZW1zYApPdmVycmlkZXMgYG1pbkl0ZW1zYCBwcm9wZXJ0eSBpZiBpdCdzIGxlc3MgdGhhbiB0aGlzIHZhbHVlLgoKIyMjIyBgbWF4SXRlbXNgCk92ZXJyaWRlIGBtYXhJdGVtc2AgaWYgaXQncyBncmVhdGVyIHRoYW4gdGhpcyB2YWx1ZS4KCiMjIyBgYWx3YXlzRmFrZU9wdGlvbmFsc2AKCklmIGVuYWJsZWQsIGV2ZXJ5IHByb3BlcnR5IG9yIGl0ZW0gd2lsbCBiZSBnZW5lcmF0ZWQgcmVnYXJkbGVzcyBpZiB0aGV5IGFyZSByZXF1aXJlZCBvciBub3QuICoqRGVmYXVsdCoqOiBgZmFsc2VgCgojIyMgYHN0cmF0ZWd5YApCeSBkZWZhdWx0LCBgT3BlbkFQSUZha2VyYCB1c2VzIGEgZHluYW1pYyBnZW5lcmF0aW9uIHN0cmF0ZWd5LiBZb3UgY2FuIGVuYWJsZSB0aGUgc3RhdGljIGV4YW1wbGVzIGdlbmVyYXRpb24gYnkgdXNpbmcgdGhlIGBzdGF0aWNgIHN0cmF0ZWd5LgoqKkRlZmF1bHQqKjogYGR5bmFtaWNgCgojIyBDaGFuZ2Vsb2cKClBsZWFzZSBzZWUgW0NIQU5HRUxPR10oQ0hBTkdFTE9HLm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGF0IGhhcyBjaGFuZ2VkIHJlY2VudGx5LgoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2Ugc2VlIFtDT05UUklCVVRJTkddKENPTlRSSUJVVElORy5tZCkgZm9yIGRldGFpbHMuCgojIyBDcmVkaXRzCgpQZW9wbGU6Ci0gW0NhbiBWdXJhbF0oaHR0cHM6Ly9naXRodWIuY29tL2NhbnZ1cmFsKQotIFtBbGwgQ29udHJpYnV0b3JzXSguLi8uLi9jb250cmlidXRvcnMpCgpSZXNvdXJjZXM6Ci0gW2NlYmUvcGhwLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9jZWJlL3BocC1vcGVuYXBpKQotIFtsZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3RoZXBocGxlYWd1ZS9vcGVuYXBpLXBzcjctdmFsaWRhdG9yKQoKIyMgTGljZW5zZQoKVGhlIE1JVCBMaWNlbnNlIChNSVQpLiBQbGVhc2Ugc2VlIFtMaWNlbnNlIEZpbGVdKExJQ0VOU0UubWQpIGZvciBtb3JlIGluZm9ybWF0aW9uLgo= readmeEtag: '"f6d07df0eec133990026e724552ba3c346d964ad"' readmeLastModified: Sun, 07 May 2023 08:42:23 GMT repositoryId: 271818243 description: Library to generate fake data for OpenAPI request/response/schemas created: '2020-06-12T14:31:49Z' updated: '2024-06-13T03:43:51Z' language: PHP archived: false stars: 93 watchers: 5 forks: 2 owner: canvural logo: https://avatars.githubusercontent.com/u/1574232?v=4 license: MIT repoEtag: '"28e72d0f78585720b664905bcc5d72580e12f0e0df9b8ab41a297e7772ea11be"' repoLastModified: Thu, 13 Jun 2024 03:43:51 GMT foundInMaster: true id: 4fdfc8e7383c27745a0bff820fab179e category: Parsers - source: https://openapi.tools/ name: OWASP ZAP category: - Security - SDK language: Java repository: https://github.com/zaproxy/zaproxy source_description: >- OWASP ZAP is a free and open source web security tool that can be used manually or completely automated. It supports importing OpenAPI v2 and v3 definitions to allow an API to be thoroughly security tested. link: https://www.zaproxy.org/ v2: true v3: true repositoryMetadata: base64Readme: >- IyBbIVtdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS93aWtpL3phcHJveHkvemFwcm94eS9pbWFnZXMvemFwMzJ4MzIucG5nKSBaQVBdKGh0dHBzOi8vd3d3LnphcHJveHkub3JnKQpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtQXBhY2hlJTIwMi00RUIxQkEuc3ZnKV0oaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC5odG1sKQpbIVtHaXRIdWIgcmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvcmVsZWFzZS96YXByb3h5L3phcHJveHkuc3ZnKV0oaHR0cHM6Ly93d3cuemFwcm94eS5vcmcvZG93bmxvYWQvKQpbIVtKYXZhIENJXShodHRwczovL2dpdGh1Yi5jb20vemFwcm94eS96YXByb3h5L2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vemFwcm94eS96YXByb3h5L2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCkKWyFbQ0lJIEJlc3QgUHJhY3RpY2VzXShodHRwczovL2Jlc3RwcmFjdGljZXMuY29yZWluZnJhc3RydWN0dXJlLm9yZy9wcm9qZWN0cy8yNC9iYWRnZSldKGh0dHBzOi8vYmVzdHByYWN0aWNlcy5jb3JlaW5mcmFzdHJ1Y3R1cmUub3JnL3Byb2plY3RzLzI0KQpbIVtHaXRodWIgUmVsZWFzZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2Rvd25sb2Fkcy96YXByb3h5L3phcHJveHkvbGF0ZXN0L3RvdGFsLnN2Zz9tYXhBZ2U9MjU5MjAwMCldKGh0dHBzOi8vemFwYm90LmdpdGh1Yi5pby96YXAtbWdtdC1zY3JpcHRzL2Rvd25sb2Fkcy5odG1sKQpbIVtqYXZhZG9jXShodHRwczovL2phdmFkb2MuaW8vYmFkZ2UyL29yZy56YXByb3h5L3phcC9qYXZhZG9jLnN2ZyldKGh0dHBzOi8vamF2YWRvYy5pby9kb2Mvb3JnLnphcHJveHkvemFwKQpbIVtDb2RlUUxdKGh0dHBzOi8vZ2l0aHViLmNvbS96YXByb3h5L3phcHJveHkvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vemFwcm94eS96YXByb3h5L2FjdGlvbnMvd29ya2Zsb3dzL2NvZGVxbC55bWwpClshW1F1YWxpdHkgR2F0ZSBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXphcHJveHlfemFwcm94eSZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD16YXByb3h5X3phcHJveHkpClshW09wZW4gU291cmNlIEhlbHBlcnNdKGh0dHBzOi8vd3d3LmNvZGV0cmlhZ2UuY29tL3phcHJveHkvemFwcm94eS9iYWRnZXMvdXNlcnMuc3ZnKV0oaHR0cHM6Ly93d3cuY29kZXRyaWFnZS5jb20vemFwcm94eS96YXByb3h5KQpbIVtUd2l0dGVyIEZvbGxvd10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy96YXByb3h5LnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93Jm1heEFnZT0yNTkyMDAwKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS96YXByb3h5KQoKIVtJbnRlZ3JhdGlvbiBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL3phcHJveHkvemFwcm94eS9hY3Rpb25zL3dvcmtmbG93cy9ydW4taW50ZWdyYXRpb24tdGVzdHMueW1sL2JhZGdlLnN2ZykKIVtEb2NrZXIgTGl2ZSBSZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vemFwcm94eS96YXByb3h5L2FjdGlvbnMvd29ya2Zsb3dzL3JlbGVhc2UtbGl2ZS1kb2NrZXIueW1sL2JhZGdlLnN2ZykKClRoZSBaZWQgQXR0YWNrIFByb3h5IChaQVApIGlzIG9uZSBvZiB0aGUgd29ybGTigJlzIG1vc3QgcG9wdWxhciBmcmVlIHNlY3VyaXR5IHRvb2xzIGFuZCBpcyBhY3RpdmVseSBtYWludGFpbmVkIGJ5IGEgZGVkaWNhdGVkIGludGVybmF0aW9uYWwgdGVhbSBvZiB2b2x1bnRlZXJzLiBJdCBjYW4gaGVscCB5b3UgYXV0b21hdGljYWxseSBmaW5kIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcyBpbiB5b3VyIHdlYiBhcHBsaWNhdGlvbnMgd2hpbGUgeW91IGFyZSBkZXZlbG9waW5nIGFuZCB0ZXN0aW5nIHlvdXIgYXBwbGljYXRpb25zLiBJdCdzIGFsc28gYSBncmVhdCB0b29sIGZvciBleHBlcmllbmNlZCBwZW50ZXN0ZXJzIHRvIHVzZSBmb3IgbWFudWFsIHNlY3VyaXR5IHRlc3RpbmcuCgoKWyFbXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vd2lraS96YXByb3h5L3phcHJveHkvaW1hZ2VzL1pBUC1Eb3dubG9hZC5wbmcpXShodHRwczovL3d3dy56YXByb3h5Lm9yZy9kb3dubG9hZC8pCgpGb3IgbW9yZSBkZXRhaWxzIGFib3V0IFpBUCBzZWUgdGhlIG5ldyBaQVAgd2Vic2l0ZSBhdCBbemFwcm94eS5vcmddKGh0dHBzOi8vd3d3LnphcHJveHkub3JnLykKClshW10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvemFwcm94eS96YXByb3h5L2ltYWdlcy96YXAtd2Vic2l0ZS5wbmcpXShodHRwczovL3d3dy56YXByb3h5Lm9yZy8pCg== readmeEtag: '"36e52cb54a757efd3ecad69c3d01f1fd373aa57a"' readmeLastModified: Fri, 16 Aug 2024 14:56:22 GMT repositoryId: 36817565 description: The ZAP core project created: '2015-06-03T16:55:01Z' updated: '2024-09-06T00:20:21Z' language: Java archived: false stars: 12477 watchers: 395 forks: 2228 owner: zaproxy logo: https://avatars.githubusercontent.com/u/6716868?v=4 license: Apache-2.0 repoEtag: '"4c2770423b4ddf4d4ef3a6638d39e606f092d771eafc918c98ae4ca022a8b279"' repoLastModified: Fri, 06 Sep 2024 00:20:21 GMT foundInMaster: true id: 9eedc1be44837a65f912bcf562844f39 - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/oxlip-lang/oal v3: true id: fd805efb152540f08abf74a1601a5da0 repositoryMetadata: base64Readme: >- IVtCdWlsZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvb3hsaXAtbGFuZy9vYWwvY2kueW1sP2JyYW5jaD1tYXN0ZXIpClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1BcGFjaGVfMi4wLWJsdWUuc3ZnKV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wKQoKIyBUaGUgT3hsaXAgQVBJIExhbmd1YWdlCk94bGlwIGlzIGEgaGlnaC1sZXZlbCBmdW5jdGlvbmFsIHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciBkZXNpZ25pbmcgW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy93aGF0LWlzLW9wZW5hcGkpIGRlZmluaXRpb25zLgpBcyBhbiBbSW50ZXJmYWNlIERlc2NyaXB0aW9uIExhbmd1YWdlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JbnRlcmZhY2VfZGVzY3JpcHRpb25fbGFuZ3VhZ2UpLCBpdCBpcyBub3QgZ2VuZXJhbCBwdXJwb3NlLgpUaGUgbW90aXZhdGlvbiBpcyB0byBhbGxldmlhdGUgdGhlIHBhaW4gb2YgbWFuYWdpbmcgT3BlbkFQSSBpbiBKU09OIG9yIFlBTUwgYnkgaGFuZCBhbmQgYXQgc2NhbGUuCk94bGlwIGRlZmluZXMgYWxnZWJyYWljIGFic3RyYWN0aW9ucyBvdmVyIFtSRVNUXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SZXByZXNlbnRhdGlvbmFsX3N0YXRlX3RyYW5zZmVyKSBjb25jZXB0cywgbm90IHRvbyBkaXNzaW1pbGFyIHRvIFtTYXNzL1NDU1Mgb3ZlciBDU1NdKGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS8pLgoKVGhlcmUgYXJlIHByb3MgYW5kIGNvbnMgdG8gYm90aCBfQVBJLWRlc2lnbi1maXJzdF8gYW5kIE9wZW5BUEkgZ2VuZXJhdGVkIGZyb20gaW1wbGVtZW50YXRpb24uCkFzIE9wZW5BUEkgaXMgYmV0dGVyIHByb2R1Y2VkIG9yIGNvbnN1bWVkIGJ5IG1hY2hpbmVzIHJhdGhlciB0aGFuIGh1bWFucywgT3hsaXAgdHJpZXMgdG8gaGVscCBfQVBJLWRlc2lnbi1maXJzdF8gdGVhbXMgd2l0aCBiZXR0ZXIgdG9vbGluZy4KCiMjIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5veGxpcC1sYW5nLm9yZy8pCgojIyBbUGxheWdyb3VuZF0oaHR0cHM6Ly9veGxpcC1sYW5nLmdpdGh1Yi5pby9veGxpcC1wbGF5Z3JvdW5kKQoKIyMgSW5zdGFsbGF0aW9uClRoaXMgc3RlcCByZXF1aXJlcyBhIFtsb2NhbCBSdXN0IGFuZCBDYXJnbyBpbnN0YWxsYXRpb25dKGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvY2FyZ28vZ2V0dGluZy1zdGFydGVkL2luc3RhbGxhdGlvbi5odG1sKS4KCmBgYAptYWtlIGluc3RhbGwKYGBgCk9wdGlvbmFsOiBhIFtWU0NvZGUgbGFuZ3VhZ2UgZXh0ZW5zaW9uXShodHRwczovL2dpdGh1Yi5jb20vb3hsaXAtbGFuZy9vYWwtdnNjb2RlKSBpcyBhdmFpbGFibGUgZm9yIHN5bnRheCBoaWdobGlnaHRpbmcgYW5kIElERSBjYXBhYmlsaXRpZXMuCgojIyBVc2FnZQpgYGAKICAgIG9hbC1jbGkgW09QVElPTlNdCgpPUFRJT05TOgogICAgLWIsIC0tYmFzZSA8QkFTRT4gICAgICAgIFRoZSByZWxhdGl2ZSBVUkwgdG8gYSBiYXNlIE9wZW5BUEkgZGVzY3JpcHRpb24KICAgIC1jLCAtLWNvbmYgPENPTkZJRz4gICAgICBUaGUgcGF0aCB0byB0aGUgY29uZmlndXJhdGlvbiBmaWxlCiAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgUHJpbnQgaGVscCBpbmZvcm1hdGlvbgogICAgLW0sIC0tbWFpbiA8TUFJTj4gICAgICAgIFRoZSByZWxhdGl2ZSBVUkwgdG8gdGhlIG1haW4gcHJvZ3JhbQogICAgLXQsIC0tdGFyZ2V0IDxUQVJHRVQ+ICAgIFRoZSByZWxhdGl2ZSBVUkwgdG8gdGhlIHRhcmdldCBPcGVuQVBJIGRlc2NyaXB0aW9uCmBgYAoKIyMjIENvbXBpbGluZyB0aGUgZXhhbXBsZSBwcm9ncmFtCmBgYApvYWwtY2xpIC0tY29uZiBleGFtcGxlcy9vYWwudG9tbApgYGAKCiMjIEV4cGVyaW1lbnRhbDogV2ViQXNzZW1ibHkgc3VwcG9ydApSZWxlYXNlIHRvIFdlYkFzc2VtYmx5IHJlcXVpcmVzIHRoZSBpbnN0YWxsYXRpb24gb2YgW2B3YXNtLXBhY2tgXShodHRwczovL3J1c3R3YXNtLmdpdGh1Yi5pby93YXNtLXBhY2svaW5zdGFsbGVyLykuCgpgYGAKbWFrZSB3YXNtCmBgYA== readmeEtag: '"e4083bdd30e501dd47c14c5a41b6cc7bea2b8257"' readmeLastModified: Sun, 28 Jan 2024 10:24:11 GMT repositoryId: 425256008 description: A high-level language for OpenAPI created: '2021-11-06T13:50:41Z' updated: '2024-08-01T17:05:16Z' language: Rust archived: false stars: 25 watchers: 3 forks: 2 owner: oxlip-lang logo: https://avatars.githubusercontent.com/u/143259218?v=4 license: Apache-2.0 repoEtag: '"59dafacd33bc5ce7dc758a68373d387a77cf55982a2d40ed5322318ef0bb0c67"' repoLastModified: Thu, 01 Aug 2024 17:05:16 GMT category: - DSL - Parsers foundInMaster: true name: Oxlip API Language link: https://www.oxlip-lang.org/ language: OAL source_description: > Oxlip is a high-level functional programming language for designing OpenAPI definitions. It defines algebraic abstractions over REST concepts to alleviate the pain of managing OpenAPI in JSON or YAML by hand and at scale. v2: false v3_1: false - source: https://openapi.tools/ name: OpenAPI3 Fuzzer category: - Security - Server Implementations link: https://pypi.org/project/openapi3-fuzzer/ repository: https://github.com/vwt-digital/openapi3-fuzzer/tree/master language: Python source_description: >- Simple fuzzer for OpenAPI 3 specification based APIs. Verifies responses and sends various attack patterns. v3: true repositoryMetadata: base64Readme: >- IyBTaW1wbGUgZnV6emVyIGZvciBPcGVuQVBJIDMgc3BlY2lmaWNhdGlvbiBiYXNlZCBBUElzCgojIyBXaGF0IGRvZXMgdGhpcyBmdXp6ZXIgZG8/CgoxLiBTZW5kcyB2YXJpb3VzIGF0dGFjayBwYXR0ZXJucyB0byBhbGwgdGhlIHBhdGhzIGRlZmluZWQgaW4gYW4gT3BlbkFQSSAzIGRlZmluaXRpb24gZmlsZSwgdXNpbmcgdGhlIE9BUzMgZGVmaW5pdGlvbiB0byBjcmVhdGUgcG9wdWxhdGUgcmVxdWVzdHMuCjIuIFZlcmlmaWVzIGlmIHRoZSByZXNwb25zZXMgbWF0Y2hlcyB0aG9zZSBkZWZpbmVkIGluIHRoZSBPQVMzIGRlZmluaXRpb24gZmlsZSwgY29tcGxhaW5zIGFuZCBleGl0KDIpIGlmIGl0IGRvZXNuJ3QuCjMuIENvbXBsYWlucyBsb3VkbHkgYW5kIGV4aXQoMSkgaWYgYSBwYXRoIHJldHVybnMgYW4gaW50ZXJuYWwgc2VydmVyIGVycm9yIChzdGF0dXMgY29kZSA1MDAgYW5kIGhpZ2hlcikKCiMjIFdoeSBkb2VzIHRoaXMgT3BlbkFQSSBmdXp6ZXIgZXhpc3Q/CgpUbyBtYWtlIGl0IGVhc3kgdG8gaW50ZWdyYXRlIGFuIE9wZW5BUEkgMyBmdXp6ZXIgaW4gYW4gZXhpc3RpbmcgQVBJLgoKIyMgSG93IGRvIEkgdXNlIHRoaXM/CgoxLiBJbnN0YWxsIHRoZSBmdXp6ZXIgdXNpbmcgaXRzIFtwaXAgcGFja2FnZV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L29wZW5hcGkzLWZ1enplci8pCjIuIEFkZCBhdCBsZWFzdCB0aGUgZm9sbG93aW5nIHBhY2thZ2VzIHRvIHJlcXVpcmVtZW50cy10ZXN0LnR4dDoKYGBgYHB5dGhvbgpjb3ZlcmFnZT09NS4wLjMKb3BlbmFwaTMtZnV6emVyCmFkYWw9PTEuMi4yCkZsYXNrLVRlc3Rpbmc9PTAuNy4xCmBgYGAKMy4gR2VuZXJhdGUgT3BlbkFQSSAoaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKNC4gQ3JlYXRlIGEgdGVzdF9mdXp6aW5nIGZpbGUgaW4gdGhlIHRlc3QgbG9jYXRpb24gdXNpbmcgdGhlIHRlbXBsYXRlIGJlbG93OgpgYGBgcHl0aG9uCmltcG9ydCBhZGFsCgppbXBvcnQgY29uZmlnCmZyb20gb3BlbmFwaTNfZnV6emVyIGltcG9ydCBGdXp6SXQKZnJvbSBvcGVuYXBpX3NlcnZlci50ZXN0IGltcG9ydCBCYXNlVGVzdENhc2UKCgpkZWYgZ2V0X3Rva2VuKCk6CiAgICAiIiIKICAgIENyZWF0ZSBhIHRva2VuIGZvciB0ZXN0aW5nCiAgICA6cmV0dXJuOgogICAgIiIiCiAgICBvYXV0aF9leHBlY3RlZF9hdXRoZW50aWNhdG9yID0gYXV0aGVudGljYXRvcnVyaQogICAgY2xpZW50X2lkID0gYXBwaWQKICAgIGNsaWVudF9zZWNyZXQgPSBzZWNyZXQKICAgIHJlc291cmNlID0gcmVzb3VyY2UvYXVkaWVuY2UKCiAgICAjIGdldCBhbiBBenVyZSBhY2Nlc3MgdG9rZW4gdXNpbmcgdGhlIGFkYWwgbGlicmFyeQogICAgY29udGV4dCA9IGFkYWwuQXV0aGVudGljYXRpb25Db250ZXh0KG9hdXRoX2V4cGVjdGVkX2F1dGhlbnRpY2F0b3IpCiAgICB0b2tlbl9yZXNwb25zZSA9IGNvbnRleHQuYWNxdWlyZV90b2tlbl93aXRoX2NsaWVudF9jcmVkZW50aWFscygKICAgICAgICByZXNvdXJjZSwgY2xpZW50X2lkLCBjbGllbnRfc2VjcmV0KQoKICAgIGFjY2Vzc190b2tlbiA9IHRva2VuX3Jlc3BvbnNlLmdldCgnYWNjZXNzVG9rZW4nKQogICAgcmV0dXJuIGFjY2Vzc190b2tlbgoKCmNsYXNzIFRlc3R2QVBJKEJhc2VUZXN0Q2FzZSk6CgogICAgZGVmIHRlc3RfZnV6emluZyhzZWxmKToKICAgICAgICBGdXp6SXQoIm9wZW5hcGkueWFtbCIsIGdldF90b2tlbigpLCBzZWxmKQoKYGBgYAo1LiBSdW4gdXNpbmcgb3VyIFt1bml0dGVzdCBjb250YWluZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS92d3QtZGlnaXRhbC9jbG91ZGJ1aWxkZXItdW5pdHRlc3QpIG9yIHZpYSB0aGUgW1B5dGhvbiBVbml0dGVzdCBGcmFtZXdvcmtdKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1sKQoKIyMgV2hhdCBPQVMzIGl0ZW1zIGFyZSBzdXBwb3J0ZWQ/CgpCYXNlZCBvbiBbT3BlbkFQSSBzcGVjaWZpY2F0aW9uIDMuMC4yXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCk6CgpPcGVyYXRpb24gfCBTdXBwb3J0ZWQKLS0tLS0tLS0tLXwtLS0tLS0tLS0tCkdFVCAgICAgICB8IFllcwpQT1NUICAgICAgfCBZZXMKUFVUICAgICAgIHwgWWVzCkRFTEVURSAgICB8IFllcwpIRUFEICAgICAgfCBZZXMKT1BUSU9OUyAgIHwgbm8KUEFUQ0ggICAgIHwgbm8KVFJBQ0UgICAgIHwgbm8KClBhcmFtZXRlciBpbiB8IFN1cHBvcnRlZAotLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0KcGF0aCAgICAgICAgIHwgWWVzCnF1ZXJ5ICAgICAgICB8IG5vCmhlYWRlciAgICAgICB8IG5vCmNvb2tpZSAgICAgICB8IG5vCgpQcm9wZXJ0eSB0eXBlcyB8IFN1cHBvcnRlZAotLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLQpzdHJpbmcgICAgICAgICB8IFllcwppbnRlZ2VyICAgICAgICB8IFllcwpudW1iZXIgICAgICAgICB8IFllcwphcnJheSAgICAgICAgICB8IFllcwpub25lICAgICAgICAgICB8IFllcwpib29sZWFuICAgICAgICB8IG5vCgojIyBFeGFtcGxlIG91dHB1dAoKSW50ZXJuYWwgc2VydmVyIGVycm9yOgoKYGBgYApHRVQgZnV6emluZyAvbWFuYWdlcnMvZXhwZW5zZXMve2V4cGVuc2VzX2lkfS9hdHRhY2htZW50cwoKKiBJTlRFUk5BTCBTRVJWRVIgRVJST1IKICBFbmRwb2ludCByZXR1cm5lZCA1MDAgYnV0IGV4cGVjdGVkIG9uZSBvZiBbMjAwXQogIEdFVCBodHRwczovL2Rldi5teWFwaS5leGFtcGxlL21hbmFnZXJzL2V4cGVuc2VzLzk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5L2F0dGFjaG1lbnRzCmBgYGAKClJlc3BvbnNlIGRvZXNuJ3QgY29uZm9ybSB0byB0aGUgT0FTMyBzcGVjOgoKYGBgYAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpHRVQgZnV6emluZyAvZW1wbG95ZWVzL2V4cGVuc2VzL3tleHBlbnNlc19pZH0KCi0gVW5leHBlY3RlZCBzdGF0dXMgY29kZQogIEVuZHBvaW50IHJldHVybmVkIDQwNCBidXQgZXhwZWN0ZWQgb25lIG9mIFsyMDAsICdkZWZhdWx0J10KICBHRVQgaHR0cHM6Ly9kZXYubXlhcGkuZXhhbXBsZS9lbXBsb3llZXMvZXhwZW5zZXMvKSQjKioqXgpgYGBgCgpgYGBgClBPU1QgZnV6emluZyAvZW1wbG95ZWVzL2V4cGVuc2VzL3tleHBlbnNlc19pZH0KCi0gVW5leHBlY3RlZCBzdGF0dXMgY29kZQogIEVuZHBvaW50IHJldHVybmVkIDQwMCBidXQgZXhwZWN0ZWQgb25lIG9mIFsyMDEsICdkZWZhdWx0J10KICBQT1NUIGh0dHBzOi8vZGV2Lm15YXBpLmV4YW1wbGUvZW1wbG95ZWVzL2V4cGVuc2VzCnsKICAgICJhbW91bnQiOiAiMTIzIiwKICAgICJjb3N0X3R5cGUiOiAiMTIzIiwKICAgICJub3RlIjogIjtzbGVlcCAxMCIsCiAgICAidHJhbnNhY3Rpb25fZGF0ZSI6ICIxMjMiCn0KYGBgYAojIyBDb250cmlidXRvcnMKQSBzcGVjaWFsIHRoYW5rcyB0byB0aGUgY29udHJpYnV0b3JzIG91dHNpZGUgb2YgVldUIERpZ2l0YWwuCnxOYW1lfENvbnRyaWJ1dGlvbnwKfC0tLXwtLS18CnxbSm9ycml0IEZvbG1lcl0oaHR0cHM6Ly9naXRodWIuY29tL2pvcnJpdGZvbG1lcil8U3RhcnRlZCB0aGUgcHJvamVjdCBhbmQgY3JlYXRlZCBhIGJhc2UgZm9yIHRoZSBmdXp6ZXIufAojIyBMSUNFTlNFCgpHUEwzCg== readmeEtag: '"ab9290c2f3d5444830a630b4149fbd23f70a443e"' readmeLastModified: Thu, 22 Jul 2021 15:59:51 GMT repositoryId: 244578763 description: Simple fuzzer for OpenAPI 3 specification based APIs created: '2020-03-03T08:15:47Z' updated: '2024-05-15T08:59:20Z' language: Python archived: false stars: 21 watchers: 4 forks: 4 owner: vwt-digital logo: https://avatars.githubusercontent.com/u/51355845?v=4 license: GPL-3.0 repoEtag: '"3d8a411162a37762315d627b4db2f977bee00a5dd5c863252d702ef2fe070959"' repoLastModified: Wed, 15 May 2024 08:59:20 GMT foundInMaster: true id: f357b9cac35c5789bafaa767f4fc3b50 - source: https://openapi.tools/ name: vREST NG category: Testing language: JavaScript link: https://ng.vrest.io repository: null source_description: >- vREST NG is a simple and powerful application for API Automation. It Allows to use OpenAPI specification into vREST NG to drive your API testing that validates the API responses against JSON Schema and also provides powerful response validation capabilities. v2: true v3: true foundInMaster: true id: ea2266de94cddafe3121aac607d00ec7 - source: https://openapi.tools/ name: openapi-validator-bundle category: - Data Validators - Parsers repository: https://github.com/cydrickn/openapi-validator-bundle language: PHP source_description: Validates Request and Response using Symfony Framework v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQXBpIFZhbGlkYXRvciBCdW5kbGUKClN5bWZvbnkgQnVuZGxlIGZvciB2YWxpZGF0aW5nIFJlcXVlc3QgYW5kIFJlc3BvbnNlIGJhc2VkIG9uIFtvcGVuIGFwaSBzcGVjaWZpY2F0aW9uXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIDMuCgojIyMgUmVxdWlyZW1lbnRzCgotIFN5bWZvbnkgPj0gNQotIFBIUCA+PSA3LjQKLSBQSFAgRXh0ZW5zaW9uIEpTT04KCiMjIyMgT3B0aW9uYWwKCi0gbmVsbWlvL2FwaS1kb2MtYnVuZGxlID49IDQuMCAoQ3VycmVudGx5IGluIEJldGEpCiAgICAtIFdoeSA0LjAsIHZlcnNpb24gMyBhbmQgYmVsb3cgb25seSBzdXBwb3J0cyB2ZXJzaW9uIDIgb2YgT3BlbkFQSSBTcGVjaWZpY2F0aW9uLgoKCiMjIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKY29tcG9zZXIgcmVxdWlyZSBjeWRyaWNrbi9vcGVuYXBpLXZhbGlkYXRvci1idW5kbGUKYGBgCgojIyMjIFNldHRpbmcgVXAKCkFkZCB0aGUgYnVuZGxlIGluIHlvdXIgYGNvbmZpZy9idW5kbGVzLnBocGAKCmBgYHBocAo8P3BocAoKcmV0dXJuIFsKICAgIC8vIC4uLgogICAgQ3lkcmlja25cT3BlbkFwaVZhbGlkYXRvckJ1bmRsZVxDeWRyaWNrbk9wZW5BcGlWYWxpZGF0b3JCdW5kbGU6OmNsYXNzID0+IFsnYWxsJyA9PiB0cnVlXSwKXTsKYGBgCgpBZGQgY29uZmlndXJhdGlvbiBgY29uZmlnL3BhY2thZ2VzL2N5ZHJpY2tuX29wZW5hcGlfdmFsaWRhdG9yLnltbGAKYGBgeWFtbApjeWRyaWNrbl9vcGVuX2FwaV92YWxpZGF0b3I6CiAgICB2YWxpZGF0ZV9yZXF1ZXN0OiB0cnVlCiAgICB2YWxpZGF0ZV9yZXNwb25zZTogdHJ1ZQogICAgc2NoZW1hOgogICAgICBmYWN0b3J5OiB5YW1sLWZpbGUKICAgICAgZmlsZTogJWtlcm5lbC5wcm9qZWN0X2RpciUvY29uZmlnL29wZW5hcGkvc3BlYy55YW1sCmBgYAoKIyMjIyBDb25maWd1cmF0aW9ucwoKfENvbmZpZyAgICAgICAgICAgfFR5cGUgICB8UmVxdWlyZWR8QWNjZXB0ZWQgVmFsdWUgICAgICAgICAgICAgICAgfERlZmF1bHQgIHxEZXNjcmlwdGlvbnwKfC0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLXwKfHZhbGlkYXRlX3JlcXVlc3QgfEJvb2xlYW58WWVzICAgICB8dHJ1ZSBvciBmYWxzZSAgICAgICAgICAgICAgICAgfHRydWUgICAgIHxFbmFibGUgdmFsaWRhdGluZyBvZiByZXF1ZXN0fAp8dmFsaWRhdGVfcmVzcG9uc2V8Qm9vbGVhbnxZZXMgICAgIHx0cnVlIG9yIGZhbHNlICAgICAgICAgICAgICAgICB8dHJ1ZSAgICAgfEVuYWJsZSB2YWxpZGF0aW5nIG9mIHJlc3BvbnNlfAp8c2NoZW1hLmZhY3RvcnkgICB8U3RyaW5nIHxZZXMgICAgIHx5YW1sLWZpbGUsIGpzb24tZmlsZSBvciBuZWxtaW98eWFtbC1maWxlfEZhY3RvcnkgdG8gdXNlIHRvIGdlbmVyYXRlIHRoZSBzY2hlbWEgZm9yIHZhbGlkYXRpb258CnxzY2hlbWEuZmlsZSAgICAgIHxTdHJpbmcgfFJlcXVpcmVkIG9ubHkgZm9yIHlhbWwtZmlsZSBhbmQganNvbi1maWxlfHx8RmlsZSBwYXRoIG9mIHRoZSBzcGVjaWZpY2F0aW9ufAoKIyMjIFRPRE8KCi0gW3hdIEFkZCBOZWxtaW8gQXBpIFNjaGVtYSBGYWN0b3J5Ci0gW3hdIEFkZCBEeW5hbWljIENvbmZpZ3VyYXRpb24KLSBbeF0gQWRkIGRvY3VtZW50Ci0gWyBdIEFkZCBSb3V0ZSBTY2hlbWEgRmFjdG9yeQotIFsgXSBBZGQgUEhQIGZpbGUgU2NoZW1hIEZhY3RvcnkKLSBbIF0gQ29kZSBjb3ZlcmFnZSBvZiAxMDAlCi0gWyBdIEFkZCBDSQotIFsgXSBTdXBwb3J0IExvd2VyIFBIUCBWZXJzaW9uID49IDcuMQotIFsgXSBTdXBwb3J0IExvd2VyIFN5bWZvbnkgVmVyc2lvbiA+PSAzCg== readmeEtag: '"e050dcb00429047d02dfb59bab01327330eccf73"' readmeLastModified: Thu, 20 Jan 2022 14:37:40 GMT repositoryId: 284669411 description: >- Symfony Bundle for validating Request and Response base on open api specification. created: '2020-08-03T10:21:26Z' updated: '2024-06-07T17:54:04Z' language: PHP archived: false stars: 13 watchers: 1 forks: 6 owner: cydrickn logo: https://avatars.githubusercontent.com/u/6417652?v=4 repoEtag: '"c153458a2dc1cc16d490fd13a624de9e235a2f2fbcfe225e1e1d7bee8fb8b097"' repoLastModified: Fri, 07 Jun 2024 17:54:04 GMT foundInMaster: true id: 70d091df07cce505a35dbd6fa1789796 - source: https://openapi.tools/ name: Goa category: DSL language: Go source_description: >- Goa provides a holistic approach for developing remote APIs and microservices in Go. implementers don't have to worry about the documentation getting out of sync as Goa takes care of generating OpenAPI specifications for HTTP based services and gRPC protocol buffer files for gRPC based services link: https://goa.design v2: true v3: true foundInMaster: true id: bda876c6645d589b7595411a464db1c3 - source: - https://openapi.tools/ - openapi3 tags name: OpenAPI HttpFoundation Testing category: Data Validators language: PHP source_description: >- Validate your HttpFoundation requests and responses (Symfony, Laravel, Drupal...) against OpenAPI definitions repository: https://github.com/osteel/openapi-httpfoundation-testing v2: false v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEh0dHBGb3VuZGF0aW9uIFRlc3RpbmcKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL29zdGVlbC9waHAtY2xpLWRlbW8vd29ya2Zsb3dzL0NJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9vc3RlZWwvcGhwLWNsaS1kZW1vL2FjdGlvbnMpClshW0xhdGVzdCBTdGFibGUgVmVyc2lvbl0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9vc3RlZWwvb3BlbmFwaS1odHRwZm91bmRhdGlvbi10ZXN0aW5nL3YpXSgvL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvb3N0ZWVsL29wZW5hcGktaHR0cGZvdW5kYXRpb24tdGVzdGluZykKWyFbTGljZW5zZV0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9vc3RlZWwvb3BlbmFwaS1odHRwZm91bmRhdGlvbi10ZXN0aW5nL2xpY2Vuc2UpXSgvL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvb3N0ZWVsL29wZW5hcGktaHR0cGZvdW5kYXRpb24tdGVzdGluZykKWyFbRG93bmxvYWRzXShodHRwOi8vcG9zZXIucHVneC5vcmcvb3N0ZWVsL29wZW5hcGktaHR0cGZvdW5kYXRpb24tdGVzdGluZy9kb3dubG9hZHMpXSgvL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvb3N0ZWVsL29wZW5hcGktaHR0cGZvdW5kYXRpb24tdGVzdGluZykKClZhbGlkYXRlIEh0dHBGb3VuZGF0aW9uIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgYWdhaW5zdCBPcGVuQVBJICgzKykgZGVmaW5pdGlvbnMuCgpTZWUgW3RoaXMgcG9zdF0oaHR0cHM6Ly90ZWNoLm9zdGVlbC5tZS9wb3N0cy9vcGVuYXBpLWJhY2tlZC1hcGktdGVzdGluZy1pbi1waHAtcHJvamVjdHMtYS1sYXJhdmVsLWV4YW1wbGUgIk9wZW5BUEktYmFja2VkIEFQSSB0ZXN0aW5nIGluIFBIUCBwcm9qZWN0cyDigJMgYSBMYXJhdmVsIGV4YW1wbGUiKSBmb3IgbW9yZSBkZXRhaWxzIGFuZCBbdGhpcyByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vb3N0ZWVsL29wZW5hcGktaHR0cGZvdW5kYXRpb24tdGVzdGluZy1sYXJhdmVsLWV4YW1wbGUpIGZvciBhbiBleGFtcGxlIHVzZSBpbiBhIExhcmF2ZWwgcHJvamVjdC4KCj4g8J+SoSBXaGlsZSB5b3UgY2FuIHNhZmVseSB1c2UgdGhpcyBwYWNrYWdlIGZvciB5b3VyIHByb2plY3RzLCBhcyBsb25nIGFzIHZlcnNpb24gYDEuMGAgaGFzIG5vdCBiZWVuIHJlbGVhc2VkICJtaW5vciIgdmVyc2lvbiBwYXRjaGVzIGNhbiBjb250YWluIGJyZWFraW5nIGNoYW5nZXMuIE1ha2Ugc3VyZSB0byBjaGVjayB0aGUgW3JlbGVhc2Ugc2VjdGlvbl0oLi4vLi4vcmVsZWFzZXMpIGJlZm9yZSB5b3UgdXBncmFkZS4KCiMjIFdoeT8KCltPcGVuQVBJXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIGlzIGEgc3BlY2lmaWNhdGlvbiBpbnRlbmRlZCB0byBkZXNjcmliZSBSRVNUZnVsIEFQSXMgaW4gYSB3YXkgdGhhdCBjYW4gYmUgdW5kZXJzdG9vZCBieSBib3RoIGh1bWFucyBhbmQgbWFjaGluZXMuCgpCeSB2YWxpZGF0aW5nIGFuIEFQSSdzIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgYWdhaW5zdCB0aGUgT3BlbkFQSSBkZWZpbml0aW9uIHRoYXQgZGVzY3JpYmVzIGl0LCB3ZSBndWFyYW50ZWUgdGhhdCB0aGUgQVBJIGlzIHVzZWQgY29ycmVjdGx5IGFuZCBiZWhhdmVzIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiB3ZSBwcm92aWRlLCB0aHVzIG1ha2luZyB0aGUgT3BlbkFQSSBkZWZpbml0aW9uIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoLgoKVGhlIFtIdHRwRm91bmRhdGlvbiBjb21wb25lbnRdKGh0dHBzOi8vc3ltZm9ueS5jb20vZG9jL2N1cnJlbnQvY29tcG9uZW50cy9odHRwX2ZvdW5kYXRpb24uaHRtbCkgaXMgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIGFzIHBhcnQgb2YgdGhlIFtTeW1mb255IGZyYW1ld29ya10oaHR0cHM6Ly9zeW1mb255LmNvbS8pLiBJdCBpcyB1c2VkIHRvIGhhbmRsZSBIVFRQIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgaW4gcHJvamVjdHMgc3VjaCBhcyBTeW1mb255LCBMYXJhdmVsLCBEcnVwYWwsIGFuZCBbbWFueSBvdGhlcnNdKGh0dHBzOi8vc3ltZm9ueS5jb20vY29tcG9uZW50cy9IdHRwRm91bmRhdGlvbikuCgojIyBIb3cgZG9lcyBpdCB3b3JrPwoKVGhpcyBwYWNrYWdlIGlzIGJ1aWx0IG9uIHRvcCBvZiBbT3BlbkFQSSBQU1ItNyBNZXNzYWdlIFZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3RoZXBocGxlYWd1ZS9vcGVuYXBpLXBzcjctdmFsaWRhdG9yKSwgd2hpY2ggdmFsaWRhdGVzIFtQU1ItNyBtZXNzYWdlc10oaHR0cHM6Ly93d3cucGhwLWZpZy5vcmcvcHNyL3Bzci03LykgYWdhaW5zdCBPcGVuQVBJIGRlZmluaXRpb25zLgoKSXQgY29udmVydHMgSHR0cEZvdW5kYXRpb24gcmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0cyB0byBQU1ItNyBtZXNzYWdlcyB1c2luZyBTeW1mb255J3MgW1BTUi03IEJyaWRnZV0oaHR0cHM6Ly9zeW1mb255LmNvbS9kb2MvY3VycmVudC9jb21wb25lbnRzL3BzcjcuaHRtbCkgYW5kIFtUb2JpYXMgTnlob2xtXShodHRwczovL2dpdGh1Yi5jb20vTnlob2xtKSdzIFtQU1ItNyBpbXBsZW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL055aG9sbS9wc3I3KSwgYmVmb3JlIHBhc3NpbmcgdGhlbSBvbiB0byBPcGVuQVBJIFBTUi03IE1lc3NhZ2UgVmFsaWRhdG9yLgoKIyMgSW5zdGFsbGF0aW9uCgo+IPCfkqEgVGhpcyBwYWNrYWdlIGlzIG1vc3RseSBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIHBhcnQgb2YgYW4gQVBJIHRlc3Qgc3VpdGUuCgpWaWEgQ29tcG9zZXI6CgpgYGBiYXNoCiQgY29tcG9zZXIgcmVxdWlyZSAtLWRldiBvc3RlZWwvb3BlbmFwaS1odHRwZm91bmRhdGlvbi10ZXN0aW5nCmBgYAoKIyMgVXNhZ2UKCkltcG9ydCB0aGUgYnVpbGRlciBjbGFzczoKCmBgYHBocAp1c2UgT3N0ZWVsXE9wZW5BcGlcVGVzdGluZ1xWYWxpZGF0b3JCdWlsZGVyOwpgYGAKClVzZSB0aGUgYnVpbGRlciB0byBjcmVhdGUgYSBbYFxPc3RlZWxcT3BlbkFwaVxUZXN0aW5nXFZhbGlkYXRvcmBdKC9zcmMvVmFsaWRhdG9yLnBocCkgb2JqZWN0LCB1c2luZyBvbmUgb2YgdGhlIGF2YWlsYWJsZSBmYWN0b3J5IG1ldGhvZHMgZm9yIFlBTUwgb3IgSlNPTjoKCmBgYHBocAovLyBGcm9tIGEgZmlsZToKCiR2YWxpZGF0b3IgPSBWYWxpZGF0b3JCdWlsZGVyOjpmcm9tWWFtbEZpbGUoJHlhbWxGaWxlKS0+Z2V0VmFsaWRhdG9yKCk7CiR2YWxpZGF0b3IgPSBWYWxpZGF0b3JCdWlsZGVyOjpmcm9tSnNvbkZpbGUoJGpzb25GaWxlKS0+Z2V0VmFsaWRhdG9yKCk7CgovLyBGcm9tIGEgc3RyaW5nOgoKJHZhbGlkYXRvciA9IFZhbGlkYXRvckJ1aWxkZXI6OmZyb21ZYW1sU3RyaW5nKCR5YW1sU3RyaW5nKS0+Z2V0VmFsaWRhdG9yKCk7CiR2YWxpZGF0b3IgPSBWYWxpZGF0b3JCdWlsZGVyOjpmcm9tSnNvblN0cmluZygkanNvblN0cmluZyktPmdldFZhbGlkYXRvcigpOwoKLy8gQXV0b21hdGljIGRldGVjdGlvbiAoc2xvd2VyKToKCiR2YWxpZGF0b3IgPSBWYWxpZGF0b3JCdWlsZGVyOjpmcm9tWWFtbCgkeWFtbEZpbGVPclN0cmluZyktPmdldFZhbGlkYXRvcigpOwokdmFsaWRhdG9yID0gVmFsaWRhdG9yQnVpbGRlcjo6ZnJvbUpzb24oJGpzb25GaWxlT3JTdHJpbmcpLT5nZXRWYWxpZGF0b3IoKTsKYGBgCgo+IPCfkqEgWW91IGNhbiBhbHNvIHVzZSBhIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGNvbnRhaW5lciB0byBiaW5kIHRoZSBgVmFsaWRhdG9yQnVpbGRlcmAgY2xhc3MgdG8gdGhlIFtgVmFsaWRhdG9yQnVpbGRlckludGVyZmFjZWBdKC9zcmMvVmFsaWRhdG9yQnVpbGRlckludGVyZmFjZS5waHApIGludGVyZmFjZSBpdCBpbXBsZW1lbnRzIGFuZCBpbmplY3QgdGhlIGludGVyZmFjZSBpbnN0ZWFkLCB3aGljaCB3b3VsZCBhbHNvIGJlIHVzZWZ1bCBmb3IgdGVzdGluZyBhbmQgbW9ja2luZy4KCllvdSBjYW4gbm93IHZhbGlkYXRlIGBcU3ltZm9ueVxDb21wb25lbnRcSHR0cEZvdW5kYXRpb25cUmVxdWVzdGAgYW5kIGBcU3ltZm9ueVxDb21wb25lbnRcSHR0cEZvdW5kYXRpb25cUmVzcG9uc2VgIG9iamVjdHMgZm9yIGEgZ2l2ZW4gW3BhdGhdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNwYXRocy1vYmplY3QpIGFuZCBtZXRob2Q6CgpgYGBwaHAKJHZhbGlkYXRvci0+dmFsaWRhdGUoJHJlc3BvbnNlLCAnL3VzZXJzJywgJ3Bvc3QnKTsKYGBgCgo+IPCfkqEgRm9yIGNvbnZlbmllbmNlLCBvYmplY3RzIGltcGxlbWVudGluZyBgXFBzclxIdHRwXE1lc3NhZ2VcU2VydmVyUmVxdWVzdEludGVyZmFjZWAgb3IgYFxQc3JcSHR0cFxNZXNzYWdlXFJlc3BvbnNlSW50ZXJmYWNlYCBhcmUgYWxzbyBhY2NlcHRlZC4KCkluIHRoZSBleGFtcGxlIGFib3ZlLCB3ZSBjaGVjayB0aGF0IHRoZSByZXNwb25zZSBtYXRjaGVzIHRoZSBPcGVuQVBJIGRlZmluaXRpb24gZm9yIGEgYFBPU1RgIHJlcXVlc3Qgb24gdGhlIGAvdXNlcnNgIHBhdGguCgpFYWNoIG9mIE9wZW5BUEkncyBbc3VwcG9ydGVkIEhUVFAgbWV0aG9kc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9wYXRocy1hbmQtb3BlcmF0aW9ucy8gIlBhdGhzIGFuZCBPcGVyYXRpb25zIikgKGBERUxFVEVgLCBgR0VUYCwgYEhFQURgLCBgT1BUSU9OU2AsIGBQQVRDSGAsIGBQT1NUYCwgYFBVVGAgYW5kIGBUUkFDRWApIGFsc28gaGFzIGEgc2hvcnRjdXQgbWV0aG9kIHRoYXQgY2FsbHMgYHZhbGlkYXRlYCB1bmRlciB0aGUgaG9vZCwgbWVhbmluZyB0aGUgbGluZSBhYm92ZSBjb3VsZCBhbHNvIGJlIHdyaXR0ZW4gdGhpcyB3YXk6CgpgYGBwaHAKJHZhbGlkYXRvci0+cG9zdCgkcmVzcG9uc2UsICcvdXNlcnMnKTsKYGBgCgpWYWxpZGF0aW5nIGEgcmVxdWVzdCBvYmplY3Qgd29ya3MgZXhhY3RseSB0aGUgc2FtZSB3YXk6CgpgYGBwaHAKJHZhbGlkYXRvci0+cG9zdCgkcmVxdWVzdCwgJy91c2VycycpOwpgYGAKCkluIHRoZSBleGFtcGxlIGFib3ZlLCB3ZSBjaGVjayB0aGF0IHRoZSByZXF1ZXN0IG1hdGNoZXMgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbiBmb3IgYSBgUE9TVGAgcmVxdWVzdCBvbiB0aGUgYC91c2Vyc2AgcGF0aC4KClRoZSBgdmFsaWRhdGVgIG1ldGhvZCByZXR1cm5zIGB0cnVlYCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuZCB0aHJvdyBhIFtgXE9zdGVlbFxPcGVuQXBpXFRlc3RpbmdcRXhjZXB0aW9uc1xWYWxpZGF0aW9uRXhjZXB0aW9uYF0oL3NyYy9FeGNlcHRpb25zL1ZhbGlkYXRpb25FeGNlcHRpb24ucGhwKSBleGNlcHRpb24gaW4gY2FzZSBvZiBlcnJvci4KCiMjIENhY2hpbmcKClRoaXMgcGFja2FnZSBzdXBwb3J0cyBjYWNoaW5nIHRvIHNwZWVkIHVwIHRoZSBwYXJzaW5nIG9mIE9wZW5BUEkgZGVmaW5pdGlvbnMuIFNpbXBseSBwYXNzIHlvdXIgW1BTUi02XShodHRwczovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTYvKSBvciBbUFNSLTE2XShodHRwczovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTE2LykgY2FjaGUgb2JqZWN0IHRvIHRoZSBgc2V0Q2FjaGVgIG1ldGhvZCBvZiB0aGUgW2BWYWxpZGF0b3JCdWlsZGVyYF0oL3NyYy9WYWxpZGF0b3JCdWlsZGVyLnBocCkgY2xhc3MuCgpIZXJlIGlzIGFuIGV4YW1wbGUgdXNpbmcgU3ltZm9ueSdzIFtBcnJheSBDYWNoZSBBZGFwdGVyXShodHRwczovL3N5bWZvbnkuY29tL2RvYy9jdXJyZW50L2NvbXBvbmVudHMvY2FjaGUvYWRhcHRlcnMvYXJyYXlfY2FjaGVfYWRhcHRlci5odG1sICJBcnJheSBDYWNoZSBBZGFwdGVyIik6CgpgYGBwaHAKdXNlIE9zdGVlbFxPcGVuQXBpXFRlc3RpbmdcVmFsaWRhdG9yQnVpbGRlcjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXEFkYXB0ZXJcQXJyYXlBZGFwdGVyOwoKJGNhY2hlID0gbmV3IEFycmF5QWRhcHRlcigpOwokdmFsaWRhdG9yID0gVmFsaWRhdG9yQnVpbGRlcjo6ZnJvbVlhbWxGaWxlKCR5YW1sRmlsZSktPnNldENhY2hlKCRjYWNoZSktPmdldFZhbGlkYXRvcigpOwpgYGAKCiMjIEV4dGVuZGluZyB0aGUgcGFja2FnZQoKVGhlcmUgYXJlIHR3byBtYWluIGV4dGVuc2lvbiBwb2ludHMg4oCTIG1lc3NhZ2UgYWRhcHRlcnMgYW5kIGNhY2hlIGFkYXB0ZXJzLgoKIyMjIE1lc3NhZ2UgYWRhcHRlcnMKClRoZSBbYFZhbGlkYXRvckJ1aWxkZXJgXSgvc3JjL1ZhbGlkYXRvckJ1aWxkZXIucGhwKSBjbGFzcyB1c2VzIHRoZSBbYEh0dHBGb3VuZGF0aW9uQWRhcHRlcmBdKC9zcmMvQWRhcHRlcnMvSHR0cEZvdW5kYXRpb25BZGFwdGVyLnBocCkgY2xhc3MgYXMgaXRzIGRlZmF1bHQgSFRUUCBtZXNzYWdlIGFkYXB0ZXIuIFRoaXMgY2xhc3MgY29udmVydHMgSHR0cEZvdW5kYXRpb24gcmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0cyB0byB0aGVpciBQU1ItNyBjb3VudGVycGFydHMuCgpJZiB5b3UgbmVlZCB0byBjaGFuZ2UgdGhlIGFkYXB0ZXIncyBsb2dpYywgb3IgaWYgeW91IG5lZWQgYSBuZXcgYWRhcHRlciBhbHRvZ2V0aGVyLCBjcmVhdGUgYSBjbGFzcyBpbXBsZW1lbnRpbmcgdGhlIFtgTWVzc2FnZUFkYXB0ZXJJbnRlcmZhY2VgXSgvc3JjL0FkYXB0ZXJzL01lc3NhZ2VBZGFwdGVySW50ZXJmYWNlLnBocCkgaW50ZXJmYWNlIGFuZCBwYXNzIGl0IHRvIHRoZSBgc2V0TWVzc2FnZUFkYXB0ZXJgIG1ldGhvZCBvZiB0aGUgW2BWYWxpZGF0b3JCdWlsZGVyYF0oL3NyYy9WYWxpZGF0b3JCdWlsZGVyLnBocCkgY2xhc3M6CgpgYGBwaHAKJHZhbGlkYXRvciA9IFZhbGlkYXRvckJ1aWxkZXI6OmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpCiAgICAtPnNldE1lc3NhZ2VBZGFwdGVyKCR5b3VyQWRhcHRlcikKICAgIC0+Z2V0VmFsaWRhdG9yKCk7CmBgYAoKIyMjIENhY2hlIGFkYXB0ZXJzCgpUaGUgW2BWYWxpZGF0b3JCdWlsZGVyYF0oL3NyYy9WYWxpZGF0b3JCdWlsZGVyLnBocCkgY2xhc3MgdXNlcyB0aGUgW2BQc3IxNkFkYXB0ZXJgXSgvc3JjL0NhY2hlL1BzcjE2QWRhcHRlci5waHApIGNsYXNzIGFzIGl0cyBkZWZhdWx0IGNhY2hlIGFkYXB0ZXIuIFRoaXMgY2xhc3MgY29udmVydHMgUFNSLTE2IGNhY2hlIG9iamVjdHMgdG8gdGhlaXIgUFNSLTYgY291bnRlcnBhcnRzLgoKSWYgeW91IG5lZWQgdG8gY2hhbmdlIHRoZSBhZGFwdGVyJ3MgbG9naWMsIG9yIGlmIHlvdSBuZWVkIGEgbmV3IGFkYXB0ZXIgYWx0b2dldGhlciwgY3JlYXRlIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBbYENhY2hlQWRhcHRlckludGVyZmFjZWBdKC9zcmMvQ2FjaGUvQ2FjaGVBZGFwdGVySW50ZXJmYWNlLnBocCkgaW50ZXJmYWNlIGFuZCBwYXNzIGl0IHRvIHRoZSBgc2V0Q2FjaGVBZGFwdGVyYCBtZXRob2Qgb2YgdGhlIFtgVmFsaWRhdG9yQnVpbGRlcmBdKC9zcmMvVmFsaWRhdG9yQnVpbGRlci5waHApIGNsYXNzOgoKYGBgcGhwCiR2YWxpZGF0b3IgPSBWYWxpZGF0b3JCdWlsZGVyOjpmcm9tWWFtbEZpbGUoJHlhbWxGaWxlKQogICAgLT5zZXRDYWNoZUFkYXB0ZXIoJHlvdXJBZGFwdGVyKQogICAgLT5nZXRWYWxpZGF0b3IoKTsKYGBgCgojIyMgT3RoZXIgaW50ZXJmYWNlcwoKVGhlIFtgVmFsaWRhdG9yQnVpbGRlcmBdKC9zcmMvVmFsaWRhdG9yQnVpbGRlci5waHApIGFuZCBbYFZhbGlkYXRvcmBdKC9zcmMvVmFsaWRhdG9yLnBocCkgY2xhc3NlcyBhcmUgYGZpbmFsYCBidXQgdGhleSBpbXBsZW1lbnQgdGhlIFtgVmFsaWRhdG9yQnVpbGRlckludGVyZmFjZWBdKC9zcmMvVmFsaWRhdG9yQnVpbGRlckludGVyZmFjZS5waHApIGFuZCBbYFZhbGlkYXRvckludGVyZmFjZWBdKC9zcmMvVmFsaWRhdG9ySW50ZXJmYWNlLnBocCkgaW50ZXJmYWNlcyByZXNwZWN0aXZlbHkgZm9yIHdoaWNoIHlvdSBjYW4gcHJvdmlkZSB5b3VyIG93biBpbXBsZW1lbnRhdGlvbnMgaWYgeW91IG5lZWQgdG8uCgojIyBDaGFuZ2UgbG9nCgpQbGVhc2Ugc2VlIHRoZSBbUmVsZWFzZXMgc2VjdGlvbl0oLi4vLi4vcmVsZWFzZXMpIGZvciBkZXRhaWxzLgoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2Ugc2VlIFtDT05UUklCVVRJTkddKC8uZ2l0aHViL0NPTlRSSUJVVElORy5tZCkgZm9yIGRldGFpbHMuCgojIyBDcmVkaXRzCgoqKlBlb3BsZSoqCgotIFtZYW5uaWNrIENoZW5vdF0oaHR0cHM6Ly9naXRodWIuY29tL29zdGVlbCkKLSBbUGF0cmljayBSb2RhY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2xvcmRyaG9kb3MpCi0gW0pvaG5hdGhhbiBNaWNoYWVsIERlbGxdKGh0dHBzOi8vZ2l0aHViLmNvbS9qb2huYXRoYW5tZGVsbCkKLSBbUGF1bCBNaXRjaHVtXShodHRwczovL2dpdGh1Yi5jb20vcGF1bC1tKQotIFtBbGwgQ29udHJpYnV0b3JzXSguLi8uLi9jb250cmlidXRvcnMpCgpTcGVjaWFsIHRoYW5rcyB0byBbUGF2ZWwgQmF0YW5vdl0oaHR0cHM6Ly9naXRodWIuY29tL3NjYXl0cmFzZSkgZm9yIGhpcyBhZHZpY2Ugb24gc3RydWN0dXJpbmcgdGhlIHBhY2thZ2UuCgoqKlBhY2thZ2VzKioKCi0gW09wZW5BUEkgUFNSLTcgTWVzc2FnZSBWYWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS90aGVwaHBsZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcikKLSBbVGhlIFBTUi03IEJyaWRnZV0oaHR0cHM6Ly9zeW1mb255LmNvbS9kb2MvY3VycmVudC9jb21wb25lbnRzL3BzcjcuaHRtbCkKLSBbUFNSLTcgaW1wbGVtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9OeWhvbG0vcHNyNykKCiMjIExpY2Vuc2UKClRoZSBNSVQgTGljZW5zZSAoTUlUKS4gUGxlYXNlIHNlZSBbTGljZW5zZSBGaWxlXShMSUNFTlNFLm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K readmeEtag: '"8980725d3e3affff512d274c843c68b741dcf6d3"' readmeLastModified: Fri, 12 Jan 2024 15:41:04 GMT repositoryId: 306618893 description: >- Validate your HttpFoundation requests and responses against OpenAPI (3+) definitions created: '2020-10-23T11:42:16Z' updated: '2024-09-05T11:37:50Z' language: PHP archived: false stars: 98 watchers: 3 forks: 13 owner: osteel logo: https://avatars.githubusercontent.com/u/436467?v=4 license: MIT repoEtag: '"5009f31d65007a82e232eb6cdbe7f8f3bc37d5fff6010b069aaf2cc0bf72a2e6"' repoLastModified: Thu, 05 Sep 2024 11:37:50 GMT foundInMaster: true id: 940ce85dbc99fab7a0ea193ac4ade24c v3_1: true - source: - https://openapi.tools/ - openapi3 tags name: VSCode OpenAPI Snippets category: - Text Editors - Parsers language: Any source_description: >- OpenAPI Snippets for Visual Studio Code editor, includes split file validation v3: true link: https://marketplace.visualstudio.com/items?itemName=proohit.openapi-snippets repository: https://github.com/proohit/openapi-snippets repositoryMetadata: base64Readme: >- IyBPcGVuQXBpIFNuaXBwZXRzCgojIyBVc2FnZQoKIVtzbmlwcGV0LXByZXZpZXddKC4vb3BlbmFwaS1zbmlwcGV0cy1wcmV2aWV3LmdpZikKCiMjIyBzbmlwcGV0cwoKY3VycmVudGx5IHN1cHBvcnRlZCBzbmlwcGV0czoKCnwgICAgICAgICAgICBQcmVmaXggfCBDb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS06IHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCAgICAgICAgIGBwYXRoZ2V0YCB8IEdFVCBwYXRoIG9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgYHBhdGhnZXRwYXJhbWAgfCBHRVQgcGF0aCBvYmplY3Qgd2l0aCByZXF1ZXN0IHBhcmFtZXRlcnMgICAgfAp8ICAgICAgICBgcGF0aHBvc3RgIHwgUE9TVCBwYXRoIG9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgIGBwYXRocHV0YCB8IFBVVCBwYXRoIG9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgYHBhdGhwdXRwYXJhbWAgfCBQVVQgcGF0aCBvYmplY3Qgd2l0aCByZXF1ZXN0IHBhcmFtZXRlcnMgICAgfAp8ICAgICAgYHBhdGhkZWxldGVgIHwgREVMRVRFIHBhdGggb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgcGF0aGRlbGV0ZXBhcmFtYCB8IERFTEVURSBwYXRoIG9iamVjdCB3aXRoIHJlcXVlc3QgcGFyYW1ldGVycyB8CnwgICAgYHNjaGVtYU9iamVjdGAgfCBTY2hlbWEgb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICBgcHJvcGVydHlPYmplY3RgIHwgUHJvcGVydHkgb2JqZWN0IGZvciBwcm9wZXJ0aWVzIG9mIGEgc2NoZW1hIHwKfCAgICAgYGNvbnRlbnRUeXBlYCB8IFNldmVyYWwgY29udGVudCB0eXBlcyAgICAgICAgICAgICAgICAgICAgICB8CgojIyMgVmFsaWRhdGlvbgoKSlNPTiBhbmQgWUFNTC9ZTUwgZmlsZXMgYXJlIGJlaW5nIHZhbGlkYXRlZCBhY2NvcmRpbmcgdG8gdGhlaXIgcmVzcGVjdGl2ZSB1c2FnZSAoZS5nLiBTY2hlbWEgT2JqZWN0cykuIEZvciBzY2hlbWEgc3BlY2lmaWNhdGlvbnMsIHNlZSBbT3BlbkFwaSBTcGVjaWZpY2F0aW9uIHYzXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9tYXN0ZXIvc2NoZW1hcy92My4wL3NjaGVtYS5qc29uKQoKKipOb3RlKio6IEZvciBJbnRlbGxpU2Vuc2UgdG8gdmFsaWRhdGUgdGhlIGZpbGVzLCBmaWxlbmFtZXMgaGF2ZSB0byBtYXRjaCB0aGVpciByZXNwZWN0aXZlIHNjaGVtYToKCnwgICAgICAgRmlsZSBuYW1lIHBhdHRlcm4gfCBFeGFtcGxlICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBgW2NvbXBvbmVudHMvc2NoZW1hcy9cKiB8IFwqLXNjaGVtYV0uKGpzb24seWFtbCx5bWwpYCB8IGNvbXBvbmVudHMvc2NoZW1hcy91c2Vycy5qc29uIHwKfCAgICAgICAgICAgICAgYFtwYXRocy9cKiB8IFwqLXBhdGhdLihqc29uLHlhbWwseW1sKWAgICB8IHVzZXJzLXBhdGguanNvbiB8CgpZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggcHJlZGVmaW5lZCBhbmNob3IgcG9pbnRzIHdpdGggVEFCIGtleS4gVGhpcyBvbmx5IHdvcmtzIHJpZ2h0IGFmdGVyIGluc2VydGluZyBhIHNuaXBwZXQuCgoqKk5vdGUqKjogRm9yIFlBTUwvWU1MIGZpbGVzIHRvIGJlIHN1cHBvcnRlZCwgdGhlIFtZQU1MIEV4dGVuc2lvbl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXJlZGhhdC52c2NvZGUteWFtbCkgaGFzIHRvIGJlIGluc3RhbGxlZCEKCiMjIyBLZXliaW5kaW5ncwoKWW91IGNhbiBjb25maWd1cmUgY3VzdG9tIGtleWJpbmRpbmdzIGZvciB0aGUgc25pcHBldHMuIEZvciB0aGlzLCBvcGVuIHRoZSBrZXliaW5kaW5ncy5qc29uIGZpbGUgb2YgVlMgQ29kZSAoU2hvcnRjdXQgYEN0cmwrSyBDdHJsK1NgLCB0aGVuIGNsaWNrIG9uIHRoZSBgT3BlbiBLZXlib2FyZCBTaG9ydGN1dHMgKEpTT04pYCBidXR0b24gaW4gdGhlIHVwcGVyIHJpZ2h0IGNvcm5lcikuCkZvciBhbnkga2V5YmluZGluZywgdXNlIHRoaXMgdGVtcGxhdGUgYW5kIGVkaXQgdGhlIGZpZWxkcyB3aGljaCBhcmUgbWFya2VkIGJ5IGA8PD4+YDoKCmZvciBqc29uIGZpbGVzOgoKYGBganNvbgp7CiAgImtleSI6ICI8PFlvdXIgZGVzaXJlZCBzaG9ydGN1dD4+IiwKICAiY29tbWFuZCI6ICJlZGl0b3IuYWN0aW9uLmluc2VydFNuaXBwZXQiLAogICJ3aGVuIjogImVkaXRvclRleHRGb2N1cyIsCiAgImFyZ3MiOiB7CiAgICAibGFuZ0lkIjogImpzb24iLAogICAgIm5hbWUiOiAiPDxTbmlwcGV0IHByZWZpeD4+IgogIH0KfQpgYGAKCmZvciB5YW1sIGZpbGVzOgoKYGBganNvbgp7CiAgImtleSI6ICI8PFlvdXIgZGVzaXJlZCBzaG9ydGN1dD4+IiwKICAiY29tbWFuZCI6ICJlZGl0b3IuYWN0aW9uLmluc2VydFNuaXBwZXQiLAogICJ3aGVuIjogImVkaXRvclRleHRGb2N1cyIsCiAgImFyZ3MiOiB7CiAgICAibGFuZ0lkIjogInlhbWwiLAogICAgIm5hbWUiOiAiPDxTbmlwcGV0IHByZWZpeD4+IgogIH0KfQpgYGAKCkZvciBgbmFtZWAgeW91IGNhbiB1c2UgYW55IFtzbmlwcGV0IHByZWZpeF0oI3NuaXBwZXRzKS4KCiMjIEluc3RhbGxhdGlvbgoKSnVzdCBkb3dubG9hZCBhbmQgaW5zdGFsbCBpdCBmcm9tIFtWUyBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXByb29oaXQub3BlbmFwaS1zbmlwcGV0cykuIFRoZXJlIGFyZSBubyBtb3JlIHNldHRpbmdzLCBzbyB0aGUgZXh0ZW5zaW9uIGlzIHJlYWR5IHRvIHVzZSBhZnRlciBpbnN0YWxsYXRpb24uIEl0IGZ1bGx5IHdvcmtzIHdpdGggYW5kIGV4dGVuZHMgW09wZW5BUEkgKFN3YWdnZXIpIEVkaXRvcl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPTQyQ3J1bmNoLnZzY29kZS1vcGVuYXBpKQo= readmeEtag: '"97afdc1cec810f47e55845ecd4340a725323cdb2"' readmeLastModified: Fri, 30 Oct 2020 20:24:53 GMT repositoryId: 256450021 description: OpenAPI snippets and external file validation extension for VSCode created: '2020-04-17T08:46:16Z' updated: '2023-09-10T15:46:50Z' language: null archived: false stars: 9 watchers: 2 forks: 2 owner: proohit logo: https://avatars.githubusercontent.com/u/46965017?v=4 repoEtag: '"7b95e5e3a95ebc52b4d73c0b394d08123494974991c7a15212e43091606b95a3"' repoLastModified: Sun, 10 Sep 2023 15:46:50 GMT foundInMaster: true id: 641631c1edd1eaf61a89b81a4ae7c8eb - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/arbs-io/vscode-openapi-viewer v3: true id: e10b173576edb293957b5e57936fce83 repositoryMetadata: base64Readme: >- IyB2c2NvZGUtb3BlbmFwaS12aWV3ZXIKCiFbVmlzdWFsIFN0dWRpbyBNYXJrZXRwbGFjZSBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL3Zpc3VhbC1zdHVkaW8tbWFya2V0cGxhY2Uvdi9BbmRyZXdCdXRzb24udnNjb2RlLW9wZW5hcGktdmlld2VyKQohWy5naXRodWIvd29ya2Zsb3dzL2NvZGVxbC1hbmFseXNpc10oaHR0cHM6Ly9naXRodWIuY29tL2FyYnMtaW8vdnNjb2RlLW9wZW5hcGktdmlld2VyL2FjdGlvbnMvd29ya2Zsb3dzL2NvZGVxbC1hbmFseXNpcy55bWwvYmFkZ2Uuc3ZnKQohW1Zpc3VhbCBTdHVkaW8gTWFya2V0cGxhY2UgSW5zdGFsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdmlzdWFsLXN0dWRpby1tYXJrZXRwbGFjZS9pL0FuZHJld0J1dHNvbi52c2NvZGUtb3BlbmFwaS12aWV3ZXIpClshW0dpdEh1YiBpc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9hcmJzLWlvL3ZzY29kZS1vcGVuYXBpLXZpZXdlci5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYXJicy1pby92c2NvZGUtb3BlbmFwaS12aWV3ZXIvaXNzdWVzKQohW1Zpc3VhbCBTdHVkaW8gTWFya2V0cGxhY2UgUmF0aW5nXShodHRwczovL2ltZy5zaGllbGRzLmlvL3Zpc3VhbC1zdHVkaW8tbWFya2V0cGxhY2Uvci9BbmRyZXdCdXRzb24udnNjb2RlLW9wZW5hcGktdmlld2VyKQoKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9YXJicy1pb192c2NvZGUtb3BlbmFwaS12aWV3ZXImbWV0cmljPXNxYWxlX3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPWFyYnMtaW9fdnNjb2RlLW9wZW5hcGktdmlld2VyKQpbIVtTZWN1cml0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWFyYnMtaW9fdnNjb2RlLW9wZW5hcGktdmlld2VyJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1hcmJzLWlvX3ZzY29kZS1vcGVuYXBpLXZpZXdlcikKWyFbUmVsaWFiaWxpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1hcmJzLWlvX3ZzY29kZS1vcGVuYXBpLXZpZXdlciZtZXRyaWM9cmVsaWFiaWxpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9YXJicy1pb192c2NvZGUtb3BlbmFwaS12aWV3ZXIpClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWFyYnMtaW9fdnNjb2RlLW9wZW5hcGktdmlld2VyJm1ldHJpYz1idWdzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9YXJicy1pb192c2NvZGUtb3BlbmFwaS12aWV3ZXIpClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9YXJicy1pb192c2NvZGUtb3BlbmFwaS12aWV3ZXImbWV0cmljPXZ1bG5lcmFiaWxpdGllcyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPWFyYnMtaW9fdnNjb2RlLW9wZW5hcGktdmlld2VyKQoKIyMgV2hhdCBpcyBWaXN1YWwgU3R1ZGlvIENvZGUgT3BlbkFQSSB2aWV3ZXI/CgpUaGlzIGV4dGVuc2lvbiBhbGxvd3MgdXNlcnMgdG8gdmlldyBPcGVuQVBJIHNwZWNpZmljYXRpb25zLiBUaGUgZXh0ZW5zaW9uIHN1cHBvcnQgYm90aCBganNvbmAgYW5kIGB5YW1sYCBmb3JtYXQuIEl0IHByb3ZpZGVzIGEgcHJldmlldyBvZiB0aGUgc3BlY2lmaWNhdGlvbiBpbiB0aGUgZm9ybSBvZiBhbiBpbnRlcmFjdGl2ZSBkb2N1bWVudCwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdGVzdCBhbmQgZGVidWcgQVBJcy4gVGhlIHByZXZpZXcgY2FuIGJlIGFjY2Vzc2VkIGZyb20gd2l0aGluIHRoZSBWaXN1YWwgU3R1ZGlvIGVkaXRvciwgbWFraW5nIGl0IGNvbnZlbmllbnQgZm9yIGRldmVsb3BlcnMgdG8gdmlldyBhbmQgZWRpdCB0aGUgc3BlY2lmaWNhdGlvbiBhcyB0aGV5IHdvcmsgb24gdGhlaXIgY29kZS4KClRoZSBleHRlbnNpb24gaXMgaGFuZHkgZm9yIGRldmVsb3BlcnMgYW5kIGFyY2hpdGVjdHMgd29ya2luZyBvbiBBUEktYmFzZWQgcHJvamVjdHMsIGFsbG93aW5nIHRoZW0gdG8gc2VlIGhvdyB0aGVpciBBUElzIHdpbGwgYmVoYXZlIGFuZCBpbnRlcmFjdCB3aXRoIG90aGVyIGNvbXBvbmVudHMuIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmb3IgQVBJcywgd2hpY2ggY2FuIGJlIGhlbHBmdWwgZm9yIGRldmVsb3BlcnMgd2hvIGFyZSB3b3JraW5nIG9uIHByb2plY3RzIHdpdGggbXVsdGlwbGUgdGVhbXMgb3Igc2hhcmluZyBBUElzIHdpdGggZXh0ZXJuYWwgY2xpZW50cy4KClRoZSB2c2NvZGUtb3BlbmFwaS12aWV3ZXIgZXh0ZW5zaW9uIGlzIGEgdmFsdWFibGUgdG9vbCBmb3IgZGV2ZWxvcGVycyBhbmQgYXJjaGl0ZWN0cyB3b3JraW5nIHdpdGggT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4gSXQgcHJvdmlkZXMgYSBjb252ZW5pZW50IGFuZCBpbnRlcmFjdGl2ZSB3YXkgdG8gcHJldmlldywgdGVzdCwgYW5kIGRlYnVnIEFQSXMgd2l0aGluIFZpc3VhbCBTdHVkaW8uCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCjEuIEZpcnN0LCBvcGVuIFZpc3VhbCBTdHVkaW8gYW5kIGdvIHRvIHRoZSAiRXh0ZW5zaW9ucyIgdGFiIGluIHRoZSB0b29sYmFyLgoyLiBJbiB0aGUgc2VhcmNoIGJhciwgdHlwZSAidnNjb2RlLW9wZW5hcGktdmlld2VyIiBhbmQgcHJlc3MgZW50ZXIuCjMuIENsaWNrIG9uIHRoZSAidnNjb2RlLW9wZW5hcGktdmlld2VyIiBleHRlbnNpb24gaW4gdGhlIHNlYXJjaCByZXN1bHRzIGFuZCBjbGljayAiRG93bmxvYWQiLgo0LiBPbmNlIHRoZSBleHRlbnNpb24gaGFzIGJlZW4gZG93bmxvYWRlZCwgY2xpY2sgIkluc3RhbGwiIHRvIGluc3RhbGwgaXQuCjUuIEFmdGVyIHRoZSBpbnN0YWxsYXRpb24sIHlvdSB3aWxsIG5lZWQgdG8gcmVzdGFydCBWaXN1YWwgU3R1ZGlvIGZvciB0aGUgY2hhbmdlcyB0byB0YWtlIGVmZmVjdC4KNi4gT25jZSBWaXN1YWwgU3R1ZGlvIGhhcyBiZWVuIHJlc3RhcnRlZCwgeW91IGNhbiBvcGVuIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmaWxlIGJ5IGdvaW5nIHRvICJGaWxlID4gT3BlbiA+IEZpbGUiIGFuZCBzZWxlY3RpbmcgdGhlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbiBmaWxlIGZyb20geW91ciBwcm9qZWN0Lgo3LiBUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBWaXN1YWwgU3R1ZGlvIGVkaXRvci4gSWYgdGhlIHNwZWNpZmljYXRpb24gaXMgdmFsaWQsIGEgcHJldmlldyBidXR0b24gd2lsbCBhcHBlYXIuIFlvdSBjYW4gdXNlIHRoaXMgZG9jdW1lbnQgdG8gdGVzdCBhbmQgZGVidWcgeW91ciBBUElzIGFuZCBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uIGZvciB0aGVtLgoKVGhhdCdzIGl0ISBZb3Ugc2hvdWxkIG5vdyBiZSBhYmxlIHRvIHVzZSB0aGUgdnNjb2RlLW9wZW5hcGktdmlld2VyIGV4dGVuc2lvbiBpbiBWaXN1YWwgU3R1ZGlvIENvZGUgdG8gdmlldyBhbmQgZWRpdCB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgdmlzdWFsbHksIGFuZCBpbnR1aXRpdmVseS4KCiFbdnNjb2RlLW9wZW5hcGktdmlld2VyLmdpZl0oaW1hZ2VzL3ZzY29kZS1vcGVuYXBpLXZpZXdlci5naWYpCgojIyAqKkhvdyBjYW4gSSBoZWxwPyoqCgpJZiB5b3UgZW5qb3kgdXNpbmcgdGhlIGV4dGVuc2lvbiwgcGxlYXNlIGdpdmUgaXQgYSByYXRpbmcgb24gdGhlIFtWaXN1YWwgU3R1ZGlvIE1hcmtldHBsYWNlXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9QW5kcmV3QnV0c29uLnZzY29kZS1vcGVuYXBpLXZpZXdlcikuCgpTaG91bGQgeW91IGVuY291bnRlciBidWdzIG9yIGlmIHlvdSBoYXZlIGZlYXR1cmUgcmVxdWVzdHMsIGhlYWQgb24gb3ZlciB0byB0aGUgW0dpdEh1YiByZXBvXShodHRwczovL2dpdGh1Yi5jb20vYXJicy1pby92c2NvZGUtb3BlbmFwaS12aWV3ZXIpIHRvIG9wZW4gYW4gaXNzdWUgaWYgb25lIGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KUHVsbCByZXF1ZXN0cyBhcmUgYWxzbyB2ZXJ5IHdlbGNvbWUgc2luY2UgSSBjYW4ndCBhbHdheXMgZ2V0IGFyb3VuZCB0byBmaXhpbmcgYWxsIGJ1Z3MgbXlzZWxmLgoKVGhpcyBpcyBhIHBlcnNvbmFsIHBhc3Npb24gcHJvamVjdCwgc28gbXkgdGltZSBpcyBsaW1pdGVkLgoKQW5vdGhlciB3YXkgdG8gaGVscCBvdXQgaXMgdG8gW3Nwb25zb3IgbWUgb24gR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvYXJicy1pbykuCg== readmeEtag: '"b1a9c2222218ea9bd23dc3e0bc9a00fecc8872b8"' readmeLastModified: Mon, 05 Aug 2024 03:59:13 GMT repositoryId: 584545758 description: >- The vscode-openapi-viewer extension is a valuable tool for developers and architects working with OpenAPI specifications, as it provides a convenient and interactive way to preview, test, and debug APIs within Visual Studio Code. created: '2023-01-02T21:56:59Z' updated: '2024-08-05T03:59:16Z' language: TypeScript archived: false stars: 5 watchers: 1 forks: 1 owner: arbs-io logo: https://avatars.githubusercontent.com/u/71968891?v=4 license: MIT repoEtag: '"7181b445878aa29c58fe321ea69dabcd398a75b387515f10a8f3a6b6cac108f5"' repoLastModified: Mon, 05 Aug 2024 03:59:16 GMT category: - Documentation - Text Editors - SDK foundInMaster: true name: VSCode OpenAPI Viewer language: TypeScript link: >- https://marketplace.visualstudio.com/items?itemName=AndrewButson.vscode-openapi-viewer source_description: >- Preview and edit JSON or YAML OpenAPI specifications in Visual Studio Code using RapiDoc. v2: true v3_1: true - source: https://openapi.tools/ name: Spectator category: Testing language: PHP source_description: >- Spectator provides light-weight OpenAPI testing tools you can use within your existing Laravel test suite. v2: false v3: true link: https://github.com/hotmeteor/spectator repository: https://github.com/hotmeteor/spectator repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Imh0dHBzOi8vc3BlY3RhdG9yLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL3NwZWN0YXRvci1sb2dvLnBuZyIgd2lkdGg9IjMwMCI+PC9wPgoKIyBTcGVjdGF0b3IKClNwZWN0YXRvciBwcm92aWRlcyBsaWdodC13ZWlnaHQgT3BlbkFQSSB0ZXN0aW5nIHRvb2xzIHlvdSBjYW4gdXNlIHdpdGhpbiB5b3VyIGV4aXN0aW5nIExhcmF2ZWwgdGVzdCBzdWl0ZS4KCldyaXRlIHRlc3RzIHRoYXQgdmVyaWZ5IHlvdXIgQVBJIHNwZWMgZG9lc24ndCBkcmlmdCBmcm9tIHlvdXIgaW1wbGVtZW50YXRpb24uCgohW1Rlc3RzXShodHRwczovL2dpdGh1Yi5jb20vaG90bWV0ZW9yL3NwZWN0YXRvci93b3JrZmxvd3MvVGVzdHMvYmFkZ2Uuc3ZnKQpbIVtMYXRlc3QgVmVyc2lvbiBvbiBQYWNrYWdpc3RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3ZwcmUvaG90bWV0ZW9yL3NwZWN0YXRvci5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvaG90bWV0ZW9yL3NwZWN0YXRvcikKIVtQSFAgZnJvbSBQYWNrYWdpc3RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3BocC12L2hvdG1ldGVvci9zcGVjdGF0b3IpCgojIyBSZXF1aXJlbWVudHMKCi0gUEhQIDguMSsKLSBMYXJhdmVsIDEwKwoKIyMgSW5zdGFsbGF0aW9uCgpZb3UgY2FuIGluc3RhbGwgdGhlIHBhY2thZ2UgdGhyb3VnaCBDb21wb3Nlci4KCmBgYGJhc2gKY29tcG9zZXIgcmVxdWlyZSBob3RtZXRlb3Ivc3BlY3RhdG9yIC0tZGV2CmBgYAoKVGhlbiwgcHVibGlzaCB0aGUgY29uZmlnIGZpbGUgb2YgdGhpcyBwYWNrYWdlIHdpdGggdGhpcyBjb21tYW5kOgoKYGBgYmFzaApwaHAgYXJ0aXNhbiB2ZW5kb3I6cHVibGlzaCAtLXByb3ZpZGVyPSJTcGVjdGF0b3JcU3BlY3RhdG9yU2VydmljZVByb3ZpZGVyIgpgYGAKClRoZSBjb25maWcgZmlsZSB3aWxsIGJlIHB1Ymxpc2hlZCBpbiBgY29uZmlnL3NwZWN0YXRvci5waHBgLgoKIyMjIFVwZ3JhZGluZyBmcm9tIHYxIHRvIHYyCgoqKkltcG9ydGFudDoqKiBTcGVjdGF0b3IgdjIgcmVxdWlyZXMgUEhQIDguMSBhbmQgTGFyYXZlbCAxMC4gSWYgeW91IGFyZSB1c2luZyBhbiBvbGRlciB2ZXJzaW9uIG9mIFBIUCBvciBMYXJhdmVsLCB5b3Ugc2hvdWxkIG5vdCB1cGdyYWRlIHRvIHYyLgoKV2hpbGUgdGhpcyBzaG91bGQgdHlwaWNhbGx5IGJlIGEgc3RyYWlnaHRmb3J3YXJkIHVwZ3JhZGUsIHlvdSBzaG91bGQgYmUgYXdhcmUgb2Ygc29tZSBvZiB0aGUgY2hhbmdlcyB0aGF0IGhhdmUgYmVlbiBtYWRlLgoKUGxlYXNlIHJlYWQgdGhlIFtVUEdSQURFLm1kXShVUEdSQURFLm1kKSBmaWxlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMgQ29uZmlndXJhdGlvbgoKIyMjIFNvdXJjZXMKCioqU291cmNlcyoqIGFyZSByZWZlcmVuY2VzIHRvIHdoZXJlIHlvdXIgQVBJIHNwZWMgbGl2ZXMuIERlcGVuZGluZyBvbiB0aGUgd2F5IHlvdSBvciB5b3VyIHRlYW0gd29ya3MsIG9yIHdoZXJlIHlvdXIgc3BlYyBsaXZlcywgeW91IG1heSB3YW50IHRvIGNvbmZpZ3VyZSBkaWZmZXJlbnQgc291cmNlcyBmb3IgZGlmZmVyZW50IGVudmlyb25tZW50cy4KCkFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGNvbmZpZywgdGhlcmUncyB0aHJlZSBzb3VyY2UgdHlwZXMgYXZhaWxhYmxlOiBgbG9jYWxgLCBgcmVtb3RlYCwgYW5kIGBnaXRodWJgLiBFYWNoIHNvdXJjZSByZXF1aXJlcyB0aGUgZm9sZGVyIHdoZXJlIHlvdXIgc3BlYyBsaXZlcyB0byBiZSBkZWZpbmVkLCBub3QgdGhlIHNwZWMgZmlsZSBpdHNlbGYuIFRoaXMgcHJvdmlkZXMgZmxleGliaWxpdHkgd2hlbiB3b3JraW5nIHdpdGggbXVsdGlwbGUgQVBJcyBpbiBvbmUgcHJvamVjdCwgb3IgYW4gQVBJIGZyYWdtZW50ZWQgYWNyb3NzIG11bHRpcGxlIHNwZWMgZmlsZXMuCgotLS0KCiMjIyMgTG9jYWwKCmBgYGVudgojIyBTcGVjdGF0b3IgY29uZmlnCgpTUEVDX1NPVVJDRT1sb2NhbApTUEVDX1BBVEg9L3NwZWMvcmVmZXJlbmNlCmBgYAoKLS0tCgojIyMjIFJlbW90ZQoKX1RoaXMgaXMgdXNpbmcgdGhlIHJhdyBhY2Nlc3MgbGluayBmcm9tIEdpdGh1YiwgYnV0IGFueSByZW1vdGUgc291cmNlIGNhbiBiZSBzcGVjaWZpZWQuIFRoZSBTUEVDX1VSTF9QQVJBTVMgY2FuIGJlIHVzZWQgdG8gYXBwZW5kIGFueSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHRoZSByZW1vdGUgdXJsLl8KCmBgYGVudgojIyBTcGVjdGF0b3IgY29uZmlnCgpTUEVDX1BBVEg9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9wYXRoL3RvL3JlcG8iClNQRUNfVVJMX1BBUkFNUz0iP3Rva2VuPUFCRURDM0U1QVEzSE1VQlBQQ0RUVE1EQUZQTVNNIgpgYGAKCi0tLQoKIyMjIyBHaXRodWIKCl9UaGlzIHVzZXMgdGhlIEdpdGh1YiBQZXJzb25hbCBBY2Nlc3MgVG9rZW4gd2hpY2ggYWxsb3dzIHlvdSBhY2Nlc3MgdG8gYSByZW1vdGUgcmVwbyBjb250YWluaW5nIHlvdXIgY29udHJhY3QuXwoKWW91IGNhbiB2aWV3IGluc3RydWN0aW9ucyBvbiBob3cgdG8gb2J0YWluIHlvdXIgUGVyc29uYWwgQWNjZXNzIFRva2VuIGZyb20gR2l0aHViIGF0IFt0aGlzIGxpbmtdKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2dpdGh1Yi9hdXRoZW50aWNhdGluZy10by1naXRodWIvY3JlYXRpbmctYS1wZXJzb25hbC1hY2Nlc3MtdG9rZW4pIC4KCioqSW1wb3J0YW50IHRvIG5vdGUgdGhhbiB0aGUgU1BFQ19HSVRIVUJfUEFUSCBtdXN0IGluY2x1ZGVkIHRoZSBicmFuY2ggKGV4OiBtYWluKSBhbmQgdGhlbiB0aGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgeW91ciBjb250cmFjdC4qKgoKYGBgZW52CiMjIFNwZWN0YXRvciBjb25maWcKClNQRUNfR0lUSFVCX1BBVEg9J21haW4vY29udHJhY3RzJwpTUEVDX0dJVEhVQl9SRVBPPSdvcmdPcnVzZXIvcmVwbycKU1BFQ19HSVRIVUJfVE9LRU49J3lvdXIgcGVyc29uYWwgYWNjZXNzIHRva2VuJwpgYGAKCi0tLQoKIyMjIFNwZWNpZnlpbmcgdGhlIFRhcmdldCBTcGVjIEZpbGUKCkluIHlvdXIgdGVzdHMgeW91IHdpbGwgZGVjbGFyZSB0aGUgc3BlYyBmaWxlIHlvdSB3YW50IHRvIHRlc3QgYWdhaW5zdDoKCmBgYHBocApwdWJsaWMgZnVuY3Rpb24gdGVzdEJhc2ljRXhhbXBsZSgpCnsKICAgIFNwZWN0YXRvcjo6dXNpbmcoJ0FwaS52MS5qc29uJyk7CgogICAgLy8gLi4uCmBgYAoKIyMgVGVzdGluZwoKIyMjIFBhcmFkaWdtIFNoaWZ0CgoqKk5vdywgb24gdG8gdGhlIGdvb2Qgc3R1ZmYuKioKCkF0IGZpcnN0LCBzcGVjIHRlc3RpbmcsIG9yIGNvbnRyYWN0IHRlc3RpbmcsIG1heSBzZWVtIGNvdW50ZXItaW50dWl0aXZlLCBlc3BlY2lhbGx5IHdoZW4gY29tcGFyZWQgd2l0aCAiZmVhdHVyZSIgb3IgImZ1bmN0aW9uYWwiIHRlc3RpbmcgYXMgc3VwcG9ydGVkIGJ5IExhcmF2ZWwncyBbSFRUUCBUZXN0c10oaHR0cHM6Ly9sYXJhdmVsLmNvbS9kb2NzLzgueC9odHRwLXRlc3RzKS4gCgpXaGlsZSBfZnVuY3Rpb25hbF8gdGVzdHMgYXJlIGVuc3VyaW5nIHRoYXQgeW91ciByZXF1ZXN0IHZhbGlkYXRpb24sIGNvbnRyb2xsZXIgYmVoYXZpb3IsIGV2ZW50cywgcmVzcG9uc2VzLCBldGMuIGFsbCBiZWhhdmUgdGhlIHdheSB5b3UgZXhwZWN0IHdoZW4gcGVvcGxlIGludGVyYWN0IHdpdGggeW91ciBBUEksIF9jb250cmFjdF8gdGVzdHMgYXJlIGVuc3VyaW5nIHRoYXQgKipyZXF1ZXN0cyBhbmQgcmVzcG9uc2VzIGFyZSBzcGVjLWNvbXBsaWFudCoqIC0gX2FuZCB0aGF0J3MgaXRfLiBUaGUgZGF0YSBpdHNlbGYgY291bGQgYmUgd3JvbmcsIGJ1dCB0aGF0J3Mgb3V0c2lkZSB0aGUgc2NvcGUgb2YgYSBjb250cmFjdCB0ZXN0LgoKIyMjIFdyaXRpbmcgVGVzdHMKClNwZWN0YXRvciBpbnRyb2R1Y2VzIGEgZmV3IHNpbXBsZSB0b29scyB0byBjb21wbGltZW50IHRoZSBleGlzdGluZyBMYXJhdmVsIHRlc3RpbmcgdG9vbGJveC4KCkhlcmUncyBhbiBleGFtcGxlIG9mIGEgdHlwaWNhbCBKU09OIEFQSSB0ZXN0OgoKYGBgcGhwCjw/cGhwCgpjbGFzcyBFeGFtcGxlVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIC8qKgogICAgICogQSBiYXNpYyBmdW5jdGlvbmFsIHRlc3QgZXhhbXBsZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RCYXNpY0V4YW1wbGUoKQogICAgewogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5wb3N0SnNvbignL3VzZXInLCBbJ25hbWUnID0+ICdTYWxseSddKTsKCiAgICAgICAgJHJlc3BvbnNlCiAgICAgICAgICAgIC0+YXNzZXJ0U3RhdHVzKDIwMSkKICAgICAgICAgICAgLT5hc3NlcnRKc29uKFsKICAgICAgICAgICAgICAgICdjcmVhdGVkJyA9PiB0cnVlLAogICAgICAgICAgICBdKTsKICAgIH0KfQpgYGAKCkFuZCBoZXJlJ3MgYW4gZXhhbXBsZSBvZiBhIGNvbnRyYWN0IHRlc3Q6CgpgYGBwaHAKPD9waHAKCnVzZSBTcGVjdGF0b3JcU3BlY3RhdG9yOwoKY2xhc3MgRXhhbXBsZVRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQp7CiAgICAvKioKICAgICAqIEEgYmFzaWMgZnVuY3Rpb25hbCB0ZXN0IGV4YW1wbGUuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QmFzaWNFeGFtcGxlKCkKICAgIHsKICAgICAgICBTcGVjdGF0b3I6OnVzaW5nKCdBcGkudjEuanNvbicpOwoKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+cG9zdEpzb24oJy91c2VyJywgWyduYW1lJyA9PiAnU2FsbHknXSk7CgogICAgICAgICRyZXNwb25zZQogICAgICAgICAgICAtPmFzc2VydFZhbGlkUmVxdWVzdCgpCiAgICAgICAgICAgIC0+YXNzZXJ0VmFsaWRSZXNwb25zZSgyMDEpOwogICAgfQp9CmBgYAoKVGhlIHRlc3QgaXMgdmVyaWZ5aW5nIHRoYXQgYm90aCB0aGUgcmVxdWVzdCBhbmQgdGhlIHJlc3BvbnNlIGFyZSB2YWxpZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMsIGluIHRoaXMgY2FzZSBsb2NhdGVkIGluIGBBcGkudjEuanNvbmAuIFRoaXMgdHlwZSBvZiB0ZXN0aW5nIHByb21vdGVzIFRERDogeW91IGNhbiB3cml0ZSBlbmRwb2ludCBjb250cmFjdCB0ZXN0cyBhZ2FpbnN0IHlvdXIgZW5kcG9pbnRzIF9maXJzdF8sIGFuZCB0aGVuIGVuc3VyZSB5b3VyIHNwZWMgYW5kIGltcGxlbWVudGF0aW9uIGFyZSBhbGlnbmVkLgoKV2l0aGluIHlvdXIgc3BlYywgZWFjaCBwb3NzaWJsZSByZXNwb25zZSBzaG91bGQgYmUgZG9jdW1lbnRlZC4gRm9yIGV4YW1wbGUsIGEgc2luZ2xlIGBQT1NUYCBlbmRwb2ludCBtYXkgcmVzdWx0IGluIGEgYDJ4eGAsIGA0eHhgLCBvciBldmVuIGA1eHhgIGNvZGUgcmVzcG9uc2UuIEFkZGl0aW9uYWxseSwgeW91ciBlbmRwb2ludHMgd2lsbCBsaWtlbHkgaGF2ZSBwYXJ0aWN1bGFyIHBhcmFtZXRlciB2YWxpZGF0aW9uIHRoYXQgbmVlZHMgdG8gYmUgYWRoZXJlZCB0by4gCgpUaGlzIGlzIHdoYXQgbWFrZXMgY29udHJhY3QgdGVzdGluZyBkaWZmZXJlbnQgZnJvbSBmdW5jdGlvbmFsIHRlc3Rpbmc6CgotIGluICoqZnVuY3Rpb25hbCB0ZXN0aW5nKiosIHN1Y2Nlc3NmdWwgYW5kIGZhaWxlZCByZXNwb25zZXMgYXJlIHRlc3RlZCBmb3Igb3V0Y29tZXMKLSBpbiAqKmNvbnRyYWN0IHRlc3RpbmcqKiwgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcyBhcmUgdGVzdGVkIGZvciBjb25mb3JtaXR5IGFuZCBvdXRjb21lcyBkb24ndCBtYXR0ZXIuCgojIyMgRGVidWdnaW5nCgpGb3IgY2VydGFpbiB2YWxpZGF0aW9uIGVycm9ycywgYSBzcGVjaWFsIGV4Y2VwdGlvbiBtZXNzYWdlIGlzIHRocm93biB3aGljaCBzaG93cyBlcnJvciBtZXNzYWdlKHMpIGRpc3BsYXllZCBhbG9uZ3NpZGUgdGhlIGV4cGVjdGVkIHNjaGVtYS4gRm9yIGV4YW1wbGU6CgpgYGAKICAtLS0KClRoZSBwcm9wZXJ0aWVzIG11c3QgbWF0Y2ggc2NoZW1hOiBkYXRhCkFsbCBhcnJheSBpdGVtcyBtdXN0IG1hdGNoIHNjaGVtYQpUaGUgcmVxdWlyZWQgcHJvcGVydGllcyAobmFtZSkgYXJlIG1pc3NpbmcKCm9iamVjdCsrIDw9PSBUaGUgcHJvcGVydGllcyBtdXN0IG1hdGNoIHNjaGVtYTogZGF0YQogICAgc3RhdHVzKjogc3RyaW5nCiAgICBkYXRhKjogYXJyYXkgPD09IEFsbCBhcnJheSBpdGVtcyBtdXN0IG1hdGNoIHNjaGVtYQogICAgICAgIG9iamVjdCA8PT0gVGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgKG5hbWUpIGFyZSBtaXNzaW5nCiAgICAgICAgICAgIGlkKjogc3RyaW5nCiAgICAgICAgICAgIG5hbWUqOiBzdHJpbmcKICAgICAgICAgICAgc2x1Zzogc3RyaW5nPwoKICAtLS0KYGBgCgpBIGZldyBjdXN0b20gc3ltYm9scyBhcmUgdXNlZDoKCi0gIisrIjogT2JqZWN0IHN1cHBvcnRzIGBhZGRpdGlvbmFsUHJvcGVydGllc2AKLSAiXCoiOiBJdGVtIGlzIGByZXF1aXJlZGAKLSAiPyI6IEl0ZW0gY2FuIGJlIGBudWxsYWJsZWAKCiMjIFVzYWdlCgojIyMgUHJvdmlkaW5nIGEgU3BlYwoKRGVmaW5lIHRoZSBzcGVjIGZpbGUgdG8gdGVzdCBhZ2FpbnN0LiBUaGlzIGNhbiBiZSBkZWZpbmVkIGluIHlvdXIgYHNldFVwKClgIG1ldGhvZCBvciBpbiBhIHNwZWNpZmljIHRlc3QgbWV0aG9kLgoKYGBgcGhwCjw/cGhwCgp1c2UgU3BlY3RhdG9yXFNwZWN0YXRvcjsKCmNsYXNzIEV4YW1wbGVUZXN0IGV4dGVuZHMgVGVzdENhc2UKewogICAgcHVibGljIGZ1bmN0aW9uIHNldFVwKCk6IHZvaWQKICAgIHsKICAgICAgICBwYXJlbnQ6OnNldFVwKCk7CgogICAgICAgIFNwZWN0YXRvcjo6dXNpbmcoJ0FwaS52MS5qc29uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBcGlFbmRwb2ludCgpCiAgICB7CiAgICAgICAgLy8gVGVzdCByZXF1ZXN0IGFuZCByZXNwb25zZS4uLgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RGlmZmVyZW50QXBpRW5kcG9pbnQoKQogICAgewogICAgICAgIFNwZWN0YXRvcjo6dXNpbmcoJ090aGVyLnYxLmpzb24nKTsKCiAgICAgICAgLy8gVGVzdCByZXF1ZXN0IGFuZCByZXNwb25zZS4uLgogICAgfQp9CmBgYAoKIyMjIFRlc3RpbmcgUmVxdWVzdHMKCldoZW4gdGVzdGluZyBlbmRwb2ludHMsIHRoZXJlIGFyZSBhIGZldyBuZXcgbWV0aG9kczoKCmBgYHBocAokdGhpcy0+YXNzZXJ0VmFsaWRSZXF1ZXN0KCk7CiR0aGlzLT5hc3NlcnRWYWxpZFJlc3BvbnNlKCRzdGF0dXMgPSBudWxsKTsKJHRoaXMtPmFzc2VydFZhbGlkYXRpb25NZXNzYWdlKCdFeHBlY3RlZCB2YWxpZGF0aW9uIG1lc3NhZ2UnKTsKJHRoaXMtPmFzc2VydEVycm9yc0NvbnRhaW4oJ0NoZWNrIGZvciBzaW5nbGUgZXJyb3InKTsKJHRoaXMtPmFzc2VydEVycm9yc0NvbnRhaW4oWydDaGVjayBmb3InLCAnTXVsdGlwbGUgRXJyb3JzJ10pOwpgYGAKCk9mIGNvdXJzZSwgeW91IGNhbiBjb250aW51ZSB0byB1c2UgYWxsIGV4aXN0aW5nIEhUVFAgdGVzdCBtZXRob2RzOgoKYGBgcGhwCiR0aGlzCiAgICAtPmFjdGluZ0FzKCR1c2VyKQogICAgLT5wb3N0SnNvbignL2NvbW1lbnRzJywgWwogICAgICAgICdtZXNzYWdlJyA9PiAnSnVzdCBvdmVyIGhlcmUgc3BlY3RhdGluZycsCiAgICBdKQogICAgLT5hc3NlcnRDcmVhdGVkKCkKICAgIC0+YXNzZXJ0VmFsaWRSZXF1ZXN0KCkKICAgIC0+YXNzZXJ0VmFsaWRSZXNwb25zZSgpOwpgYGAKClRoYXQgc2FpZCwgbWl4aW5nIGZ1bmN0aW9uYWwgYW5kIGNvbnRyYWN0IHRlc3RpbmcgbWF5IGJlY29tZSBtb3JlIGRpZmZpY3VsdCB0byBtYW5hZ2UgYW5kIHJlYWQgbGF0ZXIuIEl0J3Mgc3Ryb25nbHkgYWR2aXNlZCB0byBrZWVwIHRoZSB0d28gdHlwZXMgb2YgdGVzdHMgc2VwYXJhdGUuCgojIyMgVGVzdGluZyBSZXNwb25zZXMKCkluc3RlYWQgb2YgdXNpbmcgdGhlIGJ1aWx0LWluIGAtPmFzc2VydFN0YXR1cygkc3RhdHVzKWAgbWV0aG9kLCB5b3UgbWF5IGFsc28gdmVyaWZ5IHRoZSByZXNwb25zZSB0aGF0IGlzIHZhbGlkIGlzIGFjdHVhbGx5IHRoZSByZXNwb25zZSB5b3Ugd2FudCB0byBjaGVjay4gRm9yIGV4YW1wbGUsIHlvdSBtYXkgcmVjZWl2ZSBhIGAyMDBgICoqb3IqKiBhIGAyMDJgIGZyb20gYSBzaW5nbGUgZW5kcG9pbnQsIGFuZCB5b3Ugd2FudCB0byBlbnN1cmUgeW91J3JlIHZhbGlkYXRpbmcgdGhlIGNvcnJlY3QgcmVzcG9uc2UuCgpgYGBwaHAKJHRoaXMKICAgIC0+YWN0aW5nQXMoJHVzZXIpCiAgICAtPnBvc3RKc29uKCcvY29tbWVudHMnLCBbCiAgICAgICAgJ21lc3NhZ2UnID0+ICdKdXN0IG92ZXIgaGVyZSBzcGVjdGF0aW5nJywKICAgIF0pCiAgICAtPmFzc2VydFZhbGlkUmVxdWVzdCgpCiAgICAtPmFzc2VydFZhbGlkUmVzcG9uc2UoMjAxKTsKYGBgCgpXaGVuIGV4Y2VwdGlvbnMgYXJlIHRocm93biB0aGF0IGFyZSBub3Qgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlJ3MgcHVycG9zZSwgZS5nLiB0eXBvcyBvciBtaXNzaW5nIGltcG9ydHMsIHRoZSBvdXRwdXQgd2lsbCBiZSBmb3JtYXR0ZWQgYnkgZGVmYXVsdCB3aXRoIGEgcmF0aGVyIHNob3J0IG1lc3NhZ2UgYW5kIG5vIHN0YWNrIHRyYWNlLgpUaGlzIGNhbiBiZSBjaGFuZ2VkIGJ5IGRpc2FibGluZyBMYXJhdmVsJ3MgYnVpbHQtaW4gdmFsaWRhdGlvbiBoYW5kbGVyIHdoaWNoIGFsbG93cyBmb3IgZWFzaWVyIGRlYnVnZ2luZyB3aGVuIHJ1bm5pbmcgdGVzdHMuCgpUaGlzIGNhbiBiZSBkb25lIGluIGEgZmV3IGRpZmZlcmVudCB3YXlzOgoKYGBgcGhwCmNsYXNzIEV4YW1wbGVUZXN0Q2FzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXAoKTogdm9pZAogICAgewogICAgICAgIHBhcmVudDo6c2V0VXAoKTsKCiAgICAgICAgU3BlY3RhdG9yOjp1c2luZygnQXBpLnYxLmpzb24nKTsKCiAgICAgICAgLy8gRGlzYWJsZSBleGNlcHRpb24gaGFuZGxpbmcgZm9yIGFsbCB0ZXN0cyBpbiB0aGlzIGZpbGUKICAgICAgICAkdGhpcy0+d2l0aG91dEV4Y2VwdGlvbkhhbmRsaW5nKCk7CiAgICB9CgogICAgLy8gLi4uCn0KYGBgCgpgYGBwaHAKY2xhc3MgRXhhbXBsZVRlc3RDYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X3NvbWVfY29udHJhY3RfdGVzdF9leGFtcGxlKCk6IHZvaWQKICAgIHsKICAgICAgICAvLyBPbmx5IGRpc2FibGUgZXhjZXB0aW9uIGhhbmRsaW5nIGZvciB0aGlzIHRlc3QKICAgICAgICAkdGhpcy0+d2l0aG91dGhFeGNlcHRpb25IYW5kbGluZygpOwoKICAgICAgICAvLyBUZXN0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIC4uLgoKICAgIH0KfQpgYGAKCiMjIyBEZWFjdGl2YXRpbmcgU3BlY3RhdG9yCgpJZiB5b3Ugd2FudCB0byBkZWFjdGl2YXRlIFNwZWN0YXRvciBmb3IgYSBzcGVjaWZpYyB0ZXN0LCB5b3UgY2FuIHVzZSB0aGUgYFNwZWN0YXRvcjo6cmVzZXRgIG1ldGhvZDoKCmBgYHBocAo8P3BocAoKdXNlIFNwZWN0YXRvclxTcGVjdGF0b3I7CgpjbGFzcyBFeGFtcGxlVGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVcCgpOiB2b2lkCiAgICB7CiAgICAgICAgcGFyZW50OjpzZXRVcCgpOwoKICAgICAgICBTcGVjdGF0b3I6OnVzaW5nKCdBcGkudjEuanNvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0V2l0aG91dFNwZWN0YXRvcigpCiAgICB7CiAgICAgICAgU3BlY3RhdG9yOjpyZXNldCgpOwogICAgICAgIAogICAgICAgIC8vIFJ1biB5b3VyIHRlc3Qgd2l0aG91dCBTcGVjdGF0b3IKICAgIH0KfQpgYGAKCiMjIENvcmUgQ29uY2VwdHMKCiMjIyBBcHByb2FjaAoKU3BlY3RhdG9yIHdvcmtzIGJ5IHJlZ2lzdGVyaW5nIGEgY3VzdG9tIG1pZGRsZXdhcmUgdGhhdCBwZXJmb3JtcyByZXF1ZXN0IGFuZCByZXNwb25zZSB2YWxpZGF0aW9uIGFnYWluc3QgYSBzcGVjLgoKIyMjIERlcGVuZGVuY2llcwoKRm9yIHRob3NlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHRvIFNwZWN0YXRvciwgaXQgaXMgd29ydGggZmFtaWxpYXJpemluZyB5b3Vyc2VsZiB3aXRoIHRoZSBjb3JlIGRlcGVuZGVuY2llcyB1c2VkIGZvciBzcGVjIHRlc3Rpbmc6CgotIGBjZWJlL3BocC1vcGVuYXBpYDogVXNlZCB0byBwYXJzZSBzcGVjcyBpbnRvIHVzYWJsZSBhcnJheXMKLSBgb3Bpcy9qc29uLXNjaGVtYWA6IFVzZWQgdG8gcGVyZm9ybSB2YWxpZGF0aW9uIG9mIGFuIG9iamVjdC9hcnJheSBhZ2FpbnN0IGEgc3BlYwoKIyMgU3BvbnNvcnMKCkEgaHVnZSB0aGFua3MgdG8gYWxsIG91ciBzcG9uc29ycyB3aG8gaGVscCBwdXNoIFNwZWN0YXRvciBkZXZlbG9wbWVudCBmb3J3YXJkIQoKSWYgeW91J2QgbGlrZSB0byBiZWNvbWUgYSBzcG9uc29yLCBwbGVhc2UgW3NlZSBoZXJlIGZvciBtb3JlIGluZm9ybWF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvaG90bWV0ZW9yKS4g8J+SqgoKIyMgQ3JlZGl0cwoKLSBDcmVhdGVkIGJ5IFtBZGFtIENhbXBiZWxsXShodHRwczovL2dpdGh1Yi5jb20vaG90bWV0ZW9yKQotIE1haW50YWluZWQgYnkgW0Jhc3RpZW4gUGhpbGlwcGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9iYXN0aWVuLXBoaSksIFtKYXJyb2QgUGFya2VzXShodHRwczovL2dpdGh1Yi5jb20vamFycm9kcGFya2VzKSwgYW5kIFtBZGFtIENhbXBiZWxsXShodHRwczovL2dpdGh1Yi5jb20vaG90bWV0ZW9yKQotIEluc3BpcmVkIGJ5IFtMYXJhdmVsIE9wZW5BUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9tZHdoZWVsZS9sYXJhdmVsLW9wZW5hcGkpIHBhY2thZ2UgYnkgW0R1c3RpbiBXaGVlbGVyXShodHRwczovL2dpdGh1Yi5jb20vbWR3aGVlbGUpCi0gW0FsbCBDb250cmlidXRvcnNdKC4uLy4uL2NvbnRyaWJ1dG9ycykKCjxhIGhyZWYgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hvdG1ldGVvci9zcGVjdGF0b3IvZ3JhcGhzL2NvbnRyaWJ1dG9ycyI+CiAgPGltZyBzcmMgPSAiaHR0cHM6Ly9jb250cmliLnJvY2tzL2ltYWdlP3JlcG89aG90bWV0ZW9yL3NwZWN0YXRvciIvPgo8L2E+CgpNYWRlIHdpdGggW2NvbnRyaWJ1dG9ycy1pbWddKGh0dHBzOi8vY29udHJpYi5yb2NrcykuCgojIyBMaWNlbnNlCgpUaGUgTUlUIExpY2Vuc2UgKE1JVCkuIFBsZWFzZSBzZWUgW0xpY2Vuc2UgRmlsZV0oTElDRU5TRS5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCg== readmeEtag: '"37d8d44117659bfd1933755f42a09d42e6fc3c5f"' readmeLastModified: Tue, 19 Mar 2024 11:57:51 GMT repositoryId: 267042343 description: OpenAPI testing for PHP created: '2020-05-26T12:54:10Z' updated: '2024-08-21T12:44:49Z' language: PHP archived: false stars: 285 watchers: 6 forks: 52 owner: hotmeteor logo: https://avatars.githubusercontent.com/u/378585?v=4 license: MIT repoEtag: '"a334a4c5a24f5b4dbce8359f72f309f5bd510cecf6fdf9cba917e5374b36ed12"' repoLastModified: Wed, 21 Aug 2024 12:44:49 GMT foundInMaster: true v3_1_link: https://github.com/hotmeteor/spectator/issues/100 id: 21ebf4f7492590e7ac32e77be29af173 - source: https://openapi.tools/ name: APIFuzzer category: Data Validators language: Python source_description: >- Fuzz test your application using your OpenAPI definition without coding. Integrate into CI/CD, get Junit XML test result and JSON report of failures v2: true v3: true link: https://github.com/KissPeter/APIFuzzer repository: https://github.com/kisspeter/apifuzzer repositoryMetadata: base64Readme: >- WyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2dpdHRlci5pbS9BUEktRnV6emVyL0xvYmJ5XShodHRwczovL2JhZGdlcy5naXR0ZXIuaW0vQVBJLUZ1enplci9Mb2JieS5zdmcpXShodHRwczovL2dpdHRlci5pbS9BUEktRnV6emVyL0xvYmJ5P3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UmdXRtX2NvbnRlbnQ9YmFkZ2UpClshW1Rlc3QgQ292ZXJhZ2VdKGh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvYmZjOWJkYTAwZGViNTAwMmI2NjUvdGVzdF9jb3ZlcmFnZSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi9LaXNzUGV0ZXIvQVBJRnV6emVyL3Rlc3RfY292ZXJhZ2UpClshW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlL2VhYjY0MzRkOWJkNzQyZTM4ODBkOGY1ODlhOWNjMGE2KV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9hcHAvS2lzc1BldGVyL0FQSUZ1enplcj91dG1fc291cmNlPWdpdGh1Yi5jb20mdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY29udGVudD1LaXNzUGV0ZXIvQVBJRnV6emVyJnV0bV9jYW1wYWlnbj1iYWRnZXIpClshW01haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy9iZmM5YmRhMDBkZWI1MDAyYjY2NS9tYWludGFpbmFiaWxpdHkpXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvS2lzc1BldGVyL0FQSUZ1enplci9tYWludGFpbmFiaWxpdHkpClshW1B5cGkgZG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZHcvQVBJRnV6emVyKV0oaHR0cHM6Ly9weXBpc3RhdHMub3JnL3BhY2thZ2VzL2FwaWZ1enplcikKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9LaXNzUGV0ZXIvQVBJRnV6emVyL2FjdGlvbnMvd29ya2Zsb3dzL3B5dGhvbi1hcHAueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9LaXNzUGV0ZXIvQVBJRnV6emVyL2FjdGlvbnMpCgojIEFQSUZ1enplciDigJQgSFRUUCBBUEkgVGVzdGluZyBGcmFtZXdvcmsKCkFQSUZ1enplciByZWFkcyB5b3VyIEFQSSBkZXNjcmlwdGlvbiBhbmQgc3RlcCBieSBzdGVwIGZ1enplcyB0aGUgZmllbGRzIHRvIHZhbGlkYXRlIAppZiB5b3UgYXBwbGljYXRpb24gY2FuIGNvcGUgd2l0aCB0aGUgZnV6emVkIHBhcmFtZXRlcnMuIERvZXMgbm90IHJlcXVpcmUgY29kaW5nLgoKIyMgQVBJRnV6emVyIG1haW4gZmVhdHVyZXMKCiogUGFyc2UgQVBJIGRlZmluaXRpb24gZnJvbSBsb2NhbCBmaWxlIG9yIHJlbW90ZSBVUkwKKiBKU09OIGFuZCBZQU1MIGZpbGUgZm9ybWF0IHN1cHBvcnQKKiBBbGwgSFRUUCBtZXRob2RzIGFyZSBzdXBwb3J0ZWQKKiBGdXp6aW5nIG9mIHJlcXVlc3QgYm9keSwgcXVlcnkgc3RyaW5nLCBwYXRoIHBhcmFtZXRlciBhbmQgcmVxdWVzdCBoZWFkZXIgYXJlIHN1cHBvcnRlZAoqIFJlbGllcyBvbiByYW5kb20gbXV0YXRpb25zCiogU3VwcG9ydCBDSSBpbnRlZ3JhdGlvbiAKICAgICogR2VuZXJhdGUgSlVuaXQgWE1MIHRlc3QgcmVwb3J0IGZvcm1hdAogICAgKiBTZW5kIHJlcXVlc3QgdG8gYWx0ZXJuYXRpdmUgVVJMCiAgICAqIFN1cHBvcnQgSFRUUCBiYXNpYyBhdXRoIGZyb20gY29uZmlndXJhdGlvbgogICAgKiBTYXZlIHJlcG9ydCBvZiBmYWlsZWQgdGVzdCBpbiBKU09OIGZvcm1hdCBpbnRvIHRoZSBwcmUtY29uZmlndXJlZCBmb2xkZXIKICAgICogTG9nIHRvIHN0ZG91dCBpbnN0ZWFkIG9mIHN5c2xvZwoqIENvbmZpZ3VyYWJsZSBsb2cgbGV2ZWwKCiMjIyBTdXBwb3J0ZWQgQVBJIGRlZmluaXRpb24gZm9ybWF0cwotIFtTd2FnZ2VyXVtdCi0gW09wZW5BUEldW10KCiMjIyBQbGFubmVkCi0gW0dyYXBoUUxdW10KLSBbQVBJIEJsdWVwcmludF1bXQoKIyMgSW5zdGFsbGF0aW9uCgojIyMgV2l0aCBQSVAKCiMjIyMgUHJlLXJlcXVpcmVtZW50cwoxLiBQeXRob24zCjIuIHN1ZG8gYXB0IGluc3RhbGwgbGliY3VybDQtb3BlbnNzbC1kZXYgbGlic3NsLWRldiBsaWJjdXJsNC1uc3MtZGV2IChvbiBVYnVudHUgMTguMDQsIHJlcXVpcmVkIGJ5IHB5Y3VybCkKMy4gc3VkbyBhcHQgaW5zdGFsbCBnY2MgbGliY3VybDQtbnNzLWRldiAob24gVWJ1bnR1IDIwLjA0LCByZXF1aXJlZCBieSBweWN1cmwpCgpMYXRlc3QgdmVyc2lvbjoKCmBgYHNoZWxsCnBpcDMgaW5zdGFsbCBBUElGdXp6ZXIKYGBgCkRldmVsb3BtZW50IHZlcnNpb246IApGZXRjaCB0aGUgbW9zdCByZWNlbnQgY29kZSBmcm9tIEdpdEh1YgpgYGBzaGVsbAokIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vS2lzc1BldGVyL0FQSUZ1enplci5naXQKYGBgCkluc3RhbGwgcmVxdWlyZW1lbnRzLiBJZiB5b3UgZG9uJ3QgaGF2ZSBwaXAgaW5zdGFsbGVkLCB0aGVuIHN1ZG8gYXB0LWdldCBpbnN0YWxsIHB5dGhvbjMtcGlwIC15IApgYGBzaGVsbAokIHBpcDMgaW5zdGFsbCAtciBBUElGdXp6ZXIvcmVxdWlyZW1lbnRzLnR4dApgYGAKCiMjIyBVc2luZyBEb2NrZXIKCmBgYHNoZWxsCiQgZG9ja2VyIHB1bGwga2lzc3BldGVyL2FwaWZ1enplcjpsYXRlc3QKYGBgCgojIyBRdWljayBTdGFydAoKQ2hlY2sgdGhlIGhlbHAgKHNvbWUgb2YgdGhlbSBhcmUgbm90IGltcGxlbWVudGVkIHlldCk6CmBgYHNoZWxsCgokJCB1c2FnZTogQVBJRnV6emVyIFstaF0gWy1zIFNSQ19GSUxFXSBbLS1zcmNfdXJsIFNSQ19VUkxdIFstciBSRVBPUlRfRElSXSBbLS1sZXZlbCBMRVZFTF0gWy11IEFMVEVSTkFURV9VUkxdIFstdCBURVNUX1JFU1VMVF9EU1RdCiAgICAgICAgICAgICAgICAgWy0tbG9nIHtjcml0aWNhbCxmYXRhbCxlcnJvcix3YXJuLHdhcm5pbmcsaW5mbyxkZWJ1Zyxub3RzZXR9XSBbLS1iYXNpY19vdXRwdXQgQkFTSUNfT1VUUFVUXSBbLS1oZWFkZXJzIEhFQURFUlNdIFstdiAsLS12ZXJzaW9uXQoKQVBJRnV6emVyIGNvbmZpZ3VyYXRpb24KCm9wdGlvbmFsIGFyZ3VtZW50czoKICAtaCwgLS1oZWxwICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdAogIC1zIFNSQ19GSUxFLCAtLXNyY19maWxlIFNSQ19GSUxFCiAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBkZWZpbml0aW9uIGZpbGUgcGF0aC4gSlNPTiBhbmQgWUFNTCBmb3JtYXQgaXMgc3VwcG9ydGVkCiAgLS1zcmNfdXJsIFNSQ19VUkwgICAgIEFQSSBkZWZpbml0aW9uIHVybC4gSlNPTiBhbmQgWUFNTCBmb3JtYXQgaXMgc3VwcG9ydGVkCiAgLXIgUkVQT1JUX0RJUiwgLS1yZXBvcnRfZGlyIFJFUE9SVF9ESVIKICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWN0b3J5IHdoZXJlIGVycm9yIHJlcG9ydHMgd2lsbCBiZSBzYXZlZC4gRGVmYXVsdCBpcyB0ZW1wb3JhbGx5IGdlbmVyYXRlZCBkaXJlY3RvcnkKICAtLWxldmVsIExFVkVMICAgICAgICAgVGVzdCBkZWVwbmVzczogWzEsMl0sIHRoZSBoaWdoZXIgaXMgdGhlIGRlZXBlciAoSW4gcHJvZ3Jlc3MpCiAgLXUgQUxURVJOQVRFX1VSTCwgLS11cmwgQUxURVJOQVRFX1VSTAogICAgICAgICAgICAgICAgICAgICAgICBVc2UgQ0xJIGRlZmluZWQgdXJsIGluc3RlYWQgY29tcGlsZSB0aGUgdXJsIGZyb20gdGhlIEFQSSBkZWZpbml0aW9uLiBVc2VmdWwgZm9yIHRlc3RpbmcKICAtdCBURVNUX1JFU1VMVF9EU1QsIC0tdGVzdF9yZXBvcnQgVEVTVF9SRVNVTFRfRFNUCiAgICAgICAgICAgICAgICAgICAgICAgIEpVbml0IHRlc3QgcmVzdWx0IHhtbCBzYXZlIHBhdGgKICAtLWxvZyB7Y3JpdGljYWwsZmF0YWwsZXJyb3Isd2Fybix3YXJuaW5nLGluZm8sZGVidWcsbm90c2V0fQogICAgICAgICAgICAgICAgICAgICAgICBVc2UgZGlmZmVyZW50IGxvZyBsZXZlbCB0aGFuIHRoZSBkZWZhdWx0IFdBUk5JTkcKICAtLWJhc2ljX291dHB1dCBCQVNJQ19PVVRQVVQKICAgICAgICAgICAgICAgICAgICAgICAgVXNlIGJhc2ljIG91dHB1dCBmb3IgbG9nZ2luZyAodXNlZnVsIGlmIHJ1bm5pbmcgaW4gamVua2lucykuIEV4YW1wbGUgLS1iYXNpY19vdXRwdXQ9VHJ1ZQogIC0taGVhZGVycyBIRUFERVJTICAgICBIdHRwIHJlcXVlc3QgaGVhZGVycyBhZGRlZCB0byBhbGwgcmVxdWVzdC4gRXhhbXBsZTogJ1t7IkF1dGhvcml6YXRpb24iOiAiU3VwZXJTZWNyZXQifSwgeyJBdXRoMiI6ICJhc2QifV0nCgpgYGAKCiMjIFVzYWdlIGV4YW1wbGVzOgoKIyMjIEluc3RhbGxlZCBwYWNrYWdlCgpTdGFydCB0aGUgc2FtcGxlIGFwcGxpY2F0aW9uIChpbnN0YWxsIHRoZSBuZWNlc3NhcnkgcGFja2FnZXMgbGlzdGVkIGluIHRlc3QvcmVxdWlyZW1lbnRzX2Zvcl90ZXN0LnR4dCk6CgpgYGBzaGVsbAokIHB5dGhvbjMgdGVzdC90ZXN0X2FwcGxpY2F0aW9uLnB5CmBgYApTdGFydCB0aGUgZnV6emVyOgoKYGBgc2hlbGwKJCBBUElGdXp6ZXIgLXMgdGVzdC90ZXN0X2FwaS9vcGVuYXBpX3YyLmpzb24gLXUgaHR0cDovLzEyNy4wLjAuMTo1MDAwLyAtciAvdG1wL3JlcG9ydHMvIC0tbG9nIGRlYnVnIApgYGAKQ2hlY2sgdGhlIHJlcG9ydHM6CgpgYGBzaGVsbAokIGxzIC0xIC90bXAvcmVwb3J0cy8KYGBgClJlcG9ydCBleGFtcGxlOgoKYGBgc2hlbGwKJCBqc29uX3BwIDwgL3RtcC9yZXBvcnRzLzc5XzE1NzM5OTM0ODUuNTM5MTUxNy5qc29uCnsKICAgInJlc3BvbnNlIiA6ICJUZXN0IGFwcGxpY2F0aW9uIGV4Y2VwdGlvbjogaW52YWxpZCBsaXRlcmFsIGZvciBpbnQoKSB3aXRoIGJhc2UgMTA6ICcwXFx4MDBcXHgxMCciLAogICAic3ViX3JlcG9ydHMiIDogW10sCiAgICJwYXJzZWRfc3RhdHVzX2NvZGUiIDogNTAwLAogICAic3RhdGUiIDogIkNPTVBMRVRFRCIsCiAgICJ0ZXN0X251bWJlciIgOiA3OSwKICAgInJlcXVlc3RfYm9keSIgOiBudWxsLAogICAicmVhc29uIiA6ICJmYWlsZWQiLAogICAibmFtZSIgOiAidGFyZ2V0IiwKICAgInJlcXVlc3RfdXJsIiA6ICJodHRwOi8vMTI3LjAuMC4xOjUwMDAvZXhjZXB0aW9uLzBcdTAwMDBcdTAwMTAiLAogICAicmVxdWVzdF9tZXRob2QiIDogIkdFVCIsCiAgICJzdGF0dXMiIDogImZhaWxlZCIsCiAgICJyZXF1ZXN0X2hlYWRlcnMiIDogIntcIlVzZXItQWdlbnRcIjogXCJBUElGdXp6ZXJcIiwgXCJBY2NlcHQtRW5jb2RpbmdcIjogXCJnemlwLCBkZWZsYXRlXCIsIFwiQWNjZXB0XCI6IFwiKi8qXCIsIFwiQ29ubmVjdGlvblwiOiBcImtlZXAtYWxpdmVcIn0iCn0KYGBgCgojIyMgRG9ja2VyCgojIyMjIFRlc3RlZCBzZXJ2aWNlIHJ1bnMgb24gZG9ja2VyIGhvc3QKCk5vdGVzIAo+ICogVXNlICBodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWwgaW5zdGVhZCBvZiBodHRwOi8vMTI3LjAuMC4xIG9yIGh0dHA6Ly9sb2NhbGhvc3QgaW4gdGhlIHJlZmVyZW5jZXMuIFJlYWQgW0RvY2tlciBjb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kZXNrdG9wL25ldHdvcmtpbmcvI2ktd2FudC10by1jb25uZWN0LWZyb20tYS1jb250YWluZXItdG8tYS1zZXJ2aWNlLW9uLXRoZS1ob3N0KSBmb3IgZnVydGhlciBleHBsYW5hdGlvbgo+ICogWW91IG5lZWQgdG8gYXR0YWNoIGEgdm9sdW1lIGxpa2UgaW4gdGhpcyBleGFtcGxlIHRvIHNoYXJlIGZpbGVzIGFuZCBmb2xkZXJzIHdpdGggdGhlIGNvbnRhaW5lcjoKCmBgYHNoZWxsCmRvY2tlciBydW4gLS12b2x1bWUgcmVzdWx0czovcmVzdWx0cy8ga2lzc3BldGVyL2FwaWZ1enplciAtLXNyY191cmwgaHR0cDovL2hvc3QuZG9ja2VyLmludGVybmFsOjgwMDAvb3BlbmFwaS5qc29uIC0tdXJsIGh0dHA6Ly9ob3N0LmRvY2tlci5pbnRlcm5hbDo4MDAwIC0tdGVzdF9yZXBvcnQgL3Jlc3VsdHMvanVuaXQueG1sIC0tcmVwb3J0IC9yZXN1bHRzL3JlcG9ydC8gYGBgCmBgYAojIyMjIFRlc3RlZCBzZXJ2aWNlIHJ1bnMgaW4gb3RoZXIgZG9ja2VyIGNvbnRhaW5lcgpOb3RlcyAKPiAqIERlZmluZSBgLS1uZXRgIGF0IHN0YXJ0dXAgdG8gYXR0YWNoIHRoaXMgZG9ja2VyIHRvIGFuIGV4aXN0aW5nIG5ldHdvcmsuIFJlYWQgW0RvY2tlciBjb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9uZXR3b3JrL25ldHdvcmstdHV0b3JpYWwtc3RhbmRhbG9uZS8jdXNlLXVzZXItZGVmaW5lZC1icmlkZ2UtbmV0d29ya3MpIGZvciBmdXJ0aGVyIGV4cGxhbmF0aW9uCj4gKiBVc2UgIGh0dHA6Ly9DT05UQUlORVJOQU1FIGluc3RlYWQgb2YgaHR0cDovLzEyNy4wLjAuMSBvciBodHRwOi8vbG9jYWxob3N0IGluIHRoZSByZWZlcmVuY2VzLiAKPiAqIFlvdSBuZWVkIHRvIGF0dGFjaCBhIHZvbHVtZSBsaWtlIGluIHRoaXMgZXhhbXBsZSB0byBzaGFyZSBmaWxlcyBhbmQgZm9sZGVycyB3aXRoIHRoZSBjb250YWluZXI6CgpgYGBzaGVsbApkb2NrZXIgcnVuIC0tdm9sdW1lIHJlc3VsdHM6L3Jlc3VsdHMvIGtpc3NwZXRlci9hcGlmdXp6ZXIgLS1uZXQgZmFzdGFwaS1wZXJmb3JtYW5jZS1vcHRpbWl6YXRpb25fZGVmYXVsdCBraXNzcGV0ZXIvYXBpZnV6emVyIC0tc3JjX3VybCBodHRwOi8vZmFzdGFwaS1wZXJmb3JtYW5jZS1vcHRpbWl6YXRpb246ODAwMC9vcGVuYXBpLmpzb24gLXUgaHR0cDovL2Zhc3RhcGktcGVyZm9ybWFuY2Utb3B0aW1pemF0aW9uOjgwMDAgLS10ZXN0X3JlcG9ydCAvcmVzdWx0cy9qdW5pdC54bWwgLS1yZXBvcnQgL3Jlc3VsdHMvcmVwb3J0L2BgYApgYGAKCltBUEkgQmx1ZXByaW50XTogaHR0cHM6Ly9hcGlibHVlcHJpbnQub3JnLwpbU3dhZ2dlcl06IGh0dHA6Ly9zd2FnZ2VyLmlvLwpbT3BlbkFQSV06IGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYWJvdXQvCltHcmFwaFFMXTogaHR0cHM6Ly9ncmFwaHFsLm9yZy8K readmeEtag: '"3763bbba6ba5ba662de109a5882d73f11fdd92b9"' readmeLastModified: Tue, 16 Jul 2024 11:41:35 GMT repositoryId: 116009897 description: >- Fuzz test your application using your OpenAPI or Swagger API definition without coding created: '2018-01-02T11:49:13Z' updated: '2024-09-02T05:01:01Z' language: Python archived: false stars: 414 watchers: 9 forks: 65 owner: KissPeter logo: https://avatars.githubusercontent.com/u/19633417?v=4 license: GPL-3.0 repoEtag: '"b37e571a1464ee99647acead4b761c1fd17d1e58d609f1981337b664f8c23860"' repoLastModified: Mon, 02 Sep 2024 05:01:01 GMT foundInMaster: true id: bd38b4a53d7dcb21f05b494be14573e6 - source: https://openapi.tools/ name: Django REST Framework language: Python link: https://www.django-rest-framework.org/api-guide/schemas/ repository: https://github.com/encode/django-rest-framework source_description: > Automates generation of OpenAPI 3 description documents either as a static file (via CLI command) or a dynamic view within the Django REST Framework (DRF) application. v2: false v3: true repositoryMetadata: base64Readme: >- IyBbRGphbmdvIFJFU1QgZnJhbWV3b3JrXVtkb2NzXQoKWyFbYnVpbGQtc3RhdHVzLWltYWdlXV1bYnVpbGQtc3RhdHVzXQpbIVtjb3ZlcmFnZS1zdGF0dXMtaW1hZ2VdXVtjb2RlY292XQpbIVtweXBpLXZlcnNpb25dXVtweXBpXQoKKipBd2Vzb21lIHdlYi1icm93c2FibGUgV2ViIEFQSXMuKioKCkZ1bGwgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHByb2plY3QgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL3d3dy5kamFuZ28tcmVzdC1mcmFtZXdvcmsub3JnL11bZG9jc10uCgotLS0KCiMgRnVuZGluZwoKUkVTVCBmcmFtZXdvcmsgaXMgYSAqY29sbGFib3JhdGl2ZWx5IGZ1bmRlZCBwcm9qZWN0Ki4gSWYgeW91IHVzZQpSRVNUIGZyYW1ld29yayBjb21tZXJjaWFsbHkgd2Ugc3Ryb25nbHkgZW5jb3VyYWdlIHlvdSB0byBpbnZlc3QgaW4gaXRzCmNvbnRpbnVlZCBkZXZlbG9wbWVudCBieSBbc2lnbmluZyB1cCBmb3IgYSBwYWlkIHBsYW5dW2Z1bmRpbmddLgoKVGhlIGluaXRpYWwgYWltIGlzIHRvIHByb3ZpZGUgYSBzaW5nbGUgZnVsbC10aW1lIHBvc2l0aW9uIG9uIFJFU1QgZnJhbWV3b3JrLgoqRXZlcnkgc2luZ2xlIHNpZ24tdXAgbWFrZXMgYSBzaWduaWZpY2FudCBpbXBhY3QgdG93YXJkcyBtYWtpbmcgdGhhdCBwb3NzaWJsZS4qCgpbIVtdW3NlbnRyeS1pbWddXVtzZW50cnktdXJsXQpbIVtdW3N0cmVhbS1pbWddXVtzdHJlYW0tdXJsXQpbIVtdW3NwYWNpbm92LWltZ11dW3NwYWNpbm92LXVybF0KWyFbXVtyZXRvb2wtaW1nXV1bcmV0b29sLXVybF0KWyFbXVtiaXRpby1pbWddXVtiaXRpby11cmxdClshW11bcG9zdGhvZy1pbWddXVtwb3N0aG9nLXVybF0KWyFbXVtjcnlwdGFwaS1pbWddXVtjcnlwdGFwaS11cmxdClshW11bZmV6dG8taW1nXV1bZmV6dG8tdXJsXQpbIVtdW3N2aXgtaW1nXV1bc3ZpeC11cmxdClshW11benVwbG8taW1nXV1benVwbG8tdXJsXQoKTWFueSB0aGFua3MgdG8gYWxsIG91ciBbd29uZGVyZnVsIHNwb25zb3JzXVtzcG9uc29yc10sIGFuZCBpbiBwYXJ0aWN1bGFyIHRvIG91ciBwcmVtaXVtIGJhY2tlcnMsIFtTZW50cnldW3NlbnRyeS11cmxdLCBbU3RyZWFtXVtzdHJlYW0tdXJsXSwgW1NwYWNpbm92XVtzcGFjaW5vdi11cmxdLCBbUmV0b29sXVtyZXRvb2wtdXJsXSwgW2JpdC5pb11bYml0aW8tdXJsXSwgW1Bvc3RIb2ddW3Bvc3Rob2ctdXJsXSwgW0NyeXB0QVBJXVtjcnlwdGFwaS11cmxdLCBbRkVaVE9dW2ZlenRvLXVybF0sIFtTdml4XVtzdml4LXVybF0sIGFuZCBbWnVwbG9dW3p1cGxvLXVybF0uCgotLS0KCiMgT3ZlcnZpZXcKCkRqYW5nbyBSRVNUIGZyYW1ld29yayBpcyBhIHBvd2VyZnVsIGFuZCBmbGV4aWJsZSB0b29sa2l0IGZvciBidWlsZGluZyBXZWIgQVBJcy4KClNvbWUgcmVhc29ucyB5b3UgbWlnaHQgd2FudCB0byB1c2UgUkVTVCBmcmFtZXdvcms6CgoqIFRoZSBXZWIgYnJvd3NhYmxlIEFQSSBpcyBhIGh1Z2UgdXNhYmlsaXR5IHdpbiBmb3IgeW91ciBkZXZlbG9wZXJzLgoqIFtBdXRoZW50aWNhdGlvbiBwb2xpY2llc11bYXV0aGVudGljYXRpb25dIGluY2x1ZGluZyBvcHRpb25hbCBwYWNrYWdlcyBmb3IgW09BdXRoMWFdW29hdXRoMS1zZWN0aW9uXSBhbmQgW09BdXRoMl1bb2F1dGgyLXNlY3Rpb25dLgoqIFtTZXJpYWxpemF0aW9uXVtzZXJpYWxpemVyc10gdGhhdCBzdXBwb3J0cyBib3RoIFtPUk1dW21vZGVsc2VyaWFsaXplci1zZWN0aW9uXSBhbmQgW25vbi1PUk1dW3NlcmlhbGl6ZXItc2VjdGlvbl0gZGF0YSBzb3VyY2VzLgoqIEN1c3RvbWl6YWJsZSBhbGwgdGhlIHdheSBkb3duIC0ganVzdCB1c2UgW3JlZ3VsYXIgZnVuY3Rpb24tYmFzZWQgdmlld3NdW2Z1bmN0aW9udmlldy1zZWN0aW9uXSBpZiB5b3UgZG9uJ3QgbmVlZCB0aGUgW21vcmVdW2dlbmVyaWMtdmlld3NdIFtwb3dlcmZ1bF1bdmlld3NldHNdIFtmZWF0dXJlc11bcm91dGVyc10uCiogW0V4dGVuc2l2ZSBkb2N1bWVudGF0aW9uXVtkb2NzXSwgYW5kIFtncmVhdCBjb21tdW5pdHkgc3VwcG9ydF1bZ3JvdXBdLgoKKipCZWxvdyoqOiAqU2NyZWVuc2hvdCBmcm9tIHRoZSBicm93c2FibGUgQVBJKgoKIVtTY3JlZW5zaG90XVtpbWFnZV0KCi0tLS0KCiMgUmVxdWlyZW1lbnRzCgoqIFB5dGhvbiAzLjgrCiogRGphbmdvIDUuMCwgNC4yCgpXZSAqKmhpZ2hseSByZWNvbW1lbmQqKiBhbmQgb25seSBvZmZpY2lhbGx5IHN1cHBvcnQgdGhlIGxhdGVzdCBwYXRjaCByZWxlYXNlIG9mCmVhY2ggUHl0aG9uIGFuZCBEamFuZ28gc2VyaWVzLgoKIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdXNpbmcgYHBpcGAuLi4KCiAgICBwaXAgaW5zdGFsbCBkamFuZ29yZXN0ZnJhbWV3b3JrCgpBZGQgYCdyZXN0X2ZyYW1ld29yaydgIHRvIHlvdXIgYElOU1RBTExFRF9BUFBTYCBzZXR0aW5nLgpgYGBweXRob24KSU5TVEFMTEVEX0FQUFMgPSBbCiAgICAuLi4KICAgICdyZXN0X2ZyYW1ld29yaycsCl0KYGBgCgojIEV4YW1wbGUKCkxldCdzIHRha2UgYSBsb29rIGF0IGEgcXVpY2sgZXhhbXBsZSBvZiB1c2luZyBSRVNUIGZyYW1ld29yayB0byBidWlsZCBhIHNpbXBsZSBtb2RlbC1iYWNrZWQgQVBJIGZvciBhY2Nlc3NpbmcgdXNlcnMgYW5kIGdyb3Vwcy4KClN0YXJ0dXAgdXAgYSBuZXcgcHJvamVjdCBsaWtlIHNvLi4uCgogICAgcGlwIGluc3RhbGwgZGphbmdvCiAgICBwaXAgaW5zdGFsbCBkamFuZ29yZXN0ZnJhbWV3b3JrCiAgICBkamFuZ28tYWRtaW4gc3RhcnRwcm9qZWN0IGV4YW1wbGUgLgogICAgLi9tYW5hZ2UucHkgbWlncmF0ZQogICAgLi9tYW5hZ2UucHkgY3JlYXRlc3VwZXJ1c2VyCgoKTm93IGVkaXQgdGhlIGBleGFtcGxlL3VybHMucHlgIG1vZHVsZSBpbiB5b3VyIHByb2plY3Q6CgpgYGBweXRob24KZnJvbSBkamFuZ28uY29udHJpYi5hdXRoLm1vZGVscyBpbXBvcnQgVXNlcgpmcm9tIGRqYW5nby51cmxzIGltcG9ydCBpbmNsdWRlLCBwYXRoCmZyb20gcmVzdF9mcmFtZXdvcmsgaW1wb3J0IHJvdXRlcnMsIHNlcmlhbGl6ZXJzLCB2aWV3c2V0cwoKCiMgU2VyaWFsaXplcnMgZGVmaW5lIHRoZSBBUEkgcmVwcmVzZW50YXRpb24uCmNsYXNzIFVzZXJTZXJpYWxpemVyKHNlcmlhbGl6ZXJzLkh5cGVybGlua2VkTW9kZWxTZXJpYWxpemVyKToKICAgIGNsYXNzIE1ldGE6CiAgICAgICAgbW9kZWwgPSBVc2VyCiAgICAgICAgZmllbGRzID0gWyd1cmwnLCAndXNlcm5hbWUnLCAnZW1haWwnLCAnaXNfc3RhZmYnXQoKCiMgVmlld1NldHMgZGVmaW5lIHRoZSB2aWV3IGJlaGF2aW9yLgpjbGFzcyBVc2VyVmlld1NldCh2aWV3c2V0cy5Nb2RlbFZpZXdTZXQpOgogICAgcXVlcnlzZXQgPSBVc2VyLm9iamVjdHMuYWxsKCkKICAgIHNlcmlhbGl6ZXJfY2xhc3MgPSBVc2VyU2VyaWFsaXplcgoKCiMgUm91dGVycyBwcm92aWRlIGEgd2F5IG9mIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5pbmcgdGhlIFVSTCBjb25mLgpyb3V0ZXIgPSByb3V0ZXJzLkRlZmF1bHRSb3V0ZXIoKQpyb3V0ZXIucmVnaXN0ZXIocid1c2VycycsIFVzZXJWaWV3U2V0KQoKIyBXaXJlIHVwIG91ciBBUEkgdXNpbmcgYXV0b21hdGljIFVSTCByb3V0aW5nLgojIEFkZGl0aW9uYWxseSwgd2UgaW5jbHVkZSBsb2dpbiBVUkxzIGZvciB0aGUgYnJvd3NhYmxlIEFQSS4KdXJscGF0dGVybnMgPSBbCiAgICBwYXRoKCcnLCBpbmNsdWRlKHJvdXRlci51cmxzKSksCiAgICBwYXRoKCdhcGktYXV0aC8nLCBpbmNsdWRlKCdyZXN0X2ZyYW1ld29yay51cmxzJywgbmFtZXNwYWNlPSdyZXN0X2ZyYW1ld29yaycpKSwKXQpgYGAKCldlJ2QgYWxzbyBsaWtlIHRvIGNvbmZpZ3VyZSBhIGNvdXBsZSBvZiBzZXR0aW5ncyBmb3Igb3VyIEFQSS4KCkFkZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIgYHNldHRpbmdzLnB5YCBtb2R1bGU6CgpgYGBweXRob24KSU5TVEFMTEVEX0FQUFMgPSBbCiAgICAuLi4gICMgTWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgaW5zdGFsbGVkIGFwcHMgaGVyZS4KICAgICdyZXN0X2ZyYW1ld29yaycsCl0KClJFU1RfRlJBTUVXT1JLID0gewogICAgIyBVc2UgRGphbmdvJ3Mgc3RhbmRhcmQgYGRqYW5nby5jb250cmliLmF1dGhgIHBlcm1pc3Npb25zLAogICAgIyBvciBhbGxvdyByZWFkLW9ubHkgYWNjZXNzIGZvciB1bmF1dGhlbnRpY2F0ZWQgdXNlcnMuCiAgICAnREVGQVVMVF9QRVJNSVNTSU9OX0NMQVNTRVMnOiBbCiAgICAgICAgJ3Jlc3RfZnJhbWV3b3JrLnBlcm1pc3Npb25zLkRqYW5nb01vZGVsUGVybWlzc2lvbnNPckFub25SZWFkT25seScsCiAgICBdCn0KYGBgCgpUaGF0J3MgaXQsIHdlJ3JlIGRvbmUhCgogICAgLi9tYW5hZ2UucHkgcnVuc2VydmVyCgpZb3UgY2FuIG5vdyBvcGVuIHRoZSBBUEkgaW4geW91ciBicm93c2VyIGF0IGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvYCwgYW5kIHZpZXcgeW91ciBuZXcgJ3VzZXJzJyBBUEkuIElmIHlvdSB1c2UgdGhlIGBMb2dpbmAgY29udHJvbCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciB5b3UnbGwgYWxzbyBiZSBhYmxlIHRvIGFkZCwgY3JlYXRlIGFuZCBkZWxldGUgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLgoKWW91IGNhbiBhbHNvIGludGVyYWN0IHdpdGggdGhlIEFQSSB1c2luZyBjb21tYW5kIGxpbmUgdG9vbHMgc3VjaCBhcyBbYGN1cmxgXShodHRwczovL2N1cmwuaGF4eC5zZS8pLiBGb3IgZXhhbXBsZSwgdG8gbGlzdCB0aGUgdXNlcnMgZW5kcG9pbnQ6CgogICAgJCBjdXJsIC1IICdBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb247IGluZGVudD00JyAtdSBhZG1pbjpwYXNzd29yZCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvdXNlcnMvCiAgICBbCiAgICAgICAgewogICAgICAgICAgICAidXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC91c2Vycy8xLyIsCiAgICAgICAgICAgICJ1c2VybmFtZSI6ICJhZG1pbiIsCiAgICAgICAgICAgICJlbWFpbCI6ICJhZG1pbkBleGFtcGxlLmNvbSIsCiAgICAgICAgICAgICJpc19zdGFmZiI6IHRydWUsCiAgICAgICAgfQogICAgXQoKT3IgdG8gY3JlYXRlIGEgbmV3IHVzZXI6CgogICAgJCBjdXJsIC1YIFBPU1QgLWQgdXNlcm5hbWU9bmV3IC1kIGVtYWlsPW5ld0BleGFtcGxlLmNvbSAtZCBpc19zdGFmZj1mYWxzZSAtSCAnQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uOyBpbmRlbnQ9NCcgLXUgYWRtaW46cGFzc3dvcmQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3VzZXJzLwogICAgewogICAgICAgICJ1cmwiOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3VzZXJzLzIvIiwKICAgICAgICAidXNlcm5hbWUiOiAibmV3IiwKICAgICAgICAiZW1haWwiOiAibmV3QGV4YW1wbGUuY29tIiwKICAgICAgICAiaXNfc3RhZmYiOiBmYWxzZSwKICAgIH0KCiMgRG9jdW1lbnRhdGlvbiAmIFN1cHBvcnQKCkZ1bGwgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHByb2plY3QgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL3d3dy5kamFuZ28tcmVzdC1mcmFtZXdvcmsub3JnL11bZG9jc10uCgpGb3IgcXVlc3Rpb25zIGFuZCBzdXBwb3J0LCB1c2UgdGhlIFtSRVNUIGZyYW1ld29yayBkaXNjdXNzaW9uIGdyb3VwXVtncm91cF0sIG9yIGAjcmVzdGZyYW1ld29ya2Agb24gbGliZXJhLmNoYXQgSVJDLgoKIyBTZWN1cml0eQoKUGxlYXNlIHNlZSB0aGUgW3NlY3VyaXR5IHBvbGljeV1bc2VjdXJpdHktcG9saWN5XS4KCltidWlsZC1zdGF0dXMtaW1hZ2VdOiBodHRwczovL2dpdGh1Yi5jb20vZW5jb2RlL2RqYW5nby1yZXN0LWZyYW1ld29yay9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbC9iYWRnZS5zdmcKW2J1aWxkLXN0YXR1c106IGh0dHBzOi8vZ2l0aHViLmNvbS9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrL2FjdGlvbnMvd29ya2Zsb3dzL21haW4ueW1sCltjb3ZlcmFnZS1zdGF0dXMtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvZW5jb2RlL2RqYW5nby1yZXN0LWZyYW1ld29yay9tYXN0ZXIuc3ZnCltjb2RlY292XTogaHR0cHM6Ly9jb2RlY292LmlvL2dpdGh1Yi9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrP2JyYW5jaD1tYXN0ZXIKW3B5cGktdmVyc2lvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L2RqYW5nb3Jlc3RmcmFtZXdvcmsuc3ZnCltweXBpXTogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2RqYW5nb3Jlc3RmcmFtZXdvcmsvCltncm91cF06IGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vP2Zyb21ncm91cHMjIWZvcnVtL2RqYW5nby1yZXN0LWZyYW1ld29yawoKW2Z1bmRpbmddOiBodHRwczovL2Z1bmQuZGphbmdvLXJlc3QtZnJhbWV3b3JrLm9yZy90b3BpY3MvZnVuZGluZy8KW3Nwb25zb3JzXTogaHR0cHM6Ly9mdW5kLmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvdG9waWNzL2Z1bmRpbmcvI291ci1zcG9uc29ycwoKW3NlbnRyeS1pbWddOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW5jb2RlL2RqYW5nby1yZXN0LWZyYW1ld29yay9tYXN0ZXIvZG9jcy9pbWcvcHJlbWl1bS9zZW50cnktcmVhZG1lLnBuZwpbc3RyZWFtLWltZ106IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrL21hc3Rlci9kb2NzL2ltZy9wcmVtaXVtL3N0cmVhbS1yZWFkbWUucG5nCltzcGFjaW5vdi1pbWddOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW5jb2RlL2RqYW5nby1yZXN0LWZyYW1ld29yay9tYXN0ZXIvZG9jcy9pbWcvcHJlbWl1bS9zcGFjaW5vdi1yZWFkbWUucG5nCltyZXRvb2wtaW1nXTogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VuY29kZS9kamFuZ28tcmVzdC1mcmFtZXdvcmsvbWFzdGVyL2RvY3MvaW1nL3ByZW1pdW0vcmV0b29sLXJlYWRtZS5wbmcKW2JpdGlvLWltZ106IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrL21hc3Rlci9kb2NzL2ltZy9wcmVtaXVtL2JpdGlvLXJlYWRtZS5wbmcKW3Bvc3Rob2ctaW1nXTogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VuY29kZS9kamFuZ28tcmVzdC1mcmFtZXdvcmsvbWFzdGVyL2RvY3MvaW1nL3ByZW1pdW0vcG9zdGhvZy1yZWFkbWUucG5nCltjcnlwdGFwaS1pbWddOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW5jb2RlL2RqYW5nby1yZXN0LWZyYW1ld29yay9tYXN0ZXIvZG9jcy9pbWcvcHJlbWl1bS9jcnlwdGFwaS1yZWFkbWUucG5nCltmZXp0by1pbWddOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW5jb2RlL2RqYW5nby1yZXN0LWZyYW1ld29yay9tYXN0ZXIvZG9jcy9pbWcvcHJlbWl1bS9mZXp0by1yZWFkbWUucG5nCltzdml4LWltZ106IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrL21hc3Rlci9kb2NzL2ltZy9wcmVtaXVtL3N2aXgtcHJlbWl1bS5wbmcKW3p1cGxvLWltZ106IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrL21hc3Rlci9kb2NzL2ltZy9wcmVtaXVtL3p1cGxvLXJlYWRtZS5wbmcKCltzZW50cnktdXJsXTogaHR0cHM6Ly9nZXRzZW50cnkuY29tL3dlbGNvbWUvCltzdHJlYW0tdXJsXTogaHR0cHM6Ly9nZXRzdHJlYW0uaW8vP3V0bV9zb3VyY2U9RGphbmdvUkVTVEZyYW1ld29yayZ1dG1fbWVkaXVtPVdlYnBhZ2VfTG9nb19BZCZ1dG1fY29udGVudD1EZXZlbG9wZXImdXRtX2NhbXBhaWduPURqYW5nb1JFU1RGcmFtZXdvcmtfSmFuMjAyMl9Ib21lUGFnZQpbc3BhY2lub3YtdXJsXTogaHR0cHM6Ly93d3cuc3BhY2lub3YuY29tLwpbcmV0b29sLXVybF06IGh0dHBzOi8vcmV0b29sLmNvbS8/dXRtX3NvdXJjZT1kamFuZ29yZXN0JnV0bV9tZWRpdW09c3BvbnNvcnNoaXAKW2JpdGlvLXVybF06IGh0dHBzOi8vYml0LmlvL2pvYnM/dXRtX3NvdXJjZT1EUkYmdXRtX21lZGl1bT1zcG9uc29yJnV0bV9jYW1wYWlnbj1EUkZfc3BvbnNvcnNoaXAKW3Bvc3Rob2ctdXJsXTogaHR0cHM6Ly9wb3N0aG9nLmNvbT91dG1fc291cmNlPWRyZiZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vcGVuLXNvdXJjZS1zcG9uc29yc2hpcApbY3J5cHRhcGktdXJsXTogaHR0cHM6Ly9jcnlwdGFwaS5pbwpbZmV6dG8tdXJsXTogaHR0cHM6Ly93d3cuZmV6dG8ueHl6Lz91dG1fc291cmNlPURqYW5nb1JFU1RGcmFtZXdvcmsKW3N2aXgtdXJsXTogaHR0cHM6Ly93d3cuc3ZpeC5jb20vP3V0bV9zb3VyY2U9ZGphbmdvLVJFU1QmdXRtX21lZGl1bT1zcG9uc29yc2hpcApbenVwbG8tdXJsXTogaHR0cHM6Ly96dXBsby5saW5rL2RqYW5nby1naAoKW29hdXRoMS1zZWN0aW9uXTogaHR0cHM6Ly93d3cuZGphbmdvLXJlc3QtZnJhbWV3b3JrLm9yZy9hcGktZ3VpZGUvYXV0aGVudGljYXRpb24vI2RqYW5nby1yZXN0LWZyYW1ld29yay1vYXV0aApbb2F1dGgyLXNlY3Rpb25dOiBodHRwczovL3d3dy5kamFuZ28tcmVzdC1mcmFtZXdvcmsub3JnL2FwaS1ndWlkZS9hdXRoZW50aWNhdGlvbi8jZGphbmdvLW9hdXRoLXRvb2xraXQKW3NlcmlhbGl6ZXItc2VjdGlvbl06IGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvYXBpLWd1aWRlL3NlcmlhbGl6ZXJzLyNzZXJpYWxpemVycwpbbW9kZWxzZXJpYWxpemVyLXNlY3Rpb25dOiBodHRwczovL3d3dy5kamFuZ28tcmVzdC1mcmFtZXdvcmsub3JnL2FwaS1ndWlkZS9zZXJpYWxpemVycy8jbW9kZWxzZXJpYWxpemVyCltmdW5jdGlvbnZpZXctc2VjdGlvbl06IGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvYXBpLWd1aWRlL3ZpZXdzLyNmdW5jdGlvbi1iYXNlZC12aWV3cwpbZ2VuZXJpYy12aWV3c106IGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvYXBpLWd1aWRlL2dlbmVyaWMtdmlld3MvClt2aWV3c2V0c106IGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvYXBpLWd1aWRlL3ZpZXdzZXRzLwpbcm91dGVyc106IGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvYXBpLWd1aWRlL3JvdXRlcnMvCltzZXJpYWxpemVyc106IGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvYXBpLWd1aWRlL3NlcmlhbGl6ZXJzLwpbYXV0aGVudGljYXRpb25dOiBodHRwczovL3d3dy5kamFuZ28tcmVzdC1mcmFtZXdvcmsub3JnL2FwaS1ndWlkZS9hdXRoZW50aWNhdGlvbi8KW2ltYWdlXTogaHR0cHM6Ly93d3cuZGphbmdvLXJlc3QtZnJhbWV3b3JrLm9yZy9pbWcvcXVpY2tzdGFydC5wbmcKCltkb2NzXTogaHR0cHM6Ly93d3cuZGphbmdvLXJlc3QtZnJhbWV3b3JrLm9yZy8KW3NlY3VyaXR5LXBvbGljeV06IGh0dHBzOi8vZ2l0aHViLmNvbS9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrL3NlY3VyaXR5L3BvbGljeQo= readmeEtag: '"fc44a461e6cc4f00d97f18021ada6db20d74e9de"' readmeLastModified: Mon, 05 Aug 2024 13:26:41 GMT repositoryId: 1431547 description: Web APIs for Django. 🎸 created: '2011-03-02T17:13:56Z' updated: '2024-09-06T01:41:05Z' language: Python archived: false stars: 28096 watchers: 624 forks: 6802 owner: encode logo: https://avatars.githubusercontent.com/u/19159390?v=4 license: NOASSERTION repoEtag: '"75bba692c86349ea5ba5d3c22a89d5e5485fdd0f3afa038e2341db81370090a4"' repoLastModified: Fri, 06 Sep 2024 01:41:05 GMT foundInMaster: true id: fb8994c078a380cc3510b024f6ed1202 category: Server Implementations - source: https://openapi.tools/ name: RESTest category: Testing language: Java source_description: > RESTest is a framework for automated black-box testing of RESTful web APIs. It follows a model-based approach, where test cases are automatically derived from the OpenAPI description document (OAS) of the API under test. v2: true v3: true v3_1: false link: https://github.com/isa-group/RESTest repository: https://github.com/isa-group/restest repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vcGVyc29uYWxlcy51cy5lcy9zZXJnaW9zZWd1cmEvd3AtY29udGVudC91cGxvYWRzLzIwMjEvMDEvUkVTVExvZ29fQmxhY2sucG5nIiBhbHQ9IlJFU1Rlc3QgTG9nbyIgd2lkdGg9IjIwMHB4Ii8+CgpbIVtNYXZlbiBDZW50cmFsXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvZXMudXMuaXNhL3Jlc3Rlc3QvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2VzLnVzLmlzYS9yZXN0ZXN0KQpbIVtqYXZhZG9jXShodHRwczovL2phdmFkb2MuaW8vYmFkZ2UyL2VzLnVzLmlzYS9yZXN0ZXN0L2phdmFkb2Muc3ZnKV0oaHR0cHM6Ly9qYXZhZG9jLmlvL2RvYy9lcy51cy5pc2EvcmVzdGVzdCkKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9pc2EtZ3JvdXAvUkVTVGVzdC5zdmc/c3R5bGU9c3ZnKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvaXNhLWdyb3VwL1JFU1Rlc3QpClshW1Rlc3QgY292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWlzYS1ncm91cF9SRVNUZXN0Jm1ldHJpYz1jb3ZlcmFnZSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9jb21wb25lbnRfbWVhc3VyZXM/aWQ9aXNhLWdyb3VwX1JFU1Rlc3QmbWV0cmljPUNvdmVyYWdlKQpbIVtNYWludGFpbmFiaWxpdHldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWlzYS1ncm91cF9SRVNUZXN0Jm1ldHJpYz1zcWFsZV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vY29tcG9uZW50X21lYXN1cmVzP2lkPWlzYS1ncm91cF9SRVNUZXN0Jm1ldHJpYz1NYWludGFpbmFiaWxpdHkpClshW1JlbGlhYmlsaXR5XShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1pc2EtZ3JvdXBfUkVTVGVzdCZtZXRyaWM9cmVsaWFiaWxpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2NvbXBvbmVudF9tZWFzdXJlcz9pZD1pc2EtZ3JvdXBfUkVTVGVzdCZtZXRyaWM9UmVsaWFiaWxpdHkpClshW1NlY3VyaXR5XShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1pc2EtZ3JvdXBfUkVTVGVzdCZtZXRyaWM9c2VjdXJpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2NvbXBvbmVudF9tZWFzdXJlcz9pZD1pc2EtZ3JvdXBfUkVTVGVzdCZtZXRyaWM9U2VjdXJpdHkpCgpSRVNUZXN0IGlzIGEgZnJhbWV3b3JrIGZvciBhdXRvbWF0ZWQgYmxhY2stYm94IHRlc3Rpbmcgb2YgUkVTVGZ1bCB3ZWIgQVBJcy4gSXQgZm9sbG93cyBhIG1vZGVsLWJhc2VkIGFwcHJvYWNoLCB3aGVyZSB0ZXN0IGNhc2VzIGFyZSBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgW09wZW5BUEkgU3BlY2lmaWNhdGlvbiAoT0FTKV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgb2YgdGhlIEFQSSB1bmRlciB0ZXN0LiBObyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGlzIHJlcXVpcmVkLCB3aGljaCBtYWtlcyBpdCBwb3NzaWJsZSB0byB0ZXN0IEFQSXMgd3JpdHRlbiBpbiBhbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHJ1bm5pbmcgaW4gbG9jYWwgb3IgcmVtb3RlIHNlcnZlcnMuCgojIyBJbmRleAoxLiBbUkVTVGVzdCBXaWtpXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QjcmVzdGVzdC13aWtpKQoKMi4gW1F1aWNrIGV4YW1wbGVzXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QjcXVpY2stZXhhbXBsZXMpCiAgIDEuIFtVc2luZyB0aGUgc3lzdGVtIHByb2dyYW1tYXRpY2FsbHldKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdCN1c2luZy10aGUtc3lzdGVtLXByb2dyYW1tYXRpY2FsbHkpCiAgICAgIDEuIFtHZW5lcmF0aW5nIHRlc3QgY2FzZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdCNnZW5lcmF0aW5nLXRlc3QtY2FzZXMpCiAgICAgIDIuIFtHZW5lcmF0aW5nIGFuZCBydW5uaW5nIHRlc3QgY2FzZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdCNnZW5lcmF0aW5nLWFuZC1ydW5uaW5nLXRlc3QtY2FzZXMpCiAgICAgIDMuIFtHZW5lcmF0aW5nIGFuZCBydW5uaW5nIHRlc3QgY2FzZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdCNydW5uaW5nLXRlc3QtY2FzZXMpCiAgIDIuIFtVc2luZyB0aGUgc3lzdGVtIHZpYSB0aGUgY29tbWFuZC1saW5lIGludGVyZmFjZV0oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0I3VzaW5nLXRoZS1zeXN0ZW0tdmlhLXRoZS1jb21tYW5kLWxpbmUtaW50ZXJmYWNlKQogICAgICAxLiBbR2VuZXJhdGUsIEV4ZWN1dGUsIGFuZCBHZW5lcmF0ZSBSZXBvcnRzIGJhc2VkIG9uIE9wZW5BUEkgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0I2dlbmVyYXRlLC1leGVjdXRlLC1hbmQtZ2VuZXJhdGUtcmVwb3J0cy1iYXNlZC1vbi1vcGVuYXBpLXNwZWNpZmljYXRpb24pCiAgICAgIDIuIFtDcmVhdGUgYSBUZXN0IENvbmZpZ3VyYXRpb24gRmlsZV0oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0I2NyZWF0ZS1hLXRlc3QtY29uZmlndXJhdGlvbi1maWxlKQogICAgICAzLiBbR2VuZXJhdGUgVGVzdCBDYXNlc10oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0I2dlbmVyYXRlLXRlc3QtY2FzZXMpCiAgICAgIDQuIFtFeGVjdXRlIFRlc3QgQ2FzZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdCNleGVjdXRlLXRlc3QtY2FzZXMpCiAgICAgIDUuIFtHZW5lcmF0ZSBhbmQgRXhlY3V0ZSBUZXN0IENhc2VzXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QjZ2VuZXJhdGUtYW5kLWV4ZWN1dGUtdGVzdC1jYXNlcykKMy4gW0hvdyBkb2VzIGl0IHdvcms/XShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QjaG93LWRvZXMtaXQtd29yaykKNC4gW1doYXQgY2FuIEkgZG8gd2l0aCBSRVNUZXN0P10oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0I3doYXQtY2FuLWktZG8td2l0aC1yZXN0ZXN0KQo1LiBbUnVubmluZyBSRVNUZXN0IGFzIGEgSkFSXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QjcnVubmluZy1yZXN0ZXN0LWFzLWEtamFyKQogICAxLiBbT3B0aW9uIDE6IEJ1aWxkIFJFU1Rlc3QgZnJvbSBzb3VyY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdCNvcHRpb24tMS1idWlsZC1yZXN0ZXN0LWZyb20tc291cmNlKQogICAyLiBbT3B0aW9uIDI6IERvd25sb2FkIHRoZSBsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0I29wdGlvbi0yLWRvd25sb2FkLXRoZS1sYXRlc3QtcmVsZWFzZSkKNi4gW0NpdGluZyBSRVNUZXN0XShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QjY2l0aW5nLXJlc3Rlc3QpCjcuIFtMaWNlbnNlXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QjbGljZW5zZSkKICAgMS4gW0ljb24gY3JlZGl0c10oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0I2ljb24tY3JlZGl0cykKCiMjIFJFU1Rlc3QgV2lraQpJbiB0aGlzIHBhZ2UgeW91IGNhbiBmaW5kIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgaG93IFJFU1Rlc3Qgd29ya3MgYW5kIGFuIGlsbHVzdHJhdGluZyBleGFtcGxlLiBJZiB5b3Ugd2FudCB0byByZWFkIHRoZSBmdWxsIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2aXNpdCB0aGUgW1dpa2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdC93aWtpKS4KCgoKCiMjIFF1aWNrIGV4YW1wbGVzOgoKIyMjIFVzaW5nIHRoZSBzeXN0ZW0gcHJvZ3JhbW1hdGljYWxseQoKIyMjIyBHZW5lcmF0aW5nIHRlc3QgY2FzZXMgCgpJbiB0aGlzIGV4YW1wbGUsIHdlIGlsbHVzdHJhdGUgaG93IHRvIGdlbmVyYXRlIGEgc2V0IG9mIHRlc3QgY2FzZXMgdXNpbmcgdGhlIENvbnN0cmFpbnQtQmFzZWQgdGVzdCBjYXNlIGdlbmVyYXRvciBhbmQgd3JpdGUgdGhlbSB0byBhIGZpbGUgdXNpbmcgdGhlIFJFU1RBc3N1cmVkIHdyaXRlci4gVGVzdCBjYXNlcyBhcmUgZ2VuZXJhdGVkIGJ5IHJhbmRvbWx5IHNlbGVjdGluZyB2YWx1ZXMgZm9yIGVhY2ggaW5wdXQgcGFyYW1ldGVyLCBlbnN1cmluZyB0aGF0IGRlcGVuZGVuY2llcyBiZXR3ZWVuIHBhcmFtZXRlcnMgYXJlIG1ldCAob3IgaW50ZW50aW9uYWxseSB2aW9sYXRlZCkuIFRoaXMgaXMgbWFkZSBwb3NzaWJsZSB0aHJvdWdoIHRoZSB1c2Ugb2YgYSBjb25zdHJhaW50IHNvbHZlciAoQ2hvY28pIGFuZCBJREwsIGEgZG9tYWluLXNwZWNpZmljIGxhbmd1YWdlIGZvciBzcGVjaWZ5aW5nIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHBhcmFtZXRlcnMgYXMgcGFydCBvZiB0aGUgT0FTIHNwZWNpZmljYXRpb24uCgpUaGUgY29tcGxldGUgY29kZSBvZiB0aGUgZXhhbXBsZSBpcyBwcm92aWRlZCBhYm92ZS4KCmBgYGphdmEgCnB1YmxpYyBjbGFzcyBFeDNfQ0JUR2VuZXJhdGlvbiB7CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJvcGVydHlGaWxlUGF0aD0ic3JjL21haW4vcmVzb3VyY2VzL0V4YW1wbGVzL0V4M19DQlRHZW5lcmF0aW9uL3VzZXJfY29uZmlnLnByb3BlcnRpZXMiOyAJCS8vIFBhdGggdG8gdXNlciBwcm9wZXJ0aWVzIGZpbGUgd2l0aCBjb25maWd1cmF0aW9uIG9wdGlvbnMKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgUkVTVGVzdEV4Y2VwdGlvbiB7CiAgICAgICAgLy8gTG9hZCBwcm9wZXJ0aWVzCiAgICAgICAgUkVTVGVzdExvYWRlciBsb2FkZXIgPSBuZXcgUkVTVGVzdExvYWRlcihwcm9wZXJ0eUZpbGVQYXRoKTsKCiAgICAgICAgLy8gQ3JlYXRlIHRlc3QgY2FzZSBnZW5lcmF0b3IKICAgICAgICBDb25zdHJhaW50QmFzZWRUZXN0Q2FzZUdlbmVyYXRvciBnZW5lcmF0b3IgPSAoQ29uc3RyYWludEJhc2VkVGVzdENhc2VHZW5lcmF0b3IpIGxvYWRlci5jcmVhdGVHZW5lcmF0b3IoKTsKICAgICAgICBDb2xsZWN0aW9uPFRlc3RDYXNlPiB0ZXN0Q2FzZXMgPSBnZW5lcmF0b3IuZ2VuZXJhdGUoKTsKCiAgICAgICAgLy8gQ3JlYXRlIHRhcmdldCBkaXJlY3RvcnkgZm9yIHRlc3QgY2FzZXMgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAgICBjcmVhdGVEaXIobG9hZGVyLmdldFRhcmdldERpckphdmEoKSk7CgogICAgICAgIC8vIFdyaXRlIChSZXN0QXNzdXJlZCkgdGVzdCBjYXNlcwogICAgICAgIFJFU1RBc3N1cmVkV3JpdGVyIHdyaXRlciA9IChSRVNUQXNzdXJlZFdyaXRlcikgbG9hZGVyLmNyZWF0ZVdyaXRlcigpOwogICAgICAgIHdyaXRlci53cml0ZSh0ZXN0Q2FzZXMpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGVzdENhc2VzLnNpemUoKSArICIgdGVzdCBjYXNlcyBnZW5lcmF0ZWQgYW5kIHdyaXR0ZW4gdG8gIiArIGxvYWRlci5nZXRUYXJnZXREaXJKYXZhKCkpOwogICAgfQp9CgpgYGAKClRoaXMgY29kZSBkZW1vbnN0cmF0ZXMgaG93IHRvIGxvYWQgdGhlIHByb3BlcnRpZXMsIGNyZWF0ZSBhIGNvbnN0cmFpbnQtYmFzZWQgdGVzdCBjYXNlIGdlbmVyYXRvciwgZ2VuZXJhdGUgdGVzdCBjYXNlcywgYW5kIHdyaXRlIHRoZW0gdXNpbmcgdGhlIFJFU1RBc3N1cmVkIHdyaXRlci4gTm93LCBsZXQncyBleGFtaW5lIG9uZSBvZiB0aGUgdGVzdCBjYXNlcyBnZW5lcmF0ZWQgdXNpbmcgUkVTVEFzc3VyZWQuCmBgYGphdmEKCmltcG9ydCBpby5yZXN0YXNzdXJlZC5SZXN0QXNzdXJlZDsKaW1wb3J0IGlvLnJlc3Rhc3N1cmVkLnJlc3BvbnNlLlJlc3BvbnNlOwppbXBvcnQgb3JnLmp1bml0LlRlc3Q7CmltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc2VydC5mYWlsOwoKcHVibGljIGNsYXNzIEV4M19DQlRHZW5lcmF0aW9uIHsKCiAgIC8vIC4uLiBQcmV2aW91cyBjb2RlIC4uLgoKICAgQFRlc3QKICAgcHVibGljIHZvaWQgdGVzdF9xZWM0bjRjdXl2Y2pfZ2V0TXVsdGlIb3RlbE9mZmVycygpIHsKICAgICAgU3RyaW5nIHRlc3RSZXN1bHRJZCA9ICJ0ZXN0X3FlYzRuNGN1eXZjal9nZXRNdWx0aUhvdGVsT2ZmZXJzIjsKCiAgICAgIC8vIEZpbHRlciBzZXR0aW5ncyBmb3Igc3BlY2lmaWMgdGVzdCBjYXNlCiAgICAgIG5vbWluYWxPckZhdWx0eVRlc3RDYXNlRmlsdGVyLnVwZGF0ZUZhdWx0eURhdGEodHJ1ZSwgdHJ1ZSwgImluZGl2aWR1YWxfcGFyYW1ldGVyX2NvbnN0cmFpbnQ6VmlvbGF0ZWQgJ21pbicgY29uc3RyYWludCBvZiBpbnRlZ2VyIHBhcmFtZXRlciByYWRpdXMiKTsKICAgICAgc3RhdHVzQ29kZTVYWEZpbHRlci51cGRhdGVGYXVsdHlEYXRhKHRydWUsIHRydWUsICJpbmRpdmlkdWFsX3BhcmFtZXRlcl9jb25zdHJhaW50OlZpb2xhdGVkICdtaW4nIGNvbnN0cmFpbnQgb2YgaW50ZWdlciBwYXJhbWV0ZXIgcmFkaXVzIik7CiAgICAgIGNzdkZpbHRlci5zZXRUZXN0UmVzdWx0SWQodGVzdFJlc3VsdElkKTsKICAgICAgc3RhdHVzQ29kZTVYWEZpbHRlci5zZXRUZXN0UmVzdWx0SWQodGVzdFJlc3VsdElkKTsKICAgICAgbm9taW5hbE9yRmF1bHR5VGVzdENhc2VGaWx0ZXIuc2V0VGVzdFJlc3VsdElkKHRlc3RSZXN1bHRJZCk7CiAgICAgIHZhbGlkYXRpb25GaWx0ZXIuc2V0VGVzdFJlc3VsdElkKHRlc3RSZXN1bHRJZCk7CgogICAgICB0cnkgewogICAgICAgICAvLyBCdWlsZCBhbmQgc2VuZCByZXF1ZXN0IHVzaW5nIFJlc3RBc3N1cmVkCiAgICAgICAgIFJlc3BvbnNlIHJlc3BvbnNlID0gUmVzdEFzc3VyZWQKICAgICAgICAgICAgICAgICAuZ2l2ZW4oKQogICAgICAgICAgICAgICAgIC5xdWVyeVBhcmFtKCJwYWdlW2xpbWl0XSIsICIyNSIpCiAgICAgICAgICAgICAgICAgLnF1ZXJ5UGFyYW0oImFtZW5pdGllcyIsICJCQUJZLVNJVFRJTkcsQUlSX0NPTkRJVElPTklORyIpCiAgICAgICAgICAgICAgICAgLnF1ZXJ5UGFyYW0oImhvdGVsSWRzIiwgIkhTRkVMQUFGIikKICAgICAgICAgICAgICAgICAucXVlcnlQYXJhbSgicm9vbVF1YW50aXR5IiwgIjUiKQogICAgICAgICAgICAgICAgIC5xdWVyeVBhcmFtKCJjaGFpbnMiLCAiV1YsRUMsV1ciKQogICAgICAgICAgICAgICAgIC5xdWVyeVBhcmFtKCJpbmNsdWRlQ2xvc2VkIiwgImZhbHNlIikKICAgICAgICAgICAgICAgICAucXVlcnlQYXJhbSgicmFkaXVzIiwgIi0zIikKICAgICAgICAgICAgICAgICAucXVlcnlQYXJhbSgicmFkaXVzVW5pdCIsICJNSUxFIikKICAgICAgICAgICAgICAgICAucXVlcnlQYXJhbSgiY2hlY2tJbkRhdGUiLCAiMjAyMy0xMS0xNCIpCiAgICAgICAgICAgICAgICAgLnF1ZXJ5UGFyYW0oInJhdGVDb2RlcyIsICJXS0QsU1RQLFRVUiIpCiAgICAgICAgICAgICAgICAgLnF1ZXJ5UGFyYW0oInBheW1lbnRQb2xpY3kiLCAiREVQT1NJVCIpCiAgICAgICAgICAgICAgICAgLmZpbHRlcihhbGx1cmVGaWx0ZXIpCiAgICAgICAgICAgICAgICAgLmZpbHRlcihzdGF0dXNDb2RlNVhYRmlsdGVyKQogICAgICAgICAgICAgICAgIC5maWx0ZXIobm9taW5hbE9yRmF1bHR5VGVzdENhc2VGaWx0ZXIpCiAgICAgICAgICAgICAgICAgLmZpbHRlcih2YWxpZGF0aW9uRmlsdGVyKQogICAgICAgICAgICAgICAgIC5maWx0ZXIoY3N2RmlsdGVyKQogICAgICAgICAgICAgICAgIC53aGVuKCkKICAgICAgICAgICAgICAgICAuZ2V0KCIvc2hvcHBpbmcvaG90ZWwtb2ZmZXJzIik7CgogICAgICAgICAvLyBWZXJpZnkgdGhlIHJlc3BvbnNlCiAgICAgICAgIHJlc3BvbnNlLnRoZW4oKTsKICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbCBjYXNvIGRlIHBydWViYSBwYXPDsyBleGl0b3NhbWVudGUuIik7CiAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZXgpIHsKICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGV4LmdldE1lc3NhZ2UoKSk7CiAgICAgICAgIGZhaWwoZXguZ2V0TWVzc2FnZSgpKTsKICAgICAgfQogICB9Cn0KYGBgCgojIyMjIFJ1bm5pbmcgdGVzdCBjYXNlcyAKVGhpcyBleGFtcGxlIHdpbGwgaWxsdXN0cmF0ZSBob3cgdG8gZXhlY3V0ZSBhIHNldCBvZiB0ZXN0cyB0aGF0IGhhdmUgYmVlbiBwcmV2aW91c2x5IGdlbmVyYXRlZCB1c2luZyBSZXNUZXN0RXhlY3V0b3IuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgaG93IHRoaXMgcHJvY2VzcyB3b3VsZCBiZSBjYXJyaWVkIG91dC4KYGBgCnB1YmxpYyBjbGFzcyBFeDhfVGVzdEV4ZWN1dGlvbiB7CgoKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBST1BFUlRZX0ZJTEVfUEFUSCA9ICJzcmMvbWFpbi9yZXNvdXJjZXMvRXhhbXBsZXMvRXg4X1Rlc3RFeGVjdXRpb24vdXNlcl9jb25maWcucHJvcGVydGllcyI7IAkJLy8gUGF0aCB0byB1c2VyIHByb3BlcnRpZXMgZmlsZSB3aXRoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBSRVNUZXN0RXhjZXB0aW9uIHsKCiAgICAgICAgLy8gRXhlY3V0ZSB0ZXN0cwoKICAgICAgICBSRVNUZXN0RXhlY3V0b3IgZXhlY3V0b3IgPSBuZXcgUkVTVGVzdEV4ZWN1dG9yKFBST1BFUlRZX0ZJTEVfUEFUSCk7CiAgICAgICAgZXhlY3V0b3IuZXhlY3V0ZSgpOwoKCiAgICB9Cn0KYGBgCgoKIyMjIyBHZW5lcmF0aW5nIGFuZCBydW5uaW5nIHRlc3QgY2FzZXMKSW4gdGhpcyBleGFtcGxlLCB3ZSB3aWxsIGV4cGxvcmUgdGhlIGdlbmVyYXRpb24gYW5kIGV4ZWN1dGlvbiBvZiB0ZXN0IGNhc2VzIHVzaW5nIFJFU1Rlc3RSdW5uZXIsIGEgdG9vbCB0aGF0IGVuYWJsZXMgdGhlIGNyZWF0aW9uIG9mIGFuIGF1dG9tYXRlZCB3b3JrZmxvdyB0byBtYW5hZ2UgdGhlIGVudGlyZSB0ZXN0aW5nIHByb2Nlc3MuIEJlbG93IGlzIGFuIGV4YW1wbGUgaWxsdXN0cmF0aW5nIGhvdyB0aGlzIHdvcmtmbG93IHdvdWxkIGJlIGV4ZWN1dGVkLgoKYGBgamF2YQoKcHVibGljIGNsYXNzIEV4OV9HZW5lcmF0aW9uX0V4ZWN1dGlvbiB7CgogICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9QRVJUWV9GSUxFX1BBVEggPSAic3JjL21haW4vcmVzb3VyY2VzL0V4YW1wbGVzL0V4OV9HZW5lcmF0aW9uX0V4ZWN1dGlvbi91c2VyX2NvbmZpZy5wcm9wZXJ0aWVzIjsgCQkvLyBQYXRoIHRvIHVzZXIgcHJvcGVydGllcyBmaWxlIHdpdGggY29uZmlndXJhdGlvbiBvcHRpb25zCgogICBwdWJsaWMgc3RhdGljIGZpbmFsIExvZ2dlciBsb2dnZXIgPSBMb2dnZXIuZ2V0TG9nZ2VyKEV4OV9HZW5lcmF0aW9uX0V4ZWN1dGlvbi5jbGFzcy5nZXROYW1lKCkpOwoKICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIFJFU1Rlc3RFeGNlcHRpb24gewogICAgICAvLyBMb2FkIHByb3BlcnRpZXMKICAgICAgUkVTVGVzdFJ1bm5lciBydW5uZXIgPSBuZXcgUkVTVGVzdFJ1bm5lcihQUk9QRVJUWV9GSUxFX1BBVEgpOwoKICAgICAgLy8gUnVuIHdvcmtmbG93CiAgICAgIHJ1bm5lci5ydW4oKTsKCiAgICAgIGlmIChsb2dnZXIuaXNMb2dnYWJsZShqYXZhLnV0aWwubG9nZ2luZy5MZXZlbC5JTkZPKSkgewogICAgICAgICBTdHJpbmcgbWVzc2FnZTEgPSBTdHJpbmcuZm9ybWF0KCIlZCB0ZXN0IGNhc2VzIGdlbmVyYXRlZCBhbmQgd3JpdHRlbiB0byAlcyIsIHJ1bm5lci5nZXROdW1iZXJPZlRlc3RDYXNlcygpLCBydW5uZXIuZ2V0VGFyZ2V0RGlySmF2YSgpKTsKICAgICAgICAgU3RyaW5nIG1lc3NhZ2UyID0gU3RyaW5nLmZvcm1hdCgiQWxsdXJlIHJlcG9ydCBhdmFpbGFibGUgYXQgJXMiLCBydW5uZXIuZ2V0QWxsdXJlUmVwb3J0c1BhdGgoKSk7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlMyA9IFN0cmluZy5mb3JtYXQoIkNTViBzdGF0cyBhdmFpbGFibGUgYXQgJXMvJXMiLCBQcm9wZXJ0eU1hbmFnZXIucmVhZFByb3BlcnR5KCJkYXRhLnRlc3RzLmRpciIpLCBydW5uZXIuZ2V0RXhwZXJpbWVudE5hbWUoKSk7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlNCA9IFN0cmluZy5mb3JtYXQoIkNvdmVyYWdlIHJlcG9ydCBhdmFpbGFibGUgYXQgJXMvJXMiLCBQcm9wZXJ0eU1hbmFnZXIucmVhZFByb3BlcnR5KCJkYXRhLmNvdmVyYWdlLmRpciIpLCBydW5uZXIuZ2V0RXhwZXJpbWVudE5hbWUoKSk7CiAgICAgICAgIGxvZ2dlci5pbmZvKG1lc3NhZ2UxKTsKICAgICAgICAgbG9nZ2VyLmluZm8obWVzc2FnZTIpOwogICAgICAgICBsb2dnZXIuaW5mbyhtZXNzYWdlMyk7CiAgICAgICAgIGxvZ2dlci5pbmZvKG1lc3NhZ2U0KTsKICAgICAgfQoKICAgfQp9CgoKYGBgCgpVcG9uIGNvbXBsZXRpb24sIHRoZSBwcm9ncmFtIHdpbGwgZGlzcGxheSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBpbiB0aGUgY29uc29sZS4gVGhpcyB3aWxsIGluY2x1ZGUgdGhlIG51bWJlciBvZiBnZW5lcmF0ZWQgdGVzdCBjYXNlcywgdGhlIGxvY2F0aW9uIG9mIEFsbHVyZSByZXBvcnRzLCBDU1Ygc3RhdGlzdGljcywgYW5kIHRoZSBjb3ZlcmFnZSByZXBvcnQsIHByb3ZpZGluZyBhIGNvbXByZWhlbnNpdmUgb3ZlcnZpZXcgb2YgdGhlIHJlc3VsdHMgb2J0YWluZWQgZHVyaW5nIHRoZSBleGVjdXRpb24uCgpGaW5hbGx5LCB0ZXN0IGZhaWx1cmVzIGFyZSBjb2xsZWN0ZWQgYW5kIHRoZXkgY2FuIGJlIGVhc2lseSBzcG90dGVkIGFuZCBhbmFseXplZCBpbiBhIHVzZXItZnJpZW5kbHkgR1VJLCBidWlsdCB3aXRoIFtBbGx1cmVdKGh0dHA6Ly9hbGx1cmUucWF0b29scy5ydS8pLiBUbyBkbyBzbywgb3BlbiB0aGUgZmlsZSBgc3JjL21haW4vcmVzb3VyY2VzL0V4YW1wbGVzL0V4OF9HZW5lcmF0aW9uX0V4ZWN1dGlvbi9hbGx1cmVfcmVwb3J0L2FuQXBpT2ZJY2VBbmRGaXJlL2luZGV4Lmh0bWxgIGluIHlvdXIgYnJvd3NlcjoKCiFbQWxsdXJlXShkb2NzL2ltZy5wbmcpCgojIyMgVXNpbmcgdGhlIHN5c3RlbSB2aWEgdGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UKClRoZSBSRVNUZXN0IENMSSBzdXBwb3J0cyB2YXJpb3VzIG9wdGlvbnMgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIHN5c3RlbS4gSGVyZSBhcmUgdGhlIGF2YWlsYWJsZSBvcHRpb25zOiAKCiogKiotaCwgLS1oZWxwOioqIERpc3BsYXkgaGVscCBpbmZvcm1hdGlvbiBhYm91dCBhdmFpbGFibGUgb3B0aW9ucyBhbmQgdXNhZ2UuIAoqICoqLW8sIC0tb3BlbmFwaSBbcGF0aF06KiogR2VuZXJhdGVzIGFuZCBleGVjdXRlcyBhIHNlcmllcyBvZiB0ZXN0cyBiYXNlZCBvbiBhbiBPcGVuQVBJIGZpbGUuIAoqICoqLWMsIC0tY3JlYXRlLWNvbmYgW3BhdGhdOioqIEdlbmVyYXRlIGEgdGVzdCBjb25maWd1cmF0aW9uIGZpbGUgZnJvbSB0aGUgcHJvdmlkZWQgT3BlbkFQSSBmaWxlLiAKKiAqKi1nLCAtLWdlbmVyYXRlIFtwYXRoXToqKiBHZW5lcmF0ZSB0ZXN0IGNhc2VzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uIGZpbGUuIAoqICoqLWUsIC0tZXhlY3V0ZSBbcGF0aF06KiogRXhlY3V0ZSB0aGUgdGVzdCBjYXNlcyBkZWZpbmVkIGluIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uIGZpbGUuIAoKSGVyZSBhcmUgc29tZSBxdWljayBleGFtcGxlcyBvZiB1c2luZyB0aGUgUkVTVGVzdCBDTEk6IAoKIyMjIyBHZW5lcmF0ZSwgRXhlY3V0ZSwgYW5kIEdlbmVyYXRlIFJlcG9ydHMgYmFzZWQgb24gT3BlbkFQSSBzcGVjaWZpY2F0aW9uOiAKCmBgYApqYXZhIC1qYXIgLlx0YXJnZXRccmVzdGVzdC1jbGkuamFyIC1vIFtwYXRoX3RvX29hc19maWxlXSAKYGBgCiAgCgojIyMjIENyZWF0ZSBhIFRlc3QgQ29uZmlndXJhdGlvbiBGaWxlOiAKCmBgYApqYXZhIC1qYXIgLlx0YXJnZXRccmVzdGVzdC1jbGkuamFyIC1jIFtwYXRoX3RvX29hc19maWxlXSAKYGBgCiAgCgojIyMjIEdlbmVyYXRlIFRlc3QgQ2FzZXM6IAoKYGBgCmphdmEgLWphciAuXHRhcmdldFxyZXN0ZXN0LWNsaS5qYXIgLWcgW3BhdGhfdG9fcHJvcGVydGllc19maWxlXSAKYGBgCiAgCgojIyMjIEV4ZWN1dGUgVGVzdCBDYXNlczogCgpgYGAKamF2YSAtamFyIC5cdGFyZ2V0XHJlc3Rlc3QtY2xpLmphciAtZSBbcGF0aF90b19wcm9wZXJ0aWVzX2ZpbGVdIApgYGAKICAKCiMjIyMgR2VuZXJhdGUgYW5kIEV4ZWN1dGUgVGVzdCBDYXNlczogCgpgYGAKamF2YSAtamFyIC5cdGFyZ2V0XHJlc3Rlc3QtY2xpLmphciAtZyAtZSBbcGF0aF90b19wcm9wZXJ0aWVzX2ZpbGVdCmBgYAoKCiMjIERldGFpbGVkIGV4YW1wbGUKCkluIHRoaXMgc2VjdGlvbiwgd2Ugd2lsbCBkZWx2ZSBpbnRvIGEgc3BlY2lmaWMgZXhhbXBsZSB0byBpbGx1c3RyYXRlIGluIGRldGFpbCBob3cgUkVTVEVTVCBvcGVyYXRlcy4gVGhyb3VnaG91dCB0aGUgZm9sbG93aW5nIHN0ZXBzLCB3ZSB3aWxsIGJyZWFrIGRvd24gYSBwcmFjdGljYWwgc2NlbmFyaW8sIHByb3ZpZGluZyBzdGVwLWJ5LXN0ZXAgZXhwbGFuYXRpb25zIG9mIGhvdyB0aGUgc3lzdGVtIGZ1bmN0aW9ucy4KCkluIHRoaXMgZXhhbXBsZSwgd2Ugd2lsbCBjb25kdWN0IHRlc3RzIG9uIHRoZSBJY2UgYW5kIEZpcmUgQVBJIHVzaW5nIFJFU1Rlc3QuIFRvIHBlcmZvcm0gdGhlc2UgdGVzdHMsIHdlIHdpbGwgcmVseSBvbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBBUEksIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCB0aGUgZm9sbG93aW5nIFtsaW5rXShzcmMvbWFpbi9yZXNvdXJjZXMvRXhhbXBsZXMvRXgxMF9JdGVyYXRpdmVfR2VuZXJhdGlvbl9FeGVjdXRpb24vc3BlY19pY2VhbmRmaXJlLnlhbWwpLgoKSW4gdGhlIG5leHQgc3RlcCwgd2Ugd2lsbCBwcm9jZWVkIHRvIG9idGFpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgd2lsbCBlbmNvbXBhc3MgYWxsIHRoZSBlc3NlbnRpYWwgc2V0dGluZ3MgZm9yIG91ciB0ZXN0cy4gVGhpcyBmaWxlIHBsYXlzIGEgZnVuZGFtZW50YWwgcm9sZSBhcyBpdCBzZXRzIGtleSBwYXJhbWV0ZXJzLCBzdWNoIGFzIHRoZSB0eXBlcyBvZiBnZW5lcmF0b3JzIHRvIHVzZSwgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBJY2UgYW5kIEZpcmUgQVBJLCBhbmQgYW55IG90aGVyIHJlbGV2YW50IGluZm9ybWF0aW9uIGZvciB0aGUgc3VjY2Vzc2Z1bCBleGVjdXRpb24gb2YgdGVzdHMgd2l0aCBSRVNUZXN0LgpUaGlzIGlzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoaXMgZXhhbXBsZToKCmBgYHlhbWwKLS0tCmF1dGg6CiAgcmVxdWlyZWQ6IHRydWUKICBxdWVyeVBhcmFtczoge30KICBoZWFkZXJQYXJhbXM6IHt9CiAgYXBpS2V5c1BhdGg6IG51bGwKICBoZWFkZXJzUGF0aDogbnVsbAp0ZXN0Q29uZmlndXJhdGlvbjoKICBvcGVyYXRpb25zOgogIC0gdGVzdFBhdGg6IC9hcGkKICAgIG9wZXJhdGlvbklkOiBnZXRSb290CiAgICBtZXRob2Q6IGdldAogICAgdGVzdFBhcmFtZXRlcnM6IG51bGwKICAgIGV4cGVjdGVkUmVzcG9uc2U6IDIwMAogIC0gdGVzdFBhdGg6ICIvYXBpL2Jvb2tzL3tib29rLWlkfSIKICAgIG9wZXJhdGlvbklkOiBmaW5kQm9va0J5SWQKICAgIG1ldGhvZDogZ2V0CiAgICB0ZXN0UGFyYW1ldGVyczoKICAgIC0gbmFtZTogYm9vay1pZAogICAgICBpbjogcGF0aAogICAgICB3ZWlnaHQ6IG51bGwKICAgICAgZ2VuZXJhdG9yczoKICAgICAgLSB0eXBlOiBSYW5kb21OdW1iZXIKICAgICAgICBnZW5QYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogdHlwZQogICAgICAgICAgdmFsdWVzOgogICAgICAgICAgLSBpbnRlZ2VyCiAgICAgICAgICBvYmplY3RWYWx1ZXM6IG51bGwKICAgICAgICAtIG5hbWU6IG1pbgogICAgICAgICAgdmFsdWVzOgogICAgICAgICAgLSAxCiAgICAgICAgICBvYmplY3RWYWx1ZXM6IG51bGwKICAgICAgICAtIG5hbWU6IG1heAogICAgICAgICAgdmFsdWVzOgogICAgICAgICAgLSAxMDAKICAgICAgICAgIG9iamVjdFZhbHVlczogbnVsbAogICAgICAgIHZhbGlkOiB0cnVlCiAgICBleHBlY3RlZFJlc3BvbnNlOiAyMDAKICAtIHRlc3RQYXRoOiAiL2FwaS9jaGFyYWN0ZXJzL3tjaGFyYWN0ZXItaWR9IgogICAgb3BlcmF0aW9uSWQ6IGZpbmRDaGFyYWN0ZXJCeUlkCiAgICBtZXRob2Q6IGdldAogICAgdGVzdFBhcmFtZXRlcnM6CiAgICAtIG5hbWU6IGNoYXJhY3Rlci1pZAogICAgICBpbjogcGF0aAogICAgICB3ZWlnaHQ6IG51bGwKICAgICAgZ2VuZXJhdG9yczoKICAgICAgLSB0eXBlOiBSYW5kb21OdW1iZXIKICAgICAgICBnZW5QYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogdHlwZQogICAgICAgICAgdmFsdWVzOgogICAgICAgICAgLSBpbnRlZ2VyCiAgICAgICAgICBvYmplY3RWYWx1ZXM6IG51bGwKICAgICAgICAtIG5hbWU6IG1pbgogICAgICAgICAgdmFsdWVzOgogICAgICAgICAgLSAxCiAgICAgICAgICBvYmplY3RWYWx1ZXM6IG51bGwKICAgICAgICAtIG5hbWU6IG1heAogICAgICAgICAgdmFsdWVzOgogICAgICAgICAgLSAxMDAKICAgICAgICAgIG9iamVjdFZhbHVlczogbnVsbAogICAgICAgIHZhbGlkOiB0cnVlCiAgICBleHBlY3RlZFJlc3BvbnNlOiAyMDAKICAtIHRlc3RQYXRoOiAiL2FwaS9ob3VzZXMve2hvdXNlLWlkfSIKICAgIG9wZXJhdGlvbklkOiBmaW5kSG91c2VCeUlkCiAgICBtZXRob2Q6IGdldAogICAgdGVzdFBhcmFtZXRlcnM6CiAgICAtIG5hbWU6IGhvdXNlLWlkCiAgICAgIGluOiBwYXRoCiAgICAgIHdlaWdodDogbnVsbAogICAgICBnZW5lcmF0b3JzOgogICAgICAtIHR5cGU6IFJhbmRvbU51bWJlcgogICAgICAgIGdlblBhcmFtZXRlcnM6CiAgICAgICAgLSBuYW1lOiB0eXBlCiAgICAgICAgICB2YWx1ZXM6CiAgICAgICAgICAtIGludGVnZXIKICAgICAgICAgIG9iamVjdFZhbHVlczogbnVsbAogICAgICAgIC0gbmFtZTogbWluCiAgICAgICAgICB2YWx1ZXM6CiAgICAgICAgICAtIDEKICAgICAgICAgIG9iamVjdFZhbHVlczogbnVsbAogICAgICAgIC0gbmFtZTogbWF4CiAgICAgICAgICB2YWx1ZXM6CiAgICAgICAgICAtIDEwMAogICAgICAgICAgb2JqZWN0VmFsdWVzOiBudWxsCiAgICAgICAgdmFsaWQ6IHRydWUKICAgIGV4cGVjdGVkUmVzcG9uc2U6IDIwMAoKYGBgCgoKVGhlIGZvbGxvd2luZyBbbGlua10oc3JjL21haW4vamF2YS9lcy91cy9pc2EvcmVzdGVzdC9leGFtcGxlcy9FeDJfQ3JlYXRlVGVzdENvbmYuamF2YSkgcHJvdmlkZXMgYW4gZXhhbXBsZSBvZiBob3cgd2UgY2FuIG9idGFpbiB0aGlzIGNvbmZpZ3VyYXRpb24gZmlsZS4KCk9uY2Ugd2UgaGF2ZSBib3RoIGZpbGVzLCB0aGUgT0FTIHNwZWNpZmljYXRpb24sIGFuZCB0aGUgY29uZmlndXJhdGlvbiBmaWxlLCB3ZSB3aWxsIGNyZWF0ZSBhIG5ldyAucHJvcGVydGllcyBmaWxlIGluIHdoaWNoIHdlIHdpbGwgc3BlY2lmeSB0aGUgcGF0aCB3aGVyZSB0aGVzZSBmaWxlcyBhcmUgbG9jYXRlZCwgYWxvbmcgd2l0aCBvdGhlciBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGdlbmVyYXRpb24gYW5kIGV4ZWN1dGlvbiBvZiB0ZXN0cy4gVGhpcyBmaWxlIGxvb2tzIGxpa2UgdGhlIGZvbGxvd2luZzoKYGBgYGphdmEKCiMgT0FTIHNwZWNpZmljYXRpb24Kb2FzLnBhdGg9c3JjL21haW4vcmVzb3VyY2VzL0V4YW1wbGVzL0V4OV9JdGVyYXRpdmVfR2VuZXJhdGlvbl9FeGVjdXRpb24vc3BlY19pY2VhbmRmaXJlLnlhbWwKCiMgVGVzdCBjb25maWd1cmF0aW9uIGZpbGUKY29uZi5wYXRoPXNyYy9tYWluL3Jlc291cmNlcy9FeGFtcGxlcy9FeDlfSXRlcmF0aXZlX0dlbmVyYXRpb25fRXhlY3V0aW9uL3Rlc3RfY29uZi55YW1sCgojIERpcmVjdG9yeSB3aGVyZSB0aGUgdGVzdCBjYXNlcyB3aWxsIGJlIGdlbmVyYXRlZAp0ZXN0LnRhcmdldC5kaXI9c3JjL2dlbmVyYXRpb24vamF2YS9hbkFwaU9mSWNlQW5kRmlyZQoKIyBQYWNrYWdlIG5hbWUKdGVzdC50YXJnZXQucGFja2FnZT1hbkFwaU9mSWNlQW5kRmlyZQoKIyBFeHBlcmltZW50IG5hbWUgKGZvciBuYW1pbmcgcmVsYXRlZCBmb2xkZXJzIGFuZCBmaWxlcykKZXhwZXJpbWVudC5uYW1lPWFuQXBpT2ZJY2VBbmRGaXJlCgojIFNldCB0cnVlIGZvciBydW5uaW5nIHRoZSBnZW5lcmF0ZWQgdGVzdCBjYXNlcwpleHBlcmltZW50LmV4ZWN1dGU9dHJ1ZQoKIyBOYW1lIG9mIHRoZSB0ZXN0IGNsYXNzIHRvIGJlIGdlbmVyYXRlZAp0ZXN0Y2xhc3MubmFtZT1BbkFwaU9mSWNlQW5kRmlyZVRlc3QKCiMgUmF0aW8gb2YgZmF1bHR5IHRlc3QgY2FzZXMgdG8gYmUgZ2VuZXJhdGVkIGRvZSB0byBicm9rZW4gaW5kaXZpZHVhbCBkZXBlbmRlbmNpZXMgKGV4LiBtaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcikuIEhlbHBmdWwgZm9yIG5lZ2F0aXZlIHRlc3RpbmcKZmF1bHR5LnJhdGlvPTAuMDUKCiMgTnVtYmVyIG9mIHRlc3QgY2FzZXMgdG8gYmUgZ2VuZXJhdGVkIHBlciBvcGVyYXRpb24KdGVzdHNwZXJvcGVyYXRpb249NQoKIyBNYXhpbXVtIG51bWJlciBvZiB0ZXN0IGNhc2VzIHRvIGJlIGdlbmVyYXRlZCAoYXBwcm94aW1hdGVseSkKbnVtdG90YWx0ZXN0Y2FzZXM9MTAwCgojIERlbGF5IGJldHdlZW4gcmVxdWVzdHMgaW4gc2Vjb25kcyAoLTEgZm9yIG5vIGRlbGF5KQpkZWxheT0zMAoKIyBTZXQgdG8gdHJ1ZSBmb3IgdmFsaWRhdGluZyB0aGUgdGVzdCBjYXNlcyB3aXRoIE9BU1ZhbGlkYXRvciBiZWZvcmUgZXhlY3V0aW5nIHRoZW0KdGVzdGNhc2VzLmNoZWNrPXRydWUKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIENPTlNUUkFJTlQtQkFTRUQgVEVTVElORyAoQ0JUKQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKIyBUZXN0IGNhc2UgZ2VuZXJhdG9yCmdlbmVyYXRvcj1DQlQKCiMgUmF0aW8gb2YgZmF1bHR5IHRlc3QgY2FzZXMgdG8gZ2VuZXJhdGUgZHVlIHRvIHRoZSB2aW9sYXRpb24gb2YgaW50ZXItcGFyYW1ldGVyIGRlcGVuZGVuY2llcwpmYXVsdHkuZGVwZW5kZW5jeS5yYXRpbz0wLjQKCiMgTnVtYmVyIG9mIHJlcXVlc3RzIHVzaW5nIHRoZSBzYW1lIHJhbmRvbWx5IGdlbmVyYXRlZCBpbnB1dCBkYXRhCnJlbG9hZGlucHV0ZGF0YWV2ZXJ5PTEwCgojIE51bWJlciBvZiB2YWx1ZXMgdXNlZCBmb3IgZWFjaCBwYXJhbWV0ZXIgd2hlbiByZWxvYWRpbmcgaW5wdXQgZGF0YQppbnB1dGRhdGFtYXh2YWx1ZXM9MTAwCgojID09PT09PT09PT09PT09PT09CiMgQUxMVVJFIFJFUE9SVFMKIyA9PT09PT09PT09PT09PT09PQoKIyBTZXQgdG8gdHJ1ZSBmb3IgZ2VuZXJhdGluZyBBbGx1cmUgcmVwb3J0cwphbGx1cmUucmVwb3J0PXRydWUKCiMgUGF0aCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIEFsbHVyZSB3aWxsIHNhdmUgdGhlIHJlcG9ydAphbGx1cmUucmVwb3J0LmRpcj1zcmMvbWFpbi9yZXNvdXJjZXMvRXhhbXBsZXMvRXg5X0l0ZXJhdGl2ZV9HZW5lcmF0aW9uX0V4ZWN1dGlvbi9hbGx1cmVfcmVwb3J0CgojID09PT09PT09PT09PT09PT09PQojIENTViBTVEFUUyBSRVBPUlRTCiMgPT09PT09PT09PT09PT09PT09CgojIFNldCB0byB0cnVlIGZvciBnZW5lcmF0aW5nIENTViBzdGF0cwpzdGF0cy5jc3Y9dHJ1ZQoKIyA9PT09PT09PT09PT09PT09PT09CiMgQ09WRVJBR0UgUkVQT1JUUwojID09PT09PT09PT09PT09PT09PT0KCiMgU2V0IHRvIHRydWUgZm9yIGNvbXB1dGluZyBpbnB1dCBjb3ZlcmFnZQpjb3ZlcmFnZS5pbnB1dD10cnVlCgojIFNldCB0byB0cnVlIGZvciBjb21wdXRpbmcgb3V0cHV0IGNvdmVyYWdlCmNvdmVyYWdlLm91dHB1dD10cnVlCgojIFBhdGggdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSBjb3ZlcmFnZSByZXN1bHRzIHdpbGwgYmUgc2F2ZWQKZGF0YS5jb3ZlcmFnZS5kaXI9dGFyZ2V0L2NvdmVyYWdlLWRhdGEKCgpgYGBgCgpPbmNlIHdlIGhhdmUgdGhpcyBmaWxlLCB3ZSB3aWxsIGJlIHJlYWR5IHRvIGNhcnJ5IG91dCB0aGUgZ2VuZXJhdGlvbiBhbmQgZXhlY3V0aW9uIG9mIG91ciB0ZXN0cy4gVG8gYWNoaWV2ZSB0aGlzLCB3ZSB3aWxsIHVzZSB0aGUgZm9sbG93aW5nIGV4YW1wbGUgYXMgYSBndWlkZToKCmBgYGphdmEKCnB1YmxpYyBjbGFzcyBFeDlfR2VuZXJhdGlvbl9FeGVjdXRpb24gewoKICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJPUEVSVFlfRklMRV9QQVRIID0gInNyYy9tYWluL3Jlc291cmNlcy9FeGFtcGxlcy9FeDlfR2VuZXJhdGlvbl9FeGVjdXRpb24vdXNlcl9jb25maWcucHJvcGVydGllcyI7IAkJLy8gUGF0aCB0byB1c2VyIHByb3BlcnRpZXMgZmlsZSB3aXRoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwoKICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2dnZXIgbG9nZ2VyID0gTG9nZ2VyLmdldExvZ2dlcihFeDlfR2VuZXJhdGlvbl9FeGVjdXRpb24uY2xhc3MuZ2V0TmFtZSgpKTsKCiAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBSRVNUZXN0RXhjZXB0aW9uIHsKICAgICAgLy8gTG9hZCBwcm9wZXJ0aWVzCiAgICAgIFJFU1Rlc3RSdW5uZXIgcnVubmVyID0gbmV3IFJFU1Rlc3RSdW5uZXIoUFJPUEVSVFlfRklMRV9QQVRIKTsKCiAgICAgIC8vIFJ1biB3b3JrZmxvdwogICAgICBydW5uZXIucnVuKCk7CgogICAgICBpZiAobG9nZ2VyLmlzTG9nZ2FibGUoamF2YS51dGlsLmxvZ2dpbmcuTGV2ZWwuSU5GTykpIHsKICAgICAgICAgU3RyaW5nIG1lc3NhZ2UxID0gU3RyaW5nLmZvcm1hdCgiJWQgdGVzdCBjYXNlcyBnZW5lcmF0ZWQgYW5kIHdyaXR0ZW4gdG8gJXMiLCBydW5uZXIuZ2V0TnVtYmVyT2ZUZXN0Q2FzZXMoKSwgcnVubmVyLmdldFRhcmdldERpckphdmEoKSk7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlMiA9IFN0cmluZy5mb3JtYXQoIkFsbHVyZSByZXBvcnQgYXZhaWxhYmxlIGF0ICVzIiwgcnVubmVyLmdldEFsbHVyZVJlcG9ydHNQYXRoKCkpOwogICAgICAgICBTdHJpbmcgbWVzc2FnZTMgPSBTdHJpbmcuZm9ybWF0KCJDU1Ygc3RhdHMgYXZhaWxhYmxlIGF0ICVzLyVzIiwgUHJvcGVydHlNYW5hZ2VyLnJlYWRQcm9wZXJ0eSgiZGF0YS50ZXN0cy5kaXIiKSwgcnVubmVyLmdldEV4cGVyaW1lbnROYW1lKCkpOwogICAgICAgICBTdHJpbmcgbWVzc2FnZTQgPSBTdHJpbmcuZm9ybWF0KCJDb3ZlcmFnZSByZXBvcnQgYXZhaWxhYmxlIGF0ICVzLyVzIiwgUHJvcGVydHlNYW5hZ2VyLnJlYWRQcm9wZXJ0eSgiZGF0YS5jb3ZlcmFnZS5kaXIiKSwgcnVubmVyLmdldEV4cGVyaW1lbnROYW1lKCkpOwogICAgICAgICBsb2dnZXIuaW5mbyhtZXNzYWdlMSk7CiAgICAgICAgIGxvZ2dlci5pbmZvKG1lc3NhZ2UyKTsKICAgICAgICAgbG9nZ2VyLmluZm8obWVzc2FnZTMpOwogICAgICAgICBsb2dnZXIuaW5mbyhtZXNzYWdlNCk7CiAgICAgIH0KCiAgIH0KfQoKYGBgCgpBcyB3ZSBjYW4gc2VlLCBieSBwcm92aWRpbmcgdGhlIHBhdGggd2hlcmUgdGhlIC5wcm9wZXJ0aWVzIGZpbGUgaXMgbG9jYXRlZCwgdGhlIHN5c3RlbSB3aWxsIGNyZWF0ZSBhIHdvcmtmbG93IHRoYXQgd2lsbCBwZXJmb3JtIHRoZSBnZW5lcmF0aW9uIG9mIHRlc3QgY2FzZXMsIHRoZWlyIGV4ZWN1dGlvbiwgYW5kIHRoZSBnZW5lcmF0aW9uIG9mIHJlcG9ydHMgYW5kIHN1bW1hcmllcyBhYm91dCB0aGUgdGVzdHMuIEFkZGl0aW9uYWxseSwgYWZ0ZXIgZXhlY3V0aW5nIHRoZSB3b3JrZmxvdywgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiB3aWxsIGJlIHByaW50ZWQgb24gdGhlIHNjcmVlbjoKCiogTnVtYmVyIG9mIHRlc3QgY2FzZXMgZ2VuZXJhdGVkIGFuZCB3cml0dGVuIHRvIGEgc3BlY2lmaWMgbG9jYXRpb24uCiogTG9jYXRpb24gb2YgdGhlIEFsbHVyZSByZXBvcnQuCiogQ1NWIHN0YXRzIGF2YWlsYWJsZSBhdCBhIHNwZWNpZmljIHBhdGguCiogQ292ZXJhZ2UgcmVwb3J0IGF2YWlsYWJsZSBhdCBhbm90aGVyIHNwZWNpZmljIHBhdGguCgpUaGVzZSBkZXRhaWxzIHByb3ZpZGUgYSBxdWljayBhbmQgdXNlZnVsIGluc2lnaHQgaW50byB0aGUgc3VjY2VzcyBhbmQgcmVzdWx0cyBvZiB0aGUgY29uZHVjdGVkIHRlc3RzLCBmYWNpbGl0YXRpbmcgdGhlIHRyYWNraW5nIGFuZCBldmFsdWF0aW9uIG9mIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgZ2VuZXJhdGVkIHRlc3QgY2FzZXMuCgojIyBIb3cgZG9lcyBpdCB3b3JrPwpUaGUgZmlndXJlIGJlbG93IHNob3dzIGhvdyBSRVNUZXN0IHdvcmtzOgoKMS4gKipUZXN0IG1vZGVsIGdlbmVyYXRpb24qKjogUkVTVGVzdCB0YWtlcyBhcyBpbnB1dCB0aGUgT0FTIHNwZWNpZmljYXRpb24gb2YgdGhlIEFQSSB1bmRlciB0ZXN0LCBjb25zaWRlcmVkIHRoZSAqc3lzdGVtIG1vZGVsKi4gQSBbKnRlc3QgbW9kZWwqXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3Qvd2lraS9UZXN0LWNvbmZpZ3VyYXRpb24tZmlsZXMpIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIHN5c3RlbSBtb2RlbCBpbmNsdWRpbmcgdGVzdC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGRhdGEuIFRoZSBkZWZhdWx0IHRlc3QgbW9kZWwgY2FuIGJlIG1hbnVhbGx5IGVucmljaGVkIHdpdGggZmluZS1ncmFpbmVkIGNvbmZpZ3VyYXRpb24gZGV0YWlscyBzdWNoIGFzIHRlc3QgZGF0YSBnZW5lcmF0aW9uIHNldHRpbmdzLgoKMi4gKipBYnN0cmFjdCB0ZXN0IGNhc2UgZ2VuZXJhdGlvbioqOiBUaGUgc3lzdGVtIGFuZCB0aGUgdGVzdCBtb2RlbHMgZHJpdmUgdGhlIGdlbmVyYXRpb24gb2YgYWJzdHJhY3QgdGVzdCBjYXNlcyBmb2xsb3dpbmcgdXNlci1kZWZpbmVkIHRlc3QgY2FzZSBnZW5lcmF0aW9uIHN0cmF0ZWdpZXMgc3VjaCBhcyByYW5kb20gdGVzdGluZy4gSWYgdGhlIEFQSSB1bmRlciB0ZXN0IGNvbnRhaW5zIFtpbnRlci1wYXJhbWV0ZXIgZGVwZW5kZW5jaWVzXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3Qvd2lraS9JbnRlci1wYXJhbWV0ZXItZGVwZW5kZW5jaWVzKSwgdGhlbiBjb25zdHJhaW50LWJhc2VkIHRlc3RpbmcgY2FuIGJlIGFwcGxpZWQsIHNwZWNpZnlpbmcgdGhlIGRlcGVuZGVuY2llcyBpbiB0aGUgT0FTIHNwZWNpZmljYXRpb24gdXNpbmcgdGhlIElETDRPQVMgZXh0ZW5zaW9uIChzZWUgZXhhbXBsZXMgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvSURMUmVhc29uZXIvYmxvYi9tYXN0ZXIvc3JjL3Rlc3QvcmVzb3VyY2VzL09BU19leGFtcGxlLnlhbWwjTDQ1KSBhbmQgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvSURMUmVhc29uZXIvdHJlZS9tYXN0ZXIvc3JjL3Rlc3QvcmVzb3VyY2VzKSkuIFJlcXVlc3RzIHNhdGlzZnlpbmcgYWxsIGludGVyLXBhcmFtZXRlciBkZXBlbmRlbmNpZXMgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHRoYW5rcyB0byBbSURMUmVhc29uZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvSURMUmVhc29uZXIpLgoKMy4gKipUZXN0IGNhc2UgZ2VuZXJhdGlvbioqOiBUaGUgYWJzdHJhY3QgdGVzdCBjYXNlcyBhcmUgaW5zdGFudGlhdGVkIGludG8gYSBzcGVjaWZpYyBwcm9ncmFtbWluZyBsYW5ndWFnZSBvciB0ZXN0aW5nIGZyYW1ld29yayB1c2luZyBhIFt0ZXN0IHdyaXRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0L3dpa2kvVGVzdC13cml0ZXJzKS4gUkVTVGVzdCBjdXJyZW50bHkgc3VwcG9ydHMgdGhlIGdlbmVyYXRpb24gb2YgW1JFU1QgQXNzdXJlZF0oaHR0cDovL3Jlc3QtYXNzdXJlZC5pby8pIGFuZCBbUG9zdG1hbl0oaHR0cHM6Ly93d3cucG9zdG1hbi5jb20vKSB0ZXN0IGNhc2VzLgoKNC4gKipUZXN0IGNhc2UgZXhlY3V0aW9uKio6IFRoZSB0ZXN0IGNhc2VzIGFyZSBleGVjdXRlZCBhbmQgYSBzZXQgb2YgcmVwb3J0cyBhbmQgc3RhdHMgYXJlIGdlbmVyYXRlZC4gU3RhdHMgYXJlIG1hY2hpbmUtcmVhZGFibGUsIGFuZCB0aGUgdGVzdCByZXBvcnRzIGNhbiBiZSBncmFwaGljYWxseSB2aXN1YWxpemVkIHRoYW5rcyB0byBbQWxsdXJlXShodHRwOi8vYWxsdXJlLnFhdG9vbHMucnUvKS4KCjUuICoqRmVlZGJhY2sgY29sbGVjdGlvbioqOiBbVGVzdCBjYXNlIGdlbmVyYXRvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdC93aWtpL1Rlc3QtY2FzZS1nZW5lcmF0b3JzKSBhbmQgb3RoZXIgY29tcG9uZW50cyBjYW4gcmVhY3QgdG8gdGhlIHRlc3Qgb3V0cHV0cyAoaS5lLiwgdGhlIHN0YXRzIGdlbmVyYXRlZCBpbiB0aGUgcHJldmlvdXMgc3RlcCkgdG8gY3JlYXRlIG1vcmUgc29waGlzdGljYXRlZCB0ZXN0IGNhc2VzLiBFeGFtcGxlcyBvZiB0aGlzIGFyZSB0aGUgc3RhdGVmdWwgZGF0YSBnZW5lcmF0b3JzIChlLmcuLCB0aGUgW0JvZHlHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdC9ibG9iL21hc3Rlci9zcmMvbWFpbi9qYXZhL2VzL3VzL2lzYS9yZXN0ZXN0L2lucHV0cy9zdGF0ZWZ1bC9Cb2R5R2VuZXJhdG9yLmphdmEpKSBhbmQgdGhlIFtTdGF0c1JlcG9ydE1hbmFnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pc2EtZ3JvdXAvUkVTVGVzdC9ibG9iL21hc3Rlci9zcmMvbWFpbi9qYXZhL2VzL3VzL2lzYS9yZXN0ZXN0L3JlcG9ydGluZy9TdGF0c1JlcG9ydE1hbmFnZXIuamF2YSksIGJvdGggb2Ygd2hpY2ggZ2VuZXJhdGUgbmV3IHRlc3QgZGF0YSBiYXNlZCBvbiBwcmV2aW91cyBBUEkgcmVzcG9uc2VzLgoKIVtSRVNUZXN0XShkb2NzL1JFU1Rlc3RfdjMucG5nKQoKIyMgV2hhdCBjYW4gSSBkbyB3aXRoIFJFU1Rlc3Q/CkNoZWNrIG91dCB0aGUgZm9sbG93aW5nIGRlbW8gdmlkZW8sIHdoZXJlIHdlIGRpc2N1c3Mgc29tZSBvZiB0aGUgdGhpbmdzIHRoYXQgeW91IGNhbiBkbyB3aXRoIFJFU1Rlc3QsIGJvdGggZnJvbSB0aGUgdXNlciBhbmQgdGhlIGRldmVsb3BlciBwb2ludCBvZiB2aWV3LiBUaGUgc2hvd2Nhc2Ugc2hvd24gaW4gdGhlIHZpZGVvIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vYmV0dHkudXMuZXMvcmVzdGVzdC1zaG93Y2FzZS1kZW1vLy4KCjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvVG5Ha3dNREJEdDQiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iZG9jcy9wbGF5X3ZpZGVvLnBuZyIgYWx0PSJSRVNUZXN0IGRlbW8gdmlkZW8iIHdpZHRoPSIzMDAiIC8+PC9hPgoKIyMgUnVubmluZyBSRVNUZXN0IGFzIGEgSkFSCkluc3RlYWQgb2YgZnJvbSBhbiBJREUgbGlrZSBJbnRlbGxpSiBJREVBLCB5b3UgY2FuIGFsc28gcnVuIFJFU1Rlc3QgYXMgYSBmYXQgSkFSLiBZb3UgaGF2ZSB0d28gb3B0aW9uczoKCiMjIyBPcHRpb24gMTogQnVpbGQgUkVTVGVzdCBmcm9tIHNvdXJjZQoKVG8gcGFja2FnZSBSRVNUZXN0IGFzIGEgZmF0IEpBUiBmaWxlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHRoZSByb290IGRpcmVjdG9yeToKCmBgYAptdm4gY2xlYW4gaW5zdGFsbCAtRHNraXBUZXN0cwpgYGAKClRoZW4sIHJ1biB0aGUgSkFSIGZpbGUgcGFzc2luZyBhcyBhcmd1bWVudCB0aGUgcGF0aCB0byB0aGUgcHJvcGVydGllcyBmaWxlLCBmb3IgZXhhbXBsZToKCmBgYApqYXZhIC1qYXIgdGFyZ2V0L3Jlc3Rlc3QuamFyIHNyYy90ZXN0L3Jlc291cmNlcy9SZXN0Y291bnRyaWVzL3Jlc3Rjb3VudHJpZXNfZGVtby5wcm9wZXJ0aWVzCmBgYAoKIyMjIE9wdGlvbiAyOiBEb3dubG9hZCB0aGUgbGF0ZXN0IHJlbGVhc2UKCkdvIHRvIHRoZSBbcmVsZWFzZXMgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL2lzYS1ncm91cC9SRVNUZXN0L3JlbGVhc2VzKSBhbmQgZG93bmxvYWQgdGhlIGxhdGVzdCBvbmUuIFJFU1Rlc3QgcmVsZWFzZXMgY29uc2lzdCBvZiBaSVAgZmlsZXMgd2hpY2gsIG9uY2UgdW5jb21wcmVzc2VkLCBwcm92aWRlIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIGFuZCB0aGUgbmVjZXNzYXJ5IHJlc291cmNlcyB0byBydW4gUkVTVGVzdCBhcyBhIEpBUi4gWW91IGNhbiB0ZXN0IHRoZSBzYW1lIGV4YW1wbGUgc2hvd24gaW4gdGhlIHF1aWNrc3RhcnQgZ3VpZGUgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGAKamF2YSAtamFyIHJlc3Rlc3QuamFyIHNyYy90ZXN0L3Jlc291cmNlcy9Gb2xkZXIvYXBpLnByb3BlcnRpZXMKYGBgCgojIyBDaXRpbmcgUkVTVGVzdAoKSWYgeW91IHdhbnQgdG8gY2l0ZSBSRVNUZXN0IGluIHlvdXIgcmVzZWFyY2gsIHBsZWFzZSB1c2UgdGhlIEJpYlRlWCBlbnRyeSBiZWxvdy4gW0hlcmUncyBhIGxpbmsgdG8gYSBwcmVwcmludCBvZiB0aGUgcGFwZXJdKGh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMzUyODM1NTcwX1JFU1Rlc3RfQXV0b21hdGVkX0JsYWNrLUJveF9UZXN0aW5nX29mX1JFU1RmdWxfV2ViX0FQSXMpLgoKCmBgYGJpYnRleApAaW5wcm9jZWVkaW5nc3tNYXJ0aW5Mb3BlejIwMjFSZXN0ZXN0LAoJdGl0bGU9IHt7UkVTVGVzdDogQXV0b21hdGVkIEJsYWNrLUJveCBUZXN0aW5nIG9mIFJFU1RmdWwgV2ViIEFQSXN9fSwKCWF1dGhvcj0ge0FsYmVydG8gTWFydGluLUxvcGV6IGFuZCBTZXJnaW8gU2VndXJhIGFuZCBBbnRvbmlvIFJ1aXotQ29ydFwne2V9c30sCglib29rdGl0bGU9IHtQcm9jZWVkaW5ncyBvZiB0aGUgMzB0aCBBQ00gU0lHU09GVCBJbnRlcm5hdGlvbmFsIFN5bXBvc2l1bSBvbiBTb2Z0d2FyZSBUZXN0aW5nIGFuZCBBbmFseXNpc30sCglzZXJpZXM9IHtJU1NUQSAnMjF9LAoJcHVibGlzaGVyPSB7QXNzb2NpYXRpb24gZm9yIENvbXB1dGluZyBNYWNoaW5lcnl9LAoJeWVhcj0gezIwMjF9Cn0KYGBgCgojIyBMaWNlbnNlClJFU1Rlc3QgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFtHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMF0oTElDRU5TRSkuCgpSRVNUZXN0IGluY2x1ZGVzIEFsbHVyZSBGcmFtZXdvcmsgJmNvcHk7IDIwMTkgUWFtZXRhIFNvZnR3YXJlIE/DnC4gSXQgaXMgdXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSAyLjAgTGljZW5zZSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLgoKIyMjIEljb24gY3JlZGl0cwpUaGlzIFJFQURNRSBhbmQgc29tZSBwYWdlcyBvZiB0aGUgV2lraSB1c2UgaWNvbnMgcHJvdmlkZWQgYnkgW0ZyZWVwaWtdKGh0dHBzOi8vd3d3LmZsYXRpY29uLmNvbS9hdXRob3JzL2ZyZWVwaWspLCBhdmFpbGFibGUgYXQgW0ZsYXRpY29uXShodHRwczovL3d3dy5mbGF0aWNvbi5jb20vKS4K readmeEtag: '"6c80a53acba45938c7217c5b6d88906dcf78b04c"' readmeLastModified: Mon, 10 Jun 2024 15:07:51 GMT repositoryId: 120752811 description: 'RESTest: Automated Black-Box Testing of RESTful Web APIs' created: '2018-02-08T11:27:45Z' updated: '2024-09-05T11:25:04Z' language: Java archived: false stars: 207 watchers: 16 forks: 34 owner: isa-group logo: https://avatars.githubusercontent.com/u/2708867?v=4 license: LGPL-3.0 repoEtag: '"181ddddb51d0b39fec1448e4afcccfdd665edce231e1da4c967aac9ee16a23ce"' repoLastModified: Thu, 05 Sep 2024 11:25:04 GMT foundInMaster: true id: 9115f26fa9e7b17b844a0f10b9814db7 - source: https://openapi.tools/ name: ReadyAPI category: Testing language: Java source_description: > an end to end API functional, security, performance and virtualization tool where OAS description documents can be utilized to automate the creation and validation of end to end tests, running them manually or at any point in your CI/CD pipeline. pipelines. v2: true v3: true v3_1: false link: https://smartbear.com/product/ready-api/overview/ foundInMaster: true id: 2e4959c1f56a5c235f1e82b2d4cbc505 - source: https://openapi.tools/ name: DeveloperHub category: Documentation link: https://developerhub.io language: SaaS source_description: Collaboration platform for product and API documentation v2: true v3: true v3_1: true foundInMaster: true id: 9c4871865101e2bb2ee5a4e48084b75e - source: https://openapi.tools/ name: OAuth2 as OpenAPI Spec 3.0 components language: Any repository: https://github.com/ybelenko/oauth2_as_oas3_components source_description: >- OAuth2 token endpoint described with OAS3 schema. All grants documented. Can be installed as NPM or Composer package. v2: false v3: true repositoryMetadata: base64Readme: >- IyBPQXV0aDIgYXMgT3BlbkFQSSBTcGVjIDMuMCBjb21wb25lbnRzCgpUaGUgZXhhbXBsZSBmaWxlIHdoaWNoIGRlc2NyaWJlcyBPQXV0aDIgdG9rZW4gZW5kcG9pbnRzIGxvY2F0ZWQgW2Rpc3Qvb2F1dGgyX2VuZHBvaW50cy55bWxdKGRpc3Qvb2F1dGgyX2VuZHBvaW50cy55bWwpLgoKIyMgV2h5IHRoaXMgcGFja2FnZSBleGlzdHMKU2luY2UgW1JGQyA2NzQ5IE9BdXRoMl0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkpIHNlcnZlciBpbXBsZW1lbnRhdGlvbiBtYXkgYmUgdmVyeSBkaWZmZXJlbnQob3B0aW9uYWwvcmVjb21tZW5kZWQgcmVzcG9uc2UgZmllbGRzLCBleHRlbmRlZCBncmFudCkgaXQgbWlnaHQgbWUgdXNlZnVsIHRvIGRlc2NyaWJlIHlvdXIgdW5pcXVlIGltcGxlbWVudGF0aW9uIHdpdGhpbiB5b3VyIE9BUzMgZmlsZS4gSXQncyBhbHNvIHZlcnkgaGFuZHkgdG8gc2VlIGV4YW1wbGVzIG9mIHlvdXIgdG9rZW4gYW5kIGVycm9yIHJlc3BvbnNlLCBiZWNhdXNlIFJGQzY3NDkgaXMgYSB0ZXh0IGRvY3VtZW50IHdpdGhvdXQgYW55IHBpY3R1cmVzIG9yIGdyYXBocy4gVGhlIGV4YW1wbGUgZmlsZSBtZW50aW9uZWQgYmVmb3JlIGNvbnRhaW5zIGRlc2NyaXB0aW9uIG9mIHRva2VuIGVuZHBvaW50cyBmb3IgZWFjaCBhdXRob3JpemF0aW9uIGdyYW50LCBjb25zaWRlciBpdCBhcyBzdGFydGluZyBwb2ludC4KCkV4YW1wbGUgZmlsZSBvbWl0cyBbYXV0aG9yaXphdGlvbiBlbmRwb2ludF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi0zLjEpIGVuZHBvaW50IG9uIHB1cnBvc2UuIEkgZG9uJ3Qga25vdyBob3cgdG8gZGVzY3JpYmUgaXQgd2l0aCBPQVMzIHNpbmNlIGVuZHBvaW50IHJlc3BvbnNlIGlzbid0IEpTT04oaHRtbCBwYWdlKS4gSWYgeW91IGhhdmUgYW55IHN1Z2dlc3Rpb24gcGxlYXNlIHN1Ym1pdCBhbiBpc3N1ZSB0byB0aGlzIHJlcG8uCgpTaW5jZSBbUkZDIDY3NDkgLSBUaGUgT0F1dGgyLjAgQXV0aG9yaXphdGlvbiBGcmFtZXdvcmsgLSAyLjMuMS4gQ2xpZW50IFBhc3N3b3JkXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTIuMy4xKSBkb2Vzbid0IHJlY29tbWVuZCB0byBzZW5kIGNsaWVudCBwYXNzd29yZCBpbiByZXF1ZXN0IGJvZHkgdGhlbiBvdXIgZXhhbXBsZSBleHBlY3RzIGJhc2ljIGF1dGhvcml6YXRpb24gaW4gYWxsIGVuZHBvaW50cy4KCiMjIEluc3RhbGxhdGlvbgoKIyMjIENvcHkgUGFzdGUKU2luY2UgaXQncyBub3QgYWN0dWFsbHkgYSBjb2RlLCBidXQgbWFya3VwIHlvdSBjYW4ganVzdCBjb3B5IGFueXRoaW5nIHlvdSB3YW50IGZyb20gW2Rpc3Qvb2F1dGgyX2VuZHBvaW50cy55bWxdKGRpc3Qvb2F1dGgyX2VuZHBvaW50cy55bWwpLgoKVGhlcmUgaXMgYWxzbyBlbmhhbmNlZCBleGFtcGxlIHdpdGggcG9seW1vcnBoaXNtIGF0IFtkaXN0L29hdXRoMl9lbmRwb2ludHNfcG9seW1vcnBoaXNtLnltbF0oZGlzdC9vYXV0aDJfZW5kcG9pbnRzX3BvbHltb3JwaGlzbS55bWwpLiAqKlBsZWFzZSwgbWFrZSBzdXJlIHRoYXQgeW91ciB0b29scyBzdXBwb3J0cyBwb2x5bW9ycGhpc20uIFRoaXMgZXhhbXBsZSBjb250YWlucyBuZXcgZmVhdHVyZXMgbm90IGhpZ2hseSBhZG9wdGVkIHlldC4gQ2hlY2sgYXQgbGVhc3QgYG9uZU9mYCBwcm9wZXJ0eSBzdXBwb3J0LiBJIHdvdWxkbid0IHVzZSBpdCBteXNlbGYgYmVjYXVzZSBtb3N0IG9mIHRoZSBPcGVuQVBJIHRvb2xzIGhhdmUgaXNzdWVzIHdpdGggcG9seW1vcnBoaXNtIG5vdywgYnV0IHRoaXMgZXhhbXBsZSBtYXkgYmUgdXNlZnVsIGluIGZvcnNlZWFibGUgZnV0dXJlLioqCgojIyMgQ29tcG9zZXIKSW5zdGFsbCBbQ29tcG9zZXIgLSBEZXBlbmRlbmN5IE1hbmFnZXIgZm9yIFBIUF0oaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcvZG93bmxvYWQvKQoKVGhlbiBydW4gaW4gdGVybWluYWw6CmBgYGNvbnNvbGUKY29tcG9zZXIgcmVxdWlyZSB5YmVsZW5rby9vYXV0aDJfYXNfb2FzM19jb21wb25lbnRzCmBgYAoKVXNlIHByb3ZpZGVkIGNvbXBvbmVudHMgdmlhIGAkcmVmYCBhdHRyaWJ1dGUgbGlrZToKCmBgYHlhbWwKcGF0aHM6CiAgL3Rva2VuOgogICAgcG9zdDoKICAgICAgc3VtbWFyeTogT2J0YWluIGFjY2VzcyB0b2tlbiB3aXRoICJhdXRob3JpemF0aW9uX2NvZGUiIGdyYW50LgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICAkcmVmOiAnLi92ZW5kb3IveWJlbGVua28vb2F1dGgyX2FzX29hczNfY29tcG9uZW50cy9kaXN0L2NvbXBvbmVudHMvcmVxdWVzdEJvZGllcy9Ub2tlblJlcXVlc3RDb2RlR3JhbnQueW1sJwogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICAkcmVmOiAnLi92ZW5kb3IveWJlbGVua28vb2F1dGgyX2FzX29hczNfY29tcG9uZW50cy9kaXN0L2NvbXBvbmVudHMvcmVzcG9uc2VzL09BdXRoMlRva2VuU3VjY2Vzc1Jlc3BvbnNlLnltbCcKICAgICAgICAnNFhYJzoKICAgICAgICAgICRyZWY6ICcuL3ZlbmRvci95YmVsZW5rby9vYXV0aDJfYXNfb2FzM19jb21wb25lbnRzL2Rpc3QvY29tcG9uZW50cy9yZXNwb25zZXMvT0F1dGgyVG9rZW5FcnJvclJlc3BvbnNlLnltbCcKYGBgCgpFeHRlbmRlZCBleGFtcGxlIHdpdGggcmVmcyBbZGlzdC9vYXV0aDJfZW5kcG9pbnRzX3dpdGhfcmVmcy55bWxdKGRpc3Qvb2F1dGgyX2VuZHBvaW50c193aXRoX3JlZnMueW1sKQoKIyMjIE5QTQpbSW5zdGFsbCBOUE0gYW5kIE5vZGUuanNdKGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vZG93bmxvYWRpbmctYW5kLWluc3RhbGxpbmctbm9kZS1qcy1hbmQtbnBtKQoKVGhlbiBydW4gaW4gdGVybWluYWw6CmBgYGNvbnNvbGUKbnBtIGkgLS1zYXZlIG9hdXRoMl9hc19vYXMzX2NvbXBvbmVudHMKYGBgCgpVc2UgcHJvdmlkZWQgY29tcG9uZW50cyB2aWEgYCRyZWZgIGF0dHJpYnV0ZSBsaWtlOgoKYGBgeWFtbApwYXRoczoKICAvdG9rZW46CiAgICBwb3N0OgogICAgICBzdW1tYXJ5OiBPYnRhaW4gYWNjZXNzIHRva2VuIHdpdGggImF1dGhvcml6YXRpb25fY29kZSIgZ3JhbnQuCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgICRyZWY6ICcuL25vZGVfbW9kdWxlcy9vYXV0aDJfYXNfb2FzM19jb21wb25lbnRzL2Rpc3QvY29tcG9uZW50cy9yZXF1ZXN0Qm9kaWVzL1Rva2VuUmVxdWVzdENvZGVHcmFudC55bWwnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgICRyZWY6ICcuL25vZGVfbW9kdWxlcy9vYXV0aDJfYXNfb2FzM19jb21wb25lbnRzL2Rpc3QvY29tcG9uZW50cy9yZXNwb25zZXMvT0F1dGgyVG9rZW5TdWNjZXNzUmVzcG9uc2UueW1sJwogICAgICAgICc0WFgnOgogICAgICAgICAgJHJlZjogJy4vbm9kZV9tb2R1bGVzL29hdXRoMl9hc19vYXMzX2NvbXBvbmVudHMvZGlzdC9jb21wb25lbnRzL3Jlc3BvbnNlcy9PQXV0aDJUb2tlbkVycm9yUmVzcG9uc2UueW1sJwpgYGAKCkV4dGVuZGVkIGV4YW1wbGUgd2l0aCByZWZzIFtkaXN0L29hdXRoMl9lbmRwb2ludHNfd2l0aF9yZWZzLnltbF0oZGlzdC9vYXV0aDJfZW5kcG9pbnRzX3dpdGhfcmVmcy55bWwpCgojIyBDb250cmlidXRpbmcKCklmIHlvdSBoYXZlIGFueSBzdWdnZXN0aW9ucyBwbGVhc2Ugc3VibWl0IGFuIGlzc3VlLgoKIyMgTGljZW5zZQpbTUlUIExpY2Vuc2VdKExJQ0VOU0UpCg== readmeEtag: '"6c8026d25e06120124e8248435017d4bb49efc43"' readmeLastModified: Tue, 20 Apr 2021 20:45:12 GMT repositoryId: 358547893 description: OAuth2 definitions as OpenAPI Spec 3.0 components created: '2021-04-16T09:35:37Z' updated: '2024-04-24T15:16:30Z' language: null archived: false stars: 8 watchers: 2 forks: 1 owner: ybelenko logo: https://avatars.githubusercontent.com/u/5541023?v=4 license: MIT repoEtag: '"71c3dbea66ee5624d4f1eb9297663674d35235b93bbc0c1657ee9b7d1b7c37fa"' repoLastModified: Wed, 24 Apr 2024 15:16:30 GMT foundInMaster: true id: 943b84998524f65e45768ca73ecb3841 category: Parsers - source: https://openapi.tools/ name: Mayhem for API category: - Testing - Data Validators - Security - Server Implementations link: https://forallsecure.com/mayhem-for-api repository: https://github.com/forallsecure/mapi-action language: Any source_description: >- Probe your REST API with an infinite stream of test cases generated automatically from your OpenAPI specification. v2: true v3: true id: ce2ef79e2c9f1a119ca823d0afd8258b repositoryMetadata: base64Readme: >- IyBNYXloZW0gZm9yIEFQSSBHaXRIdWIgQWN0aW9uCgpbIVtNYXloZW0gZm9yIEFQSV0oLi9pbWdzL21hcGktbG9nby1mdWxsLWNvbG9yLnN2ZyldKGh0dHBzOi8vd3d3Lm1heWhlbS5zZWN1cml0eS9hcGktc2VjdXJpdHkpCgpBIEdpdEh1YiBBY3Rpb24gZm9yIHVzaW5nIE1heWhlbSBmb3IgQVBJIHRvIGNoZWNrIGZvciByZWxpYWJpbGl0eSwKcGVyZm9ybWFuY2UgYW5kIHNlY3VyaXR5IGlzc3VlcyBpbiB5b3VyIEFQSXMuCgojIyBBYm91dCBNYXloZW0gZm9yIEFQSQoK8J+nqiBNb2Rlcm4gQXBwIFRlc3Rpbmc6IE1heWhlbSBmb3IgQVBJIGlzIGEgZHluYW1pYyB0ZXN0aW5nIHRvb2wgdGhhdApjYXRjaGVzIHJlbGlhYmlsaXR5LCBwZXJmb3JtYW5jZSBhbmQgc2VjdXJpdHkgYnVncyBiZWZvcmUgdGhleSBoaXQKcHJvZHVjdGlvbi4KCvCfp5HigI3wn5K7IEZvciBEZXZlbG9wZXJzLCBieSBkZXZlbG9wZXJzOiBUaGUgZW5naW5lZXJzIGJ1aWxkaW5nCnNvZnR3YXJlIGFyZSB0aGUgYmVzdCBlcXVpcHBlZCB0byBmaXggYnVncywgaW5jbHVkaW5nIHNlY3VyaXR5IGJ1Z3MuIEFzCmVuZ2luZWVycyBvdXJzZWx2ZXMsIHdlJ3JlIGJ1aWxkaW5nIHRvb2xzIHRoYXQgd2Ugd2lzaCBleGlzdGVkIHRvIG1ha2UKb3VyIGpvYiBlYXNpZXIhCgrwn6SWIFNpbXBsZSB0byBBdXRvbWF0ZSBpbiBDSTogVGVzdHMgYmVsb25nIGluIENJLCBydW5uaW5nIG9uIGV2ZXJ5IGNvbW1pdAphbmQgUFJzLiBXZSBtYWtlIGl0IGVhc3ksIGFuZCBwcm92aWRlIHJlc3VsdHMgcmlnaHQgaW4geW91ciBQUnMgd2hlcmUKeW91IHdhbnQgdGhlbS4gQWRkaW5nIE1heWhlbSBmb3IgQVBJIHRvIGEgRGV2T3BzIHBpcGVsaW5lIGlzIGVhc3kuCgpXYW50IHRvIHRyeSBpdD8gW1NpZ24gdXAgZm9yIGZyZWVdKGh0dHBzOi8vd3d3Lm1heWhlbS5zZWN1cml0eS9hcGktc2VjdXJpdHkpIHRvZGF5IQoKIyMgVXNhZ2UKCjEuIEdldCBhIE1heWhlbSBmb3IgQVBJIHRva2VuCgogICAgYS4gW1NpZ24gdXAgZm9yIE1heWhlbSBmb3IgZnJlZSBhbmQgaW5zdGFsbCBgbWFwaWBdKGh0dHBzOi8vYXBwLm1heWhlbS5zZWN1cml0eSkKCiAgICBiLiBDcmVhdGUgYW4gW0FQSSB0b2tlbl0oaHR0cHM6Ly9hcHAubWF5aGVtLnNlY3VyaXR5L2RvY3MvYXBpLXRlc3RpbmcvZ2V0dGluZy1zZXQtdXAvZ2VuZXJhdGluZy1hcGktdG9rZW5zLykKCiAgICBjLiBBZGQgeW91ciBBUEkgdG9rZW4gd2l0aCBuYW1lIGBNQVlIRU1fVE9LRU5gIG9uIHlvdXIgcmVwb3NpdG9yeSdzIEdpdEh1YiBwYWdlIGF0CiAgICAgICBgU2V0dGluZ3NgIOKGkiBgU2VjcmV0c2Ag4oaSIGBOZXcgcmVwb3NpdG9yeSBzZWNyZXRgCgoyLiBDcmVhdGUgYSBmaWxlIGluIF95b3VyXyBHaXRIdWIgcmVwb3NpdG9yeSBhdDoKYGBgCiAgICAuZ2l0aHViL3dvcmtmbG93cy9Gb3JBbGxTZWN1cmUtTWF5aGVtLWZvci1BUEkueW1sCmBgYAoKMy4gQWRkIHRoZSBmb2xsb3dpbmcgdGV4dCB0byB0aGUgZmlsZSBhbmQgdHdlYWsgaXQgZm9yIHlvdXIgY29kZWJhc2UuCgogICAgKipOb3RlKio6IFRvIGF1dG8tZGV0ZWN0IGRpZmZzLCBNYXloZW0gbmVlZHMgYSBkZWVwZXIgcmVwb3NpdG9yeSBjbG9uZSB0aGFuIHRoZSBkZWZhdWx0IG9mIGFjdGlvbnMvY2hlY2tvdXRAdjMuICBTZXQgYGZldGNoLWRlcHRoYCB0byAwIGZvciBhIGZ1bGwgY2xvbmUsIG9yIGRlZXBlciBjbG9uZXMgdG8gZmV0Y2ggZW5vdWdoIGNvbW1pdCBoaXN0b3J5IHRvIGNvbXB1dGUgYSBtZXJnZSBiYXNlIGZvciB0aGUgYnJhbmNoLgoKYGBgeWFtbApuYW1lOiBNYXloZW0gZm9yIEFQSQpvbjoKICAgIHB1c2g6CiAgICBwdWxsX3JlcXVlc3Q6CmpvYnM6CiAgc2VjdXJpdHk6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MwogICAgICB3aXRoOgogICAgICAgICMgZmV0Y2ggZW50aXJlIGhpc3RvcnkgdG8gY29tcHV0ZSBkaWZmcyBiZXR3ZWVuIGpvYnMKICAgICAgICBmZXRjaC1kZXB0aDogMAoKICAgIC0gbmFtZTogU3RhcnQgeW91ciBBUEkKICAgICAgcnVuOiAuL3J1bl95b3VyX2FwaS5zaCAmICMgPC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFVQREFURSBUSElTCgogICAgLSBuYW1lOiBSdW4gTWF5aGVtIGZvciBBUEkgdG8gY2hlY2sgZm9yIHZ1bG5lcmFiaWxpdGllcwogICAgICB1c2VzOiBGb3JBbGxTZWN1cmUvbWFwaS1hY3Rpb25AdjIKICAgICAgd2l0aDoKICAgICAgICBtYXloZW0tdG9rZW46ICR7eyBzZWNyZXRzLk1BWUhFTV9UT0tFTiB9fQogICAgICAgIGFwaS11cmw6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCAjIDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVVBEQVRFIFRISVMKICAgICAgICBhcGktc3BlYzogeW91ci1vcGVuYXBpLXNwZWMtb3ItcG9zdG1hbi1jb2xsZWN0aW9uLmpzb24gIyA8LS0tIFVQREFURSBUSElTCmBgYAoKNC4gQ29tbWl0IHRoZSBuZXcgZmlsZSBhbmQgcHVzaCBpdCB1cCB0byBHaXRIdWIKCjUuIFlvdXIgbmV3IE1heWhlbSBmb3IgQVBJIGFjdGlvbiB3aWxsIGJlIHZpc2libGUgYXQKCiAgICBgaHR0cHM6Ly9naXRodWIuY29tLzxVU0VSTkFNRT4vPFJFUE9fTkFNRT4vYWN0aW9uc2AKCi0tLQoKVGhpcyByZXBvIGNvbnRhaW5zIGEgW2Z1bGwgZXhhbXBsZV0od29ya2Zsb3cueW1sKSBmb3IgcmVmZXJlbmNlLgoKVGhlIGFjdGlvbiBhY2NlcHRzIHRoZSBmb2xsb3cgaW5wdXRzOgoKfCBSZXF1aXJlZCB8IElucHV0IE5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBEZWZhdWx0CnwgLS0tIHwgLS0tIHwgLS0tIHwgLS0tIHwgLS0tCnwg4pyU77iPIHwgYG1heWhlbS10b2tlbmAgfCBzdHJpbmcgfCBNYXloZW0gQVBJIHRva2VuIHwKfCDinJTvuI8gfCBgYXBpLXVybGAgfCBzdHJpbmcgfCBVUkwgdG8geW91ciBydW5uaW5nIEFQSS4gKkV4YW1wbGU6KiBodHRwOi8vbG9jYWxob3N0OjgwMDAvYXBpL3YxIHwKfCDinJTvuI8gfCBgYXBpLXNwZWNgIHwgc3RyaW5nIHwgUGF0aCBvciBVUkwgdG8geW91ciBTd2FnZ2VyIHNwZWMsIE9wZW5BUEkgc3BlYywgb3IgUG9zdG1hbiBjb2xsZWN0aW9uIGZpbGUsIG9yIFBvc3RtYW4gW2NvbGxlY3Rpb24gaWRdKGh0dHBzOi8vc3VwcG9ydC5wb3N0bWFuLmNvbS9oYy9lbi11cy9hcnRpY2xlcy81MDYzNzg1MDk1MzE5LUhvdy10by1maW5kLXRoZS1JRC1vZi1hbi1lbGVtZW50LWluLVBvc3RtYW4pLnwKfCAgIHwgYHRhcmdldGAgfCBzdHJpbmcgfCBUaGUgb3JnYW5pemF0aW9uLXNjb3BlZCBuYW1lIG9mIHlvdXIgdGFyZ2V0LCBzdWNoIGFzIGBmb3JhbGxzZWN1cmUvbWFwaS1hY3Rpb24tZXhhbXBsZWAgfCBhdXRvLWdlbmVyYXRlZCBmcm9tIHlvdXIgR2l0SHViIFJlcG9zaXRvcnkgbmFtZQp8ICAgfCBgcG9zdG1hbi1hcGkta2V5YCB8IHN0cmluZyB8IFBvc3RtYW4gW0FQSSBrZXldKGh0dHBzOi8vbGVhcm5pbmcucG9zdG1hbi5jb20vZG9jcy9kZXZlbG9wZXIvaW50cm8tYXBpLykgZm9yIGFwaSBzcGVjcyB0aGF0IGFyZSBwcml2YXRlIHBvc3RtYW4gY29sbGVjdGlvbiBpZHMuCnwgICB8IGBwb3N0bWFuLWVudmlyb25tZW50YCB8IHN0cmluZyB8IFBhdGggb3IgaWQgb2YgYSBQb3N0bWFuIFtFbnZpcm9ubWVudF0oaHR0cHM6Ly9sZWFybmluZy5wb3N0bWFuLmNvbS9kb2NzL3NlbmRpbmctcmVxdWVzdHMvbWFuYWdpbmctZW52aXJvbm1lbnRzLykuCnwgICB8IGB6YXAtYXBpLXNjYW5gIHwgYm9vbGVhbiB8IEluY2x1ZGUgcmVzdWx0cyBmcm9tIFtaQVAgLSBBUEkgU2Nhbl0oaHR0cHM6Ly93d3cuemFwcm94eS5vcmcvZG9jcy9kb2NrZXIvYXBpLXNjYW4vKSB8IGZhbHNlIHwKfCAgIHwgYGR1cmF0aW9uYCB8IG51bWJlci9zdHJpbmcgfCBEdXJhdGlvbiBvZiBzY2FuLiAnYXV0bycgZm9yIGF1dG9tYXRpYyBkdXJhdGlvbi4gT3RoZXJ3aXNlIHRpbWUgKGllOiAnMzBzZWMnLCAnNW1pbicsICcxaCcsICcxaDMwbScpIHwgYXV0bwp8ICAgfCBgaHRtbC1yZXBvcnRgIHwgc3RyaW5nIHwgUGF0aCB0byB0aGUgZ2VuZXJhdGVkIFNBUklGIHJlcG9ydCB8CnwgICB8IGBzYXJpZi1yZXBvcnRgIHwgc3RyaW5nIHwgUGF0aCB0byB0aGUgZ2VuZXJhdGVkIEhUTUwgcmVwb3J0IHwKfCAgIHwgYHJ1bi1hcmdzYCB8IHN0cmluZyB8IEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gdGhlIGBtYXBpIHJ1bmAgY29tbWFuZC4gIEFyZ3VtZW50IHZhbHVlcyBzaG91bGQgYmUgc2VwYXJhdGVkIG9uIG5ldyBsaW5lcy4gPGJyPjxicj5lLmcuPGJyPiA8cHJlPiAgcnVuLWFyZ3M6IFx8PGJyPiAgICAjIEJhc2ljIEF1dGg8YnI+ICAgIC0tYmFzaWMtYXV0aDxicj4gICAgbG9naW46cGFzc3dvcmQ8L3ByZT48YnI+4pqg77iPIEF2b2lkIHdyYXBwaW5nIHZhbHVlcyBpbiBxdW90ZXMsIGFzIHRoZXNlIHdpbGwgYmUgZXNjYXBlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIHZhbHVlIHBhc3NlZCB0byBgbWFwaWAuPGJyPjxicj7im5TvuI8gYCJsb2dpbjpwYXNzd29yZCJgIDxicj7inIUgYGxvZ2luOnBhc3N3b3JkYCB8CnwgICB8IGBtYXloZW0tdXJsYCB8IHN0cmluZyB8IE1heWhlbSBBUEkgb3ZlcnJpZGUgfCBodHRwczovL2FwcC5tYXloZW0uc2VjdXJpdHkKCgojIyMgQ29udGludWluZyBvbiBlcnJvcgoKVGhlIGFib3ZlIGV4YW1wbGVzIHdpbGwgZmFpbCB0aGUgd29ya2Zsb3cgd2hlbiBpc3N1ZXMgYXJlIGZvdW5kLiBJZiB5b3UKd2FudCB0byBlbnN1cmUgdGhlIEFjdGlvbiBjb250aW51ZXMsIGV2ZW4gaWYgTWF5aGVtIGZvciBBUEkgZm91bmQKaXNzdWVzLCB0aGVuIGNvbnRpbnVlLW9uLWVycm9yIGNhbiBiZSB1c2VkLgoKYGBgeWFtbApuYW1lOiBNYXloZW0gZm9yIEFQSQpvbjoKICAgIHB1c2g6CiAgICBwdWxsX3JlcXVlc3Q6CmpvYnM6CiAgc2VjdXJpdHk6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MwogICAgICB3aXRoOgogICAgICAgICMgZmV0Y2ggYSBncmVhdGVyIG51bWJlciBvZiBjb21taXRzIGZvciBjb21wdXRpbmcgZGlmZnMgYmV0d2VlbiBqb2JzCiAgICAgICAgZmV0Y2gtZGVwdGg6IDUwCgogICAgLSBuYW1lOiBTdGFydCB5b3VyIEFQSQogICAgICBydW46IC4vcnVuX3lvdXJfYXBpLnNoICYKCiAgICAtIG5hbWU6IFJ1biBNYXloZW0gZm9yIEFQSSB0byBjaGVjayBmb3IgdnVsbmVyYWJpbGl0aWVzCiAgICAgIHVzZXM6IEZvckFsbFNlY3VyZS9tYXBpLWFjdGlvbkB2MQogICAgICBjb250aW51ZS1vbi1lcnJvcjogdHJ1ZSAjIDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICB3aXRoOgogICAgICAgIG1heWhlbS10b2tlbjogJHt7IHNlY3JldHMuTUFZSEVNX1RPS0VOIH19CiAgICAgICAgYXBpLXVybDogaHR0cDovL2xvY2FsaG9zdDo4MDAwICMgPC0gdXBkYXRlIHRoaXMKICAgICAgICBhcGktc3BlYzogeW91ci1vcGVuYXBpLXNwZWMtb3ItcG9zdG1hbi1jb2xsZWN0aW9uLmpzb24KICAgICAgICAjIEFkZGl0aW9uYWwgJ21hcGkgcnVuJyBhcmd1bWVudHMKICAgICAgICBydW4tYXJnczogfAogICAgICAgICAgIyBCYXNpYyBBdXRoCiAgICAgICAgICAtLWJhc2ljLWF1dGgKICAgICAgICAgIGxvZ2luOnBhc3N3b3JkCiAgICAgICAgICAjIERvIG5vdCBmdXp6IHRoZSAnL2xvZ291dCcgZW5kcG9pbnQKICAgICAgICAgIC0taWdub3JlLWVuZHBvaW50CiAgICAgICAgICAvbG9nb3V0CiAgICAgICAgICAjIFRyZWF0IGFsbCB3YXJuaW5ncyBhcyBlcnJvcnMKICAgICAgICAgIC0td2FybmFzZXJyb3IKCmBgYAoKIyBSZXBvcnRzCgpNYXloZW0gZm9yIEFQSSBnZW5lcmF0ZSByZXBvcnRzIHdoZW4geW91IHBhc3MgYHNhcmlmLXJlcG9ydGAgb3IKYGh0bWwtcmVwb3J0YCB0byB0aGUgaW5wdXQuIE1ha2Ugc3VyZSB0byBwYXNzIGBjb250aW51ZS1vbi1lcnJvcmAgdG8gdGhlCk1heWhlbSBmb3IgQVBJIHN0ZXAgaWYgeW91IHdhbnQgdG8gcHJvY2VzcyB0aGUgcmVwb3J0cyBpbiBmb2xsb3ctdXAKc3RlcHMuCgojIyBBcnRpZmFjdCBIVE1MIFJlcG9ydAoKIVtIVE1MIFJlcG9ydF0oLi9pbWdzL3NhbXBsZS1yZXBvcnQucG5nKQoKVG8gY3JlYXRlIGFuIGFydGlmYWN0IG9mIHRoZSByZXBvcnQgaW4geW91ciBidWlsZCwgYWRkIHRoaXMgc3RlcCB0byB5b3VyIHBpcGVsaW5lOgoKYGBgeWFtbAotIG5hbWU6IFJ1biBNYXloZW0gZm9yIEFQSSB0byBjaGVjayBmb3IgdnVsbmVyYWJpbGl0aWVzCiAgdXNlczogRm9yQWxsU2VjdXJlL21hcGktYWN0aW9uQHYxCiAgY29udGludWUtb24tZXJyb3I6IHRydWUKICB3aXRoOgogICAgbWF5aGVtLXRva2VuOiAke3sgc2VjcmV0cy5NQVlIRU1fVE9LRU4gfX0KICAgIGFwaS11cmw6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCAjIDwtIHVwZGF0ZSB0aGlzCiAgICBhcGktc3BlYzogeW91ci1vcGVuYXBpLXNwZWMtb3ItcG9zdG1hbi1jb2xsZWN0aW9uLmpzb24gIyA8LSB1cGRhdGUgdGhpcwogICAgaHRtbC1yZXBvcnQ6IG1hcGkuaHRtbAoKIyBBcmNoaXZlIEhUTUwgcmVwb3J0Ci0gbmFtZTogQXJjaGl2ZSBNYXloZW0gZm9yIEFQSSByZXBvcnQKICB1c2VzOiBhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2MgogIHdpdGg6CiAgICBuYW1lOiBtYXBpLXJlcG9ydAogICAgcGF0aDogbWFwaS5odG1sCmBgYAoKIyMgR2l0SHViIENvZGUgU2Nhbm5pbmcgc3VwcG9ydAoKIVtNYXloZW0gZm9yIEFQSSBpc3N1ZSBpbiB5b3VyClBSXSguL2ltZ3Mvc2FyaWYtZ2l0aHViLnBuZykKClVwbG9hZGluZyBTQVJJRiByZXBvcnRzIHRvIEdpdEh1YiBhbGxvd3MgeW91IHRvIHNlZSBhbnkgaXNzdWUgZm91bmQgYnkKTWF5aGVtIGZvciBBUEkgcmlnaHQgb24geW91ciBQUiwgYXMgd2VsbCBhcyBpbiB0aGUgIlNlY3VyaXR5IiB0YWIgb2YKeW91ciByZXBvc2l0b3J5LiBUaGlzIGN1cnJlbnRseSByZXF1aXJlcyB5b3UgdG8gaGF2ZSBhIEdpdEh1YiBFbnRlcnByaXNlClBsYW4gb3IgaGF2ZSBhIHB1YmxpYyByZXBvc2l0b3J5LiBUbyB1cGxvYWQgdGhlIFNBUklGIHJlcG9ydCwgYWRkIHRoaXMKc3RlcCB0byB5b3VyIHBpcGVsaW5lOgoKYGBgeWFtbAotIG5hbWU6IFJ1biBNYXloZW0gZm9yIEFQSSB0byBjaGVjayBmb3IgdnVsbmVyYWJpbGl0aWVzCiAgdXNlczogRm9yQWxsU2VjdXJlL21hcGktYWN0aW9uQHYxCiAgY29udGludWUtb24tZXJyb3I6IHRydWUKICB3aXRoOgogICAgbWF5aGVtLXRva2VuOiAke3sgc2VjcmV0cy5NQVlIRU1fVE9LRU4gfX0KICAgIGFwaS11cmw6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCAjIDwtIHVwZGF0ZSB0aGlzCiAgICBhcGktc3BlYzogeW91ci1vcGVuYXBpLXNwZWMtb3ItcG9zdG1hbi1jb2xsZWN0aW9uLmpzb24gIyA8LSB1cGRhdGUgdGhpcwogICAgc2FyaWYtcmVwb3J0OiBtYXBpLnNhcmlmCgojIFVwbG9hZCBTQVJJRiBmaWxlIChvbmx5IGF2YWlsYWJsZSBvbiBwdWJsaWMgcmVwb3Mgb3IgZ2l0aHViIGVudGVycHJpc2UpCi0gbmFtZTogVXBsb2FkIFNBUklGIGZpbGUKICB1c2VzOiBnaXRodWIvY29kZXFsLWFjdGlvbi91cGxvYWQtc2FyaWZAdjEKICB3aXRoOgogICAgc2FyaWZfZmlsZTogbWFwaS5zYXJpZgpgYGAKCklmIHlvdXIgQVBJIHNlcnZlciBzZW5kcyBiYWNrIHN0YWNrdHJhY2VzIGluIHRoZSA1MDAgSW50ZXJuYWwgU2VydmVyCkVycm9yIChvbmx5IGRvIHRoaXMgaW4gYSB0ZXN0IGVudmlyb25tZW50IC0tIG5ldmVyIGluIHByb2R1Y3Rpb24hKSwKTWF5aGVtIGZvciBBUEkgd2lsbCB0cnkgdG8gbWFwIGlzc3VlcyBpdCBmaW5kcyB0byB0aGUgZXhhY3QgbGluZSBvZiBjb2RlCnRoYXQgdHJpZ2dlcmVkIHRoZSBpc3N1ZS4K readmeEtag: '"a6d5058e21526c80f27579b14401c696a2e0c3e9"' readmeLastModified: Fri, 03 May 2024 17:04:39 GMT repositoryId: 355229366 description: ' 🤖 Run a Mayhem for API scan in GitHub Actions' created: '2021-04-06T14:58:24Z' updated: '2024-08-22T00:07:39Z' language: TypeScript archived: false stars: 23 watchers: 11 forks: 4 owner: ForAllSecure logo: https://avatars.githubusercontent.com/u/12204221?v=4 license: MIT repoEtag: '"aae64810ee9c994ea86be51c3743b9a0bc83e659b7ac68227e9c915defd68a43"' repoLastModified: Thu, 22 Aug 2024 00:07:39 GMT foundInMaster: true v3_1: true - source: https://openapi.tools/ name: JSONSchema::Validator category: Data Validators language: Perl link: https://metacpan.org/pod/JSONSchema::Validator repository: https://github.com/skbkontur/perl-jsonschema-validator source_description: >- A Perl library which validates request/response according to an OpenAPI specification v3: true repositoryMetadata: base64Readme: >- IyBOQU1FCgpKU09OU2NoZW1hOjpWYWxpZGF0b3IgLSBWYWxpZGF0b3IgZm9yIEpTT04gU2NoZW1hIERyYWZ0NC9EcmFmdDYvRHJhZnQ3IGFuZCBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wCgojIFZFUlNJT04KCnZlcnNpb24gMC4wMTEKCiMgU1lOT1BTSVMKCiAgICAjIHRvIGdldCBPcGVuQVBJIHZhbGlkYXRvciBpbiBZQU1MIGZvcm1hdAogICAgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHJlc291cmNlID0+ICdmaWxlOi8vL3NvbWUvcGF0aC90by9vYXMzMC55bWwnKTsKICAgIG15ICgkcmVzdWx0LCAkZXJyb3JzLCAkd2FybmluZ3MpID0gJHZhbGlkYXRvci0+dmFsaWRhdGVfcmVxdWVzdCgKICAgICAgICBtZXRob2QgPT4gJ0dFVCcsCiAgICAgICAgb3BlbmFwaV9wYXRoID0+ICcvdXNlci97aWR9L3Byb2ZpbGUnLAogICAgICAgIHBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICBwYXRoID0+IHsKICAgICAgICAgICAgICAgIGlkID0+IDEyMzQKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcXVlcnkgPT4gewogICAgICAgICAgICAgICAgZGV0YWlscyA9PiAnc2hvcnQnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGhlYWRlciA9PiB7CiAgICAgICAgICAgICAgICBoZWFkZXIgPT4gJ2hlYWRlciB2YWx1ZScKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY29va2llID0+IHsKICAgICAgICAgICAgICAgIG5hbWUgPT4gJ3ZhbHVlJwogICAgICAgICAgICB9LAogICAgICAgICAgICBib2R5ID0+IFskaXNfZXhpc3RzLCAkY29udGVudF90eXBlLCAkZGF0YV0KICAgICAgICB9CiAgICApOwogICAgbXkgKCRyZXN1bHQsICRlcnJvcnMsICR3YXJuaW5ncykgPSAkdmFsaWRhdG9yLT52YWxpZGF0ZV9yZXNwb25zZSgKICAgICAgICBtZXRob2QgPT4gJ0dFVCcsCiAgICAgICAgb3BlbmFwaV9wYXRoID0+ICcvdXNlci97aWR9L3Byb2ZpbGUnLAogICAgICAgIHN0YXR1cyA9PiAnMjAwJywKICAgICAgICBwYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgaGVhZGVyID0+IHsKICAgICAgICAgICAgICAgIGhlYWRlciA9PiAnaGVhZGVyIHZhbHVlJwogICAgICAgICAgICB9LAogICAgICAgICAgICBib2R5ID0+IFskaXNfZXhpc3RzLCAkY29udGVudF90eXBlLCAkZGF0YV0KICAgICAgICB9CiAgICApCgogICAgIyB0byBnZXQgSlNPTiBTY2hlbWEgRHJhZnQ0L0RyYWZ0Ni9EcmFmdDcgdmFsaWRhdG9yIGluIEpTT04gZm9ybWF0CiAgICAkdmFsaWRhdG9yID0gSlNPTlNjaGVtYTo6VmFsaWRhdG9yLT5uZXcocmVzb3VyY2UgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbS9kcmFmdDQvc2NoZW1hLmpzb24nKQogICAgbXkgKCRyZXN1bHQsICRlcnJvcnMpID0gJHZhbGlkYXRvci0+dmFsaWRhdGVfc2NoZW1hKCRvYmplY3RfdG9fdmFsaWRhdGUpCgojIERFU0NSSVBUSU9OCgpPcGVuQVBJIHNwZWNpZmljYXRpb24gYW5kIEpTT04gU2NoZW1hIERyYWZ0NC9EcmFmdDYvRHJhZnQ3IHZhbGlkYXRvcnMgd2l0aCBtaW5pbXVtIGRlcGVuZGVuY2llcy4KCiMgTUVUSE9EUwoKIyMgbmV3CgpDcmVhdGVzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbGlkYXRvcnM6IEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6RHJhZnQ0LCBKU09OU2NoZW1hOjpWYWxpZGF0b3I6OkRyYWZ0NiwgSlNPTlNjaGVtYTo6VmFsaWRhdG9yOjpEcmFmdDcsIEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6T0FTMzAuCgogICAgbXkgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHJlc291cmNlID0+ICdmaWxlOi8vL3NvbWUvcGF0aC90by9vYXMzMC55bWwnKTsKICAgIG15ICR2YWxpZGF0b3IgPSBKU09OU2NoZW1hOjpWYWxpZGF0b3ItPm5ldyhyZXNvdXJjZSA9PiAnaHR0cDovL2V4YW1wbGUuY29tL2RyYWZ0NC9zY2hlbWEuanNvbicpOwogICAgbXkgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHNjaGVtYSA9PiB7JyRzY2hlbWEnID0+ICdwYXRoL3RvL3NjaGVtYScsIC4uLn0pOwogICAgbXkgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHNjaGVtYSA9PiB7Li4ufSwgc3BlY2lmaWNhdGlvbiA9PiAnRHJhZnQ0Jyk7CgppZiBwYXJhbWV0ZXIgYHNwZWNpZmljYXRpb25gIGlzIG5vdCBzcGVjaWZpZWQgdGhlbiB0eXBlIG9mIHZhbGlkYXRvciB3aWxsIGJlIGRldGVybWluZWQgYnkgYCRzY2hlbWFgIGtleQpmb3IgSlNPTiBTY2hlbWEgRHJhZnQ0L0RyYWZ0Ni9EcmFmdDcgYW5kIGJ5IGBvcGVuYXBpYCBrZXkgZm9yIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAgaW4gYHNjaGVtYWAgcGFyYW1ldGVyLgoKUGFyYW1ldGVyczoKCi0gcmVzb3VyY2VzCgogICAgVG8gZ2V0IHNjaGVtYSBieSB1cmkKCi0gc2NoZW1hCgogICAgVG8gZ2V0IGV4cGxpY2l0bHkgc3BlY2lmaWVkIHNjaGVtYQoKLSBzcGVjaWZpY2F0aW9uCgogICAgVG8gc3BlY2lmeSBzcGVjaWZpY2F0aW9uIG9mIHNjaGVtYQoKLSB2YWxpZGF0ZVxfc2NoZW1hCgogICAgRG8gbm90IHZhbGlkYXRlIHNwZWNpZmllZCBzY2hlbWEKCi0gYmFzZVxfdXJpCgogICAgVG8gc3BlY2lmeSBiYXNlIHVyaSBvZiBzY2hlbWEuCiAgICBUaGlzIHBhcmFtZXRlciB1c2VkIHRvIGJ1aWxkIGFic29sdXRlIHBhdGggYnkgcmVsYXRpdmUgcmVmZXJlbmNlIGluIHNjaGVtYS4KICAgIEJ5IGRlZmF1bHQgYGJhc2VfdXJpYCBpcyBlcXVhbCB0byB0aGUgcmVzb3VyY2UgcGF0aCBpZiB0aGUgcmVzb3VyY2UgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBvdGhlcndpc2UgdGhlIGAkaWRgIGtleSBpbiB0aGUgc2NoZW1hLgoKQWRkaXRpb25hbCBwYXJhbWV0ZXJzIG5lZWQgdG8gYmUgbG9va2VkIGF0IGluIGEgc3BlY2lmaWMgdmFsaWRhdG9yIGNsYXNzLgpDdXJyZW50bHkgdGhlcmUgYXJlIHZhbGlkYXRvcnM6IEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6RHJhZnQ0LCBKU09OU2NoZW1hOjpWYWxpZGF0b3I6OkRyYWZ0NiwgSlNPTlNjaGVtYTo6VmFsaWRhdG9yOjpEcmFmdDcsIEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6T0FTMzAuCgojIyB2YWxpZGF0ZVxfcGF0aHMKClZhbGlkYXRlcyBhbGwgZmlsZXMgc3BlY2lmaWVkIGJ5IHBhdGggZ2xvYnMuCgogICAgbXkgJHJlc3VsdCA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+dmFsaWRhdGVfcGF0aHMoWycvc29tZS9wYXRoL3RvL29wZW5hcGkuKi55YW1sJywgJy9zb21lL3BhdGgvdG8vanNvbnNjaGVtYS4qLmpzb24nXSk7CiAgICBmb3IgbXkgJGZpbGUgKGtleXMgJSRyZXN1bHQpIHsKICAgICAgICBteSAoJHJlcywgJGVycm9ycykgPSBAeyRyZXN1bHQtPnskZmlsZX19OwogICAgfQoKIyMgdmFsaWRhdGVcX3Jlc291cmNlCgojIyB2YWxpZGF0ZVxfcmVzb3VyY2VcX3NjaGVtYQoKIyBDQVZFQVRTCgojIyBZQU1MICYgYm9vbGVhbnMKCldoZW4gcmVhZGluZyBzY2hlbWEgZGVmaW5pdGlvbnMgZnJvbSBZQU1MLCBwbGVhc2Ugbm90ZSB0aGF0IHRoZSBzdGFuZGFyZApiZWhhdmlvdXIgb2YgW1lBTUw6OlBQXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvWUFNTCUzQSUzQVBQKSBhbmQgW1lBTUw6OlhTXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvWUFNTCUzQSUzQVhTKSBpcyB0byByZWFkIHZhbHVlcyB3aGljaCBldmFsdWF0ZQp0byBgdHJ1ZWAgb3IgYGZhbHNlYCBpbiBhIHBlcmwgY29udGV4dC4gVGhlc2UgdmFsdWVzIGhhdmUgbm8gcmVjb2duaXphYmxlCidib29sZWFuIHR5cGUnLiBUaGlzIGlzIGluc3VmZmljaWVudCBmb3IgSlNPTiBzY2hlbWEgdmFsaWRhdGlvbi4KClRvIG1ha2UgdGhlIFlBTUwgcmVhZGVycyBhbmQgYm9vbGVhbnMgd29yayB3aXRoIGBKU09OU2NoZW1hOjpWYWxpZGF0b3JgLAp5b3UgbmVlZCB0byB1c2UgdGhlIGBKU09OOjpQUGAgKGluY2x1ZGVkIGluIFBlcmwncyBzdGFuZGFyZCBsaWJyYXJ5KSBtb2R1bGUKYXMgZm9sbG93czoKCiAgICAjIGZvciBZQU1MOjpQUAogICAgdXNlIFlBTUw6OlBQOwoKICAgIG15ICRyZWFkZXIgPSBZQU1MOjpQUC0+bmV3KCBib29sZWFuID0+ICdKU09OOjpQUCcgKTsKICAgICMgZnJvbSBoZXJlLCB5b3UgY2FuIGZyZWVseSB1c2UgdGhlIHJlYWRlciB0bwogICAgIyByZWFkICYgd3JpdGUgYm9vbGVhbnMgYXMgJ3RydWUnIGFuZCAnZmFsc2UnCgoKICAgICMgZm9yIFlBTUw6OlhTCiAgICB1c2UgWUFNTDo6WFM7CgogICAgbXkgJHJlYWRlciA9IFlBTUw6OlhTLT5uZXc7CgogICAgIyBhbmQgd2hlbmV2ZXIgeW91IHJlYWQgWUFNTCB3aXRoIHRoaXMgcmVhZGVyLCBkbzoKICAgIG15ICR5YW1sID0gZG8gewogICAgICBsb2NhbCAkWUFNTDo6WFM6OkJvb2xlYW4gPSAnSlNPTjo6UFAnOwogICAgICAkcmVhZGVyLT5Mb2FkKCRzdHJpbmcpOyAjIG9yICRyZWFkZXItPkxvYWRGaWxlKCdmaWxlbmFtZScpOwogICAgfTsKClRoaXMgaXNuJ3QgYSBwcm9ibGVtIHdoZW4geW91IHVzZSB0aGUgYHJlc291cmNlYCBhcmd1bWVudCB0byB0aGUKYEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6bmV3YCBjb25zdHJ1Y3RvciwgYnV0IGlmIHlvdSByZWFkIHlvdXIgb3duCnNjaGVtYSBhbmQgdXNlIHRoZSBgc2NoZW1hYCBhcmd1bWVudCwgdGhpcyBpcyBzb21ldGhpbmcgdG8gYmUgYXdhcmUgb2YuCgojIyBhbGxvd1xfYmlnbnVtID0+IDEKClRoZSBgYWxsb3dfYmlnbnVtID1gIDE+IHNldHRpbmcgKGF2YWlsYWJsZSBvbiBbSlNPTjo6WFNdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9KU09OJTNBJTNBWFMpIGFuZApbQ3BhbmVsOjpKU09OOjpYU10oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL0NwYW5lbCUzQSUzQUpTT04lM0ElM0FYUykpIG9uIGRlc2VyaWFsaXplcnMgaXMgbm90IHN1cHBvcnRlZC4KCldoZW4gZGVzZXJpYWxpemluZyBhIHJlcXVlc3QgYm9keSB3aXRoIGEgSlNPTiBwYXJzZXIgY29uZmlndXJlZCB3aXRoCmBhbGxvd19iaWdudW0gPWAgMT4sIGZsb2F0cyAtIGV2ZW4gb25lcyB3aGljaCBmaXQgaW50byB0aGUgcmVndWxhcgpmbG9hdCByYW5nZXMgLSB3aWxsIGJlIGRlc2VyaWFsaXplZCBhcyBgTWF0aDo6QmlnRmxvYXRgLiBTaW1pbGFybHksCmludGVnZXJzIG91dHNpZGUgb2YgdGhlIGludGVybmFsIGludGVnZXIgcmFuZ2UgYXJlIGRlc2VyaWFsaXplZCBhcwpgTWF0aDo6QmlnSW50YC4gTnVtYmVycyByZXByZXNlbnRlZCBhcyBgTWF0aDo6QmlnKmAgb2JqZWN0cyBhcmUgbm90CnJlY29nbml6ZWQgYXMgYWN0dWFsIG51bWJlcnMgYW5kIHdpbGwgZmFpbCB2YWxpZGF0aW9uLgoKIyBBVVRIT1JTCgotIEFsZXhleSBTdGF2cm92IDxsb2dpb25pekB5YS5ydT4KLSBJdmFuIFB1dGludHNldiA8dWlkQHJ5ZGxhYi5ydT4KLSBBbnRvbiBGZWRvdG92IDx0b3NoYS5mZWRvdG92LjIwMDBAZ21haWwuY29tPgotIERlbmlzIEliYWV2IDxkaW9ueXNAZ21haWwuY29tPgotIEFuZHJleSBLaG96b3YgPGFuZHJleUByeWRsYWIucnU+CgojIENPTlRSSUJVVE9SUwoKLSBFcmlrIEh1ZWxzbWFubiA8ZWh1ZWxzQGdtYWlsLmNvbT4KLSBKYW1lcyBXYXRlcnMgPGphbWVzQGpjd2F0ZXJzLmNvLnVrPgoKIyBDT1BZUklHSFQgQU5EIExJQ0VOU0UKClRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDIxIGJ5IEFsZXhleSBTdGF2cm92LgoKVGhpcyBpcyBmcmVlIHNvZnR3YXJlLCBsaWNlbnNlZCB1bmRlcjoKCiAgICBUaGUgTUlUIChYMTEpIExpY2Vuc2UK readmeEtag: '"32131c216eadce854b63f2683e969d148b8f6a5b"' readmeLastModified: Fri, 09 Sep 2022 20:43:45 GMT repositoryId: 382338785 description: JSON Schema and OpenAPI data validator for Perl created: '2021-07-02T12:25:14Z' updated: '2024-04-12T09:18:53Z' language: Perl archived: true stars: 8 watchers: 8 forks: 4 owner: skbkontur logo: https://avatars.githubusercontent.com/u/5087073?v=4 license: NOASSERTION repoEtag: '"ff215f3bd7fdfcd72416a95fe0a601626e5c122b4486c3845d91058163c1a6bb"' repoLastModified: Fri, 12 Apr 2024 09:18:53 GMT foundInMaster: true id: 66dd4d5692dee0c9db5adb6f7788057a - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags name: openapi-python-client category: - Converters - Parsers link: https://github.com/openapi-generators/openapi-python-client repository: https://github.com/openapi-generators/openapi-python-client language: Python source_description: Generate modern Python clients from OpenAPI 3.0 documents. v2: false v3: true repositoryMetadata: base64Readme: >- IVtSdW4gQ2hlY2tzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1nZW5lcmF0b3JzL29wZW5hcGktcHl0aG9uLWNsaWVudC93b3JrZmxvd3MvUnVuJTIwQ2hlY2tzL2JhZGdlLnN2ZykKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL29wZW5hcGktZ2VuZXJhdG9ycy9vcGVuYXBpLXB5dGhvbi1jbGllbnQvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3RyaWF4dGVjL29wZW5hcGktcHl0aG9uLWNsaWVudCkKWyFbTUlUIGxpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQtYmx1ZS5zdmcpXShodHRwczovL2xiZXNzb24ubWl0LWxpY2Vuc2Uub3JnLykKWyFbR2VuZXJpYyBiYWRnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90eXBlX2NoZWNrZWQtbXlweS1pbmZvcm1hdGlvbmFsLnN2ZyldKGh0dHBzOi8vbXlweS5yZWFkdGhlZG9jcy5pby9lbi9zdGFibGUvaW50cm9kdWN0aW9uLmh0bWwpClshW1B5UEkgdmVyc2lvbiBzaGllbGRzLmlvXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9vcGVuYXBpLXB5dGhvbi1jbGllbnQuc3ZnKV0oaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9vcGVuYXBpLXB5dGhvbi1jbGllbnQvKQpbIVtEb3dubG9hZHNdKGh0dHBzOi8vc3RhdGljLnBlcHkudGVjaC9wZXJzb25hbGl6ZWQtYmFkZ2Uvb3BlbmFwaS1weXRob24tY2xpZW50P3BlcmlvZD10b3RhbCZ1bml0cz1pbnRlcm5hdGlvbmFsX3N5c3RlbSZsZWZ0X2NvbG9yPWJsdWUmcmlnaHRfY29sb3I9Z3JlZW4mbGVmdF90ZXh0PURvd25sb2FkcyldKGh0dHBzOi8vcGVweS50ZWNoL3Byb2plY3Qvb3BlbmFwaS1weXRob24tY2xpZW50KQoKIyBvcGVuYXBpLXB5dGhvbi1jbGllbnQKCkdlbmVyYXRlIG1vZGVybiBQeXRob24gY2xpZW50cyBmcm9tIE9wZW5BUEkgMy4wIGFuZCAzLjEgZG9jdW1lbnRzLgoKX1RoaXMgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnQgT3BlbkFQSSAyLnggRktBIFN3YWdnZXIuIElmIHlvdSBuZWVkIHRvIHVzZSBhbiBvbGRlciBkb2N1bWVudCwgdHJ5IHVwZ3JhZGluZyBpdCB0bwp2ZXJzaW9uIDMgZmlyc3Qgd2l0aCBvbmUgb2YgbWFueSBhdmFpbGFibGUgY29udmVydGVycy5fCgoqKlRoaXMgcHJvamVjdCBpcyBzdGlsbCBpbiBkZXZlbG9wbWVudCBhbmQgZG9lcyBub3Qgc3VwcG9ydCBhbGwgT3BlbkFQSSBmZWF0dXJlcyoqCgojIyBXaHkgVGhpcz8KClRoaXMgdG9vbCBmb2N1c2VzIG9uIGNyZWF0aW5nIHRoZSBiZXN0IGRldmVsb3BlciBleHBlcmllbmNlIGZvciBQeXRob24gZGV2ZWxvcGVycyBieToKCjEuIFVzaW5nIGFsbCB0aGUgbGF0ZXN0IGFuZCBncmVhdGVzdCBQeXRob24gZmVhdHVyZXMgbGlrZSB0eXBlIGFubm90YXRpb25zIGFuZCBkYXRhY2xhc3Nlcy4KMi4gSGF2aW5nIGRvY3VtZW50YXRpb24gYW5kIHVzYWdlIGluc3RydWN0aW9ucyBzcGVjaWZpYyB0byB0aGlzIG9uZSBnZW5lcmF0b3IuCjMuIEJlaW5nIHdyaXR0ZW4gaW4gUHl0aG9uIHdpdGggSmluamEyIHRlbXBsYXRlcywgbWFraW5nIGl0IGVhc2llciB0byBpbXByb3ZlIGFuZCBleHRlbmQgZm9yIFB5dGhvbiBkZXZlbG9wZXJzLiBJdCdzIGFsc28gbXVjaCBlYXNpZXIgdG8gaW5zdGFsbCBhbmQgdXNlIGlmIHlvdSBhbHJlYWR5IGhhdmUgUHl0aG9uLgoKIyMgSW5zdGFsbGF0aW9uCgpJIHJlY29tbWVuZCB5b3UgaW5zdGFsbCB3aXRoIFtwaXB4XShodHRwczovL3BpcHhwcm9qZWN0LmdpdGh1Yi5pby9waXB4Lykgc28geW91IGRvbid0IGNvbmZsaWN0IHdpdGggYW55IG90aGVyIHBhY2thZ2VzIHlvdSBtaWdodCBoYXZlOiBgcGlweCBpbnN0YWxsIG9wZW5hcGktcHl0aG9uLWNsaWVudCAtLWluY2x1ZGUtZGVwc2AuCgo+IE5vdGUgdGhlIGAtLWluY2x1ZGUtZGVwc2Agb3B0aW9uIG1ha2VzIGBydWZmYCBhdmFpbGFibGUgaW4geW91ciBwYXRoIHNvIHRoYXQgYG9wZW5hcGktcHl0aG9uLWNsaWVudGAgY2FuIHVzZSBpdCB0byBjbGVhbiB1cCB0aGUgZ2VuZXJhdGVkIGNvZGUuCgoqKklmIHlvdSB1c2UgYHBpcHggcnVuYCB0aGVuIHRoZSBwb3N0LWdlbmVyYXRpb24gaG9va3Mgd2lsbCBub3QgYmUgYXZhaWxhYmxlIHVubGVzcyB5b3UgaW5zdGFsbCB0aGVtIG1hbnVhbGx5LioqCgpZb3UgY2FuIGFsc28gaW5zdGFsbCB3aXRoIG5vcm1hbCBwaXA6IGBwaXAgaW5zdGFsbCBvcGVuYXBpLXB5dGhvbi1jbGllbnRgCgpUaGVuLCBpZiB5b3Ugd2FudCB0YWIgY29tcGxldGlvbjogYG9wZW5hcGktcHl0aG9uLWNsaWVudCAtLWluc3RhbGwtY29tcGxldGlvbmAKCiMjIFVzYWdlCgojIyMgQ3JlYXRlIGEgbmV3IGNsaWVudAoKYG9wZW5hcGktcHl0aG9uLWNsaWVudCBnZW5lcmF0ZSAtLXVybCBodHRwczovL215LmFwaS5jb20vb3BlbmFwaS5qc29uYAoKVGhpcyB3aWxsIGdlbmVyYXRlIGEgbmV3IGNsaWVudCBsaWJyYXJ5IG5hbWVkIGJhc2VkIG9uIHRoZSB0aXRsZSBpbiB5b3VyIE9wZW5BUEkgc3BlYy4gRm9yIGV4YW1wbGUsIGlmIHRoZSB0aXRsZQpvZiB5b3VyIEFQSSBpcyAiTXkgQVBJIiwgdGhlIGV4cGVjdGVkIG91dHB1dCB3aWxsIGJlICJteS1hcGktY2xpZW50Ii4gWW91IGNhbiBjaGFuZ2UgdGhhdCBkaXJlY3RvcnkgbmFtZSB3aXRoIHRoZSBjb25maWcgZmlsZSAoZG9jdW1lbnRlZCBiZWxvdykgb3Igd2l0aCBgLS1vdXRwdXQtcGF0aGAuCgpJZiB0aGUgZGlyZWN0b3J5IHRvIGdlbmVyYXRlIGFscmVhZHkgZXhpc3RzLCB5b3UnbGwgZ2V0IGFuIGVycm9yIHVubGVzcyB5b3UgdXNlIGAtLW92ZXJ3cml0ZWAuCgpZb3UgY2FuIHVzZSBhbiBPcGVuQVBJIGZpbGUgaW5zdGVhZCBvZiBhIFVSTCBsaWtlIGBvcGVuYXBpLXB5dGhvbi1jbGllbnQgZ2VuZXJhdGUgLS1wYXRoIGxvY2F0aW9uL29uL2Rpc2svb3BlbmFwaS5qc29uYC4KCiMjIyBVc2luZyBjdXN0b20gdGVtcGxhdGVzCgpUaGlzIGZlYXR1cmUgbGV2ZXJhZ2VzIEppbmphMidzIFtDaG9pY2VMb2FkZXJdKGh0dHBzOi8vamluamEucGFsbGV0c3Byb2plY3RzLmNvbS9lbi8yLjExLngvYXBpLyNqaW5qYTIuQ2hvaWNlTG9hZGVyKSBhbmQgW0ZpbGVTeXN0ZW1Mb2FkZXJdKGh0dHBzOi8vamluamEucGFsbGV0c3Byb2plY3RzLmNvbS9lbi8yLjExLngvYXBpLyNqaW5qYTIuRmlsZVN5c3RlbUxvYWRlcikuIFRoaXMgbWVhbnMgeW91IGRvIF9ub3RfIG5lZWQgdG8gY3VzdG9taXplIGV2ZXJ5IHRlbXBsYXRlLiBTaW1wbHkgY29weSB0aGUgdGVtcGxhdGUocykgeW91IHdhbnQgdG8gY3VzdG9taXplIGZyb20gW3RoZSBkZWZhdWx0IHRlbXBsYXRlIGRpcmVjdG9yeV0ob3BlbmFwaV9weXRob25fY2xpZW50L3RlbXBsYXRlcykgdG8geW91ciBvd24gY3VzdG9tIHRlbXBsYXRlIGRpcmVjdG9yeSAoZmlsZSBuYW1lcyBfbXVzdF8gbWF0Y2ggZXhhY3RseSkgYW5kIHBhc3MgdGhlIHRlbXBsYXRlIGRpcmVjdG9yeSB0aHJvdWdoIHRoZSBgY3VzdG9tLXRlbXBsYXRlLXBhdGhgIGZsYWcgdG8gdGhlIGBnZW5lcmF0ZWAgY29tbWFuZDoKCmBgYApvcGVuYXBpLXB5dGhvbi1jbGllbnQgZ2VuZXJhdGUgXAogIC0tdXJsIGh0dHBzOi8vbXkuYXBpLmNvbS9vcGVuYXBpLmpzb24gXAogIC0tY3VzdG9tLXRlbXBsYXRlLXBhdGg9cmVsYXRpdmUvcGF0aC90by9teXRlbXBsYXRlcwpgYGAKCl9CZSBmb3Jld2FybmVkLCB0aGlzIGlzIGEgYmV0YS1sZXZlbCBmZWF0dXJlIGluIHRoZSBzZW5zZSB0aGF0IHRoZSBBUEkgZXhwb3NlZCBpbiB0aGUgdGVtcGxhdGVzIGlzIHVuZG9jdW1lbnRlZCBhbmQgdW5zdGFibGUuXwoKIyMgV2hhdCBZb3UgR2V0CgoxLiBBIGBweXByb2plY3QudG9tbGAgZmlsZSwgb3B0aW9uYWxseSB3aXRoIFtQb2V0cnldIG1ldGFkYXRhIChkZWZhdWx0KSwgW1BETV0gKHdpdGggYC0tbWV0YT1wZG1gKSwgb3Igb25seSBbUnVmZl0gY29uZmlnLgoyLiBBIGBSRUFETUUubWRgIHlvdSdsbCBtb3N0IGRlZmluaXRlbHkgbmVlZCB0byB1cGRhdGUgd2l0aCB5b3VyIHByb2plY3QncyBkZXRhaWxzCjMuIEEgUHl0aG9uIG1vZHVsZSBuYW1lZCBqdXN0IGxpa2UgdGhlIGF1dG8tZ2VuZXJhdGVkIHByb2plY3QgbmFtZSAoZS5nLiAibXlfYXBpX2NsaWVudCIpIHdoaWNoIGNvbnRhaW5zOgogICAxLiBBIGBjbGllbnRgIG1vZHVsZSB3aGljaCB3aWxsIGhhdmUgYm90aCBhIGBDbGllbnRgIGNsYXNzIGFuZCBhbiBgQXV0aGVudGljYXRlZENsaWVudGAgY2xhc3MuIFlvdSdsbCBuZWVkIHRoZXNlCiAgICAgIGZvciBjYWxsaW5nIHRoZSBmdW5jdGlvbnMgaW4gdGhlIGBhcGlgIG1vZHVsZS4KICAgMi4gQW4gYGFwaWAgbW9kdWxlIHdoaWNoIHdpbGwgY29udGFpbiBvbmUgbW9kdWxlIGZvciBlYWNoIHRhZyBpbiB5b3VyIE9wZW5BUEkgc3BlYywgYXMgd2VsbCBhcyBhIGBkZWZhdWx0YCBtb2R1bGUKICAgICAgZm9yIGVuZHBvaW50cyB3aXRob3V0IGEgdGFnLiBFYWNoIG9mIHRoZXNlIG1vZHVsZXMgaW4gdHVybiBjb250YWlucyBvbmUgZnVuY3Rpb24gZm9yIGNhbGxpbmcgZWFjaCBlbmRwb2ludC4KICAgMy4gQSBgbW9kZWxzYCBtb2R1bGUgd2hpY2ggaGFzIGFsbCB0aGUgY2xhc3NlcyBkZWZpbmVkIGJ5IHRoZSB2YXJpb3VzIHNjaGVtYXMgaW4geW91ciBPcGVuQVBJIHNwZWMKNC4gQSBgc2V0dXAucHlgIGZpbGUgX2lmXyB5b3UgdXNlIGAtLW1ldGE9c2V0dXBgIChkZWZhdWx0IGlzIGAtLW1ldGE9cG9ldHJ5YCkKCkZvciBhIGZ1bGwgZXhhbXBsZSB5b3UgY2FuIGxvb2sgYXQgdGhlIGBlbmRfdG9fZW5kX3Rlc3RzYCBkaXJlY3Rvcnkgd2hpY2ggaGFzIGBiYXNlbGluZV9vcGVuYXBpXzMuMC5qc29uYCBhbmQgYGJhc2VsaW5lX29wZW5hcGlfMy4xLnlhbWxgIGZpbGVzLgpUaGUgImdvbGRlbi1yZWNvcmQiIGluIHRoYXQgc2FtZSBkaXJlY3RvcnkgaXMgdGhlIGdlbmVyYXRlZCBjbGllbnQgZnJvbSBlaXRoZXIgb2YgdGhvc2UgT3BlbkFQSSBkb2N1bWVudHMuCgojIyBDb25maWd1cmF0aW9uCgpZb3UgY2FuIHBhc3MgYSBZQU1MIChvciBKU09OKSBmaWxlIHRvIG9wZW5hcGktcHl0aG9uLWNsaWVudCB3aXRoIHRoZSBgLS1jb25maWdgIG9wdGlvbiBpbiBvcmRlciB0byBjaGFuZ2Ugc29tZSBiZWhhdmlvci4KVGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGFyZSBzdXBwb3J0ZWQ6CgojIyMgY2xhc3Nfb3ZlcnJpZGVzCgpVc2VkIHRvIGNoYW5nZSB0aGUgbmFtZSBvZiBnZW5lcmF0ZWQgbW9kZWwgY2xhc3Nlcy4gVGhpcyBwYXJhbSBzaG91bGQgYmUgYSBtYXBwaW5nIG9mIGV4aXN0aW5nIGNsYXNzIG5hbWUKKHVzdWFsbHkgYSBrZXkgaW4gdGhlICJzY2hlbWFzIiBzZWN0aW9uIG9mIHlvdXIgT3BlbkFQSSBkb2N1bWVudCkgdG8gY2xhc3NfbmFtZSBhbmQgbW9kdWxlX25hbWUuIEFzIGFuIGV4YW1wbGUsIGlmIHRoZQpuYW1lIG9mIGEgbW9kZWwgaW4gT3BlbkFQSSAoYW5kIHRoZXJlZm9yZSB0aGUgZ2VuZXJhdGVkIGNsYXNzIG5hbWUpIHdhcyBzb21ldGhpbmcgbGlrZSAiX1ByaXZhdGVJbnRlcm5hbExvbmdOYW1lIgphbmQgeW91IHdhbnQgdGhlIGdlbmVyYXRlZCBjbGllbnQncyBtb2RlbCB0byBiZSBjYWxsZWQgIlNob3J0TmFtZSIgaW4gYSBtb2R1bGUgY2FsbGVkICJzaG9ydF9uYW1lIiB5b3UgY291bGQgZG8gdGhpczoKCkV4YW1wbGU6CgpgYGB5YW1sCmNsYXNzX292ZXJyaWRlczoKICBfUHJpdmF0ZUludGVybmFsTG9uZ05hbWU6CiAgICBjbGFzc19uYW1lOiBTaG9ydE5hbWUKICAgIG1vZHVsZV9uYW1lOiBzaG9ydF9uYW1lCmBgYAoKVGhlIGVhc2llc3Qgd2F5IHRvIGZpbmQgd2hhdCBuZWVkcyB0byBiZSBvdmVycmlkZGVuIGlzIHByb2JhYmx5IHRvIGdlbmVyYXRlIHlvdXIgY2xpZW50IGFuZCBnbyBsb29rIGF0IGV2ZXJ5dGhpbmcgaW4gdGhlIGBtb2RlbHNgIGZvbGRlci4KCiMjIyBwcm9qZWN0X25hbWVfb3ZlcnJpZGUgYW5kIHBhY2thZ2VfbmFtZV9vdmVycmlkZQoKVXNlZCB0byBjaGFuZ2UgdGhlIG5hbWUgb2YgZ2VuZXJhdGVkIGNsaWVudCBsaWJyYXJ5IHByb2plY3QvcGFja2FnZS4gSWYgdGhlIHByb2plY3QgbmFtZSBpcyBjaGFuZ2VkIGJ1dCBhbiBvdmVycmlkZSBmb3IgdGhlIHBhY2thZ2UgbmFtZQppc24ndCBwcm92aWRlZCwgdGhlIHBhY2thZ2UgbmFtZSB3aWxsIGJlIGNvbnZlcnRlZCBmcm9tIHRoZSBwcm9qZWN0IG5hbWUgdXNpbmcgdGhlIHN0YW5kYXJkIGNvbnZlbnRpb24gKHJlcGxhY2luZyBgLWAncyB3aXRoIGBfYCdzKS4KCkV4YW1wbGU6CgpgYGB5YW1sCnByb2plY3RfbmFtZV9vdmVycmlkZTogbXktc3BlY2lhbC1wcm9qZWN0LW5hbWUKcGFja2FnZV9uYW1lX292ZXJyaWRlOiBteV9leHRyYV9zcGVjaWFsX3BhY2thZ2VfbmFtZQpgYGAKCiMjIyBmaWVsZF9wcmVmaXgKCldoZW4gZ2VuZXJhdGluZyBwcm9wZXJ0aWVzLCB0aGUgYG5hbWVgIGF0dHJpYnV0ZSBvZiB0aGUgT3BlbkFQSSBzY2hlbWEgd2lsbCBiZSB1c2VkLiBXaGVuIHRoZSBgbmFtZWAgaXMgbm90IGEgdmFsaWQgUHl0aG9uIGlkZW50aWZpZXIgKGUuZy4gYmVnaW5zIHdpdGggYSBudW1iZXIpIHRoaXMgc3RyaW5nIHdpbGwgYmUgcHJlcGVuZGVkLiBEZWZhdWx0cyB0byAiZmllbGRcXyIuIEl0IHdpbGwgYWxzbyBiZSB1c2VkIHRvIHByZWZpeCBmaWVsZHMgaW4gc2NoZW1hIHN0YXJ0aW5nIHdpdGggIl8iIGluIG9yZGVyIHRvIGF2b2lkIGFtYmlndW91cyBzZW1hbnRpY3MuCgpFeGFtcGxlOgoKYGBgeWFtbApmaWVsZF9wcmVmaXg6IGF0dHJfCmBgYAoKIyMjIHBhY2thZ2VfdmVyc2lvbl9vdmVycmlkZQoKU3BlY2lmeSB0aGUgcGFja2FnZSB2ZXJzaW9uIG9mIHRoZSBnZW5lcmF0ZWQgY2xpZW50LiBJZiB1bnNldCwgdGhlIGNsaWVudCB3aWxsIHVzZSB0aGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBzcGVjLgoKRXhhbXBsZToKCmBgYHlhbWwKcGFja2FnZV92ZXJzaW9uX292ZXJyaWRlOiAxLjIuMwpgYGAKCiMjIyBwb3N0X2hvb2tzCgpJbiB0aGUgY29uZmlnIGZpbGUsIHRoZXJlJ3MgYW4gZWFzeSB3YXkgdG8gdGVsbCBgb3BlbmFwaS1weXRob24tY2xpZW50YCB0byBydW4gYWRkaXRpb25hbCBjb21tYW5kcyBhZnRlciBnZW5lcmF0aW9uLiBIZXJlJ3MgYW4gZXhhbXBsZSBzaG93aW5nIHRoZSBkZWZhdWx0IGNvbW1hbmRzICh1c2luZyBbUnVmZl0pIHRoYXQgd2lsbCBydW4gaWYgeW91IGRvbid0IG92ZXJyaWRlIHRoZW0gaW4gY29uZmlnOgoKYGBgeWFtbApwb3N0X2hvb2tzOgogICAtICJydWZmIGNoZWNrIC4gLS1maXgiCiAgIC0gInJ1ZmYgZm9ybWF0IC4iCmBgYAoKIyMjIHVzZV9wYXRoX3ByZWZpeGVzX2Zvcl90aXRsZV9tb2RlbF9uYW1lcwoKQnkgZGVmYXVsdCwgYG9wZW5hcGktcHl0aG9uLWNsaWVudGAgZ2VuZXJhdGVzIGNsYXNzIG5hbWVzIHdoaWNoIGluY2x1ZGUgdGhlIGZ1bGwgcGF0aCB0byB0aGUgc2NoZW1hLCBpbmNsdWRpbmcgYW55IHBhcmVudC10eXBlcy4gVGhpcyBjYW4gcmVzdWx0IGluIHZlcnkgbG9uZyBjbGFzcyBuYW1lcyBsaWtlIGBNeVJvdXRlU29tZUNsYXNzQW5vdGhlckNsYXNzUmVzcG9uc2Vg4oCUd2hpY2ggaXMgdmVyeSB1bmlxdWUgYW5kIHVubGlrZWx5IHRvIGNhdXNlIGNvbmZsaWN0cyB3aXRoIGZ1dHVyZSBBUEkgYWRkaXRpb25zLCBidXQgYWxzbyBzdXBlciB2ZXJib3NlLgoKSWYgeW91IGFyZSBjYXJlZnVsbHkgY3VyYXRpbmcgeW91ciBgdGl0bGVgIHByb3BlcnRpZXMgYWxyZWFkeSB0byBlbnN1cmUgbm8gZHVwbGljYXRlIGNsYXNzIG5hbWVzLCB5b3UgY2FuIHR1cm4gb2ZmIHRoaXMgcHJlZml4aW5nIGZlYXR1cmUgYnkgc2V0dGluZyBgdXNlX3BhdGhfcHJlZml4ZXNfZm9yX3RpdGxlX21vZGVsX25hbWVzYCB0byBgZmFsc2VgIGluIHlvdXIgY29uZmlnIGZpbGUuIFRoaXMgd2lsbCB1c2UgdGhlIGB0aXRsZWAgcHJvcGVydHkgb2YgYW55IG9iamVjdCB0aGF0IGhhcyBpdCBzZXQgX3dpdGhvdXRfIHByZWZpeGluZy4KCklmIHRoaXMgb3B0aW9uIHJlc3VsdHMgaW4gY29uZmxpY3RzLCB5b3Ugd2lsbCBuZWVkIHRvIG1hbnVhbGx5IG92ZXJyaWRlIGNsYXNzIG5hbWVzIGluc3RlYWQgdmlhIHRoZSBgY2xhc3Nfb3ZlcnJpZGVzYCBvcHRpb24uCgojIyMgaHR0cF90aW1lb3V0CgpCeSBkZWZhdWx0LCB0aGUgdGltZW91dCBmb3IgcmV0cmlldmluZyB0aGUgc2NoZW1hIGZpbGUgdmlhIEhUVFAgaXMgNSBzZWNvbmRzLiBJbiBjYXNlIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gcmV0cmlldmluZyB0aGUgc2NoZW1hLCB5b3UgbWlnaHQgdHJ5IGFuZCBpbmNyZWFzZSB0aGlzIHNldHRpbmcgdG8gYSBoaWdoZXIgdmFsdWUuCgojIyMgY29udGVudF90eXBlX292ZXJyaWRlcwoKTm9ybWFsbHksIGBvcGVuYXBpLXB5dGhvbi1jbGllbnRgIHdpbGwgc2tpcCBhbnkgYm9kaWVzIG9yIHJlc3BvbnNlcyB0aGF0IGl0IGRvZXNuJ3QgcmVjb2duaXplIHRoZSBjb250ZW50IHR5cGUgZm9yLgpUaGlzIGNvbmZpZyB0ZWxscyB0aGUgZ2VuZXJhdG9yIHRvIHRyZWF0IGEgZ2l2ZW4gY29udGVudCB0eXBlIGxpa2UgYW5vdGhlci4KCmBgYHlhbWwKY29udGVudF90eXBlX292ZXJyaWRlczoKICBhcHBsaWNhdGlvbi96aXA6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQpgYGAKCltjaGFuZ2Vsb2cubWRdOiBDSEFOR0VMT0cubWQKW3BvZXRyeV06IGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvCltQRE1dOiBodHRwczovL3BkbS1wcm9qZWN0Lm9yZy9sYXRlc3QvCltSdWZmXTogaHR0cHM6Ly9kb2NzLmFzdHJhbC5zaC9ydWZmLwo= readmeEtag: '"efd3dad6ecedf725800f45de3088593e7ab701f5"' readmeLastModified: Thu, 15 Aug 2024 14:53:03 GMT repositoryId: 240776275 description: Generate modern Python clients from OpenAPI created: '2020-02-15T19:33:46Z' updated: '2024-09-05T21:39:55Z' language: Python archived: false stars: 1251 watchers: 14 forks: 193 owner: openapi-generators logo: https://avatars.githubusercontent.com/u/84925606?v=4 license: MIT repoEtag: '"ff0389d571b3420dc6f26855bd0ef1fe6e37c67b746fda0a0f39a1c0d9a54b63"' repoLastModified: Thu, 05 Sep 2024 21:39:55 GMT foundInMaster: true id: 784ec4adac4e47e4211ea74ef36dd5a5 v3_1: true - source: - https://openapi.tools/ - openapi3 tags name: Elements category: Documentation link: https://stoplight.io/open-source/elements repository: https://github.com/stoplightio/elements language: - Javascript - Custom Element source_description: >- Build beautiful, interactive API Docs with embeddable React or Web Components, powered by OpenAPI and Markdown v2: true v3: true v3_1: true repositoryMetadata: base64Readme: >- WyFbRWxlbWVudHMgLSBPcGVuQVBJIFBvd2VyZWQgQVBJIERvY3VtZW50YXRpb25dKGRvY3MvaW1hZ2VzL3JlYWRtZS1oZWFkZXIuc3ZnKV1bZWxlbWVudHNfbGFuZGluZ19wYWdlXQoKWyFbU3Rvcnlib29rXShodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvc3Rvcnlib29ranMvYnJhbmRAbWFzdGVyL2JhZGdlL2JhZGdlLXN0b3J5Ym9vay5zdmcpXShodHRwczovL3N0b3BsaWdodC1lbGVtZW50cy5uZXRsaWZ5LmFwcCkKWyFbQ2lyY2xlQ0ldW2NpcmNsZV9jaV9pbWFnZV1dW2NpcmNsZV9jaV0KWyFbTlBNIERvd25sb2Fkc11bY2lyY2xlX2NpX2ltYWdlXV1bbnBtXQpbIVtTdG9wbGlnaHQgRm9yZXN0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2Vjb2xvZ2kvdHJlZXMvc3RvcGxpZ2h0aW5jKV1bc3RvcGxpZ2h0X2ZvcmVzdF0KCkJlYXV0aWZ1bCBBUEkgZG9jdW1lbnRhdGlvbiBwb3dlcmVkIGJ5IE9wZW5BUEkgYW5kIE1hcmtkb3duLiBVc2UgdGhlc2UgVUkgY29tcG9uZW50cyB0byBjcmVhdGUgQVBJIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uLCBvciBtb3JlIGNvbXBsZXRlIGRvY3VtZW50YXRpb24gd2l0aCBNYXJrZG93biBhcnRpY2xlcyBjb3ZlcmluZyB0dXRvcmlhbHMsIGhvdy10byBndWlkZXMsIGV0Yy4KCkF2YWlsYWJsZSBhcyBSZWFjdCBDb21wb25lbnRzLCBvciBXZWIgQ29tcG9uZW50cywgeW91IGNhbiB1c2UgRWxlbWVudHMgYWxsIHRvZ2V0aGVyIHRvIGJ1aWxkIGJlYXV0aWZ1bCB0aHJlZS1jb2x1bW4gIlN0cmlwZS1lc3F1ZSIgZG9jdW1lbnRhdGlvbiwgb3Igc3RhY2tlZCBkb2N1bWVudGF0aW9uIHRoYXRzIGVhc2llciBmb3IgaW50ZWdyYXRpbmcgaW50byBleGlzdGluZyBDb250ZW50IE1hbmFnZW1lbnQgU3lzdGVtcyB3aXRoIHRoZWlyIG93biBuYXZpZ2F0aW9uLgoKIyBPdmVydmlldwoKLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFvwn5OWIENvbW11bml0eV0oIy1jb21tdW5pdHkpCiAgLSBb8J+Rge+4j/Cfl6gg77iP77iPRXhhbXBsZXNdKCPvuI8t77iP77iPZXhhbXBsZXMpCiAgLSBb8J+PgSBVc2FnZV0oIy11c2FnZSkKICAgIC0gW1JlYWN0IENvbXBvbmVudF0oI3JlYWN0LWNvbXBvbmVudCkKICAgIC0gW1dlYiBDb21wb25lbnRdKCN3ZWItY29tcG9uZW50KQogIC0gW/CfmqcgUm9hZG1hcF0oIy1yb2FkbWFwKQogIC0gW+Kame+4jyBJbnRlZ3JhdGlvbnNdKCPvuI8taW50ZWdyYXRpb25zKQogIC0gW/Cfj4EgSGVscCBPdGhlcnMgVXRpbGl6ZSBFbGVtZW50c10oIy1oZWxwLW90aGVycy11dGlsaXplLWVsZW1lbnRzKQogIC0gW/CfkY8gQ29udHJpYnV0aW5nXSgjLWNvbnRyaWJ1dGluZykKICAtIFvwn46JIFRoYW5rc10oIy10aGFua3MpCiAgLSBb8J+MsiBTcG9uc29yIEVsZW1lbnRzIGJ5IFBsYW50aW5nIGEgVHJlZV0oIy1zcG9uc29yLWVsZW1lbnRzLWJ5LXBsYW50aW5nLWEtdHJlZSkKCiMjIPCfk5YgQ29tbXVuaXR5CgpMZXQncyBjaGF0IGFib3V0IGZlYXR1cmVzLCBpZGVhcywgd2hhdCB5b3UncmUgZG9pbmcgd2l0aCBFbGVtZW50cywgb24gW0dpdEh1YiBEaXNjdXNzaW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL2VsZW1lbnRzL2Rpc2N1c3Npb25zKS4KCiMjIPCfkYHvuI/wn5eoIO+4j++4j0V4YW1wbGVzCgpTdG9wbGlnaHQgRWxlbWVudHMgY29tZXMgd2l0aCBhIGZldyBleGFtcGxlIGludGVncmF0aW9uIHByb2plY3RzLCBzaG93aW5nIHlvdSBob3cgdG8gdXRpbGl6ZSBFbGVtZW50cyB3aXRoIGRpZmZlcmVudCBmcmFtZXdvcmtzLgotICoqW3JlYWN0LWNyYV0oLi9leGFtcGxlcy9yZWFjdC1jcmEpKiogLSBBbiBleGFtcGxlIGFwcCBidWlsdCB1c2luZyBDcmVhdGUgUmVhY3QgQXBwIHV0aWxpemluZyBTdG9wbGlnaHQgRWxlbWVudHMuCi0gKipbYW5ndWxhcl0oLi9leGFtcGxlcy9hbmd1bGFyKSoqIC0gQW4gYW5ndWxhciBhcHAgdXRpbGl6aW5nIHRoZSBXZWIgQ29tcG9uZW50cyBkaXN0cmlidXRpb24gb2YgRWxlbWVudHMuCi0gKipbYm9vdHN0cmFwXSguL2V4YW1wbGVzL2Jvb3RzdHJhcCkqKiAtIEEgc2luZ2xlIEhUTUwgcGFnZSB1dGlsaXppbmcgdGhlIFdlYiBDb21wb25lbnRzIGRpc3RyaWJ1dGlvbiB2aWEgYSBnbG9iYWwgc2NyaXB0IHRhZy4KClRvIHJ1biB0aGVzZSBleGFtcGxlcyB5b3Vyc2VsZjoKMS4gQ2xvbmUgdGhpcyByZXBvLgoyLiBHbyB0byBgZXhhbXBsZXNgIGZvbGRlciBhbmQgb3BlbiBhbiBleGFtcGxlLCBlLmcuOiBgZXhhbXBsZXMvYW5ndWxhcmAuCjMuIFJ1biBgeWFybmAgdG8gaW5zdGFsbCBhbGwgZGVwZW5kZW5jaWVzLgo0LiBSdW4gYHlhcm4gc3RhcnRgIHRvIHJ1biB0aGUgZXhhbXBsZS4KCj4gKipOb3RlOioqIGZvciAqKmJvb3RzdHJhcCoqIGV4YW1wbGUganVzdCBnbyBzdHJhaWdodCB0byBpdHMgZGlyZWN0b3J5IGFuZCBvcGVuIHRoZSBIVE1MIGZpbGUuCgojIyDwn4+BIFVzYWdlCgpUaGUgZXhhbXBsZXMgd2lsbCBob3BlZnVsbHkgaGVscCBzaG93IEVsZW1lbnRzIHdvcmtpbmcgaW4gY2xvc2UgdG8gcmVhbCB3b3JsZCBzaXR1YXRpb25zLCBidXQgdGhlIG1vc3QgYmFyZSBib25lcyBleGFtcGxlcyBvZiBFbGVtZW50cyBjYW4gYmUgZm91bmQgYmVsb3cuCgojIyMgUmVhY3QgQ29tcG9uZW50CgpgYGBiYXNoCiQgbnBtIGluc3RhbGwgQHN0b3BsaWdodC9lbGVtZW50cwpgYGAKCmBgYGpzCmltcG9ydCB7IEFQSSB9IGZyb20gIkBzdG9wbGlnaHQvZWxlbWVudHMiOwoKPEFQSQogIGFwaURlc2NyaXB0aW9uVXJsPSJodHRwczovL2FwaS5hcGlzLmd1cnUvdjIvc3BlY3MvZ2l0aHViLmNvbS8xLjEuNC9vcGVuYXBpLnlhbWwiCiAgcm91dGVyPSJoaXN0b3J5IgovPgpgYGAKCkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHVzaW5nIEVsZW1lbnRzIGFzIGEgUmVhY3QgY29tcG9uZW50LCBoZWFkIG92ZXIgdG8gb3VyIFtSZWFjdCBkb2N1bWVudGF0aW9uXShkb2NzL2dldHRpbmctc3RhcnRlZC9lbGVtZW50cy9yZWFjdC5tZCkuCiMjIyBXZWIgQ29tcG9uZW50CgpgYGBodG1sCjwhZG9jdHlwZSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iPgogICAgPHRpdGxlPkVsZW1lbnRzIGluIEhUTUw8L3RpdGxlPgogICAgPCEtLSBFbWJlZCBlbGVtZW50cyBFbGVtZW50cyB2aWEgV2ViIENvbXBvbmVudCAtLT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3VucGtnLmNvbS9Ac3RvcGxpZ2h0L2VsZW1lbnRzL3dlYi1jb21wb25lbnRzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vdW5wa2cuY29tL0BzdG9wbGlnaHQvZWxlbWVudHMvc3R5bGVzLm1pbi5jc3MiPgogIDwvaGVhZD4KICA8Ym9keT4KCiAgICA8ZWxlbWVudHMtYXBpCiAgICAgIGFwaURlc2NyaXB0aW9uVXJsPSJodHRwczovL2FwaS5hcGlzLmd1cnUvdjIvc3BlY3MvZ2l0aHViLmNvbS8xLjEuNC9vcGVuYXBpLnlhbWwiCiAgICAgIHJvdXRlcj0iaGFzaCIKICAgICAgbGF5b3V0PSJzaWRlYmFyIgogICAgLz4KCiAgPC9ib2R5Pgo8L2h0bWw+CmBgYAoKTG9hZCB0aGlzIHBhZ2UgdXAgaW4geW91ciBicm93c2VyIGFuZCB5b3Ugc2hvdWxkIHNlZSB0aGUgW0dpdEh1YiBSRVNUIEFQSV0oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vcmVzdCkgZG9jdW1lbnRlZCBpbiBTdG9wbGlnaHQgRWxlbWVudHMuCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyBFbGVtZW50cyBhcyBhIFdlYiBDb21wb25lbnQsIGhlYWQgb3ZlciB0byBvdXIgW1dlYiBDb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvZWxlbWVudHMvaHRtbC5tZCkuCgojIyDwn5qnIFJvYWRtYXAKCi0gW3hdIEFQSSBDb25zb2xlIChhLmsuYSAiVHJ5IGl0ISIpCi0gW3hdIEF1dG9tYXRpYyBDb2RlIFNhbXBsZXMKLSBbeF0gQXV0b21hdGljIEV4YW1wbGVzCi0gW3hdIFJlYWN0ICYgV2ViIENvbXBvbmVudCBTdXBwb3J0Ci0gW3hdIE9wZW5BUEkgU3VwcG9ydAogIC0gW3hdIE9wZW5BUEkgdjMuMQogIC0gW3hdIE9wZW5BUEkgdjMuMAogIC0gW3hdIE9wZW5BUEkgdjIuMAotIFt4XSBDYWxsYmFja3MKLSBbeF0gV2ViaG9va3MKLSBbeF0gTXVsdGlwbGUgQVBJcyAoYS5rLmEgIkRldiBQb3J0YWwiKQoKU3VibWl0IHlvdXIgaWRlYXMgZm9yIG5ldyBmdW5jdGlvbmFsaXR5IG9uIHRoZSBbU3RvcGxpZ2h0IFJvYWRtYXBdKGh0dHBzOi8vcm9hZG1hcC5zdG9wbGlnaHQuaW8vP3V0bV9zb3VyY2U9Z2l0aHViJnV0bV9tZWRpdW09ZWxlbWVudHMmdXRtX2NhbXBhaWduPXJlYWRtZSkuCgojIyDimpnvuI8gSW50ZWdyYXRpb25zCgotIFtTdG9wbGlnaHQgU3R1ZGlvXShodHRwczovL3N0b3BsaWdodC5pby9zdHVkaW8vP3V0bV9zb3VyY2U9Z2l0aHViLmNvbSZ1dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9jYW1wYWlnbj1naXRodWJfcmVwb19lbGVtZW50cykgLSBGcmVlIHZpc3VhbCBPcGVuQVBJIGRlc2lnbmVyIHRoYXQgdXNlcyBFbGVtZW50cyB0byBwcmV2aWV3IHlvdXIgQVBJIGRlc2NyaXB0aW9ucyBvbiB0aGUgZmx5LgotIFtTdG9wbGlnaHQgUGxhdGZvcm1dKGh0dHBzOi8vc3RvcGxpZ2h0LmlvLz91dG1fc291cmNlPWdpdGh1Yi5jb20mdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249Z2l0aHViX3JlcG9fZWxlbWVudHMpIC0gQ29sbGFib3JhdGl2ZSBBUEkgRGVzaWduIFBsYXRmb3JtIGZvciBkZXNpZ25pbmcsIGRldmVsb3BpbmcgYW5kIGRvY3VtZW50aW5nIEFQSXMgd2l0aCBob3N0ZWQgZG9jdW1lbnRhdGlvbiBwb3dlcmVkIGJ5IEVsZW1lbnRzLgotIFtMYXJhdmVsUEhQIEVsZW1lbnRzXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvanVzdHN0ZXZla2luZy9sYXJhdmVsLXN0b3BsaWdodC1lbGVtZW50cykgLSBBIHNpbXBsZSBBUEkgZG9jdW1lbnRhdGlvbiBwYWNrYWdlIGZvciBMYXJhdmVsIHVzaW5nIE9wZW5BUEkgYW5kIFN0b3BsaWdodCBFbGVtZW50cy4KCiMjIPCfj4EgSGVscCBPdGhlcnMgVXRpbGl6ZSBFbGVtZW50cwoKSWYgeW91J3JlIHVzaW5nIEVsZW1lbnRzIGZvciBhbiBpbnRlcmVzdGluZyB1c2UgY2FzZSwgW2NvbnRhY3QgdXNdKG1haWx0bzpncm93dGhAc3RvcGxpZ2h0LmlvKSBmb3IgYSBjYXNlIHN0dWR5LiBXZSdsbCBhZGQgaXQgdG8gYSBsaXN0IGhlcmUuIFNwcmVhZCB0aGUgZ29vZG5lc3Mg8J+OiQoKIyMg8J+RjyBDb250cmlidXRpbmcKCklmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBjb250cmlidXRpbmcgdG8gRWxlbWVudHMgaXRzZWxmLCBjaGVjayBvdXQgb3VyIFtjb250cmlidXRpbmcgZG9jcyDih5ddW2NvbnRyaWJ1dGluZ10gYW5kIFtjb2RlIG9mIGNvbmR1Y3Qg4oeXXVtjb2RlX29mX2NvbmR1Y3RdIHRvIGdldCBzdGFydGVkLgoKIyMg8J+OiSBUaGFua3MKCkVsZW1lbnRzIGlzIGJ1aWx0IG9uIHRvcCBvZiBsb3RzIG9mIGV4Y2VsbGVudCBwYWNrYWdlcywgYW5kIGhlcmUgYXJlIGEgZmV3IHdlJ2QgbGlrZSB0byBzYXkgYSBzcGVjaWFsIHRoYW5rcyB0by4KCi0gW2h0dHBzbmlwcGV0XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9odHRwc25pcHBldCkgYnkgW0tvbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9Lb25nKS4KLSBbb3BlbmFwaS1zYW1wbGVyXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLXNhbXBsZXIpIGJ5IFtSZURvY2x5XShodHRwczovL3JlZG9jLmx5LykuCgpDaGVjayB0aGVzZSBwcm9qZWN0cyBvdXQhCgojIyDwn4yyIFNwb25zb3IgRWxlbWVudHMgYnkgUGxhbnRpbmcgYSBUcmVlCgpJZiB5b3Ugd291bGQgbGlrZSB0byB0aGFuayB1cyBmb3IgY3JlYXRpbmcgRWxlbWVudHMsIHdlIGFzayB0aGF0IHlvdSBbKipidXkgdGhlIHdvcmxkIGEgdHJlZSoqXVtzdG9wbGlnaHRfZm9yZXN0XS4KCltzdG9wbGlnaHRfZm9yZXN0XTogaHR0cHM6Ly9lY29sb2dpLmNvbS9zdG9wbGlnaHRpbmMKCltjb2RlX29mX2NvbmR1Y3RdOiBDT0RFX09GX0NPTkRVQ1QubWQKW2NvbnRyaWJ1dGluZ106IENPTlRSSUJVVElORy5tZApbZG93bmxvYWQtcmVsZWFzZV06IGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9lbGVtZW50cy9yZWxlYXNlcy9sYXRlc3QKW2VsZW1lbnRzX2xhbmRpbmdfcGFnZV06IGh0dHBzOi8vZWxlbWVudHMtZGVtby5zdG9wbGlnaHQuaW8/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT1lbGVtZW50cyZ1dG1fY2FtcGFpZ249cmVhZG1lCltjaXJjbGVfY2ldOiBodHRwczovL2NpcmNsZWNpLmNvbS9naC9zdG9wbGlnaHRpby9lbGVtZW50cwpbY2lyY2xlX2NpX2ltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jaXJjbGVjaS9idWlsZC9naXRodWIvc3RvcGxpZ2h0aW8vZWxlbWVudHMvbWFpbgpbbnBtXTogaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN0b3BsaWdodC9lbGVtZW50cwpbbnBtX2ltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvQHN0b3BsaWdodC9lbGVtZW50cz9jb2xvcj1ibHVlCltzdG9wbGlnaHRfZm9yZXN0XTogaHR0cHM6Ly9lY29sb2dpLmNvbS9zdG9wbGlnaHRpbmMK readmeEtag: '"3efe9d7f56d3a16ec93c29aea6e06b56789631a6"' readmeLastModified: Fri, 16 Aug 2024 12:21:04 GMT repositoryId: 184680614 description: >- Build beautiful, interactive API Docs with embeddable React or Web Components, powered by OpenAPI and Markdown. created: '2019-05-03T01:05:01Z' updated: '2024-09-04T08:27:13Z' language: TypeScript archived: false stars: 1699 watchers: 18 forks: 196 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 repoEtag: '"eb508a1ae7a1639495811d37481bd5483cc80050d3c4f448a135362c09ff77b7"' repoLastModified: Wed, 04 Sep 2024 08:27:13 GMT foundInMaster: true id: 2f94cc1fc980953b17a9979d4ff2e7ec - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/nfroidure/whook v3: true repositoryMetadata: base64Readme: >- Wy8vXTogIyAoICkKWy8vXTogIyAoVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGEgYG1ldGFwYWtgKQpbLy9dOiAjIChtb2R1bGUuIERvIG5vdCBjaGFuZ2UgaXQgIGV4Y2VwdCBiZXR3ZWVuIHRoZSkKWy8vXTogIyAoYGNvbnRlbnQ6c3RhcnQvZW5kYCBmbGFncywgeW91ciBjaGFuZ2VzIHdvdWxkKQpbLy9dOiAjIChiZSBvdmVycmlkZGVuLikKWy8vXTogIyAoICkKIyB3aG9vawo+IEJ1aWxkIHN0cm9uZyBhbmQgZWZmaWNpZW50IFJFU1Qgd2ViIHNlcnZpY2VzLgoKWyFbR2l0SHViIGxpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtYmx1ZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbmZyb2lkdXJlL3dob29rL2Jsb2IvbWFpbi9MSUNFTlNFKQoKClsvL106ICMgKDo6Y29udGVudHM6c3RhcnQpCgpXaHkgd3JpdGUgY29kZSB3aGVuIHlvdSBoYXZlIGFuIE9wZW5BUEkgMy4xIGRlZmluaXRpb24/CgohW1RoZSBXaG9vaydzIGxvZ29dKC4vd2hvb2suc3ZnKQoKIyMgU3VtbWFyeQoKV2hvb2sgZWF0cyB5b3VyIGRvY3VtZW50YXRpb24gYW5kIHByb3ZpZGVzIHlvdSB3aXRoIGEgcGVyZm9ybWFudCByb3V0ZXIgdGhhdAp0YWtlcyBjYXJlIG9mIHJ1bm5pbmcgdGhlIHJpZ2h0IGNvZGUgZm9yIHRoZSByaWdodCBvcGVyYXRpb24uCgpCeSB1c2luZyB0aGUgW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIHN0YW5kYXJkIGFuZCB0aGUgZGVwZW5kZW5jeQppbmplY3Rpb24gcGF0dGVybiwgV2hvb2sgcHJvdmlkZXMgYSBjb252ZW5pZW50LCBoaWdobHkgbW9kdWxhciBhbmQgZWFzaWx5CnRlc3RhYmxlIGJhY2sgZW5kIGZyYW1ld29yay4KCiMjIFF1aWNrc3RhcnQKClRvIHN0YXJ0IGEgbmV3IFdob29rIHByb2plY3Q6CgpgYGBzaAojIEluaXRpYWxpemUgdGhlIHByb2plY3QKbnBtIGluaXQgQHdob29rOwpjZCBteV9wcm9qZWN0X25hbWU7CgojIENoZWNrIGluc3RhbGwgd2l0aCBhIGRyeSBydW4gb2YgdGhlIHNlcnZlcgpEUllfUlVOPTEgbnBtIHJ1biBzdGFydAoKIyBSdW4gdGVzdHMKbnBtIHQKCiMgU3RhcnQgZGV2ZWxvcGluZwpucG0gcnVuIHdhdGNoCgojIEJ1aWxkIHRoZSBwcm9qZWN0Cm5wbSBydW4gYnVpbGQKCiMgQ3JlYXRlIGEgbmV3IGhhbmRsZXIvc2VydmljZS9wcm92aWRlcgpucHggd2hvb2sgY3JlYXRlCmBgYAoKIyMgV2h5IHVzZSBXaG9vaz8KCi0gcm9idXN0OiB0eXBlcywgZnVuY3Rpb25hbCBwcm9ncmFtbWluZwotIGhpZ2hseSBtb2R1bGFyLCBleHRlbmRhYmxlIGFuZCByZXVzYWJsZQotIGZ1bGx5IGludGVncmF0ZWQgYW5kIHByb2R1Y3Rpb24gcmVhZHkKLSBjYW4gYmUgZGVwbG95ZWQgYW55d2hlcmUgKHNlcnZlcmxlc3MsIGRvY2tlciwgbWljcm9zZXJ2aWNlcyk6IGVudGVyIHRoZQogIGFueWxpdGggZXJhCi0gZWFzeSB0byB0ZXN0OiBUREQsIEUyRSB0ZXN0cyBtYWRlIGVhc3kKLSBmZWF0dXJlIGNvbXBsZXRlIGZvciBtb3N0IEFQSSB1c2UgY2FzZXMKLSBzaW1wbGlmeSB5b3VyIGxpZmUgYnV0IGVtYnJhY2UgcHJvamVjdHMgY29tcGxleGl0eQoKIyMgVXNhZ2UKCkEgdHV0b3JpYWwgaXMgc3RpbGwgdG8gYmUgd3JpdHRlbiwgZXhwZWN0IGl0IHRvIGNvbWUgdmVyeSBzb29uLiBUaGUgYWJvdmUKW3F1aWNrc3RhcnQgY29tbWFuZF0oI3F1aWNrc3RhcnQpIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4KClRoYXQgc2FpZCB5b3UgY2FuIGNoZWNrIHRoZSBmb2xsb3dpbmcgIkhvdyB0byIgUFJzOgoKLSBbYWRkIEdyYXBoUUxdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZnJvaWR1cmUvd2hvb2svcHVsbC82MikKLSBbZGVwbG95IG9uIEFXUyBMYW1iZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZnJvaWR1cmUvd2hvb2svcHVsbC81NCkKLSBbZGVwbG95IHdpdGggR0NQIENsb3VkIEZ1bmN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL25mcm9pZHVyZS93aG9vay9wdWxsLzY2KQoKQWxzbywgdGhlIFtgcGFja2FnZXMvYCBmb2xkZXJdKC4vcGFja2FnZXMpIGNvbnRhaW5zIGEgbG90IG9mIGVhc3kgdG8gc2V0dXAKbW9kdWxlcyB3aXRoIHdlbGwgZGV0YWlsZWQgcmVhZG1lcyBhbmQgc2V0dXAgaW5zdHJ1Y3Rpb25zLgoKRmluYWxseSwgc2VhcmNoIGZvciBXaG9vaydzIHBhY2thZ2UgZWFzaWx5IHdpdGggdGhlCltOUE0ncyBXaG9vayB0YWddKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9zZWFyY2g/cT1rZXl3b3Jkczp3aG9vaykuIEFsc28gdGhlCltLbmlmZWN5Y2xlIHRhZ10oaHR0cHM6Ly93d3cubnBtanMuY29tL3NlYXJjaD9xPWtleXdvcmRzOmtuaWZlY3ljbGUpIGNhbiBiZQp1c2VmdWwgdG8gZmluZCBwcm9qZWN0cyB1c2luZyB0aGUgc2FtZSBkZXBlbmRlbmN5IGluamVjdGlvbiBmcmFtZXdvcmsuCgpJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb24gb3IgaXNzdWUgdXNpbmcgV2hvb2ssIHBvc3QgeW91ciBoZWxwIHJlcXVlc3QgdG8gc3RhY2sKb3ZlcmZsb3cgd2l0aCB0aGUKW1dob29rIHRhZ10oaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvYXNrP3RhZ3M9d2hvb2spLiBRdWVzdGlvbnMgd2l0aAp0aGlzIHRhZyB3aWxsIGJlIHJlZ3VsYXJseSBjaGVja2VkIGJ5IFdob29rJ3MgYXV0aG9ycy4KCkZpbmFsbHksIGlmIHlvdSBlbmNvdW50ZXIgYW55IGJ1ZyAodW5leHBlY3RlZCBlcnJvciwgZmVhdHVyZSByZXF1ZXN0cywgT3BlbkFQSQpzcGVjaWZpY2F0aW9uIHZpb2xhdGlvbiksIHBsZWFzZSBmaWxsIGFuIGlzc3VlIQoKIyMgUHJpbmNpcGxlcwoKW0NoZWNrIHRoaXMgZGVja10oaHR0cHM6Ly9zbGlkZXMuY29tL25mcm9pZHVyZS9pbnRyb2R1Y2luZy13aG9vaykgZm9yIGEgY29tcGxldGUKaW50cm9kdWN0aW9uIHRvIFdob29rJ3MgcHJpbmNpcGxlcyEKCiMjIyBHbG9iYWwgb3ZlcnZpZXcKClRoaXMgcHJvamVjdHMgYWltcyB0byBtYWtlIGNyZWF0aW5nIHdlbGwgZG9jdW1lbnRlZCBhbmQgaGlnaGx5IGN1c3RvbWl6YWJsZSBSRVNUCkFQSXMgYSBicmVlemUuIEl0IGlzIHRoZSBmaW5hbCBvdXRjb21lIG9mIG15IGV4cGVyaWVuY2UKW2J1aWxkaW5nIFJFU1QgQVBJcyB3aXRoIE5vZGVKU10oaHR0cHM6Ly9pbnNlcnRhZnRlci5jb20vZW4vYmxvZy9odHRwX3Jlc3RfYXBpc193aXRoX25vZGVqcy5odG1sKS4KCkJ5IHJlbHlpbmcgb24gdGhlIFtPcGVuQVBJIHNjaGVtYXNdKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIHRvIGRlY2xhcmUgYSBuZXcKZW5kcG9pbnQsIHRoaXMgcHJvamVjdCBmb3JjZXMgZG9jdW1lbnRhdGlvbiBiZWZvcmUgY29kZS4gSXQgYWxzbyBpcyBoaWdobHkKY3VzdG9taXphYmxlIHNpbmNlIGJhc2VkIG9uIHRoZSBkZXBlbmRlbmN5IGluamVjdGlvbiB3aXRoIGludmVyc2lvbiBvZiBjb250cm9sCnBhdHRlcm4gYWxsb3dpbmcgeW91IHRvIG92ZXJyaWRlIG9yIHdyYXAgaXRzIG1haW4gY29uc3RpdHVlbnRzLgoKIVtBcmNoaXRlY3R1cmUgT3ZlcnZpZXddKC4vb3ZlcnZpZXcuc3ZnKQoKVGhlIFdob29rIHJvdXRlIGhhbmRsaW5nIGZsb3cgaXMgdmVyeSBzaW1wbGUuCgpGaXJzdCwgd2UgaGF2ZSBhIEhUVFBTZXJ2ZXIgdGhhdCBoYW5kbGVzIHJlcXVlc3RzIGFuZCBzZXJ2ZXMgcmVzcG9uc2VzICh0aGUKYGh0dHBTZXJ2ZXJgIHNlcnZpY2UpLgoKVGhlbiwgdGhlIGBodHRwVHJhbnNhY3Rpb25gIHRyYW5zZm9ybSB0aGUgTm9kZUpTIHJlcXVlc3RzIGludG8gcmF3IHNlcmlhbGl6YWJsZQpvbmVzIChyYXcgb2JqZWN0cyB3aXRoIG5vIG1ldGhvZHMgbm9yIGludGVybmFsIHN0YXRlcywgdXNlZnVsIGZvciB0ZXN0aW5nKS4KClRoZW4gdGhlIHJvdXRlciAoYGh0dHBSb3V0ZXJgKSBkZWFsIHdpdGggdGhhdCByZXF1ZXN0IHRvIHRlc3Qgd2hpY2ggaGFuZGxlcgpuZWVkcyB0byBiZSBydW4gYnkgY29tcGFyaW5nIHRoZSBtZXRob2QvcGF0aCBjb3VwbGUgd2l0aCB0aGUgT3BlbkFQSSBvcGVyYXRpb25zCmRlY2xhcmF0aW9ucy4KCk9uY2UgZm91bmQsIGl0IHNpbXBseSBydW5zIHRoZSByaWdodCBoYW5kbGVyIHdpdGggdGhlIE9wZW5BUEkgcGFyYW1ldGVycyB2YWx1ZQpmaWxsZWQgZnJvbSB0aGUgc2VyaWFsaXphYmxlIHJlcXVlc3QuIFRoZSBoYW5kbGVyIHNpbXBseSBoYXZlIHRvIHJldHVybiBhCnNlcmlhbGl6YWJsZSByZXNwb25zZSBvYmplY3QgaW4gdHVybi4KCklmIGFueSBlcnJvciBvY2N1cnMgd2l0aGluIHRoaXMgcHJvY2VzcywgdGhhbiB0aGUgYGVycm9ySGFuZGxlcmAgaXMgcmVzcG9uc2libGUKZm9yIHByb3ZpZGluZyB0aGUgbm93IGxhY2tpbmcgcmVzcG9uc2Ugb2JqZWN0IGJhc2VkIG9uIHRoZSBlcnJvciBpdCBjYXRjaGVzLgoKQW5kIHRoYXQncyBpdCwgeW91IGhhdmUgeW91ciBSRVNUIEFQSS4gV2UgaGF2ZQpbbm8gbWlkZGxld2FyZV0oaHR0cDovL2luc2VydGFmdGVyLmNvbS9lbi9ibG9nL25vX21vcmVfbWlkZGxld2FyZXMuaHRtbCkgY29uY2VwdApoZXJlLiBJbnN0ZWFkLCBldmVyeSBoYW5kbGVyIGlzIGEgc2ltcGxlIGZ1bmN0aW9uIHRha2luZyBwYXJhbXRlcnMgYW5kIHJldHVybmluZwphIHJlc3BvbnNlLiBJdCBtYWtlcyB0aG9zZSBmdW5jdGlvbnMgdmVyeSBlYXNpbHkgY29tcG9zYWJsZSAoaW4gYSBmdW5jdGlvbmFsCnByb2dyYW1taW5nIHNlbnNlKS4KCllvdSBtYXkgYWRkIGdsb2JhbCB3cmFwcGVycyB0byBjaGFuZ2UgZXZlcnkgaGFuZGxlcnMgaW5wdXQvb3V0cHV0IG9uIHRoZSBmbHkgb3IKYWRkIGEgbG9jYWwgd3JhcHBlciBzcGVjaWZpY2FsbHkgdG8gb25lIG9mIGEgZmV3IGhhbmRsZXJzLgoKIyMjIENvcmUgY29uY2VwdHMKCldob29rIHdvcmsgYnkgYWRkaW5nIGluZ3JlZGllbnRzIHRvIHlvdSBBUEk6CgotICoqY29uZmlndXJhdGlvbioqOiBXaG9vayBsb29rIHVwcyBmb3IgYGNvbmZpZy97Tk9ERV9FTlZ9L2NvbmZpZy5qc2AgZmlsZXMuIEl0CiAgY3JlYXRlcyBjb25zdGFudHMgeW91IGNhbiBpbmplY3QgaW4geW91ciBoYW5kbGVycyBhbmQgc2VydmljZXMuCi0gKipBUEkqKjogSXQgZGVmaW5lcyB0aGUgdmFyaW91cyBlbmRwb2ludCBvZiB5b3VyIEFQSSBhbmQgaG93IHRvIG1hcCB0aGVzZSB0bwogIGhhbmRsZXJzIHRoYW5rcyB0byB0aGUgd2VsbCBrbm93biBPcGVuQVBJIGZvcm1hdCAoZm9ybWVybHkgU3dhZ2dlciksCi0gKipoYW5kbGVycyoqOiB0aGUgY29kZSB0aGF0IGltcGxlbWVudCB0aGUgQVBJIGVuZHBvaW50cywKLSAqKnNlcnZpY2VzKio6IHZhcmlvdXMgc2VydmljZXMgdGhhdCBkZWFsIHdpdGggc2lkZSBlZmZlY3RzLAotICoqd3JhcHBlcnMqKjogaGlnaGVyIG9yZGVyIGZ1bmN0aW9ucyB5b3UgY2FuIGFwcGx5IHRvIGhhbmRsZXJzIChDT1JTLAogIGF1dGhlbnRpY2F0aW9uLi4uKS4KCllvdSBjYW4gc2VlIGEgbG90IG9mIHRob3NlIGNvbmNlcHRzIGltcGxlbWVudGVkIGluIHRoZQpbV2hvb2sgZXhhbXBsZV0oLi9wYWNrYWdlcy93aG9vay1leGFtcGxlKSBmb2xkZXIuCgpXaG9vaydzIERJIHN5c3RlbSByZWxpZXMgb24gdGhlCltLbmlmZWN5bGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZnJvaWR1cmUva25pZmVjeWNsZSkgbW9kdWxlLiBJdCBpcyBncmVhdCBmb3IKYWRkaW5nIG9yIGVhc2lseSBvdmVycmlkZS93cmFwIGEgbG90IG9mIGl0cyBjb3JlIGNvbXBvbmVudCBhbmQgYnJpbmdzCmluc3RydW1lbnRhdGlvbiBhbmQgdGVzdGFiaWxpdHkgdG8geW91ciBjb2RlIGJhc2VzLgoKIyMgQ29udHJpYnV0aW5nCgpDb250cmlidXRvcnMgYXJlIHZlcnkgd2VsY29tZSB0byBoZWxwIHB1c2hpbmcgV2hvb2sgZm9yd2FyZCEKCkNsb25lIHRoaXMgcHJvamVjdCdzIHJlcG9zaXRvcnkgYW5kIHJ1bjoKCmBgYHNoCm5wbSBpCm5wbSBydW4gYnVpbGQKbnBtIHJ1biBtZXRhcGFrCm5wbSB0CmBgYAoKVGhlIHJlcG9zaXRvcnkgaXMgYmFzZWQgb24gTGVybmFKUyB0aGF0IGFsbG93cyB0byBob3N0IHNldmVyYWwgTlBNIHBhY2thZ2VzIGluIGEKc2luZ2xlIHJlcG9zaXRvcnkuIFRoYXQgc2FpZCwgdG8ga2VlcCBpdCBzaW1wbGUgaXQgb25seSBwcm94aWVzIHRoZSBwYWNrYWdlcwpjb21tYW5kcy4KCkluc3RhbGwgdGhvc2UKW1ZTQ29kZSBleHRlbnNpb25zXShodHRwczovL2luc2VydGFmdGVyLmNvbS9lbi9ibG9nL215X3ZzY29kZV9jb25maWd1cmF0aW9uLmh0bWwpCnRvIGdldCBhIHNtb290aCBkZXZlbG9wZXIgZXhwZXJpZW5jZS4KCkZvciBjb21taXR0aW5nIHJ1bjoKCmBgYHNoCm5wbSBydW4gY3oKYGBgCgojIyBQdWJsaXNoaW5nCgpgYGBzaApOT0RFX0VOVj1jbGkgbnBtIHJ1biBsZXJuYSAgLS0gcHVibGlzaApgYGAKClsvL106ICMgKDo6Y29udGVudHM6ZW5kKQoKIyBBdXRob3JzCi0gW05pY29sYXMgRnJvaWR1cmVdKGh0dHA6Ly9pbnNlcnRhZnRlci5jb20vZW4vaW5kZXguaHRtbCkKLSBbVmluY2VudCBEYSBTaWx2YV0oaHR0cHM6Ly9kYXNpbHZhdmluY2VudC5naXRodWIuaW8vUG9ydEZvbGlvLykKLSBbQXlvdWIgSEFELURBRF0oaHR0cHM6Ly9naXRodWIuY29tL0F1YkhhZGRhZCkKCiMgTGljZW5zZQpbTUlUXShodHRwczovL2dpdGh1Yi5jb20vbmZyb2lkdXJlL3dob29rL2Jsb2IvbWFpbi9MSUNFTlNFKQo= readmeEtag: '"c35ac2731c461bc8fd356053f06a0d6e0d4635ac"' readmeLastModified: Thu, 25 Jul 2024 12:43:57 GMT repositoryId: 33482446 description: Build strong and efficient REST web services. created: '2015-04-06T13:09:13Z' updated: '2024-07-25T12:44:06Z' language: TypeScript archived: false stars: 30 watchers: 7 forks: 7 owner: nfroidure logo: https://avatars.githubusercontent.com/u/229633?v=4 license: MIT repoEtag: '"ba92ba01ba31255ad5b41e20450ea16ba416e21840db28164dda3812fdd2a30b"' repoLastModified: Thu, 25 Jul 2024 12:44:06 GMT foundInMaster: true name: Whook homepage: https://github.com/nfroidure/whook language: - Javascript - TypeScript source_description: OpenAPI 3 based NodeJS server. category: - Server - Server Implementations id: 939a255e49c264ce8bc1417d3621a5e5 link: https://github.com/nfroidure/whook v2: false v3_1: true - source: https://openapi.tools/ name: openapi-ts-sdk-builder homepage: https://github.com/nfroidure/openapi-ts-sdk-builder language: - Javascript - TypeScript source_description: Generate a TypeScript SDK from OpenAPI 3 definitions. category: SDK foundInMaster: true repository: https://github.com/nfroidure/openapi-ts-sdk-builder repositoryMetadata: base64Readme: >- Wy8vXTogIyAoICkKWy8vXTogIyAoVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGEgYG1ldGFwYWtgKQpbLy9dOiAjIChtb2R1bGUuIERvIG5vdCBjaGFuZ2UgaXQgIGV4Y2VwdCBiZXR3ZWVuIHRoZSkKWy8vXTogIyAoYGNvbnRlbnQ6c3RhcnQvZW5kYCBmbGFncywgeW91ciBjaGFuZ2VzIHdvdWxkKQpbLy9dOiAjIChiZSBvdmVycmlkZGVuLikKWy8vXTogIyAoICkKIyBvcGVuYXBpLXRzLXNkay1idWlsZGVyCj4gQ3JlYXRlIGEgVHlwZVNjcmlwdCBTREsgZnJvbSBhbiBPcGVuQVBJIDMgZGVmaW5pdGlvbgoKWyFbR2l0SHViIGxpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtYmx1ZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbmZyb2lkdXJlL29wZW5hcGktdHMtc2RrLWJ1aWxkZXIvYmxvYi9tYWluL0xJQ0VOU0UpCgoKWy8vXTogIyAoOjpjb250ZW50czpzdGFydCkKCkEgVHlwZVNjcmlwdCByZXdyaXRlIG9mCltvcGVuYXBpLWpzLXNkay1idWlsZGVyXShodHRwczovL2dpdGh1Yi5jb20vc2VuY3JvcC9vcGVuYXBpLWpzLXNkay1idWlsZGVyKS4KCkl0IGJhc2ljYWxseSBicmluZ3MgYSBtaW5pbWFsIFR5cGVTY3JpcHQgU0RLIGZyb20gYW4gT3BlbkFQSTMgZmlsZSB3aXRoIG5vIE9PUAppbnNpZGUuIEl0IHdvcmtzIHdpdGggYW55IEhUVFAgY2xpZW50LgoKIyBVc2FnZQoKV2l0aCBhIHJhdyBOb2RlIHNjcmlwdDoKCmBgYGpzCmltcG9ydCB7IGdlbmVyYXRlU0RLRnJvbU9wZW5BUEkgfSBmcm9tICdvcGVuYXBpLXRzLXNkay1idWlsZGVyJzsKaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnZnMnOwoKY29uc3Qgb3BlbkFQSUNvbnRlbnRzID0gcmVhZEZpbGVTeW5jKCdvcGVuYXBpLmpzb24nLCAndXRmLTgnKTsKY29uc3Qgc2RrQ29udGVudHMgPSBnZW5lcmF0ZVNES0Zyb21PcGVuQVBJKAogIG9wZW5BUElDb250ZW50cywKICB7CiAgICBzZGtWZXJzaW9uOiAndjEuMS4xJywKICAgIGlnbm9yZWRQYXJhbWV0ZXJzTmFtZXM6IFsnY29va2llJywgJ1gtQVBJLVZlcnNpb24nLCAnWC1TREstVmVyc2lvbiddLAogICAgdW5kb2N1bWVudGVkUGFyYW1ldGVyc05hbWVzOiBbJ1gtQXBwbGljYXRpb24tVmVyc2lvbiddLAogIH0sCiAgewogICAgZ2VuZXJhdGVVbnVzZWRTY2hlbWFzOiB0cnVlLAogICAgYnJhbmRlZFR5cGVzOiBbCiAgICAgICdTZW5zb3JVVUlEJywKICAgICAgJ1VVSUQnLAogICAgICAnTG9jYWxlJywKICAgICAgJ1RpbWVab25lJywKICAgICAgJ1ZhbHVlTmFtZScsCiAgICAgICdTZW5zb3JWYXJpYWJsZScsCiAgICBdLAogICAgZ2VuZXJhdGVSZWFsRW51bXM6IHRydWUsCiAgICBleHBvcnROYW1lc3BhY2VzOiB0cnVlLAogIH0sCik7Cgp3cml0ZUZpbGVTeW5jKCdzcmMvc2RrLnRzJywgc2RrQ29udGVudHMsICd1dGYtOCcpOwpgYGAKClNhbXBsZSB1c2FnZSB3aXRoIGBheGlvc2A6CgpgYGB0cwppbXBvcnQgQmFzZUFQSSwgeyBBUElTdGF0dXNlcyB9IGZyb20gJy4vc2RrLnRzJzsKaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJzsKaW1wb3J0IHF1ZXJ5c3RyaW5nIGZyb20gJ3F1ZXJ5c3RyaW5nJzsKaW1wb3J0IHR5cGUgeyBSZXF1ZXN0RXhlY3V0b3IgfSBmcm9tICcuL3Nkay50cyc7CmltcG9ydCB0eXBlIHsgQXhpb3NSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnYXhpb3MnOwoKY29uc3QgZXhlY3V0ZVJlcXVlc3Q6IFJlcXVlc3RFeGVjdXRvcjxBeGlvc1JlcXVlc3RDb25maWc+ID0gYXN5bmMgKAogIGh0dHBSZXF1ZXN0LAogIG9wZXJhdGlvbklkLAogIG9wdGlvbnMsCikgPT4gewogIGNvbnN0IGNhbGxPcHRpb25zID0gewogICAgLi4ub3B0aW9ucywKICAgIGJhc2VVUkw6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLAogICAgdXJsOiBodHRwUmVxdWVzdC5wYXRoLAogICAgbWV0aG9kOiBodHRwUmVxdWVzdC5tZXRob2QsCiAgICBoZWFkZXJzOiB7CiAgICAgIC4uLihvcHRpb25zLmhlYWRlcnMgfHwge30pLAogICAgICAuLi4oaHR0cFJlcXVlc3QuaGVhZGVycyB8fCB7fSksCiAgICB9LAogICAgcGFyYW1zOiBodHRwUmVxdWVzdC5wYXJhbXMsCiAgICBkYXRhOiBodHRwUmVxdWVzdC5ib2R5LAogICAgcGFyYW1zU2VyaWFsaXplcjogcXVlcnlzdHJpbmcuc3RyaW5naWZ5LmJpbmQocXVlcnlzdHJpbmcpLAogICAgdmFsaWRhdGVTdGF0dXM6IChzdGF0dXM6IG51bWJlcikgPT4KICAgICAgQVBJU3RhdHVzZXNbb3BlcmF0aW9uSWRdLmluY2x1ZGVzKHN0YXR1cyksCiAgfTsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zKGNhbGxPcHRpb25zKTsKCiAgcmV0dXJuIHsKICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLAogICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycywKICAgIGJvZHk6IHJlc3BvbnNlLmRhdGEsCiAgfTsKfTsKCi8vIFVzZSB0aGUgQVBJCmF3YWl0IEJhc2VBUEkuZ2V0UGluZyhleGVjdXRlUmVxdWVzdCk7CmF3YWl0IEJhc2VBUEkuZ2V0VXNlcihleGVjdXRlUmVxdWVzdCwgeyB1c2VySWQ6ICcxMjMnIH0pOwoKLy8gR2VuZXJhdGUgVVJJcyBvbmx5IHVzZSB0aGUgQVBJIHRoZW4KYXdhaXQgQVBJVVJJQnVpbGRlcnMuYnVpbGRHZXRQaW5nVVJJKHsKICAvKi4uLiovCn0pOwoKLy8gVG8ga25vdyB3aGljaCBtZXRob2QgaXMgdXNlZCBieSBhbiBlbmRwb2ludApBUElNZXRob2RzLmdldFBpbmc7IC8vID0+IGdldAoKLy8gVG8ga25vdyB3aGljaCBzdGF0dXMgY29kZXMgY2FuIGJlIHJldHVybmVkIGJ5IGFuIGVuZHBvaW50CkFQSVN0YXR1c2VzLmdldFBpbmc7IC8vID0+IFsiZGVmYXVsdCIsIDIwMF0KCi8vIEdlbmVyYXRlIGEgY29tcGxldGUgZW5kcG9pbnQgaW5wdXQKLy8gKG1heSBiZSB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBwYXNzCi8vIEhUVFAgcmVxdWVzdHMgdG8gYW5vdGhlciBwcm9jZXNzICkKQVBJSW5wdXRCdWlsZGVycy5idWlsZEdldFBpbmdJbnB1dCh7CiAgLyouLi4qLwp9KTsKYGBgCgpZb3UgY2FuIGFsc28gc2FmZWx5IG9wZXJhdGUgb24gdGhlIEFQSSBieSBkb2luZyBzbzoKCmBgYHRzCmltcG9ydCBCYXNlQVBJLCB7IEFQSVN0YXR1c2VzIH0gZnJvbSAnLi9zZGsudHMnOwppbXBvcnQgY29uZmlnIGZyb20gJy4vY29uZmlnJzsKaW1wb3J0IFlFcnJvciBmcm9tICd5ZXJyb3InOwppbXBvcnQgdHlwZSB7IFJlcXVlc3RFeGVjdXRvciwgQ29tcG9uZW50cyB9IGZyb20gJy4vc2RrLnRzJzsKaW1wb3J0IHR5cGUgeyBBeGlvc1JlcXVlc3RDb25maWcgfSBmcm9tICdheGlvcyc7CgpleHBvcnQgeyBFbnVtcyB9OwpleHBvcnQgdHlwZSB7IENvbXBvbmVudHMgfTsKCnR5cGUgQXV0aFRva2VuSW5wdXQgPSB7IHRva2VuPzogc3RyaW5nIH07Cgpjb25zdCBBUEkgPSBPYmplY3Qua2V5cyhCYXNlQVBJKS5yZWR1Y2UoKEZpbmFsQVBJLCBvcGVyYXRpb25JZCkgPT4gewogIEZpbmFsQVBJW29wZXJhdGlvbklkXSA9IGFzeW5jICgKICAgIHsgdG9rZW4sIC4uLmlucHV0IH06IHVua25vd24gJiBBdXRoVG9rZW5JbnB1dCwKICAgIG9wdGlvbnM6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHt9LAogICkgPT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSAgYXdhaXQgQmFzZUFQSVtvcGVyYXRpb25JZF0oCiAgICAgICAgZXhlY3V0ZVJlcXVlc3QsCiAgICAgICAgewogICAgICAgICAgLi4uaW5wdXQsCiAgICAgICAgICB4QXBwbGljYXRpb25WZXJzaW9uOiBjb25maWcuYXBwbGljYXRpb25WZXJzaW9uLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgLi4ub3B0aW9ucywKICAgICAgICAgIGJhc2VVUkw6IGNvbmZpZy5hcGlVUkwsCiAgICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAgIC4uLm9wdGlvbnMuaGVhZGVycywKICAgICAgICAgICAgLi4uKHRva2VuCiAgICAgICAgICAgICAgPyB7CiAgICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIDoge30pLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICApOwogICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgY29uc29sZS5lcnJvcignR290IGFuIEFQSSBlcnJvcjonLCBlcnIuc3RhY2spOwogICAgICB0aHJvdyBuZXcgWUVycm9yKAogICAgICAgIGVyci5yZXNwb25zZT8uZGF0YT8uZXJyb3IgPyAnRV9BUElfRVJST1InIDogJ0VfVU5FWFBFQ1RFRF9FUlJPUicsCiAgICAgICAgZXJyLnJlc3BvbnNlPy5kYXRhLAogICAgICApOwogICAgfQogIH07CiAgcmV0dXJuIEZpbmFsQVBJOwp9LCB7fSkgYXMgewogIFtQIGluIGtleW9mIHR5cGVvZiBCYXNlQVBJXTogKAogICAgaW5wdXQ6IFBhcmFtZXRlcnM8dHlwZW9mIEJhc2VBUElbUF0+WzFdICYgQXV0aFRva2VuSW5wdXQsCiAgICBjb25maWc/OiBBeGlvc1JlcXVlc3RDb25maWcsCiAgKSA9PiBQcm9taXNlPFJldHVyblR5cGU8dHlwZW9mIEJhc2VBUElbUF0+PjsKfTsKCmV4cG9ydCBkZWZhdWx0IEFQSTsKYGBgCgpGaW5hbGx5LCB5b3UgbWF5IGFwcHJlY2lhdGUgdXNpbmcgaXQgd2l0aCB0aGUKW2B1c2VTU1JgIFJlYWN0IGhvb2tdKGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvc3dyKSB0byBiZW5lZml0IGZyb20geW91ciBTREsKdHlwZXM6CgpgYGB0cwppbXBvcnQgdXNlU1dSIGZyb20gJ3N3cic7CmltcG9ydCBBUEkgZnJvbSAnLi9hcGknOwoKdHlwZSBIYW5kbGVyPEksIE8+ID0gKGlucHV0OiBJKSA9PiBQcm9taXNlPE8+Owp0eXBlIEhhbmRsZXJJbnB1dDxUPiA9IFQgZXh0ZW5kcyBIYW5kbGVyPGluZmVyIEksIHVua25vd24+ID8gSSA6IG5ldmVyOwp0eXBlIEhhbmRsZXJPdXRwdXQ8VD4gPSBUIGV4dGVuZHMgSGFuZGxlcjx1bmtub3duLCBpbmZlciBJPiA/IEkgOiBuZXZlcjsKCmNvbnN0IEFQSV9LRVlTOiBSZWNvcmQ8YW55LCBzdHJpbmc+ID0gT2JqZWN0LmtleXMoQVBJKS5yZWR1Y2UoKGhhc2gsIGtleSkgPT4gewogIGhhc2hbQVBJW2tleV1dID0ga2V5OwogIHJldHVybiBoYXNoOwp9LCB7fSk7CgpleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VBUElTV1I8VCBleHRlbmRzIEhhbmRsZXI8YW55LCBhbnk+PigKICBzd3JDb3VwbGU6IFtULCBIYW5kbGVySW5wdXQ8VD5dLAogIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPHR5cGVvZiB1c2VTV1I+WzJdLAopIHsKICBjb25zdCB1bmlxdWVLZXkgPSBzd3JDb3VwbGUKICAgID8gT2JqZWN0LmtleXMoc3dyQ291cGxlWzFdKS5yZWR1Y2UoCiAgICAgICAgKGZpbmFsS2V5LCBrZXkpID0+IGZpbmFsS2V5ICsga2V5ICsgSlNPTi5zdHJpbmdpZnkoc3dyQ291cGxlWzFdW2tleV0pLAogICAgICAgIC8vIFNhZGx5LCBoZXJlLCB3ZSBjYW5ub3QgcmVseSBvbiBgc3dyQ291cGxlWzBdLm5hbWVgIHRvCiAgICAgICAgLy8gYnVpbGQgdGhlIHVuaWNpdHkga2V5IHNpbmNlIHRoZSBidWlsZCBkZXN0cm95cyBpdAogICAgICAgIEFQSV9LRVlTW3N3ckNvdXBsZVswXV0gKyAnLScsCiAgICAgICkKICAgIDogbnVsbDsKCiAgcmV0dXJuIHVzZVNXUjwKICAgIEF3YWl0ZWQ8SGFuZGxlck91dHB1dDxUPj4gZXh0ZW5kcyB7IGJvZHk6IGluZmVyIEQgfSA/IEQgOiBuZXZlcgogID4oCiAgICB1bmlxdWVLZXksCiAgICBhc3luYyAoKSA9PiAoYXdhaXQgc3dyQ291cGxlWzBdKHN3ckNvdXBsZVsxXSkpLmJvZHksCiAgICBvcHRpb25zIGFzIGFueSwKICApOwp9CmBgYAoKWy8vXTogIyAoOjpjb250ZW50czplbmQpCgojIEFQSQo8YSBuYW1lPSJtb2R1bGVfb3BlbmFwaS10cy1zZGstYnVpbGRlciI+PC9hPgoKIyMgb3BlbmFwaS10cy1zZGstYnVpbGRlcgo8YSBuYW1lPSJtb2R1bGVfb3BlbmFwaS10cy1zZGstYnVpbGRlci4uZ2VuZXJhdGVTREtGcm9tT3BlbkFQSSI+PC9hPgoKIyMjIG9wZW5hcGktdHMtc2RrLWJ1aWxkZXJ+Z2VuZXJhdGVTREtGcm9tT3BlbkFQSShvcGVuQVBJQ29udGVudCwgb3B0aW9ucywgW3R5cGVPcHRpb25zXSkg4oeSIDxjb2RlPlByb21pc2UuJmx0O3N0cmluZyZndDs8L2NvZGU+CkJ1aWxkIGEgSlMgU0RLIGZyb20gYW4gT3BlbkFQSSBmaWxlCgoqKktpbmQqKjogaW5uZXIgbWV0aG9kIG9mIFs8Y29kZT5vcGVuYXBpLXRzLXNkay1idWlsZGVyPC9jb2RlPl0oI21vZHVsZV9vcGVuYXBpLXRzLXNkay1idWlsZGVyKSAgCioqUmV0dXJucyoqOiA8Y29kZT5Qcm9taXNlLiZsdDtzdHJpbmcmZ3Q7PC9jb2RlPiAtIFRoZSBTREsgSlMgY29kZSAgCgp8IFBhcmFtIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0gfCAtLS0gfAp8IG9wZW5BUElDb250ZW50IHwgPGNvZGU+c3RyaW5nPC9jb2RlPiB8ICB8Cnwgb3B0aW9ucyB8IDxjb2RlPk9iamVjdDwvY29kZT4gfCAgfAp8IG9wdGlvbnMuc2RrVmVyc2lvbiB8IDxjb2RlPnN0cmluZzwvY29kZT4gfCBUaGUgU0RLIHZlcnNpb24gfAp8IFtvcHRpb25zLnNka05hbWVdIHwgPGNvZGU+c3RyaW5nPC9jb2RlPiB8IFRoZSBTREsgbmFtZSAoZGVmYXVsdCB0byBBUEkpIHwKfCBbb3B0aW9ucy5pZ25vcmVkUGFyYW1ldGVyc05hbWVzXSB8IDxjb2RlPkFycmF5LiZsdDtzdHJpbmcmZ3Q7PC9jb2RlPiB8IFByb3ZpZGUgYSBsaXN0IG9mIHBhcmFtZXRlcnMgdG8gaWdub3JlIHwKfCBbb3B0aW9ucy51bmRvY3VtZW50ZWRQYXJhbWV0ZXJzTmFtZXNdIHwgPGNvZGU+QXJyYXkuJmx0O3N0cmluZyZndDs8L2NvZGU+IHwgUHJvdmlkZSBhIGxpc3Qgb2YgcGFyYW1ldGVycyB0byBrZWVwIHVuZG9jdW1lbnRlZCB8CnwgW3R5cGVPcHRpb25zXSB8IDxjb2RlPk9iamVjdDwvY29kZT4gfCBPcHRpb25zIHRvIGJlIHBhc3NlZCB0byB0aGUgdHlwZSBnZW5lcmF0b3IgfAoKCiMgQXV0aG9ycwotIFtOaWNvbGFzIEZyb2lkdXJlXShodHRwczovL2luc2VydGFmdGVyLmNvbS9lbi9pbmRleC5odG1sKQoKIyBMaWNlbnNlCltNSVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZnJvaWR1cmUvb3BlbmFwaS10cy1zZGstYnVpbGRlci9ibG9iL21haW4vTElDRU5TRSkK readmeEtag: '"bed392d8c61f5f5b070e1f5c5a763a419fec90a4"' readmeLastModified: Thu, 18 Jul 2024 12:08:27 GMT repositoryId: 292779894 description: Create a TypeScript SDK from an OpenAPI 3 definition created: '2020-09-04T07:26:46Z' updated: '2024-07-18T12:08:37Z' language: TypeScript archived: false stars: 10 watchers: 3 forks: 2 owner: nfroidure logo: https://avatars.githubusercontent.com/u/229633?v=4 license: MIT repoEtag: '"da59dfa88bb4d1796a0cbdad2fde47c4f06a4e91345834970db7bc391de28483"' repoLastModified: Thu, 18 Jul 2024 12:08:37 GMT id: 6d4b61a2ffce070a86ca3005371b8050 link: https://github.com/nfroidure/openapi-ts-sdk-builder v2: false v3: true v3_1: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/nfroidure/schema2dts v3: true repositoryMetadata: base64Readme: >- Wy8vXTogIyAoICkKWy8vXTogIyAoVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGEgYG1ldGFwYWtgKQpbLy9dOiAjIChtb2R1bGUuIERvIG5vdCBjaGFuZ2UgaXQgIGV4Y2VwdCBiZXR3ZWVuIHRoZSkKWy8vXTogIyAoYGNvbnRlbnQ6c3RhcnQvZW5kYCBmbGFncywgeW91ciBjaGFuZ2VzIHdvdWxkKQpbLy9dOiAjIChiZSBvdmVycmlkZGVuLikKWy8vXTogIyAoICkKIyBzY2hlbWEyZHRzCj4gQSB2ZXJ5IHNpbXBsZSBKU09OU2NoZW1hNy9PcGVuQVBJMyB0byBUeXBlU2NyaXB0IHR5cGVzIGRlZmluaXRpb25zIGdlbmVyYXRvcgoKCgpbLy9dOiAjICg6OmNvbnRlbnRzOnN0YXJ0KQoKSXQgaXMgaW50ZW5kZWQgdG8gc3VwcG9ydCBKU09OU2NoZW1hNy9PcGVuQVBJMyBidXQgbWF5IHdvcmsgZm9yIHNvbWUgaWYgbm90IG1vc3QKSlNPTlNjaGVtYSB2ZXJzaW9ucy4KClRoaXMgbW9kdWxlIGFzc3VtZXMgeW91ciBKU09OU2NoZW1hIC8gT3BlbkFQSTMgZG9jdW1lbnRzIGFyZSB2YWxpZC4gSXQgYWxzbwpkb2Vzbid0IHN1cHBvcnQgZXh0ZXJuYWwgcmVmZXJlbmNlcyBhdCB0aGUgbW9tZW50IGFuZCBleHBlY3QgYSBzaW5nbGUgb2JqZWN0Cndob3NlIGRlZmluaXRpb25zIGFyZSBhbGwgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2JqZWN0LgoKSXQgaXMgYWxzbyBtZWFudCB0byBiZSBhIGJ1aWxkaW5nIGJsb2NrIGZvciBoaWdoZXIgbGV2ZWwgZ2VuZXJhdG9ycy4KCiMjIFVzYWdlCgpgYGB0cwppbXBvcnQgeyByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tICdmcyc7CmltcG9ydCB7CiAgZ2VuZXJhdGVKU09OU2NoZW1hVHlwZXMsCiAgZ2VuZXJhdGVPcGVuQVBJVHlwZXMsCiAgdG9Tb3VyY2UsCn0gZnJvbSAnc2NoZW1hMmR0cyc7CgovLyBPcGVuIEFQSQpjb25zdCBvcGVuQVBJU2NoZW1hID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMoJ29wZW5hcGkuanNvbicpLnRvU3RyaW5nKCkpOwoKd3JpdGVGaWxlU3luYygnQVBJLmQudHMnLCB0b1NvdXJjZShhd2FpdCBnZW5lcmF0ZU9wZW5BUElUeXBlcyhvcGVuQVBJU2NoZW1hKSkpOwoKLy8gSlNPTiBTY2hlbWEKY29uc3QganNvblNjaGVtYSA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKCdzY2hlbWEuanNvbicpLnRvU3RyaW5nKCkpOwoKd3JpdGVGaWxlU3luYygnQVBJLmQudHMnLCB0b1NvdXJjZShhd2FpdCBnZW5lcmF0ZUpTT05TY2hlbWFUeXBlcyhqc29uU2NoZW1hKSkpOwpgYGAKCklmIHlvdSBmaW5kIHNvbWUgY2FzZSB3aXRoIHVuZXhwZWN0ZWQgcmVzdWx0cywgcGxlYXNlIGFkZCB0aGUgZml4dHVyZXMgdG8gdGhpcwpyZXBvc2l0b3J5IGluIGEgcHVsbCByZXF1ZXN0IGFuZCBkZXNjcmliZSB0aGUgcHJvYmxlbSB5b3UgZW5jb3VudGVyLgoKIyMgT3B0aW9ucwoKWW91IGNhbiBjaGFuZ2UgdGhlIEFQSSBtYWluIG5hbWVzcGFjZSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHVzZSBzZXZlcmFsCmdlbmVyYXRlZCB0eXBlcyBpbiB0aGUgc2FtZSByZXBvc2l0b3J5LiBKdXN0IHByb3ZpZGUgaXRzIG5hbWVzcGFjZSBhIHRoZSBzZWNvbmQKYXJndW1lbnQgdG8gYGdlbmVyYXRlT3BlbkFQSVR5cGVzYC4KClRoZSB0aGlyZCBhcmd1bWVudCBpcyBmb3Igb3B0aW9uczoKCi0geW91IGNhbiBnZW5lcmF0ZSB0aGUgdW51c2VkIHNjaGVtYXMgKGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gaW4gZGV2ZWxvcG1lbnQKICBtb2RlKSB0byBiZSBhYmxlIHRvIHVzZSB0aGVtIGluIHlvdXIgY29kZSBkZXNwaXRlIHRoZSBmYWN0IHRoZXkgYWluJ3QgdXNlZCBpbgogIHlvdSBBUEkgYXQgdGhhdCBtb21lbnQuIEp1c3Qgc2V0IGBnZW5lcmF0ZVVudXNlZFNjaGVtYXNgIHRvIGB0cnVlYC4KLSB5b3UgY2FuIGFsc28gZmlsdGVyIHRoZSBzdGF0dXNlcyB5b3Ugd2lzaCB0byBnZW5lcmF0ZSBieSBzZXR0aW5nCiAgYGZpbHRlclN0YXR1c2VzYCB0byBgWzIwMCwgMjAxLCAyMDIsIDMwMF1gIGZvciBleGFtcGxlIHNvIHRoYXQgdGhlIDUwMCBlcnJvcnMKICByZXNwb25zZXMgYWluJ3QgdGFrZW4gaW4gY291bnQuCgojIyBLbm93biBpc3N1ZXMKClRoZXJlIGlzIHNvbWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgSlNPTlNjaGVtYSBgYW55T2ZgLCBgYWxsT2ZgIGFuZCBgb25lT2ZgCmtleXdvcmRzIChsZWFybgpbbW9yZSBoZXJlIG9uIGNvbWJpbmluZyBzY2hlbWFzXShodHRwczovL2pzb24tc2NoZW1hLm9yZy91bmRlcnN0YW5kaW5nLWpzb24tc2NoZW1hL3JlZmVyZW5jZS9jb21iaW5pbmcuaHRtbCkpLgoKVGhlIGN1cnJlbnQgd2F5IHRvIGhhbmRsZSB0aGlzIGluIHRoaXMgbGlicmFyeSBpcyB0bzoKCi0gY29udmVydCBgb25lT2ZgIHRvIGFuCiAgW3VuaW9uIHR5cGVdKGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL3VuaW9ucy1hbmQtaW50ZXJzZWN0aW9ucy5odG1sI3VuaW9uLXR5cGVzKQogIHdoaWNoIGlzIHZhbGlkCi0gY29udmVydCBgYW55T2ZgIHRvIGFuIHVuaW9uIHR5cGUgdG9vIHdoaWNoIGlzIG5vdCByZWFsbHkgd2hhdCBpdCBtZWFucyBpbiBKU09OCiAgU2NoZW1hCi0gY29udmVydCBgYWxsT2ZgIHRvIGFuCiAgW2ludGVyc2VjdGlvbiB0eXBlXShodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay91bmlvbnMtYW5kLWludGVyc2VjdGlvbnMuaHRtbCNpbnRlcnNlY3Rpb24tdHlwZXMpCiAgd2hpY2ggaXMgY29tcGxldGx5IHdyb25nIGFuZCB3aWxsIHdvcmsgb25seSB3aXRoIEpTT04gU2NoZW1hcyBtZWFudCB0byBiZSB1c2VkCiAgdGhhdCB3YXkuIEJ5IGV4YW1wbGUsIGNvbWJpbmluZyBhbiBleGlzdGluZyBvYmplY3Qgc2NoZW1hIHdpdGggYW5vdGhlciBvYmplY3QKICB0byBtYWtlIHNvbWUgcHJvcGVydGllcyByZXF1aXJlZCB3aWxsIG9ubHkgd29yayBpZiB5b3Ugc2V0IGl0cyB0eXBlIHRvCiAgYG9iamVjdGAgaW4gYm90aCBzY2hlbWFzIGV4cGxpY2l0bHk6CgpgYGBqc29uCnsKICAiYWxsT2YiOiBbCiAgICB7CiAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgIH0sCiAgICB7ICJ0eXBlIjogIm9iamVjdCIsICJyZXF1aXJlZCI6IFsiaWQiXSB9CiAgXQp9CmBgYAoKQ3VycmVudGx5LCB0aGUgYGlmYC9gdGhlbmAga2V5d29yZHMgb2YgSlNPTlNjaGVtYSBkbyBub3Qgd29yay4gWW91IHNob3VsZCBiZQphYmxlIHRvIHJlcGxhY2UgbW9zdCBvZiBpdHMgdXNlIHBlciBhIGBvbmVPZmAgZm9ybS4KClsvL106ICMgKDo6Y29udGVudHM6ZW5kKQoKIyBBUEkKIyMgRnVuY3Rpb25zCgo8ZGw+CjxkdD48YSBocmVmPSIjZ2VuZXJhdGVPcGVuQVBJVHlwZXMiPmdlbmVyYXRlT3BlbkFQSVR5cGVzKHNjaGVtYSwgb3B0aW9ucyk8L2E+IOKHkiA8Y29kZT5UeXBlU2NyaXB0Lk5vZGVBcnJheTwvY29kZT48L2R0Pgo8ZGQ+PHA+Q3JlYXRlIHRoZSBUeXBlU2NyaXB0IHR5cGVzIGRlY2xhcmF0aW9ucyBmcm9tIGFuIE9wZW4gQVBJIGRvY3VtZW50PC9wPgo8L2RkPgo8ZHQ+PGEgaHJlZj0iI2dlbmVyYXRlSlNPTlNjaGVtYVR5cGVzIj5nZW5lcmF0ZUpTT05TY2hlbWFUeXBlcyhzY2hlbWEsIG9wdGlvbnMpPC9hPiDih5IgPGNvZGU+VHlwZVNjcmlwdC5Ob2RlQXJyYXk8L2NvZGU+PC9kdD4KPGRkPjxwPkNyZWF0ZSB0aGUgVHlwZVNjcmlwdCB0eXBlcyBkZWNsYXJhdGlvbnMgZnJvbSBhIEpTT05TY2hlbWEgZG9jdW1lbnQ8L3A+CjwvZGQ+CjxkdD48YSBocmVmPSIjdG9Tb3VyY2UiPnRvU291cmNlKG5vZGVzKTwvYT4g4oeSPC9kdD4KPGRkPjxwPlJldHVybnMgc291cmNlIGZyb20gYSBsaXN0IG9mIFR5cGVTY3JpcHQgc3RhdGVtZW50czwvcD4KPC9kZD4KPC9kbD4KCjxhIG5hbWU9ImdlbmVyYXRlT3BlbkFQSVR5cGVzIj48L2E+CgojIyBnZW5lcmF0ZU9wZW5BUElUeXBlcyhzY2hlbWEsIG9wdGlvbnMpIOKHkiA8Y29kZT5UeXBlU2NyaXB0Lk5vZGVBcnJheTwvY29kZT4KQ3JlYXRlIHRoZSBUeXBlU2NyaXB0IHR5cGVzIGRlY2xhcmF0aW9ucyBmcm9tIGFuIE9wZW4gQVBJIGRvY3VtZW50CgoqKktpbmQqKjogZ2xvYmFsIGZ1bmN0aW9uICAKCnwgUGFyYW0gfCBUeXBlIHwKfCAtLS0gfCAtLS0gfAp8IHNjaGVtYSB8IDxjb2RlPkpTT05TY2hlbWEuRG9jdW1lbnQ8L2NvZGU+IHwgCnwgb3B0aW9ucyB8IDxjb2RlPk9iamVjdDwvY29kZT4gfCAKfCBvcHRpb25zLmJhc2VOYW1lIHwgPGNvZGU+c3RyaW5nPC9jb2RlPiB8IAp8IG9wdGlvbnMuZmlsdGVyU3RhdHVzZXMgfCA8Y29kZT5BcnJheS4mbHQ7bnVtYmVyJmd0OzwvY29kZT4gfCAKfCBvcHRpb25zLmdlbmVyYXRlVW51c2VkU2NoZW1hcyB8IDxjb2RlPmJvb2xlYW48L2NvZGU+IHwgCnwgb3B0aW9ucy5jYW1lbGl6ZUlucHV0cyB8IDxjb2RlPmJvb2xlYW48L2NvZGU+IHwgCnwgb3B0aW9ucy5icmFuZGVkVHlwZXMgfCA8Y29kZT5BcnJheS4mbHQ7c3RyaW5nJmd0OzwvY29kZT4gfCAKfCBvcHRpb25zLmdlbmVyYXRlUmVhbEVudW1zIHwgPGNvZGU+Ym9vbGVhbjwvY29kZT4gfCAKfCBvcHRpb25zLmV4cG9ydE5hbWVzcGFjZXMgfCA8Y29kZT5ib29sZWFuPC9jb2RlPiB8IAp8IG9wdGlvbnMucmVxdWlyZUNsZWFuQVBJIHwgPGNvZGU+Ym9vbGVhbjwvY29kZT4gfCAKCjxhIG5hbWU9ImdlbmVyYXRlSlNPTlNjaGVtYVR5cGVzIj48L2E+CgojIyBnZW5lcmF0ZUpTT05TY2hlbWFUeXBlcyhzY2hlbWEsIG9wdGlvbnMpIOKHkiA8Y29kZT5UeXBlU2NyaXB0Lk5vZGVBcnJheTwvY29kZT4KQ3JlYXRlIHRoZSBUeXBlU2NyaXB0IHR5cGVzIGRlY2xhcmF0aW9ucyBmcm9tIGEgSlNPTlNjaGVtYSBkb2N1bWVudAoKKipLaW5kKio6IGdsb2JhbCBmdW5jdGlvbiAgCgp8IFBhcmFtIHwgVHlwZSB8CnwgLS0tIHwgLS0tIHwKfCBzY2hlbWEgfCA8Y29kZT5KU09OU2NoZW1hLkRvY3VtZW50PC9jb2RlPiB8IAp8IG9wdGlvbnMgfCA8Y29kZT5PYmplY3Q8L2NvZGU+IHwgCnwgb3B0aW9ucy5uYW1lIHwgPGNvZGU+c3RyaW5nPC9jb2RlPiB8IAp8IG9wdGlvbnMuYnJhbmRlZFR5cGVzIHwgPGNvZGU+QXJyYXkuJmx0O3N0cmluZyZndDs8L2NvZGU+IHwgCgo8YSBuYW1lPSJ0b1NvdXJjZSI+PC9hPgoKIyMgdG9Tb3VyY2Uobm9kZXMpIOKHkgpSZXR1cm5zIHNvdXJjZSBmcm9tIGEgbGlzdCBvZiBUeXBlU2NyaXB0IHN0YXRlbWVudHMKCioqS2luZCoqOiBnbG9iYWwgZnVuY3Rpb24gIAoqKlJldHVybnMqKjogc3RyaW5nICAKCnwgUGFyYW0gfCBUeXBlIHwKfCAtLS0gfCAtLS0gfAp8IG5vZGVzIHwgPGNvZGU+VHlwZWRQcm9wZXJ0eURlc2NyaXB0b3IuTm9kZUFycmF5PC9jb2RlPiB8IAoKCiMgQXV0aG9ycwotIFtOaWNvbGFzIEZyb2lkdXJlXShodHRwczovL2luc2VydGFmdGVyLmNvbS9lbi9pbmRleC5odG1sKQoKIyBMaWNlbnNlCltJU0NdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZnJvaWR1cmUvc2NoZW1hMmR0cy9ibG9iL21haW4vTElDRU5TRSkK readmeEtag: '"a25d1896f779422beb30256553fbdef149fdf06d"' readmeLastModified: Thu, 18 Jul 2024 13:46:40 GMT repositoryId: 291741148 description: A very simple JSONSchema to TypeScript types generator created: '2020-08-31T14:41:10Z' updated: '2024-07-18T13:49:02Z' language: TypeScript archived: false stars: 6 watchers: 4 forks: 3 owner: nfroidure logo: https://avatars.githubusercontent.com/u/229633?v=4 license: MIT repoEtag: '"fde2b1e5cc1b75fa0a997e42091cafbd582f4b1c3dc09ffd32d3519ccedc0b4f"' repoLastModified: Thu, 18 Jul 2024 13:49:02 GMT foundInMaster: true name: schema2dts homepage: https://github.com/nfroidure/schema2dts language: - Javascript - TypeScript source_description: Create types definitions from an OpenAPI schema. id: 8dbfb11a57e76d28203908d316294149 link: https://github.com/nfroidure/schema2dts v2: false category: Parsers - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/blst-security/cherrybomb v3: true repositoryMetadata: base64Readme: >- CjxkaXYgIGFsaWduPSJjZW50ZXIiPgoKIVtjaGVycnlfYm9tYl92MS4wXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmxzdC1zZWN1cml0eS9jaGVycnlib21iL21haW4vaW1hZ2VzL2NoZXJyeWJvbWJfZ2l0aHViX2FydF92Mi0xJTIwKDEpLnBuZykKCiAgCgo8aDE+U3RvcCBoYWxmLWRvbmUgQVBJIHNwZWNpZmljYXRpb25zPC9oMT4KClshW01haW50YWluZWQgYnkgYmxzdCBzZWN1cml0eV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYWludGFpbmVkJTIwYnktYmxzdCUyMHNlY3VyaXR5LTRGNDZFNSldKGh0dHBzOi8vd3d3LmJsc3RzZWN1cml0eS5jb20vP3Byb21vPWJsc3QmZG9tYWluPWdpdGh1Yl9tYWludGFpbmVkX3NoaWVsZCkKClshW2RvY3NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZG9jcy1wYXNzaW5nLWJyaWdodGdyZWVuKV0oaHR0cHM6Ly93d3cuYmxzdHNlY3VyaXR5LmNvbS9jaGVycnlib21iP3Byb21vPWJsc3QmZG9tYWluPWdpdGh1Yl9kb2NzX3NoaWVsZCkKClshW0Rpc2NvcmQgU2hpZWxkXShodHRwczovL2Rpc2NvcmRhcHAuY29tL2FwaS9ndWlsZHMvOTE0ODQ2OTM3MzI3NDk3MzA3L3dpZGdldC5wbmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9kaXNjb3JkLmdnL1dkSGh2NERxd1UpCgo8L2Rpdj4KCiAgCgojIPCfkqMgV2hhdCBpcyBDaGVycnlib21iPwoKQ2hlcnJ5Ym9tYiBpcyBhbiBDTEkgdG9vbCB3cml0dGVuICBpbiBSdXN0IHRoYXQgaGVscHMgcHJldmVudCBpbmNvcnJlY3QgY29kZSBpbXBsZW1lbnRhdGlvbiBlYXJseSBpbiBkZXZlbG9wbWVudC4gSXQgd29ya3MgYnkgdmFsaWRhdGluZyBhbmQgdGVzdGluZyB5b3VyIEFQSSB1c2luZyBhbiBPcGVuQVBJIGZpbGUuIEl0cyBtYWluIGdvYWwgaXMgdG8gcmVkdWNlIHNlY3VyaXR5IGVycm9ycyBhbmQgZW5zdXJlIHlvdXIgQVBJIGZ1bmN0aW9ucyBhcyBpbnRlbmRlZC4KCiAgCiAgCgojIPCflKggSG93IGRvZXMgaXQgd29yaz8KCgpDaGVycnlib21iIG1ha2VzIHN1cmUgeW91ciBBUEkgaXMgd29ya2luZyBjb3JyZWN0bHkuIEl0IGNoZWNrcyB5b3VyIEFQSSdzIHNwZWMgZmlsZSAoT3BlbkFQSSBTcGVjaWZpY2F0aW9uKSBmb3IgZ29vZCBwcmFjdGljZXMgYW5kIG1ha2VzIHN1cmUgaXQgZm9sbG93cyB0aGUgT0FTIHJ1bGVzLiBUaGVuLCBpdCB0ZXN0cyB5b3VyIEFQSSBmb3IgY29tbW9uIGlzc3VlcyBhbmQgdnVsbmVyYWJpbGl0aWVzLiBJZiBhbnkgcHJvYmxlbXMgYXJlIGZvdW5kLCBDaGVycnlib21iIGdpdmVzIHlvdSBhIGRldGFpbGVkIHJlcG9ydCB3aXRoIHRoZSBleGFjdCBsb2NhdGlvbiBvZiB0aGUgcHJvYmxlbSBzbyB5b3UgY2FuIGZpeCBpdCBlYXNpbHkuCgogIAoKIyDwn5C+IEdldCBTdGFydGVkCgojIyBJbnN0YWxsYXRpb24KCgoKIyMjIyMgTGludXgvTWFjT1M6CgpgYGAKCmN1cmwgaHR0cHM6Ly9jaGVycnlib21iLmJsc3RzZWN1cml0eS5jb20vaW5zdGFsbCB8IC9iaW4vYmFzaAoKYGBgCgpUaGUgc2NyaXB0IHJlcXVpcmVzIHN1ZG8gcGVybWlzc2lvbnMgdG8gbW92ZSB0aGUgY2hlcnJ5Ym9tYiBiaW4gaW50byA8Yj4vdXNyL2xvY2FsL2Jpbi88L2I+LjwvYnI+CgooSWYgeW91IHdhbnQgdG8gdmlldyB0aGUgc2hlbGwgc2NyaXB0KG9yIGV2ZW4gaGVscCB0byBpbXByb3ZpbmcgaXQgLSBbL3NjcmlwdHMvaW5zdGFsbC5zaF0oL3NjcmlwdHMvaW5zdGFsbC5zaCkpCgogIyMjIyMgQ29udGFpbmVyaXplZCB2ZXJzaW9uCiBZb3UgY2FuIGdldCBDaGVycnlib21iIHRocm91Z2ggaXRzIGNvbnRhaW5lcml6ZWQgdmVyc2lvbiB3aGljaCBpcyBob3N0ZWQgb24gQVdTIEVDUiwgYW5kIHJlcXVpcmVzIGFuIEFQSSBrZXkgdGhhdCB5b3UgY2FuIGdldCBvbiB0aGF0IGFkZGVzcyh0aGUgbG9hZGluZyBpcyBhIGJpdCBzbG93KSAtIFtodHRwczovL2NpY2QuYmxzdHNlY3VyaXR5LmNvbS9dKGh0dHBzOi8vY2ljZC5ibHN0c2VjdXJpdHkuY29tLykKCmBgYApkb2NrZXIgcnVuIC0tbW91bnQgdHlwZT1iaW5kLHNvdXJjZT1bUEFUSCBUTyBPQVNdLGRlc3RpbmF0aW9uPS9ob21lIHB1YmxpYy5lY3IuYXdzL2Jsc3Qtc2VjdXJpdHkvY2hlcnJ5Ym9tYjpsYXRlc3QgY2hlcnJ5Ym9tYiAtZiAvaG9tZS9bT0FTIE5BTUVdIC0tYXBpLWtleT1bQVBJLUtFWV0KYGBgCgojIyMjIEdldCBpdCBmcm9tIGNyYXRlcy5pbwoKYGBgYmFzaAoKY2FyZ28gaW5zdGFsbCBjaGVycnlib21iCgpgYGAKCklmIHlvdSBkb24ndCBoYXZlIGNhcmdvIGluc3RhbGxlZCwgeW91IGNhbiBpbnN0YWxsIGl0IGZyb20gW2hlcmVdKGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvY2FyZ28vZ2V0dGluZy1zdGFydGVkL2luc3RhbGxhdGlvbi5odG1sKQoKCgojIyMjIEJ1aWxkaW5nIGZyb20gU291cmNlcwoKWW91IGNhbiBhbHNvIGJ1aWxkIENoZXJyeWJvbWIgZnJvbSBzb3VyY2VzIGJ5IGNsb25pbmcgdGhpcyByZXBvLCBhbmQgYnVpbGRpbmcgaXQgdXNpbmcgY2FyZ28uCgpgYGAKCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYmxzdC1zZWN1cml0eS9jaGVycnlib21iICYmIGNkIGNoZXJyeWJvbWIKCmBgYApUaGUgbWFpbiBicmFuY2gncyBDYXJnby50b21sIGZpbGUgdXNlcyBgY2hlcnJ5Ym9tYi1lbmdpbmVgIGFuZCBgY2hlcnJ5Ym9tYi1vYXNgIGZyb20gY3JhdGVzLmlvLiAKCmlmIHlvdSB3YW50IGJ1aWxkIHRob3NlIGZyb20gc291cmNlIHRvbywgeW91IGNhbiBjaGFuZ2UgdGhlIGZvbGxvd2luZyBmaWxlczoKCihyZW1vdmUgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCByZXBsYWNlIHdpdGggdGhlIHBhdGggdG8gdGhlIGxvY2FsIHJlcG8pCgoKCmBgYApjaGVycnlib21iL0NhcmdvLnRvbWw6CmNoZXJyeWJvbWItZW5naW5lID0gdmVyc2lvbiA9PiB7IHBhdGggPSAiY2hlcnJ5Ym9tYi1lbmdpbmUiIH0KYGBgCiAKYGBgCmNoZXJyeWJvbWIvY2hlcnJ5Ym9tYi1lbmdpbmUvQ2FyZ28udG9tbDoKY2hlcnJ5Ym9tYi1vYXMgPSB2ZXJzaW9uID0+IHsgcGF0aCA9ICIuLi9jaGVycnlib21iLW9hcyIgfQpgYGAKCmBgYApjYXJnbyBidWlsZCAtLXJlbGVhc2UKc3VkbyBtdiAuL3RhcmdldC9yZWxlYXNlL2NoZXJyeWJvbWIgL3Vzci9sb2NhbC9iaW4gIyBvciBhbnkgb3RoZXIgZGlyZWN0b3J5IGluIHlvdXIgUEFUSApgYGAKICAKCiAgCiMjIyBQcm9maWxlIAogClByb2ZpbGVzIGFsbG93IHlvdSB0byBjaG9vc2UgdGhlIHR5cGUgb2YgY2hlY2sgeW91IHdhbnQgdG8gdXNlLgpgYGAKLSBpbmZvOiBvbmx5IGdlbmVyYXRlcyBwYXJhbSBhbmQgZW5kcG9pbnQgdGFibGVzCi0gbm9ybWFsOiAgYm90aCBhY3RpdmUgYW5kIHBhc3NpdmUKLSBpbnRydXNpdmU6IGFjdGl2ZSBhbmQgaW50cnVzaXZlIFtpbiBkZXZlbG9wbWVudF0KLSBwYXNzaXZlOiBvbmx5IHBhc3NpdmUgdGVzdHMKLSBmdWxsOiBhbGwgdGhlIG9wdGlvbnMKYGBgCgojIyMgQ29uZmlnIAoKCgpXaXRoIGEgY29uZmlndXJhdGlvbiBmaWxlLCB5b3UgY2FuIGVhc2lseSBlZGl0LCB2aWV3LCBDaGVycnlib21iJ3Mgb3B0aW9ucy4KVGhlIGNvbmZpZyBmaWxlIGFsbG93cyB5b3UgdG8gc2V0IHRoZSBydW5uaW5nIHByb2ZpbGUsIGxvY2F0aW9uIG9mIHRoZSBvYXMgZmlsZSwgdGhlIHZlcmJvc2l0eSBhbmQgaWdub3JlIHRoZSBUTFMgZXJyb3IuCgpDb25maWcgYWxzbyBhbGxvd3MgeW91IHRvIG92ZXJyaWRlIHRoZSBzZXJ2ZXIncyBVUkwgd2l0aCBhbiBhcnJheSBvZiBzZXJ2ZXJzLCBhbmQgYWRkIHNlY3VyaXR5IHRvIHRoZSByZXF1ZXN0IFtpbiBkZXZlbG9wbWVudF0uIAoKTm90aWNlIHRoYXQgQ0xJIGFyZ3VtZW50cyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSBjb25maWcgb3B0aW9ucyBpZiBib3RoIGFyZSBzZXQuCgpZb3UgY2FuIGFsc28gYWRkIG9yIHJlbW92ZSBjaGVja3MgZnJvbSBhIHByb2ZpbGUgdXNpbmcgYHBhc3NpdmUvYWN0aXZlLWluY2x1ZGUvZXhjbHVkZWAuIFtpbiBkZXZlbG9wbWVudF0KCmBgYApjaGVycnlib21iIC0tY29uZmlnICA8Q09ORklHX0ZJTEU+CmBgYAoKClN0cnVjdHVyZSBvZiBjb25maWcgZmlsZToKYGBgCnsKImZpbGUiIDogIm9wZW4tYXBpLmpzb24iLAoidmVyYm9zaXR5IiA6ICJub3JtYWwsIAoicHJvZmlsZSIgOiAiICJOb3JtYWwiLAoicGFzc2l2ZV9pbmNsdWRlIiA6IFsiY2hlY2sxLCBjaGVja3MyIl0sCiJhY3RpdmVfaW5jbHVkZSI6IFsiY2hlY2szLCBjaGVjazQiXSwKInNlcnZlcnNfb3ZlcnJpZGUiICwgWyJodHRwOi8vc2VydmVyLyJdLAoic2VjdXJpdHkiOiAgW3sKICAgICJhdXRoX3R5cGUiOiAiQmFzaWMiLAogICAgImF1dGhfdmFsdWUiIDogdG9rZW5fdmFsdWUsCiAgICAiYXV0aF9zY29wZSIgOiBzY29wZV9uYW1lCiAgICB9XSwKImlnbm9yZV90bHNfZXJyb3JzIiA6IHRydWUsIAoibm9fY29sb3IiIDogZmFsc2UsCn0KYGBgCgoKCiMgVXNhZ2UKCkFmdGVyIGluc3RhbGxpbmcsIHZlcmlmeSBpdCdzIHdvcmtpbmcgYnkgcnVubmluZwoKYGBgCmNoZXJyeWJvbWIgLS12ZXJzaW9uCgpgYGAKCiMjIyBPcGVuQVBJIHNwZWNpZmljYXRpb24KCgpgYGAgY2hlcnJ5Ym9tYiAtLWZpbGUgPFBBVEg+IC0tcHJvZmlsZSBwYXNzaXZlIGBgYAoKUGFzc2l2ZSBPdXRwdXQgZXhhbXBsZToKCiFbcGFzc2l2ZV9vdXRwdXRdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ibHN0LXNlY3VyaXR5L2NoZXJyeWJvbWIvbWFpbi9pbWFnZXMvcGFzc2l2ZTFfMC5wbmcpCgoKIyMjIEdlbmVyYXRlIEluZm8gVGFibGUKCgpgYGAKY2hlcnJ5Ym9tYiAtLWZpbGUgPFBBVEg+IC0tcHJvZmlsZSBpbmZvCgpgYGAKUGFyYW1ldGVyIHRhYmxlIG91dHB1dDoKCiAgIVtwYXJhbWV0ZXJfb3V0cHV0XShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmxzdC1zZWN1cml0eS9jaGVycnlib21iL21haW4vaW1hZ2VzL3BhcmFtX3YxLnBuZykKCkVuZHBvaW50IHRhYmxlIG91dHB1dDoKCiAgIVtlbmRwb2ludF9vdXRwdXRdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ibHN0LXNlY3VyaXR5L2NoZXJyeWJvbWIvbWFpbi9pbWFnZXMvZW5kcG9pbnRfdjEucG5nKQoKCgoKIyDwn427IEludGVncmF0aW9uCgogIAoKWW91IGNhbiBlbWJlZCBpdCBpbnRvIHlvdXIgQ0kgcGlwZWxpbmUsIGFuZCBJZiB5b3UgcGxhbiBvbiBkb2luZyB0aGF0IEkgd291bGQgcmVjb21tZW5kIHRoYXQgeW91IGdvIHRvIG91ciBbd2Vic2l0ZV0oaHR0cHM6Ly93d3cuYmxzdHNlY3VyaXR5LmNvbS8/cHJvbW89YmxzdCZkb21haW49Z2l0aHViX2ludGVncmF0aW9uX2xpbmspLCBzaWduIHVwLCBnbyB0aHJvdWdoIHRoZSBbQ0kgcGlwZWxpbmUgaW50ZWdyYXRpb24gd2l6YXJkXShodHRwczovL3d3dy5ibHN0c2VjdXJpdHkuY29tL0xvYWRpbmc/cmVkaXJlY3Q9L0NJQ0QmcHJvbW89YmxzdCZkb21haW49Z2l0aHViX3dpel9pbnRlZ3JhdGlvbiksIGFuZCBjb3B5IHRoZSBncm9vdnkvR2l0SHViIGFjdGlvbnMgc25pcHBldCBidWlsdCBmb3IgeW91LgoKPC9icj5FeGFtcGxlOgoKIVtDSSBwaXBlbGluZSBidWlsZGVyIG91dHB1dF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Jsc3Qtc2VjdXJpdHkvY2hlcnJ5Ym9tYi9tYWluL2ltYWdlcy9jaV9vdXRwdXQucG5nKQoKIyDwn5KqIFN1cHBvcnQKCiAgCgojIyMgR2V0IGhlbHAKCklmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMsIHBsZWFzZSBzZW5kIHVzIGEgbWVzc2FnZSB0byBbc3VwcG9ydEBibHN0c2VjdXJpdHkuY29tXShtYWlsdG86c3VwcG9ydEBibHN0c2VjdXJpdHkuY29tKSBvciBhc2sgdXMgb24gb3VyIFtkaXNjb3JkIHNlcnZlcl0oaHR0cHM6Ly9kaXNjb3JkLmdnL1dkSGh2NERxd1UpLgoKCllvdSBhcmUgYWxzbyB3ZWxjb21lIHRvIG9wZW4gYW4gSXNzdWUgaGVyZSBvbiBHaXRIdWIuCgogIAoKCg== readmeEtag: '"b7222122f742b7925a0816939b9280c48b639985"' readmeLastModified: Wed, 29 Nov 2023 18:10:43 GMT repositoryId: 428941557 description: >- Stop half-done APIs! Cherrybomb is a CLI tool that helps you avoid undefined user behaviour by auditing your API specifications, validating them and running API security tests. created: '2021-11-17T07:02:22Z' updated: '2024-09-06T03:01:34Z' language: Rust archived: false stars: 1108 watchers: 12 forks: 78 owner: blst-security logo: https://avatars.githubusercontent.com/u/54233087?v=4 license: Apache-2.0 repoEtag: '"26ea5b2ea7a56f36ee70d747bb84da38a3cb25fe248b1afcad44e3c6359f3e78"' repoLastModified: Fri, 06 Sep 2024 03:01:34 GMT foundInMaster: true name: Cherrybomb category: Description Validators language: Rust link: https://www.blstsecurity.com/cherrybomb source_description: >- A CLI tool that helps avoid undefined user behaviour by validating your API descriptions, to make sure key parts are not missing or vague. v2: false v3_1: true id: ddbbcb536a870b27a61df0b41529385d - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/ignatandrei/blocklyautomation v3: true repositoryMetadata: base64Readme: >- IyBWaXN1YWxBUEkgLSBBZGQgKCB0byB5b3VyIHwgIGluc2lkZSB5b3VyICkgYXBwbGljYXRpb24gTG93Q29kZSBNYWNyb3MgZm9yIFlPVVIgQVBJIC8gSFRUUCBDYWxscwoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgpbIVtBbGwgQ29udHJpYnV0b3JzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2FsbF9jb250cmlidXRvcnMtMi1vcmFuZ2Uuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oI2NvbnRyaWJ1dG9ycy0pCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpFTkQgLS0+CgpCbG9ja2x5IEF1dG9tYXRpb24gOiAgaXMgYSB0b29sIGZvciBMb3dDb2RlIC8gYXV0b21hdGlvbiBvZiBzaXRlcyAoU3dhZ2dlciAvIE9wZW5BUEkgLyBSUEEgKSBhbmQgUEMgbWFkZSBvZiBCbG9ja2x5LiAKCiMgSG93IHRvIHVzZSBpZiB5b3UgYXJlCgojIyBhIGJhY2tlbmQgZGV2ZWxvcGVyIHdpdGggYW4gUkVTVCAvIE9wZW5BUEkgLyBTd2FnZ2VyIGVuYWJsZWQgc2l0ZSBhbmQgSSB3YW50IHRvIHNob3cgdGhlIHVzZSBvZiBteSBzaXRlCgoKVXNlIHRoZSBhcHByb3BpYXRlIHBhY2thZ2U6IAoKIyMjIFtOZXRDb3JlXShodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvbmV0Y29yZWJsb2NrbHkvKSAgLCBtYWRlIGJ5IEFuZHJlaSBJZ25hdAoKLk5FVCBDb3JlOiBbIVtOdWdldF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC9kdC9OZXRDb3JlMkJsb2NrbHkpXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV0Q29yZTJCbG9ja2x5LykKCk1vcmUgZGV0YWlscyBhdCBodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvbmV0Y29yZWJsb2NrbHkvCgoKIyMjIFtKYXZhXShodHRwczovL2dpdGh1Yi5jb20vZWNpdWNhL2Jsb2NrbHktYXV0b21hdGlvbi1zdGFydGVyLXdlYm12Yy11aSkgLCBGdWxsIGV4YW1wbGUgYnkgRW1hbnVlbCBDaXVjYSAKCkphdmEgU3ByaW5nIDogWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3YvaW8uZ2l0aHViLmVjaXVjYS5ibG9ja2x5L2Jsb2NrbHktYXV0b21hdGlvbi1zdGFydGVyLXdlYm12Yy11aSldKGh0dHBzOi8vY2VudHJhbC5zb25hdHlwZS5jb20vYXJ0aWZhY3QvaW8uZ2l0aHViLmVjaXVjYS5ibG9ja2x5L2Jsb2NrbHktYXV0b21hdGlvbi1zdGFydGVyLXdlYm12Yy11aS8pCgpUaGUgTWF2ZW4gaXMgaHR0cHM6Ly9jZW50cmFsLnNvbmF0eXBlLmNvbS9hcnRpZmFjdC9pby5naXRodWIuZWNpdWNhLmJsb2NrbHkvYmxvY2tseS1hdXRvbWF0aW9uLXN0YXJ0ZXItd2VibXZjLXVpLwoKVGhlIHJlcG8gd2l0aCBleGFtcGxlIGlzIGh0dHBzOi8vZ2l0aHViLmNvbS9lY2l1Y2EvYmxvY2tseS1hdXRvbWF0aW9uLXN0YXJ0ZXItd2VibXZjLXVpIAoKCiMjIyBbTm9kZV0oaHR0cHM6Ly9naXRodWIuY29tL2lnbmF0YW5kcmVpL0Jsb2NrbHlBdXRvbWF0aW9uL3dpa2kvbm9kZSkgLCBtYWRlIGJ5IEFuZHJlaSBJZ25hdAoKTm9kZTogWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L25vZGUyLWJsb2NrbHkpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ub2RlLWJsb2NrbHk/KQoKTW9yZSBkZXRhaWxzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi93aWtpL25vZGUKCiMjIyBbUEhQXShodHRwczovL2dpdGh1Yi5jb20vVHluYWVsL2xhcmF2ZWwtYmxvY2tseS1hdXRvbWF0aW9uKSAsIG1hZGUgYnkgQ2Fyb2wgUGVsdQoKCgpQYWNrYWdpc3QgOiBbIVtwaHBdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3YvY2Fyb2xwZWx1L2Jsb2NrbHktYXV0b21hdGlvbildKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9jYXJvbHBlbHUvYmxvY2tseS1hdXRvbWF0aW9uKQoKTW9yZSBkZXRhaWxzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9UeW5hZWwvbGFyYXZlbC1ibG9ja2x5LWF1dG9tYXRpb24KCgoKCiMjIERvY2tlciBFeHRlbnNpb24KCmh0dHBzOi8vb3Blbi5kb2NrZXIuY29tL2V4dGVuc2lvbnMvbWFya2V0cGxhY2U/ZXh0ZW5zaW9uSWQ9aWduYXRhbmRyZWkvYmxvY2tseS1hdXRvbWF0aW9uCgoKIyMjIE1hbnVhbAoKRG93bmxvYWQgdGhlIEhUTUwgcmVsZWFzZSBbQmxvY2tseUF1dG9tYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvcmVsZWFzZUJsb2NrbHlBdXRvbWF0aW9uLnppcC8pIC4KCkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSB3aWtpIGZpbGUuICAKCiMjIyMgW01hbnVhbCBKYXZhXShodHRwczovL2dpdGh1Yi5jb20vY29zbWlucG9wZXNjdTE0L21hdGgtb3BlcmF0aW9ucy1zd2FnZ2VyKSAsIE1hbnVhbCBleGFtcGxlIGJ5IENvc21pbiBQb3Blc2N1IAoKRXhhbXBsZSBieSBDb3NtaW4gUG9wZXNjdSBhdCBodHRwczovL2dpdGh1Yi5jb20vY29zbWlucG9wZXNjdTE0L21hdGgtb3BlcmF0aW9ucy1zd2FnZ2VyCgoKCiMjIGEgZnJvbnRlbmQgIGRldmVsb3BlciB0aGF0IGZpbmRzIGEgYnVnIGluIGEgUkVTVCAvIE9wZW5BUEkgLyBTd2FnZ2VyIGVuYWJsZWQgc2l0ZQoKWW91IHdhbnQgdG8gc2hvdyB0byB0aGUgYmFja2VuZCBkZXZlbG9wZXIgaG93IHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSAuCgpJZiB5b3UgY29udHJvbCB0aGUgc2l0ZSAsIHRoZW4geW91IGNhbiB1c2UgdGhlIFtCbG9ja2x5QXV0b21hdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2lnbmF0YW5kcmVpL0Jsb2NrbHlBdXRvbWF0aW9uL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9yZWxlYXNlQmxvY2tseUF1dG9tYXRpb24uemlwLykgdG8gcmVwcm9kdWNlIHRoZSBwcm9ibGVtLgoKRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIHdpa2kgZmlsZS4gIAoKSWYgeW91IGRvIG5vdCBjb250cm9sIHRoZSBzaXRlLCB0aGVuIGluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIGFuZCB0aGVuIHVzZSBpdCB0byByZXByb2R1Y2UgdGhlIHByb2JsZW0uICggd2lraSBzaXRlIGNvbWluZyB3aXRoIGRldGFpbHMpIAoKIyMgYSB3ZWIgc2l0ZSBhcHBsaWNhdGlvbiB0ZXN0ZXIKSWYgeW91IGNvbnRyb2wgdGhlIHNpdGUgLCB0aGVuIGNhbiB1c2UgdGhlIGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvcmVsZWFzZUJsb2NrbHlBdXRvbWF0aW9uLnppcC8gIGFuZCB0aGVuIHVzZSBpdCB0byByZXByb2R1Y2UgdGhlIHByb2JsZW0uICggd2lraSBzaXRlIGNvbWluZyB3aXRoIGRldGFpbHMpIC4KCklmIHlvdSBkb2VzIG5vdCBjb250cm9sIHRoZSBzaXRlLCB0aGVuIGluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIGFuZCB0aGVuIHVzZSBpdCB0byBtYWtlIHRlc3QgY2FzZXMuICggd2lraSBzaXRlIGNvbWluZyB3aXRoIGRldGFpbHMpIAoKCiMjIFtEb2NrZXIgRXh0ZW5zaW9uXShodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vd2lraS9Eb2NrZXJFeHRlbnNpb24pCgpQbGVhc2Ugc2VlIFtEb2NrZXIgRXh0ZW5zaW9uXShodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vd2lraS9Eb2NrZXJFeHRlbnNpb24pClNlZSAKIyMgbm90IGEgcHJvZ3JhbW1lci4gIEkgd2FudCB0byBhdXRvbWF0ZS9nYXRoZXIgZGF0YSBmcm9tIHNldmVyYWwgc2l0ZXMgKCBwdWJsaWMgb3IgcHJpdmF0ZSApCgpZb3Ugd2FudCB0byBvYnRhaW4gc29tZSBkYXRhIGZyb20gdGhlIHdlYi4gRm9yIGV4YW1wbGUsIGV4dHJhY3QgdGhlIGV4Y2hhbmdlIGJldHdlZW4gRVVSIC8gUk9OIC4KCkluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIC4KCkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSB3aWtpIGZpbGUuCgoKIyMgbm90IGEgcHJvZ3JhbW1lciBhbmRJIHdhbnQgdG8gYXV0b21hdGUgdGhpbmdzIG9uIG15IFBDLiAKCllvdSB3YW50IHRvIG9idGFpbiBzb21lIGRhdGEgZnJvbSB5b3VyIFBDLiBGb3IgZXhhbXBsZSwgZXh0cmFjdCBhbmQgZXhwb3J0IHRvIENTViB0aGUgQ2hyb21lIEJvb2ttYXJrcy4KCkluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIC4KCkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSB3aWtpIGZpbGUuCgoKCiMjIFN1Z2dlc3QgYSBwdWJsaWMgQVBJIGZvciBCbG9ja2x5QXV0b21hdGlvbgoKSWYgeW91IGhhdmUgYSBwdWJsaWMgQVBJL3NpdGUgdGhhdCB5b3Ugd2FudCB0byBhdXRvbWF0ZSwgcGxlYXNlIHNlbmQgZmlsZSBhbiBpc3N1ZSBhdCBodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vaXNzdWVzIAoKCiMjIEhvdyB0byBzZWUgYSBwcmV2aWV3CgoKVG8gc2VlIHRoZSB3aG9sZSBwb3RlbnRpYWwgLCBwbGVhc2UgZ28gdG8gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIGFuZCBjbGljayBMYXVuY2ggLgoKSWYgeW91IHdhbnQgdG8gc2VlIHNvbWUgd2ViIERlbW8gLCBwbGVhc2UgZ28gdG8gaHR0cHM6Ly9pZ25hdGFuZHJlaS5naXRodWIuaW8vQmxvY2tseUF1dG9tYXRpb24vIGFuZCB0ZXN0IHZhcmlvdXMgSFRUUCByZXF1ZXN0LCBTd2FnZ2VycyBhbmQgbW9yZQoKIyMgSG93IHRvIGluc3RhbGwgb24geW91ciBQQwoKU2VlIFtyZWxlYXNlcyB0YWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcykKCllvdSBjYW4gZmluZCB0aGUgCgoxLiBBbmd1bGFyIHNpdGUgLCByZWFkeSB0byBiZSBkZXBsb3llZCB0byBhbnkgc2VydmVyCjIuIElJUyBzaXRlICAgLCByZWFkeSB0byBiZSBkZXBsb3llZCBvbiBJSVMKMy4gQSAuTkVUIENvcmUgc2l0ZSwgcmVhZHkgdG8gYmUgZGVwbG95ZWQgb24gTGludXggb3IgV2luZG93cywgc3RhbmRhbG9uZSAoIGFzIGEgc2VydmljZSApCgojIFlvdSBoYXZlIGEgc2l0ZSB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyLiBXaGF0IHNob3VsZCBJIGRvICA/CgpEb3dubG9hZCBmcm9tIFtyZWxlYXNlcyB0YWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcykgdGhlIEFuZ3VsYXIgc2l0ZS4gUHV0IGluZGV4Lmh0bWwgYW5kIGFsbCBvdGhlciBmaWxlcyBpbnRvIGEgQkxvY2tseUF1dG9tYXRpb24gZm9sZGVyIGluc2lkZSB5b3VyIHd3d3Jvb3QgIGZvbGRlciAoIG9yIGluIHlvdXIgcHJvamVjdCByb290ICkgYW5kIHlvdSBhcmUgZ29vZCB0byBnby4KCjEuIEl0IGNvdWxkIGJlIGFuIGlkZWEgdG8gbWFwIGV2ZXJ5dGhpbmcgdGhhdCBzdGFydCB3aXRoIC9CbG9ja2x5QXV0b21hdGlvbiB0byAvQmxvY2tseUF1dG9tYXRpb24vaW5kZXguaHRtbCAtIHNlZSBzcmNcTG9hZGVyc1xTaW1wbGVTaXRlIHRvIGhhdmUgYW4gQyMgZXhhbXBsZSAKICAgCjIuIE1vZGlmeSBhc3NldHMvc2V0dGluZ3MuanNvbiB0byBjaGFuZ2UgdGhlIG5hbWUgYW5kIHRoZSBzdGFydGluZyBibG9ja3MKICAgCjMuIE1vZGlmeSBhc3NldHMvbG9hZEF0U3RhcnR1cC9zd2FnZ2Vycy5qc29uIHRvIGFkZCB5b3VyIHN3YWdnZXJzCgo0LiBNb2RpZnkgYXNzZXRzL3Nob3dVc2FnZS9kZW1vQmxvY2tzL2FsbC50eHQgdG8gYWRkIHlvdXIgZGVtbyBmb3IgdGhlIGJsb2NrcyAuIAogICAoIFlvdSBjYW4gY29uc3RydWN0IGFuZCB0aGVuIGRvd25sb2FkIGFuZCBzYXZlIGFzIGZpbGVzKQoKNS4gU2VuZCBtZSBhbiBlbWFpbCB0byBoZWxwIHlvdSAgaWYgc29tZXRoaW5nICBpcyBub3Qgd29ya2luZy4KIyMgSG93IHRvIGN1c3RvbWl6ZQoKVG8gY3VzdG9taXplIHRoZSB0aXRsZSAsIGludHJvZHVjdGlvbiBhbmQgc3RhcnQgYmxvY2tzICwgc2VlIGFzc2V0cy9zZXR0aW5ncy5qc29uCgpUbyBsb2FkIHN3YWdnZXJzIGF0IHN0YXJ0dXAsIHNlZSAgYXNzZXRzL2xvYWRBdFN0YXJ0dXAvc3dhZ2dlcnMuanNvbgoKVG8gY3VzdG9taXplIGRlbW8gYmxvY2tzLGRvd25sb2FkIHlvdXIgYmxvY2tzLCBwdXQgdGhlIHR4dCBmaWxlIGluICBhc3NldHMvc2hvd1VzYWdlL2RlbW9CbG9ja3MvIGFuZCBtb2RpZnkgYXNzZXRzL3Nob3dVc2FnZS9kZW1vQmxvY2tzL2FsbC50eHQKCiMjICBIb3cgdG8gY29udHJpYnV0ZQoKSWYgeW91IGFyZSBhIGJlZ2lubmVyIHRvIGJsb2NrbHksIHNlZSAKCmh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBb3BlbitsYWJlbCUzQSUyMmdvb2QrZmlyc3QraXNzdWUlMjIKCiFbR2l0SHViIGlzc3VlcyBieS1sYWJlbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2lnbmF0YW5kcmVpL0Jsb2NrbHlBdXRvbWF0aW9uL2dvb2QlMjBmaXJzdCUyMGlzc3VlKQoKWW91IHdpbGwgYmUgbWVudGlvbmVkIGJlbG93IDstKQoKCiMjIENvbnRyaWJ1dG9ycyDinKgKClRoYW5rcyBnb2VzIHRvIHRoZXNlIHdvbmRlcmZ1bCBwZW9wbGUgKFtlbW9qaSBrZXldKGh0dHBzOi8vYWxsY29udHJpYnV0b3JzLm9yZy9kb2NzL2VuL2Vtb2ppLWtleSkpOgoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vYWVueXgtZGVzaWducy5jb20vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzMzMTk2MzQxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPkJvZ2RhbiBCb2JlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZGVzaWduLWFyZWFsc2hhZG93IiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vY29tbWl0cz9hdXRob3I9YXJlYWxzaGFkb3ciIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Fkcmlhbi1iYWR1bGVzY3UiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDk0OTA5NDY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+QWRyaWFuIEJhZHVsZXNjdTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2V4YW1wbGUtYWRyaWFuLWJhZHVsZXNjdSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lIQ== readmeEtag: '"0b8a3b0a75a8247f4625843bda3826f655a7eb35"' readmeLastModified: Tue, 23 Jul 2024 17:48:16 GMT repositoryId: 427082891 description: >- VisualAPI - LowCode Macros for YOUR API / HTTP Calls : https://visualapi.azurewebsites.net/ created: '2021-11-11T17:14:47Z' updated: '2024-08-27T09:03:57Z' language: JavaScript archived: false stars: 36 watchers: 6 forks: 7 owner: ignatandrei logo: https://avatars.githubusercontent.com/u/153982?v=4 license: MIT repoEtag: '"b83c817fd7ce0c41182cbfc8159c13ad3c426aa71781cfe0a2be0c346fd3d8af"' repoLastModified: Tue, 27 Aug 2024 09:03:57 GMT foundInMaster: true category: - Code Generators - SDK - Documentation - Testing id: 44b9d7b1e68471c05b67c3ff6c02172a name: BlocklyAutomation link: https://ignatandrei.github.io/BlocklyAutomation/ language: - Javascript - .NET source_description: >- Input any OpenAPI document to have generated Blocks in Blockly form to test and generate documentation. v3_1: true - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/embraser01/typoas v3: true repositoryMetadata: base64Readme: >- IyBUeXBvYXMKCiFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0B0eXBvYXMvY2xpP2xhYmVsPWNsaSU0MG5wbSkgIAohW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AdHlwb2FzL2dlbmVyYXRvcj9sYWJlbD1nZW5lcmF0b3IlNDBucG0pICAKIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHR5cG9hcy9ydW50aW1lP2xhYmVsPXJ1bnRpbWUlNDBucG0pICAKIVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvZW1icmFzZXIwMS90eXBvYXMpICAKIVtucG0gYnVuZGxlIHNpemVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYnVuZGxlcGhvYmlhL21pbnppcC9AdHlwb2FzL3J1bnRpbWUpCgpUeXBvYXMgaXMgYW4gT3BlbkFQSSAzLlggZ2VuZXJhdG9yIGZvciBUeXBlc2NyaXB0LiBJdCdzIGluc3BpcmVkIGJ5IFtvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoLykgIApidXQgaXMgd3JpdHRlbiBpbiBUeXBlc2NyaXB0IGZvciBUeXBlc2NyaXB0LiBUaGUgZ2VuZXJhdG9yIHVzZXMgdGhlIFR5cGVzY3JpcHQgQVNUIHRvIGdlbmVyYXRlIGNvZGUgaW5zdGVhZCBvbiByZWxheWluZyAgCm9uIHRlbXBsYXRlcyB3aGljaCBhbGxvd3MgYmV0dGVyIHNjaGVtYXMgZGVmaW5pdGlvbnMgYW5kIG90aGVyIGNvb2wgc3R1ZmYuCgpNYWluIGZlYXR1cmVzIGFyZToKCi0gRnVsbHkgdHlwZWQgYW5kIGZ1bGx5IGN1c3RvbWl6YWJsZQotIFJlZmVyZW5jZXMgYCRyZWZgIGhhbmRsaW5nIChpbmNsdWRpbmcgY3ljbGljIHJlZnMpCi0gKipUcmVlIFNoYWtpbmcqKiBvdXQgb2YgdGhlIGJveAotICoqUmVhY3QgUXVlcnkqKiBpbnRlZ3JhdGlvbgotIFN1cHBvcnQgZm9yIGBhbGxPZmAsIGBvbmVPZmAgYW5kIGBhbnlPZmAgc2NoZW1hcy4KLSBBdXRvbWF0aWNhbGx5IGNvbnZlcnQgYGZvcm1hdDogJ2RhdGUtdGltZSdgIHRvIEpTIGBEYXRlYAotIEhhbmRsZSAqKkFQSSBLZXkqKiwgKipIVFRQIENvbmZpZyoqIGFuZCAqKk9BdXRoMioqPHN1cD4xPC9zdXA+IGF1dGggc2VjdXJpdHkgc2NoZW1lcwotIEpTRG9jIGZvciBzY2hlbWFzIGFuZCBvcGVyYXRpb25zCi0gVXNlcyBgZmV0Y2hgIGFwaSAoY2FuIGJlIGN1c3RvbWl6ZWQpCi0gTm9uIEpTT04gY29udGVudCB0eXBlIHN1cHBvcnQKLSBTbWFsbCBidW5kbGUgc2l6ZQotIEFuZCBtb3JlLi4uCgo+IDxzdXA+MTwvc3VwPjogT0F1dGgyIHNjaGVtZSBkb2VzIG5vdCBoYW5kbGUgZmxvd3MgdG8gcmV0cmlldmUgYW4gYGFjY2Vzc1Rva2VuYC4gIAo+IFlvdSBuZWVkIHRvIHByb3ZpZGUgeW91ciBvd24gYGFjY2Vzc1Rva2VuYCB0aHJvdWdoIHRoZSBgcHJvdmlkZXIuZ2V0Q29uZmlnKClgIGZ1bmN0aW9uLgoKVGhlIHByb2plY3QgaXMgc3BsaXQgaW50byA0IHBhY2thZ2VzOgoKLSBbYEB0eXBvYXMvZ2VuZXJhdG9yYF0oLi9wYWNrYWdlcy90eXBvYXMtZ2VuZXJhdG9yKSBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBBUEkgc3BlY2lmaWMgY29kZS4KLSBbYEB0eXBvYXMvY2xpYF0oLi9wYWNrYWdlcy90eXBvYXMtY2xpKSBpcyBhIENMSSBlbnRyeSBwb2ludCBidWlsdCBvbiB0b3Agb2YgYEB0eXBvYXMvZ2VuZXJhdG9yYC4KLSBbYEB0eXBvYXMvcnVudGltZWBdKC4vcGFja2FnZXMvdHlwb2FzLXJ1bnRpbWUpIGlzIHRoZSBwYWNrYWdlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZS4KLSBbYEB0eXBvYXMvcmVhY3QtcXVlcnlgXSguL3BhY2thZ2VzL3R5cG9hcy1yZWFjdC1xdWVyeSkgaW50ZWdyYXRlcyBfVHlwb2FzXyB3aXRoIFtSZWFjdCBRdWVyeV0oaHR0cHM6Ly90YW5zdGFjay5jb20vcXVlcnkvbGF0ZXN0KS4KCi0tLQoKLSBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQotIFtVc2FnZV0oI3VzYWdlKQogIC0gW1VzZSB0aGUgZ2VuZXJhdG9yIGZyb20gdGhlIENMSV0oI3VzZS10aGUtZ2VuZXJhdG9yLWZyb20tdGhlLWNsaSkKICAtIFtVc2UgdGhlIGdlbmVyYXRvciBmcm9tIHRoZSBBUEldKCN1c2UtdGhlLWdlbmVyYXRvci1mcm9tLXRoZS1hcGkpCiAgLSBbVXNlIHRoZSBnZW5lcmF0ZWQgY29kZV0oI3VzZS10aGUtZ2VuZXJhdGVkLWNvZGUpCiAgICAtIFtDdXN0b21pemUgc2VydmVyIGNvbmZpZ3VyYXRpb25dKCNjdXN0b21pemUtc2VydmVyLWNvbmZpZ3VyYXRpb24pCiAgICAtIFtDdXN0b21pemUgZmV0Y2ggaW1wbGVtZW50YXRpb25dKCNjdXN0b21pemUtZmV0Y2gtaW1wbGVtZW50YXRpb24pCiAgICAtIFtIYW5kbGluZyBhdXRoZW50aWZpY2F0aW9uXSgjaGFuZGxpbmctYXV0aGVudGlmaWNhdGlvbikKICAgIC0gW0N1c3RvbWl6aW5nIHRoZSBzZXJpYWxpemF0aW9uXSgjY3VzdG9taXppbmctdGhlLXNlcmlhbGl6YXRpb24pCiAgLSBbVXNpbmcgd2l0aCBSZWFjdCBRdWVyeV0oI3VzaW5nLXdpdGgtcmVhY3QtcXVlcnkpCi0gW0V4YW1wbGVzXSgjZXhhbXBsZXMpCi0gW05vdGVzXSgjbm90ZXMpCiAgLSBbRXh0ZXJuYWwgcmVmZXJlbmNlc10oI2V4dGVybmFsLXJlZmVyZW5jZXMpCiAgLSBbUGFyYW1ldGVycyBzZXJpYWxpemF0aW9uXSgjcGFyYW1ldGVycy1zZXJpYWxpemF0aW9uKQogIC0gW01pZ3JhdGluZyBmcm9tIHYxIHRvIHYyXSgjbWlncmF0aW5nLWZyb20tdjEtdG8tdjIpCi0gW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKLSBbTGljZW5zZV0oI2xpY2Vuc2UpCgojIyBJbnN0YWxsYXRpb24KCkl0IHdpbGwgZ2VuZXJhdGUgYSBzaW5nbGUgVFMgZmlsZSBjb250YWluaW5nIGFsbCB0aGUgY29kZSBzcGVjaWZpYyB0byB0aGUgdW5kZXJseWluZyBBUEkuICAKVGhpcyBmaWxlIG9ubHkgaGFzIGEgc2luZ2xlIGRlcGVuZGVuY3kgb24gYEB0eXBvYXMvcnVudGltZWAuICAKKipZb3UgbmVlZCB0byBtYW51YWxseSoqIGFkZCBgQHR5cG9hcy9ydW50aW1lYCB0byB5b3VyIGBkZXBlbmRlbmNpZXNgLiAgCkl0IGhhbmRsZXMgY29tbW9uIHRoaW5ncyBsaWtlIHNlcmlhbGl6YXRpb24vYXV0aGVudGlmaWNhdGlvbgoKIyMgVXNhZ2UKCiMjIyBVc2UgdGhlIGdlbmVyYXRvciBmcm9tIHRoZSBDTEkKCllvdSBjYW4gZ2VuZXJhdGUgdGhlIFRTIGNsaWVudCBmcm9tIHRoZSBzcGVjIGZyb20gdGhlIGNvbW1hbmQgbGluZToKCmBgYGJhc2gKeWFybiBkbHggQHR5cG9hcy9jbGkgZ2VuZXJhdGUgLWkgbXktc3BlYy5qc29uIC1vIHNyYy9jbGllbnQudHMKbnB4IEB0eXBvYXMvY2xpIGdlbmVyYXRlIC1pIG15LXNwZWMuanNvbiAtbyBzcmMvY2xpZW50LnRzCmBgYAoKSGVyZSBpcyBhIHNob3J0IGxpc3Qgb2Ygc3VwcG9ydGVkIGNvbW1hbmQgbGluZSBvcHRpb25zOgoKYGBgCiAgICAtaSwgLS1pbnB1dCBbcGF0aC91cmxdICAgICAgICAgUGF0aCBvciBVUkwgdG8gdGhlIE9wZW5BUEkgSlNPTiBzcGVjaWZpY2F0aW9uICh5YW1sL2pzb24gZm9ybWF0KQogICAgLW8sIC0tb3V0cHV0IFtwYXRoXSAgICAgICAgICAgIFBhdGggd2hlcmUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBUUyBmaWxlCiAgICAtZSwtLWdlbmVyYXRlLWVudW1zICAgICAgICAgICAgR2VuZXJhdGUgZW51bXMgaW5zdGVhZCBvZiBsaXRlcmFsIHN0cmluZyB0eXBlcyB3aGVyZSBwb3NzaWJsZQogICAgLXAsLS1wcmV0dGllciAgICAgICAgICAgICAgICAgIElmIHNldCwgdGhlIGdlbmVyYXRlZCBmaWxlIHdpbGwgYmUgZm9ybWF0dGVkIHdpdGggUHJldHRpZXIKICAgIC1yLC0tZnVsbC1yZXNwb25zZS1tb2RlICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQsIGdlbmVyYXRlIGZ1bmN0aW9ucyB0aGF0IG9ubHkgdGhyb3dzIG9uIG5ldHdvcmsgZXJyb3JzLCBjYW4gYmUgZGlzYWJsZWQgdXNpbmcgLS1uby1mdWxsLXJlc3BvbnNlLW1vZGUKICAgIC0tanMtZG9jLCAtLW5vLWpzLWRvYyAgICAgICAgICBXaGV0aGVyIHRvIGFkZCBKUyBEb2MgdG8gdGhlIGdlbmVyYXRlZCBjb2RlIChkZWZhdWx0OiB0cnVlKQogICAgLS13cmFwLWxpbmVzLWF0ICAgICAgICAgICAgICAgIERlZmluZSBhIG1heGltdW0gd2lkdGggZm9yIEpTIERvYyBjb21tZW50cywgMCB0byBkaXNhYmxlIChkZWZhdWx0OiAxMjApCiAgICAtLW9ubHktdHlwZXMgICAgICAgICAgICAgICAgICAgVXNlIGl0IHRvIG9ubHkgZ2VuZXJhdGUgdHlwZXMgaW4gI2NvbXBvbmVudHMvc2NoZW1hcy8KICAgIC0tbm8tZmV0Y2hlci1vcHRpb25zICAgICAgICAgICBVc2UgaXQgdG8gZGlzYWJsZSB0aGUgYWRkaXRpb25hbCBwYXJhbSBhZGRlZCB0byBldmVyeSBvcGVyYXRpb25zCiAgICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgT3V0cHV0IHRoZSB2ZXJzaW9uIG51bWJlcgogICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgaGVscCBmb3IgY29tbWFuZApgYGAKCm9yIHlvdSBjYW4gdXNlIGl0IGluIGNvZGU6CgpgYGB0cwppbXBvcnQgY2xpIGZyb20gJ0B0eXBvYXMvY2xpJzsKCmF3YWl0IGNsaS5ydW4oCiAgWwogICAgJ2dlbmVyYXRlJywKICAgICctaScsCiAgICAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dpdGh1Yi9yZXN0LWFwaS1kZXNjcmlwdGlvbi9tYWluL2Rlc2NyaXB0aW9ucy9hcGkuZ2l0aHViLmNvbS9hcGkuZ2l0aHViLmNvbS55YW1sJywKICAgICctbycsCiAgICBgLi9zcmMvZ2l0aHViLnRzYCwKICBdLAogIHsKICAgIHN0ZGluOiBwcm9jZXNzLnN0ZGluLAogICAgc3Rkb3V0OiBwcm9jZXNzLnN0ZG91dCwKICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsCiAgfSwKKTsKYGBgCgojIyMgVXNlIHRoZSBnZW5lcmF0b3IgZnJvbSB0aGUgQVBJCgo+IFRoZSBBUEkgaXMgc3RpbGwgYXQgYW4gKiphbHBoYSoqIHN0YWdlLCBzbyBpdCBtYXkgYnJlYWsgYmV0d2VlbiBtaW5vcnMuCgpJdCB1c2VzIGB0eXBlc2NyaXB0YCBBUEkgdG8gZ2VuZXJhdGUgdXNhYmxlIGNvZGU6CgpgYGB0eXBlc2NyaXB0CmltcG9ydCB7IHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gJ2ZzJzsKaW1wb3J0IHsgY3JlYXRlUHJpbnRlciwgTmV3TGluZUtpbmQsIFNvdXJjZUZpbGUgfSBmcm9tICd0eXBlc2NyaXB0JzsKaW1wb3J0IHsgZ2VuZXJhdGVDbGllbnQsIGdldFN0cmluZ0Zyb21Tb3VyY2VGaWxlIH0gZnJvbSAnQHR5cG9hcy9nZW5lcmF0b3InOwoKY29uc3Qgc3BlY3MgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYygncGF0aC90by9naXRodWItb3BlbmFwaS5qc29uJywgJ3V0ZjgnKSk7CmNvbnN0IHNyYyA9IGdlbmVyYXRlQ2xpZW50KHNwZWNzLCB7CiAgLyogb3B0aW9ucyAqLwp9KTsKY29uc3QgZGF0YSA9IGdldFN0cmluZ0Zyb21Tb3VyY2VGaWxlKHNyYyk7Cgp3cml0ZUZpbGVTeW5jKCcuL3NyYy9jbGllbnQudHMnLCBkYXRhLCAndXRmOCcpOwpgYGAKCiMjIyBVc2UgdGhlIGdlbmVyYXRlZCBjb2RlCgpPbmNlIHRoZSBmaWxlIGlzIGdlbmVyYXRlZCB5b3UnbGwgYmUgYWJsZSB0byB1c2UgaXQgbGlrZSB0aGlzOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBTZXJ2ZXJDb25maWd1cmF0aW9uLCBvayB9IGZyb20gJ0B0eXBvYXMvcnVudGltZSc7Ci8vIENsaWVudCBnZW5lcmF0ZWQgZnJvbToKLy8geWFybiBkbHggQHR5cG9hcy9jbGkgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dpdGh1Yi9yZXN0LWFwaS1kZXNjcmlwdGlvbi9tYWluL2Rlc2NyaXB0aW9ucy9hcGkuZ2l0aHViLmNvbS9hcGkuZ2l0aHViLmNvbS55YW1sIC1vIGNsaWVudC50cwppbXBvcnQgeyBjcmVhdGVDb250ZXh0LCBwdWxsc0xpc3QgfSBmcm9tICcuL2NsaWVudCc7Cgpjb25zdCBjdHggPSBjcmVhdGVDb250ZXh0KCk7CgovLyBCeSBkZWZhdWx0LCByZXR1cm5zIGEgU3RhdHVzUmVzcG9uc2UgdGhhdCBjb250YWlucyBzdGF0dXNDb2RlLCBkYXRhIGFuZCBoZWFkZXJzLgpjb25zdCByZXMgPSBhd2FpdCBwdWxsc0xpc3QoY3R4LCB7IHJlcG86ICd0eXBvYXMnLCBvd25lcjogJ2VtYnJhc2VyMDEnIH0pOwppZiAocmVzLm9rKSB7CiAgcmVzLmRhdGEuZm9yRWFjaCgocHIpID0+IGNvbnNvbGUubG9nKHByLnRpdGxlKSk7Cn0KCi8vIEFuIGhlbHBlciBgb2tgIGZ1bmN0aW9uIGNhbiBoZWxwIHRocm93IG9uIG5vbiAyeHggc3RhdHVzIGNvZGUgYW5kIHJldHVybiB0aGUgZGF0YQovLyBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIGFuIG9wdGlvbmFsIGV4cGVjdGVkIHN0YXR1cyBjb2RlICh1c2VmdWwgd2hlbiBtdWx0aXBsZSBzdWNjZXNzIHN0YXR1cyBjb2RlIGFyZSBwb3NzaWJsZSkKY29uc3QgcHJzID0gYXdhaXQgb2soCiAgcHVsbHNMaXN0KGN0eCwgeyByZXBvOiAndHlwb2FzJywgb3duZXI6ICdlbWJyYXNlcjAxJyB9KSwKICAyMDAsCik7CmBgYAoKPiBZb3UgY2FuIGRpcmVjdGx5IGdlbmVyYXRlIGZ1bmN0aW9ucyB0aGF0IHRocm93IG9uIG5vbiAyeHggc3RhdHVzIGNvZGUgYnkgdXNpbmcgdGhlIGAtLW5vLWZ1bGwtcmVzcG9uc2UtbW9kZWAgb3B0aW9uLgo+IFRoaXMgZmVhdHVyZSBtYXkgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlIGFuZCBpc24ndCB0aGUgcmVjb21tZW5kZWQgd2F5LgoKWW91IGNhbiBjdXN0b21pemUgbXVsdGlwbGUgdGhpbmdzIGluIHRoZSBgY3JlYXRlQ29udGV4dGAgZnVuY3Rpb24uCgojIyMjIEN1c3RvbWl6ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbgoKQnkgZGVmYXVsdCwgdGhlIGBjcmVhdGVDb250ZXh0YCBmdW5jdGlvbiB3aWxsIHVzZSB0aGUgZmlyc3QgYHNlcnZlcnNgIGVudHJ5IGluIHRoZSBzcGVjLgpZb3UgY2FuIG92ZXJyaWRlIHRoZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBieSBwYXNzaW5nIGEgYFNlcnZlckNvbmZpZ3VyYXRpb25gIG9iamVjdDoKCmBgYHR5cGVzY3JpcHQKaW1wb3J0IHsgU2VydmVyQ29uZmlndXJhdGlvbiB9IGZyb20gJ0B0eXBvYXMvcnVudGltZSc7CmltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICcuL2NsaWVudCc7Cgpjb25zdCBjdHggPSBjcmVhdGVDb250ZXh0KHsKICBzZXJ2ZXI6IG5ldyBTZXJ2ZXJDb25maWd1cmF0aW9uKCdodHRwczovL3tlbnZ9LmFwaS5leGFtcGxlLmNvbScsIHsKICAgIGVudjogJ3N0YWdpbmcnLAogIH0pLAp9KTsKYGBgCgo+IFRoZSB3YXkgaXQncyBkb25lIGN1cnJlbnRseSBpcyBub3QgdGhlIGJlc3QuIEl0IHdpbGwgYmUgaW1wcm92ZWQgaW4gdGhlIGZ1dHVyZS4KCiMjIyMgQ3VzdG9taXplIGZldGNoIGltcGxlbWVudGF0aW9uCgpUaGUgZGVmYXVsdCBmZXRjaGVyIGltcGxlbWVudGF0aW9uIFt1c2VzXSguL3BhY2thZ2VzL3R5cG9hcy1ydW50aW1lL3NyYy9mZXRjaGVyL2luZGV4LnRzKSB0aGUgYGZldGNoYCBBUEkuCllvdSBjYW4gb3ZlcnJpZGUgdGhlIGZldGNoZXIgaW1wbGVtZW50YXRpb24gaWYgeW91IHdhbnQgdG8gY3VzdG9taXplIHRoaW5ncyAobGlrZSBhZGRpbmcgYSByZXRyeSBwb2xpY3ksIGhlYWRlcnMsIGV0Yy4pLgoKRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIGBheGlvc2AgaW5zdGVhZCBvZiB0aGUgYGZldGNoYCBBUEk6CgpgYGB0eXBlc2NyaXB0CmltcG9ydCBheGlvcywgeyBBeGlvc0Vycm9yLCBBeGlvc1Jlc3BvbnNlLCBNZXRob2QgfSBmcm9tICdheGlvcyc7CmltcG9ydCB7IEZldGNoZXIsIFJlcXVlc3RDb250ZXh0LCBSZXNwb25zZUNvbnRleHQgfSBmcm9tICdAdHlwb2FzL3J1bnRpbWUnOwppbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAnLi9jbGllbnQnOwoKY2xhc3MgQXhpb3NIdHRwTGlicmFyeSBpbXBsZW1lbnRzIEZldGNoZXIgewogIGFzeW5jIHNlbmQocmVxdWVzdDogUmVxdWVzdENvbnRleHQpOiBQcm9taXNlPFJlc3BvbnNlQ29udGV4dD4gewogICAgbGV0IHJlc3A6IEF4aW9zUmVzcG9uc2U7CiAgICB0cnkgewogICAgICByZXNwID0gYXdhaXQgYXhpb3MucmVxdWVzdCh7CiAgICAgICAgdXJsOiByZXF1ZXN0LmdldFVybCgpLAogICAgICAgIG1ldGhvZDogcmVxdWVzdC5nZXRIdHRwTWV0aG9kKCkgYXMgTWV0aG9kLAogICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuZ2V0SGVhZGVycygpLAogICAgICAgIGRhdGE6IHJlcXVlc3QuZ2V0Qm9keSgpLAogICAgICB9KTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgY29uc3QgZXJyID0gZSBhcyBBeGlvc0Vycm9yOwogICAgICBpZiAoIWVyci5yZXNwb25zZSkgewogICAgICAgIHRocm93IGU7CiAgICAgIH0KICAgICAgLy8gVHlwb2FzIGhhbmRsZXMgZXJyb3JzIGl0c2VsZgogICAgICByZXNwID0gZXJyLnJlc3BvbnNlOwogICAgfQoKICAgIHJldHVybiBuZXcgUmVzcG9uc2VDb250ZXh0KHJlc3Auc3RhdHVzLCByZXNwLmhlYWRlcnMsIHsKICAgICAgdGV4dDogYXN5bmMgKCkgPT4gcmVzcC5kYXRhIGFzIHN0cmluZywKICAgICAgYmluYXJ5OiBhc3luYyAoKSA9PiByZXNwLmRhdGEgYXMgQmxvYiwKICAgICAganNvbjogYXN5bmMgKCkgPT4gcmVzcC5kYXRhLAogICAgfSk7CiAgfQp9Cgpjb25zdCBjdHggPSBjcmVhdGVDb250ZXh0KHsgZmV0Y2hlcjogbmV3IEF4aW9zSHR0cExpYnJhcnkoKSB9KTsKYGBgCgo+IE5vZGUuanMgPj0gMTguMC4wIGluY2x1ZGVzIHRoZSBgZmV0Y2hgIGltcGxlbWVudGF0aW9uLCBzbyBUeXBvYXMgc2hvdWxkIHdvcmsgb3V0IG9mIHRoZSBib3guCgojIyMjIEhhbmRsaW5nIGF1dGhlbnRpZmljYXRpb24KClRoZSBgY3JlYXRlQ29udGV4dGAgZnVuY3Rpb24gY2FuIHRha2UgYW4gYGF1dGhQcm92aWRlcnNgIG9iamVjdCB0byBoYW5kbGUgYXV0aGVudGlmaWNhdGlvbi4KCkZvciBleGFtcGxlLCBmb3IgdGhlIHBldHN0b3JlIHNhbXBsZToKCmBgYHR5cGVzY3JpcHQKaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gJy4vcGV0c3RvcmUnOwoKY29uc3QgY3R4ID0gY3JlYXRlQ29udGV4dCh7CiAgYXV0aFByb3ZpZGVyczogewogICAgYXBpX2tleTogewogICAgICBhc3luYyBnZXRDb25maWcoKSB7CiAgICAgICAgcmV0dXJuICdNeUFQSUtleSc7CiAgICAgIH0sCiAgICB9LAogICAgcGV0c3RvcmVfYXV0aDogewogICAgICBnZXRDb25maWcoKSB7CiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBnbG9iYWxTdG9yZS5nZXRBY2Nlc3NUb2tlbigpOwoKICAgICAgICBpZiAoYWNjZXNzVG9rZW4pIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICByZXR1cm4geyBhY2Nlc3NUb2tlbiB9OwogICAgICB9LAogICAgfSwKICB9LAp9KTsKYGBgCgpJdCBzdXBwb3J0cyA0IHR5cGVzIG9mIHNlY3VyaXR5IHNjaGVtZXM6CgotIGBhcGlLZXlgIG1vZGUKLSBgaHR0cGAgYmVhcmVyIGFuZCBiYXNpYyBtb2RlCi0gYG9hdXRoMmAgbW9kZQoKVGhlIGBnZXRDb25maWdgIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlIGNvbmZpZ3VyYXRpb24gbmVlZGVkIHRvIGF1dGhlbnRpY2F0ZSB0aGUgcmVxdWVzdC4gUmV0dXJuaW5nIGBudWxsYCB3aWxsIHNraXAgdGhlIGF1dGhlbnRpZmljYXRpb24uCgojIyMjIEN1c3RvbWl6aW5nIHRoZSBzZXJpYWxpemF0aW9uCgpZb3UgY2FuIHN3aXRjaCBzb21lIHNlcmlhbGl6YXRpb24gb3B0aW9ucyBieSBwYXNzaW5nIGEgYHNlcmlhbGl6ZXJPcHRpb25zYCBvYmplY3QgdG8gdGhlIGBjcmVhdGVDb250ZXh0YCBmdW5jdGlvbi4KCj4gTm90IGV2ZXJ5IHNlcmlhbGl6YXRpb24gb3B0aW9uIGlzIHN1cHBvcnRlZC4gU2VlIFsjMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9FbWJyYXNlcjAxL3R5cG9hcy9pc3N1ZXMvMTEpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIFVzaW5nIHdpdGggUmVhY3QgUXVlcnkKCkRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGluIHRoZSBbYEB0eXBvYXMvcmVhY3QtcXVlcnlgXSguL3BhY2thZ2VzL3R5cG9hcy1yZWFjdC1xdWVyeSkgcGFja2FnZS4KCiMjIEV4YW1wbGVzCgpZb3UgY2FuIGZpbmQgZXhhbXBsZXMgaW4gdGhlIFtgZXhhbXBsZXNgXSguL2V4YW1wbGVzKSBmb2xkZXIuCgojIyBOb3RlcwoKSGVyZSBpcyBzb21lIG5vdGVzIG9uIHNvbWUga25vd24gaXNzdWVzLgoKIyMjIEV4dGVybmFsIHJlZmVyZW5jZXMKCkV4dGVybmFsIHJlZmVyZW5jZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIEV2ZXJ5IGAkcmVmYCBtdXN0IGJlIGluIHRoZSBzcGVjLiAgCkFuIGlzc3VlIGlzIG9wZW4gW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9FbWJyYXNlcjAxL3R5cG9hcy9pc3N1ZXMvMzcpLgoKIyMjIFBhcmFtZXRlcnMgc2VyaWFsaXphdGlvbgoKX1R5cG9hc18gaGFzIHBhcnRpYWwgc3VwcG9ydCBmb3Igc2VyaWFsaXphdGlvbiBzcGVjaWZpZWQgaGVyZTogaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9zZXJpYWxpemF0aW9uLwoKLSBJdCAqKmRvZXMqKiBzdXBwb3J0IGFycmF5IHNlcmlhbGl6YXRpb24gZm9yICoqcXVlcnkqKi4KLSBJdCAqKmRvZXMgTk9UKiogc3VwcG9ydCBzZXJpYWxpemF0aW9uIGZvciAqKnBhdGgqKiBwYXJhbWV0ZXJzIHdpdGggYHN0eWxlYCBgbGFiZWxgIG9yIGBtYXRyaXhgLgotIEl0ICoqZG9lcyBOT1QqKiBzdXBwb3J0IHNlcmlhbGl6YXRpb24gZm9yICoqcXVlcnkqKiBwYXJhbWV0ZXJzIHdpdGggbmVzdGVkIG9iamVjdHMuIEl0IHdpbGwgYmUgSlNPTi5zdHJpbmdpZnkKLSBJdCAqKmRvZXMgTk9UKiogc3VwcG9ydCBzZXJpYWxpemF0aW9uIGZvciAqKmhlYWRlcnMqKiBvciAqKmNvb2tpZSoqIHBhcmFtZXRlcnMuCgpPbiBxdWVyeSBzZXJpYWxpemF0aW9uLCB0aGVyZSBjYW4gb25seSBiZSBvbmUgc3R5bGUgZm9yIGEgZnVsbCBvcGVyYXRpb24uIFRoZSBmaXJzdCBxdWVyeSBwYXJhbSB3aWxsIHNldCB0aGUgc3R5bGUgZm9yICAKdGhlIHdob2xlIG9wZXJhdGlvbi4KCiMjIyBNaWdyYXRpbmcgZnJvbSB2MSB0byB2MgoKSW4gdjEsIHRoZSB3aG9sZSBBUEkgd2FzIGdlbmVyYXRlZCBpbiBhIHNpbmdsZSBjbGFzcy4gSW4gVjIgdGhpcyB3YXMgcmVwbGFjZWQgYnkgaW5kaXZpZHVhbCBmdW5jdGlvbiAgCndoaWNoIGFsbG93IFtUcmVlIFNoYWtpbmddKGh0dHBzOi8vd2VicGFjay5qcy5vcmcvZ3VpZGVzL3RyZWUtc2hha2luZy8pLiBUbyBnZXQgYSBzaW1pbGFyIHJlc3VsdCwgIAp5b3UgY2FuIHVzZSBgd3JhcEFwaWAgaGVscGVyOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBTZXJ2ZXJDb25maWd1cmF0aW9uLCB3cmFwQXBpIH0gZnJvbSAnQHR5cG9hcy9ydW50aW1lJzsKaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgcHVsbHNMaXN0LCBpc3N1ZXNMaXN0IH0gZnJvbSAnLi9jbGllbnQnOwoKY29uc3QgY3R4ID0gY3JlYXRlQ29udGV4dCgpOwpjb25zdCBnaENsaWVudCA9IHdyYXBBcGkoY3R4LCB7CiAgcHVsbHNMaXN0LAogIGlzc3Vlc0xpc3QsCiAgLy8gLi4uCn0pOwoKZ2hDbGllbnQKICAucHVsbHNMaXN0KGN0eCwgewogICAgcmVwbzogJ3R5cG9hcycsCiAgICBvd25lcjogJ2VtYnJhc2VyMDEnLAogIH0pCiAgLnRoZW4oKGxpc3QpID0+IGNvbnNvbGUubG9nKCdMaXN0IG9mIFBScycsIGxpc3QpKQogIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKCdFcnJvciB3aGlsZSBnZXR0aW5nIFBScycsIGVycikpOwpgYGAKCiMjIENvbnRyaWJ1dGluZwoKUHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZS4gRm9yIG1ham9yIGNoYW5nZXMsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIGZpcnN0IHRvIGRpc2N1c3Mgd2hhdCB5b3Ugd291bGQgbGlrZSB0byBjaGFuZ2UuCgojIyBMaWNlbnNlCgpbTUlUXShodHRwczovL2Nob29zZWFsaWNlbnNlLmNvbS9saWNlbnNlcy9taXQvKQo= readmeEtag: '"5c6491f07c14af825d63674dfab8e17bfa3082e8"' readmeLastModified: Fri, 21 Jun 2024 13:49:01 GMT repositoryId: 350501832 description: Open API (OAS 3.0) Typescript generator created: '2021-03-22T22:01:11Z' updated: '2024-08-27T22:00:10Z' language: TypeScript archived: false stars: 38 watchers: 3 forks: 5 owner: Embraser01 logo: https://avatars.githubusercontent.com/u/8802277?v=4 license: MIT repoEtag: '"5c838f34f9beb901f559ce689ac6dd16c6bab9f1ed15283d5e7308445f5503d8"' repoLastModified: Tue, 27 Aug 2024 22:00:10 GMT foundInMaster: true category: - SDK - Parsers id: daab13b9706c2ce0fb810cc426f403b1 name: Typoas link: https://github.com/Embraser01/typoas language: Typescript source_description: Fully typed OpenAPI Typescript generator v2: false v3_1: true - source: https://openapi.tools/ name: Zuplo (OpenAPI-based gateway and documentation) category: - GUI Editors - Gateway - Documentation language: - Web - SaaS link: https://www.zuplo.com source_description: >- Zuplo is an API gateway designed for developers. Natively powered by OpenAPI (3.1 or 3.0), zuplo offers an OpenAPI design surface, API documentation and a serverless, programmable edge gateway that includes request validation, auth, rate-limiting and more. v2: false v3: true v3_1: true id: 94f410082dd5e91b5d75df09846e8687 foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags name: kotlin-openapi3-dsl category: - DSL - Parsers language: Kotlin source_description: >- kotlin-openapi3-dsl is a DSL written in Kotlin to write OpenAPI descriptions in plain Kotlin. link: https://github.com/derveloper/kotlin-openapi3-dsl v2: false v3: true repository: https://github.com/derveloper/kotlin-openapi3-dsl id: f4ab0e00ab487873f90c7f20db81bf8b repositoryMetadata: base64Readme: >- IyBrb3RsaW4tb3BlbmFwaTMtZHNsCgohW0phdmEgQ0kgd2l0aCBHcmFkbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZXJ2ZWxvcGVyL2tvdGxpbi1vcGVuYXBpMy1kc2wvd29ya2Zsb3dzL0phdmElMjBDSSUyMHdpdGglMjBHcmFkbGUvYmFkZ2Uuc3ZnKQpbIVtNYXZlbiBDZW50cmFsXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvY2MudmlsZWRhL2tvdGxpbi1vcGVuYXBpMy1kc2wvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2NjLnZpbGVkYS9rb3RsaW4tb3BlbmFwaTMtZHNsKQoKQnVpbGQgeW91ciBPcGVuQXBpMyBzcGVjIGluIGtvdGxpbiEKCiMjIGltcG9ydAoKa290bGluLW9wZW5hcGkzLWRzbCBpcyBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbAoKIyMjIGdyYWRsZQoKYGBgZ3Jvb3Z5CmNvbXBpbGUgImNjLnZpbGVkYTprb3RsaW4tb3BlbmFwaTMtZHNsOjEuNS4wIgpgYGAKCiMjIyBtYXZlbgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5jYy52aWxlZGE8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tb3BlbmFwaTMtZHNsPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS41LjA8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyBleGFtcGxlCgpmb3IgYSBjb21wbGV0ZSBleGFtcGxlIFtsb29rIGF0IHRoZSB0ZXN0XShzcmMvdGVzdC9rb3RsaW4vY2MvdmlsZWRhL29wZW5hcGkvZHNsL09wZW5BcGlEc2xUZXN0Lmt0KQoKIyMgbGljZW5zZQpgYGAKQ29weXJpZ2h0IDIwMTcgVHJpc3RhbiBMZW8KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpgYGAK readmeEtag: '"65dd1080cc18c6cc7b4e4129e2bccf8d1d3456ad"' readmeLastModified: Wed, 14 Aug 2024 18:07:02 GMT repositoryId: 108694147 description: Build your OpenApi3 spec in kotlin! created: '2017-10-29T00:33:35Z' updated: '2024-08-28T17:11:15Z' language: Kotlin archived: false stars: 65 watchers: 8 forks: 6 owner: derveloper logo: https://avatars.githubusercontent.com/u/18556?v=4 license: Apache-2.0 repoEtag: '"dfd2c2cea77c9b4ba3d60764b6974707369c270e01fd663e02f1aaf3e99c0a6a"' repoLastModified: Wed, 28 Aug 2024 17:11:15 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/blueswen/mkdocs-redoc-tag v3: true id: 04369ce76dd1df0b16316691678f55bd repositoryMetadata: base64Readme: >- IyBNa0RvY3MgUmVkb2MgVGFnIAoKPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9ta2RvY3MtcmVkb2MtdGFnIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvbWtkb2NzLXJlZG9jLXRhZy5zdmciIGFsdD0iUHlQSSB2ZXJzaW9uIi8+PC9hPgo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L21rZG9jcy1yZWRvYy10YWciPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZG0vbWtkb2NzLXJlZG9jLXRhZy5zdmciIGFsdD0iUHlQSSBkb3dubG9hZHMiLz48L2E+CjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2NvZGVjb3YuaW8vZ2gvYmx1ZXN3ZW4vbWtkb2NzLXJlZG9jLXRhZyI+PGltZyBzcmM9Imh0dHBzOi8vY29kZWNvdi5pby9naC9ibHVlc3dlbi9ta2RvY3MtcmVkb2MtdGFnL2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2ZyIgYWx0PSJDb2RlY292Ii8+PC9hPgoKQSBNa0RvY3MgcGx1Z2luIHN1cHBvcnRzIGFkZGluZyBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKSB0byB0aGUgcGFnZS4KCiMjIEZlYXR1cmVzCgoxLiBPcGVuQVBJIFNwZWNpZmljYXRpb24gZmlsZSBmcm9tIG9ubGluZSBvdmVyIFVSTCBvciBzdGF0aWMgZmlsZSBpbiBkb2NzCjIuIEFsbCBkZXBlbmRlbmNpZXMgYXJlIHVzaW5nIHN0YXRpYyBmaWxlcyBoYW5kbGVkIGJ5IHRoZSBwbHVnaW4gbm90IGZyb20gQ0ROLCBlc3BlY2lhbGx5IHN1aXRhYmxlIGZvciB0aG9zZSBkb2N1bWVudHMgYmVlbiBkZXBsb3llZCBpbiB0aGUgaW50cmFuZXQKMy4gU3luY2hyb25pemVkIGRhcmsgbW9kZSB3aXRoIFtNYXRlcmlhbCBmb3IgTWtEb2NzXShodHRwczovL3NxdWlkZnVuay5naXRodWIuaW8vbWtkb2NzLW1hdGVyaWFsLykKCiMjIERlcGVuZGVuY3kKCjEuIFB5dGhvbiBQYWNrYWdlCiAgICAxLiBiZWF1dGlmdWxzb3VwND49NC4xMS4xCjIuIFJlZG9jIHN0YW5kYWxvbmUgamF2YXNjcmlwdCBmcm9tIFtvZmZpY2lhbCBDRE5dKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jP3RhYj1yZWFkbWUtb3YtZmlsZSNyZWxlYXNlcykKICAgIDEuIHJlZG9jPT0yLjEuMwoKIyMgVXNhZ2UKCjEuIEluc3RhbGwgdGhlIHBsdWdpbiBmcm9tIFB5cGkKCiAgICBgYGBiYXNoCiAgICBwaXAgaW5zdGFsbCBta2RvY3MtcmVkb2MtdGFnCiAgICBgYGAKCjIuIEFkZCBgYGByZWRvYy10YWdgYGAgcGx1Z2luIGludG8geW91ciBta2RvY3MueW1sIHBsdWdpbnMgc2VjdGlvbnM6CgogICAgYGBgeWFtbAogICAgcGx1Z2luczoKICAgICAgIC0gcmVkb2MtdGFnCiAgICBgYGAKMy4gQWRkIGBgYHJlZG9jYGBgIHRhZyBpbiBtYXJrZG93biB0byBpbmNsdWRlIFJlZG9jOgoKICAgIGBgYGh0bWwKICAgIDxyZWRvYyBzcmM9Imh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24iLz4KICAgIGBgYAoKICAgICFbUmVkb2MgU2FtcGxlIEltYWdlXShodHRwczovL2JsdWVzd2VuLmdpdGh1Yi5pby9ta2RvY3MtcmVkb2MtdGFnL3NhbXBsZS5wbmcpCgo0LiBZb3UgbWF5IGN1c3RvbWl6ZSB0aGUgcGx1Z2luIGJ5IHBhc3Npbmcgb3B0aW9ucyBpbiBta2RvY3MueW1sOgoKICAgIGBgYHlhbWwKICAgIHBsdWdpbnM6CiAgICAgICAtIHJlZG9jLXRhZzoKICAgICAgICAgICAgYmFja2dyb3VuZDogV2hpdGUKICAgIGBgYAoKICAgIHwgT3B0aW9ucyB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8CiAgICB8LS0tfC0tLXwtLS18CiAgICB8IGJhY2tncm91bmQgfCBTdHJpbmcgfCBEZWZhdWx0OiAiIi4gUmVkb2MgaWZyYW1lIGJvZHkgYmFja2dyb3VuZCBhdHRyaWJ1dGUgdmFsdWUuIFlvdSBjYW4gdXNlIGFueSBjc3MgdmFsdWUgZm9yIGJhY2tncm91bmQgZm9yIGV4YW1wbGUgIiM3NGI5ZmYiIG9yICJHYWluc2Jvcm8iIG9yICIiIGZvciBub3RoaW5nLiB8CiAgICB8IGhlaWdodCB8IFN0cmluZyB8IERlZmF1bHQ6ICI4MHZoIi4gSGVpZ2h0IG9mIFJlZG9jIGlmcmFtZS4gfAoKIyMgSG93IGl0IHdvcmtzCgoxLiBDb3B5IFJlZG9jIHNjcmlwdCBmaWxlIGludG8gYHNpdGUvYXNzZXRzL2phdmFzY3JpcHRzL2AgZGlyZWN0b3J5CjIuIFNlYXJjaCBhbGwgcmVkb2MgdGFncywgdGhlbiBjb252ZXJ0IHRoZW0gdG8gYW4gaWZyYW1lIHRhZyBhbmQgZ2VuZXJhdGUgdGhlIGlmcmFtZSB0YXJnZXQgaHRtbCB3aXRoIHRoZSBnaXZlbiBPcGVuQVBJIFNwZWNpZmljYXRpb24gc3JjIHBhdGgKCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgLSBzZWUgdGhlIFtMSUNFTlNFLm1kXShodHRwczovL2dpdGh1Yi5jb20vQmx1ZXN3ZW4vbWtkb2NzLXJlZG9jLXRhZy9ibG9iL21haW4vTElDRU5TRSkgZmlsZSBmb3IgZGV0YWlscy4KCiMjIFJlZmVyZW5jZQoKMS4gW3JlZGFya10oaHR0cHM6Ly9naXRodWIuY29tL2RpbGFueC9yZWRhcmspOiBzb3VyY2Ugb2YgZGFyayBtb2RlIGphdmFzY3JpcHQgYW5kIGNzcwo= readmeEtag: '"3e29d7b189e1c5dda6e7bb3d1a603d518d9cb3c2"' readmeLastModified: Tue, 23 Jan 2024 15:40:45 GMT repositoryId: 727734575 description: A MkDocs plugin supports adding Redoc to the page. created: '2023-12-05T13:20:17Z' updated: '2024-01-22T14:22:53Z' language: Python archived: false stars: 1 watchers: 1 forks: 1 owner: blueswen logo: https://avatars.githubusercontent.com/u/1564148?v=4 license: MIT repoEtag: '"670d963ba0fad8d17238a603277dbca7131d59f4df3f0bd9b1a09f0dab18a5e1"' repoLastModified: Mon, 22 Jan 2024 14:22:53 GMT category: Documentation foundInMaster: true name: MkDocs Redoc Tag language: Python link: https://blueswen.github.io/mkdocs-redoc-tag/ source_description: A MkDocs plugin supports adding Redoc to the page. v2: true v3_1: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/blueswen/mkdocs-swagger-ui-tag v3: true id: 210c459f395c1a11f8160fc69bd12fee repositoryMetadata: base64Readme: >- IyBNa0RvY3MgU3dhZ2dlciBVSSBUYWcKCjxwIGFsaWduPSJjZW50ZXIiPgo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L21rZG9jcy1zd2FnZ2VyLXVpLXRhZyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L21rZG9jcy1zd2FnZ2VyLXVpLXRhZy5zdmciIGFsdD0iUHlQSSB2ZXJzaW9uIi8+PC9hPgo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L21rZG9jcy1zd2FnZ2VyLXVpLXRhZyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9kbS9ta2RvY3Mtc3dhZ2dlci11aS10YWcuc3ZnIiBhbHQ9IlB5UEkgZG93bmxvYWRzIi8+PC9hPgo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9jb2RlY292LmlvL2doL2JsdWVzd2VuL21rZG9jcy1zd2FnZ2VyLXVpLXRhZyI+PGltZyBzcmM9Imh0dHBzOi8vY29kZWNvdi5pby9naC9ibHVlc3dlbi9ta2RvY3Mtc3dhZ2dlci11aS10YWcvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPTFEMUIwR0FRTjEiIGFsdD0iQ29kZWNvdiIvPjwvYT4KPC9wPgoKQSBNa0RvY3MgcGx1Z2luIHN1cHBvcnRzIGFkZGluZyBbU3dhZ2dlciBVSV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpIHRvIHRoZSBwYWdlLgoKW0xpdmUgZGVtb10oaHR0cHM6Ly9ibHVlc3dlbi5naXRodWIuaW8vbWtkb2NzLXN3YWdnZXItdWktdGFnLykgd2l0aCBbTWF0ZXJpYWwgZm9yIE1rRG9jc10oaHR0cHM6Ly9zcXVpZGZ1bmsuZ2l0aHViLmlvL21rZG9jcy1tYXRlcmlhbC8pLgoKIyMgRmVhdHVyZXMKCjEuIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBmaWxlIGZyb20gb25saW5lIG92ZXIgVVJMIG9yIHN0YXRpYyBmaWxlIGluIGRvY3MKMi4gQWxsIGRlcGVuZGVuY2llcyBhcmUgdXNpbmcgc3RhdGljIGZpbGVzIGhhbmRsZWQgYnkgdGhlIHBsdWdpbiBub3QgZnJvbSBDRE4sIGVzcGVjaWFsbHkgc3VpdGFibGUgZm9yIHRob3NlIGRvY3VtZW50cyBiZWVuIGRlcGxveWVkIGluIHRoZSBpbnRyYW5ldAozLiBNdWx0aXBsZSBTd2FnZ2VyIFVJIG9uIHRoZSBzYW1lIHBhZ2UKNC4gU3luY2hyb25pemVkIGRhcmsgbW9kZSB3aXRoIFtNYXRlcmlhbCBmb3IgTWtEb2NzXShodHRwczovL3NxdWlkZnVuay5naXRodWIuaW8vbWtkb2NzLW1hdGVyaWFsLykKNS4gQ29uZmlndXJlIFtTd2FnZ2VyIFVJIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL29wZW4tc291cmNlLXRvb2xzL3N3YWdnZXItdWkvdXNhZ2UvY29uZmlndXJhdGlvbi8pIHRocm91Z2ggcGx1Z2luIG9wdGlvbnMgYW5kIHRhZyBhdHRyaWJ1dGVzCjYuIFN1cHBvcnQgbXVsdGlwbGUgT0FTIGluIGEgc2luZ2xlIFN3YWdnZXIgVUkgd2l0aCBhIHRvcCBiYXIgc2VsZWN0b3IKNy4gU3VwcG9ydCBTd2FnZ2VyIFVJIFtpbml0T0F1dGhdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL29wZW4tc291cmNlLXRvb2xzL3N3YWdnZXItdWkvdXNhZ2Uvb2F1dGgyLykgbWV0aG9kCgojIyBEZXBlbmRlbmN5CgoxLiBQeXRob24gUGFja2FnZQogICAgMS4gYmVhdXRpZnVsc291cDQ+PTQuMTEuMQoyLiBbU3dhZ2dlciBVSSBkaXN0XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FnZ2VyLXVpLWRpc3QpIGphdmFzY3JpcHQgZmlsZSBhbmQgQ1NTIGZpbGUKICAgIDEuIHN3YWdnZXItdWktZGlzdD09NS4xNy4zCgojIyBVc2FnZQoKMS4gSW5zdGFsbCB0aGUgcGx1Z2luIGZyb20gUHlQSQoKICAgIGBgYGJhc2gKICAgIHBpcCBpbnN0YWxsIG1rZG9jcy1zd2FnZ2VyLXVpLXRhZwogICAgYGBgCgoyLiBBZGQgYGBgc3dhZ2dlci11aS10YWdgYGAgcGx1Z2luIHRvIHlvdXIgbWtkb2NzLnltbCBwbHVnaW5zIHNlY3Rpb25zOgoKICAgIGBgYHlhbWwKICAgIHBsdWdpbnM6CiAgICAgICAtIHN3YWdnZXItdWktdGFnCiAgICBgYGAKCjMuIEFkZCBgYGBzd2FnZ2VyLXVpYGBgIHRhZyBpbiBtYXJrZG93biB0byBpbmNsdWRlIFN3YWdnZXIgVUkKCiAgICBgYGBtYXJrZG93bgogICAgPHN3YWdnZXItdWkgc3JjPSJodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIi8+CiAgICBgYGAKCiAgICAhW1N3YWdnZXIgVUkgU2FtcGxlIEltYWdlXShodHRwczovL2JsdWVzd2VuLmdpdGh1Yi5pby9ta2RvY3Mtc3dhZ2dlci11aS10YWcvc2FtcGxlLnBuZykKCjQuIFlvdSBtYXkgY3VzdG9taXplIHRoZSBwbHVnaW4gYnkgcGFzc2luZyBvcHRpb25zIGluIG1rZG9jcy55bWwsIGNoZWNrIG1vcmUgZGV0YWlscyBvbiBbb3B0aW9uc10oaHR0cHM6Ly9ibHVlc3dlbi5naXRodWIuaW8vbWtkb2NzLXN3YWdnZXItdWktdGFnL29wdGlvbnMvKToKCiAgICBgYGB5YW1sCiAgICBwbHVnaW5zOgogICAgICAgLSBzd2FnZ2VyLXVpLXRhZzoKICAgICAgICAgICAgYmFja2dyb3VuZDogV2hpdGUKICAgICAgICAgICAgZG9jRXhwYW5zaW9uOiBub25lCiAgICAgICAgICAgIGZpbHRlcjogIiIKICAgICAgICAgICAgc3ludGF4SGlnaGxpZ2h0VGhlbWU6IG1vbm9rYWkKICAgICAgICAgICAgdHJ5SXRPdXRFbmFibGVkOiBbJ2dldCcsICdwb3N0J10KICAgIGBgYAoKICAgIHwgT3B0aW9ucyB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8CiAgICB8LS0tfC0tLXwtLS18CiAgICB8IGJhY2tncm91bmQgfCBTdHJpbmcgfCBEZWZhdWx0OiAiIi4gU3dhZ2dlciBVSSBpZnJhbWUgYm9keSBiYWNrZ3JvdW5kIGF0dHJpYnV0ZSB2YWx1ZS4gWW91IGNhbiB1c2UgYW55IGNzcyB2YWx1ZSBmb3IgYmFja2dyb3VuZCBmb3IgZXhhbXBsZSAiIzc0YjlmZiIgb3IgIkdhaW5zYm9ybyIgb3IgIiIgZm9yIG5vdGhpbmcuIHwKICAgIHwgZG9jRXhwYW5zaW9uIHwgU3RyaW5nIHwgRGVmYXVsdDogImxpc3QiLiBDb250cm9scyB0aGUgZGVmYXVsdCBleHBhbnNpb24gc2V0dGluZyBmb3IgdGhlIG9wZXJhdGlvbnMgYW5kIHRhZ3MuIEl0IGNhbiBiZSAibGlzdCIgKGV4cGFuZHMgb25seSB0aGUgdGFncyksICJmdWxsIiAoZXhwYW5kcyB0aGUgdGFncyBhbmQgb3BlcmF0aW9ucykgb3IgIm5vbmUiIChleHBhbmRzIG5vdGhpbmcpLiB8CiAgICB8IGZpbHRlciB8IFN0cmluZyBvciBCb29sZWFuIHwgRGVmYXVsdDogRmFsc2UuIElmIHNldCwgZW5hYmxlcyBmaWx0ZXJpbmcuIFRoZSB0b3AgYmFyIHdpbGwgc2hvdyBhbiBlZGl0IGJveCB0aGF0IHlvdSBjYW4gdXNlIHRvIGZpbHRlciB0aGUgdGFnZ2VkIG9wZXJhdGlvbnMgdGhhdCBhcmUgc2hvd24uIENhbiBiZSBCb29sZWFuIHRvIGVuYWJsZSBvciBkaXNhYmxlLCBvciBhIHN0cmluZywgaW4gd2hpY2ggY2FzZSBmaWx0ZXJpbmcgd2lsbCBiZSBlbmFibGVkIHVzaW5nIHRoYXQgc3RyaW5nIGFzIHRoZSBmaWx0ZXIgZXhwcmVzc2lvbi4gRmlsdGVyaW5nIGlzIGNhc2Ugc2Vuc2l0aXZlIG1hdGNoaW5nIHRoZSBmaWx0ZXIgZXhwcmVzc2lvbiBhbnl3aGVyZSBpbnNpZGUgdGhlIHRhZy4gfAogICAgfCBzeW50YXhIaWdobGlnaHRUaGVtZSB8IFN0cmluZyB8IERlZmF1bHQ6ICJhZ2F0ZSIuIFtIaWdobGlnaHQuanNdKGh0dHBzOi8vaGlnaGxpZ2h0anMub3JnL3N0YXRpYy9kZW1vLykgc3ludGF4IGNvbG9yaW5nIHRoZW1lIHRvIHVzZS4gSXQgY2FuIGJlICJhZ2F0ZSIsICJhcnRhIiwgIm1vbm9rYWkiLCAibm9yZCIsICJvYnNpZGlhbiIgb3IgInRvbW9ycm93LW5pZ2h0IiB8CiAgICB8IHRyeUl0T3V0RW5hYmxlZCB8IEJvb2xlYW4gfCBEZWZhdWx0OiBGYWxzZS4gVGhpcyBzZXR0aW5nIGRldGVybWluZXMgdGhlIGRlZmF1bHQgZWRpdGFiaWxpdHkgb2YgdGhlICJUcnkgaXQgb3V0IiBzZWN0aW9uLCBpbmNsdWRpbmcgcGFyYW1ldGVycyBvciBib2R5LiB8CiAgICB8IG9hdXRoMlJlZGlyZWN0VXJsIHwgU3RyaW5nIHwgRGVmYXVsdDogQWJzb2x1dGUgVVJMIG9mICIvYXNzZXRzL3N3YWdnZXItdWkvb2F1dGgyLXJlZGlyZWN0Lmh0bWwiIHJlbGF0aXZlIHdpdGggc2l0ZV91cmwgaW4gbWtkb2NzLnltbCBvciBkb2N1bWVudCByb290IHBhdGggb24gc2l0ZSB3aXRob3V0IHNpdGVfdXJsLCBlLmcuICJbaHR0cHM6Ly9ibHVlc3dlbi5naXRodWIuaW8vbWtkb2NzLXN3YWdnZXItdWktdGFnL2Fzc2V0cy9zd2FnZ2VyLXVpL29hdXRoMi1yZWRpcmVjdC5odG1sXShodHRwczovL2JsdWVzd2VuLmdpdGh1Yi5pby9ta2RvY3Mtc3dhZ2dlci11aS10YWcvYXNzZXRzL3N3YWdnZXItdWkvb2F1dGgyLXJlZGlyZWN0Lmh0bWwpIi4gT0F1dGggcmVkaXJlY3QgVVJMLiB8CiAgICB8IHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgfCBBcnJheSB8IERlZmF1bHQ6IEFsbCBIdHRwIE1ldGhvZHMuIEFycmF5PVsiZ2V0IiwgInB1dCIsICJwb3N0IiwgImRlbGV0ZSIsICJvcHRpb25zIiwgImhlYWQiLCAicGF0Y2giLCAidHJhY2UiXS4gTGlzdCBvZiBIVFRQIG1ldGhvZHMgdGhhdCBoYXZlIHRoZSAiVHJ5IGl0IG91dCIgZmVhdHVyZSBlbmFibGVkLiBBbiBlbXB0eSBhcnJheSBkaXNhYmxlcyAiVHJ5IGl0IG91dCIgZm9yIGFsbCBvcGVyYXRpb25zLiBUaGlzIGRvZXMgbm90IGZpbHRlciB0aGUgb3BlcmF0aW9ucyBmcm9tIHRoZSBkaXNwbGF5LiB8CiAgICB8IHZhbGlkYXRvclVybCB8IFN0cmluZyB8IERlZmF1bHQ6ICJodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvciIuIEJ5IGRlZmF1bHQsIFN3YWdnZXIgVUkgYXR0ZW1wdHMgdG8gdmFsaWRhdGUgc3BlY3MgYWdhaW5zdCBzd2FnZ2VyLmlvJ3Mgb25saW5lIHZhbGlkYXRvciBpbiBtdWx0aXBsZSBPQVMgU3dhZ2dlciBVSS4gWW91IGNhbiB1c2UgdGhpcyBwYXJhbWV0ZXIgdG8gc2V0IGEgZGlmZmVyZW50IHZhbGlkYXRvciBVUkwsIGZvciBleGFtcGxlIGZvciBsb2NhbGx5IGRlcGxveWVkIHZhbGlkYXRvcnMgKFtWYWxpZGF0b3IgQmFkZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS92YWxpZGF0b3ItYmFkZ2UpKS4gU2V0dGluZyBpdCAibm9uZSIgdG8gZGlzYWJsZSB2YWxpZGF0aW9uLiB8CgojIyBIb3cgaXQgd29ya3MKCjEuIENvcHkgdGhlIFN3YWdnZXIgVUkgc2NyaXB0IGZpbGUgaW50byBgc2l0ZS9hc3NldHMvamF2YXNjcmlwdHMvYCBkaXJlY3RvcnksIHRoZSBDU1MgZmlsZSBpbnRvIGBzaXRlL2Fzc2V0cy9zdHlsZXNoZWV0cy9gIGRpcmVjdG9yeSwgYW5kIHRoZSBbZGVmYXVsdCBPYXV0aDIgcmVkaXJlY3QgaHRtbF0oaHR0cHM6Ly9naXRodWIuY29tL2JsdWVzd2VuL21rZG9jcy1zd2FnZ2VyLXVpLXRhZy9ibG9iL21haW4vbWtkb2NzX3N3YWdnZXJfdWlfdGFnL3N3YWdnZXItdWkvb2F1dGgyLXJlZGlyZWN0Lmh0bWwpIGludG8gYHNpdGUvYXNzZXRzL3N3YWdnZXItdWkvYCBkaXJlY3RvcnkKMi4gU2VhcmNoIGFsbCBzd2FnZ2VyLXVpIHRhZ3MsIHRoZW4gY29udmVydCB0aGVtIHRvIGFuIGlmcmFtZSB0YWcgYW5kIGdlbmVyYXRlIHRoZSBpZnJhbWUgdGFyZ2V0IEhUTUwgd2l0aCB0aGUgZ2l2ZW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uIHNyYyBwYXRoIGFuZCBvcHRpb25zCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIC0gc2VlIHRoZSBbTElDRU5TRS5tZF0oaHR0cHM6Ly9naXRodWIuY29tL0JsdWVzd2VuL21rZG9jcy1zd2FnZ2VyLXVpLXRhZy9ibG9iL21haW4vTElDRU5TRSkgZmlsZSBmb3IgZGV0YWlscy4KCiMjIFJlZmVyZW5jZQoKMS4gW0Ftb2VudXMgU3dhZ2dlciBEYXJrIFRoZW1lXShodHRwczovL2dpdGh1Yi5jb20vQW1vZW51cy9Td2FnZ2VyRGFyay8pOiBzb3VyY2Ugb2YgZGFyayBtb2RlIGNzcwo= readmeEtag: '"2f6c781e6f8742eb790f9d376722a0a2a67f429c"' readmeLastModified: Wed, 01 May 2024 13:29:48 GMT repositoryId: 502576077 description: A MkDocs plugin supports adding Swagger UI to the page. created: '2022-06-12T09:49:37Z' updated: '2024-08-16T20:07:29Z' language: CSS archived: false stars: 75 watchers: 1 forks: 7 owner: blueswen logo: https://avatars.githubusercontent.com/u/1564148?v=4 license: MIT repoEtag: '"5946fa608daae172839cd1a8e464f23db4e4c9759da8fb6407f003d650239839"' repoLastModified: Fri, 16 Aug 2024 20:07:29 GMT category: - Documentation - Parsers foundInMaster: true name: MkDocs Swagger UI Tag language: Python link: https://blueswen.github.io/mkdocs-swagger-ui-tag/ source_description: A MkDocs plugin supports for add Swagger UI in page. v2: true v3_1: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/bcoughlan/openapi-commander v3: true id: 182561588480789f47720cb799634f03 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIENvbW1hbmRlcgoKPCEtLSBnZW5lcmF0ZWQgd2l0aCAibWFya2Rvd24tdG9jIC1pIFJFQURNRS5tZCIgLS0+CjwhLS0gdG9jIC0tPgoKLSBbT3ZlcnZpZXddKCNvdmVydmlldykKLSBbRmVhdHVyZXNdKCNmZWF0dXJlcykKLSBbU2V0dXBdKCNzZXR1cCkKLSBbRXhhbXBsZXNdKCNleGFtcGxlcykKICAqIFtDb21tYW5kcyBncm91cGVkIGJ5IHRhZ10oI2NvbW1hbmRzLWdyb3VwZWQtYnktdGFnKQogICogW0Jhc2ljIEdFVCBleGFtcGxlXSgjYmFzaWMtZ2V0LWV4YW1wbGUpCiAgKiBbR2xvYmFsIG9wdGlvbnNdKCNnbG9iYWwtb3B0aW9ucykKICAgICsgW0N1c3RvbSBzZXJ2ZXJdKCNjdXN0b20tc2VydmVyKQogICAgKyBbU2V0IEF1dGhvcml6YXRpb24gaGVhZGVyXSgjc2V0LWF1dGhvcml6YXRpb24taGVhZGVyKQogICAgKyBbUHJpbnQgcmVxdWVzdCB3aXRob3V0IHNlbmRpbmddKCNwcmludC1yZXF1ZXN0LXdpdGhvdXQtc2VuZGluZykKICAgICsgW1ByaW50IGEgY3VybCBjb21tYW5kIG9mIHRoZSByZXF1ZXN0XSgjcHJpbnQtYS1jdXJsLWNvbW1hbmQtb2YtdGhlLXJlcXVlc3QpCiAgKiBbUHJpbnQgZXhhbXBsZSByZXF1ZXN0IGJvZGllc10oI3ByaW50LWV4YW1wbGUtcmVxdWVzdC1ib2RpZXMpCi0gW0J1aWxkIHN0YW5kYWxvbmUgYmluYXJpZXNdKCNidWlsZC1zdGFuZGFsb25lLWJpbmFyaWVzKQotIFtBIHZlcnkgaW5jb21wbGV0ZSBUT0RPIGxpc3QuLi5dKCNhLXZlcnktaW5jb21wbGV0ZS10b2RvLWxpc3QpCi0gW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKCjwhLS0gdG9jc3RvcCAtLT4KCiMgT3ZlcnZpZXcKCkdlbmVyYXRlIGEgTm9kZS5qcyBjb21tYW5kIGxpbmUgdG9vbCBmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbiB1c2luZyB0aGUKW2NvbW1hbmRlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvY29tbWFuZGVyKSBsaWJyYXJ5LgoKSXQgY2FuIGJlIHVzZWQgYXMgYSBzdGFydGVyIGZvciB3cml0aW5nIGNvbW1hbmQgbGluZSB0b29scyB0aGF0IHRhbGsgdG8gQVBJcywKb3IgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gdXNpbmcgY3VybCB0byB3b3JrIHdpdGggQVBJcy4KCiMgRmVhdHVyZXMKCi0gR2VuZXJhdGUgY2xlYW4gY29kZSBmcm9tIHlvdXIgc3BlYy4KLSBTdXBwb3J0cyBTd2FnZ2VyIDIsIE9wZW5BUEkgMy4wIGFuZCAzLjEuCi0gU2hvdyBleGFtcGxlcyBvZiByZXF1ZXN0IGJvZGllcywgdXNpbmcgZXhhbXBsZXMgZnJvbSB0aGUgc3BlYyBvciBnZW5lcmF0ZWQgd2l0aCBbb3BlbmFwaS1zYW1wbGVyXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9vcGVuYXBpLXNhbXBsZXIpLgotIFZlcmJvc2UgbW9kZSB0byBzZWUgcmVzcG9uc2UgaGVhZGVycy4KLSBQcmludCBhIGN1cmwgY29tbWFuZCBvZiB0aGUgcmVxdWVzdC4KCiMgU2V0dXAKCjEuIENyZWF0ZSBhbiBucG0gcHJvamVjdCB3aXRoIGBucG0gaW5pdGAgb3IgdXNlIGFuIGV4aXN0aW5nIG9uZS4gWW91ciBOb2RlLmpzIHZlcnNpb24gbXVzdCBiZSAxNisKCjIuIEluc3RhbGwgZGVwZW5kZW5jaWVzCgpgYGAKbnBtIGluc3RhbGwgY29tbWFuZGVyQDkKbnBtIGluc3RhbGwgLS1zYXZlLWRldiBvcGVuYXBpLWNvbW1hbmRlcgpgYGAKCjMuIEdlbmVyYXRlIHRoZSBDTEkgY29kZQoKYGBgCm5weCBvcGVuYXBpLWNvbW1hbmRlciBnZW5lcmF0ZSA8cGF0aCBvciBVUkwgdG8gc3BlYz4gPG91dHB1dCBmaWxlPgpgYGAKCmUuZy4KCmBgYApucHggb3BlbmFwaS1jb21tYW5kZXIgZ2VuZXJhdGUgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL3BldHN0b3JlLnlhbWwgcGV0c3RvcmUuanMKYGBgCgo0LiBSdW4KCmBgYApub2RlIHBldHN0b3JlLmpzIC4uLgpgYGAKIyBFeGFtcGxlcwoKIyMgU3ViY29tbWFuZHMKClRoZSBjb21tYW5kcyBhcmUgZ3JvdXBlZCBieSB0aGVpciBmaXJzdCB0YWcgaW4gdGhlIE9wZW5BUEkgc3BlYyAodGhlIHNhbWUgbG9naWMKdGhhdCBTd2FnZ2VyIFVJIHVzZXMpLiBPcGVyYXRpb25zCgpgYGAKfi9wZXRzdG9yZSQgbm9kZSBwZXRzdG9yZS5qcwoKVXNhZ2U6IHBldHN0b3JlIFtvcHRpb25zXSBbY29tbWFuZF0KCk9wdGlvbnM6CiAgLXAsIC0tcHJpbnQgPG1vZGU+ICAgICBQcmludCB0aGUgSFRUUCByZXF1ZXN0IGluc3RlYWQgb2Ygc2VuZGluZyBpdC4gKGNob2ljZXM6ICJjdXJsIiwgInBsYWluIikKICAtcywgLS1zZXJ2ZXIgPHNlcnZlcj4gIFNlcnZlciB0byB1c2UKICAtYSwgLS1hdXRoIDxhdXRoPiAgICAgIEF1dGhvcml6YXRpb24gaGVhZGVyIHRvIHNlbmQKICAtaCwgLS1oZWxwICAgICAgICAgICAgIGRpc3BsYXkgaGVscCBmb3IgY29tbWFuZAoKQ29tbWFuZHM6CiAgcGV0ICAgICAgICAgICAgICAgICAgICBFdmVyeXRoaW5nIGFib3V0IHlvdXIgUGV0cwogIHN0b3JlCiAgdXNlciAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25zIGFib3V0IHVzZXIKICBoZWxwIFtjb21tYW5kXSAgICAgICAgIGRpc3BsYXkgaGVscCBmb3IgY29tbWFuZApgYGAKCmBgYAp+L3BldHN0b3JlJCBub2RlIHBldHN0b3JlLmpzIHBldApVc2FnZTogcGV0c3RvcmUgcGV0IFtvcHRpb25zXSBbY29tbWFuZF0KCkV2ZXJ5dGhpbmcgYWJvdXQgeW91ciBQZXRzCgpPcHRpb25zOgogIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHAgZm9yIGNvbW1hbmQKCkNvbW1hbmRzOgogIHVwZGF0ZVBldCBbb3B0aW9uc10gPGJvZHk+ICAgICAgICAgICBVcGRhdGUgYW4gZXhpc3RpbmcgcGV0CiAgYWRkUGV0IFtvcHRpb25zXSA8Ym9keT4gICAgICAgICAgICAgIEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCiAgZmluZFBldHNCeVN0YXR1cyBbb3B0aW9uc10gICAgICAgICAgIEZpbmRzIFBldHMgYnkgc3RhdHVzCiAgZmluZFBldHNCeVRhZ3MgW29wdGlvbnNdICAgICAgICAgICAgICpERVBSRUNBVEVEKiBGaW5kcyBQZXRzIGJ5IHRhZ3MKICBnZXRQZXRCeUlkIDxwZXRJZD4gICAgICAgICAgICAgICAgICAgRmluZCBwZXQgYnkgSUQKICB1cGRhdGVQZXRXaXRoRm9ybSBbb3B0aW9uc10gPHBldElkPiAgVXBkYXRlcyBhIHBldCBpbiB0aGUgc3RvcmUgd2l0aCBmb3JtIGRhdGEKICBkZWxldGVQZXQgW29wdGlvbnNdIDxwZXRJZD4gICAgICAgICAgRGVsZXRlcyBhIHBldAogIHVwbG9hZEZpbGUgW29wdGlvbnNdIDxwZXRJZD4gICAgICAgICB1cGxvYWRzIGFuIGltYWdlCiAgaGVscCBbY29tbWFuZF0gICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscCBmb3IgY29tbWFuZApgYGAKCgojIyBCYXNpYyBHRVQgZXhhbXBsZQoKYGBgCn4vcGV0c3RvcmUkIG5vZGUgcGV0c3RvcmUuanMgcGV0IGdldFBldEJ5SWQgMQpTdGF0dXM6IDIwMAp7CiAgImlkIjogMSwKICAiY2F0ZWdvcnkiOiB7CiAgICAiaWQiOiAxLAogICAgIm5hbWUiOiAiSG9sYSIKICB9LAogICJuYW1lIjogIlBlcnJpdG8iLAogICJwaG90b1VybHMiOiBbCiAgICAiL3RtcC9pbmZsZWN0b3I5OTU1OTYwMDcyMjI3MjU5NDQudG1wIgogIF0sCiAgInRhZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6IDEsCiAgICAgICJuYW1lIjogIkJpemNvY2hvIgogICAgfQogIF0sCiAgInN0YXR1cyI6ICJhdmFpbGFibGUiCn0KYGBgCgpZb3UgY2FuIGFsc28gYWRkIHRoZSBgLXZgIGZsYWcgdG8gc2hvdyByZXNwb25zZSBoZWFkZXJzLgoKIyMgR2xvYmFsIG9wdGlvbnMKCiMjIyBDdXN0b20gc2VydmVyCgpgYGAKfi9wZXRzdG9yZSQgbm9kZSBwZXRzdG9yZS5qcyAtcyBodHRwczovL215cGV0c3RvcmUuZXhhbXBsZSBwZXQgZ2V0UGV0QnlJZCAxCmBgYAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIG92ZXJyaWRlIGl0IGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGB7Q09NTUFORE5BTUV9X1NFUlZFUmAsIGUuZy4gYFBFVFNUT1JFX1NFUlZFUmAuCgojIyMgU2V0IEF1dGhvcml6YXRpb24gaGVhZGVyCgpgYGAKfi9wZXRzdG9yZSQgbm9kZSBwZXRzdG9yZS5qcyAtYSAnQmVhcmVyIG15dG9rZW4nIGdldFBldEJ5SWQgMQpgYGAKCkFsdGVybmF0aXZlbHkgeW91IGNhbiBvdmVycmlkZSBpdCBieSBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBge0NPTU1BTkROQU1FfV9BVVRIYCwgZS5nLiBgUEVUU1RPUkVfQVVUSGAuCgojIyMgUHJpbnQgcmVxdWVzdCB3aXRob3V0IHNlbmRpbmcKCmBgYAp+L3BldHN0b3JlJCBub2RlIHBldHN0b3JlLmpzIHBldCAtYSAnQmVhcmVyIG15dG9rZW4nIC1zIGh0dHBzOi8vbXlwZXRzdG9yZS5leGFtcGxlIGdldFBldEJ5SWQgMSAtLXByaW50IHBsYWluCkdFVCBodHRwczovL215cGV0c3RvcmUuZXhhbXBsZS9wZXQvMQpBdXRob3JpemF0aW9uOiBCZWFyZXIgbXl0b2tlbgpBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24KYGBgCgojIyMgUHJpbnQgYSBjdXJsIGNvbW1hbmQgb2YgdGhlIHJlcXVlc3QKCmBgYAp+L3BldHN0b3JlJCBub2RlIHBldHN0b3JlLmpzIHBldCAtYSAnQmVhcmVyIG15dG9rZW4nIC1zIGh0dHBzOi8vbXlwZXRzdG9yZS5leGFtcGxlIGdldFBldEJ5SWQgMSAtLXByaW50IGN1cmwKY3VybCAtWCBHRVQgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBteXRva2VuJyAtSCAnQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uJyAnaHR0cHM6Ly9teXBldHN0b3JlLmV4YW1wbGUvcGV0LzEnCmBgYAoKIyMgUHJpbnQgZXhhbXBsZSByZXF1ZXN0IGJvZGllcwoKYGBgCn4vcGV0c3RvcmUkIG5vZGUgcGV0c3RvcmUuanMgcGV0IHVwZGF0ZVBldCBleGFtcGxlcwpFeGFtcGxlIGZvciBhcHBsaWNhdGlvbi9qc29uOgp7CiAgImlkIjogMTAsCiAgIm5hbWUiOiAiZG9nZ2llIiwKICAiY2F0ZWdvcnkiOiB7CiAgICAiaWQiOiAxLAogICAgIm5hbWUiOiAiRG9ncyIKICB9LAogICJwaG90b1VybHMiOiBbCiAgICAic3RyaW5nIgogIF0sCiAgInRhZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6IDAsCiAgICAgICJuYW1lIjogInN0cmluZyIKICAgIH0KICBdLAogICJzdGF0dXMiOiAiYXZhaWxhYmxlIgp9CmBgYAoKIyBCdWlsZCBzdGFuZGFsb25lIGJpbmFyaWVzCgpUbyBidWlsZCBtdWx0aS1wbGF0Zm9ybSBzdGFuZGFsb25lIGJpbmFyaWVzIHBsYXRmb3JtIEkgcmVjb21tZW5kIFt2ZXJjZWwvcGtnXShodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL3BrZykuCgojIEEgdmVyeSBpbmNvbXBsZXRlIFRPRE8gbGlzdC4uLgoKVGhlIHRvcCBwcmlvcml0eSBpcyB0byBiZWVmIHVwIHRoZSB0ZXN0IHN1aXRlLgoKLSBTeW50YXggaGlnaGxpZ2h0aW5nIG9mIGV4YW1wbGVzCi0gSW1wbGVtZW50IGRpZmZlcmVudCBzZWN1cml0eS9hdXRoIHR5cGVzLgotIEF1dG8tZGV0ZWN0IHJlcXVlc3QgYm9keSB0eXBlIGZyb20gZmlsZS4KLSBTaG93IEpTT04gJiBZQU1MIGV4YW1wbGVzIHdpdGggY29tbWVudHMgZm9yIGZpZWxkIGRlc2NyaXB0aW9ucy4KICAtPiBTdHJpcCBjb21tZW50cyBmcm9tIEpTT04gd2hlbiBwYXNzaW5nIGluCi0gU3RyaXAgaHRtbC9tYXJrZG93biBmcm9tIGRlc2NyaXB0aW9uCi0gTW9yZSBzZXJpYWxpemF0aW9uIG9wdGlvbnMgaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9zZXJpYWxpemF0aW9uLwotIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCBjb250ZW50IHR5cGVzLgotIFNlcnZlciB0ZW1wbGF0aW5nLgotIEF1dG9jb21wbGV0ZS4KCiMgQ29udHJpYnV0aW5nCgpUaGlzIGlzIGEgaG9iYnkgc2lkZSBwcm9qZWN0IHNvIEkgaGF2ZSBsaW1pdGVkIHRpbWUgdG8gd29yayBvbiBpc3N1ZXMgYnV0IEkgd2lsbCAKZG8gbXkgYmVzdCB0byBkaXNjdXNzIGlzc3VlcywgcmV2aWV3IFBScyBhbmQga2VlcCB0aGUgcHJvamVjdCBtYWludGFpbmVkLiBQbGVhc2UKb3BlbiBhbiBpc3N1ZSBmb3IgZGlzY3Vzc2lvbiBiZWZvcmUgb3BlbmluZyBhbnkgc2lnbmlmaWNhbnQgUFJzIHRvIGF2b2lkIGFueQpkaXNhcHBvaW50bWVudCBhYm91dCBwcm9qZWN0IHNjb3BlLgo= readmeEtag: '"73432f2a2380ff7c3876f19187e44e4c0f33c32d"' readmeLastModified: Tue, 24 Oct 2023 11:07:15 GMT repositoryId: 497158492 description: Generate a Node.js command line tool from an OpenAPI definition created: '2022-05-27T22:55:07Z' updated: '2024-08-10T20:42:03Z' language: TypeScript archived: false stars: 24 watchers: 2 forks: 2 owner: bcoughlan logo: https://avatars.githubusercontent.com/u/421683?v=4 license: MIT repoEtag: '"1fc67a42cef29398259cb359ea8ecca09e7f6c73556d3f108722ee58309d013a"' repoLastModified: Sat, 10 Aug 2024 20:42:03 GMT category: - Code Generators - SDK - Parsers foundInMaster: true name: OpenAPI Commander language: - Node.js - CLI link: https://www.npmjs.com/package/openapi-commander source_description: Generate a Node.js command line tool from an OpenAPI definition. v2: false v3_1: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/pmcelhaney/counterfact v3: true id: 2c27ee61398c89f17aa5be7ffa08c72a repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIiAgbWFya2Rvd249IjEiPgoKIVtNSVQgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlKSBbIVtUeXBlU2NyaXB0XSguL3R5cGVzY3JpcHQtYmFkZ2UucG5nKV0oaHR0cHM6Ly9naXRodWIuY29tL2VsbGVyYnJvY2svdHlwZXNjcmlwdC1iYWRnZXMvKSBbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9wbWNlbGhhbmV5L2NvdW50ZXJmYWN0L2JhZGdlLnN2ZyldKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9wbWNlbGhhbmV5L2NvdW50ZXJmYWN0KQoKPC9kaXY+Cgo8YnI+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiIG1hcmtkb3duPSIxIj4KCjxoMT48aW1nIHNyYz0iLi9jb3VudGVyZmFjdC5zdmciIGFsdD0iQ291bnRlcmZhY3QiPjwvaDE+CgpfQSBNb2NrIFNlcnZlciBmb3IgSGlnaC1wZXJmb3JtaW5nIEZyb250LWVuZCBUZWFtc18KCltRdWljayBTdGFydF0oLi9kb2NzL3F1aWNrLXN0YXJ0Lm1kKSB8IFtEb2N1bWVudGF0aW9uXSguL2RvY3MvdXNhZ2UubWQpIHwgW0NoYW5nZWxvZ10oLi9DSEFOR0VMT0cubWQpIHwgW0NvbnRyaWJ1dGluZ10oLi9DT05UUklCVVRJTkcubWQpCgo8L2Rpdj4KCjxicj4KCkNvdW50ZXJmYWN0IGlzIGEgZnJlZSBhbmQgb3BlbiBzb3VyY2UgKiptb2NrIHNlcnZlcioqIGRlc2lnbmVkIHRvIGhpdCB0aGUgc3dlZXQgc3BvdCBldmVyeSBmcm9udC1lbmQgZW5naW5lZXIgY3JhdmVzOiAqKl9yZWFsIGVub3VnaCB0byBiZSB1c2VmdWwgYnV0IGZha2UgZW5vdWdoIHRvIGJlIHVzYWJsZV8qKi4gSXQgc3RhbmRzIGluIGZvciB0aGUgYmFjay1lbmQgY29kZSB0aGF0IGRvZXNuJ3QgZXhpc3QgeWV0IG9yIGlzIHRvbyBjb21wbGV4IC8gcmlnaWQgdG8gc3VpdCB5b3VyIGZyb250LWVuZCBkZXZlbG9wbWVudCBhbmQgdGVzdGluZyB3b3JrZmxvdy4KCkxpa2UgeW91ciBmYXZvcml0ZSBwYWlyIG9mIHN3ZWF0cGFudHMsIENvdW50ZXJmYWN0IGlzIGxpZ2h0d2VpZ2h0LCBmbGV4aWJsZSwgYW5kIGNvbWZvcnRhYmxlOyBpdCBzdHJldGNoZXMgYW5kIHNocmlua3MgdG8gZml0IHlvdXIgcHJvamVjdCdzIHVuaXF1ZSBjb250b3Vycy4gQmVzdCBvZiBhbGwsIGl0IG1ha2VzIHlvdXIgPGRlbD5hc3M8L2RlbD4gPGlucz5ib3NzPC9pbnM+IGxvb2sgZ29vZC4gR28gYWhlYWQsIFt0cnkgaXQgb25dKC4vZG9jcy9xdWljay1zdGFydC5tZCkuCgojIyBXaHkgVXNlIENvdW50ZXJmYWN0PwoKLSDwn4+d77iPICoqRWZmb3J0bGVzcyBBUEkgTW9ja2luZzoqKiBTYXkgZ29vZGJ5ZSB0byBiYWNrLWVuZCBoYXNzbGVzLiBDb3VudGVyZmFjdCBhbGxvd3MgeW91IHRvIGJ1aWxkIGFuZCB0ZXN0IHlvdXIgZnJvbnQtZW5kIGNvZGUgaW5kZXBlbmRlbnRseSBvZiB0aGUgcmVzdCBvZiB0aGUgc3RhY2suCi0g8J+RjCAqKkZsZXhpYmlsaXR5IGF0IFlvdXIgRmluZ2VydGlwczoqKiBFZmZvcnRsZXNzbHkgdG9nZ2xlIGJldHdlZW4gbW9jayBhbmQgcmVhbCBzZXJ2aWNlcywgY2hhbmdlIGJlaGF2aW9yIHdpdGhvdXQgbG9zaW5nIHN0YXRlLCBzaW11bGF0ZSBjb21wbGV4IHVzZSBjYXNlcyBhbmQgZXJyb3IgY29uZGl0aW9ucywgZXRjLgotIPCfpKkgKipJbnN0YW50IEdyYXRpZmljYXRpb246KiogSWYgeW91IGhhdmUgTm9kZSBpbnN0YWxsZWQgYW5kIGFuIE9wZW5BUEkgZG9jdW1lbnQgaGFuZHksIHlvdSdyZSBbb25lIGNvbW1hbmQgYXdheV0oLi9kb2NzL3F1aWNrLXN0YXJ0Lm1kKSBmcm9tIGEgZGVwZW5kZW5jeS1mcmVlIHdvcmtmbG93LgotIPCfm6DvuI8gKipEZXYgVG9vbHMgb24gdGhlIHNlcnZlcjoqKiBUaGF0J3Mgd2hhdCBpdCBmZWVscyBsaWtlLiBDaGFuZ2UgY29kZSBpbiBhIHJ1bm5pbmcgc2VydmVyIGFuZCBzZWUgdGhlIGVmZmVjdCBpbW1lZGlhdGVseS4gSXQgZXZlbiBoYXMgYSBSRVBMLCBsaWtlIHRoZSBKUyBjb25zb2xlIGluIHlvdXIgYnJvd3Nlci4KLSDwn5SEICoqSGlnaCBjb2RlLCBsb3cgZWZmb3J0OioqIFdvdWxkbid0IHlvdSBsb3ZlIHRoZSBzaW1wbGljaXR5IG9mIGEgImxvdyBjb2RlIiAvICJubyBjb2RlIiB0b29sIHdpdGhvdXQgZ2l2aW5nIHVwIHRoZSBmbGV4aWJpbGl0eSBhbmQgcG93ZXIgeW91IGdldCBmcm9tIGtub3dpbmcgaG93IHRvIHdyaXRlIFR5cGVTY3JpcHQ/IEluY29uY2VpdmFibGUsIHlvdSBzYXk/IFtEb24ndCBrbm9jayBpdCAndGlsIHlvdSB0cnkgaXRdKC4vZG9jcy9xdWljay1zdGFydC5tZCkuCi0g8J+PhCAqKkZsdWlkIHdvcmtmbG93OioqIE9wdGlvbmFsbHkgdXNlIGV4aXN0aW5nIE9wZW5BUEkvU3dhZ2dlciBkb2N1bWVudGF0aW9uIHRvIGF1dG8tZ2VuZXJhdGUgVHlwZVNjcmlwdCB0eXBlcy4gV2hlbiB5b3VyIGRvY3VtZW50YXRpb24gY2hhbmdlcywgdGhlIHR5cGVzIHVwZGF0ZSBhdXRvbWF0aWNhbGx5LgotIPCfm50gKipQbGF5cyB3ZWxsIHdpdGggb3RoZXJzOioqIENvdW50ZXJmYWN0IHdvcmtzIHdpdGggYW55dGhpbmcgdGhhdCBkZXBlbmRzIG9uIGEgUkVTVCBBUEksIGluY2x1ZGluZyB3ZWIgYXBwcywgbW9iaWxlIGFwcHMsIGRlc2t0b3AgYXBwcywgYW5kIG1pY3Jvc2VydmljZXMuIEl0IHJlcXVpcmVzIHplcm8gY2hhbmdlcyB0byB5b3VyIGZyb250LWVuZCBmcmFtZXdvcmsgb3IgY29kZS4KCiMjIFllYWggYnV0Li4uCgotIPCfjq0gKipUaGVyZSBhcmUgYWxyZWFkeSBhIGJhemlsbGlvbiB0b29scyBmb3IgbW9ja2luZyBBUElzISoqPGJyPgogIEFuZCB0aGV5IGFsbCBmYWxsIHNob3J0IGluIG9uZSB3YXkgb3IgYW5vdGhlci4gQ291bnRlcmZhY3QgaXMgYSBub3ZlbCBhcHByb2FjaCBkZXNpZ25lZCB0byBhZGRyZXNzIHRoZWlyIHNob3J0Y29taW5ncy4gU29tZXRpbWVzIGEgbG93LWZpZGVsaXR5IHByb3RvdHlwZSB0aGF0IHJldHVybnMgbW9jayBkYXRhIGlzIHN1ZmZpY2llbnQuIFNvbWV0aW1lcyB3ZSB3aXNoIHRoZSBtb2NrcyB3ZXJlIHN0YXRlZnVsLCBpLmUuIGFmdGVyIFBPU1RpbmcgYW4gaXRlbSBpbiB0aGUgc2hvcHBpbmcgY2FydCB3ZSBjYW4gR0VUIHRoYXQgc2FtZSBpdGVtIGJhY2sgb3V0LiBTb21ldGltZXMgd2Ugd2FudCB0byB0ZXN0IGFnYWluc3QgdGhlIHJlYWwgc2VydmVyLCBidXQgb3ZlcnJpZGUgdGhlIHJlc3BvbnNlcyBvbiBvbmUgb3IgdHdvIGVuZHBvaW50cy4gQ291bnRlcmZhY3QgbWFrZXMgYWxsIG9mIHRoZXNlIHVzZSBjYXNlcyBhcyBzaW1wbGUgYXMgcG9zc2libGUsIGJ1dCBubyBzaW1wbGVyLgotIOKbriAqKkkgZG9uJ3QgbGlrZSBjb2RlIGdlbmVyYXRvcnMhKio8YnI+CiAgVGhlbiB5b3UgY2FtZSB0byB0aGUgcmlnaHQgcGxhY2UhIFRoZSBjb2RlIGdlbmVyYXRvciBpcyBvcHRpb25hbC4gSWYgeW91IGhhdmUgYW4gT3BlbkFQSSBzcGVjICh3aGljaCBpcyBoaWdobHkgcmVjb21tZW5kZWQgaW4gYW55IGNhc2UpLCB5b3UgY2FuIHVzZSBpdCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIFR5cGVTY3JpcHQgdHlwZXMgaW4gYSBzcGxpdCBzZWNvbmQuIEFzIHRoZSBzcGVjIGNoYW5nZXMsIHRoZSB0eXBlcyBhcmUgYXV0b21hdGljYWxseSBrZXB0IGluIHN5bmMuIE1vc3Qgb2YgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIGNvcmRvbmVkIG9mZiBpbiBhbiBhcmVhIHRoYXQgeW91IG5ldmVyIG5lZWQgdG8gY2hhbmdlIG9yIGV2ZW4gbG9vayBhdC4KLSDwn6W1ICoqTWFpbnRhaW5pbmcgYm90aCBhIG1vY2sgc2VydmVyIGFuZCBhIHJlYWwgc2VydmVyPyBUaGF0J3MganVzdCBleHRyYSBlZmZvcnQhKio8YnI+CiAgUGVvcGxlIHVzZWQgdG8gc2F5IHRoZSBzYW1lIHRoaW5nIGFib3V0IHVuaXQgdGVzdHM6IF9pdCdzIHR3aWNlIGFzIG11Y2ggY29kZSFfIEhhdmluZyBzcGVudCBuZWFybHkgdGhyZWUgZGVjYWRlcyB3cml0aW5nIGZyb250LWVuZCBjb2RlLCBJJ3ZlIGxlYXJuZWQgYSBsb3QgZGV2ZWxvcG1lbnQgdGltZSBpcyB3YXN0ZWQgbWVzc2luZyB3aXRoIHRoZSBiYWNrLWVuZDogZ2V0dGluZyB0aGUgZW52aXJvbm1lbnQgc3Rvb2QgdXAsIGFkZGluZyB0ZXN0IGRhdGEsIGxvZ2dpbmcgaW4gYW5kIG91dCBhcyBkaWZmZXJlbnQgdXNlcnMsIGhpdHRpbmcgdGhlIHJlZnJlc2ggYnV0dG9uIGFuZCB3YWl0aW5nLCBldGMuIENvdW50ZXJmYWN0IGVsaW1pbmF0ZXMgdGhhdCB3YXN0ZSBhdCBhIGNvc3QgdGhhdCBpcyBzaG9ja2luZ2x5IGNsb3NlIHRvIHplcm8sIGFuZCBoZWxwcyB5b3UgbWFpbnRhaW4gdGhlIGZsb3cgc3RhdGUgd2hpbGUgZGV2ZWxvcGluZy4KCiMjIDEwIFNlY29uZCBRdWljayBTdGFydAoKVG8gc2VlIENvdW50ZXJmYWN0IGluIGFjdGlvbiBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHlvdXIgdGVybWluYWw6CgpgYGBzaCBjb3B5Cm5weCBjb3VudGVyZmFjdEBsYXRlc3QgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS55YW1sIGFwaQpgYGAKClRoaXMgY29tbWFuZCBpbnN0YWxscyBDb3VudGVyZmFjdCBmcm9tIG5wbSwgc2V0cyB1cCBhIG1vY2sgc2VydmVyIGltcGxlbWVudGluZyB0aGUgW1N3YWdnZXIgUGV0c3RvcmVdKGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8pLCBhbmQgb3BlbnMgYSBkYXNoYm9hcmQgaW4gYSB3ZWIgYnJvd3Nlci4gQXMgbG9uZyBhcyB5b3UgaGF2ZSBOb2RlIDE2IG9yIGxhdGVyIGluc3RhbGxlZCwgaXQgc2hvdWxkICJqdXN0IHdvcmsiLgoKIyMgRG9jdW1lbnRhdGlvbgoKRm9yIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHN1Y2ggYXMgaG93IHRvIGdvIGJleW9uZCBzaW1wbGUgbW9ja3MgdGhhdCByZXR1cm4gcmFuZG9tIHZhbHVlcywgdmlzaXQgb3VyIFt0dXRvcmlhbF0oLi9kb2NzL3F1aWNrLXN0YXJ0Lm1kKSBhbmQgW3VzYWdlIGd1aWRlXSguL2RvY3MvdXNhZ2UubWQpLgoKIyMgU2ltaWxhciBUb29scyBhbmQgQWx0ZXJuYXRpdmVzCgpXaGlsZSBDb3VudGVyZmFjdCBvZmZlcnMgYSB1bmlxdWUgYXBwcm9hY2ggdG8gQVBJIG1vY2tpbmcgdGhhdCB3ZSBiZWxpZXZlIHByb3ZpZGVzIHRoZSBiZXN0IG92ZXJhbGwgRFgsIHdlIHVuZGVyc3RhbmQgdGhlIGltcG9ydGFuY2Ugb2YgaGF2aW5nIHRoZSByaWdodCB0b29sIGZvciB5b3VyIHNwZWNpZmljIG5lZWRzLiBIZXJlIGFyZSBzb21lIHNpbWlsYXIgdG9vbHMgYW5kIGFsdGVybmF0aXZlcyB5b3UgbWlnaHQgZmluZCB1c2VmdWw6CgpbKipNaXJhZ2UgSlMqKl0oaHR0cHM6Ly9taXJhZ2Vqcy5jb20vKSBoYXMgbW9yZSBvciBsZXNzIHRoZSBzYW1lIGdvYWxzIGFzIENvdW50ZXJmYWN0IGFuZCB2ZXJ5IGRpZmZlcmVudCBhcHByb2FjaGVzIHRvIGFjaGlldmluZyB0aGVtLiBTb21lIG5vdGFibGUgZGlmZmVyZW5jZXMgYXJlIHRoYXQgaXQgcnVucyBpbiBhIGJyb3dzZXIgaW5zdGVhZCBvZiBOb2RlLCBkb2VzIG5vdCBpbnRlZ3JhdGUgd2l0aCBPcGVuQVBJLCBhbmQgZG9lcyBzdXBwb3J0IEdyYXBoUUwuCgpJZiB5b3VyIGdvYWwgaXMgdG8gZ2V0IGEgc2VydmVyIHVwIGFuZCBydW5uaW5nIHF1aWNrbHkgYW5kIHlvdXIgQVBJIGRvZXNuJ3QgZG8gbXVjaCBiZXlvbmQgc3RvcmluZyBhbmQgcmV0cmlldmluZyBkYXRhLCBbKipKU09OIFNlcnZlcioqXShodHRwczovL2dpdGh1Yi5jb20vdHlwaWNvZGUvanNvbi1zZXJ2ZXIpIG1heSBiZSBhIGdyZWF0IGZpdCBmb3IgeW91LgoKSWYgeW91ciBtb2NraW5nIG5lZWRzIGFyZSByZWxhdGl2ZWx5IHNpbXBsZSBhbmQgeW91J3JlIHNob3BwaW5nIGZvciBzb21lb25lIHdobyBoYXMgbm8gcmVhc29uIHRvIGhhdmUgTm9kZSBpbnN0YWxsZWQgdGhlaXIgY29tcHV0ZXIsIFsqKkJlZWNlcHRvcioqXShodHRwczovL2JlZWNlcHRvci5jb20vKSwgWyoqTW9ja29vbioqXShodHRwczovL21vY2tvb24uY29tLyksIGFuZCBbKipNb2NreS5pbyoqXShodHRwczovL3d3dy5tb2NreS5pby8pIGFyZSB3b3J0aCBjaGVja2luZyBvdXQuIE1vY2t5IGlzIGZyZWU7IHRoZSBvdGhlcnMgaGF2ZSBmcmVlIGFuZCBwYWlkIHRpZXJzLgoKIyMgRmVlZGJhY2sgYW5kIENvbnRyaWJ1dGlvbnMKCldlIHZhbHVlIF9hbGxfIG9mIHlvdXIgZmVlZGJhY2sgYW5kIGNvbnRyaWJ1dGlvbnMsIGluY2x1ZGluZyDwn5KMIGxvdmUgbGV0dGVycyAsIPCfkqEgZmVhdHVyZSByZXF1ZXN0cywg8J+QniBidWcgcmVwb3J0cywgYW5kIOKcje+4jyBncmFtbWF0aWNhbCBuaXQtcGlja3MgaW4gdGhlIGRvY3MuIFBsZWFzZSBbY3JlYXRlIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vcG1jZWxoYW5leS9jb3VudGVyZmFjdC9pc3N1ZXMvbmV3KSwgb3BlbiBhIHB1bGwgcmVxdWVzdCwgb3IgcmVhY2ggb3V0IHRvIDxwbWNlbGhhbmV5QGdtYWlsLmNvbT4uCgoqKldlbGNvbWUgdG8gdGhlIGJvdHRvbSBvZiB0aGUgUkVBRE1FIGNsdWIhIFNpbmNlIHlvdSd2ZSBjb21lIHRoaXMgZmFyLCBnbyBhaGVhZCBhbmQgc21hc2ggdGhhdCBsaWtlIGFuZCBzdWJzY+KApiBlciwgdWgsIGdpdmUgdGhpcyBwcm9qZWN0IGEg4q2Q77iPIG9uIEdpdEh1YiEqKiDwn5mP8J+PvAo= readmeEtag: '"2c38fe2d7df17170d0d77823d4069fc8cb6f84fc"' readmeLastModified: Thu, 15 Aug 2024 11:13:40 GMT repositoryId: 479515560 description: OpenAPI / Swagger to TypeScript generator and mock server created: '2022-04-08T19:32:15Z' updated: '2024-09-05T07:53:13Z' language: TypeScript archived: false stars: 98 watchers: 7 forks: 13 owner: pmcelhaney logo: https://avatars.githubusercontent.com/u/51504?v=4 license: MIT repoEtag: '"068cc9dff0288415cbf4c2bf80aaf7a61e67ef8ec5fe1d4d44e8cf12890984ed"' repoLastModified: Thu, 05 Sep 2024 07:53:13 GMT category: - Mock - SDK - Server Implementations foundInMaster: true name: Counterfact link: https://counterfact.dev language: - TypeScript - Node source_description: >- Counterfact is a revolutionary free and open source mock server. If you have Node installed, all you have to do is run `npx counterfact@latest path-or-url-to-your-openapi-document`. Out of the box, you'll get a mock server that returns random data. With a TypeScript API that's optimized for mocking, you can add more realistic behavior. It supports mix and matching mocks with calls to the real API (sans CORS headaches). With hot reloading and a REPL, you can change things up on the fly. v3_1: true v2: true - source: https://openapi.tools/ name: Atlassian OpenAPI Request Validators category: Testing language: Java link: https://bitbucket.org/atlassian/swagger-request-validator/src/master/ repository: https://bitbucket.org/atlassian/swagger-request-validator/src/master/ v2: true v3: true source_description: >- A set of Java libraries which allow you to integrate OpenAPI Description Document validation into your testing or clients with tools like WireMock/RestAssured/MockMVC/etc... id: 1c4a1d5d85bbfdfa72511b0d14337f06 foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/daveshanley/vacuum v3: true repositoryMetadata: base64Readme: >- IVtsb2dvXShsb2dvLnBuZykKCiMgdmFjdXVtIC0gVGhlIHdvcmxkJ3MgZmFzdGVzdCBPcGVuQVBJICYgU3dhZ2dlciBsaW50ZXIuCgohW2J1aWxkXShodHRwczovL2dpdGh1Yi5jb20vZGF2ZXNoYW5sZXkvdmFjdXVtL3dvcmtmbG93cy9CdWlsZC9iYWRnZS5zdmcpClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9kYXZlc2hhbmxleS92YWN1dW0pXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZGF2ZXNoYW5sZXkvdmFjdXVtKQpbIVtkaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2Rpc2NvcmQvOTIzMjU4MzYzNTQwODE1OTEyKV0oaHR0cHM6Ly9kaXNjb3JkLmdnL1VBY1VGNzhNUU4pClshW0RvY3NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZ29kb2MtcmVmZXJlbmNlLTVmYWZkNyldKGh0dHBzOi8tL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9kYXZlc2hhbmxleS92YWN1dW0pClshW0dpdEh1YiBkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2Rvd25sb2Fkcy9kYXZlc2hhbmxleS92YWN1dW0vdG90YWw/bGFiZWw9Z2l0aHViJTIwZG93bmxvYWRzJnN0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdmVzaGFubGV5L3ZhY3V1bS9yZWxlYXNlcykKWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9AcXVvYml4L3ZhY3V1bT9zdHlsZT1mbGF0LXNxdWFyZSZsYWJlbD1ucG0lMjBkb3dubG9hZHMpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AcXVvYml4L3ZhY3V1bSkKWyFbRG9ja2VyIFB1bGxzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci9wdWxscy9kc2hhbmxleS92YWN1dW0/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvZHNoYW5sZXkvdmFjdXVtKQpbIVtNZW50aW9uZWQgaW4gQXdlc29tZSBHb10oaHR0cHM6Ly9hd2Vzb21lLnJlL21lbnRpb25lZC1iYWRnZS1mbGF0LnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmVsaW5vL2F3ZXNvbWUtZ28pCgpBbiAqKnVsdHJhLXN1cGVyLWZhc3QqKiwgbGlnaHR3ZWlnaHQgT3BlbkFQSSBsaW50ZXIgYW5kIHF1YWxpdHkgY2hlY2tpbmcgdG9vbCwgd3JpdHRlbiBpbiBnb2xhbmcgYW5kIGluc3BpcmVkIGJ5IFtTcGVjdHJhbF0oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL3NwZWN0cmFsKS4KCkl0J3MgYWxzbyBjb21wYXRpYmxlIHdpdGggZXhpc3RpbmcgW1NwZWN0cmFsXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vc3BlY3RyYWwpIHJ1bGVzZXRzLgoKIyMgSW5zdGFsbCB1c2luZyBbaG9tZWJyZXddKGh0dHBzOi8vYnJldy5zaCkgdGFwCgpgYGAKYnJldyBpbnN0YWxsIGRhdmVzaGFubGV5L3ZhY3V1bS92YWN1dW0KYGBgCgojIyBJbnN0YWxsIHVzaW5nIFtucG1dKGh0dHBzOi8vbnBtanMuY29tKQoKYGBgCm5wbSBpIC1nIEBxdW9iaXgvdmFjdXVtCmBgYAoKIyMgSW5zdGFsbCB1c2luZyBbeWFybl0oaHR0cHM6Ly95YXJucGtnLmNvbS8pCgpgYGAKeWFybiBnbG9iYWwgYWRkIEBxdW9iaXgvdmFjdXVtCmBgYAoKIyMgSW5zdGFsbCB1c2luZyBjdXJsCgpgYGAKY3VybCAtZnNTTCBodHRwczovL3F1b2JpeC5jb20vc2NyaXB0cy9pbnN0YWxsX3ZhY3V1bS5zaCB8IHNoCmBgYAoKIyMgSW5zdGFsbCB1c2luZyBbRG9ja2VyXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvZHNoYW5sZXkvdmFjdXVtKQoKVGhlIGltYWdlIGlzIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2RzaGFubGV5L3ZhY3V1bQoKYGBgCmRvY2tlciBwdWxsIGRzaGFubGV5L3ZhY3V1bQpgYGAKClRvIHJ1biwgbW91bnQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXIgdG8gdGhlIGNvbnRhaW5lciBhbmQgdXNlIGEgcmVsYXRpdmUgcGF0aCB0byB5b3VyIHNwZWMsIGxpa2Ugc28KCmBgYApkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovd29yazpybyBkc2hhbmxleS92YWN1dW0gbGludCA8eW91ci1vcGVuYXBpLXNwZWMueWFtbD4KYGBgCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gcHVsbCBpdCBmcm9tCltHaXRodWIgcGFja2FnZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZlc2hhbmxleS92YWN1dW0vcGtncy9jb250YWluZXIvdmFjdXVtKS4KVG8gZG8gdGhhdCwgcmVwbGFjZSBgZHNoYW5sZXkvdmFjdXVtYCB3aXRoIGBnaGNyLmlvL2RhdmVzaGFubGV5L3ZhY3V1bWAgaW4gdGhlIGFib3ZlIGNvbW1hbmRzLgoKIyMgUnVuIHdpdGggR28KCklmIHlvdSBoYXZlIGdvID49IDEuMTYgaW5zdGFsbGVkLCB5b3UgY2FuIHVzZSBgZ28gcnVuYCB0byBidWlsZCBhbmQgcnVuIGl0OgoKYGBgCmdvIHJ1biBnaXRodWIuY29tL2RhdmVzaGFubGV5L3ZhY3V1bUBsYXRlc3QgbGludCA8eW91ci1vcGVuYXBpLXNwZWMueWFtbD4KYGBgCgotLS0KCgojIyBTcG9uc29ycwpJZiB5b3VyIGNvbXBhbnkgaXMgdXNpbmcgYHZhY3V1bWAsIHBsZWFzZSBjb25zaWRlcmluZyBbc3VwcG9ydGluZyB0aGlzIHByb2plY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9kYXZlc2hhbmxleSksCmxpa2Ugb3VyIF92ZXJ5IGtpbmRfIHNwb25zb3JzOgoKCjxhIGhyZWY9Imh0dHBzOi8vc3BlYWtlYXN5YXBpLmRldi8/dXRtX3NvdXJjZT12YWN1dW0rcmVwbyZ1dG1fbWVkaXVtPWdpdGh1YitzcG9uc29yc2hpcCI+CjxwaWN0dXJlPgogIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iLmdpdGh1Yi9zcG9uc29ycy9zcGVha2Vhc3ktZ2l0aHViLXNwb25zb3ItZGFyay5zdmciPgogIDxpbWcgYWx0PSJzcGVha2Vhc3knIiBzcmM9Ii5naXRodWIvc3BvbnNvcnMvc3BlYWtlYXN5LWdpdGh1Yi1zcG9uc29yLWxpZ2h0LnN2ZyI+CjwvcGljdHVyZT4KPC9hPgoKW1NwZWFrZWFzeV0oaHR0cHM6Ly9zcGVha2Vhc3lhcGkuZGV2Lz91dG1fc291cmNlPXZhY3V1bStyZXBvJnV0bV9tZWRpdW09Z2l0aHViK3Nwb25zb3JzaGlwKQoKPGEgaHJlZj0iaHR0cHM6Ly9zY2FsYXIuY29tIj4KPHBpY3R1cmU+CiAgPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSIuZ2l0aHViL3Nwb25zb3JzL3NjYWxhci1kYXJrLnBuZyI+CiAgPGltZyBhbHQ9InNjYWxhciIgc3JjPSIuZ2l0aHViL3Nwb25zb3JzL3NjYWxhci1saWdodC5wbmciPgo8L3BpY3R1cmU+CjwvYT4KCltzY2FsYXJdKGh0dHBzOi8vc2NhbGFyLmNvbSkKCi0tLQoKIyMgQ29tZSBjaGF0IHdpdGggdXMKCk5lZWQgaGVscD8gSGF2ZSBhIHF1ZXN0aW9uPyBXYW50IHRvIHNoYXJlIHlvdXIgd29yaz8gW0pvaW4gb3VyIGRpc2NvcmRdKGh0dHBzOi8vZGlzY29yZC5nZy9VQWNVRjc4TVFOKSBhbmQKY29tZSBzYXkgaGkhCgojIyBEb2N1bWVudGF0aW9uCgrwn5SlICoqTmV3IGluKiogYHYwLjEyK2Ag8J+UpSA6ICoqQ29yZSBmdW5jdGlvbnMgc3VwcG9ydCBKU09OIFBhdGgqKi4KCk5vdyBhbGwgKipjb3JlKiogZnVuY3Rpb25zIHJldHVybiB0aGUgKipjb3JyZWN0IGFuZCBhY2N1cmF0ZSBKU09OIHBhdGggZm9yIGVhY2ggbGludGluZyByZXN1bHQqKi4gUHJldmlvdXNseSB0aGlzIHdhcyBub3QgcG9zc2libGUKYXQgYWxsLCBidXQgd2l0aCBzb21lIGNsZXZlciBlbmdpbmVlcmluZywgd2UgaGF2ZSBtYWRlIGl0IGhhcHBlbi4gSXQncyBhIHNtYWxsIHRoaW5nLCBidXQgd2l0aCBodWdlIGltcGFjdC4KClRoaXMgZmVhdHVyZSBoYXMgYmVlbiBhdmFpbGFibGUgb24gdGhlIE9wZW5BUEkgZnVuY3Rpb25zIGZvciBzb21lIHRpbWUsIGhvd2V2ZXIgY29yZSBmdW5jdGlvbnMgd2VyZSB3aXRob3V0IGEgY29tcGFyaXNvbi4KQnV0IG5vIG1vcmUhIGNvcmUgZnVuY3Rpb25zIGhhdmUgam9pbmVkIHRoZSBwYXJ0eS4KCkEgbmV3IGAtLW5vLWNsaXBgIGZsYWcgaXMgYXZhaWxhYmxlIG9uIHRoZSBgbGludGAgY29tbWFuZC4gVGhpcyBwcmV2ZW50cyBtZXNzYWdlL3BhdGggdHJ1bmNhdGlvbi4KCi0tLQoKYHYwLjExK2A6IElnbm9yZSBMaW50aW5nIEVycm9ycy9WaW9sYXRpb25zLgoKdjAuMTEgaW50cm9kdWNlcyB0aGUgYWJpbGl0eSB0byBpZ25vcmUgc3BlY2lmaWMgbGludGluZyBlcnJvcnMuIFRoaXMgaXMgdXNlZnVsIGZvciB3aGVuIHlvdSB3YW50IHRvIGltcGxlbWVudCBuZXcgCnJ1bGVzIHRvIGV4aXN0aW5nIHByb2R1Y3Rpb24gQVBJcy4gSW4gc29tZSBjYXNlcywgY29ycmVjdGluZyB0aGUgbGludCBlcnJvcnMgd291bGQgcmVzdWx0IGluIGEgYnJlYWtpbmcgY2hhbmdlLiAKCkhhdmluZyBhIHdheSB0byBpZ25vcmUgdGhlc2UgZXJyb3JzIGFsbG93cyB5b3UgdG8gaW1wbGVtZW50IHRoZSBuZXcgcnVsZXMgZm9yIG5ldyBBUElzIHdoaWxlIG1haW50YWluaW5nIApiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgZXhpc3Rpbmcgb25lcy4KCltMZWFybiBtb3JlIGFib3V0IGlnbm9yaW5nIHZpb2xhdGlvbnNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vaWdub3JpbmcvKQoKLS0tCgpgdjAuMTArYCA6ICoqUXVhbGl0eSByZWxlYXNlKiouCgp2MC4xMCBpcyBhIHF1YWxpdHkgcmVsZWFzZSwgd2l0aCBhIG51bWJlciBvZiBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIHRvIHJ1bGUgc2NoZW1hcywgZnVuY3Rpb24gbmFtZXMgYW5kIG1vcmUuIAp2YWN1dW0gbm93IHBvd2VycyBbVGhlIE9wZW5BUEkgZG9jdG9yXShodHRwczovL3BiMzNmLmlvL2RvY3Rvci8pLiBUbyBlbmFibGUgY29ycmVjdCBydWxlc2V0IG1hbmFnZW1lbnQgYW5kIGF1dG9tYXRpb24KYSBudW1iZXIgb2YgZnVuY3Rpb25zIGhhdmUgYmVlbiByZW5hbWVkLCBpbnRlcmZhY2VzIGhhdmUgYmVlbiB1cGdyYWRlZCBhbmQgcnVsZSBmdW5jdGlvbnMgc2NoZW1hcyBhcmUgbm93IGFjY3VyYXRlLiAKClRoaXMgaXMgYSBicmVha2luZyBjaGFuZ2UgZm9yIGFueW9uZSB1c2luZyB2YWN1dW0gYXMgYSBsaWJyYXJ5IHdpdGggY3VzdG9tIHJ1bGVzLiAKCi0tLQoKYHYwLjkrYCA6ICoqQnVpbHQgaW4gTGFuZ3VhZ2UgU2VydmVyKiouCgpBIG5ldyBjb21tYW5kIGlzIGF2YWlsYWJsZSBgbGFuZ3VhZ2Utc2VydmVyYC4gVGhpcyBzdGFydHMgdmFjdXVtIGFzIGFuIExTUCBjb21wYXRpYmxlIGxhbmd1YWdlIHNlcnZlci4gUnVuIHZhY3V1bQppbiB5b3VyIGZhdm9yaXRlIElERSBhbmQgZ2V0IGxpbnRpbmcgYW5kIHZhbGlkYXRpb24gYXMgeW91IHR5cGUsIGluIHJlYWx0aW1lLgoKV2lsbCBzdXBwb3J0IGFueSBMU1AgY29tcGF0aWJsZSBlZGl0b3IsIGxpa2UgVlNDb2RlLCBTdWJsaW1lLCB2aW0sIGV0Yy4KCltJbnN0YWxsIHRoZSBWU0NvZGUgZXh0ZW5zaW9uXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9cGIzM2YudmFjdXVtKQpbTGVhcm4gbW9yZSBhYm91dCB0aGUgbGFuZ3VhZ2Utc2VydmVyIGNvbW1hbmRdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vY29tbWFuZHMvbGFuZ3VhZ2Utc2VydmVyLykKCi0tLQoKYHYwLjgrYCA6ICoqT3BlbkFQSSBCdW5kbGVyKiouCgpBIG5ldyBjb21tYW5kIGlzIGF2YWlsYWJsZSBgYnVuZGxlYCB3aWxsIGJ1bmRsZSBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcyBmb3IgYW4gT3BlbkFQSSBmaWxlIGludG8gYSBzaW5nbGUgZmlsZS4KCltMZWFybiBtb3JlIGFib3V0IHRoZSBidW5kbGUgY29tbWFuZF0oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9jb21tYW5kcy9idW5kbGUvKQoKQSBuZXcgbGludGluZyBydWxlIGlzIGF2YWlsYWJsZSBgb2FzLXNjaGVtYS1jaGVja2Agd2lsbCBwZXJmb3JtIHR5cGUgY2hlY2tzIGFuZCB2YWxpZGF0aW9uIG9uIGFsbCBzY2hlbWFzIGluIHlvdXIKT3BlbkFQSSBmaWxlLiBJdCdzIGVuYWJsZWQgYnkgZGVmYXVsdCBpbiB0aGUgcmVjb21tZW5kZWQgcnVsZXNldC4KCltvYXMtc2NoZW1hLWNoZWNrIHJ1bGUgZG9jc10oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9ydWxlcy9zY2hlbWFzL29hcy1zY2hlbWEtY2hlY2svKQoKLS0tCgpgdjAuNytgIDogKipIYXJkIE1vZGUqKi4KCldhbnQgdG8gbGludCB5b3VyIHNwZWMgd2l0aCB0aGUgbW9zdCBzdHJpY3QgcnVsZXNldCBwb3NzaWJsZT8gTm93IHlvdSBjYW4hIFVzZSB0aGUgYC16YCAvIGAtLWhhcmQtbW9kZWAgZmxhZyB0byBlbmFibGUKCi0tLQoKYHYwLjYrYCA6ICoqU2hhcmFibGUgLyBkaXN0cmlidXRlZCBydWxlc2V0cyoqICBub3cgYXZhaWxhYmxlLgoKV2FudCB0byBzaGFyZSAvIGV4dGVuZCAvIGRpc3RyaWJ1dGUgeW91ciBvd24gcnVsZXNldHM/IE5vdyB5b3UgY2FuIQoKW0xlYXJuIG1vcmUgYWJvdXQgc2hhcmFibGUgcnVsZXNldHNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vcnVsZXNldHMvc2hhcmluZy8pCgotLS0KCmB2MC41K2AgOiAqKk11bHRpLWZpbGUgbGludGluZyoqICBub3cgYXZhaWxhYmxlIGZvciB0aGUgYGxpbnRgIGNvbW1hbmQuCgpXYW50IHRvIGxpbnQgbXVsdGlwbGUgZmlsZXMgYXQgb25jZT8gTm93IHlvdSBjYW4hCgpgYGBzaGVsbAp2YWN1dW0gbGludCBmaWxlMS5qc29uIHBhdGgvdG8vZmlsZTIueWFtbCBmaWxlMy5qc29uIApgYGAKCldhbnQgdG8gc3VjayBpbiBhIHRvbiBvZiBmaWxlcz8gVXNlIGEgKipnbG9iKiogcGF0dGVybiEKCmBgYHNoZWxsCnZhY3V1bSBsaW50IHNvbWUvcGF0aC8qKi8qLnlhbWwgCmBgYAoKCi0tLQpgdjAuMytgOiBbQ3VzdG9tIEphdmFTY3JpcHQgRnVuY3Rpb25zXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2FwaS9jdXN0b20tamF2YXNjcmlwdC1mdW5jdGlvbnMvKSBhcmUgbm93IGF2YWlsYWJsZSBvdXQgb2YgdGhlIGJveC4KCldyaXRlIGN1c3RvbSBmdW5jdGlvbnMgaW4gSmF2YVNjcmlwdCBhbmQgdXNlIHRoZW0gaW4gYW55IHJ1bGVzZXQuIE5vIG5lZWQKdG8gY29tcGlsZSBnb2xhbmcgY29kZSB0byBleHRlbmQgdmFjdXVtIGFueW1vcmUhCgpbTGVhcm4gbW9yZSBhYm91dCBidWlsZGluZyBjdXN0b20gSmF2YVNjcmlwdCBmdW5jdGlvbnNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vYXBpL2N1c3RvbS1qYXZhc2NyaXB0LWZ1bmN0aW9ucy8pLgoKCi0tLQpgdjAuMitgOiBbT1dBU1AgQVBJIHJ1bGVzXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzL293YXNwLykgYXJlIG5vdyBhdmFpbGFibGUgb3V0IG9mIHRoZSBib3guCgpbTGVhcm4gbW9yZSBhYm91dCBlbmFibGluZyBPV0FTUCBBUEkgcnVsZXNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vcnVsZXNldHMvb3dhc3AvKS4KCi0tLQoKIyMjIFtRdWljayBTdGFydCBHdWlkZSDwn5qAXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3N0YXJ0KQoKU2VlIGFsbCB0aGUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL3F1b2JpeC5jb20vdmFjdXVtCgotIFtJbnN0YWxsaW5nIHZhY3V1bV0oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9pbnN0YWxsaW5nLykKLSBbQWJvdXQgdmFjdXVtXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2Fib3V0LykKLSBbV2h5IHNob3VsZCB5b3UgY2FyZT9dKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vd2h5LykKLSBbQ29uY2VwdHNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vY29uY2VwdHMvKQotIFtGQVFdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vZmFxLykKLSBbQ0xJIENvbW1hbmRzXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2NvbW1hbmRzLykKICAtIFtsaW50XShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2NvbW1hbmRzL2xpbnQvKQogIC0gW3ZhY3V1bSByZXBvcnRdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vY29tbWFuZHMvcmVwb3J0LykKICAtIFtkYXNoYm9hcmRdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vY29tbWFuZHMvZGFzaGJvYXJkLykKICAtIFtodG1sLXJlcG9ydF0oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9jb21tYW5kcy9odG1sLXJlcG9ydC8pCiAgLSBbYnVuZGxlXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2NvbW1hbmRzL2J1bmRsZS8pCiAgLSBbc3BlY3RyYWwtcmVwb3J0XShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2NvbW1hbmRzL3NwZWN0cmFsLXJlcG9ydC8pCi0gW0RldmVsb3BlciBBUEldKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vYXBpL2dldHRpbmctc3RhcnRlZC8pCiAgLSBbVXNpbmcgVGhlIEluZGV4XShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2FwaS9zcGVjLWluZGV4LykKICAtIFtSdWxlUmVzdWx0U2V0XShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2FwaS9ydWxlLXJlc3VsdHNldC8pCiAgLSBbTG9hZGluZyBhIFJ1bGVTZXRdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vYXBpL2xvYWRpbmctcnVsZXNldC8pCiAgLSBbTGludGluZyBOb24tT3BlbkFQSSBGaWxlc10oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9hcGkvbm9uLW9wZW5hcGkvKQogIC0gW0N1c3RvbSBHb2xhbmcgRnVuY3Rpb25zXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2FwaS9jdXN0b20tZnVuY3Rpb25zLykKICAtIFtDdXN0b20gSmF2YVNjcmlwdCBGdW5jdGlvbnNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vYXBpL2N1c3RvbS1qYXZhc2NyaXB0LWZ1bmN0aW9ucy8pCi0gW1J1bGVzXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzLykKICAtIFtFeGFtcGxlc10oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9ydWxlcy9leGFtcGxlcy8pCiAgLSBbVGFnc10oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9ydWxlcy90YWdzLykKICAtIFtEZXNjcmlwdGlvbnNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vcnVsZXMvZGVzY3JpcHRpb25zLykKICAtIFtTY2hlbWFzXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzL3NjaGVtYXMvKQogIC0gW1NwZWMgSW5mb3JtYXRpb25dKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vcnVsZXMvaW5mb3JtYXRpb24vKQogIC0gW09wZXJhdGlvbnMgJiBQYXRoc10oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9ydWxlcy9vcGVyYXRpb25zLykKICAtIFtWYWxpZGF0aW9uXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzL3ZhbGlkYXRpb24vKQogIC0gW1NlY3VyaXR5XShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzL3NlY3VyaXR5LykKICAtIFtPV0FTUF0oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9ydWxlcy9vd2FzcC8pCi0gW0Z1bmN0aW9uc10oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9mdW5jdGlvbnMvKQogIC0gW0NvcmUgRnVuY3Rpb25zXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL2Z1bmN0aW9ucy9jb3JlLykgCiAgLSBbT3BlbkFQSSBGdW5jdGlvbnNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vZnVuY3Rpb25zL29wZW5hcGkvKQogIC0gW09XQVNQIEZ1bmN0aW9uc10oaHR0cHM6Ly9xdW9iaXguY29tL3ZhY3V1bS9mdW5jdGlvbnMvb3dhc3AvKQotIFtVbmRlcnN0YW5kaW5nIFJ1bGVTZXRzXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzZXRzL3VuZGVyc3RhbmRpbmcvKQogIC0gW1NoYXJpbmcgUnVsZVNldHNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vcnVsZXNldHMvc2hhcmluZy8pCiAgLSBbQWxsIFJ1bGVzXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzZXRzL2FsbC8pCiAgLSBbTm8gUnVsZXNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vcnVsZXNldHMvbm8tcnVsZXMvKQogIC0gW1JlY29tbWVuZGVkIFJ1bGVzXShodHRwczovL3F1b2JpeC5jb20vdmFjdXVtL3J1bGVzZXRzL3JlY29tbWVuZGVkLykKICAtIFtDdXN0b20gUnVsZXNdKGh0dHBzOi8vcXVvYml4LmNvbS92YWN1dW0vcnVsZXNldHMvY3VzdG9tLXJ1bGVzZXRzLykKCi0tLQoKPiAqKnZhY3V1bSBjYW4gc3VjayBhbGwgdGhlIGxpbnQgb2YgYSA1bWIgT3BlbkFQSSBzcGVjIGluIG1pbGxpc2Vjb25kcy4qKgoKRGVzaWduZWQgdG8gcmVsaWFibHkgbGludCBPcGVuQVBJIHNwZWNpZmljYXRpb25zLCAqKnZlcnksIHZlcnkgcXVpY2tseSoqLiBJbmNsdWRpbmcgX3ZlcnkgbGFyZ2VfIG9uZXMuIFNwZWN0cmFsIGNhbiBiZSBxdWl0ZSBzbG93CndoZW4gdXNlZCBhcyBhbiBBUEkgYW5kIGRvZXMgbm90IHNjYWxlIGZvciBlbnRlcnByaXNlIGFwcGxpY2F0aW9ucy4KCnZhY3V1bSB3aWxsIHRlbGwgeW91IHdoYXQgaXMgd3Jvbmcgd2l0aCB5b3VyIHNwZWMsIHdoeSwgd2hlcmUgYW5kIGhvdyB0byBmaXggaXQuIAoKdmFjdXVtIHdpbGwgd29yayBhdCBzY2FsZSBhbmQgaXMgZGVzaWduZWQgYXMgYSBDTEkgKHdpdGggYSB3ZWIgb3IgY29uc29sZSBVSSkgYW5kIGEgbGlicmFyeSB0byBiZSBjb25zdW1lZCBpbiBvdGhlciBhcHBsaWNhdGlvbnMuCgojIyMgRGFzaGJvYXJkCgp2YWN1dW0gY29tZXMgd2l0aCBhbiBpbnRlcmFjdGl2ZSBkYXNoYm9hcmQgKGB2YWN1dW0gZGFzaGJvYXJkIDx5b3VyLW9wZW5hcGktc3BlYy55YW1sPmApIGFsbG93aW5nIHlvdSB0byBleHBsb3JlCnJ1bGVzIGFuZCB2aW9sYXRpb25zIGluIGEgY29uc29sZSwgd2l0aG91dCBoYXZpbmcgdG8gc2Nyb2xsIHRocm91Z2ggdGhvdXNhbmRzIG9mIHJlc3VsdHMuCgohW3ZhY3V1bSBkYXNoYm9hcmRdKGRhc2hib2FyZC1zY3JlZW5zaG90LnBuZykKCiMjIyBIVE1MIFJlcG9ydAoKdmFjdXVtIGNhbiBnZW5lcmF0ZSBhbiBlYXN5IHRvIG5hdmlnYXRlIGFuZCB1bmRlcnN0YW5kIEhUTUwgcmVwb3J0LiBMaWtlIHRoZSBkYXNoYm9hcmQKeW91IGNhbiBleHBsb3JlIGJyb2tlbiBydWxlcyBhbmQgdmlvbGF0aW9ucywgYnV0IGluIHlvdXIgYnJvd3Nlci4KCk5vIGV4dGVybmFsIGRlcGVuZGVuY2llcywgdGhlIEhUTUwgcmVwb3J0IHdpbGwgcnVuIGNvbXBsZXRlbHkgb2ZmbGluZS4KCiFbdmFjdXVtIGh0bWwtcmVwb3J0XShodG1sLXJlcG9ydC1zY3JlZW5zaG90LnBuZykKCi0tLQoKPiAqKl9TdXBwb3J0cyBPcGVuQVBJIFZlcnNpb24gMiAoU3dhZ2dlcikgYW5kIFZlcnNpb24gMytfKioKCllvdSBjYW4gdXNlIGVpdGhlciAqKllBTUwqKiBvciAqKkpTT04qKiwgdmFjdXVtIHN1cHBvcnRzIGJvdGggZm9ybWF0cy4KCiMjIFVzaW5nIHZhY3V1bSB3aXRoIHByZS1jb21taXQKClZhY3V1bSBjYW4gYmUgdXNlZCB3aXRoIFtwcmUtY29tbWl0XShodHRwczovL3ByZS1jb21taXQuY29tKS4KClRvIGRvIHRoYXQsIGFkZCB0byB5b3VyIGAucHJlLWNvbW1pdC1jb25maWcueWFtbGA6CgpgYGB5YW1sCnJlcG9zOgogIC0gcmVwbzogaHR0cHM6Ly9naXRodWIuY29tL2RhdmVzaGFubGV5L3ZhY3V1bQogICAgcmV2OiAjIGEgdGFnIG9yIGEgY29tbWl0IGhhc2ggZnJvbSB0aGlzIHJlcG8sIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGF2ZXNoYW5sZXkvdmFjdXVtL3JlbGVhc2VzCiAgICBob29rczoKICAgICAgLSBpZDogdmFjdXVtCmBgYAoKU2VlIHRoZSBbaG9vayBkZWZpbml0aW9uXSguLy5wcmUtY29tbWl0LWhvb2tzLnlhbWwpIGhlcmUgZm9yIGRldGFpbHMgb24gd2hhdCBvcHRpb25zIHRoZSBob29rIHVzZXMgYW5kIHdoYXQgZmlsZXMgaXQgY2hlY2tzIGJ5IGRlZmF1bHQuCgpJZiBubyBmaWxlbmFtZXMgb3IgbW9yZSB0aGFuIG9uZSBmaWxlbmFtZSBpbiB5b3VyIHJlcG9zaXRvcnkgbWF0Y2hlcyB0aGUgZGVmYXVsdCBgZmlsZXNgIHBhdHRlcm4gaW4gdGhlIGhvb2sgZGVmaW5pdGlvbiwKdGhlIHBhdHRlcm4gbmVlZHMgdG8gYmUgb3ZlcnJpZGRlbiBpbiB5b3VyIGNvbmZpZyBzbyB0aGF0IGl0IG1hdGNoZXMgZXhhY3RseSBvbmUgZmlsZW5hbWUgdG8gbGludCBhdCBhIHRpbWUuClRvIGxpbnQgbXVsdGlwbGUgZmlsZXMsIHNwZWNpZnkgdGhlIGhvb2sgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgb3ZlcnJpZGVzLgoKIyMgQnVpbGQgYW4gaW50ZXJhY3RpdmUgSFRNTCByZXBvcnQgCgpgYGAKLi92YWN1dW0gaHRtbC1yZXBvcnQgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWwgfCB2YWN1dW0tcmVwb3J0Lmpzb24uZ3o+IDxyZXBvcnQtbmFtZS5odG1sPgpgYGAKCllvdSBjYW4gcmVwbGFjZSBgcmVwb3J0LW5hbWUuaHRtbGAgd2l0aCB5b3VyIG93biBjaG9pY2Ugb2YgZmlsZW5hbWUuIE9wZW4gdGhlIHJlcG9ydAppbiB5b3VyIGZhdm9yaXRlIGJyb3dzZXIgYW5kIGV4cGxvcmUgdGhlIHJlc3VsdHMuIAoKCiMjIFNlZSBmdWxsIGxpbnRpbmcgcmVwb3J0IAoKYGBgCi4vdmFjdXVtIGxpbnQgLWQgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWw+CmBgYAoKCiMjIExpbnQgbXVsdGlwbGUgZmlsZXMgYXQgb25jZQoKYGBgCi4vdmFjdXVtIGxpbnQgLWQgPHNwZWMxLnlhbWw+IDxzcGVjMi55YW1sPiA8c3BlYzMueWFtbD4KYGBgCgojIyBMaW50IG11bHRpcGxlIGZpbGVzIHVzaW5nIGEgZ2xvYiBwYXR0ZXJuCgpgYGAKLi92YWN1dW0gbGludCAtZCBzb21lL3BhdGgvKiovKi55YW1sCmBgYAoKIyMgU2VlIGZ1bGwgbGludGluZyByZXBvcnQgd2l0aCBpbmxpbmUgY29kZSBzbmlwcGV0cwoKYGBgCi4vdmFjdXVtIGxpbnQgLWQgLXMgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWw+CmBgYAoKIyMgU2VlIGp1c3QgdGhlIGxpbnRpbmcgZXJyb3JzCgpgYGAKLi92YWN1dW0gbGludCAtZCAtZSA8eW91ci1vcGVuYXBpLXNwZWMueWFtbD4KYGBgCgojIyBTZWUganVzdCBhIHNwZWNpZmljIGNhdGVnb3J5IG9mIHJlcG9ydAoKCmBgYAouL3ZhY3V1bSBsaW50IC1kIC1jIHNjaGVtYXMgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWw+CmBgYAoKVGhlIG9wdGlvbnMgaGVyZSBhcmU6CgotIGBleGFtcGxlc2AKLSBgb3BlcmF0aW9uc2AKLSBgaW5mb3JtYXRpb25gCi0gYGRlc2NyaXB0aW9uc2AKLSBgc2NoZW1hc2AKLSBgc2VjdXJpdHlgCi0gYHRhZ3NgCi0gYHZhbGlkYXRpb25gCi0gYG93YXNwYAoKIyMgR2VuZXJhdGUgYSBTcGVjdHJhbCBjb21wYXRpYmxlIHJlcG9ydAoKSWYgeW91J3JlIGFscmVhZHkgdXNpbmcgU3BlY3RyYWwgSlNPTiByZXBvcnRzLCBhbmQgeW91IHdhbnQgdG8gdXNlIHZhY3V1bSBpbnN0ZWFkLCB1c2UgdGhlIGBzcGVjdHJhbC1yZXBvcnRgIGNvbW1hbmQKCmBgYAouL3ZhY3V1bSBzcGVjdHJhbC1yZXBvcnQgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWw+IDxyZXBvcnQtb3V0cHV0LW5hbWUuanNvbj4KYGBgCgpUaGUgcmVwb3J0IGZpbGUgbmFtZSBpcyBfb3B0aW9uYWxfLiBUaGUgZGVmYXVsdCByZXBvcnQgb3V0cHV0IG5hbWUgaXMgYHZhY3V1bS1zcGVjdHJhbC1yZXBvcnQuanNvbmAKCgojIyBHZW5lcmF0ZSBhIGB2YWN1dW0gcmVwb3J0YAoKVmFjdXVtIHJlcG9ydHMgYXJlIGNvbXBsZXRlIHNuYXBzaG90cyBpbiB0aW1lIG9mIGEgbGludGluZyByZXBvcnQgZm9yIGEgc3BlY2lmaWNhdGlvbi4gVGhlc2UgcmVwb3J0cyBjYW4gYmUgJ3JlcGxheWVkJyAKYmFjayB0aHJvdWdoIHZhY3V1bS4gVXNlIHRoZSBgZGFzaGJvYXJkYCBvciB0aGUgYGh0bWwtcmVwb3J0YCBjb21tYW5kcyB0byAncmVwbGF5JyB0aGUgcmVwb3J0IGFuZCBleHBsb3JlIHRoZSByZXN1bHRzCmFzIHRoZXkgd2VyZSB3aGVuIHRoZSByZXBvcnQgd2FzIGdlbmVyYXRlZC4KCmBgYAouL3ZhY3V1bSByZXBvcnQgLWMgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWw+IDxyZXBvcnQtcHJlZml4PgpgYGAKClRoZSBkZWZhdWx0IG5hbWUgb2YgdGhlIHJlcG9ydCB3aWxsIGJlIGB2YWN1dW0tcmVwb3J0LU1NLURELVlZLUhIX01NX1NTLmpzb25gLiBZb3UgY2FuIGNoYW5nZSB0aGUgcHJlZml4IGJ5IHN1cHBseWluZwppdCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBgcmVwb3J0YCBjb21tYW5kLiAKCklkZWFsbHksICoqeW91IHNob3VsZCBjb21wcmVzcyB0aGUgcmVwb3J0IHVzaW5nIGAtY2AqKi4gVGhpcyBzaHJpbmtzIGRvd24gdGhlIHNpemUgc2lnbmlmaWNhbnRseS4gdmFjdXVtIGF1dG9tYXRpY2FsbHkKcmVjb2duaXplcyBhIGNvbXByZXNzZWQgcmVwb3J0IGZpbGUgYW5kIHdpbGwgZGVhbCB3aXRoIGl0IGF1dG9tYXRpY2FsbHkgd2hlbiByZWFkaW5nLgoKPiBXaGVuIHVzaW5nIGNvbXByZXNzaW9uLCB0aGUgZmlsZSBuYW1lIHdpbGwgYmUgYHZhY3V1bS1yZXBvcnQtTU0tREQtWVktSEhfTU1fU1MuanNvbi5nemAuIHZhY3V1bSB1c2VzIGd6aXAgaW50ZXJuYWxseS4KCiMjIElnbm9yaW5nIHNwZWNpZmljIGxpbnRpbmcgZXJyb3JzCgpZb3UgY2FuIGlnbm9yZSBzcGVjaWZpYyBsaW50aW5nIGVycm9ycyBieSBwcm92aWRpbmcgYW4gYC0taWdub3JlLWZpbGVgIGFyZ3VtZW50IHRvIHRoZSBgbGludGAgYW5kIGByZXBvcnRgIGNvbW1hbmRzLgoKYGBgCi4vdmFjdXVtIGxpbnQgLS1pZ25vcmUtZmlsZSA8cGF0aC10by1pZ25vcmUtZmlsZS55YW1sPiAtZCA8eW91ci1vcGVuYXBpLXNwZWMueWFtbD4KYGBgCgpgYGAKLi92YWN1dW0gcmVwb3J0IC0taWdub3JlLWZpbGUgPHBhdGgtdG8taWdub3JlLWZpbGUueWFtbD4gLWMgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWw+IDxyZXBvcnQtcHJlZml4PgpgYGAKClRoZSBpZ25vcmUtZmlsZSBzaG91bGQgcG9pbnQgdG8gYSAueWFtbCBmaWxlIHRoYXQgY29udGFpbnMgYSBsaXN0IG9mIGVycm9ycyB0byBiZSBpZ25vcmVkIGJ5IHZhY3V1bS4gVGhlIHN0cnVjdHVyZSBvZiB0aGUKeWFtbCBmaWxlIGlzIGFzIGZvbGxvd3M6CgpgYGAKPHJ1bGUtaWQtMT46CiAgLSA8anNvbl9wYXRoX3RvX2Vycm9yX29yX3dhcm5pbmdfMT4KICAtIDxqc29uX3BhdGhfdG9fZXJyb3Jfb3Jfd2FybmluZ18yPgo8cnVsZS1pZC0yPjoKICAtIDxqc29uX3BhdGhfdG9fZXJyb3Jfb3Jfd2FybmluZ18xPgogIC0gPGpzb25fcGF0aF90b19lcnJvcl9vcl93YXJuaW5nXzI+CiAgLi4uCmBgYAoKSWdub3JpbmcgZXJyb3JzIGlzIHVzZWZ1bCBmb3Igd2hlbiB5b3Ugd2FudCB0byBpbXBsZW1lbnQgbmV3IHJ1bGVzIHRvIGV4aXN0aW5nIHByb2R1Y3Rpb24gQVBJcy4gSW4gc29tZSBjYXNlcywgCmNvcnJlY3RpbmcgdGhlIGxpbnQgZXJyb3JzIHdvdWxkIHJlc3VsdCBpbiBhIGJyZWFraW5nIGNoYW5nZS4gSGF2aW5nIGEgd2F5IHRvIGlnbm9yZSB0aGVzZSBlcnJvcnMgYWxsb3dzIHlvdSB0byBpbXBsZW1lbnQKdGhlIG5ldyBydWxlcyBmb3IgbmV3IEFQSXMgd2hpbGUgbWFpbnRhaW5pbmcgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGV4aXN0aW5nIG9uZXMuCgotLS0KCiMjIFRyeSBvdXQgdGhlIGRhc2hib2FyZAoKVGhpcyBpcyBhbiBlYXJseSwgYnV0IHdvcmtpbmcgY29uc29sZSBVSSBmb3IgdmFjdXVtLiBUaGUgY29kZSBpc24ndCBncmVhdCwgaXQgbmVlZHMgYSBsb3Qgb2YgY2xlYW4gdXAsIGJ1dAppZiB5b3UncmUgaW50ZXJlc3RlZCBpbiBzZWVpbmcgaG93IHRoaW5ncyBhcmUgcHJvZ3Jlc3NpbmcsIGl0J3MgYXZhaWxhYmxlLgoKYGBgCi4vdmFjdXVtIGRhc2hib2FyZCA8eW91ci1vcGVuYXBpLXNwZWMueWFtbCB8IHZhY3V1bS1yZXBvcnQuanNvbi5nej4KYGBgCgotLS0KIyMgU3VwcGx5IHlvdXIgb3duIFNwZWN0cmFsIGNvbXBhdGlibGUgcnVsZXNldAoKSWYgeW91J3JlIGFscmVhZHkgdXNpbmcgU3BlY3RyYWwgYW5kIHlvdSBoYXZlIHlvdXIgb3duIFtjdXN0b20gcnVsZXNldF0oaHR0cHM6Ly9tZXRhLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL2U1Yjk2MTZkNmQ1MGMtY3VzdG9tLXJ1bGVzZXRzI2N1c3RvbS1ydWxlc2V0cyksCnRoZW4geW91IGNhbiB1c2UgaXQgd2l0aCB2YWN1dW0hIAoKVGhlIGBsaW50YCwgYGRhc2hib2FyZGAgYW5kIGBzcGVjdHJhbC1yZXBvcnRgIGNvbW1hbmRzIGFsbCBhY2NlcHQgYSBgLXJgIG9yIGAtLXJ1bGVzZXRgIGZsYWcsIGRlZmluaW5nIHRoZSBwYXRoIHRvIHlvdXIgcnVsZXNldCBmaWxlLgoKIyMjIEhlcmUgYXJlIHNvbWUgZXhhbXBsZXMgeW91IGNhbiB0cnkKCioqX0FsbCBydWxlcyB0dXJuZWQgb2ZmXyoqCmBgYAouL3ZhY3V1bSBsaW50IC1yIHJ1bGVzZXRzL2V4YW1wbGVzL25vcnVsZXMtcnVsZXNldC55YW1sIDx5b3VyLW9wZW5hcGktc3BlYy55YW1sPgpgYGAKCioqX09ubHkgcmVjb21tZW5kZWQgcnVsZXNfKioKYGBgCi4vdmFjdXVtIGxpbnQgLXIgcnVsZXNldHMvZXhhbXBsZXMvcmVjb21tZW5kZWQtcnVsZXNldC55YW1sIDx5b3VyLW9wZW5hcGktc3BlYy55YW1sPgpgYGAKCioqX0VuYWJsZSBzcGVjaWZpYyBydWxlcyBvbmx5XyoqCmBgYAouL3ZhY3V1bSBsaW50IC1yIHJ1bGVzZXRzL2V4YW1wbGVzL3NwZWNpZmljLXJ1bGVzZXQueWFtbCA8eW91ci1vcGVuYXBpLXNwZWMueWFtbD4KYGBgCgoqKl9DdXN0b20gcnVsZXNfKioKYGBgCi4vdmFjdXVtIGxpbnQgLXIgcnVsZXNldHMvZXhhbXBsZXMvY3VzdG9tLXJ1bGVzZXQueWFtbCA8eW91ci1vcGVuYXBpLXNwZWMueWFtbD4KYGBgCgoqKl9BbGwgcnVsZXMsIGFsbCBvZiB0aGVtISoqCmBgYAouL3ZhY3V1bSBsaW50IC1yIHJ1bGVzZXRzL2V4YW1wbGVzL2FsbC1ydWxlc2V0LnlhbWwgPHlvdXItb3BlbmFwaS1zcGVjLnlhbWw+CmBgYAoKLS0tCgojIyBDb25maWd1cmF0aW9uCgojIyMgRmlsZQpZb3UgY2FuIGNvbmZpZ3VyZSB2YWN1dW0gdXNpbmcgYSBjb25maWd1cmF0aW9uIGZpbGUgbmFtZWQgYHZhY3V1bS5jb25mLnlhbWxgCgpCeSBkZWZhdWx0LCB2YWN1dW0gc2VhcmNoZXMgZm9yIHRoaXMgZmlsZSBpbiB0aGUgZm9sbG93aW5nIGRpcmVjdG9yaWVzCjEuIFdvcmtpbmcgZGlyZWN0b3J5CjIuIGAkWERHX0NPTkZJR19IT01FYAozLiBgJHtIT01FfS8uY29uZmlnYAoKWW91IGNhbiBhbHNvIHNwZWNpZnkgYSBwYXRoIHRvIGEgZmlsZSB1c2luZyB0aGUgYC0tY29uZmlnYCBmbGFnCgpHbG9iYWwgZmxhZ3MgYXJlIGNvbmZpZ3VyZWQgYXMgdG9wIGxldmVsIG5vZGVzCmBgYHlhbWwKdGltZTogdHJ1ZQpiYXNlOiAnaHR0cDovL2V4YW1wbGUuY29tJwouLi4KYGBgCkNvbW1hbmQgc3BlY2lmaWMgZmxhZ3MgYXJlIGNvbmZpZ3VyZWQgdW5kZXIgYSBub2RlIHdpdGggdGhlIGNvbW1hbmRzIG5hbWUKYGBgeWFtbAouLi4KbGludDoKICBzaWxlbnQ6IHRydWUKICAuLi4KYGBgCgojIyMgRW52aXJvbm1lbnRhbCB2YXJpYWJsZXMKCllvdSBjYW4gY29uZmlndXJlIGdsb2JhbCB2YWN1dW0gZmxhZ3MgdXNpbmcgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgaW4gdGhlIGZvcm0gb2Y6IGBWQUNVVU1fPGZsYWc+YAoKSWYgYSBmbGFnLCBoYXMgYSBgLWAgaW4gaXQsIHJlcGxhY2Ugd2l0aCBgX2AKCj4gTG9nbyBnb3BoZXIgaXMgbW9kaWZpZWQsIG9yaWdpbmFsbHkgZnJvbSBbZWdvbmVsYnJlXShodHRwczovL2dpdGh1Yi5jb20vZWdvbmVsYnJlL2dvcGhlcnMpCg== readmeEtag: '"3e70d8fac716a1eb859de344d6778fedd5659aa5"' readmeLastModified: Fri, 16 Aug 2024 14:07:59 GMT repositoryId: 415667153 description: >- vacuum is the worlds fastest OpenAPI 3, OpenAPI 2 / Swagger linter and quality analysis tool. Built in go, it tears through API specs faster than you can think. vacuum is compatible with Spectral rulesets and generates compatible reports. created: '2021-10-10T18:24:19Z' updated: '2024-09-05T15:14:54Z' language: Go archived: false stars: 556 watchers: 8 forks: 43 owner: daveshanley logo: https://avatars.githubusercontent.com/u/187345?v=4 license: MIT repoEtag: '"4253575ee5079c107ba54026f646699a6258acc6f30c7ce57a7cebd0eaa7e456"' repoLastModified: Thu, 05 Sep 2024 15:14:54 GMT foundInMaster: true category: - Description Validators - Data Validators id: 45eaedfa8d8b1fcb106649241c2929d6 name: vacuum link: https://quobix.com/vacuum language: go source_description: >- A blazing fast OpenAPI linter and validator that is compatible with Spectral rulesets, and designed for enterprise-grade speed and scale. v2: true v3_1: true - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/vladkens/apigen-ts v3: true v3_1: true id: fe23c57d8d96bc45f44ec987d4758ed9 repositoryMetadata: base64Readme: >- IyBhcGlnZW4tdHMKCjxkaXYgYWxpZ249ImNlbnRlciI+CgpbPGltZyBzcmM9Imh0dHBzOi8vYmFkZ2VuLm5ldC9ucG0vdi9hcGlnZW4tdHMiIGFsdD0idmVyc2lvbiIgLz5dKGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvYXBpZ2VuLXRzKQpbPGltZyBzcmM9Imh0dHBzOi8vYmFkZ2VuLm5ldC9wYWNrYWdlcGhvYmlhL3B1Ymxpc2gvYXBpZ2VuLXRzIiBhbHQ9InNpemUiIC8+XShodHRwczovL3BhY2thZ2VwaG9iaWEubm93LnNoL3Jlc3VsdD9wPWFwaWdlbi10cykKWzxpbWcgc3JjPSJodHRwczovL2JhZGdlbi5uZXQvbnBtL2RtL2FwaWdlbi10cyIgYWx0PSJkb3dubG9hZHMiIC8+XShodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2FwaWdlbi10cykKWzxpbWcgc3JjPSJodHRwczovL2JhZGdlbi5uZXQvZ2l0aHViL2xpY2Vuc2UvdmxhZGtlbnMvYXBpZ2VuLXRzIiBhbHQ9ImxpY2Vuc2UiIC8+XShodHRwczovL2dpdGh1Yi5jb20vdmxhZGtlbnMvYXBpZ2VuLXRzL2Jsb2IvbWFpbi9MSUNFTlNFKQpbPGltZyBzcmM9Imh0dHBzOi8vYmFkZ2VuLm5ldC9zdGF0aWMvLS9idXklMjBtZSUyMGElMjBjb2ZmZWUvZmY4MTNmP2ljb249YnV5bWVhY29mZmVlJmxhYmVsIiBhbHQ9ImRvbmF0ZSIgLz5dKGh0dHBzOi8vYnV5bWVhY29mZmVlLmNvbS92bGFka2VucykKCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0iLi9sb2dvLnN2ZyIgYWx0PSJhcGlnZW4tdHMgbG9nbyIgaGVpZ2h0PSI4MCIgLz4KICA8ZGl2PlR5cGVTY3JpcHQgY2xpZW50IGdlbmVyYXRvciBmcm9tIE9wZW5BUEkgc2NoZW1hPC9kaXY+CjwvZGl2PgoKIyMgRmVhdHVyZXMKCi0gR2VuZXJhdGVzIHJlYWR5IHRvIHVzZSBgQXBpQ2xpZW50YCB3aXRoIHR5cGVzICh1c2luZyBgZmV0Y2hgKQotIFNpbmdsZSBvdXRwdXQgZmlsZSwgbWluaW1hbCB0aGlyZC1wYXJ0eSBjb2RlCi0gTG9hZHMgc2NoZW1hcyBmcm9tIEpTT04gLyBZQU1MLCBsb2NhbGx5IGFuZCByZW1vdGUKLSBBYmlsaXR5IHRvIGN1c3RvbWl6ZSBgZmV0Y2hgIHdpdGggeW91ciBjdXN0b20gZnVuY3Rpb24KLSBBdXRvbWF0aWMgZm9ybWF0aW5nIHdpdGggUHJldHRpZXIKLSBDYW4gcGFyc2UgZGF0ZXMgZnJvbSBkYXRlLXRpbWUgZm9ybWF0IChgLS1wYXJzZS1kYXRlc2AgZmxhZykKLSBTdXBwb3J0IE9wZW5BUEkgdjIsIHYzLCB2My4xCi0gQ2FuIGJlIHVzZWQgd2l0aCBucHggYXMgd2VsbAoKIyMgSW5zdGFsbAoKYGBgc2gKeWFybiBpbnN0YWxsIC1EIGFwaWdlbi10cwpgYGAKCiMjIFVzYWdlCgojIyMgMS4gR2VuZXJhdGUKCmBgYHNoCiMgRnJvbSB1cmwKeWFybiBhcGlnZW4tdHMgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIC4vYXBpLWNsaWVudC50cwoKIyBGcm9tIGZpbGUKeWFybiBhcGlnZW4tdHMgLi9vcGVuYXBpLmpzb24gLi9hcGktY2xpZW50LnRzCmBgYAoKUnVuIGB5YXJuIGFwaWdlbi10cyAtLWhlbHBgIGZvciBtb3JlIG9wdGlvbnMuIEV4YW1wbGVzIG9mIGdlbmVyYXRlZCBjbGllbnRzIFtoZXJlXSguL2V4YW1wbGVzLykuCgojIyMgMi4gSW1wb3J0CgpgYGB0cwppbXBvcnQgeyBBcGlDbGllbnQgfSBmcm9tICIuL2FwaS1jbGllbnQiCgpjb25zdCBhcGkgPSBuZXcgQXBpQ2xpZW50KHsKICBiYXNlVXJsOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcGkiLAogIGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogInNlY3JldC10b2tlbiIgfSwKfSkKYGBgCgojIyMgMy4gVXNlCgpgYGB0cwovLyBHRVQgL3BldC97cGV0SWR9CmF3YWl0IGFwaS5wZXQuZ2V0UGV0QnlJZCgxKSAvLyAtPiBQZXQKCi8vIEdFVCAvcGV0L2ZpbmRCeVN0YXR1cz9zdGF0dXM9c29sZAphd2FpdCBhcGkucGV0LmZpbmRQZXRzQnlTdGF0dXMoeyBzdGF0dXM6ICJzb2xkIiB9KSAvLyAtPiBQZXRzW10KCi8vIFBVVCAvdXNlci97dXNlcm5hbWV9OyBzZWNvbmQgYXJnIGJvZHkgd2l0aCB0eXBlIFVzZXIKYXdhaXQgYXBpLnVzZXIudXBkYXRlVXNlcigidXNlcm5hbWUiLCB7IGZpcnN0TmFtZTogIkpvaG4iIH0pCmBgYAoKIyMgQWR2YW5jZWQKCiMjIyBMb2dpbiBmbG93CgpgYGB0cwpjb25zdCB7IHRva2VuIH0gPSBhd2FpdCBhcGkuYXV0aC5sb2dpbih7IHVzZW5hbWUsIHBhc3N3b3JkIH0pCmFwaS5Db25maWcuaGVhZGVycyA9IHsgQXV0aG9yaXphdGlvbjogdG9rZW4gfQoKYXdhaXQgYXBpLnByb3RlY3RlZFJvdXRlLmdldCgpIC8vIGhlcmUgYXV0aGVudGljYXRlZApgYGAKCiMjIyBBdXRvbWF0aWMgZGF0ZSBwYXJzaW5nCgpgYGBzaAp5YXJuIGFwaWdlbi10cyAuL29wZW5hcGkuanNvbiAuL2FwaS1jbGllbnQudHMgLS1wYXJzZS1kYXRlcwpgYGAKCmBgYHRzCmNvbnN0IHBldCA9IGF3YWl0IGFwaS5wZXQuZ2V0UGV0QnlJZCgxKQpjb25zdCBjcmVhdGVkQXQ6IERhdGUgPSBwZXQuY3JlYXRlZEF0IC8vIGRhdGUgcGFyc2VkIGZyb20gc3RyaW5nIHdpdGggZm9ybWF0PWRhdGUtdGltZQpgYGAKCiMjIyBFcnJvcnMgaGFuZGxpbmcKCkFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBmb3IgYWxsIHVuc3VjY2Vzc2Z1bCByZXR1cm4gY29kZXMuCgpgYGB0cwp0cnkgewogIGNvbnN0IHBldCA9IGF3YWl0IGFwaS5wZXQuZ2V0UGV0QnlJZCg0MDQpCn0gY2F0Y2ggKGUpIHsKICBjb25zb2xlLmxvZyhlKSAvLyBwYXJzZSBlcnJvciBkZXBlbmQgb2YgeW91ciBkb21haW4gbW9kZWwsIGUgaXMgYXdhaXRlZCByZXNwb25zZS5qc29uKCkKfQpgYGAKCkFsc28geW91IGNhbiBkZWZpbmUgY3VzdG9tIGZ1bmN0aW9uIHRvIHBhcnNlIGVycm9yOgoKYGBgdHMKY2xhc3MgTXlDbGllbnQgZXh0ZW5kcyBBcGlDbGllbnQgewogIGFzeW5jIFBhcnNlRXJyb3IocmVwOiBSZXNwb25zZSkgewogICAgLy8gZG8gd2hhdCB5b3Ugd2FudAogICAgcmV0dXJuIHsgY29kZTogIkFQSV9FUlJPUiIgfQogIH0KfQoKdHJ5IHsKICBjb25zdCBhcGkgPSBuZXcgTXlDbGllbnQoKQogIGNvbnN0IHBldCA9IGF3YWl0IGFwaS5wZXQuZ2V0UGV0QnlJZCg0MDQpCn0gY2F0Y2ggKGUpIHsKICBjb25zb2xlLmxvZyhlKSAvLyBlIGlzIHsgY29kZTogIkFQSV9FUlJPUiIgfQp9CmBgYAoKIyMjIEJhc2UgdXJsIHJlc29sdmluZwoKWW91IGNhbiBtb2RpZnkgaG93IHRoZSBlbmRwb2ludCB1cmwgaXMgY3JlYXRlZC4gQnkgZGVmYXVsdCBbVVJMIGNvbnN0cnVjdG9yXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVVJML1VSTCkgdXNlZCB0byByZXNvbHZlIGVuZHBvaW50IHVybCBsaWtlOiBgbmV3IFVSTChwYXRoLCBiYXNlVXJsKWAgd2hpY2ggaGFzIHNwZWNpZmljIHJlc29sdmluZyBbcnVsZXNdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9VUkxfQVBJL1Jlc29sdmluZ19yZWxhdGl2ZV9yZWZlcmVuY2VzKS4gRS5nLjoKCi0gYG5ldyBVUkwoIi92Mi9jYXRzIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vdjEvIikgLy8gLT4gaHR0cHM6Ly9leGFtcGxlLmNvbS92Mi9jYXRzYAotIGBuZXcgVVJMKCJ2Mi9jYXRzIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vdjEvIikgLy8gLT4gaHR0cHM6Ly9leGFtcGxlLmNvbS92MS92Mi9jYXRzYAoKSWYgeW91IHdhbnQgdG8gaGF2ZSBjdXN0b20gZW5kcG9pbnQgdXJsIHJlc29sdmluZyBydWxlcywgeW91IGNhbiBvdmVycmlkZSBgUHJlcGFyZUZldGNoVXJsYCBtZXRob2QuIEZvciBtb3JlIGRldGFpbHMgc2VlIFtpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL3ZsYWRrZW5zL2FwaWdlbi10cy9pc3N1ZXMvMikuCgpgYGB0cwpjbGFzcyBNeUNsaWVudCBleHRlbmRzIEFwaUNsaWVudCB7CiAgUHJlcGFyZUZldGNoVXJsKHBhdGg6IHN0cmluZykgewogICAgcmV0dXJuIG5ldyBVUkwoYCR7dGhpcy5Db25maWcuYmFzZVVybH0vJHtwYXRofWAucmVwbGFjZSgvXC97Mix9L2csICIvIikpCiAgfQp9Cgpjb25zdCBhcGkgPSBuZXcgTXlDbGllbnQoeyBiYXNlVXJsOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS92MSIgfSkKLy8gd2lsbCBjYWxsOiBodHRwczovL2V4YW1wbGUuY29tL3YxL3BldC8gaW5zdGVhZCBvZiBodHRwczovL2V4YW1wbGUuY29tL3BldC8KY29uc3QgcGV0ID0gYXdhaXQgYXBpLnBldC5nZXRQZXRCeUlkKDQwNCkKYGBgCgojIyMgTm9kZS5qcyBBUEkKCkNyZWF0ZSBmaWxlIGxpa2UgYGFwaWdlbi5tanNgIHdpdGggY29udGVudDoKCmBgYGpzCmltcG9ydCB7IGFwaWdlbiB9IGZyb20gImFwaWdlbi10cyIKCmF3YWl0IGFwaWdlbih7CiAgc291cmNlOiAiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIiwKICBvdXRwdXQ6ICIuL2FwaS1jbGllbnQudHMiLAogIC8vIGV2ZXJ5dGhpbmcgYmVsb3cgaXMgb3B0aW9uYWwKICBuYW1lOiAiTXlBcGlDbGllbnQiLCAvLyBkZWZhdWx0ICJBcGlDbGllbnQiCiAgcGFyc2VEYXRlczogdHJ1ZSwgLy8gZGVmYXVsdCBmYWxzZQogIHJlc29sdmVOYW1lKGN0eCwgb3AsIHByb3Bvc2FsKSB7CiAgICAvLyBwcm9wb3NhbCBpcyBbc3RyaW5nLCBzdHJpbmddIHdoaWNoIHJlcHJlc2VudHMgbW9kdWxlLmZ1bmNOYW1lCiAgICBpZiAocHJvcG9zYWxbMF0gPT09ICJ1c2VycyIpIHJldHVybiAvLyB3aWxsIHVzZSBkZWZhdWx0IHByb3Bvc2FsCgogICAgY29uc3QgW2EsIGJdID0gb3AubmFtZS5zcGxpdCgiLyIpLnNsaWNlKDMsIDUpIC8vIGVnLiAvYXBpL3YxL3N0b3JlL2l0ZW1zL3NlYXJjaAogICAgcmV0dXJuIFthLCBgJHtvcC5tZXRob2R9XyR7Yn1gXSAvLyBbc3RvcmUsICdnZXRfaXRlbXMnXSAtPiBhcGlDbGllbnQuc3RvcmUuZ2V0X2l0ZW1zKCkKICB9LAp9KQpgYGAKClRoZW4gcnVuIHdpdGg6IGBub2RlIGFwaWdlbi5tanNgCgojIyBDb21wYXJlCgotIFtvcGVuYXBpLXR5cGVzY3JpcHQtY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL2ZlcmRpa29vbWVuL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlZ2VuKSAoW25wbV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS10eXBlc2NyaXB0LWNvZGVnZW4pKTogbm8gc2luZ2xlIGZpbGUgbW9kZSBbIzEyNjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJkaWtvb21lbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZWdlbi9pc3N1ZXMvMTI2MyNpc3N1ZWNvbW1lbnQtMTUwMjg5MDgzOCkKLSBbb3BlbmFwaS10eXBlc2NyaXB0XShodHRwczovL2dpdGh1Yi5jb20vZHJ3cG93L29wZW5hcGktdHlwZXNjcmlwdCkgKFtucG1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdHlwZXNjcmlwdCkpOiBsb3cgbGV2ZWwgYXBpOyBubyBuYW1lZCB0eXBlcyBleHBvcnQgdG8gdXNlIGluIGNsaWVudCBjb2RlCi0gW29wZW5hcGktZ2VuZXJhdG9yLWNsaV0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIChbbnBtXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkpOiB3cmFwcGVyIGFyb3VuZCBqYXZhIGxpYgotIFtzd2FnZ2VyLXR5cGVzY3JpcHQtYXBpXShodHRwczovL2dpdGh1Yi5jb20vYWNhY29kZS9zd2FnZ2VyLXR5cGVzY3JpcHQtYXBpKSAoW25wbV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci10eXBlc2NyaXB0LWFwaSkpOiBjb21wbGljYXRlZCBjb25maWd1cmF0aW9uOyB1c2VyLWFwaSBicmVha2luZyBjaGFuZ2VzIGJldHdlZW4gdmVyc2lvbnMKCiMjIERldmVsb3BtZW50CgotIGh0dHBzOi8vdHMtYXN0LXZpZXdlci5jb20KLSBodHRwczovL2pzb25zY2hlbWFsaW50LmNvbQotIGh0dHBzOi8vcmVkb2NseS5naXRodWIuaW8vcmVkb2MvCi0gaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9iYXNpYy1zdHJ1Y3R1cmUvCg== readmeEtag: '"9e7cd95b983f4050a4c0113fc697ac22ad2c96ab"' readmeLastModified: Tue, 03 Sep 2024 21:42:11 GMT repositoryId: 725796572 description: >- Typed HTTP client generator as single file without extra dependencies from OpenAPI schema created: '2023-11-30T22:25:17Z' updated: '2024-09-04T14:47:52Z' language: TypeScript archived: false stars: 24 watchers: 4 forks: 1 owner: vladkens logo: https://avatars.githubusercontent.com/u/825754?v=4 license: MIT repoEtag: '"1d57dae10be4794976a5c1dcffcd20105076dc6246795c7d8d5df08d68258af5"' repoLastModified: Wed, 04 Sep 2024 14:47:52 GMT category: SDK foundInMaster: true name: apigen-ts language: TypeScript link: https://www.npmjs.com/package/apigen-ts source_description: Typed HTTP client generator as single file without extra dependencies v2: true - source: https://openapi.tools/ name: APIGit category: - Documentation - Mock - GUI Editors - Testing language: SaaS repository: https://github.com/apigitlabs link: https://apigit.com source_description: >- the native Git based collaboration platform for API design, document, mock, testing and share. v2: true v3: true v3_1: true id: eff815e9a2d41cfd4464f36c69bc11ce foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/pb33f/libopenapi v3: true id: 78ab0e104df30dd8b36325f7708a55ae repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+Cgk8aW1nIHNyYz0ibGlib3BlbmFwaS1sb2dvLnBuZyIgYWx0PSJsaWJvcGVuYXBpIiBoZWlnaHQ9IjMwMHB4IiB3aWR0aD0iNDUwcHgiLz4KPC9wPgoKIyBsaWJvcGVuYXBpIC0gZW50ZXJwcmlzZSBncmFkZSBPcGVuQVBJIHRvb2xzIGZvciBnb2xhbmcuCgoKIVtQaXBlbGluZV0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGkvd29ya2Zsb3dzL0J1aWxkL2JhZGdlLnN2ZykKWyFbR29SZXBvcnRDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9wYjMzZi9saWJvcGVuYXBpKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGkpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9wYjMzZi9saWJvcGVuYXBpL2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2Zz8pXShodHRwczovL2NvZGVjb3YuaW8vZ2gvcGIzM2YvbGlib3BlbmFwaSkKWyFbZGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kaXNjb3JkLzkyMzI1ODM2MzU0MDgxNTkxMildKGh0dHBzOi8vZGlzY29yZC5nZy94N1ZBQ1Z1RUdQKQpbIVtEb2NzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2dvZG9jLXJlZmVyZW5jZS01ZmFmZDcpXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9wYjMzZi9saWJvcGVuYXBpKQoKbGlib3BlbmFwaSBoYXMgZnVsbCBzdXBwb3J0IGZvciBTd2FnZ2VyIChPcGVuQVBJIDIpLCBPcGVuQVBJIDMsIGFuZCBPcGVuQVBJIDMuMS4gSXQgY2FuIGhhbmRsZSB0aGUgbGFyZ2VzdCBhbmQgbW9zdApjb21wbGV4IHNwZWNpZmljYXRpb25zIHlvdSBjYW4gdGhpbmsgb2YuCgotLS0KCiMjIFNwb25zb3JzICYgdXNlcnMKSWYgeW91ciBjb21wYW55IGlzIHVzaW5nIGBsaWJvcGVuYXBpYCwgcGxlYXNlIGNvbnNpZGVyaW5nIFtzdXBwb3J0aW5nIHRoaXMgcHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL2RhdmVzaGFubGV5KSwgCmxpa2Ugb3VyIF92ZXJ5IGtpbmRfIHNwb25zb3JzOgoKPGEgaHJlZj0iaHR0cHM6Ly9zcGVha2Vhc3kuY29tLz91dG1fc291cmNlPWxpYm9wZW5hcGkrcmVwbyZ1dG1fbWVkaXVtPWdpdGh1YitzcG9uc29yc2hpcCI+CjxwaWN0dXJlPgogIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iLmdpdGh1Yi9zcG9uc29ycy9zcGVha2Vhc3ktZ2l0aHViLXNwb25zb3ItZGFyay5zdmciPgogIDxpbWcgYWx0PSJzcGVha2Vhc3knIiBzcmM9Ii5naXRodWIvc3BvbnNvcnMvc3BlYWtlYXN5LWdpdGh1Yi1zcG9uc29yLWxpZ2h0LnN2ZyI+CjwvcGljdHVyZT4KPC9hPgoKW1NwZWFrZWFzeV0oaHR0cHM6Ly9zcGVha2Vhc3kuY29tLz91dG1fc291cmNlPWxpYm9wZW5hcGkrcmVwbyZ1dG1fbWVkaXVtPWdpdGh1YitzcG9uc29yc2hpcCkKCjxhIGhyZWY9Imh0dHBzOi8vc2NhbGFyLmNvbSI+CjxwaWN0dXJlPgogIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iLmdpdGh1Yi9zcG9uc29ycy9zY2FsYXItZGFyay5wbmciPgogIDxpbWcgYWx0PSJzY2FsYXInIiBzcmM9Ii5naXRodWIvc3BvbnNvcnMvc2NhbGFyLWxpZ2h0LnBuZyI+CjwvcGljdHVyZT4KPC9hPgoKW3NjYWxhcl0oaHR0cHM6Ly9zY2FsYXIuY29tKQoKCgotLS0KCmBsaWJvcGVuYXBpYCBpcyBwcmV0dHkgbmV3LCBzbyBvdXIgbGlzdCBvZiBub3RhYmxlIHByb2plY3RzIHRoYXQgZGVwZW5kIG9uIGBsaWJvcGVuYXBpYCBpcyBzbWFsbCAobGV0IG1lIGtub3cgaWYgeW91J2QgbGlrZSB0byBhZGQgeW91ciBwcm9qZWN0KQoKLSBbZ2l0aHViLmNvbS9kYXZlc2hhbmxleS92YWN1dW1dKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZlc2hhbmxleS92YWN1dW0pIC0gIlRoZSB3b3JsZCdzIGZhc3Rlc3QgYW5kIG1vc3Qgc2NhbGFibGUgT3BlbkFQSS9Td2FnZ2VyIGxpbnRlci9xdWFsaXR5IHRvb2wiCi0gW2dpdGh1Yi5jb20vcGIzM2Yvb3BlbmFwaS1jaGFuZ2VzXShodHRwczovL2dpdGh1Yi5jb20vcGIzM2Yvb3BlbmFwaS1jaGFuZ2VzKSAtICJUaGUgd29ybGQncyAqKnNleGllc3QqKiBPcGVuQVBJIGJyZWFraW5nIGNoYW5nZXMgZGV0ZWN0b3IiCi0gW2dpdGh1Yi5jb20vcGIzM2Yvd2lyZXRhcF0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL29wZW5hcGktY2hhbmdlcykgLSAiVGhlIHdvcmxkJ3MgKipjb29sZXN0KiogT3BlbkFQSSBjb21wbGlhbmNlIGFuYWx5c2lzIHRvb2wiCi0gW2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9yZXN0aXNoXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9yZXN0aXNoKSAtICJSZXN0aXNoIGlzIGEgQ0xJIGZvciBpbnRlcmFjdGluZyB3aXRoIFJFU1QtaXNoIEhUVFAgQVBJcyIKLSBbZ2l0aHViLmNvbS9zcGVha2Vhc3ktYXBpL3NwZWFrZWFzeV0oaHR0cHM6Ly9naXRodWIuY29tL3NwZWFrZWFzeS1hcGkvc3BlYWtlYXN5KSAtICJTcGVha2Vhc3kgQ0xJIG1ha2VzIHZhbGlkYXRpbmcgT3BlbkFQSSBkb2NzIGFuZCBnZW5lcmF0aW5nIGlkaW9tYXRpYyBTREtzIGVhc3khIgotIFtnaXRodWIuY29tL2FwaWNhdC9hcGljYXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGljYXQvYXBpY2F0KSAtICJBSS1wb3dlcmVkIEFQSSBkZXZlbG9wbWVudCB0b29sIgotIFtnaXRodWIuY29tL21hdHRlcm1vc3QvbWF0dGVybW9zdF0oaHR0cHM6Ly9naXRodWIuY29tL21hdHRlcm1vc3QvbWF0dGVybW9zdCkgLSAiU29mdHdhcmUgZGV2ZWxvcG1lbnQgbGlmZWN5Y2xlIHBsYXRmb3JtIgotIFlvdXIgcHJvamVjdCBoZXJlPwotLS0KCiMjIENvbWUgY2hhdCB3aXRoIHVzCgpOZWVkIGhlbHA/IEhhdmUgYSBxdWVzdGlvbj8gV2FudCB0byBzaGFyZSB5b3VyIHdvcms/IFtKb2luIG91ciBkaXNjb3JkXShodHRwczovL2Rpc2NvcmQuZ2cveDdWQUNWdUVHUCkgYW5kCmNvbWUgc2F5IGhpIQoKIyMgQ2hlY2sgb3V0IHRoZSBgbGlib3BlbmFwaS12YWxpZGF0b3JgCgpOZWVkIHRvIHZhbGlkYXRlIHJlcXVlc3RzLCByZXNwb25zZXMsIHBhcmFtZXRlcnMgb3Igc2NoZW1hcz8gVXNlIHRoZSBuZXcgCltsaWJvcGVuYXBpLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGktdmFsaWRhdG9yKSBtb2R1bGUuCgojIyBEb2N1bWVudGF0aW9uCgpTZWUgYWxsIHRoZSBkb2N1bWVudGF0aW9uIGF0IGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS8KCi0gW0luc3RhbGxpbmcgbGlib3BlbmFwaV0oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL2luc3RhbGxpbmcvKQotIFtVc2luZyBPcGVuQVBJXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvb3BlbmFwaS8pCi0gW1VzaW5nIFN3YWdnZXJdKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS9zd2FnZ2VyLykKLSBbVGhlIERhdGEgTW9kZWxdKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS9tb2RlbC8pCi0gW1ZhbGlkYXRpb25dKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS92YWxpZGF0aW9uLykKLSBbTW9kaWZ5aW5nIC8gTXV0YXRpbmcgdGhlIE9wZW5BUEkgTW9kZWxdKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS9tb2RpZnlpbmcvKQotIFtNb2NraW5nIC8gQ3JlYXRpbmcgRXhhbXBsZXNdKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS9tb2Nrcy8pCi0gW1VzaW5nIFZlbmRvciBFeHRlbnNpb25zXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvZXh0ZW5zaW9ucy8pCi0gW1RoZSBJbmRleF0oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL2luZGV4LykKLSBbVGhlIFJlc29sdmVyXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvcmVzb2x2ZXIvKQotIFtUaGUgUm9sb2RleF0oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL3JvbG9kZXgvKQotIFtDaXJjdWxhciBSZWZlcmVuY2VzXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvY2lyY3VsYXItcmVmZXJlbmNlcy8pCi0gW0J1bmRsaW5nIFNwZWNzXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvYnVuZGxpbmcvKQotIFtXaGF0IENoYW5nZWQgLyBEaWZmIEVuZ2luZV0oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL3doYXQtY2hhbmdlZC8pCi0gW0ZBUV0oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL2ZhcS8pCi0gW0Fib3V0IGxpYm9wZW5hcGldKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS9hYm91dC8pCi0tLQoKIyMjIFF1aWNrLXN0YXJ0IHR1dG9yaWFsCgrwn5GAICoqR2V0IHJvbGxpbmcgZmFzdCB1c2luZyBgbGlib3BlbmFwaWAgd2l0aCB0aGUgCltQYXJzaW5nIE9wZW5BUEkgZmlsZXMgdXNpbmcgZ29dKGh0dHBzOi8vcXVvYml4LmNvbS9hcnRpY2xlcy9wYXJzaW5nLW9wZW5hcGktdXNpbmctZ28vKSoqIGd1aWRlIPCfkYAKCk9yLCBmb2xsb3cgdGhlc2Ugc3RlcHMgYW5kIHNlZSBzb21ldGhpbmcgaW4gYSBmZXcgc2Vjb25kcy4KCiMjIyMgU3RlcCAxOiBHcmFiIHRoZSBwZXRzdG9yZQoKYGBgYmFzaApjdXJsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL21haW4vZXhhbXBsZXMvdjMuMC9wZXRzdG9yZS55YW1sID4gcGV0c3RvcmV2My5qc29uCmBgYAoKIyMjIyBTdGVwIDI6IEdyYWIgbGlib3BlbmFwaQoKYGBgYmFzaApnbyBnZXQgZ2l0aHViLmNvbS9wYjMzZi9saWJvcGVuYXBpCmBgYAoKIyMjIyBTdGVwIDM6IFBhcnNlIHRoZSBwZXRzdG9yZSB1c2luZyBsaWJvcGVuYXBpCgpDb3B5IGFuZCBwYXN0ZSB0aGlzIGNvZGUgaW50byBhIGBtYWluLmdvYCBmaWxlLgoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImZtdCIKCSJvcyIKCSJnaXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGkiCikKCmZ1bmMgbWFpbigpIHsKCXBldHN0b3JlLCBfIDo9IG9zLlJlYWRGaWxlKCJwZXRzdG9yZXYzLmpzb24iKQoJZG9jdW1lbnQsIGVyciA6PSBsaWJvcGVuYXBpLk5ld0RvY3VtZW50KHBldHN0b3JlKQoJaWYgZXJyICE9IG5pbCB7CgkJcGFuaWMoZm10LlNwcmludGYoImNhbm5vdCBjcmVhdGUgbmV3IGRvY3VtZW50OiAlZSIsIGVycikpCgl9Cglkb2NNb2RlbCwgZXJyb3JzIDo9IGRvY3VtZW50LkJ1aWxkVjNNb2RlbCgpCglpZiBsZW4oZXJyb3JzKSA+IDAgewoJCWZvciBpIDo9IHJhbmdlIGVycm9ycyB7CgkJCWZtdC5QcmludGYoImVycm9yOiAlZVxuIiwgZXJyb3JzW2ldKQoJCX0KCQlwYW5pYyhmbXQuU3ByaW50ZigiY2Fubm90IGNyZWF0ZSB2MyBtb2RlbCBmcm9tIGRvY3VtZW50OiAlZCBlcnJvcnMgcmVwb3J0ZWQiLCBsZW4oZXJyb3JzKSkpCgl9CgoJLy8gVGhlIGZvbGxvd2luZyBmYWlscyBhZnRlciB0aGUgZmlyc3QgaXRlcmF0aW9uCglmb3Igc2NoZW1hUGFpcnMgOj0gZG9jTW9kZWwuTW9kZWwuQ29tcG9uZW50cy5TY2hlbWFzLkZpcnN0KCk7IHNjaGVtYVBhaXJzICE9IG5pbDsgc2NoZW1hUGFpcnMgPSBzY2hlbWFQYWlycy5OZXh0KCkgewoJCXNjaGVtYU5hbWUgOj0gc2NoZW1hUGFpcnMuS2V5KCkKCQlzY2hlbWEgOj0gc2NoZW1hUGFpcnMuVmFsdWUoKQoJCWZtdC5QcmludGYoIlNjaGVtYSAnJXMnIGhhcyAlZCBwcm9wZXJ0aWVzXG4iLCBzY2hlbWFOYW1lLCBzY2hlbWEuU2NoZW1hKCkuUHJvcGVydGllcy5MZW4oKSkKCX0KfQpgYGAKClJ1biBpdCwgd2hpY2ggc2hvdWxkIHByaW50IG91dDoKCmBgYGJhc2gKU2NoZW1hICdQZXQnIGhhcyAzIHByb3BlcnRpZXMKU2NoZW1hICdFcnJvcicgaGFzIDIgcHJvcGVydGllcwpgYGAKCgo+IFJlYWQgdGhlIGZ1bGwgZG9jcyBhdCBbaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL10oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpLykKCi0tLQoKTG9nbyBnb3BoZXIgaXMgbW9kaWZpZWQsIG9yaWdpbmFsbHkgZnJvbSBbZWdvbmVsYnJlXShodHRwczovL2dpdGh1Yi5jb20vZWdvbmVsYnJlL2dvcGhlcnMpCg== readmeEtag: '"710820ea6c830b30330dad5e8811ed3872a3d447"' readmeLastModified: Wed, 07 Aug 2024 18:55:54 GMT repositoryId: 514939258 description: >- libopenapi is a fully featured, high performance OpenAPI 3.1, 3.0 and Swagger parser, library, validator and toolkit for golang applications. created: '2022-07-17T19:41:10Z' updated: '2024-09-04T16:45:52Z' language: Go archived: false stars: 429 watchers: 7 forks: 56 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION repoEtag: '"fe9cbe8b812404e5c30985ac66fbe0c98c467101d2b895d9df52d0ca5cbfc07a"' repoLastModified: Wed, 04 Sep 2024 16:45:52 GMT category: Parsers foundInMaster: true name: libopenapi link: https://pb33f.io/libopenapi language: go source_description: >- Enterprise grade, fully featured OpenAPI 3.1, 3.0 and Swagger parser library for go. A complete toolset for reading and parsing OpenAPI and Swagger specifications. Comes complete with high and low-level APIs, diff engine, index and resolver. v2: true v3_1: true - source: https://openapi.tools/ name: go-openapi-spec-code-diffs category: - Validator - Parsers link: https://github.com/RHEcosystemAppEng/go-openapi-spec-code-diffs language: go repository: https://github.com/rhecosystemappeng/go-openapi-spec-code-diffs source_description: >- A golang validation tool that compares given OpenAPI specs (e.g. openapi.yaml) vis-a-vis routes (e.g. /api/v1/customer/:id) defined in golang source code and reports differences. This is useful in scenarios where you want to keep the OpenAPI specs and Code in synch. v3: true v3_1: true id: e7024c0e9e4e358fa3a62d42b0f1b052 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWNzIFZhbGlkYXRvcgoKIyMgU3VtbWFyeQpBIHZhbGlkYXRpb24gdG9vbCB0aGF0IGNvbXBhcmVzIE9wZW5BUEkgc3BlY3MgdmlzLWEtdmlzIHJvdXRlcyAoZS5nLiAvYXBpL3YxL2N1c3RvbWVyLzppZCkgZGVmaW5lZCBpbiBnb2xhbmcgc291cmNlIGNvZGUuIFVzZWZ1bCBpbiBzY2VuYXJpb3Mgd2hlcmUgeW91IHdhbnQgdG8gZW5zdXJlIHRoZSBPcGVuQVBJIHNwZWNzIGFuZCBDb2RlIGFyZSBpbiBzeW5jaC4KCiMjIFdoYXQKVGhpcyB2YWxpZGF0b3IgdmFsaWRhdGVzIEFQSSBFbmRwb2ludHMgZGVmaW5lZCBpbiBnb2xhbmcgc291cmNlIGNvZGUgd2l0aCBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGFuZCByZXBvcnRzIGZvbGxvd2luZyBkaWZmZXJlbmNlcy4KKiBPcGVuQVBJIHNwZWNzIGZvdW5kIGluIHNwZWNpZmljYXRpb25zIGJ1dCBub3QgZm91bmQgaW4gZ29sYW5nIHNvdXJjZSBjb2RlCiogUm91dGVzIGZvdW5kIGluIGdvbGFuZyBzb3VyY2UgY29kZSBidXQgbm90IGZvdW5kIGluIE9wZW5BUEkgc3BlY3MuCgojIyBXaHkKKiBIZWxwcyB0byBrZWVwIE9wZW5BUEkgc3BlY3MgYW5kIGdvbGFuZyBzb3VyY2UgY29kZSBpbiBzeW5jaC4KKiBEbyBub3QgZm9yZ2V0IHRvIGltcGxlbWVudCBwYXRocyBkZWZpbmVkIGluIE9wZW5BUEkgc3BlY3MgaW4gZ29sYW5nIHNvdXJjZSBjb2RlLgoqIERvIG5vdCBmb3JnZXQgdG8gaW5jbHVkZSBBUElzIGltcGxlbWVudGVkIGluIGdvbGFuZyBzb3VyY2UgY29kZSBpbiBPcGVuQVBJIHNwZWNzIGluLgoKIyMgSG93CiogVGhpcyB0b29sIHRha2VzIGdvbGFuZyBzb3VyY2Ugcm9vdCBkaXJlY3Rvcnkgd2hpY2ggaW1wbGVtZW50cyB5b3VyIEFQSSBhbmQgT3BlbkFQSSBzcGVjcyBmaWxlIGFzIGlucHV0cy4KKiBUaGUgdG9vbCBlc3NlbnRpYWxseSBidWlsZHMgdHdvIGxpc3RzOiAKICAxLiBMaXN0IG9mIHJvdXRlcy9wYXRocyBmb3VuZCBpbiBnb2xhbmcgc291cmNlIGNvZGUuCiAgMi4gTGlzdCBvZiByb3V0ZXMvcGF0aHMgZGVmaW5lZCBpbiB5b3VyIE9wZW5BUEkgc3BlY3MgZmlsZS4KICAqIEJvdGggdGhlIGxpc3RzIHNob3VsZCBtYXRjaCBpZiBub3QgdGhlIHRvb2wgd2lsbCByZXBvcnQgZGlmZmVyZW5jZXMuCiogVGhlIHRvb2wgdXNlcyByZWd1bGFyIGV4cHJlc3Npb25zIHRvIGZpbmQgcGF0aHMgZGVmaW5lZCBpbiBnb2xhbmcgc291cmNlIGNvZGUgZS5nLiAiL2hlYWx0aC9yZWFkeSIsICIvdXNlcnMiIGV0Yy4KICAqIE9uY2Ugc3VjaCBhIHBhdGggaXMgZm91bmQsIHRoZSBjb3JyZXNwb25kaW5nIGxpbmUgaXMgc2Nhbm5lZCB0byBsb29rIGZvciBhIGh0dHBtZXRob2Qgc3VjaCBhcyBHRVQsIFBVVCwgUE9TVCwgREVMRVRFLCBIRUFELCBPUFRJT05TIGFuZCBQQVRDSC4KICAqIElmIHRoZSBodHRwbWV0aG9kIGlzIGZvdW5kIG9uIHRoZSBsaW5lIHRoZW4gdG9vbCBjb25zaWRlcnMgdGhlIHBhdGggZm91bmQgaW4gdGhlIGxpbmUgYXMgYSB2YWxpZCByb3V0ZS9wYXRoIGRlZmluaXRpb24uCiAgKiBUaHVzIGZvbGxvd2luZyBjb2RlIGlzIGNvbnNpZGVyZWQgYSB2YWxpZCByb3V0ZS9wYXRoIGRlZmluaXRpb24gYnkgdGhlIHRvb2wuCmBgYGdvCnJvdXRlIDo9IHJvdXRlUmVnaXN0cmF0aW9ueyJQVVQiLCAiL3VzZXIvOmlkL2FkbWluLzppc0FkbWluIiwgaGFuZGxlcnMuU2V0QWRtaW5TdGF0dXN9CmBgYAogICogSG93ZXZlciB0aGUgZm9sbG93aW5nIGxpbmUgaXMgbm90IGNvbnNpZGVyZWQgYSB2YWxpZCByb3V0ZS9wYXRoIGRlZmluaXRpb24gYXMgdGhpcyBpcyB0aGUgbGluZSBoYXZpbmcgYSBnb2xhbmcga2V5d29yZCAnaWYnLgpgYGBnbwppZiAiL3RoaXMvaXMvbm90L2NvbnNpZGVyZWQvYS9wYXRoL2RlZmluaXRpb24iID09ICJERUxFVEUiIHsKYGBgCiAgKiBZb3UgY2FuIG1ha2UgdXNlIG9mIHRoZSBmb2xsb3dpbmcgaWdub3JlIGVsZW1lbnRzIHdoaWxlIHNjYW5uaW5nIGdvbGFuZyBzb3VyY2UgY29kZSwgdG8gZnVydGhlciBmaW5lIHR1bmUgdGhlIHJ1biBvZiB0aGUgdG9vbC4gCgp8IEVsZW1lbnQgICAgICAgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKfCBpZ25vcmVkRGlyc0ZpbGUgIHwgRGlyZWN0b3JpZXMgdG8gYmUgaWdub3JlZCB3aGVuIHNjYW5uaW5nIGdvbGFuZyBzb3VyY2UgY29kZSB8CnwgaWdub3JlZEZpbGVzRmlsZSB8IEZpbGVzIHRvIGJlIGlnbm9yZWQgfAp8IGlnbm9yZWRMaW5lc0ZpbGUgfCBMaW5lcyB0byBiZSBpZ25vcmVkIHwKfCBpZ25vcmVkUGF0aHNGaWxlIHwgQVBJIFBhdGhzIHRvIGJlIGlnbm9yZWQgZnJvbSBjb21wYXJpc29uIHN1Y2ggYXMgL2hlYWx0aC9yZWFkeSBvciAvaGVhbHRoL2xpdmUgfAoKIyMgV2h5IHRoZSBpZ25vcmVkIGVsZW1lbnRzIGFib3ZlIGFyZSBuZWVkZWQ/CiogVGhlIHRvb2wgcmVjdXJzaXZlbHkgd29ya3Mgb24gLmdvIGZpbGVzIGZvdW5kIGluIGdvbGFuZyBzb3VyY2UgY29kZSBkaXJlY3RvcnkuCiogWW91IGNhbiBzbGlnaHRseSBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBieSBzcGVjaWZ5aW5nIGRpcmVjdG9yaWVzIHdoaWNoIHR5cGljYWxseSBkbyBub3QgY29udGFpbiAuZ28gZmlsZXMgc3VjaCBhcyBiaW4sIG91dCBhbmQgLmdpdCBlLmcuCiogWW91IGNhbiB1c2UgaWdub3JlZEZpbGVzRmlsZSB0byBmdXJ0aGVyIGV4Y2x1ZGUgc3BlY2lmaWMgZmlsZXMgZnJvbSBzY2FubmluZy4KKiBJZiB0aGUgaWdub3JlZCBkaXJlY3RvcmllcyBhbmQgZmlsZXMgYXJlIG5vdCBzdWZmaWNpZW50LCBpZiB0b29sIGNvbmZ1c2VzIGNlcnRhaW4gY29kZSBsaW5lcyB0byBjb250YWluIHZhbGlkIHBhdGhzL3JvdXRlcyBidXQgaWYgdGhleSBhcmUgbm90IHZhbGlkIHBhdGhzL3JvdXRlcywgc2ltcGx5IGNvcHkgdGhvc2UgbGluZSBpbiBpZ25vcmVkTGluZXNGaWxlIGFuZCB0aG9zZSBsaW5lcyB3aWxsIGJlIGlnbm9yZWQgZnJvbSBzY2FuLgoKIyMgVXNhZ2UKIyMjIEFzIHNoZWxsIGNvbW1hbmQKKiBUaGUgY29tbWFuZCBsaW5lIHZlcnNpb24gbWFrZXMgdXNlIG9mIG5hbWVkIGFyZ3VtZW50cy4gCiogQXQgYW55IHBvaW50IHRvIHNlZSB0aGUgaGVscCBmb3IgdGhlIGNvbW1hbmQgdXNlIHRoZSBmb2xsb3dpbmcKYGBgc2hlbGwKb3BlbmFwaV9zcGVjX2NvZGVfZGlmZnMgLS1oZWxwCmBgYAoqIEZvcm1hdApgYGBzaGVsbApvcGVuYXBpX3NwZWNfY29kZV9kaWZmcyAvCiAgICAtb3BlbkFQSVNwZWNzRmlsZSAncGF0aC90by9vcGVuYXBpL3NwZWNzL2ZpbGVuYW1lJyAvCiAgICAtZ29Tb3VyY2VEaXIgJ3BhdGgvdG8vZ29sYW5nL3NvdXJjZS9kaXInIC8KICAgIC1pZ25vcmVkRGlyc0ZpbGUgJ3BhdGgvdG8vaWdub3JlZC9kaXJlY3Rvcmllcy9maWxlbmFtZScgLyAKICAgIC1pZ25vcmVkRmlsZXNGaWxlICdwYXRoL3RvL2lnbm9yZWQvZmlsZXMvZmlsZW5hbWUnIC8KICAgIC1pZ25vcmVkTGluZXNGaWxlICdwYXRoL3RvL2lnbm9yZWQvbGluZXMvZmlsZW5hbWUnIC8gCiAgICAtaWdub3JlZFBhdGhzRmlsZSAncGF0aC90by9pZ25vcmVkL3BhdGhzL2ZpbGVuYW1lJyAvIAogICAgLWxvZ0xldmVsICdsb2ctbGV2ZWwgY2FuIGJlIG9uZSBvZjogZGlzYWJsZWQsIGluZm8sIGRlYnVnLCBlcnJvcicKYGBgCgojIyMgQXMgYSBwYWNrYWdlL2xpYnJhcnkgaW4gZ29sYW5nIHNvdXJjZSBjb2RlCiogSW1wb3J0IHRoZSBwYWNrYWdlL2xpYnJhcnkKYGBgZ28KaW1wb3J0ICJnaXRodWIuY29tL1JIRWNvc3lzdGVtQXBwRW5nL29wZW5hcGlfc3BlY19jb2RlX2RpZmZzL3ZhbGlkYXRvciIKYGBgCgoqIFVzZSB0aGUgdmFsaWRhdG9yIGUuZy4gaW4gdGVzdCBjb2RlIGFzIGZvbGxvd3MuIFBhdGhzIGJlbG93IGFyZSByZWxhdGl2ZSB0byB0aGUgcGF0aCBvZiB0aGUgdGVzdCBmaWxlIGZyb20gd2hpY2ggdGVzdHMgYXJlIGdvaW5nIHRvIGJlIGV4ZWN1dGVkIGZyb20uCmBgYGdvCmZ1bmMgdmFsaWRhdGVPcGVuQVBJU3BlY3ModCAqdGVzdGluZy5UKSB7CglvYXNTdGF0aWNWYWxpZGF0b3IgOj0gdmFsaWRhdG9yLk5ld09wZW5BUElTcGVjQ29kZURpZmZzVmFsaWRhdG9yKCIuL29hc1N0YXRpY1ZhbGlkYXRvci8uZGlyaWdub3JlIiwgIi4vb2FzU3RhdGljVmFsaWRhdG9yLy5zcGVjaWdub3JlIiwgIi4uLy4uLyIsICIuLi8uLi9vcGVuYXBpLnlhbWwiKQoJZXJyLCByZXN1bHQgOj0gb2FzU3RhdGljVmFsaWRhdG9yLlZhbGlkYXRlKCkKCglhc3NlcnQuTmlsKHQsIGVyciwgIk5vIGVycm9ycyByZXR1cm5lZCBmcm9tIG9wZW5hcGkgdmFsaWRhdGlvbiIpCglhc3NlcnQuRXF1YWwodCwgMCwgbGVuKHJlc3VsdC5TcGVjRGVmc05vdEluQ29kZSksICJGb3VuZCBzcGVjIGRlZnMgbm90IGltcGxlbWVudGVkIGluIGNvZGUiLCBsZW4ocmVzdWx0LlNwZWNEZWZzTm90SW5Db2RlKSkKCWFzc2VydC5FcXVhbCh0LCAwLCBsZW4ocmVzdWx0LkNvZGVEZWZzTm90U3BlYyksICJGb3VuZCBjb2RlIGRlZnMgbm90IHJlZmxlY3RlZCBpbiBzcGVjcyIsIGxlbihyZXN1bHQuQ29kZURlZnNOb3RTcGVjKSkKfQpgYGAKCiMjIFJ1bm5pbmcgdGVzdHMKKiBVc2UgdGhlIHN0YW5kYXJkIGdvIGNvbW1hbmQgdG8gcnVuIHRlc3RzIGFzIGZvbGxvd3MsIHdoaWNoIGFyZSBkaXZpZGVkIGFzIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSB0ZXN0czoKYGBgc2hlbGwKIGdvIHRlc3QgLXYgLi90ZXN0cy9wb3NpdGl2ZSAuL3Rlc3RzL25lZ2F0aXZlCmBgYA== readmeEtag: '"bab8c8dd6a236ec5043056e8f9d10c2f4320c0b1"' readmeLastModified: Mon, 24 Jul 2023 20:40:53 GMT repositoryId: 666011427 description: null created: '2023-07-13T13:55:40Z' updated: '2023-11-13T03:49:10Z' language: Go archived: false stars: 1 watchers: 2 forks: 0 owner: RHEcosystemAppEng logo: https://avatars.githubusercontent.com/u/82061998?v=4 license: Apache-2.0 repoEtag: '"1f300ed5c569c7641237b567992f6d456a05a502edc0e94d60641d82e38b3f3a"' repoLastModified: Mon, 13 Nov 2023 03:49:10 GMT foundInMaster: true - source: https://openapi.tools/ name: draig category: SDK link: https://gitlab.com/robarago/draig language: Java repository: https://gitlab.com/robarago/draig source_description: >- DRAIG is an OpenAPI3 based design-first custom generator that creates fully functional microservices from an OAS API description document. You can use DRAIG with openapi-generator as a backend generator or use DRAIG CLI or REPL to generate your microservices. With simple user-customizable templates, you can extended and improve implementation code so that generated code can be compiled and deployed immediatelly. v2: false v3: true v3_1: false id: 3a9dfe0c9cec65c2ce3c97d0b8e8186f foundInMaster: true - source: https://openapi.tools/ name: draig-car category: - Server - Testing - Text Editors link: https://gitlab.com/robarago/draig-car language: TypeScript repository: https://gitlab.com/robarago/draig-car source_description: >- This is a REPL OpenAPI3 description document text editor. It provides both a CLI and and a REPL you can use to test your APIs, but you can also test database queries, start and stop database (containers), generate fake data automatically, start your test microservice and much more. You don't have to exit from your REPL! Or you can use the CLI to do the same if you want, giving you the option to automatize your contract-first based dev cycles. v2: false v3: true v3_1: false id: ce0dc163dc2b30744344ee24800647a0 foundInMaster: true - source: https://openapi.tools/ name: ABAP OpenAPI Client & Server Generator category: - SDK - Server - Parsers language: ABAP repository: https://github.com/abap-openapi/abap-openapi link: https://abap-openapi.github.io/web-openapi-client/ source_description: >- ABAP OpenAPI Client & Server Generator written in ABAP. Code generation runs also in the Browser and on command line using NodeJS. v3: true id: 9f36fdafa836d6b231bd4fe0cd2b34b7 repositoryMetadata: base64Readme: >- IyBBQkFQIE9wZW5BUEkgQ2xpZW50ICYgU2VydmVyIEdlbmVyYXRvcgoKQUJBUCBPcGVuQVBJIGlzIGFuIFtPcGVuQVBJXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcpIGdlbmVyYXRvciB0b29sIGRlc2lnbmVkIHRvIGNyZWF0ZSBBUEkgY2xpZW50cywgSUNGIHNlcnZlciBoYW5kbGVycywgYW5kIElDRiBzZXJ2ZXIgaW1wbGVtZW50YXRpb24gc3R1YnMgZnJvbSBPcGVuQVBJIGRvY3VtZW50cy4KCiMjIEdlbmVyYXRlCgpJdCBpcyBwb3NzaWJsZSB0byBnZW5lcmF0ZSB0aGUgb2JqZWN0cyB1c2luZyBkaWZmZXJlbnQgcHJvY2Vzc2VzOgotIEdlbmVyYXRlIHZpYSBvdXIgW3dlYiBjbGllbnRdKGh0dHBzOi8vYWJhcC1vcGVuYXBpLmdpdGh1Yi5pby93ZWItb3BlbmFwaS1jbGllbnQvKQotIEdlbmVyYXRlIHZpYSBjb21tYW5kIGxpbmUgKE5vZGVKUykKLSBHZW5lcmF0ZSB2aWEgQUJBUAoKIyMgRmVhdHVyZXMKCnwgRmVhdHVyZSB8ICB8CnwgLS0tIHwgLS0tIHwKfCBPcGVuQVBJIEZpbGUgVHlwZXMgfCBKU09OIHwKfCBPcGVuQVBJIFZlcnNpb25zIHwgdjJcKiwgdjMgfAp8IEFCQVAgVmVyc2lvbnMgfCB2NzAyIGFuZCB1cCAgfAp8IE9iamVjdCBDcmVhdGlvbiB8IG9uZSBzZWxmLWNvbnRhaW5lZCBnbG9iYWwgY2xhc3MgJiBpbnRlcmZhY2UgcGVyIE9wZW5BUEkgZGVmaW5pdGlvbiB8CgpcKiBPcGVuQVBJIHYyIGlzIGN1cnJlbnRseSBvbmx5IGNhcGFibGUgYnkgY29udmVydGluZyB0aGUgdjIgZmlsZSB0byBhIHYzIGZpbGUuIFRoaXMgY2FuIGJlIGRvbmUgbWFudWFsbHkgdXNpbmcgdGhlIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pLCBvciBwcm9ncmFtbWF0aWNhbGx5IHVzaW5nIFtTd2FnZ2VyIENvbnZlcnRlcl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29udmVydGVyKQoKTk9URTogZ2VuZXJhdGVkIGNvZGUgY3VycmVudGx5IHVzZXMgWkNMX09BUElfSlNPTiwgc3VnZ2VzdCBjb3B5aW5nIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBhIGxvY2FsIGNsYXNzIGluIHRoZSBnZW5lcmF0ZWQgZ2xvYmFsIGNsYXNzCgojIyBVc2UgQ2FzZXMKIyMjIEFQSSBDcmVhdG9yCi0gV3JpdGUgdGhlIE9wZW5BUEkgZG9jdW1lbnQgZm9yIHlvdXIgQVBJIHNvIHRoYXQgeW91IGNhbiBnZW5lcmF0ZSB0aGUgSUNGIGhhbmRsZXIgYW5kIFNlcnZlciBJbXBsZW1lbnRhdGlvbiBib2lsZXJwbGF0ZQotIFVzZSB0aGUgT3BlbkFQSSBkb2N1bWVudCB0byBjcmVhdGUgYXV0b21hdGljIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgQVBJCgojIyMgQVBJIFVzZXIKLSBVc2UgYW55IE9wZW5BUEkgZG9jdW1lbnQgdG8gY3JlYXRlIHRoZSBjbGllbnQgY2xhc3MgdG8gY29uc3VtZSBleHRlcm5hbCBBUElzCgojIyBCdWlsZGluZy9EZXZlbG9waW5nCiMjIyBQcmVyZXF1aXNpdGVzCltOb2RlSlNdKGh0dHBzOi8vbm9kZWpzLm9yZykgMTYrCgojIyMgU2V0dXAgCi0gY2xvbmUgdGhpcyByZXBvc2l0b3J5Ci0gcnVuIGBucG0gaW5zdGFsbGAKCiMjIyBUZXN0aW5nClVuaXQgVGVzdHM6IGBucG0gdGVzdGAKSW50ZXJncmF0aW9uIFRlc3RzOiBgbnBtIHJ1biBpbnRlZ3JhdGlvbl90ZXN0YAoKWW91IGNhbiB0cnkgb3V0IHRoZSBnZW5lcmF0aW9uIHVzaW5nIFN3YWdnZXIncyBQZXRzdG9yZSBFeGFtcGxlOgotIEp1c3QgcnVuIGBucG0gcnVuIHBldHN0b3JlYAotIFRoZSBvdXRwdXQgZmlsZXMgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gYC4vdGVzdF92MS9nZW5lcmF0ZWQvYAoK readmeEtag: '"8bdcd00e4f9ff683cf28a6ab7170d3c3d5721adc"' readmeLastModified: Tue, 27 Aug 2024 18:07:19 GMT repositoryId: 331034649 description: ABAP OpenAPI Client and Server generator in ABAP created: '2021-01-19T16:03:52Z' updated: '2024-08-27T18:07:23Z' language: ABAP archived: false stars: 67 watchers: 11 forks: 8 owner: abap-openapi logo: https://avatars.githubusercontent.com/u/77685491?v=4 license: MIT repoEtag: '"97cad1ce79f21145fbe4a6edccc4668be976ea7cafd55331457b019a26c627f2"' repoLastModified: Tue, 27 Aug 2024 18:07:23 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/kubeshop/kusk-gateway v3: true repositoryMetadata: base64Readme: >- PiBEZWFyIHVzZXJzIGFuZCBjb250cmlidXRvcnMgb2YgS3VzayBhbmQgS3VzayBHYXRld2F5IQo+Cj4gV2UgY29udGludWUgdG8gYmVsaWV2ZSBpbiB0aGUgaWRlYSBvZiBPcGVuQVBJIGRyaXZlbiBHYXRld2F5LiBIb3dldmVyLCB3ZSBoYXZlIGRlY2lkZWQgdG8gcGF1c2Ugb25nb2luZyBhY3RpdmUgZGV2ZWxvcG1lbnQgYW5kIHN1cHBvcnQgZm9yIHRoZSB0aW1lIGJlaW5nLgo+IAo+IFdlIHdhbnQgdG8gZXhwcmVzcyBvdXIgc2luY2VyZSBncmF0aXR1ZGUgdG8gZXZlcnlvbmUgd2hvIGhhcyBjb250cmlidXRlZCB0byBLdXNrLCB3aGV0aGVyIGJ5IHN1Ym1pdHRpbmcgY29kZSwgcmVwb3J0aW5nIGlzc3Vlcywgb3Igc2ltcGx5IHVzaW5nIGl0LiBXZSBhcmUgcHJvdWQgb2YgdGhlIHdvcmsgd2UgYWNjb21wbGlzaGVkIHRvZ2V0aGVyLCBhbmQgaG9wZSB0aGF0IG91ciBlZmZvcnRzIGhhdmUgaGFkIGEgcG9zaXRpdmUgaW1wYWN0IG9uIHlvdXIgd29yayBhbmQgeW91ciBjb21tdW5pdHkuCj4gCj4gSWYgeW91J3JlIHdpbGxpbmcgdG8gaW1wcm92ZSB0aGUgcHJvamVjdCwgcGxlYXNlIGZlZWwgZnJlZSB0byBjb250cmlidXRlLiBXZSB3aWxsIGRvIG91ciBiZXN0IHRvIHJldmlldyBhbmQgYXBwcm92ZSBpbmNvbWluZyBQUnMgYXMgb3VyIHRpbWUgYW5kIHJlc291cmNlcyBhbGxvdy4KPiAKPiBUaGFuayB5b3UgZm9yIHlvdXIgdW5kZXJzdGFuZGluZyBhbmQgc3VwcG9ydCEKPiAKPiBUaGUgS3VzayBUZWFtIGF0IEt1YmVzaG9wCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHN0eWxlPSJ3aWR0aDo2NiUiIHNyYz0iYXNzZXRzL2t1c2stY29sb3ItbGcucG5nI2doLWxpZ2h0LW1vZGUtb25seSIgYWx0PSJLdXNrIExvZ28gTGlnaHQiLz4KICA8aW1nIHN0eWxlPSJ3aWR0aDo2NiUiIHNyYz0iYXNzZXRzL2t1c2std2hpdGUtbGcucG5nI2doLWRhcmstbW9kZS1vbmx5IiBhbHQ9Ikt1c2sgTG9nbyBEYXJrIiAvPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICBXZWxjb21lIHRvIEt1c2sgR2F0ZXdheSAtIGEgc2VsZi1zZXJ2aWNlIEFQSSBnYXRld2F5IHBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLyI+T3BlbkFQSTwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8iPkVudm95PC9hPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL2t1c2suaW8iPldlYnNpdGU8L2E+Jm5ic3A7fCZuYnNwOwogIDxhIGhyZWY9Imh0dHBzOi8va3ViZXNob3AuZ2l0aHViLmlvL2t1c2stZ2F0ZXdheSI+RG9jdW1lbnRhdGlvbjwvYT4mbmJzcDt8Jm5ic3A7CiAgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9LdXNrX2lvIj5Ud2l0dGVyPC9hPiZuYnNwO3wmbmJzcDsKICA8YSBocmVmPSJodHRwczovL2Rpc2NvcmQuZ2cvaGZxNDR3dFI2USI+RGlzY29yZDwvYT4mbmJzcDt8Jm5ic3A7CiAgPGEgaHJlZj0iaHR0cHM6Ly9rdWJlc2hvcC5pby9jYXRlZ29yeS9rdXNrIj5CbG9nPC9hPgo8L3A+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlc2hvcC9rdXNrLWdhdGV3YXkvcmVsZWFzZXMiPjxpbWcgdGl0bGU9IlJlbGVhc2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi9yZWxlYXNlL2t1YmVzaG9wL2t1c2stZ2F0ZXdheSIvPjwvYT4KICA8YSBocmVmPSIiPjxpbWcgdGl0bGU9IkdvIHZlcnNpb24iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZ28tbW9kL2dvLXZlcnNpb24va3ViZXNob3Ava3Vzay1nYXRld2F5Ii8+PC9hPgogIDxhIGhyZWY9IiI+PGltZyB0aXRsZT0iQ29kZSBidWlsZHMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvd29ya2Zsb3cvc3RhdHVzL2t1YmVzaG9wL2t1c2stZ2F0ZXdheS9idWlsZCUyMGFuZCUyMHRlc3QiLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmVzaG9wL2t1c2stZ2F0ZXdheS9yZWxlYXNlcyI+PGltZyB0aXRsZT0iUmVsZWFzZSBkYXRlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlbGVhc2UtZGF0ZS9rdWJlc2hvcC9rdXNrLWdhdGV3YXkiLz48L2E+CiAgPGEgaHJlZj0iIj48aW1nIHRpdGxlPSJTdGFycyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zdGFycy9rdWJlc2hvcC9rdXNrLWdhdGV3YXk/Y29sb3I9Ymx1ZXZpb2xldCZsYWJlbD1TdGFyZ2F6ZXJzIi8+PC9hPgoKICBbIVtTbGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zbGFjay1qb2luJTIwY2hhdC1lMDE1NjMuc3ZnP2xvZ289c2xhY2spXShodHRwczovL2t1YmVzaG9wLW9zcy5zbGFjay5jb20vYXJjaGl2ZXMvQzAzUjRKQlRNVVopCiAgWyFbRGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kaXNjb3JkLzg4NDQ2NDU0OTM0NzA3NDA0OT9sYWJlbD1kaXNjb3JkJmxvZ289ZGlzY29yZCldKGh0dHBzOi8vZGlzY29yZC5jb20vY2hhbm5lbHMvODg0NDY0NTQ5MzQ3MDc0MDQ5KQo8L2Rpdj4KCiMgV2VsY29tZSB0byBLdXNrIEdhdGV3YXkKCkt1c2sgR2F0ZXdheSBlbmFibGVzIHlvdSB0byBkZXNpZ24gYW5kIGNvbmZpZ3VyZSB5b3VyIEFQSXMgZnJvbSBzaW5nbGUgT3BlbkFQSSBtYW5pZmVzdCBhbmQgeW91IGNhbjoKCi0g4pqhICoqUmFwaWRseSBwcm90b3R5cGUgeW91ciBBUElzKiogYnkgbW9ja2luZyB5b3VyIEFQSSByZXNwb25zZXMsIGFsbG93aW5nIHlvdXIgdGVhbXMgdG8gaW5zdGFudGx5IHN0YXJ0IGJ1aWxkaW5nIG9uIHRvcCBvZiB5b3VyIEFQSXMgd2l0aG91dCB5b3VyIHNlcnZpY2VzIGJlaW5nIGltcGxlbWVudGVkCi0g8J+UkiBQcm90ZWN0IHlvdXIgZW5kcG9pbnRzIHdpdGggKiphdXRvbWF0aWMgcmVxdWVzdCBhbmQgcmVzcG9uc2UgdmFsaWRhdGlvbnMqKgotIOKaoO+4jyBDb25maWd1cmUgY3JpdGljYWwgcG9saWNpZXMgbGlrZSByZXF1ZXN0IHRpbWVvdXRzIGFuZCBDT1JTIHdpdGggKipubyBjb2RpbmcgcmVxdWlyZWQqKgotIPCfp5AgQ2VudHJhbGx5IGNvbnRyb2wgeW91ciBBUElzIGZyb20gYW4gT3BlbiBTb3VyY2UgZGFzaGJvYXJkCgojIyBHZXQgU3RhcnRlZAoKQ2hlY2sgb3V0IG91ciBbR2V0dGluZyBTdGFydGVkIHNlY3Rpb25dKGh0dHBzOi8va3ViZXNob3AuZ2l0aHViLmlvL2t1c2stZ2F0ZXdheS9nZXR0aW5nLXN0YXJ0ZWQpIHRvIGluc3RhbGwgS3VzayBHYXRld2F5LCBkZXBsb3kgYW4gZXhhbXBsZSBBUEkgYW5kIGNvbm5lY3QgYSBzZXJ2aWNlIHRvIHRoZSBBUEkuCgojIyBDb250cmlidXRpbmcKCkdvIHRvIGNvbnRyaWJ1dGlvbiBkb2N1bWVudCB0byByZWFkIG1vcmUgaG93IGNhbiB5b3UgaGVscCB1cyDwn5SlCgojIyBGZWVkYmFjawoKV2hldGhlciBpdCBoZWxwcyB5b3Ugb3Igbm90IC0gd2UnZCBMT1ZFIHRvIGhlYXIgZnJvbSB5b3UuIFBsZWFzZSBsZXQgdXMga25vdyB3aGF0IHlvdSB0aGluayBhbmQgb2YgY291cnNlLCBob3cgd2UgY2FuIG1ha2UgaXQgYmV0dGVyLiBQbGVhc2Ugam9pbiBvdXIgZ3Jvd2luZyBjb21tdW5pdHkgb24gW0Rpc2NvcmRdKGh0dHBzOi8vZGlzY29yZC5jb20vaW52aXRlLzZ6dXBDWkZRYmUpLgoKIyMgRGV2ZWxvcG1lbnQKClNlZSBbYFNLQUZGT0xELm1kYF0oLi9TS0FGRk9MRC5tZCkuCg== readmeEtag: '"eed208d1215ce66a8cf64443577e0139c5ff56aa"' readmeLastModified: Tue, 21 Feb 2023 10:07:52 GMT repositoryId: 408727871 description: Kusk-gateway is an OpenAPI-driven API Gateway for Kubernetes created: '2021-09-21T07:33:29Z' updated: '2024-09-04T11:26:26Z' language: Go archived: false stars: 259 watchers: 16 forks: 21 owner: kubeshop logo: https://avatars.githubusercontent.com/u/82541796?v=4 license: MIT repoEtag: '"83ab829953bd3d85ea5e769042756ec963f0cc3eb5ca04019d94429c2fcd1b1f"' repoLastModified: Wed, 04 Sep 2024 11:26:26 GMT foundInMaster: true category: - Documentation - Mock - Gateway - Server Implementations id: b0e18adcd3ab375ea18858db2f04ec17 name: Kusk Gateway link: https://docs.kusk.io/ language: Kubernetes source_description: >- Kusk-Gateway is an OpenAPI-driven API Gateway for Kubernetes. It empowers you to develop, validate, mock and deploy your APIs in a matter of minutes using both manual and automated GitOps/APIOps workflows. v2: true v3_1: false - source: https://openapi.tools/ name: openapi-comparator language: C# repository: https://github.com/criteo/openapi-comparator link: https://github.com/criteo/openapi-comparator source_description: C# library for comparing two OpenAPI specifications. v3: true id: 01c7663c51ca9c29913eec0e1c6ccd8c repositoryMetadata: base64Readme: >- IyBPcGVuIEFQSSBDb21wYXJhdG9yCgpBbiBPcGVuQVBJIHRvb2wgdG8gY29tcGFyZSBPcGVuQVBJIFNwZWNpZmljYXRpb25zLgoKIyMgQyMgTGlicmFyeQoKVGhlIHRvb2wgaXMgYXZhaWxhYmxlIGFzIGEgW251Z2V0IHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Dcml0ZW8uT3BlbkFwaS5Db21wYXJhdG9yKSwgZGlyZWN0bHkgdXNhYmxlIGludG8geW91ciBDIyBhcHBsaWNhdGlvbi4KClRvIGluc3RhbGwgaXQgcnVuIHRoZSBjb21tYW5kOgpgYGBiYXNoCmRvdG5ldCBhZGQgcGFja2FnZSBDcml0ZW8uT3BlbkFwaS5Db21wYXJhdG9yCmBgYAoKSGVyZSBpcyBhbiBleGFtcGxlIG9mIGhvdyB0byB1c2UgdGhlIENvbXBhcmF0b3I6CmBgYEMjCnZhciBkaWZmZXJlbmNlcyA9IE9wZW5BcGlDb21wYXJhdG9yLkNvbXBhcmUoCiAgICBvbGRPcGVuQXBpU3BlYywKICAgIG5ld09wZW5BcGlTcGVjCik7CmBgYAoKIyMgQ29tbWFuZCBsaW5lIHRvb2wKClRoZSBjb21wYXJhdG9yIGlzIGFsc28gYXZhaWxhYmxlIGFzIGEgW2NvbW1hbmQgbGluZSB0b29sXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvQ3JpdGVvLk9wZW5BcGkuQ29tcGFyYXRvci5DbGkvMC4xLjApLgoKVG8gaW5zdGFsbCBpdCwgcnVuIHRoZSBjb21tYW5kOgpgYGBiYXNoCmRvdG5ldCB0b29sIGluc3RhbGwgLWcgQ3JpdGVvLk9wZW5BcGkuQ29tcGFyYXRvci5DbGkKYGBgCgpZb3UgY2FuIHRoZW4gdXNlIHRoZSB0b29sIHRocm91Z2ggdGhlIGBvcGVuYXBpLWNvbXBhcmVgIGNvbW1hbmQ6CmBgYGJhc2gKb3BlbmFwaS1jb21wYXJlIC1vIG5ld19vYXMuanNvbiAtbiBvbGRfb2FzLmpzb24gLWYgSnNvbgpgYGAKCkF2YWlsYWJsZSBvcHRpb25zOgp8IE9wdGlvbiAgICAgICAgICAgfCBTbWFsbCAgIHwgUmVxdWlyZWQgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgYC0tb2xkYCAgICAgICAgICB8IGAtb2AgICAgfCBgdHJ1ZWAgICB8IFBhdGggb3IgVVJMIHRvIG9sZCBPcGVuQVBJIFNwZWNpZmljYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGAtLW5ld2AgICAgICAgICAgfCBgLW5gICAgIHwgYHRydWVgICAgfCBQYXRoIG9yIFVSTCB0byBuZXcgT3BlbkFQSSBTcGVjaWZpY2F0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgLS1vdXRwdXRGb3JtYXRgIHwgYC1mYCAgICB8IGBmYWxzZWAgIHwgKERlZmF1bHQ6IGBKc29uYCkgU3BlY2lmaWVzIGluIHdoaWNoIGZvcm1hdCB0aGUgZGlmZmVyZW5jZXMgc2hvdWxkIGJlIGRpc3BsYXllZC4gUG9zc2libGUgdmFsdWVzOiBgSnNvbmAgXHwgYFRleHRgLiB8CnwgYC0tc3RyaWN0YCAgICAgICB8IGAtc2AgICAgfCBgZmFsc2VgICB8IChEZWZhdWx0OiBgZmFsc2VgKSBFbmFibGUgc3RyaWN0IG1vZGU6IGJyZWFraW5nIGNoYW5nZXMgYXJlIGVycm9ycyBpbnN0ZWFkIG9mIHdhcm5pbmdzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGAtLWhlbHBgICAgICAgICAgfCBgLWhgICAgIHwgYGZhbHNlYCAgfCBMb2cgYXZhaWxhYmxlIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIENvbXBhcmlzb24gcnVsZXMKCkVhY2ggY29tcGFyaXNvbiBydWxlIGlzIGRvY3VtZW50ZWQgaW4gdGhlIFtkb2N1bWVudGF0aW9uIHNlY3Rpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9jcml0ZW8vb3BlbmFwaS1jb21wYXJhdG9yL3RyZWUvbWFpbi9kb2N1bWVudGF0aW9uKS4KCiMjIE9wZW5BUEkgdmVyc2lvbiBzdXBwb3J0CgpJbnRlcm5hbGx5LCB0aGUgY29tcGFyYXRvciB1c2VzIFttaWNyb3NvZnQvT3BlbkFQSS5ORVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvT3BlbkFQSS5ORVQvKSB3aGljaCBjdXJyZW50bHkgc3VwcG9ydHMgT3BlbkFQSSAyLjAgdG8gMy4wLjAuCgojIyBDb250cmlidXRpbmcKCkFueSBjb250cmlidXRpb24gaXMgbW9yZSB0aGFuIHdlbGNvbWVkLiBGb3Igbm93LCBubyBzcGVjaWZpYyBydWxlIG11c3QgYmUgYXBwbGllZCB0byBjb250cmlidXRlLCBqdXN0IGNyZWF0ZSBhbiBJc3N1ZSBvciBhIFB1bGwgUmVxdWVzdCBhbmQgd2UnbGwgdHJ5IHRvIGhhbmRsZSBpdCBBU0FQLgoKIyMgTGljZW5zZQoKT3BlbkFwaSBDb21wYXJhdG9yIGlzIGFuIE9wZW4gU291cmNlIHNvZnR3YXJlIHJlbGVhc2VkIHVuZGVyIHRoZSBbQXBhY2hlIDIuMCBsaWNlbnNlXShodHRwczovL2dpdGh1Yi5jb20vY3JpdGVvL29wZW5hcGktY29tcGFyYXRvci9ibG9iL21haW4vTElDRU5DRSkuCgojIyBEZXZlbG9wcGVyIGd1aWRlCgpTaW1wbHkgdXNlIHRoZSBkb3RuZXQgY2xpLiBGb3IgZXhhbXBsZSwgdG8gcnVuIHRoZSB0ZXN0czoKYGBgYmFzaApkb3RuZXQgdGVzdApgYGAK readmeEtag: '"8044a6570d969c044cfcc3b5e499a3d3d0b7c8a7"' readmeLastModified: Thu, 18 Jul 2024 08:39:25 GMT repositoryId: 506186592 description: null created: '2022-06-22T09:46:19Z' updated: '2024-09-03T12:36:53Z' language: C# archived: false stars: 25 watchers: 8 forks: 6 owner: criteo logo: https://avatars.githubusercontent.com/u/1713646?v=4 license: Apache-2.0 repoEtag: '"8b6ca57ee183c2606fa824894f0ff9ce9491c9bebee97c01de037598ce4c88b5"' repoLastModified: Tue, 03 Sep 2024 12:36:53 GMT foundInMaster: true category: Parsers - source: https://openapi.tools/ name: openapi-validator-junit category: - Description Validators - Parsers link: https://github.com/stefankoppier/openapi-validator repository: https://github.com/stefankoppier/openapi-validator language: Kotlin source_description: >- A JUnit extension for validating a wide range of properties of a specification. v2: true v3: true v3_1: true id: 2d3fe34fda3d9de22ff8948b50e4617d repositoryMetadata: base64Readme: >- WyFbR3JhZGxlIFBsdWdpbiBQb3J0YWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ3JhZGxlLXBsdWdpbi1wb3J0YWwvdi9pby5naXRodWIuc3RlZmFua29wcGllci5vcGVuYXBpLnZhbGlkYXRvcildKGh0dHBzOi8vcGx1Z2lucy5ncmFkbGUub3JnL3BsdWdpbi9pby5naXRodWIuc3RlZmFua29wcGllci5vcGVuYXBpLnZhbGlkYXRvcikKWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3YvaW8uZ2l0aHViLnN0ZWZhbmtvcHBpZXIub3BlbmFwaS52YWxpZGF0b3IvY29yZSldKGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvaW8uZ2l0aHViLnN0ZWZhbmtvcHBpZXIub3BlbmFwaS52YWxpZGF0b3IpClshW1F1YWxpdHkgR2F0ZSBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXN0ZWZhbmtvcHBpZXJfb3BlbmFwaS12YWxpZGF0b3ImbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPXN0ZWZhbmtvcHBpZXJfb3BlbmFwaS12YWxpZGF0b3IpClshW0NvdmVyYWdlXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1zdGVmYW5rb3BwaWVyX29wZW5hcGktdmFsaWRhdG9yJm1ldHJpYz1jb3ZlcmFnZSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPXN0ZWZhbmtvcHBpZXJfb3BlbmFwaS12YWxpZGF0b3IpCgojIE9wZW5BUEkgVmFsaWRhdG9yCgpUaGUgT3BlbkFQSSBWYWxpZGF0b3IgYWxsb3dzIHlvdSB0byB2YWxpZGF0ZSB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBieSB3cml0aW5nIGEgZGVzY3JpcHRpdmUgcnVsZXNldCBpbiBLb3RsaW4hClRoZXJlIGlzIGFuIGV4dGVuc2l2ZSBzZXQgb2YgYnVpbHQtaW4gcnVsZXMgYW5kIGlzIGV4dGVuc2libGUsIGFzIGl0IGFsbG93cyB5b3UgdG8gYWRkIGN1c3RvbSBydWxlcyBlYXNpbHkuIAoKVmlzaXQgW3RoZSBwcm9qZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vc3RlZmFua29wcGllci5naXRodWIuaW8vb3BlbmFwaS12YWxpZGF0b3IvKSBmb3IgYSBjb21wbGV0ZSBvdmVydmlldyBvZiB0aGUgCmZ1bmN0aW9uYWxpdHkuCgojIyBGZWF0dXJlcwoKIyMjIFJ1bGVzCkFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gaGF2ZSBhIGNvcnJlc3BvbmRpbmcgcnVsZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIHZhbGlkYXRlIHRoYXQgdGhlCnBhdGggYC9wZXQvZmluZEJ5U3RhdHVzYCBoYXMgYSBnZXQgb3BlcmF0aW9uIHdpdGggdGhlIHJlcXVpcmVkIHF1ZXJ5IHBhcmFtZXRlciBgc3RhdHVzYCB5b3UgY2FuIHdyaXRlCmBgYGtvdGxpbgpvcGVuQVBJIHsKICAgIHBhdGhzIHsKICAgICAgICByZXF1aXJlZCgpCiAgICAgICAgcGF0aChuYW1lZCA9ICIvcGV0L2ZpbmRCeVN0YXR1cyIpIHsKICAgICAgICAgICAgZ2V0IHsgCiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHsKICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIobmFtZWQgPSAic3RhdHVzIikgewogICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQoKQogICAgICAgICAgICAgICAgICAgICAgYGluYCB7IGV4YWN0bHkoInF1ZXJ5IikgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpgYGAKCiMjIyBRdWFudGlmaWVyIFJ1bGVzClRoZXJlIGlzIHN1cHBvcnQgZm9yIHF1bnRpZmljYXRpb24gb24gdGhlIHJlbGV2YW50IHR5cGVzLiBGb3IgZXhhbXBsZQpgYGBrb3RsaW4Kb3BlbkFQSSB7CiAgICBwYXRocyB7CiAgICAgICAgYWxsIHsKICAgICAgICAgICAgc3RhcnRzV2l0aCgicHJlZml4IikKICAgICAgICB9CiAgICB9Cn0KYGBgCnN0YXRlcyB0aGF0IGFsbCBwYXRocyBtdXN0IHN0YXJ0IHdpdGggdGhlIHN0cmluZyBgcHJlZml4YC4KCiMjIyBQcmVjb25kaXRpb25zClRoZXJlIGlzIHN1cHBvcnQgZm9yIHByZWNvbmRpdGlvbnMuIFRoZSBnZW5lcmFsIHByZWNvbmRpdGlvbiBgZ2l2ZW5gIHZhbGlkYXRlcyBhIGdpdmVuIHJ1bGUgb25seSBpZgp0aGUgcHJlZGljYXRlIGlzIHRydWUuIEZvciBleGFtcGxlCmBgYGtvdGxpbgpvcGVuQVBJIHsKICAgIGluZm8gewogICAgICAgIGdpdmVuKHsgaXQgIT0gbnVsbCAmJiBpdC5sZW5ndGggPiAyMCB9KSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgbG93ZXJjYXNlKCkgfQogICAgICAgIH0KICAgIH0KfQpgYGAKc3RhdGVzIHRoYXQgdGhlIGZpZWxkIGBkZXNjcmlwdGlvbmAgb2YgdGhlIGBpbmZvYCBmaWVsZCBtdXN0IGxvd2VyY2FzZSB3aGVuIGl0IGlzIG5vdCBudWxsLCBhbmQgaXQncyBsZW5ndGggaXMKZ3JlYXRlciB0aGFuIDIwLgoKVGhlcmUgaXMgYWxzbyB0aGUgYHNpbmNlYCBwcmVjb25kaXRpb24sIHdoaWNoIHN0YXRlcyB0aGF0IHNvbWV0aGluZyBzaG91bGQgaG9sZCBvbmx5IGlmIHRoZSBnaXZlbiBkYXRlIGlzIGluCnRoZSBwYXN0LiBGb3IgZXhhbXBsZQpgYGBrb3RsaW4Kb3BlbkFQSSB7CiAgICBpbmZvIHsKICAgICAgICBzaW5jZShMb2NhbERhdGUub2YoMjAyNCwgMSwgMSkpIHsKICAgICAgICAgICAgdGl0bGUgeyBsb3dlcmNhc2UoKSB9CiAgICAgICAgfQogICAgfQp9CmBgYApzdGF0ZXMgdGhhdCB0aGUgZmllbGQgYHRpdGxlYCBvZiB0aGUgYGluZm9gIGZpZWxkIG11c3QgYmUgaW4gbG93ZXJjYXNlIGFmdGVyIEphbnVhcnkgMcui4bWXIG9mIDIwMjQuICAKCiMjIFVzYWdlCgpUaGUgT3BlbkFQSSBWYWxpZGF0b3IgYWxsb3dzIGZvciB0d28gd2F5cyB0byBleGVjdXRlIHRoZSB2YWxpZGF0aW9uOiB2aWEgR3JhZGxlIG9yIHZpYSBKVW5pdC4KCiMjIyBHcmFkbGUgSW50ZWdyYXRpb24KCkFwcGx5IHRoZSBwbHVnaW4KYGBga290bGluCnBsdWdpbnMgewogICAgaWQoImlvLmdpdGh1Yi5zdGVmYW5rb3BwaWVyLm9wZW5hcGkudmFsaWRhdG9yIikgdmVyc2lvbiAieC55LnoiCn0KYGBgCmFuZCB0aGVuIGNvbmZpZ3VyZSB0aGUgZG9jdW1lbnQgdG8gYmUgdmVyaWZpZWQgdXNpbmcgdGhlIGdpdmVuIHJ1bGVzIHVzaW5nCmBgYGtvdGxpbgpvcGVuQVBJVmFsaWRhdGUgewogICAgZG9jdW1lbnQuc2V0KHVyaSgicGV0c3RvcmUueWFtbCIpKQogICAgcnVsZXMuc2V0KAogICAgICAgIG9wZW5BUEkgewogICAgICAgICAgICBpbmZvIHsKICAgICAgICAgICAgICAgIHRpdGxlIHsgZXhhY3RseSgiT3BlbkFQSSBQZXRzdG9yZSIpIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICkKfQpgYGAKCiMjIyBKVW5pdCBJbnRlZ3JhdGlvbgoKQWRkIHRoZSBwYWNrYWdlIHRvIHlvdXIgZGVwZW5kZW5jaWVzLgoKVGhlbiBleHRlbmQgeW91ciB0ZXN0IGNsYXNzIHdpdGggYEBFeHRlbmRXaXRoKE9wZW5BUElWYWxpZGF0aW9uRXh0ZW5zaW9uOjpjbGFzcylgIHRvIGFkZCBsb2FkaW5nIG9mIGEgc3BlY2lmaWNhdGlvbi4gClRoZSBzcGVjaWZpY2F0aW9uIGNhbiBiZSBsb2FkZWQgdXNpbmcgdGhlIGFubm90YXRpb24gYEBPcGVuQVBJVGVzdChyZWxhdGl2ZVVybCA9ICJzcmMvdGVzdC9yZXNvdXJjZXMvcGV0c3RvcmUueWFtbCIpYCB0byAKc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhlIHNwZWNpZmljYXRpb24uIEZvciBleGFtcGxlCmBgYGtvdGxpbgpARXh0ZW5kV2l0aChPcGVuQVBJVmFsaWRhdGlvbkV4dGVuc2lvbjo6Y2xhc3MpCkBPcGVuQVBJVGVzdChyZWxhdGl2ZVVybCA9ICJzcmMvdGVzdC9yZXNvdXJjZXMvcGV0c3RvcmUueWFtbCIpCmNsYXNzIE9wZW5BUElWYWxpZGF0aW9uRXh0ZW5zaW9uVGVzdCB7CgogICAgQFRlc3QKICAgIGZ1biBgbXkgcGV0c3RvcmUgdGVzdGAoKSB7CiAgICAgICAgYXNzZXJ0RG9jdW1lbnRJc1ZhbGlkRm9yIHsKICAgICAgICAgICAgb3BlbkFQSSgiTXkgc3BlY2lmaWNhdGlvbiIpIHsKICAgICAgICAgICAgICAgIGluZm8gewogICAgICAgICAgICAgICAgICAgIHRpdGxlIHsgZXhhY3RseSgiT3BlbkFQSSBQZXRzdG9yZSIpIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpgYGAK readmeEtag: '"418b10cd8b745efa68624d45799c241e01f3a0f0"' readmeLastModified: Wed, 01 Nov 2023 06:30:02 GMT repositoryId: 646046176 description: Library for validating OpenAPI specifications created: '2023-05-27T05:41:25Z' updated: '2024-08-01T11:03:01Z' language: Kotlin archived: false stars: 2 watchers: 1 forks: 0 owner: stefankoppier logo: https://avatars.githubusercontent.com/u/5744697?v=4 license: Apache-2.0 repoEtag: '"cba09de4bc7eeb4df573d2b5f52fa34ae313c85f9fd0154c53eaa44e6150bac9"' repoLastModified: Thu, 01 Aug 2024 11:03:01 GMT foundInMaster: true - source: https://openapi.tools/ name: Hot Potato category: - Data Validators - Description Validators - Server - Testing language: C# link: https://github.com/davidmbillie/Hot-Potato repository: https://github.com/davidmbillie/hot-potato source_description: >- A reverse proxy that validates responses against an OpenAPI description. It can be used as either a standalone .NET tool, or installed as NuGet packages for an ASP.NET Core integration testing project. id: bdfcf4d5e833ed87ca9e7a80a42cd36d repositoryMetadata: base64Readme: >- IyBIb3QgUG90YXRvIFByb3h5CgohW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL0h5bGFuZFNvZnR3YXJlL0hvdC1Qb3RhdG8vd29ya2Zsb3dzL2hvdC1wb3RhdG8tY2kvYmFkZ2Uuc3ZnKQoKVGhlIEhvdCBQb3RhdG8gaXMgYW4gQVNQLk5FVCBDb3JlIHJldmVyc2UgcHJveHkgdGhhdCB3aWxsIHZhbGlkYXRlIGFuIEFQSSdzIGNvbmZvcm1hbmNlIHRvIGFuIE9wZW5BUEkgc3BlYy4KCiMjIFNldHVwCgpUbyB1c2UgdGhlIGNvbXBsZXRlIHRvb2wgeW91IHdpbGwgbmVlZCB0byBkb3dubG9hZCB0aGUgYEhvdFBvdGF0by5Bc3BOZXRDb3JlLkhvc3RgIE51R2V0IHBhY2thZ2UgZnJvbSBodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvSG90UG90YXRvLkFzcE5ldENvcmUuSG9zdC8uIFNpbmNlIEhvdCBQb3RhdG8gaXMgYSBkb3RuZXQgZ2xvYmFsIHRvb2wgeW91IGNhbiBlYXNpbHkgZG93bmxvYWQgaXQgZnJvbSBQb3dlcnNoZWxsIG9yIENvbW1hbmQgUHJvbXB0LiBUaGUgbW9zdCBjb21tb24gd2F5IG9mIHV0aWxpemluZyB0aGlzIHRvb2wgY2FuIGJlIGZvdW5kIGluIHRoZSBbUG9zdG1hbl0oI3Bvc3RtYW4pIHNlY3Rpb24gYmVsb3cuCgpJZiB5b3UgaGF2ZSBhbiBhdXRvbWF0ZWQgQVBJIHRlc3RpbmcgcHJvamVjdCB3aXRoIGEgbW9jayBzZXJ2ZXIgeW91IHdvdWxkIGxpa2UgdG8gY29uZm9ybWFuY2UgdGVzdCwgeW91IGFsc28gaGF2ZSB0aGUgb3B0aW9uIG9mIGluc3RhbGxpbmcgdGhlIGBIb3RQb3RhdG8uQXNwTmV0Q29yZS5NaWRkbGV3YXJlYCBOdUdldCBwYWNrYWdlIGZyb20gaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0hvdFBvdGF0by5Bc3BOZXRDb3JlLk1pZGRsZXdhcmUvLiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IHdyaXRpbmcgY29uZm9ybWFuY2UgdGVzdHMgd2l0aCBhIG1vY2sgc2VydmVyIGNhbiBiZSBmb3VuZCBiZWxvdyBpbiB0aGUgW01pZGRsZXdhcmVdKCNtaWRkbGV3YXJlKSBzZWN0aW9uLgoKIyMjIEluc3RhbGwgLk5FVCBUb29sCgpUbyBpbnN0YWxsIEhvdCBQb3RhdG8gdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKYGBgc2gKZG90bmV0IHRvb2wgaW5zdGFsbCAtZyBob3Rwb3RhdG8uYXNwbmV0Y29yZS5ob3N0CmBgYApUaGVyZSBhcmUgb3RoZXIgb3B0aW9ucyB0aGF0IGNhbiBiZSB1dGlsaXplZCB3aGVuIGRvd25sb2FkaW5nIGEgZG90bmV0IHRvb2wuIEEgY29tcGxldGUgbGlzdCBvZiBvcHRpb25zIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9kb3RuZXQvY29yZS90b29scy9kb3RuZXQtdG9vbC1pbnN0YWxsCgpJZiB0aGUgaW5zdGFsbCBpcyBzdWNjZXNzZnVsIHlvdSB3aWxsIHNlZSBhIG1lc3NhZ2UgbGlrZSB0aGlzOiAgCmBgYHNoCllvdSBjYW4gaW52b2tlIHRoZSB0b29sIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDogSG90UG90YXRvClRvb2wgJ2hvdHBvdGF0by5hc3BuZXRjb3JlLmhvc3QnICh2ZXJzaW9uICcyLjAuMCcpIHdhcyBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkLgpgYGAKIyMjIFN0YXJ0IEhvdCBQb3RhdG8KCllvdSBjYW4gbm93IHN0YXJ0IHRoZSB0b29sIGJ5IHVzaW5nIHRoZSBjb21tYW5kIGBIb3RQb3RhdG9gLiBBZGQgdGhlIGFyZ3VtZW50cyBmb3IgeW91ciB0ZXN0aW5nIHNpdHVhdGlvbiBhbmQgeW91IGNhbiB1dGlsaXplIGBIb3RQb3RhdG9gIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KYGBgc2gKSG90UG90YXRvIC0tUmVtb3RlRW5kcG9pbnQgaHR0cDovL2V4YW1wbGUuY29tL215L2VuZHBvaW50IC0tU3BlY0xvY2F0aW9uIGh0dHA6Ly9leGFtcGxlLmNvbS9teS9zcGVjaWZpY2F0aW9uLnlhbWwKYGBgCgojIyMgU1NMIFZhbGlkYXRpb24gSXNzdWVzCgpXZSBoYXZlIGFsc28gYWxzbyBwcm92aWRlZCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lZCBgSHR0cENsaWVudFNldHRpbmdzX19JZ25vcmVDbGllbnRIdHRwc0NlcnRpZmljYXRlVmFsaWRhdGlvbkVycm9yc2AgdGhhdCBjYW4gYmUgc2V0IHRvIGB0cnVlYCBpbiB0aGUgY2FzZSBvZiBvZiBwZXJzaXN0ZW50IFNTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGlzc3Vlcy4gCgojIyMgU3BlY3Mgd2l0aCBUb2tlbiBWYWxpZGF0aW9uCgpJbiB0aGUgY2FzZSBvZiBzb21ldGhpbmcgbGlrZSBhY2Nlc3NpbmcgYSByYXcgZmlsZSBpbiBhIHByaXZhdGUgcmVwbyBvbiBHaXRodWIsIGEgdG9rZW4gaXMgbmVlZGVkIHRvIGFjY2VzcyBhIHNwZWNpZmljYXRpb24uIEZvciBjYXNlcyBsaWtlIHRoaXMsIHdlIGhhdmUgaW5jbHVkZWQgYSBgU3BlY1Rva2VuYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgc2VjcmV0LiBJZiB5b3UncmUgcnVubmluZyBIb3QgUG90YXRvIGxvY2FsbHkgdmlhIFZpc3VhbCBTdHVkaW8sIGFuIGVhc3kgd2F5IG9mIHNldHRpbmcgdGhlIHNlY3JldCBjYW4gYmUgZm91bmQgaGVyZTogW01hbmFnZSBVc2VyIFNlY3JldHNdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2FzcG5ldC9jb3JlL3NlY3VyaXR5L2FwcC1zZWNyZXRzP3ZpZXc9YXNwbmV0Y29yZS01LjAmdGFicz13aW5kb3dzI2pzb24tc3RydWN0dXJlLWZsYXR0ZW5pbmctaW4tdmlzdWFsLXN0dWRpbykuCgo8YSBuYW1lPSJyZXN1bHRzIj48L2E+CiMjIFJlc3VsdHMKCkluIG9yZGVyIHRvIHJldHJpZXZlIHJlc3VsdHMgZnJvbSB0aGUgcHJveHksIHdlIGhhdmUgZXhwb3NlZCBhIGAvcmVzdWx0c2AgZW5kcG9pbnQuIFRoaXMgZW5kcG9pbnQgd2lsbCByZXR1cm4gYSBKU09OLWZvcm1hdHRlZCBvYmplY3QgdGhhdCBzaG93cyBhbGwgb2YgdGhlIHJlcXVlc3RzIHRoYXQgaGF2ZSBjb21lIHRocm91Z2ggYW5kIHdoZXRoZXIgb3Igbm90IHRoZXkncmUgY29uZm9ybWFudC4gVGhlIHJlc3BvbnNlIHdpbGwgYWxzbyBpbmNsdWRlIGEgYFgtU3RhdHVzYCBoZWFkZXIgd2hpY2ggd2lsbCBiZSBlaXRoZXIgYFBhc3NgLCBgRmFpbGAsIG9yIGBJbmNvbmNsdXNpdmVgLgoKX19QYXNzIFJlc3VsdF9fCmBgYGpzb24KWwogICAgewogICAgICAgICJQYXRoIjoiL2VuZHBvaW50IiwKICAgICAgICAiTWV0aG9kIjoiR0VUIiwKICAgICAgICAiU3RhdHVzQ29kZSI6MjAwLAogICAgICAgICJTdGF0ZSI6IlBhc3MiCiAgICB9Cl0KYGBgCgpfX0ZhaWwgUmVzdWx0X18KYGBganNvbgpbCiAgICB7ICAgICAgICAKICAgICAgICAiUGF0aCI6Ii9lbmRwb2ludCIsCiAgICAgICAgIk1ldGhvZCI6IkdFVCIsCiAgICAgICAgIlN0YXR1c0NvZGUiOjQwNCwKICAgICAgICAiU3RhdGUiOiJGYWlsIiwKICAgICAgICAiUmVhc29ucyI6WyJJbnZhbGlkQm9keSJdLAogICAgICAgICJWYWxpZGF0aW9uRXJyb3JzIjoKICAgICAgICBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJNZXNzYWdlIjoiRXJyb3IiLAogICAgICAgICAgICAgICAgIktpbmQiOiJVbmtub3duIiwKICAgICAgICAgICAgICAgICJQcm9wZXJ0eSI6IlByb3BlcnR5IiwKICAgICAgICAgICAgICAgICJMaW5lTnVtYmVyIjo1LAogICAgICAgICAgICAgICAgIkxpbmVQb3NpdGlvbiI6MTAKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0KXQpgYGAKCiMjIyBDdXN0b20gUmVzdWx0IEhlYWRlcnMKCkhvdCBQb3RhdG8gYWxzbyBhbGxvd3MgdXNlcnMgdG8gYWRkIGN1c3RvbSBoZWFkZXJzIHRvIHJlc3VsdHMgb2JqZWN0cy4gVG8gZG8gc28sIHVzZXJzIGNhbiBjYW4gYWRkIHRoZSBwcmVmaXggIlgtSFAtIiB0byBhIGhlYWRlciBrZXkgaW4gYSByZXF1ZXN0LCBhbmQgaXQgd2lsbCBhcHBlYXIgYXQgdGhlIHRvcCBvZiB0aGUgcmVzdWx0IGluIGEgImN1c3RvbSIgYXJyYXkuIFRoZSBjdXN0b20gYXJyYXkgb25seSBhcHBlYXJzIGlmIGN1c3RvbSBoZWFkZXJzIGFyZSBwcm92aWRlZC4KCmBgYGpzb24KWwoJewogICAgICAgICJjdXN0b20iOiB7CiAgICAgICAgICAgICJYLUhQLU5hbWUiOiBbCiAgICAgICAgICAgICAgICAiTGFuZGluZ1BhZ2UiCiAgICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJzdGF0ZSI6ICJQYXNzIiwKICAgICAgICAicGF0aCI6ICIvIiwKICAgICAgICAibWV0aG9kIjogImdldCIsCiAgICAgICAgInN0YXR1c0NvZGUiOiAyMDAKICAgIH0KXQpgYGAKCiMjIFN0cnVjdHVyZQoKVGhlIHByb3h5IGlzIGJyb2tlbiBkb3duIGludG8gYSBudW1iZXIgb2YgY29tcG9uZW50cyB0byBhbGxvdyBmbGV4aWJpbGl0eSBmb3IgZGV2ZWxvcGVycy4KCiMjIyBIb3RQb3RhdG8uQXNwTmV0Q29yZS5Ib3N0CgpUaGlzIGlzIGFuIEFTUC5ORVQgQ29yZSBob3N0IGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBIb3QgUG90YXRvIE1pZGRsZXdhcmUuIEl0IGlzIHN0b29kIHVwIGFzIGEgc2VwYXJhdGUgc2VydmVyIHRoYXQgbGlzdGVucyBieSBkZWZhdWx0IG9uIHBvcnQgYDMyMzJgLiBUaGVyZSBpcyBhbiBgYXBwc2V0dGluZ3MuanNvbmAgdG8gYWxsb3cgdGhlIGRldmVsb3BlciB0byBzZXQgdGhlIHJlbW90ZSBlbmRwb2ludCB0byBmb3J3YXJkIHJlcXVlc3RzIHRvIGFuZCB0aGUgbG9jYXRpb24gb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiB0byB2YWxpZGF0ZSBjb25mb3JtYW5jZS4gVGhlc2UgdmFsdWVzIGNhbiBhbHNvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb21tYW5kIGxpbmUgdmlhIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBob3Rwb3RhdG8gLS1SZW1vdGVFbmRwb2ludCBodHRwOi8vZXhhbXBsZS5jb20vbXkvZW5kcG9pbnQgLS1TcGVjTG9jYXRpb24gaHR0cDovL2V4YW1wbGUuY29tL215L3NwZWNpZmljYXRpb24ueWFtbGAKCiMjIyBIb3RQb3RhdG8uQ29yZQoKYEhvdFBvdGF0by5Db3JlYCBjb250YWlucyBhbGwgb2YgdGhlIG1vZGVscywgSFRUUCBsb2dpYywgdGhlIHByb3h5IGZvcndhcmRlciwgYW5kIHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBwcm94eSBwcm9jZXNzb3IuIFRoaXMgbGlicmFyeSBpcyBhIGRlcGVuZGVuY3kgb2YgYEhvdFBvdGF0by5Bc3BOZXRDb3JlLk1pZGRsZXdhcmVgIGJ1dCB3aWxsIGxpa2VseSBuZXZlciBuZWVkIHRvIGJlIGRpcmVjdGx5IGNvbnN1bWVkLgoKIyMjIEhvdFBvdGF0by5PcGVuQXBpCgpgSG90UG90YXRvLk9wZW5BcGlgIGNvbnRhaW5zIGFsbCBvZiB0aGUgT3BlbkFQSSBmdW5jdGlvbmFsaXR5IGluY2x1ZGluZyB0aGUgcHJvY2Vzc29yIGltcGxlbWVudGF0aW9uIHRoYXQgdmFsaWRhdGVzIGFuIEhUVFAgcmVxdWVzdC9yZXNwb25zZSBwYWlyIGFnYWluc3QgYSBzcGVjLCBhIHJlc3VsdCBjb2xsZWN0aW9uLCBsb2dpYyB0byBmaW5kIHBhdGhzLCBhbmQgc28gb24uIEN1cnJlbnRseSwgd2UgYXJlIHVzaW5nIHRoZSBwYWNrYWdlcyBgTlN3YWdgLCBgTkpzb25TY2hlbWFgLCBhbmQgYE5Kc29uU2NoZW1hLllhbWxgIHRvIGNvbnN1bWUgYSBzcGVjIGFuZCB0byB2YWxpZGF0ZSB0aGUgY29udGFpbmVkIHNjaGVtYXMuCgo8YSBuYW1lPSJtaWRkbGV3YXJlIj48L2E+CiMjIyBIb3RQb3RhdG8uQXNwTmV0Q29yZS5NaWRkbGV3YXJlCgpUaGlzIGlzIGFuIEFTUC5ORVQgQ29yZSBtaWRkbGV3YXJlIHRoYXQgY2FuIGJlIHVzZWQgaW4gc2l0dWF0aW9ucyB3aGVyZSB0ZXN0IHN1aXRlcyBhcmUgZGlyZWN0bHkgc3RhcnRpbmcgdXAgdGhlIHNlcnZlciBzdGFydHVwIG9yIHVzaW5nIFtgVGVzdFNlcnZlcmBdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2RvdG5ldC9hcGkvbWljcm9zb2Z0LmFzcG5ldGNvcmUudGVzdGhvc3QudGVzdHNlcnZlcikuCgpUaGUgbWFpbiBmYWN0b3IgaW4gc2V0dGluZyB1cCBhIHRlc3Qgc3VpdGUgdG8gdXNlIHRoZSBpc29sYXRlZCBtaWRkbGV3YXJlIGlzIHRoYXQgYmVjYXVzZSBIb3QgUG90YXRvJ3MgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBjcmVhdGUgaXRzIG93biBjbGllbnQgdGhyb3VnaCBESSBzZXR1cCwgYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBVbmRlciBUZXN0J3MgY2xpZW50IG11c3QgYmUgY3JlYXRlZCBmaXJzdCB0byBiZSBhYmxlIHRvIGJlIGluamVjdGVkIGludG8gREkuCgojIyMjIFVzaW5nIHRoZSBNaWRkbGV3YXJlIHdpdGggVGVzdFNlcnZlcgoKSW4gb3VyIGV4YW1wbGUgW3Rlc3QgZml4dHVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0h5bGFuZFNvZnR3YXJlL0hvdC1Qb3RhdG8vYmxvYi9tYXN0ZXIvdGVzdC9Ib3RQb3RhdG8uVGVzdFNlcnZlci5UZXN0L1Rlc3RGaXh0dXJlLmNzKSwgd2UgdXNlIHR3byBpbnN0YW5jZXMgb2YgVGVzdFNlcnZlcjogb25lIHRvIGNyZWF0ZSB0aGUgY2xpZW50IHJlcHJlc2VudGluZyB0aGUgQVBJIFVuZGVyIFRlc3QsIGFuZCBvbmUgdGhhdCBjb25zdW1lcyB0aGlzIGNsaWVudCB0byBjcmVhdGUgYSBuZXcgY2xpZW50IGhvdXNpbmcgdGhlIEhvdCBQb3RhdG8gcHJveHkuCgpGaXJzdCwgd2UgZGVmaW5lIGEgVGVzdEZpeHR1cmUgY2xhc3MgdG8gdXNlIGEgZ2VuZXJpYyBTdGFydHVwIHJlZmVyZW5jZSB0eXBlOgogYGBgY3NoYXJwCnB1YmxpYyBjbGFzcyBUZXN0Rml4dHVyZTxUU3RhcnR1cD4gOiBJRGlzcG9zYWJsZSB3aGVyZSBUU3RhcnR1cCA6IGNsYXNzCiBgYGAKCk5leHQsIFRlc3RTZXJ2ZXIgZG9lc24ndCBhY3R1YWxseSBsaXN0ZW4gb24gYW4gYWRkcmVzcywgYnV0IGl0IG5lZWRzIGEgcGxhY2Vob2xkZXIgQmFzZUFkZHJlc3MgdG8gYmUgdXNlZCBieSB0aGUgSHR0cFJlcXVlc3QgY29uc3RydWN0b3JzLiBJbiBvdXIgZXhhbXBsZSwgd2UgdXNlIGxvY2FsaG9zdDo1MDAwIGZvciB0aGUgVGVzdFNlcnZlciBob3VzaW5nIHRoZSBBUEkgYW5kIGxvY2FsaG9zdDozMjMyIGZvciB0aGUgVGVzdFNlcnZlciBob3VzaW5nIHRoZSBIb3QgUG90YXRvIHByb3h5IHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdCBvZiBvdXIgdGVzdGluZy4gVGhlc2UgY2FuIGJlIHNldCB0byBhbnl0aGluZyBhcyBsb25nIGFzIHRoZXkgYXJlIHZhbGlkIFVSSXMuCgpgYGAKcHJpdmF0ZSBjb25zdCBzdHJpbmcgQXBpU2VydmVyQWRkcmVzcyA9ICJodHRwOi8vbG9jYWxob3N0OjUwMDAiOwpwcml2YXRlIGNvbnN0IHN0cmluZyBIb3RQb3RhdG9BZGRyZXNzID0gImh0dHA6Ly9sb2NhbGhvc3Q6MzIzMiI7CmBgYAoKVGhlbiB3ZSBjcmVhdGUgYSBUZXN0U2VydmVyIGluc3RhbmNlIHVzaW5nIHRoZSBTdGFydHVwIHR5cGUgdG8gY3JlYXRlIGEgY2xpZW50OgpgYGBjc2hhcnAKdmFyIGFwaUJ1aWxkZXIgPSBuZXcgV2ViSG9zdEJ1aWxkZXIoKQogICAgLlVzZVN0YXJ0dXA8VFN0YXJ0dXA+KCk7CgphcGlTZXJ2ZXIgPSBuZXcgVGVzdFNlcnZlcihhcGlCdWlsZGVyKTsKYXBpU2VydmVyLkJhc2VBZGRyZXNzID0gbmV3IFVyaShUZXN0U2VydmVyQWRkcmVzcyk7CgpIb3RQb3RhdG9DbGllbnQgYXBpQ2xpZW50ID0gbmV3IEhvdFBvdGF0b0NsaWVudChhcGlTZXJ2ZXIuQ3JlYXRlQ2xpZW50KCkpOwpgYGAKCk5vdyB0aGF0IHdlIGhhdmUgYSBjbGllbnQgY3JlYXRlZCBmb3IgdGhlIEFQSSBVbmRlciBUZXN0LCB3ZSBjYW4gYnVpbGQgb3VyIHdlYiBob3N0IGFuZCBpbmplY3QgaXQgaW50byB0aGUgVGVzdCBTZXJ2ZXIuClRoaXMgaXMgZG9uZSBpbiBvdXIgZml4dHVyZSBzZXR1cCwgYnV0IGNhbiBhbHNvIGJlIHBsYWNlZCBpbiBhIGN1c3RvbSBTdGFydHVwIGNsYXNzOgoKYGBgY3NoYXJwCnZhciBob3RQb3RhdG9CdWlsZGVyID0gbmV3IFdlYkhvc3RCdWlsZGVyKCkKICAgIC8vU2V0dGluZyB0aGlzIGhlcmUgaW5zdGVhZCBvZiBpbiBhcHBzZXR0aW5ncy5qc29uIHNvIGl0IGFsd2F5cyBtYXRjaGVzIHRoZSBCYXNlQWRkcmVzcyBvbiBUZXN0U2VydmVyCiAgICAuVXNlU2V0dGluZygiUmVtb3RlRW5kcG9pbnQiLCBUZXN0U2VydmVyQWRkcmVzcykKICAgIC5Db25maWd1cmVBcHBDb25maWd1cmF0aW9uKChob3N0aW5nQ29udGV4dCwgY29uZmlnKSA9PgogICAgewogICAgICAgIGNvbmZpZy5TZXRCYXNlUGF0aChob3N0aW5nQ29udGV4dC5Ib3N0aW5nRW52aXJvbm1lbnQuQ29udGVudFJvb3RQYXRoKQogICAgICAgICAgICAuQWRkSnNvbkZpbGUoImFwcHNldHRpbmdzLmpzb24iLCBvcHRpb25hbDogdHJ1ZSk7CiAgICB9KQogICAgLkNvbmZpZ3VyZVNlcnZpY2VzKHNlcnZpY2VzID0+CiAgICB7CiAgICAgICAgc2VydmljZXMuQ29uZmlndXJlTWlkZGxld2FyZVNlcnZpY2VzKGFwaUNsaWVudCk7CiAgICB9KQogICAgLkNvbmZpZ3VyZShidWlsZGVyID0+CiAgICB7CiAgICAgICAgYnVpbGRlci5Vc2VNaWRkbGV3YXJlPEhvdFBvdGF0b01pZGRsZXdhcmU+KCk7CiAgICB9KTsKCiAgICBob3RQb3RhdG9TZXJ2ZXIgPSBuZXcgVGVzdFNlcnZlcihob3RQb3RhdG9CdWlsZGVyKTsKICAgIGhvdFBvdGF0b1NlcnZlci5CYXNlQWRkcmVzcyA9IG5ldyBVcmkoSG90UG90YXRvQWRkcmVzcyk7CmBgYAoKQW4gaW1wb3J0YW50IHBhcnQgb2YgdGhpcyBidWlsZGVyIGlzIHRoZSBsaW5lOgpgYGBjc2hhcnAKc2VydmljZXMuQ29uZmlndXJlTWlkZGxld2FyZVNlcnZpY2VzKGFwaUNsaWVudCk7CmBgYApgQ29uZmlndXJlTWlkZGxld2FyZVNlcnZpY2VzYCBpcyBhbiBleHRlbnNpb24gbWV0aG9kIGZvdW5kIGluIHRoZSBBc3BOZXRDb3JlLk1pZGRsZXdhcmUgcHJvamVjdCB0aGF0IGFkZHMgdGhlIGNsaWVudCB0byBESSBhcyB3ZWxsIGFzIGFsbCB0aGUgc2VydmljZXMgbmVjZXNzYXJ5IHRvIHVzZSB0aGUgTWlkZGxld2FyZS4KClRoZXNlIHNlcnZpY2VzIGFyZSBgSVByb3h5YCwgYElTcGVjaWZpY2F0aW9uUHJvaXZkZXJgLCBgSVJlc3VsdENvbGxlY3RvcmAsIGFuZCBgSVByb2Nlc3NvcmAuCgpXZSBzZXQgdGhlIGZpeHR1cmUncyBwdWJsaWMgbWVtYmVycyBvZiBSZXN1bHRzIHRvIHRoZSBMaXN0PFJlc3VsdD4gbWVtYmVyIG9mIHRoZSBJUmVzdWx0Q29sbGVjdG9yIGFuZCBDbGllbnQgdG8gdGhlIGNsaWVudCBjcmVhdGVkIHdpdGggdGhlIEhvdCBQb3RhdG8gVGVzdFNlcnZlcjoKYGBgY3NoYXJwClJlc3VsdHMgPSBob3RQb3RhdG9TZXJ2ZXIuSG9zdC5TZXJ2aWNlcy5HZXRTZXJ2aWNlPElSZXN1bHRDb2xsZWN0b3I+KCkuUmVzdWx0czsKQ2xpZW50ID0gbmV3IEhvdFBvdGF0b0NsaWVudChob3RQb3RhdG9TZXJ2ZXIuQ3JlYXRlQ2xpZW50KCkpOwpgYGAKClRoZW4gd2UgdXNlIHRoZW0gbGlrZSBzbyBpbiBhIHRlc3QgdG8gc2VuZCByZXF1ZXN0cyBhbmQgdmVyaWZ5IHRoZSB2YWxpZGF0aW9uIHJlc3VsdHM6CmBgYGNzaGFycAphd2FpdCBjbGllbnQuU2VuZEFzeW5jKHJlcSk7CgpSZXN1bHQgcmVzdWx0ID0gcmVzdWx0cy5FbGVtZW50QXQoMCk7CgpBc3NlcnQuRXF1YWwoU3RhdGUuUGFzcywgcmVzdWx0LlN0YXRlKTsKYGBgCgpNYWtlIHN1cmUgdG8gY2FsbCBgcmVzdWx0cy5DbGVhcigpYCBpbiBhIGBEaXNwb3NlKClgIG1ldGhvZCBpbiBYVW5pdCBvciBhIGBbVGVhcmRvd25dYCBtZXRob2QgaW4gTlVuaXQuIEFub3RoZXIgb3B0aW9uIGlzIHRvIGNhbGwgYHJlc3VsdHMuQ2xlYXJgIGluIHRoZSBgZmluYWxseWAgYmxvY2sgb2YgYSB0cnktZmluYWxseSBzdGF0ZW1lbnQgY29udGFpbmluZyB0aGUgdGVzdCBmaXh0dXJlLiAKClRoZSBmdWxsIGV4YW1wbGUgdGVzdCBjYW4gYmUgZm91bmQgYXQgW1Jhd1BvdGF0b1Rlc3QuY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9IeWxhbmRTb2Z0d2FyZS9Ib3QtUG90YXRvL2Jsb2IvbWFzdGVyL3Rlc3QvSG90UG90YXRvLlRlc3RTZXJ2ZXIuVGVzdC9SYXdQb3RhdG9UZXN0LmNzKS4KCiMjIyMgVXNpbmcgTWlkZGxld2FyZS9UZXN0U2VydmVyIHdpdGggU3RhcnR1cHMgaW4gc2VwYXJhdGUgdGVzdCBwcm9qZWN0cwoKQXMgbWVudGlvbmVkIGFib3ZlLCB0aGUgZml4dHVyZSBzZXR1cCBjYW4gYmUgZG9uZSBpbiBhIFN0YXJ0dXAgY2xhc3MsIGFuZCB0byBhdm9pZCByZS13cml0aW5nIHRoZSBzYW1lIGNvZGUgaW4gbXVsdGlwbGUgdGVzdCBwcm9qZWN0cywgdGhlIFN0YXJ0dXAgY2xhc3MgZnJvbSBvbmUgdGVzdCBwcm9qZWN0IGNhbiBiZSByZWZlcmVuY2VkIGJ5IGFub3RoZXIuIFdoZW4gY2hvb3NpbmcgdGhpcyByb3V0ZSwgdGhlIHRlc3QgU3RhcnR1cCBjbGFzcyB3aWxsIG5lZWQgdG8gYmUgcmVnaXN0ZXJlZCBhcyBhIE1WQyBBcHBsaWNhdGlvbiBQYXJ0IHdpdGggdGhlIGxpbmUgYHNlcnZpY2VzLkFkZE12YygpLkFkZEFwcGxpY2F0aW9uUGFydCh0eXBlb2YoU3RhcnR1cCkuQXNzZW1ibHkpO2AuCgpgYGBjc2hhcnAKcHVibGljIG92ZXJyaWRlIHZvaWQgQ29uZmlndXJlU2VydmljZXMoSVNlcnZpY2VDb2xsZWN0aW9uIHNlcnZpY2VzKQp7CiAgICBzdGFydHVwLkNvbmZpZ3VyZVNlcnZpY2VzKHNlcnZpY2VzKTsKCiAgICBzZXJ2aWNlcy5BZGRNdmMoKS5BZGRBcHBsaWNhdGlvblBhcnQodHlwZW9mKFN0YXJ0dXApLkFzc2VtYmx5KTsKCiAgICAvL2N1c3RvbSBjb2RlIGhlcmUKfQpgYGAKCjxhIG5hbWU9InBvc3RtYW4iPjwvYT4KIyMgVGVzdGluZyB3aXRoIFBvc3RtYW4KCkVuZC10by1FbmQgdGVzdHMgdXNpbmcgSG90IFBvdGF0byBjYW4gYmUgcnVuIHdpdGggUG9zdG1hbiBib3RoIGxvY2FsbHkgYW5kIHRocm91Z2ggYSBwaXBlbGluZSBhbHNvIHVzaW5nIE5ld21hbi4KClRvIHVzZSBQb3N0bWFuIGxvY2FsbHksIHlvdSBtdXN0IGhhdmUgaW5zdGFuY2VzIG9mIGJvdGggdGhlIEhvdCBQb3RhdG8gc2VydmVyIGFuZCB5b3VyIEFQSSBzZXJ2ZXIgcnVubmluZy4KCkZvciBvdXIgdGVzdCBwcm9qZWN0LCB3ZSBwcm92aWRlZCBvdXIgb3duIHNhbXBsZSBIb3QgUG90YXRvIEFQSSwgd2hpY2ggY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vSHlsYW5kU29mdHdhcmUvSG90LVBvdGF0by90cmVlL21hc3Rlci90ZXN0L0hvdFBvdGF0by5BcGkpLgoKT25jZSB5b3VyIFN5c3RlbSBVbmRlciBUZXN0IGlzIHJlYWR5LCB5b3UgbWF5IHN0YXJ0IHdyaXRpbmcgUG9zdG1hbiByZXF1ZXN0cyB3aXRoIHRoZSBiYXNlIGFkZHJlc3Mgb2YgbG9jYWxob3N0OjMyMzIuClRvIGNoZWNrIHRoZSByZXN1bHRzIG9mIHRoZXNlIHJlcXVlc3RzLCB5b3UgY2FuIHF1ZXJ5IHRoZSByZXN1bHRzIGVuZHBvaW50IGFzIHNob3duIGluIHRoZSBbUmVzdWx0c10oI3Jlc3VsdHMpIHNlY3Rpb24gYWJvdmUuCgpZb3UgbWF5IGFsc28gY3JlYXRlIHRoZXNlIHJlcXVlc3RzIGFzIHBhcnQgb2YgYSBjb2xsZWN0aW9uLCB3aGljaCB3aWxsIGFsbG93IGZvciB0aGUgY3JlYXRpb24gb2YgdGVzdCBzZXRzLCBhbmQgdGhlIGFiaWxpdHkgZm9yIHRoZW0gdG8gYmUgZXhwb3J0ZWQgYW5kIHJ1biBieSBhIHBpcGVsaW5lLgoKSWYgeW91IGFyZSBub3QgZmFtaWxpYXIgd2l0aCBjcmVhdGluZyBjb2xsZWN0aW9ucyBhbmQgd3JpdGluZyB0ZXN0cyBpbiBQb3N0bWFuLCBtb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGlua3MgYmVsb3c6CgpbQ29sbGVjdGlvbnNdKGh0dHBzOi8vbGVhcm5pbmcuZ2V0cG9zdG1hbi5jb20vZG9jcy9wb3N0bWFuL2NvbGxlY3Rpb25zL2NyZWF0aW5nLWNvbGxlY3Rpb25zLykKCltUZXN0c10oaHR0cHM6Ly9sZWFybmluZy5nZXRwb3N0bWFuLmNvbS9kb2NzL3Bvc3RtYW4vc2NyaXB0cy90ZXN0X3NjcmlwdHMvKQoKVGVzdHMgd2lsbCB1c3VhbGx5IGNoZWNrIGZvciBjcml0aWNhbCBpbmZvcm1hdGlvbiBzdWNoIGFzIGlmIHRoZSBjb3JyZWN0IHN0YXR1cyBjb2RlIGFuZCBib2R5IGFyZSBiZWluZyByZXR1cm5lZCBjb3JyZWN0bHkgaW4gdGhlIHJlc3BvbnNlLgoKRXhhbXBsZXMgY2FuIGJlIGZvdW5kIGluIG91ciBIYXBweVBhdGggY29sbGVjdGlvbiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0h5bGFuZFNvZnR3YXJlL0hvdC1Qb3RhdG8vYmxvYi9tYXN0ZXIvdGVzdC9IYXBweVBhdGhUZXN0cy5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbikuCgoqKkNoZWNrIHRoYXQgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBjb3JyZWN0IHN0YXR1cyBjb2RlIGFuZCBleHBlY3RlZCBib2R5KioKYGBgamF2YXNjcmlwdApwbS50ZXN0KFwiTGFuZGluZ1BhZ2UgcmV0dXJucyAyMDAgT0tcIiwgZnVuY3Rpb24gKCkgewoJcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKQp9KQoKcG0udGVzdChcIkxhbmRpbmdQYWdlIHJldHVybnMgZXhwZWN0ZWQgYm9keSBcIiwgZnVuY3Rpb24gKCkgewoJcG0ucmVzcG9uc2UudG8uaGF2ZS5ib2R5KFwiaHR0cHM6Ly9naXRodWIuY29tL0h5bGFuZFNvZnR3YXJlL0hvdC1Qb3RhdG9cIikKfSkKYGBgCgpBdCB0aGUgZW5kIG9mIGVhY2ggY29sbGVjdGlvbiwgYSBHRVQgcmVxdWVzdCBjYW4gYmUgc2VudCB0byB0aGUgL3Jlc3VsdHMgZW5kcG9pbnQgc28gdGhhdCB0aGUgbGlzdCBvZiByZXN1bHRzIGNhbiBiZSB0ZXN0ZWQuCldlIHNwbGl0IG91ciB0ZXN0IHN1aXRlIGludG8gdGhyZWUgZGlmZmVyZW50IGNvbGxlY3Rpb25zIG9mIEhhcHB5UGF0aCwgTm9uLUNvbmZvcm1hbnQsIGFuZCBOb3RJblNwZWMgdGVzdHMsIHNvIHRoYXQgd2UgY291bGQgZWFzaWx5IGNoZWNrIGlmIGVhY2ggY29sbGVjdGlvbiBvbmx5IGNvbnRhaW5lZCBlaXRoZXIgYWxsICdQYXNzJyBvciBhbGwgJ0ZhaWwnIHJlc3VsdHMuCgoqKkNoZWNrIHRoYXQgdGhlIEhhcHB5UGF0aCByZXN1bHRzIGRvIG5vdCBjb250YWluIGZhaWwgcmVzdWx0cyoqCmBgYGphdmFzY3JpcHQKcG0udGVzdChcIlJlc3VsdHMgc2hvdWxkIG5vdCBjb250YWluIEZhaWxcIiwgZnVuY3Rpb24gKCkgewoJcG0uZXhwZWN0KHBtLnJlc3BvbnNlLnRleHQoKSkudG8ubm90LmluY2x1ZGUoXCJGYWlsXCIpCn0pCmBgYAoKTWFrZSBzdXJlIHRvIHNlbmQgYSBERUxFVEUgcmVxdWVzdCBhdCB0aGUgZW5kIG9mIHlvdXIgY29sbGVjdGlvbiBzbyB0aGF0IHRoZSByZXN1bHRzIGZyb20gY29sbGVjdGlvbiBkbyBub3QgY2Fycnkgb3ZlciB0byB0aGUgbmV4dC4K readmeEtag: '"b6e9c3c9fc8432ca35d8f53c2db9cfcf8ff39fa2"' readmeLastModified: Fri, 15 Sep 2023 01:15:45 GMT repositoryId: 623048998 description: >- ASP.NET Core proxy that will validate an API's conformance to an OpenAPI spec. created: '2023-04-03T15:34:48Z' updated: '2024-06-05T00:04:37Z' language: C# archived: false stars: 6 watchers: 1 forks: 1 owner: davidmbillie logo: https://avatars.githubusercontent.com/u/13511813?v=4 license: MIT-0 repoEtag: '"8f32dbc9ebc1ec23aa697ece5df795071c03719f70e3b56b224cc1a7b225848f"' repoLastModified: Wed, 05 Jun 2024 00:04:37 GMT foundInMaster: true - source: https://openapi.tools/ name: Specmatic category: - Mock - Testing language: - Any - CLI repository: https://github.com/znsio/specmatic link: https://specmatic.in/ source_description: >- Specmatic enables teams to practice Contract-Driven Development by leveraging OpenAPI specifications as Executable Contracts to reduce time-to-market by allowing teams to build, test and deploy their MicroServices and MicroFrontends independently and Shift-Left the identification of compatibility issues between Components / Services in complex interdependent systems such as those built with MicroServices architecture. In the process it reduces / removes the need for Integration Testing. v3: true id: 3bcf830eebd1db0502c665fb778deb83 repositoryMetadata: base64Readme: >- U3BlY21hdGljCj09PT09PT09PQpbIVtNYXZlbiBDZW50cmFsXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby5zcGVjbWF0aWMvc3BlY21hdGljLWNvcmUuc3ZnKV0oaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9pby5zcGVjbWF0aWMvc3BlY21hdGljLWNvcmUpIFshW0dpdEh1YiByZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3JlbGVhc2Uvem5zaW8vc3BlY21hdGljLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS96bnNpby9zcGVjbWF0aWMvcmVsZWFzZXMpICFbQ0kgQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS96bnNpby9zcGVjbWF0aWMvd29ya2Zsb3dzL0NJJTIwQnVpbGQvYmFkZ2Uuc3ZnKSBbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD16bnNpb19zcGVjbWF0aWMmYnJhbmNoPW1haW4mbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9em5zaW9fc3BlY21hdGljJmJyYW5jaD1tYWluKSBbIVtUd2l0dGVyIEZvbGxvd10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9zcGVjbWF0aWMuc3ZnP3N0eWxlPXNvY2lhbCZsYWJlbD1Gb2xsb3cpXShodHRwczovL3R3aXR0ZXIuY29tL3NwZWNtYXRpYykgWyFbRG9ja2VyIFB1bGxzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci9wdWxscy96bnNpby9zcGVjbWF0aWMuc3ZnKV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3puc2lvL3NwZWNtYXRpYykKCiMjIyBDb250ZXh0CgpJbiBhIGNvbXBsZXgsIGludGVyZGVwZW5kZW50IGVjby1zeXN0ZW0sIHdoZXJlIGVhY2ggc2VydmljZSBpcyBldm9sdmluZyByYXBpZGx5LCB3ZSB3YW50IHRvIG1ha2UgdGhlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZW0gZXhwbGljaXQgaW4gdGhlIGZvcm0gb2YgZXhlY3V0YWJsZSBjb250cmFjdHMuIFtDb250cmFjdCBEcml2ZW4gRGV2ZWxvcG1lbnRdKGh0dHBzOi8vc3BlY21hdGljLmlvL2NvbnRyYWN0X2RyaXZlbl9kZXZlbG9wbWVudC5odG1sKSBsZXZlcmFnZXMgQVBJIHNwZWNpZmljYXRpb25zIGxpa2UgT3BlbkFQSSwgQXN5bmNBUEksIGV0Yy4gYXMgZXhlY3V0YWJsZSBjb250cmFjdHMgYWxsb3dpbmcgdGVhbXMgdG8gZ2V0IGluc3RhbnRhbmVvdXMgZmVlZGJhY2sgd2hpbGUgbWFraW5nIGNoYW5nZXMgdG8gYXZvaWQgYWNjaWRlbnRhbCBicmVha2FnZS4KCldpdGggdGhpcyBhYmlsaXR5LCB3ZSBjYW4gbm93IGluZGVwZW5kZW50bHkgZGVwbG95LCBhdCB3aWxsLCBhbnkgc2VydmljZSBhdCBhbnkgdGltZSB3aXRob3V0IGhhdmluZyB0byBkZXBlbmQgb24gZXhwZW5zaXZlIGFuZCBmcmFnaWxlIGludGVncmF0aW9uIHRlc3RzLgoKIyMjIFdoYXQgaXMgU3BlY21hdGljClNwZWNtYXRpYyBlbWJvZGllcyBbY29udHJhY3QgZHJpdmVuIGRldmVsb3BtZW50XShodHRwczovL3NwZWNtYXRpYy5pby9jb250cmFjdF9kcml2ZW5fZGV2ZWxvcG1lbnQuaHRtbCkgKENERCkgYnkgbGV2ZXJhZ2luZyBBUEkgc3BlY2lmaWNhdGlvbnMgYXMgZXhlY3V0YWJsZSBjb250cmFjdHMuCiogW0NvbnRyYWN0IGFzIFRlc3RzXShodHRwczovL3NwZWNtYXRpYy5pby8jY29udHJhY3QtYXMtdGVzdCkgLSBHZW5lcmF0aW5nIGZyZWUgdGVzdHMgb24gdGhlIGZseSBiYXNlZCBvbmx5IG9uIHlvdSBBUEkgc3BlY2lmaWNhdGlvbnMgbWFraW5nIHN1cmUgdGhhdCB5b3VyIGltcGxlbWVudGF0aW9uIGlzIGFsd2F5cyBhZGhlcmluZyB0byB5b3VyIEFQSSBzcGVjaWZpY2F0aW9uCiogW0NvbnRyYWN0IGFzIFN0dWJdKGh0dHBzOi8vc3BlY21hdGljLmlvLyNjb250cmFjdC1hcy1zdHViKSAtIFN0dWJiaW5nIGEgc2VydmljZSBiYXNlZCBvbiBpdHMgQVBJIHNwZWNpZmljYXRpb24sIHRoYXQgdG9vIHdpdGggdGhlIGd1YXJhbnRlZSB0aGF0IHlvdXIgcmVzcG9uc2UgbWFwcGluZ3Mgd2lsbCBhbHdheXMgYmUgaW4gc3luYyB3aXRoIHlvdXIgQVBJIHNwZWNzCiogW0JhY2t3YXJkIENvbXBhdGliaWxpdHkgVGVzdGluZ10oaHR0cHM6Ly9zcGVjbWF0aWMuaW8vI2NvbnRyYWN0LXZzLWNvbnRyYWN0KSAoI05PQ09ERSkgLSBJZGVudGlmeSBiYWNrd2FyZCBicmVha2luZyBjaGFuZ2VzIHdlbGwgYWhlYWQgb2YgdGltZSBldmVuIGJlZm9yZSB3cml0ZSBhbnkgY29kZSBiYXNlZCBvbmx5IG9uIHlvdXIgQVBJIHNwZWNpZmljYXRpb25zCiogW0NlbnRyYWwgQ29udHJhY3QgUmVwb3NpdG9yeV0oaHR0cHM6Ly9zcGVjbWF0aWMuaW8vI2NvbnRyYWN0LWFzLWNvZGUpIC0gU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgeW91ciBBUEkgU3BlY2lmaWNhdGlvbnMKKiBbQVBJIEZpcnN0IERlc2lnbl0oaHR0cHM6Ly95b3V0dS5iZS91YWFldlJ3MFROND9saXN0PVBMOVotSmdpVHNPWVJFUmNzeTlvM3k2bnNpNXlLM0lCX3cmdD0xMzA2KSAtIENERCBlbmNvdXJhZ2VzIHB1dHRpbmcgQVBJIGRlc2lnbiBmaXJzdCByYXRoZXIgdGhhbiBkZXNpZ24gYmVpbmcgYSBieXByb2R1Y3Qgb2Ygc2VydmljZSBpbXBsZW1lbnRhdGlvbgoKIyMjIE91ciBHb2FsIGlzIHRvIHN1cHBvcnQgdmFyaW91cyB0eXBlcyBvZiBJbnRlcmFjdGlvbnMKU3lzdGVtcyBpbnRlcmFjdCB3aXRoIGVhY2ggb3RoZXIgdGhyb3VnaCBzZXZlcmFsIG1lYW5zLiBTcGVjbWF0aWMgaG9wZXMgdG8gYWRkcmVzcyBhbGwgdGhlc2UgbWVjaGFuaXNtcyBhbmQgbm90IGp1c3Qgd2ViIGludGVyYWN0aW9ucy4KKiBBUEkgY2FsbHMgKCoqSlNvbiBSRVNUKiosICoqU09BUCBYTUwqKiwgZ1JQQywgVGhyaWZ0LCBvdGhlciBiaW5hcnkgcHJvdG9jb2xzKQoqIEV2ZW50cyB2aWEgTWVzc2FnaW5nICgqKkthZmthKiosIFJlZGlzLCBBY3RpdmVNUSwgUmFiYml0TVEsIEtpbmVzaXMsIGV0Yy4pCiogREIsIE90aGVyIERhdGEgU3RvcmVzCiogRmlsZSBzeXN0ZW0KKiBMaWJyYXJpZXMsIFNESyAKKiBPUyBMZXZlbCBQaXBlcwoKW1NwZWNtYXRpYydzIFByb2R1Y3QgUm9hZG1hcF0oaHR0cHM6Ly9zcGVjbWF0aWMuaW8vcm9hZG1hcC8pCgpMZWFybiBtb3JlIGF0IFtzcGVjbWF0aWMuaW9dKGh0dHBzOi8vc3BlY21hdGljLmlvLyNmZWF0dXJlcykKCltHZXQgc3RhcnRlZCBub3ddKGh0dHBzOi8vc3BlY21hdGljLmlvL2dldHRpbmdfc3RhcnRlZC5odG1sKQoKWyFbU3BlY21hdGljIC0gQ29udHJhY3QgRHJpdmVuIERldmVsb3BtZW50IC0gWW91VHViZSBwbGF5bGlzdF0oaHR0cHM6Ly9pbWcueW91dHViZS5jb20vdmkvS1dDblRpLWlmTUUvMC5qcGcpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUtXQ25UaS1pZk1FJmxpc3Q9UEw5Wi1KZ2lUc09ZUkVSY3N5OW8zeTZuc2k1eUszSUJfdyZpbmRleD0yKQoKW1lvdXR1YmUgcGxheWxpc3RdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9M0hQZ3B2ZDhNR2cmbGlzdD1QTDlaLUpnaVRzT1lSRVJjc3k5bzN5Nm5zaTV5SzNJQl93KQoKCg== readmeEtag: '"0a6ae5b76d6cb48a5de4521fe0821f0e7e784bf6"' readmeLastModified: Fri, 16 Aug 2024 15:13:02 GMT repositoryId: 247710440 description: >- Turn your contracts into executable specifications. Contract Driven Development - Collaboratively Design & Independently Deploy MicroServices & MicroFrontends. created: '2020-03-16T13:33:07Z' updated: '2024-09-04T13:32:59Z' language: Kotlin archived: false stars: 262 watchers: 11 forks: 51 owner: znsio logo: https://avatars.githubusercontent.com/u/75619722?v=4 license: MIT repoEtag: '"c016b0392d94cb272f923f6494a1a80940e4f46b40ef7cb98be777f5e2f9b558"' repoLastModified: Wed, 04 Sep 2024 13:32:59 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/pb33f/openapi-changes v3: true id: fc8c62141b92d4a5935d734bb4b51767 repositoryMetadata: base64Readme: >- CiFbbG9nb10ob3BlbmFwaS1jaGFuZ2VzLWxvZ28ud2VicCkKClshW2Rpc2NvcmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZGlzY29yZC85MjMyNTgzNjM1NDA4MTU5MTIpXShodHRwczovL2Rpc2NvcmQuZ2cveDdWQUNWdUVHUCkKWyFbR2l0SHViIGRvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZG93bmxvYWRzL3BiMzNmL29wZW5hcGktY2hhbmdlcy90b3RhbD9sYWJlbD1naXRodWIlMjBkb3dubG9hZHMmc3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL2dpdGh1Yi5jb20vcGIzM2Yvd2lyZXRhcC9yZWxlYXNlcykKWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9AcGIzM2Yvb3BlbmFwaS1jaGFuZ2VzP3N0eWxlPWZsYXQtc3F1YXJlJmxhYmVsPW5wbSUyMGRvd25sb2FkcyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BwYjMzZi9vcGVuYXBpLWNoYW5nZXMpClshW0RvY2tlciBQdWxsc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvcHVsbHMvcGIzM2Yvb3BlbmFwaS1jaGFuZ2VzP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3BiMzNmL29wZW5hcGktY2hhbmdlcykKCiMgT3BlbkFQSSBDaGFuZ2VzCgojIyBUaGUgd29ybGQncyAqKl9zZXhpZXN0XyoqIE9wZW5BUEkgZGlmZiB0b29sLgoKV2Ugd2lsbCBnZXQgdG8gdGhlIHNleHkgcGFydCBpbiBhIG1vbWVudCwgYnV0IGluIGEgbnV0c2hlbGwgYG9wZW5hcGktY2hhbmdlc2AgYWxsb3dzIHlvdSAKdG8gc2VlIGFuZCBleHBsb3JlIHdoYXQgaGFzIGNoYW5nZWQgd2l0aCB5b3VyIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiwgYmV0d2VlbiBhIHNpbmdsZSBjaGFuZ2UsIApvciBmb3IgYWxsIHRpbWUhIAoKRXhwbG9yZSBPcGVuQVBJIGNoYW5nZSBoaXN0b3J5IHVzaW5nIGEgdGVybWluYWwgb3IgYSBicm93c2VyLCB5b3UgZGVjaWRlIHdoaWNoIGV4cGVyaWVuY2Ugc3VpdHMgeW91LiBQZXJmZWN0IGZvcgppbmRpdmlkdWFsIHVzZSwgb3IgaW4gYSBDSS9DRCBwaXBlbGluZSBmb3IgYXV0b21hdGlvbi4KCj4gVGhpcyBpcyBhbiBlYXJseSB0b29sIGFuZCBpcyBhY3RpdmUsIGRhaWx5IGRldmVsb3BtZW50CgojIyBIb3cgaXMgaXQgdGhlICdzZXhpZXN0Jz8KCkhhdmUgeW91IGV2ZXIgc2VlbiBhbiBPcGVuQVBJIGRpZmYgcmVwb3J0IGxvb2sgbGlrZSB0aGlzPwoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYjMzZi9vcGVuYXBpLWNoYW5nZXMvYmxvYi9tYWluLy5naXRodWIvYXNzZXRzL3VpLmdpZikKCldoYXQgYWJvdXQgYSB0ZXJtaW5hbCBVSSB0aGF0IGRvZXMgdGhlIHNhbWU/CgohW10oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL29wZW5hcGktY2hhbmdlcy9ibG9iL21haW4vLmdpdGh1Yi9hc3NldHMvY29uc29sZS5naWYpCgotLS0KCgojIyBEb2N1bWVudGF0aW9uCgojIyMg8J+RiSBb4pqhIFRyeSB0aGUgb25saW5lIERlbW8g4pqhXShodHRwczovL3BiMzNmLmlvL29wZW5hcGktY2hhbmdlcy9kZW1vLykg8J+RiAoKIyMjIFtRdWljayBTdGFydCBHdWlkZSDwn5qAXShodHRwczovL3BiMzNmLmlvL29wZW5hcGktY2hhbmdlcy9xdWlja3N0YXJ0LykKClNlZSBhbGwgdGhlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9wYjMzZi5pby9vcGVuYXBpLWNoYW5nZXMvCgotIFtJbnN0YWxsaW5nIG9wZW5hcGktY2hhbmdlc10oaHR0cHM6Ly9wYjMzZi5pby9vcGVuYXBpLWNoYW5nZXMvaW5zdGFsbGluZy8pCi0gW0NvbW1hbmQgYXJndW1lbnRzXShodHRwczovL3BiMzNmLmlvL29wZW5hcGktY2hhbmdlcy9jb21tYW5kLWFyZ3VtZW50cy8pCi0gQ0xJIENvbW1hbmRzCiAgICAtIFtgY29uc29sZWAgY29tbWFuZF0oaHR0cHM6Ly9wYjMzZi5pby9vcGVuYXBpLWNoYW5nZXMvY29uc29sZS8pCiAgICAtIFtgaHRtbC1yZXBvcnRgIGNvbW1hbmRdKGh0dHBzOi8vcGIzM2YuaW8vb3BlbmFwaS1jaGFuZ2VzL2h0bWwtcmVwb3J0LykKICAgIC0gW2ByZXBvcnRgIGNvbW1hbmRdKGh0dHBzOi8vcGIzM2YuaW8vb3BlbmFwaS1jaGFuZ2VzL3JlcG9ydC8pCiAgICAtIFtgc3VtbWFyeWAgY29tbWFuZF0oaHR0cHM6Ly9wYjMzZi5pby9vcGVuYXBpLWNoYW5nZXMvc3VtbWFyeS8pCi0gW0Fib3V0IG9wZW5hcGktY2hhbmdlc10oaHR0cHM6Ly9wYjMzZi5pby9vcGVuYXBpLWNoYW5nZXMvYWJvdXQvKQoKLS0tCiAKQXJlIHlvdSByZWFkeSB0byB0cnkgaXQgb3V0PwoKIyMgSW5zdGFsbCB1c2luZyBob21lYnJldyB0YXAKCmBgYGJhc2gKYnJldyBpbnN0YWxsIHBiMzNmL3RhcHMvb3BlbmFwaS1jaGFuZ2VzCmBgYAoKLS0tCgojIyBJbnN0YWxsIHVzaW5nIG5wbSBvciB5YXJuCgpgYGBiYXNoCm5wbSBpIC1nIEBwYjMzZi9vcGVuYXBpLWNoYW5nZXMKYGBgCgpJZiB5b3UgcHJlZmVyIHlhcm4gXyhyZWNvbW1lbmRlZClfCgpgYGBiYXNoCnlhcm4gZ2xvYmFsIGFkZCBAcGIzM2Yvb3BlbmFwaS1jaGFuZ2VzCmBgYAoKLS0tCgojIyBJbnN0YWxsIHVzaW5nIGNVUkwKCmBgYGJhc2gKY3VybCAtZnNTTCBodHRwczovL3BiMzNmLmlvL29wZW5hcGktY2hhbmdlcy9pbnN0YWxsLnNoIHwgc2ggCmBgYAotLS0KCiMjIEluc3RhbGwvcnVuIHVzaW5nIERvY2tlcgoKYGBgYmFzaApkb2NrZXIgcHVsbCBwYjMzZi9vcGVuYXBpLWNoYW5nZXMKYGBgCgpUbyBydW4sIG1vdW50IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyIHRvIHRoZSBjb250YWluZXIgbGlrZSBzbzoKCmBgYApkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovd29yazpydyBwYjMzZi9vcGVuYXBpLWNoYW5nZXMgc3VtbWFyeSAuIHNhbXBsZS1zcGVjcy9wZXRzdG9yZXYzLmpzb24KYGBgCj4gVGhlIGBjb25zb2xlYCBjYW5ub3QgcnVuIHZpYSBkb2NrZXIuCgotLS0KCkNoZWNrIG91dCBhbGwgdGhlIGRvY3MgYXQgaHR0cHM6Ly9wYjMzZi5pby9vcGVuYXBpLWNoYW5nZXMvCg== readmeEtag: '"834638872b05caf89bfb6d0c54f8e58b9681abba"' readmeLastModified: Thu, 01 Aug 2024 11:53:10 GMT repositoryId: 571681922 description: >- The world's sexiest OpenAPI breaking changes detector. Discover what changed between two OpenAPI specs, or a single spec over time. Supports OpenAPI 3.1, 3.0 and Swagger created: '2022-11-28T16:53:14Z' updated: '2024-08-30T07:30:28Z' language: Go archived: false stars: 171 watchers: 1 forks: 16 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION repoEtag: '"165646937d02c4e10367952c4b4f4bfc98391231fb91491ebb94ba22b82fac9f"' repoLastModified: Fri, 30 Aug 2024 07:30:28 GMT category: - Data Validators - Testing - Documentation foundInMaster: true name: openapi-changes link: https://pb33f.io/openapi-changes language: go source_description: >- The world's fastest, most beautiful, powerful and detailed OpenAPI change detection tool on earth. Explore every change in An OpenAPI spec. See changes over time, go back into history and see what changed with each commit. Identifies all breaking changes, Powered by libopenapi. v2: true v3_1: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/tuwilof/fitting v3: true id: f0e56305d3796a01c1c2b5a5166bc11b repositoryMetadata: base64Readme: >- IyBGaXR0aW5nCgo8aW1nIGFsaWduPSJyaWdodCIgd2lkdGg9IjE5MiIgaGVpZ2h0PSIxOTIiCmFsdD0iRml0dGluZyBhdmF0YXI6IERvY3VtZW50cyB3aXRoIGhhbmdlcnMiCnNyYz0iLi9pbWFnZXMvbG9nby5wbmciPgoKCgpMaWJyYXJ5IGFkZCBpbXByb3ZlIHRlc3QgbG9nLCB2YWxpZGF0ZSBpdHMgYWNjb3JkaW5nIHRvIHlvdXIgQVBJIGRvY3VtZW50YXRpb24sIHNob3cgdGhlIGRvY3VtZW50YXRpb24gY292ZXJhZ2Ugd2l0aCBsb2cuCgpUZXN0IGxvZyBzZXR0aW5nIHN1cHBvcnRzIFJTcGVjIHRlc3QgYW5kIFdlYk1vY2sgc3R1YmJpbmcgZm9yIFJ1YnkgT24gUmFpbHMgYXBwbGljYXRpb24sIEFQSSBkb2N1bWVudGF0aW9uIHN1cHBvcnRzIEFQSSBCbHVlcHJpbnQgYW5kIE9wZW5BUEkuCgpUaGlzIHJlZHVjZXMgdGhlIGNvc3RzIG9mIHN1cHBvcnQsIHRlc3RlcnMgYW5kIGFuYWx5c3RzLgoKW1RlbGVncmFtIGNvbW11bml0eSBmb3IgYW55IEZpdHRpbmcgcmVsYXRlZCBxdWVzdGlvbnNdKGh0dHBzOi8vdC5tZS8rTkZvak1UQ0ZKLTFpTkRZeSkKCkxvZwpgYGB0ZXh0CkZJVFRJTkcgaW5jb21pbmcgcmVxdWVzdCB7Im1ldGhvZCI6IlBPU1QiLCJwYXRoIjoiL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy90RVg1SmlaeWNlaXd1S01pMW9OOVNmOFMvY29udGFjdHMiLCJib2R5Ijp7fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImNvbnRlbnRfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJib2R5Ijp7InNvdXJjZV9pZCI6IjAwZGJmMThkLTg3OWUtNDdjYi1hYzQ1LWU5YWVjZTI2NmViMSIsInB1YnN1Yl90b2tlbiI6Imt0bjZZd1B1czU3SkRmNGU1OWVGUG9tNSIsImlkIjozMjkxLCJuYW1lIjoic2h5LXN1cmYtNDAxIiwiZW1haWwiOm51bGwsInBob25lX251bWJlciI6bnVsbH19LCJ0aXRsZSI6Ii4vc3BlYy9jb250cm9sbGVycy9wdWJsaWMvYXBpL3YxL2luYm94L2NvbnRhY3RzX2NvbnRyb2xsZXJfc3BlYy5yYjo5IiwiZ3JvdXAiOiIuL3NwZWMvY29udHJvbGxlcnMvcHVibGljL2FwaS92MS9pbmJveC9jb250YWN0c19jb250cm9sbGVyX3NwZWMucmIiLCJob3N0Ijoid3d3LmV4YW1wbGUuY29tIn0KRklUVElORyBvdXRnb2luZyByZXF1ZXN0IHsibWV0aG9kIjoiUE9TVCIsInBhdGgiOiIvdjEvb3JnYW5pemF0aW9ucy9vcmdfaWQvbWVldGluZyIsImJvZHkiOnt9LCJyZXNwb25zZSI6eyJzdGF0dXMiOjIwMCwiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImJvZHkiOnsic3VjY2VzcyI6dHJ1ZSwiZGF0YSI6eyJtZWV0aW5nIjp7ImlkIjoibWVldGluZ19pZCIsInJvb21OYW1lIjoicm9vbV9uYW1lIn19fX0sInRpdGxlIjoiLi9zcGVjL2NvbnRyb2xsZXJzL2FwaS92MS9hY2NvdW50cy9pbnRlZ3JhdGlvbnMvZHl0ZV9jb250cm9sbGVyX3NwZWMucmI6NTAiLCJncm91cCI6Ii4vc3BlYy9jb250cm9sbGVycy9hcGkvdjEvYWNjb3VudHMvaW50ZWdyYXRpb25zL2R5dGVfY29udHJvbGxlcl9zcGVjLnJiIiwiaG9zdCI6ImFwaS5jbHVzdGVyLmR5dGUuaW4ifQpgYGAKCnZhbGlkYXRpb24KYGBgY29uc29sZQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuRkZGLi5GRkZGRkZGRkZGLi4uLkYuLi4uLi4uRi4uLkZGLi4uLi5GLi4uRi4uLi5GLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLkZGLkYuLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuLi4uLi4uLkZGRi4uLkZGRkYuLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi4uRkZGRkZGRkZGRkYuLkZGRkZGRi4uRkZGRkZGRkZGRkZGRkZGRkYuLi4uLi4uRkZGRkZGLi4uLi4uLi4uLi4uLkZGRkZGRkZGRkZGRi4uLi5GLi4uLi4uLi5GRkYuRi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi4uLi4uLkZGLi4uLi4uLi5GRkYuLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLkZGRkZGRi4uLi4uLkYuLi4uLi4uLi4uLi5GRkZGLi4uLi4uLi5GRkZGRkZGRkZGRkZGRi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLkZGLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uRkYuLi4uLi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGLi4uRkZGRi4uLi4uLi4uLi4uLi4uLkYuRi4uLi5GRi4uRkZGRkZGRkYKCiAgMSkgRml0dGluZzo6RG9jOjpOb3RGb3VuZCBsb2cgZXJyb3I6Cgpob3N0OiB3d3cuZXhhbXBsZS5jb20KbWV0aG9kOiBQT1NUCnBhdGg6IC9wdWJsaWMvYXBpL3YxL2luYm94ZXMve2luYm94X2lkZW50aWZpZXJ9L2NvbnRhY3RzCmNvZGU6IDIwMAoKY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uCgpqc29uLXNjaGVtYTogewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicHJvcGVydGllcyI6IHsKICAgICJpZCI6IHsKICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAic291cmNlX2lkIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlc3Npb24gaWRlbnRpZmllciBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhlIGNvbnRhY3QiCiAgICB9LAogICAgImVtYWlsIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiRW1haWwgb2YgdGhlIGNvbnRhY3QiCiAgICB9LAogICAgInB1YnN1Yl90b2tlbiI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0b2tlbiB0byBiZSB1c2VkIHRvIGNvbm5lY3QgdG8gY2hhdHdvb3Qgd2Vic29ja2V0IgogICAgfQogIH0KfQoKYm9keTogewogICJzb3VyY2VfaWQiOiAiYzllOGMzMWYtMDZkZi00OWI0LThmYjktNDQ2NjQ1N2FlNjViIiwKICAicHVic3ViX3Rva2VuIjogIlpnYzdERXZhajVUa2daMWE0QzdBdkpYbyIsCiAgImlkIjogMzI5MywKICAibmFtZSI6ICJyZXN0bGVzcy1zbm93Zmxha2UtNjcwIiwKICAiZW1haWwiOiBudWxsLAogICJwaG9uZV9udW1iZXIiOiBudWxsCn0KCmVycm9yIFsKICAiVGhlIHByb3BlcnR5ICcjL2VtYWlsJyBvZiB0eXBlIG51bGwgZGlkIG5vdCBtYXRjaCB0aGUgZm9sbG93aW5nIHR5cGU6IHN0cmluZyBpbiBzY2hlbWEgZTU2YjdlNjUtZDcwYy01ZjdhLWE5NmMtOTgyZGY1ZjhmMmY3IgpdCgouLi4KCjgwNCBleGFtcGxlcywgNTY1IGZhaWx1cmUsIDAgcGVuZGluZwoKQ292ZXJhZ2U6IDY1LjUxJQpgYGAKCmFuZCBjb3ZlcgohW2V4bWFwbGVdKGltYWdlcy9iMS5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy9iMi5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy93MS5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy93Mi5wbmcpCgojIyBJbnN0YWxsYXRpb24KQWRkIHRoaXMgbGluZSB0byB5b3VyIGFwcGxpY2F0aW9uJ3MgR2VtZmlsZToKYGBgcnVieQpnZW0gJ2ZpdHRpbmcnCmBgYAoKQWZ0ZXIgdGhhdCBleGVjdXRlOgpgYGBiYXNoCiQgYnVuZGxlCmBgYAoKT3IgaW5zdGFsbCB0aGUgZ2VtIGJ5IHlvdXJzZWxmOgpgYGBiYXNoCiQgZ2VtIGluc3RhbGwgZml0dGluZwpgYGAKCiMjIFVzYWdlCiMjIyBMb2cKRmlyc3RseSwgaW1wcm92ZSBgdGVzdC5sb2dgLgoKVG8geW91ciBgc3BlY19oZWxwZXIucmJgOgoKYGBgcnVieQpyZXF1aXJlICdmaXR0aW5nJwoKRml0dGluZy5sb2dnZXIKYGBgCgpEZWxldGUgYWxsIGZpbGVzIGBsb2cvKi5sb2dgIGFuZCBydW4gcnNwZWMKCllvdSBnZXQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBpbmNvbWluZyBhbmQgb3V0Z29pbmcgcmVxdWVzdCBpbiBgbG9nL2ZpdHRpbmcqLmxvZ2AuCgpgYGB0ZXh0CkZJVFRJTkcgaW5jb21pbmcgcmVxdWVzdCB7Im1ldGhvZCI6IlBPU1QiLCJwYXRoIjoiL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy90RVg1SmlaeWNlaXd1S01pMW9OOVNmOFMvY29udGFjdHMiLCJib2R5Ijp7fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImNvbnRlbnRfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJib2R5Ijp7InNvdXJjZV9pZCI6IjAwZGJmMThkLTg3OWUtNDdjYi1hYzQ1LWU5YWVjZTI2NmViMSIsInB1YnN1Yl90b2tlbiI6Imt0bjZZd1B1czU3SkRmNGU1OWVGUG9tNSIsImlkIjozMjkxLCJuYW1lIjoic2h5LXN1cmYtNDAxIiwiZW1haWwiOm51bGwsInBob25lX251bWJlciI6bnVsbH19LCJ0aXRsZSI6Ii4vc3BlYy9jb250cm9sbGVycy9wdWJsaWMvYXBpL3YxL2luYm94L2NvbnRhY3RzX2NvbnRyb2xsZXJfc3BlYy5yYjo5IiwiZ3JvdXAiOiIuL3NwZWMvY29udHJvbGxlcnMvcHVibGljL2FwaS92MS9pbmJveC9jb250YWN0c19jb250cm9sbGVyX3NwZWMucmIiLCJob3N0Ijoid3d3LmV4YW1wbGUuY29tIn0KRklUVElORyBvdXRnb2luZyByZXF1ZXN0IHsibWV0aG9kIjoiUE9TVCIsInBhdGgiOiIvdjEvb3JnYW5pemF0aW9ucy9vcmdfaWQvbWVldGluZyIsImJvZHkiOnt9LCJyZXNwb25zZSI6eyJzdGF0dXMiOjIwMCwiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImJvZHkiOnsic3VjY2VzcyI6dHJ1ZSwiZGF0YSI6eyJtZWV0aW5nIjp7ImlkIjoibWVldGluZ19pZCIsInJvb21OYW1lIjoicm9vbV9uYW1lIn19fX0sInRpdGxlIjoiLi9zcGVjL2NvbnRyb2xsZXJzL2FwaS92MS9hY2NvdW50cy9pbnRlZ3JhdGlvbnMvZHl0ZV9jb250cm9sbGVyX3NwZWMucmI6NTAiLCJncm91cCI6Ii4vc3BlYy9jb250cm9sbGVycy9hcGkvdjEvYWNjb3VudHMvaW50ZWdyYXRpb25zL2R5dGVfY29udHJvbGxlcl9zcGVjLnJiIiwiaG9zdCI6ImFwaS5jbHVzdGVyLmR5dGUuaW4ifQpgYGAKCiMjIyBWYWxpZGF0aW9uClNlY29uZGx5LCB2YWxpZGF0ZSB0aGUgbG9nIHRvIHRoZSBkb2N1bWVudGF0aW9uLgoKQWRkIHRoaXMgdG8geW91ciBgLmZpdHRpbmcueW1sYDoKCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgdHlwZTogb3BlbmFwaTIKICAgIHBhdGg6IHN3YWdnZXIvc3dhZ2dlci5qc29uCmBgYAoKUnVuIApgYGBiYXNoCmJ1bmRsZSBlIHJha2UgZml0dGluZzp2YWxpZGF0ZQpgYGAKCkNvbnNvbGUgb3V0cHV0CgpgYGBjb25zb2xlCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi5GRkYuLkZGRkZGRkZGRkYuLi4uRi4uLi4uLi5GLi4uRkYuLi4uLkYuLi5GLi4uLkYuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuRi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi5GRi4uLi4uLi4uRkZGLi4uRkZGRi4uLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi4uLi5GRkZGRkZGRkZGRi4uRkZGRkZGLi5GRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi5GRkZGRkYuLi4uLi4uLi4uLi4uRkZGRkZGRkZGRkZGLi4uLkYuLi4uLi4uLkZGRi5GLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi4uLi4uLi4uRkYuLi4uLi4uLkZGRi4uLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLi4uRkZGRkZGLi4uLi4uRi4uLi4uLi4uLi4uLkZGRkYuLi4uLi4uLkZGRkZGRkZGRkZGRkZGLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi5GRi4uLi4uLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkYuLi5GRkZGLi4uLi4uLi4uLi4uLi4uRi5GLi4uLkZGLi5GRkZGRkZGRgoKICAxKSBGaXR0aW5nOjpEb2M6Ok5vdEZvdW5kIGxvZyBlcnJvcjoKCmhvc3Q6IHd3dy5leGFtcGxlLmNvbQptZXRob2Q6IFBPU1QKcGF0aDogL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy97aW5ib3hfaWRlbnRpZmllcn0vY29udGFjdHMKY29kZTogMjAwCgpjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24KCmpzb24tc2NoZW1hOiB7CiAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAidHlwZSI6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIjogewogICAgImlkIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBjb250YWN0IgogICAgfSwKICAgICJzb3VyY2VfaWQiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2Vzc2lvbiBpZGVudGlmaWVyIG9mIHRoZSBjb250YWN0IgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAiZW1haWwiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJFbWFpbCBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAicHVic3ViX3Rva2VuIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHRva2VuIHRvIGJlIHVzZWQgdG8gY29ubmVjdCB0byBjaGF0d29vdCB3ZWJzb2NrZXQiCiAgICB9CiAgfQp9Cgpib2R5OiB7CiAgInNvdXJjZV9pZCI6ICJjOWU4YzMxZi0wNmRmLTQ5YjQtOGZiOS00NDY2NDU3YWU2NWIiLAogICJwdWJzdWJfdG9rZW4iOiAiWmdjN0RFdmFqNVRrZ1oxYTRDN0F2SlhvIiwKICAiaWQiOiAzMjkzLAogICJuYW1lIjogInJlc3RsZXNzLXNub3dmbGFrZS02NzAiLAogICJlbWFpbCI6IG51bGwsCiAgInBob25lX251bWJlciI6IG51bGwKfQoKZXJyb3IgWwogICJUaGUgcHJvcGVydHkgJyMvZW1haWwnIG9mIHR5cGUgbnVsbCBkaWQgbm90IG1hdGNoIHRoZSBmb2xsb3dpbmcgdHlwZTogc3RyaW5nIGluIHNjaGVtYSBlNTZiN2U2NS1kNzBjLTVmN2EtYTk2Yy05ODJkZjVmOGYyZjciCl0KCi4uLgoKODA0IGV4YW1wbGVzLCA1NjUgZmFpbHVyZSwgMCBwZW5kaW5nCgpDb3ZlcmFnZTogNjUuNTElCmBgYAoKIyMjIENvdmVyYWdlCkFuZCB0YXNrIHdpbGwgY3JlYXRlIEhUTUwgKGBjb3ZlcmFnZS9maXR0aW5nLmh0bWxgKSByZXBvcnRzLgoKIVtleG1hcGxlXShpbWFnZXMvYjEucG5nKQoKIVtleG1hcGxlXShpbWFnZXMvYjIucG5nKQoKTW9yZSBpbmZvcm1hdGlvbiBvbiBhY3Rpb24gY292ZXJhZ2UKCiFbZXhtYXBsZTJdKGltYWdlcy93MS5wbmcpCgohW2V4bWFwbGUyXShpbWFnZXMvdzIucG5nKQoKIyMgU2V0dGluZ3MKCiMjIyBBUElzCgojIyMjIHR5cGUKCiMjIyMjIE9wZW5BUEkgMi4wClN3YWdnZXIKCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgdHlwZTogb3BlbmFwaTIKICAgIHBhdGg6IGRvYy9hcGkuanNvbgpgYGAKCiMjIyMjIE9wZW5BUEkgMy4wCkFsc28gT3BlbkFQSQoKYGBgeWFtbApBUElzOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICB0eXBlOiBvcGVuYXBpMwogICAgcGF0aDogZG9jL2FwaS5qc29uCmBgYAoKIyMjIyMgQVBJIEJsdWVwcmludApGaXJzdCB5b3UgbmVlZCB0byBpbnN0YWxsIFtkcmFmdGVyXShodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vZHJhZnRlcikgb3IgW2NyYWZ0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9mdW5ib3gvY3JhZnRlcikuCldvcmtzIGFmdGVyIGNvbnZlcnNpb24gZnJvbSBBUEkgQmx1ZXByaW50IHRvIEFQSSBFbGVtZW50cyAoaW4gWUFNTCBmaWxlKSB3aXRoIERyYWZ0ZXIgb3IgQ3JhZnRlci4KClRoYXQgaXMsIEkgbWVhbiB0aGF0IHlvdSBmaXJzdCBuZWVkIHRvIGRvIHRoaXMKCmBgYGJhc2gKZHJhZnRlciBkb2MuYXBpYiAtbyBkb2MueWFtbApgYGAKCm9yCgpgYGBiYXNoCm5vZGVfbW9kdWxlcy8uYmluL2NyYWZ0ZXIgZG9jLmFwaWIgPiBkb2MueWFtbApgYGAKCmFuZCB0aGVuCgpgYGB5YW1sCkFQSXM6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIHR5cGU6IGRyYWZ0ZXIKICAgIHBhdGg6IGRvYy9hcGkueWFtbApgYGAKCm9yCgpgYGB5YW1sCkFQSXM6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIHR5cGU6IGNyYWZ0ZXIKICAgIHBhdGg6IGRvYy9hcGkueWFtbApgYGAKCiMjIyMjIFRvbW9ncmFwaAoKVG8gdXNlIGFkZGl0aW9uYWwgZmVhdHVyZXMgb2YgdGhlIHByZS1jb252ZXJ0ZWQgW3RvbW9ncmFwaF0oaHR0cHM6Ly9naXRodWIuY29tL3R1d2lsb2YvdG9tb2dyYXBoKQoKZXhhbXBsZQoKYGBgYmFzaApidW5kbGUgZXhlYyB0b21vZ3JhcGggLWQgY3JhZnRlciAtLWV4Y2x1ZGUtZGVzY3JpcHRpb24gZG9jL2FwaS55bWwgZG9jL2FwaS5qc29uCmBgYAoKYW5kIHRoZW4KCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgdHlwZTogdG9tb2dyYW0KICAgIHBhdGg6IGRvYy9hcGkuanNvbgpgYGAKCiMjIyMgcHJlZml4CgpTZXR0aW5nIHRoZSBwcmVmaXggbmFtZSBpcyBvcHRpb25hbC4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gZG8gdGhpczoKCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgcHJlZml4OiAvYXBpL3YzCiAgICB0eXBlOiBvcGVuYXBpMgogICAgcGF0aDogc3dhZ2dlci9zd2FnZ2VyLmpzb24KYGBgCgojIyMgU2tpcFZhbGlkYXRpb24KCiMjIyMgaG9zdAoKSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBpbW1lZGlhdGVseSBkZXNjcmliZSBlYWNoIGhvc3QgaW4gZGV0YWlsLCB5b3UgY2FuIG9ubHkgc3BlY2lmeSBpdHMgbmFtZSBhbmQgc2tpcCBpdCB1bnRpbCB5b3UgYXJlIHJlYWR5IHRvIGRvY3VtZW50ZWQgaXQKCmBgYHlhbWwKU2tpcFZhbGlkYXRpb246CiAgLSBob3N0OiBhcGkuY2x1c3Rlci5keXRlLmluCmBgYAoKIyMjIyBwcmVmaXgKCklmIHlvdSB3YW50IHRvIHNraXAgYSBzcGVjaWZpYyBwcmVmaXggaW4gdGhlIGhvc3QKCmBgYHlhbWwKU2tpcFZhbGlkYXRpb246CiAgLSBob3N0OiBhcGkuY2x1c3Rlci5keXRlLmluCiAgICBwcmVmaXg6IC9hZG1pbi9hcGkKYGBgCgojIyMjIG1ldGhvZCBhbmQgcGF0aAoKSWYgeW91IHdhbnQgdG8gc2tpcCBhIHNwZWNpZmljIHJlcXVlc3QgaW4gdGhlIGhvc3QKCmBgYHlhbWwKU2tpcFZhbGlkYXRpb246CiAgLSBob3N0OiBhcGkuY2x1c3Rlci5keXRlLmluCiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL2FwaS92MS9jYXJzCmBgYAoKIyMjIE5vQ292CgpJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGltbWVkaWF0ZWx5IHRlc3QgZWFjaCBkb2MgaW4gZGV0YWlsLCB5b3UgY2FuIG9ubHkgc3BlY2lmeSBpdHMgbmFtZSBhbmQgc2tpcCBpdCB1bnRpbCB5b3UgYXJlIHJlYWR5IHRvIHRlc3QgaXQKCiMjIyMgaG9zdApgYGB5YW1sCk5vQ292OgogIC0gaG9zdDogc3NvLnRlc3QKYGBgCgojIyMjIG1ldGhvZApgYGB5YW1sCk5vQ292OgogIC0gaG9zdDogc3NvLnRlc3QKICAgIG1ldGhvZDogR0VUCmBgYAoKIyMjIyBwYXRoCmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKICAgIHBhdGg6IC91c2Vycy97dXNlcklkfQpgYGAKCiMjIyMgY29kZQpgYGB5YW1sCk5vQ292OgogIC0gaG9zdDogc3NvLnRlc3QKICAgIG1ldGhvZDogR0VUCiAgICBwYXRoOiAvdXNlcnMve3VzZXJJZH0KICAgIGNvZGU6IDIwMApgYGAKCiMjIyMgY29udGVudC10eXBlCmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKICAgIHBhdGg6IC91c2Vycy97dXNlcklkfQogICAgY29kZTogMjAwCiAgICBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24KYGBgCgojIyMjIGNvbWJpbmF0aW9uCmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKICAgIHBhdGg6IC91c2Vycy97dXNlcklkfQogICAgY29kZTogMjAwCiAgICBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24KICAgIGNvbWJpbmF0aW9uOiBvbmVPZi4wCmBgYAoKIyMjIyBjb21iaW5hdGlvbl9uZXh0CmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKICAgIHBhdGg6IC91c2Vycy97dXNlcklkfQogICAgY29kZTogMjAwCiAgICBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24KICAgIGNvbWJpbmF0aW9uOiBvbmVPZi4wCiAgICBjb21iaW5hdGlvbl9uZXh0OiBvbmVPZi4wLnJlcXVpcmVkLnVzZXJzCmBgYAoKIyMjIERlYnVnCgpJZiB5b3UgZmluZCBidWcsIHlvdSBjYW4gZGVidWcgaXQgb3IgY3JlYXRlIHRhc2sgaW4gdGhpcyBnaXRodWIgcHJvamVjdCAgd2l0aCBuZXcgZmlsZSBgY292ZXJhZ2UvZml0dGluZy5kZWJ1Zy55bWxgCgpgYGB5YW1sCkRlYnVnOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL2FwaS92My91c2VycwogICAgY29kZTogMjAwCiAgICBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24KYGBgCgojIyBDb21tdW5pdHkKCkpvaW4gdXMgb24gW1RlbGVncmFtXShodHRwczovL3QubWUvK05Gb2pNVENGSi0xaU5EWXkpLgoKIyMgQ29udHJpYnV0aW5nCgpCdWcgcmVwb3J0cyBhbmQgcHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZSBvbiBHaXRIdWIgYXQgW2dpdGh1Yi5jb20vdHV3aWxvZi9maXR0aW5nXShodHRwczovL2dpdGh1Yi5jb20vdHV3aWxvZi9maXR0aW5nKS4KVGhpcyBwcm9qZWN0IGlzIGludGVuZGVkIHRvIGJlIGEgc2FmZSwgd2VsY29taW5nIHNwYWNlIGZvciBjb2xsYWJvcmF0aW9uLCBhbmQgY29udHJpYnV0b3JzIGFyZSBleHBlY3RlZCB0byBhZGhlcmUgdG8gdGhlIFtDb250cmlidXRvciBDb3ZlbmFudF0oaHR0cDovL2NvbnRyaWJ1dG9yLWNvdmVuYW50Lm9yZykgY29kZSBvZiBjb25kdWN0LgoKIyMgTGljZW5zZQoKVGhlIGdlbSBpcyBhdmFpbGFibGUgYXMgb3BlbiBzb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIExpY2Vuc2VdKGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgoKW1Nwb25zb3JlZCBieSBGdW5Cb3hdKGh0dHBzOi8vZnVuYm94LnJ1KQo= readmeEtag: '"39b0d151f49626ae338174765093384ce3b6f35c"' readmeLastModified: Tue, 09 Jul 2024 20:36:02 GMT repositoryId: 81070703 description: >- Library add improve test log for RSpec and WebMock, validate its according to API Blueprint and Open API, show the documentation coverage with log. created: '2017-02-06T09:32:39Z' updated: '2024-09-05T14:50:34Z' language: Ruby archived: false stars: 54 watchers: 8 forks: 9 owner: tuwilof logo: https://avatars.githubusercontent.com/u/5956924?v=4 license: MIT repoEtag: '"ce646b81db5129c968daa97c6d43a661dc4449dc0a6143d5b8bb83c6a7d37163"' repoLastModified: Thu, 05 Sep 2024 14:50:34 GMT category: - Testing - Data Validators - Learning foundInMaster: true name: Fitting language: Ruby link: https://github.com/tuwilof/fitting source_description: >- Library add improve test log for RSpec and WebMock, validate its according to API Blueprint and Open API, show the documentation coverage with log. v2: true v3_1: true - source: https://openapi.tools/ name: KrakenD API Gateway category: - Documentation - Gateway link: https://www.krakend.io/enterprise/ language: Golang source_description: >- KrakenD is a high-performance, stateless API Gateway, seamlessly integrated with OpenAPI. It facilitates automatic API documentation and provides the capability to import existing specifications for generating configuration and mock servers. v2: true v3: true id: 1c349424400e28e0b3ed6ddc2a675c45 foundInMaster: true - source: https://openapi.tools/ name: Serverless API Gateway category: - Gateway - Server Implementations link: https://serverlessapigateway.com repository: https://github.com/irensaltali/serverlessapigateway language: TypeScript source_description: >- Serverless API Gateway is a serverless, open-source, and free API Gateway that is designed to be used with any HTTP source. v2: true v3: true v3_1: true id: 2cad52c6f066edce2de23d8b28481995 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KCTxpbWcgIHNyYz0iZG9jcy9pbWcvaGVyby5qcGVnIj4KICAgIDxoMT4gCiAgICAgICAgPHN0cm9uZz5TZXJ2ZXJsZXNzIEFQSSBHYXRld2F5PC9zdHJvbmc+CiAgICA8L2gxPgo8L2Rpdj4KClshW0pXVCBDT01QQVRJQkxFXShodHRwczovL2p3dC5pby9pbWcvYmFkZ2UtY29tcGF0aWJsZS5zdmcpXSgpCgpXZWxjb21lIHRvIHRoZSBTZXJ2ZXJsZXNzIEFQSSBHYXRld2F5LCBhbiBpbm5vdmF0aXZlIHRvb2wgZGVzaWduZWQgdG8gc3RyZWFtbGluZSB5b3VyIEFQSSBtYW5hZ2VtZW50IHRhc2tzIHVzaW5nIHRoZSBwb3dlcmZ1bCBjYXBhYmlsaXRpZXMgb2YgQ2xvdWRmbGFyZSBXb3JrZXJzLgoKIyMgRmVhdHVyZXMKCi0gKipKUyBXb3JrZXJzKio6IFdyaXRlIHNlcnZlcmxlc3MgSmF2YVNjcmlwdCB3b3JrZXJzIHRoYXQgaW50ZXJjZXB0IGFuZCBtb2RpZnkgeW91ciBBUEkgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcyBvbiB0aGUgZmx5LgotICoqUm91dGluZyAoUGF0aCBhbmQgTWV0aG9kKSoqOiBTaW1wbGlmeSB5b3VyIEFQSSBhcmNoaXRlY3R1cmUgd2l0aCBmbGV4aWJsZSBwYXRoIGFuZCBtZXRob2QtYmFzZWQgcm91dGluZyBmb3IgZGlyZWN0aW5nIHRyYWZmaWMgdG8gdGhlIGFwcHJvcHJpYXRlIGVuZHBvaW50cy4KLSAqKkNPUlMgKEJhc2ljKSoqOiBNYW5hZ2UgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHNoYXJpbmcgc2V0dGluZ3Mgd2l0aCBlYXNlLCBlbnN1cmluZyB5b3VyIEFQSXMgY2FuIHNlY3VyZWx5IGhhbmRsZSByZXF1ZXN0cyBmcm9tIGRpZmZlcmVudCBvcmlnaW5zLgotICoqQXV0aCAoSldUKSoqOiBTZWN1cmUgeW91ciBBUElzIGJ5IGltcGxlbWVudGluZyBKU09OIFdlYiBUb2tlbiAoSldUKSBiYXNlZCBhdXRoZW50aWNhdGlvbiB0byB2YWxpZGF0ZSBhbmQgbWFuYWdlIHVzZXIgYWNjZXNzIGVmZmljaWVudGx5LgotICoqVmFsdWUgTWFwcGluZyoqOiBNYXAgdmFsdWVzIGZyb20gc291cmNlcyB0byBkZXN0aW5hdGlvbnMsIGFsbG93aW5nIHlvdSB0byBlYXNpbHkgdHJhbnNmb3JtIHlvdXIgZGF0YS4KCiMjIE1vdGl2YXRpb24KCkFQSXMgYXJlIHBpdm90YWwgaW4gdGhlIGxhbmRzY2FwZSBvZiBtb2Rlcm4gYXBwbGljYXRpb25zLCBidXQgdGhleSBicmluZyBmb3J0aCBhIHVuaXF1ZSBzZXQgb2YgY2hhbGxlbmdlcyByZWdhcmRpbmcgc2VjdXJpdHksIHJvdXRpbmcsIGFuZCBvdmVyYWxsIG1hbmFnZW1lbnQuIFRoZSBTZXJ2ZXJsZXNzIEFQSSBHYXRld2F5IGVtZXJnZWQgZnJvbSB0aGUgbmVlZCB0byBhZGRyZXNzIHRoZXNlIGlzc3VlcyBpbiBhIHJlbGlhYmxlLCBtYW5hZ2VhYmxlLCBhbmQgY29zdC1lZmZlY3RpdmUgd2F5LiBCdWlsdCB1cG9uIENsb3VkZmxhcmUncyBzZXJ2ZXJsZXNzIGluZnJhc3RydWN0dXJlLCB0aGlzIHByb2plY3QgcHJvdmlkZXMgZGV2ZWxvcGVycyB3aXRoIGEgbGlnaHR3ZWlnaHQgeWV0IHJvYnVzdCB0b29sa2l0IHRoYXQgYWRhcHRzIHRvIHRoZSB1bnByZWRpY3RhYmlsaXR5IG9mIGludGVybmV0IHNjYWxlIGFuZCB0cmFmZmljLiBPdXIgbWlzc2lvbiBpcyB0byBlbXBvd2VyIGRldmVsb3BlcnMgdG8gc2VjdXJlbHkgYW5kIGVmZmljaWVudGx5IG1hbmFnZSB0aGVpciBBUElzIHdpdGhvdXQgdGhlIG92ZXJoZWFkIG9mIG1hbmFnaW5nIGluZnJhc3RydWN0dXJlLgoKCkZvciBkZXRhaWxlZCBzZXR1cCBhbmQgdXNhZ2UgaW5zdHJ1Y3Rpb25zLCBwbGVhc2Ugc2VlIHRoZSBbU2VydmVybGVzcyBBUEkgR2F0ZXdheSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Muc2VydmVybGVzc2FwaWdhdGV3YXkuY29tKS4KCiMjIENvbnRyaWJ1dGluZwoKSWYgeW91IHdhbnQgdG8gY29udHJpYnV0ZSB0byB0aGUgcHJvamVjdCwgeW91IGNhbiBzdGFydCBieSBjaGVja2luZyB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZWxpbmVzXShDT05UUklCVVRJTkcubWQpLgoKCiMjIEFja25vd2xlZGdtZW50cwoKQSBzaG91dG91dCB0byB0aGUgY29udHJpYnV0b3JzLCBjb21tdW5pdHkgbWVtYmVycywgYW5kIHRoZSBtYWludGFpbmVycyBvZiBDbG91ZGZsYXJlIFdvcmtlcnMgZm9yIHRoZWlyIHN1cHBvcnQgYW5kIGluc3BpcmF0aW9uIGluIG1ha2luZyB0aGlzIHByb2plY3QgYSByZWFsaXR5LgoKVGhlIFNlcnZlcmxlc3MgQVBJIEdhdGV3YXkgaXMgbm90IGp1c3QgYW5vdGhlciBBUEkgdG9vbDsgaXQncyBjcmVhdGVkIGJ5IGRldmVsb3BlcnMsIGZvciBkZXZlbG9wZXJzLCB3aXRoIHRoZSB2aXNpb24gb2YgbWFraW5nIEFQSSBtYW5hZ2VtZW50IGEgYnJlZXplLiBMZXQncyBidWlsZCB0b2dldGhlci4KCgojIyBTdXBwb3J0CgpJJ20gYWx3YXlzIGhhcHB5IHRvIGhlbHAgd2l0aCBhbnkgcXVlc3Rpb25zIG9yIGNvbmNlcm5zIHlvdSBtYXkgaGF2ZS4gRmVlbCBmcmVlIHRvIHJlYWNoIG91dCB0byBtZSBmcm9tIG9uIFtUd2l0dGVyXShodHRwczovL3R3aXR0ZXIuY29tL2lyZW5zYWx0YWxpKSBvciBbTGlua2VkSW5dKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9pcmVuc2FsdGFsaS8pLgoKSWYgeW91IG5lZWQgYSBtb3JlIGV4dGVuc2l2ZSBzdXBwb3J0IHlvdSBjYW4gYWx3YXlzIGJvb2sgb24gW1N1cGVycGVlcl0oaHR0cHM6Ly9zdXBlcnBlZXIuY29tL2lyZW5zYWx0YWxpLy0vc2VydmVybGVzcy1hcGktZ2F0ZXdheSkKCiMgQ29tcGFuaWVzIHRoYXQgdXNlIFNlcnZlcmxlc3MgQVBJIEdhdGV3YXkKCjxkaXYgYWxpZ249ImNlbnRlciI+Cgk8YSBocmVmPSJodHRwczovL3dvcGUuY29tIj4gPGltZyB3aWR0aD0iMjAwIiBzcmM9ImRvY3MvaW1nL3dvcGUucG5nIj4gPC9hPgo8L2Rpdj4KCkxldCB1cyBrbm93IGlmIHlvdSBhcmUgdXNpbmcgU2VydmVybGVzcyBBUEkgR2F0ZXdheSBhbmQgd2UgY2FuIGFkZCB5b3VyIGNvbXBhbnkgaGVyZS4KCiMgQ29udHJpYnV0b3JzCgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaXJlbnNhbHRhbGkvc2VydmVybGVzc2FwaWdhdGV3YXkvZ3JhcGhzL2NvbnRyaWJ1dG9ycyI+CiAgPGltZyBzcmM9Imh0dHBzOi8vY29udHJpYi5yb2Nrcy9pbWFnZT9yZXBvPWlyZW5zYWx0YWxpL3NlcnZlcmxlc3NhcGlnYXRld2F5IiAvPgo8L2E+CgoKIyBGZWViYWNrIFN1cnZleQoKUGxlYXNlIHRha2UgYSBmZXcgbWludXRlcyB0byBmaWxsIG91dCB0aGUgW2ZlZWRiYWNrIHN1cnZleV0oaHR0cHM6Ly9yMzlyYTU1YjBzbC50eXBlZm9ybS5jb20vdG8vZXg4SE15VEgpIHRvIGhlbHAgdXMgaW1wcm92ZSB0aGUgU2VydmVybGVzcyBBUEkgR2F0ZXdheS4K readmeEtag: '"be67090a75b79066c6c693c155b2654aea5b29bd"' readmeLastModified: Fri, 15 Mar 2024 18:44:30 GMT repositoryId: 737526274 description: Serverless API Gateway created: '2023-12-31T11:37:10Z' updated: '2024-09-05T14:33:07Z' language: TypeScript archived: false stars: 50 watchers: 2 forks: 9 owner: irensaltali logo: https://avatars.githubusercontent.com/u/6968747?v=4 license: NOASSERTION repoEtag: '"590d316a5f3ccf0b8bcc964fe40a827211de033a2333bb6a9e31b0878e9b750f"' repoLastModified: Thu, 05 Sep 2024 14:33:07 GMT foundInMaster: true - source: https://openapi.tools/ name: Treblle category: - Documentation - Security - Monitoring link: https://www.treblle.com/ source_description: >- Treblle is a lightweight SDK that helps Engineering and Product teams build, ship, and maintain REST based APIs faster. v3: true v3_1: true id: cee984cf9c829d96ef1ec921ff5b8db2 foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags name: openapi-request-response-validation category: - Data Validators - Parsers repository: https://github.com/gcatanese/openapi-request-response-validation language: Java source_description: >- Runtime validation of requests and responses of your API according to the OpenAPI specs, returning (if any) the list of errors found. It is integrated via a simple REST API therefore usable by Java and non-Java applications and CI/CD. v2: true v3: true v3_1: true id: 9c4692fcf610859bb87b0e09cf848e83 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHZhbGlkYXRvcgoKVGhpcyB0b29sIGFsbG93cyB0aGUgdmFsaWRhdGlvbiBhdCBydW50aW1lIG9mIHRoZSBBUEkgcmVxdWVzdHMgcmVzcG9uc2VzIGFjY29yZGluZyB0byB0aGUgT3BlbkFQSSBzcGVjcy4gIAoKVGhlcmUgYXJlIHNldmVyYWwgdG9vbHMgdGhhdCBjYW4gdmFsaWRhdGUgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBidXQgdGhlcmUgYXJlIG5vIG1hbnkgb3B0aW9ucyB0byBlbnN1cmUgdGhhdCB0aGUgQVBJIGNvbnRyYWN0cyBhcmUgaG9ub3VyZWQgYnkgdGhlIEFQSSB3ZSBhcmUgZGV2ZWxvcGluZy4KClRoaXMgdG9vbCBtYWtlIHN1cmUgdGhhdCB0aGUgQVBJIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgYXJlIHZhbGlkIGFjY29yZGluZyB0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBBUEkuCgpNb3JlIG9uIFtWYWxpZGF0aW5nIEFQSSByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzXShodHRwczovL21lZGl1bS5jb20vZ2Vla2N1bHR1cmUvdmFsaWRhdGluZy1hcGktcmVxdWVzdHMtYW5kLXJlc3BvbnNlcy0yNWVkNWNjOWU4NDYpCgpUaGUgYG9wZW5hcGktcmVxdWVzdC1yZXNwb25zZS12YWxpZGF0b3JgIGlzIGEgU3ByaW5nQm9vdCAoSmF2YSkgYXBwbGljYXRpb24gaW1wbGVtZW50aW5nIGEgUkVTVCBjb250cm9sbGVyIHRvIGFsbG93IFBvc3RtYW4gc2NyaXB0cyAob3Igb3RoZXIgY2xpZW50cykgdG8gc2VuZCB0aGUgcGF5bG9hZCB0byBiZSB2YWxpZGF0ZWQuIFRoZSBPcGVuQVBJIGZpbGUgY2FuIGJlIHN1cHBsaWVkIGF0IHN0YXJ0dXAuCgojIyBIb3cgZG9lcyBpdCB3b3JrPwoKWW91IHdvcmsgd2l0aCBQb3N0bWFuIHRvIHRlc3QgdGhlIEFQSSBlbmRwb2ludHMsIHNlbmRpbmcgYSByZXF1ZXN0IGFuZCB2ZXJpZnkgdGhlIHJlc3BvbnNlLiBUaGFua3MgdG8gUG9zdG1hbiBbVGVzdCBTY3JpcHRzXShodHRwczovL2xlYXJuaW5nLnBvc3RtYW4uY29tL2RvY3Mvd3JpdGluZy1zY3JpcHRzL3Rlc3Qtc2NyaXB0cy8pIGl0IGlzIHBvc3NpYmxlIHRvIGFkZCBjdXN0b20gc2NyaXB0cyB0byBhY2Nlc3MgdGhlICBgcmVxdWVzdGAsIGByZXNwb25zZWAgYW5kIGBoZWFkZXJzYCBwcm9ncmFtbWF0aWNhbGx5IGFuZCBzZW5kIHRoZW0gdG8gdGhlIE9wZW5BUEkgUmVxdWVzdC1SZXNwb25zZSBWYWxpZGF0b3IuClBvc3RtYW4gdGVzdHMgKHdpdGggYXNzZXJ0aW9ucykgY2FuIGJlIGRlZmluZWQgdG8gY29uZmlybSB0aGUgSlNPTiBwYXlsb2FkcyBhcmUgdmFsaWQgYWNjb3JkaW5nIHRvIHRoZSBBUEkgc3BlY2lmaWNhdGlvbi4KCiFbT3BlbkFQSSBWYWxpZGF0b3JdKGRvYy9vcGVuYXBpLXZhbGlkYXRvci5wbmcpCgpUaGUgb3V0Y29tZSBvZiB0aGUgdmFsaWRhdGlvbiAodG9nZXRoZXIgd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMg4oCUIGlmIGFueSkgaXMgcmV0dXJuZWQgdG8gUG9zdG1hbiAoZGlzcGxheWVkIGluIHRoZSBQb3N0bWFuIGNvbnNvbGUpIGFuZCBsb2dnZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgoKCiMjIEhvdyB0byBydW4KClN0ZXBzOgoqIGFkZCB0aGUgc25pcHBldCBiZWxvdyBpbiB0aGUgQ29sbGVjdGlvbiBUZXN0cwoqIHByb3ZpZGUgdGhlIE9wZW5BUEkgZmlsZQoqIGxhdW5jaCB0aGUgYG9wZW5hcGktcmVxdWVzdC1yZXNwb25zZS12YWxpZGF0aW9uYCB0b29sIChbSmF2YSBhcHBdKCNzdGFydC10aGUtdG9vbC1qYXZhKSBvciB1c2luZyBbRG9ja2VyXSgjc3RhcnQtdGhlLXRvb2wtZG9ja2VyKSkgCiogcnVuIHRoZSBQb3N0bWFuIHJlcXVlc3RzIGFnYWluc3QgeW91ciBzZXJ2aWNlIG9yIGFwcGxpY2F0aW9uIAoKIyMjIENvbGxlY3Rpb24gVGVzdCBzbmlwcGV0CgpJbiB0aGUgKipDb2xsZWN0aW9uIFRlc3RzKiogYWRkIHRoZSBzbmlwcGV0IGJlbG93LiBJdCB3aWxsIHJ1biBhZnRlciBldmVyeSByZXF1ZXN0IGluIHRoZSBjb2xsZWN0aW9uLiAgCgpXaGF0IGRvZXMgaXQgZG8/IEFmdGVyIGV4ZWN1dGluZyB0aGUgcmVxdWVzdCB0aGUgVGVzdCBTY3JpcHQgd2lsbCBzZW5kIGByZXF1ZXN0YCwgYHJlc3BvbnNlYCBhbmQgYGhlYWRlcnNgIHRvIHRoZSB2YWxpZGF0b3IuCgpgYGAKb3BlbmFwaVJlcXVlc3RSZXNwb25zZVZhbGlkYXRpb24gPSB7CiAgICB2YWxpZGF0ZTogZnVuY3Rpb24ocG0pIHsKICAgIAogICAgICAgIC8vIGJ1aWxkIHBhdGggd2l0aG91dCBiYXNlVXJsCiAgICAgICAgdmFyIGJhc2VVcmwgPSBwbS5jb2xsZWN0aW9uVmFyaWFibGVzLmdldCgiYmFzZVVybCIpOwogICAgICAgIGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywnJyk7CiAgICAgICAgYmFzZVVybCA9IGJhc2VVcmwucmVwbGFjZShwbS5yZXF1ZXN0LnVybC5nZXRIb3N0KCksJycpOwoKICAgICAgICB2YXIgcGF0aCA9IHBtLnJlcXVlc3QudXJsLmdldFBhdGgoKS5yZXBsYWNlKGJhc2VVcmwsJycpOwoKICAgICAgICBjb25zb2xlLmxvZygnVmFsaWRhdGlvbiBmb3IgJyArIHBhdGgpOwoKICAgICAgICBjb25zdCBwb3N0UmVxdWVzdCA9IHsKICAgICAgICAgICAgdXJsOiAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL3ZhbGlkYXRlJywKICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgIGhlYWRlcjogeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbid9LAogICAgICAgICAgICBib2R5OiB7CiAgICAgICAgICAgIG1vZGU6ICdyYXcnLAogICAgICAgICAgICByYXc6IEpTT04uc3RyaW5naWZ5KHsgCiAgICAgICAgICAgICAgICBtZXRob2Q6IHBtLnJlcXVlc3QubWV0aG9kLCAKICAgICAgICAgICAgICAgIHBhdGg6IHBhdGgsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiBwbS5yZXF1ZXN0LmhlYWRlcnMsCiAgICAgICAgICAgICAgICByZXF1ZXN0QXNKc29uOiAocG0ucmVxdWVzdC5ib2R5ICE9ICIiKSA/IHBtLnJlcXVlc3QuYm9keS5yYXcgOiBudWxsLAogICAgICAgICAgICAgICAgcmVzcG9uc2VBc0pzb246IHBtLnJlc3BvbnNlLnRleHQoKSwKICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHBtLnJlc3BvbnNlLmNvZGUKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBwbS5zZW5kUmVxdWVzdChwb3N0UmVxdWVzdCwgKGVycm9yLCByZXNwb25zZSkgPT4gewogICAgICAgICAgICBpZihlcnJvciAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIHBtLmV4cGVjdC5mYWlsKCdVbmV4cGVjdGVkIGVycm9yICcgKyBlcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlLmpzb24oKTsKCiAgICAgICAgICAgICAgICBpZihkYXRhLnZhbGlkID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YS5lcnJvcnMpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHBtLnRlc3QoIk9wZW5BUEkgdmFsaWRhdGlvbiIsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICBwbS5leHBlY3QoZGF0YS52YWxpZCwgIkludmFsaWQgcmVxdWVzdC9yZXNwb25zZSAoY2hlY2sgQ29uc29sZSkiKS50by5lcXVhbCh0cnVlKTsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgfQogICAgICAgIH0pOyAgCiAgICB9Cgp9OwoKb3BlbmFwaVJlcXVlc3RSZXNwb25zZVZhbGlkYXRpb24udmFsaWRhdGUocG0pOwpgYGAKCiMjIyBQcm92aWRlIHRoZSBPcGVuQVBJIHNwZWMgZmlsZQoKQ29weS9yZW5hbWUgeW91ciBPcGVuQVBJIHNwZWNzIHRvIGBvcGVuYXBpL29wZW5hcGkueWFtbGAgb3IgYG9wZW5hcGkvb3BlbmFwaS5qc29uYAoKIyMjIFN0YXJ0IHRoZSB0b29sIChKYXZhKQoKUnVuIHRoZSBKYXZhIGFwcGxpY2F0aW9uIApgYGBzaGVsbApqYXZhIC1qYXIgdGFyZ2V0L29wZW5hcGktcmVxdWVzdC1yZXNwb25zZS12YWxpZGF0b3IuamFyCmBgYAoKUnVuIHRoZSBKYXZhIGFwcGxpY2F0aW9uIHdpdGggY3VzdG9tIHBvcnQgYW5kIHNwZWMgZmlsZQpgYGBzaGVsbApqYXZhIC1qYXIgdGFyZ2V0L29wZW5hcGktcmVxdWVzdC1yZXNwb25zZS12YWxpZGF0b3IuamFyIC0tc2VydmVyLnBvcnQ9ODg4OCAtLUlOUFVUX1NQRUNTPS9wYXRoL3RvL215b3BlbmFwaS55YW1sCmBgYAoKIyMjIFN0YXJ0IHRoZSB0b29sIChEb2NrZXIpCgpZb3UgY2FuIHJ1biB0aGUgdG9vbCBvbiBEb2NrZXIKCmBgYAojIHJ1biB1c2luZyBkZWZhdWx0IG9wZW5hcGkvb3BlbmFwaS55YW1sIG9yIG9wZW5hcGkvb3BlbmFwaS5qc29uCmRvY2tlciBydW4gLXYgJChwd2QpOi9vcGVuYXBpIC1pdCAtLXJtIC0tbmFtZSBvcGVuYXBpLXJlcXVlc3QtcmVzcG9uc2UtdmFsaWRhdGlvbiBcCiBnY2F0YW5lc2Uvb3BlbmFwaS1yZXF1ZXN0LXJlc3BvbnNlLXZhbGlkYXRpb24KCiMgcnVuIHVzaW5nIGN1c3RvbSBsb2NhdGlvbiBvZiB0aGUgT3BlbkFQSSBmaWxlCmRvY2tlciBydW4gLXYgJChwd2QpOi9vcGVuYXBpIC1lIElOUFVUX1NQRUNTPS90bXAvb3BlbmFwaS55YW1sIFwKICAtaXQgLS1ybSAtLW5hbWUgb3BlbmFwaS1yZXF1ZXN0LXJlc3BvbnNlLXZhbGlkYXRpb24gXAogICAgZ2NhdGFuZXNlL29wZW5hcGktcmVxdWVzdC1yZXNwb25zZS12YWxpZGF0aW9uCmBgYAoKIyMjIFJ1biBQb3N0bWFuIHJlcXVlc3RzCgpSdW4gdGhlIFBvc3RtYW4gcmVxdWVzdHMgYW5kIGNoZWNrIHRoZSBUZXN0IHRhYgoKIVtQb3N0bWFuIFRlc3QgUmVzdWx0c10oZG9jL3Bvc3RtYW4tdGVzdC1yZXN1bHRzLnBuZykKCgoKLS0tClVzaW5nIFtBdGxhc3NpYW4gU3dhZ2dlciBWYWxpZGF0b3JdKGh0dHBzOi8vYml0YnVja2V0Lm9yZy9hdGxhc3NpYW4vc3dhZ2dlci1yZXF1ZXN0LXZhbGlkYXRvci8pLCBbUG9zdG1hbl0oaHR0cHM6Ly9wb3N0bWFuLmNvbSkgCmFuZCBbRG9ja2VyXShodHRwczovL2RvY2tlci5jb20pCgo= readmeEtag: '"86fdc4801d251131b5a039d107fcfa3afcbdb4da"' readmeLastModified: Mon, 17 Jun 2024 14:06:58 GMT repositoryId: 584163624 description: Validation of request/response according to OpenAPI specs created: '2023-01-01T16:44:30Z' updated: '2024-07-06T15:11:20Z' language: Java archived: false stars: 11 watchers: 1 forks: 2 owner: gcatanese logo: https://avatars.githubusercontent.com/u/1771700?v=4 license: Apache-2.0 repoEtag: '"91394eadcb88da605cdb18ca8167534df0ffc409c98929b97c7e9d0b18709a20"' repoLastModified: Sat, 06 Jul 2024 15:11:20 GMT foundInMaster: true - source: https://openapi.tools/ name: api-smart-diff repository: https://github.com/udamir/api-smart-diff language: TypeScript source_description: >- Compare two Json based API documents (OpenAPI, AsyncAPI, JsonSchema, GraphAPI) v2: true v3: true v3_1: true id: d4a9b510fa698579d4641e0190f532af repositoryMetadata: base64Readme: >- IyBhcGktc21hcnQtZGlmZgo8aW1nIGFsdD0ibnBtIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvYXBpLXNtYXJ0LWRpZmYiPiA8aW1nIGFsdD0ibnBtIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2FwaS1zbWFydC1kaWZmP2xhYmVsPW5wbSI+IDxpbWcgYWx0PSJucG0gdHlwZSBkZWZpbml0aW9ucyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS90eXBlcy9hcGktc21hcnQtZGlmZiI+IDxpbWcgYWx0PSJHaXRIdWIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS91ZGFtaXIvYXBpLXNtYXJ0LWRpZmYiPgoKVGhpcyBwYWNrYWdlIHByb3ZpZGVzIHV0aWxzIHRvIGNvbXB1dGUgdGhlIGRpZmYgYmV0d2VlbiB0d28gSnNvbiBiYXNlZCBBUEkgZG9jdW1lbnRzIC0gW29ubGluZSBkZW1vXShodHRwczovL3VkYW1pci5naXRodWIuaW8vYXBpLXNtYXJ0LWRpZmYvKQoKIyMgUHVycG9zZQotIEdlbmVyYXRlIEFQSSBjaGFuZ2Vsb2cKLSBJZGVudGlmeSBicmVha2luZyBjaGFuZ2VzCi0gRW5zdXJlIEFQSSB2ZXJzaW9uaW5nIGNvbnNpc3RlbmN5CgojIyBTdXBwb3J0ZWQgQVBJIHNwZWNpZmljYXRpb25zCgotIFtPcGVuQXBpIDMuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4zLm1kKQotIFtBc3luY0FwaSAyLnhdKGh0dHBzOi8vdjIuYXN5bmNhcGkuY29tL2RvY3MvcmVmZXJlbmNlKQotIFtKc29uU2NoZW1hXShodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL2pzb24tc2NoZW1hLWNvcmUuaHRtbCkKLSBHcmFwaFFMIHZpYSBbR3JhcGhBcGldKGh0dHBzOi8vZ2l0aHViLmNvbS91ZGFtaXIvZ3JhcGhhcGkpCi0gfn5bU3dhZ2dlciAyLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kKX5+Ci0gfn5bQXN5bmNBcGkgMy54XShodHRwczovL3d3dy5hc3luY2FwaS5jb20vZG9jcy9zcGVjaWZpY2F0aW9ucy8pfn4gKFJvYWRtYXApCi0gfn5nUlBDfn4gKFJvYWRtYXApCgojIyBGZWF0dXJlcwotIEdlbmVyYXRlIGRpZmYgZm9yIHN1cHBvcnRlZCBzcGVjaWZpY2F0aW9ucwotIEdlbmVyYXRlIG1lcmdlZCBkb2N1bWVudCB3aXRoIGNoYW5nZXMgaW4gbWV0YWRhdGEgCi0gQ2xhc3NpZnkgYWxsIGNoYW5nZXMgYXMgYnJlYWtpbmcsIG5vbi1icmVha2luZywgZGVwcmVjYXRlZCBhbmQgYW5ub3RhdGlvbgotIEh1bWFuLXJlYWRhYmxlIGNoYW5nZSBkZXNjcmlwdGlvbgotIFN1cHBvcnRzIGN1c3RvbSBjbGFzc2lmaWNhdGlvbiBydWxlcwotIFN1cHBvcnRzIGN1c3RvbSBjb21wYXJpc29uIG9yIG1hdGNoIHJ1bGVzCi0gU3VwcG9ydHMgY3VzdG9tIHRyYW5zZm9ybWF0aW9ucwotIFN1cHBvcnRzIGN1c3RvbSBodW1hbi1yZWFkYWJsZSBjaGFuZ2VzIGFubm90YXRpb24KLSBSZXNvbHZlcyBhbGwgJHJlZiBwb2ludGVycywgaW5jbHVkaW5nIGNpcmN1bGFyCi0gVHlwZXNjcmlwdCBzeW50YXggc3VwcG9ydCBvdXQgb2YgdGhlIGJveAotIENhbiBiZSB1c2VkIGluIG5vZGVqcyBvciBicm93c2VyCgojIyBFeHRlcm5hbCAkcmVmCklmIHNjaGVtYSBjb250YWlucyBhbiBleHRlcm5hbCAkcmVmLCB5b3Ugc2hvdWxkIGJ1bmRsZSBpdCB2aWEgW2FwaS1yZWYtYnVuZGxlcl0oaHR0cHM6Ly9naXRodWIuY29tL3VkYW1pci9hcGktcmVmLWJ1bmRsZXIpIGZpcnN0LgoKIyMgSW5zdGFsbGF0aW9uCmBgYFNICm5wbSBpbnN0YWxsIGFwaS1zbWFydC1kaWZmIC0tc2F2ZQpgYGAKb3IKYGBgU0gKeWFybiBhZGQgYXBpLXNtYXJ0LWRpZmYKYGBgCgojIyBVc2FnZQoKIyMjIE5vZGVqcwpgYGB0cwppbXBvcnQgeyBhcGlDb21wYXJlIH0gZnJvbSAnYXBpLXNtYXJ0LWRpZmYnCgpjb25zdCB7IGRpZmZzLCBtZXJnZWQgfSA9IGFwaUNvbXBhcmUoYmVmb3JlLCBhZnRlcikKLy8gZGlmZjogCi8vIHsKLy8gICBhY3Rpb246ICJhZGQiIHwgInJlbW92ZSIgfCAicmVwbGFjZSIgfCAicmVuYW1lIiwKLy8gICBhZnRlcjogJ3ZhbHVlIGluIGFmdGVyJywKLy8gICBiZWZvcmU6ICd2YWx1ZSBpbiBiZWZvcmUnLAovLyAgIGRlc2NyaXB0aW9uOiAnaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24nCi8vICAgcGF0aDogWydwYXRoLCAnaW4nLCAnYXJyYXknLCAnZm9ybWF0J10sCi8vICAgdHlwZTogImFubm90YXRpb24iIHwgImJyZWFraW5nIiB8ICJub24tYnJlYWtpbmciIHwgInVuY2xhc3NpZmllZCIgfCAiZGVwcmVjYXRlZCIKLy8gfSAKCi8vIG1lcmdlZCBtZXRhOgovLyB7Ci8vICAgYWN0aW9uOiAiYWRkIiB8ICJyZW1vdmUiIHwgInJlcGxhY2UiIHwgInJlbmFtZSIsCi8vICAgdHlwZTogImFubm90YXRpb24iIHwgImJyZWFraW5nIiB8ICJub24tYnJlYWtpbmciIHwgInVuY2xhc3NpZmllZCIgfCAiZGVwcmVjYXRlZCIsCi8vICAgcmVwbGFjZWQ6ICJ2YWx1ZSBpbiBiZWZvcmUiLAovLyB9CgpgYGAKCiMjIyBCcm93c2VycwoKQSBicm93c2VyIHZlcnNpb24gb2YgYGFwaS1zbWFydC1kaWZmYCBpcyBhbHNvIGF2YWlsYWJsZSB2aWEgQ0ROOgpgYGBodG1sCjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2FwaS1zbWFydC1kaWZmQGxhdGVzdC9kaXN0L2FwaS1zbWFydC1kaWZmLm1pbi5qcyI+PC9zY3JpcHQ+CmBgYAoKUmVmZXJlbmNlIGBhcGktc21hcnQtZGlmZi5taW4uanNgIGluIHlvdXIgSFRNTCBhbmQgdXNlIHRoZSBnbG9iYWwgdmFyaWFibGUgYEFwaVNtYXJ0RGlmZmAuCmBgYEhUTUwKPHNjcmlwdD4KICB2YXIgeyBkaWZmcywgbWVyZ2VkIH0gPSBBcGlTbWFydERpZmYuYXBpQ29tcGFyZShiZWZvcmUsIGFmdGVyKQo8L3NjcmlwdD4KYGBgCgojIyBEb2N1bWVudGF0aW9uCgpQYWNrYWdlIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgcHVibGljIGZ1bmN0aW9uczoKCmBhcGlDb21wYXJlIChiZWZvcmUsIGFmdGVyLCBvcHRpb25zPzogQ29tcGFyZU9wdGlvbnMpOiB7IGRpZmZzOiBEaWZmW10sIG1lcmdlZDogb2JqZWN0IH1gCj4gQ2FsY3VsYXRlcyB0aGUgZGlmZmVyZW5jZSBhbmQgbWVyZ2UgdHdvIG9iamVjdHMgYW5kIGNsYXNzaWZ5IGRpZmZlcmVuY2UgaW4gYWNjb3JkaW5hbmNlIHdpdGggYmVmb3JlIGRvY3VtZW50IHR5cGUKCgojIyMgKiphcGlDb21wYXJlKGJlZm9yZSwgYWZ0ZXIsIG9wdGlvbnMpKioKVGhlIGFwaURpZmYgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBvYmplY3RzLgoKIyMjIyAqQXJndW1lbnRzKgotIGBiZWZvcmU6IGFueWAgLSB0aGUgb3JpZ2luIG9iamVjdAotIGBhZnRlcjogYW55YCAtIHRoZSBvYmplY3QgYmVpbmcgY29tcGFyZWQgc3RydWN0dXJhbGx5IHdpdGggdGhlIG9yaWdpbiBvYmplY3RcCi0gYG9wdGlvbnM6IENvbXBhcmVPcHRpb25zYCBbb3B0aW9uYWxdIC0gY29tcGFyaXNvbiBvcHRpb25zCgpgYGB0cwpleHBvcnQgdHlwZSBDb21hcHJlT3B0aW9ucyA9IHsKICBydWxlcz86IENvbXBhcmVSdWxlcyAgICAgICAgICAgICAgLy8gY3VzdG9tIHJ1bGVzIGZvciBjb21wYXJlCgogIG1ldGFLZXk/OiBzdHJpbmcgfCBzeW1ib2wgICAgICAgICAvLyBtZXRha2V5IGZvciBtZXJnZSBjaGFuZ2VzCiAgYXJyYXlNZXRhPzogYm9vbGVhbiAgICAgICAgICAgICAgIC8vIGFkZCBjaGFuZ2VzIHRvIGFycmF5cyB2aWEgbWV0YWtleQogIGFubm90YXRlSG9vaz86IEFubm90YXRlSG9vayAgICAgICAvLyBjdXN0b20gZm9ybWF0IGhvb2sKCiAgZXh0ZXJuYWxTb3VyY2VzPzogeyAgICAgICAgICAgICAgIC8vIHJlc29sdmVkIGV4dGVybmFsICRyZWYgc291cmNlcwogICAgYmVmb3JlPzogUmVjb3JkPHN0cmluZywgb2JqZWN0PgogICAgYWZ0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+CiAgfQp9CmBgYAojIyMjICpSZXN1bHQqCkZ1bmN0aW9uIHJldHVybnMgb2JqZWN0IHdpdGggYGRpZmZzYCBhcnJheSBhbmQgYG1lcmdlZGAgb2JqZWN0IHdpdGggbWV0YWRhdGEKYGBgdHMKdHlwZSBEaWZmID0gewogIGFjdGlvbjogImFkZCIgfCAicmVtb3ZlIiB8ICJyZXBsYWNlIiB8ICJyZW5hbWUiCiAgcGF0aDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPgogIGRlc2NyaXB0aW9uPzogc3RyaW5nIAogIGJlZm9yZT86IGFueQogIGFmdGVyPzogYW55CiAgdHlwZTogImJyZWFraW5nIiB8ICJub24tYnJlYWtpbmciIHwgImFubm90YXRpb24iIHwgInVuY2xhc3NpZmllZCIgfCAiZGVwcmVjYXRlZCIKfQoKdHlwZSBNZXJnZU1ldGEgPSBEaWZmTWV0YSB8IE1lcmdlQXJyYXlNZXRhCnR5cGUgTWVyZ2VBcnJheU1ldGEgPSB7IGFycmF5OiBSZWNvcmQ8bnVtYmVyLCBNZXJnZU1ldGE+IH0KCmV4cG9ydCB0eXBlIERpZmZNZXRhID0gewogIGFjdGlvbjogImFkZCIgfCAicmVtb3ZlIiB8ICJyZXBsYWNlIiB8ICJyZW5hbWUiCiAgdHlwZTogImJyZWFraW5nIiB8ICJub24tYnJlYWtpbmciIHwgImFubm90YXRpb24iIHwgInVuY2xhc3NpZmllZCIgfCAiZGVwcmVjYXRlZCIKICByZXBsYWNlZD86IGFueQp9CmBgYAoKIyMjIyAqRXhhbXBsZSoKYGBgdHMKY29uc3QgbWV0YUtleSA9IFN5bWJvbCgiZGlmZiIpCmNvbnN0IHsgZGlmZnMsIG1lcmdlZCB9ID0gYXBpQ29tcGFyZShiZWZvcmUsIGFmdGVyLCB7IG1ldGFLZXkgfSkKCi8vIGRvIHNvbWV0aGluZyB3aXRoIGRpZmZzIG9yIG1lcmdlZCBvYmplY3QKYGBgCgojIyMgKipDdXN0b20gcnVsZXMqKgpDdXN0b20gY29tcGFyZSBydWxlcyBjYW4gYmUgZGVmaW5lZCBhcyBDcmF3bFJ1bGVzOgpgYGB0cwppbXBvcnQgeyBDcmF3bFJ1bGVzIH0gZnJvbSAianNvbi1jcmF3bCIKCnR5cGUgQ29tcGFyZVJ1bGVzID0gQ3Jhd2xSdWxlczxDb21wYXJlUnVsZT4KCnR5cGUgQ29tcGFyZVJ1bGUgPSB7CiAgJD86IENsYXNzaWZ5UnVsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGFzc2lmaWVyIGZvciBjdXJyZW50IG5vZGUKICBjb21wYXJlPzogQ29tcGFyZVJlc29sdmVyICAgICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgaGFuZGxlciBmb3IgY3VycmVudCBub2RlCiAgdHJhbnNmb3JtPzogQ29tcGFyZVRyYW5zZm9ybVJlc29sdmVyW10gICAgICAvLyB0cmFuc2Zvcm1hdGlvbnMgYmVmb3JlIGNvbXBhcmUvbWVyZ2UKICBtYXBwaW5nPzogTWFwcGluZ1Jlc29sdmVyPHN0cmluZyB8IG51bWJlcj4gIC8vIGtleXMgbWFwcGluZyBydWxlcwogIGFubm90YXRlPzogQ2hhbmdlQW5ub3RhdGlvblJlc29sdmVyICAgICAgICAgLy8gcmVzb2x2ZXIgZm9yIGFubm90YXRpb24gdGVtcGxhdGUKfQoKLy8gQ2hhbmdlIGNsYXNzaWZpZXIKdHlwZSBDbGFzc2lmeVJ1bGUgPSBbIAogIERpZmZUeXBlIHwgKGN0eDogQ29tYXByZUNvbnRleHQpID0+IERpZmZUeXBlLCAvLyBhZGQKICBEaWZmVHlwZSB8IChjdHg6IENvbWFwcmVDb250ZXh0KSA9PiBEaWZmVHlwZSwgLy8gcmVtb3ZlCiAgRGlmZlR5cGUgfCAoY3R4OiBDb21hcHJlQ29udGV4dCkgPT4gRGlmZlR5cGUsIC8vIHJlcGxhY2UgKHJlbmFtZSkKICBEaWZmVHlwZSB8IChjdHg6IENvbWFwcmVDb250ZXh0KSA9PiBEaWZmVHlwZSwgLy8gKG9wdGlvbmFsKSByZXZlcnNlZCBydWxlIGZvciBhZGQKICBEaWZmVHlwZSB8IChjdHg6IENvbWFwcmVDb250ZXh0KSA9PiBEaWZmVHlwZSwgLy8gKG9wdGlvbmFsKSByZXZlcnNlZCBydWxlIGZvciByZW1vdmUKICBEaWZmVHlwZSB8IChjdHg6IENvbWFwcmVDb250ZXh0KSA9PiBEaWZmVHlwZSAgLy8gKG9wdGlvbmFsKSByZXZlcnNlZCBydWxlIGZvciByZXBsYWNlIChyZW5hbWUpCl0KCi8vIENvbXBhcmUgY29udGV4dAp0eXBlIENvbWFwcmVDb250ZXh0ID0gewogIGJlZm9yZTogTm9kZUNvbnRleHQgICAgICAgLy8gYmVmb3JlIG5vZGUgY29udGV4dAogIGFmdGVyOiBOb2RlQ29udGV4dCAgICAgICAgLy8gYWZ0ZXIgbm9kZSBjb250ZXh0CiAgcnVsZXM6IENvbXBhcmVSdWxlcyAgICAgICAvLyBydWxlcyBmb3IgY29tcGFyZWQgbm9kZXMKICBvcHRpb25zOiBDb21hcHJlT3B0aW9ucyAgIC8vIGNvbXBhcmUgb3B0aW9ucwp9CgovLyBOb2RlIGNvbnRleHQKdHlwZSBOb2RlQ29udGV4dCA9ICB7CiAgcGF0aDogSnNvblBhdGgKICBrZXk6IHN0cmluZyB8IG51bWJlcgogIHZhbHVlOiB1bmtub3duCiAgcGFyZW50PzogdW5rbm93bgogIHJvb3Q6IHVua25vd24KfQoKLy8gQ3VzdG9tIGNvbXBhcmUgcmVzb2x2ZXIKdHlwZSBDb21wYXJlUmVzb2x2ZXIgPSAoY3R4OiBDb21hcHJlQ29udGV4dCkgPT4gQ29tcGFyZVJlc3VsdCB8IHZvaWQKCi8vIFRyYW5zZm9ybWF0aW9uIHJ1bGVzCnR5cGUgQ29tcGFyZVRyYW5zZm9ybVJlc29sdmVyPFQgPSB1bmtub3duPiA9IChiZWZvcmU6IFQsIGFmdGVyOiBUKSA9PiBbVCwgVF0KCi8vIE1hcHBpbmcgcnVsZXMKdHlwZSBNYXBwaW5nUmVzb2x2ZXIgPSAoCiAgYmVmb3JlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVua25vd25bXSwKICBhZnRlcjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmtub3duW10sIAogIGN0eDogQ29tYXByZUNvbnRleHQKKSA9PiBNYXBLZXlzUmVzdWx0Cgp0eXBlIE1hcEtleXNSZXN1bHQ8VCBleHRlbmRzIHN0cmluZyB8IG51bWJlcj4gPSB7CiAgYWRkZWQ6IEFycmF5PFQ+CiAgcmVtb3ZlZDogQXJyYXk8VD4KICBtYXBwZWQ6IFJlY29yZDxULCBUPgp9CgovLyBBbm5vdGF0aW9uIHRlbXBhbHRlIHJlc29sdmVyCnR5cGUgQ2hhbmdlQW5ub3RhdGlvblJlc29sdmVyID0gKGRpZmY6IERpZmYsIGN0eDogQ29tYXByZUNvbnRleHQpID0+IEFubm90YXRlVGVtcGxhdGUgfCB1bmRlZmluZWQKCnR5cGUgQW5ub3RhdGVUZW1wbGF0ZSA9IHsKICB0ZW1wbGF0ZTogc3RyaW5nLAogIHBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogQW5ub3RhdGVUZW1wbGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB9Cn0KCmBgYAoKIyMgQ29udHJpYnV0aW5nCldoZW4gY29udHJpYnV0aW5nLCBrZWVwIGluIG1pbmQgdGhhdCBpdCBpcyBhbiBvYmplY3RpdmUgb2YgYGFwaS1zbWFydC1kaWZmYCB0byBoYXZlIG5vIGFkZGl0aW9uYWwgcGFja2FnZSBkZXBlbmRlbmNpZXMuIFRoaXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLCBidXQgZm9yIG5vdywgbm8gbmV3IGRlcGVuZGVuY2llcy4KClBsZWFzZSBydW4gdGhlIHVuaXQgdGVzdHMgYmVmb3JlIHN1Ym1pdHRpbmcgeW91ciBQUjogYHlhcm4gdGVzdGAuIEhvcGVmdWxseSB5b3VyIFBSIGluY2x1ZGVzIGFkZGl0aW9uYWwgdW5pdCB0ZXN0cyB0byBpbGx1c3RyYXRlIHlvdXIgY2hhbmdlL21vZGlmaWNhdGlvbiEKCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"2f695b5df20c0bcd2d6d97fd8b70107d7261b15e"' readmeLastModified: Sun, 07 Jul 2024 20:59:48 GMT repositoryId: 474422137 description: >- Compare two Json based API documents (OpenAPI, AsyncAPI, JsonSchema, GraphAPI) created: '2022-03-26T17:42:23Z' updated: '2024-07-31T20:11:19Z' language: TypeScript archived: false stars: 18 watchers: 1 forks: 5 owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT repoEtag: '"6f5f3781fba0d996b20ae20504056cec47d581f1c844da85c5d5851f26d445c2"' repoLastModified: Wed, 31 Jul 2024 20:11:19 GMT foundInMaster: true category: Parsers - source: https://openapi.tools/ name: api-diff-viewer category: - Documentation repository: https://github.com/udamir/api-diff-viewer language: TypeScript source_description: > React component to view the difference between two Json based API documents. Supported specifications: JsonSchema, OpenAPI 3.x, AsyncAPI 2.x. v2: true v3: true v3_1: true id: 37f68f73312ab0e2f2b71f6def3e1bbf repositoryMetadata: base64Readme: >- IyBhcGktZGlmZi12aWV3ZXIKPGltZyBhbHQ9Im5wbSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2FwaS1kaWZmLXZpZXdlciI+IDxpbWcgYWx0PSJucG0iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vYXBpLWRpZmYtdmlld2VyP2xhYmVsPW5wbSI+IDxpbWcgYWx0PSJucG0gdHlwZSBkZWZpbml0aW9ucyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS90eXBlcy9hcGktZGlmZi12aWV3ZXIiPiA8aW1nIGFsdD0iR2l0SHViIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvdWRhbWlyL2FwaS1kaWZmLXZpZXdlciI+CgpSZWFjdCBjb21wb25lbnQgdG8gdmlldyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBKc29uIGJhc2VkIEFQSSBkb2N1bWVudHMuIFN1cHBvcnRlZCBzcGVjaWZpY2F0aW9uczogSnNvblNjaGVtYSwgT3BlbkFQSSAzLngsIEFzeW5jQVBJIDIueC4KClZpZXcgW29ubGluZSBkZW1vXShodHRwczovL3VkYW1pci5naXRodWIuaW8vYXBpLWRpZmYtdmlld2VyLykgYW5kIFshW1N0b3J5Ym9va10oaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3N0b3J5Ym9va2pzL2JyYW5kQG1hc3Rlci9iYWRnZS9iYWRnZS1zdG9yeWJvb2suc3ZnKV0oaHR0cHM6Ly9hcGktZGlmZi12aWV3ZXIudmVyY2VsLmFwcC8pCgojIyBDdXJyZW50IHN0YXR1cyBhbmQgcGxhbnM6Ci0gW3hdIEpzb25TY2hlbWEgc3VwcG9ydAotIFt4XSBPcGVuQXBpIDMueCBzdXBwb3J0Ci0gWyBdIFN3YWdnZXIgc3VwcG9ydAotIFt4XSBBc3luY0FwaSAyLnggc3VwcG9ydAotIFt4XSBTaWRlLWJ5LXNpZGUgY29tcGFyZSB2aWV3Ci0gW3hdIElubGluZSBjb21wYXJlIHZpZXcKLSBbeF0gWWFtbCBvdXRwdXQKLSBbeF0gSnNvbiBvdXRwdXQKLSBbeF0gQ29tcGFyZSB0ZXh0IGJ5IHdvcmRzCi0gW3hdIENvbGxhcHNlL2V4cGFuZCBibG9ja3MKLSBbeF0gVmlldyBjaGFuZ2Ugc3VtbWFyeSBvbiBjb2xsYXBlZCBibG9ja3MKLSBbeF0gQ29sbGFwc2UvZXhwYW5kIGFsbAotIFt4XSBGaWx0ZXIgY2hhbmdlcyBieSB0eXBlIChIaWRlIHVuY2hhbmdlZC9ub3QgZmlsdGVyZWQgbGluZXMpCi0gW3hdIE5hdmlnYXRpb24gc2lkZWJhcgotIFt4XSBOb24tYmxvY2tpbmcgbG9hZGluZyAodmlhIFdlYldvcmtlcikKLSBbeF0gQ3VzdG9tIHRoZW1lcyBzdXBwb3J0Ci0gWyBdIERlZmF1bHQgdGhlbWVzCi0gWyBdIFdlYkNvbXBvbmVudAotIFsgXSBQZXJmb3JtYW5jZSBpbXByb3ZlbWVudAotIFsgXSBUZXN0cwoKIyMgRG9jdW1lbnRhdGlvbgoKIyMjIEluc3RhbGxhdGlvbgoKYGBgc2gKIyBZYXJuCnlhcm4gYWRkIGFwaS1kaWZmLXZpZXdlcgoKIyBOUE0KbnBtIGluc3RhbGwgYXBpLWRpZmYtdmlld2VyCmBgYAoKPiDinKggQ2hlY2tvdXQgdGhlIHN0b3JpZXMgW2hlcmVdKGh0dHBzOi8vYXBpLWRpZmYtdmlld2VyLnZlcmNlbC5hcHAvKSBmb3IgYSBkZXRhaWxlZCBkb2N1bWVudGF0aW9uLgoKIyMgRGV2ZWxvcG1lbnQKCiMjIyBJbnN0YWxsCgpgYGBzaAp5YXJuIGluc3RhbGwKYGBgCgojIyMgRGV2ZWxvcAoKYGBgc2gKeWFybiBzdG9yeWJvb2sKYGBgCgojIyBMaWNlbnNlCgpNSVQK readmeEtag: '"2af341c9b3e71aaff92b29cf34ac7989839dca15"' readmeLastModified: Sat, 22 Jun 2024 18:54:28 GMT repositoryId: 487499674 description: React component to view difference between two Json based API documents created: '2022-05-01T09:49:52Z' updated: '2024-09-01T10:58:05Z' language: TypeScript archived: false stars: 29 watchers: 1 forks: 1 owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT repoEtag: '"5214ab7846d59b4a197b3c1feffa5e0b545aec464c7528a32207337f179607b2"' repoLastModified: Sun, 01 Sep 2024 10:58:05 GMT foundInMaster: true - source: https://openapi.tools/ name: allof-merge category: - Converters repository: https://github.com/udamir/allof-merge language: TypeScript source_description: Simplify your JsonSchema by combining allOf safely v3: true v3_1: true id: a2e0064b2092b9d31f862f193256ada8 repositoryMetadata: base64Readme: >- IyBhbGxvZi1tZXJnZQo8aW1nIGFsdD0ibnBtIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvYWxsb2YtbWVyZ2UiPiA8aW1nIGFsdD0ibnBtIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2FsbG9mLW1lcmdlP2xhYmVsPW5wbSI+ICFbR2l0SHViIFdvcmtmbG93IFN0YXR1cyAod2l0aCBldmVudCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3VkYW1pci9hbGxvZi1tZXJnZS9jaS55bWwpCiA8aW1nIGFsdD0ibnBtIHR5cGUgZGVmaW5pdGlvbnMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdHlwZXMvYWxsb2YtbWVyZ2UiPiAhW0NvdmVyYWxscyBicmFuY2hdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY292ZXJhbGxzQ292ZXJhZ2UvZ2l0aHViL3VkYW1pci9hbGxvZi1tZXJnZSkgPGltZyBhbHQ9IkdpdEh1YiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL3VkYW1pci9hbGxvZi1tZXJnZSI+CgpNZXJnZSBzY2hlbWFzIHdpdGggYWxsT2YgaW50byBhIG1vcmUgcmVhZGFibGUgY29tcG9zZWQgc2NoZW1hIGZyZWUgZnJvbSBhbGxPZi4KCiMjIEZlYXR1cmVzCi0gU2FmZSBtZXJnaW5nIG9mIHNjaGVtYXMgY29tYmluZWQgd2l0aCBhbGxPZiBpbiB3aG9sZSBkb2N1bWVudAotIEZhc3Rlc3QgaW1wbG1lbnRhdGlvbiAtIHVwIHRvIHgzIHRpbWVzIGZhc3RlciB0aGVuIG90aGVyIHBvcHVsYXIgbGlicmFyaWVzCi0gTWVyZ2VkIHNjaGVtYSBkb2VzIG5vdCB2YWxpZGF0ZSBtb3JlIG9yIGxlc3MgdGhhbiB0aGUgb3JpZ2luYWwgc2NoZW1hCi0gUmVtb3ZlcyBhbG1vc3QgYWxsIGxvZ2ljYWwgaW1wb3NzaWJpbGl0aWVzCi0gQ29ycmVjdGx5IG1lcmdlIGFkZGl0aW9uYWxQcm9wZXJ0aWVzLCBwYXR0ZXJuUHJvcGVydGllcyBhbmQgcHJvcGVydGllcyB0YWtpbmcgaW50byBhY2NvdW50IGNvbW1vbiB2YWxpZGF0aW9ucwotIENvcnJlY3RseSBtZXJnZSBpdGVtcyBhbmQgYWRkaXRpb25hbEl0ZW1zIHRha2luZyBpbnRvIGFjY291bnQgY29tbW9uIHZhbGlkYXRpb25zCi0gU3VwcG9ydHMgY3VzdG9tIHJ1bGVzIHRvIG1lcmdlIG90aGVyIGRvY3VtZW50IHR5cGVzIGFuZCBKc29uU2NoZW1hIHZlcnNpb25zCi0gU3VwcG9ydHMgaW5wdXQgd2l0aCBjaXJjdWxhciByZWZlcmVuY2VzIChqYXZhU2NyaXB0IHJlZmVyZW5jZXMpCi0gU3VwcG9ydHMgJHJlZnMgYW5kIGNpcmN1bGFyICRyZWZzIGVpdGhlciAoaW50ZXJuYWwgcmVmZXJlbmNlcyBvbmx5KQotIENvcnJlY3RseSBtZXJnZSBvZiAkcmVmcyB3aXRoIHNpYmxpbmcgY29udGVudCAob3B0aW9uYWxseSkKLSBDb3JyZWN0bHkgbWVyZ2Ugb2YgY29tYmluYXJpZXMgKGFueU9mLCBvbmVPZikgd2l0aCBzaWJsaW5nIGNvbnRlbnQgKG9wdGlvbmFsbHkpCi0gVHlwZXNjcmlwdCBzeW50YXggc3VwcG9ydCBvdXQgb2YgdGhlIGJveAotIE5vIGRlcGVuZGVuY2llcyAoZXhjZXB0IGpzb24tY3Jhd2wpLCBjYW4gYmUgdXNlZCBpbiBub2RlanMgb3IgYnJvd3NlcgoKIyMgV29ya3MgcGVyZmVjdGx5IHdpdGggc3BlY2lmaWNhdGlvbnM6CgotIFtKc29uU2NoZW1hXShodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL2pzb24tc2NoZW1hLWNvcmUuaHRtbCkKLSBbT3BlbkFwaSAzLnhdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZCkKLSBbR3JhcGhBcGldKGh0dHBzOi8vZ2l0aHViLmNvbS91ZGFtaXIvZ3JhcGhhcGkpCi0gfn5Td2FnZ2VyIDIueH5+IChyb2FkbWFwKQotIH5+QXN5bmNBcGkgMi54fn4gKHJvYWRtYXApCi0gfn5Bc3luY0FwaSAzLnh+fiAocm9hZG1hcCkKCiMjIE90aGVyIGxpYnJhcmllcwpUaGVyZSBhcmUgc29tZSBsaWJyYXJpZXMgdGhhdCBjYW4gbWVyZ2Ugc2NoZW1hcyBjb21iaW5lZCB3aXRoIGFsbE9mLiBPbmUgb2YgdGhlIG1vc3QgcG9wdWxhciBpcyBbbW9ra2Fib25uYS9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvanNvbi1zY2hlbWEtbWVyZ2UtYWxsb2YpLCBidXQgaXQgaGFzIHNvbWUgbGltaXRhdG9uczogRG9lcyBub3Qgc3VwcG9ydCBjaXJjdWxhciAkcmVmcyBhbmQgbm8gVHlwZXNjcmlwdCBzeW50YXggb3V0IG9mIHRoZSBib3guCgojIyBFeHRlcm5hbCAkcmVmCklmIHNjaGVtYSBjb250YWlucyBhbiBleHRlcm5hbCAkcmVmLCB5b3Ugc2hvdWxkIGJ1bmRsZSBpdCB2aWEgW2FwaS1yZWYtYnVuZGxlcl0oaHR0cHM6Ly9naXRodWIuY29tL3VkYW1pci9hcGktcmVmLWJ1bmRsZXIpIGZpcnN0LgoKIyMgSW5zdGFsbGF0aW9uCmBgYFNICm5wbSBpbnN0YWxsIGFsbG9mLW1lcmdlIC0tc2F2ZQpgYGAKCiMjIFVzYWdlCgojIyMgTm9kZWpzCmBgYHRzCmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnYWxsb2YtbWVyZ2UnCgpjb25zdCBkYXRhID0gewogIHR5cGU6IFsnb2JqZWN0JywgJ251bGwnXSwKICBhZGRpdGlvbmFsUHJvcGVydGllczogewogICAgdHlwZTogJ3N0cmluZycsCiAgICBtaW5MZW5ndGg6IDUKICB9LAogIGFsbE9mOiBbewogICAgdHlwZTogWydhcnJheScsICdvYmplY3QnXSwKICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7CiAgICAgIHR5cGU6ICdzdHJpbmcnLAogICAgICBtaW5MZW5ndGg6IDEwLAogICAgICBtYXhMZW5ndGg6IDIwCiAgICB9CiAgfV0KfQoKY29uc3Qgb25NZXJnZUVycm9yID0gKG1zZykgPT4gewogIHRocm93IG5ldyBFcnJvcihtc2cpCn0KCmNvbnN0IG1lcmdlZCA9IG1lcmdlKGRhdGEsIHsgb25NZXJnZUVycm9yIH0pCgpjb25zb2xlLmxvZyhtZXJnZWQpCi8vIHsKLy8gICB0eXBlOiAnb2JqZWN0JywKLy8gICBhZGRpdGlvbmFsUHJvcGVydGllczogewovLyAgICAgdHlwZTogJ3N0cmluZycsCi8vICAgICBtaW5MZW5ndGg6IDEwLAovLyAgICAgbWF4TGVuZ3RoOiAyMAovLyAgIH0KLy8gfQoKYGBgCgojIyMgQnJvd3NlcnMKCkEgYnJvd3NlciB2ZXJzaW9uIG9mIGBhbGxvZi1tZXJnZWAgaXMgYWxzbyBhdmFpbGFibGUgdmlhIENETjoKYGBgaHRtbAo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9hbGxvZi1tZXJnZUBsYXRlc3QvYnJvd3Nlci9hbGxvZi1tZXJnZS5taW4uanMiPjwvc2NyaXB0PgpgYGAKClJlZmVyZW5jZSBgYWxsb2YtbWVyZ2UubWluLmpzYCBpbiB5b3VyIEhUTUwgYW5kIHVzZSB0aGUgZ2xvYmFsIHZhcmlhYmxlIGBBbGxPZk1lcmdlYC4KYGBgSFRNTAo8c2NyaXB0PgogIHZhciBtZXJnZWQgPSBBbGxPZk1lcmdlLm1lcmdlKHsgLyogLi4uICovIH0pCjwvc2NyaXB0PgpgYGAKCiMjIERvY3VtZW50YXRpb24KCiMjIyBgbWVyZ2UoZGF0YTogYW55LCBvcHRpb25zPzogTWVyZ2VPcHRpb25zKWAKQ3JlYXRlIGEgY29weSBvZiBgZGF0YWAgd2l0aCBtZXJnZWQgYWxsT2Ygc2NoZW1hczoKCgojIyMgTWVyZ2Ugb3B0aW9ucwpgYGB0cwppbnRlcmZhY2UgTWVyZ2VPcHRpb25zIHsKICAvLyBzb3VyY2UgZG9jdW1lbnQgaWYgbWVyZ2luZyBvbmx5IHBhcnQgb2YgaXQKICAvLyAob3B0aW9uYWwpIGRlZmF1bHQgPSBkYXRhCiAgc291cmNlPzogYW55ICAgICAgICAgIAogIAogIC8vIGN1c3RvbSBtZXJnZSBydWxlcwogIC8vIChvcHRpb25hbCkgZGVmYXVsdCA9IGF1dG8gc2VsZWN0IGJhc2VkIG9uIHRoZSBpbnB1dCAoanNvblNjaGVtYU1lcmdlUnVsZXMsIG9wZW5hcGlNZXJnZVJ1bGVzLCBncmFwaGFwaU1lcmdlUnVsZXMpCiAgcnVsZXM/OiBNZXJnZVJ1bGVzICAgIAoKICAvLyBtZXJnZSAkcmVmIHdpdGggc2libGluZyBjb250ZW50CiAgLy8gKG9wdGlvbmFsKSBkZWZhdWx0ID0gZmFsc2UKICBtZXJnZVJlZlNpYmxpbmc/OiBib29sZWFuICAKCiAgLy8gbWVyZ2UgYW55T2Yvb25lT2Ygd2l0aCBzaWJsaW5nIGNvbnRlbnQKICAvLyAob3B0aW9uYWwpIGRlZmF1bHQgPSBmYWxzZQogIG1lcmdlQ29tYmluYXJ5U2libGluZz86IGJvb2xlYW4gIAoKICAvLyBNZXJnZSBlcnJvciBob29rLCBjYWxsZWQgb24gYW55IG1lcmdlIGNvbmZsaWN0cwogIG9uTWVyZ2VFcnJvcj86IChtZXNzYWdlOiBzdHJpbmcsIHBhdGg6IEpzb25QYXRoLCB2YWx1ZXM6IGFueVtdKSA9PiB2b2lkCgogIC8vIFJlZiByZXNvbHZlIGVycm9yIGhvb2ssIGNhbGxlZCBvbiBicm9rZW4gcmVmCiAgb25SZWZSZXNvbHZlRXJyb3I/OiAobWVzc2FnZTogc3RyaW5nLCBwYXRoOiBKc29uUGF0aCwgcmVmOiBzdHJpbmcpID0+IHZvaWQKfQpgYGAKCiMjIyBTdXBwb3J0ZWQgcnVsZXMKWW91IGNhbiBmaW5kIHN1cHBvcnRlZCBydWxlcyBpbiB0aGUgc3JjL3J1bGVzIGRpcmVjdG9yeSBvZiB0aGlzIHJlcG9zaXRvcnk6Ci0gYGpzb25TY2hlbWFNZXJnZVJ1bGVzKHZlcnNpb246ICJkcmFmdC0wNCIgfCAiZHJhZnQtMDYiKWAKLSBgb3BlbmFwaU1lcmdlUnVsZXModmVyc2lvbjogIjMuMC54IiB8ICIzLjEueCIpYAotIGBncmFwaGFwaU1lcmdlUnVsZXNgCgojIyBCZW5jaG1hcmsKYGBgCmFsbG9mLW1lcmdlIHggNjU3IG9wcy9zZWMgwrEyLjM1JSAoOTAgcnVucyBzYW1wbGVkKQpqc29uLXNjaGVtYS1tZXJnZS1hbGxvZiB4IDIxNyBvcHMvc2VjIMKxMi4wMyUgKDg2IHJ1bnMgc2FtcGxlZCkKRmFzdGVzdCBpcyBhbGxvZi1tZXJnZQpgYGAKCkNoZWNrIHlvdXJzZWxmOgpgYGBTSApucG0gcnVuIGJlbmNobWFyawpgYGAKCiMjIENvbnRyaWJ1dGluZwpXaGVuIGNvbnRyaWJ1dGluZywga2VlcCBpbiBtaW5kIHRoYXQgaXQgaXMgYW4gb2JqZWN0aXZlIG9mIGBhbGxvZi1tZXJnZWAgdG8gaGF2ZSBubyBhZGRpdGlvbmFsIHBhY2thZ2UgZGVwZW5kZW5jaWVzLgoKUGxlYXNlIHJ1biB0aGUgdW5pdCB0ZXN0cyBiZWZvcmUgc3VibWl0dGluZyB5b3VyIFBSOiBgeWFybiB0ZXN0YC4gSG9wZWZ1bGx5IHlvdXIgUFIgaW5jbHVkZXMgYWRkaXRpb25hbCB1bml0IHRlc3RzIHRvIGlsbHVzdHJhdGUgeW91ciBjaGFuZ2UvbW9kaWZpY2F0aW9uIQoKIyMgTGljZW5zZQoKTUlUCg== readmeEtag: '"77373c6e8c95e789f5ae568c692b315705f59c9a"' readmeLastModified: Tue, 30 Jul 2024 21:49:59 GMT repositoryId: 654923338 description: Simplify your JsonSchema by combining allOf safely. created: '2023-06-17T10:45:41Z' updated: '2024-08-26T03:29:53Z' language: TypeScript archived: false stars: 14 watchers: 2 forks: 5 owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT repoEtag: '"1aad9438503286870508b6c8b115ceb54b9a89369c6e122c7bd69301d3956293"' repoLastModified: Mon, 26 Aug 2024 03:29:53 GMT foundInMaster: true - source: https://openapi.tools/ name: api-ref-bundler category: - Converters repository: https://github.com/udamir/api-ref-bundler language: TypeScript source_description: Bundle all external $ref in Json based API document into single document v2: true v3: true v3_1: true id: 2ad0c45112ccac96da3d99c14521db3b repositoryMetadata: base64Readme: >- IyBhcGktcmVmLWJ1bmRsZXIKPGltZyBhbHQ9Im5wbSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2FwaS1yZWYtYnVuZGxlciI+IDxpbWcgYWx0PSJucG0iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vYXBpLXJlZi1idW5kbGVyP2xhYmVsPW5wbSI+ICFbR2l0SHViIFdvcmtmbG93IFN0YXR1cyAod2l0aCBldmVudCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3VkYW1pci9hcGktcmVmLWJ1bmRsZXIvbm9kZS5qcy55bWwpIDxpbWcgYWx0PSJucG0gdHlwZSBkZWZpbml0aW9ucyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS90eXBlcy9hcGktcmVmLWJ1bmRsZXIiPiA8aW1nIGFsdD0iR2l0SHViIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvdWRhbWlyL2FwaS1yZWYtYnVuZGxlciI+CgpUaGlzIHBhY2thZ2UgcHJvdmlkZXMgdXRpbHMgdG8gcmVzb2x2ZSBhbGwgZXh0ZXJuYWwvaW50ZXJuYWwgcmVmZXJlbmNlcyBpbiBKc29uIGJhc2VkIEFQSSBkb2N1bWVudCBhbmQgYnVuZGxlL2RlcmVmZXJlbmNlIGludG8gc2luZ2xlIGRvY3VtZW50CgojIyBXb3JrcyBwZXJmZWN0bHkgd2l0aCBBUEkgc3BlY2lmaWNhdGlvbnMKCi0gW0pzb25TY2hlbWFdKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvanNvbi1zY2hlbWEtY29yZS5odG1sKQotIFtTd2FnZ2VyIDIueF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItc3BlYy9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQpCi0gW09wZW5BcGkgMy54XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4wLjMubWQpCi0gW0FzeW5jQXBpIDIueF0oaHR0cHM6Ly93d3cuYXN5bmNhcGkuY29tL2RvY3Mvc3BlY2lmaWNhdGlvbnMvdjIuNC4wKQotIH5+W0FzeW5jQXBpIDMueF0oaHR0cHM6Ly93d3cuYXN5bmNhcGkuY29tL2RvY3MvcmVmZXJlbmNlL3NwZWNpZmljYXRpb24vdjMuMC4wKX5+IChyb2FkbWFwKQoKIyMgRmVhdHVyZXMKLSBidW5kbGUgYWxsIGV4dGVybmFsIHJlZnMgaW4gc2lnbmxlIGRvY3VtZW50Ci0gY29udmVydHMgZXh0ZXJuYWwgcmVmZXJlbmNlcyBpbnRvIGludGVybmFsCi0gc3VwcG9ydCBmdWxsIGFuZCBwYXJ0aWFsIGRlcmVmZXJlbmNlCi0gc3VwcG9ydCBleHRlcm5hbCAnLm1kJyByZWZlcmVuY2VzCi0gc3VwcG9ydCBmb3IgYWxsIGtpbmRzIG9mIGNpcmN1bGFyaXR5Ci0gbm8gY29uY2VwdCBvZiByZXNvbHZlcnMgLSB5b3UgYXJlIGluIGNoYXJnZSBvZiB0aGUgd2hvbGUgcmVhZGluZyAmIHBhdGggcGFyc2luZyBwcm9jZXNzCi0gbm8gcGFyc2VyIGluY2x1ZGVkIC0gYnJpbmcgeW91ciBvd24hCi0gVHlwZXNjcmlwdCBzeW50YXggc3VwcG9ydCBvdXQgb2YgdGhlIGJveAotIE5vIGRlcGVuZGVuY2llcywgY2FuIGJlIHVzZWQgaW4gbm9kZWpzIG9yIGJyb3dzZXIKCiMjIEluc3RhbGxhdGlvbgpgYGBTSApucG0gaW5zdGFsbCBhcGktcmVmLWJ1bmRsZXIgLS1zYXZlCmBgYAoKIyMgVXNhZ2UKCiMjIyBOb2RlanMKYGBgdHMKaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcycKaW1wb3J0IHsgYnVuZGxlLCBkZXJlZmVyZW5jZSB9IGZyb20gJ2FwaS1yZWYtYnVuZGxlcicKCmNvbnN0IHJlc29sdmVyID0gYXN5bmMgKHNvdXJjZVBhdGgpID0+IHsKICBjb25zdCBkYXRhID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKF9fZGlybmFtZSwgIi4vIiwgc291cmNlUGF0aCksICJ1dGY4IikKICByZXR1cm4gc291cmNlUGF0aC5zbGljZSgtMykgPT09ICIubWQiID8gZGF0YSA6IEpTT04ucGFyc2UoZGF0YSkgICAgICAKfQoKLy8gYnVuZGxlIChjb252ZXJ0IGFsbCBleHRlcm5hbCByZWZzIHRvIGludGVybmFsKQpidW5kbGUoInNjaGVtYS5qc29uIiwgcmVzb2x2ZXIsIHsgaWdub3JlU2libGluZzogdHJ1ZSB9KS50aGVuKHNjaGVtYSA9PiB7CiAgY29uc29sZS5sb2coc2NoZW1hKQp9KS5jYXRjaChlcnJvcnMgPT4gewogIGNvbnNvbGUubG9nKGVycm9ycykKfSkKCmNvbnN0IG9uRXJyb3JIb29rID0gKG1zZzogc3RyaW5nKSA9PiB7CiAgdGhyb3cgbmV3IEVycm9yKG1zZykKfQoKLy8gZnVsbCBkZXJlZmVyZW5jZSAocmVtb3ZlIGFsbCByZWZzKQpkZXJlZmVyZW5jZSgic2NoZW1hLmpzb24iLCByZXNvbHZlciwgeyBob29rczogeyBvbkVycm9yOiBvbkVycm9ySG9vayB9fSkudGhlbihzY2hlbWEgPT4gewogIGNvbnNvbGUubG9nKHNjaGVtYSkKfSkuY2F0Y2goZXJyb3JzID0+IHsKICBjb25zb2xlLmxvZyhlcnJvcnMpCn0pCgovLyBwYXJ0aWFsIGRlcmVmZXJlbmNlIChyZW1vdmUgYWxsIHJlZnMgaW4gcGF0aCAnL3Byb3BlcnRpZXMvZm9vJykKZGVyZWZlcmVuY2UoInNjaGVtYS5qc29uIy9wcm9wZXJ0aWVzL2ZvbyIsIHJlc29sdmVyKS50aGVuKGZvbyA9PiB7CiAgY29uc29sZS5sb2coZm9vKQp9KS5jYXRjaChlcnJvcnMgPT4gewogIGNvbnNvbGUubG9nKGVycm9ycykKfSkKCmBgYAoKIyMjIyBCdW5kbGUgb3B0aW9ucwpgYGB0cwppbnRlcmZhY2UgQnVuZGxlT3B0aW9ucyB7CiAgaWdub3JlU2libGluZz86IGJvb2xlYW4gICAgIC8vIGlnbm9yZSAkcmVmIHNpYmxpbmcgY29udGVudAogIGhvb2tzPzogewogICAgb25FcnJvcj86IChtZXNzYWdlOiBzdHJpbmcsIGN0eDogQnVuZGxlQ29udGV4dCkgPT4gdm9pZCAvLyBlcnJvciBob29rCiAgICBvblJlZj86IChyZWY6IHN0cmluZywgY3R4OiBCdW5kbGVDb250ZXh0KSA9PiB2b2lkICAgICAgIC8vIHJlZiBob29rCiAgICBvbkNyYXdsPzogKHZhbHVlOiBhbnksIGN0eDogQnVuZGxlQ29udGV4dCkgPT4gdm9pZCAgICAgIC8vIG5vZGUgY3Jhd2wgaG9vawogICAgb25FeGl0PzogKHZhbHVlOiBhbnksIGN0eDogQnVuZGxlQ29udGV4dCkgPT4gdm9pZCAgICAgIC8vIG5vZGUgY3Jhd2wgZXhpdCBob29rCiAgfQp9CmBgYAoKIyMjIyBEZXJlZmVyZW5jZSBvcHRpb25zCmBgYHRzCmludGVyZmFjZSBEZXJlZmVyZW5jZU9wdGlvbnMgewogIGlnbm9yZVNpYmxpbmc/OiBib29sZWFuICAgLy8gaWdub3JlICRyZWYgc2libGluZyBjb250ZW50CiAgZnVsbENyYXdsPzogYm9vbGVhbiAgICAgICAvLyBjcmF3bCBhbGwgbm9kZXMgaW5jbHVkaW4gY2FjaGVkCiAgZW5hYmxlQ2lyY3VsYXI/OiBib29sZWFuICAvLyBjb252ZXJ0IGNpcmN1bGFyICRyZWZzIHRvIG5vZGVzCiAgaG9va3M/OiB7CiAgICBvbkVycm9yPzogKG1lc3NhZ2U6IHN0cmluZywgY3R4OiBEZXJlZmVyZW5jZUNvbnRleHQpID0+IHZvaWQgIC8vIGVycm9yIGhvb2sKICAgIG9uUmVmPzogKHJlZjogc3RyaW5nLCBjdHg6IERlcmVmZXJlbmNlQ29udGV4dCkgPT4gdm9pZCAgICAgICAgLy8gcmVmIGhvb2sKICAgIG9uQ3Jhd2w/OiAodmFsdWU6IGFueSwgY3R4OiBEZXJlZmVyZW5jZUNvbnRleHQpID0+IHZvaWQgICAgICAgLy8gbm9kZSBjcmF3bCBob29rCiAgICBvbkV4aXQ/OiAodmFsdWU6IGFueSwgY3R4OiBEZXJlZmVyZW5jZUNvbnRleHQpID0+IHZvaWQgICAgICAgLy8gbm9kZSBjcmF3bCBleGl0IGhvb2sKICAgIG9uQ3ljbGU/OiAocmVmOiBzdHJpbmcsIGN0eDogRGVyZWZlcmVuY2VDb250ZXh0KSA9PiB2b2lkICAgICAgLy8gY3ljbGUgcmVmcyBob29rCiAgfQp9CmBgYAoKIyMjIEJyb3dzZXJzCgpBIGJyb3dzZXIgdmVyc2lvbiBvZiBgYXBpLXJlZi1idW5kbGVyYCBpcyBhbHNvIGF2YWlsYWJsZSB2aWEgQ0ROOgpgYGBodG1sCjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2FwaS1yZWYtYnVuZGxlckBsYXRlc3QiPjwvc2NyaXB0PgpgYGAKClJlZmVyZW5jZSBgYXBpLXJlZi1idW5kbGVyYCBpbiB5b3VyIEhUTUwgYW5kIHVzZSB0aGUgZ2xvYmFsIHZhcmlhYmxlIGBBcGlSZWZCdW5kbGVyYC4KYGBgSFRNTAo8c2NyaXB0PgogIGNvbnN0IHJlc29sdmVyID0gYXN5bmMgKHNvdXJjZVBhdGgpID0+IHsKICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaChzb3VyY2VQYXRoKQogICAgcmV0dXJuIHNvdXJjZVBhdGguc2xpY2UoLTMpID09PSAiLm1kIiA/IGRhdGEudGV4dCgpIDogZGF0YS5qc29uKCkKICB9CgogIEFwaVJlZkJ1bmRsZXIuYnVuZGxlKCJodHRwOi8vZXhhbXBsZS5jb20vc2NoZW1hIiwgcmVzb2x2ZXIpLnRoZW4oc2NoZW1hID0+IHsKICAgIGNvbnNvbGUubG9nKHNjaGVtYSkKICB9KS5jYXRjaChlcnJvcnMgPT4gewogICAgY29uc29sZS5sb2coZXJyb3JzKQogIH0pICAKPC9zY3JpcHQ+CmBgYAoKIyMgQ29udHJpYnV0aW5nCldoZW4gY29udHJpYnV0aW5nLCBrZWVwIGluIG1pbmQgdGhhdCBpdCBpcyBhbiBvYmplY3RpdmUgb2YgYGFwaS1yZWYtYnVuZGxlcmAgdG8gaGF2ZSBubyBwYWNrYWdlIGRlcGVuZGVuY2llcy4gVGhpcyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUsIGJ1dCBmb3Igbm93LCBuby1kZXBlbmRlbmNpZXMuCgpQbGVhc2UgcnVuIHRoZSB1bml0IHRlc3RzIGJlZm9yZSBzdWJtaXR0aW5nIHlvdXIgUFI6IGBucG0gdGVzdGAuIEhvcGVmdWxseSB5b3VyIFBSIGluY2x1ZGVzIGFkZGl0aW9uYWwgdW5pdCB0ZXN0cyB0byBpbGx1c3RyYXRlIHlvdXIgY2hhbmdlL21vZGlmaWNhdGlvbiEKCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"404607abb831b9dab5365bb8b7c0e71c1f4d2a57"' readmeLastModified: Sat, 06 Jul 2024 06:42:50 GMT repositoryId: 507419359 description: Bundle all external $ref in Json based API document into single document created: '2022-06-25T21:21:05Z' updated: '2024-07-06T06:42:54Z' language: TypeScript archived: false stars: 15 watchers: 1 forks: 2 owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT repoEtag: '"e166ee8e24a66be8755450c642528025afe3a67293b02448aafce5c5c644f74e"' repoLastModified: Sat, 06 Jul 2024 06:42:54 GMT foundInMaster: true - source: https://openapi.tools/ name: rswag category: - DSL - Parsers language: ruby repository: https://github.com/rswag/rswag source_description: >- Rswag extends rspec-rails request specs with a Swagger-based DSL for describing and testing API operations. link: https://github.com/rswag/rswag v2: false v3: true v3_1: false id: deff653b64eefc96f65009006866b9a2 repositoryMetadata: base64Readme: >- PCEtLSBjc3BlbGw6aWdub3JlIGFsbG9mIGFueW9mIG9uZW9mIHNwZWNpZnlpbmd0ZXN0aW5nIC0tPgoKcnN3YWcKPT09PT09PT09ClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL3Jzd2FnL3Jzd2FnL2FjdGlvbnMvd29ya2Zsb3dzL3J1YnkueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9naXRodWIuY29tL3Jzd2FnL3Jzd2FnL2FjdGlvbnMvd29ya2Zsb3dzL3J1YnkueW1sP3F1ZXJ5PWJyYW5jaCUzQW1hc3RlcispClshW01haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy8xMTc1Yjk4NGVkYzQ2MTBmODJhYi9tYWludGFpbmFiaWxpdHkpXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvcnN3YWcvcnN3YWcvbWFpbnRhaW5hYmlsaXR5KQoKT3BlbkFwaSAzLjAgYW5kIFN3YWdnZXIgMi4wIGNvbXBhdGlibGUhCgpTZWVraW5nIG1haW50YWluZXJzISBHb3QgYSBwZXQtYnVnIHRoYXQgbmVlZHMgZml4aW5nPyBKdXN0IGxldCB1cyBrbm93IGluIHlvdXIgaXNzdWUvcHIgdGhhdCB5b3UnZCBsaWtlIHRvIHN0ZXAgdXAgdG8gaGVscC4KClJzd2FnIGV4dGVuZHMgcnNwZWMtcmFpbHMgInJlcXVlc3Qgc3BlY3MiIHdpdGggYSBTd2FnZ2VyLWJhc2VkIERTTCBmb3IgZGVzY3JpYmluZyBhbmQgdGVzdGluZyBBUEkgb3BlcmF0aW9ucy4gWW91IGRlc2NyaWJlIHlvdXIgQVBJIG9wZXJhdGlvbnMgd2l0aCBhIHN1Y2NpbmN0LCBpbnR1aXRpdmUgc3ludGF4LCBhbmQgaXQgYXV0b21hdGljYWxseSBydW5zIHRoZSB0ZXN0cy4gT25jZSB5b3UgaGF2ZSBncmVlbiB0ZXN0cywgcnVuIGEgcmFrZSB0YXNrIHRvIGF1dG8tZ2VuZXJhdGUgY29ycmVzcG9uZGluZyBTd2FnZ2VyIGZpbGVzIGFuZCBleHBvc2UgdGhlbSBhcyBZQU1MIG9yIEpTT04gZW5kcG9pbnRzLiBSc3dhZyBhbHNvIHByb3ZpZGVzIGFuIGVtYmVkZGVkIHZlcnNpb24gb2YgdGhlIGF3ZXNvbWUgW3N3YWdnZXItdWldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKSB0aGF0J3MgcG93ZXJlZCBieSB0aGUgZXhwb3NlZCBmaWxlLiBUaGlzIHRvb2xjaGFpbiBtYWtlcyBpdCBzZWFtbGVzcyB0byBnbyBmcm9tIGludGVncmF0aW9uIHNwZWNzLCB3aGljaCB5b3UncmUgcHJvYmFibHkgZG9pbmcgaW4gc29tZSBmb3JtIGFscmVhZHksIHRvIGxpdmluZyBkb2N1bWVudGF0aW9uIGZvciB5b3VyIEFQSSBjb25zdW1lcnMuCgpBcGkgUnN3YWcgY3JlYXRlcyBbU3dhZ2dlcl0oaHR0cDovL3N3YWdnZXIuaW8pIHRvb2xpbmcgZm9yIFJhaWxzIEFQSSdzLiBHZW5lcmF0ZSBiZWF1dGlmdWwgQVBJIGRvY3VtZW50YXRpb24sIGluY2x1ZGluZyBhIFVJIHRvIGV4cGxvcmUgYW5kIHRlc3Qgb3BlcmF0aW9ucywgZGlyZWN0bHkgZnJvbSB5b3VyIHJzcGVjIGludGVncmF0aW9uIHRlc3RzLgoKCkFuZCB0aGF0J3Mgbm90IGFsbCAuLi4KCk9uY2UgeW91IGhhdmUgYW4gQVBJIHRoYXQgY2FuIGRlc2NyaWJlIGl0c2VsZiBpbiBTd2FnZ2VyLCB5b3UndmUgb3BlbmVkIHRoZSB0cmVhc3VyZSBjaGVzdCBvZiBTd2FnZ2VyLWJhc2VkIHRvb2xzIGluY2x1ZGluZyBhIGNsaWVudCBnZW5lcmF0b3IgdGhhdCBjYW4gYmUgdGFyZ2V0ZWQgdG8gYSB3aWRlIHJhbmdlIG9mIHBvcHVsYXIgcGxhdGZvcm1zLiBTZWUgW3N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikgZm9yIG1vcmUgZGV0YWlscy4KCjwhLS0gU1RBUlQgZG9jdG9jIGdlbmVyYXRlZCBUT0MgcGxlYXNlIGtlZXAgY29tbWVudCBoZXJlIHRvIGFsbG93IGF1dG8gdXBkYXRlIC0tPgoqKlRhYmxlIG9mIENvbnRlbnRzKioKCi0gW3Jzd2FnXSgjcnN3YWcpCiAgLSBbQ29tcGF0aWJpbGl0eV0oI2NvbXBhdGliaWxpdHkpCiAgLSBbR2V0dGluZyBTdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKQogIC0gW1RoZSByc3BlYyBEU0xdKCN0aGUtcnNwZWMtZHNsKQogICAgLSBbUGF0aHMsIE9wZXJhdGlvbnMgYW5kIFJlc3BvbnNlc10oI3BhdGhzLW9wZXJhdGlvbnMtYW5kLXJlc3BvbnNlcykKICAgIC0gW051bGwgVmFsdWVzXSgjbnVsbC12YWx1ZXMpCiAgICAtIFtTdXBwb3J0IGZvciBvbmVPZiwgYW55T2Ygb3IgQWxsT2Ygc2NoZW1hc10oI3N1cHBvcnQtZm9yLW9uZW9mLWFueW9mLW9yLWFsbG9mLXNjaGVtYXMpCiAgICAtIFtHbG9iYWwgTWV0YWRhdGFdKCNnbG9iYWwtbWV0YWRhdGEpCiAgICAgIC0gW1N1cHBvcnRpbmcgbXVsdGlwbGUgdmVyc2lvbnMgb2YgQVBJXSgjc3VwcG9ydGluZy1tdWx0aXBsZS12ZXJzaW9ucy1vZi1hcGkpCiAgICAgIC0gW0Zvcm1hdHRpbmcgdGhlIGRlc2NyaXB0aW9uIGxpdGVyYWxzOl0oI2Zvcm1hdHRpbmctdGhlLWRlc2NyaXB0aW9uLWxpdGVyYWxzKQogICAgLSBbU3BlY2lmeWluZy9UZXN0aW5nIEFQSSBTZWN1cml0eV0oI3NwZWNpZnlpbmd0ZXN0aW5nLWFwaS1zZWN1cml0eSkKICAtIFtDb25maWd1cmF0aW9uICYgQ3VzdG9taXphdGlvbl0oI2NvbmZpZ3VyYXRpb24tLWN1c3RvbWl6YXRpb24pCiAgICAtIFtPdXRwdXQgTG9jYXRpb24gZm9yIEdlbmVyYXRlZCBTd2FnZ2VyIEZpbGVzXSgjb3V0cHV0LWxvY2F0aW9uLWZvci1nZW5lcmF0ZWQtc3dhZ2dlci1maWxlcykKICAgIC0gW0lucHV0IExvY2F0aW9uIGZvciBSc3BlYyBUZXN0c10oI2lucHV0LWxvY2F0aW9uLWZvci1yc3BlYy10ZXN0cykKICAgIC0gW1JlZmVyZW5jZWQgUGFyYW1ldGVycyBhbmQgU2NoZW1hIERlZmluaXRpb25zXSgjcmVmZXJlbmNlZC1wYXJhbWV0ZXJzLWFuZC1zY2hlbWEtZGVmaW5pdGlvbnMpCiAgICAtIFtSZXF1ZXN0IGV4YW1wbGVzXSgjcmVxdWVzdC1leGFtcGxlcykKICAgIC0gW1Jlc3BvbnNlIGhlYWRlcnNdKCNyZXNwb25zZS1oZWFkZXJzKQogICAgICAtIFtOdWxsYWJsZSBvciBPcHRpb25hbCBSZXNwb25zZSBIZWFkZXJzXSgjbnVsbGFibGUtb3Itb3B0aW9uYWwtcmVzcG9uc2UtaGVhZGVycykKICAgIC0gW1Jlc3BvbnNlIGV4YW1wbGVzXSgjcmVzcG9uc2UtZXhhbXBsZXMpCiAgICAtIFtFbmFibGUgYXV0byBnZW5lcmF0aW9uIGV4YW1wbGVzIGZyb20gcmVzcG9uc2VzXSgjZW5hYmxlLWF1dG8tZ2VuZXJhdGlvbi1leGFtcGxlcy1mcm9tLXJlc3BvbnNlcykKICAgICAgLSBbRHJ5IFJ1biBPcHRpb25dKCNkcnktcnVuLW9wdGlvbikKICAgICAgLSBbUnVubmluZyB0ZXN0cyB3aXRob3V0IGRvY3VtZW50aW5nXSgjcnVubmluZy10ZXN0cy13aXRob3V0LWRvY3VtZW50aW5nKQogICAgICAgIC0gW3Jzd2FnIGhlbHBlciBtZXRob2RzXSgjcnN3YWctaGVscGVyLW1ldGhvZHMpCiAgICAtIFtSb3V0ZSBQcmVmaXggZm9yIFN3YWdnZXIgSlNPTiBFbmRwb2ludHNdKCNyb3V0ZS1wcmVmaXgtZm9yLXN3YWdnZXItanNvbi1lbmRwb2ludHMpCiAgICAtIFtSb290IExvY2F0aW9uIGZvciBTd2FnZ2VyIEZpbGVzXSgjcm9vdC1sb2NhdGlvbi1mb3Itc3dhZ2dlci1maWxlcykKICAgIC0gW0R5bmFtaWMgVmFsdWVzIGZvciBTd2FnZ2VyIEpTT05dKCNkeW5hbWljLXZhbHVlcy1mb3Itc3dhZ2dlci1qc29uKQogICAgLSBbQ3VzdG9tIEhlYWRlcnMgZm9yIFN3YWdnZXIgRmlsZXNdKCNjdXN0b20taGVhZGVycy1mb3Itc3dhZ2dlci1maWxlcykKICAgIC0gW0VuYWJsZSBTd2FnZ2VyIEVuZHBvaW50cyBmb3Igc3dhZ2dlci11aV0oI2VuYWJsZS1zd2FnZ2VyLWVuZHBvaW50cy1mb3Itc3dhZ2dlci11aSkKICAgIC0gW0VuYWJsZSBTaW1wbGUgQmFzaWMgQXV0aCBmb3Igc3dhZ2dlci11aV0oI2VuYWJsZS1zaW1wbGUtYmFzaWMtYXV0aC1mb3Itc3dhZ2dlci11aSkKICAgIC0gW1JvdXRlIFByZWZpeCBmb3IgdGhlIHN3YWdnZXItdWldKCNyb3V0ZS1wcmVmaXgtZm9yLXRoZS1zd2FnZ2VyLXVpKQogICAgLSBbQ3VzdG9taXppbmcgdGhlIHN3YWdnZXItdWldKCNjdXN0b21pemluZy10aGUtc3dhZ2dlci11aSkKICAgIC0gW1NlcnZlIFVJIEFzc2V0cyBEaXJlY3RseSBmcm9tIHlvdXIgV2ViIFNlcnZlcl0oI3NlcnZlLXVpLWFzc2V0cy1kaXJlY3RseS1mcm9tLXlvdXItd2ViLXNlcnZlcikKCjwhLS0gRU5EIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KCgoKIyMgR2V0dGluZyBTdGFydGVkICMjCgoxLiBBZGQgdGhpcyBsaW5lIHRvIHlvdXIgYXBwbGljYXRpb25zIF9HZW1maWxlXzoKCiAgICBgYGBydWJ5CiAgICBnZW0gJ3Jzd2FnJwogICAgYGBgCgogICAgb3IgaWYgeW91IGxpa2UgdG8gYXZvaWQgbG9hZGluZyByc3BlYyBpbiBvdGhlciBidW5kbGVyIGdyb3VwcyBsb2FkIHRoZSByc3dhZy1zcGVjcyBjb21wb25lbnQgc2VwYXJhdGVseS4KICAgIE5vdGU6IEFkZGluZyBpdCB0byB0aGUgOmRldmVsb3BtZW50IGdyb3VwIGlzIG5vdCBzdHJpY3RseSBuZWNlc3NhcnksIGJ1dCB3aXRob3V0IGl0LCBnZW5lcmF0b3JzIGFuZCByYWtlIHRhc2tzIG11c3QgYmUgcHJlY2VkZWQgYnkgUkFJTFNfRU5WPXRlc3QuCgogICAgYGBgcnVieQogICAgIyBHZW1maWxlCiAgICBnZW0gJ3Jzd2FnLWFwaScKICAgIGdlbSAncnN3YWctdWknCgogICAgZ3JvdXAgOmRldmVsb3BtZW50LCA6dGVzdCBkbwogICAgICBnZW0gJ3JzcGVjLXJhaWxzJwogICAgICBnZW0gJ3Jzd2FnLXNwZWNzJwogICAgZW5kCiAgICBgYGAKCjIuIFJ1biB0aGUgaW5zdGFsbCBnZW5lcmF0b3IKCiAgICBgYGBydWJ5CiAgICByYWlscyBnIHJzd2FnOmluc3RhbGwKICAgIGBgYAoKICAgIE9yIHJ1biB0aGUgaW5zdGFsbCBnZW5lcmF0b3JzIGZvciBlYWNoIHBhY2thZ2Ugc2VwYXJhdGVseSBpZiB5b3UgaW5zdGFsbGVkIFJzd2FnIGFzIHNlcGFyYXRlIGdlbXMsIGFzIGluZGljYXRlZCBhYm92ZToKCiAgICBgYGBydWJ5CiAgICByYWlscyBnIHJzd2FnOmFwaTppbnN0YWxsCiAgICByYWlscyBnIHJzd2FnOnVpOmluc3RhbGwKICAgIFJBSUxTX0VOVj10ZXN0IHJhaWxzIGcgcnN3YWc6c3BlY3M6aW5zdGFsbAogICAgYGBgCgozLiBDcmVhdGUgYW4gaW50ZWdyYXRpb24gc3BlYyB0byBkZXNjcmliZSBhbmQgdGVzdCB5b3VyIEFQSS4KVGhlcmUgaXMgYWxzbyBhIGdlbmVyYXRvciB3aGljaCBjYW4gaGVscCBnZXQgeW91IHN0YXJ0ZWQgYHJhaWxzIGdlbmVyYXRlIHJzcGVjOnN3YWdnZXIgQVBJOjpNeUNvbnRyb2xsZXJgCgogICAgYGBgcnVieQogICAgIyBzcGVjL3JlcXVlc3RzL2Jsb2dzX3NwZWMucmIKICAgIHJlcXVpcmUgJ3N3YWdnZXJfaGVscGVyJwoKICAgIGRlc2NyaWJlICdCbG9ncyBBUEknIGRvCgogICAgICBwYXRoICcvYmxvZ3MnIGRvCgogICAgICAgIHBvc3QgJ0NyZWF0ZXMgYSBibG9nJyBkbwogICAgICAgICAgdGFncyAnQmxvZ3MnCiAgICAgICAgICBjb25zdW1lcyAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgIHBhcmFtZXRlciBuYW1lOiA6YmxvZywgaW46IDpib2R5LCBzY2hlbWE6IHsKICAgICAgICAgICAgdHlwZTogOm9iamVjdCwKICAgICAgICAgICAgcHJvcGVydGllczogewogICAgICAgICAgICAgIHRpdGxlOiB7IHR5cGU6IDpzdHJpbmcgfSwKICAgICAgICAgICAgICBjb250ZW50OiB7IHR5cGU6IDpzdHJpbmcgfQogICAgICAgICAgICB9LAogICAgICAgICAgICByZXF1aXJlZDogWyAndGl0bGUnLCAnY29udGVudCcgXQogICAgICAgICAgfQoKICAgICAgICAgIHJlc3BvbnNlICcyMDEnLCAnYmxvZyBjcmVhdGVkJyBkbwogICAgICAgICAgICBsZXQoOmJsb2cpIHsgeyB0aXRsZTogJ2ZvbycsIGNvbnRlbnQ6ICdiYXInIH0gfQogICAgICAgICAgICBydW5fdGVzdCEKICAgICAgICAgIGVuZAoKICAgICAgICAgIHJlc3BvbnNlICc0MjInLCAnaW52YWxpZCByZXF1ZXN0JyBkbwogICAgICAgICAgICBsZXQoOmJsb2cpIHsgeyB0aXRsZTogJ2ZvbycgfSB9CiAgICAgICAgICAgIHJ1bl90ZXN0IQogICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICAgIGVuZAoKICAgICAgcGF0aCAnL2Jsb2dzL3tpZH0nIGRvCgogICAgICAgIGdldCAnUmV0cmlldmVzIGEgYmxvZycgZG8KICAgICAgICAgIHRhZ3MgJ0Jsb2dzJywgJ0Fub3RoZXIgVGFnJwogICAgICAgICAgcHJvZHVjZXMgJ2FwcGxpY2F0aW9uL2pzb24nLCAnYXBwbGljYXRpb24veG1sJwogICAgICAgICAgcGFyYW1ldGVyIG5hbWU6IDppZCwgaW46IDpwYXRoLCB0eXBlOiA6c3RyaW5nCiAgICAgICAgICByZXF1ZXN0X2JvZHlfZXhhbXBsZSB2YWx1ZTogeyBzb21lX2ZpZWxkOiAnRm9vJyB9LCBuYW1lOiAnYmFzaWMnLCBzdW1tYXJ5OiAnUmVxdWVzdCBleGFtcGxlIGRlc2NyaXB0aW9uJwoKICAgICAgICAgIHJlc3BvbnNlICcyMDAnLCAnYmxvZyBmb3VuZCcgZG8KICAgICAgICAgICAgc2NoZW1hIHR5cGU6IDpvYmplY3QsCiAgICAgICAgICAgICAgcHJvcGVydGllczogewogICAgICAgICAgICAgICAgaWQ6IHsgdHlwZTogOmludGVnZXIgfSwKICAgICAgICAgICAgICAgIHRpdGxlOiB7IHR5cGU6IDpzdHJpbmcgfSwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHsgdHlwZTogOnN0cmluZyB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZXF1aXJlZDogWyAnaWQnLCAndGl0bGUnLCAnY29udGVudCcgXQoKICAgICAgICAgICAgbGV0KDppZCkgeyBCbG9nLmNyZWF0ZSh0aXRsZTogJ2ZvbycsIGNvbnRlbnQ6ICdiYXInKS5pZCB9CiAgICAgICAgICAgIHJ1bl90ZXN0IQogICAgICAgICAgZW5kCgogICAgICAgICAgcmVzcG9uc2UgJzQwNCcsICdibG9nIG5vdCBmb3VuZCcgZG8KICAgICAgICAgICAgbGV0KDppZCkgeyAnaW52YWxpZCcgfQogICAgICAgICAgICBydW5fdGVzdCEKICAgICAgICAgIGVuZAoKICAgICAgICAgIHJlc3BvbnNlICc0MDYnLCAndW5zdXBwb3J0ZWQgYWNjZXB0IGhlYWRlcicgZG8KICAgICAgICAgICAgbGV0KDonQWNjZXB0JykgeyAnYXBwbGljYXRpb24vZm9vJyB9CiAgICAgICAgICAgIHJ1bl90ZXN0IQogICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICAgIGVuZAogICAgZW5kCiAgICBgYGAKQnkgZGVmYXVsdCwgdGhlIGFib3ZlIGNvbW1hbmQgd2lsbCBjcmVhdGUgc3BlYyB1bmRlciBfc3BlYy9yZXF1ZXN0c18gZm9sZGVyLiBZb3UgY2FuIHBhc3MgYW4gb3B0aW9uIHRvIGNoYW5nZSB0aGlzIGRlZmF1bHQgcGF0aCBhcyBpbiBgcmFpbHMgZ2VuZXJhdGUgcnNwZWM6c3dhZ2dlciBBUEk6OkJsb2dzQ29udHJvbGxlciAtLXNwZWNfcGF0aCBpbnRlZ3JhdGlvbmAuClRoaXMgd2lsbCBjcmVhdGUgdGhlIHNwZWMgZmlsZSBfc3BlYy9pbnRlZ3JhdGlvbi9ibG9nc19zcGVjLnJiXwoKNC4gR2VuZXJhdGUgdGhlIFN3YWdnZXIgSlNPTiBmaWxlKHMpCgogICAgYGBgcnVieQogICAgcmFrZSByc3dhZzpzcGVjczpzd2FnZ2VyaXplCiAgICBgYGAKCiAgICBUaGlzIGNvbW1vbiBjb21tYW5kIGlzIGFsc28gYWxpYXNlZCBhcyBgcmFrZSByc3dhZ2AuCgogICAgT3IgaWYgeW91IGluc3RhbGxlZCB5b3VyIGdlbXMgc2VwYXJhdGVseToKICAgIGBgYAogICAgUkFJTFNfRU5WPXRlc3QgcmFpbHMgcnN3YWcKICAgIGBgYAoKNS4gU3BpbiB1cCB5b3VyIGFwcCBhbmQgY2hlY2sgb3V0IHRoZSBhd2Vzb21lLCBhdXRvLWdlbmVyYXRlZCBkb2NzIGF0IF8vYXBpLWRvY3NfIQoKIyMgVGhlIHJzcGVjIERTTCAjIwoKIyMjIFBhdGhzLCBPcGVyYXRpb25zIGFuZCBSZXNwb25zZXMgIyMjCgpJZiB5b3UndmUgdXNlZCBbU3dhZ2dlcl0oaHR0cDovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbikgYmVmb3JlLCB0aGVuIHRoZSBzeW50YXggc2hvdWxkIGJlIHZlcnkgZmFtaWxpYXIuIFRvIGRlc2NyaWJlIHlvdXIgQVBJIG9wZXJhdGlvbnMsIHN0YXJ0IGJ5IHNwZWNpZnlpbmcgYSBwYXRoIGFuZCB0aGVuIGxpc3QgdGhlIHN1cHBvcnRlZCBvcGVyYXRpb25zIChpLmUuIEhUVFAgdmVyYnMpIGZvciB0aGF0IHBhdGguIFBhdGggcGFyYW1ldGVycyBtdXN0IGJlIHN1cnJvdW5kZWQgYnkgY3VybHkgYnJhY2VzICh7fSkuIFdpdGhpbiBhbiBvcGVyYXRpb24gYmxvY2sgKHNlZSAicG9zdCIgb3IgImdldCIgaW4gdGhlIGV4YW1wbGUgYWJvdmUpLCBtb3N0IG9mIHRoZSBmaWVsZHMgc3VwcG9ydGVkIGJ5IHRoZSBbU3dhZ2dlciAiT3BlcmF0aW9uIiBvYmplY3RdKGh0dHA6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI29wZXJhdGlvbk9iamVjdCkgYXJlIGF2YWlsYWJsZSBhcyBtZXRob2RzIG9uIHRoZSBleGFtcGxlIGdyb3VwLiBUbyBsaXN0IChhbmQgdGVzdCkgdGhlIHZhcmlvdXMgcmVzcG9uc2VzIGZvciBhbiBvcGVyYXRpb24sIGNyZWF0ZSBvbmUgb3IgbW9yZSByZXNwb25zZSBibG9ja3MuIEFnYWluLCB5b3UgY2FuIHJlZmVyZW5jZSB0aGUgW1N3YWdnZXIgIlJlc3BvbnNlIiBvYmplY3RdKGh0dHA6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI3Jlc3BvbnNlT2JqZWN0KSBmb3IgYXZhaWxhYmxlIGZpZWxkcy4KClRha2Ugc3BlY2lhbCBub3RlIG9mIHRoZSBfX3J1bl90ZXN0IV9fIG1ldGhvZCB0aGF0J3MgY2FsbGVkIHdpdGhpbiBlYWNoIHJlc3BvbnNlIGJsb2NrLiBUaGlzIHRlbGxzIHJzd2FnIHRvIGNyZWF0ZSBhbmQgZXhlY3V0ZSBhIGNvcnJlc3BvbmRpbmcgZXhhbXBsZS4gSXQgYnVpbGRzIGFuZCBzdWJtaXRzIGEgcmVxdWVzdCBiYXNlZCBvbiBwYXJhbWV0ZXIgZGVzY3JpcHRpb25zIGFuZCBjb3JyZXNwb25kaW5nIHZhbHVlcyB0aGF0IGhhdmUgYmVlbiBwcm92aWRlZCB1c2luZyB0aGUgcnNwZWMgImxldCIgc3ludGF4LiBGb3IgZXhhbXBsZSwgdGhlICJwb3N0IiBkZXNjcmlwdGlvbiBpbiB0aGUgZXhhbXBsZSBhYm92ZSBzcGVjaWZpZXMgYSAiYm9keSIgcGFyYW1ldGVyIGNhbGxlZCAiYmxvZyIuIEl0IGFsc28gbGlzdHMgMiBkaWZmZXJlbnQgcmVzcG9uc2VzLiBGb3IgdGhlIHN1Y2Nlc3MgY2FzZSAoaS5lLiB0aGUgMjAxIHJlc3BvbnNlKSwgbm90aWNlIGhvdyAibGV0IiBpcyB1c2VkIHRvIHNldCB0aGUgYmxvZyBwYXJhbWV0ZXIgdG8gYSB2YWx1ZSB0aGF0IG1hdGNoZXMgdGhlIHByb3ZpZGVkIHNjaGVtYS4gRm9yIHRoZSBmYWlsdXJlIGNhc2UgKGkuZS4gdGhlIDQyMiByZXNwb25zZSksIG5vdGljZSBob3cgaXQncyBzZXQgdG8gYSB2YWx1ZSB0aGF0IGRvZXMgbm90IG1hdGNoIHRoZSBwcm92aWRlZCBzY2hlbWEuIFdoZW4gdGhlIHRlc3QgaXMgZXhlY3V0ZWQsIHJzd2FnIGFsc28gdmFsaWRhdGVzIHRoZSBhY3R1YWwgcmVzcG9uc2UgY29kZSBhbmQsIHdoZXJlIGFwcGxpY2FibGUsIHRoZSByZXNwb25zZSBib2R5IGFnYWluc3QgdGhlIHByb3ZpZGVkIFtKU09OIFNjaGVtYV0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvc3BlY2lmaWNhdGlvbikuCgpJZiB5b3Ugd2FudCB0byBhZGQgbWV0YWRhdGEgdG8gdGhlIGV4YW1wbGUsIHlvdSBjYW4gcGFzcyBrZXl3b3JkIGFyZ3VtZW50cyB0byB0aGUgX19ydW5fdGVzdCFfXyBtZXRob2Q6CgpgYGBydWJ5CiMgdG8gcnVuIHBhcnRpY3VsYXIgdGVzdCBjYXNlCnJlc3BvbnNlICcyMDEnLCAnYmxvZyBjcmVhdGVkJyBkbwogIHJ1bl90ZXN0ISBmb2N1czogdHJ1ZQplbmQKCiMgdG8gd3JpdGUgdmNyIGNhc3NldHRlCnJlc3BvbnNlICcyMDEnLCAnYmxvZyBjcmVhdGVkJyBkbwogIHJ1bl90ZXN0ISB2Y3I6IHRydWUKZW5kCmBgYAoKSWYgeW91IHdhbnQgdG8gY3VzdG9taXplIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIHNwZWNpZmljYXRpb24sIGEgZGVzY3JpcHRpb24gY2FuIGJlIHBhc3NlZCB0byAqKnJ1bl90ZXN0ISoqCgpgYGBydWJ5CnJlc3BvbnNlICcyMDEnLCAnYmxvZyBjcmVhdGVkJyBkbwogIHJ1bl90ZXN0ISAiY3VzdG9tIHNwZWMgZGVzY3JpcHRpb24iCmVuZApgYGAKCklmIHlvdSB3YW50IHRvIGRvIGFkZGl0aW9uYWwgdmFsaWRhdGlvbiBvbiB0aGUgcmVzcG9uc2UsIHBhc3MgYSBibG9jayB0byB0aGUgX19ydW5fdGVzdCFfXyBtZXRob2Q6CgpgYGBydWJ5CnJlc3BvbnNlICcyMDEnLCAnYmxvZyBjcmVhdGVkJyBkbwogIHJ1bl90ZXN0ISBkbyB8cmVzcG9uc2V8CiAgICBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZS5ib2R5KQogICAgZXhwZWN0KGRhdGFbJ3RpdGxlJ10pLnRvIGVxKCdmb28nKQogIGVuZAplbmQKYGBgCgpJZiB5b3UnZCBsaWtlIHlvdXIgc3BlY3MgdG8gYmUgYSBsaXR0bGUgbW9yZSBleHBsaWNpdCBhYm91dCB3aGF0J3MgZ29pbmcgb24gaGVyZSwgeW91IGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIF9fcnVuX3Rlc3QhX18gd2l0aCBlcXVpdmFsZW50ICJiZWZvcmUiIGFuZCAiaXQiIGJsb2NrczoKCmBgYHJ1YnkKcmVzcG9uc2UgJzIwMScsICdibG9nIGNyZWF0ZWQnIGRvCiAgbGV0KDpibG9nKSB7IHsgdGl0bGU6ICdmb28nLCBjb250ZW50OiAnYmFyJyB9IH0KCiAgYmVmb3JlIGRvIHxleGFtcGxlfAogICAgc3VibWl0X3JlcXVlc3QoZXhhbXBsZS5tZXRhZGF0YSkKICBlbmQKCiAgaXQgJ3JldHVybnMgYSB2YWxpZCAyMDEgcmVzcG9uc2UnIGRvIHxleGFtcGxlfAogICAgYXNzZXJ0X3Jlc3BvbnNlX21hdGNoZXNfbWV0YWRhdGEoZXhhbXBsZS5tZXRhZGF0YSkKICBlbmQKZW5kCmBgYAoKQWxzbyBub3RlIHRoYXQgdGhlIGV4YW1wbGVzIGdlbmVyYXRlZCB3aXRoIF9fcnVuX3Rlc3QhX18gYXJlIHRhZ2dlZCB3aXRoIHRoZSBgOnJzd2FnYCBzbyB0aGV5IGNhbiBlYXNpbHkgYmUgZmlsdGVyZWQuIEUuZy4gYHJzcGVjIC0tdGFnIHJzd2FnYAoKIyMjIGRhdGUtdGltZSBpbiBxdWVyeSBwYXJhbWV0ZXJzCgpJbnB1dCBzZW50IGluIHF1ZXJpZXMgb2YgUnNwZWMgdGVzdHMgaXMgSFRNTCBzYWZlLCBpbmNsdWRpbmcgZGF0ZS10aW1lIHN0cmluZ3MuCgpgYGBydWJ5CnBhcmFtZXRlciBuYW1lOiA6ZGF0ZV90aW1lLCBpbjogOnF1ZXJ5LCB0eXBlOiA6c3RyaW5nCgpyZXNwb25zZSAnMjAwJywgJ2Jsb2cgZm91bmQnIGRvCiAgbGV0KDpkYXRlX3RpbWUpIHsgRGF0ZVRpbWUubmV3KDIwMDEsIDIsIDMsIDQsIDUsIDYsICctNycpLnRvX3MgfQoKICBydW5fdGVzdCEgZG8KICAgIGV4cGVjdChyZXF1ZXN0WzpwYXRoXSkudG8gZXEoJy9ibG9ncz9kYXRlX3RpbWU9MjAwMS0wMi0wM1QwNCUzQTA1JTNBMDYtMDclM0EwMCcpCiAgZW5kCmVuZApgYGAKCiMjIyBFbnVtIGRlc2NyaXB0aW9uICMjIwpJZiB5b3Ugd2FudCB0byBvdXRwdXQgYSBkZXNjcmlwdGlvbiBvZiBlYWNoIGVudW0gdmFsdWUsIHRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgcGFzc2VkIHRvIGVhY2ggdmFsdWU6CmBgYHJ1YnkKcGFyYW1ldGVyIG5hbWU6IDpzdGF0dXMsIGluOiA6cXVlcnksIGdldHRlcjogOmJsb2dfc3RhdHVzLAogICAgICAgICAgZW51bTogeyAnZHJhZnQnOiAnUmV0cmlldmVzIGRyYWZ0IGJsb2dzJywgJ3B1Ymxpc2hlZCc6ICdSZXRyaWV2ZXMgcHVibGlzaGVkIGJsb2dzJywgJ2FyY2hpdmVkJzogJ1JldHJpZXZlcyBhcmNoaXZlZCBibG9ncycgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRmlsdGVyIGJ5IHN0YXR1cycKCnJlc3BvbnNlICcyMDAnLCAnc3VjY2VzcycgZG8KICBsZXQoOmJsb2dfc3RhdHVzKSB7ICdwdWJsaXNoZWQnIH0KCiAgcnVuX3Rlc3QhCmVuZApgYGAKCgojIyMgU3RyaWN0IHNjaGVtYSB2YWxpZGF0aW9uCgpCeSBkZWZhdWx0LCBpZiByZXNwb25zZSBib2R5IGNvbnRhaW5zIHVuZG9jdW1lbnRlZCBwcm9wZXJ0aWVzIHRlc3RzIHdpbGwgcGFzcy4gVG8ga2VlcCB5b3VyIHJlc3BvbnNlcyBjbGVhbiBhbmQgdmFsaWRhdGUgYWdhaW5zdCBhIHN0cmljdCBzY2hlbWEgZGVmaW5pdGlvbiB5b3UgY2FuIHNldCB0aGUgZ2xvYmFsIGNvbmZpZyBvcHRpb246CgpgYGBydWJ5CiMgc3BlYy9zd2FnZ2VyX2hlbHBlci5yYgpSU3BlYy5jb25maWd1cmUgZG8gfGNvbmZpZ3wKICBjb25maWcub3BlbmFwaV9zdHJpY3Rfc2NoZW1hX3ZhbGlkYXRpb24gPSB0cnVlCmVuZApgYGAKCm9yIHNldCB0aGUgb3B0aW9uIHBlciBpbmRpdmlkdWFsIGV4YW1wbGU6CgpgYGBydWJ5CiMgdXNpbmcgaW4gcnVuX3Rlc3QhCmRlc2NyaWJlICdCbG9ncyBBUEknIGRvCiAgcGF0aCAnL2Jsb2dzJyBkbwogICAgcG9zdCAnQ3JlYXRlcyBhIGJsb2cnIGRvCiAgICAgIC4uLgogICAgICByZXNwb25zZSAnMjAxJywgJ2Jsb2cgY3JlYXRlZCcgZG8KICAgICAgICBsZXQoOmJsb2cpIHsgeyB0aXRsZTogJ2ZvbycsIGNvbnRlbnQ6ICdiYXInIH0gfQoKICAgICAgICBydW5fdGVzdCEob3BlbmFwaV9zdHJpY3Rfc2NoZW1hX3ZhbGlkYXRpb246IHRydWUpCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCmVuZAoKIyB1c2luZyBpbiByZXNwb25zZSBibG9jawpkZXNjcmliZSAnQmxvZ3MgQVBJJyBkbwogIHBhdGggJy9ibG9ncycgZG8KICAgIHBvc3QgJ0NyZWF0ZXMgYSBibG9nJyBkbwogICAgICAuLi4KCiAgICAgIHJlc3BvbnNlICcyMDEnLCAnYmxvZyBjcmVhdGVkJywgb3BlbmFwaV9zdHJpY3Rfc2NoZW1hX3ZhbGlkYXRpb246IHRydWUgZG8KICAgICAgICBsZXQoOmJsb2cpIHsgeyB0aXRsZTogJ2ZvbycsIGNvbnRlbnQ6ICdiYXInIH0gfQoKICAgICAgICBydW5fdGVzdCEKICAgICAgZW5kCiAgICBlbmQKICBlbmQKZW5kCgojIHVzaW5nIGluIGFuIGV4cGxpY2l0IGV4YW1wbGUKZGVzY3JpYmUgJ0Jsb2dzIEFQSScgZG8KICBwYXRoICcvYmxvZ3MnIGRvCiAgICBwb3N0ICdDcmVhdGVzIGEgYmxvZycgZG8KICAgICAgLi4uCiAgICAgIHJlc3BvbnNlICcyMDEnLCAnYmxvZyBjcmVhdGVkJyBkbwogICAgICAgIGxldCg6YmxvZykgeyB7IHRpdGxlOiAnZm9vJywgY29udGVudDogJ2JhcicgfSB9CgogICAgICAgIGJlZm9yZSBkbyB8ZXhhbXBsZXwKICAgICAgICAgIHN1Ym1pdF9yZXF1ZXN0KGV4YW1wbGUubWV0YWRhdGEpCiAgICAgICAgZW5kCgogICAgICAgIGl0ICdyZXR1cm5zIGEgdmFsaWQgMjAxIHJlc3BvbnNlJywgb3BlbmFwaV9zdHJpY3Rfc2NoZW1hX3ZhbGlkYXRpb246IHRydWUgZG8gfGV4YW1wbGV8CiAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfbWF0Y2hlc19tZXRhZGF0YShleGFtcGxlLm1ldGFkYXRhKQogICAgICAgIGVuZAogICAgICBlbmQKICAgIGVuZAogIGVuZAplbmQKYGBgCgojIyMgTnVsbCBWYWx1ZXMgIyMjCgpUaGlzIGxpYnJhcnkgaXMgY3VycmVudGx5IHVzaW5nIEpTT046OkRyYWZ0NCBmb3IgdmFsaWRhdGlvbiBvZiByZXNwb25zZSBtb2RlbHMuIE51bGxhYmxlIHByb3BlcnRpZXMgY2FuIGJlIHN1cHBvcnRlZCB3aXRoIHRoZSBub24tc3RhbmRhcmQgcHJvcGVydHkgJ3gtbnVsbGFibGUnIHRvIGEgZGVmaW5pdGlvbiB0byBhbGxvdyBudWxsL25pbCB2YWx1ZXMgdG8gcGFzcy4gT3IgeW91IGNhbiBhZGQgdGhlIG5ldyBzdGFuZGFyZCBgYGBudWxsYWJsZWBgYCBwcm9wZXJ0eSB0byBhIGRlZmluaXRpb24uCmBgYHJ1YnkKZGVzY3JpYmUgJ0Jsb2dzIEFQSScgZG8KICBwYXRoICcvYmxvZ3MnIGRvCiAgICBwb3N0ICdDcmVhdGVzIGEgYmxvZycgZG8KICAgICAgLi4uCgogICAgICByZXNwb25zZSAnMjAwJywgJ2Jsb2cgZm91bmQnIGRvCiAgICAgICAgc2NoZW1hIHR5cGU6IDpvYmplY3QsCiAgICAgICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgIGlkOiB7IHR5cGU6IDppbnRlZ2VyIH0sCiAgICAgICAgICAgIHRpdGxlOiB7IHR5cGU6IDpzdHJpbmcsIG51bGxhYmxlOiB0cnVlIH0sICMgcHJlZmVycmVkIHN5bnRheAogICAgICAgICAgICBjb250ZW50OiB7IHR5cGU6IDpzdHJpbmcsICd4LW51bGxhYmxlJzogdHJ1ZSB9ICMgbGVnYWN5IHN5bnRheCwgYnV0IHN0aWxsIHdvcmtzCiAgICAgICAgICB9CiAgICAgICAgLi4uLgogICAgICBlbmQKICAgIGVuZAogIGVuZAplbmQKYGBgCgojIyMgU3VwcG9ydCBmb3Igb25lT2YsIGFueU9mIG9yIEFsbE9mIHNjaGVtYXMgIyMjCgpPcGVuIEFQSSAzLjAgbm93IHN1cHBvcnRzIG1vcmUgZmxleGlibGUgc2NoZW1hIHZhbGlkYXRpb24gd2l0aCB0aGUgYGBgb25lT2ZgYGAsIGBgYGFueU9mYGBgIGFuZCBgYGBhbGxPZmBgYCBkaXJlY3RpdmVzLiByc3dhZyB3aWxsIGhhbmRsZSB0aGVzZSBkZWZpbml0aW9ucyBhbmQgdmFsaWRhdGUgdGhlbSBwcm9wZXJseS4KCgpOb3RpY2UgdGhlIGBgYHNjaGVtYWBgYCBpbnNpZGUgdGhlIGBgYHJlc3BvbnNlYGBgIHNlY3Rpb24uIFBsYWNpbmcgYSBgYGBzY2hlbWFgYGAgbWV0aG9kIGluc2lkZSB0aGUgcmVzcG9uc2Ugd2lsbCB2YWxpZGF0ZSAoYW5kIGZhaWwgdGhlIHRlc3RzKQppZiBkdXJpbmcgdGhlIGludGVncmF0aW9uIHRlc3QgcnVuIHRoZSBlbmRwb2ludCByZXNwb25zZSBkb2VzIG5vdCBtYXRjaCB0aGUgcmVzcG9uc2Ugc2NoZW1hLiBUaGlzIHRlc3QgdmFsaWRhdGlvbiBjYW4gaGFuZGxlIGFueU9mIGFuZCBhbGxPZiBhcyB3ZWxsLiBTZWUgYmVsb3c6CgpgYGBydWJ5CgogIHBhdGggJy9ibG9ncy9mbGV4aWJsZScgZG8KICAgIHBvc3QgJ0NyZWF0ZXMgYSBibG9nIGZsZXhpYmxlIGJvZHknIGRvCiAgICAgIHRhZ3MgJ0Jsb2dzJwogICAgICBkZXNjcmlwdGlvbiAnQ3JlYXRlcyBhIGZsZXhpYmxlIGJsb2cgZnJvbSBwcm92aWRlZCBkYXRhJwogICAgICBvcGVyYXRpb25JZCAnY3JlYXRlRmxleGlibGVCbG9nJwogICAgICBjb25zdW1lcyAnYXBwbGljYXRpb24vanNvbicKICAgICAgcHJvZHVjZXMgJ2FwcGxpY2F0aW9uL2pzb24nCgogICAgICBwYXJhbWV0ZXIgbmFtZTogOmJsb2csIGluOiA6Ym9keSwgc2NoZW1hOiB7CiAgICAgICAgICBvbmVPZjogWwogICAgICAgICAgICB7ICckcmVmJyA9PiAnIy9jb21wb25lbnRzL3NjaGVtYXMvYmxvZycgfSwKICAgICAgICAgICAgeyAnJHJlZicgPT4gJyMvY29tcG9uZW50cy9zY2hlbWFzL2ZsZXhpYmxlX2Jsb2cnIH0KICAgICAgICAgIF0KICAgICAgICB9CgogICAgICByZXNwb25zZSAnMjAxJywgJ2ZsZXhpYmxlIGJsb2cgY3JlYXRlZCcgZG8KICAgICAgICBzY2hlbWEgb25lT2Y6IFt7ICckcmVmJyA9PiAnIy9jb21wb25lbnRzL3NjaGVtYXMvYmxvZycgfSwgeyAnJHJlZicgPT4gJyMvY29tcG9uZW50cy9zY2hlbWFzL2ZsZXhpYmxlX2Jsb2cnIH1dCiAgICAgICAgcnVuX3Rlc3QhCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCgpgYGAKVGhpcyBhdXRvbWF0aWMgc2NoZW1hIHZhbGlkYXRpb24gaXMgYSBwb3dlcmZ1bCBmZWF0dXJlIG9mIHJzd2FnLgoKIyMjIEdsb2JhbCBNZXRhZGF0YSAjIyMKCkluIGFkZGl0aW9uIHRvIHBhdGhzLCBvcGVyYXRpb25zIGFuZCByZXNwb25zZXMsIFN3YWdnZXIgYWxzbyBzdXBwb3J0cyBnbG9iYWwgQVBJIG1ldGFkYXRhLiBXaGVuIHlvdSBpbnN0YWxsIHJzd2FnLCBhIGZpbGUgY2FsbGVkIF9zd2FnZ2VyX2hlbHBlci5yYl8gaXMgYWRkZWQgdG8geW91ciBzcGVjIGZvbGRlci4gVGhpcyBpcyB3aGVyZSB5b3UgZGVmaW5lIG9uZSBvciBtb3JlIFN3YWdnZXIgZG9jdW1lbnRzIGFuZCBwcm92aWRlIGdsb2JhbCBtZXRhZGF0YS4gQWdhaW4sIHRoZSBmb3JtYXQgaXMgYmFzZWQgb24gU3dhZ2dlciBzbyBtb3N0IG9mIHRoZSBnbG9iYWwgZmllbGRzIHN1cHBvcnRlZCBieSB0aGUgdG9wIGxldmVsIFsiU3dhZ2dlciIgb2JqZWN0XShodHRwOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNzd2FnZ2VyT2JqZWN0KSBjYW4gYmUgcHJvdmlkZWQgd2l0aCBlYWNoIGRvY3VtZW50IGRlZmluaXRpb24uIEFzIGFuIGV4YW1wbGUsIHlvdSBjb3VsZCBkZWZpbmUgYSBTd2FnZ2VyIGRvY3VtZW50IGZvciBlYWNoIHZlcnNpb24gb2YgeW91ciBBUEkgYW5kIGluIGVhY2ggY2FzZSBzcGVjaWZ5IGEgdGl0bGUsIHZlcnNpb24gc3RyaW5nLiBJbiBPcGVuIEFQSSAzLjAgdGhlIHBhdGhpbmcgYW5kIHNlcnZlciBkZWZpbml0aW9ucyBoYXZlIGNoYW5nZWQgYSBiaXQgW1N3YWdnZXIgaG9zdC9iYXNlUGF0aF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hcGktaG9zdC1hbmQtYmFzZS1wYXRoLyk6CgpgYGBydWJ5CiMgc3BlYy9zd2FnZ2VyX2hlbHBlci5yYgpSU3BlYy5jb25maWd1cmUgZG8gfGNvbmZpZ3wKICBjb25maWcub3BlbmFwaV9yb290ID0gUmFpbHMucm9vdC50b19zICsgJy9zd2FnZ2VyJwoKICBjb25maWcub3BlbmFwaV9zcGVjcyA9IHsKICAgICd2MS9zd2FnZ2VyLmpzb24nID0+IHsKICAgICAgb3BlbmFwaTogJzMuMC4xJywKICAgICAgaW5mbzogewogICAgICAgIHRpdGxlOiAnQVBJIFYxJywKICAgICAgICB2ZXJzaW9uOiAndjEnLAogICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgZmlyc3QgdmVyc2lvbiBvZiBteSBBUEknCiAgICAgIH0sCiAgICAgIHNlcnZlcnM6IFsKICAgICAgICB7CiAgICAgICAgICB1cmw6ICdodHRwczovL3tkZWZhdWx0SG9zdH0nLAogICAgICAgICAgdmFyaWFibGVzOiB7CiAgICAgICAgICAgIGRlZmF1bHRIb3N0OiB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnd3d3LmV4YW1wbGUuY29tJwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdCiAgICB9LAoKICAgICd2Mi9zd2FnZ2VyLmpzb24nID0+IHsKICAgICAgb3BlbmFwaTogJzMuMC4xJywKICAgICAgaW5mbzogewogICAgICAgIHRpdGxlOiAnQVBJIFYyJywKICAgICAgICB2ZXJzaW9uOiAndjInLAogICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgc2Vjb25kIHZlcnNpb24gb2YgbXkgQVBJJwogICAgICB9LAogICAgICBzZXJ2ZXJzOiBbCiAgICAgICAgewogICAgICAgICAgdXJsOiAne3Byb3RvY29sfTovL3tkZWZhdWx0SG9zdH0nLAogICAgICAgICAgdmFyaWFibGVzOiB7CiAgICAgICAgICAgIHByb3RvY29sOiB7CiAgICAgICAgICAgICAgZGVmYXVsdDogOmh0dHBzCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlZmF1bHRIb3N0OiB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnd3d3LmV4YW1wbGUuY29tJwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdCiAgICB9CiAgfQplbmQKYGBgCgojIyMjIFN1cHBvcnRpbmcgbXVsdGlwbGUgdmVyc2lvbnMgb2YgQVBJICMjIyMKQnkgZGVmYXVsdCwgdGhlIHBhdGhzLCBvcGVyYXRpb25zIGFuZCByZXNwb25zZXMgZGVmaW5lZCBpbiB5b3VyIHNwZWMgZmlsZXMgd2lsbCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpcnN0IFN3YWdnZXIgZG9jdW1lbnQgaW4gX3N3YWdnZXJfaGVscGVyLnJiXy4gSWYgeW91ciBBUEkgaGFzIG11bHRpcGxlIHZlcnNpb25zLCB5b3Ugc2hvdWxkIGJlIHVzaW5nIHNlcGFyYXRlIGRvY3VtZW50cyB0byBkZXNjcmliZSBlYWNoIG9mIHRoZW0uIEluIG9yZGVyIHRvIGFzc2lnbiBhIGZpbGUgd2l0aCBhIGdpdmVuIHZlcnNpb24gb2YgQVBJLCB5b3UnbGwgbmVlZCB0byBhZGQgdGhlIGBgYG9wZW5hcGlfc3BlY2BgYCB0YWcgdG8gZWFjaCBzcGVjIHNwZWNpZnlpbmcgaXRzIHRhcmdldCBkb2N1bWVudCBuYW1lOgoKYGBgcnVieQojIHNwZWMvcmVxdWVzdHMvdjIvYmxvZ3Nfc3BlYy5yYgpkZXNjcmliZSAnQmxvZ3MgQVBJJywgb3BlbmFwaV9zcGVjOiAndjIvc3dhZ2dlci55YW1sJyBkbwoKICBwYXRoICcvYmxvZ3MnIGRvCiAgLi4uCgogIHBhdGggJy9ibG9ncy97aWR9JyBkbwogIC4uLgplbmQKYGBgCgojIyMjIFN1cHBvcnRpbmcgWUFNTCBmb3JtYXQgIyMjIwoKQnkgZGVmYXVsdCwgdGhlIHN3YWdnZXIgZG9jcyBhcmUgZ2VuZXJhdGVkIGluIEpTT04gZm9ybWF0LiBJZiB5b3Ugd2FudCB0byBnZW5lcmF0ZSB0aGVtIGluIFlBTUwgZm9ybWF0LCB5b3UgY2FuIHNwZWNpZnkgdGhlIHN3YWdnZXIgZm9ybWF0IGluIHRoZSBzd2FnZ2VyX2hlbHBlci5yYiBmaWxlOgoKYGBgcnVieQojIHNwZWMvc3dhZ2dlcl9oZWxwZXIucmIKUlNwZWMuY29uZmlndXJlIGRvIHxjb25maWd8CiAgY29uZmlnLm9wZW5hcGlfcm9vdCA9IFJhaWxzLnJvb3QudG9fcyArICcvc3dhZ2dlcicKICAKICAjIFVzZSBpZiB5b3Ugd2FudCB0byBzZWUgd2hpY2ggdGVzdCBpcyBydW5uaW5nCiAgIyBjb25maWcuZm9ybWF0dGVyID0gOmRvY3VtZW50YXRpb24KCiAgIyBHZW5lcmF0ZSBzd2FnZ2VyIGRvY3MgaW4gWUFNTCBmb3JtYXQKICBjb25maWcub3BlbmFwaV9mb3JtYXQgPSA6eWFtbAoKICBjb25maWcub3BlbmFwaV9zcGVjcyA9IHsKICAgICd2MS9zd2FnZ2VyLnlhbWwnID0+IHsKICAgICAgb3BlbmFwaTogJzMuMC4xJywKICAgICAgaW5mbzogewogICAgICAgIHRpdGxlOiAnQVBJIFYxJywKICAgICAgICB2ZXJzaW9uOiAndjEnLAogICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgZmlyc3QgdmVyc2lvbiBvZiBteSBBUEknCiAgICAgIH0sCiAgICAgIHNlcnZlcnM6IFsKICAgICAgICB7CiAgICAgICAgICB1cmw6ICdodHRwczovL3tkZWZhdWx0SG9zdH0nLAogICAgICAgICAgdmFyaWFibGVzOiB7CiAgICAgICAgICAgIGRlZmF1bHRIb3N0OiB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnd3d3LmV4YW1wbGUuY29tJwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdCiAgICB9LAogIH0KZW5kCmBgYAoKIyMjIyBGb3JtYXR0aW5nIHRoZSBkZXNjcmlwdGlvbiBsaXRlcmFsczogIyMjIwpTd2FnZ2VyIHN1cHBvcnRzIHRoZSBNYXJrZG93biBzeW50YXggdG8gZm9ybWF0IHN0cmluZ3MuIFRoaXMgY2FuIGJlIGVzcGVjaWFsbHkgaGFuZHkgaWYgeW91IHdlcmUgdG8gcHJvdmlkZSBhIGxvbmcgZGVzY3JpcHRpb24gb2YgYSBnaXZlbiBBUEkgdmVyc2lvbiBvciBlbmRwb2ludC4gVXNlIFt0aGlzIGd1aWRlXShodHRwczovL2dpdGh1Yi5jb20vYWRhbS1wL21hcmtkb3duLWhlcmUvd2lraS9NYXJrZG93bi1DaGVhdHNoZWV0KSBmb3IgcmVmZXJlbmNlLgoKX19OT1RFOl9fIFRoZXJlIGlzIG9uZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIG9mZmljaWFsIE1hcmtkb3duIHN5bnRheCBhbmQgU3dhZ2dlciBpbnRlcnByZXRhdGlvbiwgbmFtZWx5IHRhYmxlcy4gVG8gY3JlYXRlIGEgdGFibGUgbGlrZSB0aGlzOgoKfCBDb2x1bW4xIHwgQ29sdW1uMiB8CnwgLS0tLS0tLSB8IC0tLS0tLS0gfAp8IGNlbGwxICAgfCBjZWxsMiAgIHwKCnlvdSBzaG91bGQgdXNlIHRoZSBmb2xsb3dpbmcgc3ludGF4LCBtYWtpbmcgc3VyZSB0aGVyZSBpcyBubyB3aGl0ZXNwYWNlIGF0IHRoZSBzdGFydCBvZiBhbnkgb2YgdGhlIGxpbmVzOgoKYGBgCiYjMTM7CnwgQ29sdW1uMSB8IENvbHVtbjIgfCAmIzEzOyB8CnwgLS0tLS0tLSB8IC0tLS0tLS0gfCYjMTM7CnwgY2VsbDEgICB8IGNlbGwyICAgIHwmIzEzOwomIzEzOwpgYGAKCiMjIyBTcGVjaWZ5aW5nL1Rlc3RpbmcgQVBJIFNlY3VyaXR5ICMjIwoKU3dhZ2dlciBhbGxvd3MgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGRpZmZlcmVudCBzZWN1cml0eSBzY2hlbWVzIGFuZCB0aGVpciBhcHBsaWNhYmlsaXR5IHRvIG9wZXJhdGlvbnMgaW4gYW4gQVBJLgpUbyBsZXZlcmFnZSB0aGlzIGluIHJzd2FnLCB5b3UgZGVmaW5lIHRoZSBzY2hlbWVzIGdsb2JhbGx5IGluIF9zd2FnZ2VyX2hlbHBlci5yYl8gYW5kIHRoZW4gdXNlIHRoZSAic2VjdXJpdHkiIGF0dHJpYnV0ZSBhdCB0aGUgb3BlcmF0aW9uIGxldmVsIHRvIHNwZWNpZnkgd2hpY2ggc2NoZW1lcywgaWYgYW55LCBhcmUgYXBwbGljYWJsZSB0byB0aGF0IG9wZXJhdGlvbi4KU3dhZ2dlciBzdXBwb3J0cyA6YmFzaWMsIDpiZWFyZXIsIDphcGlLZXkgYW5kIDpvYXV0aDIgYW5kIDpvcGVuSWRDb25uZWN0IHNjaGVtZSB0eXBlcy4gU2VlIFt0aGUgc3BlY10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hdXRoZW50aWNhdGlvbi8pIGZvciBtb3JlIGluZm8sIGFzIHRoaXMgdW5kZXJ3ZW50IG1ham9yIGNoYW5nZXMgYmV0d2VlbiBTd2FnZ2VyIDIuMCBhbmQgT3BlbiBBUEkgMy4wCgpgYGBydWJ5CiMgc3BlYy9zd2FnZ2VyX2hlbHBlci5yYgpSU3BlYy5jb25maWd1cmUgZG8gfGNvbmZpZ3wKICBjb25maWcub3BlbmFwaV9yb290ID0gUmFpbHMucm9vdC50b19zICsgJy9zd2FnZ2VyJwoKICBjb25maWcub3BlbmFwaV9zcGVjcyA9IHsKICAgICd2MS9zd2FnZ2VyLmpzb24nID0+IHsKICAgICAgLi4uICAjIG5vdGUgdGhlIG5ldyBPcGVuIEFQSSAzLjAgY29tcGxpYW50IHNlY3VyaXR5IHN0cnVjdHVyZSBoZXJlLCB1bmRlciAiY29tcG9uZW50cyIKICAgICAgY29tcG9uZW50czogewogICAgICAgIHNlY3VyaXR5U2NoZW1lczogewogICAgICAgICAgYmFzaWNfYXV0aDogewogICAgICAgICAgICB0eXBlOiA6aHR0cCwKICAgICAgICAgICAgc2NoZW1lOiA6YmFzaWMKICAgICAgICAgIH0sCiAgICAgICAgICBhcGlfa2V5OiB7CiAgICAgICAgICAgIHR5cGU6IDphcGlLZXksCiAgICAgICAgICAgIG5hbWU6ICdhcGlfa2V5JywKICAgICAgICAgICAgaW46IDpxdWVyeQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KZW5kCgojIHNwZWMvcmVxdWVzdHMvYmxvZ3Nfc3BlYy5yYgpkZXNjcmliZSAnQmxvZ3MgQVBJJyBkbwoKICBwYXRoICcvYmxvZ3MnIGRvCgogICAgcG9zdCAnQ3JlYXRlcyBhIGJsb2cnIGRvCiAgICAgIHRhZ3MgJ0Jsb2dzJwogICAgICBzZWN1cml0eSBbIGJhc2ljX2F1dGg6IFtdIF0KICAgICAgLi4uCgogICAgICByZXNwb25zZSAnMjAxJywgJ2Jsb2cgY3JlYXRlZCcgZG8KICAgICAgICBsZXQoOkF1dGhvcml6YXRpb24pIHsgIkJhc2ljICN7OjpCYXNlNjQuc3RyaWN0X2VuY29kZTY0KCdqc21pdGg6anNwYXNzJyl9IiB9CiAgICAgICAgcnVuX3Rlc3QhCiAgICAgIGVuZAoKICAgICAgcmVzcG9uc2UgJzQwMScsICdhdXRoZW50aWNhdGlvbiBmYWlsZWQnIGRvCiAgICAgICAgbGV0KDpBdXRob3JpemF0aW9uKSB7ICJCYXNpYyAjezo6QmFzZTY0LnN0cmljdF9lbmNvZGU2NCgnYm9ndXM6Ym9ndXMnKX0iIH0KICAgICAgICBydW5fdGVzdCEKICAgICAgZW5kCiAgICBlbmQKICBlbmQKZW5kCgojIGV4YW1wbGUgb2YgZG9jdW1lbnRpbmcgYW4gZW5kcG9pbnQgdGhhdCBoYW5kbGVzIGJhc2ljIGF1dGggYW5kIGFwaSBrZXkgYmFzZWQgc2VjdXJpdHkKZGVzY3JpYmUgJ0F1dGggZXhhbXBsZXMgQVBJJyBkbwogIHBhdGggJy9hdXRoLXRlc3RzL2Jhc2ljLWFuZC1hcGkta2V5JyBkbwogICAgcG9zdCAnQXV0aGVudGljYXRlcyB3aXRoIGJhc2ljIGF1dGggYW5kIGFwaSBrZXknIGRvCiAgICAgIHRhZ3MgJ0F1dGggVGVzdHMnCiAgICAgIG9wZXJhdGlvbklkICd0ZXN0QmFzaWNBbmRBcGlLZXknCiAgICAgIHNlY3VyaXR5IFt7IGJhc2ljX2F1dGg6IFtdLCBhcGlfa2V5OiBbXSB9XQoKICAgICAgcmVzcG9uc2UgJzIwNCcsICdWYWxpZCBjcmVkZW50aWFscycgZG8KICAgICAgICBsZXQoOkF1dGhvcml6YXRpb24pIHsgIkJhc2ljICN7OjpCYXNlNjQuc3RyaWN0X2VuY29kZTY0KCdqc21pdGg6anNwYXNzJyl9IiB9CiAgICAgICAgbGV0KDphcGlfa2V5KSB7ICdmb29iYXInIH0KICAgICAgICBydW5fdGVzdCEKICAgICAgZW5kCgogICAgICByZXNwb25zZSAnNDAxJywgJ0ludmFsaWQgY3JlZGVudGlhbHMnIGRvCiAgICAgICAgbGV0KDpBdXRob3JpemF0aW9uKSB7ICJCYXNpYyAjezo6QmFzZTY0LnN0cmljdF9lbmNvZGU2NCgnanNtaXRoOmpzcGFzcycpfSIgfQogICAgICAgIGxldCg6YXBpX2tleSkgeyAnYmFyLWZvbycgfQogICAgICAgIHJ1bl90ZXN0IQogICAgICBlbmQKICAgIGVuZAogIGVuZAplbmQKCgpgYGAKCl9fTk9URTpfXyBEZXBlbmRpbmcgb24gdGhlIHNjaGVtZSB0eXBlcywgeW91J2xsIGJlIHJlcXVpcmVkIHRvIGFzc2lnbiBhIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyIHZhbHVlIHdpdGggZWFjaCBleGFtcGxlLgpGb3IgZXhhbXBsZSwgOmJhc2ljIGF1dGggaXMgcmVxdWlyZWQgYWJvdmUgYW5kIHNvIHRoZSA6QXV0aG9yaXphdGlvbiAoaGVhZGVyKSBwYXJhbWV0ZXIgbXVzdCBiZSBzZXQgYWNjb3JkaW5nbHkKCiMjIENvbmZpZ3VyYXRpb24gJiBDdXN0b21pemF0aW9uICMjCgpUaGUgc3RlcHMgZGVzY3JpYmVkIGFib3ZlIHdpbGwgZ2V0IHlvdSB1cCBhbmQgcnVubmluZyB3aXRoIG1pbmltYWwgc2V0dXAuIEhvd2V2ZXIsIHJzd2FnIG9mZmVycyBhIGxvdCBvZiBmbGV4aWJpbGl0eSB0byBjdXN0b21pemUgYXMgeW91IHNlZSBmaXQuIEJlZm9yZSBleHBsb3JpbmcgdGhlIHZhcmlvdXMgb3B0aW9ucywgeW91J2xsIG5lZWQgdG8gYmUgYXdhcmUgb2YgaXRzIGRpZmZlcmVudCBjb21wb25lbnRzLiBUaGUgZm9sbG93aW5nIHRhYmxlIGxpc3RzIGVhY2ggb2YgdGhlbSBhbmQgdGhlIGZpbGVzIHRoYXQgZ2V0IGFkZGVkL3VwZGF0ZWQgYXMgcGFydCBvZiBhIHN0YW5kYXJkIGluc3RhbGwuCgp8IEdlbSAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBZGRlZC9VcGRhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgX19yc3dhZy1zcGVjc19fIHwgU3dhZ2dlci1iYXNlZCBEU0wgZm9yIHJzcGVjICYgYWNjb21wYW55aW5nIHJha2UgdGFzayBmb3IgZ2VuZXJhdGluZyBTd2FnZ2VyIGZpbGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IF9zcGVjL3N3YWdnZXJfaGVscGVyLnJiXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IF9fcnN3YWctYXBpX18gICB8IFJhaWxzIEVuZ2luZSB0aGF0IGV4cG9zZXMgeW91ciBTd2FnZ2VyIGZpbGVzIGFzIEpTT04gZW5kcG9pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBfY29uZmlnL2luaXRpYWxpemVycy9yc3dhZ19hcGkucmIsIGNvbmZpZy9yb3V0ZXMucmJfIHwKfCBfX3Jzd2FnLXVpX18gICAgfCBSYWlscyBFbmdpbmUgdGhhdCBpbmNsdWRlcyBbc3dhZ2dlci11aV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpIGFuZCBwb3dlcnMgaXQgZnJvbSB5b3VyIFN3YWdnZXIgZW5kcG9pbnRzIHwgX2NvbmZpZy9pbml0aWFsaXplcnMvcnN3YWctdWkucmIsIGNvbmZpZy9yb3V0ZXMucmJfICB8CgojIyMgT3V0cHV0IExvY2F0aW9uIGZvciBHZW5lcmF0ZWQgU3dhZ2dlciBGaWxlcyAjIyMKCllvdSBjYW4gYWRqdXN0IHRoaXMgaW4gdGhlIF9zd2FnZ2VyX2hlbHBlci5yYl8gdGhhdCdzIGluc3RhbGxlZCB3aXRoIF9fcnN3YWctc3BlY3NfXzoKCmBgYHJ1YnkKIyBzcGVjL3N3YWdnZXJfaGVscGVyLnJiClJTcGVjLmNvbmZpZ3VyZSBkbyB8Y29uZmlnfAogIGNvbmZpZy5vcGVuYXBpX3Jvb3QgPSBSYWlscy5yb290LnRvX3MgKyAnL3lvdXItY3VzdG9tLWZvbGRlci1uYW1lJwogIC4uLgplbmQKYGBgCgpfX05PVEVfXzogSWYgeW91IGRvIGNoYW5nZSB0aGlzLCB5b3UnbGwgYWxzbyBuZWVkIHRvIHVwZGF0ZSB0aGUgcnN3YWdfYXBpLnJiIGluaXRpYWxpemVyIChhc3N1bWluZyB5b3UncmUgdXNpbmcgcnN3YWctYXBpKS4gTW9yZSBvbiB0aGlzIGxhdGVyLgoKIyMjIElucHV0IExvY2F0aW9uIGZvciBSc3BlYyBUZXN0cyAjIyMKCkJ5IGRlZmF1bHQsIHJzd2FnIHdpbGwgc2VhcmNoIGZvciBpbnRlZ3JhdGlvbiB0ZXN0cyBpbiBfc3BlYy9yZXF1ZXN0c18sIF9zcGVjL2FwaV8gYW5kIF9zcGVjL2ludGVncmF0aW9uXy4gSWYgeW91IHdhbnQgdG8gdXNlIHRlc3RzIGZyb20gb3RoZXIgbG9jYXRpb25zLCBwcm92aWRlIHRoZSBQQVRURVJOIGFyZ3VtZW50IHRvIHJha2U6CgpgYGBydWJ5CiMgc2VhcmNoIGZvciB0ZXN0cyBpbiBzcGVjL3N3YWdnZXIKcmFrZSByc3dhZzpzcGVjczpzd2FnZ2VyaXplIFBBVFRFUk49InNwZWMvc3dhZ2dlci8qKi8qX3NwZWMucmIiCmBgYAoKIyMjIEFkZGl0aW9uYWwgcnNwZWMgb3B0aW9ucwoKWW91IGNhbiBhZGQgYWRkaXRpb25hbCByc3BlYyBwYXJhbWV0ZXJzIHVzaW5nIHRoZSBBRERJVElPTkFMX1JTUEVDX09QVFMgZW52IHZhcmlhYmxlOgoKYGBgcnVieQojIE9ubHkgaW5jbHVkZSB0ZXN0cyB0YWdnZWQgInJzd2FnIgpyYWtlIHJzd2FnOnNwZWNzOnN3YWdnZXJpemUgQURESVRJT05BTF9SU1BFQ19PUFRTPSItLXRhZyByc3dhZyIKYGBgCgojIyMgUmVmZXJlbmNlZCBQYXJhbWV0ZXJzIGFuZCBTY2hlbWEgRGVmaW5pdGlvbnMgIyMjCgpTd2FnZ2VyIGFsbG93cyB5b3UgdG8gZGVzY3JpYmUgSlNPTiBzdHJ1Y3R1cmVzIGlubGluZSB3aXRoIHlvdXIgb3BlcmF0aW9uIGRlc2NyaXB0aW9ucyBPUiBhcyByZWZlcmVuY2VkIGdsb2JhbHMuCkZvciBleGFtcGxlLCB5b3UgbWlnaHQgaGF2ZSBhIHN0YW5kYXJkIHJlc3BvbnNlIHN0cnVjdHVyZSBmb3IgYWxsIGZhaWxlZCBvcGVyYXRpb25zLgpBZ2FpbiwgdGhpcyBpcyBhIHN0cnVjdHVyZSB0aGF0IGNoYW5nZWQgc2luY2Ugc3dhZ2dlciAyLjAuIE5vdGljZSB0aGUgbmV3ICJzY2hlbWFzIiBzZWN0aW9uIGZvciB0aGVzZS4KUmF0aGVyIHRoYW4gcmVwZWF0aW5nIHRoZSBzY2hlbWEgaW4gZXZlcnkgb3BlcmF0aW9uIHNwZWMsIHlvdSBjYW4gZGVmaW5lIGl0IGdsb2JhbGx5IGFuZCBwcm92aWRlIGEgcmVmZXJlbmNlIHRvIGl0IGluIGVhY2ggc3BlYzoKCmBgYHJ1YnkKIyBzcGVjL3N3YWdnZXJfaGVscGVyLnJiCmNvbmZpZy5vcGVuYXBpX3NwZWNzID0gewogICd2MS9zd2FnZ2VyLmpzb24nID0+IHsKICAgIG9wZW5hcGk6ICczLjAuMCcsCiAgICBpbmZvOiB7CiAgICAgIHRpdGxlOiAnQVBJIFYxJwogICAgfSwKICAgIGNvbXBvbmVudHM6IHsKICAgICAgc2NoZW1hczogewogICAgICAgIGVycm9yc19vYmplY3Q6IHsKICAgICAgICAgIHR5cGU6ICdvYmplY3QnLAogICAgICAgICAgcHJvcGVydGllczogewogICAgICAgICAgICBlcnJvcnM6IHsgJyRyZWYnID0+ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9lcnJvcnNfbWFwJyB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBlcnJvcnNfbWFwOiB7CiAgICAgICAgICB0eXBlOiAnb2JqZWN0JywKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsCiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6ICdzdHJpbmcnIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGJsb2c6IHsKICAgICAgICAgIHR5cGU6ICdvYmplY3QnLAogICAgICAgICAgcHJvcGVydGllczogewogICAgICAgICAgICBpZDogeyB0eXBlOiAnaW50ZWdlcicgfSwKICAgICAgICAgICAgdGl0bGU6IHsgdHlwZTogJ3N0cmluZycgfSwKICAgICAgICAgICAgY29udGVudDogeyB0eXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IHRydWUgfSwKICAgICAgICAgICAgdGh1bWJuYWlsOiB7IHR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9CiAgICAgICAgICB9LAogICAgICAgICAgcmVxdWlyZWQ6ICV3W2lkIHRpdGxlXQogICAgICAgIH0sCiAgICAgICAgbmV3X2Jsb2c6IHsKICAgICAgICAgIHR5cGU6ICdvYmplY3QnLAogICAgICAgICAgcHJvcGVydGllczogewogICAgICAgICAgICB0aXRsZTogeyB0eXBlOiAnc3RyaW5nJyB9LAogICAgICAgICAgICBjb250ZW50OiB7IHR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LAogICAgICAgICAgICB0aHVtYm5haWw6IHsgdHlwZTogJ3N0cmluZycsIGZvcm1hdDogJ2JpbmFyeScsIG51bGxhYmxlOiB0cnVlIH0KICAgICAgICAgIH0sCiAgICAgICAgICByZXF1aXJlZDogJXdbdGl0bGVdCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9CgojIHNwZWMvcmVxdWVzdHMvYmxvZ3Nfc3BlYy5yYgpkZXNjcmliZSAnQmxvZ3MgQVBJJyBkbwoKICBwYXRoICcvYmxvZ3MnIGRvCgogICAgcG9zdCAnQ3JlYXRlcyBhIGJsb2cnIGRvCgogICAgICBwYXJhbWV0ZXIgbmFtZTogOm5ld19ibG9nLCBpbjogOmJvZHksIHNjaGVtYTogeyAnJHJlZicgPT4gJyMvY29tcG9uZW50cy9zY2hlbWFzL25ld19ibG9nJyB9CgogICAgICByZXNwb25zZSA0MjIsICdpbnZhbGlkIHJlcXVlc3QnIGRvCiAgICAgICAgc2NoZW1hICckcmVmJyA9PiAnIy9jb21wb25lbnRzL3NjaGVtYXMvZXJyb3JzX29iamVjdCcKICAuLi4KZW5kCgojIHNwZWMvcmVxdWVzdHMvY29tbWVudHNfc3BlYy5yYgpkZXNjcmliZSAnQmxvZ3MgQVBJJyBkbwoKICBwYXRoICcvYmxvZ3Mve2Jsb2dfaWR9L2NvbW1lbnRzJyBkbwoKICAgIHBvc3QgJ0NyZWF0ZXMgYSBjb21tZW50JyBkbwoKICAgICAgcmVzcG9uc2UgNDIyLCAnaW52YWxpZCByZXF1ZXN0JyBkbwogICAgICAgIHNjaGVtYSAnJHJlZicgPT4gJyMvY29tcG9uZW50cy9zY2hlbWFzL2Vycm9yc19vYmplY3QnCiAgLi4uCmVuZApgYGAKCiMjIyBSZXF1ZXN0IGV4YW1wbGVzICMjIwoKYGBgcnVieQojIHNwZWMvaW50ZWdyYXRpb24vYmxvZ3Nfc3BlYy5yYgpkZXNjcmliZSAnQmxvZ3MgQVBJJyBkbwoKICBwYXRoICcvYmxvZ3Mve2Jsb2dfaWR9JyBkbwoKICAgIGdldCAnUmV0cmlldmVzIGEgYmxvZycgZG8KCiAgICAgIHJlcXVlc3RfYm9keV9leGFtcGxlIHZhbHVlOiB7IHNvbWVfZmllbGQ6ICdGb28nIH0sIG5hbWU6ICdyZXF1ZXN0X2V4YW1wbGVfMScsIHN1bW1hcnk6ICdBIHJlcXVlc3QgZXhhbXBsZScKCiAgICAgIHJlc3BvbnNlIDIwMCwgJ2Jsb2cgZm91bmQnIGRvCiAgICAgICAgLi4uCmBgYAoKdG8gdXNlIHRoZSBhY3R1YWwgcmVxdWVzdCBmcm9tIHRoZSBzcGVjIGFzIHRoZSBleGFtcGxlOgoKYGBgcnVieQpjb25maWcuYWZ0ZXIoOmVhY2gsIG9wZXJhdGlvbjogdHJ1ZSwgdXNlX2FzX3JlcXVlc3RfZXhhbXBsZTogdHJ1ZSkgZG8gfHNwZWN8CiAgc3BlYy5tZXRhZGF0YVs6b3BlcmF0aW9uXVs6cmVxdWVzdF9leGFtcGxlc10gfHw9IFtdCgogIGV4YW1wbGUgPSB7CiAgICB2YWx1ZTogSlNPTi5wYXJzZShyZXF1ZXN0LmJvZHkuc3RyaW5nLCBzeW1ib2xpemVfbmFtZXM6IHRydWUpLAogICAgbmFtZTogJ3JlcXVlc3RfZXhhbXBsZV8xJywKICAgIHN1bW1hcnk6ICdBIHJlcXVlc3QgZXhhbXBsZScKICB9CgogIHNwZWMubWV0YWRhdGFbOm9wZXJhdGlvbl1bOnJlcXVlc3RfZXhhbXBsZXNdIDw8IGV4YW1wbGUKZW5kCmBgYAoKIyMjIFJlc3BvbnNlIGhlYWRlcnMgIyMjCgpJbiBSc3dhZywgeW91IGNvdWxkIHVzZSBgaGVhZGVyYCBtZXRob2QgaW5zaWRlIHRoZSByZXNwb25zZSBibG9jayB0byBzcGVjaWZ5IGhlYWRlciBvYmplY3RzIGZvciB0aGlzIHJlc3BvbnNlLgpSc3dhZyB3aWxsIHZhbGlkYXRlIHlvdXIgcmVzcG9uc2UgaGVhZGVycyB3aXRoIHRob3NlIGhlYWRlciBvYmplY3RzIGFuZCBpbmplY3QgdGhlbSBpbnRvIHRoZSBnZW5lcmF0ZWQgc3dhZ2dlciBmaWxlOgoKYGBgcnVieQojIHNwZWMvcmVxdWVzdHMvY29tbWVudHNfc3BlYy5yYgpkZXNjcmliZSAnQmxvZ3MgQVBJJyBkbwoKICBwYXRoICcvYmxvZ3Mve2Jsb2dfaWR9L2NvbW1lbnRzJyBkbwoKICAgIHBvc3QgJ0NyZWF0ZXMgYSBjb21tZW50JyBkbwoKICAgICAgcmVzcG9uc2UgNDIyLCAnaW52YWxpZCByZXF1ZXN0JyBkbwogICAgICAgIGhlYWRlciAnWC1SYXRlLUxpbWl0LUxpbWl0Jywgc2NoZW1hOiB7IHR5cGU6IDppbnRlZ2VyIH0sIGRlc2NyaXB0aW9uOiAnVGhlIG51bWJlciBvZiBhbGxvd2VkIHJlcXVlc3RzIGluIHRoZSBjdXJyZW50IHBlcmlvZCcKICAgICAgICBoZWFkZXIgJ1gtUmF0ZS1MaW1pdC1SZW1haW5pbmcnLCBzY2hlbWE6IHsgdHlwZTogOmludGVnZXIgfSwgZGVzY3JpcHRpb246ICdUaGUgbnVtYmVyIG9mIHJlbWFpbmluZyByZXF1ZXN0cyBpbiB0aGUgY3VycmVudCBwZXJpb2QnCiAgLi4uCmVuZApgYGAKCiMjIyMgTnVsbGFibGUgb3IgT3B0aW9uYWwgUmVzcG9uc2UgSGVhZGVycyAjIyMjCgpZb3UgY2FuIGluY2x1ZGUgYG51bGxhYmxlYCBvciBgcmVxdWlyZWRgIHRvIHNwZWNpZnkgd2hldGhlciBhIHJlc3BvbnNlIGhlYWRlciBtdXN0IGJlIHByZXNlbnQgb3IgbWF5IGJlIG51bGwuIFdoZW4gYG51bGxhYmxlYCBpcyBub3QgaW5jbHVkZWQsIHRoZSBoZWFkZXJzIHZhbGlkYXRpb24gdmFsaWRhdGVzIHRoYXQgdGhlIGhlYWRlciByZXNwb25zZSBpcyBub24tbnVsbC4gV2hlbiBgcmVxdWlyZWRgIGlzIG5vdCBpbmNsdWRlZCwgdGhlIGhlYWRlcnMgdmFsaWRhdGlvbiB2YWxpZGF0ZXMgdGhlIHRoZSBoZWFkZXIgcmVzcG9uc2UgaXMgcGFzc2VkLgoKYGBgcnVieQojIHNwZWMvaW50ZWdyYXRpb24vY29tbWVudHNfc3BlYy5yYgpkZXNjcmliZSAnQmxvZ3MgQVBJJyBkbwoKICBwYXRoICcvYmxvZ3Mve2Jsb2dfaWR9L2NvbW1lbnRzJyBkbwoKICAgIGdldCAnR2V0cyBhIGxpc3Qgb2YgY29tbWVudHMnIGRvCgogICAgICByZXNwb25zZSAyMDAsICdibG9nIGZvdW5kJyBkbwogICAgICAgIGhlYWRlciAnWC1DdXJzb3InLCBzY2hlbWE6IHsgdHlwZTogOnN0cmluZywgbnVsbGFibGU6IHRydWUgfSwgZGVzY3JpcHRpb246ICdUaGUgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlIG9mIGNvbW1lbnRzLicKICAgICAgICBoZWFkZXIgJ1gtUGVyLVBhZ2UnLCBzY2hlbWE6IHsgdHlwZTogOmludGVnZXIgfSwgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ1RoZSBudW1iZXIgb2YgY29tbWVudHMgcGVyIHBhZ2UuJwogIC4uLgplbmQKYGBgCgojIyMgUmVzcG9uc2UgZXhhbXBsZXMgIyMjCgpZb3UgY2FuIHByb3ZpZGUgY3VzdG9tIHJlc3BvbnNlIGV4YW1wbGVzIHRvIHRoZSBnZW5lcmF0ZWQgc3dhZ2dlciBmaWxlIGJ5IGNhbGxpbmcgdGhlIG1ldGhvZCBgZXhhbXBsZXNgIGluc2lkZSB0aGUgcmVzcG9uc2UgYmxvY2s6Ckhvd2V2ZXIsIGF1dG8gZ2VuZXJhdGVkIGV4YW1wbGUgcmVzcG9uc2VzIGFyZSBub3cgZW5hYmxlZCBieSBkZWZhdWx0IGluIHJzd2FnLiBTZWUgYmVsb3cuCgpgYGBydWJ5CiMgc3BlYy9yZXF1ZXN0cy9ibG9nc19zcGVjLnJiCmRlc2NyaWJlICdCbG9ncyBBUEknIGRvCgogIHBhdGggJy9ibG9ncy97YmxvZ19pZH0nIGRvCgogICAgZ2V0ICdSZXRyaWV2ZXMgYSBibG9nJyBkbwoKICAgICAgcmVzcG9uc2UgMjAwLCAnYmxvZyBmb3VuZCcgZG8KICAgICAgICBleGFtcGxlICdhcHBsaWNhdGlvbi9qc29uJywgOmV4YW1wbGVfa2V5LCB7CiAgICAgICAgICAgIGlkOiAxLAogICAgICAgICAgICB0aXRsZTogJ0hlbGxvIHdvcmxkIScsCiAgICAgICAgICAgIGNvbnRlbnQ6ICcuLi4nCiAgICAgICAgICB9CiAgICAgICAgZXhhbXBsZSAnYXBwbGljYXRpb24vanNvbicsIDpleGFtcGxlX2tleV8yLCB7CiAgICAgICAgICAgIGlkOiAxLAogICAgICAgICAgICB0aXRsZTogJ0hlbGxvIHdvcmxkIScsCiAgICAgICAgICAgIGNvbnRlbnQ6ICcuLi4nCiAgICAgICAgICB9LCAiU3VtbWFyeSBvZiB0aGUgZXhhbXBsZSIsICJMb25nZXIgZGVzY3JpcHRpb24gb2YgdGhlIGV4YW1wbGUiCiAgLi4uCmVuZApgYGAKCgojIyMgRW5hYmxlIGF1dG8gZ2VuZXJhdGlvbiBleGFtcGxlcyBmcm9tIHJlc3BvbnNlcyAjIyMKCgpUbyBlbmFibGUgZXhhbXBsZXMgZ2VuZXJhdGlvbiBmcm9tIHJlc3BvbnNlcyBhZGQgY2FsbGJhY2sgYWJvdmUgcnVuX3Rlc3QhIGxpa2U6CgpgYGBydWJ5CmFmdGVyIGRvIHxleGFtcGxlfAogIGNvbnRlbnQgPSBleGFtcGxlLm1ldGFkYXRhWzpyZXNwb25zZV1bOmNvbnRlbnRdIHx8IHt9CiAgZXhhbXBsZV9zcGVjID0gewogICAgImFwcGxpY2F0aW9uL2pzb24iPT57CiAgICAgIGV4YW1wbGVzOiB7CiAgICAgICAgdGVzdF9leGFtcGxlOiB7CiAgICAgICAgICB2YWx1ZTogSlNPTi5wYXJzZShyZXNwb25zZS5ib2R5LCBzeW1ib2xpemVfbmFtZXM6IHRydWUpCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQogIGV4YW1wbGUubWV0YWRhdGFbOnJlc3BvbnNlXVs6Y29udGVudF0gPSBjb250ZW50LmRlZXBfbWVyZ2UoZXhhbXBsZV9zcGVjKQplbmQKYGBgCgojIyMjIERyeSBSdW4gT3B0aW9uICMjIyMKClRoZSBgLS1kcnktcnVuYCBvcHRpb24gaXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBSc3BlYyAzLCBidXQgaWYgeW91IG5lZWQgdG8KZGlzYWJsZSBpdCB5b3UgY2FuIHVzZSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYFJTV0FHX0RSWV9SVU49MGAgZHVyaW5nIHRoZQpnZW5lcmF0aW9uIGNvbW1hbmQgb3IgYWRkIHRoZSBmb2xsb3dpbmcgdG8geW91ciBgY29uZmlnL2Vudmlyb25tZW50cy90ZXN0LnJiYDoKCmBgYHJ1YnkKUlNwZWMuY29uZmlndXJlIGRvIHxjb25maWd8CiAgY29uZmlnLnJzd2FnX2RyeV9ydW4gPSBmYWxzZQplbmQKYGBgCgojIyMjIFJ1bm5pbmcgdGVzdHMgd2l0aG91dCBkb2N1bWVudGluZyAjIyMjCgpJZiB5b3Ugd2FudCB0byB1c2UgUnN3YWcgZm9yIHRlc3Rpbmcgd2l0aG91dCBhZGRpbmcgaXQgdG8geW91IHN3YWdnZXIgZG9jcywgeW91IGNhbiBwcm92aWRlIHRoZSBkb2N1bWVudCB0YWc6CmBgYHJ1YnkKZGVzY3JpYmUgJ0Jsb2dzIEFQSScgZG8KICBwYXRoICcvYmxvZ3Mve2Jsb2dfaWR9JyBkbwogICAgZ2V0ICdSZXRyaWV2ZXMgYSBibG9nJyBkbwogICAgICAjIGRvY3VtZW50YXRpb24gaXMgbm93IGRpc2FibGVkIGZvciB0aGlzIHJlc3BvbnNlIG9ubHkKICAgICAgcmVzcG9uc2UgMjAwLCAnYmxvZyBmb3VuZCcsIGRvY3VtZW50OiBmYWxzZSBkbwogICAgICAgIC4uLgpgYGAKCllvdSBjYW4gYWxzbyByZWVuYWJsZSBkb2N1bWVudGF0aW9uIGZvciBzcGVjaWZpYyByZXNwb25zZXMgb25seToKYGBgcnVieQojIGRvY3VtZW50YXRpb24gaXMgbm93IGRpc2FibGVkCmRlc2NyaWJlICdCbG9ncyBBUEknLCBkb2N1bWVudDogZmFsc2UgZG8KICBwYXRoICcvYmxvZ3Mve2Jsb2dfaWR9JyBkbwogICAgZ2V0ICdSZXRyaWV2ZXMgYSBibG9nJyBkbwogICAgICAjIGRvY3VtZW50YXRpb24gaXMgcmVlbmFibGVkIGZvciB0aGlzIHJlc3BvbnNlIG9ubHkKICAgICAgcmVzcG9uc2UgMjAwLCAnYmxvZyBmb3VuZCcsIGRvY3VtZW50OiB0cnVlIGRvCiAgICAgICAgLi4uCiAgICAgIGVuZAoKICAgICAgcmVzcG9uc2UgNDAxLCAnc3BlY2lhbCBjYXNlJyBkbwogICAgICAgIC4uLgogICAgICBlbmQKYGBgCgojIyMjIyByc3dhZyBoZWxwZXIgbWV0aG9kcyAjIyMjIwo8IS0tClRoZXJlIGFyZSBzb21lIGhlbHBlciBtZXRob2RzIHRvIGhlbHAgd2l0aCBkb2N1bWVudGluZyByZXF1ZXN0IGJvZGllcy4KYGBgcnVieQpkZXNjcmliZSAnQmxvZ3MgQVBJJywgdHlwZTogOnJlcXVlc3QsIG9wZW5hcGlfc3BlYzogJ3YxL3N3YWdnZXIuanNvbicgZG8KICBsZXQoOmFwaV9rZXkpIHsgJ2Zha2Vfa2V5JyB9CgogIHBhdGggJy9ibG9ncycgZG8KICAgIHBvc3QgJ0NyZWF0ZXMgYSBibG9nJyBkbwogICAgICB0YWdzICdCbG9ncycKICAgICAgZGVzY3JpcHRpb24gJ0NyZWF0ZXMgYSBuZXcgYmxvZyBmcm9tIHByb3ZpZGVkIGRhdGEnCiAgICAgIG9wZXJhdGlvbklkICdjcmVhdGVCbG9nJwogICAgICBjb25zdW1lcyAnYXBwbGljYXRpb24vanNvbicKICAgICAgcHJvZHVjZXMgJ2FwcGxpY2F0aW9uL2pzb24nCgogICAgICByZXF1ZXN0X2JvZHlfanNvbiBzY2hlbWE6IHsgJyRyZWYnID0+ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9ibG9nJyB9LAogICAgICAgICAgICAgICAgICAgICAgICBleGFtcGxlczogOmJsb2cKCiAgICAgIHJlcXVlc3RfYm9keV90ZXh0X3BsYWluCiAgICAgIHJlcXVlc3RfYm9keV94bWwgc2NoZW1hOiB7ICckcmVmJyA9PiAnIy9jb21wb25lbnRzL3NjaGVtYXMvYmxvZycgfQoKICAgICAgbGV0KDpibG9nKSB7IHsgYmxvZzogeyB0aXRsZTogJ2ZvbycsIGNvbnRlbnQ6ICdiYXInIH0gfSB9CgogICAgICByZXNwb25zZSAnMjAxJywgJ2Jsb2cgY3JlYXRlZCcgZG8KICAgICAgICBzY2hlbWEgJyRyZWYnID0+ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9ibG9nJwogICAgICAgIHJ1bl90ZXN0IQogICAgICBlbmQKCiAgICAgIHJlc3BvbnNlICc0MjInLCAnaW52YWxpZCByZXF1ZXN0JyBkbwogICAgICAgIHNjaGVtYSAnJHJlZicgPT4gJyMvY29tcG9uZW50cy9zY2hlbWFzL2Vycm9yc19vYmplY3QnCiAgICAgICAgbGV0KDpibG9nKSB7IHsgYmxvZzogeyB0aXRsZTogJ2ZvbycgfSB9IH0KCiAgICAgICAgcnVuX3Rlc3QhIGRvIHxyZXNwb25zZXwKICAgICAgICAgIGV4cGVjdChyZXNwb25zZS5ib2R5KS50byBpbmNsdWRlKCJjYW4ndCBiZSBibGFuayIpCiAgICAgICAgZW5kCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCmVuZApgYGAKCkluIHRoZSBhYm92ZSBleGFtcGxlLCB3ZSBzZWUgbWV0aG9kcyBgYGByZXF1ZXN0X2JvZHlfanNvbmBgYCBgYGByZXF1ZXN0X2JvZHlfcGxhaW5gYGAgYGBgcmVxdWVzdF9ib2R5X3htbGBgYC4KVGhlc2UgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBqc29uLCBwbGFpbiB0ZXh0IGFuZCB4bWwgYm9keS4gVGhleSBhcmUganVzdCB3cmFwcGVyIG1ldGhvZHMgdG8gc2V0dXAgcG9zdGluZyBKU09OLCBwbGFpbiB0ZXh0IG9yIHhtbCBpbnRvIHlvdXIgZW5kcG9pbnQuClRoZSBzaW1wbGVzdCBtb3N0IGNvbW1vbiB1c2FnZSBpcyBmb3IganNvbiBmb3JtYXR0ZWQgYm9keSB0byB1c2UgdGhlIHNjaGVtYTogdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhlIHNjaGVtYSBmb3IgdGhlIHJlcXVlc3QgYm9keQphbmQgdGhlIGV4YW1wbGVzOiA6YmxvZyB3aGljaCB3aWxsIGNyZWF0ZSBhIG5hbWVkIGV4YW1wbGUgImJsb2ciIHVuZGVyIHRoZSAicmVxdWVzdEJvZHkgLyBjb250ZW50IC8gYXBwbGljYXRpb24vanNvbiAvIGV4YW1wbGVzIiBzZWN0aW9uLgpBZ2FpbiwgZG9jdW1lbnRpbmcgcmVxdWVzdCByZXNwb25zZSBleGFtcGxlcyBjaGFuZ2VkIGluIE9wZW4gQVBJIDMuMC4gVGhlIGV4YW1wbGUgYWJvdmUgd291bGQgZ2VuZXJhdGUgYSBzd2FnZ2VyLmpzb24gc25pcHBldCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKCmBgYGpzb24KICAgICAgICAuLi4KICAgICAgICB7InJlcXVlc3RCb2R5IjogewogICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZSwKICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAiZXhhbXBsZXMiOiB7CiAgICAgICAgICAgICAgICAiYmxvZyI6IHsgIC8vIHRha2VzIHRoZSBuYW1lIGZyb20gIGV4YW1wbGVzOiA6YmxvZyBhYm92ZQogICAgICAgICAgICAgICAgICAidmFsdWUiOiB7ICAvL3RoaXMgaXMgb3BlbiBhcGkgMy4wIHN0cnVjdHVyZSAtPiBodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2FkZGluZy1leGFtcGxlcy8KICAgICAgICAgICAgICAgICAgICAiYmxvZyI6IHsgLy8gaGVyZSBpcyB0aGUgYWN0dWFsIEpTT04gcGF5bG9hZCB0aGF0IGlzIHN1Ym1pdHRlZCB0byB0aGUgc2VydmljZSwgYW5kIHNob3dzIHVwIGluIHN3YWdnZXIgVUkgYXMgYW4gZXhhbXBsZQogICAgICAgICAgICAgICAgICAgICAgInRpdGxlIjogImZvbyIsCiAgICAgICAgICAgICAgICAgICAgICAiY29udGVudCI6ICJiYXIiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvYmxvZyIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ0ZXN0L3BsYWluIjogewogICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAiYXBwbGljYXRpb24veG1sIjogewogICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9ibG9nIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgfQpgYGAKCipOT1RFOiogZm9yIHRoaXMgZXhhbXBsZSByZXF1ZXN0IGJvZHkgdG8gd29yayBpbiB0aGUgdGVzdHMgcHJvcGVybHksIHlvdSBuZWVkIHRvIGBgbGV0YGAgYSB2YXJpYWJsZSBuYW1lZCAqYmxvZyouClRoZSB2YXJpYWJsZSB3aXRoIHRoZSBtYXRjaGluZyBuYW1lIChibG9nIGluIHRoaXMgY2FzZSkgaXMgZXZhbC1lZCBhbmQgY2FwdHVyZWQgdG8gYmUgcGxhY2VkIGluIHRoZSBleGFtcGxlcyBzZWN0aW9uLgpUaGlzIGBgYGxldGBgYCB2YWx1ZSBpcyB1c2VkIGluIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IHRvIHJ1biB0aGUgdGVzdCBBTkQgY2FwdHVyZWQgYW5kIGluamVjdGVkIGludG8gdGhlIHJlcXVlc3RCb2R5IHNlY3Rpb24uCgojIyMjIyByc3dhZyByZXNwb25zZSBleGFtcGxlcyAjIyMjIwoKSW4gdGhlIHNhbWUgd2F5IHRoYXQgcmVxdWVzdEJvZHkgZXhhbXBsZXMgY2FuIGJlIGNhcHR1cmVkIGFuZCBpbmplY3RlZCBpbnRvIHRoZSBzd2FnZ2VyIG91dHB1dCwgcmVzcG9uc2UgZXhhbXBsZXMgY2FuIGFsc28gYmUgY2FwdHVyZWQuClVzaW5nIHRoZSBhYm92ZSBleGFtcGxlLCB3aGVuIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IGlzIHJ1biAtIHRoZSBzd2FnZ2VyIHdvdWxkIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBzbmlwcGV0IHByb3ZpZGluZyBtb3JlIHVzZWZ1bCByZWFsIHdvcmxkIGV4YW1wbGVzCmNhcHR1cmluZyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgZXhlY3V0aW9uIG9mIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0LiBBZ2FpbiAzLjAgc3dhZ2dlciBjaGFuZ2VkIHRoZSBzdHJ1Y3R1cmUgb2YgaG93IHRoZXNlIGFyZSBkb2N1bWVudGVkLgoKYGBganNvbgogICAgICAgLi4uICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImJsb2cgY3JlYXRlZCIsCiAgICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgImV4YW1wbGUiOiB7CiAgICAgICAgICAgICAgICAgICJpZCI6IDEsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJmb28iLAogICAgICAgICAgICAgICAgICAiY29udGVudCI6ICJiYXIiLAogICAgICAgICAgICAgICAgICAidGh1bWJuYWlsIjogbnVsbAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL2Jsb2ciCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQyMiI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImludmFsaWQgcmVxdWVzdCIsCiAgICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgImV4YW1wbGUiOiB7CiAgICAgICAgICAgICAgICAgICJlcnJvcnMiOiB7CiAgICAgICAgICAgICAgICAgICAgImNvbnRlbnQiOiBbCiAgICAgICAgICAgICAgICAgICAgICAiY2FuJ3QgYmUgYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvZXJyb3JzX29iamVjdCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CmBgYAogLS0+CiMjIyBSb3V0ZSBQcmVmaXggZm9yIFN3YWdnZXIgSlNPTiBFbmRwb2ludHMgIyMjCgpUaGUgZnVuY3Rpb25hbGl0eSB0byBleHBvc2UgU3dhZ2dlciBmaWxlcywgc3VjaCBhcyB0aG9zZSBnZW5lcmF0ZWQgYnkgcnN3YWctc3BlY3MsIGFzIEpTT04gZW5kcG9pbnRzIGlzIGltcGxlbWVudGVkIGFzIGEgUmFpbHMgRW5naW5lLiBBcyB3aXRoIGFueSBFbmdpbmUsIHlvdSBjYW4gY2hhbmdlIGl0cyBtb3VudCBwcmVmaXggaW4gX3JvdXRlcy5yYl86CgpgYGBydWJ5ClRlc3RBcHA6OkFwcGxpY2F0aW9uLnJvdXRlcy5kcmF3IGRvCiAgLi4uCgogIG1vdW50IFJzd2FnOjpBcGk6OkVuZ2luZSA9PiAneW91ci1jdXN0b20tcHJlZml4JwplbmQKYGBgCgpBc3N1bWluZyBhIFN3YWdnZXIgZmlsZSBleGlzdHMgYXQgJmx0O29wZW5hcGlfcm9vdCZndDsvdjEvc3dhZ2dlci5qc29uLCB0aGlzIGNvbmZpZ3VyYXRpb24gd291bGQgZXhwb3NlIHRoZSBmaWxlIGFzIHRoZSBmb2xsb3dpbmcgSlNPTiBlbmRwb2ludDoKCmBgYApHRVQgaHR0cDovLzxob3N0bmFtZT4veW91ci1jdXN0b20tcHJlZml4L3YxL3N3YWdnZXIuanNvbgpgYGAKCiMjIyBSb290IExvY2F0aW9uIGZvciBTd2FnZ2VyIEZpbGVzICMjIwoKWW91IGNhbiBhZGp1c3QgdGhpcyBpbiB0aGUgX3Jzd2FnX2FwaS5yYl8gaW5pdGlhbGl6ZXIgdGhhdCdzIGluc3RhbGxlZCB3aXRoIF9fcnNwZWMtYXBpX186CgpgYGBydWJ5ClJzd2FnOjpBcGkuY29uZmlndXJlIGRvIHxjfAogIGMub3BlbmFwaV9yb290ID0gUmFpbHMucm9vdC50b19zICsgJy95b3VyLWN1c3RvbS1mb2xkZXItbmFtZScKICAuLi4KZW5kCmBgYAoKX19OT1RFX186IElmIHlvdSdyZSB1c2luZyByc3dhZy1zcGVjcyB0byBnZW5lcmF0ZSBTd2FnZ2VyIGZpbGVzLCB5b3UnbGwgd2FudCB0byBlbnN1cmUgdGhleSBib3RoIHVzZSB0aGUgc2FtZSAmbHQ7b3BlbmFwaV9yb290Jmd0Oy4gVGhlIHJlYXNvbiBmb3Igc2VwYXJhdGUgc2V0dGluZ3MgaXMgdG8gbWFpbnRhaW4gaW5kZXBlbmRlbmNlIGJldHdlZW4gdGhlIHR3byBnZW1zLiBGb3IgZXhhbXBsZSwgeW91IGNvdWxkIGluc3RhbGwgcnN3YWctYXBpIGluZGVwZW5kZW50bHkgYW5kIGNyZWF0ZSB5b3VyIFN3YWdnZXIgZmlsZXMgbWFudWFsbHkuCgojIyMgRHluYW1pYyBWYWx1ZXMgZm9yIFN3YWdnZXIgSlNPTiAjIwoKVGhlcmUgbWF5IGJlIGNhc2VzIHdoZXJlIHlvdSBuZWVkIHRvIGFkZCBkeW5hbWljIHZhbHVlcyB0byB0aGUgU3dhZ2dlciBKU09OIHRoYXQncyByZXR1cm5lZCBieSByc3dhZy1hcGkuIEZvciBleGFtcGxlLCB5b3UgbWF5IHdhbnQgdG8gcHJvdmlkZSBhbiBleHBsaWNpdCBob3N0IG5hbWUuIFJhdGhlciB0aGFuIGhhcmRjb2RpbmcgaXQsIHlvdSBjYW4gY29uZmlndXJlIGEgZmlsdGVyIHRoYXQncyBleGVjdXRlZCBwcmlvciB0byBzZXJpYWxpemluZyBldmVyeSBTd2FnZ2VyIGRvY3VtZW50OgoKYGBgcnVieQpSc3dhZzo6QXBpLmNvbmZpZ3VyZSBkbyB8Y3wKICAuLi4KCiAgYy5zd2FnZ2VyX2ZpbHRlciA9IGxhbWJkYSB7IHxzd2FnZ2VyLCBlbnZ8IHN3YWdnZXJbJ2hvc3QnXSA9IGVudlsnSFRUUF9IT1NUJ10gfQplbmQKYGBgCgpOb3RlIGhvdyB0aGUgZmlsdGVyIGlzIHBhc3NlZCB0aGUgcmFjayBlbnYgZm9yIHRoZSBjdXJyZW50IHJlcXVlc3QuIFRoaXMgcHJvdmlkZXMgYSBsb3Qgb2YgZmxleGliaWxpdHkuIEZvciBleGFtcGxlLCB5b3UgY2FuIGFzc2lnbiB0aGUgImhvc3QiIHByb3BlcnR5IChhcyBzaG93bikgb3IgeW91IGNvdWxkIGluc3BlY3Qgc2Vzc2lvbiBpbmZvcm1hdGlvbiBvciBhbiBBdXRob3JpemF0aW9uIGhlYWRlciBhbmQgcmVtb3ZlIG9wZXJhdGlvbnMgYmFzZWQgb24gdXNlciBwZXJtaXNzaW9ucy4KCiMjIyBDdXN0b20gSGVhZGVycyBmb3IgU3dhZ2dlciBGaWxlcyAjIyMKCllvdSBjYW4gc3BlY2lmeSBjdXN0b20gaGVhZGVycyBmb3Igc2VydmluZyB5b3VyIGdlbmVyYXRlZCBTd2FnZ2VyIEpTT04uIEZvciBleGFtcGxlIHlvdSBtYXkgd2FudCB0byBmb3JjZSBhIHNwZWNpZmljIGNoYXJzZXQgZm9yIHRoZSAnQ29udGVudC1UeXBlJyBoZWFkZXIuIFlvdSBjYW4gY29uZmlndXJlIGEgaGFzaCBvZiBoZWFkZXJzIHRvIGJlIHNlbnQgd2l0aCB0aGUgcmVxdWVzdDoKCmBgYHJ1YnkKUnN3YWc6OkFwaS5jb25maWd1cmUgZG8gfGN8CiAgLi4uCgogIGMuc3dhZ2dlcl9oZWFkZXJzID0geyAnQ29udGVudC1UeXBlJyA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCcgfQplbmQKYGBgCgpUYWtlIGNhcmUgd2hlbiBvdmVycmlkaW5nIENvbnRlbnQtVHlwZSBpZiB5b3Ugc2VydmUgYm90aCBZQU1MIGFuZCBKU09OIGZpbGVzIGFzIGl0IHdpbGwgbm8gbG9uZ2VyIHN3aXRjaCB0aGUgQ29udGVudC1UeXBlIGhlYWRlciBjb3JyZWN0bHkuCgoKIyMjIEVuYWJsZSBTd2FnZ2VyIEVuZHBvaW50cyBmb3Igc3dhZ2dlci11aSAjIyMKCllvdSBjYW4gdXBkYXRlIHRoZSBfcnN3YWdfdWkucmJfIGluaXRpYWxpemVyLCBpbnN0YWxsZWQgd2l0aCByc3dhZy11aSwgdG8gc3BlY2lmeSB3aGljaCBTd2FnZ2VyIGVuZHBvaW50cyBzaG91bGQgYmUgYXZhaWxhYmxlIHRvIHBvd2VyIHRoZSBkb2N1bWVudGF0aW9uIFVJLiBJZiB5b3UncmUgdXNpbmcgcnN3YWctYXBpLCB0aGVzZSBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgU3dhZ2dlciBlbmRwb2ludHMgaXQgZXhwb3Nlcy4gV2hlbiB0aGUgVUkgaXMgcmVuZGVyZWQsIHlvdSdsbCBzZWUgdGhlc2UgbGlzdGVkIGluIGEgZHJvcC1kb3duIHRvIHRoZSB0b3AgcmlnaHQgb2YgdGhlIHBhZ2U6CgpgYGBydWJ5ClJzd2FnOjpVaS5jb25maWd1cmUgZG8gfGN8CiAgYy5vcGVuYXBpX2VuZHBvaW50ICcvYXBpLWRvY3MvdjEvc3dhZ2dlci5qc29uJywgJ0FQSSBWMSBEb2NzJwogIGMub3BlbmFwaV9lbmRwb2ludCAnL2FwaS1kb2NzL3YyL3N3YWdnZXIuanNvbicsICdBUEkgVjIgRG9jcycKZW5kCmBgYAoKIyMjIEVuYWJsZSBTaW1wbGUgQmFzaWMgQXV0aCBmb3Igc3dhZ2dlci11aQoKWW91IGNhbiBhbHNvIHVwZGF0ZSB0aGUgX3Jzd2FnX3VpLnJiXyBpbml0aWFsaXplciwgaW5zdGFsbGVkIHdpdGggcnN3YWctdWkgdG8gc3BlY2lmeSBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBzaG91bGQgeW91IHdhbnQgdG8ga2VlcCB5b3VyIGRvY3VtZW50YXRpb24gcHJpdmF0ZS4KCmBgYHJ1YnkKUnN3YWc6OlVpLmNvbmZpZ3VyZSBkbyB8Y3wKICBjLmJhc2ljX2F1dGhfZW5hYmxlZCA9IHRydWUKICBjLmJhc2ljX2F1dGhfY3JlZGVudGlhbHMgJ3VzZXJuYW1lJywgJ3Bhc3N3b3JkJwplbmQKYGBgCgojIyMgUm91dGUgUHJlZml4IGZvciB0aGUgc3dhZ2dlci11aSAjIyMKClNpbWlsYXIgdG8gcnN3YWctYXBpLCB5b3UgY2FuIGN1c3RvbWl6ZSB0aGUgc3dhZ2dlci11aSBwYXRoIGJ5IGNoYW5naW5nIGl0cyBtb3VudCBwcmVmaXggaW4gX3JvdXRlcy5yYl86CgpgYGBydWJ5ClRlc3RBcHA6OkFwcGxpY2F0aW9uLnJvdXRlcy5kcmF3IGRvCiAgLi4uCgogIG1vdW50IFJzd2FnOjpBcGk6OkVuZ2luZSA9PiAnYXBpLWRvY3MnCiAgbW91bnQgUnN3YWc6OlVpOjpFbmdpbmUgPT4gJ3lvdXItY3VzdG9tLXByZWZpeCcKZW5kCmBgYAoKIyMjIEN1c3RvbWl6aW5nIHRoZSBzd2FnZ2VyLXVpICMjIwoKVGhlIHN3YWdnZXItdWkgcHJvdmlkZXMgc2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBpdHMgYmVoYXZpb3IsIGFsbCBvZiB3aGljaCBhcmUgZG9jdW1lbnRlZCBoZXJlIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL3RyZWUvMi54I3N3YWdnZXJ1aS4gSWYgeW91IG5lZWQgdG8gdHdlYWsgdGhlc2Ugb3IgY3VzdG9taXplIHRoZSBvdmVyYWxsIGxvb2sgYW5kIGZlZWwgb2YgeW91ciBzd2FnZ2VyLXVpLCB0aGVuIHlvdSdsbCBuZWVkIHRvIHByb3ZpZGUgeW91ciBvd24gdmVyc2lvbiBvZiBpbmRleC5odG1sLiBZb3UgY2FuIGRvIHRoaXMgd2l0aCB0aGUgZm9sbG93aW5nIGdlbmVyYXRvci4KCmBgYHJ1YnkKcmFpbHMgZyByc3dhZzp1aTpjdXN0b20KCmBgYAoKVGhpcyB3aWxsIGFkZCBhIGxvY2FsIHZlcnNpb24gdGhhdCB5b3UgY2FuIG1vZGlmeSBhdCBfYXBwL3ZpZXdzL3Jzd2FnL3VpL2hvbWUvaW5kZXguaHRtbC5lcmJfLiBGb3IgZXhhbXBsZSwgaXQgd2lsbCBsZXQgeW91IHRvIGFkZCB5b3VyIG93biBgPHRpdGxlPmAgYW5kIGZhdmljb24uCgpUbyByZXBsYWNlIHRoZSAqIlN3YWdnZXIgc3BvbnNvcmVkIGJ5IiogYnJhbmQgaW1hZ2UsIHlvdSBjYW4gYWRkIHRoZSBmb2xsb3dpbmcgc2NyaXB0IHRvIHRoZSBnZW5lcmF0ZWQgZmlsZToKCmBgYGh0bWwKPHNjcmlwdD4KICAoZnVuY3Rpb24gKCkgewogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkgewogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICB2YXIgbG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmsnKTsKCiAgICAgICAgICBsb2dvWzBdLmNoaWxkcmVuWzBdLmFsdCA9ICJNeSBBUEkiOwogICAgICAgICAgbG9nb1swXS5jaGlsZHJlblswXS5zcmMgPSAiL2Zhdmljb24ucG5nIjsKICAgICAgfSk7CiAgfSk7IH0pKCk7Cjwvc2NyaXB0PgpgYGAKClRoZSBhYm92ZSBzY3JpcHQgd291bGQgZXhwZWN0IHRvIGZpbmQgYW4gaW1hZ2UgbmFtZWQgYGZhdmljb24ucG5nYCBpbiB0aGUgcHVibGljIGZvbGRlci4KCiMjIyBTZXJ2ZSBVSSBBc3NldHMgRGlyZWN0bHkgZnJvbSB5b3VyIFdlYiBTZXJ2ZXIKClJzd2FnIHNoaXBzIHdpdGggYW4gZW1iZWRkZWQgdmVyc2lvbiBvZiB0aGUgW3N3YWdnZXItdWldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKSwgd2hpY2ggaXMgYSBzdGF0aWMgY29sbGVjdGlvbiBvZiBKYXZhU2NyaXB0IGFuZCBDU1MgZmlsZXMuIFRoZXNlIGFzc2V0cyBhcmUgc2VydmVkIGJ5IHRoZSByc3dhZy11aSBtaWRkbGV3YXJlLiBIb3dldmVyLCBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSB5b3UgbWF5IHdhbnQgdG8gc2VydmUgdGhlbSBkaXJlY3RseSBmcm9tIHlvdXIgd2ViIHNlcnZlciAoZS5nLiBBcGFjaGUgb3IgTkdJTlgpLiBUbyBkbyB0aGlzLCB5b3UnbGwgbmVlZCB0byBjb3B5IHRoZW0gdG8gdGhlIHdlYiBzZXJ2ZXIgcm9vdC4gVGhpcyBpcyB0aGUgInB1YmxpYyIgZm9sZGVyIGluIGEgdHlwaWNhbCBSYWlscyBhcHBsaWNhdGlvbi4KCmBgYApidW5kbGUgZXhlYyByYWtlIHJzd2FnOnVpOmNvcHlfYXNzZXRzW3B1YmxpYy9hcGktZG9jc10KYGBgCgpfX05PVEU6X186IFRoZSBwcm92aWRlZCBzdWJmb2xkZXIgTVVTVCBjb3JyZXNwb25kIHRvIHRoZSBVSSBtb3VudCBwcmVmaXggLSAiYXBpLWRvY3MiIGJ5IGRlZmF1bHQuCgoKTm90ZXMgdG8gdGVzdCBzd2FnZ2VyIG91dHB1dCBsb2NhbGx5IHdpdGggc3dhZ2dlciBlZGl0b3IKYGBgCmRvY2tlciBwdWxsIHN3YWdnZXJhcGkvc3dhZ2dlci1lZGl0b3IKYGBgCmBgYApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgc3dhZ2dlcmFwaS9zd2FnZ2VyLWVkaXRvcgpgYGAKVGhpcyB3aWxsIHJ1biB0aGUgc3dhZ2dlciBlZGl0b3IgaW4gdGhlIGRvY2tlciBkYWVtb24gYW5kIGNhbiBiZSBhY2Nlc3NlZAphdCBgYGBodHRwOi8vbG9jYWxob3N0YGBgLiBGcm9tIGhlcmUsIHlvdSBjYW4gdXNlIHRoZSBVSSB0byBsb2FkIHRoZSBnZW5lcmF0ZWQgc3dhZ2dlci5qc29uIHRvIHZhbGlkYXRlIHRoZSBvdXRwdXQuCgojIyMgQ3VzdG9tIDpnZXR0ZXIgb3B0aW9uIGZvciBwYXJhbWV0ZXIKClRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIFJzcGVjIFtgaW5jbHVkZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9yc3BlYy9yc3BlYy1yYWlscy9ibG9iLzQwMjYxYmI3Mjg3NWMwMGE2ZTRhMGNhMmFjNjk3YjY2MGQ0ZThkOWMvc3BlYy9zdXBwb3J0L2dlbmVyYXRvcnMucmIjTDE4KSBtYXRjaGVyIGFuZCBvdGhlciBwb3NzaWJsZSBpbnRlcnNlY3Rpb25zIGxpa2UgYHN0YXR1c2AgbWV0aG9kOgoKYGBgCi4uLgpwYXJhbWV0ZXIgbmFtZTogOnN0YXR1cywKICAgICAgICAgIGdldHRlcjogOmZpbHRlcl9zdGF0dXMsCiAgICAgICAgICBpbjogOnF1ZXJ5LAogICAgICAgICAgc2NoZW1hOiB7CiAgICAgICAgICAgIHR5cGU6IDpzdHJpbmcsCiAgICAgICAgICAgIGVudW06ICV3W29uZSB0d28gdGhyZWVdLAogICAgICAgICAgfSwgcmVxdWlyZWQ6IGZhbHNlCgpsZXQoOnN0YXR1cykgeyBuaWwgfSAjIHdpbGwgbm90IGJlIHVzZWQgaW4gcXVlcnkgc3RyaW5nCmxldCg6ZmlsdGVyX3N0YXR1cykgeyAnb25lJyB9ICMgYCZzdGF0dXM9b25lYCB3aWxsIGJlIHByb3ZpZGVkIGluIGZpbmFsIHF1ZXJ5CmBgYAoKIyMjIExpbnRpbmcgd2l0aCBSdWJvQ29wIFJTcGVjCgpXaGVuIHlvdSBsaW50IHlvdXIgUlNwZWMgc3BlYyBmaWxlcyB3aXRoIGBydWJvY29wLXJzcGVjYCwgaXQgd2lsbCBmYWlsIHRvIGRldGVjdCBSU3BlYyBhbGlhc2VzIHRoYXQgUnN3YWcgZGVmaW5lcy4KTWFrZSBzdXJlIHRvIHVzZSBgcnVib2NvcC1yc3BlY2AgMi4wIG9yIG5ld2VyIGFuZCBhZGQgdGhlIGZvbGxvd2luZyB0byB5b3VyIGAucnVib2NvcC55bWxgOgoKYGBgeWFtbAppbmhlcml0X2dlbToKICByc3dhZy1zcGVjczogLnJ1Ym9jb3BfcnNwZWNfYWxpYXNfY29uZmlnLnltbApgYGAK readmeEtag: '"6021115c40aabbb2f3045d90332cd689501f6f2f"' readmeLastModified: Tue, 13 Aug 2024 19:33:36 GMT repositoryId: 29151578 description: Seamlessly adds a Swagger to Rails-based API's created: '2015-01-12T19:08:10Z' updated: '2024-09-04T02:44:38Z' language: Ruby archived: false stars: 1949 watchers: 28 forks: 427 owner: rswag logo: https://avatars.githubusercontent.com/u/55741034?v=4 license: MIT repoEtag: '"bfe37aae1e7f9af444769a692909f14378173d1eb7444e4921eb158e25e08063"' repoLastModified: Wed, 04 Sep 2024 02:44:38 GMT foundInMaster: true v3_1_link: https://github.com/rswag/rswag/pull/714 - source: https://openapi.tools/ name: 🌿 Fern category: - Code Generators - SDK - Documentation - Server link: https://buildwithfern.com language: - TypeScript - Java - Python - Go - Ruby - C# - PHP - Swift - and Rust - Express.js - FastAPI - Spring Boot source_description: - >- Generate SDKs in popular languages and publish them to package managers (like npm). - null - >- Generate server-side boilerplate code from OpenAPI and then implement your business logic. v2: true v3: true repository: https://github.com/fern-api/fern id: 9a06b3cc23e65a92ab1f012b26743de1 repositoryMetadata: base64Readme: >- PGJyLz4KPGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3d3dy5idWlsZHdpdGhmZXJuLmNvbS8/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT1yZWFkbWUmdXRtX2NhbXBhaWduPWZlcm4mdXRtX2NvbnRlbnQ9bG9nbyI+CiAgICA8aW1nIHNyYz0iL2Zlcm4vaW1hZ2VzL2xvZ28tcHJpbWFyeS5wbmciIGhlaWdodD0iODAiIGFsaWduPSJjZW50ZXIiIGFsdD0iaGVhZGVyIiAvPgogIDwvYT4KPGJyLz4KCjxici8+CgpbIVsyMDIzIFkgQ29tYmluYXRvciBTdGFydHVwXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1klMjBDb21iaW5hdG9yLTIwMjMtb3JhbmdlKV0oaHR0cHM6Ly93d3cueWNvbWJpbmF0b3IuY29tL2NvbXBhbmllcy9mZXJuKQohW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQtYmx1ZSkKClshW1NsYWNrXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3NsYWNrLXBpbmsuc3ZnKV0oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L2Zlcm4tY29tbXVuaXR5L3NoYXJlZF9pbnZpdGUvenQtMmRwZnRmbWlmLU11QWVnbDhBZlBfUEs4czJ0eDM1MFEpClshW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUmVhZCUyMG91ciUyMERvY3VtZW50YXRpb24tYmxhY2s/bG9nbz1ib29rKV0oaHR0cHM6Ly9idWlsZHdpdGhmZXJuLmNvbS9sZWFybi9ob21lP3V0bV9zb3VyY2U9ZmVybi1hcGkvZmVybi9yZWFkbWUtcmVhZC1vdXItZG9jdW1lbnRhdGlvbikKCjwvZGl2PgoKRmVybiBpcyBhIHRvb2xraXQgdGhhdCBhbGxvd3MgeW91IHRvIGlucHV0IHlvdXIgQVBJIERlZmluaXRpb24gYW5kIG91dHB1dCBTREtzIGFuZCBBUEkgZG9jdW1lbnRhdGlvbi4gRmVybiBpcyBjb21wYXRpYmxlIHdpdGggdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiAoZm9ybWVybHkgU3dhZ2dlcikuCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogICAgPGltZyBzcmM9Ii9mZXJuL2ltYWdlcy9vdmVydmlldy5wbmciIHdpZHRoPSI3MDAiIGFsdD0iT3ZlcnZpZXcgRGlhZ3JhbSI+CjwvZGl2PgoKIyMg8J+MvyBTREtzCgpUaGUgRmVybiB0b29sa2l0IGlzIGF2YWlsYWJsZSB2aWEgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlIChDTEkpIGFuZCByZXF1aXJlcyBOb2RlIDE4Ky4gVG8gaW5zdGFsbCBpdCwgcnVuOgoKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBmZXJuLWFwaQpgYGAKCkluaXRpYWxpemUgRmVybiB3aXRoIHlvdXIgT3BlbkFQSSBzcGVjOgoKYGBgYmFzaApmZXJuIGluaXQgLS1vcGVuYXBpIC4vcGF0aC90by9vcGVuYXBpLnltbAojIG9yCmZlcm4gaW5pdCAtLW9wZW5hcGkgaHR0cHM6Ly9saW5rLmJ1aWxkd2l0aGZlcm4uY29tL3BldHN0b3JlLW9wZW5hcGkKYGBgCgpZb3VyIGRpcmVjdG9yeSBzaG91bGQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmc6CgpgYGB5YW1sCmZlcm4vCuKUnOKUgCBmZXJuLmNvbmZpZy5qc29uCuKUnOKUgCBnZW5lcmF0b3JzLnltbCAjIGdlbmVyYXRvcnMgeW91J3JlIHVzaW5nCuKUlOKUgCBvcGVuYXBpLwogIOKUlOKUgCBvcGVuYXBpLmpzb24gIyB5b3VyIG9wZW5hcGkgZG9jdW1lbnQKYGBgCgpGaW5hbGx5LCB0byBpbnZva2UgdGhlIGdlbmVyYXRvciwgcnVuOgoKYGBgYmFzaApmZXJuIGdlbmVyYXRlCmBgYAoK8J+OiSBPbmNlIHRoZSBjb21tYW5kIGNvbXBsZXRlcywgeW91J2xsIHNlZSB5b3VyIFNESyBpbiBgL2dlbmVyYXRlZC9zZGtzL3R5cGVzY3JpcHRgLgoKIyMg8J+MvyBBUEkgRG9jdW1lbnRhdGlvbgoKRmVybiBjYW4gYWxzbyBidWlsZCBhbmQgaG9zdCBhIGRvY3VtZW50YXRpb24gd2Vic2l0ZSB3aXRoIGFuIGF1dG8tZ2VuZXJhdGVkIEFQSSByZWZlcmVuY2UuIFdyaXRlIGFkZGl0aW9uYWwgcGFnZXMgaW4gbWFya2Rvd24gYW5kIGhhdmUgdGhlbSB2ZXJzaW9uZWQgd2l0aCBnaXQuIFNlYXJjaCwgU0VPLCBkYXJrIG1vZGUsIGFuZCBwb3B1bGFyIGNvbXBvbmVudHMgYXJlIHByb3ZpZGVkIG91dC1vZi10aGUtYm94LiBQbHVzLCB5b3UgY2FuIGN1c3RvbWl6ZSB0aGUgY29sb3JzLCBmb250LCBsb2dvLCBhbmQgZG9tYWluIG5hbWUuCgpDaGVjayBvdXQgZG9jcyBidWlsdCB3aXRoIEZlcm46CgotIFtkb2NzLnZlbGx1bS5haV0oaHR0cHM6Ly9kb2NzLnZlbGx1bS5haSkKLSBbZG9jcy5zdXBlcmFnZW50LnNoXShodHRwczovL2RvY3Muc3VwZXJhZ2VudC5zaC8pCi0gW2RvY3MuaHVtZS5haV0oaHR0cHM6Ly9kb2NzLmh1bWUuYWkvKQoKR2V0IHN0YXJ0ZWQgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJuLWFwaS9kb2NzLXN0YXJ0ZXItb3BlbmFwaSkuCgojIyDwn4y/IEdlbmVyYXRvcnMKCkdlbmVyYXRvcnMgYXJlIHByb2Nlc3MgdGhhdCB0YWtlIHlvdXIgQVBJIERlZmluaXRpb24gYXMgaW5wdXQgYW5kIG91dHB1dCBhcnRpZmFjdHMgKFNES3MsClBvc3RtYW4gQ29sbGVjdGlvbnMsIFNlcnZlciBib2lsZXJwbGF0ZSwgZXRjLikuIFRvIGFkZCBhIGdlbmVyYXRvciBydW4gYGZlcm4gYWRkIDxnZW5lcmF0b3IgaWQ+YAoKIyMjIFNESyBHZW5lcmF0b3JzCgp8IEdlbmVyYXRvciBJRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGF0ZXN0IFZlcnNpb24gfCBDaGFuZ2Vsb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFbnRyeXBvaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYGZlcm5hcGkvZmVybi10eXBlc2NyaXB0LW5vZGUtc2RrYCAgICAgfCBbIVtUeXBlc2NyaXB0IEdlbmVyYXRvciBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci92L2Zlcm5hcGkvZmVybi10eXBlc2NyaXB0LW5vZGUtc2RrKV0oLi9nZW5lcmF0b3JzL3R5cGVzY3JpcHQvc2RrL1ZFUlNJT04pIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL3R5cGVzY3JpcHQvc2RrL0NIQU5HRUxPRy5tZCkgICAgIHwgW2NsaS50c10oLi9nZW5lcmF0b3JzL3R5cGVzY3JpcHQvc2RrL2NsaS9zcmMvbm9kZUNsaS50cykgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGZlcm5hcGkvZmVybi1weXRob24tc2RrYCAgICAgICAgICAgICAgfCBbIVtQeXRob24gR2VuZXJhdG9yIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3YvZmVybmFwaS9mZXJuLXB5dGhvbi1zZGspXSguL2dlbmVyYXRvcnMvcHl0aG9uL3Nkay9WRVJTSU9OKSAgICAgICAgICAgICAgICAgIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL3B5dGhvbi9zZGsvQ0hBTkdFTE9HLm1kKSAgICAgICAgIHwgW2NsaS5weV0oLi9nZW5lcmF0b3JzL3B5dGhvbi9zcmMvZmVybl9weXRob24vZ2VuZXJhdG9ycy9zZGsvY2xpLnB5KSAgICAgICAgICAgICB8CnwgYGZlcm5hcGkvZmVybi1qYXZhLXNka2AgICAgICAgICAgICAgICAgfCBbIVtKYXZhIEdlbmVyYXRvciBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci92L2Zlcm5hcGkvZmVybi1qYXZhLXNkayldKC4vZ2VuZXJhdG9ycy9qYXZhL3Nkay9WRVJTSU9OKSAgICAgICAgICAgICAgICAgICAgICAgIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL2phdmEvc2RrL0NIQU5HRUxPRy5tZCkgICAgICAgICAgIHwgW0NsaS5qYXZhXSguL2dlbmVyYXRvcnMvamF2YS9zZGsvc3JjL21haW4vamF2YS9jb20vZmVybi9qYXZhL2NsaWVudC9DbGkuamF2YSkgICB8CnwgYGZlcm5hcGkvZmVybi1ydWJ5LXNka2AgICAgICAgICAgICAgICAgfCBbIVtSdWJ5IEdlbmVyYXRvciBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci92L2Zlcm5hcGkvZmVybi1ydWJ5LXNkayldKC4vZ2VuZXJhdG9ycy9ydWJ5L3Nkay9WRVJTSU9OKSAgICAgICAgICAgICAgICAgICAgICAgIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL3J1Ynkvc2RrL0NIQU5HRUxPRy5tZCkgICAgICAgICAgIHwgW2NsaS50c10oLi9nZW5lcmF0b3JzL3J1Ynkvc2RrL3NyYy9jbGkudHMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGZlcm5hcGkvZmVybi1nby1zZGtgICAgICAgICAgICAgICAgICAgfCBbIVtHbyBHZW5lcmF0b3IgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9mZXJuYXBpL2Zlcm4tZ28tc2RrKV0oLi9nZW5lcmF0b3JzL2dvL3Nkay9WRVJTSU9OKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL2dvL3Nkay9DSEFOR0VMT0cubWQpICAgICAgICAgICAgIHwgW21haW4uZ29dKC4vZ2VuZXJhdG9ycy9nby9jbWQvZmVybi1nby1zZGsvbWFpbi5nbykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGZlcm5hcGkvZmVybi1jc2hhcnAtc2RrYCAgICAgICAgICAgICAgfCBbIVtDIyBHZW5lcmF0b3IgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9mZXJuYXBpL2Zlcm4tY3NoYXJwLXNkayldKC4vZ2VuZXJhdG9ycy9jc2hhcnAvc2RrL1ZFUlNJT04pICAgICAgICAgICAgICAgICAgICAgIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL2NzaGFycC9zZGsvQ0hBTkdFTE9HLm1kKSAgICAgICAgIHwgW2NsaS50c10oLi9nZW5lcmF0b3JzL2NzaGFycC9zZGsvc3JjL2NsaS50cykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyMgU2VydmVyLXNpZGUgR2VuZXJhdG9ycwoKRmVybidzIHNlcnZlci1zaWRlIGdlbmVyYXRvcnMgb3V0cHV0IGJvaWxlcnBsYXRlIGFwcGxpY2F0aW9uIGNvZGUgKG1vZGVscyBhbmQgbmV0d29ya2luZyBsb2dpYykuIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHNwZWMtZmlyc3Qgb3IgQVBJLWZpcnN0IGRldmVsb3BlcnMsCndobyB3cml0ZSB0aGVpciBBUEkgZGVmaW5pdGlvbiAoYXMgYW4gT3BlbkFQSSBzcGVjIG9yIEZlcm4gZGVmaW5pdGlvbikgYW5kIHdhbnQgdG8gZ2VuZXJhdGUgYmFja2VuZCBjb2RlLgoKfCBHZW5lcmF0b3IgSUQgICAgICAgICAgICAgICAgICB8IExhdGVzdCBWZXJzaW9uIHwgQ2hhbmdlbG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRW50cnlwb2ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYGZlcm5hcGkvZmVybi10eXBlc2NyaXB0LWV4cHJlc3NgIHwgWyFbVHlwZXNjcmlwdCBFeHByZXNzIFNlcnZlciBHZW5lcmF0b3IgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9mZXJuYXBpL2Zlcm4tdHlwZXNjcmlwdC1leHByZXNzKV0oLi9nZW5lcmF0b3JzL3R5cGVzY3JpcHQvZXhwcmVzcy9WRVJTSU9OKSB8IFtDSEFOR0VMT0cubWRdKC4vZ2VuZXJhdG9ycy90eXBlc2NyaXB0L2V4cHJlc3MvQ0hBTkdFTE9HLm1kKSB8IFtjbGkudHNdKC4vZ2VuZXJhdG9ycy90eXBlc2NyaXB0L2V4cHJlc3MvY2xpL3NyYy9jbGkudHMpICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZmVybmFwaS9mZXJuLWZhc3RhcGktc2VydmVyYCB8IFshW1B5dGhvbiBGYXN0QVBJIFNlcnZlciBHZW5lcmF0b3IgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9mZXJuYXBpL2Zlcm4tZmFzdGFwaS1zZXJ2ZXIpXSguL2dlbmVyYXRvcnMvcHl0aG9uL2Zhc3RhcGkvVkVSU0lPTikgfCBbQ0hBTkdFTE9HLm1kXSguL2dlbmVyYXRvcnMvcHl0aG9uL2Zhc3RhcGkvQ0hBTkdFTE9HLm1kKSAgICAgfCBbY2xpLnB5XSguL2dlbmVyYXRvcnMvcHl0aG9uL3NyYy9mZXJuX3B5dGhvbi9nZW5lcmF0b3JzL3Nkay9jbGkucHkpICAgICAgICAgICAgICB8CnwgYGZlcm5hcGkvZmVybi1qYXZhLXNwcmluZ2AgICAgfCBbIVtKYXZhIFNwcmluZyBTZXJ2ZXIgR2VuZXJhdG9yIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3YvZmVybmFwaS9mZXJuLWphdmEtc3ByaW5nKV0oLi9nZW5lcmF0b3JzL2phdmEvc3ByaW5nL1ZFUlNJT04pIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL2phdmEvc3ByaW5nL0NIQU5HRUxPRy5tZCkgICAgICAgIHwgW0NsaS5qYXZhXSguL2dlbmVyYXRvcnMvamF2YS9zcHJpbmcvc3JjL21haW4vamF2YS9jb20vZmVybi9qYXZhL3NwcmluZy9DbGkuamF2YSkgfAoKIyMjIE1vZGVsIEdlbmVyYXRvcnMKCkZlcm4ncyBtb2RlbCBnZW5lcmF0b3JzIHdpbGwgb3V0cHV0IHNjaGVtYXMgb3IgdHlwZXMgZGVmaW5lZCBpbiB5b3VyIE9wZW5BUEkgc3BlYyBvciBGZXJuIERlZmluaXRpb24uCgp8IEdlbmVyYXRvciBJRCAgICAgICAgICAgICAgICAgIHwgTGF0ZXN0IFZlcnNpb24gfCBDaGFuZ2Vsb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFbnRyeXBvaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBgZmVybmFwaS9mZXJuLXB5ZGFudGljLW1vZGVsYCB8IFshW1B5ZGFudGljIE1vZGVsIEdlbmVyYXRvciBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci92L2Zlcm5hcGkvZmVybi1weWRhbnRpYy1tb2RlbCldKC4vZ2VuZXJhdG9ycy9weXRob24vcHlkYW50aWMvVkVSU0lPTikgfCBbQ0hBTkdFTE9HLm1kXSguL2dlbmVyYXRvcnMvcHl0aG9uL3B5ZGFudGljL0NIQU5HRUxPRy5tZCkgfCBbY2xpLnB5XSguL2dlbmVyYXRvcnMvcHl0aG9uL3NyYy9mZXJuX3B5dGhvbi9nZW5lcmF0b3JzL3Nkay9jbGkucHkpICAgICAgICAgICB8CnwgYGZlcm5hcGkvamF2YS1tb2RlbGAgICAgIHwgWyFbSmF2YSBNb2RlbCBHZW5lcmF0b3IgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9mZXJuYXBpL2phdmEtbW9kZWwpXSguL2dlbmVyYXRvcnMvamF2YS9tb2RlbC9WRVJTSU9OKSB8IFtDSEFOR0VMT0cubWRdKC4vZ2VuZXJhdG9ycy9qYXZhL21vZGVsL0NIQU5HRUxPRy5tZCkgICAgICAgIHwgW0NsaS5qYXZhXSguL2dlbmVyYXRvcnMvamF2YS9zZGsvc3JjL21haW4vamF2YS9jb20vZmVybi9qYXZhL2NsaWVudC9DbGkuamF2YSkgfAp8IGBmZXJuYXBpL2Zlcm4tcnVieS1tb2RlbGAgICAgIHwgWyFbUnVieSBNb2RlbCBHZW5lcmF0b3IgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9mZXJuYXBpL2Zlcm4tcnVieS1tb2RlbCldKC4vZ2VuZXJhdG9ycy9ydWJ5L21vZGVsL1ZFUlNJT04pfCBbQ0hBTkdFTE9HLm1kXSguL2dlbmVyYXRvcnMvcnVieS9tb2RlbC9DSEFOR0VMT0cubWQpICAgICAgfCBbY2xpLnRzXSguL2dlbmVyYXRvcnMvcnVieS9tb2RlbC9zcmMvY2xpLnRzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGZlcm5hcGkvZmVybi1nby1tb2RlbGAgICAgIHwgWyFbR28gTW9kZWwgR2VuZXJhdG9yIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3YvZmVybmFwaS9mZXJuLWdvLW1vZGVsKV0oLi9nZW5lcmF0b3JzL2dvL21vZGVsL1ZFUlNJT04pfCBbQ0hBTkdFTE9HLm1kXSguL2dlbmVyYXRvcnMvZ28vbW9kZWwvQ0hBTkdFTE9HLm1kKSAgICAgIHwgW21haW4uZ29dKC4vZ2VuZXJhdG9ycy9nby9jbWQvZmVybi1nby1tb2RlbC9tYWluLmdvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyMgU3BlYyBHZW5lcmF0b3JzCgpGZXJuJ3Mgc3BlYyBnZW5lcmF0b3JzIGNhbiBvdXRwdXQgYW4gT3BlbkFQSSBzcGVjIG9yIGEgUG9zdG1hbiBjb2xsZWN0aW9uLgoKPiAqKk5vdGUqKjogVGhlIE9wZW5BUEkgc3BlYyBnZW5lcmF0b3IgaXMgcHJpbWFybHkgaW50ZW5kZWQgZm9yIEZlcm4gRGVmaW5pdGlvbiB1c2Vycy4gVGhpcyBwcmV2ZW50cyBsb2NrLWluIHNvIHRoYXQgb25lIGNhbiBhbHdheXMgZXhwb3J0IHRvIE9wZW5BUEkuCgp8IEdlbmVyYXRvciBJRCAgICAgICAgICAgfCBMYXRlc3QgVmVyc2lvbiB8IENoYW5nZWxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFbnRyeXBvaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGBmZXJuYXBpL2Zlcm4tb3BlbmFwaWAgfCBbIVtPcGVuQVBJIEdlbmVyYXRvciBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci92L2Zlcm5hcGkvZmVybi1vcGVuYXBpKV0oLi9nZW5lcmF0b3JzL29wZW5hcGkvVkVSU0lPTikgfCBbQ0hBTkdFTE9HLm1kXSguL2dlbmVyYXRvcnMvb3BlbmFwaS9DSEFOR0VMT0cubWQpIHwgW2NsaS50c10oLi9nZW5lcmF0b3JzL29wZW5hcGkvc3JjL2NsaS50cykgIHwKfCBgZmVybmFwaS9mZXJuLXBvc3RtYW5gIHwgWyFbUG9zdG1hbiBHZW5lcmF0b3IgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9mZXJuYXBpL2Zlcm4tcG9zdG1hbildKC4vZ2VuZXJhdG9ycy9wb3N0bWFuL1ZFUlNJT04pIHwgW0NIQU5HRUxPRy5tZF0oLi9nZW5lcmF0b3JzL3Bvc3RtYW4vQ0hBTkdFTE9HLm1kKSB8IFtjbGkudHNdKC4vZ2VuZXJhdG9ycy9wb3N0bWFuL3NyYy9jbGkudHMpIHwKCiMjIPCfjL8gQ0xJIENvbW1hbmRzCgpIZXJlJ3MgYSBxdWljayBsb29rIGF0IHRoZSBtb3N0IHBvcHVsYXIgQ0xJIGNvbW1hbmRzLiBWaWV3IHRoZSBkb2N1bWVudGF0aW9uIGZvciBbYWxsIENMSSBjb21tYW5kc10oaHR0cHM6Ly9idWlsZHdpdGhmZXJuLmNvbS9sZWFybi9jbGktYXBpL2NsaS1yZWZlcmVuY2UvY29tbWFuZHMpLgoKYGZlcm4gaW5pdGA6IGFkZHMgYSBuZXcgc3RhcnRlciBBUEkgdG8geW91ciByZXBvc2l0b3J5LgoKYGZlcm4gY2hlY2tgOiB2YWxpZGF0ZSB5b3VyIEFQSSBkZWZpbml0aW9uIGFuZCBGZXJuIGNvbmZpZ3VyYXRpb24uCgpgZmVybiBnZW5lcmF0ZWA6IHJ1biB0aGUgZ2VuZXJhdG9ycyBzcGVjaWZpZWQgaW4gYGdlbmVyYXRvcnMueW1sYCBpbiB0aGUgY2xvdWQuCgpgZmVybiBnZW5lcmF0ZSAtLWxvY2FsYDogcnVuIHRoZSBnZW5lcmF0b3JzIHNwZWNpZmllZCBpbiBgZ2VuZXJhdG9ycy55bWxgIGluIGRvY2tlciBsb2NhbGx5LgoKYGZlcm4gYWRkIDxnZW5lcmF0b3I+YDogaW5jbHVkZSBhIG5ldyBnZW5lcmF0b3IgaW4geW91ciBgZ2VuZXJhdG9ycy55bWxgLiBGb3IgZXhhbXBsZSwgYGZlcm4gYWRkIGZlcm4tcHl0aG9uLXNka2AuCgojIyBBZHZhbmNlZAoKIyMjIEFQSSBGaXJzdAoKRmVybiBzdXBwb3J0cyBkZXZlbG9wZXJzIGFuZCB0ZWFtcyB0aGF0IHdhbnQgdG8gYmUgQVBJLWZpcnN0IG9yIFNwZWMtZmlyc3QuCgpEZWZpbmUgeW91ciBBUEksIGFuZCB1c2UgRmVybiB0byBnZW5lcmF0ZSBtb2RlbHMsIG5ldHdvcmtpbmcgY29kZSBhbmQgYm9pbGVycGxhdGUgYXBwbGljYXRpb24gY29kZS4gVGhlIGdlbmVyYXRlZCBjb2RlIGFkZHMKdHlwZSBzYWZldHkgdG8geW91ciBBUEkgaW1wbGVtZW50YXRpb24gLSBpZiB5b3VyIGJhY2tlbmQgZG9lc24ndCBpbXBsZW1lbnQgdGhlIEFQSSBjb3JyZWN0bHksIGl0IHdvbid0IGNvbXBpbGUuCgpGcmFtZXdvcmtzIGN1cnJlbnRseSBzdXBwb3J0ZWQ6CgotIFtFeHByZXNzXSguL2dlbmVyYXRvcnMvdHlwZXNjcmlwdCkKLSBbU3ByaW5nIEJvb3RdKC4vZ2VuZXJhdG9ycy9qYXZhKQotIFtGYXN0QVBJXSguL2dlbmVyYXRvcnMvcHl0aG9uKQoKIyMjIEZlcm4gRGVmaW5pdGlvbgoKV2hpbGUgd2UgYXJlIGJpZyBmYW5zIG9mIE9wZW5BUEksIHdlIGtub3cgaXQgaXNuJ3QgdGhlIF9lYXNpZXN0XyBmb3JtYXQgdG8gcmVhZCBhbmQgd3JpdGUuIElmIHlvdSdyZSBsb29raW5nIGZvciBhbiBhbHRlcm5hdGl2ZSwKZ2l2ZSB0aGUgRmVybiBEZWZpbml0aW9uIGEgdHJ5LgoKSW5zdGFsbCB0aGUgRmVybiBDTEkgYW5kIGluaXRpYWxpemUgYSBGZXJuIFByb2plY3QuCgpgYGBiYXNoCm5wbSBpbnN0YWxsIC1nIGZlcm4tYXBpCmZlcm4gaW5pdApgYGAKClRoaXMgd2lsbCBjcmVhdGUgdGhlIGZvbGxvd2luZyBmb2xkZXIgc3RydWN0dXJlIGluIHlvdXIgcHJvamVjdDoKCmBgYHlhbWwKZmVybi8K4pSc4pSAIGZlcm4uY29uZmlnLmpzb24gIyByb290LWxldmVsIGNvbmZpZ3VyYXRpb24K4pSc4pSAIGdlbmVyYXRvcnMueW1sICMgZ2VuZXJhdG9ycyB5b3UncmUgdXNpbmcK4pSU4pSAIGRlZmluaXRpb24vCiAg4pSc4pSAIGFwaS55bWwgICMgQVBJLWxldmVsIGNvbmZpZ3VyYXRpb24KICDilJTilIAgaW1kYi55bWwgIyBlbmRwb2ludHMsIHR5cGVzLCBhbmQgZXJyb3JzCmBgYAoKSGVyZSdzIHdoYXQgdGhlIGBpbWRiLnltbGAgc3RhcnRlciBmaWxlIGxvb2tzIGxpa2U6CgpgYGB5YW1sCnR5cGVzOgogIE1vdmllSWQ6IHN0cmluZwoKICBNb3ZpZToKICAgIHByb3BlcnRpZXM6CiAgICAgIGlkOiBNb3ZpZUlkCiAgICAgIHRpdGxlOiBzdHJpbmcKICAgICAgcmF0aW5nOgogICAgICAgIHR5cGU6IGRvdWJsZQogICAgICAgIGRvY3M6IFRoZSByYXRpbmcgc2NhbGUgaXMgb25lIHRvIGZpdmUgc3RhcnMKCiAgQ3JlYXRlTW92aWVSZXF1ZXN0OgogICAgcHJvcGVydGllczoKICAgICAgdGl0bGU6IHN0cmluZwogICAgICByYXRpbmc6IGRvdWJsZQoKc2VydmljZToKICBhdXRoOiBmYWxzZQogIGJhc2UtcGF0aDogL21vdmllcwogIGVuZHBvaW50czoKICAgIGNyZWF0ZU1vdmllOgogICAgICBkb2NzOiBBZGQgYSBtb3ZpZSB0byB0aGUgZGF0YWJhc2UKICAgICAgbWV0aG9kOiBQT1NUCiAgICAgIHBhdGg6IC9jcmVhdGUtbW92aWUKICAgICAgcmVxdWVzdDogQ3JlYXRlTW92aWVSZXF1ZXN0CiAgICAgIHJlc3BvbnNlOiBNb3ZpZUlkCgogICAgZ2V0TW92aWU6CiAgICAgIG1ldGhvZDogR0VUCiAgICAgIHBhdGg6IC97bW92aWVJZH0KICAgICAgcGF0aC1wYXJhbWV0ZXJzOgogICAgICAgIG1vdmllSWQ6IE1vdmllSWQKICAgICAgcmVzcG9uc2U6IE1vdmllCiAgICAgIGVycm9yczoKICAgICAgICAtIE1vdmllRG9lc05vdEV4aXN0RXJyb3IKCmVycm9yczoKICBNb3ZpZURvZXNOb3RFeGlzdEVycm9yOgogICAgc3RhdHVzLWNvZGU6IDQwNAogICAgdHlwZTogTW92aWVJZApgYGAKCkNoZWNrb3V0IG9wZW4gc291cmNlIHByb2plY3RzIHRoYXQgYXJlIHVzaW5nIEZlcm4gRGVmaW5pdGlvbnM6CgotIFtNZXRyaXBvcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRyaXBvcnQvbWV0cmlwb3J0L3RyZWUvZGV2ZWxvcC9mZXJuL2RlZmluaXRpb24pCi0gW1JpdmV0XShodHRwczovL2dpdGh1Yi5jb20vcml2ZXQtZ2cvcml2ZXQvdHJlZS9tYWluL2Zlcm4vZGVmaW5pdGlvbikKLSBbUmV2ZXJ0XShodHRwczovL2dpdGh1Yi5jb20vcmV2ZXJ0aW5jL3JldmVydC90cmVlL21haW4vZmVybi9kZWZpbml0aW9uKQoKIyMgSW5zcGlyYXRpb24KCkZlcm4gaXMgaW5zcGlyZWQgYnkgaW50ZXJuYWwgdG9vbGluZyBidWlsdCB0byBlbmhhbmNlIHRoZSBkZXZlbG9wZXIgZXhwZXJpZW5jZS4gV2Ugc3RhbmQgb24gdGhlIHNob3VsZGVycyBvZiBnaWFudHMuIFdoaWxlIHRlYW1zIHdlcmUgcmVzcG9uc2libGUgZm9yIGJ1aWxkaW5nIHRoZSBmb2xsb3dpbmcgdG9vbHMsIHdlIHdhbnQgdG8gZ2l2ZSBhIHNob3V0IG91dCB0byBNYXJrIEVsbGlvdCAoY3JlYXRvciBvZiBDb25qdXJlIGF0IFBhbGFudGlyKSwgTWljaGFlbCBEb3dsaW5nIChjcmVhdG9yIG9mIFNtaXRoeSBhdCBBV1MpLCBhbmQgSWFuIE1jQ3J5c3RhbCAoY3JlYXRvciBvZiBTdHJpcGUgRG9jcykuCgojIyBDb21tdW5pdHkKCltKb2luIG91ciBEaXNjb3JkIV0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9pbnZpdGUvSmtrWHVtUHpjRykgV2UgYXJlIGhlcmUgdG8gYW5zd2VyIHF1ZXN0aW9ucyBhbmQgaGVscCB5b3UgZ2V0IHRoZSBtb3N0IG91dCBvZiBGZXJuLgoKIyMgQ29udHJpYnV0aW5nCgpXZSB3ZWxjb21lIGNvbW11bml0eSBjb250cmlidXRpb25zLiBGb3IgZ3VpZGVsaW5lcywgcmVmZXIgdG8gb3VyIFtDT05UUklCVVRJTkcubWRdKC9DT05UUklCVVRJTkcubWQpLgoKIVtGZXJuIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9jb250cmliLnJvY2tzL2ltYWdlP3JlcG89ZmVybi1hcGkvZmVybikK readmeEtag: '"179265c04c7830902133228c7b69755802590e46"' readmeLastModified: Thu, 29 Aug 2024 03:06:29 GMT repositoryId: 476820102 description: Input OpenAPI. Output SDKs and Docs. created: '2022-04-01T17:56:54Z' updated: '2024-09-06T01:39:22Z' language: TypeScript archived: false stars: 2570 watchers: 16 forks: 132 owner: fern-api logo: https://avatars.githubusercontent.com/u/102944815?v=4 license: Apache-2.0 repoEtag: '"13fbc0eab7580541b008a809ac59484e70fd7089d046736f1cb2f372b7e18953"' repoLastModified: Fri, 06 Sep 2024 01:39:22 GMT foundInMaster: true sponsored: true testimonial: > I'm a huge fan of Fern. It's a force multiplier for API teams - Mike Bifulco, APIs You Won't Hate cofounder v3_1: true sponsoredDate: - 2023-11-01T06:00:00.000Z - 2023-11-01T06:00:00.000Z - 2023-11-01T06:00:00.000Z - source: https://openapi.tools/ name: ✨ Stainless sponsored: true sponsoredDate: 2024-01-01T06:00:00.000Z category: SDK repository: https://github.com/stainless-api/stl-api link: https://stainlessapi.com language: - TypeScript - Python - Go - Java - and Kotlin source_description: >- Generate SDKs in popular languages and publish them to package managers (like npm). v2: false v3: true v3_1: true id: 585753eb5cd634d1a8d2d02cff7e371e repositoryMetadata: base64Readme: >- IyBTdGFpbmxlc3M6IGEgZnJhbWV3b3JrIGZvciByb2J1c3QgJiBwb2xpc2hlZCBSRVNUIEFQSXMKClN0YWlubGVzcyBoZWxwcyB5b3Ugc2hpcCBxdWFsaXR5LCB0eXBlc2FmZSBSRVNUIEFQSXMgZnJvbSBhbnkgVHlwZVNjcmlwdCBiYWNrZW5kLgoKWW91IGRlY2xhcmUgdGhlIHNoYXBlIGFuZCBiZWhhdmlvciBvZiB5b3VyIEFQSSBpbiBvbmUgcGxhY2UsCmFuZCBnZXQgYW4gT3BlbkFQSSBzcGVjLCBkb2NzLCBhbmQgdHlwZWQgZnJvbnRlbmQgY2xpZW50IHdpdGhvdXQgYSBidWlsZCBzdGVwLgoKWW91IGNhbiB1c2UgaXQgYXMgYSBwbHVnZ2FibGUsIGJhdHRlcmllcy1pbmNsdWRlZCB3ZWIgZnJhbWV3b3JrIGZvciBBUElzIChtYW5hZ2luZyBhdXRoLCBwYWdpbmF0aW9uLCBvYnNlcnZhYmlsaXR5LCBldGMpIG9yIHNwcmlua2xlIGl0IG9uIHRvcCBvZiB5b3VyIGV4aXN0aW5nIEFQSSBpbiBhbnkgZnJhbWV3b3JrIGZvciBiZXR0ZXIgT3BlbkFQSSBzdXBwb3J0IGFuZC9vciBmdWxsLXN0YWNrIHR5cGVzYWZldHkuCgpZb3UgY2FuIGFsc28gb3B0IGludG8gU3RhaW5sZXNzJ3MgU3RyaXBlLWluc3BpcmVkIFtwcmlzdGluZSBBUEkgZGVzaWduIGNvbnZlbnRpb25zXSgjcHJpc3RpbmUpIGFuZCBnZXQgcmljaCBwYWdpbmF0aW9uLCBjb25zaXN0ZW50IGVycm9ycywgZmllbGQgaW5jbHVzaW9uICYgc2VsZWN0aW9uLCBhbmQgKFdJUCkgbm9ybWFsaXplZCBjYWNoaW5nIG9uIHRoZSBmcm9udGVuZCBmb3IgZnJlZS4KClN0YWlubGVzcyBkcmF3cyBpbnNwaXJhdGlvbiB3aXRoIGdyYXRpdHVkZSBmcm9tIHRSUEMsIEZhc3RBUEksIEdyYXBoUUwvUmVsYXksIGFuZCAoaGVhdmlseSkgZnJvbSB0aGUgaW50ZXJuYWwgQVBJIEZyYW1ld29yayB3ZSB3b3JrZWQgb24gYXQgU3RyaXBlLgoKPiAqKk5vdGUqKgo+IFRoaXMgcHJvamVjdCBpcyBjdXJyZW50bHkgaW4gaXRzICoqYWxwaGEgc3RhZ2Ugb2YgZGV2ZWxvcG1lbnQqKi4KPiBGZWF0dXJlcyBtYXkgYmUgY2hhbmdlZCBvciByZW1vdmVkIGF0IGFueSB0aW1lIHdpdGhvdXQgd2FybmluZywgYW5kIHByb2R1Y3Rpb24gdXNlIGlzIG5vdCByZWNvbW1lbmRlZC4KPiBIb2JieWlzdHMgd2VsY29tZSEKCkZvciBleGFtcGxlOgoKPCEtLSBUT0RPOiB0aGlzIGlzIHRvbyBsb25nIC8gdG9vIG11Y2ggY29kZeKApiAtLT4KCmBgYHRzCi8vIHNlcnZlci50cwppbXBvcnQgeyBTdGwgfSBmcm9tICJzdGFpbmxlc3MiOwppbXBvcnQgeyBtYWtlUHJpc21hUGx1Z2luIH0gZnJvbSAiQHN0bC1hcGkvcHJpc21hIjsKaW1wb3J0IHsgbWFrZU5leHRQbHVnaW4gfSBmcm9tICJAc3RsLWFwaS9uZXh0IjsKaW1wb3J0IHsgbWFrZU5leHRBdXRoUGx1Z2luIH0gZnJvbSAiQHN0bC1hcGkvbmV4dC1hdXRoIjsKaW1wb3J0IHsgYXV0aE9wdGlvbnMgfSBmcm9tICJ+L3BhZ2VzL2FwaS9hdXRoL1suLi5uZXh0YXV0aF0iOwppbXBvcnQgcHJpc21hIGZyb20gIn4vbGlicy9wcmlzbWEiOwppbXBvcnQgeyB6IH0gZnJvbSAic3RhaW5sZXNzIjsKCmNvbnN0IHBsdWdpbnMgPSB7CiAgbmV4dDogbWFrZU5leHRQbHVnaW4oKSwKICBuZXh0QXV0aDogbWFrZU5leHRBdXRoUGx1Z2luKHsgYXV0aE9wdGlvbnMgfSksCiAgcHJpc21hOiBtYWtlUHJpc21hUGx1Z2luKCksCn07CgpleHBvcnQgY29uc3Qgc3RsID0gbmV3IFN0bCh7CiAgcGx1Z2lucywKfSk7Cgpjb25zdCBVc2VyID0gei5vYmplY3QoewogIGlkOiB6LnN0cmluZygpLAogIG5hbWU6IHouc3RyaW5nKCksCn0pOwoKY29uc3QgdXBkYXRlID0gc3RsLmVuZHBvaW50KHsKICBlbmRwb2ludDogIlBPU1QgL3VzZXJzLzppZCIsCiAgZGVzY3JpcHRpb246ICJVcGRhdGUgYSB1c2VyLiBDdXJyZW50bHkgb25seSB1cGRhdGluZyB0aGUgbmFtZSBpcyBzdXBwb3J0ZWQuIiwKICBhdXRoZW50aWNhdGVkOiB0cnVlLAogIHJlc3BvbnNlOiBVc2VyLAoKICBwYXRoOiB6Lm9iamVjdCh7CiAgICBpZDogei5zdHJpbmcoKSwKICB9KSwKICBib2R5OiB6Lm9iamVjdCh7CiAgICBuYW1lOiB6LnN0cmluZygpLAogIH0pLAoKICBhc3luYyBoYW5kbGVyKHsgaWQsIG5hbWUgfSkgewogICAgcmV0dXJuIGF3YWl0IHByaXNtYS51c2Vycy51cGRhdGVPbmUoaWQsIHsgbmFtZSB9KTsKICB9LAp9KTsKCmV4cG9ydCBjb25zdCBhcGkgPSBzdGwuYXBpKHsKICBvcGVuYXBpOiB7CiAgICBlbmRwb2ludDogIkdFVCAvYXBpL29wZW5hcGkiLAogIH0sCiAgcmVzb3VyY2VzOiB7CiAgICB1c2Vyczogc3RsLnJlc291cmNlKHsKICAgICAgYWN0aW9uczogewogICAgICAgIHVwZGF0ZSwKICAgICAgfSwKICAgICAgbW9kZWxzOiB7CiAgICAgICAgVXNlciwKICAgICAgfSwKICAgIH0pLAogIH0sCn0pOwoKLy8gY2xpZW50LnRzCmltcG9ydCB7IGNyZWF0ZUNsaWVudCB9IGZyb20gInN0YWlubGVzcyI7CmltcG9ydCB0eXBlIHsgYXBpIH0gZnJvbSAiLi9zZXJ2ZXIiOwoKY29uc3QgY2xpZW50ID0gY3JlYXRlQ2xpZW50PHR5cGVvZiBhcGk+KCJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpIik7CgovLyBwYXJhbXMgYXJlIGZ1bGx5IHR5cGVkOgpjb25zdCB1c2VyID0gYXdhaXQgY2xpZW50LnVzZXJzLnVwZGF0ZSgiaWQiLCB7IG5hbWU6ICJteSBuZXcgbmFtZSIgfSk7Ci8vIHVzZXIgb2JqZWN0IGlzIGZ1bGx5IHR5cGVkLgoKLy8gQSBmdWxsIE9wZW5BUEkgc3BlYyBpcyBhdmFpbGFibGUgYnkgZGVmYXVsdCBhdCAiZ2V0IC9vcGVuYXBpIjoKY29uc3Qgb3BlbmFwaSA9IGF3YWl0IGNsaWVudC5nZXRPcGVuYXBpKCk7CmNvbnNvbGUubG9nKG9wZW5hcGkucGF0aHNbIi91c2Vycy86aWQiXS5wb3N0KTsKY29uc29sZS5sb2cob3BlbmFwaS5jb21wb25lbnRzLnNjaGVtYXMuVXNlcik7CmBgYAoKIyBHZXR0aW5nIHN0YXJ0ZWQKClNlZSBbYHN0YWlubGVzc2AgcGFja2FnZSBkb2NzXSgvcGFja2FnZXMvc3RhaW5sZXNzL1JFQURNRS5tZCNnZXR0aW5nLXN0YXJ0ZWQpIHRvIGdldCBzdGFydGVkIQoKIyBQYWNrYWdlcwoKLSBbc3RhaW5sZXNzXSgvcGFja2FnZXMvc3RhaW5sZXNzKQotIFtAc3RsLWFwaS9leHByZXNzXSgvcGFja2FnZXMvZXhwcmVzcykKLSBbQHN0bC1hcGkvbmV4dF0oL3BhY2thZ2VzL25leHQpCi0gW0BzdGwtYXBpL25leHQtYXV0aF0oL3BhY2thZ2VzL25leHQtYXV0aCkKLSBbQHN0bC1hcGkvcHJpc21hXSgvcGFja2FnZXMvcHJpc21hKQoKIyBQcmlzdGluZQoKUHJpc3RpbmUgaXMgYW4gQVBJIFN0YW5kYXJkIGJ5IFN0YWlubGVzcywgcHJvdmlkaW5nIG9waW5pb25zIG9uIEFQSSBkZXNpZ24gc28gdGVhbXMgZG9uJ3QgaGF2ZSB0byBiaWtlc2hlZCwgYW5kIHNvIHRvb2xzIGNhbiBleHBlY3QgY29uc2lzdGVudCBBUEkgc2hhcGVzLgoKRm9sbG93aW5nIHRoZSBQcmlzdGluZSBTdGFuZGFyZCBoZWxwcyB5b3VyIEFQSSBvZmZlciBhbiBpbnRlcmZhY2UgbGlrZSBTdHJpcGUncywKd2l0aCBiZXN0LXByYWN0aWNlcyBiYWtlZCBpbi4gTGlrZSB0aGUgUmVsYXkgc3RhbmRhcmQgZm9yIEdRTCwgUHJpc3RpbmUgY2FuIGFsc28gaGVscCB0b29saW5nIGxpa2UgZnJvbnRlbmQgY2xpZW50cyBjYWNoZSBkYXRhLCBwYWdpbmF0ZSByZXF1ZXN0cywgaGFuZGxlIGVycm9ycywgYW5kIHNvIG9uLgoKPCEtLSBZb3UgY2FuIG9wdCB5b3VyIEFQSSBpbnRvIFByaXN0aW5lIGxpa2Ugc286CgpgYGB0cwpjb25zdCBzdGwgPSBuZXcgU3RhaW5sZXNzKHsgcHJpc3RpbmU6IHRydWUgfSk7CmBgYAoKVGhpcyB3aWxsIGVuZm9yY2UgdGhlIFByaXN0aW5lIGNvbnZlbnRpb25zLCBhbmQgcHJvdmlkZSBlYXNpZXIgYWNjZXNzIHRvIHRvb2xpbmcgd2hpY2ggZGVwZW5kcyBvbiBpdC4KCklmIHlvdSdyZSBzdGFydGluZyB3aXRoIGFuIGV4aXN0aW5nIEFQSSBhbmQgZG9uJ3Qgd2FudCB0byBnbyBzdHJhaWdodCB0byBhIHYyLAp5b3UgY2FuIGdyYWR1YWxseSBhZG9wdCBQcmlzdGluZSBzdGFuZGFyZHMgYW5kIHRvb2xpbmcuIEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gb2ZmZXIgbGludCBydWxlcyBmb3IgeW91ciBPcGVuQVBJIHNwZWMgYW5kIGFuIG92ZXJhbGwgIkxpZ2h0aG91c2Ugc2NvcmUiIGluZGljYXRpbmcgdGhlIGRlZ3JlZSBvZiBjb21wbGlhbmNlIHlvdXIgQVBJIG9mZmVycy4KIC0tPgoKIyMgUHJpc3RpbmUgQ29udmVudGlvbnMKCkhlcmUgaXMgYSBsaXN0IG9mIFByaXN0aW5lIEFQSSBkZXNpZ24gY29udmVudGlvbnM6CgotIFtQYWdpbmF0aW9uXSgvcGFja2FnZXMvc3RhaW5sZXNzL2RvY3MvcGFnaW5hdGlvbi5tZCkKLSBbSW5jbHVzaW9uXSgvcGFja2FnZXMvc3RhaW5sZXNzL2RvY3MvaW5jbHVzaW9uLm1kKQotIFtTZWxlY3Rpb25dKC9wYWNrYWdlcy9zdGFpbmxlc3MvZG9jcy9zZWxlY3Rpb24ubWQpCgojIFVzaW5nIFN0YWlubGVzcyBpbiBhbiBleGlzdGluZyBjb2RlYmFzZQoKSWYgeW91J2QgbGlrZSBhIG1haW50YWluYWJsZSB3YXkgb2YgZGVjbGFyaW5nIHlvdXIgT3BlbkFQSSBzcGVjCmluIFR5cGVTY3JpcHQsIHJpZ2h0IGFsb25nc2lkZSB5b3VyIGFwcGxpY2F0aW9uIGNvZGUsIGFuZCBnZXR0aW5nCmdyZWF0IGRvY3MsIGVuZC10by1lbmQgdHlwZXNhZmV0eSwgYW5kIGJhY2tlbmQgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNES3MpLAp5b3UgY2FuIGFkb3B0IHRoZSBgc3RhaW5sZXNzYCBsaWJyYXJ5IGdyYWR1YWxseSBpbiBtaW5pbWFsbHktaW52YXNpdmUgd2F5cy4KCkZvciBleGFtcGxlLCBpbiBhbiBFeHByZXNzIGFwcCwgeW91IGNhbiBhZGQgYW5ub3RhdGlvbnMgbmVhciBhIGhhbmRsZXIgdG8gZ2V0IGFuIE9wZW5BUEkgc3BlYyBhbmQgY2xpZW50OgoKYGBgdHMKLy8gYXBwL3JvdXRlcy91c2Vycy50cwoKY29uc3QgVXNlciA9IHoub2JqZWN0KHsKICBpZDogei5zdHJpbmcoKSwKICBuYW1lOiB6LnN0cmluZygpLAp9KTsKCmNvbnN0IGNyZWF0ZSA9IHN0bC5lbmRwb2ludCh7CiAgZW5kcG9pbnQ6ICJQT1NUIC91c2VycyIsCiAgcmVzcG9uc2U6IFVzZXIsCiAgYm9keTogei5vYmplY3QoeyBuYW1lOiB6LnN0cmluZygpIH0pLAp9KTsKCmFwcC5wb3N0KCIvdXNlcnMiLCBhc3luYyAocmVxLCByc3ApID0+IHsKICBjb25zdCB1c2VyID0gYXdhaXQgZGIudXNlcnMuY3JlYXRlKHsgbmFtZSB9KTsKICByc3Auc3RhdHVzKDIwMCkuanNvbih1c2VyKTsKfSk7CmBgYAoKPHN1bW1hcnk+WW91J2xsIGFsc28gbmVlZCBhIHNtYWxsIGFtb3VudCBvZiBzZXJ2ZXIgY29kZTwvc3VtbWFyeT4KCmBgYHRzCi8vIGFwcC9hcGkudHMKY29uc3QgdXNlcnMgPSBzdGwucmVzb3VyY2UoewogIG1vZGVsczogeyBVc2VyIH0sCiAgYWN0aW9uczogewogICAgY3JlYXRlLAogIH0sCn0pOwoKY29uc3QgYXBpID0gc3RsLmFwaSh7CiAgcmVzb3VyY2VzOiB7CiAgICB1c2VycywKICB9LAp9KTsKCi8vIGFuZCB2b2lsYSwgeW91IGdldCBhbiBPcGVuQVBJIHNwZWMhCmFwcC5nZXQoIi9vcGVuYXBpIiwgKHJlcSwgcnNwKSA9PiB7CiAgcnNwLmpzb24oYXBpLm9wZW5hcGkuc3BlYyk7Cn0pOwpgYGAKCjxzdW1tYXJ5PgpGb3IgdHlwZXNhZmV0eSBhbmQgdmFsaWRhdGlvbiBvZiBwYXJhbWV0ZXJzLCB5b3UgY2FuIGFsc28gc3ByaW5rbGUgaW4KcGFyYW0gcGFyc2luZywgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgYW5kIG1vcmU6Cjwvc3VtbWFyeT4KCmBgYHRzCmFwcC5wb3N0KCIvdXNlcnMiLCBhc3luYyAocmVxLCByc3ApID0+IHsKICBjb25zdCB7IG5hbWUgfSA9IGNyZWF0ZS52YWxpZGF0ZVBhcmFtcyhyZXEpOwoKICBjb25zdCB1c2VyID0gYXdhaXQgZGIudXNlcnMuY3JlYXRlKHsgbmFtZSB9KTsKCiAgcnNwLnNlbmQoY3JlYXRlLm1ha2VSZXNwb25zZSh1c2VyKSk7Cn0pOwpgYGAKCkRvaW5nIHRoaXMgaGVscHMgVHlwZVNjcmlwdCBlbnN1cmUgdGhhdCB5b3VyIE9wZW5BUEkgc3BlYyBpcyBhbiBhY2N1cmF0ZSByZWZsZWN0aW9uIG9mIHlvdXIgcnVudGltZSBiZWhhdmlvci4gSXQgY2FuIGFsc28gaGVscCByZXR1cm4gY29uc2lzdGVudCByZXNwb25zZSBzaGFwZXMgYW5kIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHVzZXIuCgpOb3RlIHRoYXQgYHZhbGlkYXRlUGFyYW1zYCByYWlzZXMgYEJhZFJlcXVlc3RFcnJvcmAgaWYgcGFyYW1zIGRvbid0IG1hdGNoLgoKVG8gaGFuZGxlIGVycm9ycyBsaWtlIHRoaXMsIGFkZCBtaWRkbGV3YXJlOgoKYGBgdHMKYXBwLnVzZSgoZXJyLCByZXEsIHJzcCwgbmV4dCkgPT4gewogIGlmIChlcnIgaW5zdGFuY2VvZiBzdGwuRXJyb3IpIHsKICAgIHJzcC5zdGF0dXMoZXJyLnN0YXR1c0NvZGUpLnNlbmQoc3RsLm1ha2VFcnJvcihlcnIpKTsKICB9CiAgLy8g4oCmCn0pOwpgYGAKCmBzdGwubWFrZUVycm9yYCBpcyB3aWxsIHJldHVybiBhIEpTT04gb2JqZWN0IHdpdGggYHR5cGVgLCBgbWVzc2FnZWAsIGFuZCBvdGhlciBpbmZvcm1hdGlvbi4gKFRPRE8gYWRkL2VuY291cmFnZSB0aGluZ3MgbGlrZSByZXF1ZXN0IElEJ3PigKYpCg== readmeEtag: '"a89884d04ce73d65e3e381b34c408a5d4e33f17e"' readmeLastModified: Mon, 29 Apr 2024 17:35:13 GMT repositoryId: 644096733 description: Stainless full-stack API Framework created: '2023-05-22T20:07:58Z' updated: '2024-09-04T16:56:04Z' language: TypeScript archived: false stars: 77 watchers: 4 forks: 2 owner: stainless-api logo: https://avatars.githubusercontent.com/u/88061651?v=4 repoEtag: '"57a48a140dfb6e2f9978418420e320ceba61ed9a4bb4ed5bc008103a66ba4559"' repoLastModified: Wed, 04 Sep 2024 16:56:04 GMT foundInMaster: true - source: https://openapi.tools/ name: // Speakeasy sponsored: true sponsoredDate: 2024-02-09T06:00:00.000Z category: - SDK - Documentation repository: https://github.com/speakeasy-api link: https://speakeasyapi.dev/ language: - TypeScript - Python - Go - Java - Terraform - C# - PHP - Ruby - Swift - Unity source_description: >- Generate & publish SDKs in 10+ languages, Terraform Providers, and docs from your OpenAPI v3: true v3_1: true id: e9c581a8a3595b87ec6837e848852b65 foundInMaster: true - source: https://openapi.tools/ name: Swift OpenAPI Generator category: - SDK - Server language: Swift repository: https://github.com/apple/swift-openapi-generator link: https://github.com/apple/swift-openapi-generator source_description: >- Generate Swift client and server code from an OpenAPI document. Includes support for type-safe JSON event streaming, multipart, Swift concurrency, customizable middlewares, and pluggable HTTP libraries. v2: false v3: true v3_1: true id: 8c9fc3b3b20c0629891b754a2e3c79e8 repositoryMetadata: base64Readme: >- IyBTd2lmdCBPcGVuQVBJIEdlbmVyYXRvcgoKWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3Nzd2ctc2FuZGJveC1saWdodGdyZXkuc3ZnKV0oaHR0cHM6Ly93d3cuc3dpZnQub3JnL3Nzd2cvKQpbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZG9jYy1yZWFkX2RvY3VtZW50YXRpb24tYmx1ZSldKGh0dHBzOi8vc3dpZnRwYWNrYWdlaW5kZXguY29tL2FwcGxlL3N3aWZ0LW9wZW5hcGktZ2VuZXJhdG9yL2RvY3VtZW50YXRpb24pClshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi9yZWxlYXNlL2FwcGxlL3N3aWZ0LW9wZW5hcGktZ2VuZXJhdG9yKV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcGxlL3N3aWZ0LW9wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzKQpbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGc3dpZnRwYWNrYWdlaW5kZXguY29tJTJGYXBpJTJGcGFja2FnZXMlMkZhcHBsZSUyRnN3aWZ0LW9wZW5hcGktZ2VuZXJhdG9yJTJGYmFkZ2UlM0Z0eXBlJTNEc3dpZnQtdmVyc2lvbnMpXShodHRwczovL3N3aWZ0cGFja2FnZWluZGV4LmNvbS9hcHBsZS9zd2lmdC1vcGVuYXBpLWdlbmVyYXRvcikKCkdlbmVyYXRlIFN3aWZ0IGNsaWVudCBhbmQgc2VydmVyIGNvZGUgZnJvbSBhbiBPcGVuQVBJIGRvY3VtZW50LgoKIyMgT3ZlcnZpZXcKCltPcGVuQVBJXVtvcGVuYXBpXSBpcyBhIHNwZWNpZmljYXRpb24gZm9yIGRvY3VtZW50aW5nIEhUVFAgc2VydmljZXMuIEFuIE9wZW5BUEkgZG9jdW1lbnQgaXMgd3JpdHRlbiBpbiBlaXRoZXIgWUFNTCBvciBKU09OLCBhbmQgY2FuIGJlIHJlYWQgYnkgdG9vbHMgdG8gaGVscCBhdXRvbWF0ZSB3b3JrZmxvd3MsIHN1Y2ggYXMgZ2VuZXJhdGluZyB0aGUgbmVjZXNzYXJ5IGNvZGUgdG8gc2VuZCBhbmQgcmVjZWl2ZSBIVFRQIHJlcXVlc3RzLgoKU3dpZnQgT3BlbkFQSSBHZW5lcmF0b3IgaXMgYSBTd2lmdCBwYWNrYWdlIHBsdWdpbiB0aGF0IGNhbiBnZW5lcmF0ZSB0aGUgY2VyZW1vbnkgY29kZSByZXF1aXJlZCB0byBtYWtlIEFQSSBjYWxscywgb3IgaW1wbGVtZW50IEFQSSBzZXJ2ZXJzLgoKVGhlIGNvZGUgaXMgZ2VuZXJhdGVkIGF0IGJ1aWxkLXRpbWUsIHNvIGl0J3MgYWx3YXlzIGluIHN5bmMgd2l0aCB0aGUgT3BlbkFQSSBkb2N1bWVudCBhbmQgZG9lc24ndCBuZWVkIHRvIGJlIGNvbW1pdHRlZCB0byB5b3VyIHNvdXJjZSByZXBvc2l0b3J5LgoKIyMgRmVhdHVyZXMKCi0gV29ya3Mgd2l0aCBPcGVuQVBJIFNwZWNpZmljYXRpb24gdmVyc2lvbnMgMy4wIGFuZCAzLjEuCi0gU3RyZWFtaW5nIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGJvZGllcyBlbmFibGluZyB1c2UgY2FzZXMgc3VjaCBhcyBKU09OIGV2ZW50IHN0cmVhbXMsIGFuZCBsYXJnZSBwYXlsb2FkcyB3aXRob3V0IGJ1ZmZlcmluZy4KLSBTdXBwb3J0IGZvciBKU09OLCBtdWx0aXBhcnQsIFVSTC1lbmNvZGVkIGZvcm0sIGJhc2U2NCwgcGxhaW4gdGV4dCwgYW5kIHJhdyBieXRlcywgcmVwcmVzZW50ZWQgYXMgdmFsdWUgdHlwZXMgd2l0aCB0eXBlLXNhZmUgcHJvcGVydGllcy4KLSBDbGllbnQsIHNlcnZlciwgYW5kIG1pZGRsZXdhcmUgYWJzdHJhY3Rpb25zLCBkZWNvdXBsaW5nIHRoZSBnZW5lcmF0ZWQgY29kZSBmcm9tIHRoZSBIVFRQIGNsaWVudCBsaWJyYXJ5IGFuZCB3ZWIgZnJhbWV3b3JrLgoKVG8gc2VlIHRoZXNlIGZlYXR1cmVzIGluIGFjdGlvbiwgY2hlY2sgb3V0IHRoZSBsaXN0IG9mIFtleGFtcGxlIHByb2plY3RzXVtleGFtcGxlcy1nZW5lcmF0b3JdLgoKIyMgVXNhZ2UKClN3aWZ0IE9wZW5BUEkgR2VuZXJhdG9yIGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIEFQSSBjbGllbnRzIGFuZCBzZXJ2ZXIgc3R1YnMuCgpCZWxvdyB5b3UgY2FuIHNlZSBzb21lIGV4YW1wbGUgY29kZSwgb3IgeW91IGNhbiBmb2xsb3cgb25lIG9mIHRoZSBbc3RlcC1ieS1zdGVwIHR1dG9yaWFsc11bdHV0b3JpYWxzLWdlbmVyYXRvcl0uCgojIyMgVXNpbmcgYSBnZW5lcmF0ZWQgQVBJIGNsaWVudAoKVGhlIGdlbmVyYXRlZCBgQ2xpZW50YCB0eXBlIHByb3ZpZGVzIGEgbWV0aG9kIGZvciBlYWNoIEhUVFAgb3BlcmF0aW9uIGRlZmluZWQgaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnRbXmV4YW1wbGUtb3BlbmFwaS15YW1sXSBhbmQgY2FuIGJlIHVzZWQgd2l0aCBhbnkgSFRUUCBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYENsaWVudFRyYW5zcG9ydGAuCgpgYGBzd2lmdAppbXBvcnQgT3BlbkFQSVVSTFNlc3Npb24KaW1wb3J0IEZvdW5kYXRpb24KCmxldCBjbGllbnQgPSBDbGllbnQoCiAgICBzZXJ2ZXJVUkw6IFVSTChzdHJpbmc6ICJodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpIikhLAogICAgdHJhbnNwb3J0OiBVUkxTZXNzaW9uVHJhbnNwb3J0KCkKKQpsZXQgcmVzcG9uc2UgPSB0cnkgYXdhaXQgY2xpZW50LmdldEdyZWV0aW5nKCkKcHJpbnQodHJ5IHJlc3BvbnNlLm9rLmJvZHkuanNvbi5tZXNzYWdlKQpgYGAKCiMjIyBVc2luZyBnZW5lcmF0ZWQgQVBJIHNlcnZlciBzdHVicwoKVG8gaW1wbGVtZW50IGEgc2VydmVyLCBkZWZpbmUgYSB0eXBlIHRoYXQgY29uZm9ybXMgdG8gdGhlIGdlbmVyYXRlZCBgQVBJUHJvdG9jb2xgLCBwcm92aWRpbmcgYSBtZXRob2QgZm9yIGVhY2ggSFRUUCBvcGVyYXRpb24gZGVmaW5lZCBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudFteZXhhbXBsZS1vcGVuYXBpLXlhbWxdLgoKVGhlIHNlcnZlciBjYW4gYmUgdXNlZCB3aXRoIGFueSB3ZWIgZnJhbWV3b3JrIHRoYXQgcHJvdmlkZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYFNlcnZlclRyYW5zcG9ydGAsIHdoaWNoIGFsbG93cyB5b3UgdG8gcmVnaXN0ZXIgeW91ciBBUEkgaGFuZGxlcnMgd2l0aCB0aGUgSFRUUCBzZXJ2ZXIuCgpgYGBzd2lmdAppbXBvcnQgT3BlbkFQSVJ1bnRpbWUKaW1wb3J0IE9wZW5BUElWYXBvcgppbXBvcnQgVmFwb3IKCnN0cnVjdCBIYW5kbGVyOiBBUElQcm90b2NvbCB7CiAgICBmdW5jIGdldEdyZWV0aW5nKF8gaW5wdXQ6IE9wZXJhdGlvbnMuZ2V0R3JlZXRpbmcuSW5wdXQpIGFzeW5jIHRocm93cyAtPiBPcGVyYXRpb25zLmdldEdyZWV0aW5nLk91dHB1dCB7CiAgICAgICAgbGV0IG5hbWUgPSBpbnB1dC5xdWVyeS5uYW1lID8/ICJTdHJhbmdlciIKICAgICAgICByZXR1cm4gLm9rKC5pbml0KGJvZHk6IC5qc29uKC5pbml0KG1lc3NhZ2U6ICJIZWxsbywgXChuYW1lKSEiKSkpKQogICAgfQp9CgpAbWFpbiBzdHJ1Y3QgSGVsbG9Xb3JsZFZhcG9yU2VydmVyIHsKICAgIHN0YXRpYyBmdW5jIG1haW4oKSBhc3luYyB0aHJvd3MgewogICAgICAgIGxldCBhcHAgPSBWYXBvci5BcHBsaWNhdGlvbigpCiAgICAgICAgbGV0IHRyYW5zcG9ydCA9IFZhcG9yVHJhbnNwb3J0KHJvdXRlc0J1aWxkZXI6IGFwcCkKICAgICAgICBsZXQgaGFuZGxlciA9IEhhbmRsZXIoKQogICAgICAgIHRyeSBoYW5kbGVyLnJlZ2lzdGVySGFuZGxlcnMob246IHRyYW5zcG9ydCwgc2VydmVyVVJMOiBVUkwoc3RyaW5nOiAiL2FwaSIpISkKICAgICAgICB0cnkgYXdhaXQgYXBwLmV4ZWN1dGUoKQogICAgfQp9CmBgYAoKIyMgUGFja2FnZSBlY29zeXN0ZW0KClRoZSBTd2lmdCBPcGVuQVBJIEdlbmVyYXRvciBwcm9qZWN0IGlzIHNwbGl0IGFjcm9zcyBtdWx0aXBsZSByZXBvc2l0b3JpZXMgdG8gZW5hYmxlIGV4dGVuc2liaWxpdHkgYW5kIG1pbmltaXplIGRlcGVuZGVuY2llcyBpbiB5b3VyIHByb2plY3QuCgp8IFJlcG9zaXRvcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC0tLS0tLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbYXBwbGUvc3dpZnQtb3BlbmFwaS1nZW5lcmF0b3JdW3JlcG8tZ2VuZXJhdG9yXSAgICAgICAgICAgIHwgU3dpZnQgcGFja2FnZSBwbHVnaW4gYW5kIENMSSAgICAgICAgICAgICAgICAgICAgICAgfAp8IFthcHBsZS9zd2lmdC1vcGVuYXBpLXJ1bnRpbWVdW3JlcG8tcnVudGltZV0gICAgICAgICAgICAgICAgfCBSdW50aW1lIGxpYnJhcnkgdXNlZCBieSB0aGUgZ2VuZXJhdGVkIGNvZGUgICAgICAgICB8CnwgW2FwcGxlL3N3aWZ0LW9wZW5hcGktdXJsc2Vzc2lvbl1bcmVwby11cmxzZXNzaW9uXSAgICAgICAgICB8IGBDbGllbnRUcmFuc3BvcnRgIHVzaW5nIFtVUkxTZXNzaW9uXVt1cmxzZXNzaW9uXSAgIHwKfCBbc3dpZnQtc2VydmVyL3N3aWZ0LW9wZW5hcGktYXN5bmMtaHR0cC1jbGllbnRdW3JlcG8tYWhjXSAgIHwgYENsaWVudFRyYW5zcG9ydGAgdXNpbmcgW0FzeW5jSFRUUENsaWVudF1bYWhjXSAgICAgfAp8IFtzd2lmdC1zZXJ2ZXIvc3dpZnQtb3BlbmFwaS12YXBvcl1bcmVwby12YXBvcl0gICAgICAgICAgICAgfCBgU2VydmVyVHJhbnNwb3J0YCB1c2luZyBbVmFwb3JdW3ZhcG9yXSAgICAgICAgICAgICB8CnwgW3N3aWZ0LXNlcnZlci9zd2lmdC1vcGVuYXBpLWh1bW1pbmdiaXJkXVtyZXBvLWh1bW1pbmdiaXJkXSB8IGBTZXJ2ZXJUcmFuc3BvcnRgIHVzaW5nIFtIdW1taW5nYmlyZF1baHVtbWluZ2JpcmRdIHwKfCBbc3dpZnQtc2VydmVyL3N3aWZ0LW9wZW5hcGktbGFtYmRhXVtyZXBvLWxhbWJkYV0gICAgICAgICAgIHwgYFNlcnZlclRyYW5zcG9ydGAgdXNpbmcgW0FXUyBMYW1iZGFdW2xhbWJkYV0gICAgICAgfAoKIyMgUmVxdWlyZW1lbnRzIGFuZCBzdXBwb3J0ZWQgZmVhdHVyZXMKCnwgR2VuZXJhdG9yIHZlcnNpb25zIHwgU3VwcG9ydGVkIE9wZW5BUEkgdmVyc2lvbnMgfCBNaW5pbXVtIFN3aWZ0IHZlcnNpb24gfAp8IC0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBgMS4wLjBgIC4uLiBgbWFpbmAgfCAzLjAsIDMuMSAgICAgICAgICAgICAgICAgICB8IDUuOSAgICAgICAgICAgICAgICAgICB8CgpTZWUgYWxzbyBbU3VwcG9ydGVkIE9wZW5BUEkgZmVhdHVyZXNdW3N1cHBvcnRlZC1vcGVuYXBpLWZlYXR1cmVzXS4KCiMjIyBTdXBwb3J0ZWQgcGxhdGZvcm1zIGFuZCBtaW5pbXVtIHZlcnNpb25zCgpUaGUgZ2VuZXJhdG9yIGlzIHVzZWQgZHVyaW5nIGRldmVsb3BtZW50IGFuZCBpcyBzdXBwb3J0ZWQgb24gbWFjT1MgYW5kIExpbnV4LgoKVGhlIGdlbmVyYXRlZCBjb2RlLCBydW50aW1lIGxpYnJhcnksIGFuZCB0cmFuc3BvcnRzIGFyZSBzdXBwb3J0ZWQgb24gbW9yZQpwbGF0Zm9ybXMsIGxpc3RlZCBiZWxvdy4KCnwgQ29tcG9uZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtYWNPUyAgICAgfCBMaW51eCB8IGlPUyAgICB8IHR2T1MgICB8IHdhdGNoT1MgfCB2aXNpb25PUyB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tICAgICAgfCA6LS0tICB8IDotICAgICB8IDotLSAgICB8IDotLS0tLSAgfCA6LS0tLS0tICB8CnwgR2VuZXJhdG9yIHBsdWdpbiBhbmQgQ0xJICAgICAgICAgICAgfCDinIUgMTAuMTUrIHwg4pyFICAgIHwg4pyW77iPICAgICAgfCDinJbvuI8gICAgICB8IOKclu+4jyAgICAgICB8IOKclu+4jyAgICAgICAgfAp8IEdlbmVyYXRlZCBjb2RlIGFuZCBydW50aW1lIGxpYnJhcnkgIHwg4pyFIDEwLjE1KyB8IOKchSAgICB8IOKchSAxMysgfCDinIUgMTMrIHwg4pyFIDYrICAgfCDinIUgMSsgICAgfAoKIyMgRG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZSBwcm9qZWN0cwoKVG8gZ2V0IHN0YXJ0ZWQsIGNoZWNrIG91dCB0aGUgW2RvY3VtZW50YXRpb25dW2RvY3MtZ2VuZXJhdG9yXSwgd2hpY2ggY29udGFpbnMKW3N0ZXAtYnktc3RlcCB0dXRvcmlhbHNdW3R1dG9yaWFscy1nZW5lcmF0b3JdLgoKWW91IGNhbiBhbHNvIGV4cGVyaW1lbnQgd2l0aCBbZXhhbXBsZSBwcm9qZWN0c11bZXhhbXBsZXMtZ2VuZXJhdG9yXSB0aGF0IHVzZQpTd2lmdCBPcGVuQVBJIEdlbmVyYXRvciBhbmQgaW50ZWdyYXRlIHdpdGggb3RoZXIgcGFja2FnZXMgaW4gdGhlIGVjb3N5c3RlbS4KCk9yIGlmIHlvdSBwcmVmZXIgdG8gd2F0Y2ggYSB2aWRlbywgY2hlY2sgb3V0IFtNZWV0IFN3aWZ0IE9wZW5BUEkKR2VuZXJhdG9yXShodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vd3dkYzIzLzEwMTcxKSBmcm9tIFdXREMyMy4KCltvcGVuYXBpXTogaHR0cHM6Ly9vcGVuYXBpcy5vcmcKW3JlcG8tZ2VuZXJhdG9yXTogaHR0cHM6Ly9naXRodWIuY29tL2FwcGxlL3N3aWZ0LW9wZW5hcGktZ2VuZXJhdG9yCltkb2NzLWdlbmVyYXRvcl06IGh0dHBzOi8vc3dpZnRwYWNrYWdlaW5kZXguY29tL2FwcGxlL3N3aWZ0LW9wZW5hcGktZ2VuZXJhdG9yL2RvY3VtZW50YXRpb24KW3R1dG9yaWFscy1nZW5lcmF0b3JdOiBodHRwczovL3N3aWZ0cGFja2FnZWluZGV4LmNvbS9hcHBsZS9zd2lmdC1vcGVuYXBpLWdlbmVyYXRvci90dXRvcmlhbHMvc3dpZnQtb3BlbmFwaS1nZW5lcmF0b3IKW3N1cHBvcnRlZC1vcGVuYXBpLWZlYXR1cmVzXTogaHR0cHM6Ly9zd2lmdHBhY2thZ2VpbmRleC5jb20vYXBwbGUvc3dpZnQtb3BlbmFwaS1nZW5lcmF0b3IvZG9jdW1lbnRhdGlvbi9zd2lmdC1vcGVuYXBpLWdlbmVyYXRvci9zdXBwb3J0ZWQtb3BlbmFwaS1mZWF0dXJlcwpbZXhhbXBsZXMtZ2VuZXJhdG9yXTogaHR0cHM6Ly9naXRodWIuY29tL2FwcGxlL3N3aWZ0LW9wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFpbi9FeGFtcGxlcy9SRUFETUUubWQKW3JlcG8tcnVudGltZV06IGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBsZS9zd2lmdC1vcGVuYXBpLXJ1bnRpbWUKW3JlcG8tdXJsc2Vzc2lvbl06IGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBsZS9zd2lmdC1vcGVuYXBpLXVybHNlc3Npb24KW3VybHNlc3Npb25dOiBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9mb3VuZGF0aW9uL3VybHNlc3Npb24KW3JlcG8tYWhjXTogaHR0cHM6Ly9naXRodWIuY29tL3N3aWZ0LXNlcnZlci9zd2lmdC1vcGVuYXBpLWFzeW5jLWh0dHAtY2xpZW50ClthaGNdOiBodHRwczovL2dpdGh1Yi5jb20vc3dpZnQtc2VydmVyL2FzeW5jLWh0dHAtY2xpZW50CltyZXBvLXZhcG9yXTogaHR0cHM6Ly9naXRodWIuY29tL3N3aWZ0LXNlcnZlci9zd2lmdC1vcGVuYXBpLXZhcG9yClt2YXBvcl06IGh0dHBzOi8vZ2l0aHViLmNvbS92YXBvci92YXBvcgpbcmVwby1odW1taW5nYmlyZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9zd2lmdC1zZXJ2ZXIvc3dpZnQtb3BlbmFwaS1odW1taW5nYmlyZApbaHVtbWluZ2JpcmRdOiBodHRwczovL2dpdGh1Yi5jb20vaHVtbWluZ2JpcmQtcHJvamVjdC9odW1taW5nYmlyZApbcmVwby1sYW1iZGFdOiBodHRwczovL2dpdGh1Yi5jb20vc3dpZnQtc2VydmVyL3N3aWZ0LW9wZW5hcGktbGFtYmRhCltsYW1iZGFdOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93ZWxjb21lLmh0bWwKW15leGFtcGxlLW9wZW5hcGkteWFtbF06IDxkZXRhaWxzPjxzdW1tYXJ5PkV4YW1wbGUgT3BlbkFQSSBkb2N1bWVudCAoY2xpY2sgdG8gZXhwYW5kKTwvc3VtbWFyeT4KCiAgICBgYGB5YW1sCiAgICBvcGVuYXBpOiAnMy4xLjAnCiAgICBpbmZvOgogICAgICB0aXRsZTogR3JlZXRpbmdTZXJ2aWNlCiAgICAgIHZlcnNpb246IDEuMC4wCiAgICBzZXJ2ZXJzOgogICAgICAtIHVybDogaHR0cHM6Ly9leGFtcGxlLmNvbS9hcGkKICAgICAgICBkZXNjcmlwdGlvbjogRXhhbXBsZSBzZXJ2aWNlIGRlcGxveW1lbnQuCiAgICBwYXRoczoKICAgICAgL2dyZWV0OgogICAgICAgIGdldDoKICAgICAgICAgIG9wZXJhdGlvbklkOiBnZXRHcmVldGluZwogICAgICAgICAgcGFyYW1ldGVyczoKICAgICAgICAgICAgLSBuYW1lOiBuYW1lCiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBuYW1lIHVzZWQgaW4gdGhlIHJldHVybmVkIGdyZWV0aW5nLgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgICAnMjAwJzoKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogQSBzdWNjZXNzIHJlc3BvbnNlIHdpdGggYSBncmVldGluZy4KICAgICAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9HcmVldGluZycKICAgIGNvbXBvbmVudHM6CiAgICAgIHNjaGVtYXM6CiAgICAgICAgR3JlZXRpbmc6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHZhbHVlIHdpdGggdGhlIGdyZWV0aW5nIGNvbnRlbnRzLgogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgbWVzc2FnZToKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ3JlZXRpbmcuCiAgICAgICAgICByZXF1aXJlZDoKICAgICAgICAgICAgLSBtZXNzYWdlCiAgICBgYGAKICAgIDwvZGV0YWlscz4K readmeEtag: '"5c934926c1663c49fd7fe45ca0dca54807d487d2"' readmeLastModified: Tue, 23 Jul 2024 10:17:22 GMT repositoryId: 630566794 description: Generate Swift client and server code from an OpenAPI document. created: '2023-04-20T16:50:53Z' updated: '2024-09-06T02:58:19Z' language: Swift archived: false stars: 1352 watchers: 104 forks: 101 owner: apple logo: https://avatars.githubusercontent.com/u/10639145?v=4 license: Apache-2.0 repoEtag: '"b13978c6a5551be2c8e1080e10dc3e298bf7943e40a30d406e5b29066aafd78f"' repoLastModified: Fri, 06 Sep 2024 02:58:19 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/pb33f/wiretap v3: true id: 2dbdc7a84f951a79e04f72967a3342be repositoryMetadata: base64Readme: >- IyB3aXJldGFwCgohW2xvZ29dKC5naXRodWIvd2lyZXRhcC1oZXJvLnBuZykKClshW2Rpc2NvcmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZGlzY29yZC85MjMyNTgzNjM1NDA4MTU5MTIpXShodHRwczovL2Rpc2NvcmQuZ2cveDdWQUNWdUVHUCkKWyFbR2l0SHViIGRvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZG93bmxvYWRzL3BiMzNmL3dpcmV0YXAvdG90YWw/bGFiZWw9Z2l0aHViJTIwZG93bmxvYWRzJnN0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL3dpcmV0YXAvcmVsZWFzZXMpClshW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vQHBiMzNmL3dpcmV0YXA/c3R5bGU9ZmxhdC1zcXVhcmUmbGFiZWw9bnBtJTIwZG93bmxvYWRzKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHBiMzNmL3dpcmV0YXApClshW0RvY2tlciBQdWxsc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvcHVsbHMvcGIzM2Yvd2lyZXRhcD9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9wYjMzZi93aXJldGFwKQoKQSBsb2NhbCBhbmQgcGlwZWxpbmUgYmFzZWQgdG9vbCB0byBzbmlmZiBBUEkgcmVxdWVzdCBhbmQgcmVzcG9uc2VzIGZyb20gY2xpZW50cyBhbmQgc2VydmVycwp0byBkZXRlY3QgT3BlbkFQSSBjb250cmFjdCB2aW9sYXRpb25zIGFuZCBjb21wbGlhbmNlLgoKQSBzaGlmdCBsZWZ0IHRvb2wsIGZvciB0aG9zZSB3aG8gd2FudCB0byBrbm93IGlmIHRoZWlyIGFwcGxpY2F0aW9ucwphcmUgYWN0dWFsbHkgY29tcGxpYW50IHdpdGggYW4gQVBJLgoKPiBUaGlzIGlzIGFuIGVhcmx5IHRvb2wgYW5kIGluIGFjdGl2ZSBkZXZlbG9wbWVudCwgV2h5IG5vdCB0cnkgaXQgb3V0IGFuZCBnaXZlIHVzIHNvbWUgZmVlZGJhY2s/CgohW10oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL3dpcmV0YXAvYmxvYi9tYWluLy5naXRodWIvYXNzZXRzL3dpcmV0YXAtcHJldmlldy5naWYpCgotLS0KIyBSZWFkIHRoZSBxdWlja3N0YXJ0IGd1aWRlCgpb8J+agCBRdWljayBTdGFydCBHdWlkZSDwn5qAXShodHRwczovL3BiMzNmLmlvL3dpcmV0YXAvcXVpY2tzdGFydC8pCgotLS0KIyBJbnN0YWxsIHdpcmV0YXAgZm9yIHlvdXIgcGxhdGZvcm0KCiMjIEluc3RhbGxpbmcgdXNpbmcgaG9tZWJyZXcKClRoZSBlYXNpZXN0IHdheSB0byBpbnN0YWxsIGB3aXJldGFwYCBpcyB0byB1c2UgKipbaG9tZWJyZXddKGh0dHBzOi8vYnJldy5zaCkqKiBpZiB5b3UncmUgb24gT1NYIG9yIExpbnV4LgoKV2UgaGF2ZSBvdXIgb3duIHRhcCBhdmFpbGFibGUgdGhhdCBnaXZlcyB0aGUgbGF0ZXN0IGFuZCBncmVhdGVzdCB2ZXJzaW9uLgoKYGBgc2hlbGwKYnJldyBpbnN0YWxsIHBiMzNmL3RhcHMvd2lyZXRhcApgYGAKCi0tLQoKIyMgSW5zdGFsbGluZyB1c2luZyBucG0gb3IgeWFybgoKQnVpbGRpbmcgYSBKYXZhU2NyaXB0IC8gVHlwZVNjcmlwdCBhcHBsaWNhdGlvbj8gTm8gcHJvYmxlbSwgZ3JhYiB5b3VyIGNvcHkgb2YgYHdpcmV0YXBgIHVzaW5nIHlvdXIgcHJlZmVyZW5jZQpvZiAqKlt5YXJuXShodHRwczovL3lhcm5wa2cuY29tLykqKiBvciAqKltucG1dKGh0dHBzOi8vbnBtanMuY29tKSoqLgoKYGBgc2hlbGwKeWFybiBhZGQgZ2xvYmFsIEBwYjMzZi93aXJldGFwCmBgYAoKb3IuLi4KCmBgYHNoZWxsCm5wbSAtaSAtZyBAcGIzM2Yvd2lyZXRhcApgYGAKCi0tLQoKIyMgSW5zdGFsbGluZyB1c2luZyBjVVJMCgpEbyB5b3Ugd2FudCB0byB1c2UgYHdpcmV0YXBgIGluIGEgbGludXggb25seSBvciBDSS9DRCBwaXBlbGluZSBvciB3b3JrZmxvdz8gT3IgeW91IGRvbid0IHdhbnQgdG8vY2FuJ3QgdXNlCmEgcGFja2FnZSBtYW5hZ2VyIGxpa2UgYnJldz8KCk5vIHByb2JsZW0uIFVzZSAqKmNVUkwqKiB0byBkb3dubG9hZCBhbmQgcnVuIG91ciBpbnN0YWxsZXIgc2NyaXB0LgoKYGBgc2hlbGwKY3VybCAtZnNTTCBodHRwczovL3BiMzNmLmlvL3dpcmV0YXAvaW5zdGFsbC5zaCB8IHNoCmBgYAoKLS0tCgojIyBJbnN0YWxsaW5nL3J1bm5pbmcgdXNpbmcgRG9ja2VyCgpMb3ZlIGNvbnRhaW5lcnM/IERvbid0IHdhbnQgdG8gaW5zdGFsbCBhbnl0aGluZz8gTm8gcHJvYmxlbSwgdXNlIG91ciBEb2NrZXIgaW1hZ2UuCgpgYGBzaGVsbApkb2NrZXIgcHVsbCBwYjMzZi93aXJldGFwCmBgYAoKYGBgCmRvY2tlciBydW4gLXAgOTA5MDo5MDkwIC1wIDkwOTE6OTA5MSAtcCA5MDkyOjkwOTIgLS1ybSAtdiAgXAogICAgJFBXRDovd29yazpydyBwYjMzZi93aXJldGFwIC11IGh0dHBzOi8vc29tZWhvc3RvdXR0aGVyZS5jb20KYGBgCgpXZSBlbmFibGUgdGhlIGZvbGxvd2luZyBkZWZhdWx0IHBvcnRzIGA5MDkwYCwgYDkwOTFgLCBhbmQgYDkwOTJgIGZvciB0aGUgZGFlbW9uLCBtb25pdG9yLCBhbmQgd2Vic29ja2V0cyB1c2VkCmJ5IFtyYW5jaF0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL3JhbmNoKSByZXNwZWN0aXZlbHkuCgotLS0KCiMjIEluc3RhbGxpbmcgb24gV2luZG93cwoKVG8gZ3JhYiB5b3VyIGNvcHkgb2YgYHdpcmV0YXBgIGZvciBXaW5kb3dzLCB5b3UgY2FuIHB1bGwgaXQgZnJvbSB0aGUKKipbbGF0ZXN0IHJlbGVhc2VzIG9uIGdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL3dpcmV0YXAvcmVsZWFzZXMpKioKYW5kIGRvd25sb2FkIHRoZSBXaW5kb3dzIHZlcnNpb24gZm9yIHlvdXIgQ1BVIHR5cGUuCgotLS0KCiMgUnVubmluZyB3aXJldGFwCgpUbyBnZXQgdXAgYW5kIHJ1bm5pbmcgd2l0aCB0aGUgYWJzb2x1dGUgZGVmYXVsdHMgKHdoaWNoIGlzIHRvIHNuaWZmIGFsbCB0cmFmZmljIG9uIHBvcnQgOTA5MCkKYW5kIHByb3h5IHRvIGBodHRwczovL2FwaS5wYjMzZi5jb21gIHlvdSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZC4KCmBgYHNoZWxsCndpcmV0YXAgLXUgaHR0cHM6Ly9hcGkucGIzM2YuY29tCmBgYAoKIyMgQWRkaW5nIGFuIE9wZW5BUEkgY29udHJhY3QKCmBgYHNoZWxsCndpcmV0YXAgLXUgaHR0cHM6Ly9hcGkucGIzM2YuY29tIC1zIG15LW9wZW5hcGktc3BlYy55YW1sCmBgYAoKIyBEb2N1bWVudGF0aW9uCgotIPCfmoAgW1F1aWNrIFN0YXJ0XShodHRwczovL3BiMzNmLmlvL3dpcmV0YXAvcXVpY2tzdGFydC8pIPCfmoAKLSBbSW5zdGFsbGluZ10oaHR0cHM6Ly9wYjMzZi5pby93aXJldGFwL3F1aWNrc3RhcnQvKQotIFtDb25maWd1cmluZ10oaHR0cHM6Ly9wYjMzZi5pby93aXJldGFwL2NvbmZpZ3VyaW5nLykKLSBbTW9uaXRvciBVSV0oaHR0cHM6Ly9wYjMzZi5pby93aXJldGFwL21vbml0b3IvKQotIFtTZXJ2aW5nIHN0YXRpYyBjb250ZW50XShodHRwczovL3BiMzNmLmlvL3dpcmV0YXAvc3RhdGljLWNvbnRlbnQvKQotIFtHaWZ0U2hvcCBleGFtcGxlIEFQSV0oaHR0cHM6Ly9wYjMzZi5pby93aXJldGFwL2dpZnRzaG9wLWFwaS8pCi0gW0NvbnRyaWJ1dGluZ10oaHR0cHM6Ly9wYjMzZi5pby93aXJldGFwL2NvbnRyaWJ1dGluZy8pCgo= readmeEtag: '"696e61108aedfbfbb4a75332f5ed6eac2e5e3baa"' readmeLastModified: Thu, 08 Aug 2024 13:12:05 GMT repositoryId: 634974410 description: >- The world's coolest API Validation and compliance tool. Validate APIs against OpenAPI specifications and much more created: '2023-05-01T17:19:15Z' updated: '2024-09-05T14:57:42Z' language: Go archived: false stars: 98 watchers: 1 forks: 17 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION repoEtag: '"7b1c1c42e962ca8e7445ec78eac239f43cd66c628e62d9c9e1b9112f5dc4b0f7"' repoLastModified: Thu, 05 Sep 2024 14:57:42 GMT category: - Testing Tools - Testing - Data Validators - Gateway foundInMaster: true name: wiretap link: https://pb33f.io/wiretap/ language: go source_description: >- Wiretap is a feature packed OpenAPI compliance testing tool. Validate that a client and server are compliant with an OpenAPI spec. Rewrite paths, inject headers, and even host a UI locally to test an OpenAPI implementation. v2: true v3_1: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/seriousme/openapi-schema-validator v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHNjaGVtYSB2YWxpZGF0b3IKClshW0NJIHN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL3NlcmlvdXNtZS9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3Ivd29ya2Zsb3dzL05vZGUuanMlMjBDSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2VyaW91c21lL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvci9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBJTIyTm9kZS5qcytDSSUyMikKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvc2VyaW91c21lL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvci9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9zZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yP2JyYW5jaD1tYXN0ZXIpClshW05QTSB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BzZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BzZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yKQohW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vQHNlcmlvdXNtZS9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3IpClshW1Rlc3RlZCBvbiBBUElzLmd1cnVdKGh0dHBzOi8vYXBpLmFwaXMuZ3VydS9iYWRnZXMvdGVzdGVkX29uLnN2ZyldKGh0dHBzOi8vYXBpcy5ndXJ1L2Jyb3dzZS1hcGlzLykKCkEgSlNPTiBzY2hlbWEgdmFsaWRhdG9yIGZvciBbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgc3BlY2lmaWNhdGlvbnMsCml0IGN1cnJlbnRseSBzdXBwb3J0czoKCi0gWzIuMF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjIuMCkKLSBbMy4wLnhdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMykKLSBbMy4xLnhdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCkKClRlc3RlZCBvbiBbb3ZlciAyLDAwMCByZWFsLXdvcmxkIEFQSXNdKGh0dHBzOi8vYXBpcy5ndXJ1L2Jyb3dzZS1hcGlzLykgZnJvbSBBV1MsCk1pY3Jvc29mdCwgR29vZ2xlIGV0Yy4KCjxhIG5hbWU9Imluc3RhbGwiPjwvYT4KCiMjIEluc3RhbGwKCmBgYGJhc2gKbnBtIGluc3RhbGwgQHNlcmlvdXNtZS9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3IKYGBgCgo8YSBuYW1lPSJVc2FnZSI+PC9hPgoKIyMgVXNhZ2UKClRoaXMgbW9kdWxlIGlzIEVTTSBvbmx5LCBpZiB5b3UgbmVlZCB0byB1c2UgY29tbW9uSlMgcGxlYXNlIHNlZSBiZWxvdy4KCmBgYGphdmFzY3JpcHQKLy8gRVNNCmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gIkBzZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIjsKCmNvbnNvbGUubG9nKFZhbGlkYXRvci5zdXBwb3J0ZWRWZXJzaW9ucy5oYXMoIjMuMSIpKTsKLy8gcHJpbnRzIHRydWUKCmNvbnN0IHZhbGlkYXRvciA9IG5ldyBWYWxpZGF0b3IoKTsKY29uc3QgcmVzID0gYXdhaXQgdmFsaWRhdG9yLnZhbGlkYXRlKCIuL3BldHN0b3JlLmpzb24iKTsKY29uc3Qgc3BlY2lmaWNhdGlvbiA9IHZhbGlkYXRvci5zcGVjaWZpY2F0aW9uOwovLyBzcGVjaWZpY2F0aW9uIG5vdyBjb250YWlucyBhIEphdmFzY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNwZWNpZmljYXRpb24KaWYgKHJlcy52YWxpZCkgewogIGNvbnNvbGUubG9nKCJTcGVjaWZpY2F0aW9uIG1hdGNoZXMgc2NoZW1hIGZvciB2ZXJzaW9uIiwgdmFsaWRhdG9yLnZlcnNpb24pOwogIGNvbnN0IHNjaGVtYSA9IHZhbGlkYXRvci5yZXNvbHZlUmVmcygpOwogIC8vIHNjaGVtYSBub3cgY29udGFpbnMgYSBKYXZhc2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBkZXJlZmVyZW5jZWQgc2NoZW1hCn0gZWxzZSB7CiAgY29uc29sZS5sb2coIlNwZWNpZmljYXRpb24gZG9lcyBub3QgbWF0Y2ggU2NoZW1hIik7CiAgY29uc29sZS5sb2cocmVzLmVycm9ycyk7Cn0KYGBgCgpUaGlzIG1vZHVsZSBjYW4gYmUgdXNlZCBpbiBDb21tb25KUyBjb2RlIHZpYToKCmBgYGphdmFzY3JpcHQKLy8gQ29tbW9uSlMKY29uc3QgeyBWYWxpZGF0b3IgfSA9IGF3YWl0IChpbXBvcnQoIkBzZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIikpOwpgYGAKClNlZSBhbHNvIHRoZSBbdXBncmFkaW5nIGd1aWRlXShVUEdSQURJTkcubWQpIGlmIHlvdSBjb21lIGZyb20gYSBwcmV2aW91cyBtYWpvciB2ZXJzaW9uLgoKPGEgbmFtZT0iQ0xJIj48L2E+CgojIyMgQ0xJIGZvciBBUEkgdmFsaWRhdGlvbgoKUnVuIHdpdGggZ2xvYmFsIGluc3RhbGw6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIEBzZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIC1nCnZhbGlkYXRlLWFwaSA8ZmlsZW5hbWU+CmBgYAoKUnVuIHdpdGhvdXQgaW5zdGFsbDoKCmBgYGJhc2gKbnB4IC1wIEBzZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIHZhbGlkYXRlLWFwaSA8ZmlsZW5hbWU+CmBgYAoKV2hlcmUgYDxmaWxlbmFtZT5gIHJlZmVycyB0byBhIFlBTUwgb3IgSlNPTiBmaWxlIGNvbnRhaW5pbmcgdGhlIHNwZWNpZmljYXRpb24uCgojIyMgQ0xJIGZvciBBUEkgYnVuZGxpbmcKClRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgWUFNTCBvciBKU09OIGZpbGVzIGludG8gYSBzaW5nbGUgc3BlY2lmaWNhdGlvbiBmaWxlIHRoZXJlIGlzIHRoZSBgYnVuZGxlLWFwaWAgY29tbWFuZC4KKHNlZSB0aGUgW3ZhbGlkYXRlQnVuZGxlXSgjdmFsaWRhdGVCdW5kbGUpIHNlY3Rpb24gYmVsb3cpIAoKYGBgYmFzaApucG0gaW5zdGFsbCBAc2VyaW91c21lL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvciAtZwpidW5kbGUtYXBpIDxzcGVjRmlsZXM+IApgYGAKClJ1biB3aXRob3V0IGluc3RhbGw6CgpgYGBiYXNoCm5weCAtcCBAc2VyaW91c21lL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvciBidW5kbGUtYXBpIDxzcGVjIGZpbGVzPiAKYGBgCgpUaGUgb3V0cHV0IHdpbGwgYmUgYSB2YWxpZGF0ZWQgSlNPTiBzcGVjaWZpY2F0aW9uLgpPcHRpb25zOgogIC1vICAtLW91dHB1dCA8ZmlsZW5hbWU+ICAgdGhlIGZpbGVuYW1lIHRvIHNhdmUgdGhlIG91dHB1dCB0bywgZGVmYXVsdCBpcyBTVERPVVQuCiAgLXQgIC0tdHlwZSAgW0pTT058WUFNTF0gICB0aGUgb3V0cHV0IGZvcm1hdCwgZGVmYXVsdCBpcyBKU09OLgoKPGEgbmFtZT0iQVBJIj48L2E+CgojIyBBUEkKCi0gW2BuZXcgVmFsaWRhdG9yKGFqdk9wdGlvbnMpYF0oI25ld1ZhbGlkYXRvcikKLSBbYDxpbnN0YW5jZT4udmFsaWRhdGUoc3BlY2lmaWNhdGlvbilgXSgjdmFsaWRhdGUpCi0gW2A8aW5zdGFuY2U+LnNwZWNpZmljYXRpb25gXSgjc3BlY2lmaWNhdGlvbikKLSBbYDxpbnN0YW5jZT4udmVyc2lvbmBdKCN2ZXJzaW9uKQotIFtgPGluc3RhbmNlPi5yZXNvbHZlUmVmcyhvcHRpb25zKWBdKCNyZXNvbHZlUmVmcykKLSBbYDxpbnN0YW5jZT4uYWRkU3BlY1JlZihzdWJTcGVjaWZpY2F0aW9uLCB1cmkpYF0oI2FkZFNwZWNSZWYpCi0gW2A8aW5zdGFuY2U+LnZhbGlkYXRlQnVuZGxlKFtzcGVjaWZpY2F0aW9uLHN1YnNwZWNpZmljYXRpb24sIC4uLl0pYF0oI3ZhbGlkYXRlQnVuZGxlKQotIFtgVmFsaWRhdG9yLnN1cHBvcnRlZFZlcnNpb25zYF0oI3N1cHBvcnRlZFZlcnNpb25zKQoKPGEgbmFtZT0ibmV3VmFsaWRhdG9yIj48L2E+CgojIyMgYG5ldyBWYWxpZGF0b3IoYWp2T3B0aW9ucylgCgpUaGUgY29uc3RydWN0b3IgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBgVmFsaWRhdG9yYC4gQnkgcGFzc2luZyBhbiBhanYgb3B0aW9ucwpvYmplY3QgaXQgaXMgcG9zc2libGUgdG8gaW5mbHVlbmNlIHRoZSBiZWhhdmlvciBvZiB0aGUKW0FKViBzY2hlbWEgdmFsaWRhdG9yXShodHRwczovL2Fqdi5qcy5vcmcvKS4gQUpWIGZhaWxzIHRvIHByb2Nlc3MgdGhlIG9wZW5BcGkKc2NoZW1hcyBpZiB5b3Ugc2V0IGBzdHJpY3Q6dHJ1ZWAgdGhlcmVmb3JlIHRoaXMgc2V0IHRvIGBmYWxzZWAgaWYgcHJlc2VudC4gVGhpcwppcyBub3QgYSBidWcgYnV0IGEgcmVzdWx0IG9mIHRoZSBjb21wbGV4aXR5IG9mIHRoZSBvcGVuQXBpIEpTT04gc2NoZW1hcy4KCjxhIG5hbWU9InZhbGlkYXRlIj48L2E+CgojIyMgYDxpbnN0YW5jZT4udmFsaWRhdGUoc3BlY2lmaWNhdGlvbilgCgpUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHZhbGlkYXRhIGEgc3BlY2lmaWNhdGlvbiBhZ2FpbnN0IHRoZSBPcGVuQXBpIHNjaGVtYXMuCmBzcGVjaWZpY2F0aW9uYCBjYW4gYmUgb25lIG9mOgoKLSBhIEpTT04gb2JqZWN0Ci0gYSBKU09OIG9iamVjdCBlbmNvZGVkIGFzIHN0cmluZwotIGEgWUFNTCBzdHJpbmcKLSBhIGZpbGVuYW1lCgpFeHRlcm5hbCByZWZlcmVuY2VzIGFyZSBfbm90XyBhdXRvbWF0aWNhbGx5IHJlc29sdmVkIHNvIHlvdSBuZWVkIHRvIGlubGluZSB0aGVtCnlvdXJzZWxmIGlmIHJlcXVpcmVkIGUuZyBieSB1c2luZyBgPGluc3RhbmNlPi5hZGRTcGVjUmVmKClgIFRoZSByZXN1bHQgaXMgYW4Kb2JqZWN0OgoKYGBgCnsKICB2YWxpZDogPGJvb2xlYW4+LAogIGVycm9yczogPGFueT4gIC8vIG9ubHkgcHJlc2VudCBpZiB2YWxpZCBpcyBmYWxzZQp9CmBgYAoKPGEgbmFtZT0ic3BlY2lmaWNhdGlvbiI+PC9hPgoKIyMjIGA8aW5zdGFuY2U+LnNwZWNpZmljYXRpb25gCgpJZiB0aGUgdmFsaWRhdG9yIG1hbmFnZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gdGhlIHNwZWNpZmljYXRpb24gcGFyYW1ldGVyIHRoZW4KdGhlIGV4dHJhY3RlZCBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSBpbiB0aGlzIHByb3BlcnR5IGFzIGphdmFzY3JpcHQgb2JqZWN0LgpFLmcuIGlmIHlvdSBzdXBwbGllZCBhIGZpbGVuYW1lIG9mIGEgWUFNTCBmaWxlIGFuZCB0aGUgZmlsZSB3YXMgc3VjZXNzZnVsbHkgcmVhZAphbmQgaXRzIFlBTUwgZGVjb2RlZCB0aGVuIHRoZSBjb250ZW50cyBpcyBoZXJlLiBFdmVuIGlmIHZhbGlkYXRpb24gZmFpbGVkLgoKPGEgbmFtZT0idmVyc2lvbiI+PC9hPgoKIyMjIGA8aW5zdGFuY2U+LnZlcnNpb25gCgpJZiB2YWxpZGF0aW9uIGlzIHN1Y2Nlc2Z1bGwgdGhpcyB3aWxsIHJldHVybiB0aGUgb3BlbkFwaSB2ZXJzaW9uIGZvdW5kIGUuZy4KKCIyLjAiLCIzLjAiLCIzLjEpLiBUaGUgb3BlbkFwaSBzcGVjaWZpY2F0aW9uIG9ubHkgc3BlY2lmaWVzIG1ham9yL21pbm9yCnZlcnNpb25zIGFzIHNlcGFyYXRlIHNjaGVtYXMuIFNvICIzLjAuMyIgcmVzdWx0cyBpbiAiMy4wIi4KCjxhIG5hbWU9InJlc29sdmVSZWZzIj48L2E+CgojIyMgYDxpbnN0YW5jZT4ucmVzb2x2ZVJlZnMob3B0aW9ucylgCgpUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlc29sdmUgYWxsIGludGVybmFsIHJlZmVyZW5jZXMuIEV4dGVybmFsIHJlZmVyZW5jZXMgYXJlCl9ub3RfIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZWQgc28geW91IG5lZWQgdG8gaW5saW5lIHRoZW0geW91cnNlbGYgaWYgcmVxdWlyZWQgZS5nCmJ5IHVzaW5nIGA8aW5zdGFuY2U+LmFkZFNwZWNSZWYoKWAuIEJ5IGRlZmF1bHQgaXQgd2lsbCB1c2UgdGhlIGxhc3QKc3BlY2lmaWNhdGlvbiBwYXNzZWQgdG8gYDxpbnN0YW5jZT4udmFsaWRhdGUoKWAgYnV0IHlvdSBjYW4gZXhwbGljaXR5IHBhc3MgYQpzcGVjaWZpY2F0aW9uIGJ5IHBhc3NpbmcgYHtzcGVjaWZpY2F0aW9uOjxvYmplY3Q+fWAgYXMgb3B0aW9ucy4gVGhlIHJlc3VsdCBpcyBhbgpgb2JqZWN0YCB3aGVyZSBhbGwgcmVmZXJlbmNlcyBoYXZlIGJlZW4gcmVzb2x2ZWQuIFJlc29sdXRpb24gb2YgcmVmZXJlbmNlcyBpcwpgc2hhbGxvd2AgVGhpcyBzaG91bGQgbm9ybWFsbHkgbm90IGJlIGEgcHJvYmxlbSBmb3IgdGhpcyB1c2UgY2FzZS4KCjxhIG5hbWU9ImFkZFNwZWNSZWYiPjwvYT4KCiMjIyBgPGluc3RhbmNlPi5hZGRTcGVjUmVmKHN1YlNwZWNpZmljYXRpb24sIHVyaSlgCgpgc3ViU3BlY2lmaWNhdGlvbmAgY2FuIGJlIG9uZSBvZjoKCi0gYSBKU09OIG9iamVjdAotIGEgSlNPTiBvYmplY3QgZW5jb2RlZCBhcyBzdHJpbmcKLSBhIFlBTUwgc3RyaW5nCi0gYSBmaWxlbmFtZSAKCmB1cmlgIG11c3QgYmUgYSBzdHJpbmcgKGUuZy4gYGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vc3Vic3BlY2ApLCBidXQKICBpcyBub3QgcmVxdWlyZWQgaWYgdGhlIHN1YlNwZWNpZmljYXRpb24gaG9sZHMgYSBgJGlkYCBhdHRyaWJ1dGUgYXQgdG9wIGxldmVsLgogIElmIHlvdSBzcGVjaWZ5IGEgdmFsdWUgZm9yIGB1cmlgIGl0IHdpbGwgb3ZlcndyaXRlIHRoZSBkZWZpbml0aW9uIGluIHRoZSBgJGlkYAogIGF0dHJpYnV0ZSBhdCB0b3AgbGV2ZWwuCgpTb21ldGltZXMgYSBzcGVjaWZpY2F0aW9uIGlzIGNvbXBvc2VkIG9mIG11bHRpcGxlIGZpbGVzIHRoYXQgZWFjaCBjb250YWluIHBhcnRzCm9mIHRoZSBzcGVjaWZpY2F0aW9uLiBUaGUgc3BlY2lmaWNhdGlvbiByZWZlcnMgdG8gdGhlc2Ugc3ViIHNwZWNpZmljYXRpb25zIHVzaW5nCmBleHRlcm5hbCByZWZlcmVuY2VzYC4gU2luY2UgcmVmZXJlbmNlcyBhcmUgYmFzZWQgb24gVVJJJ3MgKHNvIGBJZGVudGlmaWVyYCBhbmQgbm90CmBMb2NhdGlvbmAgYXMgaW4gVVJMJ3MhKSB0aGVyZSBuZWVkcyB0byBiZSBhIHdheSB0byB0ZWxsIHRoZSB2YWxpZGF0b3IgaG93IHRvCnJlc29sdmUgdGhvc2UgcmVmZXJlbmNlcy4gVGhpcyBpcyB3aGVyZSB0aGlzIGZ1bmN0aW9uIGNvbWVzIGluOgoKRS5nLjogd2UgaGF2ZSBhIG1haW4gc3BlY2lmaWNhdGlvbiBpbiBgbWFpbi1zcGVjLnlhbWxgIGNvbnRhaW5pbmc6CgpgYGB5YW1sCi4uLgpwYXRoczoKICAvcGV0OgogICAgcG9zdDoKICAgICAgdGFnczoKICAgICAgICAtIHBldAogICAgICBzdW1tYXJ5OiBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogICAgICBkZXNjcmlwdGlvbjogJycKICAgICAgb3BlcmF0aW9uSWQ6IGFkZFBldAogICAgICByZXNwb25zZXM6CiAgICAgICAgJzQwNSc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW52YWxpZCBpbnB1dAogICAgICByZXF1ZXN0Qm9keToKICAgICAgICAkcmVmOiAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zdWJzcGVjIy9jb21wb25lbnRzL3JlcXVlc3RCb2RpZXMvUGV0JwpgYGAKCkFuZCB0aGUgcmVmZXJlbmNlIGlzIGluIGBzdWItc3BlYy55YW1sYCwgY29udGFpbmluZzoKCmBgYHlhbWwKY29tcG9uZW50czoKICByZXF1ZXN0Qm9kaWVzOgogICAgUGV0OgogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQnCiAgICAgICAgYXBwbGljYXRpb24veG1sOgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwogICAgICBkZXNjcmlwdGlvbjogUGV0IG9iamVjdCB0aGF0IG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSBzdG9yZQogICAgICByZXF1aXJlZDogdHJ1ZQogIC4uLgpgYGAKClRoZW4gdGhlIHZhbGlkYXRpb24gY2FuIGJlIHBlcmZvcm1lZCBhcyBmb2xsb3dzOgoKYGBgamF2YXNjcmlwdAppbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICJAc2VyaW91c21lL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvciI7CmNvbnN0IHZhbGlkYXRvciA9IG5ldyBWYWxpZGF0b3IoKTsKYXdhaXQgdmFsaWRhdG9yLmFkZFNwZWNSZWYoIi4vc3ViLXNwZWMueWFtbCIsICJodHRwOi8vd3d3LmV4YW1wbGUuY29tL3N1YnNwZWMiKTsKY29uc3QgcmVzID0gYXdhaXQgdmFsaWRhdG9yLnZhbGlkYXRlKCIuL21haW4tc3BlYy55YW1sIik7Ci8vIHJlcyBub3cgY29udGFpbnMgdGhlIHJlc3VsdHMgb2YgdGhlIHZhbGlkYXRpb24gYWNyb3NzIG1haW4tc3BlYyBhbmQgc3ViLXNwZWMKY29uc3Qgc3BlY2lmaWNhdGlvbiA9IHZhbGlkYXRvci5zcGVjaWZpY2F0aW9uOwovLyBzcGVjaWZpY2F0aW9uIG5vdyBjb250YWlucyBhIEphdmFzY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNwZWNpZmljYXRpb24KLy8gd2l0aCB0aGUgc3Vic3BlYyBpbmxpbmVkCmBgYAoKPGEgbmFtZT0idmFsaWRhdGVCdW5kbGUiPjwvYT4KCiMjIyBgPGluc3RhbmNlPi52YWxpZGF0ZUJ1bmRsZShbc3BlY2lmaWNhdGlvbixzdWJzcGVjaWZpY2F0aW9uLCAuLi5dKWAKClRoaXMgb2ZmZXJzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBjb21iaW5hdGlvbiBvZiBgYWRkU3BlY1JlZmAgYW5kIGB2YWxpZGF0ZWAuCllvdSBjYW4gcGFzcyBhbiBhcnJheSBvZiAoc3ViKXNwZWNpZmljYXRpb25zIHdoZXJlIGVhY2ggY2FuIGJlIG9uZSBvZjoKCi0gYSBKU09OIG9iamVjdAotIGEgSlNPTiBvYmplY3QgZW5jb2RlZCBhcyBzdHJpbmcKLSBhIFlBTUwgc3RyaW5nCi0gYSBmaWxlbmFtZQoKVGhlcmUgY2FuIG9ubHkgYmUgb25lIG1haW4gc3BlY2lmaWNhdGlvbiBwcmVzZW50IChzdGFydGluZyB3aXRoIHN3YWdnZXIvb3BlbmFwaSkgYnV0IGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgdGhlIGZpcnN0IG9uZS4gSWYgeW91IHByb3ZpZGUgZmlsZW5hbWVzIGFuZCB0aGUgZmlsZXMgZG8gbm90IGhhdmUgYCRpZGAgYXR0cmlidXRlcywgdGhlbiB0aGUgYCRpZGAgYXR0cmlidXRlIHdpbGwgYmUgZ2VuZXJhdGVkIGZyb20gdGhlIGZpbGVuYW1lLgoKSWYgd2UgdGFrZSB0aGUgWUFNTCBzcGVjaWZpY2F0aW9ucyBmcm9tIHRoZSBwcmV2aW91cyBleGFtcGxlIHRoZW4gdmFsaWRhdGlvbiBjYW4gYmUgcGVyZm9ybWVkIGFzIGZvbGxvd3M6CgpgYGBqYXZhc2NyaXB0CmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gIkBzZXJpb3VzbWUvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIjsKY29uc3QgdmFsaWRhdG9yID0gbmV3IFZhbGlkYXRvcigpOwpjb25zdCByZXMgPSBhd2FpdCB2YWxpZGF0b3IudmFsaWRhdGVCdW5kbGUoWyAiLi9zdWItc3BlYy55YW1sIiwgIi4vbWFpbi1zcGVjLnlhbWwiXSk7Ci8vIHJlcyBub3cgY29udGFpbnMgdGhlIHJlc3VsdHMgb2YgdGhlIHZhbGlkYXRpb24gYWNyb3NzIG1haW4tc3BlYyBhbmQgc3ViLXNwZWMKY29uc3Qgc3BlY2lmaWNhdGlvbiA9IHZhbGlkYXRvci5zcGVjaWZpY2F0aW9uOwovLyBzcGVjaWZpY2F0aW9uIG5vdyBjb250YWlucyBhIEphdmFzY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNwZWNpZmljYXRpb24KLy8gd2l0aCB0aGUgc3Vic3BlYyBpbmxpbmVkCmBgYAoKPGEgbmFtZT0ic3VwcG9ydGVkVmVyc2lvbnMiPjwvYT4KCiMjIyBgVmFsaWRhdG9yLnN1cHBvcnRlZFZlcnNpb25zYAoKVGhpcyBzdGF0aWMgcHJvcGVydHkgcmV0dXJucyB0aGUgT3BlbkFwaSB2ZXJzaW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBwYWNrYWdlIGFzIGEKYFNldGAuIElmIHByZXNlbnQsIHRoZSByZXN1bHQgb2YgYDxpbnN0YW5jZT4udmVyc2lvbmAgaXMgYSBtZW1iZXIgb2YgdGhpcyBgU2V0YC4KCjxhIG5hbWU9ImxpY2Vuc2UiPjwvYT4KCiMgTGljZW5zZQoKTGljZW5zZWQgdW5kZXIgdGhlIFtNSVQgbGljZW5zZV0oTElDRU5TRS50eHQpCg== readmeEtag: '"1371b391575e6e3499202cf391410205ec9dcff6"' readmeLastModified: Mon, 15 Jul 2024 08:51:31 GMT repositoryId: 365588968 description: OpenApi schema validation for OpenApi versions v2, v3.0.x and v3.1.x created: '2021-05-08T18:50:37Z' updated: '2024-08-31T17:12:25Z' language: JavaScript archived: false stars: 43 watchers: 3 forks: 5 owner: seriousme logo: https://avatars.githubusercontent.com/u/3322396?v=4 license: MIT repoEtag: '"9f56e8339ab76743636063a2a9e7322a79b7efc7e970a64cd792fc63254f9cca"' repoLastModified: Sat, 31 Aug 2024 17:12:25 GMT foundInMaster: true id: 983210df2c4289b2210365de0362ab66 name: openapi-schema-validator category: Description Validators link: https://www.npmjs.com/package/@seriousme/openapi-schema-validator language: Javascript source_description: OpenApi description validation v2: true v3_1: true - source: https://openapi.tools/ name: typeconv category: - Converters - Parsers link: https://github.com/grantila/typeconv/ language: typescript repository: https://github.com/grantila/typeconv/ source_description: >- typeconv is an extremely fast silver bullet type conversion utility. It converts between any of its supported types, bidirectionally. typeconv lets you convert between type systems which have core-types converters, such as JSON Schema, TypeScript, GraphQL, Open API and SureType. This package can be used as an API programatically or as an application (installed in node_modules/.bin or by using e.g. npx). v3: true id: 5a1209f6c9dd70a9f9d904b0db5924f4 repositoryMetadata: base64Readme: >- WyFbbnBtIHZlcnNpb25dW25wbS1pbWFnZV1dW25wbS11cmxdClshW2Rvd25sb2Fkc11bZG93bmxvYWRzLWltYWdlXV1bbnBtLXVybF0KWyFbYnVpbGQgc3RhdHVzXVtidWlsZC1pbWFnZV1dW2J1aWxkLXVybF0KWyFbY292ZXJhZ2Ugc3RhdHVzXVtjb3ZlcmFnZS1pbWFnZV1dW2NvdmVyYWdlLXVybF0KWyFbTm9kZS5KUyB2ZXJzaW9uXVtub2RlLXZlcnNpb25dXVtub2RlLXVybF0KCgo8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dyYW50aWxhL3R5cGVjb252L21hc3Rlci9hc3NldHMvbG9nby5zdmciIHdpZHRoPSIxMDAlIiAvPgoKKip0eXBlY29udioqIGlzIGFuIGV4dHJlbWVseSBmYXN0ICpzaWx2ZXIgYnVsbGV0KiB0eXBlIGNvbnZlcnNpb24gdXRpbGl0eS4KCkl0IGNvbnZlcnRzIGJldHdlZW4gYW55IG9mIGl0cyBzdXBwb3J0ZWQgdHlwZXMsIGJpZGlyZWN0aW9uYWxseS4KCnR5cGVjb252IGxldHMgeW91IGNvbnZlcnQgYmV0d2VlbiB0eXBlIHN5c3RlbXMgd2hpY2ggaGF2ZSBbYGNvcmUtdHlwZXNgXVtjb3JlLXR5cGVzLWdpdGh1Yi11cmxdIGNvbnZlcnRlcnMsIHN1Y2ggYXMgSlNPTiBTY2hlbWEsIFR5cGVTY3JpcHQsIEdyYXBoUUwsIE9wZW4gQVBJIGFuZCBbU3VyZVR5cGVdW3N1cmV0eXBlLWdpdGh1Yi11cmxdLiBUaGlzIHBhY2thZ2UgY2FuIGJlIHVzZWQgYXMgYW4gQVBJIHByb2dyYW1hdGljYWxseSBvciBhcyBhbiBhcHBsaWNhdGlvbiAoaW5zdGFsbGVkIGluIGBub2RlX21vZHVsZXMvLmJpbmAgb3IgYnkgdXNpbmcgZS5nLiBbYG5weGBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL25weCkpLgoKQnkgdGFraW5nIGFkdmFudGFnZSBvZiB0aGUgW2Bjb3JlLXR5cGVzYF1bY29yZS10eXBlcy1naXRodWItdXJsXSAoW25wbV1bY29yZS10eXBlcy1ucG0tdXJsXSkgdG9vbGJveCBmb3IgZ2VuZXJpYyB0eXBlIGhhbmRsaW5nLCB0eXBlY29udiBjYW4gY29udmVydCBhbmQgbWFpbnRhaW4gc291cmNlIGNvZGUgbG9jYXRpb24gaW5mb3JtYXRpb24sIGNvbW1lbnRzLCBkZXNjcmlwdGlvbnMgZXRjLiB3aGVuIGNvbnZlcnRpbmcgYmV0d2VlbiB0aGUgZGlmZmVyZW50IHR5cGUgc3lzdGVtcy4gSXQgaXMgdXNpbmcgdGhlIGZvbGxvd2luZyBjb252ZXJ0ZXIgcGFja2FnZXM6CiAqIFtgY29yZS10eXBlcy1qc29uLXNjaGVtYWBdW2NvcmUtdHlwZXMtanNvbi1zY2hlbWEtZ2l0aHViLXVybF0gKFtucG1dW2NvcmUtdHlwZXMtanNvbi1zY2hlbWEtbnBtLXVybF0pCiAqIFtgY29yZS10eXBlcy10c2BdW2NvcmUtdHlwZXMtdHMtZ2l0aHViLXVybF0gKFtucG1dW2NvcmUtdHlwZXMtdHMtbnBtLXVybF0pCiAqIFtgY29yZS10eXBlcy1ncmFwaHFsYF1bY29yZS10eXBlcy1ncmFwaHFsLWdpdGh1Yi11cmxdIChbbnBtXVtjb3JlLXR5cGVzLWdyYXBocWwtbnBtLXVybF0pCiAqIFtgY29yZS10eXBlcy1zdXJldHlwZWBdW2NvcmUtdHlwZXMtc3VyZXR5cGUtZ2l0aHViLXVybF0gKFtucG1dW2NvcmUtdHlwZXMtc3VyZXR5cGUtbnBtLXVybF0pCgpUaGVzZSB0eXBlIHN5c3RlbXMgZG9uJ3Qgc2hhcmUgdGhlIHNhbWUgc2V0IG9mIHR5cGVzIGFuZCBjb25zdHJhaW50cy4gRm9yIGV4YW1wbGUsIEpTT04gU2NoZW1hIGhhcyAqdmFsdWUqIGNvbnN0cmFpbnRzIChsaWtlICoiYSBzdHJpbmcgbXVzdCBiZSBsb25nZXIgdGhhbiA1IGNoYXJhY3RlcnMqIikgYW5kIEdyYXBoUUwgZG9lc24ndCBoYXZlIGBudWxsYCBvciBrZXktdmFsdWUgb2JqZWN0cyBhcyBhIGZpcnN0LWNsYXNzIHR5cGUuIENvbnZlcnRpb25zIHdpbGwgdGhlcmVmb3JlIHByb2R1Y2UgdGhlIHNtYWxsZXN0IGNvbW1vbiBkZW5vbWluYXRvciBvZiB0eXBlIGluZm9ybWF0aW9uLCBidXQgc3RpbGwgYmUgdmVyeSB1c2VmdWwuIFNlZSBbYGNvcmUtdHlwZXNgXVtjb3JlLXR5cGVzLWdpdGh1Yi11cmxdIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGl0cyBzdXBwb3J0ZWQgdHlwZXMsIGFuZCB3aHkgbm90IGltcGxlbWVudCBhIG5ldyBjb252ZXJzaW9uIHBhY2thZ2UgeW91cnNlbGYhCgoKIyBUTDtEUiBDTEkKCkNvbnZlcnQgZmlsZXMgZnJvbSBUeXBlU2NyaXB0ICgqInRzIiopIHRvIEdyYXBoUUwgKCoiZ3FsIiopLCBwdXQgdGhlIGdlbmVyYXRlZCBmaWxlcyBpbiB0aGUgYGdxbC1zY2hlbWFzYCBkaXJlY3RvcnkgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHN0cnVjdHVyZSBhcyB0aGUgc291cmNlIGZpbGVzOgoKYGBgenNoCiQgdHlwZWNvbnYgLWYgdHMgLXQgZ3FsIC1vIGdxbC1zY2hlbWFzICd0eXBlcy8qKi8qLnRzJwpgYGAKClRoaXMgZ2VuZXJhdGVzIGBncWwtc2NoZW1hcy8qLmdyYXBocWxgIGZvciBlYWNoIGAudHNgIGZpbGUgaW4gYHR5cGVzL2AgKGFuZCBzdWItZGlyZWN0b3JpZXMpLgoKKk5vdGUgdGhhdCB3aGVuIHVzaW5nIGdsb2IgcGF0dGVybnMsIHB1dCB0aGVtIGluIHF1b3RlcyB0byBub3QgaGF2ZSB0aGUgc2hlbGwgdHJ5IHRvIGV4cGFuZCB0aGUgcGF0dGVybiAtIHR5cGVjb252IHdpbGwgZG8gaXQgYSBsb3QgYmV0dGVyISoKCgojIyBTdXJlVHlwZQoKV2hlbiBjb252ZXJ0aW5nICpmcm9tKiBTdXJlVHlwZSwgdHlwZWNvbnYgd2lsbCBleHRyYWN0IGFsbCAqZXhwb3J0ZWQqIHZhbGlkYXRvcnMuCgoKIyMgVmVyc2lvbnMKClNpbmNlIHYyOgogKiBUaGUgcGFja2FnZSBpcyBhIHB1cmUgRVNNIG1vZHVsZSwgbm8gbW9yZSBDb21tb25KUyBzdXBwb3J0LiBUaGlzIHdpbGwgbGlrZWx5IG5vdCBhZmZlY3QgQ0xJIHVzYWdlcy4KICogTm9kZSAxMiBzdXBwb3J0IGlzIGRyb3BwZWQuCgoKIyBDb250ZW50cwoKICogW0NvbnZlcnNpb24gZXhhbXBsZV0oI2NvbnZlcnNpb24tZXhhbXBsZSkKICogW1VzYWdlXSgjdXNhZ2UpCiAgICogW0NvbW1hbmQgbGluZV0oI2NvbW1hbmQtbGluZSkKICAgKiBbQXMgQVBJXSgjYXMtYXBpKQogICAgICogW0pTT04gU2NoZW1hXSgjanNvbi1zY2hlbWEpCiAgICAgKiBbT3BlbiBBUEldKCNvcGVuLWFwaSkKICAgICAqIFtUeXBlU2NyaXB0XSgjdHlwZXNjcmlwdCkKICAgICAqIFtHcmFwaFFMXSgjZ3JhcGhxbCkKICAgICAqIFtTdXJlVHlwZV0oI3N1cmV0eXBlKQoKCiMgQ29udmVyc2lvbiBleGFtcGxlCgo8ZGV0YWlscyBzdHlsZT0icGFkZGluZy1sZWZ0OiAzMnB4O2JvcmRlci1sZWZ0OiA0cHggc29saWQgZ3JheTsiPgo8c3VtbWFyeT5Db252ZXJ0aW5nIHRoZSBmb2xsb3dpbmcgSlNPTiBTY2hlbWE6PC9zdW1tYXJ5Pgo8cD4KCmBgYGpzb24KewoJImRlZmluaXRpb25zIjogewoJCSJVc2VyIjogewoJCQkidHlwZSI6ICJvYmplY3QiLAoJCQkidGl0bGUiOiAiVXNlciB0eXBlIiwKCQkJImRlc2NyaXB0aW9uIjogIlRoaXMgdHlwZSBob2xkcyB0aGUgdXNlciBpbmZvcm1hdGlvbiwgc3VjaCBhcyBuYW1lIiwKCQkJInByb3BlcnRpZXMiOiB7ICJuYW1lIjogeyAidHlwZSI6ICJzdHJpbmciLCAidGl0bGUiOiAiVGhlIHJlYWwgbmFtZSIgfSB9LAoJCQkicmVxdWlyZWQiOiBbICJuYW1lIiBdCgkJfSwKCQkiQ2hhdExpbmUiOiB7CgkJCSJ0eXBlIjogIm9iamVjdCIsCgkJCSJ0aXRsZSI6ICJBIGNoYXQgbGluZSIsCgkJCSJwcm9wZXJ0aWVzIjogewoJCQkJInVzZXIiOiB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIgfSwKCQkJCSJsaW5lIjogeyAidHlwZSI6ICJzdHJpbmciIH0KCQkJfSwKCQkJInJlcXVpcmVkIjogWyAidXNlciIsICJsaW5lIiBdCgkJfQoJfQp9CmBgYAoKPC9wPgo8L2RldGFpbHM+Cgo8ZGV0YWlscyBzdHlsZT0icGFkZGluZy1sZWZ0OiAzMnB4O2JvcmRlci1sZWZ0OiA0cHggc29saWQgZ3JheTsiPgo8c3VtbWFyeT4uLi4gdG8gVHlwZVNjcmlwdCB3aWxsIHByb2R1Y2U6PC9zdW1tYXJ5Pgo8cD4KCmBgYHRzCi8qVXNlciB0eXBlCgpUaGlzIHR5cGUgaG9sZHMgdGhlIHVzZXIgaW5mb3JtYXRpb24sIHN1Y2ggYXMgbmFtZSovCmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7CgkvKlRoZSByZWFsIG5hbWUqLwoJbmFtZTogc3RyaW5nOwp9CgovKkEgY2hhdCBsaW5lKi8KZXhwb3J0IGludGVyZmFjZSBDaGF0TGluZSB7Cgl1c2VyOiBVc2VyOwoJbGluZTogc3RyaW5nOwp9CmBgYAoKb3IgaWYgY29udmVydGVkIGludG8gVHlwZVNjcmlwdCBfZGVjbGFyYXRpb25zXyAoZm9yIGAuZC50c2AgZmlsZXMpLCBgZXhwb3J0IGludGVyZmFjZWAgd2lsbCBiZSBgZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlYC4KCjwvcD4KPC9kZXRhaWxzPgoKPGRldGFpbHMgc3R5bGU9InBhZGRpbmctbGVmdDogMzJweDtib3JkZXItbGVmdDogNHB4IHNvbGlkIGdyYXk7Ij4KPHN1bW1hcnk+Li4uIGFuZCB0byBHcmFwaFFMIHdpbGwgcHJvZHVjZTo8L3N1bW1hcnk+CjxwPgoKYGBgZ3JhcGhxbAoiIiIKIyBVc2VyIHR5cGUKClRoaXMgdHlwZSBob2xkcyB0aGUgdXNlciBpbmZvcm1hdGlvbiwgc3VjaCBhcyBuYW1lCiIiIgp0eXBlIFVzZXIgewoJIlRoZSByZWFsIG5hbWUiCgluYW1lOiBTdHJpbmchCn0KCiJBIGNoYXQgbGluZSIKdHlwZSBDaGF0TGluZSB7Cgl1c2VyOiBVc2VyIQoJbGluZTogU3RyaW5nIQp9CmBgYAoKPC9wPgo8L2RldGFpbHM+CgpDb252ZXJzaW9ucyBhcmUgYmktZGlyZWN0aW9uYWwsIHNvIGFueSBvZiB0aGVzZSB0eXBlIHN5c3RlbXMgY2FuIGNvbnZlcnQgdG8gYW55IG90aGVyLgoKCiMgVXNhZ2UKCgojIyBDb21tYW5kIGxpbmUKCllvdSBjYW4gZGVwZW5kIG9uIGB0eXBlY29udmAsIGFuZCBpZiBzbywgeW91J2xsIGhhdmUgYG5vZGVfbW9kdWxlcy8uYmluL3R5cGVjb252YCBpbnN0YWxsZWQuIE9yIHlvdSBydW4gaXQgd2l0aCBvbi10aGUtZmx5IGluc3RhbGxhdGlvbiB1c2luZyBgbnB4YCwgYXMgYG5weCB0eXBlY29udiBhcmdzLi4uYC4KClVzZSBgLWZgIChvciBgLS1mcm9tLXR5cGVgKSB0byBzcGVjaWZ5ICpmcm9tKiB3aGljaCB0eXBlIHN5c3RlbSB0byBjb252ZXJ0LCBhbmQgYC10YCAob3IgYC0tdG8tdHlwZWApIHRvIHNwZWNpZnkgd2hpY2ggdHlwZSBzeXN0ZW0gdG8gY29udmVydCAqdG8qLiBPdGhlciBvcHRpb25zIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBlYWNoIGNvbmZpZ3VyYXRpb24gKGJvdGggdGhlICpmcm9tKiBhbmQgdGhlICp0byopIGFuZCB0aGVzZSBvcHRpb25zIGFyZSB1c3VhbGx5IG9ubHkgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIHR5cGUgc3lzdGVtLgoKVGhlIHR5cGVzIHN1cHBvcnRlZCBhcmUgYGdxbGAgKEdyYXBoUUwpLCBgdHNgIChUeXBlU2NyaXB0KSwgYGpzY2AgKEpTT04gU2NoZW1hKSwgYG9hcGlgIChPcGVuIEFQSSkgYW5kIGBzdGAgKFN1cmVUeXBlKS4KCjxkZXRhaWxzIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMycHg7Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCBncmF5OyI+CjxzdW1tYXJ5Pjxjb2RlPiQgdHlwZWNvbnYgLS1oZWxwPC9jb2RlPjwvc3VtbWFyeT4KPHA+CgpgYGAKVXNhZ2U6IHR5cGVjb252IFtvcHRpb25zXSBmaWxlIC4uLgoKICAgT3B0aW9uczoKCiAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgIFByaW50ICh0aGlzKSBoZWxwIHNjcmVlbgogICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICBQcmludCB0aGUgcHJvZ3JhbSB2ZXJzaW9uCiAgIC12LCAtLXZlcmJvc2UgICAgICAgICAgICAgICAgICAgIFZlcmJvc2UgaW5mb3JtYXRpb25hbCBvdXRwdXQgKGRlZmF1bHQ6IGZhbHNlKQogICAtLWRyeS1ydW4gICAgICAgICAgICAgICAgICAgICAgICBQcmVwYXJlIGFuZCBwZXJmb3JtIGNvbnZlcnNpb24sIGJ1dCB3cml0ZSBubyBvdXRwdXQgKGRlZmF1bHQ6IGZhbHNlKQogICAtLShuby0paGlkZGVuICAgICAgICAgICAgICAgICAgICBJbmNsdWRlIGhpZGRlbiBmaWxlcywgaS5lLiBmaWxlcyBpbiAuZ2l0aWdub3JlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcyBiZWdpbm5pbmcgd2l0aCAnLicgYW5kIHRoZSAnLmdpdCcgZGlyZWN0b3J5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdDogdHJ1ZSkKICAgLWYsIC0tZnJvbS10eXBlIDx0eXBlPiAgICAgICAgICAgVHlwZSBzeXN0ZW0gdG8gY29udmVydCBmcm9tCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzICAgIFR5cGVTY3JpcHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNjICAgSlNPTiBTY2hlbWEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3FsICAgR3JhcGhRTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYXBpICBPcGVuIEFQSQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdCAgICBTdXJlVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdCAgICBjb3JlLXR5cGVzCgogICAtdCwgLS10by10eXBlIDx0eXBlPiAgICAgICAgICAgICBUeXBlIHN5c3RlbSB0byBjb252ZXJ0IHRvCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzICAgIFR5cGVTY3JpcHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNjICAgSlNPTiBTY2hlbWEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3FsICAgR3JhcGhRTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYXBpICBPcGVuIEFQSQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdCAgICBTdXJlVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdCAgICBjb3JlLXR5cGVzCgogICAtLShuby0pc2hvcnRjdXQgICAgICAgICAgICAgICAgICBTaG9ydGN1dCBjb252ZXJzaW9uIGlmIHBvc3NpYmxlIChieXBhc3NpbmcgY29yZS10eXBlcykuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgcG9zc2libGUgYmV0d2VlbiBTdXJlVHlwZSwgSlNPTiBTY2hlbWEgYW5kIE9wZW4gQVBJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByZXNlcnZlIGFsbCBmZWF0dXJlcyB3aGljaCB3b3VsZCBvdGhlcndpc2UgYmUgZXJhc2VkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IHRydWUpCiAgIC1vLCAtLW91dHB1dC1kaXJlY3RvcnkgPGRpcj4gICAgIE91dHB1dCBkaXJlY3RvcnkuIERlZmF1bHRzIHRvIHRoZSBzYW1lIGFzIHRoZSBpbnB1dCBmaWxlcy4KICAgLU8sIC0tb3V0cHV0LWV4dGVuc2lvbiA8ZXh0PiAgICAgT3V0cHV0IGZpbGVuYW1lIGV4dGVuc2lvbiB0byB1c2UuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICd0cycvJ2QudHMnLCAnanNvbicsICd5YW1sJyBhbmQgJ2dyYXBocWwnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgJy0nIHRvIG5vdCBzYXZlIGEgZmlsZSwgYnV0IG91dHB1dCB0byBzdGRvdXQgaW5zdGVhZC4KICAgLS0obm8tKXN0cmlwLWFubm90YXRpb25zICAgICAgICAgUmVtb3ZlcyBhbGwgYW5ub3RhdGlvbnMgKGRlc2NyaXB0aW9ucywgY29tbWVudHMsIC4uLikgKGRlZmF1bHQ6IGZhbHNlKQogICBUeXBlU2NyaXB0CiAgICAgLS0obm8tKXRzLWRlY2xhcmF0aW9uICAgICAgICAgIE91dHB1dCBUeXBlU2NyaXB0IGRlY2xhcmF0aW9ucyAoZGVmYXVsdDogZmFsc2UpCiAgICAgLS0obm8tKXRzLWRpc2FibGUtbGludC1oZWFkZXIgIE91dHB1dCBjb21tZW50cyBmb3IgZGlzYWJsaW5nIGxpbnRpbmcgKGRlZmF1bHQ6IHRydWUpCiAgICAgLS0obm8tKXRzLWRlc2NyaXB0aXZlLWhlYWRlciAgIE91dHB1dCB0aGUgaGVhZGVyIGNvbW1lbnQgKGRlZmF1bHQ6IHRydWUpCiAgICAgLS0obm8tKXRzLXVzZS11bmtub3duICAgICAgICAgIFVzZSAndW5rbm93bicgdHlwZSBpbnN0ZWFkIG9mICdhbnknIChkZWZhdWx0OiB0cnVlKQogICAgIC0tdHMtbm9uLWV4cG9ydGVkIDxtZXRob2Q+ICAgICBTdHJhdGVneSBmb3Igbm9uLWV4cG9ydGVkIHR5cGVzIChkZWZhdWx0OiBpbmNsdWRlLWlmLXJlZmVyZW5jZWQpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwgICAgICAgICAgICAgICAgICAgRmFpbCBjb252ZXJzaW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZSAgICAgICAgICAgICAgICAgRG9uJ3QgaW5jbHVkZSBub24tZXhwb3J0ZWQgdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbiBpZiByZWZlcmVuY2VkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgICAgICAgICAgICAgICAgSW5jbHVkZSBub24tZXhwb3J0ZWQgdHlwZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lICAgICAgICAgICAgICAgICBEb24ndCBpbmNsdWRlIG5vbi1leHBvcnRlZCB0eXBlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmUgdGhlbSBpZiBuZWNlc3NhcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lsbCBmYWlsIG9uIGN5Y2xpYyB0eXBlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLWlmLXJlZmVyZW5jZWQgIEluY2x1ZGUgbm9uLWV4cG9ydGVkIHR5cGVzIG9ubHkgaWYgdGhleQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSByZWZlcmVuY2VkIGZyb20gZXhwb3J0ZWQgdHlwZXMKCiAgICAgLS10cy1uYW1lc3BhY2VzIDxtZXRob2Q+ICAgICAgIE5hbWVzcGFjZSBzdHJhdGVneS4gKGRlZmF1bHQ6IGlnbm9yZSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlICAgICAgICAgICBJZ25vcmUgbmFtZXNwYWNlcyBlbnRpcmVseSAoZGVmYXVsdCkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBXaGVuIGNvbnZlcnRpbmcgZnJvbSBUeXBlU2NyaXB0LCB0eXBlcyBpbiBuYW1lc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlbid0IGV4cG9ydGVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gV2hlbiBjb252ZXJ0aW5nIHRvIFR5cGVTY3JpcHQsIG5vIGF0dGVtcHQgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvbnN0cnVjdCBuYW1lc3BhY2VzIGlzIHBlcmZvcm1lZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3QgICAgICAgICAgICBXaGVuIGNvbnZlcnRpbmcgZnJvbSBUeXBlU2NyaXB0LCBob2lzdCB0eXBlcyBpbnNpZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VzIHRvIHRvcC1sZXZlbCwgc28gdGhhdCB0aGUgdHlwZXMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZWQsIGJ1dCB3aXRob3V0IHRoZWlyIG5hbWVzcGFjZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNhbiBjYXVzZSBjb25mbGljdHMsIGluIHdoaWNoIGNhc2UgZGVlcGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb25zIHdpbGwgYmUgZHJvcHBlZCBpbiBmYXZvciBvZiBtb3JlIHRvcC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbCBkZWNsYXJhdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW4gY2FzZSBvZiBzYW1lLWxldmVsIChuYW1lc3BhY2UgZGVwdGgpIGRlY2xhcmF0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhlIHNhbWUgbmFtZSwgb25seSBvbmUgd2lsbCBiZSBleHBvcnRlZCBpbiBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uLWRldGVybWluaXN0aWMgbWFubmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3QgICAgICAgICAgICAgIFdoZW4gY29udmVydGluZyBmcm9tIFR5cGVTY3JpcHQsIGpvaW4gdGhlIG5hbWVzcGFjZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGV4cG9ydGVkIHR5cGUgd2l0aCBhIGRvdCAoLikuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiBjb252ZXJ0aW5nIHRvIFR5cGVTY3JpcHQsIHRyeSB0byByZWNvbnN0cnVjdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZXMgYnkgc3BsaXR0aW5nIHRoZSBuYW1lIG9uIGRvdCAoLikuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVyc2NvcmUgICAgICAgV2hlbiBjb252ZXJ0aW5nIGZyb20gVHlwZVNjcmlwdCwgam9pbiB0aGUgbmFtZXNwYWNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgZXhwb3J0ZWQgdHlwZSB3aXRoIGFuIHVuZGVyc2NvcmUgKF8pLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gY29udmVydGluZyB0byBUeXBlU2NyaXB0LCB0cnkgdG8gcmVjb25zdHJ1Y3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VzIGJ5IHNwbGl0dGluZyB0aGUgbmFtZSBvbiB1bmRlcnNjb3JlIChfKS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb25zdHJ1Y3QtYWxsICBXaGVuIGNvbnZlcnRpbmcgdG8gVHlwZVNjcmlwdCwgdHJ5IHRvIHJlY29uc3RydWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlcyBieSBzcGxpdHRpbmcgdGhlIG5hbWUgb24gYm90aCBkb3QgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXJzY29yZS4KCiAgIEdyYXBoUUwKICAgICAtLWdxbC11bnN1cHBvcnRlZCA8bWV0aG9kPiAgICAgTWV0aG9kIHRvIHVzZSBmb3IgdW5zdXBwb3J0ZWQgdHlwZXMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlICBJZ25vcmUgKHNraXApIHR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybiAgICBJZ25vcmUgdHlwZSwgYnV0IHdhcm4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgICBUaHJvdyBhbiBlcnJvcgoKICAgICAtLWdxbC1udWxsLXR5cGVuYW1lIDxuYW1lPiAgICAgQ3VzdG9tIHR5cGUgbmFtZSB0byB1c2UgZm9yIG51bGwKICAgT3BlbiBBUEkKICAgICAtLW9hcGktZm9ybWF0IDxmbXQ+ICAgICAgICAgICAgT3V0cHV0IGZvcm1hdCBmb3IgT3BlbiBBUEkgKGRlZmF1bHQ6IHlhbWwpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gIEpTT04KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFtbCAgWUFNTCAoJ3ltbCcgaXMgYWxzbyBhbGxvd2VkKQoKICAgICAtLW9hcGktdGl0bGUgPHRpdGxlPiAgICAgICAgICAgT3BlbiBBUEkgdGl0bGUgdG8gdXNlIGluIG91dHB1dCBkb2N1bWVudC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gdGhlIGlucHV0IGZpbGVuYW1lLgogICAgIC0tb2FwaS12ZXJzaW9uIDx2ZXJzaW9uPiAgICAgICBPcGVuIEFQSSBkb2N1bWVudCB2ZXJzaW9uIHRvIHVzZSBpbiBvdXRwdXQgZG9jdW1lbnQuIChkZWZhdWx0OiAxKQogICBTdXJlVHlwZQogICAgIC0tc3QtcmVmLW1ldGhvZCA8bWV0aG9kPiAgICAgICBTdXJlVHlwZSByZWZlcmVuY2UgZXhwb3J0IG1ldGhvZCAoZGVmYXVsdDogcHJvdmlkZWQpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vLXJlZnMgICBEb24ndCByZWYgYW55dGhpbmcsIGlubGluZSBhbGwgdHlwZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQgIFJlZmVyZW5jZSB0eXBlcyB0aGF0IGFyZSBleHBsaWNpdGx5IGV4cG9ydGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZi1hbGwgICBSZWYgYWxsIHByb3ZpZGVkIHR5cGVzIGFuZCB0aG9zZSB3aXRoIG5hbWVzCgogICAgIC0tc3QtbWlzc2luZy1yZWYgPG1ldGhvZD4gICAgICBXaGF0IHRvIGRvIHdoZW4gZGV0ZWN0aW5nIGFuIHVucmVzb2x2YWJsZSByZWZlcmVuY2UgKGRlZmF1bHQ6IHdhcm4pCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZSAgSWdub3JlOyBza2lwIHR5cGUgb3IgY2FzdCB0byBhbnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybiAgICBTYW1lIGFzICdpZ25vcmUnLCBidXQgd2FybgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciAgIEZhaWwgY29udmVyc2lvbgoKICAgICAtLShuby0pc3QtaW5saW5lLXR5cGVzICAgICAgICAgSW5saW5lIHByZXR0eSB0eXBlc2NyaXB0IHR5cGVzIGFzaWRlIHZhbGlkYXRvciBjb2RlIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtdHlwZSAgICAgICAgICBFeHBvcnQgdGhlIGRlZHVjZWQgdHlwZXMgKG9yIHRoZSBwcmV0dHkgdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiAtLXN0LWlubGluZS10eXBlcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtc2NoZW1hICAgICAgICBFeHBvcnQgdmFsaWRhdG9yIHNjaGVtYXMgKGRlZmF1bHQ6IGZhbHNlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtdmFsaWRhdG9yICAgICBFeHBvcnQgcmVndWxhciB2YWxpZGF0b3JzIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtZW5zdXJlciAgICAgICBFeHBvcnQgJ2Vuc3VyZXInIHZhbGlkYXRvcnMgKGRlZmF1bHQ6IHRydWUpCiAgICAgLS0obm8tKXN0LWV4cG9ydC10eXBlLWd1YXJkICAgIEV4cG9ydCB0eXBlIGd1YXJkcyAoaXMqIHZhbGlkYXRvcnMpIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC11c2UtdW5rbm93biAgICAgICAgICBVc2UgJ3Vua25vd24nIHR5cGUgaW5zdGVhZCBvZiAnYW55JyAoZGVmYXVsdDogdHJ1ZSkKICAgICAtLShuby0pc3QtZm9yd2FyZC1zY2hlbWEgICAgICAgRm9yd2FyZCB0aGUgSlNPTiBTY2hlbWEsIGFuZCBjcmVhdGUgYW4gdW50eXBlZCB2YWxpZGF0b3Igc2NoZW1hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhlIHJhdyBKU09OIFNjaGVtYSB1bmRlciB0aGUgaG9vZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IGZhbHNlKQpgYGAKCjwvcD4KPC9kZXRhaWxzPgoKCiMjIEFzIEFQSQoKVG8gY29udmVydCBmcm9tIG9uZSB0eXBlIHN5c3RlbSB0byBhbm90aGVyLCB5b3UgY3JlYXRlIGEgKnJlYWRlciogZm9yIHRoZSB0eXBlIHN5c3RlbSB0byBjb252ZXJ0ICoqZnJvbSoqIGFuZCBhICp3cml0ZXIqIGZvciB0aGUgdHlwZSBzeXN0ZW0gdG8gY29udmVydCAqKnRvKiouIFRoZSByZWFkZXJzIGFuZCB3cml0ZXJzIGZvciB0aGUgZGlmZmVyZW50IHR5cGUgc3lzdGVtcyBoYXZlIHRoZWlyIG93biBzZXQgb2Ygb3B0aW9ucy4gU29tZSBoYXZlIG5vIG9wdGlvbnMgKGxpa2UgdGhlIEpTT04gU2NoZW1hIHJlYWRlciksIHNvbWUgcmVxdWlyZSBvcHRpb25zIChsaWtlIHRoZSBPcGVuIEFQSSB3cml0ZXIpLgoKCiMjIyBtYWtlQ29udmVydGVyCgpNYWtpbmcgYSBjb252ZXJ0ZXIgaXMgZG9uZSB1c2luZyBgbWFrZUNvbnZlcnRlcihyZWFkZXIsIHdyaXRlciwgb3B0aW9ucz8pYCwgd2hpY2ggdGFrZXMgYSByZWFkZXIgYW5kIGEgd3JpdGVyLCBhbmQgb3B0aW9uYWxseSBvcHRpb25zOgoKIyMjIyAqKmN3ZCoqIChzdHJpbmcpCgpUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSwgb25seSB1c2VmdWwgd2hlbiB3b3JraW5nIHdpdGggZmlsZXMuCgojIyMjICoqc2ltcGxpZnkqKiAoYm9vbGVhbikgKGRlZmF1bHQgdHJ1ZSkKCldoZW4gc2ltcGxpZnkgaXMgdHJ1ZSwgdGhlIGNvbnZlcnRlciB3aWxsIGxldCBjb3JlLXR5cGVzClsqY29tcHJlc3MqXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcyNzaW1wbGlmeSkgdGhlCnR5cGVzIGFmdGVyIGhhdmluZyBjb252ZXJ0ZWQgZnJvbSB7cmVhZGVyfSBmb3JtYXQgdG8gY29yZS10eXBlcy4KVGhpcyBpcyB1c3VhbGx5IHJlY29tbWVuZGVkLCBidXQgbWF5IGNhdXNlIHNvbWUgYW5ub3RhdGlvbnMgKGNvbW1lbnRzKQp0byBiZSBkcm9wcGVkLgoKIyMjIyAqKm1hcCoqIChDb252ZXJ0TWFwRnVuY3Rpb24pCgpDdXN0b20gbWFwIGZ1bmN0aW9uIGZvciB0cmFuc2Zvcm1pbmcgZWFjaCB0eXBlIGFmdGVyIGl0IGhhcyBiZWVuCmNvbnZlcnRlZCAqZnJvbSogdGhlIHNvdXJjZSB0eXBlIChhbmQgYWZ0ZXIgaXQgaGFzIGJlZW4gc2ltcGxpZmllZCksCmJ1dCBiZWZvcmUgaXQncyB3cml0dGVuIHRvIHRoZSB0YXJnZXQgdHlwZSBzeXN0ZW0uCgpUeXBlOiBgKG5vZGU6IE5hbWVkVHlwZSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFJlYWRvbmx5QXJyYXk8TmFtZWRUeXBlPikgPT4gTmFtZWRUeXBlYAooW05hbWVkVHlwZSByZWZdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzI3NwZWNpZmljYXRpb24pKQoKSWYgYGZpbHRlcmAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYmVmb3JlIGBmaWx0ZXJgLgoKSWYgYHRyYW5zZm9ybWAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYmVmb3JlIGB0cmFuc2Zvcm1gLgoKIyMjIyAqKmZpbHRlcioqIChDb252ZXJ0RmlsdGVyRnVuY3Rpb24pCgpDdXN0b20gZmlsdGVyIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgdHlwZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4KY29udmVydGVkICpmcm9tKiB0aGUgc291cmNlIHR5cGUuCgpUeXBlOiBgKG5vZGU6IE5hbWVkVHlwZSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFJlYWRvbmx5QXJyYXk8TmFtZWRUeXBlPikgPT4gYm9vbGVhbmAKKFtOYW1lZFR5cGUgcmVmXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcyNzcGVjaWZpY2F0aW9uKSkKCklmIGBtYXBgIGlzIHVzZWQgYXMgd2VsbCwgdGhpcyBydW5zIGFmdGVyIGBtYXBgLgoKSWYgYHRyYW5zZm9ybWAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYmVmb3JlIGB0cmFuc2Zvcm1gLgoKIyMjIyAqKnRyYW5zZm9ybSoqIChDb252ZXJ0VHJhbnNmb3JtRnVuY3Rpb24pCgpDdXN0b20gZmlsdGVyIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgdHlwZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4KY29udmVydGVkICpmcm9tKiB0aGUgc291cmNlIHR5cGUuCgpUeXBlOiBgKCBkb2M6IE5vZGVEb2N1bWVudCApID0+IE5vZGVEb2N1bWVudGAKKFtOb2RlRG9jdW1lbnQgcmVmXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcyNzcGVjaWZpY2F0aW9uKSkKCklmIGBtYXBgIGlzIHVzZWQgYXMgd2VsbCwgdGhpcyBydW5zIGFmdGVyIGBtYXBgLgoKSWYgYGZpbHRlcmAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYWZ0ZXIgYGZpbHRlcmAuCgojIyMjICoqc2hvcnRjdXQqKiAoYm9vbGVhbikgKGRlZmF1bHQgdHJ1ZSkKClNob3J0Y3V0IHJlYWRlciBhbmQgd3JpdGVyIGlmIHBvc3NpYmxlIChieXBhc3NpbmcgY29yZS10eXBlcykuCgoKCiMjIyBCYXNpYyBleGFtcGxlIGNvbnZlcnNpb24KCmBgYHRzCmltcG9ydCB7CiAgZ2V0VHlwZVNjcmlwdFJlYWRlciwKICBnZXRPcGVuQXBpV3JpdGVyLAogIG1ha2VDb252ZXJ0ZXIsCn0gZnJvbSAndHlwZWNvbnYnCgpjb25zdCByZWFkZXIgPSBnZXRUeXBlU2NyaXB0UmVhZGVyKCApOwpjb25zdCB3cml0ZXIgPSBnZXRPcGVuQXBpV3JpdGVyKCB7IGZvcm1hdDogJ3lhbWwnLCB0aXRsZTogJ015IEFQSScsIHZlcnNpb246ICd2MScgfSApOwpjb25zdCB7IGNvbnZlcnQgfSA9IG1ha2VDb252ZXJ0ZXIoIHJlYWRlciwgd3JpdGVyICk7CmNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgY29udmVydCggeyBkYXRhOiAiZXhwb3J0IHR5cGUgRm9vID0gc3RyaW5nIHwgbnVtYmVyOyIgfSApOwpkYXRhOyAvLyBUaGlzIGlzIHRoZSBPcGVuIEFQSSB5YW1sIGFzIGEgc3RyaW5nCmBgYAoKCiMjIyBKU09OIFNjaGVtYQoKVGhlcmUgYXJlIHR3byBleHBvcnRlZCBmdW5jdGlvbnMgZm9yIEpTT04gU2NoZW1hOgoKYGBgdHMKaW1wb3J0IHsgZ2V0SnNvblNjaGVtYVJlYWRlciwgZ2V0SnNvblNjaGVtYVdyaXRlciB9IGZyb20gJ3R5cGVjb252JwoKY29uc3QgcmVhZGVyID0gZ2V0SnNvblNjaGVtYVJlYWRlciggKTsKY29uc3Qgd3JpdGVyID0gZ2V0SnNvblNjaGVtYVdyaXRlciggKTsKYGBgCgpUaGV5IGRvbid0IGhhdmUgYW55IG9wdGlvbnMuCgp0eXBlY29udiBleHBlY3RzIHRoZSBKU09OIFNjaGVtYSB0byBjb250YWluICoqZGVmaW5pdGlvbnMqKiwgaS5lLiB0byBiZSBpbiB0aGUgZm9ybToKCjxkZXRhaWxzIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMycHg7Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCBncmF5OyI+CjxzdW1tYXJ5PkpTT04gU2NoZW1hPC9zdW1tYXJ5Pgo8cD4KCmBgYGpzb24KewoJImRlZmluaXRpb25zIjogewoJCSJVc2VyIjogewoJCQkidHlwZSI6ICJvYmplY3QiLAoJCQkicHJvcGVydGllcyI6IHsgIm5hbWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSB9LAoJCQkicmVxdWlyZWQiOiBbICJuYW1lIiBdCgkJfSwKCQkiQ2hhdExpbmUiOiB7CgkJCSJ0eXBlIjogIm9iamVjdCIsCgkJCSJwcm9wZXJ0aWVzIjogewoJCQkJInVzZXIiOiB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIgfSwKCQkJCSJsaW5lIjogeyAidHlwZSI6ICJzdHJpbmciIH0KCQkJfSwKCQkJInJlcXVpcmVkIjogWyAidXNlciIsICJsaW5lIiBdCgkJfQoJfQp9CmBgYAoKPC9wPgo8L2RldGFpbHM+Cgp0eXBlY29udiBkb2Vzbid0IHN1cHBvcnQgZXh0ZXJuYWwgcmVmZXJlbmNlcyAodG8gb3RoZXIgZmlsZXMpLiBJZiB5b3UgaGF2ZSB0aGF0LCB5b3UgbmVlZCB0byB1c2UgYSByZWZlcmVuY2UgcGFyc2VyIGFuZCBtZXJnZSBpdCBpbnRvIG9uZSBpbmxpbmUtcmVmZXJlbmNlZCBmaWxlIGJlZm9yZSB1c2luZyB0eXBlY29udi4KCgojIyMgT3BlbiBBUEkKCkNvbnZlcnRpbmcgdG8gb3IgZnJvbSBPcGVuIEFQSSBjYW4gYmUgZG9uZSB3aXRoIGJvdGggSlNPTiBhbmQgWUFNTC4gVGhlIGRlZmF1bHQgaXMgSlNPTi4KCldoZW4gcmVhZGluZywgaWYgdGhlIGZpbGVuYW1lIGVuZHMgd2l0aCBgLnltbGAgb3IgYC55YW1sYCwgdHlwZWNvbnYgd2lsbCBpbnRlcnByZXQgdGhlIGlucHV0IGFzIFlBTUwuCgpXcml0aW5nIGhvd2V2ZXIsIGlzIGRlY2lkZWQgaW4gdGhlIHdyaXRlciBmYWN0b3J5IGFuZCBwcm92aWRlZCB0byBgZ2V0T3BlbkFwaVdyaXRlcmAuCgpgYGB0cwppbXBvcnQgeyBnZXRPcGVuQXBpUmVhZGVyLCBnZXRPcGVuQXBpV3JpdGVyIH0gZnJvbSAndHlwZWNvbnYnCgpjb25zdCByZWFkZXIgPSBnZXRPcGVuQXBpUmVhZGVyKCApOwpjb25zdCB3cml0ZXIgPSBnZXRPcGVuQXBpV3JpdGVyKCB7CiAgZm9ybWF0OiAneWFtbCcsCiAgdGl0bGU6ICdNeSBBUEknLAogIHZlcnNpb246ICd2MScsCiAgc2NoZW1hVmVyc2lvbjogJzMuMC4wJywKfSApOwpgYGAKClRoZSBvcHRpb25zIHRvIGBnZXRPcGVuQXBpV3JpdGVyYCBpczoKCmBgYHRzCmludGVyZmFjZSB7CiAgZm9ybWF0Pzogc3RyaW5nOwogIHRpdGxlOiBzdHJpbmc7CiAgdmVyc2lvbjogc3RyaW5nOwogIHNjaGVtYVZlcnNpb24/OiBzdHJpbmc7Cn0KYGBgCgoKIyMjIFR5cGVTY3JpcHQKClR5cGVTY3JpcHQgY29udmVyc2lvbiBpcyBkb25lIHVzaW5nOgoKYGBgdHMKaW1wb3J0IHsgZ2V0VHlwZVNjcmlwdFJlYWRlciwgZ2V0VHlwZVNjcmlwdFdyaXRlciB9IGZyb20gJ3R5cGVjb252JwoKY29uc3QgcmVhZGVyID0gZ2V0VHlwZVNjcmlwdFJlYWRlciggKTsKY29uc3Qgd3JpdGVyID0gZ2V0VHlwZVNjcmlwdFdyaXRlciggKTsKYGBgCgpCb3RoIHRoZXNlIHRha2UgYW4gb3B0aW9uYWwgYXJndW1lbnQuCgpUaGUgYGdldFR5cGVTY3JpcHRSZWFkZXJgIHRha2VzIGFuIG9wdGlvbmFsCltgRnJvbVRzT3B0aW9uc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLXRzI3R5cGVzY3JpcHQtdG8tY29yZS10eXBlcykKb2JqZWN0IGZyb20gW2Bjb3JlLXR5cGVzLXRzYF1bY29yZS10eXBlcy10cy1naXRodWItdXJsXSwgYWx0aG91Z2ggYHdhcm5gIGlzbid0IG5lY2Vzc2FyeSBzaW5jZSBpdCdzIHNldCBieSB0eXBlY29udiBpbnRlcm5hbGx5LgoKVGhlIGBnZXRUeXBlU2NyaXB0V3JpdGVyYCB0YWtlcyBhbiBvcHRpb25hbApbYFRvVHNPcHRpb25zYF0oaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtdHMjY29yZS10eXBlcy10by10eXBlc2NyaXB0KQpvYmplY3QgZnJvbSBbYGNvcmUtdHlwZXMtdHNgXVtjb3JlLXR5cGVzLXRzLWdpdGh1Yi11cmxdLCBhbHRob3VnaCBgd2FybmAsIGBmaWxlbmFtZWAsIGBzb3VyY2VGaWxlbmFtZWAsIGB1c2VyUGFja2FnZWAgYW5kIGB1c2VyUGFja2FnZVVybGAgYXJlbid0IG5lY2Vzc2FyeSBzaW5jZSB0aGV5J3JlIHNldCBieSB0eXBlY29udiBpbnRlcm5hbGx5LgoKCiMjIyBHcmFwaFFMCgpHcmFwaFFMIGNvbnZlcnNpb24gaXMgZG9uZSB1c2luZzsKCmBgYHRzCmltcG9ydCB7IGdldEdyYXBoUUxSZWFkZXIsIGdldEdyYXBoUUxXcml0ZXIgfSBmcm9tICd0eXBlY29udicKCmNvbnN0IHJlYWRlciA9IGdldEdyYXBoUUxSZWFkZXIoICk7CmNvbnN0IHdyaXRlciA9IGdldEdyYXBoUUxXcml0ZXIoICk7CmBgYAoKQm90aCB0aGVzZSB0YWtlIGFuIG9wdGlvbmFsIGFyZ3VtZW50LgoKVGhlIGBnZXRHcmFwaFFMUmVhZGVyYCB0YWtlcyBhbiBvcHRpb25hbApbYEdyYXBocWxUb0NvcmVUeXBlc09wdGlvbnNgXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcy1ncmFwaHFsI2dyYXBocWwtdG8tY29yZS10eXBlcykKb2JqZWN0IGZyb20gW2Bjb3JlLXR5cGVzLWdyYXBocWxgXVtjb3JlLXR5cGVzLWdyYXBocWwtZ2l0aHViLXVybF0sIGFsdGhvdWdoIGB3YXJuYCBpc24ndCBuZWNlc3Nhcnkgc2luY2UgaXQncyBzZXQgYnkgdHlwZWNvbnYgaW50ZXJuYWxseS4KClRoZSBgZ2V0R3JhcGhRTFdyaXRlcmAgdGFrZXMgYW4gb3B0aW9uYWwKW2BDb3JlVHlwZXNUb0dyYXBocWxPcHRpb25zYF0oaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtZ3JhcGhxbCNjb3JlLXR5cGVzLXRvLWdyYXBocWwpCm9iamVjdCBmcm9tIFtgY29yZS10eXBlcy1ncmFwaHFsYF1bY29yZS10eXBlcy1ncmFwaHFsLWdpdGh1Yi11cmxdLCBhbHRob3VnaCBgd2FybmAsIGBmaWxlbmFtZWAsIGBzb3VyY2VGaWxlbmFtZWAsIGB1c2VyUGFja2FnZWAgYW5kIGB1c2VyUGFja2FnZVVybGAgYXJlbid0IG5lY2Vzc2FyeSBzaW5jZSB0aGV5J3JlIHNldCBieSB0eXBlY29udiBpbnRlcm5hbGx5LgoKCiMjIyBTdXJlVHlwZQoKU3VyZVR5cGUgY29udmVyc2lvbiBpcyBkb25lIHVzaW5nOwoKYGBgdHMKaW1wb3J0IHsgZ2V0U3VyZVR5cGVSZWFkZXIsIGdldFN1cmVUeXBlV3JpdGVyIH0gZnJvbSAndHlwZWNvbnYnCgpjb25zdCByZWFkZXIgPSBnZXRTdXJlVHlwZVJlYWRlciggKTsKY29uc3Qgd3JpdGVyID0gZ2V0U3VyZVR5cGVXcml0ZXIoICk7CmBgYAoKQm90aCB0aGVzZSB0YWtlIGFuIG9wdGlvbmFsIGFyZ3VtZW50IGZyb20gdGhlIFtgY29yZS10eXBlcy1zdXJldHlwZWBdW2NvcmUtdHlwZXMtc3VyZXR5cGUtZ2l0aHViLXVybF0gcGFja2FnZS4KClRoZSBgZ2V0U3VyZVR5cGVSZWFkZXJgIHRha2VzIGFuIG9wdGlvbmFsCltgU3VyZXR5cGVUb0pzb25TY2hlbWFPcHRpb25zYF0oaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtc3VyZXR5cGUjc3VyZXR5cGUtdG8tY29yZS10eXBlcykuCgpUaGUgYGdldFN1cmVUeXBlV3JpdGVyYCB0YWtlcyBhbiBvcHRpb25hbApbYEpzb25TY2hlbWFUb1N1cmV0eXBlT3B0aW9uc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLXN1cmV0eXBlI2NvcmUtdHlwZXMtdG8tc3VyZXR5cGUpLgoKCltucG0taW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3R5cGVjb252LnN2ZwpbbnBtLXVybF06IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvdHlwZWNvbnYKW2Rvd25sb2Fkcy1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL3R5cGVjb252LnN2ZwpbYnVpbGQtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9hY3Rpb25zL3dvcmtmbG93L3N0YXR1cy9ncmFudGlsYS90eXBlY29udi9tYXN0ZXIueW1sP2JyYW5jaD1tYXN0ZXIKW2J1aWxkLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS90eXBlY29udi9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBTWFzdGVyCltjb3ZlcmFnZS1pbWFnZV06IGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9ncmFudGlsYS90eXBlY29udi9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcgpbY292ZXJhZ2UtdXJsXTogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2dyYW50aWxhL3R5cGVjb252P2JyYW5jaD1tYXN0ZXIKW25vZGUtdmVyc2lvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbm9kZS92L3R5cGVjb252Cltub2RlLXVybF06IGh0dHBzOi8vbm9kZWpzLm9yZy9lbi8KCltjb3JlLXR5cGVzLW5wbS11cmxdOiBodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2NvcmUtdHlwZXMKW2NvcmUtdHlwZXMtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzCltjb3JlLXR5cGVzLWpzb24tc2NoZW1hLW5wbS11cmxdOiBodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2NvcmUtdHlwZXMtanNvbi1zY2hlbWEKW2NvcmUtdHlwZXMtanNvbi1zY2hlbWEtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLWpzb24tc2NoZW1hCltjb3JlLXR5cGVzLXRzLW5wbS11cmxdOiBodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2NvcmUtdHlwZXMtdHMKW2NvcmUtdHlwZXMtdHMtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLXRzCltjb3JlLXR5cGVzLWdyYXBocWwtbnBtLXVybF06IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvY29yZS10eXBlcy1ncmFwaHFsCltjb3JlLXR5cGVzLWdyYXBocWwtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLWdyYXBocWwKW2NvcmUtdHlwZXMtc3VyZXR5cGUtbnBtLXVybF06IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvY29yZS10eXBlcy1zdXJldHlwZQpbY29yZS10eXBlcy1zdXJldHlwZS1naXRodWItdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtc3VyZXR5cGUKW3N1cmV0eXBlLWdpdGh1Yi11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvc3VyZXR5cGUK readmeEtag: '"b7043a416d92ebe262c0d06cc82bc8aae498de44"' readmeLastModified: Sun, 04 Jun 2023 08:11:37 GMT repositoryId: 293245471 description: Convert between JSON Schema, TypeScript, GraphQL, Open API and SureType created: '2020-09-06T09:40:04Z' updated: '2024-09-03T18:13:47Z' language: TypeScript archived: false stars: 415 watchers: 3 forks: 9 owner: grantila logo: https://avatars.githubusercontent.com/u/5362579?v=4 license: MIT repoEtag: '"3ac514b3f680615be11bdf940fb4f1f3a52c0e8bd7991849cc5d879632b2c649"' repoLastModified: Tue, 03 Sep 2024 18:13:47 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/traefik/traefik-hub-helm-chart v3: true id: a37e8ac9d7a778549392a1f379fc7529 repositoryMetadata: base64Readme: >- PGEgbmFtZT0icmVhZG1lLXRvcCI+PC9hPgoKPiBTaW5jZSB0aGUgZW5kIG9mIE1heSAyMDI0LCBUcmFlZmlrIEh1YiBhbmQgVHJhZWZpayBQcm94eSBoYXZlIGJlZW4gdXNpbmcgdGhlIHNhbWUgW1RyYWVmaWsgSGVsbSBDaGFydF0oaHR0cHM6Ly9naXRodWIuY29tL3RyYWVmaWsvdHJhZWZpay1oZWxtLWNoYXJ0KSBmb3IgaW5zdGFsbGF0aW9uLgoKPGJyLz4KCjxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbjogMzBweDsiPgo8YSBocmVmPSJodHRwczovL2h1Yi50cmFlZmlrLmlvLyI+CiAgPGltZyBzcmM9Imh0dHBzOi8vZG9jLnRyYWVmaWsuaW8vdHJhZWZpay1odWIvaW1nL2h1Yi1sb2dvLWxpZ2h0LnN2ZyIgc3R5bGU9IndpZHRoOjI1MHB4OyIgYWxpZ249ImNlbnRlciIgLz4KPC9hPgo8YnIgLz4KPGJyIC8+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogICAgPGEgaHJlZj0iaHR0cHM6Ly90cmFlZmlrLmlvL3RyYWVmaWstaHViLyI+IFdlYnNpdGU8L2E+IHwKICAgIDxhIGhyZWY9Imh0dHBzOi8vaHViLnRyYWVmaWsuaW8iPkxvZyBJbjwvYT4gfAogICAgPGEgaHJlZj0iaHR0cHM6Ly9kb2MudHJhZWZpay5pby90cmFlZmlrLWh1Yi8iPkRvY3VtZW50YXRpb248L2E+CjwvZGl2Pgo8L2Rpdj4KCjxiciAvPgoKPGRpdiBhbGlnbj0iY2VudGVyIj48c3Ryb25nPlRyYWVmaWsgSHViIEhlbG0gQ2hhcnQ8L3N0cm9uZz4KCjxiciAvPgo8YnIgLz4KPC9kaXY+CgojIyBJbnRyb2R1Y3Rpb24KClRoaXMgY2hhcnQgaW5zdGFsbHMgdGhlIFRyYWVmaWsgSHViIGFnZW50IGluICpJbmdyZXNzIENvbnRyb2xsZXIqIG1vZGUgb24gYSBLdWJlcm5ldGVzIGNsdXN0ZXIuCgojIyBJbnN0YWxsYXRpb24KCiMjIyBQcmVyZXF1aXNpdGVzCgoxLiBbeF0gSGVsbSAqKnYzKiogW2luc3RhbGxlZF0oaHR0cHM6Ly9oZWxtLnNoL2RvY3MvdXNpbmdfaGVsbS8jaW5zdGFsbGluZy1oZWxtKTogYGhlbG0gdmVyc2lvbmAKMi4gW3hdIFRyYWVmaWsgTGFicyBjaGFydCByZXBvc2l0b3J5OiBgaGVsbSByZXBvIGFkZCB0cmFlZmlrIGh0dHBzOi8vdHJhZWZpay5naXRodWIuaW8vY2hhcnRzYAoKIyMjIERlcGxveWluZyBIdWIgSW5ncmVzIENvbnRyb2xsZXIgZm9yIEt1YmVybmV0ZXMKCmBgYHNoZWxsCmt1YmVjdGwgY3JlYXRlIHNlY3JldCBnZW5lcmljIGh1Yi1hZ2VudC10b2tlbiAtLWZyb20tbGl0ZXJhbD10b2tlbj1YWFhYCgpoZWxtIHVwZ3JhZGUgLS1pbnN0YWxsIHRyYWVmaWstaHViIHRyYWVmaWsvdHJhZWZpay1odWIKYGBgCgpZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgaW5zdGFsbGF0aW9uIHdpdGggYSBgdmFsdWVzYCBmaWxlLgpGaW5kIHRoZSBjb21wbGV0ZSBkb2N1bWVudGF0aW9uIG9uIGFsbCBwYXJhbWV0ZXJzIGluIHRoZSBbZGVmYXVsdCB2YWx1ZSBmaWxlXSguL3RyYWVmaWstaHViL3ZhbHVlcy55YW1sKS4KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiNyZWFkbWUtdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKIyMgVXBncmFkaW5nIEh1YiBBZ2VudCBmb3IgS3ViZXJuZXRlcwoKT25lIGNhbiBjaGVjayB3aGF0IGhhcyBjaGFuZ2VkIGluIHRoZSBbcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL3RyYWVmaWsvdHJhZWZpay1odWItaGVsbS1jaGFydC9yZWxlYXNlcykgb3ZlcnZpZXcgcGFnZS4KClVwZGF0ZSB0aGUgcmVwb3NpdG9yeToKCmBgYHNoZWxsCmhlbG0gcmVwbyB1cGRhdGUKYGBgCgpDaGVjayB0aGUgY3VycmVudCBDaGFydCAmIFRyYWVmaWsgSHViIHZlcnNpb246CgpgYGBzaGVsbApoZWxtIHNlYXJjaCByZXBvIHRyYWVmaWsvdHJhZWZpay1odWIKYGBgCgpVcGdyYWRlIFRyYWVmaWsgSHViOgoKYGBgc2hlbGwKaGVsbSB1cGdyYWRlIHRyYWVmaWstaHViIHRyYWVmaWsvdHJhZWZpay1odWIKYGBgCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIFVwZ3JhZGluZyBDUkRzCgpXaXRoIEhlbG0gdjMsIENSRHMgY3JlYXRlZCBieSB0aGlzIGNoYXJ0IGNhbiBub3QgYmUgdXBkYXRlZCwgY29uc3VsdCB0aGUgW0hlbG0gRG9jdW1lbnRhdGlvbiBvbiBDUkRzXShodHRwczovL2hlbG0uc2gvZG9jcy9jaGFydF9iZXN0X3ByYWN0aWNlcy9jdXN0b21fcmVzb3VyY2VfZGVmaW5pdGlvbnMpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKPiBQbGVhc2UgcmVhZCBjYXJlZnVsbHkgdGhlIFtyZWxlYXNlIG5vdGVzXShodHRwczovL2dpdGh1Yi5jb20vdHJhZWZpay90cmFlZmlrLWh1Yi1oZWxtLWNoYXJ0L3JlbGVhc2VzKSBvZiB0aGlzIGNoYXJ0IGJlZm9yZSB1cGdyYWRpbmcgQ1JEcyEKCmBgYHNoZWxsCmt1YmVjdGwgYXBwbHkgLS1zZXJ2ZXItc2lkZSAtLWZvcmNlLWNvbmZsaWN0cyAtayBodHRwczovL2dpdGh1Yi5jb20vdHJhZWZpay90cmFlZmlrLWh1Yi1oZWxtLWNoYXJ0L3RyYWVmaWstaHViL2NyZHMvCmBgYAoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3JlYWRtZS10b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+CgojIyBVcGdyYWRpbmcgZnJvbSB2MS54LngKClRvIHVwZ3JhZGUgZnJvbSB2MS54LngsIGEgc2VjcmV0IG5lZWRzIHRvIGJlIG1hbnVhbGx5IHJlbW92ZWQgZmlyc3Q6CgpgYGBzaGVsbAprdWJlY3RsIGRlbGV0ZSBzZWNyZXQgaHViLWFnZW50LWNlcnQgLW4gdHJhZWZpay1odWIKYGBgCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIFVuaW5zdGFsbAoKYGBgc2hlbGwKaGVsbSB1bmluc3RhbGwgdHJhZWZpay1odWIKYGBgCgpJZiBUcmFlZmlrIEh1YiB3YXMgaW5zdGFsbGVkIGluIGEgc3BlY2lmaWMgbmFtZXNwYWNlOgoKYGBgc2hlbGwKaGVsbSB1bmluc3RhbGwgdHJhZWZpay1odWIgLS1uYW1lc3BhY2UgbXktbmFtZXNwYWNlCmBgYAoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3JlYWRtZS10b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+CgojIyBDb250cmlidXRpbmcKCiMjIyBWZXJzaW9uaW5nCgpXZSB1c2UgW1NlbWFudGljIFZlcnNpb25pbmddKGh0dHBzOi8vc2VtdmVyLm9yZy8pLgoKUHVsbCByZXF1ZXN0cyBtdXN0IGJ1bXAgdGhlIGB2ZXJzaW9uYCBvZiB0aGUgY2hhcnQgc3BlY2lmaWVkIGluIHRoZSBbQ2hhcnQueWFtbF0oLi90cmFlZmlrLWh1Yi9DaGFydC55YW1sKSBmaWxlOgoKLSBUaGUgbmV3IHZlcnNpb24gbXVzdCBiZSBhbiBhbHBoYSBwcmUtcmVsZWFzZSAoZS5nLiAxLjYuMC1hbHBoYS4xKQotIFRoZSBuZXcgdmVyc2lvbiBtdXN0IHJlZmxlY3QgdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlLCBhY2NvcmRpbmcgdG8gdGhlIFNlbVZlciBzcGVjaWZpY2F0aW9uCgpBIGNoYXJ0IGNhbiBiZSBtYWRlIGF2YWlsYWJsZSBwdWJsaWNseSBieSByZW1vdmluZyB0aGUgcHJlLXJlbGVhc2Ugc3VmZml4LCB0aGlzIG11c3QgYmUgZG9uZSBvbiBhIHNlcGFyYXRlIFBSIGJ5IGEgbWFpbnRhaW5lci4KCkV2ZXJ5IHZlcnNpb24gYnVtcCBpcyBwdWJsaXNoZWQgb24gdGhlIEhlbG0gQ2hhcnQgUmVnaXN0cnkuCgpUaGUgbGF0ZXN0IHByZS1yZWxlYXNlIHZlcnNpb24gb2YgdGhlIENoYXJ0IGNhbiBiZSB1c2VkIGJ5IHNwZWNpZnlpbmcgYC0tZGV2ZWxgIG9uIHRoZSBgaW5zdGFsbGAgYW5kIGB1cGdyYWRlYCBjb21tYW5kcy4KCiMjIyBMYXVuY2ggdW5pdCB0ZXN0cwoKYGBgc2hlbGwKbWFrZSB0ZXN0CmBgYAoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3JlYWRtZS10b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+CgojIyBMaWNlbnNlCgpEaXN0cmlidXRlZCB1bmRlciB0aGUgQXBhY2hlIHYyIExpY2Vuc2UuClNlZSBbTElDRU5TRV0oLi9MSUNFTlNFKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiNyZWFkbWUtdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgo= readmeEtag: '"d1162fe3e633bee28072ea733ca6e3a8da73eb55"' readmeLastModified: Tue, 28 May 2024 13:30:11 GMT repositoryId: 662208402 description: >- Traefik Hub is a Kubernetes-native API Management solution for publishing, securing, and managing APIs. Configuration is driven by Kubernetes CRDs, labels, and selectors for effective GitOps. created: '2023-07-04T15:34:00Z' updated: '2024-06-07T13:52:46Z' language: Makefile archived: true stars: 3 watchers: 10 forks: 9 owner: traefik logo: https://avatars.githubusercontent.com/u/14280338?v=4 license: Apache-2.0 repoEtag: '"cd249b11a029911b7ae3881b424751bdd2e0fd9ccd24b0c20023972fd91ade31"' repoLastModified: Fri, 07 Jun 2024 13:52:46 GMT category: - Documentation - Gateway foundInMaster: true name: Traefik Hub link: https://doc.traefik.io/traefik-hub language: Go source_description: >- Traefik Hub is a Kubernetes-native API Management solution for publishing, securing, and managing APIs. Configuration is driven by Kubernetes CRDs, labels, and selectors for effective GitOps. v2: true - source: https://openapi.tools/ name: HopFront category: - Documentation link: https://github.com/hopfront/hopfront repository: https://github.com/hopfront/hopfront language: TypeScript source_description: >- HopFront automatically builds an user friendly UI from a collection of OpenAPI specifications. You can setup custom dashboard tailored to the way your interact with your APIs. v3: true id: 3b8ac40bdadbc38647a04c95f45fb3bf repositoryMetadata: base64Readme: >- PGJyLz4gIAo8cGljdHVyZT4KICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vZ2l0aHViLmNvbS9ob3Bmcm9udC9ob3Bmcm9udC9hc3NldHMvMjc0MzU0MS9mNmY0MjU3My1kNDZjLTRkY2MtYjIzZS0zOTMzYTIwN2JmNzIiPgogIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vaG9wZnJvbnQvaG9wZnJvbnQvYXNzZXRzLzI3NDM1NDEvODFiNzljZTctNzE0OC00N2JjLWFiZDctZDRjYTMwZWYyMGQyIiBoZWlnaHQ9IjYwIj4KPC9waWN0dXJlPgoKLS0tCgpbSG9wRnJvbnRdKGh0dHBzOi8vaG9wZnJvbnQuY29tLykgaXMgdGhlIGJlc3Qgd2F5IHRvIGludGVyYWN0IHdpdGggQVBJcy4KCiFbSG9wRnJvbnQgU2NyZWVuc2hvdF0oaHR0cHM6Ly9hc3NldHMtZ2xvYmFsLndlYnNpdGUtZmlsZXMuY29tLzY1MDljYTExZTNiNmRhNTNiZjRmYzVmMy82NTU3NTliY2E4NzBhNTg4MjM3ZGQyNDhfR3JvdXAlMjAzMC1wLTEwODAucG5nKQoKIyMgRmVhdHVyZXMKLSBTZXQgdXAgaW4gX2xpdGVyYWxseV8gMiBtaW51dGVzLgogIC0geW91IGp1c3QgbmVlZCBhbiBbT3BlbkFQSSBzcGVjXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy9sYXRlc3QuaHRtbCkgKHdoaWNoIGNhbiBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZiB5b3UgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSkuCi0gQnJvd3NlICYgcXVlcnkgeW91ciBBUEkgaW4gYSBIdW1hbi1mcmllbmRseSB3YXkuCiAgLSBIb3BGcm9udCB1bmRlcnN0YW5kcyByZWxhdGlvbnNoaXBzIGJldHdlZW4geW91ciBlbmRwb2ludHMsIG5vIG1vcmUgY29weS9wYXN0aW5nIHlvdXIgaWRzIGV2ZXJ5d2hlcmUhCi0gQnVpbGQgY3VzdG9tIGFuZCBkeW5hbWljIGRhc2hib2FyZHMuCiAgLSBVc2VmdWwgZm9yIHJhcGlkbHkgYnVpbGRpbmcgaW50ZXJuYWwgdG9vbHMgb3IgcGVyc29uYWxpemVkIFVJcyBiYXNlZCBvbiB5b3VyIGRhaWx5IEFQSSBpbnRlcmFjdGlvbnMuCgojIyBJbnN0YWxsYXRpb24KVEw7RFI6IGBkb2NrZXIgcnVuIC1wIDMwMDA6MzAwMCAtdiBob3Bmcm9udDovZXRjL2hvcGZyb250IGhvcGZyb250L2hvcGZyb250OmxhdGVzdGAKCkhvcEZyb250IGlzIGN1cnJlbnRseSBhdmFpbGFibGUgYXMgYSBEb2NrZXIgaW1hZ2UsIGZvbGxvdyB0aGUgaW5zdGFsbGF0aW9uIGd1aWRlIFtoZXJlXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvaG9wZnJvbnQvaG9wZnJvbnQpLgoK readmeEtag: '"888912d465217f6cbd07184684969595dc8f39f9"' readmeLastModified: Thu, 14 Mar 2024 08:26:16 GMT repositoryId: 703097382 description: Turn any API into a workable app in 2 minutes created: '2023-10-10T15:33:01Z' updated: '2024-09-04T01:29:41Z' language: TypeScript archived: false stars: 64 watchers: 2 forks: 6 owner: hopfront logo: https://avatars.githubusercontent.com/u/147492760?v=4 license: NOASSERTION repoEtag: '"c74983c6f4d47e66d7110fd0730f049bb7b8e21e31a73ce104376414d0fed63a"' repoLastModified: Wed, 04 Sep 2024 01:29:41 GMT foundInMaster: true - source: https://openapi.tools/ name: Xapi Platform category: - GUI Editors - Text Editors - Testing language: Saas link: https://xapihub.io/ source_description: >- Xapi is an integrated platform that enables you to implement a streamlined API-first design strategy with standardized API artifacts and collaborative teams. v2: false v3: false v3_1: true id: a899f827ee5c657acd105a5110757e0a foundInMaster: true - source: https://openapi.tools/ name: Fuego category: - Auto Generators - Data Validators - Server language: Go link: https://go-fuego.github.io/fuego/ repository: https://github.com/go-fuego/fuego source_description: >- Golang Fuego - web & API framework generating OpenAPI 3 spec from source code v3: true id: 4be418d9c134b194919087fc1e16a8cf repositoryMetadata: base64Readme: >- PCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSBNRDA0MSAtLT4KPHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9Ii4vc3RhdGljL2Z1ZWdvLnN2ZyIgaGVpZ2h0PSIyMDAiIGFsdD0iRnVlZ28gTG9nbyIgLz4KPC9wPgoKIyBGdWVnbyDwn5SlCgpbIVtHbyBSZWZlcmVuY2VdKGh0dHBzOi8vcGtnLmdvLmRldi9iYWRnZS9naXRodWIuY29tL2dvLWZ1ZWdvL2Z1ZWdvLnN2ZyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2dvLWZ1ZWdvL2Z1ZWdvKQpbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZ28tZnVlZ28vZnVlZ28pXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZ28tZnVlZ28vZnVlZ28pClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL2dvLWZ1ZWdvL2Z1ZWdvL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9nby1mdWVnby9mdWVnbz9icmFuY2g9bWFpbikKWyFbRGlzY29yZCBHb3BoZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQlMjBHb3BoZXJzLSUyM2Z1ZWdvLSUyMzcyODlkYT8pXShodHRwczovL2Rpc2NvcmQuY29tL2ludml0ZS9zMjMzR2NacUZUKQoKPiBUaGUgZnJhbWV3b3JrIGZvciBidXN5IEdvIGRldmVsb3BlcnMKCioqQnVpbGQgeW91ciBBUEkgb3Igd2ViIGFwcGxpY2F0aW9uIGluIG1pbnV0ZXMhKioKCkdvIGZyYW1ld29yayBnZW5lcmF0aW5nIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBmcm9tIGNvZGUuCkluc3BpcmVkIGJ5IE5lc3QsIGJ1aWx0IGZvciBHbyBkZXZlbG9wZXJzLgoKQWxzbyBlbXBvd2VycyBgaHRtbC90ZW1wbGF0ZWAsIGBhLWgvdGVtcGxgIGFuZCBgbWFyYWd1ZGsvZ29tcG9uZW50c2A6CnNlZSBbdGhlIGV4YW1wbGVdKC4vZXhhbXBsZXMvZnVsbC1hcHAtZ291cm1ldCkgLSBhY3R1YWxseSBydW5uaW5nIFtpbiBwcm9kXShodHRwczovL2dvdXJtZXQucXVpbWVyY2guY29tKSEKCiMjIFNwb25zb3JzCgpGdWVnbyBpcyBwcm91ZGx5IHNwb25zb3JlZCBieSBbWnVwbG9dKGh0dHBzOi8venVwbG8ubGluay9mdWVnby1naCksCnRoYXQgcHJvdmlkZXMgW2EgRnVlZ28gaW50ZWdyYXRpb25dKGh0dHBzOi8venVwbG8ubGluay9mdWVnby1naCkhCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoJPGltZyBzcmM9Ii4vYXNzZXRzL1p1cGxvLnBuZyIgc3R5bGU9ImJvcmRlci1yYWRpdXM6MTBweCIgaGVpZ2h0PSIxMDAiCglhbHQ9IkZ1ZWdvIExvZ28iIC8+CjwvZGl2PgoKPiBadXBsbyBhbGxvd3MgeW91IHRvIHNlY3VyZSB5b3VyIEZ1ZWdvIEFQSSwgc2NhbGUgaXQgZ2xvYmFsbHksCmdlbmVyYXRlIGRvY3VtZW50YXRpb24gZnJvbSB5b3VyIE9wZW5BUEksIGFuZCBtb25ldGl6ZSB5b3VyIHVzZXJzLgoKIyMgV2h5IEZ1ZWdvPwoKQ2hpLCBHaW4sIEZpYmVyIGFuZCBFY2hvIGFyZSBncmVhdCBmcmFtZXdvcmtzLgpCdXQgc2luY2UgdGhleSB3ZXJlIGRlc2lnbmVkIGEgbG9uZyB0aW1lIGFnbywKW3RoZWlyIGN1cnJlbnQgQVBJIGRvZXMgbm90IGFsbG93IHRoZW1dW2dpbi1nb25pYy1pc3N1ZV0gdG8gZGVkdWNlCk9wZW5BUEkgdHlwZXMgZnJvbSBzaWduYXR1cmVzLCB0aGluZ3MgdGhhdCBhcmUgbm93IHBvc3NpYmxlIHdpdGggZ2VuZXJpY3MuCkZ1ZWdvIG9mZmVycyBhIGxvdCBvZiAibW9kZXJuIEdvIGJhc2VkIiBmZWF0dXJlcyB0aGF0IG1ha2UgaXQgZWFzeQp0byBkZXZlbG9wIEFQSXMgYW5kIHdlYiBhcHBsaWNhdGlvbnMuCgojIyBGZWF0dXJlcwoKLSAqKk9wZW5BUEkqKjogRnVlZ28gYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgT3BlbkFQSSBkb2N1bWVudGF0aW9uCiAgZnJvbSAqKmNvZGUqKiAtIF9ub3QgZnJvbSBjb21tZW50cyBub3IgWUFNTCBmaWxlcyFfCi0gKioxMDAlIGBuZXQvaHR0cGAgY29tcGF0aWJsZSoqIChubyBsb2NrLWluKTogRnVlZ28gaXMgYnVpbHQgb24gdG9wIG9mIGBuZXQvaHR0cGAsCiAgc28geW91IGNhbiB1c2UgYW55IGBodHRwLkhhbmRsZXJgIG1pZGRsZXdhcmUgb3IgaGFuZGxlciEgRnVlZ28gYWxzbyBzdXBwb3J0cwogIGBsb2cvc2xvZ2AsIGBjb250ZXh0YCBhbmQgYGh0bWwvdGVtcGxhdGVgLgotICoqUm91dGluZyoqOiBGdWVnbyByb3V0ZXIgaXMgYmFzZWQgb24gR28gMS4yMiBgbmV0L2h0dHBgLCB3aXRoIGdyb3VwaW5nIGFuZAogIG1pZGRsZXdhcmUgc3VwcG9ydAotICoqU2VyaWFsaXphdGlvbi9EZXNlcmlhbGl6YXRpb24qKjogRnVlZ28gYXV0b21hdGljYWxseSBzZXJpYWxpemVzIGFuZAogIGRlc2VyaWFsaXplcyBKU09OLCBYTUwgYW5kIEhUTUwgRm9ybXMgYmFzZWQgb24gdXNlci1wcm92aWRlZCBzdHJ1Y3RzCiAgKG9yIG5vdCwgaWYgeW91IHdhbnQgdG8gZG8gaXQgeW91cnNlbGYpCi0gKipWYWxpZGF0aW9uKio6IEZ1ZWdvIHByb3ZpZGVzIGEgc2ltcGxlIGFuZCBmYXN0IHZhbGlkYXRvciBiYXNlZCBvbiBgZ28tcGxheWdyb3VuZC92YWxpZGF0b3JgCi0gKipUcmFuc2Zvcm1hdGlvbioqOiBlYXNpbHkgdHJhbnNmb3JtIHlvdXIgZGF0YSBieSBpbXBsZW1lbnRpbmcgdGhlCiAgYGZ1ZWdvLkluVHJhbnNmb3JtYCBhbmQgYGZ1ZWdvLk91dFRyYW5zZm9ybWAgaW50ZXJmYWNlcyAtIGFsc28gdXNlZnVsIGZvcgogIGN1c3RvbSAqKnZhbGlkYXRpb24qKgotICoqTWlkZGxld2FyZXMqKjogZWFzaWx5IGFkZCBhIGN1c3RvbSBgbmV0L2h0dHBgIG1pZGRsZXdhcmUKICBvciB1c2UgdGhlIHByb3ZpZGVkIG1pZGRsZXdhcmVzLgotICoqRXJyb3IgaGFuZGxpbmcqKjogRnVlZ28gcHJvdmlkZXMgY2VudHJhbGl6ZWQgZXJyb3IgaGFuZGxpbmcgd2l0aAogIHRoZSBzdGFuZGFyZCBbUkZDIDk0NTddKGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM5NDU3KS4KLSAqKlJlbmRlcmluZyoqOiBGdWVnbyBwcm92aWRlcyBhIHNpbXBsZSBhbmQgZmFzdCByZW5kZXJpbmcgc3lzdGVtIGJhc2VkIG9uCiAgYGh0bWwvdGVtcGxhdGVgIC0geW91IGNhbiBzdGlsbCBhbHNvIHVzZSB5b3VyIG93biB0ZW1wbGF0ZSBzeXN0ZW0gbGlrZQogIGB0ZW1wbGAgb3IgYGdvbXBvbmVudHNgCgojIyBFeGFtcGxlcwoKIyMjIEhlbGxvIFdvcmxkCgpgYGBnbwpwYWNrYWdlIG1haW4KCmltcG9ydCAiZ2l0aHViLmNvbS9nby1mdWVnby9mdWVnbyIKCmZ1bmMgbWFpbigpIHsKCXMgOj0gZnVlZ28uTmV3U2VydmVyKCkKCglmdWVnby5HZXQocywgIi8iLCBmdW5jKGMgZnVlZ28uQ29udGV4dE5vQm9keSkgKHN0cmluZywgZXJyb3IpIHsKCQlyZXR1cm4gIkhlbGxvLCBXb3JsZCEiLCBuaWwKCX0pCgoJcy5SdW4oKQp9CmBgYAoKIyMjIFNpbXBsZSBQT1NUCgpgYGBnbwpwYWNrYWdlIG1haW4KCmltcG9ydCAiZ2l0aHViLmNvbS9nby1mdWVnby9mdWVnbyIKCnR5cGUgTXlJbnB1dCBzdHJ1Y3QgewoJTmFtZSBzdHJpbmcgYGpzb246Im5hbWUiIHZhbGlkYXRlOiJyZXF1aXJlZCJgCn0KCnR5cGUgTXlPdXRwdXQgc3RydWN0IHsKCU1lc3NhZ2Ugc3RyaW5nIGBqc29uOiJtZXNzYWdlImAKfQoKZnVuYyBtYWluKCkgewoJcyA6PSBmdWVnby5OZXdTZXJ2ZXIoKQoKCS8vIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBmb3IgdGhpcyByb3V0ZQoJZnVlZ28uUG9zdChzLCAiLyIsIGZ1bmMoYyAqZnVlZ28uQ29udGV4dFdpdGhCb2R5W015SW5wdXRdKSAoTXlPdXRwdXQsIGVycm9yKSB7CgkJYm9keSwgZXJyIDo9IGMuQm9keSgpCgkJaWYgZXJyICE9IG5pbCB7CgkJCXJldHVybiBNeU91dHB1dHt9LCBlcnIKCQl9CgoJCXJldHVybiBNeU91dHB1dHsKCQkJTWVzc2FnZTogIkhlbGxvLCAiICsgYm9keS5OYW1lLAoJCX0sIG5pbAoJfSkKCglzLlJ1bigpCn0KYGBgCgojIyMgV2l0aCB0cmFuc2Zvcm1hdGlvbiAmIGN1c3RvbSB2YWxpZGF0aW9uCgpgYGBnbwp0eXBlIE15SW5wdXQgc3RydWN0IHsKCU5hbWUgc3RyaW5nIGBqc29uOiJuYW1lIiB2YWxpZGF0ZToicmVxdWlyZWQiYAp9CgovLyBXaWxsIGJlIGNhbGxlZCBqdXN0IGJlZm9yZSByZXR1cm5pbmcgYy5Cb2R5KCkKZnVuYyAociAqTXlJbnB1dCkgSW5UcmFuc2Zvcm0oY29udGV4dC5Db250ZXh0KSBlcnJvciB7CglyLk5hbWUgPSBzdHJpbmdzLlRvTG93ZXIoci5OYW1lKQoKCWlmIHIuTmFtZSA9PSAiZnVlZ28iIHsKCQlyZXR1cm4gZXJyb3JzLk5ldygiZnVlZ28gaXMgbm90IGEgdmFsaWQgbmFtZSBmb3IgdGhpcyBpbnB1dCIpCgl9CgoJcmV0dXJuIG5pbAp9CgpgYGAKCiMjIyBNb3JlIE9wZW5BUEkgZG9jdW1lbnRhdGlvbgoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgImdpdGh1Yi5jb20vZ28tZnVlZ28vZnVlZ28iCgpmdW5jIG1haW4oKSB7CglzIDo9IGZ1ZWdvLk5ld1NlcnZlcigpCgoJLy8gQ3VzdG9tIE9wZW5BUEkgb3B0aW9ucyB0aGF0IGNhbm5vdCBiZSBkZWR1Y2VkIGJ5IHRoZSBjb250cm9sbGVyIHNpZ25hdHVyZQoJZnVlZ28uUG9zdChzLCAiLyIsIG15Q29udHJvbGxlcikuCgkJRGVzY3JpcHRpb24oIlRoaXMgcm91dGUgZG9lcyBzb21ldGhpbmciKS4KCQlTdW1tYXJ5KCJUaGlzIGlzIG15IHN1bW1hcnkiKS4KCQlUYWdzKCJNeVRhZyIpLiAvLyBBIHRhZyBpcyBzZXQgYnkgZGVmYXVsdCBhY2NvcmRpbmcgdG8gdGhlIHJldHVybiB0eXBlIChjYW4gYmUgZGVhY3RpdmF0ZWQpCgkJRGVwcmVjYXRlZCgpCgoJcy5SdW4oKQp9CmBgYAoKIyMjIFN0ZCBsaWIgY29tcGF0aWJpbGl0eQoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJIm5ldC9odHRwIgoKCSJnaXRodWIuY29tL2dvLWZ1ZWdvL2Z1ZWdvIgopCgpmdW5jIG1haW4oKSB7CglzIDo9IGZ1ZWdvLk5ld1NlcnZlcigpCgoJLy8gU3RhbmRhcmQgbmV0L2h0dHAgbWlkZGxld2FyZQoJZnVlZ28uVXNlKHMsIGZ1bmMobmV4dCBodHRwLkhhbmRsZXIpIGh0dHAuSGFuZGxlciB7CgkJcmV0dXJuIGh0dHAuSGFuZGxlckZ1bmMoZnVuYyh3IGh0dHAuUmVzcG9uc2VXcml0ZXIsIHIgKmh0dHAuUmVxdWVzdCkgewoJCQl3LkhlYWRlcigpLlNldCgiWC1IZWxsbyIsICJXb3JsZCIpCgkJCW5leHQuU2VydmVIVFRQKHcsIHIpCgkJfSkKCX0pCgoJLy8gU3RhbmRhcmQgbmV0L2h0dHAgaGFuZGxlciB3aXRoIGF1dG9tYXRpYyBPcGVuQVBJIHJvdXRlIGRlY2xhcmF0aW9uCglmdWVnby5HZXRTdGQocywgIi9zdGQiLCBmdW5jKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7CgkJdy5Xcml0ZShbXWJ5dGUoIkhlbGxvLCBXb3JsZCEiKSkKCX0pCgoJcy5SdW4oKQp9CmBgYAoKIyMjIFJlYWwtd29ybGQgZXhhbXBsZXMKClBsZWFzZSBzZWUgdGhlIFtgL2V4YW1wbGVzYCBmb2xkZXJdKC4vZXhhbXBsZXMvKSBmb3IgbW9yZSBleGFtcGxlcy4KCi0gW1NpbXBsZSBDUlVEIHdpdGggT3BlbkFQSV0oLi9leGFtcGxlcy9wZXRzdG9yZSkKLSBbRnVsbCBhcHAgd2l0aCBIVE1MIHJlbmRlcmluZ10oLi9leGFtcGxlcy9mdWxsLWFwcC1nb3VybWV0KQoKPGRldGFpbHM+CjxzdW1tYXJ5PkFsbCBmZWF0dXJlczwvc3VtbWFyeT4KCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJjb250ZXh0IgoJImVycm9ycyIKCSJuZXQvaHR0cCIKCSJzdHJpbmdzIgoKCWNoaU1pZGRsZXdhcmUgImdpdGh1Yi5jb20vZ28tY2hpL2NoaS92NS9taWRkbGV3YXJlIgoJImdpdGh1Yi5jb20vcnMvY29ycyIKCgkiZ2l0aHViLmNvbS9nby1mdWVnby9mdWVnbyIKKQoKdHlwZSBSZWNlaXZlZCBzdHJ1Y3QgewoJTmFtZSBzdHJpbmcgYGpzb246Im5hbWUiIHZhbGlkYXRlOiJyZXF1aXJlZCJgCn0KCnR5cGUgTXlSZXNwb25zZSBzdHJ1Y3QgewoJTWVzc2FnZSAgICAgICBzdHJpbmcgYGpzb246Im1lc3NhZ2UiYAoJQmVzdEZyYW1ld29yayBzdHJpbmcgYGpzb246ImJlc3QiYAp9CgpmdW5jIG1haW4oKSB7CglzIDo9IGZ1ZWdvLk5ld1NlcnZlcigKCQlmdWVnby5XaXRoQWRkcigibG9jYWxob3N0OjgwODgiKSwKCSkKCglmdWVnby5Vc2UocywgY29ycy5EZWZhdWx0KCkuSGFuZGxlcikKCWZ1ZWdvLlVzZShzLCBjaGlNaWRkbGV3YXJlLkNvbXByZXNzKDUsICJ0ZXh0L2h0bWwiLCAidGV4dC9jc3MiKSkKCgkvLyBGdWVnbyDwn5SlIGhhbmRsZXIgd2l0aCBhdXRvbWF0aWMgT3BlbkFQSSBnZW5lcmF0aW9uLCB2YWxpZGF0aW9uLCAoZGUpc2VyaWFsaXphdGlvbiBhbmQgZXJyb3IgaGFuZGxpbmcKCWZ1ZWdvLlBvc3QocywgIi8iLCBmdW5jKGMgKmZ1ZWdvLkNvbnRleHRXaXRoQm9keVtSZWNlaXZlZF0pIChNeVJlc3BvbnNlLCBlcnJvcikgewoJCWRhdGEsIGVyciA6PSBjLkJvZHkoKQoJCWlmIGVyciAhPSBuaWwgewoJCQlyZXR1cm4gTXlSZXNwb25zZXt9LCBlcnIKCQl9CgoJCWMuUmVzcG9uc2UoKS5IZWFkZXIoKS5TZXQoIlgtSGVsbG8iLCAiV29ybGQiKQoKCQlyZXR1cm4gTXlSZXNwb25zZXsKCQkJTWVzc2FnZTogICAgICAgIkhlbGxvLCAiICsgZGF0YS5OYW1lLAoJCQlCZXN0RnJhbWV3b3JrOiAiRnVlZ28hIiwKCQl9LCBuaWwKCX0pCgoJLy8gU3RhbmRhcmQgbmV0L2h0dHAgaGFuZGxlciB3aXRoIGF1dG9tYXRpYyBPcGVuQVBJIHJvdXRlIGRlY2xhcmF0aW9uCglmdWVnby5HZXRTdGQocywgIi9zdGQiLCBmdW5jKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7CgkJdy5Xcml0ZShbXWJ5dGUoIkhlbGxvLCBXb3JsZCEiKSkKCX0pCgoJcy5SdW4oKQp9CgovLyBJblRyYW5zZm9ybSB3aWxsIGJlIGNhbGxlZCB3aGVuIHVzaW5nIGMuQm9keSgpLgovLyBJdCBjYW4gYmUgdXNlZCB0byB0cmFuc2Zvcm0gdGhlIGVudGl0eSBhbmQgcmFpc2UgY3VzdG9tIGVycm9ycwpmdW5jIChyICpSZWNlaXZlZCkgSW5UcmFuc2Zvcm0oY29udGV4dC5Db250ZXh0KSBlcnJvciB7CglyLk5hbWUgPSBzdHJpbmdzLlRvTG93ZXIoci5OYW1lKQoJaWYgci5OYW1lID09ICJmdWVnbyIgewoJCXJldHVybiBlcnJvcnMuTmV3KCJmdWVnbyBpcyBub3QgYSBuYW1lIikKCX0KCXJldHVybiBuaWwKfQoKLy8gT3V0VHJhbnNmb3JtIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSBzZW5kaW5nIGRhdGEKZnVuYyAociAqTXlSZXNwb25zZSkgT3V0VHJhbnNmb3JtKGNvbnRleHQuQ29udGV4dCkgZXJyb3IgewoJci5NZXNzYWdlID0gc3RyaW5ncy5Ub1VwcGVyKHIuTWVzc2FnZSkKCXJldHVybiBuaWwKfQpgYGAKCmBgYGJhc2gKY3VybCAgaHR0cDovL2xvY2FsaG9zdDo4MDg4L3N0ZAojIEhlbGxvLCBXb3JsZCEKY3VybCBodHRwOi8vbG9jYWxob3N0OjgwODggLVggUE9TVCAtZCAneyJuYW1lIjogIllvdXIgTmFtZSJ9JyAtSCAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJwojIHsibWVzc2FnZSI6IkhFTExPLCBZT1VSIE5BTUUiLCJiZXN0IjoiRnVlZ28hIn0KY3VybCBodHRwOi8vbG9jYWxob3N0OjgwODggLVggUE9TVCAtZCAneyJuYW1lIjogIkZ1ZWdvIn0nIC1IICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nCiMgeyJlcnJvciI6ImNhbm5vdCB0cmFuc2Zvcm0gcmVxdWVzdCBib2R5OiBjYW5ub3QgdHJhbnNmb3JtIHJlcXVlc3QgYm9keTogZnVlZ28gaXMgbm90IGEgbmFtZSJ9CmBgYAoKPC9kZXRhaWxzPgoKIyMgRnJvbSBuZXQvaHR0cCB0byBGdWVnbyBpbiAxMHMKCjxodHRwczovL2dpdGh1Yi5jb20vZ28tZnVlZ28vZnVlZ28vYXNzZXRzLzQ2OTkzOTM5Lzc0MzhhNzFjLTc1YTQtNGU4OC1hNTg0LTcxZGE2MzYyYzU3NT4KCjxkZXRhaWxzPgo8c3VtbWFyeT5WaWV3czwvc3VtbWFyeT4KCiMjIyBCZWZvcmUKCjxpbWcgd2lkdGg9Ijk0NiIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vZ28tZnVlZ28vZnVlZ28vYXNzZXRzLzQ2OTkzOTM5LzM5NGZlZDE3LWExZTItNGI2Ny04OWIyLThlNmM5ZWViNzcxYiI+CgojIyMjIEFmdGVyCgo8aW1nIHdpZHRoPSIxMDEwIiBhbHQ9ImltYWdlIiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9nby1mdWVnby9mdWVnby9hc3NldHMvNDY5OTM5MzkvMzIxMDg4ZDctYmVjNC00NmNjLWE3ZWUtOWEwZmE0NWQ3NzExIj4KCiMjIyMgRGlmZgoKPGltZyB3aWR0aD0iMTQxMyIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vZ28tZnVlZ28vZnVlZ28vYXNzZXRzLzQ2OTkzOTM5LzE4Nzk2YTU5LWIyZTQtNGUwMS04MWQxLTg4YzU4MWRlMzQ2NiI+CgojIyMjIEJlbmVmaXRzIG9mIHVzaW5nIEZ1ZWdvIHZpZXdzIChjb250cm9sbGVycyByZXR1cm5pbmcgSFRNTCkKCi0gTmV2ZXIgZm9yZ2V0IHRvIHJldHVybiBhZnRlciBhbiBlcnJvcgotIE9wZW5BUEkgc2NoZW1hIGdlbmVyYXRlZCwgbGlzdGluZyBhbGwgdGhlIHJvdXRlcwotIERlc2VyaWFsaXphdGlvbiBhbmQgdmFsaWRhdGlvbiBhcmUgZWFzaWVyCi0gVHJhbnNpdGlvbiB0byBGdWVnbyBpcyBlYXN5IGFuZCBmYXN0Cgo8L2RldGFpbHM+CgojIyBDb250cmlidXRpbmcKClNlZSB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZV0oQ09OVFJJQlVUSU5HLm1kKS4KVGhhbmtzIHRvIFtldmVyeW9uZSB3aG8gaGFzIGNvbnRyaWJ1dGVkXVtjb250cmlidXRvcnMtdXJsXSB0byB0aGlzIHByb2plY3QhIOKdpO+4jwoKIyMgUm9hZG1hcAoKU2VlIHRoZSBbYm9hcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL2dvLWZ1ZWdvL3Byb2plY3RzLzEpLgoKIyMgRGlzY2xhaW1lciBmb3IgZXhwZXJpZW5jZWQgZ29waGVycwoKSSBrbm93IHlvdSBtaWdodCBwcmVmZXIgdG8gdXNlIGBuZXQvaHR0cGAgZGlyZWN0bHksCmJ1dCBpZiBoYXZpbmcgYSBmcmFtZSBjYW4gY29udmluY2UgbXkgY29tcGFueSB0byB1c2UKR28gaW5zdGVhZCBvZiBOb2RlLCBJJ20gaGFwcHkgdG8gdXNlIGl0LgoKIyMgTGljZW5zZQoKW01JVF0oLi9MSUNFTlNFLnR4dCkKCltnaW4tZ29uaWMtaXNzdWVdOiBodHRwczovL2dpdGh1Yi5jb20vZ2luLWdvbmljL2dpbi9pc3N1ZXMvMTU1Cltjb250cmlidXRvcnMtdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL2dvLWZ1ZWdvL2Z1ZWdvL2dyYXBocy9jb250cmlidXRvcnMK readmeEtag: '"d2437d9081f5cbbc89bda00996446835c2eb180c"' readmeLastModified: Sun, 01 Sep 2024 14:34:57 GMT repositoryId: 706256859 description: Golang Fuego - web framework generating OpenAPI 3 spec from source code created: '2023-10-17T15:36:43Z' updated: '2024-09-05T17:37:34Z' language: Go archived: false stars: 789 watchers: 7 forks: 39 owner: go-fuego logo: https://avatars.githubusercontent.com/u/148255240?v=4 license: MIT repoEtag: '"09e41659131cc9ec1eaf083e8d9e432f070a4478835d3924441de4ba7e7ca746"' repoLastModified: Thu, 05 Sep 2024 17:37:34 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags - openapi31 tags repository: https://github.com/danielgtaylor/huma v3: true repositoryMetadata: base64Readme: >- PGEgaHJlZj0iIyI+Cgk8cGljdHVyZT4KCQk8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLWRhcmsucG5nIiAvPgoJCTxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLnBuZyIgLz4KCQk8aW1nIGFsdD0iSHVtYSBMb2dvIiBzcmM9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLnBuZyIgLz4KCTwvcGljdHVyZT4KPC9hPgoKWyFbSFVNQSBQb3dlcmVkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1Bvd2VyZWQlMjBCeS1IVU1BLWY0MDI3MyldKGh0dHBzOi8vaHVtYS5yb2Nrcy8pIFshW0NJXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL3dvcmtmbG93cy9DSS9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FDSSticmFuY2glM0FtYWluKyspIFshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9kYW5pZWxndGF5bG9yL2h1bWEvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbGd0YXlsb3IvaHVtYSkgWyFbRG9jc10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjI/c3RhdHVzLnN2ZyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mj90YWI9ZG9jKSBbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL3YyKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92MikKClsqKvCfjI7kuK3mlofmlofmoaMqKl0oLi9SRUFETUVfQ04ubWQpCgotIFtXaGF0IGlzIGh1bWE/XSgjaW50cm8pCi0gW0luc3RhbGxdKCNpbnN0YWxsKQotIFtFeGFtcGxlXSgjZXhhbXBsZSkKLSBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCgo8YSBuYW1lPSJpbnRybyI+PC9hPgpBIG1vZGVybiwgc2ltcGxlLCBmYXN0ICYgZmxleGlibGUgbWljcm8gZnJhbWV3b3JrIGZvciBidWlsZGluZyBIVFRQIFJFU1QvUlBDIEFQSXMgaW4gR28gYmFja2VkIGJ5IE9wZW5BUEkgMyBhbmQgSlNPTiBTY2hlbWEuIFByb25vdW5jZWQgSVBBOiBbLydoanXLkG3JkS9dKGh0dHBzOi8vZW4ud2lrdGlvbmFyeS5vcmcvd2lraS9XaWt0aW9uYXJ5OkludGVybmF0aW9uYWxfUGhvbmV0aWNfQWxwaGFiZXQpLiBUaGUgZ29hbHMgb2YgdGhpcyBwcm9qZWN0IGFyZSB0byBwcm92aWRlOgoKLSBJbmNyZW1lbnRhbCBhZG9wdGlvbiBmb3IgdGVhbXMgd2l0aCBleGlzdGluZyBzZXJ2aWNlcwogIC0gQnJpbmcgeW91ciBvd24gcm91dGVyIChpbmNsdWRpbmcgR28gMS4yMispLCBtaWRkbGV3YXJlLCBhbmQgbG9nZ2luZy9tZXRyaWNzCiAgLSBFeHRlbnNpYmxlIE9wZW5BUEkgJiBKU09OIFNjaGVtYSBsYXllciB0byBkb2N1bWVudCBleGlzdGluZyByb3V0ZXMKLSBBIG1vZGVybiBSRVNUIG9yIEhUVFAgUlBDIEFQSSBiYWNrZW5kIGZyYW1ld29yayBmb3IgR28gZGV2ZWxvcGVycwogIC0gRGVzY3JpYmVkIGJ5IFtPcGVuQVBJIDMuMV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4xLjAubWQpICYgW0pTT04gU2NoZW1hXShodHRwczovL2pzb24tc2NoZW1hLm9yZy8pCi0gR3VhcmQgcmFpbHMgdG8gcHJldmVudCBjb21tb24gbWlzdGFrZXMKLSBEb2N1bWVudGF0aW9uIHRoYXQgY2FuJ3QgZ2V0IG91dCBvZiBkYXRlCi0gSGlnaC1xdWFsaXR5IGdlbmVyYXRlZCBkZXZlbG9wZXIgdG9vbGluZwoKRmVhdHVyZXMgaW5jbHVkZToKCi0gRGVjbGFyYXRpdmUgaW50ZXJmYWNlIG9uIHRvcCBvZiB5b3VyIHJvdXRlciBvZiBjaG9pY2U6CiAgLSBPcGVyYXRpb24gJiBtb2RlbCBkb2N1bWVudGF0aW9uCiAgLSBSZXF1ZXN0IHBhcmFtcyAocGF0aCwgcXVlcnksIGhlYWRlciwgb3IgY29va2llKQogIC0gUmVxdWVzdCBib2R5CiAgLSBSZXNwb25zZXMgKGluY2x1ZGluZyBlcnJvcnMpCiAgLSBSZXNwb25zZSBoZWFkZXJzCi0gSlNPTiBFcnJvcnMgdXNpbmcgW1JGQzk0NTddKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjOTQ1NykgYW5kIGBhcHBsaWNhdGlvbi9wcm9ibGVtK2pzb25gIGJ5IGRlZmF1bHQgKGJ1dCBjYW4gYmUgY2hhbmdlZCkKLSBQZXItb3BlcmF0aW9uIHJlcXVlc3Qgc2l6ZSBsaW1pdHMgd2l0aCBzYW5lIGRlZmF1bHRzCi0gW0NvbnRlbnQgbmVnb3RpYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQ29udGVudF9uZWdvdGlhdGlvbikgYmV0d2VlbiBzZXJ2ZXIgYW5kIGNsaWVudAogIC0gU3VwcG9ydCBmb3IgSlNPTiAoW1JGQyA4MjU5XShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODI1OSkpIGFuZCBvcHRpb25hbGx5IENCT1IgKFtSRkMgNzA0OV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcwNDkpKSBjb250ZW50IHR5cGVzIHZpYSB0aGUgYEFjY2VwdGAgaGVhZGVyIHdpdGggdGhlIGRlZmF1bHQgY29uZmlnLgotIENvbmRpdGlvbmFsIHJlcXVlc3RzIHN1cHBvcnQsIGUuZy4gYElmLU1hdGNoYCBvciBgSWYtVW5tb2RpZmllZC1TaW5jZWAgaGVhZGVyIHV0aWxpdGllcy4KLSBPcHRpb25hbCBhdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiBgUEFUQ0hgIG9wZXJhdGlvbnMgdGhhdCBzdXBwb3J0OgogIC0gW1JGQyA3Mzg2XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzM4NikgSlNPTiBNZXJnZSBQYXRjaAogIC0gW1JGQyA2OTAyXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNjkwMikgSlNPTiBQYXRjaAogIC0gW1Nob3J0aGFuZF0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3Ivc2hvcnRoYW5kKSBwYXRjaGVzCi0gQW5ub3RhdGVkIEdvIHR5cGVzIGZvciBpbnB1dCBhbmQgb3V0cHV0IG1vZGVscwogIC0gR2VuZXJhdGVzIEpTT04gU2NoZW1hIGZyb20gR28gdHlwZXMKICAtIFN0YXRpYyB0eXBpbmcgZm9yIHBhdGgvcXVlcnkvaGVhZGVyIHBhcmFtcywgYm9kaWVzLCByZXNwb25zZSBoZWFkZXJzLCBldGMuCiAgLSBBdXRvbWF0aWMgaW5wdXQgbW9kZWwgdmFsaWRhdGlvbiAmIGVycm9yIGhhbmRsaW5nCi0gRG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uIHVzaW5nIFtTdG9wbGlnaHQgRWxlbWVudHNdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL29wZW4tc291cmNlL2VsZW1lbnRzKQotIE9wdGlvbmFsIENMSSBidWlsdC1pbiwgY29uZmlndXJlZCB2aWEgYXJndW1lbnRzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcwogIC0gU2V0IHZpYSBlLmcuIGAtcCA4MDAwYCwgYC0tcG9ydD04MDAwYCwgb3IgYFNFUlZJQ0VfUE9SVD04MDAwYAogIC0gU3RhcnR1cCBhY3Rpb25zICYgZ3JhY2VmdWwgc2h1dGRvd24gYnVpbHQtaW4KLSBHZW5lcmF0ZXMgT3BlbkFQSSBmb3IgYWNjZXNzIHRvIGEgcmljaCBlY29zeXN0ZW0gb2YgdG9vbHMKICAtIE1vY2tzIHdpdGggW0FQSSBTcHJvdXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2FwaXNwcm91dCkgb3IgW1ByaXNtXShodHRwczovL3N0b3BsaWdodC5pby9vcGVuLXNvdXJjZS9wcmlzbSkKICAtIFNES3Mgd2l0aCBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIG9yIFtvYXBpLWNvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbikKICAtIENMSSB3aXRoIFtSZXN0aXNoXShodHRwczovL3Jlc3Quc2gvKQogIC0gQW5kIFtwbGVudHldKGh0dHBzOi8vb3BlbmFwaS50b29scy8pIFttb3JlXShodHRwczovL2FwaXMuZ3VydS9hd2Vzb21lLW9wZW5hcGkzL2NhdGVnb3J5Lmh0bWwpCi0gR2VuZXJhdGVzIEpTT04gU2NoZW1hIGZvciBlYWNoIHJlc291cmNlIHVzaW5nIG9wdGlvbmFsIGBkZXNjcmliZWRieWAgbGluayByZWxhdGlvbiBoZWFkZXJzIGFzIHdlbGwgYXMgb3B0aW9uYWwgYCRzY2hlbWFgIHByb3BlcnRpZXMgaW4gcmV0dXJuZWQgb2JqZWN0cyB0aGF0IGludGVncmF0ZSBpbnRvIGVkaXRvcnMgZm9yIHZhbGlkYXRpb24gJiBjb21wbGV0aW9uLgoKVGhpcyBwcm9qZWN0IHdhcyBpbnNwaXJlZCBieSBbRmFzdEFQSV0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS8pLiBMb2dvICYgYnJhbmRpbmcgZGVzaWduZWQgYnkgS2FyaSBUYXlsb3IuCgojIyBTcG9uc29ycwoKQSBiaWcgdGhhbmsgeW91IHRvIG91ciBjdXJyZW50ICYgZm9ybWVyIHNwb25zb3JzIQoKPGRpdj4KCQkJCQk8aW1nIHdpZHRoPSIxMDAwIiBoZWlnaHQ9IjAiIC8+CgkJCQkJPGEgaHJlZj0iaHR0cHM6Ly96dXBsby5saW5rL2h1bWEtZ2ggIj4KCQkJCQk8cGljdHVyZT4KCQkJCQkJCTwhLS0gPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJkb2NzL3p1cGxvLWRhcmsucG5nIj4gLS0+CgkJCQkJCQk8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2FhY2U1YWE3LTMyYmQtNDVjZi1hOGY4LTJlMzUyZmVhZjAxNyIgYWx0PSJadXBsbyIgd2lkdGg9IjI2MCIgYWxpZ249InJpZ2h0Ij4KCQkJCQk8L3BpY3R1cmU+CgkJCQkJPC9hPgoJCQkJCTxoMz5adXBsbzogU2NhbGUsIFByb3RlY3QsIGFuZCBQcm9kdWN0aXplIHlvdXIgSHVtYSBBUEk8L2gzPgoJCQkJCTxwPgoJCQkJCQkJT3VyIEFQSSBHYXRld2F5IGFsbG93cyB5b3UgdG8gc2VjdXJlIHlvdXIgQVBJLCBzY2FsZSBpdCBnbG9iYWxseSwgZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmcm9tIHlvdXIgT3BlbkFQSSwgYW5kIG1vbmV0aXplIHlvdXIgdXNlcnMuCgkJCQkJPC9wPgoJCQkJCTxhIGhyZWY9Imh0dHBzOi8venVwbG8ubGluay9odW1hLWdoICI+U3RhcnQgZm9yIEZyZWU8L2E+CjwvZGl2Pgo8aHIvPgoKLSBbQGJjbGVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL2JjbGVtZW50cykKLSBbQGJla2FiYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9iZWthYmF6KQotIFtAdmljdG9yYXVndXN0b2xsc10oaHR0cHM6Ly9naXRodWIuY29tL3ZpY3RvcmF1Z3VzdG9sbHMpCi0gW0BwaG9lbml4dGVjaG5vbG9naWVzLWlvXShodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peHRlY2hub2xvZ2llcy1pbykKLSBbQGNoZW5qcjA3MTldKGh0dHBzOi8vZ2l0aHViLmNvbS9jaGVuanIwNzE5KQoKIyMgVGVzdGltb25pYWxzCgo+IFRoaXMgaXMgYnkgZmFyIG15IGZhdm9yaXRlIHdlYiBmcmFtZXdvcmsgZm9yIEdvLiBJdCBpcyBpbnNwaXJlZCBieSBGYXN0QVBJLCB3aGljaCBpcyBhbHNvIGFtYXppbmcsIGFuZCBjb25mb3JtcyB0byBtYW55IFJGQ3MgZm9yIGNvbW1vbiB3ZWIgdGhpbmdzIC4uLiBJIHJlYWxseSBsaWtlIHRoZSBmZWF0dXJlIHNldCwgdGhlIGZhY3QgdGhhdCBpdCBbY2FuIHVzZV0gQ2hpLCBhbmQgdGhlIGZhY3QgdGhhdCBpdCBpcyBzdGlsbCBzb21laG93IHJlbGF0aXZlbHkgc2ltcGxlIHRvIHVzZS4gSSd2ZSB0cmllZCBvdGhlciBmcmFtZXdvcmtzIGFuZCB0aGV5IGRvIG5vdCBzcGFyayBqb3kgZm9yIG1lLiAtIFtKZWJfSmVua3ldKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9nb2xhbmcvY29tbWVudHMvemhpdGNnL2NvbW1lbnQvaXptZzZ2ay8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEFmdGVyIHdvcmtpbmcgd2l0aCAjR29sYW5nIGZvciBvdmVyIGEgeWVhciwgSSBzdHVtYmxlZCB1cG9uIEh1bWEsIHRoZSAjRmFzdEFQSS1pbnNwaXJlZCB3ZWIgZnJhbWV3b3JrLiBJdOKAmXMgdGhlIENocmlzdG1hcyBtaXJhY2xlIEnigJl2ZSBiZWVuIGhvcGluZyBmb3IhIFRoaXMgZnJhbWV3b3JrIGhhcyBldmVyeXRoaW5nISAtIFtIYW5hIE1vaGFuXShodHRwczovL3R3aXR0ZXIuY29tL3VuYW1hc2hhbmEvc3RhdHVzLzE3MzMwODgwNjYwNTM1ODMxOTcpCgo+IEkgbG92ZSBIdW1hLiBUaGFuayB5b3UsIHNpbmNlcmVseSwgZm9yIHRoaXMgYXdlc29tZSBwYWNrYWdlLiBJ4oCZdmUgYmVlbiB1c2luZyBpdCBmb3Igc29tZSB0aW1lIG5vdyBhbmQgaXTigJlzIGJlZW4gZ3JlYXQhIC0gW3Bsc2NvdHRdKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9nb2xhbmcvY29tbWVudHMvMWFvc2hleS9jb21tZW50L2txNmhjcGQvP3V0bV9zb3VyY2U9cmVkZGl0JnV0bV9tZWRpdW09d2ViMngmY29udGV4dD0zKQoKPiBUaGFuayB5b3UgRGFuaWVsIGZvciBIdW1hLiBTdXBlcmJseSB1c2VmdWwgcHJvamVjdCBhbmQgc2F2ZXMgdXMgYSBsb3Qgb2YgdGltZSBhbmQgaGFzc2xlIHRoYW5rcyB0byB0aGUgT3BlbkFQSSBnZW4g4oCUIHNpbWlsYXIgdG8gRmFzdEFQSSBpbiBQeXRob24uIC0gW1dvbHZlc09mQWxsU3RyZWV0c10oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xYXFqOTlkL2NvbW1lbnQva3FmcWNtbC8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEh1bWEgaXMgd29uZGVyZnVsLCBJJ3ZlIHN0YXJ0ZWQgd29ya2luZyB3aXRoIGl0IHJlY2VudGx5LCBhbmQgaXQncyBhIHBsZWFzdXJlLCBzbyB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3VyIGVmZm9ydHMg8J+ZjyAtIFtjYWxsbWVtaWNhaF0oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xYjMydHM0L2NvbW1lbnQva3N2cjloNy8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEl0IHRvb2sgdXMgMyBtb250aHMgdG8gYnVpbGQgb3VyIHBsYXRmb3JtIGluIFB5dGhvbiB3aXRoIEZhc3RBUEksIFNRTCBBbGNoZW15IGFuZCBvbmx5IDMgd2Vla3MgdG8gcmV3cml0ZSBpdCBpbiBHbyB3aXRoIEh1bWEgYW5kIFNRTCBDLiBUaGluZ3MganVzdCB3b3JrIGFuZCBJIHNlbGRvbWx5IGhhdmUgdG8gZGVidWcgd2hlcmUgaW4gUHl0aG9uIEkgc3BlbnQgYSBtYWpvcml0eSBvZiBteSB0aW1lIGRlYnVnZ2luZy4gLSBbQml0Y2xpY2tcX10oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xY2oyem5iL2NvbW1lbnQvbDJlNHU2eS8pCgojIEluc3RhbGwKCkluc3RhbGwgdmlhIGBnbyBnZXRgLiBOb3RlIHRoYXQgR28gMS4yMSBvciBuZXdlciBpcyByZXF1aXJlZC4KCmBgYHNoCiMgQWZ0ZXI6IGdvIG1vZCBpbml0IC4uLgpnbyBnZXQgLXUgZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIKYGBgCgojIEV4YW1wbGUKCkhlcmUgaXMgYSBjb21wbGV0ZSBiYXNpYyBoZWxsbyB3b3JsZCBleGFtcGxlIGluIEh1bWEsIHRoYXQgc2hvd3MgaG93IHRvIGluaXRpYWxpemUgYSBIdW1hIGFwcCBjb21wbGV0ZSB3aXRoIENMSSwgZGVjbGFyZSBhIHJlc291cmNlIG9wZXJhdGlvbiwgYW5kIGRlZmluZSBpdHMgaGFuZGxlciBmdW5jdGlvbi4KCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJjb250ZXh0IgoJImZtdCIKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIiCgkiZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIvYWRhcHRlcnMvaHVtYWNoaSIKCSJnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi9odW1hY2xpIgoJImdpdGh1Yi5jb20vZ28tY2hpL2NoaS92NSIKCglfICJnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi9mb3JtYXRzL2Nib3IiCikKCi8vIE9wdGlvbnMgZm9yIHRoZSBDTEkuIFBhc3MgYC0tcG9ydGAgb3Igc2V0IHRoZSBgU0VSVklDRV9QT1JUYCBlbnYgdmFyLgp0eXBlIE9wdGlvbnMgc3RydWN0IHsKCVBvcnQgaW50IGBoZWxwOiJQb3J0IHRvIGxpc3RlbiBvbiIgc2hvcnQ6InAiIGRlZmF1bHQ6Ijg4ODgiYAp9CgovLyBHcmVldGluZ091dHB1dCByZXByZXNlbnRzIHRoZSBncmVldGluZyBvcGVyYXRpb24gcmVzcG9uc2UuCnR5cGUgR3JlZXRpbmdPdXRwdXQgc3RydWN0IHsKCUJvZHkgc3RydWN0IHsKCQlNZXNzYWdlIHN0cmluZyBganNvbjoibWVzc2FnZSIgZXhhbXBsZToiSGVsbG8sIHdvcmxkISIgZG9jOiJHcmVldGluZyBtZXNzYWdlImAKCX0KfQoKZnVuYyBtYWluKCkgewoJLy8gQ3JlYXRlIGEgQ0xJIGFwcCB3aGljaCB0YWtlcyBhIHBvcnQgb3B0aW9uLgoJY2xpIDo9IGh1bWFjbGkuTmV3KGZ1bmMoaG9va3MgaHVtYWNsaS5Ib29rcywgb3B0aW9ucyAqT3B0aW9ucykgewoJCS8vIENyZWF0ZSBhIG5ldyByb3V0ZXIgJiBBUEkKCQlyb3V0ZXIgOj0gY2hpLk5ld011eCgpCgkJYXBpIDo9IGh1bWFjaGkuTmV3KHJvdXRlciwgaHVtYS5EZWZhdWx0Q29uZmlnKCJNeSBBUEkiLCAiMS4wLjAiKSkKCgkJLy8gQWRkIHRoZSBvcGVyYXRpb24gaGFuZGxlciB0byB0aGUgQVBJLgoJCWh1bWEuR2V0KGFwaSwgIi9ncmVldGluZy97bmFtZX0iLCBmdW5jKGN0eCBjb250ZXh0LkNvbnRleHQsIGlucHV0ICpzdHJ1Y3R7CgkJCU5hbWUgc3RyaW5nIGBwYXRoOiJuYW1lIiBtYXhMZW5ndGg6IjMwIiBleGFtcGxlOiJ3b3JsZCIgZG9jOiJOYW1lIHRvIGdyZWV0ImAKCQl9KSAoKkdyZWV0aW5nT3V0cHV0LCBlcnJvcikgewoJCQlyZXNwIDo9ICZHcmVldGluZ091dHB1dHt9CgkJCXJlc3AuQm9keS5NZXNzYWdlID0gZm10LlNwcmludGYoIkhlbGxvLCAlcyEiLCBpbnB1dC5OYW1lKQoJCQlyZXR1cm4gcmVzcCwgbmlsCgkJfSkKCgkJLy8gVGVsbCB0aGUgQ0xJIGhvdyB0byBzdGFydCB5b3VyIHJvdXRlci4KCQlob29rcy5PblN0YXJ0KGZ1bmMoKSB7CgkJCWh0dHAuTGlzdGVuQW5kU2VydmUoZm10LlNwcmludGYoIjolZCIsIG9wdGlvbnMuUG9ydCksIHJvdXRlcikKCQl9KQoJfSkKCgkvLyBSdW4gdGhlIENMSS4gV2hlbiBwYXNzZWQgbm8gY29tbWFuZHMsIGl0IHN0YXJ0cyB0aGUgc2VydmVyLgoJY2xpLlJ1bigpCn0KYGBgCgo+IFshVElQXQo+IFJlcGxhY2UgYGNoaS5OZXdNdXgoKWAg4oaSIGBodHRwLk5ld1NlcnZlTXV4KClgIGFuZCBgaHVtYWNoaS5OZXdgIOKGkiBgaHVtYWdvLk5ld2AgdG8gdXNlIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IHJvdXRlciBmcm9tIEdvIDEuMjIrLiBKdXN0IG1ha2Ugc3VyZSB5b3VyIGBnby5tb2RgIGhhcyBgZ28gMS4yMmAgb3IgbmV3ZXIgbGlzdGVkIGluIGl0LiBFdmVyeXRoaW5nIGVsc2Ugc3RheXMgdGhlIHNhbWUhIFN3aXRjaCB3aGVuZXZlciB5b3UgYXJlIHJlYWR5LgoKWW91IGNhbiB0ZXN0IGl0IHdpdGggYGdvIHJ1biBncmVldC5nb2AgKG9wdGlvbmFsbHkgcGFzcyBgLS1wb3J0YCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQpIGFuZCBtYWtlIGEgc2FtcGxlIHJlcXVlc3QgdXNpbmcgW1Jlc3Rpc2hdKGh0dHBzOi8vcmVzdC5zaC8pIChvciBgY3VybGApOgoKYGBgc2gKIyBHZXQgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgc2VydmVyCiQgcmVzdGlzaCA6ODg4OC9ncmVldGluZy93b3JsZApIVFRQLzEuMSAyMDAgT0sKLi4uCnsKCSRzY2hlbWE6ICJodHRwOi8vbG9jYWxob3N0Ojg4ODgvc2NoZW1hcy9HcmVldGluZ091dHB1dEJvZHkuanNvbiIsCgltZXNzYWdlOiAiSGVsbG8sIHdvcmxkISIKfQpgYGAKCkV2ZW4gdGhvdWdoIHRoZSBleGFtcGxlIGlzIHRpbnkgeW91IGNhbiBhbHNvIHNlZSBzb21lIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9kb2NzLiBUaGUgZ2VuZXJhdGVkIE9wZW5BUEkgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9vcGVuYXBpLmpzb24gb3IgaHR0cDovL2xvY2FsaG9zdDo4ODg4L29wZW5hcGkueWFtbC4KCkNoZWNrIG91dCB0aGUgW0h1bWEgdHV0b3JpYWxdKGh0dHBzOi8vaHVtYS5yb2Nrcy90dXRvcmlhbC9pbnN0YWxsYXRpb24vKSBmb3IgYSBzdGVwLWJ5LXN0ZXAgZ3VpZGUgdG8gZ2V0IHN0YXJ0ZWQuCgojIERvY3VtZW50YXRpb24KClNlZSB0aGUgW2h0dHBzOi8vaHVtYS5yb2Nrcy9dKGh0dHBzOi8vaHVtYS5yb2Nrcy8pIHdlYnNpdGUgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbiBpbiBhIHByZXNlbnRhdGlvbiB0aGF0J3MgZWFzaWVyIHRvIG5hdmlnYXRlIGFuZCBzZWFyY2ggdGhlbiB0aGlzIFJFQURNRS4gWW91IGNhbiBmaW5kIHRoZSBzb3VyY2UgZm9yIHRoZSBzaXRlIGluIHRoZSBgZG9jc2AgZGlyZWN0b3J5IG9mIHRoaXMgcmVwby4KCk9mZmljaWFsIEdvIHBhY2thZ2UgZG9jdW1lbnRhdGlvbiBjYW4gYWx3YXlzIGJlIGZvdW5kIGF0IGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi4KCiMgQXJ0aWNsZXMgJiBNZW50aW9ucwoKLSBbQVBJcyBpbiBHbyB3aXRoIEh1bWEgMi4wXShodHRwczovL2RndC5oYXNobm9kZS5kZXYvYXBpcy1pbi1nby13aXRoLWh1bWEtMjApCi0gW1JlZHVjaW5nIEdvIERlcGVuZGVuY2llczogQSBjYXNlIHN0dWR5IG9mIGRlcGVuZGVuY3kgcmVkdWN0aW9uIGluIEh1bWFdKGh0dHBzOi8vZGd0Lmhhc2hub2RlLmRldi9yZWR1Y2luZy1nby1kZXBlbmRlbmNpZXMpCi0gW0dvbGFuZyBOZXdzICYgTGlicyAmIEpvYnMgc2hhcmVkIG9uIFR3aXR0ZXIvWF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9nb2xhbmdjaC9zdGF0dXMvMTc1MjE3NTQ5OTcwMTI2NDUzMikKLSBGZWF0dXJlZCBpbiBHbyBXZWVrbHkgWyM0OTVdKGh0dHBzOi8vZ29sYW5nd2Vla2x5LmNvbS9pc3N1ZXMvNDk1KSAmIFsjNDk4XShodHRwczovL2dvbGFuZ3dlZWtseS5jb20vaXNzdWVzLzQ5OCkKLSBbQnVtcC5zaCBEZXBsb3lpbmcgRG9jcyBmcm9tIEh1bWFdKGh0dHBzOi8vZG9jcy5idW1wLnNoL2d1aWRlcy9idW1wLXNoLXR1dG9yaWFscy9odW1hLykKLSBNZW50aW9uZWQgaW4gW0NvbXBvc2FibGUgSFRUUCBIYW5kbGVycyBVc2luZyBHZW5lcmljc10oaHR0cHM6Ly93d3cud2lsbGVtLmRldi9hcnRpY2xlcy9nZW5lcmljLWh0dHAtaGFuZGxlcnMvKQoKQmUgc3VyZSB0byBzdGFyIHRoZSBwcm9qZWN0IGlmIHlvdSBmaW5kIGl0IHVzZWZ1bCEKCjxhIGhyZWY9Imh0dHBzOi8vc3Rhci1oaXN0b3J5LmNvbS8jZGFuaWVsZ3RheWxvci9odW1hJkRhdGUiPgoJPHBpY3R1cmU+CgkJPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJodHRwczovL2FwaS5zdGFyLWhpc3RvcnkuY29tL3N2Zz9yZXBvcz1kYW5pZWxndGF5bG9yL2h1bWEmdHlwZT1EYXRlJnRoZW1lPWRhcmsiIC8+CgkJPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkiIHNyY3NldD0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9ZGFuaWVsZ3RheWxvci9odW1hJnR5cGU9RGF0ZSIgLz4KCQk8aW1nIGFsdD0iU3RhciBIaXN0b3J5IENoYXJ0IiBzcmM9Imh0dHBzOi8vYXBpLnN0YXItaGlzdG9yeS5jb20vc3ZnP3JlcG9zPWRhbmllbGd0YXlsb3IvaHVtYSZ0eXBlPURhdGUiIC8+Cgk8L3BpY3R1cmU+CjwvYT4K readmeEtag: '"35ae5e856addb27690f92de9dd7730abca2a69b4"' readmeLastModified: Mon, 19 Aug 2024 15:47:00 GMT repositoryId: 245763170 description: Huma REST/HTTP API Framework for Golang with OpenAPI 3.1 created: '2020-03-08T06:19:51Z' updated: '2024-09-05T17:29:12Z' language: Go archived: false stars: 1866 watchers: 27 forks: 138 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT repoEtag: '"9a72b825314fa62484eec6fa784086d31df955b2e4ced74cdb12eb79501c00d7"' repoLastModified: Thu, 05 Sep 2024 17:29:12 GMT foundInMaster: true category: - Auto Generators - Data Validators - Server id: 96ae035d7b486f67e7bae7f6208179f9 v3_1: true name: Huma language: Go link: https://huma.rocks/ source_description: >- A modern, simple, fast & flexible micro framework for building HTTP REST/RPC APIs in Go backed by OpenAPI 3 and JSON Schema. - source: https://openapi.tools/ name: openapi-merge category: - Converters - Server Implementations language: TypeScript repository: https://github.com/robertmassaioli/openapi-merge link: https://github.com/robertmassaioli/openapi-merge source_description: >- A simple tool to merge multiple independent OpenAPI description files into one file. Useful when you have a number of microservices and you decide to expose them through a gateway. v2: false v3: true v3_1: false id: d02b4c51ae616ca5f33e3d4d36dab531 repositoryMetadata: base64Readme: >- IyMgVGhlIG9wZW5hcGktbWVyZ2UgcmVwb3NpdG9yeQoKV2VsY29tZSB0byB0aGUgb3BlbmFwaS1tZXJnZSByZXBvc2l0b3J5LiBUaGlzIGxpYnJhcnkgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgbWVyZ2luZyBtdWx0aXBsZSBPcGVuQVBJIDMuMCBmaWxlcyB0b2dldGhlci4gVGhlIG1vc3QgY29tbW9uIHJlYXNvbiB0aGF0IGRldmVsb3BlcnMgd2FudCB0byBkbyB0aGlzIGlzIGJlY2F1c2UgdGhleSBoYXZlIG11bHRpcGxlIHNlcnZpY2VzIHRoYXQgdGhleSB3aXNoIHRvIGV4cG9zZSB1bmRlcm5lYXRoIGEgc2luZ2xlIEFQSSBHYXRld2F5LiBUaGVyZWZvcmUsIGV2ZW4gdGhvdWdoIHRoaXMgbWVyZ2luZyBsb2dpYyBpcyBzdWZmaWNpZW50bHkgZ2VuZXJpYyB0byBiZSB1c2VkIGZvciBtb3N0IHVzZSBjYXNlcywgc29tZSBvZiB0aGUgZmVhdHVyZSBkZWNpc2lvbnMgYXJlIHRhaWxvcmVkIGZvciB0aGF0IHNwZWNpZmljIHVzZSBjYXNlLgoKIyMjIFNjcmVlbnNob3RzCgohW0ltZ3VyXShodHRwczovL2kuaW1ndXIuY29tL0dqblNYQ1MucG5nKQooQW4gZXhhbXBsZSBvZiBjcmVhdGluZyBhbiBvcGVuYXBpLW1lcmdlLmpzb24gY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUgQ0xJIHRvb2wpCgojIyMgQWJvdXQgdGhpcyByZXBvc2l0b3J5CgpUaGlzIGlzIGEgbXVsdGktcGFja2FnZSByZXBvc2l0b3J5IHRoYXQgY29udGFpbnM6CgoqIFRoZSBvcGVuYXBpLW1lcmdlIGxpYnJhcnk6IFshW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vcGVuYXBpLW1lcmdlP2xhYmVsPW9wZW5hcGktbWVyZ2UmbG9nbz1ucG0pXShodHRwczovL2JpdC5seS8yV25JeXRGKQoqIFRoZSBvcGVuYXBpLW1lcmdlIENMSSB0b29sOiBbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvb3BlbmFwaS1tZXJnZS1jbGk/bGFiZWw9b3BlbmFwaS1tZXJnZS1jbGkmbG9nbz1ucG0pXShodHRwczovL2JpdC5seS8zYkVWcTNmKQoKRGVwZW5kaW5nIG9uIHlvdXIgdXNlLWNhc2UsIHlvdSBtYXkgd2lzaCB0byB1c2UgdGhlIENMSSB0b29sIG9yIHRoZSBsaWJyYXJ5IGluIHlvdXIgcHJvamVjdC4gUGxlYXNlIHNlZSB0aGUgcmVhZG1lIGZpbGUgb2YgdGhlIHNwZWNpZmljIHBhY2thZ2UgZm9yIG1vcmUgZGV0YWlscy4KCiMjIyBEZXZlbG9waW5nIG9uIG9wZW5hcGktbWVyZ2UKClRoaXMgcHJvamVjdCBpcyBhIG11bHRpLXBhY2thZ2UgcmVwb3NpdG9yeSBhbmQgdXNlcyB0aGUgW2JvbHRdWzFdIHRvb2wgdG8gbWFuYWdlIHRoZXNlIHBhY2thZ2VzIGluIG9uZSBkZXZlbG9wbWVudCBleHBlcmllbmNlLgoKQWZ0ZXIgY2hlY2tpbmcgb3V0IHRoaXMgcmVwb3NpdG9yeSwgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGluc3RhbGwgdGhlIHJlcXVpcmVkIGRlcGVuZGVuY2llczoKCmBgYCBzaGVsbApib2x0IGluc3RhbGwKYGBgCgpZb3UgY2FuIHRoZW4gdGVzdCBydW5uaW5nIHRoZSBDTEkgdG9vbCBieSBydW5uaW5nOgoKYGBgIHNoZWxsCnlhcm4gY2xpCmBgYAoKSWYgeW91IHdpc2ggdG8gZW5zdXJlIHRoYXQgeW91IGNhbiBkZXZlbG9wIG9uIHRoZSBgb3BlbmFwaS1tZXJnZWAgbGlicmFyeSBpbiBwYXJhbGxlbCB0byB0aGUgYG9wZW5hcGktbWVyZ2UtY2xpYCB0b29sCnRoZW4geW91IG11c3QgcnVuIHRoZSBUeXBlc2NyaXB0IGJ1aWxkIGZvciBgb3BlbmFwaS1tZXJnZWAgaW4gd2F0Y2ggbW9kZS4gWW91IGNhbiBkbyB0aGlzIGJ5OgoKYGBgIHNoZWxsCmJvbHQgdyBvcGVuYXBpLW1lcmdlIGJ1aWxkIC13CmBgYAoKVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBUeXBlc2NyaXB0IGlzIGNvbXBpbGVkIGludG8gSmF2YVNjcmlwdCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IHRoZSBgb3BlbmFwaS1tZXJnZS1jbGlgIHRvb2wuCgpGb3IgdGhlIG90aGVyIG9wZXJhdGlvbnMgdGhhdCB5b3Ugd2lzaCB0byBwZXJmb3JtLCBwbGVhc2Ugc2VlIHRoZSBwYWNrYWdlLmpzb24gb2YgdGhlIG90aGVyIHBhY2thZ2VzIGluIHRoaXMgcmVwb3NpdG9yeS4KCiBbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9ib2x0cGtnL2JvbHQ= readmeEtag: '"97186676a02261a5d5d40f2f90071c23a7a68751"' readmeLastModified: Thu, 06 Jun 2024 04:47:59 GMT repositoryId: 369944083 description: >- Merge multiple OpenAPI 3.0 (Swagger) files together via a library or CLI tool. created: '2021-05-23T02:23:17Z' updated: '2024-08-22T13:12:47Z' language: TypeScript archived: false stars: 128 watchers: 4 forks: 25 owner: robertmassaioli logo: https://avatars.githubusercontent.com/u/149178?v=4 license: MIT repoEtag: '"b7df733c61bdb08346bdc4016698e65612bb7fc0cf29a5333ce9a130d743e3d6"' repoLastModified: Thu, 22 Aug 2024 13:12:47 GMT foundInMaster: true - source: https://openapi.tools/ name: OpenAPI::Modern category: - Description Validators - Data Validators repository: https://github.com/karenetheridge/openapi-modern link: https://metacpan.org/dist/OpenAPI-Modern language: Perl source_description: >- OpenAPI v3.1 validator and JSON Schema validator (draft7, draft2019-09, draft2020-12) v3_1: true id: ca155f2693c6aa619365c0854c0125f5 repositoryMetadata: base64Readme: >- PXBvZAoKPWVuY29kaW5nIFVURi04Cgo9aGVhZDEgTkFNRQoKT3BlbkFQSTo6TW9kZXJuIC0gVmFsaWRhdGUgSFRUUCByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzIGFnYWluc3QgYW4gT3BlbkFQSSB2My4xIGRvY3VtZW50Cgo9aGVhZDEgVkVSU0lPTgoKdmVyc2lvbiAwLjA2NwoKPWhlYWQxIFNZTk9QU0lTCgogIG15ICRvcGVuYXBpID0gT3BlbkFQSTo6TW9kZXJuLT5uZXcoCiAgICBvcGVuYXBpX3VyaSA9PiAnL2FwaScsCiAgICBvcGVuYXBpX3NjaGVtYSA9PiBZQU1MOjpQUC0+bmV3KGJvb2xlYW4gPT4gJ0pTT046OlBQJyktPmxvYWRfc3RyaW5nKDw8J1lBTUwnKSk7CiAgb3BlbmFwaTogMy4xLjAKICBpbmZvOgogICAgdGl0bGU6IFRlc3QgQVBJCiAgICB2ZXJzaW9uOiAxLjIuMwogIHBhdGhzOgogICAgL2Zvby97Zm9vX2lkfToKICAgICAgcGFyYW1ldGVyczoKICAgICAgLSBuYW1lOiBmb29faWQKICAgICAgICBpbjogcGF0aAogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgcGF0dGVybjogXlthLXpdKyQKICAgICAgcG9zdDoKICAgICAgICBvcGVyYXRpb25JZDogbXlfZm9vX3JlcXVlc3QKICAgICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogTXktUmVxdWVzdC1IZWFkZXIKICAgICAgICAgIGluOiBoZWFkZXIKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHBhdHRlcm46IF5bMC05XSskCiAgICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIGhlbGxvOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IF5bMC05XSskCiAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgMjAwOgogICAgICAgICAgICBkZXNjcmlwdGlvbjogc3VjY2VzcwogICAgICAgICAgICBoZWFkZXJzOgogICAgICAgICAgICAgIE15LVJlc3BvbnNlLUhlYWRlcjoKICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAgIHBhdHRlcm46IF5bMC05XSskCiAgICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBbIHN0YXR1cyBdCiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOgogICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IG9rCiAgWUFNTAoKICBzYXkgJ3JlcXVlc3Q6JzsKICBteSAkcmVxdWVzdCA9IFBPU1QgJy9mb28vYmFyJywKICAgICdNeS1SZXF1ZXN0LUhlYWRlcicgPT4gJzEyMycsICdDb250ZW50LVR5cGUnID0+ICdhcHBsaWNhdGlvbi9qc29uJywgSG9zdCA9PiAnZXhhbXBsZS5jb20nLAogICAgQ29udGVudCA9PiAneyJoZWxsbyI6IDEyM30nOwogIG15ICRyZXN1bHRzID0gJG9wZW5hcGktPnZhbGlkYXRlX3JlcXVlc3QoJHJlcXVlc3QpOwogIHNheSAkcmVzdWx0czsKICBzYXkgJyc7ICMgbmV3bGluZQogIHNheSBKU09OOjpNYXliZVhTLT5uZXcoY29udmVydF9ibGVzc2VkID0+IDEsIGNhbm9uaWNhbCA9PiAxLCBwcmV0dHkgPT4gMSwgaW5kZW50X2xlbmd0aCA9PiAyKS0+ZW5jb2RlKCRyZXN1bHRzKTsKCiAgc2F5ICdyZXNwb25zZTonOwogIG15ICRyZXNwb25zZSA9IE1vam86Ok1lc3NhZ2U6OlJlc3BvbnNlLT5uZXcoY29kZSA9PiAyMDAsIG1lc3NhZ2UgPT4gJ09LJyk7CiAgJHJlc3BvbnNlLT5oZWFkZXJzLT5jb250ZW50X3R5cGUoJ2FwcGxpY2F0aW9uL2pzb24nKTsKICAkcmVzcG9uc2UtPmhlYWRlcnMtPmhlYWRlcignTXktUmVzcG9uc2UtSGVhZGVyJywgJzEyMycpOwogICRyZXNwb25zZS0+Ym9keSgneyJzdGF0dXMiOiAib2sifScpOwogICRyZXN1bHRzID0gJG9wZW5hcGktPnZhbGlkYXRlX3Jlc3BvbnNlKCRyZXNwb25zZSwgeyByZXF1ZXN0ID0+ICRyZXF1ZXN0IH0pOwogIHNheSAkcmVzdWx0czsKICBzYXkgJyc7ICMgbmV3bGluZQogIHNheSBKU09OOjpNYXliZVhTLT5uZXcoY29udmVydF9ibGVzc2VkID0+IDEsIGNhbm9uaWNhbCA9PiAxLCBwcmV0dHkgPT4gMSwgaW5kZW50X2xlbmd0aCA9PiAyKS0+ZW5jb2RlKCRyZXN1bHRzKTsKCnByaW50czoKCiAgcmVxdWVzdDoKICAnL3JlcXVlc3QvYm9keS9oZWxsbyc6IGdvdCBpbnRlZ2VyLCBub3Qgc3RyaW5nCiAgJy9yZXF1ZXN0L2JvZHknOiBub3QgYWxsIHByb3BlcnRpZXMgYXJlIHZhbGlkCgogIHsKICAgICJlcnJvcnMiIDogWwogICAgICB7CiAgICAgICAgImFic29sdXRlS2V5d29yZExvY2F0aW9uIiA6ICJodHRwczovL2V4YW1wbGUuY29tL2FwaSMvcGF0aHMvfjFmb29+MSU3QmZvb19pZCU3RC9wb3N0L3JlcXVlc3RCb2R5L2NvbnRlbnQvYXBwbGljYXRpb25+MWpzb24vc2NoZW1hL3Byb3BlcnRpZXMvaGVsbG8vdHlwZSIsCiAgICAgICAgImVycm9yIiA6ICJnb3QgaW50ZWdlciwgbm90IHN0cmluZyIsCiAgICAgICAgImluc3RhbmNlTG9jYXRpb24iIDogIi9yZXF1ZXN0L2JvZHkvaGVsbG8iLAogICAgICAgICJrZXl3b3JkTG9jYXRpb24iIDogIi9wYXRocy9+MWZvb34xe2Zvb19pZH0vcG9zdC9yZXF1ZXN0Qm9keS9jb250ZW50L2FwcGxpY2F0aW9ufjFqc29uL3NjaGVtYS9wcm9wZXJ0aWVzL2hlbGxvL3R5cGUiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiYWJzb2x1dGVLZXl3b3JkTG9jYXRpb24iIDogImh0dHBzOi8vZXhhbXBsZS5jb20vYXBpIy9wYXRocy9+MWZvb34xJTdCZm9vX2lkJTdEL3Bvc3QvcmVxdWVzdEJvZHkvY29udGVudC9hcHBsaWNhdGlvbn4xanNvbi9zY2hlbWEvcHJvcGVydGllcyIsCiAgICAgICAgImVycm9yIiA6ICJub3QgYWxsIHByb3BlcnRpZXMgYXJlIHZhbGlkIiwKICAgICAgICAiaW5zdGFuY2VMb2NhdGlvbiIgOiAiL3JlcXVlc3QvYm9keSIsCiAgICAgICAgImtleXdvcmRMb2NhdGlvbiIgOiAiL3BhdGhzL34xZm9vfjF7Zm9vX2lkfS9wb3N0L3JlcXVlc3RCb2R5L2NvbnRlbnQvYXBwbGljYXRpb25+MWpzb24vc2NoZW1hL3Byb3BlcnRpZXMiCiAgICAgIH0KICAgIF0sCiAgICAidmFsaWQiIDogZmFsc2UKICB9CgogIHJlc3BvbnNlOgogIHZhbGlkCgogIHsKICAgICJ2YWxpZCIgOiB0cnVlCiAgfQoKPWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIG1vZHVsZSBwcm92aWRlcyB2YXJpb3VzIHRvb2xzIGZvciB3b3JraW5nIHdpdGggYW4KTDxPcGVuQVBJIFNwZWNpZmljYXRpb24gdjMuMSBkb2N1bWVudHxodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlbmFwaS1kb2N1bWVudD4gd2l0aGluCnlvdXIgYXBwbGljYXRpb24uIFRoZSBKU09OIFNjaGVtYSBldmFsdWF0b3IgaXMgZnVsbHkgc3BlY2lmaWNhdGlvbi1jb21wbGlhbnQ7IHRoZSBPcGVuQVBJIGV2YWx1YXRvcgphaW1zIHRvIGJlIGJ1dCBzb21lIGZlYXR1cmVzIGFyZSBub3QgeWV0IGF2YWlsYWJsZS4gTXkgYmVsaWVmIGlzIHRoYXQgbWlzc2luZyBmZWF0dXJlcyBhcmUgYmV0dGVyCnRoYW4gZmVhdHVyZXMgdGhhdCBzZWVtIHRvIHdvcmsgYnV0IGFjdHVhbGx5IGN1dCBjb3JuZXJzIGZvciBzaW1wbGljaXR5LgoKPWZvciBQb2Q6OkNvdmVyYWdlIEJVSUxEQVJHUyBUSEFXCgo9Zm9yIHN0b3B3b3JkcyBzY2hlbWFzIGpzb25TY2hlbWFEaWFsZWN0IG1ldGFzY2hlbWEgc3Vic2NoZW1hIHBlcmxpc2ggb3BlcmF0aW9uSWQgb3BlbmFwaSBNb2pvbGljaW91cwoKPWhlYWQxIENPTlNUUlVDVE9SIEFSR1VNRU5UUwoKSWYgY29uc3RydWN0aW9uIG9mIHRoZSBvYmplY3QgaXMgbm90IHN1Y2Nlc3NmdWwsIGZvciBleGFtcGxlIHRoZSBkb2N1bWVudCBoYXMgYSBzeW50YXggZXJyb3IsIHRoZQpjYWxsIHRvIEM8bmV3KCk+IHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLiBCZSBjYXJlZnVsIGFib3V0IGV4YW1pbmluZyB0aGlzIGV4Y2VwdGlvbiwgZm9yIGl0IG1pZ2h0IGJlCmEgTDxKU09OOjpTY2hlbWE6Ok1vZGVybjo6UmVzdWx0PiBvYmplY3QsIHdoaWNoIGhhcyBhIGJvb2xlYW4gb3ZlcmxvYWQgb2YgZmFsc2Ugd2hlbiBpdCBjb250YWlucwplcnJvcnMhIEJ1dCB5b3UgbmV2ZXIgZG8gQzxpZiAoJEApIHsgLi4uIH0+LCByaWdodD8KCj1oZWFkMiBvcGVuYXBpX3VyaQoKVGhlIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIE9wZW5BUEkgZG9jdW1lbnQuCklnbm9yZWQgaWYgTDwvb3BlbmFwaV9kb2N1bWVudD4gaXMgcHJvdmlkZWQuCgpJZiBpdCBpcyBub3QgYWJzb2x1dGUsIGl0IGlzIHJlc29sdmVkIGF0IHJ1bnRpbWUgYWdhaW5zdCB0aGUgcmVxdWVzdCdzIEM8SG9zdD4gaGVhZGVyICh3aGVuIGF2YWlsYWJsZSkKYW5kIHNjaGVtZSAoZS5nLiBDPGh0dHBzPikuCgo9aGVhZDIgb3BlbmFwaV9zY2hlbWEKClRoZSBkYXRhIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBPcGVuQVBJIHYzLjEgZG9jdW1lbnQgKGFzIHNwZWNpZmllZCBhdApMPGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMD4pLiBJZ25vcmVkIGlmIEw8L29wZW5hcGlfZG9jdW1lbnQ+IGlzIHByb3ZpZGVkLgoKPWhlYWQyIG9wZW5hcGlfZG9jdW1lbnQKClRoZSBMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpEb2N1bWVudDo6T3BlbkFQST4gZG9jdW1lbnQgdGhhdCBob2xkcyB0aGUgT3BlbkFQSSBpbmZvcm1hdGlvbiB0byBiZQp1c2VkIGZvciB2YWxpZGF0aW9uLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQgdG8gdGhlIGNvbnN0cnVjdG9yLCB0aGVuIGJvdGggTDwvb3BlbmFwaV91cmk+IGFuZApMPC9vcGVuYXBpX3NjaGVtYT4gQjxNVVNUPiBiZSBwcm92aWRlZCwgYW5kIEw8L2V2YWx1YXRvcj4gd2lsbCBhbHNvIGJlIHVzZWQgaWYgcHJvdmlkZWQuCgo9aGVhZDIgZXZhbHVhdG9yCgpUaGUgTDxKU09OOjpTY2hlbWE6Ok1vZGVybj4gb2JqZWN0IHRvIHVzZSBmb3IgYWxsIFVSSSByZXNvbHV0aW9uIGFuZCBKU09OIFNjaGVtYSBldmFsdWF0aW9uLgpJZ25vcmVkIGlmIEw8L29wZW5hcGlfZG9jdW1lbnQ+IGlzIHByb3ZpZGVkLiBPcHRpb25hbC4KCj1oZWFkMSBBQ0NFU1NPUlMvTUVUSE9EUwoKPWhlYWQyIG9wZW5hcGlfdXJpCgpUaGUgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgT3BlbkFQSSBkb2N1bWVudC4KCj1oZWFkMiBvcGVuYXBpX3NjaGVtYQoKVGhlIGRhdGEgc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIE9wZW5BUEkgZG9jdW1lbnQuIFNlZSBMPHRoZSBzcGVjaWZpY2F0aW9uL2h0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMD4uCgo9aGVhZDIgb3BlbmFwaV9kb2N1bWVudAoKVGhlIEw8SlNPTjo6U2NoZW1hOjpNb2Rlcm46OkRvY3VtZW50OjpPcGVuQVBJPiBkb2N1bWVudCB0aGF0IGhvbGRzIHRoZSBPcGVuQVBJIGluZm9ybWF0aW9uIHRvIGJlCnVzZWQgZm9yIHZhbGlkYXRpb24uCgo9aGVhZDIgZG9jdW1lbnRfZ2V0CgogIG15ICRwYXJhbWV0ZXJfZGF0YSA9ICRvcGVuYXBpLT5kb2N1bWVudF9nZXQoJy9wYXRocy9+MWZvb34xe2Zvb19pZH0vZ2V0L3BhcmFtZXRlcnMvMCcpOwoKRmV0Y2hlcyB0aGUgc3Vic2NoZW1hIGF0IHRoZSBwcm92aWRlZCBKU09OIHBvaW50ZXIuClByb3hpZXMgdG8gTDxKU09OOjpTY2hlbWE6Ok1vZGVybjo6RG9jdW1lbnQ6Ok9wZW5BUEkvZ2V0Pi4KVGhpcyBpcyBub3QgcmVjdXJzaXZlIChkb2VzIG5vdCBmb2xsb3cgQzwkcmVmPiBjaGFpbnMpIC0tIGZvciB0aGF0LCB1c2UKQzw8ICRvcGVuYXBpLT5yZWN1cnNpdmVfZ2V0KE1vam86OlVSTC0+bmV3LT5mcmFnbWVudCgkanNvbl9wb2ludGVyKSkgPj4sIHNlZQpMPC9yZWN1cnNpdmVfZ2V0Pi4KCj1oZWFkMiBldmFsdWF0b3IKClRoZSBMPEpTT046OlNjaGVtYTo6TW9kZXJuPiBvYmplY3QgdG8gdXNlIGZvciBhbGwgVVJJIHJlc29sdXRpb24gYW5kIEpTT04gU2NoZW1hIGV2YWx1YXRpb24uCgo9aGVhZDIgdmFsaWRhdGVfcmVxdWVzdAoKICAkcmVzdWx0ID0gJG9wZW5hcGktPnZhbGlkYXRlX3JlcXVlc3QoCiAgICAkcmVxdWVzdCwKICAgICMgb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IGNhbiBjb250YWluIGFueSBjb21iaW5hdGlvbiBvZjoKICAgIG15ICRvcHRpb25zID0gewogICAgICBwYXRoX3RlbXBsYXRlID0+ICcvZm9vL3thcmcxfS9iYXIve2FyZzJ9JywKICAgICAgb3BlcmF0aW9uX2lkID0+ICdteV9vcGVyYXRpb25faWQnLAogICAgICBwYXRoX2NhcHR1cmVzID0+IHsgYXJnMSA9PiAxLCBhcmcyID0+IDIgfSwKICAgICAgbWV0aG9kID0+ICdnZXQnLAogICAgfSwKICApOwoKVmFsaWRhdGVzIGFuIEw8SFRUUDo6UmVxdWVzdD4sIEw8UGxhY2s6OlJlcXVlc3Q+LCBMPENhdGFseXN0OjpSZXF1ZXN0PiBvciBMPE1vam86Ok1lc3NhZ2U6OlJlcXVlc3Q+Cm9iamVjdCBhZ2FpbnN0IHRoZSBjb3JyZXNwb25kaW5nIE9wZW5BUEkgdjMuMSBkb2N1bWVudCwgcmV0dXJuaW5nIGEKTDxKU09OOjpTY2hlbWE6Ok1vZGVybjo6UmVzdWx0PiBvYmplY3QuCgpUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIGFuIG9wdGlvbmFsIGhhc2hyZWYgdGhhdCBjb250YWlucyBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVxdWVzdCwKY29ycmVzcG9uZGluZyB0byB0aGUgdmFsdWVzIGV4cGVjdGVkIGJ5IEw8L2ZpbmRfcGF0aD4gYmVsb3cuIEl0IGlzIHBvcHVsYXRlZCB3aXRoIHNvbWUgaW5mb3JtYXRpb24KYWJvdXQgdGhlIHJlcXVlc3Q6CnNhdmUgaXQgYW5kIHBhc3MgaXQgdG8gYSBsYXRlciBMPC92YWxpZGF0ZV9yZXNwb25zZT4gKGNvcnJlc3BvbmRpbmcgdG8gYSByZXNwb25zZSBmb3IgdGhpcyByZXF1ZXN0KQp0byBpbXByb3ZlIHBlcmZvcm1hbmNlLgoKPWhlYWQyIHZhbGlkYXRlX3Jlc3BvbnNlCgogICRyZXN1bHQgPSAkb3BlbmFwaS0+dmFsaWRhdGVfcmVzcG9uc2UoCiAgICAkcmVzcG9uc2UsCiAgICB7CiAgICAgIHBhdGhfdGVtcGxhdGUgPT4gJy9mb28ve2FyZzF9L2Jhci97YXJnMn0nLAogICAgICByZXF1ZXN0ID0+ICRyZXF1ZXN0LAogICAgfSwKICApOwoKVmFsaWRhdGVzIGFuIEw8SFRUUDo6UmVzcG9uc2U+LCBMPFBsYWNrOjpSZXNwb25zZT4sIEw8Q2F0YWx5c3Q6OlJlc3BvbnNlPiBvciBMPE1vam86Ok1lc3NhZ2U6OlJlc3BvbnNlPgpvYmplY3QgYWdhaW5zdCB0aGUgY29ycmVzcG9uZGluZyBPcGVuQVBJIHYzLjEgZG9jdW1lbnQsIHJldHVybmluZyBhCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm46OlJlc3VsdD4gb2JqZWN0LgoKVGhlIHNlY29uZCBhcmd1bWVudCBpcyBhbiBvcHRpb25hbCBoYXNocmVmIHRoYXQgY29udGFpbnMgZXh0cmEgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcXVlc3QKY29ycmVzcG9uZGluZyB0byB0aGUgcmVzcG9uc2UsIGFzIGluIEw8L2ZpbmRfcGF0aD4uCgpDPHJlcXVlc3Q+IGlzIGFsc28gYWNjZXB0ZWQgYXMgYSBrZXkgaW4gdGhlIGhhc2hyZWYsIHJlcHJlc2VudGluZyB0aGUgb3JpZ2luYWwgcmVxdWVzdCBvYmplY3QgdGhhdApjb3JyZXNwb25kcyB0byB0aGlzIHJlc3BvbnNlIChhcyBub3QgYWxsIEhUVFAgbGlicmFyaWVzIGxpbmsgdG8gdGhlIHJlcXVlc3QgaW4gdGhlIHJlc3BvbnNlIG9iamVjdCkuCgo9aGVhZDIgZmluZF9wYXRoCgogICRyZXN1bHQgPSAkc2VsZi0+ZmluZF9wYXRoKCRvcHRpb25zKTsKClVzZXMgaW5mb3JtYXRpb24gaW4gdGhlIHJlcXVlc3QgdG8gZGV0ZXJtaW5lIHRoZSByZWxldmFudCBwYXJ0cyBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgpDPHJlcXVlc3Q+IHNob3VsZCBiZSBwcm92aWRlZCBpZiBhdmFpbGFibGUsIGJ1dCBhZGRpdGlvbmFsIGRhdGEgY2FuIGJlIHVzZWQgaW5zdGVhZAood2hpY2ggaXMgcG9wdWxhdGVkIGJ5IGVhcmxpZXIgTDwvdmFsaWRhdGVfcmVxdWVzdD4gb3IgTDwvZmluZF9wYXRoPiBjYWxscyB0byB0aGUgc2FtZSByZXF1ZXN0KS4KClRoZSBzaW5nbGUgYXJndW1lbnQgaXMgYSBoYXNocmVmIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcXVlc3QuIFBvc3NpYmxlIHZhbHVlcwppbmNsdWRlOgoKPW92ZXIgNAoKPWl0ZW0gKgoKQzxyZXF1ZXN0PjogdGhlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIEhUVFAgcmVxdWVzdC4gU2hvdWxkIGJlIHByb3ZpZGVkIHdoZW4gYXZhaWxhYmxlLgoKPWl0ZW0gKgoKQzxwYXRoX3RlbXBsYXRlPjogYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZXF1ZXN0IFVSSSwgd2l0aCBwbGFjZWhvbGRlcnMgaW4gYnJhY2VzIChlLmcuIEM8L3BldHMve3BldElkfT4pOyBzZWUgTDxodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcGF0aHMtb2JqZWN0Pi4KCj1pdGVtICoKCkM8b3BlcmF0aW9uX2lkPjogYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byB0aGUgTDxvcGVyYXRpb25JZHxodHRwczovL2xlYXJuLm9wZW5hcGlzLm9yZy9zcGVjaWZpY2F0aW9uL3BhdGhzLmh0bWwjdGhlLWVuZHBvaW50cy1saXN0PiBhdCBhIHBhcnRpY3VsYXIgcGF0aC10ZW1wbGF0ZSBhbmQgSFRUUCBsb2NhdGlvbiB1bmRlciBDPC9wYXRocz4KCj1pdGVtICoKCkM8cGF0aF9jYXB0dXJlcz46IGEgaGFzaHJlZiBtYXBwaW5nIHBsYWNlaG9sZGVycyBpbiB0aGUgcGF0aCB0byB0aGVpciBhY3R1YWwgdmFsdWVzIGluIHRoZSByZXF1ZXN0IFVSSQoKPWl0ZW0gKgoKQzxtZXRob2Q+OiB0aGUgSFRUUCBtZXRob2QgdXNlZCBieSB0aGUgcmVxdWVzdCAodXNlZCBjYXNlLWluc2Vuc2l0aXZlbHkpCgo9YmFjawoKQWxsIG9mIHRoZXNlIHZhbHVlcyBhcmUgb3B0aW9uYWwgKHVubGVzcyBDPHJlcXVlc3Q+IGlzIG9taXR0ZWQpLCBhbmQgd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlCnJlcXVlc3QgVVJJIGFzIG5lZWRlZCAoYWxiZWl0IGxlc3MKZWZmaWNpZW50bHkgdGhhbiBpZiB0aGV5IHdlcmUgcHJvdmlkZWQpLiBBbGwgcGFzc2VkLWluIHZhbHVlcyBNVVNUIGJlIGNvbnNpc3RlbnQgd2l0aCBlYWNoIG90aGVyIGFuZAp0aGUgcmVxdWVzdCBVUkkuCgpXaGVuIHN1Y2Nlc3NmdWwsIHRoZSBvcHRpb25zIGhhc2ggd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCBrZXlzIEM8cGF0aF90ZW1wbGF0ZT4sIEM8cGF0aF9jYXB0dXJlcz4sCkM8bWV0aG9kPiwgYW5kIEM8b3BlcmF0aW9uX2lkPiwKYW5kIHRoZSByZXR1cm4gdmFsdWUgaXMgdHJ1ZS4KV2hlbiBub3Qgc3VjY2Vzc2Z1bCwgdGhlIG9wdGlvbnMgaGFzaCB3aWxsIGJlIHBvcHVsYXRlZCB3aXRoIGtleSBDPGVycm9ycz4sIGFuIGFycmF5cmVmIGNvbnRhaW5pbmcKYSBMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpFcnJvcj4gb2JqZWN0LCBhbmQgdGhlIHJldHVybiB2YWx1ZSBpcyBmYWxzZS4gT3RoZXIgdmFsdWVzIG1heSBhbHNvIGJlCnBvcHVsYXRlZCBpZiB0aGV5IGNhbiBiZSBzdWNjZXNzZnVsbHkgY2FsY3VsYXRlZC4KCkluIGFkZGl0aW9uLCB0aGVzZSB2YWx1ZXMgYXJlIHBvcHVsYXRlZCBpbiB0aGUgb3B0aW9ucyBoYXNoICh3aGVuIGF2YWlsYWJsZSk6Cgo9b3ZlciA0Cgo9aXRlbSAqCgpDPG9wZXJhdGlvbl91cmk+OiBhIFVSSSBpbmRpY2F0aW5nIHRoZSBkb2N1bWVudCBsb2NhdGlvbiBvZiB0aGUgb3BlcmF0aW9uIG9iamVjdCBmb3IgdGhlIHJlcXVlc3QsIGFmdGVyIGZvbGxvd2luZyBhbnkgcmVmZXJlbmNlcyAodXN1YWxseSBzb21ldGhpbmcgdW5kZXIgQzwvcGF0aHMvPiwgYnV0IG1heSBiZSBpbiBhbm90aGVyIGRvY3VtZW50KS4gVXNlIEM8PCAkb3BlbmFwaS0+ZXZhbHVhdG9yLT5nZXQoJHVyaSkgPj4gdG8gZmV0Y2ggdGhpcyBjb250ZW50IChzZWUgTDxKU09OOjpTY2hlbWE6Ok1vZGVybi9nZXQ+KS4gTm90ZSB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgQzw8ICRvcGVuYXBpLT5yZWN1cnNpdmVfZ2V0KE1vam86OlVSTC0+bmV3LT5mcmFnbWVudChKU09OOjpTY2hlbWE6Ok1vZGVybjo6VXRpbGl0aWVzOjpqc29ucCgnL3BhdGhzJywgJG9wdGlvbnMtPntwYXRoX3RlbXBsYXRlfXskb3B0aW9ucy0+e21ldGhvZH19KSkpID4+LiAoU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhbiBvcGVyYXRpb24gYXQgTDxodHRwczovL2xlYXJuLm9wZW5hcGlzLm9yZy9zcGVjaWZpY2F0aW9uL3BhdGhzLmh0bWwjdGhlLWVuZHBvaW50cy1saXN0PiBvciBpbiB0aGUgc3BlY2lmaWNhdGlvbiBhdCBMPMKnNC44LjEwIG9mIHRoZSBzcGVjaWZpY2F0aW9ufGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0Pi4pCgo9aXRlbSAqCgpDPHJlcXVlc3Q+IChub3QgbmVjZXNzYXJpbHkgd2hhdCB3YXMgcGFzc2VkIGluOiB0aGlzIGlzIGFsd2F5cyBhIEw8TW9qbzo6TWVzc2FnZTo6UmVxdWVzdD4pCgo9YmFjawoKWW91IGNhbiBmaW5kIHRoZSBhc3NvY2lhdGVkIG9wZXJhdGlvbiBvYmplY3QgYnkgdXNpbmcgZWl0aGVyIEM8b3BlcmF0aW9uX3VyaT4sCm9yIGJ5IGNhbGxpbmcgQzw8ICRvcGVuYXBpLT5vcGVuYXBpX2RvY3VtZW50LT5nZXRfb3BlcmF0aW9uSWRfcGF0aCgkb3BlcmF0aW9uX2lkKSA+Pgooc2VlIEw8SlNPTjo6U2NoZW1hOjpNb2Rlcm46OkRvY3VtZW50OjpPcGVuQVBJL2dldF9vcGVyYXRpb25JZF9wYXRoPikgKG5vdGUgdGhhdCB0aGUgbGF0dGVyIHdpbGwKYmUgcmVtb3ZlZCBpbiBhIHN1YnNlcXVlbnQgcmVsZWFzZSwgaW4gb3JkZXIgdG8gc3VwcG9ydCBvcGVyYXRpb25zIGV4aXN0aW5nIGluIG90aGVyIGRvY3VtZW50cykuCgpOb3RlIHRoYXQgdGhlIEw8Qzwvc2VydmVycz58aHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3NlcnZlci1vYmplY3Q+IHNlY3Rpb24gb2YgdGhlCk9wZW5BUEkgZG9jdW1lbnQgaXMgbm90IHVzZWQgZm9yIHBhdGggbWF0Y2hpbmcgYXQgdGhpcyB0aW1lLCBmb3IgZWl0aGVyIHNjaGVtZSBhbmQgaG9zdCBtYXRjaGluZyBub3IKcGF0aCBwcmVmaXhlcy4gRm9yIG5vdywgaWYgeW91IHVzZSBhIHBhdGggcHJlZml4IGluIEM8c2VydmVycz4gZW50cmllcyB5b3Ugd2lsbCBuZWVkIHRvIGFkZCB0aGlzIHRvCnRoZSBwYXRoIHRlbXBsYXRlcyB1bmRlciBgL3BhdGhzYC4KCj1oZWFkMiByZWN1cnNpdmVfZ2V0CgpHaXZlbiBhIHVyaSBvciB1cmktcmVmZXJlbmNlLCBnZXQgdGhlIGRlZmluaXRpb24gYXQgdGhhdCBsb2NhdGlvbiwgZm9sbG93aW5nIGFueSBDPCRyZWY+cyBhbG9uZyB0aGUKd2F5LiBJbmNsdWRlIHRoZSBleHBlY3RlZCBkZWZpbml0aW9uIHR5cGUKKG9uZSBvZiBDPHNjaGVtYT4sIEM8cmVzcG9uc2U+LCBDPHBhcmFtZXRlcj4sIEM8ZXhhbXBsZT4sIEM8cmVxdWVzdC1ib2R5PiwgQzxoZWFkZXI+LApDPHNlY3VyaXR5LXNjaGVtZT4sIEM8bGluaz4sIEM8Y2FsbGJhY2tzPiwgb3IgQzxwYXRoLWl0ZW0+KQpmb3IgdmFsaWRhdGlvbiBvZiB0aGUgZW50aXJlIHJlZmVyZW5jZSBjaGFpbi4KClJldHVybnMgdGhlIGRhdGEgaW4gc2NhbGFyIGNvbnRleHQsIG9yIGEgdHVwbGUgb2YgdGhlIGRhdGEgYW5kIHRoZSBjYW5vbmljYWwgVVJJIG9mIHRoZQpyZWZlcmVuY2VkIGxvY2F0aW9uIGluIGxpc3QgY29udGV4dC4KCklmIHRoZSBwcm92aWRlZCBsb2NhdGlvbiBpcyByZWxhdGl2ZSwgdGhlIG1haW4gb3BlbmFwaSBkb2N1bWVudCBpcyB1c2VkIGZvciB0aGUgYmFzZSBVUkkuCklmIHlvdSBoYXZlIGEgbG9jYWwganNvbiBwb2ludGVyIHlvdSB3YW50IHRvIHJlc29sdmUsIHlvdSBjYW4gdHVybiBpdCBpbnRvIGEgdXJpLXJlZmVyZW5jZSBieQpwcmVwZW5kaW5nIEM8Iz4uCgogIG15ICRzY2hlbWEgPSAkb3BlbmFwaS0+cmVjdXJzaXZlX2dldCgnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvQ29udGVudC1FbmNvZGluZycsICdwYXJhbWV0ZXInKTsKCiAgIyBzdGFydHMgd2l0aCBhIEpTT046OlNjaGVtYTo6TW9kZXJuIG9iamVjdCAoVE9ETykKICBteSAkc2NoZW1hID0gJGpzLT5yZWN1cnNpdmVfZ2V0KCdodHRwczovLy9vcGVuYXBpX2RvYy55YW1sIy9jb21wb25lbnRzL3NjaGVtYXMvbXlfb2JqZWN0JykKICBteSAkc2NoZW1hID0gJGpzLT5yZWN1cnNpdmVfZ2V0KCdodHRwczovL2xvY2FsaG9zdDoxMjM0L215X3NwZWMjLyRkZWZzL215X29iamVjdCcpCgo9aGVhZDIgY2Fub25pY2FsX3VyaQoKQW4gYWNjZXNzb3IgdGhhdCBkZWxlZ2F0ZXMgdG8gTDxKU09OOjpTY2hlbWE6Ok1vZGVybjo6RG9jdW1lbnQvY2Fub25pY2FsX3VyaT4uCgo9aGVhZDIgc2NoZW1hCgpBbiBhY2Nlc3NvciB0aGF0IGRlbGVnYXRlcyB0byBMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpEb2N1bWVudC9zY2hlbWE+LgoKPWhlYWQyIGdldF9tZWRpYV90eXBlCgpBbiBhY2Nlc3NvciB0aGF0IGRlbGVnYXRlcyB0byBMPEpTT046OlNjaGVtYTo6TW9kZXJuL2dldF9tZWRpYV90eXBlPi4KCj1oZWFkMiBhZGRfbWVkaWFfdHlwZQoKQSBzZXR0ZXIgdGhhdCBkZWxlZ2F0ZXMgdG8gTDxKU09OOjpTY2hlbWE6Ok1vZGVybi9hZGRfbWVkaWFfdHlwZT4uCgo9aGVhZDEgQ0FDSElORwoKPWZvciBzdG9wd29yZHMgcHJlZm9ya2luZwoKVmVyeSBsYXJnZSBPcGVuQVBJIGRvY3VtZW50cyBtYXkgdGFrZSBhIG5vdGljZWFibGUgdGltZSB0byBiZQpsb2FkZWQgYW5kIHBhcnNlZC4gWW91IGNhbiByZWR1Y2UgdGhlIGltcGFjdCB0byB5b3VyIHByZWZvcmtpbmcgYXBwbGljYXRpb24gYnkgbG9hZGluZyBhbGwgbmVjZXNzYXJ5CmRvY3VtZW50cyBhdCBzdGFydHVwLCBhbmQgaW1wYWN0IGNhbiBiZSBmdXJ0aGVyIHJlZHVjZWQgYnkgc2F2aW5nIG9iamVjdHMgdG8gY2FjaGUgYW5kIHRoZW4KcmVsb2FkaW5nIHRoZW0gKHBlcmhhcHMgYnkgdXNpbmcgYSB0aW1lc3RhbXAgb3IgY2hlY2tzdW0gdG8gZGV0ZXJtaW5lIGlmIGEgZnJlc2ggcmVsb2FkIGlzIG5lZWRlZCkuCgogIHN1YiBnZXRfb3BlbmFwaSAoLi4uKSB7CiAgICBteSAkc2VyaWFsaXplZF9maWxlID0gUGF0aDo6VGlueTo6cGF0aCgkc2VyaWFsaXplZF9maWxlbmFtZSk7CiAgICBteSAkb3BlbmFwaV9maWxlID0gUGF0aDo6VGlueTo6cGF0aCgkb3BlbmFwaV9maWxlbmFtZSk7CiAgICBteSAkb3BlbmFwaTsKICAgIGlmICgkc2VyaWFsaXplZF9maWxlLT5zdGF0LT5tdGltZSA8ICRvcGVuYXBpX2ZpbGUtPnN0YXQtPm10aW1lKSkgewogICAgICAkb3BlbmFwaSA9IE9wZW5BUEk6Ok1vZGVybi0+bmV3KAogICAgICAgIG9wZW5hcGlfdXJpID0+ICcvYXBpJywKICAgICAgICBvcGVuYXBpX3NjaGVtYSA9PiBkZWNvZGVfanNvbigkb3BlbmFwaV9maWxlLT5zbHVycF9yYXcpLCAjIHlvdXIgb3BlbmFwaSBkb2N1bWVudAogICAgICApOwogICAgICAkb3BlbmFwaS0+ZXZhbHVhdG9yLT5hZGRfc2NoZW1hKGRlY29kZV9qc29uKC4uLikpOyAgIyBhbnkgb3RoZXIgbmVlZGVkIHNjaGVtYXMKICAgICAgbXkgJGZyb3plbiA9IFNlcmVhbDo6RW5jb2Rlci0+bmV3KHsgZnJlZXplX2NhbGxiYWNrcyA9PiAxIH0pLT5lbmNvZGUoJG9wZW5hcGkpOwogICAgICAkc2VyaWFsaXplZF9maWxlLT5zcGV3X3JhdygkZnJvemVuKTsKICAgIH0KICAgIGVsc2UgewogICAgICBteSAkZnJvemVuID0gJHNlcmlhbGl6ZWRfZmlsZS0+c2x1cnBfcmF3OwogICAgICAkb3BlbmFwaSA9IFNlcmVhbDo6RGVjb2Rlci0+bmV3LT5kZWNvZGUoJGZyb3plbik7CiAgICB9CgogICAgIyBhZGQgY3VzdG9tIGZvcm1hdCB2YWxpZGF0aW9ucywgbWVkaWEgdHlwZXMgYW5kIGVuY29kaW5ncyBoZXJlCiAgICAkb3BlbmFwaS0+ZXZhbHVhdG9yLT5hZGRfbWVkaWFfdHlwZSguLi4pOwoKICAgIHJldHVybiAkb3BlbmFwaTsKICB9CgpTZWUgYWxzbyBMPEpTT046OlNjaGVtYTo6TW9kZXJuL0NBQ0hJTkc+LgoKPWhlYWQxIE9OIFRIRSBVU0UgT0YgSlNPTiBTQ0hFTUFTCgpFbWJlZGRlZCBKU09OIFNjaGVtYXMsIHRocm91Z2ggdGhlIHVzZSBvZiB0aGUgQzxzY2hlbWE+IGtleXdvcmQsIGFyZSBmdWxseSBkcmFmdDIwMjAtMTItY29tcGxpYW50LAphcyBwZXIgdGhlIHNwZWMsIGFuZCBpbXBsZW1lbnRlZCB3aXRoIEw8SlNPTjo6U2NoZW1hOjpNb2Rlcm4+LiBVbmxlc3Mgb3ZlcnJpZGRlbiB3aXRoIHRoZSB1c2Ugb2YgdGhlCkw8anNvblNjaGVtYURpYWxlY3R8aHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3NwZWNpZnlpbmctc2NoZW1hLWRpYWxlY3RzPiBrZXl3b3JkLCB0aGVpcgptZXRhc2NoZW1hIGlzIEw8aHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvMy4xL2RpYWxlY3QvYmFzZT4sIHdoaWNoIGFsbG93cyBmb3IgdXNlIG9mIHRoZQpPcGVuQVBJLXNwZWNpZmljIGtleXdvcmRzIChDPGRpc2NyaW1pbmF0b3I+LCBDPHhtbD4sIEM8ZXh0ZXJuYWxEb2NzPiwgYW5kIEM8ZXhhbXBsZT4pLCBhcyBkZWZpbmVkIGluCkw8dGhlIHNwZWNpZmljYXRpb24vaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3NjaGVtYS1vYmplY3Q+LiBGb3JtYXQgdmFsaWRhdGlvbiBpcyB0dXJuZWQKQjxvbj4sIGFuZCB0aGUgdXNlIG9mIGNvbnRlbnQqIGtleXdvcmRzIGlzIG9mZiAoc2VlCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm4vdmFsaWRhdGVfY29udGVudF9zY2hlbWFzPikuCgpSZWZlcmVuY2VzICh3aXRoIHRoZSBDPCRyZWY+KSBrZXl3b3JkIG1heSByZWZlcmVuY2UgYW55IHBvc2l0aW9uIHdpdGhpbiB0aGUgZW50aXJlIE9wZW5BUEkgZG9jdW1lbnQ7CmFzIHN1Y2gsIGpzb24gcG9pbnRlcnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBCPHJvb3Q+IG9mIHRoZSBkb2N1bWVudCwgbm90IHRoZSByb290IG9mIHRoZSBzdWJzY2hlbWEKaXRzZWxmLiBSZWZlcmVuY2VzIHRvIG90aGVyIGRvY3VtZW50cyBhcmUgYWxzbyBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRob3NlIGRvY3VtZW50cyBoYXZlIGJlZW4gbG9hZGVkCmludG8gdGhlIGV2YWx1YXRvciBpbiBhZHZhbmNlIChzZWUgTDxKU09OOjpTY2hlbWE6Ok1vZGVybi9hZGRfc2NoZW1hPikuCgpWYWx1ZXMgYXJlIGdlbmVyYWxseSB0cmVhdGVkIGFzIHN0cmluZ3MgZm9yIHRoZSBwdXJwb3NlIG9mIHNjaGVtYSBldmFsdWF0aW9uLiBIb3dldmVyLCBpZiB0aGUgdG9wCmxldmVsIG9mIHRoZSBzY2hlbWEgY29udGFpbnMgQzwidHlwZSI6ICJudW1iZXIiPiBvciBDPCJ0eXBlIjogImludGVnZXIiPiwgdGhlbiB0aGUgdmFsdWUgd2lsbCBiZQooYXR0ZW1wdGVkIHRvIGJlKSBjb2VyY2VkIGludG8gYSBudW1iZXIgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgSlNPTiBTY2hlbWEgZXZhbHVhdG9yLgpUeXBlIGNvZXJjaW9uIHdpbGwgQjxub3Q+IGJlIGRvbmUgaWYgdGhlIEM8dHlwZT4ga2V5d29yZCBpcyBvbWl0dGVkLgpUaGlzIGxldHMgeW91IHVzZSBudW1lcmljIGtleXdvcmRzIHN1Y2ggYXMgQzxtYXhpbXVtPiBhbmQgQzxtdWx0aXBsZU9mPiBpbiB5b3VyIHNjaGVtYXMuCkl0IGFsc28gcmVzb2x2ZXMgaW5jb25zaXN0ZW5jaWVzIHRoYXQgY2FuIGFyaXNlIHdoZW4gcmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0cyBhcmUgY3JlYXRlZAptYW51YWxseSBpbiBhIHRlc3QgZW52aXJvbm1lbnQgKGFzIG9wcG9zZWQgdG8gYmVpbmcgcGFyc2VkIGZyb20gaW5jb21pbmcgbmV0d29yayB0cmFmZmljKSBhbmQgY2FuCnRoZXJlZm9yZSBpbmFkdmVydGVudGx5IGNvbnRhaW4gcGVybGlzaCBudW1iZXJzIHJhdGhlciB0aGFuIHN0cmluZ3MuCgo9aGVhZDEgTElNSVRBVElPTlMKCkFsbCBtZXNzYWdlIHZhbGlkYXRpb24gaXMgZG9uZSB1c2luZyBMPE1vam9saWNpb3VzPiBvYmplY3RzIChMPE1vam86Ok1lc3NhZ2U6OlJlcXVlc3Q+IGFuZApMPE1vam86Ok1lc3NhZ2U6OlJlc3BvbnNlPikuIElmIG1lc3NhZ2VzIG9mIG90aGVyIHR5cGVzIGFyZSBwYXNzZWQsIGNvbnZlcnNpb24gaXMgZG9uZSBvbiBhCmJlc3QtZWZmb3J0IGJhc2lzLCBidXQgc2luY2UgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBoYXZlIGRpZmZlcmVudCBsZXZlbHMgb2YgYWRoZXJlbmNlIHRvIHRoZSBSRkMKc3BlY3MsIHNvbWUgdmFsaWRhdGlvbiBlcnJvcnMgbWF5IG9jY3VyIGUuZy4gaWYgYSBjZXJ0YWluIHJlcXVpcmVkIGhlYWRlciBpcyBtaXNzaW5nIG9uIHRoZQpvcmlnaW5hbC4gRm9yIGJlc3QgcmVzdWx0cyBpbiB2YWxpZGF0aW5nIHJlYWwgbWVzc2FnZXMgZnJvbSB0aGUgbmV0d29yaywgcGFyc2UgdGhlbSBkaXJlY3RseSBpbnRvCk1vam9saWNpb3VzIG1lc3NhZ2VzIChzZWUgTDxNb2pvOjpNZXNzYWdlL3BhcnNlPikuCgpPbmx5IGNlcnRhaW4gcGVybXV0YXRpb25zIG9mIE9wZW5BUEkgZG9jdW1lbnRzIGFyZSBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lOgoKPW92ZXIgNAoKPWl0ZW0gKgoKZm9yIHBhdGggcGFyYW1ldGVycywgb25seSBDPHN0eWxlOiBzaW1wbGU+IGFuZCBDPGV4cGxvZGU6IGZhbHNlPiBpcyBzdXBwb3J0ZWQKCj1pdGVtICoKCmZvciBxdWVyeSBwYXJhbWV0ZXJzLCBvbmx5IEM8c3R5bGU6IGZvcm0+IGFuZCBDPGV4cGxvZGU6IHRydWU+IGlzIHN1cHBvcnRlZCwgb25seSB0aGUgZmlyc3QgdmFsdWUgb2YgZWFjaCBwYXJhbWV0ZXIgbmFtZSBpcyBjb25zaWRlcmVkLCBhbmQgQzxhbGxvd0VtcHR5VmFsdWU+IGFuZCBDPGFsbG93UmVzZXJ2ZWQ+IGFyZSBub3QgY2hlY2tlZAoKPWl0ZW0gKgoKY29va2llIHBhcmFtZXRlcnMgYXJlIG5vdCBjaGVja2VkIGF0IGFsbCB5ZXQKCj1pdGVtICoKCkM8YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkPiBhbmQgQzxtdWx0aXBhcnQvKj4gbWVzc2FnZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkCgo9YmFjawoKPWhlYWQxIFNFRSBBTFNPCgo9b3ZlciA0Cgo9aXRlbSAqCgpMPE1vam9saWNpb3VzOjpQbHVnaW46Ok9wZW5BUEk6Ok1vZGVybj4KCj1pdGVtICoKCkw8VGVzdDo6TW9qbzo6Um9sZTo6T3BlbkFQSTo6TW9kZXJuPgoKPWl0ZW0gKgoKTDxKU09OOjpTY2hlbWE6Ok1vZGVybjo6RG9jdW1lbnQ6Ok9wZW5BUEk+Cgo9aXRlbSAqCgpMPEpTT046OlNjaGVtYTo6TW9kZXJuPgoKPWl0ZW0gKgoKTDxodHRwczovL2pzb24tc2NoZW1hLm9yZz4KCj1pdGVtICoKCkw8aHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLz4KCj1pdGVtICoKCkw8aHR0cHM6Ly9sZWFybi5vcGVuYXBpcy5vcmcvPgoKPWl0ZW0gKgoKTDxodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjA+Cgo9YmFjawoKPWhlYWQxIFNVUFBPUlQKCkJ1Z3MgbWF5IGJlIHN1Ym1pdHRlZCB0aHJvdWdoIEw8aHR0cHM6Ly9naXRodWIuY29tL2thcmVuZXRoZXJpZGdlL09wZW5BUEktTW9kZXJuL2lzc3Vlcz4uCgpJIGFtIGFsc28gdXN1YWxseSBhY3RpdmUgb24gaXJjLCBhcyAnZXRoZXInIGF0IEM8aXJjLnBlcmwub3JnPiBhbmQgQzxpcmMubGliZXJhLmNoYXQ+LgoKPWZvciBzdG9wd29yZHMgT3BlbkFQSQoKWW91IGNhbiBhbHNvIGZpbmQgbWUgb24gdGhlIEw8SlNPTiBTY2hlbWEgU2xhY2sgc2VydmVyfGh0dHBzOi8vanNvbi1zY2hlbWEuc2xhY2suY29tPiBhbmQgTDxPcGVuQVBJClNsYWNrIHNlcnZlcnxodHRwczovL29wZW4tYXBpLnNsYWNrLmNvbT4sIHdoaWNoIGFyZSBhbHNvIGdyZWF0IHJlc291cmNlcyBmb3IgZmluZGluZyBoZWxwLgoKPWhlYWQxIEFVVEhPUgoKS2FyZW4gRXRoZXJpZGdlIDxldGhlckBjcGFuLm9yZz4KCj1oZWFkMSBDT1BZUklHSFQgQU5EIExJQ0VOQ0UKClRoaXMgc29mdHdhcmUgaXMgY29weXJpZ2h0IChjKSAyMDIxIGJ5IEthcmVuIEV0aGVyaWRnZS4KClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgp0aGUgc2FtZSB0ZXJtcyBhcyB0aGUgUGVybCA1IHByb2dyYW1taW5nIGxhbmd1YWdlIHN5c3RlbSBpdHNlbGYuCgpTb21lIHNjaGVtYSBmaWxlcyBoYXZlIHRoZWlyIG93biBsaWNlbmNlLCBpbiBzaGFyZS9vYXMvTElDRU5TRS4KCj1jdXQK readmeEtag: '"714a3b9616b6adbb563272a54983e4581baada99"' readmeLastModified: Sat, 27 Jul 2024 23:56:28 GMT repositoryId: 422955010 description: Validate HTTP requests and responses against an OpenAPI v3.1 document created: '2021-10-30T18:01:46Z' updated: '2024-07-27T23:56:34Z' language: Perl archived: false stars: 3 watchers: 4 forks: 3 owner: karenetheridge logo: https://avatars.githubusercontent.com/u/303051?v=4 license: NOASSERTION repoEtag: '"382d6acb418f9b3294ac0fd0c909072ce38995bbeae366e8da9fbc85a2ff57f8"' repoLastModified: Sat, 27 Jul 2024 23:56:34 GMT foundInMaster: true - source: https://openapi.tools/ name: OpenAPI Qraft category: - Code Generators - SDK repository: https://github.com/openapi-qraft/openapi-qraft link: https://openapi-qraft.github.io/openapi-qraft/ language: TypeScript source_description: >- Generate a type-safe TanStack Query client for React from an OpenAPI Document. v2: false v3: true v3_1: true id: c65f9ae24d4cb8721415a8b3b513cce4 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFFyYWZ0CgpUaGlzIHJlcG9zaXRvcnkgaG91c2VzIHRoZSBPcGVuQVBJIFFyYWZ0IHRvb2xzLCBkZXNpZ25lZCB0byBlbmhhbmNlIHRoZSBkZXZlbG9wbWVudCBleHBlcmllbmNlIGJ5IHByb3ZpZGluZwpnZW5lcmF0ZWQgdHlwZXNhZmUgVGFuc3RhY2sgUXVlcnkgd3JhcHBlci4KCiMjIPCfk6YgUGFja2FnZXMKCiMjIyBbYEBvcGVuYXBpLXFyYWZ0L2NsaWAg8J+Ul10oLi9wYWNrYWdlcy9jbGkvUkVBRE1FLm1kKQoKQSBwb3dlcmZ1bCBjb21tYW5kLWxpbmUgdXRpbGl0eSBmb3IgZ2VuZXJhdGluZyBzZXJ2aWNlIGRlY2xhcmF0aW9ucyBhbmQgdHlwZWQgKipUYW5zdGFjayBRdWVyeSoqIGludGVyZmFjZXMgZGlyZWN0bHkgZnJvbSBhbgoqKk9wZW5BUEkgU2NoZW1hKiouCgpbUmVhZCBNb3JlXSguL3BhY2thZ2VzL2NsaS9SRUFETUUubWQpCgojIyMgW2BAb3BlbmFwaS1xcmFmdC9yZWFjdGAg8J+Ul10oLi9wYWNrYWdlcy9yZWFjdC1jbGllbnQvUkVBRE1FLm1kKQoKQSBtb2R1bGFyICoqVHlwZVNjcmlwdCoqIGNsaWVudCB0aGF0IGZhY2lsaXRhdGVzIHR5cGUtc2FmZSBBUEkgcmVxdWVzdHMgaW4gUmVhY3QgYXBwbGljYXRpb25zLCBsZXZlcmFnaW5nICoqVGFuc3RhY2sgUXVlcnkqKi4gSXQKdXNlcyBhIFByb3h5LWJhc2VkIGFyY2hpdGVjdHVyZSB0byBkeW5hbWljYWxseSBjYWxsICoqUmVhY3QgSG9va3Mgd2l0aCB0eXBlZCBwYXJhbWV0ZXJzKiouCgoqKk1haW4gRmVhdHVyZXM6KioKCi0gVHlwZS1zYWZlIEFQSSBSZXF1ZXN0cwotIER5bmFtaWMgUHJveHktQmFzZWQgSG9va3MgZm9yIFRhbnN0YWNrIFJlYWN0IFF1ZXJ5Ci0gU2FmZSBhbmQgY29tcGF0aWJsZSBpbnRlZ3JhdGlvbiB3aXRoIFRhbnN0YWNrIFF1ZXJ5CgpbUmVhZCBNb3JlXSguL3BhY2thZ2VzL3JlYWN0LWNsaWVudC9SRUFETUUubWQpCgojIyDwn6SdIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyB0byB0aGUgT3BlbkFQSSBRcmFmdCBhcmUgaGlnaGx5IGFwcHJlY2lhdGVkLiBXaGV0aGVyIGl0J3MgaW1wcm92aW5nIGRvY3VtZW50YXRpb24sIGFkZGluZyBuZXcKZmVhdHVyZXMsIG9yIHJlcG9ydGluZyBpc3N1ZXMsIHlvdXIgaGVscCBtYWtlcyBhIGJpZyBkaWZmZXJlbmNlIGluIG1ha2luZyB0aGVzZSB0b29scyBiZXR0ZXIgZm9yIGV2ZXJ5b25lLgoKIyMg8J+ThCBMaWNlbnNlCgpBbGwgcGFja2FnZXMgd2l0aGluIHRoaXMgcmVwb3NpdG9yeSBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIFtNSVQgTGljZW5zZV0oLi9MSUNFTlNFLnR4dCkuCg== readmeEtag: '"933567eb5db89280aa928ff4d556e5ce36cb76c0"' readmeLastModified: Fri, 16 Aug 2024 22:04:35 GMT repositoryId: 755634410 description: >- Generate a type-safe TanStack Query React ✨ client from your OpenAPI document created: '2024-02-10T19:15:33Z' updated: '2024-09-05T23:35:40Z' language: TypeScript archived: false stars: 28 watchers: 1 forks: 3 owner: OpenAPI-Qraft logo: https://avatars.githubusercontent.com/u/159651230?v=4 license: MIT repoEtag: '"25dcfc17271defa87492794f5dd624c7c7a7e2a13048008d5f0158625f9be319"' repoLastModified: Thu, 05 Sep 2024 23:35:40 GMT foundInMaster: true - source: https://openapi.tools/ name: Mojolicious::Plugin::OpenAPI::Modern category: Server repository: https://github.com/karenetheridge/mojolicious-plugin-openapi-modern link: https://metacpan.org/dist/Mojolicious-Plugin-OpenAPI-Modern language: Perl source_description: Mojolicious plugin for OpenAPI::Modern v3_1: true id: 77699d6a49674ab7e178a8ff8bafb2b2 repositoryMetadata: base64Readme: >- PXBvZAoKPWVuY29kaW5nIFVURi04Cgo9aGVhZDEgTkFNRQoKTW9qb2xpY2lvdXM6OlBsdWdpbjo6T3BlbkFQSTo6TW9kZXJuIC0gTW9qb2xpY2lvdXMgcGx1Z2luIHByb3ZpZGluZyBhY2Nlc3MgdG8gYW4gT3BlbkFQSSBkb2N1bWVudCBhbmQgcGFyc2VyCgo9aGVhZDEgVkVSU0lPTgoKdmVyc2lvbiAwLjAxMQoKPWhlYWQxIFNZTk9QU0lTCgogICRhcHAtPmNvbmZpZyh7CiAgICBvcGVuYXBpID0+IHsKICAgICAgZG9jdW1lbnRfZmlsZW5hbWUgPT4gJ2RhdGEvb3BlbmFwaS55YW1sJywKICAgICAgYWZ0ZXJfcmVzcG9uc2UgPT4gc3ViICgkYykgeyAuLi4gfSwKICAgIH0sCiAgICAuLi4KICB9KTsKCiAgJGFwcC0+cGx1Z2luKCdPcGVuQVBJOjpNb2Rlcm4nLCAkYXBwLT5jb25maWctPntvcGVuYXBpfSk7CgogICMgaW4gYSBjb250cm9sbGVyLi4uCiAgbXkgJHJlc3VsdCA9ICRjLT5vcGVuYXBpLT52YWxpZGF0ZV9yZXF1ZXN0KCRjLT5yZXEpOwoKPWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIEw8TW9qb2xpY2lvdXM+IHBsdWdpbiBtYWtlcyBhbiBMPE9wZW5BUEk6Ok1vZGVybj4gb2JqZWN0IGF2YWlsYWJsZSB0byB0aGUgYXBwbGljYXRpb24uCgpUaGVyZSBhcmUgbWFueSBmZWF0dXJlcyB0byBjb21lLgoKPWZvciBzdG9wd29yZHMgb3BlbmFwaSBvcGVyYXRpb25JZCBzdWJyZWYKCj1oZWFkMSBDT05GSUdVUkFUSU9OIE9QVElPTlMKCj1oZWFkMiBzY2hlbWEKClRoZSBsaXRlcmFsLCB1bmJsZXNzZWQgUGVybCBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBPcGVuQVBJIGRvY3VtZW50LiBTZWUKTDxPcGVuQVBJOjpNb2Rlcm4vb3BlbmFwaV9zY2hlbWE+OyBwYXNzZWQgdG8gdGhlIEw8T3BlbkFQSTo6TW9kZXJuPiBjb25zdHJ1Y3Rvci4KT25seSB1c2VkIGlmIEw8L29wZW5hcGlfb2JqPiBpcyBub3QgcHJvdmlkZWQuCgo9aGVhZDIgZG9jdW1lbnRfZmlsZW5hbWUKCkEgZmlsZW5hbWUgaW5kaWNhdGluZyBmcm9tIHdoZXJlIHRvIGxvYWQgdGhlIE9wZW5BUEkgZG9jdW1lbnQuIFN1cHBvcnRzIFlBTUwgYW5kIGpzb24gZmlsZSBmb3JtYXRzLgpPbmx5IHVzZWQgaWYgTDwvc2NoZW1hPiBpcyBub3QgcHJvdmlkZWQ7IGFsc28gcGFzc2VkIHRvIHRoZSBMPE9wZW5BUEk6Ok1vZGVybj4gY29uc3RydWN0b3IgYXMKQzxvcGVuYXBpX3VyaT4uIE9ubHkgdXNlZCBpZiBMPC9vcGVuYXBpX29iaj4gaXMgbm90IHByb3ZpZGVkLgoKPWhlYWQyIG9wZW5hcGlfb2JqCgpBbiBMPE9wZW5BUEk6Ok1vZGVybj4gb2JqZWN0IHRvIHVzZQoKPWhlYWQyIGFmdGVyX3Jlc3BvbnNlCgpBIHN1YnJlZiB3aGljaCBydW5zIGFmdGVyIHRoZSByZXNwb25zZSBoYXMgYmVlbiBmaW5hbGl6ZWQsIHRvIGFsbG93IHlvdSB0byBwZXJmb3JtIHZhbGlkYXRpb24gb24gaXQuCllvdSBCPG11c3Qgbm90PiBtdXRhdGUgdGhlIHJlc3BvbnNlIGhlcmUsIG5vciBzd2FwIGl0IG91dCBmb3IgYSBkaWZmZXJlbnQgcmVzcG9uc2UsIHNvIHVzZSB0aGlzIG9ubHkKZm9yIHRlbGVtZXRyeSBhbmQgbG9nZ2luZy4KCiAgbXkgJGFmdGVyX3Jlc3BvbnNlID0gc3ViICgkYykgewogICAgbXkgJHJlc3VsdCA9ICRjLT52YWxpZGF0ZV9yZXNwb25zZTsKICAgIGlmICgkcmVzdWx0KSB7CiAgICAgICRjLT5sb2ctPmRlYnVnKCdyZXNwb25zZSBpcyB2YWxpZCcpOwogICAgfQogICAgZWxzZSB7CiAgICAgICMgc2VlIEpTT046OlNjaGVtYTo6TW9kZXJuOjpSZXN1bHQgZm9yIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cwogICAgICAkYy0+bG9nLT5lcnJvcigicmVzcG9uc2UgaXMgaW52YWxpZDpcbiIsICRyZXN1bHQpOwogICAgfQogIH07Cgo9aGVhZDEgTUVUSE9EUwoKPWhlYWQyIHJlZ2lzdGVyCgpJbnN0YW50aWF0ZXMgYW4gTDxPcGVuQVBJOjpNb2Rlcm4+IG9iamVjdCBhbmQgcHJvdmlkZXMgYW4gYWNjZXNzb3IgdG8gaXQuCgo9aGVhZDEgSEVMUEVSUwoKVGhlc2UgbWV0aG9kcyBhcmUgbWFkZSBhdmFpbGFibGUgb24gdGhlIEM8JGM+IG9iamVjdCAodGhlIGludm9jYW50IG9mIGFsbCBjb250cm9sbGVyIG1ldGhvZHMsCmFuZCB0aGVyZWZvcmUgb3RoZXIgaGVscGVycykuCgo9aGVhZDIgb3BlbmFwaQoKVGhlIEw8T3BlbkFQSTo6TW9kZXJuPiBvYmplY3Q7IGl0IGhvbGRzIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGFuZCBpcyByZXVzZWQgYmV0d2VlbiByZXF1ZXN0cy4KCj1oZWFkMiB2YWxpZGF0ZV9yZXF1ZXN0CgogIG15ICRyZXN1bHQgPSAkYy0+b3BlbmFwaS0+dmFsaWRhdGVfcmVxdWVzdDsKClBhc3NlcyBDPDwgJGMtPnJlcSA+PiB0byBMPE9wZW5BUEk6Ok1vZGVybi92YWxpZGF0ZV9yZXF1ZXN0PiBhbmQgcmV0dXJucyBhCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm46OlJlc3VsdD4gb2JqZWN0LgoKTm90ZSB0aGF0IHRoZSBtYXRjaGluZyBMPE1vam86OlJvdXRlczo6Um91dGU+IG9iamVjdCBmb3IgdGhpcyByZXF1ZXN0IGlzIEk8bm90PiB1c2VkIHRvIGZpbmQgdGhlCk9wZW5BUEkgcGF0aC1pdGVtIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyByZXF1ZXN0OiBvbmx5IGluZm9ybWF0aW9uIGluIHRoZSByZXF1ZXN0IFVSSSBpdHNlbGYgaXMKdXNlZCAoYWx0aG91Z2ggc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgcm91dGUgbWF5IGJlIHVzZWQgaW4gZnV0dXJlIGZlYXR1cmVzKS4KCllvdSBtaWdodCB3YW50IHRvIGRlZmluZSBhbiBDPHVuZGVyPiByb3V0ZSBhY3Rpb24gdGhhdCBjYWxscyBDPHZhbGlkYXRlX3JlcXVlc3Q+IGFuZCBzaG9ydC1jaXJjdWl0cwp3aXRoIGFuIEhUVFAgNDAwIHJlc3BvbnNlIG9uIHZhbGlkYXRpb24gZmFpbHVyZS4KCj1oZWFkMiB2YWxpZGF0ZV9yZXNwb25zZQoKICBteSAkcmVzdWx0ID0gJGMtPm9wZW5hcGktPnZhbGlkYXRlX3Jlc3BvbnNlOwoKUGFzc2VzIEM8PCAkYy0+cmVzID4+IGFuZCBDPDwgJGMtPnJlcSA+PiB0byBMPE9wZW5BUEk6Ok1vZGVybi92YWxpZGF0ZV9yZXNwb25zZT4gYW5kIHJldHVybnMgYQpMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpSZXN1bHQ+IG9iamVjdC4KCkFzIHRoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIGluIHRoZSBwYXJ0cyBvZiB0aGUgZGlzcGF0Y2ggZmxvdyB3aGVyZSB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgYmVlbgpyZW5kZXJlZCBhbmQgZmluYWxpemVkLCBhIGhvb2sgaGFzIGJlZW4gc2V0IHVwIGZvciB5b3U7IHlvdSBjYW4gYWNjZXNzIGl0IGJ5IHByb3ZpZGluZyBhIHN1YnJlZiB0byB0aGUKTDwvYWZ0ZXJfcmVzcG9uc2U+IGNvbmZpZ3VyYXRpb24gdmFsdWU6CgogICRhcHAtPmNvbmZpZy0+e29wZW5hcGl9e2FmdGVyX3Jlc3BvbnNlfSAvLz0gc3ViICgkYykgewogICAgbXkgJHJlc3VsdCA9ICRjLT52YWxpZGF0ZV9yZXNwb25zZTsKICAgICMgLi4uIGRvIHNvbWV0aGluZyB3aXRoIHRoZSB2YWxpZGF0aW9uIHJlc3VsdAogIH07CgpOb3RlIHRoYXQgdGhlIG1hdGNoaW5nIEw8TW9qbzo6Um91dGVzOjpSb3V0ZT4gb2JqZWN0IGZvciB0aGlzIHJlcXVlc3QgaXMgSTxub3Q+IHVzZWQgdG8gZmluZCB0aGUKT3BlbkFQSSBwYXRoLWl0ZW0gdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIHJlcXVlc3QgYW5kIHJlc3BvbnNlOiBvbmx5IGluZm9ybWF0aW9uIGluIHRoZSByZXF1ZXN0IFVSSQppdHNlbGYgaXMgdXNlZCAoYWx0aG91Z2ggc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgcm91dGUgbWF5IGJlIHVzZWQgaW4gZnV0dXJlIGZlYXR1cmVzKS4KCj1oZWFkMSBTVEFTSCBWQUxVRVMKClRoaXMgcGx1Z2luIHN0b3JlcyBhbGwgaXRzIGRhdGEgdW5kZXIgdGhlIEM8b3BlbmFwaT4gaGFzaHJlZiwgZS5nLjoKCiAgbXkgJG9wZXJhdGlvbl9pZCA9ICRjLT5zdGFzaC0+e29wZW5hcGl9e29wZXJhdGlvbl9pZH07CgpLZXlzIHN0YXJ0aW5nIHdpdGggdW5kZXJzY29yZSBhcmUgZm9yIEk8aW50ZXJuYWwgdXNlIG9ubHk+IGFuZCBzaG91bGQgbm90IGJlIHJlbGllZCB1cG9uIHRvIGJlaGF2ZQpjb25zaXN0ZW50bHkgYWNyb3NzIHJlbGVhc2UgdmVyc2lvbnMuIFZhbHVlcyB0aGF0IG1heSBiZSB1c2VkIGJ5IGNvbnRyb2xsZXJzIGFuZCB0ZW1wbGF0ZXMgYXJlOgoKPW92ZXIgNAoKPWl0ZW0gKgoKQzxwYXRoX3RlbXBsYXRlPjogU2V0IGJ5IHRoZSBmaXJzdCBjYWxsIHRvIEw8L3ZhbGlkYXRlX3JlcXVlc3Q+IG9yIEw8L3ZhbGlkYXRlX3Jlc3BvbnNlPi4gQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZXF1ZXN0IFVSSSwgd2l0aCBwbGFjZWhvbGRlcnMgaW4gYnJhY2VzIChlLmcuIEM8L3BldHMve3BldElkfT4pOyBzZWUgTDxodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcGF0aHMtb2JqZWN0Pi4KCj1pdGVtICoKCkM8cGF0aF9jYXB0dXJlcz46IFNldCBieSB0aGUgZmlyc3QgY2FsbCB0byBMPC92YWxpZGF0ZV9yZXF1ZXN0PiBvciBMPC92YWxpZGF0ZV9yZXNwb25zZT4uIEEgaGFzaHJlZiBtYXBwaW5nIHBsYWNlaG9sZGVycyBpbiB0aGUgcGF0aCB0byB0aGVpciBhY3R1YWwgdmFsdWVzIGluIHRoZSByZXF1ZXN0IFVSSS4KCj1pdGVtICoKCkM8b3BlcmF0aW9uX2lkPjogU2V0IGJ5IHRoZSBmaXJzdCBjYWxsIHRvIEw8L3ZhbGlkYXRlX3JlcXVlc3Q+IG9yIEw8L3ZhbGlkYXRlX3Jlc3BvbnNlPi4gQ29udGFpbnMgdGhlIGNvcnJlc3BvbmRpbmcgTDxvcGVyYXRpb25JZHxodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL3BhdGhzLWFuZC1vcGVyYXRpb25zLyNvcGVyYXRpb25pZD4gb2YgdGhlIGN1cnJlbnQgZW5kcG9pbnQuCgo9aXRlbSAqCgpDPG1ldGhvZD46IFNldCBieSB0aGUgZmlyc3QgY2FsbCB0byBMPC92YWxpZGF0ZV9yZXF1ZXN0PiBvciBMPC92YWxpZGF0ZV9yZXNwb25zZT4uIFRoZSBIVFRQIG1ldGhvZCB1c2VkIGJ5IHRoZSByZXF1ZXN0LCBsb3dlci1jYXNlZC4KCj1iYWNrCgo9aGVhZDEgU0VFIEFMU08KCj1vdmVyIDQKCj1pdGVtICoKCkw8T3BlbkFQSTo6TW9kZXJuPgoKPWl0ZW0gKgoKTDxUZXN0OjpNb2pvOjpSb2xlOjpPcGVuQVBJOjpNb2Rlcm4+Cgo9aXRlbSAqCgpMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpEb2N1bWVudDo6T3BlbkFQST4KCj1pdGVtICoKCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm4+Cgo9aXRlbSAqCgpMPGh0dHBzOi8vanNvbi1zY2hlbWEub3JnPgoKPWl0ZW0gKgoKTDxodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvPgoKPWl0ZW0gKgoKTDxodHRwczovL2xlYXJuLm9wZW5hcGlzLm9yZy8+Cgo9aXRlbSAqCgpMPGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMD4KCj1iYWNrCgo9aGVhZDEgU1VQUE9SVAoKQnVncyBtYXkgYmUgc3VibWl0dGVkIHRocm91Z2ggTDxodHRwczovL2dpdGh1Yi5jb20va2FyZW5ldGhlcmlkZ2UvTW9qb2xpY2lvdXMtUGx1Z2luLU9wZW5BUEktTW9kZXJuL2lzc3Vlcz4uCgpJIGFtIGFsc28gdXN1YWxseSBhY3RpdmUgb24gaXJjLCBhcyAnZXRoZXInIGF0IEM8aXJjLnBlcmwub3JnPiBhbmQgQzxpcmMubGliZXJhLmNoYXQ+LgoKWW91IGNhbiBhbHNvIGZpbmQgbWUgb24gdGhlIEw8SlNPTiBTY2hlbWEgU2xhY2sgc2VydmVyfGh0dHBzOi8vanNvbi1zY2hlbWEuc2xhY2suY29tPiBhbmQKTDxPcGVuQVBJIFNsYWNrIHNlcnZlcnxodHRwczovL29wZW4tYXBpLnNsYWNrLmNvbT4sIHdoaWNoIGFyZSBhbHNvIGdyZWF0IHJlc291cmNlcyBmb3IgZmluZGluZyBoZWxwLgoKPWhlYWQxIEFVVEhPUgoKS2FyZW4gRXRoZXJpZGdlIDxldGhlckBjcGFuLm9yZz4KCj1oZWFkMSBDT1BZUklHSFQgQU5EIExJQ0VOQ0UKClRoaXMgc29mdHdhcmUgaXMgY29weXJpZ2h0IChjKSAyMDIxIGJ5IEthcmVuIEV0aGVyaWRnZS4KClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgp0aGUgc2FtZSB0ZXJtcyBhcyB0aGUgUGVybCA1IHByb2dyYW1taW5nIGxhbmd1YWdlIHN5c3RlbSBpdHNlbGYuCgo9Y3V0Cg== readmeEtag: '"d076becc6227db713f33c79f27e1a02f150eec32"' readmeLastModified: Mon, 19 Aug 2024 17:47:48 GMT repositoryId: 436109317 description: Mojolicious plugin providing access to an OpenAPI document and parser created: '2021-12-08T03:55:07Z' updated: '2024-08-19T17:47:53Z' language: Perl archived: false stars: 3 watchers: 4 forks: 1 owner: karenetheridge logo: https://avatars.githubusercontent.com/u/303051?v=4 license: NOASSERTION repoEtag: '"9f0343cb18ba0e9d17e614db4464e93ce61b6e5d80be251b4ff397ee0a3d7e1c"' repoLastModified: Mon, 19 Aug 2024 17:47:53 GMT foundInMaster: true - source: - https://openapi.tools/ - openapi3 tags name: widdershins category: - Documentation - Parsers link: https://mermade.github.io/shins repository: https://github.com/mermade/widdershins language: Node.js source_description: Generate Slate/Shins markdown from OpenAPI 2.0/3.0.x v2: true v3: true repositoryMetadata: base64Readme: >- IyB3aWRkZXJzaGlucwpPcGVuQVBJIC8gU3dhZ2dlciAvIEFzeW5jQVBJIC8gU2Vtb2FzYSBkZWZpbml0aW9uIHRvIFtTbGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL3NsYXRlZG9jcy9zbGF0ZSkgLwpbUmVTbGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL21lcm1hZGUvcmVzbGF0ZSkgY29tcGF0aWJsZSBtYXJrZG93bgoKIVtCdWlsZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvTWVybWFkZS93aWRkZXJzaGlucy9tYXN0ZXIuc3ZnKSBbIVtUZXN0ZWQgb24gQVBJcy5ndXJ1XShodHRwczovL2FwaS5hcGlzLmd1cnUvYmFkZ2VzL3Rlc3RlZF9vbi5zdmcpXShodHRwczovL0FQSXMuZ3VydSkgWyFbVGVzdGVkIG9uIE1lcm1hZGUgT3BlbkFQSXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQWRkaXRpb25hbCUyMFNwZWNzLTQxOS1icmlnaHRncmVlbi5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbWVybWFkZS9PcGVuQVBJX3NwZWNpZmljYXRpb25zKQpbIVtLbm93biBWdWxuZXJhYmlsaXRpZXNdKGh0dHBzOi8vc255ay5pby90ZXN0L25wbS93aWRkZXJzaGlucy9iYWRnZS5zdmcpXShodHRwczovL3NueWsuaW8vdGVzdC9ucG0vd2lkZGVyc2hpbnMpCgo8aW1nIHNyYz0iaHR0cDovL21lcm1hZGUuZ2l0aHViLmlvL3dpZGRlcnNoaW5zL2xvZ28ucG5nIiB3aWR0aD0iMjQ3cHgiIGhlaWdodD0iMjUwcHgiIC8+CgojIyMgV2lkZGVyc2hpbnMgKmFkdmVyYio6CiogSW4gYSBkaXJlY3Rpb24gY29udHJhcnkgdG8gdGhlIHN1bidzIGNvdXJzZTsKKiBhbnRpY2xvY2t3aXNlOwoqIGhlbHBpbmcgeW91IHByb2R1Y2Ugc3RhdGljIGRvY3VtZW50YXRpb24gZnJvbSB5b3VyIE9wZW5BUEkgMy4wIC8gU3dhZ2dlciAyLjAgLyBBc3luY0FQSSAxLnggLyBTZW1vYXNhIDAuMS4wIGRlZmluaXRpb24KCiFbV2lkZGVyc2hpbnMgc2NyZWVuc2hvdF0oaHR0cHM6Ly9tZXJtYWRlLmdpdGh1Yi5pby93aWRkZXJzaGlucy9zY3JlZW5zaG90LnBuZykKCiMjIyBOZXdzCgoqIFZlcnNpb24gNC4wIGNoYW5nZXM6CiAgKiBOb3cgdXNlcyBQcm9taXNlcyBub3QgY2FsbGJhY2tzCiAgKiBPcHRpb24gdG8gb3V0cHV0IGh0bWwgZGlyZWN0bHksIGFuZCB0byBSZVNwZWMgZm9ybWF0CiAgKiBVbmlmaWVkIEphdmFTY3JpcHQgYW5kIE5vZGUuanMgY29kZS1zYW1wbGVzLCBQSFAgYWRkZWQKICAqIGByZXN0cmljdGlvbnNgIGNvbHVtbiAoYHJlYWRPbmx5YC9gd3JpdGVPbmx5YCkgYWRkZWQgdG8gc2NoZW1hIHRlbXBsYXRlcwogICogTnVtZXJvdXMgYnVnIGZpeGVzCiogQXMgb2YgdjMuMC4wIFdpZGRlcnNoaW5zIG5vIGxvbmdlciBleHBhbmRzIHRoZSBkZWZpbml0aW9uIG9mIE9wZW5BUEkgYm9keSBwYXJhbWV0ZXJzIC8gcmVxdWVzdEJvZGllcyBieSBkZWZhdWx0LCB1bmxlc3MgdGhleSBoYXZlIGFuIGlubGluZSBzY2hlbWEuIFlvdSBjYW4gcmVzdG9yZSB0aGUgb2xkIGJlaGF2aW91ciBieSB1c2luZyB0aGUgYC0tZXhwYW5kQm9keWAgb3B0aW9uLgoqIFlvdSBtYXkgbGltaXQgdGhlIGRlcHRoIG9mIHNjaGVtYSBleGFtcGxlcyB1c2luZyB0aGUgYC0tbWF4RGVwdGhgIG9wdGlvbi4gVGhlIGRlZmF1bHQgaXMgMTAuCiogVG8gb21pdCBzY2hlbWFzIGVudGlyZWx5LCBwbGVhc2UgY29weSBhbmQgY3VzdG9taXNlIHRoZSBgbWFpbi5kb3RgIHRlbXBsYXRlLgoqIEFzIG9mIHYzLjEuMCBXaWRkZXJzaGlucyBpbmNsdWRlcyBhIGdlbmVyYXRlZCBgQXV0aG9yaXphdGlvbmAgaGVhZGVyIGluIE9wZW5BUEkgY29kZSBzYW1wbGVzLiBJZiB5b3Ugd2lzaCB0byBvbWl0IHRoaXMsIHNlZSBbaGVyZV0oL3RlbXBsYXRlcy9vcGVuYXBpMy9SRUFETUUubWQpLgoKIyMjIFRvIGluc3RhbGwKCiogQ2xvbmUgdGhlIGdpdCByZXBvc2l0b3J5LCBhbmQgYG5wbSBpYCB0byBpbnN0YWxsIGRlcGVuZGVuY2llcywgb3IKKiBgbnBtIGluc3RhbGwgLWcgd2lkZGVyc2hpbnNgIHRvIGluc3RhbGwgZ2xvYmFsbHkKCiMjIyBHZXR0aW5nIHN0YXJ0ZWQKCldpZGRlcnNoaW5zIGlzIGdlbmVyYWxseSB1c2VkIGFzIGEgc3RhZ2UgaW4gYW4gQVBJIGRvY3VtZW50YXRpb24gcGlwZWxpbmUuIFRoZSBwaXBlbGluZSBiZWdpbnMgd2l0aCBhbiBBUEkgZGVmaW5pdGlvbiBpbiBPcGVuQVBJIDMueCwgT3BlbkFQSSAyLjAgKGZrYSBTd2FnZ2VyKSwgQVBJIEJsdWVwcmludCwgQXN5bmNBUEkgb3IgU2Vtb2FzYSBmb3JtYXQuIFdpZGRlcnNoaW5zIGNvbnZlcnRzIHRoaXMgZGVzY3JpcHRpb24gaW50byBtYXJrZG93biBzdWl0YWJsZSBmb3IgdXNlIGJ5IGEgKipyZW5kZXJlcioqLCBzdWNoIGFzIFtTbGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL3NsYXRlZG9jcy9zbGF0ZSksIFtSZVNsYXRlXShodHRwczovL2dpdGh1Yi5jb20vbWVybWFkZS9yZXNsYXRlKSwgW1NoaW5zXShodHRwczovL2dpdGh1Yi5jb20vbWVybWFkZS9zaGlucykgICgqZGVwcmVjYXRlZCopIG9yIGh0bWwgc3VpdGFibGUgZm9yIHVzZSB3aXRoIFtSZVNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcmVzcGVjKS4KCklmIHlvdSBuZWVkIHRvIGNyZWF0ZSB5b3VyIGlucHV0IEFQSSBkZWZpbml0aW9uLCBbdGhpcyBsaXN0IG9mIGF2YWlsYWJsZSBlZGl0b3JzXShodHRwczovL2FwaXMuZ3VydS9hd2Vzb21lLW9wZW5hcGkzL2NhdGVnb3J5Lmh0bWwjZWRpdG9ycykgbWF5IGJlIHVzZWZ1bC4KCk1vcmUgaW4tZGVwdGggZG9jdW1lbnRhdGlvbiBpcyBbYXZhaWxhYmxlIGhlcmVdKGh0dHBzOi8vbWVybWFkZS5naXRodWIuaW8vd2lkZGVyc2hpbnMpLgoKIyMjIEV4YW1wbGVzCgpgYGAKbm9kZSB3aWRkZXJzaGlucyAtLXNlYXJjaCBmYWxzZSAtLWxhbmd1YWdlX3RhYnMgJ3J1Ynk6UnVieScgJ3B5dGhvbjpQeXRob24nIC0tc3VtbWFyeSBkZWZzL3BldHN0b3JlMy5qc29uIC1vIHBldHN0b3JlMy5tZApgYGAKCiMjIyBPcHRpb25zCgp8IENMSSBwYXJhbWV0ZXIgbmFtZSB8IEphdmFTY3JpcHQgcGFyYW1ldGVyIG5hbWUgfCBUeXBlIHwgRGVmYXVsdCB2YWx1ZSB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0gfCAtLS0gfCAtLS0gfCAtLS0gfAp8IC0tY2xpcGJvYXJkIHwgb3B0aW9ucy5jbGlwYm9hcmQgfCBgYm9vbGVhbmAgfCBgdHJ1ZWAgfCBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYGNvZGVfY2xpcGJvYXJkYCBwcm9wZXJ0eSBpbiB0aGUgaGVhZGluZywgc28gdGhhdCBtYXJrZG93biBwcm9jZXNzb3JzIGNhbiBpbmNsdWRlIGNsaXBib2FyZCBzdXBwb3J0LiB8CnwgLS1jdXN0b21BcGlLZXlWYWx1ZSB8IG9wdGlvbnMuY3VzdG9tQXBpS2V5VmFsdWUgfCBgc3RyaW5nYCB8IGBBcGlLZXlgIHwgU2V0IGEgY3VzdG9tIEFQSSBrZXkgdmFsdWUgdG8gdXNlIGFzIHRoZSBBUEkga2V5IGluIGdlbmVyYXRlZCBjb2RlIGV4YW1wbGVzLiB8CnwgLS1leHBhbmRCb2R5IHwgb3B0aW9ucy5leHBhbmRCb2R5IHwgYGJvb2xlYW5gIHwgYGZhbHNlYCB8IElmIGEgbWV0aG9kJ3MgcmVxdWVzdEJvZHkgcGFyYW1ldGVyIHJlZmVycyB0byBhIHNjaGVtYSBieSByZWZlcmVuY2UgKG5vdCB3aXRoIGEgaW5saW5lIHNjaGVtYSksIGJ5IGRlZmF1bHQsIFdpZGRlcnNoaW5zIHNob3dzIG9ubHkgYSByZWZlcmVuY2UgdG8gdGhpcyBwYXJhbWV0ZXIuIFNldCB0aGlzIG9wdGlvbiB0byB0cnVlIHRvIGV4cGFuZCB0aGUgc2NoZW1hIGFuZCBzaG93IGFsbCBwcm9wZXJ0aWVzIGluIHRoZSByZXF1ZXN0IGJvZHkuIHwKfCAtLWhlYWRpbmdzIHwgb3B0aW9ucy5oZWFkaW5ncyB8IGBpbnRlZ2VyYCB8IDIgfCBTZXQgdGhlIHZhbHVlIG9mIHRoZSBgaGVhZGluZ0xldmVsYCBwYXJhbWV0ZXIgaW4gdGhlIGhlYWRlciBzbyBtYXJrZG93biBwcm9jZXNzb3JzIGtub3cgaG93IG1hbnkgaGVhZGluZyBsZXZlbHMgdG8gc2hvdyBpbiB0aGUgdGFibGUgb2YgY29udGVudHMuIEN1cnJlbnRseSBzdXBwb3J0ZWQgb25seSBieSBTaGlucywgbm90IGJ5IFNsYXRlLCB3aGljaCBsYWNrcyB0aGlzIGZlYXR1cmUuIHwKfCAtLW9taXRCb2R5IHwgb3B0aW9ucy5vbWl0Qm9keSB8IGBib29sZWFuYCB8IGBmYWxzZWAgfCBCeSBkZWZhdWx0LCBXaWRkZXJzaGlucyBpbmNsdWRlcyB0aGUgYm9keSBwYXJhbWV0ZXIgYXMgYSByb3cgaW4gdGhlIHBhcmFtZXRlcnMgdGFibGUgYmVmb3JlIHRoZSByb3dzIHRoYXQgcmVwcmVzZW50IHRoZSBmaWVsZHMgaW4gdGhlIGJvZHkuIFNldCB0aGlzIHBhcmFtZXRlciB0byBvbWl0IHRoYXQgYm9keSBwYXJhbWV0ZXIgcm93LiB8CnwgLS1vbWl0SGVhZGVyIHwgb3B0aW9ucy5vbWl0SGVhZGVyIHwgYGJvb2xlYW5gIHwgYGZhbHNlYCB8IE9taXQgdGhlIGhlYWRlciAvIFlBTUwgZnJvbnQtbWF0dGVyIGluIHRoZSBnZW5lcmF0ZWQgTWFya2Rvd24gZmlsZS4gfAp8IC0tcmVzb2x2ZSB8IG9wdGlvbnMucmVzb2x2ZSB8IGBib29sZWFuYCB8IGBmYWxzZWAgfCBSZXNvbHZlIGV4dGVybmFsICRyZWZzLCB1c2luZyB0aGUgYHNvdXJjZWAgcGFyYW1ldGVyIG9yIHRoZSBpbnB1dCBmaWxlIGFzIHRoZSBiYXNlIGxvY2F0aW9uLiB8CnwgLS1zaGFsbG93U2NoZW1hcyB8IG9wdGlvbnMuc2hhbGxvd1NjaGVtYXMgfCBgYm9vbGVhbmAgfCBgZmFsc2VgIHwgV2hlbiByZWZlcnJpbmcgdG8gYSBzY2hlbWEgd2l0aCBhICRyZWYsIGRvbid0IHNob3cgdGhlIGZ1bGwgY29udGVudHMgb2YgdGhlIHNjaGVtYS4gfAp8IE4vQSB8IG9wdGlvbnMuc291cmNlIHwgYHN0cmluZ2AgfCBOb25lIHwgVGhlIGFic29sdXRlIGxvY2F0aW9uIG9yIFVSTCBvZiB0aGUgc291cmNlIGZpbGUgdG8gdXNlIGFzIHRoZSBiYXNlIHRvIHJlc29sdmUgcmVsYXRpdmUgcmVmZXJlbmNlcyAoJHJlZnMpIGZyb207IHJlcXVpcmVkIGlmIG9wdGlvbnMucmVzb2x2ZSBpcyBzZXQgdG8gdHJ1ZS4gRm9yIENMSSBjb21tYW5kcywgV2lkZGVyc2hpbnMgdXNlcyB0aGUgaW5wdXQgZmlsZSBhcyB0aGUgYmFzZSBmb3IgdGhlICRyZWZzLiB8CnwgLS1zdW1tYXJ5IHwgb3B0aW9ucy50b2NTdW1tYXJ5IHwgYGJvb2xlYW5gIHwgYGZhbHNlYCB8IFVzZSB0aGUgb3BlcmF0aW9uIHN1bW1hcnkgYXMgdGhlIFRPQyBlbnRyeSBpbnN0ZWFkIG9mIHRoZSBJRC4gfAp8IC0tdXNlQm9keU5hbWUgfCBvcHRpb25zLnVzZUJvZHlOYW1lIHwgYGJvb2xlYW5gIHwgVXNlIG9yaWdpbmFsIHBhcmFtIG5hbWUgZm9yIE9wZW5BUEkgMi4wIGJvZHkgcGFyYW1ldGVyLiB8CnwgLXYsIC0tdmVyYm9zZSB8IG9wdGlvbnMudmVyYm9zZSB8IGBib29sZWFuYCB8IGBmYWxzZWAgfCBJbmNyZWFzZSB2ZXJib3NpdHkuIHwKfCAtaCwgLS1oZWxwIHwgb3B0aW9ucy5oZWxwIHwgYGJvb2xlYW5gIHwgYGZhbHNlYCB8IFNob3cgaGVscC4gfAp8IC0tdmVyc2lvbiB8IG9wdGlvbnMudmVyc2lvbiB8IGBib29sZWFuYCB8IGBmYWxzZWAgfCBTaG93IHZlcnNpb24gbnVtYmVyLiB8CnwgLWMsIC0tY29kZSB8IG9wdGlvbnMuY29kZVNhbXBsZXMgfCBgYm9vbGVhbmAgfCBgZmFsc2VgIHwgT21pdCBnZW5lcmF0ZWQgY29kZSBzYW1wbGVzLiB8CnwgLS1odHRwc25pcHBldCB8IG9wdGlvbnMuaHR0cHNuaXBwZXQgfCBgYm9vbGVhbmAgfCBgZmFsc2VgIHwgVXNlIGh0dHBzbmlwcGV0IHRvIGdlbmVyYXRlIGNvZGUgc2FtcGxlcy4gfAp8IC1kLCAtLWRpc2NvdmVyeSB8IG9wdGlvbnMuZGlzY292ZXJ5IHwgYGJvb2xlYW5gIHwgYGZhbHNlYCB8IEluY2x1ZGUgc2NoZW1hLm9yZyBXZWJBUEkgZGlzY292ZXJ5IGRhdGEuIHwKfCAtZSwgLS1lbnZpcm9ubWVudCB8IE4vQSB8IGBzdHJpbmdgIHwgTm9uZSB8IEZpbGUgdG8gbG9hZCBjb25maWcgb3B0aW9ucyBmcm9tLiB8CnwgLWksIC0taW5jbHVkZXMgfCBvcHRpb25zLmluY2x1ZGVzIHwgYHN0cmluZ2AgfCBOb25lIHwgTGlzdCBvZiBmaWxlcyB0byBwdXQgaW4gdGhlIGBpbmNsdWRlYCBoZWFkZXIgb2YgdGhlIG91dHB1dCBNYXJrZG93bi4gUHJvY2Vzc29ycyBzdWNoIGFzIFNoaW5zIGNhbiB0aGVuIGltcG9ydCB0aGUgY29udGVudHMgb2YgdGhlc2UgZmlsZXMuIHwKfCAtbCwgLS1sYW5nIHwgb3B0aW9ucy5sYW5nIHwgYGJvb2xlYW5gIHwgYGZhbHNlYCB8IEdlbmVyYXRlIHRoZSBsaXN0IG9mIGxhbmd1YWdlcyBmb3IgY29kZSBzYW1wbGVzIGJhc2VkIG9uIHRoZSBsYW5ndWFnZXMgdXNlZCBpbiB0aGUgc291cmNlIGZpbGUncyBgeC1jb2RlLXNhbXBsZXNgIGV4YW1wbGVzLiB8CnwgLS1sYW5ndWFnZV90YWJzIHwgb3B0aW9ucy5sYW5ndWFnZV90YWJzIHwgYHN0cmluZ2AgfCAoRGlmZmVycyBmb3IgZWFjaCBpbnB1dCB0eXBlKSB8IExpc3Qgb2YgbGFuZ3VhZ2UgdGFicyBmb3IgY29kZSBzYW1wbGVzIHVzaW5nIGxhbmd1YWdlWzpsYWJlbFs6Y2xpZW50XV0gZm9ybWF0LCBzdWNoIGFzIGBqYXZhc2NyaXB0OkphdmFTY3JpcHQ6cmVxdWVzdGAuIHwKfCAtbSwgLS1tYXhEZXB0aCB8IG9wdGlvbnMubWF4RGVwdGggfCBgaW50ZWdlcmAgfCAxMCB8IE1heGltdW0gZGVwdGggdG8gc2hvdyBmb3Igc2NoZW1hIGV4YW1wbGVzLiB8CnwgLW8sIC0tb3V0ZmlsZSB8IE4vQSB8IGBzdHJpbmdgIHwgTm9uZSB8IEZpbGUgdG8gd3JpdGUgdGhlIG91dHB1dCBtYXJrZG93biB0by4gSWYgbGVmdCBibGFuaywgV2lkZGVyc2hpbnMgc2VuZHMgdGhlIG91dHB1dCB0byBzdGRvdXQuIHwKfCAtciwgLS1yYXcgfCAqKmludmVyc2UqKiBvZiBvcHRpb25zLnNhbXBsZSB8IGBib29sZWFuYCB8IGBmYWxzZWAgfCBPdXRwdXQgcmF3IHNjaGVtYXMgaW5zdGVhZCBvZiBleGFtcGxlIHZhbHVlcy4gfAp8IC1zLCAtLXNlYXJjaCB8IG9wdGlvbnMuc2VhcmNoIHwgYGJvb2xlYW5gIHwgYHRydWVgIHwgU2V0IHRoZSB2YWx1ZSBvZiB0aGUgYHNlYXJjaGAgcGFyYW1ldGVyIGluIHRoZSBoZWFkZXIgc28gTWFya2Rvd24gcHJvY2Vzc29ycyBsaWtlIFNsYXRlIGluY2x1ZGUgc2VhcmNoIG9yIG5vdCBpbiB0aGVpciBvdXRwdXQuIHwKfCAtdCwgLS10aGVtZSB8IG9wdGlvbnMudGhlbWUgfCBgc3RyaW5nYCB8IGRhcmt1bGEgfCBTeW50YXgtaGlnaGxpZ2h0ZXIgdGhlbWUgdG8gdXNlLiB8CnwgLXUsIC0tdXNlcl90ZW1wbGF0ZXMgfCBvcHRpb25zLnVzZXJfdGVtcGxhdGVzIHwgYHN0cmluZ2AgfCBOb25lIHwgRGlyZWN0b3J5IHRvIGxvYWQgb3ZlcnJpZGUgdGVtcGxhdGVzIGZyb20uIHwKfCAteCwgLS1leHBlcmltZW50YWwgfCBvcHRpb25zLmV4cGVyaW1lbnRhbCB8IGBib29sZWFuYCB8ICB8IFVzZSBodHRwU25pcHBldCBmb3IgbXVsdGlwYXJ0IG1lZGlhdHlwZXMuIHwKfCAteSwgLS15YW1sIHwgb3B0aW9ucy55YW1sIHwgYGJvb2xlYW5gIHwgYGZhbHNlYCB8IERpc3BsYXkgSlNPTiBzY2hlbWFzIGluIFlBTUwgZm9ybWF0LiB8CnwgIHwgb3B0aW9ucy50ZW1wbGF0ZUNhbGxiYWNrIHwgYGZ1bmN0aW9uYCB8IE5vbmUgfCBBIGBmdW5jdGlvbmAgdGhhdCBpcyBjYWxsZWQgYmVmb3JlIGFuZCBhZnRlciBlYWNoIHRlbXBsYXRlIChKYXZhU2NyaXB0IGNvZGUgb25seSkuIHwKfCAgfCBvcHRpb25zLnRvY19mb290ZXJzIHwgYG9iamVjdGAgfCBBIG1hcCBvZiBgdXJsYHMgYW5kIGBkZXNjcmlwdGlvbmBzIHRvIGJlIGFkZGVkIHRvIHRoZSBUb0MgZm9vdGVycyBhcnJheSAoSmF2YVNjcmlwdCBjb2RlIG9ubHkpLiB8CgpJbiBOb2RlLkpTIGNvZGUsIGNyZWF0ZSBhbiBvcHRpb25zIG9iamVjdCBhbmQgcGFzcyBpdCB0byB0aGUgV2lkZGVyc2hpbnMgYGNvbnZlcnRgIGZ1bmN0aW9uLCBhcyBpbiB0aGlzIGV4YW1wbGU6CgpgYGBqYXZhc2NyaXB0CmNvbnN0IGNvbnZlcnRlciA9IHJlcXVpcmUoJ3dpZGRlcnNoaW5zJyk7CmxldCBvcHRpb25zID0ge307IC8vIGRlZmF1bHRzIHNob3duCm9wdGlvbnMuY29kZVNhbXBsZXMgPSB0cnVlOwpvcHRpb25zLmh0dHBzbmlwcGV0ID0gZmFsc2U7Ci8vb3B0aW9ucy5sYW5ndWFnZV90YWJzID0gW107Ci8vb3B0aW9ucy5sYW5ndWFnZV9jbGllbnRzID0gW107Ci8vb3B0aW9ucy5sb2FkZWRGcm9tID0gc291cmNlVXJsOyAvLyBvbmx5IG5lZWRlZCBpZiBpbnB1dCBkb2N1bWVudCBpcyByZWxhdGl2ZQovL29wdGlvbnMudXNlcl90ZW1wbGF0ZXMgPSAnLi91c2VyX3RlbXBsYXRlcyc7Cm9wdGlvbnMudGVtcGxhdGVDYWxsYmFjayA9IGZ1bmN0aW9uKHRlbXBsYXRlTmFtZSxzdGFnZSxkYXRhKSB7IHJldHVybiBkYXRhIH07Cm9wdGlvbnMudGhlbWUgPSAnZGFya3VsYSc7Cm9wdGlvbnMuc2VhcmNoID0gdHJ1ZTsKb3B0aW9ucy5zYW1wbGUgPSB0cnVlOyAvLyBzZXQgZmFsc2UgYnkgLS1yYXcKb3B0aW9ucy5kaXNjb3ZlcnkgPSBmYWxzZTsKb3B0aW9ucy5pbmNsdWRlcyA9IFtdOwpvcHRpb25zLnNoYWxsb3dTY2hlbWFzID0gZmFsc2U7Cm9wdGlvbnMudG9jU3VtbWFyeSA9IGZhbHNlOwpvcHRpb25zLmhlYWRpbmdzID0gMjsKb3B0aW9ucy55YW1sID0gZmFsc2U7Ci8vb3B0aW9ucy5yZXNvbHZlID0gZmFsc2U7Ci8vb3B0aW9ucy5zb3VyY2UgPSBzb3VyY2VVcmw7IC8vIGlmIHJlc29sdmUgaXMgdHJ1ZSwgbXVzdCBiZSBzZXQgdG8gZnVsbCBwYXRoIG9yIFVSTCBvZiB0aGUgaW5wdXQgZG9jdW1lbnQKY29udmVydGVyLmNvbnZlcnQoYXBpT2JqLG9wdGlvbnMpCi50aGVuKHN0ciA9PiB7CiAgLy8gc3RyIGNvbnRhaW5zIHRoZSBjb252ZXJ0ZWQgbWFya2Rvd24KfSkKLmNhdGNoKGVyciA9PiB7CiAgY29uc29sZS5lcnJvcihlcnIpOwp9KTsKYGBgCgpUbyBvbmx5IGluY2x1ZGUgYSBzdWJzZXQgb2YgdGhlIHByZS1kZWZpbmVkIGxhbmd1YWdlLXRhYnMsIG9yIHRvIHJlbmFtZSB0aGVpciBkaXNwbGF5LW5hbWVzLCB5b3UgY2FuIG92ZXJyaWRlIHRoZSBgb3B0aW9ucy5sYW5ndWFnZV90YWJzYDoKCmBgYGphdmFzY3JpcHQKb3B0aW9ucy5sYW5ndWFnZV90YWJzID0gW3sgJ2dvJzogJ0dvJyB9LCB7ICdodHRwJzogJ0hUVFAnIH0sIHsgJ2phdmFzY3JpcHQnOiAnSmF2YVNjcmlwdCcgfSwgeyAnamF2YXNjcmlwdC0tbm9kZSc6ICdOb2RlLkpTJyB9LCB7ICdweXRob24nOiAnUHl0aG9uJyB9LCB7ICdydWJ5JzogJ1J1YnknIH1dOwpgYGAKClRoZSBgLS1lbnZpcm9ubWVudGAgb3B0aW9uIHNwZWNpZmllcyBhIEpTT04gb3IgWUFNTC1mb3JtYXR0ZWQgYG9wdGlvbnNgIG9iamVjdCwgZm9yIGV4YW1wbGU6CgpgYGBqc29uCnsKICAibGFuZ3VhZ2VfdGFicyI6IFt7ICJnbyI6ICJHbyIgfSwgeyAiaHR0cCI6ICJIVFRQIiB9LCB7ICJqYXZhc2NyaXB0IjogIkphdmFTY3JpcHQiIH0sIHsgImphdmFzY3JpcHQtLW5vZGUiOiAiTm9kZS5KUyIgfSwgeyAicHl0aG9uIjogIlB5dGhvbiIgfSwgeyAicnVieSI6ICJSdWJ5IiB9XSwKICAidmVyYm9zZSI6IHRydWUsCiAgInRhZ0dyb3VwcyI6IFsKICAgIHsKICAgICAgInRpdGxlIjogIkNvbXBhbmllcyIsCiAgICAgICJ0YWdzIjogWyJjb21wYW5pZXMiXQogICAgfSwKICAgIHsKICAgICAgInRpdGxlIjogIkJpbGxpbmciLAogICAgICAidGFncyI6IFsiaW52b2ljZS1jcmVhdGUiLCAiaW52b2ljZS1jbG9zZSIsICJpbnZvaWNlLWRlbGV0ZSJdCiAgICB9CiAgXQp9CmBgYAoKWW91IGNhbiBhbHNvIHVzZSB0aGUgZW52aXJvbm1lbnQgZmlsZSB0byBncm91cCBPQVMvU3dhZ2dlciB0YWdnZWQgcGF0aHMgdG9nZXRoZXIgdG8gY3JlYXRlIGEgbW9yZSBlbGVnYW50IHRhYmxlIG9mIGNvbnRlbnRzLCBhbmQgb3ZlcmFsbCBwYWdlIHN0cnVjdHVyZS4KCklmIHlvdSBuZWVkIHRvIHN1cHBvcnQgYSB2ZXJzaW9uIG9mIFNsYXRlIFw8djEuNS4wIChvciBhIHJlbmRlcmVyIHdoaWNoIGFsc28gZG9lc24ndCBzdXBwb3J0IGRpc3BsYXktbmFtZXMgZm9yIGxhbmd1YWdlLXRhYnMsIHN1Y2ggYXMgYG5vZGUtc2xhdGVgLCBgc2xhdGUtbm9kZWAgb3IgYHdoaXRlYm9hcmRgKSwgeW91IGNhbiB1c2UgdGhlIGAtLWVudmlyb25tZW50YCBvcHRpb24gd2l0aCB0aGUgaW5jbHVkZWQgYHdoaXRlYm9hcmRfZW52Lmpzb25gIGZpbGUgdG8gc2ltcGx5IGFjaGlldmUgdGhpcy4KCklmIHlvdSBhcmUgdXNpbmcgdGhlIGBodHRwc25pcHBldGAgb3B0aW9uIHRvIGdlbmVyYXRlIGNvZGUgc2FtcGxlcywgeW91IGNhbiBzcGVjaWZ5IHRoZSBjbGllbnQgbGlicmFyeSB1c2VkIHRvIHBlcmZvcm0gdGhlIHJlcXVlc3RzIGZvciBlYWNoIGxhbmd1YWdlIGJ5IG92ZXJyaWRpbmcgdGhlIGBvcHRpb25zLmxhbmd1YWdlX2NsaWVudHNgOgoKYGBgamF2YXNjcmlwdApvcHRpb25zLmxhbmd1YWdlX2NsaWVudHMgPSBbeyAnc2hlbGwnOiAnY3VybCcgfSwgeyAnbm9kZSc6ICdyZXF1ZXN0JyB9LCB7ICdqYXZhJzogJ3VuaXJlc3QnIH1dOwpgYGAKCklmIHRoZSBsYW5ndWFnZSBuYW1lIGRpZmZlcnMgYmV0d2VlbiB0aGUgbWFya2Rvd24gbmFtZSByZXF1aXJlZCB0byBzeW50YXggaGlnaGxpZ2h0IGFuZCB0aGUgaHR0cHNuaXBwZXQgcmVxdWlyZWQgdGFyZ2V0LCBib3RoIGNhbiBiZSBzcGVjaWZpZWQgaW4gdGhlIGZvcm0gYG1hcmtkb3duLS10YXJnZXRgLgoKVG8gc2VlIHRoZSBsaXN0IG9mIGxhbmd1YWdlcyBhbmQgY2xpZW50cyBzdXBwb3J0ZWQgYnkgaHR0cHNuaXBwZXQsIFtjbGljayBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vS29uZy9odHRwc25pcHBldC90cmVlL21hc3Rlci9zcmMvdGFyZ2V0cykuCgpUaGUgYGxvYWRlZEZyb21gIG9wdGlvbiBpcyBvbmx5IG5lZWRlZCB3aGVyZSB0aGUgT3BlbkFQSSAvIFN3YWdnZXIgZGVmaW5pdGlvbiBkb2VzIG5vdCBzcGVjaWZ5IGEgaG9zdCwgYW5kIChhcyBwZXIgdGhlIE9wZW5BUEkgW3NwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNmaXhlZC1maWVsZHMpKSB0aGUgQVBJIGVuZHBvaW50IGlzIGRlZW1lZCB0byBiZSBiYXNlZCBvbiB0aGUgc291cmNlIFVSTAp0aGUgZGVmaW5pdGlvbiB3YXMgbG9hZGVkIGZyb20uCgpUbyBzZWUgdGhlIGxpc3Qgb2YgaGlnaGxpZ2h0LWpzIHN5bnRheCBoaWdobGlnaHRpbmcgdGhlbWVzLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly9oaWdobGlnaHRqcy5vcmcvc3RhdGljL2RlbW8vKS4KClNjaGVtYS5vcmcgV2ViQVBJIGRpc2NvdmVyeSBkYXRhIGlzIGluY2x1ZGVkIGlmIHRoZSBgZGlzY292ZXJ5YCBvcHRpb24gYWJvdmUgaXMgc2V0IGB0cnVlYC4gU2VlIHRoZSBXM0MgW1dlYkFQSSBEaXNjb3ZlcnkgQ29tbXVuaXR5IEdyb3VwXShodHRwczovL3d3dy53My5vcmcvY29tbXVuaXR5L3dlYi1hcGktZGlzY292ZXJ5LykgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyBMYW5ndWFnZSB0YWJzCgpXaWRkZXJzaGlucyBzdXBwb3J0cyB0aGUgYHgtY29kZS1zYW1wbGVzYCBbdmVuZG9yLWV4dGVuc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL1JlYmlsbHkvUmVEb2MvYmxvYi9tYXN0ZXIvZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCNvcGVyYXRpb24tb2JqZWN0LXZlbmRvci1leHRlbnNpb25zKSB0byBjb21wbGV0ZWx5IGN1c3RvbWlzZSB5b3VyIGRvY3VtZW50YXRpb24uIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gZWRpdCB0aGUgZGVmYXVsdCBjb2RlLXNhbXBsZXMgaW4gdGhlIGB0ZW1wbGF0ZXNgIHN1Yi1kaXJlY3RvcnksIG9yIG92ZXJyaWRlIHRoZW0gdXNpbmcgdGhlIGB1c2VyX3RlbXBsYXRlc2Agb3B0aW9uIHRvIHNwZWNpZnkgYSBkaXJlY3RvcnkgY29udGFpbmluZyB5b3VyIHRlbXBsYXRlcy4KCldpZGRlcnNoaW5zIHN1cHBvcnRzIHRoZSB1c2Ugb2YgbXVsdGlwbGUgbGFuZ3VhZ2UgdGFicyB3aXRoIHRoZSBzYW1lIGxhbmd1YWdlIChpLmUuIHBsYWluIEphdmFzY3JpcHQgYW5kIE5vZGUuSnMpLiBUbyB1c2UgdGhpcyBzdXBwb3J0IHlvdSBtdXN0IGJlIHVzaW5nIFNsYXRlIChvciBvbmUgb2YgaXRzIHBvcnRzIGNvbXBhdGlibGUgd2l0aCkgdmVyc2lvbiAxLjUuMCBvciBoaWdoZXIuCgojIyBUZW1wbGF0ZXMKCkJ5IGRlZmF1bHQsIFdpZGRlcnNoaW5zIHVzZXMgdGhlIHRlbXBsYXRlcyBpbiBpdHMgYHRlbXBsYXRlcy9gIGZvbGRlciB0byBnZW5lcmF0ZSB0aGUgTWFya2Rvd24gb3V0cHV0LiBUbyBjdXN0b21pemUgdGhlIHRlbXBsYXRlcywgY29weSBzb21lIG9yIGFsbCBvZiB0aGVtIHRvIGEgZm9sZGVyIGFuZCBwYXNzIHRoZWlyIGxvY2F0aW9uIHRvIHRoZSBgdXNlcl90ZW1wbGF0ZXNgIHBhcmFtZXRlci4KClRoZSB0ZW1wbGF0ZXMgaW5jbHVkZSBgLmRvdGAgdGVtcGxhdGVzIGFuZCBgLmRlZmAgcGFydGlhbHMuIFRvIG92ZXJyaWRlIGEgYC5kb3RgIHRlbXBsYXRlLCB5b3UgbXVzdCBjb3B5IGl0IGFuZCB0aGUgY2hpbGQgYC5kZWZgIHBhcnRpYWxzIHRoYXQgdGhlIHRlbXBsYXRlIHJlZmVyZW5jZXMuIFNpbWlsYXJseSwgdG8gb3ZlcnJpZGUgYSBgLmRlZmAgcGFydGlhbCwgeW91IG11c3QgYWxzbyBjb3B5IHRoZSBwYXJlbnQgYC5kb3RgIHRlbXBsYXRlLiBGb3IgT3BlbkFQSSAzLCB0aGUgcHJpbWFyeSB0ZW1wbGF0ZSBpcyBgbWFpbi5kb3RgIGFuZCBpdHMgbWFpbiBjaGlsZCBwYXJ0aWFscyBhcmUgYHBhcmFtZXRlcnMuZGVmYCwgYHJlc3BvbnNlcy5kZWZgLCBhbmQgYGNhbGxiYWNrcy5kZWZgLgoKVGhpcyBtZWFucyB0aGF0IGl0IGlzIHVzdWFsbHkgZWFzaWVzdCB0byBjb3B5IGFsbCBgLmRvdGAgYW5kIGAuZGVmYCBmaWxlcyB0byB5b3VyIHVzZXIgdGVtcGxhdGVzIGRpcmVjdG9yeSBzbyB5b3UgZG9uJ3Qgc2tpcCBhIHRlbXBsYXRlIG9yIHBhcnRpYWwuIFRvIGJyaW5nIGluIGNoYW5nZXMgZnJvbSBXaWRkZXJzaGlucyB1cGRhdGVzLCB5b3UgY2FuIHVzZSBhIHZpc3VhbCBgZGlmZmAgdG9vbCB3aGljaCBjYW4gcnVuIGFjcm9zcyB0d28gZGlyZWN0b3JpZXMsIHN1Y2ggYXMgW01lbGRdKGh0dHA6Ly9tZWxkbWVyZ2Uub3JnLykgb3IgW1dpbk1lcmdlXShodHRwOi8vd2lubWVyZ2Uub3JnKS4KCiMjIyBUZW1wbGF0ZSBzeW50YXgKClRlbXBsYXRlcyBhcmUgY29tcGlsZWQgd2l0aCBbZG9ULmpzXShodHRwczovL2dpdGh1Yi5jb20vb2xhZG8vZG9UI3JlYWRtZSkuCgpUZW1wbGF0ZXMgaGF2ZSBhY2Nlc3MgdG8gYSBgZGF0YWAgb2JqZWN0IHdpdGggYSByYW5nZSBvZiBwcm9wZXJ0aWVzIGJhc2VkIG9uIHRoZSBkb2N1bWVudCBjb250ZXh0LiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhcmFtZXRlcnMsIHNlZSB0aGUgUkVBRE1FIGZpbGUgZm9yIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZXM6CgoqIFtTd2FnZ2VyIDIuMCAvIE9wZW5BUEkgMy4wLnggdGVtcGxhdGUgcGFyYW1ldGVyc10oL3RlbXBsYXRlcy9vcGVuYXBpMy9SRUFETUUubWQpCiogW0FzeW5jQVBJIDEueCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzXSgvdGVtcGxhdGVzL2FzeW5jYXBpMS9SRUFETUUubWQpCiogW1NlbW9hc2EgMC4xLjAgdGVtcGxhdGUgcGFyYW1ldGVyc10oL3RlbXBsYXRlcy9zZW1vYXNhL1JFQURNRS5tZCkKClRvIHByaW50IHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlciBvciB2YXJpYWJsZSBpbiBhIHRlbXBsYXRlLCB1c2UgdGhlIGNvZGUgYHt7PXBhcmFtZXRlck5hbWV9fWAuIEZvciBleGFtcGxlLCB0byBwcmludCB0aGUgdGl0bGUgb2YgYW4gT3BlbkFQSSAzIHNwZWMgKGZyb20gaXRzIGBpbmZvLnRpdGxlYCBmaWVsZCksIHVzZSB0aGUgY29kZSBge3s9ZGF0YS5hcGkuaW5mby50aXRsZX19YC4KClRvIGxvb3AgdGhyb3VnaCB2YWx1ZXMgaW4gYW4gYXJyYXksIHVzZSB0aGUgY29kZSBge3t+IGFycmF5TmFtZSA6dGVtcFZhcmlhYmxlfX1gIHRvIHN0YXJ0IHRoZSBsb29wIGFuZCB0aGUgY29kZSBge3t+fX1gIHRvIGNsb3NlIHRoZSBsb29wLiBGb3IgZXhhbXBsZSwgdGhlIE9wZW5BUEkgMyBwYXJ0aWFsIGBwYXJhbWV0ZXJzLmRlZmAgdXNlcyB0aGlzIGNvZGUgdG8gY3JlYXRlIGEgdGFibGUgb2YgdGhlIHBhcmFtZXRlcnMgaW4gYW4gb3BlcmF0aW9uOgpgYGAKfE5hbWV8SW58VHlwZXxSZXF1aXJlZHxEZXNjcmlwdGlvbnwKfC0tLXwtLS18LS0tfC0tLXwtLS18Cnt7fiBkYXRhLnBhcmFtZXRlcnMgOnB9fXx7ez1wLm5hbWV9fXx7ez1wLmlufX18e3s9cC5zYWZlVHlwZX19fHt7PXAucmVxdWlyZWR9fXx7ez1wLnNob3J0RGVzYyB8fCAnbm9uZSd9fXwKe3t+fX0KYGBgCgpGb3IgaWYvdGhlbiBsb2dpYywgdXNlIHRoZSBjb2RlIGB7ez8gYm9vbGVhbkV4cHJlc3Npb259fWAgdG8gc3RhcnQgdGhlIGNvZGUgYmxvY2sgYW5kIHRoZSBjb2RlIGB7ez99fWAgdG8gY2xvc2UgdGhlIGJsb2NrLiBGb3IgZXhhbXBsZSwgdGhlIE9wZW5BUEkgMyBgbWFpbi5kb3RgIHRlbXBsYXRlIGNhbGxzIHRoZSBgc2VjdXJpdHkuZGVmYCBwYXJ0aWFsIHRvIHNob3cgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlY3VyaXR5IHNjaGVtZXMgaWYgdGhlIE9wZW5BUEkgc3BlYyBpbmNsdWRlcyBhIGBzZWN1cml0eVNjaGVtZXNgIHNlY3Rpb246CmBgYAp7ez8gZGF0YS5hcGkuY29tcG9uZW50cyAmJiBkYXRhLmFwaS5jb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcyB9fQp7eyNkZWYuc2VjdXJpdHl9fQp7ez99fQpgYGAKCllvdSBjYW4gcnVuIGFyYml0cmFyeSBKYXZhU2NyaXB0IHdpdGhpbiBhIHRlbXBsYXRlIGJ5IGluc2VydGluZyBhIGNvZGUgYmxvY2sgd2l0aGluIGN1cmx5IGJyYWNlcy4gRm9yIGV4YW1wbGUsIHRoaXMgY29kZSBjcmVhdGVzIGEgdmFyaWFibGUgYW5kIHJlZmVyZW5jZXMgaXQgd2l0aCBub3JtYWwgZG9ULmpzIHN5bnRheCBsYXRlciBpbiB0aGUgdGVtcGxhdGU6CmBgYAp7eyB7CmxldCBtZXNzYWdlID0gIkhlbGxvISI7Cn0gfX0KCnt7PW1lc3NhZ2V9fQpgYGAKCiMjIyBUZW1wbGF0ZSBjYWxsYmFja3MKClRoZSBgdGVtcGxhdGVDYWxsYmFja2AgcGFyYW1ldGVyIHBvaW50cyB0byBhIGZ1bmN0aW9uIHRoYXQgV2lkZGVyc2hpbnMgY2FsbHMgYmVmb3JlIGFuZCBhZnRlciBlYWNoIHRlbXBsYXRlIHJ1bnMuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiByZWNlaXZlcyBhIGBkYXRhYCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgc3BlYyB0aGF0IFdpZGRlcnNoaW5zIGlzIHByb2Nlc3Npbmc7IHRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiB0aGlzIG9iamVjdC4gWW91IGNhbiB1c2UgY2FsbGJhY2sgZnVuY3Rpb25zIG9ubHkgaWYgeW91IGFyZSBjYWxsaW5nIFdpZGRlcnNoaW5zIGZyb20gSmF2YVNjcmlwdCBjb2RlLCBub3QgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgoKV2lkZGVyc2hpbnMgcGFzc2VzIHRoZXNlIHZhcmlhYmxlcyB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb246Ci0gYHRlbXBsYXRlTmFtZWA6IFRoZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZSwgc3VjaCBhcyBgbWFpbmAuCi0gYHN0YWdlYDogV2hldGhlciBXaWRkZXJzaGlucyBpcyBjYWxsaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBiZWZvcmUgKGBwcmVgKSBvciBhZnRlciAoYHBvc3RgKSB0aGUgdGVtcGxhdGUuCi0gYGRhdGFgOiBBbiBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZGF0YSB0aGF0IFdpZGRlcnNoaW5zIGlzIHByb2Nlc3NpbmcuIFlvdSBjYW4gbXV0YXRlIHRoZSBgZGF0YWAgb2JqZWN0IGluIGFueSB3YXkgeW91IHNlZSBmaXQsIGJ1dCB0aGUgZnVuY3Rpb24gbXVzdCByZXR1cm4gaXQgd2hldGhlciBpdCBjaGFuZ2VzIGl0IG9yIG5vdC4gQ29udGVudCB0aGF0IHlvdSBwdXQgaW4gdGhlIGBkYXRhLmFwcGVuZGAgcHJvcGVydHkgaXMgYXBwZW5kZWQgdG8gdGhlIGN1cnJlbnQgb3V0cHV0IHN0cmVhbS4KCkZvciBleGFtcGxlLCB0aGlzIEphdmFTY3JpcHQgY29kZSBwcmludHMgdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlIGFuZCB0aGUgcHJvY2Vzc2luZyBzdGFnZSBpbiB0aGUgb3V0cHV0IE1hcmtkb3duOgpgYGBqYXZhc2NyaXB0Cid1c2Ugc3RyaWN0JzsKCmNvbnN0IGNvbnZlcnRlciA9IHJlcXVpcmUoJ3dpZGRlcnNoaW5zJyk7CmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTsKCmxldCBvcHRpb25zID0ge307Cm9wdGlvbnMudGVtcGxhdGVDYWxsYmFjayA9IG15Q2FsbEJhY2tGdW5jdGlvbjsKCmZ1bmN0aW9uIG15Q2FsbEJhY2tGdW5jdGlvbih0ZW1wbGF0ZU5hbWUsIHN0YWdlLCBkYXRhKSB7CiAgbGV0IHN0YXR1c1N0cmluZyA9ICJUZW1wbGF0ZSBuYW1lOiAiICsgdGVtcGxhdGVOYW1lICsgIlxuIjsKICBzdGF0dXNTdHJpbmcgKz0gIlN0YWdlOiAiICsgc3RhZ2UgKyAiXG4iOwogIGRhdGEuYXBwZW5kID0gc3RhdHVzU3RyaW5nOwogIHJldHVybiBkYXRhOwp9Cgpjb25zdCBhcGlPYmogPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYygnZGVmcy9wZXRzdG9yZTMuanNvbicpKTsKCmNvbnZlcnRlci5jb252ZXJ0KGFwaU9iaiwgb3B0aW9ucykKLnRoZW4oc3RyID0+IHsKICBmcy53cml0ZUZpbGVTeW5jKCdwZXRzdG9yZTNPdXRwdXQubWQnLCBzdHIsICd1dGY4Jyk7Cn0pOwpgYGAKCiMjIFRlc3RzCgpUbyBydW4gYSB0ZXN0LXN1aXRlOgoKYGBgCm5vZGUgdGVzdFJ1bm5lciB7cGF0aC10by1BUElzfQpgYGAKClRoZSB0ZXN0IGhhcm5lc3MgY3VycmVudGx5IGV4cGVjdHMgYC55YW1sYCBvciBgLmpzb25gIGZpbGVzIGFuZCBoYXMgYmVlbiB0ZXN0ZWQgYWdhaW5zdAoKKiBbQVBJcy5ndXJ1XShodHRwczovL2dpdGh1Yi5jb20vQVBJcy1ndXJ1L09wZW5BUEktZGlyZWN0b3J5KQoqIFtNZXJtYWRlIE9wZW5BUEkgZGVmaW5pdGlvbnMgY29sbGVjdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21lcm1hZGUvT3BlbkFQSS1kZWZpbml0aW9ucykKCiMjIyBDb21wYXJpc29uIGJldHdlZW4gdGhpcyBhbmQgb3RoZXIgT3BlbkFQSSAvIFN3YWdnZXIgdG8gU2xhdGUgdG9vbHMKCltCbG9nIHBvc3RpbmddKGh0dHBzOi8vZGV2LnRvL21pa2VyYWxwaHNvbi9jb21wYXJpc29uLW9mLXZhcmlvdXMtb3BlbmFwaXN3YWdnZXItdG8tc2xhdGUtY29udmVyc2lvbi10b29scykgYnkgdGhlIGF1dGhvciBvZiBXaWRkZXJzaGlucy4KCiMjIyBBY2tub3dsZWRnZW1lbnRzCgoqIFtAbGF0Z2Vla10oaHR0cHM6Ly9naXRodWIuY29tL0xhdEdlZWspIGZvciB0aGUgbG9nby4KKiBbQHZmZXJuYW5kZXN0b3B0YWxdKGh0dHBzOi8vZ2l0aHViLmNvbS92ZmVybmFuZGVzdG9wdGFsKSBmb3IgdGhlIGh0dHBzbmlwcGV0IHN1cHBvcnQuCgojIyMgV2lkZGVyc2hpbnMgaW4gdGhlIHdpbGQKClBsZWFzZSBmZWVsIGZyZWUgdG8gYWRkIGEgbGluayB0byB5b3VyIEFQSSBkb2N1bWVudGF0aW9uIGhlcmUuCgoqIFtHT1YuVUsgQ29udGVudCBBUEkgdjEuMC4wXShodHRwczovL2NvbnRlbnQtYXBpLnB1Ymxpc2hpbmcuc2VydmljZS5nb3YudWsvcmVmZXJlbmNlLmh0bWwpCiogW0dPViBVSyBEaWdpdGFsIE1hcmtldHBsYWNlIEFQSSB2MS4wLjBdKGh0dHBzOi8vYWxwaGFnb3YuZ2l0aHViLmlvL2RpZ2l0YWxtYXJrZXRwbGFjZS1hcGktZG9jcy8jZGlnaXRhbC1tYXJrZXRwbGFjZS1hcGktdjEtMC0wKQoqIFtDYXBpdGFsIE9uZSBBUEldKGh0dHBzOi8vd3d3LmNhcGl0YWxvbmUuY28udWsvZGV2ZWxvcGVyL2FwaS8pCiogW0NvZ25pdGUgRGF0YSBBUEldKGh0dHA6Ly9kb2MuY29nbml0ZWRhdGEuY29tLykKKiBbU3BlY2tsZVdvcmtzIEFQSV0oaHR0cHM6Ly9zcGVja2xld29ya3MuZ2l0aHViLmlvL1NwZWNrbGVTcGVjcykKKiBbQmFuayBieSBBUEldKGh0dHBzOi8vdGJpY3IuZ2l0aHViLmlvL2JhbmstYXBpL2JhbmstYXBpLmh0bWwpCiogW09wZW4gRU8gQVBJXShodHRwczovL29wZW4tZW8uZ2l0aHViLmlvL29wZW5lby1hcGktcG9jL2FwaXJlZmVyZW5jZS9pbmRleC5odG1sKQoqIFtTcGxpdCBQYXltZW50cyBBUEldKGh0dHA6Ly9kb2NzLnNwbGl0LmNhc2gvKQoqIFtMZUFwcCBkYWVtb24gQVBJXShodHRwczovL2xlYXBwLXRvLmdpdGh1Yi5pby9zaGlucy9pbmRleC5odG1sKQoqIFtTaHV0dGVyc3RvY2sgQVBJXShodHRwczovL2FwaS1yZWZlcmVuY2Uuc2h1dHRlcnN0b2NrLmNvbS8pCiogW1Nob3RzdGFjayBWaWRlbyBFZGl0aW5nIEFQSV0oaHR0cHM6Ly9zaG90c3RhY2suaW8vZG9jcy9hcGkvaW5kZXguaHRtbCkKKiBbQWRtZXRyaWNrcyBBUEldKGh0dHA6Ly9kZXYuYWRtZXRyaWNrcy5jb20vKQoqIFtFcWl2byBBUEldKGh0dHBzOi8vZXFpdm8ub3JnLykKCiMjIyBXaWRkZXJzaGlucyBhbmQgUmVTbGF0ZQoKKiBgV2lkZGVyc2hpbnNgIHdvcmtzIHdlbGwgd2l0aCBTbGF0ZSwgYnV0IGZvciBhIHNvbGVseSBOb2RlLmpzLWJhc2VkIGV4cGVyaWVuY2UsIHdoeSBub3QgdHJ5IHRoZSBbUmVTbGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL21lcm1hZGUvcmVzbGF0ZSkgcG9ydD8K readmeEtag: '"ffd46c7c9450860c650ad1506e1cf0f2f9953b28"' readmeLastModified: Fri, 26 Aug 2022 14:47:38 GMT repositoryId: 70106620 description: >- OpenAPI / Swagger, AsyncAPI & Semoasa definitions to (re)Slate compatible markdown created: '2016-10-05T23:09:13Z' updated: '2024-08-25T21:51:37Z' language: JavaScript archived: false stars: 1478 watchers: 17 forks: 321 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: MIT repoEtag: '"a45884cf1374166b92e14f84e950c02fa63a53d95a81a2b7c19740f08f746603"' repoLastModified: Sun, 25 Aug 2024 21:51:37 GMT foundInMaster: true homepage: https://github.com/Mermade/widdershins id: ab4fb414065011325683c7b582a9e582 - source: openapi3 tags name: FastAPI homepage: https://github.com/tiangolo/fastapi language: Python source_description: >- OpenAPI 3 based, high performance, Python 3.6+ API framework with automatic data validation, serialization and great editor support. category: Server Implementations repository: https://github.com/fastapi/fastapi v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL2xvZ28tbWFyZ2luL2xvZ28tdGVhbC5wbmciIGFsdD0iRmFzdEFQSSI+PC9hPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGVtPkZhc3RBUEkgZnJhbWV3b3JrLCBoaWdoIHBlcmZvcm1hbmNlLCBlYXN5IHRvIGxlYXJuLCBmYXN0IHRvIGNvZGUsIHJlYWR5IGZvciBwcm9kdWN0aW9uPC9lbT4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RhcGkvZmFzdGFwaS9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBVGVzdCtldmVudCUzQXB1c2grYnJhbmNoJTNBbWFzdGVyIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RhcGkvZmFzdGFwaS93b3JrZmxvd3MvVGVzdC9iYWRnZS5zdmc/ZXZlbnQ9cHVzaCZicmFuY2g9bWFzdGVyIiBhbHQ9IlRlc3QiPgo8L2E+CjxhIGhyZWY9Imh0dHBzOi8vY292ZXJhZ2UtYmFkZ2Uuc2FtdWVsY29sdmluLndvcmtlcnMuZGV2L3JlZGlyZWN0L2Zhc3RhcGkvZmFzdGFwaSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vY292ZXJhZ2UtYmFkZ2Uuc2FtdWVsY29sdmluLndvcmtlcnMuZGV2L2Zhc3RhcGkvZmFzdGFwaS5zdmciIGFsdD0iQ292ZXJhZ2UiPgo8L2E+CjxhIGhyZWY9Imh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9mYXN0YXBpIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvZmFzdGFwaT9jb2xvcj0lMjMzNEQwNTgmbGFiZWw9cHlwaSUyMHBhY2thZ2UiIGFsdD0iUGFja2FnZSB2ZXJzaW9uIj4KPC9hPgo8YSBocmVmPSJodHRwczovL3B5cGkub3JnL3Byb2plY3QvZmFzdGFwaSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL2Zhc3RhcGkuc3ZnP2NvbG9yPSUyMzM0RDA1OCIgYWx0PSJTdXBwb3J0ZWQgUHl0aG9uIHZlcnNpb25zIj4KPC9hPgo8L3A+CgotLS0KCioqRG9jdW1lbnRhdGlvbioqOiA8YSBocmVmPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbTwvYT4KCioqU291cmNlIENvZGUqKjogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RhcGkvZmFzdGFwaSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0YXBpL2Zhc3RhcGk8L2E+CgotLS0KCkZhc3RBUEkgaXMgYSBtb2Rlcm4sIGZhc3QgKGhpZ2gtcGVyZm9ybWFuY2UpLCB3ZWIgZnJhbWV3b3JrIGZvciBidWlsZGluZyBBUElzIHdpdGggUHl0aG9uIGJhc2VkIG9uIHN0YW5kYXJkIFB5dGhvbiB0eXBlIGhpbnRzLgoKVGhlIGtleSBmZWF0dXJlcyBhcmU6CgoqICoqRmFzdCoqOiBWZXJ5IGhpZ2ggcGVyZm9ybWFuY2UsIG9uIHBhciB3aXRoICoqTm9kZUpTKiogYW5kICoqR28qKiAodGhhbmtzIHRvIFN0YXJsZXR0ZSBhbmQgUHlkYW50aWMpLiBbT25lIG9mIHRoZSBmYXN0ZXN0IFB5dGhvbiBmcmFtZXdvcmtzIGF2YWlsYWJsZV0oI3BlcmZvcm1hbmNlKS4KKiAqKkZhc3QgdG8gY29kZSoqOiBJbmNyZWFzZSB0aGUgc3BlZWQgdG8gZGV2ZWxvcCBmZWF0dXJlcyBieSBhYm91dCAyMDAlIHRvIDMwMCUuICoKKiAqKkZld2VyIGJ1Z3MqKjogUmVkdWNlIGFib3V0IDQwJSBvZiBodW1hbiAoZGV2ZWxvcGVyKSBpbmR1Y2VkIGVycm9ycy4gKgoqICoqSW50dWl0aXZlKio6IEdyZWF0IGVkaXRvciBzdXBwb3J0LiA8YWJiciB0aXRsZT0iYWxzbyBrbm93biBhcyBhdXRvLWNvbXBsZXRlLCBhdXRvY29tcGxldGlvbiwgSW50ZWxsaVNlbnNlIj5Db21wbGV0aW9uPC9hYmJyPiBldmVyeXdoZXJlLiBMZXNzIHRpbWUgZGVidWdnaW5nLgoqICoqRWFzeSoqOiBEZXNpZ25lZCB0byBiZSBlYXN5IHRvIHVzZSBhbmQgbGVhcm4uIExlc3MgdGltZSByZWFkaW5nIGRvY3MuCiogKipTaG9ydCoqOiBNaW5pbWl6ZSBjb2RlIGR1cGxpY2F0aW9uLiBNdWx0aXBsZSBmZWF0dXJlcyBmcm9tIGVhY2ggcGFyYW1ldGVyIGRlY2xhcmF0aW9uLiBGZXdlciBidWdzLgoqICoqUm9idXN0Kio6IEdldCBwcm9kdWN0aW9uLXJlYWR5IGNvZGUuIFdpdGggYXV0b21hdGljIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24uCiogKipTdGFuZGFyZHMtYmFzZWQqKjogQmFzZWQgb24gKGFuZCBmdWxseSBjb21wYXRpYmxlIHdpdGgpIHRoZSBvcGVuIHN0YW5kYXJkcyBmb3IgQVBJczogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24iIGNsYXNzPSJleHRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+T3BlbkFQSTwvYT4gKHByZXZpb3VzbHkga25vd24gYXMgU3dhZ2dlcikgYW5kIDxhIGhyZWY9Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5KU09OIFNjaGVtYTwvYT4uCgo8c21hbGw+KiBlc3RpbWF0aW9uIGJhc2VkIG9uIHRlc3RzIG9uIGFuIGludGVybmFsIGRldmVsb3BtZW50IHRlYW0sIGJ1aWxkaW5nIHByb2R1Y3Rpb24gYXBwbGljYXRpb25zLjwvc21hbGw+CgojIyBTcG9uc29ycwoKPCEtLSBzcG9uc29ycyAtLT4KCjxhIGhyZWY9Imh0dHBzOi8vY3J5cHRhcGkuaW8vIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkNyeXB0QVBJOiBZb3VyIGVhc3kgdG8gdXNlLCBzZWN1cmUgYW5kIHByaXZhY3kgb3JpZW50ZWQgcGF5bWVudCBnYXRld2F5LiI+PGltZyBzcmM9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL3Nwb25zb3JzL2NyeXB0YXBpLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3BsYXRmb3JtLnNoL3RyeS1pdC1ub3cvP3V0bV9zb3VyY2U9ZmFzdGFwaS1zaWdudXAmdXRtX21lZGl1bT1iYW5uZXImdXRtX2NhbXBhaWduPUZhc3RBUEktc2lnbnVwLUp1bmUtMjAyMyIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJCdWlsZCwgcnVuIGFuZCBzY2FsZSB5b3VyIGFwcHMgb24gYSBtb2Rlcm4sIHJlbGlhYmxlLCBhbmQgc2VjdXJlIFBhYVMuIj48aW1nIHNyYz0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvc3BvbnNvcnMvcGxhdGZvcm0tc2gucG5nIj48L2E+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnBvcnRlci5ydW4iIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iRGVwbG95IEZhc3RBUEkgb24gQVdTIHdpdGggYSBmZXcgY2xpY2tzIj48aW1nIHNyYz0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvc3BvbnNvcnMvcG9ydGVyLnBuZyI+PC9hPgo8YSBocmVmPSJodHRwczovL2J1bXAuc2gvZmFzdGFwaT91dG1fc291cmNlPWZhc3RhcGkmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249c3BvbnNvciIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJBdXRvbWF0ZSBGYXN0QVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiB3aXRoIEJ1bXAuc2giPjxpbWcgc3JjPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9zcG9uc29ycy9idW1wLXNoLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci8/dXRtX3NvdXJjZT1mYXN0YXBpJnV0bV9tZWRpdW09d2Vic2l0ZSZ1dG1fY2FtcGFpZ249bWFpbi1iYWRnZSIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJTY2FsYXI6IEJlYXV0aWZ1bCBPcGVuLVNvdXJjZSBBUEkgUmVmZXJlbmNlcyBmcm9tIFN3YWdnZXIvT3BlbkFQSSBmaWxlcyI+PGltZyBzcmM9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL3Nwb25zb3JzL3NjYWxhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cucHJvcGVsYXV0aC5jb20vP3V0bV9zb3VyY2U9ZmFzdGFwaSZ1dG1fY2FtcGFpZ249MTIyMyZ1dG1fbWVkaXVtPW1haW5iYWRnZSIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJBdXRoLCB1c2VyIG1hbmFnZW1lbnQgYW5kIG1vcmUgZm9yIHlvdXIgQjJCIHByb2R1Y3QiPjxpbWcgc3JjPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9zcG9uc29ycy9wcm9wZWxhdXRoLnBuZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy53aXRoY29oZXJlbmNlLmNvbS8/dXRtX21lZGl1bT1hZHZlcnRpc2luZyZ1dG1fc291cmNlPWZhc3RhcGkmdXRtX2NhbXBhaWduPXdlYnNpdGUiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iQ29oZXJlbmNlIj48aW1nIHNyYz0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvc3BvbnNvcnMvY29oZXJlbmNlLnBuZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5tb25nb2RiLmNvbS9kZXZlbG9wZXIvbGFuZ3VhZ2VzL3B5dGhvbi9weXRob24tcXVpY2tzdGFydC1mYXN0YXBpLz91dG1fY2FtcGFpZ249ZmFzdGFwaV9mcmFtZXdvcmsmdXRtX3NvdXJjZT1mYXN0YXBpX3Nwb25zb3JzaGlwJnV0bV9tZWRpdW09d2ViX3JlZmVycmFsIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlNpbXBsaWZ5IEZ1bGwgU3RhY2sgRGV2ZWxvcG1lbnQgd2l0aCBGYXN0QVBJICYgTW9uZ29EQiI+PGltZyBzcmM9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL3Nwb25zb3JzL21vbmdvZGIucG5nIj48L2E+CjxhIGhyZWY9Imh0dHBzOi8venVwbG8ubGluay9mYXN0YXBpLWdoIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9Ilp1cGxvOiBTY2FsZSwgUHJvdGVjdCwgRG9jdW1lbnQsIGFuZCBNb25ldGl6ZSB5b3VyIEZhc3RBUEkiPjxpbWcgc3JjPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9zcG9uc29ycy96dXBsby5wbmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9maW5lLmRldj9yZWY9ZmFzdGFwaWJhZGdlIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkZpbmUncyBBSSBGYXN0QVBJIFdvcmtmbG93OiBFZmZvcnRsZXNzbHkgRGVwbG95IGFuZCBJbnRlZ3JhdGUgRmFzdEFQSSBpbnRvIFlvdXIgUHJvamVjdCI+PGltZyBzcmM9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL3Nwb25zb3JzL2ZpbmUucG5nIj48L2E+CjxhIGhyZWY9Imh0dHBzOi8vbGlibGFiLmNvbT91dG1fc291cmNlPWZhc3RhcGkiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0ibGlibGFiIC0gR2VuZXJhdGUgU0RLcyBmcm9tIEZhc3RBUEkiPjxpbWcgc3JjPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9zcG9uc29ycy9saWJsYWIucG5nIj48L2E+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwc2V0LWFpL2hheXN0YWNrLyIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJCdWlsZCBwb3dlcmZ1bCBzZWFyY2ggZnJvbSBjb21wb3NhYmxlLCBvcGVuIHNvdXJjZSBidWlsZGluZyBibG9ja3MiPjxpbWcgc3JjPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9zcG9uc29ycy9oYXlzdGFjay1mYXN0YXBpLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL2RhdGFiZW50by5jb20vIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlBheSBhcyB5b3UgZ28gZm9yIG1hcmtldCBkYXRhIj48aW1nIHNyYz0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvc3BvbnNvcnMvZGF0YWJlbnRvLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3NwZWFrZWFzeS5jb20/dXRtX3NvdXJjZT1mYXN0YXBpK3JlcG8mdXRtX21lZGl1bT1naXRodWIrc3BvbnNvcnNoaXAiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iU0RLcyBmb3IgeW91ciBBUEkgfCBTcGVha2Vhc3kiPjxpbWcgc3JjPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9zcG9uc29ycy9zcGVha2Vhc3kucG5nIj48L2E+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnN2aXguY29tLyIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJTdml4IC0gV2ViaG9va3MgYXMgYSBzZXJ2aWNlIj48aW1nIHNyYz0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvc3BvbnNvcnMvc3ZpeC5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuY29kYWN5LmNvbS8/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT1zcG9uc29ycyZ1dG1faWQ9cGlvbmVlcnMiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iVGFrZSBjb2RlIHJldmlld3MgZnJvbSBob3VycyB0byBtaW51dGVzIj48aW1nIHNyYz0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvc3BvbnNvcnMvY29kYWN5LnBuZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5zdGFpbmxlc3NhcGkuY29tLz91dG1fc291cmNlPWZhc3RhcGkmdXRtX21lZGl1bT1yZWZlcnJhbCIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJTdGFpbmxlc3MgfCBHZW5lcmF0ZSBiZXN0LWluLWNsYXNzIFNES3MiPjxpbWcgc3JjPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9zcG9uc29ycy9zdGFpbmxlc3MucG5nIj48L2E+Cgo8IS0tIC9zcG9uc29ycyAtLT4KCjxhIGhyZWY9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vZmFzdGFwaS1wZW9wbGUvI3Nwb25zb3JzIiBjbGFzcz0iZXh0ZXJuYWwtbGluayIgdGFyZ2V0PSJfYmxhbmsiPk90aGVyIHNwb25zb3JzPC9hPgoKIyMgT3BpbmlvbnMKCiJfWy4uLl0gSSdtIHVzaW5nICoqRmFzdEFQSSoqIGEgdG9uIHRoZXNlIGRheXMuIFsuLi5dIEknbSBhY3R1YWxseSBwbGFubmluZyB0byB1c2UgaXQgZm9yIGFsbCBvZiBteSB0ZWFtJ3MgKipNTCBzZXJ2aWNlcyBhdCBNaWNyb3NvZnQqKi4gU29tZSBvZiB0aGVtIGFyZSBnZXR0aW5nIGludGVncmF0ZWQgaW50byB0aGUgY29yZSAqKldpbmRvd3MqKiBwcm9kdWN0IGFuZCBzb21lICoqT2ZmaWNlKiogcHJvZHVjdHMuXyIKCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyBtYXJnaW4tcmlnaHQ6IDEwJTsiPkthYmlyIEtoYW4gLSA8c3Ryb25nPk1pY3Jvc29mdDwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFzdGFwaS9mYXN0YXBpL3B1bGwvMjYiIHRhcmdldD0iX2JsYW5rIj48c21hbGw+KHJlZik8L3NtYWxsPjwvYT48L2Rpdj4KCi0tLQoKIl9XZSBhZG9wdGVkIHRoZSAqKkZhc3RBUEkqKiBsaWJyYXJ5IHRvIHNwYXduIGEgKipSRVNUKiogc2VydmVyIHRoYXQgY2FuIGJlIHF1ZXJpZWQgdG8gb2J0YWluICoqcHJlZGljdGlvbnMqKi4gW2ZvciBMdWR3aWddXyIKCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyBtYXJnaW4tcmlnaHQ6IDEwJTsiPlBpZXJvIE1vbGlubywgWWFyb3NsYXYgRHVkaW4sIGFuZCBTYWkgU3VtYW50aCBNaXJ5YWxhIC0gPHN0cm9uZz5VYmVyPC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vZW5nLnViZXIuY29tL2x1ZHdpZy12MC0yLyIgdGFyZ2V0PSJfYmxhbmsiPjxzbWFsbD4ocmVmKTwvc21hbGw+PC9hPjwvZGl2PgoKLS0tCgoiXyoqTmV0ZmxpeCoqIGlzIHBsZWFzZWQgdG8gYW5ub3VuY2UgdGhlIG9wZW4tc291cmNlIHJlbGVhc2Ugb2Ygb3VyICoqY3Jpc2lzIG1hbmFnZW1lbnQqKiBvcmNoZXN0cmF0aW9uIGZyYW1ld29yazogKipEaXNwYXRjaCoqISBbYnVpbHQgd2l0aCAqKkZhc3RBUEkqKl1fIgoKPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IG1hcmdpbi1yaWdodDogMTAlOyI+S2V2aW4gR2xpc3NvbiwgTWFyYyBWaWxhbm92YSwgRm9yZXN0IE1vbnNlbiAtIDxzdHJvbmc+TmV0ZmxpeDwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL25ldGZsaXh0ZWNoYmxvZy5jb20vaW50cm9kdWNpbmctZGlzcGF0Y2gtZGE0YjhhMmE4MDcyIiB0YXJnZXQ9Il9ibGFuayI+PHNtYWxsPihyZWYpPC9zbWFsbD48L2E+PC9kaXY+CgotLS0KCiJfSeKAmW0gb3ZlciB0aGUgbW9vbiBleGNpdGVkIGFib3V0ICoqRmFzdEFQSSoqLiBJdOKAmXMgc28gZnVuIV8iCgo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLXJpZ2h0OiAxMCU7Ij5CcmlhbiBPa2tlbiAtIDxzdHJvbmc+PGEgaHJlZj0iaHR0cHM6Ly9weXRob25ieXRlcy5mbS9lcGlzb2Rlcy9zaG93LzEyMy90aW1lLXRvLXJpZ2h0LXRoZS1weS13cm9uZ3M/dGltZV9pbl9zZWM9ODU1IiB0YXJnZXQ9Il9ibGFuayI+UHl0aG9uIEJ5dGVzPC9hPiBwb2RjYXN0IGhvc3Q8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9icmlhbm9ra2VuL3N0YXR1cy8xMTEyMjIwMDc5OTcyNzI4ODMyIiB0YXJnZXQ9Il9ibGFuayI+PHNtYWxsPihyZWYpPC9zbWFsbD48L2E+PC9kaXY+CgotLS0KCiJfSG9uZXN0bHksIHdoYXQgeW91J3ZlIGJ1aWx0IGxvb2tzIHN1cGVyIHNvbGlkIGFuZCBwb2xpc2hlZC4gSW4gbWFueSB3YXlzLCBpdCdzIHdoYXQgSSB3YW50ZWQgKipIdWcqKiB0byBiZSAtIGl0J3MgcmVhbGx5IGluc3BpcmluZyB0byBzZWUgc29tZW9uZSBidWlsZCB0aGF0Ll8iCgo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLXJpZ2h0OiAxMCU7Ij5UaW1vdGh5IENyb3NsZXkgLSA8c3Ryb25nPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmh1Zy5yZXN0LyIgdGFyZ2V0PSJfYmxhbmsiPkh1ZzwvYT4gY3JlYXRvcjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL25ld3MueWNvbWJpbmF0b3IuY29tL2l0ZW0/aWQ9MTk0NTU0NjUiIHRhcmdldD0iX2JsYW5rIj48c21hbGw+KHJlZik8L3NtYWxsPjwvYT48L2Rpdj4KCi0tLQoKIl9JZiB5b3UncmUgbG9va2luZyB0byBsZWFybiBvbmUgKiptb2Rlcm4gZnJhbWV3b3JrKiogZm9yIGJ1aWxkaW5nIFJFU1QgQVBJcywgY2hlY2sgb3V0ICoqRmFzdEFQSSoqIFsuLi5dIEl0J3MgZmFzdCwgZWFzeSB0byB1c2UgYW5kIGVhc3kgdG8gbGVhcm4gWy4uLl1fIgoKIl9XZSd2ZSBzd2l0Y2hlZCBvdmVyIHRvICoqRmFzdEFQSSoqIGZvciBvdXIgKipBUElzKiogWy4uLl0gSSB0aGluayB5b3UnbGwgbGlrZSBpdCBbLi4uXV8iCgo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLXJpZ2h0OiAxMCU7Ij5JbmVzIE1vbnRhbmkgLSBNYXR0aGV3IEhvbm5pYmFsIC0gPHN0cm9uZz48YSBocmVmPSJodHRwczovL2V4cGxvc2lvbi5haSIgdGFyZ2V0PSJfYmxhbmsiPkV4cGxvc2lvbiBBSTwvYT4gZm91bmRlcnMgLSA8YSBocmVmPSJodHRwczovL3NwYWN5LmlvIiB0YXJnZXQ9Il9ibGFuayI+c3BhQ3k8L2E+IGNyZWF0b3JzPC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vX2luZXNtb250YW5pL3N0YXR1cy8xMTQ0MTczMjI1MzIyMTQzNzQ0IiB0YXJnZXQ9Il9ibGFuayI+PHNtYWxsPihyZWYpPC9zbWFsbD48L2E+IC0gPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9ob25uaWJhbC9zdGF0dXMvMTE0NDAzMTQyMTg1OTY1NTY4MCIgdGFyZ2V0PSJfYmxhbmsiPjxzbWFsbD4ocmVmKTwvc21hbGw+PC9hPjwvZGl2PgoKLS0tCgoiX0lmIGFueW9uZSBpcyBsb29raW5nIHRvIGJ1aWxkIGEgcHJvZHVjdGlvbiBQeXRob24gQVBJLCBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgKipGYXN0QVBJKiouIEl0IGlzICoqYmVhdXRpZnVsbHkgZGVzaWduZWQqKiwgKipzaW1wbGUgdG8gdXNlKiogYW5kICoqaGlnaGx5IHNjYWxhYmxlKiosIGl0IGhhcyBiZWNvbWUgYSAqKmtleSBjb21wb25lbnQqKiBpbiBvdXIgQVBJIGZpcnN0IGRldmVsb3BtZW50IHN0cmF0ZWd5IGFuZCBpcyBkcml2aW5nIG1hbnkgYXV0b21hdGlvbnMgYW5kIHNlcnZpY2VzIHN1Y2ggYXMgb3VyIFZpcnR1YWwgVEFDIEVuZ2luZWVyLl8iCgo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLXJpZ2h0OiAxMCU7Ij5EZW9uIFBpbGxzYnVyeSAtIDxzdHJvbmc+Q2lzY288L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3Bvc3RzL2Rlb25waWxsc2J1cnlfY2lzY28tY3gtcHl0aG9uLWFjdGl2aXR5LTY5NjMyNDI2Mjg1MzY0ODc5MzYtdHJBcC8iIHRhcmdldD0iX2JsYW5rIj48c21hbGw+KHJlZik8L3NtYWxsPjwvYT48L2Rpdj4KCi0tLQoKIyMgKipUeXBlcioqLCB0aGUgRmFzdEFQSSBvZiBDTElzCgo8YSBocmVmPSJodHRwczovL3R5cGVyLnRpYW5nb2xvLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3R5cGVyLnRpYW5nb2xvLmNvbS9pbWcvbG9nby1tYXJnaW4vbG9nby1tYXJnaW4tdmVjdG9yLnN2ZyIgc3R5bGU9IndpZHRoOiAyMCU7Ij48L2E+CgpJZiB5b3UgYXJlIGJ1aWxkaW5nIGEgPGFiYnIgdGl0bGU9IkNvbW1hbmQgTGluZSBJbnRlcmZhY2UiPkNMSTwvYWJicj4gYXBwIHRvIGJlIHVzZWQgaW4gdGhlIHRlcm1pbmFsIGluc3RlYWQgb2YgYSB3ZWIgQVBJLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly90eXBlci50aWFuZ29sby5jb20vIiBjbGFzcz0iZXh0ZXJuYWwtbGluayIgdGFyZ2V0PSJfYmxhbmsiPioqVHlwZXIqKjwvYT4uCgoqKlR5cGVyKiogaXMgRmFzdEFQSSdzIGxpdHRsZSBzaWJsaW5nLiBBbmQgaXQncyBpbnRlbmRlZCB0byBiZSB0aGUgKipGYXN0QVBJIG9mIENMSXMqKi4g4oyo77iPIPCfmoAKCiMjIFJlcXVpcmVtZW50cwoKRmFzdEFQSSBzdGFuZHMgb24gdGhlIHNob3VsZGVycyBvZiBnaWFudHM6CgoqIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnN0YXJsZXR0ZS5pby8iIGNsYXNzPSJleHRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+U3RhcmxldHRlPC9hPiBmb3IgdGhlIHdlYiBwYXJ0cy4KKiA8YSBocmVmPSJodHRwczovL2RvY3MucHlkYW50aWMuZGV2LyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5QeWRhbnRpYzwvYT4gZm9yIHRoZSBkYXRhIHBhcnRzLgoKIyMgSW5zdGFsbGF0aW9uCgpDcmVhdGUgYW5kIGFjdGl2YXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS92aXJ0dWFsLWVudmlyb25tZW50cy8iIGNsYXNzPSJleHRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+dmlydHVhbCBlbnZpcm9ubWVudDwvYT4gYW5kIHRoZW4gaW5zdGFsbCBGYXN0QVBJOgoKPGRpdiBjbGFzcz0idGVybXkiPgoKYGBgY29uc29sZQokIHBpcCBpbnN0YWxsICJmYXN0YXBpW3N0YW5kYXJkXSIKCi0tLT4gMTAwJQpgYGAKCjwvZGl2PgoKKipOb3RlKio6IE1ha2Ugc3VyZSB5b3UgcHV0IGAiZmFzdGFwaVtzdGFuZGFyZF0iYCBpbiBxdW90ZXMgdG8gZW5zdXJlIGl0IHdvcmtzIGluIGFsbCB0ZXJtaW5hbHMuCgojIyBFeGFtcGxlCgojIyMgQ3JlYXRlIGl0CgoqIENyZWF0ZSBhIGZpbGUgYG1haW4ucHlgIHdpdGg6CgpgYGBQeXRob24KZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uCgpmcm9tIGZhc3RhcGkgaW1wb3J0IEZhc3RBUEkKCmFwcCA9IEZhc3RBUEkoKQoKCkBhcHAuZ2V0KCIvIikKZGVmIHJlYWRfcm9vdCgpOgogICAgcmV0dXJuIHsiSGVsbG8iOiAiV29ybGQifQoKCkBhcHAuZ2V0KCIvaXRlbXMve2l0ZW1faWR9IikKZGVmIHJlYWRfaXRlbShpdGVtX2lkOiBpbnQsIHE6IFVuaW9uW3N0ciwgTm9uZV0gPSBOb25lKToKICAgIHJldHVybiB7Iml0ZW1faWQiOiBpdGVtX2lkLCAicSI6IHF9CmBgYAoKPGRldGFpbHMgbWFya2Rvd249IjEiPgo8c3VtbWFyeT5PciB1c2UgPGNvZGU+YXN5bmMgZGVmPC9jb2RlPi4uLjwvc3VtbWFyeT4KCklmIHlvdXIgY29kZSB1c2VzIGBhc3luY2AgLyBgYXdhaXRgLCB1c2UgYGFzeW5jIGRlZmA6CgpgYGBQeXRob24gaGxfbGluZXM9IjkgIDE0Igpmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24KCmZyb20gZmFzdGFwaSBpbXBvcnQgRmFzdEFQSQoKYXBwID0gRmFzdEFQSSgpCgoKQGFwcC5nZXQoIi8iKQphc3luYyBkZWYgcmVhZF9yb290KCk6CiAgICByZXR1cm4geyJIZWxsbyI6ICJXb3JsZCJ9CgoKQGFwcC5nZXQoIi9pdGVtcy97aXRlbV9pZH0iKQphc3luYyBkZWYgcmVhZF9pdGVtKGl0ZW1faWQ6IGludCwgcTogVW5pb25bc3RyLCBOb25lXSA9IE5vbmUpOgogICAgcmV0dXJuIHsiaXRlbV9pZCI6IGl0ZW1faWQsICJxIjogcX0KYGBgCgoqKk5vdGUqKjoKCklmIHlvdSBkb24ndCBrbm93LCBjaGVjayB0aGUgXyJJbiBhIGh1cnJ5PyJfIHNlY3Rpb24gYWJvdXQgPGEgaHJlZj0iaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9hc3luYy8jaW4tYS1odXJyeSIgdGFyZ2V0PSJfYmxhbmsiPmBhc3luY2AgYW5kIGBhd2FpdGAgaW4gdGhlIGRvY3M8L2E+LgoKPC9kZXRhaWxzPgoKIyMjIFJ1biBpdAoKUnVuIHRoZSBzZXJ2ZXIgd2l0aDoKCjxkaXYgY2xhc3M9InRlcm15Ij4KCmBgYGNvbnNvbGUKJCBmYXN0YXBpIGRldiBtYWluLnB5Cgog4pWt4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIEZhc3RBUEkgQ0xJIC0gRGV2ZWxvcG1lbnQgbW9kZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDila4KIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCCiDilIIgIFNlcnZpbmcgYXQ6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCAgICAgICAgICAgICAgICAgIOKUggog4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKIOKUgiAgQVBJIGRvY3M6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9kb2NzICAgICAgICAgICAgICAg4pSCCiDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggog4pSCICBSdW5uaW5nIGluIGRldmVsb3BtZW50IG1vZGUsIGZvciBwcm9kdWN0aW9uIHVzZTogICDilIIKIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCCiDilIIgIGZhc3RhcGkgcnVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggog4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKIOKVsOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKVrwoKSU5GTzogICAgIFdpbGwgd2F0Y2ggZm9yIGNoYW5nZXMgaW4gdGhlc2UgZGlyZWN0b3JpZXM6IFsnL2hvbWUvdXNlci9jb2RlL2F3ZXNvbWVhcHAnXQpJTkZPOiAgICAgVXZpY29ybiBydW5uaW5nIG9uIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCAoUHJlc3MgQ1RSTCtDIHRvIHF1aXQpCklORk86ICAgICBTdGFydGVkIHJlbG9hZGVyIHByb2Nlc3MgWzIyNDg3NTVdIHVzaW5nIFdhdGNoRmlsZXMKSU5GTzogICAgIFN0YXJ0ZWQgc2VydmVyIHByb2Nlc3MgWzIyNDg3NTddCklORk86ICAgICBXYWl0aW5nIGZvciBhcHBsaWNhdGlvbiBzdGFydHVwLgpJTkZPOiAgICAgQXBwbGljYXRpb24gc3RhcnR1cCBjb21wbGV0ZS4KYGBgCgo8L2Rpdj4KCjxkZXRhaWxzIG1hcmtkb3duPSIxIj4KPHN1bW1hcnk+QWJvdXQgdGhlIGNvbW1hbmQgPGNvZGU+ZmFzdGFwaSBkZXYgbWFpbi5weTwvY29kZT4uLi48L3N1bW1hcnk+CgpUaGUgY29tbWFuZCBgZmFzdGFwaSBkZXZgIHJlYWRzIHlvdXIgYG1haW4ucHlgIGZpbGUsIGRldGVjdHMgdGhlICoqRmFzdEFQSSoqIGFwcCBpbiBpdCwgYW5kIHN0YXJ0cyBhIHNlcnZlciB1c2luZyA8YSBocmVmPSJodHRwczovL3d3dy51dmljb3JuLm9yZyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5Vdmljb3JuPC9hPi4KCkJ5IGRlZmF1bHQsIGBmYXN0YXBpIGRldmAgd2lsbCBzdGFydCB3aXRoIGF1dG8tcmVsb2FkIGVuYWJsZWQgZm9yIGxvY2FsIGRldmVsb3BtZW50LgoKWW91IGNhbiByZWFkIG1vcmUgYWJvdXQgaXQgaW4gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vZmFzdGFwaS1jbGkvIiB0YXJnZXQ9Il9ibGFuayI+RmFzdEFQSSBDTEkgZG9jczwvYT4uCgo8L2RldGFpbHM+CgojIyMgQ2hlY2sgaXQKCk9wZW4geW91ciBicm93c2VyIGF0IDxhIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pdGVtcy81P3E9c29tZXF1ZXJ5IiBjbGFzcz0iZXh0ZXJuYWwtbGluayIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pdGVtcy81P3E9c29tZXF1ZXJ5PC9hPi4KCllvdSB3aWxsIHNlZSB0aGUgSlNPTiByZXNwb25zZSBhczoKCmBgYEpTT04KeyJpdGVtX2lkIjogNSwgInEiOiAic29tZXF1ZXJ5In0KYGBgCgpZb3UgYWxyZWFkeSBjcmVhdGVkIGFuIEFQSSB0aGF0OgoKKiBSZWNlaXZlcyBIVFRQIHJlcXVlc3RzIGluIHRoZSBfcGF0aHNfIGAvYCBhbmQgYC9pdGVtcy97aXRlbV9pZH1gLgoqIEJvdGggX3BhdGhzXyB0YWtlIGBHRVRgIDxlbT5vcGVyYXRpb25zPC9lbT4gKGFsc28ga25vd24gYXMgSFRUUCBfbWV0aG9kc18pLgoqIFRoZSBfcGF0aF8gYC9pdGVtcy97aXRlbV9pZH1gIGhhcyBhIF9wYXRoIHBhcmFtZXRlcl8gYGl0ZW1faWRgIHRoYXQgc2hvdWxkIGJlIGFuIGBpbnRgLgoqIFRoZSBfcGF0aF8gYC9pdGVtcy97aXRlbV9pZH1gIGhhcyBhbiBvcHRpb25hbCBgc3RyYCBfcXVlcnkgcGFyYW1ldGVyXyBgcWAuCgojIyMgSW50ZXJhY3RpdmUgQVBJIGRvY3MKCk5vdyBnbyB0byA8YSBocmVmPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvZG9jcyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vMTI3LjAuMC4xOjgwMDAvZG9jczwvYT4uCgpZb3Ugd2lsbCBzZWUgdGhlIGF1dG9tYXRpYyBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbiAocHJvdmlkZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkiIGNsYXNzPSJleHRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+U3dhZ2dlciBVSTwvYT4pOgoKIVtTd2FnZ2VyIFVJXShodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2ltZy9pbmRleC9pbmRleC0wMS1zd2FnZ2VyLXVpLXNpbXBsZS5wbmcpCgojIyMgQWx0ZXJuYXRpdmUgQVBJIGRvY3MKCkFuZCBub3csIGdvIHRvIDxhIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWRvYyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVkb2M8L2E+LgoKWW91IHdpbGwgc2VlIHRoZSBhbHRlcm5hdGl2ZSBhdXRvbWF0aWMgZG9jdW1lbnRhdGlvbiAocHJvdmlkZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1JlYmlsbHkvUmVEb2MiIGNsYXNzPSJleHRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+UmVEb2M8L2E+KToKCiFbUmVEb2NdKGh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL2luZGV4L2luZGV4LTAyLXJlZG9jLXNpbXBsZS5wbmcpCgojIyBFeGFtcGxlIHVwZ3JhZGUKCk5vdyBtb2RpZnkgdGhlIGZpbGUgYG1haW4ucHlgIHRvIHJlY2VpdmUgYSBib2R5IGZyb20gYSBgUFVUYCByZXF1ZXN0LgoKRGVjbGFyZSB0aGUgYm9keSB1c2luZyBzdGFuZGFyZCBQeXRob24gdHlwZXMsIHRoYW5rcyB0byBQeWRhbnRpYy4KCmBgYFB5dGhvbiBobF9saW5lcz0iNCAgOS0xMiAgMjUtMjciCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbgoKZnJvbSBmYXN0YXBpIGltcG9ydCBGYXN0QVBJCmZyb20gcHlkYW50aWMgaW1wb3J0IEJhc2VNb2RlbAoKYXBwID0gRmFzdEFQSSgpCgoKY2xhc3MgSXRlbShCYXNlTW9kZWwpOgogICAgbmFtZTogc3RyCiAgICBwcmljZTogZmxvYXQKICAgIGlzX29mZmVyOiBVbmlvbltib29sLCBOb25lXSA9IE5vbmUKCgpAYXBwLmdldCgiLyIpCmRlZiByZWFkX3Jvb3QoKToKICAgIHJldHVybiB7IkhlbGxvIjogIldvcmxkIn0KCgpAYXBwLmdldCgiL2l0ZW1zL3tpdGVtX2lkfSIpCmRlZiByZWFkX2l0ZW0oaXRlbV9pZDogaW50LCBxOiBVbmlvbltzdHIsIE5vbmVdID0gTm9uZSk6CiAgICByZXR1cm4geyJpdGVtX2lkIjogaXRlbV9pZCwgInEiOiBxfQoKCkBhcHAucHV0KCIvaXRlbXMve2l0ZW1faWR9IikKZGVmIHVwZGF0ZV9pdGVtKGl0ZW1faWQ6IGludCwgaXRlbTogSXRlbSk6CiAgICByZXR1cm4geyJpdGVtX25hbWUiOiBpdGVtLm5hbWUsICJpdGVtX2lkIjogaXRlbV9pZH0KYGBgCgpUaGUgYGZhc3RhcGkgZGV2YCBzZXJ2ZXIgc2hvdWxkIHJlbG9hZCBhdXRvbWF0aWNhbGx5LgoKIyMjIEludGVyYWN0aXZlIEFQSSBkb2NzIHVwZ3JhZGUKCk5vdyBnbyB0byA8YSBocmVmPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvZG9jcyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vMTI3LjAuMC4xOjgwMDAvZG9jczwvYT4uCgoqIFRoZSBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCwgaW5jbHVkaW5nIHRoZSBuZXcgYm9keToKCiFbU3dhZ2dlciBVSV0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvaW5kZXgvaW5kZXgtMDMtc3dhZ2dlci0wMi5wbmcpCgoqIENsaWNrIG9uIHRoZSBidXR0b24gIlRyeSBpdCBvdXQiLCBpdCBhbGxvd3MgeW91IHRvIGZpbGwgdGhlIHBhcmFtZXRlcnMgYW5kIGRpcmVjdGx5IGludGVyYWN0IHdpdGggdGhlIEFQSToKCiFbU3dhZ2dlciBVSSBpbnRlcmFjdGlvbl0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvaW5kZXgvaW5kZXgtMDQtc3dhZ2dlci0wMy5wbmcpCgoqIFRoZW4gY2xpY2sgb24gdGhlICJFeGVjdXRlIiBidXR0b24sIHRoZSB1c2VyIGludGVyZmFjZSB3aWxsIGNvbW11bmljYXRlIHdpdGggeW91ciBBUEksIHNlbmQgdGhlIHBhcmFtZXRlcnMsIGdldCB0aGUgcmVzdWx0cyBhbmQgc2hvdyB0aGVtIG9uIHRoZSBzY3JlZW46CgohW1N3YWdnZXIgVUkgaW50ZXJhY3Rpb25dKGh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL2luZGV4L2luZGV4LTA1LXN3YWdnZXItMDQucG5nKQoKIyMjIEFsdGVybmF0aXZlIEFQSSBkb2NzIHVwZ3JhZGUKCkFuZCBub3csIGdvIHRvIDxhIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWRvYyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVkb2M8L2E+LgoKKiBUaGUgYWx0ZXJuYXRpdmUgZG9jdW1lbnRhdGlvbiB3aWxsIGFsc28gcmVmbGVjdCB0aGUgbmV3IHF1ZXJ5IHBhcmFtZXRlciBhbmQgYm9keToKCiFbUmVEb2NdKGh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL2luZGV4L2luZGV4LTA2LXJlZG9jLTAyLnBuZykKCiMjIyBSZWNhcAoKSW4gc3VtbWFyeSwgeW91IGRlY2xhcmUgKipvbmNlKiogdGhlIHR5cGVzIG9mIHBhcmFtZXRlcnMsIGJvZHksIGV0Yy4gYXMgZnVuY3Rpb24gcGFyYW1ldGVycy4KCllvdSBkbyB0aGF0IHdpdGggc3RhbmRhcmQgbW9kZXJuIFB5dGhvbiB0eXBlcy4KCllvdSBkb24ndCBoYXZlIHRvIGxlYXJuIGEgbmV3IHN5bnRheCwgdGhlIG1ldGhvZHMgb3IgY2xhc3NlcyBvZiBhIHNwZWNpZmljIGxpYnJhcnksIGV0Yy4KCkp1c3Qgc3RhbmRhcmQgKipQeXRob24qKi4KCkZvciBleGFtcGxlLCBmb3IgYW4gYGludGA6CgpgYGBQeXRob24KaXRlbV9pZDogaW50CmBgYAoKb3IgZm9yIGEgbW9yZSBjb21wbGV4IGBJdGVtYCBtb2RlbDoKCmBgYFB5dGhvbgppdGVtOiBJdGVtCmBgYAoKLi4uYW5kIHdpdGggdGhhdCBzaW5nbGUgZGVjbGFyYXRpb24geW91IGdldDoKCiogRWRpdG9yIHN1cHBvcnQsIGluY2x1ZGluZzoKICAgICogQ29tcGxldGlvbi4KICAgICogVHlwZSBjaGVja3MuCiogVmFsaWRhdGlvbiBvZiBkYXRhOgogICAgKiBBdXRvbWF0aWMgYW5kIGNsZWFyIGVycm9ycyB3aGVuIHRoZSBkYXRhIGlzIGludmFsaWQuCiAgICAqIFZhbGlkYXRpb24gZXZlbiBmb3IgZGVlcGx5IG5lc3RlZCBKU09OIG9iamVjdHMuCiogPGFiYnIgdGl0bGU9ImFsc28ga25vd24gYXM6IHNlcmlhbGl6YXRpb24sIHBhcnNpbmcsIG1hcnNoYWxsaW5nIj5Db252ZXJzaW9uPC9hYmJyPiBvZiBpbnB1dCBkYXRhOiBjb21pbmcgZnJvbSB0aGUgbmV0d29yayB0byBQeXRob24gZGF0YSBhbmQgdHlwZXMuIFJlYWRpbmcgZnJvbToKICAgICogSlNPTi4KICAgICogUGF0aCBwYXJhbWV0ZXJzLgogICAgKiBRdWVyeSBwYXJhbWV0ZXJzLgogICAgKiBDb29raWVzLgogICAgKiBIZWFkZXJzLgogICAgKiBGb3Jtcy4KICAgICogRmlsZXMuCiogPGFiYnIgdGl0bGU9ImFsc28ga25vd24gYXM6IHNlcmlhbGl6YXRpb24sIHBhcnNpbmcsIG1hcnNoYWxsaW5nIj5Db252ZXJzaW9uPC9hYmJyPiBvZiBvdXRwdXQgZGF0YTogY29udmVydGluZyBmcm9tIFB5dGhvbiBkYXRhIGFuZCB0eXBlcyB0byBuZXR3b3JrIGRhdGEgKGFzIEpTT04pOgogICAgKiBDb252ZXJ0IFB5dGhvbiB0eXBlcyAoYHN0cmAsIGBpbnRgLCBgZmxvYXRgLCBgYm9vbGAsIGBsaXN0YCwgZXRjKS4KICAgICogYGRhdGV0aW1lYCBvYmplY3RzLgogICAgKiBgVVVJRGAgb2JqZWN0cy4KICAgICogRGF0YWJhc2UgbW9kZWxzLgogICAgKiAuLi5hbmQgbWFueSBtb3JlLgoqIEF1dG9tYXRpYyBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbiwgaW5jbHVkaW5nIDIgYWx0ZXJuYXRpdmUgdXNlciBpbnRlcmZhY2VzOgogICAgKiBTd2FnZ2VyIFVJLgogICAgKiBSZURvYy4KCi0tLQoKQ29taW5nIGJhY2sgdG8gdGhlIHByZXZpb3VzIGNvZGUgZXhhbXBsZSwgKipGYXN0QVBJKiogd2lsbDoKCiogVmFsaWRhdGUgdGhhdCB0aGVyZSBpcyBhbiBgaXRlbV9pZGAgaW4gdGhlIHBhdGggZm9yIGBHRVRgIGFuZCBgUFVUYCByZXF1ZXN0cy4KKiBWYWxpZGF0ZSB0aGF0IHRoZSBgaXRlbV9pZGAgaXMgb2YgdHlwZSBgaW50YCBmb3IgYEdFVGAgYW5kIGBQVVRgIHJlcXVlc3RzLgogICAgKiBJZiBpdCBpcyBub3QsIHRoZSBjbGllbnQgd2lsbCBzZWUgYSB1c2VmdWwsIGNsZWFyIGVycm9yLgoqIENoZWNrIGlmIHRoZXJlIGlzIGFuIG9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlciBuYW1lZCBgcWAgKGFzIGluIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaXRlbXMvZm9vP3E9c29tZXF1ZXJ5YCkgZm9yIGBHRVRgIHJlcXVlc3RzLgogICAgKiBBcyB0aGUgYHFgIHBhcmFtZXRlciBpcyBkZWNsYXJlZCB3aXRoIGA9IE5vbmVgLCBpdCBpcyBvcHRpb25hbC4KICAgICogV2l0aG91dCB0aGUgYE5vbmVgIGl0IHdvdWxkIGJlIHJlcXVpcmVkIChhcyBpcyB0aGUgYm9keSBpbiB0aGUgY2FzZSB3aXRoIGBQVVRgKS4KKiBGb3IgYFBVVGAgcmVxdWVzdHMgdG8gYC9pdGVtcy97aXRlbV9pZH1gLCByZWFkIHRoZSBib2R5IGFzIEpTT046CiAgICAqIENoZWNrIHRoYXQgaXQgaGFzIGEgcmVxdWlyZWQgYXR0cmlidXRlIGBuYW1lYCB0aGF0IHNob3VsZCBiZSBhIGBzdHJgLgogICAgKiBDaGVjayB0aGF0IGl0IGhhcyBhIHJlcXVpcmVkIGF0dHJpYnV0ZSBgcHJpY2VgIHRoYXQgaGFzIHRvIGJlIGEgYGZsb2F0YC4KICAgICogQ2hlY2sgdGhhdCBpdCBoYXMgYW4gb3B0aW9uYWwgYXR0cmlidXRlIGBpc19vZmZlcmAsIHRoYXQgc2hvdWxkIGJlIGEgYGJvb2xgLCBpZiBwcmVzZW50LgogICAgKiBBbGwgdGhpcyB3b3VsZCBhbHNvIHdvcmsgZm9yIGRlZXBseSBuZXN0ZWQgSlNPTiBvYmplY3RzLgoqIENvbnZlcnQgZnJvbSBhbmQgdG8gSlNPTiBhdXRvbWF0aWNhbGx5LgoqIERvY3VtZW50IGV2ZXJ5dGhpbmcgd2l0aCBPcGVuQVBJLCB0aGF0IGNhbiBiZSB1c2VkIGJ5OgogICAgKiBJbnRlcmFjdGl2ZSBkb2N1bWVudGF0aW9uIHN5c3RlbXMuCiAgICAqIEF1dG9tYXRpYyBjbGllbnQgY29kZSBnZW5lcmF0aW9uIHN5c3RlbXMsIGZvciBtYW55IGxhbmd1YWdlcy4KKiBQcm92aWRlIDIgaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbiB3ZWIgaW50ZXJmYWNlcyBkaXJlY3RseS4KCi0tLQoKV2UganVzdCBzY3JhdGNoZWQgdGhlIHN1cmZhY2UsIGJ1dCB5b3UgYWxyZWFkeSBnZXQgdGhlIGlkZWEgb2YgaG93IGl0IGFsbCB3b3Jrcy4KClRyeSBjaGFuZ2luZyB0aGUgbGluZSB3aXRoOgoKYGBgUHl0aG9uCiAgICByZXR1cm4geyJpdGVtX25hbWUiOiBpdGVtLm5hbWUsICJpdGVtX2lkIjogaXRlbV9pZH0KYGBgCgouLi5mcm9tOgoKYGBgUHl0aG9uCiAgICAgICAgLi4uICJpdGVtX25hbWUiOiBpdGVtLm5hbWUgLi4uCmBgYAoKLi4udG86CgpgYGBQeXRob24KICAgICAgICAuLi4gIml0ZW1fcHJpY2UiOiBpdGVtLnByaWNlIC4uLgpgYGAKCi4uLmFuZCBzZWUgaG93IHlvdXIgZWRpdG9yIHdpbGwgYXV0by1jb21wbGV0ZSB0aGUgYXR0cmlidXRlcyBhbmQga25vdyB0aGVpciB0eXBlczoKCiFbZWRpdG9yIHN1cHBvcnRdKGh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vaW1nL3ZzY29kZS1jb21wbGV0aW9uLnBuZykKCkZvciBhIG1vcmUgY29tcGxldGUgZXhhbXBsZSBpbmNsdWRpbmcgbW9yZSBmZWF0dXJlcywgc2VlIHRoZSA8YSBocmVmPSJodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL3R1dG9yaWFsLyI+VHV0b3JpYWwgLSBVc2VyIEd1aWRlPC9hPi4KCioqU3BvaWxlciBhbGVydCoqOiB0aGUgdHV0b3JpYWwgLSB1c2VyIGd1aWRlIGluY2x1ZGVzOgoKKiBEZWNsYXJhdGlvbiBvZiAqKnBhcmFtZXRlcnMqKiBmcm9tIG90aGVyIGRpZmZlcmVudCBwbGFjZXMgYXM6ICoqaGVhZGVycyoqLCAqKmNvb2tpZXMqKiwgKipmb3JtIGZpZWxkcyoqIGFuZCAqKmZpbGVzKiouCiogSG93IHRvIHNldCAqKnZhbGlkYXRpb24gY29uc3RyYWludHMqKiBhcyBgbWF4aW11bV9sZW5ndGhgIG9yIGByZWdleGAuCiogQSB2ZXJ5IHBvd2VyZnVsIGFuZCBlYXN5IHRvIHVzZSAqKjxhYmJyIHRpdGxlPSJhbHNvIGtub3duIGFzIGNvbXBvbmVudHMsIHJlc291cmNlcywgcHJvdmlkZXJzLCBzZXJ2aWNlcywgaW5qZWN0YWJsZXMiPkRlcGVuZGVuY3kgSW5qZWN0aW9uPC9hYmJyPioqIHN5c3RlbS4KKiBTZWN1cml0eSBhbmQgYXV0aGVudGljYXRpb24sIGluY2x1ZGluZyBzdXBwb3J0IGZvciAqKk9BdXRoMioqIHdpdGggKipKV1QgdG9rZW5zKiogYW5kICoqSFRUUCBCYXNpYyoqIGF1dGguCiogTW9yZSBhZHZhbmNlZCAoYnV0IGVxdWFsbHkgZWFzeSkgdGVjaG5pcXVlcyBmb3IgZGVjbGFyaW5nICoqZGVlcGx5IG5lc3RlZCBKU09OIG1vZGVscyoqICh0aGFua3MgdG8gUHlkYW50aWMpLgoqICoqR3JhcGhRTCoqIGludGVncmF0aW9uIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly9zdHJhd2JlcnJ5LnJvY2tzIiBjbGFzcz0iZXh0ZXJuYWwtbGluayIgdGFyZ2V0PSJfYmxhbmsiPlN0cmF3YmVycnk8L2E+IGFuZCBvdGhlciBsaWJyYXJpZXMuCiogTWFueSBleHRyYSBmZWF0dXJlcyAodGhhbmtzIHRvIFN0YXJsZXR0ZSkgYXM6CiAgICAqICoqV2ViU29ja2V0cyoqCiAgICAqIGV4dHJlbWVseSBlYXN5IHRlc3RzIGJhc2VkIG9uIEhUVFBYIGFuZCBgcHl0ZXN0YAogICAgKiAqKkNPUlMqKgogICAgKiAqKkNvb2tpZSBTZXNzaW9ucyoqCiAgICAqIC4uLmFuZCBtb3JlLgoKIyMgUGVyZm9ybWFuY2UKCkluZGVwZW5kZW50IFRlY2hFbXBvd2VyIGJlbmNobWFya3Mgc2hvdyAqKkZhc3RBUEkqKiBhcHBsaWNhdGlvbnMgcnVubmluZyB1bmRlciBVdmljb3JuIGFzIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRlY2hlbXBvd2VyLmNvbS9iZW5jaG1hcmtzLyNzZWN0aW9uPXRlc3QmcnVuaWQ9NzQ2NGU1MjAtMGRjMi00NzNkLWJkMzQtZGJkZmQ3ZTg1OTExJmh3PXBoJnRlc3Q9cXVlcnkmbD16aWp6ZW4tNyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5vbmUgb2YgdGhlIGZhc3Rlc3QgUHl0aG9uIGZyYW1ld29ya3MgYXZhaWxhYmxlPC9hPiwgb25seSBiZWxvdyBTdGFybGV0dGUgYW5kIFV2aWNvcm4gdGhlbXNlbHZlcyAodXNlZCBpbnRlcm5hbGx5IGJ5IEZhc3RBUEkpLiAoKikKClRvIHVuZGVyc3RhbmQgbW9yZSBhYm91dCBpdCwgc2VlIHRoZSBzZWN0aW9uIDxhIGhyZWY9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vYmVuY2htYXJrcy8iIGNsYXNzPSJpbnRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+QmVuY2htYXJrczwvYT4uCgojIyBEZXBlbmRlbmNpZXMKCkZhc3RBUEkgZGVwZW5kcyBvbiBQeWRhbnRpYyBhbmQgU3RhcmxldHRlLgoKIyMjIGBzdGFuZGFyZGAgRGVwZW5kZW5jaWVzCgpXaGVuIHlvdSBpbnN0YWxsIEZhc3RBUEkgd2l0aCBgcGlwIGluc3RhbGwgImZhc3RhcGlbc3RhbmRhcmRdImAgaXQgY29tZXMgdGhlIGBzdGFuZGFyZGAgZ3JvdXAgb2Ygb3B0aW9uYWwgZGVwZW5kZW5jaWVzOgoKVXNlZCBieSBQeWRhbnRpYzoKCiogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0pvc2hEYXRhL3B5dGhvbi1lbWFpbC12YWxpZGF0b3IiIHRhcmdldD0iX2JsYW5rIj48Y29kZT5lbWFpbC12YWxpZGF0b3I8L2NvZGU+PC9hPiAtIGZvciBlbWFpbCB2YWxpZGF0aW9uLgoKVXNlZCBieSBTdGFybGV0dGU6CgoqIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnB5dGhvbi1odHRweC5vcmciIHRhcmdldD0iX2JsYW5rIj48Y29kZT5odHRweDwvY29kZT48L2E+IC0gUmVxdWlyZWQgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBgVGVzdENsaWVudGAuCiogPGEgaHJlZj0iaHR0cHM6Ly9qaW5qYS5wYWxsZXRzcHJvamVjdHMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PGNvZGU+amluamEyPC9jb2RlPjwvYT4gLSBSZXF1aXJlZCBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGRlZmF1bHQgdGVtcGxhdGUgY29uZmlndXJhdGlvbi4KKiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vS2x1ZGV4L3B5dGhvbi1tdWx0aXBhcnQiIHRhcmdldD0iX2JsYW5rIj48Y29kZT5weXRob24tbXVsdGlwYXJ0PC9jb2RlPjwvYT4gLSBSZXF1aXJlZCBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IGZvcm0gPGFiYnIgdGl0bGU9ImNvbnZlcnRpbmcgdGhlIHN0cmluZyB0aGF0IGNvbWVzIGZyb20gYW4gSFRUUCByZXF1ZXN0IGludG8gUHl0aG9uIGRhdGEiPiJwYXJzaW5nIjwvYWJicj4sIHdpdGggYHJlcXVlc3QuZm9ybSgpYC4KClVzZWQgYnkgRmFzdEFQSSAvIFN0YXJsZXR0ZToKCiogPGEgaHJlZj0iaHR0cHM6Ly93d3cudXZpY29ybi5vcmciIHRhcmdldD0iX2JsYW5rIj48Y29kZT51dmljb3JuPC9jb2RlPjwvYT4gLSBmb3IgdGhlIHNlcnZlciB0aGF0IGxvYWRzIGFuZCBzZXJ2ZXMgeW91ciBhcHBsaWNhdGlvbi4gVGhpcyBpbmNsdWRlcyBgdXZpY29ybltzdGFuZGFyZF1gLCB3aGljaCBpbmNsdWRlcyBzb21lIGRlcGVuZGVuY2llcyAoZS5nLiBgdXZsb29wYCkgbmVlZGVkIGZvciBoaWdoIHBlcmZvcm1hbmNlIHNlcnZpbmcuCiogYGZhc3RhcGktY2xpYCAtIHRvIHByb3ZpZGUgdGhlIGBmYXN0YXBpYCBjb21tYW5kLgoKIyMjIFdpdGhvdXQgYHN0YW5kYXJkYCBEZXBlbmRlbmNpZXMKCklmIHlvdSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIGBzdGFuZGFyZGAgb3B0aW9uYWwgZGVwZW5kZW5jaWVzLCB5b3UgY2FuIGluc3RhbGwgd2l0aCBgcGlwIGluc3RhbGwgZmFzdGFwaWAgaW5zdGVhZCBvZiBgcGlwIGluc3RhbGwgImZhc3RhcGlbc3RhbmRhcmRdImAuCgojIyMgQWRkaXRpb25hbCBPcHRpb25hbCBEZXBlbmRlbmNpZXMKClRoZXJlIGFyZSBzb21lIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIHlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwuCgpBZGRpdGlvbmFsIG9wdGlvbmFsIFB5ZGFudGljIGRlcGVuZGVuY2llczoKCiogPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnB5ZGFudGljLmRldi9sYXRlc3QvdXNhZ2UvcHlkYW50aWNfc2V0dGluZ3MvIiB0YXJnZXQ9Il9ibGFuayI+PGNvZGU+cHlkYW50aWMtc2V0dGluZ3M8L2NvZGU+PC9hPiAtIGZvciBzZXR0aW5ncyBtYW5hZ2VtZW50LgoqIDxhIGhyZWY9Imh0dHBzOi8vZG9jcy5weWRhbnRpYy5kZXYvbGF0ZXN0L3VzYWdlL3R5cGVzL2V4dHJhX3R5cGVzL2V4dHJhX3R5cGVzLyIgdGFyZ2V0PSJfYmxhbmsiPjxjb2RlPnB5ZGFudGljLWV4dHJhLXR5cGVzPC9jb2RlPjwvYT4gLSBmb3IgZXh0cmEgdHlwZXMgdG8gYmUgdXNlZCB3aXRoIFB5ZGFudGljLgoKQWRkaXRpb25hbCBvcHRpb25hbCBGYXN0QVBJIGRlcGVuZGVuY2llczoKCiogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2lqbC9vcmpzb24iIHRhcmdldD0iX2JsYW5rIj48Y29kZT5vcmpzb248L2NvZGU+PC9hPiAtIFJlcXVpcmVkIGlmIHlvdSB3YW50IHRvIHVzZSBgT1JKU09OUmVzcG9uc2VgLgoqIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9lc25tZS91bHRyYWpzb24iIHRhcmdldD0iX2JsYW5rIj48Y29kZT51anNvbjwvY29kZT48L2E+IC0gUmVxdWlyZWQgaWYgeW91IHdhbnQgdG8gdXNlIGBVSlNPTlJlc3BvbnNlYC4KCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLgo= readmeEtag: '"3b01b713a2f4ca6e811ac214ff3fd14a100dad8c"' readmeLastModified: Thu, 05 Sep 2024 15:25:29 GMT repositoryId: 160919119 description: >- FastAPI framework, high performance, easy to learn, fast to code, ready for production created: '2018-12-08T08:21:47Z' updated: '2024-09-06T02:18:51Z' language: Python archived: false stars: 75331 watchers: 672 forks: 6352 owner: fastapi logo: https://avatars.githubusercontent.com/u/156354296?v=4 license: MIT repoEtag: '"784fa49874cb04a391b5ffb87766ecae47c4509e282de58a81c99f8f8270bb4f"' repoLastModified: Fri, 06 Sep 2024 02:18:51 GMT foundInMaster: true id: 01f8d446752c39de698f67e8d2352229 oldLocations: - https://github.com/tiangolo/fastapi - source: - openapi3 tags - openapi31 tags repository: https://github.com/swagger-api/swagger-ui v3: true repositoryMetadata: base64Readme: >- IyA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1dVLWxvZ28tY2xyLnBuZyIgd2lkdGg9IjMwMCI+CgpbIVtOUE0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL3N3YWdnZXItdWkuc3ZnKV0oaHR0cDovL2JhZGdlLmZ1cnkuaW8vanMvc3dhZ2dlci11aSkKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhU2NyaXB0L2pvYi9vc3Mtc3dhZ2dlci11aS1tYXN0ZXIvYmFkZ2UvaWNvbj9zdWJqZWN0PWplbmtpbnMlMjBidWlsZCldKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmFTY3JpcHQvam9iL29zcy1zd2FnZ2VyLXVpLW1hc3Rlci8pClshW25wbSBhdWRpdF0oaHR0cHM6Ly9qZW5raW5zLnN3YWdnZXIuaW8vYnVpbGRTdGF0dXMvaWNvbj9qb2I9b3NzLXN3YWdnZXItdWktc2VjdXJpdHktYXVkaXQmc3ViamVjdD1ucG0lMjBhdWRpdCldKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL2pvYi9vc3Mtc3dhZ2dlci11aS1zZWN1cml0eS1hdWRpdC9sYXN0QnVpbGQvY29uc29sZSkKIVt0b3RhbCBHaXRIdWIgY29udHJpYnV0b3JzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9jb250cmlidXRvcnMtYW5vbi9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpLnN2ZykKCiFbbW9udGhseSBucG0gaW5zdGFsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL3N3YWdnZXItdWkuc3ZnP2xhYmVsPW5wbSUyMGRvd25sb2FkcykKIVt0b3RhbCBkb2NrZXIgcHVsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3B1bGxzL3N3YWdnZXJhcGkvc3dhZ2dlci11aS5zdmcpCiFbbW9udGhseSBwYWNrYWdpc3QgaW5zdGFsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L2RtL3N3YWdnZXItYXBpL3N3YWdnZXItdWkuc3ZnP2xhYmVsPXBhY2thZ2lzdCUyMGluc3RhbGxzKQohW2d6aXAgc2l6ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9idW5kbGVwaG9iaWEvbWluemlwL3N3YWdnZXItdWkuc3ZnP2xhYmVsPWd6aXAlMjBzaXplKQoKIyMgSW50cm9kdWN0aW9uCltTd2FnZ2VyIFVJXShodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci11aS8pIGFsbG93cyBhbnlvbmUg4oCUIGJlIGl0IHlvdXIgZGV2ZWxvcG1lbnQgdGVhbSBvciB5b3VyIGVuZCBjb25zdW1lcnMg4oCUIHRvIHZpc3VhbGl6ZSBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgQVBJ4oCZcyByZXNvdXJjZXMgd2l0aG91dCBoYXZpbmcgYW55IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBsb2dpYyBpbiBwbGFjZS4gSXTigJlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20geW91ciBPcGVuQVBJIChmb3JtZXJseSBrbm93biBhcyBTd2FnZ2VyKSBTcGVjaWZpY2F0aW9uLCB3aXRoIHRoZSB2aXN1YWwgZG9jdW1lbnRhdGlvbiBtYWtpbmcgaXQgZWFzeSBmb3IgYmFjayBlbmQgaW1wbGVtZW50YXRpb24gYW5kIGNsaWVudCBzaWRlIGNvbnN1bXB0aW9uLgoKIyMgR2VuZXJhbAoqKvCfkYnwn4+8IFdhbnQgdG8gc2NvcmUgYW4gZWFzeSBvcGVuLXNvdXJjZSBjb250cmlidXRpb24/KiogQ2hlY2sgb3V0IG91ciBbR29vZCBmaXJzdCBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvaXNzdWVzP3E9aXMlM0Fpc3N1ZStpcyUzQW9wZW4rbGFiZWwlM0ElMjJHb29kK2ZpcnN0K2lzc3VlJTIyKSBsYWJlbC4KCioq8J+VsO+4jyBMb29raW5nIGZvciB0aGUgb2xkZXIgdmVyc2lvbiBvZiBTd2FnZ2VyIFVJPyoqIFJlZmVyIHRvIHRoZSBbKjIueCogYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS90cmVlLzIueCkuCgoKVGhpcyByZXBvc2l0b3J5IHB1Ymxpc2hlcyB0aHJlZSBkaWZmZXJlbnQgTlBNIG1vZHVsZXM6CgoqIFtzd2FnZ2VyLXVpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FnZ2VyLXVpKSBpcyBhIHRyYWRpdGlvbmFsIG5wbSBtb2R1bGUgaW50ZW5kZWQgZm9yIHVzZSBpbiBzaW5nbGUtcGFnZSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgY2FwYWJsZSBvZiByZXNvbHZpbmcgZGVwZW5kZW5jaWVzICh2aWEgV2VicGFjaywgQnJvd3NlcmlmeSwgZXRjLikuCiogW3N3YWdnZXItdWktZGlzdF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci11aS1kaXN0KSBpcyBhIGRlcGVuZGVuY3ktZnJlZSBtb2R1bGUgdGhhdCBpbmNsdWRlcyBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIHNlcnZlIFN3YWdnZXIgVUkgaW4gYSBzZXJ2ZXItc2lkZSBwcm9qZWN0LCBvciBhIHNpbmdsZS1wYWdlIGFwcGxpY2F0aW9uIHRoYXQgY2FuJ3QgcmVzb2x2ZSBucG0gbW9kdWxlIGRlcGVuZGVuY2llcy4KKiBbc3dhZ2dlci11aS1yZWFjdF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci11aS1yZWFjdCkgaXMgU3dhZ2dlciBVSSBwYWNrYWdlZCBhcyBhIFJlYWN0IGNvbXBvbmVudCBmb3IgdXNlIGluIFJlYWN0IGFwcGxpY2F0aW9ucy4KCldlIHN0cm9uZ2x5IHN1Z2dlc3QgdGhhdCB5b3UgdXNlIGBzd2FnZ2VyLXVpYCBpbnN0ZWFkIG9mIGBzd2FnZ2VyLXVpLWRpc3RgIGlmIHlvdSdyZSBidWlsZGluZyBhIHNpbmdsZS1wYWdlIGFwcGxpY2F0aW9uLCBzaW5jZSBgc3dhZ2dlci11aS1kaXN0YCBpcyBzaWduaWZpY2FudGx5IGxhcmdlci4KCklmIHlvdSBhcmUgbG9va2luZyBmb3IgcGxhaW4gb2wnIEhUTUwvSlMvQ1NTLCBbZG93bmxvYWQgdGhlIGxhdGVzdCByZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS9yZWxlYXNlcy9sYXRlc3QpIGFuZCBjb3B5IHRoZSBjb250ZW50cyBvZiB0aGUgYC9kaXN0YCBmb2xkZXIgdG8geW91ciBzZXJ2ZXIuCgoKIyMgQ29tcGF0aWJpbGl0eQpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgNSByZXZpc2lvbnMgc2luY2UgaW5pdGlhbCBjcmVhdGlvbiBpbiAyMDEwLiAgQ29tcGF0aWJpbGl0eSBiZXR3ZWVuIFN3YWdnZXIgVUkgYW5kIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gaXMgYXMgZm9sbG93czoKCnwgU3dhZ2dlciBVSSBWZXJzaW9uIHwgUmVsZWFzZSBEYXRlIHwgT3BlbkFQSSBTcGVjIGNvbXBhdGliaWxpdHkgICAgICAgICAgICAgfCBOb3RlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCA1LjAuMCAgICAgICAgICAgICAgfCAyMDIzLTA2LTEyICAgfCAyLjAsIDMuMC4wLCAzLjAuMSwgMy4wLjIsIDMuMC4zLCAzLjEuMCB8IFt0YWcgdjUuMC4wXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS90cmVlL3Y1LjAuMCkgICB8CnwgNC4wLjAgICAgICAgICAgICAgIHwgMjAyMS0xMS0wMyAgIHwgMi4wLCAzLjAuMCwgMy4wLjEsIDMuMC4yLCAzLjAuMyAgICAgICAgfCBbdGFnIHY0LjAuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvdHJlZS92NC4wLjApICAgfAp8IDMuMTguMyAgICAgICAgICAgICB8IDIwMTgtMDgtMDMgICB8IDIuMCwgMy4wLjAsIDMuMC4xLCAzLjAuMiwgMy4wLjMgICAgICAgIHwgW3RhZyB2My4xOC4zXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS90cmVlL3YzLjE4LjMpIHwKfCAzLjAuMjEgICAgICAgICAgICAgfCAyMDE3LTA3LTI2ICAgfCAyLjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt0YWcgdjMuMC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvdHJlZS92My4wLjIxKSB8CnwgMi4yLjEwICAgICAgICAgICAgIHwgMjAxNy0wMS0wNCAgIHwgMS4xLCAxLjIsIDIuMCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbdGFnIHYyLjIuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL3RyZWUvdjIuMi4xMCkgfAp8IDIuMS41ICAgICAgICAgICAgICB8IDIwMTYtMDctMjAgICB8IDEuMSwgMS4yLCAyLjAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL3RyZWUvdjIuMS41KSAgIHwKfCAyLjAuMjQgICAgICAgICAgICAgfCAyMDE0LTA5LTEyICAgfCAxLjEsIDEuMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt0YWcgdjIuMC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvdHJlZS92Mi4wLjI0KSB8CnwgMS4wLjEzICAgICAgICAgICAgIHwgMjAxMy0wMy0wOCAgIHwgMS4xLCAxLjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbdGFnIHYxLjAuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL3RyZWUvdjEuMC4xMykgfAp8IDEuMC4xICAgICAgICAgICAgICB8IDIwMTEtMTAtMTEgICB8IDEuMCwgMS4xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3RhZyB2MS4wLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL3RyZWUvdjEuMC4xKSAgIHwKCiMjIERvY3VtZW50YXRpb24KCiMjIyMgVXNhZ2UKLSBbSW5zdGFsbGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS9ibG9iL0hFQUQvZG9jcy91c2FnZS9pbnN0YWxsYXRpb24ubWQpCi0gW0NvbmZpZ3VyYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL2Jsb2IvSEVBRC9kb2NzL3VzYWdlL2NvbmZpZ3VyYXRpb24ubWQpCi0gW0NPUlNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL2Jsb2IvSEVBRC9kb2NzL3VzYWdlL2NvcnMubWQpCi0gW09BdXRoMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvYmxvYi9IRUFEL2RvY3MvdXNhZ2Uvb2F1dGgyLm1kKQotIFtEZWVwIExpbmtpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL2Jsb2IvSEVBRC9kb2NzL3VzYWdlL2RlZXAtbGlua2luZy5tZCkKLSBbTGltaXRhdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL2Jsb2IvSEVBRC9kb2NzL3VzYWdlL2xpbWl0YXRpb25zLm1kKQotIFtWZXJzaW9uIGRldGVjdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvYmxvYi9IRUFEL2RvY3MvdXNhZ2UvdmVyc2lvbi1kZXRlY3Rpb24ubWQpCgojIyMjIEN1c3RvbWl6YXRpb24KLSBbT3ZlcnZpZXddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL2Jsb2IvSEVBRC9kb2NzL2N1c3RvbWl6YXRpb24vb3ZlcnZpZXcubWQpCi0gW1BsdWdpbiBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL2Jsb2IvSEVBRC9kb2NzL2N1c3RvbWl6YXRpb24vcGx1Z2luLWFwaS5tZCkKLSBbQ3VzdG9tIGxheW91dF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvYmxvYi9IRUFEL2RvY3MvY3VzdG9taXphdGlvbi9jdXN0b20tbGF5b3V0Lm1kKQoKIyMjIyBEZXZlbG9wbWVudAotIFtTZXR0aW5nIHVwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS9ibG9iL0hFQUQvZG9jcy9kZXZlbG9wbWVudC9zZXR0aW5nLXVwLm1kKQotIFtTY3JpcHRzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS9ibG9iL0hFQUQvZG9jcy9kZXZlbG9wbWVudC9zY3JpcHRzLm1kKQoKIyMjIyBDb250cmlidXRpbmcKLSBbQ29udHJpYnV0aW5nXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvLmdpdGh1Yi9ibG9iL0hFQUQvQ09OVFJJQlVUSU5HLm1kKQoKIyMjIyMgSW50ZWdyYXRpb24gVGVzdHMKCllvdSB3aWxsIG5lZWQgSkRLIG9mIHZlcnNpb24gNyBvciBoaWdoZXIgYXMgaW5zdHJ1Y3RlZCBoZXJlCmh0dHBzOi8vbmlnaHR3YXRjaGpzLm9yZy9ndWlkZS9nZXR0aW5nLXN0YXJ0ZWQvaW5zdGFsbGF0aW9uLmh0bWwjaW5zdGFsbC1zZWxlbml1bS1zZXJ2ZXIKCkludGVncmF0aW9uIHRlc3RzIGNhbiBiZSBydW4gbG9jYWxseSB3aXRoIGBucG0gcnVuIGUyZWAgLSBiZSBzdXJlIHlvdSBhcmVuJ3QgcnVubmluZyBhIGRldiBzZXJ2ZXIgd2hlbiB0ZXN0aW5nIQoKIyMjIEJyb3dzZXIgc3VwcG9ydApTd2FnZ2VyIFVJIHdvcmtzIGluIHRoZSBsYXRlc3QgdmVyc2lvbnMgb2YgQ2hyb21lLCBTYWZhcmksIEZpcmVmb3gsIGFuZCBFZGdlLgoKIyMjIEtub3duIElzc3VlcwoKVG8gaGVscCB3aXRoIHRoZSBtaWdyYXRpb24sIGhlcmUgYXJlIHRoZSBjdXJyZW50bHkga25vd24gaXNzdWVzIHdpdGggMy5YLiBUaGlzIGxpc3Qgd2lsbCB1cGRhdGUgcmVndWxhcmx5LCBhbmQgd2lsbCBub3QgaW5jbHVkZSBmZWF0dXJlcyB0aGF0IHdlcmUgbm90IGltcGxlbWVudGVkIGluIHByZXZpb3VzIHZlcnNpb25zLgoKLSBPbmx5IHBhcnQgb2YgdGhlIHBhcmFtZXRlcnMgcHJldmlvdXNseSBzdXBwb3J0ZWQgYXJlIGF2YWlsYWJsZS4KLSBUaGUgSlNPTiBGb3JtIEVkaXRvciBpcyBub3QgaW1wbGVtZW50ZWQuCi0gU3VwcG9ydCBmb3IgYGNvbGxlY3Rpb25Gb3JtYXRgIGlzIHBhcnRpYWwuCi0gbDEwbiAodHJhbnNsYXRpb25zKSBpcyBub3QgaW1wbGVtZW50ZWQuCi0gUmVsYXRpdmUgcGF0aCBzdXBwb3J0IGZvciBleHRlcm5hbCBmaWxlcyBpcyBub3QgaW1wbGVtZW50ZWQuCgojIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4KCiMjIExpY2Vuc2UKClN3YWdnZXJVSSBpcyBsaWNlbnNlZCB1bmRlciBbQXBhY2hlIDIuMCBsaWNlbnNlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS9ibG9iL21hc3Rlci9MSUNFTlNFKS4KU3dhZ2dlclVJIGNvbWVzIHdpdGggYW4gZXhwbGljaXQgW05PVElDRV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvYmxvYi9tYXN0ZXIvTk9USUNFKSBmaWxlCmNvbnRhaW5pbmcgYWRkaXRpb25hbCBsZWdhbCBub3RpY2VzIGFuZCBpbmZvcm1hdGlvbi4K readmeEtag: '"f01a3ffe9d494c37565a202aaead7f0d82a2be1a"' readmeLastModified: Tue, 09 Jul 2024 23:08:18 GMT repositoryId: 2055965 description: >- Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API. created: '2011-07-15T22:56:39Z' updated: '2024-09-06T01:04:18Z' language: JavaScript archived: false stars: 26288 watchers: 651 forks: 8910 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"0856ba5147b442234bb7ed88ecf6a15c89e23656c2cdd9af68107859e159e7da"' repoLastModified: Fri, 06 Sep 2024 01:04:18 GMT foundInMaster: true name: swagger-ui homepage: https://github.com/swagger-api/swagger-UI language: JavaScript source_description: Web-Based interface for visualizing and testing OpenAPI\Swagger definitions category: - User Interfaces - Code Generators id: ae625180381304ae800725a36dde6320 v3_1: true - source: - openapi3 tags - openapi31 tags name: Redoc homepage: https://github.com/Redocly/redoc language: JavaScript source_description: >- A React-based renderer with deep support for OAS v2 and v3 and zero dev-dependency category: - User Interfaces - Parsers repository: https://github.com/redocly/redoc v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8aW1nIGFsdD0iUmVkb2MgbG9nbyIgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vUmVkb2NseS9yZWRvYy9tYWluLy9kb2NzL2ltYWdlcy9yZWRvYy5wbmciIHdpZHRoPSI0MDBweCIgLz4KCiMgR2VuZXJhdGUgYmVhdXRpZnVsIEFQSSBkb2N1bWVudGF0aW9uIGZyb20gT3BlbkFQSQoKICBbIVtucG1dKGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9yZWRvYy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9yZWRvYykgWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9yZWRvYy5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYy9ibG9iL21haW4vTElDRU5TRSkKCiAgWyFbYnVuZGxlIHNpemVdKGh0dHA6Ly9pbWcuYmFkZ2VzaXplLmlvL2h0dHBzOi8vY2RuLnJlZG9jLmx5L3JlZG9jL2xhdGVzdC9idW5kbGVzL3JlZG9jLnN0YW5kYWxvbmUuanM/Y29tcHJlc3Npb249Z3ppcCZtYXg9MzAwMDAwKV0oaHR0cHM6Ly9jZG4ucmVkb2MubHkvcmVkb2MvbGF0ZXN0L2J1bmRsZXMvcmVkb2Muc3RhbmRhbG9uZS5qcykgWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9yZWRvYy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9yZWRvYykgWyFbanNEZWxpdnIgc3RhdHVzXShodHRwczovL2RhdGEuanNkZWxpdnIuY29tL3YxL3BhY2thZ2UvbnBtL3JlZG9jL2JhZGdlKV0oaHR0cHM6Ly93d3cuanNkZWxpdnIuY29tL3BhY2thZ2UvbnBtL3JlZG9jKQo8L2Rpdj4KCgojIyBBYm91dCBSZWRvYwoKUmVkb2MgaXMgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgZ2VuZXJhdGluZyBkb2N1bWVudGF0aW9uIGZyb20gT3BlbkFQSSAoZm9ybWVybHkgU3dhZ2dlcikgZGVmaW5pdGlvbnMuCgpCeSBkZWZhdWx0IFJlZG9jIG9mZmVycyBhIHRocmVlLXBhbmVsLCByZXNwb25zaXZlIGxheW91dDoKCi0gVGhlIGxlZnQgcGFuZWwgY29udGFpbnMgYSBzZWFyY2ggYmFyIGFuZCBuYXZpZ2F0aW9uIG1lbnUuCi0gVGhlIGNlbnRyYWwgcGFuZWwgY29udGFpbnMgdGhlIGRvY3VtZW50YXRpb24uCi0gVGhlIHJpZ2h0IHBhbmVsIGNvbnRhaW5zIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGV4YW1wbGVzLgoKIVtSZWRvYyBkZW1vXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vUmVkb2NseS9yZWRvYy9tYWluL2RlbW8vcmVkb2MtZGVtby5wbmcpCgojIyBMaXZlIGRlbW8KCklmIHlvdSB3YW50IHRvIHNlZSBob3cgUmVkb2MgcmVuZGVycyB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiwKeW91IGNhbiB0cnkgaXQgb3V0IG9ubGluZSBhdCBodHRwczovL3JlZG9jbHkuZ2l0aHViLmlvL3JlZG9jLy4KCkEgdmVyc2lvbiBvZiB0aGUgU3dhZ2dlciBQZXRzdG9yZSBBUEkgaXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuClRvIHRlc3QgaXQgd2l0aCB5b3VyIG93biBPcGVuQVBJIGRlZmluaXRpb24sCmVudGVyIHRoZSBVUkwgZm9yIHlvdXIgZGVmaW5pdGlvbiBhbmQgc2VsZWN0ICoqVFJZIElUKiouCgojIyBSZWRvYyBmZWF0dXJlcwoKLSBSZXNwb25zaXZlIHRocmVlLXBhbmVsIGRlc2lnbiB3aXRoIG1lbnUvc2Nyb2xsaW5nIHN5bmNocm9uaXphdGlvbgotIFN1cHBvcnQgZm9yIE9wZW5BUEkgMy4xLCBPcGVuQVBJIDMuMCwgYW5kIFN3YWdnZXIgMi4wCi0gQWJpbGl0eSB0byBpbnRlZ3JhdGUgeW91ciBBUEkgaW50cm9kdWN0aW9uIGludG8gdGhlIHNpZGUgbWVudQotIEhpZ2gtbGV2ZWwgZ3JvdXBpbmcgaW4gc2lkZSBtZW51IHdpdGggdGhlIFtgeC10YWdHcm91cHNgXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvYXBpLXJlZmVyZW5jZS1kb2NzL3NwZWNpZmljYXRpb24tZXh0ZW5zaW9ucy94LXRhZy1ncm91cHMvKSBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbgotIFtTaW1wbGUgaW50ZWdyYXRpb24gd2l0aCBgY3JlYXRlLXJlYWN0LWFwcGBdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9yZWRvYy9xdWlja3N0YXJ0L3JlYWN0LykKLSBDb2RlIHNhbXBsZXMgc3VwcG9ydCAod2l0aCB2ZW5kb3IgZXh0ZW5zaW9uKSA8YnI+CiAgIVtjb2RlIHNhbXBsZXMgaW4gYWN0aW9uXShkb2NzL2ltYWdlcy9jb2RlLXNhbXBsZXMtZGVtby5naWYpCgojIyBVc2FnZQoKUmVkb2MgaXMgcHJvdmlkZWQgYXMgYSBDTEkgdG9vbCAoYWxzbyBkaXN0cmlidXRlZCBhcyBhIERvY2tlciBpbWFnZSksIEhUTUwgdGFnLCBhbmQgUmVhY3QgY29tcG9uZW50LgoKIyMjIEdlbmVyYXRlIGRvY3VtZW50YXRpb24gZnJvbSB0aGUgQ0xJCgpJZiB5b3UgaGF2ZSBOb2RlIGluc3RhbGxlZCwgcXVpY2tseSBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uIHVzaW5nIGBucHhgOgoKYGBgYmFzaApucHggQHJlZG9jbHkvY2xpIGJ1aWxkLWRvY3Mgb3BlbmFwaS55YW1sIApgYGAKClRoZSB0b29sIG91dHB1dHMgYnkgZGVmYXVsdCB0byBhIGZpbGUgbmFtZWQgYHJlZG9jLXN0YXRpYy5odG1sYCB0aGF0IHlvdSBjYW4gb3BlbiBpbiB5b3VyIGJyb3dzZXIuCgo+IFtSZWRvY2x5IENMSV0oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2NseS1jbGkvKSBkb2VzIG1vcmUgdGhhbiBkb2NzOyBjaGVjayBpdCBvdXQgYW5kIGFkZCBsaW50aW5nLCBidW5kbGluZywgYW5kIG1vcmUgdG8geW91ciBBUEkgd29ya2Zsb3cuCgojIyMgQWRkIGFuIEhUTUwgZWxlbWVudCB0byB0aGUgcGFnZQoKQ3JlYXRlIGFuIEhUTUwgcGFnZSwgb3IgZWRpdCBhbiBleGlzdGluZyBvbmUsIGFuZCBhZGQgdGhlIGZvbGxvd2luZyB3aXRoaW4gdGhlIGJvZHkgdGFnczoKCmBgYGh0bWwKICAgIDxyZWRvYyBzcGVjLXVybD0iaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIj48L3JlZG9jPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnJlZG9jLmx5L3JlZG9jL2xhdGVzdC9idW5kbGVzL3JlZG9jLnN0YW5kYWxvbmUuanMiPiA8L3NjcmlwdD4KYGBgCgpPcGVuIHRoZSBIVE1MIGZpbGUgaW4geW91ciBicm93c2VyLCBhbmQgeW91ciBBUEkgZG9jdW1lbnRhdGlvbiBpcyBzaG93biBvbiB0aGUgcGFnZS4KCkFkZCB5b3VyIG93biBgc3BlYy11cmxgIHRvIHRoZSBgPHJlZG9jPmAgdGFnOyB0aGlzIGF0dHJpYnV0ZSBjYW4gYWxzbyBiZSBhIGxvY2FsIGZpbGUuIFRoZSBKYXZhU2NyaXB0IGxpYnJhcnkgY2FuIGFsc28gYmUgaW5zdGFsbGVkIGxvY2FsbHkgdXNpbmcgYG5wbWAgYW5kIHNlcnZlZCBmcm9tIHlvdXIgb3duIHNlcnZlciwgc2VlIHRoZSBbSFRNTCBkZXBsb3ltZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9yZWRvYy9kZXBsb3ltZW50L2h0bWwvKSBmb3IgbW9yZSBkZXRhaWxzLgoKIyMjIE1vcmUgdXNhZ2Ugb3B0aW9ucwoKQ2hlY2sgb3V0IHRoZSBbZGVwbG95bWVudCBkb2N1bWVudGF0aW9uXSguL2RvY3MvZGVwbG95bWVudC9pbnRyby5tZCkgZm9yIG1vcmUgb3B0aW9ucywgYW5kIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZm9yIGVhY2guCgojIyBSZWRvYyB2cy4gUmVkb2NseSBBUEkgUmVmZXJlbmNlCgpSZWRvYyBpcyBSZWRvY2x5J3MgY29tbXVuaXR5LWVkaXRpb24gcHJvZHVjdC4gTG9va2luZyBmb3Igc29tZXRoaW5nIG1vcmU/CldlIGFsc28gb2ZmZXIgW2hvc3RlZCBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9hcGktcmVnaXN0cnkvZ3VpZGVzL2FwaS1yZWdpc3RyeS1xdWlja3N0YXJ0LykKd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzIGluY2x1ZGluZzoKCiogVHJ5LWl0IGNvbnNvbGUKKiBBdXRvbWF0ZWQgY29kZSBzYW1wbGVzCiogUGFnaW5hdGlvbgoqIEV4dHJhIHRoZW1lIG9wdGlvbnMKCiMjIyBEb2N1bWVudGF0aW9uIGFuZCByZXNvdXJjZXMKCi0gW1JlZmVyZW5jZSBkb2NzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvYXBpLXJlZmVyZW5jZS1kb2NzL2dldHRpbmctc3RhcnRlZC8pIC0gd2UgdGFrZSBjYXJlIG9mIHRoZSBob3N0aW5nCi0gW1JlZG9jXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvcmVkb2MvKSAtIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZm9yIHRoaXMgb3BlbiBzb3VyY2UgcHJvamVjdCAoYWxzbyBpbiB0aGUgYGRvY3MvYCBmb2xkZXIpCi0gW0NvbW1hbmQtbGluZSBpbnRlcmZhY2UgdG8gYnVuZGxlIHlvdXIgZG9jcyBpbnRvIGEgd2ViLXJlYWR5IEhUTUwgZmlsZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9jb21tYW5kcy9idWlsZC1kb2NzLykKLSBBUEkgbGludGluZywgYnVuZGxpbmcsIGFuZCBtdWNoIG1vcmUgd2l0aCBvcGVuIHNvdXJjZSBbUmVkb2NseSBDTEldKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkpCgojIyBTaG93Y2FzZQoKQSBzYW1wbGUgb2YgdGhlIG9yZ2FuaXphdGlvbnMgdXNpbmcgUmVkb2NseSB0b29scyBpbiB0aGUgd2lsZDoKCi0gW1JlYmlsbHldKGh0dHBzOi8vYXBpLXJlZmVyZW5jZS5yZWJpbGx5LmNvbS8pCi0gW0RvY2tlciBFbmdpbmVdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9hcGkvdjEuMjUvKQotIFtadW9yYV0oaHR0cHM6Ly93d3cuenVvcmEuY29tL2RldmVsb3Blci9hcGktcmVmZXJlbmNlLykKLSBbRGlzY291cnNlXShodHRwOi8vZG9jcy5kaXNjb3Vyc2Uub3JnKQotIFtDb21tYm94XShodHRwczovL3d3dy5jb21tYm94LmlvL2FwaS8pCi0gW0FQSXMuZ3VydV0oaHR0cHM6Ly9hcGlzLmd1cnUvYXBpLWRvYy8pCi0gW0JveEtuaWdodF0oaHR0cHM6Ly93d3cuZG9jcy5ib3hrbmlnaHQuY29tLykKLSBbUXVhZGVybm8gQVBJXShodHRwczovL2RldmVsb3BlcnMucXVhZGVybm8uaW8vYXBpKQoKX1B1bGwgcmVxdWVzdHMgdG8gYWRkIHlvdXIgb3duIEFQSSBwYWdlIHRvIHRoZSBsaXN0IGFyZSB3ZWxjb21lXwoKIyMgQ29uZmlndXJhdGlvbgoKUmVkb2MgaXMgaGlnaGx5IGNvbmZpZ3VyYWJsZSwgc2VlIHRoZSBbY29uZmlndXJhdGlvbiBkb2N1bWVudGF0aW9uXShkb2NzL2NvbmZpZy5tZCkgZm9yIGRldGFpbHMuCgojIyMgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbnMKUmVkb2MgdXNlcyB0aGUgZm9sbG93aW5nIFtzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbnNdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9hcGktcmVmZXJlbmNlLWRvY3Mvc3BlYy1leHRlbnNpb25zLyk6CgoqIFtgeC1sb2dvYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LWxvZ28pIC0gaXMgdXNlZCB0byBzcGVjaWZ5IEFQSSBsb2dvCiogW2B4LXRyYWl0VGFnYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LXRyYWl0VGFnKSAtIHVzZWZ1bCBmb3IgdGFncyB0aGF0IHJlZmVyIHRvIG5vbi1uYXZpZ2F0aW9uIHByb3BlcnRpZXMgbGlrZSBQYWdpbmF0aW9uLCBSYXRlLUxpbWl0cywgZXRjCiogW2B4LWNvZGVTYW1wbGVzYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LWNvZGVTYW1wbGVzKSAtIHNwZWNpZnkgb3BlcmF0aW9uIGNvZGUgc2FtcGxlcwoqIFtgeC1leGFtcGxlc2BdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1leGFtcGxlcykgLSBzcGVjaWZ5IEpTT04gZXhhbXBsZSBmb3IgcmVxdWVzdHMKKiBbYHgtbnVsbGFibGVgXShkb2NzL3JlZG9jLXZlbmRvci1leHRlbnNpb25zLm1kI3gtbnVsbGFibGUpIC0gbWFyayBzY2hlbWEgcGFyYW0gYXMgYSBudWxsYWJsZQoqIFtgeC1kaXNwbGF5TmFtZWBdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1kaXNwbGF5bmFtZSkgLSBzcGVjaWZ5IGh1bWFuLWZyaWVuZGx5IG5hbWVzIGZvciB0aGUgbWVudSBjYXRlZ29yaWVzCiogW2B4LXRhZ0dyb3Vwc2BdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC10YWdHcm91cHMpIC0gZ3JvdXAgdGFncyBieSBjYXRlZ29yaWVzIGluIHRoZSBzaWRlIG1lbnUKKiBbYHgtc2VydmVyc2BdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1zZXJ2ZXJzKSAtIGFiaWxpdHkgdG8gc3BlY2lmeSBkaWZmZXJlbnQgc2VydmVycyBmb3IgQVBJIChiYWNrcG9ydGVkIGZyb20gT3BlbkFQSSAzLjApCiogW2B4LWlnbm9yZWRIZWFkZXJQYXJhbWV0ZXJzYF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LWlnbm9yZWRIZWFkZXJQYXJhbWV0ZXJzKSAtIGFiaWxpdHkgdG8gc3BlY2lmeSBoZWFkZXIgcGFyYW1ldGVyIG5hbWVzIHRvIGlnbm9yZQoqIFtgeC1hZGRpdGlvbmFsUHJvcGVydGllc05hbWVgXShkb2NzL3JlZG9jLXZlbmRvci1leHRlbnNpb25zLm1kI3gtYWRkaXRpb25hbFByb3BlcnRpZXNOYW1lKSAtIGFiaWxpdHkgdG8gc3VwcGx5IGEgZGVzY3JpcHRpdmUgbmFtZSBmb3IgdGhlIGFkZGl0aW9uYWwgcHJvcGVydHkga2V5cwoqIFtgeC1zdW1tYXJ5YF0oZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LXN1bW1hcnkpIC0gZm9yIFJlc3BvbnNlIG9iamVjdCwgdXNlIGFzIHRoZSByZXNwb25zZSBidXR0b24gdGV4dCwgd2l0aCBkZXNjcmlwdGlvbiByZW5kZXJlZCB1bmRlciB0aGUgYnV0dG9uCiogW2B4LWV4dGVuZGVkRGlzY3JpbWluYXRvcmBdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1leHRlbmRlZERpc2NyaW1pbmF0b3IpIC0gaW4gU2NoZW1hcywgdXNlcyB0aGlzIHRvIHNvbHZlIG5hbWUtY2xhc2ggaXNzdWVzIHdpdGggdGhlIHN0YW5kYXJkIGRpc2NyaW1pbmF0b3IKKiBbYHgtZXhwbGljaXRNYXBwaW5nT25seWBdKGRvY3MvcmVkb2MtdmVuZG9yLWV4dGVuc2lvbnMubWQjeC1leHBsaWNpdE1hcHBpbmdPbmx5KSAtIGluIFNjaGVtYXMsIGRpc3BsYXkgYSBtb3JlIGRlc2NyaXB0aXZlIHByb3BlcnR5IG5hbWUgaW4gb2JqZWN0cyB3aXRoIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIHdoZW4gdmlld2luZyB0aGUgcHJvcGVydHkgbGlzdCB3aXRoIGFuIG9iamVjdAoKIyMgUmVsZWFzZXMKCioqVGhlIFJFQURNRSBmb3IgdGhlIGAxLnhgIHZlcnNpb24gaXMgb24gdGhlIFt2MS54XShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYy90cmVlL3YxLngpIGJyYW5jaC4qKgoKQWxsIHRoZSAyLnggcmVsZWFzZXMgYXJlIGRlcGxveWVkIHRvIG5wbSBhbmQgY2FuIGJlIHVzZWQgd2l0aCBSZWRvY2x5LWNkbjoKLSBwYXJ0aWN1bGFyIHJlbGVhc2UsIGZvciBleGFtcGxlLCBgdjIuMC4wYDogaHR0cHM6Ly9jZG4ucmVkb2MubHkvcmVkb2MvdjIuMC4wL2J1bmRsZXMvcmVkb2Muc3RhbmRhbG9uZS5qcwotIGBsYXRlc3RgIHJlbGVhc2U6IGh0dHBzOi8vY2RuLnJlZG9jLmx5L3JlZG9jL2xhdGVzdC9idW5kbGVzL3JlZG9jLnN0YW5kYWxvbmUuanMKCkFkZGl0aW9uYWxseSwgYWxsIHRoZSAxLnggcmVsZWFzZXMgYXJlIGhvc3RlZCBvbiBvdXIgR2l0SHViIFBhZ2VzLWJhc2VkIENETiAqKihkZXByZWNhdGVkKSoqOgotIHBhcnRpY3VsYXIgcmVsZWFzZSwgZm9yIGV4YW1wbGUgYHYxLjIuMGA6IGh0dHBzOi8vcmViaWxseS5naXRodWIuaW8vUmVEb2MvcmVsZWFzZXMvdjEuMi4wL3JlZG9jLm1pbi5qcwotIGB2MS54LnhgIHJlbGVhc2U6IGh0dHBzOi8vcmViaWxseS5naXRodWIuaW8vUmVEb2MvcmVsZWFzZXMvdjEueC54L3JlZG9jLm1pbi5qcwotIGBsYXRlc3RgIHJlbGVhc2U6IGh0dHBzOi8vcmViaWxseS5naXRodWIuaW8vUmVEb2MvcmVsZWFzZXMvbGF0ZXN0L3JlZG9jLm1pbi5qcyAtIHBvaW50cyB0byBsYXRlc3QgMS54LnggcmVsZWFzZSBzaW5jZSAyLnggcmVsZWFzZXMgYXJlIG5vdCBob3N0ZWQgb24gdGhpcyBDRE4gYnV0IG9uIHVucGtnLgoKCiMjIERldmVsb3BtZW50CnNlZSBbQ09OVFJJQlVUSU5HLm1kXSguZ2l0aHViL0NPTlRSSUJVVElORy5tZCkK readmeEtag: '"68e2b3e662cf6ae0801e6b270737f78bc3f76df4"' readmeLastModified: Thu, 01 Aug 2024 07:56:39 GMT repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' updated: '2024-09-06T01:19:51Z' language: TypeScript archived: false stars: 23252 watchers: 294 forks: 2283 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"b16032f79cac6fc01994ab773fee1f0ff840269e082040198cdd09629181759c"' repoLastModified: Fri, 06 Sep 2024 01:19:51 GMT foundInMaster: true v3_1: true id: 2725d6db6977c1dd12ceaf9701787e07 oldLocations: - https://github.com/rebilly/redoc/ - source: openapi3 tags repository: https://github.com/swagger-api/swagger-core v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIENvcmUgPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLmlvL3dvcmRwcmVzcy9pbWFnZXMvYXNzZXRzL1NXLWxvZ28tY2xyLnBuZyIgaGVpZ2h0PSI1MCIgYWxpZ249InJpZ2h0Ij4KCioqTk9URToqKiBJZiB5b3UncmUgbG9va2luZyBmb3IgU3dhZ2dlciBDb3JlIDEuNS5YIGFuZCBPcGVuQVBJIDIuMCwgcGxlYXNlIHJlZmVyIHRvIFsxLjUgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvMS41KS4KCioqTk9URToqKiBTaW5jZSB2ZXJzaW9uIDIuMS43LCBTd2FnZ2VyIENvcmUgYWxzbyBzdXBwb3J0cyB0aGUgSmFrYXJ0YSBuYW1lc3BhY2UuIFRoZXJlIGFyZSBhIHBhcmFsbGVsIHNldCBvZiBhcnRpZmFjdHMgd2l0aCB0aGUgYC1qYWthcnRhYCBzdWZmaXgsIHByb3ZpZGluZyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGFzIHRoZSB1bnN1ZmZpeGVkIChpLmUuOiBgamF2YXhgKSBhcnRpZmFjdHMuClBsZWFzZSBzZWUgdGhlIFtXaWtpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3dpa2kvU3dhZ2dlci0yLlgtLS1HZXR0aW5nLXN0YXJ0ZWQpIGZvciBtb3JlIGRldGFpbHMuCgoqKk5PVEU6KiogU2luY2UgdmVyc2lvbiAyLjIuMCBTd2FnZ2VyIENvcmUgc3VwcG9ydHMgT3BlbkFQSSAzLjE7IHNlZSBbdGhpcyBwYWdlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3dpa2kvU3dhZ2dlci0yLlgtLS1PcGVuQVBJLTMuMSkgZm9yIGRldGFpbHMKCiFbQnVpbGQgVGVzdCBEZXBsb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvd29ya2Zsb3dzL0J1aWxkJTIwVGVzdCUyMERlcGxveSUyMG1hc3Rlci9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcikKWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2lvLnN3YWdnZXIuY29yZS52My9zd2FnZ2VyLXByb2plY3QvYmFkZ2Uuc3ZnP3N0eWxlPXBsYXN0aWMpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvaW8uc3dhZ2dlci5jb3JlLnYzL3N3YWdnZXItcHJvamVjdCkKClN3YWdnZXIgQ29yZSBpcyBhIEphdmEgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbi4gQ3VycmVudCB2ZXJzaW9uIHN1cHBvcnRzICpKQVgtUlMyKiAoYGphdmF4YCBhbmQgYGpha2FydGFgIG5hbWVzcGFjZXMpLgoKIyMgR2V0IHN0YXJ0ZWQgd2l0aCBTd2FnZ2VyIENvcmUhClNlZSB0aGUgZ3VpZGUgb24gW2dldHRpbmcgc3RhcnRlZCB3aXRoIFN3YWdnZXIgQ29yZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS93aWtpL1N3YWdnZXItMi5YLS0tR2V0dGluZy1zdGFydGVkKSB0byBnZXQgc3RhcnRlZCB3aXRoIGFkZGluZyBTd2FnZ2VyIHRvIHlvdXIgQVBJLgoKIyMgU2VlIHRoZSBXaWtpIQpUaGUgW2dpdGh1YiB3aWtpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3dpa2kpIGNvbnRhaW5zIGRvY3VtZW50YXRpb24sIHNhbXBsZXMsIGNvbnRyaWJ1dGlvbnMsIGV0Yy4gU3RhcnQgdGhlcmUuCgojIyBDb21wYXRpYmlsaXR5ClRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gaGFzIHVuZGVyZ29uZSBzZXZlcmFsIHJldmlzaW9ucyBzaW5jZSBpbml0aWFsIGNyZWF0aW9uIGluIDIwMTAuICBUaGUgU3dhZ2dlciBDb3JlIHByb2plY3QgaGFzIHRoZSBmb2xsb3dpbmcgY29tcGF0aWJpbGl0aWVzIHdpdGggdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKClN3YWdnZXIgY29yZSBWZXJzaW9uICAgICAgfCBSZWxlYXNlIERhdGUgfCBPcGVuQVBJIFNwZWMgY29tcGF0aWJpbGl0eSB8IE5vdGVzIHwgU3RhdHVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tIHwgLS0tLQoyLjIuMjMgKCoqY3VycmVudCBzdGFibGUqKil8IDIwMjQtMDgtMjggICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIzKSB8IFN1cHBvcnRlZAoyLjIuMjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjQtMDUtMTUgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIyKSB8IFN1cHBvcnRlZAoyLjIuMjEgICAgICAgICAgICAgICAgICAgICB8IDIwMjQtMDMtMjAgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIxKSB8IFN1cHBvcnRlZAoyLjIuMjAgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTItMTkgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIwKSB8IFN1cHBvcnRlZAoyLjIuMTkgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTEtMTAgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE5KSB8IFN1cHBvcnRlZAoyLjIuMTggICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTAtMjUgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE4KSB8IFN1cHBvcnRlZAoyLjIuMTcgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTAtMTIgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE3KSB8IFN1cHBvcnRlZAoyLjIuMTYgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDktMTggICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE2KSB8IFN1cHBvcnRlZAoyLjIuMTUgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDctMDggICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE1KSB8IFN1cHBvcnRlZAoyLjIuMTQgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMjYgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE0KSB8IFN1cHBvcnRlZAoyLjIuMTMgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMjQgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjEzKSB8IFN1cHBvcnRlZAoyLjIuMTIgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMTMgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjEyKSB8IFN1cHBvcnRlZAoyLjIuMTEgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMDEgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjExKSB8IFN1cHBvcnRlZAoyLjIuMTAgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDUtMTUgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjEwKSB8IFN1cHBvcnRlZAoyLjIuOSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMy0wMy0yMCAgfCAzLnggICAgICAgICAgIHwgW3RhZyB2Mi4yLjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4yLjggICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDEtMDYgIHwgMy54ICAgICAgICAgICB8IFt0YWcgdjIuMi44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMi44KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMi43ICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTExLTE1ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjIuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjIuNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjIuNiAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0xMS0wMiAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4yLjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4yLjUgICAgICAgICAgICAgICAgICAgICB8IDIwMjItMTEtMDIgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMi41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMi41KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMi40ICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTEwLTE2ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjIuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjIuNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjIuMyAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0wOS0yNyAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4yLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4yLjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjItMDctMjAgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMi4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMi4yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMi4xICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTA2LTE1ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjIuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjIuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjIuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0wNC0wNCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4yLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjEzICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTAyLTA3ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjEzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuMTIgICAgICAgICAgICAgICAgICAgICB8IDIwMjEtMTItMjMgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS4xMSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMS0wOS0yOSAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjExXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS4xMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjEwICAgICAgICAgICAgICAgICAgICAgfCAyMDIxLTA2LTI4ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuOSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMS0wNC0yMCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjggICAgICAgICAgICAgICAgICAgICB8IDIwMjEtMDQtMTggIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS44KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS43ICAgICAgICAgICAgICAgICAgICAgfCAyMDIxLTAyLTE4ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuNiAgICAgICAgICAgICAgICAgICAgIHwgMjAyMC0xMi0wNCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjUgICAgICAgICAgICAgICAgICAgICB8IDIwMjAtMTAtMDEgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS41KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS40ICAgICAgICAgICAgICAgICAgICAgfCAyMDIwLTA3LTI0ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuMyAgICAgICAgICAgICAgICAgICAgIHwgMjAyMC0wNi0yNyAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjAtMDQtMDEgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS4yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS4xICAgICAgICAgICAgICAgICAgICAgfCAyMDIwLTAxLTAyICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0xMS0xNiAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjEwICAgICAgICAgICAgICAgICAgICB8IDIwMTktMTAtMTEgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4xMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC45ICAgICAgICAgICAgICAgICAgICAgfCAyMDE5LTA4LTIyICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuOCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0wNC0yNCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjcgICAgICAgICAgICAgICAgICAgICB8IDIwMTktMDItMTggIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC43XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC43KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC42ICAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTExLTI3ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuNSAgICAgICAgICAgICAgICAgICAgIHwgMjAxOC0wOS0xOSAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjQgICAgICAgICAgICAgICAgICAgICB8IDIwMTgtMDktMDUgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC40KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC4zICAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTA4LTA5ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMTQgKCoqY3VycmVudCBzdGFibGUqKil8IDIwMjQtMDMtMTkgICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjE0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMTMgICAgICAgICAgICAgICAgICAgIHwgMjAyNC0wMS0yNiAgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi4xM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuMTMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi4xMiAgICAgICAgICAgICAgICAgICAgfCAyMDIzLTEwLTE0ICAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjEyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi4xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjExICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDUtMTUgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi4xMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuMTEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi4xMCAgICAgICAgICAgICAgICAgICAgfCAyMDIzLTAzLTIxICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuOSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0xMS0xNSAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjggICAgICAgICAgICAgICAgICAgICB8IDIwMjItMTAtMTYgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi44KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi43ICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTA5LTI3ICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuNiAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0wNC0wNCAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjUgICAgICAgICAgICAgICAgICAgICB8IDIwMjItMDItMDcgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi41KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi40ICAgICAgICAgICAgICAgICAgICAgfCAyMDIxLTEyLTIzICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMyAgICAgICAgICAgICAgICAgICAgIHwgMjAyMS0wOS0yOSAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjAtMDctMDEgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi4yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi4xICAgICAgICAgICAgICAgICAgICAgfCAyMDIwLTA0LTAxICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0xMS0xNiAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS41LjI0ICAgICAgICAgICAgICAgICAgICB8IDIwMTktMTAtMTEgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNS4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjUuMjQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4yMyAgICAgICAgICAgICAgICAgICAgfCAyMDE5LTA4LTIyICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjIzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjUuMjIgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0wMi0xOCAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS41LjIyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNS4yMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS41LjIxICAgICAgICAgICAgICAgICAgICB8IDIwMTgtMDgtMDkgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNS4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjUuMjEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4yMCAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTA1LTIzICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjIwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuMiAgICAgICAgICAgICAgICAgICAgIHwgMjAxOC0wNS0yMyAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjEgICAgICAgICAgICAgICAgICAgICB8IDIwMTgtMDQtMTYgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4xXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC4xKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4xOSAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTA0LTE2ICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjE5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOC0wMy0yMCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjAtcmM0ICAgICAgICAgICAgICAgICB8IDIwMTgtMDEtMjIgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4wLXJjNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMC1yYzQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC4wLXJjMyAgICAgICAgICAgICAgICAgfCAyMDE3LTExLTIxICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuMC1yYzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjAtcmMzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuMC1yYzIgICAgICAgICAgICAgICAgIHwgMjAxNy0wOS0yOSAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjAtcmMyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC4wLXJjMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjAtcmMxICAgICAgICAgICAgICAgICB8IDIwMTctMDgtMTcgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4wLXJjMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMC1yYzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4xOCAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTAxLTIyICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjE4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjUuMTcgICAgICAgICAgICAgICAgICAgIHwgMjAxNy0xMS0yMSAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS41LjE3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNS4xNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS41LjE2ICAgICAgICAgICAgICAgICAgICB8IDIwMTctMDctMTUgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNS4xNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjUuMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuMy4xMiAgICAgICAgICAgICAgICAgICAgfCAyMDE0LTEyLTIzICB8IDEuMiAgICAgICAgICAgfCBbdGFnIHYxLjMuMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS4zLjEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjIuNCAgICAgICAgICAgICAgICAgICAgIHwgMjAxMy0wNi0xOSAgfCAxLjEgICAgICAgICAgIHwgW3RhZyBzd2FnZ2VyLXByb2plY3RfMi4xMC4wLTEuMi40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvc3dhZ2dlci1wcm9qZWN0XzIuMTAuMC0xLjIuNCkgfCBEZXByZWNhdGVkCjEuMC4wICAgICAgICAgICAgICAgICAgICAgfCAyMDExLTEwLTE2ICB8IDEuMCAgICAgICAgICAgfCBbdGFnIHYxLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlcHJlY2F0ZWQKCgojIyMgQ2hhbmdlIEhpc3RvcnkKSWYgeW91J3JlIGludGVyZXN0ZWQgaW4gdGhlIGNoYW5nZSBoaXN0b3J5IG9mIHN3YWdnZXIgYW5kIHRoZSBTd2FnZ2VyIENvcmUgZnJhbWV3b3JrLCBzZWUgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvcmVsZWFzZXMpLgoKIyMjIFByZXJlcXVpc2l0ZXMKWW91IG5lZWQgdGhlIGZvbGxvd2luZyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBpbiB5b3VyICRQQVRIOgoKKiBKYXZhIDExCiogQXBhY2hlIG1hdmVuIDMuMC40IG9yIGdyZWF0ZXIKKiBKYWNrc29uIDIuNC41IG9yIGdyZWF0ZXIKCgojIyMgVG8gYnVpbGQgZnJvbSBzb3VyY2UgKGN1cnJlbnRseSAyLjIuMjQtU05BUFNIT1QpCmBgYAojIGZpcnN0IHRpbWUgYnVpbGRpbmcgbG9jYWxseQptdm4gLU4KYGBgCgpTdWJzZXF1ZW50IGJ1aWxkczoKYGBgCm12biBpbnN0YWxsCmBgYAoKVGhpcyB3aWxsIGJ1aWxkIHRoZSBtb2R1bGVzLgoKT2YgY291cnNlIGlmIHlvdSBkb24ndCB3YW50IHRvIGJ1aWxkIGxvY2FsbHkgeW91IGNhbiBncmFiIGFydGlmYWN0cyBmcm9tIG1hdmVuIGNlbnRyYWw6CgpgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL2lvL3N3YWdnZXIvY29yZS9gCgojIyBTYW1wbGUgQXBwcwpUaGUgc2FtcGxlcyBoYXZlIG1vdmVkIHRvIFthIG5ldyByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1zYW1wbGVzL3RyZWUvMi4wKSBhbmQgY29udGFpbiB2YXJpb3VzIGludGVncmF0aW9ucyBhbmQgY29uZmlndXJhdGlvbnMuCgojIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4K readmeEtag: '"a87ea4465f0bbcd4c610fb92bdc74dd1e1f1f529"' readmeLastModified: Wed, 28 Aug 2024 11:53:22 GMT repositoryId: 2003641 description: >- Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API created: '2011-07-05T23:44:11Z' updated: '2024-09-02T15:00:35Z' language: Java archived: false stars: 7375 watchers: 310 forks: 2173 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"80a22dc83052ab8bfb4655027344018d934a8c686fa28b970054bdc385dcba72"' repoLastModified: Mon, 02 Sep 2024 15:00:35 GMT foundInMaster: true category: Code Generators id: 2093f5c5f56617123b73ae823791176d - source: openapi3 tags repository: https://github.com/mockoon/mockoon v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tIiBhbHQ9Im1vY2tvb24gbG9nbyI+CiAgICA8aW1nIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL2xvZ28tc3F1YXJlLWFwcC5wbmciPgogIDwvYT4KICA8YnI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1dlYnNpdGUtR28tZ3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQj0xOTk3YzYiLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9uZXdzbGV0dGVyLyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTmV3c2xldHRlci1TdWJzY3JpYmUtZ3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlIi8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vR2V0TW9ja29vbiI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvVHdpdHRlcl9AR2V0TW9ja29vbi1mb2xsb3ctYmx1ZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JCPTFkYTFmMiIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tL2Rpc2NvcmQvIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EaXNjb3JkLWdvLWJsdWUuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQT02Yzg0ZDkmY29sb3JCPTFkYTFmMiIvPjwvYT4gIAogIDxicj4KICA8YnI+CiAgPGgxPk1vY2tvb246IGF3ZXNvbWUgQVBJIG1vY2tpbmc8L2gxPgo8L2Rpdj4KCk1vY2tvb24gaXMgdGhlIGVhc2llc3QgYW5kIHF1aWNrZXN0IHdheSB0byBkZXNpZ24gYW5kIHJ1biBtb2NrIEFQSXMuIE5vIHJlbW90ZSBkZXBsb3ltZW50LCBubyBhY2NvdW50IHJlcXVpcmVkLCBmcmVlIGFuZCBvcGVuLXNvdXJjZS4KCkl0IGNvbWJpbmVzIGEgW2Rlc2t0b3AgYXBwbGljYXRpb25dKGh0dHBzOi8vbW9ja29vbi5jb20vZG93bmxvYWQvKSB0byBkZXNpZ24gYW5kIHJ1biBtb2NrIHNlcnZlcnMgbG9jYWxseSwgYW5kIGEgW0NMSV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9jbGkvKSB0byBzZWxmLWhvc3QgeW91ciBmYWtlIEFQSXMuIEEgW2Nsb3VkXSgjc3Vic2NyaWJlLXRvLW1vY2tvb24tY2xvdWQpIGlzIGFsc28gYXZhaWxhYmxlIHRvIGNvbGxhYm9yYXRlIHdpdGggeW91ciB0ZWFtLCBrZWVwIHlvdXIgZGF0YSBpbiBzeW5jLCBhbmQgZGVwbG95IHlvdXIgbW9jayBBUElzLiAKCkFQSSBtb2NraW5nIGhlbHBzIHlvdSBzcGVlZCB1cCBkZXZlbG9wbWVudCBhbmQgdGhpcmQtcGFydHkgQVBJIGludGVncmF0aW9uIGJ5IHJlZHVjaW5nIGRlcGVuZGVuY3kgb24gZXh0ZXJuYWwgc2VydmljZXMgYW5kIHRoZWlyIGxpbWl0YXRpb25zOiByYXRlIGxpbWl0cywgY29zdHMsIGF2YWlsYWJpbGl0eSwgZXRjLiAKSXQgYWxzbyBhbGxvd3MgeW91IHRvIHRlc3QgeW91ciBhcHBsaWNhdGlvbnMgaW4gYSBjb250cm9sbGVkIGVudmlyb25tZW50IHdpdGggcHJlZGljdGFibGUgcmVzcG9uc2VzLCBzdGF0dXMgY29kZXMsIGFuZCBsYXRlbmNpZXMsIGFuZCBlYXNpbHkgc2ltdWxhdGUgZWRnZSBjYXNlcyBhbmQgZXJyb3Igc2NlbmFyaW9zLgpGaW5hbGx5LCB5b3UgY2FuIG9uYm9hcmQgbmV3IHRlYW0gbWVtYmVycyBmYXN0ZXIgYnkgcHJvdmlkaW5nIHRoZW0gd2l0aCBhIGNvbnNpc3RlbnQgYW5kIHJlbGlhYmxlIGVudmlyb25tZW50IHRvIHRlc3QgYW5kIGRldmVsb3AgdGhlaXIgYXBwbGljYXRpb25zLgoK4p6h77iPIFtEb3dubG9hZF0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9kb3dubG9hZC8pCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxpbWcgd2lkdGg9IjUwJSIgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9oZXJvLXJlcG8ucG5nIj4KPC9kaXY+CgojIyBGZWF0dXJlcwoKTW9ja29vbiBvZmZlcnMgbWFueSBmZWF0dXJlczoKCi0gVW5saW1pdGVkIG51bWJlciBvZiBtb2NrIGxvY2FsIHNlcnZlcnMgYW5kIHJvdXRlcwotIENMSSB0byBydW4geW91ciBtb2NrIGluIGhlYWRsZXNzIGVudmlyb25tZW50cywgQ0ksIGV0Yy4KLSBDb21wbGV0ZSBjb250cm9sIG9uIHJvdXRlcyBkZWZpbml0aW9uOiBIVFRQIG1ldGhvZHMgYW5kIHN0YXR1c2VzLCByZWdleCBwYXRocywgZmlsZSBzZXJ2aW5nLCBjdXN0b20gaGVhZGVycywgZXRjLgotIE9wZW5BUEkgY29tcGF0aWJpbGl0eQotIFJlY29yZC9sb2dzIG9mIGFsbCBlbnRlcmluZyBhbmQgZm9yd2FyZGVkIHJlcXVlc3RzCi0gSlNPTiB0ZW1wbGF0aW5nCi0gUHJveHkgZm9yd2FyZGluZyBtb2RlCi0gSFRUUFMgc3VwcG9ydAoKWW91IGNhbiBjaGVjayB0aGUgW2NvbXBsZXRlIGxpc3RdKGh0dHBzOi8vbW9ja29vbi5jb20vZmVhdHVyZXMvKSBvbiB0aGUgd2Vic2l0ZS4KCi0tLQoKIyMgT3VyIHNwb25zb3JzCgojIyMgUGxhdGludW0KCjxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7Ij4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5ibG9nLzIwMjMtMDQtMTItZ2l0aHViLWFjY2VsZXJhdG9yLW91ci1maXJzdC1jb2hvcnQtYW5kLXdoYXRzLW5leHQvIj4KICAgICAgPHBpY3R1cmU+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9pbWFnZXMvc3BvbnNvcnMvbGlnaHQvZ2l0aHViLnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2dpdGh1Yi5wbmciPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9pbWFnZXMvc3BvbnNvcnMvbGlnaHQvZ2l0aHViLnBuZyIgYWx0PSJHaXRIdWIgbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSJodHRwczovL2xvY2FsYXp5LmNvbS9yZWdpc3Rlcj9yZWY9YTlDaURDNjFnT2FjLWF6TyI+CiAgICAgIDxwaWN0dXJlPgogICAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xpZ2h0L2xvY2FsYXp5LnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xvY2FsYXp5LnBuZyI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9zcG9uc29ycy9saWdodC9sb2NhbGF6eS5wbmciIGFsdD0iTG9jYWxhenkgbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4KPC9kaXY+CgojIyMgU2lsdmVyCgo8ZGl2IGFsaWduPSJjZW50ZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7bWFyZ2luLWJvdHRvbToyMHB4OyI+ICAKICA8YSBocmVmPSJodHRwczovL3d3dy5lbXF4LmlvLyI+ICAKICAgICAgPGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2VtcXgucG5nIiBhbHQ9ImVtcXggbG9nbyIgLz4KICA8L2E+CjwvZGl2PgoKTW9ja29vbiBpcyBhbiBvcGVuLXNvdXJjZSBwcm9qZWN0IGJ1aWx0IGJ5IHZvbHVudGVlciBtYWludGFpbmVycy4gSWYgeW91IGxpa2Ugb3VyIGFwcGxpY2F0aW9uLCBwbGVhc2UgY29uc2lkZXIgc3BvbnNvcmluZyB1cyBhbmQgam9pbiBhbGwgdGhlIFtTcG9uc29ycyBhbmQgQmFja2Vyc10oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vYmFja2Vycy5tZCkgd2hvIGhlbHBlZCB0aGlzIHByb2plY3Qgb3ZlciB0aW1lIQoKPGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luLXRvcDoyMHB4O21hcmdpbi1ib3R0b206MjBweDsiPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvbW9ja29vbiI+PGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3ItYnRuLnBuZz8iIHdpZHRoPSIyNTAiIGFsdD0ic3BvbnNvciBidXR0b24iIC8+PC9hPgo8L2Rpdj4KCi0tLQoKIyMgRG93bmxvYWQgdGhlIGRlc2t0b3AgYXBwbGljYXRpb24KCllvdSBjYW4gZ2V0IE1vY2tvb24gZGVza3RvcCdzIFtsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9yZWxlYXNlcy9sYXRlc3QpIGRpcmVjdGx5IGZyb20gdGhpcyByZXBvc2l0b3J5IG9yIG9uIHRoZSBvZmZpY2lhbCBbd2Vic2l0ZV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9kb3dubG9hZC8pLiBNb2Nrb29uIGRlc2t0b3AgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaDoKCk1hY09TOgoKLSBbX0hvbWVicmV3X10oaHR0cHM6Ly9mb3JtdWxhZS5icmV3LnNoL2Nhc2svbW9ja29vbik6IGBicmV3IGluc3RhbGwgLS1jYXNrIG1vY2tvb25gLgoKV2luZG93czoKCi0gX3dpbmdldF86IGB3aW5nZXQgaW5zdGFsbCBtb2Nrb29uYC4KLSBbX0Nob2NvbGF0ZXlfXShodHRwczovL2NvbW11bml0eS5jaG9jb2xhdGV5Lm9yZy9wYWNrYWdlcy9tb2Nrb29uKTogYGNob2NvIGluc3RhbGwgbW9ja29vbmAuCi0gW19XaW5kb3dzIFN0b3JlX10oaHR0cHM6Ly93d3cubWljcm9zb2Z0LmNvbS9lbi11cy9wL21vY2tvb24vOXBrOGRtc24wMGpqKQoKTGludXg6CgotIFtfU25hcCBzdG9yZV9dKGh0dHBzOi8vc25hcGNyYWZ0LmlvL21vY2tvb24pOiBgc25hcCBpbnN0YWxsIG1vY2tvb25gLgotIFtfQVVSX10oaHR0cHM6Ly9hdXIuYXJjaGxpbnV4Lm9yZy9wYWNrYWdlcy9tb2Nrb29uLWJpbik6IGB5YXkgLVMgbW9ja29vbi1iaW5gLgoKIyMgSW5zdGFsbCB0aGUgQ0xJCgpNb2Nrb29uIENMSSBpcyBhdmFpbGFibGUgYXMgYW4gW05QTSBwYWNrYWdlXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbW9ja29vbi9jbGkpLiBQbGVhc2UgY2hlY2sgb3VyIFtkZWRpY2F0ZWQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vcGFja2FnZXMvY2xpL1JFQURNRS5tZCkgdG8gbGVhcm4gaG93IHRvIGluc3RhbGwgYW5kIHVzZSBpdC4KCiMjIFVzZSBpbiBjbG91ZCBmdW5jdGlvbnMgYW5kIHNlcnZlcmxlc3MgZW52aXJvbm1lbnRzCgpNb2Nrb29uJ3MgU2VydmVybGVzcyBbTlBNIHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0Btb2Nrb29uL3NlcnZlcmxlc3MpIHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIHJ1biBNb2Nrb29uJ3MgbW9jayBBUElzIGluIGNsb3VkIGZ1bmN0aW9ucyBhbmQgc2VydmVybGVzcyBlbnZpcm9ubWVudHM6IEFXUyBMYW1iZGEsIEdDUCBGdW5jdGlvbnMsIEZpcmViYXNlIEZ1bmN0aW9ucywgZXRjLgoKUGxlYXNlIGNoZWNrIG91ciBbZGVkaWNhdGVkIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL3BhY2thZ2VzL3NlcnZlcmxlc3MvUkVBRE1FLm1kKSB0byBsZWFybiBob3cgdG8gdXNlIGl0LgoKIyMgU3Vic2NyaWJlIHRvIE1vY2tvb24gQ2xvdWQKCldpdGggYWR2YW5jZWQgZmVhdHVyZXMgZm9yIHNvbG8gZGV2ZWxvcGVycyBhbmQgdGVhbXMsIE1vY2tvb24gQ2xvdWQgc3VwZXJjaGFyZ2VzIHlvdXIgQVBJIGRldmVsb3BtZW50OgoKLSDimIHvuI8gW2Nsb3VkIGRlcGxveW1lbnRzXShodHRwczovL21vY2tvb24uY29tL2RvY3MvbGF0ZXN0L21vY2tvb24tY2xvdWQvYXBpLW1vY2stY2xvdWQtZGVwbG95bWVudHMvKQotIPCflITvuI8gW2RhdGEgc3luY2hyb25pemF0aW9uIGFuZCByZWFsLXRpbWUgY29sbGFib3JhdGlvbl0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9kb2NzL2xhdGVzdC9tb2Nrb29uLWNsb3VkL2RhdGEtc3luY2hyb25pemF0aW9uLXRlYW0tY29sbGFib3JhdGlvbi8pCi0g8J+kliBbQUkgcG93ZXJlZCBBUEkgbW9ja2luZ10oaHR0cHM6Ly9tb2Nrb29uLmNvbS9haS1wb3dlcmVkLWFwaS1tb2NraW5nLykKLSDwn5ODIEFjY2VzcyB0byBkb3plbnMgb2YgW3JlYWR5LXRvLXVzZSBKU09OIHRlbXBsYXRlc10oaHR0cHM6Ly9tb2Nrb29uLmNvbS90ZW1wbGF0ZXMvKS4KLSDwn5KsIFByaW9yaXR5IHN1cHBvcnQgYW5kIHRyYWluaW5nLgoKVXBncmFkZSB0b2RheSBhbmQgdGFrZSB5b3VyIEFQSSBkZXZlbG9wbWVudCB0byB0aGUgbmV4dCBsZXZlbC4KCjxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7Ij4KPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9jbG91ZC8iPjxpbWcgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9jbG91ZC1idG4ucG5nPyIgd2lkdGg9IjI1MCIgYWx0PSJjbG91ZCBidXR0b24iIC8+PC9hPgo8L2Rpdj4KCiMjIE1vY2tvb24ncyBkb2N1bWVudGF0aW9uCgpZb3Ugd2lsbCBmaW5kIE1vY2tvb24ncyBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9kb2NzL2xhdGVzdC9hYm91dC8pIG9uIHRoZSBvZmZpY2lhbCB3ZWJzaXRlLiBJdCBjb3ZlcnMgTW9ja29vbidzIG1vc3QgY29tcGxleCBmZWF0dXJlcy4gRmVlbCBmcmVlIHRvIGNvbnRyaWJ1dGUgb3IgYXNrIGZvciBuZXcgdG9waWNzIHRvIGJlIGNvdmVyZWQuCgojIyBDaGFuZ2Vsb2dzCgpZb3Ugd2lsbCBmaW5kIE1vY2tvb24gYXBwbGljYXRpb25zIFtjaGFuZ2Vsb2dzXShodHRwczovL21vY2tvb24uY29tL3JlbGVhc2VzLykgb24gdGhlIG9mZmljaWFsIHdlYnNpdGUuCgojIyBTdXBwb3J0L2ZlZWRiYWNrCgpZb3UgY2FuIGRpc2N1c3MgYWxsIHRoaW5ncyByZWxhdGVkIHRvIE1vY2tvb24gYW5kIGFzayBmb3IgaGVscCBvbiB0aGUgW29mZmljaWFsIGNvbW11bml0eV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9kaXNjdXNzaW9ucykuIEl0J3MgYWxzbyBhIGdvb2QgcGxhY2UgdG8gZGlzY3VzcyBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIGJlZm9yZSBvcGVuaW5nIGFuIGlzc3VlIG9uIHRoaXMgcmVwb3NpdG9yeS4gRm9yIG1vcmUgY2hhdC1saWtlIGRpc2N1c3Npb25zLCB5b3UgY2FuIGFsc28gam9pbiBvdXIgW0Rpc2NvcmQgc2VydmVyXShodHRwczovL2Rpc2NvcmQuZ2cvRnRKamtlaktHcCkuCgojIyBDb250cmlidXRpbmcKCklmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBjb250cmlidXRpbmcgdG8gTW9ja29vbiwgcGxlYXNlIHRha2UgYSBsb29rIGF0IHRoZSBbY29udHJpYnV0aW5nIGd1aWRlbGluZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL0NPTlRSSUJVVElORy5tZCkuCgpQbGVhc2UgYWxzbyB0YWtlIGEgbG9vayBhdCBvdXIgW0NvZGUgb2YgQ29uZHVjdF0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vQ09ERV9PRl9DT05EVUNULm1kKS4KCiMjIFJvYWRtYXAKCklmIHlvdSB3YW50IHRvIGtub3cgd2hhdCB3aWxsIGJlIGNvbWluZyBpbiB0aGUgbmV4dCByZWxlYXNlIHlvdSBjYW4gY2hlY2sgdGhlIGdsb2JhbCBbUm9hZG1hcF0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9wdWJsaWMtcm9hZG1hcC8pLgoKTmV3IHJlbGVhc2VzIHdpbGwgYmUgYW5ub3VuY2VkIG9uIE1vY2tvb24ncyBbVHdpdHRlciBhY2NvdW50IEBHZXRNb2Nrb29uXShodHRwczovL3R3aXR0ZXIuY29tL0dldE1vY2tvb24pIGFuZCB0aHJvdWdoIHRoZSBuZXdzbGV0dGVyIHRvIHdoaWNoIHlvdSBjYW4gc3Vic2NyaWJlIFtoZXJlXShodHRwczovL21vY2tvb24uY29tL25ld3NsZXR0ZXIvKS4K readmeEtag: '"22b22b6d1043d733dd68381814cb6b499018efbd"' readmeLastModified: Wed, 28 Aug 2024 11:35:39 GMT repositoryId: 97478419 description: >- Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source. created: '2017-07-17T13:19:16Z' updated: '2024-09-06T00:13:06Z' language: TypeScript archived: false stars: 6228 watchers: 60 forks: 363 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION repoEtag: '"fb43b372f9b20e6d0cd9776d222f40ab2163bb0336ad0603c24c31ceacff8fd8"' repoLastModified: Fri, 06 Sep 2024 00:13:06 GMT foundInMaster: true category: Testing id: 8728dfca2c1908dbecdcddd31597fad4 - source: openapi3 tags name: OpenAPI Server Code Generator (oapi-codegen) category: - Code Generators link: https://github.com/deepmap/oapi-codegen repository: https://github.com/oapi-codegen/oapi-codegen language: Go source_description: >- Generate a client, server, and HTTP types for various Go HTTP servers, from an OpenAPI v3 specification v3: true repositoryMetadata: base64Readme: >- IyBgb2FwaS1jb2RlZ2VuYAoKYG9hcGktY29kZWdlbmAgaXMgYSBjb21tYW5kLWxpbmUgdG9vbCBhbmQgbGlicmFyeSB0byBjb252ZXJ0IE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgdG8gR28gY29kZSwgYmUgaXQgW3NlcnZlci1zaWRlIGltcGxlbWVudGF0aW9uc10oI2dlbmVyYXRpbmctc2VydmVyLXNpZGUtYm9pbGVycGxhdGUpLCBbQVBJIGNsaWVudHNdKCNnZW5lcmF0aW5nLWFwaS1jbGllbnRzKSwgb3Igc2ltcGx5IFtIVFRQIG1vZGVsc10oI2dlbmVyYXRpbmctYXBpLW1vZGVscykuCgpVc2luZyBgb2FwaS1jb2RlZ2VuYCBhbGxvd3MgeW91IHRvIHJlZHVjZSB0aGUgYm9pbGVycGxhdGUgcmVxdWlyZWQgdG8gY3JlYXRlIG9yIGludGVncmF0ZSB3aXRoIHNlcnZpY2VzIGJhc2VkIG9uIFtPcGVuQVBJIDMuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4wLm1kKSwgYW5kIGluc3RlYWQgZm9jdXMgb24gd3JpdGluZyB5b3VyIGJ1c2luZXNzIGxvZ2ljLCBhbmQgd29ya2luZyBvbiB0aGUgcmVhbCB2YWx1ZS1hZGQgZm9yIHlvdXIgb3JnYW5pc2F0aW9uLgoKV2l0aCBgb2FwaS1jb2RlZ2VuYCwgdGhlcmUgYXJlIGEgZmV3IFtLZXkgRGVzaWduIERlY2lzaW9uc10oI2tleS1kZXNpZ24tZGVjaXNpb25zKSB3ZSd2ZSBtYWRlLCBpbmNsdWRpbmc6CgotIGlkaW9tYXRpYyBHbywgd2hlcmUgcG9zc2libGUKLSBmYWlybHkgc2ltcGxlIGdlbmVyYXRlZCBjb2RlLCBlcnJpbmcgb24gdGhlIHNpZGUgb2YgZHVwbGljYXRlIGNvZGUgb3ZlciBuaWNlbHkgcmVmYWN0b3JlZCBjb2RlCi0gc3VwcG9ydGluZyBhcyBtdWNoIG9mIE9wZW5BUEkgMy54IGFzIGlzIHBvc3NpYmxlLCBhbG9uZ3NpZGUgR28ncyB0eXBlIHN5c3RlbQoKYG9hcGktY29kZWdlbmAgaXMgb25lIHBhcnQgb2YgYSB3aWRlciBlY29zeXN0ZW0sIHdoaWNoIGNhbiBiZSBmb3VuZCBkZXNjcmliZWQgaW4gZnVydGhlciBkZXRhaWwgaW4gdGhlIFtvYXBpLWNvZGVnZW4gb3JnYW5pc2F0aW9uIG9uIEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL29hcGktY29kZWdlbikuCgrimqDvuI8gVGhpcyBSRUFETUUgbWF5IGJlIGZvciB0aGUgbGF0ZXN0IGRldmVsb3BtZW50IHZlcnNpb24sIHdoaWNoIG1heSBjb250YWluIHVucmVsZWFzZWQgY2hhbmdlcy4gUGxlYXNlIGVuc3VyZSB5b3UncmUgbG9va2luZyBhdCB0aGUgUkVBRE1FIGZvciB0aGUgbGF0ZXN0IHJlbGVhc2UgdmVyc2lvbi4KCiMjIEFjdGlvbiBSZXF1aXJlZDogVGhlIHJlcG9zaXRvcnkgZm9yIHRoaXMgcHJvamVjdCBoYXMgY2hhbmdlZAoKQXMgYW5ub3VuY2VkIGluIFtNYXkgMjAyNF0oaHR0cHM6Ly9naXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vZGlzY3Vzc2lvbnMvMTYwNSksCndlIGhhdmUgbW92ZWQgdGhlIHByb2plY3QgZnJvbSB0aGUgZGVlcG1hcCBvcmdhbml6YXRpb24gdG8gb3VyIG93biBvcmdhbml6YXRpb24sIGFuZCB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB5b3VyCmltcG9ydCBwYXRocyB0byBwdWxsIHVwZGF0ZXMgcGFzdCB0aGlzIHBvaW50LiBZb3UgbmVlZCB0byBkbyBhIHJlY3Vyc2l2ZSBzZWFyY2gvcmVwbGFjZSBmcm9tCmBnaXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL3YyYCB0byBgZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyYC4KCj4gWyFJTVBPUlRBTlRdCj4gYG9hcGktY29kZWdlbmAgbW92ZWQgdG8gaXRzIG5ldyBob21lIHdpdGggdGhlIHZlcnNpb24gdGFnIGB2Mi4zLjBgLgoKSWYgeW91IGFyZSB1c2luZyBgdjIuMi4wYCBvciBiZWxvdywgcGxlYXNlIGluc3RhbGwgbGlrZSBzbzoKCmBgYHNoCiMgZm9yIHRoZSBiaW5hcnkgaW5zdGFsbApnbyBpbnN0YWxsIGdpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vdjIvY21kL29hcGktY29kZWdlbkB2Mi4yLjAKYGBgCgpJZiB5b3UgYXJlIHVzaW5nIGB2Mi4zLjBgIG9yIGFib3ZlLCBwbGVhc2UgaW5zdGFsbCBsaWtlIHNvLCB1c2luZyB0aGUgbmV3IG1vZHVsZSBpbXBvcnQgcGF0aDoKCmBgYHNoCiMgZm9yIHRoZSBiaW5hcnkgaW5zdGFsbApnbyBpbnN0YWxsIGdpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL29hcGktY29kZWdlbi92Mi9jbWQvb2FwaS1jb2RlZ2VuQGxhdGVzdApgYGAKCiMjIEluc3RhbGwKCkl0IGlzIHJlY29tbWVuZGVkIHRvIGZvbGxvdyBbdGhlIGB0b29scy5nb2AgcGF0dGVybl0oaHR0cHM6Ly93d3cuanZ0Lm1lL3Bvc3RzLzIwMjIvMDYvMTUvZ28tdG9vbHMtZGVwZW5kZW5jeS1tYW5hZ2VtZW50LykgZm9yIG1hbmFnaW5nIHRoZSBkZXBlbmRlbmN5IG9mIGBvYXBpLWNvZGVnZW5gIGFsb25nc2lkZSB5b3VyIGNvcmUgYXBwbGljYXRpb24uCgpUaGlzIHdvdWxkIGdpdmUgeW91IGEgYHRvb2xzL3Rvb2xzLmdvYDoKCmBgYGdvCi8vZ286YnVpbGQgdG9vbHMKLy8gK2J1aWxkIHRvb2xzCgpwYWNrYWdlIG1haW4KCmltcG9ydCAoCglfICJnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIvY21kL29hcGktY29kZWdlbiIKKQpgYGAKClRoZW4sIGVhY2ggaW52b2NhdGlvbiBvZiBgb2FwaS1jb2RlZ2VuYCB3b3VsZCBiZSB1c2VkIGxpa2Ugc286CgpgYGBnbwovL2dvOmdlbmVyYXRlIGdvIHJ1biBnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIvY21kL29hcGktY29kZWdlbiAtLWNvbmZpZz1jb25maWcueWFtbCAuLi8uLi9hcGkueWFtbApgYGAKCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gaW5zdGFsbCBpdCBhcyBhIGJpbmFyeSB3aXRoOgoKYGBgc2gKJCBnbyBpbnN0YWxsIGdpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL29hcGktY29kZWdlbi92Mi9jbWQvb2FwaS1jb2RlZ2VuQGxhdGVzdAokIG9hcGktY29kZWdlbiAtdmVyc2lvbgpgYGAKCldoaWNoIHRoZW4gbWVhbnMgeW91IGNhbiBpbnZva2UgaXQgbGlrZSBzbzoKCmBgYGdvCi8vZ286Z2VuZXJhdGUgb2FwaS1jb2RlZ2VuIC0tY29uZmlnPWNvbmZpZy55YW1sIC4uLy4uL2FwaS55YW1sCmBgYAoKIyMjIFBpbm5pbmcgdG8gY29tbWl0cwoKV2hpbGUgdGhlIHByb2plY3QgZG9lcyBub3QgKFt5ZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9pc3N1ZXMvMTUxOSkpIGhhdmUgYSBkZWZpbmVkIHJlbGVhc2UgY2FkZW5jZSwgdGhlcmUgbWF5IGJlIGNhc2VzIHdoZXJlIHlvdSB3YW50IHRvIHB1bGwgaW4geWV0LXVucmVsZWFzZWQgY2hhbmdlcyB0byB5b3VyIGNvZGViYXNlLgoKVGhlcmVmb3JlLCB5b3UgbWF5IHdhbnQgdG8gcGluIHlvdXIgZGVwZW5kZW5jeSBvbiBgb2FwaS1jb2RlZ2VuYCB0byBhIGdpdmVuIGNvbW1pdCBoYXNoLCByYXRoZXIgdGhhbiBhIHRhZy4KClRoaXMgaXMgKipvZmZpY2lhbGx5IHJlY29tbWVuZGVkKiogZm9yIGNvbnN1bWVycyBvZiBgb2FwaS1jb2RlZ2VuYCwgd2hvIHdhbnQgZmVhdHVyZXMvYnVnIGZpeGVzIHRoYXQgaGF2ZW4ndCB5ZXQgYmVlbiByZWxlYXNlZC4KCldlIGFpbSB0byBrZWVwIHRoZSBkZWZhdWx0IGJyYW5jaCByZWFkeS10by1yZWxlYXNlIHNvIHlvdSBzaG91bGQgYmUgYWJsZSB0byBzYWZlbHkgcGluLgoKVG8gZG8gc28sIHlvdSBjYW4gcnVuOgoKYGBgc2gKIyBwaW4gdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIG9uIHRoZSBkZWZhdWx0IGJyYW5jaAokIGdvIGdldCBnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjJAbWFpbgojIGFsdGVybmF0aXZlbHksIHRvIGEgY29tbWl0IGhhc2ggaS5lLiBodHRwczovL2dpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vY29tbWl0LzcxZTkxNmM1OTY4OGE2Mzc5YjU3NzRkZmU1OTA0ZWMyMjJiOWE1MzcKJCBnbyBnZXQgZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyQDcxZTkxNmM1OTY4OGE2Mzc5YjU3NzRkZmU1OTA0ZWMyMjJiOWE1MzcKYGBgCgpUaGlzIHdpbGwgdGhlbiBtYWtlIGEgY2hhbmdlIHN1Y2ggYXM6CgpgYGBkaWZmCmRpZmYgLS1naXQgZ28ubW9kIGdvLm1vZAppbmRleCA0NGYyOWE0Li40MzZhNzgwIDEwMDY0NAotLS0gZ28ubW9kCisrKyBnby5tb2QKQEAgLTIsMjEgKzIsMjAgQEAKLXJlcXVpcmUgZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyIHYyLjEuMAorcmVxdWlyZSBnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIgdjIuMS4xLTAuMjAyNDAzMzEyMTI1MTQtODBmMGI5NzhlZjE2CmBgYAoKIyMgVXNhZ2UKCmBvYXBpLWNvZGVnZW5gIGlzIGxhcmdlbHkgY29uZmlndXJlZCB1c2luZyBhIFlBTUwgY29uZmlndXJhdGlvbiBmaWxlLCB0byBzaW1wbGlmeSB0aGUgbnVtYmVyIG9mIGZsYWdzIHRoYXQgdXNlcnMgbmVlZCB0byByZW1lbWJlciwgYW5kIHRvIG1ha2UgcmVhZGluZyB0aGUgYGdvOmdlbmVyYXRlYCBjb21tYW5kIGxlc3MgZGF1bnRpbmcuCgpGb3IgZnVsbCBkZXRhaWxzIG9mIHdoYXQgaXMgc3VwcG9ydGVkLCBpdCdzIHdvcnRoIGNoZWNraW5nIG91dCBbdGhlIEdvRG9jIGZvciBgY29kZWdlbi5Db25maWd1cmF0aW9uYF0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL29hcGktY29kZWdlbi92Mi9wa2cvY29kZWdlbiNDb25maWd1cmF0aW9uKS4KCldlIGFsc28gaGF2ZSBbYSBKU09OIFNjaGVtYV0oY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbikgdGhhdCBjYW4gYmUgdXNlZCBieSBJREVzL2VkaXRvcnMgd2l0aCB0aGUgTGFuZ3VhZ2UgU2VydmVyIFByb3RvY29sIChMU1ApIHRvIHBlcmZvcm0gaW50ZWxsaWdlbnQgc3VnZ2VzdGlvbnMsIGkuZS46CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6ICRzY2hlbWE9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL0hFQUQvY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbgpwYWNrYWdlOiBhcGkKIyAuLi4KYGBgCgojIyMgQmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCkFsdGhvdWdoIHdlIHN0cml2ZSB0byByZXRhaW4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgLSBhcyBhIHByb2plY3QgdGhhdCdzIHVzaW5nIGEgc3RhYmxlIEFQSSBwZXIgU2VtVmVyIC0gdGhlcmUgYXJlIHNvbWV0aW1lcyBvcHBvcnR1bml0aWVzIHdlIG11c3QgdGFrZSB0byBmaXggYSBidWcgdGhhdCBjb3VsZCBjYXVzZSBhIGJyZWFraW5nIGNoYW5nZSBmb3IgW3Blb3BsZSByZWx5aW5nIHVwb24gdGhlIGJlaGF2aW91cl0oaHR0cHM6Ly94a2NkLmNvbS8xMTcyLykuCgpJbiB0aGlzIGNhc2UsIHdlIHdpbGwgZXhwb3NlIGEgW2NvbXBhdGliaWxpdHkgb3B0aW9uXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyL3BrZy9jb2RlZ2VuI0NvbXBhdGliaWxpdHlPcHRpb25zKSB0byByZXN0b3JlIG9sZCBiZWhhdmlvdXIuCgojIyBGZWF0dXJlcwoKQXQgYSBoaWdoIGxldmVsLCBgb2FwaS1jb2RlZ2VuYCBzdXBwb3J0czoKCi0gR2VuZXJhdGluZyBzZXJ2ZXItc2lkZSBib2lsZXJwbGF0ZSBmb3IgW2EgbnVtYmVyIG9mIHNlcnZlcnNdKCNzdXBwb3J0ZWQtc2VydmVycykgKFtkb2NzXSgjZ2VuZXJhdGluZy1zZXJ2ZXItc2lkZS1ib2lsZXJwbGF0ZSkpCi0gR2VuZXJhdGluZyBjbGllbnQgQVBJIGJvaWxlcnBsYXRlIChbZG9jc10oI2dlbmVyYXRpbmctYXBpLWNsaWVudHMpKQotIEdlbmVyYXRpbmcgdGhlIHR5cGVzIChbZG9jc10oI2dlbmVyYXRpbmctYXBpLW1vZGVscykpCi0gU3BsaXR0aW5nIGxhcmdlIE9wZW5BUEkgc3BlY3MgYWNyb3NzIG11bHRpcGxlIHBhY2thZ2VzKFtkb2NzXSgjaW1wb3J0LW1hcHBpbmcpKQogIC0gVGhpcyBpcyBhbHNvIGtub3duIGFzICJJbXBvcnQgTWFwcGluZyIgb3IgImV4dGVybmFsIHJlZmVyZW5jZXMiIGFjcm9zcyBvdXIgZG9jdW1lbnRhdGlvbiAvIGRpc2N1c3Npb24gaW4gR2l0SHViIGlzc3VlcwoKIyMgV2hhdCBkb2VzIGl0IGxvb2sgbGlrZT8KCkJlbG93IHdlIGNhbiBzZWUgYSB0cmltbWVkIGRvd24gZXhhbXBsZSB0YWtlbiBmcm9tIHRoZSBPcGVuQVBJIFBldHN0b3JlIFtleGFtcGxlXShleGFtcGxlcy9wZXRzdG9yZS1leHBhbmRlZC9zdGRodHRwL2FwaS9wZXRzdG9yZS5nZW4uZ28pOgoKYGBgZ28KLy8gZ2VuZXJhdGVkIGNvZGUKCnR5cGUgU2VydmVySW50ZXJmYWNlIGludGVyZmFjZSB7CgkvLyAuLi4KCS8vIFJldHVybnMgYWxsIHBldHMKCS8vIChHRVQgL3BldHMpCglGaW5kUGV0cyh3IGh0dHAuUmVzcG9uc2VXcml0ZXIsIHIgKmh0dHAuUmVxdWVzdCwgcGFyYW1zIEZpbmRQZXRzUGFyYW1zKQoJLy8gLi4uCn0KCi8vIEZpbmRQZXRzIG9wZXJhdGlvbiBtaWRkbGV3YXJlCmZ1bmMgKHNpdyAqU2VydmVySW50ZXJmYWNlV3JhcHBlcikgRmluZFBldHModyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHsKCgl2YXIgZXJyIGVycm9yCgoJLy8gUGFyYW1ldGVyIG9iamVjdCB3aGVyZSB3ZSB3aWxsIHVubWFyc2hhbCBhbGwgcGFyYW1ldGVycyBmcm9tIHRoZSBjb250ZXh0Cgl2YXIgcGFyYW1zIEZpbmRQZXRzUGFyYW1zCgoJLy8gLS0tLS0tLS0tLS0tLSBPcHRpb25hbCBxdWVyeSBwYXJhbWV0ZXIgInRhZ3MiIC0tLS0tLS0tLS0tLS0KCgllcnIgPSBydW50aW1lLkJpbmRRdWVyeVBhcmFtZXRlcigiZm9ybSIsIHRydWUsIGZhbHNlLCAidGFncyIsIHIuVVJMLlF1ZXJ5KCksICZwYXJhbXMuVGFncykKCWlmIGVyciAhPSBuaWwgewoJCXNpdy5FcnJvckhhbmRsZXJGdW5jKHcsIHIsICZJbnZhbGlkUGFyYW1Gb3JtYXRFcnJvcntQYXJhbU5hbWU6ICJ0YWdzIiwgRXJyOiBlcnJ9KQoJCXJldHVybgoJfQoKCS8vIC0tLS0tLS0tLS0tLS0gT3B0aW9uYWwgcXVlcnkgcGFyYW1ldGVyICJsaW1pdCIgLS0tLS0tLS0tLS0tLQoKCWVyciA9IHJ1bnRpbWUuQmluZFF1ZXJ5UGFyYW1ldGVyKCJmb3JtIiwgdHJ1ZSwgZmFsc2UsICJsaW1pdCIsIHIuVVJMLlF1ZXJ5KCksICZwYXJhbXMuTGltaXQpCglpZiBlcnIgIT0gbmlsIHsKCQlzaXcuRXJyb3JIYW5kbGVyRnVuYyh3LCByLCAmSW52YWxpZFBhcmFtRm9ybWF0RXJyb3J7UGFyYW1OYW1lOiAibGltaXQiLCBFcnI6IGVycn0pCgkJcmV0dXJuCgl9CgoJaGFuZGxlciA6PSBodHRwLkhhbmRsZXIoaHR0cC5IYW5kbGVyRnVuYyhmdW5jKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7CgkJc2l3LkhhbmRsZXIuRmluZFBldHModywgciwgcGFyYW1zKQoJfSkpCgoJZm9yIF8sIG1pZGRsZXdhcmUgOj0gcmFuZ2Ugc2l3LkhhbmRsZXJNaWRkbGV3YXJlcyB7CgkJaGFuZGxlciA9IG1pZGRsZXdhcmUoaGFuZGxlcikKCX0KCgloYW5kbGVyLlNlcnZlSFRUUCh3LCByKQp9CgovLyBIYW5kbGVyV2l0aE9wdGlvbnMgY3JlYXRlcyBodHRwLkhhbmRsZXIgd2l0aCBhZGRpdGlvbmFsIG9wdGlvbnMKZnVuYyBIYW5kbGVyV2l0aE9wdGlvbnMoc2kgU2VydmVySW50ZXJmYWNlLCBvcHRpb25zIFN0ZEhUVFBTZXJ2ZXJPcHRpb25zKSBodHRwLkhhbmRsZXIgewoJbSA6PSBvcHRpb25zLkJhc2VSb3V0ZXIKCglpZiBtID09IG5pbCB7CgkJbSA9IGh0dHAuTmV3U2VydmVNdXgoKQoJfQoJaWYgb3B0aW9ucy5FcnJvckhhbmRsZXJGdW5jID09IG5pbCB7CgkJb3B0aW9ucy5FcnJvckhhbmRsZXJGdW5jID0gZnVuYyh3IGh0dHAuUmVzcG9uc2VXcml0ZXIsIHIgKmh0dHAuUmVxdWVzdCwgZXJyIGVycm9yKSB7CgkJCWh0dHAuRXJyb3IodywgZXJyLkVycm9yKCksIGh0dHAuU3RhdHVzQmFkUmVxdWVzdCkKCQl9Cgl9CgoJd3JhcHBlciA6PSBTZXJ2ZXJJbnRlcmZhY2VXcmFwcGVyewoJCUhhbmRsZXI6ICAgICAgICAgICAgc2ksCgkJSGFuZGxlck1pZGRsZXdhcmVzOiBvcHRpb25zLk1pZGRsZXdhcmVzLAoJCUVycm9ySGFuZGxlckZ1bmM6ICAgb3B0aW9ucy5FcnJvckhhbmRsZXJGdW5jLAoJfQoKCW0uSGFuZGxlRnVuYygiR0VUICIrb3B0aW9ucy5CYXNlVVJMKyIvcGV0cyIsIHdyYXBwZXIuRmluZFBldHMpCgoJcmV0dXJuIG0KfQpgYGAKClRoZW4sIGluIHlvdXIgb3duIGNvZGUsIHlvdSBpbXBsZW1lbnQgdGhlIHVuZGVybHlpbmcgbG9naWMgZm9yIHRoZSBgRmluZFBldHNgIGltcGxlbWVudGF0aW9uOgoKYGBgZ28KdHlwZSBQZXRTdG9yZSBzdHJ1Y3QgewoJUGV0cyAgIG1hcFtpbnQ2NF1QZXQKCU5leHRJZCBpbnQ2NAoJTG9jayAgIHN5bmMuTXV0ZXgKfQoKLy8gTWFrZSBzdXJlIHdlIGNvbmZvcm0gdG8gU2VydmVySW50ZXJmYWNlCgp2YXIgXyBTZXJ2ZXJJbnRlcmZhY2UgPSAoKlBldFN0b3JlKShuaWwpCgpmdW5jIE5ld1BldFN0b3JlKCkgKlBldFN0b3JlIHsKCXJldHVybiAmUGV0U3RvcmV7CgkJUGV0czogICBtYWtlKG1hcFtpbnQ2NF1QZXQpLAoJCU5leHRJZDogMTAwMCwKCX0KfQoKLy8gRmluZFBldHMgaW1wbGVtZW50cyBhbGwgdGhlIGhhbmRsZXJzIGluIHRoZSBTZXJ2ZXJJbnRlcmZhY2UKZnVuYyAocCAqUGV0U3RvcmUpIEZpbmRQZXRzKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0LCBwYXJhbXMgRmluZFBldHNQYXJhbXMpIHsKCXAuTG9jay5Mb2NrKCkKCWRlZmVyIHAuTG9jay5VbmxvY2soKQoKCXZhciByZXN1bHQgW11QZXQKCglmb3IgXywgcGV0IDo9IHJhbmdlIHAuUGV0cyB7CgkJaWYgcGFyYW1zLlRhZ3MgIT0gbmlsIHsKCQkJLy8gSWYgd2UgaGF2ZSB0YWdzLCAgZmlsdGVyIHBldHMgYnkgdGFnCgkJCWZvciBfLCB0IDo9IHJhbmdlICpwYXJhbXMuVGFncyB7CgkJCQlpZiBwZXQuVGFnICE9IG5pbCAmJiAoKnBldC5UYWcgPT0gdCkgewoJCQkJCXJlc3VsdCA9IGFwcGVuZChyZXN1bHQsIHBldCkKCQkJCX0KCQkJfQoJCX0gZWxzZSB7CgkJCS8vIEFkZCBhbGwgcGV0cyBpZiB3ZSdyZSBub3QgZmlsdGVyaW5nCgkJCXJlc3VsdCA9IGFwcGVuZChyZXN1bHQsIHBldCkKCQl9CgoJCWlmIHBhcmFtcy5MaW1pdCAhPSBuaWwgewoJCQlsIDo9IGludCgqcGFyYW1zLkxpbWl0KQoJCQlpZiBsZW4ocmVzdWx0KSA+PSBsIHsKCQkJCS8vIFdlJ3JlIGF0IHRoZSBsaW1pdAoJCQkJYnJlYWsKCQkJfQoJCX0KCX0KCgl3LldyaXRlSGVhZGVyKGh0dHAuU3RhdHVzT0spCglfID0ganNvbi5OZXdFbmNvZGVyKHcpLkVuY29kZShyZXN1bHQpCn0KYGBgCgpBcyB3ZSBjYW4gc2VlLCBgb2FwaS1jb2RlZ2VuYCBzaW1wbGlmaWVzIHNvbWUgb2YgdGhlIGJvaWxlcnBsYXRlIGJ5IHRha2luZyBwYXJhbWV0ZXJzIG91dCBvZiB0aGUgcmVxdWVzdCBhbmQgaW5zdGVhZCBhbGxvd3MgdXMgdG8gZm9jdXMgb24gdGhlIGltcGxlbWVudGF0aW9uLgoKWW91J2xsIG5vdGUgdGhhdCB0aGVyZSdzIHN0aWxsIGEgYml0IG1vcmUgbWFyc2hhbGluZyBvZiByZXF1ZXN0L3Jlc3BvbnNlIGRhdGEsIHdoaWNoIGlzIGZ1cnRoZXIgcmVkdWNlZCBieSB1c2luZyB0aGUgW1N0cmljdCBzZXJ2ZXJdKCNzdHJpY3Qtc2VydmVyKSBmdW5jdGlvbmFsaXR5LgoKPGEgbmFtZT0id2hhdC1kb2VzLWl0LWxvb2stbGlrZS1zdHJpY3QiPjwvYT4KV2hlbiB1c2luZyB0aGUgc3RyaWN0IHNlcnZlciwgeW91J2xsIGhhdmUgdGhlIGZvbGxvd2luZyBnZW5lcmF0ZWQgY29kZToKCmBgYGdvCi8vIFN0cmljdFNlcnZlckludGVyZmFjZSByZXByZXNlbnRzIGFsbCBzZXJ2ZXIgaGFuZGxlcnMuCnR5cGUgU3RyaWN0U2VydmVySW50ZXJmYWNlIGludGVyZmFjZSB7CgkvLyAuLi4KCS8vIFJldHVybnMgYWxsIHBldHMKCS8vIChHRVQgL3BldHMpCglGaW5kUGV0cyhjdHggY29udGV4dC5Db250ZXh0LCByZXF1ZXN0IEZpbmRQZXRzUmVxdWVzdE9iamVjdCkgKEZpbmRQZXRzUmVzcG9uc2VPYmplY3QsIGVycm9yKQoJLy8gLi4uCn0KCmZ1bmMgTmV3U3RyaWN0SGFuZGxlcldpdGhPcHRpb25zKHNzaSBTdHJpY3RTZXJ2ZXJJbnRlcmZhY2UsIG1pZGRsZXdhcmVzIFtdU3RyaWN0TWlkZGxld2FyZUZ1bmMsIG9wdGlvbnMgU3RyaWN0SFRUUFNlcnZlck9wdGlvbnMpIFNlcnZlckludGVyZmFjZSB7CglyZXR1cm4gJnN0cmljdEhhbmRsZXJ7c3NpOiBzc2ksIG1pZGRsZXdhcmVzOiBtaWRkbGV3YXJlcywgb3B0aW9uczogb3B0aW9uc30KfQoKLy8gRmluZFBldHMgb3BlcmF0aW9uIG1pZGRsZXdhcmUKZnVuYyAoc2ggKnN0cmljdEhhbmRsZXIpIEZpbmRQZXRzKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0LCBwYXJhbXMgRmluZFBldHNQYXJhbXMpIHsKCXZhciByZXF1ZXN0IEZpbmRQZXRzUmVxdWVzdE9iamVjdAoKCXJlcXVlc3QuUGFyYW1zID0gcGFyYW1zCgoJaGFuZGxlciA6PSBmdW5jKGN0eCBjb250ZXh0LkNvbnRleHQsIHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0LCByZXF1ZXN0IGludGVyZmFjZXt9KSAoaW50ZXJmYWNle30sIGVycm9yKSB7CgkJcmV0dXJuIHNoLnNzaS5GaW5kUGV0cyhjdHgsIHJlcXVlc3QuKEZpbmRQZXRzUmVxdWVzdE9iamVjdCkpCgl9Cglmb3IgXywgbWlkZGxld2FyZSA6PSByYW5nZSBzaC5taWRkbGV3YXJlcyB7CgkJaGFuZGxlciA9IG1pZGRsZXdhcmUoaGFuZGxlciwgIkZpbmRQZXRzIikKCX0KCglyZXNwb25zZSwgZXJyIDo9IGhhbmRsZXIoci5Db250ZXh0KCksIHcsIHIsIHJlcXVlc3QpCgoJaWYgZXJyICE9IG5pbCB7CgkJc2gub3B0aW9ucy5SZXNwb25zZUVycm9ySGFuZGxlckZ1bmModywgciwgZXJyKQoJfSBlbHNlIGlmIHZhbGlkUmVzcG9uc2UsIG9rIDo9IHJlc3BvbnNlLihGaW5kUGV0c1Jlc3BvbnNlT2JqZWN0KTsgb2sgewoJCWlmIGVyciA6PSB2YWxpZFJlc3BvbnNlLlZpc2l0RmluZFBldHNSZXNwb25zZSh3KTsgZXJyICE9IG5pbCB7CgkJCXNoLm9wdGlvbnMuUmVzcG9uc2VFcnJvckhhbmRsZXJGdW5jKHcsIHIsIGVycikKCQl9Cgl9IGVsc2UgaWYgcmVzcG9uc2UgIT0gbmlsIHsKCQlzaC5vcHRpb25zLlJlc3BvbnNlRXJyb3JIYW5kbGVyRnVuYyh3LCByLCBmbXQuRXJyb3JmKCJ1bmV4cGVjdGVkIHJlc3BvbnNlIHR5cGU6ICVUIiwgcmVzcG9uc2UpKQoJfQp9CmBgYAoKVGhlbiwgaW4geW91ciBvd24gY29kZSwgeW91IGltcGxlbWVudCB0aGUgdW5kZXJseWluZyBsb2dpYyBmb3IgdGhlIGBGaW5kUGV0c2AgaW1wbGVtZW50YXRpb246CgpgYGBnbwovLyBNYWtlIHN1cmUgd2UgY29uZm9ybSB0byBTdHJpY3RTZXJ2ZXJJbnRlcmZhY2UKCnZhciBfIFN0cmljdFNlcnZlckludGVyZmFjZSA9ICgqUGV0U3RvcmUpKG5pbCkKCmZ1bmMgTmV3UGV0U3RvcmUoKSAqUGV0U3RvcmUgewoJcmV0dXJuICZQZXRTdG9yZXsKCQlQZXRzOiAgIG1ha2UobWFwW2ludDY0XVBldCksCgkJTmV4dElkOiAxMDAwLAoJfQp9CgovLyBGaW5kUGV0cyBpbXBsZW1lbnRzIGFsbCB0aGUgaGFuZGxlcnMgaW4gdGhlIFNlcnZlckludGVyZmFjZQpmdW5jIChwICpQZXRTdG9yZSkgRmluZFBldHMoY3R4IGNvbnRleHQuQ29udGV4dCwgcmVxdWVzdCBGaW5kUGV0c1JlcXVlc3RPYmplY3QpIChGaW5kUGV0c1Jlc3BvbnNlT2JqZWN0LCBlcnJvcikgewoJcC5Mb2NrLkxvY2soKQoJZGVmZXIgcC5Mb2NrLlVubG9jaygpCgoJdmFyIHJlc3VsdCBbXVBldAoKCWZvciBfLCBwZXQgOj0gcmFuZ2UgcC5QZXRzIHsKCQlpZiByZXF1ZXN0LlBhcmFtcy5UYWdzICE9IG5pbCB7CgkJCS8vIElmIHdlIGhhdmUgdGFncywgIGZpbHRlciBwZXRzIGJ5IHRhZwoJCQlmb3IgXywgdCA6PSByYW5nZSAqcmVxdWVzdC5QYXJhbXMuVGFncyB7CgkJCQlpZiBwZXQuVGFnICE9IG5pbCAmJiAoKnBldC5UYWcgPT0gdCkgewoJCQkJCXJlc3VsdCA9IGFwcGVuZChyZXN1bHQsIHBldCkKCQkJCX0KCQkJfQoJCX0gZWxzZSB7CgkJCS8vIEFkZCBhbGwgcGV0cyBpZiB3ZSdyZSBub3QgZmlsdGVyaW5nCgkJCXJlc3VsdCA9IGFwcGVuZChyZXN1bHQsIHBldCkKCQl9CgoJCWlmIHJlcXVlc3QuUGFyYW1zLkxpbWl0ICE9IG5pbCB7CgkJCWwgOj0gaW50KCpyZXF1ZXN0LlBhcmFtcy5MaW1pdCkKCQkJaWYgbGVuKHJlc3VsdCkgPj0gbCB7CgkJCQkvLyBXZSdyZSBhdCB0aGUgbGltaXQKCQkJCWJyZWFrCgkJCX0KCQl9Cgl9CgoJcmV0dXJuIEZpbmRQZXRzMjAwSlNPTlJlc3BvbnNlKHJlc3VsdCksIG5pbAp9CmBgYAoKV2UgY2FuIHNlZSB0aGF0IHRoaXMgcHJvdmlkZXMgdGhlIGJlc3QgbWVhbnMgdG8gZm9jdXMgb24gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBidXNpbmVzcyBsb2dpYyB3aXRoaW4gdGhlIGVuZHBvaW50LCByYXRoZXIgdGhhbiAodW4pbWFyc2hhbGxpbmcgdHlwZXMgdG8gYW5kIGZyb20gSlNPTiwgb3Igd3JhbmdsaW5nIGNvb2tpZXMgb3IgaGVhZGVycy4KCiMjIEtleSBkZXNpZ24gZGVjaXNpb25zCgotIFByb2R1Y2UgYW4gaW50ZXJmYWNlIHRoYXQgY2FuIGJlIHNhdGlzZmllZCBieSB5b3VyIGltcGxlbWVudGF0aW9uLCB3aXRoIHJlZHVjZWQgYm9pbGVycGxhdGUKLSBCdWxrIHByb2Nlc3NpbmcgYW5kIHBhcnNpbmcgb2YgT3BlbkFQSSBkb2N1bWVudCBpbiBHbwotIFJlc3VsdGluZyBvdXRwdXQgaXMgdXNpbmcgR28ncyBgdGV4dC90ZW1wbGF0ZWBzLCB3aGljaCBhcmUgdXNlci1vdmVycmlkYWJsZQotIEF0dGVtcHRzIHRvIHByb2R1Y2UgSWRpb21hdGljIEdvCi0gU2luZ2xlLWZpbGUgb3V0cHV0Ci0gU3VwcG9ydCBtdWx0aXBsZSBPcGVuQVBJIGZpbGVzIGJ5IGhhdmluZyBhIHBhY2thZ2UtcGVyLU9wZW5BUEkgZmlsZQotIFN1cHBvcnQgb2YgT3BlbkFQSSAzLjAKICAtIE9wZW5BUEkgMy4xIHN1cHBvcnQgaXMgW2F3YWl0aW5nIHVwc3RyZWFtIHN1cHBvcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9pc3N1ZXMvMzczKQogIC0gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgaW5jbHVkZSBPcGVuQVBJIDIuMCAoYWthIFN3YWdnZXIpCi0gRXh0cmFjdCBwYXJhbWV0ZXJzIGZyb20gcmVxdWVzdHMsIHRvIHJlZHVjZSB3b3JrIHJlcXVpcmVkIGJ5IHlvdXIgaW1wbGVtZW50YXRpb24KLSBJbXBsaWNpdCBgYWRkaXRpb25hbFByb3BlcnRpZXNgIGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQgKFttb3JlIGRldGFpbHNdKCNhZGRpdGlvbmFsLXByb3BlcnRpZXMtYWRkaXRpb25hbHByb3BlcnRpZXMpKQotIFBydW5lIHVudXNlZCB0eXBlcyBieSBkZWZhdWx0CgojIyBHZW5lcmF0aW5nIHNlcnZlci1zaWRlIGJvaWxlcnBsYXRlCgpgb2FwaS1jb2RlZ2VuYCBzaGluZXMgYnkgbWFraW5nIGl0IGZhaXJseSBzdHJhaWdodGZvcndhcmQgKG5vdGUgdGhhdCB0aGlzIGlzIGEgcHVycG9zZWZ1bCBjaG9pY2Ugb2Ygd29yZGluZyBoZXJlIC0gd2Ugd2FudCB0byBhdm9pZCB3b3JkcyBsaWtlICJlYXN5IikgdG8gZ2VuZXJhdGUgdGhlIHNlcnZlci1zaWRlIGJvaWxlcnBsYXRlIGZvciBhIGJhY2tlbmQgQVBJLgoKQmVsb3cgeW91IGNhbiBmaW5kIHRoZSBzdXBwb3J0ZWQgc2VydmVycywgYW5kIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIGltcGxlbWVudCBhIHNlcnZlciB1c2luZyB0aGVtLgoKVG8gcHJvdmlkZSB5b3UgYSBmdWxseSBUZXN0IERyaXZlbiBEZXZlbG9wbWVudCBzdHlsZSB0ZXN0IGhhcm5lc3MgdG8gY29uZmlybSB5b3UgYXJlIGZvbGxvd2luZyB0aGUgc3BlY2lmaWNhdGlvbiwgeW91IGNvdWxkIHVzZSBhIHRvb2wgc3VjaCBhcyBbb3BlbmFwaS50YW5uYS5kZXYvZ28vdmFsaWRhdG9yXShodHRwczovL29wZW5hcGkudGFubmEuZGV2L2dvL3ZhbGlkYXRvci8pLCBvciBjcmFmdCB5b3VyIG93bi4KCiMjIyBTdXBwb3J0ZWQgU2VydmVycwoKUmlnaHQgbm93LCB3ZSBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgc2VydmVycywgYW5kIGFyZSBzdXBwb3J0aXZlIG9mIGFkZGluZyBuZXcgc2VydmVycywgdG9vIQoKPHRhYmxlPgoKPHRyPgo8dGg+ClNlcnZlcgo8L3RoPgo8dGg+Cjxjb2RlPmdlbmVyYXRlPC9jb2RlPiBmbGFnIHRvIGVuYWJsZSBjb2RlIGdlbmVyYXRpb24KPC90aD4KPHRoPgpFeGFtcGxlIHVzYWdlCjwvdGg+CjwvdHI+Cgo8dHI+Cjx0ZD4KCltDaGldKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1jaGkvY2hpKQoKPC90ZD4KPHRkPgo8Y29kZT5jaGktc2VydmVyPC9jb2RlPgo8L3RkPgo8dGQ+CgoKRm9yIGEgQ2hpIHNlcnZlciwgeW91IHdpbGwgd2FudCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzdWNoIGFzOgoKYGBgeWFtbAojIHlhbWwtbGFuZ3VhZ2Utc2VydmVyOiAuLi4KcGFja2FnZTogYXBpCmdlbmVyYXRlOgogIGNoaS1zZXJ2ZXI6IHRydWUKICBtb2RlbHM6IHRydWUKb3V0cHV0OiBnZW4uZ28KYGBgCgpUbyBpbXBsZW1lbnQgdGhpcywgY2hlY2sgb3V0IFt0aGUgQ2hpIGRvY3NdKCNpbXBsLWNoaSkuCgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpbRWNob10oaHR0cHM6Ly9naXRodWIuY29tL2xhYnN0YWNrL2VjaG8pCgo8L3RkPgo8dGQ+Cjxjb2RlPmVjaG8tc2VydmVyPC9jb2RlPgo8L3RkPgo8dGQ+CgpGb3IgYW4gRWNobyBzZXJ2ZXIsIHlvdSB3aWxsIHdhbnQgYSBjb25maWd1cmF0aW9uIGZpbGUgc3VjaCBhczoKCmBgYHlhbWwKIyB5YW1sLWxhbmd1YWdlLXNlcnZlcjogLi4uCnBhY2thZ2U6IGFwaQpnZW5lcmF0ZToKICBlY2hvLXNlcnZlcjogdHJ1ZQogIG1vZGVsczogdHJ1ZQpvdXRwdXQ6IGdlbi5nbwpgYGAKClRvIGltcGxlbWVudCB0aGlzLCBjaGVjayBvdXQgW3RoZSBFY2hvIGRvY3NdKCNpbXBsLWVjaG8pLgoKPC90ZD4KPC90cj4KCjx0cj4KPHRkPgoKW0ZpYmVyXShodHRwczovL2dpdGh1Yi5jb20vZ29maWJlci9maWJlcikKCjwvdGQ+Cjx0ZD4KPGNvZGU+ZmliZXItc2VydmVyPC9jb2RlPgo8L3RkPgoKPHRkPgoKRm9yIGEgRmliZXIgc2VydmVyLCB5b3Ugd2lsbCB3YW50IGEgY29uZmlndXJhdGlvbiBmaWxlIHN1Y2ggYXM6CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6IC4uLgpwYWNrYWdlOiBhcGkKZ2VuZXJhdGU6CiAgZmliZXItc2VydmVyOiB0cnVlCiAgbW9kZWxzOiB0cnVlCm91dHB1dDogZ2VuLmdvCmBgYAoKVG8gaW1wbGVtZW50IHRoaXMsIGNoZWNrIG91dCBbdGhlIEZpYmVyIGRvY3NdKCNpbXBsLWZpYmVyKS4KCjwvdGQ+CjwvdHI+CgoKPHRyPgo8dGQ+CgpbR2luXShodHRwczovL2dpdGh1Yi5jb20vZ2luLWdvbmljL2dpbikKCjwvdGQ+Cjx0ZD4KPGNvZGU+Z2luLXNlcnZlcjwvY29kZT4KPC90ZD4KPHRkPgoKRm9yIGEgR2luIHNlcnZlciwgeW91IHdpbGwgd2FudCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzdWNoIGFzOgoKYGBgeWFtbAojIHlhbWwtbGFuZ3VhZ2Utc2VydmVyOiAuLi4KcGFja2FnZTogYXBpCmdlbmVyYXRlOgogIGdpbi1zZXJ2ZXI6IHRydWUKICBtb2RlbHM6IHRydWUKb3V0cHV0OiBnZW4uZ28KYGBgCgpUbyBpbXBsZW1lbnQgdGhpcywgY2hlY2sgb3V0IFt0aGUgR2luIGRvY3NdKCNpbXBsLWdpbikuCgo8L3RkPgoKPC90cj4KCjx0cj4KPHRkPgoKW2dvcmlsbGEvbXV4XShodHRwczovL2dpdGh1Yi5jb20vZ29yaWxsYS9tdXgpCgo8L3RkPgo8dGQ+Cjxjb2RlPmdvcmlsbGEtc2VydmVyPC9jb2RlPgo8L3RkPgoKPHRkPgoKRm9yIGEgZ29yaWxsYS9tdXggc2VydmVyLCB5b3Ugd2lsbCB3YW50IGEgY29uZmlndXJhdGlvbiBmaWxlIHN1Y2ggYXM6CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6IC4uLgpwYWNrYWdlOiBhcGkKZ2VuZXJhdGU6CiAgZ29yaWxsYS1zZXJ2ZXI6IHRydWUKICBtb2RlbHM6IHRydWUKb3V0cHV0OiBnZW4uZ28KYGBgCgpUbyBpbXBsZW1lbnQgdGhpcywgY2hlY2sgb3V0IFt0aGUgZ29yaWxsYS9tdXggZG9jc10oI2ltcGwtZ29yaWxsYW11eCkuCgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpbSXJpc10oaHR0cHM6Ly9naXRodWIuY29tL2thdGFyYXMvaXJpcykKCjwvdGQ+Cjx0ZD4KPGNvZGU+aXJpcy1zZXJ2ZXI8L2NvZGU+CjwvdGQ+Cgo8dGQ+CgpGb3IgYSBJcmlzIHNlcnZlciwgeW91IHdpbGwgd2FudCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzdWNoIGFzOgoKYGBgeWFtbAojIHlhbWwtbGFuZ3VhZ2Utc2VydmVyOiAuLi4KcGFja2FnZTogYXBpCmdlbmVyYXRlOgogIGlyaXMtc2VydmVyOiB0cnVlCiAgbW9kZWxzOiB0cnVlCm91dHB1dDogZ2VuLmdvCmBgYAoKVG8gaW1wbGVtZW50IHRoaXMsIGNoZWNrIG91dCBbdGhlIElyaXMgZG9jc10oI2ltcGwtaXJpcykuCgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpbMS4yMisgYG5ldC9odHRwYF0oaHR0cHM6Ly9wa2cuZ28uZGV2L25ldC9odHRwKQoKPC90ZD4KPHRkPgo8Y29kZT5zdGQtaHR0cC1zZXJ2ZXI8L2NvZGU+CjwvdGQ+Cgo8dGQ+CgpUbyB1c2UgcHVyZWx5IGBuZXQvaHR0cGAgKGZvciBHbyAxLjIyKyksIHlvdSB3aWxsIHdhbnQgYSBjb25maWd1cmF0aW9uIGZpbGUgc3VjaCBhczoKCmBgYHlhbWwKIyB5YW1sLWxhbmd1YWdlLXNlcnZlcjogLi4uCnBhY2thZ2U6IGFwaQpnZW5lcmF0ZToKICBzdGQtaHR0cC1zZXJ2ZXI6IHRydWUKICBtb2RlbHM6IHRydWUKb3V0cHV0OiBnZW4uZ28KYGBgCgpUbyBpbXBsZW1lbnQgdGhpcywgY2hlY2sgb3V0IFt0aGUgR28gMS4yMisgYG5ldC9odHRwYCBkb2NzXSgjaW1wbC1zdGRodHRwKS4KCjwvdGQ+CjwvdHI+Cgo8L3RhYmxlPgoKIyMjIEdvIDEuMjIrIGBuZXQvaHR0cGAKPGEgbmFtZT0iaW1wbC1zdGRodHRwIj48L2E+CgpBcyBvZiBHbyAxLjIyLCBlbmhhbmNlbWVudHMgaGF2ZSBiZWVuIG1hZGUgdG8gdGhlIHJvdXRpbmcgb2YgdGhlIGBuZXQvaHR0cGAgcGFja2FnZSBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSwgd2hpY2ggbWFrZXMgaXQgYSBncmVhdCBzdGFydGluZyBwb2ludCBmb3IgaW1wbGVtZW50aW5nIGEgc2VydmVyIHdpdGgsIGJlZm9yZSBuZWVkaW5nIHRvIHJlYWNoIGZvciBhbm90aGVyIHJvdXRlciBvciBhIGZ1bGwgZnJhbWV3b3JrLgoKRm9yIGluc3RhbmNlLCBsZXQncyB0YWtlIHRoaXMgc3RyYWlnaHRmb3J3YXJkIHNwZWNpZmljYXRpb246CgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMCIKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiBNaW5pbWFsIHBpbmcgQVBJIHNlcnZlcgpwYXRoczoKICAvcGluZzoKICAgIGdldDoKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IHBldCByZXNwb25zZQogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUG9uZycKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgIyBiYXNlIHR5cGVzCiAgICBQb25nOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBwaW5nCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgcGluZzoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogcG9uZwpgYGAKClRoaXMgdGhlbiBnZW5lcmF0ZXMgY29kZSBzdWNoIGFzOgoKYGBgZ28KLy8gUG9uZyBkZWZpbmVzIG1vZGVsIGZvciBQb25nLgp0eXBlIFBvbmcgc3RydWN0IHsKCVBpbmcgc3RyaW5nIGBqc29uOiJwaW5nImAKfQoKLy8gU2VydmVySW50ZXJmYWNlIHJlcHJlc2VudHMgYWxsIHNlcnZlciBoYW5kbGVycy4KdHlwZSBTZXJ2ZXJJbnRlcmZhY2UgaW50ZXJmYWNlIHsKCgkvLyAoR0VUIC9waW5nKQoJR2V0UGluZyh3IGh0dHAuUmVzcG9uc2VXcml0ZXIsIHIgKmh0dHAuUmVxdWVzdCkKfQoKZnVuYyBIYW5kbGVyRnJvbU11eChzaSBTZXJ2ZXJJbnRlcmZhY2UsIG0gKmh0dHAuU2VydmVNdXgpIGh0dHAuSGFuZGxlciB7CglyZXR1cm4gSGFuZGxlcldpdGhPcHRpb25zKHNpLCBTdGRIVFRQU2VydmVyT3B0aW9uc3sKCQlCYXNlUm91dGVyOiBtLAoJfSkKfQoKLy8gSGFuZGxlcldpdGhPcHRpb25zIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggYWRkaXRpb25hbCBvcHRpb25zCmZ1bmMgSGFuZGxlcldpdGhPcHRpb25zKHNpIFNlcnZlckludGVyZmFjZSwgb3B0aW9ucyBTdGRIVFRQU2VydmVyT3B0aW9ucykgaHR0cC5IYW5kbGVyIHsKCW0gOj0gb3B0aW9ucy5CYXNlUm91dGVyCgoJLy8gLi4uIG9taXR0ZWQgZm9yIGJyZXZpdHkKCgltLkhhbmRsZUZ1bmMoIkdFVCAiK29wdGlvbnMuQmFzZVVSTCsiL3BpbmciLCB3cmFwcGVyLkdldFBpbmcpCgoJcmV0dXJuIG0KfQpgYGAKClRvIGltcGxlbWVudCB0aGlzIEhUVFAgc2VydmVyLCB3ZSBuZWVkIHRvIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSBpbiBvdXIgW2BhcGkvaW1wbC5nb2BdKGV4YW1wbGVzL21pbmltYWwtc2VydmVyL3N0ZGh0dHAvYXBpL2ltcGwuZ28pOgoKYGBgZ28KaW1wb3J0ICgKCSJlbmNvZGluZy9qc29uIgoJIm5ldC9odHRwIgopCgovLyBvcHRpb25hbCBjb2RlIG9taXR0ZWQKCnR5cGUgU2VydmVyIHN0cnVjdHt9CgpmdW5jIE5ld1NlcnZlcigpIFNlcnZlciB7CglyZXR1cm4gU2VydmVye30KfQoKLy8gKEdFVCAvcGluZykKZnVuYyAoU2VydmVyKSBHZXRQaW5nKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7CglyZXNwIDo9IFBvbmd7CgkJUGluZzogInBvbmciLAoJfQoKCXcuV3JpdGVIZWFkZXIoaHR0cC5TdGF0dXNPSykKCV8gPSBqc29uLk5ld0VuY29kZXIodykuRW5jb2RlKHJlc3ApCn0KYGBgCgpOb3cgd2UndmUgZ290IG91ciBpbXBsZW1lbnRhdGlvbiwgd2UgY2FuIHRoZW4gd3JpdGUgdGhlIGZvbGxvd2luZyBjb2RlIHRvIHdpcmUgaXQgdXAgYW5kIGdldCBhIHJ1bm5pbmcgc2VydmVyOgoKYGBgZ28KaW1wb3J0ICgKCSJsb2ciCgkibmV0L2h0dHAiCgoJImdpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL29hcGktY29kZWdlbi92Mi9leGFtcGxlcy9taW5pbWFsLXNlcnZlci9zdGRodHRwL2FwaSIKKQoKZnVuYyBtYWluKCkgewoJLy8gY3JlYXRlIGEgdHlwZSB0aGF0IHNhdGlzZmllcyB0aGUgYGFwaS5TZXJ2ZXJJbnRlcmZhY2VgLCB3aGljaCBjb250YWlucyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBldmVyeSBvcGVyYXRpb24gZnJvbSB0aGUgZ2VuZXJhdGVkIGNvZGUKCXNlcnZlciA6PSBhcGkuTmV3U2VydmVyKCkKCglyIDo9IGh0dHAuTmV3U2VydmVNdXgoKQoKCS8vIGdldCBhbiBgaHR0cC5IYW5kbGVyYCB0aGF0IHdlIGNhbiB1c2UKCWggOj0gYXBpLkhhbmRsZXJGcm9tTXV4KHNlcnZlciwgcikKCglzIDo9ICZodHRwLlNlcnZlcnsKCQlIYW5kbGVyOiBoLAoJCUFkZHI6ICAgICIwLjAuMC4wOjgwODAiLAoJfQoKCS8vIEFuZCB3ZSBzZXJ2ZSBIVFRQIHVudGlsIHRoZSB3b3JsZCBlbmRzLgoJbG9nLkZhdGFsKHMuTGlzdGVuQW5kU2VydmUoKSkKfQpgYGAKCj4gWyFOT1RFXQo+IFRoaXMgZG9lc24ndCBpbmNsdWRlIFt2YWxpZGF0aW9uIG9mIGluY29taW5nIHJlcXVlc3RzXSgjcmVxdWVzdHJlc3BvbnNlLXZhbGlkYXRpb24tbWlkZGxld2FyZSkuCgo+IFshTk9URV0KPiBJZiB5b3UgZmVlbCBsaWtlIHlvdSd2ZSBkb25lIGV2ZXJ5dGhpbmcgcmlnaHQsIGJ1dCBhcmUgc3RpbGwgcmVjZWl2aW5nIGA0MDQgcGFnZSBub3QgZm91bmRgIGVycm9ycywgbWFrZSBzdXJlIHRoYXQgeW91J3ZlIGdvdCB0aGUgYGdvYCBkaXJlY3RpdmUgaW4geW91ciBgZ28ubW9kYCB1cGRhdGVkIHRvOgoKYGBgZ28ubW9kCmdvIDEuMjIKYGBgCgo8L2RldGFpbHM+CgojIyMgQ2hpCjxhIG5hbWU9ImltcGwtY2hpIj48L2E+CgpGb3IgaW5zdGFuY2UsIGxldCdzIHRha2UgdGhpcyBzdHJhaWdodGZvcndhcmQgc3BlY2lmaWNhdGlvbjoKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IE1pbmltYWwgcGluZyBBUEkgc2VydmVyCnBhdGhzOgogIC9waW5nOgogICAgZ2V0OgogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogcGV0IHJlc3BvbnNlCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Qb25nJwpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICAjIGJhc2UgdHlwZXMKICAgIFBvbmc6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIHBpbmcKICAgICAgcHJvcGVydGllczoKICAgICAgICBwaW5nOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBwb25nCmBgYAoKVGhpcyB0aGVuIGdlbmVyYXRlcyBjb2RlIHN1Y2ggYXM6CgpgYGBnbwovLyBQb25nIGRlZmluZXMgbW9kZWwgZm9yIFBvbmcuCnR5cGUgUG9uZyBzdHJ1Y3QgewoJUGluZyBzdHJpbmcgYGpzb246InBpbmciYAp9CgovLyBTZXJ2ZXJJbnRlcmZhY2UgcmVwcmVzZW50cyBhbGwgc2VydmVyIGhhbmRsZXJzLgp0eXBlIFNlcnZlckludGVyZmFjZSBpbnRlcmZhY2UgewoKCS8vIChHRVQgL3BpbmcpCglHZXRQaW5nKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KQp9CgovLyBIYW5kbGVyRnJvbU11eCBjcmVhdGVzIGh0dHAuSGFuZGxlciB3aXRoIHJvdXRpbmcgbWF0Y2hpbmcgT3BlbkFQSSBzcGVjIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBtdXguCmZ1bmMgSGFuZGxlckZyb21NdXgoc2kgU2VydmVySW50ZXJmYWNlLCByICptdXguUm91dGVyKSBodHRwLkhhbmRsZXIgewoJcmV0dXJuIEhhbmRsZXJXaXRoT3B0aW9ucyhzaSwgQ2hpU2VydmVyT3B0aW9uc3sKCQlCYXNlUm91dGVyOiByLAoJfSkKfQoKLy8gSGFuZGxlcldpdGhPcHRpb25zIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggYWRkaXRpb25hbCBvcHRpb25zCmZ1bmMgSGFuZGxlcldpdGhPcHRpb25zKHNpIFNlcnZlckludGVyZmFjZSwgb3B0aW9ucyBDaGlTZXJ2ZXJPcHRpb25zKSBodHRwLkhhbmRsZXIgewoJciA6PSBvcHRpb25zLkJhc2VSb3V0ZXIKCgkvLyAuLi4KCglyLkdyb3VwKGZ1bmMociBjaGkuUm91dGVyKSB7CgkJci5HZXQob3B0aW9ucy5CYXNlVVJMKyIvcGluZyIsIHdyYXBwZXIuR2V0UGluZykKCX0pCgoJcmV0dXJuIHIKfQpgYGAKClRvIGltcGxlbWVudCB0aGlzIEhUVFAgc2VydmVyLCB3ZSBuZWVkIHRvIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSBpbiBvdXIgW2BhcGkvaW1wbC5nb2BdKGV4YW1wbGVzL21pbmltYWwtc2VydmVyL2NoaS9hcGkvaW1wbC5nbyk6CgpgYGBnbwppbXBvcnQgKAoJImVuY29kaW5nL2pzb24iCgkibmV0L2h0dHAiCikKCi8vIG9wdGlvbmFsIGNvZGUgb21pdHRlZAoKdHlwZSBTZXJ2ZXIgc3RydWN0e30KCmZ1bmMgTmV3U2VydmVyKCkgU2VydmVyIHsKCXJldHVybiBTZXJ2ZXJ7fQp9CgovLyAoR0VUIC9waW5nKQpmdW5jIChTZXJ2ZXIpIEdldFBpbmcodyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHsKCXJlc3AgOj0gUG9uZ3sKCQlQaW5nOiAicG9uZyIsCgl9CgoJdy5Xcml0ZUhlYWRlcihodHRwLlN0YXR1c09LKQoJXyA9IGpzb24uTmV3RW5jb2Rlcih3KS5FbmNvZGUocmVzcCkKfQpgYGAKCk5vdyB3ZSd2ZSBnb3Qgb3VyIGltcGxlbWVudGF0aW9uLCB3ZSBjYW4gdGhlbiB3cml0ZSB0aGUgZm9sbG93aW5nIGNvZGUgdG8gd2lyZSBpdCB1cCBhbmQgZ2V0IGEgcnVubmluZyBzZXJ2ZXI6CgpgYGBnbwppbXBvcnQgKAoJImxvZyIKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyL2V4YW1wbGVzL21pbmltYWwtc2VydmVyL2NoaS9hcGkiCgkiZ2l0aHViLmNvbS9nby1jaGkvY2hpL3Y1IgopCgpmdW5jIG1haW4oKSB7CgkvLyBjcmVhdGUgYSB0eXBlIHRoYXQgc2F0aXNmaWVzIHRoZSBgYXBpLlNlcnZlckludGVyZmFjZWAsIHdoaWNoIGNvbnRhaW5zIGFuIGltcGxlbWVudGF0aW9uIG9mIGV2ZXJ5IG9wZXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZQoJc2VydmVyIDo9IGFwaS5OZXdTZXJ2ZXIoKQoKCXIgOj0gY2hpLk5ld011eCgpCgoJLy8gZ2V0IGFuIGBodHRwLkhhbmRsZXJgIHRoYXQgd2UgY2FuIHVzZQoJaCA6PSBhcGkuSGFuZGxlckZyb21NdXgoc2VydmVyLCByKQoKCXMgOj0gJmh0dHAuU2VydmVyewoJCUhhbmRsZXI6IGgsCgkJQWRkcjogICAgIjAuMC4wLjA6ODA4MCIsCgl9CgoJLy8gQW5kIHdlIHNlcnZlIEhUVFAgdW50aWwgdGhlIHdvcmxkIGVuZHMuCglsb2cuRmF0YWwocy5MaXN0ZW5BbmRTZXJ2ZSgpKQp9CmBgYAoKPiBbIU5PVEVdCj4gVGhpcyBkb2Vzbid0IGluY2x1ZGUgW3ZhbGlkYXRpb24gb2YgaW5jb21pbmcgcmVxdWVzdHNdKCNyZXF1ZXN0cmVzcG9uc2UtdmFsaWRhdGlvbi1taWRkbGV3YXJlKS4KCiMjIyBnb3JpbGxhL211eAo8YSBuYW1lPSJpbXBsLWdvcmlsbGFtdXgiPjwvYT4KCkZvciBpbnN0YW5jZSwgbGV0J3MgdGFrZSB0aGlzIHN0cmFpZ2h0Zm9yd2FyZCBzcGVjaWZpY2F0aW9uOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogTWluaW1hbCBwaW5nIEFQSSBzZXJ2ZXIKcGF0aHM6CiAgL3Bpbmc6CiAgICBnZXQ6CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBwZXQgcmVzcG9uc2UKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BvbmcnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgICMgYmFzZSB0eXBlcwogICAgUG9uZzoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gcGluZwogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHBpbmc6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IHBvbmcKYGBgCgpUaGlzIHRoZW4gZ2VuZXJhdGVzIGNvZGUgc3VjaCBhczoKCmBgYGdvCi8vIFBvbmcgZGVmaW5lcyBtb2RlbCBmb3IgUG9uZy4KdHlwZSBQb25nIHN0cnVjdCB7CglQaW5nIHN0cmluZyBganNvbjoicGluZyJgCn0KCi8vIFNlcnZlckludGVyZmFjZSByZXByZXNlbnRzIGFsbCBzZXJ2ZXIgaGFuZGxlcnMuCnR5cGUgU2VydmVySW50ZXJmYWNlIGludGVyZmFjZSB7CgoJLy8gKEdFVCAvcGluZykKCUdldFBpbmcodyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpCn0KCi8vIEhhbmRsZXJGcm9tTXV4IGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggcm91dGluZyBtYXRjaGluZyBPcGVuQVBJIHNwZWMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG11eC4KZnVuYyBIYW5kbGVyRnJvbU11eChzaSBTZXJ2ZXJJbnRlcmZhY2UsIHIgKm11eC5Sb3V0ZXIpIGh0dHAuSGFuZGxlciB7CglyZXR1cm4gSGFuZGxlcldpdGhPcHRpb25zKHNpLCBHb3JpbGxhU2VydmVyT3B0aW9uc3sKCQlCYXNlUm91dGVyOiByLAoJfSkKfQoKLy8gSGFuZGxlcldpdGhPcHRpb25zIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggYWRkaXRpb25hbCBvcHRpb25zCmZ1bmMgSGFuZGxlcldpdGhPcHRpb25zKHNpIFNlcnZlckludGVyZmFjZSwgb3B0aW9ucyBHb3JpbGxhU2VydmVyT3B0aW9ucykgaHR0cC5IYW5kbGVyIHsKCXIgOj0gb3B0aW9ucy5CYXNlUm91dGVyCgoJLy8gLi4uCgoJci5IYW5kbGVGdW5jKG9wdGlvbnMuQmFzZVVSTCsiL3BpbmciLCB3cmFwcGVyLkdldFBpbmcpLk1ldGhvZHMoIkdFVCIpCgoJcmV0dXJuIHIKfQpgYGAKClRvIGltcGxlbWVudCB0aGlzIEhUVFAgc2VydmVyLCB3ZSBuZWVkIHRvIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSBpbiBvdXIgW2BhcGkvaW1wbC5nb2BdKGV4YW1wbGVzL21pbmltYWwtc2VydmVyL2dvcmlsbGFtdXgvYXBpL2ltcGwuZ28pOgoKYGBgZ28KaW1wb3J0ICgKCSJlbmNvZGluZy9qc29uIgoJIm5ldC9odHRwIgopCgovLyBvcHRpb25hbCBjb2RlIG9taXR0ZWQKCnR5cGUgU2VydmVyIHN0cnVjdHt9CgpmdW5jIE5ld1NlcnZlcigpIFNlcnZlciB7CglyZXR1cm4gU2VydmVye30KfQoKLy8gKEdFVCAvcGluZykKZnVuYyAoU2VydmVyKSBHZXRQaW5nKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7CglyZXNwIDo9IFBvbmd7CgkJUGluZzogInBvbmciLAoJfQoKCXcuV3JpdGVIZWFkZXIoaHR0cC5TdGF0dXNPSykKCV8gPSBqc29uLk5ld0VuY29kZXIodykuRW5jb2RlKHJlc3ApCn0KYGBgCgpOb3cgd2UndmUgZ290IG91ciBpbXBsZW1lbnRhdGlvbiwgd2UgY2FuIHRoZW4gd3JpdGUgdGhlIGZvbGxvd2luZyBjb2RlIHRvIHdpcmUgaXQgdXAgYW5kIGdldCBhIHJ1bm5pbmcgc2VydmVyOgoKYGBgZ28KaW1wb3J0ICgKCSJsb2ciCgkibmV0L2h0dHAiCgoJImdpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL29hcGktY29kZWdlbi92Mi9leGFtcGxlcy9taW5pbWFsLXNlcnZlci9nb3JpbGxhbXV4L2FwaSIKCSJnaXRodWIuY29tL2dvcmlsbGEvbXV4IgopCgpmdW5jIG1haW4oKSB7CgkvLyBjcmVhdGUgYSB0eXBlIHRoYXQgc2F0aXNmaWVzIHRoZSBgYXBpLlNlcnZlckludGVyZmFjZWAsIHdoaWNoIGNvbnRhaW5zIGFuIGltcGxlbWVudGF0aW9uIG9mIGV2ZXJ5IG9wZXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZQoJc2VydmVyIDo9IGFwaS5OZXdTZXJ2ZXIoKQoKCXIgOj0gbXV4Lk5ld1JvdXRlcigpCgoJLy8gZ2V0IGFuIGBodHRwLkhhbmRsZXJgIHRoYXQgd2UgY2FuIHVzZQoJaCA6PSBhcGkuSGFuZGxlckZyb21NdXgoc2VydmVyLCByKQoKCXMgOj0gJmh0dHAuU2VydmVyewoJCUhhbmRsZXI6IGgsCgkJQWRkcjogICAgIjAuMC4wLjA6ODA4MCIsCgl9CgoJLy8gQW5kIHdlIHNlcnZlIEhUVFAgdW50aWwgdGhlIHdvcmxkIGVuZHMuCglsb2cuRmF0YWwocy5MaXN0ZW5BbmRTZXJ2ZSgpKQp9CmBgYAoKPiBbIU5PVEVdCj4gVGhpcyBkb2Vzbid0IGluY2x1ZGUgW3ZhbGlkYXRpb24gb2YgaW5jb21pbmcgcmVxdWVzdHNdKCNyZXF1ZXN0cmVzcG9uc2UtdmFsaWRhdGlvbi1taWRkbGV3YXJlKS4KCiMjIyBFY2hvIHNlcnZlcgo8YSBuYW1lPSJpbXBsLWVjaG8iPjwvYT4KCkZvciBpbnN0YW5jZSwgbGV0J3MgdGFrZSB0aGlzIHN0cmFpZ2h0Zm9yd2FyZCBzcGVjaWZpY2F0aW9uOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogTWluaW1hbCBwaW5nIEFQSSBzZXJ2ZXIKcGF0aHM6CiAgL3Bpbmc6CiAgICBnZXQ6CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBwZXQgcmVzcG9uc2UKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BvbmcnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgICMgYmFzZSB0eXBlcwogICAgUG9uZzoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gcGluZwogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHBpbmc6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IHBvbmcKYGBgCgpUaGlzIHRoZW4gZ2VuZXJhdGVzIGNvZGUgc3VjaCBhczoKCmBgYGdvCi8vIFBvbmcgZGVmaW5lcyBtb2RlbCBmb3IgUG9uZy4KdHlwZSBQb25nIHN0cnVjdCB7CglQaW5nIHN0cmluZyBganNvbjoicGluZyJgCn0KCi8vIFNlcnZlckludGVyZmFjZSByZXByZXNlbnRzIGFsbCBzZXJ2ZXIgaGFuZGxlcnMuCnR5cGUgU2VydmVySW50ZXJmYWNlIGludGVyZmFjZSB7CgoJLy8gKEdFVCAvcGluZykKCUdldFBpbmcoY3R4IGVjaG8uQ29udGV4dCkgZXJyb3IKfQoKLy8gVGhpcyBpcyBhIHNpbXBsZSBpbnRlcmZhY2Ugd2hpY2ggc3BlY2lmaWVzIGVjaG8uUm91dGUgYWRkaXRpb24gZnVuY3Rpb25zIHdoaWNoCi8vIGFyZSBwcmVzZW50IG9uIGJvdGggZWNoby5FY2hvIGFuZCBlY2hvLkdyb3VwLCBzaW5jZSB3ZSB3YW50IHRvIGFsbG93IHVzaW5nCi8vIGVpdGhlciBvZiB0aGVtIGZvciBwYXRoIHJlZ2lzdHJhdGlvbgp0eXBlIEVjaG9Sb3V0ZXIgaW50ZXJmYWNlIHsKCS8vIC4uLgoJR0VUKHBhdGggc3RyaW5nLCBoIGVjaG8uSGFuZGxlckZ1bmMsIG0gLi4uZWNoby5NaWRkbGV3YXJlRnVuYykgKmVjaG8uUm91dGUKCS8vIC4uLgp9CgovLyBSZWdpc3RlckhhbmRsZXJzIGFkZHMgZWFjaCBzZXJ2ZXIgcm91dGUgdG8gdGhlIEVjaG9Sb3V0ZXIuCmZ1bmMgUmVnaXN0ZXJIYW5kbGVycyhyb3V0ZXIgRWNob1JvdXRlciwgc2kgU2VydmVySW50ZXJmYWNlKSB7CglSZWdpc3RlckhhbmRsZXJzV2l0aEJhc2VVUkwocm91dGVyLCBzaSwgIiIpCn0KCi8vIFJlZ2lzdGVycyBoYW5kbGVycywgYW5kIHByZXBlbmRzIEJhc2VVUkwgdG8gdGhlIHBhdGhzLCBzbyB0aGF0IHRoZSBwYXRocwovLyBjYW4gYmUgc2VydmVkIHVuZGVyIGEgcHJlZml4LgpmdW5jIFJlZ2lzdGVySGFuZGxlcnNXaXRoQmFzZVVSTChyb3V0ZXIgRWNob1JvdXRlciwgc2kgU2VydmVySW50ZXJmYWNlLCBiYXNlVVJMIHN0cmluZykgewoJLy8gLi4uCgoJcm91dGVyLkdFVChiYXNlVVJMKyIvcGluZyIsIHdyYXBwZXIuR2V0UGluZykKCn0KYGBgCgpUbyBpbXBsZW1lbnQgdGhpcyBIVFRQIHNlcnZlciwgd2UgbmVlZCB0byB3cml0ZSB0aGUgZm9sbG93aW5nIGNvZGUgaW4gb3VyIFtgYXBpL2ltcGwuZ29gXShleGFtcGxlcy9taW5pbWFsLXNlcnZlci9lY2hvL2FwaS9pbXBsLmdvKToKCmBgYGdvCmltcG9ydCAoCgkibmV0L2h0dHAiCgoJImdpdGh1Yi5jb20vbGFic3RhY2svZWNoby92NCIKKQoKLy8gb3B0aW9uYWwgY29kZSBvbWl0dGVkCgp0eXBlIFNlcnZlciBzdHJ1Y3R7fQoKZnVuYyBOZXdTZXJ2ZXIoKSBTZXJ2ZXIgewoJcmV0dXJuIFNlcnZlcnt9Cn0KCi8vIChHRVQgL3BpbmcpCmZ1bmMgKFNlcnZlcikgR2V0UGluZyhjdHggZWNoby5Db250ZXh0KSBlcnJvciB7CglyZXNwIDo9IFBvbmd7CgkJUGluZzogInBvbmciLAoJfQoKCXJldHVybiBjdHguSlNPTihodHRwLlN0YXR1c09LLCByZXNwKQp9CmBgYAoKTm93IHdlJ3ZlIGdvdCBvdXIgaW1wbGVtZW50YXRpb24sIHdlIGNhbiB0aGVuIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSB0byB3aXJlIGl0IHVwIGFuZCBnZXQgYSBydW5uaW5nIHNlcnZlcjoKCmBgYGdvCmltcG9ydCAoCgkibG9nIgoKCSJnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIvZXhhbXBsZXMvbWluaW1hbC1zZXJ2ZXIvZWNoby9hcGkiCgkiZ2l0aHViLmNvbS9sYWJzdGFjay9lY2hvL3Y0IgopCgpmdW5jIG1haW4oKSB7CgkvLyBjcmVhdGUgYSB0eXBlIHRoYXQgc2F0aXNmaWVzIHRoZSBgYXBpLlNlcnZlckludGVyZmFjZWAsIHdoaWNoIGNvbnRhaW5zIGFuIGltcGxlbWVudGF0aW9uIG9mIGV2ZXJ5IG9wZXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZQoJc2VydmVyIDo9IGFwaS5OZXdTZXJ2ZXIoKQoKCWUgOj0gZWNoby5OZXcoKQoKCWFwaS5SZWdpc3RlckhhbmRsZXJzKGUsIHNlcnZlcikKCgkvLyBBbmQgd2Ugc2VydmUgSFRUUCB1bnRpbCB0aGUgd29ybGQgZW5kcy4KCWxvZy5GYXRhbChlLlN0YXJ0KCIwLjAuMC4wOjgwODAiKSkKfQpgYGAKCj4gWyFOT1RFXQo+IFRoaXMgZG9lc24ndCBpbmNsdWRlIFt2YWxpZGF0aW9uIG9mIGluY29taW5nIHJlcXVlc3RzXSgjcmVxdWVzdHJlc3BvbnNlLXZhbGlkYXRpb24tbWlkZGxld2FyZSkuCgojIyMgRmliZXIgc2VydmVyCjxhIG5hbWU9ImltcGwtZmliZXIiPjwvYT4KCkZvciBpbnN0YW5jZSwgbGV0J3MgdGFrZSB0aGlzIHN0cmFpZ2h0Zm9yd2FyZCBzcGVjaWZpY2F0aW9uOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogTWluaW1hbCBwaW5nIEFQSSBzZXJ2ZXIKcGF0aHM6CiAgL3Bpbmc6CiAgICBnZXQ6CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBwZXQgcmVzcG9uc2UKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BvbmcnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgICMgYmFzZSB0eXBlcwogICAgUG9uZzoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gcGluZwogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHBpbmc6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IHBvbmcKYGBgCgpUaGlzIHRoZW4gZ2VuZXJhdGVzIGNvZGUgc3VjaCBhczoKCmBgYGdvCi8vIFBvbmcgZGVmaW5lcyBtb2RlbCBmb3IgUG9uZy4KdHlwZSBQb25nIHN0cnVjdCB7CglQaW5nIHN0cmluZyBganNvbjoicGluZyJgCn0KCi8vIFNlcnZlckludGVyZmFjZSByZXByZXNlbnRzIGFsbCBzZXJ2ZXIgaGFuZGxlcnMuCnR5cGUgU2VydmVySW50ZXJmYWNlIGludGVyZmFjZSB7CgoJLy8gKEdFVCAvcGluZykKCUdldFBpbmcoYyAqZmliZXIuQ3R4KSBlcnJvcgp9CgovLyBSZWdpc3RlckhhbmRsZXJzIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggcm91dGluZyBtYXRjaGluZyBPcGVuQVBJIHNwZWMuCmZ1bmMgUmVnaXN0ZXJIYW5kbGVycyhyb3V0ZXIgZmliZXIuUm91dGVyLCBzaSBTZXJ2ZXJJbnRlcmZhY2UpIHsKCVJlZ2lzdGVySGFuZGxlcnNXaXRoT3B0aW9ucyhyb3V0ZXIsIHNpLCBGaWJlclNlcnZlck9wdGlvbnN7fSkKfQoKLy8gUmVnaXN0ZXJIYW5kbGVyc1dpdGhPcHRpb25zIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggYWRkaXRpb25hbCBvcHRpb25zCmZ1bmMgUmVnaXN0ZXJIYW5kbGVyc1dpdGhPcHRpb25zKHJvdXRlciBmaWJlci5Sb3V0ZXIsIHNpIFNlcnZlckludGVyZmFjZSwgb3B0aW9ucyBGaWJlclNlcnZlck9wdGlvbnMpIHsKCS8vIC4uLgoKCXJvdXRlci5HZXQob3B0aW9ucy5CYXNlVVJMKyIvcGluZyIsIHdyYXBwZXIuR2V0UGluZykKfQpgYGAKClRvIGltcGxlbWVudCB0aGlzIEhUVFAgc2VydmVyLCB3ZSBuZWVkIHRvIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSBpbiBvdXIgW2BhcGkvaW1wbC5nb2BdKGV4YW1wbGVzL21pbmltYWwtc2VydmVyL2ZpYmVyL2FwaS9pbXBsLmdvKToKCmBgYGdvCmltcG9ydCAoCgkibmV0L2h0dHAiCgoJImdpdGh1Yi5jb20vZ29maWJlci9maWJlci92MiIKKQoKLy8gZW5zdXJlIHRoYXQgd2UndmUgY29uZm9ybWVkIHRvIHRoZSBgU2VydmVySW50ZXJmYWNlYCB3aXRoIGEgY29tcGlsZS10aW1lIGNoZWNrCnZhciBfIFNlcnZlckludGVyZmFjZSA9ICgqU2VydmVyKShuaWwpCgp0eXBlIFNlcnZlciBzdHJ1Y3R7fQoKZnVuYyBOZXdTZXJ2ZXIoKSBTZXJ2ZXIgewoJcmV0dXJuIFNlcnZlcnt9Cn0KCi8vIChHRVQgL3BpbmcpCmZ1bmMgKFNlcnZlcikgR2V0UGluZyhjdHggKmZpYmVyLkN0eCkgZXJyb3IgewoJcmVzcCA6PSBQb25newoJCVBpbmc6ICJwb25nIiwKCX0KCglyZXR1cm4gY3R4LgoJCVN0YXR1cyhodHRwLlN0YXR1c09LKS4KCQlKU09OKHJlc3ApCn0KYGBgCgpOb3cgd2UndmUgZ290IG91ciBpbXBsZW1lbnRhdGlvbiwgd2UgY2FuIHRoZW4gd3JpdGUgdGhlIGZvbGxvd2luZyBjb2RlIHRvIHdpcmUgaXQgdXAgYW5kIGdldCBhIHJ1bm5pbmcgc2VydmVyOgoKYGBgZ28KaW1wb3J0ICgKCSJsb2ciCgoJImdpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL29hcGktY29kZWdlbi92Mi9leGFtcGxlcy9taW5pbWFsLXNlcnZlci9maWJlci9hcGkiCgkiZ2l0aHViLmNvbS9nb2ZpYmVyL2ZpYmVyL3YyIgopCgpmdW5jIG1haW4oKSB7CgkvLyBjcmVhdGUgYSB0eXBlIHRoYXQgc2F0aXNmaWVzIHRoZSBgYXBpLlNlcnZlckludGVyZmFjZWAsIHdoaWNoIGNvbnRhaW5zIGFuIGltcGxlbWVudGF0aW9uIG9mIGV2ZXJ5IG9wZXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZQoJc2VydmVyIDo9IGFwaS5OZXdTZXJ2ZXIoKQoKCWFwcCA6PSBmaWJlci5OZXcoKQoKCWFwaS5SZWdpc3RlckhhbmRsZXJzKGFwcCwgc2VydmVyKQoKCS8vIEFuZCB3ZSBzZXJ2ZSBIVFRQIHVudGlsIHRoZSB3b3JsZCBlbmRzLgoJbG9nLkZhdGFsKGFwcC5MaXN0ZW4oIjAuMC4wLjA6ODA4MCIpKQp9CmBgYAoKPiBbIU5PVEVdCj4gVGhpcyBkb2Vzbid0IGluY2x1ZGUgW3ZhbGlkYXRpb24gb2YgaW5jb21pbmcgcmVxdWVzdHNdKCNyZXF1ZXN0cmVzcG9uc2UtdmFsaWRhdGlvbi1taWRkbGV3YXJlKS4KCiMjIyBHaW4gc2VydmVyCjxhIG5hbWU9ImltcGwtZ2luIj48L2E+CgpGb3IgaW5zdGFuY2UsIGxldCdzIHRha2UgdGhpcyBzdHJhaWdodGZvcndhcmQgc3BlY2lmaWNhdGlvbjoKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IE1pbmltYWwgcGluZyBBUEkgc2VydmVyCnBhdGhzOgogIC9waW5nOgogICAgZ2V0OgogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogcGV0IHJlc3BvbnNlCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Qb25nJwpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICAjIGJhc2UgdHlwZXMKICAgIFBvbmc6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIHBpbmcKICAgICAgcHJvcGVydGllczoKICAgICAgICBwaW5nOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBwb25nCmBgYAoKVGhpcyB0aGVuIGdlbmVyYXRlcyBjb2RlIHN1Y2ggYXM6CgpgYGBnbwovLyBQb25nIGRlZmluZXMgbW9kZWwgZm9yIFBvbmcuCnR5cGUgUG9uZyBzdHJ1Y3QgewoJUGluZyBzdHJpbmcgYGpzb246InBpbmciYAp9CgovLyBTZXJ2ZXJJbnRlcmZhY2UgcmVwcmVzZW50cyBhbGwgc2VydmVyIGhhbmRsZXJzLgp0eXBlIFNlcnZlckludGVyZmFjZSBpbnRlcmZhY2UgewoKCS8vIChHRVQgL3BpbmcpCglHZXRQaW5nKGMgKmdpbi5Db250ZXh0KQp9CgovLyBSZWdpc3RlckhhbmRsZXJzIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggcm91dGluZyBtYXRjaGluZyBPcGVuQVBJIHNwZWMuCmZ1bmMgUmVnaXN0ZXJIYW5kbGVycyhyb3V0ZXIgZ2luLklSb3V0ZXIsIHNpIFNlcnZlckludGVyZmFjZSkgewoJUmVnaXN0ZXJIYW5kbGVyc1dpdGhPcHRpb25zKHJvdXRlciwgc2ksIEdpblNlcnZlck9wdGlvbnN7fSkKfQoKLy8gUmVnaXN0ZXJIYW5kbGVyc1dpdGhPcHRpb25zIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggYWRkaXRpb25hbCBvcHRpb25zCmZ1bmMgUmVnaXN0ZXJIYW5kbGVyc1dpdGhPcHRpb25zKHJvdXRlciBnaW4uSVJvdXRlciwgc2kgU2VydmVySW50ZXJmYWNlLCBvcHRpb25zIEdpblNlcnZlck9wdGlvbnMpIHsKCS8vIC4uLgoKCXJvdXRlci5HRVQob3B0aW9ucy5CYXNlVVJMKyIvcGluZyIsIHdyYXBwZXIuR2V0UGluZykKfQpgYGAKClRvIGltcGxlbWVudCB0aGlzIEhUVFAgc2VydmVyLCB3ZSBuZWVkIHRvIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSBpbiBvdXIgW2BhcGkvaW1wbC5nb2BdKGV4YW1wbGVzL21pbmltYWwtc2VydmVyL2dvcmlsbGFtdXgvYXBpL2ltcGwuZ28pOgoKYGBgZ28KaW1wb3J0ICgKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9naW4tZ29uaWMvZ2luIgopCgovLyBvcHRpb25hbCBjb2RlIG9taXR0ZWQKCnR5cGUgU2VydmVyIHN0cnVjdHt9CgpmdW5jIE5ld1NlcnZlcigpIFNlcnZlciB7CglyZXR1cm4gU2VydmVye30KfQoKLy8gKEdFVCAvcGluZykKZnVuYyAoU2VydmVyKSBHZXRQaW5nKGN0eCAqZ2luLkNvbnRleHQpIHsKCXJlc3AgOj0gUG9uZ3sKCQlQaW5nOiAicG9uZyIsCgl9CgoJY3R4LkpTT04oaHR0cC5TdGF0dXNPSywgcmVzcCkKfQpgYGAKCk5vdyB3ZSd2ZSBnb3Qgb3VyIGltcGxlbWVudGF0aW9uLCB3ZSBjYW4gdGhlbiB3cml0ZSB0aGUgZm9sbG93aW5nIGNvZGUgdG8gd2lyZSBpdCB1cCBhbmQgZ2V0IGEgcnVubmluZyBzZXJ2ZXI6CgpgYGBnbwppbXBvcnQgKAoJImxvZyIKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyL2V4YW1wbGVzL21pbmltYWwtc2VydmVyL2dpbi9hcGkiCgkiZ2l0aHViLmNvbS9naW4tZ29uaWMvZ2luIgopCgpmdW5jIG1haW4oKSB7CgkvLyBjcmVhdGUgYSB0eXBlIHRoYXQgc2F0aXNmaWVzIHRoZSBgYXBpLlNlcnZlckludGVyZmFjZWAsIHdoaWNoIGNvbnRhaW5zIGFuIGltcGxlbWVudGF0aW9uIG9mIGV2ZXJ5IG9wZXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZQoJc2VydmVyIDo9IGFwaS5OZXdTZXJ2ZXIoKQoKCXIgOj0gZ2luLkRlZmF1bHQoKQoKCWFwaS5SZWdpc3RlckhhbmRsZXJzKHIsIHNlcnZlcikKCgkvLyBBbmQgd2Ugc2VydmUgSFRUUCB1bnRpbCB0aGUgd29ybGQgZW5kcy4KCglzIDo9ICZodHRwLlNlcnZlcnsKCQlIYW5kbGVyOiByLAoJCUFkZHI6ICAgICIwLjAuMC4wOjgwODAiLAoJfQoKCS8vIEFuZCB3ZSBzZXJ2ZSBIVFRQIHVudGlsIHRoZSB3b3JsZCBlbmRzLgoJbG9nLkZhdGFsKHMuTGlzdGVuQW5kU2VydmUoKSkKfQpgYGAKCj4gWyFOT1RFXQo+IFRoaXMgZG9lc24ndCBpbmNsdWRlIFt2YWxpZGF0aW9uIG9mIGluY29taW5nIHJlcXVlc3RzXSgjcmVxdWVzdHJlc3BvbnNlLXZhbGlkYXRpb24tbWlkZGxld2FyZSkuCgojIyMgSXJpcyBzZXJ2ZXIKPGEgbmFtZT0iaW1wbC1pcmlzIj48L2E+CgpGb3IgaW5zdGFuY2UsIGxldCdzIHRha2UgdGhpcyBzdHJhaWdodGZvcndhcmQgc3BlY2lmaWNhdGlvbjoKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IE1pbmltYWwgcGluZyBBUEkgc2VydmVyCnBhdGhzOgogIC9waW5nOgogICAgZ2V0OgogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogcGV0IHJlc3BvbnNlCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Qb25nJwpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICAjIGJhc2UgdHlwZXMKICAgIFBvbmc6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIHBpbmcKICAgICAgcHJvcGVydGllczoKICAgICAgICBwaW5nOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBwb25nCmBgYAoKVGhpcyB0aGVuIGdlbmVyYXRlcyBjb2RlIHN1Y2ggYXM6CgpgYGBnbwovLyBQb25nIGRlZmluZXMgbW9kZWwgZm9yIFBvbmcuCnR5cGUgUG9uZyBzdHJ1Y3QgewoJUGluZyBzdHJpbmcgYGpzb246InBpbmciYAp9CgovLyBTZXJ2ZXJJbnRlcmZhY2UgcmVwcmVzZW50cyBhbGwgc2VydmVyIGhhbmRsZXJzLgp0eXBlIFNlcnZlckludGVyZmFjZSBpbnRlcmZhY2UgewoKCS8vIChHRVQgL3BpbmcpCglHZXRQaW5nKGN0eCBpcmlzLkNvbnRleHQpCn0KCi8vIFJlZ2lzdGVySGFuZGxlcnMgY3JlYXRlcyBodHRwLkhhbmRsZXIgd2l0aCByb3V0aW5nIG1hdGNoaW5nIE9wZW5BUEkgc3BlYy4KZnVuYyBSZWdpc3RlckhhbmRsZXJzKHJvdXRlciAqaXJpcy5BcHBsaWNhdGlvbiwgc2kgU2VydmVySW50ZXJmYWNlKSB7CglSZWdpc3RlckhhbmRsZXJzV2l0aE9wdGlvbnMocm91dGVyLCBzaSwgSXJpc1NlcnZlck9wdGlvbnN7fSkKfQoKLy8gUmVnaXN0ZXJIYW5kbGVyc1dpdGhPcHRpb25zIGNyZWF0ZXMgaHR0cC5IYW5kbGVyIHdpdGggYWRkaXRpb25hbCBvcHRpb25zCmZ1bmMgUmVnaXN0ZXJIYW5kbGVyc1dpdGhPcHRpb25zKHJvdXRlciAqaXJpcy5BcHBsaWNhdGlvbiwgc2kgU2VydmVySW50ZXJmYWNlLCBvcHRpb25zIElyaXNTZXJ2ZXJPcHRpb25zKSB7CgkvLyAuLi4KCglyb3V0ZXIuR2V0KG9wdGlvbnMuQmFzZVVSTCsiL3BpbmciLCB3cmFwcGVyLkdldFBpbmcpCgoJcm91dGVyLkJ1aWxkKCkKfQpgYGAKClRvIGltcGxlbWVudCB0aGlzIEhUVFAgc2VydmVyLCB3ZSBuZWVkIHRvIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSBpbiBvdXIgW2BhcGkvaW1wbC5nb2BdKGV4YW1wbGVzL21pbmltYWwtc2VydmVyL2dvcmlsbGFtdXgvYXBpL2ltcGwuZ28pOgoKYGBgZ28KaW1wb3J0ICgKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9rYXRhcmFzL2lyaXMvdjEyIgopCgovLyBvcHRpb25hbCBjb2RlIG9taXR0ZWQKCnR5cGUgU2VydmVyIHN0cnVjdHt9CgpmdW5jIE5ld1NlcnZlcigpIFNlcnZlciB7CglyZXR1cm4gU2VydmVye30KfQoKLy8gKEdFVCAvcGluZykKZnVuYyAoU2VydmVyKSBHZXRQaW5nKGN0eCBpcmlzLkNvbnRleHQpIHsKCXJlc3AgOj0gUG9uZ3sKCQlQaW5nOiAicG9uZyIsCgl9CgoJY3R4LlN0YXR1c0NvZGUoaHR0cC5TdGF0dXNPSykKCV8gPSBjdHguSlNPTihyZXNwKQp9CmBgYAoKTm93IHdlJ3ZlIGdvdCBvdXIgaW1wbGVtZW50YXRpb24sIHdlIGNhbiB0aGVuIHdyaXRlIHRoZSBmb2xsb3dpbmcgY29kZSB0byB3aXJlIGl0IHVwIGFuZCBnZXQgYSBydW5uaW5nIHNlcnZlcjoKCmBgYGdvCmltcG9ydCAoCgkibG9nIgoKCSJnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIvZXhhbXBsZXMvbWluaW1hbC1zZXJ2ZXIvaXJpcy9hcGkiCgkiZ2l0aHViLmNvbS9rYXRhcmFzL2lyaXMvdjEyIgopCgpmdW5jIG1haW4oKSB7CgkvLyBjcmVhdGUgYSB0eXBlIHRoYXQgc2F0aXNmaWVzIHRoZSBgYXBpLlNlcnZlckludGVyZmFjZWAsIHdoaWNoIGNvbnRhaW5zIGFuIGltcGxlbWVudGF0aW9uIG9mIGV2ZXJ5IG9wZXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZQoJc2VydmVyIDo9IGFwaS5OZXdTZXJ2ZXIoKQoKCWkgOj0gaXJpcy5EZWZhdWx0KCkKCglhcGkuUmVnaXN0ZXJIYW5kbGVycyhpLCBzZXJ2ZXIpCgoJLy8gQW5kIHdlIHNlcnZlIEhUVFAgdW50aWwgdGhlIHdvcmxkIGVuZHMuCglsb2cuRmF0YWwoaS5MaXN0ZW4oIjAuMC4wLjA6ODA4MCIpKQp9CmBgYAoKPiBbIU5PVEVdCj4gVGhpcyBkb2Vzbid0IGluY2x1ZGUgW3ZhbGlkYXRpb24gb2YgaW5jb21pbmcgcmVxdWVzdHNdKCNyZXF1ZXN0cmVzcG9uc2UtdmFsaWRhdGlvbi1taWRkbGV3YXJlKS4KCiMjIyBTdHJpY3Qgc2VydmVyCgpgb2FwaS1jb2RlZ2VuYCBhbHNvIHN1cHBvcnRzIGdlbmVyYXRpbmcgYSBzZXJ2ZXIgdGhhdCBpcyBtdWNoIG1vcmUgc3RyaWN0IHdpdGggdGhlIGNvbnRyYWN0IHRoYXQgdGhlIGltcGxlbWVudGVyIHJlcXVpcmVzLCBhbmQgdGFrZXMgaW5zcGlyYXRpb24gZnJvbSBzZXJ2ZXItc2lkZSBjb2RlIGdlbmVyYXRpb24gZm9yIFJQQyBzZXJ2ZXJzLgoKVGhpcyB0YWtlcyB0aGUgYm9pbGVycGxhdGUgcmVkdWN0aW9uIGZyb20gdGhlIG5vbi1zdHJpY3Qgc2VydmVycyBhbmQgYWRkcyBhZGRpdGlvbmFsIGJvaWxlcnBsYXRlIHJlZHVjdGlvbiwgYWxsb3dpbmcgeW91IHRvIG1ha2UgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIHlvdXIgZnVuY3Rpb24gc2lnbmF0dXJlczoKCmBgYGRpZmYKLUZpbmRQZXRzKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0LCBwYXJhbXMgRmluZFBldHNQYXJhbXMpCitGaW5kUGV0cyhjdHggY29udGV4dC5Db250ZXh0LCByZXF1ZXN0IEZpbmRQZXRzUmVxdWVzdE9iamVjdCkgKEZpbmRQZXRzUmVzcG9uc2VPYmplY3QsIGVycm9yKQpgYGAKClRoaXMgaXMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2Ygc3RyaWN0bmVzcyB0aGF0IGBvYXBpLWNvZGVnZW5gIHN1cHBvcnRzIHJpZ2h0IG5vdywgYW5kIGl0J3MgYSBnb29kIGlkZWEgdG8gc3RhcnQgd2l0aCB0aGlzIGlmIHlvdSB3YW50IHRoZSBtb3N0IGd1YXJkcmFpbHMgdG8gc2ltcGxpZnkgZGV2ZWxvcGluZyB5b3VyIEFQSXMuCgpUaGUgc3RyaWN0IHNlcnZlciBoYXMgc3VwcG9ydCBmb3I6CgotIG11bHRpcGxlIHJlcXVlc3QvcmVzcG9uc2UgbWVkaWEgdHlwZXMgYW5kIHN0YXR1cyBjb2RlcyBvbiBhIGdpdmVuIG9wZXJhdGlvbgotIGZpcnN0LWNsYXNzIHN1cHBvcnQgZm9yIGBtdWx0aXBhcnQvZm9ybS1kYXRhYCBhbmQgYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAgcmVxdWVzdHMKLSByZXR1cm5pbmcgYW4gW0hUVFAgNTAwIEludGVybmFsIFNlcnZlciBFcnJvcl0oaHR0cHM6Ly9odHRwLmNhdC81MDApLCB3aGVuIGFuIGBlcnJvcmAgaXMgcmV0dXJuZWQgZnJvbSBhIGZ1bmN0aW9uCi0gYXV0b21hZ2ljICh1biltYXJzaGFsbGluZyBvZiByZXF1ZXN0L3Jlc3BvbnNlcywgYW5kIHNldHRpbmcgYGNvbnRlbnQtdHlwZWAgYW5kIEhUVFAgc3RhdHVzIGNvZGVzIG9uIHJlc3BvbnNlcwotIGJpbmRpbmcgcmVxdWVzdCB2YWx1ZXMgdG8gYSBzdHJ1Y3QsIGEgYG11bHRpcGFydC5SZWFkZXJgIG9yIHByb3ZpZGluZyBhIGBpby5SZWFkZXJgCgpZb3UgY2FuIHNlZSBhIGxpdHRsZSBtb3JlIGRldGFpbCBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUgaW4gdGhlIFsiV2hhdCBkb2VzIGl0IGxvb2sgbGlrZSJdKCN3aGF0LWRvZXMtaXQtbG9vay1saWtlLXN0cmljdCkgc2VjdGlvbi4KCj4gWyFOT1RFXQo+IFRvIGNvbmZpZ3VyZSB0aGUgc3RyaWN0IHNlcnZlciBnZW5lcmF0aW9uLCB5b3UgbXVzdCBzcGVjaWZ5IGFub3RoZXIgc2VydmVyIHRvIGJlIGdlbmVyYXRlZC4gRm9yIGluc3RhbmNlOgoKYGBgeWFtbAojIHlhbWwtbGFuZ3VhZ2Utc2VydmVyOiAkc2NoZW1hPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9IRUFEL2NvbmZpZ3VyYXRpb24tc2NoZW1hLmpzb24KcGFja2FnZTogYXBpCmdlbmVyYXRlOgogICMgTk9URSBhbm90aGVyIHNlcnZlciBtdXN0IGJlIGFkZGVkIQogIGNoaS1zZXJ2ZXI6IHRydWUKICBzdHJpY3Qtc2VydmVyOiB0cnVlCm91dHB1dDogc2VydmVyLmdlbi5nbwpgYGAKCj4gWyFOT1RFXQo+IFRoaXMgZG9lc24ndCBpbmNsdWRlIFt2YWxpZGF0aW9uIG9mIGluY29taW5nIHJlcXVlc3RzXSgjcmVxdWVzdHJlc3BvbnNlLXZhbGlkYXRpb24tbWlkZGxld2FyZSkuCgojIyBHZW5lcmF0aW5nIEFQSSBjbGllbnRzCgpBcyB3ZWxsIGFzIGdlbmVyYXRpbmcgdGhlIHNlcnZlci1zaWRlIGJvaWxlcnBsYXRlLCBgb2FwaS1jb2RlZ2VuYCBjYW4gYWxzbyBnZW5lcmF0ZSBBUEkgY2xpZW50cy4KClRoaXMgYWltcyB0byBiZSBhbiBBUEkgY2xpZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbWV0aG9kcyBvZiB0aGUgQVBJLCBhbmQgaXMgcGVyZmVjdGx5IHN1aXRlZCBmb3IgcHJvZHVjdGlvbiB1c2FnZS4KCkhvd2V2ZXIsIGlmIHlvdSB3ZXJlIGxvb2tpbmcgZm9yIGEgc2xpZ2h0bHkgbW9yZSBTREstc3R5bGUgYXBwcm9hY2gsIG9yIGEgbWl4IG9mIGdlbmVyYXRlZCB0ZXN0cyBhbmQvb3IgZG9jdW1lbnRhdGlvbiwgdGhpcyBBUEkgY2xpZW50IG1heSBub3QgYmUgZm9yIHlvdSwgYW5kIHlvdSBtYXkgd2FudCB0byBsb29rIGF0IGFsdGVybmF0ZSB0b29saW5nLgoKRm9yIGluc3RhbmNlLCBnaXZlbiBhbiBgYXBpLnlhbWxgOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogR2VuZXJhdGUgbW9kZWxzCnBhdGhzOgogIC9jbGllbnQ6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBnZXRDbGllbnQKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL0NsaWVudFR5cGUiCiAgICBwdXQ6CiAgICAgIG9wZXJhdGlvbklkOiB1cGRhdGVDbGllbnQKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDQwMDoKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICBjb2RlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgICAgICAtIGNvZGUKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgQ2xpZW50VHlwZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICMgTk9URSB0aGF0IHRoaXMgaXMgbm90IGdlbmVyYXRlZCBieSBkZWZhdWx0IGJlY2F1c2UgaXQncyBub3QgcmVmZXJlbmNlZC4gSWYgeW91IHdhbnQgaXQsIHlvdSBuZWVkIHRvIHVzZSB0aGUgZm9sbG93aW5nIFlBTUwgY29uZmlndXJhdGlvbjoKICAgICMKICAgICMgb3V0cHV0LW9wdGlvbnM6CiAgICAjICAgc2tpcC1wcnVuZTogdHJ1ZQogICAgVW5yZWZlcmVuY2VkOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBpZAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgpgYGAKCkFuZCBhIGBjZmcueWFtbGA6CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6ICRzY2hlbWE9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL0hFQUQvY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbgpwYWNrYWdlOiBjbGllbnQKb3V0cHV0OiBjbGllbnQuZ2VuLmdvCmdlbmVyYXRlOgogIG1vZGVsczogdHJ1ZQogIGNsaWVudDogdHJ1ZQpgYGAKCkFuZCBhIGBnZW5lcmF0ZS5nb2A6CgpgYGBnbwpwYWNrYWdlIGNsaWVudAoKLy9nbzpnZW5lcmF0ZSBnbyBydW4gZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyL2NtZC9vYXBpLWNvZGVnZW4gLWNvbmZpZyBjZmcueWFtbCBhcGkueWFtbApgYGAKClRoaXMgd291bGQgdGhlbiBnZW5lcmF0ZToKCmBgYGdvCnBhY2thZ2UgY2xpZW50CgovLyAuLi4KCi8vIENsaWVudFR5cGUgZGVmaW5lcyBtb2RlbCBmb3IgQ2xpZW50VHlwZS4KdHlwZSBDbGllbnRUeXBlIHN0cnVjdCB7CglOYW1lIHN0cmluZyBganNvbjoibmFtZSJgCn0KCi8vIC4uLgoKLy8gQ2xpZW50IHdoaWNoIGNvbmZvcm1zIHRvIHRoZSBPcGVuQVBJMyBzcGVjaWZpY2F0aW9uIGZvciB0aGlzIHNlcnZpY2UuCnR5cGUgQ2xpZW50IHN0cnVjdCB7CgkvLyBUaGUgZW5kcG9pbnQgb2YgdGhlIHNlcnZlciBjb25mb3JtaW5nIHRvIHRoaXMgaW50ZXJmYWNlLCB3aXRoIHNjaGVtZSwKCS8vIGh0dHBzOi8vYXBpLmRlZXBtYXAuY29tIGZvciBleGFtcGxlLiBUaGlzIGNhbiBjb250YWluIGEgcGF0aCByZWxhdGl2ZQoJLy8gdG8gdGhlIHNlcnZlciwgc3VjaCBhcyBodHRwczovL2FwaS5kZWVwbWFwLmNvbS9kZXYtdGVzdCwgYW5kIGFsbCB0aGUKCS8vIHBhdGhzIGluIHRoZSBzd2FnZ2VyIHNwZWMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgc2VydmVyLgoJU2VydmVyIHN0cmluZwoKCS8vIERvZXIgZm9yIHBlcmZvcm1pbmcgcmVxdWVzdHMsIHR5cGljYWxseSBhICpodHRwLkNsaWVudCB3aXRoIGFueQoJLy8gY3VzdG9taXplZCBzZXR0aW5ncywgc3VjaCBhcyBjZXJ0aWZpY2F0ZSBjaGFpbnMuCglDbGllbnQgSHR0cFJlcXVlc3REb2VyCgoJLy8gQSBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgbW9kaWZ5aW5nIHJlcXVlc3RzIHdoaWNoIGFyZSBnZW5lcmF0ZWQgYmVmb3JlIHNlbmRpbmcgb3ZlcgoJLy8gdGhlIG5ldHdvcmsuCglSZXF1ZXN0RWRpdG9ycyBbXVJlcXVlc3RFZGl0b3JGbgp9CgovLyAuLi4KCi8vIFRoZSBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGNsaWVudCBhYm92ZS4KdHlwZSBDbGllbnRJbnRlcmZhY2UgaW50ZXJmYWNlIHsKCS8vIEdldENsaWVudCByZXF1ZXN0CglHZXRDbGllbnQoY3R4IGNvbnRleHQuQ29udGV4dCwgcmVxRWRpdG9ycyAuLi5SZXF1ZXN0RWRpdG9yRm4pICgqaHR0cC5SZXNwb25zZSwgZXJyb3IpCgoJLy8gVXBkYXRlQ2xpZW50IHJlcXVlc3QKCVVwZGF0ZUNsaWVudChjdHggY29udGV4dC5Db250ZXh0LCByZXFFZGl0b3JzIC4uLlJlcXVlc3RFZGl0b3JGbikgKCpodHRwLlJlc3BvbnNlLCBlcnJvcikKfQoKLy8gLi4uCgovLyBDbGllbnRXaXRoUmVzcG9uc2VzSW50ZXJmYWNlIGlzIHRoZSBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGNsaWVudCB3aXRoIHJlc3BvbnNlcyBhYm92ZS4KdHlwZSBDbGllbnRXaXRoUmVzcG9uc2VzSW50ZXJmYWNlIGludGVyZmFjZSB7CgkvLyBHZXRDbGllbnRXaXRoUmVzcG9uc2UgcmVxdWVzdAoJR2V0Q2xpZW50V2l0aFJlc3BvbnNlKGN0eCBjb250ZXh0LkNvbnRleHQsIHJlcUVkaXRvcnMgLi4uUmVxdWVzdEVkaXRvckZuKSAoKkdldENsaWVudFJlc3BvbnNlLCBlcnJvcikKCgkvLyBVcGRhdGVDbGllbnRXaXRoUmVzcG9uc2UgcmVxdWVzdAoJVXBkYXRlQ2xpZW50V2l0aFJlc3BvbnNlKGN0eCBjb250ZXh0LkNvbnRleHQsIHJlcUVkaXRvcnMgLi4uUmVxdWVzdEVkaXRvckZuKSAoKlVwZGF0ZUNsaWVudFJlc3BvbnNlLCBlcnJvcikKfQoKdHlwZSBHZXRDbGllbnRSZXNwb25zZSBzdHJ1Y3QgewoJQm9keSAgICAgICAgIFtdYnl0ZQoJSFRUUFJlc3BvbnNlICpodHRwLlJlc3BvbnNlCglKU09OMjAwICAgICAgKkNsaWVudFR5cGUKfQoKLy8gLi4uCmBgYAoKV2l0aCB0aGlzIGdlbmVyYXRlZCBjbGllbnQsIGl0IGlzIHRoZW4gcG9zc2libGUgdG8gY29uc3RydWN0IGFuZCB1dGlsaXNlIHRoZSBjbGllbnQsIGZvciBpbnN0YW5jZToKCmBgYGdvCnBhY2thZ2UgY2xpZW50X3Rlc3QKCmltcG9ydCAoCgkiY29udGV4dCIKCSJmbXQiCgkibG9nIgoJIm5ldC9odHRwIgoKCSJnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIvZXhhbXBsZXMvY2xpZW50IgopCgpmdW5jIFRlc3RDbGllbnRfY2FuQ2FsbCgpIHsKCS8vIGN1c3RvbSBIVFRQIGNsaWVudAoJaGMgOj0gaHR0cC5DbGllbnR7fQoKCS8vIHdpdGggYSByYXcgaHR0cC5SZXNwb25zZQoJewoJCWMsIGVyciA6PSBjbGllbnQuTmV3Q2xpZW50KCJodHRwOi8vbG9jYWxob3N0OjEyMzQiLCBjbGllbnQuV2l0aEhUVFBDbGllbnQoJmhjKSkKCQlpZiBlcnIgIT0gbmlsIHsKCQkJbG9nLkZhdGFsKGVycikKCQl9CgoJCXJlc3AsIGVyciA6PSBjLkdldENsaWVudChjb250ZXh0LlRPRE8oKSkKCQlpZiBlcnIgIT0gbmlsIHsKCQkJbG9nLkZhdGFsKGVycikKCQl9CgkJaWYgcmVzcC5TdGF0dXNDb2RlICE9IGh0dHAuU3RhdHVzT0sgewoJCQlsb2cuRmF0YWxmKCJFeHBlY3RlZCBIVFRQIDIwMCBidXQgcmVjZWl2ZWQgJWQiLCByZXNwLlN0YXR1c0NvZGUpCgkJfQoJfQoKCS8vIG9yIHRvIGdldCBhIHN0cnVjdCB3aXRoIHRoZSBwYXJzZWQgcmVzcG9uc2UgYm9keQoJewoJCWMsIGVyciA6PSBjbGllbnQuTmV3Q2xpZW50V2l0aFJlc3BvbnNlcygiaHR0cDovL2xvY2FsaG9zdDoxMjM0IiwgY2xpZW50LldpdGhIVFRQQ2xpZW50KCZoYykpCgkJaWYgZXJyICE9IG5pbCB7CgkJCWxvZy5GYXRhbChlcnIpCgkJfQoKCQlyZXNwLCBlcnIgOj0gYy5HZXRDbGllbnRXaXRoUmVzcG9uc2UoY29udGV4dC5UT0RPKCkpCgkJaWYgZXJyICE9IG5pbCB7CgkJCWxvZy5GYXRhbChlcnIpCgkJfQoJCWlmIHJlc3AuU3RhdHVzQ29kZSgpICE9IGh0dHAuU3RhdHVzT0sgewoJCQlsb2cuRmF0YWxmKCJFeHBlY3RlZCBIVFRQIDIwMCBidXQgcmVjZWl2ZWQgJWQiLCByZXNwLlN0YXR1c0NvZGUoKSkKCQl9CgoJCWZtdC5QcmludGYoInJlc3AuSlNPTjIwMDogJXZcbiIsIHJlc3AuSlNPTjIwMCkKCX0KCn0KYGBgCgojIyBHZW5lcmF0aW5nIEFQSSBtb2RlbHMKCklmIHlvdSdyZSBsb29raW5nIHRvIG9ubHkgZ2VuZXJhdGUgdGhlIG1vZGVscyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIHJlbW90ZSBzZXJ2aWNlLCBmb3IgaW5zdGFuY2UgaWYgeW91IG5lZWQgdG8gaGFuZC1yb2xsIHRoZSBBUEkgY2xpZW50IGZvciB3aGF0ZXZlciByZWFzb24sIHlvdSBjYW4gZG8gdGhpcyBhcy1pcy4KCj4gWyFUSVBdCj4gVHJ5IHRvIGRlZmluZSBhcyBtdWNoIGFzIHBvc3NpYmxlIHdpdGhpbiB0aGUgYCMvY29tcG9uZW50cy9zY2hlbWFzYCBvYmplY3QsIGFzIGBvYXBpLWNvZGVnZW5gIHdpbGwgZ2VuZXJhdGUgYWxsIHRoZSB0eXBlcyBoZXJlLgo+Cj4gQWx0aG91Z2ggd2UgY2FuIGdlbmVyYXRlIHNvbWUgdHlwZXMgYmFzZWQgb24gaW5saW5lIGRlZmluaXRpb25zIGluIGkuZS4gYSBwYXRoJ3MgcmVzcG9uc2UgdHlwZSwgaXQgaXNuJ3QgYWx3YXlzIHBvc3NpYmxlIHRvIGRvIHRoaXMsIG9yIGlmIGl0IGlzIGdlbmVyYXRlZCwgY2FuIGJlIGEgbGl0dGxlIGF3a3dhcmQgdG8gd29yayB3aXRoIGFzIGl0IG1heSBiZSBkZWZpbmVkIGFzIGFuIGFub255bW91cyBzdHJ1Y3QuCgpGb3IgaW5zdGFuY2UsIGdpdmVuIGFuIGBhcGkueWFtbGA6CgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMCIKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiBHZW5lcmF0ZSBtb2RlbHMKcGF0aHM6CiAgL2NsaWVudDoKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGdldENsaWVudAogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAjIE5PVEUgdGhhdCBDbGllbnQgaXMgZ2VuZXJhdGVkIGhlcmUsIGJlY2F1c2UgaXQncyB3aXRoaW4gIy9jb21wb25lbnRzL3NjaGVtYXMKICAgICAgICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9DbGllbnQiCiAgICBwdXQ6CiAgICAgIG9wZXJhdGlvbklkOiB1cGRhdGVDbGllbnQKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDQwMDoKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgIyBOT1RFIHRoYXQgdGhpcyBhbm9ueW1vdXMgb2JqZWN0IGlzIC9ub3QvIGdlbmVyYXRlZCBiZWNhdXNlIGl0J3MgYW4gYW5vbnltb3VzLCBidXQgd291bGQgYmUgZ2VuZXJhdGVkIGlmIHVzaW5nIGBnZW5lcmF0ZTogY2xpZW50YAogICAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9pc3N1ZXMvMTUxMgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgY29kZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAgICAgLSBjb2RlCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIENsaWVudDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICMgTk9URSB0aGF0IHRoaXMgaXMgbm90IGdlbmVyYXRlZCBieSBkZWZhdWx0IGJlY2F1c2UgaXQncyBub3QgcmVmZXJlbmNlZC4gSWYgeW91IHdhbnQgaXQsIHlvdSBuZWVkIHRvIHVzZSB0aGUgZm9sbG93aW5nIFlBTUwgY29uZmlndXJhdGlvbjoKICAgICMKICAgICMgb3V0cHV0LW9wdGlvbnM6CiAgICAjICAgc2tpcC1wcnVuZTogdHJ1ZQogICAgVW5yZWZlcmVuY2VkOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBpZAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgpgYGAKCkFuZCBhIGBjZmcueWFtbGA6CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6ICRzY2hlbWE9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL0hFQUQvY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbgpwYWNrYWdlOiBvbmx5bW9kZWxzCm91dHB1dDogb25seS1tb2RlbHMuZ2VuLmdvCmdlbmVyYXRlOgogIG1vZGVsczogdHJ1ZQpgYGAKCkFuZCBhIGBnZW5lcmF0ZS5nb2A6CgpgYGBnbwpwYWNrYWdlIG9ubHltb2RlbHMKCi8vZ286Z2VuZXJhdGUgZ28gcnVuIGdpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL29hcGktY29kZWdlbi92Mi9jbWQvb2FwaS1jb2RlZ2VuIC1jb25maWcgY2ZnLnlhbWwgYXBpLnlhbWwKYGBgCgpUaGlzIHdvdWxkIHRoZW4gZ2VuZXJhdGU6CgpgYGBnbwpwYWNrYWdlIG9ubHltb2RlbHMKCi8vIENsaWVudCBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnQuCnR5cGUgQ2xpZW50IHN0cnVjdCB7CglOYW1lIHN0cmluZyBganNvbjoibmFtZSJgCn0KYGBgCgpJZiB5b3Ugd2lzaCB0byBhbHNvIGdlbmVyYXRlIHRoZSBgVW5yZWZlcmVuY2VkYCB0eXBlLCB5b3Ugd291bGQgbmVlZCB0aGUgZm9sbG93aW5nIGBjZmcueWFtbGA6CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6ICRzY2hlbWE9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL0hFQUQvY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbgpwYWNrYWdlOiBvbmx5bW9kZWxzCm91dHB1dDogb25seS1tb2RlbHMuZ2VuLmdvCmdlbmVyYXRlOgogIG1vZGVsczogdHJ1ZQpvdXRwdXQtb3B0aW9uczoKICAjIE5PVEUgdGhhdCB0aGlzIGlzIG9ubHkgcmVxdWlyZWQgZm9yIHRoZSBgVW5yZWZlcmVuY2VkYCB0eXBlCiAgc2tpcC1wcnVuZTogdHJ1ZQpgYGAKCkZvciBhIGNvbXBsZXRlIGV4YW1wbGUgc2VlIFtgZXhhbXBsZXMvb25seS1tb2RlbHNgXShleGFtcGxlcy9vbmx5LW1vZGVscykuCgojIyBTcGxpdHRpbmcgbGFyZ2UgT3BlbkFQSSBzcGVjcyBhY3Jvc3MgbXVsdGlwbGUgcGFja2FnZXMgKGFrYSAiSW1wb3J0IE1hcHBpbmciIG9yICJleHRlcm5hbCByZWZlcmVuY2VzIikKPGEgbmFtZT1pbXBvcnQtbWFwcGluZz48L2E+CgpXaGVuIHlvdSd2ZSBnb3QgYSBsYXJnZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIHlvdSBtYXkgZmluZCBpdCB1c2VmdWwgdG8gc3BsaXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjIGFjcm9zcyBtdWx0aXBsZSBmaWxlcywgdXNpbmcgZXh0ZXJuYWwgcmVmZXJlbmNlcywgc3VjaCBhczoKCmBgYHlhbWwKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgVXNlcjoKICAgICAgJHJlZjogJy4uL2NvbW1vbi9hcGkueWFtbCMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCmBgYAoKVGhpcyBpcyBzdXBwb3J0ZWQgYnkgYG9hcGktY29kZWdlbmAsIHRocm91Z2ggdGhlIGFiaWxpdHkgdG8gcGVyZm9ybSAiSW1wb3J0IE1hcHBpbmciLgoKRm9yIGluc3RhbmNlLCBsZXQncyBzYXkgdGhhdCB3ZSBoYXZlIGEgbGFyZ2UgQVBJLCB3aGljaCBoYXMgYSB1c2VyLWZhY2luZyBBUEkgYW5kIGFuIGFkbWluIEFQSSwgYm90aCBvZiB3aGljaCB1c2UgYSBjb21tb24gc2V0IG9mIEFQSSBtb2RlbHMuCgpJbiB0aGlzIGNhc2UsIHdlIG1heSBoYXZlIGFuIEFkbWluIEFQSSB0aGF0IGxvb2tzIGxpa2U6CgpgYGB5YW1sCiMgYWRtaW4vYXBpLnlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IEFkbWluIEFQSQogIGRlc2NyaXB0aW9uOiBUaGUgYWRtaW4tb25seSBwb3J0aW9uIG9mIHRoZSBBUEksIHdoaWNoIGhhcyBpdHMgb3duIHNlcGFyYXRlIE9wZW5BUEkgc3BlYwp0YWdzOgogIC0gbmFtZTogYWRtaW4KICAgIGRlc2NyaXB0aW9uOiBBZG1pbiBBUEkgZW5kcG9pbnRzCiAgLSBuYW1lOiB1c2VyCiAgICBkZXNjcmlwdGlvbjogQVBJIGVuZHBvaW50IHRoYXQgcGVydGFpbnMgdG8gdXNlciBkYXRhCnBhdGhzOgogIC9hZG1pbi91c2VyL3tpZH06CiAgICBnZXQ6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBhZG1pbgogICAgICAgIC0gdXNlcgogICAgICBzdW1tYXJ5OiBHZXQgYSB1c2VyJ3MgZGV0YWlscwogICAgICBvcGVyYXRpb25JZDogZ2V0VXNlckJ5SWQKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIG5hbWU6IGlkCiAgICAgICAgICBpbjogcGF0aAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIGZvcm1hdDogdXVpZAogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IFN1Y2Nlc3MKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFVzZXI6CiAgICAgICRyZWY6ICcuLi9jb21tb24vYXBpLnlhbWwjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyJwpgYGAKClRoaXMgcmVmZXJlbmNlcyB0aGUgY29tbW9uIHNwZWM6CgpgYGB5YW1sCiMgY29tbW9uL2FwaS55YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFVzZXI6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQpgYGAKCkFuZCBmaW5hbGx5IHdlIGhhdmUgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZToKCmBgYHlhbWwKIyB5YW1sLWxhbmd1YWdlLXNlcnZlcjogJHNjaGVtYT1odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vSEVBRC9jb25maWd1cmF0aW9uLXNjaGVtYS5qc29uCiMgYWRtaW4vY2ZnLnlhbWwKcGFja2FnZTogYWRtaW4Kb3V0cHV0OiBzZXJ2ZXIuZ2VuLmdvCmdlbmVyYXRlOgogIG1vZGVsczogdHJ1ZQogIGNoaS1zZXJ2ZXI6IHRydWUKb3V0cHV0LW9wdGlvbnM6CiAgIyB0byBtYWtlIHN1cmUgdGhhdCBhbGwgdHlwZXMgYXJlIGdlbmVyYXRlZAogIHNraXAtcHJ1bmU6IHRydWUKIyBOT1RFIHRoYXQgdGhpcyB3b24ndCB3b3JrLCBhcyBpdCdzIG1pc3NpbmcgYGltcG9ydC1tYXBwaW5nYApgYGAKCklmIHdlIHdlcmUgdG8gcnVuIGBvYXBpLWNvZGVnZW5gLCB0aGlzIHdpbGwgZmFpbCB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IKCmBgYAplcnJvciBnZW5lcmF0aW5nIGNvZGU6IGVycm9yIGNyZWF0aW5nIG9wZXJhdGlvbiBkZWZpbml0aW9uczogZXJyb3IgZ2VuZXJhdGluZyByZXNwb25zZSBkZWZpbml0aW9uczogZXJyb3IgZ2VuZXJhdGluZyByZXF1ZXN0IGJvZHkgZGVmaW5pdGlvbjogZXJyb3IgdHVybmluZyByZWZlcmVuY2UgKC4uL2NvbW1vbi9hcGkueWFtbCMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXIpIGludG8gYSBHbyB0eXBlOiB1bnJlY29nbml6ZWQgZXh0ZXJuYWwgcmVmZXJlbmNlICcuLi9jb21tb24vYXBpLnlhbWwnOyBwbGVhc2UgcHJvdmlkZSB0aGUga25vd24gaW1wb3J0IGZvciB0aGlzIHJlZmVyZW5jZSB1c2luZyBvcHRpb24gLS1pbXBvcnQtbWFwcGluZwpgYGAKClRoaXMgaXMgYmVjYXVzZSBgb2FwaS1jb2RlZ2VuYCByZXF1aXJlczoKCmBgYHlhbWwKIyB5YW1sLWxhbmd1YWdlLXNlcnZlcjogJHNjaGVtYT1odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vSEVBRC9jb25maWd1cmF0aW9uLXNjaGVtYS5qc29uCnBhY2thZ2U6IGFkbWluCm91dHB1dDogc2VydmVyLmdlbi5nbwpnZW5lcmF0ZToKICBtb2RlbHM6IHRydWUKICBjaGktc2VydmVyOiB0cnVlCm91dHB1dC1vcHRpb25zOgogICMgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIHR5cGVzIGFyZSBnZW5lcmF0ZWQKICBza2lwLXBydW5lOiB0cnVlCmltcG9ydC1tYXBwaW5nOgogICMgZm9yIGEgZ2l2ZW4gZmlsZS9VUkwgdGhhdCBpcyAkcmVmJ2QsIHBvaW50IGBvYXBpLWNvZGVnZW5gIHRvIHRoZSBHbyBwYWNrYWdlIHRoYXQgdGhpcyBzcGVjIGlzIGdlbmVyYXRlZCBpbnRvLCB0byBwZXJmb3JtIEdvIHBhY2thZ2UgaW1wb3J0cwogIC4uL2NvbW1vbi9hcGkueWFtbDogZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyL2V4YW1wbGVzL2ltcG9ydC1tYXBwaW5nL2NvbW1vbgpgYGAKClRoaXMgd2lsbCB0aGVuIGdlbmVyYXRlIHRoZSBmb2xsb3dpbmcgY29kZToKCmBgYGdvCnBhY2thZ2UgYWRtaW4KCmltcG9ydCAoCgkvLyAuLi4KCWV4dGVybmFsUmVmMCAiZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyL2V4YW1wbGVzL2ltcG9ydC1tYXBwaW5nL2NvbW1vbiIKKQoKLy8gVXNlciBkZWZpbmVzIG1vZGVsIGZvciBVc2VyLgp0eXBlIFVzZXIgPSBleHRlcm5hbFJlZjAuVXNlcgpgYGAKCklmIHlvdSBkb24ndCB3YW50IHRvIGRvIHRoaXMsIGFuIGFsdGVybmF0ZSBvcHRpb24gaXMgdG8gW2J1bmRsZSB5b3VyIG11bHRpcGxlIE9wZW5BUEkgZmlsZXNdKGh0dHBzOi8vd3d3Lmp2dC5tZS9wb3N0cy8yMDIyLzAyLzEwL2J1bmRsZS1vcGVuYXBpLykgaW50byBhIHNpbmdsZSBzcGVjLgoKQ2hlY2sgb3V0IFt0aGUgaW1wb3J0LW1hcHBpbmcgZXhhbXBsZV0oZXhhbXBsZXMvaW1wb3J0LW1hcHBpbmcvKSBmb3IgdGhlIGZ1bGwgY29kZS4KCiMjIE1vZGlmeWluZyB0aGUgaW5wdXQgT3BlbkFQSSBTcGVjaWZpY2F0aW9uCgpQcmlvciB0byBgb2FwaS1jb2RlZ2VuYCB2Mi40LjAsIHVzZXJzIHdpc2hpbmcgdG8gb3ZlcnJpZGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiwgZm9yIGluc3RhbmNlIHRha2luZyBhZHZhbnRhZ2Ugb2YgZXh0ZW5zaW9ucyBzdWNoIGFzIGB4LWdvLXR5cGVgICB3b3VsZCBuZWVkIHRvIG1vZGlmeSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHRoZXkgYXJlIHVzaW5nLgoKSW4gYSBsb3Qgb2YgY2FzZXMsIHRoaXMgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHdvdWxkIGJlIHByb2R1Y2VkIGJ5IGEgZGlmZmVyZW50IHRlYW0gdG8gdGhlIGNvbnN1bWVycyAob3IgZXZlbiBhIGRpZmZlcmVudCBjb21wYW55KSBhbmQgc28gYXNraW5nIHRoZW0gdG8gbWFrZSBjaGFuZ2VzIGxpa2UgdGhpcyB3ZXJlIHVucmVhc29uYWJsZS4KClRoaXMgd291bGQgbGVhZCB0byB0aGUgQVBJIGNvbnN1bWVycyBuZWVkaW5nIHRvIHZlbmRvciB0aGUgc3BlY2lmaWNhdGlvbiBmcm9tIHRoZSBwcm9kdWNlciAod2hpY2ggaXMgW291ciByZWNvbW1lbmRhdGlvbiBhbnl3YXldKCNodHRwcy1wYXRocykpIGFuZCB0aGVuIG1ha2UgYW55IG51bWJlciBvZiBsb2NhbCBjaGFuZ2VzIHRvIHRoZSBzcGVjaWZpY2F0aW9uIHRvIG1ha2UgaXQgZ2VuZXJhdGUgY29kZSB0aGF0IGxvb2tzIHJlYXNvbmFibGUuCgpIb3dldmVyLCBpbiB0aGUgY2FzZSB0aGF0IGEgY29uc3VtZXIgd291bGQgdXBkYXRlIHRoZWlyIHNwZWNpZmljYXRpb24sIHRoZXkgd291bGQgbGlrZWx5IGVuZCB1cCB3aXRoIGEgbnVtYmVyIG9mIG1lcmdlIGNvbmZsaWN0cy4KCk5vdywgYXMgb2YgYG9hcGktY29kZWdlbmAgdjIuNC4wLCBpdCBpcyBub3cgcG9zc2libGUgdG8gbWFrZSBjaGFuZ2VzIHRvIHRoZSBpbnB1dCBPcGVuQVBJIHNwZWNpZmljYXRpb24gX3dpdGhvdXQgbmVlZGluZyB0byBtb2RpZnkgaXQgZGlyZWN0bHlfLgoKVGhpcyB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlIFtPcGVuQVBJIE92ZXJsYXkgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PdmVybGF5LVNwZWNpZmljYXRpb24pLCB3aGljaCBpcyBhIHN0YWJsZSBzcGVjaWZpY2F0aW9uLgoKPiBbIUNBVVRJT05dCj4gQmV3YXJlISBIZXJlIChtYXkpIGJlIGRyYWdvbnMuCj4KPiBUaGUgT3ZlcmxheSBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzIHRoZSB1c2Ugb2YgSlNPTiBQYXRoLCB3aGljaCBzb21lIHVzZXJzIG1heSBmaW5kIGRpZmZpY3VsdCB0byB3cml0ZSBhbmQvb3IgbWFpbnRhaW4uCj4KPiBXZSBzdGlsbCBoZWF2aWx5IHJlY29tbWVuZCB1c2luZyBPdmVybGF5IGZ1bmN0aW9uYWxpdHksIGJ1dCB3b3VsZCBsaWtlIHVzZXJzIHRvIGJlIGF3YXJlIG9mIHRoaXMuCj4KPiBUaGVyZSBpcyBhIFtwcm9wb3NlZCBtb2RpZmljYXRpb24gdG8gdGhlIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3ZlcmxheS1TcGVjaWZpY2F0aW9uL3B1bGwvMzIpIHdoaWNoIHdvdWxkIHJlbGF4IHRoZSBuZWVkIGZvciBKU09OIFBhdGggYXMgdGhlIHRhcmdldGluZyBtZWNoYW5pc20uCgpGb3IgaW5zdGFuY2UsIGxldCdzIHNheSB0aGF0IHdlIGhhdmUgdGhlIGZvbGxvd2luZyBPcGVuQVBJIHNwZWNpZmljYXRpb24sIHdoaWNoIHByb3ZpZGVzIGluc2lnaHQgaW50byBhbiBpbnRlcm5hbCBlbmRwb2ludCB0aGF0IHdlIHNob3VsZCBub3QgYmUgZ2VuZXJhdGluZyBhbnkgY29kZSBmb3IgKGRlbm90ZWQgYnkgYHgtaW50ZXJuYWxgKToKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6ICJFeGFtcGxlIHRvIGluZGljYXRlIGhvdyB0byB1c2UgdGhlIE9wZW5BUEkgT3ZlcmxheSBzcGVjaWZpY2F0aW9uIChodHRwczovL2dpdGh1Yi5jb20vT0FJL092ZXJsYXktU3BlY2lmaWNhdGlvbikiCnBhdGhzOgogIC9waW5nOgogICAgZ2V0OgogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogcGV0IHJlc3BvbnNlCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Qb25nJwogICAgZGVsZXRlOgogICAgICB4LWludGVybmFsOiB0cnVlCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAyJzoKICAgICAgICAgIGNvbnRlbnQ6IHt9CmBgYAoKSWYgd2Ugd2VyZSB0byBydW4gYG9hcGktY29kZWdlbmAgd2l0aCBvdXQtb2YtdGhlLWJveCBmdW5jdGlvbmFsaXR5LCB0aGlzIHdvdWxkIHRoZW4gbGVhZCB0byB0aGUgREVMRVRFIGVuZHBvaW50IGJlaW5nIGdlbmVyYXRlZCwgd2hpY2ggd2UgZG9uJ3Qgd2FudC4KCkluc3RlYWQsIHdlIGNhbiBkZWZpbmUgdGhlIGZvbGxvd2luZyBgb3ZlcmxheS55YW1sYDoKCgpgYGB5YW1sCm92ZXJsYXk6IDEuMC4wCmluZm86CiAgdGl0bGU6IE92ZXJsYXkKICB2ZXJzaW9uOiAwLjAuMAphY3Rpb25zOgotIHRhcmdldDogJC5wYXRocy4qWz8oQC54LWludGVybmFsKV0KICBkZXNjcmlwdGlvbjogUmVtb3ZlIGludGVybmFsIGVuZHBvaW50cyAobm90ZWQgYnkgeC1pbnRlcm5hbCkKICByZW1vdmU6IHRydWUKLSB0YXJnZXQ6ICQucGF0aHMuKi4qWz8oQC54LWludGVybmFsKV0KICBkZXNjcmlwdGlvbjogUmVtb3ZlIGludGVybmFsIGVuZHBvaW50cyAobm90ZWQgYnkgeC1pbnRlcm5hbCkKICByZW1vdmU6IHRydWUKYGBgCgpBbmQgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgYG9hcGktY29kZWdlbmA6CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6ICRzY2hlbWE9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL0hFQUQvY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbgpwYWNrYWdlOiBhcGkKb3V0cHV0OiBwaW5nLmdlbi5nbwpnZW5lcmF0ZToKICBtb2RlbHM6IHRydWUKICBnb3JpbGxhLXNlcnZlcjogdHJ1ZQogIGVtYmVkZGVkLXNwZWM6IHRydWUKb3V0cHV0LW9wdGlvbnM6CiAgb3ZlcmxheToKICAgIHBhdGg6IG92ZXJsYXkueWFtbApgYGAKClRoaXMgdGhlbiBjb21wbGV0ZWx5IHJlbW92ZXMgdGhlIERFTEVURSBlbmRwb2ludCBfYmVmb3JlXyB3ZSBldmVuIHN0YXJ0IHRvIHBhcnNlIHRoZSBzcGVjaWZpY2F0aW9uIGluIGBvYXBpLWNvZGVnZW5gLCBzbyBpdCdzIGFzIGlmIHlvdXIgc3BlY2lmaWNhdGlvbiB3YXMgcHJvdmlkZWQgd2l0aG91dCB0aGF0IGVuZHBvaW50LgoKQ2hlY2sgb3V0IFt0aGUgb3ZlcmxheSBleGFtcGxlXShleGFtcGxlcy9vdmVybGF5LykgZm9yIHRoZSBmdWxsIGNvZGUsIGFuZCBzb21lIG1vcmUgY29tcGxleCBleGFtcGxlcy4KCiMjIEdlbmVyYXRpbmcgTnVsbGFibGUgdHlwZXMKCkl0J3MgcG9zc2libGUgdGhhdCB5b3Ugd2FudCB0byBiZSBhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIGEgZmllbGQgaXNuJ3Qgc2VudCwgaXMgc2VudCBhcyBgbnVsbGAgb3IgaGFzIGEgdmFsdWUuCgpGb3IgaW5zdGFuY2UsIGlmIHlvdSBoYWQgdGhlIGZvbGxvd2luZyBPcGVuQVBJIHByb3BlcnR5OgoKYGBgeWFtbApTOgogIHR5cGU6IG9iamVjdAogIHByb3BlcnRpZXM6CiAgICBGaWVsZDoKICAgICAgdHlwZTogc3RyaW5nCiAgICAgIG51bGxhYmxlOiB0cnVlCiAgICByZXF1aXJlZDogW10KYGBgCgpUaGUgZGVmYXVsdCBiZWhhdmlvdXIgaW4gYG9hcGktY29kZWdlbmAgaXMgdG8gZ2VuZXJhdGU6CgpgYGBnbwp0eXBlIFMgc3RydWN0IHsKCUZpZWxkICpzdHJpbmcgYGpzb246ImZpZWxkLG9taXRlbXB0eSJgCn0KYGBgCgpIb3dldmVyLCB5b3UgbG9zZSB0aGUgYWJpbGl0eSB0byB1bmRlcnN0YW5kIHRoZSB0aHJlZSBjYXNlcywgYXMgdGhlcmUncyBubyB3YXkgdG8gZGlzdGluZ3Vpc2ggdHdvIG9mIHRoZSB0eXBlcyBmcm9tIGVhY2ggb3RoZXI6CgotIGlzIHRoaXMgZmllbGQgbm90IHNlbnQ/IChDYW4gYmUgY2hlY2tlZCB3aXRoIGBTLkZpZWxkID09IG5pbGApCi0gaXMgdGhpcyBmaWVsZCBgbnVsbGA/IChDYW4gYmUgY2hlY2tlZCB3aXRoIGBTLkZpZWxkID09IG5pbGApCi0gZG9lcyB0aGlzIGZpZWxkIGhhdmUgYSB2YWx1ZT8gKGBTLkZpZWxkICE9IG5pbCAmJiAqUy5GaWVsZCA9PSAiMTIzImApCgpBcyBvZiBgb2FwaS1jb2RlZ2VuYCBbdjIuMS4wXShodHRwczovL2dpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjEuMCkgaXQgaXMgbm93IHBvc3NpYmxlIHRvIHJlcHJlc2VudCB0aGlzIHdpdGggdGhlIGBudWxsYWJsZS5OdWxsYWJsZWAgdHlwZSBmcm9tIFtvdXIgbmV3IGxpYnJhcnksIG9hcGktY29kZWdlbi9udWxsYWJsZV0oaHR0cHM6Ly9naXRodWIuY29tL29hcGktY29kZWdlbi9udWxsYWJsZSkuCgpJZiB5b3UgY29uZmlndXJlIHlvdXIgZ2VuZXJhdG9yJ3MgT3V0cHV0IE9wdGlvbnMgdG8gb3B0LWluIHRvIHRoaXMgYmVoYXZpb3VyLCBhcyBzbzoKCmBgYHlhbWwKb3V0cHV0LW9wdGlvbnM6CiAgbnVsbGFibGUtdHlwZTogdHJ1ZQpgYGAKCllvdSB3aWxsIG5vdyByZWNlaXZlIHRoZSBmb2xsb3dpbmcgb3V0cHV0OgoKYGBgZ28KdHlwZSBTIHN0cnVjdCB7CiAgICAvLyBub3RlIHRoYXQgdGhlcmUncyBubyBwb2ludGVyIGhlcmUsIGp1c3QgYG9taXRlbXB0eWAKICAgIEZpZWxkIG51bGxhYmxlLk51bGxhYmxlW3N0cmluZ10gYGpzb246ImZpZWxkLG9taXRlbXB0eSJgCn0KYGBgCgojIyBPcGVuQVBJIGV4dGVuc2lvbnMKCkFzIHdlbGwgYXMgdGhlIGNvcmUgT3BlbkFQSSBzdXBwb3J0LCB3ZSBhbHNvIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBPcGVuQVBJIGV4dGVuc2lvbnMsIGFzIGRlbm90ZWQgYnkgdGhlIFtPcGVuQVBJIFNwZWNpZmljYXRpb24gRXh0ZW5zaW9uc10oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zI3NwZWNpZmljYXRpb24tZXh0ZW5zaW9ucykuCgo8dGFibGU+Cgo8dHI+Cjx0aD4KRXh0ZW5zaW9uCjwvdGg+Cjx0aD4KRGVzY3JpcHRpb24KPC90aD4KPHRoPgpFeGFtcGxlIHVzYWdlCjwvdGg+CjwvdHI+Cgo8dHI+Cjx0ZD4KCmB4LWdvLXR5cGVgIDxicj4KYHgtZ28tdHlwZS1pbXBvcnRgCgo8L3RkPgo8dGQ+Ck92ZXJyaWRlIHRoZSBnZW5lcmF0ZWQgdHlwZSBkZWZpbml0aW9uIChhbmQgb3B0aW9uYWxseSwgYWRkIGFuIGltcG9ydCBmcm9tIGFub3RoZXIgcGFja2FnZSkKPC90ZD4KPHRkPgo8ZGV0YWlscz4KClVzaW5nIHRoZSBgeC1nby10eXBlYCAoYW5kIG9wdGlvbmFsbHksIGB4LWdvLXR5cGUtaW1wb3J0YCB3aGVuIHlvdSBuZWVkIHRvIGltcG9ydCBhbm90aGVyIHBhY2thZ2UpIGFsbG93cyBvdmVycmlkaW5nIHRoZSB0eXBlIHRoYXQgYG9hcGktY29kZWdlbmAgZGV0ZXJtaW5lZCB0aGUgZ2VuZXJhdGVkIHR5cGUgc2hvdWxkIGJlLgoKV2UgY2FuIHNlZSB0aGlzIGF0IHBsYXkgd2l0aCB0aGUgZm9sbG93aW5nIHNjaGVtYXM6CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIENsaWVudDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgQ2xpZW50V2l0aEV4dGVuc2lvbjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICMgdGhpcyBpcyBhIGJpdCBvZiBhIGNvbnRyaXZlZCBleGFtcGxlLCBhcyB5b3UgY291bGQgaW5zdGVhZCB1c2UKICAgICAgICAgICMgYGZvcm1hdDogdXVpZGAgYnV0IGl0IGV4cGxhaW5zIGhvdyB5b3UnZCBkbyB0aGlzIHdoZW4gdGhlcmUgbWF5IGJlCiAgICAgICAgICAjIGEgY2xhc2gsIGZvciBpbnN0YW5jZSBpZiB5b3UgYWxyZWFkeSBoYWQgYSBgdXVpZGAgcGFja2FnZSB0aGF0IHdhcwogICAgICAgICAgIyBiZWluZyBpbXBvcnRlZCwgb3IgLi4uCiAgICAgICAgICB4LWdvLXR5cGU6IGdvb2dsZXV1aWQuVVVJRAogICAgICAgICAgeC1nby10eXBlLWltcG9ydDoKICAgICAgICAgICAgcGF0aDogZ2l0aHViLmNvbS9nb29nbGUvdXVpZAogICAgICAgICAgICBuYW1lOiBnb29nbGV1dWlkCiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICMgLi4uIHRoaXMgaXMgYWxzbyBhIGJpdCBvZiBhIGNvbnRyaXZlZCBleGFtcGxlLCBhcyB5b3UgY291bGQgdXNlCiAgICAgICAgICAjIGB0eXBlOiBpbnRlZ2VyYCBidXQgaW4gdGhlIGNhc2UgdGhhdCB5b3Uga25vdyBiZXR0ZXIgdGhhbiB3aGF0CiAgICAgICAgICAjIG9hcGktY29kZWdlbiBpcyBnZW5lcmF0aW5nLCBsaWtlIHNvOgogICAgICAgICAgeC1nby10eXBlOiBpbnQ2NApgYGAKCkZyb20gaGVyZSwgd2Ugbm93IGdldCB0d28gZGlmZmVyZW50IG1vZGVsczoKCmBgYGdvCi8vIENsaWVudCBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnQuCnR5cGUgQ2xpZW50IHN0cnVjdCB7CglJZCAgICpmbG9hdDMyIGBqc29uOiJpZCxvbWl0ZW1wdHkiYAoJTmFtZSBzdHJpbmcgICBganNvbjoibmFtZSJgCn0KCi8vIENsaWVudFdpdGhFeHRlbnNpb24gZGVmaW5lcyBtb2RlbCBmb3IgQ2xpZW50V2l0aEV4dGVuc2lvbi4KdHlwZSBDbGllbnRXaXRoRXh0ZW5zaW9uIHN0cnVjdCB7CglJZCAgICppbnQ2NCAgICAgICAgICBganNvbjoiaWQsb21pdGVtcHR5ImAKCU5hbWUgZ29vZ2xldXVpZC5VVUlEIGBqc29uOiJuYW1lImAKfQpgYGAKCllvdSBjYW4gc2VlIHRoaXMgaW4gbW9yZSBkZXRhaWwgaW4gW3RoZSBleGFtcGxlIGNvZGVdKGV4YW1wbGVzL2V4dGVuc2lvbnMveGdvdHlwZS8pLgoKPC9kZXRhaWxzPgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpgeC1nby10eXBlLXNraXAtb3B0aW9uYWwtcG9pbnRlcmAKCjwvdGQ+Cjx0ZD4KRG8gbm90IGFkZCBhIHBvaW50ZXIgdHlwZSBmb3Igb3B0aW9uYWwgZmllbGRzIGluIHN0cnVjdHMKPC90ZD4KPHRkPgo8ZGV0YWlscz4KCkJ5IGRlZmF1bHQsIGBvYXBpLWNvZGVnZW5gIHdpbGwgZ2VuZXJhdGUgYSBwb2ludGVyIGZvciBvcHRpb25hbCBmaWVsZHMuCgpVc2luZyB0aGUgYHgtZ28tdHlwZS1za2lwLW9wdGlvbmFsLXBvaW50ZXJgIGV4dGVuc2lvbiBhbGxvd3Mgb21pdHRpbmcgdGhhdCBwb2ludGVyLgoKV2UgY2FuIHNlZSB0aGlzIGF0IHBsYXkgd2l0aCB0aGUgZm9sbG93aW5nIHNjaGVtYXM6CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIENsaWVudDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgQ2xpZW50V2l0aEV4dGVuc2lvbjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgeC1nby10eXBlLXNraXAtb3B0aW9uYWwtcG9pbnRlcjogdHJ1ZQpgYGAKCkZyb20gaGVyZSwgd2Ugbm93IGdldCB0d28gZGlmZmVyZW50IG1vZGVsczoKCmBgYGdvCi8vIENsaWVudCBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnQuCnR5cGUgQ2xpZW50IHN0cnVjdCB7CglJZCAgICpmbG9hdDMyIGBqc29uOiJpZCxvbWl0ZW1wdHkiYAoJTmFtZSBzdHJpbmcgICBganNvbjoibmFtZSJgCn0KCi8vIENsaWVudFdpdGhFeHRlbnNpb24gZGVmaW5lcyBtb2RlbCBmb3IgQ2xpZW50V2l0aEV4dGVuc2lvbi4KdHlwZSBDbGllbnRXaXRoRXh0ZW5zaW9uIHN0cnVjdCB7CglJZCAgIGZsb2F0MzIgYGpzb246ImlkLG9taXRlbXB0eSJgCglOYW1lIHN0cmluZyAgYGpzb246Im5hbWUiYAp9CmBgYAoKWW91IGNhbiBzZWUgdGhpcyBpbiBtb3JlIGRldGFpbCBpbiBbdGhlIGV4YW1wbGUgY29kZV0oZXhhbXBsZXMvZXh0ZW5zaW9ucy94Z290eXBlc2tpcG9wdGlvbmFscG9pbnRlci8pLgoKPC9kZXRhaWxzPgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpgeC1nby1uYW1lYAoKPC90ZD4KPHRkPgpPdmVycmlkZSB0aGUgZ2VuZXJhdGVkIG5hbWUgb2YgYSBmaWVsZCBvciBhIHR5cGUKPC90ZD4KPHRkPgo8ZGV0YWlscz4KCkJ5IGRlZmF1bHQsIGBvYXBpLWNvZGVnZW5gIHdpbGwgYXR0ZW1wdCB0byBnZW5lcmF0ZSB0aGUgbmFtZSBvZiBmaWVsZHMgYW5kIHR5cGVzIGluIGFzIGJlc3QgYSB3YXkgaXQgY2FuLgoKSG93ZXZlciwgc29tZXRpbWVzLCB0aGUgbmFtZSBkb2Vzbid0IHF1aXRlIGZpdCB3aGF0IHlvdXIgY29kZWJhc2Ugc3RhbmRhcmRzIGFyZSwgb3IgdGhlIGludGVudCBvZiB0aGUgZmllbGQsIHNvIHlvdSBjYW4gb3ZlcnJpZGUgaXQgd2l0aCBgeC1nby1uYW1lYC4KCldlIGNhbiBzZWUgdGhpcyBhdCBwbGF5IHdpdGggdGhlIGZvbGxvd2luZyBzY2hlbWFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogeC1nby1uYW1lCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIENsaWVudDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgQ2xpZW50V2l0aEV4dGVuc2lvbjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgICMgY2FuIGJlIHVzZWQgb24gYSB0eXBlCiAgICAgIHgtZ28tbmFtZTogQ2xpZW50UmVuYW1lZEJ5RXh0ZW5zaW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgIyBvciBvbiBhIGZpZWxkCiAgICAgICAgICB4LWdvLW5hbWU6IEFjY291bnRJZGVudGlmaWVyCmBgYAoKRnJvbSBoZXJlLCB3ZSBub3cgZ2V0IHR3byBkaWZmZXJlbnQgbW9kZWxzOgoKYGBgZ28KLy8gQ2xpZW50IGRlZmluZXMgbW9kZWwgZm9yIENsaWVudC4KdHlwZSBDbGllbnQgc3RydWN0IHsKCUlkICAgKmZsb2F0MzIgYGpzb246ImlkLG9taXRlbXB0eSJgCglOYW1lIHN0cmluZyAgIGBqc29uOiJuYW1lImAKfQoKLy8gQ2xpZW50UmVuYW1lZEJ5RXh0ZW5zaW9uIGRlZmluZXMgbW9kZWwgZm9yIENsaWVudFdpdGhFeHRlbnNpb24uCnR5cGUgQ2xpZW50UmVuYW1lZEJ5RXh0ZW5zaW9uIHN0cnVjdCB7CglBY2NvdW50SWRlbnRpZmllciAqZmxvYXQzMiBganNvbjoiaWQsb21pdGVtcHR5ImAKCU5hbWUgICAgICAgICAgICAgIHN0cmluZyAgIGBqc29uOiJuYW1lImAKfQpgYGAKCllvdSBjYW4gc2VlIHRoaXMgaW4gbW9yZSBkZXRhaWwgaW4gW3RoZSBleGFtcGxlIGNvZGVdKGV4YW1wbGVzL2V4dGVuc2lvbnMveGdvbmFtZS8pLgoKPC9kZXRhaWxzPgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpgeC1nby10eXBlLW5hbWVgCgo8L3RkPgo8dGQ+Ck92ZXJyaWRlIHRoZSBnZW5lcmF0ZWQgbmFtZSBvZiBhIHR5cGUKPC90ZD4KPHRkPgo8ZGV0YWlscz4KCj4gWyFOT1RFXQo+IE5vdGljZSB0aGF0IHRoaXMgaXMgc3VidGx5IGRpZmZlcmVudCB0byB0aGUgYHgtZ28tbmFtZWAsIHdoaWNoIGFsc28gYXBwbGllcyB0byBfZmllbGRzXyB3aXRoaW4gYHN0cnVjdGBzLgoKQnkgZGVmYXVsdCwgYG9hcGktY29kZWdlbmAgd2lsbCBhdHRlbXB0IHRvIGdlbmVyYXRlIHRoZSBuYW1lIG9mIHR5cGVzIGluIGFzIGJlc3QgYSB3YXkgaXQgY2FuLgoKSG93ZXZlciwgc29tZXRpbWVzLCB0aGUgbmFtZSBkb2Vzbid0IHF1aXRlIGZpdCB3aGF0IHlvdXIgY29kZWJhc2Ugc3RhbmRhcmRzIGFyZSwgb3IgdGhlIGludGVudCBvZiB0aGUgZmllbGQsIHNvIHlvdSBjYW4gb3ZlcnJpZGUgaXQgd2l0aCBgeC1nby1uYW1lYC4KCldlIGNhbiBzZWUgdGhpcyBhdCBwbGF5IHdpdGggdGhlIGZvbGxvd2luZyBzY2hlbWFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogeC1nby10eXBlLW5hbWUKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgQ2xpZW50OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBuYW1lCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICBDbGllbnRXaXRoRXh0ZW5zaW9uOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgeC1nby10eXBlLW5hbWU6IENsaWVudFJlbmFtZWRCeUV4dGVuc2lvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICMgTk9URSBhdHRlbXB0aW5nIGEgYHgtZ28tdHlwZS1uYW1lYCBoZXJlIGlzIGEgbm8tb3AsIGFzIHdlJ3JlIG5vdCBwcm9kdWNpbmcgYSBfdHlwZV8gb25seSBhIF9maWVsZF8KICAgICAgICAgIHgtZ28tdHlwZS1uYW1lOiBUaGlzV2lsbE5vdEJlVXNlZApgYGAKCkZyb20gaGVyZSwgd2Ugbm93IGdldCB0d28gZGlmZmVyZW50IG1vZGVscyBhbmQgYSB0eXBlIGFsaWFzOgoKYGBgZ28KLy8gQ2xpZW50IGRlZmluZXMgbW9kZWwgZm9yIENsaWVudC4KdHlwZSBDbGllbnQgc3RydWN0IHsKCUlkICAgKmZsb2F0MzIgYGpzb246ImlkLG9taXRlbXB0eSJgCglOYW1lIHN0cmluZyAgIGBqc29uOiJuYW1lImAKfQoKLy8gQ2xpZW50V2l0aEV4dGVuc2lvbiBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnRXaXRoRXh0ZW5zaW9uLgp0eXBlIENsaWVudFdpdGhFeHRlbnNpb24gPSBDbGllbnRSZW5hbWVkQnlFeHRlbnNpb24KCi8vIENsaWVudFJlbmFtZWRCeUV4dGVuc2lvbiBkZWZpbmVzIG1vZGVsIGZvciAuCnR5cGUgQ2xpZW50UmVuYW1lZEJ5RXh0ZW5zaW9uIHN0cnVjdCB7CglJZCAgICpmbG9hdDMyIGBqc29uOiJpZCxvbWl0ZW1wdHkiYAoJTmFtZSBzdHJpbmcgICBganNvbjoibmFtZSJgCn0KYGBgCgpZb3UgY2FuIHNlZSB0aGlzIGluIG1vcmUgZGV0YWlsIGluIFt0aGUgZXhhbXBsZSBjb2RlXShleGFtcGxlcy9leHRlbnNpb25zL3hnb3R5cGVuYW1lLykuCgo8L2RldGFpbHM+CjwvdGQ+CjwvdHI+Cgo8dHI+Cjx0ZD4KCmB4LW9taXRlbXB0eWAKCjwvdGQ+Cjx0ZD4KRm9yY2UgdGhlIHByZXNlbmNlIG9mIHRoZSBKU09OIHRhZyBgb21pdGVtcHR5YCBvbiBhIGZpZWxkCjwvdGQ+Cjx0ZD4KPGRldGFpbHM+CgpJbiBhIGNhc2UgdGhhdCB5b3UgbWF5IHdhbnQgdG8gYWRkIHRoZSBKU09OIHN0cnVjdCB0YWcgYG9taXRlbXB0eWAgdG8gdHlwZXMgdGhhdCBkb24ndCBoYXZlIG9uZSBnZW5lcmF0ZWQgYnkgZGVmYXVsdCAtIGZvciBpbnN0YW5jZSBhIHJlcXVpcmVkIGZpZWxkIC0geW91IGNhbiB1c2UgdGhlIGB4LW9taXRlbXB0eWAgZXh0ZW5zaW9uLgoKV2UgY2FuIHNlZSB0aGlzIGF0IHBsYXkgd2l0aCB0aGUgZm9sbG93aW5nIHNjaGVtYXM6CgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMCIKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiB4LW9taXRlbXB0eQpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBDbGllbnQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgIENsaWVudFdpdGhFeHRlbnNpb246CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAjIGZvciBzb21lIHJlYXNvbiwgeW91IG1heSB3YW50IHRoaXMgYmVoYXZpb3VyLCBldmVuIHRob3VnaCBpdCdzIGEgcmVxdWlyZWQgZmllbGQKICAgICAgICAgIHgtb21pdGVtcHR5OiB0cnVlCiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBudW1iZXIKYGBgCgpGcm9tIGhlcmUsIHdlIG5vdyBnZXQgdHdvIGRpZmZlcmVudCBtb2RlbHM6CgpgYGBnbwovLyBDbGllbnQgZGVmaW5lcyBtb2RlbCBmb3IgQ2xpZW50Lgp0eXBlIENsaWVudCBzdHJ1Y3QgewoJSWQgICAqZmxvYXQzMiBganNvbjoiaWQsb21pdGVtcHR5ImAKCU5hbWUgc3RyaW5nICAgYGpzb246Im5hbWUiYAp9CgovLyBDbGllbnRXaXRoRXh0ZW5zaW9uIGRlZmluZXMgbW9kZWwgZm9yIENsaWVudFdpdGhFeHRlbnNpb24uCnR5cGUgQ2xpZW50V2l0aEV4dGVuc2lvbiBzdHJ1Y3QgewoJSWQgICAqZmxvYXQzMiBganNvbjoiaWQsb21pdGVtcHR5ImAKCU5hbWUgc3RyaW5nICAgYGpzb246Im5hbWUsb21pdGVtcHR5ImAKfQpgYGAKCk5vdGljZSB0aGF0IHRoZSBgQ29tcGxleEZpZWxkYCBpcyBzdGlsbCBnZW5lcmF0ZWQgaW4gZnVsbCwgYnV0IHRoZSB0eXBlIHdpbGwgdGhlbiBiZSBpZ25vcmVkIHdpdGggSlNPTiBtYXJzaGFsbGluZy4KCllvdSBjYW4gc2VlIHRoaXMgaW4gbW9yZSBkZXRhaWwgaW4gW3RoZSBleGFtcGxlIGNvZGVdKGV4YW1wbGVzL2V4dGVuc2lvbnMveGdvanNvbmlnbm9yZS8pLgoKPC9kZXRhaWxzPgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpgeC1nby1qc29uLWlnbm9yZWAKCjwvdGQ+Cjx0ZD4KV2hlbiAodW4pbWFyc2hhbGluZyBKU09OLCBpZ25vcmUgZmllbGQocykKPC90ZD4KPHRkPgo8ZGV0YWlscz4KCkJ5IGRlZmF1bHQsIGBvYXBpLWNvZGVnZW5gIHdpbGwgZ2VuZXJhdGUgYGpzb246Ii4uLiJgIHN0cnVjdCB0YWdzIGZvciBhbGwgZmllbGRzIGluIGEgc3RydWN0LCBzbyBKU09OICh1biltYXJzaGFsaW5nIHdvcmtzLgoKSG93ZXZlciwgc29tZXRpbWVzLCB5b3Ugd2FudCB0byBvbWl0IGZpZWxkcywgd2hpY2ggY2FuIGJlIGRvbmUgd2l0aCB0aGUgYHgtZ28tanNvbi1pZ25vcmVgIGV4dGVuc2lvbi4KCldlIGNhbiBzZWUgdGhpcyBhdCBwbGF5IHdpdGggdGhlIGZvbGxvd2luZyBzY2hlbWFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogeC1nby1qc29uLWlnbm9yZQpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBDbGllbnQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY29tcGxleEZpZWxkOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBuYW1lOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBhY2NvdW50TmFtZToKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICMgLi4uCiAgICBDbGllbnRXaXRoRXh0ZW5zaW9uOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBuYW1lCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNvbXBsZXhGaWVsZDoKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgbmFtZToKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgYWNjb3VudE5hbWU6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAjIC4uLgogICAgICAgICAgeC1nby1qc29uLWlnbm9yZTogdHJ1ZQpgYGAKCkZyb20gaGVyZSwgd2Ugbm93IGdldCB0d28gZGlmZmVyZW50IG1vZGVsczoKCmBgYGdvCi8vIENsaWVudCBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnQuCnR5cGUgQ2xpZW50IHN0cnVjdCB7CglDb21wbGV4RmllbGQgKnN0cnVjdCB7CgkJQWNjb3VudE5hbWUgKnN0cmluZyBganNvbjoiYWNjb3VudE5hbWUsb21pdGVtcHR5ImAKCQlOYW1lICAgICAgICAqc3RyaW5nIGBqc29uOiJuYW1lLG9taXRlbXB0eSJgCgl9IGBqc29uOiJjb21wbGV4RmllbGQsb21pdGVtcHR5ImAKCU5hbWUgc3RyaW5nIGBqc29uOiJuYW1lImAKfQoKLy8gQ2xpZW50V2l0aEV4dGVuc2lvbiBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnRXaXRoRXh0ZW5zaW9uLgp0eXBlIENsaWVudFdpdGhFeHRlbnNpb24gc3RydWN0IHsKCUNvbXBsZXhGaWVsZCAqc3RydWN0IHsKCQlBY2NvdW50TmFtZSAqc3RyaW5nIGBqc29uOiJhY2NvdW50TmFtZSxvbWl0ZW1wdHkiYAoJCU5hbWUgICAgICAgICpzdHJpbmcgYGpzb246Im5hbWUsb21pdGVtcHR5ImAKCX0gYGpzb246Ii0iYAoJTmFtZSBzdHJpbmcgYGpzb246Im5hbWUiYAp9CmBgYAoKTm90aWNlIHRoYXQgdGhlIGBDb21wbGV4RmllbGRgIGlzIHN0aWxsIGdlbmVyYXRlZCBpbiBmdWxsLCBidXQgdGhlIHR5cGUgd2lsbCB0aGVuIGJlIGlnbm9yZWQgd2l0aCBKU09OIG1hcnNoYWxsaW5nLgoKWW91IGNhbiBzZWUgdGhpcyBpbiBtb3JlIGRldGFpbCBpbiBbdGhlIGV4YW1wbGUgY29kZV0oZXhhbXBsZXMvZXh0ZW5zaW9ucy94Z29qc29uaWdub3JlLykuCgo8L2RldGFpbHM+CjwvdGQ+CjwvdHI+Cgo8dHI+Cjx0ZD4KCmB4LW9hcGktY29kZWdlbi1leHRyYS10YWdzYAoKPC90ZD4KPHRkPgpHZW5lcmF0ZSBhcmJpdHJhcnkgc3RydWN0IHRhZ3MgdG8gZmllbGRzCjwvdGQ+Cjx0ZD4KPGRldGFpbHM+CgpJZiB5b3UncmUgbWFraW5nIHVzZSBvZiBhIGZpZWxkJ3Mgc3RydWN0IHRhZ3MgdG8gaS5lLiBhcHBseSB2YWxpZGF0aW9uLCBkZWNpZGUgd2hldGhlciBzb21ldGhpbmcgc2hvdWxkIGJlIGxvZ2dlZCwgZXRjLCB5b3UgY2FuIHVzZSBgeC1vYXBpLWNvZGVnZW4tZXh0cmEtdGFnc2AgdG8gc2V0IGFkZGl0aW9uYWwgdGFncyBmb3IgeW91ciBnZW5lcmF0ZWQgdHlwZXMuCgpXZSBjYW4gc2VlIHRoaXMgYXQgcGxheSB3aXRoIHRoZSBmb2xsb3dpbmcgc2NoZW1hczoKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IHgtb2FwaS1jb2RlZ2VuLWV4dHJhLXRhZ3MKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgQ2xpZW50OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBuYW1lCiAgICAgICAgLSBpZAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgQ2xpZW50V2l0aEV4dGVuc2lvbjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICAgIC0gaWQKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIHgtb2FwaS1jb2RlZ2VuLWV4dHJhLXRhZ3M6CiAgICAgICAgICAgIHZhbGlkYXRlOiAicmVxdWlyZWQsbWluPTEsbWF4PTI1NiIKICAgICAgICAgICAgc2FmZS10by1sb2c6ICJ0cnVlIgogICAgICAgICAgICBnb3JtOiBwcmltYXJ5a2V5CmBgYAoKRnJvbSBoZXJlLCB3ZSBub3cgZ2V0IHR3byBkaWZmZXJlbnQgbW9kZWxzOgoKYGBgZ28KLy8gQ2xpZW50IGRlZmluZXMgbW9kZWwgZm9yIENsaWVudC4KdHlwZSBDbGllbnQgc3RydWN0IHsKCUlkICAgZmxvYXQzMiBganNvbjoiaWQiYAoJTmFtZSBzdHJpbmcgIGBqc29uOiJuYW1lImAKfQoKLy8gQ2xpZW50V2l0aEV4dGVuc2lvbiBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnRXaXRoRXh0ZW5zaW9uLgp0eXBlIENsaWVudFdpdGhFeHRlbnNpb24gc3RydWN0IHsKCUlkICAgZmxvYXQzMiBgZ29ybToicHJpbWFyeWtleSIganNvbjoiaWQiIHNhZmUtdG8tbG9nOiJ0cnVlIiB2YWxpZGF0ZToicmVxdWlyZWQsbWluPTEsbWF4PTI1NiJgCglOYW1lIHN0cmluZyAgYGpzb246Im5hbWUiYAp9CmBgYAoKWW91IGNhbiBzZWUgdGhpcyBpbiBtb3JlIGRldGFpbCBpbiBbdGhlIGV4YW1wbGUgY29kZV0oZXhhbXBsZXMvZXh0ZW5zaW9ucy94b2FwaWNvZGVnZW5leHRyYXRhZ3MvKS4KCjwvZGV0YWlscz4KPC90ZD4KPC90cj4KCjx0cj4KPHRkPgoKYHgtZW51bS12YXJuYW1lc2AgLyBgeC1lbnVtTmFtZXNgCgo8L3RkPgo8dGQ+Ck92ZXJyaWRlIGdlbmVyYXRlZCB2YXJpYWJsZSBuYW1lcyBmb3IgZW51bSBjb25zdGFudHMKPC90ZD4KPHRkPgo8ZGV0YWlscz4KCldoZW4gY29uc3VtaW5nIGFuIGVudW0gdmFsdWUgZnJvbSBhbiBleHRlcm5hbCBzeXN0ZW0sIHRoZSBuYW1lIG1heSBub3QgcHJvZHVjZSBhIG5pY2UgdmFyaWFibGUgbmFtZS4gVXNpbmcgdGhlIGB4LWVudW0tdmFybmFtZXNgIGV4dGVuc2lvbiBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIHZhcmlhYmxlIG5hbWVzLgoKV2UgY2FuIHNlZSB0aGlzIGF0IHBsYXkgd2l0aCB0aGUgZm9sbG93aW5nIHNjaGVtYXM6CgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMCIKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiB4LWVudW1OYW1lcyBhbmQgeC1lbnVtLXZhcm5hbWVzCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIENsaWVudFR5cGU6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBlbnVtOgogICAgICAgIC0gQUNUCiAgICAgICAgLSBFWFAKICAgIENsaWVudFR5cGVXaXRoTmFtZXNFeHRlbnNpb246CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBlbnVtOgogICAgICAgIC0gQUNUCiAgICAgICAgLSBFWFAKICAgICAgeC1lbnVtTmFtZXM6CiAgICAgICAgLSBBY3RpdmUKICAgICAgICAtIEV4cGlyZWQKICAgIENsaWVudFR5cGVXaXRoVmFyTmFtZXNFeHRlbnNpb246CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBlbnVtOgogICAgICAgIC0gQUNUCiAgICAgICAgLSBFWFAKICAgICAgeC1lbnVtLXZhcm5hbWVzOgogICAgICAgIC0gQWN0aXZlCiAgICAgICAgLSBFeHBpcmVkCmBgYAoKRnJvbSBoZXJlLCB3ZSBub3cgZ2V0IHR3byBkaWZmZXJlbnQgZm9ybXMgb2YgdGhlIHNhbWUgZW51bSBkZWZpbml0aW9uLgoKYGBgZ28KLy8gRGVmaW5lcyB2YWx1ZXMgZm9yIENsaWVudFR5cGUuCmNvbnN0ICgKCUFDVCBDbGllbnRUeXBlID0gIkFDVCIKCUVYUCBDbGllbnRUeXBlID0gIkVYUCIKKQoKLy8gQ2xpZW50VHlwZSBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnRUeXBlLgp0eXBlIENsaWVudFR5cGUgc3RyaW5nCgovLyBEZWZpbmVzIHZhbHVlcyBmb3IgQ2xpZW50VHlwZVdpdGhFeHRlbnNpb24uCmNvbnN0ICgKCUFjdGl2ZSAgQ2xpZW50VHlwZVdpdGhFeHRlbnNpb24gPSAiQUNUIgoJRXhwaXJlZCBDbGllbnRUeXBlV2l0aEV4dGVuc2lvbiA9ICJFWFAiCikKCi8vIENsaWVudFR5cGVXaXRoRXh0ZW5zaW9uIGRlZmluZXMgbW9kZWwgZm9yIENsaWVudFR5cGVXaXRoRXh0ZW5zaW9uLgp0eXBlIENsaWVudFR5cGVXaXRoRXh0ZW5zaW9uIHN0cmluZwpgYGAKCllvdSBjYW4gc2VlIHRoaXMgaW4gbW9yZSBkZXRhaWwgaW4gW3RoZSBleGFtcGxlIGNvZGVdKGV4YW1wbGVzL2V4dGVuc2lvbnMveGVudW12YXJuYW1lcy8pLgoKPC9kZXRhaWxzPgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpgeC1kZXByZWNhdGVkLXJlYXNvbmAKCjwvdGQ+Cjx0ZD4KQWRkIGEgR29Eb2MgZGVwcmVjYXRpb24gd2FybmluZyB0byBhIHR5cGUKPC90ZD4KPHRkPgo8ZGV0YWlscz4KCldoZW4gYW4gT3BlbkFQSSB0eXBlIGlzIGRlcHJlY2F0ZWQsIGEgZGVwcmVjYXRpb24gd2FybmluZyBjYW4gYmUgYWRkZWQgaW4gdGhlIEdvRG9jIHVzaW5nIGB4LWRlcHJlY2F0ZWQtcmVhc29uYC4KCldlIGNhbiBzZWUgdGhpcyBhdCBwbGF5IHdpdGggdGhlIGZvbGxvd2luZyBzY2hlbWFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogeC1kZXByZWNhdGVkLXJlYXNvbgpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBDbGllbnQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgIENsaWVudFdpdGhFeHRlbnNpb246CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZXByZWNhdGVkOiB0cnVlCiAgICAgICAgICB4LWRlcHJlY2F0ZWQtcmVhc29uOiBEb24ndCB1c2UgYmVjYXVzZSByZWFzb25zCiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICMgTk9URSB0aGF0IHRoaXMgZG9lc24ndCBnZW5lcmF0ZSwgYXMgbm8gYGRlcHJlY2F0ZWQ6IHRydWVgIGlzIHNldAogICAgICAgICAgeC1kZXByZWNhdGVkLXJlYXNvbjogTk9URSB5b3Ugc2hvdWxkbid0IHNlZSB0aGlzLCBhcyB5b3UndmUgbm90IGRlcHJlY2F0ZWQgdGhpcyBmaWVsZApgYGAKCkZyb20gaGVyZSwgd2Ugbm93IGdldCB0d28gZGlmZmVyZW50IGZvcm1zIG9mIHRoZSBzYW1lIGVudW0gZGVmaW5pdGlvbi4KCmBgYGdvCi8vIENsaWVudCBkZWZpbmVzIG1vZGVsIGZvciBDbGllbnQuCnR5cGUgQ2xpZW50IHN0cnVjdCB7CglJZCAgICpmbG9hdDMyIGBqc29uOiJpZCxvbWl0ZW1wdHkiYAoJTmFtZSBzdHJpbmcgICBganNvbjoibmFtZSJgCn0KCi8vIENsaWVudFdpdGhFeHRlbnNpb24gZGVmaW5lcyBtb2RlbCBmb3IgQ2xpZW50V2l0aEV4dGVuc2lvbi4KdHlwZSBDbGllbnRXaXRoRXh0ZW5zaW9uIHN0cnVjdCB7CglJZCAqZmxvYXQzMiBganNvbjoiaWQsb21pdGVtcHR5ImAKCS8vIERlcHJlY2F0ZWQ6IERvbid0IHVzZSBiZWNhdXNlIHJlYXNvbnMKCU5hbWUgc3RyaW5nIGBqc29uOiJuYW1lImAKfQpgYGAKCk5vdGljZSB0aGF0IGJlY2F1c2Ugd2UndmUgbm90IHNldCBgZGVwcmVjYXRlZDogdHJ1ZWAgdG8gdGhlIGBuYW1lYCBmaWVsZCwgaXQgZG9lc24ndCBnZW5lcmF0ZSBhIGRlcHJlY2F0aW9uIHdhcm5pbmcuCgpZb3UgY2FuIHNlZSB0aGlzIGluIG1vcmUgZGV0YWlsIGluIFt0aGUgZXhhbXBsZSBjb2RlXShleGFtcGxlcy9leHRlbnNpb25zL3hkZXByZWNhdGVkcmVhc29uLykuCgo8L2RldGFpbHM+CjwvdGQ+CjwvdHI+Cgo8dHI+Cjx0ZD4KCmB4LW9yZGVyYAoKPC90ZD4KPHRkPgpFeHBsaWNpdGx5IG9yZGVyIHN0cnVjdCBmaWVsZHMKPC90ZD4KPHRkPgo8ZGV0YWlscz4KCldoZXRoZXIgeW91IGxpa2UgY2VydGFpbiBmaWVsZHMgYmVpbmcgb3JkZXJlZCBiZWZvcmUgb3RoZXJzLCBvciB5b3Ugd2FudCB0byBwZXJmb3JtIG1vcmUgZWZmaWNpZW50IHBhY2tpbmcgb2YgeW91ciBzdHJ1Y3RzLCB0aGUgYHgtb3JkZXJgIGV4dGVuc2lvbiBpcyBoZXJlIGZvciB5b3UuCgpOb3RlIHRoYXQgYHgtb3JkZXJgIGlzIDEtaW5kZXhlZCAtIGB4LW9yZGVyOiAwYCBpcyBub3QgYSB2YWxpZCB2YWx1ZS4KCldoZW4gYW4gT3BlbkFQSSB0eXBlIGlzIGRlcHJlY2F0ZWQsIGEgZGVwcmVjYXRpb24gd2FybmluZyBjYW4gYmUgYWRkZWQgaW4gdGhlIEdvRG9jIHVzaW5nIGB4LWRlcHJlY2F0ZWQtcmVhc29uYC4KCldlIGNhbiBzZWUgdGhpcyBhdCBwbGF5IHdpdGggdGhlIGZvbGxvd2luZyBzY2hlbWFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogeC1vcmRlcgpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBDbGllbnQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBhX25hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgQ2xpZW50V2l0aEV4dGVuc2lvbjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGFfbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgeC1vcmRlcjogMgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICB4LW9yZGVyOiAxCmBgYAoKRnJvbSBoZXJlLCB3ZSBub3cgZ2V0IHR3byBkaWZmZXJlbnQgZm9ybXMgb2YgdGhlIHNhbWUgdHlwZSBkZWZpbml0aW9uLgoKYGBgZ28KLy8gQ2xpZW50IGRlZmluZXMgbW9kZWwgZm9yIENsaWVudC4KdHlwZSBDbGllbnQgc3RydWN0IHsKCUFOYW1lICpzdHJpbmcgIGBqc29uOiJhX25hbWUsb21pdGVtcHR5ImAKCUlkICAgICpmbG9hdDMyIGBqc29uOiJpZCxvbWl0ZW1wdHkiYAp9CgovLyBDbGllbnRXaXRoRXh0ZW5zaW9uIGRlZmluZXMgbW9kZWwgZm9yIENsaWVudFdpdGhFeHRlbnNpb24uCnR5cGUgQ2xpZW50V2l0aEV4dGVuc2lvbiBzdHJ1Y3QgewoJSWQgICAgKmZsb2F0MzIgYGpzb246ImlkLG9taXRlbXB0eSJgCglBTmFtZSAqc3RyaW5nICBganNvbjoiYV9uYW1lLG9taXRlbXB0eSJgCn0KYGBgCgpZb3UgY2FuIHNlZSB0aGlzIGluIG1vcmUgZGV0YWlsIGluIFt0aGUgZXhhbXBsZSBjb2RlXShleGFtcGxlcy9leHRlbnNpb25zL3hvcmRlci8pLgoKPC9kZXRhaWxzPgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpgeC1vYXBpLWNvZGVnZW4tb25seS1ob25vdXItZ28tbmFtZWAKCjwvdGQ+Cjx0ZD4KT25seSBob25vdXIgdGhlIGB4LWdvLW5hbWVgIHdoZW4gZ2VuZXJhdGluZyBmaWVsZCBuYW1lcwo8L3RkPgo8dGQ+CjxkZXRhaWxzPgoKPiBbIVdBUk5JTkddCj4gVXNpbmcgdGhpcyBvcHRpb24gbWF5IGxlYWQgdG8gY2FzZXMgd2hlcmUgYG9hcGktY29kZWdlbmAncyByZXdyaXRpbmcgb2YgZmllbGQgbmFtZXMgdG8gcHJldmVudCBjbGFzaGVzIHdpdGggb3RoZXIgdHlwZXMsIG9yIHRvIHByZXZlbnQgaW5jbHVkaW5nIGNoYXJhY3RlcnMgdGhhdCBtYXkgbm90IGJlIHZhbGlkIEdvIGZpZWxkIG5hbWVzLgoKSW4gc29tZSBjYXNlcywgeW91IG1heSBub3Qgd2FudCB1c2UgdGhlIGluYnVpbHQgb3B0aW9ucyBmb3IgY29udmVydGluZyBhbiBPcGVuQVBJIGZpZWxkIG5hbWUgdG8gYSBHbyBmaWVsZCBuYW1lLCBzdWNoIGFzIHRoZSBgbmFtZS1ub3JtYWxpemVyOiAiVG9DYW1lbENhc2VXaXRoSW5pdGlhbGlzbXMiYCwgYW5kIGluc3RlYWQgdHJ1c3QgdGhlIG5hbWUgdGhhdCB5b3UndmUgZGVmaW5lZCBmb3IgdGhlIHR5cGUgYmV0dGVyLgoKSW4gdGhpcyBjYXNlLCB5b3UgY2FuIHVzZSBgeC1vYXBpLWNvZGVnZW4tb25seS1ob25vdXItZ28tbmFtZWAgdG8gZW5mb3JjZSB0aGlzLCBhbG9uZ3NpZGUgc3BlY2lmeWluZyB0aGUgYGFsbG93LXVuZXhwb3J0ZWQtc3RydWN0LWZpZWxkLW5hbWVzYCBjb21wYXRpYmlsaXR5IG9wdGlvbi4KClRoaXMgYWxsb3dzIHlvdSB0byB0YWtlIGEgc3BlYyBzdWNoIGFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogeC1vYXBpLWNvZGVnZW4tb25seS1ob25vdXItZ28tbmFtZQpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBUeXBlV2l0aFVuZXhwb3J0ZWRGaWVsZDoKICAgICAgZGVzY3JpcHRpb246IEEgc3RydWN0IHdpbGwgYmUgb3V0cHV0IHdoZXJlIG9uZSBvZiB0aGUgZmllbGRzIGlzIG5vdCBleHBvcnRlZAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgIyBOT1RFIHRoYXQgdGhlcmUgaXMgYW4gZXhwbGljaXQgdXNhZ2Ugb2YgYSBsb3dlcmNhc2UgY2hhcmFjdGVyCiAgICAgICAgICB4LWdvLW5hbWU6IGFjY291bnRJZGVudGlmaWVyCiAgICAgICAgICB4LW9hcGktY29kZWdlbi1leHRyYS10YWdzOgogICAgICAgICAgICBqc29uOiAiLSIKICAgICAgICAgIHgtb2FwaS1jb2RlZ2VuLW9ubHktaG9ub3VyLWdvLW5hbWU6IHRydWUKYGBgCgpBbmQgd2UnbGwgZ2VuZXJhdGU6CgpgYGBnbwovLyBUeXBlV2l0aFVuZXhwb3J0ZWRGaWVsZCBBIHN0cnVjdCB3aWxsIGJlIG91dHB1dCB3aGVyZSBvbmUgb2YgdGhlIGZpZWxkcyBpcyBub3QgZXhwb3J0ZWQKdHlwZSBUeXBlV2l0aFVuZXhwb3J0ZWRGaWVsZCBzdHJ1Y3QgewoJYWNjb3VudElkZW50aWZpZXIgKnN0cmluZyBganNvbjoiLSJgCglOYW1lICAgICAgICAgICAgICAqc3RyaW5nIGBqc29uOiJuYW1lLG9taXRlbXB0eSJgCn0KYGBgCgpZb3UgY2FuIHNlZSB0aGlzIGluIG1vcmUgZGV0YWlsIGluIFt0aGUgZXhhbXBsZSBjb2RlXShleGFtcGxlcy9leHRlbnNpb25zL3hvYXBpY29kZWdlbm9ubHlob25vdXJnb25hbWUpLgoKPC9kZXRhaWxzPgo8L3RkPgo8L3RyPgoKPC90YWJsZT4KCiMjIFJlcXVlc3QvcmVzcG9uc2UgdmFsaWRhdGlvbiBtaWRkbGV3YXJlCgpUaGUgZ2VuZXJhdGVkIGNvZGUgdGhhdCBgb2FwaS1jb2RlZ2VuYCBwcm9kdWNlcyBoYXMgc29tZSB2YWxpZGF0aW9uIGZvciBzb21lIGluY29taW5nIGRhdGEsIHN1Y2ggYXMgY2hlY2tpbmcgZm9yIHJlcXVpcmVkIGhlYWRlcnMsIGFuZCB3aGVuIHVzaW5nIHRoZSBbc3RyaWN0IHNlcnZlcl0oI3N0cmljdC1zZXJ2ZXIpIHlvdSBnZXQgc29tZSBtb3JlIHZhbGlkYXRpb24gYXJvdW5kIHRoZSBjb3JyZWN0IHVzYWdlIG9mIHRoZSByZXNwb25zZSB0eXBlcy4KCkhvd2V2ZXIsIHRoaXMgbGVhdmVzIGEgbG90IG9mIHZhbGlkYXRpb24gdGhhdCBuZWVkcyB0byBiZSBkb25lLCB3aGljaCBjYW4gYmUgdGVkaW91cyB0byBoYW5kLXdyaXRlIHRoaXMgbG9naWMsIGVzcGVjaWFsbHkgZm9yIGxhcmdlIG9yIGNvbXBsZXggT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4KClRvIHNpbXBsaWZ5IHRoaXMsIHdlIHVzZSBhIG1pZGRsZXdhcmUsIHdoaWNoIHByb3ZpZGVzIHRoZSByZXF1ZXN0IHZhbGlkYXRpb24uIFRoZSBtaWRkbGV3YXJlIHlvdSB3YW50IHRvIHVzZSBkZXBlbmRzIG9uIHRoZSBzZXJ2ZXIgeW91J3JlIHVzaW5nOgoKPHRhYmxlPgoKPHRyPgo8dGg+ClNlcnZlcgo8L3RoPgo8dGg+Ck1pZGRsZXdhcmUgbGlicmFyeQo8L3RoPgo8L3RyPgoKPHRyPgo8dGQ+CgpbQ2hpXShodHRwczovL2dpdGh1Yi5jb20vZ28tY2hpL2NoaSkKCjwvdGQ+Cjx0ZD4KCltuZXRodHRwLW1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vbmV0aHR0cC1taWRkbGV3YXJlKQoKPC90ZD4KPC90cj4KCjx0cj4KPHRkPgoKW0VjaG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9sYWJzdGFjay9lY2hvKQoKPC90ZD4KPHRkPgoKW2VjaG8tbWlkZGxld2FyZV0oaHR0cHM6Ly9naXRodWIuY29tL29hcGktY29kZWdlbi9lY2hvLW1pZGRsZXdhcmUpCgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpbRmliZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb2ZpYmVyL2ZpYmVyKQoKPC90ZD4KPHRkPgoKW2ZpYmVyLW1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vZmliZXItbWlkZGxld2FyZSkKCjwvdGQ+Cgo8L3RyPgoKCjx0cj4KPHRkPgoKW0dpbl0oaHR0cHM6Ly9naXRodWIuY29tL2dpbi1nb25pYy9naW4pCgo8L3RkPgo8dGQ+CgpbZ2luLW1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vZ2luLW1pZGRsZXdhcmUpCgo8L3RkPgo8L3RyPgoKPHRyPgo8dGQ+CgpbZ29yaWxsYS9tdXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb3JpbGxhL211eCkKCjwvdGQ+Cjx0ZD4KCltuZXRodHRwLW1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vbmV0aHR0cC1taWRkbGV3YXJlKQoKPC90ZD4KCjwvdHI+Cgo8dHI+Cjx0ZD4KCltJcmlzXShodHRwczovL2dpdGh1Yi5jb20va2F0YXJhcy9pcmlzKQoKPC90ZD4KPHRkPgoKW2lyaXMtbWlkZGxld2FyZV0oaHR0cHM6Ly9naXRodWIuY29tL29hcGktY29kZWdlbi9pcmlzLW1pZGRsZXdhcmUpCgo8L3RkPgoKPC90cj4KCjx0cj4KPHRkPgoKWzEuMjIrIGBuZXQvaHR0cGBdKGh0dHBzOi8vcGtnLmdvLmRldi9uZXQvaHR0cCkKCjwvdGQ+Cjx0ZD4KCltuZXRodHRwLW1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vbmV0aHR0cC1taWRkbGV3YXJlKQoKPC90ZD4KCjwvdHI+Cgo8L3RhYmxlPgoKPiBbIU5PVEVdCj4gSXQgaXMgW25vdCBjdXJyZW50bHkgcG9zc2libGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9pc3N1ZXMvMTAzOCkgdG8gdmFsaWRhdGUgdGhlIEhUVFAgcmVzcG9uc2Ugd2l0aCBhIG1pZGRsZXdhcmUuCgo+IFshTk9URV0KPiBXZSdyZSBhbHNvIFtleHBsb3JpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vZXhwL2lzc3Vlcy8xKSB0aGUgdXNlIG9mIFtsaWJvcGVuYXBpLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGktdmFsaWRhdG9yLykgZm9yIHJlcXVlc3QvcmVzcG9uc2UgdmFsaWRhdGlvbiBtaWRkbGV3YXJlCgojIyBJbXBsZW1lbnRpbmcgc2VjdXJpdHkKCklmIHlvdSdyZSB1c2luZyBhIHNwZWNpZmljYXRpb24gd2l0aCBbU2VjdXJpdHkgU2NoZW1lc10oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zI3NlY3VyaXR5LXNjaGVtZS1vYmplY3QpIGFuZCBbU2VjdXJpdHkgUmVxdWlyZW1lbnRzXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMjc2VjdXJpdHktcmVxdWlyZW1lbnQtb2JqZWN0KSwgeW91J2xsIHdhbnQgdG8gYXV0aGVudGljYXRlIGFuZCBhdXRob3JpemUgcmVxdWVzdHMuCgojIyMgT24gdGhlIHNlcnZlcgoKPiBbIU5PVEVdCj4gT3V0LW9mLXRoZS1ib3gsIHRoZSBzZXJ2ZXItc2lkZSBjb2RlIGdlbmVyYXRlZCBieSBgb2FwaS1jb2RlZ2VuYCBkb2VzIG5vdCBwcm92aWRlIHNlY3VyaXR5IHZhbGlkYXRpb24uCj4KPiBUbyBwZXJmb3JtIGF1dGhlbnRpY2F0aW9uLCB5b3Ugd2lsbCBuZWVkIHRvIHVzZSB0aGUgW3ZhbGlkYXRpb24gbWlkZGxld2FyZV0oI3JlcXVlc3QtcmVzcG9uc2UtdmFsaWRhdGlvbi1taWRkbGV3YXJlKS4KPgo+IEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gW2ltcGxlbWVudCBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uIGluIHRoZSBnZW5lcmF0ZWQgY29kZV0oaHR0cHM6Ly9naXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL2lzc3Vlcy8xNTI0KQoKVG8gc2VlIGhvdyB0aGlzIGNhbiB3b3JrLCBjaGVjayBvdXQgdGhlIFthdXRoZW50aWNhdGVkIEFQSSBleGFtcGxlXShleGFtcGxlcy9hdXRoZW50aWNhdGVkLWFwaS9lY2hvKS4KCiMjIyBPbiB0aGUgY2xpZW50CgpXaXRoIGEgZ2VuZXJhdGVkIGNsaWVudCwgeW91J2xsIHdhbnQgdG8gdXNlIHRoZSBjbGllbnQncyBnZW5lcmF0ZWQgYFdpdGhSZXF1ZXN0RWRpdG9yRm5gIGZ1bmN0aW9uIHRvIHBhc3MgaW4gYSBnaXZlbiByZXF1ZXN0IGVkaXRvciBgUmVxdWVzdEVkaXRvckZuYC4KCkZvciBpbnN0YW5jZToKCmBgYGdvCmltcG9ydCAoCgkiY29udGV4dCIKCSJmbXQiCgkibG9nIgoKCSJnaXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIvcGtnL3NlY3VyaXR5cHJvdmlkZXIiCikKCmZ1bmMgbWFpbigpIHsKCWJhc2ljQXV0aCwgZXJyIDo9IHNlY3VyaXR5cHJvdmlkZXIuTmV3U2VjdXJpdHlQcm92aWRlckJhc2ljQXV0aCgibXlfdXNlciIsICJteV9wYXNzIikKCWlmIGVyciAhPSBuaWwgewoJCWxvZy5GYXRhbChlcnIpCgl9CgoJY2xpZW50LCBlcnIgOj0gTmV3Q2xpZW50KCJodHRwczovLy4uLi4iLCBXaXRoUmVxdWVzdEVkaXRvckZuKGJhc2ljQXV0aC5JbnRlcmNlcHQpKQoJaWYgZXJyICE9IG5pbCB7CgkJbG9nLkZhdGFsKGVycikKCX0KCglyZXNwLCBlcnIgOj0gY2xpZW50LkdldENsaWVudChjb250ZXh0LlRPRE8oKSkKCWlmIGVyciAhPSBuaWwgewoJCWxvZy5GYXRhbChlcnIpCgl9CglmbXQuUHJpbnRmKCJyZXNwLlN0YXR1c0NvZGU6ICV2XG4iLCByZXNwLlN0YXR1c0NvZGUpCn0KYGBgCgpOb3RpY2UgdGhhdCB3ZSdyZSB1c2luZyBhIHByZS1idWlsdCBwcm92aWRlciBmcm9tIHRoZSBbYHBrZy9zZWN1cml0eXByb3ZpZGVyYCBwYWNrYWdlXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9vYXBpLWNvZGVnZW4vb2FwaS1jb2RlZ2VuL3YyL3BrZy9zZWN1cml0eXByb3ZpZGVyKSwgd2hpY2ggaGFzIHNvbWUgaW5idWlsdCBzdXBwb3J0IGZvciBvdGhlciB0eXBlcyBvZiBhdXRoZW50aWNhdGlvbiwgdG9vLgoKIyMgQ3VzdG9tIGNvZGUgZ2VuZXJhdGlvbgoKSXQgaXMgcG9zc2libGUgdG8gZXh0ZW5kIHRoZSBpbmJ1aWx0IGNvZGUgZ2VuZXJhdGlvbiBmcm9tIGBvYXBpLWNvZGVnZW5gIHVzaW5nIEdvJ3MgYHRleHQvdGVtcGxhdGVgcy4KCllvdSBjYW4gc3BlY2lmeSwgdGhyb3VnaCB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZSwgdGhlIGBvdXRwdXQtb3B0aW9ucy51c2VyLXRlbXBsYXRlc2Agc2V0dGluZyB0byBvdmVycmlkZSB0aGUgaW5idWlsdCB0ZW1wbGF0ZXMgYW5kIHVzZSBhIHVzZXItZGVmaW5lZCB0ZW1wbGF0ZS4KCj4gWyFOT1RFXQo+IEZpbGVuYW1lcyBnaXZlbiB0byB0aGUgYHVzZXItdGVtcGxhdGVzYCBjb25maWd1cmF0aW9uIG11c3QgKipleGFjdGx5KiogbWF0Y2ggdGhlIGZpbGVuYW1lIHRoYXQgYG9hcGktY29kZWdlbmAgaXMgbG9va2luZyBmb3IKCiMjIyBMb2NhbCBwYXRocwoKV2l0aGluIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlLCB5b3UgY2FuIHNwZWNpZnkgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHMgdG8gYSBmaWxlIHRvIHJlZmVyZW5jZSBmb3IgdGhlIHRlbXBsYXRlLCBzdWNoIGFzOgoKYGBgeWFtbAojIHlhbWwtbGFuZ3VhZ2Utc2VydmVyOiAkc2NoZW1hPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9IRUFEL2NvbmZpZ3VyYXRpb24tc2NoZW1hLmpzb24KIyAuLi4Kb3V0cHV0LW9wdGlvbnM6CiAgdXNlci10ZW1wbGF0ZXM6CiAgICBjbGllbnQtd2l0aC1yZXNwb25zZXMudG1wbDogLi9jdXN0b20tdGVtcGxhdGUudG1wbAogICAgYWRkaXRpb25hbC1wcm9wZXJ0aWVzLnRtcGw6IC90bXAvZm9vLmJhcgogICAgdHlwZWRlZi50bXBsOiBuby1wcmVmaXgudG1wbApgYGAKCj4gWyFXQVJOXQo+IFdlIGRvIG5vdCBpbnRlcnBvbGF0ZSBgfmAgb3IgYCRIT01FYCAob3Igb3RoZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzKSBpbiBwYXRocyBnaXZlbgoKIyMjIEhUVFBTIHBhdGhzCgpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHVzZSBIVFRQUyBVUkxzLgoKPiBbIVdBUk5JTkddCj4gQWx0aG91Z2ggcG9zc2libGUsIHRoaXMgZG9lcyBsZWFkIHRvIGBvYXBpLWNvZGVnZW5gIGV4ZWN1dGlvbnMgbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHJlcHJvZHVjaWJsZS4gSXQncyByZWNvbW1lbmRlZCB0byB2ZW5kb3IgKGNvcHkpIHRoZSBPcGVuQVBJIHNwZWMgaW50byB5b3VyIGNvZGViYXNlIGFuZCByZWZlcmVuY2UgaXQgbG9jYWxseQo+Cj4gU2VlIFt0aGlzIGJsb2cgcG9zdF0oaHR0cHM6Ly93d3cuanZ0Lm1lL3Bvc3RzLzIwMjQvMDQvMjcvZ2l0aHViLWFjdGlvbnMtdXBkYXRlLWZpbGUvKSBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdG8gdXNlIEdpdEh1YiBBY3Rpb25zIHRvIG1hbmFnZSB0aGUgdXBkYXRlcyBvZiBmaWxlcyBhY3Jvc3MgcmVwb3MKPgo+IFRoaXMgd2lsbCBiZSBkaXNhYmxlZCBieSBkZWZhdWx0IChidXQgcG9zc2libGUgdG8gdHVybiBiYWNrIG9uIHZpYSBjb25maWd1cmF0aW9uKSBbaW4gdGhlIGZ1dHVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL2lzc3Vlcy8xNTY0KQoKVG8gdXNlIGl0LCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb246CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6ICRzY2hlbWE9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL0hFQUQvY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbgojIC4uLgpvdXRwdXQtb3B0aW9uczoKICB1c2VyLXRlbXBsYXRlczoKICAgICMgVGhlIGZvbGxvd2luZyBhcmUgcmVmZXJlbmNpbmcgYSB2ZXJzaW9uIG9mIHRoZSBkZWZhdWx0IGNsaWVudC13aXRoLXJlc3BvbnNlcy50bXBsIGZpbGUsIGJ1dCBsb2FkZWQgaW4gdGhyb3VnaCBHaXRIdWIncyByYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLiBUaGUgZ2VuZXJhbCBmb3JtIHRvIHVzZSByYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tIGlzIGFzIGZvbGxvd3MgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzx1c2VybmFtZT4vPHByb2plY3Q+Lzxjb21taXRpc2g+L3BhdGgvdG8vdGVtcGxhdGUvdGVtcGxhdGUudG1wbAoKICAgICMgQWx0ZXJuYXRpdmVseSB1c2luZyByYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tIHdpdGggYSBoYXNoCiAgICBjbGllbnQtd2l0aC1yZXNwb25zZXMudG1wbDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL2FkNWVhZGE0ZjNjY2MyOGE4ODQ3N2NlZjYyZWEyMWMxN2ZjOGFhMDEvcGtnL2NvZGVnZW4vdGVtcGxhdGVzL2NsaWVudC13aXRoLXJlc3BvbnNlcy50bXBsCiAgICAjIEFsdGVybmF0aXZlbHkgdXNpbmcgcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSB3aXRoIGEgdGFnCiAgICBjbGllbnQtd2l0aC1yZXNwb25zZXMudG1wbDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL3YyLjEuMC9wa2cvY29kZWdlbi90ZW1wbGF0ZXMvY2xpZW50LXdpdGgtcmVzcG9uc2VzLnRtcGwKICAgICMgQWx0ZXJuYXRpdmVseSB1c2luZyByYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tIHdpdGggYSBicmFuY2gKICAgIGNsaWVudC13aXRoLXJlc3BvbnNlcy50bXBsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vbWFzdGVyL3BrZy9jb2RlZ2VuL3RlbXBsYXRlcy9jbGllbnQtd2l0aC1yZXNwb25zZXMudG1wbApgYGAKCj4gWyFXQVJOSU5HXQo+IElmIHVzaW5nIFVSTHMgdGhhdCBwdWxsIGxvY2F0aW9ucyBmcm9tIGEgR2l0IHJlcG8sIHN1Y2ggYXMgYHJhdy5naXRodWJ1c2VyY29udGVudC5jb21gLCBpdCBpcyBzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIHVzZSBhIHRhZyBvciBhIHJhdyBjb21taXQgaGFzaCBpbnN0ZWFkIG9mIGEgYnJhbmNoIGxpa2UgYG1haW5gLiBUcmFja2luZyBhIGJyYW5jaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIEFQSSBkcmlmdCwgYW5kIGxvc3Mgb2YgdGhlIGFiaWxpdHkgdG8gcmVwcm9kdWNlIGEgYnVpbGQuCgojIyMgSW5saW5lIHRlbXBsYXRlCgpJdCdzIGFsc28gcG9zc2libGUgdG8gc2V0IHRoZSB0ZW1wbGF0ZXMgaW5saW5lIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGU6CgpgYGB5YW1sCiMgeWFtbC1sYW5ndWFnZS1zZXJ2ZXI6ICRzY2hlbWE9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL0hFQUQvY29uZmlndXJhdGlvbi1zY2hlbWEuanNvbgojIC4uLgpvdXRwdXQtb3B0aW9uczoKICB1c2VyLXRlbXBsYXRlczoKICAgICMgTk9URSB0aGUgdXNlIG9mIHRoZSBgfGAgKHBpcGUgc3ltYm9sKSBoZXJlIHRvIGRlbm90ZSB0aGF0IHRoaXMgaXMgYQogICAgIyBtdWx0aS1saW5lIHN0YXRlbWVudCB0aGF0IHNob3VsZCBwcmVzZXJ2ZSBuZXdsaW5lcy4gTW9yZSByZWFkaW5nOgogICAgIyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg3MDgxNTYvMjI1NzAzOCBhbmQKICAgICMgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE1MzY1Mjk2LzIyNTcwMzgKICAgIGNsaWVudC13aXRoLXJlc3BvbnNlcy50bXBsOiB8CiAgICAgICAgLy8gQ2xpZW50V2l0aFJlc3BvbnNlcyBidWlsZHMgb24gQ2xpZW50SW50ZXJmYWNlIHRvIG9mZmVyIHJlc3BvbnNlIHBheWxvYWRzCiAgICAgICAgdHlwZSBDbGllbnRXaXRoUmVzcG9uc2VzIHN0cnVjdCB7CiAgICAgICAgICAgIENsaWVudEludGVyZmFjZQogICAgICAgIH0KICAgICAgICAuLi4KYGBgCgojIyMgVXNpbmcgdGhlIEdvIHBhY2thZ2UKCkFsdGVybmF0aXZlbHksIHlvdSBhcmUgYWJsZSB0byB1c2UgdGhlIHVuZGVybHlpbmcgY29kZSBnZW5lcmF0aW9uIGFzIGEgcGFja2FnZSwgd2hpY2ggW3dpbGwgYmUgZG9jdW1lbnRlZCBpbiB0aGUgZnV0dXJlXShodHRwczovL2dpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vaXNzdWVzLzE0ODcpLgoKIyMgQWRkaXRpb25hbCBQcm9wZXJ0aWVzIChgYWRkaXRpb25hbFByb3BlcnRpZXNgKQoKW09wZW5BUEkgU2NoZW1hc10oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zLmh0bWwjc2NoZW1hLW9iamVjdCkgaW1wbGljaXRseSBhY2NlcHQgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzYCwgbWVhbmluZyB0aGF0IGFueSBmaWVsZHMgcHJvdmlkZWQsIGJ1dCBub3QgZXhwbGljaXRseSBkZWZpbmVkIHZpYSBwcm9wZXJ0aWVzIG9uIHRoZSBzY2hlbWEgYXJlIGFjY2VwdGVkIGFzIGlucHV0LCBhbmQgcHJvcGFnYXRlZC4gV2hlbiB1bnNwZWNpZmllZCwgT3BlbkFQSSBkZWZpbmVzIHRoYXQgdGhlIGBhZGRpdGlvbmFsUHJvcGVydGllc2AgZmllbGQgaXMgYXNzdW1lZCB0byBiZSBgdHJ1ZWAuCgpGb3Igc2ltcGxpY2l0eSwgYW5kIHRvIHJlbW92ZSBhIGZhaXIgYml0IG9mIGR1cGxpY2F0aW9uIGFuZCBib2lsZXJwbGF0ZSwgYG9hcGktY29kZWdlbmAgZGVjaWRlcyB0byBpZ25vcmUgdGhlIGltcGxpY2l0IGBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZWAsIGFuZCBpbnN0ZWFkIHJlcXVpcmVzIHlvdSB0byBzcGVjaWZ5IHRoZSBgYWRkaXRpb25hbFByb3BlcnRpZXNgIGtleSB0byBnZW5lcmF0ZSB0aGUgYm9pbGVycGxhdGUuCgo+IFshTk9URV0KPiBJbiB0aGUgZnV0dXJlIFt0aGlzIHdpbGwgYmUgcG9zc2libGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9pc3N1ZXMvMTUxNCkgdG8gZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHksIGFuZCBob25vdXIgdGhlIGltcGxpY2l0IGBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZWAKCkJlbG93IHlvdSBjYW4gc2VlIHNvbWUgZXhhbXBsZXMgb2YgaG93IGBhZGRpdGlvbmFsUHJvcGVydGllc2AgYWZmZWN0cyB0aGUgZ2VuZXJhdGVkIGNvZGUuCgojIyMgSW1wbGljaXQgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlYCAvIG5vIGBhZGRpdGlvbmFsUHJvcGVydGllc2Agc2V0CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFRoaW5nOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBpZAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAjIGltcGxpY2l0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlCmBgYAoKV2lsbCBnZW5lcmF0ZToKCmBgYGdvCi8vIFRoaW5nIGRlZmluZXMgbW9kZWwgZm9yIFRoaW5nLgp0eXBlIFRoaW5nIHN0cnVjdCB7CglJZCBpbnQgYGpzb246ImlkImAKfQoKLy8gd2l0aCBubyBnZW5lcmF0ZWQgYm9pbGVycGxhdGUgbm9yIHRoZSBgQWRkaXRpb25hbFByb3BlcnRpZXNgIGZpZWxkCmBgYAoKIyMjIEV4cGxpY2l0IGBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZWAKCmBgYHlhbWwKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgVGhpbmc6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlkCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICMgZXhwbGljaXQgdHJ1ZQogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZQpgYGAKCldpbGwgZ2VuZXJhdGU6CgpgYGBnbwovLyBUaGluZyBkZWZpbmVzIG1vZGVsIGZvciBUaGluZy4KdHlwZSBUaGluZyBzdHJ1Y3QgewoJSWQgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBganNvbjoiaWQiYAoJQWRkaXRpb25hbFByb3BlcnRpZXMgbWFwW3N0cmluZ11pbnRlcmZhY2V7fSBganNvbjoiLSJgCn0KCi8vIHdpdGggZ2VuZXJhdGVkIGJvaWxlcnBsYXRlIGJlbG93CmBgYAoKPGRldGFpbHM+Cgo8c3VtbWFyeT5Cb2lsZXJwbGF0ZTwvc3VtbWFyeT4KCmBgYGdvCgovLyBHZXR0ZXIgZm9yIGFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgVGhpbmcuIFJldHVybnMgdGhlIHNwZWNpZmllZAovLyBlbGVtZW50IGFuZCB3aGV0aGVyIGl0IHdhcyBmb3VuZApmdW5jIChhIFRoaW5nKSBHZXQoZmllbGROYW1lIHN0cmluZykgKHZhbHVlIGludGVyZmFjZXt9LCBmb3VuZCBib29sKSB7CglpZiBhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzICE9IG5pbCB7CgkJdmFsdWUsIGZvdW5kID0gYS5BZGRpdGlvbmFsUHJvcGVydGllc1tmaWVsZE5hbWVdCgl9CglyZXR1cm4KfQoKLy8gU2V0dGVyIGZvciBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIFRoaW5nCmZ1bmMgKGEgKlRoaW5nKSBTZXQoZmllbGROYW1lIHN0cmluZywgdmFsdWUgaW50ZXJmYWNle30pIHsKCWlmIGEuQWRkaXRpb25hbFByb3BlcnRpZXMgPT0gbmlsIHsKCQlhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gbWFrZShtYXBbc3RyaW5nXWludGVyZmFjZXt9KQoJfQoJYS5BZGRpdGlvbmFsUHJvcGVydGllc1tmaWVsZE5hbWVdID0gdmFsdWUKfQoKLy8gT3ZlcnJpZGUgZGVmYXVsdCBKU09OIGhhbmRsaW5nIGZvciBUaGluZyB0byBoYW5kbGUgQWRkaXRpb25hbFByb3BlcnRpZXMKZnVuYyAoYSAqVGhpbmcpIFVubWFyc2hhbEpTT04oYiBbXWJ5dGUpIGVycm9yIHsKCW9iamVjdCA6PSBtYWtlKG1hcFtzdHJpbmddanNvbi5SYXdNZXNzYWdlKQoJZXJyIDo9IGpzb24uVW5tYXJzaGFsKGIsICZvYmplY3QpCglpZiBlcnIgIT0gbmlsIHsKCQlyZXR1cm4gZXJyCgl9CgoJaWYgcmF3LCBmb3VuZCA6PSBvYmplY3RbImlkIl07IGZvdW5kIHsKCQllcnIgPSBqc29uLlVubWFyc2hhbChyYXcsICZhLklkKQoJCWlmIGVyciAhPSBuaWwgewoJCQlyZXR1cm4gZm10LkVycm9yZigiZXJyb3IgcmVhZGluZyAnaWQnOiAldyIsIGVycikKCQl9CgkJZGVsZXRlKG9iamVjdCwgImlkIikKCX0KCglpZiBsZW4ob2JqZWN0KSAhPSAwIHsKCQlhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gbWFrZShtYXBbc3RyaW5nXWludGVyZmFjZXt9KQoJCWZvciBmaWVsZE5hbWUsIGZpZWxkQnVmIDo9IHJhbmdlIG9iamVjdCB7CgkJCXZhciBmaWVsZFZhbCBpbnRlcmZhY2V7fQoJCQllcnIgOj0ganNvbi5Vbm1hcnNoYWwoZmllbGRCdWYsICZmaWVsZFZhbCkKCQkJaWYgZXJyICE9IG5pbCB7CgkJCQlyZXR1cm4gZm10LkVycm9yZigiZXJyb3IgdW5tYXJzaGFsaW5nIGZpZWxkICVzOiAldyIsIGZpZWxkTmFtZSwgZXJyKQoJCQl9CgkJCWEuQWRkaXRpb25hbFByb3BlcnRpZXNbZmllbGROYW1lXSA9IGZpZWxkVmFsCgkJfQoJfQoJcmV0dXJuIG5pbAp9CgovLyBPdmVycmlkZSBkZWZhdWx0IEpTT04gaGFuZGxpbmcgZm9yIFRoaW5nIHRvIGhhbmRsZSBBZGRpdGlvbmFsUHJvcGVydGllcwpmdW5jIChhIFRoaW5nKSBNYXJzaGFsSlNPTigpIChbXWJ5dGUsIGVycm9yKSB7Cgl2YXIgZXJyIGVycm9yCglvYmplY3QgOj0gbWFrZShtYXBbc3RyaW5nXWpzb24uUmF3TWVzc2FnZSkKCglvYmplY3RbImlkIl0sIGVyciA9IGpzb24uTWFyc2hhbChhLklkKQoJaWYgZXJyICE9IG5pbCB7CgkJcmV0dXJuIG5pbCwgZm10LkVycm9yZigiZXJyb3IgbWFyc2hhbGluZyAnaWQnOiAldyIsIGVycikKCX0KCglmb3IgZmllbGROYW1lLCBmaWVsZCA6PSByYW5nZSBhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzIHsKCQlvYmplY3RbZmllbGROYW1lXSwgZXJyID0ganNvbi5NYXJzaGFsKGZpZWxkKQoJCWlmIGVyciAhPSBuaWwgewoJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJlcnJvciBtYXJzaGFsaW5nICclcyc6ICV3IiwgZmllbGROYW1lLCBlcnIpCgkJfQoJfQoJcmV0dXJuIGpzb24uTWFyc2hhbChvYmplY3QpCn0KYGBgCgo8L2RldGFpbHM+CgoKIyMjIGBhZGRpdGlvbmFsUHJvcGVydGllc2AgYXMgYGludGVnZXJgcwoKYGBgeWFtbApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBUaGluZzoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaWQKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgIyBzaW1wbGUgdHlwZQogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoKICAgICAgICB0eXBlOiBpbnRlZ2VyCmBgYAoKV2lsbCBnZW5lcmF0ZToKCmBgYGdvCi8vIFRoaW5nIGRlZmluZXMgbW9kZWwgZm9yIFRoaW5nLgp0eXBlIFRoaW5nIHN0cnVjdCB7CglJZCAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICBganNvbjoiaWQiYAoJQWRkaXRpb25hbFByb3BlcnRpZXMgbWFwW3N0cmluZ11pbnQgYGpzb246Ii0iYAp9CgovLyB3aXRoIGdlbmVyYXRlZCBib2lsZXJwbGF0ZSBiZWxvdwpgYGAKCjxkZXRhaWxzPgoKPHN1bW1hcnk+Qm9pbGVycGxhdGU8L3N1bW1hcnk+CgpgYGBnbwovLyBHZXR0ZXIgZm9yIGFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgVGhpbmcuIFJldHVybnMgdGhlIHNwZWNpZmllZAovLyBlbGVtZW50IGFuZCB3aGV0aGVyIGl0IHdhcyBmb3VuZApmdW5jIChhIFRoaW5nKSBHZXQoZmllbGROYW1lIHN0cmluZykgKHZhbHVlIGludCwgZm91bmQgYm9vbCkgewoJaWYgYS5BZGRpdGlvbmFsUHJvcGVydGllcyAhPSBuaWwgewoJCXZhbHVlLCBmb3VuZCA9IGEuQWRkaXRpb25hbFByb3BlcnRpZXNbZmllbGROYW1lXQoJfQoJcmV0dXJuCn0KCi8vIFNldHRlciBmb3IgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBUaGluZwpmdW5jIChhICpUaGluZykgU2V0KGZpZWxkTmFtZSBzdHJpbmcsIHZhbHVlIGludCkgewoJaWYgYS5BZGRpdGlvbmFsUHJvcGVydGllcyA9PSBuaWwgewoJCWEuQWRkaXRpb25hbFByb3BlcnRpZXMgPSBtYWtlKG1hcFtzdHJpbmddaW50KQoJfQoJYS5BZGRpdGlvbmFsUHJvcGVydGllc1tmaWVsZE5hbWVdID0gdmFsdWUKfQoKLy8gT3ZlcnJpZGUgZGVmYXVsdCBKU09OIGhhbmRsaW5nIGZvciBUaGluZyB0byBoYW5kbGUgQWRkaXRpb25hbFByb3BlcnRpZXMKZnVuYyAoYSAqVGhpbmcpIFVubWFyc2hhbEpTT04oYiBbXWJ5dGUpIGVycm9yIHsKCW9iamVjdCA6PSBtYWtlKG1hcFtzdHJpbmddanNvbi5SYXdNZXNzYWdlKQoJZXJyIDo9IGpzb24uVW5tYXJzaGFsKGIsICZvYmplY3QpCglpZiBlcnIgIT0gbmlsIHsKCQlyZXR1cm4gZXJyCgl9CgoJaWYgcmF3LCBmb3VuZCA6PSBvYmplY3RbImlkIl07IGZvdW5kIHsKCQllcnIgPSBqc29uLlVubWFyc2hhbChyYXcsICZhLklkKQoJCWlmIGVyciAhPSBuaWwgewoJCQlyZXR1cm4gZm10LkVycm9yZigiZXJyb3IgcmVhZGluZyAnaWQnOiAldyIsIGVycikKCQl9CgkJZGVsZXRlKG9iamVjdCwgImlkIikKCX0KCglpZiBsZW4ob2JqZWN0KSAhPSAwIHsKCQlhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gbWFrZShtYXBbc3RyaW5nXWludCkKCQlmb3IgZmllbGROYW1lLCBmaWVsZEJ1ZiA6PSByYW5nZSBvYmplY3QgewoJCQl2YXIgZmllbGRWYWwgaW50CgkJCWVyciA6PSBqc29uLlVubWFyc2hhbChmaWVsZEJ1ZiwgJmZpZWxkVmFsKQoJCQlpZiBlcnIgIT0gbmlsIHsKCQkJCXJldHVybiBmbXQuRXJyb3JmKCJlcnJvciB1bm1hcnNoYWxpbmcgZmllbGQgJXM6ICV3IiwgZmllbGROYW1lLCBlcnIpCgkJCX0KCQkJYS5BZGRpdGlvbmFsUHJvcGVydGllc1tmaWVsZE5hbWVdID0gZmllbGRWYWwKCQl9Cgl9CglyZXR1cm4gbmlsCn0KCi8vIE92ZXJyaWRlIGRlZmF1bHQgSlNPTiBoYW5kbGluZyBmb3IgVGhpbmcgdG8gaGFuZGxlIEFkZGl0aW9uYWxQcm9wZXJ0aWVzCmZ1bmMgKGEgVGhpbmcpIE1hcnNoYWxKU09OKCkgKFtdYnl0ZSwgZXJyb3IpIHsKCXZhciBlcnIgZXJyb3IKCW9iamVjdCA6PSBtYWtlKG1hcFtzdHJpbmddanNvbi5SYXdNZXNzYWdlKQoKCW9iamVjdFsiaWQiXSwgZXJyID0ganNvbi5NYXJzaGFsKGEuSWQpCglpZiBlcnIgIT0gbmlsIHsKCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJlcnJvciBtYXJzaGFsaW5nICdpZCc6ICV3IiwgZXJyKQoJfQoKCWZvciBmaWVsZE5hbWUsIGZpZWxkIDo9IHJhbmdlIGEuQWRkaXRpb25hbFByb3BlcnRpZXMgewoJCW9iamVjdFtmaWVsZE5hbWVdLCBlcnIgPSBqc29uLk1hcnNoYWwoZmllbGQpCgkJaWYgZXJyICE9IG5pbCB7CgkJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoImVycm9yIG1hcnNoYWxpbmcgJyVzJzogJXciLCBmaWVsZE5hbWUsIGVycikKCQl9Cgl9CglyZXR1cm4ganNvbi5NYXJzaGFsKG9iamVjdCkKfQpgYGAKCjwvZGV0YWlscz4KCiMjIyBgYWRkaXRpb25hbFByb3BlcnRpZXNgIHdpdGggYW4gb2JqZWN0CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFRoaW5nOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBpZAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAjIG9iamVjdAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoKICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgZm9vOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKYGBgCgpXaWxsIGdlbmVyYXRlOgoKYGBgZ28KLy8gVGhpbmcgZGVmaW5lcyBtb2RlbCBmb3IgVGhpbmcuCnR5cGUgVGhpbmcgc3RydWN0IHsKCUlkICAgICAgICAgICAgICAgICAgIGludCBganNvbjoiaWQiYAoJQWRkaXRpb25hbFByb3BlcnRpZXMgbWFwW3N0cmluZ11zdHJ1Y3QgewoJCUZvbyAqc3RyaW5nIGBqc29uOiJmb28sb21pdGVtcHR5ImAKCX0gYGpzb246Ii0iYAp9CgovLyB3aXRoIGdlbmVyYXRlZCBib2lsZXJwbGF0ZSBiZWxvdwpgYGAKCjxkZXRhaWxzPgoKPHN1bW1hcnk+Qm9pbGVycGxhdGU8L3N1bW1hcnk+CgpgYGBnbwovLyBHZXR0ZXIgZm9yIGFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgVGhpbmcuIFJldHVybnMgdGhlIHNwZWNpZmllZAovLyBlbGVtZW50IGFuZCB3aGV0aGVyIGl0IHdhcyBmb3VuZApmdW5jIChhIFRoaW5nKSBHZXQoZmllbGROYW1lIHN0cmluZykgKHZhbHVlIHN0cnVjdCB7CglGb28gKnN0cmluZyBganNvbjoiZm9vLG9taXRlbXB0eSJgCn0sIGZvdW5kIGJvb2wpIHsKCWlmIGEuQWRkaXRpb25hbFByb3BlcnRpZXMgIT0gbmlsIHsKCQl2YWx1ZSwgZm91bmQgPSBhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzW2ZpZWxkTmFtZV0KCX0KCXJldHVybgp9CgovLyBTZXR0ZXIgZm9yIGFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgVGhpbmcKZnVuYyAoYSAqVGhpbmcpIFNldChmaWVsZE5hbWUgc3RyaW5nLCB2YWx1ZSBzdHJ1Y3QgewoJRm9vICpzdHJpbmcgYGpzb246ImZvbyxvbWl0ZW1wdHkiYAp9KSB7CglpZiBhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzID09IG5pbCB7CgkJYS5BZGRpdGlvbmFsUHJvcGVydGllcyA9IG1ha2UobWFwW3N0cmluZ11zdHJ1Y3QgewoJCQlGb28gKnN0cmluZyBganNvbjoiZm9vLG9taXRlbXB0eSJgCgkJfSkKCX0KCWEuQWRkaXRpb25hbFByb3BlcnRpZXNbZmllbGROYW1lXSA9IHZhbHVlCn0KCi8vIE92ZXJyaWRlIGRlZmF1bHQgSlNPTiBoYW5kbGluZyBmb3IgVGhpbmcgdG8gaGFuZGxlIEFkZGl0aW9uYWxQcm9wZXJ0aWVzCmZ1bmMgKGEgKlRoaW5nKSBVbm1hcnNoYWxKU09OKGIgW11ieXRlKSBlcnJvciB7CglvYmplY3QgOj0gbWFrZShtYXBbc3RyaW5nXWpzb24uUmF3TWVzc2FnZSkKCWVyciA6PSBqc29uLlVubWFyc2hhbChiLCAmb2JqZWN0KQoJaWYgZXJyICE9IG5pbCB7CgkJcmV0dXJuIGVycgoJfQoKCWlmIHJhdywgZm91bmQgOj0gb2JqZWN0WyJpZCJdOyBmb3VuZCB7CgkJZXJyID0ganNvbi5Vbm1hcnNoYWwocmF3LCAmYS5JZCkKCQlpZiBlcnIgIT0gbmlsIHsKCQkJcmV0dXJuIGZtdC5FcnJvcmYoImVycm9yIHJlYWRpbmcgJ2lkJzogJXciLCBlcnIpCgkJfQoJCWRlbGV0ZShvYmplY3QsICJpZCIpCgl9CgoJaWYgbGVuKG9iamVjdCkgIT0gMCB7CgkJYS5BZGRpdGlvbmFsUHJvcGVydGllcyA9IG1ha2UobWFwW3N0cmluZ11zdHJ1Y3QgewoJCQlGb28gKnN0cmluZyBganNvbjoiZm9vLG9taXRlbXB0eSJgCgkJfSkKCQlmb3IgZmllbGROYW1lLCBmaWVsZEJ1ZiA6PSByYW5nZSBvYmplY3QgewoJCQl2YXIgZmllbGRWYWwgc3RydWN0IHsKCQkJCUZvbyAqc3RyaW5nIGBqc29uOiJmb28sb21pdGVtcHR5ImAKCQkJfQoJCQllcnIgOj0ganNvbi5Vbm1hcnNoYWwoZmllbGRCdWYsICZmaWVsZFZhbCkKCQkJaWYgZXJyICE9IG5pbCB7CgkJCQlyZXR1cm4gZm10LkVycm9yZigiZXJyb3IgdW5tYXJzaGFsaW5nIGZpZWxkICVzOiAldyIsIGZpZWxkTmFtZSwgZXJyKQoJCQl9CgkJCWEuQWRkaXRpb25hbFByb3BlcnRpZXNbZmllbGROYW1lXSA9IGZpZWxkVmFsCgkJfQoJfQoJcmV0dXJuIG5pbAp9CgovLyBPdmVycmlkZSBkZWZhdWx0IEpTT04gaGFuZGxpbmcgZm9yIFRoaW5nIHRvIGhhbmRsZSBBZGRpdGlvbmFsUHJvcGVydGllcwpmdW5jIChhIFRoaW5nKSBNYXJzaGFsSlNPTigpIChbXWJ5dGUsIGVycm9yKSB7Cgl2YXIgZXJyIGVycm9yCglvYmplY3QgOj0gbWFrZShtYXBbc3RyaW5nXWpzb24uUmF3TWVzc2FnZSkKCglvYmplY3RbImlkIl0sIGVyciA9IGpzb24uTWFyc2hhbChhLklkKQoJaWYgZXJyICE9IG5pbCB7CgkJcmV0dXJuIG5pbCwgZm10LkVycm9yZigiZXJyb3IgbWFyc2hhbGluZyAnaWQnOiAldyIsIGVycikKCX0KCglmb3IgZmllbGROYW1lLCBmaWVsZCA6PSByYW5nZSBhLkFkZGl0aW9uYWxQcm9wZXJ0aWVzIHsKCQlvYmplY3RbZmllbGROYW1lXSwgZXJyID0ganNvbi5NYXJzaGFsKGZpZWxkKQoJCWlmIGVyciAhPSBuaWwgewoJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJlcnJvciBtYXJzaGFsaW5nICclcyc6ICV3IiwgZmllbGROYW1lLCBlcnIpCgkJfQoJfQoJcmV0dXJuIGpzb24uTWFyc2hhbChvYmplY3QpCn0KYGBgCgo8L2RldGFpbHM+CgojIyBDaGFuZ2luZyB0aGUgbmFtZXMgb2YgZ2VuZXJhdGVkIHR5cGVzCgpBcyBvZiBgb2FwaS1jb2RlZ2VuYCB2Mi4yLjAsIGl0IGlzIG5vdyBwb3NzaWJsZSB0byB1c2UgdGhlIGBvdXRwdXQtb3B0aW9uc2AgY29uZmlndXJhdGlvbidzIGBuYW1lLW5vcm1hbGl6ZXJgIHRvIGRlZmluZSB0aGUgbG9naWMgZm9yIGhvdyB0byBjb252ZXJ0IGFuIE9wZW5BUEkgbmFtZSAoaS5lLiBhbiBPcGVyYXRpb24gSUQgb3IgYSBTY2hlbWEgbmFtZSkgYW5kIGNvbnN0cnVjdCBhIEdvIHR5cGUgbmFtZS4KCjxkZXRhaWxzPgoKPHN1bW1hcnk+RXhhbXBsZSwgdXNpbmcgZGVmYXVsdCBjb25maWd1cmF0aW9uPC9zdW1tYXJ5PgoKQnkgZGVmYXVsdCwgYG9hcGktY29kZWdlbmAgd2lsbCBwZXJmb3JtIGNhbWVsLWNhc2UgY29udmVyc2lvbiwgc28gZm9yIGEgc3BlYyBzdWNoIGFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogRXhhbXBsZSBjb2RlIGZvciB0aGUgYG5hbWUtbm9ybWFsaXplcmAgb3V0cHV0IG9wdGlvbgpwYXRoczoKICAvYXBpL3BldHMve3BldElkfToKICAgIGdldDoKICAgICAgc3VtbWFyeTogR2V0IHBldCBnaXZlbiBpZGVudGlmaWVyLgogICAgICBvcGVyYXRpb25JZDogZ2V0SHR0cFBldAogICAgICBwYXJhbWV0ZXJzOgogICAgICAtIG5hbWU6IHBldElkCiAgICAgICAgaW46IHBhdGgKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIHNjaGVtYToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogdmFsaWQgcGV0CiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFBldDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gdXVpZAogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHV1aWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgcGV0IHV1aWQuCiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBuYW1lIG9mIHRoZSBwZXQuCiAgICBFcnJvcjoKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBjb2RlCiAgICAgICAgLSBtZXNzYWdlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgY29kZToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGZvcm1hdDogaW50MzIKICAgICAgICAgIGRlc2NyaXB0aW9uOiBFcnJvciBjb2RlCiAgICAgICAgbWVzc2FnZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVzY3JpcHRpb246IEVycm9yIG1lc3NhZ2UKICAgIE9uZU9mMnRoaW5nczoKICAgICAgZGVzY3JpcHRpb246ICJOb3RpY2UgdGhhdCB0aGUgYHRoaW5nc2AgaXMgbm90IGNhcGl0YWxpc2VkIgogICAgICBvbmVPZjoKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgIC0gaWQKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgIC0gaWQKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGZvcm1hdDogdXVpZApgYGAKClRoaXMgd2lsbCBwcm9kdWNlOgoKYGBgZ28KLy8gT25lT2YydGhpbmdzIE5vdGljZSB0aGF0IHRoZSBgdGhpbmdzYCBpcyBub3QgY2FwaXRhbGlzZWQKdHlwZSBPbmVPZjJ0aGluZ3Mgc3RydWN0IHsKCXVuaW9uIGpzb24uUmF3TWVzc2FnZQp9CgovLyBQZXQgZGVmaW5lcyBtb2RlbCBmb3IgUGV0Lgp0eXBlIFBldCBzdHJ1Y3QgewoJLy8gTmFtZSBUaGUgbmFtZSBvZiB0aGUgcGV0LgoJTmFtZSBzdHJpbmcgYGpzb246Im5hbWUiYAoKCS8vIFV1aWQgVGhlIHBldCB1dWlkLgoJVXVpZCBzdHJpbmcgYGpzb246InV1aWQiYAp9CgovLyBUaGUgaW50ZXJmYWNlIHNwZWNpZmljYXRpb24gZm9yIHRoZSBjbGllbnQgYWJvdmUuCnR5cGUgQ2xpZW50SW50ZXJmYWNlIGludGVyZmFjZSB7CgkvLyBHZXRIdHRwUGV0IHJlcXVlc3QKCUdldEh0dHBQZXQoY3R4IGNvbnRleHQuQ29udGV4dCwgcGV0SWQgc3RyaW5nLCByZXFFZGl0b3JzIC4uLlJlcXVlc3RFZGl0b3JGbikgKCpodHRwLlJlc3BvbnNlLCBlcnJvcikKfQpgYGAKCjwvZGV0YWlscz4KCjxkZXRhaWxzPgoKPHN1bW1hcnk+RXhhbXBsZSwgdXNpbmcgPGNvZGU+VG9DYW1lbENhc2VXaXRoSW5pdGlhbGlzbXM8L2NvZGU+PC9zdW1tYXJ5PgoKQnkgZGVmYXVsdCwgYG9hcGktY29kZWdlbmAgd2lsbCBwZXJmb3JtIGNhbWVsLWNhc2UgY29udmVyc2lvbiwgc28gZm9yIGEgc3BlYyBzdWNoIGFzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogRXhhbXBsZSBjb2RlIGZvciB0aGUgYG5hbWUtbm9ybWFsaXplcmAgb3V0cHV0IG9wdGlvbgpwYXRoczoKICAvYXBpL3BldHMve3BldElkfToKICAgIGdldDoKICAgICAgc3VtbWFyeTogR2V0IHBldCBnaXZlbiBpZGVudGlmaWVyLgogICAgICBvcGVyYXRpb25JZDogZ2V0SHR0cFBldAogICAgICBwYXJhbWV0ZXJzOgogICAgICAtIG5hbWU6IHBldElkCiAgICAgICAgaW46IHBhdGgKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIHNjaGVtYToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogdmFsaWQgcGV0CiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFBldDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gdXVpZAogICAgICAgIC0gbmFtZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHV1aWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgcGV0IHV1aWQuCiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBuYW1lIG9mIHRoZSBwZXQuCiAgICBFcnJvcjoKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBjb2RlCiAgICAgICAgLSBtZXNzYWdlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgY29kZToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGZvcm1hdDogaW50MzIKICAgICAgICAgIGRlc2NyaXB0aW9uOiBFcnJvciBjb2RlCiAgICAgICAgbWVzc2FnZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVzY3JpcHRpb246IEVycm9yIG1lc3NhZ2UKICAgIE9uZU9mMnRoaW5nczoKICAgICAgZGVzY3JpcHRpb246ICJOb3RpY2UgdGhhdCB0aGUgYHRoaW5nc2AgaXMgbm90IGNhcGl0YWxpc2VkIgogICAgICBvbmVPZjoKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgIC0gaWQKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgIC0gaWQKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGZvcm1hdDogdXVpZApgYGAKClRoaXMgd2lsbCBwcm9kdWNlOgoKYGBgZ28KLy8gT25lT2YydGhpbmdzIE5vdGljZSB0aGF0IHRoZSBgdGhpbmdzYCBpcyBub3QgY2FwaXRhbGlzZWQKdHlwZSBPbmVPZjJ0aGluZ3Mgc3RydWN0IHsKCXVuaW9uIGpzb24uUmF3TWVzc2FnZQp9CgovLyBQZXQgZGVmaW5lcyBtb2RlbCBmb3IgUGV0Lgp0eXBlIFBldCBzdHJ1Y3QgewoJLy8gTmFtZSBUaGUgbmFtZSBvZiB0aGUgcGV0LgoJTmFtZSBzdHJpbmcgYGpzb246Im5hbWUiYAoKCS8vIFVVSUQgVGhlIHBldCB1dWlkLgoJVVVJRCBzdHJpbmcgYGpzb246InV1aWQiYAp9CgovLyBUaGUgaW50ZXJmYWNlIHNwZWNpZmljYXRpb24gZm9yIHRoZSBjbGllbnQgYWJvdmUuCnR5cGUgQ2xpZW50SW50ZXJmYWNlIGludGVyZmFjZSB7CgkvLyBHZXRIVFRQUGV0IHJlcXVlc3QKCUdldEhUVFBQZXQoY3R4IGNvbnRleHQuQ29udGV4dCwgcGV0SUQgc3RyaW5nLCByZXFFZGl0b3JzIC4uLlJlcXVlc3RFZGl0b3JGbikgKCpodHRwLlJlc3BvbnNlLCBlcnJvcikKfQpgYGAKCjwvZGV0YWlscz4KCgpGb3IgbW9yZSBkZXRhaWxzIG9mIHdoYXQgdGhlIHJlc3VsdGluZyBjb2RlIGxvb2tzIGxpa2UsIGNoZWNrIG91dCBbdGhlIHRlc3QgY2FzZXNdKGludGVybmFsL3Rlc3Qvb3V0cHV0b3B0aW9ucy9uYW1lLW5vcm1hbGl6ZXIvKS4KCiMjIEV4YW1wbGVzCgpUaGUgW2V4YW1wbGVzIGRpcmVjdG9yeV0oZXhhbXBsZXMpIGNvbnRhaW5zIHNvbWUgYWRkaXRpb25hbCBjYXNlcyB3aGljaCBhcmUgdXNlZnVsIGV4YW1wbGVzIGZvciBob3cgdG8gdXNlIGBvYXBpLWNvZGVnZW5gLCBpbmNsdWRpbmcgaG93IHlvdSdkIHRha2UgdGhlIFBldHN0b3JlIEFQSSBhbmQgaW1wbGVtZW50IGl0IHdpdGggYG9hcGktY29kZWdlbmAuCgpZb3UgY291bGQgYWxzbyBmaW5kIHNvbWUgY2FzZXMgb2YgaG93IHRoZSBwcm9qZWN0IGNhbiBiZSB1c2VkIGJ5IGNoZWNraW5nIG91dCBvdXIgW2ludGVybmFsIHRlc3QgY2FzZXNdKGludGVybmFsL3Rlc3QpIHdoaWNoIGFyZSByZWFsLXdvcmxkIHVzYWdlcyB0aGF0IG1ha2UgdXAgb3VyIHJlZ3Jlc3Npb24gdGVzdHMuCgojIyMgQmxvZyBwb3N0cwoKV2UgbG92ZSByZWFkaW5nIHBvc3RzIGJ5IHRoZSBjb21tdW5pdHkgYWJvdXQgaG93IHRvIHVzZSB0aGUgcHJvamVjdC4KCkhlcmUgYXJlIGEgZmV3IHdlJ3ZlIGZvdW5kIGFyb3VuZCB0aGUgV2ViOgoKLSBbQnVpbGRpbmcgYSBHbyBSRVNUZnVsIEFQSSB3aXRoIGRlc2lnbi1maXJzdCBPcGVuQVBJIGNvbnRyYWN0c10oaHR0cHM6Ly93d3cuanZ0Lm1lL3Bvc3RzLzIwMjIvMDcvMTIvZ28tb3BlbmFwaS1zZXJ2ZXIvKQotIFtBIFByYWN0aWNhbCBHdWlkZSB0byBVc2luZyBvYXBpLWNvZGVnZW4gaW4gR29sYW5nIEFQSSBEZXZlbG9wbWVudCB3aXRoIHRoZSBGaWJlciBGcmFtZXdvcmtdKGh0dHBzOi8vbWVkaXVtLmNvbS9AZmlraWhhbGFuL2EtcHJhY3RpY2FsLWd1aWRlLXRvLXVzaW5nLW9hcGktY29kZWdlbi1pbi1nb2xhbmctYXBpLWRldmVsb3BtZW50LXdpdGgtdGhlLWZpYmVyLWZyYW1ld29yay1iY2UyYTU5MzgwYWUpCi0gW0dlbmVyYXRpbmcgR28gc2VydmVyIGNvZGUgZnJvbSBPcGVuQVBJIDMgZGVmaW5pdGlvbnNdKGh0dHBzOi8vbGRlai5ubC9wb3N0L2dlbmVyYXRpbmctZ28tZnJvbS1vcGVuYXBpLTMvKQotIFtHbyBDbGllbnQgQ29kZSBHZW5lcmF0aW9uIGZyb20gU3dhZ2dlciBhbmQgT3BlbkFQSV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BreW9kby10ZWNoL2dvLWNsaWVudC1jb2RlLWdlbmVyYXRpb24tZnJvbS1zd2FnZ2VyLWFuZC1vcGVuYXBpLWEwNTc2ODMxODM2YykKLSBbR28gb2FwaS1jb2RlZ2VuICsgcmVxdWVzdCB2YWxpZGF0aW9uXShodHRwczovL2Jsb2cuY29tbWl0c21hcnQuY29tL2dvLW9hcGktY29kZWdlbi1yZXF1ZXN0LXZhbGlkYXRpb24tMjg1Mzk4YjM3ZGM4KQoKR290IG9uZSB0byBhZGQ/IFBsZWFzZSByYWlzZSBhIFBSIQoKIyMgRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnMgKEZBUXMpCgojIyMgSG93IGRvZXMgYG9hcGktY29kZWdlbmAgaGFuZGxlIGBhbnlPZmAsIGBhbGxPZmAgYW5kIGBvbmVPZmA/Cgpgb2FwaS1jb2RlZ2VuYCBzdXBwb3J0cyBgYW55T2ZgLCBgYWxsT2ZgIGFuZCBgb25lT2ZgIGZvciBnZW5lcmF0ZWQgY29kZS4KCkZvciBpbnN0YW5jZSwgdGhyb3VnaCB0aGUgZm9sbG93aW5nIE9wZW5BUEkgc3BlYzoKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IFVzaW5nIGNvbXBsZXggc2NoZW1hcwogIGRlc2NyaXB0aW9uOiBBbiBleGFtcGxlIG9mIGBhbnlPZmAsIGBhbGxPZmAgYW5kIGBvbmVPZmAKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgIyBiYXNlIHR5cGVzCiAgICBDbGllbnQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICBJZGVudGl0eToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaXNzdWVyCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaXNzdWVyOgogICAgICAgICAgdHlwZTogc3RyaW5nCgogICAgIyBhbGxPZiBwZXJmb3JtcyBhIHVuaW9uIG9mIGFsbCB0eXBlcyBkZWZpbmVkCiAgICBDbGllbnRXaXRoSWQ6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NsaWVudCcKICAgICAgICAtIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAtIGlkCgogICAgIyBhbGxPZiBwZXJmb3JtcyBhIHVuaW9uIG9mIGFsbCB0eXBlcyBkZWZpbmVkLCBidXQgaWYgdGhlcmUncyBhIGR1cGxpY2F0ZSBmaWVsZCBkZWZpbmVkLCBpdCdsbCBiZSBvdmVyd3JpdHRlbiBieSB0aGUgbGFzdCBzY2hlbWEKICAgICMgaHR0cHM6Ly9naXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL2lzc3Vlcy8xNTY5CiAgICBJZGVudGl0eVdpdGhEdXBsaWNhdGVGaWVsZDoKICAgICAgYWxsT2Y6CiAgICAgICAgIyBgaXNzdWVyYCB3aWxsIGJlIGlnbm9yZWQKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9JZGVudGl0eScKICAgICAgICAjIGBpc3N1ZXJgIHdpbGwgYmUgaWdub3JlZAogICAgICAgIC0gcHJvcGVydGllczoKICAgICAgICAgICAgaXNzdWVyOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAjIGBpc3N1ZXJgIHdpbGwgdGFrZSBwcmVjZWRlbmNlCiAgICAgICAgLSBwcm9wZXJ0aWVzOgogICAgICAgICAgICBpc3N1ZXI6CiAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgIG5hbWU6CiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAgICAgLSBuYW1lCgogICAgIyBhbnlPZiByZXN1bHRzIGluIGEgdHlwZSB0aGF0IGhhcyBhbiBgQXNDbGllbnRgL2BNZXJnZUNsaWVudGAvYEZyb21DbGllbnRgIGFuZCBhbiBgQXNJZGVudGl0eWAvYE1lcmdlSWRlbnRpdHlgL2BGcm9tSWRlbnRpdHlgIG1ldGhvZCBzbyB5b3UgY2FuIGNob29zZSB3aGljaCBvZiB0aGVtIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICBDbGllbnRBbmRNYXliZUlkZW50aXR5OgogICAgICBhbnlPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DbGllbnQnCiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvSWRlbnRpdHknCgogICAgIyBvbmVPZiByZXN1bHRzIGluIGEgdHlwZSB0aGF0IGhhcyBhbiBgQXNDbGllbnRgL2BNZXJnZUNsaWVudGAvYEZyb21DbGllbnRgIGFuZCBhbiBgQXNJZGVudGl0eWAvYE1lcmdlSWRlbnRpdHlgL2BGcm9tSWRlbnRpdHlgIG1ldGhvZCBzbyB5b3UgY2FuIGNob29zZSB3aGljaCBvZiB0aGVtIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICBDbGllbnRPcklkZW50aXR5OgogICAgICBvbmVPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DbGllbnQnCiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvSWRlbnRpdHknCmBgYAoKVGhpcyByZXN1bHRzIGluIHRoZSBmb2xsb3dpbmcgdHlwZXM6Cgo8ZGV0YWlscz4KCjxzdW1tYXJ5PkJhc2UgdHlwZXM8L3N1bW1hcnk+CgpgYGBnbwovLyBDbGllbnQgZGVmaW5lcyBtb2RlbCBmb3IgQ2xpZW50Lgp0eXBlIENsaWVudCBzdHJ1Y3QgewoJTmFtZSBzdHJpbmcgYGpzb246Im5hbWUiYAp9CgovLyBJZGVudGl0eSBkZWZpbmVzIG1vZGVsIGZvciBJZGVudGl0eS4KdHlwZSBJZGVudGl0eSBzdHJ1Y3QgewoJSXNzdWVyIHN0cmluZyBganNvbjoiaXNzdWVyImAKfQpgYGAKCjwvZGV0YWlscz4KCjxkZXRhaWxzPgoKPHN1bW1hcnk+PGNvZGU+YWxsT2Y8L2NvZGU+PC9zdW1tYXJ5PgoKYGBgZ28KLy8gQ2xpZW50V2l0aElkIGRlZmluZXMgbW9kZWwgZm9yIENsaWVudFdpdGhJZC4KdHlwZSBDbGllbnRXaXRoSWQgc3RydWN0IHsKCUlkICAgaW50ICAgIGBqc29uOiJpZCJgCglOYW1lIHN0cmluZyBganNvbjoibmFtZSJgCn0KCi8vIElkZW50aXR5V2l0aER1cGxpY2F0ZUZpZWxkIGRlZmluZXMgbW9kZWwgZm9yIElkZW50aXR5V2l0aER1cGxpY2F0ZUZpZWxkLgp0eXBlIElkZW50aXR5V2l0aER1cGxpY2F0ZUZpZWxkIHN0cnVjdCB7CglJc3N1ZXIgc3RydWN0IHsKCQlOYW1lIHN0cmluZyBganNvbjoibmFtZSJgCgl9IGBqc29uOiJpc3N1ZXIiYAp9CmBgYAoKPC9kZXRhaWxzPgoKPGRldGFpbHM+Cgo8c3VtbWFyeT48Y29kZT5hbnlPZjwvY29kZT48L3N1bW1hcnk+CgpgYGBnbwppbXBvcnQgKAoJImVuY29kaW5nL2pzb24iCgoJImdpdGh1Yi5jb20vb2FwaS1jb2RlZ2VuL3J1bnRpbWUiCikKCi8vIENsaWVudEFuZE1heWJlSWRlbnRpdHkgZGVmaW5lcyBtb2RlbCBmb3IgQ2xpZW50QW5kTWF5YmVJZGVudGl0eS4KdHlwZSBDbGllbnRBbmRNYXliZUlkZW50aXR5IHN0cnVjdCB7Cgl1bmlvbiBqc29uLlJhd01lc3NhZ2UKfQoKLy8gQXNDbGllbnQgcmV0dXJucyB0aGUgdW5pb24gZGF0YSBpbnNpZGUgdGhlIENsaWVudEFuZE1heWJlSWRlbnRpdHkgYXMgYSBDbGllbnQKZnVuYyAodCBDbGllbnRBbmRNYXliZUlkZW50aXR5KSBBc0NsaWVudCgpIChDbGllbnQsIGVycm9yKSB7Cgl2YXIgYm9keSBDbGllbnQKCWVyciA6PSBqc29uLlVubWFyc2hhbCh0LnVuaW9uLCAmYm9keSkKCXJldHVybiBib2R5LCBlcnIKfQoKLy8gRnJvbUNsaWVudCBvdmVyd3JpdGVzIGFueSB1bmlvbiBkYXRhIGluc2lkZSB0aGUgQ2xpZW50QW5kTWF5YmVJZGVudGl0eSBhcyB0aGUgcHJvdmlkZWQgQ2xpZW50CmZ1bmMgKHQgKkNsaWVudEFuZE1heWJlSWRlbnRpdHkpIEZyb21DbGllbnQodiBDbGllbnQpIGVycm9yIHsKCWIsIGVyciA6PSBqc29uLk1hcnNoYWwodikKCXQudW5pb24gPSBiCglyZXR1cm4gZXJyCn0KCi8vIE1lcmdlQ2xpZW50IHBlcmZvcm1zIGEgbWVyZ2Ugd2l0aCBhbnkgdW5pb24gZGF0YSBpbnNpZGUgdGhlIENsaWVudEFuZE1heWJlSWRlbnRpdHksIHVzaW5nIHRoZSBwcm92aWRlZCBDbGllbnQKZnVuYyAodCAqQ2xpZW50QW5kTWF5YmVJZGVudGl0eSkgTWVyZ2VDbGllbnQodiBDbGllbnQpIGVycm9yIHsKCWIsIGVyciA6PSBqc29uLk1hcnNoYWwodikKCWlmIGVyciAhPSBuaWwgewoJCXJldHVybiBlcnIKCX0KCgltZXJnZWQsIGVyciA6PSBydW50aW1lLkpTT05NZXJnZSh0LnVuaW9uLCBiKQoJdC51bmlvbiA9IG1lcmdlZAoJcmV0dXJuIGVycgp9CgovLyBBc0lkZW50aXR5IHJldHVybnMgdGhlIHVuaW9uIGRhdGEgaW5zaWRlIHRoZSBDbGllbnRBbmRNYXliZUlkZW50aXR5IGFzIGEgSWRlbnRpdHkKZnVuYyAodCBDbGllbnRBbmRNYXliZUlkZW50aXR5KSBBc0lkZW50aXR5KCkgKElkZW50aXR5LCBlcnJvcikgewoJdmFyIGJvZHkgSWRlbnRpdHkKCWVyciA6PSBqc29uLlVubWFyc2hhbCh0LnVuaW9uLCAmYm9keSkKCXJldHVybiBib2R5LCBlcnIKfQoKLy8gRnJvbUlkZW50aXR5IG92ZXJ3cml0ZXMgYW55IHVuaW9uIGRhdGEgaW5zaWRlIHRoZSBDbGllbnRBbmRNYXliZUlkZW50aXR5IGFzIHRoZSBwcm92aWRlZCBJZGVudGl0eQpmdW5jICh0ICpDbGllbnRBbmRNYXliZUlkZW50aXR5KSBGcm9tSWRlbnRpdHkodiBJZGVudGl0eSkgZXJyb3IgewoJYiwgZXJyIDo9IGpzb24uTWFyc2hhbCh2KQoJdC51bmlvbiA9IGIKCXJldHVybiBlcnIKfQoKLy8gTWVyZ2VJZGVudGl0eSBwZXJmb3JtcyBhIG1lcmdlIHdpdGggYW55IHVuaW9uIGRhdGEgaW5zaWRlIHRoZSBDbGllbnRBbmRNYXliZUlkZW50aXR5LCB1c2luZyB0aGUgcHJvdmlkZWQgSWRlbnRpdHkKZnVuYyAodCAqQ2xpZW50QW5kTWF5YmVJZGVudGl0eSkgTWVyZ2VJZGVudGl0eSh2IElkZW50aXR5KSBlcnJvciB7CgliLCBlcnIgOj0ganNvbi5NYXJzaGFsKHYpCglpZiBlcnIgIT0gbmlsIHsKCQlyZXR1cm4gZXJyCgl9CgoJbWVyZ2VkLCBlcnIgOj0gcnVudGltZS5KU09OTWVyZ2UodC51bmlvbiwgYikKCXQudW5pb24gPSBtZXJnZWQKCXJldHVybiBlcnIKfQoKZnVuYyAodCBDbGllbnRBbmRNYXliZUlkZW50aXR5KSBNYXJzaGFsSlNPTigpIChbXWJ5dGUsIGVycm9yKSB7CgliLCBlcnIgOj0gdC51bmlvbi5NYXJzaGFsSlNPTigpCglyZXR1cm4gYiwgZXJyCn0KCmZ1bmMgKHQgKkNsaWVudEFuZE1heWJlSWRlbnRpdHkpIFVubWFyc2hhbEpTT04oYiBbXWJ5dGUpIGVycm9yIHsKCWVyciA6PSB0LnVuaW9uLlVubWFyc2hhbEpTT04oYikKCXJldHVybiBlcnIKfQoKCmBgYAoKPC9kZXRhaWxzPgoKPGRldGFpbHM+Cgo8c3VtbWFyeT48Y29kZT5vbmVPZjwvY29kZT48L3N1bW1hcnk+CgpgYGBnbwovLyBBc0NsaWVudCByZXR1cm5zIHRoZSB1bmlvbiBkYXRhIGluc2lkZSB0aGUgQ2xpZW50T3JJZGVudGl0eSBhcyBhIENsaWVudApmdW5jICh0IENsaWVudE9ySWRlbnRpdHkpIEFzQ2xpZW50KCkgKENsaWVudCwgZXJyb3IpIHsKCXZhciBib2R5IENsaWVudAoJZXJyIDo9IGpzb24uVW5tYXJzaGFsKHQudW5pb24sICZib2R5KQoJcmV0dXJuIGJvZHksIGVycgp9CgovLyBGcm9tQ2xpZW50IG92ZXJ3cml0ZXMgYW55IHVuaW9uIGRhdGEgaW5zaWRlIHRoZSBDbGllbnRPcklkZW50aXR5IGFzIHRoZSBwcm92aWRlZCBDbGllbnQKZnVuYyAodCAqQ2xpZW50T3JJZGVudGl0eSkgRnJvbUNsaWVudCh2IENsaWVudCkgZXJyb3IgewoJYiwgZXJyIDo9IGpzb24uTWFyc2hhbCh2KQoJdC51bmlvbiA9IGIKCXJldHVybiBlcnIKfQoKLy8gTWVyZ2VDbGllbnQgcGVyZm9ybXMgYSBtZXJnZSB3aXRoIGFueSB1bmlvbiBkYXRhIGluc2lkZSB0aGUgQ2xpZW50T3JJZGVudGl0eSwgdXNpbmcgdGhlIHByb3ZpZGVkIENsaWVudApmdW5jICh0ICpDbGllbnRPcklkZW50aXR5KSBNZXJnZUNsaWVudCh2IENsaWVudCkgZXJyb3IgewoJYiwgZXJyIDo9IGpzb24uTWFyc2hhbCh2KQoJaWYgZXJyICE9IG5pbCB7CgkJcmV0dXJuIGVycgoJfQoKCW1lcmdlZCwgZXJyIDo9IHJ1bnRpbWUuSlNPTk1lcmdlKHQudW5pb24sIGIpCgl0LnVuaW9uID0gbWVyZ2VkCglyZXR1cm4gZXJyCn0KCi8vIEFzSWRlbnRpdHkgcmV0dXJucyB0aGUgdW5pb24gZGF0YSBpbnNpZGUgdGhlIENsaWVudE9ySWRlbnRpdHkgYXMgYSBJZGVudGl0eQpmdW5jICh0IENsaWVudE9ySWRlbnRpdHkpIEFzSWRlbnRpdHkoKSAoSWRlbnRpdHksIGVycm9yKSB7Cgl2YXIgYm9keSBJZGVudGl0eQoJZXJyIDo9IGpzb24uVW5tYXJzaGFsKHQudW5pb24sICZib2R5KQoJcmV0dXJuIGJvZHksIGVycgp9CgovLyBGcm9tSWRlbnRpdHkgb3ZlcndyaXRlcyBhbnkgdW5pb24gZGF0YSBpbnNpZGUgdGhlIENsaWVudE9ySWRlbnRpdHkgYXMgdGhlIHByb3ZpZGVkIElkZW50aXR5CmZ1bmMgKHQgKkNsaWVudE9ySWRlbnRpdHkpIEZyb21JZGVudGl0eSh2IElkZW50aXR5KSBlcnJvciB7CgliLCBlcnIgOj0ganNvbi5NYXJzaGFsKHYpCgl0LnVuaW9uID0gYgoJcmV0dXJuIGVycgp9CgovLyBNZXJnZUlkZW50aXR5IHBlcmZvcm1zIGEgbWVyZ2Ugd2l0aCBhbnkgdW5pb24gZGF0YSBpbnNpZGUgdGhlIENsaWVudE9ySWRlbnRpdHksIHVzaW5nIHRoZSBwcm92aWRlZCBJZGVudGl0eQpmdW5jICh0ICpDbGllbnRPcklkZW50aXR5KSBNZXJnZUlkZW50aXR5KHYgSWRlbnRpdHkpIGVycm9yIHsKCWIsIGVyciA6PSBqc29uLk1hcnNoYWwodikKCWlmIGVyciAhPSBuaWwgewoJCXJldHVybiBlcnIKCX0KCgltZXJnZWQsIGVyciA6PSBydW50aW1lLkpTT05NZXJnZSh0LnVuaW9uLCBiKQoJdC51bmlvbiA9IG1lcmdlZAoJcmV0dXJuIGVycgp9CgpmdW5jICh0IENsaWVudE9ySWRlbnRpdHkpIE1hcnNoYWxKU09OKCkgKFtdYnl0ZSwgZXJyb3IpIHsKCWIsIGVyciA6PSB0LnVuaW9uLk1hcnNoYWxKU09OKCkKCXJldHVybiBiLCBlcnIKfQoKZnVuYyAodCAqQ2xpZW50T3JJZGVudGl0eSkgVW5tYXJzaGFsSlNPTihiIFtdYnl0ZSkgZXJyb3IgewoJZXJyIDo9IHQudW5pb24uVW5tYXJzaGFsSlNPTihiKQoJcmV0dXJuIGVycgp9CmBgYAoKPC9kZXRhaWxzPgoKRm9yIG1vcmUgaW5mbywgY2hlY2sgb3V0IFt0aGUgZXhhbXBsZSBjb2RlXShleGFtcGxlcy9hbnlvZi1hbGxvZi1vbmVvZi8pLgoKIyMjIEhvdyBjYW4gSSBpZ25vcmUgcGFydHMgb2YgdGhlIHNwZWMgSSBkb24ndCBjYXJlIGFib3V0PwoKQnkgZGVmYXVsdCwgYG9hcGktY29kZWdlbmAgd2lsbCBnZW5lcmF0ZSBldmVyeXRoaW5nIGZyb20gdGhlIHNwZWNpZmljYXRpb24uCgpJZiB5b3UnZCBsaWtlIHRvIHJlZHVjZSB3aGF0J3MgZ2VuZXJhdGVkLCB5b3UgY2FuIHVzZSBvbmUgb2YgYSBmZXcgb3B0aW9ucyBpbiBbdGhlIGNvbmZpZ3VyYXRpb24gZmlsZV0oI3VzYWdlKSB0byB0dW5lIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSByZXN1bHRpbmcgb3V0cHV0OgoKYGBgeWFtbAojIHlhbWwtbGFuZ3VhZ2Utc2VydmVyOiAkc2NoZW1hPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9IRUFEL2NvbmZpZ3VyYXRpb24tc2NoZW1hLmpzb24Kb3V0cHV0LW9wdGlvbnM6CiAgaW5jbHVkZS10YWdzOiBbXQogIGV4Y2x1ZGUtdGFnczogW10KICBpbmNsdWRlLW9wZXJhdGlvbi1pZHM6IFtdCiAgZXhjbHVkZS1vcGVyYXRpb24taWRzOiBbXQogIGV4Y2x1ZGUtc2NoZW1hczogW10KYGBgCgpDaGVjayBbdGhlIGRvY3NdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL29hcGktY29kZWdlbi9vYXBpLWNvZGVnZW4vdjIvcGtnL2NvZGVnZW4jT3V0cHV0T3B0aW9ucykgZm9yIG1vcmUgZGV0YWlscyBvZiB1c2FnZS4KCiMjIyBTaG91bGQgSSBjb21taXQgdGhlIGdlbmVyYXRlZCBjb2RlPwoKV2UgcmVjb21tZW5kIGRvaW5nIHNvLCB5ZXMsIGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbnM6CgotIEl0IG1lYW5zIGl0J3MgZWFzaWVyIHRvIHZpZXcgdGhlIGltcGFjdCBvZiBhIGNoYW5nZSAtIGJlIGl0IGR1ZSB0byBhbiB1cGdyYWRlIG9mIGBvYXBpLWNvZGVnZW5gLCBvciBhIGNoYW5nZSB0byB5b3VyIHNwZWMgLSBhbmQgaGFzIGhlbHBlZCBjYXRjaCAocG9zc2libHkpIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIHBhc3QgbW9yZSBlYXNpbHkKLSBJdCB0aGVuIGFsbG93cyB5b3VyIGNvZGViYXNlIHRvIGJlIGNvbnN1bWVkIGFzIGEgbGlicmFyeSwgYXMgYWxsIHRoZSBmaWxlcyBhcmUgY29tbWl0dGVkCgpUaGlzIG1lYW5zIHlvdSdsbCBuZWVkIHRvIGhhdmUgeW91ciBDSS9DRCBwaXBlbGluZSB2YWxpZGF0ZSB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgYWxsIHVwLXRvLWRhdGUsIGJ1dCB0aGF0J3MgYSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIHBpZWNlIG9mIHdvcmsuCgojIyMgU2hvdWxkIEkgbGludCB0aGUgZ2VuZXJhdGVkIGNvZGU/CgpXZSByZWFsbHkgYXNrIHRoYXQgeW91IGRvbid0LiBBbHRob3VnaCBpdCBpbnRlbmRzIHRvIGJlIGlkaW9tYXRpYyBHbyBjb2RlLCBpdCdzIG5vdCBleHBlY3RlZCB0byBwYXNzIGFsbCB0aGUgdmFyaW91cyBsaW50aW5nIHJ1bGVzIHRoYXQgeW91ciBwcm9qZWN0IG1heSBhcHBseS4KCj4gWyFOT1RFXQo+IFdlIHdpbGwsIG9uIG9jY2FzaW9uLCBpbXByb3ZlIHRoZSBnZW5lcmF0ZWQgY29kZSB0byBmaXggc29tZSBsaW50aW5nIHdhcm5pbmdzLCBzdWNoIGFzIHRob3NlIGZyb20gYGdvIHZldGAsIGJ1dCB0aGlzIHNob3VsZCBub3QgYmUgYW4gZXhwZWN0ZWQgY2hhbmdlLgoKIyMjIEkndmUganVzdCB1cGRhdGVkIG15IHZlcnNpb24gb2YgYGtpbi1vcGVuYXBpYCwgYW5kIG5vdyBJIGNhbid0IGJ1aWxkIG15IGNvZGUg8J+YoAoKVGhlIFtraW4tb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaSkgcHJvamVjdCAtIHdoaWNoIHdlIPCfkpwgZm9yIHByb3ZpZGluZyBhIGdyZWF0IGxpYnJhcnkgYW5kIHNldCBvZiB0b29saW5nIGZvciBpbnRlcmFjdGluZyB3aXRoIE9wZW5BUEkgLSBpcyBhIHByZS12MSByZWxlYXNlLCB3aGljaCBtZWFucyB0aGF0IHRoZXkncmUgd2l0aGluIHRoZWlyIHJpZ2h0cyB0byBwdXNoIGJyZWFraW5nIGNoYW5nZXMuCgpUaGlzIG1heSBsZWFkIHRvIGJyZWFrYWdlIGluIHlvdXIgY29uc3VtaW5nIGNvZGUsIGFuZCBpZiBzbywgc29ycnkgdGhhdCdzIGhhcHBlbmVkIQoKV2UnbGwgYmUgYXdhcmUgb2YgdGhlIGlzc3VlLCBhbmQgd2lsbCB3b3JrIHRvIHVwZGF0ZSBib3RoIHRoZSBjb3JlIGBvYXBpLWNvZGVnZW5gIGFuZCB0aGUgbWlkZGxld2FyZXMgYWNjb3JkaW5nbHkuCgojIyBTcG9uc29ycwoKRm9yIHRoZSBtb3N0IHBhcnQsIGBvYXBpLWNvZGVnZW5gIGlzIG1haW50YWluZWQgaW4gdHdvIGJ1c3kgcGVvcGxlcycgZnJlZSB0aW1lLiBBcyBub3RlZCBpbiBbQ3JlYXRpbmcgYSBtb3JlIHN1c3RhaW5hYmxlIG1vZGVsIGZvciBgb2FwaS1jb2RlZ2VuYCBpbiB0aGUgZnV0dXJlXShodHRwczovL2dpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vZGlzY3Vzc2lvbnMvMTYwNiksIHdlJ3JlIGxvb2tpbmcgdG8gbWFrZSB0aGlzIGEgbW9yZSBzdXN0YWluYWJsZSBwcm9qZWN0IGluIHRoZSBmdXR1cmUuCgpXZSdyZSB2ZXJ5IGFwcHJlY2lhdGl2ZSBvZiBbdGhlIG1hbnkgY29udHJpYnV0b3JzIG92ZXIgdGhlIHllYXJzXShodHRwczovL2dpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vZ3JhcGhzL2NvbnRyaWJ1dG9ycykgYW5kIHRoZSBvbmdvaW5nIHVzZSBvZiB0aGUgcHJvamVjdCDwn5KcCgpQbGVhc2UgY29uc2lkZXIgc3BvbnNvcmluZyB1cyB0aHJvdWdoIEdpdEh1YiBTcG9uc29ycyBlaXRoZXIgW29uIHRoZSBvcmdhbmlzYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9vYXBpLWNvZGVnZW4vKSBvciBbZGlyZWN0bHkgZm9yIEphbWllXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvamFtaWV0YW5uYS8pLCB3aGljaCBoZWxwcyB3b3JrIHRvd2FyZHMgdXMgYmVpbmcgYWJsZSB0byBtYWludGFpbiB0aGUgcHJvamVjdCBsb25nIHRlcm0uCgpTZWUgW3RoaXMgYmxvZyBwb3N0IGZyb20gVGlkZWxpZnRdKGh0dHBzOi8vYmxvZy50aWRlbGlmdC5jb20vcGF5aW5nLW1haW50YWluZXJzLXRoZS1ob3d0bykgZm9yIG1vcmUgZGV0YWlscyBvbiBob3cgdG8gdGFsayB0byB5b3VyIGNvbXBhbnkgYWJvdXQgc3BvbnNvcmluZyBtYWludGFpbmVycyBvZiAoT3BlbiBTb3VyY2UpIHByb2plY3RzIHlvdSBkZXBlbmQgb24uCgpXZSBhcmUgY3VycmVudGx5IGdlbmVyb3VzbHkgc3BvbnNvcmVkIGJ5IHRoZSBmb2xsb3dpbmcgZm9sa3MsIGVhY2ggb2Ygd2hvbSBwcm92aWRlIHNwb25zb3JzaGlwIGZvciAxIGhvdXIgb2Ygd29yayBhIG1vbnRoOgoKPHAgYWxpZ249ImNlbnRlciI+Cgk8YSBocmVmPSJodHRwczovL3d3dy5kZXZ6ZXJvLmlvL2xwL2Rldi1lbnZpcm9ubWVudD91dG1fY2FtcGFpZ249Z2l0aHViJnV0bV9zb3VyY2U9b2FwaS1jb2RlZ2VuJTIwcmVwbyZ1dG1fbWVkaXVtPWdpdGh1YiUyMHNwb25zb3JzaGlwIj4KCQk8cGljdHVyZT4KCQkgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Ii5naXRodWIvc3BvbnNvcnMvZGV2emVyby1saWdodC5zdmciPgoJCSAgPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSIuZ2l0aHViL3Nwb25zb3JzL2Rldnplcm8tZGFyay5zdmciPgoJCSAgPGltZyBhbHQ9IkRldlplcm8gbG9nbyIgc3JjPSIuZ2l0aHViL3Nwb25zb3JzL2Rldnplcm8tZGFyay5zdmciIGhlaWdodD0iMTAwcHgiPgoJCTwvcGljdHVyZT4KCTwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+Cgk8YSBocmVmPSJodHRwczovL3NwZWFrZWFzeS5jb20/dXRtX3NvdXJjZT1vYXBpLWNvZGVnZW4rcmVwbyZ1dG1fbWVkaXVtPWdpdGh1YitzcG9uc29yc2hpcCI+CgkJPHBpY3R1cmU+CgkJICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIgc3Jjc2V0PSIuZ2l0aHViL3Nwb25zb3JzL3NwZWFrZWFzeS1saWdodC5zdmciPgoJCSAgPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSIuZ2l0aHViL3Nwb25zb3JzL3NwZWFrZWFzeS1kYXJrLnN2ZyI+CgkJICA8aW1nIGFsdD0iU3BlYWtlYXN5IGxvZ28iIHNyYz0iLmdpdGh1Yi9zcG9uc29ycy9zcGVha2Vhc3ktZGFyay5zdmciIGhlaWdodD0iMTAwcHgiPgoJCTwvcGljdHVyZT4KCTwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+Cgk8YSBocmVmPSJodHRwczovL2VsYXN0aWMuY28/dXRtX3NvdXJjZT1vYXBpLWNvZGVnZW4rcmVwbyZ1dG1fbWVkaXVtPWdpdGh1YitzcG9uc29yc2hpcCI+CgkJPHBpY3R1cmU+CgkJICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIgc3Jjc2V0PSIuZ2l0aHViL3Nwb25zb3JzL2VsYXN0aWMtbGlnaHQuc3ZnIj4KCQkgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iLmdpdGh1Yi9zcG9uc29ycy9lbGFzdGljLWRhcmsuc3ZnIj4KCQkgIDxpbWcgYWx0PSJFbGFzdGljIGxvZ28iIHNyYz0iLmdpdGh1Yi9zcG9uc29ycy9lbGFzdGljLWRhcmsuc3ZnIiBoZWlnaHQ9IjEwMHB4Ij4KCQk8L3BpY3R1cmU+Cgk8L2E+CjwvcD4KCihOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIGFwcGVhcmFuY2UgdGhlIG9yZGVyIGluIHdoaWNoIHNwb25zb3JzaGlwIHdhcyByZWNlaXZlZCkK readmeEtag: '"07857cbcb36fee4d25530b7ceb85180f8d07a6b1"' readmeLastModified: Tue, 20 Aug 2024 11:45:25 GMT repositoryId: 173009358 description: Generate Go client and server boilerplate from OpenAPI 3 specifications created: '2019-02-27T23:59:59Z' updated: '2024-09-06T00:01:51Z' language: Go archived: false stars: 5941 watchers: 36 forks: 831 owner: oapi-codegen logo: https://avatars.githubusercontent.com/u/142752710?v=4 license: Apache-2.0 repoEtag: '"6643123aa6b055f7358c8334a35d595113d68c5473a511d7729c58fc287cf701"' repoLastModified: Fri, 06 Sep 2024 00:01:51 GMT foundInMaster: true id: 770a221110cc4ef0e399089f5caf8694 oldLocations: - https://github.com/deepmap/oapi-codegen - source: openapi3 tags name: OpenAPI TypeScript category: - Converters - SDK language: TypeScript source_description: >- Convert static OpenAPI schemas to TypeScript types quickly using pure Node.js. Fast, lightweight, (almost) dependency-free, and no Java/node-gyp/running OpenAPI servers necessary. link: https://github.com/drwpow/openapi-typescript v2: true v3: true v3_1: true repository: https://github.com/openapi-ts/openapi-typescript id: 9880f7b9f35e02f8dfae31a519803f18 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXR5cGVzY3JpcHQKClRvb2xzIGZvciBjb25zdW1pbmcgT3BlbkFQSSBzY2hlbWFzIGluIFR5cGVTY3JpcHQuCgojIyDwn5OmIFBhY2thZ2VzCgo8YSBocmVmPSIuL3BhY2thZ2VzL29wZW5hcGktdHlwZXNjcmlwdCI+PGltZyBzcmM9Ii4vZG9jcy9wdWJsaWMvYXNzZXRzL29wZW5hcGktdHMuc3ZnIiBhbHQ9Im9wZW5hcGktdHlwZXNjcmlwdCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI0MCIgLz48YnIgLz4KR2VuZXJhdGUgVHlwZVNjcmlwdCB0eXBlcyBmcm9tIHN0YXRpYyBPcGVuQVBJIHNjaGVtYXMKPC9hPgoKPGEgaHJlZj0iLi9wYWNrYWdlcy9vcGVuYXBpLWZldGNoIj48aW1nIHNyYz0iLi9kb2NzL3B1YmxpYy9hc3NldHMvb3BlbmFwaS1mZXRjaC5zdmciIGFsdD0ib3BlbmFwaS1mZXRjaCIgd2lkdGg9IjIxNiIgaGVpZ2h0PSI0MCIgLz48YnIgLz4KVWx0cmEtZmFzdCBmZXRjaGluZyBmb3IgVHlwZVNjcmlwdCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHlvdXIgT3BlbkFQSSBzY2hlbWEuCjwvYT4KCiMjIOKtkCBTcG9uc29ycwoKIyMjIPCfpYcgR29sZCBTcG9uc29ycwoKPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly96dXBsby5saW5rL29wZW5hcGktdHMtZ2giPjxpbWcgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiIGFsdD0iWnVwbG8iIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzg1NDk3ODM5P3M9MjAwJnY9NCI+PC9hPjwvcD4KCiMjIyDwn6WIIFNpbHZlciBTcG9uc29ycwoKPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL25hbmFiaXQtaW5jIj48aW1nIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiBhbHQ9Im5hbmFiaXQiIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1NDEyNjk3Nj9zPTIwMCZ2PTQiPjwvYT48L3A+CgojIyMgQmFja2VycwoKPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2N1c3RvbWVyaW8iPjxpbWcgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiBhbHQ9IkBjdXN0b21lcmlvIG9uIEdpdEh1YiIgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE1MjA3OT9zPTIwMCZ2PTQiPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NoYXVucGVyc2FkIj48aW1nIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgYWx0PSJAc2hhdW5wZXJzYWQgb24gR2l0SHViIiBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzAyOTc2P3M9NTImdj00Ij48L2E+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3lvc2hpMm5vIj48aW1nIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgYWx0PSJAeW9zaGkybm8gb24gR2l0SHViIiBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzA1OTcwNT92PTQiPjwvYT48L3A+CgpCZWNvbWUgYSBzcG9uc29yIGJ5IHN1cHBvcnRpbmcgdGhpcyBwcm9qZWN0IG9uIFtPcGVuQ29sbGVjdGl2ZV0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS10cykhCgo8YSBocmVmPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpLXRzL2RvbmF0ZSIgdGFyZ2V0PSJfYmxhbmsiPgogIDxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpLXRzL2RvbmF0ZS9idXR0b25AMngucG5nP2NvbG9yPWJsdWUiIHdpZHRoPSIzMDAiIC8+CjwvYT4KCiMjIPCfpJ0gQ29udHJpYnV0aW5nCgpDb250cmlidXRpb25zIGFyZSBhcHByZWNpYXRlZCBhbmQgd2VsY29tZSEgU2VlIHRoZSBhcHByb3ByaWF0ZSBndWlkZSBmb3IgZWFjaCBwYWNrYWdlOgoKLSBbQ29udHJpYnV0aW5nIHRvIG9wZW5hcGktdHlwZXNjcmlwdF0oLi9wYWNrYWdlcy9vcGVuYXBpLXR5cGVzY3JpcHQvQ09OVFJJQlVUSU5HLm1kKQotIFtDb250cmlidXRpbmcgdG8gb3BlbmFwaS1mZXRjaF0oLi9wYWNrYWdlcy9vcGVuYXBpLWZldGNoL0NPTlRSSUJVVElORy5tZCkKLSBbQ29udHJpYnV0aW5nIHRvIGRvY3NdKC4vZG9jcy9DT05UUklCVVRJTkcubWQpCgojIyDimaXvuI8gVGhhbmtzCgotIFRoYW5rcyB0byBbdGhlIFByb2plY3QgU3BvbnNvcnNdKCMtc3BvbnNvcnMpIGZvciBrZWVwaW5nIHRoaXMgcHJvamVjdCBnb2luZyEKLSBUaGFua3MgdG8gW2RvemVucyBvZiBsb3ZlbHksIHNtYXJ0IGNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktdHMvb3BlbmFwaS10eXBlc2NyaXB0L2dyYXBocy9jb250cmlidXRvcnMpIHRoYXQgbWFkZSB0aGlzIGxpYnJhcnkgcG9zc2libGUKLSBUaGFua3MgdG8gW1ZpdGVwcmVzc10oaHR0cHM6Ly92aXRlcHJlc3MuZGV2LykgZm9yIHRoZSBkb2NzIHNpdGUKLSBUaGFua3MgdG8gW0Nsb3VkZmxhcmUgUGFnZXNdKGh0dHBzOi8vcGFnZXMuY2xvdWRmbGFyZS5jb20vKSBmb3IgZG9jcyBzaXRlIGhvc3RpbmcKLSBUaGFua3MgdG8gW0FsZ29saWFdKGh0dHBzOi8vd3d3LmFsZ29saWEuY29tLykgZm9yIHRoZSBkb2NzIHNpdGUgc2VhcmNoCg== readmeEtag: '"d35dc25497128affb2d7adadf3e1d46098662f47"' readmeLastModified: Fri, 16 Aug 2024 18:01:01 GMT repositoryId: 161691324 description: Generate TypeScript types from OpenAPI 3 specs created: '2018-12-13T20:28:01Z' updated: '2024-09-06T03:09:44Z' language: TypeScript archived: false stars: 5465 watchers: 25 forks: 449 owner: openapi-ts logo: https://avatars.githubusercontent.com/u/172838200?v=4 license: MIT repoEtag: '"075dfa7463a9c91dff8572323a5b8c6a1d70ff9f33c14977c1ded4f381faac98"' repoLastModified: Fri, 06 Sep 2024 03:09:44 GMT foundInMaster: true oldLocations: - https://github.com/drwpow/openapi-typescript - source: openapi3 tags repository: https://github.com/xiaoymin/knife4j v3: true id: e1d4be4e3f97f5154f27fa1601e56818 repositoryMetadata: base64Readme: >- a25pZmU0auaYr+S4ukphdmEgTVZD5qGG5p626ZuG5oiQU3dhZ2dlcueUn+aIkEFwaeaWh+aho+eahOWinuW8uuino+WGs+aWueahiCzliY3ouqvmmK9zd2FnZ2VyLWJvb3RzdHJhcC11aSzlj5blkI1rbmlmZTRq5piv5biM5pyb5aW56IO95YOP5LiA5oqK5YyV6aaW5LiA5qC35bCP5benLOi9u+mHjyzlubbkuJTlip/og73lvLrmgo0hCgprbmlmZTRq55qE5YmN6Lqr5pivYHN3YWdnZXItYm9vdHN0cmFwLXVpYO+8jOS4uuS6huWlkeWQiOW+ruacjeWKoeeahOaetuaehOWPkeWxlSznlLHkuo7ljp/mnaVgc3dhZ2dlci1ib290c3RyYXAtdWlg6YeH55So55qE5piv5ZCO56uvSmF2YeS7o+eggSvliY3nq69Vaea3t+WQiOaJk+WMheeahOaWueW8jyzlnKjlvq7mnI3liqHmnrbmnoTkuIvmmL7nmoTlvojoh4Pogr8s5Zug5q2k6aG555uu5q2j5byP5pu05ZCN5Li6YGtuaWZlNGpgCgrmm7TlkI3lkI7kuLvopoHkuJPms6jnmoTmlrnpnaIKCi0g5YmN5ZCO56uvSmF2YeS7o+eggeS7peWPiuWJjeerr1Vp5qih5Z2X6L+b6KGM5YiG56a7LOWcqOW+ruacjeWKoeaetuaehOS4i+S9v+eUqOabtOWKoOeBtea0uwotIOaPkOS+m+S4k+azqOS6jlN3YWdnZXLnmoTlop7lvLrop6PlhrPmlrnmoYgs5LiN5ZCM5LqO5Y+q5piv5pS55ZaE5aKe5by65YmN56uvVWnpg6jliIYKLSDmj5Dkvpvmm7TlpJrngbXmtLvnmoTkuK3pl7Tku7bmlrnmoYhc5bel5YW3CgojIyDpobnnm67mqKHlnZcKCuebruWJjeS7k+W6k+S4u+imgeeahOaooeWdl+ivtOaYju+8mgoKfCDmqKHlnZflkI3np7AgICAgICAgICAgICAgfCDor7TmmI4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGtuaWZlNGogICAgICAgICAgICAgIHwg5Li6SmF2YSBNVkPmoYbmnrbpm4bmiJBTd2FnZ2Vy55qE5aKe5by66Kej5Yaz5pa55qGI77yMSmF2YeeUn+aAgeS4i+eahOS4remXtOS7tuWwgeijhSAgICAgICAgICAgICAgICAgICAgICB8Cnwga25pZmU0ai1pbnNpZ2h0IHzlvIDnrrHljbPnlKjnmoTni6znq4vop6PlhrPmlrnmoYgs5o+Q5L6b5a6Y5pa5W0RvY2tlcumVnOWDj10oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yZXBvc2l0b3J5L2RvY2tlci94aWFveW1pbi9rbmlmZTRqL2dlbmVyYWwpLOWfuuS6jlNwcmluZyBCb290IDMuMOe8luWGme+8jOafpeeci1vkvb/nlKjmlofmoaNdKGh0dHBzOi8vZG9jLnhpYW9taW5mby5jb20vZG9jcy9taWRkbGV3YXJlLXNvdXJjZXMvZGVza3RvcC1pbnRyb2R1Y3Rpb24pfAp8IGtuaWZlNGotZG9jICAgIHwga25pZmU0auWumOaWueaWh+aho++8jOWfuuS6jkRvY3VzYXVydXPnvJblhpnvvIzlj4LkuI7otKHnjK7or7db5Y+C6ICD5paH5qGjXShodHRwczovL2RvYy54aWFvbWluZm8uY29tL2RvY3MvY29tbXVuaXR5L2pvaW51cykgICAgICB8Cnwga25pZmU0ai12dWUgICAgICB85b2T5YmNS25pZmU0aueahOWJjeerr+a6kOegge+8jOWfuuS6jlZ1ZTIuMOe8luWGmSAgICAgICAgICAgICAgICAgICAgICAgICB8Cnwga25pZmU0ai12dWUzICAgICAgfOW9k+WJjUtuaWZlNGrnmoTliY3nq6/mupDnoIHvvIzln7rkuo5WdWUzLjDnvJblhpnvvIzor6Xku6PnoIHlupPmnaXoh6rotKHnjK7ogIXvvIznm67liY3lsJrmnKrmipXlhaXkvb/nlKggICAgICAgICAgICAgICAgICAgICAgICB8Cnwga25pZmU0ai1mcm9udCAgICAgICAgfCBrbmlmZTRq55qE5YmN56uv5p625p6E5Luj56CBLOebruWJjeaYr+inhOWIkumYtuaute+8jOivpeaooeWdl+Wwmuacque8lueggSzmnInmg7Pms5XnmoTlj6/ku6XpgJrov4fkuqTmtYHnvqTkuI7kvZzogIXmsp/pgJogICAgfAoKCgoKIyMg6I635Y+W5biu5YqpCgoKKirlrpjnvZHmlofmoaPvvJoqKiBbaHR0cHM6Ly9kb2MueGlhb21pbmZvLmNvbS9dKGh0dHBzOi8vZG9jLnhpYW9taW5mby5jb20vKQoKKirpooTop4jlnLDlnYA6KiogW2h0dHBzOi8vZG9jLnhpYW9taW5mby5jb20vZGVtby9kb2MuaHRtbF0oaHR0cHM6Ly9kb2MueGlhb21pbmZvLmNvbS9kZW1vL2RvYy5odG1sKQoKKipEZW1v56S65L6LOioqIFtodHRwczovL2dpdGVlLmNvbS94aWFveW0vc3dhZ2dlci1ib290c3RyYXAtdWktZGVtb10oaHR0cHM6Ly9naXRlZS5jb20veGlhb3ltL3N3YWdnZXItYm9vdHN0cmFwLXVpLWRlbW8pCgoqKkRlbW/or7TmmI7vvJoqKiBbaHR0cHM6Ly9kb2MueGlhb21pbmZvLmNvbS9kb2NzL2FjdGlvbi9hY3Rpb24tc2ltcGxlXShodHRwczovL2RvYy54aWFvbWluZm8uY29tL2RvY3MvYWN0aW9uL2FjdGlvbi1zaW1wbGUpCgoqKuS9nOiAheS6pOa1ge+8mioqIOWFs+azqOWFrOS8l+WPtyJLbmlmZTRqIu+8jOeCueWHu+iPnOWNleKAnOS6pOa1gee+pOKAneiOt+WPluWKoOe+pOS6jOe7tOeggQoKCiFb6L6T5YWl5Zu+54mH6K+05piOXShodHRwczovL2ZvcnVkYS5naXRlZS5jb20vaW1hZ2VzLzE2NjEwNTM4Njc1Njk0ODAzMTAv5omr56CBX+aQnOe0ouiBlOWQiOS8oOaSreagt+W8jy3moIflh4boibLniYgucG5nICLmiavnoIFf5pCc57Si6IGU5ZCI5Lyg5pKt5qC35byPLeagh+WHhuiJsueJiC5wbmciKQoKCgoKIyMg54m55Yir5aOw5piOCgrkuI3nrqHmmK9rbmlmZTRq6L+Y5pivc3dhZ2dlci1ib290c3RyYXAtdWkKCuWvueWkluaPkOS+m+eahOWcsOWdgOS+neeEtuaYr2RvYy5odG1sCgrorr/pl67vvJpodHRwOi8vaXA6cG9ydC9kb2MuaHRtbAoK5Y2z5Y+v5p+l55yL5paH5qGjCgoqKui/meaYr+awuOi/nOS4jeS8muaUueWPmOeahCoqCgoKCiMjIOeVjOmdouaViOaenAoKIVvmjqXlj6Por7TmmI5dKHN0YXRpYy8xLnBuZykKCiFb5o6l5Y+j6LCD6K+VXShzdGF0aWMvOC5wbmcpCgogIAojIyDwn6SdIOeJueWIq+m4o+iwoiAKCi0g5oSf6LCiIFtKZXRCcmFpbnNdKGh0dHBzOi8vamIuZ2cvT3BlblNvdXJjZVN1cHBvcnQpIOaPkOS+m+eahOWFjei0ueW8gOa6kCBMaWNlbnNl77yaCgo8aW1nIHNyYz0iaHR0cHM6Ly9yZXNvdXJjZXMuamV0YnJhaW5zLmNvbS9zdG9yYWdlL3Byb2R1Y3RzL2NvbXBhbnkvYnJhbmQvbG9nb3MvamJfYmVhbS5wbmciICB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgLz4KCgo8aDIgYWxpZ249ImNlbnRlciI+CvCfkqogQ29udHJpYnV0b3JzIPCfkqoKPC9oMj4KCjxwIGFsaWduPSJjZW50ZXIiPgpPdXIgY29udHJpYnV0b3JzIGhhdmUgbWFkZSB0aGlzIHByb2plY3QgcG9zc2libGUuIFRoYW5rIHlvdSEg8J+Zjwo8L3A+CgogCjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS94aWFveW1pbi9rbmlmZTRqL2dyYXBocy9jb250cmlidXRvcnMiPgogIDxpbWcgc3JjPSJodHRwczovL2NvbnRyaWIucm9ja3MvaW1hZ2U/cmVwbz14aWFveW1pbi9rbmlmZTRqIiB3aWR0aD0iMTAwJSIvPgo8L2E+CjxkaXYgYWxpZ249ImNlbnRlciI+CjxzdWI+TWFkZSB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vY29udHJpYi5yb2NrcyI+Y29udHJpYi5yb2NrczwvYT4uPC9zdWI+CjwvZGl2PgogCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3N0YXItaGlzdG9yeS5jb20vI3hpYW95bWluL2tuaWZlNGomRGF0ZSI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9eGlhb3ltaW4va25pZmU0aiZ0eXBlPURhdGUiIGFsdD0iU3RhciBIaXN0b3J5IENoYXJ0Ij4KICA8L2E+CjwvcD4K readmeEtag: '"71cfc0b45339fa88e06fa99776d7f8b68a1b5903"' readmeLastModified: Tue, 13 Aug 2024 02:24:00 GMT repositoryId: 88701696 description: Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution created: '2017-04-19T04:44:28Z' updated: '2024-09-04T10:06:49Z' language: HTML archived: false stars: 4052 watchers: 75 forks: 612 owner: xiaoymin logo: https://avatars.githubusercontent.com/u/7894406?v=4 license: Apache-2.0 repoEtag: '"12b2b16a84091989d1235c23d1d50d5e658ebbb72e753da4a94b845c7f3dbd51"' repoLastModified: Wed, 04 Sep 2024 10:06:49 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/apis-guru/openapi-directory v3: true repositoryMetadata: base64Readme: >- CgoKIVtiYW5uZXJdCgpbIVtBUElzIGluIGNvbGxlY3Rpb25dW251bUFwaXMtaW1hZ2VdXVthcGlzRGlyLWxpbmtdClshW09wZW5BUEkgZGVmaW5pdGlvbnNdW251bVNwZWNzLWltYWdlXV1bYXBpc0Rpci1saW5rXQpbIVtFbmRwb2ludHNdW2VuZHBvaW50cy1pbWFnZV1dW2FwaXNEaXItbGlua10KWyFbRml4ZXNdW2ZpeGVzLWltYWdlXV1bYXBpc0Rpci1saW5rXQpbIVtQcm92aWRlcnNdW3Byb3ZpZGVycy1pbWFnZV1dW2FwaXNEaXItbGlua10KWyFbRHJpdmVyc11bZHJpdmVycy1pbWFnZV1dW2FwaXNEaXItbGlua10KCiFbb2FkIEFjdGlvbnNdKGh0dHBzOi8vYXBpLm1lZXJjb2RlLmlvL2JhZGdlL01lcm1hZGUvb2FkP3R5cGU9Y2ktY291bnQmdG9rZW49eTdFZFAwSHhiNnE4UG9HM2gySkVtRFZRRGF0Wm10dGombGFzdERheT03KQpbIVtDaGF0IG9uIFNsYWNrXVtzbGFjay1pbWFnZV1dW3NsYWNrLWxpbmtdCgpbIVtTaGFyZSBvbiBUd2l0dGVyXVt0d2l0dGVyLWltYWdlXV1bdHdpdHRlci1saW5rXQpbIVtGb2xsb3cgb24gVHdpdHRlcl1bdHdpdHRlckZvbGxvdy1pbWFnZV1dW3R3aXR0ZXJGb2xsb3ctbGlua10KPGEgaHJlZj0iI2JhY2tlcnMiIGFsdD0ic3BvbnNvcnMgb24gT3BlbiBDb2xsZWN0aXZlIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3RvcnkvYmFja2Vycy9iYWRnZS5zdmciIC8+PC9hPiA8YSBocmVmPSIjc3BvbnNvcnMiIGFsdD0iU3BvbnNvcnMgb24gT3BlbiBDb2xsZWN0aXZlIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvcnMvYmFkZ2Uuc3ZnIiAvPjwvYT4gPGEgaHJlZj0iI3BhcnRuZXJzIiBhbHQ9IlBhcnRuZXJzIG9uIE9wZW4gQ29sbGVjdGl2ZSI+PGltZyBzcmM9Imh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGktZGlyZWN0b3J5L3BhcnRuZXIvYmFkZ2Uuc3ZnIiAvPjwvYT4KCkRpcmVjdG9yeSBvZiBBUEkgZGVmaW5pdGlvbnMgaW4gW09wZW5BUEkoZmthIFN3YWdnZXIpXShodHRwczovL29wZW5hcGlzLm9yZykgWzIuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzIuMC5tZCkgYW5kIFszLnhdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZCkgZm9ybWF0cy48QlI+CkFQSSBhY2Nlc3MgdG8gY29sbGVjdGlvbjogW0dvIV1bYXBpRG9jLWxpbmtdIC0gV2UgYWxzbyBoYXZlIFJTUyBmZWVkcyBmb3IgW2FkZGVkXShodHRwczovL2FwaS5hcGlzLmd1cnUvdjIvYWRkZWQucnNzKSBhbmQgW3VwZGF0ZWRdKGh0dHA6Ly9hcGkuYXBpcy5ndXJ1L3YyL2xpc3QucnNzKSBBUElzLgoKWyFbQWRkIEFQSV1bYWRkQVBJLWltYWdlXV1bYWRkQVBJLWxpbmtdCgpPdXIgZ29hbCBpcyB0byBjcmVhdGUgdGhlIG1vc3QgY29tcHJlaGVuc2l2ZSwgc3RhbmRhcmRzLWNvbXBsaWFudCBhbmQgdXAtdG8tZGF0ZSBkaXJlY3Rvcnkgb2YgbWFjaGluZS1yZWFkYWJsZSBBUEkgZGVmaW5pdGlvbnMsIHdpdGggdGhlIGZvbGxvd2luZyBwcmluY2lwbGVzOgotIE9wZW4gc291cmNlLCBjb21tdW5pdHkgZHJpdmVuIHByb2plY3QuCi0gT25seSBwdWJsaWNseSBhdmFpbGFibGUgQVBJcyAoZnJlZSBvciBwYWlkKS4KLSBBbnlvbmUgY2FuIGFkZCBvciBjaGFuZ2UgYW4gQVBJLCBub3Qgb25seSBBUEkgb3duZXJzLgotIEFsbCBkYXRhIGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIGEgW1JFU1QgQVBJXVthcGlEb2MtbGlua10uCgpJZiB5b3Ugd2FudCB0byByZWZlcmVuY2UgdGhpcyBwcm9qZWN0IGFuZCB5b3UgbmVlZCBhbiBpY29uIG9yIGV2ZW4gYSBiYW5uZXIsIGNoZWNrIG91ciBbYnJhbmRpbmcgZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElzLWd1cnUvYnJhbmRpbmcpLgoKVGhlIHByb2plY3Qgd2FzIHN0YXJ0ZWQgYnkgW0l2YW4gR29uY2hhcm92XShodHRwczovL2dpdGh1Yi5jb20vSXZhbkdvbmNoYXJvdikgb2YgQVBJcy5ndXJ1LCBpdCBpcyBub3cgbWFpbnRhaW5lZCBieSBbTWlrZSBSYWxwaHNvbl0oaHR0cHM6Ly9naXRodWIuY29tL01pa2VSYWxwaHNvbikgb2YgW01lcm1hZGUgU29mdHdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXJtYWRlKS4gQ2hlY2sgb3V0IG91ciBvdGhlciBbT3BlbkFQSS1yZWxhdGVkIHByb2plY3RzXShodHRwczovL2dpdGh1Yi5jb20vc2VhcmNoP3E9b3JnJTNBTWVybWFkZStvcGVuYXBpKS4KCkFQSXMuZ3VydSBwcm92aWRlIHNlcnZpY2VzIGFuZCBjb25zdWx0YW5jeSBhcm91bmQgdGhlIEdyYXBoUUwgYW5kIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgYW5kIEFQSXMgaW4gZ2VuZXJhbC4KWW91IGNhbiBjb250YWN0IHVzIGF0IGZvdW5kZXJzQGFwaXMuZ3VydSAvIG1pa2UucmFscGhzb25AZ21haWwuY29tCgpUaGUgT3BlbkFQSSBEaXJlY3RvcnkgaXMgc3BvbnNvcmVkIGJ5IFtTcGVha2Vhc3ldKGh0dHBzOi8vd3d3LnNwZWFrZWFzeWFwaS5kZXYvP3V0bV9zb3VyY2U9YXBpZ3VydXMrcmVwbyZ1dG1fbWVkaXVtPWdpdGh1YitzcG9uc29yc2hpcCkgLSBZb3VyIEFQSTogRW50ZXJwcmlzZSByZWFkeSBpbiBhIGNsaWNrLgoKWyFbU3BlYWtlYXN5IGxvZ29dKGh0dHBzOi8vYXBpcy5ndXJ1L2Fzc2V0cy9pbWFnZXMvc3BlYWtlYXN5LWdpdGh1Yi1zcG9uc29yLWRhcmsuc3ZnKV0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5YXBpLmRldi8/dXRtX3NvdXJjZT1hcGlndXJ1cytyZXBvJnV0bV9tZWRpdW09Z2l0aHViK3Nwb25zb3JzaGlwKQoKWyFbQmVjb21lIGEgcGFydG5lcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3RvcnkvdGllcnMvcGFydG5lci5zdmc/YXZhdGFySGVpZ2h0PTM2JndpZHRoPTYwMCldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGktZGlyZWN0b3J5KQoKV2hhdCBkb2VzIEFQSXMuZ3VydSBkbz8KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKiBGaWx0ZXIgb3V0IHByaXZhdGUgYW5kIG5vbi1yZWxpYWJsZSBBUElzCiogW0NvbnZlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL29hcy1raXQpIG5vbi1PcGVuQVBJIGZvcm1hdHMgaW50byBPcGVuQVBJIDMueAoqIEZpeCBtaXN0YWtlcywgfjgwJSBvZiBkZWZpbml0aW9ucyBoYXZlIHNvbWUKKiBBZGQgYWRkaXRpb25hbCBkYXRhLCBsaWtlOiBsb2dvLCBjYXRlZ29yaWVzLCDigKYKKiBVcGRhdGUgZGVmaW5pdGlvbnMgb24gYXQgbGVhc3QgYSB3ZWVrbHkgYmFzaXMKCkFQSSBkZWZpbml0aW9uIGFjY2VwdGFuY2UgY3JpdGVyaWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqIFB1YmxpYyAtIGFueW9uZSBjYW4gYWNjZXNzIGl0IGFzIGxvbmcgYXMgdGhleSBmb2xsb3cgc29tZSBjbGVhcmx5IGRlZmluZWQgc3RlcHMgKHN1YnNjcmliZSwgcGF5IGZlZXMsIGV0Yy4pLgoqIFBlcnNpc3RlbnQgLSBBUEkgaXMgbWFkZSB3aXRoIGxvbmctbGl2ZWQgZ29hbCwgYW5kIG5vdCBmb3IgYSBwYXJ0aWN1bGFyIGV2ZW50IChjb25mZXJlbmNlLCBoYWNrYXRob24sIGV0Yy4pLgoqIFVzZWZ1bCAtIEFQSSBzaG91bGQgcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25hbGl0eSBub3Qgb25seSBmb3IgaXRzIG93bmVyLgoKVXBkYXRlIHByb2NlZHVyZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBbGwgZGVmaW5pdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCBmcm9tIHRoZWlyIG9yaWdpbmFsIHNvdXJjZS4KWW91IGNhbiBzZWUgdGhpcyBpbiB0aGUgYHgtb3JpZ2luYCBwcm9wZXJ0eSB3aXRoaW4gZWFjaCBbb3BlbmFwaS55YW1sXShodHRwczovL2dpdGh1Yi5jb20vQVBJcy1ndXJ1L29wZW5hcGktZGlyZWN0b3J5L3NlYXJjaD91dGY4PSVFMiU5QyU5MyZxPXgtb3JpZ2luK2ZpbGVuYW1lJTNBb3BlbmFwaS55YW1sKSBvciBbc3dhZ2dlci55YW1sXShodHRwczovL2dpdGh1Yi5jb20vQVBJcy1ndXJ1L29wZW5hcGktZGlyZWN0b3J5L3NlYXJjaD91dGY4PSVFMiU5QyU5MyZxPXgtb3JpZ2luK2ZpbGVuYW1lJTNBc3dhZ2dlci55YW1sKSBmaWxlLgpXZSBydW4gb3VyIHVwZGF0ZSBzY3JpcHQgYXQgbGVhc3Qgd2Vla2x5IGFuZCBhdXRvbWF0aWNhbGx5IHJldmFsaWRhdGUgYmVmb3JlIGNvbW1pdHRpbmcuCklmIHlvdSBzZWUgc29tZSBBUElzIGFyZSBub3QgdXBkYXRlZCBmb3IgbW9yZSB0aGFuIDIgd2Vla3MgcGxlYXNlIG9wZW4gW2FuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vQVBJcy1ndXJ1L29wZW5hcGktZGlyZWN0b3J5L2lzc3Vlcy9uZXcpLgoKW0BzZXJpb3VzbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJpb3VzbWUpIGtpbmRseSBydW5zIGEgYmFja3VwIHZhbGlkYXRpb24gcHJvY2VzcyBiYXNlZCBvbiB0aGUgb2ZmaWNpYWwgT3BlbkFQSS1TcGVjaWZpY2F0aW9uIFtKU09OIFNjaGVtYXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL3RyZWUvbWFpbi9zY2hlbWFzKSBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL3NlcmlvdXNtZS9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3IvYmxvYi9tYXN0ZXIvdGVzdC9yZWFsd29ybGQvZmFpbGVkLm1kI3Jlc3VsdHMtb2YtcmVhbC13b3JsZC10ZXN0aW5nKS4KCk93bi1MYWJlbCBBUEkgRGlyZWN0b3J5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgohW093bi1MYWJlbCBsb2dvXShicmFuZGluZy9vd24tbGFiZWwucG5nKQoKKipEbyB5b3Ugd2FudCBhbiAnb3duLWxhYmVsJyBvciBpbnRlcm5hbCB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIERpcmVjdG9yeSB0byBjcmVhdGUgeW91ciBvd24gbWFya2V0cGxhY2Ugb3Iga2VlcCB0cmFjayBhbmQgZG9jdW1lbnQgYm90aCB5b3VyIGludGVybmFsIEFQSXMgYW5kIHRoZSBleHRlcm5hbCBBUEkgZGVmaW5pdGlvbnMgeW91ciBvcmdhbmlzYXRpb24gZGVwZW5kcyBvbj8gSWYgc28gY29udGFjdCB1cyBub3chKioKCkV4aXN0aW5nIGludGVncmF0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKWyFbQmVjb21lIGEgYmFja2VyXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpLWRpcmVjdG9yeS90aWVycy9iYWNrZXIuc3ZnP2F2YXRhckhlaWdodD0zNiZ3aWR0aD02MDApXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpLWRpcmVjdG9yeSkKCiAtIFtIVFRQIFRvb2xraXRdKGh0dHBzOi8vaHR0cHRvb2xraXQudGVjaC8pICoqQmVhdXRpZnVsICYgb3Blbi1zb3VyY2UgdG9vbHMgdG8gZGVidWcsIHRlc3QgYW5kIGRldmVsb3Agd2l0aCBIVFRQKFMpKioKIC0gW09wZW5BUEktRGlyZWN0b3J5LUpTXShodHRwczovL2dpdGh1Yi5jb20vaHR0cHRvb2xraXQvb3BlbmFwaS1kaXJlY3RvcnktanMpIC0gVGhlIE9wZW5BUEkgZGlyZWN0b3J5IHByZWNvbXBpbGVkICYgaW5kZXhlZCBmb3IgSlMgdXNhZ2UgJiBzZWFyY2hpbmcKIC0gW0FwaWRlY2tdKGh0dHBzOi8vYXBpZGVjay5jb20pIC0gRmFzdGVyIGRhdGEgaW50ZWdyYXRpb24gdGhyb3VnaCBVbmlmaWVkIEFQSXMKIC0gW01pY3Jvc29mdCBLaW90YV0oaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2tpb3RhLykgLSBHZW5lcmF0ZSBhbiBBUEkgY2xpZW50IHRvIGNhbGwgYW55IE9wZW5BUEkgZGVzY3JpYmVkIEFQSQogLSBbQVBJIFRyYWNrZXJdKGh0dHBzOi8vYXBpdHJhY2tlci5pby8pIC0gQWdncmVnYXRlcyAxNCwwMDArIEFQSXMsIFNES3MsIEFQSSBzcGVjaWZpY2F0aW9ucywgaW50ZWdyYXRpb25zIGFuZCBEWCBwcm9maWxlcy4gSXQgYWltcyB0byBoZWxwIGRldmVsb3BlcnMgYWNjZXNzIHRoZSBpbmZvcm1hdGlvbiB0aGV5IG5lZWQgdG8gaW50ZWdyYXRlIEFQSXMgZmFzdGVyCiAtIFtBUEkgV2F0Y2hdKGh0dHBzOi8vd3d3LmFwaXdhdGNoLmlvKSAtIEtlZXAgdHJhY2sgb2YgdGhlIEFQSXMgeW91IHVzZQogLSBodHRwczovL3BpcGVkcmVhbS5jb20vIC0gVGhlIGludGVncmF0aW9uIHBsYXRmb3JtIGJ1aWx0IGZvciBkZXZlbG9wZXJzCiAtIGh0dHBzOi8vYW55LWFwaS5jb20gLSBEb2N1bWVudGF0aW9uIGFuZCBUZXN0IENvbnNvbGVzIGZvciBQdWJsaWMgQVBJcwogLSBodHRwczovL2RhdGFmaXJlLmlvIC0gQWxsb3dzIHlvdSB0byBwcm9jZXNzIGFuZCB0cmFuc2ZlciBkYXRhIGJldHdlZW4gQVBJcywgZGF0YWJhc2VzLCBhbmQgbW9yZQogLSBbaHR0cHM6Ly9zZGtzLmlvXShodHRwczovL3Nka3MuaW8vU2VhcmNoL0ZpbmRTREtzP0JyaWRnZT1BUElzLmd1cnUpIC0gRXhwbG9yZSBBdXRvbWF0aWNhbGx5IEdlbmVyYXRlZCBTREtzCiAtIFtodHRwczovL2Nlbml0LmlvXShodHRwczovL2Nlbml0LmlvL2RpcmVjdG9yeT9zcGVjPXN3YWdnZXIpIC0gRGF0YSBpbnRlZ3JhdGlvbiBwbGF0Zm9ybQogLSBbY29tbWFuZGNhcl0oaHR0cHM6Ly9naXRodWIuY29tL3Rpa2Fsay9jb21tYW5kY2FyI2luc3RhbGxpbmctZnJvbS1hcGktbW9kZWxzKSAtIEN1cmwgb24gc3Rlcm9pZHMKIC0gW01hdGVyaWFsIFN3YWdnZXIgVUkgSHViXShodHRwczovL2Rhcm9zaC5naXRodWIuaW8vYW5ndWxhci1zd2FnZ2VyLXVpLW1hdGVyaWFsL2h1Yi8pIC0gdGVzdGluZyBhbmQgZXhwbG9yaW5nIGh1YiBmb3IgTWF0ZXJpYWwgU3dhZ2dlciBVSSBkZW1vCiAtIFtQYXddKGh0dHBzOi8vcGF3LmNsb3VkLykgLSBIVFRQIGNsaWVudCBmb3IgTWFjIC0gWW91IGNhbiBpbXBvcnQgZGVmaW5pdGlvbnMgYW5kIGRpcmVjdGx5IHBsYXkgd2l0aCB0aGUgQVBJcywgW3NlZSBob3ddKGh0dHBzOi8vcGF3LmNsb3VkL2RvY3MvZXhhbXBsZXMvc2VhcmNoLWFwaXMpCiAtIFtCaXRzY29vcF0oaHR0cHM6Ly9iaXRzY29vcC5jb20vKSAtIEEgYmV0dGVyIHdheSB0byBjcmVhdGUgYW5kIG1haW50YWluIGludGVncmF0aW9ucwogLSBbV2luU3dhZ10oaHR0cHM6Ly9naXRodWIuY29tL1N2ZW5FVi9XaW5Td2FnKSAtIEEgVVdQIGFwcCBmb3IgbG9hZGluZyBTd2FnZ2VyIGRlZmluaXRpb25zIGFuZCBleHBsb3JpbmcgUkVTVCBBUElzCiAtIFtSZWFkTWUuaW9dKGh0dHBzOi8vcHJldmlldy5yZWFkbWUuaW8pIC0gQmVhdXRpZnVsLCBwZXJzb25hbGl6ZWQsIGludGVyYWN0aXZlIGRldmVsb3BlciBodWJzCiAtIFtWZWxvc2ltb10oaHR0cHM6Ly9jb25uZWN0LnZlbG9zaW1vLmlvL29wZW5fYXBpX2RpcmVjdG9yeSkgLSBJbnRlZ3JhdGlvbiBwbGF0Zm9ybSBmb3IgZUdvdmVybm1lbnQKIC0gW01vY2tjb29uXShodHRwczovL21vY2tvb24uY29tL21vY2stc2FtcGxlcy9jYXRlZ29yeS9hbGwvKSAtIEFQSSBtb2NrIHNhbXBsZXMgZm9yIHlvdXIgcHJvamVjdAoKQWxzbyB1c2VkIGFzIHRlc3Qgc3VpdGUgaW4gdGhlIGZvbGxvd2luZyBwcm9qZWN0czoKIC0gW1NwZWFrZWFzeV0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5YXBpLmRldi8/dXRtX3NvdXJjZT1hcGlndXJ1cytyZXBvJnV0bV9tZWRpdW09Z2l0aHViK3Nwb25zb3JzaGlwKSAtICoqR2VuZXJhdGUgU0RLcyBOb3cuIEdpdmVzIHlvdXIgdXNlcnMgdGhlIERldkV4IHRoYXQgbWFrZXMgQVBJIGludGVncmF0aW9ucyBlYXN5KioKIC0gW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykgLSBPcGVuQVBJLWdlbmVyYXRlZCBBUEkgUmVmZXJlbmNlIERvY3VtZW50YXRpb24KIC0gW3N3YWdnZXItcGFyc2VyXShodHRwczovL2dpdGh1Yi5jb20vQmlnc3RpY2tDYXJwZXQvc3dhZ2dlci1wYXJzZXIpIC0gT3BlbkFQSSBwYXJzZXIgYW5kIHZhbGlkYXRvciBmb3IgTm9kZSBhbmQgYnJvd3NlcnMKIC0gW09wZW5BUEktc2NoZW1hLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3NlcmlvdXNtZS9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3IpIC0gT3BlbkFwaSBzY2hlbWEgdmFsaWRhdGlvbiBmb3IgT3BlbkFwaSB2ZXJzaW9ucyB2MiwgdjMuMC54IGFuZCB2My4xLngKIC0gW1N3YWdnZXJQcm92aWRlcl0oaHR0cHM6Ly9naXRodWIuY29tL3NlcmdleS10aWhvbi9Td2FnZ2VyUHJvdmlkZXIpIC0gRiMgVHlwZSBQcm92aWRlciBmb3IgU3dhZ2dlcgogLSBbYXJkb3Etc3dhZ2dlci1hZGRvbl0oaHR0cHM6Ly9naXRodWIuY29tL2FyZG9xL2FyZG9xLXN3YWdnZXItYWRkb24pIC0gQXJkb3EgT3BlbkFQSSBhZGRvbgogLSBbc3dhZ3ZhbGldKGh0dHBzOi8vZ2l0aHViLmNvbS9zdWJlZXNoY2JhYnUvc3dhZ3ZhbGkvKSAtIE1vZHVsZSB0byBidWlsZCB2YWxpZGF0b3JzIGZvciBPcGVuQVBJIFJlcXVlc3QgcGFyYW1ldGVycyBhbmQgUmVzcG9uc2Ugb2JqZWN0cwogLSBbc3dhZ2dlci1zZWFyY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9JRy1Hcm91cC9zd2FnZ2VyLXNlYXJjaCkgLSBBbiBhcHBsaWNhdGlvbiB0aGF0IGNvbGxlY3RzIGFuZCBpbmRleGVzIHN3YWdnZXIgZG9jcyBmcm9tIHlvdXIgbWljcm9zZXJ2aWNlcyBhcmNoaXRlY3R1cmUKCgpJbnRlZ3JhdGlvbiB3aXRoIDNyZC1wYXJ0eSBzZXJ2aWNlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpXZSBkaXNjb3VyYWdlIHlvdSBmcm9tIHVzaW5nIEdpdGh1YiBSQVcgbGlua3Mgb3IgR2l0IGRpcmVjdGx5LCB0aGUgcmVwb3NpdG9yeSBzdHJ1Y3R1cmUgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgpJbnN0ZWFkLCB3ZSBzdHJvbmdseSByZWNvbW1lbmQgeW91IHRvIHVzZSBvdXIgW1JFU1QgQVBJXVthcGlEb2MtbGlua10uCgpMaWNlbnNlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBbGwgQVBJIGRlZmluaXRpb25zIGNvbnRyaWJ1dGVkIHRvIHByb2plY3QgYnkgYXV0aG9ycyBhcmUgY292ZXJlZCBieSB0aGUgW0NDMDEuMF0oaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8pIGxpY2Vuc2UuPGJyPgpBbGwgQVBJIGRlZmluaXRpb25zIGFjcXVpcmVkIGZyb20gcHVibGljIHNvdXJjZXMgdW5kZXIgdGhlIFtGYWlyIHVzZV0oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GYWlyX3VzZSkgcHJpbmNpcGxlLgoKRGVmaW5pdGlvbiBzb3VyY2VzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClNvbWUgZGVmaW5pdGlvbnMgYXJlIHRha2VuIGZyb20gT3BlbiBTb3VyY2UgcHJvamVjdHM6CiAtIFtkYXJrbHlueC9zd2FnZ2VyLWFwaS1jb2xsZWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vZGFya2x5bngvc3dhZ2dlci1hcGktY29sbGVjdGlvbikgLSBPcGVuQVBJIGRlc2NyaXB0aW9uIGZvciBJbnN0YWdyYW0gQVBJCiAtIFtNZXJtYWRlL2JiY2FwaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL2JiY2FwaXMpIC0gT3BlbkFQSSBkZWZpbml0aW9ucyBmb3IgdGhlIEJCQyBOaXRybyBhbmQgaUJMIEFQSXMKIC0gW2FtYXJkZXNoYmQvbWVkaXVtLWFwaS1zcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vYW1hcmRlc2hiZC9tZWRpdW0tYXBpLXNwZWNpZmljYXRpb24pIC0gT3BlbkFQSSAyLjAgZGVzY3JpcHRpb24gZm9yIE1lZGl1bSBBUEkKIC0gW2ZhcmFnb3JuL29wZW4tYXBpLXNwZWNzXShodHRwczovL2dpdGh1Yi5jb20vZmFyYWdvcm4vb3Blbi1hcGktc3BlY3MpIC0gT3BlbkFQSSBkZWZpbml0aW9uIGZvciB0aGUgR2lwaHkgQVBJCgpbYmFubmVyXTogaHR0cHM6Ly9hcGlzLmd1cnUvYnJhbmRpbmcvYmFubmVyLnN2ZyAiQVBJcy5ndXJ1IgpbdHdpdHRlci1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHdpdHRlci91cmwvaHR0cC9BUElzLmd1cnUuc3ZnP3N0eWxlPXNvY2lhbApbdHdpdHRlci1saW5rXTogaHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ/dGV4dD1odHRwJTNBJTJGJTJGQVBJcy5ndXJ1JTIwLSUyMFdpa2lwZWRpYSUyMGZvciUyMCUyM1dlYiUyMCUyM0FQSXMlMjBieSUyMEBBUElzX2d1cnUlMjBwaWMudHdpdHRlci5jb20vVWhsaGJNdzFOUApbdHdpdHRlckZvbGxvdy1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHdpdHRlci9mb2xsb3cvQVBJc19ndXJ1LnN2Zz9zdHlsZT1zb2NpYWwKW3R3aXR0ZXJGb2xsb3ctbGlua106IGh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L2ZvbGxvdz9zY3JlZW5fbmFtZT1BUElzX2d1cnUKW3NsYWNrLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9TbGFjay1BUElzX1dvcmtpbmdfR3JvdXAtYnJpZ2h0Z3JlZW4KW3NsYWNrLWxpbmtdOiBodHRwczovL2pvaW4uc2xhY2suY29tL3QvbWVybWFkZS9zaGFyZWRfaW52aXRlL3p0LWc3OGc3eGlyLU1MRV9DVENjWENkZkpmRzNDSmU5cUEKW251bUFwaXMtaW1hZ2VdOiBodHRwczovL2FwaS5hcGlzLmd1cnUvYmFkZ2VzL2FwaXNfaW5fY29sbGVjdGlvbi5zdmcKW251bVNwZWNzLWltYWdlXTogaHR0cHM6Ly9hcGkuYXBpcy5ndXJ1L2JhZGdlcy9vcGVuYXBpX3NwZWNzLnN2ZwpbZW5kcG9pbnRzLWltYWdlXTogaHR0cHM6Ly9hcGkuYXBpcy5ndXJ1L2JhZGdlcy9lbmRwb2ludHMuc3ZnCltmaXhlcy1pbWFnZV06IGh0dHBzOi8vYXBpLmFwaXMuZ3VydS9iYWRnZXMvZml4ZXMuc3ZnCltwcm92aWRlcnMtaW1hZ2VdOiBodHRwczovL2FwaS5hcGlzLmd1cnUvYmFkZ2VzL3Byb3ZpZGVycy5zdmcKW2RyaXZlcnMtaW1hZ2VdOiBodHRwczovL2FwaS5hcGlzLmd1cnUvYmFkZ2VzL2RyaXZlcnMuc3ZnClthcGlzRGlyLWxpbmtdOiAuL0FQSXMKW2FkZEFQSS1pbWFnZV06IGh0dHBzOi8vY2xvdWQuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fzc2V0cy84MzM2MTU3LzE1ODYxNjE0LzdlMzE1MTFhLTJjZDUtMTFlNi04Yjc5LTM4YWQwZjYxZTU5OC5wbmcKW2FkZEFQSS1saW5rXTogaHR0cHM6Ly9hcGlzLmd1cnUvYWRkLWFwaS8KW2FwaURvYy1saW5rXTogaHR0cHM6Ly9hcGlzLmd1cnUvYXBpLWRvYy8KCiMjIENvbnRyaWJ1dG9ycwoKVGhpcyBwcm9qZWN0IGV4aXN0cyB0aGFua3MgdG8gYWxsIHRoZSBwZW9wbGUgd2hvIFtjb250cmlidXRlXShDT05UUklCVVRJTkcubWQpLgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQVBJcy1ndXJ1L29wZW5hcGktZGlyZWN0b3J5L2dyYXBocy9jb250cmlidXRvcnMiPjxpbWcgc3JjPSJodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpLWRpcmVjdG9yeS9jb250cmlidXRvcnMuc3ZnP3dpZHRoPTg5MCZidXR0b249ZmFsc2UiIC8+PC9hPgoKIyMgQXN5bmNocm9ub3VzIEFQSXMKClNlZSBhbHNvIFtBc3luY0FQSS1EaXJlY3RvcnldKGh0dHBzOi8vYXBpcy5ndXJ1L2FzeW5jYXBpLWRpcmVjdG9yeS9BUElzLykKCiMjIEJhY2tlcnMKClRoYW5rIHlvdSB0byBhbGwgb3VyIGJhY2tlcnMhIPCfmY8gW0JlY29tZSBhIGJhY2tlcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3RvcnkjYmFja2VyKS4KCjxhIGhyZWY9Imh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGktZGlyZWN0b3J5I2JhY2tlcnMiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3RvcnkvYmFja2Vycy5zdmc/d2lkdGg9ODkwIj48L2E+CgoKIyMgU3BvbnNvcnMKClN1cHBvcnQgdGhpcyBwcm9qZWN0IGJ5IGJlY29taW5nIGEgc3BvbnNvci4gWW91ciBsb2dvIHdpbGwgc2hvdyB1cCBoZXJlIHdpdGggYSBsaW5rIHRvIHlvdXIgd2Vic2l0ZS4gW0JlY29tZSBhIHNwb25zb3JdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGktZGlyZWN0b3J5I3Nwb25zb3IpLgoKPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8wL3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8wL2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8xL3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8xL2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8yL3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8yL2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8zL3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci8zL2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci80L3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci80L2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci81L3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci81L2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci82L3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci82L2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci83L3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci83L2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci84L3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci84L2F2YXRhci5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci85L3dlYnNpdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaS1kaXJlY3Rvcnkvc3BvbnNvci85L2F2YXRhci5zdmciPjwvYT4KCiMjIFBhcnRuZXJzCgpTdXBwb3J0IHRoaXMgcHJvamVjdCBieSBiZWNvbWluZyBhIHBhcnRuZXIuIFlvdXIgbG9nbyB3aWxsIGJlIGRpc3BsYXllZCBwcm9taW5lbnRseSBpbiB0aGlzIHByb2plY3QgYW5kIHdlIHdpbGwgd29yayB3aXRoIHlvdSB0byBwdWJsaWNpc2UgYW5kIHNob3djYXNlIHlvdXIgcHJvamVjdHMuIFtCZWNvbWUgYSBwYXJ0bmVyXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpLWRpcmVjdG9yeSNwYXJ0bmVyKS4K readmeEtag: '"834729be9e65728a50f0aef680a907193c20f0bd"' readmeLastModified: Fri, 01 Mar 2024 23:21:24 GMT repositoryId: 31177593 description: >- 🌐 Wikipedia for Web APIs. Directory of REST API definitions in OpenAPI 2.0/3.x format created: '2015-02-22T19:58:12Z' updated: '2024-09-06T01:00:51Z' language: null archived: false stars: 3822 watchers: 113 forks: 574 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: CC0-1.0 repoEtag: '"4e466bda59dfcc6d4821989ba5d7bb2be2ab43ade27617c3682c875d228e9338"' repoLastModified: Fri, 06 Sep 2024 01:00:51 GMT foundInMaster: true category: SDK id: 667f2aef78d9d19418fbd6c0a7835abb - source: openapi3 tags name: springdoc-openapi homepage: https://github.com/springdoc/springdoc-openapi language: Java source_description: >- Library that produces OpenAPI 3.x specification documentation for spring-boot applications. category: - Low-level Tooling - Server Implementations repository: https://github.com/springdoc/springdoc-openapi v3: true repositoryMetadata: base64Readme: >- IVtPY3RvY2F0XShodHRwczovL3NwcmluZ2RvYy5vcmcvaW1nL2Jhbm5lci1sb2dvLnN2ZykKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2NpLWNkLnNwcmluZ2RvYy5vcmc6ODQ0My9idWlsZFN0YXR1cy9pY29uP2pvYj1zcHJpbmdkb2Mtb3BlbmFwaS1zdGFydGVyLUlDKV0oaHR0cHM6Ly9jaS1jZC5zcHJpbmdkb2Mub3JnOjg0NDMvdmlldy9zcHJpbmdkb2Mtb3BlbmFwaS9qb2Ivc3ByaW5nZG9jLW9wZW5hcGktc3RhcnRlci1JQy8pClshW1F1YWxpdHkgR2F0ZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9c3ByaW5nZG9jX3NwcmluZ2RvYy1vcGVuYXBpJm1ldHJpYz1hbGVydF9zdGF0dXMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPXNwcmluZ2RvY19zcHJpbmdkb2Mtb3BlbmFwaSkKWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvc3ByaW5nZG9jL3NwcmluZ2RvYy1vcGVuYXBpLmdpdC9iYWRnZS5zdmcpXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvc3ByaW5nZG9jL3NwcmluZ2RvYy1vcGVuYXBpLmdpdCkKWyFbU3RhY2sgRXhjaGFuZ2UgcXVlc3Rpb25zXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YWNrZXhjaGFuZ2Uvc3RhY2tvdmVyZmxvdy90L3NwcmluZ2RvYyldKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zL3RhZ2dlZC9zcHJpbmdkb2M/dGFiPVZvdGVzKQoKSU1QT1JUQU5UOiBgYHNwcmluZ2RvYy1vcGVuYXBpIHYxLjguMGBgIGlzIHRoZSBsYXRlc3QgT3BlbiBTb3VyY2UgcmVsZWFzZSBzdXBwb3J0aW5nIFNwcmluZyBCb290IDIueCBhbmQgMS54LiAKCkFuIGV4dGVuZGVkIHN1cHBvcnQgZm9yIFsqc3ByaW5nZG9jLW9wZW5hcGkgdjEqXShodHRwczovL3NwcmluZ2RvYy5vcmcvdjEpIApwcm9qZWN0IGlzIG5vdyBhdmFpbGFibGUgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCBuZWVkIHN1cHBvcnQgYmV5b25kIDIwMjMuIAoKRm9yIG1vcmUgZGV0YWlscywgZmVlbCBmcmVlIHRvIHJlYWNoIG91dDogW3NhbGVzQHNwcmluZ2RvYy5vcmddKG1haWx0bzpzYWxlc0BzcHJpbmdkb2Mub3JnKQoKYGBzcHJpbmdkb2Mtb3BlbmFwaWBgIGlzIG9uIFtPcGVuIENvbGxlY3RpdmVdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL3NwcmluZ2RvYykuIElmIHlvdSDinaTvuI8gdGhpcyBwcm9qZWN0IGNvbnNpZGVyIGJlY29taW5nCmEgW3Nwb25zb3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9zcHJpbmdkb2MpLgoKVGhpcyBwcm9qZWN0IGlzIHNwb25zb3JlZCBieQoKPHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vb3BlbnNvdXJjZS5tZXJjZWRlcy1iZW56LmNvbS8iIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgc3JjPSJodHRwczovL3NwcmluZ2RvYy5vcmcvaW1nL21lcmNlZGVzLWJlbnoucG5nIiBoZWlnaHQ9IjEwJSIgd2lkdGg9IjEwJSIgLz4KPC9hPgombmJzcDsmbmJzcDsKCjxhIGhyZWY9Imh0dHBzOi8vd3d3LmRtLWpvYnMuY29tL2RtVEVDSC8/bG9jYWxlPWRlX0RFJnd0X21jPS5kaXNwbGF5LmdpdGh1Yi5zcG9uc29yaW5nLmxvZ28iIHRhcmdldD0iX2JsYW5rIj4KICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9zcHJpbmdkb2Mub3JnL2ltZy9kbVRFQ0hfTG9nby5qcGciIGhlaWdodD0iMTAlIiB3aWR0aD0iMTAlIiAvPgo8L2E+Cgo8YSBocmVmPSJodHRwczovL3d3dy5jb250cmFzdHNlY3VyaXR5LmNvbS8iIHRhcmdldD0iX2JsYW5rIj4KICAgPGltZyBzcmM9Imh0dHBzOi8vc3ByaW5nZG9jLm9yZy9pbWcvY29udHJhc3RzZWN1cml0eS5zdmciIGhlaWdodD0iMTAlIiB3aWR0aD0iMzAlIiAvPgo8L2E+CjwvcD4KCiMgVGFibGUgb2YgQ29udGVudHMKCi0gW0Z1bGwgZG9jdW1lbnRhdGlvbl0oI2Z1bGwtZG9jdW1lbnRhdGlvbikKLSBbKipJbnRyb2R1Y3Rpb24qKl0oI2ludHJvZHVjdGlvbikKLSBbKipHZXR0aW5nIFN0YXJ0ZWQqKl0oI2dldHRpbmctc3RhcnRlZCkKICAgIC0gW0xpYnJhcnkgZm9yIHNwcmluZ2RvYy1vcGVuYXBpIGludGVncmF0aW9uIHdpdGggc3ByaW5nLWJvb3QgYW5kIHN3YWdnZXItdWldKCNsaWJyYXJ5LWZvci1zcHJpbmdkb2Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi13aXRoLXNwcmluZy1ib290LWFuZC1zd2FnZ2VyLXVpKQogICAgLSBbU3ByaW5nLWJvb3Qgd2l0aCBPcGVuQVBJIERlbW8gYXBwbGljYXRpb25zLl0oI3NwcmluZy1ib290LXdpdGgtb3BlbmFwaS1kZW1vLWFwcGxpY2F0aW9ucykKICAgICAgICAtIFtTb3VyY2UgQ29kZSBmb3IgRGVtbyBBcHBsaWNhdGlvbnMuXSgjc291cmNlLWNvZGUtZm9yLWRlbW8tYXBwbGljYXRpb25zKQogICAgICAgIC0gW0RlbW8gU3ByaW5nIEJvb3QgMiBXZWIgTVZDIHdpdGggT3BlbkFQSSAzLl0oI2RlbW8tc3ByaW5nLWJvb3QtMi13ZWItbXZjLXdpdGgtb3BlbmFwaS0zKQogICAgICAgIC0gW0RlbW8gU3ByaW5nIEJvb3QgMiBXZWJGbHV4IHdpdGggT3BlbkFQSSAzLl0oI2RlbW8tc3ByaW5nLWJvb3QtMi13ZWJmbHV4LXdpdGgtb3BlbmFwaS0zKQogICAgICAgIC0gW0RlbW8gU3ByaW5nIEJvb3QgMiBXZWJGbHV4IHdpdGggRnVuY3Rpb25hbCBlbmRwb2ludHMgT3BlbkFQSSAzLl0oI2RlbW8tc3ByaW5nLWJvb3QtMi13ZWJmbHV4LXdpdGgtZnVuY3Rpb25hbC1lbmRwb2ludHMtb3BlbmFwaS0zKQogICAgICAgIC0gW0RlbW8gU3ByaW5nIEJvb3QgMiBhbmQgU3ByaW5nIEhhdGVvYXMgd2l0aCBPcGVuQVBJIDMuXSgjZGVtby1zcHJpbmctYm9vdC0yLWFuZC1zcHJpbmctaGF0ZW9hcy13aXRoLW9wZW5hcGktMykKICAgIC0gW0ludGVncmF0aW9uIG9mIHRoZSBsaWJyYXJ5IGluIGEgU3ByaW5nIEJvb3QgMy54IHByb2plY3Qgd2l0aG91dCB0aGUgc3dhZ2dlci11aTpdKCNpbnRlZ3JhdGlvbi1vZi10aGUtbGlicmFyeS1pbi1hLXNwcmluZy1ib290LTN4LXByb2plY3Qtd2l0aG91dC10aGUtc3dhZ2dlci11aSkKICAgIC0gW0Vycm9yIEhhbmRsaW5nIGZvciBSRVNUIHVzaW5nIEBDb250cm9sbGVyQWR2aWNlXSgjZXJyb3ItaGFuZGxpbmctZm9yLXJlc3QtdXNpbmctY29udHJvbGxlcmFkdmljZSkKICAgIC0gW0FkZGluZyBBUEkgSW5mb3JtYXRpb24gYW5kIFNlY3VyaXR5IGRvY3VtZW50YXRpb25dKCNhZGRpbmctYXBpLWluZm9ybWF0aW9uLWFuZC1zZWN1cml0eS1kb2N1bWVudGF0aW9uKQogICAgLSBbc3ByaW5nLXdlYmZsdXggc3VwcG9ydCB3aXRoIEFubm90YXRlZCBDb250cm9sbGVyc10oI3NwcmluZy13ZWJmbHV4LXN1cHBvcnQtd2l0aC1hbm5vdGF0ZWQtY29udHJvbGxlcnMpCi0gW0Fja25vd2xlZGdlbWVudHNdKCNhY2tub3dsZWRnZW1lbnRzKQogICAgLSBbQ29udHJpYnV0b3JzXSgjY29udHJpYnV0b3JzKQogICAgLSBbQWRkaXRpb25hbCBTdXBwb3J0XSgjYWRkaXRpb25hbC1zdXBwb3J0KQoKIyBbRnVsbCBkb2N1bWVudGF0aW9uXShodHRwczovL3NwcmluZ2RvYy5vcmcvKQoKIyAqKkludHJvZHVjdGlvbioqCgpUaGUgc3ByaW5nZG9jLW9wZW5hcGkgSmF2YSBsaWJyYXJ5IGhlbHBzIGF1dG9tYXRpbmcgdGhlIGdlbmVyYXRpb24gb2YgQVBJIGRvY3VtZW50YXRpb24KdXNpbmcgU3ByaW5nIEJvb3QgcHJvamVjdHMuCnNwcmluZ2RvYy1vcGVuYXBpIHdvcmtzIGJ5IGV4YW1pbmluZyBhbiBhcHBsaWNhdGlvbiBhdCBydW50aW1lIHRvIGluZmVyIEFQSSBzZW1hbnRpY3MKYmFzZWQgb24gU3ByaW5nIGNvbmZpZ3VyYXRpb25zLCBjbGFzcyBzdHJ1Y3R1cmUgYW5kIHZhcmlvdXMgYW5ub3RhdGlvbnMuCgpUaGUgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBkb2N1bWVudGF0aW9uIGluIEpTT04vWUFNTCBhbmQgSFRNTCBmb3JtYXR0ZWQgcGFnZXMuClRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgY29tcGxlbWVudGVkIHVzaW5nIGBzd2FnZ2VyLWFwaWAgYW5ub3RhdGlvbnMuCgpUaGlzIGxpYnJhcnkgc3VwcG9ydHM6CgoqIE9wZW5BUEkgMwoqIFNwcmluZy1ib290IHYzIChKYXZhIDE3ICYgSmFrYXJ0YSBFRSA5KQoqIEpTUi0zMDMsIHNwZWNpZmljYWxseSBmb3IgQE5vdE51bGwsIEBNaW4sIEBNYXgsIGFuZCBAU2l6ZS4KKiBTd2FnZ2VyLXVpCiogT0F1dGggMgoqIEdyYWFsVk0gbmF0aXZlIGltYWdlcwoKVGhlIGZvbGxvd2luZyB2aWRlbyBpbnRyb2R1Y2VzIHRoZSBMaWJyYXJ5OgoKKiBbaHR0cHM6Ly95b3V0dS5iZS91dFJ4eVBmRmxEd10oaHR0cHM6Ly95b3V0dS5iZS91dFJ4eVBmRmxEdykKCkZvciAqc3ByaW5nLWJvb3QgdjMqIHN1cHBvcnQsIG1ha2Ugc3VyZSB5b3UgdXNlIFtzcHJpbmdkb2Mtb3BlbmFwaSB2Ml0oaHR0cHM6Ly9zcHJpbmdkb2Mub3JnLykKClRoaXMgaXMgYSBjb21tdW5pdHktYmFzZWQgcHJvamVjdCwgbm90IG1haW50YWluZWQgYnkgdGhlIFNwcmluZyBGcmFtZXdvcmsgQ29udHJpYnV0b3JzIChQaXZvdGFsKQoKIyAqKkdldHRpbmcgU3RhcnRlZCoqCgojIyBMaWJyYXJ5IGZvciBzcHJpbmdkb2Mtb3BlbmFwaSBpbnRlZ3JhdGlvbiB3aXRoIHNwcmluZy1ib290IGFuZCBzd2FnZ2VyLXVpCgoqIEF1dG9tYXRpY2FsbHkgZGVwbG95cyBzd2FnZ2VyLXVpIHRvIGEgU3ByaW5nIEJvb3QgMy54IGFwcGxpY2F0aW9uCiogRG9jdW1lbnRhdGlvbiB3aWxsIGJlIGF2YWlsYWJsZSBpbiBIVE1MIGZvcm1hdCwgdXNpbmcgdGhlCiAgb2ZmaWNpYWwgW3N3YWdnZXItdWkgamFyc10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkuZ2l0KS4KKiBUaGUgU3dhZ2dlciBVSSBwYWdlIHNob3VsZCB0aGVuIGJlIGF2YWlsYWJsZSBhdCBodHRwOi8vc2VydmVyOgogIHBvcnQvY29udGV4dC1wYXRoL3N3YWdnZXItdWkuaHRtbCBhbmQgdGhlIE9wZW5BUEkgZGVzY3JpcHRpb24gd2lsbCBiZSBhdmFpbGFibGUgYXQgdGhlCiAgZm9sbG93aW5nIHVybCBmb3IganNvbiBmb3JtYXQ6IGh0dHA6Ly9zZXJ2ZXI6cG9ydC9jb250ZXh0LXBhdGgvdjMvYXBpLWRvY3MKICAgICogYHNlcnZlcmA6IFRoZSBzZXJ2ZXIgbmFtZSBvciBJUAogICAgKiBgcG9ydGA6IFRoZSBzZXJ2ZXIgcG9ydAogICAgKiBgY29udGV4dC1wYXRoYDogVGhlIGNvbnRleHQgcGF0aCBvZiB0aGUgYXBwbGljYXRpb24KKiBEb2N1bWVudGF0aW9uIGNhbiBiZSBhdmFpbGFibGUgaW4geWFtbCBmb3JtYXQgYXMgd2VsbCwgb24gdGhlIGZvbGxvd2luZyBwYXRoOgogIGAvdjMvYXBpLWRvY3MueWFtbGAKKiBBZGQgdGhlIGBzcHJpbmdkb2Mtb3BlbmFwaS11aWAgbGlicmFyeSB0byB0aGUgbGlzdCBvZiB5b3VyIHByb2plY3QgZGVwZW5kZW5jaWVzIChObwogIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBpcyBuZWVkZWQpOgoKYGBgeG1sCiAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZG9jPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5zcHJpbmdkb2Mtb3BlbmFwaS1zdGFydGVyLXdlYm12Yy11aTwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+bGFzdC1yZWxlYXNlLXZlcnNpb248L3ZlcnNpb24+CiAgIDwvZGVwZW5kZW5jeT4KYGBgCgoqIFRoaXMgc3RlcCBpcyBvcHRpb25hbDogRm9yIGN1c3RvbSBwYXRoIG9mIHRoZSBzd2FnZ2VyIGRvY3VtZW50YXRpb24gaW4gSFRNTCBmb3JtYXQsIGFkZAogIGEgY3VzdG9tIHNwcmluZ2RvYyBwcm9wZXJ0eSwgaW4geW91ciBzcHJpbmctYm9vdCBjb25maWd1cmF0aW9uIGZpbGU6CgpgYGBwcm9wZXJ0aWVzCiMgc3dhZ2dlci11aSBjdXN0b20gcGF0aApzcHJpbmdkb2Muc3dhZ2dlci11aS5wYXRoPS9zd2FnZ2VyLXVpLmh0bWwKYGBgCgojIyBTcHJpbmctYm9vdCB3aXRoIE9wZW5BUEkgRGVtbyBhcHBsaWNhdGlvbnMuCgojIyMgW1NvdXJjZSBDb2RlIGZvciBEZW1vIEFwcGxpY2F0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZ2RvYy9zcHJpbmdkb2Mtb3BlbmFwaS1kZW1vcy90cmVlL21hc3RlcikuCgojIyBbRGVtbyBTcHJpbmcgQm9vdCAzIFdlYiBNVkMgd2l0aCBPcGVuQVBJIDNdKGh0dHBzOi8vZGVtb3Muc3ByaW5nZG9jLm9yZy9kZW1vLXNwcmluZy1ib290LTMtd2VibXZjKS4KCiMjIFtEZW1vIFNwcmluZyBCb290IDMgV2ViRmx1eCB3aXRoIE9wZW5BUEkgM10oaHR0cHM6Ly9kZW1vcy5zcHJpbmdkb2Mub3JnL2RlbW8tc3ByaW5nLWJvb3QtMy13ZWJmbHV4L3N3YWdnZXItdWkuaHRtbCkuCgojIyBbRGVtbyBTcHJpbmcgQm9vdCAzIFdlYkZsdXggd2l0aCBGdW5jdGlvbmFsIGVuZHBvaW50cyBPcGVuQVBJIDNdKGh0dHBzOi8vZGVtb3Muc3ByaW5nZG9jLm9yZy9kZW1vLXNwcmluZy1ib290LTMtd2ViZmx1eC1mdW5jdGlvbmFsL3N3YWdnZXItdWkuaHRtbCkuCgojIyBbRGVtbyBTcHJpbmcgQm9vdCAzIGFuZCBTcHJpbmcgQ2xvdWQgRnVuY3Rpb24gV2ViIE1WQ10oaHR0cHM6Ly9kZW1vcy5zcHJpbmdkb2Mub3JnL3NwcmluZy1jbG91ZC1mdW5jdGlvbi13ZWJtdmMpLgoKIyMgW0RlbW8gU3ByaW5nIEJvb3QgMyBhbmQgU3ByaW5nIENsb3VkIEZ1bmN0aW9uIFdlYkZsdXhdKGh0dHA6Ly8xNTguMTAxLjE5MS43MDo4MDg1L3N3YWdnZXItdWkuaHRtbCkuCgojIyBbRGVtbyBTcHJpbmcgQm9vdCAzIGFuZCBTcHJpbmcgQ2xvdWQgR2F0ZXdheV0oaHR0cHM6Ly9kZW1vcy5zcHJpbmdkb2Mub3JnL2RlbW8tbWljcm9zZXJ2aWNlcy9zd2FnZ2VyLXVpLmh0bWwpLgoKIVtCcmFuY2hpbmddKGh0dHBzOi8vc3ByaW5nZG9jLm9yZy9pbWcvcGV0cy5wbmcpCgojIyBJbnRlZ3JhdGlvbiBvZiB0aGUgbGlicmFyeSBpbiBhIFNwcmluZyBCb290IDMueCBwcm9qZWN0IHdpdGhvdXQgdGhlIHN3YWdnZXItdWk6CgoqIERvY3VtZW50YXRpb24gd2lsbCBiZSBhdmFpbGFibGUgYXQgdGhlIGZvbGxvd2luZyB1cmwgZm9yIGpzb24gZm9ybWF0OiBodHRwOi8vc2VydmVyOgogIHBvcnQvY29udGV4dC1wYXRoL3YzL2FwaS1kb2NzCiAgICAqIGBzZXJ2ZXJgOiBUaGUgc2VydmVyIG5hbWUgb3IgSVAKICAgICogYHBvcnRgOiBUaGUgc2VydmVyIHBvcnQKICAgICogYGNvbnRleHQtcGF0aGA6IFRoZSBjb250ZXh0IHBhdGggb2YgdGhlIGFwcGxpY2F0aW9uCiogRG9jdW1lbnRhdGlvbiB3aWxsIGJlIGF2YWlsYWJsZSBpbiB5YW1sIGZvcm1hdCBhcyB3ZWxsLCBvbiB0aGUgZm9sbG93aW5nCiAgcGF0aCA6IGAvdjMvYXBpLWRvY3MueWFtbGAKKiBBZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGxpc3Qgb2YgeW91ciBwcm9qZWN0IGRlcGVuZGVuY2llcy4gKE5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbgogIGlzIG5lZWRlZCkKCmBgYHhtbAogICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2RvYzwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nZG9jLW9wZW5hcGktc3RhcnRlci13ZWJtdmMtYXBpPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj5sYXN0LXJlbGVhc2UtdmVyc2lvbjwvdmVyc2lvbj4KICAgPC9kZXBlbmRlbmN5PgpgYGAKCiogVGhpcyBzdGVwIGlzIG9wdGlvbmFsOiBGb3IgY3VzdG9tIHBhdGggb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBpbiBKc29uIGZvcm1hdCwgYWRkCiAgYSBjdXN0b20gc3ByaW5nZG9jIHByb3BlcnR5LCBpbiB5b3VyIHNwcmluZy1ib290IGNvbmZpZ3VyYXRpb24gZmlsZToKCmBgYHByb3BlcnRpZXMKIyAvYXBpLWRvY3MgZW5kcG9pbnQgY3VzdG9tIHBhdGgKc3ByaW5nZG9jLmFwaS1kb2NzLnBhdGg9L2FwaS1kb2NzCmBgYAoKKiBUaGlzIHN0ZXAgaXMgb3B0aW9uYWw6IElmIHlvdSB3YW50IHRvIGRpc2FibGUgYHNwcmluZ2RvYy1vcGVuYXBpYCBlbmRwb2ludHMsIGFkZCBhCiAgY3VzdG9tIHNwcmluZ2RvYyBwcm9wZXJ0eSwgaW4geW91ciBgc3ByaW5nLWJvb3RgIGNvbmZpZ3VyYXRpb24gZmlsZToKCmBgYHByb3BlcnRpZXMKIyBkaXNhYmxlIGFwaS1kb2NzCnNwcmluZ2RvYy5hcGktZG9jcy5lbmFibGVkPWZhbHNlCmBgYAoKIyMgRXJyb3IgSGFuZGxpbmcgZm9yIFJFU1QgdXNpbmcgQENvbnRyb2xsZXJBZHZpY2UKClRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb24gYXV0b21hdGljYWxseSwgbWFrZSBzdXJlIGFsbCB0aGUgbWV0aG9kcyBkZWNsYXJlIHRoZSBIVFRQIENvZGUKcmVzcG9uc2VzIHVzaW5nIHRoZSBhbm5vdGF0aW9uOiBAUmVzcG9uc2VTdGF0dXMuCgojIyBBZGRpbmcgQVBJIEluZm9ybWF0aW9uIGFuZCBTZWN1cml0eSBkb2N1bWVudGF0aW9uCgpUaGUgbGlicmFyeSB1c2VzIHNwcmluZy1ib290IGFwcGxpY2F0aW9uIGF1dG8tY29uZmlndXJlZCBwYWNrYWdlcyB0byBzY2FuIGZvciB0aGUKZm9sbG93aW5nIGFubm90YXRpb25zIGluIHNwcmluZyBiZWFuczogT3BlbkFQSURlZmluaXRpb24gYW5kIEluZm8uClRoZXNlIGFubm90YXRpb25zIGRlY2xhcmUsIEFQSSBJbmZvcm1hdGlvbjogVGl0bGUsIHZlcnNpb24sIGxpY2VuY2UsIHNlY3VyaXR5LCBzZXJ2ZXJzLAp0YWdzLCBzZWN1cml0eSBhbmQgZXh0ZXJuYWxEb2NzLgpGb3IgYmV0dGVyIHBlcmZvcm1hbmNlIG9mIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiwgZGVjbGFyZSBgQE9wZW5BUElEZWZpbml0aW9uYAphbmQgYEBTZWN1cml0eVNjaGVtZWAgYW5ub3RhdGlvbnMgd2l0aGluIGEgU3ByaW5nIG1hbmFnZWQgYmVhbi4KCiMjIHNwcmluZy13ZWJmbHV4IHN1cHBvcnQgd2l0aCBBbm5vdGF0ZWQgQ29udHJvbGxlcnMKCiogRG9jdW1lbnRhdGlvbiBjYW4gYmUgYXZhaWxhYmxlIGluIHlhbWwgZm9ybWF0IGFzIHdlbGwsIG9uIHRoZSBmb2xsb3dpbmcgcGF0aCA6CiAgL3YzL2FwaS1kb2NzLnlhbWwKKiBBZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGxpc3Qgb2YgeW91ciBwcm9qZWN0IGRlcGVuZGVuY2llcyAoTm8gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uCiAgaXMgbmVlZGVkKQoKYGBgeG1sCiAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZG9jPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5zcHJpbmdkb2Mtb3BlbmFwaS1zdGFydGVyLXdlYmZsdXgtdWk8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPmxhc3QtcmVsZWFzZS12ZXJzaW9uPC92ZXJzaW9uPgogICA8L2RlcGVuZGVuY3k+CmBgYAoKKiBUaGlzIHN0ZXAgaXMgb3B0aW9uYWw6IEZvciBjdXN0b20gcGF0aCBvZiB0aGUgc3dhZ2dlciBkb2N1bWVudGF0aW9uIGluIEhUTUwgZm9ybWF0LCBhZGQKICBhIGN1c3RvbSBzcHJpbmdkb2MgcHJvcGVydHksIGluIHlvdXIgc3ByaW5nLWJvb3QgY29uZmlndXJhdGlvbiBmaWxlOgoKYGBgcHJvcGVydGllcwojIHN3YWdnZXItdWkgY3VzdG9tIHBhdGgKc3ByaW5nZG9jLnN3YWdnZXItdWkucGF0aD0vc3dhZ2dlci11aS5odG1sCmBgYAoKVGhlIGBzcHJpbmdkb2Mtb3BlbmFwaWAgbGlicmFyaWVzIGFyZSBob3N0ZWQgb24gbWF2ZW4gY2VudHJhbCByZXBvc2l0b3J5LgpUaGUgYXJ0aWZhY3RzIGNhbiBiZSB2aWV3ZWQgYWNjZXNzZWQgYXQgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CgpSZWxlYXNlczoKCiogW2h0dHBzOi8vczAxLm9zcy5zb25hdHlwZS5vcmcvY29udGVudC9ncm91cHMvcHVibGljL29yZy9zcHJpbmdkb2MvXShodHRwczovL3MwMS5vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvZ3JvdXBzL3B1YmxpYy9vcmcvc3ByaW5nZG9jLykKICAuCgpTbmFwc2hvdHM6CgoqIFtodHRwczovL3MwMS5vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cy9vcmcvc3ByaW5nZG9jL10oaHR0cHM6Ly9zMDEub3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvb3JnL3NwcmluZ2RvYy8pCiAgLgoKIyBBY2tub3dsZWRnZW1lbnRzCgojIyBDb250cmlidXRvcnMKCnNwcmluZ2RvYy1vcGVuYXBpIGlzIHJlbGV2YW50IGFuZCB1cGRhdGVkIHJlZ3VsYXJseSBkdWUgdG8gdGhlIHZhbHVhYmxlIGNvbnRyaWJ1dGlvbnMgZnJvbQppdHMgW2NvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZ2RvYy9zcHJpbmdkb2Mtb3BlbmFwaS9ncmFwaHMvY29udHJpYnV0b3JzKS4KCjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zcHJpbmdkb2Mvc3ByaW5nZG9jLW9wZW5hcGkvZ3JhcGhzL2NvbnRyaWJ1dG9ycyI+CiAgPGltZyBzcmM9Imh0dHBzOi8vY29udHJpYi5yb2Nrcy9pbWFnZT9yZXBvPXNwcmluZ2RvYy9zcHJpbmdkb2Mtb3BlbmFwaSIgd2lkdGg9IjUwJSIvPgo8L2E+CgpUaGFua3MgeW91IGFsbCBmb3IgeW91ciBzdXBwb3J0IQoKIyMgQWRkaXRpb25hbCBTdXBwb3J0CgoqIFtTcHJpbmcgVGVhbV0oaHR0cHM6Ly9zcHJpbmcuaW8vdGVhbSkgLSBUaGFua3MgZm9yIHRoZWlyIHN1cHBvcnQgYnkgc2hhcmluZyBhbGwgcmVsZXZhbnQKICByZXNvdXJjZXMgYXJvdW5kIFNwcmluZyBwcm9qZWN0cy4KKiBbSmV0QnJhaW5zXShodHRwczovL3d3dy5qZXRicmFpbnMuY29tLz9mcm9tPXNwcmluZ2RvYy1vcGVuYXBpKSAtIFRoYW5rcyBhIGxvdCBmb3IKICBzdXBwb3J0aW5nIHNwcmluZ2RvYy1vcGVuYXBpIHByb2plY3QuCgohW0plbkJyYWlucyBsb2dvXShodHRwczovL3NwcmluZ2RvYy5vcmcvaW1nL2pldGJyYWlucy5zdmcpCg== readmeEtag: '"1295fcf399972b2cef05af23bececcde4f339b01"' readmeLastModified: Sun, 30 Jun 2024 18:25:04 GMT repositoryId: 196475719 description: Library for OpenAPI 3 with spring-boot created: '2019-07-11T23:08:20Z' updated: '2024-09-05T15:56:18Z' language: Java archived: false stars: 3239 watchers: 42 forks: 489 owner: springdoc logo: https://avatars.githubusercontent.com/u/52804136?v=4 license: Apache-2.0 repoEtag: '"2e7219437b99209ca30a338fac595ee92858c7ba4f25037583300f474517eaa2"' repoLastModified: Thu, 05 Sep 2024 15:56:18 GMT foundInMaster: true id: 901410cec129651fcf7374c79f824f27 - source: openapi3 tags repository: https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker v3: true repositoryMetadata: base64Readme: >- IyMgREVQUkVDQVRFRCDwn5qoCgpUaGlzIERvY2tlciBpbWFnZSBpcyBub3cgZGVwcmVjYXRlZC4gVGhlcmUncyBubyBuZWVkIHRvIHVzZSBpdCwgeW91IGNhbiBqdXN0IHVzZSBVdmljb3JuIHdpdGggYC0td29ya2Vyc2AuIOKcqAoKUmVhZCBtb3JlIGFib3V0IGl0IGJlbG93LgoKLS0tCgpbIVtUZXN0XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbCkgWyFbRGVwbG95XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci93b3JrZmxvd3MvRGVwbG95L2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FEZXBsb3kpCgojIyBTdXBwb3J0ZWQgdGFncyBhbmQgcmVzcGVjdGl2ZSBgRG9ja2VyZmlsZWAgbGlua3MKCiogW2BweXRob24zLjExYCwgYGxhdGVzdGAgXyhEb2NrZXJmaWxlKV9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL2Jsb2IvbWFzdGVyL2RvY2tlci1pbWFnZXMvcHl0aG9uMy4xMS5kb2NrZXJmaWxlKQoqIFtgcHl0aG9uMy4xMGAsIF8oRG9ja2VyZmlsZSlfXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9ibG9iL21hc3Rlci9kb2NrZXItaW1hZ2VzL3B5dGhvbjMuMTAuZG9ja2VyZmlsZSkKKiBbYHB5dGhvbjMuOWAsIF8oRG9ja2VyZmlsZSlfXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9ibG9iL21hc3Rlci9kb2NrZXItaW1hZ2VzL3B5dGhvbjMuOS5kb2NrZXJmaWxlKQoqIFtgcHl0aG9uMy44YCwgXyhEb2NrZXJmaWxlKV9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL2Jsb2IvbWFzdGVyL2RvY2tlci1pbWFnZXMvcHl0aG9uMy44LmRvY2tlcmZpbGUpCiogW2BweXRob24zLjdgLCBfKERvY2tlcmZpbGUpX10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvYmxvYi9tYXN0ZXIvZG9ja2VyLWltYWdlcy9weXRob24zLjcuZG9ja2VyZmlsZSkKKiBbYHB5dGhvbjMuMTEtc2xpbWAgXyhEb2NrZXJmaWxlKV9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL2Jsb2IvbWFzdGVyL2RvY2tlci1pbWFnZXMvcHl0aG9uMy4xMS1zbGltLmRvY2tlcmZpbGUpCiogW2BweXRob24zLjEwLXNsaW1gIF8oRG9ja2VyZmlsZSlfXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9ibG9iL21hc3Rlci9kb2NrZXItaW1hZ2VzL3B5dGhvbjMuMTAtc2xpbS5kb2NrZXJmaWxlKQoqIFtgcHl0aG9uMy45LXNsaW1gIF8oRG9ja2VyZmlsZSlfXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9ibG9iL21hc3Rlci9kb2NrZXItaW1hZ2VzL3B5dGhvbjMuOS1zbGltLmRvY2tlcmZpbGUpCiogW2BweXRob24zLjgtc2xpbWAgXyhEb2NrZXJmaWxlKV9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL2Jsb2IvbWFzdGVyL2RvY2tlci1pbWFnZXMvcHl0aG9uMy44LXNsaW0uZG9ja2VyZmlsZSkKCiMjIERlcHJlY2F0ZWQgdGFncwoK8J+aqCBUaGVzZSB0YWdzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIG9yIG1haW50YWluZWQsIHRoZXkgYXJlIHJlbW92ZWQgZnJvbSB0aGUgR2l0SHViIHJlcG9zaXRvcnksIGJ1dCB0aGUgbGFzdCB2ZXJzaW9ucyBwdXNoZWQgbWlnaHQgc3RpbGwgYmUgYXZhaWxhYmxlIGluIERvY2tlciBIdWIgaWYgYW55b25lIGhhcyBiZWVuIHB1bGxpbmcgdGhlbToKCiogYHB5dGhvbjMuOS1hbHBpbmUzLjE0YAoqIGBweXRob24zLjgtYWxwaW5lMy4xMGAKKiBgcHl0aG9uMy43LWFscGluZTMuOGAKKiBgcHl0aG9uMy42YAoqIGBweXRob24zLjYtYWxwaW5lMy44YAoKVGhlIGxhc3QgZGF0ZSB0YWdzIGZvciB0aGVzZSB2ZXJzaW9ucyBhcmU6CgoqIGBweXRob24zLjktYWxwaW5lMy4xNC0yMDI0LTAzLTExYAoqIGBweXRob24zLjgtYWxwaW5lMy4xMC0yMDI0LTAxLTI5YAoqIGBweXRob24zLjctYWxwaW5lMy44LTIwMjQtMDMtMTFgCiogYHB5dGhvbjMuNi0yMDIyLTExLTI1YAoqIGBweXRob24zLjYtYWxwaW5lMy44LTIwMjItMTEtMjVgCgotLS0KCioqTm90ZSoqOiBUaGVyZSBhcmUgW3RhZ3MgZm9yIGVhY2ggYnVpbGQgZGF0ZV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS90YWdzKS4gSWYgeW91IG5lZWQgdG8gInBpbiIgdGhlIERvY2tlciBpbWFnZSB2ZXJzaW9uIHlvdSB1c2UsIHlvdSBjYW4gc2VsZWN0IG9uZSBvZiB0aG9zZSB0YWdzLiBFLmcuIGB0aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGk6cHl0aG9uMy43LTIwMTktMTAtMTVgLgoKIyB1dmljb3JuLWd1bmljb3JuLWZhc3RhcGkKClsqKkRvY2tlcioqXShodHRwczovL3d3dy5kb2NrZXIuY29tLykgaW1hZ2Ugd2l0aCBbKipVdmljb3JuKipdKGh0dHBzOi8vd3d3LnV2aWNvcm4ub3JnLykgbWFuYWdlZCBieSBbKipHdW5pY29ybioqXShodHRwczovL2d1bmljb3JuLm9yZy8pIGZvciBoaWdoLXBlcmZvcm1hbmNlIFsqKkZhc3RBUEkqKl0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS8pIHdlYiBhcHBsaWNhdGlvbnMgaW4gKipbUHl0aG9uXShodHRwczovL3d3dy5weXRob24ub3JnLykqKiB3aXRoIHBlcmZvcm1hbmNlIGF1dG8tdHVuaW5nLgoKKipHaXRIdWIgcmVwbyoqOiBbaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyKQoKKipEb2NrZXIgSHViIGltYWdlKio6IFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpL10oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS8pCgojIyBEZXNjcmlwdGlvbgoKKipGYXN0QVBJKiogaGFzIHNob3duIHRvIGJlIGEgUHl0aG9uIHdlYiBmcmFtZXdvcmsgd2l0aCBbb25lIG9mIHRoZSBiZXN0IHBlcmZvcm1hbmNlcywgYXMgbWVhc3VyZWQgYnkgdGhpcmQtcGFydHkgYmVuY2htYXJrc10oaHR0cHM6Ly93d3cudGVjaGVtcG93ZXIuY29tL2JlbmNobWFya3MvI3NlY3Rpb249dGVzdCZydW5pZD1hOTc5ZGU1NS05ODBkLTQ3MjEtYTQ2Zi03NzI5OGIzZjM5MjMmaHc9cGgmdGVzdD1mb3J0dW5lJmw9emlqemVuLTcpLCB0aGFua3MgdG8gYmVpbmcgYmFzZWQgb24gYW5kIHBvd2VyZWQgYnkgWyoqU3RhcmxldHRlKipdKGh0dHBzOi8vd3d3LnN0YXJsZXR0ZS5pby8pLgoKVGhlIGFjaGlldmFibGUgcGVyZm9ybWFuY2UgaXMgb24gcGFyIHdpdGggKGFuZCBpbiBtYW55IGNhc2VzIHN1cGVyaW9yIHRvKSAqKkdvKiogYW5kICoqTm9kZS5qcyoqIGZyYW1ld29ya3MuCgpUaGlzIGltYWdlIGhhcyBhbiAqKmF1dG8tdHVuaW5nKiogbWVjaGFuaXNtIGluY2x1ZGVkIHRvIHN0YXJ0IGEgbnVtYmVyIG9mIHdvcmtlciBwcm9jZXNzZXMgYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBDUFUgY29yZXMuIFRoYXQgd2F5IHlvdSBjYW4ganVzdCBhZGQgeW91ciBjb2RlIGFuZCBnZXQgKipoaWdoIHBlcmZvcm1hbmNlKiogYXV0b21hdGljYWxseSwgd2hpY2ggaXMgdXNlZnVsIGluICoqc2ltcGxlIGRlcGxveW1lbnRzKiouCgojIyDwn5qoIFdBUk5JTkc6IFlvdSBQcm9iYWJseSBEb24ndCBOZWVkIHRoaXMgRG9ja2VyIEltYWdlCgpZb3UgYXJlIHByb2JhYmx5IHVzaW5nICoqS3ViZXJuZXRlcyoqIG9yIHNpbWlsYXIgdG9vbHMuIEluIHRoYXQgY2FzZSwgeW91IHByb2JhYmx5ICoqZG9uJ3QgbmVlZCB0aGlzIGltYWdlKiogKG9yIGFueSBvdGhlciAqKnNpbWlsYXIgYmFzZSBpbWFnZSoqKS4gWW91IGFyZSBwcm9iYWJseSBiZXR0ZXIgb2ZmICoqYnVpbGRpbmcgYSBEb2NrZXIgaW1hZ2UgZnJvbSBzY3JhdGNoKiogYXMgZXhwbGFpbmVkIGluIHRoZSBkb2NzIGZvciBbRmFzdEFQSSBpbiBDb250YWluZXJzIC0gRG9ja2VyOiBCdWlsZCBhIERvY2tlciBJbWFnZSBmb3IgRmFzdEFQSV0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9kZXBsb3ltZW50L2RvY2tlci8jcmVwbGljYXRpb24tbnVtYmVyLW9mLXByb2Nlc3NlcykuCgojIyMgQ2x1c3RlciBSZXBsaWNhdGlvbgoKSWYgeW91IGhhdmUgYSBjbHVzdGVyIG9mIG1hY2hpbmVzIHdpdGggKipLdWJlcm5ldGVzKiosIERvY2tlciBTd2FybSBNb2RlLCBOb21hZCwgb3Igb3RoZXIgc2ltaWxhciBjb21wbGV4IHN5c3RlbSB0byBtYW5hZ2UgZGlzdHJpYnV0ZWQgY29udGFpbmVycyBvbiBtdWx0aXBsZSBtYWNoaW5lcywgdGhlbiB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvICoqaGFuZGxlIHJlcGxpY2F0aW9uKiogYXQgdGhlICoqY2x1c3RlciBsZXZlbCoqIGluc3RlYWQgb2YgdXNpbmcgYSAqKnByb2Nlc3MgbWFuYWdlcioqIChsaWtlIEd1bmljb3JuIHdpdGggVXZpY29ybiB3b3JrZXJzKSBpbiBlYWNoIGNvbnRhaW5lciwgd2hpY2ggaXMgd2hhdCB0aGlzIERvY2tlciBpbWFnZSBkb2VzLgoKSW4gdGhvc2UgY2FzZXMgKGUuZy4gdXNpbmcgS3ViZXJuZXRlcykgeW91IHdvdWxkIHByb2JhYmx5IHdhbnQgdG8gYnVpbGQgYSAqKkRvY2tlciBpbWFnZSBmcm9tIHNjcmF0Y2gqKiwgaW5zdGFsbGluZyB5b3VyIGRlcGVuZGVuY2llcywgYW5kIHJ1bm5pbmcgKiphIHNpbmdsZSBVdmljb3JuIHByb2Nlc3MqKiBpbnN0ZWFkIG9mIHRoaXMgaW1hZ2UuCgpGb3IgZXhhbXBsZSwgeW91ciBgRG9ja2VyZmlsZWAgY291bGQgbG9vayBsaWtlOgoKYGBgRG9ja2VyZmlsZQpGUk9NIHB5dGhvbjozLjkKCldPUktESVIgL2NvZGUKCkNPUFkgLi9yZXF1aXJlbWVudHMudHh0IC9jb2RlL3JlcXVpcmVtZW50cy50eHQKClJVTiBwaXAgaW5zdGFsbCAtLW5vLWNhY2hlLWRpciAtLXVwZ3JhZGUgLXIgL2NvZGUvcmVxdWlyZW1lbnRzLnR4dAoKQ09QWSAuL2FwcCAvY29kZS9hcHAKCkNNRCBbInV2aWNvcm4iLCAiYXBwLm1haW46YXBwIiwgIi0taG9zdCIsICIwLjAuMC4wIiwgIi0tcG9ydCIsICI4MCJdCmBgYAoKWW91IGNhbiByZWFkIG1vcmUgYWJvdXQgdGhpcyBpbiB0aGUgW0Zhc3RBUEkgZG9jdW1lbnRhdGlvbiBhYm91dDogRmFzdEFQSSBpbiBDb250YWluZXJzIC0gRG9ja2VyXShodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL2RlcGxveW1lbnQvZG9ja2VyLyNyZXBsaWNhdGlvbi1udW1iZXItb2YtcHJvY2Vzc2VzKS4KCiMjIyBNdWx0aXBsZSBXb3JrZXJzCgpJZiB5b3UgZGVmaW5pdGVseSB3YW50IHRvIGhhdmUgbXVsdGlwbGUgd29ya2VycyBvbiBhIHNpbmdsZSBjb250YWluZXIsIFV2aWNvcm4gbm93IHN1cHBvcnRzIGhhbmRsaW5nIHN1YnByb2Nlc3NlcywgaW5jbHVkaW5nIHJlc3RhcnRpbmcgZGVhZCBvbmVzLiBTbyB0aGVyZSdzIG5vIG5lZWQgZm9yIEd1bmljb3JuIHRvIG1hbmFnZSBtdWx0aXBsZSB3b3JrZXJzIGluIGEgc2luZ2xlIGNvbnRhaW5lci4KCllvdSBjb3VsZCBtb2RpZnkgdGhlIGV4YW1wbGUgYERvY2tlcmZpbGVgIGZyb20gYWJvdmUsIGFkZGluZyB0aGUgYC0td29ya2Vyc2Agb3B0aW9uIHRvIFV2aWNvcm4sIGxpa2U6CgpgYGBEb2NrZXJmaWxlCkZST00gcHl0aG9uOjMuOQoKV09SS0RJUiAvY29kZQoKQ09QWSAuL3JlcXVpcmVtZW50cy50eHQgL2NvZGUvcmVxdWlyZW1lbnRzLnR4dAoKUlVOIHBpcCBpbnN0YWxsIC0tbm8tY2FjaGUtZGlyIC0tdXBncmFkZSAtciAvY29kZS9yZXF1aXJlbWVudHMudHh0CgpDT1BZIC4vYXBwIC9jb2RlL2FwcAoKQ01EIFsidXZpY29ybiIsICJhcHAubWFpbjphcHAiLCAiLS1ob3N0IiwgIjAuMC4wLjAiLCAiLS1wb3J0IiwgIjgwIiwgIi0td29ya2VycyIsICI0Il0KYGBgCgpUaGF0J3MgYWxsIHlvdSBuZWVkLiBZb3UgZG9uJ3QgbmVlZCB0aGlzIERvY2tlciBpbWFnZSBhdCBhbGwuIPCfmIUKCllvdSBjYW4gcmVhZCBtb3JlIGFib3V0IGl0IGluIHRoZSBbRmFzdEFQSSBEb2NzIGFib3V0IERlcGxveW1lbnQgd2l0aCBEb2NrZXJdKGh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vZGVwbG95bWVudC9kb2NrZXIvKS4KCiMjIFRlY2huaWNhbCBEZXRhaWxzCgpVdmljb3JuIGRpZG4ndCBoYXZlIHN1cHBvcnQgZm9yIG1hbmFnaW5nIHdvcmtlciBwcm9jZXNzaW5nIGluY2x1ZGluZyByZXN0YXJ0aW5nIGRlYWQgd29ya2Vycy4gQnV0IG5vdyBpdCBkb2VzLgoKQmVmb3JlIHRoYXQsIEd1bmljb3JuIGNvdWxkIGJlIHVzZWQgYXMgYSBwcm9jZXNzIG1hbmFnZXIsIHJ1bm5pbmcgVXZpY29ybiB3b3JrZXJzLiBUaGlzIGFkZGVkIGNvbXBsZXhpdHkgdGhhdCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LgoKIyMgTGVnYWN5IERvY3MKClRoZSByZXN0IG9mIHRoaXMgZG9jdW1lbnQgaXMga2VwdCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLCBidXQgeW91IHByb2JhYmx5IGRvbid0IG5lZWQgaXQuIPCfmIUKCiMjIyBgdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpYAoKVGhpcyBpbWFnZSB3aWxsIHNldCBhIHNlbnNpYmxlIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIHNlcnZlciBpdCBpcyBydW5uaW5nIG9uICh0aGUgYW1vdW50IG9mIENQVSBjb3JlcyBhdmFpbGFibGUpIHdpdGhvdXQgbWFraW5nIHNhY3JpZmljZXMuCgpJdCBoYXMgc2Vuc2libGUgZGVmYXVsdHMsIGJ1dCB5b3UgY2FuIGNvbmZpZ3VyZSBpdCB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlcyBvciBvdmVycmlkZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlcy4KClRoZXJlIGFyZSBhbHNvIHNsaW0gdmVyc2lvbnMuIElmIHlvdSB3YW50IG9uZSBvZiB0aG9zZSwgdXNlIG9uZSBvZiB0aGUgdGFncyBmcm9tIGFib3ZlLgoKIyMjIGB0aWFuZ29sby91dmljb3JuLWd1bmljb3JuYAoKVGhpcyBpbWFnZSAoYHRpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaWApIGlzIGJhc2VkIG9uIFsqKnRpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4qKl0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZG9ja2VyKS4KClRoYXQgaW1hZ2UgaXMgd2hhdCBhY3R1YWxseSBkb2VzIGFsbCB0aGUgd29yay4KClRoaXMgaW1hZ2UganVzdCBpbnN0YWxscyBGYXN0QVBJIGFuZCBoYXMgdGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWNhbGx5IHRhcmdldGVkIGF0IEZhc3RBUEkuCgpJZiB5b3UgZmVlbCBjb25maWRlbnQgYWJvdXQgeW91ciBrbm93bGVkZ2Ugb2YgVXZpY29ybiwgR3VuaWNvcm4gYW5kIEFTR0ksIHlvdSBjYW4gdXNlIHRoYXQgaW1hZ2UgZGlyZWN0bHkuCgojIyMgYHRpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tc3RhcmxldHRlYAoKVGhlcmUgaXMgYSBzaWJsaW5nIERvY2tlciBpbWFnZTogWyoqdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1zdGFybGV0dGUqKl0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tc3RhcmxldHRlLWRvY2tlcikKCklmIHlvdSBhcmUgY3JlYXRpbmcgYSBuZXcgWyoqU3RhcmxldHRlKipdKGh0dHBzOi8vd3d3LnN0YXJsZXR0ZS5pby8pIHdlYiBhcHBsaWNhdGlvbiBhbmQgeW91IHdhbnQgdG8gZGlzY2FyZCBhbGwgdGhlIGFkZGl0aW9uYWwgZmVhdHVyZXMgZnJvbSBGYXN0QVBJIHlvdSBzaG91bGQgdXNlIFsqKnRpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tc3RhcmxldHRlKipdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLXN0YXJsZXR0ZS1kb2NrZXIpIGluc3RlYWQuCgoqKk5vdGUqKjogRmFzdEFQSSBpcyBiYXNlZCBvbiBTdGFybGV0dGUgYW5kIGFkZHMgc2V2ZXJhbCBmZWF0dXJlcyBvbiB0b3Agb2YgaXQuIFVzZWZ1bCBmb3IgQVBJcyBhbmQgb3RoZXIgY2FzZXM6IGRhdGEgdmFsaWRhdGlvbiwgZGF0YSBjb252ZXJzaW9uLCBkb2N1bWVudGF0aW9uIHdpdGggT3BlbkFQSSwgZGVwZW5kZW5jeSBpbmplY3Rpb24sIHNlY3VyaXR5L2F1dGhlbnRpY2F0aW9uIGFuZCBvdGhlcnMuCgojIyBIb3cgdG8gdXNlCgpZb3UgZG9uJ3QgbmVlZCB0byBjbG9uZSB0aGUgR2l0SHViIHJlcG8uCgpZb3UgY2FuIHVzZSB0aGlzIGltYWdlIGFzIGEgYmFzZSBpbWFnZSBmb3Igb3RoZXIgaW1hZ2VzLgoKQXNzdW1pbmcgeW91IGhhdmUgYSBmaWxlIGByZXF1aXJlbWVudHMudHh0YCwgeW91IGNvdWxkIGhhdmUgYSBgRG9ja2VyZmlsZWAgbGlrZSB0aGlzOgoKYGBgRG9ja2VyZmlsZQpGUk9NIHRpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaTpweXRob24zLjExCgpDT1BZIC4vcmVxdWlyZW1lbnRzLnR4dCAvYXBwL3JlcXVpcmVtZW50cy50eHQKClJVTiBwaXAgaW5zdGFsbCAtLW5vLWNhY2hlLWRpciAtLXVwZ3JhZGUgLXIgL2FwcC9yZXF1aXJlbWVudHMudHh0CgpDT1BZIC4vYXBwIC9hcHAKYGBgCgpJdCB3aWxsIGV4cGVjdCBhIGZpbGUgYXQgYC9hcHAvYXBwL21haW4ucHlgLgoKT3Igb3RoZXJ3aXNlIGEgZmlsZSBhdCBgL2FwcC9tYWluLnB5YC4KCkFuZCB3aWxsIGV4cGVjdCBpdCB0byBjb250YWluIGEgdmFyaWFibGUgYGFwcGAgd2l0aCB5b3VyIEZhc3RBUEkgYXBwbGljYXRpb24uCgpUaGVuIHlvdSBjYW4gYnVpbGQgeW91ciBpbWFnZSBmcm9tIHRoZSBkaXJlY3RvcnkgdGhhdCBoYXMgeW91ciBgRG9ja2VyZmlsZWAsIGUuZzoKCmBgYGJhc2gKZG9ja2VyIGJ1aWxkIC10IG15aW1hZ2UgLi8KYGBgCgojIyBRdWljayBTdGFydAoKIyMjIEJ1aWxkIHlvdXIgSW1hZ2UKCiogR28gdG8geW91ciBwcm9qZWN0IGRpcmVjdG9yeS4KKiBDcmVhdGUgYSBgRG9ja2VyZmlsZWAgd2l0aDoKCmBgYERvY2tlcmZpbGUKRlJPTSB0aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGk6cHl0aG9uMy4xMQoKQ09QWSAuL3JlcXVpcmVtZW50cy50eHQgL2FwcC9yZXF1aXJlbWVudHMudHh0CgpSVU4gcGlwIGluc3RhbGwgLS1uby1jYWNoZS1kaXIgLS11cGdyYWRlIC1yIC9hcHAvcmVxdWlyZW1lbnRzLnR4dAoKQ09QWSAuL2FwcCAvYXBwCmBgYAoKKiBDcmVhdGUgYW4gYGFwcGAgZGlyZWN0b3J5IGFuZCBlbnRlciBpbiBpdC4KKiBDcmVhdGUgYSBgbWFpbi5weWAgZmlsZSB3aXRoOgoKYGBgUHl0aG9uCmZyb20gZmFzdGFwaSBpbXBvcnQgRmFzdEFQSQoKYXBwID0gRmFzdEFQSSgpCgoKQGFwcC5nZXQoIi8iKQpkZWYgcmVhZF9yb290KCk6CiAgICByZXR1cm4geyJIZWxsbyI6ICJXb3JsZCJ9CgoKQGFwcC5nZXQoIi9pdGVtcy97aXRlbV9pZH0iKQpkZWYgcmVhZF9pdGVtKGl0ZW1faWQ6IGludCwgcTogc3RyID0gTm9uZSk6CiAgICByZXR1cm4geyJpdGVtX2lkIjogaXRlbV9pZCwgInEiOiBxfQpgYGAKCiogWW91IHNob3VsZCBub3cgaGF2ZSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgbGlrZToKCmBgYAouCuKUnOKUgOKUgCBhcHAK4pSCICAg4pSU4pSA4pSAIG1haW4ucHkK4pSU4pSA4pSAIERvY2tlcmZpbGUKYGBgCgoqIEdvIHRvIHRoZSBwcm9qZWN0IGRpcmVjdG9yeSAoaW4gd2hlcmUgeW91ciBgRG9ja2VyZmlsZWAgaXMsIGNvbnRhaW5pbmcgeW91ciBgYXBwYCBkaXJlY3RvcnkpLgoqIEJ1aWxkIHlvdXIgRmFzdEFQSSBpbWFnZToKCmBgYGJhc2gKZG9ja2VyIGJ1aWxkIC10IG15aW1hZ2UgLgpgYGAKCiogUnVuIGEgY29udGFpbmVyIGJhc2VkIG9uIHlvdXIgaW1hZ2U6CgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLS1uYW1lIG15Y29udGFpbmVyIC1wIDgwOjgwIG15aW1hZ2UKYGBgCgpOb3cgeW91IGhhdmUgYW4gb3B0aW1pemVkIEZhc3RBUEkgc2VydmVyIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gQXV0by10dW5lZCBmb3IgeW91ciBjdXJyZW50IHNlcnZlciAoYW5kIG51bWJlciBvZiBDUFUgY29yZXMpLgoKIyMjIENoZWNrIGl0CgpZb3Ugc2hvdWxkIGJlIGFibGUgdG8gY2hlY2sgaXQgaW4geW91ciBEb2NrZXIgY29udGFpbmVyJ3MgVVJMLCBmb3IgZXhhbXBsZTogPGEgaHJlZj0iaHR0cDovLzE5Mi4xNjguOTkuMTAwL2l0ZW1zLzU/cT1zb21lcXVlcnkiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vMTkyLjE2OC45OS4xMDAvaXRlbXMvNT9xPXNvbWVxdWVyeTwvYT4gb3IgPGEgaHJlZj0iaHR0cDovLzEyNy4wLjAuMS9pdGVtcy81P3E9c29tZXF1ZXJ5IiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovLzEyNy4wLjAuMS9pdGVtcy81P3E9c29tZXF1ZXJ5PC9hPiAob3IgZXF1aXZhbGVudCwgdXNpbmcgeW91ciBEb2NrZXIgaG9zdCkuCgpZb3Ugd2lsbCBzZWUgc29tZXRoaW5nIGxpa2U6CgpgYGBKU09OCnsiaXRlbV9pZCI6IDUsICJxIjogInNvbWVxdWVyeSJ9CmBgYAoKIyMjIEludGVyYWN0aXZlIEFQSSBkb2NzCgpOb3cgeW91IGNhbiBnbyB0byA8YSBocmVmPSJodHRwOi8vMTkyLjE2OC45OS4xMDAvZG9jcyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly8xOTIuMTY4Ljk5LjEwMC9kb2NzPC9hPiBvciA8YSBocmVmPSJodHRwOi8vMTI3LjAuMC4xL2RvY3MiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vMTI3LjAuMC4xL2RvY3M8L2E+IChvciBlcXVpdmFsZW50LCB1c2luZyB5b3VyIERvY2tlciBob3N0KS4KCllvdSB3aWxsIHNlZSB0aGUgYXV0b21hdGljIGludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9uIChwcm92aWRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSIgdGFyZ2V0PSJfYmxhbmsiPlN3YWdnZXIgVUk8L2E+KToKCiFbU3dhZ2dlciBVSV0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvaW5kZXgvaW5kZXgtMDEtc3dhZ2dlci11aS1zaW1wbGUucG5nKQoKIyMjIEFsdGVybmF0aXZlIEFQSSBkb2NzCgpBbmQgeW91IGNhbiBhbHNvIGdvIHRvIDxhIGhyZWY9Imh0dHA6Ly8xOTIuMTY4Ljk5LjEwMC9yZWRvYyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly8xOTIuMTY4Ljk5LjEwMC9yZWRvYzwvYT4gb3IgPGEgaHJlZj0iaHR0cDovLzEyNy4wLjAuMS9yZWRvYyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly8xMjcuMC4wLjEvcmVkb2M8L2E+KG9yIGVxdWl2YWxlbnQsIHVzaW5nIHlvdXIgRG9ja2VyIGhvc3QpLgoKWW91IHdpbGwgc2VlIHRoZSBhbHRlcm5hdGl2ZSBhdXRvbWF0aWMgZG9jdW1lbnRhdGlvbiAocHJvdmlkZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1JlYmlsbHkvUmVEb2MiIHRhcmdldD0iX2JsYW5rIj5SZURvYzwvYT4pOgoKIVtSZURvY10oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvaW5kZXgvaW5kZXgtMDItcmVkb2Mtc2ltcGxlLnBuZykKCiMjIERlcGVuZGVuY2llcyBhbmQgcGFja2FnZXMKCllvdSB3aWxsIHByb2JhYmx5IGFsc28gd2FudCB0byBhZGQgYW55IGRlcGVuZGVuY2llcyBmb3IgeW91ciBhcHAgYW5kIHBpbiB0aGVtIHRvIGEgc3BlY2lmaWMgdmVyc2lvbiwgcHJvYmFibHkgaW5jbHVkaW5nIFV2aWNvcm4sIEd1bmljb3JuLCBhbmQgRmFzdEFQSS4KClRoaXMgd2F5IHlvdSBjYW4gbWFrZSBzdXJlIHlvdXIgYXBwIGFsd2F5cyB3b3JrcyBhcyBleHBlY3RlZC4KCllvdSBjb3VsZCBpbnN0YWxsIHBhY2thZ2VzIHdpdGggYHBpcGAgY29tbWFuZHMgaW4geW91ciBgRG9ja2VyZmlsZWAsIHVzaW5nIGEgYHJlcXVpcmVtZW50cy50eHRgLCBvciBldmVuIHVzaW5nIFtQb2V0cnldKGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvKS4KCkFuZCB0aGVuIHlvdSBjYW4gdXBncmFkZSB0aG9zZSBkZXBlbmRlbmNpZXMgaW4gYSBjb250cm9sbGVkIHdheSwgcnVubmluZyB5b3VyIHRlc3RzLCBtYWtpbmcgc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgd29ya3MsIGJ1dCB3aXRob3V0IGJyZWFraW5nIHlvdXIgcHJvZHVjdGlvbiBhcHBsaWNhdGlvbiBpZiBzb21lIG5ldyB2ZXJzaW9uIGlzIG5vdCBjb21wYXRpYmxlLgoKIyMjIFVzaW5nIFBvZXRyeQoKSGVyZSdzIGEgc21hbGwgZXhhbXBsZSBvZiBvbmUgb2YgdGhlIHdheXMgeW91IGNvdWxkIGluc3RhbGwgeW91ciBkZXBlbmRlbmNpZXMgbWFraW5nIHN1cmUgeW91IGhhdmUgYSBwaW5uZWQgdmVyc2lvbiBmb3IgZWFjaCBwYWNrYWdlLgoKTGV0J3Mgc2F5IHlvdSBoYXZlIGEgcHJvamVjdCBtYW5hZ2VkIHdpdGggW1BvZXRyeV0oaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy8pLCBzbywgeW91IGhhdmUgeW91ciBwYWNrYWdlIGRlcGVuZGVuY2llcyBpbiBhIGZpbGUgYHB5cHJvamVjdC50b21sYC4gQW5kIHBvc3NpYmx5IGEgZmlsZSBgcG9ldHJ5LmxvY2tgLgoKVGhlbiB5b3UgY291bGQgaGF2ZSBhIGBEb2NrZXJmaWxlYCB1c2luZyBEb2NrZXIgbXVsdGktc3RhZ2UgYnVpbGRpbmcgd2l0aDoKCmBgYERvY2tlcmZpbGUKRlJPTSBweXRob246My45IGFzIHJlcXVpcmVtZW50cy1zdGFnZQoKV09SS0RJUiAvdG1wCgpSVU4gcGlwIGluc3RhbGwgcG9ldHJ5CgpDT1BZIC4vcHlwcm9qZWN0LnRvbWwgLi9wb2V0cnkubG9jayogL3RtcC8KClJVTiBwb2V0cnkgZXhwb3J0IC1mIHJlcXVpcmVtZW50cy50eHQgLS1vdXRwdXQgcmVxdWlyZW1lbnRzLnR4dCAtLXdpdGhvdXQtaGFzaGVzCgpGUk9NIHRpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaTpweXRob24zLjExCgpDT1BZIC0tZnJvbT1yZXF1aXJlbWVudHMtc3RhZ2UgL3RtcC9yZXF1aXJlbWVudHMudHh0IC9hcHAvcmVxdWlyZW1lbnRzLnR4dAoKUlVOIHBpcCBpbnN0YWxsIC0tbm8tY2FjaGUtZGlyIC0tdXBncmFkZSAtciAvYXBwL3JlcXVpcmVtZW50cy50eHQKCkNPUFkgLi9hcHAgL2FwcApgYGAKClRoYXQgd2lsbDoKCiogSW5zdGFsbCBwb2V0cnkgYW5kIGNvbmZpZ3VyZSBpdCBmb3IgcnVubmluZyBpbnNpZGUgb2YgdGhlIERvY2tlciBjb250YWluZXIuCiogQ29weSB5b3VyIGFwcGxpY2F0aW9uIHJlcXVpcmVtZW50cy4KICAgICogQmVjYXVzZSBpdCB1c2VzIGAuL3BvZXRyeS5sb2NrKmAgKGVuZGluZyB3aXRoIGEgYCpgKSwgaXQgd29uJ3QgY3Jhc2ggaWYgdGhhdCBmaWxlIGlzIG5vdCBhdmFpbGFibGUgeWV0LgoqIEluc3RhbGwgdGhlIGRlcGVuZGVuY2llcy4KKiBUaGVuIGNvcHkgeW91ciBhcHAgY29kZS4KCkl0J3MgaW1wb3J0YW50IHRvIGNvcHkgdGhlIGFwcCBjb2RlICphZnRlciogaW5zdGFsbGluZyB0aGUgZGVwZW5kZW5jaWVzLCB0aGF0IHdheSB5b3UgY2FuIHRha2UgYWR2YW50YWdlIG9mIERvY2tlcidzIGNhY2hlLiBUaGF0IHdheSBpdCB3b24ndCBoYXZlIHRvIGluc3RhbGwgZXZlcnl0aGluZyBmcm9tIHNjcmF0Y2ggZXZlcnkgdGltZSB5b3UgdXBkYXRlIHlvdXIgYXBwbGljYXRpb24gZmlsZXMsIG9ubHkgd2hlbiB5b3UgYWRkIG5ldyBkZXBlbmRlbmNpZXMuCgpUaGlzIGFsc28gYXBwbGllcyBmb3IgYW55IG90aGVyIHdheSB5b3UgdXNlIHRvIGluc3RhbGwgeW91ciBkZXBlbmRlbmNpZXMuIElmIHlvdSB1c2UgYSBgcmVxdWlyZW1lbnRzLnR4dGAsIGNvcHkgaXQgYWxvbmUgYW5kIGluc3RhbGwgYWxsIHRoZSBkZXBlbmRlbmNpZXMgb24gdGhlIHRvcCBvZiB0aGUgYERvY2tlcmZpbGVgLCBhbmQgYWRkIHlvdXIgYXBwIGNvZGUgYWZ0ZXIgaXQuCgojIyBBZHZhbmNlZCB1c2FnZQoKIyMjIEVudmlyb25tZW50IHZhcmlhYmxlcwoKVGhlc2UgYXJlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHNldCBpbiB0aGUgY29udGFpbmVyIHRvIGNvbmZpZ3VyZSBpdCBhbmQgdGhlaXIgZGVmYXVsdCB2YWx1ZXM6CgojIyMjIGBNT0RVTEVfTkFNRWAKClRoZSBQeXRob24gIm1vZHVsZSIgKGZpbGUpIHRvIGJlIGltcG9ydGVkIGJ5IEd1bmljb3JuLCB0aGlzIG1vZHVsZSB3b3VsZCBjb250YWluIHRoZSBhY3R1YWwgYXBwbGljYXRpb24gaW4gYSB2YXJpYWJsZS4KCkJ5IGRlZmF1bHQ6CgoqIGBhcHAubWFpbmAgaWYgdGhlcmUncyBhIGZpbGUgYC9hcHAvYXBwL21haW4ucHlgIG9yCiogYG1haW5gIGlmIHRoZXJlJ3MgYSBmaWxlIGAvYXBwL21haW4ucHlgCgpGb3IgZXhhbXBsZSwgaWYgeW91ciBtYWluIGZpbGUgd2FzIGF0IGAvYXBwL2N1c3RvbV9hcHAvY3VzdG9tX21haW4ucHlgLCB5b3UgY291bGQgc2V0IGl0IGxpa2U6CgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLXAgODA6ODAgLWUgTU9EVUxFX05BTUU9ImN1c3RvbV9hcHAuY3VzdG9tX21haW4iIG15aW1hZ2UKYGBgCgojIyMjIGBWQVJJQUJMRV9OQU1FYAoKVGhlIHZhcmlhYmxlIGluc2lkZSBvZiB0aGUgUHl0aG9uIG1vZHVsZSB0aGF0IGNvbnRhaW5zIHRoZSBGYXN0QVBJIGFwcGxpY2F0aW9uLgoKQnkgZGVmYXVsdDoKCiogYGFwcGAKCkZvciBleGFtcGxlLCBpZiB5b3VyIG1haW4gUHl0aG9uIGZpbGUgaGFzIHNvbWV0aGluZyBsaWtlOgoKYGBgUHl0aG9uCmZyb20gZmFzdGFwaSBpbXBvcnQgRmFzdEFQSQoKYXBpID0gRmFzdEFQSSgpCgoKQGFwaS5nZXQoIi8iKQpkZWYgcmVhZF9yb290KCk6CiAgICByZXR1cm4geyJIZWxsbyI6ICJXb3JsZCJ9CmBgYAoKSW4gdGhpcyBjYXNlIGBhcGlgIHdvdWxkIGJlIHRoZSB2YXJpYWJsZSB3aXRoIHRoZSBGYXN0QVBJIGFwcGxpY2F0aW9uLiBZb3UgY291bGQgc2V0IGl0IGxpa2U6CgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLXAgODA6ODAgLWUgVkFSSUFCTEVfTkFNRT0iYXBpIiBteWltYWdlCmBgYAoKIyMjIyBgQVBQX01PRFVMRWAKClRoZSBzdHJpbmcgd2l0aCB0aGUgUHl0aG9uIG1vZHVsZSBhbmQgdGhlIHZhcmlhYmxlIG5hbWUgcGFzc2VkIHRvIEd1bmljb3JuLgoKQnkgZGVmYXVsdCwgc2V0IGJhc2VkIG9uIHRoZSB2YXJpYWJsZXMgYE1PRFVMRV9OQU1FYCBhbmQgYFZBUklBQkxFX05BTUVgOgoKKiBgYXBwLm1haW46YXBwYCBvcgoqIGBtYWluOmFwcGAKCllvdSBjYW4gc2V0IGl0IGxpa2U6CgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLXAgODA6ODAgLWUgQVBQX01PRFVMRT0iY3VzdG9tX2FwcC5jdXN0b21fbWFpbjphcGkiIG15aW1hZ2UKYGBgCgojIyMjIGBHVU5JQ09STl9DT05GYAoKVGhlIHBhdGggdG8gYSBHdW5pY29ybiBQeXRob24gY29uZmlndXJhdGlvbiBmaWxlLgoKQnkgZGVmYXVsdDoKCiogYC9hcHAvZ3VuaWNvcm5fY29uZi5weWAgaWYgaXQgZXhpc3RzCiogYC9hcHAvYXBwL2d1bmljb3JuX2NvbmYucHlgIGlmIGl0IGV4aXN0cwoqIGAvZ3VuaWNvcm5fY29uZi5weWAgKHRoZSBpbmNsdWRlZCBkZWZhdWx0KQoKWW91IGNhbiBzZXQgaXQgbGlrZToKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MCAtZSBHVU5JQ09STl9DT05GPSIvYXBwL2N1c3RvbV9ndW5pY29ybl9jb25mLnB5IiBteWltYWdlCmBgYAoKWW91IGNhbiB1c2UgdGhlIFtjb25maWcgZmlsZSBmcm9tIHRoZSBiYXNlIGltYWdlXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1kb2NrZXIvYmxvYi9tYXN0ZXIvZG9ja2VyLWltYWdlcy9ndW5pY29ybl9jb25mLnB5KSBhcyBhIHN0YXJ0aW5nIHBvaW50IGZvciB5b3Vycy4KCiMjIyMgYFdPUktFUlNfUEVSX0NPUkVgCgpUaGlzIGltYWdlIHdpbGwgY2hlY2sgaG93IG1hbnkgQ1BVIGNvcmVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgc2VydmVyIHJ1bm5pbmcgeW91ciBjb250YWluZXIuCgpJdCB3aWxsIHNldCB0aGUgbnVtYmVyIG9mIHdvcmtlcnMgdG8gdGhlIG51bWJlciBvZiBDUFUgY29yZXMgbXVsdGlwbGllZCBieSB0aGlzIHZhbHVlLgoKQnkgZGVmYXVsdDoKCiogYDFgCgpZb3UgY2FuIHNldCBpdCBsaWtlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwIC1lIFdPUktFUlNfUEVSX0NPUkU9IjMiIG15aW1hZ2UKYGBgCgpJZiB5b3UgdXNlZCB0aGUgdmFsdWUgYDNgIGluIGEgc2VydmVyIHdpdGggMiBDUFUgY29yZXMsIGl0IHdvdWxkIHJ1biA2IHdvcmtlciBwcm9jZXNzZXMuCgpZb3UgY2FuIHVzZSBmbG9hdGluZyBwb2ludCB2YWx1ZXMgdG9vLgoKU28sIGZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBhIGJpZyBzZXJ2ZXIgKGxldCdzIHNheSwgd2l0aCA4IENQVSBjb3JlcykgcnVubmluZyBzZXZlcmFsIGFwcGxpY2F0aW9ucywgYW5kIHlvdSBoYXZlIGEgRmFzdEFQSSBhcHBsaWNhdGlvbiB0aGF0IHlvdSBrbm93IHdvbid0IG5lZWQgaGlnaCBwZXJmb3JtYW5jZS4gQW5kIHlvdSBkb24ndCB3YW50IHRvIHdhc3RlIHNlcnZlciByZXNvdXJjZXMuIFlvdSBjb3VsZCBtYWtlIGl0IHVzZSBgMC41YCB3b3JrZXJzIHBlciBDUFUgY29yZS4gRm9yIGV4YW1wbGU6CgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLXAgODA6ODAgLWUgV09SS0VSU19QRVJfQ09SRT0iMC41IiBteWltYWdlCmBgYAoKSW4gYSBzZXJ2ZXIgd2l0aCA4IENQVSBjb3JlcywgdGhpcyB3b3VsZCBtYWtlIGl0IHN0YXJ0IG9ubHkgNCB3b3JrZXIgcHJvY2Vzc2VzLgoKKipOb3RlKio6IEJ5IGRlZmF1bHQsIGlmIGBXT1JLRVJTX1BFUl9DT1JFYCBpcyBgMWAgYW5kIHRoZSBzZXJ2ZXIgaGFzIG9ubHkgMSBDUFUgY29yZSwgaW5zdGVhZCBvZiBzdGFydGluZyAxIHNpbmdsZSB3b3JrZXIsIGl0IHdpbGwgc3RhcnQgMi4gVGhpcyBpcyB0byBhdm9pZCBiYWQgcGVyZm9ybWFuY2UgYW5kIGJsb2NraW5nIGFwcGxpY2F0aW9ucyAoc2VydmVyIGFwcGxpY2F0aW9uKSBvbiBzbWFsbCBtYWNoaW5lcyAoc2VydmVyIG1hY2hpbmUvY2xvdWQvZXRjKS4gVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyBgV0VCX0NPTkNVUlJFTkNZYC4KCiMjIyMgYE1BWF9XT1JLRVJTYAoKU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB3b3JrZXJzIHRvIHVzZS4KCllvdSBjYW4gdXNlIGl0IHRvIGxldCB0aGUgaW1hZ2UgY29tcHV0ZSB0aGUgbnVtYmVyIG9mIHdvcmtlcnMgYXV0b21hdGljYWxseSBidXQgbWFraW5nIHN1cmUgaXQncyBsaW1pdGVkIHRvIGEgbWF4aW11bS4KClRoaXMgY2FuIGJlIHVzZWZ1bCwgZm9yIGV4YW1wbGUsIGlmIGVhY2ggd29ya2VyIHVzZXMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIGFuZCB5b3VyIGRhdGFiYXNlIGhhcyBhIG1heGltdW0gbGltaXQgb2Ygb3BlbiBjb25uZWN0aW9ucy4KCkJ5IGRlZmF1bHQgaXQncyBub3Qgc2V0LCBtZWFuaW5nIHRoYXQgaXQncyB1bmxpbWl0ZWQuCgpZb3UgY2FuIHNldCBpdCBsaWtlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwIC1lIE1BWF9XT1JLRVJTPSIyNCIgbXlpbWFnZQpgYGAKClRoaXMgd291bGQgbWFrZSB0aGUgaW1hZ2Ugc3RhcnQgYXQgbW9zdCAyNCB3b3JrZXJzLCBpbmRlcGVuZGVudCBvZiBob3cgbWFueSBDUFUgY29yZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgc2VydmVyLgoKIyMjIyBgV0VCX0NPTkNVUlJFTkNZYAoKT3ZlcnJpZGUgdGhlIGF1dG9tYXRpYyBkZWZpbml0aW9uIG9mIG51bWJlciBvZiB3b3JrZXJzLgoKQnkgZGVmYXVsdDoKCiogU2V0IHRvIHRoZSBudW1iZXIgb2YgQ1BVIGNvcmVzIGluIHRoZSBjdXJyZW50IHNlcnZlciBtdWx0aXBsaWVkIGJ5IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgV09SS0VSU19QRVJfQ09SRWAuIFNvLCBpbiBhIHNlcnZlciB3aXRoIDIgY29yZXMsIGJ5IGRlZmF1bHQgaXQgd2lsbCBiZSBzZXQgdG8gYDJgLgoKWW91IGNhbiBzZXQgaXQgbGlrZToKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MCAtZSBXRUJfQ09OQ1VSUkVOQ1k9IjIiIG15aW1hZ2UKYGBgCgpUaGlzIHdvdWxkIG1ha2UgdGhlIGltYWdlIHN0YXJ0IDIgd29ya2VyIHByb2Nlc3NlcywgaW5kZXBlbmRlbnQgb2YgaG93IG1hbnkgQ1BVIGNvcmVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIHNlcnZlci4KCiMjIyMgYEhPU1RgCgpUaGUgImhvc3QiIHVzZWQgYnkgR3VuaWNvcm4sIHRoZSBJUCB3aGVyZSBHdW5pY29ybiB3aWxsIGxpc3RlbiBmb3IgcmVxdWVzdHMuCgpJdCBpcyB0aGUgaG9zdCBpbnNpZGUgb2YgdGhlIGNvbnRhaW5lci4KClNvLCBmb3IgZXhhbXBsZSwgaWYgeW91IHNldCB0aGlzIHZhcmlhYmxlIHRvIGAxMjcuMC4wLjFgLCBpdCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGluc2lkZSB0aGUgY29udGFpbmVyLCBub3QgaW4gdGhlIGhvc3QgcnVubmluZyBpdC4KCkl0J3MgaXMgcHJvdmlkZWQgZm9yIGNvbXBsZXRlbmVzcywgYnV0IHlvdSBwcm9iYWJseSBzaG91bGRuJ3QgY2hhbmdlIGl0LgoKQnkgZGVmYXVsdDoKCiogYDAuMC4wLjBgCgojIyMjIGBQT1JUYAoKVGhlIHBvcnQgdGhlIGNvbnRhaW5lciBzaG91bGQgbGlzdGVuIG9uLgoKSWYgeW91IGFyZSBydW5uaW5nIHlvdXIgY29udGFpbmVyIGluIGEgcmVzdHJpY3RpdmUgZW52aXJvbm1lbnQgdGhhdCBmb3JjZXMgeW91IHRvIHVzZSBzb21lIHNwZWNpZmljIHBvcnQgKGxpa2UgYDgwODBgKSB5b3UgY2FuIHNldCBpdCB3aXRoIHRoaXMgdmFyaWFibGUuCgpCeSBkZWZhdWx0OgoKKiBgODBgCgpZb3UgY2FuIHNldCBpdCBsaWtlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgLWUgUE9SVD0iODA4MCIgbXlpbWFnZQpgYGAKCiMjIyMgYEJJTkRgCgpUaGUgYWN0dWFsIGhvc3QgYW5kIHBvcnQgcGFzc2VkIHRvIEd1bmljb3JuLgoKQnkgZGVmYXVsdCwgc2V0IGJhc2VkIG9uIHRoZSB2YXJpYWJsZXMgYEhPU1RgIGFuZCBgUE9SVGAuCgpTbywgaWYgeW91IGRpZG4ndCBjaGFuZ2UgYW55dGhpbmcsIGl0IHdpbGwgYmUgc2V0IGJ5IGRlZmF1bHQgdG86CgoqIGAwLjAuMC4wOjgwYAoKWW91IGNhbiBzZXQgaXQgbGlrZToKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MDgwIC1lIEJJTkQ9IjAuMC4wLjA6ODA4MCIgbXlpbWFnZQpgYGAKCiMjIyMgYExPR19MRVZFTGAKClRoZSBsb2cgbGV2ZWwgZm9yIEd1bmljb3JuLgoKT25lIG9mOgoKKiBgZGVidWdgCiogYGluZm9gCiogYHdhcm5pbmdgCiogYGVycm9yYAoqIGBjcml0aWNhbGAKCkJ5IGRlZmF1bHQsIHNldCB0byBgaW5mb2AuCgpJZiB5b3UgbmVlZCB0byBzcXVlZXplIG1vcmUgcGVyZm9ybWFuY2Ugc2FjcmlmaWNpbmcgbG9nZ2luZywgc2V0IGl0IHRvIGB3YXJuaW5nYCwgZm9yIGV4YW1wbGU6CgpZb3UgY2FuIHNldCBpdCBsaWtlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgLWUgTE9HX0xFVkVMPSJ3YXJuaW5nIiBteWltYWdlCmBgYAoKIyMjIyBgV09SS0VSX0NMQVNTYAoKVGhlIGNsYXNzIHRvIGJlIHVzZWQgYnkgR3VuaWNvcm4gZm9yIHRoZSB3b3JrZXJzLgoKQnkgZGVmYXVsdCwgc2V0IHRvIGB1dmljb3JuLndvcmtlcnMuVXZpY29ybldvcmtlcmAuCgpUaGUgZmFjdCB0aGF0IGl0IHVzZXMgVXZpY29ybiBpcyB3aGF0IGFsbG93cyB1c2luZyBBU0dJIGZyYW1ld29ya3MgbGlrZSBGYXN0QVBJLCBhbmQgdGhhdCBpcyBhbHNvIHdoYXQgcHJvdmlkZXMgdGhlIG1heGltdW0gcGVyZm9ybWFuY2UuCgpZb3UgcHJvYmFibHkgc2hvdWxkbid0IGNoYW5nZSBpdC4KCkJ1dCBpZiBmb3Igc29tZSByZWFzb24geW91IG5lZWQgdG8gdXNlIHRoZSBhbHRlcm5hdGl2ZSBVdmljb3JuIHdvcmtlcjogYHV2aWNvcm4ud29ya2Vycy5Vdmljb3JuSDExV29ya2VyYCB5b3UgY2FuIHNldCBpdCB3aXRoIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgpZb3UgY2FuIHNldCBpdCBsaWtlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgLWUgV09SS0VSX0NMQVNTPSJ1dmljb3JuLndvcmtlcnMuVXZpY29ybkgxMVdvcmtlciIgbXlpbWFnZQpgYGAKCiMjIyMgYFRJTUVPVVRgCgpXb3JrZXJzIHNpbGVudCBmb3IgbW9yZSB0aGFuIHRoaXMgbWFueSBzZWNvbmRzIGFyZSBraWxsZWQgYW5kIHJlc3RhcnRlZC4KClJlYWQgbW9yZSBhYm91dCBpdCBpbiB0aGUgW0d1bmljb3JuIGRvY3M6IHRpbWVvdXRdKGh0dHBzOi8vZG9jcy5ndW5pY29ybi5vcmcvZW4vc3RhYmxlL3NldHRpbmdzLmh0bWwjdGltZW91dCkuCgpCeSBkZWZhdWx0LCBzZXQgdG8gYDEyMGAuCgpOb3RpY2UgdGhhdCBVdmljb3JuIGFuZCBBU0dJIGZyYW1ld29ya3MgbGlrZSBGYXN0QVBJIGFyZSBhc3luYywgbm90IHN5bmMuIFNvIGl0J3MgcHJvYmFibHkgc2FmZSB0byBoYXZlIGhpZ2hlciB0aW1lb3V0cyB0aGFuIGZvciBzeW5jIHdvcmtlcnMuCgpZb3UgY2FuIHNldCBpdCBsaWtlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgLWUgVElNRU9VVD0iMjAiIG15aW1hZ2UKYGBgCgojIyMjIGBLRUVQX0FMSVZFYAoKVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIHJlcXVlc3RzIG9uIGEgS2VlcC1BbGl2ZSBjb25uZWN0aW9uLgoKUmVhZCBtb3JlIGFib3V0IGl0IGluIHRoZSBbR3VuaWNvcm4gZG9jczoga2VlcGFsaXZlXShodHRwczovL2RvY3MuZ3VuaWNvcm4ub3JnL2VuL3N0YWJsZS9zZXR0aW5ncy5odG1sI2tlZXBhbGl2ZSkuCgpCeSBkZWZhdWx0LCBzZXQgdG8gYDJgLgoKWW91IGNhbiBzZXQgaXQgbGlrZToKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MDgwIC1lIEtFRVBfQUxJVkU9IjIwIiBteWltYWdlCmBgYAoKIyMjIyBgR1JBQ0VGVUxfVElNRU9VVGAKClRpbWVvdXQgZm9yIGdyYWNlZnVsIHdvcmtlcnMgcmVzdGFydC4KClJlYWQgbW9yZSBhYm91dCBpdCBpbiB0aGUgW0d1bmljb3JuIGRvY3M6IGdyYWNlZnVsLXRpbWVvdXRdKGh0dHBzOi8vZG9jcy5ndW5pY29ybi5vcmcvZW4vc3RhYmxlL3NldHRpbmdzLmh0bWwjZ3JhY2VmdWwtdGltZW91dCkuCgpCeSBkZWZhdWx0LCBzZXQgdG8gYDEyMGAuCgpZb3UgY2FuIHNldCBpdCBsaWtlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC1kIC1wIDgwOjgwODAgLWUgR1JBQ0VGVUxfVElNRU9VVD0iMjAiIG15aW1hZ2UKYGBgCgojIyMjIGBBQ0NFU1NfTE9HYAoKVGhlIGFjY2VzcyBsb2cgZmlsZSB0byB3cml0ZSB0by4KCkJ5IGRlZmF1bHQgYCItImAsIHdoaWNoIG1lYW5zIHN0ZG91dCAocHJpbnQgaW4gdGhlIERvY2tlciBsb2dzKS4KCklmIHlvdSB3YW50IHRvIGRpc2FibGUgYEFDQ0VTU19MT0dgLCBzZXQgaXQgdG8gYW4gZW1wdHkgdmFsdWUuCgpGb3IgZXhhbXBsZSwgeW91IGNvdWxkIGRpc2FibGUgaXQgd2l0aDoKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MDgwIC1lIEFDQ0VTU19MT0c9IG15aW1hZ2UKYGBgCgojIyMjIGBFUlJPUl9MT0dgCgpUaGUgZXJyb3IgbG9nIGZpbGUgdG8gd3JpdGUgdG8uCgpCeSBkZWZhdWx0IGAiLSJgLCB3aGljaCBtZWFucyBzdGRlcnIgKHByaW50IGluIHRoZSBEb2NrZXIgbG9ncykuCgpJZiB5b3Ugd2FudCB0byBkaXNhYmxlIGBFUlJPUl9MT0dgLCBzZXQgaXQgdG8gYW4gZW1wdHkgdmFsdWUuCgpGb3IgZXhhbXBsZSwgeW91IGNvdWxkIGRpc2FibGUgaXQgd2l0aDoKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MDgwIC1lIEVSUk9SX0xPRz0gbXlpbWFnZQpgYGAKCiMjIyMgYEdVTklDT1JOX0NNRF9BUkdTYAoKQW55IGFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIHNldHRpbmdzIGZvciBHdW5pY29ybiBjYW4gYmUgcGFzc2VkIGluIHRoZSBgR1VOSUNPUk5fQ01EX0FSR1NgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKUmVhZCBtb3JlIGFib3V0IGl0IGluIHRoZSBbR3VuaWNvcm4gZG9jczogU2V0dGluZ3NdKGh0dHBzOi8vZG9jcy5ndW5pY29ybi5vcmcvZW4vc3RhYmxlL3NldHRpbmdzLmh0bWwjc2V0dGluZ3MpLgoKVGhlc2Ugc2V0dGluZ3Mgd2lsbCBoYXZlIHByZWNlZGVuY2Ugb3ZlciB0aGUgb3RoZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBhbnkgR3VuaWNvcm4gY29uZmlnIGZpbGUuCgpGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgYSBjdXN0b20gVExTL1NTTCBjZXJ0aWZpY2F0ZSB0aGF0IHlvdSB3YW50IHRvIHVzZSwgeW91IGNvdWxkIGNvcHkgdGhlbSB0byB0aGUgRG9ja2VyIGltYWdlIG9yIG1vdW50IHRoZW0gaW4gdGhlIGNvbnRhaW5lciwgYW5kIHNldCBbYC0ta2V5ZmlsZWAgYW5kIGAtLWNlcnRmaWxlYF0oaHR0cDovL2RvY3MuZ3VuaWNvcm4ub3JnL2VuL2xhdGVzdC9zZXR0aW5ncy5odG1sI3NzbCkgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBmaWxlcywgZm9yIGV4YW1wbGU6CgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLXAgODA6ODA4MCAtZSBHVU5JQ09STl9DTURfQVJHUz0iLS1rZXlmaWxlPS9zZWNyZXRzL2tleS5wZW0gLS1jZXJ0ZmlsZT0vc2VjcmV0cy9jZXJ0LnBlbSIgLWUgUE9SVD00NDMgbXlpbWFnZQpgYGAKCioqTm90ZSoqOiBpbnN0ZWFkIG9mIGhhbmRsaW5nIFRMUy9TU0wgeW91cnNlbGYgYW5kIGNvbmZpZ3VyaW5nIGl0IGluIHRoZSBjb250YWluZXIsIGl0J3MgcmVjb21tZW5kZWQgdG8gdXNlIGEgIlRMUyBUZXJtaW5hdGlvbiBQcm94eSIgbGlrZSBbVHJhZWZpa10oaHR0cHM6Ly9kb2NzLnRyYWVmaWsuaW8vKS4gWW91IGNhbiByZWFkIG1vcmUgYWJvdXQgaXQgaW4gdGhlIFtGYXN0QVBJIGRvY3VtZW50YXRpb24gYWJvdXQgSFRUUFNdKGh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vZGVwbG95bWVudC8jaHR0cHMpLgoKIyMjIyBgUFJFX1NUQVJUX1BBVEhgCgpUaGUgcGF0aCB3aGVyZSB0byBmaW5kIHRoZSBwcmUtc3RhcnQgc2NyaXB0LgoKQnkgZGVmYXVsdCwgc2V0IHRvIGAvYXBwL3ByZXN0YXJ0LnNoYC4KCllvdSBjYW4gc2V0IGl0IGxpa2U6CgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLXAgODA6ODA4MCAtZSBQUkVfU1RBUlRfUEFUSD0iL2N1c3RvbS9zY3JpcHQuc2giIG15aW1hZ2UKYGBgCgojIyMgQ3VzdG9tIEd1bmljb3JuIGNvbmZpZ3VyYXRpb24gZmlsZQoKVGhlIGltYWdlIGluY2x1ZGVzIGEgZGVmYXVsdCBHdW5pY29ybiBQeXRob24gY29uZmlnIGZpbGUgYXQgYC9ndW5pY29ybl9jb25mLnB5YC4KCkl0IHVzZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBkZWNsYXJlZCBhYm92ZSB0byBzZXQgYWxsIHRoZSBjb25maWd1cmF0aW9ucy4KCllvdSBjYW4gb3ZlcnJpZGUgaXQgYnkgaW5jbHVkaW5nIGEgZmlsZSBpbjoKCiogYC9hcHAvZ3VuaWNvcm5fY29uZi5weWAKKiBgL2FwcC9hcHAvZ3VuaWNvcm5fY29uZi5weWAKKiBgL2d1bmljb3JuX2NvbmYucHlgCgojIyMgQ3VzdG9tIGAvYXBwL3ByZXN0YXJ0LnNoYAoKSWYgeW91IG5lZWQgdG8gcnVuIGFueXRoaW5nIGJlZm9yZSBzdGFydGluZyB0aGUgYXBwLCB5b3UgY2FuIGFkZCBhIGZpbGUgYHByZXN0YXJ0LnNoYCB0byB0aGUgZGlyZWN0b3J5IGAvYXBwYC4gVGhlIGltYWdlIHdpbGwgYXV0b21hdGljYWxseSBkZXRlY3QgYW5kIHJ1biBpdCBiZWZvcmUgc3RhcnRpbmcgZXZlcnl0aGluZy4KCkZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byBhZGQgQWxlbWJpYyBTUUwgbWlncmF0aW9ucyAod2l0aCBTUUxBTGNoZW15KSwgeW91IGNvdWxkIGNyZWF0ZSBhIGAuL2FwcC9wcmVzdGFydC5zaGAgZmlsZSBpbiB5b3VyIGNvZGUgZGlyZWN0b3J5ICh0aGF0IHdpbGwgYmUgY29waWVkIGJ5IHlvdXIgYERvY2tlcmZpbGVgKSB3aXRoOgoKYGBgYmFzaAojISAvdXNyL2Jpbi9lbnYgYmFzaAoKIyBMZXQgdGhlIERCIHN0YXJ0CnNsZWVwIDEwOwojIFJ1biBtaWdyYXRpb25zCmFsZW1iaWMgdXBncmFkZSBoZWFkCmBgYAoKYW5kIGl0IHdvdWxkIHdhaXQgMTAgc2Vjb25kcyB0byBnaXZlIHRoZSBkYXRhYmFzZSBzb21lIHRpbWUgdG8gc3RhcnQgYW5kIHRoZW4gcnVuIHRoYXQgYGFsZW1iaWNgIGNvbW1hbmQuCgpJZiB5b3UgbmVlZCB0byBydW4gYSBQeXRob24gc2NyaXB0IGJlZm9yZSBzdGFydGluZyB0aGUgYXBwLCB5b3UgY291bGQgbWFrZSB0aGUgYC9hcHAvcHJlc3RhcnQuc2hgIGZpbGUgcnVuIHlvdXIgUHl0aG9uIHNjcmlwdCwgd2l0aCBzb21ldGhpbmcgbGlrZToKCmBgYGJhc2gKIyEgL3Vzci9iaW4vZW52IGJhc2gKCiMgUnVuIGN1c3RvbSBQeXRob24gc2NyaXB0IGJlZm9yZSBzdGFydGluZwpweXRob24gL2FwcC9teV9jdXN0b21fcHJlc3RhcnRfc2NyaXB0LnB5CmBgYAoKWW91IGNhbiBjdXN0b21pemUgdGhlIGxvY2F0aW9uIG9mIHRoZSBwcmVzdGFydCBzY3JpcHQgd2l0aCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYFBSRV9TVEFSVF9QQVRIYCBkZXNjcmliZWQgYWJvdmUuCgojIyMgRGV2ZWxvcG1lbnQgbGl2ZSByZWxvYWQKClRoZSBkZWZhdWx0IHByb2dyYW0gdGhhdCBpcyBydW4gaXMgYXQgYC9zdGFydC5zaGAuIEl0IGRvZXMgZXZlcnl0aGluZyBkZXNjcmliZWQgYWJvdmUuCgpUaGVyZSdzIGFsc28gYSB2ZXJzaW9uIGZvciBkZXZlbG9wbWVudCB3aXRoIGxpdmUgYXV0by1yZWxvYWQgYXQ6CgpgYGBiYXNoCi9zdGFydC1yZWxvYWQuc2gKYGBgCgojIyMjIERldGFpbHMKCkZvciBkZXZlbG9wbWVudCwgaXQncyB1c2VmdWwgdG8gYmUgYWJsZSB0byBtb3VudCB0aGUgY29udGVudHMgb2YgdGhlIGFwcGxpY2F0aW9uIGNvZGUgaW5zaWRlIG9mIHRoZSBjb250YWluZXIgYXMgYSBEb2NrZXIgImhvc3Qgdm9sdW1lIiwgdG8gYmUgYWJsZSB0byBjaGFuZ2UgdGhlIGNvZGUgYW5kIHRlc3QgaXQgbGl2ZSwgd2l0aG91dCBoYXZpbmcgdG8gYnVpbGQgdGhlIGltYWdlIGV2ZXJ5IHRpbWUuCgpJbiB0aGF0IGNhc2UsIGl0J3MgYWxzbyB1c2VmdWwgdG8gcnVuIHRoZSBzZXJ2ZXIgd2l0aCBsaXZlIGF1dG8tcmVsb2FkLCBzbyB0aGF0IGl0IHJlLXN0YXJ0cyBhdXRvbWF0aWNhbGx5IGF0IGV2ZXJ5IGNvZGUgY2hhbmdlLgoKVGhlIGFkZGl0aW9uYWwgc2NyaXB0IGAvc3RhcnQtcmVsb2FkLnNoYCBydW5zIFV2aWNvcm4gYWxvbmUgKHdpdGhvdXQgR3VuaWNvcm4pIGFuZCBpbiBhIHNpbmdsZSBwcm9jZXNzLgoKSXQgaXMgaWRlYWwgZm9yIGRldmVsb3BtZW50LgoKIyMjIyBVc2FnZQoKRm9yIGV4YW1wbGUsIGluc3RlYWQgb2YgcnVubmluZzoKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MCBteWltYWdlCmBgYAoKWW91IGNvdWxkIHJ1bjoKCmBgYGJhc2gKZG9ja2VyIHJ1biAtZCAtcCA4MDo4MCAtdiAkKHB3ZCk6L2FwcCBteWltYWdlIC9zdGFydC1yZWxvYWQuc2gKYGBgCgoqIGAtdiAkKHB3ZCk6L2FwcGA6IG1lYW5zIHRoYXQgdGhlIGRpcmVjdG9yeSBgJChwd2QpYCBzaG91bGQgYmUgbW91bnRlZCBhcyBhIHZvbHVtZSBpbnNpZGUgb2YgdGhlIGNvbnRhaW5lciBhdCBgL2FwcGAuCiAgICAqIGAkKHB3ZClgOiBydW5zIGBwd2RgICgicHJpbnQgd29ya2luZyBkaXJlY3RvcnkiKSBhbmQgcHV0cyBpdCBhcyBwYXJ0IG9mIHRoZSBzdHJpbmcuCiogYC9zdGFydC1yZWxvYWQuc2hgOiBhZGRpbmcgc29tZXRoaW5nIChsaWtlIGAvc3RhcnQtcmVsb2FkLnNoYCkgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCwgcmVwbGFjZXMgdGhlIGRlZmF1bHQgImNvbW1hbmQiIHdpdGggdGhpcyBvbmUuIEluIHRoaXMgY2FzZSwgaXQgcmVwbGFjZXMgdGhlIGRlZmF1bHQgKGAvc3RhcnQuc2hgKSB3aXRoIHRoZSBkZXZlbG9wbWVudCBhbHRlcm5hdGl2ZSBgL3N0YXJ0LXJlbG9hZC5zaGAuCgojIyMjIERldmVsb3BtZW50IGxpdmUgcmVsb2FkIC0gVGVjaG5pY2FsIERldGFpbHMKCkFzIGAvc3RhcnQtcmVsb2FkLnNoYCBkb2Vzbid0IHJ1biB3aXRoIEd1bmljb3JuLCBhbnkgb2YgdGhlIGNvbmZpZ3VyYXRpb25zIHlvdSBwdXQgaW4gYSBgZ3VuaWNvcm5fY29uZi5weWAgZmlsZSB3b24ndCBhcHBseS4KCkJ1dCB0aGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2lsbCB3b3JrIHRoZSBzYW1lIGFzIGRlc2NyaWJlZCBhYm92ZToKCiogYE1PRFVMRV9OQU1FYAoqIGBWQVJJQUJMRV9OQU1FYAoqIGBBUFBfTU9EVUxFYAoqIGBIT1NUYAoqIGBQT1JUYAoqIGBMT0dfTEVWRUxgCgojIyDwn5qoIEFscGluZSBQeXRob24gV2FybmluZwoKSW4gc2hvcnQ6IFlvdSBwcm9iYWJseSBzaG91bGRuJ3QgdXNlIEFscGluZSBmb3IgUHl0aG9uIHByb2plY3RzLCBpbnN0ZWFkIHVzZSB0aGUgYHNsaW1gIERvY2tlciBpbWFnZSB2ZXJzaW9ucy4KCi0tLQoKRG8geW91IHdhbnQgbW9yZSBkZXRhaWxzPyBDb250aW51ZSByZWFkaW5nIPCfkYcKCkFscGluZSBpcyBtb3JlIHVzZWZ1bCBmb3Igb3RoZXIgbGFuZ3VhZ2VzIHdoZXJlIHlvdSBidWlsZCBhIHN0YXRpYyBiaW5hcnkgaW4gb25lIERvY2tlciBpbWFnZSBzdGFnZSAodXNpbmcgbXVsdGktc3RhZ2UgRG9ja2VyIGJ1aWxkaW5nKSBhbmQgdGhlbiBjb3B5IGl0IHRvIGEgc2ltcGxlIEFscGluZSBpbWFnZSwgYW5kIHRoZW4ganVzdCBleGVjdXRlIHRoYXQgYmluYXJ5LiBGb3IgZXhhbXBsZSwgdXNpbmcgR28uCgpCdXQgZm9yIFB5dGhvbiwgYXMgQWxwaW5lIGRvZXNuJ3QgdXNlIHRoZSBzdGFuZGFyZCB0b29saW5nIHVzZWQgZm9yIGJ1aWxkaW5nIFB5dGhvbiBleHRlbnNpb25zLCB3aGVuIGluc3RhbGxpbmcgcGFja2FnZXMsIGluIG1hbnkgY2FzZXMgUHl0aG9uIChgcGlwYCkgd29uJ3QgZmluZCBhIHByZWNvbXBpbGVkIGluc3RhbGxhYmxlIHBhY2thZ2UgKGEgIndoZWVsIikgZm9yIEFscGluZS4gQW5kIGFmdGVyIGRlYnVnZ2luZyBsb3RzIG9mIHN0cmFuZ2UgZXJyb3JzIHlvdSB3aWxsIHJlYWxpemUgdGhhdCB5b3UgaGF2ZSB0byBpbnN0YWxsIGEgbG90IG9mIGV4dHJhIHRvb2xpbmcgYW5kIGJ1aWxkIGEgbG90IG9mIGRlcGVuZGVuY2llcyBqdXN0IHRvIHVzZSBzb21lIG9mIHRoZXNlIGNvbW1vbiBQeXRob24gcGFja2FnZXMuIPCfmKkKClRoaXMgbWVhbnMgdGhhdCwgYWx0aG91Z2ggdGhlIG9yaWdpbmFsIEFscGluZSBpbWFnZSBtaWdodCBoYXZlIGJlZW4gc21hbGwsIHlvdSBlbmQgdXAgd2l0aCBhIGFuIGltYWdlIHdpdGggYSBzaXplIGNvbXBhcmFibGUgdG8gdGhlIHNpemUgeW91IHdvdWxkIGhhdmUgZ290dGVuIGlmIHlvdSBoYWQganVzdCB1c2VkIGEgc3RhbmRhcmQgUHl0aG9uIGltYWdlIChiYXNlZCBvbiBEZWJpYW4pLCBvciBpbiBzb21lIGNhc2VzIGV2ZW4gbGFyZ2VyLiDwn6SvCgpBbmQgaW4gYWxsIHRob3NlIGNhc2VzLCBpdCB3aWxsIHRha2UgbXVjaCBsb25nZXIgdG8gYnVpbGQsIGNvbnN1bWluZyBtdWNoIG1vcmUgcmVzb3VyY2VzLCBidWlsZGluZyBkZXBlbmRlbmNpZXMgZm9yIGxvbmdlciwgYW5kIGFsc28gaW5jcmVhc2luZyBpdHMgY2FyYm9uIGZvb3RwcmludCwgYXMgeW91IGFyZSB1c2luZyBtb3JlIENQVSB0aW1lIGFuZCBlbmVyZ3kgZm9yIGVhY2ggYnVpbGQuIPCfjLMKCklmIHlvdSB3YW50IHNsaW0gUHl0aG9uIGltYWdlcywgeW91IHNob3VsZCBpbnN0ZWFkIHRyeSBhbmQgdXNlIHRoZSBgc2xpbWAgdmVyc2lvbnMgdGhhdCBhcmUgc3RpbGwgYmFzZWQgb24gRGViaWFuLCBidXQgYXJlIHNtYWxsZXIuIPCfpJMKCiMjIFRlc3RzCgpBbGwgdGhlIGltYWdlIHRhZ3MsIGNvbmZpZ3VyYXRpb25zLCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIGFwcGxpY2F0aW9uIG9wdGlvbnMgYXJlIHRlc3RlZC4KCiMjIFJlbGVhc2UgTm90ZXMKCiMjIyBMYXRlc3QgQ2hhbmdlcwoKIyMjIyBVcGdyYWRlcwoKKiDirIYgQnVtcCBndW5pY29ybiBmcm9tIDIyLjAuMCB0byAyMy4wLjAuIFBSIFsjMzAwXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzMwMCkgYnkgW0BkZXBlbmRhYm90W2JvdF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL2RlcGVuZGFib3QpLgoqIOKshiBCdW1wIGd1bmljb3JuIGZyb20gMjEuMi4wIHRvIDIyLjAuMC4gUFIgWyMyODddKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjg3KSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCgojIyMjIERvY3MKCiog8J+TnSBEZXByZWNhdGUgdGhpcyBEb2NrZXIgaW1hZ2UsIHVzZSBVdmljb3JuIHdpdGggYC0td29ya2Vyc2Ag4pyoLiBQUiBbIzMwM10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8zMDMpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCiog8J+TnSBBZGQgc2VjdXJpdHkgcG9saWN5LiBQUiBbIzI4M10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yODMpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCgojIyMjIEludGVybmFsCgoqIPCfkbcgVXBkYXRlIGBsYXRlc3QtY2hhbmdlc2AgR2l0SHViIEFjdGlvbi4gUFIgWyMzNDBdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMzQwKSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIOKshiBCdW1wIGRvY2tlci9idWlsZC1wdXNoLWFjdGlvbiBmcm9tIDUgdG8gNi4gUFIgWyMyOTNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjkzKSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog8J+TjCBVbnBpbiB0ZXN0aW5nIGRlcGVuZGVuY2llcy4gUFIgWyMzMDRdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMzA0KSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIOKshiBCdW1wIGRvY2tlci9sb2dpbi1hY3Rpb24gZnJvbSAxIHRvIDMuIFBSIFsjMjgwXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzI4MCkgYnkgW0BkZXBlbmRhYm90W2JvdF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL2RlcGVuZGFib3QpLgoqIOKshiBCdW1wIGRvY2tlci9zZXR1cC1idWlsZHgtYWN0aW9uIGZyb20gMSB0byAzLiBQUiBbIzI3OV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yNzkpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIYgQnVtcCBkb2NrZXIvYnVpbGQtcHVzaC1hY3Rpb24gZnJvbSAyIHRvIDUuIFBSIFsjMjc4XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzI3OCkgYnkgW0BkZXBlbmRhYm90W2JvdF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL2RlcGVuZGFib3QpLgoqIOKshiBCdW1wIGFjdGlvbnMvc2V0dXAtcHl0aG9uIGZyb20gNCB0byA1LiBQUiBbIzI3N10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yNzcpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIYgVXBkYXRlIGJsYWNrIHJlcXVpcmVtZW50IGZyb20gXjIyLjEwIHRvIF4yMy4zLiBQUiBbIzI2OF0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yNjgpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDwn5SnIEFkZCBHaXRIdWIgdGVtcGxhdGVzIGZvciBkaXNjdXNzaW9ucyBhbmQgdGVtcGxhdGVzLiBQUiBbIzI4MV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yODEpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCiog8J+UpyBVcGRhdGUgYGxhdGVzdC1jaGFuZ2VzLnltbGAuIFBSIFsjMjc2XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzI3NikgYnkgW0BhbGVqc2Rldl0oaHR0cHM6Ly9naXRodWIuY29tL2FsZWpzZGV2KS4KCiMjIyAwLjguMAoKIyMjIyBGZWF0dXJlcwoKKiDinKggQWRkIHN1cHBvcnQgZm9yIG11bHRpLWFyY2ggYnVpbGRzLCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IgYXJtNjQgKGUuZy4gTWFjIE0xKS4gUFIgWyMyNzNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjczKSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoKIyMjIyBEb2NzCgoqIPCfk50gVXBkYXRlIHRlc3QgYmFkZ2UgaW4gYFJFQURNRS5tZGAuIFBSIFsjMjc1XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzI3NSkgYnkgW0BhbGVqc2Rldl0oaHR0cHM6Ly9naXRodWIuY29tL2FsZWpzZGV2KS4KKiDwn5OdIFVwZGF0ZSB0ZXN0IGJhZGdlIGluIGBSRUFETUUubWRgLiBQUiBbIzI3NF0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yNzQpIGJ5IFtAYWxlanNkZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGVqc2RldikuCgojIyMjIFVwZ3JhZGVzCgoqIOKshiBCdW1wIGd1bmljb3JuIGZyb20gMjAuMS4wIHRvIDIxLjIuMC4gUFIgWyMyNzBdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjcwKSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog4qyG77iPIEJ1bXAgZmFzdGFwaVthbGxdIGZyb20gMC44Ny4wIHRvIDAuODguMC4gUFIgWyMyMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjIyKSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCgojIyMjIEludGVybmFsCgoqIOKshiBVcGRhdGUgbXlweSByZXF1aXJlbWVudCBmcm9tIF4wLjk5MSB0byBeMS40LiBQUiBbIzI2OV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yNjkpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIYgQnVtcCBhY3Rpb25zL2NoZWNrb3V0IGZyb20gMyB0byA0LiBQUiBbIzI2Nl0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yNjYpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIYgQnVtcCBwZXRlci1ldmFucy9kb2NrZXJodWItZGVzY3JpcHRpb24gZnJvbSAzIHRvIDQuIFBSIFsjMjY3XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzI2NykgYnkgW0BkZXBlbmRhYm90W2JvdF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL2RlcGVuZGFib3QpLgoqIOKshiBCdW1wIGFjdGlvbnMvc2V0dXAtcHl0aG9uIGZyb20gNC4zLjAgdG8gNS4wLjAuIFBSIFsjMjY1XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzI2NSkgYnkgW0BkZXBlbmRhYm90W2JvdF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL2RlcGVuZGFib3QpLgoqIOKshiBCdW1wIHRpYW5nb2xvL2lzc3VlLW1hbmFnZXIgZnJvbSAwLjQuMCB0byAwLjUuMC4gUFIgWyMyNjRdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjY0KSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog8J+RtyBVcGRhdGUgZGVwZW5kYWJvdC4gUFIgWyMyNTNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjUzKSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIPCfkbcgVXBkYXRlIHRva2VuIGZvciBsYXRlc3QgY2hhbmdlcy4gUFIgWyMyNDddKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjQ3KSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIPCfkbcgQWRkIEdpdEh1YiBBY3Rpb24gZm9yIERvY2tlciBIdWIgZGVzY3JpcHRpb24uIFBSIFsjMjIxXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzIyMSkgYnkgW0B0aWFuZ29sb10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvKS4KKiDirIbvuI8gVXBkYXRlIG15cHkgcmVxdWlyZW1lbnQgZnJvbSBeMC45NzEgdG8gXjAuOTkxLiBQUiBbIzIxNF0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yMTQpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIbvuI8gVXBkYXRlIGF1dG9mbGFrZSByZXF1aXJlbWVudCBmcm9tIF4xLjMuMSB0byBeMi4wLjAuIFBSIFsjMjE1XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzIxNSkgYnkgW0BkZXBlbmRhYm90W2JvdF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL2RlcGVuZGFib3QpLgoKIyMjIDAuNy4wCgpIaWdobGlnaHRzIG9mIHRoaXMgcmVsZWFzZToKCiogU3VwcG9ydCBmb3IgUHl0aG9uIDMuMTAgYW5kIDMuMTEuCiogRGVwcmVjYXRpb24gb2YgUHl0aG9uIDMuNi4KICAgICogVGhlIGxhc3QgUHl0aG9uIDMuNiBpbWFnZSB0YWcgd2FzIHB1c2hlZCBhbmQgaXMgYXZhaWxhYmxlIGluIERvY2tlciBIdWIsIGJ1dCBpdCB3b24ndCBiZSB1cGRhdGVkIG9yIG1haW50YWluZWQgYW55bW9yZS4KICAgICogVGhlIGxhc3QgaW1hZ2Ugd2l0aCBhIGRhdGUgdGFnIGlzIGBweXRob24zLjYtMjAyMi0xMS0yNWAuCiogVXBncmFkZWQgdmVyc2lvbnMgb2YgYWxsIHRoZSBkZXBlbmRlbmNpZXMuCgojIyMjIEZlYXR1cmVzCgoqIOKcqCBBZGQgc3VwcG9ydCBmb3IgUHl0aG9uIDMuMTAgYW5kIDMuMTEuIFBSIFsjMjIwXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzIyMCkgYnkgW0B0aWFuZ29sb10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvKS4KKiDinKggQWRkIFB5dGhvbiAzLjkgYW5kIFB5dGhvbiAzLjkgQWxwaW5lLiBQUiBbIzY3XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzY3KSBieSBbQGdyYXVlNzBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmF1ZTcwKS4KCiMjIyMgQnJlYWtpbmcgQ2hhbmdlcwoKKiDwn5SlIERlcHJlY2F0ZSBhbmQgcmVtb3ZlIFB5dGhvbiAzLjYuIFBSIFsjMjExXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzIxMSkgYnkgW0B0aWFuZ29sb10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvKS4KCiMjIyMgVXBncmFkZXMKCiog4qyG77iPIFVwZ3JhZGUgRmFzdEFQSSBhbmQgVXZpY29ybiB2ZXJzaW9ucy4gUFIgWyMyMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjEyKSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIOKshu+4jyBVcGdyYWRlIHBhY2thZ2VzIHRvIHRoZSBsYXN0IHZlcnNpb24gdGhhdCBzdXBwb3J0cyBQeXRob24gMy42LiBQUiBbIzIwN10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yMDcpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCgojIyMjIERvY3MKCiog8J+TnSBBZGQgbm90ZSB0byBkaXNjb3VyYWdlIEFscGluZSB3aXRoIFB5dGhvbi4gUFIgWyMxMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMTIyKSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIPCfk50gQWRkIHdhcm5pbmcgZm9yIEt1YmVybmV0ZXMsIHdoZW4gdG8gdXNlIHRoaXMgaW1hZ2UuIFBSIFsjMTIxXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzEyMSkgYnkgW0B0aWFuZ29sb10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvKS4KKiDinI8gRml4IHR5cG8sIHJlcGVhdGVkIHdvcmQgb24gUkVBRE1FLiBQUiBbIzk2XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzk2KSBieSBbQHNoZWxieWxzbWl0aF0oaHR0cHM6Ly9naXRodWIuY29tL3NoZWxieWxzbWl0aCkuCgojIyMjIEludGVybmFsCgoqIOKshu+4jyBVcGRhdGUgYmxhY2sgcmVxdWlyZW1lbnQgZnJvbSBeMjAuOGIxIHRvIF4yMi4xMC4gUFIgWyMyMTZdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjE2KSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog4qyG77iPIFVwZGF0ZSBkb2NrZXIgcmVxdWlyZW1lbnQgZnJvbSBeNS4wLjMgdG8gXjYuMC4xLiBQUiBbIzIxN10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yMTcpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDwn5SlIFJlbW92ZSBvbGQgVHJhdmlzIGZpbGUuIFBSIFsjMjE5XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzIxOSkgYnkgW0B0aWFuZ29sb10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvKS4KKiDirIbvuI8gVXBncmFkZSBDSSBPUy4gUFIgWyMyMThdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMjE4KSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIPCflKcgVXBkYXRlIERlcGVuZGFib3QgY29uZmlnLiBQUiBbIzIxM10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yMTMpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCiog8J+RtyBBZGQgc2NoZWR1bGVkIENJLiBQUiBbIzIxMF0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yMTApIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCiog8J+RtyBBZGQgYWxscy1ncmVlbiBHaXRIdWIgQWN0aW9uLiBQUiBbIzIwOV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yMDkpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCiog8J+RtyBEbyBub3QgcnVuIGRvdWJsZSBDSSwgcnVuIG9uIHB1c2ggb25seSBvbiBtYXN0ZXIuIFBSIFsjMjA4XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzIwOCkgYnkgW0B0aWFuZ29sb10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvKS4KKiDirIbvuI8gQnVtcCBhY3Rpb25zL3NldHVwLXB5dGhvbiBmcm9tIDQuMS4wIHRvIDQuMy4wLiBQUiBbIzIwMV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8yMDEpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIbvuI8gVXBkYXRlIGJsYWNrIHJlcXVpcmVtZW50IGZyb20gXjE5LjEwYjAgdG8gXjIwLjhiMS4gUFIgWyMxMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMTEzKSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog4qyG77iPIFVwZGF0ZSBkb2NrZXIgcmVxdWlyZW1lbnQgZnJvbSBeNC4yLjAgdG8gXjUuMC4zLiBQUiBbIzEyNV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8xMjUpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIbvuI8gQnVtcCBhY3Rpb25zL2NoZWNrb3V0IGZyb20gMiB0byAzLjEuMC4gUFIgWyMxOTRdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMTk0KSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog4qyG77iPIFVwZGF0ZSBteXB5IHJlcXVpcmVtZW50IGZyb20gXjAuNzcwIHRvIF4wLjk3MS4gUFIgWyMxODRdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMTg0KSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog4qyG77iPIFVwZGF0ZSBpc29ydCByZXF1aXJlbWVudCBmcm9tIF40LjMuMjEgdG8gXjUuOC4wLiBQUiBbIzExNl0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8xMTYpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDirIbvuI8gQnVtcCB0aWFuZ29sby9pc3N1ZS1tYW5hZ2VyIGZyb20gMC4yLjAgdG8gMC40LjAuIFBSIFsjMTEwXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzExMCkgYnkgW0BkZXBlbmRhYm90W2JvdF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL2RlcGVuZGFib3QpLgoqIOKshu+4jyBCdW1wIGFjdGlvbnMvc2V0dXAtcHl0aG9uIGZyb20gMSB0byA0LjEuMC4gUFIgWyMxODJdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMTgyKSBieSBbQGRlcGVuZGFib3RbYm90XV0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvZGVwZW5kYWJvdCkuCiog4qyG77iPIFVwZGF0ZSBweXRlc3QgcmVxdWlyZW1lbnQgZnJvbSBeNS40LjEgdG8gXjcuMC4xLiBQUiBbIzE1M10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8xNTMpIGJ5IFtAZGVwZW5kYWJvdFtib3RdXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9kZXBlbmRhYm90KS4KKiDwn5OMIEFkZCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgYW5kIERlcGVuZGFib3QgdG8gZ2V0IGF1dG9tYXRpYyB1cGdyYWRlIFBScy4gUFIgWyMxMDldKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMTA5KSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoqIPCfkbcgVXBkYXRlIExhdGVzdCBDaGFuZ2VzLiBQUiBbIzEwOF0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8xMDgpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCiog8J+RtyBBbGxvdyBHaXRIdWIgd29ya2Zsb3cgZGlzcGF0Y2ggdG8gdHJpZ2dlciB0ZXN0IGFuZCBkZXBsb3kuIFBSIFsjOTNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvOTMpIGJ5IFtAdGlhbmdvbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sbykuCiog8J+RtyBBZGQgbGF0ZXN0LWNoYW5nZXMgR2l0SHViIGFjdGlvbiwgdXBkYXRlIGlzc3VlLW1hbmFnZXIsIGFkZCBmdW5kaW5nLiBQUiBbIzcwXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzcwKSBieSBbQHRpYW5nb2xvXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8pLgoKIyMjIDAuNi4wCgoqIEFkZCBkb2NzIGFib3V0IGluc3RhbGxpbmcgYW5kIHBpbm5pbmcgZGVwZW5kZW5jaWVzLiBQUiBbIzQxXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzQxKS4KKiBBZGQgYHNsaW1gIHZlcnNpb24uIFBSIFsjNDBdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvNDApLgoqIFVwZGF0ZSBhbmQgcmVmYWN0b3IgYnJpbmdpbmcgYWxsIHRoZSBuZXcgZmVhdHVyZXMgZnJvbSB0aGUgYmFzZSBpbWFnZS4gSW5jbHVkZXM6CiAgICAqIENlbnRyYWxpemUsIHNpbXBsaWZ5LCBhbmQgZGVkdXBsaWNhdGUgY29kZSBhbmQgc2V0dXAKICAgICogTW92ZSBDSSB0byBHaXRIdWIgYWN0aW9ucwogICAgKiBBZGQgUHl0aG9uIDMuOCAoYW5kIEFscGluZSkKICAgICogQWRkIG5ldyBjb25maWdzIGFuZCBkb2NzOgogICAgICAgICogYFdPUktFUl9DTEFTU2AKICAgICAgICAqIGBUSU1FT1VUYAogICAgICAgICogYEtFRVBfQUxJVkVgCiAgICAgICAgKiBgR1JBQ0VGVUxfVElNRU9VVGAKICAgICAgICAqIGBBQ0NFU1NfTE9HYAogICAgICAgICogYEVSUk9SX0xPR2AKICAgICAgICAqIGBHVU5JQ09STl9DTURfQVJHU2AKICAgICAgICAqIGBNQVhfV09SS0VSU2AKICAgICogUFIgWyMzOV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8zOSkuCiogRGlzYWJsZSBwaXAgY2FjaGUgZHVyaW5nIGluc3RhbGxhdGlvbi4gUFIgWyMzOF0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC8zOCkuCiogTWlncmF0ZSBsb2NhbCBkZXZlbG9wbWVudCBmcm9tIFBpcGVudiB0byBQb2V0cnkuIFBSIFsjMzRdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMzQpLgoqIEFkZCBkb2NzIGZvciBjdXN0b20gYFBSRV9TVEFSVF9QQVRIYCBlbnYgdmFyLiBQUiBbIzMzXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1mYXN0YXBpLWRvY2tlci9wdWxsLzMzKS4KCiMjIyAwLjUuMAoKKiBSZWZhY3RvciB0ZXN0cyB0byB1c2UgZW52IHZhcnMgYW5kIGFkZCBpbWFnZSB0YWdzIGZvciBlYWNoIGJ1aWxkIGRhdGUsIGxpa2UgYHRpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaTpweXRob24zLjctMjAxOS0xMC0xNWAuIFBSIFsjMTddKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvMTcpLgoqIFVwZ3JhZGUgVHJhdmlzLiBQUiBbIzldKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby91dmljb3JuLWd1bmljb3JuLWZhc3RhcGktZG9ja2VyL3B1bGwvOSkuCgojIyMgMC40LjAKCiogQWRkIHN1cHBvcnQgZm9yIGxpdmUgYXV0by1yZWxvYWQgd2l0aCBhbiBhZGRpdGlvbmFsIGN1c3RvbSBzY3JpcHQgYC9zdGFydC1yZWxvYWQuc2hgLCBjaGVjayB0aGUgW3VwZGF0ZWQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIjZGV2ZWxvcG1lbnQtbGl2ZS1yZWxvYWQpLiBQUiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1kb2NrZXIvcHVsbC82IiB0YXJnZXQ9Il9ibGFuayI+IzY8L2E+IGluIHBhcmVudCBpbWFnZS4KCiMjIyAwLjMuMAoKKiBTZXQgYFdPUktFUlNfUEVSX0NPUkVgIGJ5IGRlZmF1bHQgdG8gYDFgLCBhcyBpdCBzaG93cyB0byBoYXZlIHRoZSBiZXN0IHBlcmZvcm1hbmNlIG9uIGJlbmNobWFya3MuCiogTWFrZSB0aGUgZGVmYXVsdCB3ZWIgY29uY3VycmVuY3ksIHdoZW4gYFdFQl9DT05DVVJSRU5DWWAgaXMgbm90IHNldCwgdG8gYSBtaW5pbXVtIG9mIDIgd29ya2Vycy4gVGhpcyBpcyB0byBhdm9pZCBiYWQgcGVyZm9ybWFuY2UgYW5kIGJsb2NraW5nIGFwcGxpY2F0aW9ucyAoc2VydmVyIGFwcGxpY2F0aW9uKSBvbiBzbWFsbCBtYWNoaW5lcyAoc2VydmVyIG1hY2hpbmUvY2xvdWQvZXRjKS4gVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyBgV0VCX0NPTkNVUlJFTkNZYC4gVGhpcyBhcHBsaWVzIGZvciBleGFtcGxlIGluIHRoZSBjYXNlIHdoZXJlIGBXT1JLRVJTX1BFUl9DT1JFYCBpcyBzZXQgdG8gYDFgICh0aGUgZGVmYXVsdCkgYW5kIHRoZSBzZXJ2ZXIgaGFzIG9ubHkgMSBDUFUgY29yZS4gUFIgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZmFzdGFwaS1kb2NrZXIvcHVsbC82IiB0YXJnZXQ9Il9ibGFuayI+IzY8L2E+IGFuZCBQUiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vdXZpY29ybi1ndW5pY29ybi1kb2NrZXIvcHVsbC81IiB0YXJnZXQ9Il9ibGFuayI+IzU8L2E+IGluIHBhcmVudCBpbWFnZS4KCiMjIyAwLjIuMAoKKiBNYWtlIGAvc3RhcnQuc2hgIHJ1biBpbmRlcGVuZGVudGx5LCByZWFkaW5nIGFuZCBnZW5lcmF0aW5nIHVzZWQgZGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIEFuZCByZW1vdmUgYC9lbnRyeXBvaW50LnNoYCBhcyBpdCBkb2Vzbid0IG1vZGlmeSBhbnl0aGluZyBpbiB0aGUgc3lzdGVtLCBvbmx5IHJlYWRzIGVudmlyb25tZW50IHZhcmlhYmxlcy4gUFIgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZG9ja2VyL3B1bGwvNCIgdGFyZ2V0PSJfYmxhbmsiPiM0PC9hPiBpbiBwYXJlbnQgaW1hZ2UuCgojIyMgMC4xLjAKCiogQWRkIHN1cHBvcnQgZm9yIGAvYXBwL3ByZXN0YXJ0LnNoYC4KCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLgo= readmeEtag: '"0d8ac543aeed7b087212b18fc2b8c60a2ba81b4b"' readmeLastModified: Mon, 26 Aug 2024 02:20:22 GMT repositoryId: 164136678 description: >- Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python with performance auto-tuning. created: '2019-01-04T17:33:29Z' updated: '2024-09-05T12:45:03Z' language: Python archived: false stars: 2679 watchers: 23 forks: 332 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT repoEtag: '"0ee5986084a9b3f073eb132144d15eda6a2ba56e20ebd7a78b250c86c4ff087c"' repoLastModified: Thu, 05 Sep 2024 12:45:03 GMT foundInMaster: true category: Server Implementations id: d0f3fc0bd35fcadacc8ed2c531780739 - source: - openapi3 tags - openapi31 tags repository: https://github.com/swagger-api/swagger-js v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIENsaWVudCA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1ctbG9nby1jbHIucG5nIiBoZWlnaHQ9IjUwIiBhbGlnbj0icmlnaHQiPgoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy9hY3Rpb25zL3dvcmtmbG93cy9ub2RlanMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWpzL2FjdGlvbnMpCgoqKlN3YWdnZXIgQ2xpZW50KiogaXMgYSBKYXZhU2NyaXB0IG1vZHVsZSB0aGF0IGFsbG93cyB5b3UgdG8gZmV0Y2gsIHJlc29sdmUsIGFuZCBpbnRlcmFjdCB3aXRoIFN3YWdnZXIvT3BlbkFQSSBkb2N1bWVudHMuCgojIyBOZXchCgoqKlRoaXMgaXMgdGhlIG5ldyB2ZXJzaW9uIG9mIHN3YWdnZXItanMsIDMueC4qKiBUaGUgbmV3IHZlcnNpb24gc3VwcG9ydHMgU3dhZ2dlciAyLjAgYXMgd2VsbCBhcyBPcGVuQVBJIDMuCgpXYW50IHRvIGxlYXJuIG1vcmU/IENoZWNrIG91dCBvdXIgW0ZBUV0oZG9jcy9taWdyYXRpb24vbWlncmF0aW9uLTIteC10by0zLXgubWQpLgoKRm9yIGZlYXR1cmVzIGtub3duIHRvIGJlIG1pc3NpbmcgZnJvbSAzLnggcGxlYXNlIHNlZSB0aGUgW0dyYXZleWFyZF0oZG9jcy9taWdyYXRpb24vZ3JhdmV5YXJkLTMteC5tZCkuCgoKRm9yIHRoZSBvbGRlciB2ZXJzaW9uIG9mIHN3YWdnZXItanMsIHJlZmVyIHRvIHRoZSBbKjIueCBicmFuY2gqXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy90cmVlLzIueCkuCgo+ICpUaGUgbnBtIHBhY2thZ2UgaXMgY2FsbGVkIGBzd2FnZ2VyLWNsaWVudGAgYW5kIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSBpcyBgc3dhZ2dlci1qc2AuCldlJ2xsIGJlIGNvbnNvbGlkYXRpbmcgdGhhdCBzb29uLiBKdXN0IGdpdmluZyB5b3UgdGhlIGhlYWRzLXVwLiBZb3UgbWF5IHNlZSByZWZlcmVuY2VzIHRvIGJvdGggbmFtZXMuKgoKIyMgQ29tcGF0aWJpbGl0eQpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgbXVsdGlwbGUgcmV2aXNpb25zIHNpbmNlIGluaXRpYWwgY3JlYXRpb24gaW4gMjAxMC4gCkNvbXBhdGliaWxpdHkgYmV0d2VlbiBTd2FnZ2VyIENsaWVudCBhbmQgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBpcyBhcyBmb2xsb3dzOgoKU3dhZ2dlciBDbGllbnQgVmVyc2lvbiB8IFJlbGVhc2UgRGF0ZSB8IE9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5ICAgICAgICAgICAgIHwgTm90ZXMKLS0tLS0tLS0tLS0tLS0tLS0tIHwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAtLS0tLQozLjE5LnggfCAyMDIzLTAxLTIzICAgfCAyLjAsIDMuMC4wLCAzLjAuMSwgMy4wLjIsIDMuMC4zLCAzLjEuMCB8IFt0YWcgdjMuMTkuMC1hbHBoYS4zXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy9yZWxlYXNlcy90YWcvdjMuMTkuMC1hbHBoYS4zKQozLjEwLnggfCAyMDIwLTAxLTE3ICAgfCAyLjAsIDMuMC4wLCAzLjAuMSwgMy4wLjIsIDMuMC4zICAgICAgICB8IFt0YWcgdjMuMTAuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvdHJlZS92My4xMC4wKQoyLjEuMzIgfCAyMDE3LTAxLTEyICAgfCAxLjAsIDEuMSwgMS4yICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt0YWcgdjIuMS4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvdHJlZS92Mi4xLjMyKS4gVGhpcyBbcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvcmVsZWFzZXMvdGFnL3YyLjEuMzIpIGlzIG9ubHkgYXZhaWxhYmxlIG9uIEdpdEh1Yi4KCiMjIERvY3VtZW50YXRpb24KCiMjIyMgVXNhZ2UKCi0gW0luc3RhbGxhdGlvbl0oZG9jcy91c2FnZS9pbnN0YWxsYXRpb24ubWQpCi0gW1RhZ3MgSW50ZXJmYWNlXShkb2NzL3VzYWdlL3RhZ3MtaW50ZXJmYWNlLm1kKQotIFtIVFRQIGNsaWVudCBmb3IgT0FTIG9wZXJhdGlvbnNdKGRvY3MvdXNhZ2UvaHR0cC1jbGllbnQtZm9yLW9hcy1vcGVyYXRpb25zLm1kKQotIFtPcGVuQVBJIERlZmluaXRpb24gUmVzb2x2ZXJdKGRvY3MvdXNhZ2Uvb3BlbmFwaS1kZWZpbml0aW9uLXJlc29sdmVyLm1kKQotIFtIVFRQIENsaWVudF0oZG9jcy91c2FnZS9odHRwLWNsaWVudC5tZCkKLSBbU3dhZ2dlciBDbGllbnQgQVBJXShkb2NzL3VzYWdlL2FwaS5tZCkKCiMjIyMgRGV2ZWxvcG1lbnQKCi0gW0NvbnRyaWJ1dGluZ10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpLy5naXRodWIvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kKQotIFtTZXR0aW5nIHVwXShkb2NzL2RldmVsb3BtZW50L3NldHRpbmctdXAubWQpCi0gW1NjcmlwdHNdKGRvY3MvZGV2ZWxvcG1lbnQvc2NyaXB0cy5tZCkKCiMjIyMgTWlncmF0aW9ucyAKCi0gW01pZ3JhdGlvbiBndWlkZV0oZG9jcy9taWdyYXRpb24vbWlncmF0aW9uLTIteC10by0zLXgubWQpCi0gW0dyYXZleWFyZF0oZG9jcy9taWdyYXRpb24vZ3JhdmV5YXJkLTMteC5tZCkKCiMjIyBSdW50aW1lIAoKIyMjIE5vZGUuanMKCmBzd2FnZ2VyLWNsaWVudGAgcmVxdWlyZXMgTm9kZS5qcyBgPj0xMi4yMC4wYCBhbmQgdXNlcyBkaWZmZXJlbnQgYGZldGNoYCBpbXBsZW1lbnRhdGlvbiBkZXBlbmRpbmcKb24gTm9kZS5qcyB2ZXJzaW9uLgoKLSBgPj0xMi4yMC4wIDwxOGAgLSBbbm9kZS1mZXRjaEAzXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ub2RlLWZldGNoKSAKLSBgPj0xOGAgLSBbbmF0aXZlIE5vZGUuanMgZmV0Y2hdKGh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0L2xhdGVzdC12MTgueC9kb2NzL2FwaS9nbG9iYWxzLmh0bWwjZmV0Y2gpCgo+IE5PVEU6IHN3YWdnZXItY2xpZW50IG1pbmltdW0gTm9kZS5qcyBydW50aW1lIHZlcnNpb24gYWxpZ25zIHdpdGggW05vZGUuanMgUmVsZWFzZXNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9hYm91dC9yZWxlYXNlcy8pCj4gd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW4gZHJvcCBzdXBwb3J0IGZvciAqKkVPTCoqIChFbmQgT2YgTGlmZSkgTm9kZS5qcyB2ZXJzaW9ucyB3aXRob3V0IGRvaW5nIG1ham9yIHZlcnNpb24gYnVtcC4KCiMjIyBCcm93c2VycwoKYHN3YWdnZXItY2xpZW50YCB3b3JrcyBpbiB0aGUgbGF0ZXN0IHZlcnNpb25zIG9mIENocm9tZSwgU2FmYXJpLCBGaXJlZm94LCBhbmQgRWRnZQphbmQgdXNlcyBbbmF0aXZlIGZldGNoXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmV0Y2hfQVBJKSBpbXBsZW1lbnRhdGlvbgpwcm92aWRlZCBieSBlYWNoIHN1cHBvcnRlZCBicm93c2VyLgoKIyMgU2VjdXJpdHkgY29udGFjdAoKUGxlYXNlIGRpc2Nsb3NlIGFueSBzZWN1cml0eS1yZWxhdGVkIGlzc3VlcyBvciB2dWxuZXJhYmlsaXRpZXMgYnkgZW1haWxpbmcgW3NlY3VyaXR5QHN3YWdnZXIuaW9dKG1haWx0bzpzZWN1cml0eUBzd2FnZ2VyLmlvKSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgcHVibGljIGlzc3VlIHRyYWNrZXIuCg== readmeEtag: '"90c8e04bced456ab4f9618a83fb0817ffa521993"' readmeLastModified: Thu, 15 Aug 2024 07:23:37 GMT repositoryId: 3455070 description: >- Javascript library to connect to swagger-enabled APIs via browser or nodejs created: '2012-02-16T00:08:43Z' updated: '2024-09-03T23:12:55Z' language: JavaScript archived: false stars: 2612 watchers: 97 forks: 759 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"ce0a955a57a2100db8edd741a54d253f99e9430108fbf869f7aa1bf50b01e3c3"' repoLastModified: Tue, 03 Sep 2024 23:12:55 GMT foundInMaster: true category: Code Generators id: 5f98b79464c0723b688cff46ee3500c6 v3_1: true - source: openapi3 tags repository: https://github.com/tfranzel/drf-spectacular v3: true repositoryMetadata: base64Readme: >- PT09PT09PT09PT09PT09CmRyZi1zcGVjdGFjdWxhcgo9PT09PT09PT09PT09PT0KCnxidWlsZC1zdGF0dXN8IHxjb2RlY292fCB8ZG9jc3wgfHB5cGktdmVyc2lvbnwgfHB5cGktZGx8CgpTYW5lIGFuZCBmbGV4aWJsZSBgT3BlbkFQSWBfIChgMy4wLjNgXyAmIGAzLjFgXykgc2NoZW1hIGdlbmVyYXRpb24gZm9yIGBEamFuZ28gUkVTVCBmcmFtZXdvcmtgXy4KClRoaXMgcHJvamVjdCBoYXMgMyBnb2FsczoKICAgIDEuIEV4dHJhY3QgYXMgbXVjaCBzY2hlbWEgaW5mb3JtYXRpb24gZnJvbSBEUkYgYXMgcG9zc2libGUuCiAgICAyLiBQcm92aWRlIGZsZXhpYmlsaXR5IHRvIG1ha2UgdGhlIHNjaGVtYSB1c2FibGUgaW4gdGhlIHJlYWwgd29ybGQgKG5vdCBvbmx5IHRveSBleGFtcGxlcykuCiAgICAzLiBHZW5lcmF0ZSBhIHNjaGVtYSB0aGF0IHdvcmtzIHdlbGwgd2l0aCB0aGUgbW9zdCBwb3B1bGFyIGNsaWVudCBnZW5lcmF0b3JzLgoKVGhlIGNvZGUgaXMgYSBoZWF2aWx5IG1vZGlmaWVkIGZvcmsgb2YgdGhlCmBEUkYgT3BlbkFQSSBnZW5lcmF0b3IgPGh0dHBzOi8vZ2l0aHViLmNvbS9lbmNvZGUvZGphbmdvLXJlc3QtZnJhbWV3b3JrL2Jsb2IvbWFzdGVyL3Jlc3RfZnJhbWV3b3JrL3NjaGVtYXMvb3BlbmFwaS5weS8+YF8sCndoaWNoIGlzL3dhcyBsYWNraW5nIGFsbCBvZiB0aGUgYmVsb3cgbGlzdGVkIGZlYXR1cmVzLgoKRmVhdHVyZXMKICAgIC0gU2VyaWFsaXplcnMgbW9kZWxsZWQgYXMgY29tcG9uZW50cy4gKGFyYml0cmFyeSBuZXN0aW5nIGFuZCByZWN1cnNpb24gc3VwcG9ydGVkKQogICAgLSBgQGV4dGVuZF9zY2hlbWEgPGh0dHBzOi8vZHJmLXNwZWN0YWN1bGFyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9kcmZfc3BlY3RhY3VsYXIuaHRtbCNkcmZfc3BlY3RhY3VsYXIudXRpbHMuZXh0ZW5kX3NjaGVtYT5gXyBkZWNvcmF0b3IgZm9yIGN1c3RvbWl6YXRpb24gb2YgQVBJVmlldywgVmlld3NldHMsIGZ1bmN0aW9uLWJhc2VkIHZpZXdzLCBhbmQgYGBAYWN0aW9uYGAKICAgICAgICAtIGFkZGl0aW9uYWwgcGFyYW1ldGVycwogICAgICAgIC0gcmVxdWVzdC9yZXNwb25zZSBzZXJpYWxpemVyIG92ZXJyaWRlICh3aXRoIHN0YXR1cyBjb2RlcykKICAgICAgICAtIHBvbHltb3JwaGljIHJlc3BvbnNlcyBlaXRoZXIgbWFudWFsbHkgd2l0aCBgYFBvbHltb3JwaGljUHJveHlTZXJpYWxpemVyYGAgaGVscGVyIG9yIHZpYSBgYHJlc3RfcG9seW1vcnBoaWNgYCdzIFBvbHltb3JwaGljU2VyaWFsaXplcikKICAgICAgICAtIC4uLiBhbmQgbW9yZSBjdXN0b21pemF0aW9uIG9wdGlvbnMKICAgIC0gQXV0aGVudGljYXRpb24gc3VwcG9ydCAoRFJGIG5hdGl2ZXMgaW5jbHVkZWQsIGVhc2lseSBleHRlbmRhYmxlKQogICAgLSBDdXN0b20gc2VyaWFsaXplciBjbGFzcyBzdXBwb3J0IChlYXNpbHkgZXh0ZW5kYWJsZSkKICAgIC0gYGBTZXJpYWxpemVyTWV0aG9kRmllbGQoKWBgIHR5cGUgdmlhIHR5cGUgaGludGluZyBvciBgYEBleHRlbmRfc2NoZW1hX2ZpZWxkYGAKICAgIC0gaTE4biBzdXBwb3J0CiAgICAtIFRhZ3MgZXh0cmFjdGlvbgogICAgLSBSZXF1ZXN0L3Jlc3BvbnNlL3BhcmFtZXRlciBleGFtcGxlcwogICAgLSBEZXNjcmlwdGlvbiBleHRyYWN0aW9uIGZyb20gYGBkb2NzdHJpbmdzYGAKICAgIC0gVmVuZG9yIHNwZWNpZmljYXRpb24gZXh0ZW5zaW9ucyAoYGB4LSpgYCkgaW4gaW5mbywgb3BlcmF0aW9ucywgcGFyYW1ldGVycywgY29tcG9uZW50cywgYW5kIHNlY3VyaXR5IHNjaGVtZXMKICAgIC0gU2FuZSBmYWxsYmFja3MKICAgIC0gU2FuZSBgYG9wZXJhdGlvbl9pZGBgIG5hbWluZyAoYmFzZWQgb24gcGF0aCkKICAgIC0gU2NoZW1hIHNlcnZpbmcgd2l0aCBgYFNwZWN0YWN1bGFyQVBJVmlld2BgIChSZWRvYyBhbmQgU3dhZ2dlci1VSSB2aWV3cyBhcmUgYWxzbyBhdmFpbGFibGUpCiAgICAtIE9wdGlvbmFsIGlucHV0L291dHB1dCBzZXJpYWxpemVyIGNvbXBvbmVudCBzcGxpdAogICAgLSBDYWxsYmFjayBvcGVyYXRpb25zCiAgICAtIE9wZW5BUEkgMy4xIHN1cHBvcnQgKHZpYSBzZXR0aW5nIGBgT0FTX1ZFUlNJT05gYCkKICAgIC0gSW5jbHVkZWQgc3VwcG9ydCBmb3I6CiAgICAgICAgLSBgZGphbmdvLXBvbHltb3JwaGljIDxodHRwczovL2dpdGh1Yi5jb20vZGphbmdvLXBvbHltb3JwaGljL2RqYW5nby1wb2x5bW9ycGhpYz5gXyAvIGBkamFuZ28tcmVzdC1wb2x5bW9ycGhpYyA8aHR0cHM6Ly9naXRodWIuY29tL2FwaXJvYm90L2RqYW5nby1yZXN0LXBvbHltb3JwaGljPmBfCiAgICAgICAgLSBgU2ltcGxlSldUIDxodHRwczovL2dpdGh1Yi5jb20vamF6emJhbmQvZGphbmdvcmVzdGZyYW1ld29yay1zaW1wbGVqd3Q+YF8KICAgICAgICAtIGBEamFuZ29PQXV0aFRvb2xraXQgPGh0dHBzOi8vZ2l0aHViLmNvbS9qYXp6YmFuZC9kamFuZ28tb2F1dGgtdG9vbGtpdD5gXwogICAgICAgIC0gYGRqYW5nb3Jlc3RmcmFtZXdvcmstand0IDxodHRwczovL2dpdGh1Yi5jb20vanBhZGlsbGEvZGphbmdvLXJlc3QtZnJhbWV3b3JrLWp3dD5gXyAodGVzdGVkIGZvcmsgYGRyZi1qd3QgPGh0dHBzOi8vZ2l0aHViLmNvbS9TdHlyaWEtRGlnaXRhbC9kamFuZ28tcmVzdC1mcmFtZXdvcmstand0PmBfKQogICAgICAgIC0gYGRqLXJlc3QtYXV0aCA8aHR0cHM6Ly9naXRodWIuY29tL2lNZXJpY2EvZGotcmVzdC1hdXRoPmBfIChtYWludGFpbmVkIGZvcmsgb2YgYGRqYW5nby1yZXN0LWF1dGggPGh0dHBzOi8vZ2l0aHViLmNvbS9UaXZpeC9kamFuZ28tcmVzdC1hdXRoPmBfKQogICAgICAgIC0gYGRqYW5nb3Jlc3RmcmFtZXdvcmstY2FtZWwtY2FzZSA8aHR0cHM6Ly9naXRodWIuY29tL3ZiYWJpeS9kamFuZ29yZXN0ZnJhbWV3b3JrLWNhbWVsLWNhc2U+YF8gKHZpYSBwb3N0cHJvY2Vzc2luZyBob29rIGBgY2FtZWxpemVfc2VyaWFsaXplcl9maWVsZHNgYCkKICAgICAgICAtIGBkamFuZ28tZmlsdGVyIDxodHRwczovL2dpdGh1Yi5jb20vY2FybHRvbmdpYnNvbi9kamFuZ28tZmlsdGVyPmBfCiAgICAgICAgLSBgZHJmLW5lc3RlZC1yb3V0ZXJzIDxodHRwczovL2dpdGh1Yi5jb20vYWxhbmpkcy9kcmYtbmVzdGVkLXJvdXRlcnM+YF8KICAgICAgICAtIGBkamFuZ29yZXN0ZnJhbWV3b3JrLXJlY3Vyc2l2ZSA8aHR0cHM6Ly9naXRodWIuY29tL2hleXdiai9kamFuZ28tcmVzdC1mcmFtZXdvcmstcmVjdXJzaXZlPmBfCiAgICAgICAgLSBgZGphbmdvcmVzdGZyYW1ld29yay1kYXRhY2xhc3NlcyA8aHR0cHM6Ly9naXRodWIuY29tL294YW4vZGphbmdvcmVzdGZyYW1ld29yay1kYXRhY2xhc3Nlcz5gXwogICAgICAgIC0gYGRqYW5nby1yZXN0LWZyYW1ld29yay1naXMgPGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVud2lzcC9kamFuZ28tcmVzdC1mcmFtZXdvcmstZ2lzPmBfCiAgICAgICAgLSBgUHlkYW50aWMgKD49Mi4wKSA8aHR0cHM6Ly9naXRodWIuY29tL3B5ZGFudGljL3B5ZGFudGljPmBfCgoKRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQgdGhlIGBkb2N1bWVudGF0aW9uIDxodHRwczovL2RyZi1zcGVjdGFjdWxhci5yZWFkdGhlZG9jcy5pby8+YF8uCgpMaWNlbnNlCi0tLS0tLS0KClByb3ZpZGVkIGJ5IGBULiBGcmFuemVsIDxodHRwczovL2dpdGh1Yi5jb20vdGZyYW56ZWw+YF8uIGBMaWNlbnNlZCB1bmRlciAzLUNsYXVzZSBCU0QgPGh0dHBzOi8vZ2l0aHViLmNvbS90ZnJhbnplbC9kcmYtc3BlY3RhY3VsYXIvYmxvYi9tYXN0ZXIvTElDRU5TRT5gXy4KClJlcXVpcmVtZW50cwotLS0tLS0tLS0tLS0KCi0gIFB5dGhvbiA+PSAzLjcKLSAgRGphbmdvICgyLjIsIDMuMiwgNC4wLCA0LjEsIDQuMiwgNS4wKQotICBEamFuZ28gUkVTVCBGcmFtZXdvcmsgKDMuMTAuMywgMy4xMSwgMy4xMiwgMy4xMywgMy4xNCwgMy4xNSkKCkluc3RhbGxhdGlvbgotLS0tLS0tLS0tLS0KCkluc3RhbGwgdXNpbmcgYGBwaXBgYFwgLi4uCgouLiBjb2RlOjogYmFzaAoKICAgICQgcGlwIGluc3RhbGwgZHJmLXNwZWN0YWN1bGFyCgp0aGVuIGFkZCBkcmYtc3BlY3RhY3VsYXIgdG8gaW5zdGFsbGVkIGFwcHMgaW4gYGBzZXR0aW5ncy5weWBgCgouLiBjb2RlOjogcHl0aG9uCgogICAgSU5TVEFMTEVEX0FQUFMgPSBbCiAgICAgICAgIyBBTEwgWU9VUiBBUFBTCiAgICAgICAgJ2RyZl9zcGVjdGFjdWxhcicsCiAgICBdCgoKYW5kIGZpbmFsbHkgcmVnaXN0ZXIgb3VyIHNwZWN0YWN1bGFyIEF1dG9TY2hlbWEgd2l0aCBEUkYuCgouLiBjb2RlOjogcHl0aG9uCgogICAgUkVTVF9GUkFNRVdPUksgPSB7CiAgICAgICAgIyBZT1VSIFNFVFRJTkdTCiAgICAgICAgJ0RFRkFVTFRfU0NIRU1BX0NMQVNTJzogJ2RyZl9zcGVjdGFjdWxhci5vcGVuYXBpLkF1dG9TY2hlbWEnLAogICAgfQoKZHJmLXNwZWN0YWN1bGFyIHNoaXBzIHdpdGggc2FuZSBgZGVmYXVsdCBzZXR0aW5ncyA8aHR0cHM6Ly9kcmYtc3BlY3RhY3VsYXIucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3NldHRpbmdzLmh0bWw+YF8KdGhhdCBzaG91bGQgd29yayByZWFzb25hYmx5IHdlbGwgb3V0IG9mIHRoZSBib3guIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8Kc3BlY2lmeSBhbnkgc2V0dGluZ3MsIGJ1dCB3ZSByZWNvbW1lbmQgdG8gc3BlY2lmeSBhdCBsZWFzdCBzb21lIG1ldGFkYXRhLgoKLi4gY29kZTo6IHB5dGhvbgoKICAgIFNQRUNUQUNVTEFSX1NFVFRJTkdTID0gewogICAgICAgICdUSVRMRSc6ICdZb3VyIFByb2plY3QgQVBJJywKICAgICAgICAnREVTQ1JJUFRJT04nOiAnWW91ciBwcm9qZWN0IGRlc2NyaXB0aW9uJywKICAgICAgICAnVkVSU0lPTic6ICcxLjAuMCcsCiAgICAgICAgJ1NFUlZFX0lOQ0xVREVfU0NIRU1BJzogRmFsc2UsCiAgICAgICAgIyBPVEhFUiBTRVRUSU5HUwogICAgfQoKLi4gX3NlbGYtY29udGFpbmVkLXVpLWluc3RhbGxhdGlvbjoKClNlbGYtY29udGFpbmVkIFVJIGluc3RhbGxhdGlvbgpeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KCkNlcnRhaW4gZW52aXJvbm1lbnRzIGhhdmUgbm8gZGlyZWN0IGFjY2VzcyB0byB0aGUgaW50ZXJuZXQgYW5kIGFzIHN1Y2ggYXJlIHVuYWJsZQp0byByZXRyaWV2ZSBTd2FnZ2VyIFVJIG9yIFJlZG9jIGZyb20gQ0ROcy4gYGRyZi1zcGVjdGFjdWxhci1zaWRlY2FyYF8gcHJvdmlkZXMKdGhlc2Ugc3RhdGljIGZpbGVzIGFzIGEgc2VwYXJhdGUgb3B0aW9uYWwgcGFja2FnZS4gVXNhZ2UgaXMgYXMgZm9sbG93czoKCi4uIGNvZGU6OiBiYXNoCgogICAgJCBwaXAgaW5zdGFsbCBkcmYtc3BlY3RhY3VsYXJbc2lkZWNhcl0KCi4uIGNvZGU6OiBweXRob24KCiAgICBJTlNUQUxMRURfQVBQUyA9IFsKICAgICAgICAjIEFMTCBZT1VSIEFQUFMKICAgICAgICAnZHJmX3NwZWN0YWN1bGFyJywKICAgICAgICAnZHJmX3NwZWN0YWN1bGFyX3NpZGVjYXInLCAgIyByZXF1aXJlZCBmb3IgRGphbmdvIGNvbGxlY3RzdGF0aWMgZGlzY292ZXJ5CiAgICBdCiAgICBTUEVDVEFDVUxBUl9TRVRUSU5HUyA9IHsKICAgICAgICAnU1dBR0dFUl9VSV9ESVNUJzogJ1NJREVDQVInLCAgIyBzaG9ydGhhbmQgdG8gdXNlIHRoZSBzaWRlY2FyIGluc3RlYWQKICAgICAgICAnU1dBR0dFUl9VSV9GQVZJQ09OX0hSRUYnOiAnU0lERUNBUicsCiAgICAgICAgJ1JFRE9DX0RJU1QnOiAnU0lERUNBUicsCiAgICAgICAgIyBPVEhFUiBTRVRUSU5HUwogICAgfQoKClJlbGVhc2UgbWFuYWdlbWVudApeXl5eXl5eXl5eXl5eXl5eXl4KCipkcmYtc3BlY3RhY3VsYXIqIGRlbGliZXJhdGVseSBzdGF5cyBiZWxvdyB2ZXJzaW9uICoxLngueCogdG8gc2lnbmFsIHRoYXQgZXZlcnkKbmV3IHZlcnNpb24gbWF5IHBvdGVudGlhbGx5IGJyZWFrIHlvdS4gRm9yIHByb2R1Y3Rpb24gd2Ugc3Ryb25nbHkgcmVjb21tZW5kIHBpbm5pbmcgdGhlCnZlcnNpb24gYW5kIGluc3BlY3RpbmcgYSBzY2hlbWEgZGlmZiBvbiB1cGRhdGUuCgpXaXRoIHRoYXQgc2FpZCwgd2UgYWltIHRvIGJlIGV4dHJlbWVseSBkZWZlbnNpdmUgdy5yLnQuIGJyZWFraW5nIEFQSSBjaGFuZ2VzLiBIb3dldmVyLAp3ZSBhbHNvIGFja25vd2xlZGdlIHRoZSBmYWN0IHRoYXQgZXZlbiBzbGlnaHQgc2NoZW1hIGNoYW5nZXMgbWF5IGJyZWFrIHlvdXIgdG9vbGNoYWluLAphcyBhbnkgZXhpc3RpbmcgYnVnIG1heSBzb21laG93IGFsc28gYmUgdXNlZCBhcyBhIGZlYXR1cmUuCgpXZSBkZWZpbmUgdmVyc2lvbiBpbmNyZW1lbnRzIHdpdGggdGhlIGZvbGxvd2luZyBzZW1hbnRpY3MuICp5LXN0cmVhbSogaW5jcmVtZW50cyBtYXkgY29udGFpbgpwb3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2VzIHRvIGJvdGggQVBJIGFuZCBzY2hlbWEuICp6LXN0cmVhbSogaW5jcmVtZW50cyB3aWxsIG5ldmVyIGJyZWFrIHRoZQpBUEkgYW5kIG1heSBvbmx5IGNvbnRhaW4gc2NoZW1hIGNoYW5nZXMgdGhhdCBzaG91bGQgaGF2ZSBhIGxvdyBjaGFuY2Ugb2YgYnJlYWtpbmcgeW91LgoKClRha2UgaXQgZm9yIGEgc3BpbgotLS0tLS0tLS0tLS0tLS0tLS0KCkdlbmVyYXRlIHlvdXIgc2NoZW1hIHdpdGggdGhlIENMSToKCi4uIGNvZGU6OiBiYXNoCgogICAgJCAuL21hbmFnZS5weSBzcGVjdGFjdWxhciAtLWNvbG9yIC0tZmlsZSBzY2hlbWEueW1sCiAgICAkIGRvY2tlciBydW4gLXAgODA6ODA4MCAtZSBTV0FHR0VSX0pTT049L3NjaGVtYS55bWwgLXYgJHtQV0R9L3NjaGVtYS55bWw6L3NjaGVtYS55bWwgc3dhZ2dlcmFwaS9zd2FnZ2VyLXVpCgpJZiB5b3UgYWxzbyB3YW50IHRvIHZhbGlkYXRlIHlvdXIgc2NoZW1hIGFkZCB0aGUgYGAtLXZhbGlkYXRlYGAgZmxhZy4gT3Igc2VydmUgeW91ciBzY2hlbWEgZGlyZWN0bHkKZnJvbSB5b3VyIEFQSS4gV2UgYWxzbyBwcm92aWRlIGNvbnZlbmllbmNlIHdyYXBwZXJzIGZvciBgYHN3YWdnZXItdWlgYCBvciBgYHJlZG9jYGAuCgouLiBjb2RlOjogcHl0aG9uCgogICAgZnJvbSBkcmZfc3BlY3RhY3VsYXIudmlld3MgaW1wb3J0IFNwZWN0YWN1bGFyQVBJVmlldywgU3BlY3RhY3VsYXJSZWRvY1ZpZXcsIFNwZWN0YWN1bGFyU3dhZ2dlclZpZXcKICAgIHVybHBhdHRlcm5zID0gWwogICAgICAgICMgWU9VUiBQQVRURVJOUwogICAgICAgIHBhdGgoJ2FwaS9zY2hlbWEvJywgU3BlY3RhY3VsYXJBUElWaWV3LmFzX3ZpZXcoKSwgbmFtZT0nc2NoZW1hJyksCiAgICAgICAgIyBPcHRpb25hbCBVSToKICAgICAgICBwYXRoKCdhcGkvc2NoZW1hL3N3YWdnZXItdWkvJywgU3BlY3RhY3VsYXJTd2FnZ2VyVmlldy5hc192aWV3KHVybF9uYW1lPSdzY2hlbWEnKSwgbmFtZT0nc3dhZ2dlci11aScpLAogICAgICAgIHBhdGgoJ2FwaS9zY2hlbWEvcmVkb2MvJywgU3BlY3RhY3VsYXJSZWRvY1ZpZXcuYXNfdmlldyh1cmxfbmFtZT0nc2NoZW1hJyksIG5hbWU9J3JlZG9jJyksCiAgICBdCgpVc2FnZQotLS0tLQoKKmRyZi1zcGVjdGFjdWxhciogd29ya3MgcHJldHR5IHdlbGwgb3V0IG9mIHRoZSBib3guIFlvdSBtaWdodCBhbHNvIHdhbnQgdG8gc2V0IHNvbWUgbWV0YWRhdGEgZm9yIHlvdXIgQVBJLgpKdXN0IGNyZWF0ZSBhIGBgU1BFQ1RBQ1VMQVJfU0VUVElOR1NgYCBkaWN0aW9uYXJ5IGluIHlvdXIgYGBzZXR0aW5ncy5weWBgIGFuZCBvdmVycmlkZSB0aGUgZGVmYXVsdHMuCkhhdmUgYSBsb29rIGF0IHRoZSBgYXZhaWxhYmxlIHNldHRpbmdzIDxodHRwczovL2RyZi1zcGVjdGFjdWxhci5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3Qvc2V0dGluZ3MuaHRtbD5gXy4KClRoZSB0b3kgZXhhbXBsZXMgZG8gbm90IGNvdmVyIHlvdXIgY2FzZXM/IE5vIHByb2JsZW0sIHlvdSBjYW4gaGVhdmlseSBjdXN0b21pemUgaG93IHlvdXIgc2NoZW1hIHdpbGwgYmUgcmVuZGVyZWQuCgpDdXN0b21pemF0aW9uIGJ5IHVzaW5nIGBgQGV4dGVuZF9zY2hlbWFgYApeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgoKTW9zdCBjdXN0b21pemF0aW9uIGNhc2VzIHNob3VsZCBiZSBjb3ZlcmVkIGJ5IHRoZSBgYGV4dGVuZF9zY2hlbWFgYCBkZWNvcmF0b3IuIFdlIHVzdWFsbHkgZ2V0CnByZXR0eSBmYXIgd2l0aCBzcGVjaWZ5aW5nIGBgT3BlbkFwaVBhcmFtZXRlcmBgIGFuZCBzcGxpdHRpbmcgcmVxdWVzdC9yZXNwb25zZSBzZXJpYWxpemVycywgYnV0CnRoZSBza3kgaXMgdGhlIGxpbWl0LgoKLi4gY29kZTo6IHB5dGhvbgoKICAgIGZyb20gZHJmX3NwZWN0YWN1bGFyLnV0aWxzIGltcG9ydCBleHRlbmRfc2NoZW1hLCBPcGVuQXBpUGFyYW1ldGVyLCBPcGVuQXBpRXhhbXBsZQogICAgZnJvbSBkcmZfc3BlY3RhY3VsYXIudHlwZXMgaW1wb3J0IE9wZW5BcGlUeXBlcwoKICAgIGNsYXNzIEFsYnVtVmlld3NldCh2aWV3c2V0Lk1vZGVsVmlld3NldCk6CiAgICAgICAgc2VyaWFsaXplcl9jbGFzcyA9IEFsYnVtU2VyaWFsaXplcgoKICAgICAgICBAZXh0ZW5kX3NjaGVtYSgKICAgICAgICAgICAgcmVxdWVzdD1BbGJ1bUNyZWF0aW9uU2VyaWFsaXplciwKICAgICAgICAgICAgcmVzcG9uc2VzPXsyMDE6IEFsYnVtU2VyaWFsaXplcn0sCiAgICAgICAgKQogICAgICAgIGRlZiBjcmVhdGUoc2VsZiwgcmVxdWVzdCk6CiAgICAgICAgICAgICMgeW91ciBub24tc3RhbmRhcmQgYmVoYXZpb3VyCiAgICAgICAgICAgIHJldHVybiBzdXBlcigpLmNyZWF0ZShyZXF1ZXN0KQoKICAgICAgICBAZXh0ZW5kX3NjaGVtYSgKICAgICAgICAgICAgIyBleHRyYSBwYXJhbWV0ZXJzIGFkZGVkIHRvIHRoZSBzY2hlbWEKICAgICAgICAgICAgcGFyYW1ldGVycz1bCiAgICAgICAgICAgICAgICBPcGVuQXBpUGFyYW1ldGVyKG5hbWU9J2FydGlzdCcsIGRlc2NyaXB0aW9uPSdGaWx0ZXIgYnkgYXJ0aXN0JywgcmVxdWlyZWQ9RmFsc2UsIHR5cGU9c3RyKSwKICAgICAgICAgICAgICAgIE9wZW5BcGlQYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgbmFtZT0ncmVsZWFzZScsCiAgICAgICAgICAgICAgICAgICAgdHlwZT1PcGVuQXBpVHlwZXMuREFURSwKICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbj1PcGVuQXBpUGFyYW1ldGVyLlFVRVJZLAogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdGaWx0ZXIgYnkgcmVsZWFzZSBkYXRlJywKICAgICAgICAgICAgICAgICAgICBleGFtcGxlcz1bCiAgICAgICAgICAgICAgICAgICAgICAgIE9wZW5BcGlFeGFtcGxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0V4YW1wbGUgMScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5PSdzaG9ydCBvcHRpb25hbCBzdW1tYXJ5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdsb25nZXIgZGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9JzE5OTMtMDgtMjMnCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIC4uLgogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAjIG92ZXJyaWRlIGRlZmF1bHQgZG9jc3RyaW5nIGV4dHJhY3Rpb24KICAgICAgICAgICAgZGVzY3JpcHRpb249J01vcmUgZGVzY3JpcHRpdmUgdGV4dCcsCiAgICAgICAgICAgICMgcHJvdmlkZSBBdXRoZW50aWNhdGlvbiBjbGFzcyB0aGF0IGRldmlhdGVzIGZyb20gdGhlIHZpZXdzIGRlZmF1bHQKICAgICAgICAgICAgYXV0aD1Ob25lLAogICAgICAgICAgICAjIGNoYW5nZSB0aGUgYXV0by1nZW5lcmF0ZWQgb3BlcmF0aW9uIG5hbWUKICAgICAgICAgICAgb3BlcmF0aW9uX2lkPU5vbmUsCiAgICAgICAgICAgICMgb3IgZXZlbiBjb21wbGV0ZWx5IG92ZXJyaWRlIHdoYXQgQXV0b1NjaGVtYSB3b3VsZCBnZW5lcmF0ZS4gUHJvdmlkZSByYXcgT3BlbiBBUEkgc3BlYyBhcyBEaWN0LgogICAgICAgICAgICBvcGVyYXRpb249Tm9uZSwKICAgICAgICAgICAgIyBhdHRhY2ggcmVxdWVzdC9yZXNwb25zZSBleGFtcGxlcyB0byB0aGUgb3BlcmF0aW9uLgogICAgICAgICAgICBleGFtcGxlcz1bCiAgICAgICAgICAgICAgICBPcGVuQXBpRXhhbXBsZSgKICAgICAgICAgICAgICAgICAgICAnRXhhbXBsZSAxJywKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0nbG9uZ2VyIGRlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgICAgICB2YWx1ZT0uLi4KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAuLi4KICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgZGVmIGxpc3Qoc2VsZiwgcmVxdWVzdCk6CiAgICAgICAgICAgICMgeW91ciBub24tc3RhbmRhcmQgYmVoYXZpb3VyCiAgICAgICAgICAgIHJldHVybiBzdXBlcigpLmxpc3QocmVxdWVzdCkKCiAgICAgICAgQGV4dGVuZF9zY2hlbWEoCiAgICAgICAgICAgIHJlcXVlc3Q9QWxidW1MaWtlU2VyaWFsaXplciwKICAgICAgICAgICAgcmVzcG9uc2VzPXsyMDQ6IE5vbmV9LAogICAgICAgICAgICBtZXRob2RzPVsiUE9TVCJdCiAgICAgICAgKQogICAgICAgIEBleHRlbmRfc2NoZW1hKGRlc2NyaXB0aW9uPSdPdmVycmlkZSBhIHNwZWNpZmljIG1ldGhvZCcsIG1ldGhvZHM9WyJHRVQiXSkKICAgICAgICBAYWN0aW9uKGRldGFpbD1UcnVlLCBtZXRob2RzPVsncG9zdCcsICdnZXQnXSkKICAgICAgICBkZWYgc2V0X3Bhc3N3b3JkKHNlbGYsIHJlcXVlc3QsIHBrPU5vbmUpOgogICAgICAgICAgICAjIHlvdXIgYWN0aW9uIGJlaGF2aW91cgogICAgICAgICAgICAuLi4KCk1vcmUgY3VzdG9taXphdGlvbgpeXl5eXl5eXl5eXl5eXl5eXl4KClN0aWxsIG5vdCBzYXRpc2ZpZWQ/IFlvdSB3YW50IG1vcmUhIFdlIHN0aWxsIGdvdCB5b3UgY292ZXJlZC4KVmlzaXQgYGN1c3RvbWl6YXRpb24gPGh0dHBzOi8vZHJmLXNwZWN0YWN1bGFyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9jdXN0b21pemF0aW9uLmh0bWw+YF8gZm9yIG1vcmUgaW5mb3JtYXRpb24uCgoKVGVzdGluZwotLS0tLS0tCgpJbnN0YWxsIHRlc3RpbmcgcmVxdWlyZW1lbnRzLgoKLi4gY29kZTo6IGJhc2gKCiAgICAkIHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKClJ1biB3aXRoIHJ1bnRlc3RzLgoKLi4gY29kZTo6IGJhc2gKCiAgICAkIC4vcnVudGVzdHMucHkKCllvdSBjYW4gYWxzbyB1c2UgdGhlIGV4Y2VsbGVudCBgdG94YF8gdGVzdGluZyB0b29sIHRvIHJ1biB0aGUgdGVzdHMKYWdhaW5zdCBhbGwgc3VwcG9ydGVkIHZlcnNpb25zIG9mIFB5dGhvbiBhbmQgRGphbmdvLiBJbnN0YWxsIHRveApnbG9iYWxseSwgYW5kIHRoZW4gc2ltcGx5IHJ1bjoKCi4uIGNvZGU6OiBiYXNoCgogICAgJCB0b3gKCi4uIF9EamFuZ28gUkVTVCBmcmFtZXdvcms6IGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvCi4uIF9PcGVuQVBJOiBodHRwczovL3N3YWdnZXIuaW8vCi4uIF8zLjAuMzogaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zCi4uIF8zLjE6IGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMAouLiBfdG94OiBodHRwczovL3RveC53aWtpLwouLiBfZHJmLXNwZWN0YWN1bGFyLXNpZGVjYXI6IGh0dHBzOi8vZ2l0aHViLmNvbS90ZnJhbnplbC9kcmYtc3BlY3RhY3VsYXItc2lkZWNhcgoKLi4gfGJ1aWxkLXN0YXR1c3wgaW1hZ2U6OiBodHRwczovL2dpdGh1Yi5jb20vdGZyYW56ZWwvZHJmLXNwZWN0YWN1bGFyL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcKICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL3RmcmFuemVsL2RyZi1zcGVjdGFjdWxhci9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwKLi4gfHB5cGktdmVyc2lvbnwgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9kcmYtc3BlY3RhY3VsYXIuc3ZnCiAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kcmYtc3BlY3RhY3VsYXIvCi4uIHxjb2RlY292fCBpbWFnZTo6IGh0dHBzOi8vY29kZWNvdi5pby9naC90ZnJhbnplbC9kcmYtc3BlY3RhY3VsYXIvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcKICAgOnRhcmdldDogaHR0cHM6Ly9jb2RlY292LmlvL2doL3RmcmFuemVsL2RyZi1zcGVjdGFjdWxhcgouLiB8ZG9jc3wgaW1hZ2U6OiBodHRwczovL3JlYWR0aGVkb2NzLm9yZy9wcm9qZWN0cy9kcmYtc3BlY3RhY3VsYXIvYmFkZ2UvCiAgIDp0YXJnZXQ6IGh0dHBzOi8vZHJmLXNwZWN0YWN1bGFyLnJlYWR0aGVkb2NzLmlvLwouLiB8cHlwaS1kbHwgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZG0vZHJmLXNwZWN0YWN1bGFyCiAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kcmYtc3BlY3RhY3VsYXIvCg== readmeEtag: '"e1544657150e4ed26177d31f496e07e9d450ebf6"' readmeLastModified: Tue, 30 Jul 2024 19:54:29 GMT repositoryId: 244234763 description: Sane and flexible OpenAPI 3 schema generation for Django REST framework. created: '2020-03-01T22:36:54Z' updated: '2024-09-05T20:35:58Z' language: Python archived: false stars: 2296 watchers: 11 forks: 255 owner: tfranzel logo: https://avatars.githubusercontent.com/u/13507857?v=4 license: BSD-3-Clause repoEtag: '"c6a83c841460217879b5f5c8c6e57b8faf5ea6a92e082ace7c3818e6c0bf55b4"' repoLastModified: Thu, 05 Sep 2024 20:35:58 GMT foundInMaster: true category: Server Implementations id: 520f5c66c3e42a7b3fbface4f156c1dc - source: openapi3 tags name: Schemathesis homepage: https://github.com/schemathesis/schemathesis language: Python source_description: >- A modern API testing tool for web applications built with OpenAPI and GraphQL specifications category: - Testing Tools - Server Implementations repository: https://github.com/schemathesis/schemathesis v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2NoZW1hdGhlc2lzL3NjaGVtYXRoZXNpcy9hY3Rpb25zIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9zY2hlbWF0aGVzaXMvc2NoZW1hdGhlc2lzL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbC9iYWRnZS5zdmciIGFsdD0iQnVpbGQiPgogICAgPC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9jb2RlY292LmlvL2doL3NjaGVtYXRoZXNpcy9zY2hlbWF0aGVzaXMvYnJhbmNoL21hc3RlciIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2NvZGVjb3YuaW8vZ2gvc2NoZW1hdGhlc2lzL3NjaGVtYXRoZXNpcy9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyIgYWx0PSJDb3ZlcmFnZSI+CiAgICA8L2E+CiAgICA8YSBocmVmPSJodHRwczovL3B5cGkub3JnL3Byb2plY3Qvc2NoZW1hdGhlc2lzLyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9zY2hlbWF0aGVzaXMuc3ZnIiBhbHQ9IlZlcnNpb24iPgogICAgPC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3NjaGVtYXRoZXNpcy8iIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvc2NoZW1hdGhlc2lzLnN2ZyIgYWx0PSJQeXRob24gdmVyc2lvbnMiPgogICAgPC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmdnL1I5QVNSQW1IbkEiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kaXNjb3JkLzkzODEzOTc0MDkxMjM2OTc1NSIgYWx0PSJEaXNjb3JkIj4KICAgIDwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9sL3NjaGVtYXRoZXNpcy5zdmciIGFsdD0iTGljZW5zZSI+CiAgICA8L2E+CjwvcD4KCiMjIFNjaGVtYXRoZXNpcwoKU2NoZW1hdGhlc2lzIGlzIGFuIEFQSSB0ZXN0aW5nIHRvb2wgdGhhdCBhdXRvbWF0aWNhbGx5IGZpbmRzIGNyYXNoZXMgYW5kIHZhbGlkYXRlcyBzcGVjIGNvbXBsaWFuY2UuCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NjaGVtYXRoZXNpcy9zY2hlbWF0aGVzaXMvbWFzdGVyL2ltZy9kZW1vLmdpZiIgYWx0PSJTY2hlbWF0aGVzaXMgRGVtbyIvPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aT5GaW5kaW5nIHNlcnZlciBjcmFzaGVzIGluIHRoZSBEZW1vIEFQSS48L2k+CjwvcD4KCiMjIyBIaWdobGlnaHRzCgrwn46vICoqQ2F0Y2hlcyBIYXJkLXRvLUZpbmQgQnVncyoqCgotIFVuY292ZXIgaGlkZGVuIGNyYXNoZXMgYW5kIGVkZ2UgY2FzZXMgdGhhdCBtYW51YWwgdGVzdGluZyBtaWdodCBtaXNzCi0gSWRlbnRpZnkgc3BlYyB2aW9sYXRpb25zIGFuZCBlbnN1cmUgeW91ciBBUEkgYWRoZXJlcyB0byBpdHMgY29udHJhY3QKCuKaoSAqKkFjY2VsZXJhdGVzIFRlc3RpbmcgQ3ljbGVzKioKCi0gQXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIHdpZGUgcmFuZ2Ugb2YgdGVzdCBjYXNlcyBiYXNlZCBvbiB5b3VyIEFQSSBzY2hlbWEKLSBTYXZlIHRpbWUgYnkgcmVkdWNpbmcgdGhlIG5lZWQgZm9yIG1hbnVhbCB0ZXN0IGNhc2UgY3JlYXRpb24KCvCfp6kgKipJbnRlZ3JhdGVzIFNlYW1sZXNzbHkqKgoKLSBXb3JrcyB3aXRoIHBvcHVsYXIgQVBJIGZvcm1hdHMgc3VjaCBhcyBPcGVuQVBJLCBHcmFwaFFMLgotIEVhc2lseSBpbnRlZ3JhdGUgaW50byB5b3VyIGV4aXN0aW5nIENJL0NEIHdvcmtmbG93cy4KCvCflKcgKipDdXN0b21pemFibGUgYW5kIEV4dGVuZGFibGUqKgoKLSBUdW5lIHRoZSB0ZXN0aW5nIHByb2Nlc3MgdXNpbmcgUHl0aG9uIGV4dGVuc2lvbnMuCi0gQWRqdXN0IHRoZSB0ZXN0aW5nIGZsb3cgdG8gc3VpdCB5b3VyIG5lZWRzIHdpdGggcmljaCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgrwn5CeICoqU2ltcGxpZmllcyBEZWJ1Z2dpbmcqKgoKLSBHZXQgZGV0YWlsZWQgcmVwb3J0cyB0byBpZGVudGlmeSBhbmQgZml4IGlzc3VlcyBxdWlja2x5LgotIFJlcHJvZHVjZSBmYWlsaW5nIHRlc3QgY2FzZXMgd2l0aCBjVVJMIGNvbW1hbmRzLgoK8J+UrCAqKlByb3ZlbiBieSBSZXNlYXJjaCoqCgotIFZhbGlkYXRlZCB0aHJvdWdoIGFjYWRlbWljIHN0dWRpZXMgb24gQVBJIHRlc3RpbmcgYXV0b21hdGlvbgotIEZlYXR1cmVkIGluIFtJQ1NFIDIwMjIgcGFwZXJdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85NzkzNzgxKSBvbiBzZW1hbnRpY3MtYXdhcmUgZnV6emluZwotIFJlY29nbml6ZWQgaW4gW0FDTSBzdXJ2ZXldKGh0dHBzOi8vZGwuYWNtLm9yZy9kb2kvMTAuMTE0NS8zNjE3MTc1KSBhcyBzdGF0ZS1vZi10aGUtYXJ0IFJFU1RmdWwgQVBJIHRlc3RpbmcgdG9vbAoKIyMgSW5zdGFsbGF0aW9uCgpVc2UgU2NoZW1hdGhlc2lzIHZpYSBEb2NrZXIsIG9yIGluc3RhbGwgaXQgZnJvbSBbUHlQSV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3NjaGVtYXRoZXNpcy8pCgpgYGBjb25zb2xlCiMgVmlhIERvY2tlci4KJCBkb2NrZXIgcHVsbCBzY2hlbWF0aGVzaXMvc2NoZW1hdGhlc2lzOnN0YWJsZQoKIyBXaXRoIHBpcC4KJCBwaXAgaW5zdGFsbCBzY2hlbWF0aGVzaXMKYGBgCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClNjaGVtYXRoZXNpcyB3b3JrcyBhcyBhIHN0YW5kYWxvbmUgQ0xJOgoKYGBgY29uc29sZQpkb2NrZXIgcnVuIHNjaGVtYXRoZXNpcy9zY2hlbWF0aGVzaXM6c3RhYmxlCiAgIHJ1biAtLWNoZWNrcyBhbGwgaHR0cHM6Ly9leGFtcGxlLnNjaGVtYXRoZXNpcy5pby9vcGVuYXBpLmpzb24KIyBPciB3aGVuIGluc3RhbGxlZCB3aXRoIHBpcApzY2hlbWF0aGVzaXMgcnVuIC0tY2hlY2tzIGFsbCBodHRwczovL2V4YW1wbGUuc2NoZW1hdGhlc2lzLmlvL29wZW5hcGkuanNvbgpgYGAKCk9yIGEgUHl0aG9uIGxpYnJhcnk6CgpgYGBweXRob24KaW1wb3J0IHNjaGVtYXRoZXNpcwoKc2NoZW1hID0gc2NoZW1hdGhlc2lzLmZyb21fdXJpKCJodHRwczovL2V4YW1wbGUuc2NoZW1hdGhlc2lzLmlvL29wZW5hcGkuanNvbiIpCgoKQHNjaGVtYS5wYXJhbWV0cml6ZSgpCmRlZiB0ZXN0X2FwaShjYXNlKToKICAgIGNhc2UuY2FsbF9hbmRfdmFsaWRhdGUoKQpgYGAKClNlZSBhIGNvbXBsZXRlIHdvcmtpbmcgZXhhbXBsZSBwcm9qZWN0IGluIHRoZSBbL2V4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2hlbWF0aGVzaXMvc2NoZW1hdGhlc2lzL3RyZWUvbWFzdGVyL2V4YW1wbGUpIGRpcmVjdG9yeS4KClNjaGVtYXRoZXNpcyBjYW4gYmUgZWFzaWx5IGludGVncmF0ZWQgaW50byB5b3VyIENJL0NEIHBpcGVsaW5lIHVzaW5nIEdpdEh1YiBBY3Rpb25zLiBBZGQgdGhpcyBibG9jayB0byB5b3VyIEdpdEh1YiBBY3Rpb25zIHRvIHJ1biBTY2hlbWF0aGVzaXMgYWdhaW5zdCB5b3VyIEFQSToKCmBgYHlhbWwKYXBpLXRlc3RzOgogIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICBzdGVwczoKICAgIC0gdXNlczogc2NoZW1hdGhlc2lzL2FjdGlvbkB2MQogICAgICB3aXRoOgogICAgICAgIHNjaGVtYTogImh0dHBzOi8vZXhhbXBsZS5zY2hlbWF0aGVzaXMuaW8vb3BlbmFwaS5qc29uIgogICAgICAgICMgT1BUSU9OQUwuIEFkZCBTY2hlbWF0aGVzaXMuaW8gdG9rZW4gZm9yIHB1bGwgcmVxdWVzdCByZXBvcnRzCiAgICAgICAgdG9rZW46ICR7eyBzZWNyZXRzLlNDSEVNQVRIRVNJU19UT0tFTiB9fQpgYGAKCkZvciBtb3JlIGRldGFpbHMsIGNoZWNrIG91dCBvdXIgW0dpdEh1YiBBY3Rpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2hlbWF0aGVzaXMvYWN0aW9uKSByZXBvc2l0b3J5IG9yIHNlZSBvdXIgW0dpdEh1YiBUdXRvcmlhbF0oaHR0cHM6Ly9kb2NzLnNjaGVtYXRoZXNpcy5pby90dXRvcmlhbHMvZ2l0aHViKS4KCkZvciB0ZXN0IHJlcG9ydHMgaW4geW91ciBwdWxsIHJlcXVlc3RzLCBpbnN0YWxsIHRoZSBbR2l0SHViIGFwcF0oaHR0cHM6Ly9naXRodWIuY29tL2FwcHMvc2NoZW1hdGhlc2lzKToKCiFbaW1hZ2VdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zY2hlbWF0aGVzaXMvc2NoZW1hdGhlc2lzL21hc3Rlci9pbWcvc2VydmljZV9naXRodWJfcmVwb3J0LnBuZykKCiMjIyBTY2hlbWF0aGVzaXMuaW8KClNjaGVtYXRoZXNpcyBDTEkgaW50ZWdyYXRlcyB3aXRoIFNjaGVtYXRoZXNpcy5pbyB0byBlbmhhbmNlIGJ1ZyBkZXRlY3Rpb24gYnkgb3B0aW1pemluZyB0ZXN0IGNhc2UgZ2VuZXJhdGlvbi4gSXQgYWxzbyBwcm92aWRlcyBhIHVzZXItZnJpZW5kbHkgVUkgZm9yIHZpZXdpbmcgYW5kIGFuYWx5emluZyB0ZXN0IHJlc3VsdHMuIEZvciBhIHF1aWNrIHNldHVwIGFsbC1pbi1vbmUgc29sdXRpb24sIHdlIG9mZmVyIGEgW2ZyZWUgdGllcl0oaHR0cHM6Ly9zY2hlbWF0aGVzaXMuaW8vI3ByaWNpbmcpLgoKIyMgV2hvJ3MgVXNpbmcgU2NoZW1hdGhlc2lzPwoKU2NoZW1hdGhlc2lzIGlzIHVzZWQgYnkgYSBudW1iZXIgb2YgcHJvamVjdHMgYW5kIGNvbXBhbmllcywgaW5jbHVkaW5nIGRpcmVjdCB1c2FnZSBvciBpbnRlZ3JhdGlvbiBpbnRvIG90aGVyIHRvb2xzOgoKLSBBYnN0cmFjdCBNYWNoaW5lcyAoW01hZ2lzdHJhbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9hYnNtYWNoL21hZ2lzdHJhbGEpKQotIEJ1bmRlc3N0ZWxsZSBmw7xyIE9wZW4gRGF0YSAoW3NtYXJkLWFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2J1bmRlc0FQSS9zbWFyZC1hcGkpKQotIFtDaGVja01LXShodHRwczovL2dpdGh1Yi5jb20vQ2hlY2ttay9jaGVja21rKQotIENocm9ub3NwaGVyZS5pbyAoW0NhbHlwdGlhXShodHRwczovL2dpdGh1Yi5jb20vY2hyb25vc3BoZXJlaW8vY2FseXB0aWEtYXBpKSkKLSBIWFNlY3VyaXR5IChbRG9uZ1RhaV0oaHR0cHM6Ly9naXRodWIuY29tL0hYU2VjdXJpdHkvRG9uZ1RhaSkpCi0gTmV0ZmxpeCAoW0Rpc3BhdGNoXShodHRwczovL2dpdGh1Yi5jb20vTmV0ZmxpeC9kaXNwYXRjaCkpCi0gW1BpeGllXShodHRwczovL2dpdGh1Yi5jb20vcGl4aWUtaW8vcGl4aWUpCi0gW1FkcmFudF0oaHR0cHM6Ly9naXRodWIuY29tL3FkcmFudC9xZHJhbnQpCi0gU3BvdGlmeSAoW0JhY2tzdGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL2JhY2tzdGFnZS9iYWNrc3RhZ2UpKQotIFdvcmRQcmVzcyAoW09wZW5WZXJzZV0oaHR0cHM6Ly9naXRodWIuY29tL1dvcmRQcmVzcy9vcGVudmVyc2UpKQoKIyMgVGVzdGltb25pYWxzCgoiX1RoZSB3b3JsZCBuZWVkcyBtb2Rlcm4sIHNwZWMtYmFzZWQgQVBJIHRlc3RzLCBzbyB3ZSBjYW4gZGVsaXZlciBBUElzIGFzLWRlc2lnbmVkLiBTY2hlbWF0aGVzaXMgaXMgdGhlIHJpZ2h0IHRvb2wgZm9yIHRoYXQgam9iLl8iCgo8ZGl2PkVtbWFudWVsIFBhcmFza2FraXMgLSA8c3Ryb25nPkxldmVsIDI1MDwvc3Ryb25nPjwvZGl2PgoKLS0tCgoiX1NjaGVtYXRoZXNpcyBpcyB0aGUgb25seSBzYW5lIHdheSB0byB0aG9yb3VnaGx5IHRlc3QgYW4gQVBJLl8iCgo8ZGl2PlpkZW5layBOZW1lYyAtIDxzdHJvbmc+c3VwZXJmYWNlLmFpPC9zdHJvbmc+PC9kaXY+CgotLS0KCiJfVGhlIHRvb2wgaXMgYWJzb2x1dGVseSBhbWF6aW5nIGFzIGl0IGNhbiBkbyB0aGUgbmVnYXRpdmUgc2NlbmFyaW8gdGVzdGluZyBpbnN0ZWFkIG9mIG1lIGFuZCBtdWNoIGZhc3RlciEgQmVmb3JlIEkgd2FzIGRvaW5nIHRoZSBzYW1lIHRlc3RzIGluIFBvc3RtYW4gY2xpZW50LiBCdXQgaXQncyBtdWNoIHNsb3dlciBhbmQgYnJpbmdzIG1haW50ZW5hbmNlIGJ1cmRlbi5fIgoKPGRpdj5MdWTEm2sgTm92w70gLSA8c3Ryb25nPkpldEJyYWluczwvc3Ryb25nPjwvZGl2PgoKLS0tCgoiX1NjaGVtYXRoZXNpcyBpcyB0aGUgYmVzdCB0b29sIGZvciBmdXp6IHRlc3Rpbmcgb2YgUkVTVCBBUEkgb24gdGhlIG1hcmtldC4gV2UgYXJlIGF0IFJlZCBIYXQgdXNlIGl0IGZvciBleGFtaW5pbmcgb3VyIGFwcGxpY2F0aW9ucyBpbiBmdW5jdGlvbmFsIGFuZCBpbnRlZ3JhdGlvbnMgdGVzdGluZyBsZXZlbHMuXyIKCjxkaXY+RG1pdHJ5IE1pc2hhcm92IC0gPHN0cm9uZz5SZWRIYXQ8L3N0cm9uZz48L2Rpdj4KCi0tLQoKIl9UaGVyZSBhcmUgZGlmZmVyZW50IGxldmVscyBvZiB1c2FiaWxpdHkgYW5kIGRvY3VtZW50YXRpb24gcXVhbGl0eSBhbW9uZyB0aGVzZSB0b29scyB3aGljaCBoYXZlIGJlZW4gcmVwb3J0ZWQsIHdoZXJlIFNjaGVtYXRoZXNpcyBjbGVhcmx5IHN0YW5kcyBvdXQgYW1vbmcgdGhlIG1vc3QgdXNlci1mcmllbmRseSBhbmQgaW5kdXN0cnktc3RyZW5ndGggdG9vbHMuXyIKCjxkaXY+VGVzdGluZyBSRVNUZnVsIEFQSXM6IEEgU3VydmV5IC0gPHN0cm9uZz5hIHJlc2VhcmNoIHBhcGVyIGJ5IEdvbG1vaGFtbWFkaSwgYXQgYWw8L3N0cm9uZz48L2Rpdj4KCi0tLQoKIyMgQ29udHJpYnV0aW5nCgpXZSB3ZWxjb21lIGNvbnRyaWJ1dGlvbnMgaW4gY29kZSBhbmQgYXJlIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiBsZWFybmluZyBhYm91dCB5b3VyIHVzZSBjYXNlcy4gWW91ciBpbnB1dCBpcyBlc3NlbnRpYWwgZm9yIGltcHJvdmluZyBTY2hlbWF0aGVzaXMgYW5kIGRpcmVjdGx5IGluZmx1ZW5jZXMgZnV0dXJlIHVwZGF0ZXMuCgojIyMgSG93IHRvIENvbnRyaWJ1dGUKCjEuIERpc2N1c3MgaWRlYXMgYW5kIHF1ZXN0aW9ucyB0aHJvdWdoIFtHaXRIdWIgaXNzdWVzXShodHRwczovL2dpdGh1Yi5jb20vc2NoZW1hdGhlc2lzL3NjaGVtYXRoZXNpcy9pc3N1ZXMpIG9yIG9uIG91ciBbRGlzY29yZCBjaGFubmVsXShodHRwczovL2Rpc2NvcmQuZ2cvUjlBU1JBbUhuQSkuCjIuIEZvciBjb2RlIGNvbnRyaWJ1dGlvbnMsIHNlZSBvdXIgW2NvbnRyaWJ1dGluZyBndWlkZWxpbmVzXShodHRwczovL2dpdGh1Yi5jb20vc2NoZW1hdGhlc2lzL3NjaGVtYXRoZXNpcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcucnN0KS4KMy4gU2hhcmUgeW91ciBleHBlcmllbmNlIGFuZCB0aG91Z2h0cyB1c2luZyBbdGhpcyBmZWVkYmFjayBmb3JtXShodHRwczovL2Zvcm1zLmdsZS9rSjRoU3hjMVlwNkdhOTZ0NSkuCgojIyMgV2h5IFlvdXIgSW5wdXQgTWF0dGVycwoKLSBFbmFibGVzIHVzIHRvIGRldmVsb3AgdXNlZnVsIGZlYXR1cmVzIGFuZCBmaXggYnVncyBmYXN0ZXIKLSBJbXByb3ZlcyBvdXIgdGVzdCBzdWl0ZSBhbmQgZG9jdW1lbnRhdGlvbgoKVGhhbmsgeW91IGZvciBjb250cmlidXRpbmcgdG8gbWFraW5nIFNjaGVtYXRoZXNpcyBiZXR0ZXIhIPCfkY0KCiMjIENvbW1lcmNpYWwgc3VwcG9ydAoKSWYgeW91J3JlIGEgbGFyZ2UgZW50ZXJwcmlzZSBvciBzdGFydHVwIHNlZWtpbmcgc3BlY2lhbGl6ZWQgYXNzaXN0YW5jZSwgd2Ugb2ZmZXIgY29tbWVyY2lhbCBzdXBwb3J0IHRvIGhlbHAgeW91IGludGVncmF0ZSBTY2hlbWF0aGVzaXMgZWZmZWN0aXZlbHkgaW50byB5b3VyIHdvcmtmbG93cy4KVGhpcyBpbmNsdWRlczoKCi0gUXVpY2tlciByZXNwb25zZSB0aW1lIGZvciB5b3VyIHF1ZXJpZXMuCi0gRGlyZWN0IGNvbnN1bHRhdGlvbiB0byB3b3JrIGNsb3NlbHkgd2l0aCB5b3VyIEFQSSBzcGVjaWZpY2F0aW9uLCBvcHRpbWl6aW5nIHRoZSBTY2hlbWF0aGVzaXMgc2V0dXAgZm9yIHlvdXIgc3BlY2lmaWMgbmVlZHMuCgpUbyBkaXNjdXNzIGEgY3VzdG9tIHN1cHBvcnQgYXJyYW5nZW1lbnQgdGhhdCBiZXN0IHN1aXRzIHlvdXIgb3JnYW5pemF0aW9uLCBwbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QHNjaGVtYXRoZXNpcy5pbyI+c3VwcG9ydEBzY2hlbWF0aGVzaXMuaW88L2E+LgoKIyMgQWNrbm93bGVkZ2VtZW50cwoKU2NoZW1hdGhlc2lzIGlzIGJ1aWx0IG9uIHRvcCBvZiA8YSBocmVmPSJodHRwczovL2h5cG90aGVzaXMud29ya3MvIiB0YXJnZXQ9Il9ibGFuayI+SHlwb3RoZXNpczwvYT4sIGEgcG93ZXJmdWwgcHJvcGVydHktYmFzZWQgdGVzdGluZyBsaWJyYXJ5IGZvciBQeXRob24uCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIGxpY2Vuc2VdKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKS4K readmeEtag: '"32ba3d664806c15730f7dabc1307371a3e22de7d"' readmeLastModified: Sun, 01 Sep 2024 12:01:28 GMT repositoryId: 203157084 description: Supercharge your API testing, catch bugs, and ensure compliance created: '2019-08-19T11:13:01Z' updated: '2024-09-05T21:18:36Z' language: Python archived: false stars: 2229 watchers: 20 forks: 153 owner: schemathesis logo: https://avatars.githubusercontent.com/u/70383271?v=4 license: MIT repoEtag: '"ba31c60246a9f213ff24d2d378a788278c8426f33a3a00c924f134d5bfd0ab28"' repoLastModified: Thu, 05 Sep 2024 21:18:36 GMT foundInMaster: true id: f4032fb371a703acffa691c0f1239d45 oldLocations: - https://github.com/kiwicom/schemathesis - source: openapi3 tags repository: https://github.com/jcrist/msgspec v3: true id: a6f4189b9c0c83612075c0752859ff29 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy8iPgogICAgPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9qY3Jpc3QvbXNnc3BlYy9tYWluL2RvY3Mvc291cmNlL19zdGF0aWMvbXNnc3BlYy1sb2dvLWxpZ2h0LnN2ZyIgd2lkdGg9IjM1JSIgYWx0PSJtc2dzcGVjIiAvPgogIDwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2pjcmlzdC9tc2dzcGVjL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL2pjcmlzdC9tc2dzcGVjL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmciPgogIDwvYT4KICA8YSBocmVmPSJodHRwczovL2pjcmlzdGhhcmlmLmNvbS9tc2dzcGVjLyI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb2NzLWxhdGVzdC1ibHVlLnN2ZyI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qY3Jpc3QvbXNnc3BlYy9ibG9iL21haW4vTElDRU5TRSI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9qY3Jpc3QvbXNnc3BlYy5zdmciPgogIDwvYT4KICA8YSBocmVmPSJodHRwczovL3B5cGkub3JnL3Byb2plY3QvbXNnc3BlYy8iPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L21zZ3NwZWMuc3ZnIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9hbmFjb25kYS5vcmcvY29uZGEtZm9yZ2UvbXNnc3BlYyI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb25kYS92bi9jb25kYS1mb3JnZS9tc2dzcGVjLnN2ZyI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vY29kZWNvdi5pby9naC9qY3Jpc3QvbXNnc3BlYyI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9jb2RlY292LmlvL2doL2pjcmlzdC9tc2dzcGVjL2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2ZyI+CiAgPC9hPgo8L3A+CgoKYG1zZ3NwZWNgIGlzIGEgKmZhc3QqIHNlcmlhbGl6YXRpb24gYW5kIHZhbGlkYXRpb24gbGlicmFyeSwgd2l0aCBidWlsdGluCnN1cHBvcnQgZm9yIFtKU09OXShodHRwczovL2pzb24ub3JnKSwgW01lc3NhZ2VQYWNrXShodHRwczovL21zZ3BhY2sub3JnKSwKW1lBTUxdKGh0dHBzOi8veWFtbC5vcmcpLCBhbmQgW1RPTUxdKGh0dHBzOi8vdG9tbC5pbykuIEl0IGZlYXR1cmVzOgoKLSDwn5qAICoqSGlnaCBwZXJmb3JtYW5jZSBlbmNvZGVycy9kZWNvZGVycyoqIGZvciBjb21tb24gcHJvdG9jb2xzLiBUaGUgSlNPTiBhbmQKICBNZXNzYWdlUGFjayBpbXBsZW1lbnRhdGlvbnMgcmVndWxhcmx5CiAgW2JlbmNobWFya10oaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy9iZW5jaG1hcmtzLmh0bWwpIGFzIHRoZSBmYXN0ZXN0CiAgb3B0aW9ucyBmb3IgUHl0aG9uLgoKLSDwn46JICoqU3VwcG9ydCBmb3IgYSB3aWRlIHZhcmlldHkgb2YgUHl0aG9uIHR5cGVzKiouIEFkZGl0aW9uYWwgdHlwZXMgbWF5IGJlCiAgc3VwcG9ydGVkIHRocm91Z2gKICBbZXh0ZW5zaW9uc10oaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy9leHRlbmRpbmcuaHRtbCkuCgotIPCflI0gKipaZXJvLWNvc3Qgc2NoZW1hIHZhbGlkYXRpb24qKiB1c2luZyBmYW1pbGlhciBQeXRob24gdHlwZSBhbm5vdGF0aW9ucy4gSW4KICBbYmVuY2htYXJrc10oaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy9iZW5jaG1hcmtzLmh0bWwpIGBtc2dzcGVjYAogIGRlY29kZXMgKmFuZCogdmFsaWRhdGVzIEpTT04gZmFzdGVyIHRoYW4KICBbb3Jqc29uXShodHRwczovL2dpdGh1Yi5jb20vaWpsL29yanNvbikgY2FuIGRlY29kZSBpdCBhbG9uZS4KCi0g4pyoICoqQSBzcGVlZHkgU3RydWN0IHR5cGUqKiBmb3IgcmVwcmVzZW50aW5nIHN0cnVjdHVyZWQgZGF0YS4gSWYgeW91IGFscmVhZHkKICB1c2UgW2RhdGFjbGFzc2VzXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvZGF0YWNsYXNzZXMuaHRtbCkgb3IKICBbYXR0cnNdKGh0dHBzOi8vd3d3LmF0dHJzLm9yZyksCiAgW3N0cnVjdHNdKGh0dHBzOi8vamNyaXN0aGFyaWYuY29tL21zZ3NwZWMvc3RydWN0cy5odG1sKSBzaG91bGQgZmVlbCBmYW1pbGlhci4KICBIb3dldmVyLCB0aGV5J3JlCiAgWzUtNjB4IGZhc3Rlcl0oaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy9iZW5jaG1hcmtzLmh0bWwjYmVuY2htYXJrLXN0cnVjdHM+KQogIGZvciBjb21tb24gb3BlcmF0aW9ucy4KCkFsbCBvZiB0aGlzIGlzIGluY2x1ZGVkIGluIGEKW2xpZ2h0d2VpZ2h0IGxpYnJhcnldKGh0dHBzOi8vamNyaXN0aGFyaWYuY29tL21zZ3NwZWMvYmVuY2htYXJrcy5odG1sI2JlbmNobWFyay1saWJyYXJ5LXNpemUpCndpdGggbm8gcmVxdWlyZWQgZGVwZW5kZW5jaWVzLgoKLS0tCgpgbXNnc3BlY2AgbWF5IGJlIHVzZWQgZm9yIHNlcmlhbGl6YXRpb24gYWxvbmUsIGFzIGEgZmFzdGVyIEpTT04gb3IKTWVzc2FnZVBhY2sgbGlicmFyeS4gRm9yIHRoZSBncmVhdGVzdCBiZW5lZml0IHRob3VnaCwgd2UgcmVjb21tZW5kIHVzaW5nCmBtc2dzcGVjYCB0byBoYW5kbGUgdGhlIGZ1bGwgc2VyaWFsaXphdGlvbiAmIHZhbGlkYXRpb24gd29ya2Zsb3c6CgoqKkRlZmluZSoqIHlvdXIgbWVzc2FnZSBzY2hlbWFzIHVzaW5nIHN0YW5kYXJkIFB5dGhvbiB0eXBlIGFubm90YXRpb25zLgoKYGBgcHl0aG9uCj4+PiBpbXBvcnQgbXNnc3BlYwoKPj4+IGNsYXNzIFVzZXIobXNnc3BlYy5TdHJ1Y3QpOgouLi4gICAgICIiIkEgbmV3IHR5cGUgZGVzY3JpYmluZyBhIFVzZXIiIiIKLi4uICAgICBuYW1lOiBzdHIKLi4uICAgICBncm91cHM6IHNldFtzdHJdID0gc2V0KCkKLi4uICAgICBlbWFpbDogc3RyIHwgTm9uZSA9IE5vbmUKYGBgCgoqKkVuY29kZSoqIG1lc3NhZ2VzIGFzIEpTT04sIG9yIG9uZSBvZiB0aGUgbWFueSBvdGhlciBzdXBwb3J0ZWQgcHJvdG9jb2xzLgoKYGBgcHl0aG9uCj4+PiBhbGljZSA9IFVzZXIoImFsaWNlIiwgZ3JvdXBzPXsiYWRtaW4iLCAiZW5naW5lZXJpbmcifSkKCj4+PiBhbGljZQpVc2VyKG5hbWU9J2FsaWNlJywgZ3JvdXBzPXsiYWRtaW4iLCAiZW5naW5lZXJpbmcifSwgZW1haWw9Tm9uZSkKCj4+PiBtc2cgPSBtc2dzcGVjLmpzb24uZW5jb2RlKGFsaWNlKQoKPj4+IG1zZwpiJ3sibmFtZSI6ImFsaWNlIiwiZ3JvdXBzIjpbImFkbWluIiwiZW5naW5lZXJpbmciXSwiZW1haWwiOm51bGx9JwpgYGAKCioqRGVjb2RlKiogbWVzc2FnZXMgYmFjayBpbnRvIFB5dGhvbiBvYmplY3RzLCB3aXRoIG9wdGlvbmFsIHNjaGVtYSB2YWxpZGF0aW9uLgoKYGBgcHl0aG9uCj4+PiBtc2dzcGVjLmpzb24uZGVjb2RlKG1zZywgdHlwZT1Vc2VyKQpVc2VyKG5hbWU9J2FsaWNlJywgZ3JvdXBzPXsiYWRtaW4iLCAiZW5naW5lZXJpbmcifSwgZW1haWw9Tm9uZSkKCj4+PiBtc2dzcGVjLmpzb24uZGVjb2RlKGIneyJuYW1lIjoiYm9iIiwiZ3JvdXBzIjpbMTIzXX0nLCB0eXBlPVVzZXIpClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8c3RkaW4+IiwgbGluZSAxLCBpbiA8bW9kdWxlPgptc2dzcGVjLlZhbGlkYXRpb25FcnJvcjogRXhwZWN0ZWQgYHN0cmAsIGdvdCBgaW50YCAtIGF0IGAkLmdyb3Vwc1swXWAKYGBgCgpgbXNnc3BlY2AgaXMgZGVzaWduZWQgdG8gYmUgYXMgcGVyZm9ybWFudCBhcyBwb3NzaWJsZSwgd2hpbGUgcmV0YWluaW5nIHNvbWUgb2YKdGhlIG5pY2l0aWVzIG9mIHZhbGlkYXRpb24gbGlicmFyaWVzIGxpa2UKW3B5ZGFudGljXShodHRwczovL3B5ZGFudGljLWRvY3MuaGVscG1hbnVhbC5pby8pLiBGb3Igc3VwcG9ydGVkIHR5cGVzLAplbmNvZGluZy9kZWNvZGluZyBhIG1lc3NhZ2Ugd2l0aCBgbXNnc3BlY2AgY2FuIGJlClt+MTAtODB4IGZhc3RlciB0aGFuIGFsdGVybmF0aXZlIGxpYnJhcmllc10oaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy9iZW5jaG1hcmtzLmh0bWwpLgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy9iZW5jaG1hcmtzLmh0bWwiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9qY3Jpc3QvbXNnc3BlYy9tYWluL2RvY3Mvc291cmNlL19zdGF0aWMvYmVuY2gtdmFsaWRhdGlvbi5zdmciPgogIDwvYT4KPC9wPgoKU2VlIFt0aGUgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy8pIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKCiMjIExJQ0VOU0UKCk5ldyBCU0QuIFNlZSB0aGUKW0xpY2Vuc2UgRmlsZV0oaHR0cHM6Ly9naXRodWIuY29tL2pjcmlzdC9tc2dzcGVjL2Jsb2IvbWFpbi9MSUNFTlNFKS4K readmeEtag: '"ba26bc08058d26877764987cb9933d232892789d"' readmeLastModified: Tue, 28 May 2024 21:01:00 GMT repositoryId: 332952543 description: >- A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML created: '2021-01-26T02:53:57Z' updated: '2024-09-05T11:47:18Z' language: Python archived: false stars: 2231 watchers: 19 forks: 64 owner: jcrist logo: https://avatars.githubusercontent.com/u/2783717?v=4 license: BSD-3-Clause repoEtag: '"5787f51e420213d6bab0157cda3393cd949abcd1517c510521354863c698bdf3"' repoLastModified: Thu, 05 Sep 2024 11:47:18 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/google/gnostic v3: true repositoryMetadata: base64Readme: >- WyFbR28gQWN0aW9ucyBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ25vc3RpYy93b3JrZmxvd3MvR28vYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nbm9zdGljL2FjdGlvbnMpCgojIOKogSBnbm9zdGljCgpUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgYSBHbyBjb21tYW5kIGxpbmUgdG9vbCB3aGljaCBjb252ZXJ0cyBKU09OIGFuZCBZQU1MCltPcGVuQVBJXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgZGVzY3JpcHRpb25zIHRvIGFuZApmcm9tIGVxdWl2YWxlbnQgUHJvdG9jb2wgQnVmZmVyIHJlcHJlc2VudGF0aW9ucy4KCltQcm90b2NvbCBCdWZmZXJzXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLykgcHJvdmlkZSBhCmxhbmd1YWdlLW5ldXRyYWwsIHBsYXRmb3JtLW5ldXRyYWwsIGV4dGVuc2libGUgbWVjaGFuaXNtIGZvciBzZXJpYWxpemluZwpzdHJ1Y3R1cmVkIGRhdGEuICoqZ25vc3RpYyoqJ3MgUHJvdG9jb2wgQnVmZmVyIG1vZGVscyBmb3IgdGhlIE9wZW5BUEkKU3BlY2lmaWNhdGlvbiBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBjb2RlIHRoYXQgaW5jbHVkZXMgZGF0YSBzdHJ1Y3R1cmVzIHdpdGgKZXhwbGljaXQgZmllbGRzIGZvciB0aGUgZWxlbWVudHMgb2YgYW4gT3BlbkFQSSBkZXNjcmlwdGlvbi4gVGhpcyBtYWtlcyBpdApwb3NzaWJsZSBmb3IgZGV2ZWxvcGVycyB0byB3b3JrIHdpdGggT3BlbkFQSSBkZXNjcmlwdGlvbnMgaW4gdHlwZS1zYWZlIHdheXMsCndoaWNoIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gc3Ryb25nbHktdHlwZWQgbGFuZ3VhZ2VzIGxpa2UgR28gYW5kCltEYXJ0XShodHRwczovL2RhcnQuZGV2LykuCgoqKmdub3N0aWMqKiByZWFkcyBPcGVuQVBJIGRlc2NyaXB0aW9ucyBpbnRvIHRoZXNlIGdlbmVyYXRlZCBkYXRhIHN0cnVjdHVyZXMsCnJlcG9ydHMgZXJyb3JzLCByZXNvbHZlcyBpbnRlcm5hbCBkZXBlbmRlbmNpZXMsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdHMgaW4gYQpiaW5hcnkgZm9ybSB0aGF0IGNhbiBiZSB1c2VkIGluIGFueSBsYW5ndWFnZSB0aGF0IGlzIHN1cHBvcnRlZCBieSB0aGUgUHJvdG9jb2wKQnVmZmVyIHRvb2xzLiBBIHBsdWdpbiBpbnRlcmZhY2Ugc2ltcGxpZmllcyBpbnRlZ3JhdGlvbiB3aXRoIEFQSSB0b29scyB3cml0dGVuCmluIGEgdmFyaWV0eSBvZiBkaWZmZXJlbnQgbGFuZ3VhZ2VzLCBhbmQgd2hlbiBuZWNlc3NhcnksIFByb3RvY29sIEJ1ZmZlcgpPcGVuQVBJIGRlc2NyaXB0aW9ucyBjYW4gYmUgcmVleHBvcnRlZCBhcyBKU09OIG9yIFlBTUwuCgoqKmdub3N0aWMqKiBjb21waWxhdGlvbiBjb2RlIGFuZCBPcGVuQVBJIFByb3RvY29sIEJ1ZmZlciBtb2RlbHMgYXJlCmF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYW4KW09wZW5BUEkgSlNPTiBTY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3NjaGVtYXMvdjIuMC9zY2hlbWEuanNvbikuClNvdXJjZSBjb2RlIGZvciB0aGUgZ2VuZXJhdG9yIGlzIGluIHRoZSBbZ2VuZXJhdGUtZ25vc3RpY10oZ2VuZXJhdGUtZ25vc3RpYykKZGlyZWN0b3J5LgoKIyMgUmVsYXRlZCBSZXBvc2l0b3JpZXMKCltnb29nbGUvZ25vc3RpYy1tb2RlbHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ25vc3RpYy1tb2RlbHMpIGNvbnRhaW5zIGEKbGlnaHR3ZWlnaHQgZGlzdHJpYnV0aW9uIG9mIHRoZSBwcm90b2J1ZiBtb2RlbHMgZ2VuZXJhdGVkIGJ5IHRoaXMgcHJvamVjdC4KV2hlcmUgYSBsb3ctZGVwZW5kZW5jeSBpbnRlZ3JhdGlvbiBvZiBqdXN0IHRoZXNlIG1vZGVscyBpcyBuZWVkZWQsIEdvIHByb2plY3RzCmNhbiBpbXBvcnQgcGFja2FnZXMgZnJvbSBgZ25vc3RpYy1tb2RlbHNgIGluc3RlYWQgb2YgYGdub3N0aWNgLgoKW2dvb2dsZS9nbm9zdGljLWdycGNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ25vc3RpYy1ncnBjKSBjb250YWlucyBhCmdub3N0aWMgcGx1Z2luIHRoYXQgY2FuIGdlbmVyYXRlIGFuIGFubm90YXRlZCBQcm90b2NvbCBCdWZmZXIgZGVzY3JpcHRpb24gb2YgYW4KQVBJIHRoYXQsIHdoZW4gdHJhbnNjb2RlZCwgcHJvZHVjZXMgYW4gQVBJIHRoYXQgY29uZm9ybXMgdG8gYSBzcGVjaWZpZWQgT3BlbkFQSQpkb2N1bWVudC4gVG8gZ28gZnJvbSBwcm90b2J1ZiB0byBPcGVuQVBJLCBzZWUgdGhlCltwcm90b2MtZ2VuLW9wZW5hcGldKGNtZC9wcm90b2MtZ2VuLW9wZW5hcGkpIHRvb2wgaW4gdGhpcyBwcm9qZWN0LgoKW2dvb2dsZS9nbm9zdGljLWdvLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nbm9zdGljLWdvLWdlbmVyYXRvcikKY29udGFpbnMgYW4gZXhwZXJpbWVudGFsIGdub3N0aWMgcGx1Z2luIHRoYXQgZ2VuZXJhdGVzIGEgR28gY2xpZW50IGZvciBhbiBBUEkKZGVzY3JpYmVkIGJ5IGEgc3BlY2lmaWVkIE9wZW5BUEkgZG9jdW1lbnQuCgojIyBEaXNjbGFpbWVyCgpGZWVkYmFjayBhbmQgY29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSEgVW50aWwgdGhlcmUgaXMgYSAxLjAgcmVsZWFzZSwgcGxlYXNlCmNvbnNpZGVyIHRoaXMgcHJlcmVsZWFzZSBzb2Z0d2FyZSBhbmQgd29yayBpbiBwcm9ncmVzcy4gVG8gZW5zdXJlIHN0YWJsZQpidWlsZHMsIHdlIHJlcXVlc3QgdGhhdCBkZXBlbmRlbnQgcHJvamVjdHMgYWx3YXlzIHJlZmVyIHRvIHRhZ2dlZCByZWxlYXNlcyBvZgoqKmdub3N0aWMqKi4KCiMjIFJlcXVpcmVtZW50cwoKKipnbm9zdGljKiogY2FuIGJlIHJ1biBpbiBhbnkgZW52aXJvbm1lbnQgdGhhdCBzdXBwb3J0cyBbR29dKGh0dHA6Ly9nb2xhbmcub3JnKQphbmQgdGhlCltQcm90b2NvbCBCdWZmZXIgQ29tcGlsZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90b2NvbGJ1ZmZlcnMvcHJvdG9idWYpLgoKIyMgSW5zdGFsbGF0aW9uIGFuZCBHZXR0aW5nIFN0YXJ0ZWQKClRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zIGFyZSBmb3IgaW5zdGFsbGluZyAqKmdub3N0aWMqKiB1c2luZwpbR28gbW9kdWxlc10oaHR0cHM6Ly9ibG9nLmdvbGFuZy5vcmcvdXNpbmctZ28tbW9kdWxlcyksIHN1cHBvcnRlZCBieSBHbyAxLjExCmFuZCBsYXRlci4KCjEuICBHZXQgdGhpcyBwYWNrYWdlIGJ5IGRvd25sb2FkaW5nIGl0IHdpdGggYGdpdCBjbG9uZWAuCgogICAgICAgIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dub3N0aWMKICAgICAgICBjZCBnbm9zdGljCgoyLiAgVmVyaWZ5IHRoYXQgeW91IGhhdmUgYSBsb2NhbCBpbnN0YWxsYXRpb24gb2YgYHByb3RvY2AuIFlvdSBjYW4gZ2V0IGBwcm90b2NgCiAgICBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL3Byb3RvY29sYnVmZmVycy9wcm90b2J1ZikuCgozLiAgQnVpbGQgKipnbm9zdGljKiogd2l0aCBgbWFrZWAuIFRoaXMgdXNlcwogICAgW2dvIGdlbmVyYXRlXShodHRwczovL2Jsb2cuZ29sYW5nLm9yZy9nZW5lcmF0ZSkgdG8gYnVpbGQgc3VwcG9ydCBjb2RlCiAgICBpbmNsdWRpbmcgY29kZSBnZW5lcmF0ZWQgYnkgYHByb3RvY2AgYW5kIHRoZSBHbyBgcHJvdG9jYCBwbHVnaW4sIHdoaWNoIGlzCiAgICBhdXRvbWF0aWNhbGx5IGRvd25sb2FkZWQgZnJvbQogICAgW2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmXShodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmKSBieSB0aGUKICAgIFtDT01QSUxFLVBST1RPUy5zaF0oQ09NUElMRS1QUk9UT1Muc2gpIHNjcmlwdC4gVGhpcyBhbHNvIGJ1aWxkcyBhbGwgcGx1Z2lucwogICAgYW5kIGFzc29jaWF0ZWQgdG9vbHMgaW4gdGhpcyByZXBvLgoKNC4gIFZlcmlmeSAqKmdub3N0aWMqKiB3aXRoIGBtYWtlIHRlc3RgLiBUaGVzZSB0ZXN0cyBhcmUgcnVuIGJ5ICoqZ25vc3RpYyoqJ3MKICAgIGNvbnRpbnVvdXMgaW50ZWdyYXRpb24sIHNvIHlvdSBzaG91bGQgZXhwZWN0IHRoZW0gdG8gcGFzcyBmb3IgYWxsIHJlbGVhc2UKICAgIHZlcnNpb25zLgoKNS4gIFJ1biAqKmdub3N0aWMqKi4gVGhpcyBzYW1wbGUgaW52b2NhdGlvbiBjcmVhdGVzIGEgZmlsZSBpbiB0aGUgY3VycmVudAogICAgZGlyZWN0b3J5IG5hbWVkIGBwZXRzdG9yZS5wYmAgdGhhdCBjb250YWlucyBhIGJpbmFyeSBQcm90b2NvbCBCdWZmZXIKICAgIGRlc2NyaXB0aW9uIG9mIGEgc2FtcGxlIEFQSS4KCiAgICAgICAgICAgIGdub3N0aWMgLS1wYi1vdXQ9LiBleGFtcGxlcy92Mi4wL2pzb24vcGV0c3RvcmUuanNvbgoKNi4gIFlvdSBjYW4gYWxzbyBjb21waWxlIGZpbGVzIHRoYXQgeW91IHNwZWNpZnkgd2l0aCBhIFVSTC4gSGVyZSdzIGFub3RoZXIgd2F5CiAgICB0byBjb21waWxlIHRoZSBwcmV2aW91cyBleGFtcGxlLiBUaGlzIHRpbWUgd2UncmUgY3JlYXRpbmcgYHBldHN0b3JlLnRleHRgLAogICAgd2hpY2ggY29udGFpbnMgYSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBQcm90b2NvbCBCdWZmZXIgZGVzY3JpcHRpb24uCiAgICBUaGlzIGlzIG1haW5seSBmb3IgdXNlIGluIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4KCiAgICAgICAgICAgIGdub3N0aWMgLS10ZXh0LW91dD1wZXRzdG9yZS50ZXh0IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9nb29nbGUvZ25vc3RpYy9tYXN0ZXIvZXhhbXBsZXMvdjIuMC9qc29uL3BldHN0b3JlLmpzb24KCjcuICBGb3IgYSBzYW1wbGUgYXBwbGljYXRpb24sIHNlZSBhcHBzL3JlcG9ydC4gVGhpcyByZWFkcyBhIGJpbmFyeSBQcm90b2NvbAogICAgQnVmZmVyIGVuY29kaW5nIGNyZWF0ZWQgYnkgKipnbm9zdGljKiouCgogICAgICAgIGdvIGluc3RhbGwgLi9hcHBzL3JlcG9ydCAjIyBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZCBieSB0aGUgdG9wLWxldmVsIE1ha2VmaWxlCiAgICAgICAgcmVwb3J0IHBldHN0b3JlLnBiCgo4LiAgKipnbm9zdGljKiogYWxzbyBzdXBwb3J0cyBwbHVnaW5zLiAqKmdub3N0aWMqKidzIHBsdWdpbiBpbnRlcmZhY2UgaXMKICAgIG1vZGVsZWQgb24gYHByb3RvY2AncwogICAgW3BsdWdpbi5wcm90b10oaHR0cHM6Ly9naXRodWIuY29tL3Byb3RvY29sYnVmZmVycy9wcm90b2J1Zi9ibG9iL21hc3Rlci9zcmMvZ29vZ2xlL3Byb3RvYnVmL2NvbXBpbGVyL3BsdWdpbi5wcm90bykKICAgIGFuZCBpcyBkZXNjcmliZWQgaW4gW3BsdWdpbnMvcGx1Z2luLnByb3RvXShwbHVnaW5zL3BsdWdpbi5wcm90bykuIFNldmVyYWwKICAgIHBsdWdpbnMgYXJlIGltcGxlbWVudGVkIGluIHRoZSBgcGx1Z2luc2AgZGlyZWN0b3J5LiBPdGhlcnMsIGxpa2UKICAgIFtnbm9zdGljLWdycGNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ25vc3RpYy1ncnBjKSBhbmQKICAgIFtnbm9zdGljLWdvLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nbm9zdGljLWdvLWdlbmVyYXRvciksCiAgICBhcmUgcHVibGlzaGVkIGluIHRoZWlyIG93biByZXBvc2l0b3JpZXMuIE9uZSBzdWNoIHBsdWdpbiBpcwogICAgW2dub3N0aWMtdm9jYWJ1bGFyeV0ocGx1Z2lucy9nbm9zdGljLXZvY2FidWxhcnkpLCB3aGljaCBwcm9kdWNlcyBhIHN1bW1hcnkKICAgIG9mIHRoZSB3b3JkIHVzYWdlIGluIGFuIEFQSXMgaW50ZXJmYWNlcy4gWW91IGNhbiBydW4gYGdub3N0aWMtdm9jYWJ1bGFyeWAKICAgIHdpdGggdGhlIGZvbGxvd2luZzoKCiAgICAgICAgICAgIGdub3N0aWMgZXhhbXBsZXMvdjIuMC9qc29uL3BldHN0b3JlLmpzb24gLS12b2NhYnVsYXJ5X291dD0uCgogICAgVGhpcyB3aWxsIHByb2R1Y2UgZmlsZXMgbmFtZWQgYHZvY2FidWxhcnkucGJgIGFuZCBgdm9jYWJ1bGFyeS5qc29uYCBpbgogICAgYGV4YW1wbGVzL3YyLjAvanNvbmAuIEZvciB0aGUgZm9ybWF0IG9mIGB2b2NhYnVsYXJ5LnBiYCwgc2VlCiAgICBbbWV0cmljcy92b2NhYnVsYXJ5LnByb3RvXShtZXRyaWNzL3ZvY2FidWxhcnkucHJvdG8pLgoKOS4gIFtPcHRpb25hbF0gQSBsYXJnZSBwYXJ0IG9mICoqZ25vc3RpYyoqIGlzIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIGJ5IHRoZQogICAgW2dlbmVyYXRlLWdub3N0aWNdKGdlbmVyYXRlLWdub3N0aWMpIHRvb2wuIFRoaXMgdXNlcyBKU09OIHNjaGVtYXMgdG8KICAgIGdlbmVyYXRlIFByb3RvY29sIEJ1ZmZlciBsYW5ndWFnZSBmaWxlcyB0aGF0IGRlc2NyaWJlIHN1cHBvcnRlZCBBUEkKICAgIHNwZWNpZmljYXRpb24gZm9ybWF0cyBhbmQgR28tbGFuZ3VhZ2UgZmlsZXMgb2YgY29kZSB0aGF0IHdpbGwgcmVhZCBKU09OIG9yCiAgICBZQU1MIEFQSSBkZXNjcmlwdGlvbnMgaW50byB0aGUgZ2VuZXJhdGVkIHByb3RvY29sIGJ1ZmZlciBtb2RlbHMuCiAgICBQcmUtZ2VuZXJhdGVkIHZlcnNpb25zIG9mIHRoZXNlIGZpbGVzIGFyZSBjaGVja2VkIGludG8gdGhlCiAgICBbb3BlbmFwaXYyXShvcGVuYXBpdjIpLCBbb3BlbmFwaXYzXShvcGVuYXBpdjMpLCBhbmQgW2Rpc2NvdmVyeV0oZGlzY292ZXJ5KQogICAgZGlyZWN0b3JpZXMuIFlvdSBjYW4gcmVnZW5lcmF0ZSB0aGlzIGNvZGUgd2l0aCB0aGUgZm9sbG93aW5nOgoKICAgICAgICBnbyBpbnN0YWxsIC4vZ2VuZXJhdGUtZ25vc3RpYwogICAgICAgIGdlbmVyYXRlLWdub3N0aWMgLS12MgogICAgICAgIGdlbmVyYXRlLWdub3N0aWMgLS12MwogICAgICAgIGdlbmVyYXRlLWdub3N0aWMgLS1kaXNjb3ZlcnkKCiMjIENvcHlyaWdodAoKQ29weXJpZ2h0IDIwMTctMjAyMCwgR29vZ2xlIExMQy4KCiMjIExpY2Vuc2UKClJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UuCg== readmeEtag: '"2ea85c46ff9c52bc42fa33d54ac43fb1353eb957"' readmeLastModified: Thu, 29 Feb 2024 22:55:22 GMT repositoryId: 73847381 description: >- A compiler for APIs described by the OpenAPI Specification with plugins for code generation and other API support tasks. created: '2016-11-15T19:21:53Z' updated: '2024-09-05T18:13:46Z' language: Go archived: false stars: 2068 watchers: 38 forks: 243 owner: google logo: https://avatars.githubusercontent.com/u/1342004?v=4 license: Apache-2.0 repoEtag: '"13a2ff6fd2c0bc80d38d372ac315e9899c72a4641e8941aad8f28442ce0f5336"' repoLastModified: Thu, 05 Sep 2024 18:13:46 GMT foundInMaster: true category: Converters id: 46e070512676eb0fd196ee199e6a0b34 oldLocations: - https://github.com/googleapis/gnostic - source: openapi3 tags repository: https://github.com/rapi-doc/rapidoc v3: true repositoryMetadata: base64Readme: >- PGltZyBhbHQ9Ik1yaW5Eb2MgbG9nbyIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vcmFwaS1kb2MvUmFwaURvYy9ibG9iL21hc3Rlci9sb2dvLnBuZyIgd2lkdGg9IjYwcHgiIC8+CgoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSIvPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3NpemUvcmFwaS1kb2MvcmFwaWRvYy9kaXN0L3JhcGlkb2MtbWluLmpzLnN2Zz9jb2xvckI9Ymx1ZSZsYWJlbD1taW5pZmllZCZzdHlsZT1mbGF0LXNxdWFyZSI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvc2l6ZS9yYXBpLWRvYy9yYXBpZG9jL2Rpc3QvcmFwaWRvYy1taW4uanMuZ3ouc3ZnP2NvbG9yQj1ibHVlJmxhYmVsPXppcCZzdHlsZT1mbGF0LXNxdWFyZSI+CiAgICA8YSBocmVmPSJodHRwczovL3d3dy53ZWJjb21wb25lbnRzLm9yZy9lbGVtZW50L3JhcGlkb2MiIGFsdD0icHVibGlzaGVkIG9uIHdlYmNvbXBvbmVudHMub3JnIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS93ZWJjb21wb25lbnRzLm9yZy1yYXBpZG9jLWJsdWUuc3ZnP3N0eWxlPXNvY2lhbCIvPgogICAgPC9hPgo8L3A+ICAgICAgICAKCiMgUmFwaURvYwpDdXN0b20gRWxlbWVudCBmb3IgT3Blbi1BUEkgc3BlYyB2aWV3aW5nCgo+IFNwb25zb3JlZCBieSBbWnVwbG9dKGh0dHBzOi8venVwbG8ubGluay9yYXBpZG9jLTIpIC0gR2V0IGEgU3RyaXBlLWxpa2UgQVBJIGV4cGVyaWVuY2UgZm9yIHlvdXIgY3VzdG9tZXJzIGluIG1pbnV0ZXMgLSBkb2N1bWVudGF0aW9uLCByYXRlLWxpbWl0aW5nIGFuZCBBUEkta2V5IGF1dGggaW4gbWludXRlcy4gCgojIyBGZWF0dXJlcwotIFN1cHBvcnRzIFN3YWdnZXIgMi4wLCBPcGVuQVBJIDMueC54IAotIFdvcmtzIHdpdGggYW55IGZyYW1ld29yayBvciB3aXRoIG5vIGZyYW1ld29yawotIEFsbG93cyBtYWtpbmcgQVBJIGNhbGxzCi0gQmV0dGVyIFVzYWJpbGl0eSwgCiAgLSBhbGwgTW9kZWxzIGFuZCBFeGFtcGxlcyBhcmUgZXhwYW5kZWQgYnkgZGVmYXVsdCwgZWxpbWluYXRlcyB0aGUgbmVlZCB0byBjbGljayBhbmQgcmV2ZWFsLgogIC0gUmVxdWVzdCBmaWVsZHMgYXJlIHByZS1wb3B1bGF0ZWQgd2l0aCBzYW1wbGUgZGF0YQogIC0gVGFrZXMgb25seSBvbmUgY2xpY2sgdG8gbWFrZSBhbiBBUEkgY2FsbAogIC0gUmVxdWVzdCBhbmQgcmVzcG9uc2UgY2FuIGJlIHBsYWNlZCBzaWRlLWJ5LXNpZGUgZm9yIGVhc3kgY29tcGFyaXNvbgotIEJyYW5kaW5nIGFuZCBQZXJzb25hbGl6YXRpb24gZmVhdHVyZXMgbWFrZXMgaXQgZWFzeSB0byBmb2xsb3cgYW55IHN0eWxlIGd1aWRlCiAgLSBDb21lcyB3aXRoIDIgVGhlbWVzIChEYXJrIGFuZCBMaWdodCkKICAtIFJlcGxhY2UgZGVmYXVsdCBsb2dvIHdpdGggeW91cnMKICAtIFR5cG9ncmFwaHksIGFsbG93cyBjaGFuZ2luZyBmb250cwogIC0gQWxsb3dzIGNoYW5naW5nIHRleHQtY29sb3IsIGJ1dHRvbi1jb2xvciwgaGVhZGVyLWNvbG9yIGFuZCBjb2xvciBvZiBvdGhlciBVSSBlbGVtZW50cwotIFBsZW50eSBvZiBjdXN0b21pemF0aW9uIG9wdGlvbnMgCiAgLSBBZGQgZXh0ZXJuYWwgY29udGVudHMgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIHRoZSBkb2N1bWVudCwgIHlvdSBtYXkgYWRkIGltYWdlcywgbGluaywgdGV4dCwgZm9ybXMgZXRjCiAgLSBBbGxvd3MgZGlzYWJsaW5nIEFQSSBjYWxsaW5nIGZlYXR1cmUKICAtIEhpZGUgdGhlIGhlYWRlciwgc28gdGhlIHVzZXIgY2FuJ3QgbG9hZCBhbnkgb3RoZXIgT3BlbkFQSSBTcGVjCiAgLSBIaWRlIEF1dGhlbnRpY2F0aW9uIGFuZCBwcm92aWRlIHlvdXIgb3duIHByZS1nZW5lcmF0ZWQgYXBpLWtleSAKICAtIEVtYmVkIGl0IGluc2lkZSBhbm90aGVyIEhUTUwgZG9jdW1lbnQKICAtIFVzZSBpdCBpbnNpZGUgYW5vdGhlciBmcmFtZXdvcmsgKHJlYWN0LCB2dWUsIGFuZ3VsYXIsIGxpdC1lbGVtZW50KQogIC0gVXNlIEphdmFTY3JpcHQgdG8gY2hhbmdlIGl0cyBhdHRyaWJ1dGVzLCBhbmQgaXQgd2lsbCByZWFjdCB0byB0aG9zZSBjaGFuZ2VzCiAgLSBTdHlsZSB0aGUgZWxlbWVudCB3aXRoIHN0YW5kYXJkIGNzcyAoY2hhbmdlIHBhZGRpbmcsIHBvc2l0aW9uLCBib3JkZXIsIG1hcmdpbiApCi0gTGlnaHR3ZWlnaHQgYW5kIGZhc3QKLSBMb2FkIGxvY2FsIGpzb24gc3BlYyBmcm9tIHRoZSBkaXNrCi0gU3VwcG9ydGVkIG9uIENocm9tZSwgRmlyZUZveCBhbmQgU2FmYXJpLiAoTm90IHlldCB0ZXN0ZWQgb24gRWRnZSkKCgojIyBEb2N1bWVudGF0aW9uCltDaGVjayBvdXQgdGhlIHVzYWdlIGFuZCBkZW1vc10oaHR0cHM6Ly9yYXBpLWRvYy5naXRodWIuaW8vUmFwaURvYy8pCgojIyBFeGFtcGxlcwpbRXhhbXBsZXMgYW5kIFRlc3QgY2FzZXNdKGh0dHBzOi8vcmFwaS1kb2MuZ2l0aHViLmlvL1JhcGlEb2MvbGlzdC5odG1sKQoKCiMjIEJ1aWxkIFByb2Nlc3MKYGBgYmFzaAojIENsb25lIC8gRG93bmxvYWQgdGhlIHByb2plY3QgdGhlbgpucG0gaW5zdGFsbAoKIyBidWlsZCB3aWxsIGdlbmVyYXRlIHJhcGlkb2MtbWluLmpzLCB0aGlzIGlzIHRoZSBvbmx5IGZpbGUgeW91IHdpbGwgbmVlZC4KIyB1c2UgaXQgaW4gdGhlIHNjcmlwdCB0YWcgb2YgeW91ciBodG1sIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJhcGlkb2MtbWluLmpzIj48L3NjcmlwdD48L2JvZHk+Cm5wbSBydW4gYnVpbGQgCgojIGZvciBkZXZlbG9wbWVudCB1c2UgeWFybiBzZXJ2ZSAodGhpcyB3aWxsIHN0YXJ0IGFuIHdlYnNlcnZlciBhdCBwb3J0IDgwODAsIHRoZW4gbmF2aWdhdGUgdG8gbG9jYWxob3N0OjgwODApIApucG0gcnVuIHNlcnZlCmBgYAoKIyMgUm9hZG1hcAotIOKchSBVcGdyYWRlIHRvIHVzZSBgbGl0IDJgCi0gUHJlIFJlbmRlcmluZyAvIFNlcnZlciBTaWRlIFJlbmRlcmluZyAoU1NSKSBvZiBSYXBpRG9jCi0gSW1wcm92ZSBQREYgZ2VuZXJhdGlvbiBvZiBPcGVuQVBJIHNwZWMgVXNpbmcgUmFwaVBERgotIENyZWF0ZSBhIENvbW1hbmQgTGluZSBpbnRlcmZhY2UgKENMSSkgdG8gbWFrZSBpdCBhdXRvbWF0aW9uIGZyaWVuZGx5Ci0gQWRkIGxvY2FsaXphdGlvbiBzdXBwb3J0Ci0gRm9sbG93IFdlYiBDb250ZW50IEFjY2Vzc2liaWxpdHkgR3VpZGVsaW5lcyAoV0NBRyAyKQotIEltcHJvdmUgSG9tZXBhZ2UsIERvY3VtZW50YXRpb24gYW5kIEV4YW1wbGVzCi0gQ3JlYXRlIGdyb3VuZHdvcmsgZm9yIGF1dG9tYXRlZCB0ZXN0aW5nCi0gQ3JlYXRlIGEgbGl2ZSBwbGF5Z3JvdW5kIChTb21ldGhpbmcgbGlrZSBzd2FnZ2VyIGVkaXRvcikKLSBDcmVhdGUgYSBzaG9ydCBhbmltYXRpb24vdmlkZW8gdG8gc2hvdyBob3cgUmFwaURvYy9SYXBpUERGIHdvcmtzCgo= readmeEtag: '"adae48ecaae89a839f0b2a2fe36d62ee9eb12e72"' readmeLastModified: Thu, 04 Jul 2024 15:51:19 GMT repositoryId: 165951750 description: RapiDoc -WebComponent for OpenAPI Spec created: '2019-01-16T01:29:58Z' updated: '2024-08-30T09:11:00Z' language: JavaScript archived: false stars: 1643 watchers: 14 forks: 273 owner: rapi-doc logo: https://avatars.githubusercontent.com/u/104180085?v=4 license: MIT repoEtag: '"25fe7c11c5094bd2d312d82c41b55df273a5ada3d09a6b483ea3598fdc68bf9e"' repoLastModified: Fri, 30 Aug 2024 09:11:00 GMT foundInMaster: true category: - Documentation - Server Implementations id: b903cad8b99b490dbecf6c6951d5b500 oldLocations: - https://github.com/mrin9/rapidoc - source: openapi3 tags name: OpenAPI-gui homepage: https://github.com/Mermade/openapi-gui language: Node.js source_description: GUI / visual editor for creating and editing OpenAPI definitions category: - Editors - Server Implementations repository: https://github.com/mermade/openapi-gui v3: true repositoryMetadata: base64Readme: >- T3BlbkFQSS1HVUkKPT09PT09PT09PT0KCk9wZW5BUEktR1VJIGlzIGEgR1VJIGZvciBjcmVhdGluZyBhbmQgZWRpdGluZyBPcGVuQVBJIHZlcnNpb24gMy4wLnggSlNPTi9ZQU1MIGRlZmluaXRpb25zLiBJbiBpdHMgY3VycmVudCBmb3JtIGl0IGlzIG1vc3QgdXNlZnVsIGFzIGEgdG9vbCBmb3Igc3RhcnRpbmcgb2ZmIGFuZCBlZGl0aW5nIHNpbXBsZSBPcGVuQVBJIGRlZmluaXRpb25zLiBJbXBvcnRlZCBPcGVuQVBJIDIuMCBkZWZpbml0aW9ucyBhcmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gdjMuMC4KCiFbU2NyZWVuc2hvdF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01lcm1hZGUvb3BlbmFwaS1ndWkvbWFpbi9pbWcvc2NyZWVuc2hvdC5wbmcpCgpGb3IgdGhlIHByZXZpb3VzIFN3YWdnZXIgLyBPcGVuQVBJIDIuMC1vbmx5IHZlcnNpb24gc2VlIFtoZXJlXShodHRwczovL21pa2VyYWxwaHNvbi5naXRodWIuaW8vb3BlbmFwaS1ndWkpLiBUaGF0IHZlcnNpb24gaXMgY3VycmVudGx5ICoqdW5tYWludGFpbmVkKiogYXBhcnQgZnJvbSBzZWN1cml0eSBmaXhlcy4KClRoaXMgcHJvamVjdCB3YXMgaW5pdGlhbGx5IGEgZm9yayBvZiBbRGFyeWwgS3VobidzIElPRG9jdG9yXShodHRwczovL2dpdGh1Yi5jb20vZGFycnlsa3Vobi9pb2RvY3Rvci90cmVlL2FuZ3VsYXItcG9ydCksIHdoaWNoIGluIHR1cm4gd2FzIGluc3BpcmVkIGJ5IFtJT0RvY3RvciBieSBCcmFuZG9uIFdlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9icmFuZG9ubXdlc3QvaW9kb2N0b3IpIHdoaWNoIHdhcyB3cml0dGVuIGluIFJ1YnkuIFRoZSBjb21wbGV0ZSBoaXN0b3J5IG9mIHRoZSBwcm9qZWN0IGlzIG1haW50YWluZWQgb24gR2l0SHViLgoKRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0KIyMjIEhvdyBJdCBXb3JrcwoKU2VsZWN0IGFuIGV4aXN0aW5nIE9wZW5BUEkgMi4wIG9yIDMuMC54IGRlZmluaXRpb24gdG8gdXBsb2FkLCBvciBjcmVhdGUgYSBuZXcgZGVmaW5pdGlvbiBhbmQgc3RhcnQgYWRkaW5nIFBhdGhzLCBPcGVyYXRpb25zLCBhbmQgUGFyYW1ldGVycy4gV2hlbiBhbiBleGlzdGluZyBkZWZpbml0aW9uIGlzIHVzZWQsIGl0IGlzIHBhcnNlZCBhbmQgZm9ybXMgZm9yIGVkaXRpbmcgZWFjaCBQYXRoLCBPcGVyYXRpb24gYW5kIFBhcmFtZXRlciB3aWxsIGJlIGNyZWF0ZWQuCgpZb3UgY2FuIGxvYWQgYW4gZXhpc3RpbmcgZGVmaW5pdGlvbiBieSBhcHBlbmRpbmcgYSBgP3VybD1gIHF1ZXJ5IHBhcmFtZXRlciB0byB0aGUgaW5pdGlhbCBzdGFydCBwYWdlIHdpdGggdGhlIHZhbHVlIGJlaW5nIHRoZSBVUkwgdG8gdGhlIGRlZmluaXRpb24geW91IHdpc2ggdG8gbG9hZC4gV2hlbiB1c2luZyBEb2NrZXIsIHlvdSBjYW4gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgYHVybGAgcXVlcnkgcGFyYW1ldGVyIHRvIGAlMmZzZXJ2ZWAgdG8gcGljayB1cCB0aGUgZGVmaW5pdGlvbiB5b3UgcGFzc2VkIGluIG9uIHRoZSBEb2NrZXIgY29tbWFuZGxpbmUuCgpDbGljayBhbiBpdGVtIGZyb20gdGhlIG1lbnUgb24gdGhlIGxlZnQgdG8gYmVnaW4gZWRpdGluZy4gVmlldyB0aGUgSlNPTi9ZQU1MIG91dHB1dCBhdCBhbnkgdGltZSBieSBzZWxlY3Rpbmcgb25lIG9mIHRoZSAiRXhwb3J0IiB0YWJzLiBXaGVuIGZpbmlzaGVkLCBkb3dubG9hZCB0aGUgb3V0cHV0IHRvIHNhdmUgaXQgbG9jYWxseSBvciBjb3B5IGl0IHlvdXIgY2xpcGJvYXJkLiBPcGVuQVBJLUdVSSBvbmx5IHN0b3JlcyBvbmUgZGVmaW5pdGlvbiBhdCBhIHRpbWUsIGFuZCB0aGlzIGlzIGluIHlvdXIgYnJvd3NlcidzIGxvY2FsLXN0b3JhZ2UuIE1ha2Ugc3VyZSB5b3Ugc2F2ZSB5b3VyIEpTT04vWUFNTCBvdXRwdXQgbG9jYWxseS4KCkJlZm9yZSBwZXJmb3JtaW5nIGEgZGVzdHJ1Y3RpdmUgYWN0aW9uLCBPcGVuQVBJLUdVSSBzYXZlcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZGVmaW5pdGlvbi4gQXQgYWxsIG90aGVyIHRpbWVzIHlvdSBtdXN0IHJlbWVtYmVyIHRvIHNlbGVjdCBTYXZlIG1hbnVhbGx5LgoKIyMjIFRlY2hub2xvZ3kKCk9wZW5BUEktR1VJIHJ1bnMgZW50aXJlbHkgY2xpZW50LXNpZGUgdXNpbmcgYSBudW1iZXIgb2YgSmF2YXNjcmlwdCBmcmFtZXdvcmtzIGluY2x1ZGluZyBbVnVlLkpTXShodHRwczovL3Z1ZWpzLm9yZy8pLCBbalF1ZXJ5XShodHRwczovL2pxdWVyeS5jb20vKSBhbmQgW0J1bG1hXShodHRwOi8vYnVsbWEuaW8vKSBmb3IgQ1NTLgoKVG8gZ2V0IHRoZSBhcHAgdXAgYW5kIHJ1bm5pbmcganVzdCBicm93c2UgdG8gW3RoZSBsaXZlIHZlcnNpb24gb24gR2l0SHViIHBhZ2VzXShodHRwczovL21lcm1hZGUuZ2l0aHViLmlvL29wZW5hcGktZ3VpKSwgZGVwbG95IGEgY2xvbmUgdG8gR2l0SHViIHBhZ2VzLCBkZXBsb3kgdG8gSGVyb2t1IHVzaW5nIHRoZSBidXR0b24gYmVsb3csIG9yIGNsb25lIHRoZSByZXBvIGFuZCBwb2ludCBhIGJyb3dzZXIgYXQgYGluZGV4Lmh0bWxgIG9yIGhvc3QgaXQgeW91cnNlbGYgLSBjb3VsZG4ndCBiZSBzaW1wbGVyLiBNb3JlIFt0ZWNobmljYWwgaW5mb3JtYXRpb24gaGVyZV0oZG9jcy90ZWNobmljYWwubWQpLgoKWW91IG9ubHkgbmVlZCB0byBgbnBtIGluc3RhbGxgIHRoZSBOb2RlLmpzIG1vZHVsZXMgaWYgeW91IHdpc2ggdG8gdXNlIHRoZSBgb3BlbmFwaS1ndWlgIGVtYmVkZGVkIHdlYiBzZXJ2ZXIgKGkuZS4gbm90IGlmIHlvdSBhcmUgcnVubmluZyB5b3VyIG93biB3ZWItc2VydmVyKSwgb3RoZXJ3aXNlIHRoZXkgYXJlIG9ubHkgdGhlcmUgZm9yIFBhYVMgZGVwbG95bWVudHMuCgpbIVtEZXBsb3ldKGh0dHBzOi8vd3d3Lmhlcm9rdWNkbi5jb20vZGVwbG95L2J1dHRvbi5zdmcpXShodHRwczovL2hlcm9rdS5jb20vZGVwbG95KQoKIyMjIyBDTEkgb3B0aW9ucwoKYGBgCi1kLCAtLWRlZmluaXRpb24gICAgc2VydmUgdGhlIGdpdmVuIE9BUyBkZWZpbml0aW9uCi1sLCAtLWxhdW5jaCAgICAgICAgc3RhcnQgYSB3ZWItYnJvd3NlciBwb2ludGluZyB0byB0aGUgR1VJCi1wLCAtLXBvcnQgICAgICAgICAgc3BlY2lmeSB0aGUgcG9ydCB0byBydW4gb24sIGRlZmF1bHRzIHRvICRQT1JUIG9yIDMwMDAKLXcsIC0td3JpdGUgICAgICAgICBlbmFibGUgd3JpdGluZyBiYWNrIHRvIHRoZSBzb3VyY2UgZGVmaW5pdGlvbgpgYGAKCiMjIyMgUnVubmluZyB3aXRoIERvY2tlcgoKSWYgeW91IGRvbid0IGhhdmUgYSBsb2NhbCBOb2RlIGRldmVsb3BtZW50IGVudmlyb25tZW50LCBvciBpZiB5b3Ugd291bGQgcHJlZmVyIHRvIHJ1biBPcGVuQVBJLUdVSSBpbiBhIERvY2tlciBjb250YWluZXIsIHlvdSBjYW4gZG8gaW4gd2l0aCBhIGZldyBzaW1wbGUgc3RlcHM6CgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeS4KMi4gUnVuIGBkb2NrZXIgYnVpbGQgLXQgbWVybWFkZS9vcGVuYXBpLWd1aSAuYCB0byBidWlsZCB0aGUgRG9ja2VyIGltYWdlIChgbWVybWFkZS9vcGVuYXBpLWd1aWApCjMuIFJ1biBgZG9ja2VyIHJ1biAtLW5hbWUgb3BlbmFwaS1ndWkgLXAgODA4MDozMDAwIC1kIG1lcm1hZGUvb3BlbmFwaS1ndWlgIHRvIHJ1biB0aGUgc2VydmVyIG9uIHBvcnQgODA4MC4KNC4gTmF2aWdhdGUgdG8gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MGAgaW4geW91ciBmYXZvcml0ZSBicm93c2VyLgo1LiBXaGVuIHlvdSdyZSBkb25lLCBzaHV0IGRvd24gdGhlIHNlcnZlciBieSBydW5uaW5nIGBkb2NrZXIgc3RvcCBvcGVuYXBpLWd1aSAmJiBkb2NrZXIgcm0gb3BlbmFwaS1ndWlgCgpPciB5b3UgY2FuIHB1bGwgdGhlIHByZS1idWlsdCBEb2NrZXIgaW1hZ2U6CgoqIGBkb2NrZXIgcHVsbCBtZXJtYWRlL29wZW5hcGktZ3VpYAoKIyMjIExpbWl0YXRpb25zCgoqIE9wZW5BUEktR1VJIHdpbGwgZGUtcmVmZXJlbmNlIHNoYXJlZCBwYXJhbWV0ZXJzLgoqIFRoZSBkZWZpbml0aW9uIG11c3QgYmUgc2VsZi1jb250YWluZWQgd2l0aCBubyBleHRlcm5hbCBgJHJlZmBzLiAqKlRoaXMgaXMgbGlrZWx5IHRvIGJlIHJlc29sdmVkIChoby1obykgc29vbioqLgoqIEVkaXRpbmcgYSByZXNwb25zZSAvIGV4YW1wbGUgLyBib2R5IHNjaGVtYSB3aWxsIGRlcmVmZXJlbmNlIGl0LgoqIE9wZW5BUEktR1VJIHdpbGwgbm90IGFsd2F5cyBwcmVzZXJ2ZSB2ZW5kb3ItZXh0ZW5zaW9ucywgZS5nLiBpZiBhIHBhcmFtZXRlciBpcyBkZWxldGVkIGFuZCByZWNyZWF0ZWQuCiogT3BlbkFQSS1HVUkgd2lsbCBub3QgcHJlc2VydmUgY29tbWVudHMgZnJvbSBkZWZpbml0aW9ucyBpbXBvcnRlZCBpbiBZQU1MIGZvcm1hdC4KClRPRE8KLS0tLQoKKiBTZWUgdGhlIFtUT0RPIGxpc3RdKC9kb2NzL1RPRE8ubWQpIGFuZCB0aGUgY3VycmVudCBzdGF0dXMgb2YgW09wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gc3VwcG9ydF0oZG9jcy9vcGVuYXBpMy1zdXBwb3J0Lm1kKS4KCg== readmeEtag: '"fe9390b576bcf3a1e239f9399ce0c894964d859d"' readmeLastModified: Sun, 15 Oct 2023 11:54:20 GMT repositoryId: 71986592 description: GUI / visual editor for creating and editing OpenAPI / Swagger definitions created: '2016-10-26T09:15:55Z' updated: '2024-08-31T04:09:44Z' language: JavaScript archived: false stars: 1403 watchers: 42 forks: 170 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: MIT repoEtag: '"310bf38986c25f4734bba7aed6fbdaf5efb6bd6d6291423d3e99f73664c1b420"' repoLastModified: Sat, 31 Aug 2024 04:09:44 GMT foundInMaster: true id: 71f1a528dc0a6366fb580d1b8c703ea8 - source: openapi3 tags repository: https://github.com/openapitools/openapi-generator-cli v3: true repositoryMetadata: base64Readme: >- IyBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQoKWyFbSm9pbiB0aGUgU2xhY2sgY2hhdCByb29tXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NsYWNrLUpvaW4lMjB0aGUlMjBjaGF0JTIwcm9vbS1vcmFuZ2UpXShodHRwczovL2pvaW4uc2xhY2suY29tL3Qvb3BlbmFwaS1nZW5lcmF0b3Ivc2hhcmVkX2ludml0ZS9lblF0TnpBeU5ETXlPVFUwT1RFMUxUWTVaREJpTkRJNU56STVaalExWTJFNU9XVmpNalprWXpZMVpHTTJNV1E0WVdGak16Y3lORFk1TUdJNE5qUXhOREJpTVRsbVpUYzVOalkyWlRRNU1HTSkKCiFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3dvcmtmbG93cy9CdWlsZC9iYWRnZS5zdmcpClshW1Jlbm92YXRlIGVuYWJsZWRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVub3ZhdGUtZW5hYmxlZC1icmlnaHRncmVlbi5zdmcpXShodHRwczovL3Jlbm92YXRlYXBwLmNvbS8pClshW3NlbWFudGljLXJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvJTIwJTIwJUYwJTlGJTkzJUE2JUYwJTlGJTlBJTgwLXNlbWFudGljLS1yZWxlYXNlLWUxMDA3OS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2VtYW50aWMtcmVsZWFzZS9zZW1hbnRpYy1yZWxlYXNlKQoKT3BlbkFQSSBHZW5lcmF0b3IgYWxsb3dzIGdlbmVyYXRpb24gb2YgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNESyBnZW5lcmF0aW9uKSwgc2VydmVyIHN0dWJzLCBkb2N1bWVudGF0aW9uIGFuZCAKY29uZmlndXJhdGlvbiBhdXRvbWF0aWNhbGx5IGdpdmVuIGFuIE9wZW5BUEkgU3BlYyAoYm90aCAyLjAgYW5kIDMuMCBhcmUgc3VwcG9ydGVkKS4gUGxlYXNlIHNlZQpbT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKS4KClRoZSBPcGVuQVBJIEdlbmVyYXRvciBpcyBhIEphdmEgcHJvamVjdC4gYG9wZW5hcGktZ2VuZXJhdG9yLWNsaWAgd2lsbCBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgSkFSIGZpbGUgYW5kIGludm9rZSB0aGUgYGphdmFgIGV4ZWN1dGFibGUgdG8gcnVuIHRoZSBPcGVuQVBJIEdlbmVyYXRvci4gWW91IG11c3QgaGF2ZSB0aGUgYGphdmFgIGJpbmFyeSBleGVjdXRhYmxlIGF2YWlsYWJsZSBvbiB5b3VyIGBQQVRIYCBmb3IgdGhpcyB0byB3b3JrLiAoSkRLIDExIGlzIHRoZSBtaW5pbWFsIHZlcnNpb24gc3VwcG9ydGVkLiBUbyBpbnN0YWxsIE9wZW5KREssIHBsZWFzZSB2aXNpdCBodHRwczovL2Fkb3B0aXVtLm5ldC8pCgpJZiB5b3UgZmluZCB0aGlzIHRvb2wgdXNlZnVsLCBwbGVhc2UgY29uc2lkZXIgc3BvbnNvcmluZyB0aGlzIHByb2plY3QgZmluYW5jaWFsbHkgdmlhIGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yIG9yIGRpcmVjdGx5IHRvIFtLYXkgU2NoZWNrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9rYXktc2NoZWNrZXIpICh0aGUgYXV0aG9yIG9mIHRoaXMgdG9vbCkgOnByYXk6CgotLS0KCiMjIFZlcnNpb24gMi54LngKCiMjIyMgW3VwZGF0ZV0gVGhlIGNvbW1hbmQgaGFzIGJlZW4gcmVuYW1lZAoKWW91IG5lZWQgdG8gZXhlY3V0ZSBgb3BlbmFwaS1nZW5lcmF0b3ItY2xpYCBpbnN0ZWFkIG9mIGBvcGVuYXBpLWdlbmVyYXRvcmAgZnJvbSBub3cgb24uCgojIyMjIFthZGRlZF0gW3NlbXZlcl0oaHR0cHM6Ly9zZW12ZXIub3JnLykgc3VwcG9ydCEg8J+OiQoKPHAgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL2Jsb2IvbWFzdGVyL2ltZy92bS5naWY/cmF3PXRydWUiLz48L3A+CgpUbyBtYWtlIHRoYXQgaGFwcGVuLCBhIHZlcnNpb24gbWFuYWdlbWVudCB3YXMgYWRkZWQgdG8gdGhlIHBhY2thZ2UuClRoZSBmaXJzdCB0aW1lIHlvdSBydW4gdGhlIGNvbW1hbmQgYG9wZW5hcGktZ2VuZXJhdG9yLWNsaWAgdGhlIGxhc3Qgc3RhYmxlIHZlcnNpb24gCm9mIFtPcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIGlzIGRvd25sb2FkZWQgYnkgZGVmYXVsdC4gCgpUaGF0IHZlcnNpb24gaXMgc2F2ZWQgaW4gdGhlIGZpbGUgKm9wZW5hcGl0b29scy5qc29uKi4gVGhlcmVmb3JlIHlvdSBzaG91bGQgaW5jbHVkZSB0aGlzIGZpbGUgaW4geW91ciB2ZXJzaW9uIGNvbnRyb2wsIAp0byBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCB2ZXJzaW9uIGlzIGJlaW5nIHVzZWQgbmV4dCB0aW1lIHlvdSBjYWxsIHRoZSBjb21tYW5kLgoKSWYgeW91IHdvdWxkIGxpa2UgdG8gdXNlIGEgZGlmZmVyZW50IHZlcnNpb24gb2YgdGhlIFtPcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpLCAKeW91IGNvdWxkIGNoYW5nZSBpdCBieSB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2luZyBjb21tYW5kczoKIAotIGBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbi1tYW5hZ2VyIGxpc3RgIAotIGBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbi1tYW5hZ2VyIHNldCAgPHZlcnNpb25UYWdzLi4uPmAKCiMjIyMgW2FkZGVkXSBnZW5lcmF0b3IgY29uZmlnCgpZb3Ugd2lsbCBub3cgYmUgYWJsZSB0byBjb25maWd1cmUgdGhlIGNvZGUgZ2VuZXJhdGlvbiBpbiAqb3BlbmFwaXRvb2xzLmpzb24qLiAKVGhpcyBtYWtlcyBpdCBtb3JlIGNvbnZlbmllbnQgdG8gZ2VuZXJhdGUgY29kZSBmb3IgZXZlcnkgZmlsZSB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIGdsb2IgZXhwcmVzc2lvbi4KRm9yIG1vcmUgaW5mb3JtYXRpb24sIFtwbGVhc2UgY2hlY2sgb3V0IHRoZSBjb25maWd1cmF0aW9uIGRvY3VtZW50YXRpb24gYmVsb3ddKCNjb25maWd1cmF0aW9uKS4KCiMjIEluc3RhbGxhdGlvbgoKIyMjIExvY2FsbHkgKHJlY29tbWVuZGVkKQoKYGBgc2gKbnBtIGluc3RhbGwgQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkKYGBgCgpvciB1c2luZyB5YXJuCgpgYGBzaAp5YXJuIGFkZCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpgYGAKCkFmdGVyIHRoZSBpbnN0YWxsYXRpb24gaGFzIGZpbmlzaGVkIHlvdSBjYW4gcnVuIGBucHggb3BlbmFwaS1nZW5lcmF0b3ItY2xpYCBvciBhZGQgYSBzY3JpcHQgbGlrZSB0aGlzOgoKYGBganNvbgp7CiAgIm5hbWUiOiAibXktY29vbC1wYWNrYWdlIiwKICAidmVyc2lvbiI6ICIwLjAuMCIsCiAgInNjcmlwdHMiOiB7CiAgICAibXktYXdlc29tZS1zY3JpcHQtbmFtZSI6ICJvcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgLWkgZG9jcy9vcGVuYXBpLnlhbWwgLWcgdHlwZXNjcmlwdC1hbmd1bGFyIC1vIGdlbmVyYXRlZC1zb3VyY2VzL29wZW5hcGkgLS1hZGRpdGlvbmFsLXByb3BlcnRpZXM9bmdWZXJzaW9uPTYuMS43LG5wbU5hbWU9cmVzdENsaWVudCxzdXBwb3J0c0VTNj10cnVlLG5wbVZlcnNpb249Ni45LjAsd2l0aEludGVyZmFjZXM9dHJ1ZSIsCiAgfQp9CmBgYAoKTm90ZSB0aGUgd2hpdGVzcGFjZSBzZW5zaXRpdml0eSB3aGVuIHVzaW5nIG11bHRpcGxlIGFkZGl0aW9uYWwtcHJvcGVydGllczoKCmBgYHRleHQKLS1hZGRpdGlvbmFsLXByb3BlcnRpZXM9bmdWZXJzaW9uPTYuMS43LG5wbU5hbWU9cmVzdENsaWVudCxzdXBwb3J0c0VTNj10cnVlLG5wbVZlcnNpb249Ni45LjAsd2l0aEludGVyZmFjZXM9dHJ1ZQpgYGAKCiMjIyBHbG9iYWxseQoKYGBgc2gKbnBtIGluc3RhbGwgLWcgQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkKYGBgCgpvciB1c2luZyB5YXJuCgpgYGBzaAp5YXJuIGdsb2JhbCBhZGQgQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkKYGBgCgpBZnRlciB0aGUgaW5zdGFsbGF0aW9uIGhhcyBmaW5pc2hlZCB5b3UgY2FuIHJ1biBgb3BlbmFwaS1nZW5lcmF0b3ItY2xpYAoKIyMgVXNhZ2UKCk1hYy9MaW51eDoKYGBgCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSAtZyBydWJ5IC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIC1vIC92YXIvdG1wL3J1YnktY2xpZW50CmBgYAoKV2luZG93czoKYGBgCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSAtZyBydWJ5IC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIC1vIEM6XHRlbXBccnVieS1jbGllbnQKYGBgCgojIyBDb25maWd1cmF0aW9uCgpJZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIHBhY2thZ2UgbG9jYWxseSBhbmQgZXhlY3V0ZWQgdGhlIGNvbW1hbmQgYG9wZW5hcGktZ2VuZXJhdG9yLWNsaWAgYXQgbGVhc3Qgb25jZSwgCnlvdSB3aWxsIGZpbmQgYSBuZXcgZmlsZSBjYWxsZWQgKm9wZW5hcGl0b29scy5qc29uKiBhbG9uZyB3aXRoIHRoZSAqcGFja2FnZS5qc29uKi4gKipQbGVhc2UgYWRkIHRoaXMgZmlsZSB0byB5b3VyIFZDUy4qKiAKCkluaXRpYWxseSB0aGUgZmlsZSBoYXMgdGhlIGZvbGxvd2luZyBjb250ZW50OgoKYGBganNvbjUKewogICIkc2NoZW1hIjogIm5vZGVfbW9kdWxlcy9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS9jb25maWcuc2NoZW1hLmpzb24iLAogICJzcGFjZXMiOiAyLAogICJnZW5lcmF0b3ItY2xpIjogewogICAgInZlcnNpb24iOiAiNy44LjAiIC8vIG9yIHRoZSBjdXJyZW50IGxhdGVzdCB2ZXJzaW9uIDspCiAgfQp9CmBgYAoKVGhpcyBjb25maWd1cmF0aW9uIGluZGljYXRlcyB0aGUgZm9sbG93aW5nOgoKLSB0aGUganNvbiBmaWxlIHNoYWxsIGJlIGZvcm1hdHRlZCB1c2luZyAqKjIgc3BhY2VzKioKLSB0aGUgamFyIGZpbGVzIHNoYWxsIGJlIGRvd25sb2FkZWQgdG8gKi4vbXkvY3VzdG9tL3N0b3JhZ2UvZGlyKgotIHRoZSBnZW5lcmF0b3ItY2xpIHZlcnNpb24gNy44LjAgaXMgdXNlZAoKRnVydGhlciBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSBnZW5lcmF0b3JzLCBmb3IgZXhhbXBsZToKCmBgYGpzb241CnsKICAiJHNjaGVtYSI6ICJub2RlX21vZHVsZXMvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvY29uZmlnLnNjaGVtYS5qc29uIiwKICAic3BhY2VzIjogMiwKICAiZ2VuZXJhdG9yLWNsaSI6IHsKICAgICJ2ZXJzaW9uIjogIjcuOC4wIiwKICAgICJzdG9yYWdlRGlyIjogIn4vbXkvY3VzdG9tL3N0b3JhZ2UvZGlyIiwgLy8gb3B0aW9uYWwKICAgICJnZW5lcmF0b3JzIjogeyAvLyBvcHRpb25hbAogICAgICAidjIuMCI6IHsgLy8gYW55IG5hbWUgeW91IGxpa2UgKGp1c3QgcHJpbnRlZCB0byB0aGUgY29uc29sZSBsb2cgb3IgcmVmZXJlbmNlIGl0IHVzaW5nIC0tZ2VuZXJhdG9yLWtleSkgCiAgICAgICAgImdlbmVyYXRvck5hbWUiOiAidHlwZXNjcmlwdC1hbmd1bGFyIiwKICAgICAgICAib3V0cHV0IjogIiN7Y3dkfS9vdXRwdXQvdjIuMC8je2V4dH0vI3tuYW1lfSIsCiAgICAgICAgImdsb2IiOiAiZXhhbXBsZXMvdjIuMC97anNvbix5YW1sfS8qLntqc29uLHlhbWx9IiwKICAgICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiOiB7CiAgICAgICAgICAibmdWZXJzaW9uIjogIjYuMS43IiwKICAgICAgICAgICJucG1OYW1lIjogInJlc3RDbGllbnQiLAogICAgICAgICAgInN1cHBvcnRzRVM2IjogInRydWUiLAogICAgICAgICAgIm5wbVZlcnNpb24iOiAiNi45LjAiLAogICAgICAgICAgIndpdGhJbnRlcmZhY2VzIjogdHJ1ZQogICAgICAgIH0KICAgICAgfSwKICAgICAgInYzLjAiOiB7IC8vIGFueSBuYW1lIHlvdSBsaWtlIChqdXN0IHByaW50ZWQgdG8gdGhlIGNvbnNvbGUgbG9nIG9yIHJlZmVyZW5jZSBpdCB1c2luZyAtLWdlbmVyYXRvci1rZXkpIAogICAgICAgICJnZW5lcmF0b3JOYW1lIjogInR5cGVzY3JpcHQtZmV0Y2giLAogICAgICAgICJvdXRwdXQiOiAiI3tjd2R9L291dHB1dC92My4wLyN7ZXh0fS8je25hbWV9IiwKICAgICAgICAiZ2xvYiI6ICJleGFtcGxlcy92My4wL3BldHN0b3JlLntqc29uLHlhbWx9IgogICAgICB9CiAgICB9CiAgfQp9CmBgYAoKSWYgYG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZWAgaXMgY2FsbGVkIHdpdGhvdXQgZnVydGhlciBhcmd1bWVudHMsIHRoZW4gdGhlIGNvbmZpZ3VyYXRpb24gCmlzIGF1dG9tYXRpY2FsbHkgdXNlZCB0byBnZW5lcmF0ZSB5b3VyIGNvZGUuIPCfjokKCgojIyMjIyBBdmFpbGFibGUgcGxhY2Vob2xkZXJzCiAgICAgCnwgcGxhY2Vob2xkZXIgIHwgZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4YW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IG5hbWUgICAgICAgICB8IGp1c3QgZmlsZSBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhdXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTmFtZSAgICAgICAgIHwganVzdCBmaWxlIG5hbWUsIGJ1dCBzdGFydGluZyB3aXRoIGEgY2FwaXRhbCBsZXR0ZXIgICAgICAgICAgICB8IEF1dGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBjd2QgICAgICAgICAgfCB0aGUgY3VycmVudCBjd2QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgL1VzZXJzL3NvbWUtdXNlci9wcm9qZWN0cy9zb21lLXByb2plY3QgICAgICAgICAgICAgICAgfAp8IGJhc2UgICAgICAgICB8IGZpbGUgbmFtZSBhbmQgZXh0ZW5zaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhdXRoLnlhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aCAgICAgICAgIHwgZnVsbCBwYXRoIGFuZCBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC9Vc2Vycy9zb21lLXVzZXIvcHJvamVjdHMvc29tZS1wcm9qZWN0L2RvY3MvYXV0aC55YW1sIHwKfCBkaXIgICAgICAgICAgfCBwYXRoIHdpdGhvdXQgdGhlIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgL1VzZXJzL3NvbWUtdXNlci9wcm9qZWN0cy9zb21lLXByb2plY3QvZG9jcyAgICAgICAgICAgfAp8IHJlbERpciAgICAgICB8IGRpcmVjdG9yeSBuYW1lIG9mIGZpbGUgcmVsYXRpdmUgdG8gdGhlIGdsb2IgcHJvdmlkZWQgICAgICAgICAgfCBkb2NzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcmVsUGF0aCAgICAgIHwgZmlsZSBuYW1lIGFuZCBleHRlbnNpb24gb2YgZmlsZSByZWxhdGl2ZSB0byB0aGUgZ2xvYiBwcm92aWRlZCB8IGRvY3MvYXV0aC55YW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBleHQgICAgICAgICAgfCBqdXN0IGZpbGUgZXh0ZW5zaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeWFtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMjIFVzaW5nIGN1c3RvbSAvIHByaXZhdGUgbWF2ZW4gcmVnaXN0cnkgCgpJZiB5b3UncmUgdXNpbmcgYSBwcml2YXRlIG1hdmVuIHJlZ2lzdHJ5IHlvdSBjYW4gY29uZmlndXJlIHRoZSBgZG93bmxvYWRVcmxgIGFuZCBgcXVlcnlVcmxgIGxpa2UgdGhpczoKCmBgYGpzb24KewogICIkc2NoZW1hIjogIm5vZGVfbW9kdWxlcy9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS9jb25maWcuc2NoZW1hLmpzb24iLAogICJzcGFjZXMiOiAyLAogICJnZW5lcmF0b3ItY2xpIjogewogICAgInZlcnNpb24iOiAiNy44LjAiLAogICAgInJlcG9zaXRvcnkiOiB7CiAgICAgICJxdWVyeVVybCI6ICJodHRwczovL3ByaXZhdGUubWF2ZW4uaW50ZXJuL3NvbHJzZWFyY2gvc2VsZWN0P3E9Zzoke2dyb3VwLmlkfStBTkQrYToke2FydGlmYWN0LmlkfSZjb3JlPWdhdiZzdGFydD0wJnJvd3M9MjAwIiwKICAgICAgImRvd25sb2FkVXJsIjogImh0dHBzOi8vcHJpdmF0ZS5tYXZlbi5pbnRlcm4vbWF2ZW4yLyR7Z3JvdXBJZH0vJHthcnRpZmFjdElkfS8ke3ZlcnNpb25OYW1lfS8ke2FydGlmYWN0SWR9LSR7dmVyc2lvbk5hbWV9LmphciIKICAgIH0KICB9Cn0KYGBgCgpJZiB0aGUgYHZlcnNpb25gIHByb3BlcnR5IHBhcmFtIGlzIHNldCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNvbmZpZ3VyZSB0aGUgYHF1ZXJ5VXJsYC4KCiMjIyBVc2UgbG9jYWxseSBidWlsdCBKQVIKSW4gb3JkZXIgdG8gdXNlIGEgbG9jYWxseSBidWlsdCBqYXIgb2YgdGhlIGdlbmVyYXRvciBDTEksIHlvdSBjYW4gY29weSB0aGUgamFyIGZyb20geW91ciBsb2NhbCBidWlsZCAoaS5lLiBpZiB5b3Ugd2VyZSB0byBgYnVpbGRgIHRoZSBbT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSByZXBvc2l0b3J5IGl0IHdvdWxkIGJlIGluIGB+L29wZW5hcGktZ2VuZXJhdG9yL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyYCkgaW50byBgLi9ub2RlX21vZHVsZXMvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdmVyc2lvbnMvYCBhbmQgY2hhbmdlIHRoZSBgdmVyc2lvbmAgaW4gdGhlIGBvcGVuYXBpdG9vbHMuanNvbmAgZmlsZSB0byB0aGUgYmFzZSBuYW1lIG9mIHRoZSBqYXIgZmlsZS4KRS5nLjoKYGBgc2gKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKLi9tdm53IGNsZWFuIHBhY2thZ2UKY3AgLi9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciAveW91ci9wcm9qZWN0L25vZGVfbW9kdWxlcy9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS92ZXJzaW9ucy9teS1sb2NhbC1zbmFwc2hvdC5qYXIKYGBgCmFuZCB0aGVuOgpgYGBqc29uCnsKICAiJHNjaGVtYSI6ICIuL25vZGVfbW9kdWxlcy9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS9jb25maWcuc2NoZW1hLmpzb24iLAogICJzcGFjZXMiOiAyLAogICJnZW5lcmF0b3ItY2xpIjogewogICAgInZlcnNpb24iOiAibXktbG9jYWwtc25hcHNob3QiLAogIH0KfQpgYGAKCiMjIyBVc2UgbmlnaHRseSBgU05BUFNIT1RgIGJ1aWxkCkNoYW5nZSB5b3VyIGBvcGVuYXBpdG9vbHMuanNvbmAgdG86CgpgYGBqc29uCnsKICAiJHNjaGVtYSI6ICJub2RlX21vZHVsZXMvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvY29uZmlnLnNjaGVtYS5qc29uIiwKICAic3BhY2VzIjogMiwKICAiZ2VuZXJhdG9yLWNsaSI6IHsKICAgICJ2ZXJzaW9uIjogIjcuOS4wLTIwMjQwODI5LjEyMzQzMS0yMiIsCiAgICAicmVwb3NpdG9yeSI6IHsKICAgICAgImRvd25sb2FkVXJsIjogImh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy45LjAtU05BUFNIT1Qvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLSR7dmVyc2lvbk5hbWV9LmphciIKICAgIH0KICB9Cn0KYGBgCgpFeGFtcGxlIGlzIHdpdGggYSBzbmFwc2hvdCBvZiBgNy45LjBgLCBwbGVhc2UgY2hhbmdlIHRoZSBgdmVyc2lvbmAgYW5kIGBkb3dubG9hZFVybGAgYWNjb3JkaW5nbHkuCllvdSBjYW4gZmluZCBhbGwgc25hcHNob3RzIFtoZXJlXShodHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLykuCgojIyBSdW4gc3BlY2lmaWMgZ2VuZXJhdG9ycwoKfCBjbWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHYzLjAgcnVucyB8IHYyLjAgcnVucyB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tfAp8IG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSAtLWdlbmVyYXRvci1rZXkgdjMuMCAgICAgIHwgeWVzICAgICAgIHwgbm8gICAgICAgIHwKfCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgLS1nZW5lcmF0b3Ita2V5IHYzLjAgdjIuMCB8IHllcyAgICAgICB8IHllcyAgICAgICB8Cnwgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlIC0tZ2VuZXJhdG9yLWtleSBmb28gICAgICAgfCBubyAgICAgICAgfCBubyAgICAgICAgfAoKIyMgVXNlIERvY2tlciBpbnN0ZWFkIG9mIHJ1bm5pbmcgamF2YSBsb2NhbGx5CgpgYGBqc29uCnsKICAiJHNjaGVtYSI6ICJub2RlX21vZHVsZXMvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvY29uZmlnLnNjaGVtYS5qc29uIiwKICAic3BhY2VzIjogMiwKICAiZ2VuZXJhdG9yLWNsaSI6IHsKICAgICJ1c2VEb2NrZXIiOiB0cnVlCiAgfQp9CmBgYApJZiBgdXNlRG9ja2VyYCBvcHRpb24gaXMgdXNlZCwgdGhlIHNwZWMgZmlsZSBnZXRzIG1vdW50ZWQgdG8gcGF0aCBgL2xvY2FsLzx5b3VyLXNwZWMtZmlsZS1sb2NhdGlvbj5gIHdpdGhpbiBjb250YWluZXIuIFNvLCBpZiB5b3Ugd291bGQgY29uZmlndXJlIHNwZWMgZmlsZSBhcyAKYC1pIG9wZW5hcGkvbXktYXBpLnltbGAgaWYgcnVubmluZyBsb2NhbGx5LCB3aXRoIHVzZURvY2tlciBvcHRpb24gc2V0LCB5b3Ugd291bGQgaGF2ZSB0byBjb25maWd1cmUgaXQgbGlrZSB0aGlzOiBgLWkgL2xvY2FsL29wZW5hcGkvbXktYXBpLnltbGAuCgojIyBDdXN0b20gR2VuZXJhdG9ycwoKQ3VzdG9tIGdlbmVyYXRvcnMgY2FuIGJlIHVzZWQgYnkgcGFzc2luZyB0aGUgYC0tY3VzdG9tLWdlbmVyYXRvcj0vbXkvY3VzdG9tLWdlbmVyYXRvci5qYXJgIGFyZ3VtZW50LgoKIyMgRnVydGhlciBEb2N1bWVudGF0aW9uCgpQbGVhc2UgcmVmZXIgdG8gdGhlIFtvZmZpY2lhbCBvcGVuYXBpLWdlbmVyYXRvciBkb2NzXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yIzMtLS11c2FnZSkgZm9yCm1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBvc3NpYmxlIGFyZ3VtZW50cyBhbmQgYSBkZXRhaWxlZCB1c2FnZSBtYW51YWwgb2YgdGhlIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UuCgojIyBJbnN0YWxsIHByZXZpb3VzIHZlcnNpb24KCmBgYHNoCm5wbSBpbnN0YWxsIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpQHByZXZpb3VzCm5wbSBpIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpQDEuMC4xOC00LjMuMQpgYGAKCm9yIHVzaW5nIHlhcm4KCmBgYHNoCnlhcm4gYWRkIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpQHByZXZpb3VzCnlhcm4gYWRkIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpQDEuMC4xOC00LjMuMQpgYGAKCiMjIFlvdSBsaWtlIHRoZSBwYWNrYWdlPwoKUGxlYXNlIGxlYXZlIGEgc3Rhci4KCgo= readmeEtag: '"141a4803553dacb53ac50d8e254e43e6d1471a97"' readmeLastModified: Wed, 04 Sep 2024 07:54:21 GMT repositoryId: 154817001 description: >- A node package wrapper for https://github.com/OpenAPITools/openapi-generator created: '2018-10-26T10:21:23Z' updated: '2024-09-05T03:30:59Z' language: TypeScript archived: false stars: 1394 watchers: 18 forks: 142 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 repoEtag: '"1dc05790610fef75c85db086dcd4b635783d3123d6560f870f4576e83dea0617"' repoLastModified: Thu, 05 Sep 2024 03:30:59 GMT foundInMaster: true category: - Code Generators - Parsers id: 8f568f0b10837fef38571b68999adc0f - source: openapi3 tags repository: https://github.com/ogen-go/ogen v3: true id: 3d3e1f300ede27ed165969a8737ba867 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHNyYz0iX2xvZ28vbG9nby5zdmciIGFsdD0ib2dlbiBzdmcgbG9nbyI+CjwvcD4KCiMgb2dlbiBbIVtHbyBSZWZlcmVuY2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZ28tcGtnLTAwQUREOCldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL29nZW4tZ28vb2dlbiNzZWN0aW9uLWRvY3VtZW50YXRpb24pIFshW2NvZGVjb3ZdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY29kZWNvdi9jL2dpdGh1Yi9vZ2VuLWdvL29nZW4/bGFiZWw9Y292ZXIpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvb2dlbi1nby9vZ2VuKSBbIVtzdGFibGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLXN0YWJsZS1icmlnaHRncmVlbildKGh0dHBzOi8vZ28tZmFzdGVyLm9yZy9kb2NzL3Byb2plY3RzL3N0YXR1cyNzdGFibGUpCgpPcGVuQVBJIHYzIENvZGUgR2VuZXJhdG9yIGZvciBHby4KCi0gW0dldHRpbmcgc3RhcnRlZF0oaHR0cHM6Ly9vZ2VuLmRldi9kb2NzL2ludHJvKQotIFtTYW1wbGUgcHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL29nZW4tZ28vZXhhbXBsZSkKLSBbU2VjdXJpdHkgcG9saWN5XShodHRwczovL2dpdGh1Yi5jb20vb2dlbi1nby9vZ2VuL2Jsb2IvLS9TRUNVUklUWS5tZCkKLSBbVGVsZWdyYW0gZ3JvdXAgYEBvZ2VuX2RldmBdKGh0dHBzOi8vdC5tZS9vZ2VuX2RldikKCiMgSW5zdGFsbAoKYGBgY29uc29sZQpnbyBnZXQgLWQgZ2l0aHViLmNvbS9vZ2VuLWdvL29nZW4KYGBgCgojIFVzYWdlCgpgYGBnbwovL2dvOmdlbmVyYXRlIGdvIHJ1biBnaXRodWIuY29tL29nZW4tZ28vb2dlbi9jbWQvb2dlbiAtLXRhcmdldCB0YXJnZXQvZGlyIC1wYWNrYWdlIGFwaSAtLWNsZWFuIHNjaGVtYS5qc29uCmBgYAoKb3IgdXNpbmcgY29udGFpbmVyOgpgYGBzaGVsbApkb2NrZXIgcnVuIC0tcm0gXAogIC0tdm9sdW1lICIuOi93b3Jrc3BhY2UiIFwKICBnaGNyLmlvL29nZW4tZ28vb2dlbjpsYXRlc3QgLS10YXJnZXQgd29ya3NwYWNlL3BldHN0b3JlIC0tY2xlYW4gd29ya3NwYWNlL3BldHN0b3JlLnltbApgYGAKCiMgRmVhdHVyZXMKCi0gTm8gcmVmbGVjdGlvbiBvciBgaW50ZXJmYWNle31gCiAgLSBUaGUganNvbiBlbmNvZGluZyBpcyBjb2RlLWdlbmVyYXRlZCwgb3B0aW1pemVkIGFuZCB1c2VzIFtnby1mYXN0ZXIvanhdKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1mYXN0ZXIvangpIGZvciBzcGVlZCBhbmQgb3ZlcmNvbWluZyBgZW5jb2RpbmcvanNvbmAgbGltaXRhdGlvbnMKICAtIFZhbGlkYXRpb24gaXMgY29kZS1nZW5lcmF0ZWQgYWNjb3JkaW5nIHRvIHNwZWMKLSBDb2RlLWdlbmVyYXRlZCBzdGF0aWMgcmFkaXggcm91dGVyCi0gTm8gbW9yZSBib2lsZXJwbGF0ZQogIC0gU3RydWN0dXJlcyBhcmUgZ2VuZXJhdGVkIGZyb20gT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uCiAgLSBBcmd1bWVudHMsIGhlYWRlcnMsIHVybCBxdWVyaWVzIGFyZSBwYXJzZWQgYWNjb3JkaW5nIHRvIHNwZWNpZmljYXRpb24gaW50byBzdHJ1Y3R1cmVzCiAgLSBTdHJpbmcgZm9ybWF0cyBsaWtlIGB1dWlkYCwgYGRhdGVgLCBgZGF0ZS10aW1lYCwgYHVyaWAgYXJlIHJlcHJlc2VudGVkIGJ5IGdvIHR5cGVzIGRpcmVjdGx5Ci0gU3RhdGljYWxseSB0eXBlZCBjbGllbnQgYW5kIHNlcnZlcgotIENvbnZlbmllbnQgc3VwcG9ydCBmb3Igb3B0aW9uYWwsIG51bGxhYmxlIGFuZCBvcHRpb25hbCBudWxsYWJsZSBmaWVsZHMKICAtIE5vIG1vcmUgcG9pbnRlcnMKICAtIEdlbmVyYXRlZCBPcHRpb25hbFtUXSwgTnVsbGFibGVbVF0gb3IgT3B0aW9uYWxOdWxsYWJsZVtUXSB3cmFwcGVycyB3aXRoIGhlbHBlcnMKICAtIFNwZWNpYWwgY2FzZSBmb3IgYXJyYXkgaGFuZGxpbmcgd2l0aCBgbmlsYCBzZW1hbnRpY3MgcmVsZXZhbnQgdG8gc3BlY2lmaWNhdGlvbgogICAgLSBXaGVuIGFycmF5IGlzIG9wdGlvbmFsLCBgbmlsYCBkZW5vdGVzIGFic2VuY2Ugb2YgdmFsdWUKICAgIC0gV2hlbiBudWxsYWJsZSwgYG5pbGAgZGVub3RlcyB0aGF0IHZhbHVlIGlzIGBuaWxgCiAgICAtIFdoZW4gcmVxdWlyZWQsIGBuaWxgIGN1cnJlbnRseSB0aGUgc2FtZSBhcyBgW11gLCBidXQgaXMgYWN0dWFsbHkgaW52YWxpZAogICAgLSBJZiBib3RoIG51bGxhYmxlIGFuZCByZXF1aXJlZCwgd3JhcHBlciB3aWxsIGJlIGdlbmVyYXRlZCAoVE9ETykKLSBHZW5lcmF0ZWQgc3VtIHR5cGVzIGZvciBvbmVPZgogIC0gUHJpbWl0aXZlIHR5cGVzIChgc3RyaW5nYCwgYG51bWJlcmApIGFyZSBkZXRlY3RlZCBieSB0eXBlCiAgLSBEaXNjcmltaW5hdG9yIGZpZWxkIGlzIHVzZWQgaWYgZGVmaW5lZCBpbiBzY2hlbWEKICAtIFR5cGUgaXMgaW5mZXJyZWQgYnkgdW5pcXVlIGZpZWxkcyBpZiBwb3NzaWJsZQotIEV4dHJhIEdvIHN0cnVjdCBmaWVsZCB0YWdzIGluIHRoZSBnZW5lcmF0ZWQgdHlwZXMKLSBPcGVuVGVsZW1ldHJ5IHRyYWNpbmcgYW5kIG1ldHJpY3MKCkV4YW1wbGUgZ2VuZXJhdGVkIHN0cnVjdHVyZSBmcm9tIHNjaGVtYToKCmBgYGdvCi8vIFBldCBkZXNjcmliZXMgIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0Lgp0eXBlIFBldCBzdHJ1Y3QgewoJQmlydGhkYXkgICAgIHRpbWUuVGltZSAgICAgYGpzb246ImJpcnRoZGF5ImAKCUZyaWVuZHMgICAgICBbXVBldCAgICAgICAgIGBqc29uOiJmcmllbmRzImAKCUlEICAgICAgICAgICBpbnQ2NCAgICAgICAgIGBqc29uOiJpZCJgCglJUCAgICAgICAgICAgbmV0LklQICAgICAgICBganNvbjoiaXAiYAoJSVBWNCAgICAgICAgIG5ldC5JUCAgICAgICAgYGpzb246ImlwX3Y0ImAKCUlQVjYgICAgICAgICBuZXQuSVAgICAgICAgIGBqc29uOiJpcF92NiJgCglLaW5kICAgICAgICAgUGV0S2luZCAgICAgICBganNvbjoia2luZCJgCglOYW1lICAgICAgICAgc3RyaW5nICAgICAgICBganNvbjoibmFtZSJgCglOZXh0ICAgICAgICAgT3B0RGF0YSAgICAgICBganNvbjoibmV4dCJgCglOaWNrbmFtZSAgICAgTmlsU3RyaW5nICAgICBganNvbjoibmlja25hbWUiYAoJTnVsbFN0ciAgICAgIE9wdE5pbFN0cmluZyAgYGpzb246Im51bGxTdHIiYAoJUmF0ZSAgICAgICAgIHRpbWUuRHVyYXRpb24gYGpzb246InJhdGUiYAoJVGFnICAgICAgICAgIE9wdFVVSUQgICAgICAgYGpzb246InRhZyJgCglUZXN0QXJyYXkxICAgW11bXXN0cmluZyAgICBganNvbjoidGVzdEFycmF5MSJgCglUZXN0RGF0ZSAgICAgT3B0VGltZSAgICAgICBganNvbjoidGVzdERhdGUiYAoJVGVzdERhdGVUaW1lIE9wdFRpbWUgICAgICAgYGpzb246InRlc3REYXRlVGltZSJgCglUZXN0RHVyYXRpb24gT3B0RHVyYXRpb24gICBganNvbjoidGVzdER1cmF0aW9uImAKCVRlc3RGbG9hdDEgICBPcHRGbG9hdDY0ICAgIGBqc29uOiJ0ZXN0RmxvYXQxImAKCVRlc3RJbnRlZ2VyMSBPcHRJbnQgICAgICAgIGBqc29uOiJ0ZXN0SW50ZWdlcjEiYAoJVGVzdFRpbWUgICAgIE9wdFRpbWUgICAgICAgYGpzb246InRlc3RUaW1lImAKCVR5cGUgICAgICAgICBPcHRQZXRUeXBlICAgIGBqc29uOiJ0eXBlImAKCVVSSSAgICAgICAgICB1cmwuVVJMICAgICAgIGBqc29uOiJ1cmkiYAoJVW5pcXVlSUQgICAgIHV1aWQuVVVJRCAgICAgYGpzb246InVuaXF1ZV9pZCJgCn0KYGBgCgpFeGFtcGxlIGdlbmVyYXRlZCBzZXJ2ZXIgaW50ZXJmYWNlOgoKYGBgZ28KLy8gU2VydmVyIGhhbmRsZXMgb3BlcmF0aW9ucyBkZXNjcmliZWQgYnkgT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uLgp0eXBlIFNlcnZlciBpbnRlcmZhY2UgewoJUGV0R2V0QnlOYW1lKGN0eCBjb250ZXh0LkNvbnRleHQsIHBhcmFtcyBQZXRHZXRCeU5hbWVQYXJhbXMpIChQZXQsIGVycm9yKQoJLy8gLi4uCn0KYGBgCgpFeGFtcGxlIGdlbmVyYXRlZCBjbGllbnQgbWV0aG9kIHNpZ25hdHVyZToKCmBgYGdvCnR5cGUgUGV0R2V0QnlOYW1lUGFyYW1zIHN0cnVjdCB7CiAgICBOYW1lIHN0cmluZwp9CgovLyBHRVQgL3BldC97bmFtZX0KZnVuYyAoYyAqQ2xpZW50KSBQZXRHZXRCeU5hbWUoY3R4IGNvbnRleHQuQ29udGV4dCwgcGFyYW1zIFBldEdldEJ5TmFtZVBhcmFtcykgKHJlcyBQZXQsIGVyciBlcnJvcikKYGBgCgojIyBHZW5lcmljcwoKSW5zdGVhZCBvZiB1c2luZyBwb2ludGVycywgYG9nZW5gIGdlbmVyYXRlcyBnZW5lcmljIHdyYXBwZXJzLgoKRm9yIGV4YW1wbGUsIGBPcHROaWxTdHJpbmdgIGlzIGBzdHJpbmdgIHRoYXQgaXMgb3B0aW9uYWwgKG5vIHZhbHVlKSBhbmQgY2FuIGJlIGBudWxsYC4KCmBgYGdvCi8vIE9wdE5pbFN0cmluZyBpcyBvcHRpb25hbCBudWxsYWJsZSBzdHJpbmcuCnR5cGUgT3B0TmlsU3RyaW5nIHN0cnVjdCB7CglWYWx1ZSBzdHJpbmcKCVNldCAgIGJvb2wKCU51bGwgIGJvb2wKfQpgYGAKCk11bHRpcGxlIGNvbnZlbmllbmNlIGhlbHBlciBtZXRob2RzIGFuZCBmdW5jdGlvbnMgYXJlIGdlbmVyYXRlZCwgc29tZSBvZiB0aGVtOgoKYGBgZ28KZnVuYyAoT3B0TmlsU3RyaW5nKSBHZXQoKSAodiBzdHJpbmcsIG9rIGJvb2wpCmZ1bmMgKE9wdE5pbFN0cmluZykgSXNOdWxsKCkgYm9vbApmdW5jIChPcHROaWxTdHJpbmcpIElzU2V0KCkgYm9vbAoKZnVuYyBOZXdPcHROaWxTdHJpbmcodiBzdHJpbmcpIE9wdE5pbFN0cmluZwpgYGAKCiMjIFJlY3Vyc2l2ZSB0eXBlcwoKSWYgYG9nZW5gIGVuY291bnRlcnMgcmVjdXJzaXZlIHR5cGVzIHRoYXQgY2FuJ3QgYmUgZXhwcmVzc2VkIGluIGdvLCBwb2ludGVycyBhcmUgdXNlZCBhcyBmYWxsYmFjay4KCiMjIFN1bSB0eXBlcwoKRm9yIGBvbmVPZmAgc3VtLXR5cGVzIGFyZSBnZW5lcmF0ZWQuIGBJRGAgdGhhdCBpcyBvbmUgb2YgYFtzdHJpbmcsIGludGVnZXJdYCB3aWxsIGJlIHJlcHJlc2VudGVkIGxpa2UgdGhhdDoKCmBgYGdvCnR5cGUgSUQgc3RydWN0IHsKCVR5cGUgICBJRFR5cGUKCVN0cmluZyBzdHJpbmcKCUludCAgICBpbnQKfQoKLy8gQWxzbywgc29tZSBoZWxwZXJzOgpmdW5jIE5ld1N0cmluZ0lEKHYgc3RyaW5nKSBJRApmdW5jIE5ld0ludElEKHYgaW50KSBJRApgYGAKCiMjIEV4dGVuc2lvbiBwcm9wZXJ0aWVzCgpPcGVuQVBJIGVuYWJsZXMgW1NwZWNpZmljYXRpb24gRXh0ZW5zaW9uc10oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3NwZWNpZmljYXRpb24tZXh0ZW5zaW9ucyksCndoaWNoIGFyZSBpbXBsZW1lbnRlZCBhcyBwYXR0ZXJuZWQgZmllbGRzIHRoYXQgYXJlIGFsd2F5cyBwcmVmaXhlZCBieSBgeC1gLgoKIyMjIFNlcnZlciBuYW1lCgpPcHRpb25hbGx5LCBzZXJ2ZXIgbmFtZSBjYW4gYmUgc3BlY2lmaWVkIGJ5IGB4LW9nZW4tc2VydmVyLW5hbWVgLCBmb3IgZXhhbXBsZToKCmBgYGpzb24KewogICJvcGVuYXBpIjogIjMuMC4zIiwKICAic2VydmVycyI6IFsKICAgIHsKICAgICAgIngtb2dlbi1zZXJ2ZXItbmFtZSI6ICJwcm9kdWN0aW9uIiwKICAgICAgInVybCI6ICJodHRwczovL3tyZWdpb259LmV4YW1wbGUuY29tL3t2YWx9L3YxIiwKICAgIH0sCiAgICB7CiAgICAgICJ4LW9nZW4tc2VydmVyLW5hbWUiOiAicHJlZml4IiwKICAgICAgInVybCI6ICIve3ZhbH0vdjEiLAogICAgfSwKICAgIHsKICAgICAgIngtb2dlbi1zZXJ2ZXItbmFtZSI6ICJjb25zdCIsCiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9jZG4uZXhhbXBsZS5jb20vdjEiCiAgICB9CiAgXSwKKC4uLikKYGBgCgojIyMgQ3VzdG9tIHR5cGUgbmFtZQoKT3B0aW9uYWxseSwgdHlwZSBuYW1lIGNhbiBiZSBzcGVjaWZpZWQgYnkgYHgtb2dlbi1uYW1lYCwgZm9yIGV4YW1wbGU6CgpgYGBqc29uCnsKICAiJHNjaGVtYSI6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMiLAogICJ0eXBlIjogIm9iamVjdCIsCiAgIngtb2dlbi1uYW1lIjogIk5hbWUiLAogICJwcm9wZXJ0aWVzIjogewogICAgImZvb2JhciI6IHsKICAgICAgIiRyZWYiOiAiIy8kZGVmcy9Gb29CYXIiCiAgICB9CiAgfSwKICAiJGRlZnMiOiB7CiAgICAiRm9vQmFyIjogewogICAgICAieC1vZ2VuLW5hbWUiOiAiRm9vQmFyIiwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImZvbyI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgojIyMgQ3VzdG9tIGZpZWxkIG5hbWUKCk9wdGlvbmFsbHksIHR5cGUgbmFtZSBjYW4gYmUgc3BlY2lmaWVkIGJ5IGB4LW9nZW4tcHJvcGVydGllc2AsIGZvciBleGFtcGxlOgoKYGBgeWFtbApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBOb2RlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBwYXJlbnQ6CiAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvTm9kZSIKICAgICAgICBjaGlsZDoKICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Ob2RlIgogICAgICB4LW9nZW4tcHJvcGVydGllczoKICAgICAgICBwYXJlbnQ6CiAgICAgICAgICBuYW1lOiAiUHJldiIKICAgICAgICBjaGlsZDoKICAgICAgICAgIG5hbWU6ICJOZXh0IgpgYGAKClRoZSBnZW5lcmF0ZWQgc291cmNlIGNvZGUgbG9va3MgbGlrZToKCmBgYGdvCi8vIFJlZjogIy9jb21wb25lbnRzL3NjaGVtYXMvTm9kZQp0eXBlIE5vZGUgc3RydWN0IHsKICAgIFByZXYgKk5vZGUgYGpzb246InBhcmVudCJgCiAgICBOZXh0ICpOb2RlIGBqc29uOiJjaGlsZCJgCn0KYGBgCgojIyMgRXh0cmEgc3RydWN0IGZpZWxkIHRhZ3MKCk9wdGlvbmFsbHksIGFkZGl0aW9uYWwgR28gc3RydWN0IGZpZWxkIHRhZ3MgY2FuIGJlIHNwZWNpZmllZCBieSBgeC1vYXBpLWNvZGVnZW4tZXh0cmEtdGFnc2AsIGZvciBleGFtcGxlOgoKYGBgeWFtbApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBQZXQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlkCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBmb3JtYXQ6IGludDY0CiAgICAgICAgICB4LW9hcGktY29kZWdlbi1leHRyYS10YWdzOgogICAgICAgICAgICBnb3JtOiBwcmltYXJ5S2V5CiAgICAgICAgICAgIHZhbGlkOiBjdXN0b21JZFZhbGlkYXRvcgpgYGAKClRoZSBnZW5lcmF0ZWQgc291cmNlIGNvZGUgbG9va3MgbGlrZToKCmBgYGdvCi8vIFJlZjogIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0CnR5cGUgUGV0IHN0cnVjdCB7CiAgICBJRCAgIGludDY0ICAgICBgZ29ybToicHJpbWFyeUtleSIgdmFsaWQ6ImN1c3RvbU5hbWVWYWxpZGF0b3IiIGpzb246ImlkImAKfQpgYGAKCiMjIyBTdHJlYW1pbmcgSlNPTiBlbmNvZGluZwoKQnkgZGVmYXVsdCwgb2dlbiBsb2FkcyB0aGUgZW50aXJlIEpTT04gYm9keSBpbnRvIG1lbW9yeSBiZWZvcmUgZGVjb2RpbmcgaXQuCk9wdGlvbmFsbHksIHN0cmVhbWluZyBKU09OIGVuY29kaW5nIGNhbiBiZSBlbmFibGVkIGJ5IGB4LW9nZW4tanNvbi1zdHJlYW1pbmdgLCBmb3IgZXhhbXBsZToKCmBgYHlhbWwKcmVxdWVzdEJvZHk6CiAgcmVxdWlyZWQ6IHRydWUKICBjb250ZW50OgogICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgeC1vZ2VuLWpzb24tc3RyZWFtaW5nOiB0cnVlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIGl0ZW1zOgogICAgICAgICAgdHlwZTogbnVtYmVyCmBgYAoKIyMjIE9wZXJhdGlvbiBncm91cHMKCk9wdGlvbmFsbHksIG9wZXJhdGlvbnMgY2FuIGJlIGdyb3VwZWQgc28gYSBoYW5kbGVyIGludGVyZmFjZSB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgZWFjaCBncm91cCBvZiBvcGVyYXRpb25zLiAKVGhpcyBpcyB1c2VmdWwgZm9yIG9yZ2FuaXppbmcgb3BlcmF0aW9ucyBmb3IgbGFyZ2UgQVBJcy4KClRoZSBncm91cCBmb3Igb3BlcmF0aW9ucyBvbiBhIHBhdGggb3IgaW5kaXZpZHVhbCBvcGVyYXRpb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgYHgtb2dlbi1vcGVyYXRpb24tZ3JvdXBgLCBmb3IgZXhhbXBsZToKCmBgYHlhbWwKcGF0aHM6CiAgL2ltYWdlczoKICAgIHgtb2dlbi1vcGVyYXRpb24tZ3JvdXA6IEltYWdlcwogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogbGlzdEltYWdlcwogICAgICAuLi4KICAvaW1hZ2VzL3tpbWFnZUlEfToKICAgIHgtb2dlbi1vcGVyYXRpb24tZ3JvdXA6IEltYWdlcwogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogZ2V0SW1hZ2VCeUlECiAgICAgIC4uLgogIC91c2VyczoKICAgIHgtb2dlbi1vcGVyYXRpb24tZ3JvdXA6IFVzZXJzCiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBsaXN0VXNlcnMKICAgICAgLi4uCmBgYAoKVGhlIGdlbmVyYXRlZCBoYW5kbGVyIGludGVyZmFjZXMgbG9vayBsaWtlIHRoaXM6CgpgYGBnbwovLyB4LW9nZW4tb3BlcmF0aW9uLWdyb3VwOiBJbWFnZXMKdHlwZSBJbWFnZXNIYW5kbGVyIGludGVyZmFjZSB7CiAgICBMaXN0SW1hZ2VzKGN0eCBjb250ZXh0LkNvbnRleHQsIHJlcSAqTGlzdEltYWdlc1JlcXVlc3QpICgqTGlzdEltYWdlc1Jlc3BvbnNlLCBlcnJvcikKICAgIEdldEltYWdlQnlJRChjdHggY29udGV4dC5Db250ZXh0LCByZXEgKkdldEltYWdlc0J5SURSZXF1ZXN0KSAoKkdldEltYWdlc0J5SURSZXNwb25zZSwgZXJyb3IpCn0KCi8vIHgtb2dlbi1vcGVyYXRpb24tZ3JvdXA6IFVzZXJzCnR5cGUgVXNlcnNIYW5kbGVyIGludGVyZmFjZSB7CiAgICBMaXN0VXNlcnMoY3R4IGNvbnRleHQuQ29udGV4dCwgcmVxICpMaXN0VXNlcnNSZXF1ZXN0KSAoKkxpc3RVc2Vyc1Jlc3BvbnNlLCBlcnJvcikKfQoKdHlwZSBIYW5kbGVyIGludGVyZmFjZSB7CiAgICBJbWFnZXNIYW5kbGVyCiAgICBVc2Vyc0hhbmRsZXIKICAgIC8vIEFsbCB1bi1ncm91cGVkIG9wZXJhdGlvbnMgd2lsbCBiZSBvbiB0aGlzIGludGVyZmFjZQp9CmBgYAoKIyMgSlNPTgoKQ29kZSBnZW5lcmF0aW9uIHByb3ZpZGVzIHZlcnkgZWZmaWNpZW50IGFuZCBmbGV4aWJsZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YganNvbjoKCmBgYGdvCi8vIERlY29kZSBkZWNvZGVzIEVycm9yIGZyb20ganNvbi4KZnVuYyAocyAqRXJyb3IpIERlY29kZShkICpqeC5EZWNvZGVyKSBlcnJvciB7CglpZiBzID09IG5pbCB7CgkJcmV0dXJuIGVycm9ycy5OZXcoImludmFsaWQ6IHVuYWJsZSB0byBkZWNvZGUgRXJyb3IgdG8gbmlsIikKCX0KCXJldHVybiBkLk9iakJ5dGVzKGZ1bmMoZCAqanguRGVjb2RlciwgayBbXWJ5dGUpIGVycm9yIHsKCQlzd2l0Y2ggc3RyaW5nKGspIHsKCQljYXNlICJjb2RlIjoKCQkJaWYgZXJyIDo9IGZ1bmMoKSBlcnJvciB7CgkJCQl2LCBlcnIgOj0gZC5JbnQ2NCgpCgkJCQlzLkNvZGUgPSBpbnQ2NCh2KQoJCQkJaWYgZXJyICE9IG5pbCB7CgkJCQkJcmV0dXJuIGVycgoJCQkJfQoJCQkJcmV0dXJuIG5pbAoJCQl9KCk7IGVyciAhPSBuaWwgewoJCQkJcmV0dXJuIGVycm9ycy5XcmFwKGVyciwgImRlY29kZSBmaWVsZCBcImNvZGVcIiIpCgkJCX0KCQljYXNlICJtZXNzYWdlIjoKCQkJaWYgZXJyIDo9IGZ1bmMoKSBlcnJvciB7CgkJCQl2LCBlcnIgOj0gZC5TdHIoKQoJCQkJcy5NZXNzYWdlID0gc3RyaW5nKHYpCgkJCQlpZiBlcnIgIT0gbmlsIHsKCQkJCQlyZXR1cm4gZXJyCgkJCQl9CgkJCQlyZXR1cm4gbmlsCgkJCX0oKTsgZXJyICE9IG5pbCB7CgkJCQlyZXR1cm4gZXJyb3JzLldyYXAoZXJyLCAiZGVjb2RlIGZpZWxkIFwibWVzc2FnZVwiIikKCQkJfQoJCWRlZmF1bHQ6CgkJCXJldHVybiBkLlNraXAoKQoJCX0KCQlyZXR1cm4gbmlsCgl9KQp9CmBgYAoKIyBMaW5rcwoKLSBbR2V0dGluZyBzdGFydGVkXShodHRwczovL29nZW4uZGV2L2RvY3MvaW50cm8pCi0gW1NhbXBsZSBwcm9qZWN0XShodHRwczovL2dpdGh1Yi5jb20vb2dlbi1nby9leGFtcGxlKQotIFtTZWN1cml0eSBwb2xpY3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9vZ2VuLWdvL29nZW4vYmxvYi8tL1NFQ1VSSVRZLm1kKQotIFtUZWxlZ3JhbSBjaGF0IGBAb2dlbl9kZXZgXShodHRwczovL3QubWUvb2dlbl9kZXYpCi0gW1JvYWRtYXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9vZ2VuLWdvL29nZW4vYmxvYi8tL1JPQURNQVAubWQpCg== readmeEtag: '"72d6ecc984a8dfbf98db3c15832ea57137cd0979"' readmeLastModified: Wed, 07 Aug 2024 15:20:18 GMT repositoryId: 372032505 description: OpenAPI v3 code generator for go created: '2021-05-29T17:25:48Z' updated: '2024-09-05T16:35:11Z' language: Go archived: false stars: 1285 watchers: 16 forks: 75 owner: ogen-go logo: https://avatars.githubusercontent.com/u/85122432?v=4 license: Apache-2.0 repoEtag: '"ab2af111e1d98636ac8483d3077b36a1cc66696aa9a5a4fc66b98e8f39a0fe91"' repoLastModified: Thu, 05 Sep 2024 16:35:11 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/marshmallow-code/apispec v3: true repositoryMetadata: base64Readme: >- KioqKioqKgphcGlzcGVjCioqKioqKioKCnxweXBpfCB8YnVpbGQtc3RhdHVzfCB8ZG9jc3wgfG1hcnNobWFsbG93M3wgfG9wZW5hcGl8CgouLiB8cHlwaXwgaW1hZ2U6OiBodHRwczovL2JhZGdlbi5uZXQvcHlwaS92L2FwaXNwZWMKICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9hcGlzcGVjLwogICAgOmFsdDogUHlQSSBwYWNrYWdlCgouLiB8YnVpbGQtc3RhdHVzfCBpbWFnZTo6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJzaG1hbGxvdy1jb2RlL2FwaXNwZWMvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQtcmVsZWFzZS55bWwvYmFkZ2Uuc3ZnCiAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vbWFyc2htYWxsb3ctY29kZS93ZWJhcmdzL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLXJlbGVhc2UueW1sCiAgICA6YWx0OiBCdWlsZCBzdGF0dXMKCi4uIHxkb2NzfCBpbWFnZTo6IGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL2FwaXNwZWMvYmFkZ2UvCiAgIDp0YXJnZXQ6IGh0dHBzOi8vYXBpc3BlYy5yZWFkdGhlZG9jcy5pby8KICAgOmFsdDogRG9jdW1lbnRhdGlvbgoKLi4gfG1hcnNobWFsbG93M3wgaW1hZ2U6OiBodHRwczovL2JhZGdlbi5uZXQvYmFkZ2UvbWFyc2htYWxsb3cvMz9saXN0PTEKICAgIDp0YXJnZXQ6IGh0dHBzOi8vbWFyc2htYWxsb3cucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3VwZ3JhZGluZy5odG1sCiAgICA6YWx0OiBtYXJzaG1hbGxvdyAzIG9ubHkKCi4uIHxvcGVuYXBpfCBpbWFnZTo6IGh0dHBzOi8vYmFkZ2VuLm5ldC9iYWRnZS9PQVMvMiwzP2xpc3Q9MSZjb2xvcj1jeWFuCiAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbgogICAgOmFsdDogT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDIvMyBjb21wYXRpYmxlCgoKQSBwbHVnZ2FibGUgQVBJIHNwZWNpZmljYXRpb24gZ2VuZXJhdG9yLiBDdXJyZW50bHkgc3VwcG9ydHMgdGhlIGBPcGVuQVBJIFNwZWNpZmljYXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uPmBfIChmLmsuYS4gdGhlIFN3YWdnZXIgc3BlY2lmaWNhdGlvbikuCgpGZWF0dXJlcwo9PT09PT09PQoKLSBTdXBwb3J0cyB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uICh2ZXJzaW9ucyAyIGFuZCAzKQotIEZyYW1ld29yay1hZ25vc3RpYwotIEJ1aWx0LWluIHN1cHBvcnQgZm9yIGBtYXJzaG1hbGxvdyA8aHR0cHM6Ly9tYXJzaG1hbGxvdy5yZWFkdGhlZG9jcy5pby8+YF8KLSBVdGlsaXRpZXMgZm9yIHBhcnNpbmcgZG9jc3RyaW5ncwoKSW5zdGFsbGF0aW9uCj09PT09PT09PT09PQoKOjoKCiAgICAkIHBpcCBpbnN0YWxsIC1VIGFwaXNwZWMKCldoZW4gdXNpbmcgdGhlIG1hcnNobWFsbG93IHBsdWdpbiwgZW5zdXJlIGEgY29tcGF0aWJsZSBtYXJzaG1hbGxvdyB2ZXJzaW9uIGlzIHVzZWQ6IDo6CgogICAgJCBwaXAgaW5zdGFsbCAtVSBhcGlzcGVjW21hcnNobWFsbG93XQoKRXhhbXBsZSBBcHBsaWNhdGlvbgo9PT09PT09PT09PT09PT09PT09CgouLiBjb2RlLWJsb2NrOjogcHl0aG9uCgogICAgZnJvbSBhcGlzcGVjIGltcG9ydCBBUElTcGVjCiAgICBmcm9tIGFwaXNwZWMuZXh0Lm1hcnNobWFsbG93IGltcG9ydCBNYXJzaG1hbGxvd1BsdWdpbgogICAgZnJvbSBhcGlzcGVjX3dlYmZyYW1ld29ya3MuZmxhc2sgaW1wb3J0IEZsYXNrUGx1Z2luCiAgICBmcm9tIGZsYXNrIGltcG9ydCBGbGFzawogICAgZnJvbSBtYXJzaG1hbGxvdyBpbXBvcnQgU2NoZW1hLCBmaWVsZHMKCgogICAgIyBDcmVhdGUgYW4gQVBJU3BlYwogICAgc3BlYyA9IEFQSVNwZWMoCiAgICAgICAgdGl0bGU9IlN3YWdnZXIgUGV0c3RvcmUiLAogICAgICAgIHZlcnNpb249IjEuMC4wIiwKICAgICAgICBvcGVuYXBpX3ZlcnNpb249IjMuMC4yIiwKICAgICAgICBwbHVnaW5zPVtGbGFza1BsdWdpbigpLCBNYXJzaG1hbGxvd1BsdWdpbigpXSwKICAgICkKCgogICAgIyBPcHRpb25hbCBtYXJzaG1hbGxvdyBzdXBwb3J0CiAgICBjbGFzcyBDYXRlZ29yeVNjaGVtYShTY2hlbWEpOgogICAgICAgIGlkID0gZmllbGRzLkludCgpCiAgICAgICAgbmFtZSA9IGZpZWxkcy5TdHIocmVxdWlyZWQ9VHJ1ZSkKCgogICAgY2xhc3MgUGV0U2NoZW1hKFNjaGVtYSk6CiAgICAgICAgY2F0ZWdvcnkgPSBmaWVsZHMuTGlzdChmaWVsZHMuTmVzdGVkKENhdGVnb3J5U2NoZW1hKSkKICAgICAgICBuYW1lID0gZmllbGRzLlN0cigpCgoKICAgICMgT3B0aW9uYWwgc2VjdXJpdHkgc2NoZW1lIHN1cHBvcnQKICAgIGFwaV9rZXlfc2NoZW1lID0geyJ0eXBlIjogImFwaUtleSIsICJpbiI6ICJoZWFkZXIiLCAibmFtZSI6ICJYLUFQSS1LZXkifQogICAgc3BlYy5jb21wb25lbnRzLnNlY3VyaXR5X3NjaGVtZSgiQXBpS2V5QXV0aCIsIGFwaV9rZXlfc2NoZW1lKQoKCiAgICAjIE9wdGlvbmFsIEZsYXNrIHN1cHBvcnQKICAgIGFwcCA9IEZsYXNrKF9fbmFtZV9fKQoKCiAgICBAYXBwLnJvdXRlKCIvcmFuZG9tIikKICAgIGRlZiByYW5kb21fcGV0KCk6CiAgICAgICAgIiIiQSBjdXRlIGZ1cnJ5IGFuaW1hbCBlbmRwb2ludC4KICAgICAgICAtLS0KICAgICAgICBnZXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogR2V0IGEgcmFuZG9tIHBldAogICAgICAgICAgc2VjdXJpdHk6CiAgICAgICAgICAgIC0gQXBpS2V5QXV0aDogW10KICAgICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgICAgMjAwOgogICAgICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgICAgICBzY2hlbWE6IFBldFNjaGVtYQogICAgICAgICIiIgogICAgICAgIHBldCA9IGdldF9yYW5kb21fcGV0KCkKICAgICAgICByZXR1cm4gUGV0U2NoZW1hKCkuZHVtcChwZXQpCgoKICAgICMgUmVnaXN0ZXIgdGhlIHBhdGggYW5kIHRoZSBlbnRpdGllcyB3aXRoaW4gaXQKICAgIHdpdGggYXBwLnRlc3RfcmVxdWVzdF9jb250ZXh0KCk6CiAgICAgICAgc3BlYy5wYXRoKHZpZXc9cmFuZG9tX3BldCkKCgpHZW5lcmF0ZWQgT3BlbkFQSSBTcGVjCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBpbXBvcnQganNvbgoKICAgIHByaW50KGpzb24uZHVtcHMoc3BlYy50b19kaWN0KCksIGluZGVudD0yKSkKICAgICMgewogICAgIyAgICJwYXRocyI6IHsKICAgICMgICAgICIvcmFuZG9tIjogewogICAgIyAgICAgICAiZ2V0IjogewogICAgIyAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJHZXQgYSByYW5kb20gcGV0IiwKICAgICMgICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAjICAgICAgICAgICB7CiAgICAjICAgICAgICAgICAgICJBcGlLZXlBdXRoIjogW10KICAgICMgICAgICAgICAgIH0KICAgICMgICAgICAgICBdLAogICAgIyAgICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAjICAgICAgICAgICAiMjAwIjogewogICAgIyAgICAgICAgICAgICAiY29udGVudCI6IHsKICAgICMgICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICMgICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAjICAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1BldCIKICAgICMgICAgICAgICAgICAgICAgIH0KICAgICMgICAgICAgICAgICAgICB9CiAgICAjICAgICAgICAgICAgIH0KICAgICMgICAgICAgICAgIH0KICAgICMgICAgICAgICB9CiAgICAjICAgICAgIH0KICAgICMgICAgIH0KICAgICMgICB9LAogICAgIyAgICJ0YWdzIjogW10sCiAgICAjICAgImluZm8iOiB7CiAgICAjICAgICAidGl0bGUiOiAiU3dhZ2dlciBQZXRzdG9yZSIsCiAgICAjICAgICAidmVyc2lvbiI6ICIxLjAuMCIKICAgICMgICB9LAogICAgIyAgICJvcGVuYXBpIjogIjMuMC4yIiwKICAgICMgICAiY29tcG9uZW50cyI6IHsKICAgICMgICAgICJwYXJhbWV0ZXJzIjoge30sCiAgICAjICAgICAicmVzcG9uc2VzIjoge30sCiAgICAjICAgICAic2NoZW1hcyI6IHsKICAgICMgICAgICAgIkNhdGVnb3J5IjogewogICAgIyAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAjICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAjICAgICAgICAgICAibmFtZSI6IHsKICAgICMgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgIyAgICAgICAgICAgfSwKICAgICMgICAgICAgICAgICJpZCI6IHsKICAgICMgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAjICAgICAgICAgICAgICJmb3JtYXQiOiAiaW50MzIiCiAgICAjICAgICAgICAgICB9CiAgICAjICAgICAgICAgfSwKICAgICMgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAjICAgICAgICAgICAibmFtZSIKICAgICMgICAgICAgICBdCiAgICAjICAgICAgIH0sCiAgICAjICAgICAgICJQZXQiOiB7CiAgICAjICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICMgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICMgICAgICAgICAgICJuYW1lIjogewogICAgIyAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAjICAgICAgICAgICB9LAogICAgIyAgICAgICAgICAgImNhdGVnb3J5IjogewogICAgIyAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAjICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICMgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9DYXRlZ29yeSIKICAgICMgICAgICAgICAgICAgfQogICAgIyAgICAgICAgICAgfQogICAgIyAgICAgICAgIH0KICAgICMgICAgICAgfQogICAgIyAgICAgICAic2VjdXJpdHlTY2hlbWVzIjogewogICAgIyAgICAgICAgICAiQXBpS2V5QXV0aCI6IHsKICAgICMgICAgICAgICAgICAidHlwZSI6ICJhcGlLZXkiLAogICAgIyAgICAgICAgICAgICJpbiI6ICJoZWFkZXIiLAogICAgIyAgICAgICAgICAgICJuYW1lIjogIlgtQVBJLUtleSIKICAgICMgICAgICAgICB9CiAgICAjICAgICAgIH0KICAgICMgICAgIH0KICAgICMgICB9CiAgICAjIH0KCiAgICBwcmludChzcGVjLnRvX3lhbWwoKSkKICAgICMgY29tcG9uZW50czoKICAgICMgICBwYXJhbWV0ZXJzOiB7fQogICAgIyAgIHJlc3BvbnNlczoge30KICAgICMgICBzY2hlbWFzOgogICAgIyAgICAgQ2F0ZWdvcnk6CiAgICAjICAgICAgIHByb3BlcnRpZXM6CiAgICAjICAgICAgICAgaWQ6IHtmb3JtYXQ6IGludDMyLCB0eXBlOiBpbnRlZ2VyfQogICAgIyAgICAgICAgIG5hbWU6IHt0eXBlOiBzdHJpbmd9CiAgICAjICAgICAgIHJlcXVpcmVkOiBbbmFtZV0KICAgICMgICAgICAgdHlwZTogb2JqZWN0CiAgICAjICAgICBQZXQ6CiAgICAjICAgICAgIHByb3BlcnRpZXM6CiAgICAjICAgICAgICAgY2F0ZWdvcnk6CiAgICAjICAgICAgICAgICBpdGVtczogeyRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DYXRlZ29yeSd9CiAgICAjICAgICAgICAgICB0eXBlOiBhcnJheQogICAgIyAgICAgICAgIG5hbWU6IHt0eXBlOiBzdHJpbmd9CiAgICAjICAgICAgIHR5cGU6IG9iamVjdAogICAgIyAgIHNlY3VyaXR5U2NoZW1lczoKICAgICMgICAgIEFwaUtleUF1dGg6CiAgICAjICAgICAgIGluOiBoZWFkZXIKICAgICMgICAgICAgbmFtZTogWC1BUEktS0VZCiAgICAjICAgICAgIHR5cGU6IGFwaUtleQogICAgIyBpbmZvOiB7dGl0bGU6IFN3YWdnZXIgUGV0c3RvcmUsIHZlcnNpb246IDEuMC4wfQogICAgIyBvcGVuYXBpOiAzLjAuMgogICAgIyBwYXRoczoKICAgICMgICAvcmFuZG9tOgogICAgIyAgICAgZ2V0OgogICAgIyAgICAgICBkZXNjcmlwdGlvbjogR2V0IGEgcmFuZG9tIHBldAogICAgIyAgICAgICByZXNwb25zZXM6CiAgICAjICAgICAgICAgMjAwOgogICAgIyAgICAgICAgICAgY29udGVudDoKICAgICMgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICMgICAgICAgICAgICAgICBzY2hlbWE6IHskcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0J30KICAgICMgICAgICAgc2VjdXJpdHk6CiAgICAjICAgICAgIC0gQXBpS2V5QXV0aDogW10KICAgICMgdGFnczogW10KCgpEb2N1bWVudGF0aW9uCj09PT09PT09PT09PT0KCkRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vYXBpc3BlYy5yZWFkdGhlZG9jcy5pby8gLgoKRWNvc3lzdGVtCj09PT09PT09PQoKQSBsaXN0IG9mIGFwaXNwZWMtcmVsYXRlZCBsaWJyYXJpZXMgY2FuIGJlIGZvdW5kIGF0IHRoZSBHaXRIdWIgd2lraSBoZXJlOgoKaHR0cHM6Ly9naXRodWIuY29tL21hcnNobWFsbG93LWNvZGUvYXBpc3BlYy93aWtpL0Vjb3N5c3RlbQoKU3VwcG9ydCBhcGlzcGVjCj09PT09PT09PT09PT09PQoKYXBpc3BlYyBpcyBtYWludGFpbmVkIGJ5IGEgZ3JvdXAgb2YKYHZvbHVudGVlcnMgPGh0dHBzOi8vYXBpc3BlYy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvYXV0aG9ycy5odG1sPmBfLgpJZiB5b3UnZCBsaWtlIHRvIHN1cHBvcnQgdGhlIGZ1dHVyZSBvZiB0aGUgcHJvamVjdCwgcGxlYXNlIGNvbnNpZGVyCmNvbnRyaWJ1dGluZyB0byBvdXIgT3BlbiBDb2xsZWN0aXZlOgoKLi4gaW1hZ2U6OiBodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9tYXJzaG1hbGxvdy9kb25hdGUvYnV0dG9uLnBuZwogICAgOnRhcmdldDogaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vbWFyc2htYWxsb3cKICAgIDp3aWR0aDogMjAwCiAgICA6YWx0OiBEb25hdGUgdG8gb3VyIGNvbGxlY3RpdmUKClByb2Zlc3Npb25hbCBTdXBwb3J0Cj09PT09PT09PT09PT09PT09PT09CgpQcm9mZXNzaW9uYWxseS1zdXBwb3J0ZWQgYXBpc3BlYyBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUKYFRpZGVsaWZ0IFN1YnNjcmlwdGlvbiA8aHR0cHM6Ly90aWRlbGlmdC5jb20vc3Vic2NyaXB0aW9uL3BrZy9weXBpLWFwaXNwZWM/dXRtX3NvdXJjZT1weXBpLWFwaXNwZWMmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249cmVhZG1lPmBfLgoKVGlkZWxpZnQgZ2l2ZXMgc29mdHdhcmUgZGV2ZWxvcG1lbnQgdGVhbXMgYSBzaW5nbGUgc291cmNlIGZvciBwdXJjaGFzaW5nIGFuZCBtYWludGFpbmluZyB0aGVpciBzb2Z0d2FyZSwKd2l0aCBwcm9mZXNzaW9uYWwtZ3JhZGUgYXNzdXJhbmNlcyBmcm9tIHRoZSBleHBlcnRzIHdobyBrbm93IGl0IGJlc3QsCndoaWxlIHNlYW1sZXNzbHkgaW50ZWdyYXRpbmcgd2l0aCBleGlzdGluZyB0b29scy4gW2BHZXQgcHJvZmVzc2lvbmFsIHN1cHBvcnRgX10KCi4uIF9gR2V0IHByb2Zlc3Npb25hbCBzdXBwb3J0YDogaHR0cHM6Ly90aWRlbGlmdC5jb20vc3Vic2NyaXB0aW9uL3BrZy9weXBpLWFwaXNwZWM/dXRtX3NvdXJjZT1weXBpLWFwaXNwZWMmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249cmVhZG1lCgouLiBpbWFnZTo6IGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzIzNzk2NTAvNDUxMjYwMzItNTBiNjk4ODAtYjEzZi0xMWU4LTljMmMtYWJkMTZjNDMzNDk1LnBuZwogICAgOnRhcmdldDogaHR0cHM6Ly90aWRlbGlmdC5jb20vc3Vic2NyaXB0aW9uL3BrZy9weXBpLWFwaXNwZWM/dXRtX3NvdXJjZT1weXBpLWFwaXNwZWMmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249cmVhZG1lCiAgICA6YWx0OiBHZXQgc3VwcG9ydGVkIGFwaXNwZWMgd2l0aCBUaWRlbGlmdAoKU2VjdXJpdHkgQ29udGFjdCBJbmZvcm1hdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpUbyByZXBvcnQgYSBzZWN1cml0eSB2dWxuZXJhYmlsaXR5LCBwbGVhc2UgdXNlIHRoZQpgVGlkZWxpZnQgc2VjdXJpdHkgY29udGFjdCA8aHR0cHM6Ly90aWRlbGlmdC5jb20vc2VjdXJpdHk+YF8uClRpZGVsaWZ0IHdpbGwgY29vcmRpbmF0ZSB0aGUgZml4IGFuZCBkaXNjbG9zdXJlLgoKUHJvamVjdCBMaW5rcwo9PT09PT09PT09PT09CgotIERvY3M6IGh0dHBzOi8vYXBpc3BlYy5yZWFkdGhlZG9jcy5pby8KLSBDaGFuZ2Vsb2c6IGh0dHBzOi8vYXBpc3BlYy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwKLSBDb250cmlidXRpbmcgR3VpZGVsaW5lczogaHR0cHM6Ly9hcGlzcGVjLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9jb250cmlidXRpbmcuaHRtbAotIFB5UEk6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvYXBpc3BlYwotIElzc3VlczogaHR0cHM6Ly9naXRodWIuY29tL21hcnNobWFsbG93LWNvZGUvYXBpc3BlYy9pc3N1ZXMKCgpMaWNlbnNlCj09PT09PT0KCk1JVCBsaWNlbnNlZC4gU2VlIHRoZSBidW5kbGVkIGBMSUNFTlNFIDxodHRwczovL2dpdGh1Yi5jb20vbWFyc2htYWxsb3ctY29kZS9hcGlzcGVjL2Jsb2IvZGV2L0xJQ0VOU0U+YF8gZmlsZSBmb3IgbW9yZSBkZXRhaWxzLgo= readmeEtag: '"64f964f2b5f4fd1292aacac7e1906925c01db9c6"' readmeLastModified: Mon, 12 Aug 2024 21:48:21 GMT repositoryId: 25413181 description: >- A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification).. created: '2014-10-18T23:48:49Z' updated: '2024-09-05T20:01:21Z' language: Python archived: false stars: 1167 watchers: 24 forks: 175 owner: marshmallow-code logo: https://avatars.githubusercontent.com/u/10334301?v=4 license: MIT repoEtag: '"f12f7db66dc3e9ed3c8bcdb2006b900ce885c75a64e484bf41887e65eccfe20c"' repoLastModified: Thu, 05 Sep 2024 20:01:21 GMT foundInMaster: true category: Parsers id: c1528764f05dd585ca47886dd6dabb86 - source: openapi3 tags repository: https://github.com/apiflask/apiflask v3: true id: 2c668cdfc766c1f598c7c7d845b9120c repositoryMetadata: base64Readme: >- CiFbXShodHRwczovL2FwaWZsYXNrLmNvbS9fYXNzZXRzL2FwaWZsYXNrLWxvZ28ucG5nKQoKIyBBUElGbGFzawoKWyFbQnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vYXBpZmxhc2svYXBpZmxhc2svYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzay9hY3Rpb25zKSBbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvYXBpZmxhc2svYXBpZmxhc2svYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPTJDRlBDWjFETVkpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvYXBpZmxhc2svYXBpZmxhc2spCgpBUElGbGFzayBpcyBhIGxpZ2h0d2VpZ2h0IFB5dGhvbiB3ZWIgQVBJIGZyYW1ld29yayBiYXNlZCBvbiBbRmxhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxsZXRzL2ZsYXNrKSBhbmQgW21hcnNobWFsbG93LWNvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJzaG1hbGxvdy1jb2RlKSBwcm9qZWN0cy4gSXQncyBlYXN5IHRvIHVzZSwgaGlnaGx5IGN1c3RvbWl6YWJsZSwgT1JNL09ETS1hZ25vc3RpYywgYW5kIDEwMCUgY29tcGF0aWJsZSB3aXRoIHRoZSBGbGFzayBlY29zeXN0ZW0uCgpXaXRoIEFQSUZsYXNrLCB5b3Ugd2lsbCBoYXZlOgoKLSBNb3JlIHN1Z2FycyBmb3IgdmlldyBmdW5jdGlvbiAoYEBhcHAuaW5wdXQoKWAsIGBAYXBwLm91dHB1dCgpYCwgYEBhcHAuZ2V0KClgLCBgQGFwcC5wb3N0KClgIGFuZCBtb3JlKQotIEF1dG9tYXRpYyByZXF1ZXN0IHZhbGlkYXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbgotIEF1dG9tYXRpYyByZXNwb25zZSBmb3JtYXR0aW5nIGFuZCBzZXJpYWxpemF0aW9uCi0gQXV0b21hdGljIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoT0FTLCBmb3JtZXJseSBTd2FnZ2VyIFNwZWNpZmljYXRpb24pIGRvY3VtZW50IGdlbmVyYXRpb24KLSBBdXRvbWF0aWMgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24KLSBBUEkgYXV0aGVudGljYXRpb24gc3VwcG9ydCAod2l0aCBbRmxhc2stSFRUUEF1dGhdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWd1ZWxncmluYmVyZy9mbGFzay1odHRwYXV0aCkpCi0gQXV0b21hdGljIEpTT04gcmVzcG9uc2UgZm9yIEhUVFAgZXJyb3JzCgoKIyMgUmVxdWlyZW1lbnRzCgotIFB5dGhvbiAzLjgrCi0gRmxhc2sgMi4wKwoKCiMjIEluc3RhbGxhdGlvbgoKRm9yIExpbnV4IGFuZCBtYWNPUzoKCmBgYGJhc2gKJCBwaXAzIGluc3RhbGwgYXBpZmxhc2sKYGBgCgpGb3IgV2luZG93czoKCmBgYGJhc2gKPiBwaXAgaW5zdGFsbCBhcGlmbGFzawpgYGAKCgojIyBMaW5rcwoKLSBXZWJzaXRlOiA8aHR0cHM6Ly9hcGlmbGFzay5jb20+Ci0gRG9jdW1lbnRhdGlvbjogPGh0dHBzOi8vYXBpZmxhc2suY29tL2RvY3M+Ci0gUHlQSSBSZWxlYXNlczogPGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvQVBJRmxhc2s+Ci0gQ2hhbmdlIExvZzogPGh0dHBzOi8vYXBpZmxhc2suY29tL2NoYW5nZWxvZz4KLSBTb3VyY2UgQ29kZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzaz4KLSBJc3N1ZSBUcmFja2VyOiA8aHR0cHM6Ly9naXRodWIuY29tL2FwaWZsYXNrL2FwaWZsYXNrL2lzc3Vlcz4KLSBEaXNjdXNzaW9uOiA8aHR0cHM6Ly9naXRodWIuY29tL2FwaWZsYXNrL2FwaWZsYXNrL2Rpc2N1c3Npb25zPgotIFR3aXR0ZXI6IDxodHRwczovL3R3aXR0ZXIuY29tL2FwaWZsYXNrPgotIE9wZW4gQ29sbGVjdGl2ZTogPGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2FwaWZsYXNrPgoKCiMjIERvbmF0ZQoKSWYgeW91IGZpbmQgQVBJRmxhc2sgdXNlZnVsLCBwbGVhc2UgY29uc2lkZXIgW2RvbmF0aW5nXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9hcGlmbGFzaykgdG9kYXkuIFlvdXIgZG9uYXRpb24ga2VlcHMgQVBJRmxhc2sgbWFpbnRhaW5lZCBhbmQgZXZvbHZpbmcuCgpUaGFuayB5b3UgdG8gYWxsIG91ciBiYWNrZXJzIGFuZCBzcG9uc29ycyEKCiMjIyBCYWNrZXJzCgpbIVtdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2FwaWZsYXNrL2JhY2tlcnMuc3ZnP3dpZHRoPTg5MCldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2FwaWZsYXNrKQoKIyMjIFNwb25zb3JzCgpbIVtdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2FwaWZsYXNrL3Nwb25zb3JzLnN2Zz93aWR0aD04OTApXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9hcGlmbGFzaykKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGFwaWZsYXNrIGltcG9ydCBBUElGbGFzaywgU2NoZW1hLCBhYm9ydApmcm9tIGFwaWZsYXNrLmZpZWxkcyBpbXBvcnQgSW50ZWdlciwgU3RyaW5nCmZyb20gYXBpZmxhc2sudmFsaWRhdG9ycyBpbXBvcnQgTGVuZ3RoLCBPbmVPZgoKYXBwID0gQVBJRmxhc2soX19uYW1lX18pCgpwZXRzID0gWwogICAgeydpZCc6IDAsICduYW1lJzogJ0tpdHR5JywgJ2NhdGVnb3J5JzogJ2NhdCd9LAogICAgeydpZCc6IDEsICduYW1lJzogJ0NvY28nLCAnY2F0ZWdvcnknOiAnZG9nJ30KXQoKCmNsYXNzIFBldEluKFNjaGVtYSk6CiAgICBuYW1lID0gU3RyaW5nKHJlcXVpcmVkPVRydWUsIHZhbGlkYXRlPUxlbmd0aCgwLCAxMCkpCiAgICBjYXRlZ29yeSA9IFN0cmluZyhyZXF1aXJlZD1UcnVlLCB2YWxpZGF0ZT1PbmVPZihbJ2RvZycsICdjYXQnXSkpCgoKY2xhc3MgUGV0T3V0KFNjaGVtYSk6CiAgICBpZCA9IEludGVnZXIoKQogICAgbmFtZSA9IFN0cmluZygpCiAgICBjYXRlZ29yeSA9IFN0cmluZygpCgoKQGFwcC5nZXQoJy8nKQpkZWYgc2F5X2hlbGxvKCk6CiAgICAjIHJldHVybmluZyBhIGRpY3Qgb3IgbGlzdCBlcXVhbHMgdG8gdXNlIGpzb25pZnkoKQogICAgcmV0dXJuIHsnbWVzc2FnZSc6ICdIZWxsbyEnfQoKCkBhcHAuZ2V0KCcvcGV0cy88aW50OnBldF9pZD4nKQpAYXBwLm91dHB1dChQZXRPdXQpCmRlZiBnZXRfcGV0KHBldF9pZCk6CiAgICBpZiBwZXRfaWQgPiBsZW4ocGV0cykgLSAxOgogICAgICAgIGFib3J0KDQwNCkKICAgICMgeW91IGNhbiBhbHNvIHJldHVybiBhbiBPUk0vT0RNIG1vZGVsIGNsYXNzIGluc3RhbmNlIGRpcmVjdGx5CiAgICAjIEFQSUZsYXNrIHdpbGwgc2VyaWFsaXplIHRoZSBvYmplY3QgaW50byBKU09OIGZvcm1hdAogICAgcmV0dXJuIHBldHNbcGV0X2lkXQoKCkBhcHAucGF0Y2goJy9wZXRzLzxpbnQ6cGV0X2lkPicpCkBhcHAuaW5wdXQoUGV0SW4ocGFydGlhbD1UcnVlKSkgICMgLT4ganNvbl9kYXRhCkBhcHAub3V0cHV0KFBldE91dCkKZGVmIHVwZGF0ZV9wZXQocGV0X2lkLCBqc29uX2RhdGEpOgogICAgIyB0aGUgdmFsaWRhdGVkIGFuZCBwYXJzZWQgaW5wdXQgZGF0YSB3aWxsCiAgICAjIGJlIGluamVjdGVkIGludG8gdGhlIHZpZXcgZnVuY3Rpb24gYXMgYSBkaWN0CiAgICBpZiBwZXRfaWQgPiBsZW4ocGV0cykgLSAxOgogICAgICAgIGFib3J0KDQwNCkKICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBqc29uX2RhdGEuaXRlbXMoKToKICAgICAgICBwZXRzW3BldF9pZF1bYXR0cl0gPSB2YWx1ZQogICAgcmV0dXJuIHBldHNbcGV0X2lkXQpgYGAKCjxkZXRhaWxzPgo8c3VtbWFyeT5Zb3UgY2FuIGFsc28gdXNlIGNsYXNzLWJhc2VkIHZpZXdzIGJhc2VkIG9uIDxjb2RlPk1ldGhvZFZpZXc8L2NvZGU+PC9zdW1tYXJ5PgoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IEFQSUZsYXNrLCBTY2hlbWEsIGFib3J0CmZyb20gYXBpZmxhc2suZmllbGRzIGltcG9ydCBJbnRlZ2VyLCBTdHJpbmcKZnJvbSBhcGlmbGFzay52YWxpZGF0b3JzIGltcG9ydCBMZW5ndGgsIE9uZU9mCmZyb20gZmxhc2sudmlld3MgaW1wb3J0IE1ldGhvZFZpZXcKCmFwcCA9IEFQSUZsYXNrKF9fbmFtZV9fKQoKcGV0cyA9IFsKICAgIHsnaWQnOiAwLCAnbmFtZSc6ICdLaXR0eScsICdjYXRlZ29yeSc6ICdjYXQnfSwKICAgIHsnaWQnOiAxLCAnbmFtZSc6ICdDb2NvJywgJ2NhdGVnb3J5JzogJ2RvZyd9Cl0KCgpjbGFzcyBQZXRJbihTY2hlbWEpOgogICAgbmFtZSA9IFN0cmluZyhyZXF1aXJlZD1UcnVlLCB2YWxpZGF0ZT1MZW5ndGgoMCwgMTApKQogICAgY2F0ZWdvcnkgPSBTdHJpbmcocmVxdWlyZWQ9VHJ1ZSwgdmFsaWRhdGU9T25lT2YoWydkb2cnLCAnY2F0J10pKQoKCmNsYXNzIFBldE91dChTY2hlbWEpOgogICAgaWQgPSBJbnRlZ2VyKCkKICAgIG5hbWUgPSBTdHJpbmcoKQogICAgY2F0ZWdvcnkgPSBTdHJpbmcoKQoKCmNsYXNzIEhlbGxvKE1ldGhvZFZpZXcpOgoKICAgICMgdXNlIEhUVFAgbWV0aG9kIG5hbWUgYXMgY2xhc3MgbWV0aG9kIG5hbWUKICAgIGRlZiBnZXQoc2VsZik6CiAgICAgICAgcmV0dXJuIHsnbWVzc2FnZSc6ICdIZWxsbyEnfQoKCmNsYXNzIFBldChNZXRob2RWaWV3KToKCiAgICBAYXBwLm91dHB1dChQZXRPdXQpCiAgICBkZWYgZ2V0KHNlbGYsIHBldF9pZCk6CiAgICAgICAgIiIiR2V0IGEgcGV0IiIiCiAgICAgICAgaWYgcGV0X2lkID4gbGVuKHBldHMpIC0gMToKICAgICAgICAgICAgYWJvcnQoNDA0KQogICAgICAgIHJldHVybiBwZXRzW3BldF9pZF0KCiAgICBAYXBwLmlucHV0KFBldEluKHBhcnRpYWw9VHJ1ZSkpCiAgICBAYXBwLm91dHB1dChQZXRPdXQpCiAgICBkZWYgcGF0Y2goc2VsZiwgcGV0X2lkLCBqc29uX2RhdGEpOgogICAgICAgICIiIlVwZGF0ZSBhIHBldCIiIgogICAgICAgIGlmIHBldF9pZCA+IGxlbihwZXRzKSAtIDE6CiAgICAgICAgICAgIGFib3J0KDQwNCkKICAgICAgICBmb3IgYXR0ciwgdmFsdWUgaW4ganNvbl9kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgIHBldHNbcGV0X2lkXVthdHRyXSA9IHZhbHVlCiAgICAgICAgcmV0dXJuIHBldHNbcGV0X2lkXQoKCmFwcC5hZGRfdXJsX3J1bGUoJy8nLCB2aWV3X2Z1bmM9SGVsbG8uYXNfdmlldygnaGVsbG8nKSkKYXBwLmFkZF91cmxfcnVsZSgnL3BldHMvPGludDpwZXRfaWQ+Jywgdmlld19mdW5jPVBldC5hc192aWV3KCdwZXQnKSkKYGBgCjwvZGV0YWlscz4KCjxkZXRhaWxzPgo8c3VtbWFyeT5PciB1c2UgPGNvZGU+YXN5bmMgZGVmPC9jb2RlPjwvc3VtbWFyeT4KCmBgYGJhc2gKJCBwaXAgaW5zdGFsbCAtVSAiYXBpZmxhc2tbYXN5bmNdIgpgYGAKCmBgYHB5dGhvbgppbXBvcnQgYXN5bmNpbwoKZnJvbSBhcGlmbGFzayBpbXBvcnQgQVBJRmxhc2sKCmFwcCA9IEFQSUZsYXNrKF9fbmFtZV9fKQoKCkBhcHAuZ2V0KCcvJykKYXN5bmMgZGVmIHNheV9oZWxsbygpOgogICAgYXdhaXQgYXN5bmNpby5zbGVlcCgxKQogICAgcmV0dXJuIHsnbWVzc2FnZSc6ICdIZWxsbyEnfQpgYGAKClNlZSA8ZW0+PGEgaHJlZj0iaHR0cHM6Ly9mbGFzay5wYWxsZXRzcHJvamVjdHMuY29tL2FzeW5jLWF3YWl0Ij5Vc2luZyBhc3luYyBhbmQgYXdhaXQ8L2E+PC9lbT4gZm9yIHRoZSBkZXRhaWxzIG9mIHRoZSBhc3luYyBzdXBwb3J0IGluIEZsYXNrIDIuMC4KCjwvZGV0YWlscz4KClNhdmUgdGhpcyBhcyBgYXBwLnB5YCwgdGhlbiBydW4gaXQgd2l0aDoKCmBgYGJhc2gKJCBmbGFzayBydW4gLS1yZWxvYWQKYGBgCgpPciBydW4gaW4gZGVidWcgbW9kZToKCmBgYGJhc2gKJCBmbGFzayBydW4gLS1kZWJ1ZwpgYGAKCk5vdyB2aXNpdCB0aGUgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24gKFN3YWdnZXIgVUkpIGF0IDxodHRwOi8vbG9jYWxob3N0OjUwMDAvZG9jcz46CgohW10oaHR0cHM6Ly9hcGlmbGFzay5jb20vX2Fzc2V0cy9zd2FnZ2VyLXVpLnBuZykKCk9yIHlvdSBjYW4gY2hhbmdlIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBVSSB3aGVuIGNyZWF0aW5nIHRoZSBBUElGbGFzayBpbnN0YW5jZSB3aXRoIHRoZSBgZG9jc191aWAgcGFyYW1ldGVyOgoKYGBgcHkKYXBwID0gQVBJRmxhc2soX19uYW1lX18sIGRvY3NfdWk9J3JlZG9jJykKYGBgCgpOb3cgPGh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC9kb2NzPiB3aWxsIHJlbmRlciB0aGUgQVBJIGRvY3VtZW50YXRpb24gd2l0aCBSZWRvYy4KClN1cHBvcnRlZCBgZG9jc191aWAgdmFsdWVzIChVSSBsaWJyYXJpZXMpIGluY2x1ZGU6CgotIGBzd2FnZ2VyLXVpYCAoZGVmYXVsdCB2YWx1ZSk6IFtTd2FnZ2VyIFVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkKLSBgcmVkb2NgOiBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKQotIGBlbGVtZW50c2A6IFtFbGVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL2VsZW1lbnRzKQotIGByYXBpZG9jYDogW1JhcGlEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9yYXBpLWRvYy9SYXBpRG9jKQotIGByYXBpcGRmYDogW1JhcGlQREZdKGh0dHBzOi8vZ2l0aHViLmNvbS9tcmluOS9SYXBpUGRmKQoKVGhlIGF1dG8tZ2VuZXJhdGVkIE9wZW5BUEkgc3BlYyBmaWxlIGlzIGF2YWlsYWJsZSBhdCA8aHR0cDovL2xvY2FsaG9zdDo1MDAwL29wZW5hcGkuanNvbj4uIFlvdSBjYW4gYWxzbyBnZXQgdGhlIHNwZWMgd2l0aCBbdGhlIGBmbGFzayBzcGVjYCBjb21tYW5kXShodHRwczovL2FwaWZsYXNrLmNvbS9vcGVuYXBpLyN0aGUtZmxhc2stc3BlYy1jb21tYW5kKToKCmBgYGJhc2gKJCBmbGFzayBzcGVjCmBgYAoKRm9yIHNvbWUgY29tcGxldGUgZXhhbXBsZXMsIHNlZSBbL2V4YW1wbGVzXShodHRwczovL2dpdGh1Yi5jb20vYXBpZmxhc2svYXBpZmxhc2svdHJlZS9tYWluL2V4YW1wbGVzKS4KCgojIyBSZWxhdGlvbnNoaXAgd2l0aCBGbGFzawoKQVBJRmxhc2sgaXMgYSB0aGluIHdyYXBwZXIgb24gdG9wIG9mIEZsYXNrLiBZb3Ugb25seSBuZWVkIHRvIHJlbWVtYmVyIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgKHNlZSAqW01pZ3JhdGluZyBmcm9tIEZsYXNrXShodHRwczovL2FwaWZsYXNrLmNvbS9taWdyYXRpb25zL2ZsYXNrLykqIGZvciBtb3JlIGRldGFpbHMpOgoKLSBXaGVuIGNyZWF0aW5nIGFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLCB1c2UgYEFQSUZsYXNrYCBpbnN0ZWFkIG9mIGBGbGFza2AuCi0gV2hlbiBjcmVhdGluZyBhIGJsdWVwcmludCBpbnN0YW5jZSwgdXNlIGBBUElCbHVlcHJpbnRgIGluc3RlYWQgb2YgYEJsdWVwcmludGAuCi0gVGhlIGBhYm9ydCgpYCBmdW5jdGlvbiBmcm9tIEFQSUZsYXNrIChgYXBpZmxhc2suYWJvcnRgKSByZXR1cm5zIEpTT04gZXJyb3IgcmVzcG9uc2UuCgpGb3IgYSBtaW5pbWFsIEZsYXNrIGFwcGxpY2F0aW9uOgoKYGBgcHl0aG9uCmZyb20gZmxhc2sgaW1wb3J0IEZsYXNrLCByZXF1ZXN0CmZyb20gbWFya3Vwc2FmZSBpbXBvcnQgZXNjYXBlCgphcHAgPSBGbGFzayhfX25hbWVfXykKCkBhcHAucm91dGUoJy8nKQpkZWYgaGVsbG8oKToKICAgIG5hbWUgPSByZXF1ZXN0LmFyZ3MuZ2V0KCduYW1lJywgJ0h1bWFuJykKICAgIHJldHVybiBmJ0hlbGxvLCB7ZXNjYXBlKG5hbWUpfScKYGBgCgpOb3cgY2hhbmdlIHRvIEFQSUZsYXNrOgoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IEFQSUZsYXNrICAjIHN0ZXAgb25lCmZyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QKZnJvbSBtYXJrdXBzYWZlIGltcG9ydCBlc2NhcGUKCmFwcCA9IEFQSUZsYXNrKF9fbmFtZV9fKSAgIyBzdGVwIHR3bwoKQGFwcC5yb3V0ZSgnLycpCmRlZiBoZWxsbygpOgogICAgbmFtZSA9IHJlcXVlc3QuYXJncy5nZXQoJ25hbWUnLCAnSHVtYW4nKQogICAgcmV0dXJuIGYnSGVsbG8sIHtlc2NhcGUobmFtZSl9JwpgYGAKCkluIGEgd29yZCwgdG8gbWFrZSBXZWIgQVBJIGRldmVsb3BtZW50IGluIEZsYXNrIG1vcmUgZWFzaWx5LCBBUElGbGFzayBwcm92aWRlcyBgQVBJRmxhc2tgIGFuZCBgQVBJQmx1ZXByaW50YCB0byBleHRlbmQgRmxhc2sncyBgRmxhc2tgIGFuZCBgQmx1ZXByaW50YCBvYmplY3RzIGFuZCBpdCBhbHNvIHNoaXBzIHdpdGggc29tZSBoZWxwZnVsIHV0aWxpdGllcy4gT3RoZXIgdGhhbiB0aGF0LCB5b3UgYXJlIGFjdHVhbGx5IHVzaW5nIEZsYXNrLgoKCiMjIFJlbGF0aW9uc2hpcCB3aXRoIG1hcnNobWFsbG93CgpBUElGbGFzayBhY2NlcHRzIG1hcnNobWFsbG93IHNjaGVtYSBhcyBkYXRhIHNjaGVtYSwgdXNlcyB3ZWJhcmdzIHRvIHZhbGlkYXRlIHRoZSByZXF1ZXN0IGRhdGEgYWdhaW5zdCB0aGUgc2NoZW1hLCBhbmQgdXNlcyBhcGlzcGVjIHRvIGdlbmVyYXRlIHRoZSBPcGVuQVBJIHJlcHJlc2VudGF0aW9uIGZyb20gdGhlIHNjaGVtYS4KCllvdSBjYW4gYnVpbGQgbWFyc2htYWxsb3cgc2NoZW1hcyBqdXN0IGxpa2UgYmVmb3JlLCBidXQgQVBJRmxhc2sgYWxzbyBleHBvc2VzIHNvbWUgbWFyc2htYWxsb3cgQVBJcyBmb3IgY29udmVuaWVuY2U6CgotIGBhcGlmbGFzay5TY2hlbWFgOiBUaGUgYmFzZSBtYXJzaG1hbGxvdyBzY2hlbWEgY2xhc3MuCi0gYGFwaWZsYXNrLmZpZWxkc2A6IFRoZSBtYXJzaG1hbGxvdyBmaWVsZHMsIGNvbnRhaW4gdGhlIGZpZWxkcyBmcm9tIGJvdGggbWFyc2htYWxsb3cgYW5kIEZsYXNrLU1hcnNobWFsbG93LiBCZXdhcmUgdGhhdCB0aGUgYWxpYXNlcyAoYFVybGAsIGBTdHJgLCBgSW50YCwgYEJvb2xgLCBldGMuKSB3ZXJlIHJlbW92ZWQuCi0gYGFwaWZsYXNrLnZhbGlkYXRvcnNgOiBUaGUgbWFyc2htYWxsb3cgdmFsaWRhdG9ycy4KCmBgYHB5dGhvbgpmcm9tIGFwaWZsYXNrIGltcG9ydCBTY2hlbWEKZnJvbSBhcGlmbGFzay5maWVsZHMgaW1wb3J0IEludGVnZXIsIFN0cmluZwpmcm9tIGFwaWZsYXNrLnZhbGlkYXRvcnMgaW1wb3J0IExlbmd0aCwgT25lT2YKZnJvbSBtYXJzaG1hbGxvdyBpbXBvcnQgcHJlX2xvYWQsIHBvc3RfZHVtcCwgVmFsaWRhdGlvbkVycm9yCmBgYAoKIyMgQ3JlZGl0cwoKQVBJRmxhc2sgc3RhcnRzIGFzIGEgZm9yayBvZiBbQVBJRmFpcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWd1ZWxncmluYmVyZy9BUElGYWlyeSkgYW5kIGlzIGluc3BpcmVkIGJ5IFtmbGFzay1zbW9yZXN0XShodHRwczovL2dpdGh1Yi5jb20vbWFyc2htYWxsb3ctY29kZS9mbGFzay1zbW9yZXN0KSBhbmQgW0Zhc3RBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby9mYXN0YXBpKSAoc2VlICpbQ29tcGFyaXNvbiBhbmQgTW90aXZhdGlvbnNdKGh0dHBzOi8vYXBpZmxhc2suY29tL2NvbXBhcmlzb24pKiBmb3IgdGhlIGNvbXBhcmlzb24gYmV0d2VlbiB0aGVzZSBwcm9qZWN0cykuCg== readmeEtag: '"3bf0063f6c8bbfb1314acf8b7a0b2ed9fc179f42"' readmeLastModified: Sun, 04 Aug 2024 03:15:32 GMT repositoryId: 329190167 description: A lightweight Python web API framework. created: '2021-01-13T04:08:48Z' updated: '2024-09-05T02:51:33Z' language: Python archived: false stars: 1011 watchers: 20 forks: 125 owner: apiflask logo: https://avatars.githubusercontent.com/u/78075725?v=4 license: MIT repoEtag: '"15318f788fe4ef16afd5b75cfc9f66a5f2d29b93bd1b665b79f0f32dfcd9a849"' repoLastModified: Thu, 05 Sep 2024 02:51:33 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/greyli/apiflask - source: openapi3 tags repository: https://github.com/hey-api/openapi-ts v3: true id: 2f6d5164db429943c445c5647745a9be repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBzcmM9Imh0dHBzOi8vaGV5YXBpLnZlcmNlbC5hcHAvbG9nby5wbmciIGFsdD0iTG9nbyI+CiAgPGgxIGFsaWduPSJjZW50ZXIiPjxiPk9wZW5BUEkgVHlwZXNjcmlwdDwvYj48L2gxPgogIDxwIGFsaWduPSJjZW50ZXIiPuKcqCBUdXJuIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGludG8gYSBiZWF1dGlmdWwgVHlwZVNjcmlwdCBjbGllbnQuPC9wPgo8L2Rpdj4KCkdlbmVyYXRlIFR5cGVTY3JpcHQgaW50ZXJmYWNlcywgUkVTVCBjbGllbnRzLCBhbmQgSlNPTiBTY2hlbWFzIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4KCltMaXZlIGRlbW9dKGh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC9oZXktYXBpLWV4YW1wbGU/ZmlsZT1vcGVuYXBpLXRzLmNvbmZpZy50cyxzcmMlMkZjbGllbnQlMkZzY2hlbWFzLmdlbi50cyxzcmMlMkZjbGllbnQlMkZzZXJ2aWNlcy5nZW4udHMsc3JjJTJGY2xpZW50JTJGdHlwZXMuZ2VuLnRzKQoKIyMgRmVhdHVyZXMKCi0gd29ya3Mgd2l0aCBDTEksIE5vZGUuanMgMTgrLCBvciBucHgKLSBzdXBwb3J0cyBPcGVuQVBJIDIuMCwgMy4wLCBhbmQgMy4xIHNwZWNpZmljYXRpb25zCi0gc3VwcG9ydHMgYm90aCBKU09OIGFuZCBZQU1MIGlucHV0IGZpbGVzCi0gZ2VuZXJhdGVzIFR5cGVTY3JpcHQgaW50ZXJmYWNlcywgUkVTVCBjbGllbnRzLCBhbmQgSlNPTiBTY2hlbWFzCi0gRmV0Y2ggQVBJLCBBeGlvcywgQW5ndWxhciwgTm9kZS5qcywgYW5kIFhIUiBjbGllbnRzIGF2YWlsYWJsZQoKIyMgRG9jdW1lbnRhdGlvbgoKUGxlYXNlIHZpc2l0IG91ciBbd2Vic2l0ZV0oaHR0cHM6Ly9oZXlhcGkudmVyY2VsLmFwcC8pIGZvciBkb2N1bWVudGF0aW9uLCBndWlkZXMsIG1pZ3JhdGluZywgYW5kIG1vcmUuCgojIyBTcG9uc29yaW5nCgpMb3ZlIEhleSBBUEk/IFBsZWFzZSBjb25zaWRlciBiZWNvbWluZyBhIFtzcG9uc29yXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvbXJsdWJvcykuCgojIyBHaXRIdWIgSW50ZWdyYXRpb24gKGNvbWluZyBzb29uKQoKQXV0b21hdGljYWxseSB1cGRhdGUgeW91ciBjb2RlIHdoZW4gdGhlIEFQSXMgaXQgZGVwZW5kcyBvbiBjaGFuZ2UuIFtGaW5kIG91dCBtb3JlXShodHRwczovL2hleWFwaS52ZXJjZWwuYXBwL29wZW5hcGktdHMvaW50ZWdyYXRpb25zLmh0bWwpLgoKIyMgTWlncmF0aW5nIGZyb20gT3BlbkFQSSBUeXBlc2NyaXB0IENvZGVnZW4/CgpQbGVhc2UgcmVhZCBvdXIgW21pZ3JhdGlvbiBndWlkZV0oaHR0cHM6Ly9oZXlhcGkudmVyY2VsLmFwcC9vcGVuYXBpLXRzL21pZ3JhdGluZy5odG1sI29wZW5hcGktdHlwZXNjcmlwdC1jb2RlZ2VuKS4KCiMjIENvbnRyaWJ1dGluZwoKV2FudCB0byBnZXQgaW52b2x2ZWQ/IFBsZWFzZSByZWZlciB0byB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZV0oaHR0cHM6Ly9oZXlhcGkudmVyY2VsLmFwcC9jb250cmlidXRpbmcuaHRtbCkuCg== readmeEtag: '"b068c934c91512d0531c30f93f3ae6dc29c9ef37"' readmeLastModified: Wed, 14 Aug 2024 12:32:11 GMT repositoryId: 741524414 description: ✨ Turn your OpenAPI specification into a beautiful TypeScript client created: '2024-01-10T15:19:25Z' updated: '2024-09-06T01:48:38Z' language: TypeScript archived: false stars: 961 watchers: 8 forks: 77 owner: hey-api logo: https://avatars.githubusercontent.com/u/164436240?v=4 license: NOASSERTION repoEtag: '"f2d696fdb7284c57521da3b30d9fc7f77f3a842c2bde9c8447f7f37a6a6d19e8"' repoLastModified: Fri, 06 Sep 2024 01:48:38 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/asteasolutions/zod-to-openapi v3: true id: 360d2acbe3dfa2f35dbc74551fda7829 repositoryMetadata: base64Readme: >- IyBab2QgdG8gT3BlbkFQSQoKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGFzdGVhc29sdXRpb25zL3pvZC10by1vcGVuYXBpKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGFzdGVhc29sdXRpb25zL3pvZC10by1vcGVuYXBpKQpbIVtucG0gZG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9AYXN0ZWFzb2x1dGlvbnMvem9kLXRvLW9wZW5hcGkpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AYXN0ZWFzb2x1dGlvbnMvem9kLXRvLW9wZW5hcGkpCgpBIGxpYnJhcnkgdGhhdCB1c2VzIFt6b2Qgc2NoZW1hc10oaHR0cHM6Ly9naXRodWIuY29tL2NvbGluaGFja3Mvem9kKSB0byBnZW5lcmF0ZSBhbiBPcGVuIEFQSSBTd2FnZ2VyIGRvY3VtZW50YXRpb24uCgoxLiBbUHVycG9zZSBhbmQgcXVpY2sgZXhhbXBsZV0oI3B1cnBvc2UtYW5kLXF1aWNrLWV4YW1wbGUpCjIuIFtVc2FnZV0oI3VzYWdlKQogICAxLiBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQogICAyLiBbVGhlIGBvcGVuYXBpYCBtZXRob2RdKCN0aGUtb3BlbmFwaS1tZXRob2QpCiAgIDMuIFtUaGUgUmVnaXN0cnldKCN0aGUtcmVnaXN0cnkpCiAgIDQuIFtUaGUgR2VuZXJhdG9yXSgjdGhlLWdlbmVyYXRvcikKICAgNS4gW0RlZmluaW5nIHNjaGVtYXNdKCNkZWZpbmluZy1zY2hlbWFzKQogICA2LiBbRGVmaW5pbmcgcm91dGVzICYgd2ViaG9va3NdKCNkZWZpbmluZy1yb3V0ZXMtLXdlYmhvb2tzKQogICA3LiBbRGVmaW5pbmcgY3VzdG9tIGNvbXBvbmVudHNdKCNkZWZpbmluZy1jdXN0b20tY29tcG9uZW50cykKICAgOC4gW0EgZnVsbCBleGFtcGxlXSgjYS1mdWxsLWV4YW1wbGUpCiAgIDkuIFtBZGRpbmcgaXQgYXMgcGFydCBvZiB5b3VyIGJ1aWxkXSgjYWRkaW5nLWl0LWFzLXBhcnQtb2YteW91ci1idWlsZCkKICAgMTAuIFtVc2luZyBzY2hlbWFzIHZzIGEgcmVnaXN0cnldKCN1c2luZy1zY2hlbWFzLXZzLWEtcmVnaXN0cnkpCjMuIFtab2Qgc2NoZW1hIHR5cGVzXSgjem9kLXNjaGVtYS10eXBlcykKICAgMS4gW1N1cHBvcnRlZCB0eXBlc10oI3N1cHBvcnRlZC10eXBlcykKICAgMi4gW1Vuc3VwcG9ydGVkIHR5cGVzXSgjdW5zdXBwb3J0ZWQtdHlwZXMpCjQuIFtUZWNobm9sb2dpZXNdKCN0ZWNobm9sb2dpZXMpCgpXZSBrZWVwIGEgY2hhbmdlbG9nIGFzIHBhcnQgb2YgdGhlIFtHaXRIdWIgcmVsZWFzZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hc3RlYXNvbHV0aW9ucy96b2QtdG8tb3BlbmFwaS9yZWxlYXNlcykuCgojIyBQdXJwb3NlIGFuZCBxdWljayBleGFtcGxlCgpXZSBhdCBbQXN0ZWEgU29sdXRpb25zXShodHRwczovL2FzdGVhc29sdXRpb25zLmNvbS8pIG1hZGUgdGhpcyBsaWJyYXJ5IGJlY2F1c2Ugd2UgdXNlIFt6b2RdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb2xpbmhhY2tzL3pvZCkgZm9yIHZhbGlkYXRpb24gaW4gb3VyIEFQSXMgYW5kIGFyZSB0aXJlZCBvZiB0aGUgZHVwbGljYXRpb24gdG8gYWxzbyBzdXBwb3J0IGEgc2VwYXJhdGUgT3BlbkFQSSBkZWZpbml0aW9uIHRoYXQgbXVzdCBiZSBrZXB0IGluIHN5bmMuIFVzaW5nIGB6b2QtdG8tb3BlbmFwaWAsIHdlIGdlbmVyYXRlIE9wZW5BUEkgZGVmaW5pdGlvbnMgZGlyZWN0bHkgZnJvbSBvdXIgem9kIHNjaGVtYXMsIHRodXMgaGF2aW5nIGEgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aC4KClNpbXBseSBwdXQsIGl0IHR1cm5zIHRoaXM6CgpgYGB0cwpjb25zdCBVc2VyU2NoZW1hID0gegogIC5vYmplY3QoewogICAgaWQ6IHouc3RyaW5nKCkub3BlbmFwaSh7IGV4YW1wbGU6ICcxMjEyMTIxJyB9KSwKICAgIG5hbWU6IHouc3RyaW5nKCkub3BlbmFwaSh7IGV4YW1wbGU6ICdKb2huIERvZScgfSksCiAgICBhZ2U6IHoubnVtYmVyKCkub3BlbmFwaSh7IGV4YW1wbGU6IDQyIH0pLAogIH0pCiAgLm9wZW5hcGkoJ1VzZXInKTsKCnJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7CiAgbWV0aG9kOiAnZ2V0JywKICBwYXRoOiAnL3VzZXJzL3tpZH0nLAogIHN1bW1hcnk6ICdHZXQgYSBzaW5nbGUgdXNlcicsCiAgcmVxdWVzdDogewogICAgcGFyYW1zOiB6Lm9iamVjdCh7IGlkOiB6LnN0cmluZygpIH0pLAogIH0sCgogIHJlc3BvbnNlczogewogICAgMjAwOiB7CiAgICAgIGRlc2NyaXB0aW9uOiAnT2JqZWN0IHdpdGggdXNlciBkYXRhLicsCiAgICAgIGNvbnRlbnQ6IHsKICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHsKICAgICAgICAgIHNjaGVtYTogVXNlclNjaGVtYSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9LAp9KTsKYGBgCgppbnRvIHRoaXM6CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFVzZXI6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAnMTIxMjEyMScKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBKb2huIERvZQogICAgICAgIGFnZToKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgZXhhbXBsZTogNDIKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBpZAogICAgICAgIC0gbmFtZQogICAgICAgIC0gYWdlCgovdXNlcnMve2lkfToKICBnZXQ6CiAgICBzdW1tYXJ5OiBHZXQgYSBzaW5nbGUgdXNlcgogICAgcGFyYW1ldGVyczoKICAgICAgLSBpbjogcGF0aAogICAgICAgIG5hbWU6IGlkCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgIHJlc3BvbnNlczoKICAgICAgJzIwMCc6CiAgICAgICAgZGVzY3JpcHRpb246IE9iamVjdCB3aXRoIHVzZXIgZGF0YQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCmBgYAoKYW5kIHlvdSBjYW4gc3RpbGwgdXNlIGBVc2VyU2NoZW1hYCBhbmQgdGhlIGByZXF1ZXN0LnBhcmFtc2Agb2JqZWN0IHRvIHZhbGlkYXRlIHRoZSBpbnB1dCBvZiB5b3VyIEFQSS4KCiMjIFVzYWdlCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBzaGVsbApucG0gaW5zdGFsbCBAYXN0ZWFzb2x1dGlvbnMvem9kLXRvLW9wZW5hcGkKIyBvcgp5YXJuIGFkZCBAYXN0ZWFzb2x1dGlvbnMvem9kLXRvLW9wZW5hcGkKYGBgCgojIyMgVGhlIGBvcGVuYXBpYCBtZXRob2QKClRvIGtlZXAgb3BlbmFwaSBkZWZpbml0aW9ucyBuYXR1cmFsLCB3ZSBhZGQgYW4gYG9wZW5hcGlgIG1ldGhvZCB0byBhbGwgWm9kIG9iamVjdHMuIEl0cyBpZGVhIGlzIHRvIHByb3ZpZGUgYSBjb252ZW5pZW50IHdheSB0byBwcm92aWRlIE9wZW5BcGkgc3BlY2lmaWMgZGF0YS4KSXQgaGFzIHRocmVlIG92ZXJsb2FkczoKCjEuIGAub3BlbmFwaSh7IFtrZXldOiB2YWx1ZSB9KWAgLSB0aGlzIHdheSB3ZSBjYW4gc3BlY2lmeSBhbnkgT3BlbkFwaSBmaWVsZHMuIEZvciBleGFtcGxlIGB6Lm51bWJlcigpLm9wZW5hcGkoeyBleGFtcGxlOiAzIH0pYCB3b3VsZCBhZGQgYGV4YW1wbGU6IDNgIHRvIHRoZSBnZW5lcmF0ZWQgc2NoZW1hLgoyLiBgLm9wZW5hcGkoIjxzY2hlbWEtbmFtZT4iKWAgLSB0aGlzIHdheSB3ZSBzcGVjaWZ5IHRoYXQgdGhlIHVuZGVybHlpbmcgem9kIHNjaGVtYSBzaG91bGQgYmUgInJlZ2lzdGVyZWQiIGkuZSBhZGRlZCBpbnRvIGBjb21wb25lbnRzL3NjaGVtYXNgIHdpdGggdGhlIHByb3ZpZGVkIGA8c2NoZW1hLW5hbWU+YAozLiBgLm9wZW5hcGkoIjxzY2hlbWEtbmFtZT4iLCB7IFtrZXldOiB2YWx1ZSB9KWAgLSB0aGlzIHVuaXRlcyB0aGUgdHdvIHVzZSBjYXNlcyBhYm92ZSBzbyB0aGF0IHdlIGNhbiBzcGVjaWZ5IGJvdGggYSByZWdpc3RyYXRpb24gYDxzY2hlbWEtbmFtZT5gIGFuZCBhZGRpdGlvbmFsIG1ldGFkYXRhCgpGb3IgdGhpcyB0byB3b3JrLCB5b3UgbmVlZCB0byBjYWxsIGBleHRlbmRab2RXaXRoT3BlbkFwaWAgb25jZSBpbiB5b3VyIHByb2plY3QuCgpOb3RlOiBUaGlzIHNob3VsZCBiZSBkb25lIG9ubHkgb25jZSBpbiBhIGNvbW1vbi1lbnRyeXBvaW50IGZpbGUgb2YgeW91ciBwcm9qZWN0IChmb3IgZXhhbXBsZSBhbiBgaW5kZXgudHNgL2BhcHAudHNgKS4gSWYgeW91J3JlIHVzaW5nIHRyZWUtc2hha2luZyB3aXRoIFdlYnBhY2ssIG1hcmsgdGhhdCBmaWxlIGFzIGhhdmluZyBzaWRlLWVmZmVjdHMuCgpgYGB0cwppbXBvcnQgeyBleHRlbmRab2RXaXRoT3BlbkFwaSB9IGZyb20gJ0Bhc3RlYXNvbHV0aW9ucy96b2QtdG8tb3BlbmFwaSc7CmltcG9ydCB7IHogfSBmcm9tICd6b2QnOwoKZXh0ZW5kWm9kV2l0aE9wZW5BcGkoeik7CgovLyBXZSBjYW4gbm93IHVzZSBgLm9wZW5hcGkoKWAgdG8gc3BlY2lmeSBPcGVuQVBJIG1ldGFkYXRhCnouc3RyaW5nKCkub3BlbmFwaSh7IGRlc2NyaXB0aW9uOiAnU29tZSBzdHJpbmcnIH0pOwpgYGAKCiMjIyBUaGUgUmVnaXN0cnkKClRoZSBgT3BlbkFQSVJlZ2lzdHJ5YCBpcyBhIHV0aWxpdHkgdGhhdCBjYW4gYmUgdXNlZCB0byBjb2xsZWN0IGRlZmluaXRpb25zIHdoaWNoIHdvdWxkIGxhdGVyIGJlIHBhc3NlZCB0byBhIGBPcGVuQXBpR2VuZXJhdG9yVjNgIG9yIGBPcGVuQXBpR2VuZXJhdG9yVjMxYCBpbnN0YW5jZS4KCmBgYHRzCmltcG9ydCB7CiAgT3BlbkFQSVJlZ2lzdHJ5LAogIE9wZW5BcGlHZW5lcmF0b3JWMywKfSBmcm9tICdAYXN0ZWFzb2x1dGlvbnMvem9kLXRvLW9wZW5hcGknOwoKY29uc3QgcmVnaXN0cnkgPSBuZXcgT3BlbkFQSVJlZ2lzdHJ5KCk7CgovLyBSZWdpc3RlciBkZWZpbml0aW9ucyBoZXJlCgpjb25zdCBnZW5lcmF0b3IgPSBuZXcgT3BlbkFwaUdlbmVyYXRvclYzKHJlZ2lzdHJ5LmRlZmluaXRpb25zKTsKCnJldHVybiBnZW5lcmF0b3IuZ2VuZXJhdGVDb21wb25lbnRzKCk7CmBgYAoKIyMjIFRoZSBHZW5lcmF0b3IKClRoZXJlIGFyZSB0d28gZ2VuZXJhdG9ycyB0aGF0IGNhbiBiZSB1c2VkIC0gYE9wZW5BcGlHZW5lcmF0b3JWM2AgYW5kIGBPcGVuQXBpR2VuZXJhdG9yVjMxYC4gVGhleSBzaGFyZSB0aGUgc2FtZSBpbnRlcmZhY2UgYnV0IGludGVybmFsbHkgZ2VuZXJhdGUgc2NoZW1hcyB0aGF0IGNvcnJlY3RseSBmb2xsb3cgdGhlIGRhdGEgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWMgT3BlbiBBUEkgdmVyc2lvbiAtIGAzLjAueGAgb3IgYDMuMS54YC4gVGhlIE9wZW4gQVBJIHZlcnNpb24gYWZmZWN0cyBob3cgc29tZSBjb21wb25lbnRzIGFyZSBnZW5lcmF0ZWQuCgpGb3IgZXhhbXBsZTogY2hhbmdpbmcgdGhlIGdlbmVyYXRvciBmcm9tIGBPcGVuQXBpR2VuZXJhdG9yVjNgIHRvIGBPcGVuQXBpR2VuZXJhdG9yVjMxYCB3b3VsZCByZXN1bHQgaW4gZm9sbG93aW5nIGRpZmZlcmVuY2VzOgoKYGBgdHMKei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wZW5hcGkocmVmSWQ6ICduYW1lJyk7CmBgYAoKYGBgeW1sCiMgMy4xLjAKIyBudWxsYWJsZSBpcyBpbnZhbGlkIGluIDMuMS4wIGJ1dCB0eXBlIGFycmF5cyBhcmUgaW52YWxpZCBpbiBwcmV2aW91cyB2ZXJzaW9ucwpuYW1lOgogIHR5cGU6CiAgICAtICdzdHJpbmcnCiAgICAtICdudWxsJwoKIyAzLjAuMApuYW1lOgogIHR5cGU6ICdzdHJpbmcnCiAgbnVsbGFibGU6IHRydWUKYGBgCgpCb3RoIGdlbmVyYXRvcnMgdGFrZSBhIHNpbmdsZSBhcmd1bWVudCBpbiB0aGVpciBjb25zdHJ1Y3RvcnMgLSBhbiBhcnJheSBvZiBkZWZpbml0aW9ucyAtIGkuZSByZXN1bHRzIGZyb20gdGhlIHJlZ2lzdHJ5IG9yIHJlZ3VsYXIgem9kIHNjaGVtYXMuCgpUaGUgcHVibGljIG1ldGhvZHMgb2YgYm90aCBnZW5lcmF0b3JzIGFyZSBhcyBmb2xsb3dzOgoKYGdlbmVyYXRlQ29tcG9uZW50c2Agd2lsbCBnZW5lcmF0ZSBvbmx5IHRoZSBgL2NvbXBvbmVudHNgIHNlY3Rpb24gb2YgYW4gT3BlbkFQSSBkb2N1bWVudCAoZS5nLiBvbmx5IGBzY2hlbWFzYCBhbmQgYHBhcmFtZXRlcnNgKSwgbm90IGdlbmVyYXRpbmcgYWN0dWFsIHJvdXRlcy4KCmBnZW5lcmF0ZURvY3VtZW50YCB3aWxsIGdlbmVyYXRlIHRoZSB3aG9sZSBPcGVuQVBJIGRvY3VtZW50LgoKIyMjIERlZmluaW5nIHNjaGVtYXMKCkFuIE9wZW5BcGkgc2NoZW1hIHNob3VsZCBiZSByZWdpc3RlcmVkIGJ5IHVzaW5nIHRoZSBgLm9wZW5hcGlgIG1ldGhvZCBhbmQgcHJvdmlkaW5nIGEgbmFtZToKCmBgYHRzCmNvbnN0IFVzZXJTY2hlbWEgPSB6CiAgLm9iamVjdCh7CiAgICBpZDogei5zdHJpbmcoKS5vcGVuYXBpKHsgZXhhbXBsZTogJzEyMTIxMjEnIH0pLAogICAgbmFtZTogei5zdHJpbmcoKS5vcGVuYXBpKHsgZXhhbXBsZTogJ0pvaG4gRG9lJyB9KSwKICAgIGFnZTogei5udW1iZXIoKS5vcGVuYXBpKHsgZXhhbXBsZTogNDIgfSksCiAgfSkKICAub3BlbmFwaSgnVXNlcicpOwoKY29uc3QgZ2VuZXJhdG9yID0gbmV3IE9wZW5BcGlHZW5lcmF0b3JWMyhbVXNlclNjaGVtYV0pOwpgYGAKClRoZSBzYW1lIGNhbiBiZSBhY2hpZXZlZCBieSB1c2luZyB0aGUgYHJlZ2lzdGVyYCBtZXRob2Qgb2YgYW4gYE9wZW5BUElSZWdpc3RyeWAgaW5zdGFuY2UuIEZvciBtb3JlIGNoZWNrIHRoZSBbIlVzaW5nIHNjaGVtYXMgdnMgYSByZWdpc3RyeSJdKCN1c2luZy1zY2hlbWFzLXZzLWEtcmVnaXN0cnkpIHNlY3Rpb24KCmBgYHRzCmNvbnN0IFVzZXJTY2hlbWEgPSByZWdpc3RyeS5yZWdpc3RlcigKICAnVXNlcicsCiAgei5vYmplY3QoewogICAgaWQ6IHouc3RyaW5nKCkub3BlbmFwaSh7IGV4YW1wbGU6ICcxMjEyMTIxJyB9KSwKICAgIG5hbWU6IHouc3RyaW5nKCkub3BlbmFwaSh7IGV4YW1wbGU6ICdKb2huIERvZScgfSksCiAgICBhZ2U6IHoubnVtYmVyKCkub3BlbmFwaSh7IGV4YW1wbGU6IDQyIH0pLAogIH0pCik7Cgpjb25zdCBnZW5lcmF0b3IgPSBuZXcgT3BlbkFwaUdlbmVyYXRvclYzKHJlZ2lzdHJ5LmRlZmluaXRpb25zKTsKYGBgCgpJZiBydW4gbm93LCBgZ2VuZXJhdG9yLmdlbmVyYXRlQ29tcG9uZW50cygpYCB3aWxsIGdlbmVyYXRlIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOgoKYGBgeWFtbApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBVc2VyOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogJzEyMTIxMjEnCiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogSm9obiBEb2UKICAgICAgICBhZ2U6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIGV4YW1wbGU6IDQyCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaWQKICAgICAgICAtIG5hbWUKICAgICAgICAtIGFnZQpgYGAKClRoZSBrZXkgZm9yIHRoZSBzY2hlbWEgaW4gdGhlIG91dHB1dCBpcyB0aGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIHRvIGAub3BlbmFwaWAgbWV0aG9kIChvciB0aGUgYC5yZWdpc3RlcmApIC0gaW4gdGhpcyBjYXNlOiBgVXNlcmAuCgpOb3RlIHRoYXQgYGdlbmVyYXRlQ29tcG9uZW50c2AgZG9lcyBub3QgcmV0dXJuIFlBTUwgYnV0IGEgSlMgb2JqZWN0IC0geW91IGNhbiB0aGVuIHNlcmlhbGl6ZSB0aGF0IG9iamVjdCBpbnRvIFlBTUwgb3IgSlNPTiBkZXBlbmRpbmcgb24geW91ciB1c2UtY2FzZS4KClRoZSByZXN1bHRpbmcgc2NoZW1hIGNhbiB0aGVuIGJlIHJlZmVyZW5jZWQgYnkgdXNpbmcgYCRyZWY6ICMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXJgIGluIGFuIGV4aXN0aW5nIE9wZW5BUEkgSlNPTi4gVGhpcyB3aWxsIGJlIGRvbmUgYXV0b21hdGljYWxseSBmb3IgUm91dGVzIGRlZmluZWQgdGhyb3VnaCB0aGUgcmVnaXN0cnkuCgpOb3RlIGJ5IGRlZmF1bHQgYSBab2Qgb2JqZWN0IHdpbGwgcmVzdWx0IGluIGAiYWRkaXRpb25hbFByb3BlcnRpZXMiOiB0cnVlYCBhcyBwZXIgdGhlIE9wZW4gQVBJIHNwZWMgdW5sZXNzIHVzaW5nIGBzdHJpY3RgIG9yIGBjYXRjaGFsbGAsIHRoaXMgaXMgaW4gY29udHJhc3QgdG8gbm9ybWFsIFpvZCBvYmplY3QgdXNhZ2Ugd2hlcmUgYHpvZC5wYXJzZWAgaXMgdXNlZC4KCiMjIyBEZWZpbmluZyByb3V0ZXMgJiB3ZWJob29rcwoKIyMjIyBSZWdpc3RlcmluZyBhIHBhdGggb3Igd2ViaG9vawoKQW4gT3BlbkFQSSBwYXRoIGlzIHJlZ2lzdGVyZWQgdXNpbmcgdGhlIGByZWdpc3RlclBhdGhgIG1ldGhvZCBvZiBhbiBgT3BlbkFQSVJlZ2lzdHJ5YCBpbnN0YW5jZS4gQW4gT3BlbkFQSSB3ZWJob29rIGlzIHJlZ2lzdGVyZWQgdXNpbmcgdGhlIGByZWdpc3RlcldlYmhvb2tgIG1ldGhvZCBhbmQgdGFrZXMgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyBgcmVnaXN0ZXJQYXRoYC4KCmBgYHRzCnJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7CiAgbWV0aG9kOiAnZ2V0JywKICBwYXRoOiAnL3VzZXJzL3tpZH0nLAogIGRlc2NyaXB0aW9uOiAnR2V0IHVzZXIgZGF0YSBieSBpdHMgaWQnLAogIHN1bW1hcnk6ICdHZXQgYSBzaW5nbGUgdXNlcicsCiAgcmVxdWVzdDogewogICAgcGFyYW1zOiB6Lm9iamVjdCh7CiAgICAgIGlkOiB6LnN0cmluZygpLm9wZW5hcGkoeyBleGFtcGxlOiAnMTIxMjEyMScgfSksCiAgICB9KSwKICB9LAogIHJlc3BvbnNlczogewogICAgMjAwOiB7CiAgICAgIGRlc2NyaXB0aW9uOiAnT2JqZWN0IHdpdGggdXNlciBkYXRhLicsCiAgICAgIGNvbnRlbnQ6IHsKICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHsKICAgICAgICAgIHNjaGVtYTogVXNlclNjaGVtYSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIDIwNDogewogICAgICBkZXNjcmlwdGlvbjogJ05vIGNvbnRlbnQgLSBzdWNjZXNzZnVsIG9wZXJhdGlvbicsCiAgICB9LAogIH0sCn0pOwpgYGAKClRoZSBZQU1MIGVxdWl2YWxlbnQgb2YgdGhlIHNjaGVtYSBhYm92ZSB3b3VsZCBiZToKCmBgYHlhbWwKJy91c2Vycy97aWR9JzoKICBnZXQ6CiAgICBkZXNjcmlwdGlvbjogR2V0IHVzZXIgZGF0YSBieSBpdHMgaWQKICAgIHN1bW1hcnk6IEdldCBhIHNpbmdsZSB1c2VyCiAgICBwYXJhbWV0ZXJzOgogICAgICAtIGluOiBwYXRoCiAgICAgICAgbmFtZTogaWQKICAgICAgICBzY2hlbWE6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6ICcxMjEyMTIxJwogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICByZXNwb25zZXM6CiAgICAgICcyMDAnOgogICAgICAgIGRlc2NyaXB0aW9uOiBPYmplY3Qgd2l0aCB1c2VyIGRhdGEuCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlcicKICAgICAgJzIwNCc6CiAgICAgICAgZGVzY3JpcHRpb246IE5vIGNvbnRlbnQgLSBzdWNjZXNzZnVsIG9wZXJhdGlvbgpgYGAKClRoZSBsaWJyYXJ5IHNwZWNpZmljIHByb3BlcnRpZXMgZm9yIGByZWdpc3RlclBhdGhgIGFyZSBgbWV0aG9kYCwgYHBhdGhgLCBgcmVxdWVzdGAgYW5kIGByZXNwb25zZXNgLiBFdmVyeXRoaW5nIGVsc2UgZ2V0cyBkaXJlY3RseSBhcHBlbmRlZCB0byB0aGUgcGF0aCBkZWZpbml0aW9uLgoKLSBgbWV0aG9kYCAtIE9uZSBvZiBgZ2V0YCwgYHBvc3RgLCBgcHV0YCwgYGRlbGV0ZWAgYW5kIGBwYXRjaGA7Ci0gYHBhdGhgIC0gYSBzdHJpbmcgLSBiZWluZyB0aGUgcGF0aCBvZiB0aGUgZW5kcG9pbnQ7Ci0gYHJlcXVlc3RgIC0gYW4gb3B0aW9uYWwgb2JqZWN0IHdpdGggb3B0aW9uYWwgYGJvZHlgLCBgcGFyYW1zYCwgYHF1ZXJ5YCBhbmQgYGhlYWRlcnNgIGtleXMsCiAgLSBgcXVlcnlgLCBgcGFyYW1zYCAtIGJlaW5nIGluc3RhbmNlcyBvZiBgWm9kT2JqZWN0YAogIC0gYGJvZHlgIC0gYW4gb2JqZWN0IHdpdGggYSBgZGVzY3JpcHRpb25gIGFuZCBhIGBjb250ZW50YCByZWNvcmQgd2hlcmU6CiAgICAtIHRoZSBrZXkgaXMgYSBgbWVkaWFUeXBlYCBzdHJpbmcgbGlrZSBgYXBwbGljYXRpb24vanNvbmAKICAgIC0gYW5kIHRoZSB2YWx1ZSBpcyBhbiBvYmplY3Qgd2l0aCBhIGBzY2hlbWFgIG9mIGFueSBgem9kYCB0eXBlCiAgLSBgaGVhZGVyc2AgLSBpbnN0YW5jZXMgb2YgYFpvZE9iamVjdGAgb3IgYW4gYXJyYXkgb2YgYW55IGB6b2RgIGluc3RhbmNlcwotIGByZXNwb25zZXNgIC0gYW4gb2JqZWN0IHdoZXJlIHRoZSBrZXkgaXMgdGhlIHN0YXR1cyBjb2RlIG9yIGBkZWZhdWx0YCBhbmQgdGhlIHZhbHVlIGlzIGFuIG9iamVjdCB3aXRoIGEgYGRlc2NyaXB0aW9uYCBhbmQgYSBgY29udGVudGAgcmVjb3JkIHdoZXJlOgogIC0gdGhlIGtleSBpcyBhIGBtZWRpYVR5cGVgIHN0cmluZyBsaWtlIGBhcHBsaWNhdGlvbi9qc29uYAogIC0gYW5kIHRoZSB2YWx1ZSBpcyBhbiBvYmplY3Qgd2l0aCBhIGBzY2hlbWFgIG9mIGFueSBgem9kYCB0eXBlCgojIyMjIERlZmluaW5nIHJvdXRlIHBhcmFtZXRlcnMKCklmIHlvdSBkb24ndCB3YW50IHRvIGlubGluZSBhbGwgcGFyYW1ldGVyIGRlZmluaXRpb25zLCB5b3UgY2FuIGRlZmluZSB0aGVtIHNlcGFyYXRlbHkgd2l0aCBgcmVnaXN0ZXJQYXJhbWV0ZXJgIGFuZCB0aGVuIHJlZmVyZW5jZSB0aGVtOgoKYGBgdHMKY29uc3QgVXNlcklkUGFyYW0gPSByZWdpc3RyeS5yZWdpc3RlclBhcmFtZXRlcigKICAnVXNlcklkJywKICB6LnN0cmluZygpLm9wZW5hcGkoewogICAgcGFyYW06IHsKICAgICAgbmFtZTogJ2lkJywKICAgICAgaW46ICdwYXRoJywKICAgIH0sCiAgICBleGFtcGxlOiAnMTIxMjEyMScsCiAgfSkKKTsKCnJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7CiAgLi4uCiAgcmVxdWVzdDogewogICAgcGFyYW1zOiB6Lm9iamVjdCh7CiAgICAgIGlkOiBVc2VySWRQYXJhbQogICAgfSksCiAgfSwKICByZXNwb25zZXM6IC4uLgp9KTsKYGBgCgpUaGUgWUFNTCBlcXVpdmFsZW50IHdvdWxkIGJlOgoKYGBgeWFtbApjb21wb25lbnRzOgogIHBhcmFtZXRlcnM6CiAgICBVc2VySWQ6CiAgICAgIGluOiBwYXRoCiAgICAgIG5hbWU6IGlkCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBleGFtcGxlOiAnMTIxMjEyMScKICAgICAgcmVxdWlyZWQ6IHRydWUKCicvdXNlcnMve2lkfSc6CiAgZ2V0OgogICAgLi4uCiAgICBwYXJhbWV0ZXJzOgogICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9Vc2VySWQnCiAgICByZXNwb25zZXM6IC4uLgpgYGAKCk5vdGU6IEluIG9yZGVyIHRvIGRlZmluZSBwcm9wZXJ0aWVzIHRoYXQgYXBwbHkgdG8gdGhlIHBhcmFtZXRlciBpdHNlbGYsIHVzZSB0aGUgYHBhcmFtYCBwcm9wZXJ0eSBvZiBgLm9wZW5hcGlgLiBBbnkgcHJvcGVydGllcyBwcm92aWRlZCBvdXRzaWRlIG9mIGBwYXJhbWAgd291bGQgYmUgYXBwbGllZCB0byB0aGUgc2NoZW1hIGZvciB0aGlzIHBhcmFtZXRlci4KCiMjIyMgR2VuZXJhdGluZyB0aGUgZnVsbCBkb2N1bWVudAoKQSBmdWxsIE9wZW5BUEkgZG9jdW1lbnQgY2FuIGJlIGdlbmVyYXRlZCB1c2luZyB0aGUgYGdlbmVyYXRlRG9jdW1lbnRgIG1ldGhvZCBvZiBhbiBgT3BlbkFwaUdlbmVyYXRvclYzYCBvciBgT3BlbkFwaUdlbmVyYXRvclYzMWAgaW5zdGFuY2UuIEl0IHRha2VzIG9uZSBhcmd1bWVudCAtIHRoZSBkb2N1bWVudCBjb25maWcuIEl0IG1heSBsb29rIHNvbWV0aGluZyBsaWtlIHRoaXM6CgpgYGB0cwpyZXR1cm4gZ2VuZXJhdG9yLmdlbmVyYXRlRG9jdW1lbnQoewogIG9wZW5hcGk6ICczLjAuMCcsCiAgaW5mbzogewogICAgdmVyc2lvbjogJzEuMC4wJywKICAgIHRpdGxlOiAnTXkgQVBJJywKICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgQVBJJywKICB9LAogIHNlcnZlcnM6IFt7IHVybDogJ3YxJyB9XSwKfSk7CmBgYAoKIyMjIERlZmluaW5nIGN1c3RvbSBjb21wb25lbnRzCgpZb3UgY2FuIGRlZmluZSBjb21wb25lbnRzIHRoYXQgYXJlIG5vdCBPcGVuQVBJIHNjaGVtYXMsIGluY2x1ZGluZyBzZWN1cml0eSBzY2hlbWVzLCByZXNwb25zZSBoZWFkZXJzIGFuZCBvdGhlcnMuIFNlZSBbdGhpcyB0ZXN0IGZpbGVdKHNwZWMvY3VzdG9tLWNvbXBvbmVudHMuc3BlYy50cykgZm9yIGV4YW1wbGVzLgoKIyMjIEEgZnVsbCBleGFtcGxlCgpBIGZ1bGwgZXhhbXBsZSBjb2RlIGNhbiBiZSBmb3VuZCBbaGVyZV0oLi9leGFtcGxlL2luZGV4LnRzKS4gQW5kIHRoZSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIGl0cyByZXN1bHQgLSBbaGVyZV0oLi9leGFtcGxlL29wZW5hcGktZG9jcy55bWwpCgojIyMgVXNpbmcgc2NoZW1hcyB2cyBhIHJlZ2lzdHJ5CgpTY2hlbWFzIGFyZSBhdXRvbWF0aWNhbGx5IGJlaW5nIHJlZ2lzdGVyZWQgd2hlbiByZWZlcmVuY2VkLiBUaGF0IG1lYW5zIHRoYXQgaWYgeW91IGhhdmUgYSBzY2hlbWEgbGlrZToKCmBgYHRzCmNvbnN0IHNjaGVtYSA9IHoub2JqZWN0KHsga2V5OiB6LnN0cmluZygpLm9wZW5hcGkoJ1Rlc3QnKSB9KS5vcGVuYXBpKCdPYmplY3QnKTsKYGBgCgp5b3UnZCBoYXZlIHRoZSBmb2xsb3dpbmcgcmVzdWx0aW5nIHN0cnVjdHVyZToKCmBgYHlhbWwKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgVGVzdDoKICAgICAgdHlwZTogJ3N0cmluZycsCiAgICBPYmplY3Q6CiAgICAgIHR5cGU6ICdvYmplY3QnLAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGtleToKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9UZXN0JwogICAgICByZXF1aXJlZDogWydrZXknXQpgYGAKClRoaXMgZG9lcyBub3QgcmVxdWlyZSBhbnkgdXNhZ2VzIG9mIGFuIGBPcGVuQVBJUmVnaXN0cnlgIGluc3RhbmNlLgoKSG93ZXZlciB0aGUgc2FtZSBvdXRwdXQgY2FuIGJlIGFjaGlldmVkIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOgoKYGBgdHMKY29uc3QgcmVnaXN0cnkgPSBuZXcgT3BlbkFQSVJlZ2lzdHJ5KCk7CmNvbnN0IHNjaGVtYSA9IHJlZ2lzdHJ5LnJlZ2lzdGVyKAogICdPYmplY3QnLAogIHoub2JqZWN0KHsga2V5OiB6LnN0cmluZygpLm9wZW5hcGkoJ1Rlc3QnKSB9KQopOwpgYGAKClRoZSBtYWluIGJlbmVmaXQgb2YgdGhlIGAucmVnaXN0cnlgIG1ldGhvZCBpcyB0aGF0IHlvdSBjYW4gdXNlIHRoZSByZWdpc3RyeSBhcyBhICJjb2xsZWN0aW9uIiB3aGVyZSB5b3Ugd291bGQgcHV0IGFsbCBzdWNoIHNjaGVtYXMuCgpXaXRoIGAub3BlbmFwaWA6CgpgYGB0cwovLyBmaWxlMS50cwpleHBvcnQgY29uc3QgU2NoZW1hMSA9IC4uLgoKLy8gZmlsZTIudHMKZXhwb3J0IGNvbnN0IFNjaGVtYTIgPSAuLi4KCm5ldyBPcGVuQXBpR2VuZXJhdG9yVjMoW1NjaGVtYTEsIFNjaGVtYTJdKQpgYGAKCkFkZGluZyBhIGBOZXdTY2hlbWFgIGludG8gYGZpbGUzLnRzYCB3b3VsZCByZXF1aXJlIHlvdSB0byBwYXNzIHRoYXQgc2NoZW1hIG1hbnVhbGx5IGludG8gdGhlIGFycmF5IG9mIHRoZSBnZW5lcmF0b3IgY29uc3RydWN0b3IuCk5vdGU6IElmIGEgYE5ld1NjaGVtYWAgaXMgcmVmZXJlbmNlZCBieSBhbnkgb3RoZXIgc2NoZW1hcyBvciBhIHJvdXRlL3dlYmhvb2sgZGVmaW5pdGlvbiBpdCB3b3VsZCBzdGlsbCBhcHBlYXIgaW4gdGhlIHJlc3VsdGluZyBkb2N1bWVudC4KCldpdGggYHJlZ2lzdHJ5LnJlZ2lzdGVyYDoKCmBgYHRzCi8vIHJlZ2lzdHJ5LnRzCmV4cG9ydCBjb25zdCByZWdpc3RyeSA9IG5ldyBPcGVuQVBJUmVnaXN0cnkoKQoKLy8gZmlsZTEudHMKZXhwb3J0IGNvbnN0IFNjaGVtYTEgPSByZWdpc3RyeS5yZWdpc3RlciguLi4pCgovLyBmaWxlMi50cwpleHBvcnQgY29uc3QgU2NoZW1hMiA9IHJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLikKCm5ldyBPcGVuQXBpR2VuZXJhdG9yVjMocmVnaXN0cnkuZGVmaW5pdGlvbnMpCmBgYAoKQWRkaW5nIGEgYE5ld1NjaGVtYWAgaW50byBgZmlsZTMudHNgIGFuZCB1c2luZyBgcmVnaXN0cnkucmVnaXN0ZXJgIHdvdWxkIE5PVCByZXF1aXJlIHlvdSB0byBkbyBhbnkgY2hhbmdlcyB0byB0aGUgZ2VuZXJhdG9yIGNvbnN0cnVjdG9yLgoKIyMjIyBDb25jbHVzaW9uCgpVc2luZyBhbiBgT3BlbkFQSVJlZ2lzdHJ5YCBpbnN0YW5jZSBpcyBtb3N0bHkgdXNlZnVsIGlmIHlvdSB3b3VsZCB3YW50IHlvdXIgcmVzdWx0aW5nIGRvY3VtZW50IHRvIGNvbnRhaW4gdW5yZWZlcmVuY2VkIHNjaGVtYXMuClRoYXQgY2FuIHNvbWV0aW1lcyBiZSB1c2VmdWwgLSBmb3IgZXhhbXBsZSB3aGVuIHlvdSBhcmUgc2xvd2x5IGludGVncmF0aW5nIGFuIGFscmVhZHkgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiB3aXRoIGBAYXN0ZWFzb2x1dGlvbnMvem9kLXRvLW9wZW5hcGlgIGFuZCB5b3UgYXJlIG1pZ3JhdGluZyBzbWFsbCBwaWVjZXMgYXQgYSB0aW1lLiBUaG9zZSBwaWVjZXMgY2FuIHRoZW4gYmUgcmVmZXJlbmNlZCBkaXJlY3RseSBmcm9tIGFuIGV4aXN0aW5nIGRvY3VtZW50YXRpb24uCgojIyMgQWRkaW5nIGl0IGFzIHBhcnQgb2YgeW91ciBidWlsZAoKSW4gYSBmaWxlIGluc2lkZSB5b3VyIHByb2plY3QgeW91IGNhbiBoYXZlIGEgZmlsZSBsaWtlIHNvOgoKYGBgdHMKZXhwb3J0IGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IE9wZW5BUElSZWdpc3RyeSgpOwoKZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlT3BlbkFQSSgpIHsKICBjb25zdCBjb25maWcgPSB7Li4ufTsgLy8geW91ciBjb25maWcgY29tZXMgaGVyZQoKICByZXR1cm4gbmV3IE9wZW5BcGlHZW5lcmF0b3JWMyhzY2hlbWFzLmRlZmluaXRpb25zKS5nZW5lcmF0ZURvY3VtZW50KGNvbmZpZyk7Cn0KYGBgCgpZb3UgdGhlbiB1c2UgdGhlIGV4cG9ydGVkIGByZWdpc3RyeWAgb2JqZWN0IHRvIHJlZ2lzdGVyIGFsbCBzY2hlbWFzLCBwYXJhbWV0ZXJzIGFuZCByb3V0ZXMgd2hlcmUgYXBwcm9wcmlhdGUuCgpUaGVuIHlvdSBjYW4gY3JlYXRlIGEgc2NyaXB0IHRoYXQgZXhlY3V0ZXMgdGhlIGV4cG9ydGVkIGBnZW5lcmF0ZU9wZW5BUElgIGZ1bmN0aW9uLiBUaGlzIHNjcmlwdCBjYW4gYmUgZXhlY3V0ZWQgYXMgYSBwYXJ0IG9mIHlvdXIgYnVpbGQgc3RlcCBzbyB0aGF0IGl0IGNhbiB3cml0ZSB0aGUgcmVzdWx0IHRvIHNvbWUgZmlsZSBsaWtlIGBvcGVuYXBpLWRvY3MuanNvbmAuCgojIyBab2Qgc2NoZW1hIHR5cGVzCgojIyMgU3VwcG9ydGVkIHR5cGVzCgpUaGUgbGlzdCBvZiBhbGwgc3VwcG9ydGVkIHR5cGVzIGFzIG9mIG5vdyBpczoKCi0gYFpvZEFueWAKLSBgWm9kQXJyYXlgCi0gYFpvZEJpZ0ludGAKLSBgWm9kQm9vbGVhbmAKLSBgWm9kRGF0ZWAKLSBgWm9kRGVmYXVsdGAKLSBgWm9kRGlzY3JpbWluYXRlZFVuaW9uYAogIC0gaW5jbHVkaW5nIGBkaXNjcmltaW5hdG9yYCBtYXBwaW5nIHdoZW4gYWxsIFpvZCBvYmplY3RzIGluIHRoZSB1bmlvbiBhcmUgcmVnaXN0ZXJlZCB3aXRoIGAucmVnaXN0ZXIoKWAgb3IgY29udGFpbiBhIGByZWZJZGAuCi0gYFpvZEVmZmVjdHNgCi0gYFpvZEVudW1gCi0gYFpvZEludGVyc2VjdGlvbmAKLSBgWm9kTGl0ZXJhbGAKLSBgWm9kTmF0aXZlRW51bWAKLSBgWm9kTnVsbGFibGVgCi0gYFpvZE51bWJlcmAKICAtIGluY2x1ZGluZyBgei5udW1iZXIoKS5pbnQoKWAgYmVpbmcgaW5mZXJyZWQgYXMgYHR5cGU6ICdpbnRlZ2VyJ2AKLSBgWm9kT2JqZWN0YAogIC0gaW5jbHVkaW5nIGAuY2F0Y2hhbGxgIHJlc3VsdGluZyBpbiB0aGUgcmVzcGVjdGl2ZSBgYWRkaXRpb25hbFByb3BlcnRpZXNgIHNjaGVtYQogIC0gYWxzbyBpbmNsdWRpbmcgYHN0cmljdGAgcmVzdWx0aW5nIGluIHRoZSByZXNwZWN0aXZlIGBhZGRpdGlvbmFsUHJvcGVydGllc2Agc2NoZW1hCi0gYFpvZE9wdGlvbmFsYAotIGBab2RQaXBlbGluZWAKLSBgWm9kUmVhZG9ubHlgCi0gYFpvZFJlY29yZGAKLSBgWm9kU3RyaW5nYAogIC0gYWRkaW5nIGBmb3JtYXRgIGZvciBgLmRhdGV0aW1lKClgLCBgLnV1aWQoKWAsIGAuZW1haWwoKWAgYW5kIGAudXJsKClgIGFuZCBgcGF0dGVybmAgZm9yIGAucmVnZXgoKWAgaXMgYWxzbyBzdXBwb3J0ZWQKLSBgWm9kVHVwbGVgCi0gYFpvZFVuaW9uYAotIGBab2RVbmtub3duYAoKRXh0ZW5kaW5nIGFuIGluc3RhbmNlIG9mIGBab2RPYmplY3RgIGlzIGFsc28gc3VwcG9ydGVkIGFuZCByZXN1bHRzIGluIGFuIE9wZW5BcGkgZGVmaW5pdGlvbiB3aXRoIGBhbGxPZmAKCiMjIyBVbnN1cHBvcnRlZCB0eXBlcwoKSW4gY2FzZSB5b3UgdHJ5IHRvIGNyZWF0ZSBhbiBPcGVuQVBJIHNjaGVtYSBmcm9tIGEgem9kIHNjaGVtYSB0aGF0IGlzIG5vdCBvbmUgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHR5cGVzIHRoZW4geW91J2QgcmVjZWl2ZSBhbiBgVW5rbm93blpvZFR5cGVFcnJvcmAuCgpZb3UgY2FuIHN0aWxsIHJlZ2lzdGVyIHN1Y2ggc2NoZW1hcyBvbiB5b3VyIG93biBieSBwcm92aWRpbmcgYSBgdHlwZWAgdmlhIHRoZSBgLm9wZW5hcGlgIG1ldGhvZC4gSW4gY2FzZSB5b3UgdGhpbmsgdGhhdCB0aGUgZGVzaXJlZCBiZWhhdmlvciBjYW4gYmUgYWNoaWV2ZWQgYXV0b21hdGljYWxseSBkbyBub3QgaGVzaXRhdGUgdG8gcmVhY2ggb3V0IHRvIHVzIGJ5IGRlc2NyaWJpbmcgeW91ciBjYXNlIHZpYSBHaXRodWIgSXNzdWVzLgoKIyMjIyBLbm93biBpc3N1ZXMKCjEuIGB6Lm51bGxhYmxlKHNjaGVtYSlgIFtkb2VzIG5vdCBnZW5lcmF0ZSBhICRyZWYgZm9yIHVuZGVybHlpbmcgcmVnaXN0ZXJlZCBzY2hlbWFzXShodHRwczovL2dpdGh1Yi5jb20vYXN0ZWFzb2x1dGlvbnMvem9kLXRvLW9wZW5hcGkvaXNzdWVzLzE0MSkuCiAgLSBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGxpbWl0YXRpb24uCiAgLSBIb3dldmVyIHlvdSBjYW4gc2ltcGx5IHVzZSBgc2NoZW1hLm51bGxhYmxlKClgIHdoaWNoIGhhcyB0aGUgZXhhY3Qgc2FtZSBlZmZlY3QgYHpvZGAgd2lzZSBidXQgaXQgaXMgYWxzbyBmdWxseSBzdXBwb3J0ZWQgb24gb3VyIGVuZC4KCiMjIFRlY2hub2xvZ2llcwoKLSBbVHlwZXNjcmlwdF0oaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnLykKLSBbWm9kIDMueF0oaHR0cHM6Ly9naXRodWIuY29tL2NvbGluaGFja3Mvem9kKQotIFtPcGVuQVBJIDMueCBUU10oaHR0cHM6Ly9naXRodWIuY29tL21ldGFkZXZwcm8vb3BlbmFwaTMtdHMpCg== readmeEtag: '"173414e467fc360c29fd0d48cd743605e8f85c62"' readmeLastModified: Thu, 08 Aug 2024 14:07:24 GMT repositoryId: 481579846 description: A library that generates OpenAPI (Swagger) docs from Zod schemas created: '2022-04-14T11:32:57Z' updated: '2024-09-05T10:20:41Z' language: TypeScript archived: false stars: 892 watchers: 10 forks: 55 owner: asteasolutions logo: https://avatars.githubusercontent.com/u/5244095?v=4 license: MIT repoEtag: '"30cd34f2f192fbc9e2152f42590173774f44abf6c24031a8ec9f74b1bcfc1a8b"' repoLastModified: Thu, 05 Sep 2024 10:20:41 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/networknt/json-schema-validator v3: true repositoryMetadata: base64Readme: >- W1N0YWNrIE92ZXJmbG93XShodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy90YWdnZWQvbGlnaHQtNGopIHwKW0dvb2dsZSBHcm91cF0oaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8jIWZvcnVtL2xpZ2h0LTRqKSB8CltHaXR0ZXIgQ2hhdF0oaHR0cHM6Ly9naXR0ZXIuaW0vbmV0d29ya250L2pzb24tc2NoZW1hLXZhbGlkYXRvcikgfApbU3VicmVkZGl0XShodHRwczovL3d3dy5yZWRkaXQuY29tL3IvbGlnaHRhcGkvKSB8CltZb3V0dWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSENSTVdKVlh3OGlCN3pLeEY1NUJ5dykgfApbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2MubmV0d29ya250LmNvbS9saWJyYXJ5L2pzb24tc2NoZW1hLXZhbGlkYXRvci8pIHwKW0NvbnRyaWJ1dGlvbiBHdWlkZV0oaHR0cHM6Ly9kb2MubmV0d29ya250LmNvbS9jb250cmlidXRlLykgfAoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9uZXR3b3JrbnQvanNvbi1zY2hlbWEtdmFsaWRhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbmV0d29ya250L2pzb24tc2NoZW1hLXZhbGlkYXRvci9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwpClshW01hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2NvbS5uZXR3b3JrbnQvanNvbi1zY2hlbWEtdmFsaWRhdG9yLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYSU3QzElN0NnJTNBY29tLm5ldHdvcmtudCUyMGElM0Fqc29uLXNjaGVtYS12YWxpZGF0b3IpClshW2NvZGVjb3YuaW9dKGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvbmV0d29ya250L2pzb24tc2NoZW1hLXZhbGlkYXRvci9jb3ZlcmFnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvbmV0d29ya250L2pzb24tc2NoZW1hLXZhbGlkYXRvcj9icmFuY2g9bWFzdGVyKQpbIVtKYXZhZG9jc10oaHR0cDovL3d3dy5qYXZhZG9jLmlvL2JhZGdlL2NvbS5uZXR3b3JrbnQvanNvbi1zY2hlbWEtdmFsaWRhdG9yLnN2ZyldKGh0dHBzOi8vd3d3LmphdmFkb2MuaW8vZG9jL2NvbS5uZXR3b3JrbnQvanNvbi1zY2hlbWEtdmFsaWRhdG9yKQoKVGhpcyBpcyBhIEphdmEgaW1wbGVtZW50YXRpb24gb2YgdGhlIFtKU09OIFNjaGVtYSBDb3JlIERyYWZ0IHY0LCB2NiwgdjcsIHYyMDE5LTA5IGFuZCB2MjAyMC0xMl0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvc3BlY2lmaWNhdGlvbikgc3BlY2lmaWNhdGlvbiBmb3IgSlNPTiBzY2hlbWEgdmFsaWRhdGlvbi4gVGhpcyBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBbQ3VzdG9taXppbmcgTWV0YS1TY2hlbWFzLCBWb2NhYnVsYXJpZXMsIEtleXdvcmRzIGFuZCBGb3JtYXRzXShkb2MvY3VzdG9tLW1ldGEtc2NoZW1hLm1kKS4KCkluIGFkZGl0aW9uLCBbT3BlbkFQSV0oZG9jL29wZW5hcGkubWQpIDMgcmVxdWVzdC9yZXNwb25zZSB2YWxpZGF0aW9uIGlzIHN1cHBvcnRlZCB3aXRoIHRoZSB1c2Ugb2YgdGhlIGFwcHJvcHJpYXRlIG1ldGEtc2NoZW1hLiBGb3IgdXNlcnMgd2hvIHdhbnQgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBmcm9tIGEgSlNPTiBub2RlIGJhc2VkIG9uIHRoZSBzY2hlbWEsIHRoZSBbd2Fsa2Vyc10oZG9jL3dhbGtlcnMubWQpIGNhbiBoZWxwLiBUaGUgSlNPTiBwYXJzZXIgdXNlZCBpcyB0aGUgW0phY2tzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9GYXN0ZXJYTUwvamFja3NvbikgcGFyc2VyLiBBcyBpdCBpcyBhIGtleSBjb21wb25lbnQgaW4gb3VyIFtsaWdodC00al0oaHR0cHM6Ly9naXRodWIuY29tL25ldHdvcmtudC9saWdodC00aikgbWljcm9zZXJ2aWNlcyBmcmFtZXdvcmsgdG8gdmFsaWRhdGUgcmVxdWVzdC9yZXNwb25zZSBhZ2FpbnN0IE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmb3IgW2xpZ2h0LXJlc3QtNGpdKGh0dHA6Ly93d3cubmV0d29ya250LmNvbS9zdHlsZS9saWdodC1yZXN0LTRqLykgYW5kIFJQQyBzY2hlbWEgZm9yIFtsaWdodC1oeWJyaWQtNGpdKGh0dHA6Ly93d3cubmV0d29ya250LmNvbS9zdHlsZS9saWdodC1oeWJyaWQtNGovKSBhdCBydW50aW1lLCBwZXJmb3JtYW5jZSBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgYXNwZWN0IGluIHRoZSBkZXNpZ24uCgojIyBKU09OIFNjaGVtYSBTcGVjaWZpY2F0aW9uIGNvbXBhdGliaWxpdHkKClshW1N1cHBvcnRlZCBEaWFsZWN0c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lbmRwb2ludD91cmw9aHR0cHMlM0ElMkYlMkZib3d0aWUucmVwb3J0JTJGYmFkZ2VzJTJGamF2YS1jb20ubmV0d29ya250LWpzb24tc2NoZW1hLXZhbGlkYXRvciUyRnN1cHBvcnRlZF92ZXJzaW9ucy5qc29uKV0oaHR0cHM6Ly9ib3d0aWUucmVwb3J0LyMvaW1wbGVtZW50YXRpb25zL2phdmEtbmV0d29ya250LWpzb24tc2NoZW1hLXZhbGlkYXRvcikKWyFbRHJhZnQgMjAyMC0xMl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lbmRwb2ludD91cmw9aHR0cHMlM0ElMkYlMkZib3d0aWUucmVwb3J0JTJGYmFkZ2VzJTJGamF2YS1jb20ubmV0d29ya250LWpzb24tc2NoZW1hLXZhbGlkYXRvciUyRmNvbXBsaWFuY2UlMkZkcmFmdDIwMjAtMTIuanNvbildKGh0dHBzOi8vYm93dGllLnJlcG9ydC8jL2RpYWxlY3RzL2RyYWZ0MjAyMC0xMikKWyFbRHJhZnQgMjAxOS0wOV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lbmRwb2ludD91cmw9aHR0cHMlM0ElMkYlMkZib3d0aWUucmVwb3J0JTJGYmFkZ2VzJTJGamF2YS1jb20ubmV0d29ya250LWpzb24tc2NoZW1hLXZhbGlkYXRvciUyRmNvbXBsaWFuY2UlMkZkcmFmdDIwMTktMDkuanNvbildKGh0dHBzOi8vYm93dGllLnJlcG9ydC8jL2RpYWxlY3RzL2RyYWZ0MjAxOS0wOSkKWyFbRHJhZnQgN10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lbmRwb2ludD91cmw9aHR0cHMlM0ElMkYlMkZib3d0aWUucmVwb3J0JTJGYmFkZ2VzJTJGamF2YS1jb20ubmV0d29ya250LWpzb24tc2NoZW1hLXZhbGlkYXRvciUyRmNvbXBsaWFuY2UlMkZkcmFmdDcuanNvbildKGh0dHBzOi8vYm93dGllLnJlcG9ydC8jL2RpYWxlY3RzL2RyYWZ0NykKWyFbRHJhZnQgNl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lbmRwb2ludD91cmw9aHR0cHMlM0ElMkYlMkZib3d0aWUucmVwb3J0JTJGYmFkZ2VzJTJGamF2YS1jb20ubmV0d29ya250LWpzb24tc2NoZW1hLXZhbGlkYXRvciUyRmNvbXBsaWFuY2UlMkZkcmFmdDYuanNvbildKGh0dHBzOi8vYm93dGllLnJlcG9ydC8jL2RpYWxlY3RzL2RyYWZ0NikKWyFbRHJhZnQgNF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lbmRwb2ludD91cmw9aHR0cHMlM0ElMkYlMkZib3d0aWUucmVwb3J0JTJGYmFkZ2VzJTJGamF2YS1jb20ubmV0d29ya250LWpzb24tc2NoZW1hLXZhbGlkYXRvciUyRmNvbXBsaWFuY2UlMkZkcmFmdDQuanNvbildKGh0dHBzOi8vYm93dGllLnJlcG9ydC8jL2RpYWxlY3RzL2RyYWZ0NCkKCkluZm9ybWF0aW9uIG9uIHRoZSBjb21wYXRpYmlsaXR5IHN1cHBvcnQgZm9yIGVhY2ggdmVyc2lvbiwgaW5jbHVkaW5nIGtub3duIGlzc3VlcywgY2FuIGJlIGZvdW5kIGluIHRoZSBbQ29tcGF0aWJpbGl0eSB3aXRoIEpTT04gU2NoZW1hIHZlcnNpb25zXShkb2MvY29tcGF0aWJpbGl0eS5tZCkgZG9jdW1lbnQuCgpTaW5jZSBbRHJhZnQgMjAxOS0wOV0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAxOS0wOS9qc29uLXNjaGVtYS12YWxpZGF0aW9uI3JmYy5zZWN0aW9uLjcpIHRoZSBgZm9ybWF0YCBrZXl3b3JkIG9ubHkgZ2VuZXJhdGVzIGFubm90YXRpb25zIGJ5IGRlZmF1bHQgYW5kIGRvZXMgbm90IGdlbmVyYXRlIGFzc2VydGlvbnMuCgpUaGlzIGJlaGF2aW9yIGNhbiBiZSBvdmVycmlkZGVuIHRvIGdlbmVyYXRlIGFzc2VydGlvbnMgYnkgc2V0dGluZyB0aGUgYHNldEZvcm1hdEFzc2VydGlvbnNFbmFibGVkYCB0byBgdHJ1ZWAgaW4gYFNjaGVtYVZhbGlkYXRvcnNDb25maWdgIG9yIGBFeGVjdXRpb25Db25maWdgLgoKIyMgVXBncmFkaW5nIHRvIG5ldyB2ZXJzaW9ucwoKVGhpcyBsaWJyYXJ5IGNhbiBjb250YWluIGJyZWFraW5nIGNoYW5nZXMgaW4gYG1pbm9yYCB2ZXJzaW9uIHJlbGVhc2VzIHRoYXQgbWF5IHJlcXVpcmUgY29kZSBjaGFuZ2VzLgoKSW5mb3JtYXRpb24gb24gbm90YWJsZSBvciBicmVha2luZyBjaGFuZ2VzIHdoZW4gdXBncmFkaW5nIHRoZSBsaWJyYXJ5IGNhbiBiZSBmb3VuZCBpbiB0aGUgW1VwZ3JhZGluZyB0byBuZXcgdmVyc2lvbnNdKGRvYy91cGdyYWRpbmcubWQpIGRvY3VtZW50LgoKVGhlIFtSZWxlYXNlc10oaHR0cHM6Ly9naXRodWIuY29tL25ldHdvcmtudC9qc29uLXNjaGVtYS12YWxpZGF0b3IvcmVsZWFzZXMpIHBhZ2Ugd2lsbCBjb250YWluIGluZm9ybWF0aW9uIG9uIHRoZSBsYXRlc3QgdmVyc2lvbnMuCgojIyBDb21wYXJpbmcgYWdhaW5zdCBvdGhlciBpbXBsZW1lbnRhdGlvbnMKClRoZSBbSlNPTiBTY2hlbWEgVmFsaWRhdGlvbiBDb21wYXJpc29uXShodHRwczovL2dpdGh1Yi5jb20vY3JlZWstc2VydmljZS9qc29uLXNjaGVtYS12YWxpZGF0aW9uLWNvbXBhcmlzb24pIHByb2plY3QgZnJvbSBDcmVlayBoYXMgYW4gaW5mb3JtYXRpdmUgW0NvbXBhcmlzb24gb2YgSlZNIGJhc2VkIFNjaGVtYSBWYWxpZGF0aW9uIEltcGxlbWVudGF0aW9uc10oaHR0cHM6Ly93d3cuY3JlZWtzZXJ2aWNlLm9yZy9qc29uLXNjaGVtYS12YWxpZGF0aW9uLWNvbXBhcmlzb24vKSB3aGljaCBjb21wYXJlcyBib3RoIHRoZSBmdW5jdGlvbmFsIGFuZCBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSBudW1iZXIgb2YgZGlmZmVyZW50IEphdmEgaW1wbGVtZW50YXRpb25zLiAKKiBbRnVuY3Rpb25hbCBjb21wYXJpc29uXShodHRwczovL3d3dy5jcmVla3NlcnZpY2Uub3JnL2pzb24tc2NoZW1hLXZhbGlkYXRpb24tY29tcGFyaXNvbi9mdW5jdGlvbmFsI3N1bW1hcnktcmVzdWx0cy10YWJsZSkKKiBbUGVyZm9ybWFuY2UgY29tcGFyaXNvbl0oaHR0cHM6Ly93d3cuY3JlZWtzZXJ2aWNlLm9yZy9qc29uLXNjaGVtYS12YWxpZGF0aW9uLWNvbXBhcmlzb24vcGVyZm9ybWFuY2UjanNvbi1zY2hlbWEtdGVzdC1zdWl0ZS1iZW5jaG1hcmspCgpUaGUgW0Jvd3RpZV0oaHR0cHM6Ly9naXRodWIuY29tL2Jvd3RpZS1qc29uLXNjaGVtYS9ib3d0aWUpIHByb2plY3QgaGFzIGEgW3JlcG9ydF0oaHR0cHM6Ly9ib3d0aWUucmVwb3J0LykgdGhhdCBjb21wYXJlcyBmdW5jdGlvbmFsIGNoYXJhY3RlcmlzdGljcyBvZiBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zLCBpbmNsdWRpbmcgbm9uLUphdmEgaW1wbGVtZW50YXRpb25zLCBidXQgZG9lcyBub3QgZG8gYW55IHBlcmZvcm1hbmNlIGJlbmNobWFya2luZy4KCiMjIFdoeSB0aGlzIGxpYnJhcnkKCiMjIyMgUGVyZm9ybWFuY2UKClRoaXMgc2hvdWxkIGJlIHRoZSBmYXN0ZXN0IEphdmEgSlNPTiBTY2hlbWEgVmFsaWRhdG9yIGltcGxlbWVudGF0aW9uLgoKVGhlIGZvbGxvd2luZyBpcyB0aGUgYmVuY2htYXJrIHJlc3VsdHMgZnJvbSB0aGUgW0pTT04gU2NoZW1hIFZhbGlkYXRvciBQZXJmdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL25ldHdvcmtudC9qc29uLXNjaGVtYS12YWxpZGF0b3ItcGVyZnRlc3QpIHByb2plY3QgdGhhdCB1c2VzIHRoZSBbSmF2YSBNaWNyb2JlbmNobWFyayBIYXJuZXNzXShodHRwczovL2dpdGh1Yi5jb20vb3Blbmpkay9qbWgpLgoKTm90ZSB0aGF0IHRoZSBiZW5jaG1hcmsgcmVzdWx0cyBhcmUgaGlnaGx5IGRlcGVuZGVudCBvbiB0aGUgaW5wdXQgZGF0YSB3b3JrbG9hZHMgYW5kIHNjaGVtYXMgdXNlZCBmb3IgdGhlIHZhbGlkYXRpb24uCgpJbiB0aGlzIGNhc2UgdGhpcyB3b3JrbG9hZCBpcyB1c2luZyB0aGUgRHJhZnQgNCBzcGVjaWZpY2F0aW9uIGFuZCBsYXJnZWx5IHRlc3RzIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgZXZhbHVhdGluZyB0aGUgYHByb3BlcnRpZXNgIGtleXdvcmQuIFlvdSBtYXkgcmVmZXIgdG8gW1Jlc3VsdHMgb2YgcGVyZm9ybWFuY2UgY29tcGFyaXNvbiBvZiBKVk0gYmFzZWQgSlNPTiBTY2hlbWEgVmFsaWRhdGlvbiBJbXBsZW1lbnRhdGlvbnNdKGh0dHBzOi8vd3d3LmNyZWVrc2VydmljZS5vcmcvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi1jb21wYXJpc29uL3BlcmZvcm1hbmNlI2pzb24tc2NoZW1hLXRlc3Qtc3VpdGUtYmVuY2htYXJrKSBmb3IgYmVuY2htYXJrIHJlc3VsdHMgZm9yIG1vcmUgdHlwaWNhbCB3b3JrbG9hZHMKCklmIHBlcmZvcm1hbmNlIGlzIGFuIGltcG9ydGFudCBjb25zaWRlcmF0aW9uLCB0aGUgc3BlY2lmaWMgc2FtcGxlIHdvcmtsb2FkcyBzaG91bGQgYmUgYmVuY2htYXJrZWQsIGFzIHRoZXJlIGFyZSBkaWZmZXJlbnQgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzIHdoZW4gY2VydGFpbiBrZXl3b3JkcyBhcmUgdXNlZC4gRm9yIGluc3RhbmNlIHRoZSB1c2Ugb2YgdGhlIGB1bmV2YWx1YXRlZFByb3BlcnRpZXNgIG9yIGB1bmV2YWx1YXRlZEl0ZW1zYCBrZXl3b3JkIHdpbGwgdHJpZ2dlciBhbm5vdGF0aW9uIGNvbGxlY3Rpb24gaW4gdGhlIHJlbGF0ZWQgdmFsaWRhdG9ycywgc3VjaCBhcyB0aGUgYHByb3BlcnRpZXNgIG9yIGBpdGVtc2AgdmFsaWRhdG9ycywgYW5kIGFubm90YXRpb24gY29sbGVjdGlvbiB3aWxsIGFkdmVyc2VseSBhZmZlY3QgcGVyZm9ybWFuY2UuCgojIyMjIyBOZXR3b3JrTlQgMS40LjEKCmBgYApCZW5jaG1hcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgIENudCAgICAgIFNjb3JlICAgIEVycm9yICAgVW5pdHMKTmV0d29ya250QmVuY2htYXJrLnRlc3RWYWxpZGF0ZSAgICAgICAgICAgICAgICAgICAgIHRocnB0ICAgMTAgICA4MzUyLjEyNiDCsSA2MS44NzAgICBvcHMvcwpOZXR3b3JrbnRCZW5jaG1hcmsudGVzdFZhbGlkYXRlOmdjLmFsbG9jLnJhdGUgICAgICAgdGhycHQgICAxMCAgICA3MjEuMjk2IMKxICA1LjM0MiAgTUIvc2VjCk5ldHdvcmtudEJlbmNobWFyay50ZXN0VmFsaWRhdGU6Z2MuYWxsb2MucmF0ZS5ub3JtICB0aHJwdCAgIDEwICA5MDU2MC4wMTMgwrEgIDAuMDAxICAgIEIvb3AKTmV0d29ya250QmVuY2htYXJrLnRlc3RWYWxpZGF0ZTpnYy5jb3VudCAgICAgICAgICAgIHRocnB0ICAgMTAgICAgIDYxLjAwMCAgICAgICAgICAgY291bnRzCk5ldHdvcmtudEJlbmNobWFyay50ZXN0VmFsaWRhdGU6Z2MudGltZSAgICAgICAgICAgICB0aHJwdCAgIDEwICAgICA2OC4wMDAgICAgICAgICAgICAgICBtcwpgYGAKCiMjIyMjIyBFdmVyaXQgMS4xNC4xCgpgYGAKQmVuY2htYXJrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb2RlICBDbnQgICAgICAgU2NvcmUgICAgRXJyb3IgICBVbml0cwpFdmVyaXRCZW5jaG1hcmsudGVzdFZhbGlkYXRlICAgICAgICAgICAgICAgICAgICAgICAgdGhycHQgICAxMCAgICAzNzc1LjQ1MyDCsSA0NC4wMjMgICBvcHMvcwpFdmVyaXRCZW5jaG1hcmsudGVzdFZhbGlkYXRlOmdjLmFsbG9jLnJhdGUgICAgICAgICAgdGhycHQgICAxMCAgICAxNjY3LjM0NSDCsSAxOS40MzcgIE1CL3NlYwpFdmVyaXRCZW5jaG1hcmsudGVzdFZhbGlkYXRlOmdjLmFsbG9jLnJhdGUubm9ybSAgICAgdGhycHQgICAxMCAgNDYzMTA0LjAzMCDCsSAgMC4wMDMgICAgQi9vcApFdmVyaXRCZW5jaG1hcmsudGVzdFZhbGlkYXRlOmdjLmNvdW50ICAgICAgICAgICAgICAgdGhycHQgICAxMCAgICAgMTQwLjAwMCAgICAgICAgICAgY291bnRzCkV2ZXJpdEJlbmNobWFyay50ZXN0VmFsaWRhdGU6Z2MudGltZSAgICAgICAgICAgICAgICB0aHJwdCAgIDEwICAgICAxNTguMDAwICAgICAgICAgICAgICAgbXMKYGBgCgojIyMjIEZ1bmN0aW9uYWxpdHkKClRoaXMgaW1wbGVtZW50YXRpb24gaXMgdGVzdGVkIGFnYWluc3QgdGhlIFtKU09OIFNjaGVtYSBUZXN0IFN1aXRlXShodHRwczovL2dpdGh1Yi5jb20vanNvbi1zY2hlbWEtb3JnL0pTT04tU2NoZW1hLVRlc3QtU3VpdGUpLiBBcyB0ZXN0cyBhcmUgY29udGludWFsbHkgYWRkZWQgdG8gdGhlIHN1aXRlLCB0aGVzZSB0ZXN0IHJlc3VsdHMgbWF5IG5vdCBiZSBjdXJyZW50LgoKfCBJbXBsZW1lbnRhdGlvbnMgfCBPdmVyYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERSQUZUXzAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRFJBRlRfMDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERSQUZUXzA2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERSQUZUXzA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEUkFGVF8yMDE5XzA5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERSQUZUXzIwMjBfMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgTmV0d29ya050ICAgICAgIHwgcGFzczogcjo0ODAzICgxMDAuMCUpIG86MjM3MiAoMTAwLjAlKTxicj5mYWlsOiByOjAgKDAuMCUpIG86MCAoMC4wJSkgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBhc3M6IHI6NjEwICgxMDAuMCUpIG86MjUxICgxMDAuMCUpPGJyPmZhaWw6IHI6MCAoMC4wJSkgbzowICgwLjAlKSAgfCBwYXNzOiByOjgyMiAoMTAwLjAlKSBvOjMxOCAoMTAwLjAlKTxicj5mYWlsOiByOjAgKDAuMCUpIG86MCAoMC4wJSkgfCBwYXNzOiByOjkwNiAoMTAwLjAlKSBvOjU0MSAoMTAwLjAlKTxicj5mYWlsOiByOjAgKDAuMCUpIG86MCAoMC4wJSkgICAgIHwgcGFzczogcjoxMjIwICgxMDAuMCUpIG86NjI1ICgxMDAuMCUpPGJyPmZhaWw6IHI6MCAoMC4wJSkgbzowICgwLjAlKSAgfCBwYXNzOiByOjEyNDUgKDEwMC4wJSkgbzo2MzcgKDEwMC4wJSk8YnI+ZmFpbDogcjowICgwLjAlKSBvOjAgKDAuMCUpICAgIHwKCiogTm90ZSB0aGF0IHRoaXMgdXNlcyB0aGUgYEpvbmlSZWd1bGFyRXhwcmVzc2lvbkZhY3RvcnlgIGZvciB0aGUgYHBhdHRlcm5gIGFuZCBgZm9ybWF0YCBgcmVnZXhgIHRlc3RzLgoKIyMjIyBKYWNrc29uIFBhcnNlcgoKVGhpcyBsaWJyYXJ5IHVzZXMgW0phY2tzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9GYXN0ZXJYTUwvamFja3Nvbikgd2hpY2ggaXMgYSBKYXZhIEpTT04gcGFyc2VyIHRoYXQgaXMgd2lkZWx5IHVzZWQgaW4gb3RoZXIgcHJvamVjdHMuIElmIHlvdSBhcmUgYWxyZWFkeSB1c2luZyB0aGUgSmFja3NvbiBwYXJzZXIgaW4geW91ciBwcm9qZWN0LCBpdCBpcyBuYXR1cmFsIHRvIGNob29zZSB0aGlzIGxpYnJhcnkgb3ZlciBvdGhlcnMgZm9yIHNjaGVtYSB2YWxpZGF0aW9uLiAKCiMjIyMgWUFNTCBTdXBwb3J0CgpUaGUgbGlicmFyeSB3b3JrcyB3aXRoIEpTT04gYW5kIFlBTUwgb24gYm90aCBzY2hlbWEgZGVmaW5pdGlvbnMgYW5kIGlucHV0IGRhdGEuIAoKIyMjIyBPcGVuQVBJIFN1cHBvcnQKClRoZSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uIGlzIHVzaW5nIEpTT04gc2NoZW1hIHRvIHZhbGlkYXRlIHRoZSByZXF1ZXN0L3Jlc3BvbnNlLCBidXQgdGhlcmUgYXJlIHNvbWUgZGlmZmVyZW5jZXMuIFdpdGggYSBjb25maWd1cmF0aW9uIGZpbGUsIHlvdSBjYW4gZW5hYmxlIHRoZSBsaWJyYXJ5IHRvIHdvcmsgd2l0aCBPcGVuQVBJIDMuMCB2YWxpZGF0aW9uLiAKCiMjIyMgTWluaW1hbCBEZXBlbmRlbmNpZXMKCkZvbGxvd2luZyB0aGUgZGVzaWduIHByaW5jaXBsZSBvZiB0aGUgTGlnaHQgUGxhdGZvcm0sIHRoaXMgbGlicmFyeSBoYXMgbWluaW1hbCBkZXBlbmRlbmNpZXMgdG8gZW5zdXJlIHRoZXJlIGFyZSBubyBkZXBlbmRlbmN5IGNvbmZsaWN0cyB3aGVuIHVzaW5nIGl0LiAKCiMjIyMjIFJlcXVpcmVkIERlcGVuZGVuY2llcwoKVGhlIGZvbGxvd2luZyBhcmUgdGhlIGRlcGVuZGVuY2llcyB0aGF0IHdpbGwgYXV0b21hdGljYWxseSBiZSBpbmNsdWRlZCB3aGVuIHRoaXMgbGlicmFyeSBpcyBpbmNsdWRlZC4KCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDwhLS0gVXNlZCBmb3IgbG9nZ2luZyAtLT4KICAgIDxncm91cElkPm9yZy5zbGY0ajwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPnNsZjRqLWFwaTwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7dmVyc2lvbi5zbGY0an08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KCjxkZXBlbmRlbmN5PgogICAgPCEtLSBVc2VkIHRvIHByb2Nlc3MgSlNPTiAtLT4KICAgIDxncm91cElkPmNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5jb3JlPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+amFja3Nvbi1kYXRhYmluZDwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7dmVyc2lvbi5qYWNrc29ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgoKPGRlcGVuZGVuY3k+CiAgICA8IS0tIFVzZWQgdG8gcHJvY2VzcyBZQU1MIC0tPgogICAgPGdyb3VwSWQ+Y29tLmZhc3RlcnhtbC5qYWNrc29uLmRhdGFmb3JtYXQ8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5qYWNrc29uLWRhdGFmb3JtYXQteWFtbDwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7dmVyc2lvbi5qYWNrc29ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgoKPGRlcGVuZGVuY3k+CiAgICA8IS0tIFVzZWQgdG8gdmFsaWRhdGUgUkZDIDMzMzkgZGF0ZSBhbmQgZGF0ZS10aW1lIC0tPgogICAgPGdyb3VwSWQ+Y29tLmV0aGxvLnRpbWU8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5pdHU8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke3ZlcnNpb24uaXR1fTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCiMjIyMjIE9wdGlvbmFsIERlcGVuZGVuY2llcwoKVGhlIGZvbGxvd2luZyBhcmUgdGhlIG9wdGlvbmFsIGRlcGVuZGVuY2llcyB0aGF0IG1heSBiZSByZXF1aXJlZCBmb3IgY2VydGFpbiBvcHRpb25zLgoKVGhlc2UgYXJlIG5vdCBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkIGFuZCBzZXR0aW5nIHRoZSByZWxldmFudCBvcHRpb24gd2l0aG91dCBhZGRpbmcgdGhlIGxpYnJhcnkgd2lsbCByZXN1bHQgaW4gYSBgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbmAuCgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8IS0tIFVzZWQgdG8gdmFsaWRhdGUgRUNNQSAyNjIgcmVndWxhciBleHByZXNzaW9ucyAtLT4KICAgIDwhLS0gQXBwcm94aW1hdGVseSA1MCBNQiBpbiBkZXBlbmRlbmNpZXMgLS0+CiAgICA8IS0tIEdyYWFsSlNSZWd1bGFyRXhwcmVzc2lvbkZhY3RvcnkgLS0+CiAgICA8Z3JvdXBJZD5vcmcuZ3JhYWx2bS5qczwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPmpzPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHt2ZXJzaW9uLmdyYWFsanN9PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+Cgo8ZGVwZW5kZW5jeT4KICAgIDwhLS0gVXNlZCB0byB2YWxpZGF0ZSBFQ01BIDI2MiByZWd1bGFyIGV4cHJlc3Npb25zIC0tPgogICAgPCEtLSBBcHByb3hpbWF0ZWx5IDIgTUIgaW4gZGVwZW5kZW5jaWVzIC0tPgogICAgPCEtLSBKb25pUmVndWxhckV4cHJlc3Npb25GYWN0b3J5IC0tPgogICAgPGdyb3VwSWQ+b3JnLmpydWJ5Lmpvbmk8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5qb25pPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHt2ZXJzaW9uLmpvbml9PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYAoKIyMjIyMgRXhjbHVkYWJsZSBEZXBlbmRlbmNpZXMKClRoZSBmb2xsb3dpbmcgYXJlIHJlcXVpcmVkIGRlcGVuZGVuY2llcyB0aGF0IGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkLCBidXQgY2FuIGJlIGV4cGxpY2l0bHkgZXhjbHVkZWQgaWYgdGhleSBhcmUgbm90IHJlcXVpcmVkLgoKVGhlIFlBTUwgZGVwZW5kZW5jeSBjYW4gYmUgZXhjbHVkZWQgaWYgdGhpcyBpcyBub3QgcmVxdWlyZWQuIEF0dGVtcHRpbmcgdG8gcHJvY2VzcyBzY2hlbWFzIG9yIGlucHV0IHRoYXQgYXJlIFlBTUwgd2lsbCByZXN1bHQgaW4gYSBgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbmAuCgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5jb20ubmV0d29ya250PC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+anNvbi1zY2hlbWEtdmFsaWRhdG9yPC9hcnRpZmFjdElkPgogICAgPGV4Y2x1c2lvbnM+CiAgICAgICAgPGV4Y2x1c2lvbj4KICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmZhc3RlcnhtbC5qYWNrc29uLmRhdGFmb3JtYXQ8L2dyb3VwSWQ+CiAgICAgICAgICAgIDxhcnRpZmFjdElkPmphY2tzb24tZGF0YWZvcm1hdC15YW1sPC9hcnRpZmFjdElkPgogICAgICAgIDwvZXhjbHVzaW9uPgogICAgPC9leGNsdXNpb25zPgo8L2RlcGVuZGVuY3k+CmBgYAoKVGhlIEV0aGxvIFRpbWUgZGVwZW5kZW5jeSBjYW4gYmUgZXhjbHVkZWQgaWYgYWNjdXJhdGUgdmFsaWRhdGlvbiBvZiB0aGUgYGRhdGUtdGltZWAgZm9ybWF0IGlzIG5vdCByZXF1aXJlZC4gVGhlIGBkYXRlLXRpbWVgIGZvcm1hdCB3aWxsIHRoZW4gdXNlIGBqYXZhLnRpbWUuT2Zmc2V0RGF0ZVRpbWVgIHRvIGRldGVybWluZSBpZiB0aGUgYGRhdGUtdGltZWAgaXMgdmFsaWQgLgoKYGBgeG1sCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+Y29tLm5ldHdvcmtudDwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPmpzb24tc2NoZW1hLXZhbGlkYXRvcjwvYXJ0aWZhY3RJZD4KICAgIDxleGNsdXNpb25zPgogICAgICAgIDxleGNsdXNpb24+CiAgICAgICAgICAgIDxncm91cElkPmNvbS5ldGhsby50aW1lPC9ncm91cElkPgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5pdHU8L2FydGlmYWN0SWQ+CiAgICAgICAgPC9leGNsdXNpb24+CiAgICA8L2V4Y2x1c2lvbnM+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyMjIENvbW11bml0eQoKVGhpcyBsaWJyYXJ5IGlzIHZlcnkgYWN0aXZlIHdpdGggYSBsb3Qgb2YgY29udHJpYnV0b3JzLiBOZXcgZmVhdHVyZXMgYW5kIGJ1ZyBmaXhlcyBhcmUgaGFuZGxlZCBxdWlja2x5IGJ5IHRoZSB0ZWFtIG1lbWJlcnMuIEJlY2F1c2UgaXQgaXMgYW4gZXNzZW50aWFsIGRlcGVuZGVuY3kgb2YgdGhlIFtsaWdodC00al0oaHR0cHM6Ly9naXRodWIuY29tL25ldHdvcmtudC9saWdodC00aikgZnJhbWV3b3JrIGluIHRoZSBzYW1lIEdpdEh1YiBvcmdhbml6YXRpb24sIGl0IHdpbGwgYmUgZXZvbHZlZCBhbmQgbWFpbnRhaW5lZCBhbG9uZyB3aXRoIHRoZSBmcmFtZXdvcmsuIAoKIyMgUHJlcmVxdWlzaXRlCgpUaGUgbGlicmFyeSBzdXBwb3J0cyBKYXZhIDggYW5kIHVwLiBJZiB5b3Ugd2FudCB0byBidWlsZCBmcm9tIHRoZSBzb3VyY2UgY29kZSwgeW91IG5lZWQgdG8gaW5zdGFsbCBKREsgOCBsb2NhbGx5LiBUbyBzdXBwb3J0IG11bHRpcGxlIHZlcnNpb24gb2YgSkRLLCB5b3UgY2FuIHVzZSBbU0RLTUFOXShodHRwczovL3d3dy5uZXR3b3JrbnQuY29tL3Rvb2wvc2RrLykKCiMjIFVzYWdlCgojIyMgQWRkaW5nIHRoZSBkZXBlbmRlbmN5CgpUaGlzIHBhY2thZ2UgaXMgYXZhaWxhYmxlIG9uIE1hdmVuIGNlbnRyYWwuIAoKIyMjIyBNYXZlbjogCgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5jb20ubmV0d29ya250PC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+anNvbi1zY2hlbWEtdmFsaWRhdG9yPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS41LjE8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyMjIEdyYWRsZToKCmBgYGphdmEKZGVwZW5kZW5jaWVzIHsKICAgIGltcGxlbWVudGF0aW9uKGdyb3VwOiAnY29tLm5ldHdvcmtudCcsIG5hbWU6ICdqc29uLXNjaGVtYS12YWxpZGF0b3InLCB2ZXJzaW9uOiAnMS41LjEnKTsKfQpgYGAKCiMjIyBWYWxpZGF0aW5nIGlucHV0cyBhZ2FpbnN0IGEgc2NoZW1hCgpUaGUgZm9sbG93aW5nIGV4YW1wbGUgZGVtb25zdHJhdGVzIGhvdyBpbnB1dHMgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IGEgc2NoZW1hLiBJdCBjb21wcmlzZXMgdGhlIGZvbGxvd2luZyBzdGVwcy4KCiogQ3JlYXRpbmcgYSBzY2hlbWEgZmFjdG9yeSB3aXRoIHRoZSBkZWZhdWx0IHNjaGVtYSBkaWFsZWN0IGFuZCBob3cgdGhlIHNjaGVtYXMgY2FuIGJlIHJldHJpZXZlZC4gCiAgKiBDb25maWd1cmluZyBtYXBwaW5nIHRoZSBgJGlkYCB0byBhIHJldHJpZXZhbCBVUkkgdXNpbmcgYHNjaGVtYU1hcHBlcnNgLgogICogQ29uZmlndXJpbmcgaG93IHRoZSBzY2hlbWFzIGFyZSBsb2FkZWQgdXNpbmcgdGhlIHJldHJpZXZhbCBVUkkgdXNpbmcgYHNjaGVtYUxvYWRlcnNgLgogICAgRm9yIGluc3RhbmNlIGEgYE1hcDxTdHJpbmcsIFN0cmluZz4gc2NoZW1hc2AgY29udGFpbmluZyBhIG1hcHBpbmcgb2YgcmV0cmlldmFsIFVSSSB0byBzY2hlbWEgZGF0YSBhcyBhIGBTdHJpbmdgIGNhbiBieSBjb25maWd1cmVkIHVzaW5nIGBidWlsZGVyLnNjaGVtYUxvYWRlcnMoc2NoZW1hTG9hZGVycyAtPiBzY2hlbWFMb2FkZXJzLnNjaGVtYXMoc2NoZW1hcykpYC4gVGhpcyBhbHNvIGFjY2VwdHMgYSBgRnVuY3Rpb248U3RyaW5nLCBTdHJpbmc+IHNjaGVtYVJldHJpZXZhbEZ1bmN0aW9uYC4KKiBDcmVhdGluZyBhIGNvbmZpZ3VyYXRpb24gZm9yIGNvbnRyb2xsaW5nIHZhbGlkYXRvciBiZWhhdmlvci4KKiBMb2FkaW5nIGEgc2NoZW1hIGZyb20gYSBzY2hlbWEgbG9jYXRpb24gYWxvbmcgd2l0aCB0aGUgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24uCiogVXNpbmcgdGhlIHNjaGVtYSB0byB2YWxpZGF0ZSB0aGUgZGF0YSBhbG9uZyB3aXRoIHNldHRpbmcgYW55IGV4ZWN1dGlvbiBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGxpa2UgZm9yIGluc3RhbmNlIHRoZSBsb2NhbGUgb3Igd2hldGhlciBmb3JtYXQgYXNzZXJ0aW9ucyBhcmUgZW5hYmxlZC4KCmBgYGphdmEKLy8gVGhpcyBjcmVhdGVzIGEgc2NoZW1hIGZhY3RvcnkgdGhhdCB3aWxsIHVzZSBEcmFmdCAyMDIwLTEyIGFzIHRoZSBkZWZhdWx0IGlmICRzY2hlbWEgaXMgbm90IHNwZWNpZmllZAovLyBpbiB0aGUgc2NoZW1hIGRhdGEuIElmICRzY2hlbWEgaXMgc3BlY2lmaWVkIGluIHRoZSBzY2hlbWEgZGF0YSB0aGVuIHRoYXQgc2NoZW1hIGRpYWxlY3Qgd2lsbCBiZSB1c2VkCi8vIGluc3RlYWQgYW5kIHRoaXMgdmVyc2lvbiBpcyBpZ25vcmVkLgpKc29uU2NoZW1hRmFjdG9yeSBqc29uU2NoZW1hRmFjdG9yeSA9IEpzb25TY2hlbWFGYWN0b3J5LmdldEluc3RhbmNlKFZlcnNpb25GbGFnLlYyMDIwMTIsIGJ1aWxkZXIgLT4gCiAgICAvLyBUaGlzIGNyZWF0ZXMgYSBtYXBwaW5nIGZyb20gJGlkIHdoaWNoIHN0YXJ0cyB3aXRoIGh0dHBzOi8vd3d3LmV4YW1wbGUub3JnLyB0byB0aGUgcmV0cmlldmFsIFVSSSBjbGFzc3BhdGg6c2NoZW1hLwogICAgYnVpbGRlci5zY2hlbWFNYXBwZXJzKHNjaGVtYU1hcHBlcnMgLT4gc2NoZW1hTWFwcGVycy5tYXBQcmVmaXgoImh0dHBzOi8vd3d3LmV4YW1wbGUub3JnLyIsICJjbGFzc3BhdGg6c2NoZW1hLyIpKQopOwoKU2NoZW1hVmFsaWRhdG9yc0NvbmZpZy5CdWlsZGVyIGJ1aWxkZXIgPSBTY2hlbWFWYWxpZGF0b3JzQ29uZmlnLmJ1aWxkZXIoKTsKLy8gQnkgZGVmYXVsdCB0aGUgSkRLIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBpcyBub3QgRUNNQSAyNjIgY29tcGxpYW50IGlzIHVzZWQKLy8gTm90ZSB0aGF0IHNldHRpbmcgdGhpcyByZXF1aXJlcyBpbmNsdWRpbmcgb3B0aW9uYWwgZGVwZW5kZW5jaWVzCi8vIGJ1aWxkZXIucmVndWxhckV4cHJlc3Npb25GYWN0b3J5KEdyYWFsSlNSZWd1bGFyRXhwcmVzc2lvbkZhY3RvcnkuZ2V0SW5zdGFuY2UoKSk7Ci8vIGJ1aWxkZXIucmVndWxhckV4cHJlc3Npb25GYWN0b3J5KEpvbmlSZWd1bGFyRXhwcmVzc2lvbkZhY3RvcnkuZ2V0SW5zdGFuY2UoKSk7ClNjaGVtYVZhbGlkYXRvcnNDb25maWcgY29uZmlnID0gYnVpbGRlci5idWlsZCgpOwoKLy8gRHVlIHRvIHRoZSBtYXBwaW5nIHRoZSBzY2hlbWEgd2lsbCBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgY2xhc3NwYXRoIGF0IGNsYXNzcGF0aDpzY2hlbWEvZXhhbXBsZS1tYWluLmpzb24uCi8vIElmIHRoZSBzY2hlbWEgZGF0YSBkb2VzIG5vdCBzcGVjaWZ5IGFuICRpZCB0aGUgYWJzb2x1dGUgSVJJIG9mIHRoZSBzY2hlbWEgbG9jYXRpb24gd2lsbCBiZSB1c2VkIGFzIHRoZSAkaWQuCkpzb25TY2hlbWEgc2NoZW1hID0ganNvblNjaGVtYUZhY3RvcnkuZ2V0U2NoZW1hKFNjaGVtYUxvY2F0aW9uLm9mKCJodHRwczovL3d3dy5leGFtcGxlLm9yZy9leGFtcGxlLW1haW4uanNvbiIpLCBjb25maWcpOwpTdHJpbmcgaW5wdXQgPSAie1xyXG4iCiAgICArICIgIFwibWFpblwiOiB7XHJcbiIKICAgICsgIiAgICBcImNvbW1vblwiOiB7XHJcbiIKICAgICsgIiAgICAgIFwiZmllbGRcIjogXCJpbnZhbGlkZmllbGRcIlxyXG4iCiAgICArICIgICAgfVxyXG4iCiAgICArICIgIH1cclxuIgogICAgKyAifSI7CgpTZXQ8VmFsaWRhdGlvbk1lc3NhZ2U+IGFzc2VydGlvbnMgPSBzY2hlbWEudmFsaWRhdGUoaW5wdXQsIElucHV0Rm9ybWF0LkpTT04sIGV4ZWN1dGlvbkNvbnRleHQgLT4gewogICAgLy8gQnkgZGVmYXVsdCBzaW5jZSBEcmFmdCAyMDE5LTA5IHRoZSBmb3JtYXQga2V5d29yZCBvbmx5IGdlbmVyYXRlcyBhbm5vdGF0aW9ucyBhbmQgbm90IGFzc2VydGlvbnMKICAgIGV4ZWN1dGlvbkNvbnRleHQuZ2V0RXhlY3V0aW9uQ29uZmlnKCkuc2V0Rm9ybWF0QXNzZXJ0aW9uc0VuYWJsZWQodHJ1ZSk7Cn0pOwpgYGAKCiMjIyBWYWxpZGF0aW5nIGEgc2NoZW1hIGFnYWluc3QgYSBtZXRhLXNjaGVtYQoKVGhlIGZvbGxvd2luZyBleGFtcGxlIGRlbW9uc3RyYXRlcyBob3cgYSBzY2hlbWEgaXMgdmFsaWRhdGVkIGFnYWluc3QgYSBtZXRhLXNjaGVtYS4KClRoaXMgaXMgYWN0dWFsbHkgdGhlIHNhbWUgYXMgdmFsaWRhdGluZyBpbnB1dHMgYWdhaW5zdCBhIHNjaGVtYSBleGNlcHQgaW4gdGhpcyBjYXNlIHRoZSBpbnB1dCBpcyB0aGUgc2NoZW1hIGFuZCB0aGUgc2NoZW1hIHVzZWQgaXMgdGhlIG1ldGEtc2NoZW1hLgoKTm90ZSB0aGF0IHRoZSBtZXRhLXNjaGVtYXMgZm9yIERyYWZ0IDQsIERyYWZ0IDYsIERyYWZ0IDcsIERyYWZ0IDIwMTktMDkgYW5kIERyYWZ0IDIwMjAtMTIgYXJlIGJ1bmRsZWQgd2l0aCB0aGUgbGlicmFyeSBhbmQgdGhlc2UgY2xhc3NwYXRoIHJlc291cmNlcyB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC4KCmBgYGphdmEKSnNvblNjaGVtYUZhY3RvcnkganNvblNjaGVtYUZhY3RvcnkgPSBKc29uU2NoZW1hRmFjdG9yeS5nZXRJbnN0YW5jZShWZXJzaW9uRmxhZy5WMjAyMDEyKTsKClNjaGVtYVZhbGlkYXRvcnNDb25maWcuQnVpbGRlciBidWlsZGVyID0gU2NoZW1hVmFsaWRhdG9yc0NvbmZpZy5idWlsZGVyKCk7Ci8vIEJ5IGRlZmF1bHQgdGhlIEpESyByZWd1bGFyIGV4cHJlc3Npb24gaW1wbGVtZW50YXRpb24gd2hpY2ggaXMgbm90IEVDTUEgMjYyIGNvbXBsaWFudCBpcyB1c2VkCi8vIE5vdGUgdGhhdCBzZXR0aW5nIHRoaXMgcmVxdWlyZXMgaW5jbHVkaW5nIG9wdGlvbmFsIGRlcGVuZGVuY2llcwovLyBidWlsZGVyLnJlZ3VsYXJFeHByZXNzaW9uRmFjdG9yeShHcmFhbEpTUmVndWxhckV4cHJlc3Npb25GYWN0b3J5LmdldEluc3RhbmNlKCkpOwovLyBidWlsZGVyLnJlZ3VsYXJFeHByZXNzaW9uRmFjdG9yeShKb25pUmVndWxhckV4cHJlc3Npb25GYWN0b3J5LmdldEluc3RhbmNlKCkpOwpTY2hlbWFWYWxpZGF0b3JzQ29uZmlnIGNvbmZpZyA9IGJ1aWxkZXIuYnVpbGQoKTsKCi8vIER1ZSB0byB0aGUgbWFwcGluZyB0aGUgbWV0YS1zY2hlbWEgd2lsbCBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgY2xhc3NwYXRoIGF0IGNsYXNzcGF0aDpkcmFmdC8yMDIwLTEyL3NjaGVtYS4KSnNvblNjaGVtYSBzY2hlbWEgPSBqc29uU2NoZW1hRmFjdG9yeS5nZXRTY2hlbWEoU2NoZW1hTG9jYXRpb24ub2YoU2NoZW1hSWQuVjIwMjAxMiksIGNvbmZpZyk7ClN0cmluZyBpbnB1dCA9ICJ7XHJcbiIKICAgICsgIiAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXHJcbiIKICAgICsgIiAgXCJwcm9wZXJ0aWVzXCI6IHtcclxuIgogICAgKyAiICAgIFwia2V5XCI6IHtcclxuIgogICAgKyAiICAgICAgXCJ0aXRsZVwiIDogXCJNeSBrZXlcIixcclxuIgogICAgKyAiICAgICAgXCJ0eXBlXCI6IFwiaW52YWxpZHR5cGVcIlxyXG4iCiAgICArICIgICAgfVxyXG4iCiAgICArICIgIH1cclxuIgogICAgKyAifSI7ClNldDxWYWxpZGF0aW9uTWVzc2FnZT4gYXNzZXJ0aW9ucyA9IHNjaGVtYS52YWxpZGF0ZShpbnB1dCwgSW5wdXRGb3JtYXQuSlNPTiwgZXhlY3V0aW9uQ29udGV4dCAtPiB7CiAgICAvLyBCeSBkZWZhdWx0IHNpbmNlIERyYWZ0IDIwMTktMDkgdGhlIGZvcm1hdCBrZXl3b3JkIG9ubHkgZ2VuZXJhdGVzIGFubm90YXRpb25zIGFuZCBub3QgYXNzZXJ0aW9ucwogICAgZXhlY3V0aW9uQ29udGV4dC5nZXRFeGVjdXRpb25Db25maWcoKS5zZXRGb3JtYXRBc3NlcnRpb25zRW5hYmxlZCh0cnVlKTsKfSk7CmBgYCAgICAgICAgCiMjIyBSZXN1bHRzIGFuZCBvdXRwdXQgZm9ybWF0cwoKIyMjIyBSZXN1bHRzCgpUaGUgZm9sbG93aW5nIHR5cGVzIG9mIHJlc3VsdHMgYXJlIGdlbmVyYXRlZCBieSB0aGUgbGlicmFyeS4KCnwgVHlwZSAgICAgICAgfCBEZXNjcmlwdGlvbiAKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLQp8IEFzc2VydGlvbnMgIHwgVmFsaWRhdGlvbiBlcnJvcnMgZ2VuZXJhdGVkIGJ5IGEga2V5d29yZCBvbiBhIHBhcnRpY3VsYXIgaW5wdXQgZGF0YSBpbnN0YW5jZS4gVGhpcyBpcyBnZW5lcmFsbHkgZGVzY3JpYmVkIGluIGEgYFZhbGlkYXRpb25NZXNzYWdlYCBvciBpbiBhIGBPdXRwdXRVbml0YC4gTm90ZSB0aGF0IHNpbmNlIERyYWZ0IDIwMTktMDkgdGhlIGBmb3JtYXRgIGtleXdvcmQgbm8gbG9uZ2VyIGdlbmVyYXRlcyBhc3NlcnRpb25zIGJ5IGRlZmF1bHQgYW5kIGluc3RlYWQgZ2VuZXJhdGVzIG9ubHkgYW5ub3RhdGlvbnMgdW5sZXNzIGNvbmZpZ3VyZWQgb3RoZXJ3aXNlIHVzaW5nIGEgY29uZmlndXJhdGlvbiBvcHRpb24gb3IgYnkgdXNpbmcgYSBtZXRhLXNjaGVtYSB0aGF0IHVzZXMgdGhlIGFwcHJvcHJpYXRlIHZvY2FidWxhcnkuCnwgQW5ub3RhdGlvbnMgfCBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGdlbmVyYXRlZCBieSBhIGtleXdvcmQgZm9yIGEgcGFydGljdWxhciBpbnB1dCBkYXRhIGluc3RhbmNlLiBUaGlzIGlzIGdlbmVyYWxseSBkZXNjcmliZWQgaW4gYSBgT3V0cHV0VW5pdGAuIEFubm90YXRpb24gY29sbGVjdGlvbiBhbmQgcmVwb3J0aW5nIGlzIHR1cm5lZCBvZmYgYnkgZGVmYXVsdC4gQW5ub3RhdGlvbnMgcmVxdWlyZWQgYnkga2V5d29yZHMgc3VjaCBhcyBgdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzYCBvciBgdW5ldmFsdWF0ZWRJdGVtc2AgYXJlIGFsd2F5cyBjb2xsZWN0ZWQgZm9yIGV2YWx1YXRpb24gcHVycG9zZXMgYW5kIGNhbm5vdCBiZSBkaXNhYmxlZCBidXQgd2lsbCBub3QgYmUgcmVwb3J0ZWQgdW5sZXNzIGNvbmZpZ3VyZWQgdG8gZG8gc28uCgpUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgYm90aCB0eXBlcyBvZiByZXN1bHRzLgoKfCBUeXBlICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAp8LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tCnwgRXZhbHVhdGlvbiBQYXRoICAgfCBUaGlzIGlzIHRoZSBzZXQgb2Yga2V5cyBmcm9tIHRoZSByb290IHRocm91Z2ggd2hpY2ggZXZhbHVhdGlvbiBwYXNzZXMgdG8gcmVhY2ggdGhlIHNjaGVtYSBmb3IgZXZhbHVhdGluZyB0aGUgaW5zdGFuY2UuIFRoaXMgaW5jbHVkZXMgYCRyZWZgIGFuZCBgJGR5bmFtaWNSZWZgLiBlZy4gYGBgL3Byb3BlcnRpZXMvYmFyLyRyZWYvcHJvcGVydGllcy9iYXItcHJvcGBgYAp8IFNjaGVtYSBMb2NhdGlvbiAgIHwgVGhpcyBpcyB0aGUgY2Fub25pY2FsIElSSSBvZiB0aGUgc2NoZW1hIHBsdXMgdGhlIEpTT04gcG9pbnRlciBmcmFnbWVudCB0byB0aGUgc2NoZW1hIHRoYXQgd2FzIHVzZWQgZm9yIGV2YWx1YXRpbmcgdGhlIGluc3RhbmNlLiBlZy4gYGBgaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hcy9leGFtcGxlIy8kZGVmcy9iYXIvcHJvcGVydGllcy9iYXItcHJvcGBgYAp8IEluc3RhbmNlIExvY2F0aW9uIHwgVGhpcyBpcyB0aGUgSlNPTiBwb2ludGVyIGZyYWdtZW50IHRvIHRoZSBpbnN0YW5jZSBkYXRhIHRoYXQgd2FzIGJlaW5nIGV2YWx1YXRlZC4gZWcuIGBgYC9iYXIvYmFyLXByb3BgYGAKCkFzc2VydGlvbnMgY29udGFpbnMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCgp8IFR5cGUgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCnwtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0KfCBNZXNzYWdlICAgICAgICAgICB8IFRoZSB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2UuCnwgQ29kZSAgICAgICAgICAgICAgfCBUaGUgZXJyb3IgY29kZS4KfCBNZXNzYWdlIEtleSAgICAgICB8IFRoZSBtZXNzYWdlIGtleSB1c2VkIGZvciBnZW5lcmF0aW5nIHRoZSBtZXNzYWdlIGZvciBsb2NhbGl6YXRpb24uCnwgQXJndW1lbnRzICAgICAgICAgfCBUaGUgYXJndW1lbnRzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlIG1lc3NhZ2UuCnwgVHlwZSAgICAgICAgICAgICAgfCBUaGUga2V5d29yZCB0aGF0IGdlbmVyYXRlZCB0aGUgbWVzc2FnZS4KfCBQcm9wZXJ0eSAgICAgICAgICB8IFRoZSBwcm9wZXJ0eSBuYW1lIHRoYXQgY2F1c2VkIHRoZSB2YWxpZGF0aW9uIGVycm9yIGZvciBleGFtcGxlIGZvciB0aGUgYHJlcXVpcmVkYCBrZXl3b3JkLiBOb3RlIHRoYXQgdGhpcyBpcyBub3QgcGFydCBvZiB0aGUgaW5zdGFuY2UgbG9jYXRpb24gYXMgdGhhdCBwb2ludHMgdG8gdGhlIGluc3RhbmNlIG5vZGUuCnwgU2NoZW1hIE5vZGUgICAgICAgfCBUaGUgYEpzb25Ob2RlYCBwb2ludGVkIHRvIGJ5IHRoZSBTY2hlbWEgTG9jYXRpb24uIFRoaXMgaXMgdGhlIHNjaGVtYSBkYXRhIHRoYXQgY2F1c2VkIHRoZSBpbnB1dCBkYXRhIHRvIGZhaWwuIEl0IGlzIHBvc3NpYmxlIHRvIGdldCB0aGUgbG9jYXRpb24gaW5mb3JtYXRpb24gYnkgY29uZmlndXJpbmcgdGhlIGBKc29uU2NoZW1hRmFjdG9yeWAgd2l0aCBhIGBKc29uTm9kZVJlYWRlcmAgdGhhdCB1c2VzIHRoZSBgTG9jYXRpb25Kc29uTm9kZUZhY3RvcnlGYWN0b3J5YCBhbmQgdXNpbmcgYEpzb25Ob2Rlcy50b2tlbkxvY2F0aW9uT2Yoc2NoZW1hTm9kZSlgLgp8IEluc3RhbmNlIE5vZGUgICAgIHwgVGhlIGBKc29uTm9kZWAgcG9pbnRlZCB0byBieSB0aGUgSW5zdGFuY2UgTG9jYXRpb24uIFRoaXMgaXMgdGhlIGlucHV0IGRhdGEgdGhhdCBmYWlsZWQgdmFsaWRhdGlvbi4gSXQgaXMgcG9zc2libGUgdG8gZ2V0IHRoZSBsb2NhdGlvbiBpbmZvcm1hdGlvbiBieSBjb25maWd1cmluZyB0aGUgYEpzb25TY2hlbWFGYWN0b3J5YCB3aXRoIGEgYEpzb25Ob2RlUmVhZGVyYCB0aGF0IHVzZXMgdGhlIGBMb2NhdGlvbkpzb25Ob2RlRmFjdG9yeUZhY3RvcnlgIGFuZCB1c2luZyBgSnNvbk5vZGVzLnRva2VuTG9jYXRpb25PZihpbnN0YW5jZU5vZGUpYC4KfCBFcnJvciAgICAgICAgICAgICB8IFRoZSBlcnJvci4KfCBEZXRhaWxzICAgICAgICAgICB8IEFkZGl0aW9uYWwgZGV0YWlscyB0aGF0IGNhbiBiZSBzZXQgYnkgY3VzdG9tIGtleXdvcmQgdmFsaWRhdG9yIGltcGxlbWVudGF0aW9ucy4gVGhpcyBpcyBub3QgdXNlZCBieSB0aGUgbGlicmFyeS4KCkFubm90YXRpb25zIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgoKfCBUeXBlICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAp8LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tCnwgVmFsdWUgICAgICAgICAgICAgfCBUaGUgYW5ub3RhdGlvbiB2YWx1ZSBnZW5lcmF0ZWQKCiMjIyMjIExpbmUgYW5kIENvbHVtbiBJbmZvcm1hdGlvbgoKVGhlIGxpYnJhcnkgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gc3RvcmUgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGluIHRoZSBgSnNvbk5vZGVgIGluc3RhbmNlcyBmb3IgdGhlIGluc3RhbmNlIGFuZCBzY2hlbWEgbm9kZXMuIFRoaXMgd2lsbCBhZHZlcnNlbHkgYWZmZWN0IHBlcmZvcm1hbmNlIGFuZCBpcyBub3QgY29uZmlndXJlZCBieSBkZWZhdWx0LgoKVGhpcyBpcyBkb25lIGJ5IGNvbmZpZ3VyaW5nIGEgYEpzb25Ob2RlUmVhZGVyYCB0aGF0IHVzZXMgdGhlIGBMb2NhdGlvbkpzb25Ob2RlRmFjdG9yeUZhY3Rvcnlgb24gdGhlIGBKc29uU2NoZW1hRmFjdG9yeWAuIFRoZSBgSnNvbkxvY2F0aW9uYCBpbmZvcm1hdGlvbiBjYW4gdGhlbiBiZSByZXRyaWV2ZWQgdXNpbmcgYEpzb25Ob2Rlcy50b2tlbkxvY2F0aW9uT2YoanNvbk5vZGUpYC4KCmBgYGphdmEKU3RyaW5nIHNjaGVtYURhdGEgPSAie1xyXG4iCiAgICAgICAgICAgICAgICArICIgIFwiJGlkXCI6IFwiaHR0cHM6Ly9zY2hlbWEvbXlzY2hlbWFcIixcclxuIgogICAgICAgICAgICAgICAgKyAiICBcInByb3BlcnRpZXNcIjoge1xyXG4iCiAgICAgICAgICAgICAgICArICIgICAgXCJzdGFydERhdGVcIjoge1xyXG4iCiAgICAgICAgICAgICAgICArICIgICAgICBcImZvcm1hdFwiOiBcImRhdGVcIixcclxuIgogICAgICAgICAgICAgICAgKyAiICAgICAgXCJtaW5MZW5ndGhcIjogNlxyXG4iCiAgICAgICAgICAgICAgICArICIgICAgfVxyXG4iCiAgICAgICAgICAgICAgICArICIgIH1cclxuIgogICAgICAgICAgICAgICAgKyAifSI7ClN0cmluZyBpbnB1dERhdGEgPSAie1xyXG4iCiAgICAgICAgICAgICAgICArICIgIFwic3RhcnREYXRlXCI6IFwiMVwiXHJcbiIKICAgICAgICAgICAgICAgICsgIn0iOwpKc29uU2NoZW1hRmFjdG9yeSBmYWN0b3J5ID0gSnNvblNjaGVtYUZhY3RvcnkuZ2V0SW5zdGFuY2UoVmVyc2lvbkZsYWcuVjIwMjAxMiwKICAgICAgICBidWlsZGVyIC0+IGJ1aWxkZXIuanNvbk5vZGVSZWFkZXIoSnNvbk5vZGVSZWFkZXIuYnVpbGRlcigpLmxvY2F0aW9uQXdhcmUoKS5idWlsZCgpKSk7ClNjaGVtYVZhbGlkYXRvcnNDb25maWcgY29uZmlnID0gU2NoZW1hVmFsaWRhdG9yc0NvbmZpZy5idWlsZGVyKCkuYnVpbGQoKTsKSnNvblNjaGVtYSBzY2hlbWEgPSBmYWN0b3J5LmdldFNjaGVtYShzY2hlbWFEYXRhLCBJbnB1dEZvcm1hdC5KU09OLCBjb25maWcpOwpTZXQ8VmFsaWRhdGlvbk1lc3NhZ2U+IG1lc3NhZ2VzID0gc2NoZW1hLnZhbGlkYXRlKGlucHV0RGF0YSwgSW5wdXRGb3JtYXQuSlNPTiwgZXhlY3V0aW9uQ29udGV4dCAtPiB7CiAgICBleGVjdXRpb25Db250ZXh0LmdldEV4ZWN1dGlvbkNvbmZpZygpLnNldEZvcm1hdEFzc2VydGlvbnNFbmFibGVkKHRydWUpOwp9KTsKTGlzdDxWYWxpZGF0aW9uTWVzc2FnZT4gbGlzdCA9IG1lc3NhZ2VzLnN0cmVhbSgpLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7ClZhbGlkYXRpb25NZXNzYWdlIGZvcm1hdCA9IGxpc3QuZ2V0KDApOwpKc29uTG9jYXRpb24gZm9ybWF0SW5zdGFuY2VOb2RlVG9rZW5Mb2NhdGlvbiA9IEpzb25Ob2Rlcy50b2tlbkxvY2F0aW9uT2YoZm9ybWF0LmdldEluc3RhbmNlTm9kZSgpKTsKSnNvbkxvY2F0aW9uIGZvcm1hdFNjaGVtYU5vZGVUb2tlbkxvY2F0aW9uID0gSnNvbk5vZGVzLnRva2VuTG9jYXRpb25PZihmb3JtYXQuZ2V0U2NoZW1hTm9kZSgpKTsKVmFsaWRhdGlvbk1lc3NhZ2UgbWluTGVuZ3RoID0gbGlzdC5nZXQoMSk7Ckpzb25Mb2NhdGlvbiBtaW5MZW5ndGhJbnN0YW5jZU5vZGVUb2tlbkxvY2F0aW9uID0gSnNvbk5vZGVzLnRva2VuTG9jYXRpb25PZihtaW5MZW5ndGguZ2V0SW5zdGFuY2VOb2RlKCkpOwpKc29uTG9jYXRpb24gbWluTGVuZ3RoU2NoZW1hTm9kZVRva2VuTG9jYXRpb24gPSBKc29uTm9kZXMudG9rZW5Mb2NhdGlvbk9mKG1pbkxlbmd0aC5nZXRTY2hlbWFOb2RlKCkpOwoKYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBmb3JtYXQuZ2V0VHlwZSgpKTsKYXNzZXJ0RXF1YWxzKCJkYXRlIiwgZm9ybWF0LmdldFNjaGVtYU5vZGUoKS5hc1RleHQoKSk7CmFzc2VydEVxdWFscyg1LCBmb3JtYXRTY2hlbWFOb2RlVG9rZW5Mb2NhdGlvbi5nZXRMaW5lTnIoKSk7CmFzc2VydEVxdWFscygxNywgZm9ybWF0U2NoZW1hTm9kZVRva2VuTG9jYXRpb24uZ2V0Q29sdW1uTnIoKSk7CmFzc2VydEVxdWFscygiMSIsIGZvcm1hdC5nZXRJbnN0YW5jZU5vZGUoKS5hc1RleHQoKSk7CmFzc2VydEVxdWFscygyLCBmb3JtYXRJbnN0YW5jZU5vZGVUb2tlbkxvY2F0aW9uLmdldExpbmVOcigpKTsKYXNzZXJ0RXF1YWxzKDE2LCBmb3JtYXRJbnN0YW5jZU5vZGVUb2tlbkxvY2F0aW9uLmdldENvbHVtbk5yKCkpOwphc3NlcnRFcXVhbHMoIm1pbkxlbmd0aCIsIG1pbkxlbmd0aC5nZXRUeXBlKCkpOwphc3NlcnRFcXVhbHMoIjYiLCBtaW5MZW5ndGguZ2V0U2NoZW1hTm9kZSgpLmFzVGV4dCgpKTsKYXNzZXJ0RXF1YWxzKDYsIG1pbkxlbmd0aFNjaGVtYU5vZGVUb2tlbkxvY2F0aW9uLmdldExpbmVOcigpKTsKYXNzZXJ0RXF1YWxzKDIwLCBtaW5MZW5ndGhTY2hlbWFOb2RlVG9rZW5Mb2NhdGlvbi5nZXRDb2x1bW5OcigpKTsKYXNzZXJ0RXF1YWxzKCIxIiwgbWluTGVuZ3RoLmdldEluc3RhbmNlTm9kZSgpLmFzVGV4dCgpKTsKYXNzZXJ0RXF1YWxzKDIsIG1pbkxlbmd0aEluc3RhbmNlTm9kZVRva2VuTG9jYXRpb24uZ2V0TGluZU5yKCkpOwphc3NlcnRFcXVhbHMoMTYsIG1pbkxlbmd0aEluc3RhbmNlTm9kZVRva2VuTG9jYXRpb24uZ2V0Q29sdW1uTnIoKSk7CmFzc2VydEVxdWFscygxNiwgbWluTGVuZ3RoSW5zdGFuY2VOb2RlVG9rZW5Mb2NhdGlvbi5nZXRDb2x1bW5OcigpKTsKYGBgCgoKIyMjIyBPdXRwdXQgZm9ybWF0cwoKVGhpcyBsaWJyYXJ5IGltcGxlbWVudHMgdGhlIEZsYWcsIExpc3QgYW5kIEhpZXJhcmNoaWNhbCBvdXRwdXQgZm9ybWF0cyBkZWZpbmVkIGluIHRoZSBbU3BlY2lmaWNhdGlvbiBmb3IgTWFjaGluZS1SZWFkYWJsZSBPdXRwdXQgZm9yIEpTT04gU2NoZW1hIFZhbGlkYXRpb24gYW5kIEFubm90YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9qc29uLXNjaGVtYS1vcmcvanNvbi1zY2hlbWEtc3BlYy9ibG9iLzgyNzA2NTNhOWY1OWZhZGQyZGYwZDc4OWYyMmQ0ODYyNTQ1MDViYmUvanNvbnNjaGVtYS12YWxpZGF0aW9uLW91dHB1dC1tYWNoaW5lcy5tZCkuCgpUaGUgTGlzdCBhbmQgSGllcmFyY2hpY2FsIG91dHB1dCBmb3JtYXRzIGFyZSBwYXJ0aWN1bGFybHkgaGVscGZ1bCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIHN5c3RlbSBhcnJpdmVkIGF0IGEgcGFydGljdWxhciByZXN1bHQuCgp8IE91dHB1dCBGb3JtYXQgICAgIHwgRGVzY3JpcHRpb24gCnwtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0KfCBEZWZhdWx0ICAgICAgICAgICB8IEdlbmVyYXRlcyB0aGUgbGlzdCBvZiBhc3NlcnRpb25zLgp8IEJvb2xlYW4gICAgICAgICAgIHwgUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbGlkYXRpb24gaXMgc3VjY2Vzc2Z1bC4gTm90ZSB0aGF0IHRoZSBmYWlsIGZhc3Qgb3B0aW9uIGlzIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciB0aGlzIG91dHB1dCBmb3JtYXQuCnwgRmxhZyAgICAgICAgICAgICAgfCBSZXR1cm5zIGFuIGBPdXRwdXRGbGFnYCBvYmplY3Qgd2l0aCBgdmFsaWRgIGhhdmluZyBgdHJ1ZWAgaWYgdGhlIHZhbGlkYXRpb24gaXMgc3VjY2Vzc2Z1bC4gTm90ZSB0aGF0IHRoZSBmYWlsIGZhc3Qgb3B0aW9uIGlzIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciB0aGlzIG91dHB1dCBmb3JtYXQuCnwgTGlzdCAgICAgICAgICAgICAgfCBSZXR1cm5zIGFuIGBPdXRwdXRVbml0YCBvYmplY3Qgd2l0aCBgZGV0YWlsc2Agd2l0aCBhIGxpc3Qgb2YgYE91dHB1dFVuaXRgIG9iamVjdHMgd2l0aCB0aGUgYXNzZXJ0aW9ucyBhbmQgYW5ub3RhdGlvbnMuIE5vdGUgdGhhdCBhbm5vdGF0aW9ucyBhcmUgbm90IGNvbGxlY3RlZCBieSBkZWZhdWx0IGFuZCBpdCBoYXMgdG8gYmUgZW5hYmxlZCBhcyBpdCB3aWxsIGltcGFjdCBwZXJmb3JtYW5jZS4KfCBIaWVyYXJjaGljYWwgICAgICB8IFJldHVybnMgYW4gYE91dHB1dFVuaXRgIG9iamVjdCB3aXRoIGEgaGllcmFyY2h5IG9mIGBPdXRwdXRVbml0YCBvYmplY3RzIGZvciB0aGUgZXZhbHVhdGlvbiBwYXRoIHdpdGggdGhlIGFzc2VydGlvbnMgYW5kIGFubm90YXRpb25zLiBOb3RlIHRoYXQgYW5ub3RhdGlvbnMgYXJlIG5vdCBjb2xsZWN0ZWQgYnkgZGVmYXVsdCBhbmQgaXQgaGFzIHRvIGJlIGVuYWJsZWQgYXMgaXQgd2lsbCBpbXBhY3QgcGVyZm9ybWFuY2UuCgpUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IHRvIGdlbmVyYXRlIHRoZSBoaWVyYXJjaGljYWwgb3V0cHV0IGZvcm1hdCB3aXRoIGFubm90YXRpb24gY29sbGVjdGlvbiBhbmQgcmVwb3J0aW5nIHR1cm5lZCBvbiBhbmQgZm9ybWF0IGFzc2VydGlvbnMgdHVybmVkIG9uLgoKYGBgamF2YQpKc29uU2NoZW1hRmFjdG9yeSBmYWN0b3J5ID0gSnNvblNjaGVtYUZhY3RvcnkuZ2V0SW5zdGFuY2UoVmVyc2lvbkZsYWcuVjIwMjAxMik7ClNjaGVtYVZhbGlkYXRvcnNDb25maWcgY29uZmlnID0gU2NoZW1hVmFsaWRhdG9yc0NvbmZpZygpLmJ1aWxkZXIoKS5mb3JtYXRBc3NlcnRpb25zRW5hYmxlZCh0cnVlKS5idWlsZCgpOwpKc29uU2NoZW1hIHNjaGVtYSA9IGZhY3RvcnkuZ2V0U2NoZW1hKFNjaGVtYUxvY2F0aW9uLm9mKCJodHRwczovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWFzL2V4YW1wbGUiKSwgY29uZmlnKTsKICAgICAgICAKT3V0cHV0VW5pdCBvdXRwdXRVbml0ID0gc2NoZW1hLnZhbGlkYXRlKGlucHV0RGF0YSwgSW5wdXRGb3JtYXQuSlNPTiwgT3V0cHV0Rm9ybWF0LkhJRVJBUkNISUNBTCwgZXhlY3V0aW9uQ29udGV4dCAtPiB7CiAgICBleGVjdXRpb25Db250ZXh0LmdldEV4ZWN1dGlvbkNvbmZpZygpLnNldEFubm90YXRpb25Db2xsZWN0aW9uRW5hYmxlZCh0cnVlKTsKICAgIGV4ZWN1dGlvbkNvbnRleHQuZ2V0RXhlY3V0aW9uQ29uZmlnKCkuc2V0QW5ub3RhdGlvbkNvbGxlY3Rpb25GaWx0ZXIoa2V5d29yZCAtPiB0cnVlKTsKfSk7CmBgYApUaGUgZm9sbG93aW5nIGlzIHNhbXBsZSBvdXRwdXQgZnJvbSB0aGUgSGllcmFyY2hpY2FsIGZvcm1hdC4KCmBgYGpzb24KewogICJ2YWxpZCIgOiBmYWxzZSwKICAiZXZhbHVhdGlvblBhdGgiIDogIiIsCiAgInNjaGVtYUxvY2F0aW9uIiA6ICJodHRwczovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWFzL2V4YW1wbGUjIiwKICAiaW5zdGFuY2VMb2NhdGlvbiIgOiAiIiwKICAiZHJvcHBlZEFubm90YXRpb25zIiA6IHsKICAgICJwcm9wZXJ0aWVzIiA6IFsgImZvbyIsICJiYXIiIF0sCiAgICAidGl0bGUiIDogInJvb3QiCiAgfSwKICAiZGV0YWlscyIgOiBbIHsKICAgICJ2YWxpZCIgOiBmYWxzZSwKICAgICJldmFsdWF0aW9uUGF0aCIgOiAiL3Byb3BlcnRpZXMvZm9vL2FsbE9mLzAiLAogICAgInNjaGVtYUxvY2F0aW9uIiA6ICJodHRwczovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWFzL2V4YW1wbGUjL3Byb3BlcnRpZXMvZm9vL2FsbE9mLzAiLAogICAgImluc3RhbmNlTG9jYXRpb24iIDogIi9mb28iLAogICAgImVycm9ycyIgOiB7CiAgICAgICJyZXF1aXJlZCIgOiAicmVxdWlyZWQgcHJvcGVydHkgJ3Vuc3BlY2lmaWVkLXByb3AnIG5vdCBmb3VuZCIKICAgIH0KICB9LCB7CiAgICAidmFsaWQiIDogZmFsc2UsCiAgICAiZXZhbHVhdGlvblBhdGgiIDogIi9wcm9wZXJ0aWVzL2Zvby9hbGxPZi8xIiwKICAgICJzY2hlbWFMb2NhdGlvbiIgOiAiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hcy9leGFtcGxlIy9wcm9wZXJ0aWVzL2Zvby9hbGxPZi8xIiwKICAgICJpbnN0YW5jZUxvY2F0aW9uIiA6ICIvZm9vIiwKICAgICJkcm9wcGVkQW5ub3RhdGlvbnMiIDogewogICAgICAicHJvcGVydGllcyIgOiBbICJmb28tcHJvcCIgXSwKICAgICAgInRpdGxlIiA6ICJmb28tdGl0bGUiLAogICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiIDogWyAiZm9vLXByb3AiLCAib3RoZXItcHJvcCIgXQogICAgfSwKICAgICJkZXRhaWxzIiA6IFsgewogICAgICAidmFsaWQiIDogZmFsc2UsCiAgICAgICJldmFsdWF0aW9uUGF0aCIgOiAiL3Byb3BlcnRpZXMvZm9vL2FsbE9mLzEvcHJvcGVydGllcy9mb28tcHJvcCIsCiAgICAgICJzY2hlbWFMb2NhdGlvbiIgOiAiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hcy9leGFtcGxlIy9wcm9wZXJ0aWVzL2Zvby9hbGxPZi8xL3Byb3BlcnRpZXMvZm9vLXByb3AiLAogICAgICAiaW5zdGFuY2VMb2NhdGlvbiIgOiAiL2Zvby9mb28tcHJvcCIsCiAgICAgICJlcnJvcnMiIDogewogICAgICAgICJjb25zdCIgOiAibXVzdCBiZSBhIGNvbnN0YW50IHZhbHVlIDEiCiAgICAgIH0sCiAgICAgICJkcm9wcGVkQW5ub3RhdGlvbnMiIDogewogICAgICAgICJ0aXRsZSIgOiAiZm9vLXByb3AtdGl0bGUiCiAgICAgIH0KICAgIH0gXQogIH0sIHsKICAgICJ2YWxpZCIgOiBmYWxzZSwKICAgICJldmFsdWF0aW9uUGF0aCIgOiAiL3Byb3BlcnRpZXMvYmFyLyRyZWYiLAogICAgInNjaGVtYUxvY2F0aW9uIiA6ICJodHRwczovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWFzL2V4YW1wbGUjLyRkZWZzL2JhciIsCiAgICAiaW5zdGFuY2VMb2NhdGlvbiIgOiAiL2JhciIsCiAgICAiZHJvcHBlZEFubm90YXRpb25zIiA6IHsKICAgICAgInByb3BlcnRpZXMiIDogWyAiYmFyLXByb3AiIF0sCiAgICAgICJ0aXRsZSIgOiAiYmFyLXRpdGxlIgogICAgfSwKICAgICJkZXRhaWxzIiA6IFsgewogICAgICAidmFsaWQiIDogZmFsc2UsCiAgICAgICJldmFsdWF0aW9uUGF0aCIgOiAiL3Byb3BlcnRpZXMvYmFyLyRyZWYvcHJvcGVydGllcy9iYXItcHJvcCIsCiAgICAgICJzY2hlbWFMb2NhdGlvbiIgOiAiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hcy9leGFtcGxlIy8kZGVmcy9iYXIvcHJvcGVydGllcy9iYXItcHJvcCIsCiAgICAgICJpbnN0YW5jZUxvY2F0aW9uIiA6ICIvYmFyL2Jhci1wcm9wIiwKICAgICAgImVycm9ycyIgOiB7CiAgICAgICAgIm1pbmltdW0iIDogIm11c3QgaGF2ZSBhIG1pbmltdW0gdmFsdWUgb2YgMTAiCiAgICAgIH0sCiAgICAgICJkcm9wcGVkQW5ub3RhdGlvbnMiIDogewogICAgICAgICJ0aXRsZSIgOiAiYmFyLXByb3AtdGl0bGUiCiAgICAgIH0KICAgIH0gXQogIH0gXQp9CmBgYAoKIyMgQ29uZmlndXJhdGlvbgoKIyMjIEV4ZWN1dGlvbiBDb25maWd1cmF0aW9uCgp8IE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlZmF1bHQgVmFsdWUKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgYGFubm90YXRpb25Db2xsZWN0aW9uRW5hYmxlZGAgIHwgQ29udHJvbHMgd2hldGhlciBhbm5vdGF0aW9ucyBhcmUgY29sbGVjdGVkIGR1cmluZyBwcm9jZXNzaW5nLiBOb3RlIHRoYXQgY29sbGVjdGluZyBhbm5vdGF0aW9ucyB3aWxsIGFkdmVyc2VseSBhZmZlY3QgcGVyZm9ybWFuY2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGZhbHNlYAp8IGBhbm5vdGF0aW9uQ29sbGVjdGlvbkZpbHRlcmAgICB8IFRoZSBwcmVkaWNhdGUgdXNlZCB0byBjb250cm9sIHdoaWNoIGtleXdvcmQgdG8gY29sbGVjdCBhbmQgcmVwb3J0IGFubm90YXRpb25zIGZvci4gVGhpcyByZXF1aXJlcyBgYW5ub3RhdGlvbkNvbGxlY3Rpb25FbmFibGVkYCB0byBiZSBgdHJ1ZWAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBrZXl3b3JkIC0+IGZhbHNlYAp8IGBsb2NhbGVgICAgICAgICAgICAgICAgICAgICAgICB8IFRoZSBsb2NhbGUgdG8gdXNlIGZvciBnZW5lcmF0aW5nIG1lc3NhZ2VzIGluIHRoZSBgVmFsaWRhdGlvbk1lc3NhZ2VgLiBOb3RlIHRoYXQgdGhpcyB2YWx1ZSBpcyBjb3BpZWQgZnJvbSBgU2NoZW1hVmFsaWRhdG9yc0NvbmZpZ2AgZm9yIGVhY2ggZXhlY3V0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBMb2NhbGUuZ2V0RGVmYXVsdCgpYAp8IGBmYWlsRmFzdGAgICAgICAgICAgICAgICAgICAgICB8IFdoZXRoZXIgdG8gcmV0dXJuIGZhaWx1cmUgaW1tZWRpYXRlbHkgd2hlbiBhbiBhc3NlcnRpb24gaXMgZ2VuZXJhdGVkLiBOb3RlIHRoYXQgdGhpcyB2YWx1ZSBpcyBjb3BpZWQgZnJvbSBgU2NoZW1hVmFsaWRhdG9yc0NvbmZpZ2AgZm9yIGVhY2ggZXhlY3V0aW9uIGJ1dCBpcyBhdXRvbWF0aWNhbGx5IHNldCB0byBgdHJ1ZWAgZm9yIHRoZSBCb29sZWFuIGFuZCBGbGFnIG91dHB1dCBmb3JtYXRzLiB8IGBmYWxzZWAKfCBgZm9ybWF0QXNzZXJ0aW9uc0VuYWJsZWRgICAgICAgfCBUaGUgZGVmYXVsdCBpcyB0byBnZW5lcmF0ZSBmb3JtYXQgYXNzZXJ0aW9ucyBmcm9tIERyYWZ0IDQgdG8gRHJhZnQgNyBhbmQgdG8gb25seSBnZW5lcmF0ZSBhbm5vdGF0aW9ucyBmcm9tIERyYWZ0IDIwMTktMDkuIFNldHRpbmcgdG8gYHRydWVgIG9yIGBmYWxzZWAgd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBiZWhhdmlvci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgbnVsbGAKfCBgZGVidWdFbmFibGVkYCAgICAgICAgICAgICAgICAgfCBDb250cm9scyB3aGV0aGVyIGRlYnVnIGxvZ2dpbmcgaXMgZW5hYmxlZCBmb3IgbG9nZ2luZyB0aGUgbm9kZSBpbmZvcm1hdGlvbiB3aGVuIHByb2Nlc3NpbmcuIE5vdGUgdGhhdCB0aGlzIHdpbGwgZ2VuZXJhdGUgYSBsb3Qgb2YgbG9ncyB0aGF0IHdpbGwgYWZmZWN0IHBlcmZvcm1hbmNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgCgojIyMgU2NoZW1hIFZhbGlkYXRvcnMgQ29uZmlndXJhdGlvbgoKfCBOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVmYXVsdCBWYWx1ZQp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgYGFwcGx5RGVmYXVsdHNTdHJhdGVneWAgICAgICAgICAgICAgICB8IFRoZSBzdHJhdGVneSBmb3IgYXBwbHlpbmcgZGVmYXVsdHMgd2hlbiB3YWxraW5nIHdoZW4gbWlzc2luZyBvciBudWxsIG5vZGVzIGFyZSBlbmNvdW50ZXJlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBBcHBseURlZmF1bHRzU3RyYXRlZ3kuRU1QVFlfQVBQTFlfREVGQVVMVFNfU1RSQVRFR1lgCnwgYGNhY2hlUmVmc2AgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFdoZXRoZXIgdGhlIHNjaGVtYXMgbG9hZGVkIGZyb20gcmVmcyB3aWxsIGJlIGNhY2hlZCBhbmQgcmV1c2VkIGZvciBzdWJzZXF1ZW50IHJ1bnMuIFNldHRpbmcgdGhpcyB0byBgZmFsc2VgIHdpbGwgYWZmZWN0IHBlcmZvcm1hbmNlIGJ1dCBtYXkgYmUgbmVjY2Vzc2FyeSB0byBwcmV2ZW50IGhpZ2ggbWVtb3J5IHVzYWdlIGZvciB0aGUgY2FjaGUgaWYgbXVsdGlwbGUgbmVzdGVkIGFwcGxpY2F0b3JzIGxpa2UgYGFueU9mYCwgYG9uZU9mYCBhbmQgYGFsbE9mYCBhcmUgdXNlZC4gIHwgYHRydWVgCnwgYGRpc2NyaW1pbmF0b3JLZXl3b3JkRW5hYmxlZGAgICAgICAgICB8IFdoZXRoZXIgdGhlIGBkaXNjcmltaW5hdG9yYCBrZXl3b3JkIGlzIGhhbmRsZWQgYWNjb3JkaW5nIHRvIE9wZW5BUEkgMy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBmYWxzZWAKfCBgZXJyb3JNZXNzYWdlS2V5d29yZGAgICAgICAgICAgICAgICAgIHwgVGhlIGtleXdvcmQgdG8gdXNlIGZvciBjdXN0b20gZXJyb3IgbWVzc2FnZXMgaW4gdGhlIHNjaGVtYS4gSWYgbm90IHNldCB0aGlzIGZlYXR1cmVzIGlzIGRpc2FibGVkLiBUaGlzIGlzIHR5cGljYWxseSBzZXQgdG8gYGVycm9yTWVzc2FnZWAgb3IgYG1lc3NhZ2VgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYG51bGxgCnwgYGV4ZWN1dGlvbkNvbnRleHRDdXN0b21pemVyYCAgICAgICAgICB8IFRoaXMgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIHRoZSBgRXhlY3V0aW9uQ29udGV4dGAgZ2VuZXJhdGVkIGJ5IHRoZSBgSnNvblNjaGVtYWAgZm9yIGVhY2ggdmFsaWRhdGlvbiBydW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBudWxsYAp8IGBmYWlsRmFzdGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBXaGV0aGVyIHRvIHJldHVybiBmYWlsdXJlIGltbWVkaWF0ZWx5IHdoZW4gYW4gYXNzZXJ0aW9uIGlzIGdlbmVyYXRlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgCnwgYGZvcm1hdEFzc2VydGlvbnNFbmFibGVkYCAgICAgICAgICAgICB8IFRoZSBkZWZhdWx0IGlzIHRvIGdlbmVyYXRlIGZvcm1hdCBhc3NlcnRpb25zIGZyb20gRHJhZnQgNCB0byBEcmFmdCA3IGFuZCB0byBvbmx5IGdlbmVyYXRlIGFubm90YXRpb25zIGZyb20gRHJhZnQgMjAxOS0wOS4gU2V0dGluZyB0byBgdHJ1ZWAgb3IgYGZhbHNlYCB3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBudWxsYAp8IGBqYXZhU2VtYW50aWNzYCAgICAgICAgICAgICAgICAgICAgICAgfCBXaGV0aGVyIGphdmEgc2VtYW50aWNzIGlzIHVzZWQgZm9yIHRoZSBgdHlwZWAga2V5d29yZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgCnwgYGxvY2FsZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRoZSBsb2NhbGUgdG8gdXNlIGZvciBnZW5lcmF0aW5nIG1lc3NhZ2VzIGluIHRoZSBgVmFsaWRhdGlvbk1lc3NhZ2VgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBMb2NhbGUuZ2V0RGVmYXVsdCgpYAp8IGBsb3NzbGVzc05hcnJvd2luZ2AgICAgICAgICAgICAgICAgICAgfCBXaGV0aGVyIGxvc3NsZXNzIG5hcnJvd2luZyBpcyB1c2VkIGZvciB0aGUgYHR5cGVgIGtleXdvcmQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgCnwgYG1lc3NhZ2VTb3VyY2VgICAgICAgICAgICAgICAgICAgICAgICB8IFRoaXMgaXMgdXNlZCB0byByZXRyaWV2ZSB0aGUgbG9jYWxlIHNwZWNpZmljIG1lc3NhZ2VzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBEZWZhdWx0TWVzc2FnZVNvdXJjZS5nZXRJbnN0YW5jZSgpYAp8IGBudWxsYWJsZUtleXdvcmRFbmFibGVkYCAgICAgICAgICAgICAgfCBXaGV0aGVyIHRoZSBgbnVsbGFibGVgIGtleXdvcmQgaXMgaGFuZGxlZCBhY2NvcmRpbmcgdG8gT3BlbkFQSSAzLjAuIFRoaXMgYWZmZWN0cyB0aGUgYGVudW1gIGFuZCBgdHlwZWAga2V5d29yZHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgCnwgYHBhdGhUeXBlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRoZSBwYXRoIHR5cGUgdG8gdXNlIGZvciByZXBvcnRpbmcgdGhlIGluc3RhbmNlIGxvY2F0aW9uIGFuZCBldmFsdWF0aW9uIHBhdGguIFNldCB0byBgUGF0aFR5cGUuSlNPTl9QQVRIYCB0byB1c2UgSlNPTiBQYXRoLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBQYXRoVHlwZS5KU09OX1BPSU5URVJgCnwgYHByZWxvYWRKc29uU2NoZW1hYCAgICAgICAgICAgICAgICAgICB8IFdoZXRoZXIgdGhlIHNjaGVtYSB3aWxsIGJlIHByZWxvYWRlZCBiZWZvcmUgcHJvY2Vzc2luZyBhbnkgaW5wdXQuIFRoaXMgd2lsbCB1c2UgbWVtb3J5IGJ1dCB0aGUgZXhlY3V0aW9uIG9mIHRoZSB2YWxpZGF0aW9uIHdpbGwgYmUgZmFzdGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB0cnVlYAp8IGBwcmVsb2FkSnNvblNjaGVtYVJlZk1heE5lc3RpbmdEZXB0aGAgfCBUaGUgbWF4IGRlcHRoIG9mIHRoZSBldmFsdWF0aW9uIHBhdGggdG8gcHJlbG9hZCB3aGVuIHByZWxvYWRpbmcgcmVmcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgNDBgCnwgYHJlYWRPbmx5YCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFdoZXRoZXIgc2NoZW1hIGlzIHJlYWQgb25seS4gVGhpcyBhZmZlY3RzIHRoZSBgcmVhZE9ubHlgIGtleXdvcmQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBudWxsYAp8IGByZWd1bGFyRXhwcmVzc2lvbkZhY3RvcnlgICAgICAgICAgICAgfCBUaGUgZmFjdG9yeSB0byB1c2UgdG8gY3JlYXRlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGluc3RhbmNlIGBKb25pUmVndWxhckV4cHJlc3Npb25GYWN0b3J5YCBvciBgR3JhYWxKU1JlZ3VsYXJFeHByZXNzaW9uRmFjdG9yeWAuIFRoaXMgcmVxdWlyZXMgdGhlIGRlcGVuZGVuY3kgdG8gYmUgbWFudWFsbHkgYWRkZWQgdG8gdGhlIHByb2plY3Qgb3IgYSBgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbmAgd2lsbCBiZSB0aHJvd24uIHwgYEpES1JlZ3VsYXJFeHByZXNzaW9uRmFjdG9yeS5nZXRJbnN0YW5jZSgpYAp8IGBzY2hlbWFJZFZhbGlkYXRvcmAgICAgICAgICAgICAgICAgICAgfCBUaGlzIGlzIHVzZWQgdG8gY3VzdG9taXplIGhvdyB0aGUgYCRpZGAgdmFsdWVzIGFyZSB2YWxpZGF0ZWQuIE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhbGxvd3Mgbm9uLWVtcHR5IGZyYWdtZW50cyB3aGVyZSBubyBiYXNlIElSSSBpcyBzcGVjaWZpZWQgYW5kIGFsc28gYWxsb3dzIG5vbi1hYnNvbHV0ZSBJUkkgYCRpZGAgdmFsdWVzIGluIHRoZSByb290IHNjaGVtYS4gICAgfCBgSnNvblNjaGVtYUlkVmFsaWRhdG9yLkRFRkFVTFRgCnwgYHN0cmljdGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRoaXMgaXMgc2V0IHdoZXRoZXIga2V5d29yZHMgYXJlIHN0cmljdCBpbiB0aGVpciB2YWxpZGF0aW9uLiBXaGF0IHRoaXMgZG9lcyBkZXBlbmRzIG9uIHRoZSBpbmRpdmlkdWFsIHZhbGlkYXRvcnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAp8IGB0eXBlTG9vc2VgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBXaGV0aGVyIHR5cGVzIGFyZSBpbnRlcnByZXRlZCBpbiBhIGxvb3NlIG1hbm5lci4gSWYgc2V0IHRvIHRydWUsIGEgc2luZ2xlIHZhbHVlIGNhbiBiZSBpbnRlcnByZXRlZCBhcyBhIHNpemUgMSBhcnJheS4gU3RyaW5ncyBtYXkgYWxzbyBiZSBpbnRlcnByZXRlZCBhcyBudW1iZXIsIGludGVnZXIgb3IgYm9vbGVhbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgCnwgYHdyaXRlT25seWAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFdoZXRoZXIgc2NoZW1hIGlzIHdyaXRlIG9ubHkuIFRoaXMgYWZmZWN0cyB0aGUgYHdyaXRlT25seWAga2V5d29yZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBudWxsYAoKIyMgUGVyZm9ybWFuY2UgQ29uc2lkZXJhdGlvbnMKCldoZW4gdGhlIGxpYnJhcnkgY3JlYXRlcyBhIHNjaGVtYSBmcm9tIHRoZSBzY2hlbWEgZmFjdG9yeSwgaXQgY3JlYXRlcyBhIGRpc3RpbmN0IHZhbGlkYXRvciBpbnN0YW5jZSBmb3IgZWFjaCBsb2NhdGlvbiBvbiB0aGUgZXZhbHVhdGlvbiBwYXRoLiBUaGlzIG1lYW5zIGlmIHRoZXJlIGFyZSBkaWZmZXJlbnQgYCRyZWZgIHRoYXQgcmVmZXJlbmNlIHRoZSBzYW1lIHNjaGVtYSBsb2NhdGlvbiwgZGlmZmVyZW50IHZhbGlkYXRvciBpbnN0YW5jZXMgYXJlIGNyZWF0ZWQgZm9yIGVhY2ggZXZhbHVhdGlvbiBwYXRoLgoKV2hlbiB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQsIHRoZSBsaWJyYXJ5IHdpbGwgYnkgZGVmYXVsdCBhdXRvbWF0aWNhbGx5IHByZWxvYWQgYWxsIHRoZSB2YWxpZGF0b3JzIG5lZWRlZCBhbmQgcmVzb2x2ZSByZWZlcmVuY2VzLiBUaGlzIGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSBgcHJlbG9hZEpzb25TY2hlbWFgIG9wdGlvbiBpbiB0aGUgYFNjaGVtYVZhbGlkYXRvcnNDb25maWdgLiBBdCB0aGlzIHBvaW50LCBubyBleGNlcHRpb25zIHdpbGwgYmUgdGhyb3duIGlmIGEgcmVmZXJlbmNlIGNhbm5vdCBiZSByZXNvbHZlZC4gSWYgdGhlcmUgYXJlIHJlZmVyZW5jZXMgdGhhdCBhcmUgY3ljbGljLCBvbmx5IHRoZSBmaXJzdCBjeWNsZSB3aWxsIGJlIHByZWxvYWRlZC4gSWYgeW91IHdpc2ggdG8gZW5zdXJlIHRoYXQgcmVtb3RlIHJlZmVyZW5jZXMgY2FuIGFsbCBiZSByZXNvbHZlZCwgdGhlIGBpbml0aWFsaXplVmFsaWRhdG9yc2AgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCBvbiB0aGUgYEpzb25TY2hlbWFgIHdoaWNoIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZXJlIGFyZSByZWZlcmVuY2VzIHRoYXQgY2Fubm90IGJlIHJlc29sdmVkLgoKSW5zdGFuY2VzIGZvciBgSnNvblNjaGVtYUZhY3RvcnlgIGFuZCB0aGUgYEpzb25TY2hlbWFgIGNyZWF0ZWQgZnJvbSBpdCBhcmUgZGVzaWduZWQgdG8gYmUgdGhyZWFkLXNhZmUgcHJvdmlkZWQgaXRzIGNvbmZpZ3VyYXRpb24gaXMgbm90IG1vZGlmaWVkIGFuZCBzaG91bGQgYmUgY2FjaGVkIGFuZCByZXVzZWQuIE5vdCByZXVzaW5nIHRoZSBgSnNvblNjaGVtYWAgbWVhbnMgdGhhdCB0aGUgc2NoZW1hIGRhdGEgbmVlZHMgdG8gYmUgcmVwZWF0ZWQgcGFyc2VkIHdpdGggdmFsaWRhdG9yIGluc3RhbmNlcyBjcmVhdGVkIGFuZCByZWZlcmVuY2VzIHJlc29sdmVkLiBXaGVuIHJlZmVyZW5jZXMgYXJlIHJlc29sdmVkLCB0aGUgdmFsaWRhdG9ycyBjcmVhdGVkIHdpbGwgYmUgY2FjaGVkLiBGb3Igc2NoZW1hcyB0aGF0IGhhdmUgZGVlcGx5IG5lc3RlZCByZWZlcmVuY2VzLCB0aGUgbWVtb3J5IG5lZWRlZCBmb3IgdGhlIHZhbGlkYXRvcnMgbWF5IGJlIHZlcnkgaGlnaCwgaW4gd2hpY2ggY2FzZSB0aGUgY2FjaGluZyBtYXkgbmVlZCB0byBiZSBkaXNhYmxlZCB1c2luZyB0aGUgYGNhY2hlUmVmc2Agb3B0aW9uIGluIHRoZSBgU2NoZW1hVmFsaWRhdG9yc0NvbmZpZ2AuIERpc2FibGluZyB0aGlzIHdpbGwgbWVhbiB0aGUgdmFsaWRhdG9ycyBmcm9tIHRoZSByZWZlcmVuY2VzIG5lZWQgdG8gYmUgcmUtY3JlYXRlZCBmb3IgZWFjaCB2YWxpZGF0aW9uIHJ1biB3aGljaCB3aWxsIGltcGFjdCBwZXJmb3JtYW5jZS4KCkNvbGxlY3RpbmcgYW5ub3RhdGlvbnMgd2lsbCBhZHZlcnNlbHkgYWZmZWN0IHZhbGlkYXRpb24gcGVyZm9ybWFuY2UuCgpUaGUgZWFybGllciBkcmFmdCBzcGVjaWZpY2F0aW9ucyBjb250YWluIGxlc3Mga2V5d29yZHMgdGhhdCBjYW4gcG90ZW50aWFsbHkgaW1wYWN0IHBlcmZvcm1hbmNlLiBGb3IgaW5zdGFuY2UgdGhlIHVzZSBvZiB0aGUgYHVuZXZhbHVhdGVkUHJvcGVydGllc2Agb3IgYHVuZXZhbHVhdGVkSXRlbXNgIGtleXdvcmQgd2lsbCB0cmlnZ2VyIGFubm90YXRpb24gY29sbGVjdGlvbiBpbiB0aGUgcmVsYXRlZCB2YWxpZGF0b3JzLCBzdWNoIGFzIHRoZSBgcHJvcGVydGllc2Agb3IgYGl0ZW1zYCB2YWxpZGF0b3JzLgoKVGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQgdXNpbmcgYSBzY2hlbWEgd2l0aCBhIGxhdGVyIGRyYWZ0IHNwZWNpZmljYXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGNhdXNlIGEgcGVyZm9ybWFuY2UgaW1wYWN0LiBGb3IgaW5zdGFuY2UsIHRoZSBgcHJvcGVydGllc2AgdmFsaWRhdG9yIHdpbGwgcGVyZm9ybSBjaGVja3MgdG8gZGV0ZXJtaW5lIGlmIGFubm90YXRpb25zIG5lZWQgdG8gYmUgY29sbGVjdGVkLCBhbmQgY2hlY2tzIGlmIHRoZSBtZXRhLXNjaGVtYSBjb250YWlucyB0aGUgYHVuZXZhbHVhdGVkUHJvcGVydGllc2Aga2V5d29yZCBhbmQgd2hldGhlciB0aGUgYHVuZXZhbHVhdGVkUHJvcGVydGllc2Aga2V5d29yZCBleGlzdHMgYWRqYWNlbnQgdGhlIGV2YWx1YXRpb24gcGF0aC4KCiMjIFNlY3VyaXR5IENvbnNpZGVyYXRpb25zCgpUaGUgbGlicmFyeSBhc3N1bWVzIHRoYXQgdGhlIHNjaGVtYXMgYmVpbmcgbG9hZGVkIGFyZSB0cnVzdGVkLiBUaGlzIHNlY3VyaXR5IG1vZGVsIGFzc3VtZXMgdGhlIHVzZSBjYXNlIHdoZXJlIHRoZSBzY2hlbWFzIGFyZSBidW5kbGVkIHdpdGggdGhlIGFwcGxpY2F0aW9uIG9uIHRoZSBjbGFzc3BhdGguCgp8IElzc3VlICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNaXRpZ2F0aW9uCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfCBTY2hlbWEgTG9hZGluZyAgICAgICAgfCBUaGUgbGlicmFyeSBieSBkZWZhdWx0IHdpbGwgbG9hZCBzY2hlbWFzIGZyb20gdGhlIGNsYXNzcGF0aCBhbmQgb3ZlciB0aGUgaW50ZXJuZXQgaWYgbmVlZGVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQSBgRGlzYWxsb3dTY2hlbWFMb2FkZXJgIGNhbiBiZSBjb25maWd1cmVkIHRvIG5vdCBhbGxvdyBzY2hlbWEgcmV0cmlldmFsLiBBbHRlcm5hdGl2ZWx5IGFuIGBBbGxvd1NjaGVtYUxvYWRlcmAgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gcmVzdHJpY3QgdGhlIHJldHJpZXZhbCBJUklzIHRoYXQgYXJlIGFsbG93ZWQuCnwgU2NoZW1hIENhY2hpbmcgICAgICAgIHwgVGhlIGxpYnJhcnkgYnkgZGVmYXVsdCBwcmVsb2FkcyBhbmQgY2FjaGVzIHJlZmVyZW5jZXMgd2hlbiBsb2FkaW5nIHNjaGVtYXMuIFdoaWxlIHRoZXJlIGlzIGEgbWF4IG5lc3RpbmcgZGVwdGggd2hlbiBwcmVsb2FkaW5nIHNjaGVtYXMgaXQgaXMgc3RpbGwgcG9zc2libGUgdG8gY29uc3RydWN0IGEgc2NoZW1hIHRoYXQgaGFzIGEgZmFuIG91dCB0aGF0IGNvbnN1bWVzIGEgbG90IG9mIG1lbW9yeSBmcm9tIHRoZSBzZXJ2ZXIuICB8IFNldCBgY2FjaGVSZWZzYCBvcHRpb24gaW4gYFNjaGVtYVZhbGlkYXRvcnNDb25maWdgIHRvIGZhbHNlLgp8IFJlZ3VsYXIgRXhwcmVzc2lvbnMgICB8IFRoZSBsaWJyYXJ5IGRvZXMgbm90IHZhbGlkYXRlIGlmIGEgZ2l2ZW4gcmVndWxhciBleHByZXNzaW9uIGlzIHN1c2NlcHRhYmxlIHRvIGRlbmlhbCBvZiBzZXJ2aWNlIChbUmVEb1NdKGh0dHBzOi8vb3dhc3Aub3JnL3d3dy1jb21tdW5pdHkvYXR0YWNrcy9SZWd1bGFyX2V4cHJlc3Npb25fRGVuaWFsX29mX1NlcnZpY2VfLV9SZURvUykpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbiBgQWxsb3dSZWd1bGFyRXhwcmVzc2lvbkZhY3RvcnlgIGNhbiBiZSBjb25maWd1cmVkIHRvIHBlcmZvcm0gdmFsaWRhdGlvbiBvbiB0aGUgcmVndWxhciBleHByZXNzaW9ucyB0aGF0IGFyZSBhbGxvd2VkLgp8IFZhbGlkYXRpb24gRXJyb3JzICAgICB8IFRoZSBsaWJyYXJ5IGJ5IGRlZmF1bHQgYXR0ZW1wdHMgdG8gcmV0dXJuIGFsbCB2YWxpZGF0aW9uIGVycm9ycy4gVGhlIHVzZSBvZiBhcHBsaWNhdG9ycyBzdWNoIGFzIGBhbGxPZmAgd2l0aCBhIGxhcmdlIG51bWJlciBvZiBzY2hlbWFzIG1heSByZXN1bHQgaW4gYSBsYXJnZSBudW1iZXIgb2YgdmFsaWRhdGlvbiBlcnJvcnMgdGFraW5nIHVwIG1lbW9yeS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTZXQgYGZhaWxGYXN0YCBvcHRpb24gaW4gYFNjaGVtYVZhbGlkYXRvcnNDb25maWdgIHRvIGltbWVkaWF0ZWx5IHJldHVybiB3aGVuIHRoZSBmaXJzdCBlcnJvciBpcyBlbmNvdW50ZXJlZC4gVGhlIGBPdXRwdXRGb3JtYXQuQk9PTEVBTmAgb3IgYE91dHB1dEZvcm1hdC5GTEFHYCBhbHNvIGNhbiBiZSB1c2VkLgoKIyMgW1F1aWNrIFN0YXJ0XShkb2MvcXVpY2tzdGFydC5tZCkKCiMjIFtDdXN0b21pemluZyBTY2hlbWEgUmV0cmlldmFsXShkb2Mvc2NoZW1hLXJldHJpZXZhbC5tZCkKCiMjIFtDdXN0b21pemluZyBNZXRhLVNjaGVtYXMsIFZvY2FidWxhcmllcywgS2V5d29yZHMgYW5kIEZvcm1hdHNdKGRvYy9jdXN0b20tbWV0YS1zY2hlbWEubWQpCgojIyBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShkb2Mvb3BlbmFwaS5tZCkKCiMjIFtWYWxpZGF0b3JzXShkb2MvdmFsaWRhdG9ycy5tZCkKCiMjIFtDb25maWd1cmF0aW9uXShkb2MvY29uZmlnLm1kKQoKIyMgW1NwZWNpZmljYXRpb24gVmVyc2lvbl0oZG9jL3NwZWN2ZXJzaW9uLm1kKQoKIyMgW1lBTUwgVmFsaWRhdGlvbl0oZG9jL3lhbWwubWQpCgojIyBbQ29sbGVjdG9yIENvbnRleHRdKGRvYy9jb2xsZWN0b3ItY29udGV4dC5tZCkKCiMjIFtKU09OIFNjaGVtYSBXYWxrZXJzIGFuZCBXYWxrTGlzdGVuZXJzXShkb2Mvd2Fsa2Vycy5tZCkKCiMjIFtSZWd1bGFyIEV4cHJlc3Npb25zXShkb2MvZWNtYS0yNjIubWQpCgojIyBbQ3VzdG9tIEVycm9yIE1lc3NhZ2VzXShkb2MvY3VzdC1tc2cubWQpCgojIyBbTXVsdGlwbGUgTGFuZ3VhZ2VdKGRvYy9tdWx0aXBsZS1sYW5ndWFnZS5tZCkKCiMjIFtNZXRhU2NoZW1hIFZhbGlkYXRpb25dKGRvYy9tZXRhc2NoZW1hLXZhbGlkYXRpb24ubWQpCgojIyBbVmFsaWRhdGluZyBSRkMgMzMzOSBkdXJhdGlvbnNdKGRvYy9kdXJhdGlvbi5tZCkKCiMjIFByb2plY3RzCgpUaGUgW2xpZ2h0LXJlc3QtNGpdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZXR3b3JrbnQvbGlnaHQtcmVzdC00aiksIFtsaWdodC1ncmFwaHFsLTRqXShodHRwczovL2dpdGh1Yi5jb20vbmV0d29ya250L2xpZ2h0LWdyYXBocWwtNGopIGFuZCBbbGlnaHQtaHlicmlkLTRqXShodHRwczovL2dpdGh1Yi5jb20vbmV0d29ya250L2xpZ2h0LWh5YnJpZC00aikgdXNlIHRoaXMgbGlicmFyeSB0byB2YWxpZGF0ZSB0aGUgcmVxdWVzdCBhbmQgcmVzcG9uc2UgYmFzZWQgb24gdGhlIHNwZWNpZmljYXRpb25zLiBJZiB5b3UgYXJlIHVzaW5nIG90aGVyIGZyYW1ld29ya3MgbGlrZSBTcHJpbmcgQm9vdCwgeW91IGNhbiB1c2UgdGhlIFtPcGVuQXBpVmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vbXNlcnZpY2V0ZWNoL29wZW5hcGktc2NoZW1hLXZhbGlkYXRpb24pLCBhIGdlbmVyaWMgT3BlbkFQSSAzLjAgdmFsaWRhdG9yIGJhc2VkIG9uIHRoZSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uLiAKCklmIHlvdSBoYXZlIGEgcHJvamVjdCB1c2luZyB0aGlzIGxpYnJhcnksIHBsZWFzZSBzdWJtaXQgYSBQUiB0byBhZGQgeW91ciBwcm9qZWN0IGJlbG93LgoKIyMgQ29udHJpYnV0b3JzCgpUaGFua3MgdG8gdGhlIGZvbGxvd2luZyBwZW9wbGUgd2hvIGhhdmUgY29udHJpYnV0ZWQgdG8gdGhpcyBwcm9qZWN0LiBJZiB5b3UgYXJlIHVzaW5nIHRoaXMgbGlicmFyeSwgcGxlYXNlIGNvbnNpZGVyIHRvIGJlIGEgc3BvbnNvciBmb3Igb25lIG9mIHRoZSBjb250cmlidXRvcnMuIAoKW0BzdGV2ZWh1XShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvc3RldmVodSkKCltAcHJhc2hhbnRoLWNoYWl0YW55YV0oaHR0cHM6Ly9naXRodWIuY29tL3ByYXNoYW50aC1jaGFpdGFueWEpCgpbQGZkdXR0b25dKGh0dHBzOi8vZ2l0aHViLmNvbS9mZHV0dG9uKQoKW0B2YWxmaXJzdF0oaHR0cHM6Ly9naXRodWIuY29tL3ZhbGZpcnN0KQoKW0BCYWxsb29uV2VuXShodHRwczovL2dpdGh1Yi5jb20vQmFsbG9vbldlbikKCltAamlhY2hlbjExMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaWFjaGVuMTEyMCkKCltAZGRvYnJpbl0oaHR0cHM6Ly9naXRodWIuY29tL2Rkb2JyaW4pCgpbQGVza2FiZXR4ZV0oaHR0cHM6Ly9naXRodWIuY29tL2Vza2FiZXR4ZSkKCltAZWhybWFubl0oaHR0cHM6Ly9naXRodWIuY29tL2Vocm1hbm4pCgpbQHByYXNoYW50aGpvc10oaHR0cHM6Ly9naXRodWIuY29tL3ByYXNoYW50aGpvcykKCltAU3ViaGFqaXRkYXMyOThdKGh0dHBzOi8vZ2l0aHViLmNvbS9TdWJoYWppdGRhczI5OCkKCltARldpZXNuZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9GV2llc25lcikKCltAcmh3b29kXShodHRwczovL2dpdGh1Yi5jb20vcmh3b29kKQoKW0BqYXdhZmZdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXdhZmYpCgpbQG5pdGluMTg5MV0oaHR0cHM6Ly9naXRodWIuY29tL25pdGluMTg5MSkKCgpGb3IgYWxsIGNvbnRyaWJ1dG9ycywgcGxlYXNlIHZpc2l0IGh0dHBzOi8vZ2l0aHViLmNvbS9uZXR3b3JrbnQvanNvbi1zY2hlbWEtdmFsaWRhdG9yL2dyYXBocy9jb250cmlidXRvcnMKCklmIHlvdSBhcmUgYSBjb250cmlidXRvciwgcGxlYXNlIGpvaW4gdGhlIFtHaXRIdWIgU3BvbnNvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycykgYW5kIHN3aXRjaCB0aGUgbGluayB0byB5b3VyIHNwb25zb3JzIGRhc2hib2FyZCB2aWEgYSBQUi4KCiMjIFNwb25zb3JzCgoKIyMjIEluZGl2aWR1YWwgU3BvbnNvcnMKCgojIyMgQ29ycG9yYXRpb24gU3BvbnNvcnMKCgoK readmeEtag: '"cdc10dc493cb1f3b90b0dea978dd5da4ead0fadc"' readmeLastModified: Thu, 25 Jul 2024 19:56:18 GMT repositoryId: 68291529 description: >- A fast Java JSON schema validator that supports draft V4, V6, V7, V2019-09 and V2020-12 created: '2016-09-15T12:24:16Z' updated: '2024-09-04T18:19:04Z' language: Java archived: false stars: 822 watchers: 43 forks: 323 owner: networknt logo: https://avatars.githubusercontent.com/u/8740739?v=4 license: Apache-2.0 repoEtag: '"c0ecf55027e485b182c30851da65766bef4b93b46a36820fed9f2064a23a723c"' repoLastModified: Wed, 04 Sep 2024 18:19:04 GMT foundInMaster: true category: Parsers id: 69c6f349899d198b4045edb7ffa3fb74 - source: openapi3 tags repository: https://github.com/openapitools/openapi-diff v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJLWRpZmYgCgpDb21wYXJlIHR3byBPcGVuQVBJIHNwZWNpZmljYXRpb25zICgzLngpIGFuZCByZW5kZXIgdGhlIGRpZmZlcmVuY2UgdG8gSFRNTCBwbGFpbnRleHQsIE1hcmtkb3duIGZpbGVzLCBvciBKU09OIGZpbGVzLgoKWyFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1kaWZmL3dvcmtmbG93cy9NYWluJTIwQnVpbGQvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWRpZmYvYWN0aW9ucz9xdWVyeT1icmFuY2glM0FtYXN0ZXIrd29ya2Zsb3clM0EiTWFpbitCdWlsZCIpClshW1F1YWxpdHkgR2F0ZSBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PU9wZW5BUElUb29sc19vcGVuYXBpLWRpZmYmbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9T3BlbkFQSVRvb2xzX29wZW5hcGktZGlmZikKWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3Yvb3JnLm9wZW5hcGl0b29scy5vcGVuYXBpZGlmZi9vcGVuYXBpLWRpZmYtY29yZSldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzLm9wZW5hcGlkaWZmL29wZW5hcGktZGlmZi1jb3JlKQoKWyFbQ29udHJpYnV0ZSB3aXRoIEdpdHBvZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Db250cmlidXRlJTIwd2l0aC1HaXRwb2QtOTA4YTg1P2xvZ289Z2l0cG9kKV0oaHR0cHM6Ly9naXRwb2QuaW8vI2h0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1kaWZmKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTEyanh4ZDdwMi1YVWVRTX40cHpzVTl4fmVHTFFxWDJnKQoKWyFbRG9ja2VyIENsb3VkIEF1dG9tYXRlZCBidWlsZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvY2xvdWQvYXV0b21hdGVkL29wZW5hcGl0b29scy9vcGVuYXBpLWRpZmYpXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZGlmZikKWyFbRG9ja2VyIENsb3VkIEJ1aWxkIFN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvY2xvdWQvYnVpbGQvb3BlbmFwaXRvb2xzL29wZW5hcGktZGlmZildKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1kaWZmKQpbIVtEb2NrZXIgSW1hZ2UgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1kaWZmP3NvcnQ9c2VtdmVyKV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWRpZmYvdGFncykKCiMgUmVxdWlyZW1lbnRzCgoqIEphdmEgOAoKIyBGZWF0dXJlCgoqIFN1cHBvcnRzIE9wZW5BUEkgc3BlYyB2My4wLgoqIERlcHRoIGNvbXBhcmlzb24gb2YgcGFyYW1ldGVycywgcmVzcG9uc2VzLCBlbmRwb2ludCwgaHR0cCBtZXRob2QgKEdFVCxQT1NULFBVVCxERUxFVEUuLi4pCiogU3VwcG9ydHMgc3dhZ2dlciBhcGkgQXV0aG9yaXphdGlvbgoqIFJlbmRlciBkaWZmZXJlbmNlIG9mIHByb3BlcnR5IHdpdGggRXhwcmVzc2lvbiBMYW5ndWFnZQoqIEhUTUwsIE1hcmtkb3duLCBBc2NpaWRvYyAmIEpTT04gcmVuZGVyCgojIE1hdmVuCgpBdmFpbGFibGUgb24gW01hdmVuIENlbnRyYWxdKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzLm9wZW5hcGlkaWZmL29wZW5hcGktZGlmZi1jb3JlKQoKYGBgeG1sCjxkZXBlbmRlbmN5PgogIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHMub3BlbmFwaWRpZmY8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+b3BlbmFwaS1kaWZmLWNvcmU8L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+JHtvcGVuYXBpLWRpZmYtdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgojIERvY2tlcgoKQXZhaWxhYmxlIG9uIFtEb2NrZXIgSHViXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZGlmZi8pIGFzIGBvcGVuYXBpdG9vbHMvb3BlbmFwaS1kaWZmYC4KCmBgYGJhc2gKIyBkb2NrZXIgcnVuIG9wZW5hcGl0b29scy9vcGVuYXBpLWRpZmY6bGF0ZXN0CnVzYWdlOiBvcGVuYXBpLWRpZmYgPG9sZD4gPG5ldz4KICAgIC0tYXNjaWlkb2MgPGZpbGU+ICAgICAgICAgICBleHBvcnQgZGlmZiBhcyBhc2NpaWRvYyBpbiBnaXZlbiBmaWxlCiAgICAtLWRlYnVnICAgICAgICAgICAgICAgICAgICAgUHJpbnQgZGVidWdnaW5nIGluZm9ybWF0aW9uCiAgICAtLWVycm9yICAgICAgICAgICAgICAgICAgICAgUHJpbnQgZXJyb3IgaW5mb3JtYXRpb24KICAgIC0tZmFpbC1vbi1jaGFuZ2VkICAgICAgICAgICBGYWlsIGlmIEFQSSBjaGFuZ2VkIGJ1dCBpcyBiYWNrd2FyZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUKICAgIC0tZmFpbC1vbi1pbmNvbXBhdGlibGUgICAgICBGYWlsIG9ubHkgaWYgQVBJIGNoYW5nZXMgYnJva2UgYmFja3dhcmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmlsaXR5CiAgICAtLWNvbmZpZy1maWxlICAgICAgICAgICAgICAgQ29uZmlnIGZpbGUgdG8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvci4gU3VwcG9ydGVkIGZpbGUgZm9ybWF0czogLnlhbWwKICAgIC0tY29uZmlnLXByb3AgICAgICAgICAgICAgICBDb25maWcgcHJvcGVydHkgdG8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciB3aXRoIGtleTp2YWx1ZSBmb3JtYXQgKGUuZy4gbXkucHJvcDp0cnVlKQogLWgsLS1oZWxwICAgICAgICAgICAgICAgICAgICAgIHByaW50IHRoaXMgbWVzc2FnZQogICAgLS1oZWFkZXIgPHByb3BlcnR5PXZhbHVlPiAgIHVzZSBnaXZlbiBoZWFkZXIgZm9yIGF1dGhvcmlzYXRpb24KICAgIC0taHRtbCA8ZmlsZT4gICAgICAgICAgICAgICBleHBvcnQgZGlmZiBhcyBodG1sIGluIGdpdmVuIGZpbGUKICAgIC0taW5mbyAgICAgICAgICAgICAgICAgICAgICBQcmludCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICAtLWpzb24gPGZpbGU+ICAgICAgICAgICAgICAgZXhwb3J0IGRpZmYgYXMganNvbiBpbiBnaXZlbiBmaWxlCiAtbCwtLWxvZyA8bGV2ZWw+ICAgICAgICAgICAgICAgdXNlIGdpdmVuIGxldmVsIGZvciBsb2cgKFRSQUNFLCBERUJVRywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkZPLCBXQVJOLCBFUlJPUiwgT0ZGKS4gRGVmYXVsdDogRVJST1IKICAgIC0tbWFya2Rvd24gPGZpbGU+ICAgICAgICAgICBleHBvcnQgZGlmZiBhcyBtYXJrZG93biBpbiBnaXZlbiBmaWxlCiAgICAtLW9mZiAgICAgICAgICAgICAgICAgICAgICAgTm8gaW5mb3JtYXRpb24gcHJpbnRlZAogICAgLS1xdWVyeSA8cHJvcGVydHk9dmFsdWU+ICAgIHVzZSBxdWVyeSBwYXJhbSBmb3IgYXV0aG9yaXNhdGlvbgogICAgLS1zdGF0ZSAgICAgICAgICAgICAgICAgICAgIE9ubHkgb3V0cHV0IGRpZmYgc3RhdGU6IG5vX2NoYW5nZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb21wYXRpYmxlLCBjb21wYXRpYmxlCiAgICAtLXRleHQgPGZpbGU+ICAgICAgICAgICAgICAgZXhwb3J0IGRpZmYgYXMgdGV4dCBpbiBnaXZlbiBmaWxlCiAgICAtLXRyYWNlICAgICAgICAgICAgICAgICAgICAgYmUgZXh0cmEgdmVyYm9zZQogICAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICAgIHByaW50IHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CiAgICAtLXdhcm4gICAgICAgICAgICAgICAgICAgICAgUHJpbnQgd2FybmluZyBpbmZvcm1hdGlvbgpgYGAKCgojIyBCdWlsZCB0aGUgaW1hZ2UKClRoaXMgaXMgb25seSByZXF1aXJlZCBpZiB5b3Ugd2FudCB0byB0cnkgbmV3IGNoYW5nZXMgaW4gdGhlIERvY2tlcmZpbGUgb2YgdGhpcyBwcm9qZWN0LgoKYGBgYmFzaApkb2NrZXIgYnVpbGQgLXQgbG9jYWwtb3BlbmFwaS1kaWZmIC4KYGBgCgpZb3UgY2FuIHJlcGxhY2UgdGhlIGxvY2FsIGltYWdlIG5hbWUgYGxvY2FsLW9wZW5hcGktZGlmZmAgYnkgYW55IG5hbWUgb2YgeW91ciBjaG9pY2UuCgojIyBSdW4gYW4gaW5zdGFuY2UKCkluIHRoaXMgZXhhbXBsZSB0aGUgYCQocHdkKS9jb3JlL3NyYy90ZXN0L3Jlc291cmNlc2AgZGlyZWN0b3J5IGlzIG1vdW50ZWQgaW4gdGhlIGAvc3BlY3NgIGRpcmVjdG9yeSBvZiB0aGUgY29udGFpbmVyCmluIHJlYWRvbmx5IG1vZGUgKGByb2ApLgoKYGBgYmFzaApkb2NrZXIgcnVuIC0tcm0gLXQgXAogIC12ICQocHdkKS9jb3JlL3NyYy90ZXN0L3Jlc291cmNlczovc3BlY3M6cm8gXAogIG9wZW5hcGl0b29scy9vcGVuYXBpLWRpZmY6bGF0ZXN0IC9zcGVjcy9wYXRoXzEueWFtbCAvc3BlY3MvcGF0aF8yLnlhbWwKYGBgCgpUaGUgcmVtb3RlIG5hbWUgYG9wZW5hcGl0b29scy9vcGVuYXBpLWRpZmZgIGNhbiBiZSByZXBsYWNlZCB3aXRoIGBsb2NhbC1vcGVuYXBpLWRpZmZgIG9yIHRoZSBuYW1lIHlvdSBnYXZlIHRvIHlvdXIgbG9jYWwgaW1hZ2UuCgojIFVzYWdlCgpvcGVuYXBpLWRpZmYgY2FuIHJlYWQgT3BlbkFQSSBzcGVjcyBmcm9tIEpTT04gZmlsZXMgb3IgSFRUUCBVUkxzLgoKIyMgQ29tbWFuZCBMaW5lCgpgYGBiYXNoCiQgb3BlbmFwaS1kaWZmIC0taGVscAp1c2FnZTogb3BlbmFwaS1kaWZmIDxvbGQ+IDxuZXc+CiAgICAtLWFzY2lpZG9jIDxmaWxlPiAgICAgICAgICAgZXhwb3J0IGRpZmYgYXMgYXNjaWlkb2MgaW4gZ2l2ZW4gZmlsZQogICAgLS1kZWJ1ZyAgICAgICAgICAgICAgICAgICAgIFByaW50IGRlYnVnZ2luZyBpbmZvcm1hdGlvbgogICAgLS1lcnJvciAgICAgICAgICAgICAgICAgICAgIFByaW50IGVycm9yIGluZm9ybWF0aW9uCiAtaCwtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlCiAgICAtLWhlYWRlciA8cHJvcGVydHk9dmFsdWU+ICAgdXNlIGdpdmVuIGhlYWRlciBmb3IgYXV0aG9yaXNhdGlvbgogICAgLS1odG1sIDxmaWxlPiAgICAgICAgICAgICAgIGV4cG9ydCBkaWZmIGFzIGh0bWwgaW4gZ2l2ZW4gZmlsZQogICAgLS1pbmZvICAgICAgICAgICAgICAgICAgICAgIFByaW50IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KICAgIC0tanNvbiA8ZmlsZT4gICAgICAgICAgICAgICBleHBvcnQgZGlmZiBhcyBqc29uIGluIGdpdmVuIGZpbGUKIC1sLC0tbG9nIDxsZXZlbD4gICAgICAgICAgICAgICB1c2UgZ2l2ZW4gbGV2ZWwgZm9yIGxvZyAoVFJBQ0UsIERFQlVHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElORk8sIFdBUk4sIEVSUk9SLCBPRkYpLiBEZWZhdWx0OiBFUlJPUgogICAgLS1tYXJrZG93biA8ZmlsZT4gICAgICAgICAgIGV4cG9ydCBkaWZmIGFzIG1hcmtkb3duIGluIGdpdmVuIGZpbGUKICAgIC0tb2ZmICAgICAgICAgICAgICAgICAgICAgICBObyBpbmZvcm1hdGlvbiBwcmludGVkCiAgICAtLXF1ZXJ5IDxwcm9wZXJ0eT12YWx1ZT4gICAgdXNlIHF1ZXJ5IHBhcmFtIGZvciBhdXRob3Jpc2F0aW9uCiAgICAtLXN0YXRlICAgICAgICAgICAgICAgICAgICAgT25seSBvdXRwdXQgZGlmZiBzdGF0ZTogbm9fY2hhbmdlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNvbXBhdGlibGUsIGNvbXBhdGlibGUKICAgIC0tZmFpbC1vbi1pbmNvbXBhdGlibGUgICAgICBGYWlsIG9ubHkgaWYgQVBJIGNoYW5nZXMgYnJva2UgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgLS1mYWlsLW9uLWNoYW5nZWQgICAgICAgICAgIEZhaWwgaWYgQVBJIGNoYW5nZWQgYnV0IGlzIGJhY2t3YXJkIGNvbXBhdGlibGUKICAgIC0tY29uZmlnLWZpbGUgICAgICAgICAgICAgICBDb25maWcgZmlsZSB0byBvdmVycmlkZSBkZWZhdWx0IGJlaGF2aW9yLiBTdXBwb3J0ZWQgZmlsZSBmb3JtYXRzOiAueWFtbAogICAgLS1jb25maWctcHJvcCAgICAgICAgICAgICAgIENvbmZpZyBwcm9wZXJ0eSB0byBvdmVycmlkZSBkZWZhdWx0IGJlaGF2aW9yIHdpdGgga2V5OnZhbHVlIGZvcm1hdCAoZS5nLiBteS5wcm9wOnRydWUpCiAgICAtLXRyYWNlICAgICAgICAgICAgICAgICAgICAgYmUgZXh0cmEgdmVyYm9zZQogICAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICAgIHByaW50IHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CiAgICAtLXdhcm4gICAgICAgICAgICAgICAgICAgICAgUHJpbnQgd2FybmluZyBpbmZvcm1hdGlvbgpgYGAKCiMjIE1hdmVuIFBsdWdpbgoKQWRkIG9wZW5hcGktZGlmZiB0byB5b3VyIFBPTSB0byBzaG93IGRpZmZzIHdoZW4geW91IHRlc3QgeW91ciBNYXZlbiBwcm9qZWN0LiBZb3UgbWF5IG9wdCB0byB0aHJvdyBhbiBlcnJvciBpZiB5b3UgaGF2ZSBicm9rZW4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb3IgaWYgeW91ciBBUEkgaGFzIGNoYW5nZWQuICAKCmBgYHhtbAo8cGx1Z2luPgogIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHMub3BlbmFwaWRpZmY8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+b3BlbmFwaS1kaWZmLW1hdmVuPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPiR7b3BlbmFwaS1kaWZmLXZlcnNpb259PC92ZXJzaW9uPgogIDxleGVjdXRpb25zPgogICAgPGV4ZWN1dGlvbj4KICAgICAgPGdvYWxzPgogICAgICAgIDxnb2FsPmRpZmY8L2dvYWw+CiAgICAgIDwvZ29hbHM+CiAgICAgIDxjb25maWd1cmF0aW9uPgogICAgICAgIDwhLS0gUmVmZXJlbmNlIHNwZWNpZmljYXRpb24gKHBlcmhhcHMgeW91ciBwcm9kIHNjaGVtYSkgLS0+CiAgICAgICAgPG9sZFNwZWM+aHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uPC9vbGRTcGVjPgogICAgICAgIDwhLS0gU3BlY2lmaWNhdGlvbiBnZW5lcmF0ZWQgYnkgeW91ciBwcm9qZWN0IGluIHRoZSBjb21waWxlIHBoYXNlIC0tPgogICAgICAgIDxuZXdTcGVjPiR7cHJvamVjdC5iYXNlZGlyfS90YXJnZXQvb3BlbmFwaS55YW1sPC9uZXdTcGVjPgogICAgICAgIDwhLS0gRmFpbCBvbmx5IGlmIEFQSSBjaGFuZ2VzIGJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKGRlZmF1bHQ6IGZhbHNlKSAtLT4KICAgICAgICA8ZmFpbE9uSW5jb21wYXRpYmxlPnRydWU8L2ZhaWxPbkluY29tcGF0aWJsZT4KICAgICAgICA8IS0tIEZhaWwgaWYgQVBJIGNoYW5nZWQgKGRlZmF1bHQ6IGZhbHNlKSAtLT4KICAgICAgICA8ZmFpbE9uQ2hhbmdlZD50cnVlPC9mYWlsT25DaGFuZ2VkPgogICAgICAgIDwhLS0gU3VwcGx5IGZpbGUgcGF0aCBmb3IgY29uc29sZSBvdXRwdXQgdG8gZmlsZSBpZiBkZXNpcmVkLiAtLT4KICAgICAgICA8Y29uc29sZU91dHB1dEZpbGVOYW1lPiR7cHJvamVjdC5iYXNlZGlyfS8uLi9tYXZlbi90YXJnZXQvZGlmZi50eHQ8L2NvbnNvbGVPdXRwdXRGaWxlTmFtZT4KICAgICAgICA8IS0tIFN1cHBseSBmaWxlIHBhdGggZm9yIGpzb24gb3V0cHV0IHRvIGZpbGUgaWYgZGVzaXJlZC4gLS0+CiAgICAgICAgPGpzb25PdXRwdXRGaWxlTmFtZT4ke3Byb2plY3QuYmFzZWRpcn0vLi4vbWF2ZW4vdGFyZ2V0L2RpZmYuanNvbjwvanNvbk91dHB1dEZpbGVOYW1lPgogICAgICAgIDwhLS0gU3VwcGx5IGZpbGUgcGF0aCBmb3IgbWFya2Rvd24gb3V0cHV0IHRvIGZpbGUgaWYgZGVzaXJlZC4gLS0+CiAgICAgICAgPG1hcmtkb3duT3V0cHV0RmlsZU5hbWU+JHtwcm9qZWN0LmJhc2VkaXJ9Ly4uL21hdmVuL3RhcmdldC9kaWZmLm1kPC9tYXJrZG93bk91dHB1dEZpbGVOYW1lPgogICAgICAgIDwhLS0gU3VwcGx5IGNvbmZpZyBmaWxlKHMpLCBlLmcuIHRvIGRpc2FibGUgaW5jb21wYXRpYmlsaXR5IGNoZWNrcy4gTGF0ZXIgZmlsZXMgb3ZlcnJpZGUgZWFybGllciBmaWxlcyAtLT4KICAgICAgICA8Y29uZmlnRmlsZXM+CiAgICAgICAgICA8Y29uZmlnRmlsZT5teS9jb25maWctZmlsZS55YW1sPC9jb25maWdGaWxlPgogICAgICAgIDwvY29uZmlnRmlsZXM+CiAgICAgICAgPCEtLSBTdXBwbHkgY29uZmlnIHByb3BlcnRpZXMsIGUuZy4gdG8gZGlzYWJsZSBpbmNvbXBhdGliaWxpdHkgY2hlY2tzLiBPdmVycmlkZXMgY29uZmlnRmlsZXMuIC0tPgogICAgICAgIDxjb25maWdQcm9wcz4KICAgICAgICAgIDxpbmNvbXBhdGlibGUucmVzcG9uc2UuZW51bS5pbmNyZWFzZWQ+ZmFsc2U8L2luY29tcGF0aWJsZS5yZXNwb25zZS5lbnVtLmluY3JlYXNlZD4KICAgICAgICA8L2NvbmZpZ1Byb3BzPgogICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICA8L2V4ZWN1dGlvbj4KICA8L2V4ZWN1dGlvbnM+CjwvcGx1Z2luPgpgYGAKCiMjIERpcmVjdCBJbnZvY2F0aW9uCgpgYGBqYXZhCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE9QRU5BUElfRE9DMSA9ICJwZXRzdG9yZV92M18xLmpzb24iOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFTkFQSV9ET0MyID0gInBldHN0b3JlX3YyXzIueWFtbCI7CiAgICAgICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgQ2hhbmdlZE9wZW5BcGkgZGlmZiA9IE9wZW5BcGlDb21wYXJlLmZyb21Mb2NhdGlvbnMoT1BFTkFQSV9ET0MxLCBPUEVOQVBJX0RPQzIpOwoKICAgICAgICAvLy4uLgogICAgfQp9CmBgYAoKIyMjIFJlbmRlciBkaWZmZXJlbmNlCgotLS0KIyMjIyBIVE1MCgpgYGBqYXZhClN0cmluZyBodG1sID0gbmV3IEh0bWxSZW5kZXIoIkNoYW5nZWxvZyIsCiAgICAgICAgImh0dHA6Ly9kZWVwb292ZS5jb20vc3dhZ2dlci1kaWZmL3N0eWxlc2hlZXRzL2RlbW8uY3NzIikKICAgICAgICAgICAgICAgIC5yZW5kZXIoZGlmZik7Cgp0cnkgewogICAgRmlsZVdyaXRlciBmdyA9IG5ldyBGaWxlV3JpdGVyKCJ0ZXN0TmV3QXBpLmh0bWwiKTsKICAgIGZ3LndyaXRlKGh0bWwpOwogICAgZncuY2xvc2UoKTsKfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgZS5wcmludFN0YWNrVHJhY2UoKTsKfQpgYGAKCiMjIyMgTWFya2Rvd24KCmBgYGphdmEKU3RyaW5nIHJlbmRlciA9IG5ldyBNYXJrZG93blJlbmRlcigpLnJlbmRlcihkaWZmKTsKdHJ5IHsKICAgIEZpbGVXcml0ZXIgZncgPSBuZXcgRmlsZVdyaXRlcigidGVzdERpZmYubWQiKTsKICAgIGZ3LndyaXRlKHJlbmRlcik7CiAgICBmdy5jbG9zZSgpOwp9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CiAgICBlLnByaW50U3RhY2tUcmFjZSgpOwp9CmBgYAoKIyMjIyBBc2NpaWRvYwoKYGBgamF2YQpTdHJpbmcgcmVuZGVyID0gbmV3IEFzY2lpZG9jUmVuZGVyKCkucmVuZGVyKGRpZmYpOwp0cnkgewogICAgRmlsZVdyaXRlciBmdyA9IG5ldyBGaWxlV3JpdGVyKCJ0ZXN0RGlmZi5hZG9jIik7CiAgICBmdy53cml0ZShyZW5kZXIpOwogICAgZncuY2xvc2UoKTsKfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgZS5wcmludFN0YWNrVHJhY2UoKTsKfQpgYGAKCiMjIyMgSlNPTgoKYGBgamF2YQpTdHJpbmcgcmVuZGVyID0gbmV3IEpzb25SZW5kZXIoKS5yZW5kZXIoZGlmZik7CnRyeSB7CiAgICBGaWxlV3JpdGVyIGZ3ID0gbmV3IEZpbGVXcml0ZXIoInRlc3REaWZmLmpzb24iKTsKICAgIGZ3LndyaXRlKHJlbmRlcik7CiAgICBmdy5jbG9zZSgpOwp9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CiAgICBlLnByaW50U3RhY2tUcmFjZSgpOwp9CmBgYAoKIyMjIEV4dGVuc2lvbnMKClRoaXMgcHJvamVjdCB1c2VzIEphdmEgU2VydmljZSBQcm92aWRlciBJbnRlZmFjZSAoU1BJKSBzbyBhZGRpdGlvbmFsIGV4dGVuc2lvbnMgY2FuIGJlIGFkZGVkLiAKClRvIGJ1aWxkIHlvdXIgb3duIGV4dGVuc2lvbiwgeW91IHNpbXBseSBuZWVkIHRvIGNyZWF0ZSBhIGBzcmMvbWFpbi9yZXNvdXJjZXMvTUVUQS1JTkYvc2VydmljZXMvb3JnLm9wZW5hcGl0b29scy5vcGVuYXBpZGlmZi5jb3JlLmNvbXBhcmUuRXh0ZW5zaW9uRGlmZmAgZmlsZSB3aXRoIHRoZSBmdWxsIGNsYXNzbmFtZSBvZiB5b3VyIGltcGxlbWVudGF0aW9uLgpZb3VyIGNsYXNzIG11c3QgYWxzbyBpbXBsZW1lbnQgdGhlIGBvcmcub3BlbmFwaXRvb2xzLm9wZW5hcGlkaWZmLmNvcmUuY29tcGFyZS5FeHRlbnNpb25EaWZmYCBpbnRlcmZhY2UuClRoZW4sIGluY2x1ZGluZyB5b3VyIGxpYnJhcnkgd2l0aCB0aGUgYG9wZW5hcGktZGlmZmAgbW9kdWxlIHdpbGwgY2F1c2UgaXQgdG8gYmUgdHJpZ2dlcmVkIGF1dG9tYXRpY2FsbHkuCgojIEV4YW1wbGVzCgojIyMgQ0xJIE91dHB1dAoKYGBgdGV4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9PSAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkgQ0hBTkdFIExPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3YWdnZXIgUGV0c3RvcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoYXQncyBOZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEdFVCAgICAvcGV0L3twZXRJZH0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoYXQncyBEZWxldGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gUE9TVCAgIC9wZXQve3BldElkfQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgIFdoYXQncyBEZXByZWNhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBHRVQgICAgL3VzZXIvbG9nb3V0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGF0J3MgQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFBVVCAgICAvcGV0CiAgUmVxdWVzdDoKICAgICAgICAtIERlbGV0ZWQgYXBwbGljYXRpb24veG1sCiAgICAgICAgLSBDaGFuZ2VkIGFwcGxpY2F0aW9uL2pzb24KICAgICAgICAgIFNjaGVtYTogQmFja3dhcmQgY29tcGF0aWJsZQotIFBPU1QgICAvcGV0CiAgUGFyYW1ldGVyOgogICAgLSBBZGQgdGFncyBpbiBxdWVyeQogIFJlcXVlc3Q6CiAgICAgICAgLSBDaGFuZ2VkIGFwcGxpY2F0aW9uL3htbAogICAgICAgICAgU2NoZW1hOiBCYWNrd2FyZCBjb21wYXRpYmxlCiAgICAgICAgLSBDaGFuZ2VkIGFwcGxpY2F0aW9uL2pzb24KICAgICAgICAgIFNjaGVtYTogQmFja3dhcmQgY29tcGF0aWJsZQotIEdFVCAgICAvcGV0L2ZpbmRCeVN0YXR1cwogIFBhcmFtZXRlcjoKICAgIC0gRGVwcmVjYXRlZCBzdGF0dXMgaW4gcXVlcnkKICBSZXR1cm4gVHlwZToKICAgIC0gQ2hhbmdlZCAyMDAgT0sKICAgICAgTWVkaWEgdHlwZXM6CiAgICAgICAgLSBDaGFuZ2VkIGFwcGxpY2F0aW9uL3htbAogICAgICAgICAgU2NoZW1hOiBCcm9rZW4gY29tcGF0aWJpbGl0eQogICAgICAgIC0gQ2hhbmdlZCBhcHBsaWNhdGlvbi9qc29uCiAgICAgICAgICBTY2hlbWE6IEJyb2tlbiBjb21wYXRpYmlsaXR5Ci0gR0VUICAgIC9wZXQvZmluZEJ5VGFncwogIFJldHVybiBUeXBlOgogICAgLSBDaGFuZ2VkIDIwMCBPSwogICAgICBNZWRpYSB0eXBlczoKICAgICAgICAtIENoYW5nZWQgYXBwbGljYXRpb24veG1sCiAgICAgICAgICBTY2hlbWE6IEJyb2tlbiBjb21wYXRpYmlsaXR5CiAgICAgICAgLSBDaGFuZ2VkIGFwcGxpY2F0aW9uL2pzb24KICAgICAgICAgIFNjaGVtYTogQnJva2VuIGNvbXBhdGliaWxpdHkKLSBERUxFVEUgL3BldC97cGV0SWR9CiAgUGFyYW1ldGVyOgogICAgLSBBZGQgbmV3SGVhZGVyUGFyYW0gaW4gaGVhZGVyCi0gUE9TVCAgIC9wZXQve3BldElkfS91cGxvYWRJbWFnZQogIFBhcmFtZXRlcjoKICAgIC0gQ2hhbmdlZCBwZXRJZCBpbiBwYXRoCi0gUE9TVCAgIC91c2VyCiAgUmVxdWVzdDoKICAgICAgICAtIENoYW5nZWQgYXBwbGljYXRpb24vanNvbgogICAgICAgICAgU2NoZW1hOiBCYWNrd2FyZCBjb21wYXRpYmxlCi0gUE9TVCAgIC91c2VyL2NyZWF0ZVdpdGhBcnJheQogIFJlcXVlc3Q6CiAgICAgICAgLSBDaGFuZ2VkIGFwcGxpY2F0aW9uL2pzb24KICAgICAgICAgIFNjaGVtYTogQmFja3dhcmQgY29tcGF0aWJsZQotIFBPU1QgICAvdXNlci9jcmVhdGVXaXRoTGlzdAogIFJlcXVlc3Q6CiAgICAgICAgLSBDaGFuZ2VkIGFwcGxpY2F0aW9uL2pzb24KICAgICAgICAgIFNjaGVtYTogQmFja3dhcmQgY29tcGF0aWJsZQotIEdFVCAgICAvdXNlci9sb2dpbgogIFBhcmFtZXRlcjoKICAgIC0gRGVsZXRlIHBhc3N3b3JkIGluIHF1ZXJ5Ci0gR0VUICAgIC91c2VyL2xvZ291dAotIEdFVCAgICAvdXNlci97dXNlcm5hbWV9CiAgUmV0dXJuIFR5cGU6CiAgICAtIENoYW5nZWQgMjAwIE9LCiAgICAgIE1lZGlhIHR5cGVzOgogICAgICAgIC0gQ2hhbmdlZCBhcHBsaWNhdGlvbi94bWwKICAgICAgICAgIFNjaGVtYTogQnJva2VuIGNvbXBhdGliaWxpdHkKICAgICAgICAtIENoYW5nZWQgYXBwbGljYXRpb24vanNvbgogICAgICAgICAgU2NoZW1hOiBCcm9rZW4gY29tcGF0aWJpbGl0eQotIFBVVCAgICAvdXNlci97dXNlcm5hbWV9CiAgUmVxdWVzdDoKICAgICAgICAtIENoYW5nZWQgYXBwbGljYXRpb24vanNvbgogICAgICAgICAgU2NoZW1hOiBCYWNrd2FyZCBjb21wYXRpYmxlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgQVBJIGNoYW5nZXMgYnJva2UgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmBgYAoKIyMjIE1hcmtkb3duCgpgYGBtYXJrZG93bgojIyMgV2hhdCdzIE5ldwotLS0KKiBgR0VUYCAvcGV0L3twZXRJZH0gRmluZCBwZXQgYnkgSUQKCiMjIyBXaGF0J3MgRGVsZXRlZAotLS0KKiBgUE9TVGAgL3BldC97cGV0SWR9IFVwZGF0ZXMgYSBwZXQgaW4gdGhlIHN0b3JlIHdpdGggZm9ybSBkYXRhCgojIyMgV2hhdCdzIERlcHJlY2F0ZWQKLS0tCiogYEdFVGAgL3VzZXIvbG9nb3V0IExvZ3Mgb3V0IGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgc2Vzc2lvbgoKIyMjIFdoYXQncyBDaGFuZ2VkCi0tLQoqIGBQVVRgIC9wZXQgVXBkYXRlIGFuIGV4aXN0aW5nIHBldCAgCiAgICBSZXF1ZXN0CgogICAgICAgIERlbGV0ZWQgcmVxdWVzdCBib2R5IDogW2FwcGxpY2F0aW9uL3htbF0KICAgICAgICBDaGFuZ2VkIHJlc3BvbnNlIDogW2FwcGxpY2F0aW9uL2pzb25dCiogYFBPU1RgIC9wZXQgQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUgIAogICAgUGFyYW1ldGVyCgogICAgICAgIEFkZCB0YWdzIC8vYWRkIG5ldyBxdWVyeSBwYXJhbSBkZW1vCiAgICBSZXF1ZXN0CgogICAgICAgIENoYW5nZWQgcmVzcG9uc2UgOiBbYXBwbGljYXRpb24veG1sXQogICAgICAgIENoYW5nZWQgcmVzcG9uc2UgOiBbYXBwbGljYXRpb24vanNvbl0KKiBgR0VUYCAvcGV0L2ZpbmRCeVN0YXR1cyBGaW5kcyBQZXRzIGJ5IHN0YXR1cyAgCiAgICBQYXJhbWV0ZXIKCiAgICBSZXR1cm4gVHlwZQoKICAgICAgICBDaGFuZ2VkIHJlc3BvbnNlIDogWzIwMF0gLy9zdWNjZXNzZnVsIG9wZXJhdGlvbgoqIGBHRVRgIC9wZXQvZmluZEJ5VGFncyBGaW5kcyBQZXRzIGJ5IHRhZ3MgIAogICAgUmV0dXJuIFR5cGUKCiAgICAgICAgQ2hhbmdlZCByZXNwb25zZSA6IFsyMDBdIC8vc3VjY2Vzc2Z1bCBvcGVyYXRpb24KKiBgREVMRVRFYCAvcGV0L3twZXRJZH0gRGVsZXRlcyBhIHBldCAgCiAgICBQYXJhbWV0ZXIKCiAgICAgICAgQWRkIG5ld0hlYWRlclBhcmFtCiogYFBPU1RgIC9wZXQve3BldElkfS91cGxvYWRJbWFnZSB1cGxvYWRzIGFuIGltYWdlIGZvciBwZXQgIAogICAgUGFyYW1ldGVyCgogICAgICAgIHBldElkIE5vdGVzIElEIG9mIHBldCB0byB1cGRhdGUgY2hhbmdlIGludG8gSUQgb2YgcGV0IHRvIHVwZGF0ZSwgZGVmYXVsdCBmYWxzZQoqIGBQT1NUYCAvdXNlciBDcmVhdGUgdXNlciAgCiAgICBSZXF1ZXN0CgogICAgICAgIENoYW5nZWQgcmVzcG9uc2UgOiBbYXBwbGljYXRpb24vanNvbl0KKiBgUE9TVGAgL3VzZXIvY3JlYXRlV2l0aEFycmF5IENyZWF0ZXMgbGlzdCBvZiB1c2VycyB3aXRoIGdpdmVuIGlucHV0IGFycmF5ICAKICAgIFJlcXVlc3QKCiAgICAgICAgQ2hhbmdlZCByZXNwb25zZSA6IFthcHBsaWNhdGlvbi9qc29uXQoqIGBQT1NUYCAvdXNlci9jcmVhdGVXaXRoTGlzdCBDcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheSAgCiAgICBSZXF1ZXN0CgogICAgICAgIENoYW5nZWQgcmVzcG9uc2UgOiBbYXBwbGljYXRpb24vanNvbl0KKiBgR0VUYCAvdXNlci9sb2dpbiBMb2dzIHVzZXIgaW50byB0aGUgc3lzdGVtICAKICAgIFBhcmFtZXRlcgoKICAgICAgICBEZWxldGUgcGFzc3dvcmQgLy9UaGUgcGFzc3dvcmQgZm9yIGxvZ2luIGluIGNsZWFyIHRleHQKKiBgR0VUYCAvdXNlci9sb2dvdXQgTG9ncyBvdXQgY3VycmVudCBsb2dnZWQgaW4gdXNlciBzZXNzaW9uICAKKiBgUFVUYCAvdXNlci97dXNlcm5hbWV9IFVwZGF0ZWQgdXNlciAgCiAgICBSZXF1ZXN0CgogICAgICAgIENoYW5nZWQgcmVzcG9uc2UgOiBbYXBwbGljYXRpb24vanNvbl0KKiBgR0VUYCAvdXNlci97dXNlcm5hbWV9IEdldCB1c2VyIGJ5IHVzZXIgbmFtZSAgCiAgICBSZXR1cm4gVHlwZQoKICAgICAgICBDaGFuZ2VkIHJlc3BvbnNlIDogWzIwMF0gLy9zdWNjZXNzZnVsIG9wZXJhdGlvbgpgYGAKCiMjIyBKU09OCgpgYGBqc29uCnsKICAgICJjaGFuZ2VkRWxlbWVudHMiOiBbLi4uXSwKICAgICJjaGFuZ2VkRXh0ZW5zaW9ucyI6IG51bGwsCiAgICAiY2hhbmdlZE9wZXJhdGlvbnMiOiBbLi4uXSwKICAgICJjb21wYXRpYmxlIjogZmFsc2UsCiAgICAiZGVwcmVjYXRlZEVuZHBvaW50cyI6IFsuLi5dLAogICAgImRpZmZlcmVudCI6IHRydWUsCiAgICAiaW5jb21wYXRpYmxlIjogdHJ1ZSwKICAgICJtaXNzaW5nRW5kcG9pbnRzIjogWy4uLl0sCiAgICAibmV3RW5kcG9pbnRzIjogWwogICAgICAgIHsKICAgICAgICAgICAgIm1ldGhvZCI6ICJHRVQiLAogICAgICAgICAgICAib3BlcmF0aW9uIjogewogICAgICAgICAgICAgICAgImNhbGxiYWNrcyI6IG51bGwsCiAgICAgICAgICAgICAgICAiZGVwcmVjYXRlZCI6IG51bGwsCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhIHNpbmdsZSBwZXQiLAogICAgICAgICAgICAgICAgImV4dGVuc2lvbnMiOiBudWxsLAogICAgICAgICAgICAgICAgImV4dGVybmFsRG9jcyI6IG51bGwsCiAgICAgICAgICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0UGV0QnlJZCIsCiAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICIkcmVmIjogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgImFsbG93RW1wdHlWYWx1ZSI6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbGxvd1Jlc2VydmVkIjogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRlbnQiOiBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAiZGVwcmVjYXRlZCI6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJRCBvZiBwZXQgdG8gcmV0dXJuIiwKICAgICAgICAgICAgICAgICAgICAgICAgImV4YW1wbGUiOiBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhhbXBsZXMiOiBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhwbG9kZSI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAiZXh0ZW5zaW9ucyI6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAicGV0SWQiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogey4uLn0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzdHlsZSI6ICJTSU1QTEUiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJyZXF1ZXN0Qm9keSI6IG51bGwsCiAgICAgICAgICAgICAgICAicmVzcG9uc2VzIjogey4uLn0sCiAgICAgICAgICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYXBpX2tleSI6IFtdCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJzZXJ2ZXJzIjogbnVsbCwKICAgICAgICAgICAgICAgICJzdW1tYXJ5IjogIkZpbmQgcGV0IGJ5IElEIiwKICAgICAgICAgICAgICAgICJ0YWdzIjogWwogICAgICAgICAgICAgICAgICAgICJwZXQiCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJwYXRoIjogbnVsbCwKICAgICAgICAgICAgInBhdGhVcmwiOiAiL3BldC97cGV0SWR9IiwKICAgICAgICAgICAgInN1bW1hcnkiOiAiRmluZCBwZXQgYnkgSUQiCiAgICAgICAgfQogICAgXSwKICAgICJuZXdTcGVjT3BlbkFwaSI6IHsuLi59LAogICAgIm9sZFNwZWNPcGVuQXBpIjogey4uLn0sCiAgICAidW5jaGFuZ2VkIjogZmFsc2UKfQpgYGAKCiMgTGljZW5zZQoKb3BlbmFwaS1kaWZmIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSAyLjAuCgojIFRoYW5rcwoKKiBBZGFyc2ggU2hhcm1hIC8gW2FkYXJzaHNoYXJtYV0oaHR0cHM6Ly9naXRodWIuY29tL2FkYXJzaHNoYXJtYSkKKiBRdWVudGluIERlc3JhbcOpIC8gW3F1ZW4yNDA0XShodHRwczovL2dpdGh1Yi5jb20vcXVlbjI0MDQpCiogW1NheWldKGh0dHBzOi8vZ2l0aHViLmNvbS9TYXlpKSBmb3IgaGlzIHByb2plY3QgW3N3YWdnZXItZGlmZl0oaHR0cHM6Ly9naXRodWIuY29tL1NheWkvc3dhZ2dlci1kaWZmKSAKICB3aGljaCB3YXMgYSBzb3VyY2Ugb2YgaW5zcGlyYXRpb24gZm9yIHRoaXMgdG9vbAo= readmeEtag: '"36b1bcb92d5c5ca6115bad42dda6b4c06e8132f3"' readmeLastModified: Thu, 15 Aug 2024 10:09:53 GMT repositoryId: 113924383 description: Utility for comparing two OpenAPI specifications. created: '2017-12-12T00:39:30Z' updated: '2024-09-04T23:48:08Z' language: Java archived: false stars: 803 watchers: 20 forks: 154 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 repoEtag: '"5e0b76eb1d47abc51e017e64b8ca91e6c86687b4f0655cf73871d0c89660e9d5"' repoLastModified: Wed, 04 Sep 2024 23:48:08 GMT foundInMaster: true category: Parsers id: c128907e9d949a67c1bda0e0ceda755a oldLocations: - https://github.com/quen2404/openapi-diff - source: openapi3 tags repository: https://github.com/stoplightio/studio v3: true repositoryMetadata: base64Readme: >- IyBTdG9wbGlnaHQgU3R1ZGlvIAoKU3R1ZGlvIGlzIFN0b3BsaWdodCdzIG5leHQgZ2VuZXJhdGlvbiBhcHBsaWNhdGlvbiBmb3IgQVBJIGRlc2lnbiwgbW9kZWxpbmcsIGFuZCB0ZWNobmljYWwgd3JpdGluZy4gQSBwcmltYXJ5IGdvYWwgb2YgU3R1ZGlvIGlzIHRvIGVucmljaCwgbm90IHJlcGxhY2UsIHlvdXIgZXhpc3Rpbmcgd29ya2Zsb3dzLiBXaGVuIHJ1bm5pbmcgbG9jYWxseSBpdCB3b3JrcyBmdWxseSBvZmZsaW5lLCB3aXRoIGZvbGRlcnMgYW5kIGZpbGVzIG9uIHlvdXIgY29tcHV0ZXIganVzdCBsaWtlIHlvdXIgZmF2b3JpdGUgSURFLiBXaGVuIHJ1bm5pbmcgaW4gdGhlIGJyb3dzZXIsIHRoZSB3ZWItbmF0aXZlIEdpdCBzdXBwb3J0IGFsbG93cyB5b3UgdG8gZWZmb3J0bGVzc2x5IHdvcmsgd2l0aCB5b3VyIGV4aXN0aW5nIHJlcG9zaXRvcmllcyBzYWZlbHkgYW5kIGVmZmljaWVudGx5LgoKIyMgRG9jdW1lbnRhdGlvbgoKVG8gbGVhcm4gbW9yZSBhYm91dCBTdHVkaW8gYW5kIHRoZSBTdG9wbGlnaHQgcGxhdGZvcm0sIHNlZSBvdXIgW1BsYXRmb3JtIERvY3VtZW50YXRpb25dKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vKS4KCiMjIEZlYXR1cmVzCgojIyMgRnVsbCBTdXBwb3J0IGZvciBPcGVuQVBJIHYyIGFuZCB2MwoKU3R1ZGlvIGNvbWVzIHdpdGggZnVsbCBzdXBwb3J0IGZvciB0aGUgT3BlbkFQSSB2ZXJzaW9ucyAyIGFuZCAzIHNwZWNpZmljYXRpb24gZm9ybWF0cyBmb3IgYWxsIGZ1bmN0aW9uYWxpdHkuIFRoYXQgbWVhbnMgZnVsbCB2YWxpZGF0aW9uLCBtb2NraW5nLCBhbmQgbW9kZWxpbmcgc3VwcG9ydCBmb3IgYm90aCB2ZXJzaW9ucyBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgoKIVtTdHVkaW8gbG92ZXMgU3dhZ2dlciArIE9wZW5BUEldKGFzc2V0cy9pbWFnZXMvb3BlbmFwaV9zd2FnZ2VyX2VxdWFsX2hlYXJ0LnBuZykKCiMjIyBHcmFwaGljYWwgQVBJIERlc2lnbgoKRm9ybS1iYXNlZCBkZXNpZ25pbmcgbWVhbnMgeW91IGRvbid0IG5lZWQgdG8gYmUgYW4gT3BlbkFQSSBleHBlcnQgdG8gZ2V0IHN0YXJ0ZWQuIFN0dWRpbyBoYXMgYSAid3JpdGUiIChjb2RlKSBtb2RlIHdpdGggZnVsbCBPcGVuQVBJIGF1dG9jb21wbGV0ZSwgYW5kIGEgInJlYWQiIG1vZGUgZm9yIHZpc3VhbGl6aW5nIEhUVFAgb3BlcmF0aW9ucyBhbmQgbW9kZWxzLgoKIVtHcmFwaGljYWwgRGVzaWduIGZvciBPcGVuQVBJXShhc3NldHMvaW1hZ2VzL2Zvcm0tZWRpdG9yLnBuZykKClRvIGZpbmQgb3V0IG1vcmUgYWJvdXQgaG93IHlvdSBjYW4gcXVpY2tseSBkZXNpZ24gYW5kIHByb3RvdHlwZSBBUElzIHdpdGhvdXQgd3JpdGluZyBhIHNpbmdsZSBsaW5lIG9mIEpTT04gb3IgWUFNTCwgc2VlIFtoZXJlXShodHRwczovL21ldGEuc3RvcGxpZ2h0LmlvL2RvY3MvcGxhdGZvcm0vWkc5ak9qTTJPVE0zTWpnNS1vdmVydmlldykuCgojIyMgSlNPTiBTY2hlbWEgTW9kZWxpbmcKClN0dWRpbyBpcyBub3QganVzdCBmb3IgQVBJcywgeW91IGNhbiBhbHNvIGNyZWF0ZSBhbmQgbW9kaWZ5IHN0YW5kYWxvbmUgSlNPTiBTY2hlbWEgZmlsZXMgZm9yIHN0b3JpbmcgZGF0YSBtb2RlbHMuIERpZCB3ZSBtZW50aW9uIHRoYXQgdGhpcyBpcyBhbHNvIHBvd2VyZWQgYnkgdGhlIGdyYXBoaWNhbCBpbnRlcmZhY2U/IE5vIG1vcmUgc2VhcmNoaW5nIGZvciB0aGUgbWF0Y2hpbmcgYnJhY2tldCBvciB0aGUgbWlzc2luZyBzcGFjZSwgYW5kIG5vIG5lZWQgdG8gYmUgZmFtaWxpYXIgd2l0aCB0aGUgaW4ncyBhbmQgb3V0J3Mgb2YgSlNPTiBTY2hlbWEuCgohW10oYXNzZXRzL2ltYWdlcy9qc2Utc2FtcGxlLnBuZykKCiMjIyBFbmNvdXJhZ2UgUmV1c2UsIEF2b2lkIER1cGxpY2F0aW9uCgpXaGVuIGl0IGNvbWVzIHRvIEFQSSBtb2RlbGluZywgYXZvaWRpbmcgZHVwbGljYXRpb24gb2YgZWZmb3J0IGNhbiBiZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHN1Y2Nlc3MgYW5kIGZhaWx1cmUuIEhvdyBjYW4geW91IGVuZm9yY2UgY29uc2lzdGVuY3kgaWYgYWxsIG9mIHlvdXIgZW5kcG9pbnRzIHJlLWNyZWF0ZSB0aGUgc2FtZSBtb2RlbCBpbiBzbGlnaHRseSBkaWZmZXJlbnQgd2F5cz8gKGhpbnQsIHlvdSBjYW4ndCkKCiFbU3R1ZGlvJ3MgZ3JhcGhpY2FsIEpTT04gc2NoZW1hIGVkaXRvciBhbGxvd3MgeW91IHRvIHF1aWNrbHkgZmluZCBtb2RlbHMgdG8gcmVmZXJlbmNlXShhc3NldHMvaW1hZ2VzL2pzZS1zYW1wbGUyLnBuZykKClN0dWRpbyBhbGxvd3MgeW91IHRvIHF1aWNrbHkgYW5kIGVhc2lseSBmaW5kIGFuZCByZXVzZSB0aGUgb2JqZWN0cyB5b3UgbmVlZCwgYXMgeW91IG5lZWQgdGhlbS4gTm8gbW9yZSByZWNyZWF0aW5nIG1vZGVscyBmb3IgZGlmZmVyZW50IGVuZHBvaW50cywgbm8gbW9yZSBoYXZpbmcgdG8gdXBkYXRlIGRvemVucyBvZiBkaWZmZXJlbnQgZW5kcG9pbnRzIGJlY2F1c2UgYSBuZXcgZmllbGQgd2FzIGFkZGVkLgoKVG8gZmluZCBvdXQgbW9yZSBhYm91dCBob3cgeW91IGNhbiBsZXZlcmFnZSByZWZlcmVuY2VzIHRvIHNjYWxlIHlvdXIgQVBJIGNvbnNpc3RlbmN5LCBzZWUgW2hlcmVdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9wbGF0Zm9ybS9aRzlqT2pJeU5UWTVNekl3LXNoYXJlZC1jb21wb25lbnRzKS4KCiMjIyBUZWNobmljYWwgRG9jdW1lbnRhdGlvbgoKTWl4IEFQSSBSZWZlcmVuY2UgRG9jdW1lbnRhdGlvbiBhbmQgTWFya2Rvd24tYmFzZWQgZ3VpZGVzLCBob3ctdG9zLCBnZXR0aW5nIHN0YXJ0ZWQgaW5mb3JtYXRpb24sIGV0Yy4gQWxsIG9mIHlvdXIgZG9jdW1lbnRhdGlvbiBjYW4gbGl2ZSB0b2dldGhlciBpbiB0aGUgc2FtZSBwcm9qZWN0LiBTdHVkaW8gaW5jbHVkZXMgYSBidWlsdC1pbiBNYXJrZG93biBlZGl0b3IsIGltYWdlIG1hbmFnZXIsIGFuZCB0aGUgYWJpbGl0eSB0byBwdWJsaXNoIGRvY3VtZW50YXRpb24gdG8gU3RvcGxpZ2h0J3MgbmV3IGRvY3VtZW50YXRpb24gcGxhdGZvcm0uCgohW0NyZWF0ZSBiZWF1dGlmdWwgYW5kIGVhc3ktdG8tdXNlIEFQSSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbl0oYXNzZXRzL2ltYWdlcy90ZWNobmljYWwtZG9jdW1lbnRhdGlvbi5wbmcpCgpZb3UgY2FuIGV2ZW4gaG9zdCB0aGUgZmlsZXMgaW4geW91ciBvd24gR2l0IHJlcG9zaXRvcnksIGFuZCB0aGVuIHB1Ymxpc2ggd2hlbiB5b3UncmUgcmVhZHkgdG8gc2hvdyBvZmYgeW91ciBsYXRlc3QgYW5kIGdyZWF0ZXN0LgoKVG8gZmluZCBvdXQgbW9yZSBhYm91dCB3cml0aW5nIHRlY2huaWNhbCBkb2N1bWVudGF0aW9uIGluIFN0dWRpbywgc2VlIG91ciBnZXR0aW5nIHN0YXJ0ZWQgZ3VpZGUgW2hlcmVdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9wbGF0Zm9ybS9aRzlqT2pRMk9URTROamszLWRvY3VtZW50YXRpb24tcXVpY2stc3RhcnQpLgoKIyMjIFN0eWxlIEd1aWRlcyBhbmQgVmFsaWRhdGlvbgoKRW5mb3JjZSBjb3JyZWN0bmVzcyBhbmQgYmVzdCBwcmFjdGljZXMgd2l0aCBbU3R5bGUgR3VpZGVzXShodHRwczovL21ldGEuc3RvcGxpZ2h0LmlvL2RvY3MvcGxhdGZvcm0vWkc5ak9qTXdNREkzTWpBMi1zdHlsZS1ndWlkZS1vdmVydmlldyksIHBvd2VyZWQgYnkgdGhlIG5hdGl2ZSBbU3BlY3RyYWxdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL3NwZWN0cmFsLz91dG1fc291cmNlPWdpdGh1Yi5jb20mdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249Z2l0aHViX3JlcG9fc3R1ZGlvKSBpbnRlZ3JhdGlvbiB0aGF0IGFsZXJ0cyB5b3UgdG8gZXJyb3JzIHRoZSBtb21lbnQgdGhleSBhcmUgY3JlYXRlZC4KCiFbU3BlY3RyYWwgdmFsaWRhdGVzIGFuZCBsaW50cyB5b3VyIEFQSXMgdG8gZW5zdXJlIHRoZXkgYXJlIGNvcnJlY3QgYW5kIGZ1bmN0aW9uYWxdKGFzc2V0cy9pbWFnZXMvc3BlY3RyYWwxLnBuZykKCkNsaWNraW5nIG9uIGVycm9ycyBvciB3YXJuaW5ncyBhbHNvIGJyaW5ncyB5b3UgdG8gZXhhY3RseSB3aGVyZSB0aGV5IGFyZSBsb2NhdGVkIGluIHRoZSBkb2N1bWVudCwgbWFraW5nIGl0IGVhc3kgdG8gZml4IGVycm9ycyBhdCB0aGUgc291cmNlLgoKIyMjIEJ1aWx0LWluIE1vY2tpbmcKCldoZW4gcnVubmluZyBsb2NhbGx5LCBTdHVkaW8gd2lsbCBhdXRvbWF0aWNhbGx5IHN0YXJ0IGEgbG9jYWwgW1ByaXNtIG1vY2sgc2VydmVyXShodHRwczovL3N0b3BsaWdodC5pby9wcmlzbS8/dXRtX3NvdXJjZT1naXRodWIuY29tJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPWdpdGh1Yl9yZXBvX3N0dWRpbykgZm9yIGV2ZXJ5IEFQSSBkZWZpbmVkIGluIHlvdXIgcHJvamVjdCwgYW5kIGtlZXAgdGhhdCBtb2NrIHNlcnZlciB1cCB0byBkYXRlIGFzIHlvdSBjaGFuZ2UgeW91ciBkZXNpZ25zLgoKIVtNb2NraW5nIGFsbG93cyB5b3UgdG8gcXVpY2tseSB0ZXN0IHRoZSBsb29rIGFuZCBmZWVsIG9mIHlvdXIgQVBJIGJlZm9yZSBqdW1waW5nIGludG8gdGhlIGNvZGVdKGFzc2V0cy9pbWFnZXMvc3R1ZGlvLW1vY2tpbmcucG5nKQoKVG8gZmluZCBvdXQgbW9yZSBhYm91dCBQcmlzbSBhbmQgaG93IG1vY2tpbmcgY2FuIGJlIHVzZWQgdG8gc3RyZWFtbGluZSB5b3VyIEFQSSBkZXZlbG9wbWVudCBwcm9jZXNzLCBzZWUgW2hlcmVdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9wbGF0Zm9ybS9aRzlqT2pNMk9UTTNNamc0LXdvcmstd2l0aC1tb2NrLXNlcnZlcnMpLgoKIyMjIEJyaW5nIFlvdXIgT3duIFJlcG9zaXRvcnkKClNpbmNlIFN0dWRpbyB3b3JrcyB3aXRoIHlvdXIgbG9jYWwgZmlsZSBzeXN0ZW0sIHlvdSBjYW4gb3BlbiB1cCB5b3VyIEFQSSBwcm9qZWN0cyBhbmQgc3RhcnQgYWRkaW5nIGRvY3MgYW5kIGRlc2lnbnMgYWxvbmdzaWRlIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gdGhleSBhcmUgbWVhbnQgdG8gZGVzY3JpYmUuIE9uY2UgeW91J3JlIGRvbmUsIGNoZWNrIGl0IGFsbCBpbnRvIEdpdCB3aXRoIHlvdXIgZmF2b3JpdGUgR2l0IGNsaWVudCEKCiMjIExpY2Vuc2UKCjxhIHJlbD0ibGljZW5zZSIgaHJlZj0iaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5kLzQuMC8iPjxpbWcgYWx0PSJDcmVhdGl2ZSBDb21tb25zIExpY2Vuc2UiIHN0eWxlPSJib3JkZXItd2lkdGg6MCIgc3JjPSJodHRwczovL2kuY3JlYXRpdmVjb21tb25zLm9yZy9sL2J5LW5kLzQuMC84OHgzMS5wbmciIC8+PC9hPjxiciAvPjxzcGFuIHhtbG5zOmRjdD0iaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyIgcHJvcGVydHk9ImRjdDp0aXRsZSI+U3RvcGxpZ2h0IFN0dWRpbzwvc3Bhbj4gYnkgPGEgeG1sbnM6Y2M9Imh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIGhyZWY9Imh0dHBzOi8vc3RvcGxpZ2h0LmlvL3N0dWRpbz91dG1fc291cmNlPWdpdGh1Yi5jb20mdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249Z2l0aHViX3JlcG9fc3R1ZGlvIiBwcm9wZXJ0eT0iY2M6YXR0cmlidXRpb25OYW1lIiByZWw9ImNjOmF0dHJpYnV0aW9uVVJMIj5TdG9wbGlnaHQuaW88L2E+IGlzIGxpY2Vuc2VkIHVuZGVyIGEgPGEgcmVsPSJsaWNlbnNlIiBocmVmPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktbmQvNC4wLyI+Q3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1Ob0Rlcml2YXRpdmVzIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2U8L2E+Lgo= readmeEtag: '"70966732d8cb9dcc0d216fc328ccf33bb2ce4282"' readmeLastModified: Tue, 20 Sep 2022 18:48:05 GMT repositoryId: 192797744 description: The modern editor for API Design and Technical Writing. created: '2019-06-19T20:09:49Z' updated: '2024-09-05T06:23:41Z' language: null archived: false stars: 803 watchers: 30 forks: 50 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: NOASSERTION repoEtag: '"65fc9c5039188f904386a153f1c8b77887477644a5d583a7b001eeea9d16ae9f"' repoLastModified: Thu, 05 Sep 2024 06:23:41 GMT foundInMaster: true category: - Description Validators - Server Implementations id: 0e510c4e495bc626b13dba4aa09d83dc - source: openapi3 tags repository: https://github.com/mermade/oas-kit v3: true repositoryMetadata: base64Readme: >- IyBPQVMtS2l0CgpUaGlzIGlzIHRoZSBtb25vLXJlcG8gZm9yIHRoZSBmb2xsb3dpbmcgcmVsYXRlZCBwcm9qZWN0cwoKKiBbc3dhZ2dlcjJvcGVuYXBpXShwYWNrYWdlcy9zd2FnZ2VyMm9wZW5hcGkvUkVBRE1FLm1kKQoqIFtvYXMtdmFsaWRhdG9yXShwYWNrYWdlcy9vYXMtdmFsaWRhdG9yL1JFQURNRS5tZCkKKiBbb2FzLWxpbnRlcl0ocGFja2FnZXMvb2FzLWxpbnRlci9SRUFETUUubWQpCiogW29hcy1yZXNvbHZlcl0ocGFja2FnZXMvb2FzLXJlc29sdmVyL1JFQURNRS5tZCkKKiBbb2FzLXNjaGVtYS13YWxrZXJdKHBhY2thZ2VzL29hcy1zY2hlbWEtd2Fsa2VyL1JFQURNRS5tZCkKKiBbb2FzLWtpdC1jb21tb25dKHBhY2thZ2VzL29hcy1raXQtY29tbW9uL1JFQURNRS5tZCkKKiBbcmVmdG9vbHNdKHBhY2thZ2VzL3JlZnRvb2xzL1JFQURNRS5tZCkKCiMjIERvY3VtZW50YXRpb24KCiogW01haW4gc2l0ZV0oaHR0cHM6Ly9tZXJtYWRlLmdpdGh1Yi5pby9vYXMta2l0KQoqIFtDSEFOR0VMT0ddKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL29hcy1raXQvYmxvYi9tYXN0ZXIvQ0hBTkdFTE9HLm1kI2NoYW5nZS1sb2cpCgojIyBPbmxpbmUgY29udmVydGVyL3ZhbGlkYXRvcgoKKiBbT3BlbkFQSS13ZWJjb252ZXJ0ZXJdKGh0dHBzOi8vbWVybWFkZS5vcmcudWsvb3BlbmFwaS1jb252ZXJ0ZXIpCgojIyBTdXBwb3J0ZWQgTm9kZS5qcyB2ZXJzaW9ucwoKQW55IExUUyB2ZXJzaW9uLiBJdCBpcyAqKm5vdCoqIHJlY29tbWVuZGVkIHRvIHVzZSBOb2RlLmpzIDEyLjE3LngsMTIuMTgueCBvciAxMi4xOS54IGR1ZSB0byBhbiBbaHR0cDIgYnVnXShodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvaXNzdWVzLzI4MDAxKS4KCiMjIERldmVsb3BtZW50CgoqIGNsb25lIHRoZSByZXBvc2l0b3J5CiogYG5wbSBpYCBpbiB0aGUgdG9wIGxldmVsIGRpcmVjdG9yeQoqIGBucHggbGVybmEgYm9vdHN0cmFwYAoKUGxlYXNlIHRyeSBhbmQga2VlcCBjb21taXRzIHJlbGF0ZWQgdG8gYSBzaW5nbGUgcGFja2FnZSBvciBwaWVjZSBvZiBmdW5jdGlvbmFsaXR5LiBQbGVhc2UgcmV2aWV3IHRoZQpbQ09OVFJJQlVUSU5HLm1kXShDT05UUklCVVRJTkcubWQpIGZvciBhZGRpdGlvbmFsIGRldGFpbHMuCgojIyBTdXBwb3J0aW5nIGRldmVsb3BtZW50CgoqIFtBUElzLmd1cnUgb3Blbi1jb2xsZWN0aXZlXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpLWRpcmVjdG9yeSkKKiBbTGlub2RlIFZQUyByZWZlcnJhbCBsaW5rXShodHRwczovL3d3dy5saW5vZGUuY29tLz9yPTU3MzRiZTQ2N2NjNTAxYjIzMjY3Y2Y2NmQ0NTFiYzMzOTA0MmRkZmEpCg== readmeEtag: '"cd704faeca79a10585a963bfa21eb1994069dc88"' readmeLastModified: Wed, 07 Jul 2021 12:13:38 GMT repositoryId: 71464935 description: Convert Swagger 2.0 definitions to OpenAPI 3.0 and resolve/validate/lint created: '2016-10-20T13:17:42Z' updated: '2024-08-20T10:06:53Z' language: JavaScript archived: false stars: 702 watchers: 15 forks: 129 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause repoEtag: '"1bc6a09a62a5d38c00c5711a180f6629ee4ec4dd10531d3e25fe9f78642da9d8"' repoLastModified: Tue, 20 Aug 2024 10:06:53 GMT foundInMaster: true category: - Converters - Parsers id: 6f45c86bb645fe0967b0b35672cb2a57 oldLocations: - https://github.com/mermade/swagger2openapi - source: openapi3 tags name: API Sprout homepage: https://github.com/danielgtaylor/apisprout language: - cli - Docker source_description: >- Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation category: - Mock - Server Implementations link: https://github.com/danielgtaylor/apisprout repository: https://github.com/danielgtaylor/apisprout v3: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzEwNjgyNi80MzExOTQ5NC03OGJlOTIyNC04ZWNiLTExZTgtOWQxYS05ZmM2ZjMwMTRiOTEucG5nIiB3aWR0aD0iMzAwIiBhbHQ9IkFQSSBTcHJvdXQiLz4KClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2FwaXNwcm91dCldKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2FwaXNwcm91dCkgWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvZGFuaWVsZ3RheWxvci9hcGlzcHJvdXQuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvZGFuaWVsZ3RheWxvci9hcGlzcHJvdXQpIFshW0dpdEh1YiB0YWcgKGxhdGVzdCBTZW1WZXIpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi90YWcvZGFuaWVsZ3RheWxvci9hcGlzcHJvdXQuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvYXBpc3Byb3V0L3JlbGVhc2VzKSBbIVtEb2NrZXIgUHVsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3B1bGxzL2RhbmllbGd0YXlsb3IvYXBpc3Byb3V0LnN2ZyldKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9kYW5pZWxndGF5bG9yL2FwaXNwcm91dC8pCgpBIHNpbXBsZSwgcXVpY2ssIGNyb3NzLXBsYXRmb3JtIEFQSSBtb2NrIHNlcnZlciB0aGF0IHJldHVybnMgZXhhbXBsZXMgc3BlY2lmaWVkIGluIGFuIEFQSSBkZXNjcmlwdGlvbiBkb2N1bWVudC4gRmVhdHVyZXMgaW5jbHVkZToKCi0gT3BlbkFQSSAzLnggc3VwcG9ydAogIC0gVXNlcyBvcGVyYXRpb24gYGV4YW1wbGVzYCBvciBnZW5lcmF0ZXMgZXhhbXBsZXMgZnJvbSBgc2NoZW1hYAotIExvYWQgZnJvbSBhIFVSTCBvciBsb2NhbCBmaWxlIChhdXRvIHJlbG9hZCB3aXRoIGAtLXdhdGNoYCkKLSBDT1JTIGhlYWRlcnMgZW5hYmxlZCBieSBkZWZhdWx0Ci0gQWNjZXB0IGhlYWRlciBjb250ZW50IG5lZ290aWF0aW9uCiAgLSBFeGFtcGxlOiBgQWNjZXB0OiBhcHBsaWNhdGlvbi8qYAotIFByZWZlciBoZWFkZXIgdG8gc2VsZWN0IHJlc3BvbnNlIHRvIHRlc3Qgc3BlY2lmaWMgY2FzZXMKICAtIEV4YW1wbGU6IGBQcmVmZXI6IHN0YXR1cz00MDlgCi0gU2VydmVyIHZhbGlkYXRpb24gKGVuYWJsZWQgd2l0aCBgLS12YWxpZGF0ZS1zZXJ2ZXJgKQogIC0gVmFsaWRhdGVzIHNjaGVtZSwgaG9zdG5hbWUvcG9ydCwgYW5kIGJhc2UgcGF0aAogIC0gU3VwcG9ydHMgYGxvY2FsaG9zdGAgb3V0IG9mIHRoZSBib3gKICAtIFVzZSB0aGUgYC0tYWRkLXNlcnZlcmAgZmxhZywgaW4gY29uanVuY3Rpb24gd2l0aCBgLS12YWxpZGF0ZS1zZXJ2ZXJgLCB0byBkeW5hbWljYWxseSBpbmNsdWRlIG1vcmUgc2VydmVycyBpbiB0aGUgdmFsaWRhdGlvbiBsb2dpYwotIFJlcXVlc3QgcGFyYW1ldGVyICYgYm9keSB2YWxpZGF0aW9uIChlbmFibGVkIHdpdGggYC0tdmFsaWRhdGUtcmVxdWVzdGApCi0gQ29uZmlndXJhdGlvbiB2aWE6CiAgLSBGaWxlcyAoYC9ldGMvYXBpc3Byb3V0L2NvbmZpZy5qc29ufHlhbWxgKQogIC0gRW52aXJvbm1lbnQgKHByZWZpeGVkIHdpdGggYFNQUk9VVF9gLCBlLmcuIGBTUFJPVVRfVkFMSURBVEVfU0VSVkVSYCkKICAtIENvbW1hbmRsaW5lIGZsYWdzCgpVc2FnZSBpcyBzaW1wbGU6CgpgYGBzaAojIExvYWQgZnJvbSBhIGxvY2FsIGZpbGUKYXBpc3Byb3V0IG15LWFwaS55YW1sCgojIFZhbGlkYXRlIHNlcnZlciBuYW1lIGFuZCB1c2UgYmFzZSBwYXRoCmFwaXNwcm91dCAtLXZhbGlkYXRlLXNlcnZlciBteS1hcGkueWFtbAoKIyBEeW5hbWljYWxseSBJbmNsdWRlIGEgbmV3IHNlcnZlciAvIHBhdGggaW4gdGhlIHZhbGlkYXRpb24KYXBpc3Byb3V0IC0tYWRkLXNlcnZlciBodHRwOi8vbG9jYWxob3N0OjgwODAvbW9jayAtLXZhbGlkYXRlLXNlcnZlciBteS1hcGkueWFtbAoKIyBMb2FkIGZyb20gYSBVUkwKYXBpc3Byb3V0IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL21hc3Rlci9leGFtcGxlcy92My4wL2FwaS13aXRoLWV4YW1wbGVzLnlhbWwKYGBgCgojIyBEb2NrZXIgSW1hZ2UKCkEgaG9zdGVkIFtBUEkgU3Byb3V0IERvY2tlciBpbWFnZV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2RhbmllbGd0YXlsb3IvYXBpc3Byb3V0LykgaXMgcHJvdmlkZWQgdGhhdCBtYWtlcyBpdCBlYXN5IHRvIGRlcGxveSBtb2NrIHNlcnZlcnMgb3IgcnVuIGxvY2FsbHkuIEZvciBleGFtcGxlOgoKYGBgc2gKZG9ja2VyIHB1bGwgZGFuaWVsZ3RheWxvci9hcGlzcHJvdXQKZG9ja2VyIHJ1biAtcCA4MDAwOjgwMDAgZGFuaWVsZ3RheWxvci9hcGlzcHJvdXQgaHR0cDovL2V4YW1wbGUuY29tL215LWFwaS55YW1sCmBgYAoKQ29uZmlndXJhdGlvbiBjYW4gYmUgcGFzc2VkIHZpYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGUuZy4gc2V0dGluZyBgU1BST1VUX1ZBTElEQVRFX1JFUVVFU1Q9MWAsIG9yIGJ5IHBhc3NpbmcgY29tbWFuZGxpbmUgZmxhZ3MuIEl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIGEgbG9jYWwgQVBJIGRlc2NyaXB0aW9uIGZpbGUgdmlhIFtEb2NrZXIgVm9sdW1lc10oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vc3RvcmFnZS92b2x1bWVzLyk6CgpgYGAKIyBSZW1lbWJlciB0byBwdXQgdGhlIGZ1bGwgcGF0aCB0byBsb2NhbCBhcmNoaXZlIFlBTUwgaW4gLXYKZG9ja2VyIHJ1biAtcCA4MDAwOjgwMDAgLXYgJEZVTExQQVRIL2xvY2FsZmlsZS55YW1sOi9hcGkueWFtbCBkYW5pZWxndGF5bG9yL2FwaXNwcm91dCAvYXBpLnlhbWwKYGBgCgojIyBJbnN0YWxsYXRpb24KCkRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBiaW5hcnkgZnJvbSB0aGUgW3JlbGVhc2VzXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9hcGlzcHJvdXQvcmVsZWFzZXMpIHBhZ2UuCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBgZ28gZ2V0YDoKCmBgYHNoCmdvIGdldCBnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvYXBpc3Byb3V0CmBgYAoKIyMgRXh0cmEgRmVhdHVyZXMKCiMjIyBSZW1vdGUgUmVsb2FkCgpJZiB5b3VyIEFQSSBzcGVjIGlzIGxvYWRlZCBmcm9tIGEgcmVtb3RlIFVSTCwgeW91IGNhbiBsaXZlLXJlbG9hZCBpdCBieSBoaXR0aW5nIHRoZSBgL19fcmVsb2FkYCBlbmRwb2ludC4KCiMjIyBIZWFsdGggQ2hlY2sKCkEgc2ltcGxlIGVuZHBvaW50IHdoaWNoIHJldHVybnMgc3RhdHVzIGNvZGUgYDIwMGAgaXMgYXZhaWxhYmxlIGF0IGAvX19oZWFsdGhgLiBUaGlzIGVuZHBvaW50IHN1Y2Nlc3NmdWxseSByZXR1cm5zIGAyMDBgIGV2ZW4gaWYgYC0tdmFsaWRhdGUtc2VydmVyYCBpcyB0dXJuZWQgb24sIGFuZCB0aGUgZW5kcG9pbnQgaXMgYmVpbmcgYWNjZXNzZWQgZnJvbSBhIG5vbi12YWxpZGF0ZWQgaG9zdC4KCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgdmVyeSB3ZWxjb21lLiBQbGVhc2Ugb3BlbiBhIHRyYWNraW5nIGlzc3VlIG9yIHB1bGwgcmVxdWVzdCBhbmQgd2UgY2FuIHdvcmsgdG8gZ2V0IHRoaW5ncyBtZXJnZWQgaW4uCgojIyBSZWxlYXNlIFByb2Nlc3MKClRoZSBmb2xsb3dpbmcgZGVzY3JpYmVzIHRoZSBzdGVwcyB0byBtYWtlIGEgbmV3IHJlbGVhc2Ugb2YgQVBJIFNwcm91dC4KCjEuIE1lcmdlIG9wZW4gUFJzIHlvdSB3YW50IHRvIHJlbGVhc2UuCjEuIFNlbGVjdCBhIG5ldyBzZW12ZXIgdmVyc2lvbiBudW1iZXIgKG1ham9yL21pbm9yL3BhdGNoIGRlcGVuZGluZyBvbiBjaGFuZ2VzKS4KMS4gVXBkYXRlIGBDSEFOR0VMT0cubWRgIHRvIGRlc2NyaWJlIGNoYW5nZXMuCjEuIENyZWF0ZSBhIGNvbW1pdCBmb3IgdGhlIHJlbGVhc2UuCjEuIFRhZyB0aGUgY29tbWl0IHdpdGggYGdpdCB0YWcgLWEgLW0gJ1RhZ2dpbmcgeC55LnogcmVsZWFzZScgdngueS56YC4KMS4gQnVpbGQgcmVsZWFzZSBiaW5hcmllcyB3aXRoIGAuL3JlbGVhc2Uuc2hgLgoxLiBQdXNoIHRoZSBjb21taXQgYW5kIHRhZ3MuCjEuIFVwbG9hZCB0aGUgcmVsZWFzZSBiaW5hcmllcy4KCiMjIExpY2Vuc2UKCkNvcHlyaWdodCAmY29weTsgMjAxOC0yMDE5IERhbmllbCBHLiBUYXlsb3IKCmh0dHA6Ly9kZ3QubWl0LWxpY2Vuc2Uub3JnLwo= readmeEtag: '"66a669d19eba31ae592125a14d05a92dc68fbd57"' readmeLastModified: Thu, 31 Oct 2019 06:11:48 GMT repositoryId: 142108855 description: >- Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation created: '2018-07-24T05:29:01Z' updated: '2024-09-04T15:04:08Z' language: Go archived: false stars: 694 watchers: 13 forks: 74 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT repoEtag: '"6f8d520482ef583e3d157621d5c5d23197dfc316cd25163f755f35efa4da00fc"' repoLastModified: Wed, 04 Sep 2024 15:04:08 GMT foundInMaster: true id: 1ceeb35cbfe549bf7ed38d6e576301db - source: - openapi3 tags - openapi31 tags repository: https://github.com/redocly/create-openapi-repo v3: true repositoryMetadata: base64Readme: >- IyBjcmVhdGUtb3BlbmFwaS1yZXBvCgpBIHRvb2wgZm9yIGdlbmVyYXRpbmcgbXVsdGktZmlsZSBPcGVuQVBJIGRlZmluaXRpb25zLgoKWyFbTlBNIHZlcnNpb25dW25wbS1pbWFnZV1dW25wbS11cmxdIFshW0RlcGVuZGVuY3kgU3RhdHVzXVtkYXZpZGRtLWltYWdlXV1bZGF2aWRkbS11cmxdCgo8cCBhbGlnbj0iY2VudGVyIj4KPGltZyBzcmM9Ii4vbG9nby5wbmciIHdpZHRoPSI1MDBweCIvPgo8L3A+CgpOZWVkIHRvIHdyaXRlIG9yIGNvbnRyaWJ1dGUgdG8gYW4gT3BlbkFQSSBkZWZpbml0aW9uPyBgY3JlYXRlLW9wZW5hcGktcmVwb2AgY2FuIGhlbHAgd2l0aCB0aGF0IQoKIyMgRmVhdHVyZXMKCiAtIE9wZW5BUEkgMy4wIHN1cHBvcnQKIC0gU3BsaXQgYW4gZXhpc3RpbmcgT3BlbkFQSSBkZWZpbml0aW9uIGludG8gbXVsdGlwbGUgZmlsZXMKIC0gQnVuZGxlIGEgbXVsdGktZmlsZSBkZWZpbml0aW9uIGludG8gYSBzaW5nbGUgZmlsZQogLSBWYWxpZGF0ZSB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiB1c2luZyBvdXIgZnJlZSBbb3BlbmFwaS1jbGkgdG9vbF0oaHR0cHM6Ly9naXRodWIuY29tL3JlZG9jbHkvb3BlbmFwaS1jbGkpCiAtIEF1dG9tYXRlIGRlcGxveW1lbnQgb2YgeW91ciBBUEkgcmVmZXJlbmNlIGRvY3MgdXNpbmcgQ0kvQ0Qgd29ya2Zsb3dzCiAtIE1haW50YWluIGNvZGUgc2FtcGxlcyBhcyBzZXBhcmF0ZSBmaWxlcwogLSBMaXZlIGVkaXRpbmcgaW4geW91ciBlZGl0b3Igb2YgY2hvaWNlIDpoZWFydF9leWVzOgoKIyMgRXhhbXBsZXMKLSBbUmViaWxseV0oaHR0cHM6Ly9naXRodWIuY29tL1JlYmlsbHkvUmViaWxseUFQSSkKLSBbVGhpbmdmdWxdKGh0dHBzOi8vZ2l0aHViLmNvbS90aGluZ2Z1bC9vcGVuYXBpLXNwZWMpCgojIyBQcmVyZXF1aXNpdGVzCgpCZWZvcmUgeW91IGJlZ2luLCBtYWtlIHN1cmUgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBwcmVyZXF1aXNpdGVzOgoKIC0gW05vZGUuanNdKGh0dHBzOi8vbm9kZWpzLm9yZy8pCiAtIFtHaXRodWIgcmVwb3NpdG9yeV0oaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20vYXJ0aWNsZXMvY3JlYXRlLWEtcmVwby8jY3JlYXRlLWEtbmV3LXJlcG9zaXRvcnktb24tZ2l0aHViKSAobmV3IE9wZW5BUEkgZGVmaW5pdGlvbnMgb25seSkKCiMjIEluc3RhbGxhdGlvbgoKMS4gTmF2aWdhdGUgdG8gdGhlIGxvY2F0aW9uIHdoZXJlIHlvdSB3YW50IHRvIGNyZWF0ZSB0aGUgcmVwb3NpdG9yeS4KMi4gUnVuIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgogICAtIEluc3RhbGwgYGNyZWF0ZS1vcGVuYXBpLXJlcG9gIGdsb2JhbGx5OgoKICAgICAgICBgYGBiYXNoCiAgICAgICAgbnBtIGluc3RhbGwgLWcgY3JlYXRlLW9wZW5hcGktcmVwbwogICAgICAgIGBgYAoKICAgLSBJbnN0YWxsIGBjcmVhdGUtb3BlbmFwaS1yZXBvYCB1c2luZyBbYG5weGBdKGh0dHBzOi8vbWVkaXVtLmNvbS9AbWF5YmVrYXR6L2ludHJvZHVjaW5nLW5weC1hbi1ucG0tcGFja2FnZS1ydW5uZXItNTVmN2Q0YmQyODJiKToKCiAgICAgICAgYGBgYmFzaAogICAgICAgIG5weCBjcmVhdGUtb3BlbmFwaS1yZXBvCiAgICAgICAgYGBgCgozLiBGb2xsb3cgdGhlIFtpbnRlcmFjdGl2ZSBwcm9tcHRzXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9jcmVhdGUtb3BlbmFwaS1yZXBvI3VzYWdlKSB0byBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uLgoKIyMjIFVwZ3JhZGluZyBmcm9tIGEgcHJpb3IgdmVyc2lvbgoKVG8gdXBncmFkZSBmcm9tIGEgcHJpb3IgdmVyc2lvbiBvZiBgY3JlYXRlLW9wZW5hcGktcmVwb2AsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gdGhlIHJvb3QgZm9sZGVyIG9mIHlvdXIgcmVwb3NpdG9yeToKCmBgYGJhc2gKbnB4IGNyZWF0ZS1vcGVuYXBpLXJlcG8gLS1taWdyYXRlLTItMwpgYGAKCioqTm90ZToqKiBQbHVnaW5zIGFyZW4ndCBpbmNsdWRlZCBpbiB0aGUgbWlncmF0aW9uLiBZb3UnbGwgbmVlZCB0byBtYW51YWxseSBhZGQgdGhlbSB0byB0aGUgYHRyYW5zZm9ybWVyc2AgZm9sZGVyLgoKIyMgVXNhZ2UKCmBjcmVhdGUtb3BlbmFwaS1yZXBvYCBwcm92aWRlcyBpbnRlcmFjdGl2ZSBwcm9tcHRzIHRvIGhlbHAgZ3VpZGUgeW91IHRocm91Z2ggdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBUd28gYmFzaWMgd29ya2Zsb3dzIGFyZSBzdXBwb3J0ZWQ6CgojIyMgU3BsaXQgYW4gZXhpc3RpbmcgT3BlbkFQSSBkZWZpbml0aW9uCgpUaGUgaW50ZXJhY3RpdmUgcHJvbXB0cyBhbGxvdyB5b3UgdG8gc3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgZmlsZSBvbiB5b3VyIGxvY2FsIG1hY2hpbmUsIGFzIHdlbGwgYXMgcmVuYW1lIHRoZSBBUEkgKG9wdGlvbmFsKS4gQWZ0ZXIgeW91IGNob29zZSB0byBwcm9jZWVkLCBgY3JlYXRlLW9wZW5hcGktcmVwb2AgaW5pdGlhbGl6ZXMgdGhlIHJlcG9zaXRvcnkgYW5kIHNwbGl0cyB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiBpbnRvIG11bHRpcGxlIGZpbGVzLgoKIyMjIENyZWF0ZSBhIG5ldyBPcGVuQVBJIGRlZmluaXRpb24KClRoZSBpbnRlcmFjdGl2ZSBwcm9tcHRzIGFsbG93IHlvdSB0byBzcGVjaWZ5IGEgbmFtZSBmb3IgdGhlIEFQSSBhbmQgY2hvb3NlIHdoZXRoZXIgdG8gY3JlYXRlIGEgc3ViLWZvbGRlciBmb3IgY29kZSBzYW1wbGUgZmlsZXMuIEFmdGVyIHlvdSBjaG9vc2UgdG8gcHJvY2VlZCwgYGNyZWF0ZS1vcGVuYXBpLXJlcG9gIGluaXRpYWxpemVzIHRoZSByZXBvc2l0b3J5IGFuZCBwb3B1bGF0ZXMgaXQgd2l0aCBwbGFjZWhvbGRlciBmaWxlcyBhbmQgZm9sZGVycy4gCgojIyBEaXJlY3Rvcnkgc3RydWN0dXJlCgpUaGUgZGlyZWN0b3J5IHN0cnVjdHVyZSB3aWxsIGxvb2sgc2ltaWxhciB0byB0aGlzOgoKKipOb3RlOioqIFlvdSBjYW4gbW9kaWZ5IHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIHRvIG1lZXQgeW91ciBzcGVjaWZpYyByZXF1aXJlbWVudHMuCgpgYGAKICAgIOKUnOKUgOKUgCAucmVkb2NseS55YW1sCiAgICDilJzilIDilIAgTElDRU5TRQogICAg4pSc4pSA4pSAIFJFQURNRS5tZAogICAg4pSc4pSA4pSAIGRvY3MKICAgIOKUgiAgIOKUnOKUgOKUgCBmYXZpY29uLnBuZwogICAg4pSCICAg4pSU4pSA4pSAIGluZGV4Lmh0bWwKICAgIOKUnOKUgOKUgCBvcGVuYXBpCiAgICDilIIgICDilJzilIDilIAgUkVBRE1FLm1kCiAgICDilIIgICDilJzilIDilIAgY29kZV9zYW1wbGVzCiAgICDilIIgICDilIIgICDilJzilIDilIAgQyMKICAgIOKUgiAgIOKUgiAgIOKUgiAgIOKUlOKUgOKUgCBlY2hvCiAgICDilIIgICDilIIgICDilIIgICAgICAg4pSU4pSA4pSAIHBvc3QuY3MKICAgIOKUgiAgIOKUgiAgIOKUnOKUgOKUgCBQSFAKICAgIOKUgiAgIOKUgiAgIOKUgiAgIOKUlOKUgOKUgCBlY2hvCiAgICDilIIgICDilIIgICDilIIgICAgICAg4pSU4pSA4pSAIHBvc3QucGhwCiAgICDilIIgICDilIIgICDilJTilIDilIAgUkVBRE1FLm1kCiAgICDilIIgICDilJzilIDilIAgY29tcG9uZW50cwogICAg4pSCICAg4pSCICAg4pSU4pSA4pSAIFJFQURNRS5tZAogICAg4pSCICAg4pSU4pSA4pSAIHBhdGhzCiAgICDilIIgICAgICAg4pSU4pSA4pSAIFJFQURNRS5tZAogICAg4pSU4pSA4pSAIHBhY2thZ2UuanNvbgpgYGAKCiAtIGAucmVkb2NseS55YW1sYDogQ29uZmlndXJhdGlvbiBmaWxlIGZvciBkZWZpbmluZyBzZXR0aW5ncyBmb3IgdmFyaW91cyBSZWRvY2x5IHRvb2xzLCBpbmNsdWRpbmcgdGhlIGxpbnQgdG9vbCBhbmQgcmVmZXJlbmNlIGRvY3MgZW5naW5lLgogLSBgb3BlbmFwaWA6IFRvcC1sZXZlbCBmb2xkZXIgdGhhdCBjb250YWlucyB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbiwgYG9wZW5hcGkueWFtbGAgZW50cnlwb2ludCBmaWxlLCBhbmQgc3ViLWZvbGRlcnMgZm9yIGBwYXRoc2AsIGBjb21wb25lbnRzYCwgYW5kIGBjb2RlX3NhbXBsZXNgLgogLSBgY29kZV9zYW1wbGVzYDogRm9sZGVyIGZvciBvcmdhbml6aW5nIGNvZGUgc2FtcGxlcyBpbnRvIHN1Yi1mb2xkZXJzLCBzdWNoIGFzIEMjIGFuZCBQSFAuCiAtIGBjb21wb25lbnRzYDogRm9sZGVyIGZvciBvcmdhbml6aW5nIHJldXNhYmxlIGNvbXBvbmVudHMgaW50byBzdWItZm9sZGVycywgc3VjaCBhcyBgc2NoZW1hYCBhbmQgYHJlc3BvbnNlYCBvYmplY3RzLgogLSBgcGF0aHNgOiBGb2xkZXIgZm9yIG9yZ2FuaXppbmcgcGF0aCBkZWZpbml0aW9ucy4gRWFjaCBwYXRoIHNob3VsZCBiZSByZWZlcmVuY2VkIGZyb20gdGhlIGBvcGVuYXBpLnlhbWxgIGVudHJ5cG9pbnQgZmlsZS4KCiMjIENvbW1hbmRzCgpUaGUgZ2VuZXJhdGVkIHJlcG9zaXRvcnkgaW5zdGFsbHMgYSBkZXBlbmRlbmN5IGZvciBvdXIgYHJlZG9jbHktY2xpYCB0b29sIHdoaWNoIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CgogLSBgbnBtIHN0YXJ0YDogU3RhcnRzIHRoZSBwcmV2aWV3IHNlcnZlcgogLSBgbnBtIHJ1biBidWlsZGA6IEJ1bmRsZXMgYSBtdWx0aS1maWxlIE9wZW5BUEkgZGVmaW5pdGlvbiBpbnRvIGEgc2luZ2xlIGZpbGUKIC0gYG5wbSB0ZXN0YDogVmFsaWRhdGVzIHRoZSBPcGVuQVBJIGRlZmluaXRpb24KCioqTm90ZToqKiBBZGRpdGlvbmFsIHNjcmlwdGVkIHNob3J0Y3V0cyBhcmUgZGVmaW5lZCBpbiB0aGUgcmVwb3NpdG9yeSdzIGBwYWNrYWdlLmpzb25gIGZpbGUuCgojIyBDb250cmlidXRlCgpJbnRlcmVzdGVkIGluIGNvbnRyaWJ1dGluZyB0byB0aGlzIHByb2plY3Q/IEhlcmUgYXJlIHNvbWUgd2F5cyB5b3UgY2FuIHN1cHBvcnQgdXM6CgogLSBTdWJtaXQgYSBwdWxsIHJlcXVlc3QuCiAtIFN0YXIgdXMgb24gR2l0aHViLgogLSBUZWxsIGEgZnJpZW5kIG9yIGNvbGxlYWd1ZSBhYm91dCB1cyAob3IgVHdlZXQgYWJvdXQgdXMpLgogLSBXcml0ZSBhbiBhcnRpY2xlIG9yIGJsb2cgcG9zdC4gTGV0IHVzIGtub3cgYnkgb3BlbmluZyBhbiBpc3N1ZSB3aXRoIGEgbGluayB0byB0aGUgYXJ0aWNsZS4KIC0gTG9va2luZyB0byBidWlsZCBhIG1vZGVybiBkb2N1bWVudGF0aW9uIHdvcmtmbG93PyBPdXIgW2NvbW1lcmNpYWwgcHJvZHVjdHNdKGh0dHBzOi8vcmVkb2MubHkpIGNhbiBoZWxwIHlvdSBtYWludGFpbiBhbmQgZGVwbG95IEFQSSByZWZlcmVuY2UgZG9jcyBhbmQgZGV2ZWxvcGVyIHBvcnRhbHMuCgpbbnBtLWltYWdlXTogaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL2dlbmVyYXRvci1vcGVuYXBpLXJlcG8uc3ZnCltucG0tdXJsXTogaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9nZW5lcmF0b3Itb3BlbmFwaS1yZXBvCltkYXZpZGRtLWltYWdlXTogaHR0cHM6Ly9kYXZpZC1kbS5vcmcvUmViaWxseS9nZW5lcmF0b3Itb3BlbmFwaS1yZXBvLnN2Zz90aGVtZT1zaGllbGRzLmlvCltkYXZpZGRtLXVybF06IGh0dHBzOi8vZGF2aWQtZG0ub3JnL1JlYmlsbHkvZ2VuZXJhdG9yLW9wZW5hcGktcmVwbwo= readmeEtag: '"fb93a46a6a07aa48f1014b29af30d0c056858f5e"' readmeLastModified: Tue, 09 Jul 2024 12:48:45 GMT repositoryId: 58973101 description: >- 🤖 Generator for GH repo to help you manage the OpenAPI definition lifecycle created: '2016-05-16T22:45:23Z' updated: '2024-08-29T14:29:12Z' language: JavaScript archived: false stars: 668 watchers: 25 forks: 107 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"e363e97e9ca1e59c4c52b20e73dcf45e51a63cfc16bfc4d99311a2aad4422b72"' repoLastModified: Thu, 29 Aug 2024 14:29:12 GMT foundInMaster: true v3_1: true category: - Code Generators - Parsers id: 63b494773063a90f98a1731dc9061bec oldLocations: - https://github.com/rebilly/generator-openapi-repo - source: - openapi3 tags - openapi31 tags repository: https://github.com/apisyouwonthate/openapi.tools v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJLlRvb2xzIFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9CdXklMjB1cyUyMGElMjB0cmVlLSVGMCU5RiU4QyVCMy1saWdodGdyZWVuKV0oaHR0cHM6Ly9lY29sb2dpLmNvbS9waGlsc3R1cmdlb24pCgpBIGNvbGxlY3Rpb24gb2YgRWRpdG9ycywgTGludGVycywgUGFyc2VycywgQ29kZSBHZW5lcmF0b3JzLCBEb2N1bWVudGF0aW9uLCBUZXN0aW5nLCBhbmQgU2NoZW1hL0RhdGEgdmFsaWRhdGlvbiB0b29scyBmb3IgT3BlbkFQSSB2MiBhbmQgdjMgKGJ1dCBtb3N0bHkgdjMpLgoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2UgcmVhZCBbQ09OVFJJQlVUSU5HLm1kXSguL0NPTlRSSUJVVElORy5tZCkgaWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGltcHJvdmluZyB0aGlzIHNpdGUuCg== readmeEtag: '"eed661f78e4bcdf9ba9e595f475945dacfc48ba3"' readmeLastModified: Thu, 15 Aug 2024 09:48:48 GMT repositoryId: 114417462 description: >- A collection of Editors, Linters, Parsers, Code Generators, Documentation, Testing created: '2017-12-15T22:51:00Z' updated: '2024-09-05T02:07:39Z' language: HTML archived: false stars: 670 watchers: 30 forks: 316 owner: apisyouwonthate logo: https://avatars.githubusercontent.com/u/35378327?v=4 license: MIT repoEtag: '"9d733b18abbd6a497aef007253b7217c7ebd7b2727f6291cfa632913422f5fc6"' repoLastModified: Thu, 05 Sep 2024 02:07:39 GMT foundInMaster: true category: Description Validators id: bf8b6a3a6298d701eabc857d42d5c371 v3_1: true - source: openapi3 tags repository: https://github.com/apis-guru/awesome-openapi3 v3: true repositoryMetadata: base64Readme: >- IyBhd2Vzb21lLW9wZW5hcGkzIFshW0F3ZXNvbWVdKGh0dHBzOi8vY2RuLnJhd2dpdC5jb20vc2luZHJlc29yaHVzL2F3ZXNvbWUvZDczMDVmMzhkMjlmZWQ3OGZhODU2NTJlM2E2M2UxNTRkZDhlODgyOS9tZWRpYS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL2F3ZXNvbWUpCkEgbGlzdCBvZiBhd2Vzb21lIHByb2plY3RzIHJlbGF0ZWQgdG8gT3BlbkFQSSAzLjAueC4KCjxkaXYgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL2F3ZXNvbWUtb3BlbmFwaTMvYmxvYi9tYXN0ZXIvb3BlbmFwaV9hd2Vzb21lMS5wbmc/cmF3PXRydWUiLz4KICA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FQSXMtZ3VydS9vcGVuYXBpLWRpcmVjdG9yeS9tYXN0ZXIvYnJhbmRpbmcvaWNvbi05Nng5Ni5wbmciLz4KPC9kaXY+CgpXaHkgbm90IG1ha2UgeW91ciBwcm9qZWN0IGRpc2NvdmVyYWJsZSBieSB1c2luZyB0aGUgdG9waWMgW29wZW5hcGkzXShodHRwczovL2dpdGh1Yi5jb20vc2VhcmNoP3V0Zjg9JUUyJTlDJTkzJnE9dG9waWMlM0FvcGVuYXBpMyZ0eXBlPVJlcG9zaXRvcmllcyZyZWY9YWR2c2VhcmNoJmw9Jmw9KSBvbiBHaXRIdWIgYW5kIHVzaW5nIHRoZSBoYXNodGFncyAqKiNvcGVuYXBpMyoqIGFuZCAqKiNPQVN2MyoqIG9uIHNvY2lhbCBtZWRpYT8KCiMjIFRvb2xzCgoqIFBsZWFzZSBzZWUgW0FQSXMuZ3VydSBBd2Vzb21lLU9wZW5BUEkzXShodHRwczovL2FwaXMuZ3VydS9hd2Vzb21lLW9wZW5hcGkzLykKCiMjIENvbnRyaWJ1dGluZwoKVGhlIGJlc3Qgd2F5IHRvIGdldCB5b3VyIHByb2plY3QgYWRkZWQgdG8gdGhlIGxpc3QgaXMgdG8gdGFnIGl0IHdpdGggdGhlIGdpdGh1YiB0b3BpYyBgb3BlbmFwaTNgLiAKClB1bGwgcmVxdWVzdHMgc2hvdWxkIG9ubHkgYmUgZm9yIHZpc3VhbCAvIGZ1bmN0aW9uYWwgY2hhbmdlcywgb3IgcHJvamVjdHMvcHJvZHVjdHMgbm90IGhvc3RlZCBvbiBHaXRIdWIuCgojIyBBUEkgQWNjZXNzCgoqIFtjYXRlZ29yaWVzLmpzb25dKGh0dHBzOi8vYXBpcy5ndXJ1L2F3ZXNvbWUtb3BlbmFwaTMvYXBpL2NhdGVnb3JpZXMuanNvbikKKiBbdG9vbHMuanNvbl0oaHR0cHM6Ly9hcGlzLmd1cnUvYXdlc29tZS1vcGVuYXBpMy9hcGkvdG9vbHMuanNvbikKClRoZSByYXcgZGF0YSBjb250YWlucyBPcGVuQVBJIDIuMCBhbmQgU3dhZ2dlciAxLngtcmVsYXRlZCBwcm9qZWN0cy4KCiMjIFJTUyBGZWVkCgoqIFtmZWVkLnhtbF0oaHR0cHM6Ly9hcGlzLmd1cnUvYXdlc29tZS1vcGVuYXBpMy9yc3MvZmVlZC54bWwpCgo= readmeEtag: '"65628e18be602c1fee2850522453b55ca1181446"' readmeLastModified: Sun, 16 Apr 2023 14:15:56 GMT repositoryId: 83716646 description: >- 😎 A list of awesome projects related to OpenAPI 3.0.x, curated by the community created: '2017-03-02T19:31:41Z' updated: '2024-09-06T01:00:34Z' language: JavaScript archived: false stars: 623 watchers: 35 forks: 52 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: BSD-3-Clause repoEtag: '"8d18afa2121ddc7e6062336638ad245e27116dae1515e171cc2e2d2f0b6c70d6"' repoLastModified: Fri, 06 Sep 2024 01:00:34 GMT foundInMaster: true category: Parsers id: 64d4029fd6b82879b746263cac7ce274 - source: - openapi3 tags - openapi31 tags repository: https://github.com/zaghaghi/openapi-tui v3: true v3_1: true id: ef37267c73c0fdc4c3902843cddc05c3 repositoryMetadata: base64Readme: >- IVtsb2dvXShzdGF0aWMvbG9nby5wbmcpCiMgb3BlbmFwaS10dWkKClshW0NJXShodHRwczovL2dpdGh1Yi5jb20vemFnaGFnaGkvb3BlbmFwaS10dWkvd29ya2Zsb3dzL0NJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS96YWdoYWdoaS9vcGVuYXBpLXR1aS9hY3Rpb25zKQoKVGVybWluYWwgVUkgdG8gbGlzdCwgYnJvd3NlIGFuZCBydW4gQVBJcyBkZWZpbmVkIHdpdGggT3BlbkFQSSB2My4wIGFuZCB2My4xIHNwZWMuCgoKIyBVc2FnZQpgYGBiYXNoCuKdryBvcGVuYXBpLXR1aSAtLWhlbHAKVGhpcyBUVUkgYWxsb3dzIHlvdSB0byBsaXN0IGFuZCBicm93c2UgQVBJcyBkZXNjcmliZWQgYnkgdGhlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbi4KClVzYWdlOiBvcGVuYXBpLXR1aSAtLWlucHV0IDxQQVRIPgoKT3B0aW9uczoKICAtaSwgLS1pbnB1dCA8UEFUSD4gIElucHV0IGZpbGUgb3IgdXJsLCBpbiBqc29uIG9yIHlhbWwgZm9ybWF0IHdpdGggb3BlbmFwaSBzcGVjaWZpY2F0aW9uCiAgLWgsIC0taGVscCAgICAgICAgICBQcmludCBoZWxwCiAgLVYsIC0tdmVyc2lvbiAgICAgICBQcmludCB2ZXJzaW9uCmBgYAoKIyMgRXhhbXBsZXMKYGBgYmFzaAojIG9wZW4gbG9jYWwgeWFtbCBmaWxlCuKdryBvcGVuYXBpLXR1aSAtaSBleGFtcGxlcy9zdHJpcGUvc3BlYy55bWwKCiMgb3BlbiBsb2NhbCBqc29uIGZpbGUK4p2vIG9wZW5hcGktdHVpIC1pIGV4YW1wbGVzL3BldHN0b3JlLmpzb24KCiMgb3BlbiByZW1vdGUgZmlsZQrina8gb3BlbmFwaS10dWkgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dpdGh1Yi9yZXN0LWFwaS1kZXNjcmlwdGlvbi9tYWluL2Rlc2NyaXB0aW9ucy1uZXh0L2FwaS5naXRodWIuY29tL2FwaS5naXRodWIuY29tLnlhbWwKYGBgCgoKIyBEZW1vCiFbZGVtb10oc3RhdGljL2RlbW8uZ2lmKQoKIyBPdGhlciBGZWF0dXJlIEFuaW1hdGlvbnMKPGRldGFpbHM+CiAgPHN1bW1hcnk+U2hvdyBtb3JlPC9zdW1tYXJ5PgoKIyMgTmVzdGVkIENvbXBvbmVudHMKIVtuZXN0ZWQtcmVmcmVuY2VzXShzdGF0aWMvbmVzdGVkLXJlZnMuZ2lmKQoKIyMgRnVsbHNjcmVlbgohW2Z1bGxzY3JlZW5dKHN0YXRpYy9mdWxsc2NyZWVuLmdpZikKCiMjIFdlYmhvb2tzCiFbd2ViaG9va3NdKHN0YXRpYy93ZWJob29rcy5naWYpCgojIyBGaWx0ZXIKIVtmaWx0ZXJdKHN0YXRpYy9maWx0ZXIuZ2lmKQoKIyMgQ2FsbCBFbmRwb2ludHMKIVtjYWxsXShzdGF0aWMvY2FsbC5naWYpCgo8L2RldGFpbHM+Cgo8YnIgLz4KCgojIEluc3RhbGxhdGlvbgpJbnN0YWxsIGZyb20gc291cmNlOgpgYGBiYXNoCuKdryBjYXJnbyBpbnN0YWxsIG9wZW5hcGktdHVpCmBgYApPciBkb3dubG9hZCBwcmUtYnVpbHQgYXJ0aWZhY3QgZnJvbSByZWxlYXNlIHBhZ2UuCgojIyBEb2NrZXIKSnVzdCBydW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggZG9ja2VyLgoKYGBgYmFzaAojIG9wZW4gbG9jYWwgZmlsZQrina8gZG9ja2VyIHJ1biAtLXJtIC10aSAtdiQocHdkKS9leGFtcGxlczovb3B0IHphZ2hhZ2hpL29wZW5hcGktdHVpIC1pIC9vcHQvcGV0c3RvcmUuanNvbgoKIyBvcGVuIHJlbW90ZSBmaWxlCuKdryBkb2NrZXIgcnVuIC0tcm0gLWl0IHphZ2hhZ2hpL29wZW5hcGktdHVpIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9naXRodWIvcmVzdC1hcGktZGVzY3JpcHRpb24vbWFpbi9kZXNjcmlwdGlvbnMtbmV4dC9hcGkuZ2l0aHViLmNvbS9hcGkuZ2l0aHViLmNvbS55YW1sCmBgYAojIyBEaXN0cm8gUGFja2FnZXMKCjxkZXRhaWxzPgogIDxzdW1tYXJ5PlBhY2thZ2luZyBzdGF0dXM8L3N1bW1hcnk+CgpbIVtQYWNrYWdpbmcgc3RhdHVzXShodHRwczovL3JlcG9sb2d5Lm9yZy9iYWRnZS92ZXJ0aWNhbC1hbGxyZXBvcy9vcGVuYXBpLXR1aS5zdmcpXShodHRwczovL3JlcG9sb2d5Lm9yZy9wcm9qZWN0L29wZW5hcGktdHVpL3ZlcnNpb25zKQoKPC9kZXRhaWxzPgoKIyMjIEFyY2ggTGludXgKCllvdSBjYW4gaW5zdGFsbCB1c2luZyBgcGFjbWFuYCBhcyBmb2xsb3dzOgoKYGBgYmFzaArina8gcGFjbWFuIC1TIG9wZW5hcGktdHVpCmBgYAoKIyMjIE5peE9TCgpZb3UgY2FuIGluc3RhbGwgdGhlIGBvcGVuYXBpLXR1aWAgcGFja2FnZSBkaXJlY3RseSB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKbml4IHByb2ZpbGUgaW5zdGFsbCBnaXRodWI6emFnaGFnaGkvb3BlbmFwaS10dWkKYGBgCgpZb3UgY2FuIGFsc28gaW5zdGFsbCBgb3BlbmFwaS10dWlgIGJ5IGFkZGluZyBpdCB0byB5b3VyIGBjb25maWd1cmF0aW9uLm5peGAgZmlsZS4KCmBgYG5peAojIGZsYWtlLm5peAoKewogIGlucHV0cy5vcGVuYXBpLXR1aS51cmwgPSAiZ2l0aHViOnphZ2hhZ2hpL29wZW5hcGktdHVpIjsKICAjIC4uLgoKICBvdXRwdXRzID0ge25peHBrZ3MsIC4uLn0gQCBpbnB1dHM6IHsKICAgIG5peG9zQ29uZmlndXJhdGlvbnMuPHlvdXItaG9zdG5hbWU+ID0gbml4cGtncy5saWIubml4b3NTeXN0ZW0gewogICAgICBzcGVjaWFsQXJncyA9IHsgaW5oZXJpdCBpbnB1dHM7IH07ICMgdGhpcyBpcyB0aGUgaW1wb3J0YW50IHBhcnQKICAgICAgbW9kdWxlcyA9IFsKICAgICAgICAuL2NvbmZpZ3VyYXRpb24ubml4CiAgICAgIF07CiAgICB9OwogIH0KfQpgYGAKClRoZW4sIGFkZCBgb3BlbmFwaS10dWlgIHRvIHlvdXIgYGNvbmZpZ3VyYXRpb24ubml4YAoKYGBgbml4CiMgY29uZmlndXJhdGlvbi5uaXgKCntpbnB1dHMsIHBrZ3MsIC4uLn06IHsKICBlbnZpcm9ubWVudC5zeXN0ZW1QYWNrYWdlcyA9IHdpdGggcGtnczsgWwogICAgaW5wdXRzLm9wZW5hcGktdHVpLnBhY2thZ2VzLiR7cGtncy5zeXN0ZW19Lm9wZW5hcGktdHVpCiAgXTsKfQpgYGAKCgojIEtleWJpbmRpbmdzCgp8IEtleSB8IEFjdGlvbnwKfDotLS0tfDotLS0tLXwKfCBg4oaSYCwgYGxgfCBNb3ZlIHRvIG5leHQgcGFuZSB8CnwgYOKGkGAsIGBoYCB8IE1vdmUgdG8gcHJldmlvdXMgcGFuZSB8CnwgYOKGk2AsIGBqYCB8IE1vdmUgZG93biBpbiBsaXN0cyB8CnwgYOKGkWAsIGBrYCB8IE1vdmUgdXAgaW4gbGlzdHMgfAp8IGAxLi4uOWAgfCBNb3ZlIGJldHdlZW4gdGFicyB8CnwgYF1gIHwgTW92ZSB0byBuZXh0IHRhYiB8CnwgYFtgIHwgTW92ZSB0byBwcmV2aW91cyB0YWIgfAp8IGBmYCB8IFRvZ2dsZSBmdWxsc2NyZWVuIHBhbmV8CnwgYGdgIHwgR28gaW4gbmVzdGVkIGl0ZW1zIGluIGxpc3RzfAp8IGBxYCB8IFF1aXR8CnwgYC9gIHwgRmlsdGVyIGFwaXN8CnwgYDpgIHwgUnVuIGNvbW1hbmRzfAp8IGBCYWNrc3BhY2VgLCBgYmAgfCBHZXQgb3V0IG9mIG5lc3RlZCBpdGVtcyBpbiBsaXN0c3wKCiMgQ29tbWFuZHMgTWFpbiBQYWdlCnwgQ29tbWFuZCB8IERlc2NyaXB0aW9uIHwKfDotLS0tLS0tLXw6LS0tLS0tLS0tLS0tfAp8IGBxYCB8IFF1aXQgfAp8IGByZXF1ZXN0YCwgYHJgIHwgR28gdG8gcmVxdWVzdCBwYWdlfAp8IGBoaXN0b3J5YCB8IFJlcXVlc3QgaGlzdG9yeXwKCiMgQ29tbWFuZHMgUmVxdWVzdCBQYWdlCnwgQ29tbWFuZCB8IERlc2NyaXB0aW9uIHwKfDotLS0tLS0tLXw6LS0tLS0tLS0tLS0tfAp8IGBxYCB8IFF1aXQgfAp8IGBzZW5kYCwgYHNgIHwgU2VuZCByZXF1ZXN0IHwKfCBgcXVlcnlgLCBgcWAgfCBBZGQgb3IgcmVtb3ZlIHF1ZXJ5IHN0cmluZ3MuIHN1Yi1jb21tYW5kcyBhcmUgYGFkZGAgb3IgYHJtYC4gZS5nLiBgcXVlcnkgYWRkIHBhZ2VgIHwKfCBgaGVhZGVyYCwgYGhgIHwgQWRkIG9yIHJlbW92ZSBoZWFkZXJzLiBzdWItY29tbWFuZHMgYXJlIGBhZGRgIG9yIGBybWAuIGUuZy4gYGhlYWRlciBhZGQgeC1hcGkta2V5YCB8CnwgYHJlcXVlc3RgLCBgcmAgfCBMb2FkIHJlcXVlc3QgcGF5bG9hZC4gZS5nLiBgcmVxdWVzdCBvcGVuIC9ob21lL2hhbWVkL3BheWxvYWQuanNvbmAgfAp8IGByZXNwb25zZWAsIGBzYCB8IFNhdmUgcmVzcG9uc2UgcGF5bG9hZCBlLmcvIGByZXNwb25zZSBzYXZlIC9ob21lL2hhbWVkL3Jlc3VsdC5qc29uYCB8CgoKIyBJbXBsZW1lbnRlZCBGZWF0dXJlcwotIFtYXSBWaWV3ZXIKLSBbWF0gT3BlbkFQSSB2My4xCi0gW1hdIERpc3BsYXkgV2ViaG9va3MKLSBbWF0gRGlzcGxheSBJbmZvIGFuZCBWZXJzaW9uCi0gW1hdIEZpbHRlciBBUElzCi0gW1hdIFJlbW90ZSBBUEkgc3BlY2lmaWNhdGlvbgotIFtYXSBNZXJnZSBQYXJhbWV0ZXJzIEJhc2VkIG9uIGBpbmAKLSBbWF0gUGFuZSBGdWxsc2NyZWVuIE1vZGUKLSBbWF0gTmVzdGVkIENvbXBvbmVudHMKLSBbWF0gU3RhdHVzIExpbmUKLSBbWF0gUGhvbmUgUGFnZQotIFtYXSBDYWxsIEhpc3RvcnkKLSBbWF0gUmVxdWVzdCBQbGFpbiBFZGl0b3IKLSBbWF0gSGVhZGVyIElucHV0IChObyBWYWxpZGF0aW9uKQotIFtYXSBQYXRoIElucHV0IChObyBWYWxpZGF0aW9uKQotIFtYXSBDYWxsaW5nCi0gW1hdIFBsYWluIFJlc3BvbnNlIFZpZXdlciAoU3RhdHVzICsgSGVhZGVycyArIEJvZHkpCi0gW1hdIEhpc3Rvcnkgdmlld2VyCi0gW1hdIFJlZmFjdG9yIGZvb3RlciwgYWRkIGZsYXNoIGZvb3RlciBtZXNzYWdlcwotIFtYXSBJbXBvcnQgcmVxdWVzdCBib2R5IGZpbGUKLSBbWF0gU2F2ZSByZXNwb25zZSBib2R5IGFuZCBoZWFkZXIKLSBbWF0gQ29tbWFuZCBoaXN0b3J5IHdpdGgg4oaRL+KGkwotIFtYXSBTdXBwb3J0IGFycmF5IHF1ZXJ5IHN0cmluZ3MKLSBbWF0gU3VwcGVydCBleHRyYSBoZWFkZXJzCgojIEJhY2tsb2cKLSBbIF0gU2NoZW1hIFR5cGVzIChvcGVuYXBpLTMxKQotIFsgXSBEaXNwbGF5IEtleSBNYXBwaW5ncyBpbiBQb3B1cAotIFsgXSBSZWFkIFNwZWMgZnJvbSBTVERJTiAKLSBbIF0gUmVxdWVzdCBwcm9ncmVzcyBiYXI= readmeEtag: '"a0e6b8ba8fa3ef760cb3f780e744b39ffe797dad"' readmeLastModified: Sat, 27 Jul 2024 09:44:54 GMT repositoryId: 766082951 description: Terminal UI to list, browse and run APIs defined with openapi spec. created: '2024-03-02T09:42:10Z' updated: '2024-09-01T21:55:24Z' language: Rust archived: false stars: 619 watchers: 5 forks: 15 owner: zaghaghi logo: https://avatars.githubusercontent.com/u/111259?v=4 license: MIT repoEtag: '"0b98496a9af78a6f0f0e6652029cfa3f59994b13bca994adbf28ca14afa337c0"' repoLastModified: Sun, 01 Sep 2024 21:55:24 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/cdimascio/generator-express-no-stress v3: true repositoryMetadata: base64Readme: >- IyDwn5qCIGdlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcwoKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3RhdHVzLXN0YWJsZS1ncmVlbi5zdmcpICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy5zdmcpIFshW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlLzU2YzAwNmNjYzQ0YzQ3ZjQ5ZDEyYjZiMzVmY2YzNWRhKV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9hcHAvY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcz91dG1fc291cmNlPWdpdGh1Yi5jb20mdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY29udGVudD1jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzJnV0bV9jYW1wYWlnbj1CYWRnZV9HcmFkZSkgWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdHRlci9yb29tL2NkaW1hc2Npby1vc3MvY29tbXVuaXR5P2NvbG9yPSUyM2ViMjA1YSldKGh0dHBzOi8vZ2l0dGVyLmltL2NkaW1hc2Npby1vc3MvY29tbXVuaXR5KSBbIVtBbGwgQ29udHJpYnV0b3JzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2FsbF9jb250cmlidXRvcnMtNC1vcmFuZ2Uuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oI2NvbnRyaWJ1dG9ycy0pICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJsdWUuc3ZnKQoKQ3JlYXRlIGF3ZXNvbWUgW0V4cHJlc3MuanNdKGh0dHA6Ly93d3cuZXhwcmVzc2pzLmNvbSkgYXBwbGljYXRpb25zIHdpdGggYmVzdCBvZiBicmVlZCB0ZWNoIGluY2x1ZGluZyBFUy5uZXh0IHZpYSBbQmFiZWwuanNdKGh0dHBzOi8vYmFiZWxqcy5pby8pLCBzdHJ1Y3R1cmVkIGxvZ2dpbmcgd2l0aCBbUGlub10oaHR0cHM6Ly9naXRodWIuY29tL3Bpbm9qcy9waW5vKSwgQVBJIHZhbGlkYXRpb24gYW5kIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24gdXNpbmcgYW4gW09wZW5BUEkgM10oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKSBvciBbU3dhZ2dlciAyXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi92Mi8pIHNwZWMsIGVudmlyb25tZW50IGJhc2VkIGNvbmZpZyB3aXRoIFtkb3RlbnZdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3Rkb3RsYS9kb3RlbnYpLCBhbmQgbGludGluZyB3aXRoIFtFU0xpbnRdKGh0dHA6Ly9lc2xpbnQub3JnLykuCgpbIVtHaXRIdWIgc3RhcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3Muc3ZnP3N0eWxlPXNvY2lhbCZsYWJlbD1TdGFyJm1heEFnZT0yNTkyMDAwKV0oaHR0cHM6Ly9HaXRIdWIuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3Mvc3RhcmdhemVycy8pIFshW1R3aXR0ZXIgVVJMXShodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvdXJsL2h0dHBzL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy5zdmc/c3R5bGU9c29jaWFsKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ/dGV4dD1DaGVjayUyMG91dCUyMGV4cHJlc3Mtbm8tc3RyZXNzJTIwYnklMjAlNDBDYXJtaW5lRGlNYXNjaW8lMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZjZGltYXNjaW8lMkZnZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MlMjAlRjAlOUYlOTElOEQpCgo8cCBhbGlnbj0iY2VudGVyIj4KPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzL21hc3Rlci9hc3NldHMvZXhwcmVzcy1uby1zdHJlc3MtbG9nby12LnBuZyI+CjwvcD4KCmdlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcyBnZXRzIHlvdSB1cCBhbmQgcnVubmluZyBpbiBzZWNvbmRzLiBJdCdzIHJpZGljdWxvdXNseSBlYXN5IHRvIGNvbmZpZ3VyZS4gSGVjaywganVzdCB0YWtlIHRoZSBkZWZhdWx0cy4gU3RhcnQgaXQuIFdyaXRlIGNvZGUuCgpUaGlzIGdlbmVyYXRvciBzY2FmZm9sZHMgYSBmdWxseSBmdW5jdGlvbmluZyBSRVNUIEFQSSBzZXJ2ZXIsIGNvbXBsZXRlIHdpdGggaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbiwgQVBJIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHZhbGlkYXRpb24sIHN0cnVjdHVyZWQgbG9nZ2luZywgZW52aXJvbm1lbnQgZHJpdmVuIGNvbmZpZywgYW5kIG1vcmUuIFNpbXBseSBydW4gdGhlIGdlbmVyYXRvciBhbmQgc21pbGUgOi1ECgpbSGVyZSdzIHdoYXQgeW91IGdldCFdKCN3aGF0LXlvdS1nZXQpCgojIyBJbnN0YWxsCgpfUmVxdWlyZXMgTm9kZSA4IG9yIGdyZWF0ZXJfCgpgYGBzaGVsbApucG0gaW5zdGFsbCAtZyB5byBnZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MKYGBgCgotIFNlZSBbaGVyZV0oI3VzYWdlLWNsaSkgZm9yIHVzZSB3aXRoIFlhcm4gYW5kL29yIERvY2tlcgotIFNlZSBbaGVyZV0oI2ZhcXMpIGZvciBOb2RlIDYgc3VwcG9ydAoKIyMgU2NhZmZvbGQKCmBgYHNoZWxsCnlvIGV4cHJlc3Mtbm8tc3RyZXNzIG15YXBwCmNkIG15YXBwCmBgYAoKIyMgUnVuCgpSdW4gaW4gX2RldmVsb3BtZW50IG1vZGVfOgoKYGBgc2hlbGwKbnBtIHJ1biBkZXYKYGBgCgpQYWNrYWdlIGFuZCBydW4gaW4gX3Byb2R1Y3Rpb24gbW9kZV8KCmBgYHNoZWxsCm5wbSBydW4gY29tcGlsZQpucG0gc3RhcnQKYGBgCgojIyBUZXN0CgpgYGBzaGVsbApucG0gdGVzdApgYGAKCiMjIERlYnVnCgpSdW4gb25lIG9mIHRoZSBmb2xsb3dpbmcsIHRoZW4gYXR0YWNoIHlvdXIgZmF2b3JpdGUgaW5zcGVjdG9yIGUuZy4gW1ZTQ29kZV0oI2RlYnVnLWluLXZzY29kZSk6CgpgYGBzaGVsbAojIGRlYnVnIHRoZSBzZXJ2ZXIKbnBtIHJ1biBkZXY6ZGVidWcKCiMgZGVidWcgdGhlIHRlc3RzCm5wbSBydW4gdGVzdDpkZWJ1ZwpgYGAKCiMjIFRyeSBpdCEKCi0gSW50ZXJhY3RpdmUgQVBJIGRvYyBhdCBbaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS1leHBsb3Jlcl0oaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS1leHBsb3JlcikKLSBMYW5kaW5nIHBhZ2UgYXQgW2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMF0oaHR0cDovL2xvY2FsaG9zdDozMDAwKQoKLS0tCgojIyBVc2FnZTogQ0xJCgpgYGBzaGVsbAp5byBleHByZXNzLW5vLXN0cmVzcyBbYXBwbmFtZV0gWy0teWFybl0gWy0tZG9ja2VyXQpgYGAKCnwgT3B0aW9uICAgICB8IGRlZmF1bHQgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLSB8IC0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYGFwcG5hbWVgICB8IG15YXBwICAgfCBUaGUgYXBwbGljYXRpb24gZm9sZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYC0teWFybmAgICB8IC0gICAgICAgfCBVc2UgdGhlIFtgeWFybmBdKGh0dHBzOi8veWFybnBrZy5jb20pIHBhY2thZ2UgbWFuYWdlciwgaW5zdGVhZCBvZiBgbnBtYCAgICB8CnwgYC0tZG9ja2VyYCB8ICAgICAgICAgfCBJbnN0YWxsIFtEb2NrZXJdKGh0dHBzOi8vd3d3LmRvY2tlci5jb20vKSBhcnRpZmFjdHMgaW5jbHVkaW5nIGEgRG9ja2VyZmlsZSB8CgojIyBVc2FnZTogUHJvamVjdAoKVGhlIHNlY3Rpb25zIGJlbG93IGRlc2NyaWJlIGFsbCB1c2FnZSBvcHRpb25zIGF2YWlsYWJsZSBvbmNlIHRoZSBwcm9qZWN0IGlzIGdlbmVyYXRlZC9zY2FmZm9sZGVkLgoKIyMjIG5wbSB0YXJnZXRzCgp8IFRhcmdldCAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYG5wbSBydW4gZGV2YCAgICAgICAgfCBSdW4gaW4gX2RldmVsb3BtZW50XyBtb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBucG0gcnVuIGRldjpkZWJ1Z2AgIHwgRGVidWcgaW4gX2RldmVsb3BtZW50XyBtb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgbnBtIHJ1biB0ZXN0YCAgICAgICB8IFJ1biB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYG5wbSBydW4gdGVzdDpkZWJ1Z2AgfCBEZWJ1ZyB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBucG0gcnVuIGxpbnRgICAgICAgIHwgVmlldyBhIGxpc3Rpbmcgb2YgYWxsIGVycm9ycyBkaXNjb3ZlcmVkIGJ5IHRoZSBsaW50ZXIgICAgICAgICAgICAgICAgICAgIHwKfCBgbnBtIHJ1biBsaW50OmZpeGAgICB8IEZpeCBhbGwgZXJyb3JzIGRpc2NvdmVyZWQgYnkgdGhlIGxpbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYG5wbSBydW4gY29tcGlsZWAgICAgfCBUcmFuc3BpbGUgc291cmNlIGNvZGUgZm9yIHByb2R1Y3Rpb24gdXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBucG0gc3RhcnRgICAgICAgICAgIHwgUnVuIHRoZSBpbiBfcHJvZHVjdGlvbl8gbW9kZS4gXCpSZXF1aXJlcyBydW5uaW5nIGBucG0gcnVuIGNvbXBpbGVgIGZpcnN0IHwKCiMjIyBEZWJ1ZyBpbiBWU0NvZGUKCkFkZCB0aGVzZSBbY29udGVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzL2Jsb2IvbmV4dC9hc3NldHMvLnZzY29kZS9sYXVuY2guanNvbikgdG8geW91ciBgLnZzY29kZS9sYXVuY2guanNvbmAgZmlsZQoKIyMjIERlYnVnIGluIFdlYlN0b3JtCgoxLiBTdGFydCBkZWJ1ZyBpbiBfZGV2ZWxvcG1lbnRfIG1vZGUgdmlhIGBucG0gcnVuIGRldjpkZWJ1Z2AKMi4gRnJvbSB0aGUgIlJ1biIgbWVudSwgc2VsZWN0ICJEZWJ1ZyIKMy4gU2VsZWN0ICJFZGl0IENvbmZpZ3VyYXRpb25zLi4uIgo0LiBGcm9tIHRoZSBsaXN0IG9mIFRlbXBsYXRlcyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBkaWFsb2csIHNlbGVjdCAiQXR0YWNoIHRvIE5vZGUuanMvQ2hyb21lIgo1LiBQcmVzcyB0aGUgIkRlYnVnIiBidXR0b24gdG8gYXR0YWNoIHRoZSBXZWJTdG9ybSBkZWJ1Z2dlcgoKCiMjIyBEZXBsb3kgdG8gdGhlIENsb3VkCgplLmcuIENsb3VkRm91bmRyeQoKYGBgCmNmIHB1c2ggbXlhcHAKYGBgCgojIyMgVXNlIFlhcm4KCmBgYAojIHNjYWZmb2xkCnlvIGV4cHJlc3Mtbm8tc3RyZXNzIG15YXBwIC0teWFybgpjZCBteWFwcAoKIyBydW4gaW4gZGV2ZWxvcG1lbnQgbW9kZQp5YXJuIHJ1biBkZXYKCiMgcnVuIGluIHByb2R1Y3Rpb24gbW9kZQp5YXJuIHJ1biBjb21waWxlCnlhcm4gc3RhcnQKCiMgdGVzdAp5YXJuIHRlc3QKYGBgCgotLS0KCiMjIFdoYXQgeW91IGdldCEKCi0gW0V4cHJlc3MuanNdKGh0dHA6Ly93d3cuZXhwcmVzc2pzLmNvbSkgLSBGYXN0LCB1bm9waW5pb25hdGVkCiAgLCBtaW5pbWFsaXN0IHdlYiBmcmFtZXdvcmsgZm9yIE5vZGUuanMKLSBbQmFiZWwuanNdKGh0dHBzOi8vYmFiZWxqcy5pby8pIC0gVXNlIG5ldyBzeW50YXgsIHJpZ2h0IG5vdyB3aXRob3V0IHdhaXRpbmcgZm9yIHN1cHBvcnQKLSBbUGlub10oaHR0cHM6Ly9naXRodWIuY29tL3Bpbm9qcy9waW5vKSAtIEV4dHJlbWVseSBmYXN0IG5vZGUuanMgbG9nZ2VyLCBpbnNwaXJlZCBieSBCdW55YW4uIEl0IGFsc28gaW5jbHVkZXMgYSBzaGVsbCB1dGlsaXR5IHRvIHByZXR0eS1wcmludCBpdHMgbG9nIGZpbGVzCi0gW2RvdGVudl0oaHR0cHM6Ly9naXRodWIuY29tL21vdGRvdGxhL2RvdGVudikgLSBMb2FkcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSAuZW52IGZvciBub2RlanMgcHJvamVjdHMKLSBbRVNMaW50XShodHRwOi8vZXNsaW50Lm9yZy8pIC0gYSBwbHVnZ2FibGUgbGludGluZyB1dGlsaXR5IGZvciBKYXZhU2NyaXB0IGFuZCBKU1gKCiAgQ2hvb3NlIGZyb20gdGhlIGZvbGxvd2luZyBFU0xpbnQgbGludCBydWxlczoKCiAgICAgLSBbQWlyYm5iXShodHRwczovL2dpdGh1Yi5jb20vYWlyYm5iL2phdmFzY3JpcHQpIC0gQSBtb3N0bHkgcmVhc29uYWJsZSBhcHByb2FjaCB0byBKYXZhU2NyaXB0CiAgICAgLSBbUHJldHRpZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmV0dGllci9wcmV0dGllcikgLSBQcmV0dGllciBpcyBhbiBvcGluaW9uYXRlZCBjb2RlIGZvcm1hdHRlcgoKLSBbU3dhZ2dlcl0oaHR0cDovL3N3YWdnZXIuaW8vKSAtIGlzIGEgc2ltcGxlIHlldCBwb3dlcmZ1bCByZXByZXNlbnRhdGlvbiBvZiB5b3VyIFJFU1RmdWwgQVBJCi0gW1N3YWdnZXJVSV0oaHR0cDovL3N3YWdnZXIuaW8vKSAtIGR5bmFtaWNhbGx5IGdlbmVyYXRlIGJlYXV0aWZ1bCBkb2N1bWVudGF0aW9uIGFuZCBzYW5kYm94IGZyb20gYSBTd2FnZ2VyLWNvbXBsaWFudCBBUEkKCiMjIyBBUEkgVmFsaWRhdGlvbgoKU2ltcGx5IGRlc2NyaWJlIHlvdXIgQVBJcyB3aXRoIFN3YWdnZXIgYW5kIGF1dG9tYWdpY2FsbHkgZ2V0IGZvciBmcmVlOgoKLSBJbnRlcmFjdGl2ZSBkb2N1bWVudGF0aW9uCi0gQVBJIHJlcXVlc3QgdmFsaWRhdGlvbgotIEFQSSByZXNwb25zZSB2YWxpZGF0aW9uIChPcGVuQVBJIDMgb25seS4gRGlzYWJsZWQgYnkgZGVmYXVsdCkKICAtIFRvIGVuYWJsZSBzZXQgYE9QRU5BUElfRU5BQkxFX1JFU1BPTlNFX1ZBTElEQVRJT049dHJ1ZWAgaW4gYC5lbnZgCiAgCgojIyMjIEludGVyYWN0aXZlIEFQSSBEb2MKCiFbXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy9tYXN0ZXIvYXNzZXRzL2ludGVyYWN0aXZlLWRvYzEucG5nKQoKIyMjIyBBUEkgVmFsaWRhdGlvbiEKCk9vcHMhIEkgdGhlIEFQSSBjYWxsZXIgZm9yZ290IHRvIHBhc3MgYSBgbmFtZWAgZmllbGQsIG5vIHN0cmVzcywgd2UndmUgZ290IHRoaXMhCgohW10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MvbWFzdGVyL2Fzc2V0cy9hcGktdmFsaWRhdGlvbi5wbmcpCgojIyMgU3RydWN0dXJlZCBMb2dnaW5nCgpTdHJ1Y3R1cmVkIGxvZ2dpbmcgb3V0IG9mIHRoZSBib3ghCgojIyMjIHJhdwoKIVtdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzL21hc3Rlci9hc3NldHMvbG9nZ2luZy1yYXcucG5nKQoKIyMjIyBwcmV0dHkKClN0cnVjdHVyZWQgbG9nZ2luZyBwcmV0dHkgcHJpbnRlZCBieSBkZWZhdWx0IC0gZ3JlYXQgZm9yIGRldiEKCiFbXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy9tYXN0ZXIvYXNzZXRzL2xvZ2dpbmctcHJldHR5LnBuZykKCiMjIyBBUEkgVmFsaWRhdGlvbiBFeGFtcGxlCgpTaW1wbHkgZGVzY3JpYmUgeW91ciBBUElzIHdpdGggU3dhZ2dlciBhbmQgYXV0b21hdGljYWxseSBnZXQ6CgotIEFQSSByZXF1ZXN0IHZhbGlkYXRpb24KLSBJbnRlcmFjdGl2ZSBkb2N1bWVudGF0aW9uCgojIyMgZXhhbXBsZQoKIyMjIyBTd2FnZ2VyIEFQSSBzcGVjCgpgYGB5YW1sCnN3YWdnZXI6ICcyLjAnCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogbXlhcHAKICBkZXNjcmlwdGlvbjogTXkgY29vbCBhcHAKYmFzZVBhdGg6IC9hcGkvdjEKdGFnczoKICAtIG5hbWU6IEV4YW1wbGVzCiAgICBkZXNjcmlwdGlvbjogU2ltcGxlIGV4YW1wbGUgZW5kcG9pbnRzCiAgLSBuYW1lOiBTcGVjaWZpY2F0aW9uCiAgICBkZXNjcmlwdGlvbjogVGhlIHN3YWdnZXIgQVBJIHNwZWNpZmljYXRpb24KCmNvbnN1bWVzOgogIC0gYXBwbGljYXRpb24vanNvbgpwcm9kdWNlczoKICAtIGFwcGxpY2F0aW9uL2pzb24KCmRlZmluaXRpb25zOgogIEV4YW1wbGVCb2R5OgogICAgdHlwZTogb2JqZWN0CiAgICB0aXRsZTogZXhhbXBsZQogICAgcmVxdWlyZWQ6CiAgICAgIC0gbmFtZQogICAgcHJvcGVydGllczoKICAgICAgbmFtZToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBleGFtcGxlOiBub19zdHJlc3MKCnBhdGhzOgogIC9leGFtcGxlczoKICAgIGdldDoKICAgICAgdGFnczoKICAgICAgICAtIEV4YW1wbGVzCiAgICAgIGRlc2NyaXB0aW9uOiBGZXRjaCBhbGwgZXhhbXBsZXMKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBSZXR1cm5zIGFsbCBleGFtcGxlcwogICAgcG9zdDoKICAgICAgdGFnczoKICAgICAgICAtIEV4YW1wbGVzCiAgICAgIGRlc2NyaXB0aW9uOiBDcmVhdGUgYSBuZXcgZXhhbXBsZQogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogZXhhbXBsZQogICAgICAgICAgaW46IGJvZHkKICAgICAgICAgIGRlc2NyaXB0aW9uOiBhbiBleGFtcGxlCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAkcmVmOiAnIy9kZWZpbml0aW9ucy9FeGFtcGxlQm9keScKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBSZXR1cm5zIGFsbCBleGFtcGxlcwoKICAvZXhhbXBsZXMve2lkfToKICAgIGdldDoKICAgICAgdGFnczoKICAgICAgICAtIEV4YW1wbGVzCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBuYW1lOiBpZAogICAgICAgICAgaW46IHBhdGgKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIGlkIG9mIHRoZSBleGFtcGxlIHRvIHJldHJpZXZlCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogUmV0dXJuIHRoZSBleGFtcGxlIHdpdGggdGhlIHNwZWNpZmllZCBpZAogICAgICAgIDQwNDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBFeGFtcGxlIG5vdCBmb3VuZAoKICAvc3BlYzoKICAgIGdldDoKICAgICAgdGFnczoKICAgICAgICAtIFNwZWNpZmljYXRpb24KICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBSZXR1cm4gdGhlIEFQSSBzcGVjaWZpY2F0aW9uCmBgYAoKIyMjIyBJbnZva2UgYSBQT1NUIHJlcXVlc3QgdmlhIHRoZSBJbnRlcmFjdGl2ZSBkb2MKCiFbXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy9tYXN0ZXIvYXNzZXRzL2ludGVyYWN0aXZlLWRvYy5wbmcpCgojIyMgTGludGluZwoKZXhwcmVzcy1uby1zdHJlc3MgdXNlcyBbRVNMaW50XShodHRwOi8vZXNsaW50Lm9yZy8pIGFuZCBwcm92aWRlcyB0d28gY2hvaWNlcywgQWlyYm5iIG9yIFByZXR0aWVyLgoKVG8gYWRkIHlvdXIgb3duIEVTTGludCBjdXN0b21pemF0aW9ucywgZWRpdGAuZXNsaW50cmMuanNvbmAuCgpOb3RlIHRoYXQgdGhlIEFpcmJuYiB2YXJpYW50IHByb3ZpZGVzIGEgc2xpZ2h0bHkgbW9kaWZpZWQgQWlyYm5iIFtiYXNlXShodHRwczovL2dpdGh1Yi5jb20vYWlyYm5iL2phdmFzY3JpcHQvdHJlZS9tYXN0ZXIvcGFja2FnZXMvZXNsaW50LWNvbmZpZy1haXJibmItYmFzZSkgY29uZmlndXJhdGlvbi4KCiMjIEZBUQoqKlEqKjogSG93IGRvIEkgbW9kaWZ5IHRoZSBleGFtcGxlIEFQSSBhbmQgbWFrZSBpdCBteSBvd24/CgoqKkEqKjogVGhlcmUgYXJlIHR3byBrZXkgZmlsZXMgdGhhdCBlbmFibGUgeW91IHRvIGN1c3RvbWl6ZSBhbmQgZGVzY3JpYmUgeW91ciBBUEk6CjEuIGBzZXJ2ZXIvcm91dGVzLmpzYCAtIFRoaXMgcmVmZXJlbmNlcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgYWxsIG9mIHlvdXIgcm91dGVzLiBBZGQgYXMgbWFueSByb3V0ZXMgYXMgeW91IGxpa2UgYW5kIHBvaW50IGVhY2ggcm91dGUgeW91ciBleHByZXNzIGhhbmRsZXIgZnVuY3Rpb25zLgoyLiBgc2VydmVyL2NvbW1vbi9hcGkueWFtbGAgLSBUaGlzIGZpbGUgY29udGFpbnMgeW91ciBbT3BlbkFQSSBzcGVjXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pLiBEZXNjcmliZSB5b3VyIEFQSSBoZXJlLiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IHRvIGRlY2xhcmUgYW55IGFuZCBhbGwgdmFsaWRhdGlvbiBsb2dpYyBpbiB0aGlzIFlBTUwuIGBleHByZXNzLW5vLXN0cmVzcy10eXBlc2NyaXB0YCAgdXNlcyBbZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yKSB0byBhdXRvbWF0aWNhbGx5IGhhbmRsZSBhbGwgQVBJIHZhbGlkYXRpb24gYmFzZWQgb24gd2hhdCB5b3UndmUgZGVmaW5lZCBpbiB0aGUgc3BlYy4KCioqUSoqOiBJIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGFuIGFwcCwgYnV0IEkgd2FudCB0byBjaGFuZ2UgdGhlIEFQSSByb290LiBIb3cgZG8gSSBkbyB0aGlzPwoKKipBKio6IFlvdSBuZWVkIHRvIG1ha2UgdG8gc21hbGwgY2hhbmdlcwogIDEuIE1vZGlmeSBgc2VydmVyL3JvdXRlcy5qc2AKICBgYGBqYXZhc2NyaXB0CiAgICAgLy8gQ2hhbmdlIHlvdXIgb3JpZ2luYWwgcGF0aCBlLmcuIC9hcGkvdjEvZXhhbXBsZXMsIHRvOgogICAgIGFwcC51c2UoJy9hcGkvdjIvZXhhbXBsZXMnLCBleGFtcGxlc1JvdXRlcik7CiAgIGBgYAoKICAyLiBNb2RpZnkgYHNlcnZlci9jb21tb24vYXBpLnlhbWxgIGFuZCB1cGRhdGUgdGhlIGFwaSByb290OgogIGBgYHlhbWwKICAgICMgQ2hhbmdlIGUuZy4gL2FwaS92MSB0byAvYXBpL3YyCiAgICBzZXJ2ZXJzOgogICAgLSB1cmw6IC9hcGkvdjIgICAKICBgYGAKCiMjIExpY2Vuc2UKCltNSVRdKExJQ0VOU0UpCgoKPGEgaHJlZj0iaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9tOTd0QTVjIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vYm1jLWNkbi5ueWMzLmRpZ2l0YWxvY2VhbnNwYWNlcy5jb20vQk1DLWJ1dHRvbi1pbWFnZXMvY3VzdG9tX2ltYWdlcy95ZWxsb3dfaW1nLnBuZyIgYWx0PSJCdXkgTWUgQSBDb2ZmZWUiIHN0eWxlPSJoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDt3aWR0aDogYXV0byAhaW1wb3J0YW50OyIgPjwvYT4KCiMjIENvbnRyaWJ1dG9ycyDinKgKClRoYW5rcyBnb2VzIHRvIHRoZXNlIHdvbmRlcmZ1bCBwZW9wbGUgKFtlbW9qaSBrZXldKGh0dHBzOi8vYWxsY29udHJpYnV0b3JzLm9yZy9kb2NzL2VuL2Vtb2ppLWtleSkpOgoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9sZW9zdW5jaW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzMDc2OTc/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+SmFpbWUgTGVvbmFyZG8gU3VuY2luIENydXo8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzL2NvbW1pdHM/YXV0aG9yPWxlb3N1bmNpbiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW15Z2RhbG9pZGV1bSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTg0MTYyNTI/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+RGFuaWVsIEJvcm5zdHJhbmQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzL2NvbW1pdHM/YXV0aG9yPWFteWdkYWxvaWRldW0iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5hYm91dC5tZS9qYXNvbmNvcm5zIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODM5NDE2P3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPkphc29uIENvcm5zPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy9jb21taXRzP2F1dGhvcj1KYXNvbkFsbGVuQ29ybnMiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL2ZyYW5rY2FsaXNlLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzc0MDIyP3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPkZyYW5rIENhbGlzZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MvY29tbWl0cz9hdXRob3I9ZnJhbmtjYWxpc2UiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9ibG9nLmRhc2tlcG9uLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYzNzQ5NTI/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+RGFpc3VrZSBUc3VqaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MvY29tbWl0cz9hdXRob3I9ZGFza2Vwb24iIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Vyb25seTE0bWUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUxODY4MTQ/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+U2FuZ2Jlb20gSGFuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy9jb21taXRzP2F1dGhvcj11cm9ubHkxNG1lIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly9ta2x5LmlvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMS5naXRodWJ1c2VyY29udGVudC5jb20vdS85NjUzNTM/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+TWlrZSBMYXk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzL2NvbW1pdHM/YXV0aG9yPW1rbHkiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2pvZGVqYXIyMTQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkzODU5MDI/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+am9kZWphcjIxNDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MvY29tbWl0cz9hdXRob3I9am9kZWphcjIxNCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKPCEtLSBtYXJrZG93bmxpbnQtZW5hYmxlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lIQo= readmeEtag: '"6c6f621d150590c59cac208726f5a886a76023cc"' readmeLastModified: Mon, 30 May 2022 18:19:03 GMT repositoryId: 80230875 description: 🚂 A Yeoman generator for Express.js based 12-factor apps and apis created: '2017-01-27T17:45:14Z' updated: '2024-08-20T22:38:33Z' language: JavaScript archived: false stars: 593 watchers: 23 forks: 82 owner: cdimascio logo: https://avatars.githubusercontent.com/u/4706618?v=4 license: MIT repoEtag: '"a92eab1f66a686db115b3973d1e63af6d1986d9e89dc6bebeb9be0b99488f388"' repoLastModified: Tue, 20 Aug 2024 22:38:33 GMT foundInMaster: true category: Description Validators id: a4618ff5d41070e7337f3e3d8c2805d7 - source: openapi3 tags repository: https://github.com/mixmoe/hibiapi v3: true repositoryMetadata: base64Readme: >- PCEtLSBzcGVsbC1jaGVja2VyOiBkaXNhYmxlIC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIE1EMDMzIE1EMDQxIC0tPgoKPGltZyBzcmM9Ii5naXRodWIvbG9nby5zdmciIGFsaWduPSJyaWdodCI+Cgo8ZGl2IGFsaWduPSJsZWZ0Ij4KCiMgSGliaUFQSQoKKipf5LiA5Liq5a6e546w5LqG5aSa56eN5bi455So56uZ54K555qE5piT55So5YyWIEFQSSDnmoTnqIvluo8uXyoqCgoqKl9BIHByb2dyYW0gdGhhdCBpbXBsZW1lbnRzIGVhc3ktdG8tdXNlIEFQSXMgZm9yIGEgdmFyaWV0eSBvZiBjb21tb25seSB1c2VkIHNpdGVzLl8qKgoKWyFbRGVtbyBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2R5bmFtaWMvanNvbj9sYWJlbD1kZW1vJTIwc3RhdHVzJnF1ZXJ5PSUyNC5pbmZvLnZlcnNpb24mdXJsPWh0dHBzJTNBJTJGJTJGYXBpLm9iZnMuZGV2JTJGb3BlbmFwaS5qc29uJnN0eWxlPWZvci10aGUtYmFkZ2UmY29sb3I9bGlnaHRibHVlKV0oaHR0cHM6Ly9hcGkub2Jmcy5kZXYpCgohW0xpbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS93b3JrZmxvd3MvTGludC9iYWRnZS5zdmcpCiFbVGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL21peG1vZS9IaWJpQVBJL3dvcmtmbG93cy9UZXN0L2JhZGdlLnN2ZykKWyFbQ292ZXJhZ2VdKGh0dHBzOi8vY29kZWNvdi5pby9naC9taXhtb2UvSGliaUFQSS9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvbWl4bW9lL0hpYmlBUEkpCgpbIVtQeVBJXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9oaWJpYXBpKV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2hpYmlhcGkvKQohW1B5UEkgLSBEb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9kbS9oaWJpYXBpKQohW1B5UEkgLSBQeXRob24gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvaGliaWFwaSkKIVtQeVBJIC0gTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wvaGliaWFwaSkKCiFbR2l0SHViIGxhc3QgY29tbWl0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC9taXhtb2UvSGliaUFQSSkKIVtHaXRIdWIgY29tbWl0IGFjdGl2aXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9jb21taXQtYWN0aXZpdHkvbS9taXhtb2UvaGliaWFwaSkKIVtMaW5lcyBvZiBjb2RlXShodHRwczovL2ltZy5zaGllbGRzLmlvL3Rva2VpL2xpbmVzL2dpdGh1Yi9taXhtb2UvaGliaWFwaSkKWyFbR2l0SHViIHN0YXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zdGFycy9taXhtb2UvSGliaUFQSSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS9zdGFyZ2F6ZXJzKQpbIVtHaXRIdWIgZm9ya3NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2ZvcmtzL21peG1vZS9IaWJpQVBJKV0oaHR0cHM6Ly9naXRodWIuY29tL21peG1vZS9IaWJpQVBJL25ldHdvcmspClshW0dpdEh1YiBpc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9taXhtb2UvSGliaUFQSSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS9pc3N1ZXMpCgo8L2Rpdj4KCi0tLQoKIyMg5YmN6KiACgotIGBIaWJpQVBJYOaPkOS+m+Wkmuenjee9keermeWFrOW8gOWGheWuueeahCBBUEkg6ZuG5ZCILCDlroPku6zljIXmi6w6CgogIC0gUGl4aXYg55qE5Zu+54mH5ZKM5bCP6K+055u45YWz5L+h5oGv6I635Y+W5ZKM5pCc57SiCiAgLSBCaWxpYmlsaSDnmoTop4bpopEv55Wq5Ymn562J5L+h5oGv6I635Y+W5ZKM5pCc57SiCiAgLSDnvZHmmJPkupHpn7PkuZDnmoTpn7PkuZAvTVYg562J5L+h5oGv6I635Y+W5ZKM5pCc57SiCiAgLSDnmb7luqbotLTlkKfnmoTluJblrZDlhoXlrrnnmoTojrflj5YKICAtIFvniLHlo4HnurhdKGh0dHBzOi8vYWRlc2suY29tLynnmoTmqKrniYjlkoznq5bniYjlo4Hnurjojrflj5YKICAtIOWTlOWSlOa8q+eUu+eahOa8q+eUu+S/oeaBr+iOt+WPluWSjOaQnOe0ogogIC0g4oCmCgotIOivpemhueebrueahOWJjei6q+aYryBJbWphZCBBUElbXjFdCiAgLSDnlLHkuo7lroPnmoTkvb/nlKjkurrmlbDov4flpJosIOiHtOS9v+iwg+eUqOi2heWHuumZkOWItiwg5omA5Lul5pys5Lq65biM5pyb5o+Q5L6b5LiA5Liq5byA5rqQ5pu/5Luj5p2l5L6b56S+5Yy66L+b6KGM6Ieq55Sx5Zyw6YOo572y5ZKM5L2/55SoLCDku47ogIzlh4/ovbvkuIDpg6jliIbor6UgQVBJIOeahOS9v+eUqOWOi+WKmwoKW14xXTogW+S7gOS5iOaYryBJbWphZCBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS93aWtpL0ZBUSMlRTQlQkIlODAlRTQlQjklODglRTYlOTglQUZpbWphZC1hcGkpCgojIyDkvJjlir8KCiMjIyDlvIDmupAKCi0g5pys6aG555uu5LulW0FwYWNoZS0yLjBdKC4vTElDRU5TRSnorrjlj6/lvIDmupAsIOivt+eci1vlvIDmupDorrjlj69dKCPlvIDmupDorrjlj68p5LiA6IqCCgojIyMg6auY5pWICgotIOS9v+eUqCBQeXRob24g55qEW+W8guatpeacuuWItl0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvemgtY24vMy9saWJyYXJ5L2FzeW5jaW8uaHRtbCksIOeUsVtGYXN0QVBJXShodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tLynpqbHliqgsIOW4puadpemrmOaViOeahOS9v+eUqOS9k+mqjCB+fuiZveeEtuaAp+iDveeTtumiiOWOi+agueS4jeWcqOi/mX5+CgojIyMg56iz5a6aCgotIOWcqOS7o+eggeS4reW5v+azm+S9v+eUqOS6hiBQeXRob24g55qEW+exu+Wei+aPkOekuuaUr+aMgV0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvemgtY24vMy9saWJyYXJ5L3R5cGluZy5odG1sKSwg5L2/5Luj56CB5Y+v6K+75oCn5pu06auY5LiU5pu05Yqg5piT5LqO57u05oqk5ZKM6LCD6K+VCgotIOWcqOW8gOWPkeWIneacn+i1t+WwseS4gOebtOS9v+eUqOWkmuenjeeOsOS7oyBQeXRob24g5byA5Y+R5bel5YW36L6F5Yqp5byA5Y+RLCDljIXmi6w6CgogIC0g5L2/55SoIFtQeUxhbmNlXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9bXMtcHl0aG9uLnZzY29kZS1weWxhbmNlKSDov5vooYzpnZnmgIHnsbvlnovmjqjmlq0KICAtIOS9v+eUqCBbRmxha2U4XShodHRwczovL2ZsYWtlOC5weWNxYS5vcmcvZW4vbGF0ZXN0Lykg5a+55Luj56CB5qC85byP6L+b6KGM5qOA5p+lCiAgLSDkvb/nlKggW0JsYWNrXShodHRwczovL2JsYWNrLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS8pIOagvOW8j+WMluS7o+eggeS7peaPkOWNh+S7o+eggeWPr+ivu+aApwoKLSDkuI3nm7TmjqXkvb/nlKjnrKzkuInmlrnlvIDlj5HnmoQgQVBJIOiwg+eUqOW6kywg6ICM5piv5YWo6YOo55So5pu05Yqg6YCC5ZCIIFdlYiDlupTnlKjnmoTpgLvovpHph43lhpnnrKzkuInmlrkgQVBJIOivt+axgiwg5pu05Yqg5Y+v5o6nIH5+55av54uC6YCg6L2u5a2Qfn4KCiMjIOW3suWunueOsCBBUElbXjJdCgpbXjJdOiDor7fmn6XnnIsgWyMxXShodHRwczovL2dpdGh1Yi5jb20vbWl4bW9lL0hpYmlBUEkvaXNzdWVzLzEpCgotIFt4XSBQaXhpdgotIFt4XSDnvZHmmJPkupHpn7PkuZAKLSBbIF0gfn7kuIDoqIB+fiAo5YW25Luj5pu/5pa55qGIPGh0dHBzOi8vaGl0b2tvdG8uY24+5o+Q5L6b55qE5pa55qGI5bey6Laz5aSf5aW9LCDmmoLkuI3ogIPomZHmlK/mjIEpCi0gW3hdIEJpbGliaWxpCi0gW3hdIOS6jOe7tOeggQotIFsgXSB+fuS8gem5hSBGTX5+ICjkvLzkuY7nlKjnmoTkurrkuI3mmK/lvojlpJopCi0gW3hdIOeZvuW6pui0tOWQpwotIFt4XSDniLHlo4HnurgKLSBbeF0g5ZOU5ZKU5ryr55S7CgojIyDpg6jnvbLmjIfljZcKCi0g5omL5Yqo6YOo572y5oyH5Y2XOiAqKlvngrnlh7vmraTlpITmn6XnnItdKGh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS93aWtpL0RlcGxveW1lbnQpKioKCiMjIOW6lOeUqOWunuS+iwoKKirmiJHmnInmm7TlpJrnmoTlupTnlKjlrp7kvos/KiogW+eri+WNsyBQUiFdKGh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS9wdWxscykKCi0gW2Bqb3VybmV5LWFkL3BpeGl2LXZpZXdlcmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9qb3VybmV5LWFkL3BpeGl2LXZpZXdlcikKCiAgLSAqKuWPiOS4gOS4qiBQaXhpdiDpmIXop4jlt6XlhbcqKgoKLSDlhazlvIDmkK3lu7rlrp7kvosKICB8ICoq56uZ54K55ZCN56ewKiogfCAqKue9keWdgCoqIHwgKirnirbmgIEqKiB8CiAgfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwKICB8ICoq5a6Y5pa5IERlbW9bXjNdKiogfCA8aHR0cHM6Ly9hcGkub2Jmcy5kZXY+IHwgIVtvZmZpY2lhbF1bb2ZmaWNpYWxdIHwKICB8IFtNeUNhcmRdKGh0dHBzOi8vbXljYXJkLm1vZSkgfCA8aHR0cHM6Ly9oaWJpLm1vZWN1YmUuY29tPiB8ICFbbXljYXJkXVtteWNhcmRdIHwKClteM106IOS4uuS6huWHj+i9u+acjeWKoeWZqOi0n+aLhSwgRGVtbyDmnI3liqHlmajlt7LlvIDlkK/kuoYgQ2xvdWRmbGFyZSDlhajnq5nnvJPlrZgsIOWmguaenOacieWunuaXtuiOt+WPluabtOaWsOeahOmcgOaxgiwg6K+36Ieq6KGM5pCt5bu65oiW5L2/55So5YW25LuW6YOo572y5a6e5L6LCgpbb2ZmaWNpYWxdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3dlYnNpdGU/dXJsPWh0dHBzJTNBJTJGJTJGYXBpLm9iZnMuZGV2JTJGb3BlbmFwaS5qc29uCltteWNhcmRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3dlYnNpdGU/dXJsPWh0dHBzJTNBJTJGJTJGaGliaS5tb2VjdWJlLmNvbSUyRm9wZW5hcGkuanNvbgoKIyMg54m55Yir6bij6LCiCgpbKipAam91cm5leS1hZCoqXShodHRwczovL2dpdGh1Yi5jb20vam91cm5leS1hZCkg5aSn5L2s55qEICoqSW1qYWQgQVBJKiosIOWug+aYr+acrOmhueebrueahOi1t+a6kAoKIyMjIOWPguiAg+mhueebrgoKPiAqKuato+aYr+WboOS4uuacieS6huS9oOS7rCwg6L+Z5Liq6aG555uu5omN5b6X5Lul5a2Y5ZyoKioKCi0gUGl4aXY6IFtgTWlrdWJpbGwvcGl4aXZweS1hc3luY2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9NaWt1YmlsbC9waXhpdnB5LWFzeW5jKSBbYHVwYml0L3BpeGl2cHlgXShodHRwczovL2dpdGh1Yi5jb20vdXBiaXQvcGl4aXZweSkKCi0gQmlsaWJpbGk6IFtgU29jaWFsU2lzdGVyWWkvYmlsaWJpbGktQVBJLWNvbGxlY3RgXShodHRwczovL2dpdGh1Yi5jb20vU29jaWFsU2lzdGVyWWkvYmlsaWJpbGktQVBJLWNvbGxlY3QpIFtgc29pbW9ydC95b3UtZ2V0YF0oaHR0cHM6Ly9naXRodWIuY29tL3NvaW1vcnQveW91LWdldCkKCi0g572R5piT5LqR6Z+z5LmQOiBbYG1ldG93b2xmL05ldGVhc2VDbG91ZE11c2ljQXBpYF0oaHR0cHM6Ly9naXRodWIuY29tL21ldG93b2xmL05ldGVhc2VDbG91ZE11c2ljQXBpKSBbYGdyZWF0czNhbi9weW5jbWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmVhdHMzYW4vcHluY20pIFtgQmluYXJ5aWZ5L05ldGVhc2VDbG91ZE11c2ljQXBpYF0oaHR0cHM6Ly9naXRodWIuY29tL0JpbmFyeWlmeS9OZXRlYXNlQ2xvdWRNdXNpY0FwaSkKCi0g55m+5bqm6LS05ZCnOiBbYGxpYnNnaC90aWViYS1hcGlgXShodHRwczovL2dpdGh1Yi5jb20vbGlic2doL3RpZWJhLWFwaSkKCi0g5ZOU5ZKU5ryr55S777yaW2BuaXVodWFuL3BpY2EtcnVzdGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9uaXVodWFuL3BpY2EtcnVzdCkgW2BhYmJleW9rZ28vUGljYUNvbWljLUFwaWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9hYmJleW9rZ28vUGljYUNvbWljLUFwaSkKCiMjIyDotKHnjK7ogIXku6wKCuaEn+iwoui/meS6m+S4uui/meS4qumhueebruS9nOWHuui0oeeMrueahOWQhOS9jeWkp+S9rDoKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KPCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSAtLT4KPHRhYmxlPgogIDx0Ym9keT4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8va3lvbW90b2kubW9lIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3NTg3ODcwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLeW9tb3RvaSIvPjxiciAvPjxzdWI+PGI+S3lvbW90b2k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS9jb21taXRzP2F1dGhvcj1LeW9tb3RvaSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS9jb21taXRzP2F1dGhvcj1LeW9tb3RvaSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vdGhkb2cubW9lIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ2MTIwMjUxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSLln47lgInlpY8iLz48YnIgLz48c3ViPjxiPuWfjuWAieWljzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2V4YW1wbGUtc2hpcm9rdXJha2FuYSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3NraXBtNC5jb20iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDAzMTE1ODE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlNraXBNNCIvPjxiciAvPjxzdWI+PGI+U2tpcE00PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWl4bW9lL0hpYmlBUEkvY29tbWl0cz9hdXRob3I9U2tpcE00IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9sZWFmN3RoIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM4MzUyNTUyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJOb29rIi8+PGJyIC8+PHN1Yj48Yj5Ob29rPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWl4bW9lL0hpYmlBUEkvY29tbWl0cz9hdXRob3I9bGVhZjd0aCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vamlhbmd6aHVvY2hpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUwNTM4Mzc1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKb2NreSBDaGlhbmciLz48YnIgLz48c3ViPjxiPkpvY2t5IENoaWFuZzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21peG1vZS9IaWJpQVBJL2NvbW1pdHM/YXV0aG9yPWppYW5nemh1b2NoaSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2xlb29sZCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzkyMDkwMz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ibWlkb3JpIi8+PGJyIC8+PHN1Yj48Yj5taWRvcmk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS9jb21taXRzP2F1dGhvcj1jbGVvb2xkIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LjJ5by5jYyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MTE5ODAzOD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iUHJldHR5OSIvPjxiciAvPjxzdWI+PGI+UHJldHR5OTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21peG1vZS9IaWJpQVBJL2NvbW1pdHM/YXV0aG9yPVByZXR0eTkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vbm9jaWxvbC5tZS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTYyNTYyMjE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkphZCIvPjxiciAvPjxzdWI+PGI+SmFkPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWl4bW9lL0hpYmlBUEkvaXNzdWVzP3E9YXV0aG9yJTNBam91cm5leS1hZCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSIjaWRlYXMtam91cm5leS1hZCIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9uYW5va2EudG9wIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzMxODM3MjE0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJZdW1pbmUgU2FrdXJhIi8+PGJyIC8+PHN1Yj48Yj5ZdW1pbmUgU2FrdXJhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWl4bW9lL0hpYmlBUEkvY29tbWl0cz9hdXRob3I9YXNhZGFoaW1la2EiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3lleWFuZzUyIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwNzExMDg1MT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ieWV5YW5nIi8+PGJyIC8+PHN1Yj48Yj55ZXlhbmc8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taXhtb2UvSGliaUFQSS9jb21taXRzP2F1dGhvcj15ZXlhbmc1MiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KCl/mnKzmrrXnrKblkIggW2FsbC1jb250cmlidXRvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMpIOinhOiMg18KCiMjIOW8gOa6kOiuuOWPrwoKICAgIENvcHlyaWdodCAyMDIwLTIwMjEgTWl4IFRlY2hub2xvZ3kKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4K readmeEtag: '"89299b320ffcb534742e534a402ce9ace61aa4a7"' readmeLastModified: Tue, 23 Apr 2024 15:15:36 GMT repositoryId: 322624820 description: >- 一个实现了多种常用站点的易用化API的程序 / A program that implements easy-to-use APIs for a variety of commonly used sites. created: '2020-12-18T14:56:31Z' updated: '2024-08-22T02:44:52Z' language: Python archived: false stars: 539 watchers: 10 forks: 81 owner: mixmoe logo: https://avatars.githubusercontent.com/u/68723928?v=4 license: Apache-2.0 repoEtag: '"19f6da5d3cb6c769f32ea23e4cd2112f1d135d7a1e8eb141c1fa012b0a700d67"' repoLastModified: Thu, 22 Aug 2024 02:44:52 GMT foundInMaster: true category: Testing id: a5ce8925c7b03da0bff459d65f63458a - source: openapi3 tags repository: https://github.com/cloud-annotations/docusaurus-openapi v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPkRvY3VzYXVydXMgT3BlbkFQSSAoYmV0YSk8L2gxPgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCk9wZW5BUEkgcGx1Z2luIGZvciBnZW5lcmF0aW5nIEFQSSByZWZlcmVuY2UgZG9jcyBpbiBEb2N1c2F1cnVzIHYyLgoKWyFbbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZC1hbm5vdGF0aW9ucy9kb2N1c2F1cnVzLXBsdWdpbi1vcGVuYXBpL2Jsb2IvSEVBRC9MSUNFTlNFKQpbIVtucG0gbGF0ZXN0IHBhY2thZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvZG9jdXNhdXJ1cy1wcmVzZXQtb3BlbmFwaS9sYXRlc3Quc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZG9jdXNhdXJ1cy1wcmVzZXQtb3BlbmFwaSkKWyFbbnBtIGRvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vZG9jdXNhdXJ1cy1wbHVnaW4tb3BlbmFwaS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9kb2N1c2F1cnVzLXByZXNldC1vcGVuYXBpKQpbIVtidWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkLWFubm90YXRpb25zL2RvY3VzYXVydXMtcGx1Z2luLW9wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvdmFsaWRhdGUueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vY2xvdWQtYW5ub3RhdGlvbnMvZG9jdXNhdXJ1cy1wbHVnaW4tb3BlbmFwaS9hY3Rpb25zL3dvcmtmbG93cy92YWxpZGF0ZS55YW1sKQo8YnIvPgpbIVtwcmV0dGllcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlX3N0eWxlLXByZXR0aWVyLWZmNjliNC5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vcHJldHRpZXIvcHJldHRpZXIpClshW0N5cHJlc3MuaW9dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdGVzdGVkJTIwd2l0aC1DeXByZXNzLTA0QzM4RS5zdmcpXShodHRwczovL3d3dy5jeXByZXNzLmlvLykKWyFbamVzdF0oaHR0cHM6Ly9qZXN0anMuaW8vaW1nL2plc3QtYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2plc3QpClshW1BScyBXZWxjb21lXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BScy13ZWxjb21lLWJyaWdodGdyZWVuLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZC1hbm5vdGF0aW9ucy9kb2N1c2F1cnVzLXBsdWdpbi1vcGVuYXBpL2Jsb2IvSEVBRC9DT05UUklCVVRJTkcubWQjcHVsbC1yZXF1ZXN0cykKCjwvZGl2PgoKPHAgYWxpZ249ImNlbnRlciI+CgohW10oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vNDIxMjc2OS84NTMyNDM3Ni1iOWUzZDkwMC1iNDk3LTExZWEtOTc2NS1jNDJhOGFkMWZmNjEucG5nKQoKPC9wPgoKIyMgUXVpY2sgT3ZlcnZpZXcKCmBgYHNoCm5weCBjcmVhdGUtZG9jdXNhdXJ1cy1vcGVuYXBpIG15LXdlYnNpdGUKY2QgbXktd2Vic2l0ZQpucG0gc3RhcnQKYGBgCgo+IENvbWluZyBmcm9tIGB2MC4xLjBgPyBTZWUgdGhlIFttaWdyYXRpb24gZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZC1hbm5vdGF0aW9ucy9kb2N1c2F1cnVzLXBsdWdpbi1vcGVuYXBpL3JlbGVhc2VzL3RhZy92MC4yLjApLgoKXyhbbnB4XShodHRwczovL21lZGl1bS5jb20vQG1heWJla2F0ei9pbnRyb2R1Y2luZy1ucHgtYW4tbnBtLXBhY2thZ2UtcnVubmVyLTU1ZjdkNGJkMjgyYikgY29tZXMgd2l0aCBucG0gNS4yKyBhbmQgaGlnaGVyKV8KClRoZW4gb3BlbiBbaHR0cDovL2xvY2FsaG9zdDozMDAwL10oaHR0cDovL2xvY2FsaG9zdDozMDAwLykgdG8gc2VlIHlvdXIgc2l0ZS48YnI+CldoZW4geW914oCZcmUgcmVhZHkgdG8gZGVwbG95IHRvIHByb2R1Y3Rpb24sIGNyZWF0ZSBhIG1pbmlmaWVkIGJ1bmRsZSB3aXRoIGBucG0gcnVuIGJ1aWxkYC4KCiMjIENyZWF0aW5nIGEgbmV3IFNpdGUKCioqWW914oCZbGwgbmVlZCB0byBoYXZlIE5vZGUgMTQuMC4wIG9yIGxhdGVyIHZlcnNpb24gb24geW91ciBsb2NhbCBkZXZlbG9wbWVudCBtYWNoaW5lKiogKGJ1dCBpdOKAmXMgbm90IHJlcXVpcmVkIG9uIHRoZSBzZXJ2ZXIpLiBXZSByZWNvbW1lbmQgdXNpbmcgdGhlIGxhdGVzdCBMVFMgdmVyc2lvbi4gWW91IGNhbiB1c2UgW252bV0oaHR0cHM6Ly9naXRodWIuY29tL2NyZWF0aW9uaXgvbnZtI2luc3RhbGxhdGlvbikgKG1hY09TL0xpbnV4KSBvciBbbnZtLXdpbmRvd3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb3JleWJ1dGxlci9udm0td2luZG93cyNub2RlLXZlcnNpb24tbWFuYWdlci1udm0tZm9yLXdpbmRvd3MpIHRvIHN3aXRjaCBOb2RlIHZlcnNpb25zIGJldHdlZW4gZGlmZmVyZW50IHByb2plY3RzLgoKVG8gY3JlYXRlIGEgbmV3IHNpdGUsIHlvdSBtYXkgY2hvb3NlIG9uZSBvZiB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CgotICMjIyBucHgKCiAgYGBgc2gKICBucHggY3JlYXRlLWRvY3VzYXVydXMtb3BlbmFwaSBteS13ZWJzaXRlCiAgYGBgCgogIF8oW25weF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BtYXliZWthdHovaW50cm9kdWNpbmctbnB4LWFuLW5wbS1wYWNrYWdlLXJ1bm5lci01NWY3ZDRiZDI4MmIpIGlzIGEgcGFja2FnZSBydW5uZXIgdG9vbCB0aGF0IGNvbWVzIHdpdGggbnBtIDUuMisgYW5kIGhpZ2hlcilfCgotICMjIyBucG0KCiAgYGBgc2gKICBucG0gaW5pdCBkb2N1c2F1cnVzLW9wZW5hcGkgbXktd2Vic2l0ZQogIGBgYAoKICBfYG5wbSBpbml0IDxpbml0aWFsaXplcj5gIGlzIGF2YWlsYWJsZSBpbiBucG0gNitfCgotICMjIyB5YXJuCgogIGBgYHNoCiAgeWFybiBjcmVhdGUgZG9jdXNhdXJ1cy1vcGVuYXBpIG15LXdlYnNpdGUKICBgYGAKCiAgX1tgeWFybiBjcmVhdGUgPHN0YXJ0ZXIta2l0LXBhY2thZ2U+YF0oaHR0cHM6Ly95YXJucGtnLmNvbS9sYW5nL2VuL2RvY3MvY2xpL2NyZWF0ZS8pIGlzIGF2YWlsYWJsZSBpbiBZYXJuIDAuMjUrXwoKSXQgd2lsbCBjcmVhdGUgYSBkaXJlY3RvcnkgY2FsbGVkIGBteS13ZWJzaXRlYCBpbnNpZGUgdGhlIGN1cnJlbnQgZm9sZGVyLjxicj4KSW5zaWRlIHRoYXQgZGlyZWN0b3J5LCBpdCB3aWxsIGdlbmVyYXRlIHRoZSBpbml0aWFsIHByb2plY3Qgc3RydWN0dXJlIGFuZCBpbnN0YWxsIHRoZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llczoKCmBgYApteS13ZWJzaXRlCuKUnOKUgOKUgCBibG9nCuKUgiAgIOKUnOKUgOKUgCAyMDE5LTA1LTI4LWhvbGEubWQK4pSCICAg4pSc4pSA4pSAIDIwMTktMDUtMjktaGVsbG8td29ybGQubWQK4pSCICAg4pSU4pSA4pSAIDIwMjAtMDUtMzAtd2VsY29tZS5tZArilJzilIDilIAgZG9jcwrilIIgICDilJzilIDilIAgZG9jMS5tZArilIIgICDilJzilIDilIAgZG9jMi5tZArilIIgICDilJzilIDilIAgZG9jMy5tZArilIIgICDilJTilIDilIAgbWR4Lm1kCuKUnOKUgOKUgCBzcmMK4pSCICAg4pSc4pSA4pSAIGNzcwrilIIgICDilIIgICDilJTilIDilIAgY3VzdG9tLmNzcwrilIIgICDilJTilIDilIAgcGFnZXMK4pSCICAgICAgIOKUnOKUgOKUgCBzdHlsZXMubW9kdWxlLmNzcwrilIIgICAgICAg4pSU4pSA4pSAIGluZGV4LmpzCuKUnOKUgOKUgCBzdGF0aWMK4pSCICAg4pSU4pSA4pSAIGltZwrilJzilIDilIAgLmdpdGlnbm9yZQrilJzilIDilIAgb3BlbmFwaS5qc29uCuKUnOKUgOKUgCBkb2N1c2F1cnVzLmNvbmZpZy5qcwrilJzilIDilIAgYmFiZWwuY29uZmlnLmpzCuKUnOKUgOKUgCBwYWNrYWdlLmpzb24K4pSc4pSA4pSAIHNpZGViYXJzLmpzCuKUlOKUgOKUgCBSRUFETUUubWQKYGBgCgotIGAvZG9jdXNhdXJ1cy5jb25maWcuanNgIC0gQSBjb25maWcgZmlsZSBjb250YWluaW5nIHRoZSBzaXRlIGNvbmZpZ3VyYXRpb24uIFRoaXMgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlIHRoZSBPcGVuQVBJIHByZXNldAotIGAvb3BlbmFwaS5qc29uYCAtIFRoZSBkZWZhdWx0IE9wZW5BUEkgZGVmaW5pdGlvbiB0aGF0IHdpbGwgYmUgc2VydmVkIF8ocGF0aCBjYW4gYmUgY29uZmlndXJlZCBpbiBgZG9jdXNhdXJ1cy5jb25maWcuanNgKV8uCgpGb3IgbW9yZSBpbmZvIHNlZSBbcHJvamVjdCBzdHJ1Y3R1cmUgcnVuZG93bl0oaHR0cHM6Ly9kb2N1c2F1cnVzLmlvL2RvY3MvaW5zdGFsbGF0aW9uI3Byb2plY3Qtc3RydWN0dXJlLXJ1bmRvd24pLgoKT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGRvbmUsIHlvdSBjYW4gb3BlbiB5b3VyIHByb2plY3QgZm9sZGVyOgoKYGBgc2gKY2QgbXktd2Vic2l0ZQpgYGAKCkluc2lkZSB0aGUgbmV3bHkgY3JlYXRlZCBwcm9qZWN0LCB5b3UgY2FuIHJ1biBzb21lIGJ1aWx0LWluIGNvbW1hbmRzOgoKIyMjIGBucG0gc3RhcnRgIG9yIGB5YXJuIHN0YXJ0YAoKUnVucyB0aGUgc2l0ZSBpbiBkZXZlbG9wbWVudCBtb2RlLjxicj4KT3BlbiBbaHR0cDovL2xvY2FsaG9zdDozMDAwXShodHRwOi8vbG9jYWxob3N0OjMwMDApIHRvIHZpZXcgaXQgaW4gdGhlIGJyb3dzZXIuCgpUaGUgcGFnZSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVsb2FkIGlmIHlvdSBtYWtlIGNoYW5nZXMgdG8gdGhlIGNvZGUuCgojIyMgYG5wbSBydW4gYnVpbGRgIG9yIGB5YXJuIGJ1aWxkYAoKQnVpbGRzIHRoZSBzaXRlIGZvciBwcm9kdWN0aW9uIHRvIHRoZSBgYnVpbGRgIGZvbGRlci4KCkRvY3VzYXVydXMgaXMgYSBtb2Rlcm4gc3RhdGljIHdlYnNpdGUgZ2VuZXJhdG9yIHRoYXQgd2lsbCBidWlsZCB0aGUgd2Vic2l0ZSBpbnRvIGEgZGlyZWN0b3J5IG9mIHN0YXRpYyBjb250ZW50cywgd2hpY2ggY2FuIGJlIGNvcGllZCB0byBhbnkgc3RhdGljIGZpbGUgaG9zdGluZyBzZXJ2aWNlIGxpa2UgW0dpdEh1YiBwYWdlc10oaHR0cHM6Ly9wYWdlcy5naXRodWIuY29tLyksIFtWZXJjZWxdKGh0dHBzOi8vdmVyY2VsLmNvbS8pIG9yIFtOZXRsaWZ5XShodHRwczovL3d3dy5uZXRsaWZ5LmNvbS8pLgoKIyMgQWRkIHRvIGFuIGV4aXN0aW5nIFNpdGUKCjEuIEluc3RhbGwgdGhlIGRlcGVuZGVuY3kKCiAgIGBgYHNoCiAgIG5wbSBpbnN0YWxsIGRvY3VzYXVydXMtcHJlc2V0LW9wZW5hcGkKICAgYGBgCgoyLiBFZGl0IHlvdXIgYGRvY3VzYXVydXMuY29uZmlnLmpzYCBmaWxlIHRvIHVzZSB0aGlzIHByZXNldAogICBgYGBqcwogICBwcmVzZXRzOiBbCiAgICAgWwogICAgICAgImRvY3VzYXVydXMtcHJlc2V0LW9wZW5hcGkiLAogICAgICAgLyoqIEB0eXBlIHtpbXBvcnQoJ2RvY3VzYXVydXMtcHJlc2V0LW9wZW5hcGknKS5PcHRpb25zfSAqLwogICAgICAgewogICAgICAgICBhcGk6IHsKICAgICAgICAgICBwYXRoOiAiPFBBVEhfVE9fWU9VUl9PUEVOQVBJX0RPQ1VNRU5UPiIsCiAgICAgICAgICAgcm91dGVCYXNlUGF0aDogIi9hcGkiLAogICAgICAgICB9LAogICAgICAgICBkb2NzOiB7CiAgICAgICAgICAgc2lkZWJhclBhdGg6IHJlcXVpcmUucmVzb2x2ZSgiLi9zaWRlYmFycy5qcyIpLAogICAgICAgICAgIHJvdXRlQmFzZVBhdGg6ICIvIiwKICAgICAgICAgfSwKICAgICAgICAgdGhlbWU6IHsKICAgICAgICAgICBjdXN0b21Dc3M6IHJlcXVpcmUucmVzb2x2ZSgiLi9zcmMvY3NzL2N1c3RvbS5jc3MiKSwKICAgICAgICAgfSwKICAgICAgIH0sCiAgICAgXSwKICAgXTsKICAgYGBgCgojIyBQb3B1bGFyIEFsdGVybmF0aXZlcwoKRG9jdXNhdXJ1cyBPcGVuQVBJIGlzIGdyZWF0IGZvcjoKCi0gKipTdGF0aWMgZ2VuZXJhdGlvbioqIEFsbCBPcGVuQVBJIG9wZXJhdGlvbnMgd2lsbCBiZSByZW5kZXJlZCBhcyBzdGF0aWMgcGFnZXMgYXQgYnVpbGQgdGltZSwgZ2l2aW5nIG1hbnkgcGVyZm9ybWFuY2UgYmVuZWZpdHMuCi0gKipEZW1vIHBhbmVsKiogQWxsb3cgdXNlcnMgdG8gdHJ5IG91dCB5b3VyIEFQSSB3aXRoIGFuIGludGVyYWN0aXZlIGRlbW8gcGFuZWwuCi0gKipOYXRpdmUgRG9jdXNhdXJ1cyBmZWVsKiogQnVpbHQgZnJvbSBzY3JhdGNoIHRvIHdvcmsgd2l0aCBEb2N1c2F1cnVzLgoKSGVyZSBhcmUgYSBmZXcgY29tbW9uIGNhc2VzIHdoZXJlIHlvdSBtaWdodCB3YW50IHRvIHRyeSBzb21ldGhpbmcgZWxzZToKCi0gSWYgeW91IG5lZWQgYmV0dGVyIHN1cHBvcnQgZm9yIG1vcmUgYWR2YW5jZWQgT3BlbkFQSSBmZWF0dXJlcywgY2hlY2sgb3V0IFtSZWRvY3VzYXVydXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9yb2hpdC1nb2hyaS9yZWRvY3VzYXVydXMvKS4gUmVkb2N1c2F1cnVzIGVtYmVkcyB0aGUgbXVjaCBtb3JlIG1hdHVyZSBPcGVuQVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yLCBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKSwgaW50byBEb2N1c2F1cnVzIGFzIGEgUmVhY3QgY29tcG9uZW50LgoKIyMgQ29udHJpYnV0aW5nCgpXZSBlbmNvdXJhZ2UgeW91IHRvIGNvbnRyaWJ1dGUgdG8gRG9jdXNhdXJ1cyBPcGVuQVBJISBQbGVhc2UgY2hlY2sgb3V0IHRoZQpbQ29udHJpYnV0aW5nIHRvIERvY3VzYXVydXMgT3BlbkFQSSBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkLWFubm90YXRpb25zL2RvY3VzYXVydXMtcGx1Z2luLW9wZW5hcGkvYmxvYi9tYWluL0NPTlRSSUJVVElORy5tZCkgZm9yIGd1aWRlbGluZXMgYWJvdXQgaG93IHRvIHByb2NlZWQuCgojIyBMaWNlbnNlCgpEb2N1c2F1cnVzIE9wZW5BUEkgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFtNSVQgTGljZW5zZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgo= readmeEtag: '"304865926dfd435363e6a28142bf930151796d3a"' readmeLastModified: Tue, 30 Apr 2024 03:44:38 GMT repositoryId: 273958287 description: 🦕 OpenAPI plugin for generating API reference docs in Docusaurus v2. created: '2020-06-21T18:06:52Z' updated: '2024-08-14T19:00:27Z' language: TypeScript archived: false stars: 493 watchers: 9 forks: 82 owner: cloud-annotations logo: https://avatars.githubusercontent.com/u/47490031?v=4 license: MIT repoEtag: '"825afc30032412d4c66b6932756874ba3bf705a15a4f1d6bf0be4da57d3ff4bf"' repoLastModified: Wed, 14 Aug 2024 19:00:27 GMT foundInMaster: true category: SDK id: 5acf9bbe5338a800925f2b0e23eca0a1 - source: openapi3 tags repository: https://github.com/oazapfts/oazapfts v3: true id: b866db159ac2a8a130a7c78d142b32bc repositoryMetadata: base64Readme: >- IyDwn427IG9hemFwZnRzIQoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9vYXphcGZ0cy9vYXphcGZ0cy9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL29hemFwZnRzL29hemFwZnRzL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCkKWyFbc2VtYW50aWMtcmVsZWFzZTogYW5ndWxhcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zZW1hbnRpYy0tcmVsZWFzZS1hbmd1bGFyLWUxMDA3OT9sb2dvPXNlbWFudGljLXJlbGVhc2UpXShodHRwczovL2dpdGh1Yi5jb20vc2VtYW50aWMtcmVsZWFzZS9zZW1hbnRpYy1yZWxlYXNlKQoKR2VuZXJhdGUgVHlwZVNjcmlwdCBjbGllbnRzIHRvIHRhcCBpbnRvIE9wZW5BUEkgc2VydmVycy4KCiFbXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE5NjA3NjI1P3M9MjAwJnY9NCkKCiMjIEZlYXR1cmVzCgotICoqQVNULWJhc2VkKio6CiAgVW5saWtlIG90aGVyIGNvZGUgZ2VuZXJhdG9ycyBgb2F6YXBmdHNgIGRvZXMgbm90IHVzZSB0ZW1wbGF0ZXMgdG8gZ2VuZXJhdGUgY29kZSBidXQgdXNlcyBUeXBlU2NyaXB0J3MgYnVpbHQtaW4gQVBJIHRvIGdlbmVyYXRlIGFuZCBwcmV0dHktcHJpbnQgYW4gYWJzdHJhY3Qgc3ludGF4IHRyZWUuCi0gKipGYXN0Kio6IFRoZSBDTEkgZG9lcyBub3QgdXNlIGFueSBvZiB0aGUgY29tbW9uIEphdmEtYmFzZWQgdG9vbGluZywgc28gdGhlIGNvZGUgZ2VuZXJhdGlvbiBpcyBzdXBlciBmYXN0LgotICoqU2luZ2xlIGZpbGUqKjogQWxsIGZ1bmN0aW9ucyBhbmQgdHlwZXMgYXJlIGNvLWxvY2F0ZWQgaW4gb25lIHNpbmdsZSBzZWxmLWNvbnRhaW5lZCBmaWxlLgotICoqVHJlZS1zaGFrZWFibGUqKjogSW5kaXZpZHVhbGx5IGV4cG9ydGVkIGZ1bmN0aW9ucyBhbGxvdyB5b3UgdG8gYnVuZGxlIG9ubHkgdGhlIG9uZXMgeW91IGFjdHVhbGx5IHVzZS4KLSAqKkh1bWFuIGZyaWVuZGx5IHNpZ25hdHVyZXMqKjogVGhlIGdlbmVyYXRlZCBBUEkgbWV0aG9kcyBkb24ndCBsZWFrIGFueSBIVFRQLXNwZWNpZmljIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIEZvciBleGFtcGxlLCBhbGwgb3B0aW9uYWwgcGFyYW1ldGVycyBhcmUgZ3JvdXBlZCB0b2dldGhlciBpbiBvbmUgb2JqZWN0LCBubyBtYXR0ZXIgd2hldGhlciB0aGV5IGVuZCB1cCBpbiB0aGUgaGVhZGVycywgcGF0aCBvciBxdWVyeS1zdHJpbmcuCgojIyBJbnN0YWxsYXRpb24KCmBgYApucG0gaW5zdGFsbCBvYXphcGZ0cwpgYGAKCj4gKipOb3RlKioKPiBXaXRoIHZlcnNpb24gMy4wLjAgb2F6YXBmdHMgaGFzIGJlY29tZSBhIHJ1bnRpbWUgZGVwZW5kZW5jeSBhbmQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXMgbm8gbG9uZ2VyIGluY2x1ZGUgYWxsIHRoZSBmZXRjaCBsb2dpYy4gIAo+IEFzIG9mIDYuMC4wIHRoZSBydW50aW1lIGhhcyBiZWVuIG1vdmVkIHRvIGEgc2VwYXJhdGUgcGFja2FnZSwgYEBvYXphcGZ0cy9ydW50aW1lYC4KCiMjIFVzYWdlCgpgYGAKb2F6YXBmdHMgPHNwZWM+IFtmaWxlbmFtZV0KCk9wdGlvbnM6Ci0tZXhjbHVkZSwgLWUgdGFnIHRvIGV4Y2x1ZGUKLS1pbmNsdWRlLCAtaSB0YWcgdG8gaW5jbHVkZQotLW9wdGltaXN0aWMKLS11c2VFbnVtVHlwZQotLW1lcmdlUmVhZFdyaXRlT25seQotLWFyZ3VtZW50U3R5bGU9PHBvc2l0aW9uYWwgfCBvYmplY3Q+IChkZWZhdWx0OiBwb3NpdGlvbmFsKQpgYGAKCldoZXJlIGA8c3BlYz5gIGlzIHRoZSBVUkwgb3IgbG9jYWwgcGF0aCBvZiBhbiBPcGVuQVBJIG9yIFN3YWdnZXIgc3BlYyAoaW4gZWl0aGVyIGpzb24gb3IgeW1sKSBhbmQgYDxmaWxlbmFtZT5gIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgYC50c2AgZmlsZSB0byBiZSBnZW5lcmF0ZWQuIElmIHRoZSBmaWxlbmFtZSBpcyBvbWl0dGVkLCB0aGUgY29kZSBpcyB3cml0dGVuIHRvIHN0ZG91dC4KCiMjIyBPcHRpb25zCgotIGAtLW9wdGltaXN0aWNgIGdlbmVyYXRlIGEgY2xpZW50IGluIFtvcHRpbWlzdGljIG1vZGVdKCNvcHRpbWlzdGljLW1vZGUpCgotIGAtLXVzZUVudW1UeXBlYCBnZW5lcmF0ZSBlbnVtcyBpbnN0ZWFkIG9mIHVuaW9uIHR5cGVzCgotIGAtLW1lcmdlUmVhZFdyaXRlT25seWAgYnkgZGVmYXVsdCBvYXphcGZzIHdpbGwgZ2VuZXJhdGUgc2VwYXJhdGUgdHlwZXMgZm9yIHJlYWQtb25seSBhbmQgd3JpdGUtb25seSBwcm9wZXJ0aWVzLiBUaGlzIG9wdGlvbiB3aWxsIG1lcmdlIHRoZW0gaW50byBvbmUgdHlwZS4KCi0gYC0tYXJndW1lbnRTdHlsZWAgaWYgIm9iamVjdCIgZ2VuZXJhdGVkIGZ1bmN0aW9ucyB0YWtlIHNpbmdsZSBvYmplY3Qgc3R5bGUgYXJndW1lbnQgZm9yIHBhcmFtZXRlcnMgYW5kIHJlcXVlc3RCb2R5LCBieSBkZWZhdWx0IGl0J3MgInBvc2l0aW9uYWwiIGFuZCBwYXJhbWV0ZXJzIGFyZSBzZXBhcmF0ZSBhcyBwb3NpdGlvbmFsIGFyZ3VtZW50cwoKIyMgQ29uc3VtaW5nIHRoZSBnZW5lcmF0ZWQgQVBJCgpGb3IgZWFjaCBvcGVyYXRpb24gZGVmaW5lZCBpbiB0aGUgc3BlYyB0aGUgZ2VuZXJhdGVkIEFQSSB3aWxsIGV4cG9ydCBhIGZ1bmN0aW9uIHdpdGggYSBuYW1lIG1hdGNoaW5nIHRoZSBgb3BlcmF0aW9uSWRgLiBJZiBubyBJRCBpcyBzcGVjaWZpZWQsIGEgcmVhc29uYWJsZSBuYW1lIGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBIVFRQIHZlcmIgYW5kIHRoZSBwYXRoLgoKYGBgdHMKaW1wb3J0ICogYXMgYXBpIGZyb20gIi4vbXktZ2VuZXJhdGVkLWFwaS50cyI7CmNvbnN0IHJlcyA9IGFwaS5nZXRQZXRCeUlkKDEpOwpgYGAKCj4gKipOb3RlKioKPiBJZiB5b3VyIEFQSSBpcyBsYXJnZSwgYW5kIHlvdSB3YW50IHRvIHRha2UgYWR2YW50YWdlIG9mIHRyZWUtc2hha2luZyB0byBleGNsdWRlIHVudXNlZCBjb2RlLCB1c2UgaW5kaXZpZHVhbCBuYW1lZCBpbXBvcnRzIGluc3RlYWQ6CgpgYGB0cwppbXBvcnQgeyBnZXRQZXRCeUlkIH0gZnJvbSAiLi9teS1nZW5lcmF0ZWQtYXBpLnRzIjsKYGBgCgojIyBGZXRjaCBvcHRpb25zCgpUaGUgKipsYXN0IGFyZ3VtZW50Kiogb2YgZWFjaCBmdW5jdGlvbiBpcyBhbiBvcHRpb25hbCBbYFJlcXVlc3RPcHRzYF0oaHR0cHM6Ly9naXRodWIuY29tL29hemFwZnRzL29hemFwZnRzL2Jsb2IvMjdiMjk2YzZmYzI4ZmVjNDg2OWYxYjdlMWE0YTU1ODVlYmJkNWVlOS9zcmMvcnVudGltZS9pbmRleC50cyNMNSkgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gcGFzcyBvcHRpb25zIHRvIHRoZSBgZmV0Y2hgIGNhbGwsIGZvciBleGFtcGxlIHRvIHBhc3MgYWRkaXRpb25hbCBgaGVhZGVyc2Agb3IgYW4gYEFib3J0U2lnbmFsYCB0byBjYW5jZWwgdGhlIHJlcXVlc3QgbGF0ZXIgb24uCgpgYGB0cwpjb25zdCByZXMgPSBnZXRQZXRCeUlkKDEsIHsKICBjcmVkZW50aWFsczogImluY2x1ZGUiLAogIGhlYWRlcnM6IHsKICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLAogIH0sCn0pOwpgYGAKCllvdSBjYW4gYWxzbyB1c2UgdGhpcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBgYmFzZVVybGAgb3IgdG8gcHJvdmlkZSBhIGN1c3RvbSBgZmV0Y2hgIGltcGxlbWVudGF0aW9uLgoKPiAqKk5vdGUqKgo+IEluc3RlYWQgb2YgcGFzc2luZyBjdXN0b20gb3B0aW9ucyB0byBlYWNoIGZ1bmN0aW9uIGNhbGwsIGNvbnNpZGVyIFtvdmVyd3JpdGluZyB0aGUgZ2xvYmFsIGRlZmF1bHRzXSgjb3ZlcnJpZGluZy10aGUtZGVmYXVsdHMpLgoKIyMgT3B0aW1pc3RpYyB2cy4gZXhwbGljaXQgcmVzcG9uc2VzCgpPYXphcGZ0cyBzdXBwb3J0cyB0d28gZGlmZmVyZW50IG1vZGVzIHRvIGhhbmRsZSByZXN1bHRzLAphbiBbZXhwbGljaXRdKCNleHBsaWNpdC1tb2RlKSBtb2RlICh0aGUgZGVmYXVsdCkgYW5kIGFuIFtvcHRpbWlzdGljXSgjb3B0aW1pc3RpYy1tb2RlKSBtb2RlLCB0aGF0IG1ha2VzIHRoZSByZXNwb25zZSBoYW5kbGluZyBsZXNzIHZlcmJvc2UuCgojIyBFeHBsaWNpdCBtb2RlCgpCeSBkZWZhdWx0LCBlYWNoIGZ1bmN0aW9uIHJldHVybnMgYW4gYEFwaVJlc3BvbnNlYCBvYmplY3QgdGhhdCBleHBvc2VzIHRoZSBgc3RhdHVzYCBjb2RlLCByZXNwb25zZSBgaGVhZGVyc2AgYW5kIHRoZSBgZGF0YWAuCgo+ICoqTm90ZSoqCj4gVGhpcyBtb2RlIGlzIGJlc3Qgc3VpdGVkIGZvciBBUElzIHRoYXQgcmV0dXJuIGRpZmZlcmVudCB0eXBlcyBmb3IgZGlmZmVyZW50IHJlc3BvbnNlIGNvZGVzIG9yIEFQSXMgd2hlcmUgeW91IG5lZWQgdG8gYWNjZXNzIG5vdCBvbmx5IHRoZSByZXNwb25zZSBib2R5LCBidXQgYWxzbyB0aGUgcmVzcG9uc2UgaGVhZGVycy4gSWYgeW91ciBBUEkgaXMgc2ltcGxlLCBhbmQgeW91IGRvbid0IG5lZWQgdGhpcyBmbGV4aWJpbGl0eSwgY29uc2lkZXIgdXNpbmcgdGhlIFtvcHRpbWlzdGljIG1vZGVdKCNvcHRpbWlzdGljLW1vZGUpIGluc3RlYWQuCgpJbiBleHBsaWNpdCBtb2RlLCBlYWNoIGZ1bmN0aW9uIHJldHVybnMgYSBQcm9taXNlIGZvciBhbiBgQXBpUmVzcG9uc2VgIHdoaWNoIGlzIGFuIG9iamVjdCB3aXRoIGEgYHN0YXR1c2AgYW5kIGEgYGRhdGFgIHByb3BlcnR5LCBob2xkaW5nIHRoZSBIVFRQIHN0YXR1cyBjb2RlIGFuZCB0aGUgcHJvcGVybHkgdHlwZWQgZGF0YSBmcm9tIHRoZSByZXNwb25zZSBib2R5LgoKU2luY2UgYW4gb3BlcmF0aW9uIGNhbiByZXR1cm4gZGlmZmVyZW50IHR5cGVzIGRlcGVuZGluZyBvbiB0aGUgc3RhdHVzIGNvZGUsIHRoZSBhY3R1YWwgcmV0dXJuIHR5cGUgaXMgYSBfdW5pb25fIG9mIGFsbCBwb3NzaWJsZSByZXNwb25zZXMsIGRpc2NyaW1pbmF0ZWQgYnkgdGhlaXIgc3RhdHVzLgoKQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBjb2RlIGdlbmVyYXRlZCBmcm9tIHRoZSBgcGV0c3RvcmUuanNvbmAgZXhhbXBsZToKCmBgYHRzCi8qKgogKiBGaW5kIHBldCBieSBJRAogKi8KZXhwb3J0IGZ1bmN0aW9uIGdldFBldEJ5SWQocGV0SWQ6IG51bWJlciwgb3B0cz86IE9hemFwZnRzLlJlcXVlc3RPcHRzKSB7CiAgcmV0dXJuIG9hemFwZnRzLmZldGNoSnNvbjwKICAgIHwgewogICAgICAgIHN0YXR1czogMjAwOwogICAgICAgIGRhdGE6IFBldDsKICAgICAgfQogICAgfCB7CiAgICAgICAgc3RhdHVzOiA0MDA7CiAgICAgICAgZGF0YTogc3RyaW5nOwogICAgICB9CiAgICB8IHsKICAgICAgICBzdGF0dXM6IDQwNDsKICAgICAgfQogID4oYC9wZXQvJHtlbmNvZGVVUklDb21wb25lbnQocGV0SWQpfWAsIHsKICAgIC4uLm9wdHMsCiAgfSk7Cn0KYGBgCgpJbiB0aGlzIGNhc2UsIHRoZSBgZGF0YWAgcHJvcGVydHkgaXMgdHlwZWQgYXMgYFBldHxzdHJpbmdgLiBXZSBjYW4gdXNlIGEgdHlwZSBndWFyZCB0byBuYXJyb3cgZG93biB0aGUgdHlwZSB0byBgUGV0YDoKCmBgYHRzCmNvbnN0IHJlcyA9IGF3YWl0IGFwaS5nZXRQZXRCeUlkKDEpOwppZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7CiAgY29uc3QgcGV0ID0gcmVzLmRhdGE7CiAgLy8gcGV0IGlzIHByb3Blcmx5IHR5cGVkIGFzIFBldAp9CmlmIChyZXMuc3RhdHVzID09PSA0MDQpIHsKICBjb25zdCBtZXNzYWdlID0gcmVzLmRhdGE7CiAgLy8gbWVzc2FnZSBpcyBhIHN0cmluZwp9IGVsc2UgewogIC8vIGhhbmRsZSB0aGUgZXJyb3IKfQpgYGAKClRoZSBhYm92ZSBjb2RlIGNhbiBiZSBzaW1wbGlmaWVkIGJ5IHVzaW5nIHRoZSBgaGFuZGxlYCBoZWxwZXI6CgpgYGB0cwppbXBvcnQgeyBoYW5kbGUgfSBmcm9tICJAb2F6YXBmdHMvcnVudGltZSI7Cgphd2FpdCBoYW5kbGUoYXBpLmdldFBldEJ5SWQoMSksIHsKICAyMDAocGV0KSB7CiAgICAvLyBwZXQgaXMgcHJvcGVybHkgdHlwZWQgYXMgUGV0CiAgfSwKICA0MDQobWVzc2FnZSkgewogICAgLy8gbWVzc2FnZSBpcyBhcyBzdHJpbmcKICB9LAp9KTsKYGBgCgpUaGUgaGVscGVyIHdpbGwgdGhyb3cgYW4gYEh0dHBFcnJvcmAgZXJyb3IgZm9yIGFueSB1bmhhbmRsZWQgc3RhdHVzIGNvZGUsIHVubGVzcyB5b3UgYWRkIGEgYGRlZmF1bHRgIGhhbmRsZXI6CgpgYGB0cwphd2FpdCBoYW5kbGUoYXBpLmdldFBldEJ5SWQoMSksIHsKICAyMDAocGV0KSB7CiAgICAvLyAuLi4KICB9LAogIGRlZmF1bHQoc3RhdHVzLCBkYXRhKSB7CiAgICAvLyBoYW5kbGUgZXJyb3IKICB9LAp9KTsKYGBgCgojIyBPcHRpbWlzdGljIG1vZGUKCllvdSBjYW4gb3B0IGludG8gdGhlIF9vcHRpbWlzdGljIG1vZGVfIGJ5IHVzaW5nIHRoZSBgLS1vcHRpbWlzdGljYCBjb21tYW5kIGxpbmUgYXJndW1lbnQuCgpJbiB0aGlzIG1vZGUsIGVhY2ggZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBQcm9taXNlIGZvciB0aGUgaGFwcHkgcGF0aCwgaS5lLiB0aGUgdHlwZSBzcGVjaWZpZWQgZm9yIHRoZSBmaXJzdCBgMnh4YCByZXNwb25zZS4KCkxvb2tpbmcgYmFjayBhdCBvdXIgUGV0IFN0b3JlIGV4YW1wbGUgZnJvbSBhYm92ZSwgY29uc3VtaW5nIHRoZSByZXNwb25zZSBpcyBub3cgbXVjaCBlYXNpZXIgYW5kIGxlc3MgdmVyYm9zZToKCmBgYHRzCmNvbnN0IHBldCA9IGF3YWl0IGFwaS5nZXRQZXRCeUlkKDEpOwovLyBwZXQgaXMgbm93IHR5cGVkIGFzIFBldCEKYGBgCgpJbiBjYXNlIG9mIGEgcmVzcG9uc2Ugb3RoZXIgdGhhbiBgMjAwYCB0aGUgcHJvbWlzZSB3aWxsIGJlIHJlamVjdGVkIHdpdGggYSBgSHR0cEVycm9yYC4KCiMjIE1peGluZyBib3RoIG1vZGVzCgpTb21ldGltZXMgeW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoZSBvcHRpbWlzdGljIG1vZGUgZm9yIHNvbWUgb2YgeW91ciBBUEkgY2FsbHMsIGJ1dCBuZWVkIHRoZSBmdWxsIGBBcGlSZXNwb25zZWAgZm9yIG90aGVycy4KCkluIHRoYXQgY2FzZSwgeW91IGNhbiB1c2UgdGhlIGBva2AtaGVscGVyIGZ1bmN0aW9uIHRvIHNlbGVjdGl2ZWx5IGFwcGx5IG9wdGltaXN0aWMgcmVzcG9uc2UgaGFuZGxpbmc6CgpgYGB0cwppbXBvcnQgeyBvayB9IGZyb20gIkBvYXphcGZ0cy9ydW50aW1lIjsKCmNvbnN0IHBldCA9IGF3YWl0IG9rKGFwaS5nZXRQZXRCeUlkKDEpKTsKYGBgCgojIyBPdmVycmlkaW5nIHRoZSBkZWZhdWx0cwoKVGhlIGdlbmVyYXRlZCBmaWxlIGV4cG9ydHMgYSBgZGVmYXVsdHNgIGNvbnN0YW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGBiYXNlUGF0aGAsIHByb3ZpZGUgYSBjdXN0b20gYGZldGNoYCBpbXBsZW1lbnRhdGlvbiBvciB0byBzZW5kIGFkZGl0aW9uYWwgYGhlYWRlcnNgIHdpdGggZWFjaCByZXF1ZXN0LiBCYXNpY2FsbHksIHlvdSBjYW4gc2V0IGEgZGVmYXVsdCBmb3IgYW55IFtmZXRjaCBvcHRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9mZXRjaCNvcHRpb25zKSB5b3Ugd2FudC4KCmBgYHRzCmltcG9ydCAqIGFzIGFwaSBmcm9tICIuL2FwaS50cyI7CmltcG9ydCBub2RlRmV0Y2ggZnJvbSAibm9kZS1mZXRjaCI7CgovLyBPdmVycmlkZSB0aGUgc3BlYydzIGJhc2VQYXRoCmFwaS5kZWZhdWx0cy5iYXNlUGF0aCA9ICJodHRwczovL2V4YW1wbGUuY29tL2FwaSI7CgovLyBTZW5kIHRoaXMgaGVhZGVyIHdpdGggZWFjaCByZXF1ZXN0CmFwaS5kZWZhdWx0cy5oZWFkZXJzID0gewogIGFjY2Vzc190b2tlbjogInNlY3JldCIsCn07CgovLyBJbmNsdWRlIGNyZWRlbnRpYWxzIGluIENPUlMgcmVxdWVzdHMsIHRvbwphcGkuZGVmYXVsdHMuY3JlZGVudGlhbHMgPSAiaW5jbHVkZSI7CgovLyBVc2UgdGhpcyBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwgZmV0Y2gKYXBpLmRlZmF1bHRzLmZldGNoID0gbm9kZUZldGNoOwpgYGAKCiMjIEFsdGVybmF0aXZlcyBhbmQgaW50ZWdyYXRpb25zCgpJZiB0aGlzIGxpYnJhcnkgZG9lc24ndCBmaXQgeW91ciBuZWVkcywgdGFrZSBhIGxvb2sgYXQgW29wZW5hcGktdHlwZXNjcmlwdC1jb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vZmVyZGlrb29tZW4vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGVnZW4pIHdoaWNoIGZvbGxvd3MgYSBzaW1pbGFyIHBoaWxvc29waHkgYnV0IGNyZWF0ZXMgbWFueSBpbmRpdmlkdWFsIGZpbGVzIGluc3RlYWQgb2Ygb25lIHNpbmdsZSBzZWxmLWNvbnRhaW5lZCBmaWxlLgoKSWYgeW91ciBmcm9udGVuZCB1c2VzIFJlYWN0LCB0YWtlIGEgbG9vayBhdCBbcmVhY3QtYXBpLXF1ZXJ5XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9yZWFjdC1hcGktcXVlcnkpIHdoaWNoIG1ha2VzIGl0IGVhc3kgdG8gdXNlIGFuIG9hemFwZnRzIGNsaWVudCB3aXRoIFJlYWN0IGhvb2tzIGluIGEgY29udmVuaWVudCBhbmQgdHlwZS1zYWZlIHdheS4KCiMjIEFib3V0IHRoZSBuYW1lCgpUaGUgbmFtZSBjb21lcyBmcm9tIGEgY29tYmluYXRpb24gb2Ygc3lsbGFibGVzICoqb2EqKiAoT3BlbkFQSSkgYW5kICoqdHMqKiAoVHlwZVNjcmlwdCkgYW5kIGlzIFtwcm9ub3VuY2VkIPCfl6NdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Y2h2Yi1LOTVyQkUpIGxpa2UgdGhlIEJhdmFyaWFuIF9PJ3phcHQnaXMhXyAoaXQncyB0YXBwZWQpLCB0aGUgZmFtb3VzIHdvcmRzIHRoYXQgbWFyayB0aGUgYmVnaW5uaW5nIG9mIHRoZSBPa3RvYmVyZmVzdC4KCiMgTGljZW5zZQoKTUlUCg== readmeEtag: '"7f4f55194f998ee908b339aaf3afa25c8fbe0e3b"' readmeLastModified: Tue, 30 Apr 2024 08:11:14 GMT repositoryId: 182983428 description: Generate TypeScript clients to tap into OpenAPI servers created: '2019-04-23T09:40:41Z' updated: '2024-09-05T07:50:30Z' language: TypeScript archived: false stars: 493 watchers: 7 forks: 78 owner: oazapfts logo: https://avatars.githubusercontent.com/u/119607625?v=4 repoEtag: '"0231cf5ce85ca8e82345ec34409efdf17fc84337484daffdfda5f600ce57750e"' repoLastModified: Thu, 05 Sep 2024 07:50:30 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/cellular/oazapfts - source: openapi3 tags repository: https://github.com/fabien0102/openapi-codegen v3: true id: 949c5e572da015484f84ceadd84e19ef repositoryMetadata: base64Readme: >- PGJyPgo8YnI+Cjxicj4KPGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTZweCI+CiAgPGltZyBzcmM9Im9wZW5hcGktY29kZWdlbi1sb2dvLnN2ZyIgd2lkdGg9IjQwMHB4IiAvPgo8L2Rpdj4KPGJyPgo8YnI+CgogIDxkaXYgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ab3BlbmFwaS1jb2RlZ2VuL2NsaSI+CiAgICAgIDxpbWcgYWx0PSJucG0iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9Ab3BlbmFwaS1jb2RlZ2VuL2NsaS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSI+CiAgICA8L2E+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFiaWVuMDEwMi9vcGVuYXBpLWNvZGVnZW4vYmxvYi9tYWluL0xJQ0VOQ0UubWQiPgogICAgICA8aW1nIGFsdD0iUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9sL0BvcGVuYXBpLWNvZGVnZW4vY2xpLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlIj4KICAgIDwvYT4KPGJyPgo8YnI+CiAgICBUb29saW5nIHRvIGdpdmUgeW91IGZ1bGwgdHlwZS1zYWZldHkgYXJvdW5kIE9wZW5BUEkgc3BlY3MuCiAgCiAgPC9kaXY+Cgo8YnI+CgojIyMgWW91IGNhbiBnZW5lcmF0ZQoKLSBUeXBlU2NyaXB0IHR5cGVzCi0gVHlwZS1zYWZlIEdlbmVyaWMgRmV0Y2hlcnMKLSBUeXBlLXNhZmUgUmVhY3QgUXVlcnkgaG9va3MgKGh0dHBzOi8vZ2l0aHViLmNvbS90YW5zdGFjay9xdWVyeSkKCiMjIEdldHRpbmcgc3RhcnRlZAoKMS4gKipJbml0aWFsaXplIHRoZSBnZW5lcmF0b3IqKgoKICAgYGBgYmFzaAogICAkIG5weCBAb3BlbmFwaS1jb2RlZ2VuL2NsaSBpbml0CiAgIGBgYAogICAKICAgPGltZyBzdHlsZT0ibWF4LXdpZHRoOiA0MDBweCIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8yNzE5MTIvMTk0MDAwNjc5LTVhNDUwMWI4LTVmYzAtNDMwYy05MjE3LTAyOGJmOTFhNWRjZC5naWYiPgoKICAgSWYgeW91IHdpc2ggdG8gY2hhbmdlIGFueSBvZiB0aGUgc2VsZWN0aW9ucyBtYWRlLCB5b3UgY2FuIGRvIHNvIGluIHRoZSBnZW5lcmF0ZWQgYG9wZW5hcGktY29kZWdlbi5jb25maWcudHNgIGZpbGUgbGF0ZXIuLgoKMi4gKipTdGFydCBHZW5lcmF0aW9uKioKCiAgIGBgYGJhc2gKICAgJCBucHggb3BlbmFwaS1jb2RlZ2VuIGdlbiB7bmFtZXNwYWNlfQogICBgYGAKICAgQWZ0ZXIgdGhlIGNvZGUgZ2VuZXJhdGlvbiBpcyBkb25lLCB5b3Ugd2lsbCBub3RpY2UgdGhlIGZvbGxvd2luZyBmaWxlczoKCiAgIC0gYHtuYW1lc3BhY2V9RmV0Y2hlci50c2AgLSBkZWZpbmVzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIG1ha2UgcmVxdWVzdHMgdG8geW91ciBBUEkuCiAgIC0gYHtuYW1lc3BhY2V9Q29udGV4dC50c3hgIC0gdGhlIGNvbnRleHQgdGhhdCBwcm92aWRlcyBge25hbWVzcGFjZX1GZXRjaGVyYCB0byBvdGhlciBjb21wb25lbnRzLgogICAtIGB7bmFtZXNwYWNlfUNvbXBvbmVudHMudHN4YCAtIGdlbmVyYXRlZCBSZWFjdCBRdWVyeSBjb21wb25lbnRzIChpZiB5b3Ugc2VsZWN0ZWQgUmVhY3QgUXVlcnkgYXMgcGFydCBvZiBpbml0aWFsaXphdGlvbikuCiAgIC0gYHtuYW1lc3BhY2V9U2NoZW1hcy50c2AgLSB0aGUgZ2VuZXJhdGVkIFR5cGVzY3JpcHQgdHlwZXMgZnJvbSB0aGUgcHJvdmlkZWQgT3BlbiBBUEkgc2NoZW1hcy4KCiAgICZuYnNwOwoKICAgPiAqKldhcm5pbmcqKgogICA+IAogICA+IElmIGB7bmFtZXNwYWNlfUZldGNoZXIudHNgIG9yIGB7bmFtZXNwYWNlfUNvbnRleHQudHN4YCBhbHJlYWR5IGV4aXN0IGluIHRoZSBvdXRwdXQgZm9sZGVyLCB0aGV5IHdpbGwgbm90IGJlIHJlcGxhY2VkLiBIb3dldmVyLCBge25hbWVzcGFjZX1Db21wb25lbnRzLnRzeGAgYW5kIGB7bmFtZXNwYWNlfVNjaGVtYXMudHNgIHdpbGwgYmUgcmUtZ2VuZXJhdGVkIGVhY2ggdGltZSBiYXNlZCBvbiB0aGUgT3BlbiBBUEkgc3BlYyBmaWxlIHByb3ZpZGVkLgoKMy4gKipDb25maWd1cmUgdGhlIEZldGNoZXIqKiAob3B0aW9uYWwpCgogICBBZnRlciB0aGUgZmlyc3Qgc3RlcCB5b3Ugc2hvdWxkIHNlZSBhIGZpbGUgY2FsbGVkIGB7bmFtZXNwYWNlfUZldGNoZXIudHNgIGluIHlvdXIgb3VwdXQgZGlyZWN0b3J5LiBUaGlzIGZpbGUKCiAgIEJ5IGRlZmF1bHQgaXQgdXNlcyB0aGUgYnVpbHQtaW4gRmV0Y2ggQVBJLCB5b3UgYXJlIGZyZWUgdG8gY2hhbmdlIHRoaXMgdG8geW91ciBmZXRjaGluZyBsaWJyYXJ5IG9mIGNob2ljZSAoQXhpb3MsIEdvdCBldGMuKQoKICAgSWYgeW91ciBPcGVuIEFQSSBzcGVjIGNvbnRhaW5zIGEgY29uZmlndXJlZCBzZXJ2ZXIsIHRoZW4gdGhlIGJhc2UgVVJMIGZvciBhbGwgcmVxdWVzdHMgd2lsbCBkZWZhdWx0IHRvIHRoYXQgc2VydmVyJ3MgVVJMLiBJZiBubyBzdWNoIGNvbmZpZ3VyYXRpb24gZXhpc3RzLCB5b3UnbGwgbmVlZCB0byBzcGVjaWZ5IHRoZSBiYXNlIFVSTCB2YWx1ZS4KCjQuICoqSW5zdGFsbCBhbmQgQ29uZmlndXJlIFJlYWN0IFF1ZXJ5KiogKG9wdGlvbmFsKQoKICAgSWYgZHVyaW5nIGdlbmVyYXRvciBzZXR1cCB5b3UgcGlja2VkIGA+IFJlYWN0IFF1ZXJ5IGNvbXBvbmVudHNgLCB0aGVuIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCBhbmQgY29uZmlndXJlIFJlYWN0IFF1ZXJ5IGluIG9yZGVyIGZvciB0aGUgZ2VuZXJhdGVkIFJlYWN0IGhvb2tzIHRvIHdvcmsgcHJvcGVybHk6CgogICAtIEluc3RhbGwgdGhlIGxpYnJhcnkKICAgICBgYGBiYXNoCiAgICAgbnBtIGkgQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5CiAgICAgYGBgCiAgIC0gV2lyZSB1cCB0aGUgYFF1ZXJ5Q2xpZW50YCBhcyBkZXNjcmliZWQgW2hlcmVdKGh0dHBzOi8vdGFuc3RhY2suY29tL3F1ZXJ5L3Y0L2RvY3MvYWRhcHRlcnMvcmVhY3QtcXVlcnkpLgoKIyMgUGhpbG9zb3BoeQoKSW4gc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGNvbW11bmljYXRpb24gYmV0d2VlbiBjb21wb25lbnRzIGFuZCBkb2N1bWVudGF0aW9uIGFyb3VuZCBpdCBpcyBvZnRlbiBubyBmdW4uCgpHcmFwaFFMIGRpZCByZXNvbHZlIHRoaXMgYnkgbWFraW5nIGRvY3VtZW50YXRpb24gYSBwYXJ0IG9mIHRoZSB0b29saW5nIChpbnRyb3NwZWN0aW9uKSwgc2FkbHkgdGhpcyBpcyBvZnRlbiBoYXJkZXIgd2l0aCBSRVNUIEFQSXMuIE9wZW5BUEkgY2FuIGJlIGFuIGFtYXppbmcgdG9vbCwgaWYsIGFuZCBvbmx5IGlmIHRoZSBkb2N1bWVudGF0aW9uIChzcGVjKSBhbmQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBhcmUgYWxpZ25lZCEKCiMjIyBCYWNrZW5kIHNpZGUKClRoZXJlIGFyZSB0d28gZGlmZmVyZW50IGFwcHJvYWNoZXM6CgoxLiBUaGUgT3BlbkFQSSBzcGVjIGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBjb2RlICgqKmNvZGUgZmlyc3QqKikKMi4gVGhlIGNvZGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhlIE9wZW5BUEkgc3BlYyAoKipzcGVjIGZpcnN0KiopCgpJbiBlaXRoZXIgY2FzZSwgdGhlcmUgbmVlZHMgdG8gYmUgYW4gaW50ZWdyYXRpb24gd2l0aCB0aGUgdHlwZSBzeXN0ZW0gb2YgdGhlIGxhbmd1YWdlLCBzbyBldmVyeXRoaW5nIGlzIGNvbm5lY3RlZCwgYW5kIGFzIHdlIHJlbW92ZSBvciB1cGRhdGUgc29tZXRoaW5nIHRoYXQgaW1wYWN0cyB0aGUgZmluYWwgcmVzcG9uc2UsIHRoaXMgaXMgKiphdXRvbWF0aWNhbGx5KiogcmVmbGVjdGVkIQoKVGhpcyBsaWJyYXJ5IGhhcyBjaG9zZW4gdGhlIHNlY29uZCBhcHByb2FjaCwgKipzcGVjIGZpcnN0KiouIEJ5IGRvaW5nIHNvLCB5b3VyIGRvY3VtZW50YXRpb24gaXMgbm90IHlvdXIgZmluYWwgKGJvcmluZykgdGFzayBvbiB0aGUgbGlzdCwgYnV0IHRoZSBmaXJzdCBhbmQgZXhjaXRpbmcgb25lIHdoZW4gYWRkaW5nIG5ldyBmdW5jdGlvbmFsaXR5ISBJbmRlZWQsIHlvdSBjYW7igJl0IHN0YXJ0IGNvZGluZyB3aXRob3V0IGdlbmVyYXRpbmcgeW91ciB0eXBlcyAobW9kZWxzICYgY29udHJvbGxlcnMpIGZyb20gdGhlIHNwZWNzLgoKVGhpcyBoYXMgbXVsdGlwbGUgYmVuZWZpdHM6CgotIFlvdSBjYW4gdGFrZSB5b3VyIHRpbWUgdG8gdGhpbmsgYWJvdXQgeW91ciBBUEkgYmVmb3JlIHdyaXRpbmcgYW55IGNvZGUhCi0gWW91IGNhbiBkaXNjdXNzIHRoZSBBUEkgd2l0aCB5b3VyIHRlYW0gKGFuZCBkaXNjb3ZlciBBUEkgZGVzaWduIHByb2JsZW1zIGVhcmxpZXIpCi0gWW91IGNhbiBnZW5lcmF0ZSBhbGwgeW91ciB2YWxpZGF0aW9uIHJ1bGVzCgpGb3IgZXhhbXBsZSwgaWYgeW91IGFkZCB0aGlzIG9iamVjdCB0byB5b3VyIHNjaGVtYToKCmBgYHlhbWwKU2lnblVwSW5wdXQ6CiAgdHlwZTogb2JqZWN0CiAgcHJvcGVydGllczoKICAgIGVtYWlsOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgZm9ybWF0OiBlbWFpbAogICAgICBtYXhMZW5ndGg6IDI1NQogICAgcGFzc3dvcmQ6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBtYXhMZW5ndGg6IDI1NQogICAgZmlyc3ROYW1lOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgcGF0dGVybjogXlswLTlhLXpBLVpdKiQKICAgICAgbWF4TGVuZ3RoOiAyNTUKICAgIGxhc3ROYW1lOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgcGF0dGVybjogXlswLTlhLXpBLVpdKiQKICAgICAgbWF4TGVuZ3RoOiAyNTUKICByZXF1aXJlZDoKICAgIC0gZW1haWwKICAgIC0gcGFzc3dvcmQKICAgIC0gZmlyc3ROYW1lCiAgICAtIGxhc3ROYW1lCmBgYAoKT3BlbkFQSSBDb2RlZ2VuIHdpbGwgYmUgYWJsZSB0byBnZW5lcmF0ZSBhbGwgdGhlIHJlbGV2YW50IHZhbGlkYXRpb24gKG9yIGF0IGxlYXN0IGdpdmUgeW91IHRoZSBjaG9pY2UgdG8gZG8gaXQpLgoKPiAqKk5vdGUqKgo+IFlvdSBjYW4gYWxzbyBhdHRhY2ggYW55IGN1c3RvbSBsb2dpYyBieSB1c2luZyB0aGUgYHgtKmAgdGFnLCB0aGUgcG9zc2liaWxpdGllcyBhcmUgZW5kbGVzcyEKCiMjIyBGcm9udGVuZCBzaWRlCgpIYXZpbmcgdG8gcmV2ZXJzZSBlbmdpbmVlciBhIGJhY2tlbmQgcmVzcG9uc2UgaXMgdGhlIGxlYXN0IHByb2R1Y3RpdmUvZnVuIHRhc2sgZXZlciEgSG93ZXZlciwgZ2l2ZW4gYSBuaWNlIE9wZW5BUEkgc3BlY3MsIHdlIGNhbiBhY3R1YWxseSBnZW5lcmF0ZSBuaWNlbHkgdHlwZWQgY29kZSBmb3IgeW91IHRoYXQgbGV0cyB5b3UgaW50ZXJhY3Qgd2l0aCB5b3VyIEFQSSBpbiBhIHNhZmUgbWFubmVyLgoKVGFraW5nIFJlYWN0IGFzIGV4YW1wbGUsIGNhbGxpbmcgYW4gQVBJIGNhbiBiZSBhcyBzaW1wbGUgYXMgdGhpczogXyh0aGlzIGhvb2tzIGFyZSB1c2luZyAqKlRhbnN0YWNrIFF1ZXJ5KiogdW5kZXIgdGhlIGhvb2QpXwoKYGBgdHN4CmltcG9ydCB7IHVzZUxpc3RQZXRzIH0gZnJvbSAiLi9wZXRTdG9yZS9wZXRTdG9yZUNvbXBvbmVudHMiOyAvLyA8LSBvdXRwdXQgZnJvbSBvcGVuYXBpLWNvZGVnZW4KCmNvbnN0IEV4YW1wbGUgPSAoKSA9PiB7CiAgY29uc3QgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9ID0gdXNlTGlzdFBldHMoKTsKCiAgLy8gYGRhdGFgIGlzIGZ1bGx5IHR5cGVkIGFuZCBoYXZlIGFsbCBkb2N1bWVudGF0aW9uIGZyb20gT3BlbkFQSQp9OwpgYGAKCj4gKipOb3RlKioKPiBZb3UgY2FuIGFsc28gY2hlY2sgdGhpcyBibG9nIHBvc3QgYWJvdXQgdXNpbmcgZ2VuZXJhdGVkIGhvb2tzIGluIFJlYWN0IGh0dHBzOi8veGF0YS5pby9ibG9nL29wZW5hcGktdHlwZXNhZmUtcmVhY3QtcXVlcnktaG9va3MKCkFuZCBzaW5jZSB0aGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBzcGVjcywgZXZlcnl0aGluZyBpcyBzYWZlIGF0IGJ1aWxkIHRpbWUhCgo+ICoqTm90ZSoqCj4gSWYgeW91IGNhbuKAmXQgdHJ1c3QgeW91ciBiYWNrZW5kLCBzb21lIHJ1bnRpbWUgdmFsaWRhdGlvbiBjYW4gYmUgdXNlZnVsIHRvIGF2b2lkIHN1cnByaXNlcyBpbiBwcm9kdWN0aW9uIPCfmIUKCiMjIENvbmZpZ3VyYXRpb24KClRoZSBvbmx5IHRoaW5nIHlvdSBuZWVkIHRvIG1hbmFnZSBpcyB0aGUgY29uZmlndXJhdGlvbi4KRXZlcnl0aGluZyBpcyB0eXBlZCBhbmQgc2VsZi1kb2N1bWVudGVkLCBidXQganVzdCBpbiBjYXNlLCB5b3UgY2FuIGZpbmQgaGVyZSBleGFtcGxlIGNvbmZpZ3VyYXRpb24gYmVsb3c6CgoKIyMjIEV4YW1wbGUgQ29uZmlnCmBgYHRzCi8vIG9wZW5hcGktY29kZWdlbi5jb25maWcudHMKaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAiQG9wZW5hcGktY29kZWdlbi9jbGkiOwppbXBvcnQgewogIGdlbmVyYXRlU2NoZW1hVHlwZXMsCiAgZ2VuZXJhdGVSZWFjdFF1ZXJ5Q29tcG9uZW50cywKICAvKiBnZW5lcmF0ZUV4cHJlc3NDb250cm9sbGVycywgKi8KICAvKiBnZW5lcmF0ZVJlc3RmdWxSZWFjdENvbXBvbmVudHMsICovCiAgLyogLi4uICovCn0gZnJvbSAiQG9wZW5hcGktY29kZWdlbi90eXBlc2NyaXB0IjsKCmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7CiAgZXhhbXBsZTogewogICAgLy8gY2FuIGJlIG92ZXJyaWRkZW4gZnJvbSBjbGkKICAgIGZyb206IHsKICAgICAgc291cmNlOiAiZ2l0aHViIiwKICAgICAgb3duZXI6ICJmYWJpZW4wMTAyIiwKICAgICAgcmVwb3NpdG9yeTogIm9wZW5hcGktY29kZWdlbiIsCiAgICAgIHJlZjogIm1haW4iLAogICAgICBzcGVjUGF0aDogImV4YW1wbGVzL3NwZWMueWFtbCIsCiAgICB9LAoKICAgIC8vIGNhbiBiZSBvdmVycmlkZGVuIGZyb20gY2xpCiAgICBvdXRwdXREaXI6ICJzcmMvcXVlcmllcyIsCgogICAgdG86IGFzeW5jIChjb250ZXh0KSA9PiB7CiAgICAgIC8vIFlvdSBjYW4gdHJhbnNmb3JtIHRoZSBgY29udGV4dC5vcGVuQVBJRG9jdW1lbnRgIGhlcmUsIGNhbiBiZSB1c2VmdWwgdG8gcmVtb3ZlIGludGVybmFsIHJvdXRlcyBvciBmaXhpbmcgc29tZSBrbm93biBpc3N1ZXMgaW4gdGhlIHNwZWNzIDspCgogICAgICAvLyBHZW5lcmF0ZSBhbGwgdGhlIHNjaGVtYXMgdHlwZXMgKGNvbXBvbmVudHMgJiByZXNwb25zZXMpCiAgICAgIGNvbnN0IHsgc2NoZW1hc0ZpbGVzIH0gPSBhd2FpdCBnZW5lcmF0ZVNjaGVtYVR5cGVzKGNvbnRleHQsIHsKICAgICAgICAvKiBjb25maWcgKi8KICAgICAgfSk7CgogICAgICAvLyBHZW5lcmF0ZSBhbGwgcmVhY3QtcXVlcnkgY29tcG9uZW50cwogICAgICBhd2FpdCBnZW5lcmF0ZVJlYWN0UXVlcnlDb21wb25lbnRzKGNvbnRleHQsIHsKICAgICAgICAvKiBjb25maWcqLwogICAgICAgIHNjaGVtYXNGaWxlcywKICAgICAgfSk7CiAgICB9LAogIH0sCn0pOwpgYGAKCiMjIyBQbHVnaW5zCnRoZSBgQG9wZW5hcGktY29kZWdlbi9jbGlgIHN1cHBvcnRzIHRoZXNlIGdlbmVyYXRvciBwbHVnaW5zOgojIyMjICoqZ2VuZXJhdGVTY2hlbWFUeXBlcyoqIChmcm9udGVuZC9iYWNrZW5kKQogIGdlbmVyYXRlIGFsbCBzY2hlbWEgdHlwZXMgZm9yIHlvdXIgc3BlY2lmaWNhdGlvbjoKICBgYGB0cwogICBjb25zdCB7IHNjaGVtYXNGaWxlcyB9ID0gYXdhaXQgZ2VuZXJhdGVTY2hlbWFUeXBlcyhjb250ZXh0LCB7CiAgICAgICAgLyogY29uZmlnICovCiAgICAgIH0pOwogIGBgYApvdXRwdXQ6IGB7bmFtZXNwYWNlfVNjaGVtYXMudHNgCgojIyMjICoqZ2VuZXJhdGVGZXRjaGVycyoqIChmcm9udGVuZCkKICBnZW5lcmF0ZSBhbGwgZmV0Y2hlcnMgd2l0aCB0eXBlcyBmb3IgeW91ciBzcGVjaWZpY2F0aW9uICpuZWVkcyBzY2hlbWFmaWxlcyoKICBgYGB0cwogICAgIGF3YWl0IGdlbmVyYXRlRmV0Y2hlcnMoY29udGV4dCwgewogICAgICAgIC8qIGNvbmZpZyAqLwogICAgICAgIHNjaGVtYXNGaWxlcywKICAgICAgfSk7CiAgYGBgCm91dHB1dDogYHtuYW1lc3BhY2V9RmV0Y2hlcnMudHNgCgojIyMjICoqZ2VuZXJhdGVSZWFjdFF1ZXJ5Q29tcG9uZW50cyoqIChmcm9udGVuZCkKICBnZW5lcmF0ZSBhbGwgUmVhY3QgUXVlcnkgQ29tcG9uZW50cyBmb3IgdXNlUXVlcnkoKSBhbmQgdXNlTXV0YXRpb24oKQogIGBgYHRzCiAgICAgIGF3YWl0IGdlbmVyYXRlUmVhY3RRdWVyeUNvbXBvbmVudHMoY29udGV4dCwgewogICAgICAgIC8qIGNvbmZpZyovCiAgICAgICAgc2NoZW1hc0ZpbGVzLAogICAgICB9KTsKICBgYGAKICBvdXRwdXQ6IGB7bmFtZXNwYWNlfUNvbXBvbmVudHMudHNgCiMjIyMgKipnZW5lcmF0ZVJlYWN0UXVlcnlGdW5jdGlvbnMqKiAoZnJvbnRlbmQpCiAgZ2VuZXJhdGUgYWxsIFJlYWN0IFF1ZXJ5IEZ1bmN0aW9ucyB1c2VkIGZvciBlLmcuIFJlYWN0LVJvdXRlciA2LjYuMCsgbG9hZGVyIGZ1bmN0aW9ucwogIGBgYHRzCiAgICAgYXdhaXQgZ2VuZXJhdGVSZWFjdFF1ZXJ5RnVuY3Rpb25zKGNvbnRleHQsIHsKICAgICAgICBmaWxlbmFtZVByZWZpeCwKICAgICAgICBzY2hlbWFzRmlsZXMsCiAgICAgIH0pOwogIGBgYAogIG91dHB1dDogYHtuYW1lc3BhY2V9RnVuY3Rpb25zLnRzYAoKICBleGFtcGxlIHVzYWdlIGluIHJlYWN0LXJvdXRlLWxvYWRlcjoKICBgYGB0cwogIGV4cG9ydCBjb25zdCByb3V0ZUxvYWRlciA9IChxdWVyeUNsaWVudDogUXVlcnlDbGllbnQpID0+CiAgICBhc3luYyAoeyBwYXJhbXMgfTogTXlQYXJhbXMpID0+IAogICAgICBhd2FpdCBxdWVyeUNsaWVudC5mZXRjaFF1ZXJ5KC4uLmdldFlvdXJRdWVyeU5hbWVRdWVyeSh7fSksIHsKICAgICAgICAvKm9wdGlvbnMqLwogICAgICB9KQogIGBgYAogICptb3JlIGluZm9zOiBodHRwczovL3JlYWN0cm91dGVyLmNvbS9lbi9tYWluL2d1aWRlcy9kYXRhLWxpYnMqCgoKWW91IGNhbiBpbXBvcnQgYW55IGdlbmVyYXRvciBpbnRvIHRoZSBgdG9gIHNlY3Rpb24sIHRob3NlIGNhbiBiZSB0aGUgb25lcyBwcm92aWRlZCBieSB0aGlzIHByb2plY3Qgb3IgeW91ciBvd24gY3VzdG9tIG9uZXMuIFlvdSBoYXZlIGZ1bGwgY29udHJvbCBvZiB3aGF0IHlvdSBhcmUgZ2VuZXJhdGluZyEKCkhhdmUgZnVuIQoKIyMgQ29udHJpYnV0b3JzIOKcqAoKVGhhbmtzIGdvZXMgdG8gdGhlc2Ugd29uZGVyZnVsIHBlb3BsZSAoW2Vtb2ppIGtleV0oaHR0cHM6Ly9hbGxjb250cmlidXRvcnMub3JnL2RvY3MvZW4vZW1vamkta2V5KSk6Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cjx0YWJsZT4KICA8dHI+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9mYWJpZW4wMTAyLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTc2MTQ2OT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5GYWJpZW4gQkVSTkFSRDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ZhYmllbjAxMDIvb3BlbmFwaS1jb2RlZ2VuL2NvbW1pdHM/YXV0aG9yPWZhYmllbjAxMDIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZGVzaWduLWZhYmllbjAxMDIiIHRpdGxlPSJEZXNpZ24iPvCfjqg8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYWJpZW4wMTAyL29wZW5hcGktY29kZWdlbi9jb21taXRzP2F1dGhvcj1mYWJpZW4wMTAyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iI2lkZWFzLWZhYmllbjAxMDIiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9IiNwcm9qZWN0TWFuYWdlbWVudC1mYWJpZW4wMTAyIiB0aXRsZT0iUHJvamVjdCBNYW5hZ2VtZW50Ij7wn5OGPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFiaWVuMDEwMi9vcGVuYXBpLWNvZGVnZW4vcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBZmFiaWVuMDEwMiIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbXBvdG9taW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjM5NDA2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPm1wb3RvbWluPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFiaWVuMDEwMi9vcGVuYXBpLWNvZGVnZW4vY29tbWl0cz9hdXRob3I9bXBvdG9taW4iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjaWRlYXMtbXBvdG9taW4iIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYWJpZW4wMTAyL29wZW5hcGktY29kZWdlbi9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FtcG90b21pbiIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljaGEtZiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMDA2NDc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+TWljaGFlbCBGcmFuemtvd2lhazwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ZhYmllbjAxMDIvb3BlbmFwaS1jb2RlZ2VuL2NvbW1pdHM/YXV0aG9yPW1pY2hhLWYiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1NmZXJhRGV2Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIxODE4NjY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+QWxleGlzIFJpY288L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYWJpZW4wMTAyL29wZW5hcGktY29kZWdlbi9jb21taXRzP2F1dGhvcj1TZmVyYURldiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNpZGVhcy1TZmVyYURldiIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vbmVkLmltLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNzE5MTI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+TmVkaW0gQXJhYmFjxLE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNxdWVzdGlvbi1uZWVkaW0iIHRpdGxlPSJBbnN3ZXJpbmcgUXVlc3Rpb25zIj7wn5KsPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFiaWVuMDEwMi9vcGVuYXBpLWNvZGVnZW4vY29tbWl0cz9hdXRob3I9bmVlZGltIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2lkZWFzLW5lZWRpbSIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbnRvbmllbCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzIyNTM1OD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5BbnRvbmllbCBNYWdhbGjDo2VzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZXhhbXBsZS1hbnRvbmllbCIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFiaWVuMDEwMi9vcGVuYXBpLWNvZGVnZW4vaXNzdWVzP3E9YXV0aG9yJTNBYW50b25pZWwiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9EcmVpZXJGIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU2MzE4NjU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+RmxvcmlhbiBEcmVpZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYWJpZW4wMTAyL29wZW5hcGktY29kZWdlbi9jb21taXRzP2F1dGhvcj1EcmVpZXJGIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly9mYWJpYW5hbHRoYXVzLmRlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI3OTU1MzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+RmFiaWFuIEFsdGhhdXM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYWJpZW4wMTAyL29wZW5hcGktY29kZWdlbi9jb21taXRzP2F1dGhvcj1lbC1qIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaS12YW1wIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNjUxNjI3Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5jaS12YW1wPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFiaWVuMDEwMi9vcGVuYXBpLWNvZGVnZW4vaXNzdWVzP3E9YXV0aG9yJTNBY2ktdmFtcCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFiaWVuMDEwMi9vcGVuYXBpLWNvZGVnZW4vY29tbWl0cz9hdXRob3I9Y2ktdmFtcCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL29hbGFub2xpdiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MzY4NDgxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPkFsYW4gT2xpdmVpcmE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYWJpZW4wMTAyL29wZW5hcGktY29kZWdlbi9jb21taXRzP2F1dGhvcj1hbGFuLW9saXYiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lIQo= readmeEtag: '"31807bb81b0a58d67e2275036eaf72c2544be0ab"' readmeLastModified: Mon, 20 May 2024 10:45:40 GMT repositoryId: 417437020 description: A tool for generating code base on an OpenAPI schema. created: '2021-10-15T09:08:51Z' updated: '2024-08-31T15:42:44Z' language: TypeScript archived: false stars: 491 watchers: 6 forks: 61 owner: fabien0102 logo: https://avatars.githubusercontent.com/u/1761469?v=4 repoEtag: '"b7929a57cc2c88d5d1f72b32247cd594e75491ba4b336bb786f494d269fdc74a"' repoLastModified: Sat, 31 Aug 2024 15:42:44 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/muonsoft/openapi-mock v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIE1vY2sgU2VydmVyCgohW0NJXShodHRwczovL2dpdGh1Yi5jb20vbXVvbnNvZnQvb3BlbmFwaS1tb2NrL3dvcmtmbG93cy9DSS9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcikKIVtHaXRIdWIgcmVsZWFzZSAobGF0ZXN0IGJ5IGRhdGUpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3JlbGVhc2UvbXVvbnNvZnQvb3BlbmFwaS1tb2NrKQpbIVtTY3J1dGluaXplciBDb2RlIFF1YWxpdHldKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvbXVvbnNvZnQvb3BlbmFwaS1tb2NrL2JhZGdlcy9xdWFsaXR5LXNjb3JlLnBuZz9iPW1hc3RlcildKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvbXVvbnNvZnQvb3BlbmFwaS1tb2NrLz9icmFuY2g9bWFzdGVyKQpbIVtNYWludGFpbmFiaWxpdHldKGh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvMTU4ZGViMzQzNGE4NDkyNGRhZGUvbWFpbnRhaW5hYmlsaXR5KV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL211b25zb2Z0L29wZW5hcGktbW9jay9tYWludGFpbmFiaWxpdHkpClshW1Rlc3QgQ292ZXJhZ2VdKGh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvMTU4ZGViMzQzNGE4NDkyNGRhZGUvdGVzdF9jb3ZlcmFnZSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi9tdW9uc29mdC9vcGVuYXBpLW1vY2svdGVzdF9jb3ZlcmFnZSkKCk9wZW5BUEkgQVBJIG1vY2sgc2VydmVyIHdpdGggcmFuZG9tIGRhdGEgZ2VuZXJhdGlvbiBieSBzcGVjaWZpZWQgc2NoZW1hcy4KCiogT3BlbkFQSSAzLnggc3VwcG9ydC4KKiBMb2FkIHNwZWNpZmljYXRpb24gZnJvbSBhIGxvY2FsIGZpbGUgb3IgVVJMLgoqIEpTT04gYW5kIFlBTUwgZm9ybWF0IHN1cHBvcnRlZC4KKiBHZW5lcmF0ZXMgZmFrZSByZXNwb25zZSBkYXRhIGJ5IHByb3ZpZGVkIHNjaGVtYXMgb3IgYnkgZXhhbXBsZXMuCiogQ29udGVudCBuZWdvdGlhdGlvbiBieSBBY2NlcHQgaGVhZGVyLgoqIENhbiBiZSB1c2VkIGFzIHN0YW5kYWxvbmUgYXBwbGljYXRpb24gKExpbnV4IGFuZCBXaW5kb3dzKSBvciBjYW4gYmUgcnVuIHZpYSBEb2NrZXIgY29udGFpbmVyLgoKIyMgU3VwcG9ydGVkIGZlYXR1cmVzCgp8IEZlYXR1cmUgfCBTdXBwb3J0IHN0YXR1cyB8CnwgLS0tIHwgLS0tIHwKfCBnZW5lcmF0aW5nIHhtbCByZXNwb25zZSB8IGJhc2ljIHN1cHBvcnQgKFt3aXRob3V0IHhtbCB0YWdzXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL3JlcHJlc2VudGluZy14bWwvKSkgfAp8IGdlbmVyYXRpbmcganNvbiByZXNwb25zZSB8IHN1cHBvcnRlZCB8CnwgZ2VuZXJhdGlvbiBvZiBbYmFzaWMgdHlwZXNdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGF0YS1tb2RlbHMvZGF0YS10eXBlcy8pIHwgc3VwcG9ydGVkIHwKfCBnZW5lcmF0aW9uIG9mIFtlbnVtc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kYXRhLW1vZGVscy9lbnVtcy8pIHwgc3VwcG9ydGVkIHwKfCBnZW5lcmF0aW9uIG9mIFthc3NvY2lhdGl2ZSBhcnJheXNdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGF0YS1tb2RlbHMvZGljdGlvbmFyaWVzLykgfCBzdXBwb3J0ZWQgfAp8IGdlbmVyYXRpb24gb2YgW2NvbWJpbmVkIHR5cGVzXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL29uZW9mLWFueW9mLWFsbG9mLW5vdC8pIHwgc3VwcG9ydGVkICh3aXRob3V0IHRhZyBgbm90YCBhbmQgZGlzY3JpbWluYXRvcikgfAp8IGxvY2FsIHJlZmVyZW5jZSByZXNvbHZpbmcgfCBzdXBwb3J0ZWQgfAp8IHJlbW90ZSByZWZlcmVuY2UgcmVzb2x2aW5nIHwgbm90IHN1cHBvcnRlZCB8CnwgVVJMIHJlZmVyZW5jZSByZXNvbHZpbmcgfCBub3Qgc3VwcG9ydGVkIHwKfCB2YWxpZGF0aW5nIHJlcXVlc3QgZGF0YSB8IG5vdCBzdXBwb3J0ZWQgfAp8IGZvcmNlIHVzaW5nIGN1c3RvbSByZXNwb25zZSBzY2hlbWEgfCBub3Qgc3VwcG9ydGVkIChzY2hlbWEgZGV0ZWN0ZWQgYXV0b21hdGljYWxseSkgfAoKIyMgUXVpY2sgc3RhcnQKCkRvd25sb2FkIGxhdGVzdCBiaW5hcnkgYW5kIHJ1biBhIHNlcnZlci4KCmBgYGJhc2gKIyBydW5zIGEgbG9jYWwgc2VydmVyIG9uIHBvcnQgODA4MAouL29wZW5hcGktbW9jayBzZXJ2ZSAtLXNwZWNpZmljYXRpb24tdXJsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL21hc3Rlci9leGFtcGxlcy92My4wL3BldHN0b3JlLnlhbWwKCiMgdG8gdGVzdCB0aGF0IHRoZSBzZXJ2ZXIgc3VjY2Vzc2Z1bGx5IHJhbgpjdXJsICdodHRwOi8vbG9jYWxob3N0OjgwODAvdjEvcGV0cycKYGBgCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBbRG9ja2VyXShodHRwczovL3d3dy5kb2NrZXIuY29tLykgaW1hZ2UuCgpgYGBiYXNoCiMgZG93bmxvYWRzIGFuIGltYWdlCmRvY2tlciBwdWxsIG11b25zb2Z0L29wZW5hcGktbW9jawoKIyBydW5zIGEgZG9ja2VyIGNvbnRhaW5lciB3aXRoIGV4cG9ydGVkIHBvcnQgODA4MApkb2NrZXIgcnVuIC1wIDgwODA6ODA4MCAtZSAiT1BFTkFQSV9NT0NLX1NQRUNJRklDQVRJT05fVVJMPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL21hc3Rlci9leGFtcGxlcy92My4wL3BldHN0b3JlLnlhbWwiIC0tcm0gbXVvbnNvZnQvb3BlbmFwaS1tb2NrCgojIHRvIHRlc3QgdGhhdCB0aGUgc2VydmVyIHN1Y2Nlc3NmdWxseSByYW4KY3VybCAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL3YxL3BldHMnCmBgYAoKQWxzbywgeW91IGNhbiB1c2UgW0RvY2tlciBDb21wb3NlXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9jb21wb3NlLykuIEV4YW1wbGUgb2YgYGRvY2tlci1jb21wb3NlLnltbGAKCmBgYHlhbWwKdmVyc2lvbjogJzMuMCcKCnNlcnZpY2VzOgogIG9wZW5hcGlfbW9jazoKICAgIGNvbnRhaW5lcl9uYW1lOiBvcGVuYXBpX21vY2sKICAgIGltYWdlOiBtdW9uc29mdC9vcGVuYXBpLW1vY2sKICAgIGVudmlyb25tZW50OgogICAgICBPUEVOQVBJX01PQ0tfU1BFQ0lGSUNBVElPTl9VUkw6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9tYXN0ZXIvZXhhbXBsZXMvdjMuMC9wZXRzdG9yZS55YW1sJwogICAgcG9ydHM6CiAgICAgIC0gIjgwODA6ODA4MCIKYGBgCgpUbyBzdGFydCB1cCBhIGNvbnRhaW5lciBydW4gY29tbWFuZC4KCmBgYGJhc2gKZG9ja2VyLWNvbXBvc2UgdXAgLWQKYGBgCgpJZiB5b3Ugd2FudCB0byByZWZlcmVuY2UgYSBsb2NhbCBmaWxlIGluIGRvY2tlciBjb21wb3NlOgoKKiB5b3UgbXVzdCBmaXJzdCBtb3VudCB0aGUgaG9zdCBkaXIgaW50byBjb250YWluZXIgLSBgLi9vcGVuYXBpOi9ldGMvb3BlbmFwaWAKKiBvbmx5IHRoZW4gY2FuIHlvdSByZWZlcmVuY2UgaXQKCmBgYHlhbWwKdmVyc2lvbjogJzMuMCcKCnNlcnZpY2VzOgogIG9wZW5hcGlfbW9jazoKICAgIGNvbnRhaW5lcl9uYW1lOiBvcGVuYXBpX21vY2sKICAgIGltYWdlOiBtdW9uc29mdC9vcGVuYXBpLW1vY2sKICAgIHZvbHVtZXM6CiAgICAtIC4vb3BlbmFwaTovZXRjL29wZW5hcGkKICAgIGVudmlyb25tZW50OgogICAgICBPUEVOQVBJX01PQ0tfU1BFQ0lGSUNBVElPTl9VUkw6ICcvZXRjL29wZW5hcGkvcGV0c3RvcmUueWFtbCcKICAgIHBvcnRzOgogICAgICAtICI4MDgwOjgwODAiCmBgYAoKIyMgVXNhZ2UgZ3VpZGUKCiogW0NvbnNvbGUgY29tbWFuZHNdKGRvY3MvdXNhZ2VfZ3VpZGUubWQjY29uc29sZS1jb21tYW5kcykKKiBbU2V0dGluZyB1cCBhIGNvbmZpZ3VyYXRpb25dKGRvY3MvdXNhZ2VfZ3VpZGUubWQjc2V0dGluZy11cC1hLWNvbmZpZ3VyYXRpb24pCiogW0NvbmZpZ3VyYXRpb24gZmlsZSBleGFtcGxlXShkb2NzL3VzYWdlX2d1aWRlLm1kI2NvbmZpZ3VyYXRpb24tZmlsZS1leGFtcGxlKQoqIFtDb25maWd1cmF0aW9uIG9wdGlvbnNdKGRvY3MvdXNhZ2VfZ3VpZGUubWQjY29uZmlndXJhdGlvbi1vcHRpb25zKQoKIyMgTGljZW5zZQoKVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAtIHNlZSB0aGUgTElDRU5TRSBmaWxlIGZvciBkZXRhaWxzLgo= readmeEtag: '"324cd90728c76f314276a102e1cf83b89da5e3db"' readmeLastModified: Sat, 11 Mar 2023 09:19:53 GMT repositoryId: 145602302 description: OpenAPI mock server with random data generation created: '2018-08-21T18:16:27Z' updated: '2024-09-01T16:47:44Z' language: Go archived: false stars: 487 watchers: 9 forks: 55 owner: muonsoft logo: https://avatars.githubusercontent.com/u/32521718?v=4 license: MIT repoEtag: '"d38c1227b46d375a97c08e9bcc5f278d12f1226ab56e69b2713337e981a3e5c2"' repoLastModified: Sun, 01 Sep 2024 16:47:44 GMT foundInMaster: true category: - Description Validators - Parsers id: ca63af26f6da094f0ce57d398e968526 - source: openapi3 tags repository: https://github.com/stackql/stackql v3: true id: 9cde100cf19bd12ff9483aa23bed6a2d repositoryMetadata: base64Readme: >- PCEtLSB3ZWIgYXNzZXRzIC0tPgpbbG9nb106IGh0dHBzOi8vc3RhY2txbC5pby9pbWcvc3RhY2txbC1sb2dvLWJvbGQucG5nICJzdGFja3FsIGxvZ28iCltob21lcGFnZV06IGh0dHBzOi8vc3RhY2txbC5pby8KW2RvY3NdOiBodHRwczovL3N0YWNrcWwuaW8vZG9jcwpbYmxvZ106IGh0dHBzOi8vc3RhY2txbC5pby9ibG9nCltyZWdpc3RyeV06IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3FsL3N0YWNrcWwtcHJvdmlkZXItcmVnaXN0cnkKW3ZhcmlhYmxlc106IGh0dHBzOi8vc3RhY2txbC5pby9kb2NzL2dldHRpbmctc3RhcnRlZC92YXJpYWJsZXMKW21hY3BrZ106IGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9zdGFja3FsLXB1YmxpYy1yZWxlYXNlcy9sYXRlc3Qvc3RhY2txbF9kYXJ3aW5fbXVsdGlhcmNoLnBrZwpbd2lubXNpXTogaHR0cHM6Ly9yZWxlYXNlcy5zdGFja3FsLmlvL3N0YWNrcWwvbGF0ZXN0L3N0YWNrcWxfd2luZG93c19hbWQ2NC5tc2kKW3dpbnppcF06IGh0dHBzOi8vcmVsZWFzZXMuc3RhY2txbC5pby9zdGFja3FsL2xhdGVzdC9zdGFja3FsX3dpbmRvd3NfYW1kNjQuemlwClt0dXh6aXBdOiBodHRwczovL3JlbGVhc2VzLnN0YWNrcWwuaW8vc3RhY2txbC9sYXRlc3Qvc3RhY2txbF9saW51eF9hbWQ2NC56aXAKPCEtLSBkb2NrZXIgbGlua3MgLS0+Cltkb2NrZXJodWJdOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL3Uvc3RhY2txbApbZG9ja2Vyc3RhY2txbF06IGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9zdGFja3FsL3N0YWNrcWwKW2RvY2tlcmp1cHl0ZXJdOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivc3RhY2txbC9zdGFja3FsLWp1cHl0ZXItZGVtbwo8IS0tIGdpdGh1YiBhY3Rpb25zIGxpbmtzIC0tPgpbc2V0dXBhY3Rpb25dOiBodHRwczovL2dpdGh1Yi5jb20vbWFya2V0cGxhY2UvYWN0aW9ucy9zdGFja3FsLXN0dWRpb3Mtc2V0dXAtc3RhY2txbApbZXhlY2FjdGlvbl06IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrZXRwbGFjZS9hY3Rpb25zL3N0YWNrcWwtc3R1ZGlvcy1zdGFja3FsLWV4ZWMKPCEtLSBiYWRnZXMgLS0+CltiYWRnZTFdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3BsYXRmb3JtLXdpbmRvd3MlMjBtYWNvcyUyMGxpbnV4LWJyaWdodGdyZWVuICJQbGF0Zm9ybXMiCltiYWRnZTJdOiBodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsL3dvcmtmbG93cy9Hby9iYWRnZS5zdmcgIkdvIgpbYmFkZ2UzXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9zdGFja3FsL3N0YWNrcWwgIkxpY2Vuc2UiCltiYWRnZTRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3Rva2VpL2xpbmVzL2dpdGh1Yi9zdGFja3FsL3N0YWNrcWwgIkxpbmVzIiAgICAKPCEtLSBnaXRodWIgbGlua3MgLS0+Cltpc3N1ZXNdOiBodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsL2lzc3Vlcy9uZXc/YXNzaWduZWVzPSZsYWJlbHM9YnVnJnRlbXBsYXRlPWJ1Z19yZXBvcnQubWQmdGl0bGU9JTVCQlVHJTVECltmZWF0dXJlc106IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3FsL3N0YWNrcWwvaXNzdWVzL25ldz9hc3NpZ25lZXM9JmxhYmVscz1lbmhhbmNlbWVudCZ0ZW1wbGF0ZT1mZWF0dXJlX3JlcXVlc3QubWQmdGl0bGU9JTVCRkVBVFVSRSU1RApbZGV2ZWxvcGVyc106IC9kb2NzL2RldmVsb3Blcl9ndWlkZS5tZApbcmVnaXN0cnljb250XTogL2RvY3MvcmVnaXN0cnlfY29udHJpYnV0aW9uLm1kCltkZXNpZ25kb2NzXTogL2RvY3MvaGlnaC1sZXZlbC1kZXNpZ24ubWQKW2NvbnRyaWJ1dGluZ106IC9DT05UUklCVVRJTkcubWQKW2Rpc2N1c3Npb25zXTogaHR0cHM6Ly9naXRodWIuY29tL29yZ3Mvc3RhY2txbC9kaXNjdXNzaW9ucwo8IS0tIHJlcG8gYXNzZXRzIC0tPgpbZGFya21vZGV0ZXJtXTogL2RvY3MvaW1hZ2VzL3N0YWNrcWwtbGlnaHQtdGVybS5naWYjZ2gtZGFyay1tb2RlLW9ubHkKW2xpZ2h0bW9kZXRlcm1dOiAvZG9jcy9pbWFnZXMvc3RhY2txbC1kYXJrLXRlcm0uZ2lmI2doLWxpZ2h0LW1vZGUtb25seQo8IS0tIG1pc2MgbGlua3MgLS0+Clt0d2l0dGVyXTogaHR0cHM6Ly90d2l0dGVyLmNvbS9zdGFja3FsCgo8IS0tIGxhbmd1YWdlOiBsYW5nLW5vbmUgLS0+CjxkaXYgYWxpZ249ImNlbnRlciI+CgpbIVtsb2dvXV1baG9tZXBhZ2VdICAKIVtiYWRnZTFdCiFbYmFkZ2UyXQohW2JhZGdlM10KIVtiYWRnZTRdCgo8L2Rpdj4KCjxkaXYgYWxpZ249ImNlbnRlciI+CgohW2hvbWVicmV3IGRvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ob21lYnJldy9pbnN0YWxscy9keS9zdGFja3FsP2xhYmVsPWhvbWVicmV3JTIwZG93bmxvYWRzKQohW2hvbWVicmV3IHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vaG9tZWJyZXcvdi9zdGFja3FsP2xhYmVsPWhvbWVicmV3JTIwdmVyc2lvbikKIVtHaXRIdWIgRG93bmxvYWRzIChhbGwgYXNzZXRzLCBhbGwgcmVsZWFzZXMpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9kb3dubG9hZHMvc3RhY2txbC9zdGFja3FsL3RvdGFsP2xhYmVsPWdpdGh1YiUyMHJlbGVhc2UlMjBkb3dubG9hZHMpCiFbR2l0SHViIFJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS9zdGFja3FsL3N0YWNrcWw/bGFiZWw9Z2l0aHViJTIwcmVsZWFzZSkKIVtEb2NrZXIgUHVsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3B1bGxzL3N0YWNrcWwvc3RhY2txbCkKIVtEb2NrZXIgSW1hZ2UgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9zdGFja3FsL3N0YWNrcWw/bGFiZWw9ZG9ja2VyJTIwdmVyc2lvbikKIVtDaG9jb2xhdGV5IERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jaG9jb2xhdGV5L2R0L3N0YWNrcWw/bGFiZWw9Y2hvY29sYXRleSUyMGRvd25sb2FkcykKIVtDaG9jb2xhdGV5IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY2hvY29sYXRleS92L3N0YWNrcWwpCiFbUHlQSSAtIERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2RtL3N0YWNrcWwtZGVwbG95P2xhYmVsPXB5cGklMjBkb3dubG9hZHMpCgo8L2Rpdj4KPGRpdiBhbGlnbj0iY2VudGVyIj4KCiMjIyBEZXBsb3ksIG1hbmFnZSBhbmQgcXVlcnkgY2xvdWQgcmVzb3VyY2VzIGFuZCBpbnRlcmFjdCB3aXRoIEFQSXMgdXNpbmcgU1FMCjwhLS0gPGgzIGFsaWduPSJjZW50ZXIiPlNRTCBiYXNlZCBYT3BzLCBvYnNlcnZhYmlsaXR5IGFuZCBtaWRkbGV3YXJlIGZyYW1ld29yazwvaDM+IC0tPgoKPHAgYWxpZ249ImNlbnRlciI+CgpbX19SZWFkIHRoZSBkb2NzIMK7X19dW2RvY3NdICAKW1JhaXNlIGFuIElzc3VlXVtpc3N1ZXNdIMK3IApbUmVxdWVzdCBhIEZlYXR1cmVdW2ZlYXR1cmVzXSDCtyAKW0RldmVsb3BlciBHdWlkZV1bZGV2ZWxvcGVyc10gwrcgCltCWU8gUHJvdmlkZXJzXVtyZWdpc3RyeWNvbnRdCgo8L3A+CjwvZGl2PgoKPGRldGFpbHMgb3Blbj0ib3BlbiI+CjxzdW1tYXJ5PkNvbnRlbnRzPC9zdW1tYXJ5Pgo8b2w+CjxsaT48YSBocmVmPSIjYWJvdXQtdGhlLXByb2plY3QiPkFib3V0IFRoZSBQcm9qZWN0PC9hPjwvbGk+CjxsaT48YSBocmVmPSIjaW5zdGFsbGF0aW9uIj5JbnN0YWxsYXRpb248L2E+PC9saT4KPGxpPjxhIGhyZWY9IiN1c2FnZSI+VXNhZ2U8L2E+PC9saT4KPCEtLSA8bGk+PGEgaHJlZj0iI3JvYWRtYXAiPlJvYWRtYXA8L2E+PC9saT4gLS0+CjxsaT48YSBocmVmPSIjY29udHJpYnV0aW5nIj5Db250cmlidXRpbmc8L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNsaWNlbnNlIj5MaWNlbnNlPC9hPjwvbGk+CjxsaT48YSBocmVmPSIjY29udGFjdCI+Q29udGFjdDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2Fja25vd2xlZGdlbWVudHMiPkFja25vd2xlZGdlbWVudHM8L2E+PC9saT4KPC9vbD4KPC9kZXRhaWxzPgoKIyMgQWJvdXQgVGhlIFByb2plY3QKCltfX1N0YWNrUUxfX11baG9tZXBhZ2VdIGlzIGFuIG9wZW4tc291cmNlIHByb2plY3QgYnVpbHQgd2l0aCBHb2xhbmcgdGhhdCBhbGxvd3MgeW91IHRvIGNyZWF0ZSwgbW9kaWZ5IGFuZCBxdWVyeSB0aGUgc3RhdGUgb2Ygc2VydmljZXMgYW5kIHJlc291cmNlcyBhY3Jvc3MgZGlmZmVyZW50IGNsb3VkIGFuZCBTYWFTIHByb3ZpZGVycyAoR29vZ2xlLCBBV1MsIEF6dXJlLCBPa3RhLCBHaXRIdWIsIGV0Yy4pIHVzaW5nIFNRTCBzZW1hbnRpY3MKPGJyIC8+CjxiciAvPgoKIVtzdGFja3FsLXNoZWxsXVtkYXJrbW9kZXRlcm1dCiFbc3RhY2txbC1zaGVsbF1bbGlnaHRtb2RldGVybV0KCiMjIyBIb3cgaXQgd29ya3MKClN0YWNrUUwgaXMgYSBzdGFuZGFsb25lIGFwcGxpY2F0aW9uIHRoYXQgY2FuIGJlIHVzZWQgaW4gY2xpZW50IG1vZGUgKHZpYSBfX2BleGVjYF9fIG9yIF9fYHNoZWxsYF9fKSBvciBhY2Nlc3NlZCB2aWEgYSBQb3N0Z3JlcyB3aXJlIHByb3RvY29sIGNsaWVudCAoYHBzeWNvcGcyYCwgZXRjLikgdXNpbmcgc2VydmVyIG1vZGUgKF9fYHNydmBfXykuICAKClN0YWNrUUwgcGFyc2VzIFNRTCBzdGF0ZW1lbnRzIGFuZCB0cmFuc3BpbGVzIHRoZW0gaW50byBBUEkgcmVxdWVzdHMgdG8gdGhlIGNsb3VkIHByb3ZpZGVyLiAgVGhlIEFQSSBjYWxscyBhcmUgdGhlbiBleGVjdXRlZCBhbmQgdGhlIHJlc3VsdHMgYXJlIHJldHVybmVkIHRvIHRoZSB1c2VyLiAgCgpTdGFja1FMIHByb3ZpZGVyIGRlZmluaXRpb25zIGFyZSBkZWZpbmVkIGluIE9wZW5BUEkgZXh0ZW5zaW9ucyB0byB0aGUgcHJvdmlkZXJzIHNwZWNpZmljYXRpb24uICBUaGVzZSBkZWZpbml0aW9ucyBhcmUgdGhlbiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBTUUwgc2NoZW1hIGFuZCB0aGUgQVBJIGNsaWVudC4gIFRoZSBzb3VyY2UgZm9yIHRoZSBwcm92aWRlciBkZWZpbml0aW9ucyBhcmUgc3RvcmVkIGluIHRoZSBbX19TdGFja1FMIFJlZ2lzdHJ5X19dW3JlZ2lzdHJ5XS4gIAoKPGRldGFpbHM+CjxzdW1tYXJ5PjxiPlN0YWNrUUwgQ29udGV4dCBEaWFncmFtPC9iPjwvc3VtbWFyeT4KPGJyIC8+ClRoZSBmb2xsb3dpbmcgY29udGV4dCBkaWFncmFtIGRlc2NyaWJlcyB0aGUgU3RhY2tRTCBhcmNoaXRlY3R1cmUgYXQgYSBoaWdoIGxldmVsOiAgCgo8IS0tICFbU3RhY2tRTCBDb250ZXh0IERpYWdyYW1dKGh0dHA6Ly93d3cucGxhbnR1bWwuY29tL3BsYW50dW1sL3Byb3h5P2NhY2hlPW5vJnNyYz1odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3RhY2txbC90ZXN0LXJlYWRtZS9tYWluL3B1bWwvc3RhY2txbC1jNC1jb250ZXh0Lml1bWwpIC0tPgoKYGBgbWVybWFpZApmbG93Y2hhcnQgTFIKICBzdWJncmFwaCBTdGFja1FMCiAgICBkaXJlY3Rpb24gQlQKICAgIHN1YmdyYXBoIFByb3ZpZGVyRGVmcwogICAgICAgIFJlZ2lzdHJ5W1Byb3ZpZGVyIFJlZ2lzdHJ5IERvY3NdICAgIAogICAgZW5kCiAgICBzdWJncmFwaCBBcHAKICAgICAgICBQcm9jWyQgc3RhY2txbCBleGVjXG4kIHN0YWNrcWwgc2hlbGxcbiQgc3RhY2txbCBzcnZdCiAgICAgICAgc3R5bGUgUHJvYyBmaWxsOiMwMDAsc3Ryb2tlOiMwMDAsY29sb3I6I2ZmZix0ZXh0LWFsaWduOmxlZnQ7CgogICAgICAgICUlICxmb250LWZhbWlseTonQ291cmllciBOZXcnLCBDb3VyaWVyLCBtb25vc3BhY2UKICAgIGVuZAogIGVuZAogIFVzZXIoKFVzZXIpKSA8LS0+IFN0YWNrUUwgPC0tPiBQcm92aWRlcltDbG91ZCBQcm92aWRlciBBUEldCiAgUHJvdmlkZXJEZWZzIC0tPiBBcHAKYGBgCgpNb3JlIGRldGFpbGVkIGRlc2lnbiBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgW2hlcmVdW2Rlc2lnbmRvY3NdLgoKPC9kZXRhaWxzPgoKIyMgSW5zdGFsbGF0aW9uCgpTdGFja1FMIGlzIGF2YWlsYWJsZSBmb3IgV2luZG93cywgTWFjT1MsIExpbnV4LCBEb2NrZXIsIEdpdEh1YiBBY3Rpb25zIGFuZCBtb3JlLiAgU2VlIHRoZSBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGJlbG93IGZvciB5b3VyIHBsYXRmb3JtLiAgCgo8ZGV0YWlscz4KPHN1bW1hcnk+PGI+SW5zdGFsbGluZyBvbiBNYWNPUzwvYj48L3N1bW1hcnk+CgotIEhvbWVicmV3IChgYW1kNjRgIGFuZCBgYXJtNjRgKQogIC0gYGJyZXcgaW5zdGFsbCBzdGFja3FsYCAqb3IqIGBicmV3IHRhcCBzdGFja3FsL3RhcCAmJiBicmV3IGluc3RhbGwgc3RhY2txbC90YXAvc3RhY2txbGAKLSBNYWNPUyBQS0cgSW5zdGFsbGVyIChgYW1kNjRgIGFuZCBgYXJtNjRgKQogIC0gZG93bmxvYWQgdGhlIGxhdGVzdCBbTWFjT1MgUEtHIGluc3RhbGxlciBmb3IgU3RhY2tRTF1bbWFjcGtnXQogIC0gcnVuIHRoZSBpbnN0YWxsZXIgYW5kIGZvbGxvdyB0aGUgcHJvbXB0cwoKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5PjxiPkluc3RhbGxpbmcgb24gV2luZG93czwvYj48L3N1bW1hcnk+CgotIE1TSSBJbnN0YWxsZXIKICAtIGRvd25sb2FkIHRoZSBsYXRlc3QgW01TSSBpbnN0YWxsZXIgZm9yIFN0YWNrUUxdW3dpbm1zaV0KICAtIHJ1biB0aGUgaW5zdGFsbGVyIGFuZCBmb2xsb3cgdGhlIHByb21wdHMKLSBDaG9jb2xhdGV5CiAgLSBpbnN0YWxsIFtDaG9jb2xhdGV5XShodHRwczovL2Nob2NvbGF0ZXkub3JnL2luc3RhbGwpCiAgLSBydW4gYGNob2NvIGluc3RhbGwgc3RhY2txbGAKLSBaSVAgQXJjaGl2ZQogIC0gZG93bmxvYWQgdGhlIGxhdGVzdCBbV2luZG93cyBaSVAgYXJjaGl2ZSBmb3IgU3RhY2tRTF1bd2luemlwXQogIC0gZXh0cmFjdCB0aGUgYXJjaGl2ZSAoY29kZSBzaWduZWQgYHN0YWNrcWwuZXhlYCBmaWxlKSB0byBhIGRpcmVjdG9yeSBvZiB5b3VyIGNob2ljZQogIC0gYWRkIHRoZSBkaXJlY3RvcnkgdG8geW91ciBgUEFUSGAgZW52aXJvbm1lbnQgdmFyaWFibGUgKG9wdGlvbmFsKQoKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5PjxiPkluc3RhbGxpbmcgb24gTGludXg8L2I+PC9zdW1tYXJ5PgoKLSBaSVAgQXJjaGl2ZQogIC0gZG93bmxvYWQgdGhlIGxhdGVzdCBbTGludXggWklQIGFyY2hpdmUgZm9yIFN0YWNrUUxdW3R1eHppcF0KICAgIC0gb3IgdmlhIGBjdXJsIC1MIGh0dHBzOi8vYml0Lmx5L3N0YWNrcWwtemlwIC1PICYmIHVuemlwIHN0YWNrcWwtemlwYAogIC0gZXh0cmFjdCB0aGUgYXJjaGl2ZSAoYHN0YWNrcWxgIGZpbGUpIHRvIGEgZGlyZWN0b3J5IG9mIHlvdXIgY2hvaWNlCiAgLSBhZGQgdGhlIGRpcmVjdG9yeSB0byB5b3VyIGBQQVRIYCBlbnZpcm9ubWVudCB2YXJpYWJsZSAob3B0aW9uYWwpCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KPHN1bW1hcnk+PGI+R2V0dGluZyBTdGFja1FMIGZyb20gRG9ja2VySHViPC9iPjwvc3VtbWFyeT4KCj4gVmlldyBhbGwgYXZhaWxhYmxlIFN0YWNrUUwgaW1hZ2VzIG9uIFtfX0RvY2tlckh1Yl9fXVtkb2NrZXJodWJdLiAgSW1hZ2VzIGF2YWlsYWJsZSBpbmNsdWRlIFtfX2BzdGFja3FsYF9fXVtkb2NrZXJzdGFja3FsXSwgW19fYHN0YWNrcWwtanVweXRlci1kZW1vYF9fXVtkb2NrZXJqdXB5dGVyXSBhbmQgbW9yZS4gIFB1bGwgdGhlIGxhdGVzdCBTdGFja1FMIGJhc2UgaW1hZ2UgdXNpbmc6ICAKCmBgYGJhc2gKZG9ja2VyIHB1bGwgc3RhY2txbC9zdGFja3FsCmBgYAoKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5PjxiPlVzaW5nIFN0YWNrUUwgd2l0aCBHaXRIdWIgQWN0aW9uczwvYj48L3N1bW1hcnk+Cgo+IFVzZSBTdGFja1FMIGluIHlvdXIgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzIHRvIGF1dG9tYXRlIGNsb3VkIGluZnJhc3RydWN0dXJlIHByb3Zpc2lvbmluZywgSWFDIGFzc3VyYW5jZSwgb3IgY29tcGxpYW5jZS9zZWN1cml0eS4gIEF2YWlsYWJsZSBHaXRIdWIgQWN0aW9ucyBpbmNsdWRlOiBbYHNldHVwLXN0YWNrcWxgXVtzZXR1cGFjdGlvbl0sIFtgc3RhY2txbC1leGVjYF1bZXhlY2FjdGlvbl0gYW5kIG1vcmUKCjwvZGV0YWlscz4KCiMjIFVzYWdlCgpTdGFja1FMIGNhbiBiZSB1c2VkIHZpYSB0aGUgaW50ZXJhY3RpdmUgUkVQTCBzaGVsbCwgb3IgdmlhIHRoZSBgZXhlY2AgY29tbWFuZCBvciByYW4gYXMgYSBzZXJ2ZXIgdXNpbmcgdGhlIFtQb3N0Z3JlcyB3aXJlIHByb3RvY29sXShodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvcHJvdG9jb2wuaHRtbCkuICAKCj4g4oS577iPIFN0YWNrUUwgZG9lcyBub3QgcmVxdWlyZSBvciBpbnN0YWxsIGEgZGF0YWJhc2UuCgoqIEludGVyYWN0aXZlIFNoZWxsCiAgYGBgc2gKICAjIHJ1biBpbnRlcmFjdGl2ZSBzdGFja3FsIHF1ZXJpZXMKICBzdGFja3FsIHNoZWxsIC0tYXV0aD0iJHtBVVRIfSIKICBgYGAKKiBFeGVjdXRlIGEgc3RhdGVtZW50IG9yIGZpbGUKICBgYGBzaAogIHN0YWNrcWwgZXhlYyAtLWF1dGg9IiR7QVVUSH0iIC1pIG15c2NyaXB0LmlxbCAtLWlxbGRhdGEgdmFycy5qc29ubmV0IC0tb3V0cHV0IGpzb24KICAKICAjIG9yCiAgCiAgc3RhY2txbCBleGVjIC0tYXV0aD0iJHtBVVRIfSIgIlNFTEVDVCBpZCwgc3RhdHVzIEZST00gYXdzLmVjMi5pbnN0YW5jZXMgV0hFUkUgcmVnaW9uID0gJ3VzLWVhc3QtMSciCiAgYGBgCgogID4g4oS577iPIG91dHB1dCBvcHRpb25zIG9mIGBqc29uYCwgYGNzdmAsIGB0YWJsZWAgYW5kIGB0ZXh0YCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgYGV4ZWNgIGNvbW1hbmQgdXNpbmcgdGhlIGAtLW91dHB1dGAgZmxhZwoKICA+IOKEue+4jyBTdGFja1FMIHN1cHBvcnRzIHBhc3NpbmcgcGFyYW1ldGVycyB1c2luZyBganNvbm5ldGAgb3IgYGpzb25gLCBzZWUgW19fVXNpbmcgVmFyaWFibGVzX19dW3ZhcmlhYmxlc10KKiBTZXJ2ZXIKICBgYGBzaAogICMgc2VydmUgY2xpZW50IHJlcXVlc3RzIG92ZXIgdGhlIFBvc3RncmVzIHdpcmUgcHJvdG9jb2wgKHBzeWNvcGcyLCBldGMuKSAKICBzdGFja3FsIHNydiAtLWF1dGg9IiR7QVVUSH0iCiAgYGBgCgpfRm9yIG1vcmUgZXhhbXBsZXMsIHBsZWFzZSBjaGVjayBvdXIgW0Jsb2ddW2Jsb2ddXwoKPCEtLSAjIyBSb2FkbWFwCgpTZWUgb3VyIFtfX3JvYWRtYXBfX10oaHR0cHM6Ly9naXRodWIuY29tL290aG5laWxkcmV3L0Jlc3QtUkVBRE1FLVRlbXBsYXRlL2lzc3VlcykgdG8gc2VlIHdoZXJlIHdlIGFyZSBnb2luZyB3aXRoIHRoZSBwcm9qZWN0LiAtLT4KCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSBhbmQgZW5jb3VyYWdlZC4gIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250cmlidXRlLCBwbGVhc2Ugc2VlIG91ciBbX19jb250cmlidXRpbmcgZ3VpZGVfX11bY29udHJpYnV0aW5nXS4KCiMjIExpY2Vuc2UKCkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIFtgTElDRU5TRWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3FsL3N0YWNrcWwvYmxvYi9tYWluL0xJQ0VOU0UpIGZvciBtb3JlIGluZm9ybWF0aW9uLiAgTGljZW5zZXMgZm9yIHRoaXJkIHBhcnR5IHNvZnR3YXJlIHdlIGFyZSB1c2luZyBhcmUgaW5jbHVkZWQgaW4gdGhlIFsvZG9jcy9saWNlbnNlc10oL2RvY3MvbGljZW5zZXMpIGRpcmVjdG9yeS4KCiMjIENvbnRhY3QKCkdldCBpbiB0b3VjaCB3aXRoIHVzIHZpYSBUd2l0dGVyIGF0IFtfX0BzdGFja3FsX19dW3R3aXR0ZXJdLCBlbWFpbCB1cyBhdCBbX19pbmZvQHN0YWNrcWwuaW9fX10oaW5mb0BzdGFja3FsLmlvKSBvciBzdGFydCBhIGNvbnZlcnNhdGlvbiB1c2luZyBbX19kaXNjdXNzaW9uc19fXVtkaXNjdXNzaW9uc10uCgojIyBBY2tub3dsZWRnZW1lbnRzCkZvcmtzIG9mIHRoZSBmb2xsb3dpbmcgc3VwcG9ydCBvdXIgd29yazoKCiogW3ZpdGVzc10oaHR0cHM6Ly92aXRlc3MuaW8vKQoqIFtraW4tb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaSkKKiBbZ29yaWxsYS9tdXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb3JpbGxhL211eCkKKiBbcmVhZGxpbmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHp5ZXIvcmVhZGxpbmUpCiogW3BzcWwtd2lyZV0oaHR0cHM6Ly9naXRodWIuY29tL2plcm9lbnJpbnplbWEvcHNxbC13aXJlKQoKV2UgZ3JhdGVmdWxseSBhY2tub3dsZWRnZSB0aGVzZSBwaWVjZXMgb2Ygd29yay4KCg== readmeEtag: '"cceeaa714669be2ce8bc127d2c5f81a2e85bf075"' readmeLastModified: Wed, 04 Sep 2024 08:34:51 GMT repositoryId: 443987542 description: >- Query, provision and operate Cloud and SaaS resources and APIs using an extensible SQL based framework created: '2022-01-03T08:20:06Z' updated: '2024-09-06T02:48:02Z' language: Go archived: false stars: 476 watchers: 11 forks: 45 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 license: MIT repoEtag: '"b99702bd70004b3fc4a0b83a5c4644a32edf57cd87d3d744a8c1ae09cee613e0"' repoLastModified: Fri, 06 Sep 2024 02:48:02 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/swagger-autogen/swagger-autogen v3: true id: 2fbe0ef8e6fd0bf2f43ab4e7c7d80970 repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyLWF1dG9nZW4KCiMjIE92ZXJ2aWV3CgpUaGlzIG1vZHVsZSBwZXJmb3JtcyBhdXRvbWF0aWMgY29uc3RydWN0aW9uIG9mIFN3YWdnZXIgZG9jdW1lbnRhdGlvbi4gSXQgY2FuIGlkZW50aWZ5IHRoZSBlbmRwb2ludHMgYW5kIGF1dG9tYXRpY2FsbHkgY2FwdHVyZSBtZXRob2RzIHN1Y2ggYXMgZ2V0LCBwb3N0LCBwdXQsIGFuZCBzbyBvbi4gSXQgYWxzbyBpZGVudGlmaWVzIHBhdGhzLCByb3V0ZXMsIG1pZGRsZXdhcmVzLCByZXNwb25zZSBzdGF0dXMgY29kZXMsIHBhcmFtZXRlcnMgaW4gdGhlIHBhdGgsIGhlYWRlciwgcXVlcnkgYW5kIGJvZHkuIEl0IGlzIHBvc3NpYmxlIHRvIGFkZCBpbmZvcm1hdGlvbiBzdWNoIGFzIGVuZHBvaW50IGRlc2NyaXB0aW9uLCBwYXJhbWV0ZXIgZGVzY3JpcHRpb24sIHNjaGVtYXMsIHNlY3VyaXR5LCBhbW9uZyBvdGhlcnMgdXNpbmcgY29tbWVudHMgaW4gY29kZS4gQXQgdGhlIGVuZCwgaXQgZ2VuZXJhdGVzIHRoZSAqLmpzb24qIGZpbGUgY29udGFpbmluZyB0aGUgU3dhZ2dlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4KClshW05QTSBWZXJzaW9uXShodHRwOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvc3dhZ2dlci1hdXRvZ2VuLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci1hdXRvZ2VuKQpbIVtOUE0gRG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9zd2FnZ2VyLWF1dG9nZW4uc3ZnP3N0eWxlPWZsYXQpXShodHRwczovL25wbWNoYXJ0cy5jb20vY29tcGFyZS9zd2FnZ2VyLWF1dG9nZW4/bWluaW1hbD10cnVlKQoKIyMgQ29udGVudHMKCi0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKLSBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCi0gW0NoYW5nZWxvZ10oI2NoYW5nZWxvZykKLSBbTGljZW5zZV0oI2xpY2Vuc2UpCgojIyBJbnN0YWxsYXRpb24KClRoaXMgaXMgYSBbTm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnL2VuLykgbW9kdWxlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBbbnBtXShodHRwczovL3d3dy5ucG1qcy5jb20vKS4KCmBgYGJhc2gKJCBucG0gaW5zdGFsbCAtLXNhdmUtZGV2IHN3YWdnZXItYXV0b2dlbgpgYGAKCklmIHlvdSdyZSB1c2luZyBDb21tb25KUzoKCmBgYGpzCmNvbnN0IHN3YWdnZXJBdXRvZ2VuID0gcmVxdWlyZSgnc3dhZ2dlci1hdXRvZ2VuJykoKTsKYGBgCgpPciBpZiB5b3UncmUgdXNpbmcgRVMgbW9kdWxlczoKCmBgYGpzCmltcG9ydCBzd2FnZ2VyQXV0b2dlbiBmcm9tICdzd2FnZ2VyLWF1dG9nZW4nOwoKYGBgCgojIyBEb2N1bWVudGF0aW9uCgpQbGVhc2UgcmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gd2Vic2l0ZSBvbiBodHRwczovL3N3YWdnZXItYXV0b2dlbi5naXRodWIuaW8uCgojIyBDaGFuZ2Vsb2cKCkNoZWNrIHRoZSBbR2l0SHViIFJlbGVhc2VzIHBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWF1dG9nZW4vc3dhZ2dlci1hdXRvZ2VuL3JlbGVhc2VzKS4KCiMjIElzc3VlcwoKRHVlIHRvIHRoZSBudW1iZXIgb2Ygb3BlbiBpc3N1ZXMgYW5kIHRoZSBsYWNrIG9mIHRpbWUgdG8gcmVzcG9uZCB3aXRoIHF1YWxpdHksIEkndmUgZGlzYWJsZWQgdGhlIG9wZW5pbmcgb2YgaXNzdWVzIGZvciBub3cuIEknbSBzdGlsbCBrZWVwaW5nIG15IGV5ZXMgb24gdGhlIHByb2plY3QgYW5kIEkgaW50ZW5kIHRvIHByaW9yaXRpemUgdGhlIGlzc3VlcyBhbHJlYWR5IG9wZW4uIE9uY2UgSSBoYXZlIGNsb3NlZCBhIHNhdGlzZmFjdG9yeSBudW1iZXIgb2YgaXNzdWVzLCBJIHdpbGwgb3BlbiBpdCBhZ2Fpbi4gVGhhbmsgeW91IGZvciB1bmRlcnN0YW5kaW5nLgoKIyMgTGljZW5zZQoKW01JVF0oTElDRU5TRSkgTGljZW5zZQo= readmeEtag: '"2a11c5b385e9cefa3244c662352b041359767f04"' readmeLastModified: Thu, 28 Dec 2023 02:56:36 GMT repositoryId: 255205097 description: >- This module performs automatic construction of Swagger documentation. It can identify the endpoints and automatically capture methods such as get, post, put, and so on. It also identifies paths, routes, middlewares, response status codes and parameters. At the end, it generates the .json file containing the Swagger format specification. created: '2020-04-13T01:37:33Z' updated: '2024-08-22T13:24:23Z' language: JavaScript archived: false stars: 455 watchers: 5 forks: 63 owner: swagger-autogen logo: https://avatars.githubusercontent.com/u/137681762?v=4 license: MIT repoEtag: '"b1d94f0dc9aa7219a8e2ce3d8eb158f88fb03197706b60b7e8c7fb8d23dfff1f"' repoLastModified: Thu, 22 Aug 2024 13:24:23 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/davibaltar/swagger-autogen - source: openapi3 tags repository: https://github.com/rithvikvibhu/ghlocalapi v3: true repositoryMetadata: base64Readme: >- IyBbR29vZ2xlIEhvbWUgTG9jYWwgQVBJIERvY3VtZW50YXRpb25dKGh0dHBzOi8vcml0aHZpa3ZpYmh1LmdpdGh1Yi5pby9HSExvY2FsQXBpLykKCioqVXBkYXRlZCBvbjogMjAyMC0wNi0yOCoqCgpBdmFpbGFibGUgaGVyZTogaHR0cHM6Ly9yaXRodmlrdmliaHUuZ2l0aHViLmlvL0dITG9jYWxBcGkvCgpbIVtHaXRIdWIgc3RhcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL3JpdGh2aWt2aWJodS9HSExvY2FsQXBpKV0oaHR0cHM6Ly9naXRodWIuY29tL3JpdGh2aWt2aWJodS9HSExvY2FsQXBpL3N0YXJnYXplcnMpIFshW0dpdEh1YiBsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL3JpdGh2aWt2aWJodS9HSExvY2FsQXBpKV0oaHR0cHM6Ly9naXRodWIuY29tL3JpdGh2aWt2aWJodS9HSExvY2FsQXBpL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpIFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3JpdGh2aWt2aWJodS9HSExvY2FsQXBpLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3JpdGh2aWt2aWJodS9HSExvY2FsQXBpKQoKRG9jdW1lbnRhdGlvbiBmb3IgR29vZ2xlIEhvbWUncyBsb2NhbCBBUEksIHNwZWNzIGluIFtPcGVuQVBJIDMuMF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKS4gUmVuZGVyZWQgd2l0aCBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKS4KClRyYXZpcyBDSSBnZW5lcmF0ZXMgdGhlIHN0YXRpYyB3ZWJzaXRlIHdpdGggUmVkb2MuCgotIGBucG0gcnVuIGJ1aWxkYCBnZW5lcmF0ZXMgdGhlIHN0YXRpYyBzaXRlIGluIHRoZSAnZGlzdCcgZm9sZGVyIChNYWtlIHN1cmUgdGhlIGZvbGRlciBleGlzdHMpLgotIGBucG0gcnVuIHNlcnZlYCBzZXJ2ZXMgdGhlIHBhZ2Ugd2l0aCBhIHdlYiBzZXJ2ZXIuCgojIyBDb250cmlidXRpbmcKClRoZSBPcGVuIEFQSSBzcGVjIGlzIGV4cG9ydGVkIGZyb20gQXBpbWF0aWMuIEluc3RlYWQgb2Ygc3VibWl0dGluZyBwdWxsIHJlcXVlc3RzIHdpdGggY2hhbmdlcyB0byB0aGlzIGZpbGUsIHBsZWFzZSBjcmVhdGUgYW4gaXNzdWUgd2l0aCB0aGUgY2hhbmdlcyBpbnN0ZWFkLgoKIyMgQ3JlZGl0cwoKSHVnZSB0aGFua3MgdG8KCi0gW0BMb2hvdXNlXShodHRwczovL2dpdGh1Yi5jb20vTG9ob3VzZSkgZm9yIGZpbmRpbmcgYW5kIHBvc3RpbmcgYW4gaW5pdGlhbCBsaXN0IG9mIEFQSSBlbmRwb2ludHMgW29uIFJlZGRpdCByL2dvb2dsZWhvbWVdKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9nb29nbGVob21lL2NvbW1lbnRzLzdxZzZlZi91c2VfdGhlX2FwaV9vbl95b3VyX2dvb2dsZV9ob21lX3RvX3ZpZXdfdGhpbmdzLykKLSBbQExlYXRoZXJmYWNlNzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9MZWF0aGVyZmFjZTc1KSwgW0BEcmFrdWxpeF0oaHR0cHM6Ly9naXRodWIuY29tL0RyYWt1bGl4KSwgW0BtYWdpY3NlXShodHRwczovL2dpdGh1Yi5jb20vbWFnaWNzZSksIFtAWG9NRVhdKGh0dHBzOi8vZ2l0aHViLmNvbS9Yb01FWCksIFtAQW5nZWxvRDIwMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9BbmdlbG9EMjAyMikgYW5kIGV2ZXJ5b25lIG9uIFt0aGlzIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vcml0aHZpa3ZpYmh1L0dITG9jYWxBcGkvaXNzdWVzLzM5KSBmb3IgaGVscGluZyBSRSB0aGUgYXV0aGVudGljYXRpb24gc3lzdGVtLgotIFtAc2ltb24td2ViZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaW1vbi13ZWJlcikgZm9yIHRoZSBbYGdwc29hdXRoYF0oaHR0cHM6Ly9naXRodWIuY29tL3NpbW9uLXdlYmVyL2dwc29hdXRoKSBsaWJyYXJ5Ci0gQWxsIGNvbnRyaWJ1dG9ycyB3aG8ndmUgcmVwb3J0ZWQgaW5jb25zaXN0ZW5jaWVzIGFuZCBQUidkIGZpeGVzCg== readmeEtag: '"c38b9fa3c56fd64f2ca96bcecc24613a9ee015bb"' readmeLastModified: Sun, 14 Aug 2022 19:42:42 GMT repositoryId: 117561740 description: (Unofficial) Google Home local API documentation. created: '2018-01-15T15:22:58Z' updated: '2024-08-24T01:47:04Z' language: Handlebars archived: false stars: 448 watchers: 31 forks: 40 owner: rithvikvibhu logo: https://avatars.githubusercontent.com/u/5113343?v=4 license: MIT repoEtag: '"0242692de471ca05e2750d8ceddcafb887cee40b3169c77cb0d2eb2959c92a13"' repoLastModified: Sat, 24 Aug 2024 01:47:04 GMT foundInMaster: true category: SDK id: 6f3b994d76d4f6770123b20ae9bd03a2 - source: openapi3 tags repository: https://github.com/tiangolo/full-stack-fastapi-couchbase v3: true repositoryMetadata: base64Readme: >- IyMg8J+aqCBERVBSRUNBVElPTiBXQVJOSU5HIPCfmqgKCkknbSBjdXJyZW50bHkgbm90IGFjdGl2ZWx5IHVzaW5nIENvdWNoYmFzZSBub3IgdGhpcyBnZW5lcmF0b3IgZm9yIGFueSBwcm9qZWN0LgoKWW91IG1pZ2h0IHN0aWxsIGZpbmQgc29tZSBpbnRlcm5hbCBwaWVjZXMgb2YgY29kZSB1c2VmdWwgZm9yIHlvdXIgb3duIHVzZSBjYXNlcywgYnV0IEkgd29uJ3QgYmUgYWJsZSB0byBmaXggYnVncyBhbmQgYWRkIGZlYXR1cmVzLgoKSWYgeW91IGFyZSBzdGFydGluZyBhIG5ldyBwcm9qZWN0IGZyb20gc2NyYXRjaCwgY2hlY2sgdGhlIGFsdGVybmF0aXZlcyBhdCB0aGUgW0Zhc3RBUEkgZG9jczogUHJvamVjdCBHZW5lcmF0aW9uXShodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tL3Byb2plY3QtZ2VuZXJhdGlvbi8pLgoKWW91IGFyZSBzdGlsbCBmcmVlIHRvIHVzZSB0aGlzIHByb2plY3QgaWYgeW91IHdhbnQgdG8sIHlvdSBtaWdodCBzdGlsbCBmaW5kIHNvbWUgaW50ZXJuYWwgcGllY2VzIG9mIGNvZGUgdXNlZnVsIGZvciB5b3VyIG93biB1c2UgY2FzZS4gQW5kIGlmIHlvdSBhbHJlYWR5IGhhdmUgYSBwcm9qZWN0IGdlbmVyYXRlZCB3aXRoIGl0IHRoYXQncyBmaW5lIGFzIHdlbGwgKGFuZCB5b3UgcHJvYmFibHkgYWxyZWFkeSB1cGRhdGVkIGl0IHRvIHN1aXQgeW91ciBuZWVkcykuCgojIEZ1bGwgU3RhY2sgRmFzdEFQSSBDb3VjaGJhc2UgLSBwcm9qZWN0IGdlbmVyYXRvcgoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLWNvdWNoYmFzZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy90aWFuZ29sby9mdWxsLXN0YWNrLWZhc3RhcGktY291Y2hiYXNlKQoKIyMjIFRvIGhhdmUgaW4gbWluZAoKSGVyZSBhcmUgc29tZSBleHRyYSB0aG91Z2h0cyB5b3UgbWlnaHQgd2FudCB0byBjb25zaWRlciBpZiB5b3UgZGVjaWRlIHRvIGdvIHdpdGggQ291Y2hiYXNlIGFuZC9vciB0aGlzIHByb2plY3QgZ2VuZXJhdG9yLgoKIyMjIyBQcm9zCgpDb3VjaGJhc2UgaGFzIGEgZ3JlYXQgc2V0IG9mIGZlYXR1cmVzIHRoYXQgaXMgbm90IGVhc2lseSBvciBjb21tb25seSBmb3VuZCBpbiBhbHRlcm5hdGl2ZXMuCgpJdCdzIGEgZGlzdHJpYnV0ZWQgZGF0YWJhc2UsIHNvLCBpZiB5b3UgaGF2ZSBhIGNsdXN0ZXIgb2Ygc2V2ZXJhbCBub2RlcyB3aXRoIHRoZSBkYXRhIHJlcGxpY2F0ZWQsIHlvdSBkb24ndCBoYXZlIGEgc2luZ2xlIHBvaW50IG9mIGZhaWx1cmUuCgpJdCBwcm92aWRlcyB2ZXJ5IGhpZ2ggcGVyZm9ybWFuY2UuCgpJdCBoYXMgYnVpbHQtaW4gZnVsbC10ZXh0IHNlYXJjaCBpbnRlZ3JhdGVkICh1c2luZyBCbGV2ZSkuIEl0J3MgcG9zc2libGUgdG8gbWFrZSBhbGwgdGhlIHJlY29yZHMgYmUgYXV0b21hdGljYWxseSBpbmRleGVkIGluIHRoZSBzZWFyY2ggZW5naW5lIHdpdGhvdXQgYWRkaXRpb25hbCBjb2RlIG9yIGV4dHJhIGNvbXBvbmVudHMuCgpJdCBjYW4gYmUgY29ubmVjdGVkL2ludGVncmF0ZWQgd2l0aCB0aGUgQ291Y2hiYXNlIFN5bmMgR2F0ZXdheSwgdGhhdCBjYW4gYmUgdXNlZCB0byBzeW5jaHJvbml6ZSBhIHN1YnNldCBvZiBkb2N1bWVudHMgKHJlY29yZHMpIHdpdGggbW9iaWxlIGRldmljZXMuIEFuZCB3aXRoIHNvbWUgZWZmb3J0LCBpdCBjYW4gYmUgY29ubmVjdGVkIHdpdGggUG91Y2hCRCBmb3IgZnJvbnRlbmQgc3luY2hyb25pemF0aW9uIChhbHRob3VnaCBub3QgcXVlcnlpbmcgYW5kL29yIHNlYXJjaGluZyBmcm9tIHRoZSBmcm9udGVuZCwgYXMgd291bGQgYmUgcG9zc2libGUgd2l0aCBDb3VjaERCKS4KCiMjIyMgQ29ucwoKVGhlIGRvY3VtZW50YXRpb24gaXMgdmVyeSBzY2FyY2UuIFRoaXMgaXMgc2FkbHkgYSBiaWcgcHJvYmxlbS4gTWFueSBmZWF0dXJlcyBhcmUgbm90IHdlbGwgZG9jdW1lbnRlZCwgb3Igbm90IGRvY3VtZW50ZWQgYXQgYWxsLgoKTWFueSBjb25maWd1cmF0aW9ucyBhcmUgbm90IGRvY3VtZW50ZWQgYW5kIGhhdmUgdG8gYmUgaW5mZXJyZWQgZnJvbSBjb21tZW50cyBpbiBmb3J1bXMsIHJlYWRpbmcgc291cmNlIGNvZGUsIG9yIGNoZWNraW5nIHRoZSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIEMgY2xpZW50IGFuZCB0cnlpbmcgZGlmZmVyZW50IHF1ZXJ5IHBhcmFtZXRlcnMgaW4gVVJMcywgdGhhdCBiZWNvbWVzIHF1aXRlIGVycm9yIHByb25lLgoKQ291Y2hiYXNlIGRpZG4ndCBzZWVtIHRvIGJlIGRlc2lnbmVkIHRvIGJlIGludGVncmF0ZWQgaW50byBDSSBzeXN0ZW1zIGFzIGluIHRoaXMgcHJvamVjdCAob3IgYWx0ZXJuYXRpdmVzKSwgYXQgbGVhc3QgdW50aWwgdGhlIGxhc3QgdGltZSBJIHVzZWQgaXQuIEl0IGV4cGVjdHMgYWxsIHRoZSBzZXQgdXAgdG8gYmUgZG9uZSBvbmNlIHZpYSB0aGUgd2ViIFVJLCBub3QgYXV0b21hdGVkLiBUaGUgb2ZmaWNpYWwgRG9ja2VyIGltYWdlIGNhbid0IGJlIGNvbmZpZ3VyZWQuIFNvLCB0aGlzIHByb2plY3QgZG9lcyBhbGwgdGhlIGNvbmZpZ3VyYXRpb24gYnkgc2VuZGluZyB0aGUgSFRUUCByZXF1ZXN0cyBmcm9tIHRoZSBiYWNrZW5kIGNvZGUgdG8gdGhlIGNvbnRhaW5lciByZXBsaWNhdGluZyB0aGUgSFRUUCByZXF1ZXN0cyBkb25lIGluIHRoZSB3ZWIgVUkuIEJ1dCB0aG9zZSBzdGVwcyBhcmUgbm90IGRvY3VtZW50ZWQsIHRoZXJlJ3Mgbm8gIm9mZmljaWFsIiB3YXkgdG8gY29uZmlndXJlIGFuZCBzdGFydCBpdCB3aXRob3V0IHVzaW5nIHRoZSB3ZWIgVUksIHNvIHRoZSBpbnRlZ3JhdGlvbiB3aXRoIENJIGNvdWxkIGJlIGVycm9yIHByb25lLgoKVGhlIENvdWNoYmFzZSBTeW5jIEdhdGV3YXkgb2ZmaWNpYWwgRG9ja2VyIGltYWdlIGlzIG5vdCBkZXNpZ25lZCB0byBiZSBjb25maWd1cmVkIG11Y2ggZWl0aGVyLCBzbywgdGhlIGBEb2NrZXJmaWxlYCBpbmNsdWRlZCBpbiB0aGlzIHByb2plY3QgYWRkcyBhIGdvb2QgYW1vdW50IG9mIGN1c3RvbSBsb2dpYyB0byBzdXBwb3J0IHRoYXQsIGJ1dCB0aGF0J3Mgbm90IHJlYWxseSBvZmZpY2lhbC4KCkFzIGl0IHVzZXMgTjFRTCwgYSBmbGF2b3Igb2YgU1FMLCBhbmQgdGhlcmUncyBubyBlYXN5IGludGVncmF0aW9uIHdpdGggUHl0aG9uLCB5b3UgaGF2ZSB0byBkbyBhbGwgdGhlIG9wZXJhdGlvbnMgaW4gTjFRTCBzdHJpbmdzIGFuZCBpbnRlZ3JhdGUgdGhlbSB3aXRoIHlvdXIgb3duIGNvZGUuIFdpdGhvdXQgZWRpdG9yIHN1cHBvcnQsIGNvbXBsZXRpb24sIG5vciBzeW50YXggY2hlY2tzIGZvciBOMVFMLgoKLS0tCgpHZW5lcmF0ZSBhIGJhY2tlbmQgYW5kIGZyb250ZW5kIHN0YWNrIHVzaW5nIFB5dGhvbiwgaW5jbHVkaW5nIGludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9uLgoKWyFbU2NyZWVuc2hvdF0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS9pbWcvaW5kZXgvaW5kZXgtMDMtc3dhZ2dlci0wMi5wbmcpXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLWNvdWNoYmFzZSkKCiMjIEZlYXR1cmVzCgoqIEZ1bGwgKipEb2NrZXIqKiBpbnRlZ3JhdGlvbiAoRG9ja2VyIGJhc2VkKS4KKiBEb2NrZXIgU3dhcm0gTW9kZSBkZXBsb3ltZW50LgoqICoqRG9ja2VyIENvbXBvc2UqKiBpbnRlZ3JhdGlvbiBhbmQgb3B0aW1pemF0aW9uIGZvciBsb2NhbCBkZXZlbG9wbWVudC4KKiAqKlByb2R1Y3Rpb24gcmVhZHkqKiBQeXRob24gd2ViIHNlcnZlciB1c2luZyBVdmljb3JuIGFuZCBHdW5pY29ybi4KKiBQeXRob24gKipbRmFzdEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Zhc3RhcGkpKiogYmFja2VuZDoKICAgICogKipGYXN0Kio6IFZlcnkgaGlnaCBwZXJmb3JtYW5jZSwgb24gcGFyIHdpdGggKipOb2RlSlMqKiBhbmQgKipHbyoqICh0aGFua3MgdG8gU3RhcmxldHRlIGFuZCBQeWRhbnRpYykuCiAgICAqICoqSW50dWl0aXZlKio6IEdyZWF0IGVkaXRvciBzdXBwb3J0LiA8YWJiciB0aXRsZT0iYWxzbyBrbm93biBhcyBhdXRvLWNvbXBsZXRlLCBhdXRvY29tcGxldGlvbiwgSW50ZWxsaVNlbnNlIj5Db21wbGV0aW9uPC9hYmJyPiBldmVyeXdoZXJlLiBMZXNzIHRpbWUgZGVidWdnaW5nLgogICAgKiAqKkVhc3kqKjogRGVzaWduZWQgdG8gYmUgZWFzeSB0byB1c2UgYW5kIGxlYXJuLiBMZXNzIHRpbWUgcmVhZGluZyBkb2NzLgogICAgKiAqKlNob3J0Kio6IE1pbmltaXplIGNvZGUgZHVwbGljYXRpb24uIE11bHRpcGxlIGZlYXR1cmVzIGZyb20gZWFjaCBwYXJhbWV0ZXIgZGVjbGFyYXRpb24uCiAgICAqICoqUm9idXN0Kio6IEdldCBwcm9kdWN0aW9uLXJlYWR5IGNvZGUuIFdpdGggYXV0b21hdGljIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24uCiAgICAqICoqU3RhbmRhcmRzLWJhc2VkKio6IEJhc2VkIG9uIChhbmQgZnVsbHkgY29tcGF0aWJsZSB3aXRoKSB0aGUgb3BlbiBzdGFuZGFyZHMgZm9yIEFQSXM6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uIiB0YXJnZXQ9Il9ibGFuayI+T3BlbkFQSTwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvIiB0YXJnZXQ9Il9ibGFuayI+SlNPTiBTY2hlbWE8L2E+LgogICAgKiBbKipNYW55IG90aGVyIGZlYXR1cmVzKipdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby9mYXN0YXBpKSBpbmNsdWRpbmcgYXV0b21hdGljIHZhbGlkYXRpb24sIHNlcmlhbGl6YXRpb24sIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24sIGF1dGhlbnRpY2F0aW9uIHdpdGggT0F1dGgyIEpXVCB0b2tlbnMsIGV0Yy4KKiAqKlNlY3VyZSBwYXNzd29yZCoqIGhhc2hpbmcgYnkgZGVmYXVsdC4KKiAqKkpXVCB0b2tlbioqIGF1dGhlbnRpY2F0aW9uLgoqICoqQ09SUyoqIChDcm9zcyBPcmlnaW4gUmVzb3VyY2UgU2hhcmluZykuCiogKipDZWxlcnkqKiB3b3JrZXIgdGhhdCBjYW4gaW1wb3J0IGFuZCB1c2UgY29kZSBmcm9tIHRoZSByZXN0IG9mIHRoZSBiYWNrZW5kIHNlbGVjdGl2ZWx5ICh5b3UgZG9uJ3QgaGF2ZSB0byBpbnN0YWxsIHRoZSBjb21wbGV0ZSBhcHAgaW4gZWFjaCB3b3JrZXIpLgoqICoqTm9TUUwgQ291Y2hiYXNlKiogZGF0YWJhc2UgdGhhdCBzdXBwb3J0cyBkaXJlY3Qgc3luY2hyb25pemF0aW9uIHZpYSBDb3VjaGJhc2UgU3luYyBHYXRld2F5IGZvciBvZmZsaW5lLWZpcnN0IGFwcGxpY2F0aW9ucy4KKiAqKkZ1bGwgVGV4dCBTZWFyY2gqKiBpbnRlZ3JhdGVkLCB1c2luZyBDb3VjaGJhc2UuCiogUkVTVCBiYWNrZW5kIHRlc3RzIGJhc2VkIG9uIFB5dGVzdCwgaW50ZWdyYXRlZCB3aXRoIERvY2tlciwgc28geW91IGNhbiB0ZXN0IHRoZSBmdWxsIEFQSSBpbnRlcmFjdGlvbiwgaW5kZXBlbmRlbnQgb24gdGhlIGRhdGFiYXNlLiBBcyBpdCBydW5zIGluIERvY2tlciwgaXQgY2FuIGJ1aWxkIGEgbmV3IGRhdGEgc3RvcmUgZnJvbSBzY3JhdGNoIGVhY2ggdGltZSAoc28geW91IGNhbiB1c2UgRWxhc3RpY1NlYXJjaCwgTW9uZ29EQiwgb3Igd2hhdGV2ZXIgeW91IHdhbnQsIGFuZCBqdXN0IHRlc3QgdGhhdCB0aGUgQVBJIHdvcmtzKS4KKiBFYXN5IFB5dGhvbiBpbnRlZ3JhdGlvbiB3aXRoICoqSnVweXRlcioqIEtlcm5lbHMgZm9yIHJlbW90ZSBvciBpbi1Eb2NrZXIgZGV2ZWxvcG1lbnQgd2l0aCBleHRlbnNpb25zIGxpa2UgQXRvbSBIeWRyb2dlbiBvciBWaXN1YWwgU3R1ZGlvIENvZGUgSnVweXRlci4KKiAqKkVtYWlsIG5vdGlmaWNhdGlvbnMqKiBmb3IgYWNjb3VudCBjcmVhdGlvbiBhbmQgcGFzc3dvcmQgcmVjb3ZlcnksIGNvbXBhdGlibGUgd2l0aDoKICAgICogTWFpbGd1bgogICAgKiBTcGFya1Bvc3QKICAgICogU2VuZEdyaWQKICAgICogLi4uYW55IG90aGVyIHByb3ZpZGVyIHRoYXQgY2FuIGdlbmVyYXRlIHN0YW5kYXJkIFNNVFAgY3JlZGVudGlhbHMuCiogKipWdWUqKiBmcm9udGVuZDoKICAgICogR2VuZXJhdGVkIHdpdGggVnVlIENMSS4KICAgICogKipKV1QgQXV0aGVudGljYXRpb24qKiBoYW5kbGluZy4KICAgICogTG9naW4gdmlldy4KICAgICogQWZ0ZXIgbG9naW4sIG1haW4gZGFzaGJvYXJkIHZpZXcuCiAgICAqIE1haW4gZGFzaGJvYXJkIHdpdGggdXNlciBjcmVhdGlvbiBhbmQgZWRpdGlvbi4KICAgICogU2VsZiB1c2VyIGVkaXRpb24uCiAgICAqICoqVnVleCoqLgogICAgKiAqKlZ1ZS1yb3V0ZXIqKi4KICAgICogKipWdWV0aWZ5KiogZm9yIGJlYXV0aWZ1bCBtYXRlcmlhbCBkZXNpZ24gY29tcG9uZW50cy4KICAgICogKipUeXBlU2NyaXB0KiouCiAgICAqIERvY2tlciBzZXJ2ZXIgYmFzZWQgb24gKipOZ2lueCoqIChjb25maWd1cmVkIHRvIHBsYXkgbmljZWx5IHdpdGggVnVlLXJvdXRlcikuCiAgICAqIERvY2tlciBtdWx0aS1zdGFnZSBidWlsZGluZywgc28geW91IGRvbid0IG5lZWQgdG8gc2F2ZSBvciBjb21taXQgY29tcGlsZWQgY29kZS4KICAgICogRnJvbnRlbmQgdGVzdHMgcmFuIGF0IGJ1aWxkIHRpbWUgKGNhbiBiZSBkaXNhYmxlZCB0b28pLgogICAgKiBNYWRlIGFzIG1vZHVsYXIgYXMgcG9zc2libGUsIHNvIGl0IHdvcmtzIG91dCBvZiB0aGUgYm94LCBidXQgeW91IGNhbiByZS1nZW5lcmF0ZSB3aXRoIFZ1ZSBDTEkgb3IgY3JlYXRlIGl0IGFzIHlvdSBuZWVkLCBhbmQgcmUtdXNlIHdoYXQgeW91IHdhbnQuCiogKipGbG93ZXIqKiBmb3IgQ2VsZXJ5IGpvYnMgbW9uaXRvcmluZy4KKiBMb2FkIGJhbGFuY2luZyBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIHdpdGggKipUcmFlZmlrKiosIHNvIHlvdSBjYW4gaGF2ZSBib3RoIHVuZGVyIHRoZSBzYW1lIGRvbWFpbiwgc2VwYXJhdGVkIGJ5IHBhdGgsIGJ1dCBzZXJ2ZWQgYnkgZGlmZmVyZW50IGNvbnRhaW5lcnMuCiogVHJhZWZpayBpbnRlZ3JhdGlvbiwgaW5jbHVkaW5nIExldCdzIEVuY3J5cHQgKipIVFRQUyoqIGNlcnRpZmljYXRlcyBhdXRvbWF0aWMgZ2VuZXJhdGlvbi4KKiBHaXRMYWIgKipDSSoqIChjb250aW51b3VzIGludGVncmF0aW9uKSwgaW5jbHVkaW5nIGZyb250ZW5kIGFuZCBiYWNrZW5kIHRlc3RpbmcuCgojIyBIb3cgdG8gdXNlIGl0CgpHbyB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHlvdSB3YW50IHRvIGNyZWF0ZSB5b3VyIHByb2plY3QgYW5kIHJ1bjoKCmBgYGJhc2gKcGlwIGluc3RhbGwgY29va2llY3V0dGVyCmNvb2tpZWN1dHRlciBodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLWNvdWNoYmFzZQpgYGAKCiMjIyBHZW5lcmF0ZSBwYXNzd29yZHMKCllvdSB3aWxsIGJlIGFza2VkIHRvIHByb3ZpZGUgcGFzc3dvcmRzIGFuZCBzZWNyZXQga2V5cyBmb3Igc2V2ZXJhbCBjb21wb25lbnRzLiBPcGVuIGFub3RoZXIgdGVybWluYWwgYW5kIHJ1bjoKCmBgYGJhc2gKb3BlbnNzbCByYW5kIC1oZXggMzIKIyBPdXRwdXRzIHNvbWV0aGluZyBsaWtlOiA5OWQzYjFmMDFhYTYzOWU0YTc2ZjRmYzI4MWZjODM0NzQ3YTU0MzcyMGJhNGM4YTg2NDhiYTc1NWFlZjliZTdmCmBgYAoKQ29weSB0aGUgY29udGVudHMgYW5kIHVzZSB0aGF0IGFzIHBhc3N3b3JkIC8gc2VjcmV0IGtleS4gQW5kIHJ1biB0aGF0IGFnYWluIHRvIGdlbmVyYXRlIGFub3RoZXIgc2VjdXJlIGtleS4KCgojIyMgSW5wdXQgdmFyaWFibGVzCgpUaGUgZ2VuZXJhdG9yIChjb29raWVjdXR0ZXIpIHdpbGwgYXNrIHlvdSBmb3Igc29tZSBkYXRhLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIGF0IGhhbmQgYmVmb3JlIGdlbmVyYXRpbmcgdGhlIHByb2plY3QuCgpUaGUgaW5wdXQgdmFyaWFibGVzLCB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzIChzb21lIGF1dG8gZ2VuZXJhdGVkKSBhcmU6CgoqIGBwcm9qZWN0X25hbWVgOiBUaGUgbmFtZSBvZiB0aGUgcHJvamVjdAoqIGBwcm9qZWN0X3NsdWdgOiBUaGUgZGV2ZWxvcG1lbnQgZnJpZW5kbHkgbmFtZSBvZiB0aGUgcHJvamVjdC4gQnkgZGVmYXVsdCwgYmFzZWQgb24gdGhlIHByb2plY3QgbmFtZQoqIGBkb21haW5fbWFpbmA6IFRoZSBkb21haW4gaW4gd2hlcmUgdG8gZGVwbG95IHRoZSBwcm9qZWN0IGZvciBwcm9kdWN0aW9uIChmcm9tIHRoZSBicmFuY2ggYHByb2R1Y3Rpb25gKSwgdXNlZCBieSB0aGUgbG9hZCBiYWxhbmNlciwgYmFja2VuZCwgZXRjLiBCeSBkZWZhdWx0LCBiYXNlZCBvbiB0aGUgcHJvamVjdCBzbHVnLgoqIGBkb21haW5fc3RhZ2luZ2A6IFRoZSBkb21haW4gaW4gd2hlcmUgdG8gZGVwbG95IHdoaWxlIHN0YWdpbmcgKGJlZm9yZSBwcm9kdWN0aW9uKSAoZnJvbSB0aGUgYnJhbmNoIGBtYXN0ZXJgKS4gQnkgZGVmYXVsdCwgYmFzZWQgb24gdGhlIG1haW4gZG9tYWluLgoKKiBgZG9ja2VyX3N3YXJtX3N0YWNrX25hbWVfbWFpbmA6IFRoZSBuYW1lIG9mIHRoZSBzdGFjayB3aGlsZSBkZXBsb3lpbmcgdG8gRG9ja2VyIGluIFN3YXJtIG1vZGUgZm9yIHByb2R1Y3Rpb24uIEJ5IGRlZmF1bHQsIGJhc2VkIG9uIHRoZSBkb21haW4uCiogYGRvY2tlcl9zd2FybV9zdGFja19uYW1lX3N0YWdpbmdgOiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgd2hpbGUgZGVwbG95aW5nIHRvIERvY2tlciBpbiBTd2FybSBtb2RlIGZvciBzdGFnaW5nLiBCeSBkZWZhdWx0LCBiYXNlZCBvbiB0aGUgZG9tYWluLgoKKiBgc2VjcmV0X2tleWA6IEJhY2tlbmQgc2VydmVyIHNlY3JldCBrZXkuIFVzZSB0aGUgbWV0aG9kIGFib3ZlIHRvIGdlbmVyYXRlIGl0LgoqIGBmaXJzdF9zdXBlcnVzZXJgOiBUaGUgZmlyc3Qgc3VwZXJ1c2VyIGdlbmVyYXRlZCwgd2l0aCBpdCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNyZWF0ZSBtb3JlIHVzZXJzLCBldGMuIEJ5IGRlZmF1bHQsIGJhc2VkIG9uIHRoZSBkb21haW4uCiogYGZpcnN0X3N1cGVydXNlcl9wYXNzd29yZGA6IEZpcnN0IHN1cGVydXNlciBwYXNzd29yZC4gVXNlIHRoZSBtZXRob2QgYWJvdmUgdG8gZ2VuZXJhdGUgaXQuCiogYGJhY2tlbmRfY29yc19vcmlnaW5zYDogT3JpZ2lucyAoZG9tYWlucywgbW9yZSBvciBsZXNzKSB0aGF0IGFyZSBlbmFibGVkIGZvciBDT1JTIChDcm9zcyBPcmlnaW4gUmVzb3VyY2UgU2hhcmluZykuIFRoaXMgYWxsb3dzIGEgZnJvbnRlbmQgaW4gb25lIGRvbWFpbiAoZS5nLiBgaHR0cHM6Ly9kYXNoYm9hcmQuZXhhbXBsZS5jb21gKSB0byBjb21tdW5pY2F0ZSB3aXRoIHRoaXMgYmFja2VuZCwgdGhhdCBjb3VsZCBiZSBsaXZpbmcgaW4gYW5vdGhlciBkb21haW4gKGUuZy4gYGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tYCkuIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gYWxsb3cgeW91ciBsb2NhbCBmcm9udGVuZCAod2l0aCBhIGN1c3RvbSBgaG9zdHNgIGRvbWFpbiBtYXBwaW5nLCBhcyBkZXNjcmliZWQgaW4gdGhlIHByb2plY3QncyBgUkVBRE1FLm1kYCkgdGhhdCBjb3VsZCBiZSBsaXZpbmcgaW4gYGh0dHA6Ly9kZXYuZXhhbXBsZS5jb206ODA4MGAgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgYmFja2VuZCBhdCBgaHR0cHM6Ly9zdGFnLmV4YW1wbGUuY29tYC4gTm90aWNlIHRoZSBgaHR0cGAgdnMgYGh0dHBzYCBhbmQgdGhlIGBkZXYuYCBwcmVmaXggZm9yIGxvY2FsIGRldmVsb3BtZW50IHZzIHRoZSAic3RhZ2luZyIgYHN0YWcuYCBwcmVmaXguIEJ5IGRlZmF1bHQsIGl0IGluY2x1ZGVzIG9yaWdpbnMgZm9yIHByb2R1Y3Rpb24sIHN0YWdpbmcgYW5kIGRldmVsb3BtZW50LCB3aXRoIHBvcnRzIGNvbW1vbmx5IHVzZWQgZHVyaW5nIGxvY2FsIGRldmVsb3BtZW50IGJ5IHNldmVyYWwgcG9wdWxhciBmcm9udGVuZCBmcmFtZXdvcmtzIChWdWUgd2l0aCBgOjgwODBgLCBSZWFjdCwgQW5ndWxhcikuCiogYHNtdHBfcG9ydGA6IFBvcnQgdG8gdXNlIHRvIHNlbmQgZW1haWxzIHZpYSBTTVRQLiBCeSBkZWZhdWx0IGA1ODdgLgoqIGBzbXRwX2hvc3RgOiBIb3N0IHRvIHVzZSB0byBzZW5kIGVtYWlscywgaXQgd291bGQgYmUgZ2l2ZW4gYnkgeW91ciBlbWFpbCBwcm92aWRlciwgbGlrZSBNYWlsZ3VuLCBTcGFya3Bvc3QsIGV0Yy4KKiBgc210cF91c2VyYDogVGhlIHVzZXIgdG8gdXNlIGluIHRoZSBTTVRQIGNvbm5lY3Rpb24uIFRoZSB2YWx1ZSB3aWxsIGJlIGdpdmVuIGJ5IHlvdXIgZW1haWwgcHJvdmlkZXIuCiogYHNtdHBfcGFzc3dvcmRgOiBUaGUgcGFzc3dvcmQgdG8gYmUgdXNlZCBpbiB0aGUgU01UUCBjb25uZWN0aW9uLiBUaGUgdmFsdWUgd2lsbCBiZSBnaXZlbiBieSB0aGUgZW1haWwgcHJvdmlkZXIuCiogYHNtdHBfZW1haWxzX2Zyb21fZW1haWxgOiBUaGUgZW1haWwgYWNjb3VudCB0byB1c2UgYXMgdGhlIHNlbmRlciBpbiB0aGUgbm90aWZpY2F0aW9uIGVtYWlscywgaXQgd291bGQgYmUgc29tZXRoaW5nIGxpa2UgYGluZm9AeW91ci1jdXN0b20tZG9tYWluLmNvbWAuCiAKKiBgY291Y2hiYXNlX3VzZXJgOiBDb3VjaGJhc2UgbWFpbiB1c2VyIHRvIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIChjb2RlKS4gQnkgZGVmYXVsdCBgYWRtaW5gLgoqIGBjb3VjaGJhc2VfcGFzc3dvcmRgOiBQYXNzd29yZCBvZiB0aGUgbWFpbiB1c2VyLCBmb3IgdGhlIGJhY2tlbmQgY29kZS4gR2VuZXJhdGUgaXQgd2l0aCB0aGUgbWV0aG9kIGFib3ZlLgoqIGBjb3VjaGJhc2Vfc3luY19nYXRld2F5X2NvcnNgOiBMaXN0IG9mIENPUlMgb3JpZ2lucyB0aGF0IHRoZSBTeW5jIEdhdGV3YXkgc2hvdWxkIGFsbG93IHRvIHRhbGsgdG8gZGlyZWN0bHkuIFNpbWlsYXIgdG8gYGJhY2tlbmRfY29yc19vcmlnaW5zYC4KKiBgY291Y2hiYXNlX3N5bmNfZ2F0ZXdheV91c2VyYDogVXNlciB0byBiZSBjcmVhdGVkIGZvciB0aGUgQ291Y2hiYXNlIFN5bmMgR2F0ZXdheS4gVGhpcyBpcyB3aGF0IGFsbG93cyBzeW5jaHJvbml6YXRpb24gdXNpbmcgdGhlIENvdWNoREIgcHJvdG9jb2wsIHdpdGggQ291Y2hiYXNlIExpdGUgaW4gbW9iaWxlIGFwcHMgYW5kIFBvdWNoREIgaW4gdGhlIHdlYiBhbmQgaHlicmlkIG1vYmlsZSBhcHBzLgoqIGBjb3VjaGJhc2Vfc3luY19nYXRld2F5X3Bhc3N3b3JkYDogQ291Y2hiYXNlIFN5bmMgR2F0ZXdheSBwYXNzd29yZC4gR2VuZXJhdGUgaXQgd2l0aCB0aGUgbWV0aG9kIGFib3ZlLgogCiogYHRyYWVmaWtfY29uc3RyYWludF90YWdgOiBUaGUgdGFnIHRvIGJlIHVzZWQgYnkgdGhlIGludGVybmFsIFRyYWVmaWsgbG9hZCBiYWxhbmNlciAoZm9yIGV4YW1wbGUsIHRvIGRpdmlkZSByZXF1ZXN0cyBiZXR3ZWVuIGJhY2tlbmQgYW5kIGZyb250ZW5kKSBmb3IgcHJvZHVjdGlvbi4gVXNlZCB0byBzZXBhcmF0ZSB0aGlzIHN0YWNrIGZyb20gYW55IG90aGVyIHN0YWNrIHlvdSBtaWdodCBoYXZlLiBUaGlzIHNob3VsZCBpZGVudGlmeSBlYWNoIHN0YWNrIGluIGVhY2ggZW52aXJvbm1lbnQgKHByb2R1Y3Rpb24sIHN0YWdpbmcsIGV0YykuCiogYHRyYWVmaWtfY29uc3RyYWludF90YWdfc3RhZ2luZ2A6IFRoZSBUcmFlZmlrIHRhZyB0byBiZSB1c2VkIHdoaWxlIG9uIHN0YWdpbmcuIAoKKiBgdHJhZWZpa19wdWJsaWNfbmV0d29ya2A6IFRoaXMgYXNzdW1lcyB5b3UgaGF2ZSBhbm90aGVyIHNlcGFyYXRlIHB1YmxpY2x5IGZhY2luZyBUcmFlZmlrIGF0IHRoZSBzZXJ2ZXIgLyBjbHVzdGVyIGxldmVsLiBUaGlzIGlzIHRoZSBuZXR3b3JrIHRoYXQgbWFpbiBUcmFlZmlrIGxpdmVzIGluLgoqIGB0cmFlZmlrX3B1YmxpY19jb25zdHJhaW50X3RhZ2A6IFRoZSB0YWcgdGhhdCBzaG91bGQgYmUgdXNlZCBieSBzdGFjayBzZXJ2aWNlcyB0aGF0IHNob3VsZCBjb21tdW5pY2F0ZSB3aXRoIHRoZSBwdWJsaWMuCgoqIGBmbG93ZXJfYXV0aGA6IEJhc2ljIEhUVFAgYXV0aGVudGljYXRpb24gZm9yIGZsb3dlciwgaW4gdGhlIGZvcm1gdXNlcjpwYXNzd29yZGAuIEJ5IGRlZmF1bHQ6ICJgcm9vdDpjaGFuZ2V0aGlzYCIuCgoqIGBzZW50cnlfZHNuYDogS2V5IFVSTCAoRFNOKSBvZiBTZW50cnksIGZvciBsaXZlIGVycm9yIHJlcG9ydGluZy4gSWYgeW91IGFyZSBub3QgdXNpbmcgaXQgeWV0LCB5b3Ugc2hvdWxkLCBpcyBvcGVuIHNvdXJjZS4gRS5nLjogYGh0dHBzOi8vMTIzNGFiY2Q6NTY3OGVmQHNlbnRyeS5leGFtcGxlLmNvbS8zMGAuCgoqIGBkb2NrZXJfaW1hZ2VfcHJlZml4YDogUHJlZml4IHRvIHVzZSBmb3IgRG9ja2VyIGltYWdlIG5hbWVzLiBJZiB5b3UgYXJlIHVzaW5nIEdpdExhYiBEb2NrZXIgcmVnaXN0cnkgaXQgd291bGQgYmUgYmFzZWQgb24geW91ciBjb2RlIHJlcG9zaXRvcnkuIEUuZy46IGBnaXQuZXhhbXBsZS5jb20vZGV2ZWxvcG1lbnQtdGVhbS9teS1hd2Vzb21lLXByb2plY3QvYC4KKiBgZG9ja2VyX2ltYWdlX2JhY2tlbmRgOiBEb2NrZXIgaW1hZ2UgbmFtZSBmb3IgdGhlIGJhY2tlbmQuIEJ5IGRlZmF1bHQsIGl0IHdpbGwgYmUgYmFzZWQgb24geW91ciBEb2NrZXIgaW1hZ2UgcHJlZml4LCBlLmcuOiBgZ2l0LmV4YW1wbGUuY29tL2RldmVsb3BtZW50LXRlYW0vbXktYXdlc29tZS1wcm9qZWN0L2JhY2tlbmRgLiBBbmQgZGVwZW5kaW5nIG9uIHlvdXIgZW52aXJvbm1lbnQsIGEgZGlmZmVyZW50IHRhZyB3aWxsIGJlIGFwcGVuZGVkICggYHByb2RgLCBgc3RhZ2AsIGBicmFuY2hgICkuIFNvLCB0aGUgZmluYWwgaW1hZ2UgbmFtZXMgdXNlZCB3aWxsIGJlIGxpa2U6IGBnaXQuZXhhbXBsZS5jb20vZGV2ZWxvcG1lbnQtdGVhbS9teS1hd2Vzb21lLXByb2plY3QvYmFja2VuZDpwcm9kYC4KKiBgZG9ja2VyX2ltYWdlX2NlbGVyeXdvcmtlcmA6IERvY2tlciBpbWFnZSBmb3IgdGhlIGNlbGVyeSB3b3JrZXIuIEJ5IGRlZmF1bHQsIGJhc2VkIG9uIHlvdXIgRG9ja2VyIGltYWdlIHByZWZpeC4KKiBgZG9ja2VyX2ltYWdlX2Zyb250ZW5kYDogRG9ja2VyIGltYWdlIGZvciB0aGUgZnJvbnRlbmQuIEJ5IGRlZmF1bHQsIGJhc2VkIG9uIHlvdXIgRG9ja2VyIGltYWdlIHByZWZpeC4KKiBgZG9ja2VyX2ltYWdlX3N5bmNfZ2F0ZXdheWA6IERvY2tlciBpbWFnZSBmb3IgdGhlIFN5bmMgR2F0ZXdheS4gQnkgZGVmYXVsdCwgYmFzZWQgb24geW91ciBEb2NrZXIgaW1hZ2UgcHJlZml4LgoKIyMgSG93IHRvIGRlcGxveQoKVGhpcyBzdGFjayBjYW4gYmUgYWRqdXN0ZWQgYW5kIHVzZWQgd2l0aCBzZXZlcmFsIGRlcGxveW1lbnQgb3B0aW9ucyB0aGF0IGFyZSBjb21wYXRpYmxlIHdpdGggRG9ja2VyIENvbXBvc2UsIGJ1dCBpdCBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIGluIGEgY2x1c3RlciBjb250cm9sbGVkIHdpdGggcHVyZSBEb2NrZXIgaW4gU3dhcm0gTW9kZSB3aXRoIGEgVHJhZWZpayBtYWluIGxvYWQgYmFsYW5jZXIgcHJveHkgaGFuZGxpbmcgYXV0b21hdGljIEhUVFBTIGNlcnRpZmljYXRlcywgdXNpbmcgdGhlIGlkZWFzIGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9kb2NrZXJzd2FybS5yb2NrcyIgdGFyZ2V0PSJfYmxhbmsiPkRvY2tlclN3YXJtLnJvY2tzPC9hPi4KClBsZWFzZSByZWZlciB0byA8YSBocmVmPSJodHRwczovL2RvY2tlcnN3YXJtLnJvY2tzIiB0YXJnZXQ9Il9ibGFuayI+RG9ja2VyU3dhcm0ucm9ja3M8L2E+IHRvIHNlZSBob3cgdG8gZGVwbG95IHN1Y2ggYSBjbHVzdGVyIGluIDIwIG1pbnV0ZXMuCgojIyBNb3JlIGRldGFpbHMKCkFmdGVyIHVzaW5nIHRoaXMgZ2VuZXJhdG9yLCB5b3VyIG5ldyBwcm9qZWN0ICh0aGUgZGlyZWN0b3J5IGNyZWF0ZWQpIHdpbGwgY29udGFpbiBhbiBleHRlbnNpdmUgYFJFQURNRS5tZGAgd2l0aCBpbnN0cnVjdGlvbnMgZm9yIGRldmVsb3BtZW50LCBkZXBsb3ltZW50LCBldGMuIFlvdSBjYW4gcHJlLXJlYWQgW3RoZSBwcm9qZWN0IGBSRUFETUUubWRgIHRlbXBsYXRlIGhlcmUgdG9vXSguL3t7Y29va2llY3V0dGVyLnByb2plY3Rfc2x1Z319L1JFQURNRS5tZCkuCgojIyBTaWJsaW5nIHByb2plY3QgZ2VuZXJhdG9ycwoKKiBCYXNlZCBvbiBQb3N0Z3JlU1FMOiBbaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Z1bGwtc3RhY2stZmFzdGFwaS1wb3N0Z3Jlc3FsXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLXBvc3RncmVzcWwpLgoKIyMgUmVsZWFzZSBOb3RlcwoKIyMjIExhdGVzdCBDaGFuZ2VzCgoqIEZpeCBXaW5kb3dzIGxpbmUgZW5kaW5ncyBmb3Igc2hlbGwgc2NyaXB0cyBhZnRlciBwcm9qZWN0IGdlbmVyYXRpb24gd2l0aCBDb29raWVjdXR0ZXIgaG9va3MuIFBSIFsjMjhdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby9mdWxsLXN0YWNrLWZhc3RhcGktY291Y2hiYXNlL3B1bGwvMjgpLgoqIFJlbW92ZSBgcGFja2FnZS1sb2NrLmpzb25gIHRvIGxldCBldmVyeW9uZSBsb2NrIHRoZWlyIG93biB2ZXJzaW9ucyAoZGVwZW5kaW5nIG9uIE9TLCBldGMpLgoqIFNpbXBsaWZ5IFRyYWVmaWsgbGFiZWxzIGZvciBzZXJ2aWNlcy4gUFIgWyMyN10oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Z1bGwtc3RhY2stZmFzdGFwaS1jb3VjaGJhc2UvcHVsbC8yNykuCiogRml4IEZsb3dlciBEb2NrZXIgY29uZmlndXJhdGlvbi4gUFIgWyMyNF0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Z1bGwtc3RhY2stZmFzdGFwaS1jb3VjaGJhc2UvcHVsbC8yNCkuCiogVXBkYXRlIHRlc3Rpbmcgc2NyaXB0cyBhbmQgdHlwby4KKiBBZGQgbm9ybWFsIHVzZXIgUHl0ZXN0IGZpeHR1cmUuIFBSIFsjMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby9mdWxsLXN0YWNrLWZhc3RhcGktY291Y2hiYXNlL3B1bGwvMjMpLgoqIFVwZGF0ZSBEb2NrZXJmaWxlcyB0byB1c2UgQ291Y2hiYXNlIGZyb20gRGViaWFuIGltYWdlLiBQUiBbIzIwXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLWNvdWNoYmFzZS9wdWxsLzIwKSBieSBbQEdqYWNxdWVub3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9HamFjcXVlbm90KS4KKiBVc2UgbmV3IFB5ZGFudGljIHR5cGVzLiBQUiBbIzIxXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLWNvdWNoYmFzZS9wdWxsLzIxKSBieSBbQHRlaHRibF0oaHR0cHM6Ly9naXRodWIuY29tL3RlaHRibCkuCgojIyMgMC40LjAKCiogRml4IHNlY3VyaXR5IG9uIHJlc2V0dGluZyBhIHBhc3N3b3JkLiBSZWNlaXZlIGBwYXNzd29yZGAgYW5kIGB0b2tlbmAgYXMgYm9keSwgbm90IHF1ZXJ5LiBQUiBbIzE2XShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLWNvdWNoYmFzZS9wdWxsLzE2KS4KCiogRm9yd2FyZCBhcmd1bWVudHMgZnJvbSBzY3JpcHQgdG8gYHB5dGVzdGAgaW5zaWRlIGNvbnRhaW5lci4KCiogVXBkYXRlIEp1cHl0ZXIgTGFiIGluc3RhbGxhdGlvbiBhbmQgdXRpbCBzY3JpcHQvZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIGxvY2FsIGRldmVsb3BtZW50LgoKIyMjIDAuMy4wCgoqIFBSIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90aWFuZ29sby9mdWxsLXN0YWNrLWZhc3RhcGktY291Y2hiYXNlL3B1bGwvMTUiIHRhcmdldD0iX2JsYW5rIj4jMTU8L2E+OgogICAgKiBVcGRhdGUgQ1JVRCB1dGlscyB0byB1c2UgdHlwZXMgYmV0dGVyLgogICAgKiBTaW1wbGlmeSBQeWRhbnRpYyBtb2RlbCBuYW1lcywgZnJvbSBgVXNlckluQ3JlYXRlYCB0byBgVXNlckNyZWF0ZWAsIGV0Yy4KICAgICogVXBncmFkZSBwYWNrYWdlcy4KICAgICogQWRkIG5ldyBnZW5lcmljICJJdGVtcyIgbW9kZWxzLCBjcnVkIHV0aWxzLCBlbmRwb2ludHMsIGFuZCB0ZXN0cy4gVG8gZmFjaWxpdGF0ZSByZS11c2luZyB0aGVtIHRvIGNyZWF0ZSBuZXcgZnVuY3Rpb25hbGl0eS4gQXMgdGhleSBhcmUgc2ltcGxlIGFuZCBnZW5lcmljIChub3QgbGlrZSBVc2VycyksIGl0J3MgZWFzaWVyIHRvIGNvcHktcGFzdGUgYW5kIGFkYXB0IHRoZW0gdG8gZWFjaCB1c2UgY2FzZS4KICAgICogVXBkYXRlIGVuZHBvaW50cy8qcGF0aCBvcGVyYXRpb25zKiB0byBzaW1wbGlmeSBjb2RlIGFuZCB1c2UgbmV3IHV0aWxpdGllcywgcHJlZml4IGFuZCB0YWdzIGluIGBpbmNsdWRlX3JvdXRlcmAuCiAgICAqIFVwZGF0ZSB0ZXN0aW5nIHV0aWxzLgogICAgKiBVcGRhdGUgbGludGluZyBydWxlcywgcmVsYXggdnVsdHVyZSB0byByZWR1Y2UgZmFsc2UgcG9zaXRpdmVzLgogICAgKiBBZGQgZnVsbCB0ZXh0IHNlYXJjaCBmb3IgaXRlbXMuCiAgICAqIFVwZGF0ZSBwcm9qZWN0IFJFQURNRS5tZCB3aXRoIHRpcHMgYWJvdXQgaG93IHRvIHN0YXJ0IHdpdGggYmFja2VuZC4KCiMjIyAwLjIuMQoKKiBGaXggZnJvbnRlbmQgaGlqYWNraW5nIC9kb2NzIGluIGRldmVsb3BtZW50LiBVc2luZyBsYXRlc3QgaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL25vZGUtZnJvbnRlbmQgd2l0aCBjdXN0b20gTmdpbnggY29uZmlncyBpbiBmcm9udGVuZC4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Z1bGwtc3RhY2stZmFzdGFwaS1jb3VjaGJhc2UvcHVsbC8xNCIgdGFyZ2V0PSJfYmxhbmsiPlBSICMxNDwvYT4uCgoqIFVwZGF0ZSBnZW5lcmF0ZWQgUkVBRE1FLiBNaW5vciB0eXBvcy4KCiogVXBkYXRlIENvdWNoYmFzZSBpbnN0YWxsYXRpb24sIHRvIGluY2x1ZGUgQ291Y2hiYXNlIGNvbW1hbmQgbGluZSB0b29scy4KCiogU2V0IGAvc3RhcnQtcmVsb2FkLnNoYCBhcyBhIGNvbW1hbmQgb3ZlcnJpZGUgZm9yIGRldmVsb3BtZW50IGJ5IGRlZmF1bHQuCgojIyMgMC4yLjAKCioqPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Z1bGwtc3RhY2stZmFzdGFwaS1jb3VjaGJhc2UvcHVsbC83IiB0YXJnZXQ9Il9ibGFuayI+UFIgIzc8L2E+Kio6CgoqIFNpbXBsaWZ5IGFuZCB1cGRhdGUgYmFja2VuZCBgRG9ja2VyZmlsZWBzLgoqIFJlZmFjdG9yIGFuZCBzaW1wbGlmeSBiYWNrZW5kIGNvZGUsIGltcHJvdmUgbmFtaW5nLCBpbXBvcnRzLCBtb2R1bGVzIGFuZCAibmFtZXNwYWNlcyIuCiogSW1wcm92ZSBhbmQgc2ltcGxpZnkgVnVleCBpbnRlZ3JhdGlvbiB3aXRoIFR5cGVTY3JpcHQgYWNjZXNzb3JzLgoqIFN0YW5kYXJkaXplIGZyb250ZW5kIGNvbXBvbmVudHMgbGF5b3V0LCBidXR0b25zIG9yZGVyLCBldGMuCiogQWRkIGxvY2FsIGRldmVsb3BtZW50IHNjcmlwdHMgKHRvIGRldmVsb3AgdGhpcyBwcm9qZWN0IGdlbmVyYXRvciBpdHNlbGYpLgoqIEFkZCBsb2dzIHRvIHN0YXJ0dXAgbW9kdWxlcyB0byBkZXRlY3QgZXJyb3JzIGVhcmx5LgoqIEltcHJvdmUgRmFzdEFQSSBkZXBlbmRlbmN5IHV0aWxpdGllcywgdG8gc2ltcGxpZnkgYW5kIHJlZHVjZSBjb2RlICh0byByZXF1aXJlIGEgc3VwZXJ1c2VyKS4KKiBGaXgvdXBkYXRlIGxvZ2ljIHRvIHVwZGF0ZSB1c2Vycy4KCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLgo= readmeEtag: '"abba64326b23cc45521d6a9eddbe4100cd04b917"' readmeLastModified: Mon, 14 Nov 2022 15:41:30 GMT repositoryId: 161297482 description: >- Full stack, modern web application generator. Using FastAPI, Couchbase as database, Docker, automatic HTTPS and more. created: '2018-12-11T07:53:25Z' updated: '2024-08-28T19:27:13Z' language: Python archived: true stars: 438 watchers: 8 forks: 84 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT repoEtag: '"181a65fc610e6679df42883d19e4c4c48273db9791b2a83f5804d1603ba2c0ef"' repoLastModified: Wed, 28 Aug 2024 19:27:13 GMT foundInMaster: true category: Server Implementations id: 5b8908148637a85dc44c083694fd548a - source: openapi3 tags repository: https://github.com/grantila/typeconv v3: true repositoryMetadata: base64Readme: >- WyFbbnBtIHZlcnNpb25dW25wbS1pbWFnZV1dW25wbS11cmxdClshW2Rvd25sb2Fkc11bZG93bmxvYWRzLWltYWdlXV1bbnBtLXVybF0KWyFbYnVpbGQgc3RhdHVzXVtidWlsZC1pbWFnZV1dW2J1aWxkLXVybF0KWyFbY292ZXJhZ2Ugc3RhdHVzXVtjb3ZlcmFnZS1pbWFnZV1dW2NvdmVyYWdlLXVybF0KWyFbTm9kZS5KUyB2ZXJzaW9uXVtub2RlLXZlcnNpb25dXVtub2RlLXVybF0KCgo8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dyYW50aWxhL3R5cGVjb252L21hc3Rlci9hc3NldHMvbG9nby5zdmciIHdpZHRoPSIxMDAlIiAvPgoKKip0eXBlY29udioqIGlzIGFuIGV4dHJlbWVseSBmYXN0ICpzaWx2ZXIgYnVsbGV0KiB0eXBlIGNvbnZlcnNpb24gdXRpbGl0eS4KCkl0IGNvbnZlcnRzIGJldHdlZW4gYW55IG9mIGl0cyBzdXBwb3J0ZWQgdHlwZXMsIGJpZGlyZWN0aW9uYWxseS4KCnR5cGVjb252IGxldHMgeW91IGNvbnZlcnQgYmV0d2VlbiB0eXBlIHN5c3RlbXMgd2hpY2ggaGF2ZSBbYGNvcmUtdHlwZXNgXVtjb3JlLXR5cGVzLWdpdGh1Yi11cmxdIGNvbnZlcnRlcnMsIHN1Y2ggYXMgSlNPTiBTY2hlbWEsIFR5cGVTY3JpcHQsIEdyYXBoUUwsIE9wZW4gQVBJIGFuZCBbU3VyZVR5cGVdW3N1cmV0eXBlLWdpdGh1Yi11cmxdLiBUaGlzIHBhY2thZ2UgY2FuIGJlIHVzZWQgYXMgYW4gQVBJIHByb2dyYW1hdGljYWxseSBvciBhcyBhbiBhcHBsaWNhdGlvbiAoaW5zdGFsbGVkIGluIGBub2RlX21vZHVsZXMvLmJpbmAgb3IgYnkgdXNpbmcgZS5nLiBbYG5weGBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL25weCkpLgoKQnkgdGFraW5nIGFkdmFudGFnZSBvZiB0aGUgW2Bjb3JlLXR5cGVzYF1bY29yZS10eXBlcy1naXRodWItdXJsXSAoW25wbV1bY29yZS10eXBlcy1ucG0tdXJsXSkgdG9vbGJveCBmb3IgZ2VuZXJpYyB0eXBlIGhhbmRsaW5nLCB0eXBlY29udiBjYW4gY29udmVydCBhbmQgbWFpbnRhaW4gc291cmNlIGNvZGUgbG9jYXRpb24gaW5mb3JtYXRpb24sIGNvbW1lbnRzLCBkZXNjcmlwdGlvbnMgZXRjLiB3aGVuIGNvbnZlcnRpbmcgYmV0d2VlbiB0aGUgZGlmZmVyZW50IHR5cGUgc3lzdGVtcy4gSXQgaXMgdXNpbmcgdGhlIGZvbGxvd2luZyBjb252ZXJ0ZXIgcGFja2FnZXM6CiAqIFtgY29yZS10eXBlcy1qc29uLXNjaGVtYWBdW2NvcmUtdHlwZXMtanNvbi1zY2hlbWEtZ2l0aHViLXVybF0gKFtucG1dW2NvcmUtdHlwZXMtanNvbi1zY2hlbWEtbnBtLXVybF0pCiAqIFtgY29yZS10eXBlcy10c2BdW2NvcmUtdHlwZXMtdHMtZ2l0aHViLXVybF0gKFtucG1dW2NvcmUtdHlwZXMtdHMtbnBtLXVybF0pCiAqIFtgY29yZS10eXBlcy1ncmFwaHFsYF1bY29yZS10eXBlcy1ncmFwaHFsLWdpdGh1Yi11cmxdIChbbnBtXVtjb3JlLXR5cGVzLWdyYXBocWwtbnBtLXVybF0pCiAqIFtgY29yZS10eXBlcy1zdXJldHlwZWBdW2NvcmUtdHlwZXMtc3VyZXR5cGUtZ2l0aHViLXVybF0gKFtucG1dW2NvcmUtdHlwZXMtc3VyZXR5cGUtbnBtLXVybF0pCgpUaGVzZSB0eXBlIHN5c3RlbXMgZG9uJ3Qgc2hhcmUgdGhlIHNhbWUgc2V0IG9mIHR5cGVzIGFuZCBjb25zdHJhaW50cy4gRm9yIGV4YW1wbGUsIEpTT04gU2NoZW1hIGhhcyAqdmFsdWUqIGNvbnN0cmFpbnRzIChsaWtlICoiYSBzdHJpbmcgbXVzdCBiZSBsb25nZXIgdGhhbiA1IGNoYXJhY3RlcnMqIikgYW5kIEdyYXBoUUwgZG9lc24ndCBoYXZlIGBudWxsYCBvciBrZXktdmFsdWUgb2JqZWN0cyBhcyBhIGZpcnN0LWNsYXNzIHR5cGUuIENvbnZlcnRpb25zIHdpbGwgdGhlcmVmb3JlIHByb2R1Y2UgdGhlIHNtYWxsZXN0IGNvbW1vbiBkZW5vbWluYXRvciBvZiB0eXBlIGluZm9ybWF0aW9uLCBidXQgc3RpbGwgYmUgdmVyeSB1c2VmdWwuIFNlZSBbYGNvcmUtdHlwZXNgXVtjb3JlLXR5cGVzLWdpdGh1Yi11cmxdIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGl0cyBzdXBwb3J0ZWQgdHlwZXMsIGFuZCB3aHkgbm90IGltcGxlbWVudCBhIG5ldyBjb252ZXJzaW9uIHBhY2thZ2UgeW91cnNlbGYhCgoKIyBUTDtEUiBDTEkKCkNvbnZlcnQgZmlsZXMgZnJvbSBUeXBlU2NyaXB0ICgqInRzIiopIHRvIEdyYXBoUUwgKCoiZ3FsIiopLCBwdXQgdGhlIGdlbmVyYXRlZCBmaWxlcyBpbiB0aGUgYGdxbC1zY2hlbWFzYCBkaXJlY3RvcnkgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHN0cnVjdHVyZSBhcyB0aGUgc291cmNlIGZpbGVzOgoKYGBgenNoCiQgdHlwZWNvbnYgLWYgdHMgLXQgZ3FsIC1vIGdxbC1zY2hlbWFzICd0eXBlcy8qKi8qLnRzJwpgYGAKClRoaXMgZ2VuZXJhdGVzIGBncWwtc2NoZW1hcy8qLmdyYXBocWxgIGZvciBlYWNoIGAudHNgIGZpbGUgaW4gYHR5cGVzL2AgKGFuZCBzdWItZGlyZWN0b3JpZXMpLgoKKk5vdGUgdGhhdCB3aGVuIHVzaW5nIGdsb2IgcGF0dGVybnMsIHB1dCB0aGVtIGluIHF1b3RlcyB0byBub3QgaGF2ZSB0aGUgc2hlbGwgdHJ5IHRvIGV4cGFuZCB0aGUgcGF0dGVybiAtIHR5cGVjb252IHdpbGwgZG8gaXQgYSBsb3QgYmV0dGVyISoKCgojIyBTdXJlVHlwZQoKV2hlbiBjb252ZXJ0aW5nICpmcm9tKiBTdXJlVHlwZSwgdHlwZWNvbnYgd2lsbCBleHRyYWN0IGFsbCAqZXhwb3J0ZWQqIHZhbGlkYXRvcnMuCgoKIyMgVmVyc2lvbnMKClNpbmNlIHYyOgogKiBUaGUgcGFja2FnZSBpcyBhIHB1cmUgRVNNIG1vZHVsZSwgbm8gbW9yZSBDb21tb25KUyBzdXBwb3J0LiBUaGlzIHdpbGwgbGlrZWx5IG5vdCBhZmZlY3QgQ0xJIHVzYWdlcy4KICogTm9kZSAxMiBzdXBwb3J0IGlzIGRyb3BwZWQuCgoKIyBDb250ZW50cwoKICogW0NvbnZlcnNpb24gZXhhbXBsZV0oI2NvbnZlcnNpb24tZXhhbXBsZSkKICogW1VzYWdlXSgjdXNhZ2UpCiAgICogW0NvbW1hbmQgbGluZV0oI2NvbW1hbmQtbGluZSkKICAgKiBbQXMgQVBJXSgjYXMtYXBpKQogICAgICogW0pTT04gU2NoZW1hXSgjanNvbi1zY2hlbWEpCiAgICAgKiBbT3BlbiBBUEldKCNvcGVuLWFwaSkKICAgICAqIFtUeXBlU2NyaXB0XSgjdHlwZXNjcmlwdCkKICAgICAqIFtHcmFwaFFMXSgjZ3JhcGhxbCkKICAgICAqIFtTdXJlVHlwZV0oI3N1cmV0eXBlKQoKCiMgQ29udmVyc2lvbiBleGFtcGxlCgo8ZGV0YWlscyBzdHlsZT0icGFkZGluZy1sZWZ0OiAzMnB4O2JvcmRlci1sZWZ0OiA0cHggc29saWQgZ3JheTsiPgo8c3VtbWFyeT5Db252ZXJ0aW5nIHRoZSBmb2xsb3dpbmcgSlNPTiBTY2hlbWE6PC9zdW1tYXJ5Pgo8cD4KCmBgYGpzb24KewoJImRlZmluaXRpb25zIjogewoJCSJVc2VyIjogewoJCQkidHlwZSI6ICJvYmplY3QiLAoJCQkidGl0bGUiOiAiVXNlciB0eXBlIiwKCQkJImRlc2NyaXB0aW9uIjogIlRoaXMgdHlwZSBob2xkcyB0aGUgdXNlciBpbmZvcm1hdGlvbiwgc3VjaCBhcyBuYW1lIiwKCQkJInByb3BlcnRpZXMiOiB7ICJuYW1lIjogeyAidHlwZSI6ICJzdHJpbmciLCAidGl0bGUiOiAiVGhlIHJlYWwgbmFtZSIgfSB9LAoJCQkicmVxdWlyZWQiOiBbICJuYW1lIiBdCgkJfSwKCQkiQ2hhdExpbmUiOiB7CgkJCSJ0eXBlIjogIm9iamVjdCIsCgkJCSJ0aXRsZSI6ICJBIGNoYXQgbGluZSIsCgkJCSJwcm9wZXJ0aWVzIjogewoJCQkJInVzZXIiOiB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIgfSwKCQkJCSJsaW5lIjogeyAidHlwZSI6ICJzdHJpbmciIH0KCQkJfSwKCQkJInJlcXVpcmVkIjogWyAidXNlciIsICJsaW5lIiBdCgkJfQoJfQp9CmBgYAoKPC9wPgo8L2RldGFpbHM+Cgo8ZGV0YWlscyBzdHlsZT0icGFkZGluZy1sZWZ0OiAzMnB4O2JvcmRlci1sZWZ0OiA0cHggc29saWQgZ3JheTsiPgo8c3VtbWFyeT4uLi4gdG8gVHlwZVNjcmlwdCB3aWxsIHByb2R1Y2U6PC9zdW1tYXJ5Pgo8cD4KCmBgYHRzCi8qVXNlciB0eXBlCgpUaGlzIHR5cGUgaG9sZHMgdGhlIHVzZXIgaW5mb3JtYXRpb24sIHN1Y2ggYXMgbmFtZSovCmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7CgkvKlRoZSByZWFsIG5hbWUqLwoJbmFtZTogc3RyaW5nOwp9CgovKkEgY2hhdCBsaW5lKi8KZXhwb3J0IGludGVyZmFjZSBDaGF0TGluZSB7Cgl1c2VyOiBVc2VyOwoJbGluZTogc3RyaW5nOwp9CmBgYAoKb3IgaWYgY29udmVydGVkIGludG8gVHlwZVNjcmlwdCBfZGVjbGFyYXRpb25zXyAoZm9yIGAuZC50c2AgZmlsZXMpLCBgZXhwb3J0IGludGVyZmFjZWAgd2lsbCBiZSBgZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlYC4KCjwvcD4KPC9kZXRhaWxzPgoKPGRldGFpbHMgc3R5bGU9InBhZGRpbmctbGVmdDogMzJweDtib3JkZXItbGVmdDogNHB4IHNvbGlkIGdyYXk7Ij4KPHN1bW1hcnk+Li4uIGFuZCB0byBHcmFwaFFMIHdpbGwgcHJvZHVjZTo8L3N1bW1hcnk+CjxwPgoKYGBgZ3JhcGhxbAoiIiIKIyBVc2VyIHR5cGUKClRoaXMgdHlwZSBob2xkcyB0aGUgdXNlciBpbmZvcm1hdGlvbiwgc3VjaCBhcyBuYW1lCiIiIgp0eXBlIFVzZXIgewoJIlRoZSByZWFsIG5hbWUiCgluYW1lOiBTdHJpbmchCn0KCiJBIGNoYXQgbGluZSIKdHlwZSBDaGF0TGluZSB7Cgl1c2VyOiBVc2VyIQoJbGluZTogU3RyaW5nIQp9CmBgYAoKPC9wPgo8L2RldGFpbHM+CgpDb252ZXJzaW9ucyBhcmUgYmktZGlyZWN0aW9uYWwsIHNvIGFueSBvZiB0aGVzZSB0eXBlIHN5c3RlbXMgY2FuIGNvbnZlcnQgdG8gYW55IG90aGVyLgoKCiMgVXNhZ2UKCgojIyBDb21tYW5kIGxpbmUKCllvdSBjYW4gZGVwZW5kIG9uIGB0eXBlY29udmAsIGFuZCBpZiBzbywgeW91J2xsIGhhdmUgYG5vZGVfbW9kdWxlcy8uYmluL3R5cGVjb252YCBpbnN0YWxsZWQuIE9yIHlvdSBydW4gaXQgd2l0aCBvbi10aGUtZmx5IGluc3RhbGxhdGlvbiB1c2luZyBgbnB4YCwgYXMgYG5weCB0eXBlY29udiBhcmdzLi4uYC4KClVzZSBgLWZgIChvciBgLS1mcm9tLXR5cGVgKSB0byBzcGVjaWZ5ICpmcm9tKiB3aGljaCB0eXBlIHN5c3RlbSB0byBjb252ZXJ0LCBhbmQgYC10YCAob3IgYC0tdG8tdHlwZWApIHRvIHNwZWNpZnkgd2hpY2ggdHlwZSBzeXN0ZW0gdG8gY29udmVydCAqdG8qLiBPdGhlciBvcHRpb25zIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBlYWNoIGNvbmZpZ3VyYXRpb24gKGJvdGggdGhlICpmcm9tKiBhbmQgdGhlICp0byopIGFuZCB0aGVzZSBvcHRpb25zIGFyZSB1c3VhbGx5IG9ubHkgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIHR5cGUgc3lzdGVtLgoKVGhlIHR5cGVzIHN1cHBvcnRlZCBhcmUgYGdxbGAgKEdyYXBoUUwpLCBgdHNgIChUeXBlU2NyaXB0KSwgYGpzY2AgKEpTT04gU2NoZW1hKSwgYG9hcGlgIChPcGVuIEFQSSkgYW5kIGBzdGAgKFN1cmVUeXBlKS4KCjxkZXRhaWxzIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMycHg7Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCBncmF5OyI+CjxzdW1tYXJ5Pjxjb2RlPiQgdHlwZWNvbnYgLS1oZWxwPC9jb2RlPjwvc3VtbWFyeT4KPHA+CgpgYGAKVXNhZ2U6IHR5cGVjb252IFtvcHRpb25zXSBmaWxlIC4uLgoKICAgT3B0aW9uczoKCiAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgIFByaW50ICh0aGlzKSBoZWxwIHNjcmVlbgogICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICBQcmludCB0aGUgcHJvZ3JhbSB2ZXJzaW9uCiAgIC12LCAtLXZlcmJvc2UgICAgICAgICAgICAgICAgICAgIFZlcmJvc2UgaW5mb3JtYXRpb25hbCBvdXRwdXQgKGRlZmF1bHQ6IGZhbHNlKQogICAtLWRyeS1ydW4gICAgICAgICAgICAgICAgICAgICAgICBQcmVwYXJlIGFuZCBwZXJmb3JtIGNvbnZlcnNpb24sIGJ1dCB3cml0ZSBubyBvdXRwdXQgKGRlZmF1bHQ6IGZhbHNlKQogICAtLShuby0paGlkZGVuICAgICAgICAgICAgICAgICAgICBJbmNsdWRlIGhpZGRlbiBmaWxlcywgaS5lLiBmaWxlcyBpbiAuZ2l0aWdub3JlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcyBiZWdpbm5pbmcgd2l0aCAnLicgYW5kIHRoZSAnLmdpdCcgZGlyZWN0b3J5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdDogdHJ1ZSkKICAgLWYsIC0tZnJvbS10eXBlIDx0eXBlPiAgICAgICAgICAgVHlwZSBzeXN0ZW0gdG8gY29udmVydCBmcm9tCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzICAgIFR5cGVTY3JpcHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNjICAgSlNPTiBTY2hlbWEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3FsICAgR3JhcGhRTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYXBpICBPcGVuIEFQSQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdCAgICBTdXJlVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdCAgICBjb3JlLXR5cGVzCgogICAtdCwgLS10by10eXBlIDx0eXBlPiAgICAgICAgICAgICBUeXBlIHN5c3RlbSB0byBjb252ZXJ0IHRvCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzICAgIFR5cGVTY3JpcHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNjICAgSlNPTiBTY2hlbWEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3FsICAgR3JhcGhRTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYXBpICBPcGVuIEFQSQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdCAgICBTdXJlVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdCAgICBjb3JlLXR5cGVzCgogICAtLShuby0pc2hvcnRjdXQgICAgICAgICAgICAgICAgICBTaG9ydGN1dCBjb252ZXJzaW9uIGlmIHBvc3NpYmxlIChieXBhc3NpbmcgY29yZS10eXBlcykuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgcG9zc2libGUgYmV0d2VlbiBTdXJlVHlwZSwgSlNPTiBTY2hlbWEgYW5kIE9wZW4gQVBJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByZXNlcnZlIGFsbCBmZWF0dXJlcyB3aGljaCB3b3VsZCBvdGhlcndpc2UgYmUgZXJhc2VkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IHRydWUpCiAgIC1vLCAtLW91dHB1dC1kaXJlY3RvcnkgPGRpcj4gICAgIE91dHB1dCBkaXJlY3RvcnkuIERlZmF1bHRzIHRvIHRoZSBzYW1lIGFzIHRoZSBpbnB1dCBmaWxlcy4KICAgLU8sIC0tb3V0cHV0LWV4dGVuc2lvbiA8ZXh0PiAgICAgT3V0cHV0IGZpbGVuYW1lIGV4dGVuc2lvbiB0byB1c2UuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICd0cycvJ2QudHMnLCAnanNvbicsICd5YW1sJyBhbmQgJ2dyYXBocWwnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgJy0nIHRvIG5vdCBzYXZlIGEgZmlsZSwgYnV0IG91dHB1dCB0byBzdGRvdXQgaW5zdGVhZC4KICAgLS0obm8tKXN0cmlwLWFubm90YXRpb25zICAgICAgICAgUmVtb3ZlcyBhbGwgYW5ub3RhdGlvbnMgKGRlc2NyaXB0aW9ucywgY29tbWVudHMsIC4uLikgKGRlZmF1bHQ6IGZhbHNlKQogICBUeXBlU2NyaXB0CiAgICAgLS0obm8tKXRzLWRlY2xhcmF0aW9uICAgICAgICAgIE91dHB1dCBUeXBlU2NyaXB0IGRlY2xhcmF0aW9ucyAoZGVmYXVsdDogZmFsc2UpCiAgICAgLS0obm8tKXRzLWRpc2FibGUtbGludC1oZWFkZXIgIE91dHB1dCBjb21tZW50cyBmb3IgZGlzYWJsaW5nIGxpbnRpbmcgKGRlZmF1bHQ6IHRydWUpCiAgICAgLS0obm8tKXRzLWRlc2NyaXB0aXZlLWhlYWRlciAgIE91dHB1dCB0aGUgaGVhZGVyIGNvbW1lbnQgKGRlZmF1bHQ6IHRydWUpCiAgICAgLS0obm8tKXRzLXVzZS11bmtub3duICAgICAgICAgIFVzZSAndW5rbm93bicgdHlwZSBpbnN0ZWFkIG9mICdhbnknIChkZWZhdWx0OiB0cnVlKQogICAgIC0tdHMtbm9uLWV4cG9ydGVkIDxtZXRob2Q+ICAgICBTdHJhdGVneSBmb3Igbm9uLWV4cG9ydGVkIHR5cGVzIChkZWZhdWx0OiBpbmNsdWRlLWlmLXJlZmVyZW5jZWQpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwgICAgICAgICAgICAgICAgICAgRmFpbCBjb252ZXJzaW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZSAgICAgICAgICAgICAgICAgRG9uJ3QgaW5jbHVkZSBub24tZXhwb3J0ZWQgdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbiBpZiByZWZlcmVuY2VkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgICAgICAgICAgICAgICAgSW5jbHVkZSBub24tZXhwb3J0ZWQgdHlwZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lICAgICAgICAgICAgICAgICBEb24ndCBpbmNsdWRlIG5vbi1leHBvcnRlZCB0eXBlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmUgdGhlbSBpZiBuZWNlc3NhcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lsbCBmYWlsIG9uIGN5Y2xpYyB0eXBlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLWlmLXJlZmVyZW5jZWQgIEluY2x1ZGUgbm9uLWV4cG9ydGVkIHR5cGVzIG9ubHkgaWYgdGhleQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSByZWZlcmVuY2VkIGZyb20gZXhwb3J0ZWQgdHlwZXMKCiAgICAgLS10cy1uYW1lc3BhY2VzIDxtZXRob2Q+ICAgICAgIE5hbWVzcGFjZSBzdHJhdGVneS4gKGRlZmF1bHQ6IGlnbm9yZSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlICAgICAgICAgICBJZ25vcmUgbmFtZXNwYWNlcyBlbnRpcmVseSAoZGVmYXVsdCkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBXaGVuIGNvbnZlcnRpbmcgZnJvbSBUeXBlU2NyaXB0LCB0eXBlcyBpbiBuYW1lc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlbid0IGV4cG9ydGVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gV2hlbiBjb252ZXJ0aW5nIHRvIFR5cGVTY3JpcHQsIG5vIGF0dGVtcHQgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvbnN0cnVjdCBuYW1lc3BhY2VzIGlzIHBlcmZvcm1lZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9pc3QgICAgICAgICAgICBXaGVuIGNvbnZlcnRpbmcgZnJvbSBUeXBlU2NyaXB0LCBob2lzdCB0eXBlcyBpbnNpZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VzIHRvIHRvcC1sZXZlbCwgc28gdGhhdCB0aGUgdHlwZXMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZWQsIGJ1dCB3aXRob3V0IHRoZWlyIG5hbWVzcGFjZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNhbiBjYXVzZSBjb25mbGljdHMsIGluIHdoaWNoIGNhc2UgZGVlcGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb25zIHdpbGwgYmUgZHJvcHBlZCBpbiBmYXZvciBvZiBtb3JlIHRvcC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbCBkZWNsYXJhdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW4gY2FzZSBvZiBzYW1lLWxldmVsIChuYW1lc3BhY2UgZGVwdGgpIGRlY2xhcmF0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhlIHNhbWUgbmFtZSwgb25seSBvbmUgd2lsbCBiZSBleHBvcnRlZCBpbiBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uLWRldGVybWluaXN0aWMgbWFubmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3QgICAgICAgICAgICAgIFdoZW4gY29udmVydGluZyBmcm9tIFR5cGVTY3JpcHQsIGpvaW4gdGhlIG5hbWVzcGFjZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGV4cG9ydGVkIHR5cGUgd2l0aCBhIGRvdCAoLikuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiBjb252ZXJ0aW5nIHRvIFR5cGVTY3JpcHQsIHRyeSB0byByZWNvbnN0cnVjdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZXMgYnkgc3BsaXR0aW5nIHRoZSBuYW1lIG9uIGRvdCAoLikuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVyc2NvcmUgICAgICAgV2hlbiBjb252ZXJ0aW5nIGZyb20gVHlwZVNjcmlwdCwgam9pbiB0aGUgbmFtZXNwYWNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgZXhwb3J0ZWQgdHlwZSB3aXRoIGFuIHVuZGVyc2NvcmUgKF8pLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gY29udmVydGluZyB0byBUeXBlU2NyaXB0LCB0cnkgdG8gcmVjb25zdHJ1Y3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VzIGJ5IHNwbGl0dGluZyB0aGUgbmFtZSBvbiB1bmRlcnNjb3JlIChfKS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb25zdHJ1Y3QtYWxsICBXaGVuIGNvbnZlcnRpbmcgdG8gVHlwZVNjcmlwdCwgdHJ5IHRvIHJlY29uc3RydWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlcyBieSBzcGxpdHRpbmcgdGhlIG5hbWUgb24gYm90aCBkb3QgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXJzY29yZS4KCiAgIEdyYXBoUUwKICAgICAtLWdxbC11bnN1cHBvcnRlZCA8bWV0aG9kPiAgICAgTWV0aG9kIHRvIHVzZSBmb3IgdW5zdXBwb3J0ZWQgdHlwZXMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlICBJZ25vcmUgKHNraXApIHR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybiAgICBJZ25vcmUgdHlwZSwgYnV0IHdhcm4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgICBUaHJvdyBhbiBlcnJvcgoKICAgICAtLWdxbC1udWxsLXR5cGVuYW1lIDxuYW1lPiAgICAgQ3VzdG9tIHR5cGUgbmFtZSB0byB1c2UgZm9yIG51bGwKICAgT3BlbiBBUEkKICAgICAtLW9hcGktZm9ybWF0IDxmbXQ+ICAgICAgICAgICAgT3V0cHV0IGZvcm1hdCBmb3IgT3BlbiBBUEkgKGRlZmF1bHQ6IHlhbWwpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gIEpTT04KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFtbCAgWUFNTCAoJ3ltbCcgaXMgYWxzbyBhbGxvd2VkKQoKICAgICAtLW9hcGktdGl0bGUgPHRpdGxlPiAgICAgICAgICAgT3BlbiBBUEkgdGl0bGUgdG8gdXNlIGluIG91dHB1dCBkb2N1bWVudC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gdGhlIGlucHV0IGZpbGVuYW1lLgogICAgIC0tb2FwaS12ZXJzaW9uIDx2ZXJzaW9uPiAgICAgICBPcGVuIEFQSSBkb2N1bWVudCB2ZXJzaW9uIHRvIHVzZSBpbiBvdXRwdXQgZG9jdW1lbnQuIChkZWZhdWx0OiAxKQogICBTdXJlVHlwZQogICAgIC0tc3QtcmVmLW1ldGhvZCA8bWV0aG9kPiAgICAgICBTdXJlVHlwZSByZWZlcmVuY2UgZXhwb3J0IG1ldGhvZCAoZGVmYXVsdDogcHJvdmlkZWQpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vLXJlZnMgICBEb24ndCByZWYgYW55dGhpbmcsIGlubGluZSBhbGwgdHlwZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQgIFJlZmVyZW5jZSB0eXBlcyB0aGF0IGFyZSBleHBsaWNpdGx5IGV4cG9ydGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZi1hbGwgICBSZWYgYWxsIHByb3ZpZGVkIHR5cGVzIGFuZCB0aG9zZSB3aXRoIG5hbWVzCgogICAgIC0tc3QtbWlzc2luZy1yZWYgPG1ldGhvZD4gICAgICBXaGF0IHRvIGRvIHdoZW4gZGV0ZWN0aW5nIGFuIHVucmVzb2x2YWJsZSByZWZlcmVuY2UgKGRlZmF1bHQ6IHdhcm4pCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZSAgSWdub3JlOyBza2lwIHR5cGUgb3IgY2FzdCB0byBhbnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybiAgICBTYW1lIGFzICdpZ25vcmUnLCBidXQgd2FybgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciAgIEZhaWwgY29udmVyc2lvbgoKICAgICAtLShuby0pc3QtaW5saW5lLXR5cGVzICAgICAgICAgSW5saW5lIHByZXR0eSB0eXBlc2NyaXB0IHR5cGVzIGFzaWRlIHZhbGlkYXRvciBjb2RlIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtdHlwZSAgICAgICAgICBFeHBvcnQgdGhlIGRlZHVjZWQgdHlwZXMgKG9yIHRoZSBwcmV0dHkgdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiAtLXN0LWlubGluZS10eXBlcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtc2NoZW1hICAgICAgICBFeHBvcnQgdmFsaWRhdG9yIHNjaGVtYXMgKGRlZmF1bHQ6IGZhbHNlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtdmFsaWRhdG9yICAgICBFeHBvcnQgcmVndWxhciB2YWxpZGF0b3JzIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC1leHBvcnQtZW5zdXJlciAgICAgICBFeHBvcnQgJ2Vuc3VyZXInIHZhbGlkYXRvcnMgKGRlZmF1bHQ6IHRydWUpCiAgICAgLS0obm8tKXN0LWV4cG9ydC10eXBlLWd1YXJkICAgIEV4cG9ydCB0eXBlIGd1YXJkcyAoaXMqIHZhbGlkYXRvcnMpIChkZWZhdWx0OiB0cnVlKQogICAgIC0tKG5vLSlzdC11c2UtdW5rbm93biAgICAgICAgICBVc2UgJ3Vua25vd24nIHR5cGUgaW5zdGVhZCBvZiAnYW55JyAoZGVmYXVsdDogdHJ1ZSkKICAgICAtLShuby0pc3QtZm9yd2FyZC1zY2hlbWEgICAgICAgRm9yd2FyZCB0aGUgSlNPTiBTY2hlbWEsIGFuZCBjcmVhdGUgYW4gdW50eXBlZCB2YWxpZGF0b3Igc2NoZW1hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhlIHJhdyBKU09OIFNjaGVtYSB1bmRlciB0aGUgaG9vZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IGZhbHNlKQpgYGAKCjwvcD4KPC9kZXRhaWxzPgoKCiMjIEFzIEFQSQoKVG8gY29udmVydCBmcm9tIG9uZSB0eXBlIHN5c3RlbSB0byBhbm90aGVyLCB5b3UgY3JlYXRlIGEgKnJlYWRlciogZm9yIHRoZSB0eXBlIHN5c3RlbSB0byBjb252ZXJ0ICoqZnJvbSoqIGFuZCBhICp3cml0ZXIqIGZvciB0aGUgdHlwZSBzeXN0ZW0gdG8gY29udmVydCAqKnRvKiouIFRoZSByZWFkZXJzIGFuZCB3cml0ZXJzIGZvciB0aGUgZGlmZmVyZW50IHR5cGUgc3lzdGVtcyBoYXZlIHRoZWlyIG93biBzZXQgb2Ygb3B0aW9ucy4gU29tZSBoYXZlIG5vIG9wdGlvbnMgKGxpa2UgdGhlIEpTT04gU2NoZW1hIHJlYWRlciksIHNvbWUgcmVxdWlyZSBvcHRpb25zIChsaWtlIHRoZSBPcGVuIEFQSSB3cml0ZXIpLgoKCiMjIyBtYWtlQ29udmVydGVyCgpNYWtpbmcgYSBjb252ZXJ0ZXIgaXMgZG9uZSB1c2luZyBgbWFrZUNvbnZlcnRlcihyZWFkZXIsIHdyaXRlciwgb3B0aW9ucz8pYCwgd2hpY2ggdGFrZXMgYSByZWFkZXIgYW5kIGEgd3JpdGVyLCBhbmQgb3B0aW9uYWxseSBvcHRpb25zOgoKIyMjIyAqKmN3ZCoqIChzdHJpbmcpCgpUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSwgb25seSB1c2VmdWwgd2hlbiB3b3JraW5nIHdpdGggZmlsZXMuCgojIyMjICoqc2ltcGxpZnkqKiAoYm9vbGVhbikgKGRlZmF1bHQgdHJ1ZSkKCldoZW4gc2ltcGxpZnkgaXMgdHJ1ZSwgdGhlIGNvbnZlcnRlciB3aWxsIGxldCBjb3JlLXR5cGVzClsqY29tcHJlc3MqXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcyNzaW1wbGlmeSkgdGhlCnR5cGVzIGFmdGVyIGhhdmluZyBjb252ZXJ0ZWQgZnJvbSB7cmVhZGVyfSBmb3JtYXQgdG8gY29yZS10eXBlcy4KVGhpcyBpcyB1c3VhbGx5IHJlY29tbWVuZGVkLCBidXQgbWF5IGNhdXNlIHNvbWUgYW5ub3RhdGlvbnMgKGNvbW1lbnRzKQp0byBiZSBkcm9wcGVkLgoKIyMjIyAqKm1hcCoqIChDb252ZXJ0TWFwRnVuY3Rpb24pCgpDdXN0b20gbWFwIGZ1bmN0aW9uIGZvciB0cmFuc2Zvcm1pbmcgZWFjaCB0eXBlIGFmdGVyIGl0IGhhcyBiZWVuCmNvbnZlcnRlZCAqZnJvbSogdGhlIHNvdXJjZSB0eXBlIChhbmQgYWZ0ZXIgaXQgaGFzIGJlZW4gc2ltcGxpZmllZCksCmJ1dCBiZWZvcmUgaXQncyB3cml0dGVuIHRvIHRoZSB0YXJnZXQgdHlwZSBzeXN0ZW0uCgpUeXBlOiBgKG5vZGU6IE5hbWVkVHlwZSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFJlYWRvbmx5QXJyYXk8TmFtZWRUeXBlPikgPT4gTmFtZWRUeXBlYAooW05hbWVkVHlwZSByZWZdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzI3NwZWNpZmljYXRpb24pKQoKSWYgYGZpbHRlcmAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYmVmb3JlIGBmaWx0ZXJgLgoKSWYgYHRyYW5zZm9ybWAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYmVmb3JlIGB0cmFuc2Zvcm1gLgoKIyMjIyAqKmZpbHRlcioqIChDb252ZXJ0RmlsdGVyRnVuY3Rpb24pCgpDdXN0b20gZmlsdGVyIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgdHlwZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4KY29udmVydGVkICpmcm9tKiB0aGUgc291cmNlIHR5cGUuCgpUeXBlOiBgKG5vZGU6IE5hbWVkVHlwZSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFJlYWRvbmx5QXJyYXk8TmFtZWRUeXBlPikgPT4gYm9vbGVhbmAKKFtOYW1lZFR5cGUgcmVmXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcyNzcGVjaWZpY2F0aW9uKSkKCklmIGBtYXBgIGlzIHVzZWQgYXMgd2VsbCwgdGhpcyBydW5zIGFmdGVyIGBtYXBgLgoKSWYgYHRyYW5zZm9ybWAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYmVmb3JlIGB0cmFuc2Zvcm1gLgoKIyMjIyAqKnRyYW5zZm9ybSoqIChDb252ZXJ0VHJhbnNmb3JtRnVuY3Rpb24pCgpDdXN0b20gZmlsdGVyIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgdHlwZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4KY29udmVydGVkICpmcm9tKiB0aGUgc291cmNlIHR5cGUuCgpUeXBlOiBgKCBkb2M6IE5vZGVEb2N1bWVudCApID0+IE5vZGVEb2N1bWVudGAKKFtOb2RlRG9jdW1lbnQgcmVmXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcyNzcGVjaWZpY2F0aW9uKSkKCklmIGBtYXBgIGlzIHVzZWQgYXMgd2VsbCwgdGhpcyBydW5zIGFmdGVyIGBtYXBgLgoKSWYgYGZpbHRlcmAgaXMgdXNlZCBhcyB3ZWxsLCB0aGlzIHJ1bnMgYWZ0ZXIgYGZpbHRlcmAuCgojIyMjICoqc2hvcnRjdXQqKiAoYm9vbGVhbikgKGRlZmF1bHQgdHJ1ZSkKClNob3J0Y3V0IHJlYWRlciBhbmQgd3JpdGVyIGlmIHBvc3NpYmxlIChieXBhc3NpbmcgY29yZS10eXBlcykuCgoKCiMjIyBCYXNpYyBleGFtcGxlIGNvbnZlcnNpb24KCmBgYHRzCmltcG9ydCB7CiAgZ2V0VHlwZVNjcmlwdFJlYWRlciwKICBnZXRPcGVuQXBpV3JpdGVyLAogIG1ha2VDb252ZXJ0ZXIsCn0gZnJvbSAndHlwZWNvbnYnCgpjb25zdCByZWFkZXIgPSBnZXRUeXBlU2NyaXB0UmVhZGVyKCApOwpjb25zdCB3cml0ZXIgPSBnZXRPcGVuQXBpV3JpdGVyKCB7IGZvcm1hdDogJ3lhbWwnLCB0aXRsZTogJ015IEFQSScsIHZlcnNpb246ICd2MScgfSApOwpjb25zdCB7IGNvbnZlcnQgfSA9IG1ha2VDb252ZXJ0ZXIoIHJlYWRlciwgd3JpdGVyICk7CmNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgY29udmVydCggeyBkYXRhOiAiZXhwb3J0IHR5cGUgRm9vID0gc3RyaW5nIHwgbnVtYmVyOyIgfSApOwpkYXRhOyAvLyBUaGlzIGlzIHRoZSBPcGVuIEFQSSB5YW1sIGFzIGEgc3RyaW5nCmBgYAoKCiMjIyBKU09OIFNjaGVtYQoKVGhlcmUgYXJlIHR3byBleHBvcnRlZCBmdW5jdGlvbnMgZm9yIEpTT04gU2NoZW1hOgoKYGBgdHMKaW1wb3J0IHsgZ2V0SnNvblNjaGVtYVJlYWRlciwgZ2V0SnNvblNjaGVtYVdyaXRlciB9IGZyb20gJ3R5cGVjb252JwoKY29uc3QgcmVhZGVyID0gZ2V0SnNvblNjaGVtYVJlYWRlciggKTsKY29uc3Qgd3JpdGVyID0gZ2V0SnNvblNjaGVtYVdyaXRlciggKTsKYGBgCgpUaGV5IGRvbid0IGhhdmUgYW55IG9wdGlvbnMuCgp0eXBlY29udiBleHBlY3RzIHRoZSBKU09OIFNjaGVtYSB0byBjb250YWluICoqZGVmaW5pdGlvbnMqKiwgaS5lLiB0byBiZSBpbiB0aGUgZm9ybToKCjxkZXRhaWxzIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMycHg7Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCBncmF5OyI+CjxzdW1tYXJ5PkpTT04gU2NoZW1hPC9zdW1tYXJ5Pgo8cD4KCmBgYGpzb24KewoJImRlZmluaXRpb25zIjogewoJCSJVc2VyIjogewoJCQkidHlwZSI6ICJvYmplY3QiLAoJCQkicHJvcGVydGllcyI6IHsgIm5hbWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSB9LAoJCQkicmVxdWlyZWQiOiBbICJuYW1lIiBdCgkJfSwKCQkiQ2hhdExpbmUiOiB7CgkJCSJ0eXBlIjogIm9iamVjdCIsCgkJCSJwcm9wZXJ0aWVzIjogewoJCQkJInVzZXIiOiB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIgfSwKCQkJCSJsaW5lIjogeyAidHlwZSI6ICJzdHJpbmciIH0KCQkJfSwKCQkJInJlcXVpcmVkIjogWyAidXNlciIsICJsaW5lIiBdCgkJfQoJfQp9CmBgYAoKPC9wPgo8L2RldGFpbHM+Cgp0eXBlY29udiBkb2Vzbid0IHN1cHBvcnQgZXh0ZXJuYWwgcmVmZXJlbmNlcyAodG8gb3RoZXIgZmlsZXMpLiBJZiB5b3UgaGF2ZSB0aGF0LCB5b3UgbmVlZCB0byB1c2UgYSByZWZlcmVuY2UgcGFyc2VyIGFuZCBtZXJnZSBpdCBpbnRvIG9uZSBpbmxpbmUtcmVmZXJlbmNlZCBmaWxlIGJlZm9yZSB1c2luZyB0eXBlY29udi4KCgojIyMgT3BlbiBBUEkKCkNvbnZlcnRpbmcgdG8gb3IgZnJvbSBPcGVuIEFQSSBjYW4gYmUgZG9uZSB3aXRoIGJvdGggSlNPTiBhbmQgWUFNTC4gVGhlIGRlZmF1bHQgaXMgSlNPTi4KCldoZW4gcmVhZGluZywgaWYgdGhlIGZpbGVuYW1lIGVuZHMgd2l0aCBgLnltbGAgb3IgYC55YW1sYCwgdHlwZWNvbnYgd2lsbCBpbnRlcnByZXQgdGhlIGlucHV0IGFzIFlBTUwuCgpXcml0aW5nIGhvd2V2ZXIsIGlzIGRlY2lkZWQgaW4gdGhlIHdyaXRlciBmYWN0b3J5IGFuZCBwcm92aWRlZCB0byBgZ2V0T3BlbkFwaVdyaXRlcmAuCgpgYGB0cwppbXBvcnQgeyBnZXRPcGVuQXBpUmVhZGVyLCBnZXRPcGVuQXBpV3JpdGVyIH0gZnJvbSAndHlwZWNvbnYnCgpjb25zdCByZWFkZXIgPSBnZXRPcGVuQXBpUmVhZGVyKCApOwpjb25zdCB3cml0ZXIgPSBnZXRPcGVuQXBpV3JpdGVyKCB7CiAgZm9ybWF0OiAneWFtbCcsCiAgdGl0bGU6ICdNeSBBUEknLAogIHZlcnNpb246ICd2MScsCiAgc2NoZW1hVmVyc2lvbjogJzMuMC4wJywKfSApOwpgYGAKClRoZSBvcHRpb25zIHRvIGBnZXRPcGVuQXBpV3JpdGVyYCBpczoKCmBgYHRzCmludGVyZmFjZSB7CiAgZm9ybWF0Pzogc3RyaW5nOwogIHRpdGxlOiBzdHJpbmc7CiAgdmVyc2lvbjogc3RyaW5nOwogIHNjaGVtYVZlcnNpb24/OiBzdHJpbmc7Cn0KYGBgCgoKIyMjIFR5cGVTY3JpcHQKClR5cGVTY3JpcHQgY29udmVyc2lvbiBpcyBkb25lIHVzaW5nOgoKYGBgdHMKaW1wb3J0IHsgZ2V0VHlwZVNjcmlwdFJlYWRlciwgZ2V0VHlwZVNjcmlwdFdyaXRlciB9IGZyb20gJ3R5cGVjb252JwoKY29uc3QgcmVhZGVyID0gZ2V0VHlwZVNjcmlwdFJlYWRlciggKTsKY29uc3Qgd3JpdGVyID0gZ2V0VHlwZVNjcmlwdFdyaXRlciggKTsKYGBgCgpCb3RoIHRoZXNlIHRha2UgYW4gb3B0aW9uYWwgYXJndW1lbnQuCgpUaGUgYGdldFR5cGVTY3JpcHRSZWFkZXJgIHRha2VzIGFuIG9wdGlvbmFsCltgRnJvbVRzT3B0aW9uc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLXRzI3R5cGVzY3JpcHQtdG8tY29yZS10eXBlcykKb2JqZWN0IGZyb20gW2Bjb3JlLXR5cGVzLXRzYF1bY29yZS10eXBlcy10cy1naXRodWItdXJsXSwgYWx0aG91Z2ggYHdhcm5gIGlzbid0IG5lY2Vzc2FyeSBzaW5jZSBpdCdzIHNldCBieSB0eXBlY29udiBpbnRlcm5hbGx5LgoKVGhlIGBnZXRUeXBlU2NyaXB0V3JpdGVyYCB0YWtlcyBhbiBvcHRpb25hbApbYFRvVHNPcHRpb25zYF0oaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtdHMjY29yZS10eXBlcy10by10eXBlc2NyaXB0KQpvYmplY3QgZnJvbSBbYGNvcmUtdHlwZXMtdHNgXVtjb3JlLXR5cGVzLXRzLWdpdGh1Yi11cmxdLCBhbHRob3VnaCBgd2FybmAsIGBmaWxlbmFtZWAsIGBzb3VyY2VGaWxlbmFtZWAsIGB1c2VyUGFja2FnZWAgYW5kIGB1c2VyUGFja2FnZVVybGAgYXJlbid0IG5lY2Vzc2FyeSBzaW5jZSB0aGV5J3JlIHNldCBieSB0eXBlY29udiBpbnRlcm5hbGx5LgoKCiMjIyBHcmFwaFFMCgpHcmFwaFFMIGNvbnZlcnNpb24gaXMgZG9uZSB1c2luZzsKCmBgYHRzCmltcG9ydCB7IGdldEdyYXBoUUxSZWFkZXIsIGdldEdyYXBoUUxXcml0ZXIgfSBmcm9tICd0eXBlY29udicKCmNvbnN0IHJlYWRlciA9IGdldEdyYXBoUUxSZWFkZXIoICk7CmNvbnN0IHdyaXRlciA9IGdldEdyYXBoUUxXcml0ZXIoICk7CmBgYAoKQm90aCB0aGVzZSB0YWtlIGFuIG9wdGlvbmFsIGFyZ3VtZW50LgoKVGhlIGBnZXRHcmFwaFFMUmVhZGVyYCB0YWtlcyBhbiBvcHRpb25hbApbYEdyYXBocWxUb0NvcmVUeXBlc09wdGlvbnNgXShodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvY29yZS10eXBlcy1ncmFwaHFsI2dyYXBocWwtdG8tY29yZS10eXBlcykKb2JqZWN0IGZyb20gW2Bjb3JlLXR5cGVzLWdyYXBocWxgXVtjb3JlLXR5cGVzLWdyYXBocWwtZ2l0aHViLXVybF0sIGFsdGhvdWdoIGB3YXJuYCBpc24ndCBuZWNlc3Nhcnkgc2luY2UgaXQncyBzZXQgYnkgdHlwZWNvbnYgaW50ZXJuYWxseS4KClRoZSBgZ2V0R3JhcGhRTFdyaXRlcmAgdGFrZXMgYW4gb3B0aW9uYWwKW2BDb3JlVHlwZXNUb0dyYXBocWxPcHRpb25zYF0oaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtZ3JhcGhxbCNjb3JlLXR5cGVzLXRvLWdyYXBocWwpCm9iamVjdCBmcm9tIFtgY29yZS10eXBlcy1ncmFwaHFsYF1bY29yZS10eXBlcy1ncmFwaHFsLWdpdGh1Yi11cmxdLCBhbHRob3VnaCBgd2FybmAsIGBmaWxlbmFtZWAsIGBzb3VyY2VGaWxlbmFtZWAsIGB1c2VyUGFja2FnZWAgYW5kIGB1c2VyUGFja2FnZVVybGAgYXJlbid0IG5lY2Vzc2FyeSBzaW5jZSB0aGV5J3JlIHNldCBieSB0eXBlY29udiBpbnRlcm5hbGx5LgoKCiMjIyBTdXJlVHlwZQoKU3VyZVR5cGUgY29udmVyc2lvbiBpcyBkb25lIHVzaW5nOwoKYGBgdHMKaW1wb3J0IHsgZ2V0U3VyZVR5cGVSZWFkZXIsIGdldFN1cmVUeXBlV3JpdGVyIH0gZnJvbSAndHlwZWNvbnYnCgpjb25zdCByZWFkZXIgPSBnZXRTdXJlVHlwZVJlYWRlciggKTsKY29uc3Qgd3JpdGVyID0gZ2V0U3VyZVR5cGVXcml0ZXIoICk7CmBgYAoKQm90aCB0aGVzZSB0YWtlIGFuIG9wdGlvbmFsIGFyZ3VtZW50IGZyb20gdGhlIFtgY29yZS10eXBlcy1zdXJldHlwZWBdW2NvcmUtdHlwZXMtc3VyZXR5cGUtZ2l0aHViLXVybF0gcGFja2FnZS4KClRoZSBgZ2V0U3VyZVR5cGVSZWFkZXJgIHRha2VzIGFuIG9wdGlvbmFsCltgU3VyZXR5cGVUb0pzb25TY2hlbWFPcHRpb25zYF0oaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtc3VyZXR5cGUjc3VyZXR5cGUtdG8tY29yZS10eXBlcykuCgpUaGUgYGdldFN1cmVUeXBlV3JpdGVyYCB0YWtlcyBhbiBvcHRpb25hbApbYEpzb25TY2hlbWFUb1N1cmV0eXBlT3B0aW9uc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLXN1cmV0eXBlI2NvcmUtdHlwZXMtdG8tc3VyZXR5cGUpLgoKCltucG0taW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3R5cGVjb252LnN2ZwpbbnBtLXVybF06IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvdHlwZWNvbnYKW2Rvd25sb2Fkcy1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL3R5cGVjb252LnN2ZwpbYnVpbGQtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9hY3Rpb25zL3dvcmtmbG93L3N0YXR1cy9ncmFudGlsYS90eXBlY29udi9tYXN0ZXIueW1sP2JyYW5jaD1tYXN0ZXIKW2J1aWxkLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS90eXBlY29udi9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBTWFzdGVyCltjb3ZlcmFnZS1pbWFnZV06IGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9ncmFudGlsYS90eXBlY29udi9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcgpbY292ZXJhZ2UtdXJsXTogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2dyYW50aWxhL3R5cGVjb252P2JyYW5jaD1tYXN0ZXIKW25vZGUtdmVyc2lvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbm9kZS92L3R5cGVjb252Cltub2RlLXVybF06IGh0dHBzOi8vbm9kZWpzLm9yZy9lbi8KCltjb3JlLXR5cGVzLW5wbS11cmxdOiBodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2NvcmUtdHlwZXMKW2NvcmUtdHlwZXMtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzCltjb3JlLXR5cGVzLWpzb24tc2NoZW1hLW5wbS11cmxdOiBodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2NvcmUtdHlwZXMtanNvbi1zY2hlbWEKW2NvcmUtdHlwZXMtanNvbi1zY2hlbWEtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLWpzb24tc2NoZW1hCltjb3JlLXR5cGVzLXRzLW5wbS11cmxdOiBodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2NvcmUtdHlwZXMtdHMKW2NvcmUtdHlwZXMtdHMtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLXRzCltjb3JlLXR5cGVzLWdyYXBocWwtbnBtLXVybF06IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvY29yZS10eXBlcy1ncmFwaHFsCltjb3JlLXR5cGVzLWdyYXBocWwtZ2l0aHViLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFudGlsYS9jb3JlLXR5cGVzLWdyYXBocWwKW2NvcmUtdHlwZXMtc3VyZXR5cGUtbnBtLXVybF06IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvY29yZS10eXBlcy1zdXJldHlwZQpbY29yZS10eXBlcy1zdXJldHlwZS1naXRodWItdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL2dyYW50aWxhL2NvcmUtdHlwZXMtc3VyZXR5cGUKW3N1cmV0eXBlLWdpdGh1Yi11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vZ3JhbnRpbGEvc3VyZXR5cGUK readmeEtag: '"b7043a416d92ebe262c0d06cc82bc8aae498de44"' readmeLastModified: Sun, 04 Jun 2023 08:11:37 GMT repositoryId: 293245471 description: Convert between JSON Schema, TypeScript, GraphQL, Open API and SureType created: '2020-09-06T09:40:04Z' updated: '2024-09-03T18:13:47Z' language: TypeScript archived: false stars: 415 watchers: 3 forks: 9 owner: grantila logo: https://avatars.githubusercontent.com/u/5362579?v=4 license: MIT repoEtag: '"3ac514b3f680615be11bdf940fb4f1f3a52c0e8bd7991849cc5d879632b2c649"' repoLastModified: Tue, 03 Sep 2024 18:13:47 GMT foundInMaster: true category: Parsers id: 31c759927a7f06228ec927500d9722c5 - source: openapi3 tags repository: https://github.com/leosussan/fastapi-gino-arq-uvicorn v3: true repositoryMetadata: base64Readme: >- IyBmYXN0YXBpLWdpbm8tYXJxLXV2aWNvcm4KSGlnaC1wZXJmb3JtYW5jZSBBc3luYyBSRVNUIEFQSSwgaW4gUHl0aG9uLiBGYXN0QVBJICsgR0lOTyArIEFycSArIFV2aWNvcm4gKHBvd2VyZWQgYnkgUmVkaXMgJiBQb3N0Z3JlU1FMKS4KCiMjIENvbnRlbnRzCi0gW2Zhc3RhcGktZ2luby1hcnEtdXZpY29ybl0oI2Zhc3RhcGktZ2luby1hcnEtdXZpY29ybikKICAtIFtDb250ZW50c10oI2NvbnRlbnRzKQogIC0gW0dldCBTdGFydGVkXSgjZ2V0LXN0YXJ0ZWQpCiAgICAtIFtTZXR1cF0oI3NldHVwKQogICAgLSBbUnVuXSgjcnVuKQogICAgICAtIFtSdW4gTG9jYWxseV0oI3J1bi1sb2NhbGx5KQogICAgICAtIFtSdW4gTG9jYWxseSB3aXRoIERvY2tlci1Db21wb3NlLl0oI3J1bi1sb2NhbGx5LXdpdGgtZG9ja2VyLWNvbXBvc2UpCiAgICAtIFtCdWlsZCBZb3VyIEFwcGxpY2F0aW9uXSgjYnVpbGQteW91ci1hcHBsaWNhdGlvbikKICAtIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQogICAgLSBbQ29yZSBEZXBlbmRlbmNpZXNdKCNjb3JlLWRlcGVuZGVuY2llcykKICAgICAgLSBbQWRkaXRpb25hbCBEZXBlbmRlbmNpZXNdKCNhZGRpdGlvbmFsLWRlcGVuZGVuY2llcykKCiMjIEdldCBTdGFydGVkCiMjIyBTZXR1cAoxLiBDbG9uZSB0aGlzIFJlcG9zaXRvcnkuIGBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2xlb3N1c3Nhbi9mYXN0YXBpLWdpbm8tYXJxLXV2aWNvcm4uZ2l0YAoyLiBJbnN0YWxsIGBQeXRob24gMy44YCBhbmQgYHBvZXRyeWAuCiAgICAqIFJlY29tbWVuZGVkIE1ldGhvZDogYGFzZGZgIC0gYSB1bml2ZXJzYWwgdmVyc2lvbiBtYW5hZ2VyICh0aGluayBgbnZtYCBvciBgcHllbnZgKQogICAgICAgICogRm9sbG93IFt0aGVzZSBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vYXNkZi12bS5jb20vIy9jb3JlLW1hbmFnZS1hc2RmLXZtP2lkPWluc3RhbGwtYXNkZi12bSkgdG8gaW5zdGFsbCBgYXNkZmAuCiAgICAgICAgKiBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kcyBmcm9tIHRoZSBwcm9qZWN0IHJvb3Q6CiAgICAgICAgICAgICogYGFzZGYgcGx1Z2luIGFkZCBweXRob25gCiAgICAgICAgICAgICogYGFzZGYgcGx1Z2luIGFkZCBwb2V0cnlgCiAgICAgICAgICAgICogYGFzZGYgaW5zdGFsbGAgLS0gd2lsbCBkb3dubG9hZCAmIGNvbmZpZ3VyZSB0aGlzIHByb2plY3QncyBgUHl0aG9uYCArIGBwb2V0cnlgIHNldHVwCiAgICAgICAgKiBffk5PVEVfOiB5b3VyIG1hY2hpbmUgbXVzdCBoYXZlIGEgc3lzdGVtIHZlcnNpb24gb2YgUHl0aG9uIGluc3RhbGxlZC4gSWYgeW91IGRvbid0LCBydW4gdGhlIGZvbGxvd2luZzogYGFzZGYgaW5zdGFsbCBweXRob24gMy44LjIgJiYgYXNkZiBnbG9iYWwgcHl0aG9uIDMuOC4yYAogICAgKiBJZiB5b3UgaGF2ZSBgUHl0aG9uIDMuOGAgYW5kIGBwb2V0cnlgIGluc3RhbGxlZCBhbHJlYWR5LCBwbGVhc2UgZmVlbCBmcmVlIHRvIHNraXAuCjMuIEluc3RhbGwgZGVwZW5kZW5jaWVzIChgcG9ldHJ5IGluc3RhbGxgKS4KNC4gQWN0aXZhdGUgcHJlLWNvbW1pdCBob29rcyAoaW4gYHBvZXRyeSBzaGVsbGAsIHJ1biBgcHJlLWNvbW1pdCBpbnN0YWxsYCkuCjUuIE1ha2UgYSBjb3B5IG9mIGAuZGlzdC5lbnZgLCByZW5hbWUgdG8gYC5lbnZgLiBGaWxsIGluIFBvc3RncmVTUUwsIFJlZGlzLCBTZW50cnkgKG9wdGlvbmFsKSB2YXJpYWJsZXMuCjYuIEdlbmVyYXRlIERCIE1pZ3JhdGlvbnM6IGluIGBwb2V0cnkgc2hlbGxgLCBydW4gYGFsZW1iaWMgcmV2aXNpb24gLS1hdXRvZ2VuZXJhdGVgLiAKICAgICogQXBwbHkgbWlncmF0aW9ucyBtYW51YWxseSB3aXRoIGBhbGVtYmljIHVwZ3JhZGUgaGVhZGAuCiAgICAqIElmIHVzaW5nIHRoZSBEb2NrZXJmaWxlLCBtaWdyYXRpb25zIGFyZSBhcHBsaWVkIGF0IHN0YXJ0dXAuCgojIyMgUnVuCgojIyMjIFJ1biBMb2NhbGx5Cl9OT1RFOiBZb3UgbXVzdCBoYXZlIFBvc3RncmVTUUwgJiBSZWRpcyBydW5uaW5nIGxvY2FsbHkuXwoKMS4gTWFrZSBzdXJlIFBvc3RncmVTUUwgJiBSZWRpcyBhcmUgcnVubmluZyBsb2NhbGx5LgoyLiBSdW46CiAgICAtIEZhc3RBUEkgQXBwbGljYXRpb246CiAgICAgICAgKiBfRm9yIEFjdGl2ZSBEZXZlbG9wbWVudCAody8gYXV0by1yZWxvYWQpOl8gUnVuIGxvY2FsbHkgd2l0aCBgcG9ldHJ5IHJ1biB0YXNrIGFwcGAKICAgICAgICAqIF9Gb3IgRGVidWdnaW5nIChjb21wYXRpYmxlIHcvIGRlYnVnZ2Vycywgbm8gYXV0by1yZWxvYWQpOl8gQ29uZmlndXJlIGRlYnVnZ2VyIHRvIHJ1biBgcHl0aG9uIGFwcC9tYWluLnB5YC4KICAgIC0gQmFja2dyb3VuZCBUYXNrIFdvcmtlcjoKICAgICAgICAqIF9Gb3IgQWN0aXZlIERldmVsb3BtZW50Ol8gUnVuICBgcG9ldHJ5IHJ1biB0YXNrIHdvcmtlcmAKCiMjIyMgUnVuIExvY2FsbHkgd2l0aCBEb2NrZXItQ29tcG9zZS4KMS4gTWFrZSBzdXJlIGBEb2NrZXJgIGlzIHJ1bm5pbmcgbG9jYWxseS4KMi4gUnVuIGBwb2V0cnkgcnVuIHRhc2sgY29tcG9zZS11cGAqLgogICAtIFJ1biBgcG9ldHJ5IHJ1biB0YXNrIGNvbXBvc2UtZG93bmAgdG8gc3BpbiBkb3duLCBjbGVhbiB1cC4KCipgYXBwL3NldHRpbmdzL3ByZXN0YXJ0LnNoYCB3aWxsIHJ1biBtaWdyYXRpb25zIGZvciB5b3UgYmVmb3JlIHRoZSBhcHAgc3RhcnRzLgoKIyMjIEJ1aWxkIFlvdXIgQXBwbGljYXRpb24KKiBDcmVhdGUgcm91dGVzIGluIGAvYXBwL3JvdXRlc2AsIGltcG9ydCAmIGFkZCB0aGVtIHRvIHRoZSBgUk9VVEVSU2AgY29uc3RhbnQgaW4gIGAvYXBwL21haW4ucHlgCiogQ3JlYXRlIGRhdGFiYXNlIG1vZGVscyB0byBgL2FwcC9tb2RlbHMvb3JtYCwgYWRkIHRoZW0gdG8gYC9hcHAvbW9kZWxzL29ybS9taWdyYXRpb25zL2Vudi5weWAgZm9yIG1pZ3JhdGlvbnMKKiBDcmVhdGUgcHlkYW50aWMgbW9kZWxzIGluIGAvYXBwL21vZGVscy9weWRhbnRpY2AKKiBTdG9yZSBjb21wbGV4IGRiIHF1ZXJpZXMgaW4gYC9hcHAvbW9kZWxzL29ybS9xdWVyaWVzYAoqIFN0b3JlIGNvbXBsZXggdGFza3MgaW4gYGFwcC90YXNrc2AuCiogQWRkIC8gZWRpdCBnbG9iYWxzIHRvIGAvLmVudmAsIGV4cG9zZSAmIGltcG9ydCB0aGVtIGZyb20gYC9hcHAvc2V0dGluZ3MvZ2xvYmFscy5weWAKICAgICogVXNlIGFueSBjb3JvdXRpbmUgYXMgYSBiYWNrZ3JvdW5kIGZ1bmN0aW9uOiBzdG9yZSBhIHJlZmVyZW5jZSBpbiB0aGUgYEFSUV9CQUNLR1JPVU5EX0ZVTkNUSU9OU2AgZW52LgogICAgKiBTZXQgYFNFTlRSWV9EU05gIGluIHlvdXIgZW52aXJvbm1lbnQgdG8gZW5hYmxlIFNlbnRyeS4KKiBEZWZpbmUgY29kZSB0byBydW4gYmVmb3JlIGxhdW5jaCAobWlncmF0aW9ucywgc2V0dXAsIGV0YykgaW4gYC9hcHAvc2V0dGluZ3MvcHJlc3RhcnQuc2hgCgojIyBGZWF0dXJlcwojIyMgQ29yZSBEZXBlbmRlbmNpZXMKKiAqKkZhc3RBUEk6KiogdG91dHMgcGVyZm9ybWFuY2Ugb24tcGFyIHdpdGggTm9kZUpTICYgR28gKyBhdXRvbWF0aWMgU3dhZ2dlciArIFJlRG9jIGdlbmVyYXRpb24uIAoqICoqR0lOTzoqKiBidWlsdCBvbiBTUUxBbGNoZW15IGNvcmUuIExpZ2h0d2VpZ2h0LCBzaW1wbGUsIGFzeW5jaHJvbm91cyBPUk0gZm9yIFBvc3RncmVTUUwuCiogKipBcnE6KiogQXN5bmNpbyArIFJlZGlzID0gZmFzdCwgcmVzb3VyY2UtbGlnaHQgam9iIHF1ZXVpbmcgJiBSUEMuCiogKipVdmljb3JuOioqIExpZ2h0bmluZy1mYXN0LCBhc3luY2hyb25vdXMgQVNHSSBzZXJ2ZXIuCiogKipPcHRpbWl6ZWQgRG9ja2VyZmlsZToqKiBPcHRpbWl6ZWQgRG9ja2VyZmlsZSBmb3IgQVNHSSBhcHBsaWNhdGlvbnMsIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL3V2aWNvcm4tZ3VuaWNvcm4tZG9ja2VyLgoKIyMjIyBBZGRpdGlvbmFsIERlcGVuZGVuY2llcwoqICoqUG9zdGdyZVNRTDoqKiBSb2J1c3QsIGZ1bGx5LWZlYXR1cmVkLCBzY2FsYWJsZSwgb3Blbi1zb3VyY2UuCiogKipSZWRpczoqKiBGYXN0LCBzaW1wbGUsIGJyb2tlciBmb3IgdGhlIEFycSB0YXNrIHF1ZXVlLgoqICoqUHlkYW50aWM6KiogQ29yZSB0byBGYXN0QVBJLiBEZWZpbmUgaG93IGRhdGEgc2hvdWxkIGJlIGluIHB1cmUsIGNhbm9uaWNhbCBweXRob247IHZhbGlkYXRlIGl0IHdpdGggcHlkYW50aWMuIAoqICoqQWxlbWJpYzoqKiBIYW5kbGVzIGRhdGFiYXNlIG1pZ3JhdGlvbnMuIENvbXBhdGlibGUgd2l0aCBHSU5PLgoqICoqU1FMQWxjaGVteV9VdGlsczoqKiBQcm92aWRlcyBlc3NlbnRpYWwgaGFuZGxlcyAmIGRhdGF0eXBlcy4gQ29tcGF0aWJsZSB3aXRoIEdJTk8uCiogKipTZW50cnk6KiogT3Blbi1zb3VyY2UsIGNsb3VkLWhvc3RlZCBlcnJvciArIGV2ZW50IG1vbml0b3JpbmcuCiogKipQcmUtQ29tbWl0OioqIGF1dG9tYXRpYyBmb3JtYXR0aW5nIChgYmxhY2tgICsgYGlzb3J0YCkgYW5kIGxpbnRpbmcgKGBmbGFrZThgKS4KKiAqKlRhc2tpcHk6KiogU21hbGwsIGZsZXhpYmxlIHRhc2sgcnVubmVyIGZvciBQb2V0cnkuCg== readmeEtag: '"3cfcd59db1b45ce6f02867b4282c5e9cc15a329d"' readmeLastModified: Fri, 19 Mar 2021 05:12:56 GMT repositoryId: 193383620 description: >- High-performance Async REST API, in Python. FastAPI + GINO + Arq + Uvicorn (w/ Redis and PostgreSQL). created: '2019-06-23T18:44:16Z' updated: '2024-08-12T13:21:05Z' language: Python archived: false stars: 413 watchers: 12 forks: 43 owner: leosussan logo: https://avatars.githubusercontent.com/u/7993496?v=4 license: MIT repoEtag: '"90fbf89c3f9eeb5a6bba19b1ad07249acb1ece21862de3b56e49d7157ebd5774"' repoLastModified: Mon, 12 Aug 2024 13:21:05 GMT foundInMaster: true category: Server Implementations id: ca4835106497a7abc28ad7ff8d789dfd - source: openapi3 tags repository: https://github.com/endpoints4s/endpoints4s v3: true id: 8eb71a5192e00663da80338fa967ab89 repositoryMetadata: base64Readme: >- IyBlbmRwb2ludHM0cyAKClshW0dpdHRlcl0oaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltLy5zdmcpXShodHRwczovL2dpdHRlci5pbS9lbmRwb2ludHM0cy9lbmRwb2ludHM0cykKWyFbY29kZWNvdi5pb10oaHR0cDovL2NvZGVjb3YuaW8vZ2l0aHViL2VuZHBvaW50czRzL2VuZHBvaW50czRzL2NvdmVyYWdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cDovL2NvZGVjb3YuaW8vZ2l0aHViL2VuZHBvaW50czRzL2VuZHBvaW50czRzP2JyYW5jaD1tYXN0ZXIpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2VuZHBvaW50czRzL2VuZHBvaW50czRzLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2VuZHBvaW50czRzL2VuZHBvaW50czRzKQoKCmVuZHBvaW50czRzIGlzIGEgU2NhbGEgbGlicmFyeSBmb3IgZGVmaW5pbmcgY29tbXVuaWNhdGlvbiBwcm90b2NvbHMgb3ZlciBIVFRQIGJldHdlZW4KYXBwbGljYXRpb25zLgoKU2VlIHRoZSBbZG9jdW1lbnRhdGlvbl0oaHR0cDovL2VuZHBvaW50czRzLmdpdGh1Yi5pbykgdG8gbGVhcm4gbW9yZS4KCiMjIFJ1bm5pbmcgdGhlIEV4YW1wbGVzCgp+fn4KJCBzYnQKPiArKzIuMTMuMgo+IDxleGFtcGxlPi9yZVN0YXJ0Cn5+fgoKV2hlcmUgYDxleGFtcGxlPmAgY2FuIGJlIGVpdGhlcgpbYGV4YW1wbGUtY3Fyc2BdKGRvY3VtZW50YXRpb24vZXhhbXBsZXMvY3FycyksCltgZXhhbXBsZS1kb2N1bWVudGVkYF0oZG9jdW1lbnRhdGlvbi9leGFtcGxlcy9kb2N1bWVudGVkKQpvciBbYGV4YW1wbGUtcXVpY2tzdGFydC1zZXJ2ZXJgXShkb2N1bWVudGF0aW9uL2V4YW1wbGVzL3F1aWNrc3RhcnQpLgoKQW5kIHRoZW4gYnJvd3NlIGh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC4KCiMjIENvbnRyaWJ1dGluZwoKU2VlIHRoZSBbb3BlbiBpc3N1ZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lbmRwb2ludHM0cy9lbmRwb2ludHM0cy9pc3N1ZXMpLgoKIyMgU3BvbnNvcnMKCklmIHlvdSBmaW5kIGVuZHBvaW50czRzIHVzZWZ1bCwgcGxlYXNlIGNvbnNpZGVyIGFza2luZyB5b3VyIGNvbXBhbnkgdG8gc3VwcG9ydCB0aGlzIHByb2plY3QgYnkgW2JlY29taW5nIGEgc3BvbnNvcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vZW5kcG9pbnRzNHMpLiBZb3VyIGRvbmF0aW9ucyB3aWxsIGhlbHAgdGhlIHByb2plY3Qgc3RheSB1cCB0byBkYXRlIGFuZCBmdW5kIHdvcmsgb24gaW1wb3J0YW50IFtpc3N1ZXMgb3IgZmVhdHVyZSByZXF1ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2VuZHBvaW50czRzL2VuZHBvaW50czRzL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBYm91bnR5KS4KCiMjIFN1cHBvcnQKCltKZXRCcmFpbnNdKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vP2Zyb209c2NhbGEtZW5kcG9pbnRzKSBvZmZlcnMgb25lIE9wZW4gU291cmNlIGxpY2Vuc2UuCgojIyBMaWNlbnNlCgpUaGlzIGNvbnRlbnQgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFtNSVQgTGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkuCg== readmeEtag: '"c10e79373f051a7ce3741a57ec29dd09a4acf1d8"' readmeLastModified: Tue, 21 May 2024 17:47:22 GMT repositoryId: 57041055 description: >- Describe HTTP endpoints in Scala and derive clients, servers, and documentation created: '2016-04-25T12:48:00Z' updated: '2024-09-04T21:27:52Z' language: Scala archived: false stars: 407 watchers: 11 forks: 97 owner: endpoints4s logo: https://avatars.githubusercontent.com/u/67427463?v=4 license: MIT repoEtag: '"743548b9d342d24471f82444a7ea0dbd0b7b9e5492594edd92c2617f3cf85abd"' repoLastModified: Wed, 04 Sep 2024 21:27:52 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/thomaxxl/safrs v3: true repositoryMetadata: base64Readme: >- WyFbTGF0ZXN0IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3NhZnJzLnN2ZyldKGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2FmcnMvKQpbIVtTdXBwb3J0ZWQgUHl0aG9uIHZlcnNpb25zXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9zYWZycy5zdmcpXShodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NhZnJzLykKWyFbTGljZW5zZTogR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtR1BMdjMtYmx1ZS5zdmcpXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjApCiFbUHl0aG9uIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vdGhvbWF4eGwvc2FmcnMvd29ya2Zsb3dzL1B5dGhvbiUyMGFwcGxpY2F0aW9uL2JhZGdlLnN2ZykKWyFbQ29kYWN5IEJhZGdlXShodHRwczovL2FwcC5jb2RhY3kuY29tL3Byb2plY3QvYmFkZ2UvR3JhZGUvZGUxMmM1MDcxN2U4NDg3ZGI1ZGNjMzE5MDdlNjI3ZjcpXShodHRwczovL3d3dy5jb2RhY3kuY29tL2doL3Rob21heHhsL3NhZnJzL2Rhc2hib2FyZD91dG1fc291cmNlPWdpdGh1Yi5jb20mYW1wO3V0bV9tZWRpdW09cmVmZXJyYWwmYW1wO3V0bV9jb250ZW50PXRob21heHhsL3NhZnJzKQpbIVtEb3dubG9hZHNdKGh0dHBzOi8vcGVweS50ZWNoL2JhZGdlL3NhZnJzKV0oaHR0cHM6Ly9wZXB5LnRlY2gvcHJvamVjdC9zYWZycykKCiMgU0FGUlM6IFB5dGhvbiBPcGVuQVBJICYgSlNPTjpBUEkgRnJhbWV3b3JrCgohW2RlbW9dKGRvY3MvaW1hZ2VzL3NhZnJzLmdpZikKCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0idGFibGUtb2YtY29udGVudHMiPjwvYT4KCi0gW0ludHJvZHVjdGlvbl0oI292ZXJ2aWV3KQotIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCi0gW0pTT046QVBJIEludGVyZmFjZV0oI2h0dHAtbWV0aG9kcykKLSBbUmVzb3VyY2UgT2JqZWN0c10oI3Jlc291cmNlLW9iamVjdHMpCi0gW1JlbGF0aW9uc2hpcHNdKCNyZWxhdGlvbnNoaXBzKQotIFtNZXRob2RzXSgjbWV0aG9kcykKICAgIC0gW0N1c3RvbSBNZXRob2RzXSgjY3VzdG9tLW1ldGhvZHMpCiAgICAtIFtDbGFzcyBNZXRob2RzXSgjY2xhc3MtbWV0aG9kcykKLSBbSW5pdGlhbGl6YXRpb25dKCNpbml0aWFsaXphdGlvbikKLSBbRW5kcG9pbnQgTmFtaW5nXSgjZW5kcG9pbnQtbmFtaW5nKQotIFtDb25maWd1cmF0aW9uXSgjY29uZmlndXJhdGlvbikKLSBbRXhwb3NpbmcgRXhpc3RpbmcgRGF0YWJhc2VzXSgjZXhwb3NlLWV4aXN0aW5nKQotIFtNb3JlIEV4YW1wbGVzIGFuZCBVc2UgQ2FzZXNdKCNtb3JlLWV4YW1wbGVzLWFuZC11c2UtY2FzZXMpCi0gW0FkdmFuY2VkIEZ1bmN0aW9uYWxpdHldKCNhZHZhbmNlZC11c2FnZSkKICAgIC0gW0ZpbHRlcmluZ10oI2ZpbHRlcmluZykKLSBbQ3VzdG9taXphdGlvbl0oI2N1c3RvbWl6YXRpb24pCiAgICAtIFtDdXN0b20gU2VyaWFsaXphdGlvbl0oI2N1c3RvbS1zZXJpYWxpemF0aW9uKQogICAgLSBbRXhjbHVkaW5nIEF0dHJpYnV0ZXMgYW5kIFJlbGF0aW9uc2hpcHNdKCNleGNsdWRpbmctYXR0cnMtcmVscykKICAgIC0gW0hUVFAgRGVjb3JhdG9yc10oI2h0dHAtZGVjb3JhdG9ycykKICAgIC0gW0FQSSBNZXRob2RzXSgjYXBpLW1ldGhvZHMpCiAgICAtIFtDdXN0b20gU3dhZ2dlcl0oI2N1c3RvbS1zd2FnZ2VyKQogICAgLSBbQ2xhc3NlcyBXaXRob3V0IFNRTEFsY2hlbXkgTW9kZWxzXSgjQ2xhc3Nlcy1XaXRob3V0LU1vZGVscykKCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0ib3ZlcnZpZXciPjwvYT4KIyMgSW50cm9kdWN0aW9uCgpTQUZSUyBleHBvc2VzIFNRTEFsY2hlbXkgZGF0YWJhc2UgbW9kZWxzIGFzIGEgW0pTT046QVBJXShodHRwczovL2pzb25hcGkub3JnKSB3ZWJzZXJ2aWNlIGFuZCBnZW5lcmF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgW3N3YWdnZXIvT3BlbkFQSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvLykuCgpEb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgW3dpa2ldKGh0dHBzOi8vZ2l0aHViLmNvbS90aG9tYXh4bC9zYWZycy93aWtpKS4KCl9fQSBbTElWRSBERU1PXShodHRwczovL3Rob21heHhsLnB5dGhvbmFueXdoZXJlLmNvbSkgaXMgYXZhaWxhYmxlX18sIHdoZXJlIG11Y2ggb2YgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSBzaW1wbGUgW2V4YW1wbGVdKGV4YW1wbGVzL2RlbW9fcHl0aG9uYW55d2hlcmVfY29tLnB5KS4KCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0iaW5zdGFsbGF0aW9uIj48L2E+CiMjIEluc3RhbGxhdGlvbgoKU0FGUlMgY2FuIGJlIGluc3RhbGxlZCBhcyBhIFtwaXAgcGFja2FnZV0oaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zYWZycy8pIG9yIGJ5IGRvd25sb2FkaW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tIGdpdGh1YiwgZm9yIGV4YW1wbGU6CgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vdGhvbWF4eGwvc2FmcnMKY2Qgc2FmcnMKcGlwIGluc3RhbGwgLgpgYGAKCk9uY2UgdGhlIGRlcGVuZGVuY2llcyBhcmUgaW5zdGFsbGVkLCB0aGUgW2V4YW1wbGVzXShleGFtcGxlcykgY2FuIGJlIHN0YXJ0ZWQsIGZvciBleGFtcGxlCmBgYApweXRob24gZXhhbXBsZXMvZGVtb19yZWxhdGlvbnNoaXAucHkgInlvdXItaW50ZXJmYWNlLWlwIgpgYGAKCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0iaHR0cC1tZXRob2RzIj48L2E+CiMjIEpTT046QVBJIEludGVyZmFjZQoKRXhwb3NlZCByZXNvdXJjZSBvYmplY3RzIGNhbiBiZSBxdWVyaWVkIHVzaW5nIHRoZSBbSlNPTjpBUEkgZm9ybWF0XShodHRwOi8vanNvbmFwaS5vcmcvZm9ybWF0LykuIFRoZSBBUEkgc3VwcG9ydHMgZm9sbG93aW5nIEhUVFAgb3BlcmF0aW9uczoKCi0gR0VUIDogUmV0cmlldmUgYW4gb2JqZWN0IG9yIGEgbGlzdCBvZiBvYmplY3RzCi0gUEFUQ0ggOiBVcGRhdGUgYW4gb2JqZWN0LgotIERFTEVURTogRGVsZXRlIGFuIG9iamVjdC4KLSBQT1NUIDogQ3JlYXRlIGFuIG9iamVjdC4gCgpQbGVhc2UgY2hlY2sgdGhlIFtKU09OOkFQSSBzcGVjXShodHRwOi8vanNvbmFwaS5vcmcvZm9ybWF0LykgZm9yIG1vcmUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gCllvdSBjYW4gYWxzbyB0cnkgb3V0IHRoZSBpbnRlcmZhY2UgaW4gdGhlIFtsaXZlIGRlbW9dKGh0dHA6Ly90aG9tYXh4bC5weXRob25hbnl3aGVyZS5jb20vYXBpKS4KCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0icmVzb3VyY2Utb2JqZWN0cyI+PC9hPgojIyBSZXNvdXJjZSBPYmplY3RzCgpEYXRhYmFzZSBvYmplY3RzIGFyZSBpbXBsZW1lbnRlZCBhcyBzdWJjbGFzc2VzIG9mIHRoZSBTQUZSU0Jhc2UgYW5kIFNRTEFsY2hlbXkgbW9kZWwgY2xhc3Nlcy4gVGhlIFNRTEFsY2hlbXkgY29sdW1ucyBhcmUgc2VyaWFsaXplZCB0byBKU09OIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgUkVTVCBBUEkgaXMgaW52b2tlZC4gCgpGb2xsb3dpbmcgZXhhbXBsZSBbYXBwXShleGFtcGxlcy9kZW1vX3JlbGF0aW9uc2hpcC5weSkgaWxsdXN0cmF0ZXMgaG93IHRoZSBBUEkgaXMgYnVpbHQgYW5kIGRvY3VtZW50ZWQ6CgpgYGBweXRob24KY2xhc3MgVXNlcihTQUZSU0Jhc2UsIGRiLk1vZGVsKToKICAgICIiIgogICAgICAgIGRlc2NyaXB0aW9uOiBVc2VyIGRlc2NyaXB0aW9uCiAgICAiIiIKCiAgICBfX3RhYmxlbmFtZV9fID0gIlVzZXJzIgogICAgaWQgPSBkYi5Db2x1bW4oZGIuSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSkKICAgIG5hbWUgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKQogICAgZW1haWwgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKQoKYGBgCgpUaGUgVXNlciBjbGFzcyBpcyBpbXBsZW1lbnRlZCBhcyBhIHN1YmNsYXNzIG9mIAotIGRiLk1vZGVsOiBTUUxBbGNoZW15IGJhc2UKLSBTQUZSU0Jhc2U6IEltcGxlbWVudHMgSlNPTiBzZXJpYWxpemF0aW9uIGZvciB0aGUgb2JqZWN0IGFuZCBnZW5lcmF0ZXMgKHN3YWdnZXIpIEFQSSBkb2N1bWVudGF0aW9uCgpUaGlzIFVzZXIgb2JqZWN0IGlzIHRoZW4gZXhwb3NlZCB0aHJvdWdoIHRoZSB3ZWIgaW50ZXJmYWNlIHVzaW5nIHRoZSBBcGkgb2JqZWN0CgpgYGBweXRob24gCmFwaS5leHBvc2Vfb2JqZWN0KFVzZXIpCmBgYCAKClRoZSBVc2VyIG9iamVjdCBSRVNUIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSBvbiAvVXNlciwgdGhlIHN3YWdnZXIgc2NoZW1hIGlzIGF2YWlsYWJsZSBvbiAvYXBpL3N3YWdnZXIuanNvbiBhbmQgdGhlIFVJIGlzIGF2YWlsYWJsZSBvbiAvYXBpLzoKIVtVc2VyIFN3YWdnZXJdKGRvY3MvaW1hZ2VzL1VTRVJfc3dhZ2dlci5wbmcpCgoKPGEgY2xhc3M9Im1rLXRvY2xpZnkiIGlkPSJyZWxhdGlvbnNoaXBzIj48L2E+CiMjIFJlbGF0aW9uc2hpcHMKCkRhdGFiYXNlIG9iamVjdCBzdWNoIGFzIHRoZSBVc2VyIGNsYXNzIGZyb20gdGhlIGRlbW8ucHkgZXhhbXBsZSBjYW4gYmUgZXh0ZW5kZWQgdG8gaW5jbHVkZSByZWxhdGlvbnNoaXBzIHdpdGggb3RoZXIgb2JqZWN0cy4gVGhlIGRlbW9fcmVsYXRpb25zaGlwLnB5IGNvbnRhaW5zIGZvbGxvd2luZyBleHRlbnNpb24gb2YgdGhlIFVzZXIgY2xhc3Mgd2hlcmUgYSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgQm9vayBjbGFzcyBpcyBpbXBsZW1lbnRlZDoKCmBgYHB5dGhvbgpjbGFzcyBVc2VyKFNBRlJTQmFzZSwgZGIuTW9kZWwpOgogICAgJycnCiAgICAgICAgZGVzY3JpcHRpb246IFVzZXIgZGVzY3JpcHRpb24KICAgICcnJwogICAgX190YWJsZW5hbWVfXyA9ICdVc2VycycKICAgIGlkID0gZGIuQ29sdW1uKGRiLlN0cmluZywgcHJpbWFyeV9rZXk9VHJ1ZSkKICAgIG5hbWUgPSBkYi5Db2x1bW4oZGIuU3RyaW5nLCBkZWZhdWx0PScnKQogICAgZW1haWwgPSBkYi5Db2x1bW4oZGIuU3RyaW5nLCBkZWZhdWx0PScnKQogICAgYm9va3MgPSBkYi5yZWxhdGlvbnNoaXAoJ0Jvb2snLCBiYWNrX3BvcHVsYXRlcz0idXNlciIpCi4uLgpgYGAgCgpBIG1hbnktdG8tb25lIGRhdGFiYXNlIGFzc29jaWF0aW9uIGlzIGRlY2xhcmVkIGJ5IHRoZSBiYWNrX3BvcHVsYXRlcyByZWxhdGlvbnNoaXAgYXJndW1lbnQuClRoZSBCb29rIGNsYXNzIGlzIHNpbXBseSBhbm90aGVyIHN1YmNsYXNzIG9mIFNBRlJTQmFzZSBhbmQgZGIuTW9kZWwsIHNpbWlsYXIgdG8gdGhlIHByZXZpb3VzIFVzZXIgY2xhc3M6CgpgYGBweXRob24KY2xhc3MgQm9vayhTQUZSU0Jhc2UsIGRiLk1vZGVsKToKICAgICcnJwogICAgICAgIGRlc2NyaXB0aW9uOiBCb29rIGRlc2NyaXB0aW9uCiAgICAnJycKICAgIF9fdGFibGVuYW1lX18gPSAnQm9va3MnCiAgICBpZCA9IGRiLkNvbHVtbihkYi5TdHJpbmcsIHByaW1hcnlfa2V5PVRydWUpCiAgICBuYW1lID0gZGIuQ29sdW1uKGRiLlN0cmluZywgZGVmYXVsdD0nJykKICAgIHVzZXJfaWQgPSBkYi5Db2x1bW4oZGIuU3RyaW5nLCBkYi5Gb3JlaWduS2V5KCdVc2Vycy5pZCcpKQogICAgdXNlciA9IGRiLnJlbGF0aW9uc2hpcCgnVXNlcicsIGJhY2tfcG9wdWxhdGVzPSdib29rcycpCmBgYAoKVGhlIFVzZXIuYm9vayByZWxhdGlvbnNoaXAgY2FuIGJlIHF1ZXJpZWQgaW4gdGhlIEFQSSB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgZW5kcG9pbnRzOgohW1JlbGF0aW9ucyBTd2FnZ2VyXShkb2NzL2ltYWdlcy9SZWxhdGlvbnNfc3dhZ2dlci5wbmcpCgotIFBPU1QgYWRkcyBhbiBpdGVtIHRvIHRoZSByZWxhdGlvbnNoaXAKLSBERUxFVEUgcmVtb3ZlcyBhbiBpdGVtIGZyb20gdGhlIHJlbGF0aW9uc2hpcAotIEdFVCByZXRyaWV2ZXMgYSBsaXN0IG9mIGl0ZW0gaWRzCgpUaGUgcmVsYXRpb25zaGlwIEFQSSBlbmRwb2ludHMgd29yayBzaW1pbGFybHkgZm9yIG9uZS10by1tYW55IHJlbGF0aW9uc2hpcHMuCgpSZWxhdGlvbnNoaXAgbWVtYmVycyBjYW4gYWxzbyBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2Ugd2hlbiBxdWVyeWluZyBhbiBpbnN0YW5jZSwgYnkgc3BlY2lmeWluZyB0aGUgcmVsYXRpb25zaGlwIG5hbWVzIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QgaW4gdGhlIGBpbmNsdWRlYCBxdWVyeSBhcmd1bWVudC4KCiFbcmVsYXRpb25zaGlwIGluY2x1ZGUgc3dhZ2dlcl0oZG9jcy9pbWFnZXMvcmVsX2luY2x1ZGUuUE5HKQoKRm9yIGV4YW1wbGUsIHRvIHJldHJpZXZlIGFsbCBpdGVtcyBpbiB0aGUgYGJvb2tzX3JlYWRgIHJlbGF0aW9uc2hpcCBmcm9tIHRoZSBQZW9wbGUgZW5kcG9pbnQsIHlvdSBtYXkgYWRkIHRoZSBgaW5jbHVkZT1ib29rc19yZWFkYCB1cmwgcGFyYW1ldGVyCgoKaHR0cDovL3Rob21heHhsLnB5dGhvbmFueXdoZXJlLmNvbS9hcGkvUGVvcGxlLz9pbmNsdWRlPWJvb2tzX3JlYWQKClRvIHJldHJpZXZlIG5lc3RlZCByZWxhdGlvbnNoaXAgaXRlbXMsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbmVzdGVkIHJlbGF0aW9uc2hpcCBuYW1lIGFmdGVyIHRoZSAnLicsIHRvIHJldHJpZXZlIHRoZSBhdXRob3JzIG9mIHRoZSBib29rc19yZWFkIGluc3RhbmNlcyBmb3IgaW5zdGFuY2UsIHlvdSBjYW4gdXNlCgpodHRwOi8vdGhvbWF4eGwucHl0aG9uYW55d2hlcmUuY29tL2FwaS9QZW9wbGUvP2luY2x1ZGU9Ym9va3NfcmVhZC5hdXRob3IKCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0ibWV0aG9kcyI+PC9hPgojIyBNZXRob2RzCgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9ImN1c3RvbS1tZXRob2RzIj48L2E+CiMjIyBDdXN0b20gTWV0aG9kcwoKU2FmcnMgYWxsb3dzIHRoZSB1c2VyIHRvIGltcGxlbWVudCBjdXN0b20gbWV0aG9kcyBvbiB0aGUgZXhwb3NlZCBvYmplY3RzLiBUaGlzIG1ldGhvZHMgY2FuIGJlIGludm9rZWQgdGhyb3VnaCB0aGUganNvbiBBUEkgYnkgc2VuZGluZyBhbiBIVFRQIFBPU1QgcmVxdWVzdCB0byB0aGUgbWV0aG9kIGVuZHBvaW50ClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpbXBsZW1lbnRzIGEgInNlbmRfbWFpbCIgbWV0aG9kIGZybyBleGFtcGxlOgoKYGBgcHl0aG9uCmNsYXNzIFVzZXIoU0FGUlNCYXNlLCBkYi5Nb2RlbCk6CiAgICAnJycKICAgICAgICBkZXNjcmlwdGlvbjogVXNlciBkZXNjcmlwdGlvbgogICAgJycnCiAgICBfX3RhYmxlbmFtZV9fID0gJ1VzZXJzJwogICAgaWQgPSBDb2x1bW4oU3RyaW5nLCBwcmltYXJ5X2tleT1UcnVlKQogICAgbmFtZSA9IENvbHVtbihTdHJpbmcsIGRlZmF1bHQ9JycpCiAgICBlbWFpbCA9IENvbHVtbihTdHJpbmcsIGRlZmF1bHQ9JycpCgogICAgIyBGb2xsb3dpbmcgbWV0aG9kIGlzIGV4cG9zZWQgdGhyb3VnaCB0aGUgUkVTVCBBUEkgCiAgICAjIFRoaXMgbWVhbnMgaXQgY2FuIGJlIGludm9rZWQgd2l0aCBhIEhUVFAgUE9TVAogICAgQGpzb25hcGlfcnBjKGh0dHBfbWV0aG9kcz1bJ1BPU1QnLCdHRVQnXSkKICAgIGRlZiBzZW5kX21haWwoc2VsZiwgZW1haWwpOgogICAgICAgICcnJwogICAgICAgICAgICBkZXNjcmlwdGlvbiA6IFNlbmQgYW4gZW1haWwKICAgICAgICAgICAgYXJnczoKICAgICAgICAgICAgICAgIGVtYWlsOgogICAgICAgICAgICAgICAgICAgIHR5cGUgOiBzdHJpbmcgCiAgICAgICAgICAgICAgICAgICAgZXhhbXBsZSA6IHRlc3QgZW1haWwKICAgICAgICAnJycKICAgICAgICBjb250ZW50ID0gJ01haWwgdG8ge30gOiB7fVxuJy5mb3JtYXQoc2VsZi5uYW1lLCBlbWFpbCkKICAgICAgICByZXR1cm4geyAncmVzdWx0JyA6ICdzZW50IHt9Jy5mb3JtYXQoY29udGVudCl9CgpgYGAKClRoaXMgbWV0aG9kIHNob3dzIHVwIGluIHRoZSBzd2FnZ2VyIGludGVyZmFjZToKCiFbTWV0aG9kIFN3YWdnZXJdKGRvY3MvaW1hZ2VzL21ldGhvZF9zd2FnZ2VyLlBORykKClRoZSBgYGBzZW5kX21haWxgYGAgbWV0aG9kIGlzIGRvY3VtZW50ZWQgd2l0aCB0aGUgYGBganNvbmFwaV9ycGNgYGAgZGVjb3JhdG9yLiAKVGhpcyBkZWNvcmF0b3IgZ2VuZXJhdGVzIGEgc2NoZW1hIGJhc2VkIG9uIHRoZSBmdW5jdGlvbiBkb2N1bWVudGF0aW9uLiBUaGlzIGRvY3VtZW50YXRpb24gY29udGFpbnMgeWFtbCBzcGVjaWZpY2F0aW9uIG9mIHRoZSBBUEkgd2hpY2ggaXMgdXNlZCBieSB0aGUgc3dhZ2dlciBVSS4gCgpbYXBpX21ldGhvZHMucHldKHNhZnJzL2FwaV9tZXRob2RzLnB5KSBjb250YWlucyBhIGNvdXBsZSBvZiBtZXRob2RzIHRoYXQgY2FuIGJlIHVzZWQgaW4geW91ciBtb2RlbHMuCgpUaGUgeWFtbCBzcGVjaWZpY2F0aW9uIGhhcyB0byBiZSBpbiB0aGUgZmlyc3QgcGFydCBvZiB0aGUgZnVuY3Rpb24gYW5kIGNsYXNzIGNvbW1lbnRzLiBUaGVzZSBwYXJ0cyBhcmUgZGVsaW1pdGVkIGJ5IGZvdXIgZGFzaGVzICgiLS0tLSIpIC4gVGhlIHJlc3Qgb2YgdGhlIGNvbW1lbnQgbWF5IGNvbnRhaW4gYWRkaXRpb25hbCBkb2N1bWVudGF0aW9uLgoKPGEgY2xhc3M9Im1rLXRvY2xpZnkiIGlkPSJjbGFzcy1tZXRob2RzIj48L2E+CiMjIyBDbGFzcyBNZXRob2RzCgpUd28gY2xhc3MtbGV2ZWwgbWV0aG9kcyBoYXZlIGJlZW4gZGVmaW5lZCB0byBmYWNpbGl0YXRlIG9iamVjdCByZXRyaWV2YWw6CgoqICoqbG9va3VwKiogOiByZXRyaWV2ZSBhIGxpc3Qgb2Ygb2JqZWN0cyB0aGF0IG1hdGNoIHRoZSBhcmd1bWVudCBsaXN0LiBGb3IgZXhhbXBsZSwgZm9sbG93aW5nIEhUVFAgUE9TVCByZXF1ZXN0IHRvIGEgY29udGFpbmVyIHdpbGwgcmV0cmlldmUgYSBsaXN0IG9mIGl0ZW1zd2hlcmUgdGhlIG5hbWUgaXMgInRob21hcyIKYGBganNvbgp7CiAgIm1ldGhvZCI6ICJsb29rdXAiLAogICJhcmdzIjogewogICAgIm5hbWUiOiAidGhvbWFzIgogIH0KfQpgYGAKCiogKipnZXRfbGlzdCoqIDogcmV0cmlldmUgYSBsaXN0IG9mIHRoZSBpdGVtcyB3aXRoIHRoZSBzcGVjaWZpZWQgSUQncwoKPGEgY2xhc3M9Im1rLXRvY2xpZnkiIGlkPSJpbml0aWFsaXphdGlvbiI+PC9hPgojIyBBcHBsaWNhdGlvbiBJbml0aWFsaXphdGlvbgpUaGUgQVBJIGNhbiBiZSBpbml0aWFsaXplZCBsaWtlIHRoaXM6CmBgYHB5dGhvbgphcGkgPSBTYWZyc0FwaShhcHAsIGhvc3Q9SE9TVCwgcG9ydD1QT1JULCBwcmVmaXg9QVBJX1BSRUZJWCkKYGBgClRoZW4geW91IGNhbiBleHBvc2Ugb2JqZWN0cyB3aXRoIGBleHBvc2Vfb2JqZWN0YApgYGBweXRob24KYXBpLmV4cG9zZV9vYmplY3QoVXNlcikgICAgCmBgYAoKQW4gZXhhbXBsZSB0aGF0IHVzZXMgdGhlIGZsYXNrIGFwcCBmYWN0b3J5IHBhdHRlcm4gaXMgaW1wbGVtZW50IGluIFtleGFtcGxlcy9taW5pX2FwcC5weV0oZXhhbXBsZXMvbWluaV9hcHAucHkpCgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9ImVuZHBvaW50LW5hbWluZyI+PC9hPgojIyBFbmRwb2ludCBOYW1pbmcKQXMgY2FuIGJlIHNlZW4gaW4gdGhlIHN3YWdnZXIgVUk6Ci0gdGhlIGVuZHBvaW50IGNvbGxlY3Rpb24gcGF0aCBuYW1lcyBhcmUgdGhlIFNRTEFsY2hlbXkgXF9cX3RhYmxlbmFtZVxfXF8gcHJvcGVydGllcyAoZS5nLiAvVXNlcnMgKQotIHRoZSBwYXJhbWV0ZXIgbmFtZXMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgU0FGUlNCYXNlIGNsYXNzIG5hbWVzIChlLmcuIHtVc2VySWR9ICkKLSB0aGUgdGhlIHJlbGF0aW9uc2hpcCBuYW1lcyBhcmUgdGhlIFNBRlJTQmFzZSBjbGFzcyByZWxhdGlvbnNoaXAgbmFtZXMgKGUuZyAvYm9va3MgKQpUaGUgVVJMIHBhdGggZm9ybWF0IGlzIFtjb25maWd1cmFibGVdKCNjb25maWd1cmF0aW9uKQoKPGEgY2xhc3M9Im1rLXRvY2xpZnkiIGlkPSJjb25maWd1cmF0aW9uIj48L2E+CiMjIENvbmZpZ3VyYXRpb24KClNvbWUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGNhbiBiZSBzZXQgaW4gW2NvbmZpZy5weV0oc2FmcnMvY29uZmlnLnB5KToKLSBVU0VfQVBJX01FVEhPRFM6IHNldCB0aGlzIHRvIGZhbHNlIGluIGNhc2UgeW91IHdhbnQgdG8gZGlzYWJsZSB0aGUgYGpzb25hcGlfcnBjYCBmdW5jdGlvbmFsaXR5Ci0gSU5TVEFOQ0VfVVJMX0ZNVDogVGhpcyBwYXJhbWV0ZXIgZGVjbGFyZXMgdGhlIGluc3RhbmNlIHVybCBwYXRoIGZvcm1hdAotIFJFTEFUSU9OU0hJUF9VUkxfRk1UOiBUaGlzIHBhcmFtZXRlciBkZWNsYXJlcyB0aGUgcmVsYXRpb25zaGlwIGVuZHBvaW50IHBhdGggZm9ybWF0Cgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9ImV4cG9zZS1leGlzdGluZyI+PC9hPgojIyBFeHBvc2luZyBFeGlzdGluZyBEYXRhYmFzZXMKU2FmcnMgYWxsb3dzIHlvdSB0byBFeHBvc2UgZXhpc3RpbmcgZGF0YWJhc2VzIGFzIGpzb25hOmFwaSBzZXJ2aWNlcyB3aXRoIHRoZSBbZXhwb3NlX2V4aXN0aW5nLnB5XShleHBvc2VfZXhpc3RpbmcvZXhwb3NlX2V4aXN0aW5nLnB5KSBzY3JpcHQsIGZvciBleGFtcGxlOgoKYGBgYmFzaApweXRob24zIGV4cG9zZV9leGlzdGluZy5weSBteXNxbCtweW15c3FsOi8vcm9vdDpwYXNzd29yZEBsb2NhbGhvc3Qvc2FraWxhIC0taG9zdCBsb2NhbGhvc3QKYGBgCgpUaGlzIHNjcmlwdCB1c2VzIHNxbGFjb2RlZ2VuIHRvIGdlbmVyYXRlIGEgc291cmNlIGZpbGUgY29udGFpbmluZyB0aGUgU1FMQWxjaGVteSBhbmQgYFNBRlJTQmFzZWAgZGF0YWJhc2UgbW9kZWxzIGFuZCBzdGFydHMgdGhlIEFQSSB3ZWJzZXJ2aWNlLgoKTW9yZSBkZXRhaWxzIFtoZXJlXShkb2NzL0V4cG9zZURCLm1kKS4gVGhpcyBhcHByb2FjaCBpcyB1c2VkIGJ5IHRoZSBbQXBpTG9naWNTZXJ2ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS92YWxodWJlci9BcGlMb2dpY1NlcnZlcikgcHJvamVjdC4KCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0ibW9yZS1leGFtcGxlcy1hbmQtdXNlLWNhc2VzIj48L2E+CiMjIE1vcmUgRXhhbXBsZXMgYW5kIFVzZSBDYXNlcwpUaGUgW2V4YW1wbGVzXShleGFtcGxlcykgZm9sZGVyIGNvbnRhaW5zIG1vcmUgZXhhbXBsZSBzY3JpcHRzOgotIFVzaW5nIGEgc2hhIGhhc2ggYXMgcHJpbWFyeSBrZXkgKGlkKQotIENPUlMgdXNhZ2UKLSBGbGFzay1BZG1pbiBpbnRlZ3JhdGlvbiBleGFtcGxlLCBlZy46CiFbZGVtb10oZG9jcy9pbWFnZXMvZmxhc2stYWRtaW4ucG5nKQoKQSBkb2NrZXIgaW1hZ2UgY2FuIGJlIGZvdW5kIGhlcmU6CltodHRwczovL2dpdGh1Yi5jb20vdGhvbWF4eGwvc2FmcnMtZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL3Rob21heHhsL3NhZnJzLWV4YW1wbGUpCgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9ImFkdmFuY2VkLXVzYWdlIj48L2E+CiMjIEFkdmFuY2VkIEZ1bmN0aW9uYWxpdHkKCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0iZmlsdGVyaW5nIj48L2E+CiMjIyBGaWx0ZXJpbmcKVGhlIHN3YWdnZXIgc2hvd3MgdGhlIGpzb25hcGkgZmlsdGVycyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSB1cmwgcXVlcnkgYXJndW1lbnRzLiBJdGVtcyB3aXRoIGFuIGV4YWN0IG1hdGNoIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlIHZhbHVlIGNhbiBiZSBmZXRjaGVkIGJ5IHNwZWNpZnlpbmcgdGhlIGNvcnJlc3BvbmRpbmcga2V5LXZhbHVlIHF1ZXJ5IHBhcmFtZXRlci4gRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhlIGBVc2VyYCBjbGFzcywgZXhwb3NlZCBhdCBgL1VzZXJzYCBoYXMgYSBgbmFtZWAgYXR0cmlidXRlLCB0byByZXRyaWV2ZSBhbGwgaW5zdGFuY2VzIHdpdGggdGhlIG5hbWUgIkpvaG4iLCB5b3UgY2FuIHVzZSBhIGBHRVRgIHJlcXVlc3QgdG8gCmAvVXNlcnM/ZmlsdGVyW25hbWVdPUpvaG5gLgoKSXQgaXMgYWxzbyBwb3NzaWJsZSB0byB1c2UgbW9yZSBnZW5lcmljIGZpbHRlcnMgYnkgc3BlY2lmaXlpbmcgYSBKU09OIHN0cmluZywgZm9yIGV4YW1wbGUgYGZpbHRlcj1beyJuYW1lIjoidGltZXN0YW1wIiwib3AiOiJndCIsInZhbCI6IjIwMjAtMDgtMDEifSx7Im5hbWUiOiJ0aW1lc3RhbXAiLCJvcCI6Imx0IiwidmFsIjoiMjAyMC0wOC0wMiJ9XWAuCgpNb3JlIGluZm8gY2FuIGJlIGZvdW5kIGluIHRoZSBbd2lraV0oaHR0cHM6Ly9naXRodWIuY29tL3Rob21heHhsL3NhZnJzL3dpa2kvQVBJLUZ1bmN0aW9uYWxpdHkjZmlsdGVyaW5nKS4KCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0iY3VzdG9tLXNlcmlhbGl6YXRpb24iPjwvYT4KIyMjIEN1c3RvbSBTZXJpYWxpemF0aW9uClNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbiBhcmUgaW1wbGVtZW50ZWQgYnkgdGhlIFNBRlJTQmFzZSBgdG9fZGljdGAgYW5kIGBfX2luaXRfX2AgOiB5b3UgY2FuIGV4dGVuZCB0aGVzZSBtZXRob2RzIGFzIHVzdWFsLgpGb3IgZXhhbXBsZSwgaWYgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHNvbWUgYXR0cmlidXRlcyB0byB0aGUganNvbiBwYXlsb2FkIG9mIHRoZSBVc2VyIG9iamVjdCwgeW91IGNhbiBvdmVycmlkZSB0aGUgdG9fZGljdCBtZXRob2Q6CgpgYGBweXRob24KY2xhc3MgVXNlcihTQUZSU0Jhc2UsIGRiLk1vZGVsKToKICAgICcnJwogICAgICAgIGRlc2NyaXB0aW9uOiBVc2VyIGRlc2NyaXB0aW9uCiAgICAnJycKICAgIF9fdGFibGVuYW1lX18gPSAnVXNlcnMnCiAgICBpZCA9IGRiLkNvbHVtbihkYi5TdHJpbmcsIHByaW1hcnlfa2V5PVRydWUpCiAgICBuYW1lID0gZGIuQ29sdW1uKGRiLlN0cmluZywgZGVmYXVsdD0nJykKICAgIGVtYWlsID0gZGIuQ29sdW1uKGRiLlN0cmluZywgZGVmYXVsdD0nJykKICAgIGJvb2tzID0gZGIucmVsYXRpb25zaGlwKCdCb29rJywgYmFja19wb3B1bGF0ZXM9InVzZXIiKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpOgogICAgICAgIHJlc3VsdCA9IFNBRlJTQmFzZS50b19kaWN0KHNlbGYpCiAgICAgICAgcmVzdWx0WydjdXN0b21fZmllbGQnXSA9ICdjdXN0b20nCiAgICAgICAgcmV0dXJuIHJlc3VsdApgYGAgCgpUaGlzIHdpbGwgYWRkIHRoZSBgY3VzdG9tX2ZpZWxkYCBhdHRyaWJ1dGUgdG8gdGhlIHJlc3VsdCBhdHRyaWJ1dGVzOgpgYGBqc29uCiJhdHRyaWJ1dGVzIjogewogICAgImN1c3RvbV9maWVsZCI6ICJjdXN0b20iLAogICAgImVtYWlsIjogInJlYWRlcl9lbWFpbDAiLAogICAgIm5hbWUiOiAiUmVhZGVyIDAiCn0KYGBgCgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9ImN1c3RvbWl6YXRpb24iPjwvYT4KIyMgQ3VzdG9taXphdGlvbgoKPGEgY2xhc3M9Im1rLXRvY2xpZnkiIGlkPSJleGNsdWRpbmctYXR0cnMtcmVscyI+PC9hPgojIyMgRXhjbHVkaW5nIEF0dHJpYnV0ZXMgYW5kIFJlbGF0aW9uc2hpcHMKSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBhdHRyaWJ1dGVzIGFuZCByZWxhdGlvbnNoaXBzIHRoYXQgc2hvdWxkIG5vdCBiZSBzZXJpYWxpemVkIGJ5IHNwZWNpZnlpbmcgdGhlIHJlc3BlY3RpdmUgYGV4Y2x1ZGVfYXR0cnNgIGFuZCDDqHhjbHVkZV9yZWxzYCBjbGFzcyBhdHRyaWJ1dGVzIGluIHlvdXIgU0FGUlNCYXNlIGluc3RhbmNlcy4KRXhhbXBsZXMgY2FuIGJlIGZvdW5kIFtoZXJlXShleGFtcGxlcy9kZW1vX3B5dGhvbmFueXdoZXJlX2NvbS5weSNMODEpIGFuZCBbaGVyZV0oZXhhbXBsZXMvZGVtb19odHRwX2dldC5weSNMMjEpCgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9ImxpbWl0LWh0dHAtdmVyYnMiPjwvYT4KIyMjIExpbWl0aW5nIEhUVFAgTWV0aG9kcwpJdCBpcyBwb3NzaWJsZSB0byBsaW1pdCB0aGUgSFRUUCBtZXRob2RzIHRoYXQgYXJlIGFsbG93ZWQgYnkgb3ZlcnJpZGluZyB0aGUgYGh0dHBfbWV0aG9kc2AgY2xhc3MgYXR0cmlidXRlLiBBbiBleGFtcGxlIGNhbiBiZSBmb3VuZCBbaGVyZV0oZXhhbXBsZXMvZGVtb19odHRwX2dldC5weSNMMjApCgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9IkhUVFAtZGVjb3JhdG9ycyI+PC9hPgojIyMgSFRUUCBEZWNvcmF0b3JzClRoZSBgZGVjb3JhdG9yc2AgY2xhc3MgYXR0cmlidXRlIGxpc3QgY2FuIGJlIHVzZWQgdG8gYWRkIGN1c3RvbSBkZWNvcmF0b3JzIHRvIHRoZSBIVFRQIGVuZHBvaW50cy4gQW4gZXhhbXBsZSBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgaW1wbGVtZW50ZWQKaW4gdGhlIFthdXRoZW50aWNhdGlvbiBleGFtcGxlc10oZXhhbXBsZXMvYXV0aGVudGljYXRpb24pLgoKCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0iYXBpLW1ldGhvZHMiPjwvYT4KIyMjIEFQSSBNZXRob2RzClNvbWUgYWRkaXRpb25hbCBBUEkgUlBDIG1ldGhvZHMgYXJlIGltcGxlbWVudGVkIGluIFthcGlfbWV0aG9kcy5weV0oc2FmcnMvYXBpX21ldGhvZHMucHkpLCBlLmcuIG15c3FsIHJlZ2V4IHNlYXJjaC4gCgo8YSBjbGFzcz0ibWstdG9jbGlmeSIgaWQ9ImN1c3RvbS1zd2FnZ2VyIj48L2E+CiMjIyBDdXN0b20gc3dhZ2dlcgpUaGUgc3dhZ2dlciBzY2hlbWEgY2FuIGJlIG1lcmdlZCB3aXRoIGEgbW9kaWZpZWQgc2NoZW1hIGRpY3Rpb25hcnkgYnkgc3VwcGx5aW5nIHRoZSB0by1iZS1tZXJnZWQgZGljdGlvbmFyeSBhcyB0aGUgYGN1c3RvbV9zd2FnZ2VyYCBhcmd1bWVudCB0byBgU2FmcnNBcGlgLCBlLmcuCmBgYHB5dGhvbgpjdXN0b21fc3dhZ2dlciA9IHsiaW5mbyI6IHsidGl0bGUiIDogIk5ldyBUaXRsZSIgfX0gIyBDdXN0b21pemVkIHN3YWdnZXIgdGl0bGUgd2lsbCBiZSBtZXJnZWQKYXBpID0gU2FmcnNBcGkoYXBwLCBob3N0PXN3YWdnZXJfaG9zdCwgcG9ydD1QT1JULCBwcmVmaXg9T0FTX1BSRUZJWCwgYXBpX3NwZWNfdXJsPU9BU19QUkVGSVgrJy9zd2FnZ2VyJywKICAgICAgICAgICAgICAgY3VzdG9tX3N3YWdnZXI9Y3VzdG9tX3N3YWdnZXIsIHNjaGVtZXM9WydodHRwJywgJ2h0dHBzJ10sIGRlc2NyaXB0aW9uPWRlc2NyaXB0aW9uKQpgYGAKCjxhIGNsYXNzPSJtay10b2NsaWZ5IiBpZD0iQ2xhc3Nlcy1XaXRob3V0LU1vZGVscyI+PC9hPgojIyMgQ2xhc3NlcyBXaXRob3V0IFNRTEFsY2hlbXkgTW9kZWxzCllvdSBjYW4gaW1wbGVtZW50IGEgc2VyaWFsaXphYmxlIGNsYXNzIHdpdGhvdXQgYSBtb2RlbCBidXQgdGhpcyByZXF1aXJlcyBzb21lIGV4dHJhIHdvcmsgYmVjYXVzZSBzYWZycyBuZWVkcyB0byBrbm93IHdoaWNoIGF0dHJpYnV0ZXMgYW5kIHJlbGF0aW9uc2hpcHMgdG8gc2VyaWFsaXplLiBBbiBleGFtcGxlIGlzIGltcGxlbWVudGVkIFtoZXJlXShleGFtcGxlcy9kZW1vX3N0YXRlbGVzcy5weSkKCiMjIyBNb3JlIEN1c3RvbWl6YXRpb24KVGhlIGRvY3VtZW50YXRpb24gaXMgYmVpbmcgbW92ZWQgdG8gdGhlIFt3aWtpXShodHRwczovL2dpdGh1Yi5jb20vdGhvbWF4eGwvc2FmcnMvd2lraSkKCjxkZXRhaWxzPgo8c3VtbWFyeT5BYm91dDwvc3VtbWFyeT4KU0FGUlMgaXMgYW4gYWNyb255bSBmb3IgKipTKipxbCoqQSoqbGNoZW15ICoqRioqbGFzay0qKlIqKmVzdGZ1bCAqKlMqKndhZ2dlci4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBmcmFtZXdvcmsgaXMgdG8gaGVscCBweXRob24gZGV2ZWxvcGVycyBjcmVhdGUgYSBzZWxmLWRvY3VtZW50aW5nIEpTT04gQVBJIGZvciBzcWxhbGNoZW15IGRhdGFiYXNlIG9iamVjdHMgYW5kIHJlbGF0aW9uc2hpcHMuIFRoZXNlIG9iamVjdHMgY2FuIGJlIHNlcmlhbGl6ZWQgdG8gSlNPTiBhbmQgY2FuIGJlIGNyZWF0ZWQsIHJldHJpZXZlZCwgdXBkYXRlZCBhbmQgZGVsZXRlZCB0aHJvdWdoIHRoZSBKU09OIEFQSS4gCk9wdGlvbmFsbHksIGN1c3RvbSByZXNvdXJjZSBvYmplY3QgbWV0aG9kcyBjYW4gYmUgZXhwb3NlZCBhbmQgaW52b2tlZCB1c2luZyBKU09OLgpDbGFzcyBhbmQgbWV0aG9kIGRlc2NyaXB0aW9ucyBhbmQgZXhhbXBsZXMgY2FuIGJlIHByb3ZpZGVkIGluIHlhbWwgc3ludGF4IGluIHRoZSBjb2RlIGNvbW1lbnRzLiBUaGUgZGVzY3JpcHRpb24gaXMgcGFyc2VkIGFuZCBzaG93biBpbiB0aGUgc3dhZ2dlciB3ZWIgaW50ZXJmYWNlLiAKClRoZSByZXN1bHQgaXMgYW4gZWFzeS10by11c2UgW3N3YWdnZXIvT3BlbkFQSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvLykgYW5kIFtKU09OOkFQSV0oaHR0cHM6Ly9qc29uYXBpLm9yZykgY29tcGxpYW50IEFQSSBpbXBsZW1lbnRhdGlvbi4KPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5PmxpbWl0YXRpb25zICYgVG9kb3M8L3N1bW1hcnk+ClRoaXMgY29kZSB3YXMgZGV2ZWxvcGVkIGZvciBhIHNwZWNpZmljIHVzZS1jYXNlIGFuZCBtYXkgbm90IGJlIGZsZXhpYmxlIGVub3VnaCBmb3IgZXZlcnlvbmUncyBuZWVkcy4gQSBsb3Qgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIGJ1dCBub3QgZG9jdW1lbnRlZCBmb3IgdGhlIHNha2Ugb2YgYnJldml0eS4KUGVyZm9ybWFuY2UgaXMgcmVhc29uYWJsZSBmb3IgcmVndWxhciBkYXRhYmFzZXMsIGJ1dCBvbmNlIHlvdSBzdGFydCBleHBvc2luZyByZWFsbHkgYmlnIHRhYmxlcyB5b3UgbWF5IHJ1biBpbnRvIHByb2JsZW1zLCBmb3IgZXhhbXBsZTogdGhlIGBjb3VudCgpYCBmb3IgbXlzcWwgaW5ub2RiIGlzIHNsb3cgb24gbGFyZ2UoMU0gcm93cykgdGFibGVzLCBhIHdvcmthcm91bmQgY2FuIGJlIGltcGxlbWVudGVkIGJ5IHF1ZXJ5aW5nIHRoZSBgc3lzYCB0YWJsZXMgb3IgdXNpbmcgd2Vya3pldWcgY2FjaGluZy4gCkZlZWwgZnJlZSB0byBvcGVuIGFuIGlzc3VlIG9yIGRyb3AgW21lXShtYWlsdG86dGhvbWFzLnBvbGxldCtubytzcGFtK0BnbWFpbC5jb20pIGFuIGVtYWlsIGlmIHlvdSBydW4gaW50byBwcm9ibGVtcyBvciBzb21ldGhpbmcgaXNuJ3QgY2xlYXIhCjwvZGV0YWlscz4KCjxkZXRhaWxzPgo8c3VtbWFyeT5SZWZlcmVuY2VzPC9zdW1tYXJ5PgoKLSBbSlNPTjpBUEkgc3BlY2lmaWNhdGlvbl0oaHR0cDovL2pzb25hcGkub3JnL2Zvcm1hdC8pCi0gW09wZW5BcGkgKFN3YWdnZXIpXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKQotIFtGbGFza10oaHR0cDovL2ZsYXNrLnBvY29vLm9yZy8pCi0gW1NRTEFsY2hlbXldKGh0dHBzOi8vd3d3LnNxbGFsY2hlbXkub3JnLykKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5PlRoYW5rczwvc3VtbWFyeT4KSSBkZXZlbG9wZWQgdGhpcyBjb2RlIHdoZW4gSSB3b3JrZWQgYXQgW0V4Y2VsbGl1bSBTZXJ2aWNlc10oaHR0cHM6Ly93d3cuZXhjZWxsaXVtLXNlcnZpY2VzLmNvbS8pLiBUaGV5IGFsbG93ZWQgbWUgdG8gb3BlbiBzb3VyY2UgaXQgd2hlbiBJIHN0b3BwZWQgd29ya2luZyB0aGVyZS4KPC9kZXRhaWxzPgo= readmeEtag: '"7b833f77aaec004fd81fff045d5af97d79d16fbf"' readmeLastModified: Sun, 07 Jul 2024 17:44:01 GMT repositoryId: 104184487 description: SqlAlchemy Flask-Restful Swagger Json:API OpenAPI created: '2017-09-20T07:56:55Z' updated: '2024-09-05T14:34:15Z' language: Python archived: false stars: 405 watchers: 14 forks: 72 owner: thomaxxl logo: https://avatars.githubusercontent.com/u/4190750?v=4 license: GPL-3.0 repoEtag: '"e8166ac3a955f9c1f52494d160837ead68abf1c6a50d92aa78d3f26e9a361382"' repoLastModified: Thu, 05 Sep 2024 14:34:15 GMT foundInMaster: true category: Server Implementations id: 1ccc4d969c768f04576d518679fb6489 - source: openapi3 tags repository: https://github.com/dgarcia360/openapi-boilerplate v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgogIDxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij4KICAgICAgPGltZyBzcmM9ImRvY3MvaGVhZGVyLnBuZyIgd2lkdGg9IjU1MCIvPgogIDwvZGl2Pgo8L2gxPgoKWyFbT3BlbkFQSSBsaW50ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZ2FyY2lhMzYwL29wZW5hcGktYm9pbGVycGxhdGUvYWN0aW9ucy93b3JrZmxvd3MvbGludGVyLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2RnYXJjaWEzNjAvb3BlbmFwaS1ib2lsZXJwbGF0ZS9hY3Rpb25zL3dvcmtmbG93cy9saW50ZXIueWFtbCkKWyFbTGljZW5zZTogTUlUXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtTUlULXllbGxvdy5zdmcpXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkKCiMgT3BlbkFQSSBib2lsZXJwbGF0ZQoKQSBzdGFydGVyIHRlbXBsYXRlIGZvciAqKk9wZW5BUEkgU3BlY2lmaWNhdGlvbioqIChPQVMpIHByb2plY3RzLgoKVGhpcyBwcm9qZWN0IHNwbGl0cyB0aGUgW1N3YWdnZXIgUGV0c3RvcmVdKGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8pIGV4YW1wbGUgZnJvbSB0aGUgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbiBpbnRvIHNtYWxsZXIgZmlsZXMuIEl0IGFsc28gYWRkcyBoYW5keSBjb21tYW5kcyB0byBidWlsZCwgbGludCwgYW5kIHByZXZpZXcgdGhlIE9wZW5BUEkgZG9jdW1lbnQgZnJvbSB0aGUgdGVybWluYWwuCgpZb3UgY2FuIHVzZSB0aGlzIHRlbXBsYXRlIHRvIGd1aWRlIHRoZSBvcmdhbml6YXRpb24gb2YgeW91ciBwcm9qZWN0LiBFaXRoZXIgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEgbmV3IE9wZW5BUEkgZG9jdW1lbnQgZnJvbSBzY3JhdGNoIG9yIGlmIHlvdSBhbHJlYWR5IGhhdmUgaXQgZGVmaW5lZC4gCgojIyBGZWF0dXJlcwoKKiDwn5OdIFdyaXRlIE9wZW5BUEkgZGVmaW5pdGlvbnMgaW4gZGlmZmVyZW50IGZpbGVzLgoqIPCflIAgQ29tYmluZSBhbGwgZmlsZXMgd2l0aCBbcmVkb2NseS1jbGldKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jbHktY2xpKS4KKiDinIUgVmFsaWRhdGUgYW5kIGxpbnQgdGhlIE9wZW5BUEkgZG9jdW1lbnQgd2l0aCBbc3RvcGxpZ2h0aW8vc3BlY3RyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbCkuCiog4pyoIFB1Ymxpc2ggcmVmZXJlbmNlIGRvY3Mgd2l0aCBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKSAmIEdpdEh1YiBQYWdlcy4KCiMjIFdoeT8KCldoZW4gSSB1c2VkIHRvIGRvY3VtZW50IEFQSXMgZm9sbG93aW5nIHRoZSBPcGVuQVBJIHNwZWMsIEkgYWx3YXlzIGVuZGVkIHVwIHdpdGggZG9jdW1lbnRzIG9mIHRob3VzYW5kcyBvZiBsaW5lcywgd2hpY2ggd2VyZSBhIG5pZ2h0bWFyZSB0byBtYWludGFpbi4KCkZvciB0aGlzIHJlYXNvbiwgSSBleHBsb3JlZCBob3cgdG8gc3BsaXQgT3BlbkFQSSBkb2N1bWVudHMuIEp1bXAgb3ZlciB0byBteSBbYmxvZ10oaHR0cHM6Ly9kYXZpZGdhcmNpYS5kZXYvcG9zdHMvaG93LXRvLXNwbGl0LW9wZW4tYXBpLXNwZWMtaW50by1tdWx0aXBsZS1maWxlcy8pIHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIHByb2Nlc3MuIEJhc2VkIG9uIG15IHJlc2VhcmNoLCBJIGNyZWF0ZWQgdGhpcyBvcGluaW9uYXRlZCB0ZW1wbGF0ZSB0byBkZWZpbmUsIHRlc3QsIGFuZCBwdWJsaXNoIG1vZHVsYXIgT3BlbkFQSSBwcm9qZWN0cy4KClByb3Blcmx5IG9yZ2FuaXppbmcgeW91ciBwcm9qZWN0IGNvbWVzIHdpdGggZ3JlYXQgYWR2YW50YWdlcy4gQnkgc3BsaXR0aW5nIGEgbGFyZ2UgT3BlbkFQSSBzcGVjIGludG8gbXVsdGlwbGUgZmlsZXMsIGl0IHdpbGwgbm90IG9ubHkgYmUgbXVjaCBlYXNpZXIgdG8gaGFuZGxlLiBEb2N1bWVudGluZyBpdCB3aWxsIGJlIG11Y2ggbW9yZSBlbmpveWFibGUsIHRvby4gSSBhbHNvIHJlZ3VsYXJseSBnZXQgdGhlIGZlZWRiYWNrIHRoYXQgb3RoZXIgZGV2ZWxvcGVycyBhcmUgbW9yZSB3aWxsaW5nIHRvIGNvbnRyaWJ1dGUgYW5kIHByb3Bvc2UgY2hhbmdlcyB0byB0aGUgZG9jdW1lbnQgd2l0aCB0aGlzIHN0cnVjdHVyZS4KCiMjIEdldHRpbmcgc3RhcnRlZAoKIyMjIFJlcXVpcmVtZW50cwoKKiBOb2RlLmpzIDE2IChjdXJyZW50KQoKIyMjIEluc3RhbGxhdGlvbgoKMS4gQ2xvbmUgdGhlIHJlcG9zaXRvcnkuCgogICAgYGBgCiAgICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2RnYXJjaWEzNjAvb3BlbmFwaS1ib2lsZXJwbGF0ZS5naXQKICAgIGBgYAoKMi4gSW5zdGFsbCB0aGUgcHJvamVjdCBkZXBlbmRlbmNpZXMuCgogICAgYGBgCiAgICBucG0gaW5zdGFsbAogICAgYGBgCgozLiBFZGl0IGBvcGVuYXBpLnlhbWxgIHRvIGZpdCB5b3VyIEFQSSBkZWZpbml0aW9uLiBJZiB5b3XigJlyZSBub3QgZmFtaWxpYXIgd2l0aCB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uLCByZWFkIFtHZXR0aW5nIHN0YXJ0ZWQgd2l0aCBPQVNdKGh0dHBzOi8vc3dhZ2dlci5pby9zb2x1dGlvbnMvZ2V0dGluZy1zdGFydGVkLXdpdGgtb2FzLykgZmlyc3QuCgojIyBVc2VmdWwgY29tbWFuZHMKClRoZSBwcm9qZWN0IHdpbGwgYnVpbGQsIGxpbnQsIGFuZCBwcmV2aWV3IHRoZSBPcGVuQVBJIGRvY3VtZW50IGZyb20gdGhlIHRlcm1pbmFsLCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CgojIyMgQnVpbGQKClRoZSBjb21tYW5kIGJ1bmRsZXMgdGhlIHNwZWMgYXMgb25lIGAueWFtbGAgZmlsZS4KCmBgYApucG0gcnVuIGJ1aWxkCmBgYAoKVGhlIG1pbmlmaWVkIGRvY3VtZW50IGlzIHN0b3JlZCBpbiBgX2J1aWxkL29wZW5hcGkueWFtbGAuCgojIyMgVGVzdAoKVGhlIGNvbW1hbmQgY2hlY2tzIGlmIHRoZSBkb2N1bWVudCBmb2xsb3dzIHRoZSBPcGVuQVBJIDMuMCBTcGVjaWZpY2F0aW9uLgoKYGBgCm5wbSBydW4gdGVzdApgYGAKCiMjIyBQcmV2aWV3CgpUaGUgY29tbWFuZCBidWlsZHMgYSBkb2NzIHNpdGUgc28gdGhhdCB5b3UgY2FuIHZpZXcgdGhlIHJlbmRlcmluZyBvbiB5b3VyIGxvY2FsIGJyb3dzZXIuCgpgYGAKbnBtIHJ1biBwcmV2aWV3CmBgYAoKVGhlIHNlcnZlciBzdGFydHMgb24gaHR0cDovLzEyNy4wLjAuMTo4MDgwLgoKVGhlIHNpdGUgaXMgZ2VuZXJhdGVkIHdpdGggW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykuCkhlcmUncyBhIHByZXZpZXcgb2YgYSBzaXRlIGdlbmVyYXRlZCB3aXRoIHRoaXMgY29tbWFuZDogW1N3YWdnZXIgUGV0c3RvcmUgUmVmZXJlbmNlIERvY3VtZW50YXRpb25dKGh0dHBzOi8vZGdhcmNpYTM2MC5naXRodWIuaW8vb3BlbmFwaS1ib2lsZXJwbGF0ZS8pLgoKIyMgUmVhZHktdG8tdXNlIHdvcmtmbG93cwoKVGhlIHByb2plY3QgdXNlcyBbR2l0SHViIEFjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9hY3Rpb25zKSBmb3IgQ29udGludW91cyBJbnRlZ3JhdGlvbiAoQ0kpLgoKT24gZXZlcnkgbmV3IHB1bGwgcmVxdWVzdCwgdGhlIE9wZW5BUEkgZG9jdW1lbnQgaXMgbGludGVkIHdpdGggW3NwZWN0cmFsXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vc3BlY3RyYWwpLiBJZiB0aGVyZSBhcmUgY2hhbmdlcyB0aGF0IGludHJvZHVjZSBlcnJvcnMsIHRoZSBib3Qgd2lsbCBoaWdobGlnaHQgdGhlbSByZXBseWluZyB0byB0aGUgcHVsbCByZXF1ZXN0LgoKV2hlbiB0aGUgZGVmYXVsdCBicmFuY2ggKGUuZy4gYG1hc3RlcmApIHJlY2VpdmVzIGFuIHVwZGF0ZSwgYSB3b3JrZmxvdyBhdXRvbWF0aWNhbGx5IHB1Ymxpc2hlcyB0aGUgQVBJIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIHNpdGUgdG8gR2l0SHViIFBhZ2VzLgoKU2VlIGAuZ2l0aHViL3dvcmtmbG93c2AgdG8gY3VzdG9taXplIHRoZSBhdmFpbGFibGUgd29ya2Zsb3dzLiBJZiB5b3UgZG9uJ3QgcGxhbiB0byB1c2UgR2l0SHViIHRvIGhvc3QgeW91ciBzcGVjIG9yIHByZWZlciB0byBrZWVwIGRvY3MgcHJpdmF0ZSwgZGVsZXRlIHRoZSBgLmdpdGh1YmAgZm9sZGVyLgoKIyMgQ29udHJpYnV0aW5nCgpDb250cmlidXRpb25zIGFyZSB3ZWxjb21lIGFuZCBhcHByZWNpYXRlZCEgCklmIHlvdSB3YW50IHRvIGVuaGFuY2UgdGhlIGJvaWxlcnBsYXRlLCBwbGVhc2UgcmVhZCBbQ09OVFJJQlVUSU5HLm1kXShDT05UUklCVVRJTkcubWQpIGZpbGUgZmlyc3QuCgojIyBMaWNlbnNlCgpDb3B5cmlnaHQgKGMpIDIwMTktcHJlc2VudCBEYXZpZCBHYXJjaWEgKFtAZGdhcmNpYTM2MF0oaHR0cHM6Ly9kYXZpZGdhcmNpYS5kZXYpKS4gTGljZW5zZWQgdW5kZXIgdGhlIFtNSVQgTGljZW5zZV0oTElDRU5TRS5tZCkuCgpUaGUgUGV0U3RvcmUgZXhhbXBsZSB1c2VkIGlzIGRlcml2ZWQgZnJvbSBbT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvZXhhbXBsZXMvdjMuMC9wZXRzdG9yZS55YW1sKSwgQ29weXJpZ2h0IFRoZSBMaW51eCBGb3VuZGF0aW9uLCBMaWNlbnNlZCB1bmRlciB0aGUgW0FwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvTElDRU5TRSkuCg== readmeEtag: '"0f8399fb4d4576d8f62a11c7cd96bc11ef1cafc1"' readmeLastModified: Tue, 02 Jul 2024 10:57:28 GMT repositoryId: 239108172 description: 📘 Multi-file boilerplate for Open API Specification created: '2020-02-08T10:23:15Z' updated: '2024-09-04T00:32:43Z' language: Shell archived: false stars: 376 watchers: 6 forks: 87 owner: dgarcia360 logo: https://avatars.githubusercontent.com/u/9107969?v=4 license: NOASSERTION repoEtag: '"04b05e8dae6673baaff75dd6ecd0230c6209d8026cda3ab4c53f0d9fa560c3f2"' repoLastModified: Wed, 04 Sep 2024 00:32:43 GMT foundInMaster: true category: - Description Validators - Parsers id: a62d924d146072268eebd4abdf8d51fc - source: openapi3 tags repository: https://github.com/madkote/fastapi-plugins v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgICA8ZW0+UGx1Z2lucyBmb3IgRmFzdEFQSSBmcmFtZXdvcmssIGhpZ2ggcGVyZm9ybWFuY2UsIGVhc3kgdG8gbGVhcm4sIGZhc3QgdG8gY29kZSwgcmVhZHkgZm9yIHByb2R1Y3Rpb248L2VtPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgo8YSBocmVmPSJodHRwczovL3RyYXZpcy1jaS5vcmcvbWFka290ZS9mYXN0YXBpLXBsdWdpbnMiIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgc3JjPSJodHRwczovL3RyYXZpcy1jaS5vcmcvbWFka290ZS9mYXN0YXBpX3BsdWdpbnMuc3ZnP2JyYW5jaD1tYXN0ZXIiIGFsdD0iQnVpbGQgU3RhdHVzIj4KPC9hPgo8YSBocmVmPSJodHRwczovL2NvZGVjb3YuaW8vZ2gvbWFka290ZS9mYXN0YXBpLXBsdWdpbnMiIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2NvZGVjb3YuaW8vZ2gvbWFka290ZS9mYXN0YXBpX3BsdWdpbnMvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmciIGFsdD0iQ292ZXJhZ2UiPgo8L2E+CjxhIGhyZWY9Imh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9mYXN0YXBpLXBsdWdpbnMiIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9mYXN0YXBpX3BsdWdpbnMuc3ZnIiBhbHQ9IlBhY2thZ2UgdmVyc2lvbiI+CjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXR0ZXIuaW0vdGlhbmdvbG8vZmFzdGFwaT91dG1fc291cmNlPWJhZGdlJnV0bV9tZWRpdW09YmFkZ2UmdXRtX2NhbXBhaWduPXByLWJhZGdlJnV0bV9jb250ZW50PWJhZGdlIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL3RpYW5nb2xvL2Zhc3RhcGkuc3ZnIiBhbHQ9IkpvaW4gdGhlIGNoYXQgYXQgaHR0cHM6Ly9naXR0ZXIuaW0vdGlhbmdvbG8vZmFzdGFwaSI+CjwvYT4KPC9wPgoKIyBmYXN0YXBpLXBsdWdpbnMKRmFzdEFQSSBmcmFtZXdvcmsgcGx1Z2lucyAtIHNpbXBsZSB3YXkgdG8gc2hhcmUgYGZhc3RhcGlgIGNvZGUgYW5kIHV0aWxpdGllcyBhY3Jvc3MgYXBwbGljYXRpb25zLgoKVGhlIGNvbmNlcHQgaXMgYHBsdWdpbmAgLSBwbHVnIGEgZnVuY3Rpb25hbCB1dGlsaXR5IGludG8geW91ciBhcHBsaWNhdGlvbiB3aXRob3V0IG9yIHdpdGggbWluaW1hbCBlZmZvcnQuCgoqIFtDYWNoZV0oLi9kb2NzL2NhY2hlLm1kKQogICogW01lbWNhY2hlZF0oLi9kb2NzL2NhY2hlLm1kI21lbWNhY2hlZCkKICAqIFtSZWRpc10oLi9kb2NzL2NhY2hlLm1kI3JlZGlzKQoqIFtTY2hlZHVsZXJdKC4vZG9jcy9zY2hlZHVsZXIubWQpCiogW0NvbnRyb2xdKC4vZG9jcy9jb250cm9sLm1kKQogICogW1ZlcnNpb25dKC4vZG9jcy9jb250cm9sLm1kI3ZlcnNpb24pCiAgKiBbRW52aXJvbm1lbnRdKC4vZG9jcy9jb250cm9sLm1kI2Vudmlyb25tZW50KQogICogW0hlYWx0aF0oLi9kb2NzL2NvbnRyb2wubWQjaGVhbHRoKQogICogW0hlYXJ0YmVhdF0oLi9kb2NzL2NvbnRyb2wubWQjaGVhcnRiZWF0KQoqIFtBcHBsaWNhdGlvbiBzZXR0aW5ncy9jb25maWd1cmF0aW9uXSguL2RvY3Mvc2V0dGluZ3MubWQpCiogW0xvZ2dpbmddKC4vZG9jcy9sb2dnZXIubWQpCiogQ2VsZXJ5CiogTVEKKiBhbmQgbXVjaCBtb3JlIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi4KCiMjIENoYW5nZXMKU2VlIFtyZWxlYXNlIG5vdGVzXShDSEFOR0VTLm1kKQoKIyMgSW5zdGFsbGF0aW9uCiogYnkgZGVmYXVsdCBjb250YWlucwogICogW1JlZGlzXSguL2RvY3MvY2FjaGUubWQjcmVkaXMpCiAgKiBbU2NoZWR1bGVyXSguL2RvY3Mvc2NoZWR1bGVyLm1kKQogICogW0NvbnRyb2xdKC4vZG9jcy9jb250cm9sLm1kKQogICogW0xvZ2dpbmddKC4vZG9jcy9sb2dnZXIubWQpCiogYG1lbWNhY2hlZGAgYWRkcyBbTWVtY2FjaGVkXSgjbWVtY2FjaGVkKQoqIGBhbGxgIGFkZCBldmVyeXRoaW5nIGFib3ZlCgpgYGBzaApwaXAgaW5zdGFsbCBmYXN0YXBpLXBsdWdpbnMKcGlwIGluc3RhbGwgZmFzdGFwaS1wbHVnaW5zW21lbWNhY2hlZF0KcGlwIGluc3RhbGwgZmFzdGFwaS1wbHVnaW5zW2FsbF0KYGBgCgojIyBRdWljayBzdGFydAojIyMgUGx1Z2luCkFkZCBpbmZvcm1hdGlvbiBhYm91dCBwbHVnaW4gc3lzdGVtLgojIyMgQXBwbGljYXRpb24gc2V0dGluZ3MKQWRkIGluZm9ybWF0aW9uIGFib3V0IHNldHRpbmdzLgojIyMgQXBwbGljYXRpb24gY29uZmlndXJhdGlvbgpBZGQgaW5mb3JtYXRpb24gYWJvdXQgY29uZmlndXJhdGlvbiBvZiBhbiBhcHBsaWNhdGlvbgojIyMgQ29tcGxldGUgZXhhbXBsZQpgYGBweXRob24KaW1wb3J0IGZhc3RhcGkKaW1wb3J0IGZhc3RhcGlfcGx1Z2lucwoKZnJvbSBmYXN0YXBpX3BsdWdpbnMubWVtY2FjaGVkIGltcG9ydCBNZW1jYWNoZWRTZXR0aW5ncwpmcm9tIGZhc3RhcGlfcGx1Z2lucy5tZW1jYWNoZWQgaW1wb3J0IG1lbWNhY2hlZF9wbHVnaW4sIFRNZW1jYWNoZWRQbHVnaW4KCmltcG9ydCBhc3luY2lvCmltcG9ydCBhaW9qb2JzCmltcG9ydCBhaW9yZWRpcwppbXBvcnQgY29udGV4dGxpYgppbXBvcnQgbG9nZ2luZwoKQGZhc3RhcGlfcGx1Z2lucy5yZWdpc3RlcmVkX2NvbmZpZ3VyYXRpb24KY2xhc3MgQXBwU2V0dGluZ3MoCiAgICAgICAgZmFzdGFwaV9wbHVnaW5zLkNvbnRyb2xTZXR0aW5ncywKICAgICAgICBmYXN0YXBpX3BsdWdpbnMuUmVkaXNTZXR0aW5ncywKICAgICAgICBmYXN0YXBpX3BsdWdpbnMuU2NoZWR1bGVyU2V0dGluZ3MsCiAgICAgICAgZmFzdGFwaV9wbHVnaW5zLkxvZ2dpbmdTZXR0aW5ncywKICAgICAgICBNZW1jYWNoZWRTZXR0aW5ncywKKToKICAgIGFwaV9uYW1lOiBzdHIgPSBzdHIoX19uYW1lX18pCiAgICBsb2dnaW5nX2xldmVsOiBpbnQgPSBsb2dnaW5nLkRFQlVHCiAgICBsb2dnaW5nX3N0eWxlOiBmYXN0YXBpX3BsdWdpbnMuTG9nZ2luZ1N0eWxlID0gZmFzdGFwaV9wbHVnaW5zLkxvZ2dpbmdTdHlsZS5sb2dqc29uCgoKQGZhc3RhcGlfcGx1Z2lucy5yZWdpc3RlcmVkX2NvbmZpZ3VyYXRpb24obmFtZT0nc2VudGluZWwnKQpjbGFzcyBBcHBTZXR0aW5nc1NlbnRpbmVsKEFwcFNldHRpbmdzKToKICAgIHJlZGlzX3R5cGUgPSBmYXN0YXBpX3BsdWdpbnMuUmVkaXNUeXBlLnNlbnRpbmVsCiAgICByZWRpc19zZW50aW5lbHMgPSAnbG9jYWxob3N0OjI2Mzc5JwoKCkBjb250ZXh0bGliLmFzeW5jY29udGV4dG1hbmFnZXIKYXN5bmMgZGVmIGxpZmVzcGFuKGFwcDogZmFzdGFwaS5GYXN0QVBJKToKICAgIGNvbmZpZyA9IGZhc3RhcGlfcGx1Z2lucy5nZXRfY29uZmlnKCkKICAgIGF3YWl0IGZhc3RhcGlfcGx1Z2lucy5jb25maWdfcGx1Z2luLmluaXRfYXBwKGFwcCwgY29uZmlnKQogICAgYXdhaXQgZmFzdGFwaV9wbHVnaW5zLmNvbmZpZ19wbHVnaW4uaW5pdCgpCiAgICBhd2FpdCBmYXN0YXBpX3BsdWdpbnMubG9nX3BsdWdpbi5pbml0X2FwcChhcHAsIGNvbmZpZywgbmFtZT1fX25hbWVfXykKICAgIGF3YWl0IGZhc3RhcGlfcGx1Z2lucy5sb2dfcGx1Z2luLmluaXQoKQogICAgYXdhaXQgbWVtY2FjaGVkX3BsdWdpbi5pbml0X2FwcChhcHAsIGNvbmZpZykKICAgIGF3YWl0IG1lbWNhY2hlZF9wbHVnaW4uaW5pdCgpCiAgICBhd2FpdCBmYXN0YXBpX3BsdWdpbnMucmVkaXNfcGx1Z2luLmluaXRfYXBwKGFwcCwgY29uZmlnPWNvbmZpZykKICAgIGF3YWl0IGZhc3RhcGlfcGx1Z2lucy5yZWRpc19wbHVnaW4uaW5pdCgpCiAgICBhd2FpdCBmYXN0YXBpX3BsdWdpbnMuc2NoZWR1bGVyX3BsdWdpbi5pbml0X2FwcChhcHA9YXBwLCBjb25maWc9Y29uZmlnKQogICAgYXdhaXQgZmFzdGFwaV9wbHVnaW5zLnNjaGVkdWxlcl9wbHVnaW4uaW5pdCgpCiAgICBhd2FpdCBmYXN0YXBpX3BsdWdpbnMuY29udHJvbF9wbHVnaW4uaW5pdF9hcHAoCiAgICAgICAgYXBwLAogICAgICAgIGNvbmZpZz1jb25maWcsCiAgICAgICAgdmVyc2lvbj1fX3ZlcnNpb25fXywKICAgICAgICBlbnZpcm9uPWNvbmZpZy5tb2RlbF9kdW1wKCkKICAgICkKICAgIGF3YWl0IGZhc3RhcGlfcGx1Z2lucy5jb250cm9sX3BsdWdpbi5pbml0KCkKICAgIHlpZWxkCiAgICBhd2FpdCBmYXN0YXBpX3BsdWdpbnMuY29udHJvbF9wbHVnaW4udGVybWluYXRlKCkKICAgIGF3YWl0IGZhc3RhcGlfcGx1Z2lucy5zY2hlZHVsZXJfcGx1Z2luLnRlcm1pbmF0ZSgpCiAgICBhd2FpdCBmYXN0YXBpX3BsdWdpbnMucmVkaXNfcGx1Z2luLnRlcm1pbmF0ZSgpCiAgICBhd2FpdCBtZW1jYWNoZWRfcGx1Z2luLnRlcm1pbmF0ZSgpCiAgICBhd2FpdCBmYXN0YXBpX3BsdWdpbnMubG9nX3BsdWdpbi50ZXJtaW5hdGUoKQogICAgYXdhaXQgZmFzdGFwaV9wbHVnaW5zLmNvbmZpZ19wbHVnaW4udGVybWluYXRlKCkKCgphcHAgPSBmYXN0YXBpX3BsdWdpbnMucmVnaXN0ZXJfbWlkZGxld2FyZShmYXN0YXBpLkZhc3RBUEkobGlmZXNwYW49bGlmZXNwYW4pKQoKCkBhcHAuZ2V0KCIvIikKYXN5bmMgZGVmIHJvb3RfZ2V0KAogICAgICAgIGNhY2hlOiBmYXN0YXBpX3BsdWdpbnMuVFJlZGlzUGx1Z2luLAogICAgICAgIGNvbmY6IGZhc3RhcGlfcGx1Z2lucy5UQ29uZmlnUGx1Z2luLAogICAgICAgIGxvZ2dlcjogZmFzdGFwaV9wbHVnaW5zLlRMb2dnZXJQbHVnaW4KKSAtPiB0eXBpbmcuRGljdDoKICAgIHBpbmcgPSBhd2FpdCBjYWNoZS5waW5nKCkKICAgIGxvZ2dlci5kZWJ1Zygncm9vdF9nZXQnLCBleHRyYT1kaWN0KHBpbmc9cGluZywgYXBpX25hbWU9Y29uZi5hcGlfbmFtZSkpCiAgICByZXR1cm4gZGljdChwaW5nPXBpbmcsIGFwaV9uYW1lPWNvbmYuYXBpX25hbWUpCgoKQGFwcC5wb3N0KCIvam9icy9zY2hlZHVsZS88dGltZW91dD4iKQphc3luYyBkZWYgam9iX3Bvc3QoCiAgICB0aW1lb3V0OiBpbnQ9ZmFzdGFwaS5RdWVyeSguLi4sIHRpdGxlPSd0aGUgam9iIHNsZWVwIHRpbWUnKSwKICAgIGNhY2hlOiBmYXN0YXBpX3BsdWdpbnMuVFJlZGlzUGx1Z2luLAogICAgc2NoZWR1bGVyOiBmYXN0YXBpX3BsdWdpbnMuVFNjaGVkdWxlclBsdWdpbiwKICAgIGxvZ2dlcjogZmFzdGFwaV9wbHVnaW5zLlRMb2dnZXJQbHVnaW4KKSAtPiBzdHI6CiAgICBhc3luYyBkZWYgY29ybyhqb2JfaWQsIHRpbWVvdXQsIGNhY2hlKToKICAgICAgICBhd2FpdCBjYWNoZS5zZXQoam9iX2lkLCAncHJvY2Vzc2luZycpCiAgICAgICAgdHJ5OgogICAgICAgICAgICBhd2FpdCBhc3luY2lvLnNsZWVwKHRpbWVvdXQpCiAgICAgICAgICAgIGlmIHRpbWVvdXQgPT0gODoKICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgnVWdseSBlcnJlZCBqb2IgJXMnICUgam9iX2lkKQogICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCd1Z2x5IGVycm9yJykKICAgICAgICBleGNlcHQgYXN5bmNpby5DYW5jZWxsZWRFcnJvcjoKICAgICAgICAgICAgYXdhaXQgY2FjaGUuc2V0KGpvYl9pZCwgJ2NhbmNlbGVkJykKICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoJ0NhbmNlbCBqb2IgJXMnICUgam9iX2lkKQogICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgIGF3YWl0IGNhY2hlLnNldChqb2JfaWQsICdlcnJlZCcpCiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyZWQgam9iICVzJyAlIGpvYl9pZCkKICAgICAgICBlbHNlOgogICAgICAgICAgICBhd2FpdCBjYWNoZS5zZXQoam9iX2lkLCAnc3VjY2VzcycpCiAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdEb25lIGpvYiAlcycgJSBqb2JfaWQpCgogICAgam9iX2lkID0gc3RyKHV1aWQudXVpZDQoKSkucmVwbGFjZSgnLScsICcnKQogICAgbG9nZ2VyID0gYXdhaXQgZmFzdGFwaV9wbHVnaW5zLmxvZ19hZGFwdGVyKGxvZ2dlciwgZXh0cmE9ZGljdChqb2JfaWQ9am9iX2lkLCB0aW1lb3V0PXRpbWVvdXQpKSAgICAjIG5vcWEgRTUwMQogICAgbG9nZ2VyLmluZm8oJ05ldyBqb2IgJXMnICUgam9iX2lkKQogICAgYXdhaXQgY2FjaGUuc2V0KGpvYl9pZCwgJ3BlbmRpbmcnKQogICAgbG9nZ2VyLmRlYnVnKCdQZW5kaW5nIGpvYiAlcycgJSBqb2JfaWQpCiAgICBhd2FpdCBzY2hlZHVsZXIuc3Bhd24oY29ybyhqb2JfaWQsIHRpbWVvdXQsIGNhY2hlKSkKICAgIHJldHVybiBqb2JfaWQKCgpAYXBwLmdldCgiL2pvYnMvc3RhdHVzLzxqb2JfaWQ+IikKYXN5bmMgZGVmIGpvYl9nZXQoCiAgICBqb2JfaWQ6IHN0cj1mYXN0YXBpLlF1ZXJ5KC4uLiwgdGl0bGU9J3RoZSBqb2IgaWQnKSwKICAgIGNhY2hlOiBmYXN0YXBpX3BsdWdpbnMuVFJlZGlzUGx1Z2luLAopIC0+IHR5cGluZy5EaWN0OgogICAgc3RhdHVzID0gYXdhaXQgY2FjaGUuZ2V0KGpvYl9pZCkKICAgIGlmIHN0YXR1cyBpcyBOb25lOgogICAgICAgIHJhaXNlIGZhc3RhcGkuSFRUUEV4Y2VwdGlvbigKICAgICAgICAgICAgc3RhdHVzX2NvZGU9c3RhcmxldHRlLnN0YXR1cy5IVFRQXzQwNF9OT1RfRk9VTkQsCiAgICAgICAgICAgIGRldGFpbD0nSm9iICVzIG5vdCBmb3VuZCcgJSBqb2JfaWQKICAgICAgICApCiAgICByZXR1cm4gZGljdChqb2JfaWQ9am9iX2lkLCBzdGF0dXM9c3RhdHVzKQoKCkBhcHAucG9zdCgiL21lbWNhY2hlZC9kZW1vLzxrZXk+IikKYXN5bmMgZGVmIG1lbWNhY2hlZF9kZW1vX3Bvc3QoCiAgICBrZXk6IHN0cj1mYXN0YXBpLlF1ZXJ5KC4uLiwgdGl0bGU9J3RoZSBqb2IgaWQnKSwKICAgIGNhY2hlOiBmYXN0YXBpX3BsdWdpbnMuVE1lbWNhY2hlZFBsdWdpbiwKKSAtPiB0eXBpbmcuRGljdDoKICAgIGF3YWl0IGNhY2hlLnNldChrZXkuZW5jb2RlKCksIHN0cihrZXkgKyAnX3ZhbHVlJykuZW5jb2RlKCkpCiAgICB2YWx1ZSA9IGF3YWl0IGNhY2hlLmdldChrZXkuZW5jb2RlKCkpCiAgICByZXR1cm4gZGljdChwaW5nPShhd2FpdCBjYWNoZS5waW5nKCkpLmRlY29kZSgpLCBrZXk9a2V5LCB2YWx1ZT12YWx1ZSkKYGBgCgojIERldmVsb3BtZW50Cklzc3VlcyBhbmQgc3VnZ2VzdGlvbnMgYXJlIHdlbGNvbWUgdGhyb3VnaCBbaXNzdWVzXShodHRwczovL2dpdGh1Yi5jb20vbWFka290ZS9mYXN0YXBpLXBsdWdpbnMvaXNzdWVzKQoKIyBMaWNlbnNlClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLgo= readmeEtag: '"0a423b3a922daaf582fc80759adb5b12ba91c44f"' readmeLastModified: Mon, 03 Jun 2024 15:39:27 GMT repositoryId: 222924508 description: FastAPI framework plugins created: '2019-11-20T11:41:50Z' updated: '2024-08-27T00:28:28Z' language: Python archived: false stars: 361 watchers: 3 forks: 19 owner: madkote logo: https://avatars.githubusercontent.com/u/4921881?v=4 license: MIT repoEtag: '"b59ba7717459768ff170c7c3c76a63593b29df79b1e04d4662706900dbf699de"' repoLastModified: Tue, 27 Aug 2024 00:28:28 GMT foundInMaster: true category: Server Implementations id: 5b8a96994e594bd26bca9505bbc19018 - source: openapi3 tags repository: https://github.com/cdimascio/generator-express-no-stress-typescript v3: true repositoryMetadata: base64Readme: >- IyBnZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MtdHlwZXNjcmlwdAoKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3RhdHVzLXN0YWJsZS1ncmVlbi5zdmcpICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy10eXBlc2NyaXB0LnN2ZykgWyFbQ29kYWN5IEJhZGdlXShodHRwczovL2FwaS5jb2RhY3kuY29tL3Byb2plY3QvYmFkZ2UvR3JhZGUvMjFlMzYyMDk0YzVhNGMwZGE0ODQxZmMxNzJjZWU5NWQpXShodHRwczovL3d3dy5jb2RhY3kuY29tL2FwcC9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQ/dXRtX3NvdXJjZT1naXRodWIuY29tJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NvbnRlbnQ9Y2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy10eXBlc2NyaXB0JnV0bV9jYW1wYWlnbj1CYWRnZV9HcmFkZSkgWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdHRlci9yb29tL2NkaW1hc2Npby1vc3MvY29tbXVuaXR5P2NvbG9yPSUyM2ViMjA1YSldKGh0dHBzOi8vZ2l0dGVyLmltL2NkaW1hc2Npby1vc3MvY29tbXVuaXR5KSA8IS0tIEFMTC1DT05UUklCVVRPUlMtQkFER0U6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+ClshW0FsbCBDb250cmlidXRvcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYWxsX2NvbnRyaWJ1dG9ycy0xMC1vcmFuZ2Uuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oI2NvbnRyaWJ1dG9ycy0pCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpFTkQgLS0+ICFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJsdWUuc3ZnKQpDcmVhdGUgYXdlc29tZSBbRXhwcmVzcy5qc10oaHR0cDovL3d3dy5leHByZXNzanMuY29tKSBhcHBsaWNhdGlvbnMgd2l0aCBiZXN0IG9mIGJyZWVkIHRlY2ggaW5jbHVkaW5nIFtUeXBlc2NyaXB0XShodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvKSwgc3RydWN0dXJlZCBsb2dnaW5nIHdpdGggW1Bpbm9dKGh0dHBzOi8vZ2l0aHViLmNvbS9waW5vanMvcGlubyksIEFQSSB2YWxpZGF0aW9uIGFuZCBpbnRlcmFjdGl2ZSBkb2N1bWVudGF0aW9uIHZpYSBhbiBbT3BlbkFQSSAzXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIG9yIFtTd2FnZ2VyIDJdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uL3YyLykgc3BlYywgZW52aXJvbm1lbnQgYmFzZWQgY29uZmlnIHdpdGggW2RvdGVudl0oaHR0cHM6Ly9naXRodWIuY29tL21vdGRvdGxhL2RvdGVudikuCgo8cCBhbGlnbj0iY2VudGVyIj4KPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvbWFzdGVyL2Fzc2V0cy9leHByZXNzLW5vLXN0cmVzcy1sb2dvLXRzLmpwZyIKPC9wPgoKZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQgZ2V0cyB5b3UgdXAgYW5kIHJ1bm5pbmcgaW4gc2Vjb25kcy4gSXQncyByaWRpY3Vsb3VzbHkgZWFzeSB0byBjb25maWd1cmUuIEhlY2ssIGp1c3QgdGFrZSB0aGUgZGVmYXVsdHMuIFN0YXJ0IGl0LiBXcml0ZSBjb2RlLgoKVGhpcyBnZW5lcmF0b3Igc2NhZmZvbGRzIGEgZnVsbHkgZnVuY3Rpb25pbmcgUkVTVCBBUEkgc2VydmVyIGNvbXBsZXRlIHdpdGggaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbiwgQVBJIHZhbGlkYXRpb24sIHN0cnVjdHVyZWQgbG9nZ2luZywgZW52aXJvbm1lbnQgZHJpdmVuIGNvbmZpZywgYW5kIG1vcmUuIFNpbXBseSBydW4gdGhlIGdlbmVyYXRvciBhbmQgc21pbGUgOi1ECgpUaGlzIHByb2plY3QgaXMgYSBUeXBlc2NyaXB0IHZhcmlhbnQgb2YgW2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzc10oaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MpCgpbSGVyZSdzIHdoYXQgeW91IGdldCFdKCN3aGF0LXlvdS1nZXQpCgojIyBJbnN0YWxsCgpfUmVxdWlyZXMgTm9kZSA2IG9yIGdyZWF0ZXJfCgpgYGBzaGVsbApucG0gaW5zdGFsbCAtZyB5byBnZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MtdHlwZXNjcmlwdApgYGAKCi0gU2VlIFtoZXJlXSgjdXNhZ2UtY2xpKSBmb3IgdXNlIHdpdGggWWFybiBhbmQvb3IgRG9ja2VyCgojIyBTY2FmZm9sZAoKYGBgc2hlbGwKeW8gZXhwcmVzcy1uby1zdHJlc3MtdHlwZXNjcmlwdCBteWFwcApjZCBteWFwcApgYGAKCiMjIFJ1bgoKUnVuIGluIF9kZXZlbG9wbWVudCBtb2RlXzoKCmBgYHNoZWxsCm5wbSBydW4gZGV2CmBgYAoKUGFja2FnZSBhbmQgcnVuIGluIF9wcm9kdWN0aW9uIG1vZGVfCgpgYGBzaGVsbApucG0gcnVuIGNvbXBpbGUKbnBtIHN0YXJ0CmBgYAoKIyMgVGVzdAoKYGBgc2hlbGwKbnBtIHRlc3QKYGBgCgojIyBEZWJ1ZwoKUnVuIG9uZSBvZiB0aGUgZm9sbG93aW5nLCB0aGVuIGF0dGFjaCB5b3VyIGZhdm9yaXRlIGluc3BlY3Rvci4KCmBgYHNoZWxsCiMgZGVidWcgdGhlIHNlcnZlcgpucG0gcnVuIGRldjpkZWJ1ZwoKIyBkZWJ1ZyB0aGUgdGVzdHMKbnBtIHJ1biB0ZXN0OmRlYnVnCmBgYAoKIyMgVHJ5IGl0IQoKLSBJbnRlcmFjdGl2ZSBBUEkgZG9jIGF0IFtodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpLWV4cGxvcmVyXShodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpLWV4cGxvcmVyKQotIExhbmRpbmcgcGFnZSBhdCBbaHR0cDovL2xvY2FsaG9zdDozMDAwXShodHRwOi8vbG9jYWxob3N0OjMwMDApCgotLS0KCiMjIFVzYWdlOiBDTEkKCmBgYHNoZWxsCnlvIGV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQgW2FwcG5hbWVdIFstLXlhcm5dIFstLWRvY2tlcl0KYGBgCgp8IE9wdGlvbiAgICAgfCBkZWZhdWx0IHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGBhcHBuYW1lYCAgfCBteWFwcCAgIHwgVGhlIGFwcGxpY2F0aW9uIGZvbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGAtLXlhcm5gICAgfCAtICAgICAgIHwgVXNlIHRoZSBbYHlhcm5gXShodHRwczovL3lhcm5wa2cuY29tKSBwYWNrYWdlIG1hbmFnZXIsIGluc3RlYWQgb2YgYG5wbWAgICAgfAp8IGAtLWRvY2tlcmAgfCAgICAgICAgIHwgSW5zdGFsbCBbRG9ja2VyXShodHRwczovL3d3dy5kb2NrZXIuY29tLykgYXJ0aWZhY3RzIGluY2x1ZGluZyBhIERvY2tlcmZpbGUgfAoKIyMgVXNhZ2U6IFByb2plY3QKClRoZSBzZWN0aW9ucyBiZWxvdyBkZXNjcmliZSBhbGwgdXNhZ2Ugb3B0aW9ucyBhdmFpbGFibGUgb25jZSB0aGUgcHJvamVjdCBpcyBnZW5lcmF0ZWQvc2NhZmZvbGRlZC4KCiMjIyBucG0gdGFyZ2V0cwoKfCBUYXJnZXQgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGBucG0gcnVuIGRldmAgICAgICAgIHwgUnVuIGluIF9kZXZlbG9wbWVudF8gbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgbnBtIHJ1biBkZXY6ZGVidWdgICB8IERlYnVnIGluIF9kZXZlbG9wbWVudF8gbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYG5wbSBydW4gdGVzdGAgICAgICAgfCBSdW4gdGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBucG0gcnVuIHRlc3Q6ZGVidWdgIHwgRGVidWcgdGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgbnBtIHJ1biBjb21waWxlYCAgICB8IFRyYW5zcGlsZSBzb3VyY2UgY29kZSBmb3IgcHJvZHVjdGlvbiB1c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYG5wbSBzdGFydGAgICAgICAgICAgfCBSdW4gdGhlIGluIF9wcm9kdWN0aW9uXyBtb2RlLiBcKlJlcXVpcmVzIHJ1bm5pbmcgYG5wbSBydW4gY29tcGlsZWAgZmlyc3QgfAoKIyMjIERlcGxveSB0byB0aGUgQ2xvdWQKCmUuZy4gQ2xvdWRGb3VuZHJ5CgpgYGAKY2YgcHVzaCBteWFwcApgYGAKCiMjIyBVc2UgWWFybgoKYGBgCiMgc2NhZmZvbGQKeW8gZXhwcmVzcy1uby1zdHJlc3MtdHlwZXNjcmlwdCBteWFwcCAtLXlhcm4KCiMgc3RhcnQKY2QgbXlhcHAKbnBtIHN0YXJ0CmBgYAoKLS0tCgojIyBXaGF0IHlvdSBnZXQhCgotIFtUeXBlc2NyaXB0XShodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvKSAtIFR5cGVzY3JpcHQgaXMgYSB0eXBlZCBzdXBlcnNldCBvZiBKYXZhU2NyaXB0IHRoYXQgY29tcGlsZXMgdG8gcGxhaW4gSmF2YVNjcmlwdAotIFtFeHByZXNzLmpzXShodHRwczovL3d3dy5leHByZXNzanMuY29tKSAtIEZhc3QsIHVub3BpbmlvbmF0ZWQKICAsIG1pbmltYWxpc3Qgd2ViIGZyYW1ld29yayBmb3IgTm9kZS5qcwotIFtQaW5vXShodHRwczovL2dpdGh1Yi5jb20vcGlub2pzL3Bpbm8pIC0gRXh0cmVtZWx5IGZhc3Qgbm9kZS5qcyBsb2dnZXIsIGluc3BpcmVkIGJ5IEJ1bnlhbi4gSXQgYWxzbyBpbmNsdWRlcyBhIHNoZWxsIHV0aWxpdHkgdG8gcHJldHR5LXByaW50IGl0cyBsb2cgZmlsZXMKLSBbZG90ZW52XShodHRwczovL2dpdGh1Yi5jb20vbW90ZG90bGEvZG90ZW52KSAtIExvYWRzIGVudmlyb25tZW50IHZhcmlhYmxlcyBmcm9tIC5lbnYgZm9yIG5vZGVqcyBwcm9qZWN0cwotIFtTd2FnZ2VyXShodHRwOi8vc3dhZ2dlci5pby8pIC0gaXMgYSBzaW1wbGUgeWV0IHBvd2VyZnVsIHJlcHJlc2VudGF0aW9uIG9mIHlvdXIgUkVTVGZ1bCBBUEkuCi0gW1N3YWdnZXJVSV0oaHR0cDovL3N3YWdnZXIuaW8vKSAtIGR5bmFtaWNhbGx5IGdlbmVyYXRlIGJlYXV0aWZ1bCBkb2N1bWVudGF0aW9uIGFuZCBzYW5kYm94IGZyb20gYSBTd2FnZ2VyLWNvbXBsaWFudCBBUEkKCiMjIyBBUEkgVmFsaWRhdGlvbgoKU2ltcGx5IGRlc2NyaWJlIHlvdXIgQVBJcyB3aXRoIFN3YWdnZXIgYW5kIGF1dG9tYWdpY2FsbHkgZ2V0IGZvciBmcmVlOgoKLSBJbnRlcmFjdGl2ZSBkb2N1bWVudGF0aW9uCi0gQVBJIHZhbGlkYXRpb24KCiMjIyMgSW50ZXJhY3RpdmUgQVBJIERvYwoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvcmF3L21hc3Rlci9hc3NldHMvaW50ZXJhY3RpdmUtZG9jMS5wbmcpCgojIyMjIEFQSSBWYWxpZGF0aW9uIQoKT29wcyEgSSB0aGUgQVBJIGNhbGxlciBmb3Jnb3QgdG8gcGFzcyBhIGBuYW1lYCBmaWVsZCwgbm8gc3RyZXNzLCB3ZSd2ZSBnb3QgdGhpcyEKCiFbXShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy10eXBlc2NyaXB0L3Jhdy9tYXN0ZXIvYXNzZXRzL2FwaS12YWxpZGF0aW9uLnBuZykKCiMjIyBTdHJ1Y3R1cmVkIExvZ2dpbmcKClN0cnVjdHVyZWQgbG9nZ2luZyBvdXQgb2YgdGhlIGJveCEKCiMjIyMgcmF3CgohW10oaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MtdHlwZXNjcmlwdC9yYXcvbWFzdGVyL2Fzc2V0cy9sb2dnaW5nLXJhdy5wbmcpCgojIyMjIHByZXR0eQoKU3RydWN0dXJlZCBsb2dnaW5nIHByZXR0eSBwcmludGVkIGJ5IGRlZmF1bHQgLSBncmVhdCBmb3IgZGV2IQoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvcmF3L21hc3Rlci9hc3NldHMvbG9nZ2luZy1wcmV0dHkucG5nKQoKIyMjIEFQSSBWYWxpZGF0aW9uIEV4YW1wbGUKClNpbXBseSBkZXNjcmliZSB5b3VyIEFQSXMgd2l0aCBTd2FnZ2VyIGFuZCBhdXRvbWF0aWNhbGx5IGdldDoKCi0gQVBJIHJlcXVlc3QgdmFsaWRhdGlvbgotIEludGVyYWN0aXZlIGRvY3VtZW50YXRpb24KCiMjIyBleGFtcGxlCgojIyMjIFN3YWdnZXIgQVBJIHNwZWMKCmBgYHlhbWwKc3dhZ2dlcjogJzIuMCcKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiBteWFwcAogIGRlc2NyaXB0aW9uOiBNeSBjb29sIGFwcApiYXNlUGF0aDogL2FwaS92MQp0YWdzOgogIC0gbmFtZTogRXhhbXBsZXMKICAgIGRlc2NyaXB0aW9uOiBTaW1wbGUgZXhhbXBsZSBlbmRwb2ludHMKICAtIG5hbWU6IFNwZWNpZmljYXRpb24KICAgIGRlc2NyaXB0aW9uOiBUaGUgc3dhZ2dlciBBUEkgc3BlY2lmaWNhdGlvbgoKY29uc3VtZXM6CiAgLSBhcHBsaWNhdGlvbi9qc29uCnByb2R1Y2VzOgogIC0gYXBwbGljYXRpb24vanNvbgoKZGVmaW5pdGlvbnM6CiAgRXhhbXBsZUJvZHk6CiAgICB0eXBlOiBvYmplY3QKICAgIHRpdGxlOiBleGFtcGxlCiAgICByZXF1aXJlZDoKICAgICAgLSBuYW1lCiAgICBwcm9wZXJ0aWVzOgogICAgICBuYW1lOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGV4YW1wbGU6IG5vX3N0cmVzcwoKcGF0aHM6CiAgL2V4YW1wbGVzOgogICAgZ2V0OgogICAgICB0YWdzOgogICAgICAgIC0gRXhhbXBsZXMKICAgICAgZGVzY3JpcHRpb246IEZldGNoIGFsbCBleGFtcGxlcwogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IFJldHVybnMgYWxsIGV4YW1wbGVzCiAgICBwb3N0OgogICAgICB0YWdzOgogICAgICAgIC0gRXhhbXBsZXMKICAgICAgZGVzY3JpcHRpb246IENyZWF0ZSBhIG5ldyBleGFtcGxlCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBuYW1lOiBleGFtcGxlCiAgICAgICAgICBpbjogYm9keQogICAgICAgICAgZGVzY3JpcHRpb246IGFuIGV4YW1wbGUKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICRyZWY6ICcjL2RlZmluaXRpb25zL0V4YW1wbGVCb2R5JwogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IFJldHVybnMgYWxsIGV4YW1wbGVzCgogIC9leGFtcGxlcy97aWR9OgogICAgZ2V0OgogICAgICB0YWdzOgogICAgICAgIC0gRXhhbXBsZXMKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIG5hbWU6IGlkCiAgICAgICAgICBpbjogcGF0aAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgaWQgb2YgdGhlIGV4YW1wbGUgdG8gcmV0cmlldmUKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBSZXR1cm4gdGhlIGV4YW1wbGUgd2l0aCB0aGUgc3BlY2lmaWVkIGlkCiAgICAgICAgNDA0OgogICAgICAgICAgZGVzY3JpcHRpb246IEV4YW1wbGUgbm90IGZvdW5kCgogIC9zcGVjOgogICAgZ2V0OgogICAgICB0YWdzOgogICAgICAgIC0gU3BlY2lmaWNhdGlvbgogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IFJldHVybiB0aGUgQVBJIHNwZWNpZmljYXRpb24KYGBgCgojIyMjIEludm9rZSBhIFBPU1QgcmVxdWVzdCB2aWEgdGhlIEludGVyYWN0aXZlIGRvYwoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvcmF3L21hc3Rlci9hc3NldHMvaW50ZXJhY3RpdmUtZG9jLnBuZykKCiMjIEZBUQoqKlEqKjogSG93IGRvIEkgbW9kaWZ5IHRoZSBleGFtcGxlIEFQSSBhbmQgbWFrZSBpdCBteSBvd24/CgoqKkEqKjogVGhlcmUgYXJlIHR3byBrZXkgZmlsZXMgdGhhdCBlbmFibGUgeW91IHRvIGN1c3RvbWl6ZSBhbmQgZGVzY3JpYmUgeW91ciBBUEk6CjEuIGBzZXJ2ZXIvcm91dGVzLnRzYCAtIFRoaXMgcmVmZXJlbmNlcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgYWxsIG9mIHlvdXIgcm91dGVzLiBBZGQgYXMgbWFueSByb3V0ZXMgYXMgeW91IGxpa2UgYW5kIHBvaW50IGVhY2ggcm91dGUgeW91ciBleHByZXNzIGhhbmRsZXIgZnVuY3Rpb25zLgoyLiBgc2VydmVyL2NvbW1vbi9hcGkueWFtbGAgLSBUaGlzIGZpbGUgY29udGFpbnMgeW91ciBbT3BlbkFQSSBzcGVjXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pLiBEZXNjcmliZSB5b3VyIEFQSSBoZXJlLiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IHRvIGRlY2xhcmUgYW55IGFuZCBhbGwgdmFsaWRhdGlvbiBsb2dpYyBpbiB0aGlzIFlBTUwuIGBleHByZXNzLW5vLXN0cmVzcy10eXBlc2NyaXB0YCAgdXNlcyBbZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9leHByZXNzLW9wZW5hcGktdmFsaWRhdG9yKSB0byBhdXRvbWF0aWNhbGx5IGhhbmRsZSBhbGwgQVBJIHZhbGlkYXRpb24gYmFzZWQgb24gd2hhdCB5b3UndmUgZGVmaW5lZCBpbiB0aGUgc3BlYy4KCioqUSoqOiBJIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGFuIGFwcCwgYnV0IEkgd2FudCB0byBjaGFuZ2UgdGhlIEFQSSByb290LiBIb3cgZG8gSSBkbyB0aGlzPwoKKipBKio6IFlvdSBuZWVkIHRvIG1ha2UgdG8gc21hbGwgY2hhbmdlcwogIDEuIE1vZGlmeSBgc2VydmVyL3JvdXRlcy50c2AKICBgYGBqYXZhc2NyaXB0CiAgICAgLy8gQ2hhbmdlIHlvdXIgb3JpZ2luYWwgcGF0aCBlLmcuIC9hcGkvdjEvZXhhbXBsZXMsIHRvOgogICAgIGFwcC51c2UoJy9hcGkvdjIvZXhhbXBsZXMnLCBleGFtcGxlc1JvdXRlcik7CiAgIGBgYAoKICAyLiBNb2RpZnkgYHNlcnZlci9jb21tb24vYXBpLnlhbWxgIGFuZCB1cGRhdGUgdGhlIGFwaSByb290OgogIGBgYHlhbWwKICAgICMgQ2hhbmdlIGUuZy4gL2FwaS92MSB0byAvYXBpL3YyCiAgICBzZXJ2ZXJzOgogICAgLSB1cmw6IC9hcGkvdjIgICAKICBgYGAKCiMjIExpY2Vuc2UKCltNSVRdKExJQ0VOU0UpCgo8YSBocmVmPSJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL205N3RBNWMiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9ibWMtY2RuLm55YzMuZGlnaXRhbG9jZWFuc3BhY2VzLmNvbS9CTUMtYnV0dG9uLWltYWdlcy9jdXN0b21faW1hZ2VzL29yYW5nZV9pbWcucG5nIiBhbHQ9IkJ1eSBNZSBBIENvZmZlZSIgc3R5bGU9ImhlaWdodDogYXV0byAhaW1wb3J0YW50O3dpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IiA+PC9hPgoKIyMgQ29udHJpYnV0b3JzIOKcqAoKVGhhbmtzIGdvZXMgdG8gdGhlc2Ugd29uZGVyZnVsIHBlb3BsZSAoW2Vtb2ppIGtleV0oaHR0cHM6Ly9hbGxjb250cmlidXRvcnMub3JnL2RvY3MvZW4vZW1vamkta2V5KSk6Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cjx0YWJsZT4KICA8dHI+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9ibG9nLmJyYWttaWMuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMS5naXRodWJ1c2VyY29udGVudC5jb20vdS81Njc3OT92PTQiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5IYXJyaXMgQnJha21pxIc8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9YnJha21pYyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL3B1YmtleXB1YmtleSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODkyNjU2MD92PTQiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5EYW5pZWwgTWV5ZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9cHVia2V5IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vb3Rha3UuY29kZXMiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEzNjAzMDQ1P3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlZpcmFqIFRyaXZlZGk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9aW5mM2N0aTBuOTUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Vyb25seTE0bWUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUxODY4MTQ/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+U2FuZ2Jlb20gSGFuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy10eXBlc2NyaXB0L2NvbW1pdHM/YXV0aG9yPXVyb25seTE0bWUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGVmZGVnb2V5Lm5sIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS8zOTA3NDg4P3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlN0ZWYgZGUgR29leTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NkaW1hc2Npby9nZW5lcmF0b3ItZXhwcmVzcy1uby1zdHJlc3MtdHlwZXNjcmlwdC9jb21taXRzP2F1dGhvcj1TdGVmZmlvbiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vUm9nZXJtYXgiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI2MzMyNTQ/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+Um9nZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9Um9nZXJtYXgiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2JhZ29manVpY2UiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEzOTUxNzI/dj00IiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+VmlrYXNoIENoYXVoYW48L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9YmFnb2ZqdWljZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9YmFnb2ZqdWljZSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdHNla2l0eWFtIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODE0NDIyP3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlRzZSBLaXQgWWFtPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2dlbmVyYXRvci1leHByZXNzLW5vLXN0cmVzcy10eXBlc2NyaXB0L2NvbW1pdHM/YXV0aG9yPXRzZWtpdHlhbSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9dHNla2l0eWFtIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9AcmxrYW1yYWR0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS82ODgzMzc5P3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlJhbmR5IEthbXJhZHQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9cmthbXJhZHQiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tLzJ1NnozcjAiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwODUzMzI5P3Y9NCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlZpdHRoYWwgUGF0aWw8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZGltYXNjaW8vZ2VuZXJhdG9yLWV4cHJlc3Mtbm8tc3RyZXNzLXR5cGVzY3JpcHQvY29tbWl0cz9hdXRob3I9MnU2ejNyMCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKPCEtLSBtYXJrZG93bmxpbnQtZW5hYmxlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+CjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lIQo= readmeEtag: '"b63ae9822a116621de960c355e030d3d66bc82f2"' readmeLastModified: Mon, 30 May 2022 18:08:34 GMT repositoryId: 92780080 description: >- 🚄 A Yeoman generator for Express.js based 12-factor apps and apis using Typescript created: '2017-05-29T22:33:47Z' updated: '2024-06-13T13:02:05Z' language: TypeScript archived: false stars: 360 watchers: 10 forks: 43 owner: cdimascio logo: https://avatars.githubusercontent.com/u/4706618?v=4 license: MIT repoEtag: '"57634a22a86007c136a9193929aecd1206feeeb01a14fb9fb07a35986b66051d"' repoLastModified: Thu, 13 Jun 2024 13:02:05 GMT foundInMaster: true category: Description Validators id: ec24bd83d219c38af4319203892ff3cb - source: openapi3 tags repository: https://github.com/0xtheprodev/fastapi-clean-example v3: true id: db8a3c5869dbcd0c85b08af9e691e2ad repositoryMetadata: base64Readme: >- IyBmYXN0YXBpLWNsZWFuLWV4YW1wbGUKClshW1B5dGhvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9weXRob24tMzY3MEEwP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1weXRob24mbG9nb0NvbG9yPWZmZGQ1NCldKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvKQpbIVtGYXN0QVBJXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Zhc3RBUEktMDA1NTcxP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1mYXN0YXBpKV0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS8pClshW09wZW5BUEldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvb3BlbmFwaS02QkE1Mzk/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPW9wZW5hcGktaW5pdGlhdGl2ZSZsb2dvQ29sb3I9ZmZmKV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykKWyFbU3dhZ2dlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tU3dhZ2dlci0lMjNDbG9qdXJlP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1zd2FnZ2VyJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vc3dhZ2dlci5pby8pClshW0dyYXBoUUxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLUdyYXBoUUwtRTEwMDk4P3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1ncmFwaHFsJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vZ3JhcGhxbC5vcmcvKQpbIVtDb2RlIHN0eWxlOiBibGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9ibGFjay5yZWFkdGhlZG9jcy5pby9lbi9zdGFibGUvKQpbIVtUeXBlZCB3aXRoOiBweWRhbnRpY10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90eXBlZCUyMHdpdGgtcHlkYW50aWMtQkE2MDBGLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9kb2NzLnB5ZGFudGljLmRldi8pClshW09wZW4gSXNzdWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcmF3LzB4VGhlUHJvRGV2L2Zhc3RhcGktY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tLzB4VGhlUHJvRGV2L2Zhc3RhcGktY2xlYW4tZXhhbXBsZS9pc3N1ZXMpClshW0Nsb3NlZCBJc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy1jbG9zZWQtcmF3LzB4VGhlUHJvRGV2L2Zhc3RhcGktY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tLzB4VGhlUHJvRGV2L2Zhc3RhcGktY2xlYW4tZXhhbXBsZS9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBY2xvc2VkKQpbIVtPcGVuIFB1bGxzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcHItcmF3LzB4VGhlUHJvRGV2L2Zhc3RhcGktY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tLzB4VGhlUHJvRGV2L2Zhc3RhcGktY2xlYW4tZXhhbXBsZS9wdWxscykKWyFbQ2xvc2VkIFB1bGxzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcHItY2xvc2VkLXJhdy8weFRoZVByb0Rldi9mYXN0YXBpLWNsZWFuLWV4YW1wbGU/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS8weFRoZVByb0Rldi9mYXN0YXBpLWNsZWFuLWV4YW1wbGUvcHVsbHM/cT1pcyUzQXByK2lzJTNBY2xvc2VkKQpbIVtDb250cmlidXRvcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2NvbnRyaWJ1dG9ycy8weFRoZVByb0Rldi9mYXN0YXBpLWNsZWFuLWV4YW1wbGU/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS8weFRoZVByb0Rldi9mYXN0YXBpLWNsZWFuLWV4YW1wbGUvZ3JhcGhzL2NvbnRyaWJ1dG9ycykKWyFbQWN0aXZpdHldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0LzB4VGhlUHJvRGV2L2Zhc3RhcGktY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsPW1vc3QlMjByZWNlbnQlMjBhY3Rpdml0eSldKGh0dHBzOi8vZ2l0aHViLmNvbS8weFRoZVByb0Rldi9mYXN0YXBpLWNsZWFuLWV4YW1wbGUvcHVsc2UpCgojIyBEZXNjcmlwdGlvbgoKX0V4YW1wbGUgQXBwbGljYXRpb24gSW50ZXJmYWNlIHVzaW5nIEZhc3RBUEkgZnJhbWV3b3JrIGluIFB5dGhvbiAzXwoKVGhpcyBleGFtcGxlIHNob3djYXNlcyBSZXBvc2l0b3J5IFBhdHRlcm4gaW4gSGV4YWdvbmFsIEFyY2hpdGVjdHVyZSBfKGFsc28ga25vd24gYXMgQ2xlYW4gQXJjaGl0ZWN0dXJlKV8uIEhlcmUgd2UgaGF2ZSB0d28gRW50aXRpZXMgLSBCb29rcyBhbmQgQXV0aG9ycywgd2hvc2UgcmVsYXRpb25zaGlwcyBoYXZlIGJlZW4gZXhwbG9pdGVkIHRvIGNyZWF0ZSBDUlVEIGVuZHBvaW50IGluIFJFU1QgdW5kZXIgT3BlbkFQSSBzdGFuZGFyZC4KCiMjIEluc3RhbGxhdGlvbgoKLSBJbnN0YWxsIGFsbCB0aGUgcHJvamVjdCBkZXBlbmRlbmN5IHVzaW5nIFtQaXBlbnZdKGh0dHBzOi8vcGlwZW52LnB5cGEuaW8pOgoKICBgYGBzaAogICQgcGlwZW52IGluc3RhbGwgLS1kZXYKICBgYGAKCi0gUnVuIHRoZSBhcHBsaWNhdGlvbiBmcm9tIGNvbW1hbmQgcHJvbXB0OgoKICBgYGBzaAogICQgcGlwZW52IHJ1biB1dmljb3JuIG1haW46YXBwIC0tcmVsb2FkCiAgYGBgCgotIFlvdSBjYW4gYWxzbyBvcGVuIGEgc2hlbGwgaW5zaWRlIHZpcnR1YWwgZW52aXJvbm1lbnQ6CgogIGBgYHNoCiAgJCBwaXBlbnYgc2hlbGwKICBgYGAKCi0gT3BlbiBgbG9jYWxob3N0OjgwMDAvZG9jc2AgZm9yIEFQSSBEb2N1bWVudGF0aW9uCgotIE9wZW4gYGxvY2FsaG9zdDo4MDAwL2dyYXBocWxgIGZvciBHcmFwaFFMIERvY3VtZW50YXRpb24KCl8qTm90ZToqIEluIGNhc2UgeW91IGFyZSBub3QgYWJsZSB0byBhY2Nlc3MgYHBpcGVudmAgZnJvbSB5b3UgYFBBVEhgIGxvY2F0aW9ucywgcmVwbGFjZSBhbGwgaW5zdGFuY2VzIG9mIGBwaXBlbnZgIHdpdGggYHB5dGhvbjMgLW0gcGlwZW52YC5fCgojIyBUZXN0aW5nCgpGb3IgVGVzdGluZywgYHVuaXR0ZXN0YCBtb2R1bGUgaXMgdXNlZCBmb3IgVGVzdCBTdWl0ZSBhbmQgQXNzZXJ0aW9uLCB3aGVyZWFzIGBweXRlc3RgIGlzIGJlaW5nIHVzZWQgZm9yIFRlc3QgUnVubmVyIGFuZCBDb3ZlcmFnZSBSZXBvcnRlci4KCi0gUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBpbml0aWF0ZSB0ZXN0OgogIGBgYHNoCiAgJCBwaXBlbnYgcnVuIHB5dGVzdAogIGBgYAotIFRvIGluY2x1ZGUgQ292ZXJhZ2UgUmVwb3J0aW5nIGFzIHdlbGw6CiAgYGBgc2gKICAkIHBpcGVudiBydW4gcHl0ZXN0IC0tY292LXJlcG9ydCB4bWwgLS1jb3YgLgogIGBgYAoKIyMgTGljZW5zZQoKJmNvcHk7IE1JVCBMaWNlbnNlCg== readmeEtag: '"bef2ee4db7b02a92c0311125aa4cb2829b3cb22c"' readmeLastModified: Fri, 12 May 2023 09:03:57 GMT repositoryId: 479982630 description: Clean Architecture Example using FastAPI framework created: '2022-04-10T10:23:51Z' updated: '2024-09-03T10:16:47Z' language: Python archived: false stars: 360 watchers: 4 forks: 52 owner: 0xTheProDev logo: https://avatars.githubusercontent.com/u/14367736?v=4 license: MIT repoEtag: '"05f8f58c9db1e8b86d11b0e0146c3157a70ff82ba98c75214d8ef057391a0e54"' repoLastModified: Tue, 03 Sep 2024 10:16:47 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/progyan1997/fastapi-clean-example - https://github.com/progyan1997/fastapi-example - source: openapi3 tags repository: https://github.com/postmanlabs/observability-cli v3: true repositoryMetadata: base64Readme: >- IyBXZWxjb21lISDwn5GLCgpUaGUgZmFzdGVzdCBhbmQgZWFzaWVzdCB3YXkgdG8gdW5kZXJzdGFuZCB5b3VyIEFQSXMuCgpCdWlsdCBmb3IgYnVzeSBkZXZlbG9wZXIgdGVhbXMgd2hvIGRvbid0IGhhdmUgdGltZSB0byBiZWNvbWUgZXhwZXJ0cyBpbiBtb25pdG9yaW5nIGFuZCBvYnNlcnZhYmlsaXR5LCBBa2l0YSBtYWtlcyBpdCBwb3NzaWJsZSB0byBxdWlja2x5IGRpc2NvdmVyIGFsbCB5b3VyIEFQSSBlbmRwb2ludHMsIHNlZSB3aGljaCBhcmUgc2xvd2VzdCwgYW5kIGxlYXJuIHdoaWNoIGhhdmUgZXJyb3JzLiBObyBTREtzIG9yIGNvZGUgY2hhbmdlcyBuZWNlc3NhcnkuCgogICogKipHZXQgcGx1Zy1hbmQtcGxheSBBUEkgbW9uaXRvcmluZy4qKiBFeHBsb3JlIGFuZCBzaGFyZSBwZXItZW5kcG9pbnQgdm9sdW1lLCBsYXRlbmN5LCBhbmQgZXJyb3JzLiBTZXQgcGVyLWVuZHBvaW50IGFsZXJ0cy4KICAqICoqU2VlIEFQSSBlbmRwb2ludHMuKiogQXV0b21hdGljYWxseSBnZXQgYSBzZWFyY2hhYmxlIG1hcCBvZiB5b3VyIEFQSSBlbmRwb2ludHMgaW4gdXNlLiBFeHBsb3JlIGJ5IGxhdGVuY3ksIGVycm9ycywgYW5kIHVzYWdlLiBFeHBvcnQgYXMgT3BlbkFQSSBzcGVjcy4KCkRyb3AgQWtpdGEgaW50byB5b3VyIHN5c3RlbSB0byB1bmRlcnN0YW5kIHlvdXIgYXBwbGljYXRpb27igJlzIGJlaGF2aW9yLCB3aXRob3V0IGhhdmluZyB0byBpbnN0cnVtZW50IGNvZGUgb3IgYnVpbGQgeW91ciBvd24gZGFzaGJvYXJkcy4KCldlJ3JlIGluIG9wZW4gYmV0YSBhbmQgd291bGQgbG92ZSB0byBoYXZlIHlvdSB0cnkgdXMgb3V0ISBbQ3JlYXRlIGFuIGFjY291bnQgaW4gdGhlIEFraXRhIEFwcF0oaHR0cHM6Ly9hcHAuYWtpdGEuc29mdHdhcmUvbG9naW4/c2lnbl91cCkgdG8gZ2V0IHN0YXJ0ZWQuCgogIFtBYm91dCB0aGlzIHJlcG9dKCNhYm91dC10aGlzLXJlcG8pCnwgW1J1bm5pbmcgdGhpcyByZXBvXSgjcnVubmluZy10aGlzLXJlcG8pCnwgW0dldHRpbmcgaW52b2x2ZWRdKCNnZXR0aW5nLWludm9sdmVkKQp8IFtSZWxhdGVkIGxpbmtzXSgjcmVsYXRlZC1saW5rcykKCiMjIEFib3V0IHRoaXMgcmVwbwpUaGlzIGlzIHRoZSBvcGVuLXNvdXJjZSByZXBvc2l0b3J5IGZvciB0aGUgY29tbXVuaXR5IHZlcnNpb24gb2Ygb3VyIENMSSwgYW5kIGlzCmludGVuZGVkIGZvciB1c2Ugd2l0aCB0aGUgQWtpdGEgY29uc29sZS4gVGhpcyBjb21tdW5pdHkgdmVyc2lvbiBvZiB0aGUgQ0xJIGRvZXMKbm90IGluY2x1ZGUgZnVuY3Rpb25hbGl0eSBmb3IgaW5mZXJyaW5nIHR5cGVzIGFuZCBkYXRhIGZvcm1hdHMuIFRoaXMKZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGUgb25seSBpbiB0aGUgYGFraXRhYCBiaW5hcnkgdGhhdCB3ZSBkaXN0cmlidXRlLgoKIyMgUnVubmluZyB0aGlzIHJlcG8KCiMjIyBIb3cgdG8gYnVpbGQKUnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIHdpbGwgZ2VuZXJhdGUgdGhlIGBha2l0YS1jbGlgIGJpbmFyeToKMS4gSW5zdGFsbCBbR28gMS4xOCBvciBhYm92ZV0oaHR0cHM6Ly9nb2xhbmcub3JnL2RvYy9pbnN0YWxsKS4gCjIuIEluc3RhbGwgYGxpYnBjYXBgCiAgICAtIEZvciBIb21lYnJldyBvbiBtYWM6IGBicmV3IGluc3RhbGwgbGlicGNhcGAKICAgIC0gRm9yIFVidW50dS9EZWJpYW46IGBhcHQtZ2V0IGluc3RhbGwgbGlicGNhcC1kZXZgCjMuIGBtYWtlYAoKCiMjIyBIb3cgdG8gdGVzdAoKMS4gSW5zdGFsbCBbZ29tb2NrXShodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nL21vY2spOiBgZ28gZ2V0IGdpdGh1Yi5jb20vZ29sYW5nL21vY2svbW9ja2dlbmAKMi4gYG1ha2UgdGVzdGAKCiMjIyBIb3cgdG8gdXNlCgpTZWUgb3VyIGRvY3M6IFtTaW5nbGUgSG9zdC9WTV0oaHR0cHM6Ly9kb2NzLmFraXRhLnNvZnR3YXJlL2RvY3MvcnVuLWxvY2FsbHkpLgoKTm90ZTogaWYgeW91J3JlIHBsYW5uaW5nIHRvIHVzZSB0aGUgQWtpdGEgQ0xJIHdpdGggdGhlIEFraXRhIENvbnNvbGUsIHdlIHJlY29tbWVuZCB1c2luZyBvdXIgW3N0YXRpY2FsbHkgbGlua2VkIGJpbmFyaWVzXShodHRwczovL2dpdGh1Yi5jb20vYWtpdGFzb2Z0d2FyZS9ha2l0YS1jbGkvcmVsZWFzZXMpIGlmIHBvc3NpYmxlLgoKIyMgR2V0dGluZyBpbnZvbHZlZAoqIFBsZWFzZSBmaWxlIGJ1Z3MgYXMgaXNzdWVzIHRvIHRoaXMgcmVwb3NpdG9yeS4KKiBXZSB3ZWxjb21lIGNvbnRyaWJ1dGlvbnMhIElmIHlvdSB3YW50IHRvIG1ha2UgY2hhbmdlcyBvciBidWlsZCB5b3VyIG93bgogIGV4dGVuc2lvbnMgdG8gdGhlIENMSSBvbiB0b3Agb2YgdGhlCiAgW0FraXRhIElSXShodHRwczovL2dpdGh1Yi5jb20vYWtpdGFzb2Z0d2FyZS9ha2l0YS1pciksIHBsZWFzZSBzZWUgb3VyCiAgW0NPTlRSSUJVVElOR10oQ09OVFJJQlVUSU5HLm1kKSBkb2MuCiogV2UncmUgYWx3YXlzIGhhcHB5IHRvIGFuc3dlciBhbnkgcXVlc3Rpb25zIGFib3V0IHRoZSBDTEksIG9yIGFib3V0IGhvdyB5b3UKICBjYW4gY29udHJpYnV0ZS4gRW1haWwgdXMgYXQgYG9wZW5zb3VyY2UgW2F0XSBha2l0YXNvZnR3YXJlIFtkb3RdIGNvbWAgb3IKICBbcmVxdWVzdCB0byBqb2luIG91ciBTbGFja10oaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZm9ybXMvZC9lLzFGQUlwUUxTZkYtTWY0TGlfRHF5c0NIeTA0MklCZnZ0cFVESEdZclY2RE9IWmxKY1FWOE9JbEFBL3ZpZXdmb3JtP3VzcD1zZl9saW5rKSEKCiMjIFJlbGF0ZWQgbGlua3MKKiBbQWtpdGEgYmxvZ10oaHR0cHM6Ly93d3cuYWtpdGFzb2Z0d2FyZS5jb20vYmxvZykKKiBbQWtpdGEgZG9jc10oaHR0cHM6Ly9kb2NzLmFraXRhLnNvZnR3YXJlLykKKiBbSm9pbiBvcGVuIGJldGFdKGh0dHBzOi8vYXBwLmFraXRhLnNvZnR3YXJlL2xvZ2luP3NpZ25fdXApCg== readmeEtag: '"7d8eae25730c84ff929c923fd1c8096380108121"' readmeLastModified: Tue, 21 May 2024 10:07:09 GMT repositoryId: 340217357 description: >- The Akita CLI helps you make sense of API traffic. Passively watch API traffic with apidump. Model API behavior with apispec. Compare API behavior with apidiff. created: '2021-02-19T00:43:53Z' updated: '2024-08-29T05:46:08Z' language: Go archived: true stars: 353 watchers: 7 forks: 28 owner: postmanlabs logo: https://avatars.githubusercontent.com/u/10251060?v=4 license: Apache-2.0 repoEtag: '"38c1188f11de0a7e87846f80325a59b37de4ae85c4b4ebfa76228e8258bbe2b2"' repoLastModified: Thu, 29 Aug 2024 05:46:08 GMT foundInMaster: true category: - SDK - Server Implementations id: d68f71ef1b50d8a54f410d403edf4ec3 oldLocations: - https://github.com/akitasoftware/akita-cli - source: openapi3 tags name: rest homepage: https://github.com/swaggest/rest language: Go source_description: >- API server with automatic request/response mapping/validation and OpenAPI schema category: Server Implementations repository: https://github.com/swaggest/rest v3: true repositoryMetadata: base64Readme: >- IyBSRVNUIHdpdGggQ2xlYW4gQXJjaGl0ZWN0dXJlIGZvciBHbwoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdC93b3JrZmxvd3MvdGVzdC11bml0L2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0L2FjdGlvbnM/cXVlcnk9YnJhbmNoJTNBbWFzdGVyK3dvcmtmbG93JTNBdGVzdC11bml0KQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY29kZWNvdi5pby9naC9zd2FnZ2VzdC9yZXN0L2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3N3YWdnZXN0L3Jlc3QpClshW0dvRGV2RG9jXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2Rldi1kb2MtMDBBREQ4P2xvZ289Z28pXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0KQpbIVtUaW1lIFRyYWNrZXJdKGh0dHBzOi8vd2FrYXRpbWUuY29tL2JhZGdlL2dpdGh1Yi9zd2FnZ2VzdC9yZXN0LnN2ZyldKGh0dHBzOi8vd2FrYXRpbWUuY29tL2JhZGdlL2dpdGh1Yi9zd2FnZ2VzdC9yZXN0KQohW0NvZGUgbGluZXNdKGh0dHBzOi8vc2xvYy54eXovZ2l0aHViL3N3YWdnZXN0L3Jlc3QvP2NhdGVnb3J5PWNvZGUpCiFbQ29tbWVudHNdKGh0dHBzOi8vc2xvYy54eXovZ2l0aHViL3N3YWdnZXN0L3Jlc3QvP2NhdGVnb3J5PWNvbW1lbnRzKQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyBIVFRQIHRyYW5zcG9ydCBsZXZlbCBmb3IgW2BnaXRodWIuY29tL3N3YWdnZXN0L3VzZWNhc2VgXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvdXNlY2FzZSkgCnRvIGJ1aWxkIFJFU1Qgc2VydmljZXMuCgojIyBHb2FscwoKKiBNYWludGFpbiBzaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciBkb2N1bWVudGF0aW9uLCB2YWxpZGF0aW9uIGFuZCBpbnB1dC9vdXRwdXQgb2YgSFRUUCBBUEkuCiogQXZvaWQgZGVwZW5kZW5jeSBvbiBjb21waWxlIHRpbWUgY29kZSBnZW5lcmF0aW9uLgoqIEltcHJvdmUgcHJvZHVjdGl2aXR5IGFuZCByZWxpYWJpbGl0eSBieSBhYnN0cmFjdGluZyBIVFRQIGRldGFpbHMgd2l0aCBzaW1wbGUgQVBJIGZvciBjb21tb24gY2FzZS4KKiBBbGxvdyBsb3ctbGV2ZWwgY3VzdG9taXphdGlvbnMgZm9yIGFkdmFuY2VkIGNhc2VzLgoqIE1haW50YWluIHJlYXNvbmFibGUgcGVyZm9ybWFuY2Ugd2l0aCBsb3cgR0MgaW1wYWN0LgoKIyMgTm9uLUdvYWxzCgoqIFN1cHBvcnQgZm9yIGxlZ2FjeSBkb2N1bWVudGF0aW9uIHNjaGVtYXMgbGlrZSBTd2FnZ2VyIDIuMCBvciBSQU1MLgoqIFplcm8gYWxsb2NhdGlvbnMuCiogRXhwbGljaXQgc3VwcG9ydCBmb3IgWE1MIGluIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9kaWVzLgoKIyMgRmVhdHVyZXMKCiogQ29tcGF0aWJsZSB3aXRoIGBuZXQvaHR0cGAuCiogQnVpbHQgd2l0aCBbYGdpdGh1Yi5jb20vZ28tY2hpL2NoaWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1jaGkvY2hpKSByb3V0ZXIuCiogTW9kdWxhciBmbGV4aWJsZSBzdHJ1Y3R1cmUuCiogSFRUUCBbcmVxdWVzdCBtYXBwaW5nXSgjcmVxdWVzdC1kZWNvZGVyKSBpbnRvIEdvIHZhbHVlIGJhc2VkIG9uIGZpZWxkIHRhZ3MuCiogRGVjb3VwbGVkIGJ1c2luZXNzIGxvZ2ljIHdpdGggQ2xlYW4gQXJjaGl0ZWN0dXJlIHVzZSBjYXNlcy4KKiBBdXRvbWF0aWMgdHlwZS1zYWZlIE9wZW5BUEkgMy4wLzMuMSBkb2N1bWVudGF0aW9uIHdpdGggW2BnaXRodWIuY29tL3N3YWdnZXN0L29wZW5hcGktZ29gXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3Qvb3BlbmFwaS1nbykuCiogU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGhlIGRvY3VtZW50YXRpb24gYW5kIGVuZHBvaW50IGludGVyZmFjZS4KKiBBdXRvbWF0aWMgcmVxdWVzdC9yZXNwb25zZSBKU09OIHNjaGVtYSB2YWxpZGF0aW9uIHdpdGggW2BnaXRodWIuY29tL3NhbnRob3NoLXRla3VyaS9qc29uc2NoZW1hYF0oaHR0cHM6Ly9naXRodWIuY29tL3NhbnRob3NoLXRla3VyaS9qc29uc2NoZW1hKS4KKiBEeW5hbWljIGd6aXAgY29tcHJlc3Npb24gYW5kIGZhc3QgcGFzcyB0aHJvdWdoIG1vZGUuCiogT3B0aW1pemVkIHBlcmZvcm1hbmNlLgoqIEVtYmVkZGVkIFtTd2FnZ2VyIFVJXShodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci11aS8pLgoqIEdlbmVyaWMgaW50ZXJmYWNlIGZvciBbdXNlIGNhc2UgaW50ZXJhY3RvcnNdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L3VzZWNhc2UjTmV3SW50ZXJhY3RvcikuIAoKIyMgVXNhZ2UKClBsZWFzZSBjaGVjayB0aGlzIFt0dXRvcmlhbF0oaHR0cHM6Ly9kZXYudG8vdmVhcnV0b3AvdHV0b3JpYWwtZGV2ZWxvcGluZy1hLXJlc3RmdWwtYXBpLXdpdGgtZ28tanNvbi1zY2hlbWEtdmFsaWRhdGlvbi1hbmQtb3BlbmFwaS1kb2NzLTI0OTApIGZvciBlbmQtdG8tZW5kIHVzYWdlIGV4YW1wbGUuCgojIyMgUmVxdWVzdCBEZWNvZGVyCgpHbyBzdHJ1Y3Qgd2l0aCBmaWVsZCB0YWdzIGRlZmluZXMgaW5wdXQgcG9ydC4gClJlcXVlc3QgZGVjb2RlciBwb3B1bGF0ZXMgZmllbGQgdmFsdWVzIGZyb20gYGh0dHAuUmVxdWVzdGAgZGF0YSBiZWZvcmUgdXNlIGNhc2UgaW50ZXJhY3RvciBpcyBpbnZva2VkLiAKCmBgYGdvCi8vIERlY2xhcmUgaW5wdXQgcG9ydCB0eXBlLgp0eXBlIGhlbGxvSW5wdXQgc3RydWN0IHsKICAgIExvY2FsZSBzdHJpbmcgYHF1ZXJ5OiJsb2NhbGUiIGRlZmF1bHQ6ImVuLVVTIiBwYXR0ZXJuOiJeW2Etel17Mn0tW0EtWl17Mn0kIiBlbnVtOiJydS1SVSxlbi1VUyJgCiAgICBOYW1lICAgc3RyaW5nIGBwYXRoOiJuYW1lIiBtaW5MZW5ndGg6IjMiYCAvLyBGaWVsZCB0YWdzIGRlZmluZSBwYXJhbWV0ZXIgbG9jYXRpb24gYW5kIEpTT04gc2NoZW1hIGNvbnN0cmFpbnRzLgoKICAgIC8vIEZpZWxkIHRhZ3Mgb2YgdW5uYW1lZCBmaWVsZHMgYXJlIGFwcGxpZWQgdG8gcGFyZW50IHNjaGVtYSwgCgkvLyB0aGV5IGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHVzZWQgdG8gZGlzYWxsb3cgdW5rbm93biBwYXJhbWV0ZXJzLgogICAgLy8gRm9yIG5vbi1ib2R5IHBhcmFtcywgbmFtZSB0YWcgbXVzdCBiZSBwcm92aWRlZCBleHBsaWNpdGx5LgogICAgLy8gRS5nLiBoZXJlIG5vIHVua25vd24gYHF1ZXJ5YCBhbmQgYGNvb2tpZWAgcGFyYW1ldGVycyBhbGxvd2VkLAogICAgLy8gdW5rbm93biBgaGVhZGVyYCBwYXJhbXMgYXJlIG9rLgogICAgXyBzdHJ1Y3R7fSBgcXVlcnk6Il8iIGNvb2tpZToiXyIgYWRkaXRpb25hbFByb3BlcnRpZXM6ImZhbHNlImAKfQpgYGAKCklucHV0IGRhdGEgY2FuIGJlIGxvY2F0ZWQgaW46CiogYHBhdGhgIHBhcmFtZXRlciBpbiByZXF1ZXN0IFVSSSwgZS5nLiBgL3VzZXJzL3tuYW1lfWAsCiogYHF1ZXJ5YCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBVUkksIGUuZy4gYC91c2Vycz9sb2NhbGU9ZW4tVVNgLAoqIGBmb3JtRGF0YWAgcGFyYW1ldGVyIGluIHJlcXVlc3QgYm9keSB3aXRoIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgIG9yIGBtdWx0aXBhcnQvZm9ybS1kYXRhYCBjb250ZW50LAoqIGBmb3JtYCBwYXJhbWV0ZXIgYWN0cyBhcyBgZm9ybURhdGFgIG9yIGBxdWVyeWAsCiogYGpzb25gIHBhcmFtZXRlciBpbiByZXF1ZXN0IGJvZHkgd2l0aCBgYXBwbGljYXRpb24vanNvbmAgY29udGVudCwKKiBgY29va2llYCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBjb29raWUsCiogYGhlYWRlcmAgcGFyYW1ldGVyIGluIHJlcXVlc3QgaGVhZGVyLgoKRm9yIG1vcmUgZXhwbGljaXQgc2VwYXJhdGlvbiBvZiBjb25jZXJucyBiZXR3ZWVuIHVzZSBjYXNlIGFuZCB0cmFuc3BvcnQgaXQgaXMgcG9zc2libGUgdG8gcHJvdmlkZSByZXF1ZXN0IG1hcHBpbmcgCnNlcGFyYXRlbHkgd2hlbiBpbml0aWFsaXppbmcgaGFuZGxlciAocGxlYXNlIG5vdGUsIHN1Y2ggbWFwcGluZyBpcyBbbm90IGFwcGxpZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0L2lzc3Vlcy82MSNpc3N1ZWNvbW1lbnQtMTA1OTg1MTU1MykgdG8gYGpzb25gIGJvZHkpLgoKYGBgZ28KLy8gRGVjbGFyZSBpbnB1dCBwb3J0IHR5cGUuCnR5cGUgaGVsbG9JbnB1dCBzdHJ1Y3QgewogICAgTG9jYWxlIHN0cmluZyBgZGVmYXVsdDoiZW4tVVMiIHBhdHRlcm46Il5bYS16XXsyfS1bQS1aXXsyfSQiYAogICAgTmFtZSAgIHN0cmluZyBgbWluTGVuZ3RoOiIzImAgLy8gRmllbGQgdGFncyBkZWZpbmUgcGFyYW1ldGVyIGxvY2F0aW9uIGFuZCBKU09OIHNjaGVtYSBjb25zdHJhaW50cy4KfQpgYGAKCmBgYGdvCi8vIEFkZCB1c2UgY2FzZSBoYW5kbGVyIHdpdGggY3VzdG9tIGlucHV0IG1hcHBpbmcgdG8gcm91dGVyLgpyLk1ldGhvZChodHRwLk1ldGhvZEdldCwgIi9oZWxsby97bmFtZX0iLCBuZXRodHRwLk5ld0hhbmRsZXIodSwKICAgIG5ldGh0dHAuUmVxdWVzdE1hcHBpbmcobmV3KHN0cnVjdCB7CiAgICAgICBMb2NhbGUgc3RyaW5nIGBxdWVyeToibG9jYWxlImAKICAgICAgIE5hbWUgICBzdHJpbmcgYHBhdGg6Im5hbWUiYCAvLyBGaWVsZCB0YWdzIGRlZmluZSBwYXJhbWV0ZXIgbG9jYXRpb24gYW5kIEpTT04gc2NoZW1hIGNvbnN0cmFpbnRzLgogICAgfSkpLAopKQpgYGAKCkFkZGl0aW9uYWwgZmllbGQgdGFncyBkZXNjcmliZSBKU09OIHNjaGVtYSBjb25zdHJhaW50cywgcGxlYXNlIGNoZWNrIApbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3QvanNvbnNjaGVtYS1nbyNSZWZsZWN0b3IuUmVmbGVjdCkuCgpNb3JlIHNjaGVtYSBjdXN0b21pemF0aW9ucyBhcmUgcG9zc2libGUgd2l0aCBbYGdpdGh1Yi5jb20vc3dhZ2dlc3QvanNvbnNjaGVtYS1nbyBpbnRlcmZhY2VzYF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L2pzb25zY2hlbWEtZ28jaW1wbGVtZW50aW5nLWludGVyZmFjZXMtb24tYS10eXBlKS4KCkJ5IGRlZmF1bHQgYGRlZmF1bHRgIHRhZ3MgYXJlIG9ubHkgY29udHJpYnV0aW5nIHRvIGRvY3VtZW50YXRpb24sIAppZiBbYHJlcXVlc3QuRGVjb2RlckZhY3RvcnkuQXBwbHlEZWZhdWx0c2BdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3QvcmVxdWVzdCNEZWNvZGVyRmFjdG9yeSkgaXMgCnNldCB0byBgdHJ1ZWAsIGZpZWxkcyBvZiByZXF1ZXN0IHN0cnVjdHVyZSB0aGF0IGRvbid0IGhhdmUgZXhwbGljaXQgdmFsdWUgYnV0IGhhdmUgYGRlZmF1bHRgIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggCmRlZmF1bHQgdmFsdWUuCgpJZiBpbnB1dCBzdHJ1Y3R1cmUgaW1wbGVtZW50cyBbYHJlcXVlc3QuTG9hZGVyYF0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdC9yZXF1ZXN0I0xvYWRlciksICAKdGhlbiBgTG9hZEZyb21IVFRQUmVxdWVzdChyICpodHRwLlJlcXVlc3QpIGVycm9yYCBtZXRob2Qgd2lsbCBiZSBpbnZva2VkIHRvIHBvcHVsYXRlIGlucHV0IHN0cnVjdHVyZSBpbnN0ZWFkIApvZiBhdXRvbWF0aWMgZGVjb2RpbmcuIFRoaXMgYWxsb3dzIGxvdyBsZXZlbCBjb250cm9sIGZvciBjYXNlcyB0aGF0IG5lZWQgaXQuCgo8ZGV0YWlscz4KPHN1bW1hcnk+UmVxdWVzdCBkZWNvZGVyIGNhbiBiZSB1c2VkIHN0YW5kYWxvbmUsIGluIGFscmVhZHkgZXhpc3RpbmcgYFNlcnZlSFRUUGAuPC9zdW1tYXJ5PgoKYGBgZ28KdHlwZSBNeVJlcXVlc3Qgc3RydWN0IHsKICAgIEZvbyBpbnQgICAgYGhlYWRlcjoiWC1Gb28iYAogICAgQmFyIHN0cmluZyBgZm9ybURhdGE6ImJhciJgCiAgICBCYXogYm9vbCAgIGBxdWVyeToiYmF6ImAKfQoKLy8gQSBkZWNvZGVyIGZvciBwYXJ0aWN1bGFyIHN0cnVjdHVyZSwgY2FuIGJlIHJldXNlZCBmb3IgbXVsdGlwbGUgSFRUUCByZXF1ZXN0cy4KbXlEZWNvZGVyIDo9IHJlcXVlc3QuTmV3RGVjb2RlckZhY3RvcnkoKS5NYWtlRGVjb2RlcihodHRwLk1ldGhvZFBvc3QsIG5ldyhNeVJlcXVlc3QpLCBuaWwpCgovLyBSZXF1ZXN0IGFuZCByZXNwb25zZSB3cml0ZXIgZnJvbSBTZXJ2ZUhUVFAuCnZhciAoCiAgICBydyAgaHR0cC5SZXNwb25zZVdyaXRlcgogICAgcmVxICpodHRwLlJlcXVlc3QKKQoKLy8gVGhpcyBjb2RlIHdvdWxkIHByZXN1bWFibHkgbGl2ZSBpbiBTZXJ2ZUhUVFAuCnZhciBteVJlcSBNeVJlcXVlc3QKCmlmIGVyciA6PSBteURlY29kZXIuRGVjb2RlKHJlcSwgJm15UmVxLCBuaWwpOyBlcnIgIT0gbmlsIHsKICAgIGh0dHAuRXJyb3IocncsIGVyci5FcnJvcigpLCBodHRwLlN0YXR1c0JhZFJlcXVlc3QpCn0KYGBgCjwvZGV0YWlscz4KCiMjIyBSZXNwb25zZSBFbmNvZGVyCgpHbyBzdHJ1Y3Qgd2l0aCBmaWVsZCB0YWdzIGRlZmluZXMgb3V0cHV0IHBvcnQuClJlc3BvbnNlIGVuY29kZXIgd3JpdGVzIGRhdGEgZnJvbSBvdXRwdXQgdG8gYGh0dHAuUmVzcG9uc2VXcml0ZXJgIGFmdGVyIHVzZSBjYXNlIGludGVyYWN0b3IgaW52b2NhdGlvbiBmaW5pc2hlcy4KCmBgYGdvCi8vIERlY2xhcmUgb3V0cHV0IHBvcnQgdHlwZS4KdHlwZSBoZWxsb091dHB1dCBzdHJ1Y3QgewogICAgTm93ICAgICB0aW1lLlRpbWUgYGhlYWRlcjoiWC1Ob3ciIGpzb246Ii0iYAogICAgTWVzc2FnZSBzdHJpbmcgICAgYGpzb246Im1lc3NhZ2UiYAogICAgU2VzcyAgICBzdHJpbmcgICAgYGNvb2tpZToic2VzcyxodHRwb25seSxzZWN1cmUsbWF4LWFnZT04NjQwMCxzYW1lc2l0ZT1sYXgiYAp9CmBgYAoKT3V0cHV0IGRhdGEgY2FuIGJlIGxvY2F0ZWQgaW46CiogYGpzb25gIGZvciByZXNwb25zZSBib2R5IHdpdGggYGFwcGxpY2F0aW9uL2pzb25gIGNvbnRlbnQsCiogYGhlYWRlcmAgZm9yIHZhbHVlcyBpbiByZXNwb25zZSBoZWFkZXIsCiogYGNvb2tpZWAgZm9yIGNvb2tpZSB2YWx1ZXMsIGNvb2tpZSBmaWVsZHMgY2FuIGhhdmUgY29uZmlndXJhdGlvbiBpbiBmaWVsZCB0YWcgKHNhbWUgYXMgaW4gYWN0dWFsIGNvb2tpZSwgYnV0IHdpdGggY29tbWEgc2VwYXJhdGlvbikuCgpGb3IgbW9yZSBleHBsaWNpdCBzZXBhcmF0aW9uIG9mIGNvbmNlcm5zIGJldHdlZW4gdXNlIGNhc2UgYW5kIHRyYW5zcG9ydCBpdCBpcyBwb3NzaWJsZSB0byBwcm92aWRlIHJlc3BvbnNlIGhlYWRlciBtYXBwaW5nIApzZXBhcmF0ZWx5IHdoZW4gaW5pdGlhbGl6aW5nIGhhbmRsZXIuCgpgYGBnbwovLyBEZWNsYXJlIG91dHB1dCBwb3J0IHR5cGUuCnR5cGUgaGVsbG9PdXRwdXQgc3RydWN0IHsKICAgIE5vdyAgICAgdGltZS5UaW1lIGBqc29uOiItImAKICAgIE1lc3NhZ2Ugc3RyaW5nICAgIGBqc29uOiJtZXNzYWdlImAKfQpgYGAKCmBgYGdvCi8vIEFkZCB1c2UgY2FzZSBoYW5kbGVyIHdpdGggY3VzdG9tIG91dHB1dCBoZWFkZXJzIG1hcHBpbmcgdG8gcm91dGVyLgpyLk1ldGhvZChodHRwLk1ldGhvZEdldCwgIi9oZWxsby97bmFtZX0iLCBuZXRodHRwLk5ld0hhbmRsZXIodSwKICAgIG5ldGh0dHAuUmVzcG9uc2VIZWFkZXJNYXBwaW5nKG5ldyhzdHJ1Y3QgewogICAgICAgIE5vdyAgICAgdGltZS5UaW1lIGBoZWFkZXI6IlgtTm93ImAKICAgIH0pKSwKKSkKYGBgCgpBZGRpdGlvbmFsIGZpZWxkIHRhZ3MgZGVzY3JpYmUgSlNPTiBzY2hlbWEgY29uc3RyYWludHMsIHBsZWFzZSBjaGVjayAKW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L2pzb25zY2hlbWEtZ28jUmVmbGVjdG9yLlJlZmxlY3QpLgoKIyMjIENyZWF0aW5nIFVzZSBDYXNlIEludGVyYWN0b3IKCkhUVFAgdHJhbnNwb3J0IGlzIGRlY291cGxlZCBmcm9tIGJ1c2luZXNzIGxvZ2ljIGJ5IGFkYXB0aW5nClt1c2UgY2FzZSBpbnRlcmFjdG9yc10oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3QvdXNlY2FzZSNJbnRlcmFjdG9yKS4KClVzZSBjYXNlIGludGVyYWN0b3IgY2FuIGRlZmluZSBpbnB1dCBhbmQgb3V0cHV0IHBvcnRzIHRoYXQgYXJlIHVzZWQgdG8gbWFwIGRhdGEgYmV0d2VlbiBHbyB2YWx1ZXMgYW5kIHRyYW5zcG9ydC4KSXQgY2FuIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgaXRzZWxmIHRoYXQgd2lsbCBiZSBleHBvc2VkIGluIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLgoKYGBgZ28KLy8gQ3JlYXRlIHVzZSBjYXNlIGludGVyYWN0b3Igd2l0aCByZWZlcmVuY2VzIHRvIGlucHV0L291dHB1dCB0eXBlcyBhbmQgaW50ZXJhY3Rpb24gZnVuY3Rpb24uCnUgOj0gdXNlY2FzZS5OZXdJbnRlcmFjdG9yKGZ1bmMoY3R4IGNvbnRleHQuQ29udGV4dCwgaW5wdXQgaGVsbG9JbnB1dCwgb3V0cHV0ICpoZWxsb091dHB1dCkgZXJyb3IgewogICAgbXNnLCBhdmFpbGFibGUgOj0gbWVzc2FnZXNbaW5wdXQuTG9jYWxlXQogICAgaWYgIWF2YWlsYWJsZSB7CiAgICAgICAgcmV0dXJuIHN0YXR1cy5XcmFwKGVycm9ycy5OZXcoInVua25vd24gbG9jYWxlIiksIHN0YXR1cy5JbnZhbGlkQXJndW1lbnQpCiAgICB9CgogICAgb3V0cHV0Lk1lc3NhZ2UgPSBmbXQuU3ByaW50Zihtc2csIGlucHV0Lk5hbWUpCiAgICBvdXRwdXQuTm93ID0gdGltZS5Ob3coKQoKICAgIHJldHVybiBuaWwKfSkKYGBgCgojIyMgSW5pdGlhbGl6aW5nIFdlYiBTZXJ2aWNlCgpbV2ViIFNlcnZpY2VdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3Qvd2ViI0RlZmF1bHRTZXJ2aWNlKSBpcyBhbiBpbnN0cnVtZW50ZWQgZmFjYWRlIGluIGZyb250IG9mIApyb3V0ZXIsIGl0IHNpbXBsaWZpZXMgY29uZmlndXJhdGlvbiBhbmQgcHJvdmlkZXMgbW9yZSBjb21wYWN0IEFQSSB0byBhZGQgdXNlIGNhc2VzLgoKYGBgZ28KLy8gU2VydmljZSBpbml0aWFsaXplcyByb3V0ZXIgd2l0aCByZXF1aXJlZCBtaWRkbGV3YXJlcy4Kc2VydmljZSA6PSB3ZWIuTmV3U2VydmljZShvcGVuYXBpMzEuTmV3UmVmbGVjdG9yKCkpCgovLyBJdCBhbGxvd3MgT3BlbkFQSSBjb25maWd1cmF0aW9uLgpzZXJ2aWNlLk9wZW5BUElTY2hlbWEoKS5TZXRUaXRsZSgiQWxidW1zIEFQSSIpCnNlcnZpY2UuT3BlbkFQSVNjaGVtYSgpLlNldERlc2NyaXB0aW9uKCJUaGlzIHNlcnZpY2UgcHJvdmlkZXMgQVBJIHRvIG1hbmFnZSBhbGJ1bXMuIikKc2VydmljZS5PcGVuQVBJU2NoZW1hKCkuU2V0VmVyc2lvbigidjEuMC4wIikKCi8vIEFkZGl0aW9uYWwgbWlkZGxld2FyZXMgY2FuIGJlIGFkZGVkLgpzZXJ2aWNlLlVzZSgKICAgIG1pZGRsZXdhcmUuU3RyaXBTbGFzaGVzLAoKICAgIC8vIGNvcnMuQWxsb3dBbGwoKS5IYW5kbGVyLCAvLyAiZ2l0aHViLmNvbS9ycy9jb3JzIiwgM3JkLXBhcnR5IENPUlMgbWlkZGxld2FyZSBjYW4gYWxzbyBiZSBjb25maWd1cmVkIGhlcmUuCikKCi8vIFVzZSBjYXNlcyBjYW4gYmUgbW91bnRlZCB1c2luZyBzaG9ydCBzeW50YXggLjxNZXRob2Q+KC4uLikuCnNlcnZpY2UuUG9zdCgiL2FsYnVtcyIsIHBvc3RBbGJ1bXMoKSwgbmV0aHR0cC5TdWNjZXNzU3RhdHVzKGh0dHAuU3RhdHVzQ3JlYXRlZCkpCgpsb2cuUHJpbnRsbigiU3RhcnRpbmcgc2VydmljZSBhdCBodHRwOi8vbG9jYWxob3N0OjgwODAiKQoKaWYgZXJyIDo9IGh0dHAuTGlzdGVuQW5kU2VydmUoImxvY2FsaG9zdDo4MDgwIiwgc2VydmljZSk7IGVyciAhPSBuaWwgewogICAgbG9nLkZhdGFsKGVycikKfQoKYGBgCgpVc3VhbGx5LCBgd2ViLlNlcnZpY2VgIEFQSSBpcyBzdWZmaWNpZW50LCBidXQgaWYgaXQgaXMgbm90LCByb3V0ZXIgY2FuIGJlIGNvbmZpZ3VyZWQgbWFudWFsbHksIHBsZWFzZSBjaGVjayAKdGhlIGRvY3VtZW50YXRpb24gYmVsb3cuCgoKIyMgU2VjdXJpdHkgU2V0dXAKCkV4YW1wbGUgd2l0aCBIVFRQIEJhc2ljIEF1dGguCgpgYGBnbwovLyBQcmVwYXJlIG1pZGRsZXdhcmUgd2l0aCBzdWl0YWJsZSBzZWN1cml0eSBzY2hlbWEuCi8vIEl0IHdpbGwgcGVyZm9ybSBhY3R1YWwgc2VjdXJpdHkgY2hlY2sgZm9yIGV2ZXJ5IHJlbGV2YW50IHJlcXVlc3QuCmFkbWluQXV0aCA6PSBtaWRkbGV3YXJlLkJhc2ljQXV0aCgiQWRtaW4gQWNjZXNzIiwgbWFwW3N0cmluZ11zdHJpbmd7ImFkbWluIjogImFkbWluIn0pCgovLyBQcmVwYXJlIEFQSSBzY2hlbWEgdXBkYXRlciBtaWRkbGV3YXJlLgovLyBJdCB3aWxsIGFubm90YXRlIGhhbmRsZXIgZG9jdW1lbnRhdGlvbiB3aXRoIHNlY3VyaXR5IHNjaGVtYS4KYWRtaW5TZWN1cml0eVNjaGVtYSA6PSBuZXRodHRwLkhUVFBCYXNpY1NlY3VyaXR5TWlkZGxld2FyZShhcGlTY2hlbWEsICJBZG1pbiIsICJBZG1pbiBhY2Nlc3MiKQoKLy8gRW5kcG9pbnRzIHdpdGggYWRtaW4gYWNjZXNzLgpyLlJvdXRlKCIvYWRtaW4iLCBmdW5jKHIgY2hpLlJvdXRlcikgewogICAgci5Hcm91cChmdW5jKHIgY2hpLlJvdXRlcikgewogICAgICAgIHIuVXNlKGFkbWluQXV0aCwgYWRtaW5TZWN1cml0eVNjaGVtYSkgLy8gQWRkIGJvdGggbWlkZGxld2FyZXMgdG8gcm91dGluZyBncm91cCB0byBlbmZvcmNlIGFuZCBkb2N1bWVudCBzZWN1cml0eS4KICAgICAgICByLk1ldGhvZChodHRwLk1ldGhvZFB1dCwgIi9oZWxsby97bmFtZX0iLCBuZXRodHRwLk5ld0hhbmRsZXIodSkpCiAgICB9KQp9KQpgYGAKCkV4YW1wbGUgd2l0aCBjb29raWUuCgpgYGBnbwovLyBTZWN1cml0eSBtaWRkbGV3YXJlcy4KLy8gIC0gc2Vzc01XIGlzIHRoZSBhY3R1YWwgcmVxdWVzdC1sZXZlbCBwcm9jZXNzb3IsCi8vICAtIHNlc3NEb2MgaXMgYSBoYW5kbGVyLWxldmVsIHdyYXBwZXIgdG8gZXhwb3NlIGRvY3MuCnNlc3NNVyA6PSBmdW5jKGhhbmRsZXIgaHR0cC5IYW5kbGVyKSBodHRwLkhhbmRsZXIgewogICAgcmV0dXJuIGh0dHAuSGFuZGxlckZ1bmMoZnVuYyh3IGh0dHAuUmVzcG9uc2VXcml0ZXIsIHIgKmh0dHAuUmVxdWVzdCkgewogICAgICAgIGlmIGMsIGVyciA6PSByLkNvb2tpZSgic2Vzc2lkIik7IGVyciA9PSBuaWwgewogICAgICAgICAgICByID0gci5XaXRoQ29udGV4dChjb250ZXh0LldpdGhWYWx1ZShyLkNvbnRleHQoKSwgInNlc3Npb25JRCIsIGMuVmFsdWUpKQogICAgICAgIH0KCiAgICAgICAgaGFuZGxlci5TZXJ2ZUhUVFAodywgcikKICAgIH0pCn0KCnNlc3NEb2MgOj0gbmV0aHR0cC5BUElLZXlTZWN1cml0eU1pZGRsZXdhcmUocy5PcGVuQVBJQ29sbGVjdG9yLCAiVXNlciIsCiAgICAic2Vzc2lkIiwgb2FwaS5JbkNvb2tpZSwgIlNlc3Npb24gY29va2llLiIpCgovLyBTZWN1cml0eSBzY2hlbWEgaXMgY29uZmlndXJlZCBmb3IgYSBzaW5nbGUgdG9wLWxldmVsIHJvdXRlLgpzLldpdGgoc2Vzc01XLCBzZXNzRG9jKS5NZXRob2QoaHR0cC5NZXRob2RHZXQsICIvcm9vdC13aXRoLXNlc3Npb24iLCBuZXRodHRwLk5ld0hhbmRsZXIoZHVtbXkoKSkpCgovLyBTZWN1cml0eSBzY2hlbWEgaXMgY29uZmlndXJlZCBvbiBhIHN1Yi1yb3V0ZXIuCnMuUm91dGUoIi9kZWVwZXItd2l0aC1zZXNzaW9uIiwgZnVuYyhyIGNoaS5Sb3V0ZXIpIHsKICAgIHIuR3JvdXAoZnVuYyhyIGNoaS5Sb3V0ZXIpIHsKICAgICAgICByLlVzZShzZXNzTVcsIHNlc3NEb2MpCgogICAgICAgIHIuTWV0aG9kKGh0dHAuTWV0aG9kR2V0LCAiL29uZSIsIG5ldGh0dHAuTmV3SGFuZGxlcihkdW1teSgpKSkKICAgICAgICByLk1ldGhvZChodHRwLk1ldGhvZEdldCwgIi90d28iLCBuZXRodHRwLk5ld0hhbmRsZXIoZHVtbXkoKSkpCiAgICB9KQp9KQoKYGBgCgpTZWUgW2V4YW1wbGVdKC4vX2V4YW1wbGVzL3Rhc2stYXBpL2ludGVybmFsL2luZnJhL25ldGh0dHAvcm91dGVyLmdvKS4KCiMjIEhhbmRsZXIgU2V0dXAKCkhhbmRsZXIgaXMgYSBnZW5lcmFsaXplZCBhZGFwdGVyIGZvciB1c2UgY2FzZSBpbnRlcmFjdG9yLCBzbyB1c3VhbGx5IHNldHVwIGlzIHRyaXZpYWwuCgpgYGBnbwovLyBBZGQgdXNlIGNhc2UgaGFuZGxlciB0byByb3V0ZXIuCnIuTWV0aG9kKGh0dHAuTWV0aG9kR2V0LCAiL2hlbGxvL3tuYW1lfSIsIG5ldGh0dHAuTmV3SGFuZGxlcih1KSkKYGBgCgojIyBFeGFtcGxlCgpGb3Igbm9uLWdlbmVyaWMgdXNlIGNhc2UsIHNlZSBhbm90aGVyIFtleGFtcGxlXSguL19leGFtcGxlcy9iYXNpYy9tYWluLmdvKS4KCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJjb250ZXh0IgoJImVycm9ycyIKCSJmbXQiCgkibG9nIgoJIm5ldC9odHRwIgoJInRpbWUiCgoJImdpdGh1Yi5jb20vc3dhZ2dlc3Qvb3BlbmFwaS1nby9vcGVuYXBpMzEiCgkiZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0L3Jlc3BvbnNlL2d6aXAiCgkiZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0L3dlYiIKCXN3Z3VpICJnaXRodWIuY29tL3N3YWdnZXN0L3N3Z3VpL3Y1ZW1iIgoJImdpdGh1Yi5jb20vc3dhZ2dlc3QvdXNlY2FzZSIKCSJnaXRodWIuY29tL3N3YWdnZXN0L3VzZWNhc2Uvc3RhdHVzIgopCgpmdW5jIG1haW4oKSB7CglzIDo9IHdlYi5OZXdTZXJ2aWNlKG9wZW5hcGkzMS5OZXdSZWZsZWN0b3IoKSkKCgkvLyBJbml0IEFQSSBkb2N1bWVudGF0aW9uIHNjaGVtYS4KCXMuT3BlbkFQSVNjaGVtYSgpLlNldFRpdGxlKCJCYXNpYyBFeGFtcGxlIikKCXMuT3BlbkFQSVNjaGVtYSgpLlNldERlc2NyaXB0aW9uKCJUaGlzIGFwcCBzaG93Y2FzZXMgYSB0cml2aWFsIFJFU1QgQVBJLiIpCglzLk9wZW5BUElTY2hlbWEoKS5TZXRWZXJzaW9uKCJ2MS4yLjMiKQoKCS8vIFNldHVwIG1pZGRsZXdhcmVzLgoJcy5XcmFwKAoJCWd6aXAuTWlkZGxld2FyZSwgLy8gUmVzcG9uc2UgY29tcHJlc3Npb24gd2l0aCBzdXBwb3J0IGZvciBkaXJlY3QgZ3ppcCBwYXNzIHRocm91Z2guCgkpCgoJLy8gRGVjbGFyZSBpbnB1dCBwb3J0IHR5cGUuCgl0eXBlIGhlbGxvSW5wdXQgc3RydWN0IHsKCQlMb2NhbGUgc3RyaW5nIGBxdWVyeToibG9jYWxlIiBkZWZhdWx0OiJlbi1VUyIgcGF0dGVybjoiXlthLXpdezJ9LVtBLVpdezJ9JCIgZW51bToicnUtUlUsZW4tVVMiYAoJCU5hbWUgICBzdHJpbmcgYHBhdGg6Im5hbWUiIG1pbkxlbmd0aDoiMyJgIC8vIEZpZWxkIHRhZ3MgZGVmaW5lIHBhcmFtZXRlciBsb2NhdGlvbiBhbmQgSlNPTiBzY2hlbWEgY29uc3RyYWludHMuCgoJCS8vIEZpZWxkIHRhZ3Mgb2YgdW5uYW1lZCBmaWVsZHMgYXJlIGFwcGxpZWQgdG8gcGFyZW50IHNjaGVtYS4KCQkvLyB0aGV5IGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHVzZWQgdG8gZGlzYWxsb3cgdW5rbm93biBwYXJhbWV0ZXJzLgoJCS8vIEZvciBub24tYm9keSBwYXJhbXMsIG5hbWUgdGFnIG11c3QgYmUgcHJvdmlkZWQgZXhwbGljaXRseS4KCQkvLyBFLmcuIGhlcmUgbm8gdW5rbm93biBgcXVlcnlgIGFuZCBgY29va2llYCBwYXJhbWV0ZXJzIGFsbG93ZWQsCgkJLy8gdW5rbm93biBgaGVhZGVyYCBwYXJhbXMgYXJlIG9rLgoJCV8gc3RydWN0e30gYHF1ZXJ5OiJfIiBjb29raWU6Il8iIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiJmYWxzZSJgCgl9CgoJLy8gRGVjbGFyZSBvdXRwdXQgcG9ydCB0eXBlLgoJdHlwZSBoZWxsb091dHB1dCBzdHJ1Y3QgewoJCU5vdyAgICAgdGltZS5UaW1lIGBoZWFkZXI6IlgtTm93IiBqc29uOiItImAKCQlNZXNzYWdlIHN0cmluZyAgICBganNvbjoibWVzc2FnZSJgCgl9CgoJbWVzc2FnZXMgOj0gbWFwW3N0cmluZ11zdHJpbmd7CgkJImVuLVVTIjogIkhlbGxvLCAlcyEiLAoJCSJydS1SVSI6ICLQn9GA0LjQstC10YIsICVzISIsCgl9CgoJLy8gQ3JlYXRlIHVzZSBjYXNlIGludGVyYWN0b3Igd2l0aCByZWZlcmVuY2VzIHRvIGlucHV0L291dHB1dCB0eXBlcyBhbmQgaW50ZXJhY3Rpb24gZnVuY3Rpb24uCgl1IDo9IHVzZWNhc2UuTmV3SW50ZXJhY3RvcihmdW5jKGN0eCBjb250ZXh0LkNvbnRleHQsIGlucHV0IGhlbGxvSW5wdXQsIG91dHB1dCAqaGVsbG9PdXRwdXQpIGVycm9yIHsKCQltc2csIGF2YWlsYWJsZSA6PSBtZXNzYWdlc1tpbnB1dC5Mb2NhbGVdCgkJaWYgIWF2YWlsYWJsZSB7CgkJCXJldHVybiBzdGF0dXMuV3JhcChlcnJvcnMuTmV3KCJ1bmtub3duIGxvY2FsZSIpLCBzdGF0dXMuSW52YWxpZEFyZ3VtZW50KQoJCX0KCgkJb3V0cHV0Lk1lc3NhZ2UgPSBmbXQuU3ByaW50Zihtc2csIGlucHV0Lk5hbWUpCgkJb3V0cHV0Lk5vdyA9IHRpbWUuTm93KCkKCgkJcmV0dXJuIG5pbAoJfSkKCgkvLyBEZXNjcmliZSB1c2UgY2FzZSBpbnRlcmFjdG9yLgoJdS5TZXRUaXRsZSgiR3JlZXRlciIpCgl1LlNldERlc2NyaXB0aW9uKCJHcmVldGVyIGdyZWV0cyB5b3UuIikKCgl1LlNldEV4cGVjdGVkRXJyb3JzKHN0YXR1cy5JbnZhbGlkQXJndW1lbnQpCgoJLy8gQWRkIHVzZSBjYXNlIGhhbmRsZXIgdG8gcm91dGVyLgoJcy5HZXQoIi9oZWxsby97bmFtZX0iLCB1KQoKCS8vIFN3YWdnZXIgVUkgZW5kcG9pbnQgYXQgL2RvY3MuCglzLkRvY3MoIi9kb2NzIiwgc3dndWkuTmV3KQoKCS8vIFN0YXJ0IHNlcnZlci4KCWxvZy5QcmludGxuKCJodHRwOi8vbG9jYWxob3N0OjgwMTEvZG9jcyIpCglpZiBlcnIgOj0gaHR0cC5MaXN0ZW5BbmRTZXJ2ZSgibG9jYWxob3N0OjgwMTEiLCBzKTsgZXJyICE9IG5pbCB7CgkJbG9nLkZhdGFsKGVycikKCX0KfQoKYGBgCgohW0RvY3VtZW50YXRpb24gUGFnZV0oLi9fZXhhbXBsZXMvYmFzaWMvc2NyZWVuLnBuZykKCiMjIEFkZGl0aW9uYWwgSW50ZWdyYXRpb25zCgoqIFtgZ2l0aHViLmNvbS9nb3JpbGxhL211eGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb3JpbGxhL211eCksIHNlZSBbZXhhbXBsZV0oLi9nb3JpbGxhbXV4L2V4YW1wbGVfb3BlbmFwaV9jb2xsZWN0b3JfdGVzdC5nbykuCgojIyBQZXJmb3JtYW5jZSBPcHRpbWl6YXRpb24KCklmIHRvcCBwZXJmb3JtYW5jZSBpcyBjcml0aWNhbCBmb3IgdGhlIHNlcnZpY2Ugb3IgcGFydGljdWxhciBlbmRwb2ludHMsIHlvdSBjYW4gdHJhZGUgCnNpbXBsaWNpdHkgZm9yIHBlcmZvcm1hbmNlIGJ5IGltcGxlbWVudGluZyBtYW51YWwgcmVxdWVzdCBsb2FkZXIgb24gaW5wdXQgdHlwZS4KCmBgYGdvCmZ1bmMgKGkgKm15SW5wdXQpIExvYWRGcm9tSFRUUFJlcXVlc3QociAqaHR0cC5SZXF1ZXN0KSAoZXJyIGVycm9yKSB7CglpLkhlYWRlciA9IHIuSGVhZGVyLkdldCgiWC1IZWFkZXIiKQoKCXJldHVybiBuaWwKfQpgYGAKCklmIGByZXF1ZXN0LkxvYWRlcmAgaXMgaW1wbGVtZW50ZWQsIGl0IHdpbGwgYmUgY2FsbGVkIGluc3RlYWQgb2YgYm90aCBhdXRvbWF0aWMgZGVjb2RpbmcgYW5kIHZhbGlkYXRpb24uCgpDaGVjayBhZHZhbmNlZCBbZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3QvYmxvYi92MC4yLjI5L19leGFtcGxlcy9hZHZhbmNlZC1nZW5lcmljL2pzb25fYm9keV9tYW51YWwuZ28jTDU4KS4KClRvIGZ1cnRoZXIgaW1wcm92ZSBwZXJmb3JtYW5jZSB5b3UgbWF5IHRyeSB0byB1c2UgYGZhc3RodHRwYCBpbnN0ZWFkIG9mIGBuZXQvaHR0cGAgd2l0aCAKW2ByZXN0LWZhc3RodHRwYF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3QtZmFzdGh0dHApIGZvcmsuCgojIyBWZXJzaW9uaW5nCgpUaGlzIHByb2plY3QgYWRoZXJlcyB0byBbU2VtYW50aWMgVmVyc2lvbmluZ10oaHR0cHM6Ly9zZW12ZXIub3JnLyNzZW1hbnRpYy12ZXJzaW9uaW5nLTIwMCkuCgpCZWZvcmUgdmVyc2lvbiBgMS4wLjBgLCBicmVha2luZyBjaGFuZ2VzIGFyZSB0YWdnZWQgd2l0aCBgTUlOT1JgIGJ1bXAsIGZlYXR1cmVzIGFuZCBmaXhlcyBhcmUgdGFnZ2VkIHdpdGggYFBBVENIYCBidW1wLgpBZnRlciB2ZXJzaW9uIGAxLjAuMGAsIGJyZWFraW5nIGNoYW5nZXMgYXJlIHRhZ2dlZCB3aXRoIGBNQUpPUmAgYnVtcC4KCkJyZWFraW5nIGNoYW5nZXMgYXJlIGRlc2NyaWJlZCBpbiBbVVBHUkFERS5tZF0oLi9VUEdSQURFLm1kKS4KCiMjIEFkdmFuY2VkIFVzYWdlCgpbQWR2YW5jZWQgVXNhZ2VdKC4vQURWQU5DRUQubWQp readmeEtag: '"571187a8874afa54a05f39b60f933df0b6b3d081"' readmeLastModified: Fri, 12 Jul 2024 09:58:36 GMT repositoryId: 306110879 description: Web services with OpenAPI and JSON Schema done quick in Go created: '2020-10-21T18:16:16Z' updated: '2024-08-31T16:42:16Z' language: Go archived: false stars: 350 watchers: 5 forks: 17 owner: swaggest logo: https://avatars.githubusercontent.com/u/19609628?v=4 license: MIT repoEtag: '"5fbabd1f5988859e92a204ac9b97a10f88fb8101dcc0c63e3119b7a6ee73878f"' repoLastModified: Sat, 31 Aug 2024 16:42:16 GMT foundInMaster: true id: ecd2fef7bb4079bda209503f9fb9820b - source: - openapi3 tags - openapi31 tags repository: https://github.com/python-openapi/openapi-spec-validator v3: true id: 55e26cf16a1bedc681a4a5932afc9d43 repositoryMetadata: base64Readme: >- KioqKioqKioqKioqKioqKioqKioqKgpPcGVuQVBJIFNwZWMgdmFsaWRhdG9yCioqKioqKioqKioqKioqKioqKioqKioKCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvdi9weXRob25vcGVuYXBpL29wZW5hcGktc3BlYy12YWxpZGF0b3Iuc3ZnP2NvbG9yPSUyMzA4NkRENyZsYWJlbD1kb2NrZXIlMjBodWImc29ydD1zZW12ZXIKICAgICA6dGFyZ2V0OiBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvcHl0aG9ub3BlbmFwaS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaS1zcGVjLXZhbGlkYXRvci5zdmcKICAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL29wZW5hcGktc3BlYy12YWxpZGF0b3IKLi4gaW1hZ2U6OiBodHRwczovL3RyYXZpcy1jaS5vcmcvcHl0aG9uLW9wZW5hcGkvb3BlbmFwaS1zcGVjLXZhbGlkYXRvci5zdmc/YnJhbmNoPW1hc3RlcgogICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRob24tb3BlbmFwaS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2l0aHViL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktc3BlYy12YWxpZGF0b3IvbWFzdGVyLnN2Zz9zdHlsZT1mbGF0CiAgICAgOnRhcmdldDogaHR0cHM6Ly9jb2RlY292LmlvL2dpdGh1Yi9weXRob24tb3BlbmFwaS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yP2JyYW5jaD1tYXN0ZXIKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yLnN2ZwogICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvb3BlbmFwaS1zcGVjLXZhbGlkYXRvcgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9mb3JtYXQvb3BlbmFwaS1zcGVjLXZhbGlkYXRvci5zdmcKICAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL29wZW5hcGktc3BlYy12YWxpZGF0b3IKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvc3RhdHVzL29wZW5hcGktc3BlYy12YWxpZGF0b3Iuc3ZnCiAgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yCgpBYm91dAojIyMjIwoKT3BlbkFQSSBTcGVjIFZhbGlkYXRvciBpcyBhIENMSSwgcHJlLWNvbW1pdCBob29rIGFuZCBweXRob24gcGFja2FnZSB0aGF0IHZhbGlkYXRlcyBPcGVuQVBJIFNwZWNzCmFnYWluc3QgdGhlIGBPcGVuQVBJIDIuMCAoYWthIFN3YWdnZXIpCjxodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQ+YF9fLApgT3BlbkFQSSAzLjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4zLm1kPmBfXwphbmQgYE9wZW5BUEkgMy4xIDxodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4xLjAubWQ+YF9fCnNwZWNpZmljYXRpb24uIFRoZSB2YWxpZGF0b3IgYWltcyB0byBjaGVjayBmb3IgZnVsbCBjb21wbGlhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uCgoKRG9jdW1lbnRhdGlvbgojIyMjIyMjIyMjIyMjCgpDaGVjayBkb2N1bWVudGF0aW9uIHRvIHNlZSBtb3JlIGRldGFpbHMgYWJvdXQgdGhlIGZlYXR1cmVzLiBBbGwgZG9jdW1lbnRhdGlvbiBpcyBpbiB0aGUgImRvY3MiIGRpcmVjdG9yeSBhbmQgb25saW5lIGF0IGBvcGVuYXBpLXNwZWMtdmFsaWRhdG9yLnJlYWR0aGVkb2NzLmlvIDxodHRwczovL29wZW5hcGktc3BlYy12YWxpZGF0b3IucmVhZHRoZWRvY3MuaW8+YF9fCgoKSW5zdGFsbGF0aW9uCiMjIyMjIyMjIyMjIwoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICBwaXAgaW5zdGFsbCBvcGVuYXBpLXNwZWMtdmFsaWRhdG9yCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gZG93bmxvYWQgdGhlIGNvZGUgYW5kIGluc3RhbGwgZnJvbSB0aGUgcmVwb3NpdG9yeToKCi4uIGNvZGUtYmxvY2s6OiBiYXNoCgogICBwaXAgaW5zdGFsbCAtZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktc3BlYy12YWxpZGF0b3IuZ2l0I2VnZz1vcGVuYXBpX3NwZWNfdmFsaWRhdG9yCgoKVXNhZ2UKIyMjIyMKCkNMSSAoQ29tbWFuZCBMaW5lIEludGVyZmFjZSkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKU3RyYWlnaHQgZm9yd2FyZCB3YXk6CgouLiBjb2RlLWJsb2NrOjogYmFzaAoKICAgIG9wZW5hcGktc3BlYy12YWxpZGF0b3Igb3BlbmFwaS55YW1sCgpwaXBlcyB3YXk6CgouLiBjb2RlLWJsb2NrOjogYmFzaAoKICAgIGNhdCBvcGVuYXBpLnlhbWwgfCBvcGVuYXBpLXNwZWMtdmFsaWRhdG9yIC0KCmRvY2tlciB3YXk6CgouLiBjb2RlLWJsb2NrOjogYmFzaAoKICAgIGRvY2tlciBydW4gLXYgcGF0aC90by9vcGVuYXBpLnlhbWw6L29wZW5hcGkueWFtbCAtLXJtIHB5dGhvbm9wZW5hcGkvb3BlbmFwaS1zcGVjLXZhbGlkYXRvciAvb3BlbmFwaS55YW1sCgpvciBtb3JlIHB5dGhvbmljIHdheToKCi4uIGNvZGUtYmxvY2s6OiBiYXNoCgogICAgcHl0aG9uIC1tIG9wZW5hcGlfc3BlY192YWxpZGF0b3Igb3BlbmFwaS55YW1sCgpGb3IgbW9yZSBkZXRhaWxzLCByZWFkIGFib3V0IGBDTEkgKENvbW1hbmQgTGluZSBJbnRlcmZhY2UpIDxodHRwczovL29wZW5hcGktc3BlYy12YWxpZGF0b3IucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2NsaS5odG1sPmBfXy4KCnByZS1jb21taXQgaG9vawoqKioqKioqKioqKioqKioKCi4uIGNvZGUtYmxvY2s6OiB5YW1sCgogICByZXBvczoKICAgLSAgIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tb3BlbmFwaS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yCiAgICAgICByZXY6IDAuNS41ICMgVGhlIHZlcnNpb24gdG8gdXNlIG9yICdtYXN0ZXInIGZvciBsYXRlc3QKICAgICAgIGhvb2tzOgogICAgICAgLSAgIGlkOiBvcGVuYXBpLXNwZWMtdmFsaWRhdG9yCgpGb3IgbW9yZSBkZXRhaWxzLCByZWFkIGFib3V0IGBwcmUtY29tbWl0IGhvb2sgPGh0dHBzOi8vb3BlbmFwaS1zcGVjLXZhbGlkYXRvci5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvaG9vay5odG1sPmBfXy4KClB5dGhvbiBwYWNrYWdlCioqKioqKioqKioqKioqCgouLiBjb2RlOjogcHl0aG9uCgogICAgZnJvbSBvcGVuYXBpX3NwZWNfdmFsaWRhdG9yIGltcG9ydCB2YWxpZGF0ZQogICAgZnJvbSBvcGVuYXBpX3NwZWNfdmFsaWRhdG9yLnJlYWRlcnMgaW1wb3J0IHJlYWRfZnJvbV9maWxlbmFtZQoKICAgIHNwZWNfZGljdCwgYmFzZV91cmkgPSByZWFkX2Zyb21fZmlsZW5hbWUoJ29wZW5hcGkueWFtbCcpCgogICAgIyBJZiBubyBleGNlcHRpb24gaXMgcmFpc2VkIGJ5IHZhbGlkYXRlKCksIHRoZSBzcGVjIGlzIHZhbGlkLgogICAgdmFsaWRhdGUoc3BlY19kaWN0KQoKICAgIHZhbGlkYXRlKHsnb3BlbmFwaSc6ICczLjEuMCd9KQoKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAuLi4KICAgIE9wZW5BUElWYWxpZGF0aW9uRXJyb3I6ICdpbmZvJyBpcyBhIHJlcXVpcmVkIHByb3BlcnR5CgpGb3IgbW9yZSBkZXRhaWxzLCByZWFkIGFib3V0IGBQeXRob24gcGFja2FnZSA8aHR0cHM6Ly9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9weXRob24uaHRtbD5gX18uCgpSZWxhdGVkIHByb2plY3RzCiMjIyMjIyMjIyMjIyMjIyMKCiogYG9wZW5hcGktY29yZSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktY29yZT5gX18KICAgUHl0aG9uIGxpYnJhcnkgdGhhdCBhZGRzIGNsaWVudC1zaWRlIGFuZCBzZXJ2ZXItc2lkZSBzdXBwb3J0IGZvciB0aGUgT3BlbkFQSSB2My4wIGFuZCBPcGVuQVBJIHYzLjEgc3BlY2lmaWNhdGlvbi4KKiBgb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLW9wZW5hcGkvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yPmBfXwogICBQeXRob24gbGlicmFyeSB0aGF0IHZhbGlkYXRlcyBzY2hlbWEgYWdhaW5zdCB0aGUgT3BlbkFQSSBTY2hlbWEgU3BlY2lmaWNhdGlvbiB2My4wIGFuZCBPcGVuQVBJIFNjaGVtYSBTcGVjaWZpY2F0aW9uIHYzLjEuCgpMaWNlbnNlCiMjIyMjIyMKCkNvcHlyaWdodCAoYykgMjAxNy0yMDIzLCBBcnR1ciBNYWNpYWcsIEFsbCByaWdodHMgcmVzZXJ2ZWQuIEFwYWNoZSB2Mgo= readmeEtag: '"f9124af6769a5c72b39b2c564f4acbcb6cb782f5"' readmeLastModified: Tue, 02 Jul 2024 10:53:07 GMT repositoryId: 102581313 description: >- OpenAPI Spec Validator is a CLI, pre-commit hook and python package that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger), OpenAPI 3.0 and OpenAPI 3.1 specification. created: '2017-09-06T08:08:25Z' updated: '2024-09-05T16:20:14Z' language: Python archived: false stars: 335 watchers: 10 forks: 62 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: Apache-2.0 repoEtag: '"b95a7cca80128bdf5f00abbe8538fa3aadf14c185dd9fc6fbe5eadf5336024b8"' repoLastModified: Thu, 05 Sep 2024 16:20:14 GMT category: Parsers oldLocations: - https://github.com/p1c2u/openapi-spec-validator foundInMaster: true v3_1: true - source: openapi3 tags repository: https://github.com/ethereum/beacon-apis v3: true repositoryMetadata: base64Readme: >- IyBFdGhlcmV1bSBCZWFjb24gQVBJcwoKIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2JlYWNvbi1BUElzL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpCgpDb2xsZWN0aW9uIG9mIFJFU1RmdWwgQVBJcyBwcm92aWRlZCBieSBFdGhlcmV1bSBCZWFjb24gbm9kZXMKCkFQSSBicm93c2VyOiBbaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvXShodHRwczovL2V0aGVyZXVtLmdpdGh1Yi5pby9iZWFjb24tQVBJcy8pCgojIyBPdXRsaW5lCgpUaGlzIGRvY3VtZW50IG91dGxpbmVzIGFuIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVyZmFjZSAoQVBJKSB3aGljaCBpcyBleHBvc2VkIGJ5IGEgYmVhY29uIG5vZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEV0aGVyZXVtIFtjb25zZW5zdXMgbGF5ZXIgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MpLgoKVGhlIEFQSSBpcyBhIFJFU1QgaW50ZXJmYWNlLCBhY2Nlc3NlZCB2aWEgSFRUUC4gVGhlIEFQSSBzaG91bGQgbm90LCB1bmxlc3MgcHJvdGVjdGVkIGJ5IGFkZGl0aW9uYWwgc2VjdXJpdHkgbGF5ZXJzLCBiZSBleHBvc2VkIHRvIHRoZSBwdWJsaWMgSW50ZXJuZXQgYXMgdGhlIEFQSSBpbmNsdWRlcyBtdWx0aXBsZSBlbmRwb2ludHMgd2hpY2ggY291bGQgb3BlbiB5b3VyIG5vZGUgdG8gZGVuaWFsLW9mLXNlcnZpY2UgKERvUykgYXR0YWNrcyB0aHJvdWdoIGVuZHBvaW50cyB0cmlnZ2VyaW5nIGhlYXZ5IHByb2Nlc3NpbmcuCiBDdXJyZW50bHksIHRoZSBvbmx5IHN1cHBvcnRlZCByZXR1cm4gZGF0YSB0eXBlIGlzIEpTT04uCgpUaGUgYmVhY29uIG5vZGUgKEJOKSBtYWludGFpbnMgdGhlIHN0YXRlIG9mIHRoZSBiZWFjb24gY2hhaW4gYnkgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGJlYWNvbiBub2RlcyBpbiB0aGUgRXRoZXJldW0gbmV0d29yay4KQ29uY2VwdHVhbGx5LCBpdCBkb2VzIG5vdCBtYWludGFpbiBrZXlwYWlycyB0aGF0IHBhcnRpY2lwYXRlIHdpdGggdGhlIGJlYWNvbiBjaGFpbi4KClRoZSB2YWxpZGF0b3IgY2xpZW50IChWQykgaXMgYSBjb25jZXB0dWFsbHkgc2VwYXJhdGUgZW50aXR5IHdoaWNoIHV0aWxpemVzIHByaXZhdGUga2V5cwp0byBwZXJmb3JtIHZhbGlkYXRvciByZWxhdGVkIHRhc2tzLCBjYWxsZWQgImR1dGllcyIsIG9uIHRoZSBiZWFjb24gY2hhaW4uCiBUaGVzZSBkdXRpZXMgaW5jbHVkZSB0aGUgcHJvZHVjdGlvbiBvZiBiZWFjb24gYmxvY2tzIGFuZCBzaWduaW5nIG9mIGF0dGVzdGF0aW9ucy4KClRoZSBnb2FsIG9mIHRoaXMgc3BlY2lmaWNhdGlvbiBpcyB0byBwcm9tb3RlIGludGVyb3BlcmFiaWxpdHkgYmV0d2VlbiB2YXJpb3VzIGJlYWNvbiBub2RlIGltcGxlbWVudGF0aW9ucy4KCiMjIFJlbmRlcgpUbyByZW5kZXIgc3BlYyBpbiBicm93c2VyIHlvdSB3aWxsIG5lZWQgYW55IGh0dHAgc2VydmVyIHRvIGxvYWQgYGluZGV4Lmh0bWxgIGZpbGUKaW4gcm9vdCBvZiB0aGUgcmVwby4KCiMjIyMjIFB5dGhvbgpgYGAKcHl0aG9uIC1tIGh0dHAuc2VydmVyIDgwODAKYGBgCkFuZCBhcGkgc3BlYyB3aWxsIHJlbmRlciBvbiBbaHR0cDovL2xvY2FsaG9zdDo4MDgwXShodHRwOi8vbG9jYWxob3N0OjgwODApLgoKIyMjIyMgTm9kZUpzCmBgYApucG0gaW5zdGFsbCBzaW1wbGVodHRwc2VydmVyIC1nCgojIE9SCgp5YXJuIGdsb2JhbCBhZGQgc2ltcGxlaHR0cHNlcnZlcgoKc2ltcGxlaHR0cHNlcnZlcgpgYGAKQW5kIGFwaSBzcGVjIHdpbGwgcmVuZGVyIG9uIFtodHRwOi8vbG9jYWxob3N0OjgwMDBdKGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCkuCgojIyMgVXNhZ2UKCkxvY2FsIGNoYW5nZXMgd2lsbCBiZSBvYnNlcnZhYmxlIGlmICJkZXYiIGlzIHNlbGVjdGVkIGluIHRoZSAiU2VsZWN0IGEgZGVmaW5pdGlvbiIgZHJvcC1kb3duIGluIHRoZSB3ZWIgVUkuCgpVc2VycyBtYXkgbmVlZCB0byB0aWNrIHRoZSAiRGlzYWJsZSBDYWNoZSIgYm94IGluIHRoZWlyIGJyb3dzZXIncyBkZXZlbG9wZXIgdG9vbHMgdG8gc2VlIGNoYW5nZXMgYWZ0ZXIgbW9kaWZ5aW5nIHRoZSBzb3VyY2UuCgojIyBDb250cmlidXRpbmcKQXBpIHNwZWMgaXMgY2hlY2tlZCBmb3IgbGludCBlcnJvcnMgYmVmb3JlIG1lcmdlLgoKVG8gcnVuIGxpbnQgbG9jYWxseSwgaW5zdGFsbCBsaW50ZXIgd2l0aApgYGAKbnBtIGluc3RhbGwgLWcgQHJlZG9jbHkvY2xpCgojIE9SCgp5YXJuIGdsb2JhbCBhZGQgQHJlZG9jbHkvY2xpCmBgYAphbmQgcnVuIGxpbnQgd2l0aApgYGAKcmVkb2NseSBsaW50IGJlYWNvbi1ub2RlLW9hcGkueWFtbApgYGAKCiMjIFJlbGVhc2luZwoKVGhpcyByZXBvc2l0b3J5IHN1cHBvcnRzIGJvdGggc3RhYmxlIGFuZCBwcmUtcmVsZWFzZXMuIFRoZSB2ZXJzaW9uIG9mIHRoZSBuZXh0IHJlbGVhc2UgaGFzIHRvIGJlCmRldGVybWluZWQgYmFzZWQgb24gdGhlIGNoYW5nZXMgaW4gYG1hc3RlcmAgYnJhbmNoIHNpbmNlIHRoZSBsYXN0IHN0YWJsZSByZWxlYXNlLiBJdCBpcyByZWNvbW1lbmRlZAp0byBjcmVhdGUgYSBwcmUtcmVsZWFzZSBiZWZvcmUgcmVsZWFzaW5nIGEgbmV3IHN0YWJsZSB2ZXJzaW9uLgoKIyMjIFN0YWJsZSByZWxlYXNlcwoKU3RlcHMgdG8gY3JlYXRlIGEgbmV3IHN0YWJsZSByZWxlYXNlOgoKLSBDcmVhdGUgYW5kIHB1c2ggYSB0YWcgd2l0aCB0aGUgdmVyc2lvbiBvZiB0aGUgcmVsZWFzZSwgZS5nLiBgdjMuMC4wYAotIENEIHdpbGwgY3JlYXRlIHRoZSBnaXRodWIgcmVsZWFzZSwgdXBsb2FkIGJ1bmRsZWQgc3BlYyBmaWxlcywgYW5kIG9wZW4gYSByZWxlYXNlIFBSCi0gUmV2aWV3LCBhcHByb3ZlIGFuZCBtZXJnZSB0aGUgcmVsZWFzZSBQUiB0byBgbWFzdGVyYCBicmFuY2gKCiMjIyBQcmUtcmVsZWFzZXMKClN0ZXBzIHRvIGNyZWF0ZSBhIG5ldyBwcmUtcmVsZWFzZToKCi0gQ3JlYXRlIGFuZCBwdXNoIGEgdGFnIHdpdGggdGhlIHZlcnNpb24gb2YgdGhlIHJlbGVhc2UsIGUuZy4gYHYzLjAuMC1hbHBoYS4wYAotIENEIHdpbGwgY3JlYXRlIHRoZSBnaXRodWIgcmVsZWFzZSBhbmQgdXBsb2FkIGJ1bmRsZWQgc3BlYyBmaWxlcwoKUHJlLXJlbGVhc2VzIHdpbGwgbm90IGJlIGxpc3RlZCBpbiBgaW5kZXguaHRtbGAgYW5kIGFyZSBpbnRlbmRlZCB0byBhbGxvdyBlYXJseSB0ZXN0aW5nIGFnYWluc3QgdGhlIHNwZWMuCg== readmeEtag: '"fb2454ab23ee53e72ab31fdaf1721eb026890ef4"' readmeLastModified: Mon, 19 Aug 2024 11:04:56 GMT repositoryId: 202613633 description: Collection of RESTful APIs provided by Ethereum Beacon nodes created: '2019-08-15T21:27:12Z' updated: '2024-09-05T13:05:35Z' language: HTML archived: false stars: 327 watchers: 36 forks: 168 owner: ethereum logo: https://avatars.githubusercontent.com/u/6250754?v=4 license: CC0-1.0 repoEtag: '"a3910837a789d1663d54c258234fd953d61120547aa97c648695e00a8fb0fbdc"' repoLastModified: Thu, 05 Sep 2024 13:05:35 GMT foundInMaster: true category: - Documentation - Server Implementations id: e04baea2e4cda6dd0521496ba97d0ab5 - source: openapi3 tags repository: https://github.com/epiphone/routing-controllers-openapi v3: true repositoryMetadata: base64Readme: >- IyByb3V0aW5nLWNvbnRyb2xsZXJzLW9wZW5hcGkKClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9lcGlwaG9uZS9yb3V0aW5nLWNvbnRyb2xsZXJzLW9wZW5hcGkvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvZXBpcGhvbmUvcm91dGluZy1jb250cm9sbGVycy1vcGVuYXBpKSBbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL3JvdXRpbmctY29udHJvbGxlcnMtb3BlbmFwaS5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvcm91dGluZy1jb250cm9sbGVycy1vcGVuYXBpKQoKUnVudGltZSBPcGVuQVBJIHYzIHNjaGVtYSBnZW5lcmF0aW9uIGZvciBbcm91dGluZy1jb250cm9sbGVyc10oaHR0cHM6Ly9naXRodWIuY29tL3R5cGVzdGFjay9yb3V0aW5nLWNvbnRyb2xsZXJzKS4KCiMjIEluc3RhbGxhdGlvbgoKYG5wbSBpbnN0YWxsIC0tc2F2ZSByb3V0aW5nLWNvbnRyb2xsZXJzLW9wZW5hcGlgCgojIyBVc2FnZQoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBnZXRNZXRhZGF0YUFyZ3NTdG9yYWdlIH0gZnJvbSAncm91dGluZy1jb250cm9sbGVycycKaW1wb3J0IHsgcm91dGluZ0NvbnRyb2xsZXJzVG9TcGVjIH0gZnJvbSAncm91dGluZy1jb250cm9sbGVycy1vcGVuYXBpJwoKLy8gRGVmaW5lIHlvdXIgY29udHJvbGxlcnMgYXMgdXN1YWw6CgpASnNvbkNvbnRyb2xsZXIoJy91c2VycycpCmNsYXNzIFVzZXJzQ29udHJvbGxlciB7CiAgQEdldCgnLzp1c2VySWQnKQogIGdldFVzZXIoQFBhcmFtKCd1c2VySWQnKSB1c2VySWQ6IHN0cmluZykgewogICAgLy8gLi4uCiAgfQoKICBASHR0cENvZGUoMjAxKQogIEBQb3N0KCcvJykKICBjcmVhdGVVc2VyKEBCb2R5KCkgYm9keTogQ3JlYXRlVXNlckJvZHkpIHsKICAgIC8vIC4uLgogIH0KfQoKLy8gR2VuZXJhdGUgYSBzY2hlbWE6Cgpjb25zdCBzdG9yYWdlID0gZ2V0TWV0YWRhdGFBcmdzU3RvcmFnZSgpCmNvbnN0IHNwZWMgPSByb3V0aW5nQ29udHJvbGxlcnNUb1NwZWMoc3RvcmFnZSkKY29uc29sZS5sb2coc3BlYykKYGBgCgpwcmludHMgb3V0IHRoZSBmb2xsb3dpbmcgc3BlY2lmaWNhdGlvbjoKCmBgYGpzb24KewogICJjb21wb25lbnRzIjogewogICAgInNjaGVtYXMiOiB7fQogIH0sCiAgImluZm8iOiB7CiAgICAidGl0bGUiOiAiIiwKICAgICJ2ZXJzaW9uIjogIjEuMC4wIgogIH0sCiAgIm9wZW5hcGkiOiAiMy4wLjAiLAogICJwYXRocyI6IHsKICAgICIvdXNlcnMve3VzZXJJZH0iOiB7CiAgICAgICJnZXQiOiB7CiAgICAgICAgIm9wZXJhdGlvbklkIjogIlVzZXJzQ29udHJvbGxlci5nZXRVc2VyIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAibmFtZSI6ICJ1c2VySWQiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjoge30KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN1Y2Nlc3NmdWwgcmVzcG9uc2UiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic3VtbWFyeSI6ICJMaXN0IHVzZXJzIiwKICAgICAgICAidGFncyI6IFsiVXNlcnMiXQogICAgICB9CiAgICB9LAogICAgIi91c2Vycy8iOiB7CiAgICAgICJwb3N0IjogewogICAgICAgICJvcGVyYXRpb25JZCI6ICJVc2Vyc0NvbnRyb2xsZXIuY3JlYXRlVXNlciIsCiAgICAgICAgInJlcXVlc3RCb2R5IjogewogICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVVc2VyQm9keSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlVXNlckJvZHkiLAogICAgICAgICAgInJlcXVpcmVkIjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAxIjogewogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHt9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdWNjZXNzZnVsIHJlc3BvbnNlIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInN1bW1hcnkiOiAiQ3JlYXRlIHVzZXIiLAogICAgICAgICJ0YWdzIjogWyJVc2VycyJdCiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgpDaGVjayBbYC9zYW1wbGVgXSgvc2FtcGxlKSBmb3IgYSBjb21wbGV0ZSBzYW1wbGUgYXBwbGljYXRpb24uCgojIyMgQ29uZmlndXJhdGlvbgoKYHJvdXRpbmdDb250cm9sbGVyc1RvU3BlY2AgaGFzIHRoZSBmb2xsb3dpbmcgdHlwZSBzaWduYXR1cmU6CgpgYGB0eXBlc2NyaXB0CmV4cG9ydCBmdW5jdGlvbiByb3V0aW5nQ29udHJvbGxlcnNUb1NwZWMoCiAgc3RvcmFnZTogTWV0YWRhdGFBcmdzU3RvcmFnZSwKICByb3V0aW5nQ29udHJvbGxlck9wdGlvbnM6IFJvdXRpbmdDb250cm9sbGVyc09wdGlvbnMgPSB7fSwKICBhZGRpdGlvbmFsUHJvcGVydGllczogUGFydGlhbDxPcGVuQVBJT2JqZWN0PiA9IHt9Cik6IE9wZW5BUElPYmplY3QKYGBgCgpgcm91dGluZ0NvbnRyb2xsZXJPcHRpb25zYCByZWZlcnMgdG8gdGhlIG9wdGlvbnMgb2JqZWN0IHVzZWQgdG8gY29uZmlndXJlIHJvdXRpbmctY29udHJvbGxlcnMuIFBhc3MgaW4gdGhlIHNhbWUgb3B0aW9ucyBoZXJlIHRvIGhhdmUgeW91ciBbYHJvdXRlUHJlZml4YF0oaHR0cHM6Ly9naXRodWIuY29tL3R5cGVzdGFjay9yb3V0aW5nLWNvbnRyb2xsZXJzLyNwcmVmaXgtYWxsLWNvbnRyb2xsZXJzLXJvdXRlcykgYW5kIFtgZGVmYXVsdHNgXShodHRwczovL2dpdGh1Yi5jb20vdHlwZXN0YWNrL3JvdXRpbmctY29udHJvbGxlcnMvI2RlZmF1bHQtc2V0dGluZ3MpIG9wdGlvbnMgcmVmbGVjdGVkIGluIHRoZSByZXN1bHRpbmcgT3BlbkFQSSBzcGVjLgoKYGFkZGl0aW9uYWxQcm9wZXJ0aWVzYCBpcyBhIHBhcnRpYWwgW09wZW5BUEkgb2JqZWN0XShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jb3BlbmFwaS1vYmplY3QtMTcpIHRoYXQgZ2V0cyBtZXJnZWQgaW50byB0aGUgcmVzdWx0IHNwZWMuIFlvdSBjYW4gZm9yIGV4YW1wbGUgc2V0IHlvdXIgb3duIFtgaW5mb2BdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNvcGVuYXBpLW9iamVjdC0xOSkgb3IgW2Bjb21wb25lbnRzYF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2NvbXBvbmVudHMtb2JqZWN0LTMzKSBrZXl3b3JkcyBoZXJlLgoKIyMjIFZhbGlkYXRpb24gY2xhc3NlcwoKVXNlIFtjbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYV0oaHR0cHM6Ly9naXRodWIuY29tL2VwaXBob25lL2NsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hKSB0byBjb252ZXJ0IHlvdXIgdmFsaWRhdGlvbiBjbGFzc2VzIGludG8gT3BlbkFQSS1jb21wYXRpYmxlIHNjaGVtYXM6CgpgYGB0eXBlc2NyaXB0CmltcG9ydCB7IHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXMgfSBmcm9tICdjbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYScKCi8vIC4uLgoKY29uc3Qgc2NoZW1hcyA9IHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXMoewogIHJlZlBvaW50ZXJQcmVmaXg6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy8nLAp9KQoKY29uc3Qgc3BlYyA9IHJvdXRpbmdDb250cm9sbGVyc1RvU3BlYyhzdG9yYWdlLCByb3V0aW5nQ29udHJvbGxlck9wdGlvbnMsIHsKICBjb21wb25lbnRzOiB7IHNjaGVtYXMgfSwKICBpbmZvOiB7IHRpdGxlOiAnTXkgYXBwJywgdmVyc2lvbjogJzEuMi4wJyB9LAp9KQpgYGAKCiMjIyBEZWNvcmF0aW5nIHdpdGggYWRkaXRpb25hbCBrZXl3b3JkcwoKVXNlIHRoZSBgQE9wZW5BUElgIGRlY29yYXRvciB0byBzdXBwbHkgeW91ciBhY3Rpb25zIHdpdGggYWRkaXRpb25hbCBrZXl3b3JkczoKCmBgYHR5cGVzY3JpcHQKaW1wb3J0IHsgT3BlbkFQSSB9IGZyb20gJ3JvdXRpbmctY29udHJvbGxlcnMtb3BlbmFwaScKCkBKc29uQ29udHJvbGxlcignL3VzZXJzJykKZXhwb3J0IGNsYXNzIFVzZXJzQ29udHJvbGxlciB7CiAgQEdldCgnLycpCiAgQE9wZW5BUEkoewogICAgZGVzY3JpcHRpb246ICdMaXN0IGFsbCBhdmFpbGFibGUgdXNlcnMnLAogICAgcmVzcG9uc2VzOiB7CiAgICAgICc0MDAnOiB7CiAgICAgICAgZGVzY3JpcHRpb246ICdCYWQgcmVxdWVzdCcsCiAgICAgIH0sCiAgICB9LAogIH0pCiAgbGlzdFVzZXJzKCkgewogICAgLy8gLi4uCiAgfQp9CmBgYAoKVGhlIHBhcmFtZXRlciBvYmplY3QgY29uc2lzdHMgb2YgYW55IG51bWJlciBvZiBwcm9wZXJ0aWVzIGZyb20gdGhlIFtPcGVyYXRpb24gb2JqZWN0XShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jb3BlcmF0aW9uT2JqZWN0KS4gVGhlc2UgcHJvcGVydGllcyBhcmUgdGhlbiBtZXJnZWQgaW50byB0aGUgc3BlYywgb3ZlcndyaXRpbmcgYW55IGV4aXN0aW5nIHZhbHVlcy4KCkFsdGVybmF0aXZlbHkgeW91IGNhbiBjYWxsIGBAT3BlbkFQSWAgd2l0aCBhIGZ1bmN0aW9uIG9mIHR5cGUgYChzb3VyY2U6IE9wZXJhdGlvbk9iamVjdCwgcm91dGU6IElSb3V0ZSkgPT4gT3BlcmF0aW9uT2JqZWN0YCwgaS5lLiBhIGZ1bmN0aW9uIHJlY2VpdmluZyB0aGUgZXhpc3Rpbmcgc3BlYyBhcyB3ZWxsIGFzIHRoZSB0YXJnZXQgcm91dGUsIHNwaXR0aW5nIG91dCBhbiB1cGRhdGVkIHNwZWMuIFRoaXMgZnVuY3Rpb24gcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBmb3IgZXhhbXBsZSB5b3VyIG93biBtZXJnaW5nIGxvZ2ljIG9yIGN1c3RvbSBkZWNvcmF0b3JzLgoKIyMjIyBNdWx0aXBsZSBgQE9wZW5BUElgIGRlY29yYXRvcnMKCkEgc2luZ2xlIGhhbmRsZXIgY2FuIGJlIGRlY29yYXRlZCB3aXRoIG11bHRpcGxlIGBAT3BlbkFQSWBzLiBOb3RlIHRob3VnaCB0aGF0IHNpbmNlIGRlY29yYXRvcnMgYXJlIGFwcGxpZWQgdG9wLWRvd24sIGFueSBwb3NzaWJsZSBkdXBsaWNhdGUga2V5cyBhcmUgb3ZlcndyaXR0ZW4gYnkgc3Vic2VxdWVudCBkZWNvcmF0b3JzOgoKYGBgdHlwZXNjcmlwdAogIEBPcGVuQVBJKHsKICAgIHN1bW1hcnk6ICdUaGlzIHZhbHVlIHdpbGwgYmUgb3ZlcndyaXR0ZW4hJywKICAgIGRlc2NyaXB0aW9uOiAnVGhpcyB2YWx1ZSB3aWxsIHJlbWFpbicKICB9KQogIEBPcGVuQVBJKHsKICAgIHN1bW1hcnk6ICdUaGlzIHZhbHVlIHdpbGwgcmVtYWluJwogIH0pCiAgbGlzdFVzZXJzKCkgewogICAgLy8gLi4uCiAgfQpgYGAKCk11bHRpcGxlIGBAT3BlbkFQSWBzIGFyZSBtZXJnZWQgdG9nZXRoZXIgd2l0aCBbYGxvZGFzaC9tZXJnZWBdKGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuMTEjbWVyZ2UpIHdoaWNoIGhhcyBbYSBmZXcgaW50ZXJlc3RpbmcgcHJvcGVydGllc10oaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvaXNzdWVzLzEzMTMpIHRvIGtlZXAgaW4gbWluZCB3aGVuIGl0IGNvbWVzIHRvIGFycmF5cy4gVXNlIHRoZSBmdW5jdGlvbiBwYXJhbWV0ZXIgZGVzY3JpYmVkIGFib3ZlIHdoZW4gc3RyaWN0IGNvbnRyb2wgb3ZlciBtZXJnaW5nIGxvZ2ljIGlzIHJlcXVpcmVkLgoKIyMjIyBDbGFzcyBgQE9wZW5BUElgIGRlY29yYXRvcgoKVXNpbmcgYEBPcGVuQVBJYCBvbiB0aGUgY29udHJvbGxlciBjbGFzcyBlZmZlY3RpdmVseSBhcHBsaWVzIGdpdmVuIHNwZWMgdG8gZWFjaCBjbGFzcyBtZXRob2QuIE1ldGhvZC1sZXZlbCBgQE9wZW5BUElgcyBhcmUgbWVyZ2VkIGludG8gY2xhc3Mgc3BlY3MsIHdpdGggdGhlIGZvcm1lciBoYXZpbmcgcHJlY2VkZW5jZToKCmBgYHR5cGVzY3JpcHQKQE9wZW5BUEkoewogIHNlY3VyaXR5OiBbeyBiYXNpY0F1dGg6IFtdIH1dLCAvLyBBcHBsaWVkIHRvIGVhY2ggbWV0aG9kCn0pCkBKc29uQ29udHJvbGxlcignL3VzZXJzJykKZXhwb3J0IGNsYXNzIFVzZXJzQ29udHJvbGxlciB7CiAgLy8gLi4uCn0KYGBgCgojIyMgQW5ub3RhdGluZyByZXNwb25zZSBzY2hlbWFzCgpFeHRyYWN0aW5nIHJlc3BvbnNlIHR5cGVzIGF1dG9tYXRpY2FsbHkgaW4gcnVudGltZSBpc24ndCBjdXJyZW50bHkgYWxsb3dlZCBieSBUeXBlc2NyaXB0J3MgcmVmbGVjdGlvbiBzeXN0ZW0uIFNwZWNpZmljYWxseSB0aGUgcHJvYmxlbSBpcyB0aGF0IGByb3V0aW5nLWNvbnRyb2xsZXJzLW9wZW5hcGlgIGNhbid0IHVud3JhcCBnZW5lcmljIHR5cGVzIGxpa2UgUHJvbWlzZTxNeU1vZGVsPiBvciBBcnJheTxNeU1vZGVsPjogc2VlIGUuZy4gW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMTA1NzYpIGZvciBkaXNjdXNzaW9uLiBBcyBhIHdvcmthcm91bmQgeW91IGNhbiB1c2UgdGhlIGBAUmVzcG9uc2VTY2hlbWFgIGRlY29yYXRvciB0byBzdXBwbHkgdGhlIHJlc3BvbnNlIGJvZHkgc2NoZW1hOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBSZXNwb25zZVNjaGVtYSB9IGZyb20gJ3JvdXRpbmctY29udHJvbGxlcnMtb3BlbmFwaScKCkBKc29uQ29udHJvbGxlcignL3VzZXJzJykKZXhwb3J0IGNsYXNzIFVzZXJzQ29udHJvbGxlciB7CiAgQEdldCgnLzppZCcpCiAgQFJlc3BvbnNlU2NoZW1hKFVzZXIpCiAgZ2V0VXNlcigpIHsKICAgIC8vIC4uLgogIH0KfQpgYGAKCmBAUmVzcG9uc2VTY2hlbWFgIHRha2VzIGFzIGFuIGFyZ3VtZW50IGVpdGhlciBhIGNsYXNzLXZhbGlkYXRvciBjbGFzcyBvciBhIHBsYWluIHN0cmluZyBzY2hlbWEgbmFtZS4gWW91IGNhbiBhbHNvIHN1cHBseSBhbiBvcHRpb25hbCBzZWNvbmRhcnkgYG9wdGlvbnNgIGFyZ3VtZW50OgoKYGBgdHlwZXNjcmlwdAogIEBQb3N0KCcvJykKICBAUmVzcG9uc2VTY2hlbWEoVXNlciwgewogICAgY29udGVudFR5cGU6ICd0ZXh0L2NzdicsCiAgICBkZXNjcmlwdGlvbjogJ0EgbGlzdCBvZiBjcmVhdGVkIHVzZXIgb2JqZWN0cycsCiAgICBpc0FycmF5OiB0cnVlCiAgICBzdGF0dXNDb2RlOiAnMjAxJ30pCiAgY3JlYXRlVXNlcnMoKSB7CiAgICAvLyAuLi4KICB9CmBgYAoKYGNvbnRlbnRUeXBlYCBhbmQgYHN0YXR1c0NvZGVgIGRlZmF1bHQgdG8gcm91dGluZy1jb250cm9sbGVyJ3MgYEBDb250ZW50VHlwZWAgYW5kIGBASHR0cENvZGVgIHZhbHVlcy4gVG8gc3BlY2lmeSBhIHJlc3BvbnNlIHNjaGVtYSBvZiBhbiBhcnJheSwgc2V0IGBvcHRpb25zLmlzQXJyYXlgIGFzIGB0cnVlYC4gWW91IGNhbiBhbHNvIGFubm90YXRlIGEgc2luZ2xlIGhhbmRsZXIgd2l0aCBtdWx0aXBsZSBgUmVzcG9uc2VTY2hlbWFgcyB0byBzcGVjaWZ5IHJlc3BvbnNlcyB3aXRoIGRpZmZlcmVudCBzdGF0dXMgY29kZXMuCgpOb3RlIHRoYXQgd2hlbiB1c2luZyBgQFJlc3BvbnNlU2NoZW1hYCB0b2dldGhlciB3aXRoIGBASlNPTlNjaGVtYWAsIHRoZSBvdXRlciBkZWNvcmF0b3Igd2lsbCBvdmVyd3JpdGUga2V5cyBvZiBpbm5lciBkZWNvcmF0b3JzLiBTbyBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIGluZm9ybWF0aW9uIGZyb20gYEBSZXNwb25zZVNjaGVtYWAgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgYEBKU09OU2NoZW1hYDoKCmBgYHR5cGVzY3JpcHQKQEpTT05TY2hlbWEoe3Jlc3BvbnNlczogewogICcyMDAnOiB7CiAgICAnY29udGVudCc6IHsKICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7CiAgICAgICAgc2NoZW1hOiB7CiAgICAgICAgICAnJHJlZic6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQnCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9fSkKQFJlc3BvbnNlU2NoZW1hKFNvbWVSZXNwb25zZU9iamVjdCkKaGFuZGxlcigpIHsgLi4uIH0KYGBgCgojIyMjIE11bHRpcGxlIFJlc3BvbnNlU2NoZW1hcwoKTXVsdGlwbGUgUmVzcG9uc2VTY2hlbWFzIHdpdGggZGlmZmVyZW50IHN0YXR1cyBjb2RlcyBhcmUgc3VwcG9ydGVkIGFzIGZvbGxvd3MuCgpgYGB0eXBlc2NyaXB0CkBSZXNwb25zZVNjaGVtYShSZXNwb25zZTEpCkBSZXNwb25zZVNjaGVtYShSZXNwb25zZTIsIHtzdGF0dXNDb2RlOiAnNDAwJ30pCmBgYAoKSW4gY2FzZSBvZiBtdWx0aXBsZSBSZXNwb25zZVNjaGVtYXMgYmVpbmcgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzYW1lIHN0YXR1cyBjb2RlLCB3ZSByZXNvbHZlIHRoZW0KdXNpbmcgdGhlIFtvbmVPZl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kYXRhLW1vZGVscy9vbmVvZi1hbnlvZi1hbGxvZi1ub3QvI29uZW9mKSBvcGVyYXRvci4KCmBgYHR5cGVzY3JpcHQKQFJlc3BvbnNlU2NoZW1hKFJlc3BvbnNlMSkKQFJlc3BvbnNlU2NoZW1hKFJlc3BvbnNlMikKYGBgCgp3aWxsIGdlbmVyYXRlCgpgYGBqc29uCiIyMDAiOiB7CiAgImNvbnRlbnQiOiB7CiAgICAiYXBwbGljYXRpb24vanNvbiI6ewogICAgICAic2NoZW1hIjogewogICAgICAgICJvbmVPZiI6IFsKICAgICAgICAgIHskcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUmVzcG9uc2UxIn0sCiAgICAgICAgICB7JHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1Jlc3BvbnNlMiJ9CiAgICAgICAgXQogICAgICB9CiAgICB9CiAgfQp9CmBgYAoKIyMgU3VwcG9ydGVkIGZlYXR1cmVzCgotIGBAQ29udHJvbGxlcmAvYEBKc29uQ29udHJvbGxlcmAgYmFzZSByb3V0ZSBhbmQgZGVmYXVsdCBjb250ZW50LXR5cGUKLSBgb3B0aW9ucy5yb3V0ZVByZWZpeGAKLSBgQEdldGAsIGBAUG9zdGAgYW5kIG90aGVyIGFjdGlvbiBkZWNvcmF0b3JzCi0gUGFyc2UgcGF0aCBwYXJhbWV0ZXJzIHN0cmFpZ2h0IGZyb20gcGF0aCBzdHJpbmdzIGFuZCBvcHRpb25hbGx5IHN1cHBsZW1lbnQgd2l0aCBgQFBhcmFtYCBkZWNvcmF0b3IKICAtIFJlZ2V4IGFuZCBvcHRpb25hbCBwYXRoIHBhcmFtZXRlcnMgKGUuZy4gYC91c2Vycy86aWQoXGQrKS86dHlwZT9gKSBhcmUgYWxzbyBzdXBwb3J0ZWQKLSBgQFF1ZXJ5UGFyYW1gIGFuZCBgQFF1ZXJ5UGFyYW1zYAotIGBASGVhZGVyUGFyYW1gIGFuZCBgQEhlYWRlclBhcmFtc2AKLSBgQEJvZHlgIGFuZCBgQEJvZHlQYXJhbWAKLSBQYXJzZSByZXNwb25zZSBrZXl3b3JkcyBmcm9tIGBASHR0cENvZGVgIGFuZCBgQENvbnRlbnRUeXBlYCB2YWx1ZXMKLSBHbG9iYWwgYG9wdGlvbnMuZGVmYXVsdHMucGFyYW1PcHRpb25zLnJlcXVpcmVkYCBvcHRpb24gYW5kIGxvY2FsIG92ZXJyaWRlIHdpdGggYHtyZXF1aXJlZDogdHJ1ZX1gIGluIGRlY29yYXRvciBwYXJhbXMKLSBQYXJzZSBgc3VtbWFyeWAsIGBvcGVyYXRpb25JZGAgYW5kIGB0YWdzYCBrZXl3b3JkcyBmcm9tIGNvbnRyb2xsZXIvbWV0aG9kIG5hbWVzCgojIyBGdXR1cmUgd29yawoKLSBTdXBwb3J0IGZvciByb3V0aW5nLWNvbnRyb2xsZXIncyBbYXV0aG9yaXphdGlvbiBmZWF0dXJlc10oaHR0cHM6Ly9naXRodWIuY29tL3R5cGVzdGFjay9yb3V0aW5nLWNvbnRyb2xsZXJzI3VzaW5nLWF1dGhvcml6YXRpb24tZmVhdHVyZXMpCgpGZWVsIGZyZWUgdG8gc3VibWl0IGEgUFIhCgojIyBSZWxhdGVkIHByb2plY3RzCgotIEluc3BpcmVkIGJ5IFt0c29hXShodHRwczovL2dpdGh1Yi5jb20vbHVrZWF1dHJ5L3Rzb2EpIGFuZCBbdHJhZmZpY2xpZ2h0XShodHRwczovL2dpdGh1Yi5jb20vc3dpbWxhbmUvdHJhZmZpY2xpZ2h0KQotIEluY2x1ZGUgeW91ciBNb25nb29zZSBtb2RlbHMgaW4gdGhlIHNwZWMgd2l0aCBbbW9uZ29vc2Utc2NoZW1hLWpzb25zY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9EU2NoZWdsb3YvbW9uZ29vc2Utc2NoZW1hLWpzb25zY2hlbWEpCi0gR2VuZXJhdGUgSlNPTiBzY2hlbWEgZnJvbSB5b3VyIFR5cGVzY3JpcHQgc291cmNlcyB3aXRoIFt0eXBlc2NyaXB0LWpzb24tc2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vWW91c2VmRUQvdHlwZXNjcmlwdC1qc29uLXNjaGVtYSkKLSBbb3BlbmFwaTMtdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhZGV2cHJvL29wZW5hcGkzLXRzLykgcHJvdmlkZXMgaGFuZHkgT3BlbkFQSSB1dGlsaXRpZXMgZm9yIFR5cGVzY3JpcHQKLSBDb252ZXJ0IE9wZW5BUEkgMyBzcGVjIHRvICoqU3dhZ2dlciAyKiogd2l0aCBbYXBpLXNwZWMtY29udmVydGVyXShodHRwczovL2dpdGh1Yi5jb20vTHVjeUJvdC1JbmMvYXBpLXNwZWMtY29udmVydGVyKQotIEdlbmVyYXRlIFR5cGVzY3JpcHQgaW50ZXJmYWNlIGRlZmluaXRpb25zIGZyb20gU1FMIGRhdGFiYXNlIHNjaGVtYSB3aXRoIFtzY2hlbWF0c10oaHR0cHM6Ly9naXRodWIuY29tL1N3ZWV0SVEvc2NoZW1hdHMpCg== readmeEtag: '"4147853ee4d7a12f6b36c044d8039663e340e82c"' readmeLastModified: Sat, 31 Dec 2022 02:24:52 GMT repositoryId: 111706277 description: Runtime OpenAPI v3 schema generation for routing-controllers. created: '2017-11-22T16:13:37Z' updated: '2024-09-04T19:15:20Z' language: TypeScript archived: false stars: 304 watchers: 5 forks: 56 owner: epiphone logo: https://avatars.githubusercontent.com/u/1923531?v=4 license: MIT repoEtag: '"f49e9788c9ed7772cbb728609e18018148f4e52769dcf8e89bbdd7de54d4aa09"' repoLastModified: Wed, 04 Sep 2024 19:15:20 GMT foundInMaster: true category: Parsers id: 12451687e58e310275a58099d6b7a849 - source: - openapi3 tags - openapi31 tags repository: https://github.com/python-openapi/openapi-core v3: true id: d81cd6bc100ca208f3155bff6bccc824 repositoryMetadata: base64Readme: >- KioqKioqKioqKioqCm9wZW5hcGktY29yZQoqKioqKioqKioqKioKCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaS1jb3JlLnN2ZwogICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvb3BlbmFwaS1jb3JlCi4uIGltYWdlOjogaHR0cHM6Ly90cmF2aXMtY2kub3JnL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktY29yZS5zdmc/YnJhbmNoPW1hc3RlcgogICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRob24tb3BlbmFwaS9vcGVuYXBpLWNvcmUKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvcHl0aG9uLW9wZW5hcGkvb3BlbmFwaS1jb3JlL21hc3Rlci5zdmc/c3R5bGU9ZmxhdAogICAgIDp0YXJnZXQ6IGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvcHl0aG9uLW9wZW5hcGkvb3BlbmFwaS1jb3JlP2JyYW5jaD1tYXN0ZXIKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9vcGVuYXBpLWNvcmUuc3ZnCiAgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9vcGVuYXBpLWNvcmUKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZm9ybWF0L29wZW5hcGktY29yZS5zdmcKICAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL29wZW5hcGktY29yZQouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9zdGF0dXMvb3BlbmFwaS1jb3JlLnN2ZwogICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvb3BlbmFwaS1jb3JlCgpBYm91dAojIyMjIwoKT3BlbmFwaS1jb3JlIGlzIGEgUHl0aG9uIGxpYnJhcnkgdGhhdCBhZGRzIGNsaWVudC1zaWRlIGFuZCBzZXJ2ZXItc2lkZSBzdXBwb3J0CmZvciB0aGUgYE9wZW5BUEkgdjMuMCA8aHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjMubWQ+YF9fCmFuZCBgT3BlbkFQSSB2My4xIDxodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4xLjAubWQ+YF9fIHNwZWNpZmljYXRpb24uCgoKS2V5IGZlYXR1cmVzCiMjIyMjIyMjIyMjIwoKKiAqKlZhbGlkYXRpb24qKiBhbmQgKip1bm1hcnNoYWxsaW5nKiogb2YgcmVxdWVzdCBhbmQgcmVzcG9uc2UgZGF0YSAoaW5jbHVkaW5nIHdlYmhvb2tzKQoqICoqSW50ZWdyYXRpb24qKiB3aXRoIHBvcHVsYXIgbGlicmFyaWVzIChSZXF1ZXN0cywgV2Vya3pldWcpIGFuZCBmcmFtZXdvcmtzIChEamFuZ28sIEZhbGNvbiwgRmxhc2ssIFN0YXJsZXR0ZSkKKiBDdXN0b21pemF0aW9uIHdpdGggbWVkaWEgdHlwZSAqKmRlc2VyaWFsaXplcnMqKiBhbmQgZm9ybWF0ICoqdW5tYXJzaGFsbGVycyoqCiogKipTZWN1cml0eSoqIGRhdGEgcHJvdmlkZXJzIChBUEkga2V5cywgQ29va2llLCBCYXNpYyBhbmQgQmVhcmVyIEhUVFAgYXV0aGVudGljYXRpb25zKQoKCkRvY3VtZW50YXRpb24KIyMjIyMjIyMjIyMjIwoKQ2hlY2sgZG9jdW1lbnRhdGlvbiB0byBzZWUgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSBmZWF0dXJlcy4gQWxsIGRvY3VtZW50YXRpb24gaXMgaW4gdGhlICJkb2NzIiBkaXJlY3RvcnkgYW5kIG9ubGluZSBhdCBgb3BlbmFwaS1jb3JlLnJlYWR0aGVkb2NzLmlvIDxodHRwczovL29wZW5hcGktY29yZS5yZWFkdGhlZG9jcy5pbz5gX18KCgpJbnN0YWxsYXRpb24KIyMjIyMjIyMjIyMjCgpSZWNvbW1lbmRlZCB3YXkgKHZpYSBwaXApOgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICBwaXAgaW5zdGFsbCBvcGVuYXBpLWNvcmUKCkFsdGVybmF0aXZlbHkgeW91IGNhbiBkb3dubG9hZCB0aGUgY29kZSBhbmQgaW5zdGFsbCBmcm9tIHRoZSByZXBvc2l0b3J5OgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICBwaXAgaW5zdGFsbCAtZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktY29yZS5naXQjZWdnPW9wZW5hcGlfY29yZQoKCkZpcnN0IHN0ZXBzCiMjIyMjIyMjIyMjCgpGaXJzdGx5IGNyZWF0ZSB5b3VyIE9wZW5BUEkgb2JqZWN0LgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGZyb20gb3BlbmFwaV9jb3JlIGltcG9ydCBPcGVuQVBJCgogICAgb3BlbmFwaSA9IE9wZW5BUEkuZnJvbV9maWxlX3BhdGgoJ29wZW5hcGkuanNvbicpCgpOb3cgeW91IGNhbiB1c2UgaXQgdG8gdmFsaWRhdGUgYW5kIHVubWFyc2hhbCBhZ2FpbnN0IHJlcXVlc3RzIGFuZC9vciByZXNwb25zZXMuIAoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgICMgcmFpc2VzIGVycm9yIGlmIHJlcXVlc3QgaXMgaW52YWxpZAogICAgcmVzdWx0ID0gb3BlbmFwaS51bm1hcnNoYWxfcmVxdWVzdChyZXF1ZXN0KQoKUmV0cmlldmUgdmFsaWRhdGVkIGFuZCB1bm1hcnNoYWxsZWQgcmVxdWVzdCBkYXRhCgouLiBjb2RlLWJsb2NrOjogcHl0aG9uCgogICAgIyBnZXQgcGFyYW1ldGVycwogICAgcGF0aF9wYXJhbXMgPSByZXN1bHQucGFyYW1ldGVycy5wYXRoCiAgICBxdWVyeV9wYXJhbXMgPSByZXN1bHQucGFyYW1ldGVycy5xdWVyeQogICAgY29va2llc19wYXJhbXMgPSByZXN1bHQucGFyYW1ldGVycy5jb29raWVzCiAgICBoZWFkZXJzX3BhcmFtcyA9IHJlc3VsdC5wYXJhbWV0ZXJzLmhlYWRlcnMKICAgICMgZ2V0IGJvZHkKICAgIGJvZHkgPSByZXN1bHQuYm9keQogICAgIyBnZXQgc2VjdXJpdHkgZGF0YQogICAgc2VjdXJpdHkgPSByZXN1bHQuc2VjdXJpdHkKClJlcXVlc3Qgb2JqZWN0IHNob3VsZCBpbXBsZW1lbnQgT3BlbkFQSSBSZXF1ZXN0IHByb3RvY29sLiBDaGVjayBgSW50ZWdyYXRpb25zIDxodHRwczovL29wZW5hcGktY29yZS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvaW50ZWdyYXRpb25zLmh0bWw+YF9fIHRvIGZpbmQgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgaW1wbGVtZW50YXRpb25zLgoKRm9yIG1vcmUgZGV0YWlscyByZWFkIGFib3V0IGBVbm1hcnNoYWxsaW5nIDxodHRwczovL29wZW5hcGktY29yZS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdW5tYXJzaGFsbGluZy5odG1sPmBfXyBwcm9jZXNzLgoKSWYgeW91IGp1c3Qgd2FudCB0byB2YWxpZGF0ZSB5b3VyIHJlcXVlc3QvcmVzcG9uc2UgZGF0YSB3aXRob3V0IHVubWFyc2hhbGxpbmcsIHJlYWQgYWJvdXQgYFZhbGlkYXRpb24gPGh0dHBzOi8vb3BlbmFwaS1jb3JlLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC92YWxpZGF0aW9uLmh0bWw+YF9fIGluc3RlYWQuCgoKUmVsYXRlZCBwcm9qZWN0cwojIyMjIyMjIyMjIyMjIyMjCiogYG9wZW5hcGktc3BlYy12YWxpZGF0b3IgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tb3BlbmFwaS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yPmBfXwogICAgUHl0aG9uIGxpYnJhcnkgdGhhdCB2YWxpZGF0ZXMgT3BlbkFQSSBTcGVjcyBhZ2FpbnN0IHRoZSBPcGVuQVBJIDIuMCAoYWthIFN3YWdnZXIpLCBPcGVuQVBJIDMuMCBhbmQgT3BlbkFQSSAzLjEgc3BlY2lmaWNhdGlvbi4gVGhlIHZhbGlkYXRvciBhaW1zIHRvIGNoZWNrIGZvciBmdWxsIGNvbXBsaWFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4KKiBgb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLW9wZW5hcGkvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yPmBfXwogICAgUHl0aG9uIGxpYnJhcnkgdGhhdCB2YWxpZGF0ZXMgc2NoZW1hIGFnYWluc3QgdGhlIE9wZW5BUEkgU2NoZW1hIFNwZWNpZmljYXRpb24gdjMuMCBhbmQgT3BlbkFQSSBTY2hlbWEgU3BlY2lmaWNhdGlvbiB2My4xLgoqIGBib3R0bGUtb3BlbmFwaS0zIDxodHRwczovL2dpdGh1Yi5jb20vY29wZS1zeXN0ZW1zL2JvdHRsZS1vcGVuYXBpLTM+YF9fCiAgICBPcGVuQVBJIDMuMCBTdXBwb3J0IGZvciB0aGUgQm90dGxlIFdlYiBGcmFtZXdvcmsKKiBgcHlyYW1pZF9vcGVuYXBpMyA8aHR0cHM6Ly9naXRodWIuY29tL25pdGVvd2ViL3B5cmFtaWRfb3BlbmFwaTM+YF9fCiAgICBQeXJhbWlkIGFkZG9uIGZvciBPcGVuQVBJMyB2YWxpZGF0aW9uIG9mIHJlcXVlc3RzIGFuZCByZXNwb25zZXMuCiogYHRvcm5hZG8tb3BlbmFwaTMgPGh0dHBzOi8vZ2l0aHViLmNvbS9jb3JyZWwvdG9ybmFkby1vcGVuYXBpMz5gX18KICAgIFRvcm5hZG8gT3BlbkFQSSAzIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHZhbGlkYXRpb24gbGlicmFyeS4KCgpMaWNlbnNlCiMjIyMjIyMKClRoZSBwcm9qZWN0IGlzIHVuZGVyIHRoZSB0ZXJtcyBvZiBCU0QgMy1DbGF1c2UgTGljZW5zZS4K readmeEtag: '"13d74816f950a623932993c0ddc7cca6c27585b3"' readmeLastModified: Fri, 16 Aug 2024 09:34:28 GMT repositoryId: 104200746 description: >- Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification. created: '2017-09-20T10:25:35Z' updated: '2024-09-05T16:22:38Z' language: Python archived: false stars: 297 watchers: 8 forks: 132 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: BSD-3-Clause repoEtag: '"a5a5d90c8a67b239f8000952d5e18b6e44c277880ddfe4a72769c2a051f69f54"' repoLastModified: Thu, 05 Sep 2024 16:22:38 GMT category: - Data Validators - Parsers oldLocations: - https://github.com/p1c2u/openapi-core foundInMaster: true v3_1: true - source: openapi3 tags repository: https://github.com/asyncapi/modelina v3: true id: 8525db62087986733db0fc4221c4b719 repositoryMetadata: base64Readme: >- WyFbQXN5bmNBUEkgTW9kZWxpbmFdKC4vZG9jcy9pbWcvcmVhZG1lLWJhbm5lci5wbmcpXShodHRwczovL3d3dy5tb2RlbGluYS5vcmcpClshW2JsYWNrYm94IHBpcGVsaW5lIHN0YXR1c10oPGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL2FzeW5jYXBpL21vZGVsaW5hL2JsYWNrYm94LXRlc3RpbmcueW1sP2xhYmVsPWJsYWNrYm94JTIwdGVzdGluZz4pXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvYWN0aW9ucy93b3JrZmxvd3MvYmxhY2tib3gtdGVzdGluZy55bWw/cXVlcnk9YnJhbmNoJTNBbWFzdGVyKyspClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL2FzeW5jYXBpL21vZGVsaW5hL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2FzeW5jYXBpL21vZGVsaW5hP2JyYW5jaD1tYXN0ZXIpClshW1Byb2plY3QgU3RhdHVzOiBBY3RpdmUg4oCTIFRoZSBwcm9qZWN0IGhhcyByZWFjaGVkIGEgc3RhYmxlLCB1c2FibGUgc3RhdGUgYW5kIGlzIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZC5dKGh0dHBzOi8vd3d3LnJlcG9zdGF0dXMub3JnL2JhZGdlcy9sYXRlc3QvYWN0aXZlLnN2ZyldKGh0dHBzOi8vd3d3LnJlcG9zdGF0dXMub3JnLyNhY3RpdmUpCiFbTWFpbnRlbmFuY2Ugc2NvcmVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtcy1pby9tYWludGVuYW5jZS1zY29yZS9AYXN5bmNhcGkvbW9kZWxpbmEpClshW05wbSBsYXRlc3QgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AYXN5bmNhcGkvbW9kZWxpbmEpClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvYmxvYi9tYXN0ZXIvTElDRU5TRSkKWyFbbGFzdCBjb21taXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L2FzeW5jYXBpL21vZGVsaW5hKV0oaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHMvbWFzdGVyKQpbIVtEaXNjdXNzaW9uc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZGlzY3Vzc2lvbnMvYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvZGlzY3Vzc2lvbnMpClshW1dlYnNpdGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vd2Vic2l0ZT9sYWJlbD13ZWJzaXRlJnVybD1odHRwcyUzQSUyRiUyRnd3dy5tb2RlbGluYS5vcmcpXShodHRwczovL3d3dy5tb2RlbGluYS5vcmcpClshW1BsYXlncm91bmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vd2Vic2l0ZT9sYWJlbD1wbGF5Z3JvdW5kJnVybD1odHRwcyUzQSUyRiUyRnd3dy5tb2RlbGluYS5vcmclMkZwbGF5Z3JvdW5kKV0oaHR0cHM6Ly93d3cubW9kZWxpbmEub3JnL3BsYXlncm91bmQpIDwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTkzLW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzLSkKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOkVORCAtLT4KCllvdXIgb25lLXN0b3AgdG9vbCBmb3IgZ2VuZXJhdGluZyBhY2N1cmF0ZSBhbmQgd2VsbC10ZXN0ZWQgbW9kZWxzIGZvciByZXByZXNlbnRpbmcgdGhlIG1lc3NhZ2UgcGF5bG9hZHMuIFVzZSBpdCBhcyBhIHRvb2wgaW4geW91ciBkZXZlbG9wbWVudCB3b3JrZmxvdywgb3IgYSBsaWJyYXJ5IGluIGEgbGFyZ2VyIGludGVncmF0aW9ucywgZW50aXJlbHkgaW4geW91ciBjb250cm9sLgoKLS0tCgo8IS0tIHRvYyBpcyBnZW5lcmF0ZWQgd2l0aCBHaXRIdWIgQWN0aW9ucyBkbyBub3QgcmVtb3ZlIHRvYyBtYXJrZXJzIC0tPgoKPCEtLSB0b2MgLS0+CgotIFtJbnN0YWxsaW5nIE1vZGVsaW5hXSgjaW5zdGFsbGluZy1tb2RlbGluYSkKLSBbQXN5bmNBUEkgQ0xJXSgjYXN5bmNhcGktY2xpKQotIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQotIFtSZXF1aXJlbWVudHNdKCNyZXF1aXJlbWVudHMpCi0gW0RvY3VtZW50YXRpb25dKCNkb2N1bWVudGF0aW9uKQotIFtFeGFtcGxlc10oI2V4YW1wbGVzKQotIFtWZXJzaW9uaW5nIGFuZCBtYWludGVuYW5jZV0oI3ZlcnNpb25pbmctYW5kLW1haW50ZW5hbmNlKQotIFtEZXZlbG9wbWVudF0oI2RldmVsb3BtZW50KQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0NvbnRyaWJ1dG9yc10oI2NvbnRyaWJ1dG9ycykKCjwhLS0gdG9jc3RvcCAtLT4KCiMjIEluc3RhbGxpbmcgTW9kZWxpbmEKClJ1biB0aGlzIGNvbW1hbmQgdG8gaW5zdGFsbCBNb2RlbGluYSBpbiB5b3VyIHByb2plY3Q6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIEBhc3luY2FwaS9tb2RlbGluYQpgYGAKCiMjIEFzeW5jQVBJIENMSQoKSWYgeW91IGhhdmUgdGhlIFtBc3luY0FQSSBDTEkgaW5zdGFsbGVkXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvY2xpI2luc3RhbGxhdGlvbikgKE9OTFkgc3VwcG9ydCBBc3luY0FQSSBpbnB1dHMpLCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gdXNlIFtNb2RlbGluYV0oaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL2NsaSN1c2FnZSk6CgpgYGBiYXNoCmFzeW5jYXBpIGdlbmVyYXRlIG1vZGVscyA8bGFuZ3VhZ2U+IC4vYXN5bmNhcGkuanNvbgpgYGAKCjxoMiBhbGlnbj0iY2VudGVyIj5XaGF0IERvZXMgTW9kZWxpbmEgRG8/PC9oMj4KCjxwIGFsaWduPSJjZW50ZXIiPk1vZGVsaW5hIHB1dCBZT1UgaW4gY29udHJvbCBvZiB5b3VyIGRhdGEgbW9kZWxzLCBoZXJlIGlzIGhvdy4uLjwvcD4KCjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkPjxiPk1vZGVsaW5hIGxldHMgeW91IGdlbmVyYXRlIGRhdGEgbW9kZWxzIGZyb20gbWFueSB0eXBlcyBvZiA8YSBocmVmPSIjaW5wdXRzIj5pbnB1dHM8L2E+PC9iPjwvdGQ+Cjx0ZD4KCmBgYHR5cGVzY3JpcHQKY29uc3QgYXN5bmNhcGkgPSAuLi4KY29uc3QganNvbnNjaGVtYSA9IC4uLgpjb25zdCBvcGVuYXBpID0gLi4uIApjb25zdCBtZXRhbW9kZWwgPSAuLi4gCi4uLgpjb25zdCBtb2RlbHMgPSBhd2FpdCBnZW5lcmF0b3IuZ2VuZXJhdGUoCiAgYXN5bmNhcGkgfCBqc29uc2NoZW1hIHwgb3BlbmFwaSB8IG1ldGFtb2RlbAopOwpgYGAKPC90ZD4KICA8L3RyPgogICAgPHRyPgogICAgPHRkPjxiPlVzZSB0aGUgc2FtZSBpbnB1dHMgYWNyb3NzIGEgcmFuZ2Ugb2YgZGlmZmVyZW50IDxhIGhyZWY9IiNvdXRwdXRzIj5nZW5lcmF0b3JzPC9hPjwvYj48L3RkPgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBUeXBlU2NyaXB0R2VuZXJhdG9yKCk7CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBDc2hhcnBHZW5lcmF0b3IoKTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IEphdmFHZW5lcmF0b3IoKTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IFJ1c3RHZW5lcmF0b3IoKTsKLi4uCmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmBgYAo8L3RkPgogIDwvdHI+CiAgICA8dHI+CiAgICA8dGQ+PGI+RWFzaWx5IGxldCB5b3UgaW50ZXJhY3Qgd2l0aCB0aGUgZ2VuZXJhdGVkIG1vZGVscy48L2I+IAoKLSBXYW50IHRvIHNob3cgdGhlIGdlbmVyYXRlZCBtb2RlbHMgb24gYSB3ZWJzaXRlPyBTdXJlISAKLSBXYW50IHRvIGdlbmVyYXRlIHRoZSBtb2RlbHMgaW50byBmaWxlcz8gU3VyZSEgCi0gV2FudCB0byBjb21iaW5lIGFsbCB0aGUgbW9kZWxzIGludG8gb25lIHNpbmdsZSBmaWxlPyBTdXJlISAKCldoYXRldmVyIGludGVyYWN0aW9uIHlvdSBuZWVkLCB5b3UgY2FuIGNyZWF0ZS48L3RkPgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmZvciAoY29uc3QgbW9kZWwgaW4gbW9kZWxzKSB7IAogIGNvbnN0IGdlbmVyYXRlZENvZGUgPSBtb2RlbC5yZXN1bHQ7CiAgY29uc3QgZGVwZW5kZW5jaWVzID0gbW9kZWwuZGVwZW5kZW5jaWVzOwogIGNvbnN0IG1vZGVsdHlwZSA9IG1vZGVsLnR5cGU7CiAgY29uc3QgbW9kZWxOYW1lID0gbW9kZWwubW9kZWxOYW1lOwogIC4uLgp9CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPkVhc2lseSBtb2RpZnkgaG93IG1vZGVscyBhcmUgPGEgaHJlZj0iLi9kb2NzL2NvbnN0cmFpbnRzLm1kIj5jb25zdHJhaW5lZDwvYT4gaW50byB0aGUgb3V0cHV0PC9iPjwvdGQ+Cgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBUeXBlU2NyaXB0R2VuZXJhdG9yKHsKICBjb25zdHJhaW50czogewogICAgbW9kZWxOYW1lOiAoe21vZGVsTmFtZX0pID0+IHsKICAgICAgLy8gSW1wbGVtZW50IHlvdXIgb3duIGNvbnN0cmFpbmluZyBsb2dpYwogICAgICByZXR1cm4gbW9kZWxOYW1lOwogICAgfQogIH0KfSk7CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPlNlYW1sZXNzbHkgbGF5ZXIgYWRkaXRpb25hbCBvciByZXBsYWNlbWVudCBjb2RlIDxhIGhyZWY9Ii4vZG9jcy9wcmVzZXRzLm1kIj5vbiB0b3Agb2YgZWFjaCBvdGhlciB0byBjdXN0b21pemUgdGhlIG1vZGVsczwvYT4gdG8geW91ciB1c2UtY2FzZTwvYj48L3RkPgoKPHRkPgoKYGBgdHlwZXNjcmlwdApjb25zdCBnZW5lcmF0b3IgPSBuZXcgVHlwZVNjcmlwdEdlbmVyYXRvcih7CiAgcHJlc2V0czogWwogICAgewogICAgICBjbGFzczogewogICAgICAgIGFkZGl0aW9uYWxDb250ZW50KHsgY29udGVudCB9KSB7CiAgICAgICAgICByZXR1cm4gYCR7Y29udGVudH0KcHVibGljIG15Q3VzdG9tRnVuY3Rpb24oKTogc3RyaW5nIHsKICByZXR1cm4gJ0EgY3VzdG9tIGZ1bmN0aW9uIGZvciBlYWNoIGNsYXNzJzsKfWA7CiAgICAgICAgfSwKICAgICAgfQogICAgfQogIF0KfSk7CmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPlNlYW1sZXNzbHkgbGV0cyB5b3UgPGEgaHJlZj0iLi9kb2NzL3ByZXNldHMubWQiPmNvbWJpbmUgbXVsdGlwbGUgbGF5ZXJzIG9mIGFkZGl0aW9uYWwgb3IgcmVwbGFjZW1lbnQgY29kZTwvYT48L2I+PC90ZD4KCjx0ZD4KCmBgYHR5cGVzY3JpcHQKY29uc3QgbXlDdXN0b21GdW5jdGlvbjEgPSB7CiAgY2xhc3M6IHsKICAgIGFkZGl0aW9uYWxDb250ZW50KHsgY29udGVudCB9KSB7CiAgICAgIHJldHVybiBgJHtjb250ZW50fQpwdWJsaWMgbXlDdXN0b21GdW5jdGlvbigpOiBzdHJpbmcgewpyZXR1cm4gJ0EgY3VzdG9tIGZ1bmN0aW9uIGZvciBlYWNoIGNsYXNzJzsKfWA7CiAgICB9LAogIH0KfTsKY29uc3QgbXlDdXN0b21GdW5jdGlvbjIgPSB7Li4ufTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IFR5cGVTY3JpcHRHZW5lcmF0b3IoewogIHByZXNldHM6IFsKICAgIG15Q3VzdG9tRnVuY3Rpb24xLAogICAgbXlDdXN0b21GdW5jdGlvbjIKICBdCn0pOwpjb25zdCBtb2RlbHMgPSBhd2FpdCBnZW5lcmF0b3IuZ2VuZXJhdGUoaW5wdXQpOwpgYGAKPC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKIyMgRmVhdHVyZXMKClRoZSBmb2xsb3dpbmcgdGFibGUgcHJvdmlkZXMgYSBzaG9ydCBzdW1tYXJ5IG9mIGF2YWlsYWJsZSBmZWF0dXJlcyBmb3Igc3VwcG9ydGVkIG91dHB1dCBsYW5ndWFnZXMuIFRvIHNlZSB0aGUgY29tcGxldGUgZmVhdHVyZSBsaXN0IGZvciBlYWNoIGxhbmd1YWdlLCBwbGVhc2UgY2xpY2sgdGhlIGluZGl2aWR1YWwgbGlua3MgZm9yIGVhY2ggbGFuZ3VhZ2UuCgo8YSBpZD0iaW5wdXRzIj48L2E+Cgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KPCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSAtLT4KPHRhYmxlPgogIDx0cj4KICAgIDx0aD5TdXBwb3J0ZWQgaW5wdXRzPC90aD4KICAgIDx0aD48L3RoPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbHMtZnJvbS1hc3luY2FwaS1kb2N1bWVudHMiPkFzeW5jQVBJPC9hPjwvdGQ+CiAgICA8dGQ+V2Ugc3VwcG9ydCB0aGUgZm9sbG93aW5nIEFzeW5jQVBJIHZlcnNpb25zOiA8ZW0+Mi4wLjAgLT4gMi42LjA8L2VtPiwgd2hpY2ggZ2VuZXJhdGVzIG1vZGVscyBmb3IgYWxsIHRoZSBkZWZpbmVkIG1lc3NhZ2UgcGF5bG9hZHMuIEl0IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc2NoZW1hRm9ybWF0cyBBc3luY0FQSSBTY2hlbWEgb2JqZWN0LCBKU09OIFNjaGVtYSBkcmFmdCA3LCA8YSBocmVmPSIuL2V4YW1wbGVzL2FzeW5jYXBpLWF2cm8tc2NoZW1hIj5BVlJPIDEuOTwvYT4sIDxhIGhyZWY9Ii4vZXhhbXBsZXMvYXN5bmNhcGktcmFtbC1zY2hlbWEiPlJBTUwgMS4wIGRhdGEgdHlwZTwvYT4sIGFuZCA8YSBocmVmPSIuL2V4YW1wbGVzL2FzeW5jYXBpLW9wZW5hcGktc2NoZW1hIj5PcGVuQVBJIDMuMCBTY2hlbWE8L2E+LjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLWpzb24tc2NoZW1hLWRvY3VtZW50cyI+SlNPTiBTY2hlbWE8L2E+PC90ZD4KICAgIDx0ZD5XZSBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgSlNPTiBTY2hlbWEgdmVyc2lvbnM6IDxlbT5EcmFmdC00LCBEcmFmdC02IGFuZCBEcmFmdC03PC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbHMtZnJvbS1vcGVuYXBpLWRvY3VtZW50cyI+T3BlbkFQSTwvYT48L3RkPgogICAgPHRkPldlIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBPcGVuQVBJIHZlcnNpb25zOiA8ZW0+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLXN3YWdnZXItMjAtZG9jdW1lbnRzIj5Td2FnZ2VyIDIuMDwvYT4sIDxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbHMtZnJvbS1vcGVuYXBpLWRvY3VtZW50cyI+T3BlbkFQSSAzLjAgYW5kIDMuMTwvYT48L2VtPiwgd2hpY2ggZ2VuZXJhdGVzIG1vZGVscyBmb3IgYWxsIHRoZSBkZWZpbmVkIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHBheWxvYWRzLjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVsLWZyb20tdHlwZXNjcmlwdC10eXBlLWZpbGVzIj5UeXBlU2NyaXB0PC9hPjwvdGQ+CiAgICA8dGQ+V2UgY3VycmVudGx5IHN1cHBvcnQgVHlwZVNjcmlwdCB0eXBlcyBhcyBmaWxlIGlucHV0IGZvciBtb2RlbCBnZW5lcmF0aW9uPC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtbW9kZWxzLWZyb20tbWV0YS1tb2RlbHMiPk1ldGEgbW9kZWw8L2E+PC90ZD4KICAgIDx0ZD5UaGlzIGlzIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBhIG1vZGVsIGZvciBNb2RlbGluYSwgaXQgaXMgd2hhdCBpbnB1dHMgZ2V0cyBjb252ZXJ0ZWQgdG8sIGFuZCB3aGF0IGdlbmVyYXRvcnMgYXJlIHByb3ZpZGVkIHRvIGdlbmVyYXRlIGNvZGUuIEluc3RlYWQgb2YgcmVseWluZyBvbiBhbiBpbnB1dCBwcm9jZXNzb3IsIHlvdSBjYW4gY3JlYXRlIHlvdXIgb3duIG1vZGVscyBmcm9tIHNjcmF0Y2ggYW5kIHN0aWxsIHRha2UgYWR2YW50YWdlIG9uIHRoZSBnZW5lcmF0b3JzIGFuZCB0aGUgZmVhdHVyZXMuPC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKPGEgaWQ9Im91dHB1dHMiPjwvYT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cjx0YWJsZT4KICA8dHI+CiAgICA8dGg+U3VwcG9ydGVkIG91dHB1dHM8L3RoPgogICAgPHRoPjwvdGg+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLWphdmEtbW9kZWxzIj5KYXZhPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmdlbmVyYXRpb24gb2YgZXF1YWxzLCBoYXNoQ29kZSwgdG9TdHJpbmcsIEphY2tzb24gYW5ub3RhdGlvbiwgY3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGV0YzwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtdHlwZXNjcmlwdC1tb2RlbHMiPlR5cGVTY3JpcHQ8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcywgaW50ZXJmYWNlIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5nZW5lcmF0aW9uIG9mIGV4YW1wbGUgY29kZSwgdW4vbWFyc2hhbCBmdW5jdGlvbnMsIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGM8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLWMjLW1vZGVscyI+QyM8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Z2VuZXJhdGlvbiBvZiBleGFtcGxlIGNvZGUsIHNlcmlhbGl6ZXIgYW5kIGRlc2VyaWFsaXplciBmdW5jdGlvbnMsIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGM8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLWdvLW1vZGVscyI+R288L2E+PC90ZD4KICAgIDx0ZD5TdHJ1Y3QgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGMgPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1qYXZhc2NyaXB0LW1vZGVscyI+SmF2YVNjcmlwdDwvYT48L3RkPgogICAgPHRkPkNsYXNzIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1kYXJ0LW1vZGVscyI+RGFydDwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IGpzb25fYW5ub3RhdGlvbjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXJ1c3QtbW9kZWxzIj5SdXN0PC9hPjwvdGQ+CiAgICA8dGQ+U3RydWN0L3R1cGxlIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5nZW5lcmF0aW9uIG9mIGBpbXBsZW1lbnQgRGVmYXVsdGAsIGdlbmVyYXRlIHNlcmRlIG1hY3JvcywgY3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGV0YzwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtcHl0aG9uLW1vZGVscyI+UHl0aG9uPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGMgPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1rb3RsaW4tbW9kZWxzIj5Lb3RsaW48L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+dXNlIG9mIGRhdGEgY2xhc3NlcyB3aGVyZSBhcHByb3ByaWF0ZSwgY3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGV0YyA8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLWNwbHVzcGx1cy1tb2RlbHMiPkMrKzwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjIDwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtcGhwLW1vZGVscyI+UEhQPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBkZXNjcmlwdGlvbnMsIGV0YyA8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXNjYWxhLW1vZGVscyI+U2NhbGE8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Y3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGRlc2NyaXB0aW9ucywgZXRjIDwvZW0+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKIyMgUmVxdWlyZW1lbnRzClRoZSBmb2xsb3dpbmcgYXJlIGEgcmVxdWlyZW1lbnQgaW4gb3JkZXIgdG8gdXNlIE1vZGVsaW5hLgoKLSBbTm9kZUpTXShodHRwczovL25vZGVqcy5vcmcvZW4vKSA+PSAxOAoKIyMgRG9jdW1lbnRhdGlvbgpBIGZlYXR1cmUgaW4gTW9kZWxpbmEgY2Fubm90IGV4aXN0cyB3aXRob3V0IGFuIGV4YW1wbGUgYW5kIGRvY3VtZW50YXRpb24gZm9yIGl0LiBZb3UgY2FuIGZpbmQgYWxsIHRoZSBbZG9jdW1lbnRhdGlvbiBoZXJlXSguL2RvY3MvUkVBRE1FLm1kKS4KCiMjIEV4YW1wbGVzCkRvIHlvdSBuZWVkIHRvIGtub3cgaG93IHRvIHVzZSB0aGUgbGlicmFyeSBpbiBjZXJ0YWluIHNjZW5hcmlvcz8gCgpXZSBoYXZlIGdhdGhlcmVkIGFsbCB0aGUgZXhhbXBsZXMgaW4gYSBzZXBhcmF0ZSBmb2xkZXIgYW5kIHRoZXkgY2FuIGJlIGZvdW5kIHVuZGVyIHRoZSBbZXhhbXBsZXMgZm9sZGVyXSguL2V4YW1wbGVzKS4gCgojIyBWZXJzaW9uaW5nIGFuZCBtYWludGVuYW5jZQpBcyBvZiB2ZXJzaW9uIDEsIE1vZGVsaW5hIGhhcyBhIHZlcnkgc3RyaWN0IHNldCBvZiBjaGFuZ2VzIHdlIGFyZSBhbGxvd2VkIHRvIGRvIGJlZm9yZSBpdCByZXF1aXJlcyBhIG1ham9yIHZlcnNpb24gY2hhbmdlLiBJbiBzaG9ydCwgYW55IGNoYW5nZXMgdGhhdCBjaGFuZ2UgdGhlIGdlbmVyYXRlZCBvdXRjb21lIGFyZSBub3QgYWxsb3dlZCBhcyBpdCdzIGEgYnJlYWtpbmcgY2hhbmdlIGZvciB0aGUgY29uc3VtZXIgb2YgdGhlIGdlbmVyYXRlZCBtb2RlbHMuIAoKSGVyZSBpcyBhIGxpc3Qgb2YgY2hhbmdlcyB3ZSBhcmUgYWxsb3dlZCB0byBkbyB0aGF0IHdvdWxkIG5vdCByZXF1aXJlIGEgYnJlYWtpbmcgY2hhbmdlOgotIEFkZGluZyBuZXcgZmVhdHVyZXMgKHRoYXQgZG8gbm90IGNoYW5nZSBleGlzdGluZyBvdXRwdXQpLCBzdWNoIGFzIGdlbmVyYXRvcnMsIHByZXNldHMsIGlucHV0IHByb2Nlc3NvcnMsIGV0Yy4KLSBDaGFuZ2UgZXhpc3RpbmcgZmVhdHVyZXMsIGJ5IHByb3ZpZGluZyBvcHRpb25zIHRoYXQgZGVmYXVsdCB0byBjdXJyZW50IGJlaGF2aW9yLiBUaGlzIGNvdWxkIGJlIGEgcHJlc2V0IHRoYXQgYWRhcHRzIHRoZSBvdXRwdXQgYmFzZWQgb24gb3B0aW9ucywgYXMgbG9uZyBhcyB0aGUgQVBJIG9mIE1vZGVsaW5hIGFuZCB0aGUgQVBJIG9mIHRoZSBnZW5lcmF0ZWQgbW9kZWxzIGRvZXMgbm90IGhhdmUgYW55IGJyZWFraW5nIGNoYW5nZXMuCi0gQnVnIGZpeGVzIHdoZXJlIHRoZSBnZW5lcmF0ZWQgY29kZSBpcyBvdGhlcndpc2UgdW51c2FibGUgKHN5bnRheCBlcnJvcnMsIGV0YykuCgpCcmVha2luZyBjaGFuZ2VzIGFyZSBhbGxvd2VkIGFuZCBleHBlY3RlZCBhdCBhIGZyZXF1ZW50IHJhdGUsIG9mIGNvdXJzZSB3aGVyZSBpdCBtYWtlcyBzZW5zZSB3ZSB3aWxsIHRyeSB0byBidW5kbGUgbXVsdGlwbGUgY2hhbmdlcyB0b2dldGhlci4KCldlIG9mIGNvdXJzZSB3aWxsIGRvIG91ciBiZXN0IHRvIHVwaG9sZCB0aGlzLCBidXQgbWlzdGFrZXMgY2FuIGhhcHBlbiwgYW5kIGlmIHlvdSBub3RpY2UgYW55IGJyZWFraW5nIGNoYW5nZXMgcGxlYXNlIGxldCB1cyBrbm93IQoKQmVjYXVzZSBvZiB0aGUgbnVtYmVyIG9mIHRoZSBsaW1pdGVkIG51bWJlciBvZiBjaGFtcGlvbnMsIG9ubHkgdGhlIG1vc3QgcmVjZW50IG1ham9yIHZlcnNpb24gd2lsbCBiZSBtYWludGFpbmVkLgoKTWFqb3IgdmVyc2lvbnMgYXJlIGN1cnJlbnRseSBoYXBwZW5pbmcgYXQgYSAzLW1vbnRoIGNhZGVuY2UgKGluIGEgc2ltaWxhciBmYXNoaW9uIGFzIHRoZSBBc3luY0FQSSBzcGVjaWZpY2F0aW9uKSwgdGhpcyB3aWxsIGhhcHBlbiBpbiBKYW51YXJ5LCBBcHJpbCwgSnVuZSwgYW5kIFNlcHRlbWJlci4gCgojIyBEZXZlbG9wbWVudApXZSB0cnkgdG8gbWFrZSBpdCBhcyBlYXN5IGZvciB5b3UgYXMgcG9zc2libGUgdG8gc2V0IHVwIHlvdXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdG8gY29udHJpYnV0ZSB0byBNb2RlbGluYS4gWW91IGNhbiBmaW5kIHRoZSBkZXZlbG9wbWVudCBkb2N1bWVudGF0aW9uIFtoZXJlXSguL2RvY3MvZGV2ZWxvcG1lbnQubWQpLgoKIyMgQ29udHJpYnV0aW5nCldpdGhvdXQgY29udHJpYnV0aW9ucywgTW9kZWxpbmEgd291bGQgbm90IGV4aXN0LCBpdCdzIGEgY29tbXVuaXR5IHByb2plY3Qgd2UgYnVpbGQgdG9nZXRoZXIgdG8gY3JlYXRlIHRoZSBiZXN0IHBvc3NpYmxlIGJ1aWxkaW5nIGJsb2NrcywgYW5kIHdlIGRvIHRoaXMgdGhyb3VnaCBbY2hhbXBpb25zXSguL2RvY3MvY2hhbXBpb25zLm1kKS4KCldlIGhhdmUgbWFkZSBxdWl0ZSBhIFtjb21wcmVoZW5zaXZlIGNvbnRyaWJ1dGlvbiBndWlkZV0oLi9kb2NzL2NvbnRyaWJ1dGluZy5tZCkgdG8gZ2l2ZSB5b3UgYSBsZW5kaW5nIGhhbmQgaW4gaG93IGRpZmZlcmVudCBmZWF0dXJlcyBhbmQgY2hhbmdlcyBhcmUgaW50cm9kdWNlZC4KCklmIG5vIGRvY3VtZW50YXRpb24gaGVscHMgeW91LCBoZXJlIGlzIGhvdyB5b3UgY2FuIHJlYWNoIG91dCB0byBnZXQgaGVscDoKLSBPbiB0aGUgW29mZmljaWFsIEFzeWNuQVBJIHNsYWNrXShodHRwczovL2FzeW5jYXBpLmNvbS9zbGFjay1pbnZpdGUpIHVuZGVyIHRoZSBgIzA0X3Rvb2xpbmdgIGNoYW5uZWwKLSBUYWcgYSBzcGVjaWZpYyBbQ09ERU9XTkVSXSguL0NPREVPV05FUlMpIGluIHlvdXIgUFIKLSBHZW5lcmFsbHksIGl0J3MgYWx3YXlzIGEgZ29vZCBpZGVhIHRvIGRvIGV2ZXJ5dGhpbmcgaW4gcHVibGljLCBidXQgaW4gc29tZSBjYXNlcywgaXQgbWlnaHQgbm90IGJlIHBvc3NpYmxlLiBJbiB0aG9zZSBjaXJjdW1zdGFuY2VzIHlvdSBjYW4gY29udGFjdCB0aGUgZm9sbG93aW5nOiAKICAtIFtqb25hc2xhZ29uaV0oaHR0cHM6Ly9naXRodWIuY29tL2pvbmFzbGFnb25pKSAob24gW0FzeW5jQVBJIFNsYWNrXShodHRwczovL2FzeW5jYXBpLmNvbS9zbGFjay1pbnZpdGUpLCBbVHdpdHRlcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9qb25hc2xhZ29uaSksIFtFbWFpbF0obWFpbHRvOmpvbmFzLWx0QGxpdmUuZGspLCBbTGlua2VkSW5dKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9qb25hc2xhZ29uaS8pKQoKIyMgQ29udHJpYnV0b3JzIAoKVGhhbmtzIGdvIG91dCB0byB0aGVzZSB3b25kZXJmdWwgcGVvcGxlIChbZW1vamkga2V5XShodHRwczovL2FsbGNvbnRyaWJ1dG9ycy5vcmcvZG9jcy9lbi9lbW9qaS1rZXkpKToKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KPCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSAtLT4KPHRhYmxlPgogIDx0Ym9keT4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWFnaWNtYXRhdGphaHUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjA0MDQ5NDU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1hY2llaiBVcmJhxYRjenlrIi8+PGJyIC8+PHN1Yj48Yj5NYWNpZWogVXJiYcWEY3p5azwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQW1hZ2ljbWF0YXRqYWh1IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYWdpY21hdGF0amFodSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYWdpY21hdGF0amFodSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNpZGVhcy1tYWdpY21hdGF0amFodSIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT4gPGEgaHJlZj0iI21haW50ZW5hbmNlLW1hZ2ljbWF0YXRqYWh1IiB0aXRsZT0iTWFpbnRlbmFuY2UiPvCfmqc8L2E+IDxhIGhyZWY9IiNxdWVzdGlvbi1tYWdpY21hdGF0amFodSIgdGl0bGU9IkFuc3dlcmluZyBRdWVzdGlvbnMiPvCfkqw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYWdpY21hdGF0amFodSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FtYWdpY21hdGF0amFodSIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY3psb3dpZWs0ODgiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzQ2MjAxMDk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImN6bG93aWVrNDg4Ii8+PGJyIC8+PHN1Yj48Yj5jemxvd2llazQ4ODwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQWN6bG93aWVrNDg4IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0Fjemxvd2llazQ4OCIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+IDxhIGhyZWY9IiNpZGVhcy1jemxvd2llazQ4OCIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zbW95YSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMDgzMjk2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTZXJnaW8gTW95YSIvPjxiciAvPjxzdWI+PGI+U2VyZ2lvIE1veWE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FzbW95YSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c21veWEiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c21veWEiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c21veWEiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBc21veWEiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2pvbmFzbGFnb25pIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEzMzk2MTg5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKb25hcyBMYWdvbmkiLz48YnIgLz48c3ViPjxiPkpvbmFzIExhZ29uaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQWpvbmFzbGFnb25pIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qb25hc2xhZ29uaSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qb25hc2xhZ29uaSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNpZGVhcy1qb25hc2xhZ29uaSIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT4gPGEgaHJlZj0iI21haW50ZW5hbmNlLWpvbmFzbGFnb25pIiB0aXRsZT0iTWFpbnRlbmFuY2UiPvCfmqc8L2E+IDxhIGhyZWY9IiNxdWVzdGlvbi1qb25hc2xhZ29uaSIgdGl0bGU9IkFuc3dlcmluZyBRdWVzdGlvbnMiPvCfkqw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qb25hc2xhZ29uaSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0Fqb25hc2xhZ29uaSIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2Rldi50by9kZXJiZXJnIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY5OTU5Mjc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ikx1a2FzeiBHb3JuaWNraSIvPjxiciAvPjxzdWI+PGI+THVrYXN6IEdvcm5pY2tpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBZGVyYmVyZyIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FkZXJiZXJnIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1kZXJiZXJnIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hcmp1bmdhcmcwNyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MzAwOTcyMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQXJqdW4gR2FyZyIvPjxiciAvPjxzdWI+PGI+QXJqdW4gR2FyZzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFyanVuZ2FyZzA3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZm12aWxhcy5jb20iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjQyMTE5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJGcmFuIE3DqW5kZXoiLz48YnIgLz48c3ViPjxiPkZyYW4gTcOpbmRlejwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQWZtdmlsYXMiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9CbGFrZWxpc3Q3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU0NTI1OTYwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLYW53YWwgU2luZ2giLz48YnIgLz48c3ViPjxiPkthbndhbCBTaW5naDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUJsYWtlbGlzdDciIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVqYW5kcmFxdWV0emFsbGkuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE5OTY0NDAyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBbGVqYW5kcmEgUXVldHphbGxpICIvPjxiciAvPjxzdWI+PGI+QWxlamFuZHJhIFF1ZXR6YWxsaSA8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FhbGVxdWV0emFsbGkiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9YWxlcXVldHphbGxpIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9tZC1zYWlmLWh1c2FpbiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MDY4Mjk2OD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTUQgU0FJRiAgSFVTQUlOIi8+PGJyIC8+PHN1Yj48Yj5NRCBTQUlGICBIVVNBSU48L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNleGFtcGxlLW1kLXNhaWYtaHVzYWluIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tZC1zYWlmLWh1c2FpbiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tZC1zYWlmLWh1c2FpbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tZC1zYWlmLWh1c2FpbiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3N1ZGlwdG8uZ2hvc2gucHJvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExMjMyOTQwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTdWRpcHRvIEdob3NoIi8+PGJyIC8+PHN1Yj48Yj5TdWRpcHRvIEdob3NoPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZXhhbXBsZS1zdWRpcHRvZzgxIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1zdWRpcHRvZzgxIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXN1ZGlwdG9nODEiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3BhbndhdXUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjI1OTcyMjM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InBhbndhdXUiLz48YnIgLz48c3ViPjxiPnBhbndhdXU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wYW53YXV1IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXBhbndhdXUiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1wYW53YXV1IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wYW53YXV1IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQXBhbndhdXUiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9zdGVmYW5lbWF5ZXIvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1MDMxOTUwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTdGVmYW4gRS4gTWF5ZXIiLz48YnIgLz48c3ViPjxiPlN0ZWZhbiBFLiBNYXllcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQXN0ZWZhbmVyd2lubWF5ZXIiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9IYXNoVGFsbWl6Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU1MDE4MjgwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJUYWxtaXogQWhtZWQiLz48YnIgLz48c3ViPjxiPlRhbG1peiBBaG1lZDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUhhc2hUYWxtaXoiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9SGFzaFRhbG1peiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLUhhc2hUYWxtaXoiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vVGhhbmtzRm9yQWxsVGhlRmlzaCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMTY5NjU1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJNYXJjbyIvPjxiciAvPjxzdWI+PGI+TWFyY288L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FUaGFua3NGb3JBbGxUaGVGaXNoIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcXVhZHJyZW0iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODQ1MDg3Mz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0icXVhZHJyZW0iLz48YnIgLz48c3ViPjxiPnF1YWRycmVtPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cXVhZHJyZW0iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cXVhZHJyZW0iIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9rYW1rby5kZXYiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTcwNzQzNzU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkthbWlsIEphbmXEjWVrIi8+PGJyIC8+PHN1Yj48Yj5LYW1pbCBKYW5lxI1lazwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWthbWtvIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQWthbWtvIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1rYW1rbyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWFoYWtwb3J3YWwwMiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NjQ4NjY4Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ibWFoYWtwb3J3YWwwMiIvPjxiciAvPjxzdWI+PGI+bWFoYWtwb3J3YWwwMjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2V4YW1wbGUtbWFoYWtwb3J3YWwwMiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFoYWtwb3J3YWwwMiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYWhha3BvcndhbDAyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW1haGFrcG9yd2FsMDIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Jvbi1kZWJhanlvdGkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjI1NzE2NjQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRlYmFqeW90aSBIYWxkZXIiLz48YnIgLz48c3ViPjxiPkRlYmFqeW90aSBIYWxkZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yb24tZGViYWp5b3RpIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJvbi1kZWJhanlvdGkiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cm9uLWRlYmFqeW90aSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNleGFtcGxlLXJvbi1kZWJhanlvdGkiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iI21haW50ZW5hbmNlLXJvbi1kZWJhanlvdGkiIHRpdGxlPSJNYWludGVuYW5jZSI+8J+apzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vcml0aWszMDcuZ2l0aHViLmlvL3BvcnRmb2xpby8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjIzNzQ4Mjk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlJpdGlrIFJhd2FsIi8+PGJyIC8+PHN1Yj48Yj5SaXRpayBSYXdhbDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJpdGlrMzA3IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJpdGlrMzA3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJpdGlrMzA3IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtcml0aWszMDciIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Jc2hhbi1TYWluaSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NDUyNTYwMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iSXNoYW4iLz48YnIgLz48c3ViPjxiPklzaGFuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9SXNoYW4tU2FpbmkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9SXNoYW4tU2FpbmkiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vc2FtcmlkaGktOTguZ2l0aHViLmlvL1BvcnRmb2xpbyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NDQ2NjA0MT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2FtcmlkZGhpIi8+PGJyIC8+PHN1Yj48Yj5TYW1yaWRkaGk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1TYW1yaWRoaS05OCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1TYW1yaWRoaS05OCIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1TYW1yaWRoaS05OCIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNleGFtcGxlLVNhbXJpZGhpLTk4IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1TYW1yaWRoaS05OCIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2dhYm9ybWFneWFyIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYzMzk3MzAzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJHw6Fib3IgTWFneWFyIi8+PGJyIC8+PHN1Yj48Yj5Hw6Fib3IgTWFneWFyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9Z2Fib3JtYWd5YXIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9Z2Fib3JtYWd5YXIiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9Z2Fib3JtYWd5YXIiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1nYWJvcm1hZ3lhciIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2liZXJuYWJldWRldiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83NDIxNTA3ND92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iaWJlcm5hYmV1ZGV2Ii8+PGJyIC8+PHN1Yj48Yj5pYmVybmFiZXVkZXY8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1pYmVybmFiZXVkZXYiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aWJlcm5hYmV1ZGV2IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtaWJlcm5hYmV1ZGV2IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1pYmVybmFiZXVkZXYiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Nsb3dpa293c2tpYXJrYWRpdXN6Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzk3NTA4OTMwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBcmthZGl1c3ogU8WCb3dpa293c2tpIi8+PGJyIC8+PHN1Yj48Yj5BcmthZGl1c3ogU8WCb3dpa293c2tpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c2xvd2lrb3dza2lhcmthZGl1c3oiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c2xvd2lrb3dza2lhcmthZGl1c3oiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1zbG93aWtvd3NraWFya2FkaXVzeiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c2xvd2lrb3dza2lhcmthZGl1c3oiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1BvbHlnZW5zIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM1ODIzMTg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IldpbGxlbSBHaWxsaXMiLz48YnIgLz48c3ViPjxiPldpbGxlbSBHaWxsaXM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Qb2x5Z2VucyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Qb2x5Z2VucyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FQb2x5Z2VucyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JtYXNhcm92aWMiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTUyMjgzND92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0icm1hc2Fyb3ZpYyIvPjxiciAvPjxzdWI+PGI+cm1hc2Fyb3ZpYzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJtYXNhcm92aWMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cm1hc2Fyb3ZpYyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ybWFzYXJvdmljIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtcm1hc2Fyb3ZpYyIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL293YWlzMzQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMzg3NTk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik93YWlzIEhhc25hdGggQWhtZWQiLz48YnIgLz48c3ViPjxiPk93YWlzIEhhc25hdGggQWhtZWQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1vd2FpczM0IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW93YWlzMzQiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9b3dhaXMzNCIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1Bhbk1hbiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85Nzg1MDE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlBhbk1hbiIvPjxiciAvPjxzdWI+PGI+UGFuTWFuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UGFuTWFuIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hcnR1ci1jaW9jYW51Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc0MzE5Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYXJ0dXItY2lvY2FudSIvPjxiciAvPjxzdWI+PGI+YXJ0dXItY2lvY2FudTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFydHVyLWNpb2NhbnUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBYXJ0dXItY2lvY2FudSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1hcnR1ci1jaW9jYW51IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcnR1ci1jaW9jYW51IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFydHVyLWNpb2NhbnUiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjbWFpbnRlbmFuY2UtYXJ0dXItY2lvY2FudSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9taWNyby1qdW1iby5ldS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE1MTE2OTc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkN5cHJpYW4gR3JhY3oiLz48YnIgLz48c3ViPjxiPkN5cHJpYW4gR3JhY3o8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1taWNyby1qdW1ibyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1taWNyby1qdW1ibyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FtaWNyby1qdW1ibyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cucHJpbnRuYW5ueS5haSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNjAxODE5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJMZWlnaCBKb2huc29uIi8+PGJyIC8+PHN1Yj48Yj5MZWlnaCBKb2huc29uPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bGVpZ2gtam9obnNvbiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1sZWlnaC1qb2huc29uIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtbGVpZ2gtam9obnNvbiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bGVpZ2gtam9obnNvbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1sZWlnaC1qb2huc29uIiB0aXRsZT0iTWFpbnRlbmFuY2UiPvCfmqc8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FsZWlnaC1qb2huc29uIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9uaXRpbnRlanVqYSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85NTM0NzkyND92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTml0aW4gVGVqdWphIi8+PGJyIC8+PHN1Yj48Yj5OaXRpbiBUZWp1amE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1uaXRpbnRlanVqYSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLW5pdGludGVqdWphIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va2VubmV0aGFhc2FuIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0MzczOTQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Iktlbm5ldGggQWFzYW4iLz48YnIgLz48c3ViPjxiPktlbm5ldGggQWFzYW48L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1rZW5uZXRoYWFzYW4iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9a2VubmV0aGFhc2FuIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI21haW50ZW5hbmNlLWtlbm5ldGhhYXNhbiIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9a2VubmV0aGFhc2FuIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbWl0LWtzaCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85MTk0NzAzNz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQW1pdCBLdW1hciBTaGFybWEiLz48YnIgLz48c3ViPjxiPkFtaXQgS3VtYXIgU2hhcm1hPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9YW1pdC1rc2giIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9YW1pdC1rc2giIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1hbWl0LWtzaCIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS96YXl0c2V2YW5kIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyMDc3NDg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFuZHJleSBaYXl0c2V2Ii8+PGJyIC8+PHN1Yj48Yj5BbmRyZXkgWmF5dHNldjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXpheXRzZXZhbmQiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZXhhbXBsZS16YXl0c2V2YW5kIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj16YXl0c2V2YW5kIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXpheXRzZXZhbmQiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NvZGluZ3RlbnNoaSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTYzNzc2MzA/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlRlbnNoaSBDb2RlcyIvPjxiciAvPjxzdWI+PGI+VGVuc2hpIENvZGVzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjaW5mcmEtY29kaW5ndGVuc2hpIiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3l1c2hpb21vdGUub3JnLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzMzOTE1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJZdXNoaSBPTU9URSIvPjxiciAvPjxzdWI+PGI+WXVzaGkgT01PVEU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FZdXNoaU9NT1RFIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ZdXNoaU9NT1RFIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vbWFsY2hlcmN6eWsucGwiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTc1MzQ1MDQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlpiaWduaWV3IE1hbGNoZXJjenlrIi8+PGJyIC8+PHN1Yj48Yj5aYmlnbmlldyBNYWxjaGVyY3p5azwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQUZlcnJvciIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSIjaW5mcmEtRmVycm9yIiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9RmVycm9yIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtRmVycm9yIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1GZXJyb3IiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBRmVycm9yIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS8yMDBQdWxzIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY5MTgzNjA/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IjIwMFB1bHMiLz48YnIgLz48c3ViPjxiPjIwMFB1bHM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj0yMDBQdWxzIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPTIwMFB1bHMiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9saW5rdHIuZWUvYW5heXNhcmthcjciPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTMzNDExODE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFuYXkgU2Fya2FyIi8+PGJyIC8+PHN1Yj48Yj5BbmF5IFNhcmthcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2V4YW1wbGUtYW5heXNhcmthcjciIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFuYXlzYXJrYXI3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFuYXlzYXJrYXI3IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Mb3Vpc1hoYWZlcmkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTIzOTc2Nzc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkxvdWlzIFhoYWZlcmkiLz48YnIgLz48c3ViPjxiPkxvdWlzIFhoYWZlcmk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Mb3Vpc1hoYWZlcmkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zYW1iaGF2Z3VwdGEwNzA1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzgxODcwODY2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTYW1iaGF2IEd1cHRhIi8+PGJyIC8+PHN1Yj48Yj5TYW1iaGF2IEd1cHRhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FzYW1iaGF2Z3VwdGEwNzA1IiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT4gPGEgaHJlZj0iI2Rlc2lnbi1zYW1iaGF2Z3VwdGEwNzA1IiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FzYW1iaGF2Z3VwdGEwNzA1IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcHJheXV0c3UiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTQ2MzY1MjU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFiaGF5IEdhcmciLz48YnIgLz48c3ViPjxiPkFiaGF5IEdhcmc8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wcmF5dXRzdSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNleGFtcGxlLXByYXl1dHN1IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wcmF5dXRzdSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wcmF5dXRzdSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaGVucmlram9uIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI3MjEyMjMyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJoZW5yaWtqb24iLz48YnIgLz48c3ViPjxiPmhlbnJpa2pvbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWhlbnJpa2pvbiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1oZW5yaWtqb24iIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aGVucmlram9uIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtaGVucmlram9uIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3lhc2lyZGV2ZWxvcGVyLm5ldGxpZnkuYXBwLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83NDYwMDc0NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTW9oYW1tYWQgWWFzaXIiLz48YnIgLz48c3ViPjxiPk1vaGFtbWFkIFlhc2lyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9WWFzaXI3NjEiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1NhdmlvNjI5Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkxMzYyNTg5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTYXZpbyBEaWFzIi8+PGJyIC8+PHN1Yj48Yj5TYXZpbyBEaWFzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2F2aW82MjkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjaW5mcmEtU2F2aW82MjkiIHRpdGxlPSJJbmZyYXN0cnVjdHVyZSAoSG9zdGluZywgQnVpbGQtVG9vbHMsIGV0YykiPvCfmoc8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FTYXZpbzYyOSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2lzaGFhbjgxMiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MDE5MDUzMz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iSXNoYWFuIFNoYWgiLz48YnIgLz48c3ViPjxiPklzaGFhbiBTaGFoPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aXNoYWFuODEyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9TaHJleWFzMDQxMCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MDc5NTg2Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2hyZXlhczA0MTAiLz48YnIgLz48c3ViPjxiPlNocmV5YXMwNDEwPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2hyZXlhczA0MTAiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9iZWt1LWVwaXRvbWUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE1MTUxNTEzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJiZWt1LWVwaXRvbWUiLz48YnIgLz48c3ViPjxiPmJla3UtZXBpdG9tZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWJla3UtZXBpdG9tZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FiZWt1LWVwaXRvbWUiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9YmVrdS1lcGl0b21lIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zd29yZG1hc3RlcjJrIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzMzNTQwMTY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ikpvc2h1YSBNaWNoYWVsIERhbHkiLz48YnIgLz48c3ViPjxiPkpvc2h1YSBNaWNoYWVsIERhbHk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0Fzd29yZG1hc3RlcjJrIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGxraiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNDMwNTk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRhbmllbCBLSiIvPjxiciAvPjxzdWI+PGI+RGFuaWVsIEtKPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGxraiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1kbGtqIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtZGxraiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBZGxraiIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2NvZGV5dC5jb20vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzczMDMzNTExP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJCaGF2aWsgQWdhcndhbCIvPjxiciAvPjxzdWI+PGI+QmhhdmlrIEFnYXJ3YWw8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNkZXNpZ24tQmhhdmlrLWFnIiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2thdXNoaWstcmlzaGkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTI0OTg2MTc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlJpc2hpIi8+PGJyIC8+PHN1Yj48Yj5SaXNoaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWthdXNoaWstcmlzaGkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZGVzaWduLWthdXNoaWstcmlzaGkiIHRpdGxlPSJEZXNpZ24iPvCfjqg8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3JvaGl0aGJvcHBleS5uZXRsaWZ5LmFwcCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MzUzODk3ND92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iUm9oaXRoIEJvcHBleSIvPjxiciAvPjxzdWI+PGI+Um9oaXRoIEJvcHBleTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVJvaGl0aEJvcHBleSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNkZXNpZ24tUm9oaXRoQm9wcGV5IiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL2FzaGlzaHBhZGh5LmxpdmUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTAwNDg0NDAxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBc2hpc2ggUGFkaHkiLz48YnIgLz48c3ViPjxiPkFzaGlzaCBQYWRoeTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVNodXJ0dS1nYWwiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2h1cnR1LWdhbCIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNpbmZyYS1TaHVydHUtZ2FsIiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9qZmNvdGUuZ2l0aHViLmlvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0MzM2OTAwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKZWFuLUZyYW7Dp29pcyBDw7R0w6kiLz48YnIgLz48c3ViPjxiPkplYW4tRnJhbsOnb2lzIEPDtHTDqTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUpGQ290ZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1KRkNvdGUiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1KRkNvdGUiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUpGQ290ZSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vU3VtYW50eEQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjU4MTA0MjQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlN1bWFudC54RCIvPjxiciAvPjxzdWI+PGI+U3VtYW50LnhEPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U3VtYW50eEQiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjaW5mcmEtU3VtYW50eEQiIHRpdGxlPSJJbmZyYXN0cnVjdHVyZSAoSG9zdGluZywgQnVpbGQtVG9vbHMsIGV0YykiPvCfmoc8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1TdW1hbnR4RCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXJ5YW5hczE1OSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTQzMzA5MzE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFyeWFuIFNpbmdoIi8+PGJyIC8+PHN1Yj48Yj5BcnlhbiBTaW5naDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFyeWFuYXMxNTkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL21hcmt1cy5wb2Vyc2Noa2UubnJ3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyMjIzNzc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1hcmt1cyBQb2Vyc2Noa2UiLz48YnIgLz48c3ViPjxiPk1hcmt1cyBQb2Vyc2Noa2U8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYXJrdXNwb2Vyc2Noa2UiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFya3VzcG9lcnNjaGtlIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtbWFya3VzcG9lcnNjaGtlIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYXJrdXNwb2Vyc2Noa2UiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2phbWVzbW9leSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80NTc0NzI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkphbWVzIE1vZXkiLz48YnIgLz48c3ViPjxiPkphbWVzIE1vZXk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW1lc21vZXkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9amFtZXNtb2V5IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90b213b2xhbnNraSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82ODA4NTY1Mz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0idG9td29sYW5za2kiLz48YnIgLz48c3ViPjxiPnRvbXdvbGFuc2tpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBdG9td29sYW5za2kiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Lc2lzYSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MzQwNDc3MT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iS3Jpc3R1cGFzIi8+PGJyIC8+PHN1Yj48Yj5LcmlzdHVwYXM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Lc2lzYSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0RldmFuc2gtQmhhdHQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTQ3MzIwNzk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRldmFuc2gtQmhhdHQiLz48YnIgLz48c3ViPjxiPkRldmFuc2gtQmhhdHQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1EZXZhbnNoLUJoYXR0IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2luZnJhLURldmFuc2gtQmhhdHQiIHRpdGxlPSJJbmZyYXN0cnVjdHVyZSAoSG9zdGluZywgQnVpbGQtVG9vbHMsIGV0YykiPvCfmoc8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcGlwbGl5YSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NjE4NjE0Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQW5zaCBQYW5jaG9saSIvPjxiciAvPjxzdWI+PGI+QW5zaCBQYW5jaG9saTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXBpcGxpeWEiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1F5cG9sMzQyIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3NDk3MDA3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJNYWVnaHQgTG9hbiIvPjxiciAvPjxzdWI+PGI+TWFlZ2h0IExvYW48L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ReXBvbDM0MiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ReXBvbDM0MiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vcHJpbmNlcmFqcG9vdC5jb20iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDQ1ODU0NTI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlByaW5jZSBSYWpwb290Ii8+PGJyIC8+PHN1Yj48Yj5QcmluY2UgUmFqcG9vdDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXByaW5jZXJhanBvb3QyMCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaGFyc2hpdC1zZW5wYWkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTMwNzUwNjg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImhhcnNoaXQgbWlzaHJhICIvPjxiciAvPjxzdWI+PGI+aGFyc2hpdCBtaXNocmEgPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aGFyc2hpdC1zZW5wYWkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1BldGVBdWRpbmF0ZSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85OTI3NDg3ND92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iUGV0ZUF1ZGluYXRlIi8+PGJyIC8+PHN1Yj48Yj5QZXRlQXVkaW5hdGU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1QZXRlQXVkaW5hdGUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2phbm8tcGV0cmFzIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNDc4NDg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Imphbm8tcGV0cmFzIi8+PGJyIC8+PHN1Yj48Yj5qYW5vLXBldHJhczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWphbm8tcGV0cmFzIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWphbm8tcGV0cmFzIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWphbm8tcGV0cmFzIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbmlsa2FudGg5ODciPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTI0MTM1ODE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik5pbGthbnRoIFBhcm1hciIvPjxiciAvPjxzdWI+PGI+Tmlsa2FudGggUGFybWFyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bmlsa2FudGg5ODciIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bmlsa2FudGg5ODciIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1uaWxrYW50aDk4NyIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bmlsa2FudGg5ODciIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9qYWlzYXJpdGEudmVyY2VsLmFwcC8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDM2MzkzNDE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFzaG1pdCBKYWlTYXJpdGEgR3VwdGEiLz48YnIgLz48c3ViPjxiPkFzaG1pdCBKYWlTYXJpdGEgR3VwdGE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1kZXZpbGtpbGxlci1hZyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNkZXNpZ24tZGV2aWxraWxsZXItYWciIHRpdGxlPSJEZXNpZ24iPvCfjqg8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1kZXZpbGtpbGxlci1hZyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1kZXZpbGtpbGxlci1hZyIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGV2aWxraWxsZXItYWciIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBZGV2aWxraWxsZXItYWciIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL2hhcnNoaWwucHJvc2Uuc2giPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzkzNjc4ODM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkhhcnNoaWwgSmFuaSIvPjxiciAvPjxzdWI+PGI+SGFyc2hpbCBKYW5pPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9SGFyc2hpbC1KYW5pIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUhhcnNoaWwtSmFuaSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL21pbnR1LXBvcnRmb2xpby5uZXRsaWZ5LmFwcC8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTI3OTI1NDY1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJNaW50dSBHb2dvaSIvPjxiciAvPjxzdWI+PGI+TWludHUgR29nb2k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1NaW4yd2hvIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kZXZhbnNoLW0xMiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NjE5NTE2Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRGV2YW5zaCBNYWhhbnQiLz48YnIgLz48c3ViPjxiPkRldmFuc2ggTWFoYW50PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGV2YW5zaC1tMTIiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29mZmljaWFsYXNpc2hrdW1hciI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84Nzg3NDc3NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQXNpc2ggS3VtYXIiLz48YnIgLz48c3ViPjxiPkFzaXNoIEt1bWFyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9b2ZmaWNpYWxhc2lzaGt1bWFyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbmt1cjA5MDQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTgzNDY4OTY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFua3VyIFNpbmdoIi8+PGJyIC8+PHN1Yj48Yj5Bbmt1ciBTaW5naDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFua3VyMDkwNCIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1Jvd2xhbmRCYW5rcyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85OTYyNTUxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJSb3dsYW5kQmFua3MiLz48YnIgLz48c3ViPjxiPlJvd2xhbmRCYW5rczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVJvd2xhbmRCYW5rcyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Sb3dsYW5kQmFua3MiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBUm93bGFuZEJhbmtzIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL21vcml0emthbHdhLmRldi8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjI4NDI2NTQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1vcml0eiBLYWx3YSIvPjxiciAvPjxzdWI+PGI+TW9yaXR6IEthbHdhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bW9yaXR6a2Fsd2EiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bW9yaXR6a2Fsd2EiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBbW9yaXR6a2Fsd2EiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW1vcml0emthbHdhIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ha2tzaGl0Z3VwdGEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTY5OTE3ODU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFrc2hpdCBHdXB0YSIvPjxiciAvPjxzdWI+PGI+QWtzaGl0IEd1cHRhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9YWtrc2hpdGd1cHRhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQWFra3NoaXRndXB0YSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1ha2tzaGl0Z3VwdGEiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFra3NoaXRndXB0YSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ha2tzaGl0Z3VwdGEiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0F0aHVsMDQ5MSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82NTY2NDE4NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQXRodWwgVHVsYXNpZGFzYW4iLz48YnIgLz48c3ViPjxiPkF0aHVsIFR1bGFzaWRhc2FuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9QXRodWwwNDkxIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtQXRodWwwNDkxIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1BdGh1bDA0OTEiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9QXRodWwwNDkxIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Tb3V2aWtucyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MTc4MTQzOD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ic291dmlrIi8+PGJyIC8+PHN1Yj48Yj5zb3V2aWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Tb3V2aWtucyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Tb3V2aWtucyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLVNvdXZpa25zIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Tb3V2aWtucyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTG91aXMtUGhpbGlwcGVHZW50aWxlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzNDI2OTQ2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJMb3Vpcy1QaGlsaXBwZUdlbnRpbGUiLz48YnIgLz48c3ViPjxiPkxvdWlzLVBoaWxpcHBlR2VudGlsZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUxvdWlzLVBoaWxpcHBlR2VudGlsZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Mb3Vpcy1QaGlsaXBwZUdlbnRpbGUiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9TG91aXMtUGhpbGlwcGVHZW50aWxlIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQUxvdWlzLVBoaWxpcHBlR2VudGlsZSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0FraGlsSjMyMSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85ODUwODM3ND92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQWtoaWwgSmFtd2FsIi8+PGJyIC8+PHN1Yj48Yj5Ba2hpbCBKYW13YWw8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Ba2hpbEozMjEiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9QWtoaWxKMzIxIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWhlbSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjMyODM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFuZGVycyBIZWxsZXJ1cCBNYWRzZW4iLz48YnIgLz48c3ViPjxiPkFuZGVycyBIZWxsZXJ1cCBNYWRzZW48L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1haGVtIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFoZW0iIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBYWhlbSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JxdWluaW8xQSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81ODMyMjkxMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0icnF1aW5pbzFBIi8+PGJyIC8+PHN1Yj48Yj5ycXVpbmlvMUE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ycXVpbmlvMUEiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZXhhbXBsZS1ycXVpbmlvMUEiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9naXRhbmtpdDciPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzQ0NDE5MzY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImdpdGFua2l0NyIvPjxiciAvPjxzdWI+PGI+Z2l0YW5raXQ3PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9Z2l0YW5raXQ3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qYW5uZS1zbGFtY29yZSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTI4Njc4NDc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ikphbm5lIEh1c2JlcmciLz48YnIgLz48c3ViPjxiPkphbm5lIEh1c2Jlcmc8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5uZS1zbGFtY29yZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5uZS1zbGFtY29yZSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FqYW5uZS1zbGFtY29yZSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2JvcnJ1bGwiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTI3NTQwMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYm9ycnVsbCIvPjxiciAvPjxzdWI+PGI+Ym9ycnVsbDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWJvcnJ1bGwiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9Ym9ycnVsbCIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vd3d3Lnlva2VwbGF0Zm9ybS5jb20iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjEwNjE3OD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iS2FtaWwgWnV6ZGEiLz48YnIgLz48c3ViPjxiPkthbWlsIFp1emRhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9a2FtYXoiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2plc3BpdGFlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIzMDQxMTQ2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJqZXNwaXRhZSIvPjxiciAvPjxzdWI+PGI+amVzcGl0YWU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qZXNwaXRhZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qZXNwaXRhZSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FqZXNwaXRhZSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vcGlrZS5naXRodWIuaW8vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzNDk0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBeGVsIEhlY2h0Ii8+PGJyIC8+PHN1Yj48Yj5BeGVsIEhlY2h0PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UGlrZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1QaWtlIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90b21kZXZyb29tZW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDYzNzk4Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iVG9tIGRlIFZyb29tZW4iLz48YnIgLz48c3ViPjxiPlRvbSBkZSBWcm9vbWVuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9dG9tZGV2cm9vbWVuIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtdG9tZGV2cm9vbWVuIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj10b21kZXZyb29tZW4iIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9dG9tZGV2cm9vbWVuIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKPCEtLSBtYXJrZG93bmxpbnQtcmVzdG9yZSAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtZW5kIC0tPgoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6RU5EIC0tPgoKVGhpcyBwcm9qZWN0IGZvbGxvd3MgdGhlIFthbGwtY29udHJpYnV0b3JzXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzKSBzcGVjaWZpY2F0aW9uLiBDb250cmlidXRpb25zIG9mIGFueSBraW5kIGFyZSB3ZWxjb21lIQo= readmeEtag: '"5ee8422eb1c9400c1f231ee81532fc3d803726bc"' readmeLastModified: Tue, 13 Aug 2024 09:27:56 GMT repositoryId: 331620831 description: >- A library for generating typed models based on inputs such as AsyncAPI, OpenAPI, and JSON Schema documents with high customization created: '2021-01-21T12:27:51Z' updated: '2024-09-04T02:23:30Z' language: TypeScript archived: false stars: 295 watchers: 7 forks: 170 owner: asyncapi logo: https://avatars.githubusercontent.com/u/16401334?v=4 license: Apache-2.0 repoEtag: '"d3fa58a2a9e7be8844c86b00fd9338bb712e2ff3fd57a1c846a72bb0d4e2b3e1"' repoLastModified: Wed, 04 Sep 2024 02:23:30 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/mermade/openapi-codegen v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJLUNvZGVHZW4KClshW0J1aWxkIHN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL01lcm1hZGUvb3BlbmFwaS1jb2RlZ2VuLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL01lcm1hZGUvb3BlbmFwaS1jb2RlZ2VuKQoKTm9kZS5qcy1iYXNlZCBjb2RlZ2VuIGZvciBPcGVuQVBJIGRvY3VtZW50cy4gVGhpcyBwcm9qZWN0IHdhcyBpbml0aWFsbHkgYSAyNC1ob3VyIGhhY2thdGhvbi4gVGhlIGxvY2FsIG1vZGVsIGFkYXB0b3IgY29kZSBpcyBlbnRpcmVseSBvcmlnaW5hbCBhbmQgaGFzIGJlZW4gcmV2ZXJzZS1lbmdpbmVlcmVkIGZyb20gdGhlIGV4aXN0aW5nIGRvY3VtZW50YXRpb24gYW5kIHRlbXBsYXRlIHVzYWdlLgoKKipXb3JrIGluIHByb2dyZXNzKioKClN1cHBvcnRzIE9wZW5BUEkgMy4wLnggbmF0aXZlbHksIGFuZCBTd2FnZ2VyL09wZW5BUEkgMS4yIGFuZCAyLjAgYnkgaW50ZXJuYWwgY29udmVyc2lvbi4gTm9kZS5qcyBMVFMgdmVyc2lvbnMgYXJlIHN1cHBvcnRlZC4KCiMjIFVzYWdlCgojIyMgSW5zdGFsbGluZwoKYG5wbSBpIC1nIG9wZW5hcGktY29kZWdlbmAKCm9yCgoqIGNsb25lIHRoZSByZXBvc2l0b3J5LCBhbmQKKiBgbnBtIGlgCgpvcgoKYG5weCAtcCBvcGVuYXBpLWNvZGVnZW4gY2cgLi4uYAoKIyMjIENMSQoKYGBgCmNnIFtvcHRpb25zXSB7W3BhdGhdY29uZmlnTmFtZX0ge29wZW5hcGktZGVmaW5pdGlvbn0KCk9wdGlvbnM6CiAgLS1oZWxwICAgICAgICAgICBTaG93IGhlbHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dCiAgLS12ZXJzaW9uICAgICAgICBTaG93IHZlcnNpb24gbnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dCiAgLS1maWx0ZXIgICAgICAgICBGaWx0ZXIgdGVybSB0byB1c2Ugd2l0aCAtLWxpc3QgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddCiAgLS1saXN0ICAgICAgICAgICBMaXN0IGF2YWlsYWJsZSB0ZW1wbGF0ZXMgZm9yIHByb3ZpZGVyIChvZyBvciBzYykgICAgIFtzdHJpbmddCiAgLWQsIC0tZGVidWcgICAgICBUdXJuIG9uIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpbiB0aGUgbW9kZWwgICAgICAgICAgW2Jvb2xlYW5dCiAgLWYsIC0tZmxhdCAgICAgICBEbyBub3QgaW5jbHVkZSBjb25maWctbmFtZSBpbiBvdXRwdXQgZGlyZWN0b3J5IHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXQogIC1sLCAtLWxpbnQgICAgICAgTGludCBpbnB1dCBkZWZpbml0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXQogIC1vLCAtLW91dHB1dCAgICAgU3BlY2lmeSBvdXRwdXQgZGlyZWN0b3J5ICAgICAgICAgW3N0cmluZ10gW2RlZmF1bHQ6ICIuL291dC8iXQogIC1zLCAtLXN0b29scyAgICAgVXNlIHN3YWdnZXItdG9vbHMgdG8gdmFsaWRhdGUgT3BlbkFQSSAyLjAgZGVmaW5pdGlvbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAtdCwgLS10ZW1wbGF0ZXMgIFNwZWNpZnkgdGVtcGxhdGVzIGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10KICAtdiwgLS12ZXJib3NlICAgIEluY3JlYXNlIHZlcmJvc2l0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAteiwgLS16aXAgICAgICAgIENyZWF0ZSBhIC56aXAgZmlsZSBpbnN0ZWFkIG9mIGluZGl2aWR1YWwgZmlsZXMgICAgICBbYm9vbGVhbl0KYGBgCgplLmcuCgpgYGAKbm9kZSBjZyAtLXZlcmJvc2Ugbm9kZWpzIGRlZnMvZ2VuZXJhdG9yLnlhbWwKYGBgCgpJbiB0aGlzIGNhc2UsIHRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIGAub3V0L25vZGVqc2AgZGlyZWN0b3J5LgoKWW91IGNhbiBhbHNvIGxvYWQgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbiBmcm9tIGEgVVJMLgoKIyMjIEFQSQoKYGBgamF2YXNjcmlwdApjb25zdCByZW5kZXJlciA9IHJlcXVpcmUoJ29wZW5hcGktY29kZWdlbicpOwovLyBsb2FkIGEgY29uZmlnIGFuZCBhIGRlZmluaXRpb24KcmVuZGVyZXIubWFpbihkZWZpbml0aW9uLGNvbmZpZyxjb25maWdOYW1lKTsKYGBgCgojIyBUZW1wbGF0ZXMKClRoZSBsb2NhbCB0ZW1wbGF0ZXMgd2VyZSB0YWtlbiBkaXJlY3RseSBmcm9tIGBzd2FnZ2VyLWNvZGVnZW5gLiBUaGlzIHByb2plY3QgaXMgYWxzbyBsaWNlbnNlZCB1bmRlciBbQXBhY2hlLTIuMF0oTElDRU5TRSkgZm9yIHRoaXMgcmVhc29uLiBHZW5lcmF0ZWQgY29kZSBpcyBleHBsaWNpdGx5IGNvdmVyZWQgYnkgdGhlIFtVbmxpY2Vuc2VdKHRlbXBsYXRlcy9fY29tbW9uL1VOTElDRU5TRSkuIENvZGUgdG8gZG93bmNvbnZlcnQgT3BlbkFQSSAzLjAgZGVmaW5pdGlvbnMgaXMgdGFrZW4gZnJvbSBbQW5ndWxhci1Td2FnZ2VyLVVJXShodHRwczovL2dpdGh1Yi5jb20vT3JhbmdlLU9wZW5Tb3VyY2UvYW5ndWxhci1zd2FnZ2VyLXVpKSBhbmQgaXMgTUlUIGxpY2Vuc2VkLgoKWW91IGNhbiBhbHNvIHVzZSB0aGUgbGF0ZXN0IG9ubGluZSB0ZW1wbGF0ZXMgZnJvbSB0d28gcHJvdmlkZXJzOiBgb2dgIChbb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpKSBhbmQgYHNjYCAoW3N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikpLiBUaGUgYC0tbGlzdGAgYW5kIGAtLWZpbHRlcmAgb3B0aW9ucyBhbGxvdyB5b3UgdG8gc2VlIHdoaWNoIHRlbXBsYXRlcyBhcmUgYXZhaWxhYmxlLiBOb3RlIHRoYXQgdXNpbmcgdGhlIG9ubGluZSB0ZW1wbGF0ZXMgaW52b2x2ZXMgc2VuZGluZyB5b3VyIEFQSSBkZWZpbml0aW9uIHRvIGEgcmVtb3RlIHNlcnZlci4KCiMjIyBDb250cmlidXRvcnMKClNlZSBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbiN0ZW1wbGF0ZS1jcmVhdG9yKSBmb3IgYSBwYXJ0aWFsIGxpc3Qgb2YgdGVtcGxhdGUgY29udHJpYnV0b3JzLgoKIyMjIFN0YXR1cyBvZiB0aGUgdGVtcGxhdGUgY29uZmlndXJhdGlvbnMKClRoZSBsb2NhbCB0ZW1wbGF0ZXMgd2l0aCBhIHN0YXR1cyBoYXZlIGEgd29ya2luZyAoaWYgbm90IG5lY2Vzc2FyaWx5IHRlc3RlZCkgY29uZmlndXJhdGlvbiBpbiB0aGUgKipjb25maWdzKiogZGlyZWN0b3J5LiBDb250cmlidXRpb25zIGFyZSB3ZWxjb21lZCBmcm9tIHRoZSBjb21tdW5pdHkgb2YgbmV3IGFuZCB1cGRhdGVkIGNvbmZpZ3VyYXRpb25zIGFuZCB0ZW1wbGF0ZSB1cGRhdGVzLgoKPGRldGFpbHM+CjxzdW1tYXJ5PkNsaWNrIGhlcmUgdG8gZXhwYW5kLi4uPC9zdW1tYXJ5PgoKfFRlbXBsYXRlfFR5cGV8U3RhdHVzfFJFQURNRXxBdXRob3JzIChUT0RPKXxDb25maWcgTWFpbnRhaW5lcnwKfC0tLXwtLS18LS0tfC0tLXwtLS18LS0tfAp8KipcX2NvbW1vbioqfG1ldGF8ICpjb250YWlucyBBcGFjaGUtMi4wIGFuZCBVbmxpY2Vuc2UgbGljZW5zZXMqfHwKfCoqQWRhKip8Y2xpZW50fCoqVW50ZXN0ZWQqKgp8YWtrYS1zY2FsYXx8CnxhbmRyb2lkfHwKfCoqYXBhY2hlMioqfGNvbmZpZ3VyYXRpb258KipuZWVkcyB3b3JrKip8fAp8YXBleHx8Cnxhc3BuZXRjb3JlfHwKfCoqYmFzaCoqfGNsaWVudHwqKlN5bnRheCBvaywgbmVlZHMgdGVzdGluZyoqfHxAYmtyeXphfEBNaWtlUmFscGhzb24KfCoqY2xvanVyZSoqfGNsaWVudHwqKlVudGVzdGVkKip8CnwqKmNvZGVnZW4qKnxtZXRhfCoqRGVtbyBvbmx5Kip8fHxATWlrZVJhbHBoc29uCnwqKmNvbmZsdWVuY2VXaWtpRG9jcyoqfGRvY3VtZW50YXRpb258KipUZXN0ZWQqKiB3aXRoIERvY2tlciBbc2VydmVyXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvYXRsYXNzaWFuL2NvbmZsdWVuY2Utc2VydmVyLyl8fAp8Y3BwcmVzdHx8Cnxjc2hhcnB8fAp8Kipjc2hhcnAtZG90bmV0MioqfGNsaWVudHwqKlVudGVzdGVkKip8fAp8ZGFydHx8CnwqKmRlYnVnKip8bWV0YXwqdXNlZCBmb3IgZHVtcGluZyB0aGUgbW9kZWwgc3RhdGUqfHxATWVybWFkZXxATWlrZVJhbHBoc29uCnxFaWZmZWx8fAp8ZWxpeGlyfHwKfCoqZXJsYW5nLWNsaWVudCoqfGNsaWVudHwqKlVudGVzdGVkKip8fAp8ZXJsYW5nLXNlcnZlcnxzZXJ2ZXJ8CnxmaW5jaHx8CnxmbGFzaHx8CnwqKmZsYXNrQ29ubmV4aW9uKip8c2VydmVyfCoqTmVlZHMgdGVzdGluZyoqfHwKfCoqZ28qKnxjbGllbnR8KipCdWlsZHMsIG5lZWRzIHRlc3RpbmcqKnx8CnwqKmdvLXNlcnZlcioqfHNlcnZlcnwqKkJ1aWxkcyBhbmQgcnVucyoqfHwKfCoqR3Jvb3Z5Kip8P3wqKnVudGVzdGVkKip8fAp8aGFza2VsbC1odHRwLWNsaWVudHxjbGllbnR8fHx8CnwqKmhhc2tlbGwtc2VydmFudCoqfHNlcnZlcnwqKlVudGVzdGVkKip8fAp8KipodG1sRG9jcyoqfGRvY3VtZW50YXRpb258KkFwcGVhcnMgdG8gd29yayp8fAp8KipodG1sRG9jczIqKnxkb2N1bWVudGF0aW9ufCpBcHBlYXJzIHRvIHdvcmssIG5vIGNvbnNvbGUgZXJyb3JzIGxvZ2dlZCp8fAp8SmF2YXx8CnxKYXZhSW5mbGVjdG9yfHwKfEphdmFKYXhSU3x8CnxKYXZhUGxheUZyYW1ld29ya3x8CnwqKkphdmFzY3JpcHQqKnxjbGllbnR8KipVbnRlc3RlZCoqfHwKfCoqSmF2YXNjcmlwdC1DbG9zdXJlLUFuZ3VsYXIqKnxjbGllbnR8KipVbnRlc3RlZCoqCnxKYXZhU3ByaW5nfHwKfEphdmFWZXJ0WFNlcnZlcnx8CnwqKkpNZXRlcioqfG1ldGF8KipVbnRlc3RlZCoqfHwKfGtvdGxpbi1jbGllbnR8fAp8KipsdWEqKnxjbGllbnR8KipDb21waWxlcyBPSyoqfAp8bHVtZW58fAp8TVNGNEp8fAp8bmFuY3lmeHx8CnwqKm5vZGVqcyoqfHNlcnZlcnwqKnRlc3RlZCoqIDp3aGl0ZV9jaGVja19tYXJrOnx8QGpmaWFsYXxATWlrZVJhbHBoc29ufAp8b2JqY3x8CnwqKm9wZW5hcGkqKnxtZXRhfCpvdXRwdXRzIHRoZSBpbnB1dCBkZWZpbml0aW9uIChpbiBPcGVuQVBJIDMuMC54IGZvcm0pKiA6d2hpdGVfY2hlY2tfbWFyazp8fEBNZXJtYWRlfEBNaWtlUmFscGhzb24KfHBlcmx8fAp8cGhwfHwKfCoqcGhwLXNpbGV4Kip8P3wqKnVudGVzdGVkKip8fAp8cGhwLXN5bWZvbnl8fAp8cGlzdGFjaGUtc2VydmVyfHwKfHBvd2Vyc2hlbGx8fAp8KipweXRob24qKnxjbGllbnR8KipuZWVkcyB0ZXN0aW5nKip8fHxAbXBub3JkbGFuZAp8cXQ1Y3BwfHwKfHJ8fAp8cmFpbHM1fHwKfCoqcmVzdGJlZCoqfHNlcnZlcnwqKlVudGVzdGVkKip8fAp8cnVieXx8CnxydXN0fHwKfHJ1c3Qtc2VydmVyfHwKfHNjYWxhfHwKfHNjYWxhdHJhfHwKfHNjYWxhenxjbGllbnR8KipVbnRlc3RlZCoqfHwKfCoqc2luYXRyYSoqfHNlcnZlcnwqKlN5bnRheCBjaGVja3MgT0sqKnx8CnwqKnNsaW0qKnxzZXJ2ZXJ8KipVbnRlc3RlZCoqfHwKfCoqc3dhZ2dlcioqfG1ldGF8Km91dHB1dHMgdGhlIGlucHV0IGRlZmluaXRpb24gKGluIG9yaWdpbmFsIGZvcm0gaWYgT3BlbkFQSSAyLjApKiA6d2hpdGVfY2hlY2tfbWFyazp8fAp8Kipzd2FnZ2VyLXN0YXRpYyoqfGRvY3VtZW50YXRpb258Kip0ZXN0ZWQqKiAqdGVtcGxhdGUgbW9kaWZpZWQgdG8gaW5jbHVkZSBwYXJ0aWFscyp8fAp8c3dpZnR8fAp8c3dpZnQzfHwKfHN3aWZ0NHx8Cnx0aXplbnx8Cnx0eXBlc2NyaXB0LWFuZ3VsYXJ8fAp8dHlwZXNjcmlwdC1hbmd1bGFyanN8fAp8Kip0eXBlc2NyaXB0LWF4aW9zKip8Y2xpZW50fCoqdGVzdGVkKip8fGphcmVkcGFsbWVyfAp8dHlwZXNjcmlwdC1hdXJlbGlhfHwKfCoqdHlwZXNjcmlwdC1mZXRjaCoqfGNsaWVudHwqKmNvbXBpbGVzIHdpdGggdHNjIG9rKip8fAp8dHlwZXNjcmlwdC1qcXVlcnl8fAp8Kip0eXBlc2NyaXB0LW5vZGUqKnxjbGllbnR8Kipjb21waWxlcyB3aXRoIHRzYyBvayoqfHwKfHVuZGVydG93fHwKfCoqdmFsaWRhdG9yKip8bWV0YXwqdXNlcyBzd2FnZ2VyMm9wZW5hcGkncyBPcGVuQVBJIDMuMCB2YWxpZGF0b3IgaW50ZXJuYWxseSogOndoaXRlX2NoZWNrX21hcms6fHwKfHplLXBofAoKIyMjIE5ldyBUZW1wbGF0ZXMKClRoZXNlIHRlbXBsYXRlcyBhcmUgZXhhbXBsZXMgb2YgaG93IGZlYXR1cmVzIG9mIE9wZW5BUEkgQ29kZWdlbiBtYXkgYmUgdXNlZCwgYW5kIGJlc3QtcHJhY3RpY2VzIGluIG5hbWluZyBtb2RlbCBwcm9wZXJ0aWVzLgoKfFRlbXBsYXRlfFR5cGV8U3RhdHVzfFJFQURNRXxBdXRob3JzfENvbmZpZyBNYWludGFpbmVyfAp8LS0tfC0tLXwtLS18LS0tfC0tLXwtLS18Cnx0ZXN0aW5nLmRyZWRkfHRlc3Rpbmd8KipJbiBwcm9ncmVzcyoqfFtSRUFETUVdKHRlbXBsYXRlcy90ZXN0aW5nLmRyZWRkL1JFQURNRS5tZC5tdXN0YWNoZSl8QE1lcm1hZGV8QE1pa2VSYWxwaHNvbnwKPC9kZXRhaWxzPgoKIyMgRG9jdW1lbnRhdGlvbgoKKiBbU2VlIGhlcmVdKGRvY3MvUkVBRE1FLm1kKSAtIGNvbnRyaWJ1dGlvbnMgd2VsY29tZQoK readmeEtag: '"ac4bc8812e541e929b3c48cb72ba2966a552431e"' readmeLastModified: Tue, 24 Aug 2021 07:54:24 GMT repositoryId: 110697603 description: OpenAPI 3.0 CodeGen plus Node.js minus the Java and emojis created: '2017-11-14T14:02:19Z' updated: '2024-06-08T04:11:17Z' language: JavaScript archived: false stars: 292 watchers: 12 forks: 46 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: Apache-2.0 repoEtag: '"5069909695beec363890c7fff1fe504471e3ce322faba5d289b38e7973e949e5"' repoLastModified: Sat, 08 Jun 2024 04:11:17 GMT foundInMaster: true category: Converters id: a5af66e79d95d6e1b9baa57668630864 - source: openapi3 tags repository: https://github.com/abersheeran/kui v3: true id: 74491e84e078ac54aa398a58a3cd5462 repositoryMetadata: base64Readme: >- IyBLdcOtCgpbIVtQeVBJIC0gUHl0aG9uIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL2t1aT9sYWJlbD1TdXBwb3J0JTIwUHl0aG9uJTIwVmVyc2lvbiZzdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9rdWkvKQoKQW4gZWFzeS10by11c2Ugd2ViIGZyYW1ld29yay4gQmFzZWQgb24gW2JhaXplXShodHRwczovL2JhaXplLmFiZXIuc2gpIGFuZCBbcHlkYW50aWNdKGh0dHBzOi8vZG9jcy5weWRhbnRpYy5kZXYvKS4KCiMjIEluc3RhbGwKCmBgYApwaXAgaW5zdGFsbCBrdWkKYGBgCg== readmeEtag: '"599cea9f9be5c132bbf0375e94034edd8053d815"' readmeLastModified: Wed, 31 Jul 2024 06:07:28 GMT repositoryId: 191898408 description: >- An easy-to-use web framework. Supports both WSGI and ASGI modes. Gevent or asyncio, this is the question. created: '2019-06-14T07:39:36Z' updated: '2024-09-04T08:08:33Z' language: Python archived: false stars: 287 watchers: 7 forks: 25 owner: abersheeran logo: https://avatars.githubusercontent.com/u/25364828?v=4 license: Apache-2.0 repoEtag: '"77dba0b2542002a62267e04fdc9a30eee9b4ead9a6a28ab0185d43fe1a3d9661"' repoLastModified: Wed, 04 Sep 2024 08:08:33 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/index-py/index.py - source: openapi3 tags repository: https://github.com/cloudflare/chanfana v3: true id: b38a05ac4acb961910fe6e4ad445ba6a repositoryMetadata: base64Readme: >- IyBjaGFuZmFuYQoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8ZW0+T3BlbkFQSSAzIGFuZCAzLjEgc2NoZW1hIGdlbmVyYXRvciBhbmQgdmFsaWRhdG9yIGZvciA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaG9ub2pzL2hvbm8iIHRhcmdldD0iX2JsYW5rIj5Ib25vPC9hPiwgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t3aGl0bGV5L2l0dHktcm91dGVyIiB0YXJnZXQ9Il9ibGFuayI+aXR0eS1yb3V0ZXI8L2E+IGFuZCBtb3JlITwvZW0+CjwvcD4KCi0tLQoKKipEb2N1bWVudGF0aW9uKio6IDxhIGhyZWY9Imh0dHBzOi8vY2hhbmZhbmEucGFnZXMuZGV2LyI+Y2hhbmZhbmEucGFnZXMuZGV2PC9hPgoKKipTb3VyY2UgQ29kZSoqOiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2xvdWRmbGFyZS9jaGFuZmFuYS8iPmdpdGh1Yi5jb20vY2xvdWRmbGFyZS9jaGFuZmFuYTwvYT4KCi0tLQoKW2NoYW5mYW5hXShodHRwczovL2dpdGh1Yi5jb20vY2xvdWRmbGFyZS9jaGFuZmFuYSkgKioocHJldmlvdXNseSBrbm93biBhcyBpdHR5LXJvdXRlci1vcGVuYXBpKSoqIGlzIGEgbGlicmFyeSB0aGF0IGFkZHMKT3BlbkFQSSBzY2hlbWEgZ2VuZXJhdGlvbiBhbmQgdmFsaWRhdGlvbiB0byBhbnkgcm91dGVyICg8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaG9ub2pzL2hvbm8iIHRhcmdldD0iX2JsYW5rIj4KSG9ubzwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rd2hpdGxleS9pdHR5LXJvdXRlciIgdGFyZ2V0PSJfYmxhbmsiPml0dHktcm91dGVyPC9hPiwgZXRjKSwgbWVhbnQgdG8gYmUgYQpwb3dlcmZ1bCBhbmQgbGlnaHR3ZWlnaHQKbGlicmFyeSBmb3IgQ2xvdWRmbGFyZSBXb3JrZXJzIGJ1dCBydW5zIG9uIGFueSBydW50aW1lIHN1cHBvcnRlZCBieSB0aGUgYmFzZSByb3V0ZXIuCgpUaGUga2V5IGZlYXR1cmVzIGFyZToKCi0gT3BlbkFQSSAzIGFuZCAzLjEgc2NoZW1hIGdlbmVyYXRvciBhbmQgdmFsaWRhdG9yCi0gUXVlcnksIFBhdGgsIEhlYWRlcnMgYW5kIEJvZHkgdHlwZXNjcmlwdCBpbmZlcmVuY2UKLSBGdWxseSB3cml0dGVuIGluIHR5cGVzY3JpcHQKLSBDbGFzcy1iYXNlZCBlbmRwb2ludHMKLSBFeHRlbmQgZXhpc3RpbmcgSG9ubywgaXR0eS1yb3V0ZXIsIGV0YyBhcHBsaWNhdGlvbiwgd2l0aG91dCB0b3VjaGluZyBvbGQgcm91dGVzCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCkdldCBzdGFydGVkIHdpdGggYSB0ZW1wbGF0ZSB3aXRoIHRoaXMgY29tbWFuZDoKCmBgYGJhc2gKbnBtIGNyZWF0ZSBjbG91ZGZsYXJlQGxhdGVzdCAtLSAtLXR5cGUgb3BlbmFwaQpgYGAKCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaApucG0gaSBjaGFuZmFuYSAtLXNhdmUKYGBgCgojIyBNaW5pbWFsIEhvbm8gRXhhbXBsZQoKYGBgdHMKaW1wb3J0IHsgZnJvbUhvbm8sIE9wZW5BUElSb3V0ZSB9IGZyb20gJ2NoYW5mYW5hJwppbXBvcnQgeyBIb25vIH0gZnJvbSAnaG9ubycKaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCcKCmV4cG9ydCBjbGFzcyBHZXRQYWdlTnVtYmVyIGV4dGVuZHMgT3BlbkFQSVJvdXRlIHsKICBzY2hlbWEgPSB7CiAgICByZXF1ZXN0OiB7CiAgICAgIHBhcmFtczogei5vYmplY3QoewogICAgICAgIGlkOiB6LnN0cmluZygpLm1pbigyKS5tYXgoMTApLAogICAgICB9KSwKICAgICAgcXVlcnk6IHoub2JqZWN0KHsKICAgICAgICBwYWdlOiB6Lm51bWJlcigpLmludCgpLm1pbigwKS5tYXgoMjApLAogICAgICB9KSwKICAgIH0sCiAgfQoKICBhc3luYyBoYW5kbGUoYykgewogICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZ2V0VmFsaWRhdGVkRGF0YTx0eXBlb2YgdGhpcy5zY2hlbWE+KCkKCiAgICByZXR1cm4gYy5qc29uKHsKICAgICAgaWQ6IGRhdGEucGFyYW1zLmlkLAogICAgICBwYWdlOiBkYXRhLnF1ZXJ5LnBhZ2UsCiAgICB9KQogIH0KfQoKLy8gU3RhciBhIEhvbm8gYXBwCmNvbnN0IGFwcCA9IG5ldyBIb25vKCkKCi8vIFNldHVwIE9wZW5BUEkgcmVnaXN0cnkKY29uc3Qgb3BlbmFwaSA9IGZyb21Ib25vKGFwcCkKCi8vIFJlZ2lzdGVyIE9wZW5BUEkgZW5kcG9pbnRzCm9wZW5hcGkuZ2V0KCcvZW50cnkvOmlkJywgR2V0UGFnZU51bWJlcikKCi8vIEV4cG9ydCB0aGUgSG9ubyBhcHAKZXhwb3J0IGRlZmF1bHQgYXBwCmBgYAoKIyMgRmVlZGJhY2sgYW5kIGNvbnRyaWJ1dGlvbnMKCltjaGFuZmFuYV0oaHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkZmxhcmUvY2hhbmZhbmEpIGFpbXMgdG8gYmUgYXQgdGhlIGNvcmUgb2YgbmV3IEFQSXMgYnVpbHQgdXNpbmcKV29ya2VycyBhbmQgZGVmaW5lIGEgcGF0dGVybiB0byBhbGxvdyBldmVyeW9uZSB0bwpoYXZlIGFuIE9wZW5BUEktY29tcGxpYW50IHNjaGVtYSB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IGltcGxlbWVudGF0aW9uIGRldGFpbHMgb3IgcmVpbnZlbnRpbmcgdGhlIHdoZWVsLgoKY2hhbmZhbmEgaXMgY29uc2lkZXJlZCBzdGFibGUgYW5kIHByb2R1Y3Rpb24gcmVhZHkgYW5kIGlzIGJlaW5nIHVzZWQgd2l0aAp0aGUgW1JhZGFyIDIuMCBwdWJsaWMgQVBJXShodHRwczovL2RldmVsb3BlcnMuY2xvdWRmbGFyZS5jb20vcmFkYXIvKS4KCkN1cnJlbnRseSB0aGlzIHBhY2thZ2UgaXMgbWFpbnRhaW5lZCBieSB0aGUgW0Nsb3VkZmxhcmUgUmFkYXIgVGVhbV0oaHR0cHM6Ly9yYWRhci5jbG91ZGZsYXJlLmNvbS8pIGFuZCBmZWF0dXJlcyBhcmUKcHJpb3JpdGl6ZWQgYmFzZWQgb24gdGhlIFJhZGFyIHJvYWRtYXAuCgpOb25ldGhlbGVzcyB5b3UgY2FuIHN0aWxsIG9wZW4gcHVsbCByZXF1ZXN0cyBvciBpc3N1ZXMgaW4gdGhpcyByZXBvc2l0b3J5IGFuZCB0aGV5IHdpbGwgZ2V0IHJldmlld2VkLgoKWW91IGNhbiBhbHNvIHRhbGsgdG8gdXMgaW4gdGhlIFtDbG91ZGZsYXJlIENvbW11bml0eV0oaHR0cHM6Ly9jb21tdW5pdHkuY2xvdWRmbGFyZS5jb20vKSBvcgp0aGUgW1JhZGFyIERpc2NvcmQgQ2hhbm5lbF0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9jaGFubmVscy81OTUzMTc5OTAxOTEzOTg5MzMvMTAzNTU1MzcwNzExNjQ3ODQ5NSkK readmeEtag: '"99e30ab6ed8266673ebb7f7723d889558e42713d"' readmeLastModified: Sat, 27 Jul 2024 14:13:41 GMT repositoryId: 563328514 description: >- OpenAPI 3 and 3.1 schema generator and validator for Hono, itty-router and more! created: '2022-11-08T11:43:41Z' updated: '2024-09-03T14:35:39Z' language: TypeScript archived: false stars: 287 watchers: 10 forks: 38 owner: cloudflare logo: https://avatars.githubusercontent.com/u/314135?v=4 license: MIT repoEtag: '"0a6cb3c0a0ea008c43497208a5be7b1545b0580a7abe9f319be7bc3bf3d2a1cd"' repoLastModified: Tue, 03 Sep 2024 14:35:39 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/cloudflare/itty-router-openapi - source: openapi3 tags repository: https://github.com/dymmond/esmerald v3: true id: 169c3df3856e6e7ff33974f7557ab872 repositoryMetadata: base64Readme: >- IyBFc21lcmFsZAoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9lc21lcmFsZC5kZXYiPjxpbWcgc3JjPSJodHRwczovL3Jlcy5jbG91ZGluYXJ5LmNvbS9keW1tb25kL2ltYWdlL3VwbG9hZC92MTY3MzYxOTM0Mi9lc21lcmFsZC9pbWcvbG9nby1ncl96MW90OG8ucG5nIiBhbHQ9J0VzbWVyYWxkJz48L2E+CjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGVtPvCfmoAgSGlnaGx5IHNjYWxhYmxlLCBwZXJmb3JtYW50LCBlYXN5IHRvIGxlYXJuLCBlYXN5IHRvIGNvZGUgYW5kIGZvciBldmVyeSBhcHBsaWNhdGlvbi4g8J+agDwvZW0+CjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZHltbW9uZC9lc21lcmFsZC93b3JrZmxvd3MvVGVzdCUyMFN1aXRlL2JhZGdlLnN2Zz9ldmVudD1wdXNoJmJyYW5jaD1tYWluIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL2R5bW1vbmQvZXNtZXJhbGQvd29ya2Zsb3dzL1Rlc3QlMjBTdWl0ZS9iYWRnZS5zdmc/ZXZlbnQ9cHVzaCZicmFuY2g9bWFpbiIgYWx0PSJUZXN0IFN1aXRlIj4KPC9hPgoKPGEgaHJlZj0iaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2VzbWVyYWxkIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvZXNtZXJhbGQ/Y29sb3I9JTIzMzREMDU4JmxhYmVsPXB5cGklMjBwYWNrYWdlIiBhbHQ9IlBhY2thZ2UgdmVyc2lvbiI+CjwvYT4KCjxhIGhyZWY9Imh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9lc21lcmFsZCIgdGFyZ2V0PSJfYmxhbmsiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL2VzbWVyYWxkLnN2Zz9jb2xvcj0lMjMzNEQwNTgiIGFsdD0iU3VwcG9ydGVkIFB5dGhvbiB2ZXJzaW9ucyI+CjwvYT4KPC9wPgoKLS0tCgoqKkRvY3VtZW50YXRpb24qKjogW2h0dHBzOi8vZXNtZXJhbGQuZGV2XShodHRwczovL3d3dy5lc21lcmFsZC5kZXYpIPCfk5oKCioqU291cmNlIENvZGUqKjogW2h0dHBzOi8vZ2l0aHViLmNvbS9keW1tb25kL2VzbWVyYWxkXShodHRwczovL2dpdGh1Yi5jb20vZHltbW9uZC9lc21lcmFsZCkKCioqVGhlIG9mZmljaWFsIHN1cHBvcnRlZCB2ZXJzaW9uIGlzIGFsd2F5cyB0aGUgbGF0ZXN0IHJlbGVhc2VkKiouCgotLS0KCkVzbWVyYWxkIGlzIGEgbW9kZXJuLCBwb3dlcmZ1bCwgZmxleGlibGUsIGhpZ2ggcGVyZm9ybWFudCwgd2ViIGZyYW1ld29yayBkZXNpZ25lZCB0byBidWlsZCBub3Qgb25seSBBUElzCmJ1dCBhbHNvIGZ1bGwgc2NhbGFibGUgYXBwbGljYXRpb25zIGZyb20gdGhlIHNtYWxsZXN0IHRvIGVudGVycHJpc2UgbGV2ZWwuCgpFc21lcmFsZCBpcyBkZXNpZ25lZCB0byBidWlsZCB3aXRoIHB5dGhvbiAzLjgrIGFuZCBiYXNlZCBvbiBzdGFuZGFyZCBweXRob24gdHlwZSBoaW50cy4gSW5pdGlhbGx5CmJ1aWx0IG9uIHRoZSB0b3Agb2YgW1N0YXJsZXR0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2VuY29kZS9zdGFybGV0dGUpIGFuZCBsYXRlciBvbiBtb3ZlZCB0byBbTGlseWFdKGh0dHBzOi8vbGlseWEuZGV2KSBhbmQgW1B5ZGFudGljXShodHRwczovL2dpdGh1Yi5jb20vc2FtdWVsY29sdmluL3B5ZGFudGljKS9bbXNnc3BlY10oaHR0cHM6Ly9qY3Jpc3RoYXJpZi5jb20vbXNnc3BlYy8pLgoKQ2hlY2sgb3V0IHRoZSBbRXNtZXJhbGQgZG9jdW1lbnRhdGlvbiDwn5OaXShodHRwczovL2VzbWVyYWxkLmRldikKCioqVGhlIG9mZmljaWFsIHN1cHBvcnRlZCB2ZXJzaW9uIGlzIGFsd2F5cyB0aGUgbGF0ZXN0IHJlbGVhc2VkKiouCgojIyBNb3RpdmF0aW9uCgpUaGVyZSBhcmUgZ3JlYXQgZnJhbWV3b3JrcyBvdXQgdGhlcmUgbGlrZSBGYXN0QVBJLCBGbGFtYSwgRmxhc2ssIERqYW5nby4uLiBBbGwgb2YgdGhlbSBzb2x2aW5nIG1ham9yaXR5Cm9mIHRoZSBjdXJyZW50IGRheS10by1kYXkgcHJvYmxlbXMgb2YgOTklIG9mIHRoZSBhcHBsaWNhdGlvbnMgYnV0IGxlYXZpbmcgdGhlIDElIHRoYXQgaXMgdXN1YWxseSBhcm91bmQgc3RydWN0dXJlCmFuZCBkZXNpZ24vYnVzaW5lc3Mgd2l0aG91dCB0byBtdWNoIHRvIGRvLgoKRXNtZXJhbGQgZ290IHRoZSBpbnNwaXJhdGlvbiBmcm9tIHRob3NlIGdyZWF0IGZyYW1ld29ya3Mgb3V0IHRoZXJlIGFuZCB3YXMgYnVpbHQgd2l0aCBhbGwgdGhlIGtub3duIGFtYXppbmcKZmVhdHVyZXMgYnV0IHdpdGggYnVzaW5lc3MgaW4gbWluZCBhcyB3ZWxsLiBTdGFybGl0ZSwgZm9yIGV4YW1wbGUsIGF0IHRoZSB2ZXJ5IGJlZ2lubmluZywgZ2F2ZSB0aGUgaW5zcGlyYXRpb24gZm9yIHRoZSB0cmFuc2Zvcm1lcnMgYW5kIGZvciB0aGUgU2lnbmF0dXJlIG1vZGVscywKc29tZXRoaW5nIHZlcnkgdXNlZnVsIHRoYXQgaGVscGVkIEVzbWVyYWxkIGludGVnZXJhdGluZyB3aXRoIHB5ZGFudGljLgpGYXN0QVBJIGdhdmUgdGhlIGluc3BpcmF0aW9uIGZvciBBUEkgZGVzaWduaW5nLCBEamFuZ28gZm9yIHRoZSBwZXJtaXNzaW9ucywgRmxhc2sgZm9yIHRoZSBzaW1wbGljaXR5LCBOZXN0SlMgZm9yIHRoZQpjb250cm9sbGVycyBhbmQgdGhlIGxpc3QgZ29lcyBvbi4KCkZvciBhIGpvYiB0byBiZSBkb25lIHByb3Blcmx5LCB1c3VhbGx5IGl0IGlzIG5ldmVyIGRvbmUgYWxvbmUgYW5kIHRoZXJlIGlzIGFsd2F5cyBhIGRyaXZlciBhbmQgaW5zcGlyYXRpb24gdG8gaXQuCgojIyBSZXF1aXJlbWVudHMKCiogcHl0aG9uIDMuOCsKCkVzbWVyYWxkIHdvdWxkbid0IGJlIHBvc3NpYmxlIHdpdGhvdXQgdHdvIHBpbGxhcnM6CgoqIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbHlhLmRldi8iIGNsYXNzPSJleHRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+TGlseWE8L2E+CiogPGEgaHJlZj0iaHR0cHM6Ly9weWRhbnRpYy1kb2NzLmhlbHBtYW51YWwuaW8vIiBjbGFzcz0iZXh0ZXJuYWwtbGluayIgdGFyZ2V0PSJfYmxhbmsiPlB5ZGFudGljPC9hPgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBzaGVsbAokIHBpcCBpbnN0YWxsIGVzbWVyYWxkCmBgYAoKQW4gQVNHSSBzZXJ2ZXIgaXMgYWxzbyBuZWVkZWQgdG8gcnVuIGluIHByb2R1Y3Rpb24sIHdlIHJlY29tbWVuZCBbVXZpY29ybl0oaHR0cHM6Ly93d3cudXZpY29ybi5vcmcpIGJ1dCBpdCBpcyBlbnRpcmVseQp1cCB0byB5b3UuCgpgYGBzaGVsbAokIHBpcCBpbnN0YWxsIHV2aWNvcm4KCmBgYAoKSWYgeW91IHdhbnQgaW5zdGFsbCBlc21lcmFsZCB3aXRoIHNwZWNpZmljczoKCioqU3VwcG9ydCBmb3IgdGVtcGxhdGUgc3lzdGVtIHN1Y2ggYXMgamluamEyIGFuZCBtYWtvKio6CgpgYGBzaGVsbAokIHBpcCBpbnN0YWxsIGVzbWVyYWxkW3RlbXBsYXRlc10KYGBgCgoqKlN1cHBvcnQgZm9yIHRoZSBpbnRlcm5hbCBzY2hlZHVsZXIqKjoKCmBgYHNoZWxsCiQgcGlwIGluc3RhbGwgZXNtZXJhbGRbc2NoZWR1bGVyc10KYGBgCgoqKlN1cHBvcnQgZm9yIHRoZSBqd3QgdXNlZCBpbnRlcm5hbGx5IGJ5IEVzbWVyYWxkKio6CgpgYGBzaGVsbAokIHBpcCBpbnN0YWxsIGVzbWVyYWxkW2p3dF0KYGBgCgoqKlN1cHBvcnQgZm9yIE9SSlNPTiBhbmQgVUpTT04qKjoKCmBgYHNoZWxsCiQgcGlwIGluc3RhbGwgZXNtZXJhbGRbZW5jb2RlcnNdCmBgYAoKKipJZiB5b3Ugd2FudCB0byB1c2UgdGhlIGVzbWVyYWxkIHRlc3RpbmcgY2xpZW50Kio6CgpgYGBzaGVsbAokIHBpcCBpbnN0YWxsIGVzbWVyYWxkW3Rlc3RdCmBgYAoKKipJZiB5b3Ugd2FudCB0byB1c2UgdGhlIGVzbWVyYWxkIHNoZWxsKio6CgpNb3JlIFtkZXRhaWxzXShodHRwczovL2VzbWVyYWxkLmRldi9kaXJlY3RpdmVzL3NoZWxsKSBhYm91dCB0aGlzIHRvcGljIFtpbiB0aGUgZG9jc10oaHR0cHM6Ly9lc21lcmFsZC5kZXYvZGlyZWN0aXZlcy9zaGVsbCkKCmBgYHNoZWxsCiQgcGlwIGluc3RhbGwgZXNtZXJhbGRbaXB5dGhvbl0gIyBkZWZhdWx0IHNoZWxsCiQgcGlwIGluc3RhbGwgZXNtZXJhbGRbcHRweXRob25dICMgcHRweXRob24gc2hlbGwKYGBgCgojIyMgU3RhcnQgYSBwcm9qZWN0IHVzaW5nIGRpcmVjdGl2ZXMKCiEhISBXYXJuaW5nCiAgICBUaGlzIGlzIGZvciBtb3JlIGFkdmFuY2VkIHVzZXJzIHRoYXQgYXJlIGFscmVhZHkgY29tZm9ydGFibGUgd2l0aCBFc21lcmFsZCAob3IgUHl0aG9uIGluIGdlbmVyYWwpCiAgICBvciBmZWVsIGxpa2UgaXQgaXMgbm90IGEgcHJvYmxlbSB1c2luZyB0aGVzZSBkaXJlY3RpdmVzLiBJZiB5b3UgZG8gbm90IGZlZWwgY29tZm9ydGFibGUgeWV0IHRvIHVzZSB0aGlzLAogICAgcGxlYXNlIGNvbnRpbnVlIHJlYWRpbmcgdGhlIGRvY3VtZW50YXRpb24gYW5kIGxlYXJuaW5nIG1vcmUgYWJvdXQgRXNtZXJhbGQuCgpJZiB5b3Ugd2lzaCB0byBzdGFydCBhbiBFc21lcmFsZCBwcm9qZWN0IHdpdGggYSBzaW1wbGUgc3VnZ2VzdGVkIHN0cnVjdHVyZS4KCmBgYHNoZWxsCmVzbWVyYWxkIGNyZWF0ZXByb2plY3QgPFlPVVItUFJPSkVDVC1OQU1FPiAtLXNpbXBsZQpgYGAKClRoaXMgd2lsbCBnZW5lcmF0ZSBhIHNjYWZmb2xkIGZvciB5b3VyIHByb2plY3Qgd2l0aCBzb21lIHByZS1kZWZpbmVkIGZpbGVzIGluIGEgc2ltcGxlIGZhc2hpb24gd2l0aCBhIHNpbXBsZSByZWFkeSB0bwpnbyBFc21lcmFsZCBhcHBsaWNhdGlvbi4KClRoaXMgd2lsbCBhbHNvIGdlbmVyYXRlIGEgZmlsZSBmb3IgdGhlIHRlc3RzIHVzaW5nIHRoZSBFc21lcmFsZFRlc3RDbGllbnQsIHNvIG1ha2Ugc3VyZSB5b3UgcnVuOgoKYGBgc2hlbGwKJCBwaXAgaW5zdGFsbCBlc21lcmFsZFt0ZXN0XQpgYGAKCk9yIHlvdSBjYW4gc2tpcCB0aGlzIHN0ZXAgaWYgeW91IGRvbid0IHdhbnQgdG8gdXNlIHRoZSBFc21lcmFsZFRlc3RDbGllbnQuCgpZb3UgY2FuIGZpbmQgW21vcmUgaW5mb3JtYXRpb25dKGh0dHBzOi8vZXNtZXJhbGQuZGV2L21hbmFnZW1lbnQvZGlyZWN0aXZlcykgYWJvdXQgdGhpcyBkaXJlY3RpdmUgYW5kIGhvdyB0bwp1c2UgaXQuCgojIyBLZXkgRmVhdHVyZXMKCiogKipGbHVpZCBhbmQgRmFzdCoqOiBUaGFua3MgdG8gU3RhcmxldHRlIGFuZCBQeWRhbnRpYy9tc2dzcGVjLgoqICoqRmFzdCB0byBkZXZlbG9wKio6IFRoYW5rcyB0byB0aGUgc2ltcGxpY2l0eSBvZiBkZXNpZ24sIHRoZSBkZXZlbG9wbWVudCB0aW1lcyBjYW4gYmUgcmVkdWNlZCBleHBvbmVudGlhbGx5LgoqICoqSW50dWl0aXZlKio6IElmIHlvdSBhcmUgdXNlZCB0byB0aGUgb3RoZXIgZnJhbWV3b3JrcywgRXNtZXJhbGQgaXMgYSBubyBicmFpbmVyIHRvIGRldmVsb3AuCiogKipFYXN5Kio6IERldmVsb3BlZCB3aXRoIGRlc2lnbiBpbiBtaW5kIGFuZCBlYXN5IGxlYXJuaW5nLgoqICoqU2hvcnQqKjogV2l0aCB0aGUgT09QIGF2YWlsYWJsZSBuYXRpdmVseSB0aGVyZSBpcyBubyBuZWVkIGZvciBjb2RlIGR1cGxpY2F0aW9uLiBTT0xJRC4KKiAqKlJlYWR5Kio6IEdldCB5b3VyIGFwcGxpY2F0aW9uIHVwIGFuZCBydW5uaW5nIHdpdGggcHJvZHVjdGlvbi1yZWFkeSBjb2RlLgoqICoqT09QIGFuZCBGdW5jdGlvbmFsKio6IERlc2lnbiBBUElzIGluIGFueSBkZXNpcmVkIHdheS4gT09QIG9yIEZ1bmN0aW9uYWwgaXMgYXZhaWxhYmxlLgoqICoqQXN5bmMgYW5kIFN5bmMqKjogRG8geW91IHByZWZlciBzeW5jIG9yIGFzeW5jPyBZb3UgY2FuIGhhdmUgYm90aC4KKiAqKk1pZGRsZXdhcmUqKjogQXBwbHkgbWlkZGxld2FyZXMgb24gdGhlIGFwcGxpY2F0aW9uIGxldmVsIG9yIEFQSSBsZXZlbC4KKiAqKkV4Y2VwdGlvbiBIYW5kbGVycyoqOiBBcHBseSBleGNlcHRpb24gaGFuZGxlcnMgb24gYW55IGRlc2lyZWQgbGV2ZWwuCiogKipQZXJtaXNzaW9ucyoqOiBBcHBseSBzcGVjaWZpYyBydWxlcyBhbmQgcGVybWlzc2lvbnMgb24gZWFjaCBBUEkuCiogKipJbnRlcmNlcHRvcnMqKjogSW50ZXJjZXB0IHJlcXVlc3RzIGFuZCBhZGQgbG9naWMgYmVmb3JlIHJlYWNoaW5nIHRoZSBlbmRwb2ludC4KKiAqKlBsdWdnYWJsZXMqKjogQ3JlYXRlIHBsdWdpbnMgZm9yIEVzbWVyYWxkIGFuZCBob29rIHRoZW0gaW50byBhbnkgYXBwbGljYXRpb24gYW5kL29yCmRpc3RyaWJ1dGUgdGhlbS4KKiAqKkRBTyBhbmQgQXN5bmNEQU8qKjogQXZvaWQgZGF0YWJhc2UgY2FsbHMgZGlyZWN0bHkgZnJvbSB0aGUgQVBJcy4gVXNlIGJ1c2luZXNzIG9iamVjdHMgaW5zdGVhZC4KKiAqKk9STSBTdXBwb3J0Kio6IE5hdGl2ZSBzdXBwb3J0IGZvciBbU2FmZmllcl1bc2FmZmllcl9vcm1dIGFuZCBbRWRneV1bZWRneV9vcm1dLgoqICoqT0RNIFN1cHBvcnQqKjogTmF0aXZlIHN1cHBvcnQgZm9yIFtNb25nb3pdW21vbmdvel9vZG1dLgoqICoqQVBJVmlldyoqOiBDbGFzcyBCYXNlZCBlbmRwb2ludHMgZm9yIHlvdXIgYmVsb3ZlZCBPT1AgZGVzaWduLgoqICoqSlNPTiBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbioqOiBCb3RoIFVKU09OIGFuZCBPUkpPTiBzdXBwb3J0LgoqICoqTGlmZXNwYW4qKjogU3VwcG9ydCBmb3IgdGhlIG5ld2x5IGxpZmVzcGFuIGFuZCBvbl9zdGFydC9vbl9zaHV0ZG93biBldmVudHMuCiogKipTY2hlZHVsZXIqKjogWWVzLCB0aGF0J3MgcmlnaHQsIGl0IGNvbWVzIHdpdGggYSBzY2hlZHVsZXIgZm9yIHRob3NlIGF1dG9tYXRlZCB0YXNrcy4KKiAqKkRlcGVuZGVuY3kgSW5qZWN0aW9uKio6IExpa2UgYW55IG90aGVyIGdyZWF0IGZyYW1ld29yayBvdXQgdGhlcmUuCiogKipTaW1wbGljaXR5IGZyb20gc2V0dGluZ3MqKjogWWVzLCB3ZSBoYXZlIGEgd2F5IHRvIG1ha2UgdGhlIGNvZGUgZXZlbiBjbGVhbmVyIGJ5IGludHJvZHVjaW5nIHNldHRpbmdzCmJhc2VkIHN5c3RlbXMuCiogKiptc2dzcGVjKiogLSBTdXBwb3J0IGZvciBgbXNnc3BlY2AuCgojIyBSZWxhdGlvbiB0byBTdGFybGV0dGUgYW5kIG90aGVyIGZyYW1ld29ya3MKCkVzbWVyYWxkIHVzZXMgU3RhcmxldHRlIHVuZGVyIHRoZSBob29kLiBUaGUgcmVhc29uIGJlaGluZCB0aGlzIGRlY2lzb24gY29tZXMgd2l0aCB0aGUgZmFjdCB0aGF0IHBlcmZvcm1hbmNlIGlzIHRoZXJlCmFuZCBubyBpc3N1ZXMgd2l0aCByb3V0aW5nLgoKT25jZSB0aGUgYXBwbGljYXRpb24gaXMgdXAsIGFsbCB0aGUgcm91dGVzIGFyZSBtb3VudGVkIGFuZCB0aGVyZWZvcmUgdGhlIHVybCBwYXRocyBhcmUgZGVmaW5lZC4KRXNtZXJhbGQgZW5jb3VyYWdlcyBzdGFuZGFyZCBwcmFjdGljZXMgYW5kIGRlc2lnbiBpbiBtaW5kIHdoaWNoIG1lYW5zIHRoYXQgYW55IGFwcGxpY2F0aW9uLCBiaWcgb3Igc21hbGwsCmN1c3RvbSBvciBlbnRlcnByaXNlLCBmaXRzIHdpdGhpbiBFc21lcmFsZCBlY29zeXN0ZW0gd2l0aG91dCBzY2FsYWJpbGl0eSBpc3N1ZXMuCgojIyBRdWlja3N0YXJ0CgpUbyBxdWlja2x5IHN0YXJ0IHdpdGggRXNtZXJhbGQsIHlvdSBjYW4ganVzdCBkbyB0aGlzLiBVc2luZyBgdXZpY29ybmAgYXMgZXhhbXBsZS4KCmBgYHB5dGhvbgojIS91c3IvYmluL2VudiBweXRob24KaW1wb3J0IHV2aWNvcm4KCmZyb20gZXNtZXJhbGQgaW1wb3J0IEVzbWVyYWxkLCBHYXRld2F5LCBKU09OUmVzcG9uc2UsIFJlcXVlc3QsIGdldAoKCkBnZXQoKQpkZWYgd2VsY29tZSgpIC0+IEpTT05SZXNwb25zZToKICAgIHJldHVybiBKU09OUmVzcG9uc2UoeyJtZXNzYWdlIjogIldlbGNvbWUgdG8gRXNtZXJhbGQifSkKCgpAZ2V0KCkKZGVmIHVzZXIodXNlcjogc3RyKSAtPiBKU09OUmVzcG9uc2U6CiAgICByZXR1cm4gSlNPTlJlc3BvbnNlKHsibWVzc2FnZSI6IGYiV2VsY29tZSB0byBFc21lcmFsZCwge3VzZXJ9In0pCgoKQGdldCgpCmRlZiB1c2VyX2luX3JlcXVlc3QocmVxdWVzdDogUmVxdWVzdCkgLT4gSlNPTlJlc3BvbnNlOgogICAgdXNlciA9IHJlcXVlc3QucGF0aF9wYXJhbXNbInVzZXIiXQogICAgcmV0dXJuIEpTT05SZXNwb25zZSh7Im1lc3NhZ2UiOiBmIldlbGNvbWUgdG8gRXNtZXJhbGQsIHt1c2VyfSJ9KQoKCmFwcCA9IEVzbWVyYWxkKAogICAgcm91dGVzPVsKICAgICAgICBHYXRld2F5KCIvZXNtZXJhbGQiLCBoYW5kbGVyPXdlbGNvbWUpLAogICAgICAgIEdhdGV3YXkoIi9lc21lcmFsZC97dXNlcn0iLCBoYW5kbGVyPXVzZXIpLAogICAgICAgIEdhdGV3YXkoIi9lc21lcmFsZC9pbi1yZXF1ZXN0L3t1c2VyfSIsIGhhbmRsZXI9dXNlcl9pbl9yZXF1ZXN0KSwKICAgIF0KKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1dmljb3JuLnJ1bihhcHAsIHBvcnQ9ODAwMCkKYGBgCgpUaGVuIHlvdSBjYW4gYWNjZXNzIHRoZSBlbmRwb2ludHMuCgojIyMgVXNpbmcgRXNtZXJhbGQgYXMgYSBkZWNvcmF0b3IKClRvIHF1aWNrbHkgc3RhcnQgd2l0aCBFc21lcmFsZCB5b3UgY2FuIGFsc28gdXNlIGl0IGFzIGRlY29yYXRvciwgeW91IGNhbiBqdXN0IGRvIHRoaXMuIFVzaW5nIGB1dmljb3JuYCBhcyBleGFtcGxlLgoKYGBgcHl0aG9uCiMhL3Vzci9iaW4vZW52IHB5dGhvbgppbXBvcnQgdXZpY29ybgoKZnJvbSBlc21lcmFsZCBpbXBvcnQgRXNtZXJhbGQsIEdhdGV3YXksIEpTT05SZXNwb25zZSwgUmVxdWVzdCwgZ2V0CgoKYXBwID0gRXNtZXJhbGQoKQoKCkBhcHAuZ2V0KCIvZXNtZXJhbGQiKQpkZWYgd2VsY29tZSgpIC0+IEpTT05SZXNwb25zZToKICAgIHJldHVybiBKU09OUmVzcG9uc2UoeyJtZXNzYWdlIjogIldlbGNvbWUgdG8gRXNtZXJhbGQifSkKCgpAYXBwLmdldCgiL2VzbWVyYWxkL3t1c2VyfSIpCmRlZiB1c2VyKHVzZXI6IHN0cikgLT4gSlNPTlJlc3BvbnNlOgogICAgcmV0dXJuIEpTT05SZXNwb25zZSh7Im1lc3NhZ2UiOiBmIldlbGNvbWUgdG8gRXNtZXJhbGQsIHt1c2VyfSJ9KQoKCkBhcHAuZ2V0KCIvZXNtZXJhbGQvaW4tcmVxdWVzdC97dXNlcn0iKQpkZWYgdXNlcl9pbl9yZXF1ZXN0KHJlcXVlc3Q6IFJlcXVlc3QpIC0+IEpTT05SZXNwb25zZToKICAgIHVzZXIgPSByZXF1ZXN0LnBhdGhfcGFyYW1zWyJ1c2VyIl0KICAgIHJldHVybiBKU09OUmVzcG9uc2UoeyJtZXNzYWdlIjogZiJXZWxjb21lIHRvIEVzbWVyYWxkLCB7dXNlcn0ifSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdXZpY29ybi5ydW4oYXBwLCBwb3J0PTgwMDApCmBgYAoKIyMgU2V0dGluZ3MKCkxpa2UgZXZlcnkgb3RoZXIgZnJhbWV3b3JrLCB3aGVuIHN0YXJ0aW5nIGFuIGFwcGxpY2F0aW9uLCBhIGxvdCBvZiBbc2V0dGluZ3NdKC4vYXBwbGljYXRpb24vc2V0dGluZ3MubWQpIGNhbi9uZWVkIHRvIGJlCnBhc3NlZCB0byB0aGUgbWFpbiBvYmplY3QgYW5kIHRoaXMgY2FuIGJlIHZlcnkgZGF1dGluZyBhbmQgdWdseSB0byBtYWludGFpbiBhbmQgc2VlLgoKRXNtZXJhbGQgY29tZXMgd2l0aCB0aGUKW3NldHRpbmdzXSguL2FwcGxpY2F0aW9uL3NldHRpbmdzLm1kKSBpbiBtaW5kLiBBIHNldCBvZiBkZWZhdWx0cyB0aGF0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHlvdXIgdmVyeSBvd24gc2V0dGluZ3MKbW9kdWxlIGJ1dCBub3QgbGltaXRlZCB0byBpdCwgYXMgeW91IGNhbiBzdGlsbCB1c2UgdGhlIGNsYXNzaWMgYXBwcm9hY2ggb2YgcGFzc2luZyBldmVyeXRoaW5nIGludG8gYQpFc21lcmFsZCBpbnN0YW5jZSBkaXJlY3RseSB3aGVuIGluc3RhbnRpYXRpbmcuCgoqKkV4YW1wbGUgb2YgY2xhc3NpYyBhcHByb2FjaCoqOgoKYGBgcHl0aG9uCmZyb20gZXhhbXBsZSBpbXBvcnQgRXhhbXBsZU9iamVjdAoKIyBFeGFtcGxlT2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIGFub3RoZXIgYXBwbGljYXRpb24KIyBhbmQgaXQgc2VydmVzIG9ubHkgZm9yIGV4YW1wbGUKCmFwcCA9IEV4YW1wbGVPYmplY3Qoc2V0dGluZ19vbmU9Li4uLCBzZXR0aW5nX3R3bz0uLi4sIHNldHRpbmdfdGhyZWU9Li4uKQoKYGBgCgpJbnNwaXJlZCBieSB0aGUgZ3JlYXQgW0RqYW5nb10oaHR0cHM6Ly93d3cuZGphbmdvcHJvamVjdC5jb20vKSBhbmQgdXNpbmcgcHlkYW50aWMsIEVzbWVyYWxkIGhhcyBhIGRlZmF1bHQgb2JqZWN0CnJlYWR5IHRvIGJlIHVzZWQgb3V0LW9mLXRoZS1ib3guCgoqKkVzbWVyYWxkKio6CgpgYGBweXRob24KZnJvbSBlc21lcmFsZCBpbXBvcnQgRXNtZXJhbGQKCmFwcCA9IEVzbWVyYWxkKCkKCmBgYAoKQW5kIHRoYXQncyBpdCEgQWxsIHRoZSBkZWZhdWx0IHNldHRpbmdzIGFyZSBsb2FkZWQhIFRoaXMgaXMgc2ltcGxlIG9mIGNvdXJzZSBidXQgY2FuIHlvdSBvdmVycmlkZQppbnNpZGUgdGhlIG9iamVjdCBhcyB3ZWxsPyBZZXMhCgpgYGBweXRob24KZnJvbSBlc21lcmFsZCBpbXBvcnQgRXNtZXJhbGQKCmFwcCA9IEVzbWVyYWxkKGFwcF9uYW1lPSdNeSBBcHAnLCB0aXRsZT0nTXkgdGl0bGUnKQoKYGBgCgpTYW1lIGFzIHRoZSBjbGFzc2ljcy4KClNvIGhvdyBkb2VzIEVzbWVyYWxkIGtub3cgYWJvdXQgdGhlIGRlZmF1bHQgc2V0dGluZ3M/IEVudGVycyBbRXNtZXJhbGQgc2V0dGluZ3MgbW9kdWxlXSgjZXNtZXJhbGQtc2V0dGluZ3MtbW9kdWxlKS4KCiMjIyBFc21lcmFsZCBTZXR0aW5ncyBNb2R1bGUKClRoaXMgaXMgdGhlIHdheSBFc21lcmFsZCBkZWZhdWx0cyB0aGUgdmFsdWVzLiBXaGVuIHN0YXJ0aW5nIGFuIGFwcGxpY2F0aW9uLCB0aGUgc3lzdGVtIGxvb2tzIGZvciBhCmBFU01FUkFMRF9TRVRUSU5HU19NT0RVTEVgIGVudmlyb25tZW50IHZhcmlhYmxlLiBJZiBubyB2YXJpYWJsZSBpcyBzdXBwbGllZCB0aGVuIHRoZSBzeXN0ZW0gd2lsbCBkZWZhdWx0IHRvCmBFc21lcmFsZEFQSVNldHRpbmdzYCBzZXR0aW5ncyBhbmQgc3RhcnQuCgojIyMgQ3VzdG9tIFNldHRpbmdzCgpTZXBhcmF0aW9uIG9mIHNldHRpbmdzIGJ5IGVudmlyb21tZW50IGlzIGEgbXVzdCBoYXZlIHRoZXNlIGRheXMgYW5kIHN0YXJ0aW5nIHdpdGggZGVmYXVsdCBvZiBFc21lcmFsZCB3aWxsIG5vdCBiZQplbm91Z2ggZm9yIGFueSBhcHBsaWNhdGlvbi4KClRoZSBzZXR0aW5ncyBhcmUgcHlkYW50aWMgc3RhbmRhcmQgc2V0dGluZ3MgYW5kIHRoZXJlZm9yZSBjb21wYXRpYmxlIHdpdGggRXNtZXJhbGQuClRoZSBzeXN0ZW0gYnJpbmdzIHNvbWUgZGVmYXVsdHMgdGhhdCBjYW4gYmUgdXNlZCBvdXQtb2YtdGhlLWJveCBidXQgaXQncyBub3QgbWFuZGF0b3J5IHRvIGJlIHVzZWQuClRoZSBlbnZpcm9ubWVudCBkZWZhdWx0cyB0byAqKnByb2R1Y3Rpb24qKi4KCmBgYHB5dGhvbgoKZnJvbSBlc21lcmFsZCBpbXBvcnQgRXNtZXJhbGRBUElTZXR0aW5ncwpmcm9tIGVzbWVyYWxkLmNvbmYuZW51bXMgaW1wb3J0IEVudmlyb25tZW50VHlwZQoKY2xhc3MgRGV2ZWxvcG1lbnQoRXNtZXJhbGRBUElTZXR0aW5ncyk6CiAgICBhcHBfbmFtZTogc3RyID0gJ015IGFwcCBpbiBkZXYnCiAgICBlbnZpcm9ubWVudDogc3RyID0gRW52aXJvbm1lbnRUeXBlLkRFVkVMT1BNRU5UCgpgYGAKCioqTG9hZCB0aGUgc2V0dGluZ3MgaW50byB5b3VyIEVzbWVyYWxkIGFwcGxpY2F0aW9uKio6CgpBc3N1bWluZyB5b3VyIEVzbWVyYWxkIGFwcCBpcyBpbnNpZGUgYW4gYHNyYy9hcHAucHlgLgoKYGBgY29uc29sZQoKRVNNRVJBTERfU0VUVElOR1NfTU9EVUxFPSdteWFwcC5zZXR0aW5ncy5EZXZlbG9wbWVudCcgcHl0aG9uIC1tIHNyYy5hcHAucHkKCmBgYAoKIyMgR2F0ZXdheSwgV2ViU29ja2V0R2F0ZXdheSBhbmQgSW5jbHVkZQoKU3RhcmxldHRlIG9mZmVycyB0aGUgUm91dGUgY2xhc3NlcyBmb3Igc2ltcGxlIHBhdGggYXNzaWdubWVudHMgYnV0IHRoaXMgaXMgYWxzbyB2ZXJ5IGxpbWl0aW5nIGlmIHNvbWV0aGluZyBtb3JlCmNvbXBsZXggaW4gbWluZC4gRXNtZXJhbGQgZXh0ZW5kcyB0aGF0IGZ1bmN0aW9uYWxpdHkgYW5kIGFkZHMgc29tZSBgZmxhaXJgIGFuZCBsZXZlbHMgdXAgYnkgaGF2aW5nIHRoZQpHYXRld2F5LCBXZWJTb2NrZXRHYXRld2F5IGFuZCBJbmNsdWRlLgoKVGhvc2UgYXJlIHNwZWNpYWwgb2JqZWN0cyB0aGF0IGFsbG93IGFsbCB0aGUgbWFnaWMgb2YgRXNtZXJhbGQgdG8gaGFwcGVuLgoKRm9yIGEgY2xhc3NpYywgZGlyZWN0LCBvbmUgZmlsZSBzaW5nbGUgYXBwcm9hY2guCgoqKkluIGEgbnV0c2hlbGwqKjoKCmBgYHB5dGhvbiB0aXRsZT0nc3JjL2FwcC5weScKZnJvbSBlc21lcmFsZCBpbXBvcnQgRXNtZXJhbGQsIGdldCwgc3RhdHVzLCBSZXF1ZXN0LCBVSlNPTlJlc3BvbnNlLCBHYXRld2F5LCBXZWJTb2NrZXRHYXRld2F5LCBXZWJzb2NrZXQKCkBnZXQoc3RhdHVzX2NvZGU9c3RhdHVzLkhUVFBfMjAwX09LKQphc3luYyBkZWYgaG9tZSgpIC0+IFVKU09OUmVzcG9uc2U6CiAgICByZXR1cm4gVUpTT05SZXNwb25zZSh7CiAgICAgICAgImRldGFpbCI6ICJIZWxsbyB3b3JsZCIKICAgIH0pCgoKQGdldCgpCmFzeW5jIGRlZiBhbm90aGVyKHJlcXVlc3Q6IFJlcXVlc3QpIC0+IGRpY3Q6CiAgICByZXR1cm4gewogICAgICAgICJkZXRhaWwiOiAiQW5vdGhlciB3b3JsZCEiCiAgICB9CgpAd2Vic29ja2V0KHBhdGg9Ii97cGF0aF9wYXJhbTpzdHJ9IikKYXN5bmMgZGVmIHdvcmxkX3NvY2tldChzb2NrZXQ6IFdlYnNvY2tldCkgLT4gTm9uZToKICAgIGF3YWl0IHNvY2tldC5hY2NlcHQoKQogICAgbXNnID0gYXdhaXQgc29ja2V0LnJlY2VpdmVfanNvbigpCiAgICBhc3NlcnQgbXNnCiAgICBhc3NlcnQgc29ja2V0CiAgICBhd2FpdCBzb2NrZXQuY2xvc2UoKQoKCmFwcCA9IEVzbWVyYWxkKHJvdXRlcz1bCiAgICBHYXRld2F5KGhhbmRsZXI9aG9tZSksCiAgICBHYXRld2F5KGhhbmRsZXI9YW5vdGhlciksCiAgICBXZWJTb2NrZXRHYXRld2F5KGhhbmRsZXI9d29ybGRfc29ja2V0KSwKXSkKCmBgYAoKIyMgRGVzaWduIGluIG1pbmQKCkdvb2QgZGVzaWduIGlzIGFsd2F5cyBlbmNvdXJhZ2VkIGFuZCBFc21lcmFsZCBhbGxvd3MgY29tcGxleCByb3V0aW5nIG9uIGFueSBsZXZlbC4KCiMjIyBUaGUgaGFuZGxlcnMgKHZpZXdzKQoKYGBgcHl0aG9uIHRpdGxlPSJteWFwcC9hY2NvdW50cy9jb250cm9sbGVycy5weSIKZnJvbSBlc21lcmFsZCBpbXBvcnQgZ2V0LCBwb3N0LCBwdXQsIHN0YXR1cywgd2Vic29ja2V0LCBBUElWaWV3LCBSZXF1ZXN0LCBKU09OUmVzcG9uc2UsIFJlc3BvbnNlLCBXZWJTb2NrZXQKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsCgoKY2xhc3MgUHJvZHVjdChCYXNlTW9kZWwpOgogICAgbmFtZTogc3RyCiAgICBza3U6IHN0cgogICAgcHJpY2U6IGZsb2F0CgoKQHB1dCgnL3Byb2R1Y3Qve3Byb2R1Y3RfaWR9JykKZGVmIHVwZGF0ZV9wcm9kdWN0KHByb2R1Y3RfaWQ6IGludCwgZGF0YTogUHJvZHVjdCkgLT4gZGljdDoKICAgIHJldHVybiB7InByb2R1Y3RfaWQiOiBwcm9kdWN0X2lkLCAicHJvZHVjdF9uYW1lIjogcHJvZHVjdC5uYW1lIH0KCgpAZ2V0KHN0YXR1c19jb2RlPXN0YXR1cy5IVFRQXzIwMF9PSykKYXN5bmMgZGVmIGhvbWUoKSAtPiBKU09OUmVzcG9uc2U6CiAgICByZXR1cm4gSlNPTlJlc3BvbnNlKHsKICAgICAgICAiZGV0YWlsIjogIkhlbGxvIHdvcmxkIgogICAgfSkKCgpAZ2V0KCkKYXN5bmMgZGVmIGFub3RoZXIocmVxdWVzdDogUmVxdWVzdCkgLT4gZGljdDoKICAgIHJldHVybiB7CiAgICAgICAgImRldGFpbCI6ICJBbm90aGVyIHdvcmxkISIKICAgIH0KCgpAd2Vic29ja2V0KHBhdGg9Ii97cGF0aF9wYXJhbTpzdHJ9IikKYXN5bmMgZGVmIHdvcmxkX3NvY2tldChzb2NrZXQ6IFdlYnNvY2tldCkgLT4gTm9uZToKICAgIGF3YWl0IHNvY2tldC5hY2NlcHQoKQogICAgbXNnID0gYXdhaXQgc29ja2V0LnJlY2VpdmVfanNvbigpCiAgICBhc3NlcnQgbXNnCiAgICBhc3NlcnQgc29ja2V0CiAgICBhd2FpdCBzb2NrZXQuY2xvc2UoKQoKCmNsYXNzIFdvcmxkKEFQSVZpZXcpOgoKICAgIEBnZXQocGF0aD0nL3t1cmx9JykKICAgIGFzeW5jIGRlZiBob21lKHNlbGYsIHJlcXVlc3Q6IFJlcXVlc3QsIHVybDogc3RyKSAtPiBSZXNwb25zZToKICAgICAgICByZXR1cm4gUmVzcG9uc2UoZiJVUkw6IHt1cmx9IikKCiAgICBAcG9zdChwYXRoPScve3VybH0nLCBzdGF0dXNfY29kZT1zdGF0dXMuSFRUUF8yMDFfQ1JFQVRFRCkKICAgIGFzeW5jIGRlZiBtYXJzKHNlbGYsIHJlcXVlc3Q6IFJlcXVlc3QsIHVybDogc3RyKSAtPiBKU09OUmVzcG9uc2U6CiAgICAgICAgLi4uCgogICAgQHdlYnNvY2tldChwYXRoPSIve3BhdGhfcGFyYW06c3RyfSIpCiAgICBhc3luYyBkZWYgcGx1dG8oc2VsZiwgc29ja2V0OiBXZWJzb2NrZXQpIC0+IE5vbmU6CiAgICAgICAgYXdhaXQgc29ja2V0LmFjY2VwdCgpCiAgICAgICAgbXNnID0gYXdhaXQgc29ja2V0LnJlY2VpdmVfanNvbigpCiAgICAgICAgYXNzZXJ0IG1zZwogICAgICAgIGFzc2VydCBzb2NrZXQKICAgICAgICBhd2FpdCBzb2NrZXQuY2xvc2UoKQoKCmBgYAoKSWYgYSBgcGF0aGAgaXMgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBgL2AuCgojIyMgVGhlIGdhdGV3YXlzICh1cmxzKQoKYGBgcHl0aG9uIHRpdGxlPSJteWFwcC9hY2NvdW50cy91cmxzLnB5Igpmcm9tIGVzbWVyYWxkIGltcG9ydCBHYXRld2F5LCBXZWJTb2NrZXRHYXRld2F5CmZyb20gLmNvbnRyb2xsZXJzIGltcG9ydCBob21lLCBhbm90aGVyLCB3b3JsZF9zb2NrZXQsIFdvcmxkCgpyb3V0ZV9wYXR0ZXJucyA9IFsKICAgIEdhdGV3YXkoaGFuZGxlcj11cGRhdGVfcHJvZHVjdCksCiAgICBHYXRld2F5KGhhbmRsZXI9aG9tZSksCiAgICBHYXRld2F5KGhhbmRsZXI9YW5vdGhlciksCiAgICBHYXRld2F5KGhhbmRsZXI9V29ybGQpLAogICAgV2ViU29ja2V0R2F0ZXdheShoYW5kbGVyPXdvcmxkX3NvY2tldCksCl0KCmBgYAoKSWYgYSBgcGF0aGAgaXMgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBgL2AuCgojIyMgVGhlIEluY2x1ZGUKClRoaXMgaXMgYSB2ZXJ5IHNwZWNpYWwgb2JqZWN0IHRoYXQgYWxsb3dzIHRoZSBpbXBvcnQgb2YgYW55IHJvdXRlIGZyb20gYW55d2hlcmUgaW4gdGhlIGFwcGxpY2F0aW9uLgoKYEluY2x1ZGVgIGFjY2VwdHMgdGhlIGltcG9ydCB2aWEgYG5hbWVzcGFjZWAgb3IgdmlhIGByb3V0ZXNgIGxpc3QgYnV0IG5vdCBib3RoLgoKV2hlbiB1c2luZyBhIGBuYW1lc3BhY2VgLCB0aGUgYEluY2x1ZGVgIHdpbGwgbG9vayBmb3IgdGhlIGRlZmF1bHQgYHJvdXRlX3BhdHRlcm5zYCBvYmplY3QgbGlzdCBpbiB0aGUgaW1wb3J0ZWQKbmFtZXNwYWNlIHVubGVzcyBhIGRpZmZlcmVudCBgcGF0dGVybmAgaXMgc3BlY2lmaWVkLgoKVGhlIHBhdHRlcm4gb25seSB3b3JrcyBpZiB0aGUgaW1wb3J0cyBhcmUgZG9uZSB2aWEgYG5hbWVzcGFjZWAgYW5kIG5vdCB2aWEgYHJvdXRlc2AuCgoqKkltcG9ydGluZyB1c2luZyBuYW1lc3BhY2UqKjoKCmBgYHB5dGhvbiB0aXRsZT0nbXlhcHAvdXJscy5weScKZnJvbSBlc21lcmFsZCBpbXBvcnQgSW5jbHVkZQoKcm91dGVfcGF0dGVybnMgPSBbCiAgICBJbmNsdWRlKG5hbWVzcGFjZT0nbXlhcHAuYWNjb3VudHMudXJscycpCl0KCmBgYAoKKipJbXBvcnRpbmcgdXNpbmcgcm91dGVzKio6CgpgYGBweXRob24gdGl0bGU9J3NyYy9teWFwcC91cmxzLnB5Jwpmcm9tIGVzbWVyYWxkIGltcG9ydCBJbmNsdWRlCmZyb20gbXlhcHAuYWNjb3VudHMgaW1wb3J0IHVybHMKCnJvdXRlX3BhdHRlcm5zID0gWwogICAgSW5jbHVkZShyb3V0ZXM9dXJscy5yb3V0ZV9wYXR0ZXJucykKXQoKYGBgCgpJZiBhIGBwYXRoYCBpcyBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIGAvYC4KCiMjIyMgVXNpbmcgYSBkaWZmZXJlbnQgcGF0dGVybgoKYGBgcHl0aG9uIHRpdGxlPSJzcmMvbXlhcHAvYWNjb3VudHMvdXJscy5weSIKZnJvbSBlc21lcmFsZCBpbXBvcnQgR2F0ZXdheSwgV2ViU29ja2V0R2F0ZXdheQpmcm9tIC5jb250cm9sbGVycyBpbXBvcnQgaG9tZSwgYW5vdGhlciwgd29ybGRfc29ja2V0LCBXb3JsZAoKbXlfdXJscyA9IFsKICAgIEdhdGV3YXkoaGFuZGxlcj11cGRhdGVfcHJvZHVjdCksCiAgICBHYXRld2F5KGhhbmRsZXI9aG9tZSksCiAgICBHYXRld2F5KGhhbmRsZXI9YW5vdGhlciksCiAgICBHYXRld2F5KGhhbmRsZXI9V29ybGQpLAogICAgV2ViU29ja2V0R2F0ZXdheShoYW5kbGVyPXdvcmxkX3NvY2tldCksCl0KCmBgYAoKKipJbXBvcnRpbmcgdXNpbmcgbmFtZXNwYWNlKio6CgpgYGBweXRob24gdGl0bGU9J3NyYy9teWFwcC91cmxzLnB5Jwpmcm9tIGVzbWVyYWxkIGltcG9ydCBJbmNsdWRlCgpyb3V0ZV9wYXR0ZXJucyA9IFsKICAgIEluY2x1ZGUobmFtZXNwYWNlPSdteWFwcC5hY2NvdW50cy51cmxzJywgcGF0dGVybj0nbXlfdXJscycpCl0KCmBgYAoKIyMgSW5jbHVkZSBhbmQgRXNtZXJhbGQKClRoZSBgSW5jbHVkZWAgY2FuIGJlIHZlcnkgaGVscGZ1bCBtb3N0bHkgd2hlbiB0aGUgZ29hbCBpcyB0byBhdm9pZCBhIGxvdCBvZiBpbXBvcnRzIGFuZCBtYXNzaXZlIGxpc3QKb2Ygb2JqZWN0cyB0byBiZSBwYXNzZWQgaW50byBvbmUgc2luZ2xlIG9iamVjdC4gVGhpcyBjYW4gYmUgcGFydGljdWxhcnkgdXNlZnVsIHRvIG1ha2UgYSBFc21lcmFsZCBpbnN0YW5jZS4KCioqRXhhbXBsZSoqOgoKYGBgcHl0aG9uIHRpdGxlPSdzcmMvdXJscy5weScKZnJvbSBlc21lcmFsZCBpbXBvcnQgSW5jbHVkZQoKcm91dGVfcGF0dGVybnMgPSBbCiAgICBJbmNsdWRlKG5hbWVzcGFjZT0nbXlhcHAuYWNjb3VudHMudXJscycsIHBhdHRlcm49J215X3VybHMnKQpdCgpgYGAKCmBgYHB5dGhvbiB0aXRsZT0nc3JjL2FwcC5weScKZnJvbSBlc21lcmFsZCBpbXBvcnQgRXNtZXJhbGQsIEluY2x1ZGUKCmFwcCA9IEVzbWVyYWxkKHJvdXRlcz1bSW5jbHVkZSgnc3JjLnVybHMnKV0pCgpgYGAKCiMjIFJ1biB0aGUgYXBwbGljYXRpb24KCkFzIG1lbnRpb25lZCBiZWZvcmUsIHdlIHJlY29tbWVuZCB1dmljb3JuIGZvciBwcm9kdWN0aW9uIGJ1dCBpdCdzIG5vdCBtYW5kYXRvcnkuCgoqKlVzaW5nIHV2aWNvcm4qKjoKCmBgYHNoZWxsCnV2aWNvcm4gc3JjOmFwcCAtLXJlbG9hZAoKSU5GTzogICAgIFV2aWNvcm4gcnVubmluZyBvbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgKFByZXNzIENUUkwrQyB0byBxdWl0KQpJTkZPOiAgICAgU3RhcnRlZCByZWxvYWRlciBwcm9jZXNzIFsyODcyMF0KSU5GTzogICAgIFN0YXJ0ZWQgc2VydmVyIHByb2Nlc3MgWzI4NzIyXQpJTkZPOiAgICAgV2FpdGluZyBmb3IgYXBwbGljYXRpb24gc3RhcnR1cC4KSU5GTzogICAgIEFwcGxpY2F0aW9uIHN0YXJ0dXAgY29tcGxldGUuCmBgYAoKIyMgUnVuIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGN1c3RvbSBzZXR0aW5ncwoKKipVc2luZyB1dmljb3JuKio6CgpgYGBzaGVsbApFU01FUkFMRF9TRVRUSU5HU19NT0RVTEU9bXlhcHAuQXBwU2V0dGluZ3MgdXZpY29ybiBzcmM6YXBwIC0tcmVsb2FkCgpJTkZPOiAgICAgVXZpY29ybiBydW5uaW5nIG9uIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCAoUHJlc3MgQ1RSTCtDIHRvIHF1aXQpCklORk86ICAgICBTdGFydGVkIHJlbG9hZGVyIHByb2Nlc3MgWzI4NzIwXQpJTkZPOiAgICAgU3RhcnRlZCBzZXJ2ZXIgcHJvY2VzcyBbMjg3MjJdCklORk86ICAgICBXYWl0aW5nIGZvciBhcHBsaWNhdGlvbiBzdGFydHVwLgpJTkZPOiAgICAgQXBwbGljYXRpb24gc3RhcnR1cCBjb21wbGV0ZS4KYGBgCgojIyBPcGVuQVBJIGRvY3VtZW50YXRpb24KCkVzbWVyYWxkIGFsc28gY29tZXMgd2l0aCBPcGVuQVBJIGRvY3MgaW50ZWdyYXRlZC4gRm9yIHRob3NlIHVzZWQgdG8gdGhhdCwgdGhpcyBpcyByb3VnaGx5IHRoZSBzYW1lIGFuZCB0byBtYWtlIGl0CmhhcHBlbiwgdGhlcmUgd2VyZSBpbnNwaXJhdGlvbnMgdGhhdCBoZWxwZWQgRXNtZXJhbGQgZ2V0dGluZyB0aGVyZSBmYXN0LgoKRXNtZXJhbGQgc3RhcnRzIGF1dG9tYXRpY2FsbHkgdGhlIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBieSBpbmplY3RpbmcgdGhlIE9wZW5BUElDb25maWcgZGVmYXVsdCBmcm9tCnRoZSBzZXR0aW5ncyBhbmQgbWFrZXMgU3dhZ2dlciwgUmVEb2MgYW4gU3RvcGxpZ2h0IGVsZW1lbnRzIGF2YWlsYWJsZSB0byB5b3Ugb3V0IG9mIHRoZSBib3guCgpUbyBhY2Nlc3MgdGhlIE9wZW5BUEksIHNpbXBseSBzdGFydCB5b3VyIGxvY2FsIGRldmVsb3BtZW50IGFuZCBhY2Nlc3M6CgoqICoqU3dhZ2dlcioqIC0gYC9kb2NzL3N3YWdnZXJgLgoqICoqUmVkb2MqKiAtIGAvZG9jcy9yZWRvY2AuCiogKipTdG9wbGlnaHQgRWxlbWVudHMqKiAtIGAvZG9jcy9lbGVtZW50c2AuCgpUaGVyZSBhcmUgbW9yZSBkZXRhaWxzIGFib3V0IFtob3cgdG8gY29uZmlndXJlIHRoZSBPcGVuQVBJQ29uZmlnXShodHRwczovL2VzbWVyYWxkLmRldi9jb25maWd1cmF0aW9ucy9vcGVuYXBpL2NvbmZpZykKd2l0aGluIHRoZSBkb2N1bWVudGF0aW9uLgoKVGhlcmUgaXMgYWxzbyBhIGdvb2QgZXhwbGFuYXRpb24gb24gaG93IHRvIHVzZSB0aGUgW09wZW5BUElSZXNwb25zZV0oaHR0cHM6Ly9lc21lcmFsZC5kZXYvcmVzcG9uc2VzI29wZW5hcGktcmVzcG9uc2VzKQphcyB3ZWxsLgoKIyMgTm90ZXMKClRoaXMgaXMganVzdCBhIHZlcnkgaGlnaC1sZXZlbCBkZW1vbnN0cmF0aW9uIG9mIGhvdyB0byBzdGFydCBxdWlja2x5IGFuZCB3aGF0IEVzbWVyYWxkIGNhbiBkby4KVGhlcmUgYXJlIHBsZW50eSBtb3JlIHRoaW5ncyB5b3UgY2FuIGRvIHdpdGggRXNtZXJhbGQuIEVuam95ISDwn5iKCgojIyBTcG9uc29ycwoKQ3VycmVudGx5IHRoZXJlIGFyZSBubyBzcG9uc29ycyBvZiBFc21lcmFsZCBidXQgeW91IGNhbiBmaW5hbmNpYWxseSBoZWxwIGFuZCBzdXBwb3J0IHRoZSBhdXRob3IgdGhvdWdoCltHaXRIdWIgc3BvbnNvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy90YXJzaWwpIGFuZCBiZWNvbWUgYSAqKlNwZWNpYWwgb25lKiogb3IgYSAqKkxlZ2VuZCoqLgoKW3NhZmZpZXJfb3JtXTogaHR0cHM6Ly9lc21lcmFsZC5kZXYvZGF0YWJhc2VzL3NhZmZpZXIvbW90aXZhdGlvbgpbZWRneV9vcm1dOiBodHRwczovL2VzbWVyYWxkLmRldi9kYXRhYmFzZXMvc2FmZmllci9tb3RpdmF0aW9uClttb25nb3pfb2RtXTogaHR0cHM6Ly9lc21lcmFsZC5kZXYvZGF0YWJhc2VzL21vbmdvei9tb3RpdmF0aW9uCg== readmeEtag: '"d0e8c761eadf2640f6b0d377eb94a7faea842df5"' readmeLastModified: Sun, 01 Sep 2024 12:03:14 GMT repositoryId: 553553797 description: >- Esmerald framework - Highly scalable, performant, easy to learn, easy to code and for every sizeable and complex application created: '2022-10-18T11:50:26Z' updated: '2024-09-05T15:18:46Z' language: Python archived: false stars: 289 watchers: 8 forks: 17 owner: dymmond logo: https://avatars.githubusercontent.com/u/65982469?v=4 license: MIT repoEtag: '"67003801fd46b5d356359ffc945be25bfa2b218272dd15e920ae5c7dd9902a60"' repoLastModified: Thu, 05 Sep 2024 15:18:46 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/fsprojects/swaggerprovider v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyUHJvdmlkZXIgWyFbTnVHZXQgQmFkZ2VdKGh0dHBzOi8vYnVpbGRzdGF0cy5pbmZvL251Z2V0L1N3YWdnZXJQcm92aWRlcildKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Td2FnZ2VyUHJvdmlkZXIpCgpUaGlzIFN3YWdnZXJQcm92aWRlciBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgUkVTVGZ1bCBBUEkgZ2VuZXJhdGVkIHVzaW5nIFtTd2FnZ2VyLmlvXShodHRwOi8vc3dhZ2dlci5pbykKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL2ZzcHJvamVjdHMvU3dhZ2dlclByb3ZpZGVyL3dvcmtmbG93cy9CdWlsZCUyMGFuZCUyMFRlc3QvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2dpdGh1Yi5jb20vZnNwcm9qZWN0cy9Td2FnZ2VyUHJvdmlkZXIvYWN0aW9ucz9xdWVyeT1icmFuY2glM0FtYXN0ZXIpCgpEb2N1bWVudGF0aW9uOiAgaHR0cDovL2ZzcHJvamVjdHMuZ2l0aHViLmlvL1N3YWdnZXJQcm92aWRlci8KCiMjIFN3YWdnZXIgUkVTVGZ1bCBBUEkgRG9jdW1lbnRhdGlvbiBTcGVjaWZpY2F0aW9uCgpTd2FnZ2VyIGlzIGF2YWlsYWJsZSBmb3IgQVNQLk5FVCBXZWJBUEkgQVBJcyB3aXRoIFtTd2FzaGJ1Y2tsZV0oaHR0cHM6Ly9naXRodWIuY29tL2RvbWFpbmRyaXZlbmRldi9Td2FzaGJ1Y2tsZSkuCkFsc28gcG9zc2libGUgdG8gW0NyZWF0ZSBhbiBBU1AuTkVUIEFQSSBhcHAgaW4gQXp1cmUgQXBwIFNlcnZpY2VdKGh0dHBzOi8vYXp1cmUubWljcm9zb2Z0LmNvbS9lbi11cy9kb2N1bWVudGF0aW9uL2FydGljbGVzL2FwcC1zZXJ2aWNlLWRvdG5ldC1jcmVhdGUtYXBpLWFwcC8pCgoKIyMgTWFpbnRhaW5lcihzKQoKLSBbQHNlcmdleS10aWhvbl0oaHR0cHM6Ly9naXRodWIuY29tL3NlcmdleS10aWhvbikKClRoZSBkZWZhdWx0IG1haW50YWluZXIgYWNjb3VudCBmb3IgcHJvamVjdHMgdW5kZXIgImZzcHJvamVjdHMiIGlzIEBmc3Byb2plY3RzZ2l0IC0gRiMgQ29tbXVuaXR5IFByb2plY3QgSW5jdWJhdGlvbiBTcGFjZSAocmVwbyBtYW5hZ2VtZW50KQoK readmeEtag: '"10819c3ea631fe63147782a246dcd89eb9813e0e"' readmeLastModified: Mon, 03 Jun 2024 18:41:07 GMT repositoryId: 32864387 description: F# generative Type Provider for Swagger created: '2015-03-25T12:54:10Z' updated: '2024-08-28T20:36:40Z' language: F# archived: false stars: 262 watchers: 13 forks: 58 owner: fsprojects logo: https://avatars.githubusercontent.com/u/6001315?v=4 license: Unlicense repoEtag: '"6fc8ac221119a49edb5d8be8d80bb66a700492609ca1eda82a18c946afb93112"' repoLastModified: Wed, 28 Aug 2024 20:36:40 GMT foundInMaster: true category: SDK id: f1cc73d13ad58d7db2b0a9fb9428dbc3 - source: openapi3 tags name: openapi-go homepage: https://github.com/swaggest/openapi-go language: Go source_description: Type-safe OpenAPI 3.x bindings and generator from code category: - Low-level Tooling - Parsers repository: https://github.com/swaggest/openapi-go v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHN0cnVjdHVyZXMgZm9yIEdvCgo8aW1nIGFsaWduPSJyaWdodCIgd2lkdGg9IjI1MHB4IiBzcmM9Ii9yZXNvdXJjZXMvbG9nby5wbmciPgoKVGhpcyBsaWJyYXJ5IHByb3ZpZGVzIEdvIHN0cnVjdHVyZXMgdG8gbWFyc2hhbC91bm1hcnNoYWwgYW5kIHJlZmxlY3QgW09wZW5BUEkgU2NoZW1hXShodHRwczovL3N3YWdnZXIuaW8vcmVzb3VyY2VzL29wZW4tYXBpLykgZG9jdW1lbnRzLgoKRm9yIGF1dG9tYXRlZCBIVFRQIFJFU1Qgc2VydmljZSBmcmFtZXdvcmsgYnVpbHQgd2l0aCB0aGlzIGxpYnJhcnkgcGxlYXNlIGNoZWNrIFtgZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0YF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3QpLgoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3Qvb3BlbmFwaS1nby93b3JrZmxvd3MvdGVzdC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3Qvb3BlbmFwaS1nby9hY3Rpb25zP3F1ZXJ5PWJyYW5jaCUzQW1hc3Rlcit3b3JrZmxvdyUzQXRlc3QpClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb2RlY292LmlvL2doL3N3YWdnZXN0L29wZW5hcGktZ28vYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvc3dhZ2dlc3Qvb3BlbmFwaS1nbykKWyFbR29EZXZEb2NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGV2LWRvYy0wMEFERDg/bG9nbz1nbyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L29wZW5hcGktZ28pClshW3RpbWUgdHJhY2tlcl0oaHR0cHM6Ly93YWthdGltZS5jb20vYmFkZ2UvZ2l0aHViL3N3YWdnZXN0L29wZW5hcGktZ28uc3ZnKV0oaHR0cHM6Ly93YWthdGltZS5jb20vYmFkZ2UvZ2l0aHViL3N3YWdnZXN0L29wZW5hcGktZ28pCiFbQ29kZSBsaW5lc10oaHR0cHM6Ly9zbG9jLnh5ei9naXRodWIvc3dhZ2dlc3Qvb3BlbmFwaS1nby8/Y2F0ZWdvcnk9Y29kZSkKIVtDb21tZW50c10oaHR0cHM6Ly9zbG9jLnh5ei9naXRodWIvc3dhZ2dlc3Qvb3BlbmFwaS1nby8/Y2F0ZWdvcnk9Y29tbWVudHMpCgojIyBGZWF0dXJlcwoKKiBUeXBlIHNhZmUgbWFwcGluZyBvZiBPcGVuQVBJIDMgZG9jdW1lbnRzIHdpdGggR28gc3RydWN0dXJlcyBnZW5lcmF0ZWQgZnJvbSBzY2hlbWEuCiogVHlwZS1iYXNlZCByZWZsZWN0aW9uIG9mIEdvIHN0cnVjdHVyZXMgdG8gT3BlbkFQSSAzLjAgb3IgMy4xIHNjaGVtYS4KKiBTY2hlbWEgY29udHJvbCB3aXRoIGZpZWxkIHRhZ3MKICAgICogYGpzb25gIGZvciByZXF1ZXN0IGJvZGllcyBhbmQgcmVzcG9uc2VzIGluIEpTT04KICAgICogYHF1ZXJ5YCwgYHBhdGhgIGZvciBwYXJhbWV0ZXJzIGluIFVSTAogICAgKiBgaGVhZGVyYCwgYGNvb2tpZWAsIGBmb3JtRGF0YWAsIGBmaWxlYCBmb3Igb3RoZXIgcGFyYW1ldGVycwogICAgKiBgZm9ybWAgYWN0cyBhcyBgcXVlcnlgIGFuZCBgZm9ybURhdGFgCiAgICAqIFtmaWVsZCB0YWdzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvanNvbnNjaGVtYS1nbyNmaWVsZC10YWdzKSBuYW1lZCBhZnRlciBKU09OIFNjaGVtYS9PcGVuQVBJIDMgU2NoZW1hIGNvbnN0cmFpbnRzCiAgICAqIGBjb2xsZWN0aW9uRm9ybWF0YCB0byB1bnBhY2sgc2xpY2VzIGZyb20gc3RyaW5nCiAgICAgICAgKiBgY3N2YCBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzLAogICAgICAgICogYHNzdmAgc3BhY2Utc2VwYXJhdGVkIHZhbHVlcywKICAgICAgICAqIGBwaXBlc2AgcGlwZS1zZXBhcmF0ZWQgdmFsdWVzIChgfGApLAogICAgICAgICogYG11bHRpYCBhbXBlcnNhbmQtc2VwYXJhdGVkIHZhbHVlcyAoYCZgKSwKICAgICAgICAqIGBqc29uYCBhZGRpdGlvbmFsbHkgdG8gc2xpY2VzIHVucGFja3MgbWFwcyBhbmQgc3RydWN0cywKKiBGbGV4aWJsZSBzY2hlbWEgY29udHJvbCB3aXRoIFtganNvbnNjaGVtYS1nb2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9qc29uc2NoZW1hLWdvI2ltcGxlbWVudGluZy1pbnRlcmZhY2VzLW9uLWEtdHlwZSkKCiMjIEV4YW1wbGUKCltPdGhlciBleGFtcGxlc10oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3Qvb3BlbmFwaS1nby9vcGVuYXBpMyNwa2ctZXhhbXBsZXMpLgoKYGBgZ28KcmVmbGVjdG9yIDo9IG9wZW5hcGkzLlJlZmxlY3Rvcnt9CnJlZmxlY3Rvci5TcGVjID0gJm9wZW5hcGkzLlNwZWN7T3BlbmFwaTogIjMuMC4zIn0KcmVmbGVjdG9yLlNwZWMuSW5mby4KICAgIFdpdGhUaXRsZSgiVGhpbmdzIEFQSSIpLgogICAgV2l0aFZlcnNpb24oIjEuMi4zIikuCiAgICBXaXRoRGVzY3JpcHRpb24oIlB1dCBzb21ldGhpbmcgaGVyZSIpCgp0eXBlIHJlcSBzdHJ1Y3QgewogICAgSUQgICAgIHN0cmluZyBgcGF0aDoiaWQiIGV4YW1wbGU6IlhYWC1YWFhYWCJgCiAgICBMb2NhbGUgc3RyaW5nIGBxdWVyeToibG9jYWxlIiBwYXR0ZXJuOiJeW2Etel17Mn0tW0EtWl17Mn0kImAKICAgIFRpdGxlICBzdHJpbmcgYGpzb246InN0cmluZyJgCiAgICBBbW91bnQgdWludCAgIGBqc29uOiJhbW91bnQiYAogICAgSXRlbXMgIFtdc3RydWN0IHsKICAgICAgICBDb3VudCB1aW50ICAgYGpzb246ImNvdW50ImAKICAgICAgICBOYW1lICBzdHJpbmcgYGpzb246Im5hbWUiYAogICAgfSBganNvbjoiaXRlbXMiYAp9Cgp0eXBlIHJlc3Agc3RydWN0IHsKICAgIElEICAgICBzdHJpbmcgYGpzb246ImlkIiBleGFtcGxlOiJYWFgtWFhYWFgiYAogICAgQW1vdW50IHVpbnQgICBganNvbjoiYW1vdW50ImAKICAgIEl0ZW1zICBbXXN0cnVjdCB7CiAgICAgICAgQ291bnQgdWludCAgIGBqc29uOiJjb3VudCJgCiAgICAgICAgTmFtZSAgc3RyaW5nIGBqc29uOiJuYW1lImAKICAgIH0gYGpzb246Iml0ZW1zImAKICAgIFVwZGF0ZWRBdCB0aW1lLlRpbWUgYGpzb246InVwZGF0ZWRfYXQiYAp9CgpwdXRPcCwgZXJyIDo9IHJlZmxlY3Rvci5OZXdPcGVyYXRpb25Db250ZXh0KGh0dHAuTWV0aG9kUHV0LCAiL3RoaW5ncy97aWR9IikKaGFuZGxlRXJyb3IoZXJyKQoKcHV0T3AuQWRkUmVxU3RydWN0dXJlKG5ldyhyZXEpKQpwdXRPcC5BZGRSZXNwU3RydWN0dXJlKG5ldyhyZXNwKSwgZnVuYyhjdSAqb3BlbmFwaS5Db250ZW50VW5pdCkgeyBjdS5IVFRQU3RhdHVzID0gaHR0cC5TdGF0dXNPSyB9KQpwdXRPcC5BZGRSZXNwU3RydWN0dXJlKG5ldyhbXXJlc3ApLCBmdW5jKGN1ICpvcGVuYXBpLkNvbnRlbnRVbml0KSB7IGN1LkhUVFBTdGF0dXMgPSBodHRwLlN0YXR1c0NvbmZsaWN0IH0pCgpyZWZsZWN0b3IuQWRkT3BlcmF0aW9uKHB1dE9wKQoKZ2V0T3AsIGVyciA6PSByZWZsZWN0b3IuTmV3T3BlcmF0aW9uQ29udGV4dChodHRwLk1ldGhvZEdldCwgIi90aGluZ3Mve2lkfSIpCmhhbmRsZUVycm9yKGVycikKCmdldE9wLkFkZFJlcVN0cnVjdHVyZShuZXcocmVxKSkKZ2V0T3AuQWRkUmVzcFN0cnVjdHVyZShuZXcocmVzcCksIGZ1bmMoY3UgKm9wZW5hcGkuQ29udGVudFVuaXQpIHsgY3UuSFRUUFN0YXR1cyA9IGh0dHAuU3RhdHVzT0sgfSkKCnJlZmxlY3Rvci5BZGRPcGVyYXRpb24oZ2V0T3ApCgpzY2hlbWEsIGVyciA6PSByZWZsZWN0b3IuU3BlYy5NYXJzaGFsWUFNTCgpCmlmIGVyciAhPSBuaWwgewogICAgbG9nLkZhdGFsKGVycikKfQoKZm10LlByaW50bG4oc3RyaW5nKHNjaGVtYSkpCmBgYAoKT3V0cHV0OgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMwppbmZvOgogIGRlc2NyaXB0aW9uOiBQdXQgc29tZXRoaW5nIGhlcmUKICB0aXRsZTogVGhpbmdzIEFQSQogIHZlcnNpb246IDEuMi4zCnBhdGhzOgogIC90aGluZ3Mve2lkfToKICAgIGdldDoKICAgICAgcGFyYW1ldGVyczoKICAgICAgLSBpbjogcXVlcnkKICAgICAgICBuYW1lOiBsb2NhbGUKICAgICAgICBzY2hlbWE6CiAgICAgICAgICBwYXR0ZXJuOiBeW2Etel17Mn0tW0EtWl17Mn0kCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgLSBpbjogcGF0aAogICAgICAgIG5hbWU6IGlkCiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBzY2hlbWE6CiAgICAgICAgICBleGFtcGxlOiBYWFgtWFhYWFgKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9SZXNwJwogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICBwdXQ6CiAgICAgIHBhcmFtZXRlcnM6CiAgICAgIC0gaW46IHF1ZXJ5CiAgICAgICAgbmFtZTogbG9jYWxlCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgcGF0dGVybjogXlthLXpdezJ9LVtBLVpdezJ9JAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIC0gaW46IHBhdGgKICAgICAgICBuYW1lOiBpZAogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgZXhhbXBsZTogWFhYLVhYWFhYCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUmVxJwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9SZXNwJwogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgIjQwOSI6CiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUmVzcCcKICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBkZXNjcmlwdGlvbjogQ29uZmxpY3QKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgUmVxOgogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGFtb3VudDoKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBpdGVtczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgIGNvdW50OgogICAgICAgICAgICAgICAgbWluaW11bTogMAogICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIG5hbWU6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBzdHJpbmc6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgdHlwZTogb2JqZWN0CiAgICBSZXNwOgogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGFtb3VudDoKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBpZDoKICAgICAgICAgIGV4YW1wbGU6IFhYWC1YWFhYWAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgaXRlbXM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICBjb3VudDoKICAgICAgICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICBuYW1lOgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgdXBkYXRlZF9hdDoKICAgICAgICAgIGZvcm1hdDogZGF0ZS10aW1lCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgdHlwZTogb2JqZWN0CmBgYAo= readmeEtag: '"3a643511cf5555c916b721bd88ef9ed5ee6a6844"' readmeLastModified: Tue, 25 Jun 2024 11:38:33 GMT repositoryId: 232207964 description: OpenAPI structures for Go created: '2020-01-07T00:07:41Z' updated: '2024-08-31T16:42:20Z' language: Go archived: false stars: 245 watchers: 4 forks: 23 owner: swaggest logo: https://avatars.githubusercontent.com/u/19609628?v=4 license: MIT repoEtag: '"f48a87f3281f8efca4569d2cc96ca79d0e5fe06833e91d27ef7511b2276a7446"' repoLastModified: Sat, 31 Aug 2024 16:42:20 GMT foundInMaster: true id: 042e78fafa5f6cb0dbca01c64778ab3f - source: openapi3 tags repository: https://github.com/testingisdocumenting/znai v3: true repositoryMetadata: base64Readme: >- IyBEaXNjb3JkIFNlcnZlcgoKSm9pbiBgVGVzdGluZyBJcyBEb2N1bWVudGluZ2AgW0Rpc2NvcmQgU2VydmVyXShodHRwczovL2Rpc2NvcmQuZ2cvYUVIYnpYVFg2TikgdG8gYXNrIHF1ZXN0aW9ucyBhbmQgZGlzY3VzcyBmZWF0dXJlcy9idWdzCgojIFpuYWkKCkJ1aWxkIGZ1bmN0aW9uYWwsIG1haW50YWluYWJsZSwgYmVhdXRpZnVsIFVzZXIgR3VpZGVzIHdpdGggYFpuYWlgLgoKKiBNYXJrZG93biB3aXRoIGN1c3RvbSBleHRlbnNpb25zIGFuZCBkb3plbnMgb2YgcGx1Z2luczogCiAgKiBDb250ZW50IGZyb20gZXh0ZXJuYWwgZmlsZXMgd2l0aCBtYXJrZXJzIGFuZCBmaWx0ZXJzIHN1cHBvcnQKICAqIFNpbXBsaWZpZWQgZXh0cmFjdGlvbiBvZiBhIGZ1bmN0aW9uIGJvZHkgY29udGVudCAod29ya2luZyB3aXRoIGV4YW1wbGVzKSAKICAqIEVtYmVkZGluZyBvZiBKYXZhRG9jL1B5RG9jIGRvY3VtZW50YXRpb24gdGV4dCwgcHJlc2VydmluZyBzdHlsZXMKICAqIEJlYXV0aWZ1bCBBUEkgZG9jdW1lbnRhdGlvbiBjYXBhYmlsaXRpZXMgIAogICogVHdvIFNpZGVzIFBhZ2UgTGF5b3V0IE9wdGlvbiB3aXRoIGNvbnZlbmllbnQgZXhhbXBsZSBsYW5ndWFnZXMgc3dpdGNoIAogICogUmljaCB2aXN1YWxzIGxpa2UgZmxvdyBkaWFncmFtcywgY2hhcnRzIGFuZCBjYXJkcwogICogZXRjCiogSW5zdGFudCBwYWdlcyBuYXZpZ2F0aW9uIAoqIExvY2FsIHNlYXJjaAoqIE11bHRpcGxlIGludGVncmF0aW9ucyB0byB3b3JrIHdpdGggUHl0aG9uLCBKYXZhLCBPcGVuQVBJLCBldGMKKiBQcmVzZW50YXRpb24gTW9kZSB0byBhdXRvbWF0aWNhbGx5IHR1cm4geW91ciBkb2N1bWVudGF0aW9uIGludG8gc2xpZGVzLCB1c2luZyB0aGUgc2FtZSBjb250ZW50CiogRGFyay9MaWdodCBydW50aW1lIHRoZW1lcwoqIExldmVyYWdlIGF1dG9tYXRlZCB0ZXN0IHJlc3VsdHMgdG8gZW5yaWNoIHlvdXIgZG9jdW1lbnRhdGlvbiB3aXRoIGFubm90YXRlZCBpbWFnZXMsIFJFU1QgcmVzcG9uc2VzLCBDTEkgb3V0cHV0cywgZXRjCiogR2l0SHViIHBhZ2VzIGZyaWVuZGx5CgohW2dlbmVyYXRlZCBzaXRlIGV4YW1wbGVdKHpuYWktZG9jcy9yZWFkbWUvem5haS1vdmVydmlldy5wbmcpCgpFbWJlZGRpbmcgb2YgW0V4dGVybmFsIFJlc291cmNlc10oaHR0cHM6Ly90ZXN0aW5naXNkb2N1bWVudGluZy5vcmcvem5haS9zbmlwcGV0cy9leHRlcm5hbC1jb2RlLXNuaXBwZXRzKSBhdCBidWlsZCB0aW1lCgohW2dlbmVyYXRlZCBzaXRlIGV4YW1wbGUgb2YgZXh0ZXJuYWwgY29kZV0oem5haS1kb2NzL3JlYWRtZS96bmFpLWV4dGVybmFsLWNvZGUucG5nKQoKUmljaCBWaXN1YWxzIHN1Y2ggYXMgW0NoYXJ0c10oaHR0cHM6Ly90ZXN0aW5naXNkb2N1bWVudGluZy5vcmcvem5haS92aXN1YWxzL2NoYXJ0cyksCltGbG93IERpYWdyYW1zXShodHRwczovL3Rlc3Rpbmdpc2RvY3VtZW50aW5nLm9yZy96bmFpL3Zpc3VhbHMvZmxvdy1kaWFncmFtcykgYW5kCltDYXJkc10oaHR0cHM6Ly90ZXN0aW5naXNkb2N1bWVudGluZy5vcmcvem5haS92aXN1YWxzL2NhcmRzKQoKIVtnZW5lcmF0ZWQgc2l0ZSBleGFtcGxlIG9mIGNoYXJ0c10oem5haS1kb2NzL3JlYWRtZS96bmFpLWNoYXJ0cy5wbmcpCgpEYXJrL0xpZ2h0IG1vZGUgc3dpdGNoaW5nIAoKIVtnZW5lcmF0ZWQgc2l0ZSBleGFtcGxlIG9mIGZsb3cgZGlhZ3JhbV0oem5haS1kb2NzL3JlYWRtZS96bmFpLWZsb3ctZGlhZ3JhbS5wbmcpCgpDYXJkcyBzdXBwb3J0CgohW2dlbmVyYXRlZCBzaXRlIGV4YW1wbGUgb2YgY2FyZHNdKHpuYWktZG9jcy9yZWFkbWUvem5haS1jYXJkcy5wbmcpCgpCZWF1dGlmdWwgd2F5IHRvIGRvY3VtZW50IHlvdXIgQVBJIAoKIVtnZW5lcmF0ZWQgc2l0ZSBleGFtcGxlIG9mIGFwaSBwYXJhbXNdKHpuYWktZG9jcy9yZWFkbWUvem5haS1hcGktcGFyYW1ldGVycy5wbmcpCgpVc2UgW3R3byBzaWRlc10oaHR0cHM6Ly90ZXN0aW5naXNkb2N1bWVudGluZy5vcmcvem5haS9sYXlvdXQvdHdvLXNpZGVzLXRhYnMpIGxheW91dCBvcHRpb24gdG8gcmVuZGVyIGV4YW1wbGVzIGFuZCBzdXBwb3J0aW5nIGluZm9ybWF0aW9uIHNpZGUgYnkgc2lkZQp3aXRoIGNvbnZlbmllbnQgZXhhbXBsZXMgbGFuZ3VhZ2Ugc3dpdGNoCgohW2dlbmVyYXRlZCBzaXRlIGV4YW1wbGUgb2YgdHdvIHNpZGVzIGxheW91dF0oem5haS1kb2NzL3JlYWRtZS96bmFpLXR3by1zaWRlcy10YWJzLnBuZykKCkJsYXppbmcgZmFzdCBsb2NhbCBzZWFyY2ggd2l0aCByZXN1bHRzIHByZXZpZXcKCiFbZ2VuZXJhdGVkIHNpdGUgZXhhbXBsZSBvZiBzZWFyY2hdKHpuYWktZG9jcy9yZWFkbWUvem5haS1zZWFyY2gucG5nKQoKQXV0b21hdGljIFByZXNlbnRhdGlvbiBmcm9tICoqdGhlIHNhbWUgY29udGVudCoqIHdpdGggemVybyBjb25maWcKCiFbZ2VuZXJhdGVkIHNpdGUgZXhhbXBsZSBvZiBwcmVzZW50YXRpb24gbW9kZV0oem5haS1kb2NzL3JlYWRtZS96bmFpLXByZXNlbnRhdGlvbi5wbmcpCgojIFByZXZpZXcKCmBabmFpYCBoYXMgYSBwcmV2aWV3IG1vZGUgdG8gYXV0b21hdGljYWxseSBsaXN0ZW4gdG8gbG9jYWwgZmlsZXMgY2hhbmdlcy4gSXQgYXV0b21hdGljYWxseSBuYXZpZ2F0ZXMgdG8gYSBwYWdlIHRoYXQgd2FzIApjaGFuZ2VkIChkaXJlY3RseSBvciBpbmRpcmVjdGx5KSBhbmQgaGlnaGxpZ2h0cyB0aGUgY2hhbmdlcy4KCiMgRG9jcyBIdWIKCmBabmFpYCBoYXMgYSBmcmVlLCBvcGVuLXNvdXJjZSBlbnRlcnByaXNlIHN1cHBvcnQuIFlvdSBjYW4gaG9zdCBtdWx0aXBsZSBkb2N1bWVudGF0aW9ucyB1c2luZyBzaW5nbGUgc2l0ZS4gSXQgcHJvdmlkZXMKbGFuZGluZyBwYWdlIHRvIGxpc3QgYWxsIHRoZSBjb21wYW55IGlubmVyIGd1aWRlcy4gCgpJdCBhbHNvIGF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBkb2N1bWVudGF0aW9ucyBpbiB0aGUgYnVpbGRzIG91dHB1dHMgYW5kIHVwZGF0ZXMgaG9zdGVkIGRvY3VtZW50YXRpb25zLgoKRXhhbXBsZXMgKGluY2x1ZGluZyB1c2luZyBHb29nbGUgQ2xvdWQpIGFuZCBzZXR1cCBkb2N1bWVudGF0aW9uIGFyZSBjb21pbmcuIFBsZWFzZSBjcmVhdGUgYSBHaXRIdWIgaXNzdWUgaWYgeW91IHdhbnQKdG8gbGVhcm4gbW9yZSBhYm91dCBFbnRlcnByaXNlIHNldHVwLiBJdCB3aWxsIGhlbHAgbWUgcHJpb3JpdGl6ZS4gIAoKIyBSZWFkIE1vcmUKCltabmFpIGRvY3VtZW50YXRpb24gd2Vic2l0ZSBidWlsdCB3aXRoIFpuYWldKGh0dHBzOi8vdGVzdGluZ2lzZG9jdW1lbnRpbmcub3JnL3puYWkvKQoKRm9yIGN1cmlvcywgem5haSB3b3JkIG1lYW5pbmc6IGB6bmFpYCBpcyBhIGB0byBrbm93YCBpbiBVa3JhbmlhbiBhbmQgaXMgYSBwcmVmaXggZm9yIHdvcmRzIGxpa2UgYGtub3dlbGRnZWAgYXJlIGJ1aWx0IG9uLgoKIyBEZXZlbG9wZXJzIFNldHVwCgpbTG9jYWwgQnVpbGRdKGh0dHBzOi8vdGVzdGluZ2lzZG9jdW1lbnRpbmcub3JnL3puYWkvem5haS1kZXZlbG9wbWVudC9sb2NhbC1idWlsZCkK readmeEtag: '"c3f0053680453328de1144f3e127dc430a6acfee"' readmeLastModified: Wed, 10 Jul 2024 02:13:15 GMT repositoryId: 76669415 description: >- Build functional, maintainable, beautiful User Guides with markdown and Znai plugins. Instant pages navigation. Local search. Multiple integrations to work with Python, Java, C++, OpenAPI, etc. Transform "getting started" sections into slideshow for your workshops. Manage multiple documentations with self-deployed znai hub. created: '2016-12-16T16:42:12Z' updated: '2024-09-04T11:18:40Z' language: Java archived: false stars: 245 watchers: 11 forks: 13 owner: testingisdocumenting logo: https://avatars.githubusercontent.com/u/54154955?v=4 license: Apache-2.0 repoEtag: '"68a6be7360cbde9f3ca7ba5ce2d3923a560ca53d8660e5a6473b4d704ac65ca4"' repoLastModified: Wed, 04 Sep 2024 11:18:40 GMT foundInMaster: true category: Documentation id: e96c15d0478cd8c861932cf44e659757 - source: openapi3 tags repository: https://github.com/swagger-api/swagger-petstore v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIFBldHN0b3JlIFNhbXBsZQoKIyMgT3ZlcnZpZXcKVGhpcyBpcyB0aGUgcGV0IHN0b3JlIHNhbXBsZSBob3N0ZWQgYXQgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby4gRm9yIG90aGVyIHZlcnNpb25zLCBjaGVjayB0aGUgYnJhbmNoZXMuCldlIHdlbGNvbWUgc3VnZ2VzdGlvbiBib3RoIHRoZSBjb2RlIGFuZCB0aGUgQVBJIGRlc2lnbi4KVG8gbWFrZSBjaGFuZ2VzIHRvIHRoZSBkZXNpZ24gaXRzZWxmLCB0YWtlIGEgbG9vayBhdCBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wZXRzdG9yZS9ibG9iL21hc3Rlci9zcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaS55YW1sLgoKVGhpcyBpcyBhIGphdmEgcHJvamVjdCB0byBidWlsZCBhIHN0YW5kLWFsb25lIHNlcnZlciB3aGljaCBpbXBsZW1lbnRzIHRoZSBPcGVuQVBJIDMgU3BlYy4gIFlvdSBjYW4gZmluZCBvdXQKbW9yZSBhYm91dCBib3RoIHRoZSBzcGVjIGFuZCB0aGUgZnJhbWV3b3JrIGF0IGh0dHA6Ly9zd2FnZ2VyLmlvLgoKVGhpcyBzYW1wbGUgaXMgYmFzZWQgb24gW3N3YWdnZXItaW5mbGVjdG9yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1pbmZsZWN0b3IpLCBhbmQgcHJvdmlkZXMgYW4gZXhhbXBsZSBvZiBzd2FnZ2VyIC8gT3BlbkFQSSAzIHBldHN0b3JlLgoKIyMjIFRvIHJ1biAod2l0aCBNYXZlbikKVG8gcnVuIHRoZSBzZXJ2ZXIsIHJ1biB0aGlzIHRhc2s6CgpgYGAKbXZuIHBhY2thZ2UgamV0dHk6cnVuCmBgYAoKVGhpcyB3aWxsIHN0YXJ0IEpldHR5IGVtYmVkZGVkIG9uIHBvcnQgODA4MC4KCiMjIyBUbyBydW4gKHZpYSBEb2NrZXIpCgpFeHBvc2UgcG9ydCA4MDgwIGZyb20gdGhlIGltYWdlIGFuZCBhY2Nlc3MgcGV0c3RvcmUgdmlhIHRoZSBleHBvc2VkIHBvcnQuIFlvdSBjYW4gdGhlbiBhZGQgYW5kIGRlbGV0ZSBwZXRzIGFzIHlvdSBzZWUgZml0LgoKCipFeGFtcGxlKjoKCmBgYApkb2NrZXIgYnVpbGQgLXQgc3dhZ2dlcmFwaS9wZXRzdG9yZTM6dW5zdGFibGUgLgpgYGAKCmBgYApkb2NrZXIgcHVsbCBzd2FnZ2VyYXBpL3BldHN0b3JlMzp1bnN0YWJsZQpkb2NrZXIgcnVuICAtLW5hbWUgc3dhZ2dlcmFwaS1wZXRzdG9yZTMgLWQgLXAgODA4MDo4MDgwIHN3YWdnZXJhcGkvcGV0c3RvcmUzOnVuc3RhYmxlCmBgYAoKCiMjIyBUZXN0aW5nIHRoZSBzZXJ2ZXIKT25jZSBzdGFydGVkLCB5b3UgY2FuIG5hdmlnYXRlIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvdjMvb3BlbmFwaS5qc29uIHRvIHZpZXcgdGhlIFN3YWdnZXIgUmVzb3VyY2UgTGlzdGluZy4KVGhpcyB0ZWxscyB5b3UgdGhhdCB0aGUgc2VydmVyIGlzIHVwIGFuZCByZWFkeSB0byBkZW1vbnN0cmF0ZSBTd2FnZ2VyLgoKIyMjIFVzaW5nIHRoZSBVSQpUaGVyZSBpcyBhbiBIVE1MNS1iYXNlZCBBUEkgdG9vbCBidW5kbGVkIGluIHRoaXMgc2FtcGxlLS15b3UgY2FuIHZpZXcgaXQgaXQgYXQgW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MF0oaHR0cDovL2xvY2FsaG9zdDo4MDgwKS4gVGhpcyBsZXRzIHlvdSBpbnNwZWN0IHRoZSBBUEkgdXNpbmcgYW4gaW50ZXJhY3RpdmUgVUkuICBZb3UgY2FuIGFjY2VzcyB0aGUgc291cmNlIG9mIHRoaXMgY29kZSBmcm9tIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkK readmeEtag: '"e5785f36018cb57032061dd4aa947a0f4a9cefea"' readmeLastModified: Tue, 19 Mar 2024 10:08:17 GMT repositoryId: 206982975 description: null created: '2019-09-07T14:54:31Z' updated: '2024-08-28T15:49:03Z' language: Java archived: false stars: 245 watchers: 15 forks: 346 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"2118ab0dcca14d38db4e2ca27f91282c3b7a29ca0888f969454ab819f1fc21d2"' repoLastModified: Wed, 28 Aug 2024 15:49:03 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 627140381c10e9bd5f0466dbf6f3b01d - source: openapi3 tags repository: https://github.com/samchungy/zod-openapi v3: true id: c86edd8c7126bca7973ca68a5b5bd9e1 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9InpvZC1vcGVuYXBpLnN2ZyIgd2lkdGg9IjIwMHB4IiBhbGlnbj0iY2VudGVyIiBhbHQ9InpvZC1vcGVuYXBpIGxvZ28iIC8+CiAgPGgxIGFsaWduPSJjZW50ZXIiPnpvZC1vcGVuYXBpPC9oMT4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KQSBUeXBlc2NyaXB0IGxpYnJhcnkgdG8gdXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jb2xpbmhhY2tzL3pvZCI+Wm9kPC9hPiBTY2hlbWFzIHRvIGNyZWF0ZSBPcGVuQVBJIHYzLnggZG9jdW1lbnRhdGlvbgo8L3A+CjxkaXYgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3pvZC1vcGVuYXBpIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi96b2Qtb3BlbmFwaSIvPjxhPgo8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS96b2Qtb3BlbmFwaSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL3pvZC1vcGVuYXBpIi8+PGE+CjxhIGhyZWY9Imh0dHBzOi8vbm9kZWpzLm9yZy9lbi8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL25vZGUtJTNFJTNEJTIwMTYuMTEtYnJpZ2h0Z3JlZW4iLz48YT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NhbWNodW5neS96b2Qtb3BlbmFwaS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbCI+PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9zYW1jaHVuZ3kvem9kLW9wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55bWwvYmFkZ2Uuc3ZnIi8+PGE+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zYW1jaHVuZ3kvem9kLW9wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvcmVsZWFzZS55bWwiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vc2FtY2h1bmd5L3pvZC1vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL3JlbGVhc2UueW1sL2JhZGdlLnN2ZyIvPjxhPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2Vlay1vc3Mvc2t1YmEiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL/CfpL8lMjBza3ViYS1wb3dlcmVkLTAwOURDNCIvPjxhPgo8L2Rpdj4KPGJyPgoKIyMgSW5zdGFsbAoKSW5zdGFsbCB2aWEgYG5wbWAsIGB5YXJuYCBvciBgcG5wbWA6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIHpvZCB6b2Qtb3BlbmFwaQojIyBvcgp5YXJuIGFkZCB6b2Qgem9kLW9wZW5hcGkKIyMgb3IKcG5wbSBpbnN0YWxsIHpvZCB6b2Qtb3BlbmFwaQpgYGAKCiMjIFVzYWdlCgojIyMgRXh0ZW5kIFpvZAoKVGhpcyBtdXRhdGVzIFpvZCB0byBhZGQgYW4gZXh0cmEgYC5vcGVuYXBpKClgIG1ldGhvZC4gQ2FsbCB0aGlzIGF0IHRoZSB0b3Agb2YgeW91ciBlbnRyeSBwb2ludChzKS4gWW91IGNhbiBhY2hpZXZlIHRoaXMgaW4gdHdvIGRpZmZlcmVudCB3YXlzLCBkZXBlbmRpbmcgb24geW91ciBwcmVmZXJlbmNlLgoKIyMjIyBTdWJwYXRoIEltcG9ydAoKYGBgdHMKaW1wb3J0ICd6b2Qtb3BlbmFwaS9leHRlbmQnOwppbXBvcnQgeyB6IH0gZnJvbSAnem9kJzsKCnouc3RyaW5nKCkub3BlbmFwaSh7IGRlc2NyaXB0aW9uOiAnaGVsbG8gd29ybGQhJywgZXhhbXBsZTogJ2hlbGxvIHdvcmxkJyB9KTsKYGBgCgojIyMjIE1hbnVhbCBFeHRlbnNpb24KClRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgWm9kIG9yIGEgWm9kIGluc3RhbmNlIGZyb20gYW5vdGhlciBsaWJyYXJ5IHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gdGFyZ2V0LgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyB6IH0gZnJvbSAnem9kJzsKaW1wb3J0IHsgZXh0ZW5kWm9kV2l0aE9wZW5BcGkgfSBmcm9tICd6b2Qtb3BlbmFwaSc7CgpleHRlbmRab2RXaXRoT3BlbkFwaSh6KTsKCnouc3RyaW5nKCkub3BlbmFwaSh7IGRlc2NyaXB0aW9uOiAnaGVsbG8gd29ybGQhJywgZXhhbXBsZTogJ2hlbGxvIHdvcmxkJyB9KTsKYGBgCgojIyMjIGAub3BlbmFwaSgpYAoKVXNlIHRoZSBgLm9wZW5hcGkoKWAgbWV0aG9kIHRvIGFkZCBtZXRhZGF0YSB0byBhIHNwZWNpZmljIFpvZCB0eXBlLiBUaGUgYC5vcGVuYXBpKClgIG1ldGhvZCB0YWtlcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6Cgp8ICAgICBPcHRpb24gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwKfCBPcGVuQVBJIE9wdGlvbnMgfCBUaGlzIHdpbGwgdGFrZSBhbnkgb3B0aW9uIHlvdSB3b3VsZCBwdXQgb24gYSBbU2NoZW1hT2JqZWN0XShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL2RhdGEtdHlwZXMvKS4gfAp8ICBgZWZmZWN0VHlwZWAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgdG8gb3ZlcnJpZGUgdGhlIGNyZWF0aW9uIHR5cGUgZm9yIGEgW1pvZCBFZmZlY3RdKCN6b2QtZWZmZWN0cykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgYGhlYWRlcmAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgdG8gcHJvdmlkZSBtZXRhZGF0YSBmb3IgW3Jlc3BvbnNlIGhlYWRlcnNdKCNyZXNwb25zZS1oZWFkZXJzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgYHBhcmFtYCAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlIHRvIHByb3ZpZGUgbWV0YWRhdGEgZm9yIFtyZXF1ZXN0IHBhcmFtZXRlcnNdKCNwYXJhbWV0ZXJzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgYHJlZmAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgVXNlIHRoaXMgdG8gW2F1dG8gcmVnaXN0ZXIgYSBzY2hlbWEgYXMgYSByZS11c2FibGUgY29tcG9uZW50XSgjY3JlYXRpbmctY29tcG9uZW50cykgICAgICAgICAgICAgICAgICAgICB8CnwgICAgYHJlZlR5cGVgICAgIHwgICAgICAgICAgICAgICAgIFVzZSB0aGlzIHRvIHNldCB0aGUgY3JlYXRpb24gdHlwZSBmb3IgYSBjb21wb25lbnQgd2hpY2ggaXMgbm90IHJlZmVyZW5jZWQgaW4gdGhlIGRvY3VtZW50LiAgICAgICAgICAgICAgICAgIHwKfCAgICAgYHR5cGVgICAgICAgfCAgICAgICAgICAgICAgICAgVXNlIHRoaXMgdG8gb3ZlcnJpZGUgdGhlIGdlbmVyYXRlZCB0eXBlLiBJZiB0aGlzIGlzIHByb3ZpZGVkIG5vIG1ldGFkYXRhIHdpbGwgYmUgZ2VuZXJhdGVkLiAgICAgICAgICAgICAgICAgfAp8ICBgdW5pb25PbmVPZmAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRvIGB0cnVlYCB0byBmb3JjZSBhIFpvZFVuaW9uIHRvIG91dHB1dCBgb25lT2ZgIGluc3RlYWQgb2YgYGFsbE9mYCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyMgYGNyZWF0ZURvY3VtZW50YAoKQ3JlYXRlcyBhbiBPcGVuQVBJIGRvY3VtZW50YXRpb24gb2JqZWN0CgpgYGB0eXBlc2NyaXB0CmltcG9ydCAnem9kLW9wZW5hcGkvZXh0ZW5kJzsKaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7CmltcG9ydCB7IGNyZWF0ZURvY3VtZW50IH0gZnJvbSAnem9kLW9wZW5hcGknOwoKY29uc3Qgam9iSWQgPSB6LnN0cmluZygpLm9wZW5hcGkoewogIGRlc2NyaXB0aW9uOiAnQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBqb2InLAogIGV4YW1wbGU6ICcxMjM0NScsCiAgcmVmOiAnam9iSWQnLAp9KTsKCmNvbnN0IHRpdGxlID0gei5zdHJpbmcoKS5vcGVuYXBpKHsKICBkZXNjcmlwdGlvbjogJ0pvYiB0aXRsZScsCiAgZXhhbXBsZTogJ015IGpvYicsCn0pOwoKY29uc3QgZG9jdW1lbnQgPSBjcmVhdGVEb2N1bWVudCh7CiAgb3BlbmFwaTogJzMuMS4wJywKICBpbmZvOiB7CiAgICB0aXRsZTogJ015IEFQSScsCiAgICB2ZXJzaW9uOiAnMS4wLjAnLAogIH0sCiAgcGF0aHM6IHsKICAgICcvam9icy97am9iSWR9JzogewogICAgICBwdXQ6IHsKICAgICAgICByZXF1ZXN0UGFyYW1zOiB7IHBhdGg6IHoub2JqZWN0KHsgam9iSWQgfSkgfSwKICAgICAgICByZXF1ZXN0Qm9keTogewogICAgICAgICAgY29udGVudDogewogICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiB6Lm9iamVjdCh7IHRpdGxlIH0pIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgcmVzcG9uc2VzOiB7CiAgICAgICAgICAnMjAwJzogewogICAgICAgICAgICBkZXNjcmlwdGlvbjogJzIwMCBPSycsCiAgICAgICAgICAgIGNvbnRlbnQ6IHsKICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiB6Lm9iamVjdCh7IGpvYklkLCB0aXRsZSB9KSB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9LAp9KTsKYGBgCgo8ZGV0YWlscz4KICA8c3VtbWFyeT5DcmVhdGVzIHRoZSBmb2xsb3dpbmcgb2JqZWN0Ojwvc3VtbWFyeT4KICAKICBgYGBqc29uCiAgewogICAgIm9wZW5hcGkiOiAiMy4xLjAiLAogICAgImluZm8iOiB7CiAgICAgICJ0aXRsZSI6ICJNeSBBUEkiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCIKICAgIH0sCiAgICAicGF0aHMiOiB7CiAgICAgICIvam9icy97am9iSWR9IjogewogICAgICAgICJwdXQiOiB7CiAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgICAibmFtZSI6ICJqb2JJZCIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgam9iIiwKICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvam9iSWQiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInJlcXVlc3RCb2R5IjogewogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSm9iIHRpdGxlIiwKICAgICAgICAgICAgICAgICAgICAgICJleGFtcGxlIjogIk15IGpvYiIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsidGl0bGUiXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIjIwMCBPSyIsCiAgICAgICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICAgImpvYklkIjogewogICAgICAgICAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9qb2JJZCIKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAidGl0bGUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJKb2IgdGl0bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhhbXBsZSI6ICJNeSBqb2IiCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbImpvYklkIiwgInRpdGxlIl0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICJjb21wb25lbnRzIjogewogICAgICAic2NoZW1hcyI6IHsKICAgICAgICAiam9iSWQiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgam9iIiwKICAgICAgICAgICJleGFtcGxlIjogIjEyMzQ1IgogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KICBgYGAKPC9kZXRhaWxzPgoKIyMjIFJlcXVlc3QgUGFyYW1ldGVycwoKUXVlcnksIFBhdGgsIEhlYWRlciAmIENvb2tpZSBwYXJhbWV0ZXJzIGNhbiBiZSBjcmVhdGVkIHVzaW5nIHRoZSBgcmVxdWVzdFBhcmFtc2Aga2V5IHVuZGVyIHRoZSBgbWV0aG9kYCBrZXkgYXMgZm9sbG93czoKCmBgYHR5cGVzY3JpcHQKY3JlYXRlRG9jdW1lbnQoewogIHBhdGhzOiB7CiAgICAnL2pvYnMve2F9JzogewogICAgICBwdXQ6IHsKICAgICAgICByZXF1ZXN0UGFyYW1zOiB7CiAgICAgICAgICBwYXRoOiB6Lm9iamVjdCh7IGE6IHouc3RyaW5nKCkgfSksCiAgICAgICAgICBxdWVyeTogei5vYmplY3QoeyBiOiB6LnN0cmluZygpIH0pLAogICAgICAgICAgY29va2llOiB6Lm9iamVjdCh7IGNvb2tpZTogei5zdHJpbmcoKSB9KSwKICAgICAgICAgIGhlYWRlcjogei5vYmplY3QoeyAnY3VzdG9tLWhlYWRlcic6IHouc3RyaW5nKCkgfSksCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgfSwKfSk7CmBgYAoKSWYgeW91IHdvdWxkIGxpa2UgdG8gZGVjbGFyZSBwYXJhbWV0ZXJzIGluIGEgbW9yZSB0cmFkaXRpb25hbCB3YXkgeW91IG1heSBhbHNvIGRlY2xhcmUgdGhlbSB1c2luZyB0aGUgW3BhcmFtZXRlcnNdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGVzY3JpYmluZy1wYXJhbWV0ZXJzLykga2V5LiBUaGUgZGVmaW5pdGlvbnMgd2lsbCB0aGVuIGFsbCBiZSBjb21iaW5lZC4KCmBgYHRzCmNyZWF0ZURvY3VtZW50KHsKICBwYXRoczogewogICAgJy9qb2JzL3thfSc6IHsKICAgICAgcHV0OiB7CiAgICAgICAgcGFyYW1ldGVyczogWwogICAgICAgICAgei5zdHJpbmcoKS5vcGVuYXBpKHsKICAgICAgICAgICAgcGFyYW06IHsKICAgICAgICAgICAgICBuYW1lOiAnam9iLWhlYWRlcicsCiAgICAgICAgICAgICAgaW46ICdoZWFkZXInLAogICAgICAgICAgICB9LAogICAgICAgICAgfSksCiAgICAgICAgXSwKICAgICAgfSwKICAgIH0sCiAgfSwKfSk7CmBgYAoKIyMjIFJlcXVlc3QgQm9keQoKV2hlcmUgeW91IHdvdWxkIG5vcm1hbGx5IGRlY2xhcmUgdGhlIFttZWRpYSB0eXBlXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL21lZGlhLXR5cGVzLyksIHNldCB0aGUgYHNjaGVtYWAgYXMgeW91ciBab2QgU2NoZW1hIGFzIGZvbGxvd3MuCgpgYGB0eXBlc2NyaXB0CmNyZWF0ZURvY3VtZW50KHsKICBwYXRoczogewogICAgJy9qb2JzJzogewogICAgICBnZXQ6IHsKICAgICAgICByZXF1ZXN0Qm9keTogewogICAgICAgICAgY29udGVudDogewogICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiB6Lm9iamVjdCh7IGE6IHouc3RyaW5nKCkgfSkgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgfSwKfSk7CmBgYAoKSWYgeW91IHdpc2ggdG8gdXNlIE9wZW5BUEkgc3ludGF4IGZvciB5b3VyIHNjaGVtYXMsIHNpbXBseSBhZGQgYW4gT3BlbkFQSSBzY2hlbWEgdG8gdGhlIGBzY2hlbWFgIGZpZWxkIGluc3RlYWQuCgojIyMgUmVzcG9uc2VzCgpTaW1pbGFybHkgdG8gdGhlIFtSZXF1ZXN0IEJvZHldKCNyZXF1ZXN0LWJvZHkpLCBzaW1wbHkgc2V0IHRoZSBgc2NoZW1hYCBhcyB5b3VyIFpvZCBTY2hlbWEgYXMgZm9sbG93cy4gWW91IGNhbiBzZXQgdGhlIHJlc3BvbnNlIGhlYWRlcnMgdXNpbmcgdGhlIGBoZWFkZXJzYCBrZXkuCgpgYGB0eXBlc2NyaXB0CmNyZWF0ZURvY3VtZW50KHsKICBwYXRoczogewogICAgJy9qb2JzJzogewogICAgICBnZXQ6IHsKICAgICAgICByZXNwb25zZXM6IHsKICAgICAgICAgIDIwMDogewogICAgICAgICAgICBkZXNjcmlwdGlvbjogJzIwMCBPSycsCiAgICAgICAgICAgIGNvbnRlbnQ6IHsKICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiB6Lm9iamVjdCh7IGE6IHouc3RyaW5nKCkgfSkgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaGVhZGVyczogei5vYmplY3QoewogICAgICAgICAgICAgICdoZWFkZXIta2V5Jzogei5zdHJpbmcoKSwKICAgICAgICAgICAgfSksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogIH0sCn0pOwpgYGAKCiMjIyBDYWxsYmFja3MKCmBgYHR5cGVzY3JpcHQKY3JlYXRlRG9jdW1lbnQoewogIHBhdGhzOiB7CiAgICAnL2pvYnMnOiB7CiAgICAgIGdldDogewogICAgICAgIGNhbGxiYWNrczogewogICAgICAgICAgb25EYXRhOiB7CiAgICAgICAgICAgICd7JHJlcXVlc3QucXVlcnkuY2FsbGJhY2tVcmx9L2RhdGEnOiB7CiAgICAgICAgICAgICAgcG9zdDogewogICAgICAgICAgICAgICAgcmVxdWVzdEJvZHk6IHsKICAgICAgICAgICAgICAgICAgY29udGVudDogewogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzogeyBzY2hlbWE6IHoub2JqZWN0KHsgYTogei5zdHJpbmcoKSB9KSB9LAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHJlc3BvbnNlczogewogICAgICAgICAgICAgICAgICAyMDA6IHsKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJzIwMCBPSycsCiAgICAgICAgICAgICAgICAgICAgY29udGVudDogewogICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYTogei5vYmplY3QoeyBhOiB6LnN0cmluZygpIH0pLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9LAp9KTsKYGBgCgojIyMgQ3JlYXRpbmcgQ29tcG9uZW50cwoKT3BlbkFQSSBhbGxvd3MgeW91IHRvIGRlZmluZSByZXVzYWJsZSBbY29tcG9uZW50c10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9jb21wb25lbnRzLykgYW5kIHRoaXMgbGlicmFyeSBhbGxvd3MgeW91IHRvIHJlcGxpY2F0ZSB0aGF0IGluIHR3byBzZXBhcmF0ZSB3YXlzLgoKMS4gQXV0byByZWdpc3RlcmluZyBzY2hlbWEKMi4gTWFudWFsbHkgcmVnaXN0ZXJpbmcgc2NoZW1hCgojIyMjIFNjaGVtYQoKSWYgd2UgdGFrZSB0aGUgZXhhbXBsZSBpbiBgY3JlYXRlRG9jdW1lbnRgIGFuZCBpbnN0ZWFkIGNyZWF0ZSBgdGl0bGVgIGFzIGZvbGxvd3MKCiMjIyMjIEF1dG8gUmVnaXN0ZXJpbmcgU2NoZW1hCgpgYGB0eXBlc2NyaXB0CmNvbnN0IHRpdGxlID0gei5zdHJpbmcoKS5vcGVuYXBpKHsKICBkZXNjcmlwdGlvbjogJ0pvYiB0aXRsZScsCiAgZXhhbXBsZTogJ015IGpvYicsCiAgcmVmOiAnam9iVGl0bGUnLCAvLyA8LSBuZXcgZmllbGQKfSk7CmBgYAoKV2hlcmV2ZXIgYHRpdGxlYCBpcyB1c2VkIGluIHNjaGVtYXMgYWNyb3NzIHRoZSBkb2N1bWVudCwgaXQgd2lsbCBpbnN0ZWFkIGJlIGNyZWF0ZWQgYXMgYSByZWZlcmVuY2UuCgpgYGBqc29uCnsgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvam9iVGl0bGUiIH0KYGBgCgpgdGl0bGVgIHdpbGwgdGhlbiBiZSBvdXRwdXR0ZWQgYXMgYSBzY2hlbWEgd2l0aGluIHRoZSBjb21wb25lbnRzIHNlY3Rpb24gb2YgdGhlIGRvY3VtZW50YXRpb24uCgpgYGBqc29uCnsKICAiY29tcG9uZW50cyI6IHsKICAgICJzY2hlbWFzIjogewogICAgICAiam9iVGl0bGUiOiB7CiAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiSm9iIHRpdGxlIiwKICAgICAgICAiZXhhbXBsZSI6ICJNeSBqb2IiCiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgpUaGlzIGNhbiBiZSBhbiBleHRyZW1lbHkgcG93ZXJmdWwgd2F5IHRvIGNyZWF0ZSBsZXNzIHJlcGV0aXRpdmUgT3BlbiBBUEkgZG9jdW1lbnRhdGlvbi4gVGhlcmUgYXJlIHNvbWUgT3BlbiBBUEkgZmVhdHVyZXMgbGlrZSBbZGlzY3JpbWluYXRvciBtYXBwaW5nXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL2luaGVyaXRhbmNlLWFuZC1wb2x5bW9ycGhpc20vKSB3aGljaCByZXF1aXJlIGFsbCBzY2hlbWFzIGluIHRoZSB1bmlvbiB0byBjb250YWluIGEgcmVmLgoKIyMjIyMgTWFudWFsbHkgUmVnaXN0ZXJpbmcgU2NoZW1hCgpBbm90aGVyIHdheSB0byByZWdpc3RlciBzY2hlbWEgaW5zdGVhZCBvZiBhZGRpbmcgYSBgcmVmYCBpcyB0byBhZGQgaXQgdG8gdGhlIGNvbXBvbmVudHMgZGlyZWN0bHkuIFRoaXMgd2lsbCBzdGlsbCB3b3JrIGluIHRoZSBzYW1lIHdheSBhcyBgcmVmYC4gU28gd2hlbmV2ZXIgd2UgcnVuIGludG8gdGhhdCBab2QgdHlwZSB3ZSB3aWxsIHJlcGxhY2UgaXQgd2l0aCBhIHJlZmVyZW5jZS4KCmVnLgoKYGBgdHlwZXNjcmlwdApjcmVhdGVEb2N1bWVudCh7CiAgY29tcG9uZW50czogewogICAgc2NoZW1hczogewogICAgICBqb2JUaXRsZTogdGl0bGUsIC8vIHRoaXMgd2lsbCByZWdpc3RlciB0aGlzIFpvZCBTY2hlbWEgYXMgam9iVGl0bGUgdW5sZXNzIGByZWZgIGluIGAub3BlbmFwaSgpYCBpcyBzcGVjaWZpZWQgb24gdGhlIHR5cGUKICAgIH0sCiAgfSwKfSk7CmBgYAoKIyMjIyMgWm9kIEVmZmVjdHMKCmAudHJhbnNmb3JtKClgLCBgLmRlZmF1bHQoKWAgYW5kIGAucGlwZSgpYCBhcmUgY29tcGxpY2F0ZWQgYmVjYXVzZSB0aGV5IHRlY2huaWNhbGx5IGNvbXByaXNlIG9mIHR3byB0eXBlcyAoaW5wdXQgJiBvdXRwdXQpLiBUaGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0byB1bmRlcnN0YW5kIHdoaWNoIHR5cGUgeW91IGFyZSBjcmVhdGluZy4gSW4gcGFydGljdWxhciB3aXRoIHRyYW5zZm9ybSBpdCBpcyB2ZXJ5IGRpZmZpY3VsdCB0byBpbmZlciB0aGUgb3V0cHV0IHR5cGUuIFRoaXMgbGlicmFyeSB3aWxsIGF1dG9tYXRpY2FsbHkgc2VsZWN0IHdoaWNoIF90eXBlXyB0byB1c2UgYnkgY2hlY2tpbmcgaG93IHRoZSBzY2hlbWEgaXMgdXNlZCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHJ1bGVzOgoKX0lucHV0XzogUmVxdWVzdCBCb2RpZXMsIFJlcXVlc3QgUGFyYW1ldGVycywgSGVhZGVycwoKX091dHB1dF86IFJlc3BvbnNlcywgUmVzcG9uc2UgSGVhZGVycwoKSWYgYSByZWdpc3RlcmVkIHNjaGVtYSB3aXRoIGEgdHJhbnNmb3JtIG9yIHBpcGVsaW5lIGlzIHVzZWQgaW4gYm90aCBhIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHNjaGVtYSB5b3Ugd2lsbCByZWNlaXZlIGFuIGVycm9yIGJlY2F1c2UgdGhlIGNyZWF0ZWQgc2NoZW1hIGZvciBlYWNoIHdpbGwgYmUgZGlmZmVyZW50LiBUbyBvdmVycmlkZSB0aGUgY3JlYXRpb24gdHlwZSBmb3IgYSBzcGVjaWZpYyBab2RFZmZlY3QsIGFkZCBhbiBgLm9wZW5hcGkoKWAgZmllbGQgb24gaXQgYW5kIHNldCB0aGUgYGVmZmVjdFR5cGVgIGZpZWxkIHRvIGBpbnB1dGAsIGBvdXRwdXRgIG9yIGBzYW1lYC4gVGhpcyB3aWxsIGZvcmNlIHRoaXMgbGlicmFyeSB0byBhbHdheXMgZ2VuZXJhdGUgdGhlIGlucHV0L291dHB1dCB0eXBlIGV2ZW4gaWYgd2UgYXJlIGNyZWF0aW5nIGEgcmVzcG9uc2UgKG91dHB1dCkgb3IgcmVxdWVzdCAoaW5wdXQpIHR5cGUuIFlvdSB0eXBpY2FsbHkgd2FudCB0byBzZXQgdGhpcyB3aGVuIHlvdSBrbm93IHRoZSB0eXBlIGhhcyBub3QgY2hhbmdlZCBpbiB0aGUgdHJhbnNmb3JtLiBgc2FtZWAgaXMgdGhlIHJlY29tbWVuZGVkIGNob2ljZSBhcyBpdCB3aWxsIGdlbmVyYXRlIGEgVHlwZVNjcmlwdCBjb21waWxlciBlcnJvciBpZiB0aGUgaW5wdXQgYW5kIG91dHB1dCB0eXBlcyBpbiB0aGUgdHJhbnNmb3JtIGRyaWZ0LgoKYC5wcmVwcm9jZXNzKClgIHdpbGwgYWx3YXlzIHJldHVybiB0aGUgYG91dHB1dGAgdHlwZSBldmVuIGlmIHdlIGFyZSBjcmVhdGluZyBhbiBpbnB1dCBzY2hlbWEuIElmIGEgZGlmZmVyZW50IGlucHV0IHR5cGUgaXMgcmVxdWlyZWQgeW91IGNhbiBhY2hpZXZlIHRoaXMgd2l0aCBhIGAudHJhbnNmb3JtKClgIGNvbWJpbmVkIHdpdGggYSBgLnBpcGUoKWAgb3Igc2ltcGx5IGRlY2xhcmUgYSBtYW51YWwgYHR5cGVgIGluIGAub3BlbmFwaSgpYC4KCklmIHlvdSBhcmUgYWRkaW5nIGEgWm9kU2NoZW1hIGRpcmVjdGx5IHRvIHRoZSBgY29tcG9uZW50c2Agc2VjdGlvbiB3aGljaCBpcyBub3QgcmVmZXJlbmNlZCBhbnl3aGVyZSBpbiB0aGUgZG9jdW1lbnQsIGFkZGl0aW9uYWwgY29udGV4dCBtYXkgYmUgcmVxdWlyZWQgdG8gY3JlYXRlIGVpdGhlciBhbiBpbnB1dCBvciBvdXRwdXQgc2NoZW1hLiBZb3UgY2FuIGRvIHRoaXMgYnkgc2V0dGluZyB0aGUgYHJlZlR5cGVgIGZpZWxkIHRvIGBpbnB1dGAgb3IgYG91dHB1dGAgaW4gYC5vcGVuYXBpKClgLiBUaGlzIGRlZmF1bHRzIHRvIGBvdXRwdXRgIGJ5IGRlZmF1bHQuCgojIyMjIFBhcmFtZXRlcnMKClF1ZXJ5LCBQYXRoLCBIZWFkZXIgJiBDb29raWUgcGFyYW1ldGVycyBjYW4gYmUgc2ltaWxhcmx5IHJlZ2lzdGVyZWQ6CgpgYGB0eXBlc2NyaXB0Ci8vIEVhc3kgYXV0byByZWdpc3RyYXRpb24KY29uc3Qgam9iSWQgPSB6LnN0cmluZygpLm9wZW5hcGkoewogIGRlc2NyaXB0aW9uOiAnSm9iIElEJywKICBleGFtcGxlOiAnMTIzNCcsCiAgcGFyYW06IHsgcmVmOiAnam9iUmVmJyB9LAp9KTsKCmNyZWF0ZURvY3VtZW50KHsKICBwYXRoczogewogICAgJy9qb2JzL3tqb2JJZH0nOiB7CiAgICAgIHB1dDogewogICAgICAgIHJlcXVlc3RQYXJhbXM6IHsKICAgICAgICAgIGhlYWRlcjogei5vYmplY3QoewogICAgICAgICAgICBqb2JJZCwKICAgICAgICAgIH0pLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogIH0sCn0pOwoKLy8gb3IgbW9yZSB2ZXJib3NlIGF1dG8gcmVnaXN0cmF0aW9uCmNvbnN0IGpvYklkID0gei5zdHJpbmcoKS5vcGVuYXBpKHsKICBkZXNjcmlwdGlvbjogJ0pvYiBJRCcsCiAgZXhhbXBsZTogJzEyMzQnLAogIHBhcmFtOiB7IGluOiAnaGVhZGVyJywgbmFtZTogJ2pvYklkJywgcmVmOiAnam9iUmVmJyB9LAp9KTsKCmNyZWF0ZURvY3VtZW50KHsKICBwYXRoczogewogICAgJy9qb2JzL3tqb2JJZH0nOiB7CiAgICAgIHB1dDogewogICAgICAgIHBhcmFtZXRlcnM6IFtqb2JJZF0sCiAgICAgIH0sCiAgICB9LAogIH0sCn0pOwoKLy8gb3IgbWFudWFsIHJlZ2lzdGVyYXRpb24KY29uc3Qgb3RoZXJKb2JJZCA9IHouc3RyaW5nKCkub3BlbmFwaSh7CiAgZGVzY3JpcHRpb246ICdKb2IgSUQnLAogIGV4YW1wbGU6ICcxMjM0JywKICBwYXJhbTogeyBpbjogJ2hlYWRlcicsIG5hbWU6ICdqb2JJZCcgfSwKfSk7CgpjcmVhdGVEb2N1bWVudCh7CiAgY29tcG9uZW50czogewogICAgcGFyYW1ldGVyczogewogICAgICBqb2JSZWY6IGpvYklkLAogICAgfSwKICB9LAp9KTsKYGBgCgojIyMjIFJlc3BvbnNlIEhlYWRlcnMKClJlc3BvbnNlIGhlYWRlcnMgY2FuIGJlIHNpbWlsYXJseSByZWdpc3RlcmVkOgoKYGBgdHlwZXNjcmlwdApjb25zdCBoZWFkZXIgPSB6LnN0cmluZygpLm9wZW5hcGkoewogIGRlc2NyaXB0aW9uOiAnSm9iIElEJywKICBleGFtcGxlOiAnMTIzNCcsCiAgaGVhZGVyOiB7IHJlZjogJ3NvbWUtaGVhZGVyJyB9LAp9KTsKCi8vIG9yCgpjb25zdCBqb2JJZEhlYWRlciA9IHouc3RyaW5nKCkub3BlbmFwaSh7CiAgZGVzY3JpcHRpb246ICdKb2IgSUQnLAogIGV4YW1wbGU6ICcxMjM0JywKfSk7CgpjcmVhdGVEb2N1bWVudCh7CiAgY29tcG9uZW50czogewogICAgaGVhZGVyczogewogICAgICBzb21lSGVhZGVyUmVmOiBqb2JJZEhlYWRlciwKICAgIH0sCiAgfSwKfSk7CmBgYAoKIyMjIyBSZXNwb25zZXMKCkVudGlyZSBSZXNwb25zZXMgY2FuIGFsc28gYmUgcmVnaXN0ZXJlZAoKYGBgdHlwZXNjcmlwdApjb25zdCByZXNwb25zZTogWm9kT3BlbkFwaVJlc3BvbnNlT2JqZWN0ID0gewogIGRlc2NyaXB0aW9uOiAnMjAwIE9LJywKICBjb250ZW50OiB7CiAgICAnYXBwbGljYXRpb24vanNvbic6IHsKICAgICAgc2NoZW1hOiB6Lm9iamVjdCh7IGE6IHouc3RyaW5nKCkgfSksCiAgICB9LAogIH0sCiAgcmVmOiAnc29tZS1yZXNwb25zZScsCn07CgovL29yCgpjb25zdCByZXNwb25zZTogWm9kT3BlbkFwaVJlc3BvbnNlT2JqZWN0ID0gewogIGRlc2NyaXB0aW9uOiAnMjAwIE9LJywKICBjb250ZW50OiB7CiAgICAnYXBwbGljYXRpb24vanNvbic6IHsKICAgICAgc2NoZW1hOiB6Lm9iamVjdCh7IGE6IHouc3RyaW5nKCkgfSksCiAgICB9LAogIH0sCn07CgpjcmVhdGVEb2N1bWVudCh7CiAgY29tcG9uZW50czogewogICAgcmVzcG9uc2VzOiB7CiAgICAgICdzb21lLXJlc3BvbnNlJzogcmVzcG9uc2UsCiAgICB9LAogIH0sCn0pOwpgYGAKCiMjIyMgQ2FsbGJhY2tzCgpDYWxsYmFja3MgY2FuIGFsc28gYmUgcmVnaXN0ZXJlZAoKYGBgdHlwZXNjcmlwdApjb25zdCBjYWxsYmFjazogWm9kT3BlbkFwaUNhbGxiYWNrT2JqZWN0ID0gewogIHJlZjogJ3NvbWUtY2FsbGJhY2snCiAgcG9zdDogewogICAgcmVzcG9uc2VzOiB7CiAgICAgIDIwMDogewogICAgICAgIGRlc2NyaXB0aW9uOiAnMjAwIE9LJywKICAgICAgICBjb250ZW50OiB7CiAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHsKICAgICAgICAgICAgc2NoZW1hOiB6Lm9iamVjdCh7IGE6IHouc3RyaW5nKCkgfSksCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogIH0sCn07CgovL29yCgpjb25zdCBjYWxsYmFjazogWm9kT3BlbkFwaUNhbGxiYWNrT2JqZWN0ID0gewogIHBvc3Q6IHsKICAgIHJlc3BvbnNlczogewogICAgICAyMDA6IHsKICAgICAgICBkZXNjcmlwdGlvbjogJzIwMCBPSycsCiAgICAgICAgY29udGVudDogewogICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7CiAgICAgICAgICAgIHNjaGVtYTogei5vYmplY3QoeyBhOiB6LnN0cmluZygpIH0pLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9LAp9OwoKY3JlYXRlRG9jdW1lbnQoewogIGNvbXBvbmVudHM6IHsKICAgIGNhbGxiYWNrczogewogICAgICAnc29tZS1jYWxsYmFjayc6IGNhbGxiYWNrLAogICAgfSwKICB9LAp9KTsKYGBgCgojIyBTdXBwb3J0ZWQgT3BlbkFQSSBWZXJzaW9ucwoKQ3VycmVudGx5IHRoZSBmb2xsb3dpbmcgdmVyc2lvbnMgb2YgT3BlbkFQSSBhcmUgc3VwcG9ydGVkCgotIGAzLjAuMGAKLSBgMy4wLjFgCi0gYDMuMC4yYAotIGAzLjAuM2AKLSBgMy4xLjBgCgpTZXR0aW5nIHRoZSBgb3BlbmFwaWAgZmllbGQgd2lsbCBjaGFuZ2UgaG93IHRoZSBzb21lIG9mIHRoZSBjb21wb25lbnRzIGFyZSByZW5kZXJlZC4KCmBgYHRzCmNyZWF0ZURvY3VtZW50KHsKICBvcGVuYXBpOiAnMy4xLjAnLAp9KTsKYGBgCgpGb3IgZXhhbXBsZSBpbiBgei5zdHJpbmcoKS5udWxsYWJsZSgpYCB3aWxsIGJlIHJlbmRlcmVkIGRpZmZlcmVudGx5CgpgMy4wLjBgCgpgYGBqc29uCnsKICAidHlwZSI6ICJzdHJpbmciLAogICJudWxsYWJsZSI6IHRydWUKfQpgYGAKCmAzLjEuMGAKCmBgYGpzb24KewogICJ0eXBlIjogWyJzdHJpbmciLCAibnVsbCJdCn0KYGBgCgojIyBTdXBwb3J0ZWQgWm9kIFNjaGVtYQoKLSBab2RBbnkKLSBab2RBcnJheQogIC0gYG1pbkl0ZW1zYC9gbWF4SXRlbXNgIG1hcHBpbmcgZm9yIGAubGVuZ3RoKClgLCBgLm1pbigpYCwgYC5tYXgoKWAKLSBab2RCb29sZWFuCi0gWm9kQnJhbmRlZAotIFpvZENhdGNoCi0gWm9kRGF0ZQogIC0gYHR5cGVgIGlzIG1hcHBlZCBhcyBgc3RyaW5nYCBieSBkZWZhdWx0Ci0gWm9kRGVmYXVsdAotIFpvZERpc2NyaW1pbmF0ZWRVbmlvbgogIC0gYGRpc2NyaW1pbmF0b3JgIG1hcHBpbmcgd2hlbiBhbGwgc2NoZW1hcyBpbiB0aGUgdW5pb24gYXJlIFtyZWdpc3RlcmVkXSgjY3JlYXRpbmctY29tcG9uZW50cykuIFRoZSBkaXNjcmltaW5hdG9yIG11c3QgYmUgYSBgWm9kTGl0ZXJhbGAsIGBab2RFbnVtYCBvciBgWm9kTmF0aXZlRW51bWAgd2l0aCBzdHJpbmcgdmFsdWVzLiBPbmx5IHZhbHVlcyB3cmFwcGVkIGluIGBab2RCcmFuZGVkYCwgYFpvZFJlYWRPbmx5YCBhbmQgYFpvZENhdGNoYCBhcmUgc3VwcG9ydGVkLgotIFpvZEVmZmVjdHMKICAtIGB0cmFuc2Zvcm1gIHN1cHBvcnQgZm9yIHJlcXVlc3Qgc2NoZW1hcy4gU2VlIFtab2QgRWZmZWN0c10oI3pvZC1lZmZlY3RzKSBmb3IgaG93IHRvIGVuYWJsZSByZXNwb25zZSBzY2hlbWEgc3VwcG9ydAogIC0gYHByZS1wcm9jZXNzYCBzdXBwb3J0LiBXZSBhc3N1bWUgdGhhdCB0aGUgaW5wdXQgdHlwZSBpcyB0aGUgc2FtZSBhcyB0aGUgb3V0cHV0IHR5cGUuIE90aGVyd2lzZSBwaXBlIGFuZCB0cmFuc2Zvcm0gY2FuIGJlIHVzZWQgaW5zdGVhZC4KICAtIGByZWZpbmVgIGZ1bGwgc3VwcG9ydAotIFpvZEVudW0KLSBab2RJbnRlcnNlY3Rpb24KLSBab2RMYXp5CiAgLSBUaGUgcmVjdXJzaXZlIHNjaGVtYSB3aXRoaW4gdGhlIFpvZExhenkgb3IgdGhlIFpvZExhenkgXyoqbXVzdCoqXyBiZSByZWdpc3RlcmVkIGFzIGEgY29tcG9uZW50LiBTZWUgW0NyZWF0aW5nIENvbXBvbmVudHNdKCNjcmVhdGluZy1jb21wb25lbnRzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSBab2RMaXRlcmFsCi0gWm9kTmF0aXZlRW51bQogIC0gc3VwcG9ydGluZyBgc3RyaW5nYCwgYG51bWJlcmAgYW5kIGNvbWJpbmVkIGVudW1zLgotIFpvZE5ldmVyCi0gWm9kTnVsbAotIFpvZE51bGxhYmxlCi0gWm9kTnVtYmVyCiAgLSBgaW50ZWdlcmAgYHR5cGVgIG1hcHBpbmcgZm9yIGAuaW50KClgCiAgLSBgZXhjbHVzaXZlTWluYC9gbWluYC9gZXhjbHVzaXZlTWF4YC9gbWF4YCBtYXBwaW5nIGZvciBgLm1pbigpYCwgYC5tYXgoKWAsIGBsdCgpYCwgYGd0KClgCi0gWm9kT2JqZWN0CiAgLSBgYWRkaXRpb25hbFByb3BlcnRpZXNgIG1hcHBpbmcgZm9yIGAuY2F0Y2hhbGwoKWAsIGAuc3RyaWN0KClgCiAgLSBgYWxsT2ZgIG1hcHBpbmcgZm9yIGAuZXh0ZW5kKClgIHdoZW4gdGhlIGJhc2Ugb2JqZWN0IGlzIHJlZ2lzdGVyZWQgYW5kIGRvZXMgbm90IGhhdmUgYGNhdGNoYWxsKClgLCBgc3RyaWN0KClgIGFuZCBleHRlbnNpb24gZG9lcyBub3Qgb3ZlcnJpZGUgYSBmaWVsZC4KLSBab2RPcHRpb25hbAotIFpvZFBpcGVsaW5lCiAgLSBTZWUgW1pvZCBFZmZlY3RzXSgjem9kLWVmZmVjdHMpIGZvciBtb3JlIGluZm9ybWF0aW9uLgotIFpvZFJlYWRvbmx5Ci0gWm9kUmVjb3JkCi0gWm9kU2V0CiAgLSBUcmVhdGVkIGFzIGFuIGFycmF5IHdpdGggYHVuaXF1ZUl0ZW1zYCAoeW91IG1heSBuZWVkIHRvIGFkZCBhIHByZS1wcm9jZXNzIHRvIGNvbnZlcnQgaXQgdG8gYSBzZXQpCi0gWm9kU3RyaW5nCiAgLSBgZm9ybWF0YCBtYXBwaW5nIGZvciBgLnVybCgpYCwgYC51dWlkKClgLCBgLmVtYWlsKClgLCBgLmRhdGV0aW1lKClgLCBgLmRhdGUoKWAsIGAudGltZSgpYCwgYC5kdXJhdGlvbigpYAogIC0gYG1pbkxlbmd0aGAvYG1heExlbmd0aGAgbWFwcGluZyBmb3IgYC5sZW5ndGgoKWAsIGAubWluKClgLCBgLm1heCgpYAogIC0gYHBhdHRlcm5gIG1hcHBpbmcgZm9yIGAucmVnZXgoKWAsIGAuc3RhcnRzV2l0aCgpYCwgYC5lbmRzV2l0aCgpYCwgYC5pbmNsdWRlcygpYAogIC0gYGNvbnRlbnRFbmNvZGluZ2AgbWFwcGluZyBmb3IgYC5iYXNlNjQoKWAgZm9yIE9wZW5BUEkgMy4xLjArCi0gWm9kVHVwbGUKICAtIGBpdGVtc2AgbWFwcGluZyBmb3IgYC5yZXN0KClgCiAgLSBgcHJlZml4SXRlbXNgIG1hcHBpbmcgZm9yIE9wZW5BUEkgMy4xLjArCi0gWm9kVW5kZWZpbmVkCi0gWm9kVW5pb24KICAtIEJ5IGRlZmF1bHQgaXQgb3V0cHV0cyBhbiBgYWxsT2ZgIHNjaGVtYS4gVXNlIGB1bmlvbk9uZU9mYCB0byBjaGFuZ2UgdGhpcyB0byBvdXRwdXQgYG9uZU9mYCBpbnN0ZWFkLgotIFpvZFVua25vd24KCklmIHRoaXMgbGlicmFyeSBjYW5ub3QgZGV0ZXJtaW5lIGEgdHlwZSBmb3IgYSBab2QgU2NoZW1hLCBpdCB3aWxsIHRocm93IGFuIGVycm9yLiBUbyBhdm9pZCB0aGlzLCBkZWNsYXJlIGEgbWFudWFsIGB0eXBlYCBpbiB0aGUgYC5vcGVuYXBpKClgIHNlY3Rpb24gb2YgdGhhdCBzY2hlbWEuCgplZy4KCmBgYHR5cGVzY3JpcHQKei5jdXN0b20oKS5vcGVuYXBpKHsgdHlwZTogJ3N0cmluZycgfSk7CmBgYAoKIyMgRXhhbXBsZXMKClNlZSB0aGUgbGlicmFyeSBpbiB1c2UgaW4gdGhlIFtleGFtcGxlc10oLi9leGFtcGxlcy8pIGZvbGRlci4KCi0gU2ltcGxlIC0gW3NldHVwXSguL2V4YW1wbGVzL3NpbXBsZS9jcmVhdGVTY2hlbWEudHMpIHwgW29wZW5hcGkueW1sXSguL2V4YW1wbGVzL3NpbXBsZS9vcGVuYXBpLnltbCkgfCBbcmVkb2MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9zYW1jaHVuZ3kuZ2l0aHViLmlvL3pvZC1vcGVuYXBpL2V4YW1wbGVzL3NpbXBsZS9yZWRvYy1zdGF0aWMuaHRtbCkKCiMjIEVjb3N5c3RlbQoKLSBbZmFzdGlmeS16b2Qtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbWNodW5neS9mYXN0aWZ5LXpvZC1vcGVuYXBpKSAtIEZhc3RpZnkgcGx1Z2luIGZvciB6b2Qtb3BlbmFwaS4gVGhpcyBpbmNsdWRlcyB0eXBlIHByb3ZpZGVyLCBab2Qgc2NoZW1hIHZhbGlkYXRpb24sIFpvZCBzY2hlbWEgc2VyaWFsaXphdGlvbiBhbmQgU3dhZ2dlciBVSSBzdXBwb3J0LgoKLSBbZXNsaW50LXBsdWdpbi16b2Qtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbWNodW5neS9lc2xpbnQtcGx1Z2luLXpvZC1vcGVuYXBpKSAtIEVzbGludCBydWxlcyBmb3Igem9kLW9wZW5hcGkuIFRoaXMgaW5jbHVkZXMgZmVhdHVyZXMgd2hpY2ggY2FuIGF1dG9nZW5lcmF0ZSBUeXBlc2NyaXB0IGNvbW1lbnRzIGZvciB5b3VyIFpvZCB0eXBlcyBiYXNlZCBvbiB5b3VyIGBkZXNjcmlwdGlvbmAsIGBleGFtcGxlYCBhbmQgYGRlcHJlY2F0ZWRgIGZpZWxkcy4KCiMjIENvbXBhcmlzb25zCgojIyMgW0Bhc3RlYXNvbHV0aW9ucy96b2QtdG8tb3BlbmFwaV0oLi9kb2NzL2NvbXBhcmlzb25zLm1kKQoKIyMgRGV2ZWxvcG1lbnQKCiMjIyBQcmVyZXF1aXNpdGVzCgotIE5vZGUuanMgTFRTCi0gcG5wbQoKYGBgc2hlbGwKcG5wbQpwbnBtIGJ1aWxkCmBgYAoKIyMjIFRlc3QKCmBgYHNoZWxsCnBucG0gdGVzdApgYGAKCiMjIyBMaW50CgpgYGBzaGVsbAojIEZpeCBpc3N1ZXMKcG5wbSBmb3JtYXQKCiMgQ2hlY2sgZm9yIGlzc3VlcwpwbnBtIGxpbnQKYGBgCgojIyMgUmVsZWFzZQoKVG8gcmVsZWFzZSBhIG5ldyB2ZXJzaW9uCgoxLiBDcmVhdGUgYSBbbmV3IEdpdEh1YiBSZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vc2FtY2h1bmd5L3pvZC1vcGVuYXBpL3JlbGVhc2VzL25ldykKMi4gU2VsZWN0IGDwn4+377iPIENob29zZSBhIHRhZ2AsIGVudGVyIGEgdmVyc2lvbiBudW1iZXIuIGVnLiBgdjEuMi4wYCBhbmQgY2xpY2sgYCsgQ3JlYXRlIG5ldyB0YWc6IHZYLlguWCBvbiBwdWJsaXNoYC4KMy4gQ2xpY2sgdGhlIGBHZW5lcmF0ZSByZWxlYXNlIG5vdGVzYCBidXR0b24gYW5kIGFkanVzdCB0aGUgZGVzY3JpcHRpb24uCjQuIFRpY2sgdGhlIGBTZXQgYXMgdGhlIGxhdGVzdCByZWxlYXNlYCBib3ggYW5kIGNsaWNrIGBQdWJsaXNoIHJlbGVhc2VgLiBUaGlzIHdpbGwgdHJpZ2dlciB0aGUgYFJlbGVhc2VgIHdvcmtmbG93Lgo1LiBDaGVjayB0aGUgYFB1bGwgUmVxdWVzdHNgIHRhYiBmb3IgYSBQUiBsYWJlbGxlZCBgUmVsZWFzZSB2WC5YLlhgLgo2LiBDbGljayBgTWVyZ2UgUHVsbCBSZXF1ZXN0YCBvbiB0aGF0IFB1bGwgUmVxdWVzdCB0byB1cGRhdGUgbWFzdGVyIHdpdGggdGhlIG5ldyBwYWNrYWdlIHZlcnNpb24uCgpUbyByZWxlYXNlIGEgbmV3IGJldGEgdmVyc2lvbgoKMS4gQ3JlYXRlIGEgW25ldyBHaXRIdWIgUmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbWNodW5neS96b2Qtb3BlbmFwaS9yZWxlYXNlcy9uZXcpCjIuIFNlbGVjdCBg8J+Pt++4jyBDaG9vc2UgYSB0YWdgLCBlbnRlciBhIHZlcnNpb24gbnVtYmVyIHdpdGggYSBgLWJldGEuWGAgc3VmZml4IGVnLiBgdjEuMi4wLWJldGEuMWAgYW5kIGNsaWNrIGArIENyZWF0ZSBuZXcgdGFnOiB2WC5YLlgtYmV0YS5YIG9uIHB1Ymxpc2hgLgozLiBDbGljayB0aGUgYEdlbmVyYXRlIHJlbGVhc2Ugbm90ZXNgIGJ1dHRvbiBhbmQgYWRqdXN0IHRoZSBkZXNjcmlwdGlvbi4KNC4gVGljayB0aGUgYFNldCBhcyBhIHByZS1yZWxlYXNlYCBib3ggYW5kIGNsaWNrIGBQdWJsaXNoIHJlbGVhc2VgLiBUaGlzIHdpbGwgdHJpZ2dlciB0aGUgYFByZXJlbGVhc2VgIHdvcmtmbG93Lgo= readmeEtag: '"de7b977c9234dd88a801194ba45d49045ca1544c"' readmeLastModified: Mon, 05 Aug 2024 02:22:02 GMT repositoryId: 628179878 description: Use Zod Schemas to create OpenAPI v3.x documentation created: '2023-04-15T06:28:51Z' updated: '2024-09-06T00:20:00Z' language: TypeScript archived: false stars: 246 watchers: 2 forks: 11 owner: samchungy logo: https://avatars.githubusercontent.com/u/18017094?v=4 license: MIT repoEtag: '"90613cf3f9a3b5214231e13d3be05e3dba6d3102bff092732fd8681417902d29"' repoLastModified: Fri, 06 Sep 2024 00:20:00 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/apibrew/apibrew v3: true id: 7ed00c333f0718c955cbaca68ff2b139 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYXBpYnJldy9hcGlicmV3L21hc3Rlci9zdGF0aWMvQXBpQnJldyUyMExvZ28uc3ZnI2doLWxpZ2h0LW1vZGUtb25seSI+CjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYXBpYnJldy9hcGlicmV3L21hc3Rlci9zdGF0aWMvQXBpQnJldyUyMExvZ28tZGFyay5zdmcjZ2gtZGFyay1tb2RlLW9ubHkiPgo8L3A+CgojIEFwaSBCcmV3ICAgIC0gICAgaHR0cHM6Ly9hcGlicmV3LmlvClshW2J1aWxkXShodHRwczovL2dpdGh1Yi5jb20vYXBpYnJldy9hcGlicmV3L2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbC9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlicmV3L2FwaWJyZXcvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueW1sKQpbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vYXBpYnJldy9hcGlicmV3KV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2FwaWJyZXcvYXBpYnJldykKWyFbR28gUmVmZXJlbmNlXShodHRwczovL3BrZy5nby5kZXYvYmFkZ2UvZ2l0aHViLmNvbS9hcGlicmV3L2FwaWJyZXcuc3ZnKV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vYXBpYnJldy9hcGlicmV3KQpbIVtEb2NrZXIgUHVsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3B1bGxzL3Rpc2xpYi9hcGlicmV3KV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3Rpc2xpYi9hcGlicmV3KQpbIVtEb2NrZXIgSW1hZ2UgU2l6ZSAobGF0ZXN0IGJ5IGRhdGUpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci9pbWFnZS1zaXplL3Rpc2xpYi9hcGlicmV3KV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3Rpc2xpYi9hcGlicmV3KQohW0dpdEh1YiByZWxlYXNlIChsYXRlc3QgYnkgZGF0ZSldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS9hcGlicmV3L2FwaWJyZXcpCiFbR2l0SHViXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2FwaWJyZXcvYXBpYnJldykKCkRvY3M6IGh0dHBzOi8vYXBpYnJldy5pby9kb2NzL2dldHRpbmctc3RhcnRlZAoKR2V0dGluZyBTdGFydGVkIFZpZGVvOiBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTZpSjVxQ1ViZGdzCgoKIyMgSW50cm9kdWN0aW9uCgoqKkV2ZXJ5dGhpbmcgaXMgYSAqUmVzb3VyY2UqKiouIEFuZCAqKkV2ZXJ5dGhpbmcgaGFzIGEgKkNSVUQgQVBJKioqCgpXaXRoIEFQSSBCcmV3LCB5b3UgY2FuIGNyZWF0ZSBDUlVEIEFQSXMgZm9yIHlvdXIgZGF0YSBpbiBhIGZldyBtaW51dGVzCgojIyMgUnVuIHlvdXIgaW5zdGFuY2UKCmBgYHNoZWxsCmRvY2tlciBydW4gLXYgJChwd2QpL2RhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhIC1wIDkwMDk6OTAwOSB0aXNsaWIvYXBpYnJldzpmdWxsLWxhdGVzdApgYGAKCllvdXIgaW5zdGFuY2UgaXMgcmVhZHk6IFN3YWdnZXIgZG9jczogaHR0cDovL2xvY2FsaG9zdDo5MDA5L2RvY3Mvc3dhZ2dlcgoKIyMjIENyZWF0ZSBmaXJzdCByZXNvdXJjZQoKQ29uZmlndXJlIEFwYnIgY2xpOiBodHRwczovL2FwaWJyZXcuaW8vZG9jcy9jbGkKCmNvdW50cnkueW1sCmBgYHlhbWwKdHlwZTogcmVzb3VyY2UKbmFtZTogQm9vawpwcm9wZXJ0aWVzOgogIHRpdGxlOgogICAgdHlwZTogU1RSSU5HCiAgICB1bmlxdWU6IHRydWUKICAgIHJlcXVpcmVkOiB0cnVlCiAgZGVzY3JpcHRpb246CiAgICB0eXBlOiBTVFJJTkcKYGBgCgpgYGBiYXNoCmFwYnIgYXBwbHkgLWYgY291bnRyeS55bWwKYGBgClNvIHlvdSBhcmUgcmVhZHksIHlvdSBoYXZlIGZ1bGx5IGVzdGFibGlzaGVkIFJlc3QgQVBJIGZvciBib29rIHJlc291cmNlCgo8aW1nIHNyYz0iaHR0cHM6Ly9hcGlicmV3LmlvL2ZpbGVzL2Jvb2stc3dhZ2dlci5wbmciIHdpZHRoPSIzMDAiLz4KCllvdSBjYW4gYnVpbGQgZW50aXJlIGFwcGxpY2F0aW9uIHdpdGggcmVzb3VyY2VzIGFuZCByZWZlcmVuY2VzIGJldHdlZW4gdGhlbSAobGlrZSByZWxhdGlvbnMgaW4gcmVsYXRpb25hbCBkYXRhYmFzZXMpCgojIyMgQ2hhbmdlIGl0cyBiZWhhdmlvdXIgd2l0aCBwb3dlciBvZiBuYW5vIGNvZGUKCkV2ZXJ5dGhpbmcgY2FuIGJlIHdyaXR0ZW4gYnkgcmVzb3VyY2VzLCBub3Q/CioqTGV0J3MgZXh0ZW5kIG91ciBCb29rIHJlc291cmNlIHdpdGggaGVscCBvZiBuYW5vIGNvZGUqKgoKQm9va0xvZ2ljLmpzCmBgYGphdmFzY3JpcHQKY29uc3QgYm9vayA9IHJlc291cmNlKCdCb29rJykKCmJvb2suYmVmb3JlQ3JlYXRlKChib29rKSA9PiB7CiAgaWYgKCFib29rLmRlc2NyaXB0aW9uKSB7CiAgICBib29rLmRlc2NyaXB0aW9uID0gJ05vIGRlc2NyaXB0aW9uJwogIH0KfSk7CmBgYApgYGBiYXNoCmFwYnIgZGVwbG95IC1mIEJvb2tMb2dpYy5qcyAtLW92ZXJyaWRlCmBgYAoKU2VlIHRoZSBkb2NzIGZvciBuYW5vOiBodHRwczovL2FwaWJyZXcuaW8vZG9jcy9uYW5vCgpTbyB3ZSBoYXZlIGV4dGVuZGVkIG91ciBib29rIHJlc291cmNlIHdpdGggaGVscCBvZiBuYW5vIGNvZGUKClNvLCB3aXRoICoqQVBJIEJyZXcqKiwgeW91IGNhbiBjcmVhdGUgeW91ciBhcHBsaWNhdGlvbiB3aXRoIHJlc291cmNlcyBhbmQgeW91IGNhbiBjdXN0b21pemUgYmVoYXZpb3Igb2YgeW91ciByZXNvdXJjZXMgd2l0aCBleHRlbnNpb25zCgojIyBBYm91dApBUEkgQnJldyBpcyBhICoqTG93IENvZGUgc29mdHdhcmUqKiB0aGF0IGFsbG93cyB0byBjcmVhdGUgdmFyaW91cyBHcnBjIGFuZCBSZXN0IEFQSXMgZnJvbSB2YXJpb3VzIGRhdGFiYXNlIHBsYXRmb3JtcwoKIyMgRmVhdHVyZXMKCiogKioqRGVjbGFyYXRpdmUqKiogLSAqQVBJIEJyZXcqIGlzIGRlY2xhcmF0aXZlLiBZb3UgY2FuIGRlZmluZSB5b3VyIHNjaGVtYSBpbiBhIGRlY2xhcmF0aXZlIHdheSwgaXQgd2lsbCBjcmVhdGUgeW91ciBBUElzCiogKioqTG93IENvZGUqKiogLSBXaXRoIEFQSSBCcmV3LCB5b3UgY2FuIGNyZWF0ZSBBUElzIGZvciB5b3VyIGRhdGEgd2l0aG91dCBjb2RpbmcuIEJ1dCB5b3UgY2FuIGFsc28gZXh0ZW5kIHlvdXIgQVBJcyB3aXRoCiAgZXh0ZW5zaW9ucywgc28geW91IGNhbiBjdXN0b21pemUgYmVoYXZpb3Igb2YgeW91ciBSZXNvdXJjZXMvQXBpcwoqICoqKlJlc3QgQVBJKioqIC0gQXMgeW91IGNyZWF0ZSByZXNvdXJjZXMsIFJlc3QgQXBpcyBmb3IgdGhlbSBpcyBtYWRlIGF1dG9tYXRpY2FsbHkKKiAqKipHcnBjKioqIC0gQXMgeW91IGNyZWF0ZSByZXNvdXJjZXMsIEdycGMgQXBpcyBmb3IgdGhlbSBpcyBtYWRlIGF1dG9tYXRpY2FsbHkKKiAqKipEYXRhYmFzZSBhZ25vc3RpYyoqKiAtIEFQSSBCcmV3IGlzIHVzaW5nIFBvc3RncmVzcWwgZGF0YWJhc2UgYnkgZGVmYXVsdCwgYnV0IGl0IGFsc28gc3VwcG9ydHMgdmFyaW91cyBkYXRhYmFzZXMuIEluY2x1ZGluZyBNb25nbywgTXlzcWwsIFJlZGlzLCBldGMuCiogKioqQ1JVRCoqKiAtIENydWQgaXMgb24gdGhlIGhlYXJ0IG9mIEFQSSBCcmV3LgoqICoqKlN3YWdnZXIqKiogLSBTd2FnZ2VyIGRvY3MgYXJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5CiogKioqQXV0aGVudGljYXRpb24qKiogLSBBUEkgQnJldyBzdXBwb3J0cyB2YXJpb3VzIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMuIEluY2x1ZGluZyBKV1QgYXV0aGVudGljYXRpb24gZXRjLgoqICoqKkF1dGhvcml6YXRpb24qKiogLSBBUEkgQnJldyBzdXBwb3J0cyBhdXRob3JpemF0aW9uLiBZb3UgY2FuIGRlZmluZSBwZXJtaXNzaW9ucyBmb3IgeW91ciByZXNvdXJjZXMKKiAqKipNdWx0aSBEYXRhYmFzZSoqKiAtIFlvdSBjYW4gZGVmaW5lIG11bHRpcGxlIGRhdGFiYXNlcyBhbmQgZG8gb3BlcmF0aW9ucyBvbiB0b3Agb2YgdGhlbQoqICoqKlNjYWxhYmxlKioqIC0gQVBJIEJyZXcgaXMgc2NhbGFibGUuIFlvdSBjYW4gcnVuIGl0IG9uIG11bHRpcGxlIGluc3RhbmNlcywgYW5kIGl0IHdpbGwgd29yayBhcyBleHBlY3RlZCwgYXMgQVBJIEJyZXcgZG9lcyBub3QgaGF2ZSBhbnkgZGF0YSBpbnRlcm5hbGx5LCB5b3UgY2FuIHNjYWxlIGl0LgoqICoqKkV4dGVuc2libGUqKiogLSBBUEkgQnJldyBpcyBleHRlbnNpYmxlLiBZb3UgY2FuIGV4dGVuZCB5b3VyIHJlc291cmNlcyB3aXRoIGV4dGVuc2lvbnMuIFlvdSBjYW4gYWxzbyBleHRlbmQgeW91ciBBUElzIHdpdGggZXh0ZW5zaW9ucwoqICoqKkNMSSBzdXBwb3J0KioqIC0gQVBJIEJyZXcgaGFzIGEgY2xpIHRvb2wgdG8gbWFuYWdlIHlvdXIgcmVzb3VyY2VzLCBkYXRhU291cmNlcywgZXRjLiBJdCBpcyBjYWxsZWQgYGFwYnJgCiogKioqRG9ja2VyKioqIC0gQVBJIEJyZXcgaXMgZG9ja2VyaXplZC4gWW91IGNhbiBydW4gaXQgb24gZG9ja2VyCiogKioqRG9ja2VyIENvbXBvc2UqKiogLSBBUEkgQnJldyBpcyBkb2NrZXItY29tcG9zZSByZWFkeS4gWW91IGNhbiBydW4gaXQgb24gZG9ja2VyLWNvbXBvc2UKKiAqKipLdWJlcm5ldGVzKioqIC0gQVBJIEJyZXcgaXMga3ViZXJuZXRlcyByZWFkeS4gWW91IGNhbiBydW4gaXQgb24ga3ViZXJuZXRlcwoKIyMgVXNlIENhc2VzCgoqIENyZWF0aW5nIGJhY2tlbmQgZm9yIHlvdXIgbW9iaWxlIGFwcGxpY2F0aW9uIG9yIHdlYnNpdGUKKiBDcmVhdGluZyBiYWNrZW5kIGZvciB5b3VyIGV4aXN0aW5nIGRhdGFiYXNlCiogTWFuYWdpbmcgeW91ciBkYXRhIGluIGEgQ1JVRCBmYXNoaW9uCiogQ3JlYXRpbmcgU3RhbmRhcmRpemVkLCB3ZWxsIGRvY3VtZW50ZWQgQVBJcyBmb3IgeW91ciBkYXRhCg== readmeEtag: '"db61530767fcbe35d40772120057e15fe4b3874d"' readmeLastModified: Thu, 06 Jun 2024 07:36:37 GMT repositoryId: 591665560 description: APIBrew is Low code software to automate building CRUDs from yaml files created: '2023-01-21T13:22:13Z' updated: '2024-08-22T08:27:16Z' language: Go archived: false stars: 239 watchers: 4 forks: 7 owner: apibrew logo: https://avatars.githubusercontent.com/u/132176743?v=4 license: MIT repoEtag: '"7cd33395cf2d1810c73f4e49b000c856448d6756f956350411d89ba85903b133"' repoLastModified: Thu, 22 Aug 2024 08:27:16 GMT category: Server Implementations oldLocations: - https://github.com/tislib/apibrew foundInMaster: true - source: openapi3 tags repository: https://github.com/wrannaman/generators v3: true repositoryMetadata: base64Readme: >- IyBSZXN0L0dyYXBoUUwgQVBJcyArIFJlYWN0IENvbXBvbmVudHMgR2VuZXJhdG9yIPCflKUKClshW0J1eSBMaWdpdCBMaWNlbnNlXShodHRwczovL3MzLnVzLXdlc3QtMS53YXNhYmlzeXMuY29tL3B1YmxpYy5zdWdhcmt1YmVzL2xpZ2l0X2VtYmVkLnN2ZyldKGh0dHBzOi8vbGlnaXQuZGV2KQpbIVtGb2xsb3cgb24gVHdpdHRlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9hbmRyZXdwaWVybm8uc3ZnP2xhYmVsPWZvbGxvdyldKGh0dHBzOi8vdHdpdHRlci5jb20vYW5kcmV3cGllcm5vKQpbIVtBdmVyYWdlIHRpbWUgdG8gcmVzb2x2ZSBhbiBpc3N1ZV0oaHR0cDovL2lzaXRtYWludGFpbmVkLmNvbS9iYWRnZS9yZXNvbHV0aW9uL3N1Z2Fya3ViZXMvZ2VuZXJhdG9ycy5zdmcpXShodHRwOi8vaXNpdG1haW50YWluZWQuY29tL3Byb2plY3Qvc3VnYXJrdWJlcy9nZW5lcmF0b3JzICJBdmVyYWdlIHRpbWUgdG8gcmVzb2x2ZSBhbiBpc3N1ZSIpClshW1BlcmNlbnRhZ2Ugb2YgaXNzdWVzIHN0aWxsIG9wZW5dKGh0dHA6Ly9pc2l0bWFpbnRhaW5lZC5jb20vYmFkZ2Uvb3Blbi9zdWdhcmt1YmVzL2dlbmVyYXRvcnMuc3ZnKV0oaHR0cDovL2lzaXRtYWludGFpbmVkLmNvbS9wcm9qZWN0L3N1Z2Fya3ViZXMvZ2VuZXJhdG9ycyAiUGVyY2VudGFnZSBvZiBpc3N1ZXMgc3RpbGwgb3BlbiIpClshW25wbSBwYWNrYWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3N1Z2FyLWdlbmVyYXRlL2xhdGVzdC5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zdWdhci1nZW5lcmF0ZSkKWyFbTlBNIERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHQvc3VnYXItZ2VuZXJhdGUuc3ZnP3N0eWxlPWZsYXQpXShodHRwczovL25wbWNoYXJ0cy5jb20vY29tcGFyZS9zdWdhci1nZW5lcmF0ZT9taW5pbWFsPXRydWUpCgoKIVtTdWdhciBHZW5lcmF0b3IgLSBBUEkgRWRpdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3N1Z2Fya3ViZXMvZ2VuZXJhdG9ycy9ibG9iL21hc3Rlci9sb2dvLnBuZz9yYXc9dHJ1ZSkKClshW0FwcCBEZW1vXShodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS9FN19BQks3blpUOC8wLmpwZyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RTdfQUJLN25aVDgpCgoKVGhpcyBwcm9qZWN0IGlzIHNwb25zb3JlZCBieQoKWyFbU3BvbnNvcmVkQnkuZGV2XShodHRwczovL2FwaS5zcG9uc29yZWRieS5kZXYvaW1nL2Q4YzQzMDdiLWJhNDItNDAwZS1iNDc1LTk0ODdjNzZkMTVjOC5wbmcpXShodHRwczovL2FwaS5zcG9uc29yZWRieS5kZXYvbGluay9kOGM0MzA3Yi1iYTQyLTQwMGUtYjQ3NS05NDg3Yzc2ZDE1YzgpCgojIFF1aWNrIFN0YXJ0CgoKMS4gSW5zdGFsbCB0aGUgbnBtIG1vZHVsZQoKYGBgc2gKIyBpbnN0YWxsCm5wbSBpIC1nIHN1Z2FyLWdlbmVyYXRlCmBgYAoKMi4gQ3JlYXRlIGEganNvbiBzY2hlbWEgc2F2ZSwgdGhpcyB0byAqKm1vbmtleS5qc29uKioKCgpgYGBqc29uCnsKICAibmFtZSI6ICJtb25rZXkiLAogICJzY2hlbWEiOiB7CiAgICAibmFtZSI6IHsKICAgICAgInR5cGUiOiAiU3RyaW5nIiwKICAgICAgImRlZmF1bHQiOiAiIgogICAgfSwKICAgICJhbGl2ZSI6IHsKICAgICAgInR5cGUiOiAiQm9vbGVhbiIsCiAgICAgICJkZWZhdWx0IjogZmFsc2UKICAgIH0sCiAgICAiYWdlIjogewogICAgICAidHlwZSI6ICJOdW1iZXIiLAogICAgICAiZGVmYXVsdCI6IGZhbHNlCiAgICB9CiAgfQp9CmBgYAoKMy4gR2VuZXJhdGUgeW91ciBhcGkgYW5kIGFwcAoKYGBgc2gKc3VnYXItZ2VuZXJhdGUgXAotLXNjaGVtYSBtb25rZXkuanNvbiBcCi0tZGVzdGluYXRpb24gLi9teS1tb25rZXlzCmBgYAoKQm9vbSwgeW91IG5vdyBoYXZlOgoKQVBJOgotIEdyYXBoUUwgQVBJCi0gUkVTVCBBUEkKLSBXb3JraW5nIFRlc3RzCgpBUFA6Ci0gUmVhY3QgY3JlYXRlIGl0ZW0gZm9ybQotIFJlYWN0IHRhYmxlIHRoYXQgc3VwcG9ydHMKICAtIHNlYXJjaAogIC0gc29ydAogIC0gZmlsdGVyCiAgLSBwYWdpbmF0aW9uCiAgLSBlZGl0IGl0ZW0KICAtIGNyZWF0ZSBpdGVtCgoKIyMjIFN0YXJ0IHRoZSBBUEkKCmBgYHNoCmNkIC4vbXktbW9ua2V5cy9hcGkKbnBtIGkKbnBtIHJ1biBzdGFydAoKIyBodHRwOi8vbG9jYWxob3N0Ojc3NzcKYGBgCgojIyMgU3RhcnQgdGhlIEFQUAoKYGBgc2gKY2QgLi9teS1tb25rZXlzL2FwcApucG0gaQpucG0gcnVuIGRldgoKIyBodHRwOi8vbG9jYWxob3N0OjMwMDAKYGBgCgojIyMgQmVob2xkIE1hZ2ljCgpBIGZ1bGx5IGZ1bmN0aW9uaW5nIHJlYWN0IHRhYmxlIGFuZCBmb3JtIHdpdGggc2VhcmNoaW5nIHNvcnRpbmcgZmlsdGVyaW5nLCBlZGl0aW5nLCBhZGRpbmcsIGdsb2JhbCBzZWFyY2gsIGRvd25sb2FkLCBhbmQgcmVmcmVzaC4KCiFbU3VnYXJLdWJlcyBHZW5lcmF0ZWQgQXBwXShodHRwczovL2dpdGh1Yi5jb20vc3VnYXJrdWJlcy9nZW5lcmF0b3JzL2Jsb2IvbWFzdGVyL3RhYmxlLWNvbXBvbmVudC5wbmc/cmF3PXRydWUpCgojIExpbmtzCgpbR3JhcGhRTCBpcyBvbiBsb2NhbGhvc3Q6Nzc3Ny9ncmFwaHFsXShodHRwOi8vbG9jYWxob3N0Ojc3NzcvZ3JhcGhxbCkKCltTd2FnZ2VyIGlzIG9uIGxvY2FsaG9zdDo3Nzc3XShodHRwOi8vbG9jYWxob3N0Ojc3NzcpCgpbQVBQIGlzIG9uIGxvY2FsaG9zdDozMDAwXShodHRwOi8vbG9jYWxob3N0OjMwMDApCgpbQVBJIGlzIG9uIGxvY2FsaG9zdDo3Nzc3XShodHRwOi8vbG9jYWxob3N0OjMwMDApCgojIERvY3VtZW50YXRpb24KCltBUEkgRG9jdW1lbnRhdGlvbiAoZ2VuZXJhdGVkIGJhY2sgZW5kKV0oaHR0cHM6Ly9naXRodWIuY29tL3N1Z2Fya3ViZXMvZ2VuZXJhdG9ycy93aWtpL0FQSSkKCgpbQXBwIERvY3VtZW50YXRpb24gKGdlbmVyYXRlZCBmcm9udCBlbmQpXShodHRwczovL2dpdGh1Yi5jb20vc3VnYXJrdWJlcy9nZW5lcmF0b3JzL3dpa2kvQVBQKQoKIyMgRXhwZXJpbWVudGFsIEVtYmVkZGFibGUgQ29tcG9uZW50cwoKKipXaGF0IGlmIHlvdSBjb3VsZCByZW1vdGVseSB1cGRhdGUgeW91ciBjb21wb25lbnRzIHdpdGhvdXQgaGF2aW5nIHRvIHB1c2ggbmV3IGNvZGU/KioKClRoYXRzIG9uZSBxdWVzdGlvbiB3ZSdyZSBleHBsb3Jpbmcgd2l0aCB0aGUgZXhwZXJpbWVudGFsIGVtYmVkZGFibGUgcmVhY3QgY29tcG9uZW50cy4gVGhlcmUgYXJlIG9mIGNvdXJzZSBjb29sIHdheXMgdG8gc2VydmUgc2luZ2xlIHBhZ2VzIGFzIHNlcnZlcmxlc3MgZnVuY3Rpb25zIGJ1dCB3aGF0J3MgY29vbGVyIHdvdWxkIGJlIGEgd2F5IGZvciBldmVuIG5vbi10ZWNobmljYWwgcGVvcGxlIHRvIHVwZGF0ZSBhIGRhdGFiYXNlIHNjaGVtYSBhbmQgYSBmb3JtIG9yIHRhYmxlIGluIHJlYWwgdGltZSB3aXRob3V0IHdyaXRpbmcgYW55IGNvZGUuCgoKLSBFYWNoIGNvbXBvbmVudCBjb21lcyBvdXQgaW4gYW4gZW1iZWRkYWJsZSBmb3JtYXQgdW5kZXIgKi9lbWJlZCoKLSBUQkQgLSBIb3cgdG8gZWFzaWx5IGRlcGxveSB0aGVzZSBhbmQgdXNlIHRoZW0uCi0KCgojIyBVcGRhdGVzCgotIDgvNS8xOSBzdXBwb3J0IGZvciBtb25nbyBhcnJheXMgaW4gZG9jdW1lbnRzCg== readmeEtag: '"e3945d8d8d83bdcfd3d4d4008752f4b9a5f11fa8"' readmeLastModified: Tue, 03 Mar 2020 22:51:34 GMT repositoryId: 189799018 description: >- API Generator - instantly generate REST and GraphQL APIs (openapi (OAS) 3.0.0) created: '2019-06-02T03:05:54Z' updated: '2024-01-25T00:40:39Z' language: JavaScript archived: false stars: 236 watchers: 3 forks: 30 owner: wrannaman logo: https://avatars.githubusercontent.com/u/5325165?v=4 license: MIT repoEtag: '"8c5c2ce6b1c9cf40149fd2d4a868da6bede6f224dab7ac77e6d71abea006e2c0"' repoLastModified: Thu, 25 Jan 2024 00:40:39 GMT foundInMaster: true category: SDK id: 824dcdea013394109fc958b1d93b91e6 - source: openapi3 tags repository: https://github.com/grafana/thema v3: true repositoryMetadata: base64Readme: >- IyBUaGVtYQoKPiBbIVdBUk5JTkddCj4gVGhpcyByZXBvc2l0b3J5IGlzIG5vIGxvbmdlciBhY3RpdmVseSBtYWludGFpbmVkIG9yIHN1cHBvcnRlZC4KPiBJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udGludWluZyB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBwcm9qZWN0LCBmZWVsIGZyZWUgdG8gZm9yayB0aGUgcmVwb3NpdG9yeSBhbmQgY3VzdG9taXplIGl0IHRvIHlvdXIgbmVlZHMuCgpUaGVtYSBpcyBhIHN5c3RlbSBmb3Igd3JpdGluZyBzY2hlbWFzLiBNdWNoIGxpa2UgSlNPTiBTY2hlbWEgb3IgT3BlbkFQSSwgaXQgaXMgZ2VuZXJhbC1wdXJwb3NlIGFuZCBpdHMgbW9zdCBvYnZpb3VzIGFwcGxpY2F0aW9uIGlzIGFzIGFuIFtJRExdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ludGVyZmFjZV9kZXNjcmlwdGlvbl9sYW5ndWFnZSkuIEhvd2V2ZXIsIHRob3NlIHN5c3RlbXMgdHJlYXQgX2NoYW5naW5nXyBzY2hlbWFzIGFzIG91dCBvZiBzY29wZTogYSBzaW5nbGUgdmVyc2lvbiBvZiBhIHNjaGVtYSBmb3Igc29tZSBvYmplY3QgaXMgdGhlIGF0b21pYyB1bml0LCBhbmQgdmVyc2lvbmluZyBpcyBsZWZ0IHRvIG9wYXF1ZSBzdHJpbmdzIGluIGV4dGVybmFsIHN5c3RlbXMgbGlrZSBnaXQgb3IgSFRUUC4gVGhlbWEsIGJ5IGNvbnRyYXN0LCBtYWtlcyBzY2hlbWEgY2hhbmdlIGEgZmlyc3QtY2xhc3Mgc3lzdGVtIHByb3BlcnR5OiB0aGUgYXRvbWljIHVuaXQgaXMgdGhlIF9zZXRfIG9mIHNjaGVtYSBmb3Igc29tZSBvYmplY3QsIGl0ZXJhdGl2ZWx5IGFwcGVuZGVkIHRvIG92ZXIgdGltZSBhcyByZXF1aXJlbWVudHMgZXZvbHZlLgoKVGhlbWEncyBhcHByb2FjaCBpcyBub3ZlbCwgc28gYW4gYW5hbG9neSB0byB0aGUgZmFtaWxpYXIgbWF5IGhlbHAuIFsiQnJhbmNoaW5nIGJ5IGFic3RyYWN0aW9uIl0oaHR0cHM6Ly9tYXJ0aW5mb3dsZXIuY29tL2JsaWtpL0JyYW5jaEJ5QWJzdHJhY3Rpb24uaHRtbCkgc3VnZ2VzdHMgdGhhdCB5b3UgcmVmYWN0b3IgbGFyZ2UgYXBwbGljYXRpb25zIG5vdCB3aXRoIGxvbmctcnVubmluZyBWQ1MgYnJhbmNoZXMgYW5kIGJpZy1iYW5nIG1lcmdlcywgYnV0IGJ5IGxldHRpbmcgb2xkIGFuZCBuZXcgY29kZSBsaXZlIHNpZGUtYnktc2lkZSBvbiBgbWFpbmAsIGFuZCBjaG9vc2luZyBiZXR3ZWVuIHRoZW0gd2l0aCBsb2dpY2FsIGdhdGVzLCBsaWtlIFtmZWF0dXJlIGZsYWdzXShodHRwczovL2ZlYXR1cmVmbGFncy5pby9mZWF0dXJlLWZsYWdzLykuIFRoZW1hIGlzICJzY2hlbWEgdmVyc2lvbmluZyBieSBhYnN0cmFjdGlvbiI6IGFsbCB2ZXJzaW9ucyBvZiBhIHNjaGVtYSBsaXZlIHNpZGUtYnktc2lkZSBvbiBgbWFpbmAsIHdpdGhpbiBsb2dpY2FsIHN0cnVjdHVyZXMgVGhlbWEgZGVmaW5lcy4KClRoaXMgaG9saXN0aWMgdmlldyBhbGxvd3MgVGhlbWEgdG8gYWN0IGxpa2UgYSB0eXBlY2hlY2tlciwgYnV0IGZvciBjaGFuZ2Utc2FmZXR5IF9iZXR3ZWVuXyBzY2hlbWEgdmVyc2lvbnM6IGVpdGhlciBzY2hlbWEgdmVyc2lvbnMgbXVzdCBiZSBiYWNrd2FyZHMgY29tcGF0aWJsZSwgb3IgdGhlcmUgbXVzdCBleGlzdCBsb2dpYyB0byB0cmFuc2xhdGUgYSB2YWxpZCBpbnN0YW5jZSBvZiBzY2hlbWEgZnJvbSBvbmUgc2NoZW1hIHZlcnNpb24gdG8gdGhlIG5leHQuIFtDVUVdKGh0dHBzOi8vY3VlbGFuZy5vcmcpLCB0aGUgbGFuZ3VhZ2UgaW4gd2hpY2ggVGhlbWEgc2NoZW1hcyBhcmUgd3JpdHRlbiwgYWxsb3dzIFRoZW1hIHRvIFttZWNoYW5pY2FsbHkgdmVyaWZ5IHRoZXNlIHByb3BlcnRpZXNdKCNNYXR1cml0eSkuCgpUaGVzZSBjYXBhYmlsaXRpZXMgbWFrZSBUaGVtYSBhIGdlbmVyYWwgZnJhbWV3b3JrIGZvciBkZWNvdXBsaW5nIHRoZSBldm9sdXRpb24gb2YgY29tbXVuaWNhdGluZyBzeXN0ZW1zLiBUaGlzIGNhbiBiZSBvdXR3YXJkLWZhY2luZzogVGhlbWEncyBndWFyZHJhaWxzIGFsbG93IGFueW9uZSB0byBjcmVhdGUgQVBJcyB3aXRoIFN0cmlwZSdzIHJlbm93bmVkIFtiYWNrd2FyZHMgY29tcGF0aWJpbGl0eV0oaHR0cHM6Ly9zdHJpcGUuY29tL2RvY3MvdXBncmFkZXMpIGd1YXJhbnRlZXMuIE9yIGl0IGNhbiBiZSBpbndhcmQtZmFjaW5nOiBvciB0byBjaGFuZ2UgdGhlIG1lc3NhZ2VzIHBhc3NlZCBpbiBhIG1lc2ggb2YgbWljcm9zZXJ2aWNlcyB3aXRob3V0IGludHJpY2F0ZWx5IG9yY2hlc3RyYXRpbmcgZGVwbG95bWVudC4KCkxlYXJuIG1vcmUgaW4gb3VyIFtkb2NzXShodHRwczovL2dpdGh1Yi5jb20vZ3JhZmFuYS90aGVtYS90cmVlL21haW4vZG9jcyksIG9yIGluIHRoaXMgW292ZXJ2aWV3IHZpZGVvXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVBwb1NfVGhudEVNKSEgKFNvbWUgdGhpbmdzIGhhdmUgYmVlbiByZW5hbWVkIHNpbmNlIHRoYXQgdmlkZW8sIGJ1dCB0aGUgbG9naWMgaXMgdW5jaGFuZ2VkLikKCiMjIFVzYWdlCgpUaGVtYSBkZWZpbmVzIHRoZSB3YXkgc2NoZW1hcyBhcmUgd3JpdHRlbiwgb3JnYW5pemluZyBlYWNoIG9iamVjdCdzIGhpc3RvcnkgaW50byBhICJsaW5lYWdlLiIgT25jZSBhdXRob3JlZCwgVGhlbWEgYWxzbyBwcm92aWRlcyB0b29scyBmb3Igd29ya2luZyB3aXRoIGxpbmVhZ2VzIHZpYSBhIGZldyBbYmFzaWMgb3BlcmF0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL2dyYWZhbmEvdGhlbWEvYmxvYi9tYWluL2RvY3Mvb3ZlcnZpZXcubWQjYWJvdXQtdGhlbWEtb3BlcmF0aW9ucykuIFRoZXJlIGFyZSBhIGZldyBkaWZmZXJlbnQgdXNhZ2UgcGF0dGVybnMsIGFsbCBsYXJnZWx5IGVxdWl2YWxlbnQgaW4gY2FwYWJpbGl0eToKCiogKipDTEk6KiogYSBDTEkgY29tbWFuZCB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byBUaGVtYSdzIGJhc2ljIG9wZXJhdGlvbnMsIG9uZSBsaW5lYWdlIHBlciBpbnZvY2F0aW9uLiBVc2UgaXQgZm9yIGZhc3QgZXhwbG9yYXRpb24gYW5kIHRlc3Rpbmcgb2Ygc2NoZW1hcywgb3IgYXMgYSB0b29sIGluIENJLgoqICoqU2VydmVyOioqIEFuIEhUVFAgc2VydmVyIHRoYXQgcHJvdmlkZXMgYWNjZXNzIHRvIFRoZW1hJ3MgYmFzaWMgb3BlcmF0aW9ucyBmb3IgYSBjb25maWd1cmFibGUgc2V0IG9mIGxpbmVhZ2VzLiBSdW4gaXQgYXMgYSBzdGF0ZWxlc3Mgc2lkZWNhciBpbiB5b3VyIGluZnJhc3RydWN0dXJlIG9yIG1pY3Jvc2VydmljZSBtZXNoLgoqICoqTGlicmFyeToqKiBhIGxpYnJhcnksIGltcG9ydGFibGUgaW4geW91ciBhcHBsaWNhdGlvbiBjb2RlLCB0aGF0IHByb3ZpZGVzIGEgY29udmVuaWVudCBpbnRlcmZhY2UgdG8gVGhlbWEncyBiYXNpYyBvcGVyYXRpb25zLCBhcyB3ZWxsIGFzIGhlbHBlcnMgZm9yIGNvbW1vbiB1c2FnZSBwYXR0ZXJucy4gTmF0dXJhbGx5IHRoZSBtb3N0IGZsZXhpYmxlLCBhbmQgdGhlIHJlY29tbWVuZGVkIGFwcHJvYWNoIGZvciBjcmVhdGluZyBuZXcgaGVscGVycywgc3VjaCBhcyBjb2RlIGdlbmVyYXRvcnMsIEFQSSBnZW5lcmF0b3JzLCBvciBhIHdob2xlIEt1YmVybmV0ZXMgb3BlcmF0b3IgZnJhbWV3b3JrLiAoQ3VycmVudGx5IG9ubHkgZm9yIEdvW15ldmFsdWF0b3JdKQoKVGhlIENMSSBhbmQgc2VydmVyIG1vZGVzIGFyZSBidW5kbGVkIHRvZ2V0aGVyIGluIHRoZSBgdGhlbWFgIGNvbW1hbmQuIFRvIGluc3RhbGw6CgpgYGBiYXNoCmdvIGluc3RhbGwgZ2l0aHViLmNvbS9ncmFmYW5hL3RoZW1hL2NtZC90aGVtYUBsYXRlc3QKYGBgCgojIyBNYXR1cml0eQoKVGhlbWEgaXMgYSB5b3VuZyBwcm9qZWN0LiBUaGUgZ29hbHMgYXJlIGxhcmdlLCBidXQgYm91bmRlZDogd2Ugd2lsbCBrbm93IHdoZW4gdGhlIGNvcmUgc3lzdGVtIGlzIGNvbXBsZXRlLiBBbmQgaXQgbW9zdGx5IGlzLCBub3cgLSB0aG91Z2ggc29tZSBicmVha2luZyBjaGFuZ2VzIHRvIGhvdyBzY2hlbWFzIGFyZSB3cml0dGVuIGFyZSBwbGFubmVkIGJlZm9yZSByZWFjaGluZyBzdGFiaWxpdHkuCgpJdCBpcyBub3QgeWV0IHJlY29tbWVuZGVkIHRvIHJlcGxhY2UgZXN0YWJsaXNoZWQsIHN0YWJsZSBzeXN0ZW1zIHdpdGggVGhlbWEsIGJ1dCBleHBlcmltZW50aW5nIHdpdGggZG9pbmcgc28gaXMgcmVhc29uYWJsZSAoYW5kIGFwcHJlY2lhdGVkISkuIEZvciBuZXdlciBwcm9qZWN0cywgVGhlbWEgbWF5IGJlIGEgZ29vZCBjaG9pY2UgdG9kYXk7IHRoZSBkZWNpc2lvbiBpcyBsaWtlbHkgdG8gY29tZSBkb3duIHRvIHdoZXRoZXIgdGhlIGxvbmctdGVybSBiZW5lZml0IG9mIGEgc2ltcGxlciBhcmNoaXRlY3R1cmUgZm9yIGF1dGhvcmluZywgY29tcG9zaW5nIGFuZCBldm9sdmluZyBzY2hlbWEgd2lsbCBvZmZzZXQgdGhlIHNob3J0LXRlcm0gY29zdCBvZiBzb21lIGluY29tcGxldGUgZnVuY3Rpb25hbGl0eSBhbmQgYnJlYWtpbmcgY2hhbmdlcy4KCiMjIFByaW9yL1JlbGF0ZWQgQXJ0CgpBIG51bWJlciBvZiBzeXN0ZW1zIHBhcnRpYWxseSBvdmVybGFwIHdpdGggVGhlbWEgLSBmb3Igc29tZSBkYXRhLCByb2xsaW5nIHRvZ2V0aGVyIGEgc2V0IG9mIHNjaGVtYSB3aXRoIHRoZSByZWxhdGlvbnMgYmV0d2VlbiB0aG9zZSBzY2hlbWEuCgoqIFtQcm9qZWN0IENhbWJyaWFdKGh0dHBzOi8vd3d3Lmlua2FuZHN3aXRjaC5jb20vY2FtYnJpYS8pIC0gVGhlbWEncyBjbG9zZXN0IGFuYWxvZ3VlLiBMaW1pdGVkIGluIHZlcmlmaWFiaWxpdHkgYnkgKGludGVudGlvbmFsbHkpIGJlaW5nIHdpdGhvdXQgYSBub3Rpb24gb2YgbGluZWFyIHNjaGVtYSBvcmRlcmluZyBhbmQgdmVyc2lvbmluZywgYW5kIGJlY2F1c2Ugc2NoZW1hIGFuZCB0cmFuc2xhdGlvbnMgYXJlIHdyaXR0ZW4gaW4gYSBUdXJpbmcgY29tcGxldGUgbGFuZ3VhZ2UgKFR5cGVzY3JpcHQpLgoqIFtLdWJlcm5ldGVzIHJlc291cmNlcyBhbmQgd2ViaG9vayBjb252ZXJzaW9uc10oaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdGFza3MvZXh0ZW5kLWt1YmVybmV0ZXMvY3VzdG9tLXJlc291cmNlcy9jdXN0b20tcmVzb3VyY2UtZGVmaW5pdGlvbi12ZXJzaW9uaW5nLyNzcGVjaWZ5LW11bHRpcGxlLXZlcnNpb25zKSAtIFNpbWlsYXIgZ29hbHM6IG11bHRpcGxlIHZlcnNpb25zIG9mIHJlc291cmNlcyAoc2NoZW1hKSBhbmQgY29udmVydGliaWxpdHkgYmV0d2VlbiB0aGVtLiBMaW1pdGVkIGluIHZlcmlmaWFiaWxpdHkgYnkgcmVseWluZyBvbiBjb252ZW50aW9uIGZvciBncm91cGluZyBzY2hlbWFzLCBhbmQgYnkgZXhwcmVzc2luZyB0cmFuc2xhdGlvbiBpbiBhIFR1cmluZyBjb21wbGV0ZSBsYW5ndWFnZSAoR28pLgoqIFtTdHJpcGUncyBIVFRQIEFQSV0oaHR0cHM6Ly9zdHJpcGUuY29tL2RvY3MvdXBncmFkZXMpIC0gZXhoaWJpdHMgdGhlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHByb3BlcnRpZXMgYW4gQVBJIGNhbiBoYXZlIHRoYXQgYXJpc2UgZnJvbSBhIHNjaGVtYSBzeXN0ZW0gd2l0aCB0cmFuc2xhdGFiaWxpdHkuCgoKW15ldmFsdWF0b3JdOgogICAgVXNpbmcgVGhlbWEgYXMgYSBsaWJyYXJ5IGluIGEgbGFuZ3VhZ2UgZGVwZW5kcyBvbiBhIENVRSBldmFsdWF0b3IgZm9yIHRoYXQgbGFuZ3VhZ2UuIEN1cnJlbnRseSwgdGhlIG9ubHkgQ1VFIGV2YWx1YXRvciBpcyB3cml0dGVuIGluIEdvLgo= readmeEtag: '"3c9e095f399071232622e0315a96a31db765d154"' readmeLastModified: Wed, 05 Jun 2024 11:00:52 GMT repositoryId: 419709887 description: A CUE-based framework for portable, evolvable schema created: '2021-10-21T12:16:22Z' updated: '2024-08-21T10:44:42Z' language: Go archived: false stars: 229 watchers: 142 forks: 12 owner: grafana logo: https://avatars.githubusercontent.com/u/7195757?v=4 license: Apache-2.0 repoEtag: '"6a7417a4d16d3960540e89947efd1d0e56dfc40312bc91460354e4063608d19f"' repoLastModified: Wed, 21 Aug 2024 10:44:42 GMT foundInMaster: true category: - Server - Server Implementations id: db932e8e382d5215f30e4dca6ab5a378 - source: openapi3 tags repository: https://github.com/ronnypfannschmidt/prance v3: true repositoryMetadata: base64Readme: >- fExpY2Vuc2V8IHxQeVBJfCB8UHl0aG9uIFZlcnNpb25zfCB8UGFja2FnZSBGb3JtYXR8IHxQYWNrYWdlIFN0YXR1c3wKCnxMb2dvfAoKUHJhbmNlIHByb3ZpZGVzIHBhcnNlcnMgZm9yIGBTd2FnZ2VyL09wZW5BUEkKMi4wIGFuZCAzLjAgPGh0dHA6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vPmBfXyBBUEkgc3BlY2lmaWNhdGlvbnMgaW4gUHl0aG9uLgpJdCB1c2VzIGBvcGVuYXBpXF9zcGVjXF92YWxpZGF0b3IgPGh0dHBzOi8vZ2l0aHViLmNvbS9wMWMydS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yPmBfXywKYHN3YWdnZXJcX3NwZWNcX3ZhbGlkYXRvciA8aHR0cHM6Ly9naXRodWIuY29tL1llbHAvc3dhZ2dlcl9zcGVjX3ZhbGlkYXRvcj5gX18gb3IKYGZsZXggPGh0dHBzOi8vZ2l0aHViLmNvbS9waXBlcm1lcnJpYW0vZmxleD5gX18KdG8gdmFsaWRhdGUgc3BlY2lmaWNhdGlvbnMsIGJ1dCBhZGRpdGlvbmFsbHkgcmVzb2x2ZXMgYEpTT04KcmVmZXJlbmNlcyA8aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXBicnlhbi16eXAtanNvbi1yZWYtMDM+YF9fCmluIGFjY29yZGFuY2Ugd2l0aCB0aGUgT3BlbkFQSSBzcGVjLgoKTW9zdGx5IHRoZSBsYXR0ZXIgaW52b2x2ZXMgaGFuZGxpbmcgbm9uLVVSSSByZWZlcmVuY2VzOyBPcGVuQVBJIGlzIGZpbmUKd2l0aCBwcm92aWRpbmcgcmVsYXRpdmUgZmlsZSBwYXRocywgd2hlcmVhcyBKU09OIHJlZmVyZW5jZXMgcmVxdWlyZSBVUklzCmF0IHRoaXMgcG9pbnQgaW4gdGltZS4KClVzYWdlCj09PT09CgpJbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tCgpQcmFuY2UgaXMgYXZhaWxhYmxlIGZyb20gUHlQSSwgYW5kIGNhbiBiZSBpbnN0YWxsZWQgdmlhIHBpcDoKCi4uIGNvZGU6OiBiYXNoCgogICAgJCBwaXAgaW5zdGFsbCBwcmFuY2UKCk5vdGUgdGhhdCB0aGlzIHdpbGwgaW5zdGFsbCB0aGUgY29kZSwgYnV0IGFkZGl0aW9uYWwgc3VicGFja2FnZXMgbXVzdCBiZSBzcGVjaWZpZWQKdG8gdW5sb2NrIHZhcmlvdXMgcGllY2VzIG9mIGZ1bmN0aW9uYWxpdHkuIEF0IG1pbmltdW0sIGEgcGFyc2luZyBiYWNrZW5kIG11c3QgYmUKaW5zdGFsbGVkLiBGb3IgdGhlIENMSSBmdW5jdGlvbmFsaXR5LCB5b3UgbmVlZCBmdXJ0aGVyIGRlcGVuZGVuY2llcy4KClRoZSByZWNvbW1lbmRlZCBpbnN0YWxsYXRpb24gaW5zdGFsbHMgdGhlIENMSSwgdXNlcyBJQ1UgYW5kIGluc3RhbGxzIG9uZSB2YWxpZGF0aW9uCmJhY2tlbmQ6CgouLiBjb2RlOjogYmFzaAoKICAgICQgcGlwIGluc3RhbGwgcHJhbmNlW29zdixpY3UsY2xpXQoKTWFrZSBzdXJlIHlvdSBoYXZlIGBJQ1UgVW5pY29kZSBMaWJyYXJ5IDxodHRwOi8vc2l0ZS5pY3UtcHJvamVjdC5vcmcvaG9tZT5gX18gaW5zdGFsbGVkLAphcyB3ZWxsIGFzIFB5dGhvbiBkZXYgbGlicmFyeSBiZWZvcmUgcnVubmluZyB0aGUgY29tbWFuZHMgYWJvdmUuIElmIG5vdCwgdXNlIHRoZQpmb2xsb3dpbmcgY29tbWFuZHM6CgouLiBjb2RlOjogYmFzaAoKICAgICQgc3VkbyBhcHQtZ2V0IGluc3RhbGwgbGliaWN1LWRldiBweXRob24zLWRldiAjIFVidW50dS9EZWJpYW4KICAgICQgc3VkbyBkbmYgaW5zdGFsbCBsaWJpY3UtZGV2ZWwgcHl0aG9uMy1kZXZlbCAjIEZlZG9yYQoKCkNvbW1hbmQgTGluZSBJbnRlcmZhY2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQWZ0ZXIgaW5zdGFsbGluZyBwcmFuY2UsIGEgQ0xJIGlzIGF2YWlsYWJsZSBmb3IgdmFsaWRhdGluZyAoYW5kIHJlc29sdmluZwpleHRlcm5hbCByZWZlcmVuY2VzIGluKSBzcGVjczoKCi4uIGNvZGU6OiBiYXNoCgogICAgIyBWYWxpZGF0ZXMgd2l0aCByZXNvbHZpbmcKICAgICQgcHJhbmNlIHZhbGlkYXRlIHBhdGgvdG8vc3dhZ2dlci55bWwKCiAgICAjIFZhbGlkYXRlcyB3aXRob3V0IHJlc29sdmluZwogICAgJCBwcmFuY2UgdmFsaWRhdGUgLS1uby1yZXNvbHZlIHBhdGgvdG8vc3dhZ2dlci55bWwKCiAgICAjIEZldGNoIFVSTCwgdmFsaWRhdGUgYW5kIHJlc29sdmUuCiAgICAkIHByYW5jZSB2YWxpZGF0ZSBodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24KICAgIFByb2Nlc3NpbmcgImh0dHA6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiIuLi4KICAgICAtPiBSZXNvbHZpbmcgZXh0ZXJuYWwgcmVmZXJlbmNlcy4KICAgIFZhbGlkYXRlcyBPSyBhcyBTd2FnZ2VyL09wZW5BUEkgMi4wIQoKVmFsaWRhdGlvbiBpcyBub3QgdGhlIG9ubHkgZmVhdHVyZSBvZiBwcmFuY2UuIE9uZSBvZiB0aGUgc2lkZSBlZmZlY3RzIG9mCnJlc29sdmluZyBpcyB0aGF0IGZyb20gYSBzcGVjIHdpdGggcmVmZXJlbmNlcywgb25lIGNhbiBjcmVhdGUgYSBmdWxseSByZXNvbHZlZApvdXRwdXQgc3BlYy4gSW4gdGhlIHBhc3QsIHRoaXMgd2FzIGRvbmUgdmlhIG9wdGlvbnMgdG8gdGhlIGBgdmFsaWRhdGVgYCBjb21tYW5kLApidXQgbm93IHRoZXJlJ3MgYSBzcGVjaWZpYyBjb21tYW5kIGp1c3QgZm9yIHRoaXMgcHVycG9zZToKCi4uIGNvZGU6OiBiYXNoCgogICAgIyBDb21waWxlIHNwZWMKICAgICQgcHJhbmNlIGNvbXBpbGUgcGF0aC90by9pbnB1dC55bWwgcGF0aC90by9vdXRwdXQueW1sCgoKTGFzdGx5LCB3aXRoIHRoZSBhcnJpdmFsIG9mIE9wZW5BUEkgMy4wLjAsIGl0IGJlY29tZXMgdXNlZnVsIGZvciB0b29saW5nIHRvCmNvbnZlcnQgb2xkZXIgc3BlY3MgdG8gdGhlIG5ldyBzdGFuZGFyZC4gSW5zdGVhZCBvZiByZS1pbnZlbnRpbmcgdGhlIHdoZWVsLApwcmFuY2UganVzdCBwcm92aWRlcyBhIENMSSBjb21tYW5kIGZvciBwYXNzaW5nIHNwZWNzIHRvIHRoZSB3ZWIgQVBJIG9mCmBzd2FnZ2VyMm9wZW5hcGkgPGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL3N3YWdnZXIyb3BlbmFwaT5gX18gLSBhIHdvcmtpbmcKaW50ZXJuZXQgY29ubmVjdGlvbiBpcyB0aGVyZWZvcmUgcmVxdWlyZWQgZm9yIHRoaXMgY29tbWFuZDoKCi4uIGNvZGU6OiBiYXNoCgogICAgIyBDb252ZXJ0IHNwZWMKICAgICQgcHJhbmNlIGNvbnZlcnQgcGF0aC90by9zd2FnZ2VyLnltbCBwYXRoL3RvL29wZW5hcGkueW1sCgoKQ29kZQotLS0tCgpNb3N0IGxpa2VseSB5b3UgaGF2ZSBzcGVjIGZpbGUgYW5kIHdhbnQgdG8gcGFyc2UgaXQ6CgouLiBjb2RlOjogcHl0aG9uCgogICAgZnJvbSBwcmFuY2UgaW1wb3J0IFJlc29sdmluZ1BhcnNlcgogICAgcGFyc2VyID0gUmVzb2x2aW5nUGFyc2VyKCdwYXRoL3RvL215L3N3YWdnZXIueWFtbCcpCiAgICBwYXJzZXIuc3BlY2lmaWNhdGlvbiAgIyBjb250YWlucyBmdWxseSByZXNvbHZlZCBzcGVjcyBhcyBhIGRpY3QKClByYW5jZSBhbHNvIGluY2x1ZGVzIGEgbm9uLXJlc29sdmluZyBwYXJzZXIgdGhhdCBkb2VzIG5vdCBmb2xsb3cgSlNPTgpyZWZlcmVuY2VzLCBpbiBjYXNlIHlvdSBwcmVmZXIgdGhhdC4KCi4uIGNvZGU6OiBweXRob24KCiAgICBmcm9tIHByYW5jZSBpbXBvcnQgQmFzZVBhcnNlcgogICAgcGFyc2VyID0gQmFzZVBhcnNlcigncGF0aC90by9teS9zd2FnZ2VyLnlhbWwnKQogICAgcGFyc2VyLnNwZWNpZmljYXRpb24gICMgY29udGFpbnMgc3BlY3MgYXMgYSBkaWN0IHN0aWxsIGNvbnRhaW5pbmcgSlNPTiByZWZlcmVuY2VzCgpPbiBXaW5kb3dzLCB0aGUgY29kZSByZWFjdHMgY29ycmVjdGx5IGlmIHlvdSBwYXNzIHBvc2l4LWxpa2UgcGF0aHMKKGBgL2M6L3N3YWdnZXJgYCkgb3IgaWYgdGhlIHBhdGggaXMgcmVsYXRpdmUuICBJZiB5b3UgcGFzcyBhYnNvbHV0ZQp3aW5kb3dzIHBhdGggKGxpa2UgYGBjOlxzd2FnZ2VyLnlhbWxgYCksIHlvdSBjYW4gdXNlCmBgcHJhbmNlLnV0aWwuZnMuYWJzcGF0aGBgIHRvIGNvbnZlcnQgdGhlbS4KClVSTHMgY2FuIGFsc28gYmUgcGFyc2VkOgoKLi4gY29kZTo6IHB5dGhvbgoKICAgIHBhcnNlciA9IFJlc29sdmluZ1BhcnNlcignaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uJykKCkxhcmdlbHksIHRoYXQncyBpdC4gVGhlcmUgaXMgYSB3aG9sZSBzbGV3IG9mIHV0aWxpdHkgY29kZSB0aGF0IHlvdSBtYXkKb3IgbWF5IG5vdCBmaW5kIHVzZWZ1bCwgdG9vLiBMb29rIGF0IHRoZSBgZnVsbCBkb2N1bWVudGF0aW9uCjxodHRwczovL3ByYW5jZS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvI2FwaS1tb2R1bGVzPmBfXyBmb3IgZGV0YWlscy4KCgpDb21wYXRpYmlsaXR5Ci0tLS0tLS0tLS0tLS0KCipQeXRob24gVmVyc2lvbnMqCgpWZXJzaW9uIDAuMTYuMiBpcyB0aGUgbGFzdCB2ZXJzaW9uIHN1cHBvcnRpbmcgUHl0aG9uIDIuIEl0IHdhcyByZWxlYXNlZCBvbgpOb3YgMTJ0aCwgMjAxOS4gUHl0aG9uIDIgcmVhY2hlcyBlbmQgb2YgbGlmZSBhdCB0aGUgZW5kIG9mIDIwMTkuIElmIHlvdSB3aXNoCmZvciB1cGRhdGVzIHRvIHRoZSBQeXRob24gMiBzdXBwb3J0ZWQgcGFja2FnZXMsIHBsZWFzZSBjb250YWN0IHRoZSBtYWludGFpbmVyCmRpcmVjdGx5LgoKVW50aWwgZmFpcmx5IHJlY2VudGx5LCB3ZSBhbHNvIHRlc3RlZCB3aXRoIGBQeVB5IDxodHRwczovL3d3dy5weXB5Lm9yZy8+YF9fLgpVbmZvcnR1bmF0ZWx5LCBUcmF2aXMgaXNuJ3QgdmVyeSBnb29kIGF0IHN1cHBvcnRpbmcgdGhpcy4gU28gaW4gdGhlIGFic2VuY2UKb2Ygc3BhcmUgdGltZSwgdGhleSdyZSBkaXNhYmxlZC4gYElzc3VlIDUwIDxodHRwczovL2dpdGh1Yi5jb20vamZpbmtoYWV1c2VyL3ByYW5jZS9pc3N1ZXMvNTA+YF9fCnRyYWNrcyBwcm9ncmVzcyBvbiB0aGF0LgoKU2ltaWxhcmx5LCBidXQgbGVzcyBjcml0aWNhbGx5LCBQeXRob24gMy40IGlzIG5vIGxvbmdlciByZWNlaXZpbmcgYSBsb3Qgb2YKbG92ZSBmcm9tIENJIHZlbmRvcnMsIHNvIGF1dG9tYXRlZCBidWlsZHMgb24gdGhhdCB2ZXJzaW9uIGFyZSBubyBsb25nZXIKc3VwcG9ydGVkLgoKKkJhY2tlbmRzKgoKRGlmZmVyZW50IHZhbGlkYXRpb24gYmFja2VuZHMgc3VwcG9ydCBkaWZmZXJlbnQgZmVhdHVyZXMuCgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnwgQmFja2VuZCAgICAgICAgICAgICAgICB8IFB5dGhvbiBWZXJzaW9uIHwgT3BlbkFQSSBWZXJzaW9uIHwgU3RyaWN0IE1vZGUgfCBOb3RlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEF2YWlsYWJsZSBGcm9tIHwgTGluayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKz09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kwp8IHN3YWdnZXItc3BlYy12YWxpZGF0b3IgfCAyIGFuZCAzICAgICAgICB8IDIuMCBvbmx5ICAgICAgICB8IHllcyAgICAgICAgIHwgU2xvdzsgZG9lcyBub3QgYWNjZXB0IGludGVnZXIga2V5cyAoc2VlIHN0cmljdCBtb2RlKS4gfCBwcmFuY2UgMC4xICAgICB8IGBzd2FnZ2VyXF9zcGVjXF92YWxpZGF0b3IgPGh0dHBzOi8vZ2l0aHViLmNvbS9ZZWxwL3N3YWdnZXJfc3BlY192YWxpZGF0b3I+YF9fICAgICB8CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBmbGV4ICAgICAgICAgICAgICAgICAgIHwgMiBhbmQgMyAgICAgICAgfCAyLjAgb25seSAgICAgICAgfCBuL2EgICAgICAgICB8IEZhc3Rlc3Q7IHVuZm9ydHVuYXRlbHkgZGVwcmVjYXRlZC4gICAgICAgICAgICAgICAgICAgIHwgcHJhbmNlIDAuOCAgICAgfCBgZmxleCA8aHR0cHM6Ly9naXRodWIuY29tL3BpcGVybWVycmlhbS9mbGV4PmBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnwgb3BlbmFwaS1zcGVjLXZhbGlkYXRvciB8IDIgYW5kIDMgICAgICAgIHwgMi4wIGFuZCAzLjAgICAgIHwgeWVzICAgICAgICAgfCBTbG93OyBkb2VzIG5vdCBhY2NlcHQgaW50ZWdlciBrZXlzIChzZWUgc3RyaWN0IG1vZGUpLiB8IHByYW5jZSAwLjExICAgIHwgYG9wZW5hcGlcX3NwZWNcX3ZhbGlkYXRvciA8aHR0cHM6Ly9naXRodWIuY29tL3AxYzJ1L29wZW5hcGktc3BlYy12YWxpZGF0b3I+YF9fICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKWW91IGNhbiBzZWxlY3QgdGhlIGJhY2tlbmQgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBwYXJzZXIocyk6CgouLiBjb2RlOjogcHl0aG9uCgogICAgcGFyc2VyID0gUmVzb2x2aW5nUGFyc2VyKCdodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24nLCBiYWNrZW5kID0gJ29wZW5hcGktc3BlYy12YWxpZGF0b3InKQoKCk5vIGJhY2tlbmQgaXMgaW5jbHVkZWQgaW4gdGhlIGRlcGVuZGVuY2llczsgdGhleSBhcmUgZGV0ZWN0ZWQgYXQgcnVuLXRpbWUuIElmIHlvdSBpbnN0YWxsIHRoZW0sCnRoZXkgY2FuIGJlIHVzZWQ6CgouLiBjb2RlOjogYmFzaAoKICAgICQgcGlwIGluc3RhbGwgb3BlbmFwaS1zcGVjLXZhbGlkYXRvcgogICAgJCBwaXAgaW5zdGFsbCBwcmFuY2UKICAgICQgcHJhbmNlIHZhbGlkYXRlIC0tYmFja2VuZD1vcGVuYXBpLXNwZWMtdmFsaWRhdG9yIHBhdGgvdG8vc3BlYy55bWwKCipBIG5vdGUgb24gZmxleCB1c2FnZToqIFdoaWxlIGZsZXggaXMgdGhlIGZhc3Rlc3QgdmFsaWRhdGlvbiBiYWNrZW5kLCB1bmZvcnR1bmF0ZWx5IGl0IGlzIG5vIGxvbmdlcgptYWludGFpbmVkIGFuZCB0aGVyZSBhcmUgaXNzdWVzIHdpdGggaXRzIGRlcGVuZGVuY2llcy4gRm9yIG9uZSB0aGluZywgaXQgZGVwZW5kcyBvbiBhIHZlcnNpb24gb2YgYFB5WUFNTGAKdGhhdCBjb250YWlucyBzZWN1cml0eSBmbGF3cy4gRm9yIGFub3RoZXIsIGl0IGRlcGVuZHMgZXhwbGljaXRseSBvbiBvbGRlciB2ZXJzaW9ucyBvZiBgY2xpY2tgLgoKSWYgeW91IHVzZSB0aGUgZmxleCBzdWJwYWNrYWdlLCB0aGVyZWZvcmUsIHlvdSBkbyBzbyBhdCB5b3VyIG93biByaXNrLgoKKkNvbXBhdGliaWxpdHkqCgpTZWUgYENPTVBBVElCSUxJVFkucnN0IDxodHRwczovL2dpdGh1Yi5jb20vamZpbmtoYWV1c2VyL3ByYW5jZS9ibG9iL21hc3Rlci9DT01QQVRJQklMSVRZLnJzdD5gX18KZm9yIGEgbGlzdCBvZiBrbm93biBpc3N1ZXMuCgoKUGFydGlhbCBSZWZlcmVuY2UgUmVzb2x1dGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJdCdzIHBvc3NpYmxlIHRvIGluc3RydWN0IHRoZSBwYXJzZXIgdG8gb25seSByZXNvbHZlIHNvbWUga2luZHMgb2YgcmVmZXJlbmNlcy4KVGhpcyBhbGxvd3MgZS5nLiByZXNvbHZpbmcgcmVmZXJlbmNlcyBmcm9tIGV4dGVybmFsIFVSTHMsIHdoaWxzdCBrZWVwaW5nIGxvY2FsCnJlZmVyZW5jZXMgKGkuZS4gdG8gbG9jYWwgZmlsZXMsIG9yIGZpbGUgaW50ZXJuYWwpIGludGFjdC4KCi4uIGNvZGU6OiBweXRob24KCiAgICBmcm9tIHByYW5jZSBpbXBvcnQgUmVzb2x2aW5nUGFyc2VyCiAgICBmcm9tIHByYW5jZS51dGlsLnJlc29sdmVyIGltcG9ydCBSRVNPTFZFX0hUVFAKCiAgICBwYXJzZXIgPSBSZXNvbHZpbmdQYXJzZXIoJy9wYXRoL3RvL3NwZWMnLCByZXNvbHZlX3R5cGVzID0gUkVTT0xWRV9IVFRQKQoKCk11bHRpcGxlIHR5cGVzIGNhbiBiZSBzcGVjaWZpZWQgYnkgT1ItaW5nIGNvbnN0YW50cyB0b2dldGhlcjoKCi4uIGNvZGU6OiBweXRob24KCiAgICBmcm9tIHByYW5jZSBpbXBvcnQgUmVzb2x2aW5nUGFyc2VyCiAgICBmcm9tIHByYW5jZS51dGlsLnJlc29sdmVyIGltcG9ydCBSRVNPTFZFX0hUVFAsIFJFU09MVkVfRklMRVMKCiAgICBwYXJzZXIgPSBSZXNvbHZpbmdQYXJzZXIoJy9wYXRoL3RvL3NwZWMnLCByZXNvbHZlX3R5cGVzID0gUkVTT0xWRV9IVFRQIHwgUkVTT0xWRV9GSUxFUykKCgpFeHRlbnNpb25zCi0tLS0tLS0tLS0KClByYW5jZSBpbmNsdWRlcyB0aGUgYWJpbGl0eSB0byByZWZlcmVuY2Ugb3V0c2lkZSBzd2FnZ2VyIGRlZmluaXRpb25zCmluIG91dHNpZGUgUHl0aG9uIHBhY2thZ2VzLiBTdWNoIGEgcGFja2FnZSBtdXN0IGFscmVhZHkgYmUgaW1wb3J0YWJsZQooaS5lLiBpbnN0YWxsZWQpLCBhbmQgYmUgYWNjZXNzaWJsZSB2aWEgdGhlCmBSZXNvdXJjZU1hbmFnZXIgQVBJIDxodHRwczovL3NldHVwdG9vbHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3BrZ19yZXNvdXJjZXMuaHRtbCNyZXNvdXJjZW1hbmFnZXItYXBpPmBfXwooc29tZSBtb3JlIGluZm8gYGhlcmUgPGh0dHBzOi8vc2V0dXB0b29scy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3Qvc2V0dXB0b29scy5odG1sI2luY2x1ZGluZy1kYXRhLWZpbGVzPmBfXykuCgpGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IGNyZWF0ZSBhIHBhY2thZ2UgYGBjb21tb25fc3dhZ2BgIHdpdGggdGhlIGZpbGUKYGBiYXNlLnlhbWxgYCBjb250YWluaW5nIHRoZSBkZWZpbml0aW9uCgouLiBjb2RlOjogeWFtbAoKICAgIGRlZmluaXRpb25zOgogICAgICBTZXZlcml0eToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBlbnVtOgogICAgICAgIC0gSU5GTwogICAgICAgIC0gV0FSTgogICAgICAgIC0gRVJST1IKICAgICAgICAtIEZBVEFMCgpJbiB0aGUgYGBzZXR1cC5weWBgIGZvciBgYGNvbW1vbl9zd2FnYGAgeW91IHdvdWxkIGFkZCBsaW5lcyBzdWNoIGFzCgouLiBjb2RlOjogcHl0aG9uCgogICAgcGFja2FnZXM9ZmluZF9wYWNrYWdlcygnc3JjJyksCiAgICBwYWNrYWdlX2Rpcj17Jyc6ICdzcmMnfSwKICAgIHBhY2thZ2VfZGF0YT17CiAgICAgICAgJyc6ICcqLnlhbWwnCiAgICB9CgpUaGVuLCBoYXZpbmcgaW5zdGFsbGVkIGBgY29tbW9uX3N3YWdgYCBpbnRvIHNvbWUgYXBwbGljYXRpb24sIHlvdSBjb3VsZApub3cgd3JpdGUKCi4uIGNvZGU6OiB5YW1sCgogICAgZGVmaW5pdGlvbnM6CiAgICAgIE1lc3NhZ2U6CiAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgIHNldmVyaXR5OgogICAgICAgICAgICAkcmVmOiAncHl0aG9uOi8vY29tbW9uX3N3YWcvYmFzZS55YW1sIy9kZWZpbml0aW9ucy9TZXZlcml0eScKICAgICAgICAgIGNvZGU6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgc3VtbWFyeToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZXNjcmlwdGlvbjoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBzZXZlcml0eQogICAgICAgIC0gc3VtbWFyeQoKQ29udHJpYnV0aW5nCj09PT09PT09PT09PQoKU2VlIGBDT05UUklCVVRJTkcubWQgPGh0dHBzOi8vZ2l0aHViLmNvbS9qZmlua2hhZXVzZXIvcHJhbmNlL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZD5gX18gZm9yIGRldGFpbHMuCgpQcm9mZXNzaW9uYWwgc3VwcG9ydCBpcyBhdmFpbGFibGUgdGhyb3VnaCBgZmlua2hhZXVzZXIgY29uc3VsdGluZyA8aHR0cHM6Ly9maW5raGFldXNlci5kZT5gX18uCgpMaWNlbnNlCj09PT09PT0KCkxpY2Vuc2VkIHVuZGVyIE1JVC4gU2VlIHRoZSBgTElDRU5TRS50eHQgPGh0dHBzOi8vZ2l0aHViLmNvbS9Sb25ueVBmYW5uc2NobWlkdC9wcmFuY2UvYmxvYi9tYXN0ZXIvTElDRU5TRS50eHQ+YF9fIGZpbGUgZm9yIGRldGFpbHMuCgoiUHJhbmNpbmcgdW5pY29ybiIgbG9nbyBpbWFnZSBDb3B5cmlnaHQgKGMpIEplbnMgRmlua2hhZXVzZXIuCk1hZGUgYnkgYE1vcmV2ZW4gQiA8aHR0cDovL21vcmV2ZW5iLmNvbS8+YF9fLiBVc2Ugb2YgdGhlIGxvZ28gaXMgcGVybWl0dGVkIHVuZGVyCnRoZSBgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1Ob25Db21tZXJjaWFsLVNoYXJlQWxpa2UgNC4wIEludGVybmF0aW9uYWwgbGljZW5zZSA8aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC8+YF9fLgoKCi4uIHxMaWNlbnNlfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9sL3ByYW5jZS5zdmcKICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9wcmFuY2UvCi4uIHxQeVBJfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3ByYW5jZS5zdmcKICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9wcmFuY2UvCi4uIHxQYWNrYWdlIEZvcm1hdHwgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZm9ybWF0L3ByYW5jZS5zdmcKICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9wcmFuY2UvCi4uIHxQeXRob24gVmVyc2lvbnN8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvcHJhbmNlLnN2ZwogICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3ByYW5jZS8KLi4gfFBhY2thZ2UgU3RhdHVzfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9zdGF0dXMvcHJhbmNlLnN2ZwogICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3ByYW5jZS8KLi4gfExvZ298IGltYWdlOjogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1Jvbm55UGZhbm5zY2htaWR0L3ByYW5jZS9tYXN0ZXIvZG9jcy9pbWFnZXMvcHJhbmNlX2xvZ29fMjU2LnBuZwo= readmeEtag: '"3a47ba4b9a16416998163676ba68d5e302e7dd0f"' readmeLastModified: Wed, 21 Jun 2023 20:02:29 GMT repositoryId: 67692955 description: Resolving Swagger/OpenAPI 2.0 and 3.0 Parser created: '2016-09-08T10:23:39Z' updated: '2024-08-09T08:40:19Z' language: Python archived: false stars: 225 watchers: 9 forks: 43 owner: RonnyPfannschmidt logo: https://avatars.githubusercontent.com/u/156838?v=4 license: NOASSERTION repoEtag: '"d561a3f8d8400a66491235097092177ae1611b2a1f7c3fdc5bc45994b65f56d7"' repoLastModified: Fri, 09 Aug 2024 08:40:19 GMT foundInMaster: true id: 06b2469a97224b07993ee5f7d921ea36 - source: openapi3 tags repository: https://github.com/cornutum/tcases v3: true repositoryMetadata: base64Readme: >- IyBUY2FzZXM6IEEgTW9kZWwtQmFzZWQgVGVzdCBDYXNlIEdlbmVyYXRvciAjCgpbIVtNYXZlbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYXZlbi00LjAuNS1ncmVlbi5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9dGNhc2VzLXNoZWxsKQpbIVtKYXZhZG9jXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmFkb2MtNC4wLjUtZ3JlZW4uc3ZnKV0oaHR0cHM6Ly9qYXZhZG9jLmlvL2RvYy9vcmcuY29ybnV0dW0udGNhc2VzL3RjYXNlcy1zaGVsbCkKCiMjIFdoYXQncyBOZXc/ICMjCiAgKiBUaGUgbGF0ZXN0IHZlcnNpb24gKFtUY2FzZXMgNC4wLjVdKFJlbGVhc2VOb3Rlcy5tZCM0MDUpKSBpcyBub3cgYXZhaWxhYmxlIGF0IHRoZSBNYXZlbiBDZW50cmFsIFJlcG9zaXRvcnkuCiAgICBTZWUgWypIb3cgVG8gRG93bmxvYWQgVGNhc2VzKl0oSG93VG9Eb3dubG9hZC5tZCkgZm9yIGRvd25sb2FkIGluc3RydWN0aW9ucy4KCiAgKiBIYXZpbmcgdHJvdWJsZSB3aXRoIFRjYXNlcz8gQ2hlY2sgb3V0IFt0aGVzZSB0aXBzXSguL1Ryb3VibGVzaG9vdGluZy1GQVFzLm1kKS4KCiAgKiBHb3QgYSBxdWVzdGlvbj8gTmVlZCBzb21lIGd1aWRhbmNlPyBTdGFydCBhIFtkaXNjdXNzaW9uXShodHRwczovL2dpdGh1Yi5jb20vQ29ybnV0dW0vdGNhc2VzL2Rpc2N1c3Npb25zKS4KCiMjIFdoYXQgRG9lcyBJdCBEbz8gIyMKClRjYXNlcyBpcyBhIHRvb2wgZm9yIGRlc2lnbmluZyB0ZXN0cy4gSXQgZG9lc24ndCBtYXR0ZXIgd2hhdCBraW5kIG9mIHN5c3RlbSB5b3UgYXJlIHRlc3RpbmcgLS0gVUksIGNvbW1hbmQgbGluZSwKW1JFU1QtZnVsIEFQSV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKSwgb3IgYmFja2VuZC4gIE5vciBkb2VzIGl0IG1hdHRlcgp3aGF0IGxldmVsIG9mIHRoZSBzeXN0ZW0geW91IGFyZSB0ZXN0aW5nIC0tIHVuaXQsIHN1YnN5c3RlbSwgb3IgZnVsbCBzeXN0ZW0uIFlvdSBjYW4gdXNlIFRjYXNlcyB0byBkZXNpZ24geW91ciB0ZXN0cyBpbiBhbnkgb2YKdGhlc2Ugc2l0dWF0aW9ucy4gV2l0aCBUY2FzZXMsIHlvdSBkZWZpbmUgdGhlIGlucHV0IHNwYWNlIGZvciB5b3VyIHN5c3RlbS11bmRlci10ZXN0IGFuZCB0aGUgbGV2ZWwgb2YgY292ZXJhZ2UgdGhhdCB5b3UKd2FudC4gVGhlbiBUY2FzZXMgZ2VuZXJhdGVzIGEgbWluaW1hbCBzZXQgb2YgdGVzdCBjYXNlcyB0aGF0IG1lZXRzIHlvdXIgcmVxdWlyZW1lbnRzLgoKVGNhc2VzIGlzIHByaW1hcmlseSBhIHRvb2wgZm9yIGJsYWNrLWJveCB0ZXN0IGRlc2lnbi4gRm9yIHN1Y2ggdGVzdHMsIHRoZSBjb25jZXB0IG9mICJjb3ZlcmFnZSIgaXMgZGlmZmVyZW50IGZyb20gc3RydWN0dXJhbAp0ZXN0aW5nIGNyaXRlcmlhIHN1Y2ggYXMgbGluZSBjb3ZlcmFnZSwgYnJhbmNoIGNvdmVyYWdlLCBldGMuIEluc3RlYWQsIFRjYXNlcyBpcyBndWlkZWQgYnkgY292ZXJhZ2Ugb2YgdGhlIGlucHV0IHNwYWNlIG9mIHlvdXIKc3lzdGVtLgoKVGNhc2VzIGdpdmVzIHlvdSBhIHdheSB0byBkZWZpbmUgdGhlIGlucHV0IHNwYWNlIGZvciB5b3VyIHN5c3RlbSBpbiBhIGZvcm0gdGhhdCBpcyBjb25jaXNlIGJ1dCBjb21wcmVoZW5zaXZlLiBUaGVuIFRjYXNlcyBhbGxvd3MKeW91IHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzIGluIHlvdXIgc2FtcGxlIHN1YnNldCBieSBzcGVjaWZ5aW5nIHRoZSBsZXZlbCBvZiBjb3ZlcmFnZSB5b3Ugd2FudC4gWW91IGNhbiBzdGFydCB3aXRoIGEKYmFzaWMgbGV2ZWwgb2YgY292ZXJhZ2UsIGFuZCBUY2FzZXMgd2lsbCBnZW5lcmF0ZSBhIHNtYWxsIHNldCBvZiB0ZXN0IGNhc2VzIHRoYXQgdG91Y2hlcyBldmVyeSBzaWduaWZpY2FudCBlbGVtZW50IG9mIHRoZSBpbnB1dApzcGFjZS4gVGhlbiB5b3UgY2FuIGltcHJvdmUgeW91ciB0ZXN0cyBieSBzZWxlY3RpdmVseSBhZGRpbmcgY292ZXJhZ2UgaW4gc3BlY2lmaWMgaGlnaC1yaXNrIGFyZWFzLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBzcGVjaWZ5CnBhaXJ3aXNlIGNvdmVyYWdlIG9yIGhpZ2hlci1vcmRlciBjb21iaW5hdGlvbnMgb2Ygc2VsZWN0ZWQgaW5wdXQgdmFyaWFibGVzLgoKIyMgSG93IERvZXMgSXQgV29yaz8gIyMKCkZpcnN0LCB5b3UgY3JlYXRlIGEgc3lzdGVtIGlucHV0IGRlZmluaXRpb24sIGEgZG9jdW1lbnQgdGhhdCBkZWZpbmVzIHlvdXIgc3lzdGVtIGFzIGEgc2V0IG9mIGZ1bmN0aW9ucy4gRm9yIGVhY2ggc3lzdGVtCmZ1bmN0aW9uLCB0aGUgc3lzdGVtIGlucHV0IGRlZmluaXRpb24gZGVmaW5lcyB0aGUgdmFyaWFibGVzIHRoYXQgY2hhcmFjdGVyaXplIHRoZSBmdW5jdGlvbiBpbnB1dCBzcGFjZS4gSWYgeW91IGFyZSB0ZXN0aW5nIGEgV2ViCnNlcnZpY2UgQVBJLCB5b3UgY2FuIGV2ZW4gW2dlbmVyYXRlIGEgc3lzdGVtIGlucHV0IGRlZmluaXRpb24gYXV0b21hdGljYWxseV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKQpmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbi4KClRoZW4sIHlvdSBjYW4gY3JlYXRlIGEgZ2VuZXJhdG9yIGRlZmluaXRpb24uIFRoYXQncyBhbm90aGVyIGRvY3VtZW50IHRoYXQgZGVmaW5lcyB0aGUgY292ZXJhZ2UgeW91IHdhbnQgZm9yIGVhY2ggc3lzdGVtCmZ1bmN0aW9uLiBUaGUgZ2VuZXJhdG9yIGRlZmluaXRpb24gaXMgb3B0aW9uYWwuIFlvdSBjYW4gc2tpcCB0aGlzIHN0ZXAgYW5kIHN0aWxsIGdldCBhIGJhc2ljIGxldmVsIG9mIGNvdmVyYWdlLgoKRmluYWxseSwgeW91IHJ1biBUY2FzZXMuIFRjYXNlcyBpcyBhIEphdmEgcHJvZ3JhbSB0aGF0IHlvdSBjYW4gcnVuIGZyb20gdGhlIGNvbW1hbmQgbGluZSBvciB1c2luZyB0aGUKW1RjYXNlcyBNYXZlbiBQbHVnaW5dKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL3RjYXNlcy1tYXZlbi1wbHVnaW4vKS4gVGhlIGNvbW1hbmQgbGluZSB2ZXJzaW9uIG9mIFRjYXNlcyBjb21lcyB3aXRoIGJ1aWx0LWluCnN1cHBvcnQgZm9yIHJ1bm5pbmcgdXNpbmcgYSBzaGVsbCBzY3JpcHQgb3IgYW4gYW50IHRhcmdldC4gVXNpbmcgeW91ciBpbnB1dCBkZWZpbml0aW9uIGFuZCB5b3VyIGdlbmVyYXRvciBkZWZpbml0aW9uLCBUY2FzZXMKZ2VuZXJhdGVzIGEgc3lzdGVtIHRlc3QgZGVmaW5pdGlvbi4gVGhlIHN5c3RlbSB0ZXN0IGRlZmluaXRpb24gaXMgYSBkb2N1bWVudCB0aGF0IGxpc3RzLCBmb3IgZWFjaCBzeXN0ZW0gZnVuY3Rpb24sIGEgc2V0IG9mIHRlc3QKY2FzZXMgdGhhdCBwcm92aWRlcyB0aGUgc3BlY2lmaWVkIGxldmVsIG9mIGNvdmVyYWdlLiBFYWNoIHRlc3QgY2FzZSBkZWZpbmVzIGEgc3BlY2lmaWMgdmFsdWUgZm9yIGV2ZXJ5IGZ1bmN0aW9uIGlucHV0CnZhcmlhYmxlLiBUY2FzZXMgZ2VuZXJhdGVzIG5vdCBvbmx5IHZhbGlkIGlucHV0IHZhbHVlcyB0aGF0IGRlZmluZSBzdWNjZXNzZnVsIHRlc3QgY2FzZXMgYnV0IGFsc28gaW52YWxpZCB2YWx1ZXMgZm9yIHRoZSB0ZXN0cwpjYXNlcyB0aGF0IGFyZSBuZWVkZWQgdG8gdmVyaWZ5IGV4cGVjdGVkIGVycm9yIGhhbmRsaW5nLgoKT2YgY291cnNlLCB0aGUgc3lzdGVtIHRlc3QgZGVmaW5pdGlvbiBpcyBub3Qgc29tZXRoaW5nIHlvdSBjYW4gZXhlY3V0ZSBkaXJlY3RseS4gKFVubGVzcyBpdCB3YXMKW2Rlcml2ZWQgYXV0b21hdGljYWxseSBmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbl0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI2hvdy1kby15b3UtcnVuLWdlbmVyYXRlZC1hcGktdGVzdC1jYXNlcykhKQpCdXQgaXQgZm9sbG93cyBhIHdlbGwtZGVmaW5lZCBzY2hlbWEsIHdoaWNoIG1lYW5zIHlvdSBjYW4gdXNlIGEgdmFyaWV0eSBvZiB0cmFuc2Zvcm1hdGlvbiB0b29scyB0byBjb252ZXJ0IGl0IGludG8gYSBmb3JtIHRoYXQKaXMgc3VpdGFibGUgZm9yIHRlc3RpbmcgeW91ciBzeXN0ZW0uIEZvciBleGFtcGxlLCBUY2FzZXMgY29tZXMgd2l0aCBhIGJ1aWx0LWluIHRyYW5zZm9ybWVyIHRoYXQgY29udmVydHMgYSBzeXN0ZW0gdGVzdApkZWZpbml0aW9uIGludG8gYSBKYXZhIHNvdXJjZSBjb2RlIHRlbXBsYXRlIGZvciBhIEpVbml0IG9yIFRlc3RORyB0ZXN0IGNsYXNzLgoKIyMgR2V0IFN0YXJ0ZWQhICMjCgogICogKipUaGUgTG93ZG93bioqCiAgICAqIFtUY2FzZXM6IFRoZSBDb21wbGV0ZSBHdWlkZV0oLi9UY2FzZXMtR3VpZGUubWQjdGNhc2VzLXRoZS1jb21wbGV0ZS1ndWlkZSkKICAgICogW1RjYXNlcyBmb3IgT3BlbkFQSV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKTogVGVzdGluZyBhIFJFU1QtZnVsIEFQST8gR2VuZXJhdGUgdGVzdCBjYXNlcyBkaXJlY3RseSBmcm9tIHlvdXIgT3BlbkFQSSB2MyBkZWZpbml0aW9uLgogICAgKiBbVGhlIFRjYXNlcyBNYXZlbiBQbHVnaW5dKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL3RjYXNlcy1tYXZlbi1wbHVnaW4vKQoKICAqICoqSGVscGZ1bCBHdWlkZXMqKgogICAgKiBbSG93IFRvIERvd25sb2FkIFVzaW5nIE1hdmVuXShIb3dUb0Rvd25sb2FkLm1kKQogICAgKiBbSG93IFRvIFNldHVwIGEgVGNhc2VzIFdlYiBTZXJ2aWNlXSguL1RjYXNlcy1XZWItU2VydmljZS5tZCkKICAgICogW1VzaW5nIFRoZSBUY2FzZXMgQVBJXSguL1VzaW5nLVRjYXNlcy1BUEkubWQpCiAgICAqIFtUcm91Ymxlc2hvb3RpbmcgRkFRXSguL1Ryb3VibGVzaG9vdGluZy1GQVFzLm1kI3Ryb3VibGVzaG9vdGluZy1mYXFzKQogICAgKiBbUmVsZWFzZSBOb3Rlc10oUmVsZWFzZU5vdGVzLm1kKQoKICAqICoqTW9yZSBJbmZvKioKICAgICogW01vZGVsLURyaXZlbiBUZXN0aW5nIFVzaW5nIFRjYXNlc10oTW9kZWxEcml2ZW5UZXN0aW5nRm9yQWdpbGVUZWFtcy5tZCkKICAgICogSmF2YWRvYzogW1RjYXNlcyBBUEldKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL2FwaS9pbmRleC5odG1sKQoKIyMgQ29udHJpYnV0b3JzICMjCgpUaGFua3MgdG8gdGhlIGZvbGxvd2luZyBwZW9wbGUsIHdobyBoYXZlIGNvbnRyaWJ1dGVkIHNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBUY2FzZXMuCgogICogW0tlcnJ5IEtpbWJyb3VnaF0oaHR0cHM6Ly9naXRodWIuY29tL2tlcnJ5a2ltYnJvdWdoKSAocHJvamVjdCBmb3VuZGVyKQogICogW0p1Z2xhcl0oaHR0cHM6Ly9naXRodWIuY29tL2p1Z2xhcikKICAqIFtUaGliYXVsdCBLcnVzZV0oaHR0cHM6Ly9naXRodWIuY29tL3RrcnVzZSkK readmeEtag: '"f230676de22e22cd64556f829daff2ce7cc58112"' readmeLastModified: Sat, 06 Apr 2024 16:58:48 GMT repositoryId: 32223373 description: A model-based test case generator created: '2015-03-14T17:22:38Z' updated: '2024-08-10T02:42:35Z' language: Java archived: false stars: 215 watchers: 20 forks: 52 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT repoEtag: '"221153f820cc6cbf4fe0bd4ad9a4e694a12f4718779d7a0ef7c06426d65fc534"' repoLastModified: Sat, 10 Aug 2024 02:42:35 GMT foundInMaster: true category: Testing id: 0843a8b0533f5128a9b0e3cf353e82cd - source: openapi3 tags repository: https://github.com/epiphone/class-validator-jsonschema v3: true repositoryMetadata: base64Readme: >- IyBjbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYQoKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2VwaXBob25lL2NsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2VwaXBob25lL2NsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hKSBbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL2NsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9jbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYSkKCkNvbnZlcnQgW2NsYXNzLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3R5cGVzdGFjay9jbGFzcy12YWxpZGF0b3IpLWRlY29yYXRlZCBjbGFzc2VzIGludG8gT3BlbkFQSS1jb21wYXRpYmxlIEpTT04gU2NoZW1hLiBUaGUgYWltIGlzIHRvIHByb3ZpZGUgYSBiZXN0LWVmZm9ydCBjb252ZXJzaW9uOiBzaW5jZSBzb21lIG9mIHRoZSBgY2xhc3MtdmFsaWRhdG9yYCBkZWNvcmF0b3JzIGxhY2sgYSBkaXJlY3QgSlNPTiBTY2hlbWEgY291bnRlcnBhcnQsIHRoZSBjb252ZXJzaW9uIGlzIGJvdW5kIHRvIGJlIHNvbWV3aGF0IG9waW5pb25hdGVkLiBUbyBhY2NvdW50IGZvciB0aGlzIG11bHRpcGxlIGV4dGVuc2lvbiBwb2ludHMgYXJlIGF2YWlsYWJsZS4KCiMjIEluc3RhbGxhdGlvbgoKYG5wbSBpbnN0YWxsIGNsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hYAoKKipOb3RlIHRoZSBwZWVyIGRlcGVuZGVuY3kgdmVyc2lvbnMqKiBpbiBbcGFja2FnZS5qc29uXSguL3BhY2thZ2UuanNvbikuIFRyeSBpbnN0YWxsaW5nIGEgcHJldmlvdXMgbWFqb3IgdmVyc2lvbiBvZiBgY2xhc3MtdmFsaWRhdG9yLWpzb25zY2hlbWFgIGluIGNhc2UgeW91J3JlIHN0dWNrIHdpdGggb2xkZXIgcGVlciBkZXBlbmRlbmNpZXMuCgojIyBVc2FnZQoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBJc09wdGlvbmFsLCBJc1N0cmluZywgTWF4TGVuZ3RoIH0gZnJvbSAnY2xhc3MtdmFsaWRhdG9yJwppbXBvcnQgeyB2YWxpZGF0aW9uTWV0YWRhdGFzVG9TY2hlbWFzIH0gZnJvbSAnY2xhc3MtdmFsaWRhdG9yLWpzb25zY2hlbWEnCgpjbGFzcyBCbG9nUG9zdCB7CiAgQElzU3RyaW5nKCkgaWQ6IHN0cmluZwoKICBASXNPcHRpb25hbCgpCiAgQE1heExlbmd0aCgyMCwgeyBlYWNoOiB0cnVlIH0pCiAgdGFnczogc3RyaW5nW10KfQoKY29uc3Qgc2NoZW1hcyA9IHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXMoKQpjb25zb2xlLmxvZyhzY2hlbWFzKQpgYGAKCndoaWNoIHByaW50cyBvdXQ6CgpgYGBqc29uCnsKICAiQmxvZ1Bvc3QiOiB7CiAgICAicHJvcGVydGllcyI6IHsKICAgICAgImlkIjogewogICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgfSwKICAgICAgInRhZ3MiOiB7CiAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgIm1heExlbmd0aCI6IDIwLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgInR5cGUiOiAiYXJyYXkiCiAgICAgIH0KICAgIH0sCiAgICAicmVxdWlyZWQiOiBbImlkIl0sCiAgICAidHlwZSI6ICJvYmplY3QiCiAgfQp9CmBgYAoKYHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXNgIHRha2VzIGFuIGBvcHRpb25zYCBvYmplY3QgYXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyLiBDaGVjayBhdmFpbGFibGUgY29uZmlndXJhdGlvbiBvYmplY3RzIGFuZCBkZWZhdWx0cyBhdCBbYG9wdGlvbnMudHNgXShzcmMvb3B0aW9ucy50cykuCgojIyMgQWRkaW5nIGFuZCBvdmVycmlkaW5nIGRlZmF1bHQgY29udmVydGVycwoKV2l0aCBgb3B0aW9ucy5hZGRpdGlvbmFsQ29udmVydGVyc2AgeW91IGNhbiBhZGQgbmV3IHZhbGlkYXRpb24gbWV0YWRhdGEgY29udmVydGVycyBvciBvdmVycmlkZSBbdGhlIGV4aXN0aW5nIG9uZXNdKHNyYy9kZWZhdWx0Q29udmVydGVycy50cykuIExldCdzIHNheSB3ZSB3YW50IHRvLCBmb3IgZXhhbXBsZSwgYWRkIGEgaGFuZHkgYGRlc2NyaXB0aW9uYCBmaWVsZCB0byBlYWNoIGBASXNTdHJpbmcoKWAtZGVjb3JhdGVkIHByb3BlcnR5OgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBWYWxpZGF0aW9uVHlwZXMgfSBmcm9tICdjbGFzcy12YWxpZGF0b3InCgovLyAuLi4KCmNvbnN0IHNjaGVtYXMgPSB2YWxpZGF0aW9uTWV0YWRhdGFzVG9TY2hlbWFzKHsKICBhZGRpdGlvbmFsQ29udmVydGVyczogewogICAgW1ZhbGlkYXRpb25UeXBlcy5JU19TVFJJTkddOiB7CiAgICAgIGRlc2NyaXB0aW9uOiAnQSBzdHJpbmcgdmFsdWUnLAogICAgICB0eXBlOiAnc3RyaW5nJywKICAgIH0sCiAgfSwKfSkKYGBgCgp3aGljaCBub3cgb3V0cHV0czoKCmBgYGpzb24KewogICJCbG9nUG9zdCI6IHsKICAgICJwcm9wZXJ0aWVzIjogewogICAgICAiaWQiOiB7CiAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc3RyaW5nIHZhbHVlIiwKICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgIH0KICAgICAgLy8gLi4uCiAgICB9CiAgfQp9CmBgYAoKQW4gYWRkaXRpb25hbCBjb252ZXJ0ZXIgY2FuIGFsc28gYmUgc3VwcGxpZWQgaW4gZm9ybSBvZiBhIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgdGhlIHZhbGlkYXRpb24gbWV0YWRhdGEgaXRlbSBhbmQgZ2xvYmFsIG9wdGlvbnMsIG91dHB1dHRpbmcgYSBKU09OIFNjaGVtYSBwcm9wZXJ0eSBvYmplY3QgKHNlZSBiZWxvdyBmb3IgdXNhZ2UpOgoKYGBgdHlwZXNjcmlwdAp0eXBlIFNjaGVtYUNvbnZlcnRlciA9ICgKICBtZXRhOiBWYWxpZGF0aW9uTWV0YWRhdGEsCiAgb3B0aW9uczogSU9wdGlvbnMKKSA9PiBTY2hlbWFPYmplY3QgfCB2b2lkCmBgYAoKIyMjIEN1c3RvbSB2YWxpZGF0aW9uIGNsYXNzZXMKCmBjbGFzcy12YWxpZGF0b3JgIGFsbG93cyB5b3UgdG8gZGVmaW5lIFtjdXN0b20gdmFsaWRhdGlvbiBjbGFzc2VzXShodHRwczovL2dpdGh1Yi5jb20vdHlwZXN0YWNrL2NsYXNzLXZhbGlkYXRvciNjdXN0b20tdmFsaWRhdGlvbi1jbGFzc2VzKS4gWW91IG1pZ2h0IGZvciBleGFtcGxlIHZhbGlkYXRlIHRoYXQgYSBzdHJpbmcncyBsZW5ndGggaXMgYmV0d2VlbiBnaXZlbiB0d28gdmFsdWVzOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgewogIFZhbGlkYXRlLAogIFZhbGlkYXRpb25Bcmd1bWVudHMsCiAgVmFsaWRhdG9yQ29uc3RyYWludCwKICBWYWxpZGF0b3JDb25zdHJhaW50SW50ZXJmYWNlLAp9IGZyb20gJ2NsYXNzLXZhbGlkYXRvcicKCi8vIEltcGxlbWVudGluZyB0aGUgdmFsaWRhdG9yOgoKQFZhbGlkYXRvckNvbnN0cmFpbnQoKQpleHBvcnQgY2xhc3MgQ3VzdG9tVGV4dExlbmd0aCBpbXBsZW1lbnRzIFZhbGlkYXRvckNvbnN0cmFpbnRJbnRlcmZhY2UgewogIHZhbGlkYXRlKHRleHQ6IHN0cmluZywgdmFsaWRhdGlvbkFyZ3VtZW50czogVmFsaWRhdGlvbkFyZ3VtZW50cykgewogICAgY29uc3QgW21pbiwgbWF4XSA9IHZhbGlkYXRpb25Bcmd1bWVudHMuY29uc3RyYWludHMKICAgIHJldHVybiB0ZXh0Lmxlbmd0aCA+PSBtaW4gJiYgdGV4dC5sZW5ndGggPD0gbWF4CiAgfQp9CgovLyAuLi5hbmQgcHV0dGluZyBpdCB0byB1c2U6CgpjbGFzcyBQb3N0IHsKICBAVmFsaWRhdGUoQ3VzdG9tVGV4dExlbmd0aCwgWzAsIDExXSkKICB0aXRsZTogc3RyaW5nCn0KYGBgCgpOb3cgdG8gaGFuZGxlIHlvdXIgY3VzdG9tIHZhbGlkYXRvcidzIEpTT04gU2NoZW1hIGNvbnZlcnNpb24gaW5jbHVkZSBhIGBDdXN0b21UZXh0TGVuZ3RoYCBjb252ZXJ0ZXIgaW4gYG9wdGlvbnMuYWRkaXRpb25hbENvbnZlcnRlcnNgOgoKYGBgdHlwZXNjcmlwdApjb25zdCBzY2hlbWFzID0gdmFsaWRhdGlvbk1ldGFkYXRhc1RvU2NoZW1hcyh7CiAgYWRkaXRpb25hbENvbnZlcnRlcnM6IHsKICAgIEN1c3RvbVRleHRMZW5ndGg6IChtZXRhKSA9PiAoewogICAgICBtYXhMZW5ndGg6IG1ldGEuY29uc3RyYWludHNbMV0sCiAgICAgIG1pbkxlbmd0aDogbWV0YS5jb25zdHJhaW50c1swXSwKICAgICAgdHlwZTogJ3N0cmluZycsCiAgICB9KSwKICB9LAp9KQpgYGAKCiMjIyBEZWNvcmF0aW5nIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzCgpWYWxpZGF0aW9uIGNsYXNzZXMgY2FuIGFsc28gYmUgc3VwcGxlbWVudGVkIHdpdGggdGhlIGBKU09OU2NoZW1hYCBkZWNvcmF0b3IuIGBKU09OU2NoZW1hYCBjYW4gYmUgYXBwbGllZCBib3RoIHRvIGNsYXNzZXMgYW5kIGluZGl2aWR1YWwgcHJvcGVydGllczsgYW55IGdpdmVuIGtleXdvcmRzIGFyZSB0aGVuIFttZXJnZWRdKGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNCNtZXJnZSkgaW50byB0aGUgSlNPTiBTY2hlbWEgZGVyaXZlZCBmcm9tIGNsYXNzLXZhbGlkYXRvciBkZWNvcmF0b3JzOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBKU09OU2NoZW1hIH0gZnJvbSAnY2xhc3MtdmFsaWRhdG9yLWpzb25zY2hlbWEnCgpASlNPTlNjaGVtYSh7CiAgZGVzY3JpcHRpb246ICdBIFVzZXIgb2JqZWN0JywKICBleGFtcGxlOiB7IGlkOiAnMTIzJyB9LAp9KQpjbGFzcyBCbG9nUG9zdCB7CiAgQElzU3RyaW5nKCkKICBASlNPTlNjaGVtYSh7CiAgICBkZXNjcmlwdGlvbjogJ1VzZXIgcHJpbWFyeSBrZXknLAogICAgZm9ybWF0OiAnY3VzdG9tLWlkJywKICB9KQogIGlkOiBzdHJpbmcKfQpgYGAKClJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyBzY2hlbWE6CgpgYGBqc29uCnsKICAiQmxvZ1Bvc3QiOiB7CiAgICAiZGVzY3JpcHRpb24iOiAiQSBVc2VyIG9iamVjdCIsCiAgICAiZXhhbXBsZSI6IHsgImlkIjogIjEyMyIgfSwKICAgICJwcm9wZXJ0aWVzIjogewogICAgICAiaWQiOiB7CiAgICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgcHJpbWFyeSBrZXkiLAogICAgICAgICJmb3JtYXQiOiAiY3VzdG9tLWlkIiwKICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgIH0KICAgIH0sCiAgICAicmVxdWlyZWQiOiBbImlkIl0sCiAgICAidHlwZSI6ICJvYmplY3QiCiAgfQp9CmBgYAoKYEpTT05TY2hlbWFgIGRlY29yYXRvcnMgYWxzbyBmbG93IGRvd24gZnJvbSBwYXJlbnQgY2xhc3NlcyBpbnRvIFtpbmhlcml0ZWQgdmFsaWRhdGlvbiBkZWNvcmF0b3JzXShodHRwczovL2dpdGh1Yi5jb20vdHlwZXN0YWNrL2NsYXNzLXZhbGlkYXRvciNpbmhlcml0aW5nLXZhbGlkYXRpb24tZGVjb3JhdG9ycykuIE5vdGUgdGhvdWdoIHRoYXQgaWYgdGhlIGluaGVyaXRlZCBjbGFzcyB1c2VzIGBKU09OU2NoZW1hYCB0byByZWRlY29yYXRlIGEgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGNsYXNzLCB0aGUgcGFyZW50IGNsYXNzIGBKU09OU2NoZW1hYCBnZXRzIG92ZXJ3cml0dGVuIC0gaS5lLiB0aGVyZSdzIG5vIG1lcmdpbmcgbG9naWMuCgojIyMjIEN1c3RvbSBoYW5kbGVycwoKQWx0ZXJuYXRpdmVseSBgSlNPTlNjaGVtYWAgY2FuIHRha2UgYSBmdW5jdGlvbiBvZiB0eXBlIGAoZXhpc3RpbmdTY2hlbWE6IFNjaGVtYU9iamVjdCwgb3B0aW9uczogSU9wdGlvbnMpID0+IFNjaGVtYU9iamVjdGAuIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBpcyB0aGVuICoqbm90KiogYXV0b21hdGljYWxseSBtZXJnZWQgaW50byBleGlzdGluZyBzY2hlbWEgKGkuZS4gdGhlIG9uZSBkZXJpdmVkIGZyb20gYGNsYXNzLXZhbGlkYXRvcmAgZGVjb3JhdG9ycykuIEluc3RlYWQgeW91IGNhbiBoYW5kbGUgbWVyZ2luZyB5b3Vyc2VsZiBpbiB3aGljaGV2ZXIgd2F5IGlzIHByZWZlcnJlZCwgdGhlIGlkZWEgYmVpbmcgdGhhdCByZW1vdmFsIG9mIGV4aXN0aW5nIGtleXdvcmRzIGFuZCBvdGhlciBtb3JlIGNvbXBsZXggb3ZlcndyaXRlIHNjZW5hcmlvcyBjYW4gYmUgaW1wbGVtZW50ZWQgaGVyZS4KCiMjIyBAVmFsaWRhdGVOZXN0ZWQgYW5kIGFycmF5cwoKYGNsYXNzLXZhbGlkYXRvcmAgc3VwcG9ydHMgdmFsaWRhdGluZyBuZXN0ZWQgb2JqZWN0cyB2aWEgdGhlIFtgQFZhbGlkYXRlTmVzdGVkYCBkZWNvcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS90eXBlc3RhY2svY2xhc3MtdmFsaWRhdG9yI3ZhbGlkYXRpbmctbmVzdGVkLW9iamVjdHMpLiBMaWtld2lzZSBKU09OIFNjaGVtYSBnZW5lcmF0aW9uIGlzIHN1cHBvcnRlZCBvdXQtb2YtdGhlLWJveCBmb3IgbmVzdGVkIHByb3BlcnRpZXMgc3VjaCBhcwoKYGBgdHlwZXNjcmlwdApAVmFsaWRhdGVOZXN0ZWQoKQp1c2VyOiBVc2VyQ2xhc3MKYGBgCgpIb3dldmVyLCBkdWUgdG8gW2xpbWl0YXRpb25zIGluIFR5cGVzY3JpcHQncyByZWZsZWN0aW9uIHN5c3RlbV0oaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8xMDU3Nikgd2UgY2Fubm90IGluZmVyIHRoZSBpbm5lciB0eXBlIG9mIGEgZ2VuZXJpYyBjbGFzcy4gSW4gZWZmZWN0IHRoaXMgbWVhbnMgdGhhdCBwcm9wZXJ0aWVzIGxpa2UKCmBgYHR5cGVzY3JpcHQKQFZhbGlkYXRlTmVzdGVkKHsgZWFjaDogdHJ1ZSB9KQp1c2VyczogVXNlckNsYXNzW10KCkBWYWxpZGF0ZU5lc3RlZCgpCnVzZXI6IFByb21pc2U8VXNlckNsYXNzPgpgYGAKCndvdWxkIHJlc29sdmUgdG8gY2xhc3NlcyBgQXJyYXlgIGFuZCBgUHJvbWlzZWAgaW4gSlNPTiBTY2hlbWEuIFRvIHdvcmsgYXJvdW5kIHRoaXMgbGltaXRhdGlvbiB3ZSBjYW4gdXNlIGBAVHlwZWAgZnJvbSBgY2xhc3MtdHJhbnNmb3JtZXJgIHRvIGV4cGxpY2l0bHkgZGVmaW5lIHRoZSBuZXN0ZWQgcHJvcGVydHkncyBpbm5lciB0eXBlOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInCmltcG9ydCB7IHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXMgfSBmcm9tICdjbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYScKY29uc3QgeyBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlIH0gPSByZXF1aXJlKCdjbGFzcy10cmFuc2Zvcm1lci9janMvc3RvcmFnZScpIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHlwZXN0YWNrL2NsYXNzLXRyYW5zZm9ybWVyL2lzc3Vlcy81NjMgZm9yIGFsdGVybmF0aXZlcwoKY2xhc3MgVXNlciB7CiAgQFZhbGlkYXRlTmVzdGVkKHsgZWFjaDogdHJ1ZSB9KQogIEBUeXBlKCgpID0+IEJsb2dQb3N0KSAvLyAxKSBFeHBsaWNpdGx5IGRlZmluZSB0aGUgbmVzdGVkIHByb3BlcnR5IHR5cGUKICBibG9nUG9zdHM6IEJsb2dQb3N0W10KfQoKY29uc3Qgc2NoZW1hcyA9IHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXMoewogIGNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2U6IGRlZmF1bHRNZXRhZGF0YVN0b3JhZ2UsIC8vIDIpIERlZmluZSBjbGFzcy10cmFuc2Zvcm1lciBtZXRhZGF0YSBpbiBvcHRpb25zCn0pCmBgYAoKTm90ZSBhbHNvIGhvdyB0aGUgYGNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2VgIG9wdGlvbiBoYXMgdG8gYmUgZGVmaW5lZCBmb3IgYEBUeXBlYCBkZWNvcmF0b3IgdG8gdGFrZSBlZmZlY3QuCgojIyMgVXNpbmcgYSBjdXN0b20gdmFsaWRhdGlvbiBtZXRhZGF0YVN0b3JhZ2UKClVuZGVyIHRoZSBob29kIHdlIGdyYWIgdmFsaWRhdGlvbiBtZXRhZGF0YSBmcm9tIHRoZSBkZWZhdWx0IHN0b3JhZ2UgcmV0dXJuZWQgYnkgYGNsYXNzLXZhbGlkYXRvcmAncyBgZ2V0TWV0YWRhdGFTdG9yYWdlKClgLiBJbiBjYXNlIG9mIGEgdmVyc2lvbiBjbGFzaCBvciBzb21ldGhpbmcgeW91IG1pZ2h0IHdhbnQgdG8gbWFudWFsbHkgcGFzcyBpbiB0aGUgc3RvcmFnZToKCmBgYHR5cGVzY3JpcHQKY29uc3Qgc2NoZW1hcyA9IHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXMoewogIGNsYXNzVmFsaWRhdG9yTWV0YWRhdGFTdG9yYWdlOiBteUN1c3RvbU1ldGFkYXRhU3RvcmFnZSwKfSkKYGBgCgojIyBMaW1pdGF0aW9ucwoKVGhlcmUncyBubyBoYW5kbGluZyBmb3IgYGNsYXNzLXZhbGlkYXRvcmBzICoqdmFsaWRhdGlvbiBncm91cHMqKiBvciAqKmNvbmRpdGlvbmFsIGRlY29yYXRvcioqIChgQFZhbGlkYXRlSWZgKSBvdXQtb2YtdGhlLWJveC4gVGhlIGFib3ZlLW1lbnRpb25lZCBleHRlbnNpb24gbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBmaWxsIHRoZSBnYXBzIGlmIG5lY2Vzc2FyeS4KClRoZSBPcGVuQVBJIHNwZWMgZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCB0aGUgbmV3IEpTT04gU2NoZW1hICoqZHJhZnQtMDYga2V5d29yZHMqKiBgY29uc3RgIGFuZCBgY29udGFpbnNgLiBUaGlzIG1lYW5zIHRoYXQgY29uc3RhbnQgdmFsdWUgZGVjb3JhdG9ycyBzdWNoIGFzIGBASXNFcXVhbCgpYCBhbmQgYEBBcnJheUNvbnRhaW5zKClgIHRyYW5zbGF0ZSB0byBxdWl0ZSBbY29tcGxpY2F0ZWQgc2NoZW1hc10oaHR0cHM6Ly9naXRodWIuY29tL3NhaGF2YS9ndG0tZGF0YWxheWVyLXRlc3QvaXNzdWVzLzQpLiBIb3BlZnVsbHkgW2luIGEgbm90IHRvbyBkaXN0YW50IGZ1dHVyZV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vaXNzdWVzLzEzMTMjaXNzdWVjb21tZW50LTMzNTg5MzA2MikgdGhlc2Uga2V5d29yZHMgYXJlIGFkb3B0ZWQgaW50byB0aGUgc3BlYyBhbmQgd2UnbGwgYmUgYWJsZSB0byBwcm92aWRlIG5lYXRlciBjb252ZXJzaW9uLgoKSGFuZGxpbmcgKipudWxsIHZhbHVlcyoqIGlzIGFsc28gdHJpY2t5IHNpbmNlIE9wZW5BUEkgZG9lc24ndCBzdXBwb3J0IEpTT04gU2NoZW1hJ3MgYHR5cGU6IG51bGxgLCBwcm92aWRpbmcgaXRzIG93biBgbnVsbGFibGVgIGtleXdvcmQgaW5zdGVhZC4gVGhlIGRlZmF1bHQgYEBJc0VtcHR5KClgIGNvbnZlcnRlciBmb3IgZXhhbXBsZSBvcHRzIGZvciBgbnVsbGFibGVgIGJ1dCB5b3UgY2FuIHVzZSBgdHlwZTogbnVsbGAgaW5zdGVhZCB2aWEgYG9wdGlvbnMuYWRkaXRpb25hbENvbnZlcnRlcnNgOgoKYGBgdHlwZXNjcmlwdAovLyAuLi4KYWRkaXRpb25hbENvbnZlcnRlcnM6IHsKICBbVmFsaWRhdGlvblR5cGVzLklTX0VNUFRZXTogewogICAgYW55T2Y6IFsKICAgICAge3R5cGU6ICdzdHJpbmcnLCBlbnVtOiBbJyddfSwKICAgICAge3R5cGU6ICdudWxsJ30KICAgIF0KICB9Cn0KYGBgCgojIyBUT0RPCgotIFt4XSBoYW5kbGUgYHNraXBNaXNzaW5nUHJvcGVydGllc2AgYW5kIGBAaXNEZWZpbmVkKClgCi0gW3hdIGRlY29yYXRvcnMgZm9yIG92ZXJ3cml0aW5nIHByb3Agc2NoZW1hcwotIFsgXSBvcHRpb25hbCBwcm9wZXJ0eSBkZXNjcmlwdGlvbnMgKGUuZy4gYEEgQmFzZTY0LWVuY29kZWQgc3RyaW5nYCkKLSBbIF0gb3B0aW9uYWwgZHJhZnQtMDYga2V5d29yZHMK readmeEtag: '"0c2c718241cb486cb0729cba6a42f56c67d45339"' readmeLastModified: Sat, 18 May 2024 08:07:12 GMT repositoryId: 112473994 description: Convert class-validator-decorated classes into JSON schema created: '2017-11-29T12:41:25Z' updated: '2024-09-05T11:54:28Z' language: TypeScript archived: false stars: 215 watchers: 6 forks: 34 owner: epiphone logo: https://avatars.githubusercontent.com/u/1923531?v=4 license: MIT repoEtag: '"003c0e50d702f061956281431804858f428e32ba94ef3c384050d86011553a7c"' repoLastModified: Thu, 05 Sep 2024 11:54:28 GMT foundInMaster: true category: - Data Validators - Parsers id: fc507a0f888124f714fc5c42ee5979b0 - source: openapi3 tags repository: https://github.com/brikev/express-jsdoc-swagger v3: true repositoryMetadata: base64Readme: >- IVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyKQohW05vZGUuanMgUGFja2FnZV0oaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvd29ya2Zsb3dzL0J1aWxkL2JhZGdlLnN2ZykKWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9iYWRnZS5zdmcpXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlcikKWyFbTWFpbnRhaW5hYmlsaXR5XShodHRwczovL2FwaS5jb2RlY2xpbWF0ZS5jb20vdjEvYmFkZ2VzLzZkNTU2NWRmMGM5YzEwZTc1YjU5L21haW50YWluYWJpbGl0eSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi9CUklLRVYvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyL21haW50YWluYWJpbGl0eSkKWyFbVGVzdCBDb3ZlcmFnZV0oaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy82ZDU1NjVkZjBjOWMxMGU3NWI1OS90ZXN0X2NvdmVyYWdlKV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvdGVzdF9jb3ZlcmFnZSkKIVtMaWNlbnNlOiBNSVRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQtZ3JlZW4uc3ZnKQohW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vZXhwcmVzcy1qc2RvYy1zd2FnZ2VyKQoKIyBleHByZXNzLWpzZG9jLXN3YWdnZXIKCldpdGggdGhpcyBsaWJyYXJ5LCB5b3UgY2FuIGRvY3VtZW50IHlvdXIgZXhwcmVzcyBlbmRwb2ludHMgdXNpbmcgc3dhZ2dlciBbT3BlbkFQSSAzIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykgd2l0aG91dCB3cml0aW5nIFlBTUwgb3IgSlNPTi4gWW91IGNhbiB3cml0ZSBjb21tZW50cyBzaW1pbGFyIHRvIGBqc2RvY2Agb24gZWFjaCBlbmRwb2ludCwgYW5kIHRoZSBkZXBlbmRlY3kgaXMgZ29pbmcgdG8gY3JlYXRlIHRoZSBzd2FnZ2VyIFVJLgoKIyMgVGFibGUgb2YgQ29udGVudHMKCjEuIFtQcmVyZXF1aXNpdGVzXSgjUHJlcmVxdWlzaXRlcykKMi4gW0luc3RhbGxhdGlvbl0oI0luc3RhbGxhdGlvbikKMy4gW0Jhc2ljIFVzYWdlXSgjQmFzaWMtVXNhZ2UpCjQuIFtCYXNpYyBFeGFtcGxlc10oI0Jhc2ljLUV4YW1wbGVzKQoJLSBbQWR2YW5jZWQgZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9CUklLRVYvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyL3RyZWUvbWFzdGVyL2V4YW1wbGVzKQoJLSBbT2ZmaWNpYWwgZG9jc10oaHR0cHM6Ly9icmlrZXYuZ2l0aHViLmlvL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci1kb2NzLyMvKQo1LiBbVmFsaWRhdG9yXSgjVmFsaWRhdG9yKQo2LiBbVlNDb2RlIGV4dGVuc2lvbl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPWJyaWtldi5leHByZXNzLWpzZG9jLXN3YWdnZXItc25pcHBldHMpCgojIyBQcmVyZXF1aXNpdGVzCgpUaGlzIGxpYnJhcnkgYXNzdW1lcyB5b3UgYXJlIHVzaW5nOgoKMS4gW05vZGVKU10oaHR0cHM6Ly9ub2RlanMub3JnKQoyLiBbRXhwcmVzcy5qc10oaHR0cDovL3d3dy5leHByZXNzanMuY29tKQoKIyMgSW5zdGFsbGF0aW9uCgpgYGAKbnBtIGkgZXhwcmVzcy1qc2RvYy1zd2FnZ2VyCmBgYAoKIyMgQmFzaWMgVXNhZ2UKCmBgYGphdmFzY3JpcHQKLy8gaW5kZXguanMgZmlsZQpjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpOwpjb25zdCBleHByZXNzSlNEb2NTd2FnZ2VyID0gcmVxdWlyZSgnZXhwcmVzcy1qc2RvYy1zd2FnZ2VyJyk7Cgpjb25zdCBvcHRpb25zID0gewogIGluZm86IHsKICAgIHZlcnNpb246ICcxLjAuMCcsCiAgICB0aXRsZTogJ0FsYnVtcyBzdG9yZScsCiAgICBsaWNlbnNlOiB7CiAgICAgIG5hbWU6ICdNSVQnLAogICAgfSwKICB9LAogIHNlY3VyaXR5OiB7CiAgICBCYXNpY0F1dGg6IHsKICAgICAgdHlwZTogJ2h0dHAnLAogICAgICBzY2hlbWU6ICdiYXNpYycsCiAgICB9LAogIH0sCiAgLy8gQmFzZSBkaXJlY3Rvcnkgd2hpY2ggd2UgdXNlIHRvIGxvY2F0ZSB5b3VyIEpTRE9DIGZpbGVzCiAgYmFzZURpcjogX19kaXJuYW1lLAogIC8vIEdsb2IgcGF0dGVybiB0byBmaW5kIHlvdXIganNkb2MgZmlsZXMgKG11bHRpcGxlIHBhdHRlcm5zIGNhbiBiZSBhZGRlZCBpbiBhbiBhcnJheSkKICBmaWxlc1BhdHRlcm46ICcuLyoqLyouanMnLAogIC8vIFVSTCB3aGVyZSBTd2FnZ2VyVUkgd2lsbCBiZSByZW5kZXJlZAogIHN3YWdnZXJVSVBhdGg6ICcvYXBpLWRvY3MnLAogIC8vIEV4cG9zZSBPcGVuQVBJIFVJCiAgZXhwb3NlU3dhZ2dlclVJOiB0cnVlLAogIC8vIEV4cG9zZSBPcGVuIEFQSSBKU09OIERvY3MgZG9jdW1lbnRhdGlvbiBpbiBgYXBpRG9jc1BhdGhgIHBhdGguCiAgZXhwb3NlQXBpRG9jczogZmFsc2UsCiAgLy8gT3BlbiBBUEkgSlNPTiBEb2NzIGVuZHBvaW50LgogIGFwaURvY3NQYXRoOiAnL3YzL2FwaS1kb2NzJywKICAvLyBTZXQgbm9uLXJlcXVpcmVkIGZpZWxkcyBhcyBudWxsYWJsZSBieSBkZWZhdWx0CiAgbm90UmVxdWlyZWRBc051bGxhYmxlOiBmYWxzZSwKICAvLyBZb3UgY2FuIGN1c3RvbWl6ZSB5b3VyIFVJIG9wdGlvbnMuCiAgLy8geW91IGNhbiBleHRlbmQgc3dhZ2dlci11aS1leHByZXNzIGNvbmZpZy4gWW91IGNhbiBjaGVja291dCBhbiBleGFtcGxlIG9mIHRoaXMKICAvLyBpbiB0aGUgYGV4YW1wbGUvY29uZmlndXJhdGlvbi9zd2FnZ2VyT3B0aW9ucy5qc2AKICBzd2FnZ2VyVWlPcHRpb25zOiB7fSwKICAvLyBtdWx0aXBsZSBvcHRpb24gaW4gY2FzZSB5b3Ugd2FudCBtb3JlIHRoYXQgb25lIGluc3RhbmNlCiAgbXVsdGlwbGU6IHRydWUsCn07Cgpjb25zdCBhcHAgPSBleHByZXNzKCk7CmNvbnN0IFBPUlQgPSAzMDAwOwoKZXhwcmVzc0pTRG9jU3dhZ2dlcihhcHApKG9wdGlvbnMpOwoKLyoqCiAqIEdFVCAvYXBpL3YxCiAqIEBzdW1tYXJ5IFRoaXMgaXMgdGhlIHN1bW1hcnkgb2YgdGhlIGVuZHBvaW50CiAqIEByZXR1cm4ge29iamVjdH0gMjAwIC0gc3VjY2VzcyByZXNwb25zZQogKi8KYXBwLmdldCgnL2FwaS92MScsIChyZXEsIHJlcykgPT4gcmVzLmpzb24oewogIHN1Y2Nlc3M6IHRydWUsCn0pKTsKCmFwcC5saXN0ZW4oUE9SVCwgKCkgPT4gY29uc29sZS5sb2coYEV4YW1wbGUgYXBwIGxpc3RlbmluZyBhdCBodHRwOi8vbG9jYWxob3N0OiR7UE9SVH1gKSk7CmBgYAoKIyMgQmFzaWMgRXhhbXBsZXMKCjEuIEJhc2ljIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KCmBgYGphdmFzY3JpcHQKY29uc3Qgb3B0aW9ucyA9IHsKICBpbmZvOiB7CiAgICB2ZXJzaW9uOiAnMS4wLjAnLAogICAgdGl0bGU6ICdBbGJ1bXMgc3RvcmUnLAogICAgbGljZW5zZTogewogICAgICBuYW1lOiAnTUlUJywKICAgIH0sCiAgfSwKICBzZWN1cml0eTogewogICAgQmFzaWNBdXRoOiB7CiAgICAgIHR5cGU6ICdodHRwJywKICAgICAgc2NoZW1lOiAnYmFzaWMnLAogICAgfSwKICB9LAogIGJhc2VEaXI6IF9fZGlybmFtZSwKICAvLyBHbG9iIHBhdHRlcm4gdG8gZmluZCB5b3VyIGpzZG9jIGZpbGVzIChtdWx0aXBsZSBwYXR0ZXJucyBjYW4gYmUgYWRkZWQgaW4gYW4gYXJyYXkpCiAgZmlsZXNQYXR0ZXJuOiAnLi8qKi8qLmpzJywKfTsKYGBgCgoyLiBDb21wb25lbnRzIGRlZmluaXRpb24KCmBgYGphdmFzY3JpcHQKLyoqCiAqIEEgc29uZyB0eXBlCiAqIEB0eXBlZGVmIHtvYmplY3R9IFNvbmcKICogQHByb3BlcnR5IHtzdHJpbmd9IHRpdGxlLnJlcXVpcmVkIC0gVGhlIHRpdGxlCiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhcnRpc3QgLSBUaGUgYXJ0aXN0CiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB5ZWFyIC0gVGhlIHllYXIgLSBkb3VibGUKICovCmBgYAoKMy4gRW5kcG9pbnQgd2hpY2ggcmV0dXJucyBhIGBTb25nc2AgbW9kZWwgYXJyYXkgaW4gdGhlIHJlc3BvbnNlLgoKYGBgamF2YXNjcmlwdAovKioKICogR0VUIC9hcGkvdjEvYWxidW1zCiAqIEBzdW1tYXJ5IFRoaXMgaXMgdGhlIHN1bW1hcnkgb2YgdGhlIGVuZHBvaW50CiAqIEB0YWdzIGFsYnVtCiAqIEByZXR1cm4ge2FycmF5PFNvbmc+fSAyMDAgLSBzdWNjZXNzIHJlc3BvbnNlIC0gYXBwbGljYXRpb24vanNvbgogKi8KYXBwLmdldCgnL2FwaS92MS9hbGJ1bXMnLCAocmVxLCByZXMpID0+ICgKICByZXMuanNvbihbewogICAgdGl0bGU6ICdhYnVtIDEnLAogIH1dKQopKTsKYGBgCgozLiBFbmRwb2ludCBQVVQgd2l0aCBib2R5IGFuZCBwYXRoIHBhcmFtcyB3aGljaCByZXR1cm5zIGEgYFNvbmdzYCBtb2RlbCBhcnJheSBpbiB0aGUgcmVzcG9uc2UuCgpgYGBqYXZhc2NyaXB0Ci8qKgogKiBQVVQgL2FwaS92MS9hbGJ1bXMve2lkfQogKiBAc3VtbWFyeSBVcGRhdGUgYWxidW0KICogQHRhZ3MgYWxidW0KICogQHBhcmFtIHtzdHJpbmd9IG5hbWUucGF0aCAtIG5hbWUgcGFyYW0gZGVzY3JpcHRpb24KICogQHBhcmFtIHtTb25nfSByZXF1ZXN0LmJvZHkucmVxdWlyZWQgLSBzb25ncyBpbmZvCiAqIEByZXR1cm4ge2FycmF5PFNvbmc+fSAyMDAgLSBzdWNjZXNzIHJlc3BvbnNlIC0gYXBwbGljYXRpb24vanNvbgogKi8KYXBwLnB1dCgnL2FwaS92MS9hbGJ1bXMvOmlkJywgKHJlcSwgcmVzKSA9PiAoCiAgcmVzLmpzb24oW3sKICAgIHRpdGxlOiAnYWJ1bSAxJywKICB9XSkKKSk7CmBgYAoKNC4gQmFzaWMgZW5kcG9pbnQgZGVmaW5pdGlvbiB3aXRoIHRhZ3MsIHBhcmFtcyBhbmQgYmFzaWMgYXV0aGVudGljYXRpb24KCmBgYGphdmFzY3JpcHQKLyoqCiAqIEdFVCAvYXBpL3YxL2FsYnVtCiAqIEBzdW1tYXJ5IFRoaXMgaXMgdGhlIHN1bW1hcnkgb2YgdGhlIGVuZHBvaW50CiAqIEBzZWN1cml0eSBCYXNpY0F1dGgKICogQHRhZ3MgYWxidW0KICogQHBhcmFtIHtzdHJpbmd9IG5hbWUucXVlcnkucmVxdWlyZWQgLSBuYW1lIHBhcmFtIGRlc2NyaXB0aW9uCiAqIEByZXR1cm4ge29iamVjdH0gMjAwIC0gc3VjY2VzcyByZXNwb25zZSAtIGFwcGxpY2F0aW9uL2pzb24KICogQHJldHVybiB7b2JqZWN0fSA0MDAgLSBCYWQgcmVxdWVzdCByZXNwb25zZQogKi8KYXBwLmdldCgnL2FwaS92MS9hbGJ1bScsIChyZXEsIHJlcykgPT4gKAogIHJlcy5qc29uKHsKICAgIHRpdGxlOiAnYWJ1bSAxJywKICB9KQopKTsKYGBgCgo1LiBCYXNpYyBlbmRwb2ludCBkZWZpbml0aW9uIHdpdGggY29kZSBleGFtcGxlIGZvciByZXNwb25zZSBib2R5CgpgYGBqYXZhc2NyaXB0Ci8qKgogKiBHRVQgL2FwaS92MS9hbGJ1bXMKICogQHN1bW1hcnkgVGhpcyBpcyB0aGUgc3VtbWFyeSBvZiB0aGUgZW5kcG9pbnQKICogQHRhZ3MgYWxidW0KICogQHJldHVybiB7YXJyYXk8U29uZz59IDIwMCAtIHN1Y2Nlc3MgcmVzcG9uc2UgLSBhcHBsaWNhdGlvbi9qc29uCiAqIEBleGFtcGxlIHJlc3BvbnNlIC0gMjAwIC0gc3VjY2VzcyByZXNwb25zZSBleGFtcGxlCiAqIFsKICogICB7CiAqICAgICAidGl0bGUiOiAiQnVyeSB0aGUgbGlnaHQiLAogKiAgICAgImFydGlzdCI6ICJDYXNleSBFZHdhcmRzIGZ0LiBWaWN0b3IgQm9yYmEiLAogKiAgICAgInllYXIiOiAyMDIwCiAqICAgfQogKiBdCiAqLwphcHAuZ2V0KCcvYXBpL3YxL2FsYnVtcycsIChyZXEsIHJlcykgPT4gKAogIHJlcy5qc29uKFt7CiAgICB0aXRsZTogJ3RyYWNrIDEnLAogIH1dKQopKTsKYGBgCgpZb3UgY2FuIGZpbmQgbW9yZSBleGFtcGxlcyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvdHJlZS9tYXN0ZXIvZXhhbXBsZXMpLCBvciB2aXNpdCBvdXIgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vYnJpa2V2LmdpdGh1Yi5pby9leHByZXNzLWpzZG9jLXN3YWdnZXItZG9jcy8jLykuCgoKIyMgVmFsaWRhdG9yCgpXZSBkZXZlbG9wZWQgYSBuZXcgcGFja2FnZSB3b3JrcyBhcyBhIHZhbGlkYXRvciBvZiB5b3VyIEFQSSBlbmRwb2ludHMgYW5kIHRoZSBkb2N1bWVudGF0aW9uIHlvdSBjcmVhdGUgd2l0aCB0aGlzIHBhY2thZ2UuIFRoaXMgcGFja2FnZSBpcyBbZXhwcmVzcy1vYXMtdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3Mtb2FzLXZhbGlkYXRvcikuCgoqKkV4YW1wbGUqKgoKSW5zdGFsbCB1c2luZyB0aGUgbm9kZSBwYWNrYWdlIHJlZ2lzdHJ5OgoKYGBgCm5wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzLW9hcy12YWxpZGF0b3IKYGBgCgpXZSBoYXZlIHRvIHdhaXQgdW50aWwgd2UgaGF2ZSB0aGUgZnVsbCBzd2FnZ2VyIHNjaGVtYSB0byBpbml0aWF0ZSB0aGUgdmFsaWRhdG9yLgoKYGBganMKLy8gdmFsaWRhdG9yLmpzCmNvbnN0IHsgaW5pdCB9ID0gcmVxdWlyZSgnZXhwcmVzcy1vYXMtdmFsaWRhdG9yJyk7Cgpjb25zdCB2YWxpZGF0b3JzID0gaW5zdGFuY2UgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogIGluc3RhbmNlLm9uKCdmaW5pc2gnLCAoc3dhZ2dlckRlZikgPT4gewogICAgY29uc3QgeyB2YWxpZGF0ZVJlcXVlc3QsIHZhbGlkYXRlUmVzcG9uc2UgfSA9IGluaXQoc3dhZ2dlckRlZik7CiAgICByZXNvbHZlKHsgdmFsaWRhdGVSZXF1ZXN0LCB2YWxpZGF0ZVJlc3BvbnNlIH0pOwogIH0pOwoKICBpbnN0YW5jZS5vbignZXJyb3InLCAoZXJyb3IpID0+IHsKICAgIHJlamVjdChlcnJvcik7CiAgfSk7Cn0pOwoKbW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0b3JzOwoKYGBgCgpZb3UgY2FuIGNoZWNrIG91dCB0aGlzIGFsc28gaW4gb3VyIFtleGFtcGxlIGZvbGRlcl0oaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvdmFsaWRhdG9yKS4KCmBgYGpzCi8vIGluZGV4LmpzCmNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7CmNvbnN0IGV4cHJlc3NKU0RvY1N3YWdnZXIgPSByZXF1aXJlKCdleHByZXNzLWpzZG9jLXN3YWdnZXInKTsKY29uc3QgdmFsaWRhdG9yID0gcmVxdWlyZSgnLi92YWxpZGF0b3InKTsKCmNvbnN0IG9wdGlvbnMgPSB7CiAgaW5mbzogewogICAgdmVyc2lvbjogJzEuMC4wJywKICAgIHRpdGxlOiAnQWxidW1zIHN0b3JlJywKICAgIGxpY2Vuc2U6IHsKICAgICAgbmFtZTogJ01JVCcsCiAgICB9LAogIH0sCiAgZmlsZXNQYXR0ZXJuOiAnLi8qKi5qcycsCiAgYmFzZURpcjogX19kaXJuYW1lLAp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwpjb25zdCBpbnN0YW5jZSA9IGV4cHJlc3NKU0RvY1N3YWdnZXIoYXBwKShvcHRpb25zKTsKCmNvbnN0IHNlcnZlckFwcCA9IGFzeW5jICgpID0+IHsKICBjb25zdCB7IHZhbGlkYXRlUmVxdWVzdCwgdmFsaWRhdGVSZXNwb25zZSB9ID0gYXdhaXQgdmFsaWRhdG9yKGluc3RhbmNlKTsKICBhcHAudXNlKGV4cHJlc3MudXJsZW5jb2RlZCh7IGV4dGVuZGVkOiB0cnVlIH0pKTsKICBhcHAudXNlKGV4cHJlc3MuanNvbigpKTsKICAvKioKICAgKiBBIHNvbmcKICAgKiBAdHlwZWRlZiB7b2JqZWN0fSBTb25nCiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHRpdGxlLnJlcXVpcmVkIC0gVGhlIHRpdGxlCiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGFydGlzdCAtIFRoZSBhcnRpc3QKICAgKiBAcHJvcGVydHkge2ludGVnZXJ9IHllYXIgLSBUaGUgeWVhcgogICAqLwoKICAvKioKICAgKiBQT1NUIC9hcGkvdjEvc29uZ3MKICAgKiBAcGFyYW0ge1Nvbmd9IHJlcXVlc3QuYm9keS5yZXF1aXJlZCAtIHNvbmcgaW5mbwogICAqIEByZXR1cm4ge29iamVjdH0gMjAwIC0gc29uZyByZXNwb25zZQogICAqLwogIGFwcC5wb3N0KCcvYXBpL3YxL3NvbmdzJywgdmFsaWRhdGVSZXF1ZXN0KCksIChyZXEsIHJlcykgPT4gcmVzLnNlbmQoJ1lvdSBzYXZlIGEgc29uZyEnKSk7CgogIC8qKgogICAqIFBPU1QgL2FwaS92MS9uYW1lCiAgICogQHBhcmFtIHtzdHJpbmd9IHJlcXVlc3QuYm9keS5yZXF1aXJlZCAtIG5hbWUgYm9keSBkZXNjcmlwdGlvbgogICAqIEByZXR1cm4ge29iamVjdH0gMjAwIC0gc29uZyByZXNwb25zZQogICAqLwogIGFwcC5wb3N0KCcvYXBpL3YxL25hbWUnLCAocmVxLCByZXMsIG5leHQpID0+IHsKICAgIHRyeSB7CiAgICAgIC8vIFZhbGlkYXRlIHJlc3BvbnNlCiAgICAgIHZhbGlkYXRlUmVzcG9uc2UoJ0Vycm9yIHN0cmluZycsIHJlcSk7CiAgICAgIHJldHVybiByZXMuc2VuZCgnSGVsbG8gV29ybGQhJyk7CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICByZXR1cm4gbmV4dChlcnJvcik7CiAgICB9CiAgfSk7CgogIC8qKgogICAqIEdFVCAvYXBpL3YxL2F1dGhvcnMKICAgKiBAc3VtbWFyeSBUaGlzIGlzIHRoZSBzdW1tYXJ5IG9yIGRlc2NyaXB0aW9uIG9mIHRoZSBlbmRwb2ludAogICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lLnF1ZXJ5LnJlcXVpcmVkIC0gbmFtZSBwYXJhbSBkZXNjcmlwdGlvbiAtIGVudW06dHlwZTEsdHlwZTIKICAgKiBAcGFyYW0ge2FycmF5PHN0cmluZz59IGxpY2Vuc2UucXVlcnkgLSBuYW1lIHBhcmFtIGRlc2NyaXB0aW9uCiAgICogQHJldHVybiB7b2JqZWN0fSAyMDAgLSBzdWNjZXNzIHJlc3BvbnNlIC0gYXBwbGljYXRpb24vanNvbgogICAqLwogIGFwcC5nZXQoJy9hcGkvdjEvYXV0aG9ycycsIHZhbGlkYXRlUmVxdWVzdCh7IGhlYWRlcnM6IGZhbHNlIH0pLCAocmVxLCByZXMpID0+ICgKICAgIHJlcy5qc29uKFt7CiAgICAgIHRpdGxlOiAnYWxidW0gMScsCiAgICB9XSkKICApKTsKCiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzCiAgYXBwLnVzZSgoZXJyLCByZXEsIHJlcywgbmV4dCkgPT4gewogICAgcmVzLnN0YXR1cyhlcnIuc3RhdHVzKS5qc29uKGVycik7CiAgfSk7CgogIHJldHVybiBhcHA7Cn07Cgpjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA0MDAwOwoKc2VydmVyQXBwKCkKICAudGhlbihhcHAgPT4gCiAgICBhcHAubGlzdGVuKFBPUlQsICgpID0+CiAgICAgIGNvbnNvbGUubG9nKGBMaXN0ZW5pbmcgUE9SVDogJHtQT1JUfWApCiAgICApKQogIC5jYXRjaCgoZXJyKSA9PiB7CiAgICBjb25zb2xlLmVycm9yKGVycik7CiAgICBwcm9jZXNzLmV4aXQoMSk7CiAgfSk7CmBgYAoKWW91IGNhbiB2aXNpdCBvdXIgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vYnJpa2V2LmdpdGh1Yi5pby9leHByZXNzLWpzZG9jLXN3YWdnZXItZG9jcy8jL3ZhbGlkYXRvcikuCgojIyBDb250cmlidXRvcnMg4pyoCgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cjx0YWJsZT4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2JyaTA2Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNDQzNTIyMz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQnJpYW0gTWFydGluZXogRXNjb2JhciIvPjxiciAvPjxzdWI+PGI+QnJpYW0gTWFydGluZXogRXNjb2JhcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvY29tbWl0cz9hdXRob3I9YnJpMDYiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9ram1lc2MiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNjg1MDUzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLZXZpbiBKdWxpw6FuIE1hcnTDrW5leiBFc2NvYmFyIi8+PGJyIC8+PHN1Yj48Yj5LZXZpbiBKdWxpw6FuIE1hcnTDrW5leiBFc2NvYmFyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj1rZXZpbmNjYnNnIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ob29uZ2EiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwNzA4OTI3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJIZXVuZy15ZW9uIE9oIi8+PGJyIC8+PHN1Yj48Yj5IZXVuZy15ZW9uIE9oPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj1ob29uZ2EiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0xvbmVseVByaW5jZXNzIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMS5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzY3MzMxNz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2FyYSBIZXJuw6FuZGV6Ii8+PGJyIC8+PHN1Yj48Yj5TYXJhIEhlcm7DoW5kZXo8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9CUklLRVYvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyL2NvbW1pdHM/YXV0aG9yPUxvbmVseVByaW5jZXNzIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9zZXJ2YXRqLm1lIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNTIxNDg1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKb3NlcCBTZXJ2YXQiLz48YnIgLz48c3ViPjxiPkpvc2VwIFNlcnZhdDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvY29tbWl0cz9hdXRob3I9c2VydmF0aiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGh1eWR4NTUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0Njk5ODQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik5pY2sgRG9uZyIvPjxiciAvPjxzdWI+PGI+TmljayBEb25nPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj10aHV5ZHg1NSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vU3Rvc2l1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMS5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMDI1MjA2Mz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQWxla3NhbmRlciBTdMOzcyIvPjxiciAvPjxzdWI+PGI+QWxla3NhbmRlciBTdMOzczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvY29tbWl0cz9hdXRob3I9U3Rvc2l1IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va2RhbmtlcnQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ2NDg5NjI0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLamVsbCBEYW5rZXJ0Ii8+PGJyIC8+PHN1Yj48Yj5LamVsbCBEYW5rZXJ0PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj1rZGFua2VydCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vanVsaWVuZHUxMSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTg3Mzk0NDI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Imp1bGllbmR1MTEiLz48YnIgLz48c3ViPjxiPmp1bGllbmR1MTE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9CUklLRVYvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyL2NvbW1pdHM/YXV0aG9yPWp1bGllbmR1MTEiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9tZS5pbyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80NTczMT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTW9oYW1lZCBNZWFiZWQiLz48YnIgLz48c3ViPjxiPk1vaGFtZWQgTWVhYmVkPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj1tZWFiZWQiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29mYXJ1a2F5ZGluIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzMyNzg4OTYzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJGYXJ1ayBBeWTEsW4iLz48YnIgLz48c3ViPjxiPkZhcnVrIEF5ZMSxbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvY29tbWl0cz9hdXRob3I9b2ZhcnVrYXlkaW4iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2RhaGxtbyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMzA3NjAyNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRGFobG1vIi8+PGJyIC8+PHN1Yj48Yj5EYWhsbW88L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9CUklLRVYvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyL2NvbW1pdHM/YXV0aG9yPWRhaGxtbyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ2FuZGF6Z3VsIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwODg1MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQ2FybG9zIFJhdmVsbyIvPjxiciAvPjxzdWI+PGI+Q2FybG9zIFJhdmVsbzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0JSSUtFVi9leHByZXNzLWpzZG9jLXN3YWdnZXIvY29tbWl0cz9hdXRob3I9Z2FuZGF6Z3VsIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsaXNoIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3NjIwMzI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlBhdWwgSXNoZW5pbiIvPjxiciAvPjxzdWI+PGI+UGF1bCBJc2hlbmluPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj1wYXVsaXNoIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2JpbmduZXIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzU0NTMzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTYW0gQmluZ25lciIvPjxiciAvPjxzdWI+PGI+U2FtIEJpbmduZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9CUklLRVYvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyL2NvbW1pdHM/YXV0aG9yPXNiaW5nbmVyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vdXNlcnMvNTA1OTY1Ny9hbGV4YW5kZXItc3Rhcm9zZWxza3kiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzQxMDI5Njk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFsZXhhbmRlciBTdGFyb3NlbHNreSIvPjxiciAvPjxzdWI+PGI+QWxleGFuZGVyIFN0YXJvc2Vsc2t5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj1hbGV4c3Rhcm9zZWxza3kiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL2pvZWxhYnJhaGFtc3Nvbi5jb20iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjE4OTg2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKb2VsIEFicmFoYW1zc29uIi8+PGJyIC8+PHN1Yj48Yj5Kb2VsIEFicmFoYW1zc29uPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQlJJS0VWL2V4cHJlc3MtanNkb2Mtc3dhZ2dlci9jb21taXRzP2F1dGhvcj1qb2VsYWJyYWhhbXNzb24iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL01ha2FrV2FzVGFrZW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE3ODk2MzU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1hcmt1cyBNb2x0a2UiLz48YnIgLz48c3ViPjxiPk1hcmt1cyBNb2x0a2U8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9CUklLRVYvZXhwcmVzcy1qc2RvYy1zd2FnZ2VyL2NvbW1pdHM/YXV0aG9yPU1ha2FrV2FzVGFrZW4iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+CgpUaGlzIHByb2plY3QgZm9sbG93cyB0aGUgW2FsbC1jb250cmlidXRvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMpIHNwZWNpZmljYXRpb24uIENvbnRyaWJ1dGlvbnMgb2YgYW55IGtpbmQgd2VsY29tZSEK readmeEtag: '"9434a33d59abea965d65ea63bdf053144581e04c"' readmeLastModified: Mon, 23 Oct 2023 11:36:03 GMT repositoryId: 266211454 description: Swagger OpenAPI 3.x generator created: '2020-05-22T21:31:03Z' updated: '2024-09-03T23:43:38Z' language: JavaScript archived: false stars: 214 watchers: 4 forks: 30 owner: BRIKEV logo: https://avatars.githubusercontent.com/u/59850028?v=4 license: MIT repoEtag: '"a13ef9901b6c7da8fd1beee1a4055f1d9a2546bddc3f328230609413d3fde702"' repoLastModified: Tue, 03 Sep 2024 23:43:38 GMT foundInMaster: true category: Testing id: af37c15464a7e49379863279ecd6694b - source: openapi3 tags repository: https://github.com/swagger-api/validator-badge v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIFZhbGlkYXRvciBCYWRnZSA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1ctbG9nby1jbHIucG5nIiBoZWlnaHQ9IjUwIiBhbGlnbj0icmlnaHQiPgoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2plbmtpbnMvYnVpbGQuc3ZnP2pvYlVybD1odHRwczovL2plbmtpbnMuc3dhZ2dlci5pby9qb2Ivb3NzLXN3YWdnZXItdmFsaWRhdG9yLWJhZGdlLW1hc3RlcildKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmEvam9iL29zcy1zd2FnZ2VyLXZhbGlkYXRvci1iYWRnZS1tYXN0ZXIpCgpUaGlzIHByb2plY3Qgc2hvd3MgYSAidmFsaWQgc3dhZ2dlciIgYmFkZ2Ugb24geW91ciBzaXRlLCBzdXBwb3J0aW5nIFN3YWdnZXIvT3BlbkFQSSAyLjAgYW5kIE9wZW5BUEkgMy54IHNwZWNpZmljYXRpb25zLiAgCgpUaGVyZSBpcyBhbiBvbmxpbmUgdmVyc2lvbiBob3N0ZWQgb24gaHR0cDovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvLiAgCgojIyMgVXNpbmcgRG9ja2VyCgpZb3UgY2FuIGFsc28gcHVsbCBhIGRvY2tlciBpbWFnZSBvZiB0aGUgdmFsaWRhdG9yIGRpcmVjdGx5IGZyb20gW0RvY2tlckh1Yl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3N3YWdnZXJhcGkvc3dhZ2dlci12YWxpZGF0b3ItdjIvKSwgZS5nLjoKCmBgYApkb2NrZXIgcHVsbCBzd2FnZ2VyYXBpL3N3YWdnZXItdmFsaWRhdG9yLXYyOnYyLjEuNQpkb2NrZXIgcnVuIC1pdCAtcCA4MDgwOjgwODAgLS1uYW1lIHN3YWdnZXItdmFsaWRhdG9yLXYyIHN3YWdnZXJhcGkvc3dhZ2dlci12YWxpZGF0b3ItdjI6djIuMS41CmBgYAoKU2luY2UgdmVyc2lvbiBgMi4wLjJgIGxvY2FsIGFuZCBub24gaHR0cC9odHRwcyB1cmxzIGFyZSByZWplY3RlZCBieSBkZWZhdWx0LCBhbG9uZyB3aXRoIHJlZGlyZWN0czsgdGhpcyBpcyBjb250cm9sbGFibGUgd2l0aCBkb2NrZXIgZW52IHZhcmlhYmxlcyAvIGphdmEgc3lzdGVtIHByb3BlcnRpZXM6CgpgYGAKZG9ja2VyIHJ1biAtaXQgLXAgODA4MDo4MDgwIC1lICJSRUpFQ1RfTE9DQUw9ZmFsc2UiIC1lICJSRUpFQ1RfUkVESVJFQ1Q9ZmFsc2UiIC0tbmFtZSBzd2FnZ2VyLXZhbGlkYXRvci12MiBzd2FnZ2VyYXBpL3N3YWdnZXItdmFsaWRhdG9yLXYyOnYyLjEuNQpgYGAKCkluIG5vbiBkb2NrZXIgZW52aXJvbm1lbnRzLCBzeXN0ZW0gcHJvcGVydGllcyBgcmVqZWN0TG9jYWxgIGFuZCBgcmVqZWN0UmVkaXJlY3RgIGNhbiBiZSB1c2VkLgoKCgpXZWIgVUkgaXMgcmVhY2hhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9pbmRleC5odG1sIGFuZCBPcGVuQVBJIHNwZWMgYXQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3ZhbGlkYXRvci9vcGVuYXBpLmpzb24KCgoKWW91IGNhbiB2YWxpZGF0ZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zIHZlcnNpb24gMi4wIChTd2FnZ2VyKSwgMy4wIGFuZCAzLjEuIFtTd2FnZ2VyIFBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItcGFyc2VyL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCkgaXMgdXNlZCBmb3Igc2VtYW50aWMgdmFsaWRhdGlvbi4KRGVwZW5kaW5nIG9uIGBqc29uU2NoZW1hVmFsaWRhdGlvbmAgcXVlcnkgcGFyYW1ldGVyIHZhbHVlIGFsc28gSlNPTiBTY2hlbWEgdmFsaWRhdGlvbiBjYW4gYmUgZXhlY3V0ZWQgKGRlZmF1bHQgdG8gYHRydWVgKSAKCkFkZGl0aW9uYWwgcGFyYW1ldGVycyBhbGxvdyB0byBjdXN0b21pemUgcGFyc2luZyBhbmQgdmFsaWRhdGlvbiBtb2RlLgoKYGBgCjxpbWcgc3JjPSJodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvcj91cmw9e1lPVVJfVVJMfSI+CmBgYAoKT2YgY291cnNlIHRoZSBgWU9VUl9VUkxgIG5lZWRzIHRvIGJlIGFkZHJlc3NhYmxlIGJ5IHRoZSB2YWxpZGF0b3IgKGkuZS4gd29uJ3QgZmluZCBhbnl0aGluZyBvbiBsb2NhbGhvc3QpLiAgSWYgaXQgdmFsaWRhdGVzLCB5b3UnbGwgZ2V0IGEgbmljZSBncmVlbiBWQUxJRCBsb2dvLiAgRmFpbHVyZXMgd2lsbCBnaXZlIGFuIElOVkFMSUQgbG9nbywgYW5kIGlmIHRoZXJlIGFyZSBlcnJvcnMgcGFyc2luZyB0aGUgc3BlY2lmaWNhdGlvbiBvciByZWFjaGluZyBpdCwgYW4gdWdseSByZWQgRVJST1IgbG9nby4KCkZvciBleGFtcGxlLCB1c2luZyBbaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFzdGVyL2V4YW1wbGVzL3YyLjAvanNvbi9wZXRzdG9yZS1leHBhbmRlZC5qc29uXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9tYXN0ZXIvZXhhbXBsZXMvdjIuMC9qc29uL3BldHN0b3JlLWV4cGFuZGVkLmpzb24pIGFzIGEgc291cmNlLCB3ZSBnZXQgLi4uCgohW10oaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3I/dXJsPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL21hc3Rlci9leGFtcGxlcy92Mi4wL2pzb24vcGV0c3RvcmUtZXhwYW5kZWQuanNvbikKCklmIHlvdXIgc3BlY2lmaWNhdGlvbiBmYWlscyB0byB2YWxpZGF0ZSBmb3Igc29tZSByZWFzb24sIG9yIGlmIHRoZXJlIGlzIGFuIGVycm9yLCB5b3UgY2FuIGdldCBtb3JlIGluZm9ybWF0aW9uIG9uIHdoeSBieSB2aXNpdGluZyBgYGBodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvci9kZWJ1Zz91cmw9e1lPVVJfVVJMfWBgYC4KClNpbmNlIHRoZSB2YWxpZGF0b3IgdXNlcyBhIGJyb3dzZXJsZXNzIGJhY2stZW5kIHRvIGZldGNoIHRoZSBjb250ZW50cyBhbmQgc2NoZW1hLCBpdCdzIG5vdCBzdWJqZWN0IHRvIHRoZSB0ZXJyaWJsZSB3b3JsZCBvZiBDT1JTLgoKIyMjIFVzaW5nIGNVUkwKCllvdSBjYW4gYWxzbyBwb3N0IGEgc3BlYyB1cCB0byB0aGUgc2VydmljZSB3aXRoIGNVUkw6CgpgYGBiYXNoCmN1cmwgLVggUE9TVCAtZCBAc3dhZ2dlci5qc29uIC1IICdDb250ZW50LVR5cGU6YXBwbGljYXRpb24vanNvbicgaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3IvZGVidWcKYGBgCgpJbiB0aGlzIGV4YW1wbGUsIGBzd2FnZ2VyLmpzb25gIGlzIHRoZSBzd2FnZ2VyIGRlZmluaXRpb24gaW4gSlNPTiBmb3JtYXQsIGluIHRoZSBDV0QuCgpJZiB5b3VyIHN3YWdnZXIgZGVmaW5pdGlvbiBmaWxlIGlzIGluIFlBTUwgZm9ybWF0LCB0aGUgY29tbWFuZCBuZWVkcyB0byBiZSBhZGFwdGVkIGxpa2Ugc286CgpgYGBiYXNoCmN1cmwgLS1kYXRhLWJpbmFyeSBAc3dhZ2dlci55YW1sIC1IICdDb250ZW50LVR5cGU6YXBwbGljYXRpb24veWFtbCcgaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3IvZGVidWcKYGBgCgpOb3RlIHRoZSB1c2Ugb2YgYC0tZGF0YS1iaW5hcnlgIHRvIGF2b2lkIHN0cmlwcGluZyBuZXdsaW5lcywgYWxvbmcgd2l0aCBhIGRpZmZlcmVudCBgQ29udGVudC1UeXBlYCBoZWFkZXIuCgojIyMgTm90ZQoKQWxsIG9mIHRoZSBhYm92ZSBpcyBhbHNvIGFwcGxpY2FibGUgdG8gT3BlbkFQSSAzLnggc3BlY2lmaWNhdGlvbnM7IGZvciBleGFtcGxlLCB1c2luZyBbaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uXShodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24pIGFzIGEgc291cmNlLCB3ZSBnZXQgLi4uCgohW10oaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3I/dXJsPWh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbikKClNpbmNlIHZlcnNpb24gMi4xLjAgYSBgL3BhcnNlQnlVcmxgIGFuZCBgL3BhcnNlQnlDb250ZW50YCBhcmUgYXZhaWxhYmxlLCByZXR1cm5pbmcgYSBzZXJpYWxpemVkIHBhcnNlZCBzcGVjaWZpY2F0aW9uLCB3aXRoIHBhcnNpbmcgYW5kIHJlc3VsdCBjb25maWd1cmFibGUgYnkKcGFyYW1ldGVycywgZS5nLiBwYXNzaW5nIGByZXNvbHZlYCwgZXRjLiBTZWUgW1N3YWdnZXIgUGFyc2VyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wYXJzZXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI29wdGlvbnMpLgoKIyMjIFJ1bm5pbmcgbG9jYWxseQoKWW91IGNhbiBidWlsZCBhbmQgcnVuIHRoZSB2YWxpZGF0b3IgbG9jYWxseToKCmBgYGJhc2gKbXZuIHBhY2thZ2UgamV0dHk6cnVuCmBgYAoKQW5kIGFjY2VzcyB0aGUgdmFsaWRhdG9yIGxpa2Ugc3VjaDoKCmBgYApodHRwOi8vbG9jYWxob3N0OjgwODAvdmFsaWRhdG9yP3VybD17VVJMfQpgYGAKCm9yCgpgYGAKaHR0cDovL2xvY2FsaG9zdDo4MDgwL3ZhbGlkYXRvcj91cmw9aHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uCmBgYApgYGAKaHR0cDovL2xvY2FsaG9zdDo4MDgwL3ZhbGlkYXRvcj91cmw9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFzdGVyL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbApgYGAKCiMjIFNlY3VyaXR5IGNvbnRhY3QKClBsZWFzZSBkaXNjbG9zZSBhbnkgc2VjdXJpdHktcmVsYXRlZCBpc3N1ZXMgb3IgdnVsbmVyYWJpbGl0aWVzIGJ5IGVtYWlsaW5nIFtzZWN1cml0eUBzd2FnZ2VyLmlvXShtYWlsdG86c2VjdXJpdHlAc3dhZ2dlci5pbyksIGluc3RlYWQgb2YgdXNpbmcgdGhlIHB1YmxpYyBpc3N1ZSB0cmFja2VyLgo= readmeEtag: '"6eb022fd0f1f0879b49db3cb729837b5e3addf5c"' readmeLastModified: Tue, 14 May 2024 09:30:25 GMT repositoryId: 23099185 description: Validate your Swagger JSON/YAML today! created: '2014-08-19T06:18:38Z' updated: '2024-08-13T11:33:01Z' language: Java archived: false stars: 210 watchers: 20 forks: 85 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"8afcb3919ae7c9ed207f6dcbab89c221d6ed765d9e3a618224ace787b1bf3036"' repoLastModified: Tue, 13 Aug 2024 11:33:01 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: f4f082f1673ead88d9098ccd59574327 - source: openapi3 tags repository: https://github.com/wi2l/fizz v3: true id: 04bf0d13931d22601cceca157cd8cccb repositoryMetadata: base64Readme: >- CjxoMSBhbGlnbj0iY2VudGVyIj5GaXp6PC9oMT4KPHAgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9ImltYWdlcy9sZW1vbi5wbmciIGhlaWdodD0iMjAwcHgiIHdpZHRoPSJhdXRvIiBhbHQ9IkdpbiBGaXp6Ij48L3A+PHAgYWxpZ249ImNlbnRlciI+Rml6eiBpcyBhIHdyYXBwZXIgZm9yIDxzdHJvbmc+R2luPC9zdHJvbmc+IGJhc2VkIG9uIDxzdHJvbmc+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2xvb3Bmei9nYWRnZXRvL3RyZWUvbWFzdGVyL3RvbmljIj5nYWRnZXRvL3RvbmljPC9hPjwvc3Ryb25nPi48L3A+CjxwIGFsaWduPSJjZW50ZXIiPkl0IGdlbmVyYXRlcyB3cmFwcGluZyBnaW4tY29tcGF0aWJsZSBoYW5kbGVycyB0aGF0IGRvIGFsbCB0aGUgcmVwZXRpdGl2ZSB3b3JrIGFuZCB3cmFwIHRoZSBjYWxsIHRvIHlvdXIgaGFuZGxlcnMuIEl0IGNhbiBhbHNvIGdlbmVyYXRlcyBhbiA8aT5hbG1vc3Q8L2k+IGNvbXBsZXRlIDxzdHJvbmc+T3BlbkFQSSAzPC9zdHJvbmc+IHNwZWNpZmljYXRpb24gb2YgeW91ciBBUEkuPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KICAgPGEgaHJlZj0iaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vd0kyTC9maXp6P3RhYj1kb2MiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1nb2RldiZtZXNzYWdlPXJlZmVyZW5jZSZjb2xvcj0wMGFkZDgmbG9nbz1nbyI+PC9hPgogICA8YSBocmVmPSJodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L3dJMkwvZml6eiI+PGltZyBzcmM9Imh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL3dJMkwvZml6eiI+PC9hPgogICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd0kyTC9maXp6L2FjdGlvbnMiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vd0kyTC9maXp6L3dvcmtmbG93cy9DSS9iYWRnZS5zdmciPjwvYT4KICAgPGEgaHJlZj0iaHR0cHM6Ly9jb2RlY292LmlvL2doL3dJMkwvZml6eiI+PGltZyBzcmM9Imh0dHBzOi8vY29kZWNvdi5pby9naC93STJML2ZpenovYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmciLz48L2E+CiAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93STJML2ZpenovcmVsZWFzZXMiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3RhZy93STJML2Zpeno/Y29sb3I9Ymx1ZXZpb2xldCZsYWJlbD12ZXJzaW9uJnNvcnQ9c2VtdmVyIj48L2E+CiAgIDxhIGhyZWY9IkxJQ0VOU0UiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJsdWUuc3ZnIj48L2E+CiAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hdmVsaW5vL2F3ZXNvbWUtZ28iPjxpbWcgc3JjPSJodHRwczovL2F3ZXNvbWUucmUvbWVudGlvbmVkLWJhZGdlLnN2ZyI+PC9hPgo8YnI+CjwvcD4KCi0tLQoKIyMjIEdldHRpbmcgc3RhcnRlZAoKVG8gY3JlYXRlIGEgRml6eiBpbnN0YW5jZSwgeW91IGNhbiBwYXNzIGFuIGV4aXN0aW5nICpHaW4qIGVuZ2luZSB0byBgZml6ei5OZXdGcm9tRW5naW5lYCwgb3IgdXNlIGBmaXp6Lk5ld2AgdGhhdCB3aWxsIHVzZSBhIG5ldyBkZWZhdWx0ICpHaW4qIGVuZ2luZS4KCmBgYGdvCmVuZ2luZSA6PSBnaW4uRGVmYXVsdCgpCmVuZ2luZS5Vc2UoLi4uKSAvLyByZWdpc3RlciBnbG9iYWwgbWlkZGxld2FyZXMKCmYgOj0gZml6ei5OZXdGcm9tRW5naW5lKGVuZ2luZSkKYGBgCgpBIEZpenogaW5zdGFuY2UgaW1wbGVtZW50cyB0aGUgYGh0dHAuSGFuZGxlckZ1bmNgIGludGVyZmFjZSwgd2hpY2ggbWVhbnMgaXQgY2FuIGJlIHVzZWQgYXMgdGhlIGJhc2UgaGFuZGxlciBvZiB5b3VyIEhUVFAgc2VydmVyLgpgYGBnbwpzcnYgOj0gJmh0dHAuU2VydmVyewogICBBZGRyOiAgICAiOjQyNDIiLAogICBIYW5kbGVyOiBmLAp9CnNydi5MaXN0ZW5BbmRTZXJ2ZSgpCmBgYAoKIyMjIEhhbmRsZXJzCgpGaXp6IGFic3RyYWN0cyB0aGUgYEdFVGAsIGBQT1NUYCwgYFBVVGAsIGBQQVRDSGAsIGBERUxFVEVgLCBgT1BUSU9OU2AsIGBIRUFEYCBhbmQgYFRSQUNFYCBtZXRob2RzIG9mIGEgKkdpbiogZW5naW5lLiBUaGVzZSBmdW5jdGlvbnMgYWNjZXB0IGEgdmFyaWFkaWMgbGlzdCBvZiBoYW5kbGVycyBhcyB0aGUgbGFzdCBwYXJhbWV0ZXIsIGJ1dCBzaW5jZSBGaXp6IHJlbGllcyBvbiAqdG9uaWMqIHRvIHJldHJpZXZlIHRoZSBpbmZvcm1hdGlvbnMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhlICpPcGVuQVBJKiBzcGVjaWZpY2F0aW9uIG9mIHRoZSBvcGVyYXRpb24sICoqb25seSBvbmUgb2YgdGhlIGhhbmRsZXJzIHJlZ2lzdGVyZWQgTVVTVCBiZSB3cmFwcGVkIHdpdGggVG9uaWMqKi4KCkluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIGBCYXJIYW5kbGVyYCBpcyBhIHNpbXBsZSBtaWRkbGV3YXJlIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBiZWZvcmUgdGhlIGBGb29IYW5kbGVyYCwgYnV0IHRoZSBnZW5lcmF0b3Igd2lsbCB1c2UgdGhlIGlucHV0L291dHB1dCB0eXBlIG9mIHRoZSBgRm9vSGFuZGxlcmAgdG8gZ2VuZXJhdGUgdGhlIHNwZWNpZmljYXRpb24gb2YgdGhlIG9wZXJhdGlvbi4KCmBgYGdvCmZ1bmMgQmFySGFuZGxlcihjICpnaW4uQ29udGV4dCkgeyAuLi4gfQpmdW5jIEZvb0hhbmRsZXIoKmdpbi5Db250ZXh0LCAqRm9vKSAoKkJhciwgZXJyb3IpIHsgLi4uIH0KCmZpenogOj0gZml6ei5OZXcoKQpmaXp6LkdFVCgiL2Zvby9iYXIiLCBuaWwsIEJhckhhbmRsZXIsIHRvbmljLkhhbmRsZXIoRm9vSGFuZGxlciwgMjAwKSkKYGBgCgpIb3dldmVyLCByZWdpc3RlcmluZyBvbmx5IHN0YW5kYXJkIGhhbmRsZXJzIHRoYXQgZm9sbG93IHRoZSBgZ2luLkhhbmRsZXJGdW5jYCBzaWduYXR1cmUgaXMgYWNjZXB0ZWQsIGJ1dCB0aGUgKk9wZW5BUEkqIGdlbmVyYXRvciB3aWxsIGlnbm9yZSB0aGUgb3BlcmF0aW9uIGFuZCBpdCB3b24ndCBhcHBlYXIgaW4gdGhlIHNwZWNpZmljYXRpb24uCgojIyMgT3BlcmF0aW9uIGluZm9ybWF0aW9ucwoKVG8gZW5yaWNoIGFuIG9wZXJhdGlvbiwgeW91IGNhbiBwYXNzIGEgbGlzdCBvZiBvcHRpb25hbCBgT3BlcmF0aW9uT3B0aW9uYCBmdW5jdGlvbnMgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXJzIG9mIHRoZSBgR0VUYCwgYFBPU1RgLCBgUFVUYCwgYFBBVENIYCwgYERFTEVURWAsIGBPUFRJT05TYCBhbmQgYEhFQURgIG1ldGhvZHMuCgpgYGBnbwovLyBTZXQgdGhlIGRlZmF1bHQgcmVzcG9uc2UgZGVzY3JpcHRpb24uCi8vIEEgZGVmYXVsdCBzdGF0dXMgdGV4dCB3aWxsIGJlIGNyZWF0ZWQgZnJvbSB0aGUgY29kZSBpZiBpdCBpcyBvbWl0dGVkLgpmaXp6LlN0YXR1c0Rlc2NyaXB0aW9uKGRlc2Mgc3RyaW5nKQoKLy8gU2V0IHRoZSBzdW1tYXJ5IG9mIHRoZSBvcGVyYXRpb24uCmZpenouU3VtbWFyeShzdW1tYXJ5IHN0cmluZykKZml6ei5TdW1tYXJ5Zihmb3JtYXQgc3RyaW5nLCBhIC4uLmludGVyZmFjZXt9KQoKLy8gU2V0IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgb3BlcmF0aW9uLgpmaXp6LkRlc2NyaXB0aW9uKGRlc2Mgc3RyaW5nKQpmaXp6LkRlc2NyaXB0aW9uZihmb3JtYXQgc3RyaW5nLCBhIC4uLmludGVyZmFjZXt9KQoKLy8gT3ZlcnJpZGUgdGhlIElEIG9mIHRoZSBvcGVyYXRpb24uCi8vIE11c3QgYmUgYSB1bmlxdWUgc3RyaW5nIHVzZWQgdG8gaWRlbnRpZnkgdGhlIG9wZXJhdGlvbiBhbW9uZwovLyBhbGwgb3BlcmF0aW9ucyBkZXNjcmliZWQgaW4gdGhlIEFQSS4KZml6ei5JRChpZCBzdHJpbmcpCgovLyBNYXJrIHRoZSBvcGVyYXRpb24gYXMgZGVwcmVjYXRlZC4KZml6ei5EZXByZWNhdGVkKGRlcHJlY2F0ZWQgYm9vbCkKCi8vIEFkZCBhbiBhZGRpdGlvbmFsIHJlc3BvbnNlIHRvIHRoZSBvcGVyYXRpb24uCi8vIFRoZSBleGFtcGxlIGFyZ3VtZW50IHdpbGwgcG9wdWxhdGUgYSBzaW5nbGUgZXhhbXBsZSBpbiB0aGUgcmVzcG9uc2Ugc2NoZW1hLgovLyBGb3IgcG9wdWxhdGluZyBtdWx0aXBsZSBleGFtcGxlcywgdXNlIGZpenouUmVzcG9uc2VXaXRoRXhhbXBsZXMuCi8vIE5vdGljZSB0aGF0IGV4YW1wbGUgYW5kIGV4YW1wbGVzIGZpZWxkcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgovLyBtb2RlbCwgaGVhZGVyLCBhbmQgZXhhbXBsZSBtYXkgYmUgYG5pbGAuCmZpenouUmVzcG9uc2Uoc3RhdHVzQ29kZSwgZGVzYyBzdHJpbmcsIG1vZGVsIGludGVyZmFjZXt9LCBoZWFkZXJzIFtdKlJlc3BvbnNlSGVhZGVyLCBleGFtcGxlIGludGVyZmFjZXt9KQoKLy8gUmVzcG9uc2VXaXRoRXhhbXBsZXMgaXMgYSB2YXJpYW50IG9mIFJlc3BvbnNlIHRoYXQgc3VwcG9ydHMgcHJvdmlkaW5nIG11bHRpcGxlIGV4YW1wbGVzLgovLyBFeGFtcGxlcyBhcmd1bWVudCB3aWxsIHBvcHVsYXRlIG11bHRpcGxlIGV4YW1wbGVzIGluIHRoZSByZXNwb25zZSBzY2hlbWEuCi8vIEZvciBwb3B1bGF0aW5nIGEgc2luZ2xlIGV4YW1wbGUsIHVzZSBmaXp6LlJlc3BvbnNlLgovLyBOb3RpY2UgdGhhdCBleGFtcGxlIGFuZCBleGFtcGxlcyBmaWVsZHMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KLy8gbW9kZWwsIGhlYWRlciwgYW5kIGV4YW1wbGVzIG1heSBiZSBgbmlsYC4KZml6ei5SZXNwb25zZVdpdGhFeGFtcGxlcyhzdGF0dXNDb2RlLCBkZXNjIHN0cmluZywgbW9kZWwgaW50ZXJmYWNle30sIGhlYWRlcnMgW10qUmVzcG9uc2VIZWFkZXIsIGV4YW1wbGVzIG1hcFtzdHJpbmddaW50ZXJmYWNle30pCgovLyBBZGQgYW4gYWRkaXRpb25hbCBoZWFkZXIgdG8gdGhlIGRlZmF1bHQgcmVzcG9uc2UuCi8vIE1vZGVsIGNhbiBiZSBvZiBhbnkgdHlwZSwgYW5kIG1heSBhbHNvIGJlIGBuaWxgLAovLyBpbiB3aGljaCBjYXNlIHRoZSBzdHJpbmcgdHlwZSB3aWxsIGJlIHVzZWQgYXMgZGVmYXVsdC4KZml6ei5IZWFkZXIobmFtZSwgZGVzYyBzdHJpbmcsIG1vZGVsIGludGVyZmFjZXt9KQoKLy8gT3ZlcnJpZGUgdGhlIGJpbmRpbmcgbW9kZWwgb2YgdGhlIG9wZXJhdGlvbi4KZml6ei5JbnB1dE1vZGVsKG1vZGVsIGludGVyZmFjZXt9KQoKLy8gT3ZlcnJpZGVzIHRoZSB0b3AtbGV2ZWwgc2VjdXJpdHkgcmVxdWlyZW1lbnQgb2YgYW4gb3BlcmF0aW9uLgovLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBtb3JlIHRoYW4gb25jZSB0byBhZGQgc2V2ZXJhbCByZXF1aXJlbWVudHMuCmZpenouU2VjdXJpdHkoc2VjdXJpdHkgKm9wZW5hcGkuU2VjdXJpdHlSZXF1aXJlbWVudCkKCi8vIEFkZCBhbiBlbXB0eSBzZWN1cml0eSByZXF1aXJlbWVudCB0byB0aGlzIG9wZXJhdGlvbiB0byBtYWtlIG90aGVyIHNlY3VyaXR5IHJlcXVpcmVtZW50cyBvcHRpb25hbC4KZml6ei5XaXRoT3B0aW9uYWxTZWN1cml0eSgpCgovLyBSZW1vdmUgYW55IHRvcC1sZXZlbCBzZWN1cml0eSByZXF1aXJlbWVudHMgZm9yIHRoaXMgb3BlcmF0aW9uLgpmaXp6LldpdGhvdXRTZWN1cml0eSgpCgovLyBBZGQgYSBDb2RlIFNhbXBsZSB0byB0aGUgb3BlcmF0aW9uLgpmaXp6LlhDb2RlU2FtcGxlKGNvZGVTYW1wbGUgKlhDb2RlU2FtcGxlKQoKLy8gTWFyayB0aGUgb3BlcmF0aW9uIGFzIGludGVybmFsLiBUaGUgeC1pbnRlcm5hbCBmbGFnIGlzIGludGVycHJldGVkIGJ5IHRoaXJkLXBhcnR5IHRvb2xzIGFuZCBpdCBvbmx5IGltcGFjdHMgdGhlIHZpc3VhbCBkb2N1bWVudGF0aW9uIHJlbmRlcmluZy4KZml6ei5YSW50ZXJuYWwoKQpgYGAKCioqTk9URVM6KioKKiBgZml6ei5JbnB1dE1vZGVsYCBhbGxvd3MgdG8gb3ZlcnJpZGUgdGhlIG9wZXJhdGlvbiBpbnB1dCByZWdhcmRsZXNzIG9mIGhvdyB0aGUgaGFuZGxlciBpbXBsZW1lbnRhdGlvbiByZWFsbHkgYmluZHMgdGhlIHJlcXVlc3QgcGFyYW1ldGVycy4gSXQgaXMgdGhlIGRldmVsb3BlciByZXNwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhhdCB0aGUgYmluZGluZyBtYXRjaGVzIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uCiogVGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBgZml6ei5SZXBvbnNlYCBtZXRob2Qgd2hpY2ggcmVwcmVzZW50cyBhbiBIVFRQIHN0YXR1cyBjb2RlIGlzIG9mIHR5cGUgKnN0cmluZyogYmVjYXVzZSB0aGUgc3BlYyBhY2NlcHQgdGhlIHZhbHVlIGBkZWZhdWx0YC4gU2VlIHRoZSBbUmVzcG9uc2VzIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjcmVzcG9uc2VzT2JqZWN0KSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9ucy4KClRvIGhlbHAgeW91IGRlY2xhcmUgYWRkaXRpb25hbCBoZWFkZXJzLCBwcmVkZWZpbmVkIHZhcmlhYmxlcyBmb3IgR28gcHJpbWl0aXZlcyB0eXBlcyB0aGF0IHlvdSBjYW4gdXNlIGFzIHRoZSB0aGlyZCBhcmd1bWVudCBvZiB0aGUgYGZpenouSGVhZGVyYCBtZXRob2QgYXJlIGF2YWlsYWJsZToKYGBgZ28KdmFyICgKICAgSW50ZWdlciAgaW50MzIKICAgTG9uZyAgICAgaW50NjQKICAgRmxvYXQgICAgZmxvYXQzMgogICBEb3VibGUgICBmbG9hdDY0CiAgIFN0cmluZyAgIHN0cmluZwogICBCeXRlICAgICBbXWJ5dGUKICAgQmluYXJ5ICAgW11ieXRlCiAgIEJvb2xlYW4gIGJvb2wKICAgRGF0ZVRpbWUgdGltZS5UaW1lCikKYGBgCgojIyMgR3JvdXBzCgpFeGFjdGx5IGxpa2UgeW91IHdvdWxkIGRvIHdpdGggKkdpbiosIHlvdSBjYW4gY3JlYXRlIGEgZ3JvdXAgb2Ygcm91dGVzIHVzaW5nIHRoZSBtZXRob2QgYEdyb3VwYC4gVW5saWtlICpHaW4qIG93biBtZXRob2QsIEZpenoncyBvbmUgdGFrZXMgdHdvIG90aGVyIG9wdGlvbmFsIGFyZ3VtZW50cywgYG5hbWVgIGFuZCBgZGVzY3JpcHRpb25gLiBUaGVzZSBwYXJhbWV0ZXJzIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSB0YWcgaW4gdGhlICoqT3BlbkFQSSoqIHNwZWNpZmljYXRpb24gdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIHRoZSByb3V0ZXMgYWRkZWQgdG8gdGhlIGdyb3VwLgoKYGBgZ28KZ3JwIDo9IGYuR3JvdXAoIi9zdWJwYXRoIiwgIk15R3JvdXAiLCAiR3JvdXAgZGVzY3JpcHRpb24iLCBtaWRkbGV3YXJlcy4uLikKYGBgCklmIHRoZSBgbmFtZWAgcGFyYW1ldGVyIGlzIGVtcHR5LCB0aGUgdGFnIHdvbid0IGJlIGNyZWF0ZWQgYW5kIGl0IHdvbid0IGJlIHVzZWQuCgpTdWJncm91cHMgb2Ygc3ViZ3JvdXBzIGNhbiBiZSBjcmVhdGVkIHRvIGFuIGluZmluaXRlIGRlcHRoLCBhY2NvcmRpbmcgeW8geW91ciBuZWVkcy4KCmBgYGdvCmZvbyA6PSBmLkdyb3VwKCIvZm9vIiwgIkZvbyIsICJGb28gZ3JvdXAiKQoKLy8gYWxsIHJvdXRlcyByZWdpc3RlcmVkIG9uIGdyb3VwIGJhciB3aWxsIGhhdmUKLy8gYSByZWxhdGl2ZSBwYXRoIHN0YXJ0aW5nIHdpdGggL2Zvby9iYXIKYmFyIDo9IGYuR3JvdXAoIi9iYXIiLCAiQmFyIiwgIkJhciBncm91cCIpCgovLyAvZm9vL2Jhci97YmFySUR9CmJhci5HRVQoIi86YmFySUQiLCBuaWwsIHRvbmljLkhhbmRsZXIoTXlCYXJIYW5kbGVyLCAyMDApKQpgYGAKClRoZSBgVXNlYCBtZXRob2QgY2FuIGJlIHVzZWQgd2l0aCBncm91cHMgdG8gcmVnaXN0ZXIgbWlkZGxld2FyZXMgYWZ0ZXIgdGhlaXIgY3JlYXRpb24uCmBgYGdvCmdycC5Vc2UobWlkZGxld2FyZTEsIG1pZGRsZXdhcmUyLCAuLi4pCmBgYAoKIyMgVG9uaWMKClRoZSBzdWJwYWNrYWdlICp0b25pYyogaGFuZGxlcyBwYXRoL3F1ZXJ5L2hlYWRlci9ib2R5IHBhcmFtZXRlcnMgYmluZGluZyBpbiBhIHNpbmdsZSBjb25zb2xpZGF0ZWQgaW5wdXQgb2JqZWN0IHdoaWNoIGFsbG93cyB5b3UgdG8gcmVtb3ZlIGFsbCB0aGUgYm9pbGVycGxhdGUgY29kZSB0aGF0IHJldHJpZXZlcyBhbmQgdGVzdHMgdGhlIHByZXNlbmNlIG9mIHZhcmlvdXMgcGFyYW1ldGVycy4gVGhlICpPcGVuQVBJKiBnZW5lcmF0b3IgbWFrZSB1c2Ugb2YgdGhlIGlucHV0L291dHB1dCB0eXBlcyBpbmZvcm1hdGlvbnMgb2YgYSB0b25pYy13cmFwcGVkIGhhbmRsZXIgcmVwb3J0ZWQgYnkgKnRvbmljKiB0byBkb2N1bWVudCB0aGUgb3BlcmF0aW9uIGluIHRoZSBzcGVjaWZpY2F0aW9uLgoKVGhlIGhhbmRsZXJzIHdyYXBwZWQgd2l0aCAqdG9uaWMqIG11c3QgZm9sbG93IHRoZSBmb2xsb3dpbmcgc2lnbmF0dXJlLgpgYGBnbwpmdW5jKCpnaW4uQ29udGV4dCwgW2lucHV0IG9iamVjdCBwdHJdKSAoW291dHB1dCBvYmplY3RdLCBlcnJvcikKYGBgCklucHV0IGFuZCBvdXRwdXQgb2JqZWN0cyBhcmUgYm90aCBvcHRpb25hbCwgYXMgc3VjaCwgdGhlIG1pbmltYWwgYWNjZXB0ZWQgc2lnbmF0dXJlIGlzOgpgYGBnbwpmdW5jKCpnaW4uQ29udGV4dCkgZXJyb3IKYGBgCgpUbyB3cmFwIGEgaGFuZGxlciB3aXRoICp0b25pYyosIHVzZSB0aGUgYHRvbmljLkhhbmRsZXJgIG1ldGhvZC4gSXQgdGFrZXMgYSBmdW5jdGlvbiB0aGF0IGZvbGxvdyB0aGUgYWJvdmUgc2lnbmF0dXJlIGFuZCBhIGRlZmF1bHQgc3RhdHVzIGNvZGUgYW5kIHJldHVybiBhIGBnaW4uSGFuZGxlckZ1bmNgIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgd2hlbiB5b3UgcmVnaXN0ZXIgYSByb3V0ZSB3aXRoIEZpenogb2YgKkdpbiouCgpPdXRwdXQgb2JqZWN0cyBjYW4gYmUgb2YgYW55IHR5cGUsIGFuZCB3aWxsIGJlIG1hcnNoYWxsZWQgdG8gdGhlIGRlc2lyZWQgbWVkaWEgdHlwZS4KTm90ZSB0aGF0IHRoZSBpbnB1dCBvYmplY3QgKipNVVNUIGFsd2F5cyBiZSBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3QqKiwgb3IgdGhlIHRvbmljIHdyYXBwaW5nIHdpbGwgcGFuaWMgYXQgcnVudGltZS4KCklmIHlvdSB1c2UgY2xvc3VyZXMgYXMgaGFuZGxlcnMsIHBsZWFzZSBub3RlIHRoYXQgdGhleSB3aWxsIGFsbCBoYXZlIHRoZSBzYW1lIG5hbWUsIGFuZCB0aGUgZ2VuZXJhdG9yIHdpbGwgcmV0dXJuIGFuIGVycm9yLiBUbyBvdmVyY29tZSB0aGlzIHByb2JsZW0sIHlvdSBoYXZlIHRvIGV4cGxpY2l0ZWx5IHNldCB0aGUgSUQgb2YgYW4gb3BlcmF0aW9uIHdoZW4geW91IHJlZ2lzdGVyIHRoZSBoYW5kbGVyLgoKYGBgZ28KZnVuYyBNeUhhbmRsZXIoKSBnaW4uSGFuZGxlckZ1bmMgewogICByZXR1cm4gdG9uaWMuSGFuZGxlcihmdW5jKGMgKmdpbi5Db250ZXh0KSBlcnJvciB7fSwgMjAwKQp9CgpmaXp6LkdFVCgiL2ZvbyIsIFtdZml6ei5PcGVyYXRpb25PcHRpb257CiAgIGZpenouSUQoIk15T3BlcmF0aW9uSUQiKQp9LCBNeUhhbmRsZXIoKSkKYGBgCgojIyMgTG9jYXRpb24gdGFncwoKKnRvbmljKiB1c2VzIHRocmVlIHN0cnVjdCB0YWdzIHRvIHJlY29nbml6ZSB0aGUgcGFyYW1ldGVycyBpdCBzaG91bGQgYmluZCB0byB0aGUgaW5wdXQgb2JqZWN0IG9mIHlvdXIgdG9uaWMtd3JhcHBlZCBoYW5kbGVyczoKLSBgcGF0aGA6IGJpbmQgZnJvbSB0aGUgcmVxdWVzdCBwYXRoCi0gYHF1ZXJ5YDogYmluZCBmcm9tIHRoZSByZXF1ZXN0IHF1ZXJ5IHN0cmluZwotIGBoZWFkZXJgOiBiaW5kIGZyb20gdGhlIHJlcXVlc3QgaGVhZGVycwoKVGhlIGZpZWxkcyB0aGF0IGRvZXNuJ3QgdXNlIG9uZSBvZiB0aGVzZSB0YWdzIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHkuCgpUaGUgdmFsdWUgb2YgZWFjaCBzdHJ1Y3QgdGFnIHJlcHJlc2VudHMgdGhlIG5hbWUgb2YgdGhlIGZpZWxkIGluIGVhY2ggbG9jYXRpb24sIHdpdGggb3B0aW9ucy4KYGBgZ28KdHlwZSBNeUhhbmRsZXJQYXJhbXMgc3RydWN0IHsKICAgSUQgIGludDY0ICAgICBgcGF0aDoiaWQiYAogICBGb28gc3RyaW5nICAgIGBxdWVyeToiZm9vImAKICAgQmFyIHRpbWUuVGltZSBgaGVhZGVyOiJ4LWZvby1iYXIiYAp9CmBgYAoKKnRvbmljKiB3aWxsIGF1dG9tYXRpY2FsbHkgY29udmVydCB0aGUgdmFsdWUgZXh0cmFjdGVkIGZyb20gdGhlIGxvY2F0aW9uIGRlc2NyaWJlZCBieSB0aGUgdGFnIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGJlZm9yZSBiaW5kaW5nLgoKKipOT1RFKio6IEEgcGF0aCBwYXJhbWV0ZXIgaXMgYWx3YXlzIHJlcXVpcmVkIGFuZCB3aWxsIGFwcGVhciByZXF1aXJlZCBpbiB0aGUgc3BlYyByZWdhcmRsZXNzIG9mIHRoZSBgdmFsaWRhdGVgIHRhZyBjb250ZW50LgoKIyMjIEFkZGl0aW9uYWwgdGFncwoKWW91IGNhbiB1c2UgYWRkaXRpb25hbCB0YWdzLiBTb21lIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYnkgKnRvbmljKiwgb3RoZXJzIHdpbGwgYmUgZXhjbHVzaXZlbHkgdXNlZCB0byBlbnJpY2ggdGhlICpPcGVuQVBJKiBzcGVjaWZpY2F0aW9uLgoKfCBuYW1lICAgICAgICAgIHwgZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGBkZWZhdWx0YCAgICAgfCAqdG9uaWMqIHdpbGwgYmluZCB0aGlzIHZhbHVlIGlmIG5vbmUgd2FzIHBhc3NlZCB3aXRoIHRoZSByZXF1ZXN0LiBUaGlzIHNob3VsZCBub3QgYmUgdXNlZCBpZiBhIGZpZWxkIGlzIGFsc28gcmVxdWlyZWQuIFJlYWQgdGhlIFtkb2N1bWVudGF0aW9uXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2Rlc2NyaWJpbmctcGFyYW1ldGVycy8pIChzZWN0aW9uIF9Db21tb24gTWlzdGFrZXNfKSBmb3IgbW9yZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhpcyBiZWhhdmlvdXIuIHwKfCBgZGVzY3JpcHRpb25gIHwgQWRkIGEgZGVzY3JpcHRpb24gb2YgdGhlIGZpZWxkIGluIHRoZSBzcGVjLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGRlcHJlY2F0ZWRgICB8IEluZGljYXRlcyBpZiB0aGUgZmllbGQgaXMgZGVwcmVjYXRlZC4gQWNjZXB0ZWQgdmFsdWVzIGFyZSBgMWAsIGB0YCwgYFRgLCBgVFJVRWAsIGB0cnVlYCwgYFRydWVgLCBgMGAsIGBmYCwgYEZgLCBgRkFMU0VgLiBJbnZhbGlkIHZhbHVlIGFyZSBjb25zaWRlcmVkIHRvIGJlIGZhbHNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBlbnVtYCAgICAgICAgfCBBIGNvbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWNjZXB0YWJsZSB2YWx1ZXMgZm9yIHRoZSBwYXJhbWV0ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZXhhbXBsZWAgICAgIHwgQW4gZXhhbXBsZSB2YWx1ZSB0byBiZSB1c2VkIGluIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gU2VlIFtzZWN0aW9uIGJlbG93XSgjUHJvdmlkaW5nLUV4YW1wbGVzLWZvci1DdXN0b20tVHlwZXMpIGZvciB0aGUgZGVtb25zdHJhdGlvbiBvbiBob3cgdG8gcHJvdmlkZSBleGFtcGxlIGZvciBjdXN0b20gdHlwZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGZvcm1hdGAgICAgICB8IE92ZXJyaWRlIHRoZSBmb3JtYXQgb2YgdGhlIGZpZWxkIGluIHRoZSBzcGVjaWZpY2F0aW9uLiBSZWFkIHRoZSBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjZGF0YVR5cGVGb3JtYXQpIGZvciBtb3JlIGluZm9ybWF0aW9ucy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGB2YWxpZGF0ZWAgICAgfCBGaWVsZCB2YWxpZGF0aW9uIHJ1bGVzLiBSZWFkIHRoZSBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9nb2RvYy5vcmcvZ29wa2cuaW4vZ28tcGxheWdyb3VuZC92YWxpZGF0b3IudjgpIGZvciBtb3JlIGluZm9ybWF0aW9ucy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZXhwbG9kZWAgICAgIHwgU3BlY2lmaWVzIHdoZXRoZXIgYXJyYXlzIHNob3VsZCBnZW5lcmF0ZSBzZXBhcmF0ZSBwYXJhbWV0ZXJzIGZvciBlYWNoIGFycmF5IGl0ZW0gb3Igb2JqZWN0IHByb3BlcnR5IChsaW1pdGVkIHRvIHF1ZXJ5IHBhcmFtZXRlcnMgd2l0aCAqZm9ybSogc3R5bGUpLiBBY2NlcHRlZCB2YWx1ZXMgYXJlIGAxYCwgYHRgLCBgVGAsIGBUUlVFYCwgYHRydWVgLCBgVHJ1ZWAsIGAwYCwgYGZgLCBgRmAsIGBGQUxTRWAuIEludmFsaWQgdmFsdWUgYXJlIGNvbnNpZGVyZWQgdG8gYmUgZmFsc2UuICAgICB8CgojIyMgSlNPTi9YTUwKClRoZSBKU09OL1hNTCBlbmNvZGVycyB1c3VhbGx5IG9taXQgYSBmaWVsZCB0aGF0IGhhcyB0aGUgdGFnIGAiLSJgLiBUaGlzIGJlaGF2aW91ciBpcyByZXByb2R1Y2VkIGJ5IHRoZSAqT3BlbkFQSSogZ2VuZXJhdG9yIDsgYSBmaWVsZCB3aXRoIHRoaXMgdGFnIHdvbid0IGFwcGVhciBpbiB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hLgoKSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCB0aGUgZmllbGQgYElucHV0YCBpcyB1c2VkIG9ubHkgZm9yIGJpbmRpbmcgcmVxdWVzdCBib2R5IHBhcmFtZXRlcnMgYW5kIHdvbid0IGFwcGVhciBpbiB0aGUgb3V0cHV0IGVuY29kaW5nIHdoaWxlIGBPdXRwdXRgIHdpbGwgYmUgbWFyc2hhbGVkIGJ1dCB3aWxsIG5vdCBiZSB1c2VkIGZvciBwYXJhbWV0ZXJzIGJpbmRpbmcuCmBgYGdvCnR5cGUgTW9kZWwgc3RydWN0IHsKCUlucHV0ICBzdHJpbmcgYGpzb246Ii0iYAoJT3V0cHV0IHN0cmluZyBganNvbjoib3V0cHV0IiBiaW5kaW5nOiItImAKfQpgYGAKCiMjIyBSZXF1ZXN0IGJvZHkKCklmIHlvdSB3YW50IHRvIG1ha2UgYSByZXF1ZXN0IGJvZHkgZmllbGQgbWFuZGF0b3J5LCB5b3UgY2FuIHVzZSB0aGUgdGFnIGB2YWxpZGF0ZToicmVxdWlyZWQiYC4gVGhlIHZhbGlkYXRvciB1c2VkIGJ5ICp0b25pYyogd2lsbCBlbnN1cmUgdGhhdCB0aGUgZmllbGQgaXMgcHJlc2VudC4KVG8gYmUgYWJsZSB0byBtYWtlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbWlzc2luZyB2YWx1ZSBhbmQgdGhlIHplcm8gdmFsdWUgb2YgYSB0eXBlLCB1c2UgYSBwb2ludGVyLgoKVG8gZXhwbGljaXRseSBpZ25vcmUgYSBwYXJhbWV0ZXIgZnJvbSB0aGUgcmVxdWVzdCBib2R5LCB1c2UgdGhlIHRhZyBgYmluZGluZzoiLSJgLgoKTm90ZSB0aGF0IHRoZSAqT3BlbkFQSSogZ2VuZXJhdG9yIHdpbGwgaWdub3JlIHJlcXVlc3QgYm9keSBwYXJhbWV0ZXJzIGZvciB0aGUgcm91dGVzIHdpdGggYSBtZXRob2QgdGhhdCBpcyBvbmUgb2YgYEdFVGAsIGBERUxFVEVgIG9yIGBIRUFEYC4KICAgPiBHRVQsIERFTEVURSBhbmQgSEVBRCBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgdG8gaGF2ZSByZXF1ZXN0IGJvZHkgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGRlZmluZWQgc2VtYW50aWNzIGFzIHBlciBbUkZDIDcyMzFdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNC4zKS4KCVsqc291cmNlKl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kZXNjcmliaW5nLXJlcXVlc3QtYm9keS8pCgojIyMgU2NoZW1hIHZhbGlkYXRpb24KClRoZSAqT3BlbkFQSSogZ2VuZXJhdG9yIHJlY29nbml6ZSBzb21lIHRhZ3Mgb2YgdGhlIFtnby1wbGF5Z3JvdW5kL3ZhbGlkYXRvci52OF0oaHR0cHM6Ly9nb3BrZy5pbi9nby1wbGF5Z3JvdW5kL3ZhbGlkYXRvci52OCkgcGFja2FnZSBhbmQgdHJhbnNsYXRlIHRob3NlIHRvIHRoZSBbcHJvcGVydGllcyBvZiB0aGUgc2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMS5tZCNwcm9wZXJ0aWVzKSB0aGF0IGFyZSB0YWtlbiBmcm9tIHRoZSBbSlNPTiBTY2hlbWEgZGVmaW5pdGlvbl0oaHR0cDovL2pzb24tc2NoZW1hLm9yZy9sYXRlc3QvanNvbi1zY2hlbWEtdmFsaWRhdGlvbi5odG1sI3JmYy5zZWN0aW9uLjYpLgoKVGhlIHN1cHBvcnRlZCB0YWdzIGFyZTogW2xlbl0oaHR0cHM6Ly9nb2RvYy5vcmcvZ29wa2cuaW4vZ28tcGxheWdyb3VuZC92YWxpZGF0b3IudjgjaGRyLUxlbmd0aCksIFttYXhdKGh0dHBzOi8vZ29kb2Mub3JnL2dvcGtnLmluL2dvLXBsYXlncm91bmQvdmFsaWRhdG9yLnY4I2hkci1NYXhpbXVtKSwgW21pbl0oaHR0cHM6Ly9nb2RvYy5vcmcvZ29wa2cuaW4vZ28tcGxheWdyb3VuZC92YWxpZGF0b3IudjgjaGRyLU1pbmludW0pLCBbZXFdKGh0dHBzOi8vZ29kb2Mub3JnL2dvcGtnLmluL2dvLXBsYXlncm91bmQvdmFsaWRhdG9yLnY4I2hkci1FcXVhbHMpLCBbZ3RdKGh0dHBzOi8vZ29kb2Mub3JnL2dvcGtnLmluL2dvLXBsYXlncm91bmQvdmFsaWRhdG9yLnY4I2hkci1HcmVhdGVyX1RoYW4pLCBbZ3RlXShodHRwczovL2dvZG9jLm9yZy9nb3BrZy5pbi9nby1wbGF5Z3JvdW5kL3ZhbGlkYXRvci52OCNoZHItR3JlYXRlcl9UaGFuX29yX0VxdWFsKSwgW2x0XShodHRwczovL2dvZG9jLm9yZy9nb3BrZy5pbi9nby1wbGF5Z3JvdW5kL3ZhbGlkYXRvci52OCNoZHItTGVzc19UaGFuKSwgW2x0ZV0oaHR0cHM6Ly9nb2RvYy5vcmcvZ29wa2cuaW4vZ28tcGxheWdyb3VuZC92YWxpZGF0b3IudjgjaGRyLUxlc3NfVGhhbl9vcl9FcXVhbCkuCgpCYXNlZCBvbiB0aGUgdHlwZSBvZiB0aGUgZmllbGQgdGhhdCBjYXJyeSB0aGUgdGFnLCB0aGUgZmllbGRzIGBtYXhpbXVtYCwgYG1pbmltdW1gLCBgbWluTGVuZ3RoYCwgYG1heExlbmd0aGAsIGBtaW5JdGVtc2AsIGBtYXhJdGVtc2AsIGBtaW5Qcm9wZXJ0aWVzYCBhbmQgYG1heFByb3BlcnRpZXNgIG9mIGl0cyAqKkpTT04gU2NoZW1hKiogd2lsbCBiZSBmaWxsZWQgYWNjb3JkaW5nbHkuCgojIyBPcGVuQVBJIHNwZWNpZmljYXRpb24KClRvIHNlcnZlIHRoZSBnZW5lcmF0ZWQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIGVpdGhlciBgSlNPTmAgb3IgYFlBTUxgIGZvcm1hdCwgdXNlIHRoZSBoYW5kbGVyIHJldHVybmVkIGJ5IHRoZSBgZml6ei5PcGVuQVBJYCBtZXRob2QuCgpUbyBlbnJpY2ggdGhlIHNwZWNpZmljYXRpb24sIHlvdSBjYW4gcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9ucy4gSGVhZCB0byB0aGUgW09wZW5BUEkgMyBzcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCNpbmZvT2JqZWN0KSBmb3IgbW9yZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIEFQSSBpbmZvcm1hdGlvbnMgdGhhdCB5b3UgY2FuIHNwZWNpZnksIG9yIHRha2UgYSBsb29rIGF0IHRoZSB0eXBlIGBvcGVuYXBpLkluZm9gIGluIHRoZSBmaWxlIFtgb3BlbmFwaS9zcGVjLmdvYF0ob3BlbmFwaS9zcGVjLmdvI0wyNSkuCgpgYGBnbwpmIDo9IGZpenouTmV3KCkKaW5mb3MgOj0gJm9wZW5hcGkuSW5mb3sKICAgVGl0bGU6ICAgICAgICJGcnVpdHMgTWFya2V0IiwKICAgRGVzY3JpcHRpb246IGBUaGlzIGlzIGEgc2FtcGxlIEZydWl0cyBtYXJrZXQgc2VydmVyLmAsCiAgIFZlcnNpb246ICAgICAiMS4wLjAiLAp9CmYuR0VUKCIvb3BlbmFwaS5qc29uIiwgbmlsLCBmLk9wZW5BUEkoaW5mb3MsICJqc29uIikpCmBgYAoqKk5PVEUqKjogVGhlIGdlbmVyYXRvciB3aWxsIG5ldmVyIHBhbmljLiBIb3dldmVyLCBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byBjYWxsIGBmaXp6LkVycm9yc2AgdG8gcmV0cmlldmUgYW5kIGhhbmRsZSB0aGUgZXJyb3JzIHRoYXQgbWF5IGhhdmUgb2NjdXJlZCBkdXJpbmcgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHNwZWNpZmljYXRpb24gYmVmb3JlIHN0YXJ0aW5nIHlvdXIgQVBJLgoKIyMjIyBTZXJ2ZXJzIGluZm9ybWF0aW9uCgpJZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHJlZmVycyB0byBhbiBBUEkgdGhhdCBpcyBub3QgaG9zdGVkIG9uIHRoZSBzYW1lIGRvbWFpbiwgb3IgdXNpbmcgYSBwYXRoIHByZWZpeCBub3QgaW5jbHVkZWQgaW4gdGhlIHNwZWMsIHlvdSB3aWxsIGhhdmUgdG8gZGVjbGFyZSBzZXJ2ZXIgaW5mb3JtYXRpb24uIFRoaXMgY2FuIGJlIGFjaGlldmVkIHVzaW5nIHRoZSBgZi5HZW5lcmF0b3IoKS5TZXRTZXJ2ZXJzYCBtZXRob2QuCgpgYGBnbwpmIDo9IGZpenouTmV3KCkKZi5HZW5lcmF0b3IoKS5TZXRTZXJ2ZXJzKFtdKm9wZW5hcGkuU2VydmVyewogICB7CiAgICAgIERlc2NyaXB0aW9uOiAiRnJ1aXRzIE1hcmtldCAtIHByb2R1Y3Rpb24iLAogICAgICBVUkw6ICAgICAgICAgImh0dHBzOi8vZXhhbXBsZS5vcmcvYXBpLzEuMCIsCiAgIH0sCn0pCmBgYAoKIyMjIyBTZWN1cml0eSBzY2hlbWVzCgpJZiB5b3VyIEFQSSByZXF1aXJlcyBhdXRoZW50aWNhdGlvbiwgeW91IGhhdmUgdG8gZGVjbGFyZSB0aGUgc2VjdXJpdHkgc2NoZW1lcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBvcGVyYXRpb25zLiBUaGlzIGNhbiBiZSBhY2hpZXZlZCB1c2luZyB0aGUgYGYuR2VuZXJhdG9yKCkuU2V0U2VjdXJpdHlTY2hlbWVzYCBtZXRob2QuCgpgYGBnbwpmIDo9IGZpenouTmV3KCkKZi5HZW5lcmF0b3IoKS5TZXRTZWN1cml0eVNjaGVtZXMobWFwW3N0cmluZ10qb3BlbmFwaS5TZWN1cml0eVNjaGVtZU9yUmVmewogICAiYXBpVG9rZW4iOiB7CiAgICAgIFNlY3VyaXR5U2NoZW1lOiAmb3BlbmFwaS5TZWN1cml0eVNjaGVtZXsKICAgICAgICAgVHlwZTogImFwaUtleSIsCiAgICAgICAgIEluOiAgICJoZWFkZXIiLAogICAgICAgICBOYW1lOiAieC1hcGktdG9rZW4iLAogICAgICB9LAogICB9LAp9KQpgYGAKCk9uY2UgZGVmaW5lZCwgdGhlIHNlY3VyaXR5IHNjaGVtZXMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIGFsbCBvcGVyYXRpb25zLiBZb3UgY2FuIG92ZXJyaWRlIHRoZW0gb24gYW4gcGVyLW9wZXJhdGlvbiBiYXNpcyB1c2luZyB0aGUgYGZpenouU2VjdXJpdHkoKWAgZnVuY3Rpb24uCgpgYGBnbwpmaXp6LlNlY3VyaXR5KCZvcGVuYXBpLlNlY3VyaXR5UmVxdWlyZW1lbnR7CiAgICJhcGlUb2tlbiI6IFtdc3RyaW5ne30sCn0pCmBgYAoKIyMjIyBDb21wb25lbnRzCgpUaGUgb3V0cHV0IHR5cGVzIG9mIHlvdXIgaGFuZGxlcnMgYXJlIHJlZ2lzdGVyZWQgYXMgY29tcG9uZW50cyB3aXRoaW4gdGhlIGdlbmVyYXRlZCBzcGVjaWZpY2F0aW9uLiBCeSBkZWZhdWx0LCB0aGUgbmFtZSB1c2VkIGZvciBlYWNoIGNvbXBvbmVudCBpcyBjb21wb3NlZCBvZiB0aGUgcGFja2FnZSBhbmQgdHlwZSBuYW1lIGNvbmNhdGVuYXRlZCB1c2luZyBfQ2FtZWxDYXNlXyBzdHlsZSwgYW5kIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZ1bGwgaW1wb3J0IHBhdGguIEFzIHN1Y2gsIHBsZWFzZSBlbnN1cmUgdGhhdCB5b3UgZG9uJ3QgdXNlIHRoZSBzYW1lIHR5cGUgbmFtZSBpbiB0d28gZXBvbnltIHBhY2thZ2UgaW4geW91ciBhcHBsaWNhdGlvbi4KClRoZSBuYW1lcyBvZiB0aGUgY29tcG9uZW50cyBjYW4gYmUgY3VzdG9taXplZCBpbiB0d28gZGlmZmVyZW50IHdheXMuCgojIyMjIyBHbG9iYWwgb3ZlcnJpZGUKCk92ZXJyaWRlIHRoZSBuYW1lIG9mIGEgdHlwZSBnbG9iYWxseSBiZWZvcmUgcmVnaXN0ZXJpbmcgeW91ciBoYW5kbGVycy4gVGhpcyBoYXMgdGhlIGhpZ2hlc3QgcHJlY2VkZW5jZS4KYGBgZ28KZiA6PSBmaXp6Lk5ldygpCmYuR2VuZXJhdG9yKCkuT3ZlcnJpZGVUeXBlTmFtZShyZWZsZWN0LlR5cGVPZihUe30pLCAiT3ZlcnJpZGVkTmFtZSIpCmBgYAoKIyMjIyMgSW50ZXJmYWNlCgpJbXBsZW1lbnRzIHRoZSBgb3BlbmFwaS5UeXBlcmAgaW50ZXJmYWNlIG9uIHlvdXIgdHlwZXMuCmBgYGdvCmZ1bmMgKCpUKSBUeXBlTmFtZSgpIHN0cmluZyB7IHJldHVybiAiT3ZlcnJpZGVkTmFtZSIgfQpgYGAKKipXQVJOSU5HOioqIFlvdSAqKk1VU1QqKiBub3QgcmVseSBvbiB0aGUgbWV0aG9kIHJlY2VpdmVyIHRvIHJldHVybiB0aGUgbmFtZSwgYmVjYXVzZSB0aGUgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIGEgbmV3IGluc3RhbmNlIGNyZWF0ZWQgYnkgdGhlIGdlbmVyYXRvciB3aXRoIHRoZSBgcmVmbGVjdGAgcGFja2FnZS4KCiMjIyMgQ3VzdG9tIHNjaGVtYXMKClRoZSBzcGVjIGdlbmVyYXRvciBjcmVhdGVzIE9wZW5BUEkgc2NoZW1hcyBmb3IgeW91ciB0eXBlcyBiYXNlZCBvbiB0aGVpciBbcmVmbGVjdGlvbiBraW5kXShodHRwczovL2dvbGFuZy5vcmcvcGtnL3JlZmxlY3QvI0tpbmQpLgpJZiB5b3Ugd2FudCB0byBjb250cm9sIHRoZSBvdXRwdXQgc2NoZW1hIG9mIGEgdHlwZSBtYW51YWxseSwgeW91IGNhbiBpbXBsZW1lbnQgdGhlIGBEYXRhVHlwZWAgaW50ZXJmYWNlIGZvciB0aGlzIHR5cGUuCgpGb3IgZXhhbXBsZSwgZ2l2ZW4gYSBVVUlEIHZlcnNpb24gNCB0eXBlLCBkZWNsYXJlZCBhcyBhIHN0cnVjdCwgdGhhdCBzaG91bGQgYXBwZWFyIGFzIGEgc3RyaW5nIHdpdGggYSBjdXN0b20gZm9ybWF0LgpgYGBnbwp0eXBlIFVVSUR2NCBzdHJ1Y3QgeyAuLi4gfQoKZnVuYyAoKlVVSUR2NCkgRm9ybWF0KCkgc3RyaW5nIHsgcmV0dXJuICJ1dWlkIiB9CmZ1bmMgKCpVVUlEdjQpIFR5cGUoKSBzdHJpbmcgeyByZXR1cm4gInN0cmluZyIgfQpgYGAKClRoZSBzY2hlbWEgb2YgdGhlIHR5cGUgd2lsbCBsb29rIGxpa2UgdGhlIGZvbGxvd2luZyBpbnN0ZWFkIG9mIGRlc2NyaWJpbmcgYWxsIHRoZSBmaWVsZHMgb2YgdGhlIHN0cnVjdC4KYGBganNvbgp7CiAgICJ0eXBlIjogInN0cmluZyIsCiAgICJmb3JtYXQiOiAidXVpZCIKfQpgYGAKCklmIHlvdSB3YW50IHRvIG92ZXJyaWRlIHRoZSBgbnVsbGFibGVgIHByb3BlcnR5IG9mIGEgdHlwZSwgeW91IGNhbiBpbXBsZW1lbnQgdGhlIGBOdWxsYWJsZWAgaW50ZXJmYWNlIGZvciB0aGlzIHR5cGUuCgpGb3IgZXhhbXBsZSwgaWYgW2BzcWwuTnVsbFN0cmluZ2BdKGh0dHBzOi8vcGtnLmdvLmRldi9kYXRhYmFzZS9zcWwjTnVsbFN0cmluZykgaXMgbm90IHJlZmVyZW5jZWQgYnkgYSBwb2ludGVyIGluIHlvdXIgbW9kZWwgYnV0IHlvdSBzdGlsbCB3YW50IGl0IHRvIGJlICJudWxsYWJsZSI6CgpgYGBnbwp0eXBlIE51bGxTdHJpbmcgc3FsLk51bGxTdHJpbmcKCmZ1bmMgKE51bGxTdHJpbmcpIE51bGxhYmxlKCkgYm9vbCB7IHJldHVybiB0cnVlIH0KYGBgCgoqKldBUk5JTkc6KiogWW91ICoqTVVTVCoqIG5vdCByZWx5IG9uIHRoZSBtZXRob2QgcmVjZWl2ZXJzIHRvIHJldHVybiB0aGUgdHlwZSBhbmQgZm9ybWF0LCBiZWNhdXNlIHRoZXNlIG1ldGhvZHMgd2lsbCBiZSBjYWxsZWQgb24gYSBuZXcgaW5zdGFuY2UgY3JlYXRlZCBieSB0aGUgZ2VuZXJhdG9yIHdpdGggdGhlIGByZWZsZWN0YCBwYWNrYWdlLgoKWW91IGNhbiBhbHNvIG92ZXJyaWRlIG1hbnVhbGx5IHRoZSB0eXBlIGFuZCBmb3JtYXQgdXNpbmcgYE92ZXJyaWRlRGF0YVR5cGUoKWAuIFRoaXMgaGFzIHRoZSBoaWdoZXN0IHByZWNlZGVuY2UuCmBgYGdvCmZpenouR2VuZXJhdG9yKCkuT3ZlcnJpZGVEYXRhVHlwZShyZWZsZWN0LlR5cGVPZigmVVVJRHY0e30pLCAic3RyaW5nIiwgInV1aWQiKQpgYGAKCiMjIyMjIE5hdGl2ZSBhbmQgaW1wb3J0ZWQgdHlwZXMgc3VwcG9ydAoKRml6eiBzdXBwb3J0cyBzb21lIG5hdGl2ZSBhbmQgaW1wb3J0ZWQgdHlwZXMuIEEgc2NoZW1hIHdpdGggYSBwcm9wZXIgdHlwZSBhbmQgZm9ybWF0IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHksIHJlbW92aW5nIHRoZSBuZWVkIGZvciBjcmVhdGluZyB5b3VyIG93biBjdXN0b20gc2NoZW1hLgoKKiBbYHRpbWUuVGltZWBdKGh0dHBzOi8vZ29sYW5nLm9yZy9wa2cvdGltZS8jVGltZSkKKiBbYHRpbWUuRHVyYXRpb25gXShodHRwczovL2dvbGFuZy5vcmcvcGtnL3RpbWUvI0R1cmF0aW9uKQoqIFtgbmV0LlVSTGBdKGh0dHBzOi8vZ29sYW5nLm9yZy9wa2cvbmV0L3VybC8jVVJMKQoqIFtgbmV0LklQYF0oaHR0cHM6Ly9nb2xhbmcub3JnL3BrZy9uZXQvI0lQKQoKTm90ZSB0aGF0LCBhY2NvcmRpbmcgdG8gdGhlIGRvYywgdGhlIGluaGVyZW50IHZlcnNpb24gb2YgdGhlIGFkZHJlc3MgaXMgYSBzZW1hbnRpYyBwcm9wZXJ0eSwgYW5kIHRodXMgY2Fubm90IGJlIGRldGVybWluZWQgYnkgRml6ei4gVGhlcmVmb3JlLCB0aGUgZm9ybWF0IHJldHVybmVkIGlzIHNpbXBseSBgaXBgLiBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IHRoZSB2ZXJzaW9uLCB5b3UgY2FuIHVzZSB0aGUgdGFncyBgZm9ybWF0OiJpcHY0ImAgb3IgYGZvcm1hdDoiaXB2NiJgLgoqIFtgdXVpZC5VVUlEYF0oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9nb2Zycy91dWlkI1VVSUQpCgojIyMjIE1hcmtkb3duCgo+IFRocm91Z2hvdXQgdGhlIHNwZWNpZmljYXRpb24gZGVzY3JpcHRpb24gZmllbGRzIGFyZSBub3RlZCBhcyBzdXBwb3J0aW5nIENvbW1vbk1hcmsgbWFya2Rvd24gZm9ybWF0dGluZy4gV2hlcmUgT3BlbkFQSSB0b29saW5nIHJlbmRlcnMgcmljaCB0ZXh0IGl0IE1VU1Qgc3VwcG9ydCwgYXQgYSBtaW5pbXVtLCBtYXJrZG93biBzeW50YXggYXMgZGVzY3JpYmVkIGJ5IENvbW1vbk1hcmsgMC4yNy4gVG9vbGluZyBNQVkgY2hvb3NlIHRvIGlnbm9yZSBzb21lIENvbW1vbk1hcmsgZmVhdHVyZXMgdG8gYWRkcmVzcyBzZWN1cml0eSBjb25jZXJucy4KWypzb3VyY2UqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMS5tZCNyaWNoLXRleHQtZm9ybWF0dGluZykKClRvIGhlbHAgeW91IHdyaXRlIG1hcmtkb3duIGRlc2NyaXB0aW9ucyBpbiBHbywgYSBzaW1wbGUgYnVpbGRlciBpcyBhdmFpbGFibGUgaW4gdGhlIHN1Yi1wYWNrYWdlIGBtYXJrZG93bmAuIFRoaXMgaXMgcXVpdGUgaGFuZHkgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggYmFja3RpY2tzIHRoYXQgYXJlIGJvdGggdXNlZCBpbiBHbyBmb3IgbGl0dGVyYWwgbXVsdGktbGluZXMgc3RyaW5ncyBhbmQgY29kZSBibG9ja3MgaW4gbWFya2Rvd24uCgojIyMjIFByb3ZpZGluZyBFeGFtcGxlcyBmb3IgQ3VzdG9tIFR5cGVzClRvIGJlIGFibGUgdG8gcHJvdmlkZSBleGFtcGxlcyBmb3IgY3VzdG9tIHR5cGVzLCB0aGV5IG11c3QgaW1wbGVtZW50IHRoZSBganNvbi5NYXJzaGFsZXJgIGFuZC9vciBgeWFtbC5NYXJzaGFsZXJgIGFuZCB0aGUgZm9sbG93aW5nIGludGVyZmFjZToKYGBgZ28KdHlwZSBFeGFtcGxlciBpbnRlcmZhY2UgewogICAgICAgUGFyc2VFeGFtcGxlKHYgc3RyaW5nKSAoaW50ZXJmYWNle30sIGVycm9yKQp9CmBgYAoKSWYgdGhlIGN1c3RvbSB0eXBlIGltcGxlbWVudHMgdGhlIGludGVyZmFjZSwgRml6eiB3aWxsIHBhc3MgdGhlIHZhbHVlIGZyb20gdGhlIGBleGFtcGxlYCB0YWcgdG8gdGhlIGBQYXJzZUV4YW1wbGVgIG1ldGhvZCBhbmQgdXNlIHRoZSByZXR1cm4gdmFsdWUgYXMgdGhlIGV4YW1wbGUgaW4gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KCiMjIEtub3duIGxpbWl0YXRpb25zCgotIFNpbmNlICpPcGVuQVBJKiBpcyBiYXNlZCBvbiB0aGUgKkpTT04gU2NoZW1hKiBzcGVjaWZpY2F0aW9uIGl0c2VsZiwgb2JqZWN0cyAoR28gbWFwcykgd2l0aCBrZXlzIHRoYXQgYXJlIG5vdCBvZiB0eXBlIGBzdHJpbmdgIGFyZSBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIGlnbm9yZWQgZHVyaW5nIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBzcGVjaWZpY2F0aW9uLgotIFJlY3Vyc2l2ZSBlbWJlZGRpbmcgb2YgdGhlIHNhbWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhdCBhbnkgbGV2ZWwgb2YgcmVjdXJzaW9uLiBUaGUgZ2VuZXJhdG9yIHdpbGwgd2FybiBhbmQgc2tpcCB0aGUgb2ZmZW5kaW5nIGZpZWxkcy4KICAgYGBgZ28KICAgdHlwZSBBIHN0cnVjdCB7CiAgICAgIEZvbyBpbnQKICAgICAgKkEgICAvLyBrbywgZW1iZWRkZWQgYW5kIHNhbWUgdHlwZSBhcyBwYXJlbnQKICAgICAgQSAqQSAvLyBvaywgbm90IGVtYmVkZGVkCiAgICAgICpCICAgLy8gb2ssIGRpZmZlcmVudCB0eXBlCiAgIH0KCiAgIHR5cGUgQiBzdHJ1Y3QgewogICAgICBCYXIgc3RyaW5nCiAgICAgICpBIC8vIGtvLCB0eXBlIEIgaXMgZW1iZWRkZWQgaW4gdHlwZSBBCiAgICAgICpDIC8vIG9rLCB0eXBlIEMgZG9lcyBub3QgY29udGFpbnMgYW4gZW1iZWRkZWQgZmllbGQgb2YgdHlwZSBBCiAgIH0KCiAgIHR5cGUgQyBzdHJ1Y3QgewogICAgICBCYXogYm9vbAogICB9CiAgIGBgYAoKIyMgRXhhbXBsZXMKCkEgc2ltcGxlIHJ1bm5hYmxlIEFQSSBpcyBhdmFpbGFibGUgaW4gYGV4YW1wbGVzL21hcmtldGAuCmBgYHNoZWxsCmdvIGJ1aWxkCi4vbWFya2V0CiMgUmV0cmlldmUgdGhlIHNwZWNpZmljYXRpb24gbWFyc2hhbGVkIGluIEpTT04uCmN1cmwgLWkgaHR0cDovL2xvY2FsaG9zdDo0MjQyL29wZW5hcGkuanNvbgpgYGAKCiMjIENyZWRpdHMKCkZpenogaXMgYmFzZWQgb24gW2dpbi1nb25pYy9naW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9naW4tZ29uaWMvZ2luKSBhbmQgdXNlIFtnYWRnZXRvL3RvbmljXShodHRwczovL2dpdGh1Yi5jb20vbG9vcGZ6L2dhZGdldG8vdHJlZS9tYXN0ZXIvdG9uaWMpLiA6aGVhcnQ6Cgo8cCBhbGlnbj0icmlnaHQiPjxpbWcgc3JjPSJodHRwczovL2ZvcnRoZWJhZGdlLmNvbS9pbWFnZXMvYmFkZ2VzL2J1aWx0LXdpdGgtc3dhZy5zdmciPjwvcD4K readmeEtag: '"be995e1a7e2f133043ba3ac7be220bf9243c64a7"' readmeLastModified: Wed, 12 Oct 2022 15:12:36 GMT repositoryId: 124098943 description: ':lemon: Gin wrapper with OpenAPI 3 spec generation' created: '2018-03-06T15:32:24Z' updated: '2024-08-29T20:22:42Z' language: Go archived: false stars: 209 watchers: 10 forks: 52 owner: wI2L logo: https://avatars.githubusercontent.com/u/6519569?v=4 license: MIT repoEtag: '"e24d8697ddc14d0bc0c1ef7d93b4c6db67eed704a69379999433bcc587184195"' repoLastModified: Thu, 29 Aug 2024 20:22:42 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/microsoft/openapi.net.odata v3: true repositoryMetadata: base64Readme: >- WyFbbnVnZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9NaWNyb3NvZnQuT3BlbkFwaS5PRGF0YS5zdmcpXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lk9wZW5BcGkuT0RhdGEvKQoKIyBDb252ZXJ0IE9EYXRhIHRvIE9wZW5BUEkuTkVUCgojIyBJbnRyb2R1Y3Rpb24KClRoZSAqKk1pY3Jvc29mdC5PcGVuQVBJLk9EYXRhLlJlYWRlcioqIGxpYnJhcnkgaGVscHMgcmVwcmVzZW50IGFuIE9EYXRhIHNlcnZpY2UgbWV0YWRhdGEgYXMgYW4gT3BlbkFwaSBkZXNjcmlwdGlvbi4gSXQgY29udmVydHMgW09EYXRhXShodHRwOi8vd3d3Lm9kYXRhLm9yZykgW0NTRExdKGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhLWNzZGwteG1sL3Y0LjAxL29kYXRhLWNzZGwteG1sLXY0LjAxLmh0bWwpLCB0aGUgWE1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBFbnRpdHkgRGF0YSBNb2RlbCAoRURNKSBkZXNjcmliaW5nIGFuIE9EYXRhIHNlcnZpY2UgaW50byBbT3BlbiBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSBiYXNlZCBvbiBbT3BlbkFQSS5ORVRdKGh0dHA6Ly9ha2EubXMvb3BlbmFwaSkgb2JqZWN0IG1vZGVsLgoKVGhlIGNvbnZlcnNpb24gaXMgYmFzZWQgb24gdGhlIG1hcHBpbmcgZG9jIGZyb20gW09BU0lTIE9EYXRhIE9wZW5BUEkgdjEuMF0oaHR0cHM6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9kb2N1bWVudC5waHA/ZG9jdW1lbnRfaWQ9NjE4NTImd2dfYWJicmV2PW9kYXRhKSBhbmQgdXNlcyB0aGUgZm9sbG93aW5nIDoKCjEuIFtDYXBhYmlsaXRpZXMgdm9jYWJ1bGFyeSBhbm5vdGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vb2FzaXMtdGNzL29kYXRhLXZvY2FidWxhcmllcy9ibG9iL21hc3Rlci92b2NhYnVsYXJpZXMvT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS54bWwpCjIuIFtBdXRob3JpemF0aW9uIHZvY2FidWxhcnkgYW5ub3RhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL29hc2lzLXRjcy9vZGF0YS12b2NhYnVsYXJpZXMvYmxvYi9tYXN0ZXIvdm9jYWJ1bGFyaWVzL09yZy5PRGF0YS5BdXRob3JpemF0aW9uLlYxLnhtbCkKMy4gW0NvcmUgdm9jYWJ1bGFyeSBhbm5vdGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vb2FzaXMtdGNzL29kYXRhLXZvY2FidWxhcmllcy9ibG9iL21hc3Rlci92b2NhYnVsYXJpZXMvT3JnLk9EYXRhLkNvcmUuVjEueG1sKQo0LiBOYXZpZ2F0aW9uIHByb3BlcnR5IHBhdGgKNS4gRWRtIG9wZXJhdGlvbiBhbmQgb3BlcmF0aW9uIGltcG9ydCBwYXRoCgojIyBPdmVydmlldwoKVGhlIGltYWdlIGJlbG93IGlzIGdlbmVyaWMgb3ZlcnZpZXcgb2YgaG93IHRoaXMgbGlicmFyeSBjYW4gY29udmVydCB0aGUgRURNIG1vZGVsIHRvIGFuIFtPcGVuQVBJLk5FVCBkb2N1bWVudF0oaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9PcGVuQVBJLk5FVC9ibG9iL21hc3Rlci9zcmMvTWljcm9zb2Z0Lk9wZW5BcGkvTW9kZWxzL09wZW5BcGlEb2N1bWVudC5jcykgb2JqZWN0LgoKIVtDb252ZXJ0IE9EYXRhIENTREwgdG8gT3BlbkFQSV0oZG9jcy9pbWFnZXMvb2RhdGEtMi1vcGVuYXBpLnBuZyAiTWFwIC8vLyBPRGF0YSBDU0RMIC0tPiBPcGVuQVBJLk5FVCIpCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgQ1NETCBhbmQgRW50aXR5IERhdGEgbW9kZWwsIHBsZWFzZSByZWZlciB0byBbaHR0cDovL3d3dy5vZGF0YS5vcmcvZG9jdW1lbnRhdGlvbl0oaHR0cDovL3d3dy5vZGF0YS5vcmcvZG9jdW1lbnRhdGlvbikuCkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBPcGVuIEFQSSBvYmplY3Qgb2YgbW9kZWwsIHBsZWFzZSByZWZlciB0byBbaHR0cDovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L09wZW5BUEkuTkVUXShodHRwOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvT3BlbkFQSS5ORVQpCgojIyBTYW1wbGUgY29kZQoKVGhlIGZvbGxvd2luZyBzYW1wbGUgY29kZSBpbGx1c3RyYXRlcyB0aGUgdXNlIG9mIHRoZSBsaWJyYXJ5CgpgYGBjc2hhcnAKcHVibGljIHN0YXRpYyB2b2lkIEdlbmVyYXRlT3BlbkFwaURlc2NyaXB0aW9uKCkKewogICAgSUVkbU1vZGVsIG1vZGVsID0gR2V0RWRtTW9kZWwoKTsKICAgIE9wZW5BcGlEb2N1bWVudCBkb2N1bWVudCA9IG1vZGVsLkNvbnZlcnRUb09wZW5BcGkoKTsKICAgIHZhciBvdXRwdXRKU09OID0gZG9jdW1lbnQuU2VyaWFsaXplQXNKc29uKE9wZW5BcGlTcGVjVmVyc2lvbi5PcGVuQXBpM18wKTsKICAgIHZhciBvdXRwdXRZQU1MID0gZG9jdW1lbnQuU2VyaWFsaXplQXNZYW1sKE9wZW5BcGlTcGVjVmVyc2lvbi5PcGVuQXBpM18wKTsKfQoKcHVibGljIHN0YXRpYyBJRWRtTW9kZWwgR2V0RWRtTW9kZWwoKQp7CiAgICAvLyBsb2FkIEVETSBtb2RlbCBoZXJlLi4uCn0KYGBgCgpPciB3aXRoIHRoZSBjb252ZXJ0IHNldHRpbmdzOgoKYGBgY3NoYXJwCnB1YmxpYyBzdGF0aWMgdm9pZCBHZW5lcmF0ZU9wZW5BcGlEZXNjcmlwdGlvbigpCnsKICAgIElFZG1Nb2RlbCBtb2RlbCA9IEdldEVkbU1vZGVsKCk7CiAgICBPcGVuQXBpQ29udmVydFNldHRpbmdzIHNldHRpbmdzID0gbmV3IE9wZW5BcGlDb252ZXJ0U2V0dGluZ3MKICAgIHsKICAgICAgICAvLyBjb25maWd1cmF0aW9uCiAgICB9OwogICAgT3BlbkFwaURvY3VtZW50IGRvY3VtZW50ID0gbW9kZWwuQ29udmVydFRvT3BlbkFwaShzZXR0aW5ncyk7CiAgICB2YXIgb3V0cHV0SlNPTiA9IGRvY3VtZW50LlNlcmlhbGl6ZUFzSnNvbihPcGVuQXBpU3BlY1ZlcnNpb24uT3BlbkFwaTNfMCk7CiAgICB2YXIgb3V0cHV0WUFNTCA9IGRvY3VtZW50LlNlcmlhbGl6ZUFzWWFtbChPcGVuQXBpU3BlY1ZlcnNpb24uT3BlbkFwaTNfMCk7Cn0KCnB1YmxpYyBzdGF0aWMgSUVkbU1vZGVsIEdldEVkbU1vZGVsKCkKewogICAgLy8gbG9hZCBFRE0gbW9kZWwgaGVyZS4uLgp9CmBgYAoKVGhlIGBHZXRFZG1Nb2RlbCgpYCBtZXRob2QgY2FuIGxvYWQgYSBtb2RlbCBpbiAzIHdheXM6CgoxLiBDcmVhdGUgdGhlIEVkbSBtb2RlbCBmcm9tIHNjcmF0Y2guIEZvciBkZXRhaWxzIHJlZmVyIFtidWlsZGluZyBhIGJhc2ljIG1vZGVsXShodHRwOi8vb2RhdGEuZ2l0aHViLmlvL29kYXRhLm5ldC8jMDItMDEtYnVpbGQtYmFzaWMtbW9kZWwpCgoyLiBMb2FkIHRoZSBFZG0gbW9kZWwgZnJvbSBDU0RMIGZpbGUuIFRoZSBmb2xsb3dpbmcgc2hvd3MgYSBjb2RlIHNhbXBsZSB0aGF0IGxvYWRzIGEgbW9kZWwgZnJvbSBhIGNzZGwgZmlsZS4KCiAgICBgYGBjc2hhcnAKICAgIHB1YmxpYyBzdGF0aWMgSUVkbU1vZGVsIEdldEVkbU1vZGVsKCkKICAgIHsKICAgICAgICBzdHJpbmcgY3NkbEZpbGVQYXRoID0gQCJjOlxjc2RsLnhtbCI7CiAgICAgICAgc3RyaW5nIGNzZGwgPSBTeXN0ZW0uSU8uRmlsZS5SZWFkQWxsVGV4dChjc2RsRmlsZVBhdGgpOwogICAgICAgIElFZG1Nb2RlbCBtb2RlbCA9IENzZGxSZWFkZXIuUGFyc2UoWEVsZW1lbnQuUGFyc2UoY3NkbCkuQ3JlYXRlUmVhZGVyKCkpOwogICAgICAgIHJldHVybiBtb2RlbDsKICAgIH0KICAgIGBgYAoKMy4gQ3JlYXRlIHRoZSBFZG0gbW9kZWwgdXNpbmcgV2ViIEFQSSBPRGF0YSBtb2RlbCBidWlsZGVyLiBGb3IgZGV0YWlscyByZWZlciB0byB0aGUgW3dlYiBhcGkgbW9kZWwgYnVpbGRlciBhcnRpY2xlXShodHRwOi8vb2RhdGEuZ2l0aHViLmlvL1dlYkFwaS8jMDItMDEtbW9kZWwtYnVpbGRlci1hYnN0cmFjdCkKCgojIyBOdWdldCBwYWNrYWdlcwoKVGhlIE9wZW5BUEkuT0RhdGEucmVhZGVyIG51Z2V0IHBhY2thZ2UgaXMgYXQ6IFtodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lk9wZW5BcGkuT0RhdGEvXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lk9wZW5BcGkuT0RhdGEpCgotLS0KCiMgQ29udHJpYnV0aW5nCgpUaGlzIHByb2plY3Qgd2VsY29tZXMgY29udHJpYnV0aW9ucyBhbmQgc3VnZ2VzdGlvbnMuICBNb3N0IGNvbnRyaWJ1dGlvbnMgcmVxdWlyZSB5b3UgdG8gYWdyZWUgdG8gYQpDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudCAoQ0xBKSBkZWNsYXJpbmcgdGhhdCB5b3UgaGF2ZSB0aGUgcmlnaHQgdG8sIGFuZCBhY3R1YWxseSBkbywgZ3JhbnQgdXMKdGhlIHJpZ2h0cyB0byB1c2UgeW91ciBjb250cmlidXRpb24uIEZvciBkZXRhaWxzLCB2aXNpdCBbaHR0cHM6Ly9jbGEubWljcm9zb2Z0LmNvbV0oaHR0cHM6Ly9jbGEubWljcm9zb2Z0LmNvbSkuCgpXaGVuIHlvdSBzdWJtaXQgYSBwdWxsIHJlcXVlc3QsIGEgQ0xBLWJvdCB3aWxsIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHdoZXRoZXIgeW91IG5lZWQgdG8gcHJvdmlkZQphIENMQSBhbmQgZGVjb3JhdGUgdGhlIFBSIGFwcHJvcHJpYXRlbHkgKGUuZy4sIGxhYmVsLCBjb21tZW50KS4gU2ltcGx5IGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zCnByb3ZpZGVkIGJ5IHRoZSBib3QuIFlvdSB3aWxsIG9ubHkgbmVlZCB0byBkbyB0aGlzIG9uY2UgYWNyb3NzIGFsbCByZXBvcyB1c2luZyBvdXIgQ0xBLgoKWW91IGNhbiBhbHNvIG9wZW4gYW4gaXNzdWUgZGlyZWN0bHkgb24gdGhpcyByZXBvIHZpYSB0aGlzIFtsaW5rXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L09wZW5BUEkuTkVULk9EYXRhL2lzc3Vlcy9uZXc/YXNzaWduZWVzPSZsYWJlbHM9JnByb2plY3RzPSZ0ZW1wbGF0ZT1idWdfcmVwb3J0Lm1kKS4KClRoaXMgcHJvamVjdCBoYXMgYWRvcHRlZCB0aGUgW01pY3Jvc29mdCBPcGVuIFNvdXJjZSBDb2RlIG9mIENvbmR1Y3RdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvKS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHRoZSBbQ29kZSBvZiBDb25kdWN0IEZBUV0oaHR0cHM6Ly9vcGVuc291cmNlLm1pY3Jvc29mdC5jb20vY29kZW9mY29uZHVjdC9mYXEvKSBvcgpjb250YWN0IFtvcGVuY29kZUBtaWNyb3NvZnQuY29tXShtYWlsdG86b3BlbmNvZGVAbWljcm9zb2Z0LmNvbSkgd2l0aCBhbnkgYWRkaXRpb25hbCBxdWVzdGlvbnMgb3IgY29tbWVudHMuCg== readmeEtag: '"575d609e040cea7f06b93f41392c45e44f54f733"' readmeLastModified: Fri, 16 Aug 2024 05:10:15 GMT repositoryId: 107572738 description: Generates OpenAPI document from OData CSDL created: '2017-10-19T16:39:13Z' updated: '2024-09-05T20:59:07Z' language: C# archived: false stars: 204 watchers: 31 forks: 62 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT repoEtag: '"b912e0077b5b88dbe7fe22e34d4846fd11ee1b1c1e8f81067697a08ccd1b9f75"' repoLastModified: Thu, 05 Sep 2024 20:59:07 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: a40464e098a746d489cfc2f5261d45e5 - source: openapi3 tags repository: https://github.com/oas-tools/oas-tools v3: true repositoryMetadata: base64Readme: >- IyBPQVMgVE9PTFMKCjxkaXYgYWxpZ249ImNlbnRlciI+CgpbIVtOUE1dKGh0dHBzOi8vbm9kZWkuY28vbnBtL0BvYXMtdG9vbHMvY29yZS5wbmc/Y29tcGFjdD10cnVlKV0oaHR0cHM6Ly9ub2RlaS5jby9ucG0vQG9hcy10b29scy9jb3JlKQoKIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQG9hcy10b29scy9jb3JlKQohW25vZGUtY3VycmVudF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ub2RlL3YvQG9hcy10b29scy9jb3JlKQohW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvQG9hcy10b29scy9jb3JlKQpbIVtOb2RlLmpzIENJXShodHRwczovL2dpdGh1Yi5jb20vb2FzLXRvb2xzL29hcy10b29scy9hY3Rpb25zL3dvcmtmbG93cy9ub2RlanMueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vb2FzLXRvb2xzL29hcy10b29scy9hY3Rpb25zL3dvcmtmbG93cy9ub2RlanMueWFtbCkKWyFbQ29udmVudGlvbmFsIENvbW1pdHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQ29udmVudGlvbmFsJTIwQ29tbWl0cy0xLjAuMC1ncmVlbi5zdmcpXShodHRwczovL2NvbnZlbnRpb25hbGNvbW1pdHMub3JnKQo8YnIvPgoKWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvb2FzLXRvb2xzL29hcy10b29scy9tYWluL2JhZGdlLnN2ZyldKGh0dHBzOi8vc255ay5pby90ZXN0L2dpdGh1Yi9vYXMtdG9vbHMvb2FzLXRvb2xzKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9vYXMtdG9vbHMvb2FzLXRvb2xzL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9vYXMtdG9vbHMvb2FzLXRvb2xzP2JyYW5jaD1tYWluKQo8L2Rpdj4KCj4gKipXYXJuaW5nKioKPgo+IE9BUyBUb29scyBwYWNrYWdlIGhhcyBiZWVuIHJlbmFtZWQgZnJvbSBgb2FzLXRvb2xzYCB0byBgQG9hcy10b29scy9jb3JlYAoKIyMgUXVpY2tzdGFydAoKSW5pdGlhbGl6ZSBhIG5ldyBPQVMgVG9vbHMgcHJvamVjdCBmcm9tIHRoZSBDTEkKCmBgYHNoCj4gbnB4IEBvYXMtdG9vbHMvY2xpIGluaXQKYGBgCgpJdCB3aWxsIHByb21wdCB0aGUgZm9sbG93aW5nIG1lbnUsIGFza2luZyB3aGljaCB0eXBlIG9mIHJlc291cmNlIHdpbGwgYmUgaW5pdGlhbGl6ZWQ6CgpgYGBzaAo/IFNlbGVjdCBhIHJlc291cmNlIHRvIGluaXRpYWxpemUgKFVzZSBhcnJvdyBrZXlzKQo+IFNlcnZlcgogIE1vZHVsZQogIERldmVsb3BtZW50IGVudmlyb25tZW50CiAgT3BlbkFQSSBGaWxlCmBgYApTZWxlY3QgYHNlcnZlcmAsIGFuc3dlciB0aGUgcXVlc3Rpb25zIGFuZCB5b3UnbGwgZ2V0IGEgcnVubmluZyBzZXJ2ZXIgd2l0aCBPQVMgVG9vbHMuCgpNb3JlIGluZm9ybWF0aW9uIGluIG91ciBbd2ViIHBhZ2VdKGh0dHBzOi8vb2FzLXRvb2xzLmdpdGh1Yi5pbykKCiMjIENvbnRyaWJ1dGluZyBndWlkZWxpbmVzCldlIGdyZWF0bHkgYXBwcmVjaWF0ZSBjb21tdW5pdHkgY29udHJpYnV0aW9ucywgdGhhdCdzIHdoeSB3ZSBoYXZlIGNyZWF0ZWQgYSBkb2N1bWVudCBzdGF0aW5nIGNsZWFyIGd1aWRlbGluZXMgZm9yIFtjb250cmlidXRpbmcgdG8gT0FTIFRvb2xzXShodHRwczovL2dpdGh1Yi5jb20vb2FzLXRvb2xzLy5naXRodWIvYmxvYi9tYWluL0NPTlRSSUJVVElORy5tZCkuCldlIGFsc28gZW5jb3VyYWdlIHlvdSB0byBwYXJ0aWNpcGF0ZSBpbiBkaXNjdXNzaW9ucyBhbmQgYWN0aXZhdGUgbm90aWZpY2F0aW9uIGZvciBvdXIgYW5ub3VuY2VtZW50cyBpbiB0aGUgb3JnYW5pemF0aW9uJ3MgW2Rpc2N1c3Npb25zIGRhc2hib2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL29yZ3Mvb2FzLXRvb2xzL2Rpc2N1c3Npb25zKQoKIyMgTGljZW5zZQoKQ29weXJpZ2h0IDIwMTgsIFtJU0EgR3JvdXBdKGh0dHA6Ly93d3cuaXNhLnVzLmVzKSwgW1VuaXZlcnNpdHkgb2YgU2V2aWxsYV0oaHR0cDovL3d3dy51cy5lcykKCkZvciB0ZWNobmljYWwgaW5xdWlyeSBwbGVhc2UgY29udGFjdCB0byBbZW5naW5lZXJpbmcgdGVhbV0oLi9leHRyYS90ZWFtLm1kKS4KClshW0lTQSBHcm91cF0oaHR0cDovL3d3dy5pc2EudXMuZXMvMi4wL2Fzc2V0cy9pbWcvdGhlbWUvbG9nbzIucG5nKV0oaHR0cDovL3d3dy5pc2EudXMuZXMpCgpMaWNlbnNlZCB1bmRlciB0aGUgKipBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAqKiAodGhlICJbTGljZW5zZV0oLi9MSUNFTlNFKSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBhcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo= readmeEtag: '"bf604680bde757c44491ca8515680c64c9e5daf4"' readmeLastModified: Tue, 07 Mar 2023 01:20:33 GMT repositoryId: 120771836 description: >- NodeJS module to manage RESTful APIs defined with OpenAPI 3.0 Specs over express servers. created: '2018-02-08T14:28:39Z' updated: '2024-08-19T06:55:38Z' language: JavaScript archived: false stars: 202 watchers: 12 forks: 60 owner: oas-tools logo: https://avatars.githubusercontent.com/u/97441539?v=4 license: Apache-2.0 repoEtag: '"d3ea3177bd252d79aead8ed3440e72b2fd226b00302d2b1bb21c28162acf38aa"' repoLastModified: Mon, 19 Aug 2024 06:55:38 GMT foundInMaster: true category: - Parsers - Server id: a30dcc4f00df91ead5cba361635a68d5 oldLocations: - https://github.com/isa-group/oas-tools - source: openapi3 tags repository: https://github.com/seriousme/fastify-openapi-glue v3: true repositoryMetadata: base64Readme: >- IyBGYXN0aWZ5IE9wZW5BcGkgR2x1ZQpbIVtDSSBzdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJpb3VzbWUvZmFzdGlmeS1vcGVuYXBpLWdsdWUvd29ya2Zsb3dzL05vZGUuanMlMjBDSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2VyaW91c21lL2Zhc3RpZnktb3BlbmFwaS1nbHVlL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0ElMjJOb2RlLmpzK0NJJTIyKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9zZXJpb3VzbWUvZmFzdGlmeS1vcGVuYXBpLWdsdWUvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvc2VyaW91c21lL2Zhc3RpZnktb3BlbmFwaS1nbHVlP2JyYW5jaD1tYXN0ZXIpClshW05QTSB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2Zhc3RpZnktb3BlbmFwaS1nbHVlLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2Zhc3RpZnktb3BlbmFwaS1nbHVlKQohW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vZmFzdGlmeS1vcGVuYXBpLWdsdWUpCgoKCkEgcGx1Z2luIGZvciBbZmFzdGlmeV0oaHR0cHM6Ly93d3cuZmFzdGlmeS5pbykgdG8gYXV0b2dlbmVyYXRlIGEgY29uZmlndXJhdGlvbiBiYXNlZCBvbiBhIFtPcGVuQXBpXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKSh2Mi92Mykgc3BlY2lmaWNhdGlvbi4KCkl0IGFpbXMgYXQgZmFjaWxpdGF0aW5nIFsiZGVzaWduIGZpcnN0IiBBUEkgZGV2ZWxvcG1lbnRdKGh0dHBzOi8vc3dhZ2dlci5pby9ibG9nL2FwaS1kZXNpZ24vZGVzaWduLWZpcnN0LW9yLWNvZGUtZmlyc3QtYXBpLWRldmVsb3BtZW50LykgaS5lLiB5b3Ugd3JpdGUgb3Igb2J0YWluIGFuIEFQSSBzcGVjaWZpY2F0aW9uIGFuZCB1c2UgdGhhdCB0byBnZW5lcmF0ZSBjb2RlLiBHaXZlbiBhbiBPcGVuQXBpIHNwZWNpZmljYXRpb24gRmFzdGlmeS1vcGVuYXBpLWdsdWUgaGFuZGxlcyB0aGUgZmFzdGlmeSBjb25maWd1cmF0aW9uIG9mIHJvdXRlcyBhbmQgdmFsaWRhdGlvbiBzY2hlbWFzIGV0Yy4gWW91IGNhbiBhbHNvIFtnZW5lcmF0ZV0oI2dlbmVyYXRvcikgeW91ciBvd24gcHJvamVjdCBmcm9tIGEgT3BlbkFwaSBzcGVjaWZpY2F0aW9uLgoKPGEgbmFtZT0idXBncmFkaW5nIj48L2E+CiMjIFVwZ3JhZGluZwoKSWYgeW91IGFyZSB1cGdyYWRpbmcgZnJvbSBhIHByZXZpb3VzIG1ham9yIHZlcnNpb24gb2YgYGZhc3RpZnktb3BlbmFwaS1nbHVlYCB0aGVuIHBsZWFzZSBjaGVjayBvdXQgW1VQR1JBRElORy5tZF0oVVBHUkFESU5HLm1kKS4KCjxhIG5hbWU9Imluc3RhbGwiPjwvYT4KIyMgSW5zdGFsbCAKYGBgCm5wbSBpIGZhc3RpZnktb3BlbmFwaS1nbHVlIC0tc2F2ZQpgYGAKPGEgbmFtZT0icGx1Z2luIj48L2E+CiMjIFBsdWdpbgo8YSBuYW1lPSJwbHVnaW5Vc2FnZSI+PC9hPgojIyMgVXNhZ2UKCkFkZCB0aGUgcGx1Z2luIHRvIHlvdXIgcHJvamVjdCB3aXRoIGByZWdpc3RlcmAgYW5kIHBhc3MgaXQgc29tZSBiYXNpYyBvcHRpb25zIGFuZCB5b3UgYXJlIGRvbmUgIQpgYGBqYXZhc2NyaXB0CmltcG9ydCBvcGVuYXBpR2x1ZSBmcm9tICJmYXN0aWZ5LW9wZW5hcGktZ2x1ZSI7CmltcG9ydCB7IFNlcnZpY2UgfSBmcm9tICIuL3NlcnZpY2UuanMiOwppbXBvcnQgeyBTZWN1cml0eSB9IGZyb20gIi4vc2VjdXJpdHkuanMiOwoKY29uc3Qgb3B0aW9ucyA9IHsKICBzcGVjaWZpY2F0aW9uOiBgJHtjdXJyZW50RGlyfS9wZXRzdG9yZS1vcGVuYXBpLnYzLmpzb25gLAogIHNlcnZpY2VIYW5kbGVyczogbmV3IFNlcnZpY2UoKSwKICBzZWN1cml0eUhhbmRsZXJzOiBuZXcgU2VjdXJpdHkoKSwKICBwcmVmaXg6ICJ2MSIsCn07CgoKZmFzdGlmeS5yZWdpc3RlcihvcGVuYXBpR2x1ZSwgb3B0aW9ucyk7CmBgYAoKQWxsIHNjaGVtYSBhbmQgcm91dGVzIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgT3BlbkFwaSBzcGVjaWZpY2F0aW9uIGxpc3RlZCBpbiB0aGUgb3B0aW9ucy4gTm8gbmVlZCB0byBzcGVjaWZ5IHRoZW0gaW4geW91ciBjb2RlLiAKPGEgbmFtZT0icGx1Z2luT3B0aW9ucyI+PC9hPgojIyMgT3B0aW9ucwogIC0gYHNwZWNpZmljYXRpb25gOiB0aGlzIGNhbiBiZSBhIEpTT04gb2JqZWN0LCBvciB0aGUgbmFtZSBvZiBhIEpTT04gb3IgWUFNTCBmaWxlIGNvbnRhaW5pbmcgYSB2YWxpZCBPcGVuQXBpKHYyL3YzKSBmaWxlIAogIC0gYHNlcnZpY2VIYW5kbGVyc2A6IHRoaXMgY2FuIGJlIGEgamF2YXNjcmlwdCBvYmplY3Qgb3IgY2xhc3MgaW5zdGFuY2UuIFNlZSB0aGUgW3NlcnZpY2VIYW5kbGVycyBkb2N1bWVudGF0aW9uXShkb2NzL3NlcnZpY2VIYW5kbGVycy5tZCkgZm9yIG1vcmUgZGV0YWlscy4KICAtIGBzZWN1cml0eUhhbmRsZXJzYDogdGhpcyBjYW4gYmUgYSBqYXZhc2NyaXB0IG9iamVjdCBvciBjbGFzcyBpbnN0YW5jZS4gU2VlIHRoZSBbc2VjdXJpdHlIYW5kbGVycyBkb2N1bWVudGF0aW9uXShkb2NzL3NlY3VyaXR5SGFuZGxlcnMubWQpIGZvciBtb3JlIGRldGFpbHMuCiAgLSBgcHJlZml4YDogdGhpcyBpcyBhIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIHByZWZpeCB0aGUgcm91dGVzLCBpdCBpcyBwYXNzZWQgdmVyYmF0aW0gdG8gZmFzdGlmeS4gRS5nLiBpZiB0aGUgcGF0aCB0byB5b3VyIG9wZXJhdGlvbiBpcyBzcGVjaWZpZWQgYXMgIi9vcGVyYXRpb24iIHRoZW4gYSBwcmVmaXggb2YgInYxIiB3aWxsIG1ha2UgaXQgYXZhaWxhYmxlIGF0ICIvdjEvb3BlcmF0aW9uIi4gVGhpcyBzZXR0aW5nIG92ZXJydWxlcyBhbnkgImJhc2VQYXRoIiBzZXR0aW5nIGluIGEgdjIgc3BlY2lmaWNhdGlvbi4gU2VlIHRoZSBbc2VydmVycyBkb2N1bWVudGF0aW9uXShkb2NzL3NlcnZlcnMubWQpIGZvciBtb3JlIGRldGFpbHMgb24gdXNpbmcgcHJlZml4IHdpdGggYSB2MyBzcGVjaWZpY2F0aW9uLgogLSBgb3BlcmF0aW9uUmVzb2x2ZXJgOiBhIGN1c3RvbSBvcGVyYXRpb24gcmVzb2x2ZXIgZnVuY3Rpb24sIGAob3BlcmF0aW9uSWQsIG1ldGhvZCwgb3BlbmFwaVBhdGgpID0+IGhhbmRsZXIgfCByb3V0ZU9wdGlvbnNgIHdoZXJlIG1ldGhvZCBpcyB0aGUgdXBwZXJjYXNlIEhUVFAgbWV0aG9kIChlLmcuICJHRVQiKSBhbmQgb3BlbmFwaVBhdGggaXMgdGhlIHBhdGggdGFrZW4gZnJvbSB0aGUgc3BlY2lmaWNhdGlvbiB3aXRob3V0IHByZWZpeCAoZS5nLiAiL29wZXJhdGlvbiIpLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgc2VydmljZUhhbmRsZXJzYC4gU2VlIHRoZSBbb3BlcmF0aW9uUmVzb2x2ZXIgZG9jdW1lbnRhdGlvbl0oZG9jcy9vcGVyYXRpb25SZXNvbHZlci5tZCkgZm9yIG1vcmUgZGV0YWlscy4KIC0gYGFkZEVtcHR5U2NoZW1hYDogYSBib29sZWFuIHRoYXQgYWxsb3dzIGVtcHR5IGJvZGllcyBzY2hlbWFzIHRvIGJlIHBhc3NlZCB0aHJvdWdoLiBUaGlzIG1pZ2h0IGJlIHVzZWZ1bCBmb3Igc3RhdHVzIGNvZGVzIGxpa2UgMjA0IG9yIDMwNC4gRGVmYXVsdCBpcyBgZmFsc2VgLgoKYHNwZWNpZmljYXRpb25gIGFuZCBlaXRoZXIgYHNlcnZpY2VIYW5kbGVyc2Agb3IgYG9wZXJhdGlvblJlc29sdmVyYCBhcmUgbWFuZGF0b3J5LCBgc2VjdXJpdHlIYW5kbGVyc2AgYW5kIGBwcmVmaXhgIGFyZSBvcHRpb25hbC4KU2VlIHRoZSBbZXhhbXBsZXNdKCNleGFtcGxlcykgc2VjdGlvbiBmb3IgYSBkZW1vLgoKUGxlYXNlIGJlIGF3YXJlIHRoYXQgYHRoaXNgIHdpbGwgcmVmZXIgdG8geW91ciBzZXJ2aWNlSGFuZGxlcnMgb2JqZWN0IG9yIHlvdXIgc2VjdXJpdHlIYW5kbGVyIG9iamVjdCBhbmQgbm90IHRvIEZhc3RpZnkgYXMgZXhwbGFpbmVkIGluIHRoZSBbYmluZGluZ3MgZG9jdW1lbnRhdGlvbl0oZG9jcy9iaW5kaW5ncy5tZCkKCjxhIG5hbWU9InBsdWdpbkFwaUV4dGVuc2lvbnMiPjwvYT4KIyMjIE9wZW5BUEkgZXh0ZW5zaW9ucwpUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHN1cHBvcnRzIFtleHRlbmRpbmcgYW4gQVBJIHNwZWNdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL2xhdGVzdC5odG1sI3NwZWNpZmljYXRpb24tZXh0ZW5zaW9ucykgdG8gZGVzY3JpYmUgZXh0cmEgZnVuY3Rpb25hbGl0eSB0aGF0IGlzbid0IGNvdmVyZWQgYnkgdGhlIG9mZmljaWFsIHNwZWNpZmljYXRpb24uIEV4dGVuc2lvbnMgc3RhcnQgd2l0aCBgeC1gIChlLmcuLCBgeC1teWFwcC1sb2dvYCkgYW5kIGNhbiBjb250YWluIGEgcHJpbWl0aXZlLCBhbiBhcnJheSwgYW4gb2JqZWN0LCBvciBgbnVsbGAuCgpUaGUgZm9sbG93aW5nIGV4dGVuc2lvbnMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBwbHVnaW46Ci0gYHgtZmFzdGlmeS1jb25maWdgIChvYmplY3QpOiBhbnkgcHJvcGVydGllcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBgcm91dGVPcHRpb25zLmNvbmZpZ2AgcHJvcGVydHkgb2YgdGhlIEZhc3RpZnkgcm91dGUuCgogIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudGVkIHRvIHVzZSB0aGUgZmFzdGlmeS1yYXctYm9keSBwbHVnaW4gdG8gY29tcHV0ZSBhIGNoZWNrc3VtIG9mIHRoZSByZXF1ZXN0IGJvZHksIHlvdSBjb3VsZCBhZGQgdGhlIGZvbGxvd2luZyBleHRlbnNpb24gdG8geW91ciBPcGVuQVBJIHNwZWMgdG8gc2lnbmFsIHRoZSBwbHVnaW4gdG8gc3BlY2lhbGx5IGhhbmRsZSB0aGlzIHJvdXRlOgoKICBgYGB5YW1sCiAgcGF0aHM6CiAgICAvd2ViaG9va3M6CiAgICAgIHBvc3Q6CiAgICAgICAgb3BlcmF0aW9uSWQ6IHByb2Nlc3NXZWJob29rCiAgICAgICAgeC1mYXN0aWZ5LWNvbmZpZzoKICAgICAgICAgIHJhd0JvZHk6IHRydWUKICAgICAgICByZXNwb25zZXM6CiAgICAgICAgICAyMDQ6CiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBXZWJob29rIHByb2Nlc3NlZCBzdWNjZXNzZnVsbHkKICBgYGAKCi0gYHgtbm8tZmFzdGlmeS1jb25maWdgICh0cnVlKTogdGhpcyB3aWxsIGlnbm9yZSB0aGlzIHNwZWNpZmljIHJvdXRlIGFzIGlmIGl0IHdhcyBub3QgcHJlc2VudCBpbiB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbjoKCmBgYHlhbWwKICBwYXRoczoKICAgIC93ZWJob29rczoKICAgICAgcG9zdDoKICAgICAgICBvcGVyYXRpb25JZDogcHJvY2Vzc1dlYmhvb2sKICAgICAgICB4LW5vLWZhc3RpZnktY29uZmlnOiB0cnVlCiAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgMjA0OgogICAgICAgICAgICBkZXNjcmlwdGlvbjogV2ViaG9vayBwcm9jZXNzZWQgc3VjY2Vzc2Z1bGx5CiAgYGBgCgpZb3UgY2FuIGFsc28gc2V0IGN1c3RvbSBPcGVuQVBJIGV4dGVuc2lvbnMgKGUuZy4sIGB4LW15YXBwLWZvb2ApIGZvciB1c2Ugd2l0aGluIHlvdXIgYXBwJ3MgaW1wbGVtZW50YXRpb24uIFRoZXNlIHByb3BlcnRpZXMgYXJlIHBhc3NlZCB0aHJvdWdoIHVubW9kaWZpZWQgdG8gdGhlIEZhc3RpZnkgcm91dGUgb24gYHtyZXEscmVwbHl9LnJvdXRlT3B0aW9ucy5jb25maWdgLiBFeHRlbnNpb25zIHNwZWNpZmllZCBvbiBhIHNjaGVtYSBhcmUgYWxzbyBhY2Nlc3NpYmxlIChlLmcuLCBgcm91dGVPcHRpb25zLnNjaGVtYS5ib2R5YCBvciBgcm91dGVPcHRpb25zLnNjaGVtYS5yZXNwb25zZXNbPHN0YXR1c0NvZGU+XWApLgoKPGEgbmFtZT0iZ2VuZXJhdG9yIj48L2E+CiMjIEdlbmVyYXRvcgoKVG8gbWFrZSBsaWZlIGV2ZW4gbW9yZSBlYXN5IHRoZXJlIGlzIHRoZSBgb3BlbmFwaS1nbHVlYCBjbGkuIFRoZSBgb3BlbmFwaS1nbHVlYCBjbGkgdGFrZXMgYSB2YWxpZCBPcGVuQXBpICh2Mi92MykgZmlsZSAoSlNPTiBvciBZQU1MKSBhbmQgZ2VuZXJhdGVzIGEgcHJvamVjdCBpbmNsdWRpbmcgYSBmYXN0aWZ5IHBsdWdpbiB0aGF0IHlvdSBjYW4gdXNlIG9uIGFueSBmYXN0aWZ5IHNlcnZlciwgYSBzdHViIG9mIHRoZSBzZXJ2aWNlSGFuZGxlcnMgY2xhc3MgYW5kIGEgc2tlbGV0b24gb2YgYSB0ZXN0IGhhcm5lc3MgdG8gdGVzdCB0aGUgcGx1Z2luLiAKCjxhIG5hbWU9ImdlbmVyYXRvclVzYWdlIj48L2E+CiMjIyBVc2FnZQpgYGAKICBvcGVuYXBpLWdsdWUgW29wdGlvbnNdIDxPcGVuQXBpIHNwZWNpZmljYXRpb24+CmBgYApvciBpZiB5b3UgZG9uJ3QgaGF2ZSBgb3BlbmFwaS1nbHVlYCBpbnN0YWxsZWQ6CmBgYAogIG5weCBnaXRodWI6c2VyaW91c21lL2Zhc3RpZnktb3BlbmFwaS1nbHVlIDxPcGVuQXBpIHNwZWNpZmljYXRpb24+CmBgYApUaGlzIHdpbGwgZ2VuZXJhdGUgYSBwcm9qZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBPcGVuQXBpIHNwZWNpZmljYXRpb24uCkFueSBleGlzdGluZyBmaWxlcyBpbiB0aGUgcHJvamVjdCBmb2xkZXIgd2lsbCBiZSBvdmVyd3JpdHRlbiEKU2VlIHRoZSBbZ2VuZXJhdG9yIGV4YW1wbGVzXSgjZXhhbXBsZXMpIHNlY3Rpb24gZm9yIGEgZGVtby4KPGEgbmFtZT0iZ2VuZXJhdG9yT3B0aW9ucyI+PC9hPgojIyMgT3B0aW9ucwpgYGAKCiAgLXAgPG5hbWU+ICAgICAgICAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0IHRvIGdlbmVyYXRlCiAgLS1wcm9qZWN0TmFtZT08bmFtZT4gICAgICAgIFtkZWZhdWx0OiBnZW5lcmF0ZWQtamF2YXNjcmlwdC1wcm9qZWN0XQoKICAtYiA8ZGlyPiAtLWJhc2VEaXI9PGRpcj4gICAgRGlyZWN0b3J5IHRvIGdlbmVyYXRlIHRoZSBwcm9qZWN0IGluLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGRpcmVjdG9yeSBtdXN0IGFscmVhZHkgZXhpc3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0OiAiLiJdCgpUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIG9ubHkgdXNlZnVsbCBmb3IgdGVzdGluZyB0aGUgb3BlbmFwaS1nbHVlIHBsdWdpbjoKICAtYyAtLWNoZWNrc3VtT25seSAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgdGhlIHByb2plY3Qgb24gZGlzayBidXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrc3VtcyBvbmx5LgogIC1sIC0tbG9jYWxQbHVnaW4gICAgICAgICAgICBVc2UgYSBsb2NhbCBwYXRoIHRvIHRoZSBwbHVnaW4uCmBgYApTZWUgdGhlIFtnZW5lcmF0b3IgZXhhbXBsZV0oI2dlbmVyYXRvckV4YW1wbGVzKSBzZWN0aW9uIGZvciBhIGRlbW8uCgoKPGEgbmFtZT0iZXhhbXBsZXMiPjwvYT4KIyMgRXhhbXBsZXMKQ2xvbmUgdGhpcyByZXBvc2l0b3J5IGFuZCBydW4gYG5wbSBpYCAKCjxhIG5hbWU9InBsdWdpbkV4YW1wbGVzIj48L2E+CiMjIyBQbHVnaW4KRXhlY3V0aW5nIGBucG0gc3RhcnRgIHdpbGwgc3RhcnQgZmFzdGlmeSBvbiBsb2NhbGhvc3QgcG9ydCAzMDAwIHdpdGggdGhlCnJvdXRlcyBleHRyYWN0ZWQgZnJvbSB0aGUgW3BldHN0b3JlIGV4YW1wbGVdKGV4YW1wbGVzL3BldHN0b3JlL3BldHN0b3JlLW9wZW5hcGkudjMuanNvbikgYW5kIHRoZSBbYWNjb21wYW55aW5nIHNlcnZpY2VIYW5kbGVycyBkZWZpbml0aW9uXShleGFtcGxlcy9wZXRzdG9yZS9zZXJ2aWNlLmpzKQoKKiBodHRwOi8vbG9jYWxob3N0OjMwMDAvdjIvcGV0LzI0IHdpbGwgcmV0dXJuIGEgcGV0IGFzIHNwZWNpZmllZCBpbiBzZXJ2aWNlLmpzCiogaHR0cDovL2xvY2FsaG9zdDozMDAwL3YyL3BldC9teVBldCB3aWxsIHJldHVybiBhIGZhc3RpZnkgdmFsaWRhdGlvbiBlcnJvcjoKCmBgYGpzb24KewogICJzdGF0dXNDb2RlIjogNDAwLAogICJlcnJvciI6ICJCYWQgUmVxdWVzdCIsCiAgIm1lc3NhZ2UiOiAicGFyYW1zLnBldElkIHNob3VsZCBiZSBpbnRlZ2VyIgp9CmBgYAoKKiBodHRwOi8vbG9jYWxob3N0OjMwMDAvdjIvcGV0L2ZpbmRCeVN0YXR1cz9zdGF0dXM9YXZhaWxhYmxlJnN0YXR1cz1wZW5kaW5nIHdpbGwgcmV0dXJuCiAgdGhlIGZvbGxvd2luZyBlcnJvcjoKCmBgYGpzb24KewogICJzdGF0dXNDb2RlIjogNTAwLAogICJlcnJvciI6ICJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiLAogICJtZXNzYWdlIjogIk9wZXJhdGlvbiBmaW5kUGV0c0J5U3RhdHVzIG5vdCBpbXBsZW1lbnRlZCIKfQpgYGAKCiogaHR0cDovL2xvY2FsaG9zdDozMDAwL3YyL3BldC8wIHdpbGwgcmV0dXJuIHRoZSBmb2xsb3dpbmcgZXJyb3I6CgpgYGBqc29uCnsKICAic3RhdHVzQ29kZSI6IDUwMCwKICAiZXJyb3IiOiAiSW50ZXJuYWwgU2VydmVyIEVycm9yIiwKICAibWVzc2FnZSI6IlwibmFtZVwiIGlzIHJlcXVpcmVkISIKfQpgYGAKCmFzIHRoZSBwZXQgcmV0dXJuZWQgYnkgc2VydmljZS5qcyBkb2VzIG5vdCBtYXRjaCB0aGUgcmVzcG9uc2Ugc2NoZW1hLgoKPGEgbmFtZT0iZ2VuZXJhdG9yRXhhbXBsZXMiPjwvYT4KIyMjIEdlbmVyYXRvcgpUaGUgZm9sZGVyIFtleGFtcGxlcy9nZW5lcmF0ZWQtamF2YXNjcmlwdC1wcm9qZWN0XShleGFtcGxlcy9nZW5lcmF0ZWQtamF2YXNjcmlwdC1wcm9qZWN0KSBjb250YWlucyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYG9wZW5hcGktZ2x1ZSAtbCAtLWJhc2VEaXI9ZXhhbXBsZXMgZXhhbXBsZXMvcGV0c3RvcmUvcGV0c3RvcmUtc3dhZ2dlci52Mi55YW1sYC4gVGhlIGdlbmVyYXRlZCBjb2RlIGNhbiBiZSBzdGFydGVkIHVzaW5nIGBucG0gc3RhcnRgIGluIGBleGFtcGxlcy9nZW5lcmF0ZWQtamF2YXNjcmlwdC1wcm9qZWN0YCAoeW91IHdpbGwgbmVlZCB0byBydW4gYG5wbSBpYCBpbiB0aGUgZ2VuZXJhdGVkIGZvbGRlciBmaXJzdCkKPGEgbmFtZT0iTm90ZXMiPjwvYT4KIyMgTm90ZXMKLSB0aGUgcGx1Z2luIGlnbm9yZXMgaW5mb3JtYXRpb24gaW4gYSB2MyBzcGVjaWZpY2F0aW9uIHVuZGVyIGBzZXJ2ZXIvdXJsYCBhcyB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSB2YWx1ZXMgaGVyZSwgdXNlIHRoZSBgcHJlZml4YCBbb3B0aW9uXSgjcGx1Z2luT3B0aW9ucykgaWYgeW91IG5lZWQgdG8gcHJlZml4IHlvdXIgcm91dGVzLiBTZWUgdGhlIFtzZXJ2ZXJzIGRvY3VtZW50YXRpb25dKGRvY3Mvc2VydmVycy5tZCkgZm9yIG1vcmUgZGV0YWlscy4KLSBmYXN0aWZ5IG9ubHkgc3VwcG9ydHMgYGFwcGxpY2F0aW9uL2pzb25gIGFuZCBgdGV4dC9wbGFpbmAgb3V0IG9mIHRoZSBib3guIFRoZSBkZWZhdWx0IGNoYXJzZXQgaXMgYHV0Zi04YC4gIElmIHlvdSBuZWVkIHRvIHN1cHBvcnQgZGlmZmVyZW50IGNvbnRlbnQgdHlwZXMsIHlvdSBjYW4gdXNlIHRoZSBmYXN0aWZ5IGBhZGRDb250ZW50VHlwZVBhcnNlcmAgQVBJLgotIGZhc3RpZnkgd2lsbCBieSBkZWZhdWx0IGNvZXJjZSB0eXBlcywgZS5nIHdoZW4geW91IGV4cGVjdCBhIG51bWJlciBhIHN0cmluZyBsaWtlIGAiMSJgIHdpbGwgYWxzbyBwYXNzIHZhbGlkYXRpb24sIHRoaXMgY2FuIGJlIHJlY29uZmlndXJlZCwgc2VlIFtWYWxpZGF0aW9uIGFuZCBTZXJpYWxpemF0aW9uXShodHRwczovL3d3dy5mYXN0aWZ5LmlvL2RvY3MvbGF0ZXN0L1JlZmVyZW5jZS9WYWxpZGF0aW9uLWFuZC1TZXJpYWxpemF0aW9uLykuCi0gZmFzdGlmeSBvbmx5IHN1cHBvcnRzIG9uZSBzY2hlbWEgcGVyIHJvdXRlLiBTbyB3aGlsZSB0aGUgdjMgc3RhbmRhcmQgYWxsb3dzIGZvciBtdWx0aXBsZSBjb250ZW50IHR5cGVzIHBlciByb3V0ZSwgZWFjaCB3aXRoIHRoZWlyIG93biBzY2hlbWEgdGhpcyBpcyBjdXJyZW50bHkgbm90IGdvaW5nIHRvIHdvcmsgd2l0aCBmYXN0aWZ5LiBQb3RlbnRpYWwgd29ya2Fyb3VuZHMgaW5jbHVkZSBhIGN1c3RvbSBjb250ZW50IHR5cGUgcGFyc2VyIGFuZCBtZXJnaW5nIHNjaGVtYXMgdXBmcm9udCB1c2luZyBKU09OIHNjaGVtYSBgb25lT2ZgLgotIHRoZSBwbHVnaW4gYWltcyB0byBmb2xsb3cgZmFzdGlmeSBhbmQgZG9lcyBub3QgY29tcGVuc2F0ZSBmb3IgZmVhdHVyZXMgdGhhdCBhcmUgcG9zc2libGUgYWNjb3JkaW5nIHRvIHRoZSBPcGVuQXBpIHNwZWNpZmljYXRpb24gYnV0IG5vdCBwb3NzaWJsZSBpbiBzdGFuZGFyZCBmYXN0aWZ5ICh3aXRob3V0IHBsdWdpbnMpLiBUaGlzIHdpbGwga2VlcCB0aGUgcGx1Z2luIGxpZ2h0d2VpZ3RoIGFuZCBtYWludGFpbmFibGUuIEUuZy4gRmFzdGlmeSBkb2VzIG5vdCBzdXBwb3J0IGNvb2tpZSB2YWxpZGF0aW9uLCB3aGlsZSBPcGVuQXBpIHYzIGRvZXMuCi0gaW4gc29tZSBjYXNlcyBob3dldmVyLCB0aGUgcGx1Z2luIG1heSBiZSBhYmxlIHRvIHByb3ZpZGUgeW91IHdpdGggZGF0YSB3aGljaCBjb3VsZCBiZSB1c2VkIHRvIGVuaGFuY2UgT3BlbkFwaSBzdXBwb3J0IHdpdGhpbiB5b3VyIG93biBGYXN0aWZ5IGFwcGxpY2F0aW9uLiBIZXJlIGlzIG9uZSBwb3NzaWJsZSB3YXkgdG8gcGVyZm9ybSBbY29va2llIHZhbGlkYXRpb25dKGRvY3MvY29va2llVmFsaWRhdGlvbkhvd1RvLm1kKSAgeW91cnNlbGYuCi0gaWYgeW91IGhhdmUgc3BlY2lhbCBuZWVkcyBvbiBxdWVyeXN0cmluZyBoYW5kbGluZyAoZS5nLiBhcnJheXMsIG9iamVjdHMgZXRjKSB0aGVuIGZhc3RpZnkgc3VwcG9ydHMgYSBbY3VzdG9tIHF1ZXJ5c3RyaW5nIHBhcnNlcl0oaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9kb2NzL2xhdGVzdC9TZXJ2ZXIvI3F1ZXJ5c3RyaW5ncGFyc2VyKS4gWW91IG1pZ2h0IG5lZWQgdG8gcGFzcyB0aGUgQUpWIG9wdGlvbiBgY29lcmNlVHlwZXM6ICdhcnJheSdgIGFzIGFuIG9wdGlvbiB0byBGYXN0aWZ5LgotIHRoZSBwbHVnaW4gaXMgYW4gRUNNQXNjcmlwdCBNb2R1bGUgKGFrYSBFU00pLiBJZiB5b3UgYXJlIHVzaW5nIFR5cGVzY3JpcHQgdGhlbiBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSByZWFkOiBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9lc20tbm9kZS5odG1sIHRvIGF2b2lkIGFueSBjb25mdXNpb24uCi0gSWYgeW91IHdhbnQgdG8gdXNlIGEgc3BlY2lmaWNhdGlvbiB0aGF0IGNvbnNpc3RzIG9mIG11bHRpcGxlIGZpbGVzIHRoZW4gcGxlYXNlIGNoZWNrIG91dCB0aGUgcGFnZSBvbiBbc3Vic2NoZW1hc10oZG9jcy9zdWJTY2hlbWFzLm1kKSAKLSBGYXN0aWZ5IHVzZXMgQUpWIHN0cmljdCBtb2RlIGluIHZhbGlkYXRpbmcgc2NoZW1hcy4gSWYgeW91IGdldCBhbiBlcnJvciBsaWtlIGAuLi4uZHVlIHRvIGVycm9yIHN0cmljdCBtb2RlOiB1bmtub3duIGtleXdvcmQ6ICIuLi4iYCB0aGVuIHBsZWFzZSBjaGVjayBvdXQgdGhlIHBhZ2Ugb24gW0FKViBzdHJpY3QgbW9kZV0oZG9jcy9BSlZzdHJpY3RNb2RlLm1kKSAKPGEgbmFtZT0iQ29udHJpYnV0aW5nIj48L2E+CiMjIENvbnRyaWJ1dGluZwotIGNvbnRyaWJ1dGlvbnMgYXJlIGFsd2F5cyB3ZWxjb21lLiAKLSBpZiB5b3UgcGxhbiBvbiBzdWJtaXR0aW5nIG5ldyBmZWF0dXJlcyB0aGVuIHBsZWFzZSBjcmVhdGUgYW4gaXNzdWUgZmlyc3QgdG8gZGlzY3VzcyBhbmQgYXZvaWQgZGlzYXBwb2ludG1lbnRzLgotIG1haW4gZGV2ZWxvcG1lbnQgaXMgZG9uZSBvbiB0aGUgbWFzdGVyIGJyYW5jaCB0aGVyZWZvcmUgUFJzIHRvIHRoYXQgYnJhbmNoIGFyZSBwcmVmZXJyZWQuCi0gcGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBydW4gYG5wbSB0ZXN0YCBiZWZvcmUgeW91IHN1Ym1pdCBhIFBSLgo8YSBuYW1lPSJGYXN0aWZ5LXN3YWdnZXJnZW4iPjwvYT4KIyMgRmFzdGlmeS1zd2FnZ2VyZ2VuCkZhc3RpZnktb3BlbmFwaS1nbHVlIGlzIHRoZSBzdWNjZXNzb3IgdG8gdGhlIG5vdyBkZXByZWNhdGVkIFtmYXN0aWZ5LXN3YWdnZXJnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJpb3VzbWUvZmFzdGlmeS1zd2FnZ2VyZ2VuKSBwcm9qZWN0LgpNYWluIGRpZmZlcmVuY2UgaXMgdGhhdCBpdDogCi0gYWltcyB0byBzdXBwb3J0IE9wZW5BcGkgYW5kIG5vdCBqdXN0IFN3YWdnZXIgVjIgKGhlbmNlIHRoZSBuYW1lIGNoYW5nZSkKLSBkb2VzIG5vdCBpbmNsdWRlIGZhc3RpZnktc3dhZ2dlciBzdXBwb3J0IGFueW1vcmUuIElmIHlvdSBuZWVkIHRvIHNob3cgdGhlIHN3YWdnZXIgVUkgeW91IGNhbiBpbmNsdWRlIGl0IHlvdXJzZWxmLiBSZW1vdmluZyB0aGUgc3dhZ2dlciBVSSBjbGVhcnMgdXAgYSBudW1iZXIgb2YgZGVwZW5kZW5jaWVzLgo8YSBuYW1lPSJsaWNlbnNlIj48L2E+CiMgTGljZW5zZQpMaWNlbnNlZCB1bmRlciBbTUlUXShMSUNFTlNFLnR4dCkK readmeEtag: '"c55cf58183fb224818fa1d45297f3d98a04628ae"' readmeLastModified: Wed, 07 Aug 2024 11:57:38 GMT repositoryId: 139273011 description: >- A plugin for the Fastify webserver to autogenerate a Fastify configuration based on a OpenApi(v2/v3) specification. created: '2018-06-30T19:02:58Z' updated: '2024-09-02T08:20:45Z' language: JavaScript archived: false stars: 201 watchers: 6 forks: 34 owner: seriousme logo: https://avatars.githubusercontent.com/u/3322396?v=4 license: MIT repoEtag: '"9ceeb80d7f6208f47fed5dbbc20c482879a6e2317e248a52a4e9dbb1ea5cc77c"' repoLastModified: Mon, 02 Sep 2024 08:20:45 GMT foundInMaster: true category: - Data Validators - Parsers id: c0241df58ca59d894f729b9091502762 - source: openapi3 tags name: swagger-node-codegen homepage: https://github.com/fmvilas/swagger-node-codegen language: Node.js source_description: >- Generates a Node.js/express server, but also has a template engine for creating any templates needed. category: - Code Generators - Parsers repository: https://github.com/fmvilas/swagger-node-codegen v3: true repositoryMetadata: base64Readme: >- PGgxPlRISVMgUEFDS0FHRSBJUyBOT1QgTUFJTlRBSU5FRCBBTllNT1JFLiBJRiBZT1UgV0FOVCBUTyBNQUlOVEFJTiBJVCBEUk9QIE1FIEEgTElORSBBVCBmcmFuLm1lbmRlelthdF1oZXkuY29tLjwvaDE+Cgo8cCBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0ibG9nby5wbmciPjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CiAgPHN0cm9uZz5PcGVuQVBJIE5vZGUuanM8YnI+Q29kZSBHZW5lcmF0b3I8L3N0cm9uZz4KPC9wPgo8YnI+PGJyPgpVc2UgeW91ciBBUEkgT3BlbkFQSSAzLngvU3dhZ2dlciAyIGRlZmluaXRpb24gdG8gZ2VuZXJhdGUgTm9kZS5qcyBFUzctY29tcGxpYW50IGNvZGUgZm9yIHlvdXIgQVBJLgoKVGhlIGdlbmVyYXRlZCBjb2RlIGZlYXR1cmVzOgoKKiBFUzcKKiBFU0xpbnQKKiBZQU1MIGNvbmZpZyBmaWxlCiogRXhwcmVzcwoqIE5vIHRyYW5zcGlsaW5nCgojIyBJbnN0YWxsCgpUbyB1c2UgaXQgZnJvbSB0aGUgQ0xJOgoKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBzd2FnZ2VyLW5vZGUtY29kZWdlbgpgYGAKClRvIHVzZSBpdCBhcyBhIG1vZHVsZSBpbiB5b3VyIHByb2plY3Q6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIC0tc2F2ZSBzd2FnZ2VyLW5vZGUtY29kZWdlbgpgYGAKCiMjIFJlcXVpcmVtZW50cwoKKiBOb2RlLmpzIHY3LjYrCgojIyBVc2FnZQoKIyMjIEZyb20gdGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgKENMSSkKCmBgYGJhc2gKICBVc2FnZTogc25jIFtvcHRpb25zXSA8c3dhZ2dlckZpbGU+CgoKICBPcHRpb25zOgoKICAgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgICBvdXRwdXQgdGhlIHZlcnNpb24gbnVtYmVyCiAgICAtbywgLS1vdXRwdXQgPG91dHB1dERpcj4gICAgICAgZGlyZWN0b3J5IHdoZXJlIHRvIHB1dCB0aGUgZ2VuZXJhdGVkIGZpbGVzIChkZWZhdWx0cyB0byBjdXJyZW50IGRpcmVjdG9yeSkKICAgIC10LCAtLXRlbXBsYXRlcyA8dGVtcGxhdGVEaXI+ICBkaXJlY3Rvcnkgd2hlcmUgdGVtcGxhdGVzIGFyZSBsb2NhdGVkIChkZWZhdWx0cyB0byBpbnRlcm5hbCBub2RlanMgdGVtcGxhdGVzKQogICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgIG91dHB1dCB1c2FnZSBpbmZvcm1hdGlvbgpgYGAKCiMjIyMgRXhhbXBsZXMKClRoZSBzaG9ydGVzdCBwb3NzaWJsZSBzeW50YXg6CmBgYGJhc2gKc25jIHN3YWdnZXIueWFtbApgYGAKClNwZWNpZnkgd2hlcmUgdG8gcHV0IHRoZSBnZW5lcmF0ZWQgY29kZToKYGBgYmFzaApzbmMgc3dhZ2dlci55YW1sIC1vIC4vbXktYXBpCmBgYAoKIyMjIEFzIGEgbW9kdWxlIGluIHlvdXIgcHJvamVjdAoKYGBganMKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTsKY29uc3QgY29kZWdlbiA9IHJlcXVpcmUoJ3N3YWdnZXItbm9kZS1jb2RlZ2VuJyk7CmNvbnN0IHN3YWdnZXIgPSByZXF1aXJlKCcuL3N3YWdnZXIuanNvbicpOwoKY29kZWdlbi5nZW5lcmF0ZSh7CiAgc3dhZ2dlciwKICB0YXJnZXRfZGlyOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9teS1hcGknKQp9KS50aGVuKCgpID0+IHsKICBjb25zb2xlLmxvZygnRG9uZSEnKTsKfSkuY2F0Y2goZXJyID0+IHsKICBjb25zb2xlLmVycm9yKGBTb21ldGhpbmcgd2VudCB3cm9uZzogJHtlcnIubWVzc2FnZX1gKTsKfSk7CmBgYAoKVGhlIGBzd2FnZ2VyYCBwYXJhbWV0ZXIgY2FuIGJlIGVpdGhlciBKU09OIG9yIGEgcGF0aCBwb2ludGluZyB0byBhIEpTT04gb3IgWUFNTCBmaWxlLgoKYGBganMKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTsKY29uc3QgY29kZWdlbiA9IHJlcXVpcmUoJ3N3YWdnZXItbm9kZS1jb2RlZ2VuJyk7Cgpjb2RlZ2VuLmdlbmVyYXRlKHsKICBzd2FnZ2VyOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9zd2FnZ2VyLnltbCcpLAogIHRhcmdldF9kaXI6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuL215LWFwaScpCn0pLnRoZW4oKCkgPT4gewogIGNvbnNvbGUubG9nKCdEb25lIScpOwp9KS5jYXRjaChlcnIgPT4gewogIGNvbnNvbGUuZXJyb3IoYFNvbWV0aGluZyB3ZW50IHdyb25nOiAke2Vyci5tZXNzYWdlfWApOwp9KTsKYGBgCiMjIyMgVXNpbmcgYXN5bmMvYXdhaXQKClRoZSBmdW5jdGlvbiBgY29kZWdlbi5nZW5lcmF0ZWAgcmV0dXJucyBhIFByb21pc2UsIHNvIGl0IG1lYW5zIHlvdSBjYW4gdXNlIGFzeW5jL2F3YWl0OgoKYGBganMKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTsKY29uc3QgY29kZWdlbiA9IHJlcXVpcmUoJ3N3YWdnZXItbm9kZS1jb2RlZ2VuJyk7Cgp0cnkgewogIGF3YWl0IGNvZGVnZW4uZ2VuZXJhdGUoewogICAgc3dhZ2dlcjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vc3dhZ2dlci55bWwnKSwKICAgIHRhcmdldF9kaXI6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuL215LWFwaScpCiAgfSk7CiAgY29uc29sZS5sb2coJ0RvbmUhJyk7Cn0gY2F0Y2ggKGVycikgewogIGNvbnNvbGUuZXJyb3IoYFNvbWV0aGluZyB3ZW50IHdyb25nOiAke2Vyci5tZXNzYWdlfWApOwp9CmBgYAoKIyMgQVBJIERvY3VtZW50YXRpb24KCiMjIyBNb2R1bGVzCgo8ZGw+CjxkdD48YSBocmVmPSIjbW9kdWxlX2NvZGVnZW4iPmNvZGVnZW48L2E+PC9kdD4KPGRkPjxwPlRoaXMgbW9kdWxlIGdlbmVyYXRlcyBhIGNvZGUgc2tlbGV0b24gZm9yIGFuIEFQSSB1c2luZyBPcGVuQVBJL1N3YWdnZXIuPC9wPgo8L2RkPgo8ZHQ+PGEgaHJlZj0iI2NvZGVnZW4ubW9kdWxlX2dlbmVyYXRlIj5nZW5lcmF0ZTwvYT4g4oeSIDxjb2RlPlByb21pc2U8L2NvZGU+PC9kdD4KPGRkPjxwPkdlbmVyYXRlcyBhIGNvZGUgc2tlbGV0b24gZm9yIGFuIEFQSSBnaXZlbiBhbiBPcGVuQVBJL1N3YWdnZXIgZmlsZS48L3A+CjwvZGQ+CjwvZGw+Cgo8YSBuYW1lPSJtb2R1bGVfY29kZWdlbiI+PC9hPgoKIyMjIGNvZGVnZW4KVGhpcyBtb2R1bGUgZ2VuZXJhdGVzIGEgY29kZSBza2VsZXRvbiBmb3IgYW4gQVBJIHVzaW5nIE9wZW5BUEkvU3dhZ2dlci4KCjxhIG5hbWU9ImNvZGVnZW4ubW9kdWxlX2dlbmVyYXRlIj48L2E+CgojIyMjIGdlbmVyYXRlIOKHkiA8Y29kZT5Qcm9taXNlPC9jb2RlPgpHZW5lcmF0ZXMgYSBjb2RlIHNrZWxldG9uIGZvciBhbiBBUEkgZ2l2ZW4gYW4gT3BlbkFQSS9Td2FnZ2VyIGZpbGUuCgoKfCBQYXJhbSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tIHwgLS0tIHwKfCBjb25maWcgfCA8Y29kZT5PYmplY3Q8L2NvZGU+IHwgQ29uZmlndXJhdGlvbiBvcHRpb25zIHwKfCBjb25maWcuc3dhZ2dlciB8IDxjb2RlPk9iamVjdDwvY29kZT4gXHwgPGNvZGU+U3RyaW5nPC9jb2RlPiB8IE9wZW5BUEkvU3dhZ2dlciBKU09OIG9yIGEgc3RyaW5nIHBvaW50aW5nIHRvIGFuIE9wZW5BUEkvU3dhZ2dlciBmaWxlLiB8CnwgY29uZmlnLnRhcmdldF9kaXIgfCA8Y29kZT5TdHJpbmc8L2NvZGU+IHwgUGF0aCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBmaWxlcyB3aWxsIGJlIGdlbmVyYXRlZC4gfAp8IGNvbmZpZy50ZW1wbGF0ZXN8IDxjb2RlPlN0cmluZzwvY29kZT4gfCBQYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2hlcmUgY3VzdG9tIHRlbXBsYXRlcyBhcmUgKG9wdGlvbmFsKS4gfAoKCiMjIFRlbXBsYXRlcwpZb3UgY2FuIGNyZWF0ZSB5b3VyIG93biBbdGVtcGxhdGVzXSguL3RlbXBsYXRlcy9SRUFETUUubWQpLgoKIyMgQXV0aG9ycwoKKiBGcmFuIE3DqW5kZXogKFtAZm12aWxhc10oaHR0cDovL3R3aXR0ZXIuY29tL2ZtdmlsYXMpKQoqIFJpY2hhcmQgS2xvc2UgKFtAcmljaGFyZGtsb3NlXShodHRwOi8vZ2l0aHViLmNvbS9yaWNoYXJka2xvc2UpKQo= readmeEtag: '"7ecaca28f3d8531ae5c8f7b927ff1928d3bd2b55"' readmeLastModified: Tue, 17 Nov 2020 09:06:19 GMT repositoryId: 46659429 description: An OpenAPI 3.x/Swagger 2 code generator for Node.js created: '2015-11-22T12:22:22Z' updated: '2024-06-26T12:27:40Z' language: JavaScript archived: false stars: 200 watchers: 8 forks: 55 owner: fmvilas logo: https://avatars.githubusercontent.com/u/242119?v=4 license: Apache-2.0 repoEtag: '"ecb8108fbf3e75244aa55d7971e5f0db842f7b0bd803593dc7a7e8de6f91385a"' repoLastModified: Wed, 26 Jun 2024 12:27:40 GMT foundInMaster: true id: d432635d31e91cae35355677ce1e130a - source: openapi3 tags repository: https://github.com/himenon/openapi-typescript-code-generator v3: true repositoryMetadata: base64Readme: >- IyBAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IKClvml6XmnKzoqp5dKC4vZG9jcy9qYS9SRUFETUUtamEubWQpCgpUaGlzIGxpYnJhcnkgcHJvdmlkZXMgVHlwZVNjcmlwdCB0eXBlIGRlZmluaXRpb25zIGFuZCBleHRyYWN0ZWQgcGFyYW1ldGVycyBmcm9tIE9wZW5BUEkgdjMuMC54IGNvbXBsaWFudCBzcGVjaWZpY2F0aW9ucy4KVHlwZVNjcmlwdCBBU1QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgY29kZSwgd2hpY2ggaXMgYWNjdXJhdGVseSBjb252ZXJ0ZWQgdG8gVHlwZVNjcmlwdCBjb2RlLgpTaW5jZSB0aGUgcGFyYW1ldGVycyBleHRyYWN0ZWQgZnJvbSBPcGVuQVBJIGNhbiBiZSB1c2VkIGZyZWVseSwgaXQgY2FuIGJlIHVzZWQgZm9yIGF1dG9tYXRpYyBnZW5lcmF0aW9uIG9mIEFQSSBDbGllbnQgYW5kIFNlcnZlciBTaWRlIGNvZGUsIGxvYWQgYmFsYW5jZXIgY29uZmlndXJhdGlvbiBmaWxlcywgZXRjLgoKIyMgUGxheWdyb3VuZAoKLSBbUGxheWdyb3VuZF0oaHR0cHM6Ly9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IubmV0bGlmeS5hcHAvKQoKIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCm5wbSAgaSAgIC1EIEBoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvcgojIG9yCnBucG0gaSAgIC1EIEBoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvcgojIG9yCnlhcm4gYWRkIC1EIEBoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvcgpgYGAKCiMjIERFTU8KCi0gW1Nob3J0IERFTU9dKGh0dHBzOi8vZ2l0aHViLmNvbS9IaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvci1kZW1vLXByb2plY3QpCi0gW0RFTU86IGdpdGh1Yi9yZXN0LWFwaS1jbGllbnQgY29kZSBnZW5lcmF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL0hpbWVub24vZ2l0aHViLXJlc3QtYXBpLWNsaWVudC90cmVlL21hc3Rlci9zb3VyY2UpCiAgLSBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL3Jlc3QtYXBpLWRlc2NyaXB0aW9uCgojIyBVc2FnZQoKVGhlIGV4YW1wbGUgc2hvd24gaGVyZSBjYW4gYmUgY2xvbmVkIGZyb20gdGhlIFtERU1PIHJlcG9zaXRvcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9IaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvci1kZW1vLXByb2plY3QpIHRvIHNlZSBob3cgaXQgd29ya3MuCgojIyMgR2VuZXJhdGUgdHlwZWRlZi1vbmx5IGNvZGUKCmBgYHRzCmltcG9ydCAqIGFzIGZzIGZyb20gImZzIjsKCmltcG9ydCB7IENvZGVHZW5lcmF0b3IgfSBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IiOwoKY29uc3QgbWFpbiA9ICgpID0+IHsKICBjb25zdCBjb2RlR2VuZXJhdG9yID0gbmV3IENvZGVHZW5lcmF0b3IoInlvdXIvb3BlbmFwaS9zcGVjLnltbCIpOwogIGNvbnN0IGNvZGUgPSBjb2RlR2VuZXJhdG9yLmdlbmVyYXRlVHlwZURlZmluaXRpb24oKTsKICBmcy53cml0ZUZpbGVTeW5jKCJjbGllbnQudHMiLCBjb2RlLCB7IGVuY29kaW5nOiAidXRmLTgiIH0pOwp9OwoKbWFpbigpOwpgYGAKCiMjIyBHZW5lcmF0ZSBjb2RlIGNvbnRhaW5pbmcgdGhlIEFQSSBDbGllbnQKCmBgYHRzCmltcG9ydCAqIGFzIGZzIGZyb20gImZzIjsKCmltcG9ydCB7IENvZGVHZW5lcmF0b3IgfSBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IiOwppbXBvcnQgKiBhcyBUZW1wbGF0ZXMgZnJvbSAiQGhpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yL2Rpc3QvdGVtcGxhdGVzIjsKaW1wb3J0IHR5cGUgKiBhcyBUeXBlcyBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IvZGlzdC90eXBlcyI7Cgpjb25zdCBtYWluID0gKCkgPT4gewogIGNvbnN0IGNvZGVHZW5lcmF0b3IgPSBuZXcgQ29kZUdlbmVyYXRvcigieW91ci9vcGVuYXBpL3NwZWMueW1sIik7CgogIGNvbnN0IGFwaUNsaWVudEdlbmVyYXRvclRlbXBsYXRlOiBUeXBlcy5Db2RlR2VuZXJhdG9yLkN1c3RvbUdlbmVyYXRvcjxUZW1wbGF0ZXMuRnVuY3Rpb25hbEFwaUNsaWVudC5PcHRpb24+ID0gewogICAgZ2VuZXJhdG9yOiBUZW1wbGF0ZXMuRnVuY3Rpb25hbEFwaUNsaWVudC5nZW5lcmF0b3IsCiAgICBvcHRpb246IHt9LAogIH07CgogIGNvbnN0IGNvZGUgPSBjb2RlR2VuZXJhdG9yLmdlbmVyYXRlVHlwZURlZmluaXRpb24oWwogICAgY29kZUdlbmVyYXRvci5nZXRBZGRpdGlvbmFsVHlwZURlZmluaXRpb25DdXN0b21Db2RlR2VuZXJhdG9yKCksCiAgICBhcGlDbGllbnRHZW5lcmF0b3JUZW1wbGF0ZSwKICBdKTsKCiAgZnMud3JpdGVGaWxlU3luYygiY2xpZW50LnRzIiwgY29kZSwgeyBlbmNvZGluZzogInV0Zi04IiB9KTsKfTsKCm1haW4oKTsKYGBgCgojIyMgVGhlIHZhcmlhdGlvbiBvZiB0ZW1wbGF0ZSBjb2RlCgpUaGlzIGxpYnJhcnkgcHJvdmlkZXMgdGhyZWUgdHlwZXMgb2YgdGVtcGxhdGVzCgpgYGB0cwppbXBvcnQgKiBhcyBUZW1wbGF0ZXMgZnJvbSAiQGhpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yL2Rpc3QvdGVtcGxhdGVzIjsKClRlbXBsYXRlcy5DbGFzc0FwaUNsaWVudC5nZW5lcmF0b3I7ClRlbXBsYXRlcy5GdW5jdGlvbmFsQXBpQ2xpZW50LmdlbmVyYXRvcjsKVGVtcGxhdGVzLkN1cnJ5aW5nRnVuY3Rpb25hbEFwaUNsaWVudC5nZW5lcmF0b3I7CmBgYAoKIyMjIyBgVGVtcGxhdGVzLkNsYXNzQXBpQ2xpZW50LmdlbmVyYXRvcmAKCldlIHByb3ZpZGUgYSBjbGFzcy1iYXNlZCBBUEkgY2xpZW50LiBQbGVhc2UgaW5qZWN0IHRoZSBBUEkgY2xpZW50IGRlcGVuZGVuY3kgYW5kIHVzZSBpdCBpbnN0ZWFkIG9mIGBjb25zdHJ1Y3RvcmAuCgpgYGB0cwpleHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RBcmdzIHsKICBodHRwTWV0aG9kOiBIdHRwTWV0aG9kOwogIHVybDogc3RyaW5nOwogIGhlYWRlcnM6IE9iamVjdExpa2UgfCBhbnk7CiAgcmVxdWVzdEJvZHk/OiBPYmplY3RMaWtlIHwgYW55OwogIHJlcXVlc3RCb2R5RW5jb2Rpbmc/OiBSZWNvcmQ8c3RyaW5nLCBFbmNvZGluZz47CiAgcXVlcnlQYXJhbWV0ZXJzPzogUXVlcnlQYXJhbWV0ZXJzIHwgdW5kZWZpbmVkOwp9CgpleHBvcnQgaW50ZXJmYWNlIEFwaUNsaWVudDxSZXF1ZXN0T3B0aW9uPiB7CiAgcmVxdWVzdDogPFQgPSBTdWNjZXNzUmVzcG9uc2VzPihyZXF1ZXN0QXJnczogUmVxdWVzdEFyZ3MsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9uKSA9PiBQcm9taXNlPFQ+Owp9CgpleHBvcnQgY2xhc3MgQ2xpZW50PFJlcXVlc3RPcHRpb24+IHsKICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZzsKICBjb25zdHJ1Y3RvcigKICAgIHByaXZhdGUgYXBpQ2xpZW50OiBBcGlDbGllbnQ8UmVxdWVzdE9wdGlvbj4sCiAgICBiYXNlVXJsOiBzdHJpbmcsCiAgKSB7CiAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoL1wvJC8sICIiKTsKICB9CgogIHB1YmxpYyBhc3luYyBjcmVhdGVQdWJsaXNoZXJWMjxSZXF1ZXN0Q29udGVudFR5cGUgZXh0ZW5kcyBSZXF1ZXN0Q29udGVudFR5cGUkY3JlYXRlUHVibGlzaGVyVjI+KAogICAgcGFyYW1zOiBQYXJhbXMkY3JlYXRlUHVibGlzaGVyVjI8UmVxdWVzdENvbnRlbnRUeXBlPiwKICAgIG9wdGlvbj86IFJlcXVlc3RPcHRpb24sCiAgKTogUHJvbWlzZTxSZXNwb25zZSRjcmVhdGVQdWJsaXNoZXJWMiRTdGF0dXMkMjAwWyJhcHBsaWNhdGlvbi9qc29uIl0+IHsKICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArIGAvY3JlYXRlL3YyL3B1Ymxpc2hlci97aWR9YDsKICAgIGNvbnN0IGhlYWRlcnMgPSB7CiAgICAgICJDb250ZW50LVR5cGUiOiBwYXJhbXMuaGVhZGVyc1siQ29udGVudC1UeXBlIl0sCiAgICAgIEFjY2VwdDogImFwcGxpY2F0aW9uL2pzb24iLAogICAgfTsKICAgIGNvbnN0IHJlcXVlc3RFbmNvZGluZ3MgPSB7CiAgICAgICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOiB7CiAgICAgICAgY29sb3I6IHsKICAgICAgICAgIHN0eWxlOiAiZm9ybSIsCiAgICAgICAgICBleHBsb2RlOiBmYWxzZSwKICAgICAgICB9LAogICAgICB9LAogICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICBjb2xvcjogewogICAgICAgICAgc3R5bGU6ICJmb3JtIiwKICAgICAgICAgIGV4cGxvZGU6IGZhbHNlLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9OwogICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LnJlcXVlc3QoCiAgICAgIHsKICAgICAgICBodHRwTWV0aG9kOiAiUE9TVCIsCiAgICAgICAgdXJsLAogICAgICAgIGhlYWRlcnMsCiAgICAgICAgcmVxdWVzdEJvZHk6IHBhcmFtcy5yZXF1ZXN0Qm9keSwKICAgICAgICByZXF1ZXN0Qm9keUVuY29kaW5nOiByZXF1ZXN0RW5jb2RpbmdzW3BhcmFtcy5oZWFkZXJzWyJDb250ZW50LVR5cGUiXV0sCiAgICAgIH0sCiAgICAgIG9wdGlvbiwKICAgICk7CiAgfQp9CmBgYAoKIyMjIyBgVGVtcGxhdGVzLkZ1bmN0aW9uYWxBcGlDbGllbnQuZ2VuZXJhdG9yYAoKV2UgYWxzbyBwcm92aWRlIGEgZnVuY3Rpb24tYmFzZWQgQVBJIGNsaWVudCB0aGF0IHJlcGxhY2VzIHRoZSBjbGFzcy1iYXNlZCBBUEkgY2xpZW50IHdpdGggYGNyZWF0ZUNsaWVudGAuIFBsZWFzZSBpbmplY3QgdGhlIEFQSSBjbGllbnQgZGVwZW5kZW5jeSBhbmQgdXNlIGl0LgoKYGBgdHMKZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0QXJncyB7CiAgaHR0cE1ldGhvZDogSHR0cE1ldGhvZDsKICB1cmw6IHN0cmluZzsKICBoZWFkZXJzOiBPYmplY3RMaWtlIHwgYW55OwogIHJlcXVlc3RCb2R5PzogT2JqZWN0TGlrZSB8IGFueTsKICByZXF1ZXN0Qm9keUVuY29kaW5nPzogUmVjb3JkPHN0cmluZywgRW5jb2Rpbmc+OwogIHF1ZXJ5UGFyYW1ldGVycz86IFF1ZXJ5UGFyYW1ldGVycyB8IHVuZGVmaW5lZDsKfQoKZXhwb3J0IGludGVyZmFjZSBBcGlDbGllbnQ8UmVxdWVzdE9wdGlvbj4gewogIHJlcXVlc3Q6IDxUID0gU3VjY2Vzc1Jlc3BvbnNlcz4ocmVxdWVzdEFyZ3M6IFJlcXVlc3RBcmdzLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbikgPT4gUHJvbWlzZTxUPjsKfQoKZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaWVudCA9IDxSZXF1ZXN0T3B0aW9uPihhcGlDbGllbnQ6IEFwaUNsaWVudDxSZXF1ZXN0T3B0aW9uPiwgYmFzZVVybDogc3RyaW5nKSA9PiB7CiAgY29uc3QgX2Jhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoL1wvJC8sICIiKTsKICByZXR1cm4gewogICAgY3JlYXRlUHVibGlzaGVyVjI6IDxSZXF1ZXN0Q29udGVudFR5cGUgZXh0ZW5kcyBSZXF1ZXN0Q29udGVudFR5cGUkY3JlYXRlUHVibGlzaGVyVjI+KAogICAgICBwYXJhbXM6IFBhcmFtcyRjcmVhdGVQdWJsaXNoZXJWMjxSZXF1ZXN0Q29udGVudFR5cGU+LAogICAgICBvcHRpb24/OiBSZXF1ZXN0T3B0aW9uLAogICAgKTogUHJvbWlzZTxSZXNwb25zZSRjcmVhdGVQdWJsaXNoZXJWMiRTdGF0dXMkMjAwWyJhcHBsaWNhdGlvbi9qc29uIl0+ID0+IHsKICAgICAgY29uc3QgdXJsID0gX2Jhc2VVcmwgKyBgL2NyZWF0ZS92Mi9wdWJsaXNoZXIve2lkfWA7CiAgICAgIGNvbnN0IGhlYWRlcnMgPSB7CiAgICAgICAgIkNvbnRlbnQtVHlwZSI6IHBhcmFtcy5oZWFkZXJzWyJDb250ZW50LVR5cGUiXSwKICAgICAgICBBY2NlcHQ6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgfTsKICAgICAgY29uc3QgcmVxdWVzdEVuY29kaW5ncyA9IHsKICAgICAgICAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIjogewogICAgICAgICAgY29sb3I6IHsKICAgICAgICAgICAgc3R5bGU6ICJmb3JtIiwKICAgICAgICAgICAgZXhwbG9kZTogZmFsc2UsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOiB7CiAgICAgICAgICBjb2xvcjogewogICAgICAgICAgICBzdHlsZTogImZvcm0iLAogICAgICAgICAgICBleHBsb2RlOiBmYWxzZSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfTsKICAgICAgcmV0dXJuIGFwaUNsaWVudC5yZXF1ZXN0KAogICAgICAgIHsKICAgICAgICAgIGh0dHBNZXRob2Q6ICJQT1NUIiwKICAgICAgICAgIHVybCwKICAgICAgICAgIGhlYWRlcnMsCiAgICAgICAgICByZXF1ZXN0Qm9keTogcGFyYW1zLnJlcXVlc3RCb2R5LAogICAgICAgICAgcmVxdWVzdEJvZHlFbmNvZGluZzogcmVxdWVzdEVuY29kaW5nc1twYXJhbXMuaGVhZGVyc1siQ29udGVudC1UeXBlIl1dLAogICAgICAgIH0sCiAgICAgICAgb3B0aW9uLAogICAgICApOwogICAgfSwKICB9Owp9OwpgYGAKCiMjIyMgYFRlbXBsYXRlcy5DdXJyeWluZ0Z1bmN0aW9uYWxBcGlDbGllbnQuZ2VuZXJhdG9yYAoKKipUcmVlIHNoYWtpbmcgc3VwcG9ydCoqCgpXZSBhbHNvIHByb3ZpZGUgYSBjdXJyaWVkIGZ1bmN0aW9uLWJhc2VkIEFQSSBjbGllbnQgdGhhdCByZXF1aXJlcyBpbmplY3Rpb24gb2YgQVBJIGNsaWVudCBmb3IgZWFjaCBgb3BlcmF0aW9uSWRgLiBUaGUgZmlyc3QgZnVuY3Rpb24gYXJndW1lbnQgZGVtYW5kcyBgQXBpQ2xpZW50YCB3aGlsZSB0aGUgc2Vjb25kIGZ1bmN0aW9uIGFyZ3VtZW50IGRlbWFuZHMgYFJlcXVlc3RBcmdzYC4gVGhlIGBBcGlDbGllbnRgIGludGVyZmFjZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3RoZXJzLCBhcyBpdCByZXF1aXJlcyBgdXJpYCBhcyBhbiBhcmd1bWVudC4KClRoaXMgaXMgZGVzaWduZWQgZm9yIHVzZSBjYXNlcyB0aGF0IHV0aWxpemUgKip0cmVlIHNoYWtpbmcqKi4KCmBgYHRzCmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEFyZ3MgewogIGh0dHBNZXRob2Q6IEh0dHBNZXRob2Q7CiAgdXJpOiBzdHJpbmc7IC8vIDwtLS0tLS0tLS0tLS0tLS0tLS0gTm90ZSB0aGF0IHRoZSB1cmkKICBoZWFkZXJzOiBPYmplY3RMaWtlIHwgYW55OwogIHJlcXVlc3RCb2R5PzogT2JqZWN0TGlrZSB8IGFueTsKICByZXF1ZXN0Qm9keUVuY29kaW5nPzogUmVjb3JkPHN0cmluZywgRW5jb2Rpbmc+OwogIHF1ZXJ5UGFyYW1ldGVycz86IFF1ZXJ5UGFyYW1ldGVycyB8IHVuZGVmaW5lZDsKfQpleHBvcnQgaW50ZXJmYWNlIEFwaUNsaWVudDxSZXF1ZXN0T3B0aW9uPiB7CiAgcmVxdWVzdDogPFQgPSBTdWNjZXNzUmVzcG9uc2VzPihyZXF1ZXN0QXJnczogUmVxdWVzdEFyZ3MsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9uKSA9PiBQcm9taXNlPFQ+Owp9CmV4cG9ydCBjb25zdCBjcmVhdGVQdWJsaXNoZXJWMiA9CiAgPFJlcXVlc3RPcHRpb24+KGFwaUNsaWVudDogQXBpQ2xpZW50PFJlcXVlc3RPcHRpb24+KSA9PgogIDxSZXF1ZXN0Q29udGVudFR5cGUgZXh0ZW5kcyBSZXF1ZXN0Q29udGVudFR5cGUkY3JlYXRlUHVibGlzaGVyVjI+KAogICAgcGFyYW1zOiBQYXJhbXMkY3JlYXRlUHVibGlzaGVyVjI8UmVxdWVzdENvbnRlbnRUeXBlPiwKICAgIG9wdGlvbj86IFJlcXVlc3RPcHRpb24sCiAgKTogUHJvbWlzZTxSZXNwb25zZSRjcmVhdGVQdWJsaXNoZXJWMiRTdGF0dXMkMjAwWyJhcHBsaWNhdGlvbi9qc29uIl0+ID0+IHsKICAgIGNvbnN0IHVyaSA9IGAvY3JlYXRlL3YyL3B1Ymxpc2hlci97aWR9YDsKICAgIGNvbnN0IGhlYWRlcnMgPSB7CiAgICAgICJDb250ZW50LVR5cGUiOiBwYXJhbXMuaGVhZGVyc1siQ29udGVudC1UeXBlIl0sCiAgICAgIEFjY2VwdDogImFwcGxpY2F0aW9uL2pzb24iLAogICAgfTsKICAgIGNvbnN0IHJlcXVlc3RFbmNvZGluZ3MgPSB7CiAgICAgICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOiB7CiAgICAgICAgY29sb3I6IHsKICAgICAgICAgIHN0eWxlOiAiZm9ybSIsCiAgICAgICAgICBleHBsb2RlOiBmYWxzZSwKICAgICAgICB9LAogICAgICB9LAogICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICBjb2xvcjogewogICAgICAgICAgc3R5bGU6ICJmb3JtIiwKICAgICAgICAgIGV4cGxvZGU6IGZhbHNlLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9OwogICAgcmV0dXJuIGFwaUNsaWVudC5yZXF1ZXN0KAogICAgICB7CiAgICAgICAgaHR0cE1ldGhvZDogIlBPU1QiLAogICAgICAgIHVyaSwKICAgICAgICBoZWFkZXJzLAogICAgICAgIHJlcXVlc3RCb2R5OiBwYXJhbXMucmVxdWVzdEJvZHksCiAgICAgICAgcmVxdWVzdEJvZHlFbmNvZGluZzogcmVxdWVzdEVuY29kaW5nc1twYXJhbXMuaGVhZGVyc1siQ29udGVudC1UeXBlIl1dLAogICAgICB9LAogICAgICBvcHRpb24sCiAgICApOwogIH07CmBgYAoKIyMjIFNwbGl0IHRoZSB0eXBlIGRlZmluaXRpb24gZmlsZSBhbmQgdGhlIEFQSSBDbGllbnQgaW1wbGVtZW50YXRpb24KCmBgYHRzCmltcG9ydCAqIGFzIGZzIGZyb20gImZzIjsKCmltcG9ydCB7IENvZGVHZW5lcmF0b3IgfSBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IiOwppbXBvcnQgKiBhcyBUZW1wbGF0ZXMgZnJvbSAiQGhpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yL2Rpc3QvdGVtcGxhdGVzIjsKaW1wb3J0IHR5cGUgKiBhcyBUeXBlcyBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IvZGlzdC90eXBlcyI7Cgpjb25zdCBtYWluID0gKCkgPT4gewogIGNvbnN0IGNvZGVHZW5lcmF0b3IgPSBuZXcgQ29kZUdlbmVyYXRvcigieW91ci9vcGVuYXBpL3NwZWMueW1sIik7CgogIGNvbnN0IGFwaUNsaWVudEdlbmVyYXRvclRlbXBsYXRlOiBUeXBlcy5Db2RlR2VuZXJhdG9yLkN1c3RvbUdlbmVyYXRvcjxUZW1wbGF0ZXMuRnVuY3Rpb25hbEFwaUNsaWVudC5PcHRpb24+ID0gewogICAgZ2VuZXJhdG9yOiBUZW1wbGF0ZXMuRnVuY3Rpb25hbEFwaUNsaWVudC5nZW5lcmF0b3IsCiAgICBvcHRpb246IHt9LAogIH07CgogIGNvbnN0IHR5cGVEZWZDb2RlID0gY29kZUdlbmVyYXRvci5nZW5lcmF0ZVR5cGVEZWZpbml0aW9uKCk7CiAgY29uc3QgYXBpQ2xpZW50Q29kZSA9IGNvZGVHZW5lcmF0b3IuZ2VuZXJhdGVDb2RlKFsKICAgIHsKICAgICAgZ2VuZXJhdG9yOiAoKSA9PiB7CiAgICAgICAgcmV0dXJuIFtgaW1wb3J0IHsgU2NoZW1hcywgUmVzcG9uc2VzIH0gZnJvbSAiLi90eXBlcyI7YF07CiAgICAgIH0sCiAgICB9LAogICAgY29kZUdlbmVyYXRvci5nZXRBZGRpdGlvbmFsVHlwZURlZmluaXRpb25DdXN0b21Db2RlR2VuZXJhdG9yKCksCiAgICBhcGlDbGllbnRHZW5lcmF0b3JUZW1wbGF0ZSwKICBdKTsKCiAgZnMud3JpdGVGaWxlU3luYygidHlwZXMudHMiLCB0eXBlRGVmQ29kZSwgeyBlbmNvZGluZzogInV0Zi04IiB9KTsKICBmcy53cml0ZUZpbGVTeW5jKCJhcGlDbGllbnQudHMiLCBhcGlDbGllbnRDb2RlLCB7IGVuY29kaW5nOiAidXRmLTgiIH0pOwp9OwoKbWFpbigpOwpgYGAKCiMjIENyZWF0ZSBhIENvZGUgVGVtcGxhdGUKClRoZSBleGFtcGxlcyBpbiB0aGlzIHNlY3Rpb24gY2FuIGJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyB3YXlzCgpgYGB0cwppbXBvcnQgKiBhcyBmcyBmcm9tICJmcyI7CgppbXBvcnQgeyBDb2RlR2VuZXJhdG9yIH0gZnJvbSAiQGhpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yIjsKaW1wb3J0IHR5cGUgKiBhcyBUeXBlcyBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IvZGlzdC90eXBlcyI7CgovKiogV3JpdGUgdGhlIGRlZmluaXRpb24gb2YgdGhlIENvZGUgVGVtcGxhdGUgaGVyZS4gKi8KY29uc3QgY3VzdG9tR2VuZXJhdG9yOiBUeXBlcy5Db2RlR2VuZXJhdG9yLkN1c3RvbUdlbmVyYXRvcjx7fT4gPSB7CiAgLyoqIC4uLi4gKi8KfTsKCmNvbnN0IGNvZGVHZW5lcmF0b3IgPSBuZXcgQ29kZUdlbmVyYXRvcigieW91ci9vcGVuYXBpL3NwZWMueW1sIik7Cgpjb25zdCBjb2RlID0gY29kZUdlbmVyYXRvci5nZW5lcmF0ZUNvZGUoW2N1c3RvbUdlbmVyYXRvcl0pOwoKZnMud3JpdGVGaWxlU3luYygib3V0cHV0L2ZpbGUvbmFtZSIsIGNvZGUsIHsgZW5jb2Rpbmc6ICJ1dGYtOCIgfSk7CmBgYAoKIyMjIERlZmluZSBhIHRleHQtYmFzZWQgY29kZSB0ZW1wbGF0ZQoKQSBzZWxmLWRlZmluZWQgY29kZSBnZW5lcmF0b3IgY2FuIHJldHVybiBhbiBhcnJheSBvZiBgc3RyaW5nYC4KCmBgYHRzCmltcG9ydCAqIGFzIFR5cGVzIGZyb20gIkBoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvci9kaXN0L3R5cGVzIjsKCmludGVyZmFjZSBPcHRpb24gewogIHNob3dMb2c/OiBib29sZWFuOwp9Cgpjb25zdCBnZW5lcmF0b3I6IFR5cGVzLkNvZGVHZW5lcmF0b3IuR2VuZXJhdGVGdW5jdGlvbjxPcHRpb24+ID0gKHBheWxvYWQ6IFR5cGVzLkNvZGVHZW5lcmF0b3IuUGFyYW1zW10sIG9wdGlvbik6IHN0cmluZ1tdID0+IHsKICBpZiAob3B0aW9uICYmIG9wdGlvbi5zaG93TG9nKSB7CiAgICBjb25zb2xlLmxvZygic2hvdyBsb2cgbWVzc2FnZSIpOwogIH0KICByZXR1cm4gWyJIZWxsbyB3b3JsZCJdOwp9OwoKY29uc3QgY3VzdG9tR2VuZXJhdG9yOiBUeXBlcy5Db2RlR2VuZXJhdG9yLkN1c3RvbUdlbmVyYXRvcjxPcHRpb24+ID0gewogIGdlbmVyYXRvcjogZ2VuZXJhdG9yLAogIG9wdGlvbjoge30sCn07CmBgYAoKIyMjIERlZmluZSB1c2luZyB0aGUgaW5mb3JtYXRpb24gZXh0cmFjdGVkIGZyb20gT3BlbkFQSSBTY2hlbWEKClRoZSBzZWxmLWRlZmluZWQgY29kZSBnZW5lcmF0b3IgY2FuIGFjY2VwdCBwYXJhbWV0ZXJzIGV4dHJhY3RlZCBmcm9tIE9wZW5BUEkgU2NoZW1hLgpTZWUgVHlwZSBkZWZpbml0aW9ucyBmb3IgYXZhaWxhYmxlIHBhcmFtZXRlcnMuCgpgYGB0cwppbXBvcnQgKiBhcyBUeXBlcyBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IvZGlzdC90eXBlcyI7CgppbnRlcmZhY2UgT3B0aW9uIHt9Cgpjb25zdCBnZW5lcmF0b3I6IFR5cGVzLkNvZGVHZW5lcmF0b3IuR2VuZXJhdGVGdW5jdGlvbjxPcHRpb24+ID0gKHBheWxvYWQ6IFR5cGVzLkNvZGVHZW5lcmF0b3IuUGFyYW1zW10sIG9wdGlvbik6IHN0cmluZ1tdID0+IHsKICByZXR1cm4gcGF5bG9hZC5tYXAocGFyYW1zID0+IHsKICAgIHJldHVybiBgZnVuY3Rpb24gJHtwYXJhbXMub3BlcmF0aW9uSWR9KCkgeyBjb25zb2xlLmxvZygiJHtwYXJhbXMuY29tbWVudH0iKSB9YDsKICB9KTsKfTsKCmNvbnN0IGN1c3RvbUdlbmVyYXRvcjogVHlwZXMuQ29kZUdlbmVyYXRvci5DdXN0b21HZW5lcmF0b3I8T3B0aW9uPiA9IHsKICBnZW5lcmF0b3I6IGdlbmVyYXRvciwKICBvcHRpb246IHt9LAp9OwpgYGAKCiMjIyBEZWZpbmUgYW55IERhdGEgVHlwZXMgRm9ybWF0CgpDb252ZXJ0IGEgRGF0YSBUeXBlIHdpdGggdGhlIGZvbGxvd2luZyBgZm9ybWF0YCB0byBhbnkgdHlwZSBkZWZpbml0aW9uLgoKYGBgeWFtbApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBCaW5hcnk6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBmb3JtYXQ6IGJpbmFyeQogICAgSW50T3JTdHJpbmc6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBmb3JtYXQ6IGludC1vci1zdHJpbmcKICAgIEFhbmRCOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgZm9ybWF0OiBBLWFuZC1CCmBgYAoKVGhlIG9wdGlvbiB0byBjb252ZXJ0IHRoZSBEYXRhIFR5cGUgRm9ybWF0IHRvIGFuIGFyYml0cmFyeSB0eXBlIGRlZmluaXRpb24gaXMgZGVmaW5lZCBhcyBmb2xsb3dzLgoKYGBgdHMKaW1wb3J0IHsgQ29kZUdlbmVyYXRvciwgT3B0aW9uIH0gZnJvbSAiQGhpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yIjsKY29uc3Qgb3B0aW9uOiBPcHRpb24gPSB7CiAgY29udmVydE9wdGlvbjogewogICAgZm9ybWF0Q29udmVyc2lvbnM6IFsKICAgICAgewogICAgICAgIHNlbGVjdG9yOiB7CiAgICAgICAgICBmb3JtYXQ6ICJiaW5hcnkiLAogICAgICAgIH0sCiAgICAgICAgb3V0cHV0OiB7CiAgICAgICAgICB0eXBlOiBbIkJsb2IiXSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgc2VsZWN0b3I6IHsKICAgICAgICAgIGZvcm1hdDogImludC1vci1zdHJpbmciLAogICAgICAgIH0sCiAgICAgICAgb3V0cHV0OiB7CiAgICAgICAgICB0eXBlOiBbIm51bWJlciIsICJzdHJpbmciXSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgc2VsZWN0b3I6IHsKICAgICAgICAgIGZvcm1hdDogIkEtYW5kLUIiLAogICAgICAgIH0sCiAgICAgICAgb3V0cHV0OiB7CiAgICAgICAgICB0eXBlOiBbIkEiLCAiQiJdLAogICAgICAgICAgbXVsdGlUeXBlOiAiYWxsT2YiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICBdLAogIH0sCn07CmNvbnN0IGNvZGVHZW5lcmF0b3IgPSBuZXcgQ29kZUdlbmVyYXRvcihpbnB1dEZpbGVuYW1lLCBvcHRpb24pOwpgYGAKClRoZSB0eXBlZGVmIGdlbmVyYXRlZCBieSB0aGlzIHdpbGwgbG9vayBsaWtlIHRoaXMKCmBgYHRzCmV4cG9ydCBuYW1lc3BhY2UgU2NoZW1hcyB7CiAgZXhwb3J0IHR5cGUgQmluYXJ5ID0gQmxvYjsKICBleHBvcnQgdHlwZSBJbnRPclN0cmluZyA9IG51bWJlciB8IHN0cmluZzsKICBleHBvcnQgdHlwZSBBYW5kQiA9IEEgJiBCOwp9CmBgYAoKIyMjIERlZmluZSBhIGNvZGUgdGVtcGxhdGUgd2l0aCBUeXBlU2NyaXB0IEFTVAoKWW91IGNhbiBleHRlbmQgeW91ciBjb2RlIHVzaW5nIHRoZSBBUEkgb2YgVHlwZVNjcmlwdCBBU1QuCllvdSBjYW4gZGlyZWN0bHkgdXNlIHRoZSBBUEkgb2YgVHlwZVNjcmlwdCBBU1Qgb3IgdXNlIHRoZSB3cmFwcGVyIEFQSSBvZiBUeXBlU2NyaXB0IEFTVCBwcm92aWRlZCBieSB0aGlzIGxpYnJhcnkuCgpgYGB0cwppbXBvcnQgKiBhcyBUeXBlcyBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IvZGlzdC90eXBlcyI7CmltcG9ydCB7IFRzR2VuZXJhdG9yIH0gZnJvbSAiQGhpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yL2Rpc3QvYXBpIjsKCmludGVyZmFjZSBPcHRpb24ge30KCmNvbnN0IGZhY3RvcnkgPSBUc0dlbmVyYXRvci5GYWN0b3J5LmNyZWF0ZSgpOwoKY29uc3QgZ2VuZXJhdG9yOiBUeXBlcy5Db2RlR2VuZXJhdG9yLkdlbmVyYXRlRnVuY3Rpb248T3B0aW9uPiA9ICgKICBwYXlsb2FkOiBUeXBlcy5Db2RlR2VuZXJhdG9yLlBhcmFtc1tdLAogIG9wdGlvbiwKKTogVHlwZXMuQ29kZUdlbmVyYXRvci5JbnRlcm1lZGlhdGVDb2RlW10gPT4gewogIHJldHVybiBwYXlsb2FkLm1hcChwYXJhbXMgPT4gewogICAgcmV0dXJuIGZhY3RvcnkuSW50ZXJmYWNlRGVjbGFyYXRpb24uY3JlYXRlKHsKICAgICAgZXhwb3J0OiB0cnVlLAogICAgICBuYW1lOiBwYXJhbXMuZnVuY3Rpb25OYW1lLAogICAgICBtZW1iZXJzOiBbXSwKICAgIH0pOwogIH0pOwp9OwoKY29uc3QgY3VzdG9tR2VuZXJhdG9yOiBUeXBlcy5Db2RlR2VuZXJhdG9yLkN1c3RvbUdlbmVyYXRvcjxPcHRpb24+ID0gewogIGdlbmVyYXRvcjogZ2VuZXJhdG9yLAogIG9wdGlvbjoge30sCn07CmBgYAoKIyMgQVBJCgojIyMgQ29kZUdlbmVyYXRvcgoKYGBgdHMKaW1wb3J0IHsgQ29kZUdlbmVyYXRvciB9IGZyb20gIkBoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvciI7CmBgYAoKIyMjIyB2YWxpZGF0ZU9wZW5BcGlTY2hlbWEKClBlcmZvcm1zIHZhbGlkYXRpb24gb2YgdGhlIGlucHV0IE9wZW5BUEkgU2NoZW1hLgoKIyMjIyBnZW5lcmF0ZVR5cGVEZWZpbml0aW9uCgpHZW5lcmF0ZXMgY29kZSB0aGF0IGNvbnZlcnRzIE9wZW5BUEkgU2NoZW1hIHRvIFR5cGVTY3JpcHQgdHlwZSBkZWZpbml0aW9ucy4KCiMjIyMgZ2VuZXJhdGVDb2RlCgpZb3UgY2FuIHNwZWNpZnkgc2V2ZXJhbCBvZiB5b3VyIG93biBjb2RlIGdlbmVyYXRvcnMsIGFuZCB0aGUgZ2VuZXJhdG9ycyBjYW4gdXNlIHBhcmFtZXRlcnMgZXh0cmFjdGVkIGZyb20gT3BlbkFQSSBTY2hlbWEuCkl0IGludGVybmFsbHkgcGVyZm9ybXMgdGhlIGNvbnZlcnNpb24gb2YgYW4gYXJyYXkgb2YgYHN0cmluZ2Agb3IgYHRzLlN0YXRlbWVudGAgYXMgYSBzdHJpbmcuCgpGb3IgZXhhbXBsZSwgY3JlYXRpbmcgYSBnZW5lcmF0b3IgaW4gdW5pdHMgb2YgZmlsZSBkaXZpc2lvbnMgaW5jcmVhc2VzIHRoZSByZXVzYWJpbGl0eSBvZiB0aGUgZ2VuZXJhdG9yLgoKIyMjIyBnZXRDb2RlR2VuZXJhdG9yUGFyYW1zQXJyYXkKCkl0IHByb3ZpZGVzIHBhcmFtZXRlcnMgZXh0cmFjdGVkIGZyb20gT3BlbkFQSSBTY2hlbWEuCgojIyMjIGdldEFkZGl0aW9uYWxUeXBlRGVmaW5pdGlvbkN1c3RvbUNvZGVHZW5lcmF0b3IKClRoaXMgaXMgYSB0eXBlIGRlZmluaXRpb24gZmlsZSBmb3IgYFRlbXBsYXRlcy5GdW5jdGlvbmFsQXBpQ2xpZW50YC4gVGhlIHJlYXNvbiBpdCBpcyBub3QgaW5jbHVkZWQgaW4gYGdlbmVyYXRlVHlwZURlZmluaXRpb25gIGlzIHRoYXQgeW91IG1heSBub3QgdXNlIHRoZSB0eXBlIGRlZmluaXRpb24gZ2VuZXJhdGVkIGJ5IHRoaXMgZnVuY3Rpb24gZGVwZW5kaW5nIG9uIHlvdXIgdXNhZ2UuCgrigLsgVGhlIHJlYXNvbiBpdCBpcyBub3QgaW5jbHVkZWQgaW4gYGdlbmVyYXRlVHlwZURlZmluaXRpb25gIGlzIHRoYXQgeW91IG1heSBub3QgdXNlIHRoZSB0eXBlIGRlZmluaXRpb25zIGdlbmVyYXRlZCBieSB0aGlzIGZ1bmN0aW9uIGRlcGVuZGluZyBvbiB5b3VyIGFwcGxpY2F0aW9uLgoKIyMjIFRzR2VuZXJhdG9yCgpgYGB0cwppbXBvcnQgeyBUc0dlbmVyYXRvciB9IGZyb20gIkBoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvci9kaXN0L2FwaSI7CmBgYAoKVGhpcyBpcyBhIHdyYXBwZXIgQVBJIGZvciB0aGUgVHlwZVNjcmlwdCBBU1QgdXNlZCBpbnRlcm5hbGx5LgpJdCBpcyBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4KCiMjIyBPcGVuQXBpVG9vbHMKCmBgYHRzCmltcG9ydCB7IE9wZW5BcGlUb29scyB9IGZyb20gIkBoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvci9kaXN0L2FwaSI7CmBgYAoKIyMjIyBQYXJzZXIKCi0gYE9wZW5BcGlUb29scy5QYXJzZXJgCgpUaGlzIGlzIHRoZSBBUEkgZm9yIHBhcnNpbmcgT3BlbkFQSSBTY2hlbWEuCkl0IGlzIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhvdXQgbm90aWNlLgoKIyMgUmVzdHJpY3Rpb25zCgojIyMgRGlyZWN0b3J5IFJlc3RyaWN0aW9ucyBmb3IgUmVtb3RlIFJlZmVyZW5jZQoKVGhlcmUgaXMgYSBsaW1pdGF0aW9uIG9uIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIHN1cHBvcnRlZC4KVG8gc2ltcGxpZnkgaW1wbGVtZW50YXRpb24gd2hlbiBjb252ZXJ0aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmVzIHRvIFR5cGVTY3JpcHQgbmFtZXNwYWNlcywgUmVtb3RlIFJlZmVyZW5jZXMgdXNpbmcgYCRyZWZgIHNob3VsZCBvbmx5IGJlIGRlZmluZWQgaW4gdGhlIGZvbGxvd2luZyBkaXJlY3Rvcnkgc3RydWN0dXJlcy4KSWYgeW91IHdhbnQgdG8gZXh0ZW5kIGl0LCBwbGVhc2UgZm9yayB0aGlzIHJlcG9zaXRvcnkgYW5kIGRvIGl0IHlvdXJzZWxmLgoKYGBgCnNwZWMueW1sIC8vIGVudHJ5IGZpbGUKY29tcG9uZW50cy8KICBoZWFkZXJzLwogIHBhcmFtZXRlcnMvCiAgcGF0aEl0ZW1zLwogIHJlcXVlc3RCb2RpZXMvCiAgcmVzcG9uc2VzLwogIHNjaGVtYXMvCiAgcGF0aHMvCmBgYAoKIyMjIEhUVFAgY29tbXVuaWNhdGlvbiByZXN0cmljdGlvbnMgZm9yIFJlbW90ZSBSZWZlcmVuY2UKCmAkcmVmOiBodHRwOi8vLi4uLmAgQ3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuIFdlIGhvcGUgdG8gc3VwcG9ydCBpdCBpbiB0aGUgZnV0dXJlLgoKIyMgQ29udHJpYnV0aW9ucwoKRmlyc3Qgb2YgYWxsLCB0aGFuayB5b3UgZm9yIHlvdXIgaW50ZXJlc3QuCldoZW4gY29udmVydGluZyBmcm9tIHRoZSBBUEkgc3BlY2lmaWNhdGlvbiB0byBUeXBlU2NyaXB0IGNvZGUsIHJlc29sdmluZyByZWZlcmVuY2UgcmVsYXRpb25zaGlwcyBjYW4gYmUgcGFydGljdWxhcmx5IGNoYWxsZW5naW5nLCBhbmQgdGhlcmUgbWF5IG5vdCBiZSBlbm91Z2ggdGVzdCBjYXNlcy4KQWRkaW5nIHRlc3QgY2FzZXMgaXMgYSB2ZXJ5IHBvd2VyZnVsIHN1cHBvcnQgZm9yIHN0YWJpbGl6aW5nIHRoZSBiZWhhdmlvciwgc28gcGxlYXNlIHJlcG9ydCBhbnkgYnVncyB5b3UgZmluZCB0aGF0IGFyZSBiZWhhdmluZyBzdHJhbmdlbHkuCkFsc28sIHRoZSBiYXNpYyBkZXNpZ24gY29uY2VwdHMgb2YgdGhpcyByZXBvc2l0b3J5IGNhbiBiZSBmb3VuZCBiZWxvdy4gSWYgeW91IHdhbnQgdG8gbWFrZSBjaGFuZ2VzIHRoYXQgZG8gbm90IGZvbGxvdyB0aGVzZSBjb25jZXB0cywgcGxlYXNlIGZvcmsgYW5kIGV4dGVuZCB0aGVtLgpJZiB5b3VyIGNoYW5nZXMgYXJlIGluIGxpbmUgd2l0aCB0aGUgZGVzaWduIGNvbmNlcHQsIHBsZWFzZSBzdWJtaXQgYSBwdWxsIHJlcXVlc3Qgb3IgaXNzdWUhCgojIyBEZXNpZ24gQ29uY2VwdAoKLSBCZSB0eXBlZGVmIGZpcnN0LgotIFR5cGVkZWZzIHNob3VsZCBub3QgY29udGFpbiBhbnkgZW50aXRpZXMgKGZpbGUgc2l6ZSBzaG91bGQgYmUgMCB3aGVuIHR5cGVkZWZzIGFyZSBjb252ZXJ0ZWQgdG8gYC5qc2ApCi0gVGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgc2hvdWxkIGJlIG1hcHBlZCB0byB0aGUgdHlwZWRlZiBzdHJ1Y3R1cmUuCi0gTm8gZGVwZW5kZW5jeSBvbiBhbnkgQVBJIGNsaWVudCBsaWJyYXJ5LgotIENhbiBiZSBleHRlbmRlZCBieSBUeXBlU2NyaXB0IEFTVC4KLSBDb25mb3JtIHRvIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uCi0gSXQgc2hvdWxkIGJlIGEgc2luZ2xlIGZpbGUgdG8gbWFpbnRhaW4gcG9ydGFiaWxpdHkuCgojIyBEZXZlbG9wbWVudAoKYGBgYmFzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL0hpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yLmdpdApjZCBvcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IKcG5wbSBpCiMjIyMgeW91ciBjaGFuZ2UKcG5wbSBidWlsZApwbnBtIHJ1biB0ZXN0OmNvZGU6Z2VuCnBucG0gcnVuIHVwZGF0ZTpzbmFwc2hvdCAjIGlmIHlvdSBjaGFuZ2VkCnBucG0gcnVuIHRlc3QKYGBgCgojIyBVc2VmdWwgZGV2ZWxvcG1lbnQgdG9vbHMKClR5cGVTY3JpcHQgQVNUCgotIGh0dHBzOi8vdHMtYXN0LXZpZXdlci5jb20KCiMjIExJQ0VOQ0UKCltAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9IaW1lbm9uL3R5cGVzY3JpcHQtY29kZWdlbiksIE1JVAoKIyMjIFJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbgoKVmFsaWRhdGlvbiBEZXNpZ24KCi0gQ29weXJpZ2h0IChjKSAyMDE4IEtvZ28gU29mdHdhcmUgTExDIC0gW2h0dHBzOi8vZ2l0aHViLmNvbS9rb2dvc29mdHdhcmVsbGMvb3Blbi1hcGkvdHJlZS9tYXN0ZXIvcGFja2FnZXMvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yI3JlYWRtZV0ob3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yKQo= readmeEtag: '"162fb539b6d489eef4e5c58714484103f827ab0c"' readmeLastModified: Mon, 04 Mar 2024 06:11:33 GMT repositoryId: 321679344 description: TypeScript code generator via OpenAPI scheme. created: '2020-12-15T13:40:09Z' updated: '2024-08-20T19:35:49Z' language: TypeScript archived: false stars: 194 watchers: 5 forks: 16 owner: Himenon logo: https://avatars.githubusercontent.com/u/6715229?v=4 license: MIT repoEtag: '"5909205942a47b3e8e5b5c8466aeacb61c63848d7dff32286d70689af1328041"' repoLastModified: Tue, 20 Aug 2024 19:35:49 GMT foundInMaster: true category: SDK id: fda6dd851e4578e64350df218e79cdaa - source: openapi3 tags repository: https://github.com/aress31/openapi-parser v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXBhcnNlcgoKWyFbSmF2YSBDSSB3aXRoIEdyYWRsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvb3BlbmFwaS1wYXJzZXIvYWN0aW9ucy93b3JrZmxvd3MvZ3JhZGxlLWJ1aWxkLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9vcGVuYXBpLXBhcnNlci9hY3Rpb25zL3dvcmtmbG93cy9ncmFkbGUtYnVpbGQueW1sKQo8YSBocmVmPSJodHRwczovL3BvcnRzd2lnZ2VyLm5ldC9iYXBwc3RvcmUvNmJmNzU3NGI2MzI4NDdmYWFhYTRlYjVlNDJmMTc1N2MiPjxpbWcgYWx0PSJiYXBwIHN0b3JlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQkFwcC1QdWJsaXNoZWQtb3JhbmdlLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5qYXZhLmNvbSI+PGltZyBhbHQ9ImxhbmciIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MYW5nLUphdmEtYmx1ZS5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wIj48aW1nIGFsdD0ibGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtQXBhY2hlJTIwMi4wLXJlZC5zdmciPjwvYT4KPGltZyBhbHQ9InZlcnNpb24iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9WZXJzaW9uLTIuMy1ncmVlbi5zdmciPgoKPiBbIVVQREFURV0KPiBUaGlzIGV4dGVuc2lvbiBoYXMgYmVlbiB1cGRhdGVkIHRvIHVzZSB0aGUgbGF0ZXN0IFtCdXJwIE1vbnRveWEgSmF2YSBBUEldKGh0dHBzOi8vcG9ydHN3aWdnZXIuZ2l0aHViLmlvL2J1cnAtZXh0ZW5zaW9ucy1tb250b3lhLWFwaS9qYXZhZG9jL2J1cnAvYXBpL21vbnRveWEvcGFja2FnZS1zdW1tYXJ5Lmh0bWwpLiBUaGUgZXh0ZW5zaW9uIGhhcyB1bmRlcmdvbmUgYSBjb21wbGV0ZSBvdmVyaGF1bCB0byBpbXByb3ZlIGJvdGggaXRzIGBVSWAvYFVYYCBhbmQgcGVyZm9ybWFuY2UuIFRoZXNlIGNoYW5nZXMgZW5zdXJlIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBtb2Rlcm4gYW5kIG9wdGltaXNlZCBmb3IgdXNlLgoKIyMgb3BlbmFwaS1wYXJzZXIgaXMgYSBgQnVycCBTdWl0ZWAgZXh0ZW5zaW9uIGRlc2lnbmVkIGZvciBgT3BlbkFQSWAtYmFzZWQgYEFQSWAgdGVzdGluZwoKPiBUaGUgYE9wZW5BUElgIFNwZWNpZmljYXRpb24gKGBPQVNgKSBkZWZpbmVzIGEgc3RhbmRhcmQsIHByb2dyYW1taW5nIGxhbmd1YWdlLWFnbm9zdGljIGludGVyZmFjZSBkZXNjcmlwdGlvbiBmb3IgYFJFU1RgIGBBUElzYCwgd2hpY2ggYWxsb3dzIGJvdGggaHVtYW5zIGFuZCBjb21wdXRlcnMgdG8gZGlzY292ZXIgYW5kIHVuZGVyc3RhbmQgdGhlIGNhcGFiaWxpdGllcyBvZiBhIHNlcnZpY2Ugd2l0aG91dCByZXF1aXJpbmcgYWNjZXNzIHRvIHNvdXJjZSBjb2RlLCBhZGRpdGlvbmFsIGRvY3VtZW50YXRpb24sIG9yIGluc3BlY3Rpb24gb2YgbmV0d29yayB0cmFmZmljLiBXaGVuIHByb3Blcmx5IGRlZmluZWQgdmlhIGBPcGVuQVBJYCwgYSBjb25zdW1lciBjYW4gdW5kZXJzdGFuZCBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgcmVtb3RlIHNlcnZpY2Ugd2l0aCBhIG1pbmltYWwgYW1vdW50IG9mIGltcGxlbWVudGF0aW9uIGxvZ2ljLiBTaW1pbGFyIHRvIHdoYXQgaW50ZXJmYWNlIGRlc2NyaXB0aW9ucyBoYXZlIGRvbmUgZm9yIGxvd2VyLWxldmVsIHByb2dyYW1taW5nLCB0aGUgYE9wZW5BUElgIFNwZWNpZmljYXRpb24gcmVtb3ZlcyBndWVzc3dvcmsgaW4gY2FsbGluZyBhIHNlcnZpY2UuCj4KPiBVc2UgY2FzZXMgZm9yIG1hY2hpbmUtcmVhZGFibGUgYEFQSWAgZGVmaW5pdGlvbiBkb2N1bWVudHMgaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bzogaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbjsgY29kZSBnZW5lcmF0aW9uIGZvciBkb2N1bWVudGF0aW9uLCBjbGllbnRzLCBhbmQgc2VydmVyczsgYW5kIGF1dG9tYXRpb24gb2YgdGVzdCBjYXNlcy4gYE9wZW5BUElgIGRvY3VtZW50cyBkZXNjcmliZSBhbiBgQVBJYCdzIHNlcnZpY2VzIGFuZCBhcmUgcmVwcmVzZW50ZWQgaW4gZWl0aGVyIGBZQU1MYCBvciBgSlNPTmAgZm9ybWF0cy4gVGhlc2UgZG9jdW1lbnRzIG1heSBlaXRoZXIgYmUgcHJvZHVjZWQgYW5kIHNlcnZlZCBzdGF0aWNhbGx5IG9yIGJlIGdlbmVyYXRlZCBkeW5hbWljYWxseSBmcm9tIGFuIGFwcGxpY2F0aW9uLgo+Cj4gXC0gW2BPcGVuQVBJYCBJbml0aWF0aXZlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL2BPcGVuQVBJYC1TcGVjaWZpY2F0aW9uKQoKUGVyZm9ybWluZyBzZWN1cml0eSBhc3Nlc3NtZW50IG9mIGBPcGVuQVBJYC1iYXNlZCBgQVBJc2AgY2FuIGJlIGEgdGVkaW91cyB0YXNrIGR1ZSB0byBgQnVycCBTdWl0ZWAgKGluZHVzdHJ5IHN0YW5kYXJkKSBsYWNraW5nIG5hdGl2ZSBgT3BlbkFQSWAgcGFyc2luZyBjYXBhYmlsaXRpZXMuIEEgc29sdXRpb24gdG8gdGhpcyBzaXR1YXRpb24sIGlzIHRvIHVzZSB0aGlyZC1wYXJ0eSB0b29scyAoZS5nLiBgU09BUC1VSWApIG9yIHRvIGltcGxlbWVudCBjdXN0b20gc2NyaXB0cyAob2Z0ZW4gb24gYSBwZXIgZW5nYWdlbWVudCBiYXNpcykgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIG9mIGBPcGVuQVBJYCBkb2N1bWVudHMgYW5kIGludGVncmF0ZS9jaGFpbiB0aGUgcmVzdWx0cyB0byBgQnVycCBTdWl0ZWAgdG8gdXNlIGl0cyBmaXJzdCBjbGFzcyBzY2FubmluZyBjYXBhYmlsaXRpZXMuCgpvcGVuYXBpLXBhcnNlciBpcyBhbiBgT3BlbkFQSWAgcGFyc2VyIHRoYXQgYWltcyB0byBzdHJlYW1saW5lIHRoaXMgZW50aXJlIHByb2Nlc3MgYnkgYWxsb3dpbmcgc2VjdXJpdHkgcHJvZmVzc2lvbmFscyB0byB1c2UgYEJ1cnAgU3VpdGVgIGFzIGEgc3RhbmRhbG9uZSB0b29sIGZvciBzZWN1cml0eSBhc3Nlc3NtZW50IG9mIGBPcGVuQVBJYC1iYXNlZCBgQVBJc2AuCgojIyBGZWF0dXJlcwoKLSBgT3BlbkFQSWAgZG9jdW1lbnRzIGNhbiBiZSBwYXJzZWQgZWl0aGVyIGZyb20gYSBzdXBwbGllZCBmaWxlIG9yIFVSTC4gVGhlIGV4dGVuc2lvbiBjYW4gZmV0Y2ggYE9wZW5BUElgIGRvY3VtZW50cyBkaXJlY3RseSBmcm9tIGEgVVJMIHVzaW5nIHRoZSBgU2VuZCB0byBTd2FnZ2VyIFBhcnNlcmAgZmVhdHVyZSB1bmRlciB0aGUgYFRhcmdldCAtPiBTaXRlIG1hcGAgY29udGV4dCBtZW51LgotIFBhcnNlIGBPcGVuQVBJYCBkb2N1bWVudHMsIGZvcm1lcmx5IGtub3duIGFzIHRoZSBgU3dhZ2dlciBzcGVjaWZpY2F0aW9uYCwgZnVsbHkgY29tcGxpYW50IHdpdGggYE9wZW5BUElgIDIuMC8zLjAgU3BlY2lmaWNhdGlvbnMgKGBPQVNgKS4KLSBSZXF1ZXN0cyBjYW4gYmUgZGlyZWN0bHkgdmlld2VkL2VkaXRlZCB3aXRoaW4gdGhlIGV4dGVuc2lvbiBwcmlvciB0byBzZW5kaW5nIHRoZW0gdG8gb3RoZXIgQnVycCB0b29scy4KLSBSZXF1ZXN0cyBjYW4gYmUgc2VudCB0byB0aGUgYENvbXBhcmVyYCwgYEludHJ1ZGVyYCwgYE9yZ2FuaXplcmAsIGBSZXBlYXRlcmAsIGBTY2FubmVyYCwgYFNpdGUgbWFwYCBhbmQgYFNjb3BlYCBCdXJwIHRvb2xzLgotIFJlcXVlc3RzIG1hdGNoaW5nIHNwZWNpZmljIGNyaXRlcmlhcyAoZGV0YWlsZWQgaW4gdGhlICdQYXJhbWV0ZXJzJyB0YWIpIGNhbiBiZSBpbnRlcmNlcHRlZCB0byBhdXRvbWF0aWNhbGx5IG1hdGNoIGFuZCByZXBsYWNlIHRoZSBwYXJzZWQgcGFyYW1ldGVycyBkZWZhdWx0IHZhbHVlcyBkZWZpbmVkIGluIHRoZSAnUGFyYW1ldGVycycgdGFiLiBUaGlzIGZlYXR1cmUgYWxsb3dzIGZvciBmaW5lLXR1bmluZyBvZiB0aGUgcmVxdWVzdHMgcHJpb3IgdG8gc2VuZGluZyB0aGVtIHRvIG90aGVyIEJ1cnAgdG9vbHMgKGUuZy4sIHNjYW5uZXIpLiBFZGl0ZWQgcmVxdWVzdHMgY2FuIGJlIHZpZXdlZCB3aXRoaW4gdGhlICdNb2RpZmllZCBSZXF1ZXN0IChgT3BlbkFQSWAgUGFyc2VyKScgdGFiIG9mIEJ1cnAncyBtZXNzYWdlIGVkaXRvci4KLSBSb3cgaGlnaGxpZ2h0aW5nIGFsbG93aW5nIHBlbnRlc3RlcnMgdG8gaGlnaGxpZ2h0ICJpbnRlcmVzdGluZyIgYEFQSWAgY2FsbHMgYW5kL29yIGNvbG91ciBjb2RlIHRoZW0gZm9yIHJlcG9ydGluZyBwdXJwb3Nlcy4KLSBJbmNsdWRlcyBhbiBleHBvcnQgdG8gYENTVmAgZmVhdHVyZSwgYWxsb3dpbmcgdXNlcnMgdG8gZWFzaWx5IGV4cG9ydCBzZWxlY3RlZCBgQVBJYCByZXF1ZXN0cyBpbiBgQ1NWYCBmb3JtYXQgZm9yIGZ1cnRoZXIgYW5hbHlzaXMgb3IgcmVwb3J0aW5nLgotIFN1cHBvcnRzIGJvdGggYEpTT05gIGFuZCBgWUFNTGAgZm9ybWF0cy4KCiMjIFJlcXVpcmVtZW50cwoKIyMjIDEuIFN5c3RlbSByZXF1aXJlbWVudHMKCi0gT3BlcmF0aW5nIFN5c3RlbTogQ29tcGF0aWJsZSB3aXRoIGBMaW51eGAsIGBtYWNPU2AsIGFuZCBgV2luZG93c2Agb3BlcmF0aW5nIHN5c3RlbXMuCi0gSmF2YSBEZXZlbG9wbWVudCBLaXQgKEpESyk6IGBWZXJzaW9uIDExYCBvciBsYXRlci4KLSBCdXJwIFN1aXRlIFByb2Zlc3Npb25hbCBvciBDb21tdW5pdHkgRWRpdGlvbjogYFZlcnNpb24gMjAyMy4xMS4xLjNgIG9yIGxhdGVyLgoKICA+IFshSU1QT1JUQU5UXQogID4gUGxlYXNlIG5vdGUgdGhhdCB1c2luZyBhbnkgdmVyc2lvbiBsb3dlciB0aGFuIGAyMDIzLjMuMmAgbWF5IHJlc3VsdCBpbiBhIFtqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXJyb3JdKGh0dHBzOi8vZm9ydW0ucG9ydHN3aWdnZXIubmV0L3RocmVhZC9tb250b3lhLWFwaS1ub3N1Y2htZXRob2RlcnJvci0yNzUwNDhiZSkuIEl0IGlzIGNydWNpYWwgdG8gdXNlIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBvciBhIG1vcmUgcmVjZW50IG9uZSB0byBhdm9pZCB0aGlzIGlzc3VlLgoKIyMjIDIuIEJ1aWxkIHRvb2wKCi0gR3JhZGxlOiBgVmVyc2lvbiA4LjVgIG9yIGxhdGVyIChyZWNvbW1lbmRlZCkuIFRoZSBbYnVpbGQuZ3JhZGxlXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9vcGVuYXBpLXBhcnNlci9ibG9iL21haW4vbGliL2J1aWxkLmdyYWRsZSkgZmlsZSBpcyBwcm92aWRlZCBpbiB0aGUgcHJvamVjdCByZXBvc2l0b3J5LgoKIyMjIDMuIEVudmlyb25tZW50IHZhcmlhYmxlcwoKLSBTZXQgdXAgdGhlIGBKQVZBX0hPTUVgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBvaW50IHRvIHRoZSBgSkRLYCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgoKUGxlYXNlIGVuc3VyZSB0aGF0IGFsbCBzeXN0ZW0gcmVxdWlyZW1lbnRzLCBpbmNsdWRpbmcgYSBjb21wYXRpYmxlIHZlcnNpb24gb2YgYEJ1cnAgU3VpdGVgLCBhcmUgbWV0IGJlZm9yZSBidWlsZGluZyBhbmQgcnVubmluZyB0aGUgcHJvamVjdC4gTm90ZSB0aGF0IHRoZSBwcm9qZWN0J3MgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzIHdpbGwgYmUgYXV0b21hdGljYWxseSBtYW5hZ2VkIGFuZCBpbnN0YWxsZWQgYnkgYEdyYWRsZWAgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLiBBZGhlcmluZyB0byB0aGUgcmVxdWlyZW1lbnRzIHdpbGwgaGVscCBhdm9pZCBwb3RlbnRpYWwgaXNzdWVzIGFuZCByZWR1Y2UgdGhlIG5lZWQgZm9yIG9wZW5pbmcgbmV3IGlzc3VlcyBpbiB0aGUgcHJvamVjdCByZXBvc2l0b3J5LgoKIyMgSW5zdGFsbGF0aW9uCgojIyMgMS4gQ29tcGlsYXRpb24KCjEuIEVuc3VyZSB5b3UgaGF2ZSBbR3JhZGxlXShodHRwczovL2dyYWRsZS5vcmcvKSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuCgoyLiBEb3dubG9hZCB0aGUgYG9wZW5hcGktcGFyc2VyYCByZXBvc2l0b3J5OgoKICAgYGBgYmFzaAogICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvb3BlbmFwaS1wYXJzZXIKICAgY2QgLlxvcGVuYXBpLXBhcnNlclwKICAgYGBgCgozLiBCdWlsZCB0aGUgc3RhbmRhbG9uZSBgamFyYDoKCiAgIGBgYGJhc2gKICAgLi9ncmFkbGV3IGZhdEphcgogICBgYGAKCiMjIyAyLiBMb2FkaW5nIHRoZSBFeHRlbnNpb24gSW50byBgQnVycCBTdWl0ZWAKClRvIGluc3RhbGwgYG9wZW5hcGktcGFyc2VyYCBpbiBgQnVycCBTdWl0ZWAsIGZpcnN0IGdvIHRvIHRoZSBgRXh0ZW5zaW9uc2AgdGFiIGFuZCBjbGljayBvbiB0aGUgYEFkZGAgYnV0dG9uLiBUaGVuLCBzZWxlY3QgdGhlIGBvcGVuYXBpLXBhcnNlci1hbGxgIGphciBmaWxlIGxvY2F0ZWQgaW4gdGhlIGAuXGJ1aWxkXGxpYnNgIGZvbGRlciB0byBsb2FkIHRoZSBleHRlbnNpb24uCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNraXAgdGhlIFtDb21waWxhdGlvbl0oIzEtY29tcGlsYXRpb24pIHN0ZXAgZW50aXJlbHkgYW5kIGRvd25sb2FkIHRoZSBleHRlbnNpb24gZGlyZWN0bHkgZnJvbSB0aGUgW0JBcHAgU3RvcmVdKGh0dHBzOi8vcG9ydHN3aWdnZXIubmV0L2JhcHBzdG9yZS82YmY3NTc0YjYzMjg0N2ZhYWFhNGViNWU0MmYxNzU3YykuCgpfTm90ZTogVGhlIHZlcnNpb24gZGlzdHJpYnV0ZWQgb24gdGhlIFtCQXBwIFN0b3JlXShodHRwczovL3BvcnRzd2lnZ2VyLm5ldC9iYXBwc3RvcmUvNmJmNzU3NGI2MzI4NDdmYWFhYTRlYjVlNDJmMTc1N2MpIG1pZ2h0IGJlIGxhZ2dpbmcgYmVoaW5kIHRoZSB2ZXJzaW9uIGF2YWlsYWJsZSBvbiB0aGlzIHJlcG9zaXRvcnkuXwoKIyMgUm9hZG1hcAoKLSBbIF0gQmVhdXRpZnkgdGhlIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZS4KLSBbIF0gRGVlcCBwYXJzaW5nIG9mIGBPcGVuQVBJYCBzY2hlbWFzIHRvIGNvbGxlY3QgYWxsIG5lc3RlZCBwYXJhbWV0ZXJzIGFsb25nIHdpdGggdGhlaXIgZXhhbXBsZS90eXBlLgotIFsgXSBDb2RlIHNpbXBsaWZpY2F0aW9uL3JlZmFjdG9yaW5nLgogIC0gW3hdIFVzZSBgTXlIdHRwUmVxdWVzdGAgaW5zdGVhZCBvZiBgUmVxdWVzdFdpdGhNZXRhZGF0YWAuCi0gW3hdIEVuYWJsZSBjZWxscyBlZGl0aW5nIHRvIGNoYW5nZSBgQVBJYCBjYWxscyBkaXJlY3RseSBmcm9tIHRoZSBgR1VJYC4KLSBbIF0gRml4IHRoZSBjdXN0b20gcmVxdWVzdCBlZGl0b3IgdGFiIHRvIHdvcmsgcHJvcGVybHkgd2l0aCBpbnRlcmNlcHRlZCByZXF1ZXN0cyBiYXNlZCBvbiB0aGUgbWF0Y2ggYW5kIHJlcGxhY2UgcnVsZXNldHMuCi0gW3hdIEZ1cnRoZXIgb3B0aW1pc2UgdGhlIHNvdXJjZSBjb2RlLgotIFsgXSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgYXV0aGVudGljYXRlZCB0ZXN0aW5nICh2aWEgdXNlci1zdXBwbGllZCBgQVBJYC1rZXlzKS4KLSBbeF0gSW1wcm92ZSB0aGUgYFBhcmFtYCBjb2x1bW4gYnkgYWRkaW5nIHBhcmFtZXRlcnMgdHlwZSAoZS5nLiBgaW5xdWVyeWAsIGBpbmJvZHlgKS4KLSBbeF0gSW1wcm92ZSB0aGUgdGFibGVzIGFuZCBjb250ZXh0IG1lbnVzLgotIFt4XSBJbmNyZWFzZSB0aGUgZXh0ZW5zaW9uIHZlcmJvc2l0eSAodmlhIHRoZSBib3R0b20gcGFuZWwpLgoKU2VlIFtUT0RPXShUT0RPLm1kKSBmb3IgYWRkaXRpb25hbCBvdXRzdGFuZGluZyB0YXNrcy4KCiMjIFByb2plY3QgSW5mb3JtYXRpb24KCkluIEp1bHkgMjAxNiwgYWZ0ZXIgcG9zdGluZyBhIHJlcXVlc3QgZm9yIGltcHJvdmVtZW50IG9uIHRoZSBbUG9ydFN3aWdnZXIgc3VwcG9ydCBmb3J1bV0oaHR0cHM6Ly9zdXBwb3J0LnBvcnRzd2lnZ2VyLm5ldC9jdXN0b21lci9wb3J0YWwvcXVlc3Rpb25zLzE2MzU4Mjc4LXN3YWdnZXItcGFyc2VyLWFuZC13c2RsZXItaW1wcm92ZW1lbnQpLCBJIGRlY2lkZWQgdG8gdGFrZSB0aGUgaW5pdGlhdGl2ZSBhbmQgdG8gaW1wbGVtZW50IGEgc29sdXRpb24gbXlzZWxmLgoKVGhlIGV4dGVuc2lvbiBpcyBzdGlsbCBpbiBkZXZlbG9wbWVudCwgZmVlZGJhY2ssIGNvbW1lbnRzIGFuZCBjb250cmlidXRpb25zIGFyZSB0aGVyZWZvcmUgbXVjaCBhcHByZWNpYXRlZC4KCiMjIFNwb25zb3Ig8J+SlgoKSWYgdGhpcyBleHRlbnNpb24gaGFzIHNhdmVkIHlvdSB0aW1lIGFuZCBoYXNzbGUgZHVyaW5nIGEgc2VjdXJpdHkgYXNzZXNzbWVudCwgY29uc2lkZXIgc2hvd2luZyBzb21lIGxvdmUgYnkgc3BvbnNvcmluZyBhIGN1cCBvZiBjb2ZmZWUg4piVIGZvciB0aGUgZGV2ZWxvcGVyLiBJdCdzIHRoZSBmdWVsIHRoYXQgcG93ZXJzIGRldmVsb3BtZW50LCBhZnRlciBhbGwuIEp1c3QgaGl0IHRoYXQgc2hpbnkgYFNwb25zb3JgIGJ1dHRvbiBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIG9yIFtjbGljayBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvYXJlc3MzMSkgdG8gY29udHJpYnV0ZSBhbmQga2VlcCB0aGUgY2FmZmVpbmUgZmxvd2luZy4g8J+SuAoKIyMgUmVwb3J0aW5nIElzc3VlcwoKRGlkIHlvdSBmaW5kIGEgYnVnPyBXZWxsLCBkb24ndCBqdXN0IGxldCBpdCBjcmF3bCBhcm91bmQhIExldCdzIHNxdWFzaCBpdCB0b2dldGhlciBsaWtlIGEgY291cGxlIG9mIGJ1ZyB3aGlzcGVyZXJzISDwn5Cb8J+SqgoKUGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIHRoZSBbR2l0SHViIGlzc3VlcyB0cmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9vcGVuYXBpLXBhcnNlci9pc3N1ZXMpLiBUb2dldGhlciwgd2UnbGwgbWFrZSB0aGlzIGV4dGVuc2lvbiBhcyByZWxpYWJsZSBhcyBhIGNvY2tyb2FjaCBzdXJ2aXZpbmcgYSBudWNsZWFyIGFwb2NhbHlwc2UhIPCfmoAKCiMjIENvbnRyaWJ1dGluZwoKTG9va2luZyB0byBtYWtlIGEgc3BsYXNoIHdpdGggeW91ciBtYWQgY29kaW5nIHNraWxscz8g8J+SuwoKQXdlc29tZSEgQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSBhbmQgZ3JlYXRseSBhcHByZWNpYXRlZC4gUGxlYXNlIHN1Ym1pdCBhbGwgUFJzIG9uIHRoZSBbR2l0SHViIHB1bGwgcmVxdWVzdHMgdHJhY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvb3BlbmFwaS1wYXJzZXIvcHVsbHMpLiBUb2dldGhlciB3ZSBjYW4gbWFrZSB0aGlzIGV4dGVuc2lvbiBldmVuIG1vcmUgYW1hemluZyEg8J+agAoKIyMgTGljZW5zZQoKU2VlIFtMSUNFTlNFXShMSUNFTlNFKS4K readmeEtag: '"32d486082518e7ab9b4321d546b059fe5dc739c1"' readmeLastModified: Wed, 03 Jan 2024 18:53:00 GMT repositoryId: 70046718 description: >- Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs security assessments (approved by PortSwigger for inclusion in their official BApp Store). created: '2016-10-05T09:32:42Z' updated: '2024-08-29T21:20:10Z' language: Java archived: false stars: 190 watchers: 7 forks: 52 owner: aress31 logo: https://avatars.githubusercontent.com/u/11601622?v=4 license: Apache-2.0 repoEtag: '"cd51caca8ba35fcfe3d084360e0a92b269900ee8a720e2ad16f24153bcd11437"' repoLastModified: Thu, 29 Aug 2024 21:20:10 GMT foundInMaster: true category: - Documentation - Parsers id: 3dd0465c78eeb00e652527da7f6ec81a oldLocations: - https://github.com/aress31/swurg - source: openapi3 tags repository: https://github.com/openapi-library/openapivalidators v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFZhbGlkYXRvcnMKCiFbYnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpCiFbc3R5bGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWFpcmJuYi1mZjVhNWYuc3ZnKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycykKWyFbTUlUIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvb3BlbmFwaS12YWxpZGF0b3Iuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFKQpbIVtjb250cmlidXRpb25zIHdlbGNvbWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29udHJpYnV0aW9ucy13ZWxjb21lLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCgpVc2UgSmVzdCBvciBDaGFpIHRvIGFzc2VydCB0aGF0IEhUVFAgcmVzcG9uc2VzIHNhdGlzZnkgYW4gT3BlbkFQSSBzcGVjLgoKIyMgUHJvYmxlbSDwn5iVCgpJZiB5b3VyIHNlcnZlcidzIGJlaGF2aW91ciBkb2Vzbid0IG1hdGNoIHlvdXIgQVBJIGRvY3VtZW50YXRpb24sIHRoZW4geW91IG5lZWQgdG8gY29ycmVjdCB5b3VyIHNlcnZlciwgeW91ciBkb2N1bWVudGF0aW9uLCBvciBib3RoLiBUaGUgc29vbmVyIHlvdSBrbm93IHRoZSBiZXR0ZXIuCgojIyBTb2x1dGlvbiDwn5iECgpUaGVzZSB0ZXN0IHBsdWdpbnMgbGV0IHlvdSBhdXRvbWF0aWNhbGx5IHRlc3Qgd2hldGhlciB5b3VyIHNlcnZlcidzIGJlaGF2aW91ciBhbmQgZG9jdW1lbnRhdGlvbiBtYXRjaC4gVGhleSBleHRlbmQgSmVzdCBhbmQgQ2hhaSB0byBzdXBwb3J0IHRoZSBbT3BlbkFQSSBzdGFuZGFyZF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8pIGZvciBkb2N1bWVudGluZyBSRVNUIEFQSXMuIEluIHlvdXIgSmF2YVNjcmlwdCB0ZXN0cywgeW91IGNhbiBzaW1wbHkgYXNzZXJ0IGBleHBlY3QocmVzcG9uc2VPYmplY3QpLnRvU2F0aXNmeUFwaVNwZWMoKWAKCiMjIyBbamVzdC1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL3RyZWUvbWFzdGVyL3BhY2thZ2VzL2plc3Qtb3BlbmFwaSNyZWFkbWUpCgpbIVtkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2plc3Qtb3BlbmFwaSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2plc3Qtb3BlbmFwaSkKWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2plc3Qtb3BlbmFwaS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9qZXN0LW9wZW5hcGkpCgojIyMgW0NoYWkgT3BlbkFQSSBSZXNwb25zZSBWYWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvdHJlZS9tYXN0ZXIvcGFja2FnZXMvY2hhaS1vcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvciNyZWFkbWUpCgpbIVtkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2NoYWktb3BlbmFwaS1yZXNwb25zZS12YWxpZGF0b3IpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jaGFpLW9wZW5hcGktcmVzcG9uc2UtdmFsaWRhdG9yKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvY2hhaS1vcGVuYXBpLXJlc3BvbnNlLXZhbGlkYXRvci5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jaGFpLW9wZW5hcGktcmVzcG9uc2UtdmFsaWRhdG9yKQoKIyMgQ29udHJpYnV0b3JzIOKcqAoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yd2FsbGU2MSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTgxNzAxNjk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+UmljaGFyZCBXYWxsZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNtYWludGVuYW5jZS1yd2FsbGU2MSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPXJ3YWxsZTYxIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1yd2FsbGU2MSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBcndhbGxlNjEiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0pvbm55U3BydWNlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMDgxMjI3Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5Kb25ueSBTcHJ1Y2U8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9Sm9ubnlTcHJ1Y2UiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPUpvbm55U3BydWNlIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FKb25ueVNwcnVjZSIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQWxleERvYmVjayI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTA1MTkzODg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+QWxleCBEb2JlY2s8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9QWxleERvYmVjayIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvaXNzdWVzP3E9YXV0aG9yJTNBQWxleERvYmVjayIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0Jlbkd1MyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzEwNTg1Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5CZW4gR3V0aHJpZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1CZW5HdTMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2lzc3Vlcz9xPWF1dGhvciUzQUJlbkd1MyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9tYXJ0aWpudmVndGVyLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI1MTM0NDc3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPk1hcnRpam4gVmVndGVyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPW12ZWd0ZXIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2x1ZGVrbm92eSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM2MTA2MTI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+THVkZWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvY29tbWl0cz9hdXRob3I9bHVkZWtub3Z5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9pc3N1ZXM/cT1hdXRob3IlM0FsdWRla25vdnkiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90Z2lhcmRpbmEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3NDU5MTA0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPlRvbW15IEdpYXJkaW5hPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPXRnaWFyZGluYSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLWxpYnJhcnkvT3BlbkFQSVZhbGlkYXRvcnMvaXNzdWVzP3E9YXV0aG9yJTNBdGdpYXJkaW5hIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL3hvdGFidTQuZ2l0aHViLmlvLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzAzMzk3Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5PbGVrc2FuZHIgS2hvdGVtc2t5aTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1Yb3RhYnU0IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbWl0a2VpbmFuOSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjU3NzMzNT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5BbWl0IEtlaW5hbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktbGlicmFyeS9PcGVuQVBJVmFsaWRhdG9ycy9jb21taXRzP2F1dGhvcj1hbWl0a2VpbmFuOSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRGV0YWNoSGVhZCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzAyODMzNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5EZXRhY2hIZWFkPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2lzc3Vlcz9xPWF1dGhvciUzQURldGFjaEhlYWQiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly9rYXJsc3NvbmtyaXN0b2ZmZXIuY29tLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMDQ5MDIwMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iIi8+PGJyIC8+PHN1Yj48Yj5LcmlzdG9mZmVyIEthcmxzc29uPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1saWJyYXJ5L09wZW5BUElWYWxpZGF0b3JzL2NvbW1pdHM/YXV0aG9yPWtyaXN0b2ZmZXJrYXJsc3NvbjkzIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogIDwvdHI+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+Cg== readmeEtag: '"4d5a529f7a19b52fab62aaf17e9c5263bd765e2d"' readmeLastModified: Tue, 29 Mar 2022 10:12:21 GMT repositoryId: 199614125 description: Use Jest or Chai to assert that HTTP responses satisfy an OpenAPI spec created: '2019-07-30T08:56:01Z' updated: '2024-09-01T09:39:22Z' language: TypeScript archived: false stars: 189 watchers: 11 forks: 35 owner: openapi-library logo: https://avatars.githubusercontent.com/u/53815441?v=4 license: MIT repoEtag: '"b2c0e920bdb845322218363d2d55bd3f389ac782dbdd1df6796252abb4685800"' repoLastModified: Sun, 01 Sep 2024 09:39:22 GMT foundInMaster: true category: Testing id: a81dda804efb1a473233a16a10be8d0b - source: openapi3 tags repository: https://github.com/luolingchun/flask-openapi3 v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICAgIDxhIGhyZWY9Imh0dHBzOi8vbHVvbGluZ2NodW4uZ2l0aHViLmlvL2ZsYXNrLW9wZW5hcGkzLyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgIDxpbWcgY2xhc3M9Im9mZi1nbGIiIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2x1b2xpbmdjaHVuL2ZsYXNrLW9wZW5hcGkzL21hc3Rlci9kb2NzL2ltYWdlcy9sb2dvLXRleHQuc3ZnIiAKICAgICAgICAgICAgIHdpZHRoPSI2MCUiIGhlaWdodD0iYXV0byIgYWx0PSJsb2dvIj4KICAgIDwvYT4KPC9kaXY+CjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGVtPkdlbmVyYXRlIFJFU1QgQVBJIGFuZCBPcGVuQVBJIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgRmxhc2sgcHJvamVjdC48L2VtPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2x1b2xpbmdjaHVuL2ZsYXNrLW9wZW5hcGkzL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3RzLnltbCIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgIDxpbWcgY2xhc3M9Im9mZi1nbGIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvbHVvbGluZ2NodW4vZmxhc2stb3BlbmFwaTMvdGVzdHMueW1sP2JyYW5jaD1tYXN0ZXIiIGFsdD0idGVzdCI+CiAgICA8L2E+CiAgICA8YSBocmVmPSJodHRwczovL3B5cGkub3JnL3Byb2plY3QvZmxhc2stb3BlbmFwaTMvIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgPGltZyBjbGFzcz0ib2ZmLWdsYiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9mbGFzay1vcGVuYXBpMyIgYWx0PSJweXBpIj4KICAgIDwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vcHlwaXN0YXRzLm9yZy9wYWNrYWdlcy9mbGFzay1vcGVuYXBpMyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgIDxpbWcgY2xhc3M9Im9mZi1nbGIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2RtL2ZsYXNrLW9wZW5hcGkzIiBhbHQ9InB5cGlzdGF0cyI+CiAgICA8L2E+CiAgICA8YSBocmVmPSJodHRwczovL3B5cGkub3JnL3Byb2plY3QvZmxhc2stb3BlbmFwaTMvIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgPGltZyBjbGFzcz0ib2ZmLWdsYiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9mbGFzay1vcGVuYXBpMyIgYWx0PSJweXBpIHZlcnNpb25zIj4KICAgIDwvYT4KPC9wPgoKKipGbGFzayBPcGVuQVBJMyoqIGlzIGEgd2ViIEFQSSBmcmFtZXdvcmsgYmFzZWQgb24gKipGbGFzayoqLiBJdCB1c2VzICoqUHlkYW50aWMqKiB0byB2ZXJpZnkgZGF0YSBhbmQgYXV0b21hdGljCmdlbmVyYXRpb24gb2YgaW50ZXJhY3Rpb24gZG9jdW1lbnRhdGlvbi4KClRoZSBrZXkgZmVhdHVyZXMgYXJlOgoKLSAqKkVhc3kgdG8gY29kZToqKiBFYXN5IHRvIHVzZSBhbmQgZWFzeSB0byBsZWFybgoKLSAqKlN0YW5kYXJkIGRvY3VtZW50IHNwZWNpZmljYXRpb246KiogQmFzZWQgb24gW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wKQoKLSAqKkludGVyYWN0aXZlIE9wZW5BUEkgZG9jdW1lbnRhdGlvbjoqKiBbU3dhZ2dlcl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpLCBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKSwgW1JhcGlEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9yYXBpLWRvYy9SYXBpRG9jKSwgW1JhcGlQZGZdKGh0dHBzOi8vbXJpbjkuZ2l0aHViLmlvL1JhcGlQZGYvKSwgW1NjYWxhcl0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIpLCBbRWxlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9lbGVtZW50cykKCi0gKipEYXRhIHZhbGlkYXRpb246KiogRmFzdCBkYXRhIHZlcmlmaWNhdGlvbiBiYXNlZCBvbiBbUHlkYW50aWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9weWRhbnRpYy9weWRhbnRpYykKCiMjIFJlcXVpcmVtZW50cwoKUHl0aG9uIDMuOCsKCmZsYXNrLW9wZW5hcGkzIGlzIGRlcGVuZGVudCBvbiB0aGUgZm9sbG93aW5nIGxpYnJhcmllczoKCi0gW0ZsYXNrXShodHRwczovL2dpdGh1Yi5jb20vcGFsbGV0cy9mbGFzaykgZm9yIHRoZSB3ZWIgYXBwLgotIFtQeWRhbnRpY10oaHR0cHM6Ly9naXRodWIuY29tL3B5ZGFudGljL3B5ZGFudGljKSBmb3IgdGhlIGRhdGEgdmFsaWRhdGlvbi4KCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaApwaXAgaW5zdGFsbCAtVSBmbGFzay1vcGVuYXBpM1tzd2FnZ2VyXQpgYGAKCm9yCgpgYGBiYXNoCmNvbmRhIGluc3RhbGwgLWMgY29uZGEtZm9yZ2UgZmxhc2stb3BlbmFwaTNbc3dhZ2dlcl0KYGBgCgo8ZGV0YWlscyBtYXJrZG93bj0iYmxvY2siPgo8c3VtbWFyeT5PcHRpb25hbCBkZXBlbmRlbmNpZXM8L3N1bW1hcnk+CgotIFtweXRob24tZW1haWwtdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vSm9zaERhdGEvcHl0aG9uLWVtYWlsLXZhbGlkYXRvcikgc3VwcG9ydHMgZW1haWwgdmVyaWZpY2F0aW9uLgotIFtweXRob24tZG90ZW52XShodHRwczovL2dpdGh1Yi5jb20vdGhlc2t1bWFyL3B5dGhvbi1kb3RlbnYjcmVhZG1lKSBlbmFibGVzIHN1cHBvcnQKICBmb3IgW0Vudmlyb25tZW50IFZhcmlhYmxlcyBGcm9tIGRvdGVudl0oaHR0cHM6Ly9mbGFzay5wYWxsZXRzcHJvamVjdHMuY29tL2VuL2xhdGVzdC9jbGkvI2RvdGVudikgd2hlbiBydW5uaW5nIGBmbGFza2AKICBjb21tYW5kcy4KLSBbcHl5YW1sXShodHRwczovL2dpdGh1Yi5jb20veWFtbC9weXlhbWwpIGlzIHVzZWQgdG8gb3V0cHV0IHRoZSBPcGVuQVBJIGRvY3VtZW50IGluIHlhbWwgZm9ybWF0LgotIFthc2dpcmVmXShodHRwczovL2dpdGh1Yi5jb20vZGphbmdvL2FzZ2lyZWYpIGFsbG93cyB2aWV3cyB0byBiZSBkZWZpbmVkIHdpdGggYGFzeW5jIGRlZmAgYW5kIHVzZSBgYXdhaXRgLgotIFtmbGFzay1vcGVuYXBpMy1wbHVnaW5zXShodHRwczovL2dpdGh1Yi5jb20vbHVvbGluZ2NodW4vZmxhc2stb3BlbmFwaTMtcGx1Z2lucykgUHJvdmlkZSBPcGVuQVBJIFVJIGZvciBmbGFzay1vcGVuYXBpMy4KClRvIGluc3RhbGwgdGhlc2UgZGVwZW5kZW5jaWVzIHdpdGggZmxhc2stb3BlbmFwaTM6CgpgYGBiYXNoCnBpcCBpbnN0YWxsIGZsYXNrLW9wZW5hcGkzW3lhbWxdCiMgb3IKcGlwIGluc3RhbGwgZmxhc2stb3BlbmFwaTNbYXN5bmNdCiMgb3IKcGlwIGluc3RhbGwgZmxhc2stb3BlbmFwaTNbZG90ZW52XQojIG9yCnBpcCBpbnN0YWxsIGZsYXNrLW9wZW5hcGkzW2VtYWlsXQojIG9yIGFsbApwaXAgaW5zdGFsbCBmbGFzay1vcGVuYXBpM1t5YW1sLGFzeW5jLGRvdGVudixlbWFpbF0KIyBvciBtYW51YWxseQpwaXAgaW5zdGFsbCBweXlhbWwgYXNnaXJlZiBweXRob24tZG90ZW52IGVtYWlsLXZhbGlkYXRvcgojIE9wZW5BUEkgVUkgcGx1Z2lucwpwaXAgaW5zdGFsbCAtVSBmbGFzay1vcGVuYXBpM1tzd2FnZ2VyLHJlZG9jLHJhcGlkb2MscmFwaXBkZixzY2FsYXIsZWxlbWVudHNdCmBgYAoKPC9kZXRhaWxzPgoKIyMgQSBTaW1wbGUgRXhhbXBsZQoKSGVyZSdzIGEgc2ltcGxlIGV4YW1wbGUsIGZ1cnRoZXIgZ28gdG8gdGhlIFtFeGFtcGxlXShodHRwczovL2x1b2xpbmdjaHVuLmdpdGh1Yi5pby9mbGFzay1vcGVuYXBpMy9sYXRlc3QvRXhhbXBsZS8pLgoKYGBgcHl0aG9uCmZyb20gcHlkYW50aWMgaW1wb3J0IEJhc2VNb2RlbAoKZnJvbSBmbGFza19vcGVuYXBpMyBpbXBvcnQgSW5mbywgVGFnCmZyb20gZmxhc2tfb3BlbmFwaTMgaW1wb3J0IE9wZW5BUEkKCmluZm8gPSBJbmZvKHRpdGxlPSJib29rIEFQSSIsIHZlcnNpb249IjEuMC4wIikKYXBwID0gT3BlbkFQSShfX25hbWVfXywgaW5mbz1pbmZvKQoKYm9va190YWcgPSBUYWcobmFtZT0iYm9vayIsIGRlc2NyaXB0aW9uPSJTb21lIEJvb2siKQoKCmNsYXNzIEJvb2tRdWVyeShCYXNlTW9kZWwpOgogICAgYWdlOiBpbnQKICAgIGF1dGhvcjogc3RyCgoKQGFwcC5nZXQoIi9ib29rIiwgc3VtbWFyeT0iZ2V0IGJvb2tzIiwgdGFncz1bYm9va190YWddKQpkZWYgZ2V0X2Jvb2socXVlcnk6IEJvb2tRdWVyeSk6CiAgICAiIiIKICAgIHRvIGdldCBhbGwgYm9va3MKICAgICIiIgogICAgcmV0dXJuIHsKICAgICAgICAiY29kZSI6IDAsCiAgICAgICAgIm1lc3NhZ2UiOiAib2siLAogICAgICAgICJkYXRhIjogWwogICAgICAgICAgICB7ImJpZCI6IDEsICJhZ2UiOiBxdWVyeS5hZ2UsICJhdXRob3IiOiBxdWVyeS5hdXRob3J9LAogICAgICAgICAgICB7ImJpZCI6IDIsICJhZ2UiOiBxdWVyeS5hZ2UsICJhdXRob3IiOiBxdWVyeS5hdXRob3J9CiAgICAgICAgXQogICAgfQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICBhcHAucnVuKGRlYnVnPVRydWUpCmBgYAoKPGRldGFpbHM+CjxzdW1tYXJ5PkNsYXNzLWJhc2VkIEFQSSBWaWV3IEV4YW1wbGU8L3N1bW1hcnk+CgpgYGBweXRob24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCgpmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIEZpZWxkCgpmcm9tIGZsYXNrX29wZW5hcGkzIGltcG9ydCBPcGVuQVBJLCBUYWcsIEluZm8sIEFQSVZpZXcKCgppbmZvID0gSW5mbyh0aXRsZT0nYm9vayBBUEknLCB2ZXJzaW9uPScxLjAuMCcpCmFwcCA9IE9wZW5BUEkoX19uYW1lX18sIGluZm89aW5mbykKCmFwaV92aWV3ID0gQVBJVmlldyh1cmxfcHJlZml4PSIvYXBpL3YxIiwgdmlld190YWdzPVtUYWcobmFtZT0iYm9vayIpXSkKCgpjbGFzcyBCb29rUGF0aChCYXNlTW9kZWwpOgogICAgaWQ6IGludCA9IEZpZWxkKC4uLiwgZGVzY3JpcHRpb249ImJvb2sgSUQiKQoKCmNsYXNzIEJvb2tRdWVyeShCYXNlTW9kZWwpOgogICAgYWdlOiBPcHRpb25hbFtpbnRdID0gRmllbGQoTm9uZSwgZGVzY3JpcHRpb249J0FnZScpCgoKY2xhc3MgQm9va0JvZHkoQmFzZU1vZGVsKToKICAgIGFnZTogT3B0aW9uYWxbaW50XSA9IEZpZWxkKC4uLiwgZ2U9MiwgbGU9NCwgZGVzY3JpcHRpb249J0FnZScpCiAgICBhdXRob3I6IHN0ciA9IEZpZWxkKE5vbmUsIG1pbl9sZW5ndGg9MiwgbWF4X2xlbmd0aD00LCBkZXNjcmlwdGlvbj0nQXV0aG9yJykKCgpAYXBpX3ZpZXcucm91dGUoIi9ib29rIikKY2xhc3MgQm9va0xpc3RBUElWaWV3OgogICAgYSA9IDEKCiAgICBAYXBpX3ZpZXcuZG9jKHN1bW1hcnk9ImdldCBib29rIGxpc3QiKQogICAgZGVmIGdldChzZWxmLCBxdWVyeTogQm9va1F1ZXJ5KToKICAgICAgICBwcmludChzZWxmLmEpCiAgICAgICAgcmV0dXJuIHF1ZXJ5Lm1vZGVsX2R1bXBfanNvbigpCgogICAgQGFwaV92aWV3LmRvYyhzdW1tYXJ5PSJjcmVhdGUgYm9vayIpCiAgICBkZWYgcG9zdChzZWxmLCBib2R5OiBCb29rQm9keSk6CiAgICAgICAgIiIiZGVzY3JpcHRpb24gZm9yIGEgY3JlYXRlZCBib29rIiIiCiAgICAgICAgcmV0dXJuIGJvZHkubW9kZWxfZHVtcF9qc29uKCkKCgpAYXBpX3ZpZXcucm91dGUoIi9ib29rLzxpZD4iKQpjbGFzcyBCb29rQVBJVmlldzoKICAgIEBhcGlfdmlldy5kb2Moc3VtbWFyeT0iZ2V0IGJvb2siKQogICAgZGVmIGdldChzZWxmLCBwYXRoOiBCb29rUGF0aCk6CiAgICAgICAgcHJpbnQocGF0aCkKICAgICAgICByZXR1cm4gImdldCIKCiAgICBAYXBpX3ZpZXcuZG9jKHN1bW1hcnk9InVwZGF0ZSBib29rIikKICAgIGRlZiBwdXQoc2VsZiwgcGF0aDogQm9va1BhdGgpOgogICAgICAgIHByaW50KHBhdGgpCiAgICAgICAgcmV0dXJuICJwdXQiCgogICAgQGFwaV92aWV3LmRvYyhzdW1tYXJ5PSJkZWxldGUgYm9vayIsIGRlcHJlY2F0ZWQ9VHJ1ZSkKICAgIGRlZiBkZWxldGUoc2VsZiwgcGF0aDogQm9va1BhdGgpOgogICAgICAgIHByaW50KHBhdGgpCiAgICAgICAgcmV0dXJuICJkZWxldGUiCgoKYXBwLnJlZ2lzdGVyX2FwaV92aWV3KGFwaV92aWV3KQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIGFwcC5ydW4oZGVidWc9VHJ1ZSkKYGBgCgo8L2RldGFpbHM+CgojIyBBUEkgRG9jdW1lbnQKClJ1biB0aGUgW3NpbXBsZSBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vbHVvbGluZ2NodW4vZmxhc2stb3BlbmFwaTMvYmxvYi9tYXN0ZXIvZXhhbXBsZXMvc2ltcGxlX2RlbW8ucHkpLCBhbmQgZ28gdG8gaHR0cDovLzEyNy4wLjAuMTo1MDAwL29wZW5hcGkuCgo+IE9wZW5BUEkgVUkgcGx1Z2lucyBhcmUgb3B0aW9uYWwgZGVwZW5kZW5jaWVzIHRoYXQgcmVxdWlyZSBtYW51YWwgaW5zdGFsbGF0aW9uLgo+Cj4gYHBpcCBpbnN0YWxsIC1VIGZsYXNrLW9wZW5hcGkzW3N3YWdnZXIscmVkb2MscmFwaWRvYyxyYXBpcGRmLHNjYWxhcixlbGVtZW50c11gCj4KPiBNb3JlIG9wdGlvbmFsIHVpIHRlbXBsYXRlcyBnb3RvIHRoZSBkb2N1bWVudAo+IGFib3V0IFtVSV9UZW1wbGF0ZXNdKGh0dHBzOi8vbHVvbGluZ2NodW4uZ2l0aHViLmlvL2ZsYXNrLW9wZW5hcGkzL2xhdGVzdC9Vc2FnZS9VSV9UZW1wbGF0ZXMvKS4KCiFbb3BlbmFwaV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2x1b2xpbmdjaHVuL2ZsYXNrLW9wZW5hcGkzL21hc3Rlci9kb2NzL2ltYWdlcy9vcGVuYXBpLWFsbC5wbmcpCg== readmeEtag: '"4ac4dc9cdd9167343178906f2883dbf41cda6c06"' readmeLastModified: Sat, 31 Aug 2024 08:45:59 GMT repositoryId: 362315893 description: Generate REST API and OpenAPI documentation for your Flask project. created: '2021-04-28T02:39:57Z' updated: '2024-09-05T09:53:55Z' language: Python archived: false stars: 183 watchers: 7 forks: 28 owner: luolingchun logo: https://avatars.githubusercontent.com/u/22740403?v=4 license: MIT repoEtag: '"b10ebefc0ed338108bdb5b969d093828944f043ac1111a3bd265741159257867"' repoLastModified: Thu, 05 Sep 2024 09:53:55 GMT foundInMaster: true category: Server Implementations id: 7baa4046f5397a8fd006511115871ac0 - source: - openapi3 tags - openapi31 tags repository: https://github.com/redocly/openapi-sampler v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXNhbXBsZXIKClshW1RyYXZpcyBidWlsZCBzdGF0dXNdKGh0dHA6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvUmVkb2NseS9vcGVuYXBpLXNhbXBsZXIuc3ZnP3N0eWxlPWZsYXQpXShodHRwczovL3RyYXZpcy1jaS5vcmcvUmVkb2NseS9vcGVuYXBpLXNhbXBsZXIpIFshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvUmVkb2NseS9vcGVuYXBpLXNhbXBsZXIvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXImc2VydmljZT1naXRodWIpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvUmVkb2NseS9vcGVuYXBpLXNhbXBsZXI/YnJhbmNoPW1hc3RlcikgWyFbRGVwZW5kZW5jeSBTdGF0dXNdKGh0dHBzOi8vZGF2aWQtZG0ub3JnL1JlZG9jbHkvb3BlbmFwaS1zYW1wbGVyLnN2ZyldKGh0dHBzOi8vZGF2aWQtZG0ub3JnL1JlZG9jbHkvb3BlbmFwaS1zYW1wbGVyKSBbIVtkZXZEZXBlbmRlbmN5IFN0YXR1c10oaHR0cHM6Ly9kYXZpZC1kbS5vcmcvUmVkb2NseS9vcGVuYXBpLXNhbXBsZXIvZGV2LXN0YXR1cy5zdmcpXShodHRwczovL2RhdmlkLWRtLm9yZy9SZWRvY2x5L29wZW5hcGktc2FtcGxlciNpbmZvPWRldkRlcGVuZGVuY2llcykKClRvb2wgZm9yIGdlbmVyYXRpb24gc2FtcGxlcyBiYXNlZCBvbiBPcGVuQVBJIHBheWxvYWQvcmVzcG9uc2Ugc2NoZW1hCgojIyBGZWF0dXJlcwoKLSBEZXRlcm1pbmlzdGljIChnaXZlbiBhIHBhcnRpY3VsYXIgaW5wdXQsIHdpbGwgYWx3YXlzIHByb2R1Y2UgdGhlIHNhbWUgb3V0cHV0KQotIFN1cHBvcnRzIGNvbXBvdW5kIGtleXdvcmRzOiBgYWxsT2ZgLCBgb25lT2ZgLCBgYW55T2ZgLCBgaWYvdGhlbi9lbHNlYAotIFN1cHBvcnRzIGBhZGRpdGlvbmFsUHJvcGVydGllc2Agd2l0aCBbYHgtYWRkaXRpb25hbFByb3BlcnRpZXNOYW1lYF0oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MvYmxvYi9tYXN0ZXIvZG9jcy9yZWRvYy12ZW5kb3ItZXh0ZW5zaW9ucy5tZCN4LWFkZGl0aW9uYWxwcm9wZXJ0aWVzbmFtZSkKLSBVc2VzIGBjb25zdGAsIGBleGFtcGxlc2AsIGBlbnVtYCBhbmQgYGRlZmF1bHRgIHdoZXJlIHBvc3NpYmxlIC0gaW4gdGhpcyBvcmRlcgotIEdvb2QgYXJyYXkgc3VwcG9ydDogc3VwcG9ydHMgYGNvbnRhaW5zYCwgYG1pbkl0ZW1zYCwgYG1heEl0ZW1zYCwgYW5kIHR1cGxlcyAoYGl0ZW1zYCBhcyBhbiBhcnJheSkKLSBTdXBwb3J0cyBgbWluTGVuZ3RoYCwgYG1heExlbmd0aGAsIGBtaW5gLCBgbWF4YCwgYGV4Y2x1c2l2ZU1pbmltdW1gLCBgZXhjbHVzaXZlTWF4aW11bWAsIChbbGltaXRlZF0oaHR0cHM6Ly9mYWtlcmpzLmRldi9hcGkvaGVscGVycy5odG1sI2Zyb21yZWdleHApKSBgcGF0dGVybmAKLSBTdXBwb3J0cyB0aGUgZm9sbG93aW5nIGBzdHJpbmdgIGZvcm1hdHM6CiAgLSBlbWFpbAogIC0gaWRuLWVtYWlsCiAgLSBwYXNzd29yZAogIC0gZGF0ZS10aW1lCiAgLSBkYXRlCiAgLSB0aW1lCiAgLSBpcHY0CiAgLSBpcHY2CiAgLSBob3N0bmFtZQogIC0gaWRuLWhvc3RuYW1lCiAgLSB1cmkKICAtIHVyaS1yZWZlcmVuY2UKICAtIHVyaS10ZW1wbGF0ZQogIC0gaXJpCiAgLSBpcmktcmVmZXJlbmNlCiAgLSB1dWlkCiAgLSBqc29uLXBvaW50ZXIKICAtIHJlbGF0aXZlLWpzb24tcG9pbnRlcgogIC0gcmVnZXgKLSBJbmZlcnMgc2NoZW1hIHR5cGUgYXV0b21hdGljYWxseSBmb2xsb3dpbmcgc2FtZSBydWxlcyBhcyBbanNvbi1zY2hlbWEtZmFrZXJdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2pzb24tc2NoZW1hLWZha2VyI2luZmVycmVkLXR5cGVzKQotIFN1cHBvcnQgZm9yIGAkcmVmYCByZXNvbHZpbmcKLSBIYXMgYmFzaWMgc3VwcG9ydHMgZm9yIEpTT04gU2NoZW1hIGRyYWZ0IDcgKHRoYW5rcyB0byBbQFAwbGlwXShodHRwczovL2dpdGh1Yi5jb20vUDBsaXApIGZyb20gW0BzdG9wbGlnaHRpb10oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvKSBmb3IgY29udHJpYnV0aW5nKQoKIyMgSW5zdGFsbGF0aW9uCgpJbnN0YWxsIHVzaW5nIFtucG1dKGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vZ2V0dGluZy1zdGFydGVkL3doYXQtaXMtbnBtKQoKICAgIG5wbSBpbnN0YWxsIG9wZW5hcGktc2FtcGxlcgoKb3IgdXNpbmcgW3lhcm5dKGh0dHBzOi8veWFybnBrZy5jb20pCgogICAgeWFybiBhZGQgb3BlbmFwaS1zYW1wbGVyCgpUaGVuIHJlcXVpcmUgaXQgaW4geW91ciBjb2RlOgoKYGBganMKdmFyIE9wZW5BUElTYW1wbGVyID0gcmVxdWlyZSgnb3BlbmFwaS1zYW1wbGVyJyk7CmBgYAoKIyMgVXNhZ2UKIyMjIyBgT3BlbkFQSVNhbXBsZXIuc2FtcGxlKHNjaGVtYSwgW29wdGlvbnNdLCBbc3BlY10pYAotICoqc2NoZW1hKiogKF9yZXF1aXJlZF8pIC0gYG9iamVjdGAKQW4gW09wZW5BUEkgU2NoZW1hIE9iamVjdF0oaHR0cDovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jc2NoZW1hT2JqZWN0KSBvciBhIEpTT04gU2NoZW1hIERyYWZ0IDcgZG9jdW1lbnQuCi0gKipvcHRpb25zKiogKF9vcHRpb25hbF8pIC0gYG9iamVjdGAKQXZhaWxhYmxlIG9wdGlvbnM6CiAgLSAqKnNraXBOb25SZXF1aXJlZCoqIC0gYGJvb2xlYW5gCiAgRG9uJ3QgaW5jbHVkZSBub24tcmVxdWlyZWQgb2JqZWN0IHByb3BlcnRpZXMgbm90IHNwZWNpZmllZCBpbiBbYHJlcXVpcmVkYCBwcm9wZXJ0eSBvZiB0aGUgc2NoZW1hIG9iamVjdF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kYXRhLW1vZGVscy9kYXRhLXR5cGVzLyNyZXF1aXJlZCkKICAtICoqc2tpcFJlYWRPbmx5KiogLSBgYm9vbGVhbmAKICBEb24ndCBpbmNsdWRlIGByZWFkT25seWAgb2JqZWN0IHByb3BlcnRpZXMKICAtICoqc2tpcFdyaXRlT25seSoqIC0gYGJvb2xlYW5gCiAgRG9uJ3QgaW5jbHVkZSBgd3JpdGVPbmx5YCBvYmplY3QgcHJvcGVydGllcwogIC0gKipxdWlldCoqIC0gYGJvb2xlYW5gCiAgRG9uJ3QgbG9nIGNvbnNvbGUgd2FybmluZyBtZXNzYWdlcwotICoqc3BlYyoqIC0gd2hvbGUgc3BlY2lmaWNhdGlvbiB3aGVyZSB0aGUgc2NoZW1hIGlzIHRha2VuIGZyb20uIFJlcXVpcmVkIG9ubHkgd2hlbiBzY2hlbWEgbWF5IGNvbnRhaW4gYCRyZWZgLiAqKnNwZWMqKiBtdXN0IG5vdCBjb250YWluIGFueSBleHRlcm5hbCByZWZlcmVuY2VzCgojIyBFeGFtcGxlCmBgYGpzCmNvbnN0IE9wZW5BUElTYW1wbGVyID0gcmVxdWlyZSgnLicpOwpPcGVuQVBJU2FtcGxlci5zYW1wbGUoewogIHR5cGU6ICdvYmplY3QnLAogIHByb3BlcnRpZXM6IHsKICAgIGE6IHt0eXBlOiAnaW50ZWdlcicsIG1pbmltdW06IDEwfSwKICAgIGI6IHt0eXBlOiAnc3RyaW5nJywgZm9ybWF0OiAncGFzc3dvcmQnLCBtaW5MZW5ndGg6IDEwfSwKICAgIGM6IHt0eXBlOiAnYm9vbGVhbicsIHJlYWRPbmx5OiB0cnVlfQogIH0KfSwge3NraXBSZWFkT25seTogdHJ1ZX0pOwovLyB7IGE6IDEwLCBiOiAncGEkJHdvcmRfcScgfQpgYGAK readmeEtag: '"edd41323d08c6427f8d1a0dc4acab1874964b3e9"' readmeLastModified: Thu, 01 Aug 2024 06:57:47 GMT repositoryId: 59937640 description: >- :capital_abcd: Tool for generation samples based on OpenAPI(fka Swagger) payload/response schema created: '2016-05-29T10:29:32Z' updated: '2024-09-02T00:48:12Z' language: JavaScript archived: false stars: 181 watchers: 18 forks: 46 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"ad070b1005c645a4f567ab83f90ccbc3d4460d94a667d0443079af08eae08529"' repoLastModified: Mon, 02 Sep 2024 00:48:12 GMT foundInMaster: true v3_1: true category: - Documentation - Parsers id: 03703532e31126094015624abe623cf9 - source: openapi3 tags repository: https://github.com/mockoon/cli v3: true repositoryMetadata: base64Readme: >- PiAjIPCfk6ZUaGlzIHJlcG9zaXRvcnkgaGFzIGJlZW4gYXJjaGl2ZWQuIFdlIGtlZXAgaXQgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gWW91IHdpbGwgZmluZCBNb2Nrb29uJ3MgbmV3IG1vbm9yZXBvIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uKSBhbmQgdGhlIGN1cnJlbnQgQ0xJJ3MgZG9jdW1lbnRhdGlvbiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vcGFja2FnZXMvY2xpL1JFQURNRS5tZCkKCjxkaXYgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbSIgYWx0PSJtb2Nrb29uIGxvZ28iPgogICAgPGltZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9sb2dvLXNxdWFyZS1hcHAucG5nIj4KICA8L2E+CiAgPGJyPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9XZWJzaXRlLUdvLWdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckI9MTk5N2M2Ii8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vbmV3c2xldHRlci8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL05ld3NsZXR0ZXItU3Vic2NyaWJlLWdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0dldE1vY2tvb24iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXJfQEdldE1vY2tvb24tZm9sbG93LWJsdWUuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQj0xZGExZjIiLz48L2E+CiAgPGEgaHJlZj0iW2h0dHBzOi8vZGlzY29yZC5nZy9GdEpqa2VqS0dwXShodHRwczovL21vY2tvb24uY29tL2Rpc2NvcmQvKSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC1nby1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckE9NmM4NGQ5JmNvbG9yQj0xZGExZjIiLz48L2E+ICAKICA8YnI+CiAgPGJyPgogIDxoMT5Nb2Nrb29uOiBhd2Vzb21lIEFQSSBtb2NraW5nPC9oMT4KPC9kaXY+CgojIyBNb2Nrb29uJ3MgZG9jdW1lbnRhdGlvbgoKWW91IHdpbGwgZmluZCBNb2Nrb29uJ3MgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vbW9ja29vbi5jb20vZG9jcy9sYXRlc3QvYWJvdXQvKSBvbiB0aGUgb2ZmaWNpYWwgd2Vic2l0ZS4gSXQgY292ZXJzIE1vY2tvb24ncyBtb3N0IGNvbXBsZXggZmVhdHVyZXMuIEZlZWwgZnJlZSB0byBjb250cmlidXRlIG9yIGFzayBmb3IgbmV3IHRvcGljcyB0byBiZSBjb3ZlcmVkLgoKIyMgQ2hhbmdlbG9ncwoKWW91IHdpbGwgZmluZCBNb2Nrb29uIGFwcGxpY2F0aW9ucyBbY2hhbmdlbG9nc10oaHR0cHM6Ly9tb2Nrb29uLmNvbS9yZWxlYXNlcy8pIG9uIHRoZSBvZmZpY2lhbCB3ZWJzaXRlLgoKIyMgU3VwcG9ydC9mZWVkYmFjawoKWW91IGNhbiBkaXNjdXNzIGFsbCB0aGluZ3MgcmVsYXRlZCB0byBNb2Nrb29uIGFuZCBhc2sgZm9yIGhlbHAgb24gdGhlIFtvZmZpY2lhbCBjb21tdW5pdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vZGlzY3Vzc2lvbnMpLiBJdCdzIGFsc28gYSBnb29kIHBsYWNlIHRvIGRpc2N1c3MgYnVncyBhbmQgZmVhdHVyZSByZXF1ZXN0cyBiZWZvcmUgb3BlbmluZyBhbiBpc3N1ZSBvbiB0aGlzIHJlcG9zaXRvcnkuIEZvciBtb3JlIGNoYXQtbGlrZSBkaXNjdXNzaW9ucywgeW91IGNhbiBhbHNvIGpvaW4gb3VyIFtEaXNjb3JkIHNlcnZlcl0oaHR0cHM6Ly9kaXNjb3JkLmdnL0Z0SmprZWpLR3ApLgoKIyMgQ29udHJpYnV0aW5nCgpJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHRvIE1vY2tvb24sIHBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZWxpbmVzXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uL2Jsb2IvbWFpbi9DT05UUklCVVRJTkcubWQpLgoKUGxlYXNlIGFsc28gdGFrZSBhIGxvb2sgYXQgb3VyIFtDb2RlIG9mIENvbmR1Y3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL0NPREVfT0ZfQ09ORFVDVC5tZCkuCgojIyBSb2FkbWFwCgpJZiB5b3Ugd2FudCB0byBrbm93IHdoYXQgd2lsbCBiZSBjb21pbmcgaW4gdGhlIG5leHQgcmVsZWFzZSB5b3UgY2FuIGNoZWNrIHRoZSBnbG9iYWwgW1JvYWRtYXBdKGh0dHBzOi8vbW9ja29vbi5jb20vcHVibGljLXJvYWRtYXAvKS4KCk5ldyByZWxlYXNlcyB3aWxsIGJlIGFubm91bmNlZCBvbiBNb2Nrb29uJ3MgW1R3aXR0ZXIgYWNjb3VudCBAR2V0TW9ja29vbl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9HZXRNb2Nrb29uKSBhbmQgdGhyb3VnaCB0aGUgbmV3c2xldHRlciB0byB3aGljaCB5b3UgY2FuIHN1YnNjcmliZSBbaGVyZV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9uZXdzbGV0dGVyLykuCg== readmeEtag: '"1ea662b347800b76be7d47610eae53eb529e670e"' readmeLastModified: Fri, 12 Jul 2024 09:44:47 GMT repositoryId: 307501192 description: Mockoon's official CLI. Deploy your mock APIs anywhere. created: '2020-10-26T20:51:23Z' updated: '2024-08-25T22:20:00Z' language: TypeScript archived: true stars: 180 watchers: 8 forks: 23 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: MIT repoEtag: '"fa0b16bb6dc0a70bda84bd23be7eb7b4c4a20fd518fe64c46ef75501307c0c3f"' repoLastModified: Sun, 25 Aug 2024 22:20:00 GMT foundInMaster: true category: - Description Validators - Testing id: 58c528e91eb0bb7db379914706c28f0a - source: openapi3 tags repository: https://github.com/neotoolkit/dummy v3: true repositoryMetadata: base64Readme: >- IyBkdW1teQoKWyFbQ0ktaW1nXV1bQ0ktdXJsXQpbIVtwa2ctaW1nXV1bcGtnLXVybF0KWyFbcmVwb3J0Y2FyZC1pbWddXVtyZXBvcnRjYXJkLXVybF0KWyFbY292ZXJhZ2UtaW1nXV1bY292ZXJhZ2UtdXJsXQpbIVt2ZXJzaW9uLWltZ11dW3ZlcnNpb24tdXJsXQoKPGltZyBhbGlnbj0icmlnaHQiIGFsdD0iZHVtbXkiIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25lb3Rvb2xraXQvLmdpdGh1Yi9tYWluL2Fzc2V0cy9kdW1teV9naF9vcHQtMl9pbWdfNHgucG5nIiB3aWR0aD0iMTUwcHgiIGhlaWdodD0iMTUwcHgiPgoKUnVuIG1vY2sgc2VydmVyIGJhc2VkIG9mZiBhbiBBUEkgY29udHJhY3Qgd2l0aCBvbmUgY29tbWFuZAoKW0R1bW15XShodHRwczovL2V2cm9uZS5jb20vZHVtbXk/dXRtX3NvdXJjZT1naXRodWImdXRtX2NhbXBhaWduPWR1bW15KSBpcyBjcmVhdGVkICYgc3VwcG9ydGVkIGJ5IFtFdnJvbmVdKGh0dHBzOi8vZXZyb25lLmNvbT91dG1fc291cmNlPWdpdGh1YiZ1dG1fY2FtcGFpZ249ZHVtbXkpCgojIyBGZWF0dXJlcwotIFN1cHBvcnRzIGBPcGVuQVBJIDMueGAKCiMjIEluc3RhbGxhdGlvbgpgYGBzaGVsbApnbyBpbnN0YWxsIGdpdGh1Yi5jb20vbmVvdG9vbGtpdC9kdW1teS9jbWQvZHVtbXlAbGF0ZXN0CmBgYAoKIyMgVXNhZ2UKRHVtbXkgY2FuIGhlbHAgeW91IHJ1biBtb2NrIHNlcnZlciBiYXNlZCBvZmYgYW4gQVBJIGNvbnRyYWN0LCB3aGljaCBoZWxwcyBwZW9wbGUgc2VlIGhvdyB5b3VyIEFQSSB3aWxsIHdvcmsgYmVmb3JlIHlvdSBldmVuIGhhdmUgaXQgYnVpbHQuIFJ1biBpdCBsb2NhbGx5IHdpdGggdGhlIGBkdW1teSBzYCBjb21tYW5kIHRvIHJ1biB5b3VyIEFQSSBvbiBhIEhUVFAgc2VydmVyIHlvdSBjYW4gaW50ZXJhY3Qgd2l0aC4KYGBgc2hlbGwKZHVtbXkgcyBvcGVuYXBpLnltbApgYGAKYGBgc2hlbGwKZHVtbXkgcyBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbmVvdG9vbGtpdC9kdW1teS9tYWluL2V4YW1wbGVzL2RvY2tlci9vcGVuYXBpLnltbApgYGAKTW9yZSB1c2FnZSBbZXhhbXBsZXNdKGV4YW1wbGVzKQoKIyMgRG9jdW1lbnRhdGlvbgpTZWUgW3RoZXNlIGRvY3NdW3BrZy11cmxdLgoKIyMgTGljZW5zZQpbTUlUIExpY2Vuc2VdKExJQ0VOU0UpLgoKIyMgU3BvbnNvcnMKPHA+CiAgPGEgaHJlZj0iaHR0cHM6Ly9ldnJvbmUuY29tLz91dG1fc291cmNlPWdpdGh1YiZ1dG1fY2FtcGFpZ249bmVvdG9vbGtpdCI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25lb3Rvb2xraXQvLmdpdGh1Yi9tYWluL2Fzc2V0cy9zcG9uc29yZWRfYnlfZXZyb25lLnN2ZyIKICAgICAgYWx0PSJTcG9uc29yZWQgYnkgRXZyb25lIj4KICA8L2E+CjwvcD4KCltDSS1pbWddOiBodHRwczovL2dpdGh1Yi5jb20vbmVvdG9vbGtpdC9kdW1teS93b3JrZmxvd3MvQ0kvYmFkZ2Uuc3ZnCltDSS11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vbmVvdG9vbGtpdC9kdW1teS9hY3Rpb25zCltwa2ctaW1nXTogaHR0cHM6Ly9wa2cuZ28uZGV2L2JhZGdlL25lb3Rvb2xraXQvZHVtbXkKW3BrZy11cmxdOiBodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9uZW90b29sa2l0L2R1bW15CltyZXBvcnRjYXJkLWltZ106IGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9uZW90b29sa2l0L2R1bW15CltyZXBvcnRjYXJkLXVybF06IGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvbmVvdG9vbGtpdC9kdW1teQpbY292ZXJhZ2UtaW1nXTogaHR0cHM6Ly9jb2RlY292LmlvL2doL25lb3Rvb2xraXQvZHVtbXkvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnCltjb3ZlcmFnZS11cmxdOiBodHRwczovL2NvZGVjb3YuaW8vZ2gvbmVvdG9vbGtpdC9kdW1teQpbdmVyc2lvbi1pbWddOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3JlbGVhc2UvbmVvdG9vbGtpdC9kdW1teQpbdmVyc2lvbi11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vbmVvdG9vbGtpdC9kdW1teS9yZWxlYXNlcwo= readmeEtag: '"f03ee0da18daed2d3289f8396f6b6742bf664ec7"' readmeLastModified: Mon, 25 Jul 2022 15:10:04 GMT repositoryId: 427261627 description: Run mock server based off an API contract with one command created: '2021-11-12T06:54:04Z' updated: '2024-08-10T14:13:43Z' language: Go archived: true stars: 178 watchers: 2 forks: 10 owner: neotoolkit logo: https://avatars.githubusercontent.com/u/94162314?v=4 license: MIT repoEtag: '"324156175b08891790518a535d661b707d11f3c6aa911507d638927f7a05fc36"' repoLastModified: Sat, 10 Aug 2024 14:13:43 GMT foundInMaster: true category: Testing id: 008c4fd437f4f20d365f1f13b08a2f6f oldLocations: - https://github.com/go-dummy/dummy - source: openapi3 tags repository: https://github.com/speakeasy-api/speakeasy v3: true id: b04ab57cb5fd068ea45591850bba85fc repositoryMetadata: base64Readme: >- PGJyIC8+PGJyIC8+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKPGEgaHJlZj0iW1NwZWFrZWFzeV0oaHR0cHM6Ly9zcGVha2Vhc3kuY29tLykiPgogIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LWFwaS9zcGVha2Vhc3kvYXNzZXRzLzY4MDE2MzUxL2U5NTlmODFhLWIyNTAtNDAwMy04YzVjLWE0NWI5NDYzZmM5NSIgYWx0PSJTcGVha2Vhc3kgTG9nbyIgd2lkdGg9IjcwMCI+CjxoMj5FbnRlcnByaXNlLVJlYWR5IERldmVsb3BlciBFeHBlcmllbmNlIGZvciB5b3VyIFJFU1QgQVBJPC9oMj4KPHA+TGF1bmNoIHByb2R1Y3Rpb24tcXVhbGl0eSBTREtzLCBUZXJyYWZvcm0gcHJvdmlkZXJzLCBkb2NzLCBhbmQgbW9yZSBpbiBtaW51dGVzIDpyb2NrZXQ6PC9wPgo8L2E+CjxiciAvPgo8YnIgLz4KCiAgIDxhIGhyZWY9Imh0dHBzOi8vc3BlYWtlYXN5LmNvbS9kb2NzL2NyZWF0ZS1jbGllbnQtc2Rrcy8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1Eb2NzJm1lc3NhZ2U9UXVpY2tzdGFydCZjb2xvcj0wMDAmc3R5bGU9Zm9yLXRoZS1iYWRnZSIgLz48L2E+CiAgIDxhIGhyZWY9Imh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9zcGVha2Vhc3ktZGV2L3NoYXJlZF9pbnZpdGUvenQtMWN3YjNmbHh6LWxTNVN5WnhBc0ZfM05PcTV4YzhDanciPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1TbGFjayZtZXNzYWdlPUpvaW4mY29sb3I9NzI4OWRhJnN0eWxlPWZvci10aGUtYmFkZ2UiIC8+PC9hPgoKICAhW0dyb3VwIDI2XShodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LWFwaS9zcGVha2Vhc3kvYXNzZXRzLzY4MDE2MzUxLzE1OWYwNTY1LTBjZmEtNDY4YS04ZmNkLTdjMzU5MGVlYTM1NSkKCiAgIVtlemdpZiBjb20tdmlkZW8tdG8tZ2lmICgxKV0oaHR0cHM6Ly9naXRodWIuY29tL3NwZWFrZWFzeS1hcGkvc3BlYWtlYXN5L2Fzc2V0cy85MDI4OTUwMC9mZjY5NzJjNC00ZThhLTRhNWMtYTk3Ni03NWU5N2NjNDJmNWEpCjwvZGl2Pgo8YnIgLz4KCiMjIFdoYXQgaXMgU3BlYWtlYXN5PwoKW1NwZWFrZWFzeV0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5LmNvbS8pIGdpdmVzIHlvdXIgdXNlcnMgdGhlIGRldmVsb3BlciBleHBlcmllbmNlIHRoYXQgbWFrZXMgQVBJIGludGVncmF0aW9ucyBlYXN5LgoKRG9uJ3QgcHV0IHRoZSBidXJkZW4gb2YgaW50ZWdyYXRpb24gb24geW91ciB1c2Vycy4gVGFrZSB5b3VyIEFQSXMgdG8gbWFya2V0IHdpdGggYmVzdC1pbi1jbGFzcywgZW50ZXJwcmlzZS1yZWFkeSBTREtzLCBUZXJyYWZvcm0gcHJvdmlkZXJzLCBTREsgZG9jcywgYW5kIG1vcmUuCgohW0dyb3VwIDI3XShodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LWFwaS9zcGVha2Vhc3kvYXNzZXRzLzY4MDE2MzUxLzA3MzM1MzIxLTJhZTEtNDFkZS1hMWIxLTNiZTcyZGYzOGE5MCkKCiMjIyBLZXkgRmVhdHVyZXMKCiogKipMTE0gUG93ZXJlZCBBUEkgTWFpbnRlbmFuY2UqKiAtIEtlZXAgeW91ciBBUEkgc2NoZW1hIHVwIHRvIGRhdGUgYW5kIGZvbGxvdyBiZXN0IHByYWN0aWNlcyB3aXRoIGF1dG9tYXRpYyBtYWludGVuYW5jZSBwb3dlcmVkIGJ5IGJlc3QtaW4tY2xhc3MgTExNcy4gVHJ5IGl0IG91dCBub3cgaW4gdGhlIENMSSB3aXRoIGBzcGVha2Vhc3kgc3VnZ2VzdGAgb3IgZW1iZWQgaXQgaW50byB5b3VyIEdpdEh1YiB3b3JrZmxvdyB1c2luZyBvdXIgW2FjdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3NwZWFrZWFzeS1hcGkvc2RrLWdlbmVyYXRpb24tYWN0aW9uKS4gCiogKipQcm9kdWN0aW9uLVF1YWxpdHkgU0RLcyoqIC0gRXJnb25vbWljLCB0eXBlLXNhZmUsIGFuZCBmYXVsdC10b2xlcmFudCBjbGllbnQgbGlicmFyaWVzIGJ1aWx0IGZvciBwcm9kdWN0aW9uIHVzZSBjYXNlcyB3aXRoIGlkaW9tYXRpY3Mgb3B0aW1pemVkIGZvciBlYWNoIGxhbmd1YWdlLiBFbWJlZCBhZGRpdGlvbmFsIGNhcGFiaWxpdGllcyBsaWtlIGF1dGgsIHJldHJpZXMsIHBhZ2luYXRpb24sIGFuZCBtb3JlIHVzaW5nIHNwZWMtYmFzZWQgZXh0ZW5zaW9ucy4gCiogKipQcm9kdWN0aW9uLVF1YWxpdHkgVGVycmFmb3JtIFByb3ZpZGVycyoqIC0gRXhwb3NlIHlvdXIgQVBJIGZvciBpbmZyYXN0cnVjdHVyZS1hcy1jb2RlIHVzZSBjYXNlcyB3aXRoIGZ1bGx5IGZlYXR1cmVkIFRlcnJhZm9ybSBwcm92aWRlcnMuIAoqICoqU0RLIERvY3MqKiAtIE1hcmtkb3duIHVzYWdlIHNuaXBwZXRzIGZvciBldmVyeSBzaW5nbGUgb3BlcmF0aW9uIGFuZCBtb2RlbCBpbiB5b3VyIFNESy4gRXhwb3J0IHVzYWdlIHNuaXBwZXRzIGFuZCBob3N0IHRoZW0gb24gYSBicmFuZGVkIFNESyBhbmQgQVBJIGRvY3Mgc2l0ZSB1c2luZyBvdXIgRG9jdXNhdXJ1cyBSZWFjdCBwbHVnaW4uIAoqICoqRGlzdHJpYnV0aW9uIHRvIFBhY2thZ2UgTWFuYWdlcnMqKiAtIEEgY29tcGxldGUgcGlwZWxpbmUgZm9yIGRpc3RyaWJ1dGluZyB5b3VyIGxpYnJhcmllcyB0byBwb3B1bGFyIHBhY2thZ2UgbWFuYWdlcnMgbGlrZSBucG0sIFB5UEksIE1hdmVuLCBhbmQgVGVycmFmb3JtIFJlZ2lzdHJ5LiAKKiAqKlN1cHBvcnRzIE9wZW4gU3RhbmRhcmRzKiogLSBTcGVha2Vhc3kgd29ya3Mgd2l0aCB5b3VyIGV4aXN0aW5nIEFQSSBmcmFtZXdvcmsgYnkgc3VwcG9ydGluZyBPcGVuQVBJMy5YIGFuZCBvdGhlciBvcGVuIHN0YW5kYXJkcy4gUGx1ZyBhbmQgcGxheSBub3QgcmlwIGFuZCByZXBsYWNlLiAKCkZvciB1cGNvbWluZyBmZWF0dXJlcyBhbmQgYnVnIGZpeGVzLCBjaGVjayBvdXQgb3VyIFtwdWJsaWMgcm9hZG1hcF0oaHR0cHM6Ly9naXRodWIuY29tL29yZ3Mvc3BlYWtlYXN5LWFwaS9wcm9qZWN0cy82L3ZpZXdzLzEpLgoKIyMgV2hhdCBpcyB0aGUgU3BlYWtlYXN5IENMST8KClRoZSBbU3BlYWtlYXN5IENMSV0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5LmNvbS9kb2NzL3NwZWFrZWFzeS1jbGkvZ2V0dGluZy1zdGFydGVkKSBpcyBhIHRvb2wgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFNwZWFrZWFzeSBwbGF0Zm9ybSB0aGF0IGJyaW5ncyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBTcGVha2Vhc3kgaW50byB5b3VyIGRldmVsb3BtZW50IHdvcmtmbG93LiAKCllvdSBjYW4gcnVuIHRoZSBTcGVha2Vhc3kgQ0xJIGxvY2FsbHkgb3IgaW4geW91ciBDSS9DRCBwaXBlbGluZSB0byB2YWxpZGF0ZSB5b3VyIEFQSSBzcGVjcywgZ2VuZXJhdGUgU0RLcywgYW5kIG1vcmUuIExvb2tpbmcgdG8gZW1iZWQgdGhpcyBpbnRvIHlvdXIgR2l0SHViIENJL0NEPyBDaGVjayBvdXQgW3RoZXNlIGRvY3NdKGh0dHBzOi8vc3BlYWtlYXN5LmNvbS9kb2NzL2NyZWF0ZS1jbGllbnQtc2Rrcy9naXRodWItc2V0dXAvKSBpbnN0ZWFkLiAKCkhlcmUgYXJlIGEgZmV3IGtleSBmdW5jdGlvbnMgb2YgdGhlIENMSToKCiogYHF1aWNrc3RhcnRgIC0gQ3JlYXRlIGFuIGlkaW9tYXRpYyBjbGllbnQgU0RLIG9yIHRhcmdldCwgc3VjaCBhcyBhIFRlcnJhZm9ybSBQcm92aWRlciwgZnJvbSB5b3VyIEFQSSBzcGVjcy4KKiBgcnVuYCAtIFJlZ2VuZXJhdGUgZXhpc3RpbmcgU0RLL3RhcmdldCBmcm9tIHlvdXIgQVBJIHNwZWNzLgoqIGB2YWxpZGF0ZWAgLSBWYWxpZGF0ZSB0aGUgY29ycmVjdG5lc3Mgb2YgeW91ciBBUEkgc3BlY3MuIFRoZSBDTEkgaGFzIGEgYnVpbHQtaW4gY29tbWFuZCB0byB2YWxpZGF0ZSB5b3VyIHNwZWMgZm9yIFNESyByZWFkaW5lc3MgYW5kIHBvc3QgaGVscGZ1bCBlcnJvciBtZXNzYWdlcy4KKiBgc3VnZ2VzdGAgLSBVc2UgYW4gTExNIHRvIGF1dG9jb3JyZWN0IHlvdXIgc3BlYyB2YWxpZGF0aW9uIGZhaWx1cmVzLiAKKiBgbWVyZ2VgIC0gV29yayB3aXRoIHlvdXIgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiB3b3JrZmxvd3MgYnkgbWVyZ2luZyB5b3VyIEFQSSBzcGVjcyBpbnRvIGEgc2luZ2xlIHNwZWMuIAoqIGBhdXRoYCAtIEF1dGhlbnRpY2F0ZSB3aXRoIHRoZSBwbGF0Zm9ybSBhbmQgbWFuYWdlIEFQSSBrZXlzLiAKKiBgc3RhdHVzYCAtIFJldmlldyBhbGwgU0RLL3RhcmdldHMgaW4gY3VycmVudCB3b3Jrc3BhY2UuCgpGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGNvbW1hbmRzIGNoZWNrIG91dCBvdXIgW3JlZmVyZW5jZV0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5LmNvbS9kb2NzL3NwZWFrZWFzeS1jbGkvZ2V0dGluZy1zdGFydGVkKSBvciB0eXBlIGBzcGVha2Vhc3lgIGFuZCBvdXIgaW50ZXJhY3RpdmUgbW9kZSB3aWxsIHRha2UgeW91IHRocm91Z2ggdGhlIGF2YWlsYWJsZSBmdW5jdGlvbnMuIAoKIyMgRGVzaWduIENob2ljZXMKCkVhY2ggU0RLIGdlbmVyYXRlZCBieSBTcGVha2Vhc3kgaXMgaWRpb21hdGljIHRvIHRoZSBsYW5ndWFnZSBpdCdzIGdlbmVyYXRlZCBmb3Igd2hpbGUgc2hhcmluZyBjb21tb24gcGF0dGVybnMgd2l0aCBTREtzIGZvciBvdGhlciBsYW5ndWFnZXMgdG8gYWxsb3cgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0uIFVzaW5nIHNoYXJlZCBwYXR0ZXJucyBhbHNvIGhlbHBzIHRvIGtlZXAgdGhlIFNwZWFrZWFzeSBnZW5lcmF0aW9uIGVuZ2luZSBlZmZpY2llbnQgd2hpbGUgc3VwcG9ydGluZyBtYW55IGxhbmd1YWdlcy4KCkhlcmUgYXJlIHNvbWUgb2YgdGhlIFNwZWFrZWFzeSBkZXNpZ24gZGVjaXNpb25zOgoKKiBFYWNoIFNESyBnZW5lcmFsbHkgaW1wbGVtZW50cyBhIGJhc2UgU0RLIGNsYXNzIHRoYXQgY29udGFpbnMgdGhlIG1ldGhvZHMgZm9yIGVhY2ggb2YgdGhlIEFQSSBlbmRwb2ludHMgZGVmaW5lZCBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudC4KKiBXaGVyZSBwb3NzaWJsZSwgU3BlYWtlYXN5IGdlbmVyYXRlcyBmdWxseSB0eXBlZCBtb2RlbHMgZnJvbSB0aGUgT3BlbkFQSSBkb2N1bWVudCwgc2VwYXJhdGluZyBtb2RlbHMgZGVmaW5lZCBhcyBjb21wb25lbnRzIGluIHRoZSBkb2NzIGZyb20gbW9kZWxzIGRlZmluZWQgaW4gbGluZSB3aXRoIG9wZXJhdGlvbnMuCiogQmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gaW4gdGhlIE9wZW5BUEkgZG9jdW1lbnQsIFNwZWFrZWFzeSBhbm5vdGF0ZXMgdHlwZXMgdXNpbmcgcmVmbGVjdGlvbiBtZXRhZGF0YSB0byBkZXRlcm1pbmUgaG93IHRvIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgdGhlbS4KKiBUbyBnZXQgU0RLcyB0byB5b3VyIGVuZCB1c2VycyBxdWlja2x5LCBTcGVha2Vhc3kgZ2VuZXJhdGVzIGZ1bGwgcGFja2FnZXMgZm9yIGVhY2ggbGFuZ3VhZ2UgdGhhdCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gcHVibGlzaCB0byBhIHBhY2thZ2UgcmVnaXN0cnkgd2l0aCBsaXR0bGUgYWRkaXRpb25hbCB3b3JrLiBJZiB5b3UncmUgaW50ZXJlc3RlZCBpbiBoYXZpbmcgYSBtYW5hZ2VkIHBpcGVsaW5lIHRvIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBjaGVjayBvdXQgdGhlIFNwZWFrZWFzeSBHZW5lcmF0aW9uIEdpdEh1YiBBY3Rpb24uCgpXYW50IHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIFNwZWFrZWFzeSBtZXRob2RvbG9neT8gVGFrZSBhIGxvb2sgYXQgW2hvdyB0aGUgU3BlYWtlYXN5IFNESyBnZW5lcmF0b3IgY29tcGFyZXMgdG8gT1NTIG9wdGlvbnNdKGh0dHBzOi8vd3d3LnNwZWFrZWFzeS5jb20vcG9zdC9jbGllbnQtc2Rrcy1hcy1hLXNlcnZpY2UpLiAKCklmIHlvdSdyZSBpbnRlcmVzdGVkIGluIGdlbmVyYXRpbmcgbWFuYWdlZCBHaXRIdWIgcmVwb3MgZm9yIHlvdXIgU0RLcyBvciBlbnRlcnByaXNlIHN1cHBvcnQsIFtyZWFjaCBvdXQgdG8gdXNdKGh0dHBzOi8vd3d3LnNwZWFrZWFzeS5jb20vcmVxdWVzdC1hY2Nlc3MpIG9yIFtzY2hlZHVsZSBhIGNoYXRdKGh0dHBzOi8vY2FsZW5kbHkuY29tL2QvZHJ3LXQ5OC1ycHEvc2ltb24tc2FnYXItc3BlYWtlYXN5KS4gV2UnZCBsb3ZlIHRvIGhlbHAgeW91IGJ1aWxkIG91dCBBUEkgRGV2RXguCgpJZiB5b3UncmUgaW50ZXJlc3RlZCBpbiBoYXZpbmcgbWFuYWdlZCBHaXRIdWIgcmVwb3MgZ2VuZXJhdGVkIGZvciB5b3VyIFNES3Mgb3IgZW50ZXJwcmlzZSBzdXBwb3J0LCBbcmVhY2ggb3V0IHRvIHVzXShodHRwczovL3d3dy5zcGVha2Vhc3kuY29tL3JlcXVlc3QtYWNjZXNzKSBvciBbc2NoZWR1bGUgYSBjaGF0XShodHRwczovL2NhbGVuZGx5LmNvbS9kL2Rydy10OTgtcnBxL3NpbW9uLXNhZ2FyLXNwZWFrZWFzeSkuIFdlJ2QgbG92ZSB0byBoZWxwIHlvdSBidWlsZCBvdXQgQVBJIERldkV4LgoKPiBTcGVha2Vhc3kgbWF5IGNhcHR1cmUgbWV0YWRhdGEgb24gdXNhZ2Ugb2YgdGhlIFNwZWFrZWFzeSBDTEkgdG8gYmV0dGVyIHVuZGVyc3RhbmQgT3BlbkFQSSBmZWF0dXJlcyBzbyB0aGF0IHdlIGNhbiBidWlsZCBiZXR0ZXIgY29kZSBnZW5lcmF0b3JzIGFuZCBvdGhlciB0b29scyBvdmVyIHRpbWUuCgojIyBJbnN0YWxsYXRpb24KCiMjIyBIb21lYnJldyAobWFjT1MgYW5kIExpbnV4KQoKYGBgYmFzaApicmV3IGluc3RhbGwgc3BlYWtlYXN5LWFwaS9ob21lYnJldy10YXAvc3BlYWtlYXN5CmBgYAoKIyMjIFNjcmlwdCAobWFjT1MgYW5kIExpbnV4KQoKYGBgYmFzaApjdXJsIC1mc1NMIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zcGVha2Vhc3ktYXBpL3NwZWFrZWFzeS9tYWluL2luc3RhbGwuc2ggfCBzaApgYGAKCiMjIyBDaG9jb2xhdGV5IChXaW5kb3dzKQoKYGBgY21kCmNob2NvIGluc3RhbGwgc3BlYWtlYXN5CmBgYAoKIyMjIE1hbnVhbCBJbnN0YWxsYXRpb24KCkRvd25sb2FkIHRoZSBsYXRlc3QgcmVsZWFzZSBmb3IgeW91ciBwbGF0Zm9ybSBmcm9tIHRoZSBbcmVsZWFzZXMgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3NwZWFrZWFzeS1hcGkvc3BlYWtlYXN5L3JlbGVhc2VzKSwgZXh0cmFjdCwgYW5kIGFkZCB0aGUgYmluYXJ5IHRvIHlvdXIgcGF0aC4KCiMjIyBLZWVwaW5nIFVwIHRvIERhdGUKClRoZSBDTEkgd2lsbCB3YXJuIHlvdSBpZiB5b3UncmUgcnVubmluZyBhbiBvdXRkYXRlZCB2ZXJzaW9uLiBUbyB1cGRhdGUgdGhlIENMSSBydW46CgpgYGBiYXNoCnNwZWFrZWFzeSB1cGRhdGUKYGBgCgpBbHRlcm5hdGl2ZWx5LCBpbnN0YWxsIHRoZSBsYXRlc3QgdmVyc2lvbiB2aWEgeW91ciBwYWNrYWdlIG1hbmFnZXIuCgojIyBHZXR0aW5nIFN0YXJ0ZWQgV2l0aCB0aGUgU3BlYWtlYXN5IENMSQoKT25jZSB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIFNwZWFrZWFzeSBDTEksIHlvdSBjYW4gdmVyaWZ5IGl0J3Mgd29ya2luZyBieSBydW5uaW5nOgoKYGBgYmFzaApzcGVha2Vhc3kgLS1oZWxwCmBgYAoKU2VlIHRoZSBTcGVha2Vhc3kgZG9jcyBmb3IgW2hvdyB0byBnZXQgc3RhcnRlZCB3aXRoIHRoZSBTcGVha2Vhc3kgQ0xJXShodHRwczovL3d3dy5zcGVha2Vhc3kuY29tL2RvY3Mvc3BlYWtlYXN5LWNsaS9nZXR0aW5nLXN0YXJ0ZWQpLgoKIyMjIEF1dGhlbnRpY2F0aW5nIHRoZSBTcGVha2Vhc3kgQ0xJCgpUaGUgU3BlYWtlYXN5IENMSSBkZXBlbmRzIG9uIFNwZWFrZWFzeSBQbGF0Zm9ybSBBUElzLiBDb25uZWN0IHlvdXIgU3BlYWtlYXN5IENMSSB3aXRoIHRoZSBTcGVha2Vhc3kgUGxhdGZvcm0gYnkgcnVubmluZzoKCmBgYGJhc2gKc3BlYWtlYXN5IGF1dGggbG9naW4KYGBgCllvdSdsbCBiZSByZWRpcmVjdGVkIHRvIGEgbG9naW4gVVJMIHRvIHNlbGVjdCBhbiBleGlzdGluZyB3b3Jrc3BhY2Ugb3IgY3JlYXRlIGEgbmV3IHdvcmtzcGFjZSBvbiB0aGUgcGxhdGZvcm0uIElmIHlvdXIgbG9jYWwgbmV0d29yayBwcmV2ZW50cyB5b3UgZnJvbSBhY2Nlc3NpbmcgdGhlIGxvZ2luIHBhZ2UgcHJvbXB0ZWQgYnkgdGhlIENMSSwgeW91IGNhbiBsb2cgaW4gbWFudWFsbHkgYXQgW2FwcC5zcGVha2Vhc3kuY29tXShodHRwczovL2FwcC5zcGVha2Vhc3kuY29tKSwgcmV0cmlldmUgYW4gQVBJIGtleSwgYW5kIHBvcHVsYXRlIGEgbG9jYWwgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZWQgYFNQRUFLRUFTWV9BUElfS0VZYCB3aXRoIHRoZSBrZXkuCgo8aW1nIHdpZHRoPSIxMjY4IiBhbHQ9IlNjcmVlbnNob3QgMjAyMy0wMS0yOSBhdCAyMyAxMiAwNSIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS82ODAxNjM1MS8yMTU0MTA5ODMtYjQxZGFiOGMtMTJiMS00NzJjLWEyZmItMzMyNWI4ODFmZjhlLnBuZyI+CgojIyMgU0RLIEdlbmVyYXRpb24KCioqQ29tbWFuZCoqOgoKYGBgYmFzaApzcGVha2Vhc3kgZ2VuZXJhdGUgc2RrIFtmbGFnc10KYGBgCgoqKk9wdGlvbnMqKjoKCmBgYGJhc2gKICAtYiwgLS1iYXNldXJsIHN0cmluZyAgIGJhc2UgVVJMIGZvciB0aGUgQVBJIChvbmx5IHJlcXVpcmVkIGlmIE9wZW5BUEkgc3BlYyBkb2Vzbid0IHNwZWNpZnkgcm9vdCBzZXJ2ZXIgVVJMcykKICAtZCwgLS1kZWJ1ZyAgICAgICAgICAgIGVuYWJsZSB3cml0aW5nIGRlYnVnIGZpbGVzIHdpdGggYnJva2VuIGNvZGUKICAtaCwgLS1oZWxwICAgICAgICAgICAgIGhlbHAgZm9yIFNESwogIC1sLCAtLWxhbmcgc3RyaW5nICAgICAgbGFuZ3VhZ2UgdG8gZ2VuZXJhdGUgU0RLIGZvciwgZGVmYXVsdHMgdG8gZ28gKGF2YWlsYWJsZSBvcHRpb25zOiBnbywgcHl0aG9uLCB0eXBlc2NyaXB0LCBqYXZhKQogIC1vLCAtLW91dCBzdHJpbmcgICAgICAgcGF0aCB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeQogIC1zLCAtLXNjaGVtYSBzdHJpbmcgICAgcGF0aCB0byB0aGUgT3BlbkFQSSBzY2hlbWEKICAteSwgLS1hdXRvLXllcyBzdHJpbmcgIGF1dG8gYW5zd2VyIHllcyB0byBhbGwgcHJvbXB0cwpgYGAKClRha2UgYSBsb29rIGF0IHRoZSBTcGVha2Vhc3kgW2dldHRpbmcgc3RhcnRlZF0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5LmNvbS9kb2NzL3NwZWFrZWFzeS1jbGkvZ2V0dGluZy1zdGFydGVkKSBwYWdlIGZvciBpbi1kZXB0aCBpbmZvcm1hdGlvbi4KCiMjIFNjaGVtYSBWYWxpZGF0aW9uCgpOb3RlIHRoYXQgeW91IGRvbid0IG5lZWQgdG8gYmUgbG9nZ2VkIGluIHRvIHRoZSBTcGVha2Vhc3kgcGxhdGZvcm0gdG8gdmFsaWRhdGUgeW91ciBBUEkgc2NoZW1hLgoKKipDb21tYW5kKio6CgpgYGBiYXNoCnNwZWFrZWFzeSB2YWxpZGF0ZSBvcGVuYXBpIFtmbGFnc10KYGBgCgoqKk9wdGlvbnMqKjoKCmBgYGJhc2gKICAtaCwgLS1oZWxwICAgICAgICAgICAgaGVscCBmb3IgT3BlbkFQSQogIC1zLCAtLXNjaGVtYSBzdHJpbmcgICBwYXRoIHRvIHRoZSBPcGVuQVBJIHNjaGVtYQpgYGAKCiMjIE9wZW5BUEkgVXNhZ2UKCk5vdGUgdGhhdCB5b3UgZG9uJ3QgbmVlZCB0byBiZSBsb2dnZWQgaW4gdG8gdGhlIFNwZWFrZWFzeSBwbGF0Zm9ybSB0byB2aWV3IE9wZW5BUEkgdXNhZ2UgaW5mb3JtYXRpb24uCgoqKkNvbW1hbmQqKjoKClVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gcmV0dXJuIHVzYWdlIGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIE9wZW5BUEkgc2NoZW1hIHRvIGEgQ1NWLiBVc2FnZSBpbmZvcm1hdGlvbiBpbmNsdWRlcyBjb3VudHMgb2YgT3BlbkFQSSBmZWF0dXJlcy4KCmBgYGJhc2gKc3BlYWtlYXN5IHVzYWdlIFtmbGFnc10KYGBgCgoqKk9wdGlvbnMqKjoKCmBgYGJhc2gKICAtZCwgLS1kZWJ1ZyAgICAgICAgIGVuYWJsZSB3cml0aW5nIGRlYnVnIGZpbGVzIHdpdGggYnJva2VuIGNvZGUKICAtZiwgLS1maWxlIHN0cmluZyAgIHBhdGggdG8gZmlsZSB0byBnZW5lcmF0ZSB1c2FnZSBpbmZvcm1hdGlvbiBmb3IKICAtaCwgLS1oZWxwICAgICAgICAgIGhlbHAgZm9yIHVzYWdlCiAgLW8sIC0tb3V0IHN0cmluZyAgICBwYXRoIHRvIG91dHB1dCBmaWxlCmBgYAoKIyMgT3BlbkFQSSBTdXBwb3J0CgpUaGUgdGFibGVzIGJlbG93IGdpdmUgYW4gb3ZlcnZpZXcgb2Ygd2hhdCB3ZSBzdXBwb3J0IGZyb20gT3BlbkFQSS4KCiMjIyDinIUgU2VydmVyIENvbmZpZ3VyYXRpb24gCgp8IE5hbWUgfCBOb3RlcyB8IFN3YWdnZXIgTGluayB8U3VwcG9ydCB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLXwKfCBTZXJ2ZXJVUkwgY29uZmlnIHwgR2xvYmFsIGFuZCBwZXItbWV0aG9kIChpbmNsdWRlIGJhc2UgVVJMIGFuZCB0ZW1wbGF0aW5nKSB8IFthcGktaG9zdC1hbmQtYmFzZS1wYXRoXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2FwaS1ob3N0LWFuZC1iYXNlLXBhdGgvKSB84pyFIHwKfCBBdXRoZW50aWNhdGlvbiBhbmQgc2VjdXJpdHkgfCBHbG9iYWwgYW5kIHBlci1tZXRob2QgfCBbYXV0aGVudGljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYXV0aGVudGljYXRpb24vKSB84pyFIHwKfCBNZXRob2QgZ2VuZXJhdGlvbiB8ICB8ICAgfOKchSB8CnwgTW9kZWwgZ2VuZXJhdGlvbiB8ICBSZXF1ZXN0IGFuZCByZXNwb25zZSB8ICAgfOKchSB8CgojIyMg4pqg77iPIFBhdGggUGFyYW1ldGVycyBTZXJpYWxpemF0aW9uIChbcGF0aC1wYXJhbWV0ZXJzXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2Rlc2NyaWJpbmctcGFyYW1ldGVycy8jcGF0aC1wYXJhbWV0ZXJzKSkKCnwgTmFtZSB8IE5vdGVzIHwgU3dhZ2dlciBMaW5rIHwgU3VwcG9ydCB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18CnwgRGVmYXVsdCB8IGAoc3R5bGUgPSBzaW1wbGUsIGV4cGxvZGUgPSBmYWxzZSlgIHwgW3NlcmlhbGl6YXRpb24vI3BhdGhdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vc2VyaWFsaXphdGlvbi8jcGF0aC8pIHwg4pyFIHwKfCBCYXNpYyB0eXBlcyB8IHwgfCDinIUgfAp8IFNpbXBsZSBvYmplY3RzIHwgfCB8IOKchSB8CnwgYGxhYmVsYCB8IHwgfCDinYwgfAp8IGBtYXRyaXhgIHwgfCB8IOKdjCB8CgojIyMg4pqg77iPIFF1ZXJ5IFBhcmFtZXRlcnMgU2VyaWFsaXphdGlvbiAoW3F1ZXJ5LXBhcmFtZXRlcnNdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGVzY3JpYmluZy1wYXJhbWV0ZXJzLyNxdWVyeS1wYXJhbWV0ZXJzKSAmIFtxdWVyeV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kZXNjcmliaW5nLXBhcmFtZXRlcnMvI3F1ZXJ5KSkKCnwgTmFtZSB8IE5vdGVzIHwgU3dhZ2dlciBMaW5rIHwgU3VwcG9ydCB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18CnwgYGpzb25gIHwgfCB8IOKchSB8CnwgYGZvcm1gIHwgfCB8IOKchSB8CnwgYHNwYWNlRGVsaW1pdGVkYCB8IHwgfCDinIUgfAp8IGBwaXBlRGVsaW1pdGVkYCB8IHwgfCDinIUgfAp8IGBkZWVwT2JqZWN0YCB8IHwgfCDinIUgfAp8IEJhc2ljIHR5cGVzIHwgfCB8IOKchSB8CnwgU2ltcGxlIG9iamVjdHMgfCB8IHwg4pyFIHwKCiMjIyDinIUgIFJlcXVlc3QgSGVhZGVycyAoW2hlYWRlcl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9zZXJpYWxpemF0aW9uLyNoZWFkZXIpKQoKfCBOYW1lIHwgTm90ZXMgfCBTd2FnZ2VyIExpbmsgfCBTdXBwb3J0IHwKfC0tLS0tLXwtLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwKfCBTaW1wbGUgKGV4cGxvZGUgPSB0cnVlKXwgfCB8IOKchSB8CnwgU2ltcGxlIChleHBsb2RlID0gZmFsc2UpfCB8IHwg4pyFIHwKCiMjIyDimqDvuI8gIFJlcXVlc3QgQm9keSBTZXJpYWxpemF0aW9uCgp8IE5hbWUgfCBOb3RlcyB8IFN3YWdnZXIgTGluayB8IFN1cHBvcnQgfAp8LS0tLS0tfC0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfAp8IE11bHRpcGFydCBlbmNvZGluZyB8IHwgW211bHRpLXBhcnQgcmVxdWVzdHNdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGVzY3JpYmluZy1yZXF1ZXN0LWJvZHkvbXVsdGlwYXJ0LXJlcXVlc3RzLyl8IOKchSB8CnwgQmluYXJ5fCB8IHwg4pyFIHwKfCBGb3JtIGRhdGEgfCB8IHwg4pyFIHwKfCBKU09OIHwgQm90aCBgYXBwbGljYXRpb24vanNvbmAgYW5kIGB0ZXh0L2pzb25gfCB8IOKchSB8CnwgYHgtd3d3LWZvcm0tdXJsZW5jb2RlZGAgfCAgSW5jbHVkaW5nIGVuY29kaW5nLCBidXQgbm90IG5vbi1vYmplY3QgdHlwZXMgfCBbZGVzY3JpYmluZy1yZXF1ZXN0LWJvZHldKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGVzY3JpYmluZy1yZXF1ZXN0LWJvZHkpfCDimqDvuI8gfAp8IFBsYWluIHRleHQgfCB8IHwg4pyFIHwKfCBSYXcgYnl0ZSB8IHwgfCDinIUgfAp8IEhhbmRsaW5nIGByZXF1aXJlZGAgYm9keSB8IHwgfCDinIUgfAp8IFhNTCB8IHwgfCDinYwgfAp8IE90aGVyIG1lZGlhIHR5cGVzfCB8IHwg4p2MIHwKCiMjIyDimqDvuI8gIFJlc3BvbnNlIEJvZHkgRGVzZXJpYWxpemF0aW9uCgp8IE5hbWUgfCBOb3RlcyB8IFN3YWdnZXIgTGluayB8IFN1cHBvcnQgfAp8LS0tLS0tfC0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfAp8IFJldHVybiBTdGF0dXNDb2RlIGFuZCBDb250ZW50LVR5cGUgfCB8IHwg4pyFIHwKfCBKU09OIHwgfCB8IOKchSB8CnwgUGxhaW4gdGV4dCB8IHwgfCDinIUgfAp8IFJhdyBieXRlIHwgfCB8IOKchSB8CnwgSlNPTiB8IHwgfCDinIUgfAp8IE90aGVyIG1lZGlhIHR5cGVzfCB8IHwg4p2MIHwKCiMjIyDinIUgTWVkaWEtVHlwZSBQYXR0ZXJucyAoW21lZGlhLXR5cGVzXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL21lZGlhLXR5cGVzKSkKCiMjIyDinIUgRGF0YXR5cGVzCgp8IE5hbWUgfCBOb3RlcyB8IFN3YWdnZXIgTGluayB8IFN1cHBvcnQgfAp8LS0tLS0tfC0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfAp8IEJhc2ljIHR5cGVzIHwgfCBbZGF0YS1tb2RlbHMvZGF0YS10eXBlc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kYXRhLW1vZGVscy9kYXRhLXR5cGVzLyl8IOKchSB8CnwgRW51bXMgfCB8IHwg4pyFIHwKfCBOdW1iZXIgZm9ybWF0cyB8IGZsb2F0LCBkb3VibGUsIGludDMyLCBpbnQ2NCB8IHwg4pyFIHwKfCBEYXRlLXRpbWUgfCB8IHwg4pyFIHwKfCBCaW5hcnkgfCB8IHwg4pyFIHwKfCBBcnJheXMgfCB8IHwg4pyFIHwKfCBPYmplY3RzIHwgfCB8IOKchSB8CnwgT3B0aW9uYWwgfCB8IHwg4pyFIHwKfCBNYXBzIHwgfCB8IOKchSB8CnwgQW55IHR5cGUgfCB8IHwg4pyFIHwKfCBPbmVPZi9BbnlPZi9BbGxPZiB8IGFueU9mIHRyZWF0ZWQgYXMgb25lT2YgfFtvbmVvZi1hbnlvZi1hbGxvZi1ub3RdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGF0YS1tb2RlbHMvb25lb2YtYW55b2YtYWxsb2Ytbm90Lyl8IOKchSB8CgojIyMg4pyFICBNaXNjZWxsYW5lb3VzCgp8IE5hbWUgfCBOb3RlcyB8IFN3YWdnZXIgTGluayB8IFN1cHBvcnQgfAp8LS0tLS0tfC0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfAp8IEF1eGlsaWFyeSBmaWxlcyogfCB8IHwg4pyFIHwKfCBgeC1zcGVha2Vhc3ktc2VydmVyLWlkYCBnZW5lcmF0aW9uIHwgfCB8IOKchSB8CnwgU25pcHBldCBnZW5lcmF0aW9uIHwgfCB8IOKchSB8CnwgUkVBRE1FIGdlbmVyYXRpb24gfCB8IHwg4pyFIHwKfCBEb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gfCB8IHwg4pyFIHwKClwqIFV0aWxpdHkgY2xhc3NlcyBhbmQgZnVuY3Rpb25zIHRvIGhlbHAgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uCgpcKiBGaWxlcyBuZWVkZWQgZm9yIGNyZWF0aW5nIGEgZnVsbHkgY29tcGlsYWJsZSBwYWNrYWdlIHRoYXQgY2FuIGJlIHB1Ymxpc2hlZCB0byB0aGUgcmVsZXZhbnQgcGFja2FnZSBtYW5hZ2VyIHdpdGhvdXQgZnVydGhlciBjaGFuZ2VzLgoKCiMjIEFkdmFuY2VkIEdlbmVyYXRpb24gRmVhdHVyZXMKCiogW1NESyBHZW4gQ29uZmlndXJhdGlvbl0oaHR0cHM6Ly9zcGVha2Vhc3kuY29tL2RvY3MvdXNpbmctc3BlYWtlYXN5L2NyZWF0ZS1jbGllbnQtc2Rrcy9jdXN0b21pemUtc2Rrcy9pbnRyby8pIC0gTGVhcm4gaG93IHRvIGNvbmZpZ3VyZSB0aGUgU0RLIGdlbmVyYXRvciB0byB5b3VyIG5lZWRzLgoqIFtHZW5lcmF0ZWQgQ29tbWVudHNdKGh0dHBzOi8vc3BlYWtlYXN5LmNvbS9kb2NzL3VzaW5nLXNwZWFrZWFzeS9jcmVhdGUtY2xpZW50LXNka3Mvc2RrLWRvY3MvI2NvbW1lbnRzKSAtIExlYXJuIGhvdyBjb21tZW50cyBhcmUgZ2VuZXJhdGVkIGZyb20geW91ciBPcGVuQVBJIGRvY3VtZW50IGFuZCBob3cgdG8gY3VzdG9taXplIHRoZW0uCiogW0NvbmZpZ3VyaW5nIHRoZSBTREsgd2l0aCBTZXJ2ZXIgVVJMc10oaHR0cHM6Ly9zcGVha2Vhc3kuY29tL2RvY3MvdXNpbmctc3BlYWtlYXN5L2NyZWF0ZS1jbGllbnQtc2Rrcy9jdXN0b21pemUtc2Rrcy9zZXJ2ZXJzLykgLSBMZWFybiBob3cgdG8gY29uZmlndXJlIHRoZSBTREsgdG8gdXNlIGRpZmZlcmVudCBzZXJ2ZXIgVVJMcyBmb3IgZGlmZmVyZW50IGVudmlyb25tZW50cy4KKiBbUmVhZG1lIEdlbmVyYXRpb25dKGh0dHBzOi8vc3BlYWtlYXN5LmNvbS9kb2NzL3VzaW5nLXNwZWFrZWFzeS9jcmVhdGUtY2xpZW50LXNka3Mvc2RrLWRvY3MvKSAtIExlYXJuIGhvdyB0aGUgU0RLIGdlbmVyYXRlcyBSRUFETUUubWQgZmlsZXMgYW5kIGhvdyB0byBjb250cm9sIHRoaXMuCiogW1VzaW5nIEN1c3RvbSBIVFRQIENsaWVudHMgV2l0aCB0aGUgU0RLXShodHRwczovL3NwZWFrZWFzeS5jb20vZG9jcy91c2luZy1zcGVha2Vhc3kvY3JlYXRlLWNsaWVudC1zZGtzL2N1c3RvbWl6ZS1zZGtzL2N1c3RvbS1odHRwLWNsaWVudC8pIC0gTGVhcm4gaG93IHRvIHByb3ZpZGUgYSBjdXN0b20gSFRUUCBDbGllbnQgdG8gdGhlIFNES3MgYXQgcnVudGltZS4KKiBbQ2FwdHVyaW5nIFRlbGVtZXRyeSBvbiBTREsgVXNhZ2VdKGh0dHBzOi8vc3BlYWtlYXN5LmNvbS9kb2NzL3VzaW5nLXNwZWFrZWFzeS9jcmVhdGUtY2xpZW50LXNka3Mvc2RrLXRlbGVtZXRyeS8pIC0gTGVhcm4gaG93IHlvdSBjYW4gY2FwdHVyZSB0ZWxlbWV0cnkgdG8gZ2V0IGFuIHVuZGVyc3RhbmRpbmcgb2YgaG93IHlvdXIgU0RLcyBhcmUgYmVpbmcgdXNlZC4KKiBbQXV0b21hdGVkIFNESyBHZW5lcmF0aW9uXShodHRwczovL3NwZWFrZWFzeS5jb20vZG9jcy91c2luZy1zcGVha2Vhc3kvY3JlYXRlLWNsaWVudC1zZGtzL2dpdGh1Yi1zZXR1cC8pIC0gVXNlIG91ciBHaXRIdWIgQWN0aW9uIGFuZCBXb3JrZmxvd3MgdG8gc2V0IHVwIENJL0NEIGZvciBnZW5lcmF0aW5nIGFuZCBwdWJsaXNoaW5nIHlvdXIgU0RLcy4KKiBbT3ZlcnJpZGUgR2VuZXJhdGVkIE5hbWVzXShodHRwczovL3NwZWFrZWFzeS5jb20vZG9jcy91c2luZy1zcGVha2Vhc3kvY3JlYXRlLWNsaWVudC1zZGtzL2N1c3RvbWl6ZS1zZGtzL21ldGhvZHMvKSAtIFNwZWFrZWFzeSB1c2VzIHlvdXIgT3BlbkFQSSBzY2hlbWEgdG8gaW5mZXIgbmFtZXMgZm9yIGNsYXNzIHR5cGVzLCBtZXRob2RzLCBhbmQgcGFyYW1ldGVycy4gSG93ZXZlciwgeW91IGNhbiBvdmVycmlkZSB0aGVzZSBuYW1lcyB0byB0YWlsb3IgdGhlIGdlbmVyYXRlZCBTREsgdG8geW91ciBwcmVmZXJlbmNlcy4KKiBbQWRkIFJldHJpZXMgdG8gWW91ciBTREtzXShodHRwczovL3NwZWFrZWFzeS5jb20vZG9jcy91c2luZy1zcGVha2Vhc3kvY3JlYXRlLWNsaWVudC1zZGtzL2N1c3RvbWl6ZS1zZGtzL3JldHJpZXMvKSAtIFRoZSBnZW5lcmF0b3Igc3VwcG9ydHMgdGhlIGFiaWxpdHkgdG8gZ2VuZXJhdGUgU0RLcyB0aGF0IHdpbGwgYXV0b21hdGljYWxseSByZXRyeSByZXF1ZXN0cyB0aGF0IGZhaWwgZHVlIHRvIG5ldHdvcmsgZXJyb3JzIG9yIGFueSBjb25maWd1cmVkIEhUVFAgc3RhdHVzIGNvZGUuCgojIyBHZXR0aW5nIFN1cHBvcnQKCklmIHlvdSBuZWVkIHN1cHBvcnQgdXNpbmcgdGhlIFNwZWFrZWFzeSBDTEksIHBsZWFzZSBjb250YWN0IHVzIHZpYSBbZW1haWxdKGluZm9Ac3BlYWtlYXN5LmNvbSksIG9uIFtTbGFja10oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L3NwZWFrZWFzeS1kZXYvc2hhcmVkX2ludml0ZS96dC0xZGYwbGFsazUtSENBbHBjUWlxUHc4dkd1a1FXaGV4dyksIG9yIGZpbGUgYSBHaXRIdWIgaXNzdWUgYW5kIHdlJ2xsIHJlc3BvbmQgQVNBUCEKCjwhLS0gV0FSTklORzogVGhlIGJlbG93IGNvbnRlbnQgaXMgcmVwbGFjZWQgYnkgcnVubmluZyBgZ28gcnVuIGNtZC9kb2NzL21haW4uZ29gIHBsZWFzZSBkb24ndCBtYW51YWxseSBlZGl0IGFueXRoaW5nIGJlbG93IHRoaXMgbGluZSAtLT4KCiMjIyBVc2FnZQoKYGBgYmFzaApzcGVha2Vhc3kgW2ZsYWdzXQpgYGAKCiMjIyMgT3B0aW9ucwoKYGBgYmFzaAogIC1oLCAtLWhlbHAgICBoZWxwIGZvciBzcGVha2Vhc3kKYGBgCgojIyMjIFN1YiBDb21tYW5kcwoKKiBbc3BlYWtlYXN5IGFwaV0oZG9jcy9hcGkvUkVBRE1FLm1kKSAgLSBBY2Nlc3MgdGhlIFNwZWFrZWFzeSBBUEkgdmlhIHRoZSBDTEkKKiBbc3BlYWtlYXN5IGF1dGhdKGRvY3MvYXV0aC9SRUFETUUubWQpICAtIEF1dGhlbnRpY2F0ZSB0aGUgQ0xJCiogW3NwZWFrZWFzeSBnZW5lcmF0ZV0oZG9jcy9nZW5lcmF0ZS9SRUFETUUubWQpICAtIEdlbmVyYXRlIENsaWVudCBTREtzIGFuZCBUZXJyYWZvcm0gUHJvdmlkZXJzCiogW3NwZWFrZWFzeSB2YWxpZGF0ZV0oZG9jcy92YWxpZGF0ZS9SRUFETUUubWQpICAtIFZhbGlkYXRlIE9wZW5BUEkgZG9jdW1lbnRzCgojIyBDTEkgIApgc3BlYWtlYXN5YCAgCgoKVGhlIFNwZWFrZWFzeSBDTEkgdG9vbCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIFNwZWFrZWFzeS5jb20gcGxhdGZvcm0gIAoKIyMjIERldGFpbHMKCiMgU3BlYWtlYXN5IAoKQSBDTEkgdG9vbCBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgW1NwZWFrZWFzeSBwbGF0Zm9ybV0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5LmNvbS8pIGFuZCBpdHMgQVBJcy4KClVzZSB0aGlzIENMSSB0bzoKLSBMaW50IGFuZCB2YWxpZGF0ZSBPcGVuQVBJIHNwZWNzCi0gQ3JlYXRlLCBtYW5hZ2UsIGFuZCBydW4gU3BlYWtlYXN5IHdvcmtmbG93cwotIENvbmZpZ3VyZSBHaXRIdWIgQWN0aW9ucyBmb3IgU3BlYWtlYXN5IHdvcmtmbG93cwotIFN1Z2dlc3QgaW1wcm92ZW1lbnRzIHRvIE9wZW5BUEkgc3BlY3MKCkdlbmVyYXRlIGZyb20gT3BlbkFQSSBTcGVjczoKLSBDbGllbnQgYW5kIFNlcnZlciBTREtzIGluIEdPLCBQeXRob24sIFR5cGVTY3JpcHQsIEphdmEsIFBIUCwgQyMsIFN3aWZ0LCBSdWJ5Ci0gUG9zdG1hbiBjb2xsZWN0aW9ucwotIFRlcnJhZm9ybSBwcm92aWRlcnMKCltRdWlja3N0YXJ0IGd1aWRlXShodHRwczovL3d3dy5zcGVha2Vhc3kuY29tL2RvY3MvY3JlYXRlLWNsaWVudC1zZGtzKQoKVmlzaXQgW1NwZWFrZWFzeV0oaHR0cHM6Ly93d3cuc3BlYWtlYXN5LmNvbS8pIGZvciBtb3JlIGluZm9ybWF0aW9uCgoKIyMjIFVzYWdlCgpgYGAKc3BlYWtlYXN5IFtmbGFnc10KYGBgCgojIyMjIE9wdGlvbnMKCmBgYAogIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGhlbHAgZm9yIHNwZWFrZWFzeQogICAgICAtLWxvZ0xldmVsIHN0cmluZyAgIHRoZSBsb2cgbGV2ZWwgKGF2YWlsYWJsZSBvcHRpb25zOiBbaW5mbywgd2FybiwgZXJyb3JdKSAoZGVmYXVsdCAiaW5mbyIpCmBgYAoKIyMjIyBTdWIgQ29tbWFuZHMKCiogW3NwZWFrZWFzeSBhc2tdKGRvY3MvYXNrLm1kKQkgLSBTdGFydHMgYSBjb252ZXJzYXRpb24gd2l0aCBTcGVha2Vhc3kgdHJhaW5lZCBBSQoqIFtzcGVha2Vhc3kgYXV0aF0oZG9jcy9hdXRoL1JFQURNRS5tZCkJIC0gQXV0aGVudGljYXRlIHRoZSBDTEkKKiBbc3BlYWtlYXN5IGJ1bXBdKGRvY3MvYnVtcC5tZCkJIC0gQnVtcHMgdGhlIHZlcnNpb24gb2YgYSBTcGVha2Vhc3kgR2VuZXJhdGlvbiBUYXJnZXQKKiBbc3BlYWtlYXN5IGNsZWFuXShkb2NzL2NsZWFuLm1kKQkgLSBTcGVha2Vhc3kgY2xlYW4gY2FuIGJlIHVzZWQgdG8gY2xlYW4gdXAgY2FjaGUsIHN0YWxlIHRlbXAgZm9sZGVycywgYW5kIG9sZCBDTEkgYmluYXJpZXMuCiogW3NwZWFrZWFzeSBjb25maWd1cmVdKGRvY3MvY29uZmlndXJlL1JFQURNRS5tZCkJIC0gQ29uZmlndXJlIHlvdXIgU3BlYWtlYXN5IFNESyBTZXR1cC4KKiBbc3BlYWtlYXN5IGdlbmVyYXRlXShkb2NzL2dlbmVyYXRlL1JFQURNRS5tZCkJIC0gT25lIG9mZiBHZW5lcmF0aW9ucyBmb3IgY2xpZW50IFNES3MgYW5kIG1vcmUKKiBbc3BlYWtlYXN5IGxpbnRdKGRvY3MvbGludC9SRUFETUUubWQpCSAtIExpbnQvVmFsaWRhdGUgT3BlbkFQSSBkb2N1bWVudHMgYW5kIFNwZWFrZWFzeSBjb25maWd1cmF0aW9uIGZpbGVzCiogW3NwZWFrZWFzeSBtZXJnZV0oZG9jcy9tZXJnZS5tZCkJIC0gTWVyZ2UgbXVsdGlwbGUgT3BlbkFQSSBkb2N1bWVudHMgaW50byBhIHNpbmdsZSBkb2N1bWVudAoqIFtzcGVha2Vhc3kgb3BlbmFwaV0oZG9jcy9vcGVuYXBpL1JFQURNRS5tZCkJIC0gVXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggT3BlbkFQSSBkb2N1bWVudHMKKiBbc3BlYWtlYXN5IG92ZXJsYXldKGRvY3Mvb3ZlcmxheS9SRUFETUUubWQpCSAtIFdvcmsgd2l0aCBPcGVuQVBJIE92ZXJsYXlzCiogW3NwZWFrZWFzeSBxdWlja3N0YXJ0XShkb2NzL3F1aWNrc3RhcnQubWQpCSAtIEd1aWRlZCBzZXR1cCB0byBoZWxwIHlvdSBjcmVhdGUgYSBuZXcgU0RLIGluIG1pbnV0ZXMuCiogW3NwZWFrZWFzeSBydW5dKGRvY3MvcnVuLm1kKQkgLSBSdW4gYWxsIHRoZSB3b3JrZmxvd3MgZGVmaW5lZCBpbiB5b3VyIHdvcmtmbG93LnlhbWwgZmlsZS4gVGhpcyBjYW4gaW5jbHVkZSBtdWx0aXBsZSBTREsgZ2VuZXJhdGlvbnMgZnJvbSBkaWZmZXJlbnQgT3BlbkFQSSBzb3VyY2VzCiogW3NwZWFrZWFzeSBzdGF0dXNdKGRvY3Mvc3RhdHVzLm1kKQkgLSBSZXZpZXcgc3RhdHVzIG9mIGN1cnJlbnQgd29ya3NwYWNlCiogW3NwZWFrZWFzeSBzdWdnZXN0XShkb2NzL3N1Z2dlc3QvUkVBRE1FLm1kKQkgLSBBdXRvbWF0aWNhbGx5IGltcHJvdmUgeW91ciBPcGVuQVBJIGRvY3VtZW50IHdpdGggYW4gTExNCiogW3NwZWFrZWFzeSB0YWddKGRvY3MvdGFnL1JFQURNRS5tZCkJIC0gQWRkIHRhZ3MgdG8gYSBnaXZlbiByZXZpc2lvbiBvZiB5b3VyIEFQSS4gU3BlY2lmaWMgdG8gYSByZWdpc3RyeSBuYW1lc3BhY2UKKiBbc3BlYWtlYXN5IHVwZGF0ZV0oZG9jcy91cGRhdGUubWQpCSAtIFVwZGF0ZSB0aGUgU3BlYWtlYXN5IENMSSB0byB0aGUgbGF0ZXN0IHZlcnNpb24K readmeEtag: '"de2d19d055273f1c6ec7d4e8d58fbe1f738cf0ac"' readmeLastModified: Thu, 05 Sep 2024 15:33:55 GMT repositoryId: 543052826 description: Speakeasy CLI - Enterprise developer experience for your API created: '2022-09-29T10:13:15Z' updated: '2024-09-05T15:34:30Z' language: JavaScript archived: false stars: 180 watchers: 12 forks: 15 owner: speakeasy-api logo: https://avatars.githubusercontent.com/u/91446104?v=4 license: NOASSERTION repoEtag: '"c48a92226e0475fb05440f0a3e09826d059a2db246b3c73cd558b79bb42bce0e"' repoLastModified: Thu, 05 Sep 2024 15:34:30 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/paypal/paypal-rest-api-specifications v3: true id: fe6bc87a1d5d10f013a6fcfe40ea9186 repositoryMetadata: base64Readme: >- IyBQYXlQYWwgUkVTVCBBUEkgU3BlY2lmaWNhdGlvbnMKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyB0aGUgc3BlY2lmaWNhdGlvbiBmaWxlcyBmb3IgW1BheVBhbCBSRVNUIEFQSXNdKGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vYXBpL3Jlc3QvKS4KCllvdSBjYW4gdHJ5IG91ciBSRVNUIEFQSXMgaW4gUG9zdG1hbiB3aXRob3V0IGEgUGF5UGFsIERldmVsb3BlciBhY2NvdW50LiBMZWFybiBtb3JlIGluIG91ciBbUG9zdG1hbiBndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9hcGkvcmVzdC9wb3N0bWFuLykuCgpbIVtSdW4gaW4gUG9zdG1hbl0oaHR0cHM6Ly9ydW4ucHN0bW4uaW8vYnV0dG9uLnN2ZyldKGh0dHBzOi8vZ29kLmd3LnBvc3RtYW4uY29tL3J1bi1jb2xsZWN0aW9uLzE5MDI0MTIyLTkyYTg1ZDBlLTUxZTctNDdkYS05ZjgzLWM0NWRjYjFjZGYyND9hY3Rpb249Y29sbGVjdGlvbiUyRmZvcmsmY29sbGVjdGlvbi11cmw9ZW50aXR5SWQlM0QxOTAyNDEyMi05MmE4NWQwZS01MWU3LTQ3ZGEtOWY4My1jNDVkY2IxY2RmMjQlMjZlbnRpdHlUeXBlJTNEY29sbGVjdGlvbiUyNndvcmtzcGFjZUlkJTNEMzQ1MzAwZTYtMzQ2ZS00MmUwLWFlZDEtNTM3MTc5MTlhZWYwKQoKIyMgU3RlcHMgdG8gZ2VuZXJhdGUgY29kZSBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uCgo+IF9Ob3RlOiBTcGVjIGZpbGUgdXNlZDogb3BlbmFwaS9jaGVja291dF9vcmRlcnNfdjIuanNvbl8KCiMjIyBKYXZhCiAxLiBgbnBtIHJ1biBjb2RlZ2VuLWphdmEgLS0gb3BlbmFwaS9jaGVja291dF9vcmRlcnNfdjIuanNvbiAtLWFydGlmYWN0LWlkIG9yZGVyc2AKIDIuIGBjZCBnZW5lcmF0ZWQvamF2YWAKIDMuIGBtdm4gY2xlYW4gaW5zdGFsbGAKClRoZSBhYm92ZSB3aWxsIGluc3RhbGwgdGhlIGBvcmRlcnNgIGFydGlmYWN0IHRvIHRoZSBsb2NhbCBtYXZlbiByZXBvc2l0b3J5CgojIyBBdmFpbGFibGUgc2NyaXB0cwoKYGBgCiBucG0gcnVuClNjcmlwdHMgYXZhaWxhYmxlIGluIEBwYXlwYWwvcGF5cGFsLXJlc3QtYXBpLXNwZWNpZmljYXRpb25zQDEuMC4wIHZpYSBgbnBtIHJ1bi1zY3JpcHRgOgogIHByZXZpZXcKICAgIHJlZG9jbHkgcHJldmlldy1kb2NzCiAgYnVuZGxlCiAgICByZWRvY2x5IGJ1bmRsZQogIGJ1bmRsZS1kZXJlZgogICAgcmVkb2NseSBidW5kbGUgLWQgdHJ1ZQogIGxpbnQtcmVkb2NseQogICAgcmVkb2NseSAtLWZvcm1hdCBzdW1tYXJ5IGxpbnQKICBsaW50LXNwZWN0cmFsCiAgICBzcGVjdHJhbCAtLWZvcm1hdCBwcmV0dHkgbGludAogIGxpbnQtb3BlbmFwaQogICAgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZhbGlkYXRlIC1pCiAgY29kZWdlbi1qYXZhCiAgICBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgLWcgamF2YSAtbyBnZW5lcmF0ZWQvamF2YSAtaQogIGNvZGVnZW4tdHlwZXNjcmlwdC1ub2RlCiAgICBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgLWcgdHlwZXNjcmlwdC1ub2RlIC1vIGdlbmVyYXRlZC90eXBlc2NyaXB0LW5vZGUgLWkKYGBgCgojIyBBdmFpbGFibGUgc3BlY2lmaWNhdGlvbnMKCiMjIyBPcGVuQVBJIDMuMC4zCgpUaGUgW09wZW5BUEldKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uL3YzLykgc3BlY2lmaWNhdGlvbiBpcyBhIHByb2dyYW1taW5nIGxhbmd1YWdlIGFnbm9zdGljIHN0YW5kYXJkIHRoYXQgbGV0cyBwcm92aWRlcnMgZGVzY3JpYmUgdGhlIGludGVyZmFjZSBvZiB0aGVpciBIVFRQIEFQSXMuIFRoaXMgYWxsb3dzIGJvdGggaHVtYW5zIGFuZCBtYWNoaW5lcyB0byBkaXNjb3ZlciB0aGUgY2FwYWJpbGl0aWVzIG9mIGFuIEFQSSB3aXRob3V0IG5lZWRpbmcgdG8gZmlyc3QgcmVhZCBkb2N1bWVudGF0aW9uIG9yIHVuZGVyc3RhbmQgdGhlIGltcGxlbWVudGF0aW9uLgoKfCBBUEkgTmFtZSAgICAgICAgICAgICAgfCBWZXJzaW9uIHwgTGlua3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBBZGQgVHJhY2tpbmcgICAgICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9zaGlwcGluZ19zaGlwbWVudF90cmFja2luZ192MS5qc29uKSwgW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvdHJhY2tpbmcvdjEvKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDYXRhbG9nIFByb2R1Y3RzICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9jYXRhbG9nc19wcm9kdWN0c192MS5qc29uKSwgW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvY2F0YWxvZy1wcm9kdWN0cy92MS8pICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEaXNwdXRlcyAgICAgICAgICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9jdXN0b21lcl9kaXNwdXRlc192MS5qc29uKSwgW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvY3VzdG9tZXItZGlzcHV0ZXMvdjEvKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBJbnZvaWNlcyAgICAgICAgICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9pbnZvaWNpbmdfdjEuanNvbiksIFtBUEkgUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5wYXlwYWwuY29tL2RvY3MvYXBpL2ludm9pY2luZy92MS8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBJbnZvaWNlcyAgICAgICAgICAgICAgfCB2MiAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9pbnZvaWNpbmdfdjIuanNvbiksIFtBUEkgUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5wYXlwYWwuY29tL2RvY3MvYXBpL2ludm9pY2luZy92Mi8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPcmRlcnMgICAgICAgICAgICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9jaGVja291dF9vcmRlcnNfdjEuanNvbiksIFtBUEkgUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5wYXlwYWwuY29tL2RvY3MvYXBpL29yZGVycy92MS8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPcmRlcnMgICAgICAgICAgICAgICAgfCB2MiAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9jaGVja291dF9vcmRlcnNfdjIuanNvbiksIFtBUEkgUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5wYXlwYWwuY29tL2RvY3MvYXBpL29yZGVycy92Mi8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQYXJ0bmVyIFJlZmVycmFscyAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9jdXN0b21lcl9wYXJ0bmVyX3JlZmVycmFsc192MS5qc29uKSwgW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvcGFydG5lci1yZWZlcnJhbHMvdjEvKSAgICAgICAgICAgICAgICAgIHwKfCBQYXJ0bmVyIFJlZmVycmFscyAgICAgfCB2MiAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9jdXN0b21lcl9wYXJ0bmVyX3JlZmVycmFsc192Mi5qc29uKSwgW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvcGFydG5lci1yZWZlcnJhbHMvdjIvKSAgICAgICAgICAgICAgICAgIHwKfCBQYXltZW50IEV4cGVyaWVuY2UgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9wYXltZW50LWV4cGVyaWVuY2Vfd2ViX2V4cGVyaWVuY2VfcHJvZmlsZXNfdjEuanNvbiksIFtBUEkgUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5wYXlwYWwuY29tL2RvY3MvYXBpL3BheW1lbnQtZXhwZXJpZW5jZS92MS8pIHwKfCBQYXltZW50IE1ldGhvZCBUb2tlbnMgfCB2MyAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS92YXVsdF9wYXltZW50X3Rva2Vuc192My5qc29uKSwgW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vZG9jcy9hcGkvcGF5bWVudC10b2tlbnMvdjMvKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQYXltZW50cyAgICAgICAgICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9wYXltZW50c19wYXltZW50X3YxLmpzb24pLCBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2FwaS9wYXltZW50cy92MS8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQYXltZW50cyAgICAgICAgICAgICAgfCB2MiAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9wYXltZW50c19wYXltZW50X3YyLmpzb24pLCBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2FwaS9wYXltZW50cy92Mi8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQYXlvdXRzICAgICAgICAgICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9wYXltZW50c19wYXlvdXRzX2JhdGNoX3YxLmpzb24pLCBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2FwaS9wYXltZW50cy5wYXlvdXRzLWJhdGNoL3YxLykgICAgICAgICAgICAgICAgIHwKfCBTdWJzY3JpcHRpb25zICAgICAgICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9iaWxsaW5nX3N1YnNjcmlwdGlvbnNfdjEuanNvbiksIFtBUEkgUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5wYXlwYWwuY29tL2RvY3MvYXBpL3N1YnNjcmlwdGlvbnMvdjEvKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBUcmFuc2FjdGlvbiBTZWFyY2ggICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9yZXBvcnRpbmdfdHJhbnNhY3Rpb25zX3YxLmpzb24pLCBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2FwaS90cmFuc2FjdGlvbi1zZWFyY2gvdjEvKSAgICAgICAgICAgICAgICAgICAgIHwKfCBXZWJob29rcyBNYW5hZ2VtZW50ICAgfCB2MSAgICAgIHwgW09wZW5BUEldKC4vb3BlbmFwaS9ub3RpZmljYXRpb25zX3dlYmhvb2tzX3YxLmpzb24pLCBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2FwaS93ZWJob29rcy92MS8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCgojIyMgU3VwcG9ydAoKW1BheVBhbCdzIERldmVsb3BlciBzdXBwb3J0XShodHRwczovL2RldmVsb3Blci5wYXlwYWwuY29tL2RvY3Mvc3VwcG9ydC8pCgoKIAo= readmeEtag: '"9a23b83904189f68399464787300b38ab763ab93"' readmeLastModified: Sat, 03 Feb 2024 17:53:47 GMT repositoryId: 673944158 description: This repository contains the specification files for PayPal REST APIs. created: '2023-08-02T19:26:26Z' updated: '2024-09-02T23:11:51Z' language: null archived: false stars: 178 watchers: 19 forks: 128 owner: paypal logo: https://avatars.githubusercontent.com/u/476675?v=4 license: Apache-2.0 repoEtag: '"5507f0b3e4611c6fed93884884e89591169923405a9928d23545b39ded3ceb6c"' repoLastModified: Mon, 02 Sep 2024 23:11:51 GMT category: Code Generators foundInMaster: true - source: openapi3 tags repository: https://github.com/christianhelle/refitter v3: true id: 17db61563d8b069fd3d4a63d36459a68 repositoryMetadata: base64Readme: >- WyFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbCkKWyFbU21va2UgVGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9hY3Rpb25zL3dvcmtmbG93cy9zbW9rZS10ZXN0cy55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2FjdGlvbnMvd29ya2Zsb3dzL3Ntb2tlLXRlc3RzLnltbCkKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9yZWZpdHRlcj9jb2xvcj1ibHVlKV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL3JlZml0dGVyKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9yZWZpdHRlciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9Y2hyaXN0aWFuaGVsbGVfcmVmaXR0ZXIpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9ncmFwaC9iYWRnZS5zdmc/dG9rZW49MjQyWVQxTjZUMildKGh0dHBzOi8vY29kZWNvdi5pby9naC9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTUwLW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzLSkKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOkVORCAtLT4KCiMgUmVmaXR0ZXIKUmVmaXR0ZXIgaXMgYSB0b29sIGZvciBnZW5lcmF0aW5nIGEgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nIHRoZSBbUmVmaXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGl2ZXVpL3JlZml0KSBsaWJyYXJ5LiBSZWZpdHRlciBjYW4gZ2VuZXJhdGUgdGhlIFJlZml0IGludGVyZmFjZSBhbmQgY29udHJhY3RzIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4gUmVmaXR0ZXIgY291bGQgZm9ybWF0IHRoZSBnZW5lcmF0ZWQgUmVmaXQgaW50ZXJmYWNlIHRvIGJlIG1hbmFnZWQgYnkgW0FwaXpyXShodHRwczovL3d3dy5hcGl6ci5uZXQpICh2NispIGFuZCBnZW5lcmF0ZSBzb21lIHJlZ2lzdHJhdGlvbiBoZWxwZXJzIHRvby4KClJlZml0dGVyIGNvbWVzIGluIDIgZm9ybXM6Ci0gQSBbLk5FVCBDTEkgVG9vbF0oI2NsaS10b29sKSBkaXN0cmlidXRlZCB2aWEgW251Z2V0Lm9yZ10oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmVmaXR0ZXIpIHRoYXQgb3V0cHV0cyBhIHNpbmdsZSBDIyBmaWxlIG9uIGRpc2sKLSBBIFtDIyBTb3VyY2UgR2VuZXJhdG9yXSgjc291cmNlLWdlbmVyYXRvcikgdmlhIHRoZSBbUmVmaXR0ZXIuU291cmNlR2VuZXJhdG9yXShodHRwOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9yZWZpdHRlci5zb3VyY2VnZW5lcmF0b3IpIHBhY2thZ2UgdGhhdCBnZW5lcmF0ZXMgY29kZSBvbiBjb21waWxlIHRpbWUgYmFzZWQgb24gYSBbLnJlZml0dGVyXSgjLnJlZml0dGVyLWZpbGUtZm9ybWF0KSB3aXRoaW4gdGhlIHByb2plY3QgZGlyZWN0b3J5LgoKIyMgQ0xJIFRvb2wKCiMjIyBJbnN0YWxsYXRpb246CgpUaGUgdG9vbCBpcyBwYWNrYWdlZCBhcyBhIC5ORVQgVG9vbCBhbmQgaXMgcHVibGlzaGVkIHRvIG51Z2V0Lm9yZy4gWW91IGNhbiBpbnN0YWxsIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHRvb2wgbGlrZSB0aGlzOgoKYGBgc2hlbGwKZG90bmV0IHRvb2wgaW5zdGFsbCAtLWdsb2JhbCBSZWZpdHRlcgpgYGAKCiMjIyBVc2FnZToKCmBgYHNoZWxsCiQgcmVmaXR0ZXIgLS1oZWxwCmBgYAoKYGBgdGV4dApVU0FHRToKICAgIHJlZml0dGVyIFtVUkwgb3IgaW5wdXQgZmlsZV0gW09QVElPTlNdCgpFWEFNUExFUzoKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uCiAgICByZWZpdHRlciBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLnlhbWwKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tc2V0dGluZ3MtZmlsZSAuL29wZW5hcGkucmVmaXR0ZXIgLS1vdXRwdXQgLi9HZW5lcmF0ZWRDb2RlLmNzCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5hbWVzcGFjZSAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiIC0tb3V0cHV0IC4vR2VuZXJhdGVkQ29kZS5jcwogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1uYW1lc3BhY2UgIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIiAtLWludGVybmFsCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW91dHB1dCAuL0lHZW5lcmF0ZWRDb2RlLmNzIC0taW50ZXJmYWNlLW9ubHkKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tb3V0cHV0IC4vR2VuZXJhdGVkQ29udHJhY3RzLmNzIC0tY29udHJhY3Qtb25seQogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS11c2UtYXBpLXJlc3BvbnNlCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLWNhbmNlbGxhdGlvbi10b2tlbnMKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbm8tb3BlcmF0aW9uLWhlYWRlcnMKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbm8tYWNjZXB0LWhlYWRlcnMKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tdXNlLWlzby1kYXRlLWZvcm1hdAogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1hZGRpdGlvbmFsLW5hbWVzcGFjZSAiWW91ci5BZGRpdGlvbmFsLk5hbWVzcGFjZSIgLS1hZGRpdGlvbmFsLW5hbWVzcGFjZSAiWW91ci5PdGhlci5BZGRpdGlvbmFsLk5hbWVzcGFjZSIKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbXVsdGlwbGUtaW50ZXJmYWNlcyBCeUVuZHBvaW50CiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLXRhZyBQZXQgLS10YWcgU3RvcmUgLS10YWcgVXNlcgogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1tYXRjaC1wYXRoICdeL3BldC8uKicKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tdHJpbS11bnVzZWQtc2NoZW1hCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLXRyaW0tdW51c2VkLXNjaGVtYSAgLS1rZWVwLXNjaGVtYSAnXk1vZGVsJCcgLS1rZWVwLXNjaGVtYSAnXlBlcnNvbi4rJwogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1uby1kZXByZWNhdGVkLW9wZXJhdGlvbnMKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tb3BlcmF0aW9uLW5hbWUtdGVtcGxhdGUgJ3tvcGVyYXRpb25OYW1lfUFzeW5jJwogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1vcHRpb25hbC1udWxsYWJsZS1wYXJhbWV0ZXJzCgpBUkdVTUVOVFM6CiAgICBbVVJMIG9yIGlucHV0IGZpbGVdICAgIFVSTCBvciBmaWxlIHBhdGggdG8gT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGZpbGUKCk9QVElPTlM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRzIGhlbHAgaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtdiwgLS12ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRzIHZlcnNpb24gaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtcywgLS1zZXR0aW5ncy1maWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGF0aCB0byAucmVmaXR0ZXIgc2V0dGluZ3MgZmlsZS4gU3BlY2lmeWluZyB0aGlzIHdpbGwgaWdub3JlIGFsbCBvdGhlciBzZXR0aW5ncyAoZXhjZXB0IGZvciAtLW91dHB1dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtbiwgLS1uYW1lc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlZENvZGUgICAgRGVmYXVsdCBuYW1lc3BhY2UgdG8gdXNlIGZvciBnZW5lcmF0ZWQgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1jb250cmFjdHMtbmFtZXNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCBuYW1lc3BhY2UgdG8gdXNlIGZvciBnZW5lcmF0ZWQgY29udHJhY3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtbywgLS1vdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dC5jcyAgICAgICAgUGF0aCB0byBPdXRwdXQgZmlsZSBvciBmb2xkZXIgKGlmIG11bHRpcGxlIGZpbGVzIGFyZSBnZW5lcmF0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1jb250cmFjdHMtb3V0cHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0IHBhdGggZm9yIGdlbmVyYXRlZCBjb250cmFjdHMuIEVuYWJsaW5nIHRoaXMgYXV0b21hdGljYWxseSBlbmFibGVzIGdlbmVyYXRpbmcgbXVsdGlwbGUgZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1uby1hdXRvLWdlbmVyYXRlZC1oZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgYWRkIDxhdXRvLWdlbmVyYXRlZD4gaGVhZGVyIHRvIG91dHB1dCBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1uby1hY2NlcHQtaGVhZGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgYWRkIDxBY2NlcHQ+IGhlYWRlciB0byBvdXRwdXQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1pbnRlcmZhY2Utb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgY29udHJhY3QgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1jb250cmFjdC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgY2xpZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS11c2UtYXBpLXJlc3BvbnNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIFRhc2s8SUFwaVJlc3BvbnNlPFQ+PiBpbnN0ZWFkIG9mIFRhc2s8VD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS11c2Utb2JzZXJ2YWJsZS1yZXNwb25zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIElPYnNlcnZhYmxlIGluc3RlYWQgb2YgVGFzayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1pbnRlcm5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRoZSBhY2Nlc3NpYmlsaXR5IG9mIHRoZSBnZW5lcmF0ZWQgdHlwZXMgdG8gJ2ludGVybmFsJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1jYW5jZWxsYXRpb24tdG9rZW5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlIGNhbmNlbGxhdGlvbiB0b2tlbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1uby1vcGVyYXRpb24taGVhZGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgb3BlcmF0aW9uIGhlYWRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1uby1sb2dnaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgbG9nIGVycm9ycyBvciBjb2xsZWN0IHRlbGVtZXRyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1hZGRpdGlvbmFsLW5hbWVzcGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIGFkZGl0aW9uYWwgbmFtZXNwYWNlIHRvIGdlbmVyYXRlZCB0eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1leGNsdWRlLW5hbWVzcGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZSBuYW1lc3BhY2Ugb24gZ2VuZXJhdGVkIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS11c2UtaXNvLWRhdGUtZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwbGljaXRseSBmb3JtYXQgZGF0ZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVycyBpbiBJU08gODYwMSBzdGFuZGFyZCBkYXRlIGZvcm1hdCB1c2luZyBkZWxpbWl0ZXJzICgyMDIzLTA2LTE1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1tdWx0aXBsZS1pbnRlcmZhY2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgYSBSZWZpdCBpbnRlcmZhY2UgZm9yIGVhY2ggZW5kcG9pbnQuIE1heSBiZSBvbmUgb2YgQnlFbmRwb2ludCwgQnlUYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1tdWx0aXBsZS1maWxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgbXVsdGlwbGUgZmlsZXMgaW5zdGVhZCBvZiBhIHNpbmdsZSBsYXJnZSBmaWxlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG91dHB1dCBmaWxlcyBjYW4gYmUgdGhlIGZvbGxvd2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBSZWZpdEludGVyZmFjZXMuY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBEZXBlbmRlbmN5SW5qZWN0aW9uLmNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBDb250cmFjdHMuY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1tYXRjaC1wYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBpbmNsdWRlIFBhdGhzIHRoYXQgbWF0Y2ggdGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbi4gTWF5IGJlIHNldCBtdWx0aXBsZSB0aW1lcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS10YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBpbmNsdWRlIEVuZHBvaW50cyB0aGF0IGNvbnRhaW4gdGhpcyB0YWcuIE1heSBiZSBzZXQgbXVsdGlwbGUgdGltZXMgYW5kIHJlc3VsdCBpbiBPUidlZCBldmFsdWF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1za2lwLXZhbGlkYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCB2YWxpZGF0aW9uIG9mIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1uby1kZXByZWNhdGVkLW9wZXJhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgZGVwcmVjYXRlZCBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1vcGVyYXRpb24tbmFtZS10ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgb3BlcmF0aW9uIG5hbWVzIHVzaW5nIHBhdHRlcm4uIFdoZW4gdXNpbmcgLS1tdWx0aXBsZS1pbnRlcmZhY2VzIEJ5RW5kcG9pbnQsIHRoaXMgaXMgbmFtZSBvZiB0aGUgRXhlY3V0ZSgpIG1ldGhvZCBpbiB0aGUgaW50ZXJmYWNlCiAgICAgICAgLS1vcHRpb25hbC1udWxsYWJsZS1wYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgbnVsbGFibGUgcGFyYW1ldGVycyBhcyBvcHRpb25hbCBwYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS10cmltLXVudXNlZC1zY2hlbWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3ZlcyB1bnJlZmVyZW5jZWQgY29tcG9uZW50cyBzY2hlbWEgdG8ga2VlcCB0aGUgZ2VuZXJhdGVkIG91dHB1dCB0byBhIG1pbmltdW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1rZWVwLXNjaGVtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yY2UgdG8ga2VlcCBtYXRjaGluZyBzY2hlbWEsIHVzZXMgcmVndWxhciBleHByZXNzaW9ucy4gVXNlIHRvZ2V0aGVyIHdpdGggIi0tdHJpbS11bnVzZWQtc2NoZW1hIi4gQ2FuIGJlIHNldCBtdWx0aXBsZSB0aW1lcyAgICAgICAgICAgICAgCiAgICAgICAgLS1uby1iYW5uZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3Qgc2hvdyBkb25hdGlvbiBiYW5uZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1za2lwLWRlZmF1bHQtYWRkaXRpb25hbC1wcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgU2V0IHRvIHRydWUgdG8gc2tpcCBkZWZhdWx0IGFkZGl0aW9uYWwgcHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1vcGVyYXRpb24tbmFtZS1nZW5lcmF0b3IgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgVGhlIE5Td2FnIElPcGVyYXRpb25OYW1lR2VuZXJhdG9yIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF5IGJlIG9uZSBvZjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBNdWx0aXBsZUNsaWVudHNGcm9tT3BlcmF0aW9uSWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBNdWx0aXBsZUNsaWVudHNGcm9tUGF0aFNlZ21lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBNdWx0aXBsZUNsaWVudHNGcm9tRmlyc3RUYWdBbmRPcGVyYXRpb25JZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBNdWx0aXBsZUNsaWVudHNGcm9tRmlyc3RUYWdBbmRPcGVyYXRpb25OYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBNdWx0aXBsZUNsaWVudHNGcm9tRmlyc3RUYWdBbmRQYXRoU2VnbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBTaW5nbGVDbGllbnRGcm9tT3BlcmF0aW9uSWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBTaW5nbGVDbGllbnRGcm9tUGF0aFNlZ21lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VlIGh0dHBzOi8vcmVmaXR0ZXIuZ2l0aHViLmlvL2FwaS9SZWZpdHRlci5Db3JlLk9wZXJhdGlvbk5hbWVHZW5lcmF0b3JUeXBlcy5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1pbW11dGFibGUtcmVjb3JkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgY29udHJhY3RzIGFzIGltbXV0YWJsZSByZWNvcmRzIGluc3RlYWQgb2YgY2xhc3NlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS11c2UtYXBpenIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRvIHRydWUgdG8gdXNlIEFwaXpyIGJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBBZGRpbmcgYSBmaW5hbCBJQXBpenJSZXF1ZXN0T3B0aW9ucyBvcHRpb25zIHBhcmFtZXRlciB0byBhbGwgZ2VuZXJhdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBQcm92aWRpbmcgY2FuY2VsbGF0aW9uIHRva2VucyBieSBBcGl6ciByZXF1ZXN0IG9wdGlvbnMgaW5zdGVhZCBvZiBhIGRlZGljYXRlZCBwYXJhbWV0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBVc2luZyBtZXRob2Qgb3ZlcmxvYWRzIGluc3RlYWQgb2Ygb3B0aW9uYWwgcGFyYW1ldGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VlIGh0dHBzOi8vcmVmaXR0ZXIuZ2l0aHViLmlvIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBodHRwczovL3d3dy5hcGl6ci5uZXQgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBBcGl6ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS11c2UtZHluYW1pYy1xdWVyeXN0cmluZy1wYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgU2V0IHRvIDxjPnRydWU8L2M+IHRvIHdyYXAgbXVsdGlwbGUgcXVlcnkgcGFyYW1ldGVycyBpbnRvIGEgc2luZ2xlIGNvbXBsZXggb25lLiBEZWZhdWx0IGlzIDxjPmZhbHNlPC9jPiAobm8gd3JhcHBpbmcpLiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGl2ZXVpL3JlZml0P3RhYj1yZWFkbWUtb3YtZmlsZSNkeW5hbWljLXF1ZXJ5c3RyaW5nLXBhcmFtZXRlcnMgZm9yIG1vcmUgaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgCmBgYAoKVG8gZ2VuZXJhdGUgY29kZSBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZmlsZSwgcnVuIHRoZSBmb2xsb3dpbmc6CgpgYGBzaGVsbAokIHJlZml0dGVyIFtwYXRoIHRvIE9wZW5BUEkgc3BlYyBmaWxlXSAtLW5hbWVzcGFjZSAiW1lvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlXSIKYGBgCgpUaGlzIHdpbGwgZ2VuZXJhdGUgYSBmaWxlIGNhbGxlZCBgT3V0cHV0LmNzYCB3aGljaCBjb250YWlucyB0aGUgUmVmaXQgaW50ZXJmYWNlIGFuZCBjb250cmFjdCBjbGFzc2VzIGdlbmVyYXRlZCB1c2luZyBbTlN3YWddKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcpCgojIyBTb3VyY2UgR2VuZXJhdG9yCgpSZWZpdHRlciBpcyBhdmFpbGFibGUgYXMgYSBDIyBTb3VyY2UgR2VuZXJhdG9yIHRoYXQgdXNlcyB0aGUgW1JlZml0dGVyLkNvcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci90cmVlL21haW4vc3JjL1JlZml0dGVyLkNvcmUpIGxpYnJhcnkgZm9yIGdlbmVyYXRpbmcgYSBSRVNUIEFQSSBDbGllbnQgdXNpbmcgdGhlIFtSZWZpdF0oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0aXZldWkvcmVmaXQpIGxpYnJhcnkuIFJlZml0dGVyIGNhbiBnZW5lcmF0ZSB0aGUgUmVmaXQgaW50ZXJmYWNlIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4gUmVmaXR0ZXIgY291bGQgZm9ybWF0IHRoZSBnZW5lcmF0ZWQgUmVmaXQgaW50ZXJmYWNlIHRvIGJlIG1hbmFnZWQgYnkgW0FwaXpyXShodHRwczovL3d3dy5hcGl6ci5uZXQpIGFuZCBnZW5lcmF0ZSBzb21lIHJlZ2lzdHJhdGlvbiBoZWxwZXJzIHRvby4KClRoZSBSZWZpdHRlciBzb3VyY2UgZ2VuZXJhdG9yIGlzIGEgYml0IHVudHJhZGl0aW9uYWwgaW4gYSBzZW5zZSB0aGF0IGl0IGNyZWF0ZXMgYSBmb2xkZXIgY2FsbGVkIGBHZW5lcmF0ZWRgIGluIHRoZSBzYW1lIGxvY2F0aW9uIGFzIHRoZSBgLnJlZml0dGVyYCBmaWxlIGFuZCBnZW5lcmF0ZXMgZmlsZXMgdG8gZGlzayB1bmRlciB0aGUgYEdlbmVyYXRlZGAgZm9sZGVyIChjYW4gYmUgY2hhbmdlZCB3aXRoIGAtLW91dHB1dEZvbGRlcmApLiBUaGUgc291cmNlIGdlbmVyYXRvciBvdXRwdXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBwcm9qZWN0IGFuZCBjb21taXR0ZWQgdG8gc291cmNlIGNvbnRyb2wuIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHRoZXJlIGlzIG5vIG90aGVyIHdheSB0byB0cmlnZ2VyIHRoZSBSZWZpdCBzb3VyY2UgZ2VuZXJhdG9yIHRvIHBpY2t1cCB0aGUgUmVmaXR0ZXIgZ2VuZXJhdGVkIGNvZGUgCgoqKiooVHJhbnNsYXRpb246IEkgY291bGRuJ3QgZm9yIHRoZSBsaWZlIG9mIG1lIGZpZ3VyZSBob3cgdG8gZ2V0IHRoYXQgdG8gd29yaywgc29ycnkpKioqCgojIyMgSW5zdGFsbGF0aW9uCgpUaGUgc291cmNlIGdlbmVyYXRvciBpcyBkaXN0cmlidXRlZCBhcyBhIE51R2V0IHBhY2thZ2UgYW5kIHNob3VsZCBiZSBpbnN0YWxsZWQgdG8gdGhlIHByb2plY3QgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGdlbmVyYXRlZCBjb2RlCgpgYGBzaGVsbApkb3RuZXQgYWRkIHBhY2thZ2UgUmVmaXR0ZXIuU291cmNlR2VuZXJhdG9yCmBgYAoKIyMjIFVzYWdlCgpUaGlzIHNvdXJjZSBnZW5lcmF0b3IgZ2VuZXJhdGVzIGNvZGUgYmFzZWQgb24gYW55IGAucmVmaXR0ZXJgIGZpbGUgaW5jbHVkZWQgdG8gdGhlIHByb2plY3QgYXMgYEFkZGl0aW9uYWxGaWxlc2AuCgpUaGUgZ2VuZXJhdG9yIGNhbiBhdXRvbWF0aWNhbGx5IGRldGVjdCBhbGwgYC5yZWZpdHRlcmAgZmlsZXMgaW5zaWRlIHRoZSBwcm9qZWN0IHRoYXQgcmVmZXJlbmNlZCB0aGUgYFJlZml0dGVyLlNvdXJjZUdlbmVyYXRvcmAgcGFja2FnZSBhbmQgdGhlcmUgaXMgbm8gbmVlZCB0byBpbmNsdWRlIHRoZW0gbWFudWFsbHkgYXMgYEFkZGl0aW9uYWxGaWxlc2AKCiMjIyAuUmVmaXR0ZXIgRmlsZSBmb3JtYXQKClRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSBgLnJlZml0dGVyYCBmaWxlCgpgYGBqcwp7CiAgIm9wZW5BcGlQYXRoIjogIi9wYXRoL3RvL3lvdXIvb3BlbkFQSSIsIC8vIFJlcXVpcmVkCiAgIm5hbWVzcGFjZSI6ICJPcmcuU3lzdGVtLlNlcnZpY2UuQXBpLkdlbmVyYXRlZENvZGUiLCAvLyBPcHRpb25hbC4gRGVmYXVsdD1HZW5lcmF0ZWRDb2RlCiAgImNvbnRyYWN0c05hbWVzcGFjZSI6ICJPcmcuU3lzdGVtLlNlcnZpY2UuQXBpLkdlbmVyYXRlZENvZGUuQ29udHJhY3RzIiwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9R2VuZXJhdGVkQ29kZQogICJuYW1pbmciOiB7CiAgICAidXNlT3BlbkFwaVRpdGxlIjogZmFsc2UsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PXRydWUKICAgICJpbnRlcmZhY2VOYW1lIjogIk15QXBpQ2xpZW50IiAvLyBPcHRpb25hbC4gRGVmYXVsdD1BcGlDbGllbnQKICB9LAogICJnZW5lcmF0ZUNvbnRyYWN0cyI6IHRydWUsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PXRydWUKICAiZ2VuZXJhdGVDbGllbnRzIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9dHJ1ZQogICJnZW5lcmF0ZVhtbERvY0NvZGVDb21tZW50cyI6IHRydWUsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PXRydWUKICAiZ2VuZXJhdGVTdGF0dXNDb2RlQ29tbWVudHMiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgImFkZEF1dG9HZW5lcmF0ZWRIZWFkZXIiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgImFkZEFjY2VwdEhlYWRlcnMiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgInJldHVybklBcGlSZXNwb25zZSI6IGZhbHNlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD1mYWxzZQogICJyZXNwb25zZVR5cGVPdmVycmlkZSI6IHsgLy8gT3B0aW9uYWwuIERlZmF1bHQ9e30KICAgICJGaWxlX1VwbG9hZCI6ICJJQXBpUmVzcG9uc2UiLAogICAgIkZpbGVfRG93bmxvYWQiOiAiU3lzdGVtLk5ldC5IdHRwLkh0dHBDb250ZW50IgogIH0sCiAgImdlbmVyYXRlT3BlcmF0aW9uSGVhZGVycyI6IHRydWUsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PXRydWUKICAidHlwZUFjY2Vzc2liaWxpdHkiOiAiUHVibGljIiwgLy8gT3B0aW9uYWwuIFZhbHVlcz1QdWJsaWN8SW50ZXJuYWwuIERlZmF1bHQ9UHVibGljCiAgInVzZUNhbmNlbGxhdGlvblRva2VucyI6IGZhbHNlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD1mYWxzZQogICJ1c2VJc29EYXRlRm9ybWF0IjogZmFsc2UsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PWZhbHNlCiAgIm11bHRpcGxlSW50ZXJmYWNlcyI6ICJCeUVuZHBvaW50IiwgLy8gT3B0aW9uYWwuIE1heSBiZSBvbmUgb2YgIkJ5RW5kcG9pbnQiIG9yICJCeVRhZyIKICAiZ2VuZXJhdGVEZXByZWNhdGVkT3BlcmF0aW9ucyI6IGZhbHNlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgIm9wZXJhdGlvbk5hbWVUZW1wbGF0ZSI6ICJ7b3BlcmF0aW9uTmFtZX1Bc3luYyIsIC8vIE9wdGlvbmFsLiBNdXN0IGNvbnRhaW4ge29wZXJhdGlvbk5hbWV9IHdoZW4gbXVsdGlwbGVJbnRlcmZhY2VzICE9IEJ5RW5kcG9pbnQKICAib3B0aW9uYWxQYXJhbWV0ZXJzIjogZmFsc2UsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PWZhbHNlCiAgIm91dHB1dEZvbGRlciI6ICIuLi9DdXN0b21PdXRwdXQiIC8vIE9wdGlvbmFsLiBEZWZhdWx0PS4vR2VuZXJhdGVkCiAgIm91dHB1dEZpbGVuYW1lIjogIlJlZml0SW50ZXJmYWNlLmNzIiwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9T3V0cHV0LmNzIGZvciBDTEkgdG9vbAogICJjb250cmFjdHNPdXRwdXRGb2xkZXIiOiAiLi4vQ29udHJhY3RzIiwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9TlVMTAogICJnZW5lcmF0ZU11bHRpcGxlRmlsZXMiOiBmYWxzZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9ZmFsc2UKICAiYWRkaXRpb25hbE5hbWVzcGFjZXMiOiBbIC8vIE9wdGlvbmFsCiAgICAiTmFtZXNwYWNlMSIsCiAgICAiTmFtZXNwYWNlMiIKICBdLAogICJpbmNsdWRlVGFncyI6IFsgLy8gT3B0aW9uYWwuIE9wZW5BUEkgVGFnIHRvIGluY2x1ZGUgd2hlbiBnZW5lcmF0aW5nIGNvZGUKICAgICJQZXQiLAogICAgIlN0b3JlIiwKICAgICJVc2VyIgogIF0sCiAgImluY2x1ZGVQYXRoTWF0Y2hlcyI6IFsgLy8gT3B0aW9uYWwuIE9ubHkgaW5jbHVkZSBQYXRocyB0aGF0IG1hdGNoIHRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24KICAgICJeL3BldC8uKiIsCiAgICAiXi9zdG9yZS8uKiIKICBdLAogICJ0cmltVW51c2VkU2NoZW1hIjogZmFsc2UsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PWZhbHNlCiAgImtlZXBTY2hlbWFQYXR0ZXJucyI6IFsgLy8gT3B0aW9uYWwuIEZvcmNlIHRvIGtlZXAgbWF0Y2hpbmcgc2NoZW1hLCB1c2VzIHJlZ3VsYXIgZXhwcmVzc2lvbnMuIFVzZSB0b2dldGhlciB3aXRoIHRyaW1VbnVzZWRTY2hlbWE9dHJ1ZQogICAgIl5Nb2RlbCQiLAogICAgIl5QZXJzb24uKyIKICBdLAogICJnZW5lcmF0ZURlZmF1bHRBZGRpdGlvbmFsUHJvcGVydGllcyI6IHRydWUsIC8vIE9wdGlvbmFsLiBkZWZhdWx0PXRydWUKICAib3BlcmF0aW9uTmFtZUdlbmVyYXRvciI6ICJEZWZhdWx0IiwgLy8gT3B0aW9uYWwuIE1heSBiZSBvbmUgb2YgRGVmYXVsdCwgTXVsdGlwbGVDbGllbnRzRnJvbU9wZXJhdGlvbklkLCBNdWx0aXBsZUNsaWVudHNGcm9tUGF0aFNlZ21lbnRzLCBNdWx0aXBsZUNsaWVudHNGcm9tRmlyc3RUYWdBbmRPcGVyYXRpb25JZCwgTXVsdGlwbGVDbGllbnRzRnJvbUZpcnN0VGFnQW5kT3BlcmF0aW9uTmFtZSwgTXVsdGlwbGVDbGllbnRzRnJvbUZpcnN0VGFnQW5kUGF0aFNlZ21lbnRzLCBTaW5nbGVDbGllbnRGcm9tT3BlcmF0aW9uSWQsIFNpbmdsZUNsaWVudEZyb21QYXRoU2VnbWVudHMKICAiaW1tdXRhYmxlUmVjb3JkcyI6IGZhbHNlLAogICJ1c2VEeW5hbWljUXVlcnlzdHJpbmdQYXJhbWV0ZXJzIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9ZmFsc2UKICAiZGVwZW5kZW5jeUluamVjdGlvblNldHRpbmdzIjogeyAvLyBPcHRpb25hbAogICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiLCAvLyBPcHRpb25hbC4gTGVhdmUgdGhpcyBibGFuayB0byBzZXQgdGhlIGJhc2UgYWRkcmVzcyBtYW51YWxseQogICAgImh0dHBNZXNzYWdlSGFuZGxlcnMiOiBbIC8vIE9wdGlvbmFsCiAgICAgICAgIkF1dGhvcml6YXRpb25NZXNzYWdlSGFuZGxlciIsIAogICAgICAgICJUZWxlbWV0cnlNZXNzYWdlSGFuZGxlciIgCiAgICBdLAogICAgInVzZVBvbGx5IjogdHJ1ZSwgLy8gREVQUkVDQVRFRCAtIFVzZSAidHJhbnNpZW50RXJyb3JIYW5kbGVyIjogIk5vbmV8UG9sbHl8SHR0cFJlc2lsaWVuY2UiIGluc3RlYWQKICAgICJ0cmFuc2llbnRFcnJvckhhbmRsZXIiOiAiSHR0cFJlc2lsaWVuY2UiLCAvLyBPcHRpb25hbC4gU2V0IHRoaXMgdG8gY29uZmlndXJlIHRyYW5zaWVudCBlcnJvciBoYW5kbGluZyB3aXRoIGEgcmV0cnkgcG9saWN5IHRoYXQgdXNlcyBhIGppdHRlcmVkIGJhY2tvZmYuIE1heSBiZSBvbmUgb2YgTm9uZSwgUG9sbHksIEh0dHBSZXNpbGllbmNlCiAgICAibWF4UmV0cnlDb3VudCI6IDMsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PTYKICAgICJmaXJzdEJhY2tvZmZSZXRyeUluU2Vjb25kcyI6IDAuNSAvLyBPcHRpb25hbC4gRGVmYXVsdD0xLjAKICB9LAogICJhcGl6clNldHRpbmdzIjogeyAvLyBPcHRpb25hbAogICAgIndpdGhSZXF1ZXN0T3B0aW9ucyI6IHRydWUsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PXRydWUKICAgICJ3aXRoUmVnaXN0cmF0aW9uSGVscGVyIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9ZmFsc2UKICAgICJ3aXRoQ2FjaGVQcm92aWRlciI6ICJJbk1lbW9yeSIsIC8vIE9wdGlvbmFsLiBWYWx1ZXM9Tm9uZXxBa2F2YWNoZXxNb25rZXlDYWNoZXxJbk1lbW9yeXxEaXN0cmlidXRlZEFzU3RyaW5nfERpc3RyaWJ1dGVkQXNCeXRlQXJyYXkuIERlZmF1bHQ9Tm9uZQogICAgIndpdGhQcmlvcml0eSI6IHRydWUsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PWZhbHNlCiAgICAid2l0aE1lZGlhdGlvbiI6IHRydWUsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PWZhbHNlCiAgICAid2l0aE9wdGlvbmFsTWVkaWF0aW9uIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9ZmFsc2UKICAgICJ3aXRoTWFwcGluZ1Byb3ZpZGVyIjogIkF1dG9NYXBwZXIiLCAvLyBPcHRpb25hbC4gVmFsdWVzPU5vbmV8QXV0b01hcHBlcnxNYXBzdGVyLiBEZWZhdWx0PU5vbmUKICAgICJ3aXRoRmlsZVRyYW5zZmVyIjogdHJ1ZSAvLyBPcHRpb25hbC4gRGVmYXVsdD1mYWxzZQogIH0sCiAgImNvZGVHZW5lcmF0b3JTZXR0aW5ncyI6IHsgLy8gT3B0aW9uYWwuIERlZmF1bHQgc2V0dGluZ3MgYXJlIHRoZSB2YWx1ZXMgc2V0IGluIHRoaXMgZXhhbXBsZQogICAgInJlcXVpcmVkUHJvcGVydGllc011c3RCZURlZmluZWQiOiB0cnVlLAogICAgImdlbmVyYXRlRGF0YUFubm90YXRpb25zIjogdHJ1ZSwKICAgICJhbnlUeXBlIjogIm9iamVjdCIsCiAgICAiZGF0ZVR5cGUiOiAiU3lzdGVtLkRhdGVUaW1lT2Zmc2V0IiwKICAgICJkYXRlVGltZVR5cGUiOiAiU3lzdGVtLkRhdGVUaW1lT2Zmc2V0IiwKICAgICJ0aW1lVHlwZSI6ICJTeXN0ZW0uVGltZVNwYW4iLAogICAgInRpbWVTcGFuVHlwZSI6ICJTeXN0ZW0uVGltZVNwYW4iLAogICAgImFycmF5VHlwZSI6ICJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5JQ29sbGVjdGlvbiIsCiAgICAiZGljdGlvbmFyeVR5cGUiOiAiU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSURpY3Rpb25hcnkiLAogICAgImFycmF5SW5zdGFuY2VUeXBlIjogIlN5c3RlbS5Db2xsZWN0aW9ucy5PYmplY3RNb2RlbC5Db2xsZWN0aW9uIiwKICAgICJkaWN0aW9uYXJ5SW5zdGFuY2VUeXBlIjogIlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkRpY3Rpb25hcnkiLAogICAgImFycmF5QmFzZVR5cGUiOiAiU3lzdGVtLkNvbGxlY3Rpb25zLk9iamVjdE1vZGVsLkNvbGxlY3Rpb24iLAogICAgImRpY3Rpb25hcnlCYXNlVHlwZSI6ICJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5EaWN0aW9uYXJ5IiwKICAgICJwcm9wZXJ0eVNldHRlckFjY2Vzc01vZGlmaWVyIjogIiIsCiAgICAiZ2VuZXJhdGVJbW11dGFibGVBcnJheVByb3BlcnRpZXMiOiBmYWxzZSwKICAgICJnZW5lcmF0ZUltbXV0YWJsZURpY3Rpb25hcnlQcm9wZXJ0aWVzIjogZmFsc2UsCiAgICAiaGFuZGxlUmVmZXJlbmNlcyI6IGZhbHNlLAogICAgImpzb25TZXJpYWxpemVyU2V0dGluZ3NUcmFuc2Zvcm1hdGlvbk1ldGhvZCI6IG51bGwsCiAgICAiZ2VuZXJhdGVKc29uTWV0aG9kcyI6IGZhbHNlLAogICAgImVuZm9yY2VGbGFnRW51bXMiOiBmYWxzZSwKICAgICJpbmxpbmVOYW1lZERpY3Rpb25hcmllcyI6IGZhbHNlLAogICAgImlubGluZU5hbWVkVHVwbGVzIjogdHJ1ZSwKICAgICJpbmxpbmVOYW1lZEFycmF5cyI6IGZhbHNlLAogICAgImdlbmVyYXRlT3B0aW9uYWxQcm9wZXJ0aWVzQXNOdWxsYWJsZSI6IGZhbHNlLAogICAgImdlbmVyYXRlTnVsbGFibGVSZWZlcmVuY2VUeXBlcyI6IGZhbHNlLAogICAgImdlbmVyYXRlTmF0aXZlUmVjb3JkcyI6IGZhbHNlLAogICAgImdlbmVyYXRlRGVmYXVsdFZhbHVlcyI6IHRydWUsCiAgICAiaW5saW5lTmFtZWRBbnkiOiBmYWxzZSwKICAgICJleGNsdWRlZFR5cGVOYW1lcyI6IFsKICAgICAgIkV4Y2x1ZGVkVHlwZUZvbyIsCiAgICAgICJFeGNsdWRlZFR5cGVCYXIiCiAgICBdCiAgfQp9CmBgYAoKLSBgb3BlbkFwaVBhdGhgIC0gcG9pbnRzIHRvIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb25zIGZpbGUuIFRoaXMgY2FuIGJlIHRoZSBwYXRoIHRvIGEgZmlsZSBzdG9yZWQgb24gZGlzaywgcmVsYXRpdmUgdG8gdGhlIGAucmVmaXR0ZXJgIGZpbGUuIFRoaXMgY2FuIGFsc28gYmUgYSBVUkwgdG8gYSByZW1vdGUgZmlsZSB0aGF0IHdpbGwgYmUgZG93bmxvYWRlZCBvdmVyIEhUVFAvSFRUUFMKLSBgbmFtZXNwYWNlYCAtIHRoZSBuYW1lc3BhY2UgdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUuIElmIG5vdCBzcGVjaWZpZWQsIHRoaXMgZGVmYXVsdHMgdG8gYEdlbmVyYXRlZENvZGVgCi0gYG5hbWluZy51c2VPcGVuQXBpVGl0bGVgIC0gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgT3BlbkFwaSB0aXRsZSBzaG91bGQgYmUgdXNlZC4gRGVmYXVsdCBpcyBgdHJ1ZWAKLSBgbmFtaW5nLmludGVyZmFjZU5hbWVgIC0gdGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnRlcmZhY2UuIFRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlZml4IHRoaXMgd2l0aCBgSWAgc28gaWYgdGhpcyBzZXQgdG8gYE15QXBpQ2xpZW50YCB0aGVuIHRoZSBnZW5lcmF0ZWQgaW50ZXJmYWNlIGlzIGNhbGxlZCBgSU15QXBpQ2xpZW50YC4gRGVmYXVsdCBpcyBgQXBpQ2xpZW50YAotIGBnZW5lcmF0ZUNvbnRyYWN0c2AgLSBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGNvbnRyYWN0cyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBBIHVzZSBjYXNlIGZvciB0aGlzIGlzIHNldmVyYWwgQVBJIGNsaWVudHMgdXNlIHRoZSBzYW1lIGNvbnRyYWN0cy4gRGVmYXVsdCBpcyBgdHJ1ZWAKLSBgZ2VuZXJhdGVDbGllbnRzYDogIC0gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBjbGllbnRzIHNob3VsZCBiZSBnZW5lcmF0ZWQuIEEgdXNlIGNhc2UgZm9yIHRoaXMgaXMgdG8gc2VwZXJhdGUgY2xpZW50cyBhbmQgY29udHJhY3RzIGluIHR3byBnZW5lcmF0aW9uCi0gYGdlbmVyYXRlWG1sRG9jQ29kZUNvbW1lbnRzYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgWE1MIGRvYyBjb21tZW50cyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBnZW5lcmF0ZVN0YXR1c0NvZGVDb21tZW50c2AgLSBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBYTUwgZG9jcyBmb3IgYEFwaUV4Y2VwdGlvbmAgYW5kIGBJQXBpUmVzcG9uc2VgIGNvbnRhaW4gZGV0YWlsZWQgZGVzY3JpcHRpb25zIGZvciBldmVyeSBkb2N1bWVudGVkIHN0YXR1cyBjb2RlLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBhZGRBdXRvR2VuZXJhdGVkSGVhZGVyYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgWE1MIGRvYyBjb21tZW50cyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBhZGRBY2NlcHRIZWFkZXJzYCAtICBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGFkZCBhY2NlcHQgaGVhZGVycyBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildLiBEZWZhdWx0IGlzIGB0cnVlYAotIGByZXR1cm5JQXBpUmVzcG9uc2VgIC0gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0byByZXR1cm4gYElBcGlSZXNwb25zZTxUPmAgb2JqZWN0cy4gRGVmYXVsdCBpcyBgZmFsc2VgCi0gYHJlc3BvbnNlVHlwZU92ZXJyaWRlYCAtIGEgZGljdGlvbmFyeSB3aXRoIG9wZXJhdGlvbiBpZHMgKGFzIHNwZWNpZmllZCBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudCkgYW5kIGEgcGFydGljdWxhciByZXR1cm4gdHlwZSB0byB1c2UuIFRoZSB0eXBlcyBhcmUgd3JhcHBlZCBpbiBhIHRhc2ssIGJ1dCBvdGhlcndpc2UgdW5tb2RpZmllZCAoc28gbWFrZSBzdXJlIHRvIHNwZWNpZnkgb3IgaW1wb3J0IHRoZWlyIG5hbWVzcGFjZXMpLiBEZWZhdWx0IGlzIGB7fWAKLSBgZ2VuZXJhdGVPcGVyYXRpb25IZWFkZXJzYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gdXNlIG9wZXJhdGlvbiBoZWFkZXJzIGluIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gRGVmYXVsdCBpcyBgdHJ1ZWAKLSBgdHlwZUFjY2Vzc2liaWxpdHlgIC0gdGhlIGdlbmVyYXRlZCB0eXBlIGFjY2Vzc2liaWxpdHkuIFBvc3NpYmxlIHZhbHVlcyBhcmUgYFB1YmxpY2AgYW5kIGBJbnRlcm5hbGAuIERlZmF1bHQgaXMgYFB1YmxpY2AKLSBgdXNlQ2FuY2VsbGF0aW9uVG9rZW5zYCAtIFVzZSBjYW5jZWxsYXRpb24gdG9rZW5zIGluIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gRGVmYXVsdCBpcyBgZmFsc2VgCi0gYHVzZUlzb0RhdGVGb3JtYXRgIC0gU2V0IHRvIGB0cnVlYCB0byBleHBsaWNpdGx5IGZvcm1hdCBkYXRlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIGluIElTTyA4NjAxIHN0YW5kYXJkIGRhdGUgZm9ybWF0IHVzaW5nIGRlbGltaXRlcnMgKGZvciBleGFtcGxlOiAyMDIzLTA2LTE1KS4gRGVmYXVsdCBpcyBgZmFsc2VgCi0gYG11bHRpcGxlSW50ZXJmYWNlc2AgLSBTZXQgdG8gYEJ5RW5kcG9pbnRgIHRvIGdlbmVyYXRlIGFuIGludGVyZmFjZSBmb3IgZWFjaCBlbmRwb2ludCwgb3IgYEJ5VGFnYCB0byBncm91cCBFbmRwb2ludHMgYnkgdGhlaXIgVGFnIChsaWtlIFN3YWdnZXJVSSBncm91cHMgdGhlbSkuCi0gYG91dHB1dEZvbGRlcmAgLSBhIHN0cmluZyBkZXNjcmliaW5nIGEgcmVsYXRpdmUgcGF0aCB0byBhIGRlc2lyZWQgb3V0cHV0IGZvbGRlci4gRGVmYXVsdCBpcyBgLi9HZW5lcmF0ZWRgCi0gYG91dHB1dEZpbGVuYW1lYCAtIE91dHB1dCBmaWxlbmFtZS4gRGVmYXVsdCBpcyBgT3V0cHV0LmNzYCB3aGVuIHVzZWQgZnJvbSB0aGUgQ0xJIHRvb2wsIG90aGVyd2lzZSBpdHMgdGhlIC5yZWZpdHRlciBmaWxlbmFtZS4gU28gYFBldHN0b3JlLnJlZml0dGVyYCBiZWNvbWVzIGBQZXRzdG9yZS5jc2AuCi0gYGFkZGl0aW9uYWxOYW1lc3BhY2VzYCAtIEEgY29sbGVjdGlvbiBvZiBhZGRpdGlvbmFsIG5hbWVzcGFjZXMgdG8gaW5jbHVkZSBpbiB0aGUgZ2VuZXJhdGVkIGZpbGUuIEEgdXNlIGNhc2UgZm9yIHRoaXMgaXMgd2hlbiB5b3Ugd2FudCB0byByZXVzZSBjb250cmFjdHMgZnJvbSBhIGRpZmZlcmVudCBuYW1lc3BhY2UgdGhhbiB0aGUgZ2VuZXJhdGVkIGNvZGUuIERlZmF1bHQgaXMgZW1wdHkKLSBgaW5jbHVkZVRhZ3NgIC0gQSBjb2xsZWN0aW9uIG9mIHRhZ3MgdG8gdXNlIGEgZmlsdGVyIGZvciBpbmNsdWRpbmcgZW5kcG9pbnRzIHRoYXQgY29udGFpbiB0aGlzIHRhZy4KLSBgaW5jbHVkZVBhdGhNYXRjaGVzYCAtIEEgY29sbGVjdGlvbiBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHVzZWQgdG8gZmlsdGVyIHBhdGhzLgotIGBnZW5lcmF0ZURlcHJlY2F0ZWRPcGVyYXRpb25zYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgZGVwcmVjYXRlZCBvcGVyYXRpb25zIHNob3VsZCBiZSBnZW5lcmF0ZWQgb3Igc2tpcHBlZC4gRGVmYXVsdCBpcyBgdHJ1ZWAKLSBgb3BlcmF0aW9uTmFtZVRlbXBsYXRlYCAtIEdlbmVyYXRlIG9wZXJhdGlvbiBuYW1lcyB1c2luZyBwYXR0ZXJuLiBUaGlzIG11c3QgY29udGFpbiB0aGUgc3RyaW5nIHtvcGVyYXRpb25OYW1lfS4gQW4gZXhhbXBsZSB1c2FnZSBvZiB0aGlzIGNvdWxkIGJlIGB7b3BlcmF0aW9uTmFtZX1Bc3luY2AgdG8gc3VmZml4IGFsbCBtZXRob2QgbmFtZXMgd2l0aCBBc3luYwotIGBvcHRpb25hbFBhcmFtZXRlcnNgIC0gR2VuZXJhdGUgbm9uLXJlcXVpcmVkIHBhcmFtZXRlcnMgYXMgbnVsbGFibGUgb3B0aW9uYWwgcGFyYW1ldGVycwotIGB0cmltVW51c2VkU2NoZW1hYCAtIFJlbW92ZXMgdW5yZWZlcmVuY2VkIGNvbXBvbmVudHMgc2NoZW1hIHRvIGtlZXAgdGhlIGdlbmVyYXRlZCBvdXRwdXQgdG8gYSBtaW5pbXVtCi0gYGtlZXBTY2hlbWFQYXR0ZXJuc2A6IEEgY29sbGVjdGlvbiBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHRvIGZvcmNlIHRvIGtlZXAgbWF0Y2hpbmcgc2NoZW1hLiBUaGlzIGlzIHVzZWQgdG9nZXRoZXIgd2l0aCBgdHJpbVVudXNlZFNjaGVtYWAKLSBgZ2VuZXJhdGVEZWZhdWx0QWRkaXRpb25hbFByb3BlcnRpZXNgOiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGRlZmF1bHQgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBvcGVyYXRpb25OYW1lR2VuZXJhdG9yYDogVGhlIE5Td2FnIGBJT3BlcmF0aW9uTmFtZUdlbmVyYXRvcmAgaW1wbGVtZW50YXRpb24gdG8gdXNlLiBTZWUgaHR0cHM6Ly9yZWZpdHRlci5naXRodWIuaW8vYXBpL1JlZml0dGVyLkNvcmUuT3BlcmF0aW9uTmFtZUdlbmVyYXRvclR5cGVzLmh0bWwKLSBgaW1tdXRhYmxlUmVjb3Jkc2A6IFNldCB0byBgdHJ1ZWAgdG8gZ2VuZXJhdGUgY29udHJhY3RzIGFzIGltbXV0YWJsZSByZWNvcmRzIGluc3RlYWQgb2YgY2xhc3Nlcy4gRGVmYXVsdCBpcyBgZmFsc2VgCi0gYHVzZUR5bmFtaWNRdWVyeXN0cmluZ1BhcmFtZXRlcnNgOiBTZXQgdG8gYHRydWVgIHRvIHdyYXAgbXVsdGlwbGUgcXVlcnkgcGFyYW1ldGVycyBpbnRvIGEgc2luZ2xlIGNvbXBsZXggb25lLiBEZWZhdWx0IGlzIGBmYWxzZWAgKG5vIHdyYXBwaW5nKS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGl2ZXVpL3JlZml0P3RhYj1yZWFkbWUtb3YtZmlsZSNkeW5hbWljLXF1ZXJ5c3RyaW5nLXBhcmFtZXRlcnMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gYGRlcGVuZGVuY3lJbmplY3Rpb25TZXR0aW5nc2AgLSBTZXR0aW5nIHRoaXMgd2lsbCBnZW5lcmF0ZWQgZXh0ZW5zaW9uIG1ldGhvZHMgdG8gYElTZXJ2aWNlQ29sbGVjdGlvbmAgZm9yIGNvbmZpZ3VyaW5nIFJlZml0IGNsaWVudHMKICAtIGBiYXNlVXJsYCAtIFVzZWQgYXMgdGhlIEh0dHBDbGllbnQgYmFzZSBhZGRyZXNzLiBMZWF2ZSB0aGlzIGJsYW5rIHRvIG1hbnVhbGx5IHNldCB0aGUgYmFzZSBVUkwKICAtIGBodHRwTWVzc2FnZUhhbmRsZXJzYCAtIEEgY29sbGVjdGlvbiBvZiBgSHR0cE1lc3NhZ2VIYW5kbGVyYCB0aGF0IGlzIGFkZGVkIHRvIHRoZSBIdHRwQ2xpZW50IHBpcGVsaW5lCiAgLSBgdXNlUG9sbHlgIC0gKERFUFJFQ0FURUQpIFNldCB0aGlzIHRvIHRydWUgdG8gY29uZmlndXJlIHRoZSBIdHRwQ2xpZW50IHRvIHVzZSBQb2xseSB1c2luZyBhIHJldHJ5IHBvbGljeSB3aXRoIGEgaml0dGVyZWQgYmFja29mZgogIC0gYHRyYW5zaWVudEVycm9ySGFuZGxlcmA6IFNldCB0aGlzIHRvIGNvbmZpZ3VyZSB0cmFuc2llbnQgZXJyb3IgaGFuZGxpbmcgd2l0aCBhIHJldHJ5IHBvbGljeSB0aGF0IHVzZXMgYSBqaXR0ZXJlZCBiYWNrb2ZmLiBTZWUgaHR0cHM6Ly9yZWZpdHRlci5naXRodWIuaW8vYXBpL1JlZml0dGVyLkNvcmUuVHJhbnNpZW50RXJyb3JIYW5kbGVyLmh0bWwKICAtIGBmaXJzdEJhY2tvZmZSZXRyeUluU2Vjb25kc2AgLSBUaGlzIGlzIHRoZSBkdXJhdGlvbiBvZiB0aGUgaW5pdGlhbCByZXRyeSBiYWNrb2ZmLiBEZWZhdWx0IGlzIDEgc2Vjb25kCi0gYGFwaXpyU2V0dGluZ3NgIC0gU2V0dGluZyB0aGlzIHdpbGwgZm9ybWF0IFJlZml0IGludGVyZmFjZSB0byBiZSBtYW5hZ2VkIGJ5IEFwaXpyLiBTZWUgaHR0cHM6Ly93d3cuYXBpenIubmV0IGZvciBtb3JlIGluZm9ybWF0aW9uCiAgLSBgd2l0aFJlcXVlc3RPcHRpb25zYCAtIFRlbGxzIGlmIHRoZSBSZWZpdCBpbnRlcmZhY2UgbWV0aG9kcyBzaG91bGQgaGF2ZSBhIGZpbmFsIElBcGl6clJlcXVlc3RPcHRpb25zIG9wdGlvbnMgcGFyYW1ldGVyCiAgLSBgd2l0aFJlZ2lzdHJhdGlvbkhlbHBlcmAgLSBUZWxscyBpZiBSZWZpdHRlciBzaG91bGQgZ2VuZXJhdGUgQXBpenIgcmVnaXN0cmF0aW9uIGhlbHBlcnMgKGV4dGVuZGVkIHdpdGggZGVwZW5kZW5jeUluamVjdGlvblNldHRpbmdzIHNldCwgb3RoZXJ3aXNlIHN0YXRpYykKICAtIGB3aXRoQ2FjaGVQcm92aWRlcmAgLSBTZXQgdGhlIGNhY2hlIHByb3ZpZGVyIHRvIGJlIHVzZWQKICAtIGB3aXRoUHJpb3JpdHlgIC0gVGVsbHMgaWYgQXBpenIgc2hvdWxkIGhhbmRsZSByZXF1ZXN0IHByaW9yaXR5CiAgLSBgd2l0aE1lZGlhdGlvbmAgLSBUZWxscyBpZiBBcGl6ciBzaG91bGQgaGFuZGxlIHJlcXVlc3QgbWVkaWF0aW9uIChleHRlbmRlZCBvbmx5KQogIC0gYHdpdGhPcHRpb25hbE1lZGlhdGlvbmAgLSBUZWxscyBpZiBBcGl6ciBzaG91bGQgaGFuZGxlIG9wdGlvbmFsIHJlcXVlc3QgbWVkaWF0aW9uIChleHRlbmRlZCBvbmx5KQogIC0gYHdpdGhNYXBwaW5nUHJvdmlkZXJgIC0gU2V0IHRoZSBtYXBwaW5nIHByb3ZpZGVyIHRvIGJlIHVzZWQKICAtIGB3aXRoRmlsZVRyYW5zZmVyYCAtIFRlbGxzIGlmIEFwaXpyIHNob3VsZCBoYW5kbGUgZmlsZSB0cmFuc2ZlcgotIGBjb2RlR2VuZXJhdG9yU2V0dGluZ3NgIC0gU2V0dGluZyB0aGlzIGFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBOU3dhZyBnZW5lcmF0ZWQgdHlwZXMgYW5kIGNvbnRyYWN0cwogIC0gYHJlcXVpcmVkUHJvcGVydGllc011c3RCZURlZmluZWRgIC0gRGVmYXVsdCBpcyB0cnVlLAogIC0gYGdlbmVyYXRlRGF0YUFubm90YXRpb25zYCAtIERlZmF1bHQgaXMgdHJ1ZSwKICAtIGBhbnlUeXBlYCAtIERlZmF1bHQgaXMgYG9iamVjdGAsCiAgLSBgZGF0ZVR5cGVgIC0gRGVmYXVsdCBpcyBgU3lzdGVtLkRhdGVUaW1lT2Zmc2V0YCwKICAtIGBkYXRlVGltZVR5cGVgIC0gRGVmYXVsdCBpcyBgU3lzdGVtLkRhdGVUaW1lT2Zmc2V0YCwKICAtIGB0aW1lVHlwZWAgLSBEZWZhdWx0IGlzIGBTeXN0ZW0uVGltZVNwYW5gLAogIC0gYHRpbWVTcGFuVHlwZWAgLSBEZWZhdWx0IGlzIGBTeXN0ZW0uVGltZVNwYW5gLAogIC0gYGFycmF5VHlwZWAgLSBEZWZhdWx0IGlzIGBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5JQ29sbGVjdGlvbmAsCiAgLSBgZGljdGlvbmFyeVR5cGVgIC0gRGVmYXVsdCBpcyBgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSURpY3Rpb25hcnlgLAogIC0gYGFycmF5SW5zdGFuY2VUeXBlYCAtIERlZmF1bHQgaXMgYFN5c3RlbS5Db2xsZWN0aW9ucy5PYmplY3RNb2RlbC5Db2xsZWN0aW9uYCwKICAtIGBkaWN0aW9uYXJ5SW5zdGFuY2VUeXBlYCAtIERlZmF1bHQgaXMgYFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkRpY3Rpb25hcnlgLAogIC0gYGFycmF5QmFzZVR5cGVgIC0gRGVmYXVsdCBpcyBgU3lzdGVtLkNvbGxlY3Rpb25zLk9iamVjdE1vZGVsLkNvbGxlY3Rpb25gLAogIC0gYGRpY3Rpb25hcnlCYXNlVHlwZWAgLSBEZWZhdWx0IGlzIGBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5EaWN0aW9uYXJ5YCwKICAtIGBwcm9wZXJ0eVNldHRlckFjY2Vzc01vZGlmaWVyYCAtIERlZmF1bHQgaXMgYGAsCiAgLSBgZ2VuZXJhdGVJbW11dGFibGVBcnJheVByb3BlcnRpZXNgIC0gRGVmYXVsdCBpcyBmYWxzZSwKICAtIGBnZW5lcmF0ZUltbXV0YWJsZURpY3Rpb25hcnlQcm9wZXJ0aWVzYCAtIERlZmF1bHQgaXMgZmFsc2UsCiAgLSBgaGFuZGxlUmVmZXJlbmNlc2AgLSBEZWZhdWx0IGlzIGZhbHNlLAogIC0gYGpzb25TZXJpYWxpemVyU2V0dGluZ3NUcmFuc2Zvcm1hdGlvbk1ldGhvZGAgLSBEZWZhdWx0IGlzIG51bGwsCiAgLSBgZ2VuZXJhdGVKc29uTWV0aG9kc2AgLSBEZWZhdWx0IGlzIGZhbHNlLAogIC0gYGVuZm9yY2VGbGFnRW51bXNgIC0gRGVmYXVsdCBpcyBmYWxzZSwKICAtIGBpbmxpbmVOYW1lZERpY3Rpb25hcmllc2AgLSBEZWZhdWx0IGlzIGZhbHNlLAogIC0gYGlubGluZU5hbWVkVHVwbGVzYCAtIERlZmF1bHQgaXMgdHJ1ZSwKICAtIGBpbmxpbmVOYW1lZEFycmF5c2AgLSBEZWZhdWx0IGlzIGZhbHNlLAogIC0gYGdlbmVyYXRlT3B0aW9uYWxQcm9wZXJ0aWVzQXNOdWxsYWJsZWAgLSBEZWZhdWx0IGlzIGZhbHNlLAogIC0gYGdlbmVyYXRlTnVsbGFibGVSZWZlcmVuY2VUeXBlc2AgLSBEZWZhdWx0IGlzIGZhbHNlLAogIC0gYGdlbmVyYXRlTmF0aXZlUmVjb3Jkc2AgLSBEZWZhdWx0IGlzIGZhbHNlCiAgLSBgZ2VuZXJhdGVEZWZhdWx0VmFsdWVzYCAtIERlZmF1bHQgaXMgdHJ1ZQogIC0gYGlubGluZU5hbWVkQW55YCAtIERlZmF1bHQgaXMgZmFsc2UKICAtIGBleGNsdWRlZFR5cGVOYW1lc2AgLSBEZWZhdWx0IGlzIGVtcHR5CgoKIyBVc2luZyB0aGUgZ2VuZXJhdGVkIGNvZGUKCkhlcmUncyBhbiBleGFtcGxlIGdlbmVyYXRlZCBvdXRwdXQgZnJvbSB0aGUgW1N3YWdnZXIgUGV0c3RvcmUgZXhhbXBsZV0oaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pbykgdXNpbmcgdGhlIGRlZmF1bHQgc2V0dGluZ3MKCioqQ0xJIFRvb2wqKgoKYGBgYmFzaAokIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbmFtZXNwYWNlICJZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZSIKYGBgCgoqKlNvdXJjZSBHZW5lcmF0b3IgKioqLnJlZml0dGVyKioqIGZpbGUqKgoKYGBganNvbgp7CiAgIm9wZW5BcGlQYXRoIjogIi4vb3BlbmFwaS5qc29uIiwKICAibmFtZXNwYWNlIjogIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIgp9CmBgYAoKKipPdXRwdXQqKgoKYGBgY3MKdXNpbmcgUmVmaXQ7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwp1c2luZyBTeXN0ZW0uVGV4dC5Kc29uLlNlcmlhbGl6YXRpb247CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CgpuYW1lc3BhY2UgWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUKewogICAgW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KICAgIHB1YmxpYyBwYXJ0aWFsIGludGVyZmFjZSBJU3dhZ2dlclBldHN0b3JlCiAgICB7CiAgICAgICAgLy8vIDxzdW1tYXJ5PlVwZGF0ZSBhbiBleGlzdGluZyBwZXQ8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPlVwZGF0ZSBhbiBleGlzdGluZyBwZXQgYnkgSWQ8L3JlbWFya3M+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJib2R5Ij5VcGRhdGUgYW4gZXhpc3RlbnQgcGV0IGluIHRoZSBzdG9yZTwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPlN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAgICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIElEIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+UGV0IG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwNTwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPlZhbGlkYXRpb24gZXhjZXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtQdXQoIi9wZXQiKV0KICAgICAgICBUYXNrPFBldD4gVXBkYXRlUGV0KFtCb2R5XSBQZXQgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5BZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZTwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJlbWFya3M+QWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmU8L3JlbWFya3M+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJib2R5Ij5DcmVhdGUgYSBuZXcgcGV0IGluIHRoZSBzdG9yZTwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPlN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAgICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDU8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtQb3N0KCIvcGV0IildCiAgICAgICAgVGFzazxQZXQ+IEFkZFBldChbQm9keV0gUGV0IGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+RmluZHMgUGV0cyBieSBzdGF0dXM8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPk11bHRpcGxlIHN0YXR1cyB2YWx1ZXMgY2FuIGJlIHByb3ZpZGVkIHdpdGggY29tbWEgc2VwYXJhdGVkIHN0cmluZ3M8L3JlbWFya3M+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGF0dXMiPlN0YXR1cyB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGZpbHRlcjwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAgICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHN0YXR1cyB2YWx1ZTwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPC9saXN0PgogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICAgICAgW0dldCgiL3BldC9maW5kQnlTdGF0dXMiKV0KICAgICAgICBUYXNrPElDb2xsZWN0aW9uPFBldD4+IEZpbmRQZXRzQnlTdGF0dXMoW1F1ZXJ5XSBTdGF0dXM/IHN0YXR1cyk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5GaW5kcyBQZXRzIGJ5IHRhZ3M8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPk11bHRpcGxlIHRhZ3MgY2FuIGJlIHByb3ZpZGVkIHdpdGggY29tbWEgc2VwYXJhdGVkIHN0cmluZ3MuIFVzZSB0YWcxLCB0YWcyLCB0YWczIGZvciB0ZXN0aW5nLjwvcmVtYXJrcz4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InRhZ3MiPlRhZ3MgdG8gZmlsdGVyIGJ5PC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgICAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgdGFnIHZhbHVlPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbR2V0KCIvcGV0L2ZpbmRCeVRhZ3MiKV0KICAgICAgICBUYXNrPElDb2xsZWN0aW9uPFBldD4+IEZpbmRQZXRzQnlUYWdzKFtRdWVyeShDb2xsZWN0aW9uRm9ybWF0Lk11bHRpKV0gSUVudW1lcmFibGU8c3RyaW5nPiB0YWdzKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkZpbmQgcGV0IGJ5IElEPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5SZXR1cm5zIGEgc2luZ2xlIHBldDwvcmVtYXJrcz4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InBldElkIj5JRCBvZiBwZXQgdG8gcmV0dXJuPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgICAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgSUQgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDQ8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5QZXQgbm90IGZvdW5kPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtHZXQoIi9wZXQve3BldElkfSIpXQogICAgICAgIFRhc2s8UGV0PiBHZXRQZXRCeUlkKGxvbmcgcGV0SWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+VXBkYXRlcyBhIHBldCBpbiB0aGUgc3RvcmUgd2l0aCBmb3JtIGRhdGE8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwZXRJZCI+SUQgb2YgcGV0IHRoYXQgbmVlZHMgdG8gYmUgdXBkYXRlZDwvcGFyYW0+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJuYW1lIj5OYW1lIG9mIHBldCB0aGF0IG5lZWRzIHRvIGJlIHVwZGF0ZWQ8L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhdHVzIj5TdGF0dXMgb2YgcGV0IHRoYXQgbmVlZHMgdG8gYmUgdXBkYXRlZDwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPkEgPHNlZSBjcmVmPSJUYXNrIi8+IHRoYXQgY29tcGxldGVzIHdoZW4gdGhlIHJlcXVlc3QgaXMgZmluaXNoZWQuPC9yZXR1cm5zPgogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAgICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDU8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPgogICAgICAgIFtQb3N0KCIvcGV0L3twZXRJZH0iKV0KICAgICAgICBUYXNrIFVwZGF0ZVBldFdpdGhGb3JtKGxvbmcgcGV0SWQsIFtRdWVyeV0gc3RyaW5nIG5hbWUsIFtRdWVyeV0gc3RyaW5nIHN0YXR1cyk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5EZWxldGVzIGEgcGV0PC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGV0SWQiPlBldCBpZCB0byBkZWxldGU8L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgICAgIC8vLyBUaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGU6CiAgICAgICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgICAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAgICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBwZXQgdmFsdWU8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9leGNlcHRpb24+CiAgICAgICAgW0RlbGV0ZSgiL3BldC97cGV0SWR9IildCiAgICAgICAgVGFzayBEZWxldGVQZXQobG9uZyBwZXRJZCwgW0hlYWRlcigiYXBpX2tleSIpXSBzdHJpbmcgYXBpX2tleSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT51cGxvYWRzIGFuIGltYWdlPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGV0SWQiPklEIG9mIHBldCB0byB1cGRhdGU8L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYWRkaXRpb25hbE1ldGFkYXRhIj5BZGRpdGlvbmFsIE1ldGFkYXRhPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+CiAgICAgICAgLy8vIEEgPHNlZSBjcmVmPSJUYXNrIi8+IHJlcHJlc2VudGluZyB0aGUgPHNlZSBjcmVmPSJJQXBpUmVzcG9uc2UiLz4gaW5zdGFuY2UgY29udGFpbmluZyB0aGUgcmVzdWx0OgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjIwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICAgICAgW1Bvc3QoIi9wZXQve3BldElkfS91cGxvYWRJbWFnZSIpXQogICAgICAgIFRhc2s8QXBpUmVzcG9uc2U+IFVwbG9hZEZpbGUobG9uZyBwZXRJZCwgW1F1ZXJ5XSBzdHJpbmcgYWRkaXRpb25hbE1ldGFkYXRhLCAgU3RyZWFtUGFydCBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PlJldHVybnMgcGV0IGludmVudG9yaWVzIGJ5IHN0YXR1czwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJlbWFya3M+UmV0dXJucyBhIG1hcCBvZiBzdGF0dXMgY29kZXMgdG8gcXVhbnRpdGllczwvcmVtYXJrcz4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj5UaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGUuPC9leGNlcHRpb24+CiAgICAgICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtHZXQoIi9zdG9yZS9pbnZlbnRvcnkiKV0KICAgICAgICBUYXNrPElEaWN0aW9uYXJ5PHN0cmluZywgaW50Pj4gR2V0SW52ZW50b3J5KCk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5QbGFjZSBhbiBvcmRlciBmb3IgYSBwZXQ8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPlBsYWNlIGEgbmV3IG9yZGVyIGluIHRoZSBzdG9yZTwvcmVtYXJrcz4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgICAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwNTwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgaW5wdXQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9leGNlcHRpb24+CiAgICAgICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtQb3N0KCIvc3RvcmUvb3JkZXIiKV0KICAgICAgICBUYXNrPE9yZGVyPiBQbGFjZU9yZGVyKFtCb2R5XSBPcmRlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkZpbmQgcHVyY2hhc2Ugb3JkZXIgYnkgSUQ8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPkZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8PSA1IG9yID4gMTAuIE90aGVyIHZhbHVlcyB3aWxsIGdlbmVyYXRlZCBleGNlcHRpb25zPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3JkZXJJZCI+SUQgb2Ygb3JkZXIgdGhhdCBuZWVkcyB0byBiZSBmZXRjaGVkPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgICAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgSUQgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDQ8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5PcmRlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9leGNlcHRpb24+CiAgICAgICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtHZXQoIi9zdG9yZS9vcmRlci97b3JkZXJJZH0iKV0KICAgICAgICBUYXNrPE9yZGVyPiBHZXRPcmRlckJ5SWQobG9uZyBvcmRlcklkKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkRlbGV0ZSBwdXJjaGFzZSBvcmRlciBieSBJRDwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJlbWFya3M+Rm9yIHZhbGlkIHJlc3BvbnNlIHRyeSBpbnRlZ2VyIElEcyB3aXRoIHZhbHVlIDwgMTAwMC4gQW55dGhpbmcgYWJvdmUgMTAwMCBvciBub25pbnRlZ2VycyB3aWxsIGdlbmVyYXRlIEFQSSBlcnJvcnM8L3JlbWFya3M+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvcmRlcklkIj5JRCBvZiB0aGUgb3JkZXIgdGhhdCBuZWVkcyB0byBiZSBkZWxldGVkPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+QSA8c2VlIGNyZWY9IlRhc2siLz4gdGhhdCBjb21wbGV0ZXMgd2hlbiB0aGUgcmVxdWVzdCBpcyBmaW5pc2hlZC48L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgICAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgSUQgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDQ8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5PcmRlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9leGNlcHRpb24+CiAgICAgICAgW0RlbGV0ZSgiL3N0b3JlL29yZGVyL3tvcmRlcklkfSIpXQogICAgICAgIFRhc2sgRGVsZXRlT3JkZXIobG9uZyBvcmRlcklkKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkNyZWF0ZSB1c2VyPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5UaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLjwvcmVtYXJrcz4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImJvZHkiPkNyZWF0ZWQgdXNlciBvYmplY3Q8L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPlRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZS48L2V4Y2VwdGlvbj4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uLCBhcHBsaWNhdGlvbi94bWwiKV0KICAgICAgICBbUG9zdCgiL3VzZXIiKV0KICAgICAgICBUYXNrIENyZWF0ZVVzZXIoW0JvZHldIFVzZXIgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5DcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheTwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJlbWFya3M+Q3JlYXRlcyBsaXN0IG9mIHVzZXJzIHdpdGggZ2l2ZW4gaW5wdXQgYXJyYXk8L3JlbWFya3M+CiAgICAgICAgLy8vIDxyZXR1cm5zPlN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlLjwvZXhjZXB0aW9uPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtQb3N0KCIvdXNlci9jcmVhdGVXaXRoTGlzdCIpXQogICAgICAgIFRhc2s8VXNlcj4gQ3JlYXRlVXNlcnNXaXRoTGlzdElucHV0KFtCb2R5XSBJRW51bWVyYWJsZTxVc2VyPiBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkxvZ3MgdXNlciBpbnRvIHRoZSBzeXN0ZW08L3N1bW1hcnk+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ1c2VybmFtZSI+VGhlIHVzZXIgbmFtZSBmb3IgbG9naW48L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGFzc3dvcmQiPlRoZSBwYXNzd29yZCBmb3IgbG9naW4gaW4gY2xlYXIgdGV4dDwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAgICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHVzZXJuYW1lL3Bhc3N3b3JkIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvZXhjZXB0aW9uPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbR2V0KCIvdXNlci9sb2dpbiIpXQogICAgICAgIFRhc2s8c3RyaW5nPiBMb2dpblVzZXIoW1F1ZXJ5XSBzdHJpbmcgdXNlcm5hbWUsIFtRdWVyeV0gc3RyaW5nIHBhc3N3b3JkKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkxvZ3Mgb3V0IGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgc2Vzc2lvbjwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJldHVybnM+QSA8c2VlIGNyZWY9IlRhc2siLz4gdGhhdCBjb21wbGV0ZXMgd2hlbiB0aGUgcmVxdWVzdCBpcyBmaW5pc2hlZC48L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj5UaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGUuPC9leGNlcHRpb24+CiAgICAgICAgW0dldCgiL3VzZXIvbG9nb3V0IildCiAgICAgICAgVGFzayBMb2dvdXRVc2VyKCk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5HZXQgdXNlciBieSB1c2VyIG5hbWU8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ1c2VybmFtZSI+VGhlIG5hbWUgdGhhdCBuZWVkcyB0byBiZSBmZXRjaGVkLiBVc2UgdXNlcjEgZm9yIHRlc3RpbmcuPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgICAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgdXNlcm5hbWUgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDQ8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5Vc2VyIG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPC9saXN0PgogICAgICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICAgICAgW0dldCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2s8VXNlcj4gR2V0VXNlckJ5TmFtZShzdHJpbmcgdXNlcm5hbWUpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+VXBkYXRlIHVzZXI8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPlRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idXNlcm5hbWUiPm5hbWUgdGhhdCBuZWVkIHRvIGJlIGRlbGV0ZWQ8L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYm9keSI+VXBkYXRlIGFuIGV4aXN0ZW50IHVzZXIgaW4gdGhlIHN0b3JlPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+QSA8c2VlIGNyZWY9IlRhc2siLz4gdGhhdCBjb21wbGV0ZXMgd2hlbiB0aGUgcmVxdWVzdCBpcyBmaW5pc2hlZC48L3JldHVybnM+CiAgICAgICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj5UaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGUuPC9leGNlcHRpb24+CiAgICAgICAgW1B1dCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2sgVXBkYXRlVXNlcihzdHJpbmcgdXNlcm5hbWUsIFtCb2R5XSBVc2VyIGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+RGVsZXRlIHVzZXI8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPlRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idXNlcm5hbWUiPlRoZSBuYW1lIHRoYXQgbmVlZHMgdG8gYmUgZGVsZXRlZDwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPkEgPHNlZSBjcmVmPSJUYXNrIi8+IHRoYXQgY29tcGxldGVzIHdoZW4gdGhlIHJlcXVlc3QgaXMgZmluaXNoZWQuPC9yZXR1cm5zPgogICAgICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAgICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHVzZXJuYW1lIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+VXNlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9leGNlcHRpb24+CiAgICAgICAgW0RlbGV0ZSgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2sgRGVsZXRlVXNlcihzdHJpbmcgdXNlcm5hbWUpOwogICAgfQp9CmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgZ2VuZXJhdGVkIG91dHB1dCBmcm9tIHRoZSBbU3dhZ2dlciBQZXRzdG9yZSBleGFtcGxlXShodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvKSBjb25maWd1cmVkIHRvIHdyYXAgdGhlIHJldHVybiB0eXBlIGluIGBJQXBpUmVzcG9uc2U8VD5gCgoqKkNMSSBUb29sKioKCmBgYGJhc2gKJCByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5hbWVzcGFjZSAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiIC0tdXNlLWFwaS1yZXNwb25zZQpgYGAKCioqU291cmNlIEdlbmVyYXRvciAqKioucmVmaXR0ZXIqKiogZmlsZSoqCgpgYGBqc29uCnsKICAib3BlbkFwaVBhdGgiOiAiLi9vcGVuYXBpLmpzb24iLAogICJuYW1lc3BhY2UiOiAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiLAogICJyZXR1cm5JQXBpUmVzcG9uc2UiOiB0cnVlCn0KYGBgCgoqKk91dHB1dCoqCgpgYGBjcwp1c2luZyBSZWZpdDsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CnVzaW5nIFN5c3RlbS5UZXh0Lkpzb24uU2VyaWFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKCm5hbWVzcGFjZSBZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZQp7CiAgICBbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiUmVmaXR0ZXIiLCAiMS4wLjAuMCIpXQogICAgcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElTd2FnZ2VyUGV0c3RvcmUKICAgIHsKICAgICAgICAvLy8gPHN1bW1hcnk+VXBkYXRlIGFuIGV4aXN0aW5nIHBldDwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJlbWFya3M+VXBkYXRlIGFuIGV4aXN0aW5nIHBldCBieSBJZDwvcmVtYXJrcz4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImJvZHkiPlVwZGF0ZSBhbiBleGlzdGVudCBwZXQgaW4gdGhlIHN0b3JlPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+CiAgICAgICAgLy8vIEEgPHNlZSBjcmVmPSJUYXNrIi8+IHJlcHJlc2VudGluZyB0aGUgPHNlZSBjcmVmPSJJQXBpUmVzcG9uc2UiLz4gaW5zdGFuY2UgY29udGFpbmluZyB0aGUgcmVzdWx0OgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjIwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPlN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBJRCBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPlBldCBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDU8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5WYWxpZGF0aW9uIGV4Y2VwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPC9saXN0PgogICAgICAgIC8vLyA8L3JldHVybnM+CiAgICAgICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24veG1sLCBhcHBsaWNhdGlvbi9qc29uIildCiAgICAgICAgW1B1dCgiL3BldCIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPFBldD4+IFVwZGF0ZVBldChbQm9keV0gUGV0IGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+QWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmU8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPkFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYm9keSI+Q3JlYXRlIGEgbmV3IHBldCBpbiB0aGUgc3RvcmU8L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz4KICAgICAgICAvLy8gQSA8c2VlIGNyZWY9IlRhc2siLz4gcmVwcmVzZW50aW5nIHRoZSA8c2VlIGNyZWY9IklBcGlSZXNwb25zZSIvPiBpbnN0YW5jZSBjb250YWluaW5nIHRoZSByZXN1bHQ6CiAgICAgICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgICAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAgICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+MjAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+U3VjY2Vzc2Z1bCBvcGVyYXRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDU8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbUG9zdCgiL3BldCIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPFBldD4+IEFkZFBldChbQm9keV0gUGV0IGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+RmluZHMgUGV0cyBieSBzdGF0dXM8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPk11bHRpcGxlIHN0YXR1cyB2YWx1ZXMgY2FuIGJlIHByb3ZpZGVkIHdpdGggY29tbWEgc2VwYXJhdGVkIHN0cmluZ3M8L3JlbWFya3M+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzdGF0dXMiPlN0YXR1cyB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGZpbHRlcjwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPgogICAgICAgIC8vLyBBIDxzZWUgY3JlZj0iVGFzayIvPiByZXByZXNlbnRpbmcgdGhlIDxzZWUgY3JlZj0iSUFwaVJlc3BvbnNlIi8+IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIHJlc3VsdDoKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT4yMDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgc3RhdHVzIHZhbHVlPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICAgICAgW0dldCgiL3BldC9maW5kQnlTdGF0dXMiKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxJQ29sbGVjdGlvbjxQZXQ+Pj4gRmluZFBldHNCeVN0YXR1cyhbUXVlcnldIFN0YXR1cz8gc3RhdHVzKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkZpbmRzIFBldHMgYnkgdGFnczwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJlbWFya3M+TXVsdGlwbGUgdGFncyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncy4gVXNlIHRhZzEsIHRhZzIsIHRhZzMgZm9yIHRlc3RpbmcuPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGFncyI+VGFncyB0byBmaWx0ZXIgYnk8L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz4KICAgICAgICAvLy8gQSA8c2VlIGNyZWY9IlRhc2siLz4gcmVwcmVzZW50aW5nIHRoZSA8c2VlIGNyZWY9IklBcGlSZXNwb25zZSIvPiBpbnN0YW5jZSBjb250YWluaW5nIHRoZSByZXN1bHQ6CiAgICAgICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgICAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAgICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+MjAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHRhZyB2YWx1ZTwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPC9saXN0PgogICAgICAgIC8vLyA8L3JldHVybnM+CiAgICAgICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtHZXQoIi9wZXQvZmluZEJ5VGFncyIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPElDb2xsZWN0aW9uPFBldD4+PiBGaW5kUGV0c0J5VGFncyhbUXVlcnkoQ29sbGVjdGlvbkZvcm1hdC5NdWx0aSldIElFbnVtZXJhYmxlPHN0cmluZz4gdGFncyk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5GaW5kIHBldCBieSBJRDwvc3VtbWFyeT4KICAgICAgICAvLy8gPHJlbWFya3M+UmV0dXJucyBhIHNpbmdsZSBwZXQ8L3JlbWFya3M+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwZXRJZCI+SUQgb2YgcGV0IHRvIHJldHVybjwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPgogICAgICAgIC8vLyBBIDxzZWUgY3JlZj0iVGFzayIvPiByZXByZXNlbnRpbmcgdGhlIDxzZWUgY3JlZj0iSUFwaVJlc3BvbnNlIi8+IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIHJlc3VsdDoKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT4yMDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgSUQgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDQ8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5QZXQgbm90IGZvdW5kPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbR2V0KCIvcGV0L3twZXRJZH0iKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxQZXQ+PiBHZXRQZXRCeUlkKGxvbmcgcGV0SWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+VXBkYXRlcyBhIHBldCBpbiB0aGUgc3RvcmUgd2l0aCBmb3JtIGRhdGE8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJwZXRJZCI+SUQgb2YgcGV0IHRoYXQgbmVlZHMgdG8gYmUgdXBkYXRlZDwvcGFyYW0+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJuYW1lIj5OYW1lIG9mIHBldCB0aGF0IG5lZWRzIHRvIGJlIHVwZGF0ZWQ8L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhdHVzIj5TdGF0dXMgb2YgcGV0IHRoYXQgbmVlZHMgdG8gYmUgdXBkYXRlZDwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPgogICAgICAgIC8vLyBBIDxzZWUgY3JlZj0iVGFzayIvPiByZXByZXNlbnRpbmcgdGhlIDxzZWUgY3JlZj0iSUFwaVJlc3BvbnNlIi8+IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIHJlc3VsdDoKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDU8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbUG9zdCgiL3BldC97cGV0SWR9IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U+IFVwZGF0ZVBldFdpdGhGb3JtKGxvbmcgcGV0SWQsIFtRdWVyeV0gc3RyaW5nIG5hbWUsIFtRdWVyeV0gc3RyaW5nIHN0YXR1cyk7CgogICAgICAgIC8vLyA8c3VtbWFyeT5EZWxldGVzIGEgcGV0PC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGV0SWQiPlBldCBpZCB0byBkZWxldGU8L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz4KICAgICAgICAvLy8gQSA8c2VlIGNyZWY9IlRhc2siLz4gcmVwcmVzZW50aW5nIHRoZSA8c2VlIGNyZWY9IklBcGlSZXNwb25zZSIvPiBpbnN0YW5jZSBjb250YWluaW5nIHRoZSByZXN1bHQ6CiAgICAgICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgICAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAgICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBwZXQgdmFsdWU8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9yZXR1cm5zPgogICAgICAgIFtEZWxldGUoIi9wZXQve3BldElkfSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPiBEZWxldGVQZXQobG9uZyBwZXRJZCwgW0hlYWRlcigiYXBpX2tleSIpXSBzdHJpbmcgYXBpX2tleSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT51cGxvYWRzIGFuIGltYWdlPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGV0SWQiPklEIG9mIHBldCB0byB1cGRhdGU8L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYWRkaXRpb25hbE1ldGFkYXRhIj5BZGRpdGlvbmFsIE1ldGFkYXRhPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+CiAgICAgICAgLy8vIEEgPHNlZSBjcmVmPSJUYXNrIi8+IHJlcHJlc2VudGluZyB0aGUgPHNlZSBjcmVmPSJJQXBpUmVzcG9uc2UiLz4gaW5zdGFuY2UgY29udGFpbmluZyB0aGUgcmVzdWx0OgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjIwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICAgICAgW1Bvc3QoIi9wZXQve3BldElkfS91cGxvYWRJbWFnZSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPEFwaVJlc3BvbnNlPj4gVXBsb2FkRmlsZShsb25nIHBldElkLCBbUXVlcnldIHN0cmluZyBhZGRpdGlvbmFsTWV0YWRhdGEsICBTdHJlYW1QYXJ0IGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+UmV0dXJucyBwZXQgaW52ZW50b3JpZXMgYnkgc3RhdHVzPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5SZXR1cm5zIGEgbWFwIG9mIHN0YXR1cyBjb2RlcyB0byBxdWFudGl0aWVzPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgICAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPlRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZS48L2V4Y2VwdGlvbj4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICAgICAgW0dldCgiL3N0b3JlL2ludmVudG9yeSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPElEaWN0aW9uYXJ5PHN0cmluZywgaW50Pj4+IEdldEludmVudG9yeSgpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+UGxhY2UgYW4gb3JkZXIgZm9yIGEgcGV0PC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5QbGFjZSBhIG5ldyBvcmRlciBpbiB0aGUgc3RvcmU8L3JlbWFya3M+CiAgICAgICAgLy8vIDxyZXR1cm5zPgogICAgICAgIC8vLyBBIDxzZWUgY3JlZj0iVGFzayIvPiByZXByZXNlbnRpbmcgdGhlIDxzZWUgY3JlZj0iSUFwaVJlc3BvbnNlIi8+IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIHJlc3VsdDoKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT4yMDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwNTwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgaW5wdXQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9yZXR1cm5zPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbUG9zdCgiL3N0b3JlL29yZGVyIildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8T3JkZXI+PiBQbGFjZU9yZGVyKFtCb2R5XSBPcmRlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkZpbmQgcHVyY2hhc2Ugb3JkZXIgYnkgSUQ8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPkZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8PSA1IG9yID4gMTAuIE90aGVyIHZhbHVlcyB3aWxsIGdlbmVyYXRlZCBleGNlcHRpb25zPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ib3JkZXJJZCI+SUQgb2Ygb3JkZXIgdGhhdCBuZWVkcyB0byBiZSBmZXRjaGVkPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+CiAgICAgICAgLy8vIEEgPHNlZSBjcmVmPSJUYXNrIi8+IHJlcHJlc2VudGluZyB0aGUgPHNlZSBjcmVmPSJJQXBpUmVzcG9uc2UiLz4gaW5zdGFuY2UgY29udGFpbmluZyB0aGUgcmVzdWx0OgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjIwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBJRCBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPk9yZGVyIG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPC9saXN0PgogICAgICAgIC8vLyA8L3JldHVybnM+CiAgICAgICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgICAgIFtHZXQoIi9zdG9yZS9vcmRlci97b3JkZXJJZH0iKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxPcmRlcj4+IEdldE9yZGVyQnlJZChsb25nIG9yZGVySWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+RGVsZXRlIHB1cmNoYXNlIG9yZGVyIGJ5IElEPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5Gb3IgdmFsaWQgcmVzcG9uc2UgdHJ5IGludGVnZXIgSURzIHdpdGggdmFsdWUgPCAxMDAwLiBBbnl0aGluZyBhYm92ZSAxMDAwIG9yIG5vbmludGVnZXJzIHdpbGwgZ2VuZXJhdGUgQVBJIGVycm9yczwvcmVtYXJrcz4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im9yZGVySWQiPklEIG9mIHRoZSBvcmRlciB0aGF0IG5lZWRzIHRvIGJlIGRlbGV0ZWQ8L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz4KICAgICAgICAvLy8gQSA8c2VlIGNyZWY9IlRhc2siLz4gcmVwcmVzZW50aW5nIHRoZSA8c2VlIGNyZWY9IklBcGlSZXNwb25zZSIvPiBpbnN0YW5jZSBjb250YWluaW5nIHRoZSByZXN1bHQ6CiAgICAgICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgICAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAgICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBJRCBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPk9yZGVyIG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPC9saXN0PgogICAgICAgIC8vLyA8L3JldHVybnM+CiAgICAgICAgW0RlbGV0ZSgiL3N0b3JlL29yZGVyL3tvcmRlcklkfSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPiBEZWxldGVPcmRlcihsb25nIG9yZGVySWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+Q3JlYXRlIHVzZXI8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxyZW1hcmtzPlRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuPC9yZW1hcmtzPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iYm9keSI+Q3JlYXRlZCB1c2VyIG9iamVjdDwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPkEgPHNlZSBjcmVmPSJUYXNrIi8+IHJlcHJlc2VudGluZyB0aGUgPHNlZSBjcmVmPSJJQXBpUmVzcG9uc2UiLz4gaW5zdGFuY2UgY29udGFpbmluZyB0aGUgcmVzdWx0LjwvcmV0dXJucz4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uLCBhcHBsaWNhdGlvbi94bWwiKV0KICAgICAgICBbUG9zdCgiL3VzZXIiKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZT4gQ3JlYXRlVXNlcihbQm9keV0gVXNlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkNyZWF0ZXMgbGlzdCBvZiB1c2VycyB3aXRoIGdpdmVuIGlucHV0IGFycmF5PC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5DcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheTwvcmVtYXJrcz4KICAgICAgICAvLy8gPHJldHVybnM+CiAgICAgICAgLy8vIEEgPHNlZSBjcmVmPSJUYXNrIi8+IHJlcHJlc2VudGluZyB0aGUgPHNlZSBjcmVmPSJJQXBpUmVzcG9uc2UiLz4gaW5zdGFuY2UgY29udGFpbmluZyB0aGUgcmVzdWx0OgogICAgICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAgICAgLy8vIDxsaXN0aGVhZGVyPgogICAgICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjIwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPlN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbUG9zdCgiL3VzZXIvY3JlYXRlV2l0aExpc3QiKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxVc2VyPj4gQ3JlYXRlVXNlcnNXaXRoTGlzdElucHV0KFtCb2R5XSBJRW51bWVyYWJsZTxVc2VyPiBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkxvZ3MgdXNlciBpbnRvIHRoZSBzeXN0ZW08L3N1bW1hcnk+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ1c2VybmFtZSI+VGhlIHVzZXIgbmFtZSBmb3IgbG9naW48L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icGFzc3dvcmQiPlRoZSBwYXNzd29yZCBmb3IgbG9naW4gaW4gY2xlYXIgdGV4dDwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPgogICAgICAgIC8vLyBBIDxzZWUgY3JlZj0iVGFzayIvPiByZXByZXNlbnRpbmcgdGhlIDxzZWUgY3JlZj0iSUFwaVJlc3BvbnNlIi8+IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIHJlc3VsdDoKICAgICAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgICAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT4yMDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgdXNlcm5hbWUvcGFzc3dvcmQgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9yZXR1cm5zPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbR2V0KCIvdXNlci9sb2dpbiIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPHN0cmluZz4+IExvZ2luVXNlcihbUXVlcnldIHN0cmluZyB1c2VybmFtZSwgW1F1ZXJ5XSBzdHJpbmcgcGFzc3dvcmQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+TG9ncyBvdXQgY3VycmVudCBsb2dnZWQgaW4gdXNlciBzZXNzaW9uPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiByZXByZXNlbnRpbmcgdGhlIDxzZWUgY3JlZj0iSUFwaVJlc3BvbnNlIi8+IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIHJlc3VsdC48L3JldHVybnM+CiAgICAgICAgW0dldCgiL3VzZXIvbG9nb3V0IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U+IExvZ291dFVzZXIoKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkdldCB1c2VyIGJ5IHVzZXIgbmFtZTwvc3VtbWFyeT4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVzZXJuYW1lIj5UaGUgbmFtZSB0aGF0IG5lZWRzIHRvIGJlIGZldGNoZWQuIFVzZSB1c2VyMSBmb3IgdGVzdGluZy48L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz4KICAgICAgICAvLy8gQSA8c2VlIGNyZWY9IlRhc2siLz4gcmVwcmVzZW50aW5nIHRoZSA8c2VlIGNyZWY9IklBcGlSZXNwb25zZSIvPiBpbnN0YW5jZSBjb250YWluaW5nIHRoZSByZXN1bHQ6CiAgICAgICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgICAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAgICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+MjAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDxpdGVtPgogICAgICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAgICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHVzZXJuYW1lIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+VXNlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgICAgIC8vLyA8L2l0ZW0+CiAgICAgICAgLy8vIDwvbGlzdD4KICAgICAgICAvLy8gPC9yZXR1cm5zPgogICAgICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgICAgICBbR2V0KCIvdXNlci97dXNlcm5hbWV9IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8VXNlcj4+IEdldFVzZXJCeU5hbWUoc3RyaW5nIHVzZXJuYW1lKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PlVwZGF0ZSB1c2VyPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5UaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLjwvcmVtYXJrcz4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVzZXJuYW1lIj5uYW1lIHRoYXQgbmVlZCB0byBiZSBkZWxldGVkPC9wYXJhbT4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImJvZHkiPlVwZGF0ZSBhbiBleGlzdGVudCB1c2VyIGluIHRoZSBzdG9yZTwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPkEgPHNlZSBjcmVmPSJUYXNrIi8+IHJlcHJlc2VudGluZyB0aGUgPHNlZSBjcmVmPSJJQXBpUmVzcG9uc2UiLz4gaW5zdGFuY2UgY29udGFpbmluZyB0aGUgcmVzdWx0LjwvcmV0dXJucz4KICAgICAgICBbUHV0KCIvdXNlci97dXNlcm5hbWV9IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U+IFVwZGF0ZVVzZXIoc3RyaW5nIHVzZXJuYW1lLCBbQm9keV0gVXNlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PkRlbGV0ZSB1c2VyPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmVtYXJrcz5UaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLjwvcmVtYXJrcz4KICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InVzZXJuYW1lIj5UaGUgbmFtZSB0aGF0IG5lZWRzIHRvIGJlIGRlbGV0ZWQ8L3BhcmFtPgogICAgICAgIC8vLyA8cmV0dXJucz4KICAgICAgICAvLy8gQSA8c2VlIGNyZWY9IlRhc2siLz4gcmVwcmVzZW50aW5nIHRoZSA8c2VlIGNyZWY9IklBcGlSZXNwb25zZSIvPiBpbnN0YW5jZSBjb250YWluaW5nIHRoZSByZXN1bHQ6CiAgICAgICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgICAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAgICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgICAgIC8vLyA8aXRlbT4KICAgICAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCB1c2VybmFtZSBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAgICAgLy8vIDwvaXRlbT4KICAgICAgICAvLy8gPGl0ZW0+CiAgICAgICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgICAgICAvLy8gPGRlc2NyaXB0aW9uPlVzZXIgbm90IGZvdW5kPC9kZXNjcmlwdGlvbj4KICAgICAgICAvLy8gPC9pdGVtPgogICAgICAgIC8vLyA8L2xpc3Q+CiAgICAgICAgLy8vIDwvcmV0dXJucz4KICAgICAgICBbRGVsZXRlKCIvdXNlci97dXNlcm5hbWV9IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U+IERlbGV0ZVVzZXIoc3RyaW5nIHVzZXJuYW1lKTsKICAgIH0KfQpgYGAKCkhlcmUncyBhbiBleGFtcGxlIGdlbmVyYXRlZCBvdXRwdXQgZnJvbSB0aGUgW1N3YWdnZXIgUGV0c3RvcmUgZXhhbXBsZV0oaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pbykgY29uZmlndXJlZCB0byBnZW5lcmF0ZSBhbiBpbnRlcmZhY2UgZm9yIGVhY2ggZW5kcG9pbnQKCioqQ0xJIFRvb2wqKgoKYGBgYmFzaAokIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbmFtZXNwYWNlICJZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZSIgLS1tdWx0aXBsZS1pbnRlcmZhY2VzIEJ5RW5kcG9pbnQKYGBgCgoqKlNvdXJjZSBHZW5lcmF0b3IgKioqLnJlZml0dGVyKioqIGZpbGUqKgoKYGBganNvbgp7CiAgIm9wZW5BcGlQYXRoIjogIi4vb3BlbmFwaS5qc29uIiwKICAibmFtZXNwYWNlIjogIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIiwKICAibXVsdGlwbGVJbnRlcmZhY2VzIjogIkJ5RW5kcG9pbnQiCn0KYGBgCgoqKk91dHB1dCoqCgpgYGBjcwovLy8gPHN1bW1hcnk+VXBkYXRlIGFuIGV4aXN0aW5nIHBldDwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElVcGRhdGVQZXRFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+VXBkYXRlIGFuIGV4aXN0aW5nIHBldDwvc3VtbWFyeT4KICAgIC8vLyA8cmVtYXJrcz5VcGRhdGUgYW4gZXhpc3RpbmcgcGV0IGJ5IElkPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJib2R5Ij5VcGRhdGUgYW4gZXhpc3RlbnQgcGV0IGluIHRoZSBzdG9yZTwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+U3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBJRCBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+UGV0IG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNTwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+VmFsaWRhdGlvbiBleGNlcHRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtQdXQoIi9wZXQiKV0KICAgIFRhc2s8UGV0PiBFeGVjdXRlKFtCb2R5XSBQZXQgYm9keSk7Cn0KCi8vLyA8c3VtbWFyeT5BZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZTwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElBZGRQZXRFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+QWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmU8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+QWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmU8L3JlbWFya3M+CiAgICAvLy8gPHBhcmFtIG5hbWU9ImJvZHkiPkNyZWF0ZSBhIG5ldyBwZXQgaW4gdGhlIHN0b3JlPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5TdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA1PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24veG1sLCBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbUG9zdCgiL3BldCIpXQogICAgVGFzazxQZXQ+IEV4ZWN1dGUoW0JvZHldIFBldCBib2R5KTsKfQoKLy8vIDxzdW1tYXJ5PkZpbmRzIFBldHMgYnkgc3RhdHVzPC9zdW1tYXJ5PgpbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiUmVmaXR0ZXIiLCAiMS4wLjAuMCIpXQpwdWJsaWMgcGFydGlhbCBpbnRlcmZhY2UgSUZpbmRQZXRzQnlTdGF0dXNFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+RmluZHMgUGV0cyBieSBzdGF0dXM8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+TXVsdGlwbGUgc3RhdHVzIHZhbHVlcyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nczwvcmVtYXJrcz4KICAgIC8vLyA8cGFyYW0gbmFtZT0ic3RhdHVzIj5TdGF0dXMgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSBjb25zaWRlcmVkIGZvciBmaWx0ZXI8L3BhcmFtPgogICAgLy8vIDxyZXR1cm5zPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgIC8vLyBUaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGU6CiAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgLy8vIDxsaXN0aGVhZGVyPgogICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgIC8vLyA8aXRlbT4KICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgc3RhdHVzIHZhbHVlPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgW0dldCgiL3BldC9maW5kQnlTdGF0dXMiKV0KICAgIFRhc2s8SUNvbGxlY3Rpb248UGV0Pj4gRXhlY3V0ZShbUXVlcnldIFN0YXR1cz8gc3RhdHVzKTsKfQoKLy8vIDxzdW1tYXJ5PkZpbmRzIFBldHMgYnkgdGFnczwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElGaW5kUGV0c0J5VGFnc0VuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT5GaW5kcyBQZXRzIGJ5IHRhZ3M8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+TXVsdGlwbGUgdGFncyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncy4gVXNlIHRhZzEsIHRhZzIsIHRhZzMgZm9yIHRlc3RpbmcuPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJ0YWdzIj5UYWdzIHRvIGZpbHRlciBieTwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCB0YWcgdmFsdWU8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbR2V0KCIvcGV0L2ZpbmRCeVRhZ3MiKV0KICAgIFRhc2s8SUNvbGxlY3Rpb248UGV0Pj4gRXhlY3V0ZShbUXVlcnkoQ29sbGVjdGlvbkZvcm1hdC5NdWx0aSldIElFbnVtZXJhYmxlPHN0cmluZz4gdGFncyk7Cn0KCi8vLyA8c3VtbWFyeT5GaW5kIHBldCBieSBJRDwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElHZXRQZXRCeUlkRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PkZpbmQgcGV0IGJ5IElEPC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPlJldHVybnMgYSBzaW5nbGUgcGV0PC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJwZXRJZCI+SUQgb2YgcGV0IHRvIHJldHVybjwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBJRCBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+UGV0IG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDwvbGlzdD4KICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24vanNvbiIpXQogICAgW0dldCgiL3BldC97cGV0SWR9IildCiAgICBUYXNrPFBldD4gRXhlY3V0ZShsb25nIHBldElkKTsKfQoKLy8vIDxzdW1tYXJ5PlVwZGF0ZXMgYSBwZXQgaW4gdGhlIHN0b3JlIHdpdGggZm9ybSBkYXRhPC9zdW1tYXJ5PgpbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiUmVmaXR0ZXIiLCAiMS4wLjAuMCIpXQpwdWJsaWMgcGFydGlhbCBpbnRlcmZhY2UgSVVwZGF0ZVBldFdpdGhGb3JtRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PlVwZGF0ZXMgYSBwZXQgaW4gdGhlIHN0b3JlIHdpdGggZm9ybSBkYXRhPC9zdW1tYXJ5PgogICAgLy8vIDxwYXJhbSBuYW1lPSJwZXRJZCI+SUQgb2YgcGV0IHRoYXQgbmVlZHMgdG8gYmUgdXBkYXRlZDwvcGFyYW0+CiAgICAvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPk5hbWUgb2YgcGV0IHRoYXQgbmVlZHMgdG8gYmUgdXBkYXRlZDwvcGFyYW0+CiAgICAvLy8gPHBhcmFtIG5hbWU9InN0YXR1cyI+U3RhdHVzIG9mIHBldCB0aGF0IG5lZWRzIHRvIGJlIHVwZGF0ZWQ8L3BhcmFtPgogICAgLy8vIDxyZXR1cm5zPkEgPHNlZSBjcmVmPSJUYXNrIi8+IHRoYXQgY29tcGxldGVzIHdoZW4gdGhlIHJlcXVlc3QgaXMgZmluaXNoZWQuPC9yZXR1cm5zPgogICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgIC8vLyBUaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGU6CiAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgLy8vIDxsaXN0aGVhZGVyPgogICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgIC8vLyA8aXRlbT4KICAgIC8vLyA8dGVybT40MDU8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgaW5wdXQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbUG9zdCgiL3BldC97cGV0SWR9IildCiAgICBUYXNrIEV4ZWN1dGUobG9uZyBwZXRJZCwgW1F1ZXJ5XSBzdHJpbmcgbmFtZSwgW1F1ZXJ5XSBzdHJpbmcgc3RhdHVzKTsKfQoKLy8vIDxzdW1tYXJ5PkRlbGV0ZXMgYSBwZXQ8L3N1bW1hcnk+CltTeXN0ZW0uQ29kZURvbS5Db21waWxlci5HZW5lcmF0ZWRDb2RlKCJSZWZpdHRlciIsICIxLjAuMC4wIildCnB1YmxpYyBwYXJ0aWFsIGludGVyZmFjZSBJRGVsZXRlUGV0RW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PkRlbGV0ZXMgYSBwZXQ8L3N1bW1hcnk+CiAgICAvLy8gPHBhcmFtIG5hbWU9InBldElkIj5QZXQgaWQgdG8gZGVsZXRlPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHBldCB2YWx1ZTwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDwvbGlzdD4KICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgIFtEZWxldGUoIi9wZXQve3BldElkfSIpXQogICAgVGFzayBFeGVjdXRlKGxvbmcgcGV0SWQsIFtIZWFkZXIoImFwaV9rZXkiKV0gc3RyaW5nIGFwaV9rZXkpOwp9CgovLy8gPHN1bW1hcnk+dXBsb2FkcyBhbiBpbWFnZTwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElVcGxvYWRGaWxlRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PnVwbG9hZHMgYW4gaW1hZ2U8L3N1bW1hcnk+CiAgICAvLy8gPHBhcmFtIG5hbWU9InBldElkIj5JRCBvZiBwZXQgdG8gdXBkYXRlPC9wYXJhbT4KICAgIC8vLyA8cGFyYW0gbmFtZT0iYWRkaXRpb25hbE1ldGFkYXRhIj5BZGRpdGlvbmFsIE1ldGFkYXRhPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz4KICAgIC8vLyBBIDxzZWUgY3JlZj0iVGFzayIvPiByZXByZXNlbnRpbmcgdGhlIDxzZWUgY3JlZj0iSUFwaVJlc3BvbnNlIi8+IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIHJlc3VsdDoKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjIwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9yZXR1cm5zPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgW1Bvc3QoIi9wZXQve3BldElkfS91cGxvYWRJbWFnZSIpXQogICAgVGFzazxBcGlSZXNwb25zZT4gRXhlY3V0ZShsb25nIHBldElkLCBbUXVlcnldIHN0cmluZyBhZGRpdGlvbmFsTWV0YWRhdGEsICBTdHJlYW1QYXJ0IGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+UmV0dXJucyBwZXQgaW52ZW50b3JpZXMgYnkgc3RhdHVzPC9zdW1tYXJ5PgpbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiUmVmaXR0ZXIiLCAiMS4wLjAuMCIpXQpwdWJsaWMgcGFydGlhbCBpbnRlcmZhY2UgSUdldEludmVudG9yeUVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT5SZXR1cm5zIHBldCBpbnZlbnRvcmllcyBieSBzdGF0dXM8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+UmV0dXJucyBhIG1hcCBvZiBzdGF0dXMgY29kZXMgdG8gcXVhbnRpdGllczwvcmVtYXJrcz4KICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlLjwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgW0dldCgiL3N0b3JlL2ludmVudG9yeSIpXQogICAgVGFzazxJRGljdGlvbmFyeTxzdHJpbmcsIGludD4+IEV4ZWN1dGUoKTsKfQoKLy8vIDxzdW1tYXJ5PlBsYWNlIGFuIG9yZGVyIGZvciBhIHBldDwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElQbGFjZU9yZGVyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PlBsYWNlIGFuIG9yZGVyIGZvciBhIHBldDwvc3VtbWFyeT4KICAgIC8vLyA8cmVtYXJrcz5QbGFjZSBhIG5ldyBvcmRlciBpbiB0aGUgc3RvcmU8L3JlbWFya3M+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNTwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBpbnB1dDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDwvbGlzdD4KICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtQb3N0KCIvc3RvcmUvb3JkZXIiKV0KICAgIFRhc2s8T3JkZXI+IEV4ZWN1dGUoW0JvZHldIE9yZGVyIGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+RmluZCBwdXJjaGFzZSBvcmRlciBieSBJRDwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElHZXRPcmRlckJ5SWRFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+RmluZCBwdXJjaGFzZSBvcmRlciBieSBJRDwvc3VtbWFyeT4KICAgIC8vLyA8cmVtYXJrcz5Gb3IgdmFsaWQgcmVzcG9uc2UgdHJ5IGludGVnZXIgSURzIHdpdGggdmFsdWUgPD0gNSBvciA+IDEwLiBPdGhlciB2YWx1ZXMgd2lsbCBnZW5lcmF0ZWQgZXhjZXB0aW9uczwvcmVtYXJrcz4KICAgIC8vLyA8cGFyYW0gbmFtZT0ib3JkZXJJZCI+SUQgb2Ygb3JkZXIgdGhhdCBuZWVkcyB0byBiZSBmZXRjaGVkPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIElEIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5PcmRlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbR2V0KCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICBUYXNrPE9yZGVyPiBFeGVjdXRlKGxvbmcgb3JkZXJJZCk7Cn0KCi8vLyA8c3VtbWFyeT5EZWxldGUgcHVyY2hhc2Ugb3JkZXIgYnkgSUQ8L3N1bW1hcnk+CltTeXN0ZW0uQ29kZURvbS5Db21waWxlci5HZW5lcmF0ZWRDb2RlKCJSZWZpdHRlciIsICIxLjAuMC4wIildCnB1YmxpYyBwYXJ0aWFsIGludGVyZmFjZSBJRGVsZXRlT3JkZXJFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+RGVsZXRlIHB1cmNoYXNlIG9yZGVyIGJ5IElEPC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPkZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8IDEwMDAuIEFueXRoaW5nIGFib3ZlIDEwMDAgb3Igbm9uaW50ZWdlcnMgd2lsbCBnZW5lcmF0ZSBBUEkgZXJyb3JzPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJvcmRlcklkIj5JRCBvZiB0aGUgb3JkZXIgdGhhdCBuZWVkcyB0byBiZSBkZWxldGVkPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIElEIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5PcmRlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbRGVsZXRlKCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICBUYXNrIEV4ZWN1dGUobG9uZyBvcmRlcklkKTsKfQoKLy8vIDxzdW1tYXJ5PkNyZWF0ZSB1c2VyPC9zdW1tYXJ5PgpbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiUmVmaXR0ZXIiLCAiMS4wLjAuMCIpXQpwdWJsaWMgcGFydGlhbCBpbnRlcmZhY2UgSUNyZWF0ZVVzZXJFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+Q3JlYXRlIHVzZXI8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+VGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci48L3JlbWFya3M+CiAgICAvLy8gPHBhcmFtIG5hbWU9ImJvZHkiPkNyZWF0ZWQgdXNlciBvYmplY3Q8L3BhcmFtPgogICAgLy8vIDxyZXR1cm5zPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj5UaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGUuPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uLCBhcHBsaWNhdGlvbi94bWwiKV0KICAgIFtQb3N0KCIvdXNlciIpXQogICAgVGFzayBFeGVjdXRlKFtCb2R5XSBVc2VyIGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+Q3JlYXRlcyBsaXN0IG9mIHVzZXJzIHdpdGggZ2l2ZW4gaW5wdXQgYXJyYXk8L3N1bW1hcnk+CltTeXN0ZW0uQ29kZURvbS5Db21waWxlci5HZW5lcmF0ZWRDb2RlKCJSZWZpdHRlciIsICIxLjAuMC4wIildCnB1YmxpYyBwYXJ0aWFsIGludGVyZmFjZSBJQ3JlYXRlVXNlcnNXaXRoTGlzdElucHV0RW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PkNyZWF0ZXMgbGlzdCBvZiB1c2VycyB3aXRoIGdpdmVuIGlucHV0IGFycmF5PC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPkNyZWF0ZXMgbGlzdCBvZiB1c2VycyB3aXRoIGdpdmVuIGlucHV0IGFycmF5PC9yZW1hcmtzPgogICAgLy8vIDxyZXR1cm5zPlN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj5UaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGUuPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtQb3N0KCIvdXNlci9jcmVhdGVXaXRoTGlzdCIpXQogICAgVGFzazxVc2VyPiBFeGVjdXRlKFtCb2R5XSBJRW51bWVyYWJsZTxVc2VyPiBib2R5KTsKfQoKLy8vIDxzdW1tYXJ5PkxvZ3MgdXNlciBpbnRvIHRoZSBzeXN0ZW08L3N1bW1hcnk+CltTeXN0ZW0uQ29kZURvbS5Db21waWxlci5HZW5lcmF0ZWRDb2RlKCJSZWZpdHRlciIsICIxLjAuMC4wIildCnB1YmxpYyBwYXJ0aWFsIGludGVyZmFjZSBJTG9naW5Vc2VyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PkxvZ3MgdXNlciBpbnRvIHRoZSBzeXN0ZW08L3N1bW1hcnk+CiAgICAvLy8gPHBhcmFtIG5hbWU9InVzZXJuYW1lIj5UaGUgdXNlciBuYW1lIGZvciBsb2dpbjwvcGFyYW0+CiAgICAvLy8gPHBhcmFtIG5hbWU9InBhc3N3b3JkIj5UaGUgcGFzc3dvcmQgZm9yIGxvZ2luIGluIGNsZWFyIHRleHQ8L3BhcmFtPgogICAgLy8vIDxyZXR1cm5zPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgIC8vLyBUaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGU6CiAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgLy8vIDxsaXN0aGVhZGVyPgogICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgIC8vLyA8aXRlbT4KICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgdXNlcm5hbWUvcGFzc3dvcmQgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbR2V0KCIvdXNlci9sb2dpbiIpXQogICAgVGFzazxzdHJpbmc+IEV4ZWN1dGUoW1F1ZXJ5XSBzdHJpbmcgdXNlcm5hbWUsIFtRdWVyeV0gc3RyaW5nIHBhc3N3b3JkKTsKfQoKLy8vIDxzdW1tYXJ5PkxvZ3Mgb3V0IGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgc2Vzc2lvbjwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElMb2dvdXRVc2VyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PkxvZ3Mgb3V0IGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgc2Vzc2lvbjwvc3VtbWFyeT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlLjwvZXhjZXB0aW9uPgogICAgW0dldCgiL3VzZXIvbG9nb3V0IildCiAgICBUYXNrIEV4ZWN1dGUoKTsKfQoKLy8vIDxzdW1tYXJ5PkdldCB1c2VyIGJ5IHVzZXIgbmFtZTwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElHZXRVc2VyQnlOYW1lRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PkdldCB1c2VyIGJ5IHVzZXIgbmFtZTwvc3VtbWFyeT4KICAgIC8vLyA8cGFyYW0gbmFtZT0idXNlcm5hbWUiPlRoZSBuYW1lIHRoYXQgbmVlZHMgdG8gYmUgZmV0Y2hlZC4gVXNlIHVzZXIxIGZvciB0ZXN0aW5nLjwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCB1c2VybmFtZSBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+VXNlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbR2V0KCIvdXNlci97dXNlcm5hbWV9IildCiAgICBUYXNrPFVzZXI+IEV4ZWN1dGUoc3RyaW5nIHVzZXJuYW1lKTsKfQoKLy8vIDxzdW1tYXJ5PlVwZGF0ZSB1c2VyPC9zdW1tYXJ5PgpbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiUmVmaXR0ZXIiLCAiMS4wLjAuMCIpXQpwdWJsaWMgcGFydGlhbCBpbnRlcmZhY2UgSVVwZGF0ZVVzZXJFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+VXBkYXRlIHVzZXI8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+VGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci48L3JlbWFya3M+CiAgICAvLy8gPHBhcmFtIG5hbWU9InVzZXJuYW1lIj5uYW1lIHRoYXQgbmVlZCB0byBiZSBkZWxldGVkPC9wYXJhbT4KICAgIC8vLyA8cGFyYW0gbmFtZT0iYm9keSI+VXBkYXRlIGFuIGV4aXN0ZW50IHVzZXIgaW4gdGhlIHN0b3JlPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlLjwvZXhjZXB0aW9uPgogICAgW1B1dCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgVGFzayBFeGVjdXRlKHN0cmluZyB1c2VybmFtZSwgW0JvZHldIFVzZXIgYm9keSk7Cn0KCi8vLyA8c3VtbWFyeT5EZWxldGUgdXNlcjwvc3VtbWFyeT4KW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIlJlZml0dGVyIiwgIjEuMC4wLjAiKV0KcHVibGljIHBhcnRpYWwgaW50ZXJmYWNlIElEZWxldGVVc2VyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PkRlbGV0ZSB1c2VyPC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPlRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJ1c2VybmFtZSI+VGhlIG5hbWUgdGhhdCBuZWVkcyB0byBiZSBkZWxldGVkPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHVzZXJuYW1lIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5Vc2VyIG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDwvbGlzdD4KICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgIFtEZWxldGUoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgIFRhc2sgRXhlY3V0ZShzdHJpbmcgdXNlcm5hbWUpOwp9CmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgZ2VuZXJhdGVkIG91dHB1dCBmcm9tIHRoZSBbU3dhZ2dlciBQZXRzdG9yZSBleGFtcGxlXShodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvKSBjb25maWd1cmVkIHRvIGdlbmVyYXRlIGFuIGludGVyZmFjZSB3aXRoIGR5bmFtaWMgcXVlcnlzdHJpbmcgcGFyZW1ldGVycwoKKipDTEkgVG9vbCoqCgpgYGBiYXNoCiQgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1uYW1lc3BhY2UgIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIiAtLXVzZS1keW5hbWljLXF1ZXJ5c3RyaW5nLXBhcmFtZXRlcnMKYGBgCgoqKk91dHB1dCoqCgpgYGBjcwpbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiUmVmaXR0ZXIiLCAiMS4wLjAuMCIpXQpwdWJsaWMgcGFydGlhbCBpbnRlcmZhY2UgSVN3YWdnZXJQZXRzdG9yZU9wZW5BUEkzMAp7CiAgICAvLy8gPHN1bW1hcnk+VXBkYXRlIGFuIGV4aXN0aW5nIHBldDwvc3VtbWFyeT4KICAgIC8vLyA8cmVtYXJrcz5VcGRhdGUgYW4gZXhpc3RpbmcgcGV0IGJ5IElkPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJib2R5Ij5VcGRhdGUgYW4gZXhpc3RlbnQgcGV0IGluIHRoZSBzdG9yZTwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+U3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBJRCBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+UGV0IG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNTwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+VmFsaWRhdGlvbiBleGNlcHRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtQdXQoIi9wZXQiKV0KICAgIFRhc2s8UGV0PiBVcGRhdGVQZXQoW0JvZHldIFBldCBib2R5KTsKCiAgICAvLy8gPHN1bW1hcnk+QWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmU8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+QWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmU8L3JlbWFya3M+CiAgICAvLy8gPHBhcmFtIG5hbWU9ImJvZHkiPkNyZWF0ZSBhIG5ldyBwZXQgaW4gdGhlIHN0b3JlPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5TdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA1PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24veG1sLCBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbUG9zdCgiL3BldCIpXQogICAgVGFzazxQZXQ+IEFkZFBldChbQm9keV0gUGV0IGJvZHkpOwoKICAgIC8vLyA8c3VtbWFyeT5GaW5kcyBQZXRzIGJ5IHN0YXR1czwvc3VtbWFyeT4KICAgIC8vLyA8cmVtYXJrcz5NdWx0aXBsZSBzdGF0dXMgdmFsdWVzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJzdGF0dXMiPlN0YXR1cyB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGZpbHRlcjwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBzdGF0dXMgdmFsdWU8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtHZXQoIi9wZXQvZmluZEJ5U3RhdHVzIildCiAgICBUYXNrPElDb2xsZWN0aW9uPFBldD4+IEZpbmRQZXRzQnlTdGF0dXMoW1F1ZXJ5XSBTdGF0dXM/IHN0YXR1cyk7CgogICAgLy8vIDxzdW1tYXJ5PkZpbmRzIFBldHMgYnkgdGFnczwvc3VtbWFyeT4KICAgIC8vLyA8cmVtYXJrcz5NdWx0aXBsZSB0YWdzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzLiBVc2UgdGFnMSwgdGFnMiwgdGFnMyBmb3IgdGVzdGluZy48L3JlbWFya3M+CiAgICAvLy8gPHBhcmFtIG5hbWU9InRhZ3MiPlRhZ3MgdG8gZmlsdGVyIGJ5PC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHRhZyB2YWx1ZTwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDwvbGlzdD4KICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24vanNvbiIpXQogICAgW0dldCgiL3BldC9maW5kQnlUYWdzIildCiAgICBUYXNrPElDb2xsZWN0aW9uPFBldD4+IEZpbmRQZXRzQnlUYWdzKFtRdWVyeShDb2xsZWN0aW9uRm9ybWF0Lk11bHRpKV0gSUVudW1lcmFibGU8c3RyaW5nPiB0YWdzKTsKCiAgICAvLy8gPHN1bW1hcnk+RmluZCBwZXQgYnkgSUQ8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+UmV0dXJucyBhIHNpbmdsZSBwZXQ8L3JlbWFya3M+CiAgICAvLy8gPHBhcmFtIG5hbWU9InBldElkIj5JRCBvZiBwZXQgdG8gcmV0dXJuPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIElEIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5QZXQgbm90IGZvdW5kPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24veG1sLCBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbR2V0KCIvcGV0L3twZXRJZH0iKV0KICAgIFRhc2s8UGV0PiBHZXRQZXRCeUlkKGxvbmcgcGV0SWQpOwoKICAgIC8vLyA8c3VtbWFyeT5VcGRhdGVzIGEgcGV0IGluIHRoZSBzdG9yZSB3aXRoIGZvcm0gZGF0YTwvc3VtbWFyeT4KICAgIC8vLyA8cGFyYW0gbmFtZT0icGV0SWQiPklEIG9mIHBldCB0aGF0IG5lZWRzIHRvIGJlIHVwZGF0ZWQ8L3BhcmFtPgogICAgLy8vIDxwYXJhbSBuYW1lPSJxdWVyeVBhcmFtcyI+VGhlIGR5bmFtaWMgcXVlcnlzdHJpbmcgcGFyYW1ldGVyIHdyYXBwaW5nIGFsbCBvdGhlcnMuPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA1PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvZXhjZXB0aW9uPgogICAgW1Bvc3QoIi9wZXQve3BldElkfSIpXQogICAgVGFzayBVcGRhdGVQZXRXaXRoRm9ybShsb25nIHBldElkLCBbUXVlcnldIFVwZGF0ZVBldFdpdGhGb3JtUXVlcnlQYXJhbXMgcXVlcnlQYXJhbXMpOwoKICAgIC8vLyA8c3VtbWFyeT5EZWxldGVzIGEgcGV0PC9zdW1tYXJ5PgogICAgLy8vIDxwYXJhbSBuYW1lPSJwZXRJZCI+UGV0IGlkIHRvIGRlbGV0ZTwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+QSA8c2VlIGNyZWY9IlRhc2siLz4gdGhhdCBjb21wbGV0ZXMgd2hlbiB0aGUgcmVxdWVzdCBpcyBmaW5pc2hlZC48L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBwZXQgdmFsdWU8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbRGVsZXRlKCIvcGV0L3twZXRJZH0iKV0KICAgIFRhc2sgRGVsZXRlUGV0KGxvbmcgcGV0SWQsIFtIZWFkZXIoImFwaV9rZXkiKV0gc3RyaW5nIGFwaV9rZXkpOwoKICAgIC8vLyA8c3VtbWFyeT51cGxvYWRzIGFuIGltYWdlPC9zdW1tYXJ5PgogICAgLy8vIDxwYXJhbSBuYW1lPSJwZXRJZCI+SUQgb2YgcGV0IHRvIHVwZGF0ZTwvcGFyYW0+CiAgICAvLy8gPHBhcmFtIG5hbWU9ImFkZGl0aW9uYWxNZXRhZGF0YSI+QWRkaXRpb25hbCBNZXRhZGF0YTwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+CiAgICAvLy8gQSA8c2VlIGNyZWY9IlRhc2siLz4gcmVwcmVzZW50aW5nIHRoZSA8c2VlIGNyZWY9IklBcGlSZXNwb25zZSIvPiBpbnN0YW5jZSBjb250YWluaW5nIHRoZSByZXN1bHQ6CiAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgLy8vIDxsaXN0aGVhZGVyPgogICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgIC8vLyA8aXRlbT4KICAgIC8vLyA8dGVybT4yMDA8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvcmV0dXJucz4KICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtQb3N0KCIvcGV0L3twZXRJZH0vdXBsb2FkSW1hZ2UiKV0KICAgIFRhc2s8QXBpUmVzcG9uc2U+IFVwbG9hZEZpbGUobG9uZyBwZXRJZCwgW1F1ZXJ5XSBzdHJpbmcgYWRkaXRpb25hbE1ldGFkYXRhLCAgU3RyZWFtUGFydCBib2R5KTsKCiAgICAvLy8gPHN1bW1hcnk+UmV0dXJucyBwZXQgaW52ZW50b3JpZXMgYnkgc3RhdHVzPC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPlJldHVybnMgYSBtYXAgb2Ygc3RhdHVzIGNvZGVzIHRvIHF1YW50aXRpZXM8L3JlbWFya3M+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPlRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZS48L2V4Y2VwdGlvbj4KICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtHZXQoIi9zdG9yZS9pbnZlbnRvcnkiKV0KICAgIFRhc2s8SURpY3Rpb25hcnk8c3RyaW5nLCBpbnQ+PiBHZXRJbnZlbnRvcnkoKTsKCiAgICAvLy8gPHN1bW1hcnk+UGxhY2UgYW4gb3JkZXIgZm9yIGEgcGV0PC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPlBsYWNlIGEgbmV3IG9yZGVyIGluIHRoZSBzdG9yZTwvcmVtYXJrcz4KICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA1PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIGlucHV0PC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXQogICAgW1Bvc3QoIi9zdG9yZS9vcmRlciIpXQogICAgVGFzazxPcmRlcj4gUGxhY2VPcmRlcihbQm9keV0gT3JkZXIgYm9keSk7CgogICAgLy8vIDxzdW1tYXJ5PkZpbmQgcHVyY2hhc2Ugb3JkZXIgYnkgSUQ8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+Rm9yIHZhbGlkIHJlc3BvbnNlIHRyeSBpbnRlZ2VyIElEcyB3aXRoIHZhbHVlIDw9IDUgb3IgPiAxMC4gT3RoZXIgdmFsdWVzIHdpbGwgZ2VuZXJhdGUgZXhjZXB0aW9ucy48L3JlbWFya3M+CiAgICAvLy8gPHBhcmFtIG5hbWU9Im9yZGVySWQiPklEIG9mIG9yZGVyIHRoYXQgbmVlZHMgdG8gYmUgZmV0Y2hlZDwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCBJRCBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+T3JkZXIgbm90IGZvdW5kPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPC9saXN0PgogICAgLy8vIDwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24veG1sLCBhcHBsaWNhdGlvbi9qc29uIildCiAgICBbR2V0KCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICBUYXNrPE9yZGVyPiBHZXRPcmRlckJ5SWQobG9uZyBvcmRlcklkKTsKCiAgICAvLy8gPHN1bW1hcnk+RGVsZXRlIHB1cmNoYXNlIG9yZGVyIGJ5IElEPC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPkZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8IDEwMDAuIEFueXRoaW5nIGFib3ZlIDEwMDAgb3Igbm9uaW50ZWdlcnMgd2lsbCBnZW5lcmF0ZSBBUEkgZXJyb3JzPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJvcmRlcklkIj5JRCBvZiB0aGUgb3JkZXIgdGhhdCBuZWVkcyB0byBiZSBkZWxldGVkPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIElEIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5PcmRlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbRGVsZXRlKCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICBUYXNrIERlbGV0ZU9yZGVyKGxvbmcgb3JkZXJJZCk7CgogICAgLy8vIDxzdW1tYXJ5PkNyZWF0ZSB1c2VyPC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPlRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJib2R5Ij5DcmVhdGVkIHVzZXIgb2JqZWN0PC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlLjwvZXhjZXB0aW9uPgogICAgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiwgYXBwbGljYXRpb24veG1sIildCiAgICBbUG9zdCgiL3VzZXIiKV0KICAgIFRhc2sgQ3JlYXRlVXNlcihbQm9keV0gVXNlciBib2R5KTsKCiAgICAvLy8gPHN1bW1hcnk+Q3JlYXRlcyBsaXN0IG9mIHVzZXJzIHdpdGggZ2l2ZW4gaW5wdXQgYXJyYXk8L3N1bW1hcnk+CiAgICAvLy8gPHJlbWFya3M+Q3JlYXRlcyBsaXN0IG9mIHVzZXJzIHdpdGggZ2l2ZW4gaW5wdXQgYXJyYXk8L3JlbWFya3M+CiAgICAvLy8gPHJldHVybnM+U3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPlRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZS48L2V4Y2VwdGlvbj4KICAgIFtIZWFkZXJzKCJBY2NlcHQ6IGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24vanNvbiIpXQogICAgW1Bvc3QoIi91c2VyL2NyZWF0ZVdpdGhMaXN0IildCiAgICBUYXNrPFVzZXI+IENyZWF0ZVVzZXJzV2l0aExpc3RJbnB1dChbQm9keV0gSUVudW1lcmFibGU8VXNlcj4gYm9keSk7CgogICAgLy8vIDxzdW1tYXJ5PkxvZ3MgdXNlciBpbnRvIHRoZSBzeXN0ZW08L3N1bW1hcnk+CiAgICAvLy8gPHBhcmFtIG5hbWU9InF1ZXJ5UGFyYW1zIj5UaGUgZHluYW1pYyBxdWVyeXN0cmluZyBwYXJhbWV0ZXIgd3JhcHBpbmcgYWxsIG90aGVycy48L3BhcmFtPgogICAgLy8vIDxyZXR1cm5zPnN1Y2Nlc3NmdWwgb3BlcmF0aW9uPC9yZXR1cm5zPgogICAgLy8vIDxleGNlcHRpb24gY3JlZj0iQXBpRXhjZXB0aW9uIj4KICAgIC8vLyBUaHJvd24gd2hlbiB0aGUgcmVxdWVzdCByZXR1cm5zIGEgbm9uLXN1Y2Nlc3Mgc3RhdHVzIGNvZGU6CiAgICAvLy8gPGxpc3QgdHlwZT0idGFibGUiPgogICAgLy8vIDxsaXN0aGVhZGVyPgogICAgLy8vIDx0ZXJtPlN0YXR1czwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+RGVzY3JpcHRpb248L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvbGlzdGhlYWRlcj4KICAgIC8vLyA8aXRlbT4KICAgIC8vLyA8dGVybT40MDA8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkludmFsaWQgdXNlcm5hbWUvcGFzc3dvcmQgc3VwcGxpZWQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtHZXQoIi91c2VyL2xvZ2luIildCiAgICBUYXNrPHN0cmluZz4gTG9naW5Vc2VyKFtRdWVyeV0gTG9naW5Vc2VyUXVlcnlQYXJhbXMgcXVlcnlQYXJhbXMpOwoKICAgIC8vLyA8c3VtbWFyeT5Mb2dzIG91dCBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyIHNlc3Npb248L3N1bW1hcnk+CiAgICAvLy8gPHJldHVybnM+QSA8c2VlIGNyZWY9IlRhc2siLz4gdGhhdCBjb21wbGV0ZXMgd2hlbiB0aGUgcmVxdWVzdCBpcyBmaW5pc2hlZC48L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPlRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZS48L2V4Y2VwdGlvbj4KICAgIFtHZXQoIi91c2VyL2xvZ291dCIpXQogICAgVGFzayBMb2dvdXRVc2VyKCk7CgogICAgLy8vIDxzdW1tYXJ5PkdldCB1c2VyIGJ5IHVzZXIgbmFtZTwvc3VtbWFyeT4KICAgIC8vLyA8cGFyYW0gbmFtZT0idXNlcm5hbWUiPlRoZSBuYW1lIHRoYXQgbmVlZHMgdG8gYmUgZmV0Y2hlZC4gVXNlIHVzZXIxIGZvciB0ZXN0aW5nLjwvcGFyYW0+CiAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAvLy8gPGV4Y2VwdGlvbiBjcmVmPSJBcGlFeGNlcHRpb24iPgogICAgLy8vIFRocm93biB3aGVuIHRoZSByZXF1ZXN0IHJldHVybnMgYSBub24tc3VjY2VzcyBzdGF0dXMgY29kZToKICAgIC8vLyA8bGlzdCB0eXBlPSJ0YWJsZSI+CiAgICAvLy8gPGxpc3RoZWFkZXI+CiAgICAvLy8gPHRlcm0+U3RhdHVzPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5EZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9saXN0aGVhZGVyPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwMDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+SW52YWxpZCB1c2VybmFtZSBzdXBwbGllZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDxpdGVtPgogICAgLy8vIDx0ZXJtPjQwNDwvdGVybT4KICAgIC8vLyA8ZGVzY3JpcHRpb24+VXNlciBub3QgZm91bmQ8L2Rlc2NyaXB0aW9uPgogICAgLy8vIDwvaXRlbT4KICAgIC8vLyA8L2xpc3Q+CiAgICAvLy8gPC9leGNlcHRpb24+CiAgICBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24iKV0KICAgIFtHZXQoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgIFRhc2s8VXNlcj4gR2V0VXNlckJ5TmFtZShzdHJpbmcgdXNlcm5hbWUpOwoKICAgIC8vLyA8c3VtbWFyeT5VcGRhdGUgdXNlcjwvc3VtbWFyeT4KICAgIC8vLyA8cmVtYXJrcz5UaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLjwvcmVtYXJrcz4KICAgIC8vLyA8cGFyYW0gbmFtZT0idXNlcm5hbWUiPm5hbWUgdGhhdCBuZWVkcyB0byBiZSB1cGRhdGVkPC9wYXJhbT4KICAgIC8vLyA8cGFyYW0gbmFtZT0iYm9keSI+VXBkYXRlIGFuIGV4aXN0ZW50IHVzZXIgaW4gdGhlIHN0b3JlPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+VGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlLjwvZXhjZXB0aW9uPgogICAgW1B1dCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgVGFzayBVcGRhdGVVc2VyKHN0cmluZyB1c2VybmFtZSwgW0JvZHldIFVzZXIgYm9keSk7CgogICAgLy8vIDxzdW1tYXJ5PkRlbGV0ZSB1c2VyPC9zdW1tYXJ5PgogICAgLy8vIDxyZW1hcmtzPlRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuPC9yZW1hcmtzPgogICAgLy8vIDxwYXJhbSBuYW1lPSJ1c2VybmFtZSI+VGhlIG5hbWUgdGhhdCBuZWVkcyB0byBiZSBkZWxldGVkPC9wYXJhbT4KICAgIC8vLyA8cmV0dXJucz5BIDxzZWUgY3JlZj0iVGFzayIvPiB0aGF0IGNvbXBsZXRlcyB3aGVuIHRoZSByZXF1ZXN0IGlzIGZpbmlzaGVkLjwvcmV0dXJucz4KICAgIC8vLyA8ZXhjZXB0aW9uIGNyZWY9IkFwaUV4Y2VwdGlvbiI+CiAgICAvLy8gVGhyb3duIHdoZW4gdGhlIHJlcXVlc3QgcmV0dXJucyBhIG5vbi1zdWNjZXNzIHN0YXR1cyBjb2RlOgogICAgLy8vIDxsaXN0IHR5cGU9InRhYmxlIj4KICAgIC8vLyA8bGlzdGhlYWRlcj4KICAgIC8vLyA8dGVybT5TdGF0dXM8L3Rlcm0+CiAgICAvLy8gPGRlc2NyaXB0aW9uPkRlc2NyaXB0aW9uPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2xpc3RoZWFkZXI+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDAwPC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5JbnZhbGlkIHVzZXJuYW1lIHN1cHBsaWVkPC9kZXNjcmlwdGlvbj4KICAgIC8vLyA8L2l0ZW0+CiAgICAvLy8gPGl0ZW0+CiAgICAvLy8gPHRlcm0+NDA0PC90ZXJtPgogICAgLy8vIDxkZXNjcmlwdGlvbj5Vc2VyIG5vdCBmb3VuZDwvZGVzY3JpcHRpb24+CiAgICAvLy8gPC9pdGVtPgogICAgLy8vIDwvbGlzdD4KICAgIC8vLyA8L2V4Y2VwdGlvbj4KICAgIFtEZWxldGUoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgIFRhc2sgRGVsZXRlVXNlcihzdHJpbmcgdXNlcm5hbWUpOwoKCn0gICAgCgpwdWJsaWMgY2xhc3MgVXBkYXRlUGV0V2l0aEZvcm1RdWVyeVBhcmFtcwp7CiAgICAgICAgCiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gTmFtZSBvZiBwZXQgdGhhdCBuZWVkcyB0byBiZSB1cGRhdGVkCiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW1F1ZXJ5XSAKICAgIHB1YmxpYyBzdHJpbmcgTmFtZSB7IGdldDsgc2V0OyB9CgogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFN0YXR1cyBvZiBwZXQgdGhhdCBuZWVkcyB0byBiZSB1cGRhdGVkCiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW1F1ZXJ5XSAKICAgIHB1YmxpYyBzdHJpbmcgU3RhdHVzIHsgZ2V0OyBzZXQ7IH0KCn0KCnB1YmxpYyBjbGFzcyBMb2dpblVzZXJRdWVyeVBhcmFtcwp7CiAgICAgICAgCiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gVGhlIHVzZXIgbmFtZSBmb3IgbG9naW4KICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbUXVlcnldIAogICAgcHVibGljIHN0cmluZyBVc2VybmFtZSB7IGdldDsgc2V0OyB9CgogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFRoZSBwYXNzd29yZCBmb3IgbG9naW4gaW4gY2xlYXIgdGV4dAogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtRdWVyeV0gCiAgICBwdWJsaWMgc3RyaW5nIFBhc3N3b3JkIHsgZ2V0OyBzZXQ7IH0KCn0KYGBgCgojIyBSZXN0U2VydmljZQoKSGVyZSdzIGFuIGV4YW1wbGUgdXNhZ2Ugb2YgdGhlIGdlbmVyYXRlZCBjb2RlIGFib3ZlCgpgYGBjcwp1c2luZyBSZWZpdDsKdXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKbmFtZXNwYWNlIFlvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlOwoKaW50ZXJuYWwgY2xhc3MgUHJvZ3JhbQp7CiAgICBwcml2YXRlIHN0YXRpYyBhc3luYyBUYXNrIE1haW4oc3RyaW5nW10gYXJncykKICAgIHsKICAgICAgICB2YXIgY2xpZW50ID0gUmVzdFNlcnZpY2UuRm9yPElTd2FnZ2VyUGV0c3RvcmU+KCJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92MyIpOwogICAgICAgIHZhciBwZXQgPSBhd2FpdCBjbGllbnQuR2V0UGV0QnlJZCgxKTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIiMjIFVzaW5nIFRhc2s8VD4gYXMgcmV0dXJuIHR5cGUgIyMiKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIk5hbWU6IHtwZXQuTmFtZX0iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIkNhdGVnb3J5OiB7cGV0LkNhdGVnb3J5Lk5hbWV9Iik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJTdGF0dXM6IHtwZXQuU3RhdHVzfSIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CgogICAgICAgIHZhciBjbGllbnQyID0gUmVzdFNlcnZpY2UuRm9yPFdpdGhBcGlSZXNwb25zZS5JU3dhZ2dlclBldHN0b3JlPigiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQyLkdldFBldEJ5SWQoMik7CgogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCIjIyBVc2luZyBUYXNrPElBcGlSZXNwb25zZTxUPj4gYXMgcmV0dXJuIHR5cGUgIyMiKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIkhUVFAgU3RhdHVzIENvZGU6IHtyZXNwb25zZS5TdGF0dXNDb2RlfSIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiTmFtZToge3Jlc3BvbnNlLkNvbnRlbnQuTmFtZX0iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIkNhdGVnb3J5OiB7cmVzcG9uc2UuQ29udGVudC5DYXRlZ29yeS5OYW1lfSIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiU3RhdHVzOiB7cmVzcG9uc2UuQ29udGVudC5TdGF0dXN9Iik7CiAgICB9Cn0KYGBgCgpUaGUgYFJlc3RTZXJ2aWNlYCBjbGFzcyBnZW5lcmF0ZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYElTd2FnZ2VyUGV0c3RvcmVgIHRoYXQgdXNlcyBgSHR0cENsaWVudGAgdG8gbWFrZSBpdHMgY2FsbHMuIAoKVGhlIGNvZGUgYWJvdmUgd2hlbiBydW4gd2lsbCBvdXRwdXQgc29tZXRoaW5nIGxpa2UgdGhpczoKCmBgYAojIyBVc2luZyBUYXNrPFQ+IGFzIHJldHVybiB0eXBlICMjCk5hbWU6IEdhdGl0b3RvdG90bwpDYXRlZ29yeTogQ2hhdWNpdG8KU3RhdHVzOiBTb2xkCgojIyBVc2luZyBUYXNrPElBcGlSZXNwb25zZTxUPj4gYXMgcmV0dXJuIHR5cGUgIyMKSFRUUCBTdGF0dXMgQ29kZTogT0sKTmFtZTogR2F0aXRvdG90b3RvCkNhdGVnb3J5OiBDaGF1Y2l0bwpTdGF0dXM6IFNvbGQKYGBgCgojIyBBU1AuTkVUIENvcmUgYW5kIEh0dHBDbGllbnRGYWN0b3J5CgpIZXJlJ3MgYW4gZXhhbXBsZSBNaW5pbWFsIEFQSSB3aXRoIHRoZSBbYFJlZml0Lkh0dHBDbGllbnRGYWN0b3J5YF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL1JlZml0Lkh0dHBDbGllbnRGYWN0b3J5KSBsaWJyYXJ5OgoKYGBgY3MKdXNpbmcgUmVmaXQ7CnVzaW5nIFlvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlOwoKdmFyIGJ1aWxkZXIgPSBXZWJBcHBsaWNhdGlvbi5DcmVhdGVCdWlsZGVyKGFyZ3MpOwpidWlsZGVyLlNlcnZpY2VzLkFkZEVuZHBvaW50c0FwaUV4cGxvcmVyKCk7CmJ1aWxkZXIuU2VydmljZXMuQWRkU3dhZ2dlckdlbigpOwpidWlsZGVyLlNlcnZpY2VzCiAgICAuQWRkUmVmaXRDbGllbnQ8SVN3YWdnZXJQZXRzdG9yZT4oKQogICAgLkNvbmZpZ3VyZUh0dHBDbGllbnQoYyA9PiBjLkJhc2VBZGRyZXNzID0gbmV3IFVyaSgiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiKSk7Cgp2YXIgYXBwID0gYnVpbGRlci5CdWlsZCgpOwphcHAuTWFwR2V0KAogICAgICAgICIvcGV0L3tpZDpsb25nfSIsCiAgICAgICAgYXN5bmMgKElTd2FnZ2VyUGV0c3RvcmUgcGV0c3RvcmUsIGxvbmcgaWQpID0+CiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdHMuT2soYXdhaXQgcGV0c3RvcmUuR2V0UGV0QnlJZChpZCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChSZWZpdC5BcGlFeGNlcHRpb24gZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdHMuU3RhdHVzQ29kZSgoaW50KWUuU3RhdHVzQ29kZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgLldpdGhOYW1lKCJHZXRQZXRCeUlkIikKICAgIC5XaXRoT3BlbkFwaSgpOwoKYXBwLlVzZUh0dHBzUmVkaXJlY3Rpb24oKTsKYXBwLlVzZVN3YWdnZXJVSSgpOwphcHAuVXNlU3dhZ2dlcigpOwphcHAuUnVuKCk7CmBgYAoKCi5ORVQgQ29yZSBzdXBwb3J0cyByZWdpc3RlcmluZyB0aGUgZ2VuZXJhdGVkIGBJU3dhZ2dlclBldHN0b3JlYCBpbnRlcmZhY2UgdmlhIGBIdHRwQ2xpZW50RmFjdG9yeWAKClRoZSBmb2xsb3dpbmcgcmVxdWVzdCB0byB0aGUgQVBJIGFib3ZlCmBgYHNoZWxsCiQgY3VybCAtWCAnR0VUJyAnaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9wZXQvMScgLUggJ2FjY2VwdDogYXBwbGljYXRpb24vanNvbicKYGBgCgpSZXR1cm5zIGEgcmVzcG9uc2UgdGhhdCBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGlzOgpgYGBqc29uCnsKICAiaWQiOiAxLAogICJuYW1lIjogIlNwZWNpYWxfY2hhcl9vd25lcl8hQCMkXiYoKWAudGVzdGluZyIsCiAgInBob3RvVXJscyI6IFsKICAgICJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL3Jlc291cmNlcy9waG90b3MvNjIzMzg5MDk1LmpwZyIKICBdLAogICJ0YWdzIjogW10sCiAgInN0YXR1cyI6ICJTb2xkIgp9CmBgYAoKIyMgRGVwZW5kZW5jeSBJbmplY3Rpb24KClJlZml0dGVyIHN1cHBvcnRzIGdlbmVyYXRpbmcgYm9vdHN0cmFwcGluZyBjb2RlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGNvbnZlbmllbnRseSBjb25maWd1cmUgYWxsIGdlbmVyYXRlZCBSZWZpdCBpbnRlcmZhY2VzIGJ5IGNhbGxpbmcgYSBzaW5nbGUgZXh0ZW5zaW9uIG1ldGhvZCB0byBgSVNlcnZpY2VDb2xsZWN0aW9uYC4KClRoaXMgaXMgZW5hYmxlZCB0aHJvdWdoIHRoZSBgLnJlZml0dGVyYCBzZXR0aW5ncyBmaWxlIGxpa2UgdGhpczoKCmBgYGpzb24KewogICJvcGVuQXBpUGF0aCI6ICIuLi9PcGVuQVBJL3YzLjAvcGV0c3RvcmUuanNvbiIsCiAgIm5hbWVzcGFjZSI6ICJQZXRzdG9yZSIsCiAgImRlcGVuZGVuY3lJbmplY3Rpb25TZXR0aW5ncyI6IHsKICAgICJiYXNlVXJsIjogImh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzIiwKICAgICJodHRwTWVzc2FnZUhhbmRsZXJzIjogWyAiVGVsZW1ldHJ5RGVsZWdhdGluZ0hhbmRsZXIiIF0sCiAgICAidHJhbnNpZW50RXJyb3JIYW5kbGVyIjogIlBvbGx5IiwKICAgICJtYXhSZXRyeUNvdW50IjogMywKICAgICJmaXJzdEJhY2tvZmZSZXRyeUluU2Vjb25kcyI6IDAuNQogIH0KfQpgYGAKCndoaWNoIHdpbGwgZ2VuZXJhdGUgYW4gZXh0ZW5zaW9uIG1ldGhvZCB0byBgSVNlcnZpY2VDb2xsZWN0aW9uYCBjYWxsZWQgYENvbmZpZ3VyZVJlZml0Q2xpZW50cygpYC4gVGhlIGdlbmVyYXRlZCBleHRlbnNpb24gbWV0aG9kIGRlcGVuZHMgb24gW2BSZWZpdC5IdHRwQ2xpZW50RmFjdG9yeWBdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZWZpdC5IdHRwQ2xpZW50RmFjdG9yeSkgbGlicmFyeSBhbmQgbG9va3MgbGlrZSB0aGlzOgoKYGBgY3MKcHVibGljIHN0YXRpYyBJU2VydmljZUNvbGxlY3Rpb24gQ29uZmlndXJlUmVmaXRDbGllbnRzKAogICAgdGhpcyBJU2VydmljZUNvbGxlY3Rpb24gc2VydmljZXMsIAogICAgQWN0aW9uPElIdHRwQ2xpZW50QnVpbGRlcj4/IGJ1aWxkZXIgPSBkZWZhdWx0LCAKICAgIFJlZml0U2V0dGluZ3M/IHNldHRpbmdzID0gZGVmYXVsdCkKewogICAgdmFyIGNsaWVudEJ1aWxkZXJJU3dhZ2dlclBldHN0b3JlID0gc2VydmljZXMKICAgICAgICAuQWRkUmVmaXRDbGllbnQ8SVN3YWdnZXJQZXRzdG9yZT4oc2V0dGluZ3MpCiAgICAgICAgLkNvbmZpZ3VyZUh0dHBDbGllbnQoYyA9PiBjLkJhc2VBZGRyZXNzID0gbmV3IFVyaSgiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiKSkKICAgICAgICAuQWRkSHR0cE1lc3NhZ2VIYW5kbGVyPFRlbGVtZXRyeURlbGVnYXRpbmdIYW5kbGVyPigpOwoKICAgIGNsaWVudEJ1aWxkZXJJU3dhZ2dlclBldHN0b3JlCiAgICAgICAgLkFkZFBvbGljeUhhbmRsZXIoCiAgICAgICAgICAgIEh0dHBQb2xpY3lFeHRlbnNpb25zCiAgICAgICAgICAgICAgICAuSGFuZGxlVHJhbnNpZW50SHR0cEVycm9yKCkKICAgICAgICAgICAgICAgIC5XYWl0QW5kUmV0cnlBc3luYygKICAgICAgICAgICAgICAgICAgICBCYWNrb2ZmLkRlY29ycmVsYXRlZEppdHRlckJhY2tvZmZWMigKICAgICAgICAgICAgICAgICAgICAgICAgVGltZVNwYW4uRnJvbVNlY29uZHMoMC41KSwKICAgICAgICAgICAgICAgICAgICAgICAgMykpKTsKCiAgICBidWlsZGVyPy5JbnZva2UoY2xpZW50QnVpbGRlcklTd2FnZ2VyUGV0c3RvcmUpOwoKICAgIHJldHVybiBzZXJ2aWNlczsKfQpgYGAKClRoaXMgY29tZXMgaW4gaGFuZHkgZXNwZWNpYWxseSB3aGVuIGdlbmVyYXRpbmcgbXVsdGlwbGUgaW50ZXJmYWNlcywgYnkgdGFnIG9yIGVuZHBvaW50LiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBgLnJlZml0dGVyYCBzZXR0aW5ncyBmaWxlCgpgYGBqc29uCnsKICAib3BlbkFwaVBhdGgiOiAiLi4vT3BlbkFQSS92My4wL3BldHN0b3JlLmpzb24iLAogICJuYW1lc3BhY2UiOiAiUGV0c3RvcmUiLAogICJtdWx0aXBsZUludGVyZmFjZXMiOiAiQnlUYWciLAogICJkZXBlbmRlbmN5SW5qZWN0aW9uU2V0dGluZ3MiOiB7CiAgICAiYmFzZVVybCI6ICJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92MyIsCiAgICAiaHR0cE1lc3NhZ2VIYW5kbGVycyI6IFsgIlRlbGVtZXRyeURlbGVnYXRpbmdIYW5kbGVyIiBdLAogICAgInRyYW5zaWVudEVycm9ySGFuZGxlciI6ICJQb2xseSIsCiAgICAibWF4UmV0cnlDb3VudCI6IDMsCiAgICAiZmlyc3RCYWNrb2ZmUmV0cnlJblNlY29uZHMiOiAwLjUKICB9Cn0KYGBgCgpXaWxsIGdlbmVyYXRlIGEgc2luZ2xlIGBDb25maWd1cmVSZWZpdENsaWVudHMoKWAgZXh0ZW5zaW9uIG1ldGhvZHMgdGhhdCBtYXkgY29udGFpbiBkZXBlbmRlbmN5IGluamVjdGlvbiBjb25maWd1cmF0aW9uIGNvZGUgZm9yIG11bHRpcGxlIGludGVyZmFjZXMgbGlrZSB0aGlzCgpgYGBjc2hhcnAKcHVibGljIHN0YXRpYyBJU2VydmljZUNvbGxlY3Rpb24gQ29uZmlndXJlUmVmaXRDbGllbnRzKAogICAgdGhpcyBJU2VydmljZUNvbGxlY3Rpb24gc2VydmljZXMsIAogICAgQWN0aW9uPElIdHRwQ2xpZW50QnVpbGRlcj4/IGJ1aWxkZXIgPSBkZWZhdWx0LCAKICAgIFJlZml0U2V0dGluZ3M/IHNldHRpbmdzID0gZGVmYXVsdCkKewogICAgdmFyIGNsaWVudEJ1aWxkZXJJUGV0QXBpID0gc2VydmljZXMKICAgICAgICAuQWRkUmVmaXRDbGllbnQ8SVBldEFwaT4oc2V0dGluZ3MpCiAgICAgICAgLkNvbmZpZ3VyZUh0dHBDbGllbnQoYyA9PiBjLkJhc2VBZGRyZXNzID0gbmV3IFVyaSgiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiKSkKICAgICAgICAuQWRkSHR0cE1lc3NhZ2VIYW5kbGVyPFRlbGVtZXRyeURlbGVnYXRpbmdIYW5kbGVyPigpOwoKICAgIGNsaWVudEJ1aWxkZXJJUGV0QXBpCiAgICAgICAgLkFkZFBvbGljeUhhbmRsZXIoCiAgICAgICAgICAgIEh0dHBQb2xpY3lFeHRlbnNpb25zCiAgICAgICAgICAgICAgICAuSGFuZGxlVHJhbnNpZW50SHR0cEVycm9yKCkKICAgICAgICAgICAgICAgIC5XYWl0QW5kUmV0cnlBc3luYygKICAgICAgICAgICAgICAgICAgICBCYWNrb2ZmLkRlY29ycmVsYXRlZEppdHRlckJhY2tvZmZWMigKICAgICAgICAgICAgICAgICAgICAgICAgVGltZVNwYW4uRnJvbVNlY29uZHMoMC41KSwKICAgICAgICAgICAgICAgICAgICAgICAgMykpKTsKCiAgICBidWlsZGVyPy5JbnZva2UoY2xpZW50QnVpbGRlcklQZXRBcGkpOwoKICAgIHZhciBjbGllbnRCdWlsZGVySVN0b3JlQXBpID0gc2VydmljZXMKICAgICAgICAuQWRkUmVmaXRDbGllbnQ8SVN0b3JlQXBpPihzZXR0aW5ncykKICAgICAgICAuQ29uZmlndXJlSHR0cENsaWVudChjID0+IGMuQmFzZUFkZHJlc3MgPSBuZXcgVXJpKCJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92MyIpKQogICAgICAgIC5BZGRIdHRwTWVzc2FnZUhhbmRsZXI8VGVsZW1ldHJ5RGVsZWdhdGluZ0hhbmRsZXI+KCk7CgogICAgY2xpZW50QnVpbGRlcklTdG9yZUFwaQogICAgICAgIC5BZGRQb2xpY3lIYW5kbGVyKAogICAgICAgICAgICBIdHRwUG9saWN5RXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgLkhhbmRsZVRyYW5zaWVudEh0dHBFcnJvcigpCiAgICAgICAgICAgICAgICAuV2FpdEFuZFJldHJ5QXN5bmMoCiAgICAgICAgICAgICAgICAgICAgQmFja29mZi5EZWNvcnJlbGF0ZWRKaXR0ZXJCYWNrb2ZmVjIoCiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTcGFuLkZyb21TZWNvbmRzKDAuNSksCiAgICAgICAgICAgICAgICAgICAgICAgIDMpKSk7CgogICAgYnVpbGRlcj8uSW52b2tlKGNsaWVudEJ1aWxkZXJJU3RvcmVBcGkpOwoKICAgIHZhciBjbGllbnRCdWlsZGVySVVzZXJBcGkgPSBzZXJ2aWNlcwogICAgICAgIC5BZGRSZWZpdENsaWVudDxJVXNlckFwaT4oc2V0dGluZ3MpCiAgICAgICAgLkNvbmZpZ3VyZUh0dHBDbGllbnQoYyA9PiBjLkJhc2VBZGRyZXNzID0gbmV3IFVyaSgiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiKSkKICAgICAgICAuQWRkSHR0cE1lc3NhZ2VIYW5kbGVyPFRlbGVtZXRyeURlbGVnYXRpbmdIYW5kbGVyPigpOwoKICAgIGNsaWVudEJ1aWxkZXJJVXNlckFwaQogICAgICAgIC5BZGRQb2xpY3lIYW5kbGVyKAogICAgICAgICAgICBIdHRwUG9saWN5RXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgLkhhbmRsZVRyYW5zaWVudEh0dHBFcnJvcigpCiAgICAgICAgICAgICAgICAuV2FpdEFuZFJldHJ5QXN5bmMoCiAgICAgICAgICAgICAgICAgICAgQmFja29mZi5EZWNvcnJlbGF0ZWRKaXR0ZXJCYWNrb2ZmVjIoCiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTcGFuLkZyb21TZWNvbmRzKDAuNSksCiAgICAgICAgICAgICAgICAgICAgICAgIDMpKSk7CgogICAgYnVpbGRlcj8uSW52b2tlKGNsaWVudEJ1aWxkZXJJVXNlckFwaSk7CgogICAgcmV0dXJuIHNlcnZpY2VzOwp9CmBgYAoKUGVyc29uYWxseSwgdGhleSBJIHVzZSBSZWZpdHRlciBpcyB0byBnZW5lcmF0ZSBhbiBpbnRlcmZhY2UgcGVyIGVuZHBvaW50LCBzbyB3aGVuIGdlbmVyYXRpbmcgY29kZSBmb3IgYSBsYXJnZSBhbmQgY29tcGxleCBBUEksIEkgbWlnaHQgaGF2ZSBzZXZlcmFsIGludGVyZmFjZXMuCgojIyBBcGl6cgoKW0FwaXpyXShodHRwczovL3d3dy5hcGl6ci5uZXQpIGlzIGEgUmVmaXQgY2xpZW50IG1hbmFnZXIgdGhhdCBwcm92aWRlcyBhIHNldCBvZiBmZWF0dXJlcyB0byBlbmhhbmNlIHJlcXVlc3RpbmcgZXhwZXJpZW5jZSB3aXRoIHJlc2lsaWVuY2UsIGNhY2hpbmcsIHByaW9yaXR5LCBtZWRpYXRpb24sIG1hcHBpbmcsIGxvZ2dpbmcsIGF1dGhlbnRpY2F0aW9uLCBmaWxlIHRyYW5zZmVyIGNhcGFiaWxpdGllcyBhbmQgbWFueSBtb3JlLi4uCgojIyMgR2VuZXJhdGluZyB0aGUgaW50ZXJmYWNlcwoKUmVmaXR0ZXIgc3VwcG9ydHMgZ2VuZXJhdGluZyBBcGl6ciBmb3JtYXR0ZWQgUmVmaXQgaW50ZXJmYWNlcyB0aGF0IGNhbiBiZSBtYW5hZ2VkIHRoZW4gYnkgQXBpenIgKHY2KykuCgpZb3UgY2FuIGVuYWJsZSBBcGl6ciBmb3JtYXR0ZWQgUmVmaXQgaW50ZXJmYWNlIGdlbmVyYXRpb24gZWl0aGVyOgotIFdpdGggdGhlIGAtLXVzZS1hcGl6cmAgY29tbWFuZCBsaW5lIGFyZ3VtZW50Ci0gQnkgc2V0dGluZyB0aGUgYGFwaXpyU2V0dGluZ3NgIHNlY3Rpb24gaW4gdGhlIGAucmVmaXR0ZXJgIHNldHRpbmdzIGZpbGUKCk5vdGUgdGhhdCBgLS11c2UtYXBpenJgIHVzZXMgZGVmYXVsdCBBcGl6ciBzZXR0aW5ncyB3aXRoIGB3aXRoUmVxdWVzdE9wdGlvbnNgIHNldCB0byBgdHJ1ZWAgYXMgcmVjb21tZW5kZWQsIHdoaWxlIHRoZSBgLnJlZml0dGVyYCBzZXR0aW5ncyBmaWxlIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIGl0IGRlZXBlci4KCkluIGJvdGggY2FzZXMsIGl0IHdpbGwgZm9ybWF0IHRoZSBnZW5lcmF0ZWQgUmVmaXQgaW50ZXJmYWNlcyB0byBiZSBBcGl6ciByZWFkeSBieToKLSBBZGRpbmcgYSBmaW5hbCBJQXBpenJSZXF1ZXN0T3B0aW9ucyBvcHRpb25zIHBhcmFtZXRlciB0byBhbGwgZ2VuZXJhdGVkIG1ldGhvZHMgKGlmIGB3aXRoUmVxdWVzdE9wdGlvbnNgIGlzIHNldCB0byBgdHJ1ZWApCi0gUHJvdmlkaW5nIGNhbmNlbGxhdGlvbiB0b2tlbnMgYnkgQXBpenIgcmVxdWVzdCBvcHRpb25zIGluc3RlYWQgb2YgYSBkZWRpY2F0ZWQgcGFyYW1ldGVyIChpZiBgd2l0aFJlcXVlc3RPcHRpb25zYCBpcyBzZXQgdG8gYHRydWVgKQotIFVzaW5nIG1ldGhvZCBvdmVybG9hZHMgaW5zdGVhZCBvZiBvcHRpb25hbCBwYXJhbWV0ZXJzIChub3RlIHRoYXQgc2V0dGluZyBgdXNlRHluYW1pY1F1ZXJ5c3RyaW5nUGFyYW1ldGVyc2AgdG8gYHRydWVgIGltcHJvdmUgb3ZlcmxvYWRpbmcgZXhwZXJpZW5jZSkKCkZyb20gaGVyZSwgeW91J3JlIGRlZmluaXRseSBmcmVlIHRvIHVzZSB0aGUgZm9ybWF0dGVkIGludGVyZmFjZSB3aXRoIEFwaXpyIGJ5IHJlZ2lzdGVyaW5nLCBjb25maWd1cmluZyBhbmQgdXNpbmcgaXQgZm9sbG93aW5nIHRoZSBbQXBpenIgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cuYXBpenIubmV0KS4gQnV0IFJlZml0dGVyIGNhbiBnbyBmdXJ0aGVyIGJ5IGdlbmVyYXRpbmcgc29tZSBoZWxwZXJzIHRvIG1ha2UgdGhlIGNvbmZpZ3VyYXRpb24gZWFzaWVyLgoKIyMjIEdlbmVyYXRpbmcgdGhlIGhlbHBlcnMKClJlZml0dGVyIHN1cHBvcnRzIGdlbmVyYXRpbmcgQXBpenIgKHY2KykgYm9vdHN0cmFwcGluZyBjb2RlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGNvbnZlbmllbnRseSBjb25maWd1cmUgYWxsIGdlbmVyYXRlZCBBcGl6ciBmb3JtYXR0ZWQgUmVmaXQgaW50ZXJmYWNlcyBieSBjYWxsaW5nIGEgc2luZ2xlIG1ldGhvZC4KSXQgY291bGQgYmUgZWl0aGVyIGFuIGV4dGVuc2lvbiBtZXRob2QgdG8gYElTZXJ2aWNlQ29sbGVjdGlvbmAgaWYgRGVwZW5kZW5jeUluamVjdGlvblNldHRpbmdzIGFyZSBzZXQsIG9yIGEgc3RhdGljIGJ1aWxkZXIgbWV0aG9kIGlmIG5vdC4KCiMjIyBbRXh0ZW5kZWRdKCN0YWIvdGFiaWQtZXh0ZW5kZWQpCgpUbyBlbmFibGUgQXBpenIgcmVnaXN0cmF0aW9uIGNvZGUgZ2VuZXJhdGlvbiBmb3IgYElTZXJ2aWNlQ29sbGVjdGlvbmAsIHlvdSBuZWVkIGF0IGxlYXN0IHRvIHNldCB0aGUgYHdpdGhSZWdpc3RyYXRpb25IZWxwZXJgIHByb3BlcnR5IHRvIGB0cnVlYCBhbmQgY29uZmlndXJlIHRoZSBgRGVwZW5kZW5jeUluamVjdGlvblNldHRpbmdzYCBzZWN0aW9uIGluIHRoZSBgLnJlZml0dGVyYCBzZXR0aW5ncyBmaWxlLgpUaGlzIGlzIHdoYXQgdGhlIGAucmVmaXR0ZXJgIHNldHRpbmdzIGZpbGUgbWF5IGxvb2sgbGlrZSwgZGVwZW5kaW5nIG9uIHlvdSBjb25maWd1cmF0aW9uOgoKYGBganNvbgp7CiAgIm9wZW5BcGlQYXRoIjogIi4uL09wZW5BUEkvdjMuMC9wZXRzdG9yZS5qc29uIiwKICAibmFtZXNwYWNlIjogIlBldHN0b3JlIiwKICAidXNlRHluYW1pY1F1ZXJ5c3RyaW5nUGFyYW1ldGVycyI6IHRydWUsCiAgImRlcGVuZGVuY3lJbmplY3Rpb25TZXR0aW5ncyI6IHsKICAgICJiYXNlVXJsIjogImh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzIiwKICAgICJodHRwTWVzc2FnZUhhbmRsZXJzIjogWyAiTXlEZWxlZ2F0aW5nSGFuZGxlciIgXSwKICAgICJ0cmFuc2llbnRFcnJvckhhbmRsZXIiOiAiSHR0cFJlc2lsaWVuY2UiLAogICAgIm1heFJldHJ5Q291bnQiOiAzLAogICAgImZpcnN0QmFja29mZlJldHJ5SW5TZWNvbmRzIjogMC41CiAgfSwKICAiYXBpenJTZXR0aW5ncyI6IHsKICAgICJ3aXRoUmVxdWVzdE9wdGlvbnMiOiB0cnVlLCAvLyBSZWNvbW1lbmRlZCB0byBpbmNsdWRlIGFuIEFwaXpyIHJlcXVlc3Qgb3B0aW9ucyBwYXJhbWV0ZXIgdG8gUmVmaXQgaW50ZXJmYWNlIG1ldGhvZHMKICAgICJ3aXRoUmVnaXN0cmF0aW9uSGVscGVyIjogdHJ1ZSwgLy8gTWFuZGF0b3J5IHRvIGFjdHVhbGx5IGdlbmVyYXRlIHRoZSBBcGl6ciByZWdpc3RyYXRpb24gZXh0ZW5kZWQgbWV0aG9kCiAgICAid2l0aENhY2hlUHJvdmlkZXIiOiAiSW5NZW1vcnkiLCAvLyBPcHRpb25hbCwgZGVmYXVsdCBpcyBOb25lCiAgICAid2l0aFByaW9yaXR5IjogdHJ1ZSwgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgZmFsc2UKICAgICJ3aXRoTWVkaWF0aW9uIjogdHJ1ZSwgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgZmFsc2UKICAgICJ3aXRoT3B0aW9uYWxNZWRpYXRpb24iOiB0cnVlLCAvLyBPcHRpb25hbCwgZGVmYXVsdCBpcyBmYWxzZQogICAgIndpdGhNYXBwaW5nUHJvdmlkZXIiOiAiQXV0b01hcHBlciIsIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIE5vbmUKICAgICJ3aXRoRmlsZVRyYW5zZmVyIjogdHJ1ZSAvLyBPcHRpb25hbCwgZGVmYXVsdCBpcyBmYWxzZQogIH0KfQpgYGAKCndoaWNoIHdpbGwgZ2VuZXJhdGUgYW4gZXh0ZW5zaW9uIG1ldGhvZCB0byBgSVNlcnZpY2VDb2xsZWN0aW9uYCBjYWxsZWQgYENvbmZpZ3VyZVBldHN0b3JlQXBpQXBpenJNYW5hZ2VyKClgLiBUaGUgZ2VuZXJhdGVkIGV4dGVuc2lvbiBtZXRob2QgZGVwZW5kcyBvbiBbYEFwaXpyLkV4dGVuc2lvbnMuTWljcm9zb2Z0LkRlcGVuZGVuY3lJbmplY3Rpb25gXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvQXBpenIuRXh0ZW5zaW9ucy5NaWNyb3NvZnQuRGVwZW5kZW5jeUluamVjdGlvbikgbGlicmFyeSBhbmQgbG9va3MgbGlrZSB0aGlzOgoKYGBgY3MKcHVibGljIHN0YXRpYyBJU2VydmljZUNvbGxlY3Rpb24gQ29uZmlndXJlUGV0c3RvcmVBcGlBcGl6ck1hbmFnZXIoCiAgICB0aGlzIElTZXJ2aWNlQ29sbGVjdGlvbiBzZXJ2aWNlcywKICAgIEFjdGlvbjxJQXBpenJFeHRlbmRlZE1hbmFnZXJPcHRpb25zQnVpbGRlcj4/IG9wdGlvbnNCdWlsZGVyID0gbnVsbCkKewogICAgb3B0aW9uc0J1aWxkZXIgPz89IF8gPT4geyB9OyAvLyBEZWZhdWx0IGVtcHR5IG9wdGlvbnMgaWYgbnVsbAogICAgb3B0aW9uc0J1aWxkZXIgKz0gb3B0aW9ucyA9PiBvcHRpb25zCiAgICAgICAgLldpdGhCYXNlQWRkcmVzcygiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiLCBBcGl6ckR1cGxpY2F0ZVN0cmF0ZWd5Lklnbm9yZSkKICAgICAgICAuV2l0aERlbGVnYXRpbmdIYW5kbGVyPE15RGVsZWdhdGluZ0hhbmRsZXI+KCkKICAgICAgICAuQ29uZmlndXJlSHR0cENsaWVudEJ1aWxkZXIoYnVpbGRlciA9PiBidWlsZGVyCiAgICAgICAgICAgIC5BZGRTdGFuZGFyZFJlc2lsaWVuY2VIYW5kbGVyKGNvbmZpZyA9PgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb25maWcuUmV0cnkgPSBuZXcgSHR0cFJldHJ5U3RyYXRlZ3lPcHRpb25zCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVXNlSml0dGVyID0gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBNYXhSZXRyeUF0dGVtcHRzID0gMywKICAgICAgICAgICAgICAgICAgICBEZWxheSA9IFRpbWVTcGFuLkZyb21TZWNvbmRzKDAuNSkKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pKQogICAgICAgIC5XaXRoSW5NZW1vcnlDYWNoZUhhbmRsZXIoKQogICAgICAgIC5XaXRoQXV0b01hcHBlck1hcHBpbmdIYW5kbGVyKCkKICAgICAgICAuV2l0aFByaW9yaXR5KCkKICAgICAgICAuV2l0aE9wdGlvbmFsTWVkaWF0aW9uKCkKICAgICAgICAuV2l0aEZpbGVUcmFuc2Zlck9wdGlvbmFsTWVkaWF0aW9uKCk7CiAgICAgICAgICAgICAgICAgCiAgICByZXR1cm4gc2VydmljZXMuQWRkQXBpenJNYW5hZ2VyRm9yPElQZXRzdG9yZUFwaT4ob3B0aW9uc0J1aWxkZXIpOwp9CmBgYAoKVGhpcyBjb21lcyBpbiBoYW5keSBlc3BlY2lhbGx5IHdoZW4gZ2VuZXJhdGluZyBtdWx0aXBsZSBpbnRlcmZhY2VzLCBieSB0YWcgb3IgZW5kcG9pbnQuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGAucmVmaXR0ZXJgIHNldHRpbmdzIGZpbGUKCmBgYGpzb24KewogICJvcGVuQXBpUGF0aCI6ICIuLi9PcGVuQVBJL3YzLjAvcGV0c3RvcmUuanNvbiIsCiAgIm5hbWVzcGFjZSI6ICJQZXRzdG9yZSIsCiAgInVzZUR5bmFtaWNRdWVyeXN0cmluZ1BhcmFtZXRlcnMiOiB0cnVlLAogICJtdWx0aXBsZUludGVyZmFjZXMiOiAiQnlUYWciLAogICJuYW1pbmciOiB7ICAgIAogICAgInVzZU9wZW5BcGlUaXRsZSI6IGZhbHNlLAogICAgImludGVyZmFjZU5hbWUiOiAiUGV0c3RvcmUiCiAgfSwKICAiZGVwZW5kZW5jeUluamVjdGlvblNldHRpbmdzIjogewogICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiLAogICAgImh0dHBNZXNzYWdlSGFuZGxlcnMiOiBbICJNeURlbGVnYXRpbmdIYW5kbGVyIiBdLAogICAgInRyYW5zaWVudEVycm9ySGFuZGxlciI6ICJIdHRwUmVzaWxpZW5jZSIsCiAgICAibWF4UmV0cnlDb3VudCI6IDMsCiAgICAiZmlyc3RCYWNrb2ZmUmV0cnlJblNlY29uZHMiOiAwLjUKICB9LAogICJhcGl6clNldHRpbmdzIjogewogICAgIndpdGhSZXF1ZXN0T3B0aW9ucyI6IHRydWUsIC8vIFJlY29tbWVuZGVkIHRvIGluY2x1ZGUgYW4gQXBpenIgcmVxdWVzdCBvcHRpb25zIHBhcmFtZXRlciB0byBSZWZpdCBpbnRlcmZhY2UgbWV0aG9kcwogICAgIndpdGhSZWdpc3RyYXRpb25IZWxwZXIiOiB0cnVlLCAvLyBNYW5kYXRvcnkgdG8gYWN0dWFsbHkgZ2VuZXJhdGUgdGhlIEFwaXpyIHJlZ2lzdHJhdGlvbiBleHRlbmRlZCBtZXRob2QKICAgICJ3aXRoQ2FjaGVQcm92aWRlciI6ICJJbk1lbW9yeSIsIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIE5vbmUKICAgICJ3aXRoUHJpb3JpdHkiOiB0cnVlLCAvLyBPcHRpb25hbCwgZGVmYXVsdCBpcyBmYWxzZQogICAgIndpdGhNZWRpYXRpb24iOiB0cnVlLCAvLyBPcHRpb25hbCwgZGVmYXVsdCBpcyBmYWxzZQogICAgIndpdGhPcHRpb25hbE1lZGlhdGlvbiI6IHRydWUsIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIGZhbHNlCiAgICAid2l0aE1hcHBpbmdQcm92aWRlciI6ICJBdXRvTWFwcGVyIiwgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgTm9uZQogICAgIndpdGhGaWxlVHJhbnNmZXIiOiB0cnVlIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIGZhbHNlCiAgfQp9CmBgYAoKV2lsbCBnZW5lcmF0ZSBhIHNpbmdsZSBgQ29uZmlndXJlUGV0c3RvcmVBcGl6ck1hbmFnZXJzKClgIGV4dGVuc2lvbiBtZXRob2QgdGhhdCBtYXkgY29udGFpbiBkZXBlbmRlbmN5IGluamVjdGlvbiBjb25maWd1cmF0aW9uIGNvZGUgZm9yIG11bHRpcGxlIGludGVyZmFjZXMgbGlrZSB0aGlzCgpgYGBjc2hhcnAKcHVibGljIHN0YXRpYyBJU2VydmljZUNvbGxlY3Rpb24gQ29uZmlndXJlUGV0c3RvcmVBcGl6ck1hbmFnZXJzKAogICAgdGhpcyBJU2VydmljZUNvbGxlY3Rpb24gc2VydmljZXMsCiAgICBBY3Rpb248SUFwaXpyRXh0ZW5kZWRDb21tb25PcHRpb25zQnVpbGRlcj4/IG9wdGlvbnNCdWlsZGVyID0gbnVsbCkKewogICAgb3B0aW9uc0J1aWxkZXIgPz89IF8gPT4geyB9OyAvLyBEZWZhdWx0IGVtcHR5IG9wdGlvbnMgaWYgbnVsbAogICAgb3B0aW9uc0J1aWxkZXIgKz0gb3B0aW9ucyA9PiBvcHRpb25zCiAgICAgICAgLldpdGhCYXNlQWRkcmVzcygiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiLCBBcGl6ckR1cGxpY2F0ZVN0cmF0ZWd5Lklnbm9yZSkKICAgICAgICAuV2l0aERlbGVnYXRpbmdIYW5kbGVyPE15RGVsZWdhdGluZ0hhbmRsZXI+KCkKICAgICAgICAuQ29uZmlndXJlSHR0cENsaWVudEJ1aWxkZXIoYnVpbGRlciA9PiBidWlsZGVyCiAgICAgICAgICAgIC5BZGRTdGFuZGFyZFJlc2lsaWVuY2VIYW5kbGVyKGNvbmZpZyA9PgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb25maWcuUmV0cnkgPSBuZXcgSHR0cFJldHJ5U3RyYXRlZ3lPcHRpb25zCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVXNlSml0dGVyID0gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBNYXhSZXRyeUF0dGVtcHRzID0gMywKICAgICAgICAgICAgICAgICAgICBEZWxheSA9IFRpbWVTcGFuLkZyb21TZWNvbmRzKDAuNSkKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pKQogICAgICAgIC5XaXRoSW5NZW1vcnlDYWNoZUhhbmRsZXIoKQogICAgICAgIC5XaXRoQXV0b01hcHBlck1hcHBpbmdIYW5kbGVyKCkKICAgICAgICAuV2l0aFByaW9yaXR5KCkKICAgICAgICAuV2l0aE9wdGlvbmFsTWVkaWF0aW9uKCkKICAgICAgICAuV2l0aEZpbGVUcmFuc2Zlck9wdGlvbmFsTWVkaWF0aW9uKCk7CiAgICAgICAgICAgIAogICAgcmV0dXJuIHNlcnZpY2VzLkFkZEFwaXpyKAogICAgICAgIHJlZ2lzdHJ5ID0+IHJlZ2lzdHJ5CiAgICAgICAgICAgIC5BZGRNYW5hZ2VyRm9yPElQZXRBcGk+KCkKICAgICAgICAgICAgLkFkZE1hbmFnZXJGb3I8SVN0b3JlQXBpPigpCiAgICAgICAgICAgIC5BZGRNYW5hZ2VyRm9yPElVc2VyQXBpPigpLAogICAgICAgIG9wdGlvbnNCdWlsZGVyKTsKCn0KYGBgCgpIZXJlLCBgSVBldEFwaWAsIGBJU3RvcmVBcGlgIGFuZCBgSVVzZXJBcGlgIGFyZSB0aGUgZ2VuZXJhdGVkIGludGVyZmFjZXMgd2hpY2ggc2hhcmUgdGhlIHNhbWUgY29tbW9uIGNvbmZpZ3VyYXRpb24gZGVmaW5lZCBmcm9tIHRoZSBgLnJlZml0dGVyYCBmaWxlLgoKIyMjIFtTdGF0aWNdKCN0YWIvdGFiaWQtc3RhdGljKQoKVG8gZW5hYmxlIEFwaXpyIHN0YXRpYyBidWlsZGVyIGNvZGUgZ2VuZXJhdGlvbiwgeW91IG5lZWQgYXQgbGVhc3QgdG8gc2V0IHRoZSBgd2l0aFJlZ2lzdHJhdGlvbkhlbHBlcmAgcHJvcGVydHkgdG8gYHRydWVgIGFuZCBsZWF2ZSB0aGUgYERlcGVuZGVuY3lJbmplY3Rpb25TZXR0aW5nc2Agc2VjdGlvbiB0byBudWxsIGluIHRoZSBgLnJlZml0dGVyYCBzZXR0aW5ncyBmaWxlLgpUaGlzIGlzIHdoYXQgdGhlIGAucmVmaXR0ZXJgIHNldHRpbmdzIGZpbGUgbWF5IGxvb2sgbGlrZSwgZGVwZW5kaW5nIG9uIHlvdSBjb25maWd1cmF0aW9uOgoKYGBganNvbgp7CiAgIm9wZW5BcGlQYXRoIjogIi4uL09wZW5BUEkvdjMuMC9wZXRzdG9yZS5qc29uIiwKICAibmFtZXNwYWNlIjogIlBldHN0b3JlIiwKICAidXNlRHluYW1pY1F1ZXJ5c3RyaW5nUGFyYW1ldGVycyI6IHRydWUsCiAgImFwaXpyU2V0dGluZ3MiOiB7CiAgICAid2l0aFJlcXVlc3RPcHRpb25zIjogdHJ1ZSwgLy8gUmVjb21tZW5kZWQgdG8gaW5jbHVkZSBhbiBBcGl6ciByZXF1ZXN0IG9wdGlvbnMgcGFyYW1ldGVyIHRvIFJlZml0IGludGVyZmFjZSBtZXRob2RzCiAgICAid2l0aFJlZ2lzdHJhdGlvbkhlbHBlciI6IHRydWUsIC8vIE1hbmRhdG9yeSB0byBhY3R1YWxseSBnZW5lcmF0ZSB0aGUgQXBpenIgcmVnaXN0cmF0aW9uIGV4dGVuZGVkIG1ldGhvZAogICAgIndpdGhDYWNoZVByb3ZpZGVyIjogIkFrYXZhY2hlIiwgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgTm9uZQogICAgIndpdGhQcmlvcml0eSI6IHRydWUsIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIGZhbHNlCiAgICAid2l0aE1hcHBpbmdQcm92aWRlciI6ICJBdXRvTWFwcGVyIiwgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgTm9uZQogICAgIndpdGhGaWxlVHJhbnNmZXIiOiB0cnVlIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIGZhbHNlCiAgfQp9CmBgYAoKd2hpY2ggd2lsbCBnZW5lcmF0ZSBhIHN0YXRpYyBidWlsZGVyIG1ldGhvZCBjYWxsZWQgYEJ1aWxkUGV0c3RvcmUzMEFwaXpyTWFuYWdlcigpYC4gVGhlIGdlbmVyYXRlZCBidWlsZGVyIG1ldGhvZCBkZXBlbmRzIG9uIFtgQXBpenJgXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvQXBpenIpIGxpYnJhcnkgYW5kIGxvb2tzIGxpa2UgdGhpczoKCmBgYGNzCnB1YmxpYyBzdGF0aWMgSUFwaXpyTWFuYWdlcjxJU3dhZ2dlclBldHN0b3JlT3BlbkFQSTMwPiBCdWlsZFBldHN0b3JlMzBBcGl6ck1hbmFnZXIoQWN0aW9uPElBcGl6ck1hbmFnZXJPcHRpb25zQnVpbGRlcj4gb3B0aW9uc0J1aWxkZXIpCnsKICAgIG9wdGlvbnNCdWlsZGVyID8/PSBfID0+IHsgfTsgLy8gRGVmYXVsdCBlbXB0eSBvcHRpb25zIGlmIG51bGwKICAgIG9wdGlvbnNCdWlsZGVyICs9IG9wdGlvbnMgPT4gb3B0aW9ucwogICAgICAgIC5XaXRoQWthdmFjaGVDYWNoZUhhbmRsZXIoKQogICAgICAgIC5XaXRoQXV0b01hcHBlck1hcHBpbmdIYW5kbGVyKG5ldyBNYXBwZXJDb25maWd1cmF0aW9uKGNvbmZpZyA9PiB7IC8qIFlPVVJfTUFQUElOR1NfSEVSRSAqLyB9KSkKICAgICAgICAuV2l0aFByaW9yaXR5KCk7CiAgICAgICAgICAgIAogICAgcmV0dXJuIEFwaXpyQnVpbGRlci5DdXJyZW50LkNyZWF0ZU1hbmFnZXJGb3I8SVN3YWdnZXJQZXRzdG9yZU9wZW5BUEkzMD4ob3B0aW9uc0J1aWxkZXIpOyAgCn0KYGBgCgpUaGlzIGNvbWVzIGluIGhhbmR5IGVzcGVjaWFsbHkgd2hlbiBnZW5lcmF0aW5nIG11bHRpcGxlIGludGVyZmFjZXMsIGJ5IHRhZyBvciBlbmRwb2ludC4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgYC5yZWZpdHRlcmAgc2V0dGluZ3MgZmlsZQoKYGBganNvbgp7CiAgIm9wZW5BcGlQYXRoIjogIi4uL09wZW5BUEkvdjMuMC9wZXRzdG9yZS5qc29uIiwKICAibmFtZXNwYWNlIjogIlBldHN0b3JlIiwKICAidXNlRHluYW1pY1F1ZXJ5c3RyaW5nUGFyYW1ldGVycyI6IHRydWUsCiAgIm11bHRpcGxlSW50ZXJmYWNlcyI6ICJCeVRhZyIsCiAgIm5hbWluZyI6IHsgICAgCiAgICAidXNlT3BlbkFwaVRpdGxlIjogZmFsc2UsCiAgICAiaW50ZXJmYWNlTmFtZSI6ICJQZXRzdG9yZSIKICB9LAogICJkZXBlbmRlbmN5SW5qZWN0aW9uU2V0dGluZ3MiOiB7CiAgICAiYmFzZVVybCI6ICJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92MyIsCiAgICAiaHR0cE1lc3NhZ2VIYW5kbGVycyI6IFsgIk15RGVsZWdhdGluZ0hhbmRsZXIiIF0sCiAgICAidHJhbnNpZW50RXJyb3JIYW5kbGVyIjogIkh0dHBSZXNpbGllbmNlIiwKICAgICJtYXhSZXRyeUNvdW50IjogMywKICAgICJmaXJzdEJhY2tvZmZSZXRyeUluU2Vjb25kcyI6IDAuNQogIH0sCiAgImFwaXpyU2V0dGluZ3MiOiB7CiAgICAid2l0aFJlcXVlc3RPcHRpb25zIjogdHJ1ZSwgLy8gUmVjb21tZW5kZWQgdG8gaW5jbHVkZSBhbiBBcGl6ciByZXF1ZXN0IG9wdGlvbnMgcGFyYW1ldGVyIHRvIFJlZml0IGludGVyZmFjZSBtZXRob2RzCiAgICAid2l0aFJlZ2lzdHJhdGlvbkhlbHBlciI6IHRydWUsIC8vIE1hbmRhdG9yeSB0byBhY3R1YWxseSBnZW5lcmF0ZSB0aGUgQXBpenIgcmVnaXN0cmF0aW9uIGV4dGVuZGVkIG1ldGhvZAogICAgIndpdGhDYWNoZVByb3ZpZGVyIjogIkluTWVtb3J5IiwgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgTm9uZQogICAgIndpdGhQcmlvcml0eSI6IHRydWUsIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIGZhbHNlCiAgICAid2l0aE1lZGlhdGlvbiI6IHRydWUsIC8vIE9wdGlvbmFsLCBkZWZhdWx0IGlzIGZhbHNlCiAgICAid2l0aE9wdGlvbmFsTWVkaWF0aW9uIjogdHJ1ZSwgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgZmFsc2UKICAgICJ3aXRoTWFwcGluZ1Byb3ZpZGVyIjogIkF1dG9NYXBwZXIiLCAvLyBPcHRpb25hbCwgZGVmYXVsdCBpcyBOb25lCiAgICAid2l0aEZpbGVUcmFuc2ZlciI6IHRydWUgLy8gT3B0aW9uYWwsIGRlZmF1bHQgaXMgZmFsc2UKICB9Cn0KYGBgCgpXaWxsIGdlbmVyYXRlIGEgc2luZ2xlIGBCdWlsZFBldHN0b3JlQXBpenJNYW5hZ2VycygpYCBidWlsZGVyIG1ldGhvZCB0aGF0IG1heSBjb250YWluIGNvbmZpZ3VyYXRpb24gY29kZSBmb3IgbXVsdGlwbGUgaW50ZXJmYWNlcyBsaWtlIHRoaXMKCmBgYGNzaGFycApwdWJsaWMgc3RhdGljIElBcGl6clJlZ2lzdHJ5IEJ1aWxkUGV0c3RvcmVBcGl6ck1hbmFnZXJzKEFjdGlvbjxJQXBpenJDb21tb25PcHRpb25zQnVpbGRlcj4gb3B0aW9uc0J1aWxkZXIpCnsKICAgIG9wdGlvbnNCdWlsZGVyID8/PSBfID0+IHsgfTsgLy8gRGVmYXVsdCBlbXB0eSBvcHRpb25zIGlmIG51bGwKICAgIG9wdGlvbnNCdWlsZGVyICs9IG9wdGlvbnMgPT4gb3B0aW9ucwogICAgICAgIC5XaXRoQWthdmFjaGVDYWNoZUhhbmRsZXIoKQogICAgICAgIC5XaXRoQXV0b01hcHBlck1hcHBpbmdIYW5kbGVyKG5ldyBNYXBwZXJDb25maWd1cmF0aW9uKGNvbmZpZyA9PiB7IC8qIFlPVVJfTUFQUElOR1NfSEVSRSAqLyB9KSkKICAgICAgICAuV2l0aFByaW9yaXR5KCk7CiAgICAgICAgICAgIAogICAgcmV0dXJuIEFwaXpyQnVpbGRlci5DdXJyZW50LkNyZWF0ZVJlZ2lzdHJ5KAogICAgICAgIHJlZ2lzdHJ5ID0+IHJlZ2lzdHJ5CiAgICAgICAgICAgIC5BZGRNYW5hZ2VyRm9yPElQZXRBcGk+KCkKICAgICAgICAgICAgLkFkZE1hbmFnZXJGb3I8SVN0b3JlQXBpPigpCiAgICAgICAgICAgIC5BZGRNYW5hZ2VyRm9yPElVc2VyQXBpPigpLAogICAgICAgIG9wdGlvbnNCdWlsZGVyKTsKfQpgYGAKCkhlcmUsIGBJUGV0QXBpYCwgYElTdG9yZUFwaWAgYW5kIGBJVXNlckFwaWAgYXJlIHRoZSBnZW5lcmF0ZWQgaW50ZXJmYWNlcyB3aGljaCBzaGFyZSB0aGUgc2FtZSBjb21tb24gY29uZmlndXJhdGlvbiBkZWZpbmVkIGZyb20gdGhlIGAucmVmaXR0ZXJgIGZpbGUuCgoqKioKCiMjIyBDdXN0b21pemluZyB0aGUgY29uZmlndXJhdGlvbgoKWW91IG1heSB3YW50IHRvIGFkanVzdCBhcGlzIGNvbmZpZ3VyYXRpb24sIGZvciBleGFtcGxlLCB0byBhZGQgYSBjdXN0b20gaGVhZGVyIHRvIHJlcXVlc3RzLiBUaGlzIGNhbiBiZSBkb25lIHVzaW5nIHRoZSBgQWN0aW9uPFRBcGl6ck9wdGlvbnNCdWlsZGVyPmAgcGFyYW1ldGVyIHdoaWxlIGNhbGxpbmcgdGhlIGdlbmVyYXRlZCBtZXRob2QuClRvIGtub3cgaG93IHRvIG1ha2UgQXBpenIgZml0IHlvdXIgbmVlZHMsIHBsZWFzZSByZWZlciB0byB0aGUgW0FwaXpyIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3LmFwaXpyLm5ldCkuCgojIyMgVXNpbmcgdGhlIG1hbmFnZXJzCgpPbmNlIHlvdSBjYWxsZWQgdGhlIGdlbmVyYXRlZCBtZXRob2QsIHlvdSB3aWxsIGdldCBhbiBgSUFwaXpyTWFuYWdlcjxUPmAgaW5zdGFuY2UgdGhhdCB5b3UgY2FuIHVzZSB0byBtYWtlIHJlcXVlc3RzIHRvIHRoZSBBUEkuIEhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byB1c2UgaXQ6CgpgYGBjc2hhcnAKdmFyIHJlc3VsdCA9IGF3YWl0IHBldHN0b3JlTWFuYWdlci5FeGVjdXRlQXN5bmMoKGFwaSwgb3B0KSA9PiBhcGkuR2V0UGV0QnlJZCgxLCBvcHQpLCAKICAgIG9wdGlvbnMgPT4gb3B0aW9ucyAvLyBXaGF0ZXZlciBmaW5hbCByZXF1ZXN0IG9wdGlvbnMgeW91IHdhbnQgdG8gYXBwbHkKICAgICAgICAuV2l0aFByaW9yaXR5KFByaW9yaXR5LkJhY2tncm91bmQpCiAgICAgICAgLldpdGhIZWFkZXJzKFsiSGVhZGVyS2V5MTogSGVhZGVyVmFsdWUxIl0pCiAgICAgICAgLldpdGhSZXF1ZXN0VGltZW91dCgiMDA6MDA6MTAiKQogICAgICAgIC5XaXRoQ2FuY2VsbGF0aW9uKGN0cy5Ub2tlbikpOwpgYGAKClBsZWFzZSBoZWFkIHRvIHRoZSBbQXBpenIgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cuYXBpenIubmV0KSB0byBnZXQgbW9yZS4KCiMjIFN5c3RlbSByZXF1aXJlbWVudHMKLk5FVCA4LjAKCiMjIENvbnRyaWJ1dG9ycwoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRib2R5PgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9uZW9HZW5ldmEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODA0NzI0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJQaGlsaXAgQ294Ii8+PGJyIC8+PHN1Yj48Yj5QaGlsaXAgQ294PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9bmVvR2VuZXZhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vY2FtLm1hY2Zhci5sYW5kLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMjk4ODQ3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJDYW1lcm9uIE1hY0ZhcmxhbmQiLz48YnIgLz48c3ViPjxiPkNhbWVyb24gTWFjRmFybGFuZDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPWRpc3RhbnRjYW0iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL2tnYW1lLnR3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM2NDY1MzI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImtnYW1lIi8+PGJyIC8+PHN1Yj48Yj5rZ2FtZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPWtnYW1lY2FydGVyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly95cmtpLm5vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNTczNjAxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJUaG9tYXMgUGV0dGVyc2VuIC8gWXJraSIvPjxiciAvPjxzdWI+PGI+VGhvbWFzIFBldHRlcnNlbiAvIFlya2k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj0iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tLzFrdmluIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ2NDI1OTgwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBcnRlbSIvPjxiciAvPjxzdWI+PGI+QXJ0ZW08L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0Exa3ZpbiIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL203Y2xhcmtlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ3NDM5MTQ0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJtN2NsYXJrZSIvPjxiciAvPjxzdWI+PGI+bTdjbGFya2U8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FtN2NsYXJrZSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2tpcmlkZXMiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM2MDIxNDM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImtpcmlkZXMiLz48YnIgLz48c3ViPjxiPmtpcmlkZXM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FraXJpZGVzIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1raXJpZGVzIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ3VpbGxhdW1lc2VyYWxlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY2NzI0MDY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Imd1aWxsYXVtZXNlcmFsZSIvPjxiciAvPjxzdWI+PGI+Z3VpbGxhdW1lc2VyYWxlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9Z3VpbGxhdW1lc2VyYWxlIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWd1aWxsYXVtZXNlcmFsZSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1JvZmxpbmNvcHRlciI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjkwMjQzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEZW5uaXMgQnJlbnRqZXMiLz48YnIgLz48c3ViPjxiPkRlbm5pcyBCcmVudGplczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPVJvZmxpbmNvcHRlciIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNpZGVhcy1Sb2ZsaW5jb3B0ZXIiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vaGlja2V5ZGFtaWFuLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzQzNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRGFtaWFuIEhpY2tleSIvPjxiciAvPjxzdWI+PGI+RGFtaWFuIEhpY2tleTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWRhbWlhbmgiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yaWNoYXJkaHUtbG1nIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNjQzMDc4Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0icmljaGFyZGh1LWxtZyIvPjxiciAvPjxzdWI+PGI+cmljaGFyZGh1LWxtZzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQXJpY2hhcmRodS1sbWciIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9icmVhc2UtY29saW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDczNTg5MzU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImJyZWFzZS1jb2xpbiIvPjxiciAvPjxzdWI+PGI+YnJlYXNlLWNvbGluPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBYnJlYXNlLWNvbGluIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW5nZWxvZmIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjAzMjI1Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYW5nZWxvZmIiLz48YnIgLz48c3ViPjxiPmFuZ2Vsb2ZiPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9YW5nZWxvZmIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL05vR1JvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU2NjUyNzM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRpbSBOb2dybyIvPjxiciAvPjxzdWI+PGI+RGltIE5vZ3JvPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9Tm9HUm8iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS95YWRhbmlsb3YxOSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzE2MTA2NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ieWFkYW5pbG92MTkiLz48YnIgLz48c3ViPjxiPnlhZGFuaWxvdjE5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjaWRlYXMteWFkYW5pbG92MTkiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj15YWRhbmlsb3YxOSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGFucG93ZWxsODgiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTEwMDM5Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRGFuaWVsIFBvd2VsbCIvPjxiciAvPjxzdWI+PGI+RGFuaWVsIFBvd2VsbDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWRhbnBvd2VsbDg4IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRWtrZWlyIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM2MTk0Njg1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJFa2tlaXIiLz48YnIgLz48c3ViPjxiPkVra2VpcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPUVra2VpciIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FFa2tlaXIiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93YXlsb25tdHoiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDYwNDU3OT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iV2F5bG9uIE1hcnRpbmV6Ii8+PGJyIC8+PHN1Yj48Yj5XYXlsb24gTWFydGluZXo8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0F3YXlsb25tdHoiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS92aW5heW1hZHVwYXRoaSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODEwMjkwMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0idmttYWR1cGEiLz48YnIgLz48c3ViPjxiPnZrbWFkdXBhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBdmluYXltYWR1cGF0aGkiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Ob2JsaXgiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjIwNzY4ODM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik5vYmxpeCIvPjxiciAvPjxzdWI+PGI+Tm9ibGl4PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9Tm9ibGl4IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2lkZWFzLU5vYmxpeCIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnZlZXpsYS5pbyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMzA0MzI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkF0dGlsYSBIYWpkcmlrIi8+PGJyIC8+PHN1Yj48Yj5BdHRpbGEgSGFqZHJpazwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2lkZWFzLWF0dGlsYWgiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2JpZWxpazAxIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkyMDk1MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYmllbGlrMDEiLz48YnIgLz48c3ViPjxiPmJpZWxpazAxPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBYmllbGlrMDEiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iI2lkZWFzLWJpZWxpazAxIiB0aXRsZT0iSWRlYXMsIFBsYW5uaW5nLCAmIEZlZWRiYWNrIj7wn6SUPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL25hYWVlZiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MzMzOTA3MT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ibmFhZWVmIi8+PGJyIC8+PHN1Yj48Yj5uYWFlZWY8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNpZGVhcy1uYWFlZWYiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWxyeiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMTA1OTc5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBbGlyZXphIEhhYmliaSIvPjxiciAvPjxzdWI+PGI+QWxpcmV6YSBIYWJpYmk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FhbHJ6IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRUVQYXJrZXIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4NzQwNzY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkplZmYgUGFya2VyLCBQRSIvPjxiciAvPjxzdWI+PGI+SmVmZiBQYXJrZXIsIFBFPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBRUVQYXJrZXIiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qb2RzNCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODMyODIwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJqb2RzIi8+PGJyIC8+PHN1Yj48Yj5qb2RzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjaWRlYXMtam9kczQiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0Fqb2RzNCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VkaW1hcnF1ZXoiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDE3OTE3MTk/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkVkaW1hcnF1ZXogTWVkZWlyb3MiLz48YnIgLz48c3ViPjxiPkVkaW1hcnF1ZXogTWVkZWlyb3M8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1lZGltYXJxdWV6IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zYWZha2tlc2lrY2kiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzA2NzI1Mj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ic2FmYWtrZXNpa2NpIi8+PGJyIC8+PHN1Yj48Yj5zYWZha2tlc2lrY2k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FzYWZha2tlc2lrY2kiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZm9sYnJlY2h0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NTUzNzg0Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iZm9sYnJlY2h0Ii8+PGJyIC8+PHN1Yj48Yj5mb2xicmVjaHQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0Fmb2xicmVjaHQiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9tb3J0ZW5sYXVyc2VuIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI4NzU5NzM3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJtb3J0ZW5sYXVyc2VuIi8+PGJyIC8+PHN1Yj48Yj5tb3J0ZW5sYXVyc2VuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9bW9ydGVubGF1cnNlbiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWFudWVsLWZlcm5hbmRlei1yb2RyaWd1ZXoiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDg1MjAyMDU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Im1hbnVlbC1mZXJuYW5kZXotcm9kcmlndWV6Ii8+PGJyIC8+PHN1Yj48Yj5tYW51ZWwtZmVybmFuZGV6LXJvZHJpZ3VlejwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQW1hbnVlbC1mZXJuYW5kZXotcm9kcmlndWV6IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZWxpeWFtbWluZSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82NjQ0ODA3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJFbGkgWWFtbWluZSIvPjxiciAvPjxzdWI+PGI+RWxpIFlhbW1pbmU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FlbGl5YW1taW5lIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va2FtaS1wb2kiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDczMjI2OTE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImthbWktcG9pIi8+PGJyIC8+PHN1Yj48Yj5rYW1pLXBvaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2lkZWFzLWthbWktcG9pIiB0aXRsZT0iSWRlYXMsIFBsYW5uaW5nLCAmIEZlZWRiYWNrIj7wn6SUPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1hlZXZpcyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81ODM1MDQ0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJYZWV2aXMiLz48YnIgLz48c3ViPjxiPlhlZXZpczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQVhlZXZpcyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0RKNGRkaSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjk2MTAyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJESjRkZGkiLz48YnIgLz48c3ViPjxiPkRKNGRkaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPURKNGRkaSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNpZGVhcy1ESjRkZGkiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2RpcmVuY2FuY2F0YWxrYXlhIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU3MjIzNzMyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJkaXJlbmNhbmNhdGFsa2F5YSIvPjxiciAvPjxzdWI+PGI+ZGlyZW5jYW5jYXRhbGtheWE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1kaXJlbmNhbmNhdGFsa2F5YSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcm9icGFsbSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDkzOTUzMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iUm9iZXJ0IFBhbG1xdmlzdCIvPjxiciAvPjxzdWI+PGI+Um9iZXJ0IFBhbG1xdmlzdDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2lkZWFzLXJvYnBhbG0iIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1yb2JwYWxtIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9UaW1vdGh5TWFra2lzb24iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDkzNDk1MTM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlRpbSBNIi8+PGJyIC8+PHN1Yj48Yj5UaW0gTTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPVRpbW90aHlNYWtraXNvbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vamFuZm9sYnJlY2h0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQyMTg2NjA0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJqYW5mb2xicmVjaHQiLz48YnIgLz48c3ViPjxiPmphbmZvbGJyZWNodDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2lkZWFzLWphbmZvbGJyZWNodCIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPWphbmZvbGJyZWNodCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3NjLW5zZWd1aW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTMzOTEwMzA5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJOaWNrIFNlZ3VpbiIvPjxiciAvPjxzdWI+PGI+TmljayBTZWd1aW48L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1vc2MtbnNlZ3VpbiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGF2aWQtYnJpbmstdGFsb2d5Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzODI4NzM5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEYXZpZCBCcmluayIvPjxiciAvPjxzdWI+PGI+RGF2aWQgQnJpbms8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FkYXZpZC1icmluay10YWxvZ3kiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPWRhdmlkLWJyaW5rLXRhbG9neSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGFtbWl0amFuZXQiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTUyNzIzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTdHUgV2lsc29uIi8+PGJyIC8+PHN1Yj48Yj5TdHUgV2lsc29uPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjaWRlYXMtZGFtbWl0amFuZXQiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1kYW1taXRqYW5ldCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NoYXJwemlsbGEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTY3NjM2MzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InNoYXJwemlsbGEiLz48YnIgLz48c3ViPjxiPnNoYXJwemlsbGE8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNpZGVhcy1zaGFycHppbGxhIiB0aXRsZT0iSWRlYXMsIFBsYW5uaW5nLCAmIEZlZWRiYWNrIj7wn6SUPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0phcHBpbmVuIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ0NDA4NDk3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJUYXR1Ii8+PGJyIC8+PHN1Yj48Yj5UYXR1PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBSmFwcGluZW4iIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVzcGF3bnNpdmUuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQyNzIzMDc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkrDqXLDqW15IEJSVU4tUElDQVJEIi8+PGJyIC8+PHN1Yj48Yj5Kw6lyw6lteSBCUlVOLVBJQ0FSRDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2lkZWFzLUplcmVteUJQIiB0aXRsZT0iSWRlYXMsIFBsYW5uaW5nLCAmIEZlZWRiYWNrIj7wn6SUPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9SmVyZW15QlAiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9SmVyZW15QlAiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ViYXJuYXJkIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwNTk2ODM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkVkIEJhcm5hcmQiLz48YnIgLz48c3ViPjxiPkVkIEJhcm5hcmQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNpZGVhcy1lYmFybmFyZCIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9iYXN0aWVubm9lbDkzIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE4MjUwMzUwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJiYXN0aWVuLm5vZWwiLz48YnIgLz48c3ViPjxiPmJhc3RpZW4ubm9lbDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWJhc3RpZW5ub2VsOTMiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9NZWlrZWxMUCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTY2OTg0Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTWVpa2VsIFBoaWxpcHAiLz48YnIgLz48c3ViPjxiPk1laWtlbCBQaGlsaXBwPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjaWRlYXMtTWVpa2VsTFAiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vYmVya3NlbHZpLmRldiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NDY3NjUxNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQmVyayBTZWx2aSIvPjxiciAvPjxzdWI+PGI+QmVyayBTZWx2aTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2lkZWFzLWJlcmtzbHYiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1iZXJrc2x2IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3d3dy50aGVidWlsZHNoZWV0LmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTkwOTU2ND92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iSm9zaHVhIE96ZXJpIi8+PGJyIC8+PHN1Yj48Yj5Kb3NodWEgT3plcmk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FYZUNsdXRjaCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+CgojCgpGb3IgdGlwcyBhbmQgdHJpY2tzIG9uIHNvZnR3YXJlIGRldmVsb3BtZW50LCBjaGVjayBvdXQgW215IGJsb2ddKGh0dHBzOi8vY2hyaXN0aWFuaGVsbGUuY29tKQoKSWYgeW91IGZpbmQgdGhpcyB1c2VmdWwgYW5kIGZlZWwgYSBiaXQgZ2VuZXJvdXMgdGhlbiBmZWVsIGZyZWUgdG8gW2J1eSBtZSBhIGNvZmZlZSDimJVdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vY2hyaXN0aWFuaGVsbGUpCg== readmeEtag: '"73ecc6e5d31b985ca2fa015f5a0572c1ab18825d"' readmeLastModified: Thu, 05 Sep 2024 14:12:55 GMT repositoryId: 598846021 description: >- A tool for generating Refit interfaces and contracts from OpenAPI specifications created: '2023-02-07T23:18:12Z' updated: '2024-09-05T14:13:11Z' language: C# archived: false stars: 176 watchers: 6 forks: 38 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: MIT repoEtag: '"7578ba4ce2fb93bd51c1f00caad858fc7456aed7c3cc9a8b478e87159261fa17"' repoLastModified: Thu, 05 Sep 2024 14:13:11 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/pace/bricks v3: true repositoryMetadata: base64Readme: >- IyBQQUNFIEJyaWNrcyBbIVtHb2xhbmcgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9wYWNlL2JyaWNrcy9hY3Rpb25zL3dvcmtmbG93cy9nb2xhbmctY2kueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9wYWNlL2JyaWNrcy9hY3Rpb25zL3dvcmtmbG93cy9nb2xhbmctY2kueW1sKSAgWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvcGFjZS9icmlja3MvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvcGFjZS9icmlja3M/YnJhbmNoPW1hc3RlcikKCiFbXShhcnR3b3JrL1BBQ0UtQnJpY2tzX0hlYWRlcl9MaWdodEJhY2tncm91bmQucG5nKQoKT3BpbmlvbmF0ZWQgbWljcm9zZXJ2aWNlIGtpdCB0byBoZWxwIGRldmVsb3BlcnMgdG8gYnVpbGQgbWljcm9zZXJ2aWNlcyB3aXRoIGdvLgoKIyMgT3BpbmlvbnMKCkEgcGFjZS9icmlja3MgbWljcm9zZXJ2aWNlIGlzOgoKKiBidWlsdCBhcyBhICoqZG9ja2VyIGNvbnRhaW5lcioqCiogZGVwbG95ZWQgaW50byBhICoqa3ViZXJuZXRlcyBjbHVzdGVyKioKICAqIHN1cHBvcnQgZm9yIHRoZSAqKnRlcm1pbmF0aW9uIGxvZyoqCiogY29uZmlndXJlZCB1c2luZyAqKmVudmlyb25tZW50IHZhcmlhYmxlcyoqIChbVFdFTFZFLUZBQ1RPUiBBUFBdKGh0dHBzOi8vMTJmYWN0b3IubmV0LykpCiogbW9uaXRvcmVkIHVzaW5nICoqcHJvbWV0aGV1cyoqCiogcmVwb3J0cyBlcnJvcnMgdG8gKipzZW50cnkqKgoqIHNhbXBsZXMgdHJhY2VzIHRvICoqamFlZ2VyKioKKiAqKmxvZ3MqKiB0byBzdGRvdXQgdXNpbmcganNvbiBkZXBsb3llZCAqKmt1YmVybmV0ZXMqKiBvdGhlcndpc2UgaHVtYW4gcmVhZGFibGUKKiBvZmZlcnMgKipoZWFsdGgqKiBlbmRwb2ludHMKKiBidWlsdC1pbiByZWRhY3Rpb24gb2YgSldUcyBhbmQgY2FyZCBzY2hlbWVzCiogY29ubmVjdHMgdG8gYmFja2VuZCBzZXJ2aWNlcwogICogKipwb3N0Z3JlcyoqIChsb2dnaW5nLCBtZXRyaWNzLCB0cmFjaW5nLCBoZWFsdGgpCiAgKiAqKnJlZGlzKiogKGxvZ2dpbmcsIG1ldHJpY3MsIHRyYWNpbmcsIGhlYWx0aCkKICAqICoqcXVldWUqKiB2aWEgcmVkaXMgKGxvZ2dpbmcsIG1ldHJpY3MsIHRyYWNpbmcsIGhlYWx0aCkKICAqICoqaHR0cCoqIChsb2dnaW5nLCBtZXRyaWNzLCB0cmFjaW5nLCByZXRyaWVzKQogICogKipzMyoqIHZpYSBodHRwIChsb2dnaW5nLCBtZXRyaWNzLCB0cmFjaW5nLCBoZWFsdGgpCiAgKiAqKmNvdWNoZGIqKiB2aWEgaHR0cCAobG9nZ2luZywgbWV0cmljcywgdHJhY2luZywgcmV0cmllcywgaGVhbHRoKQogICogKipncnBjKiogKGxvZ2dpbmcsIG1ldHJpY3MsIHRyYWNpbmcsIHJldHJpZXMpCiogcHJvdmlkZXMgdHdvIGNvbW1hbmRzICoqY29udHJvbCoqIGFuZCAqKmRhZW1vbioqCiogcHJvdmlkZXMgYSAqKlJFU1RmdWwqKiBBUEkKICAqIGNvZGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhlICoqT3BlbkFQSXYzKiogc3BlYwogICogYXV0aGVudGljYXRlZCB2aWEgKipPQXV0aDIqKgogICogZW5jb2RlZCB1c2luZyAqKltqc29uOmFwaV0oaHR0cHM6Ly9qc29uYXBpLm9yZy8pKioKICAqIHRoYXQgc3VwcG9ydHMgKipsb2dnaW5nKiosICoqdHJhY2luZyoqIGFuZCAqKm1ldHJpY3MqKgoqIG9wdGlvbmFsbHkgcHJvdmlkZXMgYSAqKkdSUEMqKiBBUEkKICAqIGNvZGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhlICoqcHJvdG9jKiogc3BlYwogICogdGhhdCBzdXBwb3J0cyAqKmxvZ2dpbmcqKiwgKip0cmFjaW5nKiogYW5kICoqbWV0cmljcyoqCgojIyBJbnN0YWxsCgogICAgZ28gZ2V0IGdpdGh1Yi5jb20vcGFjZS9icmlja3MvY21kL3BiCgojIyBVc2FnZQoKICAgIHBiIC1oCgojIyBDb250cmlidXRpbmcKIApSZWFkIG91ciBbY29udHJpYnV0b3JzIGd1aWRlXShDT05UUklCVVRJTkcubWQpLgoKIyMgUmVxdWlyZW1lbnRzCgoqIEEgd29ya2luZyBnbyBpbnN0YWxsYXRpb24KKiBBIHdvcmtpbmcgZ2l0IGluc3RhbGxhdGlvbgoKIyMgVGVzdGluZwoKKiBVc2UgYG1ha2UgdGVzdGAgdG8gdGVzdCB3aXRob3V0IGRlcGVuZGVuY2llcwoqIFVzZSBgZG9ja2VyLWNvbXBvc2UgcnVuIHRlc3RzZXJ2ZXIgbWFrZSBpbnRlZ3JhdGlvbmAgdG8gdGVzdCB3aXRoIGRlcGVuZGVuY2llcwoqIFVzZSBgbWFrZSB0ZXN0c2VydmVyYCB0byBzdGFydCBhIHRlc3RzZXJ2ZXIgdGhhdCB3aWxsIGJlIHN0YXJ0ZWQgd2l0aCBkZXBlbmRlbmNpZXMuIEluIG9yZGVyIHRvIHVwZGF0ZSB0aGUgc2VydmVyIG9uZSBuZWVkIHRvIGBkb2NrZXItY29tcG9zZSByZXN0YXJ0IHRlc3RzZXJ2ZXJgCgojIyBFbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHRoZSBwYiBjb21tYW5kCgp8IFZhcmlhYmxlIHwgRGVzY3JpcHRpb24gfAp8LXwtfAp8IGBQQUNFX0JSSUNLU19FRElUT1JgIHzCoCBUaGUgcGF0aCB0byB0aGUgZWRpdG9yIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIG9wZW5pbmcgYSBwcm9qZWN0LiBEZWZhdWx0cyB0byBgJEVESVRPUmAuIHwKfCBgUEFDRV9CUklDS1NfUEFUSGAgfCBUaGUgcGF0aCB3aGVyZSBuZXcgcHJvamVjdCBzaG91bGQgYmUgY3JlYXRlZC4gRGVmYXVsdHMgdG8gYCRIT01FL1BBQ0VgLiB8Cg== readmeEtag: '"a1faa97e732a1194eb91dc5aa9895a8e5d4ed25e"' readmeLastModified: Fri, 12 Jul 2024 14:16:47 GMT repositoryId: 166778187 description: A standard library for microservices. created: '2019-01-21T08:41:32Z' updated: '2024-09-02T12:22:32Z' language: Go archived: false stars: 171 watchers: 10 forks: 21 owner: pace logo: https://avatars.githubusercontent.com/u/16001479?v=4 license: MIT repoEtag: '"7b82dc4fdf9fb74eb323cee014cb462eed277112b94cc33027ebe5c8fa87335d"' repoLastModified: Mon, 02 Sep 2024 12:22:32 GMT foundInMaster: true category: Server id: e6dd06a50e0916bde709fbfdeae306a5 - source: openapi3 tags repository: https://github.com/christianhelle/apiclientcodegen v3: true id: 30d6812808d99b1b58b61c10028cb8de repositoryMetadata: base64Readme: >- WyFbQnVpbGQgc3RhdHVzXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2diMmRvZTN0Z3dqdDQ3Y24vYnJhbmNoL21hc3Rlcj9zdmc9dHJ1ZSldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi9icmFuY2gvbWFzdGVyKQohW0NMSSBUb29sXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi93b3JrZmxvd3MvQ0xJJTIwVG9vbC9iYWRnZS5zdmcpCiFbVlNJWF0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTSVgvYmFkZ2Uuc3ZnKQohW1ZTIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTJTIwTWFjL2JhZGdlLnN2ZykKIVtTbW9rZSBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1Ntb2tlJTIwVGVzdHMvYmFkZ2Uuc3ZnKQoKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9c3FhbGVfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtSZWxpYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbikKWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9dnVsbmVyYWJpbGl0aWVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQoKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3YvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPU1hcmtldHBsYWNlKV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQVBJQ2xpZW50Q29kZUdlbmVyYXRvcikgClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPVZTJTIwMjAxOSldKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcildKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMj9sYWJlbD1WUyUyMDIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikgClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcjIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvZHQvcmFwaWNnZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmxhYmVsPW51Z2V0KV0oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pCgpbIVtidXltZWFjb2ZmZWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYnV5JTIwbWUlMjBhJTIwY29mZmVlLWRvbmF0ZS15ZWxsb3cuc3ZnKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKWyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2dpdHRlci5pbS9hcGljbGllbnRjb2RlZ2VuL2NvbW11bml0eV0oaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5LnN2ZyldKGh0dHBzOi8vZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5P3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UmdXRtX2NvbnRlbnQ9YmFkZ2UpCgojIFJFU1QgQVBJIENsaWVudCBDb2RlIEdlbmVyYXRvcgoKQSBjb2xsZWN0aW9uIG9mIFZpc3VhbCBTdHVkaW8gQyMgY3VzdG9tIHRvb2wgY29kZSBnZW5lcmF0b3JzIGZvciBTd2FnZ2VyIC8gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGVzCgojIyBEb3dubG9hZAoKLSAqKltWaXN1YWwgU3R1ZGlvIDIwMjJdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFwaUNsaWVudENvZGVHZW5lcmF0b3IyMDIyKSoqCi0gKipbVmlzdWFsIFN0dWRpbyAyMDE5XShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yKSoqCi0gKipbVmlzdWFsIFN0dWRpbyAyMDE3XShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yMjAxNykqKgotICoqW1Zpc3VhbCBTdHVkaW8gZm9yIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vcmVsZWFzZXMvbGF0ZXN0KSoqLiBGb2xsb3cgKipbdGhlc2UgaW5zdHJ1Y3Rpb25zXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjKSoqIGZvciB1cGRhdGUgY29udmVuaWVuY2Ugb24gVmlzdWFsIFN0dWRpbyBmb3IgTWFjCgojIyBGZWF0dXJlcwoKLSBTdXBwb3J0cyBWaXN1YWwgU3R1ZGlvIDIwMTcsIDIwMTksIDIwMjIsIGFuZCBbVmlzdWFsIFN0dWRpbyBmb3IgTWFjXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjKQotIEFkZCBOZXcgUkVTVCBBUEkgQ2xpZW50IHRvIGEgcHJvamVjdCBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBVUkwgKGUuZyA8aHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbj4pIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29kZSBnZW5lcmF0b3JzOgogIC0gW05Td2FnXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnKQogIC0gW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQogIC0gW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikKICAtIFtSZWZpdHRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyKQogIC0gW01pY3Jvc29mdCBLaW90YV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YSkKICAtIFtBdXRvUmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0KQotIERlZmluZSBjdXN0b20gbmFtZXNwYWNlIGZvciB0aGUgZ2VuZXJhdGVkIGZpbGUKLSBBdXRvLXVwZGF0aW5nIG9mIGdlbmVyYXRlZCBjb2RlIGZpbGUgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gSlNPTiBvciBZQU1MIGZpbGUKLSBHZW5lcmF0ZSBjb2RlIHVzaW5nIGEgY29uZmlndXJhdGlvbiBmaWxlcyB1c2luZyB0aGUgZm9sbG93aW5nOgogIC0gYC5uc3dhZ2AgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIFtOU3dhZ1N0dWRpb10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKSBieSBpbmNsdWRpbmcgaXQgaW4gdGhlIHByb2plY3QgYW5kIHVzaW5nIHRoZSAqKkdlbmVyYXRlIE5Td2FnIFN0dWRpbyBvdXRwdXQqKiBjb250ZXh0IG1lbnUKICAtIGAucmVmaXR0ZXJgIHNldHRpbmdzIGZpbGVzIGZyb20gW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIGJ5IGluY2x1ZGluZyBpdCBpbiB0aGUgcHJvamVjdCBhbmQgdXNpbmcgdGhlICoqR2VuZXJhdGUgUmVmaXR0ZXIgb3V0cHV0KiogY29udGV4dCBtZW51CiAgLSBga2lvdGEtbG9jay5qc29uYCBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gW01pY3Jvc29mdCBLaW90YV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YSkgYnkgaW5jbHVkaW5nIGl0IGluIHRoZSBwcm9qZWN0IGFuZCB1c2luZyB0aGUgKipHZW5lcmF0ZSBLaW90YSBvdXRwdXQqKiBjb250ZXh0IG1lbnUKCiMjIyBDdXN0b20gVG9vbHMKCkN1c3RvbSB0b29scyBsZXQgeW91IGFzc29jaWF0ZSBhIHRvb2wgd2l0aCBhbiBpdGVtIGluIGEgcHJvamVjdCBhbmQgcnVuIHRoYXQgdG9vbCB3aGVuZXZlciB0aGUgZmlsZSBpcyBzYXZlZAoKLSAqKipOU3dhZ0NvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgdXNpbmcgdGhlIFtOU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwLykgKip2MTQuMS4wKioKCi0gKioqT3BlbkFwaUNvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgdXNpbmcgKipbT3BlbkFQSSBHZW5lcmF0b3IgdjcuOC4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92Ny44LjApKiouClRoZSBvdXRwdXQgZmlsZSBpcyB0aGUgcmVzdWx0IG9mIG1lcmdpbmcgYWxsIHRoZSBmaWxlcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRvb2wgd2l0aDoKYGdlbmVyYXRlIC1nIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAuIEl0IGlzIHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgZmlsZXMgd2hpY2ggd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHNhbWUgcGF0aCBhcyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBkb2N1bWVudCB0aGF0IHdhcyB1c2VkIHRvIGdlbmVyYXRlIGNvZGUsIHRoaXMgaXMgZG9uZSB1bmRlciBUb29scyAtPiBSRVNUIEFQSSBDbGllbnQgQ29kZSBHZW5lcmF0b3IgLT4gT3BlbkFQSSBHZW5lcmF0b3IgYW5kIHNldHRpbmcgKipHZW5lcmF0ZSBNdWx0aXBsZSBGaWxlcyoqIHRvICoqdHJ1ZSoqCgotICoqKktpb3RhQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyB0aGUgTWljcm9zb2Z0IHByb2plY3QgKipbS2lvdGEgdjEuMTguMF0oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL29wZW5hcGkva2lvdGEvKSoqIGdlbmVyYXRvci4gVGhlIG91dHB1dCBmaWxlIGlzIHRoZSByZXN1bHQgb2YgbWVyZ2luZyBhbGwgdGhlIGZpbGVzIGdlbmVyYXRlZCB1c2luZyB0aGUgS2lvdGEgZG90bmV0IHRvb2wgd2l0aDogYGdlbmVyYXRlIC1sIENTaGFycCAtZCBbc3dhZ2dlciBmaWxlXSAtbyBbb3V0cHV0IGZpbGVdIC1uIFtkZWZhdWx0IG5hbWVzcGFjZV1gLiBJdCBpcyBwb3NzaWJsZSB0byBjb25maWd1cmUgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIG11bHRpcGxlIGZpbGVzIHdoaWNoIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSBzYW1lIHBhdGggYXMgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZG9jdW1lbnQgdGhhdCB3YXMgdXNlZCB0byBnZW5lcmF0ZSBjb2RlLCB0aGlzIGlzIGRvbmUgdW5kZXIgVG9vbHMgLT4gUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yIC0+IEtpb3RhIGFuZCBzZXR0aW5nICoqR2VuZXJhdGUgTXVsdGlwbGUgRmlsZXMqKiB0byAqKnRydWUqKgoKLSAqKipTd2FnZ2VyQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyAqKlN3YWdnZXIgQ29kZWdlbiBDTEkgdjMuMC4zNCoqLgpUaGUgb3V0cHV0IGZpbGUgaXMgdGhlIHJlc3VsdCBvZiBtZXJnaW5nIGFsbCB0aGUgZmlsZXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBTd2FnZ2VyIENvZGVnZW4gQ0xJIHRvb2wgd2l0aDoKYGdlbmVyYXRlIC1sIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAKCi0gKioqQXV0b1Jlc3RDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nICoqQXV0b1Jlc3QgdjMuMC4wLWJldGEuMjAyMTA1MDQuMioqIGZvciBPcGVuQVBJIHYzIGFuZCAqKkF1dG9SZXN0IHYyLjAuNDQxNyoqIGZvciBPcGVuQVBJIHYyLiBUaGUgcmVzdWx0aW5nIGZpbGUgaXMgdGhlIGVxdWl2YWxlbnQgb2YgdXNpbmcgdGhlIEF1dG9SZXN0IENMSSB0b29sIHdpdGg6CiBgLS1jc2hhcnAgLS1pbnB1dC1maWxlPVtzd2FnZ2VyIGZpbGVdIC0tb3V0cHV0LWZpbGU9W291dHB1dCBmaWxlXSAtLW5hbWVzcGFjZT1bZGVmYXVsdCBuYW1lc3BhY2VdIC0tYWRkLWNyZWRlbnRpYWxzYAoKLSAqKipSZWZpdHRlckNvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgaW50ZWZhY2UgZm9yIFtSZWZpdF0oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0aXZldWkvcmVmaXQpIHVzaW5nIFtSZWZpdHRlci5Db3JlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVmaXR0ZXIuQ29yZS8pICoqdjEuMi4wKiouClRoZSBvdXRwdXQgZmlsZSBjb250YWlucyBhIFJlZml0IGludGVyZmFjZSBnZW5lcmF0ZWQgYnkgW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIGFuZCBjb250cmFjdHMgZ2VuZXJhdGVkIHVzaW5nIFtOU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwLykKCiMjIyBEZXBlbmRlbmNpZXMKClRoZSBjdXN0b20gdG9vbCBjb2RlIGdlbmVyYXRvcnMgcGlnZ3kgYmFjayBvbiB0b3Agb2Ygd2VsbCBrbm93biBPcGVuIEFQSSBjbGllbnQgY29kZSBnZW5lcmF0b3JzIGxpa2UgKipBdXRvUmVzdCoqLCAqKk5Td2FnKiosICoqT3BlbkFQSSBHZW5lcmF0b3IqKiwgKipNaWNyb3NvZnQgS2lvdGEqKiwgKipSZWZpdHRlcioqLCBhbmQgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiouIFRoZXNlIHRvb2xzIHJlcXVpcmUgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFuZCB0aGUgW0phdmEgUnVudGltZSBFbnZpcm9ubWVudF0oaHR0cHM6Ly9qYXZhLmNvbS9lbi9kb3dubG9hZC9tYW51YWwuanNwKSB0byBiZSBpbnN0YWxsZWQgb24gdGhlIGRldmVsb3BlcnMgbWFjaGluZS4gQWx0ZXJuYXRpdmUgSmF2YSBTREsgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgdGhlIFtPcGVuSkRLXShodHRwczovL2Fkb3B0b3Blbmpkay5uZXQpIHdvcmtzIGZpbmUgd2l0aCB0aGlzIGV4dGVuc2lvbi4gQnkgZGVmYXVsdCwgdGhlIHBhdGggdG8gKipqYXZhLmV4ZSoqIGlzIHJlYWQgZnJvbSB0aGUgKipKQVZBX0hPTUUqKiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYnV0IGlzIGFsc28gY29uZmlndXJhYmxlIGluIHRoZSBTZXR0aW5ncyBzY3JlZW4uIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgZXh0ZW5zaW9uIHdpbGwgaW5jbHVkZSB0aGUgW09wZW5KREtdKGh0dHBzOi8vYWRvcHRvcGVuamRrLm5ldCkgaW4gdGhlIFZTSVggcGFja2FnZQoKVGhlICoqU3dhZ2dlciBDb2RlZ2VuIENMSSoqIGFuZCAqKk9wZW5BUEkgR2VuZXJhdG9yKiogYXJlIGRpc3RyaWJ1dGVkIGFzIEpBUiBmaWxlcyBhbmQgYXJlIGRvd25sb2FkZWQgb24gZGVtYW5kIGJ1dCByZXF1aXJlcyB0aGUgSmF2YSBTREsgdG8gYmUgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lLiAqKkF1dG9SZXN0KiogaXMgaW5zdGFsbGVkIG9uLWRlbWFuZCB2aWEgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFzIGEgZ2xvYmFsIHRvb2wgYW5kIHVzZXMgdGhlIGxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbi4gKipNaWNyb3NvZnQgS2lvdGEqKiBpcyBpbnN0YWxsZWQgb24tZGVtYW5kIGFzIGEgLk5FVCBUb29sIGFuZCByZXF1aXJlcyAuTkVUIDcuMC4gVGhpcyBtZWFucyB0aGF0IHVzaW5nIHRoZXNlIGN1c3RvbSB0b29scyBoYXZlIGFuIGluaXRpYWwgZGVsYXkgdXBvbiBmaXJzdCB0aW1lIHVzZS4gCgoqKk5Td2FnU3R1ZGlvKiogaXMgc3RhbmQgYWxvbmUgVUkgdG9vbCBmb3IgZWRpdGluZyBhICoqLm5zd2FnKiogc3BlY2lmaWNhdGlvbiBmaWxlIGZvciBnZW5lcmF0aW5nIGNvZGUuIFRoaXMgdG9vbCBpcyBvcHRpb25hbCB0byBpbnN0YWxsIGFuZCBvZmZpY2lhbCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGFyZSBhdmFpbGFibGUgb24gdGhlIFtOU3dhZyBXaWtpIG9uIEdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKS4gSWYgKipOU3dhZ1N0dWRpbyoqIGlzIG5vdCBpbnN0YWxsZWQgb24gdGhlIG1hY2hpbmUgdGhlbiB0aGUgVmlzdWFsIFN0dWRpbyBFeHRlbnNpb24gd2lsbCBpbnN0YWxsIHRoZSAqKk5Td2FnIENMSSoqIHZpYSBbTlBNXShodHRwczovL3d3dy5ucG1qcy5jb20vZ2V0LW5wbSkgYXMgYSBnbG9iYWwgdG9vbCB1c2luZyB0aGUgbGF0ZXN0IGF2YWlsYWJsZSB2ZXJzaW9uLiAKClRoZSAqKk5Td2FnKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtOZXd0b25zb2Z0Lkpzb25dKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9OZXd0b25zb2Z0Lkpzb24vMTMuMC4zKSBOdUdldCBwYWNrYWdlCgpUaGUgKipSZWZpdHRlcioqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbUmVmaXRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZWZpdC83LjAuMCkgTnVHZXQgcGFja2FnZQoKVGhlICoqT3BlbkFQSSBHZW5lcmF0b3IqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzOgoKLSBbUmVzdFNoYXJwXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVzdFNoYXJwLzExMC4yLjApCi0gW0pzb25TdWJUeXBlc10oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0pzb25TdWJUeXBlcy8yLjAuMSkKLSBbUG9sbHldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Qb2xseS84LjQuMCkKLSBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykKClRoZSBwcm9qZWN0ICoqS2lvdGEqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzCgotIFtNaWNyb3NvZnQuS2lvdGEuQWJzdHJhY3Rpb25zXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLkFic3RyYWN0aW9ucykKLSBbTWljcm9zb2Z0Lktpb3RhLkh0dHAuSHR0cENsaWVudExpYnJhcnldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuSHR0cC5IdHRwQ2xpZW50TGlicmFyeSkKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uRm9ybV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLkZvcm0pCi0gW01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLlRleHRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5UZXh0KQotIFtNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uSnNvbikKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uTXVsdGlwYXJ0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uTXVsdGlwYXJ0KQotIFtNaWNyb3NvZnQuS2lvdGEuQXV0aGVudGljYXRpb24uQXp1cmVdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuQXV0aGVudGljYXRpb24uQXp1cmUpCi0gW0F6dXJlLklkZW50aXR5XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvQXp1cmUuSWRlbnRpdHkpCgpUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtSZXN0U2hhcnBdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZXN0U2hhcnAvMTA1LjEuMCkgYW5kIFtKc29uU3ViVHlwZXNdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Kc29uU3ViVHlwZXMvMS4yLjApIE51R2V0IHBhY2thZ2VzCgpUaGUgKipBdXRvUmVzdCoqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbTWljcm9zb2Z0LlJlc3QuQ2xpZW50UnVudGltZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5SZXN0LkNsaWVudFJ1bnRpbWUvMi4zLjI0KSBhbmQgW05ld3RvbnNvZnQuSnNvbl0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL05ld3RvbnNvZnQuSnNvbi8xMy4wLjMpIE51R2V0IHBhY2thZ2VzCgpUaGlzIFZpc3VhbCBTdHVkaW8gRXh0ZW5zaW9uIHdpbGwgYXV0b21hdGljYWxseSBhZGQgdGhlIHJlcXVpcmVkIE51R2V0IHBhY2thZ2VzIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRlcGVuZHMgb24KCiMjIFNjcmVlbnNob3RzCgohW0FkZCAtIEFQSSBDbGllbnQgZnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGltYWdlcy9hZGQtbmV3LW1lbnUucG5nKQoKIVtFbnRlciBVUkwgdG8gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvYWRkLW5ldy1kaWFsb2cucG5nKQoKIVtTb2x1dGlvbiBFeHBsb3JlciBDb250ZXh0IE1lbnVzXShpbWFnZXMvc29sdXRpb24tZXhwbG9yZXItY29udGV4dC1tZW51LmpwZykKCiFbTlN3YWcgU3R1ZGlvIENvbnRleHQgTWVudV0oaW1hZ2VzL25zd2Fnc3R1ZGlvLWNvbnRleHQtbWVudS5qcGcpCgohW1JlZml0dGVyIENvbnRleHQgTWVudV0oaW1hZ2VzL3JlZml0dGVyLWNvbW1hbmQucG5nKQoKIVtLaW90YSBDb250ZXh0IE1lbnVdKGltYWdlcy9nZW5lcmF0ZS1raW90YS1vdXRwdXQucG5nKQoKIyMjIFNldHRpbmdzCgpUaGlzIGV4dGVuc2lvbiB3aWxsIGJ5IGRlZmF1bHQgbWFrZSBzb21lIGFzc3VtcHRpb25zIG9uIHRoZSBpbnN0YWxsYXRpb24gcGF0aHMgZm9yICoqSmF2YSoqLCAqKk5Td2FnKiogYW5kICoqTlBNKiogYnV0IGFsc28gcHJvdmlkZXMgb3B0aW9uIHBhZ2VzIGZvciBjb25maWd1cmluZyB0aGlzLiBUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogYW5kIHRoZSAqKk9wZW5BUEkgR2VuZXJhdG9yKiogSkFSIGZpbGVzIGFyZSBieSBkZWZhdWx0IGRvd25sb2FkZWQgdG8gdGhlIHVzZXIgVEVNUCBmb2xkZXIgYnV0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BlY2lmeSB0byB1c2UgZXhpc3RpbmcgSkFSIGZpbGVzCgohW09wdGlvbnMgLSBHZW5lcmFsXShpbWFnZXMvb3B0aW9ucy1nZW5lcmFsLnBuZykKClN1cHBvcnRzIGN1c3RvbWlzaW5nIGhvdyBBdXRvUmVzdCBnZW5lcmF0ZXMgY29kZSBiYXNlZCBvbiB0aGUgQyMgZ2VuZXJhdG9yIHNldHRpbmdzIHRoYXQgdGhlIEF1dG9SZXN0IENMSSB0b29sIHByb3ZpZGVzCgohW09wdGlvbnMgLSBBdXRvUmVzdF0oaW1hZ2VzL29wdGlvbnMtYXV0b3Jlc3QucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IE5Td2FnIGdlbmVyYXRlcyBjb2RlIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIGV4cG9zZWQgYnkgdGhlIE5Td2FnIE51R2V0IHBhY2thZ2UKCiFbT3B0aW9ucyAtIE5Td2FnXShpbWFnZXMvb3B0aW9ucy1uc3dhZy5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgdGhlICoqLm5zd2FnKiogZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgYSBzdWJzZXQgb2YgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGluIE5Td2FnIFN0dWRpbwoKIVtPcHRpb25zIC0gTlN3YWcgU3R1ZGlvXShpbWFnZXMvb3B0aW9ucy1uc3dhZ3N0dWRpby5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgT3BlbkFQSSBHZW5lcmF0b3IgZ2VuZXJhdGVzIGNvZGUgdXNpbmcgdGhlIGFkZGl0aW9uYWwgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IHRoZSBPcGVuQVBJIEdlbmVyYXRvciBDTEkgdG9vbCBwcm92aWRlcwoKIVtPcHRpb25zIC0gT3BlbkFQSSBHZW5lcmF0b3JdKGltYWdlcy9vcHRpb25zLW9wZW5hcGlnZW5lcmF0b3IucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IFJlZml0dGVyIGdlbmVyYXRlcyB0aGUgUmVmaXQgaW50ZXJmYWNlLiBUaGlzIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSB0eXBlIGRpcmVjdGx5IG9yIHdyYXAgaXQgaW5zaWRlIGFuIGBJQXBpUmVzcG9uc2U8VD5gLiBZb3UgY2FuIGFsc28gZGlzYWJsZSBnZW5lcmF0aW5nIGNvbnRyYWN0cyBvciBYTUwgZG9jIHN0eWxlIGNvbW1lbnRzCgohW09wdGlvbnMgLSBSZWZpdHRlcl0oaW1hZ2VzL3JlZml0dGVyLW9wdGlvbnMucG5nKQoKU3VwcG9ydHMgYWxsb3dpbmcgS2lvdGEgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgZmlsZXMKCiFbT3B0aW9ucyAtIEtpb3RhXShpbWFnZXMvb3B0aW9ucy1raW90YS5wbmcpCgpUaGlzIGV4dGVuc2lvbiBjb2xsZWN0cyBlcnJvcnMgYW5kIHRyYWNrcyBmZWF0dXJlIHVzYWdlcyB0byBhIHNlcnZpY2UgY2FsbGVkIFtFeGNlcHRpb25sZXNzXShodHRwczovL2V4Y2VwdGlvbmxlc3MuY29tKSBhbmQgW0F6dXJlIEFwcGxpY2F0aW9uIEluc2lnaHRzXShodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYXp1cmUtbW9uaXRvci9hcHAvYXBwLWluc2lnaHRzLW92ZXJ2aWV3P1dULm1jX2lkPURULU1WUC01MDA0ODIyKS4gVGhpcyBpcyBkb25lIGFub255bW91c2x5IHVzaW5nIGEgc3VwcG9ydCBrZXkgYW5kIGEgZ2VuZXJhdGVkIGFub255bW91cyBpZGVudGl0eSBiYXNlZCBvbiBhIHNlY3VyZSBoYXNoIG9mIHVzZXJuYW1lQGhvc3QKCiFbT3B0aW9ucyAtIEFuYWx5dGljc10oaW1hZ2VzL3N1cHBvcnQta2V5LnBuZykKCiMjIyBNYWNPUwoKIVtBZGQgLSBBUEkgQ2xpZW50IGZyb20gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvdnNtYWMtYWRkLW5ldy1tZW51LnBuZykKCiFbRW50ZXIgVVJMIHRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaW1hZ2VzL3ZzbWFjLWFkZC1uZXctZGlhbG9nLnBuZykKCiFbU29sdXRpb24gRXhwbG9yZXIgQ29udGV4dCBNZW51c10oaW1hZ2VzL3ZzbWFjLWdlbmVyYXRlLWNvZGUucG5nKQoKIVtOU3dhZyBTdHVkaW8gQ29udGV4dCBNZW51XShpbWFnZXMvdnNtYWMtbnN3YWctc3R1ZGlvLnBuZykKCiMgSW5zdGFsbGF0aW9uCgpUaGUgVmlzdWFsIFN0dWRpbyBleHRlbnNpb24gY2FuIGJlIGluc3RhbGxlZCBkaXJlY3RseSBmcm9tIFZpc3VhbCBTdHVkaW8gMjAxOSBhbmQgMjAyMiB2aWEgdGhlICoqRXh0ZW5zaW9ucyBEaWFsb2cgQm94KiouIFRoZSBwcm9jZXNzIGlzIGJlc3QgZGVzY3JpYmVkIGluIHRoZSBvZmZpY2lhbCBNaWNyb3NvZnQgZG9jdW1lbnRhdGlvbiBmb3IgW01hbmFnaW5nIGV4dGVuc2lvbnMgZm9yIFZpc3VhbCBTdHVkaW9dKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3Zpc3VhbHN0dWRpby9pZGUvZmluZGluZy1hbmQtdXNpbmctdmlzdWFsLXN0dWRpby1leHRlbnNpb25zP3ZpZXc9dnMtMjAxOSZXVC5tY19pZD1EVC1NVlAtNTAwNDgyMikKCiMjIFZpc3VhbCBTdHVkaW8gZm9yIE1hYwoKVGhpcyBpbnN0YWxsYXRpb24gcHJvY2VzcyBmb3IgKipWaXN1YWwgU3R1ZGlvIGZvciBNYWMqKiBpcyBjdXJyZW50bHkgYSBiaXQgdHJvdWJsZXNvbWUgYXMgdGhlIE1vbm9EZXZlbG9wIEFkZGluIFJlcG9zaXRvcnkgaXMgY3VycmVudGx5IG5vdCBhY2NlcHRpbmcgbmV3IHVzZXJzIHNvIEkgY2FuJ3QgcmVhbGx5IHJlZ2lzdGVyIGFuZCBzZXR1cCBteSBleHRlbnNpb24uCgpUaGVyZSBhcmUgMiB3YXlzIG9mIGluc3RhbGxpbmcgbXkgZXh0ZW5zaW9uIG9uIFZpc3VhbCBTdHVkaW8gZm9yIE1hYzogQWRkaW5nIGEgY3VzdG9tIGV4dGVuc2lvbiByZXBvc2l0b3J5IG9yIEluc3RhbGxpbmcgdGhlICoqLm1wYWNrKiogZmlsZSBkaXJlY3RseSBmcm9tIHRoZSBFeHRlbnNpb25zIE1hbmFnZXIKCiMjIyBBZGRpbmcgYSBuZXcgZXh0ZW5zaW9uIHJlcG9zaXRvcnkKCkhlcmUncyB3aGF0IHlvdSBuZWVkIHRvIGRvOgoKLSBPcGVuIHRoZSBWaXN1YWwgU3R1ZGlvIGZvciBNYWMgKipFeHRlbnNpb24gTWFuYWdlcioqCi0gWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIG1lbnUgKipWaXN1YWwgU3R1ZGlvKiogLT4gKipFeHRlbnRpb25zKioKCiFbT3BlbiBFeHRlbnNpb25zIERpYWxvZyBCb3hdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1lbnUucG5nKQoKLSBTZWxlY3QgdGhlICoqR2FsbGVyeSoqIFRhYgotIEV4cGFuZCB0aGUgUmVwb3NpdG9yeSBkcm9wIGRvd24gYm94IGFuZCBzZWxlY3QgKipNYW5hZ2UgUmVwb3NpdG9yaWVzKioKCiFbTWFuYWdlIFJlcG9zaXRvcmllc10oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtbWFuYWdlLXJlcG9zaXRvcmllcy5wbmcpCgotIFByZXNzIG9uIHRoZSAqKkFkZCoqIGJ1dHRvbiB0byBhZGQgYSBuZXcgY3VzdG9tIGV4dGVuc2lvbiByZXBvc2l0b3J5CgohW01hbmFnZSBSZXBvc2l0b3JpZXNdKGltYWdlcy92c21hYy1leHRlbnNpb25zLXJlcG9zaXRvcmllcy5wbmcpCgotIFJlZ2lzdGVyIGFuIG9ubGluZSByZXBvc2l0b3J5IGF0ICoqaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20vdnNtYWMvbWFpbi5tcmVwKioKLSBDbGljayAqKk9LKioKCiFbQWRkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy1leHRlbnNpb25zLWFkZC1yZXBvc2l0b3J5LnBuZykKCi0gTm93IG15IGV4dGVuc2lvbiByZXBvc2l0b3J5IGlzIGFkZGVkIHRvIHRoZSBsaXN0Ci0gTWFrZSBzdXJlIHRoYXQgdGhpcyBpcyBlbmFibGVkIChpbmRpY2F0ZWQgYnkgYSBjaGVjayBib3gpCgohW0FkZCBSZXBvc2l0b3J5IERpYWxvZ10oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtYWRkZWQtcmVwb3NpdG9yeS5wbmcpCgotIFlvdSBzaG91bGQgbm93IGJlIGFibGUgdG8gc2VlIG15IGV4dGVuc2lvbnMgZnJvbSB0aGUgKipHYWxsZXJ5KiogdGFiCgohW0FkZGVkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy1leHRlbnNpb25zLWdhbGxlcnkucG5nKQoKLSBCeSBhZGRpbmcgbXkgZXh0ZW5zaW9uIHJlcG9zaXRvcnkgeW91IHdpbGwgYmUgYWJsZSB0byBjb252ZW5pZW50bHkgdXBkYXRlIG15IGV4dGVuc2lvbiB1c2luZyB0aGUgVmlzdWFsIFN0dWRpbyBmb3IgTWFjIEV4dGVuc2lvbiBNYW5hZ2VyCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtdXBkYXRlcy5wbmcpCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtdXBkYXRlLWluc3RhbGwucG5nKQoKIVtBZGQgUmVwb3NpdG9yeV0oaW1hZ2VzL3ZzbWFjLXVwZGF0ZS1pbnN0YWxsLXByb2dyZXNzLnBuZykKCiMjIyBJbnN0YWxsaW5nIHRoZSAqKi5tcGFjayoqIGZpbGUgZGlyZWN0bHkKCkhlcmUncyB3aGF0IHlvdSBuZWVkIHRvIGRvOgotIERvd25sb2FkIHRoZSBsYXRlc3QgKioubXBhY2sgZmlsZSoqIGZyb20gdGhlIFtMYXRlc3QgR2l0aHViIFJlbGVhc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9hcGljbGllbnRjb2RlZ2VuL3JlbGVhc2VzL2xhdGVzdCkKLSBOb3cgZnJvbSB3aXRoaW4gVmlzdWFsIFN0dWRpbyBmb3IgTWFjIHlvdSBuZWVkIHRvIGxhdW5jaCB0aGUgKipFeHRlbnNpb25zIERpYWxvZyBCb3gqKi4gWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIG1lbnUgKipWaXN1YWwgU3R1ZGlvKiogLT4gKipFeHRlbnRpb25zKioKCiFbT3BlbiBFeHRlbnNpb25zIERpYWxvZyBCb3hdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1lbnUucG5nKQoKLSBDbGljayBvbiB0aGUgKipJbnN0YWxsIGZyb20gRmlsZSoqIGJ1dHRvbgoKIVtNYW51YWxseSBpbnN0YWxsIC5tcGFjayBmaWxlXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1pbnN0YWxsLnBuZykKCi0gQnJvd3NlIHRvIHRoZSAubXBhY2sgZmlsZSBhbmQgc2VsZWN0IGl0LiBZb3Ugd2lsbCBiZSBwcm9tcHRlZCB3aXRoIGEgY29uZmlybWF0aW9uIGRpYWxvZwoKIVtDb25maXJtIC5tcGFjayBmaWxlIGluc3RhbGxdKGltYWdlcy92c21hYy1leHRlbnNpb25zLWluc3RhbGwtY29uZmlybS5wbmcpCgotIENsaWNrICoqSW5zdGFsbCoqIGFuZCByZXN0YXJ0IFZpc3VhbCBTdHVkaW8gZm9yIE1hYwotIFRvIFZlcmlmeSB0aGF0IHRoZSBBZGQtaW4gd2FzIGluc3RhbGxlZCB5b3UgY2FuIHJlLW9wZW4gdGhlIEV4dGVuc2lvbnMgRGlhbG9nIEJveCwgc2VsZWN0IHRoZSAqKkluc3RhbGxlZCoqIHRhYiBhbmQgZXhwYW5kIHRoZSAqKklERSBFeHRlbnNpb25zKiouIFlvdSBzaG91bGQgYmUgYWJsZSB0byBzZWUgdGhlICoqUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yKiouCgotIFVuaW5zdGFsbGluZyB0aGUgQWRkLWluIGlzIGRvbmUgaW4gdGhpcyBzYW1lIGRpYWxvZyBib3ggYnkgY2xpY2tpbmcgdGhlICoqVW5pbnN0YWxsKiogYnV0dG9uCgohW01hbnVhbGx5IHVuaW5zdGFsbCBBZGQtaW5dKGltYWdlcy92c21hYy1leHRlbnNpb25zLXVuaW5zdGFsbC5wbmcpCgoKIyBDcm9zcyBQbGF0Zm9ybSBDb21tYW5kIExpbmUgVG9vbApBbGwgY3VzdG9tIHRvb2xzIG1lbnRpb25lZCBhYm92ZSBhcmUgYWxzbyBpbXBsZW1lbnRlZCBpbiBhIGNyb3NzIHBsYXRmb3JtIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbgoKIyMjIyBSZXF1aXJlbWVudHMKLSAuTkVUIDYuMCBydW50aW1lCi0gSmF2YSBSdW50aW1lIEVudmlyb25tZW50Ci0gTlBNCgojIyMgSW5zdGFsbGF0aW9uClRoZSB0b29sIGNhbiBiZSBpbnN0YWxsZWQgYXMgYSAuTkVUIENvcmUgZ2xvYmFsIHRvb2wgdGhhdCB5b3UgY2FuIGNhbGwgZnJvbSB0aGUgc2hlbGwgLyBjb21tYW5kIGxpbmUKYGBgCmRvdG5ldCB0b29sIGluc3RhbGwgLS1nbG9iYWwgcmFwaWNnZW4KYGBgCm9yIGJ5IGZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zIFtoZXJlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pIHRvIGluc3RhbGwgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRvb2wKCiMjIyBVc2FnZQpTaW5jZSB0aGUgdG9vbCBpcyBwdWJsaXNoZWQgYXMgYSAuTkVUIENvcmUgVG9vbCwgaXQgY2FuIGJlIGxhdW5jaGVkIGZyb20gYW55d2hlcmUgdXNpbmcgYW55IGNvbW1hbmQgbGluZSBpbnRlcmZhY2UgYnkgY2FsbGluZyAqKnJhcGljZ2VuKiouClRoZSBoZWxwIGluZm9ybWF0aW9uIGlzIGRpc3BsYXllZCB3aGVuIG5vdCBzcGVjaWZ5aW5nIGFueSBhcmd1bWVudHMgdG8gKipyYXBpY2dlbioqCgpgYGAKVXNhZ2U6IHJhcGljZ2VuIFtjb21tYW5kXSBbb3B0aW9uc10KCk9wdGlvbnM6CiAgLXZ8LS12ZXJib3NlICAgICAgIFNob3cgdmVyYm9zZSBvdXRwdXQKICAtP3wtaHwtLWhlbHAgICAgICAgU2hvdyBoZWxwIGluZm9ybWF0aW9uLgoKQ29tbWFuZHM6CiAgY3NoYXJwICAgICAgICAgICAgIEdlbmVyYXRlIEMjIEFQSSBjbGllbnRzCiAgam1ldGVyICAgICAgICAgICAgIEdlbmVyYXRlIEFwYWNoZSBKTWV0ZXIgdGVzdCBwbGFucwogIG9wZW5hcGktZ2VuZXJhdG9yICBHZW5lcmF0ZSBjb2RlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yICh2Ny44LjApLgogICAgICAgICAgICAgICAgICAgICBTZWUgc3VwcG9ydGVkIGdlbmVyYXRvcnMgYXQgaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy8KICB0eXBlc2NyaXB0ICAgICAgICAgR2VuZXJhdGUgVHlwZVNjcmlwdCBBUEkgY2xpZW50cwoKUnVuICdyYXBpY2dlbiBbY29tbWFuZF0gLT98LWh8LS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuCmBgYAoKU29tZSBoZWxwIGluZm9ybWF0aW9uIGlzIGFsc28gcHJvdmlkZWQgcGVyIGNvbW1hbmQgYW5kIGNhbiBiZSBsYXVuY2hlZCBieSAKCmBgYApyYXBpY2dlbiBbY29tbWFuZCBuYW1lXSAtPwpgYGAKCm9yCgpgYGAKcmFwaWNnZW4gW2NvbW1hbmQgbmFtZV0gW3N1YiBjb21tYW5kIG5hbWVdIC0/CmBgYAoKRm9yIGV4YW1wbGU6CgpgYGAKcmFwaWNnZW4gY3NoYXJwIC0/CmBgYCAKCndpbGwgb3V0cHV0IHRoaXM6CgpgYGAKR2VuZXJhdGUgQyMgQVBJIGNsaWVudHMKClVzYWdlOiByYXBpY2dlbiBjc2hhcnAgW2NvbW1hbmRdIFtvcHRpb25zXQoKT3B0aW9uczoKICAtP3wtaHwtLWhlbHAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KCkNvbW1hbmRzOgogIGF1dG9yZXN0ICAgICAgQXV0b1Jlc3QgKHYzLjAuMC1iZXRhLjIwMjEwNTA0LjIpCiAga2lvdGEgICAgICAgICBNaWNyb3NvZnQgS2lvdGEgKHYxLjE4LjApCiAgbnN3YWcgICAgICAgICBOU3dhZyAodjE0LjEuMCkKICBvcGVuYXBpICAgICAgIE9wZW5BUEkgR2VuZXJhdG9yICh2Ny44LjApCiAgcmVmaXR0ZXIgICAgICBSZWZpdHRlciAodjEuMi4wKQogIHN3YWdnZXIgICAgICAgU3dhZ2dlciBDb2RlZ2VuIENMSSAodjMuMC4zNCkKClJ1biAnY3NoYXJwIFtjb21tYW5kXSAtP3wtaHwtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4KCmBgYAoKYW5kCgpgYGAKcmFwaWNnZW4gY3NoYXJwIGF1dG9yZXN0IC0/CmBgYAoKd2lsbCBvdXRwdXQgdGhpczoKCmBgYApHZW5lcmF0ZSBTd2FnZ2VyIC8gT3BlbiBBUEkgY2xpZW50IHVzaW5nIEF1dG9SZXN0CgpVc2FnZTogcnVuIGF1dG9yZXN0IFtvcHRpb25zXSA8c3dhZ2dlckZpbGU+IDxuYW1lc3BhY2U+IDxvdXRwdXRGaWxlPgoKQXJndW1lbnRzOgogIHN3YWdnZXJGaWxlICAgUGF0aCB0byB0aGUgU3dhZ2dlciAvIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gZmlsZQogIG5hbWVzcGFjZSAgICAgRGVmYXVsdCBuYW1lc3BhY2UgdG8gaW4gdGhlIGdlbmVyYXRlZCBjb2RlCiAgb3V0cHV0RmlsZSAgICBPdXRwdXQgZmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBjb2RlIHRvLiBEZWZhdWx0IGlzIHRoZSBzd2FnZ2VyRmlsZSAuY3MKCk9wdGlvbnM6CiAgLT98LWh8LS1oZWxwICBTaG93IGhlbHAgaW5mb3JtYXRpb24KYGBgCgpvciAKCmBgYApyYXBpY2dlbiB0eXBlc2NyaXB0IC0/CmBgYAoKd2lsbCBvdXRwdXQgdGhpczoKCmBgYApHZW5lcmF0ZSBUeXBlU2NyaXB0IEFQSSBjbGllbnQKClVzYWdlOiByYXBpY2dlbiB0eXBlc2NyaXB0IFtvcHRpb25zXSA8Z2VuZXJhdG9yPiA8c3dhZ2dlckZpbGU+IDxvdXRwdXRQYXRoPgoKQXJndW1lbnRzOgogIGdlbmVyYXRvciAgICAgICAgIFRoZSB0ZWNoIHN0YWNrIHRvIHVzZSBmb3IgdGhlIGdlbmVyYXRlZCBjbGllbnQgbGlicmFyeQogICAgICAgICAgICAgICAgICAgIEFsbG93ZWQgdmFsdWVzIGFyZTogQW5ndWxhciwgQXVyZWxpYSwgQXhpb3MsIEZldGNoLCBJbnZlcnNpZnksIEpRdWVyeSwgTmVzdEpTLCBOb2RlLCBSZWR1eFF1ZXJ5LAogICAgICAgICAgICAgICAgICAgIFJ4anMuCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZSBpczogQW5ndWxhci4KICBzd2FnZ2VyRmlsZSAgICAgICBQYXRoIHRvIHRoZSBTd2FnZ2VyIC8gT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiBmaWxlCiAgb3V0cHV0UGF0aCAgICAgICAgT3V0cHV0IGZvbGRlciB0byB3cml0ZSB0aGUgZ2VuZXJhdGVkIGNvZGUgdG8KICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IHZhbHVlIGlzOiB0eXBlc2NyaXB0LWdlbmVyYXRlZC1jb2RlLgoKT3B0aW9uczoKICAtbmx8LS1uby1sb2dnaW5nICBEaXNhYmxlcyBBbmFseXRpY3MgYW5kIEVycm9yIFJlcG9ydGluZwogIC0/fC1ofC0taGVscCAgICAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KYGBgCgojIyBVc2FnZSBFeGFtcGxlczoKCkxldCdzIHNheSB3ZSBoYXZlIGEgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyBkb2N1bWVudCBjYWxsZWQgKipTd2FnZ2VyLmpzb24qKgoKRm9yIHN0YXJ0ZXJzLCB3ZSBjYW4gdXNlIHRoZSBTd2FnZ2VyIFBldHN0b3JlIHNwZWMuIEhlcmUncyBhbiBleGFtcGxlIHBvd2Vyc2hlbGwgc2NyaXB0IGZvciBkb3dubG9hZGluZyBpdAoKYGBgCkludm9rZS1XZWJSZXF1ZXN0IC1VcmkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YzL3N3YWdnZXIuanNvbiAtT3V0RmlsZSBTd2FnZ2VyLmpzb24KYGBgCgpJbiBjYXNlIHlvdSBkb24ndCBoYXZlIHRoZSBDTEkgdG9vbCBpbnN0YWxsZWQgeW91IGNhbiBpbnN0YWxsIGl0IGJ5CgpgYGAKZG90bmV0IHRvb2wgaW5zdGFsbCAtLWdsb2JhbCByYXBpY2dlbgpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqQXV0b1Jlc3QqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBhdXRvcmVzdCBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL0F1dG9SZXN0T3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipLaW90YSoqCgpgYGAKcmFwaWNnZW4gY3NoYXJwIGtpb3RhIFN3YWdnZXIuanNvbiBHZW5lcmF0ZWRDb2RlIC4vT3BlbkFwaU91dHB1dC5jcwpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqTlN3YWcqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBuc3dhZyBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL05Td2FnT3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgc3dhZ2dlciBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL1N3YWdnZXJPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSB1c2luZyAqKk9wZW5BUEkgR2VuZXJhdG9yKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgb3BlbmFwaSBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL09wZW5BcGlPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSAqKkpNZXRlcioqIHRlc3QgcGxhbnMKCmBgYApyYXBpY2dlbiBqbWV0ZXIgU3dhZ2dlci5qc29uCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgZm9yICoqVHlwZVNjcmlwdCoqCgpgYGAKcmFwaWNnZW4gdHlwZXNjcmlwdCBBbmd1bGFyIFN3YWdnZXIuanNvbgpgYGAKCiMKCkZvciB0aXBzIGFuZCB0cmlja3Mgb24gc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGNoZWNrIG91dCBbbXkgYmxvZ10oaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20pCgpJZiB5b3UgZmluZCB0aGlzIHVzZWZ1bCBhbmQgZmVlbCBhIGJpdCBnZW5lcm91cyB0aGVuIGZlZWwgZnJlZSB0byBbYnV5IG1lIGEgY29mZmVlIOKYlV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKCg== readmeEtag: '"4d900376f973e7d188c647e0cd82f04f59676137"' readmeLastModified: Thu, 05 Sep 2024 22:47:20 GMT repositoryId: 166226127 description: >- A collection of Visual Studio custom tool code generators for Swagger / OpenAPI specification files created: '2019-01-17T12:58:50Z' updated: '2024-09-05T22:47:24Z' language: C# archived: false stars: 174 watchers: 6 forks: 21 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: GPL-3.0 repoEtag: '"d986943efee926e57f7d86ba16c5f0b95e193118d84b853b50682acab5fe337a"' repoLastModified: Thu, 05 Sep 2024 22:47:24 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/lezhnev74/openapi-psr7-validator v3: true repositoryMetadata: base64Readme: >- WyFbTGF0ZXN0IFN0YWJsZSBWZXJzaW9uXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL2xlemhuZXY3NC9vcGVuYXBpLXBzcjctdmFsaWRhdG9yL3Yvc3RhYmxlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2xlemhuZXY3NC9vcGVuYXBpLXBzcjctdmFsaWRhdG9yKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9sZXpobmV2NzQvb3BlbmFwaS1wc3I3LXZhbGlkYXRvci5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9sZXpobmV2NzQvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcikKWyFbTGljZW5zZV0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9sZXpobmV2NzQvb3BlbmFwaS1wc3I3LXZhbGlkYXRvci9saWNlbnNlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2xlemhuZXY3NC9vcGVuYXBpLXBzcjctdmFsaWRhdG9yKQohW2NvbnRyaWJ1dGlvbnMgd2VsY29tZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb250cmlidXRpb25zLXdlbGNvbWUtYnJpZ2h0Z3JlZW4uc3ZnKQoKIyBOT1RJQ0UgLSBUSEUgUEFDS0FHRSBIQVMgQkVFTiBDT05UUklCVVRFRCBUTyBUSEUgUEhQIExFQUdVRQoKR28gdG8gaHR0cHM6Ly9naXRodWIuY29tL3RoZXBocGxlYWd1ZS9vcGVuYXBpLXBzcjctdmFsaWRhdG9yCgpUaGlzIHBhY2thZ2UgaXMgaGVyZSBmb3IgZXhpc3RpbmcgdXNlcnMgb25seS4KCiMgT3BlbkFQSSBQU1ItNyBNZXNzYWdlIChIVFRQIFJlcXVlc3QvUmVzcG9uc2UpIFZhbGlkYXRvcgpUaGlzIHBhY2thZ2UgY2FuIHZhbGlkYXRlIFBTUi03IG1lc3NhZ2VzIGFnYWluc3QgT3BlbkFQSSAoMy4wLngpIHNwZWNpZmljYXRpb25zIApleHByZXNzZWQgaW4gWUFNTCBvciBKU09OLiAKCiFbXShpbWFnZS5qcGcpCgojIyBJbnN0YWxsYXRpb24KYGBgCmNvbXBvc2VyIHJlcXVpcmUgbGV6aG5ldjc0L29wZW5hcGktcHNyNy12YWxpZGF0b3IKYGBgCgojIyBPcGVuQVBJIChPQVMpIFRlcm1zClRoZXJlIGFyZSBzb21lIHNwZWNpZmljIHRlcm1zIHRoYXQgYXJlIHVzZWQgaW4gdGhlIHBhY2thZ2UuIFRoZXNlIHRlcm1zIGNvbWUgCmZyb20gT3BlbkFQSToKLSBgc3BlY2lmaWNhdGlvbmAgLSBhbiBPcGVuQVBJIGRvY3VtZW50IGRlc2NyaWJpbmcgYW4gQVBJLCBleHByZXNzZWQgaW4gSlNPTiBvciBZQU1MIGZpbGUKLSBgZGF0YWAgLSBhY3R1YWwgdGhpbmcgdGhhdCB3ZSB2YWxpZGF0ZSBhZ2FpbnN0IGEgc3BlY2lmaWNhdGlvbiwgaW5jbHVkaW5nIGJvZHkgYW5kIG1ldGFkYXRhCi0gYHNjaGVtYWAgLSB0aGUgcGFydCBvZiB0aGUgc3BlY2lmaWNhdGlvbiB0aGF0IGRlc2NyaWJlcyB0aGUgYm9keSBvZiB0aGUgcmVxdWVzdCAvIHJlc3BvbnNlCi0gYGtleXdvcmRgIC0gcHJvcGVydGllcyB0aGF0IGFyZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBpbnN0YW5jZSBhcmUgY2FsbGVkIGtleQp3b3Jkcywgb3Igc2NoZW1hIGtleXdvcmRzCi0gYHBhdGhgIC0gYSByZWxhdGl2ZSBwYXRoIHRvIGFuIGluZGl2aWR1YWwgZW5kcG9pbnQKLSBgb3BlcmF0aW9uYCAtIGEgbWV0aG9kIHRoYXQgd2UgYXBwbHkgb24gdGhlIHBhdGggKGxpa2UgYGdldCAvcGFzc3dvcmRgKQotIGByZXNwb25zZWAgLSBkZXNjcmliZWQgcmVzcG9uc2UgKGluY2x1ZGVzIHN0YXR1cyBjb2RlLCBjb250ZW50IHR5cGVzIGV0YykKCgojIyBIb3cgVG8gVmFsaWRhdGUKCiMjIyBTZXJ2ZXJSZXF1ZXN0IE1lc3NhZ2UKWW91IGNhbiB2YWxpZGF0ZSBgXFBzclxIdHRwXE1lc3NhZ2VcU2VydmVyUmVxdWVzdEludGVyZmFjZWAgaW5zdGFuY2UgbGlrZSB0aGlzOgoKYGBgcGhwCiR5YW1sRmlsZSA9ICJhcGkueWFtbCI7CiRqc29uRmlsZSA9ICJhcGkuanNvbiI7CgokdmFsaWRhdG9yID0gKG5ldyBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbVlhbWxGaWxlKCR5YW1sRmlsZSktPmdldFNlcnZlclJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tWWFtbChmaWxlX2dldF9jb250ZW50cygkeWFtbEZpbGUpKS0+Z2V0U2VydmVyUmVxdWVzdFZhbGlkYXRvcigpOwojb3IKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21Kc29uKGZpbGVfZ2V0X2NvbnRlbnRzKCRqc29uRmlsZSkpLT5nZXRTZXJ2ZXJSZXF1ZXN0VmFsaWRhdG9yKCk7CiNvcgokdmFsaWRhdG9yID0gKG5ldyBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbUpzb25GaWxlKCRqc29uRmlsZSktPmdldFNlcnZlclJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiRzY2hlbWEgPSBuZXcgXGNlYmVcb3BlbmFwaVxzcGVjXE9wZW5BcGkoKTsgLy8gZ2VuZXJhdGUgc2NoZW1hIG9iamVjdCBieSBoYW5kCiR2YWxpZGF0b3IgPSAobmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tU2NoZW1hKCRzY2hlbWEpLT5nZXRTZXJ2ZXJSZXF1ZXN0VmFsaWRhdG9yKCk7CgokbWF0Y2ggPSAkdmFsaWRhdG9yLT52YWxpZGF0ZSgkcmVxdWVzdCk7CmBgYAoKQXMgYSByZXN1bHQgeW91IHdvdWxkIGdldCBhbmQgYE9wZXJhdGlvbkFkZHJlc3MgJG1hdGNoYCB3aGljaCBoYXMgbWF0Y2hlZCB0aGUgZ2l2ZW4gcmVxdWVzdC4gSWYgeW91IGFscmVhZHkga25vdwp0aGUgb3BlcmF0aW9uIHdoaWNoIHNob3VsZCBtYXRjaCB5b3VyIHJlcXVlc3QgKGkuZSB5b3UgaGF2ZSByb3V0aW5nIGluIHlvdXIgcHJvamVjdCksIHlvdSBjYW4gdXNlIApgUm91dGVyUmVxdWVzdFZhbGlkYXRvcmAKCmBgYHBocAokYWRkcmVzcyA9IG5ldyBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xPcGVyYXRpb25BZGRyZXNzKCcvc29tZS9vcGVyYXRpb24nLCAncG9zdCcpOwoKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21TY2hlbWEoJHNjaGVtYSktPmdldFJvdXRlZFJlcXVlc3RWYWxpZGF0b3IoKTsKCiR2YWxpZGF0b3ItPnZhbGlkYXRlKCRhZGRyZXNzLCAkcmVxdWVzdCk7CmBgYAoKVGhpcyB3b3VsZCBzaW1wbGlmeSB2YWxpZGF0aW9uIGEgbG90IGFuZCBnaXZlIHlvdSBtb3JlIHBlcmZvcm1hbmNlLgoKIyMjIFJlcXVlc3QgTWVzc2FnZQpZb3UgY2FuIHZhbGlkYXRlIGBcUHNyXEh0dHBcTWVzc2FnZVxSZXF1ZXN0SW50ZXJmYWNlYCBpbnN0YW5jZSBsaWtlIHRoaXM6CgpgYGBwaHAKJHlhbWxGaWxlID0gImFwaS55YW1sIjsKJGpzb25GaWxlID0gImFwaS5qc29uIjsKCiR2YWxpZGF0b3IgPSAobmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tWWFtbEZpbGUoJHlhbWxGaWxlKS0+Z2V0UmVxdWVzdFZhbGlkYXRvcigpOwojb3IKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21ZYW1sKGZpbGVfZ2V0X2NvbnRlbnRzKCR5YW1sRmlsZSkpLT5nZXRSZXF1ZXN0VmFsaWRhdG9yKCk7CiNvcgokdmFsaWRhdG9yID0gKG5ldyBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xWYWxpZGF0b3JCdWlsZGVyKS0+ZnJvbUpzb24oZmlsZV9nZXRfY29udGVudHMoJGpzb25GaWxlKSktPmdldFJlcXVlc3RWYWxpZGF0b3IoKTsKI29yCiR2YWxpZGF0b3IgPSAobmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tSnNvbkZpbGUoJGpzb25GaWxlKS0+Z2V0UmVxdWVzdFZhbGlkYXRvcigpOwojb3IKJHNjaGVtYSA9IG5ldyBcY2ViZVxvcGVuYXBpXHNwZWNcT3BlbkFwaSgpOyAvLyBnZW5lcmF0ZSBzY2hlbWEgb2JqZWN0IGJ5IGhhbmQKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21TY2hlbWEoJHNjaGVtYSktPmdldFJlcXVlc3RWYWxpZGF0b3IoKTsKCiRtYXRjaCA9ICR2YWxpZGF0b3ItPnZhbGlkYXRlKCRyZXF1ZXN0KTsKYGBgCgojIyMgUmVzcG9uc2UgTWVzc2FnZQpWYWxpZGF0aW9uIG9mIGBcUHNyXEh0dHBcTWVzc2FnZVxSZXNwb25zZUludGVyZmFjZWAgaXMgYSBiaXQgbW9yZSBjb21wbGljYXRlZAouIEJlY2F1c2UgeW91IG5lZWQgbm90IG9ubHkgWUFNTCBmaWxlIGFuZCBSZXNwb25zZSBpdHNlbGYsIGJ1dCBhbHNvIHlvdSBuZWVkIAp0byBrbm93IHdoaWNoIG9wZXJhdGlvbiB0aGlzIHJlc3BvbnNlIGJlbG9uZ3MgdG8gKGluIHRlcm1zIG9mIE9wZW5BUEkpLgoKRXhhbXBsZToKCmBgYHBocAokeWFtbEZpbGUgPSAiYXBpLnlhbWwiOwokanNvbkZpbGUgPSAiYXBpLmpzb24iOwoKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwojb3IKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21ZYW1sKGZpbGVfZ2V0X2NvbnRlbnRzKCR5YW1sRmlsZSkpLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwojb3IKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21Kc29uKGZpbGVfZ2V0X2NvbnRlbnRzKCRqc29uRmlsZSkpLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwojb3IKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21Kc29uRmlsZSgkanNvbkZpbGUpLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwojb3IKJHNjaGVtYSA9IG5ldyBcY2ViZVxvcGVuYXBpXHNwZWNcT3BlbkFwaSgpOyAvLyBnZW5lcmF0ZSBzY2hlbWEgb2JqZWN0IGJ5IGhhbmQKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdG9yQnVpbGRlciktPmZyb21TY2hlbWEoJHNjaGVtYSktPmdldFJlc3BvbnNlVmFsaWRhdG9yKCk7Cgokb3BlcmF0aW9uID0gbmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XE9wZXJhdGlvbkFkZHJlc3MoJy9wYXNzd29yZC9nZW4nLCAnZ2V0JykgOwoKJHZhbGlkYXRvci0+dmFsaWRhdGUoJG9wZXJhdGlvbiwgJHJlcXVlc3QpOwpgYGAKCiMjIyBSZXVzZSBTY2hlbWEgQWZ0ZXIgVmFsaWRhdGlvbgoKYFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXJgIHJlYWRzIGFuZCBjb21waWxlcyBzY2hlbWEgaW4gbWVtb3J5IGFzIGluc3RhbmNlIG9mIGBcY2ViZVxvcGVuYXBpXHNwZWNcT3BlbkFwaWAuIFZhbGlkYXRvcnMgdXNlIHRoaXMgaW5zdGFuY2UgdG8gcGVyZm9ybSB2YWxpZGF0aW9uIGxvZ2ljLiBZb3UgY2FuIHJldXNlIHRoaXMgaW5zdGFuY2UgYWZ0ZXIgdGhlIHZhbGlkYXRpb24gbGlrZSB0aGlzOgoKYGBgcGhwCiR2YWxpZGF0b3IgPSAobmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tWWFtbEZpbGUoJHlhbWxGaWxlKS0+Z2V0U2VydmVyUmVxdWVzdFZhbGlkYXRvcigpOwojIG9yCiR2YWxpZGF0b3IgPSAobmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpLT5mcm9tWWFtbEZpbGUoJHlhbWxGaWxlKS0+Z2V0UmVzcG9uc2VWYWxpZGF0b3IoKTsKCi8qKiBAdmFyIFxjZWJlXG9wZW5hcGlcc3BlY1xPcGVuQXBpICovCiRvcGVuQXBpID0gJHZhbGlkYXRvci0+Z2V0U2NoZW1hKCk7CmBgYAoKIyMjIFJlcXVlc3QgTWVzc2FnZQpgXFBzclxIdHRwXE1lc3NhZ2VcUmVxdWVzdEludGVyZmFjZWAgdmFsaWRhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuIAoKIyMjIFBTUi0xNSBNaWRkbGV3YXJlClBTUi0xNSBtaWRkbGV3YXJlIGNhbiBiZSB1c2VkIGxpa2UgdGhpczoKCmBgYHBocAokeWFtbEZpbGUgPSAnYXBpLnlhbWwnOwokanNvbkZpbGUgPSAnYXBpLmpzb24nOwoKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21ZYW1sKGZpbGVfZ2V0X2NvbnRlbnRzKCR5YW1sRmlsZSkpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21Kc29uRmlsZSgkanNvbkZpbGUpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21Kc29uKGZpbGVfZ2V0X2NvbnRlbnRzKCRqc29uRmlsZSkpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHNjaGVtYSA9IG5ldyBcY2ViZVxvcGVuYXBpXHNwZWNcT3BlbkFwaSgpOyAvLyBnZW5lcmF0ZSBzY2hlbWEgb2JqZWN0IGJ5IGhhbmQKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdGlvbk1pZGRsZXdhcmVCdWlsZGVyKS0+ZnJvbVNjaGVtYSgkc2NoZW1hKS0+Z2V0VmFsaWRhdGlvbk1pZGRsZXdhcmUoKTsKYGBgCgojIyMgU2xpbUZyYW1ld29yayBNaWRkbGV3YXJlClNsaW0gZnJhbWV3b3JrIHVzZXMgc2xpZ2h0bHkgZGlmZmVyZW50IG1pZGRsZXdhcmUgaW50ZXJmYWNlLCBzbyBoZXJlIGlzIGFuIAphZGFwdGVyIHdoaWNoIHlvdSBjYW4gdXNlIGxpa2UgdGhpczoKCmBgYHBocAokeWFtbEZpbGUgPSAnYXBpLnlhbWwnOwokanNvbkZpbGUgPSAnYXBpLmpzb24nOwoKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21ZYW1sKGZpbGVfZ2V0X2NvbnRlbnRzKCR5YW1sRmlsZSkpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21Kc29uRmlsZSgkanNvbkZpbGUpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHBzcjE1TWlkZGxld2FyZSA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlQnVpbGRlciktPmZyb21Kc29uKGZpbGVfZ2V0X2NvbnRlbnRzKCRqc29uRmlsZSkpLT5nZXRWYWxpZGF0aW9uTWlkZGxld2FyZSgpOwojb3IKJHNjaGVtYSA9IG5ldyBcY2ViZVxvcGVuYXBpXHNwZWNcT3BlbkFwaSgpOyAvLyBnZW5lcmF0ZSBzY2hlbWEgb2JqZWN0IGJ5IGhhbmQKJHZhbGlkYXRvciA9IChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcVmFsaWRhdGlvbk1pZGRsZXdhcmVCdWlsZGVyKS0+ZnJvbVNjaGVtYSgkc2NoZW1hKS0+Z2V0VmFsaWRhdGlvbk1pZGRsZXdhcmUoKTsKCiRzbGltTWlkZGxld2FyZSA9IG5ldyBcT3BlbkFQSVZhbGlkYXRpb25cUFNSMTVcU2xpbUFkYXB0ZXIoJHBzcjE1TWlkZGxld2FyZSk7CgovKiogQHZhciBcU2xpbVxBcHAgJGFwcCAqLwokYXBwLT5hZGQoJHNsaW1NaWRkbGV3YXJlKTsKYGBgCgojIyMgQ2FjaGluZyBMYXllciAvIFBTUi02IFN1cHBvcnQKUFNSLTcgVmFsaWRhdG9yIGhhcyBhIGJ1aWx0LWluIGNhY2hpbmcgbGF5ZXIgKGJhc2VkIG9uIFtQU1ItNl0oaHR0cHM6Ly93d3cucGhwLWZpZy5vcmcvcHNyL3Bzci02LykgaW50ZXJmYWNlcykgd2hpY2ggc2F2ZXMgdGltZSBvbiBwYXJzaW5nIE9wZW5BUEkgc3BlY3MuIEl0IGlzIG9wdGlvbmFsLgpZb3UgZW5hYmxlIGNhY2hpbmcgaWYgeW91IHBhc3MgYSBjb25maWd1cmVkIENhY2hlIFBvb2wgT2JqZWN0IHRvIHRoZSBzdGF0aWMgY29uc3RydWN0b3IgbGlrZSB0aGlzOgpgYGBwaHAKLy8gQ29uZmlndXJlIGEgUFNSLTYgQ2FjaGUgUG9vbAokY2FjaGVQb29sID0gbmV3IEFycmF5Q2FjaGVQb29sKCk7CgovLyBQYXNzIGl0IGFzIGEgMm5kIGFyZ3VtZW50CiR2YWxpZGF0b3IgPSAobmV3IFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXIpCiAgICAtPmZyb21ZYW1sRmlsZSgkeWFtbEZpbGUpCiAgICAtPnNldENhY2hlKCRjYWNoZVBvb2wpCiAgICAtPmdldFJlc3BvbnNlVmFsaWRhdG9yKCk7CiMgb3IKXE9wZW5BUElWYWxpZGF0aW9uXFBTUjE1XFZhbGlkYXRpb25NaWRkbGV3YXJlOjpmcm9tWWFtbEZpbGUoJHlhbWxGaWxlLCAkY2FjaGVQb29sKTsKYGBgCgpZb3UgY2FuIHVzZSBgLT5zZXRDYWNoZSgkcG9vbCwgJHR0bClgIGNhbGwgZm9yIGJvdGggUFNSLTcgYW5kIFBTUi0xNSBidWlsZGVyIGluIG9yZGVyIHRvIHNldCAKW3Byb3BlciBleHBpcmF0aW9uIHR0bCBpbiBzZWNvbmRzIChvciBleHBsaWNpdCBgbnVsbGApXShodHRwczovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTYvI2RlZmluaXRpb25zKQoKSWYgeW91IHdhbnQgdGFrZSBjb250cm9sIG92ZXIgdGhlIGNhY2hlIGtleSBmb3Igc2NoZW1hIGl0ZW0sIG9yIHlvdXIgY2FjaGUgZG9lcyBub3Qgc3VwcG9ydCBjYWNoZSBrZXkgZ2VuZXJhdGlvbiBieSBpdHNlbGYKeW91IGNhbiBgLT5vdmVycmlkZUNhY2hlS2V5KCdteV9jdXN0b21fa2V5JylgIHRvIGVuc3VyZSBjYWNoZSB1c2VzIGtleSB5b3Ugd2FudC4KCiMjIyBTdGFuZGFsb25lIE9wZW5BUEkgVmFsaWRhdG9yClRoZSBwYWNrYWdlIGNvbnRhaW5zIGEgc3RhbmRhbG9uZSB2YWxpZGF0b3Igd2hpY2ggY2FuIHZhbGlkYXRlIGFueSBkYXRhIAphZ2FpbnN0IGFuIE9wZW5BUEkgc2NoZW1hIGxpa2UgdGhpczoKCmBgYHBocAokc3BlYyA9IDw8PFNQRUMKc2NoZW1hOgogIHR5cGU6IHN0cmluZwogIGVudW06CiAgLSBhCiAgLSBiClNQRUM7CiRkYXRhID0gImMiOwoKJHNwZWMgICA9IGNlYmVcb3BlbmFwaVxSZWFkZXI6OnJlYWRGcm9tWWFtbCgkc3BlYyk7CiMgKG9wdGlvbmFsKSByZWZlcmVuY2UgcmVzb2x2aW5nCiRzcGVjLT5yZXNvbHZlUmVmZXJlbmNlcyhuZXcgUmVmZXJlbmNlQ29udGV4dCgkc3BlYywgIi8iKSk7CiRzY2hlbWEgPSBuZXcgY2ViZVxvcGVuYXBpXHNwZWNcU2NoZW1hKCRzcGVjLT5zY2hlbWEpOwoKdHJ5IHsKICAgIChuZXcgXE9wZW5BUElWYWxpZGF0aW9uXFNjaGVtYVxTY2hlbWFWYWxpZGF0b3IoKSktPnZhbGlkYXRlKCRkYXRhLCAkc2NoZW1hKTsKfSBjYXRjaChcT3BlbkFQSVZhbGlkYXRpb25cU2NoZW1hXEV4Y2VwdGlvblxLZXl3b3JkTWlzbWF0Y2ggJGUpIHsKICAgIC8vIHlvdSBjYW4gZXZhbHVhdGUgZmFpbHVyZSBkZXRhaWxzCiAgICAvLyAkZS0+a2V5d29yZCgpID09ICJlbnVtIgogICAgLy8gJGUtPmRhdGEoKSA9PSAiYyIKICAgIC8vICRlLT5kYXRhQnJlYWRDcnVtYigpLT5idWlsZENoYWluKCkgLS0gb25seSBmb3IgbmVzdGVkIGRhdGEKfQpgYGAKCiMjIEN1c3RvbSBUeXBlIEZvcm1hdHMKQXMgeW91IGtub3csIE9wZW5BUEkgYWxsb3dzIHlvdSB0byBhZGQgZm9ybWF0cyB0byB0eXBlczoKCmBgYHlhbWwKc2NoZW1hOgogIHR5cGU6IHN0cmluZwogIGZvcm1hdDogYmluYXJ5CmBgYAoKVGhpcyBwYWNrYWdlIGNvbnRhaW5zIGEgYnVuY2ggb2YgYnVpbHQtaW4gZm9ybWF0IHZhbGlkYXRvcnM6Ci0gYHN0cmluZ2AgdHlwZToKICAgIC0gYGJ5dGVgCiAgICAtIGBkYXRlYAogICAgLSBgZGF0ZS10aW1lYAogICAgLSBgZW1haWxgCiAgICAtIGBob3N0bmFtZWAKICAgIC0gYGlwdjRgCiAgICAtIGBpcHY2YAogICAgLSBgdXJpYAogICAgLSBgdXVpZGAgKHV1aWQ0KQotIGBudW1iZXJgIHR5cGUKICAgIC0gYGZsb2F0YAogICAgLSBgZG91YmxlYAoKWW91IGNhbiBhbHNvIGFkZCB5b3VyIG93biBmb3JtYXRzLiBMaWtlIHRoaXM6CmBgYHBocAojIEEgZm9ybWF0IHZhbGlkYXRvciBtdXN0IGJlIGEgY2FsbGFibGUKIyBJdCBtdXN0IHJldHVybiBib29sIHZhbHVlICh0cnVlIGlmIGZvcm1hdCBtYXRjaGVkIHRoZSBkYXRhLCBmYWxzZSBvdGhlcndpc2UpCgojIEEgY2FsbGFibGUgY2xhc3M6CiRjdXN0b21Gb3JtYXQgPSBuZXcgY2xhc3MoKQp7CiAgICBmdW5jdGlvbiBfX2ludm9rZSgkdmFsdWUpOiBib29sCiAgICB7CiAgICAgICAgcmV0dXJuICR2YWx1ZSA9PT0gImdvb2QgdmFsdWUiOwogICAgfQp9OwoKIyBPciBqdXN0IGEgY2xvc3VyZToKJGN1c3RvbUZvcm1hdCA9IGZ1bmN0aW9uICgkdmFsdWUpOiBib29sIHsKICAgIHJldHVybiAkdmFsdWUgPT09ICJnb29kIHZhbHVlIjsKfTsKCiMgUmVnaXN0ZXIgeW91ciBjYWxsYWJsZSBsaWtlIHRoaXMgYmVmb3JlIHZhbGlkYXRpbmcgeW91ciBkYXRhClxPcGVuQVBJVmFsaWRhdGlvblxTY2hlbWFcVHlwZUZvcm1hdHNcRm9ybWF0c0NvbnRhaW5lcjo6cmVnaXN0ZXJGb3JtYXQoJ3N0cmluZycsICdjdXN0b20nLCAkY3VzdG9tRm9ybWF0KTsKYGBgCgojIyBFeGNlcHRpb25zClRoZSBwYWNrYWdlIHRocm93cyBhIGxpc3Qgb2YgdmFyaW91cyBleGNlcHRpb25zIHdoaWNoIHlvdSBjYW4gY2F0Y2ggYW5kIGhhbmRsZS4gVGhlcmUgYXJlIHNvbWUgb2YgdGhlbToKLSBTY2hlbWEgcmVsYXRlZDoKICAgIC0gYFxPcGVuQVBJVmFsaWRhdGlvblxTY2hlbWFcRXhjZXB0aW9uXEtleXdvcmRNaXNtYXRjaGAgLSBJbmRpY2F0ZXMgdGhhdCBkYXRhIHdhcyBub3QgbWF0Y2hlZCBhZ2FpbnN0IGEgc2NoZW1hJ3Mga2V5d29yZAogICAgICAgIC0gYFxPcGVuQVBJVmFsaWRhdGlvblxTY2hlbWFcRXhjZXB0aW9uXFR5cGVNaXNtYXRjaGAgLSBWYWxpZGF0aW9uIGZvciBgdHlwZWAga2V5d29yZCBmYWlsZWQgYWdhaW5zdCBhIGdpdmVuIGRhdGEuIEZvciBleGFtcGxlIGB0eXBlOnN0cmluZ2AgYW5kIHZhbHVlIGlzIGAxMmAKICAgICAgICAtIGBcT3BlbkFQSVZhbGlkYXRpb25cU2NoZW1hXEV4Y2VwdGlvblxGb3JtYXRNaXNtYXRjaGAgLSBkYXRhIG1pc21hdGNoZWQgYSBnaXZlbiB0eXBlIGZvcm1hdC4gRm9yIGV4YW1wbGUgYHR5cGU6IHN0cmluZywgZm9ybWF0OiBlbWFpbGAgd29uJ3QgbWF0Y2ggYG5vdC1lbWFpbGAuCi0gUFNSNyBNZXNzYWdlcyByZWxhdGVkOgogICAgLSBgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXE5vQ29udGVudFR5cGVgIC0gSFRUUCBtZXNzYWdlKHJlcXVlc3QvcmVzcG9uc2UpIGNvbnRhaW5zIG5vIENvbnRlbnQtVHlwZSBoZWFkZXIuIEdlbmVyYWwgSFRUUCBlcnJvcnMuCiAgICAtIGBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cTm9QYXRoYCAtIHBhdGggaXMgbm90IGZvdW5kIGluIHRoZSBzcGVjCiAgICAtIGBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cTm9PcGVyYXRpb25gIC0gb3BlcmF0aW9uIG9zIG5vdCBmb3VuZCBpbiB0aGUgcGF0aAogICAgLSBgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXE5vUmVzcG9uc2VDb2RlYCAtIHJlc3BvbnNlIGNvZGUgbm90IGZvdW5kIHVuZGVyIHRoZSBvcGVyYXRpb24gaW4gdGhlIHNwZWMKICAgIC0gVmFsaWRhdGlvbiBleGNlcHRpb25zIChjaGVjayBwYXJlbnQgZXhjZXB0aW9uIGZvciBwb3NzaWJsZSByb290IGNhdXNlcyk6CiAgICAgICAgLSBgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXFZhbGlkYXRpb25GYWlsZWRgIC0gZ2VuZXJpYyBleGNlcHRpb24gZm9yIGZhaWxlZCBQU1ItNyBtZXNzYWdlCiAgICAgICAgLSBgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXFZhbGlkYXRpb25cSW52YWxpZEJvZHlgIC0gYm9keSBkb2VzIG5vdCBtYXRjaCBzY2hlbWEKICAgICAgICAtIGBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cVmFsaWRhdGlvblxJbnZhbGlkQ29va2llc2AgLSBjb29raWVzIGRvZXMgbm90IG1hdGNoIHNjaGVtYSBvciBtaXNzaW5nIHJlcXVpcmVkIGNvb2tpZQogICAgICAgIC0gYFxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XEV4Y2VwdGlvblxWYWxpZGF0aW9uXEludmFsaWRIZWFkZXJzYCAtIGhlYWRlciBkb2VzIG5vdCBtYXRjaCBzY2hlbWEgb3IgbWlzc2luZyByZXF1aXJlZCBoZWFkZXIKICAgICAgICAtIGBcT3BlbkFQSVZhbGlkYXRpb25cUFNSN1xFeGNlcHRpb25cVmFsaWRhdGlvblxJbnZhbGlkUGF0aGAgLSBwYXRoIGRvZXMgbm90IG1hdGNoIHBhdHRlcm4gb3IgcGF0dGVybiB2YWx1ZXMgZG9lcyBub3QgbWF0Y2ggc2NoZW1hCiAgICAgICAgLSBgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXFZhbGlkYXRpb25cSW52YWxpZFF1ZXJ5QXJnc2AgLSBxdWVyeSBhcmdzIGRvZXMgbm90IG1hdGNoIHNjaGVtYSBvciBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50CiAgICAgICAgLSBgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXFZhbGlkYXRpb25cSW52YWxpZFNlY3VyaXR5YCAtIHJlcXVlc3QgZG9lcyBub3QgbWF0Y2ggc2VjdXJpdHkgc2NoZW1hIG9yIGludmFsaWQgc2VjdXJpdHkgaGVhZGVycwogICAgLSBSZXF1ZXN0IHJlbGF0ZWQ6CiAgICAgICAgLSBgXE9wZW5BUElWYWxpZGF0aW9uXFBTUjdcRXhjZXB0aW9uXE11bHRpcGxlT3BlcmF0aW9uc01pc21hdGNoRm9yUmVxdWVzdGAgLSByZXF1ZXN0IG1hdGNoZWQgbXVsdGlwbGUgb3BlcmF0aW9ucyBpbiB0aGUgc3BlYywgCiAgICAgICAgYnV0IHZhbGlkYXRpb24gZmFpbGVkIGZvciBhbGwgb2YgdGhlbS4KCiMjIFRlc3RpbmcKWW91IGNhbiBydW4gdGhlIHRlc3RzIHdpdGg6CgpgYGAKdmVuZG9yL2Jpbi9waHB1bml0CmBgYAoKIyMgQ29udHJpYnV0aW9uIEd1aWRlCkZlZWwgZnJlZSB0byBvcGVuIGFuIElzc3VlIG9yIGFkZCBhIFB1bGwgcmVxdWVzdC4gClRoZXJlIGlzIGEgY2VydGFpbiBjb2RlIHN0eWxlIHRoYXQgdGhpcyBwYWNrYWdlIGZvbGxvd3M6IFtkb2N0cmluZS9jb2Rpbmctc3RhbmRhcmRdKGh0dHBzOi8vd3d3LmRvY3RyaW5lLXByb2plY3Qub3JnL3Byb2plY3RzL2RvY3RyaW5lLWNvZGluZy1zdGFuZGFyZC9lbi9sYXRlc3QvcmVmZXJlbmNlL2luZGV4Lmh0bWwjaW50cm9kdWN0aW9uKS4KClRvIGNvbmZvcm0gdG8gdGhpcyBzdHlsZSBwbGVhc2UgdXNlIGEgZ2l0IGhvb2ssIHNoaXBwZWQgd2l0aCB0aGlzIHBhY2thZ2UgYXQgYC5naXRob29rcy9wcmUtY29tbWl0YC4KCkhvdyB0byB1c2UgaXQ6CjEuIENsb25lIHRoZSBwYWNrYWdlIGxvY2FsbHkgYW5kIG5hdmlnYXRlIHRvIHRoZSBmb2xkZXIKMi4gQ3JlYXRlIGEgc3ltbGluayB0byB0aGUgaG9vayBsaWtlIHRoaXM6IGBsbiAtcyAtZiAuLi8uLi8uZ2l0aG9va3MvcHJlLWNvbW1pdCAuZ2l0L2hvb2tzL3ByZS1jb21taXRgCjMuIEFkZCBleGVjdXRpb24gcmlnaHRzOiBgY2htb2QgK3ggLmdpdC9ob29rcy9wcmUtY29tbWl0YAo0LiBOb3cgY29tbWl0IGFueSBuZXcgY2hhbmdlcyBhbmQgdGhlIGNvZGUgd2lsbCBiZSBjaGVja2VkIGFuZCBmb3JtYXR0ZWQgYWNjb3JkaW5nbHkuCjUuIElmIHRoZXJlIGFyZSBhbnkgaXNzdWVzIHdpdGggeW91ciBjb2RlLCBjaGVjayB0aGUgbG9nIGhlcmU6IGAucGhwY3MtcmVwb3J0LnR4dGAKCiMjIENyZWRpdHMKUGVvcGxlOgotIFtEbWl0cnkgTGV6aG5ldl0oaHR0cHM6Ly9naXRodWIuY29tL2xlemhuZXY3NCkKLSBbQ2Fyc3RlbiBCcmFuZHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZWJlKQotIFtTYW11ZWwgTmVsYV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbW5lbGEpCi0gW1BhdmVsIEJhdGFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2F5dHJhc2UpCi0gW0NocmlzdG9waGVyIEwgQnJheV0oaHR0cHM6Ly9naXRodWIuY29tL2JyYXluaXZlcnNlKQotIFtEYXZpZCBQYXVsaV0oaHR0cHM6Ly9naXRodWIuY29tL2RwYXVsaSkKLSBbSmFzb24gSnVkZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWRnZWopCi0gW1lhbm5pY2sgQ2hlbm90XShodHRwczovL2dpdGh1Yi5jb20vb3N0ZWVsKQotIFtUYXJhc0JLXShodHRwczovL2dpdGh1Yi5jb20vVGFyYXNCSykKLSBbSmFzb24gQi4gU3RhbmRpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNvbmJzdGFuZGluZykKLSBbRG15dHJvIERlbWNoeW5hXShodHRwczovL2dpdGh1Yi5jb20vZG15dHJvLWRlbWNoeW5hKQotIFtXaWxsIENoYW1iZXJzXShodHRwczovL2dpdGh1Yi5jb20vd2lsbGNoYW1iZXJzOTkpCi0gW0lnbmFjaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9pbWVmaXN0bykKLSBBIGJpZyB0aGFuayB5b3UgdG8gW0hlbnJpayBLYXJsc3Ryw7ZtXShodHRwczovL2dpdGh1Yi5jb20vaGthcmxzdHJvbSkgd2hvIGtpbmQgb2YgaW5zcGlyZWQgbWUgdG8gd29yayBvbiB0aGlzIHBhY2thZ2UuIAoKUmVzb3VyY2VzOgotIEljb25zIG1hZGUgYnkgRnJlZXBpaywgbGljZW5zZWQgYnkgQ0MgMy4wIEJZCi0gW2NlYmUvcGhwLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9jZWJlL3BocC1vcGVuYXBpKSBwYWNrYWdlIGZvciBSZWFkaW5nIE9wZW5BUEkgZmlsZXMKLSBbc2xpbTMtcHNyMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ibmYvc2xpbTMtcHNyMTUpIHBhY2thZ2UgZm9yIFNsaW0gbWlkZGxld2FyZSBhZGFwdGVyCiAKIyMgTGljZW5zZQpUaGUgTUlUIExpY2Vuc2UgKE1JVCkuIFBsZWFzZSBzZWUgYExpY2Vuc2UubWRgIGZpbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyBUT0RPCi0gWyBdIFN1cHBvcnQgRGlzY3JpbWluYXRvciBPYmplY3QgKG5vdGU6IGFwcGFyZW50bHksIHRoaXMgaXMgbm90IHNvIHN0cmFpZ2h0Zm9yd2FyZCwgYXMgZGlzY3JpbWluYXRvciBjYW4gcG9pbnQgdG8gYW55IGV4dGVybmFsIHNjaGVtZSkK readmeEtag: '"50ae034d1007fb5d4f98a0969a7d466e429e89e3"' readmeLastModified: Thu, 19 Sep 2019 09:02:21 GMT repositoryId: 184420719 description: >- It validates PSR-7 messages (HTTP request/response) against OpenAPI specifications created: '2019-05-01T13:32:30Z' updated: '2023-12-29T14:12:28Z' language: PHP archived: false stars: 169 watchers: 13 forks: 10 owner: lezhnev74 logo: https://avatars.githubusercontent.com/u/10206110?v=4 license: MIT repoEtag: '"4f29c63433d2e76a222a02629b2baeef5a99b4acf0766bb062646f1a31b11cf7"' repoLastModified: Fri, 29 Dec 2023 14:12:28 GMT foundInMaster: true id: 827ca67e948986acbbe7941175945bd7 - source: openapi3 tags repository: https://github.com/ccouzens/keycloak-openapi v3: true repositoryMetadata: base64Readme: >- IyBLZXljbG9hay1BZG1pbi1PcGVuQVBJLURlZmluaXRpb24KCltPcGVuQVBJIGRlZmluaXRpb25zXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgZm9yCltLZXljbG9ha10oaHR0cHM6Ly93d3cua2V5Y2xvYWsub3JnLykncyBBZG1pbiBBUEkuCgpUaGVzZSBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBsaWJyYXJpZXMgZm9yIGludGVyYWN0aW5nIHdpdGggS2V5Y2xvYWsgZnJvbSBhbnkKbWFpbnN0cmVhbSBwcm9ncmFtbWluZyBsYW5nYXVnZS4KCk9wZW5BUEkgZGVmaW5pdGlvbnMgYXJlIHNvbWV0aW1lcyBrbm93biBieSB0aGVpciBwcmV2aW91cyBuYW1lIG9mIFN3YWdnZXIKc3BlY2lmaWNhdGlvbnMuCgpbS2V5Y2xvYWsgMjIuMC4wIEFkbWluIEFQSV0oLi9rZXljbG9hay8yMi4wLjAuanNvbikKCltLZXljbG9hayAxMy4wIEFkbWluIEFQSSB3aXRoIHBhdGNoZXNdKC4va2V5Y2xvYWsvMTMuMC1wYXRjaGVkLmpzb24pCgpbS2V5Y2xvYWsgMTIuMCBBZG1pbiBBUEkgd2l0aCBwYXRjaGVzXSguL2tleWNsb2FrLzEyLjAtcGF0Y2hlZC5qc29uKQoKW090aGVyIHZlcnNpb25zXSguL2tleWNsb2FrLykKCiMjIEFsdGVybmF0aXZlcwoKREFIQUcgUmVjaHRzc2VydmljZXMgQUcKW3Byb3ZpZGUgT3BlbkFQSSBkZWZpbml0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL2RhaGFnLWFnL2tleWNsb2FrLW9wZW5hcGkpIGZvcgpyZWNlbnQgdmVyc2lvbnMgb2YgS2V5Y2xvYWsgd2hpY2ggYXJlIG1vcmUgY29tcGxldGUgdGhhbiB3aGF0J3MgaGVyZS4KCiMjIEFjY291bnQgQVBJCgpLZXljbG9hayBoYXMgYW4gdW5kb2N1bWVudGVkIFtBY2NvdW50IEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL2tleWNsb2FrL2tleWNsb2FrL2Jsb2IvbWFpbi9zZXJ2aWNlcy9zcmMvbWFpbi9qYXZhL29yZy9rZXljbG9hay9zZXJ2aWNlcy9yZXNvdXJjZXMvYWNjb3VudC9BY2NvdW50UmVzdFNlcnZpY2UuamF2YSkgdGhhdCBpcyB1c2VkIGJ5IHRoZSBpbnRlcm5hbCBhY2NvdW50IGNvbnNvbGUgdG8gZGlzcGxheSBhbmQgdXBkYXRlIHVzZXIgaW5mb3JtYXRpb24uIFRoaXMgY2FuIGJlIHVzZWQgZm9yIGJ1aWxkaW5nIGEgY3VzdG9tIGFjY291bnQgY29uc29sZSwgb3IgYnVpbGRpbmcgYWNjb3VudCBpbmZvcm1hdGlvbiBhbmQgZWRpdGluZyBpbnRvIGFuIGFwcGxpY2F0aW9uLiBbQHhncF0oaHR0cHM6Ly9naXRodWIuY29tL3hncCkgaGFzIGNyZWF0ZWQgYSBbR2lzdCBvZiBPcGVuQVBJIGRlZmluaXRpb25zIG9mIHRoZSBBY2NvdW50IEFQSV0oaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20veGdwLzJkNzdjYmViYzYxNjQxNjBmYWFlNmFhNzdkMTI3YTU3KS4KCiMjIEdlbmVyYWwgVXNhZ2UKClR5cGljYWxseSB0byB1c2UgS2V5Y2xvYWsncyBhZG1pbiBSZXN0IEFQSSwgeW91IGZpcnN0IGdldCBhIHRva2VuIGZyb20gYSByZWFsbS4KVGhpcyBpcyBkb25lIHVzaW5nIHRoZSBPQXV0aDIgcHJvdG9jb2wuCgpgYGBiYXNoCmJlYXJlcl90b2tlbj0kKGN1cmwgLVggUE9TVCAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbicgXAogICAgIC0tZGF0YS11cmxlbmNvZGUgJ3VzZXJuYW1lPWFkbWluLXVzZXInIFwKICAgICAtLWRhdGEtdXJsZW5jb2RlICdwYXNzd29yZD1hZG1pbi1wYXNzd29yZCcgXAogICAgIC0tZGF0YS11cmxlbmNvZGUgJ2dyYW50X3R5cGU9cGFzc3dvcmQnIFwKICAgICAtLWRhdGEtdXJsZW5jb2RlICdjbGllbnRfaWQ9YWRtaW4tY2xpJyBcCiAgICAgIHwganEgLXIgJy5hY2Nlc3NfdG9rZW4nKQpgYGAKClRoZSByZWFsbSB1c2VkIGZvciB0aGUgdG9rZW4gaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSByZWFsbSB1c2VkIGluIHRoZSBBUEkuCgpUaGUgZW5kcG9pbnRzIGluIHRoaXMgc3BlY2lmaWNhdGlvbiBjYW4gdGhlbiBiZSB1c2VkIHdpdGggYSBiYXNlIHVybCBvZiB0aGUgZm9ybQpgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvYWRtaW4vcmVhbG1zYCBhbmQgdGhlIGFib3ZlIGJlYXJlciB0b2tlbi4KClBsZWFzZSBzZWUgdGhlIFtleGFtcGxlIGFwcF0oZXhhbXBsZV9hcHAvc3JjL2luZGV4LnRzKS4KCiMjIEhlbHAgd2FudGVkCgpUaGUgZGVmaW5pdGlvbnMgYXJlIGNvbXB1dGVyIGdlbmVyYXRlZCwgYnV0Cltjb3VsZCBkbyB3aXRoIGEgaHVtYW4ncyBpbnB1dF0oaHR0cHM6Ly9naXRodWIuY29tL2Njb3V6ZW5zL2tleWNsb2FrLW9wZW5hcGkvaXNzdWVzLzEwKS4KCltQbGVhc2UgcHJvdmlkZSBhZGRpdGlvbmFsIGV4YW1wbGUgYXBwc10oaHR0cHM6Ly9naXRodWIuY29tL2Njb3V6ZW5zL2tleWNsb2FrLW9wZW5hcGkvaXNzdWVzLzE0KS4KCiMjIEFkZGluZyBuZXcgdmVyc2lvbnMKClRvIGFkZCBhIG5ldyB2ZXJzaW9uIG9mIEtleWNsb2FrIHBlcmZvcm0gdGhlc2Ugc3RlcHM6CgoxLiBNb2RpZnkgdGhlIFtNYWtlZmlsZV0oLi9NYWtlZmlsZSkgd2l0aCB0aGUKICAgW25ldyB2ZXJzaW9uXShodHRwczovL2dpdGh1Yi5jb20vY2NvdXplbnMva2V5Y2xvYWstb3BlbmFwaS9jb21taXQvNmY3MTc1MzNiMTNjZDA3YmFlM2M0YWExZjU1OTA3ZmI0MDMzODU0MCNkaWZmLTc2ZWQwNzRhOTMwNWMwNDA1NGNkZWJiOWU5YWFkMmQ4MTgwNTJiMDcwOTFkZTFmMjBjYWQwYmJhYzM0ZmZiNTIpLgoyLiBWZXJpZnkgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBbcmVxdWlyZW1lbnRzXSgjcmVxdWlyZW1lbnRzKS4KMy4gUnVuIHRoZSBjb21tYW5kIGBtYWtlYC4gSXQgd2lsbCBhdXRvbWF0aWNhbGx5OgogICAxLiBkb3dubG9hZCB0aGUgZG9jdW1lbnRhdGlvbiBpbiBIVE1MIGZvcm1hdAogICAyLiBjb21waWxlIHRoZSBbdHJhbnNmb3JtZXJdKCNrZXljbG9hay1vcGVuYXBpLXRyYW5zZm9ybWVyKQogICAzLiBjcmVhdGUgdGhlIEpTT04gZGVmaW5pdGlvbgogICA0LiBjcmVhdGUgdGhlIFlNTCBkZWZpbml0aW9uCjQuIENvbW1pdCB5b3VyIGNoYW5nZXMgYW5kIG9wZW4gYSBwdWxsIHJlcXVlc3QuCgojIyBOb3RhYmxlIENoYW5nZXMKCjIwMjEgRWFybHkgLSBSZW5hbWVkIG1hc3RlciBicmFuY2ggdG8gbWFpbi4gQW55b25lIGZldGNoaW5nIHRoZSBzY2hlbWEgZGlyZWN0bHkKZnJvbSB0aGUgYnJhbmNoIHNob3VsZCB1cGRhdGUgdGhlaXIgcmVmZXJlbmNlLgoKMjAyMCBNYXkgLSBBZGRlZCB0YWdzIHRvIG9wZXJhdGlvbnMuIFVzZXJzIG9mIE9wZW5BUEkgR2VuZXJhdG9yIGdlbmVyYXRlZApjbGllbnRzIHdpbGwgbmVlZCB0byBzd2FwIGZyb20gdXNpbmcgdGhlIGBEZWZhdWx0QXBpYCBjbGFzcyB0byBtdWx0aXBsZSBjbGFzc2VzCnN1Y2ggYXMgYFVzZXJzQXBpYCBvciBgQ2xpZW50c0FwaWAuCgojIyBFeGFtcGxlIEFwcAoKW1RoaXMgZXhhbXBsZV0oLi9leGFtcGxlX2FwcC8pIHVzZXMKW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSB0byBidWlsZAphbiBBUEktY2xpZW50LiBUaGUgYXBwIGluIHRoZSBleGFtcGxlIGlzIHZlcnkgc2ltcGxlIGFuZCBvbmx5IGZldGNoZXMgYSBsaXN0IG9mCktleWNsb2FrLWNsaWVudHMuCgpgYGBiYXNoCiMgQ3JlYXRlIGEga2V5Y2xvYWsgaW5zdGFuY2UgdG8gcnVuIGFnYWluc3QKZG9ja2VyIGNvbnRhaW5lciBydW4gLS1ybSAtZSBLRVlDTE9BS19VU0VSPWFkbWluLXVzZXIgLWUgS0VZQ0xPQUtfUEFTU1dPUkQ9YWRtaW4tcGFzc3dvcmQgLXAgODA4MDo4MDgwIGRvY2tlci5pby9qYm9zcy9rZXljbG9hazoxMy4wLjAKIyBPcGVuIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8gYW5kIHdhaXQgZm9yIGtleWNsb2FrIHRvIHN0YXJ0IHVwCgojIEluIGEgc2Vjb25kIHRlcm1pbmFsIHJ1bgpjZCBleGFtcGxlX2FwcApucG0gaW5zdGFsbApucG0gcnVuIGdlbmVyYXRlLWNsaWVudApucG0gcnVuIGNvbXBpbGUKbm9kZSBkaXN0L2luZGV4LmpzCiMgcHJpbnRzIG91dAojIFRoZSBkZWZhdWx0IGNsaWVudHM6CiMgICBhY2NvdW50CiMgICBhY2NvdW50LWNvbnNvbGUKIyAgIGFkbWluLWNsaQojICAgYnJva2VyCiMgICBtYXN0ZXItcmVhbG0KIyAgIHNlY3VyaXR5LWFkbWluLWNvbnNvbGUKYGBgCgpJbiBnZW5lcmFsLCBjbGllbnRzIGNhbiBiZSBnZW5lcmF0ZWQgYnkgcnVubmluZyBhIGNvbW1hbmQgc2ltaWxhciB0bzoKCmBgYGJhc2gKb3BlbmFwaS1nZW5lcmF0b3IgZ2VuZXJhdGUgLWkgJ2h0dHBzOi8vZ2l0aHViLmNvbS9jY291emVucy9rZXljbG9hay1vcGVuYXBpL3Jhdy9tYWluL2tleWNsb2FrLzIwLjAuMy5qc29uJyAtZyAndHlwZXNjcmlwdC1heGlvcycgLW8gJ3NyYy9rZXljbG9hay1jbGllbnQnCmBgYAoKb3IgdXNpbmcgZG9ja2VyLCBpZiB5b3UgY2FuJ3QgaW5zdGFsbCBgb3BlbmFwaS1nZW5lcmF0b3JgOgoKYGBgYmFzaApkb2NrZXIgcnVuIC0tcm0gLS11c2VyICQoaWQgLXUpOiQoaWQgLWcpIC12ICRQV0Q6L2xvY2FsIG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgLWkgJ2h0dHBzOi8vZ2l0aHViLmNvbS9jY291emVucy9rZXljbG9hay1vcGVuYXBpL3Jhdy9tYWluL2tleWNsb2FrLzIwLjAuMy5qc29uJyAtZyB0eXBlc2NyaXB0LWF4aW9zIC1vIC9sb2NhbC9zcmMva2V5Y2xvYWstY2xpZW50CmBgYAojIyBLZXljbG9hayBPcGVuQVBJIFRyYW5zZm9ybWVyCgpBbGwgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbnMgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBwdWJsaXNoZWQgSFRNTCBkb2N1bWVudGF0aW9uLgpUaGlzIHRvb2wgdHJhbnNmb3JtcyB0aGUgSFRNTCBkb2N1bWVudGF0aW9uIGludG8gT3BlbkFQSSBkZWZpbml0aW9ucy4KCkhUTUwgb2YgdGhlIGRvY3VtZW50YXRpb24gaXMgaW5wdXR0ZWQgdGhyb3VnaCBgc3RkaW5gIGFuZCB0aGUgSlNPTiBvZiB0aGUKZGVmaW5pdGlvbiBpcyBvdXRwdXR0ZWQgdGhyb3VnaCBgc3Rkb3V0YC4KCiMjIFJlcXVpcmVtZW50cwoKQnVpbGRpbmcgUmVkIEhhdCBTaW5nbGUgU2lnbi1PbiBkZWZpbml0aW9ucyBvciByZWJ1aWxkaW5nIEtleWNsb2FrJ3MgZGVmaW5pdGlvbnMKcmVxdWlyZXM6CgotIGBtYWtlYAotIFtgUnVzdGBdKGh0dHBzOi8vd3d3LnJ1c3QtbGFuZy5vcmcvdG9vbHMvaW5zdGFsbCkKLSBbYHlxYF0oaHR0cHM6Ly9naXRodWIuY29tL21pa2VmYXJhaC95cS8pCgpCdWlsZGluZyB0aGUgdHJhbnNmb3JtZXIgcmVxdWlyZXMKW2BSdXN0YF0oaHR0cHM6Ly93d3cucnVzdC1sYW5nLm9yZy90b29scy9pbnN0YWxsKS4KCkJ1aWxkaW5nIHRoZSBleGFtcGxlIGFwcCByZXF1aXJlcyBgTm9kZWAgYW5kIGBKYXZhYC4KClJ1bm5pbmcgdGhlIGtleWNsb2FrIGluc3RhbmNlIHRoYXQgcGFpcnMgd2l0aCB0aGUgZXhhbXBsZSBhcHAgcmVxdWlyZXMgYERvY2tlcmAuCgojIyBMaWNlbnNpbmcKClRoZSBPcGVuQVBJIGRlZmluaXRpb25zIGFyZSBbQXBhY2hlIDIuMCBsaWNlbnNlZF0oLi9rZXljbG9hay9MSUNFTlNFLnR4dCkuCgpUaGUgdHJhbnNmb3JtZXIgaXMgW01JVCBsaWNlbnNlZF0oa2V5Y2xvYWstb3BlbmFwaS10cmFuc2Zvcm1lci9MSUNFTlNFKS4KClRoZSBleGFtcGxlIGFwcCBoYXMgYSBbQ0MwIHdhaXZlcl0oZXhhbXBsZV9hcHAvV0FJVkVSKSAoaGFzIGhhZCBpdHMgY29weXJpZ2h0CndhaXZlZCkuCg== readmeEtag: '"b3f1a7082b583e11c50e79884ecde04aa8673c96"' readmeLastModified: Thu, 29 Feb 2024 19:59:31 GMT repositoryId: 185045075 description: OpenAPI definitions for Keycloak's Admin API created: '2019-05-05T14:54:51Z' updated: '2024-08-30T17:27:35Z' language: Rust archived: false stars: 167 watchers: 10 forks: 66 owner: ccouzens logo: https://avatars.githubusercontent.com/u/241046?v=4 repoEtag: '"63c65b6a19da63ce2bade2228bdb1d5b4c150eaf1fd5b5bd97c0b2812bf0cd5c"' repoLastModified: Fri, 30 Aug 2024 17:27:35 GMT foundInMaster: true category: Server Implementations id: e7c4d0adf91d49ed856cc5a453ccfdf0 - source: openapi3 tags repository: https://github.com/swagger-api/swagger-inflector v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIEluZmxlY3RvcgoKWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2lvLnN3YWdnZXIvc3dhZ2dlci1pbmZsZWN0b3IvYmFkZ2Uuc3ZnP3N0eWxlPXBsYXN0aWMpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvaW8uc3dhZ2dlci9zd2FnZ2VyLWluZmxlY3RvcikKCi0tLS0KCioqTk9URToqKiBJZiB5b3UncmUgbG9va2luZyBmb3IgYHN3YWdnZXItaW5mbGVjdG9yYCAxLlggYW5kIFN3YWdnZXIvT3BlbkFwaSAyLjAsIHBsZWFzZSByZWZlciB0byBbdjEgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1pbmZsZWN0b3IvdHJlZS92MSkKCi0tLS0KClRoaXMgcHJvamVjdCB1c2VzIHRoZSBTd2FnZ2VyIFNwZWNpZmljYXRpb24gdG8gZHJpdmUgYW4gQVBJIGltcGxlbWVudGF0aW9uLiAgUmF0aGVyIHRoYW4gYSB0eXBpY2FsIHRvcC1kb3duIG9yIGJvdHRvbS11cCBzd2FnZ2VyIGludGVncmF0aW9uLCB0aGUgSW5mbGVjdG9yIHVzZXMgdGhlIHN3YWdnZXIgc3BlY2lmaWNhdGlvbiBhcyBhIERTTCBmb3IgdGhlIFJFU1QgQVBJLiAgVGhlIHNwZWMgZHJpdmVzIHRoZSBjcmVhdGlvbiBvZiByb3V0ZXMgYW5kIGNvbnRyb2xsZXJzIGF1dG9tYXRpY2FsbHksIG1hdGNoaW5nIG1ldGhvZHMgYW5kIG1ldGhvZCBzaWduYXR1cmVzIGZyb20gdGhlIGltcGxlbWVudGF0aW9uLiAgVGhpcyBicmluZ3MgYSBzaW1pbGFyIGludGVncmF0aW9uIGFwcHJvYWNoIHRvIHRoZSBKVk0gYXMgW3N3YWdnZXItbm9kZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItbm9kZSkgYnJpbmdzIHRvIHRoZSBqYXZhc2NyaXB0IHdvcmxkLgoKVG8gYWxsb3cgZm9yIGFuIGl0ZXJhdGl2ZSBkZXZlbG9wbWVudCwgdGhlIGZyYW1ld29yayB3aWxsIG1vY2sgcmVzcG9uc2VzIGZvciBhbnkgdW5pbXBsZW1lbnRlZCBtZXRob2RzLCBiYXNlZCBvbiB0aGUgc3BlY2lmaWNhdGlvbi4gIFRoYXQgbWVhbnMgeW91IGNhbiBzaGlwIHlvdXIgQVBJIHRvIHlvdXIgY29uc3VtZXJzIGZvciByZXZpZXcgaW1tZWRpYXRlbHkgYXMgeW91IGJ1aWxkIGl0IG91dC4KCllvdSBoYXZlIGZ1bGwgY29udHJvbCBvdmVyIHRoZSBtYXBwaW5nIG9mIGNvbnRyb2xsZXJzIHRvIGNsYXNzZXMgYW5kIG1ldGhvZHMgYXMgd2VsbCBhcyBtb2RlbHMuCgojIyBRdWljayBzdGFydCEKClJ1biB0aGlzIGNvbW1hbmQgdG8gc3RhcnQgaW4gYSBodXJyeS4gIEl0IHdpbGwgY3JlYXRlIGEgcHJvamVjdCBuYW1lZCBgbXktcHJvamVjdGAKYGBgCmN1cmwgLUwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItaW5mbGVjdG9yL21hc3Rlci9zZXR1cC5zaCB8IHByb2plY3Q9bXktcHJvamVjdCBiYXNoCmBgYAoKVGhpcyB3aWxsIGRvd25sb2FkIGV2ZXJ5dGhpbmcgeW91IG5lZWQgdG8gc3RhcnQgZWRpdGluZyBhbmQgcnVubmluZyBhIHN3YWdnZXItaW5mbGVjdG9yIGJhc2VkIHByb2plY3QuICBTZWUgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBmb3IgaW5zdHJ1Y3Rpb25zLgoKIyMjIENvbXBvbmVudHMKCkluZmxlY3RvciB1c2VzIHRoZSBmb2xsb3dpbmcgbGlicmFyaWVzOgoKIC0gc3dhZ2dlciBtb2RlbHMgZm9yIHRoZSBzd2FnZ2VyIGRlZmluaXRpb24KIC0gSmFja3NvbiBmb3IgSlNPTiBwcm9jZXNzaW5nCiAtIEplcnNleSAyLnggZm9yIFJFU1QKIC0gTWluaW11bSBKYXZhIDgKCiMjIyBJbnRlZ3JhdGlvbgoKSW5mbGVjdG9yIHdpbGwgY3JlYXRlIHJvdXRlcyBhbmQgYWRkIHRoZW0gdG8gSmVyc2V5LiAgWW91IHNpbXBseSBuZWVkIHRvIHJlZ2lzdGVyIHRoZSBJbmZsZWN0b3IgYXBwbGljYXRpb24gaW4geW91ciB3ZWJhcHAgYW5kIGl0IHNob3VsZCBiZSBjb21wYXRpYmxlIHdpdGggeW91ciBleGlzdGluZyBkZXBsb3ltZW50LCB3aGV0aGVyIHdpdGggd2ViLnhtbCwgc3ByaW5nLCBkcm9wd2l6YXJkLCBldGMuCgpUbyBhZGQgaW5mbGVjdG9yIHZpYSBgd2ViLnhtbGA6CgpgYGB4bWwKPHNlcnZsZXQ+CiAgPHNlcnZsZXQtbmFtZT5zd2FnZ2VyLWluZmxlY3Rvcjwvc2VydmxldC1uYW1lPgogIDxzZXJ2bGV0LWNsYXNzPm9yZy5nbGFzc2Zpc2guamVyc2V5LnNlcnZsZXQuU2VydmxldENvbnRhaW5lcjwvc2VydmxldC1jbGFzcz4KICA8aW5pdC1wYXJhbT4KICAgIDxwYXJhbS1uYW1lPmphdmF4LndzLnJzLkFwcGxpY2F0aW9uPC9wYXJhbS1uYW1lPgogICAgPHBhcmFtLXZhbHVlPmlvLnN3YWdnZXIub2FzLmluZmxlY3Rvci5PcGVuQVBJSW5mbGVjdG9yPC9wYXJhbS12YWx1ZT4KICA8L2luaXQtcGFyYW0+CiAgPGxvYWQtb24tc3RhcnR1cD4xPC9sb2FkLW9uLXN0YXJ0dXA+Cjwvc2VydmxldD4KPHNlcnZsZXQtbWFwcGluZz4KICA8c2VydmxldC1uYW1lPnN3YWdnZXItaW5mbGVjdG9yPC9zZXJ2bGV0LW5hbWU+CiAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KPC9zZXJ2bGV0LW1hcHBpbmc+CmBgYAoKVGhpcyBzaW1wbHkgYWRkcyB0aGUgYFN3YWdnZXJJbmZsZWN0b3JgIGFwcGxpY2F0aW9uIHRvIEplcnNleS4KCiMjIyBDb25maWd1cmF0aW9uCgpJbmZsZWN0b3IgdXNlcyBhIHNpbmdsZSB5YW1sIGZpbGUgZm9yIGNvbmZpZ3VyYXRpb24uICBUaGUgZGVmYXVsdCBmaWxlIGlzIGBpbmZsZWN0b3IueWFtbGAgYnV0IGl0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHNldHRpbmcgYSBzeXN0ZW0gcHJvcGVydHkgd2hlbiBzdGFydGluZyB0aGUgSlZNOgoKYGBgCi1EY29uZmlnPS9wYXRoL3RvL2NvbmZpZwpgYGAKClRoZSBjb25maWd1cmF0aW9uIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmc6CgpgYGB5YW1sCiMgbW9kZSAoZGV2ZWxvcG1lbnQgfCBzdGFnaW5nIHwgcHJvZHVjdGlvbikuICBEZWZhdWx0IGlzIGRldmVsb3BtZW50LCBhbmQgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgYSBzeXN0ZW0gcHJvcGVydHkKIyAtRGVudmlyb25tZW50PXByb2R1Y3Rpb24gZm9yIGV4YW1wbGUKZW52aXJvbm1lbnQ6IGRldmVsb3BtZW50CgojIGNvbmZpZ3VyZSB5b3VyIGRlZmF1bHQgY29udHJvbGxlciBwYWNrYWdlIGZvciBtZXRob2QgZGlzY292ZXJ5CmNvbnRyb2xsZXJQYWNrYWdlOiBpby5zd2FnZ2VyLm9hcy5zYW1wbGUuY29udHJvbGxlcnMKCiMgY29uZmlndXJlIHRoZSBkZWZhdWx0IG1vZGVsIHBhY2thZ2UgZm9yIG1vZGVsIGRpc2NvdmVyeQptb2RlbFBhY2thZ2U6IGlvLnN3YWdnZXIub2FzLnNhbXBsZS5tb2RlbHMKCiMgdGhlIHBhdGggdG8gdGhlIHN3YWdnZXIgZGVmaW5pdGlvbiAoTm90ZSEgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIC1Ec3dhZ2dlclVybCBhcyBhIHN5c3RlbSBwcm9wZXJ0eQpzd2FnZ2VyVXJsOiBvcGVuYXBpLnlhbWwKCiMgc3BlY2lmaWMgbWFwcGluZ3MgZm9yIG1vZGVscywgdXNlZCB0byBsb2NhdGUgbW9kZWxzIGluIHRoZSBgIy9kZWZpbml0aW9ucy8ke21vZGVsfWAKbW9kZWxNYXBwaW5nczoKICBVc2VyOiBpby5zd2FnZ2VyLm9hcy5zYW1wbGUubW9kZWxzLlVzZXIKCiMgSFRUUCByZXNwb25zZSBjb2RlIHdoZW4gcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgbWlzc2luZwppbnZhbGlkUmVxdWVzdENvZGU6IDQwMAoKI0FsbG93cyB0byBjb25maWd1cmUgdGhlIGV4cG9zZWQgc3BlYyAodmFsdWVzIGluIGV4YW1wbGUgYXJlIHRoZSBkZWZhdWx0cykKZXhwb3NlZFNwZWNPcHRpb25zOgogIHBhcnNlT3B0aW9uczoKICAgIHJlc29sdmU6IGZhbHNlCiAgICByZXNvbHZlRnVsbHk6IGZhbHNlCiAgdXNlT3JpZ2luYWxOb3RQYXJzZWQ6IGZhbHNlCiAgaGlkZUluZmxlY3RvckV4dGVuc2lvbnM6IHRydWUKICBtZXJnZVJvb3RQYXRoOiB0cnVlCgpgYGAKCiMjIyBMb2NhdGluZyB0aGUgY29udHJvbGxlciBjbGFzcwoKVGhlIGFjdHVhbCBjb250cm9sbGVyIGNsYXNzIGZvciBlYWNoIG1ldGhvZCBpcyBsb2NhdGVkIHZpYSB0aGUgZmlyc3Qgb2YgdGhlIGZvbGxvd2luZyBtZWNoYW5pc21zOgotIGEgeC1zd2FnZ2VyLXJvdXRlci1jb250cm9sbGVyIGV4dGVuc2lvbiBhdCB0aGUgbWV0aG9kIGxldmVsIGNhbiBzcGVjaWZ5IHRoZSBzcGVjaWZpYyBjb250cm9sbGVyIGNsYXNzCi0gZWFjaCB0YWcgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXRob2QgaXMgYXNzZW1ibGVkIGludG8gdGhlIGNsYXNzbmFtZXMgIiZsdDtjb250cm9sbGVyUGFja2FnZSZndDsuJmx0O1RhZyZndDsiIG9yIAoiJmx0O2NvbnRyb2xsZXJQYWNrYWdlJmd0Oy4mbHQ7VGFnJmd0O0NvbnRyb2xsZXIiLCB0aGUgZmlyc3Qgb2YgdGhlc2UgY2xhc3NlcyB0aGF0IGlzIGZvdW5kIGJ5IENsYXNzLmZvck5hbWUoLi4uKSB3aWxsIGJlIHVzZWQKLSBhbiBvcHRpb25hbCAmbHQ7Y29udHJvbGxlckNsYXNzJmd0OyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBpcyBhcHBlbmRlZCB0byAmbHQ7Y29udHJvbGxlclBhY2thZ2UmZ3Q7IAotIGFzIGEgbGFzdCByZXNvcnQgYSBjbGFzcyBuYW1lZCAmbHQ7Y29udHJvbGxlclBhY2thZ2UmZ3Q7LkRlZmF1bHQgaXMgdXNlZAoKQnkgZGVmYXVsdCB0aGUgY2xhc3MgaXMgbG9hZGVkIGRpcmVjdGx5IHdpdGggQ2xhc3MuZm9yTmFtZSguLi4pLm5ld0luc3RhbmNlKCkgLSBidXQgeW91IGNhbiBvdmVycmlkZSBjbGFzcyBjcmVhdGlvbgpieSBwcm92aWRpbmcgYSBjdXN0b20gQ29udHJvbGxlckZhY3RvcnkgdG8gdGhlIGluZmxlY3RvciBjb25maWd1cmF0aW9uIChmb3IgZXhhbXBsZSBpZiB5b3Ugd2FudCB5b3VyIGNvbnRyb2xsZXJzIHRvIGJlIApsb2FkZWQgYnkgYSBESSBmcmFtZXdvcmspLgoKIyMjIExvY2F0aW5nIHRoZSB0YXJnZXQgbWV0aG9kCgpXaGVuIGxvY2F0aW5nIG1ldGhvZHMsIHRoZSBgb3BlcmF0aW9uSWRgIGlzIHVzZWQgYXMgdGhlIG1ldGhvZCBuYW1lIGZvciBsb29rdXAgdmlhIHJlZmxlY3Rpb24uICBJZiBub3Qgc3BlY2lmaWVkLCB0aGVyZSBpcyBsb2dpYyBmb3IgZ2VuZXJhdGlvbiBvZiBhIG1ldGhvZCBuYW1lLgoKT25jZSBhIG1ldGhvZCBpcyBtYXRjaGVkIHZpYSBuYW1lLCB0aGUgcGFyYW1ldGVyIHR5cGVzIHdpbGwgYmUgY29tcGFyZWQgdG8gZW5zdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IG1vZGVsLiAgSW4gYWxsIG1ldGhvZHMsIG9ubHkgamF2YSBvYmplY3RzIGFyZSBzdXBwb3J0ZWQtLXByaW1pdGl2ZXMgY3VycmVudGx5IHdpbGwgbm90IG1hdGNoICh0aGlzIGFsbG93cyBmb3IgcHJvcGVyIG51bGxzKS4KCllvdSBjYW4gb3ZlcnJpZGUgYSBtb2RlbCBtYXBwaW5nIGJ5IHNldHRpbmcgYSB2ZW5kb3IgZXh0ZW5zaW9uIGluIHRoZSBzd2FnZ2VyIHlhbWw6CgpgYGB5YW1sCiMgdXNlcyBtZXRob2QgbmFtZSwgbG9vayBmb3IgY29udHJvbGxlclBhY2thZ2UgaW4gdGhlIGNvbmZpZ3VyYXRpb24KcGF0aHM6CiAgL3Rlc3QxOgogICAgZ2V0OgogICAgICB4LXN3YWdnZXItcm91dGVyLWNvbnRyb2xsZXI6IFNhbXBsZUNvbnRyb2xsZXIKICAgICAgb3BlcmF0aW9uSWQ6IGdldFRlc3QxCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBuYW1lOiBuYW1lCiAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IFN1Y2Nlc3MhCmBgYAoKRnJvbSB0aGUgY29uZmlndXJhdGlvbiBleGFtcGxlIGFib3ZlLCB0aGlzIHdpbGwgbG9vayBmb3IgdGhlIGZvbGxvd2luZyBjbGFzczoKCmBgYApjbGFzczogaW8uc3dhZ2dlci5zYW1wbGUuY29udHJvbGxlcnMuU2FtcGxlQ29udHJvbGxlcgpgYGAKCndpdGggdGhlIGZvbGxvd2luZyBtZXRob2Q6CgpgYGAKbWV0aG9kOiBwdWJsaWMgT2JqZWN0IGdldFRlc3QxKAogICAgUmVxdWVzdENvbnRleHQsCiAgICBqYXZhLmxhbmcuU3RyaW5nIG5hbWUpCmBgYAoKIyMjIyBDb21wbGV4IGlucHV0cwoKV2hlbiB0aGVyZSBhcmUgY29tcGxleCBpbnB1dHMsIHN1Y2ggYXMgdGhlIGV4YW1wbGUgYmVsb3c6CgpgYGB5YW1sCnBhdGhzOgogIC90ZXN0MjoKICAgIHBvc3Q6CiAgICAgIHgtc3dhZ2dlci1yb3V0ZXItY29udHJvbGxlcjogU2FtcGxlQ29udHJvbGxlcgogICAgICBvcGVyYXRpb25JZDogYWRkVXNlcgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9kZWZpbml0aW9ucy9Vc2VyJwogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogbmFtZQogICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTdWNjZXNzIQpgYGAKCnRoZSBJbmZsZWN0b3Igd2lsbCBkbyB0aGUgZm9sbG93aW5nOgoKIC0gTG9vayBpbiB2ZW5kb3IgZXh0ZW5zaW9ucyBmb3IgdGhlIG1vZGVscyB0byBzZWUgaWYgYSBtYXBwaW5nIGV4aXN0cy4gIElmIHNvLCBpdCB3aWxsIGF0dGVtcHQgdG8gbG9hZCBpdCB2aWEgdGhlIGNsYXNzbG9hZGVyCgogYGBgeWFtbAogICBBZGRyZXNzOgogICAgeC1zd2FnZ2VyLXJvdXRlci1tb2RlbDogaW8uc3dhZ2dlci50ZXN0Lm1vZGVscy5BZGRyZXNzCiAgICBwcm9wZXJ0aWVzOgogICAgICBzdHJlZXQ6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZXhhbXBsZTogMTIzNDUgRWwgTW9udGUgUm9hZAogICAgICBjaXR5OgogICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGV4YW1wbGU6IExvcyBBbHRvcyBIaWxscwogICAgICBzdGF0ZToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBleGFtcGxlOiBDQQogICAgICB6aXA6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZXhhbXBsZTogJzk0MDIyJwogYGBgCgogLSBMb29rIGluIHRoZSBjb25maWd1cmF0aW9uIGZvciBhIG1hcHBpbmcgYmV0d2VlbiBgVXNlcmAgYW5kIGEgY29uY3JldGUgY2xhc3MgZGVmaW5pdGlvbi4gIElmIHRoZSBkZWZpbml0aW9uIGV4aXN0cyBBTkQgdGhlIGNsYXNzIGNhbiBiZSBsb2FkZWQsIHRoZSBtZXRob2Qgd2lsbCBsb29rIGxpa2Ugc3VjaDoKCiBgYGAKIHB1YmxpYyBSZXNwb25zZUNvbnRleHQgYWRkVXNlciAoCiAgICBSZXF1ZXN0Q29udGV4dCBjb250ZXh0LCAgICAgICAgICAgICAvLyByZXF1ZXN0IGNvbnRleHQKICAgIGlvLnN3YWdnZXIuc2FtcGxlLm1vZGVscy5Vc2VyIHVzZXIsIC8vIHVzZXIgYmVpbmcgYWRkZWQKICAgIGphdmEubGFuZy5TdHJpbmcgbmFtZSkgICAgICAgICAgICAgIC8vIHRoZSBgbmFtZWAgcXVlcnkgcGFyYW0KIGBgYAoKIC0gSWYgdGhlIGRlZmluaXRpb24gZG9lcyBub3QgZXhpc3QsIHRoZSBgbW9kZWxQYWNrYWdlYCBmcm9tIHRoZSBjb25maWd1cmF0aW9uIHdpbGwgYmUgdXNlZCB0byBhdHRlbXB0IHRvIGxvYWQgdGhlIGNsYXNzOgoKIGBgYAoKCiBgYGAKCiBJZiB0aGUgZGVmaW5pdGlvbiBjYW4gYmUgbG9hZGVkIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgbWV0aG9kIHNpZ25hdHVyZQoKIC0gSWYgbm8gbW9kZWwgY2FuIGJlIGxvYWRlZCwgaXQgaXMgdGhlIGRldmVsb3BlcidzIGpvYiB0byB1bndyYXAgdGhlIGlucHV0IGFuZCBwYXJzZSBpdCBvbiB0aGVpciBvd24uICBUaGlzIHJlcXVpcmVzIGBDb250ZW50LVR5cGVgLXNwZWNpZmljIHByb2Nlc3NpbmcuICBJbmZsZWN0b3Igd2lsbCB0aGVuIGxvb2sgZm9yIHRoZSBmb2xsb3dpbmcgbWV0aG9kOgoKIGBgYAogcHVibGljIFJlc3BvbnNlQ29udGV4dCBhZGRVc2VyICgKICAgIFJlcXVlc3RDb250ZXh0IGNvbnRleHQsICAgICAgICAgICAgIC8vIHJlcXVlc3QgY29udGV4dAogICAgSnNvbk5vZGUgdXNlciwgICAgICAgICAgICAgICAgICAgICAgLy8gYSBKc29uIHRyZWUgcmVwcmVzZW50aW5nIHRoZSB1c2VyCiAgICBqYXZhLmxhbmcuU3RyaW5nIG5hbWUpICAgICAgICAgICAgICAvLyB0aGUgYG5hbWVgIHF1ZXJ5IHBhcmFtCiBgYGAKCiAtIElmIG5vIG1ldGhvZCBjYW4gYmUgZm91bmQsIGEgbW9jayByZXNwb25zZSB3aWxsIGJlIHJldHVybmVkIGJhc2VkIG9uIHRoZSBzd2FnZ2VyIGRlZmluaXRpb24uICBGb3IgY29tcGxleCBvYmplY3RzLCBpZiBhbiBgZXhhbXBsZWAgZXhpc3RzLCB3ZSB3aWxsIHVzZSB0aGF0LiAgT3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGNvbnN0cnVjdGVkLgoKClRoZSBSZXF1ZXN0V3JhcHBlciBhbmQgUmVzcG9uc2VDb250ZXh0IGNvbnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgaGVhZGVycyAoaW4gYW5kIG91dGJvdW5kKSwgY29udGVudC10eXBlIGFuZCBhY2NlcHRhYmxlIHJlc3BvbnNlIHR5cGVzLgoKIyMjIyBPdXRwdXRzCgpZb3VyIGNvbnRyb2xsZXJzIGNhbiByZXR1cm4gbnVsbCAodm9pZCByZXNwb25zZSksIGFuIG9iamVjdCAoZW50aXR5KSwgb3IgYSBgUmVzcG9uc2VDb250ZXh0YCwgd2hpY2ggYWxsb3dzIHlvdSB0byBzZW5kIHNwZWNpZmljIGVycm9yIGNvZGVzLCBoZWFkZXJzLCBhbmQgYW4gb3B0aW9uYWwgZW50aXR5LgoKRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIHJldHVybiBhIGBQZXRgIGZyb20gYSBjb250cm9sbGVyOgoKYGBgamF2YQogICAgcHVibGljIFJlc3BvbnNlQ29udGV4dCBnZXRQZXQoUmVxdWVzdENvbnRleHQgcmVxdWVzdCwgamF2YS5sYW5nLkludGVnZXIgcGV0SWQpIHsKICAgICAgICAvLyBkbyB5b3VyIG1hZ2ljIHRvIGZldGNoIGEgcGV0Li4uCiAgICAgICAgUGV0IHBldCA9IGNvbXBsZXhCdXNpbmVzc0xvZ2ljLmdldFBldEJ5SWQocGV0SWQpOwoKICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlQ29udGV4dCgpCiAgICAgICAgICAgICAgICAuc3RhdHVzKFN0YXR1cy5PSykKICAgICAgICAgICAgICAgIC5lbnRpdHkocGV0KTsKICAgIH0KYGBgCgphbmQgdGhlIEluZmxlY3RvciB3aWxsIHJldHVybiBhIGAyMDBgIHJlc3BvbnNlIGNvZGUsIG1hcnNoYWxsaW5nIHRoZSBgUGV0YCBvYmplY3QgaW50byB0aGUgYXBwcm9wcmlhdGUgY29udGVudCB0eXBlLgoKSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgeW91ciBjb250cm9sbGVyLCB0aGUgSW5mbGVjdG9yIHdpbGwgZ2VuZXJhdGUgc2FtcGxlIGRhdGEgYmFzZWQgb24geW91ciBtb2RlbCBkZWZpbml0aW9ucy4gIEl0IHdpbGwgaG9ub3IgYW55IGV4YW1wbGVzIHRoYXQgeW91IGhhdmUgaW4gdGhlIGRlZmluaXRpb25zLCBhc3N1bWluZyB0aGV5IGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIHNjaGVtYSB5b3UgZGVjbGFyZWQuICBGb3IgZXhhbXBsZSwgdGhpcyBkZWZpbml0aW9uOgoKYGBgeWFtbApwcm9wZXJ0aWVzOgogIHN0cmVldDoKICAgIHR5cGU6ICJzdHJpbmciCiAgICBleGFtcGxlOiAiMTIzNDUgRWwgTW9udGUgQmx2ZCIKICBjaXR5OgogICAgdHlwZTogInN0cmluZyIKICAgIGV4YW1wbGU6ICJMb3MgQWx0b3MgSGlsbHMiCiAgc3RhdGU6CiAgICB0eXBlOiAic3RyaW5nIgogICAgZXhhbXBsZTogIkNBIgogICAgbWluTGVuZ3RoOiAyCiAgICBtYXhMZW5ndGg6IDIKICB6aXA6CiAgICB0eXBlOiAic3RyaW5nIgogICAgZXhhbXBsZTogIjk0MDIyIgp4bWw6CiAgbmFtZTogImFkZHJlc3MiCmBgYAoKV2lsbCBwcm9kdWNlIHRoaXMgZXhhbXBsZSBmb3IgYSBgQWNjZXB0OmFwcGxpY2F0aW9uL2pzb25gOgoKYGBganNvbgp7CiAgInN0cmVldCIgOiAiMTIzNDUgRWwgTW9udGUgQmx2ZCIsCiAgImNpdHkiIDogIkxvcyBBbHRvcyBIaWxscyIsCiAgInN0YXRlIiA6ICJDQSIsCiAgInppcCIgOiAiOTQwMjIiCn0KYGBgCgphbmQgYGFwcGxpY2F0aW9uL3lhbWxgOgoKYGBgeWFtbApzdHJlZXQ6ICIxMjM0NSBFbCBNb250ZSBCbHZkIgpjaXR5OiAiTG9zIEFsdG9zIEhpbGxzIgpzdGF0ZTogIkNBIgp6aXA6ICI5NDAyMiIKYGBgCgphbmQgYGFwcGxpY2F0aW9uL3htbGA6CgpgYGB4bWwKPGFkZHJlc3M+CiAgPHN0cmVldD4xMjM0NSBFbCBNb250ZSBCbHZkPC9zdHJlZXQ+CiAgPGNpdHk+TG9zIEFsdG9zIEhpbGxzPC9jaXR5PgogIDxzdGF0ZT5DQTwvc3RhdGU+CiAgPHppcD45NDAyMjwvemlwPgo8L2FkZHJlc3M+CmBgYAoKIyMjIyBQYXlsb2FkIHZhbGlkYXRpb24KClNpbmNlIHlvdXIgaW5ib3VuZCBhbmQgb3V0Ym91bmQgcGF5bG9hZHMgYXJlIGRlZmluZWQgd2l0aCB0aGUgU3dhZ2dlciBzY2hlbWEsIEluZmxlY3RvciAKY2FuIHZhbGlkYXRlIHRoZW0gYXQgcnVudGltZS4gIEp1c3QgZW5hYmxlIHBheWxvYWQgdmFsaWRhdGlvbnMgaW4geW91ciBpbmZsZWN0b3IgY29uZmlnOgoKYGBgeWFtbAp2YWxpZGF0ZVBheWxvYWRzOiB0cnVlCmBgYAoKQW5kIGF0IHN0YXJ0LXVwLCBJbmZsZWN0b3Igd2lsbCByZWFkIHRoZSBzY2hlbWEgYW5kIGF0dGFjaCB0aGUgcmVsZXZhbnQgc2VjdGlvbiBvZiBpdCAKdG8gdGhlIG9wZXJhdGlvbi4gIEZvciBleGFtcGxlLCBhIHBvc3Qgb3BlcmF0aW9uIHRoYXQgaGFzIHRoaXMgYXMgdGhlIHNjaGVtYSBkZWZpbml0aW9uOgoKYGBganNvbgp7CiAgIkNhdGVnb3J5IjogewogICAgInJlcXVpcmVkIjogWwogICAgICAiaWQiCiAgICBdLAogICAgInByb3BlcnRpZXMiOiB7CiAgICAgICJpZCI6IHsKICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAiZm9ybWF0IjogImludDY0IgogICAgICB9LAogICAgICAibmFtZSI6IHsKICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgIH0KICAgIH0sCiAgICAieG1sIjogewogICAgICAibmFtZSI6ICJDYXRlZ29yeSIKICAgIH0KICB9Cn0KYGBgCgpXaWxsIGZhaWwgaWYgdGhlIGluY29taW5nIGJvZHkgbG9va3MgbGlrZSB0aGlzOgoKYGBganNvbgp7CiAgIm5hbWUiOiAiVG9ueSIKfQpgYGAKYmVjYXVzZSB0aGUgcmVxdWlyZWQgZmllbGQgYGlkYCBpcyBtaXNzaW5nLgoKVGhlIHNhbWUgZ29lcyBmb3IgcmVzcG9uc2VzIGdlbmVyYXRlZCBieSB0aGUgc2VydmVyLiAgQW55IHJlc3BvbnNlIGNvZGUgdGhhdCB5b3Ugc2VuZCB3aWxsIApiZSB2YWxpZGF0ZWQgYWdhaW5zdCBpdCdzIGNvcnJlc3BvbmRpbmcgc2NoZW1hLgoKWW91IGNhbiBjaG9vc2UgdG8gZW5hYmxlIHRoaXMgaW4gZGV2ZWxvcG1lbnQsCnN0YWdpbmcsIG9yIHByb2R1Y3Rpb24uCgojIyMjIENvbnRlbnQgdHlwZSBuZWdvdGlhdGlvbgoKVGhlcmUgaXMgYSBwbHVnZ2FibGUgZnJhbWV3b3JrIGZvciBoYW5kbGluZyBkaWZmZXJlbnQgY29udGVudCB0eXBlcy4gIFlvdSBjYW4gcmVnaXN0ZXIgYW55IHByb2Nlc3NvciBieSB0aGUgZm9sbG93aW5nOgoKYGBgamF2YQpFbnRpdHlQcm9jZXNzb3IgbXlQcm9jZXNzb3IgPSBuZXcgTXlFbnRpdHlQcm9jZXNzb3IoKTsgIC8vIGltcGxlbWVudHMgRW50aXR5UHJvY2Vzc29yCkVudGl0eVByb2Nlc3NvckZhY3RvcnkuYWRkUHJvY2Vzc29yKG15UHJvY2Vzc29yKTsKYGBgCgojIyMjIERldmVsb3BtZW50IExpZmVjeWNsZQoKVGhlcmUgYXJlIHRocmVlIG1vZGVzIHRoYXQgdGhlIEluZmxlY3RvciBzdXBwb3J0cywgYXMgY29uZmlndXJlZCBieSB0aGUgYGVudmlyb25tZW50YCBhdHRyaWJ1dGUgaW4gdGhlIGluZmxlY3RvciBjb25maWc6CgogLSAqKmRldmVsb3BtZW50KiouICBJbiB0aGlzIG1vZGUsIG1vY2sgcmVzcG9uc2VzIHdpbGwgYmUgc2VudCBmb3IgY29udHJvbGxlcnMgd2hpY2ggYXJlIG5vdCBpbXBsZW1lbnRlZC4gIFRoZSBpbnRlbnRpb24KICAgaXMgdG8gYWxsb3cgeW91IHRvIHF1aWNrbHkgaXRlcmF0ZSBvbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGRlc2lnbi4gIEluIGFkZGl0aW9uLCBtaXNzaW5nIG1vZGVsIGltcGxlbWVudGF0aW9ucwogICBhcmUgdG9sZXJhdGVkIGFuZCBzdXBwb3J0ZWQuCgogLSAqKnN0YWdpbmcqKi4gIFdhcm5pbmcgbWVzc2FnZXMgd2lsbCBiZSBsb2dnZWQgd2hlbiBzdGFydGluZyB0aGUgc2VydmljZSBmb3IgYW55IG1pc3NpbmcgY29udHJvbGxlciwgbWV0aG9kLCBvciBtb2RlbC4KCiAtICoqcHJvZHVjdGlvbioqLiAgVGhlIGV4cGVjdGF0aW9uIGlzIGFsbCBtZXRob2RzIGFuZCBkZWNsYXJlZCAobWFudWFsbHkgbWFwcGVkKSBtb2RlbHMgZXhpc3QuICBJZiB0aGV5IGRvbid0LCBpdCdsbCB0aHJvdwogICBuYXN0eSBlcnJvcnMgYW5kIHRoZSBzZXJ2ZXIgd2lsbCBub3Qgc3RhcnQuCgpJbiBkZXZlbG9wbWVudCBtb2RlLCB0aGVyZSBpcyBhIGAvZGVidWcuanNvbmAgcGFnZSB3aGljaCBzaG93cyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIHRoZSBpbmZsZWN0b3Igc2VydmljZS4KCklmIHlvdXIgU3dhZ2dlciBEZXNjcmlwdGlvbiBpcyB1bnBhcnNhYmxlLCB0aGUgc2VydmVyIHdpbGwgdGhyb3cgdWdseSBlcnJvcnMgb24gc3RhcnR1cCBhbmQgdGhlIGBkZWJ1Zy5qc29uYCBwYWdlIHdpbGwKICAgZ2l2ZSBpbmRpY2F0aW9ucyBhcyB0byB3aHkuCgojIyMjIFNhbXBsZXMKVGhlIHNhbXBsZXMgYXJlIGEgYmVpbmcgcmVmYWN0b3IgdG8gc3VwcG9ydCB0aGUgbmV3IGluZmxlY3Rvci4KCllvdSB3aWxsIHNvb24gZmluZCBzYW1wbGVzIGZvciB0aGUgaW5mbGVjdG9yIHByb2plY3QgaW4gdGhlIFtTd2FnZ2VyLVNhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNhbXBsZXMpIHJlcG9zaXRvcnkuICBUaGUgaW5mbGVjdG9yIHByb2plY3RzIHN0YXJ0IHdpdGggYGluZmxlY3Rvci1gCgojIyMjIFJ1bm5pbmcgdGVzdHMKCklmIHJ1bm5pbmcgSmF2YSA4LCB5b3Ugd2lsbCBuZWVkIHRvIHJ1biBhIHZhcmlhbnQgdGhhdCBoYXMgYmFja3BvcnRlZCBmaXggODE1NzIzNi4gQXp1bCBadWx1IGlzIGNvbmZpcm1lZCB0byB3b3JrIChodHRwczovL2dpdGh1Yi5jb20vam1vY2tpdC9qbW9ja2l0MS9pc3N1ZXMvNzEwKS4KCklmIHJ1bm5pbmcgd2l0aCBKYXZhIDkgb3IgbGF0ZXIsIHlvdSB3aWxsIG5lZWQgdG8gZWl0aGVyOgotIFBhc3MgYC1EamRrLmF0dGFjaC5hbGxvd0F0dGFjaFNlbGY9dHJ1ZWAgdG8gdGhlIFZNLgotIENvbmZpZ3VyZSB0aGUgdGVzdCBleGVjdXRpb24gSlZNIHRvIHN0YXJ0IHdpdGggdGhlICItamF2YWFnZW50Ojxwcm9wZXIgcGF0aD4vam1vY2tpdC4xLnguamFyIiBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXIuIEl0IGNhbiBiZSBzcGVjaWZpZWQgaW4gdGhlIGJ1aWxkIHNjcmlwdCBmaWxlIGZvciB0b29scyBzdWNoIGFzIE1hdmVuIG9yIEdyYWRsZSwgb3IgaW4gYSAiUnVuL0RlYnVnIENvbmZpZ3VyYXRpb24iIGZvciBJbnRlbGxpSiBJREVBIG9yIEVjbGlwc2UuCgojIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4K readmeEtag: '"e526a9e92382e438d0a6e9de2a6473b04affe96d"' readmeLastModified: Mon, 08 Apr 2024 07:01:04 GMT repositoryId: 39236124 description: null created: '2015-07-17T05:14:14Z' updated: '2024-08-08T09:57:11Z' language: Java archived: false stars: 159 watchers: 24 forks: 84 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"2715dc5e1feaa1eb4559033dbe06e84efada885f989b72b660aca3e6759eab64"' repoLastModified: Thu, 08 Aug 2024 09:57:11 GMT foundInMaster: true category: Parsers id: 73bbfe691003c37a641d8864645f2425 - source: openapi3 tags repository: https://github.com/sunrise-php/http-router v3: true repositoryMetadata: base64Readme: >- IyBIVFRQIHJvdXRlciBmb3IgUEhQIDcuMSsgYmFzZWQgb24gUFNSLTcgYW5kIFBTUi0xNSB3aXRoIHN1cHBvcnQgZm9yIGFubm90YXRpb25zL2F0dHJpYnV0ZXMgYW5kIE9wZW5BUEkgKFN3YWdnZXIpIFNwZWNpZmljYXRpb24KCioqcHNyIHJvdXRlcioqLCAqKnJvdXRlciB3aXRoIGFubm90YXRpb25zKiosICoqcm91dGVyIHdpdGggYXR0cmlidXRlcyoqLCAqKnBocCByb3V0ZXIqKi4KClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvc3VucmlzZS1waHAvaHR0cC1yb3V0ZXIuc3ZnP3N0eWxlPXNoaWVsZCldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL3N1bnJpc2UtcGhwL2h0dHAtcm91dGVyKQpbIVtDb2RlIENvdmVyYWdlXShodHRwczovL3NjcnV0aW5pemVyLWNpLmNvbS9nL3N1bnJpc2UtcGhwL2h0dHAtcm91dGVyL2JhZGdlcy9jb3ZlcmFnZS5wbmc/Yj1tYXN0ZXIpXShodHRwczovL3NjcnV0aW5pemVyLWNpLmNvbS9nL3N1bnJpc2UtcGhwL2h0dHAtcm91dGVyLz9icmFuY2g9bWFzdGVyKQpbIVtTY3J1dGluaXplciBDb2RlIFF1YWxpdHldKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvc3VucmlzZS1waHAvaHR0cC1yb3V0ZXIvYmFkZ2VzL3F1YWxpdHktc2NvcmUucG5nP2I9bWFzdGVyKV0oaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9zdW5yaXNlLXBocC9odHRwLXJvdXRlci8/YnJhbmNoPW1hc3RlcikKWyFbVG90YWwgRG93bmxvYWRzXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL3N1bnJpc2UvaHR0cC1yb3V0ZXIvZG93bmxvYWRzP2Zvcm1hdD1mbGF0KV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL3N1bnJpc2UvaHR0cC1yb3V0ZXIpClshW0xhdGVzdCBTdGFibGUgVmVyc2lvbl0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9zdW5yaXNlL2h0dHAtcm91dGVyL3Yvc3RhYmxlP2Zvcm1hdD1mbGF0KV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL3N1bnJpc2UvaHR0cC1yb3V0ZXIpClshW0xpY2Vuc2VdKGh0dHBzOi8vcG9zZXIucHVneC5vcmcvc3VucmlzZS9odHRwLXJvdXRlci9saWNlbnNlP2Zvcm1hdD1mbGF0KV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL3N1bnJpc2UvaHR0cC1yb3V0ZXIpCgotLS0KCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaApjb21wb3NlciByZXF1aXJlICdzdW5yaXNlL2h0dHAtcm91dGVyOl4yLjE1JwpgYGAKCiMjIFN1cHBvcnQgZm9yIE9wZW5BUEkgKFN3YWdnZXIpIFNwZWNpZmljYXRpb24gKG9wdGlvbmFsKQoKYGBgYmFzaApjb21wb3NlciByZXF1aXJlICdzdW5yaXNlL2h0dHAtcm91dGVyLW9wZW5hcGk6XjIuMCcKYGBgCgpNb3JlIGRldGFpbHMgY2FuIGJlIGZvdW5kIGhlcmU6IFtzdW5yaXNlL2h0dHAtcm91dGVyLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9zdW5yaXNlLXBocC9odHRwLXJvdXRlci1vcGVuYXBpKS4KCiMjIFF1aWNrU3RhcnQKClRoaXMgZXhhbXBsZSB1c2VzIG90aGVyIHN1bnJpc2UgcGFja2FnZXMsIGJ1dCB5b3UgY2FuIHVzZSBlLmcuIGB6ZW5kL2RpYWN0b3Jvc2Agb3IgYW55IG90aGVyLgoKYGBgYmFzaApjb21wb3NlciByZXF1aXJlIHN1bnJpc2UvaHR0cC1tZXNzYWdlIHN1bnJpc2UvaHR0cC1zZXJ2ZXItcmVxdWVzdApgYGAKCmBgYHBocAp1c2UgU3VucmlzZVxIdHRwXE1lc3NhZ2VcUmVzcG9uc2VGYWN0b3J5Owp1c2UgU3VucmlzZVxIdHRwXFJvdXRlclxSb3V0ZUNvbGxlY3RvcjsKdXNlIFN1bnJpc2VcSHR0cFxSb3V0ZXJcUm91dGVyOwp1c2UgU3VucmlzZVxIdHRwXFNlcnZlclJlcXVlc3RcU2VydmVyUmVxdWVzdEZhY3Rvcnk7Cgp1c2UgZnVuY3Rpb24gU3VucmlzZVxIdHRwXFJvdXRlclxlbWl0OwoKJGNvbGxlY3RvciA9IG5ldyBSb3V0ZUNvbGxlY3RvcigpOwoKLy8gUFNSLTE1IHJlcXVlc3QgaGFuZGxlciAob3B0aW1hbCBwZXJmb3JtYW5jZSk6CiRjb2xsZWN0b3ItPmdldCgnaG9tZScsICcvJywgbmV3IEhvbWVSZXF1ZXN0SGFuZGxlcigpKTsKCi8vIG9yIHlvdSBjYW4gdXNlIGFuIGFub255bW91cyBmdW5jdGlvbiBhcyB5b3VyIHJlcXVlc3QgaGFuZGxlcjoKJGNvbGxlY3Rvci0+Z2V0KCdob21lJywgJy8nLCBmdW5jdGlvbiAoJHJlcXVlc3QpIHsKICAgIHJldHVybiAobmV3IFJlc3BvbnNlRmFjdG9yeSktPmNyZWF0ZVJlc3BvbnNlKDIwMCk7Cn0pOwoKLy8gb3IgeW91IGNhbiB1c2UgdGhlIG5hbWUgb2YgYSBjbGFzcyB0aGF0IGltcGxlbWVudHMgUFNSLTE1OgokY29sbGVjdG9yLT5nZXQoJ2hvbWUnLCAnLycsIEhvbWVSZXF1ZXN0SGFuZGxlcjo6Y2xhc3MpOwoKLy8gb3IgeW91IGNhbiB1c2UgYSBjbGFzcyBtZXRob2QgbmFtZSBhcyB5b3VyIHJlcXVlc3QgaGFuZGxlcjoKLy8gKG5vdGUgdGhhdCBzdWNoIGEgY2xhc3MgbWF5bid0IGltcGxlbWVudCBQU1ItMTUpCiRjb2xsZWN0b3ItPmdldCgnaG9tZScsICcvJywgW0hvbWVSZXF1ZXN0SGFuZGxlcjo6Y2xhc3MsICdpbmRleCddKTsKCi8vIG1vc3QgbGlrZWx5IHlvdSB3aWxsIG5lZWQgdG8gdXNlIFBTUi0xMSBjb250YWluZXI6Ci8vIChub3RlIHRoYXQgb25seSBuYW1lZCBjbGFzc2VzIHdpbGwgYmUgcHVsbGVkIGZyb20gc3VjaCBhIGNvbnRhaW5lcikKJGNvbGxlY3Rvci0+c2V0Q29udGFpbmVyKCRjb250YWluZXIpOwoKJHJvdXRlciA9IG5ldyBSb3V0ZXIoKTsKJHJvdXRlci0+YWRkUm91dGUoLi4uJGNvbGxlY3Rvci0+Z2V0Q29sbGVjdGlvbigpLT5hbGwoKSk7CgokcmVxdWVzdCA9IFNlcnZlclJlcXVlc3RGYWN0b3J5Ojpmcm9tR2xvYmFscygpOwokcmVzcG9uc2UgPSAkcm91dGVyLT5oYW5kbGUoJHJlcXVlc3QpOwoKZW1pdCgkcmVzcG9uc2UpOwpgYGAKCi0tLQoKIyMgRXhhbXBsZXMgb2YgdXNpbmcKClN0dWR5IFtzdW5yaXNlL2F3ZXNvbWUtc2tlbGV0b25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdW5yaXNlLXBocC9hd2Vzb21lLXNrZWxldG9uKSB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGNhbiBiZSB1c2VkLgoKIyMjIyBTdHJhdGVneSBmb3IgbG9hZGluZyByb3V0ZXMgZnJvbSBjb25maWdzCgo+IFBsZWFzZSBub3RlIHRoYXQgc2luY2UgdmVyc2lvbiAyLjEwLjAgY2xhc3MgYENvbmZpZ0xvYWRlcmAgbXVzdCBiZSB1c2VkLgoKYGBgcGhwCnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXExvYWRlclxDb25maWdMb2FkZXI7CnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXFJvdXRlcjsKCiRsb2FkZXIgPSBuZXcgQ29uZmlnTG9hZGVyKCk7CgovLyBzZXQgY29udGFpbmVyIGlmIG5lY2Vzc2FyeS4uLgokbG9hZGVyLT5zZXRDb250YWluZXIoJGNvbnRhaW5lcik7CgovLyBhdHRhY2ggY29uZmlncy4uLgokbG9hZGVyLT5hdHRhY2goJ3JvdXRlcy9hcGkucGhwJyk7CiRsb2FkZXItPmF0dGFjaCgncm91dGVzL2FkbWluLnBocCcpOwokbG9hZGVyLT5hdHRhY2goJ3JvdXRlcy9wdWJsaWMucGhwJyk7CgovLyBvciBhdHRhY2ggYSBkaXJlY3RvcnkuLi4KLy8gWyFdIGF2YWlsYWJsZSBmcm9tIHZlcnNpb24gMi4yCiRsb2FkZXItPmF0dGFjaCgncm91dGVzJyk7CgovLyBvciBhdHRhY2ggYW4gYXJyYXkuLi4KLy8gWyFdIGF2YWlsYWJsZSBmcm9tIHZlcnNpb24gMi40CiRsb2FkZXItPmF0dGFjaEFycmF5KFsKICAgICdyb3V0ZXMvYXBpLnBocCcsCiAgICAncm91dGVzL2FkbWluLnBocCcsCiAgICAncm91dGVzL3B1YmxpYy5waHAnLApdKTsKCi8vIGluc3RhbGwgY29udGFpbmVyIGlmIG5lY2Vzc2FyeS4uLgokbG9hZGVyLT5zZXRDb250YWluZXIoJGNvbnRhaW5lcik7Cgokcm91dGVyID0gbmV3IFJvdXRlcigpOwokcm91dGVyLT5sb2FkKCRsb2FkZXIpOwoKLy8gaWYgdGhlIHJvdXRlciBtYXRjaGluZyBzaG91bGQgYmUgaXNvbGF0ZWQgZm9yIHRvcCBtaWRkbGV3YXJlcy4uLgovLyBmb3IgZXhhbXBsZSBmb3IgZXJyb3IgaGFuZGxpbmcuLi4KLy8gWyFdIGF2YWlsYWJsZSBmcm9tIHZlcnNpb24gMi44CiRyZXNwb25zZSA9ICRyb3V0ZXItPnJ1bigkcmVxdWVzdCk7CgovLyBpZiB0aGUgcm91dGVyIGlzIHVzZWQgYXMgYSByZXF1ZXN0IGhhbmRsZXIKJHJlc3BvbnNlID0gJHJvdXRlci0+aGFuZGxlKCRyZXF1ZXN0KTsKCi8vIGlmIHRoZSByb3V0ZXIgaXMgdXNlZCBhcyBtaWRkbGV3YXJlCiRyZXNwb25zZSA9ICRyb3V0ZXItPnByb2Nlc3MoJHJlcXVlc3QsICRoYW5kbGVyKTsKYGBgCgpgYGBwaHAKLyoqIEB2YXIgU3VucmlzZVxIdHRwXFJvdXRlclxSb3V0ZUNvbGxlY3RvciAkdGhpcyAqLwoKJHRoaXMtPmdldCgnaG9tZScsICcvJywgbmV3IENhbGxhYmxlUmVxdWVzdEhhbmRsZXIoZnVuY3Rpb24gKCRyZXF1ZXN0KSB7CiAgICByZXR1cm4gKG5ldyBSZXNwb25zZUZhY3RvcnkpLT5jcmVhdGVKc29uUmVzcG9uc2UoMjAwKTsKfSkpOwoKLy8gb3IgdXNpbmcgYSBkaXJlY3QgcmVmZXJlbmNlIHRvIGEgcmVxdWVzdCBoYW5kbGVyLi4uCiR0aGlzLT5nZXQoJ2hvbWUnLCAnLycsIG5ldyBBcHBcSHR0cFxDb250cm9sbGVyXEhvbWVDb250cm9sbGVyKCkpOwpgYGAKCj4gUGxlYXNlIG5vdGUgdGhhdCBzaW5jZSB2ZXJzaW9uIDIuMTAuMCB5b3UgY2FuIHJlZmVyIHRvIHRoZSByZXF1ZXN0IGhhbmRsZXIgaW4gZGlmZmVyZW50IHdheXMuCgpgYGBwaHAKLyoqIEB2YXIgU3VucmlzZVxIdHRwXFJvdXRlclxSb3V0ZUNvbGxlY3RvciAkdGhpcyAqLwoKJHRoaXMtPmdldCgnaG9tZScsICcvJywgZnVuY3Rpb24gKCRyZXF1ZXN0KSB7CiAgICByZXR1cm4gKG5ldyBSZXNwb25zZUZhY3RvcnkpLT5jcmVhdGVKc29uUmVzcG9uc2UoMjAwKTsKfSk7CgokdGhpcy0+Z2V0KCdob21lJywgJy8nLCBBcHBcSHR0cFxDb250cm9sbGVyXEhvbWVDb250cm9sbGVyOjpjbGFzcywgWwogICAgQXBwXEh0dHBcTWlkZGxld2FyZVxGb29NaWRkbGV3YXJlOjpjbGFzcywKICAgIEFwcFxIdHRwXE1pZGRsZXdhcmVcQmFyTWlkZGxld2FyZTo6Y2xhc3MsCl0pOwoKJHRoaXMtPmdldCgnaG9tZScsICcvJywgW0FwcFxIdHRwXENvbnRyb2xsZXJcSG9tZUNvbnRyb2xsZXI6OmNsYXNzLCAnaW5kZXgnXSwgWwogICAgQXBwXEh0dHBcTWlkZGxld2FyZVxGb29NaWRkbGV3YXJlOjpjbGFzcywKICAgIEFwcFxIdHRwXE1pZGRsZXdhcmVcQmFyTWlkZGxld2FyZTo6Y2xhc3MsCl0pOwpgYGAKCiMjIyMgU3RyYXRlZ3kgZm9yIGxvYWRpbmcgcm91dGVzIGZyb20gZGVzY3JpcHRvcnMgKGFubm90YXRpb25zIG9yIGF0dHJpYnV0ZXMpCgpJbnN0YWxsIHRoZSBbZG9jdHJpbmUvYW5ub3RhdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kb2N0cmluZS9hbm5vdGF0aW9ucykgcGFja2FnZSBpZiB5b3Ugd2lsbCBiZSB1c2UgYW5ub3RhdGlvbnM6CgpgYGBiYXNoCmNvbXBvc2VyIHJlcXVpcmUgZG9jdHJpbmUvYW5ub3RhdGlvbnMKYGBgCgo+IFBsZWFzZSBub3RlIHRoYXQgc2luY2UgdmVyc2lvbiAyLjEwLjAgY2xhc3MgYERlc2NyaXB0b3JMb2FkZXJgIG11c3QgYmUgdXNlZC4KCj4gUGxlYXNlIG5vdGUgdGhhdCBzaW5jZSB2ZXJzaW9uIDIuMTAuMCB5b3UgY2FuIGJpbmQgdGhlIEBSb3RlKCkgYW5ub3RhdGlvbiB0byBhIGNsYXNzIG1ldGhvZHMuCgpgYGBwaHAKdXNlIERvY3RyaW5lXENvbW1vblxBbm5vdGF0aW9uc1xBbm5vdGF0aW9uUmVnaXN0cnk7CnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXExvYWRlclxEZXNjcmlwdG9yTG9hZGVyOwp1c2UgU3VucmlzZVxIdHRwXFJvdXRlclxSb3V0ZXI7CgovLyBuZWNlc3NhcnkgaWYgeW91IHdpbGwgdXNlIGFubm90YXRpb25zIChhbm5vdGF0aW9ucyBpc24ndCBhdHRyaWJ1dGVzKS4uLgpBbm5vdGF0aW9uUmVnaXN0cnk6OnJlZ2lzdGVyTG9hZGVyKCdjbGFzc19leGlzdHMnKTsKCiRsb2FkZXIgPSBuZXcgRGVzY3JpcHRvckxvYWRlcigpOwoKLy8gc2V0IGNvbnRhaW5lciBpZiBuZWNlc3NhcnkuLi4KJGxvYWRlci0+c2V0Q29udGFpbmVyKCRjb250YWluZXIpOwoKLy8gYXR0YWNoIGEgZGlyZWN0b3J5IHdpdGggY29udHJvbGxlcnMuLi4KJGxvYWRlci0+YXR0YWNoKCdzcmMvQ29udHJvbGxlcicpOwoKLy8gb3IgYXR0YWNoIGFuIGFycmF5Ci8vIFshXSBhdmFpbGFibGUgZnJvbSB2ZXJzaW9uIDIuNAokbG9hZGVyLT5hdHRhY2hBcnJheShbCiAgICAnc3JjL0NvbnRyb2xsZXInLAogICAgJ3NyYy9CdW5kbGUvQnVuZGxlTmFtZS9Db250cm9sbGVyJywKXSk7CgovLyBvciBhdHRhY2ggYSBjbGFzcyBvbmx5Ci8vIFshXSBhdmFpbGFibGUgZnJvbSAyLjEwIHZlcnNpb24uCiRsb2FkZXItPmF0dGFjaChBcHBcSHR0cFxDb250cm9sbGVyXEZvb0NvbnRyb2xsZXI6OmNsYXNzKTsKCiRyb3V0ZXIgPSBuZXcgUm91dGVyKCk7CiRyb3V0ZXItPmxvYWQoJGxvYWRlcik7CgovLyBpZiB0aGUgcm91dGVyIG1hdGNoaW5nIHNob3VsZCBiZSBpc29sYXRlZCBmb3IgdG9wIG1pZGRsZXdhcmVzLi4uCi8vIGZvciBleGFtcGxlIGZvciBlcnJvciBoYW5kbGluZy4uLgovLyBbIV0gYXZhaWxhYmxlIGZyb20gdmVyc2lvbiAyLjgKJHJlc3BvbnNlID0gJHJvdXRlci0+cnVuKCRyZXF1ZXN0KTsKCi8vIGlmIHRoZSByb3V0ZXIgaXMgdXNlZCBhcyBhIHJlcXVlc3QgaGFuZGxlcgokcmVzcG9uc2UgPSAkcm91dGVyLT5oYW5kbGUoJHJlcXVlc3QpOwoKLy8gaWYgdGhlIHJvdXRlciBpcyB1c2VkIGFzIG1pZGRsZXdhcmUKJHJlc3BvbnNlID0gJHJvdXRlci0+cHJvY2VzcygkcmVxdWVzdCwgJGhhbmRsZXIpOwpgYGAKCmBgYHBocAp1c2UgU3VucmlzZVxIdHRwXFJvdXRlclxBbm5vdGF0aW9uIGFzIE1hcHBpbmc7CgojW01hcHBpbmdcUHJlZml4KCcvYXBpL3YxJyldCiNbTWFwcGluZ1xNaWRkbGV3YXJlKFNvbWVNaWRkbGV3YXJlOjpjbGFzcyldCmNsYXNzIFNvbWVDb250cm9sbGVyIHsKCiAgICAjW01hcHBpbmdcUm91dGUoJ2ZvbycsIHBhdGg6ICcvZm9vJyldCiAgICBwdWJsaWMgZnVuY3Rpb24gZm9vKCkgewogICAgICAgIC8vIHdpbGwgYmUgYXZhaWxhYmxlIGF0OiAvYXBpL3YxL2ZvbwogICAgfQoKICAgICNbTWFwcGluZ1xSb3V0ZSgnYmFyJywgcGF0aDogJy9iYXInKV0KICAgIHB1YmxpYyBmdW5jdGlvbiBiYXIoKSB7CiAgICAgICAgLy8gd2lsbCBiZSBhdmFpbGFibGUgYXQ6IC9hcGkvdjEvYmFyCiAgICB9Cn0KYGBgCgojIyMjIFdpdGhvdXQgbG9hZGluZyBzdHJhdGVneQoKYGBgcGhwCnVzZSBBcHBcQ29udHJvbGxlclxIb21lQ29udHJvbGxlcjsKdXNlIFN1bnJpc2VcSHR0cFxSb3V0ZXJcUm91dGVDb2xsZWN0b3I7CnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXFJvdXRlcjsKCiRjb2xsZWN0b3IgPSBuZXcgUm91dGVDb2xsZWN0b3IoKTsKCi8vIHNldCBjb250YWluZXIgaWYgbmVjZXNzYXJ5Li4uCiRjb2xsZWN0b3ItPnNldENvbnRhaW5lcigkY29udGFpbmVyKTsKCiRjb2xsZWN0b3ItPmdldCgnaG9tZScsICcvJywgbmV3IEhvbWVDb250cm9sbGVyKCkpOwoKJHJvdXRlciA9IG5ldyBSb3V0ZXIoKTsKJHJvdXRlci0+YWRkUm91dGUoLi4uJGNvbGxlY3Rvci0+Z2V0Q29sbGVjdGlvbigpLT5hbGwoKSk7CgovLyBpZiB0aGUgcm91dGVyIG1hdGNoaW5nIHNob3VsZCBiZSBpc29sYXRlZCBmb3IgdG9wIG1pZGRsZXdhcmVzLi4uCi8vIGZvciBleGFtcGxlIGZvciBlcnJvciBoYW5kbGluZy4uLgovLyBbIV0gYXZhaWxhYmxlIGZyb20gdmVyc2lvbiAyLjgKJHJlc3BvbnNlID0gJHJvdXRlci0+cnVuKCRyZXF1ZXN0KTsKCi8vIGlmIHRoZSByb3V0ZXIgaXMgdXNlZCBhcyBhIHJlcXVlc3QgaGFuZGxlcgokcmVzcG9uc2UgPSAkcm91dGVyLT5oYW5kbGUoJHJlcXVlc3QpOwoKLy8gaWYgdGhlIHJvdXRlciBpcyB1c2VkIGFzIG1pZGRsZXdhcmUKJHJlc3BvbnNlID0gJHJvdXRlci0+cHJvY2VzcygkcmVxdWVzdCwgJGhhbmRsZXIpOwpgYGAKCiMjIyMgRXJyb3IgaGFuZGxpbmcgZXhhbXBsZQoKYGBgcGhwCnVzZSBTdW5yaXNlXEh0dHBcTWVzc2FnZVxSZXNwb25zZUZhY3Rvcnk7CnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXEV4Y2VwdGlvblxNZXRob2ROb3RBbGxvd2VkRXhjZXB0aW9uOwp1c2UgU3VucmlzZVxIdHRwXFJvdXRlclxFeGNlcHRpb25cUm91dGVOb3RGb3VuZEV4Y2VwdGlvbjsKdXNlIFN1bnJpc2VcSHR0cFxSb3V0ZXJcTWlkZGxld2FyZVxDYWxsYWJsZU1pZGRsZXdhcmU7CnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXFJlcXVlc3RIYW5kbGVyXENhbGxhYmxlUmVxdWVzdEhhbmRsZXI7CnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXFJvdXRlQ29sbGVjdG9yOwp1c2UgU3VucmlzZVxIdHRwXFJvdXRlclxSb3V0ZXI7CnVzZSBTdW5yaXNlXEh0dHBcU2VydmVyUmVxdWVzdFxTZXJ2ZXJSZXF1ZXN0RmFjdG9yeTsKCnVzZSBmdW5jdGlvbiBTdW5yaXNlXEh0dHBcUm91dGVyXGVtaXQ7CgokY29sbGVjdG9yID0gbmV3IFJvdXRlQ29sbGVjdG9yKCk7CgokY29sbGVjdG9yLT5nZXQoJ2hvbWUnLCAnLycsIG5ldyBDYWxsYWJsZVJlcXVlc3RIYW5kbGVyKGZ1bmN0aW9uICgkcmVxdWVzdCkgewogICAgcmV0dXJuIChuZXcgUmVzcG9uc2VGYWN0b3J5KS0+Y3JlYXRlSnNvblJlc3BvbnNlKDIwMCk7Cn0pKTsKCiRyb3V0ZXIgPSBuZXcgUm91dGVyKCk7CiRyb3V0ZXItPmFkZFJvdXRlKC4uLiRjb2xsZWN0b3ItPmdldENvbGxlY3Rpb24oKS0+YWxsKCkpOwoKJHJvdXRlci0+YWRkTWlkZGxld2FyZShuZXcgQ2FsbGFibGVNaWRkbGV3YXJlKGZ1bmN0aW9uICgkcmVxdWVzdCwgJGhhbmRsZXIpIHsKICAgIHRyeSB7CiAgICAgICAgcmV0dXJuICRoYW5kbGVyLT5oYW5kbGUoJHJlcXVlc3QpOwogICAgfSBjYXRjaCAoTWV0aG9kTm90QWxsb3dlZEV4Y2VwdGlvbiAkZSkgewogICAgICAgIHJldHVybiAobmV3IFJlc3BvbnNlRmFjdG9yeSktPmNyZWF0ZVJlc3BvbnNlKDQwNSk7CiAgICB9IGNhdGNoIChSb3V0ZU5vdEZvdW5kRXhjZXB0aW9uICRlKSB7CiAgICAgICAgcmV0dXJuIChuZXcgUmVzcG9uc2VGYWN0b3J5KS0+Y3JlYXRlUmVzcG9uc2UoNDA0KTsKICAgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkgewogICAgICAgIHJldHVybiAobmV3IFJlc3BvbnNlRmFjdG9yeSktPmNyZWF0ZVJlc3BvbnNlKDUwMCk7CiAgICB9Cn0pKTsKCmVtaXQoJHJvdXRlci0+cnVuKFNlcnZlclJlcXVlc3RGYWN0b3J5Ojpmcm9tR2xvYmFscygpKSk7CmBgYAoKIyMjIyBXb3JrIHdpdGggUFNSLTExIGNvbnRhaW5lcgoKIyMjIyMgQ29sbGVjdG9yCgpgYGBwaHAKJGNvbGxlY3RvciA9IG5ldyBSb3V0ZUNvbGxlY3RvcigpOwoKLyoqIEB2YXIgXFBzclxDb250YWluZXJcQ29udGFpbmVySW50ZXJmYWNlICRjb250YWluZXIgKi8KCi8vIFBhc3MgREkgY29udGFpbmVyIHRvIHRoZSBjb2xsZWN0b3IuLi4KJGNvbGxlY3Rvci0+c2V0Q29udGFpbmVyKCRjb250YWluZXIpOwoKLy8gT2JqZWN0cyBwYXNzZWQgYXMgc3RyaW5ncyB3aWxsIGJlIGluaXRpYWxpemVkIHRocm91Z2ggdGhlIERJIGNvbnRhaW5lci4uLgokcm91dGUgPSAkY29sbGVjdG9yLT5nZXQoJ2hvbWUnLCAnLycsIEhvbWVDb250cm9sbGVyOjpjbGFzcywgWwogICAgRm9vTWlkZGxld2FyZTo6Y2xhc3MsCiAgICBCYXJNaWRkbGV3YXJlOjpjbGFzcywKXSk7CmBgYAoKIyMjIyMgQ29uZmlnIGxvYWRlcgoKYGBgcGhwCiRsb2FkZXIgPSBuZXcgQ29uZmlnTG9hZGVyKCk7CgovKiogQHZhciBcUHNyXENvbnRhaW5lclxDb250YWluZXJJbnRlcmZhY2UgJGNvbnRhaW5lciAqLwoKLy8gUGFzcyBESSBjb250YWluZXIgdG8gdGhlIGxvYWRlci4uLgokbG9hZGVyLT5zZXRDb250YWluZXIoJGNvbnRhaW5lcik7CgovLyBBbGwgZm91bmQgb2JqZWN0cyB3aGljaCBoYXMgYmVlbiBwYXNzZWQgYXMgc3RyaW5ncyB3aWxsIGJlIGluaXRpYWxpemVkIHRocm91Z2ggdGhlIERJIGNvbnRhaW5lci4uLgokcm91dGVzID0gJGxvYWRlci0+bG9hZCgpOwpgYGAKCiMjIyMjIERlc2NyaXB0b3IgbG9hZGVyCgpgYGBwaHAKJGxvYWRlciA9IG5ldyBEZXNjcmlwdG9yTG9hZGVyKCk7CgovKiogQHZhciBcUHNyXENvbnRhaW5lclxDb250YWluZXJJbnRlcmZhY2UgJGNvbnRhaW5lciAqLwoKLy8gUGFzcyBESSBjb250YWluZXIgdG8gdGhlIGxvYWRlci4uLgokbG9hZGVyLT5zZXRDb250YWluZXIoJGNvbnRhaW5lcik7CgovLyBBbGwgZm91bmQgb2JqZWN0cyB3aWxsIGJlIGluaXRpYWxpemVkIHRocm91Z2ggdGhlIERJIGNvbnRhaW5lci4uLgokcm91dGVzID0gJGxvYWRlci0+bG9hZCgpOwpgYGAKCiMjIyMgRGVzY3JpcHRvcnMgY2FjaGUgKFBTUi0xNikKCmBgYHBocAokbG9hZGVyID0gbmV3IERlc2NyaXB0b3JMb2FkZXIoKTsKCi8qKiBAdmFyIFxQc3JcU2ltcGxlQ2FjaGVcQ2FjaGVJbnRlcmZhY2UgJGNhY2hlICovCgovLyBQYXNzIGEgY2FjaGUgdG8gdGhlIGxvYWRlci4uLgokbG9hZGVyLT5zZXRDYWNoZSgkY2FjaGUpOwpgYGAKCiMjIyMgUm91dGUgQW5ub3RhdGlvbiBFeGFtcGxlCgojIyMjIyBNaW5pbWFsIGFubm90YXRpb24gdmlldwoKYGBgcGhwCi8qKgogKiBAUm91dGUoCiAqICAgbmFtZT0iYXBpX3YxX2VudHJ5X3VwZGF0ZSIsCiAqICAgcGF0aD0iL2FwaS92MS9lbnRyeS97aWQ8QHV1aWQ+fSgve29wdGlvbmFsQXR0cmlidXRlfSkiLAogKiAgIG1ldGhvZHM9eyJQQVRDSCJ9LAogKiApCiAqLwpmaW5hbCBjbGFzcyBFbnRyeVVwZGF0ZVJlcXVlc3RIYW5kbGVyIGltcGxlbWVudHMgUmVxdWVzdEhhbmRsZXJJbnRlcmZhY2UKYGBgCgojIyMjIyBGdWxsIGFubm90YXRpb24KCmBgYHBocAovKioKICogQFJvdXRlKAogKiAgIG5hbWU9ImFwaV92MV9lbnRyeV91cGRhdGUiLAogKiAgIGhvc3Q9ImFwaS5ob3N0IiwKICogICBwYXRoPSIvYXBpL3YxL2VudHJ5L3tpZDxAdXVpZD59KC97b3B0aW9uYWxBdHRyaWJ1dGV9KSIsCiAqICAgbWV0aG9kcz17IlBBVENIIn0sCiAqICAgbWlkZGxld2FyZXM9ewogKiAgICAgIkFwcFxNaWRkbGV3YXJlXENvcnNNaWRkbGV3YXJlIiwKICogICAgICJBcHBcTWlkZGxld2FyZVxBcGlBdXRoTWlkZGxld2FyZSIsCiAqICAgfSwKICogICBhdHRyaWJ1dGVzPXsKICogICAgICJvcHRpb25hbEF0dHJpYnV0ZSI6ICJkZWZhdWx0VmFsdWUiLAogKiAgIH0sCiAqICAgc3VtbWFyeT0iVXBkYXRlcyBhbiBlbnRyeSBieSBVVUlEIiwKICogICBkZXNjcmlwdGlvbj0iSGVyZSB5b3UgY2FuIGRlc2NyaWJlIHRoZSBtZXRob2QgaW4gbW9yZSBkZXRhaWwuLi4iLAogKiAgIHRhZ3M9eyJhcGkiLCAiZW50cnkifSwKICogICBwcmlvcml0eT0wLAogKiApCiAqLwpmaW5hbCBjbGFzcyBFbnRyeVVwZGF0ZVJlcXVlc3RIYW5kbGVyIGltcGxlbWVudHMgUmVxdWVzdEhhbmRsZXJJbnRlcmZhY2UKYGBgCgojIyMjIyBPbmUgbWV0aG9kIG9ubHkKCmBgYHBocAovKioKICogQFJvdXRlKAogKiAgIG5hbWU9ImhvbWUiLAogKiAgIHBhdGg9Ii8iLAogKiAgIG1ldGhvZD0iR0VUIiwKICogKQogKi8KYGBgCgojIyMjIFJvdXRlIEF0dHJpYnV0ZSBFeGFtcGxlCgojIyMjIyBNaW5pbWFsIGF0dHJpYnV0ZSB2aWV3CgpgYGBwaHAKdXNlIFN1bnJpc2VcSHR0cFxSb3V0ZXJcQW5ub3RhdGlvblxSb3V0ZTsKCiNbUm91dGUoCiAgICBuYW1lOiAnYXBpX3YxX2VudHJ5X3VwZGF0ZScsCiAgICBwYXRoOiAnL2FwaS92MS9lbnRyeS97aWQ8QHV1aWQ+fSgve29wdGlvbmFsQXR0cmlidXRlfSknLAogICAgbWV0aG9kczogWydQQVRDSCddLAopXQpmaW5hbCBjbGFzcyBFbnRyeVVwZGF0ZVJlcXVlc3RIYW5kbGVyIGltcGxlbWVudHMgUmVxdWVzdEhhbmRsZXJJbnRlcmZhY2UKYGBgCgojIyMjIyBGdWxsIGF0dHJpYnV0ZQoKYGBgcGhwCnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXEFubm90YXRpb25cUm91dGU7CgojW1JvdXRlKAogICAgbmFtZTogJ2FwaV92MV9lbnRyeV91cGRhdGUnLAogICAgaG9zdDogJ2FwaS5ob3N0JywKICAgIHBhdGg6ICcvYXBpL3YxL2VudHJ5L3tpZDxAdXVpZD59KC97b3B0aW9uYWxBdHRyaWJ1dGV9KScsCiAgICBtZXRob2RzOiBbJ1BBVENIJ10sCiAgICBtaWRkbGV3YXJlczogWwogICAgICAgIFxBcHBcTWlkZGxld2FyZVxDb3JzTWlkZGxld2FyZTo6Y2xhc3MsCiAgICAgICAgXEFwcFxNaWRkbGV3YXJlXEFwaUF1dGhNaWRkbGV3YXJlOjpjbGFzcywKICAgIF0sCiAgICBhdHRyaWJ1dGVzOiBbCiAgICAgICAgJ29wdGlvbmFsQXR0cmlidXRlJyA9PiAnZGVmYXVsdFZhbHVlJywKICAgIF0sCiAgICBzdW1tYXJ5OiAnVXBkYXRlcyBhbiBlbnRyeSBieSBVVUlEJywKICAgIGRlc2NyaXB0aW9uOiAnSGVyZSB5b3UgY2FuIGRlc2NyaWJlIHRoZSBtZXRob2QgaW4gbW9yZSBkZXRhaWwuLi4nLAogICAgdGFnczogWydhcGknLCAnZW50cnknXSwKICAgIHByaW9yaXR5OiAwLAopXQpmaW5hbCBjbGFzcyBFbnRyeVVwZGF0ZVJlcXVlc3RIYW5kbGVyIGltcGxlbWVudHMgUmVxdWVzdEhhbmRsZXJJbnRlcmZhY2UKYGBgCgojIyMjIyBBZGRpdGlvbmFsIGFubm90YXRpb25zCgpgYGBwaHAKdXNlIFN1bnJpc2VcSHR0cFxSb3V0ZXJcQW5ub3RhdGlvblxIb3N0OwoKI1tIb3N0KCdhZG1pbicpXQojW1ByZWZpeCgnL2FwaS92MScpXQojW1Bvc3RmaXgoJy5qc29uJyldCiNbTWlkZGxld2FyZShTb21lTWlkZGxld2FyZTo6Y2xhc3MpXQpmaW5hbCBjbGFzcyBTb21lQ29udHJvbGxlcgp7CiAgICAjW1JvdXRlKCdmb28nLCAnL2ZvbycpXQogICAgcHVibGljIGZ1bmN0aW9uIGZvbyhTZXJ2ZXJSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0KSA6IFJlc3BvbnNlSW50ZXJmYWNlCiAgICB7CiAgICAgICAgLy8gdGhpcyBhY3Rpb24gd2lsbCBiZSBhdmFpbGFibGUgYXQ6CiAgICAgICAgLy8gaHR0cDovL2FkbWluLmhvc3QvYXBpL3YxL2Zvby5qc29uCiAgICAgICAgLy8KICAgICAgICAvLyB0aGlzIGNhbiBiZSBoYW5keSB0byByZWR1Y2UgY29kZSBkdXBsaWNhdGlvbi4uLgogICAgfQp9CmBgYAoKLS0tCgojIyBVc2VmdWwgdG8ga25vdwoKIyMjIEpTT04tcGF5bG9hZCBkZWNvZGluZwoKYGBgcGhwCnVzZSBTdW5yaXNlXEh0dHBcUm91dGVyXE1pZGRsZXdhcmVcSnNvblBheWxvYWREZWNvZGluZ01pZGRsZXdhcmU7Cgokcm91dGVyLT5hZGRNaWRkbGV3YXJlKG5ldyBKc29uUGF5bG9hZERlY29kaW5nTWlkZGxld2FyZSgpKTsKYGBgCgojIyMgR2V0IGEgcm91dGUgYnkgbmFtZQoKYGBgcGhwCi8vIGNoZWNrcyBpZiBhIHJvdXRlIGlzIGV4aXN0cwokcm91dGVyLT5oYXNSb3V0ZSgnZm9vJyk7CgovLyBnZXRzIGEgcm91dGUgYnkgbmFtZQokcm91dGVyLT5nZXRSb3V0ZSgnZm9vJyk7CmBgYAoKIyMjIEdldCBhIGN1cnJlbnQgcm91dGUKCiMjIyMgVGhyb3VnaCBSb3V0ZXIKCj4gQXZhaWxhYmxlIGZyb20gdmVyc2lvbiAyLjEyLgoKYGBgcGhwCiRyb3V0ZXItPmdldE1hdGNoZWRSb3V0ZSgpOwpgYGAKCiMjIyMgVGhyb3VnaCBSZXF1ZXN0Cgo+IEF2YWlsYWJsZSBmcm9tIHZlcnNpb24gMS54LCBidXQgd2Fzbid0IGRvY3VtZW50ZWQgYmVmb3JlLi4uCgpgYGBwaHAKJHJlcXVlc3QtPmdldEF0dHJpYnV0ZSgnQHJvdXRlJyk7CgovLyBvcgokcmVxdWVzdC0+Z2V0QXR0cmlidXRlKFxTdW5yaXNlXEh0dHBcUm91dGVyXFJvdXRlSW50ZXJmYWNlOjpBVFRSX1JPVVRFKTsKYGBgCgojIyMjIFRocm91Z2ggRXZlbnQKCj4gQXZhaWxhYmxlIGZyb20gdmVyc2lvbiAyLjEzLgoKYGBgcGhwCiRldmVudERpc3BhdGNoZXItPmFkZExpc3RlbmVyKFJvdXRlRXZlbnQ6Ok5BTUUsIGZ1bmN0aW9uIChSb3V0ZUV2ZW50ICRldmVudCkgewogICAgJGV2ZW50LT5nZXRSb3V0ZSgpOwp9KTsKYGBgCgojIyMgR2VuZXJhdGlvbiBhIHJvdXRlIFVSSQoKYGBgcGhwCiR1cmkgPSAkcm91dGVyLT5nZW5lcmF0ZVVyaSgncm91dGUubmFtZScsIFsKICAgICdhdHRyaWJ1dGUnID0+ICd2YWx1ZScsCl0sIHRydWUpOwpgYGAKCiMjIyBSdW4gYSByb3V0ZQoKYGBgcGhwCiRyZXNwb25zZSA9ICRyb3V0ZXItPmdldFJvdXRlKCdyb3V0ZS5uYW1lJyktPmhhbmRsZSgkcmVxdWVzdCk7CmBgYAoKIyMjIFJvdXRlIGdyb3VwaW5nCgpFeGFtcGxlIGZvciBhbm5vdGF0aW9ucyBbaGVyZV0oI2FkZGl0aW9uYWwtYW5ub3RhdGlvbnMpLgoKYGBgcGhwCiRjb2xsZWN0b3ItPmdyb3VwKGZ1bmN0aW9uICgkY29sbGVjdG9yKSB7CiAgICAkY29sbGVjdG9yLT5ncm91cChmdW5jdGlvbiAoJGNvbGxlY3RvcikgewogICAgICAgICRjb2xsZWN0b3ItPmdyb3VwKGZ1bmN0aW9uICgkY29sbGVjdG9yKSB7CiAgICAgICAgICAgICRjb2xsZWN0b3ItPmdldCgnYXBpLmVudHJ5LnJlYWQnLCAnL3tpZDxcZCs+fScsIC4uLikKICAgICAgICAgICAgICAgIC0+YWRkTWlkZGxld2FyZSguLi4pOyAvLyBhZGQgdGhlIG1pZGRsZXdhcmUocykgdG8gdGhlIHJvdXRlLi4uCiAgICAgICAgfSkKICAgICAgICAtPmFkZFByZWZpeCgnL2VudHJ5JykgLy8gYWRkIHRoZSBwcmVmaXggdG8gdGhlIGdyb3VwLi4uCiAgICAgICAgLT5wcmVwZW5kTWlkZGxld2FyZSguLi4pOyAvLyBhZGQgdGhlIG1pZGRsZXdhcmUocykgdG8gdGhlIGdyb3VwLi4uCiAgICB9LCBbCiAgICAgICAgQXBwXEh0dHBcTWlkZGxld2FyZVxCYXI6OmNsYXNzLCAvLyByZXNvbHZhYmxlIG1pZGRsZXdhcmVzLi4uCiAgICBdKQogICAgLT5hZGRQcmVmaXgoJy92MScpIC8vIGFkZCB0aGUgcHJlZml4IHRvIHRoZSBncm91cC4uLgogICAgLT5wcmVwZW5kTWlkZGxld2FyZSguLi4pOyAvLyBhZGQgdGhlIG1pZGRsZXdhcmUocykgdG8gdGhlIGdyb3VwLi4uCn0sIFsKICAgIEFwcFxIdHRwXE1pZGRsZXdhcmVcRm9vOjpjbGFzcywgLy8gcmVzb2x2YWJsZSBtaWRkbGV3YXJlcy4uLgpdKQotPmFkZFByZWZpeCgnL2FwaScpIC8vIGFkZCB0aGUgcHJlZml4IHRvIHRoZSBncm91cC4uLgotPnByZXBlbmRNaWRkbGV3YXJlKC4uLik7IC8vIGFkZCB0aGUgbWlkZGxld2FyZShzKSB0byB0aGUgZ3JvdXAuLi4KYGBgCgojIyMgUm91dGUgcGF0dGVybnMKCmBgYHBocAokY29sbGVjdG9yLT5nZXQoJ2FwaS5lbnRyeS5yZWFkJywgJy9hcGkvdjEvZW50cnkve2lkPFxkKz59KC97b3B0aW9uYWw8XHcrPn0pJyk7CmBgYAoKIyMjIyMgR2xvYmFsIHJvdXRlIHBhdHRlcm5zCgpgYGBwaHAKLy8gQHV1aWQgcGF0dGVybgokY29sbGVjdG9yLT5nZXQoJ2FwaS5lbnRyeS5yZWFkJywgJy9hcGkvdjEvZW50cnkve2lkPEB1dWlkPn0nKTsKCi8vIEBzbHVnIHBhdHRlcm4KJGNvbGxlY3Rvci0+Z2V0KCdhcGkuZW50cnkucmVhZCcsICcvYXBpL3YxL2VudHJ5L3tzbHVnPEBzbHVnPn0nKTsKCi8vIEN1c3RvbSBwYXR0ZXJucyAoYXZhaWxhYmxlIGZyb20gdmVyc2lvbiAyLjkuMCk6ClxTdW5yaXNlXEh0dHBcUm91dGVyXFJvdXRlcjo6JHBhdHRlcm5zWydAaWQnXSA9ICdbMS05XVswLTldKic7CgovLyBKdXN0IHVzZSB0aGUgY3VzdG9tIHBhdHRlcm4uLi4KJGNvbGxlY3Rvci0+Z2V0KCdhcGkuZW50cnkucmVhZCcsICcvYXBpL3YxL2VudHJ5L3tpZDxAaWQ+fScpOwpgYGAKCkl0IGlzIGJldHRlciB0byBzZXQgcGF0dGVybnMgdGhyb3VnaCB0aGUgcm91dGVyOgoKYGBgcGhwCi8vIGF2YWlsYWJsZSBzaW5jZSB2ZXJzaW9uIDIuMTEuMAokcm91dGVyLT5hZGRQYXR0ZXJucyhbCiAgICAnQGlkJyA9PiAnWzEtOV1bMC05XSonLApdKTsKYGBgCgouLi5vciB0aHJvdWdoIHRoZSByb3V0ZXIncyBidWlsZGVyOgoKYGBgcGhwCi8vIGF2YWlsYWJsZSBzaW5jZSB2ZXJzaW9uIDIuMTEuMAokYnVpbGRlci0+c2V0UGF0dGVybnMoWwogICAgJ0BpZCcgPT4gJ1sxLTldWzAtOV0qJywKXSk7CmBgYAoKIyMjIEhvc3RzIChhdmFpbGFibGUgZnJvbSB2ZXJzaW9uIDIuNi4wKQoKPiBOb3RlOiBpZiB5b3UgZG9uJ3QgYXNzaWduIGEgaG9zdCBmb3IgYSByb3V0ZSwgaXQgd2lsbCBiZSBhdmFpbGFibGUgb24gYW55IGhvc3RzIQoKYGBgcGhwCi8vIG1vdmUgdGhlIGhvc3RzIHRhYmxlIGludG8gdGhlIHNldHRpbmdzLi4uCiRyb3V0ZXItPmFkZEhvc3QoJ3B1YmxpYy5ob3N0JywgJ3d3dy5leGFtcGxlLmNvbScsIC4uLik7CiRyb3V0ZXItPmFkZEhvc3QoJ2FkbWluLmhvc3QnLCAnc2VjcmV0LmV4YW1wbGUuY29tJywgLi4uKTsKJHJvdXRlci0+YWRkSG9zdCgnYXBpLmhvc3QnLCAnYXBpLmV4YW1wbGUuY29tJywgLi4uKTsKCi8vIC4uLm9yOgokcm91dGVyLT5hZGRIb3N0cyhbCiAgICAncHVibGljLmhvc3QnID0+IFsnd3d3LmV4YW1wbGUuY29tJywgLi4uXSwKICAgIC4uLgpdKTsKCi8vIHRoZSByb3V0ZSB3aWxsIGF2YWlsYWJsZSBvbmx5IG9uIHRoZSBgc2VjcmV0LmV4YW1wbGUuY29tYCBob3N0Li4uCiRyb3V0ZS0+c2V0SG9zdCgnYWRtaW4uaG9zdCcpOwoKLy8gcm91dGVzIGluIHRoZSBncm91cCB3aWxsIGF2YWlsYWJsZSBvbiB0aGUgYHNlY3JldC5leGFtcGxlLmNvbWAgaG9zdC4uLgokY29sbGVjdG9yLT5ncm91cChmdW5jdGlvbiAoJGNvbGxlY3RvcikgewogICAgLy8gc29tZSBjb2RlLi4uCn0pCi0+c2V0SG9zdCgnYWRtaW4uaG9zdCcpOwpgYGAKCllvdSBjYW4gcmVzb2x2ZSB0aGUgaG9zdG5hbWUgc2luY2UgdmVyc2lvbiAyLjE0LjAgYXMgZm9sbG93czoKCmBgYHBocAokcm91dGVyLT5hZGRIb3N0KCdhZG1pbicsICd3d3cxLmFkbWluLmV4YW1wbGUuY29tJywgJ3d3dzIuYWRtaW4uZXhhbXBsZS5jb20nKTsKCiRyb3V0ZXItPnJlc29sdmVIb3N0bmFtZSgnd3d3MS5hZG1pbi5leGFtcGxlLmNvbScpOyAvLyByZXR1cm4gImFkbWluIgokcm91dGVyLT5yZXNvbHZlSG9zdG5hbWUoJ3d3dzIuYWRtaW4uZXhhbXBsZS5jb20nKTsgLy8gcmV0dXJuICJhZG1pbiIKJHJvdXRlci0+cmVzb2x2ZUhvc3RuYW1lKCd1bmtub3duJyk7IC8vIHJldHVybiBudWxsCmBgYAoKQWxzbyB5b3UgY2FuIGdldCBhbGwgcm91dGVzIGJ5IGhvc3RuYW1lOgoKYGBgcGhwCiRyb3V0ZXItPmdldFJvdXRlc0J5SG9zdG5hbWUoJ3d3dzEuYWRtaW4uZXhhbXBsZS5jb20nKTsKYGBgCgojIyMgUm91dGUgSG9sZGVyCgpgYGBwaHAKJHJvdXRlLT5nZXRIb2xkZXIoKTsgLy8gcmV0dXJuIFJlZmxlY3RvciAoY2xhc3MsIG1ldGhvZCBvciBmdW5jdGlvbikKYGBgCgojIyMgVGhlIHJvdXRlciBidWlsZGVyCgpgYGBwaHAKJHJvdXRlciA9IChuZXcgUm91dGVyQnVpbGRlcikKICAgIC0+c2V0RXZlbnREaXNwYXRjaGVyKC4uLikgLy8gbnVsbCBvciB1c2UgdG8gc3ltZm9ueS9ldmVudC1kaXNwYXRjaGVyLi4uCiAgICAtPnNldENvbnRhaW5lciguLi4pIC8vIG51bGwgb3IgUFNSLTExIGNvbnRhaW5lciBpbnN0YW5jZS4uLgogICAgLT5zZXRDYWNoZSguLi4pIC8vIG51bGwgb3IgUFNSLTE2IGNhY2hlIGluc3RhbmNlLi4uIChvbmx5IGZvciBkZXNjcmlwdG9yIGxvYWRlcikKICAgIC0+c2V0Q2FjaGVLZXkoLi4uKSAvLyBudWxsIG9yIHN0cmluZy4uLiAob25seSBmb3IgZGVzY3JpcHRvciBsb2FkZXIpCiAgICAtPnVzZUNvbmZpZ0xvYWRlcihbXSkgLy8gYXJyYXkgd2l0aCBmaWxlcyBvciBkaXJlY3Rvcnkgd2l0aCBmaWxlcy4uLgogICAgLT51c2VEZXNjcmlwdG9yTG9hZGVyKFtdKSAvLyBhcnJheSB3aXRoIGNsYXNzZXMgb3IgZGlyZWN0b3J5IHdpdGggY2xhc3Nlcy4uLgogICAgLT5zZXRIb3N0cyhbXSkgLy8KICAgIC0+c2V0TWlkZGxld2FyZXMoW10pIC8vIGFycmF5IHdpdGggbWlkZGxld2FyZXMuLi4KICAgIC0+c2V0UGF0dGVybnMoW10pIC8vIGF2YWlsYWJsZSBzaW5jZSB2ZXJzaW9uIDIuMTEuMAogICAgLT5idWlsZCgpOwpgYGAKCiMjIyBDTEkgY29tbWFuZHMKCmBgYHBocAp1c2UgU3VucmlzZVxIdHRwXFJvdXRlclxDb21tYW5kXFJvdXRlTGlzdENvbW1hbmQ7CgpuZXcgUm91dGVMaXN0Q29tbWFuZCgkcm91dGVyKTsKYGBgCgojIyMgRXZlbnRzCgo+IEF2YWlsYWJsZSBmcm9tIHZlcnNpb24gMi4xMwoKYGBgYmFzaApjb21wb3NlciByZXF1aXJlIHN5bWZvbnkvZXZlbnQtZGlzcGF0Y2hlcgpgYGAKCmBgYHBocAp1c2UgU3VucmlzZVxIdHRwXFJvdXRlclxFdmVudFxSb3V0ZUV2ZW50Owp1c2UgU3ltZm9ueVxDb21wb25lbnRcRXZlbnREaXNwYXRjaGVyXEV2ZW50RGlzcGF0Y2hlcjsKCiRldmVudERpc3BhdGNoZXIgPSBuZXcgRXZlbnREaXNwYXRjaGVyKCk7CgokZXZlbnREaXNwYXRjaGVyLT5hZGRMaXN0ZW5lcihSb3V0ZUV2ZW50OjpOQU1FLCBmdW5jdGlvbiAoUm91dGVFdmVudCAkZXZlbnQpIHsKICAgIC8vIGdldHMgdGhlIG1hdGNoZWQgcm91dGU6CiAgICAkZXZlbnQtPmdldFJvdXRlKCk7CiAgICAvLyBnZXRzIHRoZSBjdXJyZW50IHJlcXVlc3Q6CiAgICAkZXZlbnQtPmdldFJlcXVlc3QoKTsKICAgIC8vIG92ZXJyaWRlcyB0aGUgY3VycmVudCByZXF1ZXN0OgogICAgJGV2ZW50LT5zZXRSZXF1ZXN0KFNlcnZlclJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QpOwp9KTsKCiRyb3V0ZXItPnNldEV2ZW50RGlzcGF0Y2hlcigkZXZlbnREaXNwYXRjaGVyKTsKYGBgCgotLS0KCiMjIFRlc3QgcnVuCgpgYGBiYXNoCmNvbXBvc2VyIHRlc3QKYGBgCgojIyBVc2VmdWwgbGlua3MKCiogaHR0cHM6Ly93d3cucGhwLWZpZy5vcmcvcHNyL3Bzci03LwoqIGh0dHBzOi8vd3d3LnBocC1maWcub3JnL3Bzci9wc3ItMTUvCiogaHR0cHM6Ly9naXRodWIuY29tL3N1bnJpc2UtcGhwL2F3ZXNvbWUtc2tlbGV0b24KKiBodHRwczovL2dpdGh1Yi5jb20vbWlkZGxld2FyZXMK readmeEtag: '"a20787bf13ba63eed483104770d7c150161ca5c6"' readmeLastModified: Sun, 01 Jan 2023 22:28:23 GMT repositoryId: 161002423 description: >- :tada: Release 2.0 is released! Very fast HTTP router for PHP 7.1+ based on PSR-7 and PSR-15 with support for annotations/attributes and OpenAPI (Swagger) Specification created: '2018-12-09T03:59:48Z' updated: '2024-06-27T17:27:53Z' language: PHP archived: false stars: 157 watchers: 4 forks: 10 owner: sunrise-php logo: https://avatars.githubusercontent.com/u/41580063?v=4 license: MIT repoEtag: '"89e372a412943a889bd8edd171babbb604c72c76b093ee6a2beac46aa8a4bcdc"' repoLastModified: Thu, 27 Jun 2024 17:27:53 GMT foundInMaster: true category: Data Validators id: d37760d7bb1c259409b90020129dcf91 - source: openapi3 tags repository: https://github.com/muneebhashone/typescript-backend-toolkit v3: true id: c1dfcc32aa8b5672a42fc929c043b0fc repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9ImxvZ28ud2VicCIgd2lkdGg9IjIwMHB4IiBhbGlnbj0iY2VudGVyIiBhbHQ9IlpvZCBsb2dvIiAvPgogIDxoMSBhbGlnbj0iY2VudGVyIj7inKggVHlwZVNjcmlwdCBCYWNrZW5kIFRvb2xraXQg4pyoPC9oMT4KICA8cCBhbGlnbj0iY2VudGVyIj4KICAgIDxici8+CiAgICBSb2J1c3QgYmFja2VuZCBib2lsZXJwbGF0ZSBkZXNpZ25lZCBmb3Igc2NhbGFiaWxpdHksIGZsZXhpYmlsaXR5LCBhbmQgZWFzZSBvZiBkZXZlbG9wbWVudC4gSXQncyBwYWNrZWQgd2l0aCBtb2Rlcm4gdGVjaG5vbG9naWVzIGFuZCBiZXN0IHByYWN0aWNlcyB0byBraWNrc3RhcnQgeW91ciBuZXh0IGJhY2tlbmQgcHJvamVjdC4KICA8L3A+CjwvcD4KPGJyLz4KCiMjIFByZXJlcXVpc2l0ZXMKCkJlZm9yZSB5b3UgZ2V0IHN0YXJ0ZWQsIG1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmU6CgotICoqRG9ja2VyICsgRG9ja2VyIENvbXBvc2UqKgotICoqUE5QTSoqCi0gKipOb2RlLmpzIDIwKyAoTFRTKSoqCgojIyBIb3cgdG8gUnVuCgoxLiAqKlNldCB1cCBEb2NrZXIgU2VydmljZXMqKjoKCiAgIC0gUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzdGFydCBNb25nb0RCIGFuZCBSZWRpcyBpbnN0YW5jZXMgbG9jYWxseToKICAgICBgYGBzaAogICAgIGRvY2tlciBjb21wb3NlIHVwIC1kCiAgICAgYGBgCjIuICoqSW5zdGFsbCBEZXBlbmRlbmNpZXMqKjoKCiAgIC0gVXNlIHBucG0gdG8gaW5zdGFsbCBhbGwgdGhlIG5lY2Vzc2FyeSBkZXBlbmRlbmNpZXM6CiAgICAgYGBgc2gKICAgICBwbnBtIGkKICAgICBgYGAKMy4gKipDb25maWd1cmUgRW52aXJvbm1lbnQgVmFyaWFibGVzKio6CgogICAtIENyZWF0ZSBhIGAuZW52YCBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeS4KICAgLSBVc2UgdGhlIHByb3ZpZGVkIGAuZW52LnNhbXBsZWAgYXMgYSB0ZW1wbGF0ZSB0byBlbnRlciBhbGwgdGhlIHJlcXVpcmVkIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCiMjIFdoYXQncyBJbmNsdWRlZAoKLSAqKk9wZW5BUEkgQXV0b2dlbmVyYXRlZCBTd2FnZ2VyIERvY3MqKiA6IEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIFN3YWdnZXIgZG9jcyB0aHJvdWdoIE1hZ2ljUm91dGVyIEFQSSBhbmQgWm9kLCBhY2Nlc3NpYmxlIGF0IGAvYXBpLWRvY3NgLgotICoqQXV0aCBNb2R1bGUqKjogSW5jbHVkZXMgR29vZ2xlIFNpZ24tSW4gc3VwcG9ydCBmb3IgZWFzeSBhdXRoZW50aWNhdGlvbi4KLSAqKlVzZXIgTWFuYWdlbWVudCoqOiBDb21wcmVoZW5zaXZlIHVzZXIgbWFuYWdlbWVudCBmdW5jdGlvbmFsaXR5LgotICoqRmlsZSBVcGxvYWQqKjogSGFuZGxlcyBmaWxlIHVwbG9hZHMgd2l0aCBNdWx0ZXIgYW5kIEFtYXpvbiBTMy4KLSAqKkRhdGEgVmFsaWRhdGlvbiAmIFNlcmlhbGl6YXRpb24qKjogWm9kIGlzIHVzZWQgZm9yIHZhbGlkYXRpb24gYW5kIHNlcmlhbGl6YXRpb24gb2YgZGF0YS4KLSAqKkNvbmZpZ3VyYXRpb24gTWFuYWdlbWVudCoqOiBNYW5hZ2VkIHVzaW5nIGRvdGVudi1jbGkgYW5kIHZhbGlkYXRlZCB3aXRoIFpvZCBmb3IgYWNjdXJhY3kgYW5kIHNhZmV0eS4KLSAqKk1pZGRsZXdhcmVzKio6CiAgLSAqKkF1dGhvcml6YXRpb24qKjogQnVpbHQtaW4gYXV0aG9yaXphdGlvbiBtaWRkbGV3YXJlLgogIC0gKipab2QgU2NoZW1hIFZhbGlkYXRpb24qKjogRW5zdXJlcyB5b3VyIEFQSSBpbnB1dHMgYXJlIGNvcnJlY3RseSB2YWxpZGF0ZWQuCiAgLSAqKkpXVCBFeHRyYWN0aW9uKio6IEVhc2lseSBleHRyYWN0IGFuZCB2ZXJpZnkgSldUIHRva2Vucy4KLSAqKlR5cGUtc2FmZSBFbWFpbCBIYW5kbGluZyoqOiBFbWFpbHMgYXJlIG1hbmFnZWQgdXNpbmcgTm9kZW1haWxlciB3aXRoIEVKUyB0ZW1wbGF0aW5nLgotICoqUXVldWVzKio6IFBvd2VyZWQgYnkgQnVsbE1RIHdpdGggUmVkaXMgZm9yIGhhbmRsaW5nIGJhY2tncm91bmQgam9icy4KLSAqKkVTTGludCBTZXR1cCoqOiBQcmUtY29uZmlndXJlZCBFU0xpbnQgc2V0dXAgZm9yIGNvbnNpc3RlbnQgY29kZSBxdWFsaXR5LgogIGBgYHNoCiAgcG5wbSBydW4gbGludAogIGBgYAotICoqRGV2ZWxvcG1lbnQgU2VydmVyKio6IFJ1biB0aGUgc2VydmVyIGluIGRldmVsb3BtZW50IG1vZGUgdXNpbmcgdHMtbm9kZS1kZXY6CiAgYGBgc2gKICBwbnBtIHJ1biBkZXYKICBgYGAKLSAqKkJ1aWxkIFByb2Nlc3MqKjogRWZmaWNpZW50bHkgYnVuZGxlIHlvdXIgcHJvamVjdCB1c2luZyB0c3VwOgogIGBgYHNoCiAgcG5wbSBydW4gYnVpbGQKICBgYGAKLSAqKlBNMiBTdXBwb3J0Kio6IE91dC1vZi10aGUtYm94IHN1cHBvcnQgZm9yIFBNMiB0byBtYW5hZ2UgeW91ciBwcm9kdWN0aW9uIHByb2Nlc3Nlcy4KCiMjIFJvYWRtYXAKCi0gKipTb2NrZXQuaW8gU3VwcG9ydDoqKiBBZGRpbmcgc3VwcG9ydCBmb3IgUmVkaXMgYWRhcHRlciBhbmQgYSBjaGF0IG1vZHVsZS4KLSAqKk5vdGlmaWNhdGlvbiBJbmZyYXN0cnVjdHVyZSoqOiBOb3RpZmljYXRpb25zIHZpYSBGQ00gYW5kIE5vdnUuCi0gKipSZWFjdC1FbWFpbCBhbmQgTWFpbGd1biBTdXBwb3J0KiogOiBJbXByb3ZlIGVtYWlsIG1hbmFnZW1lbnQgd2l0aCBSZWFjdC1FbWFpbCBhbmQgTWFpbGd1biBmb3IgbW9yZSBkeW5hbWljIGFuZCBmbGV4aWJsZSBlbWFpbCBoYW5kbGluZy4KLSAqKkFuc2libGUgUGxheWJvb2sqKiA6IENyZWF0ZSBhbiBBbnNpYmxlIHBsYXlib29rIGZvciBzZXJ2ZXIgY29uZmlndXJhdGlvbiB0byBzZXQgdXAgYSBiYXNpYyBlbnZpcm9ubWVudCBxdWlja2x5IGFuZCBjb25zaXN0ZW50bHkuCi0gKipBV1MgQ0RLIFN1cHBvcnQqKiA6IEludGVncmF0ZSBBV1MgQ0RLIGZvciBpbmZyYXN0cnVjdHVyZSBtYW5hZ2VtZW50LCBtYWtpbmcgaXQgZWFzaWVyIHRvIGRlcGxveSBhbmQgbWFuYWdlIGNsb3VkIHJlc291cmNlcy4KLSAqKk1vbm9yZXBvIFN1cHBvcnQqKiA6IEltcGxlbWVudCBtb25vcmVwbyBhcmNoaXRlY3R1cmUgdXNpbmcgVHVyYm9yZXBvIGFuZCBQbnBtIGZvciBiZXR0ZXIgcHJvamVjdCBvcmdhbml6YXRpb24gYW5kIHNjYWxhYmlsaXR5LgotICoqQVdTIExhbWJkYSBTdXBwb3J0KiogOiBBZGQgc3VwcG9ydCBmb3IgZGVwbG95aW5nIHNlcnZlcmxlc3MgZnVuY3Rpb25zIG9uIEFXUyBMYW1iZGEuCi0gKipDbG91ZGZsYXJlIFdvcmtlcnMgU3VwcG9ydCoqIDogRW5hYmxlIENsb3VkZmxhcmUgV29ya2VycyBzdXBwb3J0IGZvciBlZGdlIGNvbXB1dGluZyBhbmQgZmFzdGVyIHJlcXVlc3QgaGFuZGxpbmcuCi0gKipQb3N0Z3JlcyBTdXBwb3J0IHdpdGggUHJpc21hKiogOiBBZGQgc3VwcG9ydCBmb3IgUG9zdGdyZVNRTCB1c2luZyBQcmlzbWEgT1JNIGZvciBiZXR0ZXIgcmVsYXRpb25hbCBkYXRhYmFzZSBtYW5hZ2VtZW50LgotICoqQ29udGFpbmVyaXphdGlvbiB3aXRoIERvY2tlcioqIDogSW1wbGVtZW50IGNvbnRhaW5lcml6YXRpb24gdG8gZW5zdXJlIHRoZSBwcm9qZWN0IGNhbiBiZSBlYXNpbHkgZGVwbG95ZWQgdG8gYW55IGVudmlyb25tZW50IHVzaW5nIERvY2tlci4KLSAqKkt1YmVybmV0ZXMgU3VwcG9ydCoqIDogSW50ZWdyYXRlIEt1YmVybmV0ZXMgZm9yIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uLCBlbmFibGluZyBzY2FsYWJsZSBhbmQgYXV0b21hdGVkIGRlcGxveW1lbnQgb2YgdGhlIGFwcGxpY2F0aW9uLgotICoqQ0kvQ0Qgd2l0aCBHaXRIdWIgQWN0aW9ucyoqIDogSW1wbGVtZW50IGEgQ0kvQ0QgcGlwZWxpbmUgdXNpbmcgR2l0SHViIEFjdGlvbnMgdG8gYXV0b21hdGUgdGVzdGluZywgYnVpbGRpbmcsIGFuZCBkZXBsb3ltZW50IHByb2Nlc3Nlcy4KLSAqKlRlc3Rpbmcgd2l0aCBKZXN0Kio6IEFkZCBzdXBwb3J0IGZvciB1bml0IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0aW5nIHVzaW5nIEplc3QgdG8gZW5zdXJlIGNvZGUgcmVsaWFiaWxpdHkgYW5kIG1haW50YWluYWJpbGl0eS4KCiMjIENvbnRyaWJ1dGlvbnMKCkZlZWwgZnJlZSB0byBjb250cmlidXRlIHRvIHRoaXMgcHJvamVjdCBieSBzdWJtaXR0aW5nIGlzc3VlcyBvciBwdWxsIHJlcXVlc3RzLiBMZXQncyBidWlsZCBzb21ldGhpbmcgYW1hemluZyB0b2dldGhlciEKCiMjICoqTGljZW5zZSoqCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIC0gc2VlIHRoZSBbTElDRU5TRV0oLi9MSUNFTlNFKSBmaWxlIGZvciBkZXRhaWxzLgo= readmeEtag: '"a87af7df654037200e246197cef1d7a6c88655e3"' readmeLastModified: Wed, 14 Aug 2024 15:18:06 GMT repositoryId: 840890740 description: >- TypeScript Backend Toolkit - Express.js - Swagger (OpenAPI 3.0) Autogenered docs, Zod - BullMQ - Nodemailer - Docker - MongoDB (Mongoose) - Socket.io created: '2024-08-11T02:19:59Z' updated: '2024-09-05T12:08:41Z' language: TypeScript archived: false stars: 165 watchers: 1 forks: 31 owner: muneebhashone logo: https://avatars.githubusercontent.com/u/88892379?v=4 license: MIT repoEtag: '"1707e1574112875b3d949754392a88b3a832aa1614831e9d4e4a97375350593d"' repoLastModified: Thu, 05 Sep 2024 12:08:41 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/redocly/openapi-starter v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIERlZmluaXRpb24gU3RhcnRlcgoKIyMgSG93IHRvIHVzZSB0aGlzIHN0YXJ0ZXIKCiFbQ2xpY2sgdXNlIHRlbXBsYXRlIGJ1dHRvbl0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMzk3NTczOC85MjkyNzMwNC0xMmUzNWQ4MC1mNDQ2LTExZWEtOWJkMy1hMGY4YTY5NzkyZDAucG5nKQoKIyMgV29ya2luZyBvbiB5b3VyIE9wZW5BUEkgRGVmaW5pdGlvbgoKIyMjIEluc3RhbGwKCjEuIEluc3RhbGwgW05vZGUgSlNdKGh0dHBzOi8vbm9kZWpzLm9yZy8pLgoyLiBDbG9uZSB0aGlzIHJlcG8gYW5kIHJ1biBgbnBtIGluc3RhbGxgIGluIHRoZSByZXBvIHJvb3QuCgojIyMgVXNhZ2UKCiMjIyMgYG5wbSBzdGFydGAKU3RhcnRzIHRoZSByZWZlcmVuY2UgZG9jcyBwcmV2aWV3IHNlcnZlci4KCiMjIyMgYG5wbSBydW4gYnVpbGRgCkJ1bmRsZXMgdGhlIGRlZmluaXRpb24gdG8gdGhlIGRpc3QgZm9sZGVyLgoKIyMjIyBgbnBtIHRlc3RgClZhbGlkYXRlcyB0aGUgZGVmaW5pdGlvbi4KCiMjIENvbnRyaWJ1dGlvbiBHdWlkZQoKQmVsb3cgaXMgYSBzYW1wbGUgY29udHJpYnV0aW9uIGd1aWRlLiBUaGUgdG9vbHMKaW4gdGhlIHJlcG9zaXRvcnkgZG9uJ3QgcmVzdHJpY3QgeW91IHRvIGFueQpzcGVjaWZpYyBzdHJ1Y3R1cmUuIEFkanVzdCB0aGUgY29udHJpYnV0aW9uIGd1aWRlCnRvIG1hdGNoIHlvdXIgb3duIHN0cnVjdHVyZS4gSG93ZXZlciwgaWYgeW91CmRvbid0IGhhdmUgYSBzdHJ1Y3R1cmUgaW4gbWluZCwgdGhpcyBpcyBhCmdvb2QgcGxhY2UgdG8gc3RhcnQuCgpVcGRhdGUgdGhpcyBjb250cmlidXRpb24gZ3VpZGUgaWYgeW91CmFkanVzdCB0aGUgZmlsZS9mb2xkZXIgb3JnYW5pemF0aW9uLgoKVGhlIGAucmVkb2NseS55YW1sYCBjb250cm9scyBzZXR0aW5ncyBmb3IgdmFyaW91cwp0b29scyBpbmNsdWRpbmcgdGhlIGxpbnQgdG9vbCBhbmQgdGhlIHJlZmVyZW5jZQpkb2NzIGVuZ2luZS4gIE9wZW4gaXQgdG8gZmluZCBleGFtcGxlcyBhbmQKW3JlYWQgdGhlIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvY29uZmlndXJhdGlvbi8pCmZvciBtb3JlIGluZm9ybWF0aW9uLgoKCiMjIyBTY2hlbWFzCgojIyMjIEFkZGluZyBTY2hlbWFzCgoxLiBOYXZpZ2F0ZSB0byB0aGUgYG9wZW5hcGkvY29tcG9uZW50cy9zY2hlbWFzYCBmb2xkZXIuCjIuIEFkZCBhIGZpbGUgbmFtZWQgYXMgeW91IHdpc2ggdG8gbmFtZSB0aGUgc2NoZW1hLgozLiBEZWZpbmUgdGhlIHNjaGVtYS4KNC4gUmVmZXIgdG8gdGhlIHNjaGVtYSB1c2luZyB0aGUgYCRyZWZgIChzZWUgZXhhbXBsZSBiZWxvdykuCgojIyMjIyBFeGFtcGxlIFNjaGVtYQpUaGlzIGlzIGEgdmVyeSBzaW1wbGUgc2NoZW1hIGV4YW1wbGU6CmBgYHlhbWwKdHlwZTogc3RyaW5nCmRlc2NyaXB0aW9uOiBUaGUgcmVzb3VyY2UgSUQuIERlZmF1bHRzIHRvIFVVSUQgdjQKbWF4TGVuZ3RoOiA1MApleGFtcGxlOiA0ZjZjZjM1eC0yYzR5LTQ4M3otYTBhOS0xNTg2MjFmNzdhMjEKYGBgClRoaXMgaXMgYSBtb3JlIGNvbXBsZXggc2NoZW1hIGV4YW1wbGU6CmBgYHlhbWwKdHlwZTogb2JqZWN0CnByb3BlcnRpZXM6CiAgaWQ6CiAgICBkZXNjcmlwdGlvbjogVGhlIGN1c3RvbWVyIGlkZW50aWZpZXIgc3RyaW5nCiAgICByZWFkT25seTogdHJ1ZQogICAgYWxsT2Y6CiAgICAgIC0gJHJlZjogLi9SZXNvdXJjZUlkLnlhbWwKICB3ZWJzaXRlSWQ6CiAgICBkZXNjcmlwdGlvbjogVGhlIHdlYnNpdGUncyBJRAogICAgYWxsT2Y6CiAgICAgIC0gJHJlZjogLi9SZXNvdXJjZUlkLnlhbWwKICBwYXltZW50VG9rZW46CiAgICB0eXBlOiBzdHJpbmcKICAgIHdyaXRlT25seTogdHJ1ZQogICAgZGVzY3JpcHRpb246IHwKICAgICAgQSB3cml0ZS1vbmx5IHBheW1lbnQgdG9rZW47IGlmIHN1cHBsaWVkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEKICAgICAgcGF5bWVudCBpbnN0cnVtZW50IGFuZCBiZSBzZXQgYXMgdGhlIGBkZWZhdWx0UGF5bWVudEluc3RydW1lbnRgLiBUaGUKICAgICAgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSB3aWxsIG92ZXJyaWRlIHRoZSBgZGVmYXVsdFBheW1lbnRJbnN0cnVtZW50YAogICAgICBpbiB0aGUgY2FzZSB0aGF0IGJvdGggYXJlIHN1cHBsaWVkLiBUaGUgdG9rZW4gbWF5IG9ubHkgYmUgdXNlZCBvbmNlCiAgICAgIGJlZm9yZSBpdCBpcyBleHBpcmVkLgogIGRlZmF1bHRQYXltZW50SW5zdHJ1bWVudDoKICAgICRyZWY6IC4vUGF5bWVudEluc3RydW1lbnQueWFtbAogIGNyZWF0ZWRUaW1lOgogICAgZGVzY3JpcHRpb246IFRoZSBjdXN0b21lciBjcmVhdGVkIHRpbWUKICAgIGFsbE9mOgogICAgICAtICRyZWY6IC4vU2VydmVyVGltZXN0YW1wLnlhbWwKICB1cGRhdGVkVGltZToKICAgIGRlc2NyaXB0aW9uOiBUaGUgY3VzdG9tZXIgdXBkYXRlZCB0aW1lCiAgICBhbGxPZjoKICAgICAgLSAkcmVmOiAuL1NlcnZlclRpbWVzdGFtcC55YW1sCiAgdGFnczoKICAgIGRlc2NyaXB0aW9uOiBBIGxpc3Qgb2YgY3VzdG9tZXIncyB0YWdzCiAgICByZWFkT25seTogdHJ1ZQogICAgdHlwZTogYXJyYXkKICAgIGl0ZW1zOgogICAgICAkcmVmOiAuL1RhZ3MvVGFnLnlhbWwKICByZXZpc2lvbjoKICAgIGRlc2NyaXB0aW9uOiA+CiAgICAgIFRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGN1c3RvbWVyIGRhdGEgaGFzIGJlZW4gbW9kaWZpZWQuCgogICAgICBUaGUgcmV2aXNpb24gaXMgdXNlZnVsIHdoZW4gYW5hbHl6aW5nIHdlYmhvb2sgZGF0YSB0byBkZXRlcm1pbmUgaWYgdGhlCiAgICAgIGNoYW5nZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIGN1cnJlbnQgcmVwcmVzZW50YXRpb24uCiAgICB0eXBlOiBpbnRlZ2VyCiAgICByZWFkT25seTogdHJ1ZQogIF9saW5rczoKICAgIHR5cGU6IGFycmF5CiAgICBkZXNjcmlwdGlvbjogVGhlIGxpbmtzIHJlbGF0ZWQgdG8gcmVzb3VyY2UKICAgIHJlYWRPbmx5OiB0cnVlCiAgICBtaW5JdGVtczogMwogICAgaXRlbXM6CiAgICAgIGFueU9mOgogICAgICAgIC0gJHJlZjogLi9MaW5rcy9TZWxmTGluay55YW1sCiAgICAgICAgLSAkcmVmOiAuL0xpbmtzL05vdGVzTGluay55YW1sCiAgICAgICAgLSAkcmVmOiAuL0xpbmtzL0RlZmF1bHRQYXltZW50SW5zdHJ1bWVudExpbmsueWFtbAogICAgICAgIC0gJHJlZjogLi9MaW5rcy9MZWFkU291cmNlTGluay55YW1sCiAgICAgICAgLSAkcmVmOiAuL0xpbmtzL1dlYnNpdGVMaW5rLnlhbWwKICBfZW1iZWRkZWQ6CiAgICB0eXBlOiBhcnJheQogICAgZGVzY3JpcHRpb246ID4tCiAgICAgIEFueSBlbWJlZGRlZCBvYmplY3RzIGF2YWlsYWJsZSB0aGF0IGFyZSByZXF1ZXN0ZWQgYnkgdGhlIGBleHBhbmRgCiAgICAgIHF1ZXJ5c3RyaW5nIHBhcmFtZXRlci4KICAgIHJlYWRPbmx5OiB0cnVlCiAgICBtaW5JdGVtczogMQogICAgaXRlbXM6CiAgICAgIGFueU9mOgogICAgICAgIC0gJHJlZjogLi9FbWJlZHMvTGVhZFNvdXJjZUVtYmVkLnlhbWwKCmBgYAoKSWYgeW91IGhhdmUgYW4gSlNPTiBleGFtcGxlLCB5b3UgY2FuIGNvbnZlcnQgaXQgdG8gSlNPTiBzY2hlbWEgdXNpbmcgUmVkb2NseSdzIFtKU09OIHRvIEpTT04gc2NoZW1hIHRvb2xdKGh0dHBzOi8vcmVkb2NseS5jb20vdG9vbHMvanNvbi10by1qc29uLXNjaGVtYS8pLgoKIyMjIyMgVXNpbmcgdGhlIGAkcmVmYAoKTm90aWNlIGluIHRoZSBjb21wbGV4IGV4YW1wbGUgYWJvdmUgdGhlIHNjaGVtYSBkZWZpbml0aW9uIGl0c2VsZiBoYXMgYCRyZWZgIGxpbmtzIHRvIG90aGVyIHNjaGVtYXMgZGVmaW5lZC4KCkhlcmUgaXMgYSBzbWFsbCBleGNlcnB0IHdpdGggYW4gZXhhbXBsZToKCmBgYHlhbWwKZGVmYXVsdFBheW1lbnRJbnN0cnVtZW50OgogICRyZWY6IC4vUGF5bWVudEluc3RydW1lbnQueWFtbApgYGAKClRoZSB2YWx1ZSBvZiB0aGUgYCRyZWZgIGlzIHRoZSBwYXRoIHRvIHRoZSBvdGhlciBzY2hlbWEgZGVmaW5pdGlvbi4KCllvdSBtYXkgdXNlIGAkcmVmYHMgdG8gY29tcG9zZSBzY2hlbWEgZnJvbSBvdGhlciBleGlzdGluZyBzY2hlbWEgdG8gYXZvaWQgZHVwbGljYXRpb24uCgpZb3Ugd2lsbCB1c2UgYCRyZWZgcyB0byByZWZlcmVuY2Ugc2NoZW1hIGZyb20geW91ciBwYXRoIGRlZmluaXRpb25zLgoKIyMjIyBFZGl0aW5nIFNjaGVtYXMKCjEuIE5hdmlnYXRlIHRvIHRoZSBgb3BlbmFwaS9jb21wb25lbnRzL3NjaGVtYXNgIGZvbGRlci4KMi4gT3BlbiB0aGUgZmlsZSB5b3Ugd2lzaCB0byBlZGl0LgozLiBFZGl0LgoKIyMjIFBhdGhzCgojIyMjIEFkZGluZyBhIFBhdGgKCjEuIE5hdmlnYXRlIHRvIHRoZSBgb3BlbmFwaS9wYXRoc2AgZm9sZGVyLgoyLiBBZGQgYSBuZXcgWUFNTCBmaWxlIG5hbWVkIGxpa2UgeW91ciBVUkwgZW5kcG9pbnQgZXhjZXB0IHJlcGxhY2luZyBgL2Agd2l0aCBgX2AgKG9yIHdoaWNoZXZlciBjaGFyYWN0ZXIgeW91IHByZWZlcikgYW5kIHB1dHRpbmcgcGF0aCBwYXJhbWV0ZXJzIGludG8gY3VybHkgYnJhY2VzIGxpa2UgYHtleGFtcGxlfWAuCjMuIEFkZCB0aGUgcGF0aCBhbmQgYSByZWYgdG8gaXQgaW5zaWRlIG9mIHlvdXIgYG9wZW5hcGkueWFtbGAgZmlsZSBpbnNpZGUgb2YgdGhlIGBvcGVuYXBpYCBmb2xkZXIuCgpFeGFtcGxlIGFkZGl0aW9uIHRvIHRoZSBgb3BlbmFwaS55YW1sYCBmaWxlOgpgYGB5YW1sCicvY3VzdG9tZXJzL3tpZH0nOgogICRyZWY6ICcuL3BhdGhzL2N1c3RvbWVyc197aWR9LnlhbWwnCmBgYAoKSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgWUFNTCBmaWxlIG5hbWVkIGBjdXN0b21lcnNfe2lkfS55YW1sYCBpbiB0aGUgYHBhdGhzYCBmb2xkZXI6CgpgYGB5YW1sCmdldDoKICB0YWdzOgogICAgLSBDdXN0b21lcnMKICBzdW1tYXJ5OiBSZXRyaWV2ZSBhIGxpc3Qgb2YgY3VzdG9tZXJzCiAgb3BlcmF0aW9uSWQ6IEdldEN1c3RvbWVyQ29sbGVjdGlvbgogIGRlc2NyaXB0aW9uOiB8CiAgICBZb3UgY2FuIGhhdmUgYSBtYXJrZG93biBkZXNjcmlwdGlvbiBoZXJlLgogIHBhcmFtZXRlcnM6CiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uTGltaXQueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbk9mZnNldC55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uRmlsdGVyLnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25RdWVyeS55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uRXhwYW5kLnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25GaWVsZHMueWFtbAogIHJlc3BvbnNlczoKICAgICcyMDAnOgogICAgICBkZXNjcmlwdGlvbjogQSBsaXN0IG9mIEN1c3RvbWVycyB3YXMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseQogICAgICBoZWFkZXJzOgogICAgICAgIFJhdGUtTGltaXQtTGltaXQ6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUmF0ZS1MaW1pdC1MaW1pdC55YW1sCiAgICAgICAgUmF0ZS1MaW1pdC1SZW1haW5pbmc6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUmF0ZS1MaW1pdC1SZW1haW5pbmcueWFtbAogICAgICAgIFJhdGUtTGltaXQtUmVzZXQ6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUmF0ZS1MaW1pdC1SZXNldC55YW1sCiAgICAgICAgUGFnaW5hdGlvbi1Ub3RhbDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9QYWdpbmF0aW9uLVRvdGFsLnlhbWwKICAgICAgICBQYWdpbmF0aW9uLUxpbWl0OgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1BhZ2luYXRpb24tTGltaXQueWFtbAogICAgICAgIFBhZ2luYXRpb24tT2Zmc2V0OgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1BhZ2luYXRpb24tT2Zmc2V0LnlhbWwKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3NjaGVtYXMvQ3VzdG9tZXIueWFtbAogICAgICAgIHRleHQvY3N2OgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3NjaGVtYXMvQ3VzdG9tZXIueWFtbAogICAgJzQwMSc6CiAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVzcG9uc2VzL0FjY2Vzc0ZvcmJpZGRlbi55YW1sCiAgeC1jb2RlLXNhbXBsZXM6CiAgICAtIGxhbmc6IFBIUAogICAgICBzb3VyY2U6CiAgICAgICAgJHJlZjogLi4vY29kZV9zYW1wbGVzL1BIUC9jdXN0b21lcnMvZ2V0LnBocApwb3N0OgogIHRhZ3M6CiAgICAtIEN1c3RvbWVycwogIHN1bW1hcnk6IENyZWF0ZSBhIGN1c3RvbWVyICh3aXRob3V0IGFuIElEKQogIG9wZXJhdGlvbklkOiBQb3N0Q3VzdG9tZXIKICBkZXNjcmlwdGlvbjogQW5vdGhlciBtYXJrZG93biBkZXNjcmlwdGlvbiBoZXJlLgogIHJlcXVlc3RCb2R5OgogICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXF1ZXN0Qm9kaWVzL0N1c3RvbWVyLnlhbWwKICByZXNwb25zZXM6CiAgICAnMjAxJzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvQ3VzdG9tZXIueWFtbAogICAgJzQwMSc6CiAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVzcG9uc2VzL0FjY2Vzc0ZvcmJpZGRlbi55YW1sCiAgICAnNDA5JzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvQ29uZmxpY3QueWFtbAogICAgJzQyMic6CiAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVzcG9uc2VzL0ludmFsaWREYXRhRXJyb3IueWFtbAogIHgtY29kZS1zYW1wbGVzOgogICAgLSBsYW5nOiBQSFAKICAgICAgc291cmNlOgogICAgICAgICRyZWY6IC4uL2NvZGVfc2FtcGxlcy9QSFAvY3VzdG9tZXJzL3Bvc3QucGhwCmBgYAoKWW91J2xsIHNlZSBleHRlbnNpdmUgdXNhZ2Ugb2YgYCRyZWZgcyBpbiB0aGlzIGV4YW1wbGUgdG8gZGlmZmVyZW50IHR5cGVzIG9mIGNvbXBvbmVudHMgaW5jbHVkaW5nIHNjaGVtYXMuCgpZb3UnbGwgYWxzbyBub3RpY2UgYCRyZWZgcyB0byBjb2RlIHNhbXBsZXMuCgojIyMgQ29kZSBzYW1wbGVzCgpBdXRvbWF0ZWQgY29kZSBzYW1wbGUgZ2VuZXJhdGlvbnMgaXMgZW5hYmxlZCBpbiB0aGUgUmVkb2NseSBjb25maWd1cmF0aW9uIGZpbGUuIEFkZCBtYW51YWwgY29kZSBzYW1wbGVzIGJ5IHRoZSBmb2xsb3dpbmcgcHJvY2VzczoKCjEuIE5hdmlnYXRlIHRvIHRoZSBgb3BlbmFwaS9jb2RlX3NhbXBsZXNgIGZvbGRlci4KMi4gTmF2aWdhdGUgdG8gdGhlIGA8bGFuZ3VhZ2U+YCAoZS5nLiBQSFApIHN1Yi1mb2xkZXIuCjMuIE5hdmlnYXRlIHRvIHRoZSBgcGF0aGAgZm9sZGVyLCBhbmQgYWRkIHJlZiB0byB0aGUgY29kZSBzYW1wbGUuCgpZb3UgY2FuIGFkZCBsYW5ndWFnZXMgYnkgYWRkaW5nIG5ldyBmb2xkZXJzIGF0IHRoZSBhcHByb3ByaWF0ZSBwYXRoIGxldmVsLgoKTW9yZSBkZXRhaWxzIGluc2lkZSB0aGUgYGNvZGVfc2FtcGxlc2AgZm9sZGVyIFJFQURNRS4K readmeEtag: '"a8de8cdd75c9b76475ef4aedb54a444ab2d0a64a"' readmeLastModified: Thu, 01 Aug 2024 06:35:10 GMT repositoryId: 294444776 description: OpenAPI starter repository created: '2020-09-10T15:11:31Z' updated: '2024-08-20T06:06:11Z' language: C# archived: false stars: 152 watchers: 19 forks: 114 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"08a0817293d7e6c60d7b5a913b5b9f64c25617133934a375c0f04a46c5d76249"' repoLastModified: Tue, 20 Aug 2024 06:06:11 GMT foundInMaster: true v3_1: true category: Parsers id: 9f59fa22b947a112b53c92bbf81c95c4 - source: openapi3 tags repository: https://github.com/tyrchen/quenya v3: true repositoryMetadata: base64Readme: >- IyBRdWVueWEKCl9fRGlzY2xhaW1lcjogUXVlbnlhIGlzIHVuZGVyIGFjdGl2ZSBkZXZlbG9wbWVudCBhbmQgaXMgYXQgaXRzIGVhcmx5IHN0YWdlLiBQbGVhc2UgRE8gTk9UIHVzZSBpdCBpbiBwcm9kIGVudmlyb25tZW50LiBVc2Ugd2l0aCBjYXV0aW9ucy5fXwoKUXVlbnlhIGlzIGEgZnJhbWV3b3JrIHRvIGJ1aWxkIGhpZ2gtcXVhbGl0eSBSRVNUIEFQSSBhcHBsaWNhdGlvbnMgYmFzZWQgb24gZXh0ZW5kZWQgW09wZW5BUEkgc3BlY10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4xLjAubWQpLiBGb3IgdGhlIFF1ZW55YSBleHRlbnNpb24sIHNlZSBbaGVyZV0oZG9jcy9xdWVueWFfZXh0ZW5zaW9uLm1kKS4gV2l0aCB0aGUgT0FQSSBzcGVjLCBRdWVueWEgY2FuIGdlbmVyYXRlIGhpZ2gtcXVhbGl0eSBjb2RlIGZvciBtYW55IHBhcnRzIG9mIHRoZSBBUEkgcGlwZWxpbmU6CgotIFByZXByb2Nlc3NvcnM6CiAgLSBbeF0gcmVxdWVzdCB2YWxpZGF0b3I6IHZhbGlkYXRlIHRoZSByZXF1ZXN0IHBhcmFtcwogIC0gWyBdIGF1dGggaGFuZGxlcjogcHJvY2VzcyBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIEFQSSBlbmRwb2ludHMKICAtIFsgXSBhY2Nlc3MgY29udHJvbGxlcjogcHJvY2VzcyBhdXRob3JpemF0aW9uIGZvciB0aGUgQVBJIGVuZHBvaW50cwotIEFQSSBoYW5kbGVyczoKICAtIFt4XSBmYWtlIEFQSSBoYW5kbGVyIHRvIGdlbmVyYXRlIGEgZmFrZSByZXNwb25zZSBmb3IgbW9ja2luZyBwdXJwb3NlCiAgLSBbIF0gZ1JQQyBoYW5kbGVyIHRvIGFjdCBhcyBhIHByb3h5IGJldHdlZW4geW91ciBjbGllbnQgYW5kIHlvdXIgZ1JQQyBzZXJ2ZXIgKHJlcXVpcmUgZXh0ZW5kZWQgT3BlbkFQSSBncmFtbWFyKQotIFBvc3Rwcm9jZXNzb3JzOgogIC0gW3hdIHJlc3BvbnNlIHZhbGlkYXRvciB0byB2YWxpZGF0ZSB0aGUgcmVzcG9uc2UgYm9keSBhbmQgaGVhZGVycyAoZm9yIGRldi90ZXN0aW5nIHB1cnBvc2UpCgpRdWVueWEgd2lsbCBhbHNvIGdlbmVyYXRlIHByb3BlcnR5IHRlc3RpbmcsIGl0IHdpbGwgdXNlIGBQbHVnLlRlc3RgIGFuZCBgU3RyZWFtRGF0YWAgdG8gYnVpbGQgdGVzdHMuIFJlcXVlc3RzICh1cmwsIHF1ZXJ5LCByZXF1ZXN0IGhlYWRlcnMgYW5kIHJlcXVlc3QgYm9keSkgd2lsbCBiZSBnZW5lcmF0ZWQgYW5kIHRoZW4gc2VudCB0byBnZW5lcmF0ZWQgYFJvdXRlcmAsIHRoZW4gaXQgd2lsbCB1c2UgdGhlIHJlc3BvbnNlIHNjaGVtYSB0byB2YWxpZGF0ZSB0aGUgcmVzdWx0LiBDdXJyZW50bHkgdGhlIHRlc3Rpbmcgb25seSBjb3ZlcnMgaGFwcHkgcGF0aC4KClF1ZW55YSB3aWxsIGFsc28gcHJvdmlkZSBhIHNldCBvZiBtb2R1bGVzLCBwbHVncywgdGVzdCBoZWxwZXJzIHRvIGhlbHAgeW91IGJ1aWxkIFJFU1QgQVBJcyBlYXNpbHkuCgojIyBIb3cgdG8gdXNlIFF1ZW55YQoKIyMjIEluc3RhbGwgQ0xJCgpGaXJzdCBvZiBhbGwsIGluc3RhbGwgUXVlbnlhIENMSToKCmBgYGJhc2gKJCBtaXggYXJjaGl2ZS5pbnN0YWxsIGhleCBxdWVueWFfaW5zdGFsbGVyClJlc29sdmluZyBIZXggZGVwZW5kZW5jaWVzLi4uCkRlcGVuZGVuY3kgcmVzb2x1dGlvbiBjb21wbGV0ZWQ6Ck5ldzoKICBxdWVueWFfaW5zdGFsbGVyIDAuMy4wCiogR2V0dGluZyBxdWVueWFfaW5zdGFsbGVyIChIZXggcGFja2FnZSkKCjIwOjIyOjE1LjYwNSBbaW5mb10gIGVybF90YXI6IHJlbW92ZWQgbGVhZGluZyAnLycgZnJvbSBtZW1iZXIgbmFtZXMKCkFsbCBkZXBlbmRlbmNpZXMgYXJlIHVwIHRvIGRhdGUKQ29tcGlsaW5nIDUgZmlsZXMgKC5leCkKR2VuZXJhdGVkIHF1ZW55YV9pbnN0YWxsZXIgYXBwCkdlbmVyYXRlZCBhcmNoaXZlICJxdWVueWFfaW5zdGFsbGVyLTAuMy4wLmV6IiB3aXRoIE1JWF9FTlY9cHJvZApBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gaW5zdGFsbCAicXVlbnlhX2luc3RhbGxlci0wLjMuMC5leiI/IFtZbl0KKiBjcmVhdGluZyAvVXNlcnMvdGNoZW4vLm1peC9hcmNoaXZlcy9xdWVueWFfaW5zdGFsbGVyLTAuMy4wCmBgYAoKIyMjIEdlbmVyYXRlIEFQUCBmcm9tIGFuIGV4aXN0aW5nIE9BUEkgc3BlYwoKT25jZSB5b3UgZmluaXNoZWQgaW5zdGFsbGluZyBxdWVueWEgQ0xJLCB5b3UgY2FuIGJ1aWxkIGEgQVBJIGFwcCB3aXRoIHF1ZW55YToKCmBgYGJhc2gKJCBjZCAvdG1wCiQgY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdHlyY2hlbi9xdWVueWEvbWFzdGVyL3BhcnNlci90ZXN0L2ZpeHR1cmUvcGV0c3RvcmUueW1sID4gcGV0c3RvcmUueW1sCiQgbWl4IHF1ZW55YS5uZXcgcGV0c3RvcmUueW1sIHBldHN0b3JlCiogY3JlYXRpbmcgcGV0c3RvcmUvY29uZmlnL2NvbmZpZy5leHMKKiBjcmVhdGluZyBwZXRzdG9yZS9jb25maWcvZGV2LmV4cwoqIGNyZWF0aW5nIHBldHN0b3JlL2NvbmZpZy9wcm9kLmV4cwoqIGNyZWF0aW5nIHBldHN0b3JlL2NvbmZpZy9zdGFnaW5nLmV4cwoqIGNyZWF0aW5nIHBldHN0b3JlL2NvbmZpZy90ZXN0LmV4cwoqIGNyZWF0aW5nIHBldHN0b3JlL2xpYi9wZXRzdG9yZS9hcHBsaWNhdGlvbi5leAoqIGNyZWF0aW5nIHBldHN0b3JlL2xpYi9wZXRzdG9yZS5leAoqIGNyZWF0aW5nIHBldHN0b3JlL21peC5leHMKKiBjcmVhdGluZyBwZXRzdG9yZS9SRUFETUUubWQKKiBjcmVhdGluZyBwZXRzdG9yZS8uZm9ybWF0dGVyLmV4cwoqIGNyZWF0aW5nIHBldHN0b3JlLy5naXRpZ25vcmUKKiBjcmVhdGluZyBwZXRzdG9yZS90ZXN0L3Rlc3RfaGVscGVyLmV4cwoKRmV0Y2ggYW5kIGluc3RhbGwgZGVwZW5kZW5jaWVzPyBbWW5dCiogcnVubmluZyBtaXggZGVwcy5nZXQKKiBydW5uaW5nIG1peCBkZXBzLmNvbXBpbGUKCldlIGFyZSBhbG1vc3QgdGhlcmUhIFRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIG1pc3Npbmc6CgogICAgJCBjZCBwZXRzdG9yZQoKWW91IGNhbiBydW4geW91ciBhcHAgaW5zaWRlIElFeCAoSW50ZXJhY3RpdmUgRWxpeGlyKSBhczoKCiAgICAkIGlleCAtUyBtaXgKCgpgYGAKClRoaXMgd2lsbCBjcmVhdGUgYSBuZXcgZWxpeGlyIGFwcCwgY29weSB5b3VyIHNwZWMgZmlsZSAob3Igc3BlYyBmb2xkZXIpIHRvIGBwcml2L3NwZWMvbWFpbi55bWxgLCBhbmQgZ2VuZXJhdGUgQVBJIGNvZGUgYmFzZWQgb24gdGhlIHNwZWMuCgojIyMgUnVubmluZyB0aGUgYXBwCgpOb3cgeW91IGNhbiBydW4gdGhlIGFwcDoKCmBgYGJhc2gKJCBjZCBwZXRzdG9yZS8KJCBtaXggY29tcGlsZS5xdWVueWEgIyB0aGlzIGNvbW1hbmQgd2lsbCBnZW5lcmF0ZS9yZWdlbmVyYXRlIGNvZGUgb24gL2dlbiBhbmQgL3Rlc3QvZ2VuIGZvbGRlcnMKJCBpZXggLVMgbWl4CkVybGFuZy9PVFAgMjMgW2VydHMtMTEuMS4zXSBbc291cmNlXSBbNjQtYml0XSBbc21wOjE2OjE2XSBbZHM6MTY6MTY6MTBdIFthc3luYy10aHJlYWRzOjFdIFtoaXBlXSBbZHRyYWNlXQoKQ29tcGlsaW5nIDQ0IGZpbGVzICguZXgpCkdlbmVyYXRlZCBwZXRzdG9yZSBhcHAKSW50ZXJhY3RpdmUgRWxpeGlyICgxLjExLjIpIC0gcHJlc3MgQ3RybCtDIHRvIGV4aXQgKHR5cGUgaCgpIEVOVEVSIGZvciBoZWxwKQpgYGAKCkp1c3QgcnVuIGEgZmV3IGNvbW1hbmRzIHdpdGhvdXQgd3JpdGluZyBldmVuIGEgc2luZ2xlIGxpbmUgb2YgY29kZSwgeW91IGhhdmUgYW4gQVBJIGFwcCByZWFkeSB0byB1c2UuIFRyeSBvcGVuIGBodHRwOi8vbG9jYWxob3N0OjQwMDAvc3dhZ2dlcmAuIFlvdSB3aWxsIHNlZSBhbiBBUEkgcGxheWdyb3VuZCB3aXRoIHN0YW5kYXJkIFN3YWdnZXIgVUk6CgohW10oZG9jcy9pbWFnZXMvc3dhZ2dlci5qcGcpCgpJdCdzIGdyZWF0IGJ1dCBub3RoaW5nIHNwZWNpYWwuIE5vdywgdHJ5IHRvIGludm9rZSBvbmUgb2YgdGhlIEFQSXMsIHNheSBgR0VUIC9wZXQvZmluZEJ5U3RhdHVzYDoKCiFbXShkb2NzL2ltYWdlcy9zd2FnZ2VyX2NhbGwuanBnKQoKQW1hemluZyEgRG9uJ3QgYmVsaWV2ZSB3aGF0IHlvdSBzYXc/IFRyeSB3aXRoIHRoaXMgY29tbWFuZDoKCmBgYGJhc2gKY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0OjQwMDAvcGV0IiAtSCAgImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIgLUggICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1kICJ7XCJuYW1lXCI6XCJkb2dnaWVcIixcInBob3RvVXJsc1wiOltcImJhZCB1cmxcIl19IiAtaQpIVFRQLzEuMSA0MDAgQmFkIFJlcXVlc3QKY2FjaGUtY29udHJvbDogbWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGUKY29udGVudC1sZW5ndGg6IDMzCmRhdGU6IE1vbiwgMzAgTm92IDIwMjAgMDQ6NDU6MzcgR01UCnNlcnZlcjogQ293Ym95CgpFeHBlY3RlZCB0byBiZSBhIHZhbGlkIGltYWdlX3VyaS4KYGBgCgpBY2NvcmRpbmcgdG8gW3BldHN0b3JlLnltbF0odGVzdC9maXh0dXJlL3BldHN0b3JlLnltbCksIHJlcXVlc3QgYm9keSBtdXN0IGJlIGEgUGV0IHR5cGUsIGFuZCBgbmFtZWAgLyBgcGhvdG9VcmxzYCBhcmUgcmVxdWlyZWQuIGBwaG90b1VybHNgIHNoYWxsIGJlIGFuIGFycmF5IG9mIHN0cmluZywgd2l0aCBmb3JtYXQgYXMgYGltYWdlX3VybGAgKGFuIGV4dGVuZGVkIGZvcm1hdCBieSBxdWVueWEpLiBRdWVueWEgd2lsbCB2YWxpZGF0ZSByZXF1ZXN0cyBieSBpdHMgc2NoZW1hIHNvIGhlcmUgd2UgbmVlZCBhIHZhbGlkIHVybC4gTGV0J3MgY29ycmVjdCB0aGlzOgoKYGBgYmFzaAokIGN1cmwgLVggUE9TVCAiaHR0cDovL2xvY2FsaG9zdDo0MDAwL3BldCIgLUggICJhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iIC1IICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtZCAie1wibmFtZVwiOlwiZG9nZ2llXCIsXCJwaG90b1VybHNcIjpbXCJodHRwczovL3NvdXJjZS51bnNwbGFzaC5jb20vcmFuZG9tXCJdfSIgLWkKSFRUUC8xLjEgMjAwIE9LCmNhY2hlLWNvbnRyb2w6IG1heC1hZ2U9MCwgcHJpdmF0ZSwgbXVzdC1yZXZhbGlkYXRlCmNvbnRlbnQtbGVuZ3RoOiAzNzYKY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04CmRhdGU6IE1vbiwgMzAgTm92IDIwMjAgMDQ6NTE6MDMgR01UCnNlcnZlcjogQ293Ym95Cgp7ImNhdGVnb3J5Ijp7ImlkIjo2ODMsIm5hbWUiOiJEdGxpcjZ2Z2t6NlVlQXdLNXE0Ll85LS1BLi0tLl9WX21qcC5LLS0zVC4wLWVfLjctX3FmUm1mdSJ9LCJpZCI6OTI4LCJuYW1lIjoiNzU4WWhsX2p4X1J0X2ZpNWZ6X0p0RV9rX19KWTJKX19UdDlZMSIsInBob3RvVXJscyI6WyJodHRwczovL3NvdXJjZS51bnNwbGFzaC5jb20vcmFuZG9tLzQwMHg0MDAiLCJodHRwczovL3NvdXJjZS51bnNwbGFzaC5jb20vcmFuZG9tLzQwMHg0MDAiXSwic3RhdHVzIjoic29sZCIsInRhZ3MiOlt7ImlkIjo0ODAsIm5hbWUiOiJpdXN0byJ9LHsiaWQiOjY0LCJuYW1lIjoiZXJyb3IifSx7ImlkIjo2NTgsIm5hbWUiOiJtb2RpIn0seyJpZCI6MzEzLCJuYW1lIjoibmloaWwifV19CmBgYAoKIyMjIFJ1bm5pbmcgdGhlIHRlc3RzCgpRdWVueWEgZ2VuZXJhdGVzIHByb3BlcnR5IHRlc3RzIGZvciBhbGwgeW91ciBBUEkgZW5kcG9pbnRzIGJhc2VkIG9uIE9BUEkgc3BlYywgc28gYmVmb3JlIGNvZGluZyB5b3VyIG93biBBUEkgaGFuZGxlciBpbnRvIHRoZSByZXBvLCB5b3UnZCBsaWtlIHRvIGJlIG1vcmUgdGVzdC1kcml2ZW4sIHRyeSBgbWl4IHRlc3RgIG5vdzoKCmBgYGJhc2gKJCBtaXggdGVzdApDb21waWxpbmcgNDIgZmlsZXMgKC5leCkKR2VuZXJhdGVkIHBldHN0b3JlIGFwcAouLi4uLi4uLi4uLi4uLi4uLi4uLgoKRmluaXNoZWQgaW4gMi43IHNlY29uZHMKMjAgcHJvcGVydGllcywgMiBmYWlsdXJlcwpgYGAKCk5vdGUgdGhlc2UgdGVzdHMgY292ZXJzIGFsbCBzdWNjZXNzIGNhc2VzLiBJbiBmdXR1cmUsIHdlIHdpbGwgdHJ5IHRvIGNvdmVyIGFsbCBmYWlsZWQgY2FzZXMgaW4gUXVlbnlhLgoKIyMjIEhvdyBtdWNoIGNvZGUgUXVlbnlhIGdlbmVyYXRlZCBmb3IgeW91PwoKSWYgeW91IGhhdmUgYHRva2VpYCBpbnN0YWxsZWQsIHlvdSBjYW4gaGF2ZSBhIGJhc2ljIGlkZWEgb24gaG93IG11Y2ggY29kZSBRdWVueWEgZ2VuZXJhdGVkIGZvciB5b3U6CgpgYGBiYXNoCiQgdG9rZWkgZ2VuIHRlc3QKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGFuZ3VhZ2UgICAgICAgICAgICBGaWxlcyAgICAgICAgTGluZXMgICAgICAgICBDb2RlICAgICBDb21tZW50cyAgICAgICBCbGFua3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogRWxpeGlyICAgICAgICAgICAgICAgICA4MyAgICAgICAgIDgxNTIgICAgICAgICA3MDYwICAgICAgICAgICAgMCAgICAgICAgIDEwOTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogVG90YWwgICAgICAgICAgICAgICAgICA4MyAgICAgICAgIDgxNTIgICAgICAgICA3MDYwICAgICAgICAgICAgMCAgICAgICAgIDEwOTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpgYGAKClRoYXQncyA4ayBMb0MgZm9yIHRoZSBwZXRzdG9yZSBzcGVjLiBUaGUgbW9yZSBBUElzIHlvdSBkZWZpbmVkLCB0aGUgbW9yZSBRdWVueWEgd2lsbCBkbyBmb3IgeW91LiBPbmNlIHdlIGhhdmUgbW9zdCBvZiB0aGUgcGFydHMgb2YgUXVlbnlhIGJ1aWx0LCB0aGlzIG51bWJlciB3aWxsIGJlIG11Y2ggYmlnZ2VyLgoKIyMjIFdoYXQncyB1bmRlciB0aGUgaG9vZD8KCk5vdyB5b3UgaGF2ZSBhIGJhc2ljIGZlZWxpbmcgb24gd2hhdCdzIGdvaW5nIG9uLiBCeSBkZWZhdWx0LCBRdWVueWEgd2lsbCBnZW5lcmF0ZSBhbiBBUEkgcm91dGVyIGJhc2VkIG9uIEFQSSBzcGVjLCB3aXRoIGEgY29udmVuaWVudCBzd2FnZ2VyIFVJLiBGb3IgZWFjaCByb3V0ZSBkZWZpbmVkIGluIHRoZSBzcGVjLCBRdWVueWEgd2lsbCBnZW5lcmF0ZSBhIFBsdWcgZm9yIGl0LiBBbmQgYSBQbHVnIGlzIGEgcGlwZWxpbmUgd2hpY2ggd2lsbCBleGVjdXRlIGluIHRoaXMgb3JkZXI6CgotIHByZXByb2Nlc3NvcnM6IGFueSBQbHVnIHRvIGJlIGV4ZWN1dGVkIGJlZm9yZSB0aGUgYWN0dWFsIHJvdXRlIGhhbmRsZXIuIEhlcmUsIFJlcXVlc3RWYWxpZGF0b3IgUGx1ZyB3aWxsIGhlbHAgdG8gdmFsaWRhdGUgcmVxdWVzdCBwYXJhbXMgYWdhaW5zdCB0aGUgc2NoZW1hLgotIGhhbmRsZXJzOiBoYW5kbGVycyBmb3IgdGhlIHJvdXRlLiBUaGlzIGlzIHdoYXQgeW91IHNoYWxsIHB1dCB5b3VyIGFjdHVhbCBBUEkgbG9naWMsIGJ1dCBmb3IgbW9ja2luZyBwdXJwb3NlLCBRdWVueWEgZ2VuZXJhdGVzIGEgZmFrZSBoYW5kbGVyIHdoaWNoIG1lZXRzIHRoZSByZXNwb25zZSBzY2hlbWEuIEluIGZ1dHVyZSwgUXVlbnlhIHdpbGwgc3VwcG9ydCBnUlBDIGhhbmRsZXIgd2hpY2ggd2lsbCBiZSB2ZXJ5IHVzZWZ1bCBpZiB3aGF0IHlvdSBuZWVkIGlzIGEgZ3JwYyBwcm94eSAodGhpbmsgW2dycGMtZ2F0ZXdheV0oaHR0cHM6Ly9naXRodWIuY29tL2dycGMtZWNvc3lzdGVtL2dycGMtZ2F0ZXdheSkpLgotIHBvc3Rwcm9jZXNzb3JzOiBhbnkgUGx1ZyB0byBiZSBleGVjdXRlZCBiZWZvcmUgc2VuZGluZyB0aGUgcmVzcG9uc2UuIFF1ZW55YSBjYW4gZ2VuZXJhdGUgYSBSZXNwb25zZVZhbGlkYXRvciBpZiB5b3UgbmVlZCBpdC4gSXQncyBnb29kIGZvciBkZXYvc3RhZ2luZyBwdXJwb3NlLiBCeSBkZWZhdWx0IGl0IHdvbid0IGdlbmVyYXRlIGl0LgoKUXVlbnlhIGNvbnNpc3RzIG9mIDMgcGFydHM6CgoxLiBxdWVueWFfaW5zdGFsbGVyOiBoZWxwIHdpdGggUXVlbnlhIHByb2plY3QgZ2VuZXJhdGlvbiAodGhlIENMSSB5b3UganVzdCB1c2VkKS4KMi4gcXVlbnlhX2J1aWxkZXI6IGEgY29kZSBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgQVBJIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIGV4dGVuZGVkIE9wZW5BUEkgdjMgc3BlYy4gRXZlcnkgdGltZSB5b3UgcnVuIGBtaXggY29tcGlsZWAsIFF1ZW55YSB3aWxsIHJlYnVpbGQgdGhlIHNwZWMgdG8gY29kZSAobmVlZCBpbXByb3ZlbWVudCBoZXJlKS4KMy4gcXVlbnlhOiBhIGxpYnJhcnkgY29uc2lzdCBvZiB1dGlsaXR5IGZ1bmN0aW9ucywgdGVzdHMgYW5kIGEgcGxheWdyb3VuZCB0byBwbGF5IHdpdGggQVBJIG9yIEFQSSBzdHViLgoKIyMgV2hhdCdzIHRoZSBnZW5lcmF0ZWQgY29kZT8KCklmIHlvdSBsb29rIGF0IHRoZSBgZ2VuYCBmb2xkZXIgaW4gdGhlIG5ld2x5IGdlbmVyYXRlZCBhcHAsIHlvdSdsbCBmaW5kIGFsbCB5b3VyIHJvdXRlcyBhbmQgcm91dGVycyBhcmUgb3JnYW5pemVkIGJ5IGBvcGVyYXRpb25JZGA6CgpgYGBiYXNoCiQgdHJlZSAtTCAxCi4K4pSc4pSA4pSAIFBldHN0b3JlLkdlbi5BcGlSb3V0ZXIuZXgK4pSc4pSA4pSAIFBldHN0b3JlLkdlbi5Sb3V0ZXIuZXgK4pSc4pSA4pSAIGFkZFBldArilJzilIDilIAgY3JlYXRlVXNlcgrilJzilIDilIAgY3JlYXRlVXNlcnNXaXRoQXJyYXlJbnB1dArilJzilIDilIAgY3JlYXRlVXNlcnNXaXRoTGlzdElucHV0CuKUnOKUgOKUgCBkZWxldGVPcmRlcgrilJzilIDilIAgZGVsZXRlUGV0CuKUnOKUgOKUgCBkZWxldGVVc2VyCuKUnOKUgOKUgCBmaW5kUGV0c0J5U3RhdHVzCuKUnOKUgOKUgCBmaW5kUGV0c0J5VGFncwrilJzilIDilIAgZ2V0SW52ZW50b3J5CuKUnOKUgOKUgCBnZXRPcmRlckJ5SWQK4pSc4pSA4pSAIGdldFBldEJ5SWQK4pSc4pSA4pSAIGdldFVzZXJCeU5hbWUK4pSc4pSA4pSAIGxvZ2luVXNlcgrilJzilIDilIAgbG9nb3V0VXNlcgrilJzilIDilIAgcGxhY2VPcmRlcgrilJzilIDilIAgdXBkYXRlUGV0CuKUnOKUgOKUgCB1cGRhdGVQZXRXaXRoRm9ybQrilJzilIDilIAgdXBkYXRlVXNlcgrilJTilIDilIAgdXBsb2FkRmlsZQoKMjAgZGlyZWN0b3JpZXMsIDIgZmlsZXMKYGBgCgpUaGUgbWFpbiByb3V0ZXIgd2lsbCBzZXJ2ZSBzd2FnZ2VyIGFuZCBmb3J3YXJkIHRoZSBwYXRoIChleHRyYWN0ZWQgZnJvbSB0aGUgc3BlYykgdG8gdGhlIEFQSSByb3V0ZXI6CgpgYGBlbGl4aXIKZGVmbW9kdWxlIFBldHN0b3JlLkdlbi5Sb3V0ZXIgZG8KICBAbW9kdWxlZG9jIGZhbHNlCiAgdXNlIFBsdWcuUm91dGVyCiAgdXNlIFBsdWcuRXJyb3JIYW5kbGVyCiAgcmVxdWlyZSBMb2dnZXIKICBhbGlhcyBRdWVueWEuUGx1Zy5Td2FnZ2VyUGx1ZwogIHBsdWcgUGx1Zy5Mb2dnZXIsIGxvZzogOmluZm8KICBwbHVnIFBsdWcuU3RhdGljLCBhdDogIi9wdWJsaWMiLCBmcm9tOiB7OnF1ZW55YSwgInByaXYvc3dhZ2dlciJ9CgogIHBsdWcgOm1hdGNoCiAgcGx1ZyBQbHVnLlBhcnNlcnMsIHBhcnNlcnM6IFs6anNvbl0sIHBhc3M6IFsiYXBwbGljYXRpb24vanNvbiJdLCBqc29uX2RlY29kZXI6IEphc29uCiAgcGx1ZyA6ZGlzcGF0Y2gKCiAgZGVmIGhhbmRsZV9lcnJvcnMoY29ubiwgJXtraW5kOiBfa2luZCwgcmVhc29uOiAle21lc3NhZ2U6IG1zZ30sIHN0YWNrOiBfc3RhY2t9KSBkbwogICAgUGx1Zy5Db25uLnNlbmRfcmVzcChjb25uLCBjb25uLnN0YXR1cywgbXNnKQogIGVuZAoKICBkZWYgaGFuZGxlX2Vycm9ycyhjb25uLCAle2tpbmQ6IGtpbmQsIHJlYXNvbjogcmVhc29uLCBzdGFjazogc3RhY2t9KSBkbwogICAgTG9nZ2VyLndhcm4oCiAgICAgICJJbnRlcm5hbCBlcnJvcjpcbiBraW5kOiAje2luc3BlY3Qoa2luZCl9XG4gcmVhc29uOiAje2luc3BlY3QocmVhc29uKX1cbiBzdGFjazogI3sKICAgICAgICBpbnNwZWN0KHN0YWNrKQogICAgICB9IgogICAgKQoKICAgIFBsdWcuQ29ubi5zZW5kX3Jlc3AoY29ubiwgY29ubi5zdGF0dXMsICJJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IiKQogIGVuZAoKICBnZXQoIi9zd2FnZ2VyL21haW4uanNvbiIsIHRvOiBTd2FnZ2VyUGx1ZywgaW5pdF9vcHRzOiBbYXBwOiA6cGV0c3RvcmVdKQogIGdldCgiL3N3YWdnZXIiLCB0bzogU3dhZ2dlclBsdWcsIGluaXRfb3B0czogW3NwZWM6ICIvc3dhZ2dlci9tYWluLmpzb24iXSkKICBmb3J3YXJkICIvIiwgdG86IFBldHN0b3JlLkdlbi5BcGlSb3V0ZXIsIGluaXRfb3B0czogW10KZW5kCmBgYAoKVGhlIEFQSSByb3V0ZXIgY29udGFpbnMgY29kZSBmb3IgYWxsIHJvdXRlcywgZm9yIGV4YW1wbGU6CgpgYGBlbGl4aXIKcHV0KCIvdXNlci86dXNlcm5hbWUiLAogICAgdG86IFJvdXRlUGx1ZywKICAgIGluaXRfb3B0czogWwogICAgICBwcmVwcm9jZXNzb3JzOiBbUGV0c3RvcmUuR2VuLlVwZGF0ZVVzZXIuUmVxdWVzdFZhbGlkYXRvcl0sCiAgICAgIHBvc3Rwcm9jZXNzb3JzOiBbXSwKICAgICAgaGFuZGxlcnM6IFtQZXRzdG9yZS5HZW4uVXBkYXRlVXNlci5GYWtlSGFuZGxlcl0KICAgIF0KICApCmBgYAoKV2hlbiBhIGBQVVQgL3VzZXIvOnVzZXJuYW1lYCByZXF1ZXN0IGtpY2tzIGluLCBpdCB3aWxsIGJlIGhhbmRsZWQgYnkgYFF1ZW55YS5QbHVnLlJvdXRlUGx1Z2AsIGFuZCBpdCB3aWxsIHJ1biBgcHJlcHJvY2Vzc29yc2AsIGBoYW5kbGVyc2AgYW5kIGBwb3N0cHJvY2Vzc29yc2AgaW4gdGhlIHJpZ2h0IG9yZGVyLgoKIyMgV2h5IFF1ZW55YT8KCkkndmUgZ2l2ZW4gYSB0b3BpYyBbQnVpbGRpbmcgbmV4dC1nZW4gQVBJc10oZG9jcy9idWlsZGluZy1uZXh0LWdlbi1hcGlzLnBkZikgaW4gMTAvMjAyMC4gVGhlIG9yaWdpbmFsIGlkZWEgaXM6IHdoeSBkb24ndCBJIGJ1aWxkIGEgY29kZSBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgQVBJIGNvZGUgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHdyaXRlIHJlcGVhdGVkbHk/IEkgYWx3YXlzIGhvbGQgdGhpcyB0ZW5ldCB0aGF0IGV2ZXJ5dGhpbmcgY291bGQgYmUgZ2VuZXJhdGVkIHNob3VsZCBiZSBnZW5lcmF0ZWQuCgpCdWlsZGluZyBhIGhpZ2gtcXVhbGl0eSBIVFRQIEFQSSBhcHAgaXMgbm9uLXRyaXZpYWwuIEdvb2QgQVBJcyBoYXZlIHRoZXNlIHRyYWl0czoKCkZvciBBUEkgdXNlcnM6CgotIEVhc3kgdG8gbGVhcm4gYW5kIGludHVpdGl2ZSB0byB1c2UgKHRoZSBhcHAgcHJvdmlkZXMgZnVsbC1mbGVkZ2VkIGFuZCBnb29kIHF1YWxpdHkgZG9jcyAvIHBsYXlncm91bmQpCi0gSGFyZCB0byBtaXN1c2UgKEFQSSBpcyB0eXBlLXNhZmV0eSBhbmQgcHJvdmlkZXMgcHJvcGVyIGVycm9yIHJlc3BvbnNlcykKLSBQb3dlcmZ1bCBlbm91Z2ggdG8gZHJpdmUgYnVzaW5lc3MgcmVxdWlyZW1lbnRzIChmbGV4aWJsZSwgcGVyZm9ybWFudCkKLSBFYXN5IHRvIGV2b2x2ZSBhcyB0aGUgcHJvZHVjdHMgZ3JvdwotIE9waW5pb25hdGVkIChkb24ndCBtYWtlIG1lIHRoaW5rKQoKRm9yIGRldmVsb3BlcnM6CgotIEVhc3kgdG8gcmVhZCBhbmQgbWFpbnRhaW4gZXhpc3RpbmcgY29kZQotIEVhc3kgdG8gd3JpdGUgbmV3IEFQSXMgLyBleHRlbmQgZXhpc3RpbmcgQVBJcwotIEVhc3kgdG8gZ2VuZXJhdGUgY29kZSBiYXNlZCBvbiBBUEkgc3BlYyAoY2xpZW50IFNES3MsIHRlc3QgY2FzZXMsIGFuZCBldmVuIHNlcnZlciBpbXBsZW1lbnRhdGlvbikKCkFQSSBpbXBsZW1lbnRhdGlvbiBpcyBqdXN0IGEgc21hbGwgcGFydCBvZiB0aGUgQVBJIGxpZmVjeWNsZSwgd2UgbmVlZCBBUEkgZGVzaWduLCBtb2NraW5nLCB0ZXN0aW5nLCBzaW11bGF0aW5nLCBkb2N1bWVudGF0aW9uLCBkZXBsb3ltZW50LCBldGMuCgohW10oZG9jcy9pbWFnZXMvYXBpLnBuZykKClF1ZW55YSB0cmllcyB0byBoZWxwIHlvdSBzdGFydCB3aXRoIHRoZSBBUEkgc3BlYywgaXRlcmF0ZSBpdCB3aXRob3V0IHdyaXRpbmcgdGhlIGNvZGUsIHdoaWxlIGF0IHRoZSBzYW1lIHRpbWUgdmFyaW91cyB0ZWFtcyBjYW4gcGxheSB3aXRoIHRoZSBtb2NraW5nIHNlcnZlciBiYXNlZCBvbiB0aGUgc3BlYyB0byBuYWlsIGRvd24gd2hhdCBpcyBhY3R1YWxseSBuZWVkZWQuIFdlIGJlbGlldmUgdGhpcyBpcyB0aGUgYmVzdCBhcHByb2FjaCB0byBpbXByb3ZlIHByb2R1Y3Rpdml0eS4KCiMjIFdoeSBub3QgR3JhcGhRTCBvciBvdGhlciBzb2x1dGlvbnM/CgpTZWUgdGhlIGFib3ZlIHNsaWRlcyBhbmQgeW91J2xsIHNlZSB3aHkuCg== readmeEtag: '"3f7fdbde8450a026158c1a5bbbe80f499359b0f7"' readmeLastModified: Thu, 17 Dec 2020 06:37:01 GMT repositoryId: 316165371 description: >- Quenya is a framework to build high-quality REST API applications based on extended OpenAPI spec created: '2020-11-26T08:20:54Z' updated: '2024-05-10T05:30:38Z' language: Elixir archived: false stars: 145 watchers: 6 forks: 14 owner: tyrchen logo: https://avatars.githubusercontent.com/u/473888?v=4 license: MIT repoEtag: '"f04515a5ca18519c722f149330e55fa053d0b1b49a7dc39870e7ab7cb1125342"' repoLastModified: Fri, 10 May 2024 05:30:38 GMT foundInMaster: true category: Server Implementations id: c5ab6433c14ab86f1eea6e5d29b5e111 - source: openapi3 tags repository: https://github.com/deeptest-com/deeptest v3: true id: 822f3a7739a488773f269f520937448d repositoryMetadata: base64Readme: >- PGltZyBzcmM9Inhkb2MvaW1hZ2UvbG9nby5wbmciIHdpZHRoPSIyMDAiIC8+CgpEZWVwVGVzdCBpcyBDb250aW51ZSBUZXN0aW5nIFBsYXRmb3JtIHdyaXR0ZW4gaW4gR28gd2l0aCBJcmlzLCBHb3JtLCBNeVNRTCBhbmQgVnVlMywgUHJvdG9idWYsIFdlYlNvY2tldC4KCipQbGVhc2UgcmVmZXIgdG8gW05HVGVzdGluZ10oaHR0cHM6Ly9naXRodWIuY29tL2Fhcm9uY2hlbjJrL25ndGVzdGluZy1wbGF0Zm9ybSkgdG8gZmluZCB0aGUgcHJldmlvdXMgamF2YSBwcm9qZWN0LioKCiMjIyBVc2VyIEd1aWRlCmh0dHA6Ly9kb2MuZGVlcHRlc3QuY29tCgojIyMgUXVpY2sgU3RhcnQKaHR0cDovL2RvYy5kZWVwdGVzdC5jb20vc2VydmVyLmh0bWwKCiMjIyBMaWNlbnNlcwpBbGwgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIFtHUEx2MyBMaWNlbnNlXShMSUNFTlNFLm1kKS4KCiMjIFRoYW5rcwpUaGFuayB5b3UgW0pldEJyYWluc10oaHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbSkgZm9yIHByb3ZpZGluZyBmcmVlIG9wZW4gc291cmNlIGxpY2Vuc2VzLgo= readmeEtag: '"9410f3c68f21cda7faf6fc0bb6d84759ed16e7b6"' readmeLastModified: Fri, 16 Aug 2024 09:26:22 GMT repositoryId: 122702750 description: API Management and Testing Platform created: '2018-02-24T04:23:08Z' updated: '2024-09-01T03:30:40Z' language: Go archived: false stars: 140 watchers: 18 forks: 66 owner: deeptest-com logo: https://avatars.githubusercontent.com/u/127812389?v=4 license: GPL-3.0 repoEtag: '"dcfe85a8327b598f08ba920d58c0156c8655070c66614173074cf0dd287d362f"' repoLastModified: Sun, 01 Sep 2024 03:30:40 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags name: angular-swagger-ui homepage: https://github.com/Orange-OpenSource/angular-swagger-ui language: AngularJS source_description: An angularJS implementation of Swagger UI category: - User Interfaces - Parsers repository: https://github.com/orange-opensource/angular-swagger-ui v3: true repositoryMetadata: base64Readme: >- IyBhbmd1bGFyLXN3YWdnZXItdWkKCmBhbmd1bGFyLXN3YWdnZXItdWlgIGlzIGFuIGFuZ3VsYXJKUyBpbXBsZW1lbnRhdGlvbiBvZiBPcGVuQVBJIFVJCgpbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnKSAoYWthIFtTd2FnZ2VyXShodHRwczovL3N3YWdnZXIuaW8pKSBoZWxwcyB5b3UgZG9jdW1lbnRpbmcgeW91ciBSRVNUZnVsIEFQSS4KCk9wZW5BUEkgVUkgaGVscHMgZGV2ZWxvcGVycyBkaXNjb3ZlcmluZyB5b3VyIFJFU1RmdWwgQVBJIGJ5IHByb3ZpZGluZyBhbiBvbmxpbmUgZG9jdW1lbnRhdGlvbiB3aXRoIGFuIGludGVncmF0ZWQgQVBJIGV4cGxvcmVyLgoKIyMjIFdhcm5pbmcgCj4gQnkgZGVmYXVsdCwgb25seSBPcGVuQVBJIDIuMCBpcyBzdXBwb3J0ZWQuClRvIGhhbmRsZSBPcGVuQVBJIDMuMC4wIHBsZWFzZSBhZGQgbW9kdWxlIGBvcGVuYXBpMy1jb252ZXJ0ZXJgIHNlZSBbRW5hYmxlIE9wZW5BUEkgMy4wLjBdKCNlbmFibGUtb3BlbmFwaS0zMDApLgpUbyBoYW5kbGUgT3BlbkFQSSAxLjIgcGxlYXNlIGFkZCBtb2R1bGUgYHN3YWdnZXIxLWNvbnZlcnRlcmAgc2VlIFtFbmFibGUgT3BlbkFQSSAxLjJdKCNlbmFibGUtb3BlbmFwaS0xMikuClRvIGhhbmRsZSBhdXRob3JpemF0aW9uIHBsZWFzZSBhZGQgbW9kdWxlIGBzd2FnZ2VyLWF1dGhgIHNlZSBbRW5hYmxlIGF1dGhvcml6YXRpb25dKCNlbmFibGUtYXV0aG9yaXphdGlvbikKVG8gaGFuZGxlIFlBTUwgcGxlYXNlIGFkZCBtb2R1bGUgYHN3YWdnZXIteWFtbC1wYXJzZXJgIHNlZSBbRW5hYmxlIFlBTUxdKCNlbmFibGUteWFtbCkKCiMjIERlbW8KCkEgc2FtcGxlIGFwcCB1c2luZyBgYW5ndWxhci1zd2FnZ2VyLXVpYCBpcyBhdmFpbGFibGUgaGVyZToKCmh0dHA6Ly9vcmFuZ2Utb3BlbnNvdXJjZS5naXRodWIuaW8vYW5ndWxhci1zd2FnZ2VyLXVpCgojIyBRdWljayBTdGFydAoKIyMjIEluc3RhbGwKCmBucG0gaW5zdGFsbCBhbmd1bGFyLXN3YWdnZXItdWlgCgojIyMgRGVwZW5kZW5jaWVzCgoxLiBbYW5ndWxhckpTXShodHRwczovL2FuZ3VsYXJqcy5vcmcpCjIuIFtib290c3RyYXAgQ1NTXShodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbSkKMy4gW2FuZ3VsYXItdWktYm9vdHN0cmFwXShodHRwczovL2FuZ3VsYXItdWkuZ2l0aHViLmlvL2Jvb3RzdHJhcC8pIChyZXF1aXJlZCBvbmx5IGlmIHVzaW5nIFtBdXRob3JpemF0aW9uXSgjZW5hYmxlLWF1dGhvcml6YXRpb24pKQoKIyMgTGljZW5zZQoKQWxsIGNvZGUgaW4gdGhpcyByZXBvc2l0b3J5IGlzIGNvdmVyZWQgYnkgdGhlIFtNSVQgbGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuClNlZSBMSUNFTlNFIGZpbGUgZm9yIGNvcHlyaWdodCBkZXRhaWxzLgoKIyMgR2V0dGluZyBTdGFydGVkCgpJbmNsdWRlIGBhbmd1bGFyLXN3YWdnZXItdWlgIGFzIGEgZGVwZW5kZW5jeSBpbnRvIHlvdXIgYXBwbGljYXRpb24KCkFzIHNvbWUgcHJvcGVydGllcyBvZiBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGNhbiBiZSBmb3JtYXR0ZWQgYXMgSFRNTDoKCiogWW91ICoqU0hPVUxEKiogaW5jbHVkZSBgbmdTYW5pdGl6ZWAgYXMgYSBkZXBlbmRlbmN5IGludG8geW91ciBhcHBsaWNhdGlvbiAoYXZvaWRzIEpTIGluamVjdGlvbikgaWYgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBhcmUgbG9hZGVkIGZyb20gKip1bnRydXN0ZWQqKiBzb3VyY2VzIChzZWUgYGRpc3QvaW5kZXguaHRtbGAgYXMgYW4gZXhhbXBsZSkKKiBZb3UgKipDQU4qKiBhZGQgYHRydXN0ZWQtc291cmNlcz0idHJ1ZSJgIGFzIGRpcmVjdGl2ZSBwYXJhbWV0ZXIgKGF2b2lkcyBlbWJlZGRpbmcgYG5nU2FuaXRpemVgKSBpZiBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGFyZSBsb2FkZWQgZnJvbSAqKnRydXN0ZWQqKiBzb3VyY2VzIChzZWUgYHNyYy9pbmRleC5odG1sYCBhcyBhbiBleGFtcGxlKQoqIFlvdSAqKk1VU1QqKiBhdCBsZWFzdCBjaG9vc2Ugb25lIG9mIHRoZSB0d28gcHJldmlvdXMgc29sdXRpb25zCgpgYGBodG1sCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCS8vIElmIGRpcmVjdGl2ZSBoYXMgcGFyYW1ldGVyIHRydXN0ZWQtc291cmNlcz0idHJ1ZSIKCWFuZ3VsYXIubW9kdWxlKCd5b3VyQXBwJywgWydzd2FnZ2VyVWknXSk7CgkuLi4KCS8vIE9SIGlmIHlvdSBjaG9vc2VkIHRvIHVzZSAibmdTYW5pdGl6ZSIKCWFuZ3VsYXIubW9kdWxlKCd5b3VyQXBwJywgWyduZ1Nhbml0aXplJywgJ3N3YWdnZXJVaSddKTsKCS4uLgo8L3NjcmlwdD4KYGBgCkNyZWF0ZSBhbiBIVE1MIGVsZW1lbnQgaW4geW91ciBhbmd1bGFySlMgYXBwbGljYXRpb24ncyB0ZW1wbGF0ZSBvciBpbiB5b3VyIEhUTUwgcGFnZQpgYGBodG1sCjxkaXYgc3dhZ2dlci11aSB1cmw9IlVSTFRvWW91ck9wZW5BUElTcGVjaWZpY2F0aW9uIiBhcGktZXhwbG9yZXI9InRydWUiPjwvZGl2PgpgYGAKQWRkIGBzd2FnZ2VyLXVpLm1pbi5qc2AgYW5kIGBhbmd1bGFyLm1pbi5qc2AgYXQgdGhlIGVuZCBvZiB0aGUgYm9keQpgYGBodG1sCjxib2R5PgogCS4uLgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhckpTL2FuZ3VsYXIubWluLmpzIj48L3NjcmlwdD4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJTd2FnZ2VyVUkvZGlzdC9zY3JpcHRzL3N3YWdnZXItdWkubWluLmpzIj48L3NjcmlwdD4KIAk8IS0tIGlmIHlvdSBjaG9vc2VkIHRvIHVzZSAibmdTYW5pdGl6ZSIgLS0+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU2FuaXRpemUvYW5ndWxhci1zYW5pdGl6ZS5taW4uanMiPjwvc2NyaXB0Pgo8L2JvZHk+CmBgYApBZGQgYHN3YWdnZXItdWkubWluLmNzc2AgYW5kIGBib290c3RyYXAubWluLmNzc2AgdG8gdGhlIGhlYWQgb2YgdGhlIEhUTUwgcGFnZS4KYGBgaHRtbAo8Ym9keT4KCTxoZWFkPgoJCS4uLgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ieW91clBhdGhUb0Jvb3RzdHJhcENTUy9ib290c3RyYXAubWluLmNzcyI+CgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ5b3VyUGF0aFRvQW5ndWxhclN3YWdnZXJVSS9kaXN0L2Nzcy9zd2FnZ2VyLXVpLm1pbi5jc3MiPgogIAk8L2hlYWQ+CjwvYm9keT4KYGBgCgojIyBQYXJhbWV0ZXJzCgojIyMjIEFQSSBleHBsb3JlcgpEaXNwbGF5IG9yIG5vdCBBUEkgZXhwbG9yZXIsIGRlZmF1bHQgaXMgYGZhbHNlYApgYGBodG1sCjxkaXYgc3dhZ2dlci11aSB1cmw9IlVSTFRvWW91ck9wZW5BUElTcGVjaWZpY2F0aW9uIiBhcGktZXhwbG9yZXI9InRydWUvZmFsc2UiPjwvZGl2PgpgYGAKCiMjIyMgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGxvYWRpbmcgaW5kaWNhdG9yCmB5b3VyU2NvcGVWYXJpYWJsZWAgd2lsbCBiZSBhc3NpZ25lZCB0byBgdHJ1ZWAgb3IgYGZhbHNlYCBkZXBlbmRpbmcgb24gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGxvYWRpbmcgc3RhdHVzCmBgYGh0bWwKPGRpdiBuZy1zaG93PSJ5b3VyU2NvcGVWYXJpYWJsZSI+bG9hZGluZyAuLi48L2Rpdj4KPGRpdiBzd2FnZ2VyLXVpIHVybD0iVVJMVG9Zb3VyT3BlbkFQSVNwZWNpZmljYXRpb24iIGxvYWRpbmc9InlvdXJTY29wZVZhcmlhYmxlIj48L2Rpdj4KYGBgCgojIyMjIEVycm9yIGhhbmRsZXIKRGVmaW5lIGFuIGVycm9yIGhhbmRsZXIgdG8gY2F0Y2ggZXJyb3JzLCBpZiBub25lIGRlZmluZWQgYGNvbnNvbGUuZXJyb3JgIGlzIHVzZWQKYGBgaHRtbAo8ZGl2IHN3YWdnZXItdWkgdXJsPSJVUkxUb1lvdXJPcGVuQVBJU3BlY2lmaWNhdGlvbiIgZXJyb3ItaGFuZGxlcj0ieW91ckVycm9ySGFuZGxlciI+PC9kaXY+CmBgYApgYGBqcwokc2NvcGUueW91ckVycm9ySGFuZGxlciA9IGZ1bmN0aW9uKC8qU3RyaW5nIG9yIE9iamVjdCovIG1lc3NhZ2UsIC8qSW50ZWdlciovIGNvZGUpewoJCn0KYGBgCgojIyMjIFBlcm1hbGlua3MKQWxsb3dzIGhhdmluZyBhIFVSTCBkaXJlY3QgYWNjZXNzIHRvIGEgZ3JvdXAgb2Ygb3BlcmF0aW9ucyBvciB0byBhbiBvcGVyYXRpb24gYW5kIG1ha2luZyBpdCB1bmZvbGRlZCBhdCBzdGFydHVwCmBgYGh0bWwKPGRpdiBzd2FnZ2VyLXVpIHVybD0iVVJMVG9Zb3VyT3BlbkFQSVNwZWNpZmljYXRpb24iIHBlcm1hbGlua3M9InRydWUvZmFsc2UiPjwvZGl2PgpgYGAKCiMjIyMgRG93bmxvYWQKRGlzcGxheSBvciBub3QgYSBsaW5rIHRvIGRvd25sb2FkIHN3YWdnZXIgZmlsZS4gCgpgYGBodG1sCjwhLS0gZGlzcGxheSBsaW5rIHdpdGggdXJsIGxhYmVsIC0tPgo8ZGl2IHN3YWdnZXItdWkgdXJsPSJVUkxUb1lvdXJPcGVuQVBJU3BlY2lmaWNhdGlvbiIgZG93bmxvYWQ+PC9kaXY+Cgo8IS0tIGRpc3BsYXkgbGluayB3aXRoIHNwZWNpZmljIGtleSBlbnRlciBpbiBzd2FnZ2VyVHJhbnNsYXRvclByb3ZpZGVyIC0tPgo8ZGl2IHN3YWdnZXItdWkgdXJsPSJVUkxUb1lvdXJPcGVuQVBJU3BlY2lmaWNhdGlvbiIgZG93bmxvYWQ9ImRvd25sb2FkTGFiZWwiPjwvZGl2PgpgYGAKCiMjIyMgT3BlbkFQSSB2YWxpZGF0b3IKRGlzYWJsZSBPcGVuQVBJIHZhbGlkYXRvciBvciBkZWZpbmUgYSBjdXN0b20gT3BlbkFQSSB2YWxpZGF0b3IuCklmIHBhcmFtZXRlciBub3QgZGVmaW5lZCwgdGhlIHZhbGlkYXRvciB3aWxsIGJlICdodHRwOi8vb25saW5lLnN3YWdnZXIuaW8vdmFsaWRhdG9yJwpgYGBodG1sCjxkaXYgc3dhZ2dlci11aSB1cmw9IlVSTFRvWW91ck9wZW5BUElTcGVjaWZpY2F0aW9uIiB2YWxpZGF0b3ItdXJsPSJmYWxzZSBvciBVUkwiPjwvZGl2PgpgYGAKCiMjIyMgUGFyc2VyIHR5cGUKT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHBhcnNlciBpcyBjaG9zZW4gZGVwZW5kaW5nIG9uIHRoZSBgQ29udGVudC1UeXBlYCBvZiB0aGUgc3BlY2lmaWNhdGlvbiByZXNwb25zZS4gSWYgaG9zdCBzZXJ2aW5nIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IHNlbmQgYENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbmAgdGhlbiB5b3UgY2FuIGZvcmNlIHRoZSBwYXJzZXIgdG8gSlNPTjoKYGBgaHRtbAo8ZGl2IHN3YWdnZXItdWkgdXJsPSJVUkxUb1lvdXJPcGVuQVBJU3BlY2lmaWNhdGlvbiIgcGFyc2VyPSJqc29uIj48L2Rpdj4KYGBgCgojIyMjIFRlbXBsYXRlIFVSTApEZWZpbmUgYSBjdXN0b20gdGVtcGxhdGUgdG8gYmUgdXNlZCBieSBPcGVuQVBJVUkKYGBgaHRtbAo8ZGl2IHN3YWdnZXItdWkgdXJsPSJVUkxUb1lvdXJPcGVuQVBJU3BlY2lmaWNhdGlvbiIgdGVtcGxhdGUtdXJsPSJ5b3VyVGVtcGxhdGVQYXRoIj48L2Rpdj4KYGBgCgojIyMjIEluaGVyaXRlZCBwcm9wZXJ0aWVzCkFsbG93cyBkaXNwbGF5aW5nIGluaGVyaXRlZCBwcm9wZXJ0aWVzIG9mIHBvbHltb3JwaGljIG1vZGVscwpgYGBodG1sCjxkaXYgc3dhZ2dlci11aSB1cmw9IlVSTFRvWW91ck9wZW5BUElTcGVjaWZpY2F0aW9uIiBzaG93LWluaGVyaXRlZC1wcm9wZXJ0aWVzPSJ0cnVlL2ZhbHNlIj48L2Rpdj4KYGBgCgojIyMjIElucHV0IHR5cGUgYW5kIGlucHV0CiMjIyMjIFJlbmRlciBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZnJvbSBKU09OIG9iamVjdApgYGBodG1sCjxkaXYgc3dhZ2dlci11aSBpbnB1dC10eXBlPSJqc29uIiBpbnB1dD0ieW91ckpzb25PYmplY3QiPjwvZGl2PgpgYGAKCiMjIyMjIFJlbmRlciBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZnJvbSBZQU1MIHN0cmluZwpNYWtlIHN1cmUgdG8gdXNlIG1vZHVsZSBgc3dhZ2dlci15YW1sLXBhcnNlcmAsIHNlZSBbRW5hYmxlIFlBTUxdKCNlbmFibGUteWFtbCkKYGBgaHRtbAo8ZGl2IHN3YWdnZXItdWkgaW5wdXQtdHlwZT0ieWFtbCIgaW5wdXQ9InlvdXJZYW1sU3RyaW5nIj48L2Rpdj4KYGBgCgojIyMjIyBSZW5kZXIgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZyb20gVVJMIChzYW1lIGJlaGF2aW9yIGFzIHVzaW5nICJ1cmwiIHBhcmFtZXRlcikKYGBgaHRtbAo8ZGl2IHN3YWdnZXItdWkgaW5wdXQtdHlwZT0idXJsIiBpbnB1dD0ieW91clVSTCI+PC9kaXY+CmBgYAoKIyMgaTE4bgoKIyMjIyBCdWlsdC1pbiBsYW5ndWFnZXMKYGFuZ3VsYXItc3dhZ2dlci11aWAgaXMgYXZhaWxhYmxlIGluIGVuZ2xpc2ggYW5kIGZyZW5jaCwgZW5nbGlzaCBpcyB1c2VkIGJ5IGRlZmF1bHQKClRvIHVzZSBmcmVuY2gsIGFkZCBgZnIubWluLmpzYCBhdCB0aGUgZW5kIG9mIHRoZSBib2R5CmBgYGh0bWwKPGJvZHk+CiAJLi4uCiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFySlMvYW5ndWxhci5taW4uanMiPjwvc2NyaXB0PgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhclN3YWdnZXJVSS9kaXN0L3NjcmlwdHMvc3dhZ2dlci11aS5taW4uanMiPjwvc2NyaXB0PgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhclN3YWdnZXJVSS9kaXN0L3NjcmlwdHMvaTE4L2ZyLm1pbi5qcyI+PC9zY3JpcHQ+CjwvYm9keT4KYGBgClNldCBsYW5ndWFnZSB0byBmcmVuY2ggYXQgc3RhcnR1cApgYGBodG1sCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWFuZ3VsYXIKCQkubW9kdWxlKCd5b3VyQXBwJywgWydzd2FnZ2VyVWknXSkKCQkuY29uZmlnKGZ1bmN0aW9uKHN3YWdnZXJUcmFuc2xhdG9yUHJvdmlkZXIpIHsKCQkJc3dhZ2dlclRyYW5zbGF0b3JQcm92aWRlci5zZXRMYW5ndWFnZSgnZnInKTsKCQl9KTsKCS4uLgo8L3NjcmlwdD4KYGBgClNldCBsYW5ndWFnZSB0byBmcmVuY2ggYXQgcnVudGltZQpgYGBodG1sCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWFuZ3VsYXIKCQkubW9kdWxlKCd5b3VyQXBwJywgWydzd2FnZ2VyVWknXSkKCQkuY29udHJvbGxlcigneW91ckNvbnRyb2xsZXInLCBmdW5jdGlvbihzd2FnZ2VyVHJhbnNsYXRvcikgewoJCQlzd2FnZ2VyVHJhbnNsYXRvci51c2VMYW5ndWFnZSgnZnInKTsKCQl9KTsKCS4uLgo8L3NjcmlwdD4KYGBgCgojIyMjIEFkZCBsYW5ndWFnZXMKWW91IGNhbiBhZGQgeW91ciBvd24gbGFuZ3VhZ2VzLCBzZWUgYHNyYy9zY3JpcHRzL2kxOG4vZW4uanNgIHRvIGZpbmQgdGhlIGtleXMgeW91IGhhdmUgdG8gb3ZlcnJpZGUKYGBgaHRtbAo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cglhbmd1bGFyCgkJLm1vZHVsZSgneW91ckFwcCcsIFsnc3dhZ2dlclVpJ10pCgkJLmNvbmZpZyhmdW5jdGlvbihzd2FnZ2VyVHJhbnNsYXRvclByb3ZpZGVyKSB7CgkJCXN3YWdnZXJUcmFuc2xhdG9yUHJvdmlkZXIuYWRkVHJhbnNsYXRpb25zKCd5b3VyTGFuZ0lkJywgewoJCQkJa2V5OiAndmFsdWUnCgkJCQkuLi4KCQkJfSk7CgkJCXN3YWdnZXJUcmFuc2xhdG9yUHJvdmlkZXIuc2V0TGFuZ3VhZ2UoJ3lvdXJMYW5nSWQnKTsKCQl9KTsKCS4uLgo8L3NjcmlwdD4KYGBgCgojIyMjIEludGVybmF0aW9uYWxpemUgeW91ciBhcHAKWW91IGNhbiBhbHNvIHVzZSBgc3dhZ2dlclRyYW5zbGF0b3JgIHRvIGludGVybmF0aW9uYWxpemUgeW91ciBhcHAgYnkgdXNpbmcgYSBzZXJ2aWNlLCBhIGRpcmVjdGl2ZSBvciBhIGZpbHRlcgpgYGBodG1sCjxib2R5PgogCS4uLgogCTxkaXYgc3dhZ2dlci10cmFuc2xhdGU9InlvdXJLZXkiIHN3YWdnZXItdHJhbnNsYXRlLXZhbHVlPSJ5b3VyUGFyYW0iPjwvZGl2PgogCTxkaXYgbmctYmluZD0ieW91ckR5bmFtaWNLZXl8c3dhZ2dlclRyYW5zbGF0ZTp5b3VyRHluYW1pY1BhcmFtIj48L2Rpdj4KIAkuLi4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlhbmd1bGFyCgkJCS5tb2R1bGUoJ3lvdXJBcHAnLCBbJ3N3YWdnZXJVaSddKQoJCQkuY29uZmlnKGZ1bmN0aW9uKHN3YWdnZXJUcmFuc2xhdG9yUHJvdmlkZXIpIHsKCQkJCXN3YWdnZXJUcmFuc2xhdG9yUHJvdmlkZXIuYWRkVHJhbnNsYXRpb25zKCdlbicsIHsKCQkJCQl5b3VyS2V5OiAnYmxhYmxhYmxhIHt7cHJvcGVydHlOYW1lT2ZZb3VyUGFyYW19fScKCQkJCQkuLi4KCQkJCX0pOwoJCQl9KQoJCQkuY29udHJvbGxlcigneW91ckNvbnRyb2xsZXInLCBmdW5jdGlvbihzd2FnZ2VyVHJhbnNsYXRvcikgewoJCQkJdmFyIGxvY2FsaXplZE1lc3NhZ2UgPSBzd2FnZ2VyVHJhbnNsYXRvci50cmFuc2xhdGUoJ3lvdXJLZXknLCB5b3VyUGFyYW0pOwoJCQl9KTsKCQkuLi4KCTwvc2NyaXB0Pgo8L2JvZHk+CmBgYAoKIyMgQ3VzdG9taXphdGlvbgoKIyMjIyBFbmFibGUgT3BlbkFQSSAzLjAuMApTZWUgW09wZW5BUEkgMy4wLjAgc3BlY10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpLgpBZGQgYG9wZW5hcGkzLWNvbnZlcnRlci5taW4uanNgIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKYGBgaHRtbAo8Ym9keT4KIAkuLi4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJKUy9hbmd1bGFyLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9zd2FnZ2VyLXVpLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9tb2R1bGVzL29wZW5hcGkzLWNvbnZlcnRlci5taW4uanMiPjwvc2NyaXB0Pgo8L2JvZHk+CmBgYAoKIyMjIyBFbmFibGUgYXV0aG9yaXphdGlvbgpgb2F1dGhgIGlzIG5vdCBpbXBsZW1lbnRlZCwgb25seSBgYmFzaWNgIGFuZCBgQVBJIGtleWAgYXV0aG9yaXphdGlvbnMgYXJlIGltcGxlbWVudGVkLgpBZGQgYHN3YWdnZXItYXV0aC5taW4uanNgIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKYGBgaHRtbAo8Ym9keT4KIAkuLi4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJKUy9hbmd1bGFyLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9zd2FnZ2VyLXVpLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9tb2R1bGVzL3N3YWdnZXItYXV0aC5taW4uanMiPjwvc2NyaXB0PjwhLS0gd2l0aG91dCBhbmd1bGFyLXVpLWJvb3RzdHJhcCBtb2RhbCBlbWJlZGRlZCAtLT4KIAlPUgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhclN3YWdnZXJVSS9kaXN0L3NjcmlwdHMvbW9kdWxlcy9zd2FnZ2VyLWF1dGgtdWktYm9vc3RyYXAtbW9kYWwubWluLmpzIj48L3NjcmlwdD48IS0tIGFuZ3VsYXItdWktYm9vdHN0cmFwIG1vZGFsIGVtYmVkZGVkIC0tPgogCS4uLgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWFuZ3VsYXIKCQkJLm1vZHVsZSgneW91ckFwcCcsIFsnc3dhZ2dlclVpJywgJ3N3YWdnZXJVaUF1dGhvcml6YXRpb24nXSkKCQkJLy8gd2hhdCBpcyBiZWxvdyBpcyByZXF1aXJlZCBmb3Igb2F1dGgyIGZsb3dzICdpbXBsaWNpdCcgYW5kICdhY2Nlc3NDb2RlJyAoaWUuIGF1dGhvcml6YXRpb25Db2RlKQoJCQkvLyB3aGF0IGlzIGJlbG93IGNhbiBhbHNvIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSBhcGlLZXkgb3IgQmFzaWMgYXV0aG9yaXphdGlvbnMKICAgICAgLmNvbmZpZyhmdW5jdGlvbihzd2FnZ2VyVWlBdXRoUHJvdmlkZXIpIHsKICAgICAgICAgIHN3YWdnZXJVaUF1dGhQcm92aWRlci5jb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICAvLyByZXF1aXJlZCBmb3Igb2F1dGgyIGZsb3cgJ2ltcGxpY2l0JyBhbmQgJ2FjY2Vzc0NvZGUnIChpZS4gYXV0aG9yaXphdGlvbkNvZGUpCiAgICAgICAgICAgICAJcmVkaXJlY3RVcmw6ICd5b3VyUGF0aFRvQW5ndWxhclN3YWdnZXJVSS9vYXV0aDItcmVkaXJlY3QuaHRtbCcgCiAgICAgICAgICAgICAgLy8gb3B0aW9uYWwKICAgICAgICAgICAgICB5b3VyU2VjdXJpdHlOYW1lOiB7CiAgICAgICAgICAgICAgCWFwaUtleTogJ3lvdXJBcGlLZXlWYWx1ZScgLy8gb3B0aW9uYWwsIGNhbiBiZSB1c2VkIHRvIGluaXRpYWxpemUgYXBpIGtleSB2YWx1ZQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgLy8gb3B0aW9uYWwKICAgICAgICAgICAgICB5b3VyU2VjdXJpdHlOYW1lOiB7CiAgICAgICAgICAgICAgCWxvZ2luOiAneW91ckxvZ2luJywgLy8gb3B0aW9uYWwsIGNhbiBiZSB1c2VkIHRvIGluaXRpYWxpemUgYmFzaWMgbG9naW4KICAgICAgICAgICAgICAJcGFzc3dvcmQ6ICd5b3VyUGFzc3dvcmQnIC8vIG9wdGlvbmFsLCBjYW4gYmUgdXNlZCB0byBpbml0aWFsaXplIGJhc2ljIHBhc3N3b3JkCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAvLyBvcHRpb25hbAogICAgICAgICAgICAgIHlvdXJTZWN1cml0eU5hbWU6IHsKICAgICAgICAgICAgICAJY2xpZW50SWQ6ICd5b3VyQ2xpZW50SWQnLCAvLyBvcHRpb25hbCwgY2FuIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSBvYXV0aDIgY3JlZGVudGlhbHMKICAgICAgICAgICAgICAJY2xpZW50U2VjcmV0OiAneW91ckNsaWVudFNlY3JldCcsIC8vIG9wdGlvbmFsLCBjYW4gYmUgdXNlZCB0byBpbml0aWFsaXplIG9hdXRoMiBjcmVkZW50aWFscwogICAgICAgICAgICAgIAlsb2dpbjogJ3lvdXJMb2dpbicsIC8vIG9wdGlvbmFsLCBjYW4gYmUgdXNlZCB0byBpbml0aWFsaXplIG9hdXRoMiBjcmVkZW50aWFscwogICAgICAgICAgICAgIAlwYXNzd29yZDogJ3lvdXJQYXNzd29yZCcsIC8vIG9wdGlvbmFsLCBjYW4gYmUgdXNlZCB0byBpbml0aWFsaXplIG9hdXRoMiBjcmVkZW50aWFscwogICAgICAgICAgICAgIAlzY29wZVNlcGFyYXRvcjogJ3Njb3BlU2VwYXJhdG9yJywgLy8gb3B0aW9uYWwsIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBvYXV0aDIgc2NvcGVzIHNlcGFyYXRvciwgZGVmYXVsdCB2YWx1ZSBpcyBzcGFjZQogICAgICAgICAgICAgIAkvLyBvcHRpb25hbCwgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlIG9hdXRoMiBhZGRpdGlvbmFsIHF1ZXJ5IHBhcmFtcyB0byB0b2tlblVybCBhbmQgYXV0aG9yaXphdGlvblVybAogICAgICAgICAgICAgIAlxdWVyeVBhcmFtczogewogICAgICAgICAgICAgIAkJJ3lvdXJRdWVyeVBhcmFtTmFtZSc6ICd5b3VyUXVlcnlQYXJhbVZhbHVlJwogICAgICAgICAgICAgIAkJLi4uCiAgICAgICAgICAgICAgCX0sIAogICAgICAgICAgICAgIH0sCiAgICAgICAgICB9KTsKICAgICAgfSkKCQkJLi4uCgk8L3NjcmlwdD4KPC9ib2R5PgpgYGAKCiMjIyMgRW5hYmxlIE9wZW5BUEkgW2FrYSBTd2FnZ2VyXSAxLjIKU2VlIFtPcGVuQVBJIDEuMiBzcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8xLjIubWQpLgpBZGQgYHN3YWdnZXIxLWNvbnZlcnRlci5taW4uanNgIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKYGBgaHRtbAo8Ym9keT4KIAkuLi4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJKUy9hbmd1bGFyLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9zd2FnZ2VyLXVpLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9tb2R1bGVzL3N3YWdnZXIxLWNvbnZlcnRlci5taW4uanMiPjwvc2NyaXB0Pgo8L2JvZHk+CmBgYAoKIyMjIyBFbmFibGUgT3BlbkFQSSBleHRlcm5hbCByZWZlcmVuY2VzClNlZSBbT3BlbkFQSSAyLjAgc3BlY10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI3JlbGF0aXZlLXNjaGVtYS1maWxlLWV4YW1wbGUpLgpBZGQgYHN3YWdnZXItZXh0ZXJuYWwtcmVmZXJlbmNlcy5taW4uanNgIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKYGBgaHRtbAo8Ym9keT4KIAkuLi4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJKUy9hbmd1bGFyLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9zd2FnZ2VyLXVpLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Bbmd1bGFyU3dhZ2dlclVJL2Rpc3Qvc2NyaXB0cy9tb2R1bGVzL3N3YWdnZXItZXh0ZXJuYWwtcmVmZXJlbmNlcy5taW4uanMiPjwvc2NyaXB0Pgo8L2JvZHk+CmBgYAoKIyMjIyBFbmFibGUgWE1MIGZvcm1hdHRlciBvbiBBUEkgZXhwbG9yZXIgcmVzcG9uc2VzCkFkZCBgc3dhZ2dlci14bWwtZm9ybWF0dGVyLm1pbi5qc2AgYXQgdGhlIGVuZCBvZiB0aGUgYm9keQpgYGBodG1sCjxib2R5PgogCS4uLgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhckpTL2FuZ3VsYXIubWluLmpzIj48L3NjcmlwdD4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJTd2FnZ2VyVUkvZGlzdC9zY3JpcHRzL3N3YWdnZXItdWkubWluLmpzIj48L3NjcmlwdD4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJTd2FnZ2VyVUkvZGlzdC9zY3JpcHRzL21vZHVsZXMvc3dhZ2dlci14bWwtZm9ybWF0dGVyLm1pbi5qcyI+PC9zY3JpcHQ+CjwvYm9keT4KYGBgCgojIyMjIEVuYWJsZSBZQU1MCkFkZCBbanMteWFtbCBsaWJyYXJ5XShodHRwczovL2NkbmpzLmNvbS9saWJyYXJpZXMvanMteWFtbCkuCkFkZCBgc3dhZ2dlci15YW1sLXBhcnNlci5taW4uanNgIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKYGBgaHRtbAo8Ym9keT4KIAkuLi4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJKUy9hbmd1bGFyLm1pbi5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCBzcmM9InlvdXJQYXRoVG9Kc1lhbWwvanMteWFtbC5taW4uanMiPjwvc2NyaXB0PgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhclN3YWdnZXJVSS9kaXN0L3NjcmlwdHMvc3dhZ2dlci11aS5taW4uanMiPjwvc2NyaXB0PgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhclN3YWdnZXJVSS9kaXN0L3NjcmlwdHMvbW9kdWxlcy9zd2FnZ2VyLXlhbWwtcGFyc2VyLm1pbi5qcyI+PC9zY3JpcHQ+CjwvYm9keT4KYGBgCgojIyMjIEVuYWJsZSBtYXJrZG93bgpBZGQgW21hcmtlZCBsaWJyYXJ5XShodHRwczovL2NkbmpzLmNvbS9saWJyYXJpZXMvbWFya2VkKS4KQWRkIGBzd2FnZ2VyLW1hcmtkb3duLm1pbi5qc2AgYXQgdGhlIGVuZCBvZiB0aGUgYm9keQpgYGBodG1sCjxib2R5PgogCS4uLgogCTxzY3JpcHQgc3JjPSJ5b3VyUGF0aFRvQW5ndWxhckpTL2FuZ3VsYXIubWluLmpzIj48L3NjcmlwdD4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb01hcmtlZC9tYXJrZWQubWluLmpzIj48L3NjcmlwdD4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJTd2FnZ2VyVUkvZGlzdC9zY3JpcHRzL3N3YWdnZXItdWkubWluLmpzIj48L3NjcmlwdD4KIAk8c2NyaXB0IHNyYz0ieW91clBhdGhUb0FuZ3VsYXJTd2FnZ2VyVUkvZGlzdC9zY3JpcHRzL21vZHVsZXMvc3dhZ2dlci1tYXJrZG93bi5taW4uanMiPjwvc2NyaXB0Pgo8L2JvZHk+CmBgYAoKIyMjIyBXcml0aW5nIHlvdXIgb3duIG1vZHVsZXMKTW9kaWZ5aW5nIGBhbmd1bGFyLXN3YWdnZXItdWlgIGNhbiBiZSBhY2hpZXZlZCBieSB3cml0aW5nIHlvdXIgb3duIG1vZHVsZXMuIEFzIGFuIGV4YW1wbGUgeW91ciBjYW4gaGF2ZSBhIGxvb2sgYXQgdGhlIG9uZXMgaW4gYHNyYy9zY3JpcHRzL21vZHVsZXNgLgpBIG1vZHVsZSBpcyBhbiBvYmplY3QgKGNhbiBiZSBhIHNlcnZpY2UpIGhhdmluZyBhIGZ1bmN0aW9uIGBleGVjdXRlYCB3aGljaCBtdXN0IHJldHVybiBhIHByb21pc2UuCgpZb3UgY2FuIG1ha2UgeW91ciBtb2R1bGUgbW9kaWZ5aW5nIGJlaGF2aW91cnMgYXQgZGlmZmVyZW50IHBoYXNlczoKCiogYEJFRk9SRV9MT0FEYDogYWxsb3dzIG1vZGlmeWluZyBPcGVuQVBJIHNwZWNpZmljYXRpb24gcmVxdWVzdCBiZWZvcmUgaXQgaXMgc2VudAoqIGBCRUZPUkVfUEFSU0VgOiBhbGxvd3MgbW9kaWZ5aW5nIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBhZnRlciBpdCBoYXMgYmVlbiBsb2FkZWQKKiBgUEFSU0VgOiBhbGxvd3MgYWRkaW5nIGFuIE9wZW5BUEkgcGFyc2VyIGZvciBjb250ZW50IHR5cGVzIG90aGVyIHRoYW4gSlNPTgoqIGBCRUZPUkVfRElTUExBWWA6IGFsbG93cyBtb2RpZnlpbmcgaW50ZXJuYWwgcGFyc2VkIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBiZWZvcmUgaXQgaXMgZGlzcGxheWVkCiogYEJFRk9SRV9FWFBMT1JFUl9MT0FEYDogYWxsb3dzIG1vZGlmeWluZyBBUEkgZXhwbG9yZXIgcmVxdWVzdCBiZWZvcmUgaXQgaXMgc2VudAoqIGBBRlRFUl9FWFBMT1JFUl9MT0FEYDogYWxsb3dzIG1vZGlmeWluZyBBUEkgZXhwbG9yZXIgcmVzcG9uc2UgYmVmb3JlIGl0IGlzIGRpc3BsYXllZAoKYGBganMKYW5ndWxhcgoJLm1vZHVsZSgnbXlBcHAnLCBbJ3N3YWdnZXJVaSddKQoJLnNlcnZpY2UoJ215TW9kdWxlJywgZnVuY3Rpb24oJHEpIHsKCgkJdGhpcy5leGVjdXRlID0gZnVuY3Rpb24oZGF0YSkgewoJCQl2YXIgZGVmZXJyZWQgPSAkcS5kZWZlcigpOwoJCQkvLyBpZiBub3RoaW5nIGRvbmU6IGNhbGwgZGVmZXJyZWQucmVzb2x2ZShmYWxzZSk7CgkJCS8vIGlmIHN1Y2Nlc3M6IGNhbGwgZGVmZXJyZWQucmVzb2x2ZSh0cnVlKTsKCQkJLy8gaWYgZXJyb3I6IGNhbGwgZGVmZXJyZWQucmVqZWN0KHttZXNzYWdlOiAnZXJyb3IgbWVzc2FnZScsIGNvZGU6ICdlcnJvcl9jb2RlJ30pOwoJCQlyZXR1cm4gZGVmZXJyZWQucHJvbWlzZTsKCQl9CgoJfSkKCS5ydW4oZnVuY3Rpb24oc3dhZ2dlck1vZHVsZXMsIG15TW9kdWxlKXsKCQkvLyBkZWZhdWx0IHByaW9yaXR5IGlzIDEKCQkvLyBoaWdoZXIgaXMgdGhlIHByaW9yaXR5LCBzb29uZXIgdGhlIG1vZHVsZSBpcyBleGVjdXRlZCBhdCB0aGUgc3BlY2lmaWVkIHBoYXNlCgkJc3dhZ2dlck1vZHVsZXMuYWRkKHN3YWdnZXJNb2R1bGVzLkJFRk9SRV9MT0FELCBteU1vZHVsZSwgcHJpb3JpdHkpOwoJfSkKCS4uLgoKYGBgCg== readmeEtag: '"4f2c75d8482865d9e7949580790c5bec602563fe"' readmeLastModified: Mon, 05 Oct 2020 09:54:38 GMT repositoryId: 31470522 description: An angularJS implementation of Swagger UI created: '2015-02-28T17:44:11Z' updated: '2023-12-24T05:16:41Z' language: JavaScript archived: true stars: 135 watchers: 22 forks: 75 owner: Orange-OpenSource logo: https://avatars.githubusercontent.com/u/1506386?v=4 license: MIT repoEtag: '"ecbaf8c31f15c5f9a6ddd6e275fb5cab32a48fefe9009b7bbd31eab49f7dd00d"' repoLastModified: Sun, 24 Dec 2023 05:16:41 GMT foundInMaster: true id: 4db6178272e1a2c2ca2eef009acc2dd1 - source: openapi3 tags repository: https://github.com/cebe/yii2-openapi v3: true repositoryMetadata: base64Readme: >- IyB5aWkyLW9wZW5hcGkKCj4KPiAqKlRoaXMgcmVwb3NpdG9yeSBoYXMgYmVlbiBtb3ZlZCB0byA8aHR0cHM6Ly9naXRodWIuY29tL3BocC1vcGVuYXBpL3lpaTItb3BlbmFwaT4uKiogIAo+ICoqUGxlYXNlIHVzZSB0aGUgbmV3IHBhY2thZ2UgYHBocC1vcGVuYXBpL3lpaTItb3BlbmFwaWAgaW5zdGVhZC4qKgo+CgpSRVNUIEFQSSBhcHBsaWNhdGlvbiBnZW5lcmF0b3IgZm9yIFlpaTIsIG9wZW5hcGkgMy4wIFlBTUwgLT4gWWlpMi4KCkJhc2Ugb24gW0dpaSwgdGhlIFlpaSBGcmFtZXdvcmsgQ29kZSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LnlpaWZyYW1ld29yay5jb20vZXh0ZW5zaW9uL3lpaXNvZnQveWlpMi1naWkpLgoKWyFbTGF0ZXN0IFN0YWJsZSBWZXJzaW9uXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL2NlYmUveWlpMi1vcGVuYXBpL3Yvc3RhYmxlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2NlYmUveWlpMi1vcGVuYXBpKQpbIVtMYXRlc3QgQWxwaGEgVmVyc2lvbl0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9jZWJlL3lpaTItb3BlbmFwaS92L3Vuc3RhYmxlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2NlYmUveWlpMi1vcGVuYXBpKQpbIVtUb3RhbCBEb3dubG9hZHNdKGh0dHBzOi8vcG9zZXIucHVneC5vcmcvY2ViZS95aWkyLW9wZW5hcGkvZG93bmxvYWRzKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2NlYmUveWlpMi1vcGVuYXBpKQpbIVtMaWNlbnNlXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL2NlYmUveWlpMi1vcGVuYXBpL2xpY2Vuc2UpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvY2ViZS95aWkyLW9wZW5hcGkpCiFbeWlpMi1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vY2ViZS95aWkyLW9wZW5hcGkvd29ya2Zsb3dzL3lpaTItb3BlbmFwaS9iYWRnZS5zdmc/YnJhbmNoPXdpcCkKCiMjIFRMRFI7IHdoYXQgaXMgdGhpcz8KCkEgY29kZSBnZW5lcmF0b3IgZm9yIE9wZW5BUEkgYW5kIFlpaSBGcmFtZXdvcmsgYmFzZWQgUEhQIEFQSSBhcHBsaWNhdGlvbi4KCklucHV0OiBbT3BlbkFQSSAzLjAgWUFNTCBvciBKU09OXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbiN0aGUtb3BlbmFwaS1zcGVjaWZpY2F0aW9uKSAodmlhIFtjZWJlL3BocC1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vY2ViZS9waHAtb3BlbmFwaSkpCgpPdXRwdXQ6IFlpaSBGcmFtZXdvcmsgQXBwbGljYXRpb24gd2l0aCBDb250cm9sbGVycywgTW9kZWxzLCBkYXRhYmFzZSBzY2hlbWEKCgojIyBGZWF0dXJlcwoKQ3VycmVudGx5IGF2YWlsYWJsZSBmZWF0dXJlczoKCi0gR2VuZXJhdGUgUGF0aCBtYXBwaW5ncywgKipDb250cm9sbGVycyoqIGFuZCBBY3Rpb25zICoqZm9yIEFQSSBFbmRwb2ludHMqKi4gQ1JVRCBFbmRwb2ludHMgYXJlIHJlYWR5LXRvLXVzZSwgb3RoZXIgRW5kcG9pbnRzIGFyZSBnZW5lcmF0ZWQgYXMgYWJzdHJhY3QgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBpbXBsZW1lbnRlZAotIEdlbmVyYXRlICoqTW9kZWxzKiogYW5kIHZhbGlkYXRpb24gYmFzZWQgb24gT3BlbkFQSSBTY2hlbWEKLSBHZW5lcmF0ZSAqKkRhdGFiYXNlIFNjaGVtYSoqIGZyb20gT3BlbkFQSSBTY2hlbWEKLSBHZW5lcmF0ZXMgKipEYXRhYmFzZSBNaWdyYXRpb25zKiogZm9yIHNjaGVtYSBjaGFuZ2VzCi0gUHJvdmlkZSAqKkR1bW15IERhdGEqKiB2aWEgRmFrZXIgZm9yIGRldmVsb3BtZW50CgojIyBSZXF1aXJlbWVudHMKCi0gUEhQIDcuMSBvciBoaWdoZXIgKHdvcmtzIGZpbmUgd2l0aCBQSFAgOCkKCgojIyBJbnN0YWxsCgogICAgY29tcG9zZXIgcmVxdWlyZSBwaHAtb3BlbmFwaS95aWkyLW9wZW5hcGk6XjIuMEBiZXRhCgojIyBVc2FnZQoKWW91IGNhbiB1c2UgdGhpcyBwYWNrYWdlIGluIHlvdXIgZXhpc3RpbmcgYXBwbGljYXRpb24gb3Igc3RhcnQgYSBuZXcgcHJvamVjdCB1c2luZyB0aGUKW3lpaTItYXBwLWFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2NlYmUveWlpMi1hcHAtYXBpKSBhcHBsaWNhdGlvbiB0ZW1wbGF0ZS4KRm9yIHVzYWdlIG9mIHRoZSB0ZW1wbGF0ZSwgc2VlIGluc3RydWN0aW9ucyBpbiB0aGUgdGVtcGxhdGUgcmVwbyByZWFkbWUuCgpJbiB5b3VyIGV4aXN0aW5nIFlpaSBhcHBsaWNhdGlvbiBjb25maWcgKHdvcmtzIGZvciBjb25zb2xlIGFzIHdlbGwgYXMgd2ViKToKCmBgYHBocAo8P3BocAokY29uZmlnID0gWwogICAgLy8gLi4uIHRoaXMgaXMgeW91ciBhcHBsaWNhdGlvbiBjb25maWcgLi4uCl07CgppZiAoWUlJX0VOVl9ERVYpIHsKICAgIC8vIGVuYWJsZSBHaWkgbW9kdWxlCiAgICAkY29uZmlnWydib290c3RyYXAnXVtdID0gJ2dpaSc7CiAgICAkY29uZmlnWydtb2R1bGVzJ11bJ2dpaSddID0gWwogICAgICAgICdjbGFzcycgPT4gXHlpaVxnaWlcTW9kdWxlOjpjbGFzcywKICAgICAgICAnZ2VuZXJhdG9ycycgPT4gWwogICAgICAgICAgICAvLyBhZGQgQXBpR2VuZXJhdG9yIHRvIEdpaSBtb2R1bGUKICAgICAgICAgICAgJ2FwaScgPT4gXGNlYmVceWlpMm9wZW5hcGlcZ2VuZXJhdG9yXEFwaUdlbmVyYXRvcjo6Y2xhc3MsCgogICAgICAgICAgICAvLyAtLS0tLS0tLS0gT1IgLS0tLS0tLS0tCiAgICAgICAgICAgIC8vIHRvIGRpc2FibGUgZ2VuZXJhdGlvbiBvZiBtaWdyYXRpb25zIGZpbGVzIG9yIHdpdGggZGVmYXVsdCBjb25maWcgY2hhbmdlCiAgICAgICAgICAgICdhcGknID0+IFsKICAgICAgICAgICAgICAnY2xhc3MnID0+IFxjZWJlXHlpaTJvcGVuYXBpXGdlbmVyYXRvclxBcGlHZW5lcmF0b3I6OmNsYXNzLAogICAgICAgICAgICAgICdnZW5lcmF0ZU1pZ3JhdGlvbnMnID0+IGZhbHNlLCAjIHRoaXMgY29uZmlnIGNhbiBhbHNvIGJlIGFwcGxpZWQgaW4gQ0xJIGNvbW1hbmQKICAgICAgICAgICAgXSwKICAgICAgICBdLAogICAgXTsKfQoKcmV0dXJuICRjb25maWc7CmBgYAoKVG8gdXNlIHRoZSB3ZWIgZ2VuZXJhdG9yLCBvcGVuIGBpbmRleC5waHA/cj1naWlgIGFuZCBzZWxlY3QgdGhlIGBSRVNUIEFQSSBHZW5lcmF0b3JgLgoKT24gY29uc29sZSB5b3UgY2FuIHJ1biB0aGUgZ2VuZXJhdG9yIHdpdGggYC4veWlpIGdpaS9hcGkgLS1vcGVuQXBpUGF0aD1AYXBwL29wZW5hcGkueWFtbGAuIFdoZXJlIGBAYXBwL29wZW5hcGkueWFtbGAgc2hvdWxkIGJlIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHlvdXIgT3BlbkFQSSBzcGVjIGZpbGUuIFRoaXMgY2FuIGJlIEpTT04gYXMgd2VsbCBhcyBZQU1MIChzZWUgYWxzbyBbY2ViZS9waHAtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2NlYmUvcGhwLW9wZW5hcGkvKSBmb3Igc3VwcG9ydGVkIGZvcm1hdHMpLgoKUnVuIGAuL3lpaSBnaWkvYXBpIC0taGVscGAgZm9yIGFsbCBvcHRpb25zLiBFeGFtcGxlOiBEaXNhYmxlIGdlbmVyYXRpb24gb2YgbWlncmF0aW9ucyBmaWxlcyBgLi95aWkgZ2lpL2FwaSAtLWdlbmVyYXRlTWlncmF0aW9ucz0wYAoKU2VlIFtQZXRzdG9yZSBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vZXhhbXBsZXMvdjMuMC9wZXRzdG9yZS55YW1sKSBmb3IgZXhhbXBsZSBPcGVuQVBJIHNwZWMuCgoKIyMgT3BlbkFQSSBleHRlbnNpb25zCgpUaGlzIGxpYnJhcnkgdW5kZXJzdGFuZHMgdGhlIGZvbGxvd2luZyBleHRlbnNpb25zIHRvIHRoZSBPcGVuQVBJIHNwZWM6CgojIyMgYHgtZmFrZXJgCgpZb3UgbWF5IHNwZWNpZnkgY3VzdG9tIFBIUCBjb2RlIGZvciBnZW5lcmF0aW5nIGZha2UgZGF0YSBmb3IgYSBwcm9wZXJ0eToKCmBgYHlhbWwKICAgIFBvc3Q6CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgdGFnczoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBbJ29uZScsICd0d28nXQogICAgICAgICAgeC1mYWtlcjogIiRmYWtlci0+cmFuZG9tRWxlbWVudHMoWydvbmUnLCAndHdvJywgJ3RocmVlJywgJ2ZvdXInXSkiCmBgYAoKVG8gYXZvaWQgZ2VuZXJhdGluZyBmYWtlciBjb2RlIGZvciBwYXJ0aWN1bGFyIG1vZGVsIGF0dHJpYnV0ZSwgdXNlIHZhbHVlIGBmYWxzZWA6CgpgYGB5YW1sCiAgICBQb3N0OgogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGFnZToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHgtZmFrZXI6IGZhbHNlCmBgYAoKVXNpbmcgaW4gcmVmZXJlbmNlIHdpdGggYGFsbE9mYDoKCmBgYHlhbWwKICAgIEludm9pY2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlkCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCgogICAgT3JkZXI6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlkCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgaW52b2ljZToKICAgICAgICAgIGFsbE9mOgogICAgICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9JbnZvaWNlJwogICAgICAgICAgICAtIHgtZmFrZXI6IGZhbHNlCmBgYAoKIyMjIGB4LXRhYmxlYAoKU3BlY2lmeSB0aGUgdGFibGUgbmFtZSBmb3IgYSBTY2hlbWEgdGhhdCBkZWZpbmVzIGEgbW9kZWwgd2hpY2ggaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4KWW91IGNhbiBnZW5lcmF0ZSBub24tZGIgbW9kZWwgYmFzZWQgb24gXHlpaVxiYXNlXE1vZGVsIHdpdGhvdXQgbWlncmF0aW9ucyBieSBzZXR0aW5nIGB4LXRhYmxlOiBmYWxzZWAKCiMjIyBgeC1wa2AKCkV4cGxpY2l0bHkgc3BlY2lmeSBwcmltYXJ5IGtleSBuYW1lIGZvciB0YWJsZSwgaWYgaXQgaXMgZGlmZmVyZW50IGZyb20gImlkIiAKCmBgYHlhbWwKICAgIFBvc3Q6CiAgICAgIHgtdGFibGU6IHBvc3RzCiAgICAgIHgtcGs6IHVpZAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHVpZDoKICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgdGl0bGU6CiAgICAgICAgICAgdHlwZTogc3RyaW5nCmBgYAoKIyMjIGB4LWRiLXR5cGVgCgpFeHBsaWNpdGx5IHNwZWNpZnkgdGhlIGRhdGFiYXNlIHR5cGUgZm9yIGEgY29sdW1uLiAoTVVTVCBjb250YWluIG9ubHkgcmVhbCBEQiB0eXBlISAoYGpzb25gLCBganNvbmJgLCBgdXVpZGAsIGB2YXJjaGFyYCBldGMuKSkuCklmIGB4LWRiLXR5cGVgIGlzIHNldCB0byBgZmFsc2VgLCBwcm9wZXJ0eSB3aWxsIGJlIHByb2Nlc3NlZCBhcyB2aXJ0dWFsOwpJdCB3aWxsIGJlIGFkZGVkIGluIG1vZGVsIGFzIHB1YmxpYyBwcm9wZXJ0eSwgYnV0IHNraXBwZWQgZm9yIG1pZ3JhdGlvbnMgZ2VuZXJhdGlvbi4KCkV4YW1wbGUgdmFsdWVzIG9mIGB4LWRiLXR5cGVgIGFyZToKCiAtIGBmYWxzZWAgKGJvb2xlYW4gZmFsc2UpCiAtIGFzIHN0cmluZyBhbmQgaXRzIHZhbHVlIGNhbiBiZSBsaWtlOgogICAgIC0gdGV4dAogICAgIC0gdGV4dFtdCiAgICAgLSBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9fSU5DUkVNRU5UCiAgICAgLSBkZWNpbWFsKDEyLDQpCiAgICAgLSBqc29uCiAgICAgLSB2YXJjaGFyCiAgICAgLSBWQVJDSEFSCiAgICAgLSBTTUFMTElOVCBVTlNJR05FRCBaRVJPRklMTAogICAgIC0gTUVESVVNSU5UKDEwKSBVTlNJR05FRCBaRVJPRklMTCBDT01NRU5UICJjb21tZW50IiAobm90ZSB0aGUgZG91YmxlIHF1b3RlcyBoZXJlKQoKU3VjaCB2YWx1ZXMgYXJlIG5vdCBhbGxvd2VkOgogICAtIGBpbnQgbnVsbCBkZWZhdWx0IG51bGwgYWZ0ZXIgbG93X3ByaWNlYCAobnVsbCBhbmQgZGVmYXVsdCB3aWxsIGJlIGhhbmRsZWQgYnkgYG51bGxhYmxlYCBhbmQgYGRlZmF1bHRgIGtleXMgcmVzcGVjdGl2ZWx5KQogICAtIE1FRElVTUlOVCgxMCkgVU5TSUdORUQgWkVST0ZJTEwgTlVMTCBERUZBVUxUICc3JyBDT01NRU5UICdjb21tZW50JyBBRlRFUiBgc2V0aWAsIEFERCBJTkRFWCBgdGAgKGB3YCkKCklmIGBlbnVtYCBhbmQgYHgtZGItdHlwZWAgYm90aCBhcmUgcHJvdmlkZWQgdGhlbiBmb3IgZGF0YWJhc2UgY29sdW1uIHNjaGVtYSAobWlncmF0aW9ucyksIG9ubHkgYHgtZGItdHlwZWAgd2lsbCBiZSBjb25zaWRlcmVkIGlnbm9yaW5nIGBlbnVtYC4KCiMjIyBgeC1pbmRleGVzYAoKU3BlY2lmeSB0YWJsZSBpbmRleGVzCgpgYGB5YW1sCiAgICBQb3N0OgogICAgICB4LXRhYmxlOiBwb3N0cwogICAgICB4LWluZGV4ZXM6CiAgICAgICAgICAtICd2aXNpYmxlLHB1Ymxpc2hfZGF0ZScKICAgICAgICAgIC0gJ3VuaXF1ZTp0aXRsZScgI2ZvciB1bmlxdWUgYXR0cmlidXRlcyBhbHNvIHVuaXF1ZSB2YWxpZGF0aW9uIGNoZWNrIHdpbGwgYmUgYWRkZWQKICAgICAgICAgIC0gJ2dpc3Q6bWV0YWRhdGEnICNmb3IgcG9zdGdyZXMgd2lsbCBnZW5lcmF0ZSBpbmRleCB1c2luZyBHSVNUIGluZGV4IHR5cGUKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgeC1kYi10eXBlOiBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9fSU5DUkVNRU5UCiAgICAgICAgdGl0bGU6CiAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgdmlzaWJsZToKICAgICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgIHB1Ymxpc2hfZGF0ZToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIGZvcm1hdDogZGF0ZQogICAgICAgIG1ldGFkYXRhOgogICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgIHgtZGItdHlwZTogSlNPTgogICAgICAgICAgIGRlZmF1bHQ6ICd7fScgCmBgYAoKIyMjIGB4LWRiLWRlZmF1bHQtZXhwcmVzc2lvbmAKCkFiaWxpdHkgdG8gcHJvdmlkZSBkZWZhdWx0IHZhbHVlIGJ5IGRhdGFiYXNlIGV4cHJlc3Npb24KCmBgYHlhbWwKY3JlYXRlZF9hdDoKICByZWFkT25seTogdHJ1ZQogIHR5cGU6IHN0cmluZwogIGZvcm1hdDogZGF0ZXRpbWUKICB4LWRiLXR5cGU6IGRhdGV0aW1lCiAgbnVsbGFibGU6IGZhbHNlCiAgeC1kYi1kZWZhdWx0LWV4cHJlc3Npb246IGN1cnJlbnRfdGltZXN0YW1wKCkKYGBgCgpOb3RlOiBJZiBib3RoIGBkZWZhdWx0YCBhbmQgYHgtZGItZGVmYXVsdC1leHByZXNzaW9uYCBhcmUgcHJlc2VudCB0aGVuIGBkZWZhdWx0YCB3aWxsIGJlIGNvbnNpZGVyZWQuCgpgYGB5YW1sCmNyZWF0ZWRfYXQ6CiAgcmVhZE9ubHk6IHRydWUKICB0eXBlOiBzdHJpbmcKICBmb3JtYXQ6IGRhdGV0aW1lCiAgeC1kYi10eXBlOiBkYXRldGltZQogIG51bGxhYmxlOiBmYWxzZQogIHgtZGItZGVmYXVsdC1leHByZXNzaW9uOiBjdXJyZW50X3RpbWVzdGFtcCgpICMgdGhpcyB3aWxsIGJlIGlnbm9yZWQKICBkZWZhdWx0OiAiMjAxMS0xMS0xMSIgIyB0aGlzIHdpbGwgYmUgY29uc2lkZXJlZApgYGAKCkFsc28gc2VlOiBodHRwczovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi84LjAvZW4vZGF0YS10eXBlLWRlZmF1bHRzLmh0bWwKCiMjIyBgeC1may1vbi1kZWxldGVgCgpBbGxvdyB0byBzZXQgZm9yZWlnbiBrZXkgY29uc3RyYWludCBpbiBtaWdyYXRpb25zIGZvciBPTiBERUxFVEUgZXZlbnQgb2Ygcm93IGluIGRhdGFiYXNlIHRhYmxlLiBFeGFtcGxlOgoKYGBgeWFtbAogIGNvbXBvbmVudHM6CiAgICBzY2hlbWFzOgogICAgICBVc2VyOgogICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgIGRlc2NyaXB0aW9uOiB4IG9uLXggKHVwZGF0ZXxkZWxldGUpIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQKICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgaWQ6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG5hbWU6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICBQb3N0OgogICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgIGRlc2NyaXB0aW9uOiB4IG9uLXggKHVwZGF0ZXxkZWxldGUpIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQKICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgaWQ6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHRpdGxlOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHVzZXI6CiAgICAgICAgICAgIGFsbE9mOgogICAgICAgICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCiAgICAgICAgICAgICAgLSB4LWZrLW9uLXVwZGF0ZTogQ0FTQ0FERQogICAgICAgICAgdXNlcl8yOgogICAgICAgICAgICBhbGxPZjoKICAgICAgICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyJwogICAgICAgICAgICAgIC0geC1may1vbi11cGRhdGU6IENBU0NBREUKICAgICAgICAgICAgICAtIHgtZmstb24tZGVsZXRlOiBTRVQgTlVMTAogICAgICAgICAgdXNlcl8zOgogICAgICAgICAgICBhbGxPZjoKICAgICAgICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyJwogICAgICAgICAgICAgIC0geC1may1vbi1kZWxldGU6IFNFVCBOVUxMCiAgICAgICAgICB1c2VyXzQ6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyJyAjIHdpdGhvdXQgYW55IGNvbnN0cmFpbnRzCmBgYAoKIyMjIGB4LWZrLW9uLXVwZGF0ZWAKCkFsbG93IHRvIHNldCBmb3JlaWduIGtleSBjb25zdHJhaW50IGluIG1pZ3JhdGlvbnMgZm9yIE9OIFVQREFURSBldmVudCBvZiByb3cgaW4gZGF0YWJhc2UgdGFibGUuIEZvciBleGFtcGxlLCBzZWUgYWJvdmUgc2VjdGlvbiBmb3IgYHgtZmstb24tZGVsZXRlYC4KCiMjIyBgeC1may1jb2x1bW4tbmFtZWAKClByb3ZpZGUgY3VzdG9tIGRhdGFiYXNlIHRhYmxlIGNvbHVtbiBuYW1lIGluIGNhc2Ugb2YgcmVsYXRpb25zaGlwIGNvbHVtbi4gVGhpcyB3aWxsIG5vdCByZWZsZWN0IGluIG1vZGVscyByZWxhdGlvbnMsIGZha2VyIGV0Yy4gRXhhbXBsZToKCmBgYHlhbWwKICBjb21wb25lbnRzOgogICAgc2NoZW1hczoKICAgICAgV2ViaG9vazoKICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBkZXNjcmlwdGlvbjogZXhhbXBsZSBmb3IgeC1may1jb2x1bW4tbmFtZQogICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICBpZDoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbmFtZToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB1c2VyOgogICAgICAgICAgICAkcmVmOiAnLi4vb3BlbmFwaS55YW1sIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlcicgIyB0aGlzIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYHVzZXJfaWRgIGNvbHVtbgogICAgICAgICAgcmVkZWxpdmVyeV9vZjoKICAgICAgICAgICAgYWxsT2Y6CiAgICAgICAgICAgICAgLSAkcmVmOiAnLi4vb3BlbmFwaS55YW1sIy9jb21wb25lbnRzL3NjaGVtYXMvRGVsaXZlcnknCiAgICAgICAgICAgICAgIyB0aGlzIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYHJlZGVsaXZlcnlfb2ZfaWRgIGNvbHVtbiwgYnV0IHRvIGF2b2lkIHRoYXQgdXNlIGJlbG93IGV4dGVuc2lvbgogICAgICAgICAgICAgIC0geC1may1jb2x1bW4tbmFtZTogcmVkZWxpdmVyeV9vZiAjIHRoaXMgd2lsbCBjcmVhdGUgYHJlZGVsaXZlcnlfb2ZgIGNvbHVtbiBpbnN0ZWFkIG9mIGByZWRlbGl2ZXJ5X29mX2lkYApgYGAKCiMjIE1hbnktdG8tTWFueSByZWxhdGlvbiBkZWZpbml0aW9uCgpUaGVyZSBhcmUgdHdvIHdheXMgZm9yIGRlZmluZSBtYW55LXRvLW1hbnkgcmVsYXRpb25zOgoKIyMjIFNpbXBsZSBtYW55LXRvLW1hbnkgd2l0aG91dCBqdW5jdGlvbiBtb2RlbAoKICAgLSBwcm9wZXJ0eSBuYW1lIGZvciBtYW55LXRvLW1hbnkgcmVsYXRpb24gc2hvdWxkIGJlIGVxdWFsIGxvd2VyLWNhc2VkLCBwbHVyYWxpemVkIHJlbGF0ZWQgc2NoZW1hIG5hbWUKICAgICAKICAgLSByZWZlcmVuY2VkIHNjaGVtYSBzaG91bGQgY29udGFpbnMgbWlycm9yZWQgcmVmZXJlbmNlIHRvIGN1cnJlbnQgc2NoZW1hCiAgICAgCiAgIC0gbWlncmF0aW9uIGZvciBqdW5jdGlvbiB0YWJsZSBjYW4gYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgLSB0YWJsZSBuYW1lIHNob3VsZCBiZSBbcGx1cmFsaXplZCwgbG93ZXItY2FzZWQKIHNjaGVtYV9uYW1lMV0yW3BsdXJhbGl6ZWQsIGxvd2VyLWNhc2VkIHNjaGVtYSBuYW1lMl0sIGluIGFscGhhYmV0aWNhbCBvcmRlcjsKIEZvciBleGFtcGxlLCBmb3Igc2NoZW1hcyBQb3N0IGFuZCBUYWcgLSB0YWJsZSBzaG91bGQgYmUgcG9zdHMydGFncywgZm9yIHNjaGVtYXMgUG9zdCBhbmQgQXR0YWNoZW1lbnQgLSB0YWJsZSBzaG91bGQKICBiZSBhdHRhY2htZW50czJwb3N0cwogIApgYGAKUG9zdDoKICBwcm9wZXJ0aWVzOgogIC4uLgogICAgdGFnczoKICAgICAgdHlwZTogYXJyYXkKICAgICAgaXRlbXM6CiAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RhZycKClRhZzoKICBwcm9wZXJ0aWVzOgogIC4uLgogICAgcG9zdHM6CiAgICAgIHR5cGU6IGFycmF5CiAgICAgIGl0ZW1zOgogICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Qb3N0JwpgYGAKICAKIyMjIE1hbnktdG8tbWFueSB3aXRoIGp1bmN0aW9uIG1vZGVsCgpUaGlzIHdheSBhbGxvd2VkIGNyZWF0aW5nIG11bHRpcGxlIG1hbnktdG8tbWFueSByZWxhdGlvbnMgYmV0d2VlbiB0byBtb2RlbHMgCgotIGRlZmluZSBqdW5jdGlvbiBzY2hlbWEgd2l0aCBhbGwgbmVjZXNzYXJ5IGF0dHJpYnV0ZXMuIFRoZXJlIGFyZSBvbmx5IG9uZSBpbXBvcnRhbnQgcmVxdWlyZW1lbnQgLSB0aGUganVuY3Rpb24KIHNjaGVtYSBuYW1lCiBtdXN0IGJlIHN0YXJ0ZWQgd2l0aCBwcmVmaXggJ2p1bmN0aW9uXycgKFRoaXMgcHJlZml4IHdpbGwgYmUgdXNlZCBpbnRlcm5hbGx5IG9ubHkgYW5kCiB3aWxsIGJlIHRyaW1tZWQgYmVmb3JlIHRhYmxlIGFuZCBtb2RlbCBnZW5lcmF0aW9uKQogCmBgYAojIE1vZGVsIFRlYW1NZW1iZXJzIHdpdGggdGFibGUgdGVhbV9tZW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIHdpdGggY29sdW1ucyB0ZWFtX2lkLCB1c2VyX2lkIGFuZCByb2xlCmp1bmN0aW9uX1RlYW1NZW1iZXJzOgogICB0ZWFtOgogICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVGVhbScKICAgdXNlcjoKICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCiAgIHJvbGU6CiAgICAgdHlwZTogc3RyaW5nCmBgYAotIEJvdGggbWFueS10by1tYW55IHJlbGF0ZWQgc2NoZW1hcyBtdXN0IGhhdmUgcHJvcGVydGllcyB3aXRoIHJlZmVyZW5jZSB0byAianVuY3Rpb25fKiIgc2NoZW1hLiBUaGVzZSBwcm9wZXJ0aWVzIHdpbGwgYmUKIHVzZWQgYXMgcmVsYXRpb24gbmFtZXMgCgpgYGAKVGVhbToKICBwcm9wZXJ0aWVzOgogIC4uLgogICAgIHRlYW1fbWVtYmVyczoKICAgICAgIHR5cGU6IGFycmF5CiAgICAgICBpdGVtczoKICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL2p1bmN0aW9uX1RlYW1NZW1iZXJzJwoKVXNlcjoKICBwcm9wZXJ0aWVzOgogIC4uLgogICAgbWVtYmVyc2hpcHM6ICNZb3UgYWJzb2x1dGVseSBmcmVlIHdpdGggbmFtaW5nIGZvciByZWxhdGlvbnNoaXAgYXR0cmlidXRlcwogICAgICB0eXBlOiBhcnJheQogICAgICBpdGVtczoKICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvanVuY3Rpb25fVGVhbU1lbWJlcnMnCmBgYAogIAogLSBzZWUgYm90aCBleGFtcGxlcyBoZXJlIFt0ZXN0cy9zcGVjcy9tYW55Mm1hbnkueWFtbF0odGVzdHMvc3BlY3MvbWFueTJtYW55LnlhbWwpCiAKCiMjIEhhbmRsaW5nIG9mIGBOT1QgTlVMTGAgY29uc3RyYWludHMKCmBOT1QgTlVMTGAgaW4gREIgbWlncmF0aW9ucyBpcyBkZXRlcm1pbmVkIGJ5IGBudWxsYWJsZWAgYW5kIGByZXF1aXJlZGAgcHJvcGVydGllcyBvZiB0aGUgT3BlbkFQSSBzY2hlbWEuCmUuZy4gYXR0cmlidXRlID0gJ215X3Byb3BlcnR5Jy4KCi0gSWYgeW91IGRlZmluZSBhdHRyaWJ1dGUgbmVpdGhlciAicmVxdWlyZWQiIG5vciB2aWEgIm51bGxhYmxlIiwgdGhlbiBpdCBpcyBieSBkZWZhdWx0IGBOVUxMYDoKCmBgYHlhbWwKICBFeGFtcGxlU2NoZW1hOgogICAgcHJvcGVydGllczoKICAgICAgbXlfcHJvcGVydHk6CiAgICAgICAgdHlwZTogc3RyaW5nCmBgYAoKLSBJZiB5b3UgZGVmaW5lIGF0dHJpYnV0ZSBpbiAicmVxdWlyZWQiLCB0aGVuIGl0IGlzIGBOT1QgTlVMTGAKCmBgYHlhbWwKICBFeGFtcGxlU2NoZW1hOgogICAgcmVxdWlyZWQ6CiAgICAgLSBteV9wcm9wZXJ0eQogICAgcHJvcGVydGllczoKICAgICAgbXlfcHJvcGVydHk6CiAgICAgICAgdHlwZTogc3RyaW5nCmBgYAoKLSBJZiB5b3UgZGVmaW5lIGF0dHJpYnV0ZSB2aWEgIm51bGxhYmxlIiwgdGhlbiBpdCBvdmVycmlkZXMgInJlcXVpcmVkIiwgZS5nLiBhbGxvdyBgTlVMTGAgaW4gdGhpcyBjYXNlOgoKYGBgeWFtbAogIEV4YW1wbGVTY2hlbWE6CiAgICByZXF1aXJlZDoKICAgICAgLSBteV9wcm9wZXJ0eQogICAgcHJvcGVydGllczoKICAgICAgbXlfcHJvcGVydHk6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgbnVsbGFibGU6IHRydWUKYGBgCgotIElmIHlvdSBkZWZpbmUgYXR0cmlidXRlIHZpYSAibnVsbGFibGUiLCB0aGVuIGl0IG92ZXJyaWRlcyAicmVxdWlyZWQiLCBlLmcuIGBOT1QgTlVMTGAgaW4gdGhpcyBjYXNlOgoKYGBgeWFtbAogIHRlc3RfdGFibGU6CiAgICByZXF1aXJlZDoKICAgIHByb3BlcnRpZXM6CiAgICAgIG15X3Byb3BlcnR5OgogICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG51bGxhYmxlOiBmYWxzZQpgYGAKCiMjIEhhbmRsaW5nIG9mIGBlbnVtYCAoI2VudW0pCkl0IHdvcmtzIG9uIGFsbCAzIERCOiBNeVNRTCwgTWFyaWFEYiBhbmQgUGdTUUwuCgogYGBgeWFtbAogIHRlc3RfdGFibGU6CiAgICBwcm9wZXJ0aWVzOgogICAgICBteV9wcm9wZXJ0eToKICAgICAgICBlbnVtOgogICAgICAgICAgLSBvbmUKICAgICAgICAgIC0gdHdvCiAgICAgICAgICAtIHRocmVlCmBgYAoKTm90ZTogQ2hhbmdlcyBpbiBlbnVtIHZhbHVlcyBhcmUgbm90IHZlcnkgc2ltcGxlLiBGb3IgTXlzcWwgYW5kIE1hcmlhZGIsIG1pZ3JhdGlvbnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnV0IGluIG1hbnkgY2FzZXMgY3VzdG9tIG1vZGlmaWNhdGlvbiBpbiBpdCBhcmUgcmVxdWlyZWQuIEZvciBQZ3NxbCBtaWdyYXRpb25zIGZvciBjaGFuZ2UgaW4gZW51bSB2YWx1ZXMgd2lsbCBub3QgYmUgZ2VuZXJhdGVkLiBJdCBzaG91bGQgYmUgaGFuZGxlZCBtYW51YWxseS4KCkl0IHdpbGwgYmUgaWdub3JlZCBmb3IgZGF0YWJhc2UgY29sdW1uIHNjaGVtYSAobWlncmF0aW9ucykgaWYgYHgtZGItdHlwZWAgaXMgcHJvdmlkZWQuCgojIyBIYW5kbGluZyBvZiBgbnVtZXJpY2AgKCNudW1lcmljLCAjTWFyaWFEYikKCnByZWNpc2lvbi1kZWZhdWx0ID0gMTAKc2NhbGUtZGVmYXVsdCA9IDIKCi0gWW91IGNhbiBkZWZpbmUgYXR0cmlidXRlIGxpa2UgIm51bWVyaWMocHJlY2lzaW9uLHNjYWxlKSI6CiBgYGB5YW1sCiAgdGVzdF90YWJsZToKICAgIHByb3BlcnRpZXM6CiAgICAgIG15X3Byb3BlcnR5OgogICAgICAgIHgtZGItdHlwZTogZGVjaW1hbCgxMiw0KQpgYGAKREItUmVzdWx0ID0gZGVjaW1hbCgxMiw0KQoKLSBZb3UgY2FuIGRlZmluZSBhdHRyaWJ1dGUgbGlrZSAibnVtZXJpYyhwcmVjaXNpb24pIiB3aXRoIGRlZmF1bHQgc2NhbGUtZGVmYXVsdCA9IDI6CiBgYGB5YW1sCiAgdGVzdF90YWJsZToKICAgIHByb3BlcnRpZXM6CiAgICAgIG15X3Byb3BlcnR5OgogICAgICAgIHgtZGItdHlwZTogZGVjaW1hbCgxMikKYGBgCkRCLVJlc3VsdCA9IGRlY2ltYWwoMTIsMikKCi0gWW91IGNhbiBkZWZpbmUgYXR0cmlidXRlIGxpa2UgIm51bWVyaWMiIHdpdGggcHJlY2lzaW9uLWRlZmF1bHQgPSAxMCBhbmQgc2NhbGUtZGVmYXVsdCA9IDI6CiBgYGB5YW1sCiAgdGVzdF90YWJsZToKICAgIHByb3BlcnRpZXM6CiAgICAgIG15X3Byb3BlcnR5OgogICAgICAgIHgtZGItdHlwZTogZGVjaW1hbApgYGAKREItUmVzdWx0ID0gZGVjaW1hbCgxMCwyKQoKIyMgSGFuZGxpbmcgb2YgYHRpbWVzdGFtcGAgZGF0YWJhc2UgY29sdW1uIGRhdGEgdHlwZQoKSWYgZmllbGQgaXMgZGVmaW5lZCBhcwoKYGBgeWFtbApjcmVhdGVkX2F0OgogICAgdHlwZTogc3RyaW5nCiAgICBmb3JtYXQ6IGRhdGUtdGltZSAjIG9yIGRhdGV0aW1lCiAgICBleGFtcGxlOiAnMjAyMC0wMy0xNFQyMTo0MjoxN1onCiAgICByZWFkT25seTogdHJ1ZQpgYGAKCnRoZW4gZGF0YWJhc2UgdHlwZSBzZWxlY3RlZCB3aWxsIGJlIGB0aW1lc3RhbXBgLiBUaGlzIGlzIGJ5IGRlc2lnbi4gSWYgYGRhdGV0aW1lYCBkYXRhIHR5cGUgaXMgbmVlZGVkLCB1c2UgYHgtZGItdHlwZWAgYXMKCmBgYHlhbWwKY3JlYXRlZF9hdDoKICAgIHR5cGU6IHN0cmluZwogICAgZm9ybWF0OiBkYXRlLXRpbWUgIyBvciBkYXRldGltZQogICAgZXhhbXBsZTogJzIwMjAtMDMtMTRUMjE6NDI6MTdaJwogICAgeC1kYi10eXBlOiBkYXRldGltZQogICAgcmVhZE9ubHk6IHRydWUKYGBgCgojIyBBc3N1bXB0aW9ucwoKV2hlbiBnZW5lcmF0aW5nIGNvZGUgZnJvbSBhbiBPcGVuQVBJIGRlc2NyaXB0aW9uIHRoZXJlIGFyZSBtYW55IHBvc3NpYmxlIHdheXMgdG8gYWNoaXZlIGEgZml0dGluZyByZXN1bHQuClRodXMgdGhlcmUgYXJlIHNvbWUgYXNzdW1wdGlvbnMgYW5kIGxpbWl0YXRpb25zIHRoYXQgYXJlIGN1cnJlbnRseSBhcHBsaWVkIHRvIG1ha2UgdGhpcyB3b3JrLgpIZXJlIGlzIGEgKHBvc3NpYmx5IGluY29tcGxldGUpIGxpc3Q6CgotIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHdvcmtzIGJlc3Qgd2l0aCBPcGVuQVBJIGRlc2NyaXB0aW9uIHRoYXQgZm9sbG93cyB0aGUgW0pTT046QVBJXShodHRwczovL2pzb25hcGkub3JnLykgZ3VpZGVsaW5lcy4KICAtIFRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBmb3JtYXQvc2NoZW1hIGlzIGN1cnJlbnRseSBub3QgZXh0cmFjdGVkIGZyb20gT3BlbkFQSSBzY2hlbWEgYW5kIG1heSBuZWVkIHRvIGJlIGFkanVzdGVkIG1hbnVhbGx5IGlmIGl0IGRvZXMgbm90IGZvbGxvdyBKU09OOkFQSQotIGNvbHVtbi9maWVsZC9wcm9wZXJ0eSB3aXRoIG5hbWUgYGlkYCBpcyBjb25zaWRlcmVkIGFzIFByaW1hcnkgS2V5IGJ5IHRoaXMgbGlicmFyeSBhbmQgaXQgaXMgYXV0b21hdGljYWxseSBoYW5kbGVkIGJ5IERCL1lpaTsgc28gcmVtb3ZlIGl0IGZyb20gdmFsaWRhdGlvbiBgcnVsZXMoKWAKICAtIG90aGVyIGZpZWxkcyBjYW4gY3VycmVudGx5IGJlIHVzZWQgYXMgcHJpbWFyeSBrZXlzIHVzaW5nIHRoZSBgeC1wa2AgT3BlbkFQSSBleHRlbnNpb24gKHNlZSBiZWxvdykgYnV0IGl0IG1heSBub3QgYmUgd29yayBjb3JyZWN0bHkgaW4gYWxsIGNhc2VzLCBwbGVhc2UgcmVwb3J0IGJ1Z3MgaWYgeW91IGZpbmQgdGhlbS4KCk90aGVyIHRoaW5ncyB0byBrZWVwIGluIG1pbmQ6CgojIyMgQWRkaW5nIGNvbHVtbnMgdG8gZXhpc3RpbmcgdGFibGVzCgpXaGVuIGFkZGluZyBuZXcgZmllbGRzIGluIHRoZSBBUEkgbW9kZWxzLCBuZXcgbWlncmF0aW9ucyB3aWxsIGJlIGdlbmVyYXRlZCB0byBhZGQgdGhlc2UgZmllbGRzIHRvIHRoZSB0YWJsZS4KRm9yIGEgcHJvamVjdCB0aGF0IGlzIGFscmVhZHkgaW4gcHJvZHVjdGlvbiwgaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgdG8gYWRqdXN0IHRoZSBnZW5lcmF0ZWQgbWlncmF0aW9uIHRvIGFkZCBkZWZhdWx0CnZhbHVlcyBmb3IgZXhpc3RpbmcgZGF0YSByZWNvcmRzLgoKT25lIGNhc2Ugd2hlcmUgdGhpcyBpcyBpbXBvcnRhbnQgaXMgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IGNvbHVtbiB3aXRoIGBOT1QgTlVMTGAgY29udHJhaW50LCB3aGljaCBkb2VzIG5vdCBwcm92aWRlIGEgZGVmYXVsdCB2YWx1ZS4KU3VjaCBhIG1pZ3JhdGlvbiB3aWxsIGZhaWwgd2hlbiB0aGUgdGFibGUgaXMgbm90IGVtcHR5OgoKYGBgcGhwCiR0aGlzLT5hZGRDb2x1bW4oJ3t7JWNvbXBhbnl9fScsICduYW1lJywgJHRoaXMtPnN0cmluZygxMjgpLT5ub3ROdWxsKCkpOwpgYGAKCkZhaWxzIG9uIGEgUG9zdGdyZVNRTCBkYXRhYmFzZSB3aXRoCgo+IGFkZCBjb2x1bW4gbmFtZSBzdHJpbmcoMTI4KSBOT1QgTlVMTCB0byB0YWJsZSB7eyVjb21wYW55fX0gLi4uRXhjZXB0aW9uOiBTUUxTVEFURVsyMzUwMl06IE5vdCBudWxsIHZpb2xhdGlvbjogNyBFUlJPUjogIGNvbHVtbiAibmFtZSIgY29udGFpbnMgbnVsbCB2YWx1ZXMKClRoZSBzb2x1dGlvbiB3b3VsZCBiZSB0byBjcmVhdGUgdGhlIGNvbHVtbiwgYWxsb3dpbmcgTlVMTCwgc2V0IHRoZSB2YWx1ZSB0byBhIGRlZmF1bHQgYW5kIGFkZCB0aGUgbnVsbCBjb25zdHJhaW50IGxhdGVyLgoKYGBgcGhwCiR0aGlzLT5hZGRDb2x1bW4oJ3t7JWNvbXBhbnl9fScsICduYW1lJywgJHRoaXMtPnN0cmluZygxMjgpLT5udWxsKCkpOwokdGhpcy0+dXBkYXRlKCd7eyVjb21wYW55fX0nLCBbJ25hbWUnID0+ICdObyBuYW1lJ10pOwokdGhpcy0+YWx0ZXJDb2x1bW4oJ3t7JWNvbXBhbnl9fScsICduYW1lJywgJHRoaXMtPnN0cmluZygxMjgpLT5ub3ROdWxsKCkpOwpgYGAKCiMjIFNjcmVlbnNob3RzCgpHaWkgR2VuZXJhdG9yIEZvcm06CgohW0dpaSBHZW5lcmF0b3IgRm9ybV0oZG9jL3NjcmVlbnNob3QtZm9ybS5wbmcpCgpHZW5lcmF0ZWQgZmlsZXM6CgohW0dpaSBHZW5lcmF0ZWQgRmlsZXNdKGRvYy9zY3JlZW5zaG90LWZpbGVzLnBuZykKCgojIERldmVsb3BtZW50CgpUbyBjb250cmlidXRlIG9yIHBsYXkgYXJvdW5kLCBzdGVwcyB0byBzZXQgdXAgdGhpcyBwcm9qZWN0IHVwIGxvY2FsbHkgYXJlIGluIFtDT05UUklCVVRJTkcubWRdKC4vQ09OVFJJQlVUSU5HLm1kKS4KCgojIFN1cHBvcnQKCioqTmVlZCBoZWxwIHdpdGggeW91ciBBUEkgcHJvamVjdD8qKgoKUHJvZmVzc2lvbmFsIHN1cHBvcnQsIGNvbnN1bHRpbmcgYXMgd2VsbCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCBzZXJ2aWNlcyBhcmUgYXZhaWxhYmxlOgoKaHR0cHM6Ly93d3cuY2ViZS5jYy9lbi9jb250YWN0CgpEZXZlbG9wbWVudCBvZiB0aGlzIGxpYnJhcnkgaXMgc3BvbnNvcmVkIGJ5IFtjZWJlLjpjbG91ZDogIllvdXIgUHJvZmVzc2lvbmFsIERlcGxveW1lbnQgUGxhdGZvcm0iXShodHRwczovL2NlYmUuY2xvdWQpLgo= readmeEtag: '"f488dc2f1263f780818dd46f0c1631c496339331"' readmeLastModified: Tue, 04 Jun 2024 15:27:09 GMT repositoryId: 154310166 description: REST API application generator for Yii2, openapi 3.0 YAML -> Yii2 created: '2018-10-23T10:39:18Z' updated: '2024-07-16T20:11:58Z' language: PHP archived: true stars: 131 watchers: 10 forks: 21 owner: cebe logo: https://avatars.githubusercontent.com/u/189796?v=4 license: MIT repoEtag: '"bf1d95a7414beac0e9e933ac41ab632f61255b247b841d3f3e6294fe68a7404e"' repoLastModified: Tue, 16 Jul 2024 20:11:58 GMT foundInMaster: true category: Parsers id: 17efb27f7e36f9a426c34f2a74c84a78 - source: openapi3 tags repository: https://github.com/netwo-io/apistos v3: true id: 644bd457afd213be930b970bd9f35da0 repositoryMetadata: base64Readme: >- IyBBcGlzdG9zICZlbXNwOyBbIVtEb2N1bWVudGF0aW9uXV1bZG9jcy5yc10gWyFbTGF0ZXN0IFZlcnNpb25dXVtjcmF0ZXMuaW9dIFshW0J1aWxkIFN0YXR1c11dW2J1aWxkXSBbIVtEZXBzIFN0YXR1c11dW2RlcHMucnNdCgpbZG9jcy5yc106IGh0dHBzOi8vZG9jcy5ycy9hcGlzdG9zLwoKW2NyYXRlcy5pb106IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9hcGlzdG9zCgpbYnVpbGRdOiBodHRwczovL2dpdGh1Yi5jb20vbmV0d28taW8vYXBpc3Rvcy9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55YW1sP2JyYW5jaD1tYWluCgpbRG9jdW1lbnRhdGlvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9jc3JzL2FwaXN0b3MKCltMYXRlc3QgVmVyc2lvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvYXBpc3Rvcy5zdmcKCltCdWlsZCBTdGF0dXNdOiBodHRwczovL2dpdGh1Yi5jb20vbmV0d28taW8vYXBpc3Rvcy9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55YW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbgoKW2RlcHMucnNdOiBodHRwczovL2RlcHMucnMvY3JhdGUvYXBpc3RvcwoKW0RlcHMgU3RhdHVzXTogaHR0cHM6Ly9kZXBzLnJzL2NyYXRlL2FwaXN0b3MvbGF0ZXN0L3N0YXR1cy5zdmcKCltPQVN2My5tZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZAoKQW4gT3BlbkFQSSBkb2N1bWVudGF0aW9uIHRvb2wgZXhwb3NpbmcgW09BUyAzLjBdW09BU3YzLm1kXSBtb2RlbHMgYXMgd2VsbCBhcyBhbiBhY3RpeC13ZWIgd3JhcHBlciBzaW1pbGFyCnRvIFtwYXBlcmNsaXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYXBlcmNsaXAtcnMvcGFwZXJjbGlwKS4KCioqQXBpc3RvcyoqIGlzIGNvbXBvc2VkIG9mIHRoZXNlIGNyYXRlczoKCi0gW2BhcGlzdG9zYF0oLi9hcGlzdG9zKTogW2FjdGl4LXdlYl0oaHR0cHM6Ly9naXRodWIuY29tL2FjdGl4L2FjdGl4LXdlYikgd3JhcHBlciB0byBnZW5lcmF0ZSBhbiBPcGVuQVBJIHYzLjAuMwogIGRvY3VtZW50YXRpb24gZmlsZQotIFtgYXBpc3Rvcy1jb3JlYF0oLi9hcGlzdG9zLWNvcmUpOiBBIHNldCBvZiB0cmFpdHMgYW5kIGNvbW1vbiBtb2RlbHMgYXJvdW5kIFtPcGVuQVBJIHYzLjAuM11bT0FTdjMubWRdCi0gW2BhcGlzdG9zLWdlbmBdKC4vYXBpc3Rvcy1nZW4pOiBtYWNybyB1dGlsaXRpZXMgdG8gZ2VuZXJhdGUgW09wZW5BUEkgdjMuMC4zXVtPQVN2My5tZF0gZG9jdW1lbnRhdGlvbiBmcm9tIFJ1c3QgbW9kZWxzCi0gW2BhcGlzdG9zLW1vZGVsc2BdKC4vYXBpc3Rvcy1tb2RlbHMpOiBbT3BlbkFQSSB2My4wLjNdW09BU3YzLm1kXSBtb2RlbHMKICB3aXRoIFtgU2NoZW1hYF0oaHR0cHM6Ly9kb2NzLnJzL3NjaGVtYXJzL2xhdGVzdC9zY2hlbWFycy9zY2hlbWEvZW51bS5TY2hlbWEuaHRtbCkgYmFzZWQKICBvbiBbc2NoZW1hcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9HUkVzYXUvc2NoZW1hcnMpIGRlZmluaXRpb24KLSBbYGFwaXN0b3MtcGx1Z2luc2BdKC4vYXBpc3Rvcy1wbHVnaW5zKTogdHJhaXRzIGFuZCB1dGlsaXRpZXMgdG8gZXh0ZW5kIGFwaXN0b3MKLSBbYGFwaXN0b3MtcmFwaWRvY2BdKC4vYXBpc3Rvcy1yYXBpZG9jKTogYnJpZGdlIGJldHdlZW4gQXBpc3RvcyBhbmQgW1JhcGlEb2NdKGh0dHBzOi8vcmFwaWRvY3dlYi5jb20vKSBmb3IgYWN0aXguCi0gW2BhcGlzdG9zLXBsdWdpbnNgXSguL2FwaXN0b3MtcmVkb2MpOiBicmlkZ2UgYmV0d2VlbiBBcGlzdG9zIGFuZCBbUmVkb2NdKGh0dHBzOi8vcmVkb2NseS5jb20vcmVkb2MvKSBmb3IgYWN0aXguCi0gW2BhcGlzdG9zLXNjYWxhcmBdKC4vYXBpc3Rvcy1zY2FsYXIpOiBicmlkZ2UgYmV0d2VlbiBBcGlzdG9zIGFuZCBbU2NhbGFyXShodHRwczovL3NjYWxhci5jb20vKSBmb3IgYWN0aXguCi0gW2BhcGlzdG9zLXNodXR0bGVgXSguL2FwaXN0b3Mtc2h1dHRsZSk6IGFsbG93cyB5b3UgdG8gcnVuIGFuIGFjdGl4LXdlYiBzZXJ2ZXIgZG9jdW1lbnRlZCB3aXRoIEFwaXN0b3MKICBvbiBbU2h1dHRsZV0oaHR0cHM6Ly93d3cuc2h1dHRsZS5ycy8pLgotIFtgYXBpc3Rvcy1zd2FnZ2VyLXVpYF0oLi9hcGlzdG9zLXN3YWdnZXItdWkpOiBicmlkZ2UgYmV0d2VlbiBBcGlzdG9zCiAgYW5kIFtTd2FnZ2VyIFVJXShodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci11aS8pIGZvciBhY3RpeAoKQ2hlY2sgb3V0IG91ciBbZXhhbXBsZSBwcm9qZWN0XShleGFtcGxlcy9wZXRzdG9yZSkuCgojIyMgV2hhdCBkb2VzIEFwaXN0b3MgbWVhbnMKCkFwaXN0b3MgKHByb25vdW5jZWQgKipfL2EucC5pLnN0b3MvXyoqKSBpcyBhIHdvcmQgcGxheSBiZXR3ZWVuIEjDqXBoYcOvc3RvcyAo4bytz4bOsc65z4PPhM6/z4IsIGdyZWMgZ29kIG9mIGJsYWNrc21pdGhzLApjYXJwZW50ZXJzLCBjcmFmdHNtZW4sIG1ldGFsbHVyZ3kgLi4uIHdoaWNoIGNhbiBhbHNvIGJlIGNvbnNpZGVyZWQgYnkgc29tZSBhcyB0aGUgZ29kIG9mIHRlY2hub2xvZ3kpIGFuZCBBUEkgKHByb25vdW5jZWQKKipfL2EucC5pL18qKiBpbiBGcmVuY2gpLgoKIyMgQXBpc3RvcwoKLSBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQotIFtVc2FnZSBleGFtcGxlXSgjdXNhZ2UtZXhhbXBsZSkKLSBbRmVhdHVyZSBmbGFnc10oI2ZlYXR1cmUtZmxhZ3MpCi0gW0FsdGVybmF0aXZlc10oI2FsdGVybmF0aXZlcykKLSBbQWJvdXQgdXNdKCNhYm91dC11cykKCiMjIyBJbnN0YWxsYXRpb24KCmBgYHRvbWwKW2RlcGVuZGVuY2llc10KI3NjaGVtYXJzID0gIjAuOCIKIyBzYWRseSB3ZSBjdXJyZW50bHkgcmVseSBvbiBhIGZvcmsgdG8gZml4IG11bHRpcGxlIGZsYXR0ZW4gZm9yIGVudW1zLCByZWxhdGVkIFBSIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vR1JFc2F1L3NjaGVtYXJzL3B1bGwvMjY0CnNjaGVtYXJzID0geyBwYWNrYWdlID0gImFwaXN0b3Mtc2NoZW1hcnMiLCB2ZXJzaW9uID0gIjAuOCIgfQphcGlzdG9zID0gIjAuMyIKYGBgCgojIyMgVXNhZ2UgZXhhbXBsZQoKV3JhcCB5b3VyIHJlZ3VsYXIgYWN0aXgtd2ViIGFwcCB1c2luZyBhcGlzdG9zIHR5cGVzLgoKTW9zdCBvZiB0aGVzZSB0eXBlcyBhcmUgZHJvcC1pbiB0eXBlcyBmb3IgYWN0aXgtd2ViIG9uZSdzLgoKYGBgcnVzdAp1c2Ugc3RkOjpmbXQ6OkRpc3BsYXk7CnVzZSBhY3RpeF93ZWI6OntBcHAsIEh0dHBTZXJ2ZXIsIFJlc3BvbnNlRXJyb3J9Owp1c2UgYWN0aXhfd2ViOjpodHRwOjpTdGF0dXNDb2RlOwp1c2UgYWN0aXhfd2ViOjptaWRkbGV3YXJlOjpMb2dnZXI7CnVzZSBhY3RpeF93ZWI6OndlYjo6SnNvbjsKdXNlIGFwaXN0b3M6OmFjdGl4OjpDcmVhdGVkSnNvbjsKdXNlIGFwaXN0b3M6OmFwaV9vcGVyYXRpb247CnVzZSBhcGlzdG9zOjpBcGlDb21wb25lbnQ7CnVzZSBhcGlzdG9zOjpBcGlFcnJvckNvbXBvbmVudDsKdXNlIGFwaXN0b3M6OmFwcDo6T3BlbkFwaVdyYXBwZXI7CnVzZSBhcGlzdG9zOjpzcGVjOjpTcGVjOwp1c2UgYXBpc3Rvczo6d2ViOjp7cG9zdCwgcmVzb3VyY2UsIHNjb3BlfTsKdXNlIGFwaXN0b3NfbW9kZWxzOjppbmZvOjpJbmZvOwp1c2UgY29yZTo6Zm10OjpGb3JtYXR0ZXI7CnVzZSBzY2hlbWFyczo6SnNvblNjaGVtYTsKdXNlIHNlcmRlOjp7RGVzZXJpYWxpemUsIFNlcmlhbGl6ZX07CnVzZSBzdGQ6OmVycm9yOjpFcnJvcjsKdXNlIHN0ZDo6bmV0OjpJcHY0QWRkcjsKCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBDbG9uZSwgSnNvblNjaGVtYSwgQXBpQ29tcG9uZW50KV0KcHViIHN0cnVjdCBUZXN0IHsKICBwdWIgdGVzdDogU3RyaW5nCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBDbG9uZSwgQXBpRXJyb3JDb21wb25lbnQpXQojW29wZW5hcGlfZXJyb3IoCiAgc3RhdHVzKGNvZGUgPSA0MDMpLAogIHN0YXR1cyhjb2RlID0gNDA0KSwKICBzdGF0dXMoY29kZSA9IDQwNSwgZGVzY3JpcHRpb24gPSAiSW52YWxpZCBpbnB1dCIpLAogIHN0YXR1cyhjb2RlID0gNDA5KQopXQpwdWIgZW51bSBFcnJvclJlc3BvbnNlIHsKICBNZXRob2ROb3RBbGxvd2VkKFN0cmluZyksCiAgTm90Rm91bmQoU3RyaW5nKSwKICBDb25mbGljdChTdHJpbmcpLAogIFVuYXV0aG9yaXplZChTdHJpbmcpLAp9CgppbXBsIERpc3BsYXkgZm9yIEVycm9yUmVzcG9uc2UgewogIGZuIGZtdCgmc2VsZiwgX2Y6ICZtdXQgRm9ybWF0dGVyPCdfPikgLT4gc3RkOjpmbXQ6OlJlc3VsdCB7CiAgICB0b2RvISgpCiAgfQp9CgppbXBsIFJlc3BvbnNlRXJyb3IgZm9yIEVycm9yUmVzcG9uc2UgewogIGZuIHN0YXR1c19jb2RlKCZzZWxmKSAtPiBTdGF0dXNDb2RlIHsKICAgIHRvZG8hKCkKICB9Cn0KCiNbYXBpX29wZXJhdGlvbigKICB0YWcgPSAicGV0IiwKICBzdW1tYXJ5ID0gIkFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlIiwKICBkZXNjcmlwdGlvbiA9IHIjIyMiQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKICAgIFBsb3AiIyMjLAogIGVycm9yX2NvZGUgPSA0MDUKKV0KcHViKGNyYXRlKSBhc3luYyBmbiB0ZXN0KAogIGJvZHk6IEpzb248VGVzdD4sCikgLT4gUmVzdWx0PENyZWF0ZWRKc29uPFRlc3Q+LCBFcnJvclJlc3BvbnNlPiB7CiAgT2soQ3JlYXRlZEpzb24oYm9keS4wKSkKfQoKI1thY3RpeF93ZWI6Om1haW5dCmFzeW5jIGZuIG1haW4oKSAtPiBSZXN1bHQ8KCksIGltcGwgRXJyb3I+IHsKICBIdHRwU2VydmVyOjpuZXcobW92ZSB8fCB7CiAgICBsZXQgc3BlYyA9IFNwZWMgewogICAgICBpbmZvOiBJbmZvIHsKICAgICAgICB0aXRsZTogIkFuIEFQSSIudG9fc3RyaW5nKCksCiAgICAgICAgdmVyc2lvbjogIjEuMC4wIi50b19zdHJpbmcoKSwKICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQogICAgICB9LAogICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQogICAgfTsKCiAgICBBcHA6Om5ldygpCiAgICAgICAgLmRvY3VtZW50KHNwZWMpCiAgICAgICAgLndyYXAoTG9nZ2VyOjpkZWZhdWx0KCkpCiAgICAgICAgLnNlcnZpY2Uoc2NvcGUoIi90ZXN0IikKICAgICAgICAgICAgLnNlcnZpY2UoCiAgICAgICAgICAgICAgcmVzb3VyY2UoIiIpCiAgICAgICAgICAgICAgICAgIC5yb3V0ZShwb3N0KCkudG8odGVzdCkpCiAgICAgICAgICAgICkKICAgICAgICApCiAgICAgICAgLmJ1aWxkKCIvb3BlbmFwaS5qc29uIikKICB9KQogICAgICAuYmluZCgoSXB2NEFkZHI6OlVOU1BFQ0lGSUVELCA4MDgwKSk/CiAgICAgIC5ydW4oKQogICAgICAuYXdhaXQKfQpgYGAKCkZvciBhIGNvbXBsZXRlIGV4YW1wbGUsIHNlZSBbdGhlIHNhbXBsZSBwZXRzdG9yZV0oaHR0cHM6Ly9naXRodWIuY29tL25ldHdvLWlvL2FwaXN0b3MvdHJlZS9tYWluL2V4YW1wbGVzL3BldHN0b3JlKS4KCiMjIyBGZWF0dXJlIGZsYWdzCgp8IG5hbWUgICAgICAgICAgICAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dHJhIGRlcGVuZGVuY2llcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBgcXVlcnlgIChkZWZhdWx0KSAgfCBFbmFibGVzIGRvY3VtZW50aW5nIGBhY3RpeF93ZWI6OndlYjo6UXVlcnlgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBhY3RpeGAgKGRlZmF1bHQpICB8IEVuYWJsZXMgZG9jdW1lbnRpbmcgdHlwZXMgZnJvbSBgYWN0aXhgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGxhYl9xdWVyeWAgICAgICAgIHwgRW5hYmxlcyBkb2N1bWVudGluZyBgYWN0aXhfd2ViX2xhYjo6ZXh0cmFjdDo6UXVlcnlgICAgICAgICAgICAgICAgICAgICAgIHwgW2BhY3RpeC13ZWItbGFiYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL2FjdGl4LXdlYi1sYWIpICAgICAgIHwKfCBgZ2FyZGVgICAgICAgICAgICAgfCBFbmFibGVzIGlucHV0IHZhbGlkYXRpb24gdGhyb3VnaCBgZ2FyZGVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGdhcmRlYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL2dhcmRlKSAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBhY3RpeC13ZWItZ3JhbnRzYCB8IEVuYWJsZXMgc3VwcG9ydCBmb3IgYGFjdGl4LXdlYi1ncmFudHNgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtgYWN0aXgtd2ViLWdyYW50c2BdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9hY3RpeC13ZWItZ3JhbnRzKSB8CnwgYHJhcGlkb2NgICAgICAgICAgIHwgRW5hYmxlcyBSYXBpRG9jIHRvIGV4cG9zZSB0aGUgZ2VuZXJhdGVkIG9wZW5hcGkgZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgcmVkb2NgICAgICAgICAgICAgfCBFbmFibGVzIFJlZG9jIHRvIGV4cG9zZSB0aGUgZ2VuZXJhdGVkIG9wZW5hcGkgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBzd2FnZ2VyLXVpYCAgICAgICB8IEVuYWJsZXMgU3dhZ2dlciBVSSB0byBleHBvc2UgdGhlIGdlbmVyYXRlZCBvcGVuYXBpIGZpbGUgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHFzX3F1ZXJ5YCAgICAgICAgIHwgRW5hYmxlcyBkb2N1bWVudGluZyB0eXBlcyBmcm9tIGBzZXJkZV9xc2AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW2BzZXJkZV9xc2BdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9zZXJkZS1xcykgICAgICAgICAgICAgICAgIHwKfCBgY2hyb25vYCAgICAgICAgICAgfCBFbmFibGVzIGRvY3VtZW50aW5nIHR5cGVzIGZyb20gYGNocm9ub2AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGNocm9ub2BdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9jaHJvbm8pICAgICAgICAgICAgICAgICAgICAgfAp8IGBtdWx0aXBhcnRgICAgICAgICB8IEVuYWJsZXMgZG9jdW1lbnRpbmcgdHlwZXMgZnJvbSBgYWN0aXgtbXVsdGlwYXJ0YCAgICAgICAgICAgICAgICAgICAgICAgICB8IFtgYWN0aXgtbXVsdGlwYXJ0YF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL2FjdGl4LW11bHRpcGFydCkgICB8CnwgYHJ1c3RfZGVjaW1hbGAgICAgIHwgRW5hYmxlcyBkb2N1bWVudGluZyB0eXBlcyBmcm9tIGBydXN0X2RlY2ltYWxgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW2BydXN0X2RlY2ltYWxgXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcnVzdC1kZWNpbWFsKSAgICAgICAgIHwKfCBgdXVpZGAgICAgICAgICAgICAgfCBFbmFibGVzIGRvY3VtZW50aW5nIHR5cGVzIGZyb20gYHV1aWRgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYHV1aWRgXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvdXVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGB1cmxgICAgICAgICAgICAgICB8IEVuYWJsZXMgZG9jdW1lbnRpbmcgdHlwZXMgZnJvbSBgdXJsYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtgdXJsYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3VybCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGV4dHJhc2AgICAgICAgICAgIHwgRW5hYmxlcyBgY2hyb25vYCwgYG11bHRpcGFydGAsIGBydXN0X2RlY2ltYWxgLCBgdXVpZGAgYW5kIGB1cmxgIGZlYXR1cmVzIHwgQWxsIGZyb20gcHJldmlvdXMgZmVhdHVyZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIyBXaGF0J3MgbmV4dAoKLSBIYW5kbGUgc2NoZW1hIGZvciBlcnJvcnMgdXNpbmcgQXBpRXJyb3JDb21wb25lbnQgZGVyaXZlIG1hY3JvCgojIyMgQWx0ZXJuYXRpdmVzCgp8IENyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBLZXkgZGlmZmVyZW5jZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IFtgcGFwZXJjbGlwYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3BhcGVyY2xpcCkgfCBQYXBlcmNsaXAgaXMgc2ltaWxhciB0byB0aGlzIHByb2plY3QgYnV0IGdlbmVyYXRlcyBTd2FnZ2VyIHYyIGRvY3VtZW50YXRpb24uIFBhcGVyY2xpcCBhbHNvIHByb3ZpZGVzIGEgdG9vbCB0byBnZW5lcmF0ZSBydXN0IGNvZGUgZnJvbSBhIFN3YWdnZXIgdjIgZG9jdW1lbnQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtgdXRvaXBhYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3V0b2lwYSkgICAgICAgfCBVdG9pcGEtYWN0aXggaW50ZWdyYXRpb24gcmVseSBvbiBbYWN0aXggd2ViIG1hY3Jvc10oaHR0cHM6Ly9kb2NzLnJzL2FjdGl4LXdlYi1tYWNyb3MvbGF0ZXN0L2FjdGl4X3dlYl9tYWNyb3MvKSBmb3Igcm91dGluZyBkZWZpbml0aW9uLiBBdCBmaXJzdCwgd2UgcGxhbm5lZCBvbiByZWx5aW5nIG9uIHV0b2lwYSBmb3IgT0FTIHR5cGVzIGFuZCBzY2hlbWEgZGVyaXZhdGlvbiBidXQgZm9yIG5vdyBbdXRvaXBhIGRvZXNuJ3Qgc3VwcG9ydCBnZW5lcmljIHN0cnVjdCB0aGUgd2F5IHdlIGludGVuZGVkIHRvXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9pc3N1ZXMvNzAzKS4gfAp8IFtgb2thcGlgXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvb2thcGkpICAgICAgICAgfCBQcmV0dHkgc2ltaWxhciwgYmFzZWQgb24gc2NoZW1hcnMgYXMgd2VsbCAoYW5kIG1haW50YWluZWQgYnkgdGhlIGZvdW5kZXIgb2Ygc2NoZW1hcnMpIGJ1dCBub3QgaW50ZWdyYXRlZCB3aXRoIGFjdGl4LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMjIEFydGljbGVzICMjIwoKLSBhbm5vdW5jZW1lbnQgYXJ0aWNsZSBjYW4gYmUgZm91bmQgW29uIG1lZGl1bV0oaHR0cHM6Ly9tZWRpdW0uY29tL25ldHdvL2RvY3VtZW50aW5nLWFwaS1mb3ItYWN0aXgtd2ViLWI1NzVhZGI4NDFhMSkuIEl0CiAgYWN0cyBhcyBhIHR1dG9yaWFsIGZvciBBcGlzdG9zLgoKIyMjIEFib3V0IHVzCgphcGlzdG9zIGlzIHByb3ZpZGVkIGJ5IFtOZXR3b10oaHR0cHM6Ly93d3cubmV0d28uaW8pLgoKV2UgdXNlIHRoaXMgY3JhdGUgZm9yIG91ciBpbnRlcm5hbCBuZWVkcyBhbmQgdGhlcmVmb3JlIGFyZSBjb21taXR0ZWQgdG8gaXRzIG1haW50ZW5hbmNlLCBob3dldmVyIHdlIGNhbm5vdCBwcm92aWRlIGFueQphZGRpdGlvbmFsIGd1YXJhbnR5LiBVc2UgaXQgYXQgeW91ciBvd24gcmlza3MuCgpXaGlsZSB3ZSB3b24ndCBpbnZlc3QgaW4gYW55IGZlYXR1cmUgd2UgZG9uJ3QgbmVlZCwgd2UgYXJlIG9wZW4gdG8gYWNjZXB0IGFueSBwdWxsIHJlcXVlc3QgeW91IG1pZ2h0IHByb3Bvc2UuCgpXZSBhcmUgYSBGcmFuY2UgYmFzZWQgZnVsbC1yZW1vdGUgY29tcGFueSBvcGVyYXRpbmcgaW4gdGhlIHRlbGVjb20gaW5kdXN0cnkuIElmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBsZWFybmluZyBtb3JlLApmZWVsIGZyZWUgdG8gdmlzaXQgW291ciBjYXJlZXIgcGFnZV0oaHR0cHM6Ly93d3cubmV0d28uaW8vY2FycmllcmUpLgo= readmeEtag: '"473b8d1dd23c2a91c096538fc9a73ec7c105c7eb"' readmeLastModified: Sun, 04 Aug 2024 11:23:57 GMT repositoryId: 691100358 description: Actix-web wrapper for automatic OpenAPI 3.0 documentation generation. created: '2023-09-13T13:54:51Z' updated: '2024-08-28T12:40:52Z' language: Rust archived: false stars: 126 watchers: 5 forks: 3 owner: netwo-io logo: https://avatars.githubusercontent.com/u/64151169?v=4 license: MIT repoEtag: '"97148d3e53179b3f586006cc0448528f9835fa8c2f8453ca06aa90d662fd5a5d"' repoLastModified: Wed, 28 Aug 2024 12:40:52 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/networknt/light-rest-4j v3: true repositoryMetadata: base64Readme: >- QSBSRVNUZnVsIEFQSSBvciBzZXJ2aWNlIGZyYW1ld29yayBidWlsdCBvbiB0b3Agb2YgbGlnaHQtNGoKCltTdGFjayBPdmVyZmxvd10oaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvdGFnZ2VkL2xpZ2h0LTRqKSB8CltHb29nbGUgR3JvdXBdKGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vIyFmb3J1bS9saWdodC00aikgfApbR2l0dGVyIENoYXRdKGh0dHBzOi8vZ2l0dGVyLmltL25ldHdvcmtudC9saWdodC1yZXN0LTRqKSB8CltTdWJyZWRkaXRdKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9saWdodGFwaS8pIHwKW1lvdXR1YmUgQ2hhbm5lbF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0hDUk1XSlZYdzhpQjd6S3hGNTVCeXcpIHwKW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jLm5ldHdvcmtudC5jb20vc3R5bGUvbGlnaHQtcmVzdC00ai8pIHwKW0NvbnRyaWJ1dGlvbiBHdWlkZV0oaHR0cHM6Ly9kb2MubmV0d29ya250LmNvbS9jb250cmlidXRlLykgfAoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvbmV0d29ya250L2xpZ2h0LXJlc3QtNGouc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvbmV0d29ya250L2xpZ2h0LXJlc3QtNGopIFshW2NvZGVjb3YuaW9dKGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvbmV0d29ya250L2xpZ2h0LXJlc3QtNGovY292ZXJhZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL25ldHdvcmtudC9saWdodC1yZXN0LTRqP2JyYW5jaD1tYXN0ZXIpCgpUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgbWlkZGxld2FyZSBoYW5kbGVycyB0aGF0IHdvcmsgd2l0aCBlaXRoZXIgU3dhZ2dlciAyLjAgb3IgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbi4gSWYgeW91IGFyZSBzdGFydGluZyBhIGJyYW5kIG5ldyBwcm9qZWN0LCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdXNpbmcgdGhlIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gZm9yIHlvdXIgZGVzaWduLgoKVG8gZ2V0IHN0YXJ0ZWQgeW91ciBmaXJzdCBwcm9qZWN0LCBwbGVhc2UgdmlzaXQgdGhlIFtnZXR0aW5nIHN0YXJ0ZWRdKGh0dHBzOi8vZG9jLm5ldHdvcmtudC5jb20vZ2V0dGluZy1zdGFydGVkL2xpZ2h0LXJlc3QtNGovKSB0byB3YWxrIHRocm91Z2ggdGhlIHByb2Nlc3MuCgpGb3IgZG9jdW1lbnRhdGlvbiBvbiB0aGUgaGFuZGxlcnMsIHBsZWFzZSB2aXNpdCB0aGUgW3JlZmVyZW5jZSBkb2N1bWVudF0oaHR0cHM6Ly9kb2MubmV0d29ya250LmNvbS9zdHlsZS9saWdodC1yZXN0LTRqLykuCgpUaGVyZSBhcmUgYWxzbyBudW1lcmljIFt0dXRvcmlhbHNdKGh0dHBzOi8vZG9jLm5ldHdvcmtudC5jb20vdHV0b3JpYWwvcmVzdC8pIHRvIHNob3cgdXNlcnMgaG93IHRvIGJ1aWxkIFJlc3RmdWwgc2VydmljZXMuCg== readmeEtag: '"db3d10c58fce6adb30f08d263d0b14a71b36bf06"' readmeLastModified: Thu, 15 Aug 2024 15:56:25 GMT repositoryId: 79723681 description: >- A RESTful framework built on top of light-4j with both Swagger 2.0 and OpenAPI 3.0 supports created: '2017-01-22T14:48:44Z' updated: '2024-09-04T18:31:00Z' language: Java archived: false stars: 120 watchers: 28 forks: 33 owner: networknt logo: https://avatars.githubusercontent.com/u/8740739?v=4 license: Apache-2.0 repoEtag: '"c801227ca06199f39ac45c6279c905758a1b591e08198f4b291de73a877ed629"' repoLastModified: Wed, 04 Sep 2024 18:31:00 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 5066b11d537986b50ebc1d3f7a7d721f - source: openapi3 tags repository: https://github.com/snok/drf-openapi-tester v3: true repositoryMetadata: base64Readme: >- WyFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvZHJmLW9wZW5hcGktdGVzdGVyLnN2ZyldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kcmYtb3BlbmFwaS10ZXN0ZXIvKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3Nub2svZHJmLW9wZW5hcGktdGVzdGVyL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3Nub2svZHJmLW9wZW5hcGktdGVzdGVyKQpbIVtQeXRob24gdmVyc2lvbnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUHl0aG9uLTMuNyUyQi1ibHVlKV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2RyZi1vcGVuYXBpLXRlc3Rlci8pClshW0RqYW5nbyB2ZXJzaW9uc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EamFuZ28tMy4wJTJCLWJsdWUpXShodHRwczovL3B5cGkub3JnL3Byb2plY3QvZHJmLW9wZW5hcGktdGVzdGVyLykKCgojIERSRiBPcGVuQVBJIFRlc3RlcgoKVGhpcyBpcyBhIHRlc3QgdXRpbGl0eSB0byB2YWxpZGF0ZSBEUkYgVGVzdCBSZXNwb25zZXMgYWdhaW5zdCBPcGVuQVBJIDIgYW5kIDMgc2NoZW1hLiBJdCBoYXMgYnVpbHQtaW4gc3VwcG9ydCBmb3I6CgotIE9wZW5BUEkgMi8zIHlhbWwgb3IganNvbiBzY2hlbWEgZmlsZXMuCi0gT3BlbkFQSSAyIHNjaGVtYXMgY3JlYXRlZCB3aXRoIFtkcmYteWFzZ10oaHR0cHM6Ly9naXRodWIuY29tL2F4bnNhbjEyL2RyZi15YXNnKS4KLSBPcGVuQVBJIDMgc2NoZW1hcyBjcmVhdGVkIHdpdGggW2RyZi1zcGVjdGFjdWxhcl0oaHR0cHM6Ly9naXRodWIuY29tL3RmcmFuemVsL2RyZi1zcGVjdGFjdWxhcikuCgo+IFRoaXMgcHJvamVjdCBpcyBubyBsb25nZXIgbWFpbnRhaW5lZC4gSWYgeW91IHdhbnQgdG8gdXNlIGl0LCBjb25zaWRlciB0YWtpbmcgYSBsb29rIGF0IFt0aGlzIGZvcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRpY2FyZGVuYXMvZHJmLW9wZW5hcGktdGVzdGVyLykgd2hpY2ggbWlnaHQgc3RpbGwgYmUuCgojIyBJbnN0YWxsYXRpb24KCmBgYHNoZWxsIHNjcmlwdApwaXAgaW5zdGFsbCBkcmYtb3BlbmFwaS10ZXN0ZXIKYGBgCgojIyBVc2FnZQoKSW5zdGFudGlhdGUgb25lIG9yIG1vcmUgaW5zdGFuY2VzIG9mIGBTY2hlbWFUZXN0ZXJgOgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcigpCmBgYAoKSWYgeW91IGFyZSB1c2luZyBlaXRoZXIgW2RyZi15YXNnXShodHRwczovL2dpdGh1Yi5jb20vYXhuc2FuMTIvZHJmLXlhc2cpCm9yIFtkcmYtc3BlY3RhY3VsYXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90ZnJhbnplbC9kcmYtc3BlY3RhY3VsYXIpIHRoaXMgd2lsbCBiZSBhdXRvLWRldGVjdGVkLCBhbmQgdGhlIHNjaGVtYSB3aWxsIGJlCmxvYWRlZCBieSB0aGUgYFNjaGVtYVRlc3RlcmAgYXV0b21hdGljYWxseS4KCklmIHlvdSBhcmUgdXNpbmcgc2NoZW1hIGZpbGVzLCB5b3Ugd2lsbCBuZWVkIHRvIHBhc3MgdGhlIGZpbGUgcGF0aDoKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfdGVzdGVyIGltcG9ydCBTY2hlbWFUZXN0ZXIKCiMgcGF0aCBzaG91bGQgYmUgYSBzdHJpbmcKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcihzY2hlbWFfZmlsZV9wYXRoPSIuL3NjaGVtYXMvcHVibGlzaGVkU3BlY3MueWFtbCIpCmBgYAoKT25jZSB5b3UndmUgaW5zdGFudGlhdGVkIGEgdGVzdGVyLCB5b3UgY2FuIHVzZSBpdCB0byB0ZXN0IHJlc3BvbnNlczoKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfdGVzdGVyLnNjaGVtYV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcigpCgoKZGVmIHRlc3RfcmVzcG9uc2VfZG9jdW1lbnRhdGlvbihjbGllbnQpOgogICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KCdhcGkvdjEvdGVzdC8xJykKICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDAKICAgIHNjaGVtYV90ZXN0ZXIudmFsaWRhdGVfcmVzcG9uc2UocmVzcG9uc2U9cmVzcG9uc2UpCmBgYAoKSWYgeW91IGFyZSB1c2luZyB0aGUgRGphbmdvIHRlc3RpbmcgZnJhbWV3b3JrLCB5b3UgY2FuIGNyZWF0ZSBhIGJhc2UgYEFQSVRlc3RDYXNlYCB0aGF0IGluY29ycG9yYXRlcyBzY2hlbWEgdmFsaWRhdGlvbjoKCmBgYHB5dGhvbgpmcm9tIHJlc3RfZnJhbWV3b3JrLnJlc3BvbnNlIGltcG9ydCBSZXNwb25zZQpmcm9tIHJlc3RfZnJhbWV3b3JrLnRlc3QgaW1wb3J0IEFQSVRlc3RDYXNlCgpmcm9tIG9wZW5hcGlfdGVzdGVyLnNjaGVtYV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKc2NoZW1hX3Rlc3RlciA9IFNjaGVtYVRlc3RlcigpCgoKY2xhc3MgQmFzZUFQSVRlc3RDYXNlKEFQSVRlc3RDYXNlKToKICAgICIiIiBCYXNlIHRlc3QgY2xhc3MgZm9yIGFwaSB2aWV3cyBpbmNsdWRpbmcgc2NoZW1hIHZhbGlkYXRpb24gIiIiCgogICAgQHN0YXRpY21ldGhvZAogICAgZGVmIGFzc2VydFJlc3BvbnNlKHJlc3BvbnNlOiBSZXNwb25zZSwgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgIiIiIGhlbHBlciB0byBydW4gdmFsaWRhdGVfcmVzcG9uc2UgYW5kIHBhc3Mga3dhcmdzIHRvIGl0ICIiIgogICAgICAgIHNjaGVtYV90ZXN0ZXIudmFsaWRhdGVfcmVzcG9uc2UocmVzcG9uc2U9cmVzcG9uc2UsICoqa3dhcmdzKQpgYGAKClRoZW4gdXNlIGl0IGluIGEgdGVzdCBmaWxlOgoKYGBgcHl0aG9uCmZyb20gc2hhcmVkLnRlc3RpbmcgaW1wb3J0IEJhc2VBUElUZXN0Q2FzZQoKCmNsYXNzIE15QVBJVGVzdHMoQmFzZUFQSVRlc3RDYXNlKToKICAgIGRlZiB0ZXN0X3NvbWVfdmlldyhzZWxmKToKICAgICAgICByZXNwb25zZSA9IHNlbGYuY2xpZW50LmdldCgiLi4uIikKICAgICAgICBzZWxmLmFzc2VydFJlc3BvbnNlKHJlc3BvbnNlKQpgYGAKCiMjIE9wdGlvbnMKCllvdSBjYW4gcGFzcyBvcHRpb25zIGVpdGhlciBnbG9iYWxseSwgd2hlbiBpbnN0YW50aWF0aW5nIGEgYFNjaGVtYVRlc3RlcmAsIG9yIGxvY2FsbHksIHdoZW4KaW52b2tpbmcgYHZhbGlkYXRlX3Jlc3BvbnNlYDoKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfdGVzdGVyIGltcG9ydCBTY2hlbWFUZXN0ZXIsIGlzX2NhbWVsX2Nhc2UKZnJvbSB0ZXN0cy51dGlscyBpbXBvcnQgbXlfdXVpZF80X3ZhbGlkYXRvcgoKc2NoZW1hX3Rlc3Rfd2l0aF9jYXNlX3ZhbGlkYXRpb24gPSBTY2hlbWFUZXN0ZXIoCiAgICBjYXNlX3Rlc3Rlcj1pc19jYW1lbF9jYXNlLAogICAgaWdub3JlX2Nhc2U9WyJJUCJdLAogICAgdmFsaWRhdG9ycz1bbXlfdXVpZF80X3ZhbGlkYXRvcl0KKQoKYGBgCgpPcgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlciwgaXNfY2FtZWxfY2FzZQpmcm9tIHRlc3RzLnV0aWxzIGltcG9ydCBteV91dWlkXzRfdmFsaWRhdG9yCgpzY2hlbWFfdGVzdGVyID0gU2NoZW1hVGVzdGVyKCkKCgpkZWYgbXlfdGVzdChjbGllbnQpOgogICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KCdhcGkvdjEvdGVzdC8xJykKICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDAKICAgIHNjaGVtYV90ZXN0ZXIudmFsaWRhdGVfcmVzcG9uc2UoCiAgICAgICAgcmVzcG9uc2U9cmVzcG9uc2UsCiAgICAgICAgY2FzZV90ZXN0ZXI9aXNfY2FtZWxfY2FzZSwKICAgICAgICBpZ25vcmVfY2FzZT1bIklQIl0sCiAgICAgICAgdmFsaWRhdG9ycz1bbXlfdXVpZF80X3ZhbGlkYXRvcl0KICAgICkKYGBgCgojIyMgY2FzZV90ZXN0ZXIKClRoZSBjYXNlIHRlc3RlciBhcmd1bWVudCB0YWtlcyBhIGNhbGxhYmxlIHRoYXQgaXMgdXNlZCB0byB2YWxpZGF0ZSB0aGUga2V5IGNhc2Ugb2YgYm90aCBzY2hlbWFzIGFuZCByZXNwb25zZXMuIElmCm5vdGhpbmcgaXMgcGFzc2VkLCBjYXNlIHZhbGlkYXRpb24gaXMgc2tpcHBlZC4KClRoZSBsaWJyYXJ5IGN1cnJlbnRseSBoYXMgNCBidWlsdC1pbiBjYXNlIHRlc3RlcnM6CgotIGBpc19wYXNjYWxfY2FzZWAKLSBgaXNfc25ha2VfY2FzZWAKLSBgaXNfY2FtZWxfY2FzZWAKLSBgaXNfa2ViYWJfY2FzZWAKCllvdSBjYW4gdXNlIG9uZSBvZiB0aGVzZSwgb3IgeW91ciBvd24uCgojIyMgaWdub3JlX2Nhc2UKCkxpc3Qgb2Yga2V5cyB0byBpZ25vcmUgd2hlbiB0ZXN0aW5nIGtleSBjYXNlLiBUaGlzIHNldHRpbmcgb25seSBhcHBsaWVzIHdoZW4gY2FzZV90ZXN0ZXIgaXMgbm90IGBOb25lYC4KCiMjIyB2YWxpZGF0b3JzCgpMaXN0IG9mIGN1c3RvbSB2YWxpZGF0b3JzLiBBIHZhbGlkYXRvciBpcyBhIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgdHdvIHBhcmFtZXRlcnM6IHNjaGVtYV9zZWN0aW9uIGFuZCBkYXRhLCBhbmQgcmV0dXJucwplaXRoZXIgYW4gZXJyb3IgbWVzc2FnZSBvciBgTm9uZWAsIGUuZy46CgpgYGBweXRob24KZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgT3B0aW9uYWwKZnJvbSB1dWlkIGltcG9ydCBVVUlECgoKZGVmIG15X3V1aWRfNF92YWxpZGF0b3Ioc2NoZW1hX3NlY3Rpb246IGRpY3QsIGRhdGE6IEFueSkgLT4gT3B0aW9uYWxbc3RyXToKICAgIHNjaGVtYV9mb3JtYXQgPSBzY2hlbWFfc2VjdGlvbi5nZXQoImZvcm1hdCIpCiAgICBpZiBzY2hlbWFfZm9ybWF0ID09ICJ1dWlkNCI6CiAgICAgICAgdHJ5OgogICAgICAgICAgICByZXN1bHQgPSBVVUlEKGRhdGEsIHZlcnNpb249NCkKICAgICAgICAgICAgaWYgbm90IHN0cihyZXN1bHQpID09IHN0cihkYXRhKToKICAgICAgICAgICAgICAgIHJldHVybiBmIkV4cGVjdGVkIHV1aWQ0LCBidXQgcmVjZWl2ZWQge2RhdGF9IgogICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAgICAgICAgICByZXR1cm4gZiJFeHBlY3RlZCB1dWlkNCwgYnV0IHJlY2VpdmVkIHtkYXRhfSIKICAgIHJldHVybiBOb25lCmBgYAoKIyMjIGZpZWxkX2tleV9tYXAKCllvdSBjYW4gcGFzcyBhbiBvcHRpb25hbCBkaWN0aW9uYXJ5IHRoYXQgbWFwcyBjdXN0b20gdXJsIHBhcmFtZXRlciBuYW1lcyBpbnRvIHZhbHVlcywgZm9yIHNpdHVhdGlvbnMgd2hlcmUgdGhpcyBjYW5ub3QgYmUKaW5mZXJyZWQgYnkgdGhlIERSRiBgRW5kcG9pbnRFbnVtZXJhdG9yYC4gQSBjb25jcmV0ZSB1c2UgY2FzZSBmb3IgdGhpcyBvcHRpb24gaXMgd2hlbgp0aGUgW2RqYW5nbyBpMThuIGxvY2FsZSBwcmVmaXhlc10oaHR0cHM6Ly9kb2NzLmRqYW5nb3Byb2plY3QuY29tL2VuLzMuMS90b3BpY3MvaTE4bi90cmFuc2xhdGlvbi8jbGFuZ3VhZ2UtcHJlZml4LWluLXVybC1wYXR0ZXJucykuCgpgYGBweXRob24KZnJvbSBvcGVuYXBpX3Rlc3RlciBpbXBvcnQgU2NoZW1hVGVzdGVyCgpzY2hlbWFfdGVzdGVyID0gU2NoZW1hVGVzdGVyKGZpZWxkX2tleV9tYXA9ewogICJsYW5ndWFnZSI6ICJlbiIsCn0pCmBgYAoKIyMgU2NoZW1hIFZhbGlkYXRpb24KCldoZW4gdGhlIFNjaGVtYVRlc3RlciBsb2FkcyBhIHNjaGVtYSwgaXQgcGFyc2VzIGl0IHVzaW5nIGFuCltPcGVuQVBJIHNwZWMgdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vcDFjMnUvb3BlbmFwaS1zcGVjLXZhbGlkYXRvcikuIFRoaXMgdmFsaWRhdGVzIHRoZSBzY2hlbWEuCkluIGNhc2Ugb2YgaXNzdWVzIHdpdGggdGhlIHNjaGVtYSBpdHNlbGYsIHRoZSB2YWxpZGF0b3Igd2lsbCByYWlzZSB0aGUgYXBwcm9wcmlhdGUgZXJyb3IuCgojIyBEamFuZ28gdGVzdGluZyBjbGllbnQKClRoZSBsaWJyYXJ5IGluY2x1ZGVzIGFuIGBPcGVuQVBJQ2xpZW50YCwgd2hpY2ggZXh0ZW5kcyBEamFuZ28gUkVTVCBmcmFtZXdvcmsncwpbYEFQSUNsaWVudGAgY2xhc3NdKGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvYXBpLWd1aWRlL3Rlc3RpbmcvI2FwaWNsaWVudCkuCklmIHlvdSB3aXNoIHRvIHZhbGlkYXRlIGVhY2ggcmVzcG9uc2UgYWdhaW5zdCBPcGVuQVBJIHNjaGVtYSB3aGVuIHdyaXRpbmcKdW5pdCB0ZXN0cyAtIGBPcGVuQVBJQ2xpZW50YCBpcyB3aGF0IHlvdSBuZWVkIQoKVG8gdXNlIGBPcGVuQVBJQ2xpZW50YCBzaW1wbHkgcGFzcyBgU2NoZW1hVGVzdGVyYCBpbnN0YW5jZSB0aGF0IHNob3VsZCBiZSB1c2VkCnRvIHZhbGlkYXRlIHJlc3BvbnNlcyBhbmQgdGhlbiB1c2UgaXQgbGlrZSByZWd1bGFyIERqYW5nbyB0ZXN0aW5nIGNsaWVudDoKCmBgYHB5dGhvbgpzY2hlbWFfdGVzdGVyID0gU2NoZW1hVGVzdGVyKCkKY2xpZW50ID0gT3BlbkFQSUNsaWVudChzY2hlbWFfdGVzdGVyPXNjaGVtYV90ZXN0ZXIpCnJlc3BvbnNlID0gY2xpZW50LmdldCgnL2FwaS92MS90ZXN0cy8xMjMvJykKYGBgCgpUbyBmb3JjZSBhbGwgZGV2ZWxvcGVycyB3b3JraW5nIG9uIHRoZSBwcm9qZWN0IHRvIHVzZSBgT3BlbkFQSUNsaWVudGAgc2ltcGx5Cm92ZXJyaWRlIHRoZSBgY2xpZW50YCBmaXh0dXJlICh3aGVuIHVzaW5nIGBweXRlc3RgIHdpdGggYHB5dGVzdC1kamFuZ29gKToKCmBgYHB5dGhvbgpmcm9tIHB5dGVzdF9kamFuZ28ubGF6eV9kamFuZ28gaW1wb3J0IHNraXBfaWZfbm9fZGphbmdvCgpmcm9tIG9wZW5hcGlfdGVzdGVyLnNjaGVtYV90ZXN0ZXIgaW1wb3J0IFNjaGVtYVRlc3RlcgoKCkBweXRlc3QuZml4dHVyZQpkZWYgc2NoZW1hX3Rlc3RlcigpOgogICAgcmV0dXJuIFNjaGVtYVRlc3RlcigpCgoKQHB5dGVzdC5maXh0dXJlCmRlZiBjbGllbnQoc2NoZW1hX3Rlc3Rlcik6CiAgICBza2lwX2lmX25vX2RqYW5nbygpCgogICAgZnJvbSBvcGVuYXBpX3Rlc3Rlci5jbGllbnRzIGltcG9ydCBPcGVuQVBJQ2xpZW50CgogICAgcmV0dXJuIE9wZW5BUElDbGllbnQoc2NoZW1hX3Rlc3Rlcj1zY2hlbWFfdGVzdGVyKQpgYGAKCklmIHlvdSBhcmUgdXNpbmcgcGxhaW4gRGphbmdvIHRlc3QgZnJhbWV3b3JrLCB3ZSBzdWdnZXN0IHRvIGNyZWF0ZSBjdXN0b20KdGVzdCBjYXNlIGltcGxlbWVudGF0aW9uIGFuZCB1c2UgaXQgaW5zdGVhZCBvZiBvcmlnaW5hbCBEamFuZ28gb25lOgoKYGBgcHl0aG9uCmltcG9ydCBmdW5jdG9vbHMKCmZyb20gZGphbmdvLnRlc3QudGVzdGNhc2VzIGltcG9ydCBTaW1wbGVUZXN0Q2FzZQpmcm9tIG9wZW5hcGlfdGVzdGVyLmNsaWVudHMgaW1wb3J0IE9wZW5BUElDbGllbnQKZnJvbSBvcGVuYXBpX3Rlc3Rlci5zY2hlbWFfdGVzdGVyIGltcG9ydCBTY2hlbWFUZXN0ZXIKCnNjaGVtYV90ZXN0ZXIgPSBTY2hlbWFUZXN0ZXIoKQoKCmNsYXNzIE15U2ltcGxlVGVzdENhc2UoU2ltcGxlVGVzdENhc2UpOgogICAgY2xpZW50X2NsYXNzID0gT3BlbkFQSUNsaWVudAogICAgIyBvciB1c2UgYGZ1bmN0b29scy5wYXJ0aWFsYCB3aGVuIHlvdSB3YW50IHRvIHByb3ZpZGUgY3VzdG9tCiAgICAjIGBgU2NoZW1hVGVzdGVyYGAgaW5zdGFuY2U6CiAgICAjIGNsaWVudF9jbGFzcyA9IGZ1bmN0b29scy5wYXJ0aWFsKE9wZW5BUElDbGllbnQsIHNjaGVtYV90ZXN0ZXI9c2NoZW1hX3Rlc3RlcikKYGBgCgpUaGlzIHdpbGwgZW5zdXJlIHlvdSBhbGwgbmV3bHkgaW1wbGVtZW50ZWQgdmlld3Mgd2lsbCBiZSB2YWxpZGF0ZWQgYWdhaW5zdAp0aGUgT3BlbkFQSSBzY2hlbWEuCgojIyBLbm93biBJc3N1ZXMKCiogV2UgYXJlIHVzaW5nIFtwcmFuY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZmlua2hhZXVzZXIvcHJhbmNlKSBhcyBhIHNjaGVtYSByZXNvbHZlciwgYW5kIGl0IGhhcyBzb21lIGlzc3VlcyB3aXRoIHRoZQogIHJlc29sdXRpb24gb2YgKHZlcnkpIGNvbXBsZXggT3BlbkFQSSAyLjAgc2NoZW1hcy4gSWYgeW91IGVuY291bnRlcgogIGlzc3VlcywgW3BsZWFzZSBkb2N1bWVudCB0aGVtIGhlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zbm9rL2RyZi1vcGVuYXBpLXRlc3Rlci9pc3N1ZXMvMjA1KS4KCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZS4gUGxlYXNlIHNlZSB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL3Nub2svLmdpdGh1Yi9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKQo= readmeEtag: '"84e7f0f953f52e829df14422c6ac971d44864a73"' readmeLastModified: Sun, 19 Nov 2023 17:47:20 GMT repositoryId: 232892108 description: Test utility for validating OpenAPI documentation created: '2020-01-09T19:49:31Z' updated: '2024-08-12T19:56:27Z' language: Python archived: true stars: 118 watchers: 8 forks: 22 owner: snok logo: https://avatars.githubusercontent.com/u/64945977?v=4 license: BSD-3-Clause repoEtag: '"331d811a8d20825eeb4b20a52de857b175dd8d6a8f0b37a728474177fd4a11fd"' repoLastModified: Mon, 12 Aug 2024 19:56:27 GMT foundInMaster: true category: Data Validators id: ed3a0abc85391a21e6ab59d06a1270d1 - source: openapi3 tags repository: https://github.com/tobilg/api2html v3: true repositoryMetadata: base64Readme: >- IyBhcGkyaHRtbApBIENMSSB0b29sIHRvIHRyYW5zZm9ybSBTd2FnZ2VyL09wZW5BUEkvQXN5bmNBUEkgZG9jcyB0byBiZWF1dGlmdWwgSFRNTCBwYWdlcyB2aWEgW1NoaW5zXShodHRwczovL2dpdGh1Yi5jb20vbWVybWFkZS9zaGlucykvW1dpZGRlcnNoaW5zXShodHRwczovL2dpdGh1Yi5jb20vbWVybWFkZS93aWRkZXJzaGlucykuCgpZb3UgY2FuIGZpbmQgYW4gZXhhbXBsZSBnZW5lcmF0ZWQgcGFnZSBhdCBbaHR0cDovL3RvYmlsZy5naXRodWIuaW8vYXBpMmh0bWwvcGV0c3RvcmUvXShodHRwOi8vdG9iaWxnLmdpdGh1Yi5pby9hcGkyaHRtbC9wZXRzdG9yZS8pLgoKIyMgSW5zdGFsbGF0aW9uCgpUbyBpbnN0YWxsIGBhcGkyaHRtbGAgZ2xvYmFsbHksIHVzZQoKYGBgYmFzaAokIG5wbSBpIGFwaTJodG1sIC1nCmBgYAoKWW91IGNhbiBhbHNvIGluc3RhbGwgaXQgdG8gdXNlIGFzIGBkZXZEZXBlbmRlbmNpZXNgLCBhbmQgdXNlIGl0IGxvY2FsbHkgdmlhIGEgYG5wbSBydW5gIHRhc2sgaW4geW91ciBgcGFja2FnZS5qc29uYDoKCmBgYGJhc2gKJCBucG0gaSBhcGkyaHRtbCAtLXNhdmUtZGV2CmBgYAoKVXNhZ2UgaW4gYHBhY2thZ2UuanNvbmA6CgpgYGBqYXZhc2NyaXB0CnsKICAic2NyaXB0cyI6IHsKICAgICJhcGktZG9jcyI6ICJub2RlX21vZHVsZXMvLmJpbi9hcGkyaHRtbCAtbyBkb2NzL2FwaS5odG1sIC1sIHNoZWxsLGphdmFzY3JpcHQtLW5vZGVqcyBkb2NzL29wZW5hcGkvYXBpLnltbCIKICB9Cn0KYGBgCgojIyBVc2FnZQoKIyMjIEF2YWlsYWJsZSBjb21tYW5kcwoKYGBgYmFzaAokIGFwaTJodG1sIC0taGVscCAKVXNhZ2U6IGFwaTJodG1sIFtvcHRpb25zXSA8c291cmNlUGF0aD4KICAKICBPcHRpb25zOgogICAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgICBvdXRwdXQgdGhlIHZlcnNpb24gbnVtYmVyCiAgICAtciwgLS1yZXNvbHZlIDxzb3VyY2U+ICAgICAgICAgIHJlc29sdmUgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLCBzb3VyY2Ugc2hvdWxkIGJlIGEgdXJsIG9yIGEgcGF0aAogICAgLW8sIC0tb3V0IDxvdXRwdXRQYXRoPiAgICAgICAgICBvdXRwdXQgcGF0aCBmb3IgdGhlIHJlc3VsdGluZyBIVE1MIGRvY3VtZW50CiAgICAtdCwgLS10aGVtZSA8dGhlbWVOYW1lPiAgICAgICAgIHRoZW1lIHRvIHVzZSAoc2VlIGh0dHBzOi8vaGlnaGxpZ2h0anMub3JnL3N0YXRpYy9kZW1vLyBmb3IgYSBsaXN0KQogICAgLWMsIC0tY3VzdG9tTG9nbyA8bG9nb1BhdGg+ICAgICB1c2UgY3VzdG9tIGxvZ28gYXQgdGhlIHJlc3BlY3RpdmUgcGF0aAogICAgLXUsIC0tY3VzdG9tTG9nb1VybCA8bG9nb1VSTD4gICB1cmwgZm9yIHRoZSBjdXN0b20gbG9nbyB0byBwb2ludCB0bwogICAgLUMsIC0tY3VzdG9tQ3NzICAgICAgICAgICAgICAgICB1c2UgY3VzdG9tIGNzcwogICAgLVAsIC0tY3VzdG9tQ3NzUGF0aCA8Y3NzUGF0aD4gICB1c2UgY3VzdG9tIGNzcyBmaWxlCiAgICAtaSwgLS1pbmNsdWRlcyA8aW5jbHVkZXNMaXN0PiAgIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGZpbGVzIHRvIGluY2x1ZGUKICAgIC1sLCAtLWxhbmd1YWdlcyA8bGFuZ3VhZ2VMaXN0PiAgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgbGFuZ3VhZ2VzIHRvIHVzZSBmb3IgdGhlIGxhbmd1YWdlIHRhYnMgKG91dCBvZiBzaGVsbCwgaHR0cCwgamF2YXNjcmlwdCwgamF2YXNjcmlwdC0tbm9kZWpzLCBydWJ5LCBweXRob24sIGphdmEsIGdvKQogICAgLU4sIC0tbm9Db2RlU2FtcGxlcyAgICAgICAgICAgICBvbWl0IGFsbCBjb2RlIHNhbXBsZXMgKG92ZXJyaWRlcyAtLWxhbmd1YWdlcykKICAgIC1zLCAtLXNlYXJjaCAgICAgICAgICAgICAgICAgICAgZW5hYmxlIHNlYXJjaAogICAgLVMsIC0tc3VtbWFyeSAgICAgICAgICAgICAgICAgICB1c2Ugc3VtbWFyeSBpbnN0ZWFkIG9mIG9wZXJhdGlvbklkIGZvciBUT0MKICAgIC1iLCAtLW9taXRCb2R5ICAgICAgICAgICAgICAgICAgT21pdCB0b3AtbGV2ZWwgZmFrZSBib2R5IHBhcmFtZXRlciBvYmplY3QKICAgIC1SLCAtLXJhdyAgICAgICAgICAgICAgICAgICAgICAgU2hvdyByYXcgc2NoZW1hcyBpbiBzYW1wbGVzLCBub3QgZXhhbXBsZSB2YWx1ZXMKICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0IHVzYWdlIGluZm9ybWF0aW9uCmBgYAoKIyMjIFVzYWdlIGV4YW1wbGVzCgojIyMjIFJlbmRlciBPcGVuQVBJIHYzIGZpbGUgYXMgSFRNTAoKVGhpcyB3aWxsIHJlbmRlciB0aGUgYGFwaS55bWxgIGZpbGUgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFzIGBteWFwaS5odG1sYCBmaWxlIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCmBgYGJhc2gKJCBhcGkyaHRtbCAtbyBteWFwaS5odG1sIG15YXBpLnltbApgYGAKCiMjIyMgVXNlIGN1c3RvbSBsb2dvCgpUaGlzIHdpbGwgcmVuZGVyIHRoZSBgYXBpLnltbGAgZmlsZSBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgYXMgYG15YXBpLmh0bWxgIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LCBhbmQgdXNlIHRoZSBjdXN0b20gbG9nbyBgbXlsb2dvLnBuZ2AuCgpgYGBiYXNoCiQgYXBpMmh0bWwgLW8gbXlhcGkuaHRtbCAtYyBteWxvZ28ucG5nIG15YXBpLnltbApgYGAKCiMjIyMgRGVmaW5lIHdoaWNoIGxhbmd1YWdlIGV4YW1wbGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQKClRoaXMgd2lsbCByZW5kZXIgdGhlIGBhcGkueW1sYCBmaWxlIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBhcyBgbXlhcGkuaHRtbGAgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnksIGFuZCB1c2UgYGdvYCBhbmQgYGphdmFzY3JpcHRgIGV4YW1wbGVzLgoKYGBgYmFzaAokIGFwaTJodG1sIC1vIG15YXBpLmh0bWwgLWwgZ28samF2YXNjcmlwdCBteWFwaS55bWwKYGBgCgojIyMjIFVzZSBkaWZmZXJlbnQgc3ludGF4IGhpZ2hsaWdodGVyCgpUaGlzIHdpbGwgcmVuZGVyIHRoZSBgYXBpLnltbGAgZmlsZSBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgYXMgYG15YXBpLmh0bWxgIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LCBhbmQgdXNlIGBnb2AgYW5kIGBqYXZhc2NyaXB0YCBleGFtcGxlcywgYXMgd2VsbCBhcyBhIGRpZmZlcmVudCBzeW50YXggaGlnbGlnaHRlciBmcm9tIFtoaWdobGlnaHQuanNdKGh0dHBzOi8vaGlnaGxpZ2h0anMub3JnL3N0YXRpYy9kZW1vLykuCgpgYGBiYXNoCiQgYXBpMmh0bWwgLW8gbXlhcGkuaHRtbCAtbCBnbyxqYXZhc2NyaXB0IC10IGFydGEgbXlhcGkueW1sCmBgYAoKIyMjIyBSZXNvbHZlIGV4dGVybmFsIGRlcGVuZGVuY2llcwoKSWYgeW91IGFkZCByZWZzIHRvIGV4dGVybmFsIGZpbGVzIGluIHlvdXIgc291cmNlIGZpbGUsIHlvdSBjYW4gZW5hYmxlIHRoZW0gYnkgdXNpbmcgYC1yIDxzb3VyY2U+YC4gVGhlIGZvbGxvd2luZyBjb21tYW5kIHdpbGwgcmVzb2x2ZSBhbGwgeW91ciByZWxhdGl2ZSBpbXBvcnRzIGZyb20gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgoKYGBgYmFzaAokIGFwaTJodG1sIC1vIG15YXBpLmh0bWwgLXIgLi8gbXlhcGkueW1sCmBgYAo= readmeEtag: '"2c38b17a93ff4ff6c74a44a2c25018e74ef8d708"' readmeLastModified: Thu, 21 Sep 2023 07:04:29 GMT repositoryId: 133497107 description: >- A CLI tool to transform Swagger/OpenAPI/AsyncAPI docs to beautiful HTML pages via Shins/Widdershins. created: '2018-05-15T10:03:41Z' updated: '2024-08-06T12:24:05Z' language: JavaScript archived: false stars: 115 watchers: 6 forks: 25 owner: tobilg logo: https://avatars.githubusercontent.com/u/1841985?v=4 license: MIT repoEtag: '"0051b13f79b7e0b11c75f106ad015ea4c3aa1f1cf2c08f1d09d1097be84cf3b2"' repoLastModified: Tue, 06 Aug 2024 12:24:05 GMT foundInMaster: true category: - Documentation - Parsers id: 90756f66a4bf98b61166ca0c0cde5583 - source: openapi3 tags repository: https://github.com/swagger-api/swagger-converter v3: true repositoryMetadata: base64Readme: >- UHJvdmlkZXMgYSBjb252ZXJ0ZXIgYmV0d2VlbiBPcGVuQVBJIDIuMCBhbmQgMy4wIHNwZWNpZmljYXRpb25zIGFjY2Vzc2libGUgdmlhIEFQSXMgYW5kIHdlYiBVSS4gCgpJdCBpcyBhdmFpbGFibGUgb25saW5lIGF0IGh0dHBzOi8vY29udmVydGVyLnN3YWdnZXIuaW8vIGFuZCBhcyBhIFtkb2NrZXIgaW1hZ2VdKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9zd2FnZ2VyYXBpL3N3YWdnZXItY29udmVydGVyKSBlLmcuOgoKYGBgCmRvY2tlciBwdWxsIHN3YWdnZXJhcGkvc3dhZ2dlci1jb252ZXJ0ZXI6djEuMC42LVNOQVBTSE9UCmRvY2tlciBydW4gLWl0IC1wIDgwODA6ODA4MCAtLW5hbWUgc3dhZ2dlci1jb252ZXJ0ZXIgc3dhZ2dlcmFwaS9zd2FnZ2VyLWNvbnZlcnRlcjp2MS4wLjYtU05BUFNIT1QKYGBgCgpXZWIgVUkgaXMgcmVhY2hhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9pbmRleC5odG1sIGFuZCBPcGVuQVBJIHNwZWMgYXQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS9vcGVuYXBpLmpzb24KCiMjIFNlY3VyaXR5IGNvbnRhY3QKClBsZWFzZSBkaXNjbG9zZSBhbnkgc2VjdXJpdHktcmVsYXRlZCBpc3N1ZXMgb3IgdnVsbmVyYWJpbGl0aWVzIGJ5IGVtYWlsaW5nIFtzZWN1cml0eUBzd2FnZ2VyLmlvXShtYWlsdG86c2VjdXJpdHlAc3dhZ2dlci5pbyksIGluc3RlYWQgb2YgdXNpbmcgdGhlIHB1YmxpYyBpc3N1ZSB0cmFja2VyLgoKIyMgTGljZW5zZQoKYGBgCkNvcHlyaWdodCAyMDE5IFNtYXJ0QmVhciBTb2Z0d2FyZQoKTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IFthcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXShodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpgYGAK readmeEtag: '"1926fae77184799da27abea97b2530f40c480474"' readmeLastModified: Tue, 14 May 2024 09:01:26 GMT repositoryId: 87553967 description: OpenAPI/Swagger 2.0 to OpenAPI 3.0 Converter WebService created: '2017-04-07T14:18:38Z' updated: '2024-08-30T10:58:17Z' language: Shell archived: false stars: 114 watchers: 13 forks: 29 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"9be1ede56c48ddd0123d2502064a8e3089ddaea2931672feb56fc1bcd777a47a"' repoLastModified: Fri, 30 Aug 2024 10:58:17 GMT foundInMaster: true category: - Code Generators - Parsers id: 97edfdde2e669f6ea8e322d590966d62 - source: openapi3 tags repository: https://github.com/sourcemeta/awesome-jsonschema v3: true repositoryMetadata: base64Readme: >- PCEtLSBBVFRFTlRJT04hIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRG8gbm90IGVkaXQgdGhpcyBmaWxlIGRpcmVjdGx5LgpJbnN0ZWFkLCBlZGl0IGBkYXRhLnlhbWxgIGFuZCByZS1nZW5lcmF0ZSB0aGlzIGZpbGUgYXMgcGVyIHRoZSBSRUFETUUncwppbnN0cnVjdGlvbnMgLS0+CgojIEF3ZXNvbWUgSlNPTiBTY2hlbWEgWyFbQXdlc29tZV0oaHR0cHM6Ly9jZG4ucmF3Z2l0LmNvbS9zaW5kcmVzb3JodXMvYXdlc29tZS9kNzMwNWYzOGQyOWZlZDc4ZmE4NTY1MmUzYTYzZTE1NGRkOGU4ODI5L21lZGlhL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvYXdlc29tZSkKCls8aW1nIHNyYz0ibG9nby5zdmciIGFsaWduPSJyaWdodCIgd2lkdGg9IjEwMCI+XShodHRwczovL2pzb24tc2NoZW1hLm9yZykKClshW1BScyBXZWxjb21lXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BScy13ZWxjb21lLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHA6Ly9tYWtlYXB1bGxyZXF1ZXN0LmNvbSkKWyFbSm9pbiBTbGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9TbGFjay1Kb2luJTIwU2xhY2stYmx1ZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL2pzb24tc2NoZW1hLnNsYWNrLmNvbSkKWyFbT3BlbkNvbGxlY3RpdmVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vb3BlbmNvbGxlY3RpdmUvYWxsL2pzb24tc2NoZW1hP2xhYmVsPU9wZW5Db2xsZWN0aXZlJnN0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vanNvbi1zY2hlbWEpCgo+IEEgY3VyYXRlZCBsaXN0IG9mIGF3ZXNvbWUgSlNPTiBTY2hlbWEgcmVzb3VyY2VzLCB0dXRvcmlhbHMsIHRvb2xzLCBhbmQgbW9yZS4KCkpTT04gU2NoZW1hIGlzIGEgSlNPTi1iYXNlZCBmb3JtYXQgdG8gYW5ub3RhdGUgYW5kIHZhbGlkYXRlIEpTT04gZG9jdW1lbnRzIHdpdGgKYSB2aWJyYW50IGNvbW11bml0eS4gSlNPTiBTY2hlbWEgaXMgZGVmaW5lZCBieSBhIHNldCBvZiBJRVRGIHNwZWNpZmljYXRpb25zIGFuZAppdCBpcyB0aGUgaW5kdXN0cnktc3RhbmRhcmQgZm9yIGRlZmluaW5nIHRoZSBzdHJ1Y3R1cmUgYW5kIG1lYW5pbmcgb2YgSlNPTgpkb2N1bWVudHMuCgotLS0KCioqV291bGQgeW91IGxpa2UgdG8gcHJvbW90ZSB5b3VyIGNvbXBhbnkgb3IgcHJvZHVjdCBoZXJlPyBbU3BvbnNvciB1cyBvbgpHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9zb3VyY2VtZXRhKSoqCgotLS0KCj4gWyFUSVBdCj4gRG8geW91IHdhbnQgdG8gbGV2ZWwgdXAgeW91ciBKU09OIFNjaGVtYSBza2lsbHM/IENoZWNrIG91dAo+IFtsZWFybmpzb25zY2hlbWEuY29tXShodHRwczovL3d3dy5sZWFybmpzb25zY2hlbWEuY29tKSwgb3VyIGdyb3dpbmcgSlNPTgo+IFNjaGVtYSBkb2N1bWVudGF0aW9uIHdlYnNpdGUsIGFuZCBvdXIgTydSZWlsbHkgYm9vayBbVW5pZnlpbmcgQnVzaW5lc3MsIERhdGEsCj4gYW5kIENvZGU6IERlc2lnbmluZyBEYXRhIFByb2R1Y3RzIHdpdGggSlNPTgo+IFNjaGVtYV0oaHR0cHM6Ly93d3cub3JlaWxseS5jb20vbGlicmFyeS92aWV3L3VuaWZ5aW5nLWJ1c2luZXNzLWRhdGEvOTc4MTA5ODE0NDk5OS8pLgoKIyMgQ29udGVudHMKCi0gW09mZmljaWFsXSgjb2ZmaWNpYWwpCi0gW0dldHRpbmcgU3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKLSBbVm9jYWJ1bGFyaWVzXSgjdm9jYWJ1bGFyaWVzKQotIFtSZWdpc3RyaWVzXSgjcmVnaXN0cmllcykKLSBbQWRvcHRpb25dKCNhZG9wdGlvbikKLSBbQXJ0aWNsZXNdKCNhcnRpY2xlcykKLSBbU3BlY2lmaWNhdGlvbnNdKCNzcGVjaWZpY2F0aW9ucykKLSBbQm9va3NdKCNib29rcykKLSBbQ291cnNlc10oI2NvdXJzZXMpCi0gW1ZpZGVvc10oI3ZpZGVvcykKLSBbUG9kY2FzdHNdKCNwb2RjYXN0cykKLSBbUGFwZXJzXSgjcGFwZXJzKQotIFtUb29sc10oI3Rvb2xzKQotIFtMaWJyYXJpZXNdKCNsaWJyYXJpZXMpCgojIyBPZmZpY2lhbAoKLSBbR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vanNvbi1zY2hlbWEtb3JnP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBvZmZpY2lhbCBHaXRIdWIgb3JnYW5pemF0aW9uIG9mIHRoZSBKU09OIFNjaGVtYSBwcm9qZWN0LgotIFtHaXRIdWIgRGlzY3Vzc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9qc29uLXNjaGVtYS1vcmcvY29tbXVuaXR5L2Rpc2N1c3Npb25zP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBkaXNjdXNzaW9ucyBwYWdlIG9mIEpTT04gU2NoZW1hLgotIFtTbGFja10oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvc2xhY2s/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIG9mZmljaWFsIFNsYWNrIHdvcmtzcGFjZSBvZiBKU09OIFNjaGVtYS4KLSBbU3RhY2sgT3ZlcmZsb3ddKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zL3RhZ2dlZC9qc29uc2NoZW1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBKU09OIFNjaGVtYSB0YWcgaW4gU3RhY2sgT3ZlcmZsb3cuCi0gW1Rlc3QgU3VpdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qc29uLXNjaGVtYS1vcmcvSlNPTi1TY2hlbWEtVGVzdC1TdWl0ZT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgb2ZmaWNpYWwgdGVzdCBzdWl0ZSBmb3IgSlNPTiBTY2hlbWEgaW1wbGVtZW50YXRpb25zLgotIFtUd2l0dGVyXShodHRwczovL3R3aXR0ZXIuY29tL2pzb25zY2hlbWE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIFR3aXR0ZXIgYWNjb3VudCBvZiB0aGUgSlNPTiBTY2hlbWEgcHJvamVjdC4KLSBbWW91VHViZV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ3JsM2ZqbUhTcDZGaEpVS2NFSmhpc0E/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIEpTT04gU2NoZW1hIG9mZmljaWFsIFlvdVR1YmUgY2hhbm5lbC4KCiMjIEdldHRpbmcgU3RhcnRlZAoKLSAoMjAyMikgW1lBTUwgRGF0YSBWYWxpZGF0aW9uXShodHRwczovL2luZnJhc3RydWN0dXJlYXNjb2RlLmNoL3lhbWxfdmFsaWRhdGlvbi5odG1sP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgdHV0b3JpYWwgb24gdmFsaWRhdGluZyBZQU1MIGRvY3VtZW50cyB1c2luZyBKU09OIFNjaGVtYSAyMDIwLTEyLgotICgyMDIyKSBbVmFsaWRhdGluZyBQT1NUIERhdGEgQWdhaW5zdCBKU09OIFNjaGVtYV0oaHR0cHM6Ly9ibG9nLmJlZ2luLmNvbS9wb3N0cy8yMDIyLTA2LTI3LXZhbGlkYXRpbmctcG9zdC1kYXRhLWFnYWlzdC1qc29uLXNjaGVtYT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBIHR1dG9yaWFsIG9uIHZhbGlkYXRpbmcgSFRUUCByZXF1ZXN0IGRhdGEgdXNpbmcgSlNPTiBTY2hlbWEgdXNpbmcgdGhlIEFyY2hpdGVjdCBGdW5jdGlvbmFsIFdlYiBBcHBzIChGV0FzKSBmcmFtZXdvcmsuCi0gKDIwMjIpIFtSZWFjdCBKU09OIFNjaGVtYSBGb3JtXShodHRwczovL21lZGl1bS5jb20vamF2YXJldmlzaXRlZC9yZWFjdC1qc29uLXNjaGVtYS1mb3JtLWNkYzhmYmIwNmY4Yz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBIHR1dG9yaWFsIG9uIHVzaW5nIHRoZSBSZWFjdCBKU09OIFNjaGVtYSBGb3JtIHByb2plY3QgYnkgTW96aWxsYSB0byBnZW5lcmF0ZSB3ZWIgZm9ybXMgdXNpbmcgSlNPTiBTY2hlbWEuCi0gKDIwMjIpIFtKU09OIFNjaGVtYSB2YWxpZGF0aW9uIGZvciBjb2x1bW5zXShodHRwczovL3NxbGZvcmRldnMuY29tL2pzb24tc2NoZW1hLXZhbGlkYXRpb24/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSBzaG9ydCB0dXRvcmlhbCBvbiBhZGRpbmcgTXlTUUwgYW5kIFBvc3RncmVTUUwgdGFibGUgY29uc3RyYWludHMgdXNpbmcgSlNPTiBTY2hlbWEuCi0gKDIwMjIpIFtFYXN5IGFuZCBRdWljayBGb3JtIEdlbmVyYXRpb24gVXNpbmcgSlNPTiBTY2hlbWEgaW4gVnVlSlNdKGh0dHBzOi8vd3d3LmJhY2FuY3l0ZWNobm9sb2d5LmNvbS9ibG9nL2Zvcm0tZ2VuZXJhdGlvbi11c2luZy1qc29uLXNjaGVtYS1pbi12dWVqcz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBIHR1dG9yaWFsIG9uIGdlbmVyYXRpbmcgd2ViIGZvcm1zIHVzaW5nIEpTT04gU2NoZW1hIGFuZCBWdWVKUy4KLSAoMjAyMikgW0NyZWF0aW5nIGEgSlNPTiBzY2hlbWFdKGh0dHBzOi8vcHVibGlzaGluZy1wcm9qZWN0LnJpdmVuZGVsbHdlYi5uZXQvY3JlYXRpbmctYS1qc29uLXNjaGVtYS8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSB0dXRvcmlhbCBvbiBjcmVhdGluZyBKU09OIFNjaGVtYSAyMDIwLTEyIGRlZmluaXRpb25zIGZvciBhIGZpY3RpdGlvdXMgaW50ZXJ2aWV3aW5nIHBsYXRmb3JtLgotICgyMDIxKSBbVW5kZXJzdGFuZGluZyBKU09OIFNjaGVtYV0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvdW5kZXJzdGFuZGluZy1qc29uLXNjaGVtYS8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gaW4tZGVwdGggZ3VpZGUgdG8gSlNPTiBTY2hlbWEuCi0gKDIwMjEpIFtKU09OIFNjaGVtYTogR2V0dGluZyBTdGFydGVkIFN0ZXAtQnktU3RlcF0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvbGVhcm4vZ2V0dGluZy1zdGFydGVkLXN0ZXAtYnktc3RlcC5odG1sP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgY29tcHJlaGVuc2l2ZSBpbnRyb2R1Y3Rpb24gdG8gSlNPTiBTY2hlbWEuCi0gKDIwMjEpIFtJbnRyb2R1Y3Rpb24gdG8gSlNPTiBTY2hlbWEgaW4gSmF2YV0oaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL2ludHJvZHVjdGlvbi10by1qc29uLXNjaGVtYS1pbi1qYXZhP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgc2hvcnQgaW50cm9kdWN0aW9uIHRvIHZhbGlkYXRpbmcgSlNPTiBkb2N1bWVudHMgd2l0aCBKU09OIFNjaGVtYSBpbiBKYXZhLgotICgyMDIwKSBbVmFsaWRhdGluZyBhbmQgZG9jdW1lbnRpbmcgSlNPTiB3aXRoIEpTT04gU2NoZW1hXShodHRwczovL3d3dy5tc2NoYXJoYWcuY29tL2FwaS1kZXNpZ24vanNvbi1zY2hlbWE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gaW50cm9kdWN0aW9uIHRvIEpTT04gU2NoZW1hIGJ5IGV4YW1wbGUgYnkgc2hvd2luZyBhbiBhbm5vdGF0ZWQgSlNPTiBTY2hlbWEgdGhhdCB2YWxpZGF0ZXMgYW4gZXhhbXBsZSBkb2N1bWVudC4KLSAoMjAyMCkgW0pTT04gU2NoZW1hIFR1dG9yaWFsXShodHRwczovL3d3dy53M3Jlc291cmNlLmNvbS9KU09OL0pTT04tU2NoZW1hLnBocD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBIHR1dG9yaWFsIG9mIEpTT04gU2NoZW1hIHRoYXQgZGlzY3Vzc2VzIHZhbGlkYXRpb24sIGRvY3VtZW50YXRpb24gYW5kIGh5cGVybGlua2luZy4KLSAoMjAyMCkgW0hvdyB0byBJbnRlZ3JhdGUgJnF1b3Q7UmVhY3QgSlNPTiBTY2hlbWEgRm9ybSZxdW90OyBpbnRvIGEgUmVkdXggYW5kIFR5cGVzY3JpcHQgUHJvamVjdF0oaHR0cHM6Ly93d3cueHRpdmlhLmNvbS9ibG9nL2hvdy10by1pbnRlZ3JhdGUtcmVhY3QtanNvbi1zY2hlbWEtZm9ybS1pbnRvLWEtcmVkdXgtYW5kLXR5cGVzY3JpcHQtcHJvamVjdC8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQWRkaW5nIGEgZm9ybSB1c2luZyAmcXVvdDtSZWFjdCBKU09OIFNjaGVtYSBGb3JtJnF1b3Q7IGFuZCBpbnRlZ3JhdGluZyBpdCB3aXRoIFJlZHV4IGFuZCBUeXBlc2NyaXB0LgotICgyMDIwKSBbQW4gaW50cm9kdWN0aW9uIHRvIEpTT04gU2NoZW1hXShodHRwczovL21lZGl1bS5jb20vc3dsaC9hbi1pbnRyb2R1Y3Rpb24tdG8tanNvbi1zY2hlbWEtOGVhZWE2NDNmY2RhP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIGludHJvZHVjdGlvbiB0byBKU09OIFNjaGVtYSBjb3ZlcmluZyBpdHMgaGlzdG9yeSwgY29tbW9uIGtleXdvcmRzIGFuZCBob3cgdG8gdXNlIHRoZSBBSlYgdmFsaWRhdG9yLgotICgyMDE5KSBbUkVTVCBBUEkgVHV0b3JpYWw6IEpTT04gU2NoZW1hXShodHRwczovL3Jlc3RmdWxhcGkubmV0L2pzb24tc2NoZW1hLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBbiBzaG9ydCBpbnRyb2R1Y3Rpb24gdG8gSlNPTiBTY2hlbWEgdmFsaWRhdGlvbi4KLSAoMjAxOSkgW1BIUCBXaXRoIE15U1FMXShodHRwczovL2VsZXBoYW50ZG9scGhpbi5ibG9nc3BvdC5jb20vMjAxOS8wNy9qc29uLXNjaGVtYS12YWxpZGF0aW9uLXdpdGgtbXlzcWwtODAxNy5odG1sP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgcHJhY3RpY2FsIHR1dG9yaWFsIG9uIGV4cHJlc3NpbmcgSlNPTiBTY2hlbWEgdGFibGUgY29uc3RyYWludHMgb24gTXlTUUwuCi0gKDIwMTcpIFtHZXR0aW5nIHN0YXJ0ZWQgd2l0aCBKU09OIEh5cGVyLVNjaGVtYV0oaHR0cHM6Ly9hcGlzeW91d29udGhhdGUuY29tL2Jsb2cvZ2V0dGluZy1zdGFydGVkLXdpdGgtanNvbi1oeXBlci1zY2hlbWE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gaW50cm9kdWN0aW9uIHRvIHRoZSBIeXBlci1TY2hlbWEgSlNPTiBTY2hlbWEgdm9jYWJ1bGFyeS4KLSAoMjAxMykgW1R1dG9yaWFsc1BvaW50OiBKU09OIFNjaGVtYV0oaHR0cHM6Ly93d3cudHV0b3JpYWxzcG9pbnQuY29tL2pzb24vanNvbl9zY2hlbWEuaHRtP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgc2hvcnQgaW50cm9kdWN0aW9uIHRvIEpTT04gU2NoZW1hIERyYWZ0NCB2YWxpZGF0aW9uLgoKIyMgVm9jYWJ1bGFyaWVzCgotIFtBY2Nlc3NpbmcgRGF0YSBTdG9yZWQgaW4gSlNPTl0oaHR0cHM6Ly9qc29uLWV2ZXJ5dGhpbmcubmV0L2pzb24tc2NoZW1hLyNhLXZvY2FidWxhcnktZm9yLWFjY2Vzc2luZy1kYXRhLXN0b3JlZC1pbi1qc29uP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgdm9jYWJ1bGFyeSBkZWZpbmluZyBrZXl3b3JkcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSBpbnN0YW5jZSBkYXRhLCB0aGUgc2NoZW1hIGRhdGEgYW5kIGV4dGVybmFsIEpTT04gZGF0YSB3aGVyZSB0aGUgZGVyZWZlcmVuY2VkIHZhbHVlcyBzZXJ2ZSBhcyBpbnB1dCBmb3Iga2V5d29yZHMgaW4gYSBkZXJpdmVkIHN1YnNjaGVtYS4KLSBbSHlwZXItU2NoZW1hIDIwMTktMDldKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvdm9jYWIvaHlwZXItc2NoZW1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEtleXdvcmRzIHRvIGFubm90YXRlIEpTT04gZG9jdW1lbnRzIHdpdGggaHlwZXJsaW5rcy4gVGhlc2UgaHlwZXJsaW5rcyBpbmNsdWRlIGF0dHJpYnV0ZXMgZGVzY3JpYmluZyBob3cgdG8gbWFuaXB1bGF0ZSBhbmQgaW50ZXJhY3Qgd2l0aCByZW1vdGUgcmVzb3VyY2VzIHRocm91Z2ggaHlwZXJtZWRpYSBlbnZpcm9ubWVudHMgc3VjaCBhcyBIVFRQLCBhcyB3ZWxsIGFzIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIGxpbmsgaXMgdXNhYmxlIGJhc2VkIG9uIHRoZSBpbnN0YW5jZSB2YWx1ZS4KLSBbSlNPTiBTY2hlbWEgMjAyMC0xMiBBcHBsaWNhdG9yXShodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3ZvY2FiL2FwcGxpY2F0b3I/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQXBwbGljYXRvciBrZXl3b3JkcyB0aGF0IGFyZSByZWNvbW1lbmRlZCBmb3IgdXNlIGFzIHRoZSBiYXNpcyBvZiBvdGhlciB2b2NhYnVsYXJpZXMuCi0gW0pTT04gU2NoZW1hIDIwMjAtMTIgQ29udGVudF0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi92b2NhYi9jb250ZW50P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFubm90YXRpb25zIGtleXdvcmRzIHRoYXQgaW5kaWNhdGUgdGhhdCBhbiBpbnN0YW5jZSBjb250YWlucyBub24tSlNPTiBkYXRhIGVuY29kZWQgaW4gYSBKU09OIHN0cmluZy4KLSBbSlNPTiBTY2hlbWEgMjAyMC0xMiBDb3JlXShodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3ZvY2FiL2NvcmU/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gS2V5d29yZHMgdGhhdCBhcmUgZWl0aGVyIHJlcXVpcmVkIGluIG9yZGVyIHRvIHByb2Nlc3MgYW55IHNjaGVtYSBvciBtZXRhLXNjaGVtYSwgaW5jbHVkaW5nIHRob3NlIHNwbGl0IGFjcm9zcyBtdWx0aXBsZSBkb2N1bWVudHMsIG9yIGV4aXN0IHRvIHJlc2VydmUga2V5d29yZHMgZm9yIHB1cnBvc2VzIHRoYXQgcmVxdWlyZSBndWFyYW50ZWVkIGludGVyb3BlcmFiaWxpdHkuCi0gW0pTT04gU2NoZW1hIDIwMjAtMTIgRm9ybWF0IEFubm90YXRpb25dKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvdm9jYWIvZm9ybWF0LWFubm90YXRpb24/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gYW5ub3RhdGlvbiBrZXl3b3JkIGRlZmluZWQgdG8gYWxsb3cgc2NoZW1hIGF1dGhvcnMgdG8gY29udmV5IHNlbWFudGljIGluZm9ybWF0aW9uIGZvciBhIGZpeGVkIHN1YnNldCBvZiB2YWx1ZXMgd2hpY2ggYXJlIGFjY3VyYXRlbHkgZGVzY3JpYmVkIGJ5IGF1dGhvcml0YXRpdmUgcmVzb3VyY2VzLgotIFtKU09OIFNjaGVtYSAyMDIwLTEyIEZvcm1hdCBBc3NlcnRpb25dKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvdm9jYWIvZm9ybWF0LWFzc2VydGlvbj91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBbiBhc3NlcnRpb24ga2V5d29yZCBkZWZpbmVkIHRvIGFsbG93IHNjaGVtYSBhdXRob3JzIHRvIGNvbnZleSBzZW1hbnRpYyBpbmZvcm1hdGlvbiBmb3IgYSBmaXhlZCBzdWJzZXQgb2YgdmFsdWVzIHdoaWNoIGFyZSBhY2N1cmF0ZWx5IGRlc2NyaWJlZCBieSBhdXRob3JpdGF0aXZlIHJlc291cmNlcy4KLSBbSlNPTiBTY2hlbWEgMjAyMC0xMiBNZXRhLURhdGFdKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvdm9jYWIvbWV0YS1kYXRhP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZXNlIGdlbmVyYWwtcHVycG9zZSBhbm5vdGF0aW9uIGtleXdvcmRzIHByb3ZpZGUgY29tbW9ubHkgdXNlZCBpbmZvcm1hdGlvbiBmb3IgZG9jdW1lbnRhdGlvbiBhbmQgdXNlciBpbnRlcmZhY2UgZGlzcGxheSBwdXJwb3Nlcy4KLSBbSlNPTiBTY2hlbWEgMjAyMC0xMiBVbmV2YWx1YXRlZF0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi92b2NhYi91bmV2YWx1YXRlZD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBLZXl3b3JkcyB0aGF0IGVuYWJsZSBzY2hlbWEgYXV0aG9ycyB0byBhcHBseSBzdWJzY2hlbWFzIHRvIGFycmF5IGl0ZW1zIG9yIG9iamVjdCBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBub3QgYmVlbiBzdWNjZXNzZnVsbHkgZXZhbHVhdGVkIGFnYWluc3QgYW55IGR5bmFtaWMtc2NvcGUgc3Vic2NoZW1hIG9mIGFueSBhZGphY2VudCBrZXl3b3Jkcy4KLSBbSlNPTiBTY2hlbWEgMjAyMC0xMiBWYWxpZGF0aW9uXShodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3ZvY2FiL3ZhbGlkYXRpb24/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVmFsaWRhdGlvbiBrZXl3b3JkcyBpbiBhIHNjaGVtYSBpbXBvc2UgcmVxdWlyZW1lbnRzIGZvciBzdWNjZXNzZnVsIHZhbGlkYXRpb24gb2YgYW4gaW5zdGFuY2UuIFRoZXNlIGtleXdvcmRzIGFyZSBhbGwgYXNzZXJ0aW9ucyB3aXRob3V0IGFueSBhbm5vdGF0aW9uIGJlaGF2aW9yLgotIFtVbmlxdWVuZXNzIG9mIEFycmF5IEl0ZW1zXShodHRwczovL2pzb24tZXZlcnl0aGluZy5uZXQvanNvbi1zY2hlbWEvI2Etdm9jYWJ1bGFyeS1mb3ItaWRlbnRpZnlpbmctdW5pcXVlbmVzcy1vZi1hcnJheS1pdGVtcz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBIHZvY2FidWxhcnkgZGVmaW5pbmcga2V5d29yZHMgdGhhdCBjYW4gYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGF0IGFycmFyeSBpbnN0YW5jZXMgY29udGFpbiB1bmlxdWUgdmFsdWVzIGFzIGRldGVybWluZWQgYnkgb25lIG9yIG1vcmUgZ2l2ZW4gcGF0aHMgd2l0aGluIGVhY2ggaXRlbS4KCiMjIFJlZ2lzdHJpZXMKCi0gW0FzeW5jQVBJIFNjaGVtYXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9zcGVjLWpzb24tc2NoZW1hcz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgYWxsIHRoZSBKU09OIFNjaGVtYSBkb2N1bWVudHMgZm9yIHZhbGlkYXRpbmcgQXN5bmNBUEkgZG9jdW1lbnRzLgotIFtDb25kYSBTY2hlbWFzXShodHRwczovL2dpdGh1Yi5jb20vY29uZGEvc2NoZW1hcz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBDb25kYSBmaWxlIGZvcm1hdHMgYW5kIHNjaGVtYXMuCi0gW0ludGVsbGlnZW5jZS5BSSBTY2hlbWFzXShodHRwczovL3N0dWRpby5pbnRlbGxpZ2VuY2UuYWk/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSBzY2hlbWEgcmVnaXN0cnkgYnkgSW50ZWxsaWdlbmNlLkFJLgotIFtLcmFrZW5EIFNjaGVtYXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9rcmFrZW5kL2tyYWtlbmQtc2NoZW1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoaXMgcmVwb3NpdG9yeSBjb250YWlucyB0aGUgc291cmNlIGNvZGUgdXNlZCB0byBwdWJsaXNoIEtyYWtlbkQmI3gyNztzIGNvbmZpZ3VyYXRpb24gc2NoZW1hcy4KLSBbT0NTRiBTY2hlbWFzXShodHRwczovL2dpdGh1Yi5jb20vb2NzZi9vY3NmLXNjaGVtYT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGlzIHJlcG9zaXRvcnkgZGVmaW5lcyB0aGUgT3BlbiBDeWJlcnNlY3VyaXR5IFNjaGVtYSBGcmFtZXdvcmsgKE9DU0YpIHNjaGVtYS4gT0NTRiBpcyBhIGZyYW1ld29yayBmb3IgY3JlYXRpbmcgc2NoZW1hcyBhbmQgaXQgYWxzbyBkZWxpdmVycyBhIGN5YmVyc2VjdXJpdHkgZXZlbnQgc2NoZW1hIGJ1aWx0IHdpdGggdGhlIGZyYW1ld29yay4KLSBbU2NoZW1hU3RvcmVdKGh0dHBzOi8vd3d3LnNjaGVtYXN0b3JlLm9yZz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgbGFyZ2VzdCBjb2xsZWN0aW9uIG9mIGluZGVwZW5kZW50IEpTT04gc2NoZW1hcyBpbiB0aGUgd29ybGQgbWVhbnQgYXMgYSB1bml2ZXJzYWwgSlNPTiBzY2hlbWEgc3RvcmUsIHdoZXJlIHNjaGVtYXMgZm9yIHBvcHVsYXIgSlNPTiBkb2N1bWVudHMgY2FuIGJlIGZvdW5kLgoKIyMgQWRvcHRpb24KCipBd2Vzb21lIHByb2R1Y3RzIGFuZCBjb21wYW5pZXMgdGhhdCBhZG9wdGVkIEpTT04gU2NoZW1hLiBEaWQgd2UgbWlzcyBhbnk/IFtMZXQKdXMKa25vdyFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdmlvdHRpL2F3ZXNvbWUtanNvbnNjaGVtYS9pc3N1ZXMvbmV3P2Fzc2lnbmVlcz0mbGFiZWxzPWFkb3B0aW9uJnRlbXBsYXRlPWNvdXJzZS5tZCZ0aXRsZT0pKgoKLSBbQWRvYmUgRXhwZXJpZW5jZSBNYW5hZ2VyXShodHRwczovL2V4cGVyaWVuY2VsZWFndWUuYWRvYmUuY29tL2RvY3MvZXhwZXJpZW5jZS1tYW5hZ2VyLTY1L2Zvcm1zL2FkYXB0aXZlLWZvcm1zLWFkdmFuY2VkLWF1dGhvcmluZy9hZGFwdGl2ZS1mb3JtLWpzb24tc2NoZW1hLWZvcm0tbW9kZWwuaHRtbD9sYW5nPWVuP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBBZG9iZSBFeHBlcmllbmNlIE1hbmFnZXIgY29udGVudCBtYW5hZ2VtZW50IHNvbHV0aW9uIGZvciBidWlsZGluZyB3ZWJzaXRlcywgbW9iaWxlIGFwcHMgYW5kIGZvcm1zIHN1cHBvcnRzIGNyZWF0aW5nIGFkYXB0YXRpdmUgZm9ybXMgdXNpbmcgSlNPTiBTY2hlbWEuCi0gW0FtYXpvbiBFdmVudEJyaWRnZSBTY2hlbWEgUmVnaXN0cnldKGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vYWJvdXQtYXdzL3doYXRzLW5ldy8yMDIwLzA5L2FtYXpvbi1ldmVudGJyaWRnZS1zY2hlbWEtcmVnaXN0cnktYW5ub3VuY2VzLXN1cHBvcnQtZm9yLWpzb24tc2NoZW1hLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBbWF6b24gRXZlbnRCcmlkZ2UgU2NoZW1hIFJlZ2lzdHJ5IGhhcyBzdXBwb3J0IGZvciBKU09OIFNjaGVtYSwgYWxsb3dpbmcgY3VzdG9tZXJzIHRvIHZhbGlkYXRlLCBhbm5vdGF0ZSwgYW5kIG1hbmlwdWxhdGUgSlNPTiBkb2N1bWVudHMgY29uZm9ybWluZyB0byBKU09OIFNjaGVtYSBEcmFmdCA0IHNwZWNpZmljYXRpb24uCi0gW0FwaWFyeV0oaHR0cHM6Ly9oZWxwLmFwaWFyeS5pby9hcGlfMTAxL2pzb24tc2NoZW1hLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBcGlhcnkmI3gyNztzIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24gaXMgYWJsZSB0byByZW5kZXIgSlNPTiBTY2hlbWEgZG9jdW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBwYXlsb2Fkcy4KLSBbQXNzZXJ0aWJsZV0oaHR0cHM6Ly9hc3NlcnRpYmxlLmNvbS9qc29uLXNjaGVtYS12YWxpZGF0aW9uP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFzc2VydGlibGUgcHJvdmlkZXMgYSBmcmVlLXRvLXVzZSBBUEkgdG8gdmFsaWRhdGUgYSBKU09OIGRvY3VtZW50IGFnYWluc3QgYSBKU09OIFNjaGVtYSBhbmQgYSBzZXJ2aWNlIHRvIHRlc3QgYW5kIG1vbml0b3Igd2ViIHNlcnZpY2VzIHVzaW5nIEpTT04gU2NoZW1hLgotIFtBeHdheSBBUEkgR2F0ZXdheV0oaHR0cHM6Ly9kb2NzLmF4d2F5LmNvbS9idW5kbGUvQVBJR2F0ZXdheV83NjJfUG9saWN5RGV2RmlsdGVyUmVmZXJlbmNlX2FsbE9TX2VuX0hUTUw1L3BhZ2UvQ29udGVudC9Qb2xpY3lEZXZUb3BpY3MvY29udGVudF9zY2hlbWFfanNvbi5odG0/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIEFQSSBHYXRld2F5IGNhbiBjaGVjayB0aGF0IEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uIChKU09OKSBtZXNzYWdlcyBjb25mb3JtIHRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgYSB3ZWIgc2VydmljZSBieSB2YWxpZGF0aW5nIHJlcXVlc3RzIGFnYWluc3QgYSBzcGVjaWZpZWQgSlNPTiBzY2hlbWEuCi0gW0Nsb3VkZmxhcmVdKGh0dHBzOi8vYmxvZy5jbG91ZGZsYXJlLmNvbS9jbG91ZGZsYXJlcy1qc29uLXBvd2VyZWQtZG9jdW1lbnRhdGlvbi1nZW5lcmF0b3IvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBDbG91ZGZsYXJlIG1ha2VzIHVzZSBvZiBKU09OIFNjaGVtYSBhbmQgSHlwZXIgU2NoZW1hIHRvIGtlZXAgdHJhY2sgb2YgdGhlaXIgQVBJIGVuZHBvaW50cy4KLSBbQ2xvdWRmbGFyZSBUZXJyYWZvcm1dKGh0dHBzOi8vd3d3LmluZm9xLmNvbS9uZXdzLzIwMjEvMDQvY2xvdWRmbGFyZS10ZXJyYWZvcm0vP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBDbG91ZGZsYXJlIFRlcnJhZm9ybSBwcm92aWRlciBjb21lcyB3aXRoIGEgdG9vbCB0byBnZW5lcmF0ZSBUZXJyYWZvcm0gY29uZmlndXJhdGlvbiBmcm9tIGV4aXN0aW5nIENsb3VkZmxhcmUgcmVzb3VyY2VzIHRoYXQgdXNlcyBKU09OIFNjaGVtYSB0byBtYXAgZGF0YSBiZXR3ZWVuIGJvdGggdGVjaG5vbG9naWVzLgotIFtDb25mbHVlbnQgU2NoZW1hIFJlZ2lzdHJ5XShodHRwczovL2RvY3MuY29uZmx1ZW50LmlvL3BsYXRmb3JtL2N1cnJlbnQvc2NoZW1hLXJlZ2lzdHJ5L3NlcmRlcy1kZXZlbG9wL3NlcmRlcy1qc29uLmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSlNPTiBTY2hlbWEgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgQXBhY2hlIEthZmthIEphdmEgY2xpZW50IGFuZCBjb25zb2xlIHRvb2xzIHRvIGZhaWwgaWYgdGhlIHBheWxvYWQgaXMgbm90IHZhbGlkIGZvciB0aGUgZ2l2ZW4gc2NoZW1hLgotIFtDb250ZW50c3RhY2tdKGh0dHBzOi8vd3d3LmNvbnRlbnRzdGFjay5jb20vZG9jcy9kZXZlbG9wZXJzL2NyZWF0ZS1jb250ZW50LXR5cGVzL2pzb24tc2NoZW1hLWZvci1jcmVhdGluZy1hLWNvbnRlbnQtdHlwZS8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIENvbnRlbnRzdGFjayBDTVMgcGxhdGZvcm0gc3VwcG9ydHMgY3JlYXRpbmcgY29udGVudCB0eXBlcyB1c2luZyBKU09OIFNjaGVtYS4KLSBbRGVjaXNpb25zXShodHRwczovL2RvY3VtZW50YXRpb24uZGVjaXNpb25zLmNvbS9kb2NzL2NyZWF0ZS10eXBlcy1qc29uLXNjaGVtYT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgRGVjaXNpb25zIHJ1bGVzLWRyaXZlbiBidXNpbmVzcyBwcm9jZXNzIGF1dG9tYXRpb24gcGxhdGZvcm0gc3VwcG9ydCB1c2luZyBKU09OIFNjaGVtYSB0byBnZW5lcmF0ZSBKU09OIGRlc2VyaWFsaXplcnMuCi0gW0RvY1NwcmluZ10oaHR0cHM6Ly9kb2NzcHJpbmcuY29tL2RvY3MvYXBpL2dldF90ZW1wbGF0ZV9zY2hlbWEuaHRtbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgRG9jU3ByaW5nIHNlcnZpY2UgdG8gYXV0b21hdGljYWxseSBmaWxsIG91dCBQREYgZm9ybXMgc3VwcG9ydHMgZ2VuZXJhdGluZyBKU09OIFNjaGVtYSBkZWZpbml0aW9ucyBmb3IgdXNlci1jcmVhdGVkIHRlbXBsYXRlcy4KLSBbRHJ1cGFsIFBhdHRlcm5raXRdKGh0dHBzOi8vd3d3LmRydXBhbC5vcmcvcHJvamVjdC9wYXR0ZXJua2l0P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBEcnVwYWwgUGF0dGVybmtpdCBtb2R1bGUgdXNlcyBKU09OIFNjaGVtYSB0byBkZWZpbmUgcGF0dGVybiB0ZW1wbGF0ZXMuCi0gW0Zvcm0uaW9dKGh0dHBzOi8vd3d3LmZvcm0uaW8vYXJ0aWNsZS9hbmd1bGFyLWpzb24tc2NoZW1hLWZvcm0tYnVpbGRlcj91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgRm9ybS5pbyBvbmxpbmUgd2ViIGZvcm0gZ2VuZXJhdG9yIHN1cHBvcnRzIGdlbmVyYXRpbmcgQW5ndWxhci5qcyBmb3JtcyB1c2luZyBKU09OIFNjaGVtYS4KLSBbR2Vub21pYyBEYXRhIENvbW1vbnNdKGh0dHBzOi8vZ2RjLmNhbmNlci5nb3YvZGV2ZWxvcGVycy9nZGMtZGF0YS1tb2RlbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgR2Vub21pYyBEYXRhIENvbW1vbnMgZGF0YSBtb2RlbCBpcyBkZWZpbmVkIHVzaW5nIEpTT04gU2NoZW1hLgotIFtIYWNrb2xhZGVdKGh0dHBzOi8vaGFja29sYWRlLmNvbS9oZWxwL0pTT05TY2hlbWEuaHRtbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgSGFja29sYWRlIGRhdGEgbW9kZWxsaW5nIHNlcnZpY2Ugc3VwcG9ydHMgZGVmaW5pbmcgZW50aXRpZXMgdXNpbmcgSlNPTiBTY2hlbWEuCi0gW0hlcm9rdV0oaHR0cHM6Ly9ibG9nLmhlcm9rdS5jb20vanNvbl9zY2hlbWFfZm9yX2hlcm9rdV9wbGF0Zm9ybV9hcGk/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSGVyb2t1IG1ha2VzIHVzZSBvZiBKU09OIFNjaGVtYSB0byBwdWJsaXNoIG1hY2hpbmUtcmVhZGFibGUgc2NoZW1hIGRlZmluaXRpb25zIGZvciB0aGVpciBwdWJsaWMgQVBJcy4KLSBbSHVtYW4gQ2VsbCBBdGxhc10oaHR0cHM6Ly9kYXRhLmh1bWFuY2VsbGF0bGFzLm9yZy9tZXRhZGF0YS9zdHJ1Y3R1cmU/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIG9wZW4gZGF0YSBnZW5lcmF0ZWQgYnkgdGhlIEh1bWFuIENlbGwgQXRsYXMgZGVzY3JpYmVzIG1ldGFkYXRhIHN0cnVjdHVyZSB1c2luZyBKU09OIFNjaGVtYS4KLSBbSUJNIEFwcCBDb25uZWN0XShodHRwczovL3d3dy5pYm0uY29tL2RvY3MvZW4vYXBwLWNvbm5lY3QvMTEuMC4wP3RvcGljPXNjaGVtYS1qc29uLXJlcXVpcmVtZW50cy1tZXNzYWdlLW1hcHM/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIEdyYXBoaWNhbCBEYXRhIE1hcHBpbmcgZWRpdG9yIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbmQgdHJhbnNmb3JtIEpTT04gbWVzc2FnZXMgd2l0aCB0aGUgZGF0YSBtb2RlbCBkZWZpbmVkIGZyb20gYSBKU09OIHNjaGVtYS4KLSBbSW5mb3JtYXRpY2FdKGh0dHBzOi8vZG9jcy5pbmZvcm1hdGljYS5jb20vZGF0YS1pbnRlZ3JhdGlvbi9iMmItZGF0YS10cmFuc2Zvcm1hdGlvbi8xMC0yLTIvdXNlci1ndWlkZS93aXphcmQtaW5wdXQtYW5kLW91dHB1dC1mb3JtYXRzL2pzb24vc2FtcGxlLWpzb24tc2NoZW1hLmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIEluZm9ybWF0aWNhIGRhdGEgbWFuYWdlbWVudCBwbGF0Zm9ybSBzdXBwb3J0cyBjcmVhdGluZyBhdXRvLWdlbmVyYXRlZCBkYXRhIHByb2Nlc3NvciB0cmFuc2Zvcm1hdGlvbnMgdXNpbmcgSlNPTiBTY2hlbWEuCi0gW0pTT04gQmluUGFja10oaHR0cHM6Ly93d3cuanNvbmJpbnBhY2sub3JnP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEpTT04gQmluUGFjayB1c2VzIEpTT04gU2NoZW1hIHRvIHBlcmZvcm0gc3BhY2UtZWZmaWNpZW50IEpTT04gYmluYXJ5IHNlcmlhbGl6YXRpb24uCi0gW0pTT046QVBJXShodHRwczovL2dpdGh1Yi5jb20vanNvbi1hcGkvanNvbi1hcGkvYmxvYi9hMDI5NjM1MmI2ZWI1N2E0ZWEzZWIwOGExMzMyZTMxMWY3OGFkYWZhL3NjaGVtYT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgSlNPTjpBUEkgMS4wIGFuZCBsYXRlciBzcGVjaWZpY2F0aW9ucyBmb3IgYnVpbGRpbmcgQVBJcyBpbiBKU09OIHVzZSBKU09OIFNjaGVtYSB0byBkZWZpbmUgSlNPTjpBUEkgcmVzcG9uc2VzLgotIFtKYW1GXShodHRwczovL2RvY3MuamFtZi5jb20vdGVjaG5pY2FsLXBhcGVycy9qYW1mLXByby9qc29uLXNjaGVtYS8xMC4yNi4wL1VuZGVyc3RhbmRpbmdfdGhlX1N0cnVjdHVyZV9vZl9hX0pTT05fU2NoZW1hX01hbmlmZXN0Lmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIEphbUYgQXBwbGUgZW50ZXJwcmlzZSBtYW5hZ2VtZW50IHNlcnZpY2Ugc3VwcG9ydHMgY3JlYXRpbmcgYXBwIG1hbmlmZXN0cyB1c2luZyBKU09OIFNjaGVtYS4KLSBbSmV0QnJhaW5zXShodHRwczovL3d3dy5qZXRicmFpbnMuY29tL2hlbHAvb2JqYy9qc29uLmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIHN1aXRlIG9mIEpldEJyYWlucyBwcm9ncmFtbWluZyBlZGl0b3JzIHN1cHBvcnRzIEpTT04gY29kZS1jb21wbGV0aW9uIGJhc2VkIG9uIEpTT04gU2NoZW1hLgotIFtLcmFrZW5EXShodHRwczovL3d3dy5rcmFrZW5kLmlvL2RvY3MvZW5kcG9pbnRzL2pzb24tc2NoZW1hLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBLcmFrZW5EIGVuZHBvaW50cyByZWNlaXZpbmcgYSBKU09OIG9iamVjdCBpbiBpdHMgYm9keSBjYW4gYXBwbHkgYXV0b21hdGljIHZhbGlkYXRpb25zIHVzaW5nIHRoZSBKU09OIFNjaGVtYSB2b2NhYnVsYXJ5IGJlZm9yZSB0aGUgY29udGVudCBwYXNzZXMgdG8gdGhlIGJhY2tlbmRzLgotIFtMaWdodGJsdWUuaW9dKGh0dHBzOi8vZG9jcy5saWdodGJsdWUuaW8vc3RhbmRhcmRzL2pzb25fc2NoZW1hLmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIExpZ2h0Ymx1ZSBkb2N1bWVudCBiYXNlZCBkYXRhIGFjY2VzcyBsYXllciBmcmFtZXdvcmsgdXNlcyBKU09OIFNjaGVtYSB0byBkZWZpbmUgY2VydGFpbiBmaWxlIHJlc291cmNlcyBpbiB0aGUgcHJvamVjdC4KLSBbTGludXhdKGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbGF0ZXN0L2RldmljZXRyZWUvYmluZGluZ3Mvd3JpdGluZy1zY2hlbWEuaHRtbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgTGludXgga2VybmVsIHVzZXMgSlNPTiBTY2hlbWEgdG8gZGVmaW5lIERldmljZXRyZWUgYmluZGluZ3MuCi0gW01hbmZyZWRdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9S0IyRGtlUW84ZDg/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gTWFuZnJlZCB1c2VzIEpTT04gU2NoZW1hIHRvIGRlZmluZSB0aGVpciBBUElzIGFuZCB0aGVpciBvcGVuIENWIGZvcm1hdC4KLSBbTWljcm9zb2Z0XShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2pzb24tc2NoZW1hcz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBIGNvbGxlY3Rpb24gb2YgSlNPTiBTY2hlbWEgZGVmaW5pdGlvbnMgdXNlZCBieSBwcm9kdWN0cyBhbmQgc2VydmljZXMgYXQgTWljcm9zb2Z0LgotIFtNb25nb0RCXShodHRwczovL2RvY3MubW9uZ29kYi5jb20vbWFudWFsL3JlZmVyZW5jZS9vcGVyYXRvci9xdWVyeS9qc29uU2NoZW1hLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBNb25nb0RCIDMuNiBhbmQgbGF0ZXIgc3VwcG9ydCBKU09OIFNjaGVtYSBmb3IgcXVlcnlpbmcgZGF0YSBhbmQgZGVmaW5pbmcgY29sbGVjdGlvbiBjb25zdHJhaW50cy4KLSBbTW96aWxsYSBEYXRhIFBpcGVsaW5lXShodHRwczovL2RvY3MudGVsZW1ldHJ5Lm1vemlsbGEub3JnL2NvbmNlcHRzL3BpcGVsaW5lL3NjaGVtYXMuaHRtbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBNb3ppbGxhIERhdGEgUGlwZWxpbmUgdXNlcyBKU09OIFNjaGVtYSB0byBkZWZpbmUgdGVsZW1ldHJ5IGRhdGEgaW5nZXN0ZWQgZnJvbSBNb3ppbGxhIHByb2R1Y3RzIGFuZCBsb2dzIGZyb20gdmFyaW91cyBzZXJ2aWNlcy4KLSBbTXVsZVNvZnRdKGh0dHBzOi8vZG9jcy5tdWxlc29mdC5jb20vanNvbi1tb2R1bGUvMi4xL2pzb24tc2NoZW1hLXZhbGlkYXRpb24/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIE11bGVTb2Z0IGludGVncmF0aW9uIGZyYW1ld29yayBzdXBwb3J0cyB2YWxpZGF0aW5nIGEgSlNPTiBkb2N1bWVudCBhZ2FpbnN0IGEgSlNPTiBTY2hlbWEuCi0gW015U1FMXShodHRwczovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi84LjAvZW4vanNvbi12YWxpZGF0aW9uLWZ1bmN0aW9ucy5odG1sP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIE15U1FMIDguMC4xNyBhbmQgbGF0ZXIgc3VwcG9ydCB0YWJsZSBjb25zdHJhaW50cyB0byB2YWxpZGF0ZSBhIEpTT04gZG9jdW1lbnQgYWdhaW5zdCBhIEpTT04gU2NoZW1hLgotIFtOYWthZGldKGh0dHBzOi8vbmFrYWRpLmlvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBOYWthZGkgb3Blbi1zb3VyY2UgZGlzdHJpYnV0ZWQgZXZlbnQgYnVzIHN1cHBvcnRzIGRlZmluaW5nIGV2ZW50IHR5cGVzIHdpdGggSlNPTiBTY2hlbWEuCi0gW05hdGlvbmFsIENhbmNlciBJbnN0aXR1dGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9OQ0ktR0RDL2dkY2RpY3Rpb25hcnkvdHJlZS9kZXZlbG9wL2dkY2RpY3Rpb25hcnkvc2NoZW1hcz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgTmF0aW9uYWwgQ2FuY2VyIEluc3RpdHV0ZSB1c2VzIEpTT04gU2NoZW1hIHRvIG1vZGVsIGVudGl0aWVzIGZvciB0aGVpciBHZW5vbWljIERhdGEgQ29tbW9ucyBjb2xsZWN0aW9uLgotIFtOaW5KU10oaHR0cHM6Ly93d3cuaXB0Yy5vcmcvc3RkL25pbmpzL3VzZXJndWlkZS8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gTmluSlMgc3RhbmRhcmRpc2VzIHRoZSByZXByZXNlbnRhdGlvbiBvZiBuZXdzIGNvbnRlbnQgaW4gSlNPTiBhbmQgbWFpbnRhaW5zIGEgSlNPTiBTY2hlbWEgZG9jdW1lbnQgdG8gaGVscCB2YWxpZGF0ZSBOaW5KUyBpbXBsZW1lbnRhdGlvbnMuCi0gW09wZW4gUG9saWN5IEFnZW50IChPUEEpXShodHRwczovL2Jsb2cub3BlbnBvbGljeWFnZW50Lm9yZy9lbmhhbmNlZC10eXBlLWNoZWNraW5nLWZvci1vcGEtd2l0aC1qc29uLXNjaGVtYS1hbm5vdGF0aW9ucy04MjZhY2IwZjU3NT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgT1BBIHBvbGljeS1iYXNlZCBjb250cm9sIHBsYXRmb3JtIDAuMjcuMCBhbmQgbmV3ZXIgc3VwcG9ydCBzdGF0aWNhbGx5IHR5cGUtY2hlY2tpbmcgUmVnbyBwb2xpY3kgY29kZSB1c2luZyBKU09OIFNjaGVtYS4KLSBbT3J5IEtyYXRvc10oaHR0cHM6Ly93d3cub3J5LnNoL2tyYXRvcy9kb2NzL3JlZmVyZW5jZS9qc29uLXNjaGVtYS1qc29uLXBhdGhzLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgT3J5IEtyYXRvcyBpZGVudGl0eSAmYW1wOyB1c2VyIG1hbmFnZW1lbnQgcHJvZHVjdCByZWxpZXMgb24gSlNPTiBTY2hlbWEgZnJvbSBjb25maWd1cmF0aW9uIHZhbGlkYXRpb24sIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBmb3IgZGVmaW5pbmcgaWRlbnRpdHkgc2NoZW1hcy4KLSBbUG9zdG1hbl0oaHR0cHM6Ly9sZWFybmluZy5wb3N0bWFuLmNvbS9kb2NzL3dyaXRpbmctc2NyaXB0cy9zY3JpcHQtcmVmZXJlbmNlcy90ZXN0LWV4YW1wbGVzLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgUG9zdG1hbiBBUEkgcGxhdGZvcm0gc3VwcG9ydHMgcnVubmluZyBKU09OIFNjaGVtYSB2YWxpZGF0aW9uIGluIEFQSSB0ZXN0cy4KLSBbUkRBIERNUCBDb21tb24gU3RhbmRhcmQgZm9yIG1hY2hpbmUtYWN0aW9uYWJsZSBEYXRhIE1hbmFnZW1lbnQgUGxhbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9SREEtRE1QLUNvbW1vbi9SREEtRE1QLUNvbW1vbi1TdGFuZGFyZD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgUkRBIERNUCBDb21tb24gU3RhbmRhcmRzIFdvcmtpbmcgR3JvdXAgbWFpbnRhaW5zIEpTT04gU2NoZW1hcyB0byB2YWxpZGF0ZSBtYURNUCBKU09OIGRvY3VtZW50cy4KLSBbUkVTVEhlYXJ0XShodHRwczovL3Jlc3RoZWFydC5vcmcvZG9jcy9qc29uLXNjaGVtYS12YWxpZGF0aW9uLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBSRVNUSGVhcnQgc3VwcG9ydHMgTW9uZ29EQiBzY2hlbWEgdmFsaWRhdGlvbiB0byBlbmZvcmNlIGEgZm9ybWF0IHRvIGRvY3VtZW50czogcnVsZXMtYmFzZWQgdmFsaWRhdGlvbiBmcm9tIE1vbmdvREIgMy4yIGFuZCBKc29uIFNjaGVtYSB2YWxpZGF0aW9uIGZyb20gTW9uZ29EQiAzLjYuCi0gW1JlbW90ZV0oaHR0cHM6Ly9yZW1vdGUuY29tL2Jsb2cvaG93LXJlbW90ZS1idWlsZHMtb25ib2FyZGluZy1mb3ItNjAtY291bnRyaWVzP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFJlbW90ZSB1c2VzIEpTT04gU2NoZW1hIHRvIHBlcmZvcm0gZm9ybSBnZW5lcmF0aW9uIGFuZCBkYXRhIHZhbGlkYXRpb24gaW4gdGhlaXIgZnJvbnRlbmQgYW5kIGJhY2tlbmQgc3lzdGVtcy4KLSBbUmV0b29sXShodHRwczovL2RvY3MucmV0b29sLmNvbS9kb2NzL3dvcmtpbmctd2l0aC1qc29uLXNjaGVtYS1mb3JtP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBSZXRvb2wgbm8tY29kZSBwbGF0Zm9ybSBzdXBwb3J0cyBnZW5lcmF0aW5nIHdlYiBmb3JtcyB1c2luZyBKU09OIFNjaGVtYS4KLSBbU2VydmVybGVzc10oaHR0cHM6Ly93d3cuc2VydmVybGVzcy5jb20vZnJhbWV3b3JrL2RvY3MvY29uZmlndXJhdGlvbi12YWxpZGF0aW9uLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgU2VydmVybGVzcyBmcmFtZXdvcmsgdmFsaWRhdGVzIHNlcnZpY2UgY29uZmlndXJhdGlvbiBmaWxlcyB1c2luZyBKU09OIFNjaGVtYS4KLSBbU21hcnQgRGF0YSBNb2RlbHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zbWFydC1kYXRhLW1vZGVscz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgU21hcnQgRGF0YSBNb2RlbHMgR2l0SHViIG9yZ2FuaXphdGlvbiBtYWtlcyB1c2Ugb2YgSlNPTiBTY2hlbWEgdG8gZGVzY3JpYmUgaGFybW9uaXplZCBEYXRhIE1vZGVscyBmb3IgZGlmZmVyZW50IFNtYXJ0IERvbWFpbnMuCi0gW1Nub3dwbG93XShodHRwczovL2RvY3Muc25vd3Bsb3dhbmFseXRpY3MuY29tL2RvY3MvdW5kZXJzdGFuZGluZy10cmFja2luZy1kZXNpZ24vdW5kZXJzdGFuZGluZy1zY2hlbWFzLWFuZC12YWxpZGF0aW9uLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgU25vd3Bsb3cgYW5hbHl0aWNzIHBsYXRmb3JtIHN1cHBvcnQgdXNpbmcgSlNPTiBTY2hlbWEgdG8gZGVmaW5lIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGRhdGEgdG8gY29sbGVjdC4KLSBbU3ByZWFkSlNdKGh0dHBzOi8vd3d3LmdyYXBlY2l0eS5jb20vc3ByZWFkanMvZG9jcy92MTMvb25saW5lL2pzb25zY2hlbWEuaHRtbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgU3ByZWFkSlMgSmF2YVNjcmlwdCBzcHJlYWRzaGVldCBsaWJyYXJ5IHVzZXMgSlNPTiBTY2hlbWEgdG8gZGVzY3JpYmUgdGhlIFNwcmVhZEpTIEpTT04gZGF0YSBmb3JtYXQuCi0gW1RJTFQgKG1hY2hpbmUtcmVhZGFibGUgcHJpdmFjeSBwb2xpY2llcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9UcmFuc3BhcmVuY3ktSW5mb3JtYXRpb24tTGFuZ3VhZ2Uvc2NoZW1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRJTFQgaXMgYSB0cmFuc3BhcmVuY3kgaW5mb3JtYXRpb24gbGFuZ3VhZ2UgYW5kIHRvb2xraXQgcG93ZXJlZCBieSBKU09OIFNjaGVtYSBleHBsaWNpdGx5IGRlc2lnbmVkIHRvIHJlcHJlc2VudCBhbmQgcHJvY2VzcyB0cmFuc3BhcmVuY3kgaW5mb3JtYXRpb24gaW4gbGluZSB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhlIEVVIEdlbmVyYWwgRGF0YSBQcm90ZWN0aW9uIFJlZ3VsYXRpb24gYW5kIGFsbG93aW5nIGZvciBhIG1vcmUgYXV0b21hdGVkIGFuZCBhZGFwdGl2ZSB1c2Ugb2Ygc3VjaCBpbmZvcm1hdGlvbiB0aGFuIGVzdGFibGlzaGVkLCBsZWdhbGVzZSBkYXRhIHByb3RlY3Rpb24gcG9saWNpZXMgZG8uCi0gW1UuUy4gRGVwYXJ0bWVudCBvZiBDb21tZXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL3VzbmlzdGdvdi9PU0NBTC90cmVlL21haW4vanNvbj91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgTmF0aW9uYWwgSW5zdGl0dXRlIG9mIFN0YW5kYXJkcyBhbmQgVGVjaG5vbG9neSB1c2VzIEpTT04gU2NoZW1hIERyYWZ0IDcgdG8gbW9kZWwgT3BlbiBTZWN1cml0eSBDb250cm9scyBBc3Nlc3NtZW50IExhbmd1YWdlIChPU0NBTCkgSlNPTiBkb2N1bWVudHMuCi0gW1dhbG1hcnQgZUNvbW1lcmNlXShodHRwczovL2RldmVsb3Blci53YWxtYXJ0LmNvbS9kb2N1bWVudGF0aW9uL2l0ZW0tb2JqZWN0LXY0LTAvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFdhbG1hcnQgcHVibGlzaGVzIEpTT04gU2NoZW1hIGRvY3VtZW50cyBmb3IgY2VydGFpbiByZXNvdXJjZXMgdGhhdCBkZXZlbG9wZXJzIGNhbiBtYWtlIHVzZSBvZiB3aGVuIGludGVncmF0dGluZyB3aXRoIHRoZSBXYWxtYXJ0IGVDb21tZXJjZSBwbGF0Zm9ybS4KLSBbV29yZHByZXNzXShodHRwczovL21ha2Uud29yZHByZXNzLm9yZy90aGVtZXMvMjAyMS8xMS8zMC90aGVtZS1qc29uLXNjaGVtYS8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gV29yZHByZXNzIG1haW50YWlucyBvZmZpY2lhbCBKU09OIFNjaGVtYSBkb2N1bWVudHMgdG8gaGVscCB3aXRoIGJ1aWxkaW5nIGJsb2NrIGJhc2VkIHRoZW1lcy4KLSBbWmFwaWVyXShodHRwczovL2dpdGh1Yi5jb20vemFwaWVyL3phcGllci1wbGF0Zm9ybS90cmVlL21hc3Rlci9wYWNrYWdlcy9zY2hlbWE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gWmFwaWVyIG1haW50YWlucyBhIGxhcmdlIHNldCBvZiBKU09OIFNjaGVtYSBkZWZpbml0aW9ucyB0aGF0IGRlZmluZSBpdHMgcGxhdGZvcm0uCi0gW1p1cGxvXShodHRwczovL3p1cGxvLmNvbS9qc29uLXNjaGVtYS9scC1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBadXBsbyBBUEkgZ2F0ZXdheSBwcm92aWRlcyBKU09OIFNjaGVtYSB2YWxpZGF0aW9uIGFuZCBzdXBwb3J0cyBnZW5lcmF0aW5nIEFQSSBkb2N1bWVudGF0aW9uIG91dCBvZiBPcGVuQVBJIHNwZWNpZmljYXRpb25zLgotIFtuZi1jb3JlXShodHRwczovL25mLWNvLnJlL3Rvb2xzLyNwaXBlbGluZS1zY2hlbWE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIG5mLWNvcmUgTmV4dGZsb3cgYW5hbHlzaXMgcGlwZWxpbmVzIGNvbGxlY3Rpb24gdXNlcyBKU09OIFNjaGVtYSB0byBkZWZpbmUgdGhlIHBhcmFtZXRlcnMgdXNlZCBieSBOZXh0ZmxvdyB3b3JrZmxvd3MuCgojIyBBcnRpY2xlcwoKLSAoMjAyMykgW0xMTXMgZm9yIFNjaGVtYSBBdWdtZW50YXRpb25dKGh0dHBzOi8vbWljaGFlbC5taW9yLmNhL2Jsb2cvbGxtcy1mb3Itc2NoZW1hLWF1Z21lbnRhdGlvbi8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gTGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzIGNhbiBiZSBleHBsb2l0ZWQgdG8gYXV0b21hdGljYWxseSBhdWdtZW50IEpTT04gU2NoZW1hcyB3aXRoIHVzZWZ1bCBpbmZvcm1hdGlvbi4KLSAoMjAyMikgW1doYXQgaXMgJnF1b3Q7TW9kZXJuJnF1b3Q7IEpTT04gU2NoZW1hP10oaHR0cHM6Ly9tb2Rlcm4tanNvbi1zY2hlbWEuY29tL3doYXQtaXMtbW9kZXJuLWpzb24tc2NoZW1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEhvdyAmcXVvdDttb2Rlcm4mcXVvdDsgSlNPTiBTY2hlbWEsIG1lYW5pbmcgMjAxOS0wOSwgMjAyMC0xMiwgYW5kIGxhdGVyLCBjYW4gc29sdmUgZmFyIG1vcmUgcHJvYmxlbXMgdGhhbiAmcXVvdDtjbGFzc2ljYWwmcXVvdDsgSlNPTiBTY2hlbWEgKGRyYWZ0LTA3IGFuZCBlYXJsaWVyKS4KLSAoMjAyMikgW1VzaW5nIER5bmFtaWMgUmVmZXJlbmNlcyB0byBTdXBwb3J0IEdlbmVyaWMgVHlwZXNdKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2Jsb2cvcG9zdHMvZHluYW1pY3JlZi1hbmQtZ2VuZXJpY3M/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gUmVwcmVzZW50aW5nIGdlbmVyaWMgdHlwZXMgZnJvbSBzdHJvbmdseS10eXBlZCBwcm9ncmFtbWluZyBsYW5ndWFnZXMgd2l0aCBKU09OIFNjaGVtYS4KLSAoMjAyMikgW0pTT04gU2NoZW1hIGlzIGEgY29uc3RyYWludCBzeXN0ZW1dKGh0dHBzOi8vbW9kZXJuLWpzb24tc2NoZW1hLmNvbS9qc29uLXNjaGVtYS1pcy1hLWNvbnN0cmFpbnQtc3lzdGVtP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIE9yOiBXaHkgb2JqZWN0LW9yaWVudGVkIHByb2dyYW1taW5nIGlzIGEgbWlzLW1hdGNoZWQgbWVudGFsIG1vZGVsIGZvciBKU09OIFNjaGVtYS4KLSAoMjAyMikgW0Zvcm1pbmcgbmV3IHJlbGF0aW9uc2hpcHM6IENvbnRyaWJ1dGluZyB0byBPcGVuIHNvdXJjZV0oaHR0cHM6Ly93d3cuY3Jvc3NyZWYub3JnL2Jsb2cvZm9ybWluZy1uZXctcmVsYXRpb25zaGlwcy1jb250cmlidXRpbmctdG8tb3Blbi1zb3VyY2UvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgZGVzY3JpcHRpb24gb2YgYWRvcHRpbmcgYW5kIGV4dGVuZGluZyBKU09OIEZvcm1zLCBhIEpTT04gU2NoZW1hIGJhc2VkIGZvcm0gcmVuZGVyaW5nIGxpYnJhcnksIHRvIHN1cHBvcnQgVnVlSlMgYW5kIFZ1ZXRpZnkuLgotICgyMDIyKSBbRG9jcyEgRG9jcyEgRG9jcyFdKGh0dHBzOi8vYnJhbmR1ci5vcmcvbmFub2dseXBocy8wMzEtYXBpLWRvY3M/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gb3ZlcnZpZXcgb2YgQVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiB1c2luZyBIeXBlciBTY2hlbWEgYW5kIE9wZW5BUEkuCi0gKDIwMjEpIFtVbmRlcnN0YW5kaW5nIEpTT04gU2NoZW1hIGNvbXBhdGliaWxpdHldKGh0dHBzOi8veW9rb3RhLmJsb2cvMjAyMS8wMy8yOS91bmRlcnN0YW5kaW5nLWpzb24tc2NoZW1hLWNvbXBhdGliaWxpdHkvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgc3R1ZHkgb2Ygb3BlbiwgY2xvc2VkLCBhbmQgcGFydGlhbGx5LW9wZW4gY29udGVudCBtb2RlbHMgd2hlbiBldm9sdmluZyBzY2hlbWFzIGluIGEgYmFja3dhcmQsIGZvcndhcmQsIG9yIGZ1bGx5IGNvbXBhdGlibGUgbWFubmVycy4KLSAoMjAyMSkgW1VuZGVyc3RhbmRpbmcgQVBJIENvbXBsZXhpdHkgVGhyb3VnaCBTY2hlbWEgRW50cm9weV0oaHR0cHM6Ly9zbWl6ZWxsLmNvbS9wb3N0cy8yMDIxLzA1L3VuZGVyc3RhbmRpbmctYXBpLWNvbXBsZXhpdHktdGhyb3VnaC1zY2hlbWEtZW50cm9weS8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSBsb29rIGF0IEFQSSBjb21wbGV4aXR5IGJ5IGFuYWx5emluZyBlbnRyb3B5IG9mIEpTT04gU2NoZW1hIGRvY3VtZW50cy4KLSAoMjAyMSkgW1JvYnVzdG5lc3MsIFRvbGVyYW5jZSwgYW5kIEpTT04gU2NoZW1hXShodHRwczovL3NtaXplbGwuY29tL3Bvc3RzLzIwMjEvMDcvcm9idXN0bmVzcy10b2xlcmFuY2UtYW5kLWpzb24tc2NoZW1hLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBcHBseWluZyB0aGUgUm9idXN0bmVzcyBQcmluY2lwbGUgYW5kIGluY3JlYXNpbmcgc2NoZW1hIGVudHJvcHkgd2hlbiBtYWtpbmcgY2hhbmdlcyB0byBhbiBBUEkuCi0gKDIwMjEpIFtNb2RlbGluZyBhIGZpbGUgc3lzdGVtIHdpdGggSlNPTiBTY2hlbWFdKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2xlYXJuL2ZpbGUtc3lzdGVtLmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhpcyBleGFtcGxlIHNob3dzIGEgcG9zc2libGUgSlNPTiBTY2hlbWEgcmVwcmVzZW50YXRpb24gb2YgZmlsZSBzeXN0ZW0gbW91bnQgcG9pbnRzIGFzIHJlcHJlc2VudGVkIGluIGFuIC9ldGMvZnN0YWIgZmlsZS4KLSAoMjAyMSkgW0pTT04gU2NoZW1hIGJ1bmRsaW5nIGZpbmFsbHkgZm9ybWFsaXNlZF0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvYmxvZy9wb3N0cy9idW5kbGluZy1qc29uLXNjaGVtYS1jb21wb3VuZC1kb2N1bWVudHM/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSBjbG9zZSBsb29rIGF0IGJ1bmRsaW5nIGFuZCBkZS1yZWZlcmVuY2luZyBKU09OIFNjaGVtYSBkb2N1bWVudHMuCi0gKDIwMjApIFtVc2luZyB0aGUgSlNPTiBTY2hlbWEgc3RhbmRhcmQgZm9yIHNjaWVudGlmaWMgYXBwbGljYXRpb25zP10oaHR0cHM6Ly9jZXJmYWNzLmZyL2Nvb3AvanNvbi1zY2hlbWEtZm9yLXNjaS1hcHBzP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgZGlzY3Vzc2lvbiBvbiBob3cgdG8gdXNlIEpTT04gU2NoZW1hIHRvIHZhbGlkYXRlIGlucHV0LCBhZGQgcHJlY2lzZSBkb2N1bWVudGF0aW9uLCBhdXRvLWZpbGwgbWlzc2luZyBwYXJ0cywgYW5kIGNyZWF0ZSBncmFwaGljYWwgdXNlciBpbnRlcmZhY2VzIGluIHRoZSBjb250ZXh0IG9mIHNjaWVudGlmaWMgYXBwbGljYXRpb25zLgotICgyMDIwKSBbUHJvamVjdCBDYW1icmlhOiBUcmFuc2xhdGUgeW91ciBkYXRhIHdpdGggbGVuc2VzXShodHRwczovL3d3dy5pbmthbmRzd2l0Y2guY29tL2NhbWJyaWEvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgcHJvcG9zYWwgZm9yIGFuIGlzb2xhdGVkIHNvZnR3YXJlIGxheWVyIHRoYXQgdHJhbnNsYXRlcyBkYXRhIGJldHdlZW4gSlNPTiBTY2hlbWEgZGVmaW5pdGlvbnMgb24gZGVtYW5kLiBUcmFuc2xhdGlvbiBsb2dpYyBpcyBkZWZpbmVkIGJ5IGNvbXBvc2luZyBiaWRpcmVjdGlvbmFsIGxlbnNlcywgYSBraW5kIG9mIGRhdGEgdHJhbnNmb3JtYXRpb24gdGhhdCBjYW4gcnVuIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQuCi0gKDIwMjApIFtKU09OIFNjaGVtYSwgU2NoZW1hLm9yZywgSlNPTi1MRDogV2hhdCYjeDI3O3MgdGhlIERpZmZlcmVuY2U/XShodHRwczovL2Rhc2hqb2luLm1lZGl1bS5jb20vanNvbi1zY2hlbWEtc2NoZW1hLW9yZy1qc29uLWxkLXdoYXRzLXRoZS1kaWZmZXJlbmNlLWUzMGQ3MzE1Njg2YT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBbiBvdmVydmlldyBvZiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIEpTT04gU2NoZW1hIGFuZCBKU09OLUxELCB0aGVpciByZWxhdGlvbnNoaXAgYW5kIHRoZSByb2xlIG9mIFNjaGVtYS5vcmcuCi0gKDIwMjApIFtCdWlsZGluZyBhIE5vLUNvZGUgSlNPTiBTY2hlbWEgRm9ybSBCdWlsZGVyIHdpdGggUmVhY3RKU10oaHR0cHM6Ly93d3cuZ2lua2dvYmlvd29ya3MuY29tLzIwMjAvMTAvMDgvYnVpbGRpbmctYS1uby1jb2RlLWpzb24tc2NoZW1hLWZvcm0tYnVpbGRlci8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gdXBkYXRlIG9uIHRoZSBhZGRpdGlvbmFsIGZlYXR1cmVzIGltcGxlbWVudGVkIGluIHRoZSByZWFjdC1qc29uLXNjaGVtYS1mb3JtLWJ1aWxkZXIgb3Blbi1zb3VyY2UgSlNPTiBTY2hlbWEgZm9ybSBidWlsZGVyIHByb2plY3QuCi0gKDIwMjApIFtBenVyZSBQaXBlbGluZXMgYXV0b2NvbXBsZXRlIGluIFB5Q2hhcm0sIEludGVsbGlKLCBXZWJTdG9ybSwgQ0xpb24sIGFuZCBSaWRlcl0oaHR0cHM6Ly90b255YmFsb25leS5naXRodWIuaW8vcG9zdHMvYXp1cmUtcGlwZWxpbmVzLWF1dG9jb21wbGV0ZS1pbi1weWNoYXJtLmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gU2V0dGluZyB1cCBQeUNoYXJtLCBJbnRlbGxpSiwgV2ViU3Rvcm0sIENMaW9uIGFuZCBSaWRlciB0byBoYXZlIGF1dG8tY29tcGxldGUsIHN5bnRheCBoaWdobGlnaHRpbmcgYW5kIHZhbGlkYXRpb24gc3VwcG9ydCBvZiBBenVyZSBQaXBlbGluZXMgd29ya2Zsb3dzLgotICgyMDE5KSBbU2F2ZWQgYnkgdGhlIFNjaGVtYTogVXNpbmcgSlNPTiBTY2hlbWEgdG8gRG9jdW1lbnQsIFRlc3QsIGFuZCBEZWJ1ZyBBUElzXShodHRwczovL2Jsb2cuaGVyb2t1LmNvbS9qc29uLXNjaGVtYS1kb2N1bWVudC1kZWJ1Zy1hcGlzP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIExlYXJuIGhvdyBIZXJva3UgdXNlcyBKU09OIFNjaGVtYSB0byB0ZXN0IGFuZCBkb2N1bWVudCB0aGVpciBQbGF0Zm9ybSBBUEksIGFuZCBob3cgaXQgaGVscGVkIHRoZW0gdW5jb3ZlciBhbiB1bmV4cGVjdGVkIGJ1Zywgcm9vdGVkIGluIHRoZSB3YXkgdGhlIE9qIGdlbSBwYXJzZXMgQmlnIERlY2ltYWxzLgotICgyMDE4KSBbSlNPTiBTY2hlbWEgVmFsaWRhdG9yLCBHZW5lcmF0b3IgJmFtcDsgRWRpdG9yIEd1aWRlXShodHRwczovL3N0b3BsaWdodC5pby9qc29uLWd1aWRlLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBIb3cgdGhlIEpTT04gYW5kIEpTT04gU2NoZW1hIHN0YW5kYXJkcyBhcmUgZGVmaW5lZCBhbmQgaG93IHRvIHB1dCB0aGVtIHRvIHVzZSBpbiB5b3VyIGNvZGUgYW5kIGluIHlvdXIgQVBJcy4KLSAoMjAxOCkgW0pTT04gU2NoZW1hIFZhbGlkYXRpb24gJmFtcDsgRXhwcmVzc2l2ZSBRdWVyeSBTeW50YXggaW4gTW9uZ29EQiAzLjZdKGh0dHBzOi8vd3d3LnNpdGVwb2ludC5jb20vanNvbi1zY2hlbWEtdmFsaWRhdGlvbi1leHByZXNzaXZlLXF1ZXJ5LXN5bnRheC1pbi1tb25nb2RiLTMtNi8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gaW4tZGVwdGggZGlzY3Vzc2lvbiBhYm91dCB1c2luZyBKU09OIFNjaGVtYSB0byBkZWZpbmUgY29sbGVjdGlvbiB2YWxpZGF0aW9uIG9uIE1vbmdvREIuCi0gKDIwMTgpIFtEZWZpbml0aW9ucyBmb3IgZmlsdGVyaW5nIHByb3BlcnRpZXMgaW4gSlNPTiBzY2hlbWFdKGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL0x1Y2lhbkJ1enpvLzVmZjkxMDZjZTNhZTEyZmI1OGU0ZGVmNTcyYjkzNDRkP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIGludHJvZHVjdGlvbiB0byB0aGUgcHJvYmxlbSBvZiB1c2luZyBKU09OIFNjaGVtYSBmb3IgZGF0YSBmaWx0ZXJpbmcgYW5kIHF1ZXJ5aW5nIHB1cnBvc2VzLgotICgyMDE0KSBbSW50cm9kdWNpbmcgU2NoZW1hVmVyIGZvciBzZW1hbnRpYyB2ZXJzaW9uaW5nIG9mIHNjaGVtYXNdKGh0dHBzOi8vc25vd3Bsb3dhbmFseXRpY3MuY29tL2Jsb2cvMjAxNC8wNS8xMy9pbnRyb2R1Y2luZy1zY2hlbWF2ZXItZm9yLXNlbWFudGljLXZlcnNpb25pbmctb2Ytc2NoZW1hcy8jZmVlZGJhY2s/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSBwcm9wb3NhbCBmb3IgYSB2ZXJzaW9uaW5nIGNvbnZlbnRpb24gZm9yIEpTT04gU2NoZW1hIGRlZmluaXRpb25zIGJhc2VkIG9uIFNlbVZlci4KCiMjIFNwZWNpZmljYXRpb25zCgotICgyMDIxKSBbQXN5bmNBUEldKGh0dHBzOi8vd3d3LmFzeW5jYXBpLmNvbS9kb2NzL3NwZWNpZmljYXRpb25zL3YyLjEuMD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBc3luY0FQSSBpcyBhbiBvcGVuIHNvdXJjZSBpbml0aWF0aXZlIHRoYXQgc2Vla3MgdG8gaW1wcm92ZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJlcyAoRURBKS4gVGhlIEFzeW5jQVBJIHNwZWNpZmljYXRpb24gc3VwcG9ydHMgZGF0YSBtb2RlbGluZyB1c2luZyBKU09OIFNjaGVtYS4KLSAoMjAyMSkgW0pTT04gU2NoZW1hIGluIFJERl0oaHR0cHM6Ly93d3cudzMub3JnLzIwMTkvd290L2pzb24tc2NoZW1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoaXMgZG9jdW1lbnQgaW50cm9kdWNlcyBhbiBSREYgdm9jYWJ1bGFyeSBmb3IgSlNPTiBzY2hlbWEgZGVmaW5pdGlvbnMuIFRoaXMgdm9jYWJ1bGFyeSBwcm92aWRlcyBhIHN0YWJsZSBuYW1lc3BhY2UgSVJJIGZvciBKU09OIHNjaGVtYSBrZXl3b3JkcywgYXMgd2VsbCBhcyBzaW1wbGUgYXhpb21zLCBkZWZpbmVkIGFnYWluc3Qgc2NoZW1hLm9yZyYjeDI3O3MgbWV0YS1tb2RlbC4gVmFyaW91cyBleGFtcGxlcyBvbiBob3cgdG8gdXNlIHRoZSB2b2NhYnVsYXJ5IGFyZSBhbHNvIGludHJvZHVjZWQsIGUuZy4gdG8gYW5ub3RhdGUgc2NoZW1hcyB3aXRoIEpTT04tTEQgbWV0YWRhdGEgb3IgdG8gZW1iZWQgc2NoZW1hIGFubm90YXRpb25zIGluc2lkZSBSREYgZ3JhcGhzLgotICgyMDIxKSBbT3BlbkFQSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZW1iZWRzIGFuZCBleHRlbmRzIEpTT04gU2NoZW1hIGZvciBkZWZpbmluZyBBUEkgcmVxdWVzdCBhbmQgcmVzcG9uc2VzLgotICgyMDIxKSBbUkFNTF0oaHR0cHM6Ly9yYW1sLm9yZz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgUkFNTCBzcGVjaWZpY2F0aW9uIHN1cHBvcnRzIG1vZGVsaW5nIEFQSSBkYXRhIHVzaW5nIEpTT04gU2NoZW1hLgotICgyMDIwKSBbSlNPTiBTY2hlbWEgQ29yZSAyMDIwLTEyXShodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL2pzb24tc2NoZW1hLWNvcmUuaHRtbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBKU09OIFNjaGVtYSBkZWZpbmVzIHRoZSBtZWRpYSB0eXBlICZxdW90O2FwcGxpY2F0aW9uL3NjaGVtYStqc29uJnF1b3Q7LCBhIEpTT04tYmFzZWQgZm9ybWF0IGZvciBkZXNjcmliaW5nIHRoZSBzdHJ1Y3R1cmUgb2YgSlNPTiBkYXRhLiBKU09OIFNjaGVtYSBhc3NlcnRzIHdoYXQgYSBKU09OIGRvY3VtZW50IG11c3QgbG9vayBsaWtlLCB3YXlzIHRvIGV4dHJhY3QgaW5mb3JtYXRpb24gZnJvbSBpdCwgYW5kIGhvdyB0byBpbnRlcmFjdCB3aXRoIGl0LiBUaGUgJnF1b3Q7YXBwbGljYXRpb24vc2NoZW1hLWluc3RhbmNlK2pzb24mcXVvdDsgbWVkaWEgdHlwZSBwcm92aWRlcyBhZGRpdGlvbmFsIGZlYXR1cmUtcmljaCBpbnRlZ3JhdGlvbiB3aXRoICZxdW90O2FwcGxpY2F0aW9uL3NjaGVtYStqc29uJnF1b3Q7IGJleW9uZCB3aGF0IGNhbiBiZSBvZmZlcmVkIGZvciAmcXVvdDthcHBsaWNhdGlvbi9qc29uJnF1b3Q7IGRvY3VtZW50cy4KLSAoMjAyMCkgW0pTT04gU2NoZW1hIFZhbGlkYXRpb24gMjAyMC0xMl0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9qc29uLXNjaGVtYS12YWxpZGF0aW9uLmh0bWw/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSlNPTiBTY2hlbWEgKGFwcGxpY2F0aW9uL3NjaGVtYStqc29uKSBoYXMgc2V2ZXJhbCBwdXJwb3Nlcywgb25lIG9mIHdoaWNoIGlzIEpTT04gaW5zdGFuY2UgdmFsaWRhdGlvbi4gVGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgYSB2b2NhYnVsYXJ5IGZvciBKU09OIFNjaGVtYSB0byBkZXNjcmliZSB0aGUgbWVhbmluZyBvZiBKU09OIGRvY3VtZW50cywgcHJvdmlkZSBoaW50cyBmb3IgdXNlciBpbnRlcmZhY2VzIHdvcmtpbmcgd2l0aCBKU09OIGRhdGEsIGFuZCB0byBtYWtlIGFzc2VydGlvbnMgYWJvdXQgd2hhdCBhIHZhbGlkIGRvY3VtZW50IG11c3QgbG9vayBsaWtlLgotICgyMDIwKSBbUmVsYXRpdmUgSlNPTiBQb2ludGVyc10oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9yZWxhdGl2ZS1qc29uLXBvaW50ZXIuaHRtbD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBKU09OIFBvaW50ZXIgaXMgYSBzeW50YXggZm9yIHNwZWNpZnlpbmcgbG9jYXRpb25zIGluIGEgSlNPTiBkb2N1bWVudCwgc3RhcnRpbmcgZnJvbSB0aGUgZG9jdW1lbnQgcm9vdC4gVGhpcyBkb2N1bWVudCBkZWZpbmVzIGFuIGV4dGVuc2lvbiB0byB0aGUgSlNPTiBQb2ludGVyIHN5bnRheCwgYWxsb3dpbmcgcmVsYXRpdmUgbG9jYXRpb25zIGZyb20gd2l0aGluIHRoZSBkb2N1bWVudC4KLSAoMjAyMCkgW1czQyBXZWIgb2YgVGhpbmdzXShodHRwczovL3d3dy53My5vcmcvV29ULz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGUgV2ViIG9mIFRoaW5ncyAoV29UKSBzZWVrcyB0byBjb3VudGVyIHRoZSBmcmFnbWVudGF0aW9uIG9mIHRoZSBJb1QgYnkgdXNpbmcgYW5kIGV4dGVuZGluZyBleGlzdGluZywgc3RhbmRhcmRpemVkIFdlYiB0ZWNobm9sb2dpZXMuIFdvVCBtb2RlbHMgZGF0YSB1c2luZyBKU09OIFNjaGVtYS4KLSAoMjAxOSkgW0pTT04gSHlwZXItU2NoZW1hXShodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LWhhbmRyZXdzLWpzb24tc2NoZW1hLWh5cGVyc2NoZW1hLTAyP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEpTT04gU2NoZW1hIGlzIGEgSlNPTi1iYXNlZCBmb3JtYXQgZm9yIGRlc2NyaWJpbmcgSlNPTiBkYXRhIHVzaW5nIHZhcmlvdXMgdm9jYWJ1bGFyaWVzLiAgVGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgYSB2b2NhYnVsYXJ5IGZvciBhbm5vdGF0aW5nIEpTT04gZG9jdW1lbnRzIHdpdGggaHlwZXJsaW5rcy4gIFRoZXNlIGh5cGVybGlua3MgaW5jbHVkZSBhdHRyaWJ1dGVzIGRlc2NyaWJpbmcgaG93IHRvIG1hbmlwdWxhdGUgYW5kIGludGVyYWN0IHdpdGggcmVtb3RlIHJlc291cmNlcyB0aHJvdWdoIGh5cGVybWVkaWEgZW52aXJvbm1lbnRzIHN1Y2ggYXMgSFRUUCwgYXMgd2VsbCBhcyBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBsaW5rIGlzIHVzYWJsZSBiYXNlZCBvbiB0aGUgaW5zdGFuY2UgdmFsdWUuCgojIyBCb29rcwoKLSAoMjAyNCkgW1VuaWZ5aW5nIEJ1c2luZXNzLCBEYXRhLCBhbmQgQ29kZTogRGVzaWduaW5nIERhdGEgUHJvZHVjdHMgd2l0aCBKU09OIFNjaGVtYV0oaHR0cHM6Ly93d3cub3JlaWxseS5jb20vbGlicmFyeS92aWV3L3VuaWZ5aW5nLWJ1c2luZXNzLWRhdGEvOTc4MTA5ODE0NDk5OS8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQ292ZXJzIHRvcGljcyBzdWNoIGFzIHdyaXRpbmcgeW91ciBvd24gSlNPTiBTY2hlbWEgdm9jYWJ1bGFyaWVzLCB1bmRlcnN0YW5kaW5nIEpTT04gU2NoZW1hIGFubm90YXRpb25zLCBhbmQgaG9zdGluZyB5b3VyIG93biBKU09OIFNjaGVtYSByZWdpc3RyaWVzLiBNb3JlIGltcG9ydGFudGx5LCBvdXIgYm9vayB0ZWFjaGVzIHlvdSBhIG1ldGhvZG9sb2d5IGZvciBlZmZlY3RpdmUgZGF0YSBtYW5hZ2VtZW50LgotICgyMDIxKSBbQVBJIGJ5IERlc2lnbl0oaHR0cHM6Ly9zbWl6ZWxsLmd1bXJvYWQuY29tL2wvYXBpYnlkZXNpZ24/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSW50cm9kdWNlcyBhbiBhcHByb2FjaCB0byBtZWFzdXJlIEFQSSBjb21wbGV4aXR5IGJ5IGFuYWx5emluZyBlbnRyb3B5IGluIEpTT04gU2NoZW1hIGRlZmluaXRpb25zLgotICgyMDE3KSBbSlNPTiBhdCBXb3JrXShodHRwczovL3d3dy5vcmVpbGx5LmNvbS9saWJyYXJ5L3ZpZXcvanNvbi1hdC13b3JrLzk3ODE0OTE5ODIzODkvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgY29tcHJlaGVuc2l2ZSBvdmVydmlldyBvZiB0aGUgSlNPTiBlY29zeXN0ZW0sIGluY2x1ZGluZyBKU09OIFNjaGVtYS4KLSAoMjAxNCkgW1VzaW5nIEpTT04gU2NoZW1hXShodHRwczovL2Jvb2tzLmFwcGxlLmNvbS91cy9ib29rL3VzaW5nLWpzb24tc2NoZW1hL2lkOTAzMjQ4NjMwP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIExlYXJuIGFuZCBBcHBseSBKU09OIFNjaGVtYSBieSBFeGFtcGxlLCB3aXRoIEphdmFTY3JpcHQgKE5vZGUuanMpIGFuZCBQeXRob24gUHJvZ3JhbXMuCgojIyBDb3Vyc2VzCgotICgyMDE3KSBbSlNPTiBTY2hlbWEgLSBDcmFzaCBDb3Vyc2UgZm9yIEJlZ2lubmVyc10oaHR0cHM6Ly93d3cudWRlbXkuY29tL2NvdXJzZS9qc29uLXNjaGVtYS1jcmFzaC1jb3Vyc2UtZm9yLWJlZ2lubmVycy8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gTGVhcm4gSlNPTiAmYW1wOyBKU09OIFNjaGVtYSBpbiBhIFF1aWNrIDMwLTQwIG1pbnV0ZXMgJmFtcDsgdXNlIGl0IGZvciB0aGUgcmVzdCBvZiB5b3VyIGxpZmUgZm9yIGNvbXBsZXggcHJvamVjdHMuCi0gKDIwMTcpIFtQcm9jZXNzaW5nIGFuZCBJbnRlcmNoYW5naW5nIEpTT04gRGF0YV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlYXJuaW5nL3Byb2Nlc3NpbmctYW5kLWludGVyY2hhbmdpbmctanNvbi1kYXRhP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIGluLWRlcHRoIGd1aWRlIHRvIHdvcmtpbmcgd2l0aCBKU09OIGFuZCB0aGUgSlNPTiBlY29zeXN0ZW0gaW5jbHVkaW5nIHVzaW5nIEpTT04gU2NoZW1hIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzLgoKIyMgVmlkZW9zCgotICgyMDIyKSBbSlNPTiBTY2hlbWEgaW4gUHJvZHVjdGlvbjogIzMgTWFkcyBLcmlzdGVuc2VuIGF0IE1pY3Jvc29mdF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj0teVlUeExaWms1OD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBNYWRzIHNoYXJlcyB0aGUgc3Rvcnkgb2YgYnJpbmdpbmcgSlNPTiBTY2hlbWEgc3VwcG9ydCBpbnRvIFZpc3VhbCBTdHVkaW8gYmFjayBpbiB2ZXJzaW9uIDIwMTMsIHRoZSBmaXJzdCBlZGl0b3Igc3VwcG9ydGluZyBKU09OIFNjaGVtYS4gV2hhdCYjeDI3O3MgY2FsbGVkIC5OZXQgQ29yZSB0b2RheSBuZWVkZWQgdG9vbGluZyBmb3IgdGhlaXIgJnF1b3Q7cHJvamVjdC5qc29uJnF1b3Q7IGZpbGUsIHNpbWlsYXIgdG8gYSAmcXVvdDtwYWNrYWdlLmpzb24mcXVvdDsgZmlsZS4gSlNPTiBTY2hlbWEgZW5kZWQgdXAgcGxheWluZyBhIGtleSByb2xlIGluIHRoZSBhdXRvY29tcGxldGlvbiBhbmQgdmFsaWRhdGlvbiBpbmZhc3RydWN0dXJlIG9udG9wIG9mIGEgYmFzaWMgSlNPTiBlZGl0b3IuCi0gKDIwMjIpIFtKU09OIFNjaGVtYSBpbiBQcm9kdWN0aW9uIC0gIzYgU3VyZXNoIFNyaW5pdmFzIGF0IE9wZW5NZXRhZGF0YV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1aclZUWndtVFIzaz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBXZSB0YWxrIHRvIFN1cmVzaCBTcmluaXZhcywgQ28tRm91bmRlciBhdCBDb2xsYXRlLCBidWlsZGluZyBPcGVuTWV0YWRhdGEuIChQcmV2aW91c2x5IGVuZ2luZWVyaW5nIGxlYWRlcnNoaXAgYXQgVWJlciBhbmQgRm91bmRlciBvZiBIb3J0b253b3Jrcy4pLgotICgyMDIyKSBbSlNPTiBTY2hlbWEgaW4gUHJvZHVjdGlvbiAtICM1IEplbnMgTmV1c2UgYXQgV3VuZGVyZ3JhcGhdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9X1RDVTZkYTBHQTg/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSmVucyBOZXVzZSwgRm91bmRlciBvZiBXdW5kZXJncmFwaCBzaGFyZXMgaG93IFd1bmRlcmdyYXBoIGNvbXBpbGVzIEdyYXBoUUwgZGVmaW5pdGlvbnMgaW50byBKU09OIFJQQyBhbmQgY3JlYXRlIEpTT04gU2NoZW1hIGRlZmluaXRpb25zIGZvciBlYWNoIEpTT04gUlBDIGVuZHBvaW50LiBJbnB1dCBkYXRhIGlzIHZhbGlkYXRlZCB1c2luZyBKU09OIFNjaGVtYSBhdCB0aGUgbWlkZGxld2FyZS1sZXZlbCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBjb3JyZXNwb25kaW5nIEdyYXBoUUwgcXVlcnkuCi0gKDIwMjIpIFtKU09OIFNjaGVtYSBpbiBQcm9kdWN0aW9uIC0gIzQgRGF2aWQgQnJvd25tYW4gYXQgWmFwaWVyXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXlETDk4c2Q0S1ZFP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIERhdmlkIHNoYXJlcyB0aGUgc3Rvcnkgb2YgdXNpbmcgSlNPTiBTY2hlbWEgYXQgWmFwaWVyIHRvIHZhbGlkYXRlIGFuZCBkb2N1bWVudCB0aGVpciBpbnRlcmdyYXRpb24gcGF5bG9hZHMsIGVuYWJsaW5nIGEgYmV0dGVyIGRldmVsb3BlciBleHBlcmllbmNlIGZvciB0aGVpciA0MDAwKyBpbnRlcmdyYXRpb24gcGFydG5lcnMuLgotICgyMDIyKSBbSlNPTiBTY2hlbWEgaW4gUHJvZHVjdGlvbiAtICMyIEtpbiBMYW5lIGF0IEY1XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXBpYlpGMDQ5enFFP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEtpbiBzaGFyZXMgdGhlIGNoYWxsZW5nZXMgb2YgYnVpbGRpbmcgYSBjb21wYW55IHdpZGUgaW5kZXggb2YgZGF0YSBzdHJ1Y3R1cmVzIChvciBTY2hlbWEgUmVnaXN0cnkpLCBhaW1pbmcgdG8gaGVscCB1bmRlcnN0YW5kIHByZXZpb3VzLCBhbmQgYXZvaWQgZnV0dXJlLCB1bmV4cGVjdGVkIGJyZWFraW5nIGNoYW5nZXMgdGhhdCByZWFsbHkgaW1wYWN0IGN1c3RvbWVycy4KLSAoMjAyMikgW0pTT04gU2NoZW1hIGluIFByb2R1Y3Rpb24gLSAjMSBDaHVjayBSZWV2ZXMgYXQgWm9uZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Zmt6aU1RRDdwcVE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQmVuIHRhbGtzIHRvIENodWNrIFJlZXZlcywgcHJldmlvdXNseSBhdCBab25lcywgYWJvdXQgaG93IHRoZXkgdXNlZCBKU09OIFNjaGVtYSB0byB2YWxpZGF0ZSBkYXRhIGFuZCBrZWVwIGl0IGluIGEgY29uc2lzdGVudCBmb3JtYXQgYWNyb3NzIHRoZWlyIGFwcGxpY2F0aW9uLiBDaHVjayBzaGFyZXMgaG93IHVzaW5nIGEgcHVibGljIEFQSSBnYXRld2F5IHRvIHZhbGlkYXRlIGluY29taW5nIGRhdGEgc2F2ZWQgZGV2ZWxvcGVycyB0aW1lIGFuZCBjb21wdXRlIGVmZm9ydCwgbWFraW5nIHN1cmUgb25seSB2YWxpZCBkYXRhIHdhcyBwYXNzZWQgZG93bnN0cmVhbSB0byBzZXJ2ZXJsZXNzIGZ1bmN0aW9ucyBvciBvdGhlciBzZXJ2aWNlcy4KLSAoMjAyMikgW0pTT04gU2NoZW1hIEluIFByb2R1Y3Rpb24gLSBZb3UgQ2FuIFVzZSBJdCBUb2RheSAtIEJlbiBIdXR0b24sIFBvc3RtYW5dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9NDhRZ2ptd0xXaDA/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSGVhciB0aGUgYWJvdXQgdGhlIGpvdXJuZXkgb2Ygb3JnYW5pemF0aW9ucyB0aGF0IHVzZSBKU09OIFNjaGVtYSBpbiBwcm9kdWN0aW9uIHRvZGF5LCBhbmQgbGVhcm4gYWJvdXQgaG93IEpTT04gU2NoZW1hIGNvbnRpbnVlcyB0byBkZWxpdmVyIHZhbHVlLgotICgyMDIxKSBbU28geW91IHRoaW5rIHlvdSB1bmRlcnN0YW5kIEpTT04gU2NoZW1hPyAtIEJlbiBIdXR0b25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dk1HME5DRGlmSTA/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSW4gdGhpcyBzZXNzaW9uIHlvdSYjeDI3O2xsIGxlYXJuIHNvbWUga2V5IGZ1bmRhbWVudGFscywgaW50cmFjYWNpZXMgdGhhdCBldmVuIGNhdGNoIG91dCB0aGUgZXhwZXJpZW5jZWQsIGFuZCBob3cgdG8gZGV2ZWxvcCB5b3VyIG93biBpbnRlcm9wZXJhYmxlIEpTT04gU2NoZW1hIFZvY2FidWxhcnkuCi0gKDIwMjEpIFtNYWludGFpbmluZyBKU09OIFNjaGVtYXMgYXQgU2NhbGUgLSBKYXNvbiBEZXNyb3NpZXJzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUdqSnBSc1ZmZmcwP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEluIHRoaXMgdGFsaywgd2Ugd2lsbCBjb3ZlciB0aGUga2V5d29yZHMsIGNvbmNlcHRzLCBhbmQgcGF0dGVybnMgZm9yIG1haW50YWluaW5nIGxhcmdlIHNjaGVtYXMgb3IgbGFyZ2UgY29sbGVjdGlvbnMgb2Ygc2NoZW1hcy4gV2UmI3gyNztsbCB0YWNrbGUgcHJvYmxlbXMgbGlrZSBob3cgdG8gYnJlYWtkb3duIGFuZCBvcmdhbml6ZSBzY2hlbWFzLCBob3cgdG8gYnVuZGxlIHNjaGVtYXMsIGhvdyB0byBtYWtlIGxhcmdlIHNjaGVtYXMgZWZmaWNpZW50LCBob3cgdG8gZ2V0IGJldHRlciBlcnJvciBtZXNzYWdlcyBmcm9tIGxhcmdlIHNjaGVtYXMsIGFuZCBtb3JlLgotICgyMDIxKSBbSlNPTiBTY2hlbWEgVmFsaWRhdGlvbiBpbiBQb3N0bWFuXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PThCZnNoVjVuNmFjP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIHR1dG9yaWFsIG9mIHBlcmZvcm1pbmcgSlNPTiBTY2hlbWEgdmFsaWRhdGlvbiBpbiBQb3N0bWFuIGluIEFQSSB0ZXN0cy4KLSAoMjAyMSkgW0NvbmZpZ3VyaW5nIFVtYnJhY28gb24gLk5FVCBDb3JlIC0gSlNPTiBTY2hlbWFdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9cnBVZy1veVN3OGc/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQ29uZmlndXJpbmcgVW1icmFjbyBvbiAuTkVUIENvcmUgd2l0aCBKU09OIFNjaGVtYS1wb3dlcmVkIGF1dG9jb21wbGV0aW9ucyBmb3IgYXBwc2V0dGluZ3MuanNvbiB1c2luZyBTY2hlbWFTdG9yZS4KLSAoMjAyMSkgW0FQSSBTdG9yeXRlbGxpbmcgd2l0aCBCZW4gSHV0dG9uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTR4YkE4MmxvX2xjP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoaXMgZXBpc29kZSB3ZSBzaXQgZG93biB3aXRoIEJlbiBIdXR0b24sIHRoZSBsZWFkIGJlaGluZCB0aGUgSlNPTiBTY2hlbWEgY29tbXVuaXR5IHRvIHRhbGsgYWJvdXQgdm9jYWJ1bGFyaWVzIGFuZCBvdGhlciB3YXlzIHdlIHZhbGlkYXRlIGFuZCBhbm5vdGF0ZSBob3cgd2UgdGVsbCBzdG9yaWVzIHdlIHRlbGwgaW4gdGhlIEFQSSBzcGFjZS4KLSAoMjAyMCkgW1doYXQgaXMgSlNPTiBTY2hlbWFdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9a0stX2dMN1ZzYzA/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSBiYXNpYyBpbnRyb2R1Y3Rpb24gdG8gSlNPTiBTY2hlbWEgc2hvd2luZyBob3cgdG8gYXV0by1nZW5lcmF0ZSBKU09OIFNjaGVtYSBkb2N1bWVudCBmcm9tIGFuIGV4aXN0aW5nIEpTT04gZG9jdW1lbnQuCi0gKDIwMTkpIFtXaGF0IGlzIGEgSlNPTiBTY2hlbWE/IEdlbmVyYXRlLCBNb2RpZnksIGFuZCBVbmRlcnN0YW5kIGEgSlNPTiBTY2hlbWE6IEV4YW1wbGVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9aEdYeFh5Sm1hVW8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gaW4tZGVwdGggaW50cm9kdWN0aW9uIHRvIEpTT04gU2NoZW1hIGluY2x1ZGluZyBhdXRvLWdlbmVyYXRpbmcgSlNPTiBTY2hlbWEgZG9jdW1lbnRzIHVzaW5nIFF1aWNrVHlwZS5pby4KLSAoMjAxOSkgW0pTT04gU2NoZW1hIFZhbGlkYXRpb246IEhvdyB0byBWYWxpZGF0ZSBKU09OIFNjaGVtYSB3aXRoIFBvc3RtYW4/XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVgwNzJlS3RPSWlvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIGludHJvZHVjdGlvbiB0byBKU09OIFNjaGVtYSBhbmQgaG93IHRvIHVzZSBpdCBpbiBQb3N0bWFuLgotICgyMDE3KSBbSlNPTiBTY2hlbWEgLSB0aGUgR29vZCwgdGhlIEJhZCBhbmQgdGhlIFVnbHldKGh0dHBzOi8vdmltZW8uY29tLzIyMjQ4OTI4OD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBXaXRoIEpTT04gU2NoZW1hIHlvdSBhcmUgcmVxdWlyZWQgdG8gZGVmaW5lIHlvdXIgZGF0YSBhbmQgdGhlIGF2YWlsYWJsZSB0b29saW5nIHRvIGRvIHNvIGlzIG5vdCByZWFsbHkgZ3JlYXQgKHlldCkuIFRoaXMgcHJlc2VudGF0aW9uIHByb3ZpZGVzIHlvdSB3aXRoIGNyaXRlcmlhIHRvIGp1ZGdlIHdoZXRoZXIgSlNPTiBTY2hlbWEgY291bGQgYmUgYmVuZWZpY2lhbCBmb3IgeW91ciBwcm9qZWN0IG9yIGlzIGp1c3QgdG9vIG11Y2ggb3ZlcmhlYWQuCgojIyBQb2RjYXN0cwoKLSAoMjAyMSkgW0FQSSBMaWZlY3ljbGVzLCBTcGVjaWZpY2F0aW9ucywgYW5kIFN0YW5kYXJkcyB3aXRoIEtpbiBMYW5lXShodHRwczovL3d3dy5pbmZvcS5jb20vcG9kY2FzdHMvYXBpLWxpZmVjeWNsZXMtc3BlY2lmaWNhdGlvbnMtc3RhbmRhcmRzLz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaG9tYXMgQmV0dHMgdGFsa3Mgd2l0aCBLaW4gTGFuZSBhYm91dCBtYW5hZ2luZyB5b3VyIEFQSSBsaWZlY3ljbGUgdXNpbmcgc3RhbmRhcmRzIGFuZCBzcGVjaWZpY2F0aW9ucywgaW5jbHVkaW5nIE9wZW5BUEksIEFzeW5jQVBJLCBhbmQgSlNPTiBTY2hlbWEuIFRoZXNlIHNwZWNpZmljYXRpb25zIGFuZCB0aGUgdG9vbGluZyBiYXNlZCBvbiB0aGVtIGNhbiBoZWxwIHJlZHVjZSBjb21tdW5pY2F0aW9uIHByb2JsZW1zLCBieSBjcmVhdGluZyBkb2N1bWVudGF0aW9uLCBnZW5lcmF0aW5nIGNvZGUsIGFuZCBhdXRvbWF0aW5nIHRlc3RpbmcuCgojIyBQYXBlcnMKCi0gKDIwMjMpIFtKU09Ob2lkOiBNb25vaWQtYmFzZWQgRW5yaWNobWVudCBmb3IgQ29uZmlndXJhYmxlIGFuZCBTY2FsYWJsZSBEYXRhLURyaXZlbiBTY2hlbWEgRGlzY292ZXJ5XShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjMwNy4wMzExMz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBNZWFuaW5nZnVsIHNjaGVtYSBpbmZvcm1hdGlvbiBmb3Igc2VtaS1zdHJ1Y3R1cmVkIGRhdGEuCi0gKDIwMjMpIFtKU09Ob2lkOiBEaXN0cmlidXRlZCBKU09OIFNjaGVtYSBEaXNjb3ZlcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhdW5pdHlsYWIvanNvbm9pZC1kaXNjb3Zlcnk/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSB0b29sIGZvciBkaXN0cmlidXRlZCBKU09OIHNjaGVtYSBkaXNjb3ZlcnkgaW5jbHVkaW5nIG1hbnkgcHJvcGVydGllcyBvZiB0aGUgZGF0YS4KLSAoMjAyMykgW0NvbXByZWhlbmRpbmcgU2VtYW50aWMgVHlwZXMgaW4gSlNPTiBEYXRhIHdpdGggR3JhcGggTmV1cmFsIE5ldHdvcmtzXShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjMwNy4xMjgwNz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBHcmFwaCBuZXVyYWwgbmV0d29ya3MgZm9yIHNlbWFudGljIHR5cGUgZGV0ZWN0aW9uIGluIEpTT04uCi0gKDIwMjMpIFtBbiBBbmFseXNpcyBvZiBEZWZlY3RzIGluIFB1YmxpYyBKU09OIFNjaGVtYXNdKGh0dHBzOi8vd3d3LmNyaS5taW5lc3BhcmlzLnBzbC5ldS9jbGFzc2VtZW50L2RvYy9BLTc5NC5wZGY/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW5hbHlzaXMgb2YgY29tbW9uIGRlZmVjdHMgZm91bmQgaW4gcHVibGljbHkgYXZhaWxhYmxlIHNjaGVtYXMgbGVhZGluZyB0byByZWNvbW1lbmQgY2hhbmdlcyB0byB0aGUgc3BlYy4KLSAoMjAyMikgW1dpdG5lc3MgR2VuZXJhdGlvbiBmb3IgSlNPTiBTY2hlbWFdKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yMjAyLjEyODQ5P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEpTT04gU2NoZW1hIGlzIGFuIGltcG9ydGFudCwgZXZvbHZpbmcgc3RhbmRhcmQgc2NoZW1hIGxhbmd1YWdlIGZvciBmYW1pbGllcyBvZiBKU09OIGRvY3VtZW50cy4gSXQgaXMgYmFzZWQgb24gYSBjb21wbGV4IGNvbWJpbmF0aW9uIG9mIHN0cnVjdHVyYWwgYW5kIEJvb2xlYW4gYXNzZXJ0aW9ucywgYW5kIGZlYXR1cmVzIG5lZ2F0aW9uIGFuZCByZWN1cnNpb24uIFRoZSBzdGF0aWMgYW5hbHlzaXMgb2YgSlNPTiBTY2hlbWEgZG9jdW1lbnRzIGNvbXByaXNlcyBwcmFjdGljYWxseSByZWxldmFudCBwcm9ibGVtcywgaW5jbHVkaW5nIHNjaGVtYSBzYXRpc2ZpYWJpbGl0eSwgaW5jbHVzaW9uLCBhbmQgZXF1aXZhbGVuY2UuIFRoZXNlIHRocmVlIHByb2JsZW1zIGNhbiBiZSByZWR1Y2VkIHRvIHdpdG5lc3MgZ2VuZXJhdGlvbjogZ2l2ZW4gYSBzY2hlbWEsIGdlbmVyYXRlIGFuIGVsZW1lbnQgb2YgdGhlIHNjaGVtYSwgaWYgaXQgZXhpc3RzLCBhbmQgcmVwb3J0IGZhaWx1cmUgb3RoZXJ3aXNlLgotICgyMDIyKSBbVmFsaWRhdGluZyBTdHJlYW1pbmcgSlNPTiBEb2N1bWVudHMgd2l0aCBMZWFybmVkIFZQQXNdKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yMjExLjA4ODkxP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoaXMgcGFwZXIgcHJlc2VudHMgYSBuZXcgc3RyZWFtaW5nIGFsZ29yaXRobSB0byB2YWxpZGF0ZSBKU09OIGRvY3VtZW50cyBhZ2FpbnN0IGEgc2V0IG9mIGNvbnN0cmFpbnRzIGdpdmVuIGFzIGEgSlNPTiBzY2hlbWEuIEl0IHByb3ZlcyB0aGF0IHRoZXJlIGFsd2F5cyBleGlzdHMgYSB2aXNpYmx5IHB1c2hkb3duIGF1dG9tYXRvbiAoVlBBKSB0aGF0IGFjY2VwdHMgdGhlIHNhbWUgc2V0IG9mIEpTT04gZG9jdW1lbnRzIGFzIGEgSlNPTiBzY2hlbWEuCi0gKDIwMjIpIFtUaGUgVXNhZ2Ugb2YgTmVnYXRpb24gaW4gUmVhbC1Xb3JsZCBKU09OIFNjaGVtYSBEb2N1bWVudHNdKGh0dHA6Ly9iaWxpb3NvLmlzdGkuY25yLml0L3NlYmQyMDIyL3ByZXByaW50L1NFQkRfMjAyMl9DYW1lcmEtcmVhZHlfUERGXzgucGRmP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIE1hbnkgc29mdHdhcmUgdG9vbHMsIGJ1dCBhbHNvIGZvcm1hbCBmcmFtZXdvcmtzIGZvciB3b3JraW5nIHdpdGggSlNPTiBTY2hlbWEsIGRvIG5vdCBmdWxseSBzdXBwb3J0IG5lZ2F0aW9uLiBUaGlzIG1vdGl2YXRlcyB1cyB0byBzdHVkeSB3aGV0aGVyIG5lZ2F0aW9uIGlzIGFjdHVhbGx5IHVzZWQgaW4gcHJhY3RpY2UsIGZvciB3aGljaCBhaW1zLCBhbmQgd2hldGhlciBpdCBjb3VsZCwgaW4gcHJpbmNpcGxlLCBiZSByZXBsYWNlZCBieSBzaW1wbGVyIG9wZXJhdG9ycy4gV2UgaGF2ZSBjb2xsZWN0ZWQgYSBsYXJnZSBjb3JwdXMgb2YgODBrIG9wZW4gc291cmNlIEpTT04gU2NoZW1hIGRvY3VtZW50cy4gV2UgcGVyZm9ybSBhIHN5c3RlbWF0aWMgYW5hbHlzaXMsIHF1YW50aWZ5IHVzYWdlIHBhdHRlcm5zIG9mIG5lZ2F0aW9uLCBhbmQgYWxzbyBxdWFsaXRhdGl2ZWx5IGFuYWx5emUgc2NoZW1hcy4gV2Ugc2hvdyB0aGF0IG5lZ2F0aW9uIGlzIGluZGVlZCB1c2VkLCBhbGJlaXQgaW5mcmVxdWVudGx5LCBmb2xsb3dpbmcgYSBzdGFibGUgc2V0IG9mIHBhdHRlcm5zLgotICgyMDIyKSBbSlNPTiBCaW5QYWNrOiBBIHNwYWNlLWVmZmljaWVudCBzY2hlbWEtZHJpdmVuIGFuZCBzY2hlbWEtbGVzcyBiaW5hcnkgc2VyaWFsaXphdGlvbiBzcGVjaWZpY2F0aW9uIGJhc2VkIG9uIEpTT04gU2NoZW1hXShodHRwczovL3d3dy5qdmlvdHRpLmNvbS9hc3NldHMvZGlzc2VydGF0aW9uLnBkZj91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBIHN1cnZleSBhbmQgYmVuY2htYXJrIG9mIEpTT04tY29tcGF0aWJsZSBiaW5hcnkgc2VyaWFsaXphdGlvbiBzcGVjaWZpY2F0aW9ucyBmb2xsb3dlZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mIEpTT04gQmluUGFjaywgYSBub3ZlbCBwcm90b2NvbC1pbmRlcGVuZGVudCBzY2hlbWEtZHJpdmVuIGFuZCBzY2hlbWEtbGVzcyBiaW5hcnkgc2VyaWFsaXphdGlvbiBzcGVjaWZpY2F0aW9uIHRoYXQgaXMgc3RyaWN0bHktY29tcGF0aWJsZSB3aXRoIEpTT04gYW5kIHRha2VzIGFkdmFudGFnZSBvZiBKU09OIFNjaGVtYSBmb3JtYWwgZGVmaW5pdGlvbnMgdG8gcHJvZHVjZSBiaXQtc3RyaW5ncyB0aGF0IGFyZSBzcGFjZS1lZmZpY2llbnQgaW4gY29tcGFyaXNvbiB0byBldmVyeSBjb25zaWRlcmVkIGFsdGVybmF0aXZlIHNlcmlhbGl6YXRpb24gc3BlY2lmaWNhdGlvbi4KLSAoMjAyMikgW0ltcGxpY2l0IEpTT04gU2NoZW1hIFZlcnNpb25pbmcgVHJpZ2dlcmVkIGJ5IFRlbXBvcmFsIFVwZGF0ZXMgdG8gSlNPTi1CYXNlZCBCaWcgRGF0YSBpbiB0aGUgz4RKU2NoZW1hIEZyYW1ld29ya10oaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9jaGFwdGVyLzEwLjEwMDcvOTc4LTMtMDMxLTA3OTY5LTZfMz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGlzIHBhcGVyIHByb3Bvc2VzIGFuIGFwcHJvYWNoIGZvciBoYW5kbGluZyBpbXBsaWNpdCBzY2hlbWEgY2hhbmdlcyB0cmlnZ2VyZWQgYnkgdGVtcG9yYWwgdXBkYXRlcyBvZiBKU09OLWJhc2VkIEJpZyBEYXRhLiBNb3JlIHByZWNpc2VseSwgd2hlbiBhIHVzZXIgc3BlY2lmaWVzIGEgdGVtcG9yYWwgSlNPTiB1cGRhdGUgb3BlcmF0aW9uIHRoYXQgbW9kaWZpZXMgYSBzbmFwc2hvdCBKU09OIGNvbXBvbmVudCBhc3NpZ25pbmcgYSB2YWxpZC10aW1lIHRpbWVzdGFtcCB0byBpdHMgbmV3IHZhbHVlLCB0aGUgZXhlY3V0aW9uIG9mIHN1Y2ggYW4gb3BlcmF0aW9uIHJlcXVpcmVzIHRoZSBKU09OIGNvbXBvbmVudCB0byBiZWNvbWUgdGVtcG9yYWwsIHdoaWNoIGlzIGZvciBhbGwgaW50ZW50cyBhIHNjaGVtYSBjaGFuZ2UuIFRodXMsIGEgbmV3IHZlcnNpb24gb2YgdGhlIM+ESlNjaGVtYSB0ZW1wb3JhbCBjaGFyYWN0ZXJpc3RpY3MgZG9jdW1lbnQgaXMgZ2VuZXJhdGVkLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhIG5ldyB2YWxpZC10aW1lIGNoYXJhY3RlcmlzdGljLiBOZXcgdmVyc2lvbnMgb2YgdGhlIHRlbXBvcmFsIEpTT04gc2NoZW1hIGFuZCBvZiB0aGUgdGVtcG9yYWwgSlNPTiBkb2N1bWVudCBhcmUgYWxzbyBhY2NvcmRpbmdseSBjcmVhdGVkLgotICgyMDIxKSBbVElMVDogQSBHRFBSLUFsaWduZWQgVHJhbnNwYXJlbmN5IEluZm9ybWF0aW9uIExhbmd1YWdlIGFuZCBUb29sa2l0IGZvciBQcmFjdGljYWwgUHJpdmFjeSBFbmdpbmVlcmluZ10oaHR0cHM6Ly9kbC5hY20ub3JnL2RvaS8xMC4xMTQ1LzM0NDIxODguMzQ0NTkyNT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBXZSBwcmVzZW50IFRJTFQsIGEgdHJhbnNwYXJlbmN5IGluZm9ybWF0aW9uIGxhbmd1YWdlIGFuZCB0b29sa2l0IGV4cGxpY2l0bHkgZGVzaWduZWQgdG8gcmVwcmVzZW50IGFuZCBwcm9jZXNzIHRyYW5zcGFyZW5jeSBpbmZvcm1hdGlvbiBpbiBsaW5lIHdpdGggdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgR0RQUiBhbmQgYWxsb3dpbmcgZm9yIGEgbW9yZSBhdXRvbWF0ZWQgYW5kIGFkYXB0aXZlIHVzZSBvZiBzdWNoIGluZm9ybWF0aW9uIHRoYW4gZXN0YWJsaXNoZWQsIGxlZ2FsZXNlIGRhdGEgcHJvdGVjdGlvbiBwb2xpY2llcyBkby4KLSAoMjAyMSkgW05vdCBFbGltaW5hdGlvbiBhbmQgV2l0bmVzcyBHZW5lcmF0aW9uIGZvciBKU09OIFNjaGVtYV0oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIxMDQuMTQ4Mjg/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSW4gdGhpcyBwYXBlciwgd2UgcHJlc2VudCBhbiBhbGdlYnJhaWMgY2hhcmFjdGVyaXphdGlvbiBvZiBKU09OIFNjaGVtYSwgb2J0YWluZWQgYnkgYWRkaW5nIG9wcG9ydHVuZSBvcGVyYXRvcnMsIGFuZCBieSBtaXJyb3JpbmcgZXhpc3Rpbmcgb25lcy4gV2UgcHJlc2VudCB0aGVuIGFsZ2VicmEtYmFzZWQgYXBwcm9hY2hlcyBmb3IgZGVhbGluZyB3aXRoIG5vdC1lbGltaW5hdGlvbiBhbmQgd2l0bmVzcyBnZW5lcmF0aW9uIHByb2JsZW1zLCB3aGljaCBwbGF5IGEgY2VudHJhbCByb2xlIGFzIHRoZXkgbGVhZCB0byBzb2x1dGlvbnMgZm9yIHRoZSBvdGhlciBtZW50aW9uZWQgY29tcGxleCBwcm9ibGVtcy4KLSAoMjAyMSkgW0Zhc3QgRGlzY292ZXJ5IG9mIE5lc3RlZCBEZXBlbmRlbmNpZXMgb24gSlNPTiBEYXRhXShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjExMS4xMDM5OD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBFZmZpY2llbnQgZGVwZW5kZW5jeSBtaW5pbmcgYWxnb3JpdGhtcyBmb3Igbm9uLXJlbGF0aW9uYWwgZGF0YS4KLSAoMjAyMSkgW0VuaGFuY2luZyBKU09OIFNjaGVtYSBEaXNjb3ZlcnkgYnkgVW5jb3ZlcmluZyBIaWRkZW4gRGF0YV0oaHR0cHM6Ly9jZXVyLXdzLm9yZy9Wb2wtMjk3MS9wYXBlcjExLnBkZj91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBFbmhhbmNpbmcgZGlzY292ZXJlZCBKU09OIFNjaGVtYXMgYnkgZGlzYW1iaWd1YXRpbmcgZGF0YSBhbmQgbWV0YWRhdGEuCi0gKDIwMjEpIFtEZXJpdmluZyBTZW1hbnRpY3MtQXdhcmUgRnV6emVycyBmcm9tIFdlYiBBUEkgU2NoZW1hc10oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIxMTIuMTAzMjg/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gRGlzY3Vzc2VzIEpTT04gU2NoZW1hIGNhbm9uaWNhbGl6YXRpb24gYW5kIEpTT04gU2NoZW1hIGluc3RhbmNlIGRlcml2YXRpb24gaW4gdGhlIGNvbnRleHQgb2YgcHJvcGVydHktYmFzZWQgdGVzdGluZyBvZiBBUElzLgotICgyMDIwKSBbVHlwZSBTYWZldHkgd2l0aCBKU09OIFN1YnNjaGVtYV0oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzE5MTEuMTI2NTE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gRGVjaWRpbmcgd2hldGhlciBvbmUgc2NoZW1hIGlzIGEgc3Vic2NoZW1hIG9mIGFub3RoZXIgaXMgbm9uLXRyaXZpYWwgYmVjYXVzZSBvZiB0aGUgcmljaG5lc3Mgb2YgdGhlIEpTT04gU2NoZW1hIHNwZWNpZmljYXRpb24gbGFuZ3VhZ2UuIEdpdmVuIGEgcGFpciBvZiBzY2hlbWFzLCBvdXIgYXBwcm9hY2ggZmlyc3QgY2Fub25pY2FsaXplcyBhbmQgc2ltcGxpZmllcyBib3RoIHNjaGVtYXMsIHRoZW4gZGVjaWRlcyB0aGUgc3Vic2NoZW1hIHF1ZXN0aW9uIG9uIHRoZSBjYW5vbmljYWwgZm9ybXMsIGRpc3BhdGNoaW5nIHNpbXBsZXIgc3Vic2NoZW1hIHF1ZXJpZXMgdG8gdHlwZS1zcGVjaWZpYyBjaGVja2Vycy4KLSAoMjAyMCkgW0pTT04gU2NoZW1hIEluZmVyZW5jZSBBcHByb2FjaGVzXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzAtNjU4NDctMl8xNj91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBJbiB0aGUgY29udGV4dCBvZiBkb2N1bWVudCBOb1NRTCBkYXRhYmFzZXMsIG5hbWVseSB0aG9zZSBhc3N1bWluZyB0aGUgSlNPTiBkYXRhIGZvcm1hdCwgdGhpcyBwYXBlciBmb2N1c2VzIG9uIHNldmVyYWwgcmVwcmVzZW50YXRpdmVzIG9mIHRoZSBleGlzdGluZyBpbmZlcmVuY2UgYXBwcm9hY2hlcyBhbmQgcHJvdmlkZSB0aGVpciB0aG9yb3VnaCBjb21wYXJpc29uLgotICgyMDIwKSBbQ2hhbGxlbmdlcyBpbiBDaGVja2luZyBKU09OIFNjaGVtYSBDb250YWlubWVudCBvdmVyIEV2b2x2aW5nIFJlYWwtV29ybGQgU2NoZW1hc10oaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9jaGFwdGVyLzEwLjEwMDcvOTc4LTMtMDMwLTY1ODQ3LTJfMjA/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhpcyBwYXBlciBwcmVzZW50cyB0aGUgcmVzdWx0cyBvZiBhbiBlbXBpcmljYWwgc3R1ZHkgb2YgdGhlIGZpcnN0IGdlbmVyYXRpb24gb2YgdG9vbHMgZm9yIGNoZWNraW5nIEpTT04gU2NoZW1hIGNvbnRhaW5tZW50IHdoaWNoIGlzIGFwcGxpZWQgdG8gYSBkaXZlcnNlIGNvbGxlY3Rpb24gb2Ygb3ZlciAyMzAgcmVhbC13b3JsZCBzY2hlbWFzIGFuZCB0aGVpciBhbHRvZ2V0aGVyIDFrIGhpc3RvcmljIHZlcnNpb25zLgotICgyMDE5KSBbV2hhdCBBcmUgUmVhbCBKU09OIFNjaGVtYXMgTGlrZT9dKGh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3Lzk3OC0zLTAzMC0zNDE0Ni02Xzk/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQSBmaXJzdCBlbXBpcmljYWwgYW5hbHlzaXMgb2YgYSBjdXJhdGVkIGNvbGxlY3Rpb24gb2YgcmVhbC13b3JsZCBKU09OIFNjaGVtYXMuIEtub3dpbmcgd2hhdCByZWFsIEpTT04gU2NoZW1hcyBhcmUgbGlrZSAodG8gYm9ycm93IGZyb20gYSB0aXRsZSBvZiBhIHJlbGF0ZWQgc3R1ZHkgb24gRFREcykgaGVscHMgcHJhY3RpdGlvbmVycyBhbmQgcmVzZWFyY2hlcnMgaW4gbWFraW5nIHJlYWxpc3RpYyBhc3N1bXB0aW9ucyB3aGVuIGJ1aWxkaW5nIHRvb2xzIGZvciBKU09OIFNjaGVtYSBwcm9jZXNzaW5nLgotICgyMDE4KSBbVG9wLURvd24gTW9kZWwtRHJpdmVuIEVuZ2luZWVyaW5nIG9mIFdlYiBTZXJ2aWNlcyBmcm9tIEV4dGVuZGVkIE9wZW5BUEkgTW9kZWxzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvYWJzdHJhY3QvZG9jdW1lbnQvOTAwMDAyMD91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBTaG93cyBob3cgT3BlbkFQSSBjYW4gYmUgZXh0ZW5kZWQgdG8gYWRkIGltcGxlbWVudGF0aW9uIGRldGFpbHMgaW5zaWRlIG1vZGVscy4gVGhlc2UgZXh0ZW5zaW9ucyBsaW5rIHNlcnZpY2VzIHRvIGFzc2VtYmxpZXMgb2YgY29tcG9uZW50cyB0aGF0IGRlc2NyaWJlIGNvbXB1dGF0aW9ucy4gSGVuY2UgYSB0b3AtZG93biBkZXZlbG9wbWVudCBwcm9jZXNzIHRoYXQga2VlcHMgbW9kZWwgYW5kIGltcGxlbWVudGF0aW9uIGFsaWduZWQuCi0gKDIwMTgpIFtBbiBBcHByb2FjaCBmb3IgU2NoZW1hIEV4dHJhY3Rpb24gb2YgSlNPTiBhbmQgRXh0ZW5kZWQgSlNPTiBEb2N1bWVudCBDb2xsZWN0aW9uc10oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2Fic3RyYWN0L2RvY3VtZW50Lzg0MjQ3MzE/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhpcyBwYXBlciBwcmVzZW50cyBhbiBhcHByb2FjaCB0aGF0IGV4dHJhY3RzIGEgc2NoZW1hIGZyb20gYSBKU09OIG9yIEV4dGVuZGVkIEpTT04gZG9jdW1lbnQgY29sbGVjdGlvbiBzdG9yZWQgaW4gYSBOb1NRTCBkb2N1bWVudC1vcmllbnRlZCBkYXRhYmFzZSBvciBvdGhlciBkb2N1bWVudCByZXBvc2l0b3J5LiBBZ2dyZWdhdGlvbiBvcGVyYXRpb25zIGFyZSBjb25zaWRlcmVkIGluIG9yZGVyIHRvIG9idGFpbiBhIHNjaGVtYSBmb3IgZWFjaCBkaXN0aW5jdCBzdHJ1Y3R1cmUgaW4gdGhlIGNvbGxlY3Rpb24sIGFuZCBhIGhpZXJhcmNoaWNhbCBkYXRhIHN0cnVjdHVyZSBpcyBwcm9wb3NlZCB0byBncm91cCB0aGVzZSBzY2hlbWFzIGluIG9yZGVyIHRvIGdlbmVyYXRlIGEgZ2xvYmFsIHNjaGVtYSBpbiBKU09OIFNjaGVtYSBmb3JtYXQuCi0gKDIwMTcpIFtTY2hlbWEgSW5mZXJlbmNlIGZvciBNYXNzaXZlIEpTT04gRGF0YXNldHNdKGh0dHBzOi8vaGFsLmFyY2hpdmVzLW91dmVydGVzLmZyL2hhbC0wMTQ5MTc2NT91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBSZWNlbnQgeWVhcnMgaGF2ZSBzZWVuIHRoZSB3aWRlc3ByZWFkIHVzZSBvZiBKU09OIGFzIGEgZGF0YSBmb3JtYXQgdG8gcmVwcmVzZW50IG1hc3NpdmUgZGF0YSBjb2xsZWN0aW9ucy4gSlNPTiBkYXRhIGNvbGxlY3Rpb25zIGFyZSB1c3VhbGx5IHNjaGVtYWxlc3MuIFdoaWxlIHRoaXMgZW5zdXJlcyBzZXZlcmFsIGFkdmFudGFnZXMsIHRoZSBhYnNlbmNlIG9mIHNjaGVtYSBpbmZvcm1hdGlvbiBoYXMgaW1wb3J0YW50IG5lZ2F0aXZlIGNvbnNlcXVlbmNlczogdGhlIGNvcnJlY3RuZXNzIG9mIGNvbXBsZXggcXVlcmllcyBhbmQgcHJvZ3JhbXMgY2Fubm90IGJlIHN0YXRpY2FsbHkgY2hlY2tlZCwgdXNlcnMgY2Fubm90IHJlbHkgb24gc2NoZW1hIGluZm9ybWF0aW9uIHRvIHF1aWNrbHkgZmlndXJlIG91dCBzdHJ1Y3R1cmFsIHByb3BlcnRpZXMgdGhhdCBjb3VsZCBzcGVlZCB1cCB0aGUgZm9ybXVsYXRpb24gb2YgY29ycmVjdCBxdWVyaWVzLCBhbmQgbWFueSBzY2hlbWEtYmFzZWQgb3B0aW1pemF0aW9ucyBhcmUgbm90IHBvc3NpYmxlLiBJbiB0aGlzIHBhcGVyIHdlIGRlYWwgd2l0aCB0aGUgcHJvYmxlbSBvZiBpbmZlcnJpbmcgYSBzY2hlbWEgZnJvbSBtYXNzaXZlIEpTT04gZGF0YSBzZXRzLgotICgyMDE3KSBbRXhhbXBsZS1Ecml2ZW4gV2ViIEFQSSBTcGVjaWZpY2F0aW9uIERpc2NvdmVyeV0oaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9jaGFwdGVyLzEwLjEwMDcvOTc4LTMtMzE5LTYxNDgyLTNfMTY/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gSW4gdGhpcyBwYXBlciB3ZSBwcmVzZW50IGFuIGV4YW1wbGUtZHJpdmVuIGRpc2NvdmVyeSBwcm9jZXNzIHRoYXQgZ2VuZXJhdGVzIG1vZGVsLWJhc2VkIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZm9yIFJFU1QgV2ViIEFQSXMgYnkgdXNpbmcgQVBJIGNhbGwgZXhhbXBsZXMuIEEgdG9vbCBpbXBsZW1lbnRpbmcgb3VyIGFwcHJvYWNoIGFuZCBhIGNvbW11bml0eS1kcml2ZW4gcmVwb3NpdG9yeSBmb3IgdGhlIGRpc2NvdmVyZWQgQVBJcyBhcmUgYWxzbyBwcmVzZW50ZWQuCi0gKDIwMTcpIFtEZWZpbml0aW9uIG9mIFJFU1Qgd2ViIHNlcnZpY2VzIHdpdGggSlNPTiBzY2hlbWFdKGh0dHBzOi8vZGwuYWNtLm9yZy9kb2kvYWJzLzEwLjEwMDIvc3BlLjI0NjY/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gVGhlIGFpbSBvZiB0aGlzIGFydGljbGUgaXMgdG8gZGVtb25zdHJhdGUgaG93IEpTT04gU2NoZW1hLCBhbmQgcGFydGljdWxhcmx5IHRoZSBKU09OIEh5cGVyIFNjaGVtYSBleHRlbnNpb24sIGlzIHN1aXRhYmxlIHRvIGRlc2NyaWJlIEpTT04tYmFzZWQgd2ViIHNlcnZpY2VzIHRoYXQgZm9sbG93IHRoZSBSRVNUIGFyY2hpdGVjdHVyYWwgcGF0dGVybi4KLSAoMjAxNikgW8+ESlNjaGVtYTogQSBGcmFtZXdvcmsgZm9yIE1hbmFnaW5nIFRlbXBvcmFsIEpTT04tQmFzZWQgTm9TUUwgRGF0YWJhc2VzXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0zMTktNDQ0MDYtMl8xMz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBUaGlzIHBhcGVyIHByb3Bvc2VzIGEgZnJhbWV3b3JrIGNhbGxlZCBUZW1wb3JhbCBKU09OIFNjaGVtYSAoz4RKU2NoZW1hKSwgaW5zcGlyZWQgYnkgdGhlIM+EWFNjaGVtYSBmcmFtZXdvcmsgZGVmaW5lZCBmb3IgWE1MIGRhdGEuIM+ESlNjaGVtYSBhbGxvd3MgZGVmaW5pbmcgYSB0ZW1wb3JhbCBKU09OIHNjaGVtYSBmcm9tIGEgY29udmVudGlvbmFsIEpTT04gc2NoZW1hIGFuZCBhIHNldCBvZiB0ZW1wb3JhbCBsb2dpY2FsIGFuZCBwaHlzaWNhbCBjaGFyYWN0ZXJpc3RpY3MuIE91ciBmcmFtZXdvcmsgZ3VhcmFudGVlcyBsb2dpY2FsIGFuZCBwaHlzaWNhbCBkYXRhIGluZGVwZW5kZW5jZSBmb3IgdGVtcG9yYWwgc2NoZW1hcyBhbmQgcHJvdmlkZXMgYSBsb3ctaW1wYWN0IHNvbHV0aW9uIHNpbmNlIGl0IHJlcXVpcmVzIG5laXRoZXIgbW9kaWZpY2F0aW9ucyBvZiBleGlzdGluZyBKU09OIGRvY3VtZW50cywgbm9yIGV4dGVuc2lvbnMgdG8gdGhlIEpTT04gZm9ybWF0LCB0aGUgSlNPTiBTY2hlbWEgbGFuZ3VhZ2UsIGFuZCBhbGwgcmVsYXRlZCB0b29scyBhbmQgbGFuZ3VhZ2VzLgotICgyMDE2KSBbRm91bmRhdGlvbnMgb2YgSlNPTiBTY2hlbWFdKGh0dHBzOi8vZGwuYWNtLm9yZy9kb2kvYWJzLzEwLjExNDUvMjg3MjQyNy4yODgzMDI5P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEluIHRoaXMgcGFwZXIgd2UgcHJvdmlkZSB0aGUgZmlyc3QgZm9ybWFsIGRlZmluaXRpb24gb2Ygc3ludGF4IGFuZCBzZW1hbnRpY3MgZm9yIEpTT04gU2NoZW1hIGFuZCB1c2UgaXQgdG8gc2hvdyB0aGF0IGltcGxlbWVudGluZyB0aGlzIGxheWVyIG9uIHRvcCBvZiBKU09OIGlzIGZlYXNpYmxlIGluIHByYWN0aWNlLgotICgyMDE1KSBbU2NoZW1hIGV4dHJhY3Rpb24gYW5kIHN0cnVjdHVyYWwgb3V0bGllciBkZXRlY3Rpb24gZm9yIEpTT04tYmFzZWQgbm9zcWwgZGF0YSBzdG9yZXNdKGh0dHBzOi8vZGwuZ2kuZGUvaGFuZGxlLzIwLjUwMC4xMjExNi8yNDIwP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFJhdGhlciB0aGFuIGRlc2lnbmluZyB0aGUgc2NoZW1hIHVwIGZyb250LCBleHRyYWN0aW5nIGEgc2NoZW1hIGluIGhpbmRzaWdodCBjYW4gYmUgc2VlbiBhcyBhIHJldmVyc2UtZW5naW5lZXJpbmcgc3RlcC4gQmFzZWQgb24gdGhlIGV4dHJhY3RlZCBzY2hlbWEgaW5mb3JtYXRpb24sIHdlIHByb3Bvc2Ugc2V0IG9mIHNpbWlsYXJpdHkgbWVhc3VyZXMgdGhhdCBjYXB0dXJlIHRoZSBkZWdyZWUgb2YgaGV0ZXJvZ2VuZWl0eSBvZiBKU09OIGRhdGEgYW5kIHdoaWNoIHJldmVhbCBzdHJ1Y3R1cmFsIG91dGxpZXJzIGluIHRoZSBkYXRhLgotICgyMDE0KSBbSnNvbmdlbjogYSBxdWlja2NoZWNrIGJhc2VkIGxpYnJhcnkgZm9yIHRlc3RpbmcgSlNPTiB3ZWIgc2VydmljZXNdKGh0dHBzOi8vZGwuYWNtLm9yZy9kb2kvYWJzLzEwLjExNDUvMjYzMzQ0OC4yNjMzNDU0P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoaXMgYXJ0aWNsZSBkZXNjcmliZXMgYSBzeXN0ZW1hdGljIGFwcHJvYWNoIHRvIHRlc3RpbmcgYmVoYXZpb3VyYWwgYXNwZWN0cyBvZiBXZWIgU2VydmljZXMgdGhhdCBjb21tdW5pY2F0ZSB1c2luZyB0aGUgSlNPTiBkYXRhIGZvcm1hdC4gVG8gZ2VuZXJhdGUgcmFuZG9tIEpTT04gZGF0YSBmb3IgcG9wdWxhdGluZyB0ZXN0cyB3ZSBoYXZlIGRldmVsb3BlZCBhIG5ldyBsaWJyYXJ5LCBqc29uZ2VuLCB3aGljaCBnaXZlbiBhIGNoYXJhY3RlcmlzYXRpb24gb2YgdGhlIEpTT04gZGF0YSBhcyBhIEpTT04gc2NoZW1hLCAoaSkgYXV0b21hdGljYWxseSBkZXJpdmVzIGEgUXVpY2tDaGVjayBnZW5lcmF0b3Igd2hpY2ggY2FuIGdlbmVyYXRlIGFuIGluZmluaXRlIG51bWJlciBvZiBKU09OIHZhbHVlcyB0aGF0IHZhbGlkYXRlIGFnYWluc3QgdGhlIHNjaGVtYSwgYW5kIChpaSkgcHJvdmlkZXMgYSBnZW5lcmljIFF1aWNrQ2hlY2sgc3RhdGUgbWFjaGluZSB3aGljaCBpcyBjYXBhYmxlIG9mIGZvbGxvd2luZyB0aGUgKGh5cGVyKWxpbmtzIGRvY3VtZW50ZWQgaW4gdGhlIEpTT04gc2NoZW1hLCB0byBhdXRvbWF0aWNhbGx5IGV4cGxvcmUgdGhlIHdlYiBzZXJ2aWNlLgotICgyMDEyKSBbVXNlciBwcm9maWxlIGludGVncmF0aW9uIG1hZGUgZWFzeTogbW9kZWwtZHJpdmVuIGV4dHJhY3Rpb24gYW5kIHRyYW5zZm9ybWF0aW9uIG9mIHNvY2lhbCBuZXR3b3JrIHNjaGVtYXNdKGh0dHBzOi8vZGwuYWNtLm9yZy9kb2kvYWJzLzEwLjExNDUvMjE4Nzk4MC4yMTg4MjI3P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoaXMgcGFwZXIgcHJlc2VudHMsIGZpcnN0bHksIGEgc2VtaS1hdXRvbWF0aWMgYXBwcm9hY2ggdG8gZXh0cmFjdCBzY2hlbWEgaW5mb3JtYXRpb24gZnJvbSBpbnN0YW5jZSBkYXRhLiBTZWNvbmRseSwgdHJhbnNmb3JtYXRpb25zIG9mIHRoZSBkZXJpdmVkIHNjaGVtYXMgdG8gZGlmZmVyZW50IHRlY2huaWNhbCBzcGFjZXMgYXJlIHV0aWxpemVkLCB0aGVyZWJ5IGFsbG93aW5nLCBhbW9uZ3N0IG90aGVyIGJlbmVmaXRzLCB0aGUgYXBwbGljYXRpb24gb2YgZXN0YWJsaXNoZWQgaW50ZWdyYXRpb24gdG9vbHMgYW5kIG1ldGhvZHMuIEZpbmFsbHksIGFzIGEgY2FzZSBzdHVkeSwgc2NoZW1hcyBhcmUgZGVyaXZlZCBmb3IgRmFjZWJvb2ssIEdvb2dsZSssIGFuZCBMaW5rZWRJbi4KCiMjIFRvb2xzCgotIFtUeXBlZFdlYmhvb2sudG9vbHNdKGh0dHBzOi8vdHlwZWR3ZWJob29rLnRvb2xzP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIG9ubGluZSB3ZWJob29rIHRlc3RpbmcgdG9vbCB0aGF0IGlzIGFibGUgdG8gZ2VuZXJhdGUgSlNPTiBTY2hlbWEgZGVmaW5pdGlvbnMgb3V0IG9mIGluY29taW5nIGRhdGEuCi0gW1F1aWNrVHlwZS5pb10oaHR0cHM6Ly9hcHAucXVpY2t0eXBlLmlvP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIG9ubGluZSBKU09OIFNjaGVtYSBjb2RlLWdlbmVyYXRpb24gdXRpbGl0eSB3aXRoIGRpdmVyc2UgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugc3VwcG9ydC4KLSBbSlNPTnNjaGVtYS5OZXRdKGh0dHBzOi8vd3d3Lmpzb25zY2hlbWEubmV0P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIG9ubGluZSB0b29sIHRoYXQgZ2VuZXJhdGVzIEpTT04gc2NoZW1hIGZyb20gSlNPTiBkb2N1bWVudHMuCi0gW0pTT05TY2hlbWEuZGV2XShodHRwczovL2pzb25zY2hlbWEuZGV2P3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIG9ubGluZSBKU09OIFNjaGVtYSB2YWxpZGF0b3IgY3JlYXRlZCBieSB0aGUgSlNPTiBTY2hlbWEgc3BlY2lmaWNhdGlvbiBsZWFkLgotIFtKU09OQnVkZHldKGh0dHBzOi8vd3d3Lmpzb24tYnVkZHkuY29tP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEEgSlNPTiBlZGl0b3IgYW5kIHZhbGlkYXRvciBkZXNrdG9wIGFwcGxpY2F0aW9uIGZvciBXaW5kb3dzLgotIFtKU09OIFNjaGVtYSBWaWV3ZXJdKGh0dHA6Ly9qbGJsY2MuZ2l0aHViLmlvL2pzb24tc2NoZW1hLXZpZXdlci8/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gb25saW5lIHRvb2wgdG8gdmlzdWFsaXplIEpTT04gU2NoZW1hIGRlZmluaXRpb25zLgotIFtKU09OIFNjaGVtYSBWYWxpZGF0b3IgYW5kIEdlbmVyYXRvcl0oaHR0cHM6Ly9leHRlbmRzY2xhc3MuY29tL2pzb24tc2NoZW1hLXZhbGlkYXRvci5odG1sP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIEFuIG9ubGluZSBKU09OIFNjaGVtYSB2YWxpZGF0b3IgdGhhdCBjYW4gZ2VuZXJhdGUgSlNPTiBTY2hlbWEgZnJvbSBKU09OIGRvY3VtZW50cyBhbmQgZ2VuZXJhdGUgcmFuZG9tIEpTT04gZG9jdW1lbnRzIGZyb20gSlNPTiBTY2hlbWEuCi0gW0pTT04gU2NoZW1hIFZhbGlkYXRvcl0oaHR0cHM6Ly93d3cuanNvbnNjaGVtYXZhbGlkYXRvci5uZXQ/dXRtX3NvdXJjZT1hd2Vzb21lLWpzb25zY2hlbWEpIC0gQW4gb25saW5lIEpTT04gU2NoZW1hIHZhbGlkYXRvciB3aXRoIHN1cHBvcnQgZm9yIEpTT04gU2NoZW1hIERyYWZ0IDMsIERyYWZ0IDQsIERyYWZ0IDYsIERyYWZ0IDcgYW5kIERyYWZ0IDIwMTktMDkuCi0gW0pTT04gU2NoZW1hIENMSV0oaHR0cHM6Ly9naXRodWIuY29tL2ludGVsbGlnZW5jZS1haS9qc29uc2NoZW1hP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIFRoZSBDTEkgZm9yIHdvcmtpbmcgd2l0aCBKU09OIFNjaGVtYS4gQ292ZXJzIGZvcm1hdHRpbmcsIGxpbnRpbmcsIHRlc3RpbmcsIGJ1bmRsaW5nLCBhbmQgbW9yZSBmb3IgYm90aCBsb2NhbCBkZXZlbG9wbWVudCBhbmQgQ0kvQ0QgcGlwZWxpbmVzLgotIFtIeXBlcmp1bXAgSlNPTiBTY2hlbWEgVmFsaWRhdG9yXShodHRwczovL2pzb24tc2NoZW1hLmh5cGVyanVtcC5pbz91dG1fc291cmNlPWF3ZXNvbWUtanNvbnNjaGVtYSkgLSBBbiBvbmxpbmUgSlNPTiBTY2hlbWEgdmFsaWRhdG9yIHRoYXQgc3VwcG9ydHMgRHJhZnQgMDQsIDA2LCAwNywgMjAxOS0wOSwgYW5kIDIwMjAtMTIuCi0gW0FsdGVyU2NoZW1hXShodHRwczovL2FsdGVyc2NoZW1hLnNvdXJjZW1ldGEuY29tP3V0bV9zb3VyY2U9YXdlc29tZS1qc29uc2NoZW1hKSAtIENvbnZlcnQgYSBKU09OIFNjaGVtYSBkZWZpbml0aW9uIGJldHdlZW4gc3BlY2lmaWNhdGlvbiB2ZXJzaW9ucy4KCiMjIExpYnJhcmllcwoKVGhlIEpTT04gU2NoZW1hIHdlYnNpdGUgaW5jbHVkZXMgYW4gZXh0ZW5zaXZlIGxpc3Qgb2YgaW1wbGVtZW50YXRpb25zIGFuZApyZWxhdGVkIGxpYnJhcmllczogaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvaW1wbGVtZW50YXRpb25zLmh0bWwuCgotLS0KCj4gU3BlY2lhbCB0aGFua3MgdG8gW0BraW5sYW5lXShodHRwczovL2dpdGh1Yi5jb20va2lubGFuZSkgZm9yIGN1cmF0aW5nIHRoZQppbml0aWFsIHZlcnNpb24gb2YgdGhpcyBsaXN0Lgo= readmeEtag: '"6b8c9f998e8372608704eae8b2eeb11389613e99"' readmeLastModified: Mon, 12 Aug 2024 19:29:33 GMT repositoryId: 404698785 description: >- A curated list of awesome JSON Schema resources, tutorials, tools, and more created: '2021-09-09T11:39:06Z' updated: '2024-09-03T20:11:43Z' language: Handlebars archived: false stars: 115 watchers: 11 forks: 4 owner: sourcemeta logo: https://avatars.githubusercontent.com/u/74150453?v=4 license: CC0-1.0 repoEtag: '"c6f85db1a9ae3464c09db8f1ea822c52fba2f91bcd59b41b150c6eb2c5499a02"' repoLastModified: Tue, 03 Sep 2024 20:11:43 GMT foundInMaster: true category: Converters id: 40df0f4f4e0e95da0b9f4aeb27567a36 oldLocations: - https://github.com/jviotti/awesome-jsonschema - source: openapi3 tags repository: https://github.com/kuimono/openapi-schema-pydantic v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXNjaGVtYS1weWRhbnRpYwoKWyFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaS1zY2hlbWEtcHlkYW50aWMpXShodHRwczovL3B5cGkub3JnL3Byb2plY3Qvb3BlbmFwaS1zY2hlbWEtcHlkYW50aWMvKQpbIVtQeVBJIC0gTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wvb3BlbmFwaS1zY2hlbWEtcHlkYW50aWMpXShodHRwczovL2dpdGh1Yi5jb20va3VpbW9uby9vcGVuYXBpLXNjaGVtYS1weWRhbnRpYy9ibG9iL21hc3Rlci9MSUNFTlNFKQoKT3BlbkFQSSAodjMpIHNwZWNpZmljYXRpb24gc2NoZW1hIGFzIFtQeWRhbnRpY10oaHR0cHM6Ly9naXRodWIuY29tL3NhbXVlbGNvbHZpbi9weWRhbnRpYykgY2xhc3Nlcy4KClRoZSBuYW1pbmcgb2YgdGhlIGNsYXNzZXMgZm9sbG93cyB0aGUgc2NoZW1hIGluIApbT3BlbkFQSSBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjEuMC5tZCNzY2hlbWEpLgoKIyMgSW5zdGFsbGF0aW9uCgpgcGlwIGluc3RhbGwgb3BlbmFwaS1zY2hlbWEtcHlkYW50aWNgCgojIyBUcnkgbWUKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfc2NoZW1hX3B5ZGFudGljIGltcG9ydCBPcGVuQVBJLCBJbmZvLCBQYXRoSXRlbSwgT3BlcmF0aW9uLCBSZXNwb25zZQoKIyBDb25zdHJ1Y3QgT3BlbkFQSSBieSBweWRhbnRpYyBvYmplY3RzCm9wZW5fYXBpID0gT3BlbkFQSSgKICAgIGluZm89SW5mbygKICAgICAgICB0aXRsZT0iTXkgb3duIEFQSSIsCiAgICAgICAgdmVyc2lvbj0idjAuMC4xIiwKICAgICksCiAgICBwYXRocz17CiAgICAgICAgIi9waW5nIjogUGF0aEl0ZW0oCiAgICAgICAgICAgIGdldD1PcGVyYXRpb24oCiAgICAgICAgICAgICAgICByZXNwb25zZXM9ewogICAgICAgICAgICAgICAgICAgICIyMDAiOiBSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249InBvbmciCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgKQogICAgfSwKKQpwcmludChvcGVuX2FwaS5qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfbm9uZT1UcnVlLCBpbmRlbnQ9MikpCmBgYAoKUmVzdWx0OgoKYGBganNvbgp7CiAgIm9wZW5hcGkiOiAiMy4xLjAiLAogICJpbmZvIjogewogICAgInRpdGxlIjogIk15IG93biBBUEkiLAogICAgInZlcnNpb24iOiAidjAuMC4xIgogIH0sCiAgInNlcnZlcnMiOiBbCiAgICB7CiAgICAgICJ1cmwiOiAiLyIKICAgIH0KICBdLAogICJwYXRocyI6IHsKICAgICIvcGluZyI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInBvbmciCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiZGVwcmVjYXRlZCI6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgojIyBUYWtlIGFkdmFudGFnZSBvZiBQeWRhbnRpYwoKUHlkYW50aWMgaXMgYSBncmVhdCB0b29sLCBhbGxvdyB5b3UgdG8gdXNlIG9iamVjdCAvIGRpY3QgLyBtaXhlZCBkYXRhIGZvciBmb3IgaW5wdXQuCgpUaGUgZm9sbG93aW5nIGV4YW1wbGVzIGdpdmUgdGhlIHNhbWUgT3BlbkFQSSByZXN1bHQgYXMgYWJvdmU6CgpgYGBweXRob24KZnJvbSBvcGVuYXBpX3NjaGVtYV9weWRhbnRpYyBpbXBvcnQgT3BlbkFQSSwgUGF0aEl0ZW0sIFJlc3BvbnNlCgojIENvbnN0cnVjdCBPcGVuQVBJIGZyb20gZGljdApvcGVuX2FwaSA9IE9wZW5BUEkucGFyc2Vfb2JqKHsKICAgICJpbmZvIjogeyJ0aXRsZSI6ICJNeSBvd24gQVBJIiwgInZlcnNpb24iOiAidjAuMC4xIn0sCiAgICAicGF0aHMiOiB7CiAgICAgICAgIi9waW5nIjogewogICAgICAgICAgICAiZ2V0IjogeyJyZXNwb25zZXMiOiB7IjIwMCI6IHsiZGVzY3JpcHRpb24iOiAicG9uZyJ9fX0KICAgICAgICB9CiAgICB9LAp9KQoKIyBDb25zdHJ1Y3QgT3BlbkFQSSB3aXRoIG1peCBvZiBkaWN0L29iamVjdApvcGVuX2FwaSA9IE9wZW5BUEkucGFyc2Vfb2JqKHsKICAgICJpbmZvIjogeyJ0aXRsZSI6ICJNeSBvd24gQVBJIiwgInZlcnNpb24iOiAidjAuMC4xIn0sCiAgICAicGF0aHMiOiB7CiAgICAgICAgIi9waW5nIjogUGF0aEl0ZW0oCiAgICAgICAgICAgIGdldD17InJlc3BvbnNlcyI6IHsiMjAwIjogUmVzcG9uc2UoZGVzY3JpcHRpb249InBvbmciKX19CiAgICAgICAgKQogICAgfSwKfSkKYGBgCgojIyBVc2UgUHlkYW50aWMgY2xhc3NlcyBhcyBzY2hlbWEKCi0gVGhlIFtTY2hlbWEgT2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMy5tZCNzY2hlbWFPYmplY3QpCiAgaW4gT3BlbkFQSSBoYXMgZGVmaW5pdGlvbnMgYW5kIHR3ZWFrcyBpbiBKU09OIFNjaGVtYSwgd2hpY2ggaXMgaGFyZCB0byBjb21wcmVoZW5kIGFuZCBkZWZpbmUgYSBnb29kIGRhdGEgY2xhc3MKLSBQeWRhbnRpYyBhbHJlYWR5IGhhcyBhIGdvb2Qgd2F5IHRvIFtjcmVhdGUgSlNPTiBzY2hlbWFdKGh0dHBzOi8vcHlkYW50aWMtZG9jcy5oZWxwbWFudWFsLmlvL3VzYWdlL3NjaGVtYS8pLAogIGxldCdzIG5vdCByZS1pbnZlbnQgdGhlIHdoZWVsCiAgClRoZSBhcHByb2FjaCB0byBkZWFsIHdpdGggdGhpczoKCjEuIFVzZSBgUHlkYW50aWNTY2hlbWFgIG9iamVjdHMgdG8gcmVwcmVzZW50IHRoZSBgU2NoZW1hYCBpbiBgT3BlbkFQSWAgb2JqZWN0CjIuIEludm9rZSBgY29uc3RydWN0X29wZW5fYXBpX3dpdGhfc2NoZW1hX2NsYXNzYCB0byByZXNvbHZlIHRoZSBKU09OIHNjaGVtYXMgYW5kIHJlZmVyZW5jZXMKCmBgYHB5dGhvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIEZpZWxkCgpmcm9tIG9wZW5hcGlfc2NoZW1hX3B5ZGFudGljIGltcG9ydCBPcGVuQVBJCmZyb20gb3BlbmFwaV9zY2hlbWFfcHlkYW50aWMudXRpbCBpbXBvcnQgUHlkYW50aWNTY2hlbWEsIGNvbnN0cnVjdF9vcGVuX2FwaV93aXRoX3NjaGVtYV9jbGFzcwoKZGVmIGNvbnN0cnVjdF9iYXNlX29wZW5fYXBpKCkgLT4gT3BlbkFQSToKICAgIHJldHVybiBPcGVuQVBJLnBhcnNlX29iaih7CiAgICAgICAgImluZm8iOiB7InRpdGxlIjogIk15IG93biBBUEkiLCAidmVyc2lvbiI6ICJ2MC4wLjEifSwKICAgICAgICAicGF0aHMiOiB7CiAgICAgICAgICAgICIvcGluZyI6IHsKICAgICAgICAgICAgICAgICJwb3N0IjogewogICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0Qm9keSI6IHsiY29udGVudCI6IHsiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInNjaGVtYSI6IFB5ZGFudGljU2NoZW1hKHNjaGVtYV9jbGFzcz1QaW5nUmVxdWVzdCkKICAgICAgICAgICAgICAgICAgICB9fX0sCiAgICAgICAgICAgICAgICAgICAgInJlc3BvbnNlcyI6IHsiMjAwIjogewogICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAicG9uZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJjb250ZW50IjogeyJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjaGVtYSI6IFB5ZGFudGljU2NoZW1hKHNjaGVtYV9jbGFzcz1QaW5nUmVzcG9uc2UpCiAgICAgICAgICAgICAgICAgICAgICAgIH19LAogICAgICAgICAgICAgICAgICAgIH19LAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgIH0pCgpjbGFzcyBQaW5nUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiUGluZyBSZXF1ZXN0IiIiCiAgICByZXFfZm9vOiBzdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iZm9vIHZhbHVlIG9mIHRoZSByZXF1ZXN0IikKICAgIHJlcV9iYXI6IHN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJiYXIgdmFsdWUgb2YgdGhlIHJlcXVlc3QiKQoKY2xhc3MgUGluZ1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiJQaW5nIHJlc3BvbnNlIiIiCiAgICByZXNwX2Zvbzogc3RyID0gRmllbGQoZGVzY3JpcHRpb249ImZvbyB2YWx1ZSBvZiB0aGUgcmVzcG9uc2UiKQogICAgcmVzcF9iYXI6IHN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJiYXIgdmFsdWUgb2YgdGhlIHJlc3BvbnNlIikKCm9wZW5fYXBpID0gY29uc3RydWN0X2Jhc2Vfb3Blbl9hcGkoKQpvcGVuX2FwaSA9IGNvbnN0cnVjdF9vcGVuX2FwaV93aXRoX3NjaGVtYV9jbGFzcyhvcGVuX2FwaSkKCiMgcHJpbnQgdGhlIHJlc3VsdCBvcGVuYXBpLmpzb24KcHJpbnQob3Blbl9hcGkuanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX25vbmU9VHJ1ZSwgaW5kZW50PTIpKQpgYGAKClJlc3VsdDoKCmBgYGpzb24KewogICJvcGVuYXBpIjogIjMuMS4wIiwKICAiaW5mbyI6IHsKICAgICJ0aXRsZSI6ICJNeSBvd24gQVBJIiwKICAgICJ2ZXJzaW9uIjogInYwLjAuMSIKICB9LAogICJzZXJ2ZXJzIjogWwogICAgewogICAgICAidXJsIjogIi8iCiAgICB9CiAgXSwKICAicGF0aHMiOiB7CiAgICAiL3BpbmciOiB7CiAgICAgICJwb3N0IjogewogICAgICAgICJyZXF1ZXN0Qm9keSI6IHsKICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUGluZ1JlcXVlc3QiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgInJlcXVpcmVkIjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAicG9uZyIsCiAgICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUGluZ1Jlc3BvbnNlIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImRlcHJlY2F0ZWQiOiBmYWxzZQogICAgICB9CiAgICB9CiAgfSwKICAiY29tcG9uZW50cyI6IHsKICAgICJzY2hlbWFzIjogewogICAgICAiUGluZ1JlcXVlc3QiOiB7CiAgICAgICAgInRpdGxlIjogIlBpbmdSZXF1ZXN0IiwKICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAicmVxX2ZvbyIsCiAgICAgICAgICAicmVxX2JhciIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAicmVxX2ZvbyI6IHsKICAgICAgICAgICAgInRpdGxlIjogIlJlcSBGb28iLAogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZm9vIHZhbHVlIG9mIHRoZSByZXF1ZXN0IgogICAgICAgICAgfSwKICAgICAgICAgICJyZXFfYmFyIjogewogICAgICAgICAgICAidGl0bGUiOiAiUmVxIEJhciIsCiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJiYXIgdmFsdWUgb2YgdGhlIHJlcXVlc3QiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGluZyBSZXF1ZXN0IgogICAgICB9LAogICAgICAiUGluZ1Jlc3BvbnNlIjogewogICAgICAgICJ0aXRsZSI6ICJQaW5nUmVzcG9uc2UiLAogICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICJyZXNwX2ZvbyIsCiAgICAgICAgICAicmVzcF9iYXIiCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgInJlc3BfZm9vIjogewogICAgICAgICAgICAidGl0bGUiOiAiUmVzcCBGb28iLAogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZm9vIHZhbHVlIG9mIHRoZSByZXNwb25zZSIKICAgICAgICAgIH0sCiAgICAgICAgICAicmVzcF9iYXIiOiB7CiAgICAgICAgICAgICJ0aXRsZSI6ICJSZXNwIEJhciIsCiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJiYXIgdmFsdWUgb2YgdGhlIHJlc3BvbnNlIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImRlc2NyaXB0aW9uIjogIlBpbmcgcmVzcG9uc2UiCiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgojIyBOb3RlcwoKIyMjIFVzZSBvZiBPcGVuQVBJLmpzb24oKSAvIE9wZW5BUEkuZGljdCgpCgpXaGVuIHVzaW5nIGBPcGVuQVBJLmpzb24oKWAgLyBgT3BlbkFQSS5kaWN0KClgIGZ1bmN0aW9uLAphcmd1bWVudHMgYGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfbm9uZT1UcnVlYCBoYXMgdG8gYmUgaW4gcGxhY2UuCk90aGVyd2lzZSB0aGUgcmVzdWx0IGpzb24gd2lsbCBub3QgZml0IHRoZSBPcGVuQVBJIHN0YW5kYXJkLgoKYGBgcHl0aG9uCiMgT0sKb3Blbl9hcGkuanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX25vbmU9VHJ1ZSwgaW5kZW50PTIpCgojIE5vdCBnb29kCm9wZW5fYXBpLmpzb24oaW5kZW50PTIpCmBgYAoKTW9yZSBpbmZvIGFib3V0IGZpZWxkIGFsaWFzOgoKfCBPcGVuQVBJIHZlcnNpb24gfCBGaWVsZCBhbGlhcyBpbmZvIHwKfCAtLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tIHwKfCAzLjEuMCB8IFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20va3VpbW9uby9vcGVuYXBpLXNjaGVtYS1weWRhbnRpYy9ibG9iL21hc3Rlci9vcGVuYXBpX3NjaGVtYV9weWRhbnRpYy92My92M18xXzAvUkVBRE1FLm1kI2FsaWFzKSB8CnwgMy4wLjMgfCBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2t1aW1vbm8vb3BlbmFwaS1zY2hlbWEtcHlkYW50aWMvYmxvYi9tYXN0ZXIvb3BlbmFwaV9zY2hlbWFfcHlkYW50aWMvdjMvdjNfMF8zL1JFQURNRS5tZCNhbGlhcykgfAoKIyMjIE5vbi1weWRhbnRpYyBzY2hlbWEgdHlwZXMKClNvbWUgc2NoZW1hIHR5cGVzIGFyZSBub3QgaW1wbGVtZW50ZWQgYXMgcHlkYW50aWMgY2xhc3Nlcy4KUGxlYXNlIHJlZmVyIHRvIHRoZSBmb2xsb3dpbmcgZm9yIG1vcmUgaW5mbzoKCnwgT3BlbkFQSSB2ZXJzaW9uIHwgTm9uLXB5ZGFudGljIHNjaGVtYSB0eXBlIGluZm8gfAp8IC0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCAzLjEuMCB8IFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20va3VpbW9uby9vcGVuYXBpLXNjaGVtYS1weWRhbnRpYy9ibG9iL21hc3Rlci9vcGVuYXBpX3NjaGVtYV9weWRhbnRpYy92My92M18xXzAvUkVBRE1FLm1kI25vbi1weWRhbnRpYy1zY2hlbWEtdHlwZXMpIHwKfCAzLjAuMyB8IFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20va3VpbW9uby9vcGVuYXBpLXNjaGVtYS1weWRhbnRpYy9ibG9iL21hc3Rlci9vcGVuYXBpX3NjaGVtYV9weWRhbnRpYy92My92M18wXzMvUkVBRE1FLm1kI25vbi1weWRhbnRpYy1zY2hlbWEtdHlwZXMpIHwKCiMjIyBVc2UgT3BlbkFQSSAzLjAuMyBpbnN0ZWFkIG9mIDMuMS4wCgpTb21lIFVJIHJlbmRlcmluZ3MgKGUuZy4gU3dhZ2dlcikgc3RpbGwgZG8gbm90IHN1cHBvcnQgT3BlbkFQSSAzLjEuMC4KSXQgaXMgYWxsb3dlZCB0byB1c2UgdGhlIG9sZCAzLjAuMyB2ZXJzaW9uIGJ5IGltcG9ydGluZyBmcm9tIGRpZmZlcmVudCBwYXRoczoKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfc2NoZW1hX3B5ZGFudGljLnYzLnYzXzBfMyBpbXBvcnQgT3BlbkFQSSwgLi4uCmZyb20gb3BlbmFwaV9zY2hlbWFfcHlkYW50aWMudjMudjNfMF8zLnV0aWwgaW1wb3J0IFB5ZGFudGljU2NoZW1hLCBjb25zdHJ1Y3Rfb3Blbl9hcGlfd2l0aF9zY2hlbWFfY2xhc3MKYGBgCgojIyBMaWNlbnNlCgpbTUlUIExpY2Vuc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWltb25vL29wZW5hcGktc2NoZW1hLXB5ZGFudGljL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpCg== readmeEtag: '"2769cce17ec836e639e2a438a513b737787e5d5f"' readmeLastModified: Wed, 29 Jun 2022 12:42:14 GMT repositoryId: 263836606 description: 'OpenAPI (v3) specification schema as pydantic class ' created: '2020-05-14T06:42:49Z' updated: '2024-08-15T14:26:03Z' language: Python archived: false stars: 113 watchers: 4 forks: 19 owner: kuimono logo: https://avatars.githubusercontent.com/u/16016416?v=4 license: MIT repoEtag: '"472a4286da54b829b710ab8f6df98d7eca9ee4b080a192b9616dbd7400ce2b27"' repoLastModified: Thu, 15 Aug 2024 14:26:03 GMT foundInMaster: true category: Parsers id: db4e005af8e10dd51fade90218a598f9 - source: openapi3 tags repository: https://github.com/openapi/actix-swagger v3: true repositoryMetadata: base64Readme: >- IyBhY3RpeCBzd2FnZ2VyCgojIyBVc2FnZQoKPiBOb3QgZm9yIHByb2R1Y3Rpb24gdXNlIHlldAoKYGBgYmFzaAojIEFkZCBjYXJnbyBjb21tYW5kIHRvIHNpbXBsaWZ5IHVzYWdlCmNhcmdvIGluc3RhbGwgY2FyZ28tc3dhZ2cKCiMgQWRkIHN1cHBvcnQgbGlicmFyeSB0byB5b3VyIHByb2plY3QgKHZpYSBjYXJnby1lZGl0IG9yIG1hbnVhbCkKY2FyZ28gYWRkIGFjdGl4LXN3YWdnZXIKCiMgR2VuZXJhdGUgeW91ciBjb2RlIHdpdGggY2FyZ28gc3ViY29tbWFuZApjYXJnbyBzd2FnZyAuL29wZW5hcGkueWFtbCAtLW91dC1maWxlIC4vc3JjL2FwaS5ycwoKIyBGb3JtYXQgZmlsZSBhZnRlcgpydXN0Zm10IC4vc3JjL2FwaS5ycwpgYGAKCiMjIERldmVsb3BtZW50CgpJdCB1c2VzIFtpbnN0YV0oaHR0cHM6Ly9naXRodWIuY29tL21pdHN1aGlrby9pbnN0YSkgZm9yIHNuYXBzaG90IHRlc3RpbmcuCgpJbnN0YWxsIGBjYXJnby1pbnN0YWAgdG8gYmV0dGVyIHJldmlldyBleHBlcmllbmNlLgoKIyMjIE1lbWJlcnMKCi0gYGNhcmdvLWFjdGl4YCDigJQgc3VwcG9ydCBsaWJyYXJ5LCBjb250ZW50cyB0eXBlZCByZXNwb25zZSBuYW1lZCBgQW5zd2VyYCBhbmQgY3VzdG9tIGBNZXRob2RgIGFuZCBgQ29udGVudFR5cGVgIHRoYXQgc3VwcG9ydHMgaW4gc3dhZ2cKLSBgc3dhZ2dgIOKAlCBsaWJyYXJ5IHRoYXQgdHJhbnNmb3JtcyBvcGVuYXBpMyAoeWFtbHxqc29uKSBzcGVjIHRvIHJ1c3QgY29kZQotIGBjYXJnby1zd2FnZ2Ag4oCUIHNhbWUgYXMgYHN3YWdnYCBidXQgZm9yIGNsaQotIGBkZW1vYCDigJQgY2hlY2tzIHRoYXQgZ2VuZXJhdGVkIGNvZGUgaXMgY29tcGlsZXMKCiMjIyBEZW1vCgpgYGBiYXNoCiMgdG8gY29udmVydCAuL2RlbW8vb3BlbmFwaS55YW1sIHRvIC4vZGVtby9zcmMvbGliLnJzCiMgZm9ybWF0IC4vZGVtby9zcmMvbGliLnJzCiMgYW5kIGNoZWNrIGp1c3QgcnVuCmNhcmdvIGluc3RhbGwgY2FyZ28tbWFrZQpjYXJnbyBtYWtlCmBgYAo= readmeEtag: '"822b2abdf32e5903eb852ed8facd9a106ed97d47"' readmeLastModified: Tue, 15 Nov 2022 12:51:21 GMT repositoryId: 235156358 description: Swagger code generator for actix-web framework created: '2020-01-20T17:21:33Z' updated: '2024-08-28T19:35:50Z' language: Rust archived: true stars: 112 watchers: 8 forks: 8 owner: openapi logo: https://avatars.githubusercontent.com/u/44164641?v=4 license: MIT repoEtag: '"0ffab790467e8b79aade829ec2149266dbbb8fc986a201927fcfbd776529043c"' repoLastModified: Wed, 28 Aug 2024 19:35:50 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: b840cd5b90d13c668b1046fbbb787931 - source: openapi3 tags repository: https://github.com/nasruddin/spring-boot-3-jwt-auth v3: true repositoryMetadata: base64Readme: >- IyBzcHJpbmctYm9vdC0zLWp3dC1hdXRoCjprZXk6IFNhbXBsZSBTcHJpbmcgYm9vdCAzIGFwcGxpY2F0aW9uIGZvciBBdXRoZW50aWNhdGlvbiBhbmQgQXV0aG9yaXphdGlvbgoKIyMgRmVhdHVyZXMKKiBDdXN0b21pemFibGUgaGVhZGVyKFgtQXV0aC1Ub2tlbikgdG8gcGFzcyBBdXRoIHRva2VuLgoqIEpXVCBmb3IgdG9rZW4gY3JlYXRpb24gYW5kIHZhbGlkYXRpb24uCiogUm9sZSBiYXNlZCBhdXRob3JpemF0aW9uLgoqIERldmljZSBiYXNlZCBhdXRoLgoqIEN1c3RvbSBWYWxpZGF0b3JzCiogU3ByaW5nIGRvYy4KCgojIyBSdW5uaW5nIHRoZSBzYW1wbGUgYXBwCmBgYAptdm4gc3ByaW5nLWJvb3Q6cnVuCmBgYAoKIyMgUmVnaXN0ZXJpbmcgYSBVc2VyCmBgYApjdXJsIC1YIFBPU1QgImh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC9hcGkvYXV0aC9yZWdpc3RlciIgLUggICJhY2NlcHQ6ICovKiIgLUggICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1kICJ7XCJ1c2VybmFtZVwiOlwibmFzcnVkZGluXCIsXCJwYXNzd29yZFwiOlwicEBzc3cwMGRcIixcImRldmljZVwiOlwid2ViXCIsXCJlbWFpbFwiOlwibmFzcnVkZGluQGdtYWlsLmNvbVwifSIKYGBgCgpgYGAKewogICAgImlkIjoyLAogICAgInVzZXJuYW1lIjoibmFzcnVkZGluIiwKICAgICJwYXNzd29yZCI6IiQyYSQxMCRVM0NSNFQxR293ZDUwUS4weUsvVXVPaC5YV1Z4MEJZSWU3QmlBbXltWFouTVlQVXRVNUYuZSIsCiAgICAiZW1haWwiOiJuYXNydWRkaW5AZ21haWwuY29tIiwKICAgICJsYXN0UGFzc3dvcmRSZXNldCI6IjIwMjMtMDktMTRUMDg6NDE6MTAuMDgwKzAwOjAwIiwKICAgICJhdXRob3JpdGllcyI6IkFETUlOIgp9CmBgYApIMi1jb25zb2xlIGNhbiBiZSBhY2Nlc3NlZCBhdCA8aHR0cDovL2xvY2FsaG9zdDo5MDAwL2FwaS9oMi1jb25zb2xlPgohW0pXVCBEZWNvZGVkXShodHRwczovL2dpdGh1Yi5jb20vTmFzcnVkZGluL3NwcmluZy1ib290LWp3dC1hdXRoL2Jsb2IvcG9tLXVwZGF0ZS9pbWFnZXMvaDItY29uc29sZS5wbmc/cmF3PXRydWUpCgojIyBMb2dpbiBhIFVzZXIgLyBGZXRjaCBUb2tlbgpgYGAKY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0OjkwMDAvYXBpL2F1dGgiIC1IICAiYWNjZXB0OiAqLyoiIC1IICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtZCAie1widXNlcm5hbWVcIjpcIm5hc3J1ZGRpblwiLFwicGFzc3dvcmRcIjpcInBAc3N3MDBkXCIsXCJkZXZpY2VcIjpcIndlYlwifSIKYGBgCmBgYAp7InRva2VuIjoiZXlKaGJHY2lPaUpJVXpVeE1pSjkuZXlKemRXSWlPaUp1WVhOeWRXUmthVzRpTENKaGRXUnBaVzVqWlNJNkluZGxZaUlzSW1OeVpXRjBaV1FpT2pFMk9UUTJPREUyT0RFM01EVXNJbVY0Y0NJNk1UWTVOVEk0TmpRNE1YMC5NeWR3SVd6TjNTZ0N2QjhjWW96S2NSMnRITUNNNW5ySVBYVUJ0eDRvODJvdDF0YUxfTlFNNVRSSFo0eU9jOXVVY1pGcnoxWFFBTF9mRE5YQUl3bVp4dyJ9CmBgYAoKIVtKV1QgRGVjb2RlZF0oaHR0cHM6Ly9naXRodWIuY29tL05hc3J1ZGRpbi9zcHJpbmctYm9vdC0zLWp3dC1hdXRoL2Jsb2IvbWFzdGVyL2ltYWdlcy9kZWNvZGVkLWp3dC5wbmc/cmF3PXRydWUpCgojIyBBY2Nlc3NpbmcgVXNlci9Qcm90ZWN0ZWQgQVBJCgpXaXRob3V0IHNldHRpbmcgWC1BVVRILVRPS0VOCmBgYApjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo5MDAwL2FwaS91c2VyL25hc3J1ZGRpbiIgLUggICJhY2NlcHQ6ICovKiIKYGBgCmBgYAp7CiAgICAidGltZXN0YW1wIjoiMjAyMy0wOS0xNFQwODo1NzowOC40MDMrMDA6MDAiLAogICAgInN0YXR1cyI6NDAxLAogICAgImVycm9yIjoiVW5hdXRob3JpemVkIiwKICAgICJwYXRoIjoiL2FwaS91c2VyL25hc3J1ZGRpbiIKfSAKYGBgCgpXaXRoIHNldHRpbmcgWC1BVVRILVRPS0VOCmBgYApjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo5MDAwL2FwaS91c2Vycy9uYXNydWRkaW4iIC1IICAiYWNjZXB0OiAqLyoiIC1IICAiWC1BdXRoLVRva2VuOiBleUpoYkdjaU9pSklVelV4TWlKOS5leUp6ZFdJaU9pSnVZWE55ZFdSa2FXNGlMQ0poZFdScFpXNWpaU0k2SW5kbFlpSXNJbU55WldGMFpXUWlPakUyT1RRMk9ERTJPREUzTURVc0ltVjRjQ0k2TVRZNU5USTROalE0TVgwLk15ZHdJV3pOM1NnQ3ZCOGNZb3pLY1IydEhNQ001bnJJUFhVQnR4NG84Mm90MXRhTF9OUU01VFJIWjR5T2M5dVVjWkZyejFYUUFMX2ZETlhBSXdtWnh3IgpgYGAKYGBgCnsKICAgICJpZCI6MSwKICAgICJ1c2VybmFtZSI6Im5hc3J1ZGRpbiIsCiAgICAicGFzc3dvcmQiOiIkMmEkMTAkZHE2dUZsZWh0ZXRzZkk2Z2xMa0EuT2Flb0lFdTVQUHFJVk5aSERNQ0NpRWVqOGIvMHZoV2EiLCJlbWFpbCI6Im5hc3J1ZGRpbkBnbWFpbC5jb20iLAogICAgImxhc3RQYXNzd29yZFJlc2V0IjoiMjAyMy0wOS0xNFQwODo0MjozNy43NTgrMDA6MDAiLAogICAgImF1dGhvcml0aWVzIjoiQURNSU4iCn0gCmBgYAoKIyMgQWRtaW4gQVBJCmBgYApjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo5MDAwL2FwaS9hZG1pbiIgLUggICJhY2NlcHQ6ICovKiIgLUggICJYLUF1dGgtVG9rZW46IGV5SmhiR2NpT2lKSVV6VXhNaUo5LmV5SnpkV0lpT2lKdVlYTnlkV1JrYVc0aUxDSmhkV1JwWlc1alpTSTZJbmRsWWlJc0ltTnlaV0YwWldRaU9qRTJPVFEyT0RFMk9ERTNNRFVzSW1WNGNDSTZNVFk1TlRJNE5qUTRNWDAuTXlkd0lXek4zU2dDdkI4Y1lvektjUjJ0SE1DTTVucklQWFVCdHg0bzgyb3QxdGFMX05RTTVUUkhaNHlPYzl1VWNaRnJ6MVhRQUxfZkROWEFJd21aeHciCmBgYApgYGAKOk8KYGBgCgojIyBPcGVuQVBJIFN3YWdnZXIKMS4gU3dhZ2dlciBjYW4gYmUgYWNjZXNzZWQgYXQgPGh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC9hcGkvc3dhZ2dlci11aS9pbmRleC5odG1sPgoKIVtTd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vTmFzcnVkZGluL3NwcmluZy1ib290LWp3dC1hdXRoL2Jsb2IvcG9tLXVwZGF0ZS9pbWFnZXMvc3dhZ2dlci5wbmc/cmF3PXRydWUpCgoyLiBBUEkgRG9jcyBjYW4gYmUgYWNjZXNzZWQgYXQgPGh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC9hcGkvYXBpLWRvY3M+CiFbQVBJIERvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9OYXNydWRkaW4vc3ByaW5nLWJvb3Qtand0LWF1dGgvYmxvYi9wb20tdXBkYXRlL2ltYWdlcy9vcGVuLWFwaS5wbmc/cmF3PXRydWUpCg== readmeEtag: '"8f2664385224ec7eb4d159ef52779751a747eb3e"' readmeLastModified: Thu, 28 Sep 2023 19:47:26 GMT repositoryId: 51244983 description: >- :key: Sample Spring boot application secured using JWT auth in custom header(X-Auth-Token). created: '2016-02-07T11:17:36Z' updated: '2024-08-20T12:57:24Z' language: Java archived: false stars: 110 watchers: 7 forks: 30 owner: Nasruddin logo: https://avatars.githubusercontent.com/u/2290767?v=4 license: MIT repoEtag: '"09c11fd002f526dc95652c6a8f1781a9d6cdc26449f8a10553ec4990604457eb"' repoLastModified: Tue, 20 Aug 2024 12:57:24 GMT foundInMaster: true category: Server Implementations id: bb56c80ba4c7463e50ddc2959f3113f1 oldLocations: - https://github.com/nasruddin/spring-boot-jwt-auth - source: - openapi3 tags - openapi31 tags repository: https://github.com/oai/learn.openapis.org v3: true v3_1: true id: bc6087c180d696bd2a572b177febd681 repositoryMetadata: base64Readme: >- IyBIb21lCgo8aW1nIGFsdD0iT3BlbkFQSSBJbml0aWF0aXZlIiBzcmM9ImFzc2V0cy9pbWFnZXMvT3BlbkFQSV9Mb2dvX1BhbnRvbmUtMS5wbmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9ImF1dG8iPgoKQXJlIHlvdSBuZXcgdG8gdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbj8KClJlYWQgb3VyIFtHZXR0aW5nIFN0YXJ0ZWRdKGh0dHBzOi8vbGVhcm4ub3BlbmFwaXMub3JnLykgcGFnZSBmaXJzdC4KCjxwPk9yaWdpbmFsIHNpdGUgY3VzdG9taXplZCBiYXNlZCBvbiBhIHRoZW1lIGJ5IFBhdHJpY2sgTWFyc2NlaWxsLCBkaXN0cmlidXRlZCBieSBhbiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcG1hcnNjZWlsbC9qdXN0LXRoZS1kb2NzL3RyZWUvbWFzdGVyL0xJQ0VOU0UudHh0Ij5NSVQgbGljZW5zZS48L2E+PC9wPgoKIyMgRGV2ZWxvcG1lbnQKClRvIHJ1biB0aGlzIHdlYnNpdGUgbG9jYWxseSB5b3UnbGwgbmVlZCB0byB1c2UgSmVreWxsLgoKUGxlYXNlIGZvbGxvdyB0aGUgb2ZmaWNpYWwgW1F1aWNrc3RhcnRdKGh0dHBzOi8vamVreWxscmIuY29tL2RvY3MvKSBndWlkZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBpZiB5b3UgYXJlIHN0YXJ0aW5nIGZyb20gc2NyYXRjaCwgYW5kIHRoZW4gZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIFtDb250cmlidXRpbmcgR3VpZGVdKC4vQ09OVFJJQlVUSU5HLm1kKS4K readmeEtag: '"b5219351d8369a2617c1d7eadc12b8d80b737f68"' readmeLastModified: Tue, 04 Jun 2024 11:56:58 GMT repositoryId: 285621457 description: OpenAPI - Getting started, and the specification explained created: '2020-08-06T16:40:47Z' updated: '2024-09-05T02:35:03Z' language: Markdown archived: false stars: 112 watchers: 22 forks: 56 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 license: CC-BY-4.0 repoEtag: '"53ef1767eb1a3a51cfed17eaecdfb3965163319e6c3e785f87d67139698ddb20"' repoLastModified: Thu, 05 Sep 2024 02:35:03 GMT category: - Parsers - Server Implementations oldLocations: - https://github.com/oai/documentation foundInMaster: true - source: openapi3 tags repository: https://github.com/moclojer/moclojer v3: true id: 5f88120dcd8e4bcd38a9215d0e1ec08b repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21vY2xvamVyL21vY2xvamVyIj4KICAgIDxwaWN0dXJlPgogICAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nsb2plci9tb2Nsb2plci9yYXcvbWFpbi9kb2NzL2Fzc2V0cy9sb2dvLnBuZyI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vbW9jbG9qZXIvbW9jbG9qZXIvcmF3L21haW4vZG9jcy9hc3NldHMvbG9nby5wbmciIGhlaWdodD0iMTI4Ij4KICAgIDwvcGljdHVyZT4KICAgIDxoMSBhbGlnbj0iY2VudGVyIj5tb2Nsb2plcjwvaDE+CiAgPC9hPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBhcmlhLWxhYmVsPSJDTEFzIEFncmVlIiBocmVmPSJodHRwczovL2NsYS1hc3Npc3RhbnQuaW8vbW9jbG9qZXIvbW9jbG9qZXIiIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NMQXMtZmYwMDllLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9MDAwMDAwJmxhYmVsPWFncmVlIj4KICA8L2E+CiAgPGEgYXJpYS1sYWJlbD0iTGljZW5zZSIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21vY2xvamVyL21vY2xvamVyL2Jsb2IvbWFpbi9MSUNFTlNFIj4KICAgIDxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9NSVQtZmYwMDllLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9MDAwMDAwJmxhYmVsPUxJQ0VOU0UiPgogIDwvYT4KICA8YSBhcmlhLWxhYmVsPSJKb2luIHRoZSBjb21tdW5pdHkgb24gR2l0SHViIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbW9jbG9qZXIvbW9jbG9qZXIvZGlzY3Vzc2lvbnMiPgogICAgPGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0pvaW4lMjB0aGUlMjBjb21tdW5pdHktZmYwMDllLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9MDAwMDAwJmxhYmVsPURpc2N1c3Npb24iPgogIDwvYT4KCiAgPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nsb2plci9tb2Nsb2plci9hY3Rpb25zL3dvcmtmbG93cy9saW50ZXIueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbiIgYWx0PSJsaW50ZXIiPgoKICA8YSBhcmlhLWxhYmVsPSJDSSBUZXN0cyIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21vY2xvamVyL21vY2xvamVyL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3RzLnltbCI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL21vY2xvamVyL21vY2xvamVyL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3RzLnltbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4iIGFsdD0idGVzdHMiPgogIDwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cucHJvZHVjdGh1bnQuY29tL3Bvc3RzL21vY2xvamVyP3V0bV9zb3VyY2U9YmFkZ2UtZmVhdHVyZWQmdXRtX21lZGl1bT1iYWRnZSZ1dG1fc291Y2U9YmFkZ2UtbW9jbG9qZXIiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9hcGkucHJvZHVjdGh1bnQuY29tL3dpZGdldHMvZW1iZWQtaW1hZ2UvdjEvZmVhdHVyZWQuc3ZnP3Bvc3RfaWQ9NDQ5OTYxJnRoZW1lPW5ldXRyYWwiIGFsdD0ibW9jbG9qZXIgLSAmIzAwMzI7U2ltcGxlJiMwMDMyO2FuZCYjMDAzMjtlZmZpY2llbnQmIzAwMzI7SFRUUCYjMDAzMjttb2NrJiMwMDMyO3NlcnZlciYjMDAzMjt3aXRoJiMwMDMyO2Vhc3kmIzAwMzI7c3BlYyB8IFByb2R1Y3QgSHVudCIgc3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0OiA1NHB4OyIgd2lkdGg9IjI1MCIgaGVpZ2h0PSI1NCIgLz48L2E+CjwvcD4KClNpbXBsZSBhbmQgZWZmaWNpZW50IEhUVFAgbW9jayBzZXJ2ZXIgd2l0aCBzcGVjaWZpY2F0aW9uIHdyaXR0ZW4gaW4gYHlhbWxgLCBgZWRuYCBvciBgT3BlbkFQSWAuCgo+IPCfkr4gRG93bmxvYWQgdGhlIGAuamFyYCBmaWxlIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIG1vY2xvamVyIHRvIHRlc3Qgb24geW91ciBjb21wdXRlciBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2xvamVyL21vY2xvamVyL3JlbGVhc2VzL2xhdGVzdCkuCgpbKirwn5OWIFNlZSB0aGUgY29tcGxldGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9jbG9qZXIgaGVyZSoqXShodHRwczovL2RvY3MubW9jbG9qZXIuY29tLyksIGlmIHlvdSB3YW50IHRvIGNvbnRyaWJ1dGUgKG9yIGNvbXBsZW1lbnQpIHRoZSBkb2N1bWVudGF0aW9uLCBpdCBpcyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2xvamVyL21vY2xvamVyL3RyZWUvbWFpbi9kb2NzKS4KCioqYFlBTUxgIGV4YW1wbGUqKgoKYGBgeWFtbAojIFRoaXMgbW9jayByZWdpc3RlciByb3V0ZTogR0VUIC9oZWxsby86dXNlcm5hbWUKLSBlbmRwb2ludDoKICAgICMgTm90ZTogdGhlIG1ldGhvZCBjb3VsZCBiZSBvbWl0dGVkIGJlY2F1c2UgR0VUIGlzIHRoZSBkZWZhdWx0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL2hlbGxvLzp1c2VybmFtZQogICAgcmVzcG9uc2U6CiAgICAgICMgTm90ZTogdGhlIHN0YXR1cyBjb3VsZCBiZSBvbWl0dGVkIGJlY2F1c2UgMjAwIGlzIHRoZSBkZWZhdWx0CiAgICAgIHN0YXR1czogMjAwCiAgICAgIGhlYWRlcnM6CiAgICAgICAgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCiAgICAgICMgTm90ZTogdGhlIGJvZHkgd2lsbCByZWNlaXZlIHRoZSB2YWx1ZSBwYXNzZWQgaW4gdGhlIHVybCB1c2luZyB0aGUKICAgICAgIyA6dXNlcm5hbWUgcGxhY2Vob2xkZXIKICAgICAgYm9keTogPgogICAgICAgIHsKICAgICAgICAgICJoZWxsbyI6ICJ7e3BhdGgtcGFyYW1zLnVzZXJuYW1lfX0hIgogICAgICAgIH0KYGBgCgojIyBkb2NrZXIKCiogKippbWFnZToqKiBgZ2hjci5pby9tb2Nsb2plci9tb2Nsb2plcjpsYXRlc3RgCiogKipwb3J0IF8oZGVmYXVsdClfOioqIGA4MDAwYF8sIGlmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgcG9ydCBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGBQT1JUYF8KCmBgYHNoCmRvY2tlciBydW4gLWl0IFwKICAtcCA4MDAwOjgwMDAgLXYgJChwd2QpL21vY2xvamVyLnltbDovYXBwL21vY2xvamVyLnltbCBcCiAgZ2hjci5pby9tb2Nsb2plci9tb2Nsb2plcjpsYXRlc3QKYGBgCgoqKldlIGhhdmUgdHdvIHZlcnNpb25zIGF2YWlsYWJsZToqKgoKKiBgZGV2YDogbWFpbiBicmFuY2ggZG9ja2VyIGltYWdlCiogYGxhdGVzdGA6IGxhdGVzdCBzdGFibGUgdmVyc2lvbiBpbWFnZQoKIyMgbWFudWFsIGluc3RhbGxhdGlvbgoKV2UgZGlzdHJpYnV0ZSB2aWEgdGhlIGAuamFyYCBmaWxlLCB5b3UgbmVlZCB0byBoYXZlIEphdmEgaW5zdGFsbGVkIG9uIHlvdXIgb3BlcmF0aW5nIHN5c3RlbS4KCmBgYHNoCmJhc2ggPCA8KGN1cmwgLXMgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vY2xvamVyL21vY2xvamVyL21haW4vaW5zdGFsbC5zaCkKYGBgCgo+IElmIHlvdSBhcmUgdXNpbmcgTGludXggeW91IG1heWJlIG5lZWQgYHN1ZG9gLgoKIyMgQ0xJIFVzYWdlCgoqIGBjbGogLU06cnVuIFtPUFRJT05TXWAKKiBgamF2YSAtamFyIG1vY2xvamVyLmphciBbT1BUSU9OU11gCiogYG1vY2xvamVyX0xpbnV4IFtPUFRJT05TXWAKCiMjIyBPcHRpb25zCgpwYXJhbWV0ZXIgfCBkZXNjcmlwdGlvbgotLS0gfCAtLS0KYC1jLCAtLWNvbmZpZ2AgfCBDb25maWcgcGF0aCBvciB0aGUgQ09ORklHIGVudmlyb25tZW50IHZhcmlhYmxlLiBcWyoqZGVmYXVsdDoqKiBgfi8uY29uZmlnL21vY2xvamVyLnltbGBcXQpgLW0sIC0tbW9ja3NgIHwgT3BlbkFQSSB2MyBtb2NrcyBwYXRoIG9yIHRoZSBNT0NLUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KYC1mLCAtLWZvcm1hdGAgfCBPdXRwdXQgYW5kIGxvZ2dpbmcgZm9ybWF0LiBFaXRoZXIgYHByaW50bG5gIG9yIGBqc29uYC4KYC1oLCAtLWhlbHBgIHwgU2hvdyBoZWxwIGluZm9ybWF0aW9uCmAtdiwgLS12ZXJzaW9uYCB8IFNob3cgdmVyc2lvbiBpbmZvcm1hdGlvbgoKKipzZW50cnk6Kiogc2V0IGVudmlyb25tZW50IHZhciBgU0VOVFJZX0RTTmAgKFtzZW50cnkgZG9jXShodHRwczovL2RvY3Muc2VudHJ5LmlvL3BsYXRmb3Jtcy9ub2RlL2d1aWRlcy9henVyZS1mdW5jdGlvbnMvY29uZmlndXJhdGlvbi9vcHRpb25zLyNkc24pKSwgYXV0b21hdGljIHNlbmQgYmFja3RyYWNlIHRvIDxzZW50cnkuaW8+Cgo+ICoqQ29uZmlnKiogdXNlcyBgWERHX0NPTkZJR19IT01FYCB0byBmZXRjaCB0aGUgZGVmYXVsdCBtb2Nsb2plciBjb25maWd1cmF0aW9uIGZpbGUsIGlmIHlvdSB3YW50IHRvIHNldCBhIGRpZmZlcmVudCBkaXJlY3RvcnkgeW91IG11c3QgdXNlIHRoZSBgLWNgIG9yIGVudmlyb25tZW50IHZhcmlhYmxlIGBDT05GSUdgCgojIyDwn5K7IGRldiBlbnZpcm9ubWVudAoKbW9jbG9qZXIgaXMgd3JpdHRlbiBpbiAqKkNsb2p1cmUqKiwgdG8gcnVuIHRoZSBjb21tYW5kcyBiZWxvdyB3ZSBhc3N1bWUgeW91IGhhdmUgY2xvanVyZSBfaW5zdGFsbGVkXyBvbiB5b3VyIG9wZXJhdGluZyBzeXN0ZW0uCgoqKnJ1bjoqKgoKYGBgc2gKY2xqIC1NOnJ1bgpgYGAKCioqdGVzdDoqKgoKYGBgc2gKY2xqIC1NOnRlc3QKYGBgCgo+IF9pZiB5b3Ugd2FudCB0byBydW4gYSBzcGVjaWZpYyB0ZXN0Ol8gYGNsaiAtTTp0ZXN0IC1uIGNvbS5tb2Nsb2plci5leHRlcm5hbC1ib2R5LmV4Y2VsLXRlc3RgCgoqKmBtb2Nsb2plci5qYXJgIGdlbmVyYXRlOioqCgpgYGBzaApjbGogLUE6ZGV2IC1NIC0tcmVwb3J0IHN0ZGVyciAtbSBjb20ubW9jbG9qZXIuYnVpbGQKYGBgCgojIyBmcmFtZXdvcmsgaW50ZWdyYXRpb25zCgpXZSBkaXN0cmlidXRlIHRoZSBsaWJyYXJ5IHZpYSBbQ2xvamFyc10oaHR0cHM6Ly9jbG9qYXJzLm9yZy9jb20ubW9jbG9qZXIvbW9jbG9qZXIpLgoKIyMjIENsb2p1cmUgQ0xJL2RlcHMuZWRuCgpgYGBjbG9qdXJlCmNvbS5tb2Nsb2plci9tb2Nsb2plciB7Om12bi92ZXJzaW9uICIwLjMuMSJ9CmBgYAoKIyMjIExlaW5pbmdlbi9Cb290CgpgYGBjbG9qdXJlCltjb20ubW9jbG9qZXIvbW9jbG9qZXIgIjAuMy4xIl0KYGBgCgojIyMgW2BnaXRgXShodHRwczovL2Nsb2p1cmUub3JnL2d1aWRlcy9kZXBzX2FuZF9jbGkjX3VzaW5nX2dpdF9saWJyYXJpZXMpIGluIGBkZXBzLmVkbmAKCmBgYGVkbgp7OmRlcHMKIHtjb20ubW9jbG9qZXIvbW9jbG9qZXIgezpnaXQvdXJsICJodHRwczovL2dpdGh1Yi5jb20vbW9jbG9qZXIvbW9jbG9qZXIuZ2l0IgogICAgICAgICAgICAgICAgICAgICAgICAgOmdpdC90YWcgInYwLjMuMSIKICAgICAgICAgICAgICAgICAgICAgICAgIDpnaXQvc2hhICJjNGNhMGYyY2ZjZmJlNDdkZTZlYjBjNjAxYjI2MTA2MTkwZTIwNzkzIn19fQpgYGAKCiMjIyBleGFtcGxlIG9mIHVzZQoKYGBgY2xqCihucyBteS1hcHAuY29yZQogICg6cmVxdWlyZSBbY29tLm1vY2xvamVyLmFkYXB0ZXJzIDphcyBhZGFwdGVyc10KICAgICAgICAgICAgW2NvbS5tb2Nsb2plci5zZXJ2ZXIgOmFzIHNlcnZlcl0pKQoKKGRlZiAqcm91dGVyCiAgImNyZWF0ZSBhIHJvdXRlciBmcm9tIGEgY29uZmlnIG1hcCIKICAoYWRhcHRlcnMvZ2VuZXJhdGUtcm91dGVzCiAgIFt7OmVuZHBvaW50CiAgICAgezptZXRob2QgIkdFVCIKICAgICAgOnBhdGggIi9leGFtcGxlIgogICAgICA6cmVzcG9uc2UgezpzdGF0dXMgMjAwCiAgICAgICAgICAgICAgICAgOmhlYWRlcnMgezpDb250ZW50LVR5cGUgImFwcGxpY2F0aW9uL2pzb24ifQogICAgICAgICAgICAgICAgIDpib2R5IHs6aWQgMTIzfX19fV0pKQoKKGRlZm4gLW1haW4KICAic3RhcnQgdGhlIHNlcnZlciIKICBbJiBhcmdzXQogIChzZXJ2ZXIvc3RhcnQtc2VydmVyISAqcm91dGVyKSkKYGBgCg== readmeEtag: '"14e83a33f11273a5683d25444cb6764edbfae04c"' readmeLastModified: Tue, 27 Aug 2024 12:36:47 GMT repositoryId: 462693523 description: >- Simple and efficient HTTP mock server with specification in yaml, edn or OpenAPI created: '2022-02-23T10:49:57Z' updated: '2024-09-02T15:10:01Z' language: Clojure archived: false stars: 109 watchers: 3 forks: 12 owner: moclojer logo: https://avatars.githubusercontent.com/u/103039458?v=4 license: MIT repoEtag: '"e7322aa48d43fa5d41f0034e9ed50fbfa85469ae7e54402657ca0408d1127b8f"' repoLastModified: Mon, 02 Sep 2024 15:10:01 GMT category: Testing foundInMaster: true oldLocations: - https://github.com/avelino/moclojer - source: openapi3 tags repository: https://github.com/sphinx-contrib/openapi v3: true repositoryMetadata: base64Readme: >- PT09PT09PT09PT09PT09PT09PT09CnNwaGlueGNvbnRyaWItb3BlbmFwaQo9PT09PT09PT09PT09PT09PT09PT0KCioqc3BoaW54Y29udHJpYi1vcGVuYXBpKiogaXMgYSBgU3BoaW54YF8gZXh0ZW5zaW9uIHRvIGdlbmVyYXRlIEFQSXMgZG9jcyBmcm9tCmBPcGVuQVBJYF8gKGZrYSBTd2FnZ2VyKSBzcGVjLiBJdCBkZXBlbmRzIG9uIGBzcGhpbnhjb250cmliLWh0dHBkb21haW5gXyB0aGF0CnByb3ZpZGVzIGFuIEhUVFAgZG9tYWluIGZvciBkZXNjcmliaW5nIFJFU1RmdWwgSFRUUCBBUElzLCBzbyB3ZSBkb24ndCBuZWVkIHRvCnJlaW52ZW50IHRoZSB3aGVlbC4KCi4uIGNvZGU6OiBiYXNoCgogICAkIHB5dGhvbjMgLW0gcGlwIGluc3RhbGwgc3BoaW54Y29udHJpYi1vcGVuYXBpCgoKVXNhZ2UKPT09PT0KClBhc3MgYGBzcGhpbnhjb250cmliLW9wZW5hcGlgYCB0byBgYGV4dGVuc2lvbnNgYCBsaXN0IGluICBTcGhpbngncyBgYGNvbmYucHlgYAoKLi4gY29kZTo6IHB5dGhvbgoKICAgZXh0ZW5zaW9ucyA9IFsKICAgICAgLi4uCiAgICAgICdzcGhpbnhjb250cmliLm9wZW5hcGknLAogICBdCgphbmQgZmVlbCBmcmVlIHRvIHVzZSB0aGUgYGBvcGVuYXBpYGAgZGlyZWN0aXZlIHRvIHJlbmRlciBPcGVuQVBJIHNwZWNzCgouLiBjb2RlOjogcmVzdHJ1Y3R1cmVkdGV4dAoKICAgLi4gb3BlbmFwaTo6IHBhdGgvdG8vb3BlbmFwaS55bWwKCgpMaW5rcwo9PT09PQoKKiBEb2N1bWVudGF0aW9uOiBodHRwczovL3NwaGlueGNvbnRyaWItb3BlbmFwaS5yZWFkdGhlZG9jcy5vcmcvCiogU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vc3BoaW54LWNvbnRyaWIvb3BlbmFwaQoqIEJ1Z3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcGhpbngtY29udHJpYi9vcGVuYXBpL2lzc3VlcwoKCi4uIF9TcGhpbng6IGh0dHBzOi8vd3d3LnNwaGlueC1kb2Mub3JnL2VuL21hc3Rlci8KLi4gX09wZW5BUEk6IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uCi4uIF9zcGhpbnhjb250cmliLWh0dHBkb21haW46IGh0dHBzOi8vc3BoaW54Y29udHJpYi1odHRwZG9tYWluLnJlYWR0aGVkb2NzLmlvLwo= readmeEtag: '"6dfb1836efc473494f87ce2831c9edf633954831"' readmeLastModified: Tue, 13 Feb 2024 10:44:53 GMT repositoryId: 68995825 description: OpenAPI (fka Swagger) spec renderer for Sphinx. created: '2016-09-23T06:28:32Z' updated: '2024-07-15T17:11:08Z' language: Python archived: false stars: 109 watchers: 11 forks: 79 owner: sphinx-contrib logo: https://avatars.githubusercontent.com/u/31936682?v=4 license: BSD-2-Clause repoEtag: '"600168246b7567f4f47e804e9ebe5ea1ab8257c0771ac0a4dff616030f281405"' repoLastModified: Mon, 15 Jul 2024 17:11:08 GMT foundInMaster: true category: - Converters - Parsers id: 5d08f10c77ed85b8c8c49382bb5bef3a - source: openapi3 tags repository: https://github.com/hummingbird-me/api-docs v3: true repositoryMetadata: base64Readme: >- IyBBUEkgRG9jcwpbIVtBUEkgRG9jcyBEZXBsb3ltZW50XShodHRwczovL2dpdGh1Yi5jb20vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3Mvd29ya2Zsb3dzL0FQSSUyMERvY3MlMjBEZXBsb3ltZW50L2JhZGdlLnN2ZyldKGh0dHBzOi8vaHVtbWluZ2JpcmQtbWUuZ2l0aHViLmlvL2FwaS1kb2NzKQoKS2l0c3UgaXMgYSBtb2Rlcm4gYW5pbWUgZGlzY292ZXJ5IHBsYXRmb3JtIHRoYXQgaGVscHMgeW91IHRyYWNrIHRoZSBhbmltZSB5b3UncmUgd2F0Y2hpbmcsIGRpc2NvdmVyIG5ldyBhbmltZSBhbmQgc29jaWFsaXplIHdpdGggb3RoZXIgZmFucy4KCi0tLQoqKjxwIGFsaWduPSJjZW50ZXIiPlRoaXMgaXMgb3VyIFthcGkgZG9jc10gcmVwb3NpdG9yeS48YnIgLz5DaGVjayBvdXQgdGhlIFt0b29sc10sIFt3ZWJdLCBbbW9iaWxlXSBhbmQgW3NlcnZlcl0gcmVwb3NpdG9yaWVzLjwvcD4qKgoKW3Rvb2xzXTpodHRwczovL2dpdGh1Yi5jb20vaHVtbWluZ2JpcmQtbWUva2l0c3UtdG9vbHMKW3dlYl06aHR0cHM6Ly9naXRodWIuY29tL2h1bW1pbmdiaXJkLW1lL2tpdHN1LXdlYgpbc2VydmVyXTpodHRwczovL2dpdGh1Yi5jb20vaHVtbWluZ2JpcmQtbWUva2l0c3Utc2VydmVyClttb2JpbGVdOmh0dHBzOi8vZ2l0aHViLmNvbS9odW1taW5nYmlyZC1tZS9raXRzdS1tb2JpbGUKW2FwaSBkb2NzXTpodHRwczovL2tpdHN1LmRvY3MuYXBpYXJ5LmlvCgotLS0KCiMjIERvY3VtZW50YXRpb24KCkxlZ2FjeSBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBvbiBBcGlhcnk6IGh0dHBzOi8va2l0c3UuZG9jcy5hcGlhcnkuaW8vCgpUaGUgQVBJIGRvY3VtZW50YXRpb24gaXMgY3VycmVudGx5IGJlaW5nIGNvbnZlcnRlZCBmcm9tIEFQSSBCbHVlcHJpbnQgdG8gT3BlbkFQSSAzLiBZb3UgY2FuIHZpZXcgdGhlIHByb2dyZXNzIGF0OiBodHRwczovL2h1bW1pbmdiaXJkLW1lLmdpdGh1Yi5pby9hcGktZG9jcyBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2lzc3Vlcy83MQoKIyMgQ29udHJpYnV0aW5nCgpUaGUgZG9jdW1lbnRhdGlvbiBpcyB3cml0dGVuIHdpdGggW09wZW5BUEkgM11bM10gYW5kIFtZQU1MIDEuMl1bNF0uIFRyaXZpYWwgY2hhbmdlcyBjYW4gYmUgYWRkZWQgdXNpbmcgR2l0SHViJ3MgYnVpbHQtaW4gZWRpdG9yLiBGb3IgYmlnZ2VyIGNoYW5nZXMgaXQgaXMgYWR2aXNlZCB0byBmb2xsb3cgdGhlIHN0ZXBzIGJlbG93LgoKSWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucyB5b3UgY2FuOgotIEFzayB1cyBpbiBgI2FwaWAgb24gb3VyIFtEaXNjb3JkIHNlcnZlcl1bN10KLSBQaW5nIFtAd29waWFuXSwgW0BtYXR0aGV3ZGlhc10gb3IgW0BudWNrXSBvbiBLaXRzdS4KCiMjIyBGaWxlIFN0cnVjdHVyZQoKVGhlIE9wZW5BUEkgc2NoZW1hIGlzIHNwbGl0IGludG8gbXVsdGlwbGUgZGlyZWN0b3JpZXMuIFdoaWxlIGl0IGxvb2tzIGNvbXBsaWNhdGVkLCBpdCByZWR1Y2VzIHRoZSBhbW91bnQgb2YgcmVwZWF0ZWQgcGFyYW1ldGVycyBhbmQgcmVzb3VyY2UgYXR0cmlidXRlcy9yZWxhdGlvbnNoaXBzIHRvIG5lYXIgemVyby4KClJlc291cmNlLCByZWxhdGlvbnNoaXAgYW5kIGZpbHRlciBpbmhlcml0ZW5jZSBtYXRjaGVzIHRoZSBtb2RlbCBkZWZpbml0aW9ucyBvbiB0aGUgc2VydmVyIHJlcG8uCgpgYGB5YW1sCmFwaQrilJzilIDilIDilIBwYXJhbWV0ZXJzICAjIFF1ZXJ5IFBhcmFtZXRlcnMK4pSCICAg4pSU4pSA4pSA4pSAcGF0aCAgICAjIFBhdGggUGFyYW1ldGVycwrilIIK4pSc4pSA4pSA4pSAcGF0aHMgICAgICAgIyBFbmRwb2ludHMsIGdyb3VwZWQgYnkgdGFnR3JvdXBzCuKUggrilJzilIDilIDilIByZXNvdXJjZXMgICAjIFRvcC1sZXZlbCBKU09OOkFQSSByZXNvdXJjZSBzdHJ1Y3R1cmVzIChvbmUsIG1hbnksIGluY2x1ZGVkKQrilIIgICDilJzilIDilIDilIBhbmltZQrilIIgICDilJTilIDilIDilIBlcnJvciAgICMgSlNPTjpBUEkgZXJyb3IgcmVzcG9uc2VzCuKUggrilJTilIDilIDilIBzY2hlbWFzICAgICAgICAgICAgICAgICAgICAgICAjIERhdGEgTW9kZWxzCiAgICDilJzilIDilIDilIBlbnVtcwogICAg4pSCCiAgICDilJzilIDilIDilIBmaWx0ZXJzICAgICAgICAgICAgICAgICAgICMgUmV1c2FibGUgSlNPTjpBUEkgZmlsdGVyIHBhcmFtZXRlcnMKICAgIOKUgiAgIOKUnOKUgOKUgOKUgHJlc291cmNlICAgICAgICAgICAgICAjIFJvb3QgZmlsdGVyIHBhcmFtZXRlciBmb3IgZWFjaCByZXNvdXJjZQogICAg4pSCICAg4pSU4pSA4pSA4pSAcmVzb3VyY2VGaWx0ZXJzICAgICAgICMgR3JvdXBlZCBmaWx0ZXJzIChpbmhlcml0YW5jZSkKICAgIOKUggogICAg4pSc4pSA4pSA4pSAbGlua3MgICAgICAgICAgICAgICAgICAgICAjIEpTT046QVBJIGxpbmsgcHJvcGVydGllcwogICAg4pSCCiAgICDilJzilIDilIDilIBtZXRhICAgICAgICAgICAgICAgICAgICAgICMgSlNPTjpBUEkgbWV0YSBwcm9wZXJ0aWVzCiAgICDilIIKICAgIOKUlOKUgOKUgOKUgHJlc291cmNlcyAgICAgICAgICAgICAgICAgIyBKU09OOkFQSSByZXNvdXJjZXMKICAgICAgICDilJzilIDilIDilIByZWxhdGlvbnNoaXBzICAgICAgICAgIyBKU09OOkFQSSByZWxhdGlvbnNoaXBzCiAgICAgICAg4pSU4pSA4pSA4pSAcmVzb3VyY2VSZWxhdGlvbnNoaXBzICMgR3JvdXBlZCByZWxhdGlvbnNoaXBzIChpbmhlcml0YW5jZSkKYGBgCgojIyMgQmFzZSBGaWxlcwoKVGhlc2UgYXJlIGRlZmluZWQgYXMgc2VwZXJhdGUgcmVzb3VyY2VzIGluIHRoZSBzZXJ2ZXIgZGVmaW5pdGlvbnMgYW5kIGFyZSBpbmhlcml0ZWQgYnkgYWxsIG90aGVyIGRlZmluaXRpb25zLiBDaGVjayBgYW5pbWVgIGFuZCBgbWVkaWFgIGluIGBhcGkvc2NoZW1hcy9yZXNvdXJjZXNgIGFuZCBgYXBpL3NjaGVtYXMvZmlsdGVycy9yZXNvdXJjZUZpbHRlcnNgIHRvIHNlZSBob3cgaW5oZXJpdGFuY2UgaXMgYXBwbGllZC4KCiMjIyMgUmVzb3VyY2VzCgpBbGwgcmVzb3VyY2VzIGluaGVyaXQgZnJvbSBgYXBpL3NjaGVtYXMvcmVzb3VyY2VzL2Jhc2UueW1sYAoKSW4gYWRkaXRpb246CgotIFNsdWdnYWJsZSByZXNvdXJjZXMgaW5oZXJpdCBmcm9tIGBhcGkvc2NoZW1hcy9yZXNvdXJjZXMvYmFzZV9zbHVnZ2FibGUueW1sYAotIEVwaXNvZGljIHJlc291cmNlcyBpbmhlcml0IGZyb20gYGFwaS9zY2hlbWFzL3Jlc291cmNlcy9iYXNlX2VwaXNvZGljLnltbGAKCiMjIyMgUmVzb3VyY2UgUmVsYXRpb25zaGlwcwoKLSBFcGlzb2RpYyByZXNvdXJjZXMgaW5oZXJpdCBmcm9tIGBhcGkvc2NoZW1hcy9yZXNvdXJjZXMvcmVzb3VyY2VSZWxhdGlvbnNoaXBzL2Jhc2VfZXBpc29kaWMueW1sYAoKIyMjIyBGaWx0ZXJzCgpBbGwgcmVzb3VyY2VzIGluaGVyaXQgZnJvbSBgYXBpL3NjaGVtYXMvZmlsdGVycy9yZXNvdXJjZUZpbHRlcnMvYmFzZS55bWxgCgpJbiBhZGRpaW9uOgoKLSBTbHVnZ2FibGUgcmVzb3VyY2VzIGluaGVyaXQgZnJvbSBgYXBpL3NjaGVtYXMvZmlsdGVycy9yZXNvdXJjZUZpbHRlcnMvYmFzZV9zbHVnZ2FibGUueW1sYAotIEVwaXNvZGljIHJlc291cmNlcyBpbmhlcml0IGZyb20gYGFwaS9zY2hlbWFzL2ZpbHRlcnMvcmVzb3VyY2VGaWx0ZXJzL2Jhc2VfZXBpc29kaWMueW1sYAoKIyMjIFJlcXVpcmVtZW50cwoKLSBbZ2l0XShodHRwczovL2dpdC1zY20uY29tKSA+IGAyLjAuMGAKLSBbbm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnKSA+IGAxMi4wLjBgCi0gW3lhcm5dKGh0dHBzOi8veWFybnBrZy5jb20pID4gYDEuMjIuMGAKCiMjIyBEZXZlbG9wbWVudAoKMS4gW0ZvcmsgdGhlIHJlcG9dWzVdCgoyLiBDbG9uZSB0aGUgcmVwbyAoYGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20ve3lvdXJ1c2VybmFtZX0vYXBpLWRvY3MuZ2l0YCkKCjMuIENyZWF0ZSBhIG5ldyBicmFuY2ggKGBnaXQgY2hlY2tvdXQgLWIgaW1wcm92ZS1kb2NzYCkKCjQuIEluc3RhbGwgZGVwZW5kZW5jaWVzIChgeWFybmApCgo1LiBNYWtlIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIGluIHRoZSBzb3VyY2UgZmlsZXMKICAtIENoZWNrIHRoZSBjaGFuZ2VzIGxvY2FsbHkgd2l0aCBgeWFybiBzdGFydGAKCjYuIENvbW1pdCB5b3VyIGNoYW5nZXMgKGBnaXQgY29tbWl0IC1hbSAnZmVhdDogaW1wcm92ZSBkb2NzJ2ApCgo3LiBQdXNoIHRvIHlvdXIgYnJhbmNoIChgZ2l0IHB1c2ggb3JpZ2luIGltcHJvdmUtZG9jc2ApCgo4LiBbQ3JlYXRlIGEgUHVsbCBSZXF1ZXN0XVs2XQoKIyMgQ29udHJpYnV0b3JzCgpbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy8wKV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvMClbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy8xKV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvMSlbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy8yKV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvMilbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy8zKV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvMylbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy80KV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvNClbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy81KV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvNSlbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy82KV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvNilbIVtdKGh0dHBzOi8vc291cmNlcmVyLmlvL2ZhbWUvd29waWFuL2h1bW1pbmdiaXJkLW1lL2FwaS1kb2NzL2ltYWdlcy83KV0oaHR0cHM6Ly9zb3VyY2VyZXIuaW8vZmFtZS93b3BpYW4vaHVtbWluZ2JpcmQtbWUvYXBpLWRvY3MvbGlua3MvNykKClswXTpodHRwczovL2dpdGh1Yi5jb20vaHVtbWluZ2JpcmQtbWUvaHVtbWluZ2JpcmQtc2VydmVyClsxXTpodHRwczovL2dpdGh1Yi5jb20vaHVtbWluZ2JpcmQtbWUvaHVtbWluZ2JpcmQtY2xpZW50ClszXTpodHRwOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMwpbNF06aHR0cHM6Ly95YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwKWzVdOmh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL2ZvcmstYS1yZXBvLyNmb3JrLWFuLWV4YW1wbGUtcmVwb3NpdG9yeQpbNl06aHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20vYXJ0aWNsZXMvY3JlYXRpbmctYS1wdWxsLXJlcXVlc3QvI2NyZWF0aW5nLXRoZS1wdWxsLXJlcXVlc3QKWzddOmh0dHBzOi8vaW52aXRlLmdnL2tpdHN1CgpbQHdvcGlhbl06aHR0cHM6Ly9raXRzdS5pby91c2Vycy93b3BpYW4KW0BtYXR0aGV3ZGlhc106aHR0cHM6Ly9raXRzdS5pby91c2Vycy9tYXR0aGV3ZGlhcwpbQG51Y2tdOmh0dHBzOi8va2l0c3UuaW8vdXNlcnMvbnVjawo= readmeEtag: '"ddb20eabf757e8b276878335d2c2c6b9c4190c81"' readmeLastModified: Sat, 28 Oct 2023 01:18:47 GMT repositoryId: 92471764 description: 🤖 API documentation for Kitsu created: '2017-05-26T04:21:01Z' updated: '2024-07-03T12:47:03Z' language: YAML archived: false stars: 107 watchers: 12 forks: 188 owner: hummingbird-me logo: https://avatars.githubusercontent.com/u/7648832?v=4 repoEtag: '"d573e0091edf57068861c2a054c8ef45fb4b0735c6c344151e2043b005e8b366"' repoLastModified: Wed, 03 Jul 2024 12:47:03 GMT foundInMaster: true category: Low-level Tooling id: 76ad1690754ba6c1e408622d1ed39e6c - source: openapi3 tags repository: https://github.com/digitalocean/openapi v3: true repositoryMetadata: base64Readme: >- IyBEaWdpdGFsT2NlYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uCiFbU3BlYyBNYWluXShodHRwczovL2dpdGh1Yi5jb20vZGlnaXRhbG9jZWFuL2FwaXYyLW9wZW5hcGkvd29ya2Zsb3dzL1NwZWMlMjBNYWluL2JhZGdlLnN2ZykgIVtTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU3RhdHVzLUVhcmx5JTIwQXZhaWxhYmlsaXR5LWJsdWUpCgpUaGUgT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uIGZvciBbRGlnaXRhbE9jZWFuJ3MgcHVibGljIEFQSSB2Ml0oaHR0cHM6Ly9kZXZlbG9wZXJzLmRpZ2l0YWxvY2Vhbi5jb20vZG9jdW1lbnRhdGlvbi92Mi8pLgoKIyMgV2hhdCBpcyBPcGVuQVBJPwoKRnJvbSB0aGUgW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKToKCj4gVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAoT0FTKSBkZWZpbmVzIGEgc3RhbmRhcmQsIGxhbmd1YWdlLWFnbm9zdGljIGludGVyZmFjZSB0byBSRVNUZnVsIEFQSXMgd2hpY2ggYWxsb3dzIGJvdGggaHVtYW5zIGFuZCBjb21wdXRlcnMgdG8gZGlzY292ZXIgYW5kIHVuZGVyc3RhbmQgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgc2VydmljZSB3aXRob3V0IGFjY2VzcyB0byBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbiwgb3IgdGhyb3VnaCBuZXR3b3JrIHRyYWZmaWMgaW5zcGVjdGlvbi4gV2hlbiBwcm9wZXJseSBkZWZpbmVkLCBhIGNvbnN1bWVyIGNhbiB1bmRlcnN0YW5kIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSByZW1vdGUgc2VydmljZSB3aXRoIGEgbWluaW1hbCBhbW91bnQgb2YgaW1wbGVtZW50YXRpb24gbG9naWMuCgo+IEFuIE9wZW5BUEkgZGVmaW5pdGlvbiBjYW4gdGhlbiBiZSB1c2VkIGJ5IGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiB0b29scyB0byBkaXNwbGF5IHRoZSBBUEksIGNvZGUgZ2VuZXJhdGlvbiB0b29scyB0byBnZW5lcmF0ZSBzZXJ2ZXJzIGFuZCBjbGllbnRzIGluIHZhcmlvdXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLCB0ZXN0aW5nIHRvb2xzLCBhbmQgbWFueSBvdGhlciB1c2UgY2FzZXMuCgojIyBQcm9qZWN0IFN0YXR1cwoKVGhlIERpZ2l0YWxPY2VhbiBPcGVuQVBJIFNwZWNpZmljYXRpb24gaXMgY3VycmVudGx5IGluICoqRWFybHkgQXZhaWxhYmlsaXR5KiouIFdoaWxlIHRoZSBzcGVjaWZpY2F0aW9uIHNob3VsZCBiZSBhY2N1cmF0ZSwgaXQgaXMgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50LiBUaGUgc3RydWN0dXJlIG9mIHRoaXMgcmVwb3NpdG9yeSBtYXkgY29udGludWUgdG8gZXZvbHZlLiBJZiB5b3UgZW5jb3VudGVyIGFueSBpbmFjY3VyYWNpZXMgb3IgaGF2ZSBmZWVkYmFjayBvbiBob3cgaXQgY2FuIGJldHRlciBzdWl0ZSB5b3VyIHVzZSBjYXNlLCBwbGVhc2UgW29wZW4gYW4gaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kaWdpdGFsb2NlYW4vYXBpdjItb3BlbmFwaS9pc3N1ZXMvbmV3KSB0byBsZXQgdXMga25vdy4KCiMjIFNwZWNpZmljYXRpb24KClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyB0aGUgc291cmNlIGZpbGVzIHVzZWQgdG8gY29tcGlsZSB0aGUgc3BlY2lmaWNhdGlvbi4gT24gZWFjaCBtZXJnZSB0byBgbWFpbmAsIGEgYnVuZGxlZCB2ZXJzaW9uIGlzIGdlbmVyYXRlZCBjb250YWluaW5nIHRoZSBlbnRpcmUgc3BlY2lmaWNhdGlvbi4gQSBkb2N1bWVudGF0aW9uIHByZXZpZXcgdXNpbmcgW1JlZG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykgaXMgYWxzbyBwcm92aWRlZC4KClshW1NwZWMgRG93bmxvYWRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRG93bmxvYWQtT3BlbkFQSSUyMHYzJTIwU3BlYy1ibHVlP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1kaWdpdGFsb2NlYW4pXShodHRwczovL2FwaS1lbmdpbmVlcmluZy5ueWMzLmRpZ2l0YWxvY2VhbnNwYWNlcy5jb20vc3BlYy1jaS9EaWdpdGFsT2NlYW4tcHVibGljLnYyLnlhbWwpIFshW0RvY3MgUHJldmlld10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9QcmV2aWV3LU9wZW5BUEklMjBEb2N1bWVudGF0aW9uLWJsdWU/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWRpZ2l0YWxvY2VhbildKGh0dHBzOi8vYXBpLWVuZ2luZWVyaW5nLm55YzMuZGlnaXRhbG9jZWFuc3BhY2VzLmNvbS9zcGVjLWNpL3JlZG9jLWluZGV4Lmh0bWwpCgojIyMjIFBvc3RtYW4gQ29sbGVjdGlvbgoKSW4gb3JkZXIgdG8gZ2VuZXJhdGUgYSBjb2xsZWN0aW9uIHRoYXQgbWF5IGJlIGltcG9ydGVkIHRvIFBvc3RtYW4sIHJ1bjoKCmBgYHNoCm1ha2UgY29sbGVjdGlvbgpgYGAKClRoZSByZXN1bHRzIGNhbiBiZSBmb3VuZCBpbiBgdGVzdHMvcG9zdG1hbi5qc29uYC4KCiMjIERldmVsb3BtZW50CgpUbyBnZW5lcmF0ZSBhIGJ1bmRsZWQgdmVyc2lvbiBvZiB0aGUgc3BlY2lmaWNhdGlvbiBsb2NhbGx5LCBydW46CgpgYGBzaAptYWtlIGJ1bmRsZQpgYGAKClRvIHByZXZpZXcgdGhlIGRvY3VtZW50YXRpb24gbG9jYWxseSwgcnVuOgoKYGBgc2gKbWFrZSBwcmV2aWV3CmBgYAoKVGhlIGRvY3VtZW50YXRpb24gd2lsbCBiZSBhdmFpbGFibGUgYXQ6IGBodHRwOi8vMTI3LjAuMC4xOjgwODBgLgoKRm9yIG1vcmUgZGV0YWlscyBvbiBvdXIgZGV2ZWxvcG1lbnQgcHJvY2VzcyBhbmQgdGhlIHN0cnVjdHVyZSBvZiB0aGlzIHJlcG9zaXRvcnksIHNlZSBbQ09OVFJJQlVUSU5HLm1kXSgvQ09OVFJJQlVUSU5HLm1kKS4KCiMjIExpY2Vuc2UKClRoaXMgc3BlY2lmaWNhdGlvbiBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgMi4wLg== readmeEtag: '"45ca2001105cea2fe82843409cb57745dd48c433"' readmeLastModified: Mon, 12 Aug 2024 17:23:57 GMT repositoryId: 264196717 description: The OpenAPI v3 specification for DigitalOcean's public API. created: '2020-05-15T13:10:36Z' updated: '2024-09-05T15:50:58Z' language: JavaScript archived: false stars: 106 watchers: 13 forks: 70 owner: digitalocean logo: https://avatars.githubusercontent.com/u/4650108?v=4 license: Apache-2.0 repoEtag: '"455dc85e074b529281dfc38e3940e2c1cf8a5278117cea5d3eeed5c4f04e053e"' repoLastModified: Thu, 05 Sep 2024 15:50:58 GMT foundInMaster: true category: - Testing - Parsers id: 496d74396e4ed66d5b8c2865dbbe953f - source: openapi3 tags repository: https://github.com/playpauseandstop/rororo v3: true repositoryMetadata: base64Readme: >- PT09PT09CnJvcm9ybwo9PT09PT0KCi4uIGltYWdlOjogaHR0cHM6Ly9naXRodWIuY29tL3BsYXlwYXVzZWFuZHN0b3Avcm9yb3JvL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9wbGF5cGF1c2VhbmRzdG9wL3Jvcm9yby9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwKICAgIDphbHQ6IENJIFdvcmtmbG93CgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcHJlLS1jb21taXQtZW5hYmxlZC1icmlnaHRncmVlbj9sb2dvPXByZS1jb21taXQmbG9nb0NvbG9yPXdoaXRlCiAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vcHJlLWNvbW1pdC9wcmUtY29tbWl0CiAgICA6YWx0OiBwcmUtY29tbWl0CgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNrLTAwMDAwMC5zdmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9wc2YvYmxhY2sKICAgIDphbHQ6IGJsYWNrCgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3Jvcm9yby5zdmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9yb3Jvcm8vCiAgICA6YWx0OiBMYXRlc3QgVmVyc2lvbgoKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9yb3Jvcm8uc3ZnCiAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkub3JnL3Byb2plY3Qvcm9yb3JvLwogICAgOmFsdDogUHl0aG9uIHZlcnNpb25zCgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9sL3Jvcm9yby5zdmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9wbGF5cGF1c2VhbmRzdG9wL3Jvcm9yby9ibG9iL21haW4vTElDRU5TRQogICAgOmFsdDogQlNEIExpY2Vuc2UKCi4uIGltYWdlOjogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvcGxheXBhdXNlYW5kc3RvcC9yb3Jvcm8vYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluJnNlcnZpY2U9Z2l0aHViCiAgICA6dGFyZ2V0OiBodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvcGxheXBhdXNlYW5kc3RvcC9yb3Jvcm8KICAgIDphbHQ6IENvdmVyYWdlCgouLiBpbWFnZTo6IGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL3Jvcm9yby9iYWRnZS8/dmVyc2lvbj1sYXRlc3QKICAgIDp0YXJnZXQ6IGh0dHBzOi8vcm9yb3JvLnJlYWR0aGVkb2NzLmlvLwogICAgOmFsdDogRG9jdW1lbnRhdGlvbgoKSW1wbGVtZW50IGBhaW9odHRwLndlYmBfIGBPcGVuQVBJIDNgXyBzZXJ2ZXIgYXBwbGljYXRpb25zIHdpdGggc2NoZW1hIGZpcnN0CmFwcHJvYWNoLgoKQXMgd2VsbCBhcyBidW5jaCBvdGhlciB1dGlsaXRpZXMgdG8gYnVpbGQgZWZmZWN0aXZlIHNlcnZlciBhcHBsaWNhdGlvbnMgd2l0aApgUHl0aG9uYF8gMyAmIGBhaW9odHRwLndlYmBfLgoKKiBXb3JrcyBvbiBgUHl0aG9uYF8gMy44KwoqIFdvcmtzIHdpdGggYGFpb2h0dHAud2ViYF8gMy44LjErCiogQlNEIGxpY2Vuc2VkCiogU291cmNlLCBpc3N1ZXMsIGFuZCBwdWxsIHJlcXVlc3RzIGBvbiBHaXRIdWIKICA8aHR0cHM6Ly9naXRodWIuY29tL3BsYXlwYXVzZWFuZHN0b3Avcm9yb3JvPmBfCgouLiBfYE9wZW5BUEkgM2A6IGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMwouLiBfYGFpb2h0dHAud2ViYDogaHR0cHM6Ly9kb2NzLmFpb2h0dHAub3JnL2VuL3N0YWJsZS93ZWIuaHRtbAouLiBfYFB5dGhvbmA6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvCgpRdWljayBTdGFydAo9PT09PT09PT09PQoKKnJvcm9ybyogcmVsaWVzIG9uIHZhbGlkIE9wZW5BUEkgMyBzY2hlbWEgZmlsZSAoYm90aCBKU09OIG9yIFlBTUwgZm9ybWF0cwpzdXBwb3J0ZWQpLgoKRXhhbXBsZSBiZWxvdywgaWxsdXN0cmF0ZXMgb24gaG93IHRvIGhhbmRsZSBvcGVyYXRpb24gYGBoZWxsb193b3JsZGBgIGZyb20KYG9wZW5hcGkueWFtbGBfIHNjaGVtYSBmaWxlLgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAoKICAgIGZyb20gYWlvaHR0cCBpbXBvcnQgd2ViCiAgICBmcm9tIHJvcm9ybyBpbXBvcnQgKAogICAgICAgIG9wZW5hcGlfY29udGV4dCwKICAgICAgICBPcGVyYXRpb25UYWJsZURlZiwKICAgICAgICBzZXR1cF9vcGVuYXBpLAogICAgKQoKCiAgICBvcGVyYXRpb25zID0gT3BlcmF0aW9uVGFibGVEZWYoKQoKCiAgICBAb3BlcmF0aW9ucy5yZWdpc3RlcgogICAgYXN5bmMgZGVmIGhlbGxvX3dvcmxkKHJlcXVlc3Q6IHdlYi5SZXF1ZXN0KSAtPiB3ZWIuUmVzcG9uc2U6CiAgICAgICAgd2l0aCBvcGVuYXBpX2NvbnRleHQocmVxdWVzdCkgYXMgY29udGV4dDoKICAgICAgICAgICAgbmFtZSA9IGNvbnRleHQucGFyYW1ldGVycy5xdWVyeS5nZXQoIm5hbWUiLCAid29ybGQiKQogICAgICAgICAgICBlbWFpbCA9IGNvbnRleHQucGFyYW1ldGVycy5xdWVyeS5nZXQoCiAgICAgICAgICAgICAgICAiZW1haWwiLCAid29ybGRAZXhhbXBsZS5jb20iCiAgICAgICAgICAgICkKICAgICAgICAgICAgcmV0dXJuIHdlYi5qc29uX3Jlc3BvbnNlKAogICAgICAgICAgICAgICAgeyJtZXNzYWdlIjogZiJIZWxsbywge25hbWV9ISIsICJlbWFpbCI6IGVtYWlsfQogICAgICAgICAgICApCgoKICAgIGRlZiBjcmVhdGVfYXBwKGFyZ3Y6IGxpc3Rbc3RyXSA9IE5vbmUpIC0+IHdlYi5BcHBsaWNhdGlvbjoKICAgICAgICByZXR1cm4gc2V0dXBfb3BlbmFwaSgKICAgICAgICAgICAgd2ViLkFwcGxpY2F0aW9uKCksCiAgICAgICAgICAgIFBhdGgoX19maWxlX18pLnBhcmVudCAvICJvcGVuYXBpLnlhbWwiLAogICAgICAgICAgICBvcGVyYXRpb25zLAogICAgICAgICAgICBzZXJ2ZXJfdXJsPSIvYXBpIiwKICAgICAgICApCgouLiBfYG9wZW5hcGkueWFtbGA6IGh0dHBzOi8vZ2l0aHViLmNvbS9wbGF5cGF1c2VhbmRzdG9wL3Jvcm9yby9ibG9iL21haW4vdGVzdHMvcm9yb3JvL29wZW5hcGkueWFtbAoKU2NoZW1hIEZpcnN0IEFwcHJvYWNoCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVW5saWtlIG90aGVyIHBvcHVsYXIgUHl0aG9uIE9wZW5BUEkgMyBzb2x1dGlvbnMsIHN1Y2ggYXMKYERqYW5nbyBSRVNUIEZyYW1ld29ya2BfLCBgRmFzdEFQSWBfLCAgYGZsYXNrLWFwaXNwZWNgXywgb3IgYGFpb2h0dHAtYXBpc3BlY2BfCipyb3Jvcm8qICoqcmVxdWlyZXMqKiB5b3UgdG8gcHJvdmlkZSB2YWxpZCBgT3BlbkFQSSAzYF8gc2NoZW1hIGZpcnN0LiBUaGlzCm1ha2VzICpyb3Jvcm8qIHNpbWlsYXIgdG8gYGNvbm5leGlvbmBfLCBgcHlyYW1pZF9vcGVuYXBpM2BfIGFuZCBvdGhlciBzY2hlbWEKZmlyc3QgbGlicmFyaWVzLgoKLi4gX2BEamFuZ28gUkVTVCBGcmFtZXdvcmtgOiBodHRwczovL3d3dy5kamFuZ28tcmVzdC1mcmFtZXdvcmsub3JnCi4uIF9gRmFzdEFQSWA6IGh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20KLi4gX2BmbGFzay1hcGlzcGVjYDogaHR0cHM6Ly9mbGFzay1hcGlzcGVjLnJlYWR0aGVkb2NzLmlvCi4uIF9gYWlvaHR0cC1hcGlzcGVjYDogaHR0cHM6Ly9haW9odHRwLWFwaXNwZWMucmVhZHRoZWRvY3MuaW8KLi4gX2Bjb25uZXhpb25gOiBodHRwczovL2Nvbm5leGlvbi5yZWFkdGhlZG9jcy5pbwouLiBfYHB5cmFtaWRfb3BlbmFwaTNgOiBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3B5cmFtaWRfb3BlbmFwaTMKCkNsYXNzIEJhc2VkIFZpZXdzCi0tLS0tLS0tLS0tLS0tLS0tCgoqcm9yb3JvKiBzdXBwb3J0cyBgY2xhc3MgYmFzZWQgdmlld3NgXyBhcyB3ZWxsLiBgVG9kby1CYWNrZW5kYF8gZXhhbXBsZQppbGx1c3RyYXRlcyBob3cgdG8gdXNlIGNsYXNzIGJhc2VkIHZpZXdzIGZvciBPcGVuQVBJIDMgc2VydmVycy4KCkluIHNuaXBwZXQgYmVsb3csICpyb3Jvcm8qIGV4cGVjdHMgdGhhdCBPcGVuQVBJIDMgc2NoZW1hIGNvbnRhaW5zIG9wZXJhdGlvbiBJRApgYFVzZXJWaWV3LmdldGBgLAoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIEBvcGVyYXRpb25zLnJlZ2lzdGVyCiAgICBjbGFzcyBVc2VyVmlldyh3ZWIuVmlldyk6CiAgICAgICAgYXN5bmMgZGVmIGdldChzZWxmKSAtPiB3ZWIuUmVzcG9uc2U6IC4uLgoKCi4uIF9gY2xhc3MgYmFzZWQgdmlld3NgOiBodHRwczovL2RvY3MuYWlvaHR0cC5vcmcvZW4vc3RhYmxlL3dlYl9xdWlja3N0YXJ0Lmh0bWwjYWlvaHR0cC13ZWItY2xhc3MtYmFzZWQtdmlld3MKLi4gX2BUb2RvLUJhY2tlbmRgOiBodHRwczovL2dpdGh1Yi5jb20vcGxheXBhdXNlYW5kc3RvcC9yb3Jvcm8vdHJlZS9tYWluL2V4YW1wbGVzL3RvZG9iYWNrZW5kCgpNb3JlIEV4YW1wbGVzCi0tLS0tLS0tLS0tLS0KCkNoZWNrIGBleGFtcGxlc2BfIGZvbGRlciB0byBzZWUgb3RoZXIgZXhhbXBsZXMgb24gaG93IHRvIGJ1aWxkIGFpb2h0dHAud2ViCk9wZW5BUEkgMyBzZXJ2ZXIgYXBwbGljYXRpb25zLgoKLi4gX2BleGFtcGxlc2A6IGh0dHBzOi8vZ2l0aHViLmNvbS9wbGF5cGF1c2VhbmRzdG9wL3Jvcm9yby90cmVlL21haW4vZXhhbXBsZXMK readmeEtag: '"251bf3809845d785731edd01b21d86f83b382645"' readmeLastModified: Fri, 16 Aug 2024 19:22:28 GMT repositoryId: 6331465 description: >- Implement aiohttp.web OpenAPI 3 server applications with schema first approach. created: '2012-10-22T08:08:52Z' updated: '2024-09-04T09:42:03Z' language: Python archived: false stars: 105 watchers: 6 forks: 9 owner: playpauseandstop logo: https://avatars.githubusercontent.com/u/21325?v=4 license: BSD-3-Clause repoEtag: '"93755dd7c40b11091f4dc5f28f16e44e4710637789c87c61da79c9122f4e6823"' repoLastModified: Wed, 04 Sep 2024 09:42:03 GMT foundInMaster: true category: Server Implementations id: bccba2fe3a44fa5e2681bdcd3e986ba7 - source: openapi3 tags repository: https://github.com/contiamo/openapi-generator-go v3: true repositoryMetadata: base64Readme: >- b3BlbmFwaS1nZW5lcmF0b3ItZ28KPT09PT09PT09PT09PT09PT09PT0KCiFbdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL2NvbnRpYW1vL29wZW5hcGktZ2VuZXJhdG9yLWdvL3dvcmtmbG93cy90ZXN0L2JhZGdlLnN2ZykKCkdlbmVyYXRlIGdvIGNvZGUgZnJvbSBhbiBvcGVuYXBpIHNwZWMhCgpgYGBiYXNoCiMgZ2VuZXJhdGUgc3RydWN0cywgZW51bXMgYW5kIGEgcm91dGVyIGZyb20gYSBzcGVjIGZpbGUKb3BlbmFwaS1nZW5lcmF0b3ItZ28gZ2VuZXJhdGUgLS1zcGVjIC4vZXhhbXBsZS9hcGkueWFtbCAtLW91dHB1dCAuL2V4YW1wbGUvZ2VuZXJhdGVkCiMgZ2VuZXJhdGUgbW9kZWxzIGFuZCByb3V0ZXIgaW5kZXBlbmRlbnRseQpvcGVuYXBpLWdlbmVyYXRvci1nbyBnZW5lcmF0ZSBtb2RlbHMgLS1zcGVjIC4vZXhhbXBsZS9hcGkueWFtbCAtLW91dHB1dCAuL2V4YW1wbGUvbW9kZWxzIC0tcGFja2FnZS1uYW1lIG1vZGVscwpvcGVuYXBpLWdlbmVyYXRvci1nbyBnZW5lcmF0ZSByb3V0ZXIgLS1zcGVjIC4vZXhhbXBsZS9hcGkueWFtbCAtLW91dHB1dCAuL2V4YW1wbGUvcm91dGVyIC0tcGFja2FnZS1uYW1lIHJvdXRlcgpgYGAKCiMjIFdoeQpUaGUgcGxhdGZvcm0gdGVhbSBhdCBDb250aWFtbyBoYXMgYSBzY2hlbWEgZmlyc3QgZGV2ZWxvcG1lbnQgZmxvdy4gVGhpcyBtZWFucyB3ZSB3cml0ZSBhbmQgcmV2aWV3IHRoZSBPcGVuQVBJIHNwZWMgYmVmb3JlIHdlIHdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbi4KClRvIG1ha2UgdGhpcyBlYXNpZXIgd2Ugc3RhcnRlZCB1c2luZyAob3IgdHJpZWQgdG8gdXNlKSB2YXJpb3VzIE9wZW5BUEkgY29kZSBnZW5lcmF0b3JzIHRvIHJlZHVjZSBidXN5IHdvcmsgYW5kIGVuc3VyZSBwcmVjaXNlIGNvbnNpc3RlbnQgaW1wbGVtZW50YXRpb25zLiBVbmZvcnR1bmF0ZWx5LCB3ZSBuZXZlciByZWFsbHkgZW5qb3llZCB0aGUgb3V0cHV0IGZyb20gdGhlc2UgZ2VuZXJhdG9ycyBhbmQgaGF2ZSBjcmVhdGVkIG91ciBvd24gZ2VuZXJhdG9yIHRoYXQgbWF0Y2hlcyBvdXIgcHJlZmVycmVkIHN0eWxlIGFuZCBjb252ZW50aW9ucy4KCiMjIFdoYXQKVGhlIGdlbmVyYXRvciBjb25zaXN0cyBvZiB0d28gcGFydHMKCjEuIGdlbmVyYXRvciBmb3IgdGhlIEhUVFAgc2VydmVyIG11eCB1c2luZyBbZ28tY2hpXShodHRwczovL2dpdGh1Yi5jb20vZ28tY2hpL2NoaSksIGFuZAoyLiBhIG1vZGVsIGdlbmVyYXRvciBmb3IgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIG9iamVjdHMuCgojIyMgVGhlIHJvdXRlciBnZW5lcmF0b3IKV2UgY2hvc2UgYGdvLWNoaWAgYmVjYXVzZSBpdCBpcyBmYXN0LCBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgbGlicmFyeSBIYW5kbGVyIGludGVyZmFjZSwgYW5kIGlzIGVhc3kgdG8gYWRkIG1pZGRsZXdhcmVzIHVzaW5nIGByLlVzZWAuCgpUaGUgZ2VuZXJhdG9yIHdpbGwgY3JlYXRlIGEgbWV0aG9kIGBOZXdSb3V0ZXJgIGFuZCBoYW5kbGVyIGludGVyZmFjZXMgdGhhdCB5b3UgbXVzdCB0aGVuIGltcGxlbWVudCBhbmQgcGFzcyB0byBgTmV3Um91dGVyYC4gSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCBpdCBkb2VzIG5vdCBnZW5lcmF0ZSBhbnkgaGFuZGxlciBsb2dpYywganVzdCB0aGUgcmVxdWlyZWQgaW50ZXJmYWNlcy4gIEhhbmRsZXJzIGNhbiBiZSBncm91cGVkIGludG8gc3BlY2lmaWMgaW50ZXJmYWNlcyBieSBhZGRpbmcgYHgtaGFuZGxlci1ncm91cDogPE5hbWU+YCB0byB5b3VyIHNjaGVtYS4gVGhpcyBpcyBvbmUgb2YgdGhlIG9ubHkgc2NoZW1hIGV4dGVuc2lvbnMgd2UgaGF2ZSBhZGRlZCB0byBpbXByb3ZlIG91ciBjb2RlIGdlbmVyYXRpb24uIFRoZSBoYW5kbGVyIGludGVyZmFjZSB3aWxsIGJlIGNhbGxlZCBgTmFtZUhhbmRsZXJgIGFuZCB3aWxsIGhhdmUgYSBtZXRob2QgbWF0Y2hpbmcgdGhlIGBvcGVyYXRpb25JZGAgZnJvbSB0aGUgc3BlYy4KCkZvciBleGFtcGxlLCBlYWNoIG9mIG91ciBwcm9qZWN0cyB3aWxsIGltcGxlbWVudCBhIHByb2plY3Qgc3BlY2lmaWMgYE5ld1JvdXRlcmAgdGhhdCBkb2VzIHRoZSBoYW5kbGVyIGNvbmZpZ3VyYXRpb24gYW5kICBpbml0aWFsaXphdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIHJvdXRlci4gSW4gdGhlIG5leHQgZXhhbXBsZSwgYG9wZW5hcGkuTmV3Um91dGVyYCBpcyBnZW5lcmF0ZWQgdXNpbmcKCmBgYHNoCm9wZW5hcGktZ2VuZXJhdG9yLWdvIGdlbmVyYXRlIHJvdXRlciAtLXNwZWMgLi9leGFtcGxlL2FwaS55YW1sIC0tb3V0cHV0IC4vZXhhbXBsZS9yb3V0ZXIgLS1wYWNrYWdlLW5hbWUgb3BlbmFwaQpgYGAKVGhlIHByb2plY3Qgc3BlY2lmaWMgcm91dGVyIGluaXRpYWxpemF0aW9uOgpgYGBnbwpmdW5jIE5ld1JvdXRlcihjdHggY29udGV4dC5Db250ZXh0LCBkYiAqc3FsLkRCLCBjZmcgY29uZmlnLkNvbmZpZykgKGh0dHAuSGFuZGxlciwgZXJyb3IpIHsKICAgIC8vIGRvIHNldHVwIHN0dWZmCgogICAgLy8gYW5kIHByb2JhYmx5IHNvbWUgbW9yZSBzZXR1cCBmb3IgZWFjaCBvZiB0aGUgaGFuZGxlciBpbXBsZW1lbnRhdGlvbnMKICAgIHVzZXJIYW5kbGVyIDo9IGhhbmRsZXJzLk5ld1VzZXJIYW5kbGVyKGN0eCwgZGIpCiAgICByZXNvdXJjZXNIYW5kbGVyIDo9IGhhbmRsZXJzLk5ld1Jlc291cmNlKGN0eCwgZGIpCgogICAgLy8gb3BlbmFwaS1nZW5lcmF0b3ItZ28gZ2VuZXJhdGUgcm91dGVyIC0tc3BlYyAuL2V4YW1wbGUvYXBpLnlhbWwgLS1vdXRwdXQgLi9leGFtcGxlL3JvdXRlciAtLXBhY2thZ2UtbmFtZSBvcGVuYXBpCiAgICBhcGlSb3V0ZXIgOj0gb3BlbmFwaS5OZXdSb3V0ZXIoCiAgICAgICAgLy8gdGhlIFVzZXJzSGFuZGxlciBpbnRlcmZhY2UgY29udGFpbnMgYSBtZXRob2QgZm9yIGVuZHBvaW50IHdpdGgKICAgICAgICAvLyB4LWhhbmRsZXItZ3JvdXA6IFVzZXJzCiAgICAgICAgdXNlckhhbmRsZXIsCgogICAgICAgIC8vIFJlc291cmNlc0hhbmRsZXIgaW50ZXJhY2UgY29udGFpbnMgYSBtZXRob2QgZm9yIGVhY2ggZW5kcG9pbnQgd2l0aAogICAgICAgIC8vIHgtaGFuZGxlci1ncm91cDogUmVzb3VyY2VzCiAgICAgICAgcmVzb3VyY2VzSGFuZGxlciwKICAgICkKCiAgICByb290LlJvdXRlKCIvIiwgZnVuYyhhcGkgY2hpLlJvdXRlcikgewogICAgICAgIC8vIG5vdyAgaW5pdCBhbmQgZGQgeW91ciBtaWRkbGV3YXJlcwoJCXIgOj0gbWlkZGxld2FyZXMuV2l0aFJlY292ZXJ5KG9zLlN0ZGVyciwgY2ZnLkRlYnVnKQoJCXQgOj0gbWlkZGxld2FyZXMuV2l0aFRyYWNpbmcoY29uZmlnLkFwcGxpY2F0aW9uTmFtZSwgbmlsLCBtaWRkbGV3YXJlcy5DaGlSb3V0ZU5hbWUpCgkJbCA6PSBtaWRkbGV3YXJlcy5XaXRoTG9nZ2luZyhjb25maWcuQXBwbGljYXRpb25OYW1lKQoJCW0gOj0gbWlkZGxld2FyZXMuV2l0aE1ldHJpY3MoY29uZmlnLkFwcGxpY2F0aW9uTmFtZSwgbmlsKQoJCWEgOj0gYXV0aG9yaXphdGlvbi5OZXdNaWRkbGV3YXJlKGNmZy5BdXRob3JpemF0aW9uLkhlYWRlck5hbWUsIHB1YmxpY0tleSkKCgkJYXBpLlVzZShyLldyYXBIYW5kbGVyKQoJCWFwaS5Vc2UodC5XcmFwSGFuZGxlcikKCQlhcGkuVXNlKGwuV3JhcEhhbmRsZXIpCgkJYXBpLlVzZShtLldyYXBIYW5kbGVyKQoJCWFwaS5Vc2UoYS5XcmFwSGFuZGxlcikKCiAgICAgICAgLy8gbW91bnQgdGhlIGdlbmVyYXRlIHJvdXRlcgoJCWFwaS5Nb3VudCgiLyIsIGFwaVJvdXRlcikKCX0pCgoJcmV0dXJuIHJvb3QsIG5pbAoKfQpgYGAKCiMjIyBUaGUgbW9kZWwgZ2VuZXJhdG9yClRoZSBtb2RlbCBnZW5lcmF0b3IgaXMgYSB3b3JrIGluIHByb2dyZXNzLCBidXQgY292ZXJzIHRoZSBtb3N0IGNvbW1vbiBjYXNlcyB3ZSBuZWVkIGluIGEgUkVTVCBBUEkuCgpZb3UgY2FuIGZpbmQgdmFyaW91cyBleGFtcGxlcyBvZiB0aGUgd2hhdCBpcyBzdXBwb3J0ZWQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIG91dHB1dCBpbiBvdXIgW3Rlc3QgZml4dHVyZXNdKC4vcGtnL2dlbmVyYXRvcnMvbW9kZWxzL3Rlc3RkYXRhL2Nhc2VzKS4KCk91ciBnZW5lcmF0b3IgZGlmZmVycyBmcm9tIHRoZSBvZmZpY2lhbCBPcGVuQVBJIGdlbmVyYXRvciB0b29scyBieSBhbHNvIHByb3ZpZGluZyBnZXR0ZXJzIGZvciBtYW55IGZpZWxkcywgd2hpY2ggbWFrZXMgaXQgZWFzaWVyIHRvIGRlZmluZSBhbmQgd29yayB3aXRoIGludGVyZmFjZXMgb2YgdGhlIG1vZGVscy4KCldlIGFsc28gcHJvdmlkZSBiZXR0ZXIgc3VwcG9ydCBmb3IgOgoqIFtlbnVtc10oLi9wa2cvZ2VuZXJhdG9ycy9tb2RlbHMvdGVzdGRhdGEvY2FzZXMvZW51bXMvZXhwZWN0ZWQvbW9kZWxfZmlsdGVyX3R5cGUuZ28pLCBlbnVtIHN1cHBvcnQgYWxzbyBpbmNsdWRlcyBzb21lIHV0aWxpdHkgbWV0aG9kcyB0aGF0IG1ha2UgdmFsaWRhdGluZyB0aGUgZW51bXMgbXVjaCBlYXNpZXIsCiAgKiBOb3cgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIHN0cmluZywgaW50ZWdlciwgYW5kIG51bWJlciAoaS5lLiBkZWNpbWFsKSBlbnVtcy4KKiBbYXJyYXlzXSguL3BrZy9nZW5lcmF0b3JzL21vZGVscy90ZXN0ZGF0YS9jYXNlcy90eXBlZF9hcnJheXMvZXhwZWN0ZWQvbW9kZWxfZm9vLmdvKSwKKiBbYWxsT2ZdKC4vcGtnL2dlbmVyYXRvcnMvbW9kZWxzL3Rlc3RkYXRhL2Nhc2VzL2FsbG9mMS9leHBlY3RlZC9tb2RlbF9mb28uZ28pLAoqIGFuZCBbb25lT2ZdKC4vcGtnL2dlbmVyYXRvcnMvbW9kZWxzL3Rlc3RkYXRhL2Nhc2VzL29uZW9mL2V4cGVjdGVkL21vZGVsX2Zvby5nbykKdGhhdCBmZWVsIG1vcmUgbmF0dXJhbCBpbiBHby4gQ3JlYXRpbmcgYXMgbWFueSBzdHJvbmcgdHlwZXMgYXMgaXMgcG9zc2libGUgYW5kIHVzaW5nIGBpbnRlcmZhY2V7fWAgb3RoZXJ3aXNlLiBUaGVzZSBjYXNlcyBvZnRlbiBmYWlsZWQgb3IgZ2VuZXJhdGVkIG5vbi1jb21waWxhYmxlIGNvZGUgd2l0aCB0aGUgb2ZmaWNpYWwgZ2VuZXJhdG9yLgo= readmeEtag: '"3882a5622cc5f1a56c9fee78df8398ac95f0683f"' readmeLastModified: Mon, 17 Jun 2024 11:52:29 GMT repositoryId: 312311416 description: >- An opinionated OpenAPI v3 code generator for Go. Use this to generate API models and router scaffolding. created: '2020-11-12T15:04:52Z' updated: '2024-07-17T10:12:11Z' language: Go archived: false stars: 104 watchers: 8 forks: 13 owner: contiamo logo: https://avatars.githubusercontent.com/u/862286?v=4 license: MIT repoEtag: '"352924a96e231f00bb8af7d5d7ae18e4a15d1400fd277bd1f41f22118e623616"' repoLastModified: Wed, 17 Jul 2024 10:12:11 GMT foundInMaster: true category: Server Implementations id: eef90532aca60fba2399f8da8d25e5f2 - source: openapi3 tags name: openapi4j category: - Data Validators - Schema Validators - Parsers repository: https://github.com/openapi4j/openapi4j language: Java source_description: >- Parse Description Document, validate API requests and responses using OpenAPI 3.x. v2: false v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5jb20vb3BlbmFwaTRqL29wZW5hcGk0ai5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9vcGVuYXBpNGovb3BlbmFwaTRqKQpbIVtNYWludGFpbmFiaWxpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1vcmcub3BlbmFwaTRqJTNBb3BlbmFwaTRqJm1ldHJpYz1zcWFsZV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPW9yZy5vcGVuYXBpNGolM0FvcGVuYXBpNGopClshW1NlY3VyaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9b3JnLm9wZW5hcGk0aiUzQW9wZW5hcGk0aiZtZXRyaWM9c2VjdXJpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1vcmcub3BlbmFwaTRqJTNBb3BlbmFwaTRqKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9b3JnLm9wZW5hcGk0aiUzQW9wZW5hcGk0aiZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPW9yZy5vcGVuYXBpNGolM0FvcGVuYXBpNGopCgpfX1RoaXMgcmVwb3NpdG9yeSBpcyBub3cgYXJjaGl2ZWQuIEkgZG9uJ3QgaGF2ZSBlbm91Z2ggc3BhcmUgdGltZSB0byBtYWludGFpbiB0aGlzIHByb2plY3QgKHdlbGwgYWN0dWFsbHkgcmV2YW1wKSBhbmQgZm9sbG93IE9BSSBzcGVjcy4gVGhpcyBwcm9qZWN0IGRlc2VydmVzIG11Y2ggbW9yZSB0aGF0IEkgY2FuIGdpdmUgdG8gc291cmNlIGNvZGUgYW5kIGZvbGxvd2VycyB0byBwcm92aWRlIGFwcHJvcHJpYXRlIG91dHB1dC5fXwoKIyBPcGVuQVBJIGZvciBqYXZhIHByb2plY3QgaG9tZQoKVGhpcyBpcyB0aGUgaG9tZSBwYWdlIG9mIHRoZSBvcGVuYXBpNGogcHJvamVjdCBmb3IgSmF2YSAoSmFrYXJ0YSBvciBKVk0gcGxhdGZvcm0gaW4gZ2VuZXJhbCkuCgpvcGVuYXBpNGogaXMgYSBzdWl0ZSBvZiB0b29scywgaW5jbHVkaW5nIHRoZSBmb2xsb3dpbmcgOgoqIFtPcGVuIEFQSSBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMy5tZCkgcGFyc2VyIGFuZCB2YWxpZGF0b3IuCiogT3BlbiBBUEkgW1NjaGVtYSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4zLm1kI3NjaGVtYU9iamVjdCkgdmFsaWRhdG9yLgoqIFtKU09OIHJlZmVyZW5jZV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXBicnlhbi16eXAtanNvbi1yZWYtMDMpIGltcGxlbWVudGF0aW9uLgoqIFJlcXVlc3QvcmVzcG9uc2UgdmFsaWRhdG9yIGFnYWluc3Qgb3BlcmF0aW9uLgoqIEZvciBpbnRlcm5hbCB1c2Ugb25seSwgcGVyZm9ybWFuY2UgcHJvamVjdCByZXBvcnRzIHNvbWUgbnVtYmVycyB0byAnbWFudWFsbHknIGNoZWNrIGFueSBpbXByb3ZlbWVudHMgb3IgcmVncmVzc2lvbnMgYmV0d2VlbiB2ZXJzaW9ucy4KCiMjIE1vZHVsZXMKCiogW1BhcnNlcl0ob3BlbmFwaS1wYXJzZXIpIGFsbG93cyB0aGUgKGRlLSlzZXJpYWxpemF0aW9uIGFuZCBtYW5pcHVsYXRpb24gb2YgdGhlIHNjaGVtYSBhbmQgaXRzIHZhbGlkYXRpb24uCiogW1NjaGVtYSB2YWxpZGF0b3JdKG9wZW5hcGktc2NoZW1hLXZhbGlkYXRvcikgYWxsb3dzIHRoZSB2YWxpZGF0aW9uIG9mIGRhdGEgYWdhaW5zdCBhIGdpdmVuIHNjaGVtYS4KKiBbUmVxdWVzdCB2YWxpZGF0b3JdKG9wZW5hcGktb3BlcmF0aW9uLXZhbGlkYXRvcikgaXMgaGlnaCBsZXZlbCBtb2R1bGUgdG8gbWFuYWdlIHZhbGlkYXRpb24gZm9yIHJlcXVlc3RzIGFuZC9vciByZXNwb25zZXMgYWdhaW5zdCBvcGVyYXRpb25zLiBNb3JlIGRldGFpbHMgaW4gdGhlIHJlbGF0ZWQgcHJvamVjdC4KKiBbUmVxdWVzdCBhZGFwdGVyc10ob3BlbmFwaS1vcGVyYXRpb24tYWRhcHRlcnMpIGlzIHRoZSByZXBvc2l0b3J5IG9mIHNwZWNpZmljIGFkYXB0ZXJzIHRvIHdyYXAgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4KCiMjIERvY3VtZW50YXRpb24KClRoZSBkb2N1bWVudGF0aW9uIGZvciBhbGwgbW9kdWxlcyBpcyBhdmFpbGFibGUgW2hlcmVdKGh0dHBzOi8vb3BlbmFwaTRqLmdpdGh1Yi5pby9vcGVuYXBpNGovKS4KCiMjIFZlcnNpb25pbmcgYW5kIGNvbXBhdGliaWxpdHkKCkFsbCBtb2R1bGVzIGZvbGxvdyB0aGUgW1NlbWFudGljIFZlcnNpb25pbmcgMi4wLjBdKGh0dHBzOi8vc2VtdmVyLm9yZykgYW5kIGFyZSBhbGlnbmVkIG9uIGVhY2ggcmVsZWFzZSBldmVuIHRoZXJlJ3Mgbm8gY2hhbmdlcy4KCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpNGo8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLVttb2R1bGVdPC9hcnRpZmFjdElkPgo8L2RlcGVuZGVuY3k+CmBgYAoKWyFbUmVsZWFzZSB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL25leHVzL3Ivb3JnLm9wZW5hcGk0ai9vcGVuYXBpLW9wZXJhdGlvbi12YWxpZGF0b3I/c3R5bGU9Zm9yLXRoZS1iYWRnZSZjb2xvcj1ibHVlJmxhYmVsPVJlbGVhc2Umc2VydmVyPWh0dHBzJTNBJTJGJTJGb3NzLnNvbmF0eXBlLm9yZyldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9zZWFyY2g/cT1nOm9yZy5vcGVuYXBpNGopClshW1NuYXBzaG90IHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbmV4dXMvcy9vcmcub3BlbmFwaTRqL29wZW5hcGktb3BlcmF0aW9uLXZhbGlkYXRvcj9zdHlsZT1mb3ItdGhlLWJhZGdlJmNvbG9yPWJsdWUmbGFiZWw9U25hcHNob3Qmc2VydmVyPWh0dHBzJTNBJTJGJTJGb3NzLnNvbmF0eXBlLm9yZyldKGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvb3JnL29wZW5hcGk0ai8pCgpTbmFwc2hvdCBpcyBhdmFpbGFibGUgZm9yIGxhdGVzdCB2YWxpZCBjb21taXQgb24gJ21hc3RlcicgYnJhbmNoLgoKIyMgUGVyZm9ybWFuY2UKCkNoZWNrIFtoZXJlXShodHRwczovL3d3dy5vcGVuYXBpNGoub3JnL3BlcmYtdmFsdWVzLmh0bWwpIGZvciBzb21lIHZhbHVlcy4KCiMjIE5hdGl2ZSBjb21waWxhdGlvbiAoR3JhYWxWTSkKCkZyb20gdmVyc2lvbiAwLjcsIHRoZSB0b29sc2V0IGlzIGZ1bGx5IGNvbXBsaWFudCB3aXRoIG5hdGl2ZSBjb21waWxhdGlvbiAoQU9UKS4KVGhpcyB3YXMgdGVzdGVkIHdpdGggR3JhYWxWTSAxOS4zLjEuCk5vIGZ1cnRoZXIgY29uZmlndXJhdGlvbiBvciBkaXJlY3RpdmUgaXMgbmVlZGVkIHRvIGluY2x1ZGUgdGhlIG1vZHVsZXMgaWYgYXZhaWxhYmxlIG9uIGNsYXNzcGF0aC4KCmBgYHNoZWxsIHNjcmlwdApuYXRpdmUtaW1hZ2UgLUg6K1JlcG9ydEV4Y2VwdGlvblN0YWNrVHJhY2VzIC0tbm8tZmFsbGJhY2sgLWphciB5b3VyLWFwcC5qYXIKYGBgCgpGWUksIHRlc3RpbmcgcnVucyBtYWRlIGRvbid0IHNob3cgbXVjaCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYnV0IHBhcnNlciBtb2R1bGUuCgojIyBTdXBwb3J0ZWQgdmVyc2lvbnMKClRoZSBtb2R1bGVzIGN1cnJlbnRseSBzdXBwb3J0IHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gKE9BUykgdmVyc2lvbiAzLjAueC4KCk9BSSAzLjEuMCBoYXMgYmVlbiByZWxlYXNlZCBhcyBjYW5kaWRhdGUuICAKVGhlcmUncyB0b28gbXVjaCBjaGFuZ2VzIHRvbyBrZWVwIGNvZGUgb24gc2FtZSBiYXNpcyBhbmQga2VlcCBhIGZhaXJseSBsb3cgbGV2ZWwgb2YgY29tcGxleGl0eS4gIApBcyBhIGNvbnNlcXVlbmNlLCBPQUkgMy4xLnggc3VwcG9ydCB3aWxsIGJlIG1hZGUgaW4gYSB2ZXJzaW9uIDIgb2Ygb3BlbmFwaTRqLiAgCgpBcyBteSB0aW1lIGlzIHZlcnkgbGltaXRlZCwgdmVyc2lvbiAxIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIGZyZWV6ZWQgZm9yIG5vdy4KClNlZSByZWxhdGVkIHByb2plY3RzIGZvciBsaW1pdGF0aW9ucyBhbmQgaXNzdWVzLgoKIyMgQ29udHJpYnV0aW5nCgpSZXBvcnRpbmcgaXNzdWVzLCBtYWtpbmcgY29tbWVudHMsIC4uLiBBbnkgaGVscCBpcyB3ZWxjb21lICEKCldlIGFjY2VwdCBQdWxsIFJlcXVlc3RzIHZpYSBHaXRIdWIuIFRoZXJlIGFyZSBzb21lIGd1aWRlbGluZXMgd2hpY2ggd2lsbCBtYWtlIGFwcGx5aW5nIFBScyBlYXNpZXIgZm9yIHVzIDoKCiogUmVzcGVjdCB0aGUgY29kZSBzdHlsZSBhbmQgaW5kZW50YXRpb24uIC5lZGl0b3Jjb25maWcgZmlsZSBpcyBwcm92aWRlZCB0byBub3QgYmUgd29ycmllZCBhYm91dCB0aGlzLgoqIENyZWF0ZSBtaW5pbWFsIGRpZmZzIC0gZGlzYWJsZSBvbiBzYXZlIGFjdGlvbnMgbGlrZSByZWZvcm1hdCBzb3VyY2UgY29kZSBvciBvcmdhbml6ZSBpbXBvcnRzLiBJZiB5b3UgZmVlbCB0aGUgc291cmNlIGNvZGUgc2hvdWxkIGJlIHJlZm9ybWF0dGVkIGNyZWF0ZSBhIHNlcGFyYXRlIFBSIGZvciB0aGlzIGNoYW5nZS4KKiBQcm92aWRlIEpVbml0IHRlc3RzIGZvciB5b3VyIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB5b3VyIGNoYW5nZXMgZG9uJ3QgYnJlYWsgYW55dGhpbmcgYnkgcnVubmluZyBgZ3JhZGxldyBjbGVhbiBjaGVja2AuCiogUHJvdmlkZSBhIHNlbGYgZXhwbGFuYXRvcnkgYnV0IGJyaWVmIGNvbW1pdCBtZXNzYWdlIHdpdGggaXNzdWUgcmVmZXJlbmNlIGlmIGFueSwgYXMgaXQgd2lsbCBiZSByZXBvcnRlZCBkaXJlY3RseSBmb3IgcmVsZWFzZSBjaGFuZ2Vsb2cuCgojIyBMaWNlbnNlCgpvcGVuYXBpNGogYW5kIGFsbCB0aGUgbW9kdWxlcyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZS4gU2VlIFtMSUNFTlNFXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaTRqL29wZW5hcGk0ai9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKSBmb3IgZGV0YWlscy4K readmeEtag: '"0af446f681826fbe20696adc11289e18a75b18ff"' readmeLastModified: Fri, 09 Jul 2021 15:33:59 GMT repositoryId: 218804581 description: OpenAPI 3 parser, JSON schema and request validator. created: '2019-10-31T15:59:35Z' updated: '2024-08-20T05:33:44Z' language: Java archived: true stars: 102 watchers: 5 forks: 43 owner: openapi4j logo: https://avatars.githubusercontent.com/u/39759775?v=4 license: Apache-2.0 repoEtag: '"707cf4a36732540d9a62afa97721215e24e1ba74d85bc851f4fd2d477a90fb11"' repoLastModified: Tue, 20 Aug 2024 05:33:44 GMT foundInMaster: true id: c5b32630ea7cd375c61c41563e2a2f09 - source: openapi3 tags repository: https://github.com/parvez3019/go-swagger3 v3: true repositoryMetadata: base64Readme: >- IyMjIERlbW8KCkNsaWNrIGhlcmUgZm9yIFtZb3V0dWJlIERlbW8gTGlua10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1HTE05YzVqOGc3SSkKCgojIGdvLXN3YWdnZXIzCgpHZW5lcmF0ZSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbikgdjMgZmlsZSB3aXRoIGNvbW1lbnRzIGluIEdvLgoKIyMjIFRhYmxlIG9mIGNvbnRlbnQKCi0gWzEuIEluc3RhbGxdKCMxLWluc3RhbGwpCi0gWzIuIERvY3VtZW50YXRpb24gR2VuZXJhdGlvbl0oIzItZG9jdW1lbnRhdGlvbi1nZW5lcmF0aW9uKQotIFszLiBVc2FnZV0oIzMtdXNhZ2UpCiAgICAtIFtTZXJ2aWNlIERlc2NyaXB0aW9uXSgjc2VydmljZS1kZXNjcmlwdGlvbikKICAgIC0gW0hhbmRsZXIgZnVuY3Rpb25zXSgjaGFuZGxlci1mdW5jdGlvbnMpCiAgICAtIFtUaXRsZSBBbmQgRGVzY3JpcHRpb25dKCN0aXRsZS1hbmQtZGVzY3JpcHRpb24pCiAgICAtIFtQYXJhbWV0ZXJdKCNwYXJhbWV0ZXIpCiAgICAtIFtIZWFkZXJdKCNoZWFkZXIpCiAgICAtIFtIZWFkZXIgUGFyYW1ldGVyc10oI2hlYWRlci1wYXJhbWV0ZXJzKQogICAgLSBbUmVzcG9uc2VdKCNyZXNwb25zZSkKICAgIC0gW1Jlc291cmNlICYgVGFnXSgjcmVzb3VyY2UtLXRhZykKICAgIC0gW1JvdXRlXSgjcm91dGUpCiAgICAtIFtFbnVtc10oI2VudW1zKQotIFs0LiBTZWN1cml0eV0oIzQtc2VjdXJpdHkpCi0gWzUuIExpbWl0YXRpb25zXSgjNS1saW1pdGF0aW9ucykKLSBbNi4gUmVmZXJlbmNlc10oIzYtcmVmZXJlbmNlcykKCiMjIDEuIEluc3RhbGwKCmBgYApnbyBpbnN0YWxsIGdpdGh1Yi5jb20vcGFydmV6MzAxOS9nby1zd2FnZ2VyM0BsYXRlc3QKYGBgCgoKIyMjIDIuIERvY3VtZW50YXRpb24gR2VuZXJhdGlvbgojIyMjIFVzaW5nIGJpbmFyeQpHbyB0byB0aGUgZm9sZGVyIHdoZXJlIGlzIG1haW4uZ28gaW4KCmBgYCBzaGVsbAovLyBnby5tb2QgYW5kIG1haW4gZmlsZSBhcmUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CmdvLXN3YWdnZXIzIC0tbW9kdWxlLXBhdGggLiAtLW91dHB1dCBvYXMuanNvbiAtLXNjaGVtYS13aXRob3V0LXBrZyAtLWdlbmVyYXRlLXlhbWwgdHJ1ZQoKLy8gZ28ubW9kIGFuZCBtYWluIGZpbGUgYXJlIGluIHRoZSBkaWZmZXJlbnQgZGlyZWN0b3J5CmdvLXN3YWdnZXIzIC0tbW9kdWxlLXBhdGggLiAtLW1haW4tZmlsZS1wYXRoIC4vY21kL3h4eC9tYWluLmdvIC0tb3V0cHV0IG9hcy5qc29uIC0tc2NoZW1hLXdpdGhvdXQtcGtnIC0tZ2VuZXJhdGUteWFtbCB0cnVlCgovLyBpbiBjYXNlIHlvdSBnZXQgJ2NvbW1hbmQgbm90IGZvdW5kOiBnby1zd2FnZ2VyMycgZXJyb3IsIHBsZWFzZSBleHBvcnQgYWRkIEdPUEFUSC9iaW4gdG8gUEFUSApleHBvcnQgUEFUSD0iJEhPTUUvZ28vYmluOiRQQVRIIgoKTm90ZXMgLSAKLSBQYXNzIHNjaGVtYS13aXRob3V0LXBrZyBmbGFnIGFzIHRydWUgaWYgeW91IHdhbnQgdG8gZ2VuZXJhdGUgc2NoZW1hcyB3aXRob3V0IHBhY2thZ2UgbmFtZXMKLSBQYXNzIGdlbmVyYXRlLXlhbWwgYXMgdHJ1cyBpZiB5b3Ugd2FudCB0byBnZW5lcmF0ZSB5YW1sIHNwZWMgZmlsZSBpbnN0ZWFkIG9mIGpzb24KCmBgYAoKIyMjIyBVc2luZyBkb2NrZXIKYGBgIHNoZWxsCi8vIGdvLm1vZCBhbmQgbWFpbiBmaWxlIGFyZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkKZG9ja2VyIHJ1biAtdCAtLXJtIC12ICQocHdkKTovYXBwIC13IC9hcHAgcGFydmV6MzAxOS9nby1zd2FnZ2VyMzpsYXRlc3QgLS1tb2R1bGUtcGF0aCAuIC0tb3V0cHV0IG9hcy5qc29uIC0tc2NoZW1hLXdpdGhvdXQtcGtnIC0tZ2VuZXJhdGUteWFtbCB0cnVlCgovLyBnby5tb2QgYW5kIG1haW4gZmlsZSBhcmUgaW4gdGhlIGRpZmZlcmVudCBkaXJlY3RvcnkKZG9ja2VyIHJ1biAtdCAtLXJtIC12ICQocHdkKTovYXBwIC13IC9hcHAgcGFydmV6MzAxOS9nby1zd2FnZ2VyMzpsYXRlc3QgLS1tb2R1bGUtcGF0aCAuIC0tbWFpbi1maWxlLXBhdGggLi9jbWQveHh4L21haW4uZ28gLS1vdXRwdXQgb2FzLmpzb24gLS1zY2hlbWEtd2l0aG91dC1wa2cgLS1nZW5lcmF0ZS15YW1sIHRydWUKCk5vdGVzIC0gCi0gUGFzcyBzY2hlbWEtd2l0aG91dC1wa2cgZmxhZyBhcyB0cnVlIGlmIHlvdSB3YW50IHRvIGdlbmVyYXRlIHNjaGVtYXMgd2l0aG91dCBwYWNrYWdlIG5hbWVzCi0gUGFzcyBnZW5lcmF0ZS15YW1sIGFzIHRydXMgaWYgeW91IHdhbnQgdG8gZ2VuZXJhdGUgeWFtbCBzcGVjIGZpbGUgaW5zdGVhZCBvZiBqc29uCgpgYGAKCgoKCiMjIDMuIFVzYWdlCgpZb3UgY2FuIGRvY3VtZW50IHlvdXIgc2VydmljZSBieSBwbGFjaW5nIGFubm90YXRpb25zIGluc2lkZSB5b3VyIGdvZG9jIGF0IHZhcmlvdXMgcGxhY2VzIGluIHlvdXIgY29kZS4KCiMjIyBTZXJ2aWNlIERlc2NyaXB0aW9uCgpUaGUgc2VydmljZSBkZXNjcmlwdGlvbiBjb21tZW50cyBjYW4gYmUgbG9jYXRlZCBpbiBhbnkgb2YgeW91ciAuZ28gZmlsZXMuIFRoZXkgcHJvdmlkZSBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZXJ2aWNlIHlvdSBhcmUgZG9jdW1lbnRpbmcuCgpgYGAgZ28KLy8gQFZlcnNpb24gMS4wLjAKLy8gQFRpdGxlIEJhY2tlbmQgQVBJCi8vIEBEZXNjcmlwdGlvbiBBUEkgdXN1YWxseSB3b3JrcyBhcyBleHBlY3RlZC4gQnV0IHNvbWV0aW1lcyBpdHMgbm90IHRydWUuCi8vIEBDb250YWN0TmFtZSBQYXJ2ZXoKLy8gQENvbnRhY3RFbWFpbCBhYmNlQGVtYWlsLmNvbQovLyBAQ29udGFjdFVSTCBodHRwOi8vc29tZXVybC5veG94Ci8vIEBUZXJtc09mU2VydmljZVVybCBodHRwOi8vc29tZXVybC5veG94Ci8vIEBMaWNlbnNlTmFtZSBNSVQKLy8gQExpY2Vuc2VVUkwgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UKLy8gQFNlcnZlciBodHRwOi8vd3d3LmZha2UuY29tIFNlcnZlci0xCi8vIEBTZXJ2ZXIgaHR0cDovL3d3dy5mYWtlMi5jb20gU2VydmVyLTIKLy8gQFNlY3VyaXR5IEF1dGhvcml6YXRpb25IZWFkZXIgcmVhZCB3cml0ZQovLyBAU2VjdXJpdHlTY2hlbWUgQXV0aG9yaXphdGlvbkhlYWRlciBodHRwIGJlYXJlciBJbnB1dCB5b3VyIHRva2VuCmBgYAoKIyMjIEhhbmRsZXIgRnVuY3Rpb25zCgpCeSBhZGRpbmcgY29tbWVudHMgdG8geW91ciBoYW5kbGVyIGZ1bmMgZ29kb2MsIHlvdSBjYW4gZG9jdW1lbnQgaW5kaXZpZHVhbCBhY3Rpb25zIGFzIHdlbGwgYXMgdGhlaXIgaW5wdXQgYW5kIG91dHB1dC4KCmBgYCBnbwp0eXBlIFVzZXIgc3RydWN0IHsKICBJRCAgIHVpbnQ2NCBganNvbjoiaWQiIGV4YW1wbGU6IjEwMCIgZGVzY3JpcHRpb246IlVzZXIgaWRlbnRpdHkiYAogIE5hbWUgc3RyaW5nIGBqc29uOiJuYW1lIiBleGFtcGxlOiJQYXJ2ZXoiYCAKfQoKdHlwZSBVc2Vyc1Jlc3BvbnNlIHN0cnVjdCB7CiAgRGF0YSBbXVVzZXJzIGBqc29uOiJ1c2VycyIgZXhhbXBsZToiW3tcImlkXCI6MTAwLCBcIm5hbWVcIjpcIlBhcnZlelwifV0iYAp9Cgp0eXBlIEVycm9yIHN0cnVjdCB7CiAgQ29kZSBzdHJpbmcgYGpzb246ImNvZGUiYAogIE1zZyAgc3RyaW5nIGBqc29uOiJtc2ciIHNraXA6InRydWUiYAogIC8vIHVzZSBza2lwOiJ0cnVlIiBpZiB5b3Ugd2FudCB0byBza2lwIHRoZSBmaWVsZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBzcGVjCn0KCnR5cGUgRXJyb3JSZXNwb25zZSBzdHJ1Y3QgewogIEVycm9ySW5mbyBFcnJvciBganNvbjoiZXJyb3IiYAp9CgovLyBSZXF1ZXN0SGVhZGVycyByZXByZXNlbnRzIHRoZSBtb2RlbCBmb3IgaGVhZGVyIHBhcmFtcwovLyBASGVhZGVyUGFyYW1ldGVycyBSZXF1ZXN0SGVhZGVycwp0eXBlIFJlcXVlc3RIZWFkZXJzIHN0cnVjdCB7CiAgICBBdXRob3JpemF0aW9uICBzdHJpbmcgIGBqc29uOiJBdXRob3JpemF0aW9uImAKfQoKLy8gQFRpdGxlIEdldCB1c2VyIGxpc3Qgb2YgYSBncm91cC4KLy8gQERlc2NyaXB0aW9uIEdldCB1c2VycyByZWxhdGVkIHRvIGEgc3BlY2lmaWMgZ3JvdXAuCi8vIEBIZWFkZXIgbW9kZWwuUmVxdWVzdEhlYWRlcnMKLy8gQFBhcmFtICBncm91cElEICBwYXRoICBpbnQgIHRydWUgICJJZCBvZiBhIHNwZWNpZmljIGdyb3VwLiIgIjEyMCIKLy8gQFN1Y2Nlc3MgIDIwMCAgb2JqZWN0ICBVc2Vyc1Jlc3BvbnNlICAiVXNlcnNSZXNwb25zZSBKU09OIgovLyBARmFpbHVyZSAgNDAwICBvYmplY3QgIEVycm9yUmVzcG9uc2UgICJFcnJvclJlc3BvbnNlIEpTT04iCi8vIEBSZXNvdXJjZSB1c2VycwovLyBAUm91dGUgL2FwaS9ncm91cC97Z3JvdXBJRH0vdXNlcnMgW2dldF0KZnVuYyBHZXRHcm91cFVzZXJzKCkgewogIC8vIC4uLgp9CgovLyBAVGl0bGUgR2V0IHVzZXIgbGlzdCBvZiBhIGdyb3VwLgovLyBARGVzY3JpcHRpb24gQ3JlYXRlIGEgbmV3IHVzZXIuCi8vIEBQYXJhbSAgdXNlciAgYm9keSAgVXNlciAgdHJ1ZSAgIkluZm8gb2YgYSB1c2VyLiIKLy8gQFN1Y2Nlc3MgIDIwMCAgb2JqZWN0ICBVc2VyICAgICAgICAgICAiVXNlcnNSZXNwb25zZSBKU09OIgovLyBARmFpbHVyZSAgNDAwICBvYmplY3QgIEVycm9yUmVzcG9uc2UgICJFcnJvclJlc3BvbnNlIEpTT04iCi8vIEBSZXNvdXJjZSB1c2VycwovLyBAUm91dGUgL2FwaS91c2VyIFtwb3N0XQpmdW5jIFBvc3RVc2VyKCkgewogIC8vIC4uLgp9CmBgYAoKIyMjIyBUaXRsZSBBbmQgRGVzY3JpcHRpb24KYGBgCkBUaXRsZSB7dGl0bGV9CkBUaXRsZSBHZXQgdXNlciBsaXN0IG9mIGEgZ3JvdXAuCgpARGVzY3JpcHRpb24ge2Rlc2NyaXB0aW9ufS4KQERlc2NyaXB0aW9uIEdldCB1c2VycyByZWxhdGVkIHRvIGEgc3BlY2lmaWMgZ3JvdXAuCmBgYAotIHt0aXRsZX06IFRoZSB0aXRsZSBvZiB0aGUgcm91dGUuCi0ge2Rlc2NyaXB0aW9ufTogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSByb3V0ZS4KCiMjIyMgUGFyYW1ldGVyCmBgYApAUGFyYW0gIHtuYW1lfSAgICB7aW59ICB7Z29UeXBlfSAge3JlcXVpcmVkfSAge2Rlc2NyaXB0aW9ufSAgICAgICAgICAgICB7ZXhhbXBsZX0KQFBhcmFtICBncm91cElEICAgcGF0aCAgaW50ICAgICAgIHRydWUgICAgICAgICJJZCBvZiBhIHNwZWNpZmljIGdyb3VwLiIgIjEyMCIKYGBgCi0ge25hbWV9OiBUaGUgcGFyYW1ldGVyIG5hbWUuCi0ge2lufTogVGhlIHBhcmFtZXRlciBpcyBpbiBgcGF0aGAsIGBxdWVyeWAsIGBmb3JtYCwgYGhlYWRlcmAsIGBjb29raWVgLCBgYm9keWAgb3IgYGZpbGVgLgotIHtnb1R5cGV9OiBUaGUgdHlwZSBpbiBnbyBjb2RlLiBUaGlzIHdpbGwgYmUgaWdub3JlZCB3aGVuIHtpbn0gaXMgYGZpbGVgLgotIHtyZXF1aXJlZH06IGB0cnVlYCwgYGZhbHNlYCwgYHJlcXVpcmVkYCBvciBgb3B0aW9uYWxgLiAKLSB7ZGVzY3JpcHRpb259OiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gTXVzdCBiZSBxdW90ZWQuCi0ge2V4YW1wbGV9OiAqKk9wdGlvbmFsKiogZXhhbXBsZSBvZiB0aGlzIHBhcmFtZXRlci4gTXVzdCBiZSBxdW90ZWQuCgpPbmUgY2FuIGFsc28gb3ZlcnJpZGUgZXhhbXBsZSBmb3IgYW4gb2JqZWN0IHdpdGggYG92ZXJyaWRlLWV4YW1wbGVgIGtleSBpbiBzdHJ1Y3QKZWcgLQpgYGAgZ28KdHlwZSBSZXF1ZXN0IHN0cnVjdCB7CiAgICB2ZXJzaW9uICBtb2RlbC5WZXJzaW9uIGAianNvbjoiVmVyc2lvbiIgb3ZlcnJpZGUtZXhhbXBsZToiMTEuMC4wImAKfQpgYGAKCiMjIyMgSGVhZGVyIApgYGAKQEhlYWRlciAgICAgICAgICB7Z29UeXBlfQpASGVhZGVyUGFyYW1ldGVycyAgIG1vZGVsLlJlcXVlc3RIZWFkZXJzCmBgYAotIEhlYWRlciBxdWVyeSBwYXJhbSBmb3IgZW5kcG9pbnRzLCBwYXJzZXMgdGhlIHF1ZXJ5IHBhcmFtIGZyb20gdGhlIG1vZGVsCgojIyMjIEhlYWRlciBQYXJhbWV0ZXJzCmBgYApAUGFyYW0gICAgICAgICAgICAgIHtnb1R5cGV9CkBIZWFkZXJQYXJhbWV0ZXJzICAgUmVxdWVzdEhlYWRlcnMKYGBgCgotIHtnb1R5cGV9OiBUaGUgdHlwZSBpbiBnbyBjb2RlLiBUaGlzIHdpbGwgYmUgaWdub3JlZCB3aGVuIHtpbn0gaXMgYGZpbGVgLgotIFBhcnNlcyBwYXJhbWV0ZXJzIGZyb20gdGhlIHR5cGUgYW5kIGtlZXAgaXQgdXAgY29tcG9uZW50IHNlY3Rpb24gZm9yIHJlZmVyZW5jZQoKIyMjIyBSZXNwb25zZQpgYGAganNvbgpAU3VjY2VzcyAge3N0YXR1c30gIHtqc29uVHlwZX0gIHtnb1R5cGV9ICAgICAgIHtkZXNjcmlwdGlvbn0KQFN1Y2Nlc3MgIDIwMCAgICAgICBvYmplY3QgICAgICBVc2Vyc1Jlc3BvbnNlICAiVXNlcnNSZXNwb25zZSBKU09OIgoKQEZhaWx1cmUgIHtzdGF0dXN9ICB7anNvblR5cGV9ICB7Z29UeXBlfSAgICAgICB7ZGVzY3JpcHRpb259CkBGYWlsdXJlICA0MDAgICAgICAgb2JqZWN0ICAgICAgRXJyb3JSZXNwb25zZSAgIkVycm9yUmVzcG9uc2UgSlNPTiIKYGBgCi0ge3N0YXR1c306IFRoZSBIVFRQIHN0YXR1cyBjb2RlLgotIHtqc29uVHlwZX06IFRoZSB2YWx1ZSBjYW4gYmUgYG9iamVjdGAgb3IgYGFycmF5YC4gCi0ge2dvVHlwZX06IFRoZSB0eXBlIGluIGdvIGNvZGUuCi0ge2Rlc2NyaXB0aW9ufTogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSByZXNwb25zZS4gTXVzdCBiZSBxdW90ZWQuCgojIyMjIFJlc291cmNlICYgVGFnCmBgYCBqc29uCkBSZXNvdXJjZSB7cmVzb3VyY2V9CkBSZXNvdXJjZSB1c2VycwoKQFRhZyB7dGFnfQpAdGFnIHh4eApgYGAKCi0ge3Jlc291cmNlfSwge3RhZ306IFRhZyBvZiB0aGUgcm91dGUuCgojIyMjIFJvdXRlCgpgYGAganNvbgpAUm91dGUge3BhdGh9ICAgIHttZXRob2R9CkBSb3V0ZSAvYXBpL3VzZXIgW3Bvc3RdCmBgYAoKLSB7cGF0aH06IFRoZSBVUkwgcGF0aC4KLSB7bWV0aG9kfTogVGhlIEhUVFAgTWV0aG9kLiBNdXN0IGJlIHB1dCBpbiBicmFja2V0cy4KCiMjIyMgRW51bXMKCi0gVG8gZ2VuZXJhdGUgZW51bXMgY3JlYXRlIHR5cGUgc3RydWN0cyBmb3IgZW51bSBmaWVsZCB3aXRoIGNvbW1hLXNlcGFyYXRlZCB2YWx1ZXMgYXMgZm9sbG93czoKLSBDcmVhdGUgc3RydWN0IHR5cGUgZmllbGRzIHdpdGggQEVudW0gVGFnCi0gRXhhbXBsZSBhcyBmb2xsb3dzLQoKYGBgIGdvCi8vIEBFbnVtIENvdW50cmllc0VudW0KdHlwZSBDb3VudHJpZXNFbnVtIHN0cnVjdCB7CiAgICAvLyBDcmVhdGUgdGhlIGZpZWxkIG5hbWUgd2l0aCBzYW1lIGFzIHN0cnVjdCBuYW1lCiAgICBDb3VudHJpZXNFbnVtIHN0cmluZyBgZW51bToiaW5kaWEsY2hpbmEsbWV4aWNvLGphcGFuIiBleGFtcGxlOiJpbmRpYSJgCn0KYGBgCgojIyMjIyBIb3cgdG8gYWRkIHJlZmVyZW5jZSBvZiBFbnVtIG9uIHR5cGVzCgpgYGAgZ28KdHlwZSBSZXF1ZXN0IHN0cnVjdCB7CiAgTmFtZSBzdHJpbmcgYGpzb246Im5hbWUiIGV4YW1wbGU6IlBhcnZleiJgIAogIENvdW50cnkgc3RyaW5nIGBqc29uOiJjb3VudHJ5IiAkcmVmOiJDb3VudHJpZXNFbnVtImAKfQoKYGBgCgojIyMjIFJlc3BvbnNlIGJvZHkKWW91IG5lZWQgdG8gcHJvdmlkZSBzd2FnZ2VyIGZpZWxkcyBhcyByZWZsZWN0IHRhZ3MgaW4geW91ciBzdHJ1Y3R1cmUuIEluIGV4YW1wbGU6CmBgYGdvCnR5cGUgRmlsdGVyIHN0cnVjdCB7CglSYXRpbmcgICAgICAgaW50ICAgIGBqc29uOiJyYXRpbmciYAoJVHlwZSAgICAgICAgIHN0cmluZyBganNvbjoidHlwZSJgCglEaXN0YW5jZSAgICAgaW50NjQgIGBqc29uOiJkaXN0YW5jZSIsIG1pbmltdW06IjEiLCBtYXhpbXVtOiIxMDAiYAoJRGlzdHJpY3RDb2RlIHN0cmluZyBganNvbjoiZGlzdHJpY3RfY29kZSIsIHBhdHRlcm46IlthLXpdezJ9XFxkW2Etel1cXHNcXGRbYS16XXsyfSJgCn0KYGBgCgpBdmFpbGFibGUgZmllbGRzOgotIHR5cGUKLSBmb3JtYXQKLSByZXF1aXJlZAotIHByb3BlcnRpZXMKLSBkZXNjcmlwdGlvbgotIGl0ZW1zCi0gZXhhbXBsZQotIGRlcHJlY2F0ZWQgKGJvb2wpCi0gcmVmCi0gZW51bQotIHRpdGxlCi0gbWF4aW11bSAoZmxvYXQ2NCkKLSBleGNsdXNpdmVNYXhpbXVtIChib29sKQotIG1pbmltdW0gKGZsb2F0NjQpCi0gZXhjbHVzaXZlTWluaW11bSAoYm9vbCkKLSBtYXhMZW5ndGggKHVpbnQpCi0gbWluTGVuZ3RoICh1aW50KQotIHBhdHRlcm4KLSBtYXhJdGVtcyAodWludCkKLSBtaW5JdGVtcyAodWludCkKLSB1bmlxdWVJdGVtcyAoYm9vbCkKLSBtYXhQcm9wZXJ0aWVzICh1aW50KQotIG1pblByb3BlcnRpZXMgKHVpbnQpCi0gYWRkaXRpb25hbFByb3BlcnRpZXMgKGJvb2wpCi0gbnVsbGFibGUgKGJvb2wpCi0gcmVhZE9ubHkgKGJvb2wpCi0gd3JpdGVPbmx5IChib29sKQoKIyMjIDQuIFNlY3VyaXR5CgpJZiBhdXRob3JpemF0aW9uIGlzIHJlcXVpcmVkLCB5b3UgbXVzdCBkZWZpbmUgc2VjdXJpdHkgc2NoZW1lcyBhbmQgdGhlbiBhcHBseSB0aG9zZSB0byB0aGUgQVBJLiBBIHNjaGVtZSBpcyBkZWZpbmVkCnVzaW5nIGBAU2VjdXJpdHlTY2hlbWUgW25hbWVdIFt0eXBlXSBbcGFyYW1ldGVyc11gIGFuZCBhcHBsaWVkIGJ5CmFkZGluZyBgQFNlY3VyaXR5IFtzY2hlbWUtbmFtZV0gW3Njb3BlMV0gW3Njb3BlMl0gWy4uLl1gLgoKQWxsIGV4YW1wbGVzIGluIHRoaXMgc2VjdGlvbiB1c2UgYE15QXBpQXV0aGAgYXMgdGhlIG5hbWUuIFRoaXMgbmFtZSBjYW4gYmUgYW55dGhpbmcgeW91IGNob3NlOyBtdWx0aXBsZSBuYW1lZCBzY2hlbWVzCmFyZSBzdXBwb3J0ZWQuIEVhY2ggc2NoZW1lIG11c3QgaGF2ZSBpdHMgb3duIG5hbWUsIGV4Y2VwdCBmb3IgT0F1dGgyIHNjaGVtZXMgLSBPQXV0aDIgc3VwcG9ydHMgbXVsdGlwbGUgc2NoZW1lcyBieSB0aGUKc2FtZSBuYW1lLgoKQSBudW1iZXIgb2YgZGlmZmVyZW50IHR5cGVzIGlzIHN1cHBvcnRlZCwgdGhleSBhbGwgaGF2ZSBkaWZmZXJlbnQgcGFyYW1ldGVyczoKCnxUeXBlfERlc2NyaXB0aW9ufFBhcmFtZXRlcnN8RXhhbXBsZXwKfC0tLXwtLS18LS0tfC0tLXwKfEhUVFB8QSBIVFRQIEF1dGhlbnRpY2F0aW9uIHNjaGVtZSB1c2luZyB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcnxzY2hlbWU6IGFueSBbSFRUUCBBdXRoZW50aWNhdGlvbiBzY2hlbWVdKGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2h0dHAtYXV0aHNjaGVtZXMvaHR0cC1hdXRoc2NoZW1lcy54aHRtbCl8YEBTZWN1cml0eVNjaGVtZSBNeUFwaUF1dGggYmFzaWNgfAp8QVBJS2V5fEF1dGhvcml6YXRpb24gYnkgcGFzc2luZyBhbiBBUEkgS2V5IGFsb25nIHdpdGggdGhlIHJlcXVlc3R8aW46IExvY2F0aW9uIG9mIHRoZSBBUEkgS2V5LCBvcHRpb25zIGFyZSBgaGVhZGVyYCwgYHF1ZXJ5YCBhbmQgYGNvb2tpZWAuIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBmaWVsZCB3aGVyZSB0aGUgQVBJIEtleSBtdXN0IGJlIHNldHxgQFNlY3VyaXR5U2NoZW1lIE15QXBpQXV0aCBhcGlLZXkgaGVhZGVyIFgtTXlDdXN0b21IZWFkZXJgfAp8T3BlbklkQ29ubmVjdHxEZWxlZ2F0aW5nIHNlY3VyaXR5IHRvIGEga25vd24gT3BlbklkIHNlcnZlcnx1cmw6IFRoZSBVUkwgb2YgdGhlIE9wZW5JZCBzZXJ2ZXJ8YEBTZWN1cml0eVNjaGVtZSBNeUFwaUF1dGggb3BlbklkQ29ubmVjdCBodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYHwKfE9BdXRoMkF1dGhDb2RlfFVzaW5nIHRoZSAiQXV0aGVudGljYXRpb24gQ29kZSIgZmxvdyBvZiBPQXV0aDJ8YXV0aG9yaXphdGlvblVybCwgdG9rZW5Vcmx8YEBTZWN1cml0eVNjaGVtZSBNeUFwaUF1dGggb2F1dGgyQXV0aENvZGUgL29hdXRoL2F1dGhvcml6ZSAvb2F1dGgvdG9rZW5gfCAKfE9BdXRoMkltcGxpY2l0fFVzaW5nIHRoZSAiSW1wbGljaXQiIGZsb3cgb2YgT0F1dGgyfGF1dGhvcml6YXRpb25Vcmx8YEBTZWN1cml0eVNjaGVtZSBNeUFwaUF1dGggb2F1dGgySW1wbGljaXQgL29hdXRoL2F1dGhvcml6ZXwgCnxPQXV0aDJSZXNvdXJjZU93bmVyQ3JlZGVudGlhbHN8VXNpbmcgdGhlICJSZXNvdXJjZSBPd25lciBDcmVkZW50aWFscyIgZmxvdyBvZiBPQXV0aDJ8YXV0aG9yaXphdGlvblVybHxgQFNlY3VyaXR5U2NoZW1lIE15QXBpQXV0aCBvYXV0aDJSZXNvdXJjZU93bmVyQ3JlZGVudGlhbHMgL29hdXRoL3Rva2VufCAKfE9BdXRoMkNsaWVudENyZWRlbnRpYWxzfFVzaW5nIHRoZSAiQ2xpZW50IENyZWRlbnRpYWxzIiBmbG93IG9mIE9BdXRoMnxhdXRob3JpemF0aW9uVXJsfGBAU2VjdXJpdHlTY2hlbWUgTXlBcGlBdXRoIG9hdXRoMkNsaWVudENyZWRlbnRpYWxzIC9vYXV0aC90b2tlbnwgCgpBbnkgdGV4dCB0aGF0IGlzIHByZXNlbnQgYWZ0ZXIgdGhlIGxhc3QgcGFyYW1ldGVyIHdpbCBiZSB1c2VkIGFzIHRoZSBkZXNjcmlwdGlvbi4gRm9yCmluc3RhbmNlIGBAU2VjdXJpdHlTY2hlbWUgTXlBcGlBdXRoIGJhc2ljIExvZ2luIHdpdGggeW91ciBhZG1pbiBjcmVkZW50aWFsc2AuCgpPbmNlIGFsbCBzZWN1cml0eSBzY2hlbWVzIGhhdmUgYmVlbiBkZWZpbmVkLCB0aGV5IG11c3QgYmUgY29uZmlndXJlZC4gVGhpcyBpcyBkb25lIHdpdGggdGhlIGBAU2VjdXJpdHlgIGNvbW1lbnQuCkRlcGVuZGluZyBvbiB0aGUgYHR5cGVgIG9mIHRoZSBzY2hlbWUsIHNjb3BlcyAoc2VlIGJlbG93KSBtYXkgYmUgc3VwcG9ydGVkLiAqQXQgdGhlIG1vbWVudCwgaXQgaXMgb25seSBwb3NzaWJsZSB0bwpjb25maWd1cmUgc2VjdXJpdHkgZm9yIHRoZSBlbnRpcmUgc2VydmljZSouCgpgYGAgZ28KLy8gQFNlY3VyaXR5IE15QXBpQXV0aCByZWFkX3VzZXIgd3JpdGVfdXNlcgpgYGAKCiMjIyMgU2NvcGVzCgpGb3IgT0F1dGgyIHNlY3VyaXR5IHNjaGVtZXMsIGl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBzY29wZXMgdXNpbmcKdGhlIGBAU2VjdXJpdHlTY29wZSBbc2NoZW1hLW5hbWVdIFtzY29wZS1jb2RlXSBbc2NvcGUtZGVzY3JpcHRpb25dYCBjb21tZW50LgoKYGBgIGdvCi8vIEBTZWN1cml0eVNjb3BlIE15QXBpQXV0aCByZWFkX3VzZXIgUmVhZCBhIHVzZXIgZnJvbSB0aGUgc3lzdGVtCi8vIEBTZWN1cml0eVNjb3BlIE15QXBpQXV0aCB3cml0ZV91c2VyIFdyaXRlIGEgdXNlciB0byB0aGUgc3lzdGVtCmBgYAoKIyMjIDUuIExpbWl0YXRpb25zCgotIE9ubHkgc3VwcG9ydCBnbyBtb2R1bGUuCi0gQW5vbnltb3VzIHN0cnVjdCBmaWVsZCBpcyBub3Qgc3VwcG9ydGVkLgoKIyMjIDYuIFJlZmVyZW5jZXMKCi0gVGhlIHByb2plY3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyByZXBvc2l0b3JpZXMgLQotIFt5dmFzaXlhcm92L3N3YWdnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS95dmFzaXlhcm92L3N3YWdnZXIpCi0gW3V1ZGFzaHIvZ28tbW9kdWxlXShodHRwczovL2dpdGh1Yi5jb20vdXVkYXNoci9nby1tb2R1bGUpCi0gW21pa3VuYWxwaGEvZ29hc10oaHR0cHM6Ly9naXRodWIuY29tL21pa3VuYWxwaGEvZ29hcykK readmeEtag: '"5c182058c40ce228bfd9e012db5c1e96501930e0"' readmeLastModified: Wed, 19 Jun 2024 06:12:07 GMT repositoryId: 373055212 description: Swagger 3.0 implementation for go created: '2021-06-02T05:54:10Z' updated: '2024-08-30T14:26:21Z' language: Go archived: false stars: 102 watchers: 5 forks: 10 owner: parvez3019 logo: https://avatars.githubusercontent.com/u/10362597?v=4 license: MIT repoEtag: '"1ddcb7c76aed8fb8e0592160e907070ffc111c44763a0a34afe0ce04bf622766"' repoLastModified: Fri, 30 Aug 2024 14:26:21 GMT foundInMaster: true category: Server Implementations id: 00ef51b7bb2f326af2de90739df6907b - source: openapi3 tags repository: https://github.com/oai/tools.openapis.org v3: true id: cf25f8e3e1410d3084950f72c6067f4e repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFRvb2xpbmcKClRoaXMgcHJvamVjdCBpcyBwcm92aWRlZCBieSB0aGUgT3BlbkFQSSBJbml0aWF0aXZlIGFzIGEgbWVhbnMgdG8gY2VudHJhbGl6ZSBlY29zeXN0ZW0gaW5mb3JtYXRpb24gb24gT3BlbkFQSS1yZWxhdGVkIHRvb2xpbmcuIEl0IGxldmVyYWdlcyBvcGVuLXNvdXJjZSBwcm9qZWN0cyB0aGF0IGhhdmUgZ29uZSBiZWZvcmUgdG8gcHJvdmlkZSBhIGNvbnNvbGlkYXRlZCBsaXN0IG9mIHRvb2xpbmcuCgpUaGUgcHJvamVjdCBpcyBzcGxpdCBpbnRvIHR3byBmZWF0dXJlczoKCi0gQSBsaXN0IG9mIHRvb2xpbmcgbWVyZ2VkIGZyb20gc291cmNlcyBhY3Jvc3MgdGhlIGludGVyd2VicyB0aGF0IHVzZXJzIGNhbiBncmFiIGFuZCBzbGljZSBhbmQgZGljZSBhcyB0aGV5IHNlZSBmaXQuCi0gQSB3ZWJzaXRlIHRoYXQgYWxsb3dzIHVzZXJzIHRvIHNlYXJjaCBhbmQgaW5zcGVjdCB0aGUgdG9vbGluZyBkYXRhIGZpcnN0LWhhbmQuCgpFYWNoIGlzIGV4cGFuZGVkIHVwb24gaW4gdGhlIHNlY3Rpb25zIGJlbG93LgoKVGhlIHByb2plY3QgS2FuYmFuIGJvYXJkIGZvciBUb29saW5nIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzQKCiMjIFJvbGwgQ2FsbAoKVGhlIGZvbGxvd2luZyBwcm9qZWN0cyBhcmUgYmVpbmcgbGV2ZXJhZ2VkIHRvIHByb3ZpZGUgdGhlIG1ham9yaXR5IG9mIHRoZSBzb3VyY2UgaW5mb3JtYXRpb24uCgp8IE5hbWUgICAgICAgICAgfCBTb3VyY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBPcGVuQVBJLlRvb2xzIHwgaHR0cHM6Ly9naXRodWIuY29tL2FwaXN5b3V3b250aGF0ZS9vcGVuYXBpLnRvb2xzIHwgQVBJcyBZb3UgV29uJ3QgSGF0ZSBlZmZvcnRzIHRvIGNyZWF0ZSB1YmVyIGxpc3Qgb2YgdG9vbGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFQSXMuZ3VydSAgICAgfCBodHRwczovL2dpdGh1Yi5jb20vYXBpcy1ndXJ1L2F3ZXNvbWUtb3BlbmFwaTMgICAgfCBSZXBvc2l0b3J5L3NpdGUgYmFzZWQgb24gdGFnZ2VkIHJlcG9zaXRvcmllcyBpbiBHaXRodWIuPGJyPlRoaXMgcmVwb3NpdG9yeSByZXVzZXMgdGhlIGJ1aWxkIGFwcHJvYWNoIHJhdGhlciB0aGFuIHB1bGxpbmcgdGhlIGxpc3QgZnJvbSB0aGUgc291cmNlLiB8CgojIyBIb3cgQ2FuIFlvdSBIZWxwPwoKVGhpcyBwcm9qZWN0IGlzIGRlc2lnbmVkIHRvIGNvbnRpbnVlIHRoZSB3b3JrIG9mIEFQSXMuZ3VydSBhbmQgY29sbGVjdCBkYXRhIGJhc2VkIG9uIHJlcG9zaXRvcmllcyB0YWdnZWQgd2l0aCBhIHRvcGljLgoKSWYgeW91IHdhbnQgeW91ciBwcm9qZWN0IGluY2x1ZGVkIGluIHRoZSB0b29saW5nIGxpc3QgdGFnIHlvdXIgcHJvamVjdCB3aXRoIG9uZS1vci1tb3JlIG9mIHRoZSBmb2xsb3dpbmcgdG9waWNzOgoKLSBgc3dhZ2dlcmAgb3IgYG9wZW5hcGkyYCAoRm9yIFN3YWdnZXIvT3BlbkFQSSAyLjAgc3VwcG9ydCkuCi0gYG9wZW5hcGkzYCAoRm9yIE9wZW5BUEkgMy4wIHN1cHBvcnQpLgotIGBvcGVuYXBpMzFgIChGb3IgT3BlbkFQSSAzLjEgc3VwcG9ydCkuCgpJZiB5b3UgYXJlbid0IGZhbWlsaWFyIHdpdGggdG9waWNzIGluIEdpdEh1YiBwbGVhc2UgZm9sbG93IFt0aGlzIGd1aWRlXShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9yZXBvc2l0b3JpZXMvbWFuYWdpbmcteW91ci1yZXBvc2l0b3J5cy1zZXR0aW5ncy1hbmQtZmVhdHVyZXMvY3VzdG9taXppbmcteW91ci1yZXBvc2l0b3J5L2NsYXNzaWZ5aW5nLXlvdXItcmVwb3NpdG9yeS13aXRoLXRvcGljcykgdG8gYWRkIHRoZW0gdG8geW91ciByZXBvc2l0b3J5LgoKPiAqKl9Ob3RlOiBDb2xsZWN0aW9uIG9mIHRoZSBgc3dhZ2dlcmAvYG9wZW5hcGkyYCB0b3BpY3MgaXMgbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCAtIHNlZSBkZXBlbmRlbmNpZXMgZGVzY3JpYmVkIGluIHRoaXMgW2lzc3VlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Rvb2xpbmcvaXNzdWVzLzE5KS5fKioKCiMjIFRvb2xpbmcgTGlzdAoKVGhlIHRvb2xpbmcgbGlzdCBpcyBidWlsdCBpbiBsYXJnZWx5IHRoZSBzYW1lIGZvcm1hdCBhcyB0aGUgbWFqb3JpdHkgb2YgcHJvamVjdHMgdGhhdCBoYXZlIGJsYXplZCBhIHRyYWlsIGluIHRvb2xpbmcgYmVmb3JlICh3aGljaCBvZiBjb3Vyc2UgdGhpcyBwcm9qZWN0IHRha2VzIGZ1bGwgYWR2YW50YWdlIG9mKS4KCkluIG9yZGVyIHRvIGJyaW5nIHRoaXMgdG9nZXRoZXIgaW4gYSBzZW5zaWJsZSB3YXkgYSBHdWxwLWJhc2VkIHByb2Nlc3MgaGFzIGJlZW4gaW1wbGVtZW50ZWQuIEd1bHAgd2FzIGNob3NlbiBnaXZlbiB0aGUgcmVsYXRpdmUgZWFzZSB3aXRoIHdoaWNoIGZ1bmN0aW9ucyBjYW4gYmUgaW1wbGVtZW50ZWQgdG8gbWFzc2FnZSB0aGUgZGF0YSBzdHJlYW0gYW5kIHRvIGVuc3VyZSB0aGUgYnVpbGQgaXMgbm90IGNsb3NlbHkgY291cGxlZCB0byBhIChjb21tZXJjaWFsKSBDSSB0b29sLiBUaGVyZSBhcmUgYSBjb3VwbGUgb2YgcHJpbmNpcGxlcyBhcm91bmQgdGhlIGRlc2lnbiB3b3J0aCBzdGF0aW5nOgoKLSBUaGUgdHJhbnNmb3JtIGZ1bmN0aW9ucyB0aGF0IG1hc3NhZ2UgdGhlIGRhdGEgYXJlIGFic3RyYWN0ZWQgYXdheSBmcm9tIEd1bHAgdG8gZW5hYmxlIHRoZSBidWlsZCB0byAibGlmdC1hbmQtc2hpZnQiIHRvIGEgbmV3IGJ1aWxkIHRvb2wgYXMgcmVxdWlyZWQuCi0gUGlwZXMgYmV0d2VlbiBmdW5jdGlvbnMgYXJlIGFsd2F5cyBmb3JtYXR0ZWQgYXMgWUFNTCB0byBhbGxvdyBmb3Igc2ltcGxlIGR1bXBpbmcgb2YgdGhlIGRhdGEgZm9yIGh1bWFucyBhcHByYWlzYWwuCi0gVGhlIHNvdXJjZSBkYXRhIGNvbGxlY3Rpb24gaXMgd3JpdHRlbiBhcyBpbmRlcGVuZGVudCBwYWNrYWdlcyByZWZlcmVuY2VkIGJ5IG1ldGFkYXRhIHRvIGFsbG93IG5ldyBzb3VyY2VzIHRvIGJlICJzbG90dGVkIiBpbi4KCk5vdGUgdGhhdCBpZiBiZXR0ZXIgdG9vbHMgYXJlIGlkZW50aWZpZWQgZm9yIHRoZSBidWlsZCB0aGVuIEd1bHAgc2hvdWxkIGJlIGVhc3kgdG8gY2hhbmdlLgoKIyMjIEVudmlyb25tZW50IFZhcmlhYmxlcwoKQWNjZXNzIHRvIHRoZSBHaXRIdWIgQVBJIGlzIHJlcXVpcmVkIHRvIHJ1biB0aGUgYnVpbGQuIEFjY2VzcyBpcyBzdXBwb3J0ZWQgdGhyb3VnaCBbYmFzaWMgYXV0aGVudGljYXRpb25dKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL3Jlc3QvZ3VpZGVzL2dldHRpbmctc3RhcnRlZC13aXRoLXRoZS1yZXN0LWFwaSNhdXRoZW50aWNhdGlvbikgdXNpbmcgYSBHaXRIdWIgdXNlcm5hbWUgYW5kIGEgW3BlcnNvbmFsIGFjY2VzcyB0b2tlbl0oaHR0cHM6Ly9naXRodWIuY29tL3NldHRpbmdzL3Rva2Vucy9uZXcpIGFzIGVudmlyb25tZW50IHZhcmlhYmxlcy4KClRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSB0aGVyZWZvcmUgcmVxdWlyZWQgdG8gcnVuIHRoZSBidWlsZDoKCnwgTmFtZSAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgR0hfQVBJX1VTRVJOQU1FICAgICAgICAgIHwgR2l0SHViIHVzZXJuYW1lIHRvIGFjY2VzcyB0aGUgR2l0SHViIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR0hfQVBJX1RPS0VOICAgICAgICAgICAgIHwgT0F1dGgvUGVyc29uYWwgQWNjZXNzIFRva2VuIHRvIGFjY2VzcyB0aGUgR2l0SHViIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR0hfQVBJX0NPTkNVUlJFTkNZX1RPS0VOIHwgTnVtYmVyIG9mIHNpbXVsdGFuZW91cyBjb25uZWN0aW9ucyB0byB0aGUgR2l0SHViIEFQSS4gUmVjb21tZW5kZWQgdmFsdWUgaXMgMi48YnI+VmFsdWVzIGdyZWF0ZXIgdGhhbiAyIGFwcGVhciB0byByZXN1bHQgaW4gY29ubmVjdGlvbnMgYmVpbmcgdGhyb3R0bGVkIGFuZCB0aGUgQVBJIHJldHVybmluZyBhIGA0MDNgLiB8Cgo+ICoqWW91IG11c3QgZXhwb3J0IHRoZXNlIGJlZm9yZSBydW5uaW5nIGVpdGhlciBvZiB0aGUgZGF0YSBjb2xsZWN0aW9uIGJ1aWxkcy4qKgoKV2UndmUgdXNlZCBjdXN0b20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBHaXRIdWIgQVBJIGFjY2VzcyByYXRoZXIgdGhhbiBkZWZhdWx0IEdpdEh1YiB2YXJpYWJsZXMgcHJvdmlkZWQgYnkgQWN0aW9ucy4gVGhpcyBwcm92aWRlcyBib3RoIGEgc2VwYXJhdGlvbi1vZi1jb25jZXJucyBiZXR3ZWVuIGFjY2VzcyBjb250cm9scyBhbmQgdGhlIGJ1aWxkIG1lY2hhbmlzbSBhbmQgZW5hYmxlcyBoaWdoZXIgcmF0ZSBsaW1pdHMuCgo+IE5vdGU6IFdlIHBsYW4gdG8gaW50cm9kdWNlIGBkb3RlbnZgIHRvIGhlbHAgd2l0aCB0aGUgc2V0dGluZyBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgojIyMgRnVsbCBCdWlsZAoKVGhlIGZ1bGwgYnVpbGQgdGFrZXMgdGhlIGZvbGxvd2luZyBhcHByb2FjaDoKCi0gUmV0cmlldmUgZWFjaCB0b29saW5nIHNvdXJjZSwgaW5jbHVkaW5nIHRoZSBleGlzdGluZyBsaXN0IGF0IFtgc3JjL19kYXRhL3Rvb2xzLnlhbWxgXShzcmMvX2RhdGEvdG9vbHMueWFtbCkuCi0gQ29tYmluZSBzb3VyY2UgZGF0YSBiYXNlZCBvbiByZXBvc2l0b3J5IG5hbWUuCi0gTm9ybWFsaXNlIHByb3BlcnR5IG5hbWVzIGFjcm9zcyBzb3VyY2VzIHVzaW5nIHNpbXBsZSBzdGF0aXN0aWNzIChTw7hyZW5zZW7igJNEaWNlLCBEYW1lcmF14oCTTGV2ZW5zaHRlaW4gZGlzdGFuY2UpLgotIEdldCByZXBvc2l0b3J5IG1ldGFkYXRhIGZyb20gR2l0SHViLgotIENhdGVnb3Jpc2UgdGhlIHRvb2xzIHVzaW5nIEJheWVzaWFuIHN0YXRpc3RpY3MuCi0gV3JpdGUgdG8gW2BzcmMvX2RhdGEvdG9vbHMueWFtbGBdKHNyYy9fZGF0YS90b29scy55YW1sKS4KCkN1cnJlbnRseSB0aGlzIGJ1aWxkIGlzIHNjaGVkdWxlZCB1c2luZyBbR2l0SHViIEFjdGlvbnNdKC5naXRodWIvd29ya2Zsb3dzL2Z1bGwueWFtbCkgYW5kIHJ1bnMgb25jZSBhIHdlZWsgb24gU3VuZGF5LgoKVGhlIHNjaGVkdWxlIHdpbGwgYmUgcmV2aWV3ZWQgYXMgd2UgY29sbGVjdCBkYXRhIHRvIHNlZSBpZiBleGVjdXRpbmcgaXQgd2l0aCBncmVhdGVyIGZyZXF1ZW5jeSB3b3VsZCBiZSBiZW5lZmljaWFsLgoKVG8gcnVuIHRoZSBmdWxsIGJ1aWxkIGxvY2FsbHk6CgpgYGBiYXNoCnlhcm4gaW5zdGFsbAoKR0hfQVBJX1VTRVJOQU1FPTx1c2VybmFtZT4gR0hfQVBJX1RPS0VOPTxwZXJzb25hbC1hY2Nlc3MtdG9rZW4+IEdIX0FQX0NPTkNVUlJFTkNZX0xJTUlUPTIKZXhwb3J0IEdIX0FQSV9VU0VSTkFNRSBHSF9BUElfVE9LRU4gR0hfQVBfQ09OQ1VSUkVOQ1lfTElNSVQKeWFybiBydW4gYnVpbGQ6ZGF0YTpmdWxsCmBgYAoKIyMjIE1ldGFkYXRhIFVwZGF0ZQoKVGhlIGdvYWwgb2YgdGhlIG1ldGFkYXRhIHVwZGF0ZSBpcyB0byBwcm92aWRlIGNvbnNpc3RlbnQgcmVwb3NpdG9yeSBtZXRhZGF0YSB3aXRob3V0IHNvdXJjaW5nIG5ldyB0b29saW5nOgoKLSBSZWFkIHRoZSBleGlzdGluZyBsaXN0IGF0IFtgc3JjL19kYXRhL3Rvb2xzLnlhbWxgXShzcmMvX2RhdGEvdG9vbHMueWFtbCkuCi0gR2V0IHJlcG9zaXRvcnkgbWV0YWRhdGEgZnJvbSBHaXRIdWIuCi0gV3JpdGUgdG8gW2BzcmMvX2RhdGEvdG9vbHMueWFtbGBdKHNyYy9fZGF0YS90b29scy55YW1sKS4KCkN1cnJlbnRseSB0aGlzIGJ1aWxkIGlzIHNjaGVkdWxlZCB1c2luZyBbR2l0SHViIEFjdGlvbnNdKC5naXRodWIvd29ya2Zsb3dzL21ldGFkYXRhLnlhbWwpIGFuZCBydW5zIGV2ZXJ5IGRheS4KClRoZSBzY2hlZHVsZWQgd2lsbCBiZSByZXZpZXdlZCBhcyB3ZSBjb2xsZWN0IGRhdGEgdG8gc2VlIGlmIGV4ZWN1dGluZyBpdCB3aXRoIGdyZWF0ZXIgZnJlcXVlbmN5IHdvdWxkIGJlIGJlbmVmaWNpYWwuCgpUbyBydW4gdGhlIG1ldGFkYXRhIGJ1aWxkIGxvY2FsbHk6CgpgYGBiYXNoCiMgSWYgeW91IGhhdmVuJ3QgZG9uZSB0aGlzIGFscmVhZHkKeWFybiBpbnN0YWxsCgojIElmIHlvdSBoYXZlbid0IGRvbmUgdGhpcyBhbHJlYWR5CkdIX0FQSV9VU0VSTkFNRT08dXNlcm5hbWU+IEdIX0FQSV9UT0tFTj08cGVyc29uYWwtYWNjZXNzLXRva2VuPiBHSF9BUF9DT05DVVJSRU5DWV9MSU1JVD0yCgojIElmIHlvdSBoYXZlbid0IGRvbmUgdGhpcyBhbHJlYWR5CmV4cG9ydCBHSF9BUElfVVNFUk5BTUUgR0hfQVBJX1RPS0VOIEdIX0FQX0NPTkNVUlJFTkNZX0xJTUlUCgp5YXJuIHJ1biBidWlsZDptZXRhZGF0YQpgYGAKCiMjIyBUZXN0aW5nIExvY2FsbHkKClRvIHRlc3QgbG9jYWxseSB5b3UgY2FuIGNsb25lIG9yIGZvcmsgdGhlIFRvb2xpbmcgcmVwb3NpdG9yeSBhbmQgY3JlYXRlIHlvdXJzZWxmIGEgYC5lbnZgIGZpbGUgdGhhdCBtZWV0cyB5b3VyIG5lZWRzLiBGb3IgZXhhbXBsZToKCmBgYHRleHQKZXhwb3J0IEdIX0FQSV9VU0VSTkFNRT08eW91ciBHaXRIdWIgdXNlcm5hbWU+CmV4cG9ydCBHSF9BUElfVE9LRU49PHlvdXIgR2l0SHViIHBlcnNvbmFsIGFjY2VzcyB0b2tlbj4KZXhwb3J0IEdIX0FQSV9DT05DVVJSRU5DWV9MSU1JVD0yCmV4cG9ydCBUT09MSU5HX1JFUE9TSVRPUllfT1dORVI9PHlvdXIgR2l0SHViIG9yZ2FuaXNhdGlvbiBvciB1c2VybmFtZT4KZXhwb3J0IFRPT0xJTkdfUkVQT1NJVE9SWV9SRVBPX05BTUU9VG9vbGluZwpgYGAKCldpdGggdGhpcyBpbi1oYW5kIHRoZXJlJ3MgYSBidW5jaCBvZiBvcHRpb25zIHRvIHNlbmQgaW50byBlaXRoZXIgYHlhcm4gcnVuIGJ1aWxkOmZ1bGxgIG9yIGB5YXJuIHJ1biBidWlsZDptZXRhZGF0YWA6CgotIGAtLW1ldGFkYXRhYDogSWYgeW91IGRvbid0IHdhbnQgdG8gcnVuIGV2ZXJ5dGhpbmcgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBkcml2ZXMgdGhlIGJ1aWxkIChtb3JlIG9uIHRoaXMgYmVsb3cpLgotIGAtLWVudi1maWxlYDogU3VwcGx5IGFuIGFsdGVybmF0aXZlIC5lbnYgZmlsZSBhcyBkZXNjcmliZWQgYWJvdmUuCi0gYC0tb3V0cHV0LWRpcmA6IENoYW5nZSB3aGVyZSB5b3Ugd3JpdGUgdGhlIGB0b29scy55YW1sYCBmaWxlLgotIGAtLWRyeS1ydW5gOiBEb24ndCBkbyBkZXN0cnVjdGl2ZSB0aGluZ3MgbGlrZSBjbG9zaW5nIGlzc3VlcyAoYWN0dWFsbHkgdGhpcyBpcyBhbGwgaXQgZG9lcyByaWdodCBub3cpLgoKIyMjIyBDb25maWd1cmF0aW9uIEZpbGUKClRoZSBidWlsZCBpcyBkcml2ZW4gYnkgYSBjb25maWd1cmF0aW9uIGZpbGUsIHRoZSBkZWZhdWx0IGJlaW5nIFtgZ3VscGZpbGUuanMvbWV0YWRhdGEuanNvbmBdKGd1bHBmaWxlLmpzL21ldGFkYXRhLmpzb24pIHdoaWNoIGlzIHZhbGlkYXRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGJ1aWxkIHVzaW5nIHRoZSBKU09OIFNjaGVtYSBmb3VuZCBpbiBbYHZhbGlkYXRlLW1ldGFkYXRhLmpzYF0obGliL2RhdGEvdHJhbnNmb3JtL3ZhbGlkYXRlLW1ldGFkYXRhLmpzKS4KClRoZSBwdXJwb3NlIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgdG8gZGVmaW5lIHdoYXQgZGF0YSBzb3VyY2VzIGFyZSBjb2xsZWN0ZWQuIEl0IGNvbnRhaW5zIGFuIGFycmF5IG9mIG9iamVjdHMsIGVhY2ggd2l0aCB0d28gbWFuZGF0b3J5IHByb3BlcnRpZXM6CgotIGB0aXRsZWA6IFRoZSBuYW1lIG9mIGRhdGEgcHJvY2Vzc29yLiBUaGlzIGlzIHJlY29yZGVkIGluIGB0b29scy55YW1sYCB0byBpZGVudGlmeSB3aGljaCBwcm9jZXNzb3IgcGlja2VkIHRoZSBkYXRhIHVwLgotIGBwcm9jZXNzb3JgOiBQYXRoIHRvIGEgSmF2YVNjcmlwdCBsaWJyYXJ5IHRoYXQgaW1wbGVtZW50cyB0aGUgZGF0YSBjb2xsZWN0aW9uIGxvZ2ljLgoKT3RoZXIgcHJvcGVydGllcyBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgZGF0YSBzb3VyY2UgY2FuIGJlIGRlZmluZWQgYXMgcmVxdWlyZWQuCgpUaGVzZSBkYXRhIHByb2Nlc3NvcnMgY29sbGVjdCBkYXRhIGFuZCBwYXNzIGl0IGludG8gdGhlIEd1bHAgcGlwZWxpbmUgZm9yIHByb2Nlc3NpbmcuIFRoYXQncyBhbGwgdGhleSBkbyAtIGV2ZXJ5dGhpbmcgZWxzZSBpcyBkb25lIGRvd25zdHJlYW0gaW4gdGhlIEphdmFTY3JpcHQgbGlicmFyaWVzIGZvdW5kIGluIHRoZSBbYHRyYW5zZm9ybWBdKGxpYi9kYXRhL3RyYW5zZm9ybS8pIGRpcmVjdG9yeS4KCklmIHlvdSB3YW50IHRvIHRlc3Qgb25seSBhIHN1YnNldCBvZiBkYXRhIHNvdXJjZXMgaW4gaXNvbGF0aW9uIHlvdSBjYW4gY3JlYXRlIHlvdXIgb3duIGNvbmZpZ3VyYXRpb24gZmlsZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUgdGVzdGluZyB0aGUgR2l0SHViIGlzc3VlLXNvdXJjZWQgZGF0YSBwcm9jZXNzb3IgeW91IGNhbiBkZWZpbmUganVzdCB0aGlzIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgLSB5b3UnZCBvbmx5IGdldCB0aG9zZSB0b29scyBpbiB0aGUgcmVzdWx0YW50IGB0b29scy55YW1sYCBmaWxlLgoKWW91IHNob3VsZCBhbHNvIGNvbnNpZGVyIHdoZXRoZXIgdG8gdGVzdCB3aXRoIGEgc3Vic2V0IG9mIG1hc3RlciBkYXRhIGZyb20gYHNyYy9fZGF0YS90b29scy55YW1sYCAoYXMgaXQgaXMgdm9sdW1pbm91cykuIFlvdSBjYW4gZWRpdCB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBwb2ludCBzb21ld2hlcmUgZWxzZSBlLmcuOgoKYGBganNvbgp7CiAgInRpdGxlIjogIm1hc3RlciIsCiAgInVybCI6ICI8UGF0aCB0byB5b3VyIGFsdGVybmF0aXZlIHRvb2xzLnlhbWwgZmlsZT4iLAogICJwcm9jZXNzb3IiOiAiLi4vcHJvY2Vzc29ycy9tYXN0ZXItcHJvY2Vzc29yLmpzIgp9CmBgYAoKIyMgV2Vic2l0ZQoKVGhlIHdlYnNpdGUgaXMgYSBzdGF0aWMgc2l0ZSBidWlsdCBmcm9tIHRoZSB0b29saW5nIGRhdGEuIEl0IGlzIGV4cG9zZWQgYnkgR2l0SHViIFBhZ2VzIGFuZCBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vdG9vbHMub3BlbmFwaXMub3JnLykuCgpUaGUgZGVzaWduIG9mIHRoZSBzaXRlIGlzIGludGVudGlvbmFsbHkgImxlYW4iLCBhbmQgcHJvdmlkZXMgdGhlIHRvb2xpbmcgbGlzdCBieSBjYXRlZ29yeSAodGhlIGNhdGVnb3Jpc2F0aW9uIGJlaW5nIGRvbmUgYXMgZGVzY3JpYmVkIFthYm92ZV0oI2Z1bGwtYnVpbGQpKS4KCiMjIyBCdWlsZAoKVGhlIHNpdGUgdXNlcyB0aGUgW2VsZXZlbnR5XShodHRwczovL3d3dy4xMXR5LmRldi8pIHNpdGUgZ2VuZXJhdG9yIGFuZCBpcyByZWJ1aWx0IGFmdGVyIGVhY2ggW2Z1bGxdKCNmdWxsLWJ1aWxkKSBhbmQgW21ldGFkYXRhXSgjbWV0YWRhdGEtdXBkYXRlKSBidWlsZCwgdXNpbmcgdGhlIG5ld2x5LXVwZGF0ZWQgZGF0YSBhdCBbYHNyYy9fZGF0YS90b29scy55YW1sYF0oc3JjL19kYXRhL3Rvb2xzLnlhbWwpLgoKVG8gcnVuIHRoZSBzaXRlIGJ1aWxkIGxvY2FsbHk6CgpgYGBiYXNoCnlhcm4gaW5zdGFsbAp5YXJuIHJ1biBidWlsZDpzaXRlCmBgYAoKPiBOb3RlIHRoZSBidWlsZCB1c2VzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGBIT1NURURfQVRgIHRvIGFsbG93IHRoZSBzaXRlIHRvIGJlIGRlcGxveWVkIHRvIGFuIGFsdGVybmF0aXZlIHJvb3QgVVJJIGFuZCB0aGVyZWZvcmUgYW1lbmQgdGhlICJIb21lIiBidXR0b24uIFRoaXMgaXMgZm9yIHRoZSBiZW5lZml0IG9mIEdpdEh1YiBQYWdlcywgd2hlcmUgdGhlIHNpdGUgaXMgZGVwbG95ZWQgdG8gYC9Ub29saW5nYC4gVW5sZXNzIHlvdSBuZWVkIHRvIG1vdmUgVVJMIHRoZW4ganVzdCBsZWF2ZSB0aGlzIHVuc2V0LgoKIyMjIFJ1bm5pbmcgbG9jYWxseQoKSWYgeW91IHdhbnQgdG8gcnVuIHRoZSBzaXRlIGxvY2FsbHkgaXQncyBqdXN0IGRhbW4gc2ltcGxlOgoKYGBgYmFzaAp5YXJuIGluc3RhbGwKeWFybiBydW4gc2VydmUKYGBgCgpUaGUgZGV2ZWxvcG1lbnQgc2VydmVyIGlzIHNldCB0byByZWxvYWQgb24gY2hhbmdlLiBOb3cgaXNuJ3QgdGhhdCBjb252ZW5pZW50LgoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2UgcmVmZXIgdG8gdGhlIFtDb250cmlidXRpbmcgR3VpZGVdKENPTlRSSUJVVElORy5tZCkK readmeEtag: '"418a6337920aaf36b318a1b8cd9a73b4cdd17a11"' readmeLastModified: Fri, 16 Aug 2024 03:32:30 GMT repositoryId: 448083351 description: >- A collection of open-source and commercial tools for creating your APIs with OpenAPI - Sourced from and published for the community created: '2022-01-14T19:24:14Z' updated: '2024-09-05T03:31:11Z' language: JavaScript archived: false stars: 96 watchers: 12 forks: 26 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 repoEtag: '"57b7356474ff9634ff4feec62bd85eb7bce573a9222965861ea29d0f21ea9f53"' repoLastModified: Thu, 05 Sep 2024 03:31:11 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/oai/tooling - source: - openapi3 tags - openapi31 tags repository: https://github.com/python-openapi/openapi-schema-validator v3: true id: 3e4ac3612c445ce7087449f67b501d73 repositoryMetadata: base64Readme: >- KioqKioqKioqKioqKioqKioqKioqKioqCm9wZW5hcGktc2NoZW1hLXZhbGlkYXRvcgoqKioqKioqKioqKioqKioqKioqKioqKioKCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yLnN2ZwogICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yCi4uIGltYWdlOjogaHR0cHM6Ly90cmF2aXMtY2kub3JnL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvci5zdmc/YnJhbmNoPW1hc3RlcgogICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRob24tb3BlbmFwaS9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3IKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvcHl0aG9uLW9wZW5hcGkvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yL21hc3Rlci5zdmc/c3R5bGU9ZmxhdAogICAgIDp0YXJnZXQ6IGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvcHl0aG9uLW9wZW5hcGkvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yP2JyYW5jaD1tYXN0ZXIKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3Iuc3ZnCiAgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9vcGVuYXBpLXNjaGVtYS12YWxpZGF0b3IKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZm9ybWF0L29wZW5hcGktc2NoZW1hLXZhbGlkYXRvci5zdmcKICAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvcgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9zdGF0dXMvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yLnN2ZwogICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yCgpBYm91dAojIyMjIwoKT3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yIGlzIGEgUHl0aG9uIGxpYnJhcnkgdGhhdCB2YWxpZGF0ZXMgc2NoZW1hIGFnYWluc3Q6CgoqIGBPcGVuQVBJIFNjaGVtYSBTcGVjaWZpY2F0aW9uIHYzLjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI3NjaGVtYU9iamVjdD5gX18gd2hpY2ggaXMgYW4gZXh0ZW5kZWQgc3Vic2V0IG9mIHRoZSBgSlNPTiBTY2hlbWEgU3BlY2lmaWNhdGlvbiBXcmlnaHQgRHJhZnQgMDAgPGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvPmBfXy4KKiBgT3BlbkFQSSBTY2hlbWEgU3BlY2lmaWNhdGlvbiB2My4xIDxodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjEuMC5tZCNzY2hlbWFPYmplY3Q+YF9fIHdoaWNoIGlzIGFuIGV4dGVuZGVkIHN1cGVyc2V0IG9mIHRoZSBgSlNPTiBTY2hlbWEgU3BlY2lmaWNhdGlvbiBEcmFmdCAyMDIwLTEyIDxodHRwOi8vanNvbi1zY2hlbWEub3JnLz5gX18uCgoKRG9jdW1lbnRhdGlvbgojIyMjIyMjIyMjIyMjCgpDaGVjayBkb2N1bWVudGF0aW9uIHRvIHNlZSBtb3JlIGRldGFpbHMgYWJvdXQgdGhlIGZlYXR1cmVzLiBBbGwgZG9jdW1lbnRhdGlvbiBpcyBpbiB0aGUgImRvY3MiIGRpcmVjdG9yeSBhbmQgb25saW5lIGF0IGBvcGVuYXBpLXNjaGVtYS12YWxpZGF0b3IucmVhZHRoZWRvY3MuaW8gPGh0dHBzOi8vb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yLnJlYWR0aGVkb2NzLmlvPmBfXwoKCkluc3RhbGxhdGlvbgojIyMjIyMjIyMjIyMKClJlY29tbWVuZGVkIHdheSAodmlhIHBpcCk6CgouLiBjb2RlLWJsb2NrOjogY29uc29sZQoKICAgcGlwIGluc3RhbGwgb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gZG93bmxvYWQgdGhlIGNvZGUgYW5kIGluc3RhbGwgZnJvbSB0aGUgcmVwb3NpdG9yeToKCi4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCgogICBwaXAgaW5zdGFsbCAtZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvci5naXQjZWdnPW9wZW5hcGlfc2NoZW1hX3ZhbGlkYXRvcgoKClVzYWdlCiMjIyMjCgpUbyB2YWxpZGF0ZSBhbiBPcGVuQVBJIHYzLjEgc2NoZW1hOgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgZnJvbSBvcGVuYXBpX3NjaGVtYV92YWxpZGF0b3IgaW1wb3J0IHZhbGlkYXRlCgogICAjIEEgc2FtcGxlIHNjaGVtYQogICBzY2hlbWEgPSB7CiAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgIm5hbWUiCiAgICAgICBdLAogICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICB9LAogICAgICAgICAgICJhZ2UiOiB7CiAgICAgICAgICAgICAgICJ0eXBlIjogWyJpbnRlZ2VyIiwgIm51bGwiXSwKICAgICAgICAgICAgICAgImZvcm1hdCI6ICJpbnQzMiIsCiAgICAgICAgICAgICAgICJtaW5pbXVtIjogMCwKICAgICAgICAgICB9LAogICAgICAgICAgICJiaXJ0aC1kYXRlIjogewogICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAiZm9ybWF0IjogImRhdGUiLAogICAgICAgICAgIH0sCiAgICAgICAgICAgImFkZHJlc3MiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICdhcnJheScsCiAgICAgICAgICAgICAgICAicHJlZml4SXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgeyAidHlwZSI6ICJudW1iZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgeyAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgeyAiZW51bSI6IFsiU3RyZWV0IiwgIkF2ZW51ZSIsICJCb3VsZXZhcmQiXSB9LAogICAgICAgICAgICAgICAgICAgIHsgImVudW0iOiBbIk5XIiwgIk5FIiwgIlNXIiwgIlNFIl0gfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJpdGVtcyI6IEZhbHNlLAogICAgICAgICAgICB9CiAgICAgICB9LAogICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogRmFsc2UsCiAgIH0KCiAgICMgSWYgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZCBieSB2YWxpZGF0ZSgpLCB0aGUgaW5zdGFuY2UgaXMgdmFsaWQuCiAgIHZhbGlkYXRlKHsibmFtZSI6ICJKb2huIiwgImFnZSI6IDIzLCAiYWRkcmVzcyI6IFsxNjAwLCAiUGVubnN5bHZhbmlhIiwgIkF2ZW51ZSJdfSwgc2NoZW1hKQoKICAgdmFsaWRhdGUoeyJuYW1lIjogIkpvaG4iLCAiY2l0eSI6ICJMb25kb24ifSwgc2NoZW1hKQoKICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgLi4uCiAgIFZhbGlkYXRpb25FcnJvcjogQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGFyZSBub3QgYWxsb3dlZCAoJ2NpdHknIHdhcyB1bmV4cGVjdGVkKQoKQnkgZGVmYXVsdCwgdGhlIGxhdGVzdCBPcGVuQVBJIHNjaGVtYSBzeW50YXggaXMgZXhwZWN0ZWQuCgpGb3IgbW9yZSBkZXRhaWxzIHJlYWQgYWJvdXQgYFZhbGlkYXRpb24gPGh0dHBzOi8vb3BlbmFwaS1zY2hlbWEtdmFsaWRhdG9yLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC92YWxpZGF0aW9uLmh0bWw+YF9fLgoKUmVsYXRlZCBwcm9qZWN0cwojIyMjIyMjIyMjIyMjIyMjCiogYG9wZW5hcGktY29yZSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktY29yZT5gX18KICAgUHl0aG9uIGxpYnJhcnkgdGhhdCBhZGRzIGNsaWVudC1zaWRlIGFuZCBzZXJ2ZXItc2lkZSBzdXBwb3J0IGZvciB0aGUgT3BlbkFQSS4KKiBgb3BlbmFwaS1zcGVjLXZhbGlkYXRvciA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1vcGVuYXBpL29wZW5hcGktc3BlYy12YWxpZGF0b3I+YF9fCiAgIFB5dGhvbiBsaWJyYXJ5IHRoYXQgdmFsaWRhdGVzIE9wZW5BUEkgU3BlY3MgYWdhaW5zdCB0aGUgT3BlbkFQSSAyLjAgKGFrYSBTd2FnZ2VyKSBhbmQgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbgo= readmeEtag: '"5d8b66ff8d4ebe6abb9e4bf725860d6ec4e1defe"' readmeLastModified: Sat, 13 Jul 2024 06:54:27 GMT repositoryId: 245119225 description: >- OpenAPI schema validator is a Python library that validates schema against OpenAPI Schema Specification v3.0 and v3.1 created: '2020-03-05T09:23:39Z' updated: '2024-09-05T16:20:56Z' language: Python archived: false stars: 98 watchers: 5 forks: 29 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: BSD-3-Clause repoEtag: '"0221a454624578fb770e14f88bd306f265cd54f5dc66cf71f154a6c576f0f58d"' repoLastModified: Thu, 05 Sep 2024 16:20:56 GMT category: Parsers oldLocations: - https://github.com/p1c2u/openapi-schema-validator foundInMaster: true v3_1: true - source: openapi3 tags repository: https://github.com/davidmoten/openapi-to-plantuml v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXRvLXBsYW50dW1sCjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kYXZpZG1vdGVuL29wZW5hcGktdG8tcGxhbnR1bWwvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sIj48aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL2RhdmlkbW90ZW4vb3BlbmFwaS10by1wbGFudHVtbC9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnIi8+PC9hPjxici8+ClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9kYXZpZG1vdGVuL29wZW5hcGktdG8tcGxhbnR1bWwvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhdmlkbW90ZW4vb3BlbmFwaS10by1wbGFudHVtbCk8YnIvPgpbIVtNYXZlbiBDZW50cmFsXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvY29tLmdpdGh1Yi5kYXZpZG1vdGVuL29wZW5hcGktdG8tcGxhbnR1bWwvYmFkZ2Uuc3ZnP3N0eWxlPWZsYXQpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvY29tLmdpdGh1Yi5kYXZpZG1vdGVuL29wZW5hcGktdG8tcGxhbnR1bWwpPGJyLz4KCkphdmEgbGlicmFyeSB0byBnZW5lcmF0ZSBhIFtQbGFudFVNTF0oaHR0cHM6Ly9wbGFudHVtbC5jb20pIENsYXNzIERpYWdyYW0gKHN1cHBsZW1lbnRlZCB3aXRoIHBhdGggaW5mb3JtYXRpb24pIGZyb20gYW4gT3BlbkFQSSAzLjAgZGVmaW5pdGlvbiAoWUFNTCBvciBKU09OKS4gCgpUcnkgaXQgb25saW5lIFtoZXJlXShodHRwczovL29wZW5hcGktdG8tcHVtbC5kYXZpZG1vdGVuLm9yZy9wcm9kL3NpdGUvaW5kZXguaHRtbCkuCgoqKkZlYXR1cmVzKioKClN1cHBvcnRzIGFsbCBmZWF0dXJlcyBvZiBPcGVuQVBJIDMuMCBpbmNsdWRpbmcKCiogTWl4ZWQgdHlwZXMgKCpvbmVPZiosICphbnlPZiosICphbGxPZiopIAoqIE11bHRpcGxlIGxldmVscyBvZiBpbmRpcmVjdGlvbiAoYCRyZWZgIC0+IGAkcmVmYCBmb3IgZXhhbXBsZSkgCiogTXVsdGlwbGUgcmVzcG9uc2UgY29udGVudCB0eXBlcwoqIENhbiBwcm9kdWNlIGRpYWdyYW0tcGVyLXBhdGggKGdyZWF0IGZvciBsYXJnZSBBUElzKQoKKipTdGF0dXM6KiogUmVsZWFzZWQgdG8gTWF2ZW4gQ2VudHJhbCAKCioqTGltaXRhdGlvbnMqKgoKKiBPbmx5IGhhbmRsZXMgaW50ZXJuYWwgcmVmZXJlbmNlcyAoIiMvKiIpLCB0aGF0IGlzIHRoZSB5YW1sIGZpbGUgc2hvdWxkIGJlIHNlbGYtY29udGFpbmVkLiBBcyBvZiAwLjEuOSBleHRlcm5hbCByZWZzIGFyZSBkaXNwbGF5ZWQgYnV0IG5vdCBleHBsb2RlZC4gRnVsbCBleHRlcm5hbCByZWZlcmVuY2Ugc3VwcG9ydCBpcyBiZWluZyBjb25zaWRlcmVkLgoKKipUT0RPKioKKiBNb2RlbCAqQ2FsbGJhY2tzKgoqIE1vZGVsICphZGRpdGlvbmFsUHJvcGVydGllcyoKCltvcGVuYXBpLWV4YW1wbGUueW1sXShzcmMvdGVzdC9yZXNvdXJjZXMvb3BlbmFwaS1leGFtcGxlLnltbCk6IAoKPGltZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZSIgc3JjPSJzcmMvZG9jcy9vcGVuYXBpLWV4YW1wbGUuc3ZnIi8+CgojIyBIb3cgdG8gYnVpbGQKCmBgYGJhc2gKbXZuIGNsZWFuIGluc3RhbGwKYGBgCgojIyBIb3cgdG8gcXVpY2tseSBjb252ZXJ0IHlvdXIgT3BlbkFQSSBkZWZpbml0aW9uCgpUaGUgZWFzaWVzdCB0aGluZyB0byBkbyBpcyB0byB1c2UgdGhlIFtvbmxpbmUgY29udmVydGVyXShodHRwczovL29wZW5hcGktdG8tcHVtbC5kYXZpZG1vdGVuLm9yZy9wcm9kL3NpdGUvaW5kZXguaHRtbCkuIElmIHlvdXIgZGVmaW5pdGlvbiBpcyBsYXJnZSB0aGVuIFBsYW50VGV4dCBtYXkgcmVmdXNlIHRvIHJlbmRlciBpdCAodGhlIFBsYW50IFVNTCB0ZXh0IGlzIGVuY29kZWQgYW5kIGFkZGVkIHRvIHRoZSBQbGFudFRleHQgdXJsIHdoaWNoIGNhbiBnZXQgdG9vIGxvbmcpLiBJbiB0aGF0IGNhc2UganVzdCBhZGQgeW91ciB5YW1sIGZpbGUgdG8gYHNyYy90ZXN0L3Jlc291cmNlcy9kZW1vL2AgZGlyZWN0b3J5IGFuZCBydW4gYG12biB0ZXN0YC4gVGhlIGdlbmVyYXRlZCBpbWFnZSB3aWxsIGJlIHNhdmVkIGluIGB0YXJnZXQvZGVtb3NgLgoKIyMgR2V0dGluZyBzdGFydGVkCkFkZCB0aGlzIGRlcGVuZGVuY3kgdG8geW91ciBwb20ueG1sOgoKYGBgeG1sCjxkZXBlbmRlbmN5PgogIDxncm91cElkPmNvbS5naXRodWIuZGF2aWRtb3RlbjwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5vcGVuYXBpLXRvLXBsYW50dW1sPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPlZFUlNJT05fSEVSRTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCk9yIHVzZSB0aGUgc3RhbmRhbG9uZSAqamFyLXdpdGgtZGVwZW5kZW5jaWVzKiBhcnRpZmFjdCBmcm9tIFtNYXZlbiBDZW50cmFsXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9Zzpjb20uZ2l0aHViLmRhdmlkbW90ZW4lMjBBTkQlMjBhOm9wZW5hcGktdG8tcGxhbnR1bWwpIChvciBmcm9tIHRoZSBgdGFyZ2V0YCBkaXJlY3RvcnkgaWYgeW91IGhhdmUgYnVpbHQgdGhlIHByb2plY3QgbG9jYWxseSk6CgojIyMgSG93IHRvIHByb2R1Y2UgYSBzaW5nbGUgZGlhZ3JhbQoKYGBgYmFzaApqYXZhIC1qYXIgb3BlbmFwaS10by1wbGFudHVtbC1WRVJTSU9OX0hFUkUtamFyLXdpdGgtZGVwZW5kZW5jaWVzLmphciBzaW5nbGUgb3BlbmFwaS55YW1sIFBORyBvcGVuYXBpLnBuZwpgYGAKTGFyZ2UgZGlhZ3JhbXMgYXJlIGJldHRlciB3aXRoIFNWRyBmb3JtYXQgKHJlbmRlcmluZyBpcyBzaGFycCBhdCBldmVyeSB6b29tIGxldmVsKSBzbyBqdXN0IHJlcGxhY2UgYFBOR2AgaW4gdGhlIGFib3ZlIGNvbW1hbmQgd2l0aCBgU1ZHYC4gSWYgeW91IHN0aWxsIHdhbnQgYSBQTkcgYW5kIHlvdSBmaW5kIGl0IAppcyBnZXR0aW5nIGN1dCBvZmYgdGhlbiB5b3UgbmVlZCB0byBpbmNyZWFzZSB0aGUgcGxhbnR1bWwgaW1hZ2Ugc2l6ZSBsaW1pdCBsaWtlIGJlbG93LiBJbmNyZWFzZSB0aGUgbGltaXQgdGlsbCB5b3VyIGRpYWdyYW0gZml0cy4gWW91IG1heSBuZWVkIHRvIGluY3JlYXNlIG1lbW9yeSB1c2luZyB0aGlzIEpWTSBhcmcgYC1YbXgxMDI0bWAuCgpgYGBiYXNoCmphdmEgLURQTEFOVFVNTF9MSU1JVF9TSVpFPTgxOTIgLWphciBvcGVuYXBpLXRvLXBsYW50dW1sLVZFUlNJT05fSEVSRS1qYXItd2l0aC1kZXBlbmRlbmNpZXMuamFyIG9wZW5hcGkueWFtbCBQTkcgb3BlbmFwaS5wbmcKYGBgCgojIyMgSG93IHRvIHByb2R1Y2UgYSBkaWFncmFtIHBlciBzZXJ2aWNlIG1ldGhvZAoKYGBgYmFzaApqYXZhIC1qYXIgb3BlbmFwaS10by1wbGFudHVtbC1WRVJTSU9OX0hFUkUtamFyLXdpdGgtZGVwZW5kZW5jaWVzLmphciBzcGxpdCBvcGVuYXBpLnlhbWwgUE5HIGRpYWdyYW1zCmBgYApUaGUgYWJvdmUgY2FsbCB3aWxsIHdyaXRlIGEgZGlhZ3JhbSBwZXIgbWV0aG9kIGludG8gdGhlIGBkaWFncmFtc2AgZGlyZWN0b3J5IChhbmQgd2lsbCBjcmVhdGUgaXQgaWYgaXQgZG9lc24ndCBleGlzdCkuIAoKQXMgYW4gZXhhbXBsZSwgZG8gYG12biBjbGVhbiB0ZXN0YCBvbiB0aGUgcHJvamVjdCBhbmQgbG9vayBpbiBgdGFyZ2V0L3VucW9yay5zdmdgIGRpcmVjdG9yeS4KCiMjIFVzYWdlCgpgYGBqYXZhCmltcG9ydCBjb20uZ2l0aHViLmRhdmlkbW90ZW4ub2FzMy5wdW1sLkNvbnZlcnRlcjsKClN0cmluZyBwdW1sID0gQ29udmVydGVyLm9wZW5BcGlUb1B1bWwob3BlbmFwaSk7CmBgYAoKIyMgU3lzdGVtIHByb3BlcnRpZXMKKiBgbWF4LmVudW0uZW50cmllc2AgZGVmYXVsdHMgdG8gMTIuIElmIGFuIGVudW0gaGFzIG1vcmUgdGhhbiB0aGUgbWF4IHRoZW4gaXQgd2lsbCBiZSBsaW1pdGVkIHRvIHRoYXQgbnVtYmVyIGFuZCBhbiBlbnRyeSBgLi4uYCB3aWxsIGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBlbnVtcy4KCiMjIEV4YW1wbGVzCgpVbml0IHRlc3QgZXhhbXBsZXMgYXJlIFtoZXJlXShzcmMvZG9jcy9nZW5lcmF0ZWQvZXhhbXBsZXMubWQpLgoKW3BldHN0b3JlLWV4cGFuZGVkLnltbF0oc3JjL3Rlc3QvcmVzb3VyY2VzL2lucHV0cy9wZXRzdG9yZS1leHBhbmRlZC55bWwpOgoKPGltZyBzcmM9InNyYy9kb2NzL3Rlc3RzL3BldHN0b3JlLWV4cGFuZGVkLnB1bWwuc3ZnIi8+CgpbYm9va3N0b3JlLnltbF0oc3JjL3Rlc3QvcmVzb3VyY2VzL2RlbW9zL2Jvb2tzdG9yZS55bWwpOgoKPGltZyBzcmM9InNyYy9kb2NzL2RlbW9zL2Jvb2tzdG9yZS5zdmciLz4KCltlY29tbWVyY2UueW1sXShzcmMvdGVzdC9yZXNvdXJjZXMvZGVtb3MvZWNvbW1lcmNlLnltbCkKCjxpbWcgc3JjPSJzcmMvZG9jcy9kZW1vcy9lY29tbWVyY2Uuc3ZnIi8+CgpbbmV3cy55bWxdKHNyYy90ZXN0L3Jlc291cmNlcy9kZW1vcy9uZXdzLnltbCk6Cgo8aW1nIHNyYz0ic3JjL2RvY3MvZGVtb3MvbmV3cy5zdmciLz4KCltzdHJhdmEueW1sXShzcmMvdGVzdC9yZXNvdXJjZXMvZGVtb3Mvc3RyYXZhLnltbCk6Cgo8aW1nIHNyYz0ic3JjL2RvY3MvZGVtb3Mvc3RyYXZhLnN2ZyIvPgoKW3R3aXR0ZXIueW1sXShzcmMvdGVzdC9yZXNvdXJjZXMvZGVtb3MvdHdpdHRlci55bWwpOgoKPGltZyBzcmM9InNyYy9kb2NzL2RlbW9zL3R3aXR0ZXIuc3ZnIi8+CgpbZWJheS55bWxdKHNyYy90ZXN0L3Jlc291cmNlcy9kZW1vcy9lYmF5LnltbCk6Cgo8aW1nIHNyYz0ic3JjL2RvY3MvZGVtb3MvZWJheS5zdmciLz4KCg== readmeEtag: '"f13c803238639bef452fd5c031204b7716d60f98"' readmeLastModified: Mon, 12 Aug 2024 17:44:29 GMT repositoryId: 339604008 description: >- Converts OpenAPI 3.0 definitions to Plant UML text for visualisation of your API. created: '2021-02-17T03:47:43Z' updated: '2024-09-05T17:51:32Z' language: Java archived: false stars: 95 watchers: 4 forks: 18 owner: davidmoten logo: https://avatars.githubusercontent.com/u/318187?v=4 license: Apache-2.0 repoEtag: '"02f6049f4690f810d02d9e929c07a4f7bd44cb253303f3374b0cdc24eb5430a7"' repoLastModified: Thu, 05 Sep 2024 17:51:32 GMT foundInMaster: true category: SDK id: d4f9d833f5a48b843c52f5ec6f582976 - source: openapi3 tags repository: https://github.com/data-fair/openapi-viewer v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIDMgdmlld2VyCgpUaGlzIHNlcnZpY2UgaXMgZGVzaWduZWQgdG8gZWFzaWx5IGJyb3dzZSBhbmQgdGVzdCBhIFJFU1QgQVBJIGRlc2NyaWJlZCB3aXRoIHRoZSBbT3BlbkFQSSAzLjAgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pIChma2EgU3dhZ2dlciBTcGVjaWZpY2F0aW9uKS4gVGhpcyBzZXJ2aWNlIG1haW5seSB1c2VzIFt2dWUtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2tvdW1vdWwtZGV2L3Z1ZS1vcGVuYXBpKSBjb21wb25lbnQuIEl0IGFsc28gcHJvdmlkZXMgYSBzaW1wbGUgbm9kZUpTIGJhY2tlbmQgZm9yIHByb3h5IHB1cnBvc2UuCgpTZWUgaXQgaW4gYWN0aW9uIDoKICogaHR0cHM6Ly9rb3Vtb3VsLmNvbS9vcGVuYXBpLXZpZXdlci8KCiMjIFNwb25zb3JzCgp8IHwgQ2xpY2sgW2hlcmUgdG8gc3VwcG9ydCB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBwcm9qZWN0XShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMva291bW91bC1kZXYpLiB8CnwtfC18CnwgWzxpbWcgYWx0PSJLb3Vtb3VsIGxvZ28iIHNyYz0iaHR0cHM6Ly9rb3Vtb3VsLmNvbS9zdGF0aWMvbG9nby1zbG9nYW4ucG5nIiBoZWlnaHQ9IjQwIj5dKGh0dHBzOi8va291bW91bC5jb20pIHwgW0tvdW1vdWxdKGh0dHBzOi8va291bW91bC5jb20pIGRldmVsb3BzIHRoZSBEYXRhIEZhaXIgZWNvc3lzdGVtIGFuZCBob3N0cyBpdCBhcyBhbiBvbmxpbmUgc2VydmljZS4gfAp8IFs8aW1nIGFsdD0iRGF3aXp6IGxvZ28iIHNyYz0iaHR0cHM6Ly9kYXdpenouZnIvbG9nby1EYXdpenotYWxsLWFib3V0LXlvdXItZGF0YS1ob21lLnBuZyIgaGVpZ2h0PSI0MCI+XShodHRwczovL2Rhd2l6ei5mcikgfCBbRGF3aXp6XShodHRwczovL2Rhd2l6ei5mcikgdXNlcyB0aGUgRGF0YSBGYWlyIGVjb3N5c3RlbSBpbnNpZGUgaXRzIHBsYXRmb3JtIGFuZCBzdXBwb3J0cyBpdHMgZGV2ZWxvcG1lbnQuIHwKCiMjIEluc3RhbGwKCkNsb25lIHRoaXMgcHJvamVjdCBhbmQgaW5zdGFsbCBkZXBlbmRlbmNpZXMgd2l0aCBgbnBtIGluc3RhbGxgIG9yIGB5YXJuYCB0aGVuIDoKYGBgCm5wbSBydW4gZGV2CmBgYAoKIyMgTGF1bmNoIHRoZSBzZXJ2aWNlIHdpdGggRG9ja2VyCgpBIERvY2tlciBpbWFnZSBpcyBwdWJsaWNseSBhdmFpbGFibGUuIFJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgOgoKYGBgCmRvY2tlciBydW4gLXAgODA4MDo4MDgwIGdoY3IuaW8vZGF0YS1mYWlyL29wZW5hcGktdmlld2VyCmBgYAoKYW5kIGdvIHRvIHRoaXMgW3BhZ2VdKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8pCgojIyBRdWVyeSBwYXJhbWV0ZXJzCllvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmdzIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gcHJlZmlsbCB2aWV3ZXIKCiAqICoqdXJsKiogOiBUaGUgbG9jYXRpb24gb2YgdGhlIEFQSSBkb2N1bWVudGF0aW9uIGZpbGUgdG8gbG9hZCwgaW4gT3BlbkFQSSB2MyBKU09OIGZvcm1hdC4KICogKipwcm94eSoqIDogdHJ1ZSBvciBmYWxzZSBpZiB5b3Ugd2FudCB0byBmZXRjaCBBUEkgZG9jdW1lbnRhdGlvbiBmaWxlIHVzaW5nIHRoaXMgc2VydmljZSBiYWNrZW5kIGFzIGEgcHJveHkuIERlZmF1bHRzIHRvIGZhbHNlLgpDYW4gYmUgdXNlZnVsbCBpZiB0aGUgQVBJIGRlc2NyaXB0aW9uIGNhbid0IGJlIHJlYWNoZWQgd2l0aCBDT1JTIGhlYWRlcnMuIERvIG5vdCB1c2UgdGhlIHByb3h5IGlmIHlvdSB3YW50IHRvIGFjY2VzcyBhbiBBUEkgZGVzY3JpcHRpb24gbG9jYXRlZCBvbiAqbG9jYWxob3N0Ki4KICogKipoZWFkZXJzKiogOiBVUkkgZW5jb2RlZCBKU09OIGRpY3Rpb25uYXJ5IG9mIGhlYWRlcnMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcHJlZmlsbCBwYXJhbWV0ZXJzIGlmIHRoZXkgbWF0Y2guIENhbiBiZSB1c2VmdWxsIHRvIHByZWZpbGwgKngtYXBpLWtleSogb3IgKmF1dGhvcml6YXRpb24qIGhlYWRlcnMuCiAqICoqcXVlcnktcGFyYW1zKiogOiBVUkkgZW5jb2RlZCBKU09OIGRpY3Rpb25uYXJ5IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcHJlZmlsbCBwYXJhbWV0ZXJzIGlmIHRoZXkgbWF0Y2guIENhbiBiZSB1c2VmdWxsIHRvIHByZWZpbGwgYW4gKm9yZ2FuaXphdGlvbklkKiBwYXJhbWV0ZXIgaW4gYSBtdWx0aS10ZW5hbnQgYXBwbGljYXRpb24uCiAqICoqaGlkZS10b29sYmFyKiogOiB0cnVlIG9yIGZhbHNlIG9mIHlvdSB3YW50IHRvIGhpZGUgdG9vbGJhci4gVGhpcyBjYW4gYmUgdXNlZnVsbCBmb3IgaWZyYW1lIGludGVncmF0aW9uLiBEZWZhdWx0cyB0byBmYWxzZS4K readmeEtag: '"1620307b82f6cb5267a96fc9020fbce8c5626f2e"' readmeLastModified: Wed, 06 Dec 2023 13:44:30 GMT repositoryId: 84982324 description: Browse and test a REST API described with the OpenAPI 3.0 Specification created: '2017-03-14T18:12:56Z' updated: '2024-08-03T10:40:39Z' language: JavaScript archived: false stars: 92 watchers: 8 forks: 10 owner: data-fair logo: https://avatars.githubusercontent.com/u/83776320?v=4 license: AGPL-3.0 repoEtag: '"d43d99597d06d7cb0356658462622d3b21b986ed5c6b194b5e2dc8ad3f0b51b6"' repoLastModified: Sat, 03 Aug 2024 10:40:39 GMT foundInMaster: true category: - Documentation - Parsers id: c84aa3074b4ed8af1ecf41bafb7964d4 oldLocations: - https://github.com/koumoul-dev/openapi-viewer - source: openapi3 tags repository: https://github.com/oatpp/oatpp-swagger v3: true repositoryMetadata: base64Readme: >- IyBvYXRwcC1zd2FnZ2VyIFshW29hdHBwIGJ1aWxkIHN0YXR1c10oaHR0cHM6Ly9kZXYuYXp1cmUuY29tL2xnYW56enpvL2xnYW56enpvL19hcGlzL2J1aWxkL3N0YXR1cy9vYXRwcC5vYXRwcC1zd2FnZ2VyKV0oaHR0cHM6Ly9kZXYuYXp1cmUuY29tL2xnYW56enpvL2xnYW56enpvL19idWlsZD9kZWZpbml0aW9uSWQ9MikKU3dhZ2dlciBVSSBmb3Igb2F0cHAgc2VydmljZXMKClJlYWQgbW9yZToKLSBbQWJvdXQgb2F0cHBdKGh0dHBzOi8vb2F0cHAuaW8vKSAgCi0gW1doYXQgaXMgU3dhZ2dlciBVSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Rvb2xzL3N3YWdnZXItdWkvKQotIFtFbmRwb2ludCBhbm5vdGF0aW9uIGFuZCBBUEkgZG9jdW1lbnRhdGlvbiBpbiBvYXRwcF0oaHR0cHM6Ly9vYXRwcC5pby9kb2NzL2NvbXBvbmVudHMvYXBpLWNvbnRyb2xsZXIvI2VuZHBvaW50LWFubm90YXRpb24tYW5kLWFwaS1kb2N1bWVudGF0aW9uKS4KCiMjIEV4YW1wbGUKCkZvciBmdWxsIGV4YW1wbGUgcHJvamVjdCBzZWU6IFtFeGFtcGxlIENSVUQtQVBJIHByb2plY3Qgd2l0aCBTd2FnZ2VyIFVJXShodHRwczovL2dpdGh1Yi5jb20vb2F0cHAvZXhhbXBsZS1jcnVkKQoKIyMgQnJpZWYKCi0gVXNlIGBgYG9hdHBwOjpzd2FnZ2VyOjpDb250cm9sbGVyYGBgIHdpdGggYGBgb2F0cHA6OndlYjo6c2VydmVyOjpIdHRwQ29ubmVjdGlvbkhhbmRsZXJgYGAKLSBVc2UgYGBgb2F0cHA6OnN3YWdnZXI6OkFzeW5jQ29udHJvbGxlcmBgYCB3aXRoIGBgYG9hdHBwOjp3ZWI6OnNlcnZlcjo6QXN5bmNIdHRwQ29ubmVjdGlvbkhhbmRsZXJgYGAKCi0gU3dhZ2dlciBVSSBsb2NhdGlvbiAtIGBgYGh0dHA6Ly9sb2NhbGhvc3Q6PFBPUlQ+L3N3YWdnZXIvdWlgYGAKLSBPcGVuQXBpIDMuMC4wIHNwZWNpZmljYXRpb24gbG9jYXRpb24gLSBgYGBodHRwOi8vbG9jYWxob3N0OjxQT1JUPi9hcGktZG9jcy9vYXMtMy4wLjAuanNvbmBgYAoKSWYgeW91IGFyZSB1c2luZyBgYGBvYXRwcDo6d2ViOjpzZXJ2ZXI6OmFwaTo6QXBpQ29udHJvbGxlcmBgYCBtb3N0IHBhcnRzIG9mIHlvdXIgZW5kcG9pbnRzIGFyZSBkb2N1bWVudGVkIGF1dG9tYXRpY2FsbHkgbGlrZToKCi0gRW5kcG9pbnQgbmFtZQotIFBhcmFtZXRlcnMKLSBSZXF1ZXN0IEJvZHkKCllvdSBtYXkgYWRkIG1vcmUgaW5mb3JtYXRpb24gdG8geW91ciBlbmRwb2ludCBsaWtlIGZvbGxvd3M6CgpgYGBjKysKRU5EUE9JTlRfSU5GTyhjcmVhdGVVc2VyKSB7CiAgaW5mby0+c3VtbWFyeSA9ICJDcmVhdGUgbmV3IFVzZXIiOwogIGluZm8tPmFkZENvbnN1bWVzPFVzZXJEdG8+KCJhcHBsaWNhdGlvbi9qc29uIik7CiAgaW5mby0+YWRkUmVzcG9uc2U8VXNlckR0bz4oU3RhdHVzOjpDT0RFXzIwMCwgImFwcGxpY2F0aW9uL2pzb24iKTsKICBpbmZvLT5hZGRSZXNwb25zZShTdGF0dXM6OkNPREVfNTAwKTsKfQpFTkRQT0lOVCgiUE9TVCIsICJkZW1vL2FwaS91c2VycyIsIGNyZWF0ZVVzZXIsCiAgICAgICAgIEJPRFlfRFRPKFVzZXJEdG8sIHVzZXJEdG8pKSB7CiAgcmV0dXJuIGNyZWF0ZUR0b1Jlc3BvbnNlKFN0YXR1czo6Q09ERV8yMDAsIG1fZGF0YWJhc2UtPmNyZWF0ZVVzZXIodXNlckR0bykpOwp9CmBgYAoKIyMjIEhvdyB0byBhZGQgU3dhZ2dlciBVSSB0byB5b3VyIHByb2plY3QKCjEpIEFkZCBgYGBvYXRwcDo6c3dhZ2dlcjo6RG9jdW1lbnRJbmZvYGBgIGFuZCBgYGBvYXRwcDo6c3dhZ2dlcjo6UmVzb3VyY2VzYGBgIGNvbXBvbmVudHMgdG8geW91ciBBcHBDb21wb25lbnRzOgoKYGBgYysrCi8qKgogKiAgR2VuZXJhbCBBUEkgZG9jcyBpbmZvCiAqLwpPQVRQUF9DUkVBVEVfQ09NUE9ORU5UKHN0ZDo6c2hhcmVkX3B0cjxvYXRwcDo6c3dhZ2dlcjo6RG9jdW1lbnRJbmZvPiwgc3dhZ2dlckRvY3VtZW50SW5mbykoW10gewoKICBvYXRwcDo6c3dhZ2dlcjo6RG9jdW1lbnRJbmZvOjpCdWlsZGVyIGJ1aWxkZXI7CgogIGJ1aWxkZXIKICAuc2V0VGl0bGUoIlVzZXIgZW50aXR5IHNlcnZpY2UiKQogIC5zZXREZXNjcmlwdGlvbigiQ1JVRCBBUEkgRXhhbXBsZSBwcm9qZWN0IHdpdGggc3dhZ2dlciBkb2NzIikKICAuc2V0VmVyc2lvbigiMS4wIikKICAuc2V0Q29udGFjdE5hbWUoIkl2YW4gT3ZzeWFub2Noa2EiKQogIC5zZXRDb250YWN0VXJsKCJodHRwczovL29hdHBwLmlvLyIpCgogIC5zZXRMaWNlbnNlTmFtZSgiQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIikKICAuc2V0TGljZW5zZVVybCgiaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIikKCiAgLmFkZFNlcnZlcigiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgInNlcnZlciBvbiBsb2NhbGhvc3QiKTsKCiAgLy8gV2hlbiB5b3UgYXJlIHVzaW5nIHRoZSBBVVRIRU5USUNBVElPTigpIEVuZHBvaW50LU1hY3JvIHlvdSBtdXN0IGFkZCBhbiBTZWN1cml0eVNjaGVtZSBvYmplY3QgKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNzZWN1cml0eVNjaGVtZU9iamVjdCkKICAvLyBGb3IgYmFzaWMtYXV0aGVudGljYXRpb24geW91IGNhbiB1c2UgdGhlIGRlZmF1bHQgQmFzaWMtQXV0aG9yaXphdGlvbi1TZWN1cml0eS1TY2hlbWUgbGlrZSB0aGlzCiAgLy8gRm9yIG1vcmUgY29tcGxleCBhdXRoZW50aWNhdGlvbiBzY2hlbWVzIHlvdSBjYW4gdXNlIHRoZSBvYXRwcDo6c3dhZ2dlcjo6RG9jdW1lbnRJbmZvOjpTZWN1cml0eVNjaGVtZUJ1aWxkZXIgYnVpbGRlcgogIC8vIERvbid0IGZvcmdldCB0byBhZGQgaW5mby0+YWRkU2VjdXJpdHlSZXF1aXJlbWVudCgiYmFzaWNfYXV0aCIpIHRvIHlvdXIgRU5EUE9JTlRfSU5GTygpIE1hY3JvIQogIC5hZGRTZWN1cml0eVNjaGVtZSgiYmFzaWNfYXV0aCIsIG9hdHBwOjpzd2FnZ2VyOjpEb2N1bWVudEluZm86OlNlY3VyaXR5U2NoZW1lQnVpbGRlcjo6RGVmYXVsdEJhc2ljQXV0aG9yaXphdGlvblNlY3VyaXR5U2NoZW1lKCkpOwoKICByZXR1cm4gYnVpbGRlci5idWlsZCgpOwoKfSgpKTsKCgovKioKICogIFN3YWdnZXItVWkgUmVzb3VyY2VzICg8b2F0cHAtZXhhbXBsZXM+L2xpYi9vYXRwcC1zd2FnZ2VyL3JlcykKICovCk9BVFBQX0NSRUFURV9DT01QT05FTlQoc3RkOjpzaGFyZWRfcHRyPG9hdHBwOjpzd2FnZ2VyOjpSZXNvdXJjZXM+LCBzd2FnZ2VyUmVzb3VyY2VzKShbXSB7CiAgLy8gTWFrZSBzdXJlIHRvIHNwZWNpZnkgY29ycmVjdCBmdWxsIHBhdGggdG8gb2F0cHAtc3dhZ2dlci9yZXMgZm9sZGVyICEhIQogIHJldHVybiBvYXRwcDo6c3dhZ2dlcjo6UmVzb3VyY2VzOjpsb2FkUmVzb3VyY2VzKCI8WU9VUi1QQVRILVRPLVJFUE8+L2xpYi9vYXRwcC1zd2FnZ2VyL3JlcyIpOwp9KCkpOwoKYGBgCgoyKSBDcmVhdGUgYGBgb2F0cHA6OnN3YWdnZXI6OkNvbnRyb2xsZXJgYGAgd2l0aCBsaXN0IG9mIGVuZHBvaW50cyB5b3Ugd2hhbnQgdG8gZG9jdW1lbnQgYW5kIGFkZCBpdCB0byByb3V0ZXI6CgpgYGBjKysKYXV0byBzd2FnZ2VyQ29udHJvbGxlciA9IG9hdHBwOjpzd2FnZ2VyOjpDb250cm9sbGVyOjpjcmVhdGVTaGFyZWQoPGxpc3Qtb2YtZW5kcG9pbnRzLXRvLWRvY3VtZW50Pik7CnN3YWdnZXJDb250cm9sbGVyLT5hZGRFbmRwb2ludHNUb1JvdXRlcihyb3V0ZXIpOwpgYGAKCjMpIGNtYWtlIDogIAoKQWRkIHRoZSBmb2xsb3dpbmcgbGluZXMgdG8geW91ciBDTWFrZUxpc3RzLnR4dCBwcm9qZWN0IGZpbGUKYGBgCgpmaW5kX3BhY2thZ2Uob2F0cHAgMS4zLjAgUkVRVUlSRUQpCmlmKG9hdHBwX0ZPVU5EKQogIG1lc3NhZ2UoU1RBVFVTICJGb3VuZCBvYXRwcCB2ZXJzaW9uOiAke29hdHBwX1ZFUlNJT05fU1RSSU5HfSIpCmVsc2UoKQogIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkNvdWxkIG5vdCBmaW5kIG9hdHBwIikKZW5kaWYoKQoKZmluZF9wYWNrYWdlKG9hdHBwLXN3YWdnZXIgIDEuMy4wIFJFUVVJUkVEKQppZihvYXRwcC1zd2FnZ2VyX0ZPVU5EKQogIG1lc3NhZ2UoU1RBVFVTICJGb3VuZCBvYXRwcC1zd2FnZ2VyIHZlcnNpb246ICR7b2F0cHAtc3dhZ2dlcl9WRVJTSU9OX1NUUklOR30iKQplbHNlKCkKICBtZXNzYWdlKEZBVEFMX0VSUk9SICJDb3VsZCBub3QgZmluZCBvYXRwcC1zd2FnZ2VyIikKZW5kaWYoKQoKaW5jbHVkZV9kaXJlY3Rvcmllcygke29hdHBwX0lOQ0xVREVfRElSU30pCmluY2x1ZGVfZGlyZWN0b3JpZXMoJHtvYXRwcC1zd2FnZ2VyX0lOQ0xVREVfRElSU30pCgphZGRfZGVmaW5pdGlvbnMoIAogIC1ET0FUUFBfU1dBR0dFUl9SRVNfUEFUSD0iJHtPQVRQUF9CQVNFX0RJUn0vYmluL29hdHBwLXN3YWdnZXIvcmVzIgopCgp0YXJnZXRfbGlua19saWJyYXJpZXMgKHByb2plY3QgUFVCTElDCiAgIC8vIGFkZF95b3VyIGxpYnJhcmllcyBoZXJlCiAgIFBVQkxJQyBvYXRwcDo6b2F0cHAKICAgUFVCTElDIG9hdHBwOjpvYXRwcC1zd2FnZ2VyCikKYGBgCgojIyMgQ3VzdG9taXNlIFN3YWdnZXIgVUkgUGF0aHMKClRvIGN1c3RvbWlzZSBzd2FnZ2VyIFVJIGVuZHBvaW50cyBwYXRocyBhZGQgdGhlIGZvbGxvd2luZyBjb21wb25lbnQ6CgpgYGBjKysKICAvKioKICAgKiAgU3dhZ2dlciBDb250cm9sbGVyIFBhdGhzCiAgICovCiAgT0FUUFBfQ1JFQVRFX0NPTVBPTkVOVChzdGQ6OnNoYXJlZF9wdHI8b2F0cHA6OnN3YWdnZXI6OkNvbnRyb2xsZXJQYXRocz4sIGNvbnRyb2xsZXJQYXRocykoW10gewogICAgYXV0byBwYXRocyA9IHN0ZDo6bWFrZV9zaGFyZWQ8b2F0cHA6OnN3YWdnZXI6OkNvbnRyb2xsZXJQYXRocz4oKTsKICAgIHBhdGhzLT5hcGlKc29uID0gImN1c3RvbS9wYXRoL2Zvci9hcGkuanNvbiI7ICAgICAgIC8vIGRlZmF1bHQgaXMgImFwaS1kb2NzL29hcy0zLjAuMC5qc29uIgogICAgcGF0aHMtPnVpID0gIm15L2N1c3RvbS9wYXRoL3N3YWdnZXItdWkiOyAgICAgICAgICAgLy8gZGVmYXVsdCBpcyAic3dhZ2dlci91aSIKICAgIHBhdGhzLT51aVJlc291cmNlcyA9ICJteS9jdXN0b20vcGF0aC97ZmlsZW5hbWV9IjsgIC8vIGRlZmF1bHQgaXMgInN3YWdnZXIve2ZpbGVuYW1lfSIKICAgIHJldHVybiBwYXRoczsKICB9KCkpOwpgYGAKCioqTk9URToqKiBgcGF0aHMtPnVpYCBhbmQgYHBhdGhzLT51aVJlc291cmNlc2AgTVVTVCBoYXZlIHRoZSBzYW1lIGJhc2UgcGF0aCAtIGFzIHNob3duIGFib3ZlLgoKKipEb25lISoqCg== readmeEtag: '"273b24fa1dc9545d778a601ef94b676b6e4d0998"' readmeLastModified: Tue, 04 Jun 2024 23:13:23 GMT repositoryId: 142623136 description: OpenApi 3.0.0 docs + Swagger UI for oatpp services created: '2018-07-27T20:59:35Z' updated: '2024-07-17T06:38:07Z' language: C++ archived: false stars: 92 watchers: 8 forks: 52 owner: oatpp logo: https://avatars.githubusercontent.com/u/37167448?v=4 license: Apache-2.0 repoEtag: '"688dc27b9f6ae19d149c7128be2891a65bc00c8f6c9513c9e2c41c0391e4953f"' repoLastModified: Wed, 17 Jul 2024 06:38:07 GMT foundInMaster: true category: Low-level Tooling id: e2b5ed322cb3283e7ad1edd0b0634fc4 - source: openapi3 tags repository: https://github.com/cdwv/oas3-api-snippet-enricher v3: true repositoryMetadata: base64Readme: >- IyBFbnJpY2ggeW91ciBPcGVuQVBJIDMuMCBzY2hlbWEgd2l0aCBleGFtcGxlcwoKVGhhbmtzIHRvIHRoZSB3b25kZXJmdWwgW3N3YWdnZXItc25pcHBldF0oaHR0cHM6Ly9naXRodWIuY29tL0VyaWtXaXR0ZXJuL3N3YWdnZXItc25pcHBldCkgbW9kdWxlIHlvdSBjYW4gbm93IHNpbXBseSBlbnJpY2ggeW91ciBPcGVuQVBJIHNjaGVtYSB3aXRoIGNvZGUgc2FtcGxlcy4gSXQncyBhcyBlYXN5IGFzIDEuMi4zLgoKMS4gYGBucG0gaW5zdGFsbCBzbmlwcGV0LWVucmljaGVyLWNsaWBgCjIuIGBgLi9ub2RlX21vZHVsZXMvLmJpbi9zbmlwcGV0LWVucmljaGVyLWNsaSAtLWlucHV0PXlvdXJfb2FzLmpzb25gYAoKIyMgRXhhbXBsZSBVc2FnZQoKRW5yaWNoIHlvdXIgT0FTIDMuMCBTY2hlbWEKYGBgCi4vbm9kZV9tb2R1bGVzLy5iaW4vc25pcHBldC1lbnJpY2hlci1jbGkgLS1pbnB1dD1vcGVuYXBpLmpzb24gPiBvcGVuYXBpLXdpdGgtZXhhbXBsZXMuanNvbgpgYGAKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHBvaW50IGl0IHRvIGEgWUFNTC1mb3JtYXR0ZWQgc3BlYzoKYGBgCmN1cmwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFzdGVyL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbCAtLW91dHB1dCBwZXRzdG9yZS55YW1sCi4vbm9kZV9tb2R1bGVzLy5iaW4vc25pcHBldC1lbnJpY2hlci1jbGkgLS1pbnB1dD1wZXRzdG9yZS55YW1sID4gb3BlbmFwaS13aXRoLWV4YW1wbGVzLmpzb24KYGBgCgpVc2UgdGFyZ2V0cyBvcHRpb25zIHRvIHNwZWNpZmljIGxhbmd1YWdlczoKYGBgCi4vbm9kZV9tb2R1bGVzLy5iaW4vc25pcHBldC1lbnJpY2hlci1jbGkgLS10YXJnZXRzPSJub2RlX3JlcXVlc3Qsc2hlbGxfY3VybCIgLS1pbnB1dD1vcGVuYXBpLmpzb24gPiBvcGVuYXBpLXdpdGgtZXhhbXBsZXMuanNvbgpgYGAKClVzZSBbUmVEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jLykgdG8gYnVpbGQgYmVhdXRpZnVsIEFQSSBkb2M6CmBgYApyZWRvYy1jbGkgYnVuZGxlIG9wZW5hcGktd2l0aC1leGFtcGxlcy5qc29uCmBgYAoKZW5qb3kuCgohW1JlRG9jIEFQSSBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBzYW1wbGVzXShpbWFnZS5wbmcpCgpDb250cmlidXRpbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkNvbnRyaWJ1dGlvbnMgYXJlIG1vc3Qgd2VsY29tZSEKCgpMaWNlbnNlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpNSVQKCk1haW50YWluZXJzCj09PT09PT09PT09CgpbPGltZyB3aWR0aD0iMzAwIiB0aXRsZT0iQ29kZXdhdmUuZXUiIHNyYz0iY2R3di1sb2dvLW5ldy5zdmciPl0oaHR0cDovL2NvZGV3YXZlLmV1KQoKUHJvamVjdCBpcyBjdXJyZW50bHkgbWFpbnRhaW5lZCwgaW4gb3VyIHNwYXJlIHRpbWUsIGJ5IFtjb2Rld2F2ZS5ldV0oaHR0cDovL2NvZGV3YXZlLmV1KSBhbmQgYSBncm93aW5nIG51bWJlciBvZiBDb250cmlidXRvcnMhCg== readmeEtag: '"2e480b8b5b9a3c8516169de7cef40e16dade1c06"' readmeLastModified: Mon, 11 Dec 2023 12:08:59 GMT repositoryId: 220618185 description: Enrich your OpenAPI 3.0 JSON with code samples created: '2019-11-09T09:13:16Z' updated: '2024-09-04T16:22:44Z' language: JavaScript archived: false stars: 91 watchers: 9 forks: 13 owner: cdwv logo: https://avatars.githubusercontent.com/u/6742687?v=4 license: MIT repoEtag: '"b88a4b46b7ebb062f047b4d568636eb42aab5d8eb805c4d9fddb52497aeb82ce"' repoLastModified: Wed, 04 Sep 2024 16:22:44 GMT foundInMaster: true category: - Documentation - Parsers id: 839bb72e7d7b73d50edcb2723923e0e2 - source: openapi3 tags repository: https://github.com/koumoul-dev/vue-openapi v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHZpZXdlciBjb21wb25lbnQgZm9yIFZ1ZUpTCgpUaGlzIFtWdWUuanNdKGh0dHBzOi8vdnVlanMub3JnLykgY29tcG9uZW50IGlzIGRlc2lnbmVkIHRvIGVhc2lseSBicm93c2UgYW5kIHRlc3QgYSBSRVNUIEFQSSBkZXNjcmliZWQKd2l0aCB0aGUgW09wZW5BUEkgMy4wIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoZm9ybWVybHkga25vd24gYXMgU3dhZ2dlciBTcGVjaWZpY2F0aW9uKS4gVGhpcyBjb21wb25lbnQgZm9sbG93cyBHb29nbGUgW01hdGVyaWFsIERlc2lnbl0oaHR0cHM6Ly9tYXRlcmlhbC5nb29nbGUuY29tLykgcHJpbmNpcGxlcyBhbmQgcmVsaWVzIG9uIHRoZSBbVnVlIE1hdGVyaWFsXShodHRwczovL2dpdGh1Yi5jb20vbWFyY29zbW91cmEvdnVlLW1hdGVyaWFsKSBmcmFtZXdvcmsuIEl0IGFsc28gcmVsaWVzIG9uIFt2dWUtcmVzb3VyY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYWdla2l0L3Z1ZS1yZXNvdXJjZSkgdG8gcGVyZm9ybSBBUEkgcmVxdWVzdHMuCgpTZWUgaXQgaW4gYWN0aW9uIDoKICogaHR0cHM6Ly9rb3Vtb3VsLmNvbS9vcGVuYXBpLXZpZXdlci8KCiMjIEluc3RhbGwKCm5wbSA6CmBgYGNvbnNvbGUKJCBucG0gaW5zdGFsbCAtLXNhdmUgdnVlLW9wZW5hcGkKYGBgCgojIyBVc2FnZQpgYGBqcwppbXBvcnQgVnVlIGZyb20gJ3Z1ZScKaW1wb3J0IFZ1ZU1hdGVyaWFsIGZyb20gJ3Z1ZS1tYXRlcmlhbCcKaW1wb3J0IE9wZW5BcGkgZnJvbSAndnVlLW9wZW5hcGknCmltcG9ydCAndnVlLW1hdGVyaWFsL2Rpc3QvdnVlLW1hdGVyaWFsLmNzcycKaW1wb3J0IFZ1ZVJlc291cmNlIGZyb20gJ3Z1ZS1yZXNvdXJjZScKCmltcG9ydCBqc29uQXBpIGZyb20gJy4vc3dhZ2dlci5qc29uJwoKVnVlLnVzZShWdWVNYXRlcmlhbCkKVnVlLnVzZShWdWVSZXNvdXJjZSkKCm5ldyBWdWUoewogIGVsOiAnI2FwcCcsCiAgdGVtcGxhdGU6ICc8b3Blbi1hcGkgdi1pZj0ianNvbkFwaSIgOmFwaT0ianNvbkFwaSIgbWQtdGhlbWU9IlwnZGVmYXVsdFwnIiA6cXVlcnktcGFyYW1zPSJxdWVyeVBhcmFtcyIgOmhlYWRlcnM9ImhlYWRlcnMiPjwvb3Blbi1hcGk+JywKICBkYXRhOiAoKSA9PiAoewogICAganNvbkFwaToganNvbkFwaSwKICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgIHVzZXJJZDogJ2pvaG5fZG9lJwogICAgfSwKICAgIGhlYWRlcnM6IHsKICAgICAgYXBpX2tleTogJ215X2FwaV9rZXknCiAgICB9CiAgfSksCiAgY29tcG9uZW50czogewogICAgT3BlbkFwaQogIH0KfSkKYGBgCgojIyBEZXZlbG9wCgpSdW4gd2VicGFjayBpbiB3YXRjaCBtb2RlOgoKICAgIG5wbSBydW4gZGV2CgpUaGVuIG9wZW4gdGVzdC9pbmRleC5odG1sIGluIHlvdXIgYnJvd3Nlci4KClRvIHN3aXRjaCBiZXR3ZWVuIGV4YW1wbGVzLCBtb2RpZnkgdGhlIGltcG9ydCAianNvbkFwaSIgaW4gdGVzdC9hcHAuanMuCgojIyBMaWNlbnNlCgpbTUlUIExpY2Vuc2VdKGxpY2Vuc2UubWQpCgojIyBSZXNvdXJjZXMKCiogW0F3ZXNvbWUgT3BlbkFwaSAzXShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS9hd2Vzb21lLW9wZW5hcGkzKSBsaXN0cyB2YXJpb3VzIHByb2plY3RzIHJlbGF0ZWQgdG8gT3BlbkFwaSAzLjAueAoqIFtzd2FnZ2VyMm9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL3N3YWdnZXIyb3BlbmFwaSkgbGV0cyB5b3UgY29udmVydCBTd2FnZ2VyIDIuMCBkZWZpbml0aW9ucyBpbnRvIE9wZW5BcGkgMy4wLngKCiMjIFNpbWlsYXIgcHJvamVjdHMKClRoaXMgcHJvamVjdCBoYXMgYmVlbiBpbnNwaXJlZCBieSB0aGUgZm9sbG93aW5nIHByb2plY3RzIDoKCiAqIFthbmd1bGFyLXN3YWdnZXItdWldKGh0dHBzOi8vZ2l0aHViLmNvbS9PcmFuZ2UtT3BlblNvdXJjZS9hbmd1bGFyLXN3YWdnZXItdWkpCiAqIFthbmd1bGFyLXN3YWdnZXItdWktbWF0ZXJpYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJvc2gvYW5ndWxhci1zd2FnZ2VyLXVpLW1hdGVyaWFsKQo= readmeEtag: '"3533626f90ee3a6fc8cb8614676b12dcd9d4f1b7"' readmeLastModified: Wed, 06 Dec 2023 10:39:08 GMT repositoryId: 75237921 description: OpenAPI viewer component for VueJS created: '2016-11-30T23:56:46Z' updated: '2024-06-19T05:19:57Z' language: Vue archived: false stars: 90 watchers: 8 forks: 19 owner: koumoul-dev logo: https://avatars.githubusercontent.com/u/16051219?v=4 license: MIT repoEtag: '"ace18366200ee66dfc69419e2f831494956c7566f2e455436f1544a579c248f6"' repoLastModified: Wed, 19 Jun 2024 05:19:57 GMT foundInMaster: true category: Parsers id: 016162b2c3c0b0a72ac73ea4566276c8 - source: openapi3 tags repository: https://github.com/openapi-contrib/openapi3-generator v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgMyBHZW5lcmF0b3I8L2gxPgo8cCBhbGlnbj0iY2VudGVyIj4KICBVc2UgeW91ciBBUEkgT3BlbkFQSSAzIGRlZmluaXRpb24gdG8gZ2VuZXJhdGUgY29kZSwgZG9jdW1lbnRhdGlvbiwgYW5kIGxpdGVyYWxseSBhbnl0aGluZyB5b3UgbmVlZC4KPC9wPgoKIyMgSW5zdGFsbAoKVG8gdXNlIGl0IGZyb20gdGhlIENMSToKCmBgYGJhc2gKbnBtIGluc3RhbGwgLWcgb3BlbmFwaTMtZ2VuZXJhdG9yCmBgYAoKIyMgUmVxdWlyZW1lbnRzCgoqIE5vZGUuanMgdjcuNisKCiMjIFVzYWdlCgojIyMgRnJvbSB0aGUgY29tbWFuZC1saW5lIGludGVyZmFjZSAoQ0xJKQoKYGBgYmFzaAogIFVzYWdlOiBvZyBbb3B0aW9uc10gPG9wZW5hcGlGaWxlT3JVUkw+IDx0ZW1wbGF0ZT4KCgogIE9wdGlvbnM6CgogICAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgIG91dHB1dCB0aGUgdmVyc2lvbiBudW1iZXIKICAgIC1vLCAtLW91dHB1dCA8b3V0cHV0RGlyPiAgICAgICBkaXJlY3Rvcnkgd2hlcmUgdG8gcHV0IHRoZSBnZW5lcmF0ZWQgZmlsZXMgKGRlZmF1bHRzIHRvIGN1cnJlbnQgZGlyZWN0b3J5KQogICAgLXQsIC0tdGVtcGxhdGVzIDx0ZW1wbGF0ZURpcj4gIGRpcmVjdG9yeSB3aGVyZSB0ZW1wbGF0ZXMgYXJlIGxvY2F0ZWQgKGRlZmF1bHRzIHRvIGludGVybmFsIHRlbXBsYXRlcyBkaXJlY3RvcnkpCiAgICAtYiwgLS1iYXNlZGlyIDxiYXNlRGlyPiAgICAgICAgZGlyZWN0b3J5IHRvIHVzZSBhcyB0aGUgYmFzZSB3aGVuIHJlc29sdmluZyBsb2NhbCBmaWxlIHJlZmVyZW5jZXMgKGRlZmF1bHRzIHRvIE9wZW5BUEkgZmlsZSBkaXJlY3RvcnkpCiAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgb3V0cHV0IHVzYWdlIGluZm9ybWF0aW9uCmBgYAoKIyMjIyBFeGFtcGxlcwoKVGhlIHNob3J0ZXN0IHBvc3NpYmxlIHN5bnRheDoKYGBgYmFzaApvZyBvcGVuYXBpLnlhbWwgbWFya2Rvd24KYGBgCgpTcGVjaWZ5IHdoZXJlIHRvIHB1dCB0aGUgZ2VuZXJhdGVkIGNvZGU6CmBgYGJhc2gKb2cgLW8gLi9teS1kb2NzIG9wZW5hcGkueWFtbCBtYXJrZG93bgpgYGAKCiMjIFRlbXBsYXRlcwoKIyMjIENyZWF0aW5nIHlvdXIgb3duIHRlbXBsYXRlcwpUZW1wbGF0ZXMgYXJlIHRoZSBzb3VyY2VzIHdoZXJlIHRoZSByZXN1bHQgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbS4gVGhlcmUgYXJlIGFscmVhZHkgc29tZSB0ZW1wbGF0ZXMKeW91IGNhbiB1c2UgdG8gZ2VuZXJhdGUgY29kZSBhbmQgZG9jdW1lbnRhdGlvbi4KClRoZSBmaWxlcyBpbiB5b3VyIHRlbXBsYXRlIGNhbiBiZSBvZiB0aGUgZm9sbG93aW5nIHR5cGVzOgoxLiBTdGF0aWM6IFRoaXMga2luZCBvZiBmaWxlcyB3aWxsIGJlIHNpbXBseSBjb3BpZWQgdG8gdGhlIG91dHB1dCBkaXJlY3RvcnkuCjIuIFRlbXBsYXRlczogVGhpcyBraW5kIG9mIGZpbGVzIHdpbGwgYmUgY29tcGlsZWQgdXNpbmcgW0hhbmRsZWJhcnNdKGh0dHA6Ly9oYW5kbGViYXJzanMuY29tLyksIGFuZCBjb3BpZWQgdG8gdGhlIG91dHB1dCBkaXJlY3RvcnkuCjMuIFBhdGggdGVtcGxhdGVzOiBUaGlzIGtpbmQgb2YgZmlsZXMgd2lsbCBiZSBjb21waWxlZCB1c2luZyBbSGFuZGxlYmFyc10oaHR0cDovL2hhbmRsZWJhcnNqcy5jb20vKSwgYnV0IGl0IHdpbGwgZ2VuZXJhdGUgb25lIGZpbGUgcGVyIE9wZW5BUEkgcGF0aC4KCkFzc3VtaW5nIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBPcGVuQVBJIFNwZWM6CmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IE9wZW5BUEkgUGV0c3RvcmUKICBsaWNlbnNlOgogICAgbmFtZTogTUlUCnNlcnZlcnM6CiAgLSB1cmw6IGh0dHA6Ly9wZXRzdG9yZS5vcGVuYXBpLmlvL3YxCnBhdGhzOgogIC9wZXQ6CiAgICBnZXQ6Li4uCiAgICBwb3N0Oi4uLgogIC9wZXQve3BldElkfToKICAgIGdldDouLi4KICAvdXNlci9sb2dpbjoKICAgIHBvc3Q6Li4uCiAgL3VzZXIve3VzZXJuYW1lfToKICAgIGdldDouLi4KICAgIHB1dDouLi4KICAgIGRlbGV0ZTouLi4KLi4uCmBgYApBbmQgc29tZSB0ZW1wbGF0ZSBmaWxlcyBsaWtlIHRoaXM6CmBgYAp8LSBpbmRleC5qcyAgICAgICAgICAgIC8vIFRoaXMgZmlsZSBjb250YWlucyBzdGF0aWMgY29kZSwgZS5nLiBzdGFydGluZyBhIHdlYnNlcnZlciBhbmQgaW5jbHVkaW5nIC4vYXBpL2luZGV4LmpzCnwrIGFwaS8KIHwtIGluZGV4LmpzLmhicyAgICAgICAvLyBUaGlzIGlzIGEgc3RhdGljIHRlbXBsYXRlLCBpdCBjb250YWlucyBwbGFjZWhvbGRlcnMgdGhhdCB3aWxsIGJlIGZpbGxlZCBpbiwgZS5nLiBpbmNsdWRlcyBmb3IgZWFjaCBmaWxlIGluIHJvdXRlcwogfCsgcm91dGVzLwogIHwtICQkcGF0aCQkLnJvdXRlLmpzLmhicyAgICAgIC8vIFRoaXMgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgZWFjaCBvcGVyYXRpb24gYW5kIGNvbnRhaW5zIHNrZWxldG9uIGNvZGUgZm9yIGVhY2ggbWV0aG9kIGZvciBhbiBvcGVyYXRpb24uCiAgfCsgJCRwYXRoJCQvICAgICAgICAgICAgICAgICAgLy8gVGhpcyBmb2xkZXIgd2lsbCBhbHNvIGJlIGdlbmVyYXRlZCBmb3IgZWFjaCBvcGVyYXRpb24uCiAgICB8LSByb3V0ZS5qcy5oYnMgICAgICAgICAgICAgLy8gVGhpcyBpcyBhbm90aGVyIGV4YW1wbGUgb2YgYW4gb3BlcmF0aW9uIGZpbGUuCmBgYApUaGUgZmlyc3QgaW1wb3J0YW50IHRoaW5nIHRvIG5vdGljZSBoZXJlIGlzIHRoZSB2YXJpYWJsZSBub3RhdGlvbiBpbiBgJCRwYXRoJCQucm91dGUuanMuaGJzYC4gSXQgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgbmFtZSBvZiB0aGUgcGF0aC4KClRoaXMgZXhhbXBsZSBhbHNvIHNob3dzIGAkJHBhdGgkJGAgdXNlZCBpbiBhIGZvbGRlciBuYW1lIC0gdGhlIGdlbmVyYXRlZCBmb2xkZXIgbmFtZXMgaGVyZSB3aWxsIHJlcGxhY2UgJCRwYXRoJCQgd2l0aAp0aGUgbmFtZSBvZiB0aGUgcGF0aCAoaW4ga2ViYWItY2FzZSkuCgpJbiB0aGlzIGV4YW1wbGUgdGhlIGdlbmVyYXRlZCBkaXJlY3Rvcnkgc3RydWN0dXJlIHdpbGwgYmUgbGlrZSB0aGlzOgpgYGAKfC0gaW5kZXguanMgICAgICAgICAgICAvLyBUaGlzIGZpbGUgc3RpbGwgY29udGFpbnMgc3RhdGljIGNvZGUgbGlrZSBiZWZvcmUuCnwrIGFwaS8KIHwtIGluZGV4LmpzICAgICAgICAgICAvLyBUaGlzIGZpbGUgd2lsbCBub3cgZS5nLiBoYXZlIGluY2x1ZGVkIHRoZSB0d28gZmlsZXMgaW4gcm91dGVzLgogfCsgcm91dGVzLwogIHwtIHBldC5yb3V0ZS5qcyAgICAgIC8vIFRoaXMgZmlsZSBjb250YWlucyB0aGUgY29kZSBmb3IgbWV0aG9kcyBvbiBwZXRzLgogIHwgICAgICAgICAgICAgICAgICAgIC8vIChlLmcuIGdldFBldCwgcG9zdFBldCwgZ2V0UGV0QnlQZXRJZCkuCiAgfC0gdXNlci5yb3V0ZS5qcyAgICAgLy8gVGhpcyBmaWxlIHdpbGwgY29udGFpbiB0aGUgY29kZSBmb3IgbWV0aG9kcyBvbiB1c2Vycy4KICB8ICAgICAgICAgICAgICAgICAgICAvLyAoZS5nLiBwb3N0VXNlckxvZ2luLCBnZXRVc2VyQnlVc2VybmFtZSwgcHV0VXNlckJ5VXNlcm5hbWUsIGRlbGV0ZVVzZXJCeVVzZXJuYW1lKS4KICB8KyBwZXQvCiAgIHwgLSByb3V0ZS5qcyAgICAgICAgLy8gdGhpcyBmaWxlIGFsc28gY29udGFpbnMgdGhlIGNvZGUgZm9yIG1ldGhvZHMgb24gcGV0cy4KICB8KyB1c2VyLwogICB8IC0gcm91dGUuanMgICAgICAgIC8vIHRoaXMgZmlsZSBhbHNvIGNvbnRhaW5zIHRoZSBjb2RlIGZvciBtZXRob2RzIG9uIHVzZXJzLgpgYGAKCiMjIyBUZW1wbGF0ZSBmaWxlIGV4dGVuc2lvbnMKWW91IGNhbiAob3B0aW9uYWxseSkgbmFtZSB5b3VyIHRlbXBsYXRlIGZpbGVzIHdpdGggYC5oYnNgIGV4dGVuc2lvbnMsIHdoaWNoIHdpbGwgYmUgcmVtb3ZlZCB3aGVuIHdyaXRpbmcgdGhlIGdlbmVyYXRlZApmaWxlLiBlLmcuIGBpbmRleC5qcy5oYnNgIHdyaXRlcyBgaW5kZXguanNgLiBgaW5kZXguanNgIHdvdWxkIGFsc28gd3JpdGUgdG8gYGluZGV4LmpzYCwgaWYgeW91IHByZWZlciB0byBvbWl0IHRoZSBoYnMKZXh0ZW5zaW9uLgoKVGhlIG9ubHkgY2FzZSB3aGVyZSB0aGUgYC5oYnNgIGV4dGVuc2lvbiBpc24ndCBvcHRpb25hbCB3b3VsZCBiZSBpZiB5b3UgYXJlIHdyaXRpbmcgaGFuZGxlYmFycyB0ZW1wbGF0ZXMgd2l0aCB0aGUKdGVtcGxhdGVzLiBJbiB0aGF0IGNhc2UgdGhlIHRoZSB0ZW1wbGF0ZSB3b3VsZCBuZWVkIHRoZSBleHRlbnNpb24gYC5oYnMuaGJzYC4gYHVzZXJ0cGwuaGJzLmhic2Agd3JpdGVzIGB1c2VydHBsLmhic2AKKGJ1dCBgdXNlcnRwbC5oYnNgIGFzIGEgc291cmNlIHdvdWxkIHdyaXRlIGB1c2VydHBsYCB3aXRoIG5vIGV4dGVuc2lvbikuCgojIyMgVGVtcGxhdGUgZmlsZSBjb250ZW50ClRoZSBnZW5lcmF0b3IgcGFzc2VzIHRoZSBPcGVuQVBJIHNwZWMgdG8gdGVtcGxhdGUgZmlsZXMsIHNvIGFsbCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgYXZhaWxhYmxlIHRoZXJlLgpJbiBhZGRpdGlvbiB0byB0aGF0LCB0aGUgY29kZSBnZW5lcmF0b3IgYWRkcyBhIGJpdCBbbW9yZSBkYXRhXSgjZGF0YS1wYXNzZWQtdG8taGFuZGxlYmFycy10ZW1wbGF0ZXMpIHRoYXQgY2FuIGJlIGhlbHBmdWwuCgojIyMjIEV4YW1wbGVzOgojIyMjIyBEeW5hbWljYWxseSByZXF1aXJlIGZpbGVzIGluIEphdmFTY3JpcHQKYGBgbXVzdGFjaGUKe3sjZWFjaCBAcm9vdC5vcGVuYXBpLmVuZHBvaW50c319CmNvbnN0IHt7Ln19ID0gcmVxdWlyZSgnLi9yb3V0ZXMve3sufX0ucm91dGUuanMnKQp7ey9lYWNofX0KYGBgCndpbGwgcHJvZHVjZSAodXNpbmcgdGhlIE9BUyBTcGVjIGV4YW1wbGUgZnJvbSBhYm92ZSk6CmBgYGpzCmNvbnN0IHBldCA9IHJlcXVpcmUoJy4vcm91dGVzL3BldC5yb3V0ZS5qcycpCmNvbnN0IHVzZXIgPSByZXF1aXJlKCcuL3JvdXRlcy91c2VyLnJvdXRlLmpzJykKYGBgCgojIyMgRGF0YSBwYXNzZWQgdG8gSGFuZGxlYmFycyB0ZW1wbGF0ZXMKfCBQYXJhbSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tIHwgLS0tIHwKfG9wZW5hcGl8b2JqZWN0fFRoZSBPcGVuQVBJIHNwZWMufAp8b3BlbmFwaS5lbmRwb2ludHN8IG9iamVjdCB8IEFsbCBmaXJzdCBsZXZlbCBlbmRwb2ludHMgKGUuZyAgYHBldGAgYW5kIGB1c2VyYCkgfAoKIyMjIEN1c3RvbSBoYW5kbGViYXJzIGhlbHBlcnMKSWYgeW91ciB0ZW1wbGF0ZSBuZWVkcyBIYW5kbGViYXJzIGhlbHBlcnMsIHlvdSBjYW4gZGVmaW5lIHRoZW0gaW4gYSBkaXJlY3RvcnkgY2FsbGVkIGAuaGVscGVyc2AgaW5zaWRlIHlvdXIgdGVtcGxhdGUuCgpDaGVjayBvdXQgc29tZSBleGFtcGxlcyBpbiB0aGUgW21hcmtkb3duXSguL3RlbXBsYXRlcy9tYXJrZG93bi8uaGVscGVycykgdGVtcGxhdGUuCgojIyMgVXNpbmcgaGFuZGxlYmFycyBwYXJ0aWFscwpJZiB5b3Ugd2FudCB0byB1c2UgcGFydGlhbHMgaW4geW91ciB0ZW1wbGF0ZSwgZGVmaW5lIHRoZW0gaW4gYSBkaXJlY3RvcnkgY2FsbGVkIGAucGFydGlhbHNgIGluc2lkZSB5b3VyIHRlbXBsYXRlLgoKQ2hlY2sgb3V0IHNvbWUgZXhhbXBsZXMgaW4gdGhlIFttYXJrZG93bl0oLi90ZW1wbGF0ZXMvbWFya2Rvd24vLnBhcnRpYWxzKSB0ZW1wbGF0ZS4KCj4gVGhlIG5hbWUgb2YgdGhlIHBhcnRpYWwgd2lsbCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBmaWxlIG5hbWUsIGNvbnZlcnRlZCB0byBjYW1lbCBjYXNlLiBTbywgZm9yIGluc3RhbmNlLCBpZiB0aGUgZmlsZSBuYW1lIGlzIGBteS1wYXJ0aWFsLmpzYCwgeW91IGNhbiB1c2UgdGhlIHBhcnRpYWwgd2l0aCBge3s+IG15UGFydGlhbH19YC4KCiMjIEF1dGhvcnMKCiogRnJhbiBNw6luZGV6IChbQGZtdmlsYXNdKGh0dHA6Ly90d2l0dGVyLmNvbS9mbXZpbGFzKSkKKiBSaWNoYXJkIEtsb3NlIChbQHJpY2hhcmRrbG9zZV0oaHR0cDovL2dpdGh1Yi5jb20vcmljaGFyZGtsb3NlKSkK readmeEtag: '"212d73f5503dc5958a886b77ddcca13207b5f3fd"' readmeLastModified: Thu, 11 Jun 2020 10:46:34 GMT repositoryId: 142300673 description: >- Use your API OpenAPI 3 definition to generate code, documentation, and literally anything you need. created: '2018-07-25T13:02:15Z' updated: '2024-05-04T22:28:53Z' language: JavaScript archived: false stars: 89 watchers: 3 forks: 27 owner: openapi-contrib logo: https://avatars.githubusercontent.com/u/49447320?v=4 license: Apache-2.0 repoEtag: '"1517db19e7b8b83f80e1c39d017679d814cbca6eaa49c92e8463ba64a569edc5"' repoLastModified: Sat, 04 May 2024 22:28:53 GMT foundInMaster: true category: - Documentation - Parsers id: e0d1c54d6f4f90b4425f772e2c721064 - source: openapi3 tags repository: https://github.com/jellyfin/jellyfin-sdk-kotlin v3: true repositoryMetadata: base64Readme: >- PCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSBNRDAzMyBuby1pbmxpbmUtaHRtbCAtLT4KPGgxIGFsaWduPSJjZW50ZXIiPkplbGx5ZmluIEtvdGxpbiBTREs8L2gxPgo8aDMgYWxpZ249ImNlbnRlciI+UGFydCBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9qZWxseWZpbi5vcmcvIj5KZWxseWZpbiBQcm9qZWN0PC9hPjwvaDM+CgotLS0KCjxwIGFsaWduPSJjZW50ZXIiPgo8aW1nIGFsdD0iTG9nbyBCYW5uZXIiIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2plbGx5ZmluL2plbGx5ZmluLXV4L21hc3Rlci9icmFuZGluZy9TVkcvYmFubmVyLWxvZ28tc29saWQuc3ZnP3Nhbml0aXplPXRydWUiLz4KPGJyLz4KPGJyLz4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2plbGx5ZmluL2plbGx5ZmluLXNkay1rb3RsaW4iPgo8aW1nIGFsdD0iTEdQTCAzLjAgbGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2plbGx5ZmluL2plbGx5ZmluLXNkay1rb3RsaW4uc3ZnIi8+CjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2plbGx5ZmluL2plbGx5ZmluLXNkay1rb3RsaW4vcmVsZWFzZXMiPgo8aW1nIGFsdD0iQ3VycmVudCBSZWxlYXNlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlbGVhc2UvamVsbHlmaW4vamVsbHlmaW4tc2RrLWtvdGxpbi5zdmciLz4KPC9hPgo8YSBocmVmPSJodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9b3JnLmplbGx5ZmluLnNkayI+CjxpbWcgYWx0PSJNYXZlbiBDZW50cmFsIFJlbGVhc2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3Yvb3JnLmplbGx5ZmluLnNkay9qZWxseWZpbi1jb3JlLnN2ZyIvPgo8L2E+Cjxici8+CjxhIGhyZWY9Imh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2plbGx5ZmluIj4KPGltZyBhbHQ9IkRvbmF0ZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2FsbC9qZWxseWZpbi5zdmc/bGFiZWw9YmFja2VycyIvPgo8L2E+CjxhIGhyZWY9Imh0dHBzOi8vbWF0cml4LnRvLyMvK2plbGx5ZmluLWFuZHJvaWQtZGV2Om1hdHJpeC5vcmciPgo8aW1nIGFsdD0iQ2hhdCBvbiBNYXRyaXgiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXRyaXgvamVsbHlmaW4tYW5kcm9pZC1kZXY6bWF0cml4Lm9yZy5zdmc/bG9nbz1tYXRyaXgiLz4KPC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5yZWRkaXQuY29tL3IvamVsbHlmaW4iPgo8aW1nIGFsdD0iSm9pbiBvdXIgU3VicmVkZGl0IiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVkZGl0LXIlMkZqZWxseWZpbi0lMjNGRjU3MDAuc3ZnIi8+CjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2plbGx5ZmluL2plbGx5ZmluLXNkay1rb3RsaW4vcmVsZWFzZXMuYXRvbSI+CjxpbWcgYWx0PSJSZWxlYXNlIFJTUyBGZWVkIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcnNzLXJlbGVhc2VzLWZmYTUwMD9sb2dvPXJzcyIgLz4KPC9hPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vamVsbHlmaW4vamVsbHlmaW4tc2RrLWtvdGxpbi9jb21taXRzL21hc3Rlci5hdG9tIj4KPGltZyBhbHQ9Ik1hc3RlciBDb21taXRzIFJTUyBGZWVkIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcnNzLWNvbW1pdHMtZmZhNTAwP2xvZ289cnNzIiAvPgo8L2E+CjwvcD4KCi0tLQoKVGhlIEtvdGxpbiBTREsgZm9yIEplbGx5ZmluIGltcGxlbWVudHMgdGhlIEplbGx5ZmluIEFQSSB0byBlYXNpbHkgYWNjZXNzIHNlcnZlcnMuIEl0IGlzIGN1cnJlbnRseSBhdmFpbGFibGUKZm9yIHRoZSBKVk0gYW5kIEFuZHJvaWQuIERldmVsb3BlciBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBhdCBba290bGluLXNkay5qZWxseWZpbi5vcmddLgoKW2tvdGxpbi1zZGsuamVsbHlmaW4ub3JnXTogaHR0cHM6Ly9rb3RsaW4tc2RrLmplbGx5ZmluLm9yZy9ndWlkZS9nZXR0aW5nLXN0YXJ0ZWQuaHRtbAoKIyMgQ29udHJpYnV0aW5nCgpXZSB3ZWxjb21lIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIFNESy4gT3BlbiBhbiBpc3N1ZSBvciBhc2sgaW4gb3VyIG9mZmljaWFsIGNoYXRzIGlmIHlvdSBwbGFuIHRvIG1ha2UgYmlnZ2VyIGNoYW5nZXMuCgpUbyB2YWxpZGF0ZSBiaW5hcnkgY29tcGF0aWJpbGl0eSB3ZSB1c2UgdGhlIFtCaW5hcnkgY29tcGF0aWJpbGl0eSB2YWxpZGF0b3JdIHRvb2wgZnJvbSB0aGUgS290bGluIHRlYW0uIFdoZW4gY3JlYXRpbmcKcHVsbCByZXF1ZXN0cyB0aGUgYXBpIGZpbGVzIG5lZWQgdG8gYmUgdXBkYXRlZC4gVXNlIHRoZSBgYXBpRHVtcGAgR3JhZGxlIHRhc2sgdG8gZ2VuZXJhdGUgdGhlIGFwaSBmaWxlcy4gQWRkIHRoZSBjaGFuZ2VzCmZyb20gdGhpcyBjb21tYW5kIHRvIGEgc2VwYXJhdGUgY29tbWl0IHRvIG1ha2UgdGhlIHJldmlldyBwcm9jZXNzIGVhc2llci4KCltCaW5hcnkgY29tcGF0aWJpbGl0eSB2YWxpZGF0b3JdOiBodHRwczovL2dpdGh1Yi5jb20vS290bGluL2JpbmFyeS1jb21wYXRpYmlsaXR5LXZhbGlkYXRvcgoKIyMgVGVzdGluZwoKVGhlIFNESyBpbmNsdWRlcyB0d28gZXhhbXBsZSBwcm9qZWN0cywgdGhlIGtvdGxpbi1jbGkgYW5kIGphdmEtY2xpLCB0byB0ZXN0IHZhcmlvdXMgbGFyZ2VyIGZ1bmN0aW9ucyBsaWtlIHNlcnZlcgpkaXNjb3ZlcnkuIEJlc2lkZXMgdGhhdCB3ZSB1c2UgdW5pdCB0ZXN0cyB0byB0ZXN0IHNtYWxsZXIgY29tcG9uZW50cywgdGhlc2UgY2FuIGJlIGV4ZWN1dGVkIHdpdGggdGhlIGBhbGxUZXN0c2AgR3JhZGxlCnRhc2suIFdlIHJlY29tbWVuZCBhZGRpbmcgbmV3IHRlc3RzIGZvciBjaGFuZ2VzIHRvIHRoZQpjb2RlLgoKIyMjIFRlc3RpbmcgaW4gYXBwCgpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHRlc3QgYSBuZXcgdmVyc2lvbiBvZiB0aGUgU0RLIGluIHlvdXIgb3duIGFwcC4gVXNlIHRoZSBgcHVibGlzaFRvTWF2ZW5Mb2NhbGAgR3JhZGxlIHRhc2sgdG8KcHVibGlzaCB0aGUgU0RLIHRvIHlvdXIgbG9jYWwgc3lzdGVtLCBhZnRlcndhcmRzIHlvdSBjYW4gYWRkIGBtYXZlbkxvY2FsKClgIGFzIHJlcG9zaXRvcnkgYW5kIHVzZSB0aGUgYGxhdGVzdC1TTkFQU0hPVGAKdmVyc2lvbiBmb3IgdGhlIFNESy4gVGhpcyBwcm9jZXNzIGlzIHNpbXBsaWZpZWQgaW4gb3VyIG9mZmljaWFsIGFwcHMgYnkgYWRkaW5nIGFuIG9wdGlvbiB0byB0aGUgYGdyYWRsZS5wcm9wZXJ0aWVzYApmaWxlLgo= readmeEtag: '"925febc521a5d268edef39455564ae08f6a8166c"' readmeLastModified: Mon, 05 Aug 2024 06:33:58 GMT repositoryId: 162836730 description: Kotlin SDK for Jellyfin, supporting Android and JVM targets created: '2018-12-22T19:14:06Z' updated: '2024-08-29T19:44:33Z' language: Kotlin archived: false stars: 85 watchers: 10 forks: 42 owner: jellyfin logo: https://avatars.githubusercontent.com/u/45698031?v=4 license: LGPL-3.0 repoEtag: '"5a928fd350a0b4e97506179fe4048db0dba4d505c4d5d765d58e835f78bc4f87"' repoLastModified: Thu, 29 Aug 2024 19:44:33 GMT foundInMaster: true category: Testing id: f51a5c8eb1a78ed2479cabdb83d894d5 - source: openapi3 tags repository: https://github.com/hvuhsg/goapi v3: true id: 40d913554d015468454ac2a32e279fc9 repositoryMetadata: base64Readme: >- IyBHb0FQSQoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8ZW0+QSBGYXN0IGFuZCBFYXN5LXRvLXVzZSBXZWIgRnJhbWV3b3JrIGZvciBCdWlsZGluZyBBUElzIGluIEdvPC9lbT4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KCTxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9odnVoc2cvR29BUEkvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueW1sIiB0YXJnZXQ9Il9ibGFuayI+CgkJPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9odnVoc2cvR29BUEkvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbiIgYWx0PSJ0ZXN0cyBzdGF0dXMiPgoJPC9hPgoJPGEgaHJlZj0iaHR0cHM6Ly93d3cuc3RhbmR3aXRodXMuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPgoJCTxpbWcgc3JjPSJodHRwczovL2JhZGdlLnllaG95YWRhLmNvbSIgYWx0PSJCcmluZyBUaGVtIEhvbWUiPgoJPC9hPgo8L3A+CgotLS0KCioqRG9jdW1lbnRhdGlvbioqOiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaHZ1aHNnL0dvQVBJL1JFQURNRS5tZCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS9odnVoc2cvR29BUEkvUkVBRE1FLm1kPC9hPgoKKipTb3VyY2UgQ29kZSoqOiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaHZ1aHNnL0dvQVBJIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL2h2dWhzZy9Hb0FQSTwvYT4KCi0tLQoKCkdvQVBJIGlzIGEgd2ViIGZyYW1ld29yayB3cml0dGVuIGluIEdvIHRoYXQgaXMgaW5zcGlyZWQgYnkgRmFzdEFQSS4gSXQgYWxsb3dzIHlvdSB0byBxdWlja2x5IGJ1aWxkIGFuZCBkZXBsb3kgUkVTVGZ1bCBBUElzIHdpdGggbWluaW1hbCBlZmZvcnQuIFRoZSBmcmFtZXdvcmsgY29tZXMgd2l0aCBidWlsdC1pbiB2YWxpZGF0b3JzIHRoYXQgY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgYW5kIGF1dG8tYnVpbGQgdGhlIEFQSSBzY2hlbWEgd2l0aCBPcGVuQVBJIGZvcm1hdCAodmVyc2lvbiAzKS4gVGhpcyBtZWFucyB5b3UgY2FuIGZvY3VzIG9uIHRoZSBtYWluIGxvZ2ljIG9mIHlvdXIgYXBwbGljYXRpb24gd2hpbGUgdGhlIGZyYW1ld29yayBoYW5kbGVzIHRoZSB2YWxpZGF0aW9uIGFuZCBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uLiAgCgoKVGhlIGtleSBmZWF0dXJlcyBhcmU6Ci0gKiphdXRvbWF0aWMgZG9jcyoqIFstLS0tPl0oI2FwaS1kb2N1bWVudGF0aW9uKQotICoqZXh0ZW5zaWJsZSB2YWxpZGF0b3JzIHN5c3RlbSoqIFstLS0tPl0oI3ZhbGlkYXRpb24pCi0gKipoaWdoIGxldmVsIHN5bnRheCoqIFstLS0tPl0oI3VzYWdlKQotICoqbWlkZGxld2FyZXMqKiBzdXBwb3J0IFstLS0tPl0oI21pZGRsZXdhcmVzKQotICoqbmF0aXZlIGhhbmRsZXJzKiogc3VwcG9ydCBbLS0tLT5dKCNuYXRpdmUtaGFuZGxlcnMpCi0gKipTU0wvVExTKiogc3VwcG9ydCBbLS0tLT5dKCNodHRwcy1zdXBwb3J0KQotICoqbmdyb2sgdHVubmVsKiogYnVpbHQgaW4gWy0tLS0+XSgjbmdyb2stdHVubmVsKQoKIyMgUXVpY2sgU3RhcnQKIyMjIEluc3RhbGwKVG8gaW5zdGFsbCBHb0FQSSwgeW91IG5lZWQgdG8gaGF2ZSBHbyB2ZXJzaW9uIDEuMTMgb3IgaGlnaGVyIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gT25jZSB5b3UgaGF2ZSBpbnN0YWxsZWQgR28sIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBpbnN0YWxsIEdvQVBJOgoKYGBgc2gKZ28gZ2V0IGdpdGh1Yi5jb20vaHZ1aHNnL0dvQVBJCmBgYAoKIyMjIFVzYWdlCgpUbyB1c2UgR29BUEksIHlvdSBuZWVkIHRvIGltcG9ydCBpdCBpbiB5b3VyIEdvIGNvZGUgYW5kIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZ29hcGkuQXBwIG9iamVjdDoKCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICJnaXRodWIuY29tL2h2dWhzZy9nb2FwaSIKCmZ1bmMgbWFpbigpIHsKCWFwcCA6PSBnb2FwaS5Hb0FQSSgic21hbGwiLCAiMS4wdiIpCn0KYGBgCgpPbmNlIHlvdSBoYXZlIGNyZWF0ZWQgdGhlIGFwcCBpbnN0YW5jZSwgeW91IGNhbiBhZGQgcm91dGVzIHRvIGl0IGJ5IGNhbGxpbmcgdGhlIFBhdGgoKSBtZXRob2QgYW5kIHNwZWNpZnlpbmcgdGhlIHJvdXRlIHBhdGguIFlvdSBjYW4gYWxzbyBzZXQgdGhlIEhUVFAgbWV0aG9kcyB0aGF0IHRoZSByb3V0ZSBzdXBwb3J0cyB1c2luZyB0aGUgTWV0aG9kcygpIG1ldGhvZC4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgcm91dGUgdGhhdCBzdXBwb3J0IEdFVCBtZXRob2Q6CgpgYGBnbwpwYWNrYWdlIG1haW4KCmltcG9ydCAoCgkiZ2l0aHViLmNvbS9odnVoc2cvZ29hcGkiCgkiZ2l0aHViLmNvbS9odnVoc2cvZ29hcGkvcmVxdWVzdCIKCSJnaXRodWIuY29tL2h2dWhzZy9nb2FwaS9yZXNwb25zZXMiCgkiZ2l0aHViLmNvbS9odnVoc2cvZ29hcGkvdmFsaWRhdG9ycyIKKQoKZnVuYyBtYWluKCkgewoJYXBwIDo9IGdvYXBpLkdvQVBJKCJzbWFsbCIsICIxLjB2IikKCgllY2hvIDo9IGFwcC5QYXRoKCIvZWNobyIpCgllY2hvLk1ldGhvZHMoZ29hcGkuR0VUKQoJZWNoby5EZXNjcmlwdGlvbigiZWNobyBhIGJhY2siKQoJZWNoby5QYXJhbWV0ZXIoImEiLCBnb2FwaS5RVUVSWSwgdmFsaWRhdG9ycy5WUmVxdWlyZWR7fSwgdmFsaWRhdG9ycy5WSXNJbnR7fSkKCWVjaG8uQWN0aW9uKGZ1bmMocmVxdWVzdCAqcmVxdWVzdC5SZXF1ZXN0KSByZXNwb25zZXMuUmVzcG9uc2UgewoJCXJldHVybiByZXNwb25zZXMuTmV3SlNPTlJlc3BvbnNlKHJlc3BvbnNlcy5Kc29ueyJhIjogcmVxdWVzdC5HZXRJbnQoImEiKX0sIDIwMCkKCX0pCgoJYXBwLlJ1bigiMTI3LjAuMC4xIiwgODA4MCkKfQpgYGAKCkluIHRoZSBhYm92ZSBleGFtcGxlLCB3ZSBoYXZlIGNyZWF0ZWQgYSByb3V0ZSBhdCBgL2VjaG9gIHRoYXQgc3VwcG9ydHMgR0VUIG1ldGhvZC4gV2UgaGF2ZSBhbHNvIGFkZGVkIGEgZGVzY3JpcHRpb24gZm9yIHRoZSByb3V0ZSBhbmQgc3BlY2lmaWVkIHRoYXQgaXQgZXhwZWN0cyBhbiBpbnRlZ2VyIHBhcmFtZXRlciBjYWxsZWQgImEiLiBGaW5hbGx5LCB3ZSBoYXZlIHNwZWNpZmllZCB0aGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZCB3aGVuIHRoZSByb3V0ZSBpcyBhY2Nlc3NlZC4gSW4gdGhpcyBjYXNlLCB3ZSBhcmUgcmV0dXJuaW5nIGEgSlNPTiBvYmplY3QgdGhhdCBjb250YWlucyBhICJhIiBrZXkgd2l0aCB0aGUgdmFsdWUgb2YgYSBhcyBhbiBpbnRlZ2VyLgoKWW91IGNhbiBhZGQgYXMgbWFueSByb3V0ZXMgYXMgeW91IGxpa2UgdG8gdGhlIGFwcCBpbnN0YW5jZSwgYW5kIGVhY2ggcm91dGUgY2FuIGhhdmUgaXRzIG93biB1bmlxdWUgc2V0IG9mIHBhcmFtZXRlcnMgYW5kIHZhbGlkYXRvcnMuCgojIyBFeGFtcGxlcwoKVG8gaGVscCB5b3UgZ2V0IHN0YXJ0ZWQgd2l0aCB1c2luZyBHb0FQSSwgd2UgaGF2ZSBwcm92aWRlZCBzb21lIGV4YW1wbGVzIGluIHRoZSBleGFtcGxlcyBkaXJlY3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkuIFRoZXNlIGV4YW1wbGVzIGRlbW9uc3RyYXRlIHZhcmlvdXMgdXNlIGNhc2VzIG9mIHRoZSBmcmFtZXdvcmsgYW5kIGhvdyB0byB1c2UgaXRzIGZlYXR1cmVzLgoKVGhlIGV4YW1wbGVzIGluY2x1ZGVkIGFyZTogIAotIFsqKnNtYWxsZXN0KipdKC9leGFtcGxlcy9zbWFsbGVzdC8pIFRoZSBzbWFsbGVzdCBleGFtcGxlIG9mIHJlYWR5IHRvIHJ1biBhcGkuCi0gWyoqbWF0aF9hcGkqKl0oL2V4YW1wbGVzL21hdGhfYXBpLykgU2ltcGxlIHVzZSBvZiBtZXRob2RzLCBwYXJhbWV0ZXJzIGFuZCB2YWxpZGF0b3JzLiAgCi0gWyoqZXh0ZXJuYWxfaGFuZGxlcioqXSgvZXhhbXBsZXMvZXh0ZXJuYWxfaGFuZGxlci8pIFVzZSBvZiBleHRlcm5hbCBoYW5kbGVyIChGaWxlU2VydmVyKSBpbnQgdGhlIGFwcC4KLSBbKip0bHMqKl0oL2V4YW1wbGVzL3Rscy8pIFJ1bm5pbmcgdGhlIGFwcCB3aXRoIEhUVFBTIHN1cHBvcnQuCi0gWyoqbmdyb2tfdHVubmVsKipdKC9leGFtcGxlcy9uZ3Jva190dW5uZWwvKSBSdW4geW91ciBhcHAgb3ZlciBuZ3JvayB0dW5uZWwgd2l0aG91dCBhbnkgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLiAgCgpUbyBydW4gdGhlIGV4YW1wbGVzLCBuYXZpZ2F0ZSB0byB0aGUgZXhhbXBsZXMgZGlyZWN0b3J5IGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2gKZ28gcnVuIDxleGFtcGxlX25hbWU+L21haW4uZ28KYGBgCgpUaGlzIHdpbGwgc3RhcnQgdGhlIGV4YW1wbGUgc2VydmVyIGAxMjcuMC4wLjE6ODA4MGAgYW5kIHlvdSBjYW4gdmlzaXQgdGhlIGV4YW1wbGUgZW5kcG9pbnRzIGluIHlvdXIgd2ViIGJyb3dzZXIgb3IgdmlhIGN1cmwuClRvIHNlZSBhbGwgb2YgdGhlIGVuZHBvaW50cyB0b3UgY2FuIHZpc2l0IGAxMjcuMC4wLjE6ODA4MC9kb2NzYCB0byBzZWUgdGhlIGF1dG8gZ2VuZXJhdGVkIGludGVyYWN0aXZlIGRvY3MuCgpGZWVsIGZyZWUgdG8gdXNlIHRoZXNlIGV4YW1wbGVzIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIHlvdXIgb3duIHByb2plY3RzIGFuZCBtb2RpZnkgdGhlbSBhcyBuZWVkZWQuCgojIyBWYWxpZGF0aW9uCkdvQVBJIGNvbWVzIHdpdGggYnVpbHQtaW4gdmFsaWRhdG9ycyB0aGF0IGNhbiBiZSB1c2VkIHRvIHZhbGlkYXRlIGlucHV0IGRhdGEgYXV0b21hdGljYWxseS4gSW4gdGhlIGFib3ZlIGV4YW1wbGUsIHdlIHVzZWQgdGhlIGBWSXNJbnRgIHZhbGlkYXRvciB0byBlbnN1cmUgdGhhdCB0aGUgInRpbWVzdGFtcCIgcGFyYW1ldGVyIGlzIGFuIGludGVnZXIuIFdlIGFsc28gdXNlZCB0aGUgYFZSYW5nZWAgdmFsaWRhdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSAiYSIgYW5kICJiIiBwYXJhbWV0ZXJzIGZhbGxzIHdpdGhpbiBhIHNwZWNpZmllZCByYW5nZS4KCklmIHRoZSBpbnB1dCBkYXRhIGZhaWxzIHZhbGlkYXRpb24sIHRoZSBmcmFtZXdvcmsgd2lsbCBhdXRvbWF0aWNhbGx5IHJldHVybiBhbiBlcnJvciB0byB0aGUgY2xpZW50LiBUaGlzIG1lYW5zIHlvdSBjYW4gZm9jdXMgb24gdGhlIG1haW4gbG9naWMgb2YgeW91ciBhcHBsaWNhdGlvbiwgYW5kIHRoZSBmcmFtZXdvcmsgd2lsbCBoYW5kbGUgdGhlIHZhbGlkYXRpb24gZm9yIHlvdS4KCkhlcmUgaXMgYSB2YWxpZGF0b3IgZm9yIGV4YW1wbGUKPGRldGFpbHM+CjxzdW1tYXJ5PlNlZSB2YWxpZGF0b3I8L3N1bW1hcnk+CgpgYGBnbwovLyBWUmFuZ2UgaW1wbGVtZW50YWlvbiBmb3IgcmVmZXJuY2UKdHlwZSBWUmFuZ2Ugc3RydWN0IHsKCU1pbiBmbG9hdDY0CglNYXggZmxvYXQ2NAp9CgpmdW5jICh2IFZSYW5nZSkgVXBkYXRlT3BlbkFQSVNjaGVtYShzY2hlbWEgKm9wZW5hcGkzLlNjaGVtYSkgewoJc2NoZW1hLk1pbiA9ICZ2Lk1pbgoJc2NoZW1hLk1heCA9ICZ2Lk1heAp9CmZ1bmMgKHYgVlJhbmdlKSBWYWxpZGF0ZShyICpyZXF1ZXN0LlJlcXVlc3QsIHBhcmFtTmFtZSBzdHJpbmcpIGVycm9yIHsKCXZyIDo9IFZJc0Zsb2F0e30KCWVyciA6PSB2ci5WYWxpZGF0ZShyLCBwYXJhbU5hbWUpCglpZiBlcnIgIT0gbmlsIHsKCQlyZXR1cm4gZXJyCgl9CgoJZlZhbCA6PSByLkdldEZsb2F0KHBhcmFtTmFtZSkKCglpZiBmVmFsIDwgdi5NaW4gfHwgZlZhbCA+IHYuTWF4IHsKCQlyZXR1cm4gZm10LkVycm9yZigicGFyYW1ldGVyICVzIG11c3QgYmUgYmV0d2VlbiAlZiBhbmQgJWYiLCBwYXJhbU5hbWUsIHYuTWluLCB2Lk1heCkKCX0KCglyZXR1cm4gbmlsCn0KYGBgCjwvZGV0YWlscz4KCiMjIE1pZGRsZXdhcmVzCkdvQVBJIHN1cHBvcnRzIG1pZGRsZXdhcmVzLCBtaWRkbGV3YXJlcyBjYW4gYmUgZGVmaW5kIGluIHRoZSBhcHAgbGV2ZWwgb3IgaW4gdGhlIHZpZXcgbGV2ZWwsIG1pZGRsZXdhcmVzIGluIHRoZSBhcHAgbGV2ZWwgYXJlIGFwcGxpZWQgdG8gYWxsIHZpZXdzLgoKaGVyZSBpcyBhbiBleGFtcGxlIGZvciBsb2dnaW5nIG1pZGRsZXdhcmUsIHRoYXQgbG9ncyByZXF1ZXN0cyBpbiB0aGUgZm9ybWF0IHRoYXQgbmdpbnggdXNlcy4KPGRldGFpbHM+CjxzdW1tYXJ5PlNlZSBtaWRkbGV3YXJlPC9zdW1tYXJ5PgoKYGBgZ28KdHlwZSBMb2dnaW5nTWlkZGxld2FyZSBzdHJ1Y3R7fQoKZnVuYyAoTG9nZ2luZ01pZGRsZXdhcmUpIEFwcGx5KG5leHQgQXBwSGFuZGxlcikgQXBwSGFuZGxlciB7CglyZXR1cm4gZnVuYyhyZXF1ZXN0ICpyZXF1ZXN0LlJlcXVlc3QpIHJlc3BvbnNlcy5SZXNwb25zZSB7CgkJcmVzcG9uc2UgOj0gbmV4dChyZXF1ZXN0KQoKCQlzY2hlbWUgOj0gImh0dHAiCgkJaWYgcmVxdWVzdC5IVFRQUmVxdWVzdC5UTFMgIT0gbmlsIHsKCQkJc2NoZW1lID0gImh0dHBzIgoJCX0KCQlmdWxsVVJMIDo9IGZtdC5TcHJpbnRmKCIlczovLyVzJXMiLCBzY2hlbWUsIHJlcXVlc3QuSFRUUFJlcXVlc3QuSG9zdCwgcmVxdWVzdC5IVFRQUmVxdWVzdC5VUkwuU3RyaW5nKCkpCgoJCW1ldGhvZCA6PSByZXF1ZXN0LkhUVFBSZXF1ZXN0Lk1ldGhvZAoJCXBhdGggOj0gcmVxdWVzdC5IVFRQUmVxdWVzdC5VUkwuUGF0aAoJCXJlc3BvbnNlU2l6ZSA6PSBsZW4ocmVzcG9uc2UuVG9CeXRlcygpKQoJCXJlbW90ZUFkZHIgOj0gcmVxdWVzdC5IVFRQUmVxdWVzdC5SZW1vdGVBZGRyCgkJZGF0ZSA6PSB0aW1lLk5vdygpLkZvcm1hdCgiMjAwNi0wMS0wMiAxNTowNDowNSIpCgkJdXNlckFnZW50IDo9IHJlcXVlc3QuSFRUUFJlcXVlc3QuVXNlckFnZW50KCkKCQlzdGF0dXNDb2RlIDo9IHJlc3BvbnNlLlN0YXR1c0NvZGUoKQoKCQlsb2cuUHJpbnRmKCIlcyAtIC0gWyVzXSBcIiVzICVzICVzXCIgJWQgJWQgXCIlc1wiIFwiJXNcIlxuIiwgcmVtb3RlQWRkciwgZGF0ZSwgbWV0aG9kLCBwYXRoLCByZXF1ZXN0LkhUVFBSZXF1ZXN0LlByb3RvLCBzdGF0dXNDb2RlLCByZXNwb25zZVNpemUsIGZ1bGxVUkwsIHVzZXJBZ2VudCkKCQlyZXR1cm4gcmVzcG9uc2UKCX0KfQpgYGAKPC9kZXRhaWxzPgoKVG8gYXBwbHkgbWlkZGxld2FyZXMgc2ltcGx5IHBhc3MgaXQgdG8gdGhlIE1pZGRsZXdhcmVzIG1ldGhvZCBmb3IgdGhlIGFwcCBvciBmb3IgdGhlIHZpZXcuCgpgYGBnbwpwYWNrYWdlIG1haW4KCmltcG9ydCAoCgkibmV0L2h0dHAiCgoJImdpdGh1Yi5jb20vaHZ1aHNnL2dvYXBpIgoJImdpdGh1Yi5jb20vaHZ1aHNnL2dvYXBpL21pZGRsZXdhcmVzIgopCgpmdW5jIG1haW4oKSB7CglhcHAgOj0gZ29hcGkuR29BUEkoImV4dGVybmFsIGhhbmRsZXIiLCAiMS4wdiIpCglhcHAuTWlkZGxld2FyZXMobWlkZGxld2FyZXMuTG9nZ2luZ01pZGRsZXdhcmV7fSkKfQpgYGAKCiMjIE5hdGl2ZSBoYW5kbGVycwpUbyBhbGxvdyB0aGUgdXNhZ2Ugb2YgbmF0aXZlIGhhbmRsZXJzIHdlIGFkZGVkIGEgc2ltcGxlIHdheSB0byBpbmNsdWRlIHRoZW0gaW4gdGhlIGFwcCwgc2ltcGx5IHBhc3MgdGhlIG5hdGl2ZSBIYW5kbGVyIGludG8gdGhlIEluY2x1ZGUgbWV0aG9kIG9mIHRoZSBhcHAuCgpOb3RlIHRoYXQgbmF0aXZlIGhhbmRsZXJzIHdpbGwgbm90IGJlIHNob3duIGluIHRoZSBhdXRvbWF0aWMgZG9jcywgYW5kIGN1cnJlbnRseSB3aWxsIG5vdCBiZSBhZmZlY3RlZCBieSB0aGUgbWlkZGxld2FyZXMuCgpoZXJlIGlzIGFuIGV4YW1wbGU6CmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9odnVoc2cvZ29hcGkiCikKCmZ1bmMgbWFpbigpIHsKCWFwcCA6PSBnb2FwaS5Hb0FQSSgiZXh0ZXJuYWwgaGFuZGxlciIsICIxLjB2IikKCgkvLyBTZXJ2ZSBmaWxlcyBmcm9tIEdvQVBJIGFwcCB1c2luZyB0aGUgSW5jbHVkZSBtZXRob2QgdGhhdCBhbGxvdyB1cyB0byBpbmNsdWRlIGV4dGVybmFsIGhhbmRsZXJzIGluIHRoZSBhcHAKCWFwcC5JbmNsdWRlKCIvIiwgaHR0cC5GaWxlU2VydmVyKGh0dHAuRGlyKCIuIikpKQoKCWFwcC5SdW4oIjEyNy4wLjAuMSIsIDgwODApCn0KYGBgCgojIyBBUEkgRG9jdW1lbnRhdGlvbgpHb0FQSSBjYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBBUEkgZG9jdW1lbnRhdGlvbiBpbiBPcGVuQVBJIGZvcm1hdCAodmVyc2lvbiAzKS4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIHNoYXJlIHlvdXIgQVBJIHdpdGggb3RoZXJzIGFuZCBpbnRlZ3JhdGUgaXQgd2l0aCBvdGhlciB0b29scyB0aGF0IHN1cHBvcnQgT3BlbkFQSS4KClRvIGdlbmVyYXRlIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiwgeW91IGNhbiBzaW1wbHkgdmlzaXQgdGhlICIvZG9jcyIgZW5kcG9pbnQgaW4geW91ciB3ZWIgYnJvd3Nlci4gVGhpcyB3aWxsIGRpc3BsYXkgYSB1c2VyLWZyaWVuZGx5IGludGVyZmFjZSB0aGF0IGFsbG93cyB5b3UgdG8gdmlldyB0aGUgQVBJIHNjaGVtYSBhbmQgdGVzdCB0aGUgQVBJIGVuZHBvaW50cy4KRm9yIHRoZSBKU09OIHNjaGVtYSB5b3UgY2FuIHZpc2l0ICIvb3BlbmFwaS5qc29uIi4gIAoKCiFbU3dhZ2dlciBVSV0oL2RvY3MvaW1hZ2VzL29wZW5hcGlfY2xvc2VkLnBuZykKIVtTd2FnZ2VyIHJvdXRlIG9wZW5dKC9kb2NzL2ltYWdlcy9vcGVuYXBpX29wZW4ucG5nKQoKIyMgSFRUUFMgU3VwcG9ydApHb0FQSSBjYW4gYWxzbyBzZXJ2ZSB0aGUgYXBpIG92ZXIgaHR0cHMsIHRoaXMgaXMgbm90IHJlY29tbWFuZGVkIGZvciBwcm9kdWN0aW9uLgpXZSByZWNvbW1hbmQgdXNpbmcgTmdpbnggb3Igb3RoZXIgdHlwZXMgb2YgcmV2ZXJzZSBwcm94eSB0byBoYW5kbGUgdGhlIFNTTC9UTFMgc2VjdXJpdHkuCgpUbyBydW4gdGhlIGFwcGxpY2F0aW9uIG92ZXIgVExTIGp1c3QgdXNlIHRoZSAqKlJ1blRMUyoqIG1ldGhvZCBvZiB0aGUgYXBwLgoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImdpdGh1Yi5jb20vaHZ1aHNnL2dvYXBpIgoJImdpdGh1Yi5jb20vaHZ1aHNnL2dvYXBpL3JlcXVlc3QiCgkiZ2l0aHViLmNvbS9odnVoc2cvZ29hcGkvcmVzcG9uc2VzIgopCgpmdW5jIG1haW4oKSB7CglhcHAgOj0gZ29hcGkuR29BUEkoIlRMUyBleGFtcGxlIiwgIjEuMHYiKQoKCXJvb3QgOj0gYXBwLlBhdGgoIi8iKQoJcm9vdC5NZXRob2RzKGdvYXBpLkdFVCkKCXJvb3QuRGVzY3JpcHRpb24oInNpbXBsZSByb3V0ZSIpCglyb290LkFjdGlvbihmdW5jKHJlcXVlc3QgKnJlcXVlc3QuUmVxdWVzdCkgcmVzcG9uc2VzLlJlc3BvbnNlIHsKCQlyZXR1cm4gcmVzcG9uc2VzLk5ld0hUTUxSZXNwb25zZSgiPGgxPkhUTUwgT3ZlciBIVFRQUzwvaDE+IiwgMjAwKQoJfSkKCglhcHAuUnVuVExTKCIxMjcuMC4wLjEiLCA4MDgwLCAiLi9zZXJ2ZXIuY3J0IiwgIi4vc2VydmVyLmtleSIpCn0KYGBgCgojIyBOZ3JvayBUdW5uZWwKR29BUEkgc3VwcG9ydCBzZWFtbGVzcyBhbmQgc2ltcGxlIHVzZSBvZiBuZ3JvayB0dW5uZWxzIGR1cmluZyB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIHNlcnZlci4KPGRldGFpbHM+CjxzdW1tYXJ5PkNvZGUgZXhhbXBsZTwvc3VtbWFyeT4KCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJsb2ciCgkib3MiCgoJImdpdGh1Yi5jb20vaHZ1aHNnL2dvYXBpIgoJImdpdGh1Yi5jb20vaHZ1aHNnL2dvYXBpL3JlcXVlc3QiCgkiZ2l0aHViLmNvbS9odnVoc2cvZ29hcGkvcmVzcG9uc2VzIgopCgpmdW5jIG1haW4oKSB7CglhcHAgOj0gZ29hcGkuR29BUEkoIm5ncm9rIHR1bm5lbCIsICIxLjB2IikKCgllY2hvIDo9IGFwcC5QYXRoKCIvIikKCWVjaG8uTWV0aG9kcyhnb2FwaS5HRVQpCgllY2hvLkRlc2NyaXB0aW9uKCJob21lIHBhZ2UiKQoJZWNoby5BY3Rpb24oZnVuYyhyZXF1ZXN0ICpyZXF1ZXN0LlJlcXVlc3QpIHJlc3BvbnNlcy5SZXNwb25zZSB7CgkJcmV0dXJuIHJlc3BvbnNlcy5OZXdIVE1MUmVzcG9uc2UoIjxoMT5TZXJ2ZWQgb3ZlciBuZ3JvayB0dW5uZWw8L2gxPiIsIDIwMCkKCX0pCgoJbmdyb2tUb2tlbiA6PSBvcy5HZXRlbnYoIk5HUk9LX1RPS0VOIikKCWlmIG5ncm9rVG9rZW4gPT0gIiIgewoJCWxvZy5QcmludGxuKCJFbnZpcm9tZW50IHZhcmlhYmxlIE5HUk9LX1RPS0VOIGlzIHJlcXVpcmVkIikKCQlvcy5FeGl0KDEpCgl9CgoJYXBwLlJ1bk5ncm9rKG5ncm9rVG9rZW4pCn0KYGBgCjwvZGV0YWlscz4K readmeEtag: '"ec8f2f7f9ec7ed89691552cba2ae5a4cdc94210f"' readmeLastModified: Wed, 10 Apr 2024 15:44:02 GMT repositoryId: 601809698 description: GoAPI - A Fast and Easy-to-use Web Framework for Building APIs in Go created: '2023-02-14T21:41:22Z' updated: '2024-08-08T06:14:41Z' language: Go archived: false stars: 84 watchers: 2 forks: 4 owner: hvuhsg logo: https://avatars.githubusercontent.com/u/34660046?v=4 license: MIT repoEtag: '"de2a73830cfcf226c1d1f12aafea5ea989645f46ab9d46b109673085f63082af"' repoLastModified: Thu, 08 Aug 2024 06:14:41 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/pylons/pyramid_openapi3 v3: true repositoryMetadata: base64Readme: >- IyBweXJhbWlkX29wZW5hcGkzCgojIyBWYWxpZGF0ZSBbUHlyYW1pZF0oaHR0cHM6Ly90cnlweXJhbWlkLmNvbSkgdmlld3MgYWdhaW5zdCBbT3BlbkFQSSAzLjAvMy4xXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIGRvY3VtZW50cwoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBhbHQ9IlB5cmFtaWQgYW5kIE9wZW5BUEkgbG9nb3MiCiAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy9weXJhbWlkX29wZW5hcGkzL2Jsb2IvbWFpbi9oZWFkZXIuanBnP3Jhdz10cnVlIj4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy9weXJhbWlkX29wZW5hcGkzL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCI+CiAgICA8aW1nIGFsdD0iQ0kgZm9yIHB5cmFtaWRfb3BlbmFwaTMgKG1haW4gYnJhbmNoKSIKICAgICAgICAgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3B5cmFtaWRfb3BlbmFwaTMvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sL2JhZGdlLnN2ZyI+CiAgPC9hPgogIDxpbWcgYWx0PSJUZXN0IGNvdmVyYWdlIChtYWluIGJyYW5jaCkiCiAgICAgICBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdGVzdHNfY292ZXJhZ2UtMTAwJTI1LWJyaWdodGdyZWVuLnN2ZyI+CiAgPGltZyBhbHQ9IlRlc3QgY292ZXJhZ2UgKG1haW4gYnJhbmNoKSIKICAgICAgIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90eXBlc19jb3ZlcmFnZS0xMDAlMjUtYnJpZ2h0Z3JlZW4uc3ZnIj4KICA8YSBocmVmPSJodHRwczovL3B5cGkub3JnL3Byb2plY3QvcHlyYW1pZF9vcGVuYXBpMy8iPgogICAgPGltZyBhbHQ9ImxhdGVzdCB2ZXJzaW9uIG9mIHB5cmFtaWRfb3BlbmFwaTMgb24gUHlQSSIKICAgICAgICAgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9weXJhbWlkX29wZW5hcGkzLnN2ZyI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9weXJhbWlkX29wZW5hcGkzLyI+CiAgICA8aW1nIGFsdD0iU3VwcG9ydGVkIFB5dGhvbiB2ZXJzaW9ucyIKICAgICAgICAgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9weXJhbWlkX29wZW5hcGkzLnN2ZyI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvcHlyYW1pZF9vcGVuYXBpMy9ibG9iL21haW4vTElDRU5TRSI+CiAgICA8aW1nIGFsdD0iTGljZW5zZTogTUlUIgogICAgICAgICBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZyI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvcHlyYW1pZF9vcGVuYXBpMy9ncmFwaHMvY29udHJpYnV0b3JzIj4KICAgIDxpbWcgYWx0PSJCdWlsdCBieSB0aGVzZSBncmVhdCBmb2xrcyEiCiAgICAgICAgIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29udHJpYnV0b3JzL1B5bG9ucy9weXJhbWlkX29wZW5hcGkzLnN2ZyI+CiAgPC9hPgo8L3A+CgojIyBQZWFjZSBvZiBNaW5kCgpUaGUgcmVhc29uIHRoaXMgcGFja2FnZSBleGlzdHMgaXMgdG8gZ2l2ZSB5b3UgcGVhY2Ugb2YgbWluZCB3aGVuIHByb3ZpZGluZyBhIFJFU1RmdWwgQVBJLiBJbnN0ZWFkIG9mIGNoYXNpbmcgZG93biBwcmV2ZW50YWJsZSBidWdzIGFuZCBzYXlpbmcgc29ycnkgdG8gY29uc3VtZXJzLCB5b3UgY2FuIGZvY3VzIG9uIG1vcmUgaW1wb3J0YW50IHRoaW5ncyBpbiBsaWZlLgoKLSBZb3VyICoqQVBJIGRvY3VtZW50YXRpb24gaXMgbmV2ZXIgb3V0LW9mLWRhdGUqKiwgc2luY2UgaXQgaXMgZ2VuZXJhdGVkIG91dCBvZiB0aGUgQVBJIGRvY3VtZW50IHRoYXQgeW91IHdyaXRlLgotIFRoZSBkb2N1bWVudGF0aW9uIGNvbWVzIHdpdGggKipfdHJ5LWl0LW91dF8gZXhhbXBsZXMqKiBmb3IgZXZlcnkgZW5kcG9pbnQgaW4geW91ciBBUEkuIFlvdSBkb24ndCBoYXZlIHRvIHByb3ZpZGUgKGFuZCBtYWludGFpbikgYGN1cmxgIGNvbW1hbmRzIHRvIHNob3djYXNlIGhvdyB5b3VyIEFQSSB3b3Jrcy4gVXNlcnMgY2FuIHRyeSBpdCB0aGVtc2VsdmVzLCByaWdodCBpbiB0aGVpciBicm93c2Vycy4KLSBZb3VyICoqQVBJIGRvY3VtZW50IGlzIGFsd2F5cyB2YWxpZCoqLCBzaW5jZSB5b3VyIFB5cmFtaWQgYXBwIHdvbid0IGV2ZW4gc3RhcnQgaWYgdGhlIGRvY3VtZW50IGRvZXMgbm90IGNvbXBseSB3aXRoIHRoZSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uLgotIEF1dG9tYXRpYyByZXF1ZXN0ICoqcGF5bG9hZCB2YWxpZGF0aW9uIGFuZCBzYW5pdGl6YXRpb24qKi4gWW91ciB2aWV3cyBkbyBub3QgcmVxdWlyZSBhbnkgY29kZSBmb3IgdmFsaWRhdGlvbiBhbmQgaW5wdXQgc2FuaXRhdGlvbi4gWW91ciB2aWV3IGNvZGUgb25seSBkZWFscyB3aXRoIGJ1c2luZXNzIGxvZ2ljLiBUb25zIG9mIHRlc3RzIG5ldmVyIG5lZWQgdG8gYmUgd3JpdHRlbiBzaW5jZSBldmVyeSByZXF1ZXN0LCBhbmQgaXRzIHBheWxvYWQsIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IHlvdXIgQVBJIGRvY3VtZW50IGJlZm9yZSBpdCByZWFjaGVzIHlvdXIgdmlldyBjb2RlLgotIFlvdXIgQVBJICoqcmVzcG9uc2VzIGFsd2F5cyBtYXRjaCB5b3VyIEFQSSBkb2N1bWVudCoqLiBFdmVyeSByZXNwb25zZSBmcm9tIHlvdXIgdmlldyBpcyB2YWxpZGF0ZWQgYWdhaW5zdCB5b3VyIGRvY3VtZW50IGFuZCBhIGA1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yYCBpcyByZXR1cm5lZCBpZiB0aGUgcmVzcG9uc2UgZG9lcyBub3QgZXhhY3RseSBtYXRjaCB3aGF0IHlvdXIgZG9jdW1lbnQgc2F5cyB0aGUgb3V0cHV0IG9mIGEgY2VydGFpbiBBUEkgZW5kcG9pbnQgc2hvdWxkIGJlLiBUaGlzIGRlY3JlYXNlcyB0aGUgZWZmZWN0cyBvZiBbSHlydW0ncyBMYXddKGh0dHBzOi8vd3d3Lmh5cnVtc2xhdy5jb20pLgotICoqQSBzaW5nbGUgc291cmNlIG9mIHRydXRoKiouIEJlY2F1c2Ugb2YgdGhlIGNoZWNrcyBvdXRsaW5lZCBhYm92ZSwgeW91IGNhbiBiZSBzdXJlIHRoYXQgd2hhdGV2ZXIgeW91ciBBUEkgZG9jdW1lbnQgc2F5cyBpcyBpbiBmYWN0IHdoYXQgaXMgZ29pbmcgb24gaW4gcmVhbGl0eS4gWW91IGhhdmUgYSBzaW5nbGUgc291cmNlIG9mIHRydXRoIHRvIGNvbnN1bHQgd2hlbiBhc2tpbmcgYW4gQVBJIHJlbGF0ZWQgcXVlc3Rpb24sIHN1Y2ggYXMgIlJlbWluZCBtZSBhZ2Fpbiwgd2hpY2ggZmllbGRzIGFyZSByZXR1cm5lZCBieSB0aGUgZW5kcG9pbnQgYC91c2VyL2luZm9gPyIuCi0gQmFzZWQgb24gW1B5cmFtaWRdKGh0dHBzOi8vdHJ5cHlyYW1pZC5jb20pLCBhICoqbWF0dXJlIFB5dGhvbiBXZWIgZnJhbWV3b3JrKiouIENvbXBhbmllcyBzdWNoIGFzIE1vemlsbGEsIFllbHAsIFJvbGxCYXIgYW5kIFN1cnZleU1vbmtleSBbdHJ1c3QgUHlyYW1pZF0oaHR0cHM6Ly90cnlweXJhbWlkLmNvbS9jb21tdW5pdHktcG93ZXJlZC1ieS1weXJhbWlkLmh0bWwpLCBhbmQgdGhlIG5ldyBbcHlwaS5vcmddKGh0dHBzOi8vZ2l0aHViLmNvbS9weXBhL3dhcmVob3VzZSkgcnVucyBvbiBQeXJhbWlkLCB0b28uIFB5cmFtaWQgaXMgdGhvcm91Z2hseSBbdGVzdGVkXShodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL1B5cmFtaWQvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQSUyMkJ1aWxkK2FuZCt0ZXN0JTIyKSBhbmQgW2RvY3VtZW50ZWRdKGh0dHBzOi8vZG9jcy5weWxvbnNwcm9qZWN0Lm9yZy9wcm9qZWN0cy9weXJhbWlkL2VuL2xhdGVzdC8pLCBwcm92aWRpbmcgZmxleGliaWxpdHksIHBlcmZvcm1hbmNlLCBhbmQgYSBsYXJnZSBlY29zeXN0ZW0gb2YgW2hpZ2gtcXVhbGl0eSBhZGQtb25zXShodHRwczovL3RyeXB5cmFtaWQuY29tL2V4dGVuZGluZy1weXJhbWlkLmh0bWwpLgoKPHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UDB6TnhyRE8wc0UmYW1wO3Q9MTA2MSIgdGl0bGU9IkJ1aWxkaW5nIFJvYnVzdCBBUElzIiByZWw9Im5vZm9sbG93IiBjbGFzcz0icmljaC1kaWZmLWxldmVsLW9uZSI+PGltZyBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzMxMTU4MC85NzM2NDc3Mi02ZDI0NmE4MC0xODljLTExZWItODRmMi1hMGFkMjMyMzYwMDMucG5nIiBhbHQ9IkJ1aWxkaW5nIFJvYnVzdCBBUElzIiBzdHlsZT0ibWF4LXdpZHRoOjEwMCU7Ij48L2E+CjwvcD4KCiMjIEZlYXR1cmVzCgotIFZhbGlkYXRlcyB5b3VyIEFQSSBkb2N1bWVudCAoZm9yIGV4YW1wbGUsIGBvcGVuYXBpLnlhbWxgIG9yIGBvcGVuYXBpLmpzb25gKSBhZ2FpbnN0IHRoZSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uIHVzaW5nIHRoZSBbb3BlbmFwaS1zcGVjLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3AxYzJ1L29wZW5hcGktc3BlYy12YWxpZGF0b3IpLgotIEdlbmVyYXRlcyBhbmQgc2VydmVzIHRoZSBbU3dhZ2dlciB0cnktaXQtb3V0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby90b29scy9zd2FnZ2VyLXVpLykgZm9yIHlvdXIgQVBJLgotIFZhbGlkYXRlcyBpbmNvbWluZyByZXF1ZXN0cyBfYW5kXyBvdXRnb2luZyByZXNwb25zZXMgYWdhaW5zdCB5b3VyIEFQSSBkb2N1bWVudCB1c2luZyBbb3BlbmFwaS1jb3JlXShodHRwczovL2dpdGh1Yi5jb20vcDFjMnUvb3BlbmFwaS1jb3JlKS4KCiMjIEdldHRpbmcgc3RhcnRlZAoKMS4gRGVjbGFyZSBgcHlyYW1pZF9vcGVuYXBpM2AgYXMgYSBkZXBlbmRlbmN5IGluIHlvdXIgUHlyYW1pZCBwcm9qZWN0LgoKMi4gSW5jbHVkZSB0aGUgZm9sbG93aW5nIGxpbmVzOgoKICAgIGBgYHB5dGhvbgogICAgY29uZmlnLmluY2x1ZGUoInB5cmFtaWRfb3BlbmFwaTMiKQogICAgY29uZmlnLnB5cmFtaWRfb3BlbmFwaTNfc3BlYygnb3BlbmFwaS55YW1sJywgcm91dGU9Jy9hcGkvdjEvb3BlbmFwaS55YW1sJykKICAgIGNvbmZpZy5weXJhbWlkX29wZW5hcGkzX2FkZF9leHBsb3Jlcihyb3V0ZT0nL2FwaS92MS8nKQogICAgYGBgCgozLiBVc2UgdGhlIGBvcGVuYXBpYCBbdmlldyBwcmVkaWNhdGVdKGh0dHBzOi8vZG9jcy5weWxvbnNwcm9qZWN0Lm9yZy9wcm9qZWN0cy9weXJhbWlkL2VuL2xhdGVzdC9uYXJyL3ZpZXdjb25maWcuaHRtbCN2aWV3LWNvbmZpZ3VyYXRpb24tcGFyYW1ldGVycykgdG8gZW5hYmxlIHJlcXVlc3QvcmVzcG9uc2UgdmFsaWRhdGlvbjoKCiAgICBgYGBweXRob24KICAgIEB2aWV3X2NvbmZpZyhyb3V0ZV9uYW1lPSJmb29iYXIiLCBvcGVuYXBpPVRydWUsIHJlbmRlcmVyPSdqc29uJykKICAgIGRlZiBteXZpZXcocmVxdWVzdCk6CiAgICAgICAgcmV0dXJuIHJlcXVlc3Qub3BlbmFwaV92YWxpZGF0ZWQucGFyYW1ldGVycwogICAgYGBgCgpGb3IgcmVxdWVzdHMsIGByZXF1ZXN0Lm9wZW5hcGlfdmFsaWRhdGVkYCBpcyBhdmFpbGFibGUgd2l0aCB0d28gZmllbGRzOiBgcGFyYW1ldGVyc2AgYW5kIGBib2R5YC4KRm9yIHJlc3BvbnNlcywgaWYgdGhlIHBheWxvYWQgZG9lcyBub3QgbWF0Y2ggdGhlIEFQSSBkb2N1bWVudCwgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZC4KCiMjIEFkdmFuY2VkIGNvbmZpZ3VyYXRpb24KCiMjIyBSZWxhdGl2ZSBGaWxlIFJlZmVyZW5jZXMgaW4gU3BlYwoKQSBmZWF0dXJlIGludHJvZHVjZWQgaW4gT3BlbkFQSTMgaXMgdGhlIGFiaWxpdHkgdG8gdXNlIGAkcmVmYCBsaW5rcyB0byBleHRlcm5hbCBmaWxlcyAoPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNyZWZlcmVuY2Utb2JqZWN0PikuCgpUbyB1c2UgdGhpcywgeW91IG11c3QgZW5zdXJlIHRoYXQgeW91IGhhdmUgYWxsIG9mIHlvdXIgc3BlYyBmaWxlcyBpbiBhIGdpdmVuIGRpcmVjdG9yeSAoZW5zdXJlIHRoYXQgeW91IGRvIG5vdCBoYXZlIGFueSBjb2RlIGluIHRoaXMgZGlyZWN0b3J5IGFzIGFsbCB0aGUgZmlsZXMgaW4gaXQgYXJlIGV4cG9zZWQgYXMgc3RhdGljIGZpbGVzKSwgdGhlbiAqKnJlcGxhY2UqKiB0aGUgYHB5cmFtaWRfb3BlbmFwaTNfc3BlY2AgY2FsbCB0aGF0IHlvdSBkaWQgaW4gW0dldHRpbmcgU3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkgd2l0aCB0aGUgZm9sbG93aW5nOgoKYGBgcHl0aG9uCmNvbmZpZy5weXJhbWlkX29wZW5hcGkzX3NwZWNfZGlyZWN0b3J5KCdwYXRoL3RvL29wZW5hcGkueWFtbCcsIHJvdXRlPScvYXBpL3YxL3NwZWMnKQpgYGAKClNvbWUgbm90ZXM6CgotIERvIG5vdCBzZXQgdGhlIGByb3V0ZWAgb2YgeW91ciBgcHlyYW1pZF9vcGVuYXBpM19zcGVjX2RpcmVjdG9yeWAgdG8gdGhlIHNhbWUgdmFsdWUgYXMgdGhlIGByb3V0ZWAgb2YgYHB5cmFtaWRfb3BlbmFwaTNfYWRkX2V4cGxvcmVyYC4KLSBUaGUgYHJvdXRlYCB0aGF0IHlvdSBzZXQgZm9yIGBweXJhbWlkX29wZW5hcGkzX3NwZWNfZGlyZWN0b3J5YCBzaG91bGQgbm90IGNvbnRhaW4gYW55IGZpbGUgZXh0ZW5zaW9ucywgYXMgdGhpcyBiZWNvbWVzIHRoZSByb290IGZvciBhbGwgb2YgdGhlIGZpbGVzIGluIHlvdXIgc3BlY2lmaWVkIGBmaWxlcGF0aGAuCi0gWW91IGNhbm5vdCB1c2UgYHB5cmFtaWRfb3BlbmFwaTNfc3BlY19kaXJlY3RvcnlgIGFuZCBgcHlyYW1pZF9vcGVuYXBpM19zcGVjYCBpbiB0aGUgc2FtZSBhcHAuCgojIyMgRW5kcG9pbnRzIC8gUmVxdWVzdCAvIFJlc3BvbnNlIFZhbGlkYXRpb24KClByb3ZpZGVkIHdpdGggYHB5cmFtaWRfb3BlbmFwaTNgIGFyZSBhIGZldyB2YWxpZGF0aW9uIGZlYXR1cmVzOgoKLSBpbmNvbWluZyByZXF1ZXN0IHZhbGlkYXRpb24gKGkuZS4sIHdoYXQgYSBjbGllbnQgc2VuZHMgdG8geW91ciBhcHApCi0gb3V0Z29pbmcgcmVzcG9uc2UgdmFsaWRhdGlvbiAoaS5lLiwgd2hhdCB5b3VyIGFwcCBzZW5kcyB0byBhIGNsaWVudCkKLSBlbmRwb2ludCB2YWxpZGF0aW9uIChpLmUuLCB5b3VyIGFwcCByZWdpc3RlcnMgcm91dGVzIGZvciBhbGwgZGVmaW5lZCBBUEkgZW5kcG9pbnRzKQoKVGhlc2UgZmVhdHVyZXMgYXJlIGVuYWJsZWQgYXMgYSBkZWZhdWx0LCBidXQgeW91IGNhbiBkaXNhYmxlIHRoZW0gaWYgeW91IG5lZWQgdG86CgpgYGBweXRob24KY29uZmlnLnJlZ2lzdHJ5LnNldHRpbmdzWyJweXJhbWlkX29wZW5hcGkzLmVuYWJsZV9lbmRwb2ludF92YWxpZGF0aW9uIl0gPSBGYWxzZQpjb25maWcucmVnaXN0cnkuc2V0dGluZ3NbInB5cmFtaWRfb3BlbmFwaTMuZW5hYmxlX3JlcXVlc3RfdmFsaWRhdGlvbiJdID0gRmFsc2UKY29uZmlnLnJlZ2lzdHJ5LnNldHRpbmdzWyJweXJhbWlkX29wZW5hcGkzLmVuYWJsZV9yZXNwb25zZV92YWxpZGF0aW9uIl0gPSBGYWxzZQpgYGAKCj4gWyFXQVJOSU5HXQo+IERpc2FibGluZyByZXF1ZXN0IHZhbGlkYXRpb24gd2lsbCByZXN1bHQgaW4gYHJlcXVlc3Qub3BlbmFwaV92YWxpZGF0ZWRgIG5vIGxvbmdlciBiZWluZyBhdmFpbGFibGUgdG8gdXNlLgoKIyMjIFJlZ2lzdGVyIFB5cmFtaWQncyBSb3V0ZXMKCllvdSBjYW4gcmVnaXN0ZXIgcm91dGVzIGluIHlvdXIgcHlyYW1pZCBhcHBsaWNhdGlvbi4KRmlyc3QsIHdyaXRlIHRoZSBgeC1weXJhbWlkLXJvdXRlLW5hbWVgIGV4dGVuc2lvbiBpbiB0aGUgUGF0aEl0ZW0gb2YgdGhlIE9wZW5BUEkgc2NoZW1hLgoKYGBgeWFtbApwYXRoczoKICAvZm9vOgogICAgeC1weXJhbWlkLXJvdXRlLW5hbWU6IGZvb19yb3V0ZQogICAgZ2V0OgogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IEdFVCBmb28KYGBgCgpUaGVuIHB1dCB0aGUgY29uZmlnIGRpcmVjdGl2ZSBgcHlyYW1pZF9vcGVuYXBpM19yZWdpc3Rlcl9yb3V0ZXNgIGluIHRoZSBhcHBfZmFjdG9yeSBvZiB5b3VyIGFwcGxpY2F0aW9uLgoKYGBgcHl0aG9uCmNvbmZpZy5weXJhbWlkX29wZW5hcGkzX3JlZ2lzdGVyX3JvdXRlcygpCmBgYAoKVGhpcyBpcyBlcXVhbCB0byBtYW51YWxseSB3cml0aW5nIHRoZSBmb2xsb3dpbmc6CgpgYGBweXRob24KY29uZmlnLmFkZF9yb3V0ZSgiZm9vX3JvdXRlIiwgcGF0dGVybj0iL2ZvbyIpCmBgYAoKVGhlIGBweXJhbWlkX29wZW5hcGkzX3JlZ2lzdGVyX3JvdXRlcygpYCBtZXRob2Qgc3VwcG9ydHMgc2V0dGluZyBhIGZhY3RvcnkgYW5kIHJvdXRlIHByZWZpeCBhcyB3ZWxsLiBTZWUgdGhlIHNvdXJjZSBmb3IgZGV0YWlscy4KCiMjIyBTcGVjaWZ5IHByb3RvY29sIGFuZCBwb3J0IGZvciBnZXR0aW5nIHRoZSBPcGVuQVBJIDMgc3BlYyBmaWxlCgpTb21ldGltZXMsIGl0IGlzIG5lY2Vzc2FyeSB0byBzcGVjaWZ5IHRoZSBwcm90b2NvbCBhbmQgcG9ydCB0byBhY2Nlc3MgdGhlIG9wZW5hcGkzIHNwZWMgZmlsZS4gVGhpcyBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYHByb3RvX3BvcnRgIG9wdGlvbmFsIHBhcmFtZXRlciB0byB0aGUgdGhlIGBweXJhbWlkX29wZW5hcGkzX2FkZF9leHBsb3JlcmAgZnVuY3Rpb246CgpgYGBweXRob24KY29uZmlnLnB5cmFtaWRfb3BlbmFwaTNfYWRkX2V4cGxvcmVyKHByb3RvX3BvcnQ9KCdodHRwcycsIDQ0MykpCmBgYAoKIyMgRGVtbyAvIEV4YW1wbGVzCgpUaGVyZSBhcmUgdGhyZWUgZXhhbXBsZXMgcHJvdmlkZWQgd2l0aCB0aGlzIHBhY2thZ2U6CgotIEEgZmFpcmx5IHNpbXBsZSBbc2luZ2xlLWZpbGUgYXBwIHByb3ZpZGluZyBhIEhlbGxvIFdvcmxkIEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy9weXJhbWlkX29wZW5hcGkzL3RyZWUvbWFpbi9leGFtcGxlcy9zaW5nbGVmaWxlKS4KLSBBIHNsaWdodGx5IG1vcmUgW2J1aWx0LW91dCBhcHAgcHJvdmlkaW5nIGEgVE9ETyBhcHAgQVBJXShodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3B5cmFtaWRfb3BlbmFwaTMvdHJlZS9tYWluL2V4YW1wbGVzL3RvZG9hcHApLgotIEFub3RoZXIgVE9ETyBhcHAgQVBJLCBkZWZpbmVkIHVzaW5nIGEgW1lBTUwgc3BlYyBzcGxpdCBpbnRvIG11bHRpcGxlIGZpbGVzXShodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3B5cmFtaWRfb3BlbmFwaTMvdHJlZS9tYWluL2V4YW1wbGVzL3NwbGl0ZmlsZSkuCgpBbGwgZXhhbXBsZXMgY29tZSB3aXRoIHRlc3RzIHRoYXQgZXhoaWJpdCBweXJhbWlkX29wZW5hcGkncyBlcnJvciBoYW5kbGluZyBhbmQgdmFsaWRhdGlvbiBjYXBhYmlsaXRpZXMuCgpBICoqZnVsbHkgYnVpbHQtb3V0IGFwcCoqLCB3aXRoIDEwMCUgdGVzdCBjb3ZlcmFnZSwgcHJvdmlkaW5nIGEgW1JlYWxXb3JsZC5pb10oaHR0cHM6Ly9yZWFsd29ybGQuaW8pIEFQSSBpcyBhdmFpbGFibGUgYXQgW25pdGVvd2ViL3B5cmFtaWQtcmVhbHdvcmxkLWV4YW1wbGUtYXBwXShodHRwczovL2dpdGh1Yi5jb20vbml0ZW93ZWIvcHlyYW1pZC1yZWFsd29ybGQtZXhhbXBsZS1hcHApLiBJdCBpcyBhIEhlcm9rdS1kZXBsb3lhYmxlIFB5cmFtaWQgYXBwIHRoYXQgcHJvdmlkZXMgYW4gQVBJIGZvciBhIE1lZGl1bS5jb20tbGlrZSBzb2NpYWwgYXBwLiBZb3UgYXJlIGVuY291cmFnZWQgdG8gdXNlIGl0IGFzIGEgc2NhZmZvbGQgZm9yIHlvdXIgbmV4dCBwcm9qZWN0LgoKIyMgRGVzaWduIGRlZmVuc2UKClRoZSBhdXRob3JzIG9mIHB5cmFtaWRfb3BlbmFwaTMgYmVsaWV2ZSB0aGF0IHRoZSBhcHByb2FjaCBvZiB2YWxpZGF0aW5nIGEgbWFudWFsbHktd3JpdHRlbiBBUEkgZG9jdW1lbnQgaXMgc3VwZXJpb3IgdG8gdGhlIGFwcHJvYWNoIG9mIGdlbmVyYXRpbmcgdGhlIEFQSSBkb2N1bWVudCBmcm9tIFB5dGhvbiBjb2RlLiBIZXJlIGFyZSB0aGUgcmVhc29uczoKCjEuIEJvdGggZ2VuZXJhdGlvbiBhbmQgdmFsaWRhdGlvbiBhZ2FpbnN0IGEgZG9jdW1lbnQgYXJlIGxvc3N5IHByb2Nlc3Nlcy4gVGhlIHVuZGVybHlpbmcgbGlicmFyaWVzIHJ1bm5pbmcgdGhlIGdlbmVyYXRpb24vdmFsaWRhdGlvbiB3aWxsIGFsd2F5cyBoYXZlIHNvbWV0aGluZyBtaXNzaW5nLiBFaXRoZXIgYSBmZWF0dXJlIGZyb20gdGhlIGxhdGVzdCBPcGVuQVBJIHNwZWNpZmljYXRpb24sIG9yIGFuIGltcGxlbWVudGF0aW9uIGJ1Zy4gSGF2aW5nIHRvIGZvcmsgdGhlIHVuZGVybHlpbmcgbGlicmFyeSBpbiBvcmRlciB0byBnZW5lcmF0ZSB0aGUgcGFydCBvZiB5b3VyIEFQSSBkb2N1bWVudCB0aGF0IG1pZ2h0IG9ubHkgYmUgbmVlZGVkIGZvciB0aGUgZnJvbnRlbmQgaXMgdW5mb3J0dW5hdGUuCgogICAgVmFsaWRhdGlvbiBvbiB0aGUgb3RoZXIgaGFuZCBhbGxvd3Mgb25lIHRvIHNraXAgcGFydHMgb2YgdmFsaWRhdGlvbiB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIHlldCwgYW5kIG5vdCBibG9jayBhIHRlYW0gZnJvbSBzaGlwcGluZyB0aGUgZG9jdW1lbnQuCgoyLiBUaGUgdmFsaWRhdGlvbiBhcHByb2FjaCBkb2VzIHNhY3JpZmljZSBEUlktbmVzcywgYW5kIG9uZSBoYXMgdG8gd3JpdGUgdGhlIEFQSSBkb2N1bWVudCBhbmQgdGhlbiB0aGUgKHZpZXcpIGNvZGUgaW4gUHlyYW1pZC4gSXQgZmVlbHMgYSBiaXQgcmVkdW5kYW50IGF0IGZpcnN0LiBIb3dldmVyLCB0aGlzIHByb3ZpZGVzIGEgY2xlYXIgc2VwYXJhdGlvbiBiZXR3ZWVuIHRoZSBpbnRlbnQgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbi4KCjMuIFRoZSBnZW5lcmF0aW9uIGFwcHJvYWNoIGhhcyB0aGUgZHJhd2JhY2sgb2YgaGF2aW5nIHRvIHdyaXRlIFB5dGhvbiBjb2RlIGV2ZW4gZm9yIHBhcnRzIG9mIHRoZSBBUEkgZG9jdW1lbnQgdGhhdCB0aGUgUHlyYW1pZCBiYWNrZW5kIGRvZXMgbm90IGhhbmRsZSwgYXMgaXQgbWlnaHQgYmUgaGFuZGxlZCBieSBhIGRpZmZlcmVudCBzeXN0ZW0sIG9yIGJlIHNwZWNpZmljIG9ubHkgdG8gZG9jdW1lbnRhdGlvbiBvciBvbmx5IHRvIHRoZSBjbGllbnQgc2lkZSBvZiB0aGUgQVBJLiBUaGlzIGJsb2F0cyB5b3VyIFB5cmFtaWQgY29kZWJhc2Ugd2l0aCBjb2RlIHRoYXQgZG9lcyBub3QgYmVsb25nIHRoZXJlLgoKIyMgUnVubmluZyB0ZXN0cwoKWW91IG5lZWQgdG8gaGF2ZSBbcG9ldHJ5XShodHRwczovL3B5dGhvbi1wb2V0cnkub3JnLykgYW5kIFB5dGhvbiAzLjEwICYgMy4xMiBpbnN0YWxsZWQgb24geW91ciBtYWNoaW5lLiBBbGwgYE1ha2VmaWxlYCBjb21tYW5kcyBhc3N1bWUgeW91IGhhdmUgdGhlIFBvZXRyeSBlbnZpcm9ubWVudCBhY3RpdmF0ZWQsIGkuZS4gYHBvZXRyeSBzaGVsbGAuCgpBbHRlcm5hdGl2ZWx5LCBpZiB5b3UgdXNlIFtuaXhdKGh0dHBzOi8vbml4LmRldi90dXRvcmlhbHMvZGVjbGFyYXRpdmUtYW5kLXJlcHJvZHVjaWJsZS1kZXZlbG9wZXItZW52aXJvbm1lbnRzKSwgcnVuIGBuaXgtc2hlbGxgIHRvIGRyb3AgaW50byBhIHNoZWxsIHRoYXQgaGFzIGV2ZXJ5dGhpbmcgcHJlcGFyZWQgZm9yIGRldmVsb3BtZW50LgoKVGhlbiB5b3UgY2FuIHJ1bjoKCmBgYHNoZWxsCm1ha2UgdGVzdHMKYGBgCgojIyBSZWxhdGVkIHBhY2thZ2VzCgpUaGVzZSBwYWNrYWdlcyB0YWNrbGUgdGhlIHNhbWUgcHJvYmxlbS1zcGFjZToKCi0gW3B5cmFtaWRfb2FzM10oaHR0cHM6Ly9naXRodWIuY29tL2thenVraS9weXJhbWlkLW9hczMpIHNlZW1zIHRvIGRvIHRoaW5ncyB2ZXJ5IHNpbWlsYXJseSB0byBweXJhbWlkX29wZW5hcGkzLCBidXQgdGhlIGRvY3VtZW50YXRpb24gaXMgbm90IGluIEVuZ2xpc2ggYW5kIHdlIHNhZGx5IGNhbid0IGZ1bGx5IHVuZGVyc3RhbmQgd2hhdCBpdCBkb2VzIGJ5IGp1c3QgcmVhZGluZyB0aGUgY29kZS4KLSBbcHlyYW1pZF9zd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vc3RyaWdsaWEvcHlyYW1pZF9zd2FnZ2VyKSBkb2VzIGEgc2ltaWxhcgogIHRoaW5nLCBidXQgZm9yIFN3YWdnZXIgMi4wIGRvY3VtZW50cy4KLSBbY29ubmV4aW9uXShodHRwczovL2dpdGh1Yi5jb20vemFsYW5kby9jb25uZXhpb24pIHRha2VzIHRoZSBzYW1lICJ3cml0ZSBzcGVjIGZpcnN0LCBjb2RlIHNlY29uZCIgYXBwcm9hY2ggYXMgcHlyYW1pZF9vcGVuYXBpMywgYnV0IGlzIGJhc2VkIG9uIEZsYXNrLgotIFtib3R0bGUtc3dhZ2dlcl0oaHR0cHM6Ly9naXRodWIuY29tL2FtcGVkYW5kd2lyZWQvYm90dGxlLXN3YWdnZXIpIHRha2VzIHRoZSBzYW1lICJ3cml0ZSBzcGVjIGZpcnN0LCBjb2RlIHNlY29uZCIgYXBwcm9hY2ggdG9vLCBidXQgaXMgYmFzZWQgb24gQm90dGxlLgotIFtweXJhbWlkX2FwaXNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lcmdvL3B5cmFtaWRfYXBpc3BlYykgdXNlcyBnZW5lcmF0aW9uIHdpdGgKICBoZWxwIG9mIGFwaXNwZWMgYW5kIHRoZSBtYXJzaG1hbGxvdyB2YWxpZGF0aW9uIGxpYnJhcnkuIFNlZSBhYm92ZSBbd2h5IHdlIHByZWZlciB2YWxpZGF0aW9uIGluc3RlYWQgb2YgZ2VuZXJhdGlvbl0oI2Rlc2lnbi1kZWZlbnNlKS4KCiMjIERlcHJlY2F0aW9uIHBvbGljeQoKV2UgZG8gb3VyIGJlc3QgdG8gZm9sbG93IHRoZSBydWxlcyBiZWxvdy4KCi0gU3VwcG9ydCB0aGUgbGF0ZXN0IGZldyByZWxlYXNlcyBvZiBQeXRob24sIGN1cnJlbnRseSBQeXRob24gMy4xMCB0aHJvdWdoIDMuMTIuCi0gU3VwcG9ydCB0aGUgbGF0ZXN0IGZldyByZWxlYXNlcyBvZiBQeXJhbWlkLCBjdXJyZW50bHkgMS4xMC43IHRocm91Z2ggMi4wLjIuCi0gU3VwcG9ydCB0aGUgbGF0ZXN0IGZldyByZWxlYXNlcyBvZiBgb3BlbmFwaS1jb3JlYCwgY3VycmVudGx5IGp1c3QgMC4xOS4wLgotIFNlZSBgcG9ldHJ5LmxvY2tgIGZvciBhIGZyb3plbi1pbi10aW1lIGtub3duLWdvb2Qtc2V0IG9mIGFsbCBkZXBlbmRlbmNpZXMuCgojIyBVc2UgaW4gdGhlIHdpbGQKCkEgY291cGxlIG9mIHByb2plY3RzIHRoYXQgdXNlIHB5cmFtaWRfb3BlbmFwaTMgaW4gcHJvZHVjdGlvbjoKCi0gW1BhcmV0byBTZWN1cml0eSBUZWFtIERhc2hib2FyZCBBUEldKGh0dHBzOi8vZGFzaC5wYXJldG9zZWN1cml0eS5jb20vYXBpL3YxKSAtIFRlYW0gRGFzaGJvYXJkIGZvciBQYXJldG8gU2VjdXJpdHkgbWFjT1Mgc2VjdXJpdHkgYXBwLgotIFtTRU8gRG9tYWluIEZpbmRlciBBUEldKGh0dHBzOi8vYXBwLnNlb2RvbWFpbmZpbmRlci5jb20vYXBpL3YxKSAtIEEgdG9vbCBmb3IgZmluZGluZyBleHBpcmVkIGRvbWFpbnMgd2l0aCBTRU8gdmFsdWUuCi0gW1JhbmthbHl6ZXIuaW9dKGh0dHBzOi8vYXBwLnJhbmthbHl6ZXIuaW8vYXBpL3YxKSAtIE1vbml0b3IgU0VPIGNoYW5nZXMgYW5kIHN0cmF0ZWdpZXMgb2YgY29tcGV0aXRvcnMgdG8gaW1wcm92ZSB5b3VyIHNlYXJjaCB0cmFmZmljLgotIFtLYWZrYWkgQVBJXShodHRwczovL2FwcC5rYWZrYWkuY29tL2FwaS92MSkgLSBVc2VyIGNvbnRyb2wgcGFuZWwgZm9yIEthZmthaSB0ZXh0IGdlbmVyYXRpb24gc2VydmljZS4KLSBbT3BlbiBvbi1jaGFpbiBkYXRhIEFQSV0oaHR0cHM6Ly90cmFkaW5nc3RyYXRlZ3kuYWkvYXBpL2V4cGxvcmVyLykgLSBEZWNlbnRyYWxpc2VkIGV4Y2hhbmdlIGFuZCBibG9ja2NoYWluIHRyYWRpbmcgZGF0YSBvcGVuIEFQSS4KLSBbTWF5ZXQgUlhdKGh0dHBzOi8vYXBwLm1heWV0cnguY29tL2FwaS92MSkgLSBWZW5kb3IgbWFuYWdlbWVudCBzeXN0ZW0gZm9yIHBoYXJtYS9tZWRpY2FsIGNsaW5pY2FsIHRyaWFscy4K readmeEtag: '"3264a0a45b59f94c848cf3615718f6b4cb627746"' readmeLastModified: Wed, 14 Aug 2024 19:27:36 GMT repositoryId: 138299589 description: Pyramid addon for OpenAPI3 validation of requests and responses. created: '2018-06-22T12:20:57Z' updated: '2024-08-14T19:27:40Z' language: Python archived: false stars: 82 watchers: 14 forks: 46 owner: Pylons logo: https://avatars.githubusercontent.com/u/452227?v=4 license: MIT repoEtag: '"ea13939ca340023885f9c74bc05bdd39242efe892b6f835f0683f6462db8d816"' repoLastModified: Wed, 14 Aug 2024 19:27:40 GMT foundInMaster: true category: Testing id: 68586d443740aa8b483e2facfd87c65e - source: openapi3 tags repository: https://github.com/wy-z/requests-openapi v3: true repositoryMetadata: base64Readme: >- IyByZXF1ZXN0cy1vcGVuYXBpCgpbIVtpbWFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvcmVxdWVzdHMtb3BlbmFwaS5zdmcpXShodHRwczovL3B5cGkub3JnL3Byb2plY3QvcmVxdWVzdHMtb3BlbmFwaS8pClshW2ltYWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvbC9yZXF1ZXN0cy1vcGVuYXBpLnN2ZyldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9yZXF1ZXN0cy1vcGVuYXBpLykKWyFbaW1hZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL3JlcXVlc3RzLW9wZW5hcGkuc3ZnKV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3JlcXVlc3RzLW9wZW5hcGkvKQpbIVtpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3d5LXovcmVxdWVzdHMtb3BlbmFwaS9tYXN0ZXIvdGVzdHMvY292ZXJhZ2UtYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3d5LXovcmVxdWVzdHMtb3BlbmFwaSkKCkEgbGlnaHR3ZWlnaHQgYnV0IHBvd2VyZnVsIGFuZCBlYXN5LXRvLXVzZSBQeXRob24gY2xpZW50IGxpYnJhcnkgZm9yIE9wZW5BUEkgdjMuCgojIyBLZXkgRmVhdHVyZXMKCi0gKipMaWdodHdlaWdodCBEZXNpZ24qKjogRXhwZXJpZW5jZSBhIG1pbmltYWxpc3RpYyBpbnRlcmZhY2UuCi0gKipGb2N1cyBvbiBFc3NlbnRpYWxzKio6IEhlbHBzIHlvdSBzaW1wbGlmeSB0aGUgaGFuZGxpbmcgb2YgUGF0aHMsIFBhcmFtZXRlcnMsIEhlYWRlcnMsIENvb2tpZXMsIGV0Yy4sIHdoaWxlIGluaGVyaXRpbmcgYWxsIHRoZSBjYXBhYmlsaXRpZXMgb2YgUmVxdWVzdHMuCi0gKipUZXN0aW5nIGFuZCBJbnRlZ3JhdGlvbiBNYWRlIEVhc3kqKjogV2hldGhlciB5b3UncmUgcnVubmluZyB0ZXN0cyBvciBpbnRlZ3JhdGluZyB3aXRoIG90aGVyIHN5c3RlbXMsIHRoZSBjbGllbnQgc2ltcGxpZmllcyB0aGVzZSB0YXNrcy4KCiMjIFVzYWdlCgpgYGBweXRob24KaW1wb3J0IHJlcXVlc3RzX29wZW5hcGkKCiMgbG9hZCBzcGVjIGZyb20gdXJsCmMgPSByZXF1ZXN0c19vcGVuYXBpLkNsaWVudCgpLmxvYWRfc3BlY19mcm9tX3VybCgiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFzdGVyL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbCIpCiMgb3IgbG9hZCBmcm9tIGZpbGUKYyA9IHJlcXVlc3RzX29wZW5hcGkuQ2xpZW50KCkubG9hZF9zcGVjX2Zyb21fZmlsZSgib3BlbmFwaS5qc29uIikKIyBzZXQgc2VydmVyCmMuc2V0X3NlcnZlcihyZXF1ZXN0c19vcGVuYXBpLlNlcnZlcih1cmw9Imh0dHBzOi8vZmFrZS5jb20vYXBpIikpCgojIGN1c3RvbSBzZXNzaW9uIGZvciBhdXRoIG9yIG90aGVycwpjLnJlcXVlc3RvciAjIGEgaW5zdGFuY2Ugb2YgcmVxdWVzdHMuU2Vzc2lvbiwgc2VlIGh0dHBzOi8vcmVxdWVzdHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3VzZXIvYWR2YW5jZWQvI3Nlc3Npb24tb2JqZWN0cwojIHNldCB1cGRhdGUgdG9rZW4KYy5yZXF1ZXN0b3IuaGVhZGVycy51cGRhdGUoeyJBdXRob3JpemF0aW9uIjogInRva2VuIn0pCgojIGNhbGwgYXBpIGJ5IG9wZXJhdGlvbiBpZApyZXNwID0gYy5saXN0UGV0cygpICMgcmVzcDogcmVxdWVzdHMuUmVzcG9uc2UKcmVzcC5qc29uKCkKIyBnZXQgYnkgcGF0aCBpZApyZXNwID0gYy5zaG93UGV0QnlJZChwZXRJZD0xKQpyZXNwLmpzb24oKQojIHBvc3QKcmVzcCA9IGMuY3JlYXRlUGV0cyhqc29uPXt9KQpyZXNwLmpzb24oKQoKIwojIEFkdmFuY2VkIFVzYWdlCiMKCiMgc2V0IHJlcSBvcHRpb25zLCAncmVxX29wdHMnIHBhcmFtIHRvIGN1c3RvbSByZXF1ZXN0IG9wdGlvbnMKcmVxdWVzdHNfb3BlbmFwaS5DbGllbnQocmVxX29wdHM9eyJ0aW1lb3V0IjogNjB9KS5sb2FkX3NwZWNfZnJvbV9maWxlKCJ4eCIpCgojIHBhcmFtZXRlcnMgc3RhcnRzIHdpdGggJ18nIG9yIG5vdCBmb3VuZCBpbiBvcGVuYXBpIHNwZWMsIHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHJlcXVlc3RpbmcKYy5jcmVhdGVQZXRzKGpzb249e30sIF9oZWFkZXJzPXt9LCBfcGFyYW1zPXt9LCBfY29va2llcz17fSkKCiMgcGFyYW1ldGVycwojIGluOiBjb29raWUsIG5hbWU6IGNzcmZ0b2tlbgpjLmNyZWF0ZVBldHMoY3NyZnRva2VuPSIqKioiKQojIGluOiBoZWFkZXIsIG5hbWU6IHgtZm9vCmMuY3JlYXRlUGV0cygqKnsieC1mb28iOiAiKioqIn0pCiMgaW46IHBhdGgsIG5hbWU6IHVzZXJJZApjLmdldFVzZXIodXNlcklkPTEpCiMgaW46IHF1ZXJ5LCBuYW1lOiBvZmZzZXQKYy5saXN0VXNlcnMob2Zmc2V0PTEpCgojIGh0dHAgYm9keSwganVzdCBsaWtlIHJlcXVlc3RzLlNlc3Npb24KYy5jcmVhdGVQZXRzKGpzb249e30pIG9yIGMuY3JlYXRlUGV0cyhkYXRhPXt9KQpgYGAKCiMjIEluc3RhbGxhdGlvbgoKYGBgCnBpcCBpbnN0YWxsIHJlcXVlc3RzLW9wZW5hcGkKYGBgCgojIyBMaWNlbnNlCgpNSVQK readmeEtag: '"77db283aa6864fae56676707aac289039c9b1e0b"' readmeLastModified: Wed, 07 Feb 2024 16:35:18 GMT repositoryId: 188546010 description: >- A lightweight but powerful and easy-to-use Python client library for OpenAPI v3. created: '2019-05-25T09:22:34Z' updated: '2024-05-29T03:38:43Z' language: Python archived: false stars: 80 watchers: 5 forks: 9 owner: wy-z logo: https://avatars.githubusercontent.com/u/4213483?v=4 license: MIT repoEtag: '"80411c8e498757ce62331bf5b0b89f84df7327f9143da170248b8be9885481a5"' repoLastModified: Wed, 29 May 2024 03:38:43 GMT foundInMaster: true category: - Data Validators - Parsers id: bfbe253fe4519d1b8b32b8770b5622e5 - source: openapi3 tags repository: https://github.com/theoomoregbee/sails-hook-swagger-generator v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIEdlbmVyYXRvciBTYWlscyBIb29rClshW1RyYXZpc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvdGhlb29tb3JlZ2JlZS9zYWlscy1ob29rLXN3YWdnZXItZ2VuZXJhdG9yLnN2ZyldKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy90aGVvb21vcmVnYmVlL3NhaWxzLWhvb2stc3dhZ2dlci1nZW5lcmF0b3IpClshW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9zYWlscy1ob29rLXN3YWdnZXItZ2VuZXJhdG9yLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3NhaWxzLWhvb2stc3dhZ2dlci1nZW5lcmF0b3IpClshW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9zYWlscy1ob29rLXN3YWdnZXItZ2VuZXJhdG9yLnN2ZyldKCkKWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kdC9zYWlscy1ob29rLXN3YWdnZXItZ2VuZXJhdG9yLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3NhaWxzLWhvb2stc3dhZ2dlci1nZW5lcmF0b3IpClshW3NlbWFudGljLXJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvJTIwJTIwJUYwJTlGJTkzJUE2JUYwJTlGJTlBJTgwLXNlbWFudGljLS1yZWxlYXNlLWUxMDA3OS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2VtYW50aWMtcmVsZWFzZS9zZW1hbnRpYy1yZWxlYXNlKQoKClRoaXMgaGVscHMgdG8gY3JlYXRlIHN3YWdnZXIgZG9jdW1lbnRhdGlvbiBqc29uIHdoaWNoIGlzIGJhc2VkIGVudGlyZWx5IG9uIFN3YWdnZXIvT3BlbkFQSSBzcGVjaWZpY2F0aW9uIChzZWUgW2hlcmVdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykpLgpUaGUgaG9vayBwcm9kdWNlcyBzcGVjaWZpY2F0aW9uIGJhc2VkIHVwb24gT0FTIDMuMC4KCiFbXShzY3JlZW5zaG90L3N3YWdnZXItZG9jLmdpZikKCgojIyBJbnN0YWxsYXRpb24KYGBgc2gKJCBucG0gaW5zdGFsbCBzYWlscy1ob29rLXN3YWdnZXItZ2VuZXJhdG9yIC0tc2F2ZQpgYGAKCgojIyBEZW1vCkNvcHkgdGhlIGNvbnRlbnQgb2YgW2dlbmVyYXRlZFN3YWdnZXJdKHRlc3QvZml4dHVyZXMvZ2VuZXJhdGVkU3dhZ2dlci5qc29uKSBhbmQgcGFzdGUgaXQgaW4gW1N3YWdnZXIgT25saW5lIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pLgoKCiMjIFVzYWdlClNpbXBseSBieSBsaWZ0aW5nIHlvdXIgc2FpbHMgYXBwIGBzYWlscyBsaWZ0YCwgYWZ0ZXIgbGlmdGluZyBvciBzdGFydGluZyB0aGUgYXBwLHRoZXJlIHNob3VsZCBiZSBgc3dhZ2dlci5qc29uYCB3aXRoaW4gKiouL3N3YWdnZXIqKiBmb2xkZXIuCgo+IG1ha2Ugc3VyZSAuL3N3YWdnZXIgZm9sZGVyIGlzIGFscmVhZHkgZXhpc3RpbmcuCgpDaGVjayB0aGUgKiouL3N3YWdnZXIvc3dhZ2dlci5qc29uKiogZm9yIGdlbmVyYXRlZCBzd2FnZ2VyIGRvY3VtZW50YXRpb24ganNvbiwgdGhlbiBoZWFkIHRvIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pLgoKIyMgR2VuZXJhdGVkIE91dHB1dAoKQnkgZGVmYXVsdCwgdGhlIFN3YWdnZXIgR2VuZXJhdG9yIFNhaWxzIEhvb2sgZ2VuZXJhdGVzOgoxLiBGdWxsIGF1dG9tYXRpYyBkb2N1bWVudGF0aW9uIGZvciBhbGwgU2FpbHMgQmx1ZXByaW50IHJvdXRlczsKMS4gRG9jdW1lbnRhdGlvbiBmb3IgYWxsIFNhaWxzCiAgIFthY3Rpb25zMl0oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL2NvbmNlcHRzL2FjdGlvbnMtYW5kLWNvbnRyb2xsZXJzIz9hY3Rpb25zLTIpCiAgIGFjdGlvbnMgd2l0aCByb3V0ZXMgY29uZmlndXJlZCBpbiBgY29uZmlnL3JvdXRlcy5qc2A7IGFuZAoxLiBMaXN0aW5nIG9mIGFsbCByb3V0ZXMgY29uZmlndXJlZCBpbiBgY29uZmlnL3JvdXRlcy5qc2AgKGZ1bGwgZGV0YWlscyBjYW5ub3QgYmUgaW5mZXJyZWQKICAgZm9yIGN1c3RvbSByb3V0ZXMgd2l0aG91dCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGJlaW5nIHByb3ZpZGVkIC0gc2VlIGJlbG93KS4KMS4gQ3JlYXRpb24gb2YgZGVmYXVsdCB0YWdzIGZvciBwYXRocyBiYXNlZCB1cG9uIFNhaWxzIE1vZGVsIGFuZCBDb250cm9sbGVyIGBnbG9iYWxJZGAncy4KCiMjIFVzZSB3aXRoIFtTd2FnZ2VyIFVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkKClNlZSBbIzI4XShodHRwczovL2dpdGh1Yi5jb20vdGhlb29tb3JlZ2JlZS9zYWlscy1ob29rLXN3YWdnZXItZ2VuZXJhdG9yL2lzc3Vlcy8yOCkKCiMjIEFkZGluZy9DdXN0b21pc2luZyBHZW5lcmF0ZWQgT3V0cHV0CgpEb2N1bWVudGF0aW9uIGRldGFpbCBhbmQgY3VzdG9taXNhdGlvbiBvZiBtb3N0IGFzcGVjdHMgb2YgdGhlIGdlbmVyYXRlZCBTd2FnZ2VyIGNhbiBiZSBhY2hpZXZlZCBieSBhZGRpbmc6CjEuIFRvcC1sZXZlbCBjb25maWd1cmF0aW9uIHRvIGBjb25maWcvc3dhZ2dlcmdlbmVyYXRvci5qc2AuIFRoaXMgcHJvdmlkZXMgZGlyZWN0IEpTT04KICAgdXNlZCBhcyB0aGUgdGVtcGxhdGUgZm9yIHRoZSBvdXRwdXQgU3dhZ2dlci9PcGVuQVBJLgoxLiBPYmplY3RzIHdpdGggdGhlIGtleSBgc3dhZ2dlcmAgdG8gY3VzdG9tIHJvdXRlIGNvbmZpZ3VyYXRpb24sIGNvbnRyb2xsZXIgZmlsZXMsIGFjdGlvbgogICBmdW5jdGlvbnMsIG1vZGVsIGRlZmluaXRpb25zIGFuZCBtb2RlbCBhdHRyaWJ1dGUgZGVmaW5pdGlvbnMuIFRoZSBgc3dhZ2dlcmAgZWxlbWVudCBtdXN0IGJlIG9mIHR5cGUKICAgW1N3YWdnZXJBY3Rpb25BdHRyaWJ1dGVdKC4vbGliL2ludGVyZmFjZXMudHMjTDU1KSBmb3IgYWN0aW9ucyAoYmFzZWQgb24gT3BlbkFwaS5PcGVyYXRpb24pCiAgIG9yIFtTd2FnZ2VyTW9kZWxTY2hlbWFBdHRyaWJ1dGVdKC4vbGliL2ludGVyZmFjZXMudHMjTDY2KSBmb3IgbW9kZWwgc2NoZW1hcyAoYmFzZWQgb24gT3BlbkFwaS5VcGRhdGVkU2NoZW1hKS4KMS4gSlNEb2MgKFtzd2FnZ2VyLWpzZG9jXShodHRwczovL2dpdGh1Yi5jb20vU3VybmV0L3N3YWdnZXItanNkb2MpKSBgQHN3YWdnZXJgIGNvbW1lbnRzCiAgIHRvIGNvbnRyb2xsZXIvYWN0aW9uIGZpbGVzIGFuZCBtb2RlbCBmaWxlcy4KClRvcC1sZXZlbCBTd2FnZ2VyL09wZW5BUEkgZGVmaW5pdGlvbnMgZm9yIGB0YWdzYCBhbmQgYGNvbXBvbmVudHNgIG1heSBiZSBhZGRlZCBpbiBhbGwgYHN3YWdnZXJgIG9iamVjdHMKYWJvdmUgYW5kIGluIGFsbCBKU0RvYyBgQHN3YWdnZXJgIGRvY3VtZW50YXRpb24gY29tbWVudHMuIFRoaXMgZW5hYmxlcyB0aGUgZGVmaW5pdGlvbiBvZiB0b3AtbGV2ZWwgZWxlbWVudHMuCgpTZWUgYmVsb3cgZm9yIGRldGFpbHMuCgojIyBDb25maWd1cmF0aW9ucwoKSXQgY29tZXMgd2l0aCBzb21lIGRlZmF1bHQgc2V0dGluZ3Mgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gYnkgY3JlYXRpbmcgYGNvbmZpZy9zd2FnZ2VyZ2VuZXJhdG9yLmpzYDoKYGBgamF2YXNjcmlwdAptb2R1bGUuZXhwb3J0c1snc3dhZ2dlci1nZW5lcmF0b3InXSA9IHsKICAgIGRpc2FibGVkOiBmYWxzZSwKICAgIHN3YWdnZXJKc29uUGF0aDogJy4vc3dhZ2dlci9zd2FnZ2VyLmpzb24nLAogICAgc3dhZ2dlcjogewogICAgICAgIG9wZW5hcGk6ICczLjAuMCcsCiAgICAgICAgaW5mbzogewogICAgICAgICAgICB0aXRsZTogJ1N3YWdnZXIgSnNvbicsCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyBhIGdlbmVyYXRlZCBzd2FnZ2VyIGpzb24gZm9yIHlvdXIgc2FpbHMgcHJvamVjdCcsCiAgICAgICAgICAgIHRlcm1zT2ZTZXJ2aWNlOiAnaHR0cDovL2V4YW1wbGUuY29tL3Rlcm1zJywKICAgICAgICAgICAgY29udGFjdDoge25hbWU6ICdUaGVvcGhpbHVzIE9tb3JlZ2JlZScsIHVybDogJ2h0dHA6Ly9naXRodWIuY29tL3RoZW80dScsIGVtYWlsOiAndGhlbzR1QHltYWlsLmNvbSd9LAogICAgICAgICAgICBsaWNlbnNlOiB7bmFtZTogJ0FwYWNoZSAyLjAnLCB1cmw6ICdodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuaHRtbCd9LAogICAgICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnCiAgICAgICAgfSwKICAgICAgICBzZXJ2ZXJzOiBbCiAgICAgICAgICAgIHsgdXJsOiAnaHR0cDovL2xvY2FsaG9zdDoxMzM3LycgfQogICAgICAgIF0sCiAgICAgICAgZXh0ZXJuYWxEb2NzOiB7dXJsOiAnaHR0cHM6Ly90aGVvb21vcmVnYmVlLmdpdGh1Yi5pby8nfQogICAgfSwKICAgIGRlZmF1bHRzOiB7CiAgICAgICAgcmVzcG9uc2VzOiB7CiAgICAgICAgICAgICcyMDAnOiB7IGRlc2NyaXB0aW9uOiAnVGhlIHJlcXVlc3RlZCByZXNvdXJjZScgfSwKICAgICAgICAgICAgJzQwNCc6IHsgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBub3QgZm91bmQnIH0sCiAgICAgICAgICAgICc1MDAnOiB7IGRlc2NyaXB0aW9uOiAnSW50ZXJuYWwgc2VydmVyIGVycm9yJyB9CiAgICAgICAgfQogICAgfSwKICAgIGV4Y2x1ZGVEZXByZWNhdGVkUHV0Qmx1ZXByaW50Um91dGVzOiB0cnVlLAogICAgaW5jbHVkZVJvdXRlOiBmdW5jdGlvbihyb3V0ZUluZm8pIHsgcmV0dXJuIHRydWU7IH0sCiAgICB1cGRhdGVCbHVlcHJpbnRBY3Rpb25UZW1wbGF0ZXM6IGZ1bmN0aW9uKGJsdWVwcmludEFjdGlvblRlbXBsYXRlcykgeyAuLi4gfSwKICAgIHBvc3RQcm9jZXNzOiBmdW5jdGlvbihzcGVjaWZpY2F0aW9ucykgeyAuLi4gfQp9OwpgYGAKCk5vdGVzIG9uIHRoZSB1c2Ugb2YgY29uZmlndXJhdGlvbjoKCiogYGRpc2FibGVkYCBhdHRyaWJ1dGUgaXMgdXNlZCB0byBkaXNhYmxlIHRoZSBtb2R1bGUgKGUuZyB5b3UgbWF5IHdhbnQgdG8gZGlzYWJsZSBpdCBvbiBwcm9kdWN0aW9uKS4KKiBgc3dhZ2dlckpzb25QYXRoYCB3aGVyZSB0byBnZW5lcmF0ZSB0aGUgYHN3YWdnZXIuanNvbmAgZmlsZSB0bzsgZGVmYXVsdHMgdG8gYHNhaWxzLmNvbmZpZy5hcHBQYXRoICsgJy9zd2FnZ2VyL3N3YWdnZXIuanNvbidgCiAgIGFuZCBvdXRwdXQgZmlsZSB3aWxsIG5vdCBiZSB3cml0dGVuIGlmIGVtcHR5L251bGwvdW5kZWZpbmVkIChzZWUgYHBvc3RQcm9jZXNzYCBiZWxvdyBmb3IgYWx0ZXJuYXRlIHNhdmUgbWVjaGFuaXNtKS4KKiBgc3dhZ2dlcmAgb2JqZWN0IGlzIHRlbXBsYXRlIGZvciB0aGUgU3dhZ2dlci9PcGVuQVBJIG91dHB1dC4gSXQgZGVmYXVsdHMgdG8gdGhlIG1pbmltYWwgY29udGVudCBhYm92ZS4KICAgQ2hlY2sgU3dhZ2dlci9PcGVuQVBJIHNwZWNpZmljYXRpb24gZm9yIG1vcmUsIGluIGNhc2UgeW91IHdhbnQgdG8gZXh0ZW5kIGl0LgogICBHZW5lcmFsbHksIHRoaXMgaG9vayBwcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYXMgbXVjaCBhcyBwb3NzaWJsZSBidXQgeW91IG1heQogICBvdmVycmlkZSB0aGVtIGluIHRoaXMgbG9jYXRpb24gb3IgaW4gYW55IG9mIHRoZSBtZWNoYW5pc21zIGV4cGxhaW5lZCBiZWxvdy4KKiBgZGVmYXVsdHNgIG9iamVjdCBzaG91bGQgY29udGFpbiB0aGUgYHJlc3BvbnNlc2AgZWxlbWVudDsgZGVmYXVsdHMgdG8gdGhlIGFib3ZlIGlmIG5vdCBzcGVjaWZpZWQuCiogYGV4Y2x1ZGVEZXByZWNhdGVkUHV0Qmx1ZXByaW50Um91dGVzYCBzaG91bGQKICBbZGVwcmVjYXRlZF0oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL3JlZmVyZW5jZS9ibHVlcHJpbnQtYXBpL3VwZGF0ZSM/bm90ZXMpIGBQVVRgIGJsdWVwcmludAogIHJvdXRlcyBiZSBleGNsdWRlZCBmcm9tIGdlbmVyYXRlZCBTd2FnZ2VyIG91dHB1dDsgZGVmYXVsdHMgdG8gYHRydWVgLgoqIGBpbmNsdWRlUm91dGVgIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIHJvdXRlcyB0byBiZSBpbmNsdWRlZCBpbiBnZW5lcmF0ZWQgU3dhZ2dlciBvdXRwdXQ7IHNlZSBhZHZhbmNlZCBzZWN0aW9uIGJlbG93LgoqIGB1cGRhdGVCbHVlcHJpbnRBY3Rpb25UZW1wbGF0ZXNgIGFsbG93cyBjdXN0b21pc2F0aW9uIG9mIHRoZSB0ZW1wbGF0ZXMgdXNlZCB0byBnZW5lcmF0ZSBTd2FnZ2VyIGZvciBibHVlcHJpbnRzOyBzZWUgYWR2YW5jZWQgc2VjdGlvbiBiZWxvdy4KKiBgcG9zdFByb2Nlc3NgIGFsbG93cyBhbiBhbHRlcm5hdGUgbWVjaGFuaXNtIGZvciBzYXZpbmcgYW5kL29yIG1vZGlmaWNhdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIFN3YWdnZXIgb3V0cHV0IGJlZm9yZSBpdCBpcyB3cml0dGVuIHRvCiAgIHRoZSBvdXRwdXQgZmlsZTsgc2VlIGFkdmFuY2VkIHNlY3Rpb24gYmVsb3cuCgoKIyMgQ3VzdG9tIFJvdXRlIENvbmZpZ3VyYXRpb24KCkRvY3VtZW50YXRpb24gZGV0YWlsIGFuZCBjdXN0b21pc2F0aW9uIG9mIG1vc3QgYXNwZWN0cyBvZiB0aGUgZ2VuZXJhdGVkIFN3YWdnZXIgZm9yCltjdXN0b20gcm91dGVzXShodHRwczovL3NhaWxzanMuY29tL2RvY3VtZW50YXRpb24vY29uY2VwdHMvcm91dGVzL2N1c3RvbS1yb3V0ZXMpIG1heSBiZSBhY2hpZXZlZCBieToKCjEuIEFkZGluZyBhbiBvYmplY3Qgd2l0aCB0aGUga2V5IGBzd2FnZ2VyYCAobXVzdCBiZSBvZiB0eXBlIFtTd2FnZ2VyQWN0aW9uQXR0cmlidXRlXSguL2xpYi9pbnRlcmZhY2VzLnRzI0w1NSkgZm9yIGFjdGlvbnMsIGJhc2VkIG9uIE9wZW5BcGkuT3BlcmF0aW9uKSB0byBpbmRpdmlkdWFsIHJvdXRlIGNvbmZpZ3VyYXRpb25zIGluIGBjb25maWcvcm91dGVzLmpzYC4KMS4gQWRkaW5nIGFuIG9iamVjdCB3aXRoIHRoZSBrZXkgYHN3YWdnZXJgIChtdXN0IGJlIG9mIHR5cGUgW1N3YWdnZXJDb250cm9sbGVyQXR0cmlidXRlXSguL2xpYi9pbnRlcmZhY2VzLnRzI0w3NikpIHRvIHRoZSBleHBvcnRzIG9mIGEgY29udHJvbGxlciBmaWxlLCBzdGFuZGFsb25lIGFjdGlvbiBmaWxlIG9yIGFjdGlvbnMyIGZpbGUuCjEuIEFkZGluZyBhbiBvYmplY3Qgd2l0aCB0aGUga2V5IGBzd2FnZ2VyYCAobXVzdCBiZSBvZiB0eXBlIFtTd2FnZ2VyTW9kZWxBdHRyaWJ1dGVdKC4vbGliL2ludGVyZmFjZXMudHMjTDg3KSkgdG8gdGhlIGV4cG9ydHMgb2YgYSBtb2RlbCBmaWxlLgoxLiBBZGRpbmcgSlNEb2MgYEBzd2FnZ2VyYCBjb21tZW50cyB0byBTYWlscwogIFttb2RlbCBmaWxlc10oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL2NvbmNlcHRzL21vZGVscy1hbmQtb3JtL21vZGVscyksCiAgW2NvbnRyb2xsZXIgZmlsZXNdKGh0dHBzOi8vc2FpbHNqcy5jb20vZG9jdW1lbnRhdGlvbi9jb25jZXB0cy9hY3Rpb25zLWFuZC1jb250cm9sbGVycyM/Y29udHJvbGxlcnMpLAogIFtzdGFuZGFsb25lIGFjdGlvbiBmaWxlc10oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL2NvbmNlcHRzL2FjdGlvbnMtYW5kLWNvbnRyb2xsZXJzIz9zdGFuZGFsb25lLWFjdGlvbnMpIG9yCiAgW2FjdGlvbnMyIGZpbGVzXShodHRwczovL3NhaWxzanMuY29tL2RvY3VtZW50YXRpb24vY29uY2VwdHMvYWN0aW9ucy1hbmQtY29udHJvbGxlcnMjP2FjdGlvbnMtMik7IHNwZWNpZmljYWxseToKICAgIC0gSlNEb2MgYEBzd2FnZ2VyYCBkb2N1bWVudGF0aW9uIHVuZGVyIHRoZSBgL3thY3Rpb25OYW1lfWAgcGF0aCBmb3IgdGhlIHJvdXRlIChjb250cm9sbGVycy9hY3Rpb25zKSwgb3IKICAgIC0gSlNEb2MgYEBzd2FnZ2VyYCBkb2N1bWVudGF0aW9uIHVuZGVyIHRoZSBgL3tibHVlcHJpbnRBY3Rpb259YCBwYXRoIGZvciB0aGUgcm91dGUgKG1vZGVscyksIG9yCiAgICAtIEpTRG9jIGBAc3dhZ2dlcmAgZG9jdW1lbnRhdGlvbiB1bmRlciBgdGFnc2AgYW5kIGBjb21wb25lbnRzYCBwYXRocyBmb3IgYWRkaW5nIHRvIHRoZSB0b3AtbGV2ZWwgU3dhZ2dlci9PcGVuQVBJIGRlZmluaXRpb25zLgoKCiMjIyBDdXN0b20gUm91dGUgQ29uZmlndXJhdGlvbiBpbiBgY29uZmlnL3JvdXRlcy5qc2AKCklmIHlvdSB3YW50IHRvIGFkZCBleHRyYSBjb25maWd1cmF0aW9uIHRvIGEgcm91dGUsIGl0IGNhbiBiZSBkb25lIHZpYSB0aGUgYGNvbmZpZy9yb3V0ZXMuanNgLCBzaW5jZSBTYWlscyB1c2VzIGRpZmZlcmVudCBbcm91dGUgdGFyZ2V0c10oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL2NvbmNlcHRzL3JvdXRlcy9jdXN0b20tcm91dGVzIz9yb3V0ZS10YXJnZXQpLCB3ZSBjYW4gbGV2ZXJhZ2UgdGhlIHJvdXRlIG9iamVjdCB0YXJnZXQgdG8gZXh0ZW5kL292ZXJyaWRlIG91ciBzd2FnZ2VyIGNvbmZpZ3VyYXRpb24gYnkgYWRkaW5nIGFuIG9iamVjdCB3aXRoIGEga2V5IGBzd2FnZ2VyYC4KCkZvciBleGFtcGxlLCBpbiBgY29uZmlnL3JvdXRlcy5qc2A6CmBgYGphdmFzY3JpcHQKewogICdwb3N0IC91c2VyL2xvZ2luJzogewogICAgY29udHJvbGxlcjogJ1VzZXJDb250cm9sbGVyJywKICAgIGFjdGlvbjogJ2xvZ2luJywKICAgIHN3YWdnZXI6IHsKICAgICAgc3VtbWFyeTogJ0F1dGhlbnRpY2F0aW9uJywKICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIGZvciBhdXRoZW50aWNhdGlvbiBvZiBhbnkgdXNlcicsCiAgICAgIHRhZ3M6IFsgJ1RhZyBOYW1lJyBdLAogICAgICByZXF1ZXN0Qm9keTogewogICAgICAgIGNvbnRlbnQ6IHsKICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzogewogICAgICAgICAgICBzY2hlbWE6IHsKICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgICAgICBlbWFpbDogeyB0eXBlOiAnc3RyaW5nJyB9LAogICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogJ3N0cmluZycsIGZvcm1hdDogJ3Bhc3N3b3JkJyB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZXF1aXJlZDogWyAnZW1haWwnLCAncGFzc3dvcmQnIF0sCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIHBhcmFtZXRlcnM6IFt7CiAgICAgICAgaW46ICdxdWVyeScsCiAgICAgICAgbmFtZTogJ2ZpcnN0TmFtZScsCiAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgc2NoZW1hOiB7IHR5cGU6ICdzdHJpbmcnIH0sCiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIGEgY3VzdG9tIHJlcXVpcmVkIHBhcmFtZXRlcicKICAgICAgfV0sCiAgICAgIHJlc3BvbnNlczogewogICAgICAgICcyMDAnOiB7CiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2UnLAogICAgICAgICAgICBjb250ZW50OiB7CiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7CiAgICAgICAgICAgICAgICBzY2hlbWE6IHsKICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JywKICAgICAgICAgICAgICAgICAgaXRlbXM6IHsgJyRyZWYnOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvc29tZURhdGFUeXBlJyB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgJzQwNCc6IHsgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBub3QgZm91bmQnIH0sCiAgICAgICAgJzUwMCc6IHsgZGVzY3JpcHRpb246ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InIH0KICAgICAgfQogICAgfQogIH0KfQpgYGAKCiMjIyBDdXN0b20gUm91dGUgQ29uZmlndXJhdGlvbiBpbiBDb250cm9sbGVyIG9yIEFjdGlvbiBmaWxlcwoKRG9jdW1lbnRhdGlvbiBkZXRhaWwgYW5kIGN1c3RvbWlzYXRpb24gb2YgbW9zdCBhc3BlY3RzIG9mIHRoZSBnZW5lcmF0ZWQgU3dhZ2dlciBtYXkgYmUgYWRkZWQgdG8KW2NvbnRyb2xsZXIgZmlsZXNdKGh0dHBzOi8vc2FpbHNqcy5jb20vZG9jdW1lbnRhdGlvbi9jb25jZXB0cy9hY3Rpb25zLWFuZC1jb250cm9sbGVycyM/Y29udHJvbGxlcnMpLApbc3RhbmRhbG9uZSBhY3Rpb24gZmlsZXNdKGh0dHBzOi8vc2FpbHNqcy5jb20vZG9jdW1lbnRhdGlvbi9jb25jZXB0cy9hY3Rpb25zLWFuZC1jb250cm9sbGVycyM/c3RhbmRhbG9uZS1hY3Rpb25zKSBvcgpbYWN0aW9uczIgZmlsZXNdKGh0dHBzOi8vc2FpbHNqcy5jb20vZG9jdW1lbnRhdGlvbi9jb25jZXB0cy9hY3Rpb25zLWFuZC1jb250cm9sbGVycyM/YWN0aW9ucy0yKSBhcyBmb2xsb3dzOgoKMS4gQWRkaW5nIGFuIG9iamVjdCB3aXRoIHRoZSBrZXkgYHN3YWdnZXJgIGFkZGVkIHRvIGEgY29udHJvbGxlciBmaWxlIGFjdGlvbiBmdW5jdGlvbi4KMS4gQWRkaW5nIGFuIG9iamVjdCB3aXRoIHRoZSBrZXkgYHN3YWdnZXJgIHRvIHRoZSBleHBvcnRzIG9mIGEgY29udHJvbGxlciBmaWxlLCBzdGFuZGFsb25lCiAgIGFjdGlvbiBmaWxlIG9yIGFjdGlvbnMyIGZpbGU6CiAgIC0gRm9yIGNvbnRyb2xsZXIgZmlsZXMsIGFjdGlvbnMgYXJlIHJlZmVyZW5jZWQgYnkgYWRkaW5nIG9iamVjdHMga2V5ZWQgb24gYHN3YWdnZXIuYWN0aW9ucy57YWN0aW9uTmFtZX1gCiAgICAgbmFtZS4gU2VlIFtVc2VyQ29udHJvbGxlci5qc10oLi9hcGkvY29udHJvbGxlcnMvVXNlckNvbnRyb2xsZXIuanMpOwogICAtIEZvciBzdGFuZGFsb25lIGFjdGlvbiBvciBhY3Rpb25zMiBmaWxlcywgcGxhY2luZyBjb250ZW50IGluIHRoZQogICAgIGBzd2FnZ2VyLmFjdGlvbnMue2FjdGlvbkZpbGVOYW1lfGFjdGlvbnMyRmlsZU5hbWV9YCBvYmplY3QuIFNlZQogICAgIFthY3Rpb25zMi5qc10oLi9hcGkvY29udHJvbGxlcnMvc3ViZGlyL2FjdGlvbnMyLmpzKQogICAgICoqKk5vdGUqKjogYGFjdGlvbkZpbGVOYW1lfGFjdGlvbnMyRmlsZU5hbWVgIG11c3QgY29ycmVzcG9uZCB0byB0aGUgZmlsZW5hbWUqOwogICAtIEZvciBhbGwgY29udHJvbGxlci9hY3Rpb24gZmlsZXMsIGFkZGluZyBwZXItYWN0aW9uIGRvY3VtZW50YXRpb24gdG8gYmUKICAgICBhcHBsaWVkIHRvICoqYWxsKiogYWN0aW9ucyB1c2luZyB0aGUga2V5IGBzd2FnZ2VyLmFjdGlvbnMuYWxsQWN0aW9uc2AKICAgICBlLmcuIHVzZSB0aGlzIHRvIGFwcGx5IGNvbW1vbiB0YWdzIHRvIGFsbCBhY3Rpb25zIGZvciBhIGNvbnRyb2xsZXIuCiAgIC0gQWRkaW5nIGRvY3VtZW50YXRpb24gdW5kZXIgYHRhZ3NgIGFuZCBgY29tcG9uZW50c2AgZWxlbWVudHMgZm9yIGFkZGluZyB0byB0aGUKICAgICB0b3AtbGV2ZWwgU3dhZ2dlci9PcGVuQVBJIGRlZmluaXRpb25zLiBTZWUgZXhhbXBsZSBpbiBlaXRoZXIKICAgICBbVXNlckNvbnRyb2xsZXIuanNdKC4vYXBpL2NvbnRyb2xsZXJzL1VzZXJDb250cm9sbGVyLmpzKQogICAgIG9yIFthY3Rpb25zMi5qc10oLi9hcGkvY29udHJvbGxlcnMvc3ViZGlyL2FjdGlvbnMyLmpzKS4KMS4gQWRkaW5nIEpTRG9jIGBAc3dhZ2dlcmAgY29tbWVudHMgdG8gY29udHJvbGxlciBmaWxlLCBzdGFuZGFsb25lIGFjdGlvbiBmaWxlIG9yIGFjdGlvbnMyIGZpbGU6CiAgIC0gSlNEb2MgYEBzd2FnZ2VyYCBkb2N1bWVudGF0aW9uIHVuZGVyIHRoZSBgL3thY3Rpb25OYW1lfWAgcGF0aCBmb3IgdGhlIGNvbnRyb2xsZXIgZmlsZSBhY3Rpb25zLAogICAtIEpTRG9jIGBAc3dhZ2dlcmAgZG9jdW1lbnRhdGlvbiB1bmRlciB0aGUgYC97YWN0aW9uRmlsZU5hbWV8YWN0aW9uczJGaWxlTmFtZX1gIHBhdGggZm9yIHN0YW5kYWxvbmUgYWN0aW9uIG9yIGFjdGlvbnMyIGZpbGVzLAogICAtIEpTRG9jIGBAc3dhZ2dlcmAgZG9jdW1lbnRhdGlvbiB1bmRlciB0aGUgYC9hbGxBY3Rpb25zYCBwYXRoIHRvIGJlIGFwcGxpZWQgdG8gKiphbGwqKiBhY3Rpb25zIGZvciB0aGUgY29udHJvbGxlciwgb3IKICAgLSBKU0RvYyBgQHN3YWdnZXJgIGRvY3VtZW50YXRpb24gdW5kZXIgYHRhZ3NgIGFuZCBgY29tcG9uZW50c2AgcGF0aHMgZm9yIGFkZGluZyB0byB0aGUgdG9wLWxldmVsIFN3YWdnZXIvT3BlbkFQSSBkZWZpbml0aW9ucy4KCkFuIGBleGNsdWRlYCBwcm9wZXJ0eSwgc2V0IHRvIGB0cnVlYCwgbWF5IGJlIGFkZGVkIHRvIGFueSBgc3dhZ2dlcmAgZWxlbWVudCBvciBgQHN3YWdnZXJgIEpTRG9jCmFjdGlvbiBkb2N1bWVudGF0aW9uIHRvIGV4Y2x1ZGUgdGhhdCBhY3Rpb24gZnJvbSB0aGUgZ2VuZXJhdGVkIFN3YWdnZXIuIFNlZSBleGFtcGxlIGluCltOb21vZGVsQ29udHJvbGxlci5qc10oYXBpL2NvbnRyb2xsZXJzL05vbW9kZWxDb250cm9sbGVyLmpzKS4KClRoZSBTd2FnZ2VyIGRlZmluaXRpb24gZm9yIGVhY2ggYWN0aW9uIGlzIG1lcmdlZCBpbiB0aGUgb3JkZXIgYWJvdmUgdG8gZm9ybSB0aGUgZmluYWwKZGVmaW5pdGlvbiwgd2l0aCBgY29uZmlnL3JvdXRlcy5qc2AgdGFraW5nIGhpZ2hlc3QgcHJlY2VuZGVuY2UgYW5kICoqZWFybGllcioqIGRlZmluaXRpb25zCmFib3ZlIHRha2luZyBwcmVjZWRlbmNlIG92ZXIgbGF0ZXIuCgojIyMjIEZvciBhY3Rpb25zMiBmaWxlczoKMS4gSW5wdXRzIGFyZSBwYXJzZWQgdG8gZ2VuZXJhdGUgcGFyYW1ldGVyIGRvY3VtZW50YXRpb24uCjIuIEV4aXRzIGFyZSBwYXJzZWQgdG8gZ2VuZXJhdGUgcmVzcG9uc2UgZG9jdW1lbnRhdGlvbi4KMy4gQm90aCBtYXkgYmUgY3VzdG9taXNlZC9vdmVycmlkZGVuIGJ5IHNwZWNpZnlpbmcgcGFyYW1ldGVycyBhbmQvb3IgcmVzcG9uc2VzIGluIHRoZSBgc3dhZ2dlcmAgb2JqZWN0CiAgIGluIGFjdGlvbnMyIGZpbGUuCjQuIElucHV0cyBtYXkgYWxzbyBhZGQgYW4gb2JqZWN0IHdpdGggdGhlIGtleSBgbWV0YS5zd2FnZ2VyYCB0byBkb2N1bWVudCB0aGUgYXR0cmlidXRlcwogICBTd2FnZ2VyL09wZW5BUEkgKipzY2hlbWEqKiBhc3NvY2lhdGVkIHdpdGggdGhlIGlucHV0IHZhbHVlLiBTZWUgZXhhbXBsZSBpbgogICBbYWN0aW9uczIuanNdKC4vYXBpL2NvbnRyb2xsZXJzL3N1YmRpci9hY3Rpb25zMi5qcykuCjUuIElucHV0cyBtYXkgYmUgZXhjbHVkZWQgZnJvbSB0aGUgZ2VuZXJhdGVkIFN3YWdnZXIgYnkgc2V0dGluZyBgbWV0YS5zd2FnZ2VyLmV4Y2x1ZGVgIHRvIGB0cnVlYC4KNi4gSW5wdXRzIG1heSBzcGVjaWZ5ICp3aGVyZSogdGhlIGlucHV0IHNob3VsZCBiZSBpbmNsdWRlZCB3aXRoaW4gdGhlIGdlbmVyYXRlZCBTd2FnZ2VyIHVzaW5nIHRoZSBrZXkKICAgYG1ldGEuc3dhZ2dlci5pbmAuIFRoZSB2YWx1ZXMgYHF1ZXJ5YC9gaGVhZGVyYC9gcGF0aGAvYGNvb2tpZWAgbWF5IGJlIHVzZWQgdG8gcHJvZHVjZSBTd2FnZ2VyIG9wZXJhdGlvbgogICBwYXJhbWV0ZXJzIGFuZCB0aGUgdmFsdWUgYGJvZHlgIG1heSBiZSB1c2VkIHRvIHByb2R1Y2UgYHJlcXVlc3RCb2R5YCBzY2hlbWEgcHJvcGVydGllcwogICAodmFsaWQgZm9yIFBVVC9QT1NUL1BBVENIIG9wZXJhdGlvbnMgb25seSkuCgpGb3IgZXhhbXBsZSwgZm9yIGEgcm91dGUgY29uZmlndXJlZCBhczoKYGBgamF2YXNjcmlwdAptb2R1bGUuZXhwb3J0cy5yb3V0ZXMgPSB7CiAgICAnL2FwaS92MS9hdXRoL3Rva2Vucyc6ICdBdXRoQ29udHJvbGxlci50b2tlbnMnLAp9OwpgYGAKClRoZSBgdG9rZW5zYCBhY3Rpb24gbWlnaHQgYmUgZG9jdW1lbnRlZCBpbiBhIENvbnRyb2xsZXIgYGFwaS9jb250cm9sbGVycy9BdXRoQ29udHJvbGxlci5qc2AgYXMgZm9sbG93czoKYGBgamF2YXNjcmlwdApmdW5jdGlvbiB0b2tlbnMocmVxLCByZXMpIHsKICAgIC4uLgp9Cgptb2R1bGUuZXhwb3J0cyA9IHsKICAgIHRva2VuczogdG9rZW5zLAogICAgc3dhZ2dlcjogewogICAgICBhY3Rpb25zOiB7CiAgICAgICAgdG9rZW5zOiB7CiAgICAgICAgICAgIHRhZ3M6IFsgJ0F1dGgnIF0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUm91dGUgZGVzY3JpcHRpb24uLi4nCiAgICAgICAgfQogICAgICB9CiAgICAgIHRhZ3M6IFsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5hbWU6ICdBdXRoJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTW9kdWxlIGRlc2NyaXB0aW9uIC4uLicsCiAgICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgY29tcG9uZW50czogewogICAgICAgIC4uLgogICAgICB9CiAgICB9Cn07CmBgYAoKT3IsIGFsdGVybmF0ZWx5IHVzaW5nIEpTRG9jOgpgYGBqYXZhc2NyaXB0Ci8qKgogKiBAc3dhZ2dlcgogKgogKiAvdG9rZW5zOgogKiAgIGRlc2NyaXB0aW9uOiBSb3V0ZSBkZXNjcmlwdGlvbi4uLgogKiAgIHRhZ3M6CiAqICAgICAtIEF1dGgKICogdGFnczoKICogICAtIG5hbWU6IEF1dGgKICogICAgIGRlc2NyaXB0aW9uOiBNb2R1bGUgZGVzY3JpcHRpb24uLi4KICovCmZ1bmN0aW9uIHRva2VucyhyZXEsIHJlcykgewogICAgLi4uCn0KCm1vZHVsZS5leHBvcnRzID0gewogICAgdG9rZW5zOiB0b2tlbnMKfTsKYGBgCgojIyBCbHVlcHJpbnQgUm91dGUgQ29uZmlndXJhdGlvbgoKRG9jdW1lbnRhdGlvbiBkZXRhaWwgYW5kIGN1c3RvbWlzYXRpb24gb2YgbW9zdCBhc3BlY3RzIG9mIHRoZSBnZW5lcmF0ZWQgU3dhZ2dlciBmb3IKW2JsdWVwcmludCByb3V0ZXNdKGh0dHBzOi8vc2FpbHNqcy5jb20vZG9jdW1lbnRhdGlvbi9jb25jZXB0cy9ibHVlcHJpbnRzL2JsdWVwcmludC1yb3V0ZXMpIG1heSBiZSBhY2hpZXZlZCBieToKCjEuIEFkZGluZyBhbiBvYmplY3Qgd2l0aCB0aGUga2V5IGBzd2FnZ2VyYCB0byBpbmRpdmlkdWFsIG1vZGVscyBlLmcuIGBhcGkvbW9kZWxzL21vZGVsTmFtZS5qc2A6CiAgIC0gQWRkaW5nIGRvY3VtZW50YXRpb24gdG8gdGhlIG1vZGVsJ3MgU3dhZ2dlciAqKnNjaGVtYSoqIHVzaW5nIHRoZSBrZXkgYHN3YWdnZXIubW9kZWxTY2hlbWFgCiAgICAgZS5nLiB1c2UgdGhpcyB0byBhcHBseSBkZXRhaWxlZCBkb2N1bWVudGF0aW9uIHZpYSB0aGUgYGRlc2NyaXB0aW9uYCBmaWVsZDsKICAgLSBJbiBhZGRpdG9uIHRvIHRoZSBtb2RlbCdzIHNjaGVtYSwgdGhlIGtleSBgc3dhZ2dlci5tb2RlbFNjaGVtYWAgbWF5IGJlIHVzZWQgdG8gc3BlY2lmeQogICAgIHRhZyBuYW1lcyAoYXMgYSBgc3RyaW5nW11gKSB0byBiZSBhc3NpZ25lZCBhbGwgYmx1ZXByaW50IGFjdGlvbnMgZm9yIHRoZSBtb2RlbC4KICAgICBUaGlzIGlzIGEgKm5vbi1zdGFuZGFyZCogY29udmVuaWVuY2UgZnVuY3Rpb24gaS5lLiBpbiBTd2FnZ2VyL09wZW5BUEkgeW91IG5lZWQgdG8KICAgICBleHBsaWNpdGx5IGFkZCB0YWdzIHRvICoqZWFjaC9ldmVyeSoqIE9wZW5BUEkuT3BlcmF0aW9uOwogICAtIEFkZGluZyBwZXItYWN0aW9uIGRvY3VtZW50YXRpb24gYnkgYWRkaW5nIG9iamVjdHMga2V5ZWQgb24KICAgICBgc3dhZ2dlci5hY3Rpb25zLntibHVlcHJpbnRBY3Rpb259YCBuYW1lOwogICAtIEFkZGluZyBhY3Rpb24gZG9jdW1lbnRhdGlvbiB0byAqKmFsbCoqIGFjdGlvbnMgdXNpbmcgdGhlIGtleSBgc3dhZ2dlci5hY3Rpb25zLmFsbEFjdGlvbnNgCiAgICAgZS5nLiB1c2UgdGhpcyB0byBhcHBseSBjb21tb24gYGV4dGVybmFsRG9jc2AgdG8gYWxsIGJsdWVwcmludCBhY3Rpb25zIGZvciB0aGUgbW9kZWw7IG9yCiAgIC0gQWRkaW5nIGRvY3VtZW50YXRpb24gdW5kZXIgYHN3YWdnZXIudGFnc2AgYW5kIGBzd2FnZ2VyLmNvbXBvbmVudHNgIGVsZW1lbnRzIGZvciBhZGRpbmcgdG8gdGhlIHRvcC1sZXZlbCBTd2FnZ2VyL09wZW5BUEkgZGVmaW5pdGlvbnMuCjEuIEFkZGluZyBkb2N1bWVudGF0aW9uLXNwZWNpZmljIGZpZWxkcyB0byBtb2RlbCBhdHRyaWJ1dGVzIChzdXBwb3J0cyBgZGVzY3JpcHRpb25gLCBgbW9yZUluZm9VcmxgIGFuZCBgZXhhbXBsZWApLgogICBOb3RlIHRoYXQgYXBwbGljYWJsZSBTYWlscyBbYXR0cmlidXRlc10oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL2NvbmNlcHRzL21vZGVscy1hbmQtb3JtL2F0dHJpYnV0ZXMpLAogICBbYXV0b21pZ3JhdGlvbnNdKGh0dHBzOi8vc2FpbHNqcy5jb20vZG9jdW1lbnRhdGlvbi9jb25jZXB0cy9tb2RlbHMtYW5kLW9ybS9hdHRyaWJ1dGVzIz9hdXRvbWlncmF0aW9ucykgYW5kCiAgIFt2YWxpZGF0aW9uc10oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL2NvbmNlcHRzL21vZGVscy1hbmQtb3JtL3ZhbGlkYXRpb25zKSBhcmUgYWxzbyBwYXJzZWQuCjEuIEFkZGluZyBhbiBvYmplY3Qgd2l0aCB0aGUga2V5IGBtZXRhLnN3YWdnZXJgIHRvIGluZGl2aWR1YWwgbW9kZWwgYXR0cmlidXRlcyB0byBkb2N1bWVudAogICB0aGUgYXR0cmlidXRlcyBTd2FnZ2VyL09wZW5BUEkgKipzY2hlbWEqKi4gU2VlIGV4YW1wbGUgaW4gW1BldC5qc10oLi9hcGkvbW9kZWxzL1BldC5qcykuCjEuIEFkZGluZyBKU0RvYyBgQHN3YWdnZXJgIGNvbW1lbnRzIHRvIG1vZGVsIGZpbGVzOgogICAtIEpTRG9jIGBAc3dhZ2dlcmAgZG9jdW1lbnRhdGlvbiB1bmRlciB0aGUgYC97Z2xvYmFsSWR9YCB0byBhZGQgZG9jdW1lbnRhdGlvbiB0bwogICAgIHRoZSBtb2RlbCdzIFN3YWdnZXIgKipzY2hlbWEqKiAob3IgdGFncyBhcyBub3RlZCBhYm92ZSksCiAgIC0gSlNEb2MgYEBzd2FnZ2VyYCBkb2N1bWVudGF0aW9uIHVuZGVyIHRoZSBgL3tibHVlcHJpbnRBY3Rpb259YCB0byBhZGQgcGVyLWFjdGlvbgogICAgIGRvY3VtZW50YXRpb24gZm9yIHRoZQogICAgIFttb2RlbCBibHVlcHJpbnQgYWN0aW9uc10oaHR0cHM6Ly9zYWlsc2pzLmNvbS9kb2N1bWVudGF0aW9uL2NvbmNlcHRzL2JsdWVwcmludHMvYmx1ZXByaW50LWFjdGlvbnMpLAogICAtIEpTRG9jIGBAc3dhZ2dlcmAgZG9jdW1lbnRhdGlvbiB1bmRlciB0aGUgYC9hbGxBY3Rpb25zYCBwYXRoIHRvIGJlIGFwcGxpZWQgdG8gKiphbGwqKgogICAgIGJsdWVwcmludCBhY3Rpb25zIGZvciB0aGUgbW9kZWwsIG9yCiAgIC0gSlNEb2MgYEBzd2FnZ2VyYCBkb2N1bWVudGF0aW9uIHVuZGVyIGB0YWdzYCBhbmQgYGNvbXBvbmVudHNgIHBhdGhzIGZvciBhZGRpbmcgdG8gdGhlCiAgICAgdG9wLWxldmVsIFN3YWdnZXIvT3BlbkFQSSBkZWZpbml0aW9ucy4KCkFuIGBleGNsdWRlYCBwcm9wZXJ0eSwgc2V0IHRvIGB0cnVlYCwgbWF5IGJlIGFkZGVkIHRvIGFueSBgc3dhZ2dlcmAgZWxlbWVudCBvZiBgQHN3YWdnZXJgIEpTRG9jCmFjdGlvbiBkb2N1bWVudGF0aW9uIHRvIGV4Y2x1ZGUgdGhlIG1vZGVsICpjb21wbGV0ZWx5KiAoZXhjbHVkZSB0aGUgKipzY2hlbWEqKikgb3IgYSBzcGVjaWZpYwpibHVlcHJpbnQgYWN0aW9uIGZyb20gdGhlIGdlbmVyYXRlZCBTd2FnZ2VyLiBTZWUgZXhhbXBsZSBpbiBbT2xkUGV0LmpzXShhcGkvbW9kZWxzL09sZFBldC5qcykuCgpJbmRpdmlkdWFsIG1vZGVsIGF0dHJpYnV0ZXMgbWF5IGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGdlbmVyYXRlZCBTd2FnZ2VyIGJ5IHNldHRpbmcKYG1ldGEuc3dhZ2dlci5leGNsdWRlYCB0byBgdHJ1ZWAuIFNlZSBleGFtcGxlIGluIFtQZXQuanNdKGFwaS9tb2RlbHMvUGV0LmpzKS4KCk9wZW5BUEkgMyBzcGVjaWZpZXMgdGhlICoqKkFueSBUeXBlKioqIGJ5IHRoZSBhYnNlbmNlIG9mIHRoZSBgdHlwZWAgcHJvcGVydHkgaW4gYSBzY2hlbWE7CnRoaXMgbWF5IGJlIGFjaGlldmVkIGJ5IHNldHRpbmcgYSBtb2RlbCBhdHRyaWJ1dGUncyBgbWV0YS5zd2FnZ2VyLnR5cGVgIHZhbHVlIHRvIGBudWxsYC4KU2VlIGV4YW1wbGUgaW4gW1VzZXIuanNdKGFwaS9tb2RlbHMvVXNlci5qcykuCgpUaGUgU3dhZ2dlciBkZWZpbml0aW9uIGZvciBlYWNoIGFjdGlvbiBpcyBtZXJnZWQgaW4gdGhlIG9yZGVyIGFib3ZlIHRvIGZvcm0gdGhlIGZpbmFsCmRlZmluaXRpb24sIHdpdGggYGNvbmZpZy9yb3V0ZXMuanNgIHRha2luZyBoaWdoZXN0IHByZWNlbmRlbmNlIGFuZCAqKmVhcmxpZXIqKiBkZWZpbml0aW9ucwphYm92ZSB0YWtpbmcgcHJlY2VkZW5jZSBvdmVyIGxhdGVyLgoKRm9yIGV4YW1wbGUsIGluIGEgbW9kZWwgYGFwaS9tb2RlbHMvVXNlci5qc2A6CgpgYGBqYXZhc2NyaXB0Ci8qKgogKiBAc3dhZ2dlcgogKgogKiAvVXNlcjoKICogICB0YWdzOgogKiAgICAgLSBUYWcgTmFtZQogKiAvZmluZG9uZToKICogICBleHRlcm5hbERvY3M6CiAqICAgICB1cmw6IGh0dHBzOi8vZG9jcy5jb20vaGVyZQogKi8KbW9kdWxlLmV4cG9ydHMgPSB7CiAgYXR0cmlidXRlczogewogICAgdWlkOiB7CiAgICAgIHR5cGU6ICdzdHJpbmcnLAogICAgICBleGFtcGxlOiAnMDEyMzQ1JywKICAgICAgZGVzY3JpcHRpb246ICdBIHVuaXF1ZSBpZGVudGlmaWVyJywKICAgIH0KICB9LAogIHN3YWdnZXI6IHsKICAgIGFjdGlvbnM6IHsKICAgICAgY3JlYXRlOiB7IC4uLiB9LAogICAgfSwKICAgIG1vZGVsU2NoZW1hOiB7IC4uLiB9LAogICAgdGFnczogWy4uLl0KICAgIGNvbXBvbmVudHM6IHsuLi59CiAgfQp9OwpgYGAKCk5vdGUgdGhhdCBmb2xsb3dpbmcgcGFyYW1ldGVycyBhcmUgYWRkZWQgdG8gdGhlIGBjb21wb25lbnRzL3BhcmFtZXRlcnNgIGlmIHRoZXkgYXJlIG5vdApwcm92aWRlZCBpbiBgY29uZmlnL3N3YWdnZXJnZW5lcmF0b3IuanNgIChleHByZXNzZWQgYXMgT3BlbkFQSSByZWZlcmVuY2VzKToKCmBgYGphdmFzY3JpcHQKWwogIHsgJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1doZXJlUXVlcnlQYXJhbScgfSwKICB7ICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9MaW1pdFF1ZXJ5UGFyYW0nIH0sCiAgeyAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvU2tpcFF1ZXJ5UGFyYW0nIH0sCiAgeyAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvU29ydFF1ZXJ5UGFyYW0nIH0sCiAgeyAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvU2VsZWN0UXVlcnlQYXJhbScgfSwKICB7ICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9Qb3B1bGF0ZVF1ZXJ5UGFyYW0nIH0sCl0KYGBgCgpOb3RlIHRoYXQgd2hlbiBnZW5lcmF0aW5nIFN3YWdnZXIvT3BlbkFQSSBkb2N1bWVudGF0aW9uIGZvciBibHVlcHJpbnQgcm91dGVzLCB0aGUgaG9vayBhbHNvCmdlbmVyYXRlczoKCjEuIFNjaGVtYXMgZm9yICoqbW9kZWxzKiosIHdoaWNoIG1heSBiZSByZWZlcmVuY2VkIHVzaW5nIHRoZSBmb3JtIGB7ICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9tb2RlbE5hbWUnIH1gLgoyLiBQYXJhbWV0ZXJzIGZvciBtb2RlbCAqKnByaW1hcnkga2V5cyoqLCB3aGljaCBtYXkgYmUgcmVmZXJlbmNlZCB1c2luZyB0aGUgZm9ybSBgeyAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvTW9kZWxQS1BhcmFtLW1vZGVsTmFtZScgfWAuCgpUaGVzZSBtYXkgYmUgcmUtdXNlZCAocmVmZXJlbmNlZCkgaWYvYXMgYXBwbGljYWJsZSB3aXRoaW4gY3VzdG9tIHJvdXRlIGRvY3VtZW50YXRpb24uCgoKIyMgSGFuZGxpbmcgVG9wLUxldmVsIFN3YWdnZXIgRGVmaW50aW9ucyAoVGFncyBhbmQgQ29tcG9uZW50cykKCllvdSBhcmUgYWJsZSB0byBhZGQgdG8gdGhlIHRvcC1sZXZlbCBTd2FnZ2VyL09wZW5BUEkgZGVmaW5pdGlvbnMgZm9yIGB0YWdzYCBhbmQgYGNvbXBvbmVudHNgIGluIGFsbCBgc3dhZ2dlcmAgb2JqZWN0cwpkZXRhaWxlZCBhYm92ZSBhbmQgaW4gYWxsIEpTRG9jIGBAc3dhZ2dlcmAgZG9jdW1lbnRpb24gY29tbWVudHMuCgpBbGwgYHN3YWdnZXJgIG9iamVjdHMgbWF5IGNvbnRhaW4gdGhlIGVsZW1lbnRzIGB0YWdzYCBhbmQgYGNvbXBvbmVudHNgKCpleGNlcHQgdGhlIG9uZXMgc3BlY2lmaWVkIGluIGBjb25maWcucm91dGVzLmpzKikgZS5nLgoKYGBgamF2YXNjcmlwdAp7CiAgdGFnczogWwogICAgewogICAgICBuYW1lOiAnVGVzdCBNb2R1bGUnLAogICAgICBkZXNjcmlwdGlvbjogJ01vZHVsZSBkZXNjcmlwdGlvbiAuLi4nLAogICAgICBleHRlcm5hbERvY3M6IHsgdXJsOiAnaHR0cHM6Ly9kb2NzLmNvbS90ZXN0JyB9CiAgICB9CiAgXSwKICBjb21wb25lbnRzOiB7CiAgICBzY2hlbWFzOiB7CiAgICAgIHRlc3Q6IHsgLi4uIH0KICAgIH0KICB9Cn0KYGBgCgpTaW1pbGFybHksIEpTRG9jIGBAc3dhZ2dlcmAgdGFncyBtYXkgZGVmaW5lIGB0YWdzYCBhbmQgYGNvbXBvbmVudHNgOgoKYGBgamF2YXNjcmlwdAovKioKICogQHN3YWdnZXIKICoKICogdGFnczoKICogICAtIG5hbWU6IFRlc3QgTW9kdWxlCiAqICAgICBkZXNjcmlwdGlvbjogfAogKiAgICAgICBNb2R1bGUgZGVzY3JpcHRpb24KICogICAgICAgKGNvbnRpbnVlZCkuCiAqCiAqICAgICAgIEFub3RoZXIgcGFyYWdyYXBoLgogKgogKiAgICAgZXh0ZXJuYWxEb2NzOgogKiAgICAgICB1cmw6IGh0dHBzOi8vZG9jcy5jb20vdGVzdAogKiAgICAgICBkZXNjcmlwdGlvbjogUmVmZXIgdG8gdGhlc2UgZG9jcwogKgogKiBjb21wb25lbnRzOgogKiAgIHNjaGVtYXM6CiAqICAgICB0ZXN0OgogKiAgICAgICAuLi4KICovCmBgYAoKIyMjIFRhZ3MgSGFuZGxpbmcKClRhZ3MgYXJlIGFkZGVkIHRvIHRoZSB0b3AtbGV2ZWwgU3dhZ2dlci9PcGVuQVBJIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CjEuIElmIGEgdGFncyB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSAqKmRvZXMgbm90KiogZXhpc3QsIGl0IGlzIGFkZGVkLgoxLiBXaGVyZSBhIHRhZyB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSAqKmRvZXMqKiBleGlzdCwgZWxlbWVudHMgX29mIHRoYXQgdGFnXyB0aGF0IGRvIG5vdCBleGlzdCBhcmUgYWRkZWQKICAgZS5nLiBgZGVzY3JpcHRpb25gIGFuZCBgZXh0ZXJuYWxEb2NzYCBlbGVtZW50cy4KCk5vdGUgdGhhdCBhIGZpbmFsICpjbGVhbi11cCogcGhhc2UgaXMgcnVuIGFmdGVyIHByb2Nlc3NpbmcsIHdoaWNoIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmc6CjEuIFJlbW92YWwgb2YgdW5yZWZlcmVuY2VkIHRhZ3M7IGFuZAoyLiBDcmVhdGlvbiBvZiB0YWdzIHJlZmVyZW5jZWQgYnV0IGFyZSBub3QgZGVmaW5lZC4KCiMjIyBDb21wb25lbnQgRWxlbWVudCBIYW5kbGluZwoKRWxlbWVudHMgb2YgY29tcG9uZW50cyBhcmUgYWRkZWQgdG8gdGhlIHRvcC1sZXZlbCBTd2FnZ2VyL09wZW5BUEkgZGVmaW5pdGlvbnMgYXMgZm9sbG93czoKMS4gRWxlbWVudHMgb2YgdGhlIGNvbXBvbmVudCBkZWZpbml0aW9uIHJlZmVyZW5jZSAoc2NoZW1hcywgcGFyYW1ldGVycywgZXRjKSBhcmUgYWRkZWQgd2hlcmUKICAgdGhleSAqKmRvIG5vdCBleGlzdCoqLgoxLiBFeGlzdGluZyBlbGVtZW50cyBhcmUgKipub3QqKiBvdmVyd3JpdHRlbiBvciBtZXJnZWQuCgpGb3IgZXhhbXBsZSwgdGhlIGVsZW1lbnQgYGNvbXBvbmVudHMuc2NoZW1hcy5wZXRgIHdpbGwgYmUgYWRkZWQgYXMgcGFydCBvZiBhIG1lcmdlIHByb2Nlc3MsCmJ1dCB0aGUgY29udGVudHMgb2YgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgYHBldGAgKip3aWxsIG5vdCoqIGJlIG1lcmdlZC4KClRoZSBmb2xsb3dpbmcgZWxlbWVudHMgKGZyb20gdGhlIE9wZW5BUEkgMyBzcGVjaWZpY2F0aW9uKSBhcmUgaGFuZGxlZDoKYGBgamF2YXNjcmlwdApsZXQgY29tcG9uZW50RGVmaW5pdGlvblJlZmVyZW5jZSA9IHsKICAgIC8vIFJldXNhYmxlIHNjaGVtYXMgKGRhdGEgbW9kZWxzKQogICAgc2NoZW1hczoge30sCiAgICAvLyBSZXVzYWJsZSBwYXRoLCBxdWVyeSwgaGVhZGVyIGFuZCBjb29raWUgcGFyYW1ldGVycwogICAgcGFyYW1ldGVyczoge30sCiAgICAvLyBTZWN1cml0eSBzY2hlbWUgZGVmaW5pdGlvbnMgKHNlZSBBdXRoZW50aWNhdGlvbikKICAgIHNlY3VyaXR5U2NoZW1lczoge30sCiAgICAvLyBSZXVzYWJsZSByZXF1ZXN0IGJvZGllcwogICAgcmVxdWVzdEJvZGllczoge30sCiAgICAvLyBSZXVzYWJsZSByZXNwb25zZXMsIHN1Y2ggYXMgNDAxIFVuYXV0aG9yaXplZCBvciA0MDAgQmFkIFJlcXVlc3QKICAgIHJlc3BvbnNlczoge30sCiAgICAvLyBSZXVzYWJsZSByZXNwb25zZSBoZWFkZXJzCiAgICBoZWFkZXJzOiB7fSwKICAgIC8vIFJldXNhYmxlIGV4YW1wbGVzCiAgICBleGFtcGxlczoge30sCiAgICAvLyBSZXVzYWJsZSBsaW5rcwogICAgbGlua3M6IHt9LAogICAgLy8gUmV1c2FibGUgY2FsbGJhY2tzCiAgICBjYWxsYmFja3M6IHt9LAp9OwpgYGAKCgojIyBBZHZhbmNlZCBGaWx0ZXJpbmcvUHJvY2Vzc2luZyBvZiBHZW5lcmF0ZWQgU3dhZ2dlcgoKVGhyZWUgbWVjaGFuaXNtcyBhcmUgcHJvdmlkZWQgdG8gZW5hYmxlIGFkdmFuY2luZyBmaWx0ZXJpbmcgb2YgdGhlIFN3YWdnZXIgZ2VuZXJhdGlvbiBwcm9jZXNzOgoxLiBBbiBgaW5jbHVkZVJvdXRlKClgIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIHJvdXRlcyB0byBiZSBpbmNsdWRlZCBpbiBnZW5lcmF0ZWQgU3dhZ2dlciBvdXRwdXQuCjEuIEFuIGB1cGRhdGVCbHVlcHJpbnRBY3Rpb25UZW1wbGF0ZXMoKWAgZnVuY3Rpb24gYWxsb3dzIGN1c3RvbWlzYXRpb24gb2YgdGhlIHRlbXBsYXRlcyB1c2VkIHRvIGdlbmVyYXRlIFN3YWdnZXIgZm9yIGJsdWVwcmludHMuCjEuIEEgYHBvc3RQcm9jZXNzKClgIGZ1bmN0aW9uIGFsbG93cyBhbiBhbHRlcm5hdGUgbWVjaGFuaXNtIGZvciBzYXZpbmcgYW5kL29yIG1vZGlmaWNhdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIFN3YWdnZXIgb3V0cHV0IGJlZm9yZSBpdCBpcyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgZmlsZS4KCkVhY2ggaXMgY29uZmlndXJlZCBpbiBgY29uZmlnL3N3YWdnZXJnZW5lcmF0b3IuanNgLgoKIyMjIFJvdXRlIEluZm9ybWF0aW9uCgpUaGlzIGhvb2sgcGFyc2VzIGFsbCByb3V0ZXMsIGN1c3RvbSBhbmQgYmx1ZXByaW50LCBiZWZvcmUgY29tbWVuY2luZyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgU3dhZ2dlciBvdXRwdXQuCkVhY2ggcm91dGUgaXMgZGVzY3JpYmVkIGJ5IGEgYFN3YWdnZXJSb3V0ZUluZm9gIG9iamVjdAooc2VlIGRlZmludGlvbiBbaGVyZV0oLi9saWIvaW50ZXJmYWNlcy50cyNMMTg0KSk6CgpgYGB0eXBlc2NyaXB0CmV4cG9ydCBpbnRlcmZhY2UgU3dhZ2dlclJvdXRlSW5mbyB7CiAgbWlkZGxld2FyZVR5cGU6IE1pZGRsZXdhcmVUeXBlOyAvLzwgb25lIG9mIGFjdGlvbnxibHVlcHJpbnQKCiAgdmVyYjogSFRUUE1ldGhvZFZlcmI7IC8vPCBvbmUgb2YgYWxsfGdldHxwb3N0fHB1dHxwYXRjaHxkZWxldGUKICBwYXRoOiBzdHJpbmc7IC8vPCBmdWxsIFNhaWxzIFVSTCBhcyBwZXIgc2FpbHMuZ2V0VXJsRm9yKCkgaW5jbHVkaW5nIHByZWZpeAogIHZhcmlhYmxlczogc3RyaW5nW107IC8vPCBsaXN0IG9mIEFMTCB2YXJpYWJsZXMgZXh0cmFjdGVkIGZyb20gcGF0aCBlLmcuIGAvcGV0LzppZGAgLS0+IGBpZGAKICBvcHRpb25hbFZhcmlhYmxlczogc3RyaW5nW107IC8vPCBsaXN0IG9mIG9wdGlvbmFsIHZhcmlhYmxlcyBmcm9tIHBhdGggZS5nLiBgL3BldC86aWQ/YAoKICBhY3Rpb246IHN0cmluZzsgLy88IGVpdGhlciBibHVlcHJpbnQgYWN0aW9uIChlLmcuICdmaW5kJykgb3IgYWN0aW9uIGlkZW50aXR5IChlLmcuICdzdWJkaXIvcmVwb3J0aW5nL3J1bicpCiAgYWN0aW9uVHlwZTogQWN0aW9uVHlwZTsgLy88IG9uZSBvZiBibHVlcHJpbnR8c2hvcnRjdXRCbHVlcHJpbnR8Y29udHJvbGxlcnxzdGFuZGFsb25lfGFjdGlvbnMyfGZ1bmN0aW9uCiAgYWN0aW9uczJNYWNoaW5lPzogU2FpbHMuQWN0aW9uczJNYWNoaW5lOyAvLzwgZm9yIGFjdGlvblR5cGUgPT09ICdhY3Rpb25zMicsIGRldGFpbHMgb2YgdGhlIGFjdGlvbjIgbWFjaGluZQoKICBtb2RlbD86IFN3YWdnZXJTYWlsc01vZGVsOyAvLzwgcmVmZXJlbmNlIHRvIFNhaWxzIE1vZGVsIChibHVlcHJpbnRzIG9ubHkpCiAgYXNzb2NpYXRpb25BbGlhc2VzPzogc3RyaW5nW107IC8vPCBhc3NvY2lhdGlvbiBhdHRyaWJ1dGUgbmFtZXMgKHJlbGV2YW50IGJsdWVwcmludCByb3V0ZXMgb25seSkKCiAgZGVmYXVsdFRhZ05hbWU/OiBzdHJpbmc7IC8vPCBkZWZhdWx0IHRhZyBuYW1lIGZvciByb3V0ZSwgaWYgYW55LCBiYXNlZCBvbiBTYWlscyBNb2RlbCBvciBDb250cm9sbGVyCgogIHN3YWdnZXI/OiBTd2FnZ2VyQWN0aW9uQXR0cmlidXRlOyAvLzwgcGVyLXJvdXRlIFN3YWdnZXIgKE9wZW5BcGkgT3BlcmF0aW9uKQp9CmBgYAoKT3RoZXIgaW50ZXJmYWNlcyBmb3IgbW9kZWxzLCBgc3dhZ2dlcmAgZWxlbWVudHMgZXRjIG1heSBiZSBmb3VuZCBpbiBbaW50ZXJmYWNlcy50c10oLi9saWIvaW50ZXJmYWNlcy50cykuCgoKIyMjIFJvdXRlIEZpbHRlcmluZwoKVGhlIGBpbmNsdWRlUm91dGUocm91dGVJbmZvKTogYm9vbGVhbmAgZnVuY3Rpb24gbWF5IGJlIHVzZWQgdG8gc2VsZWN0IHdoaWNoIHJvdXRlcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBTd2FnZ2VyIG91dHB1dC4KCkZvciBleGFtcGxlOgpgYGBqYXZhc2NyaXB0Cm1vZHVsZS5leHBvcnRzWydzd2FnZ2VyLWdlbmVyYXRvciddID0gewogIGluY2x1ZGVSb3V0ZTogKHJvdXRlSW5mbykgPT4gewogICAgbGV0IGMgPSByb3V0ZUluZm8uY29udHJvbGxlcjsKICAgIGlmKCFjKSByZXR1cm4gdHJ1ZTsKICAgIGlmKGMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCd1c2VyJykpIHJldHVybiB0cnVlOwogICAgcmV0dXJuIGZhbHNlOwogIH0KfQpgYGAKCiMjIyBDdXN0b21pc2luZyBCbHVlcHJpbnQgQWN0aW9uIFRlbXBsYXRlcwoKVGhlIHRlbXBsYXRlcyB1c2VkIGZvciBnZW5lcmF0aW5nIFN3YWdnZXIgZm9yIGVhY2ggU2FpbHMgYmx1ZXByaW50IGFjdGlvbiByb3V0ZSBtYXkgYmUKY3VzdG9taXNlZCAvIG1vZGlmaWVkIC8gYWRkZWQgdG8gdXNpbmcgdGhlIGB1cGRhdGVCbHVlcHJpbnRBY3Rpb25UZW1wbGF0ZXNgIGNvbmZpZyBvcHRpb24KZS5nLiB0byBzdXBwb3J0IGN1c3RvbSBibHVlcHJpbnQgYWN0aW9ucy9yb3V0ZXMuCgpGb3IgZXhhbXBsZToKYGBgamF2YXNjcmlwdAptb2R1bGUuZXhwb3J0c1snc3dhZ2dlci1nZW5lcmF0b3InXSA9IHsKICB1cGRhdGVCbHVlcHJpbnRBY3Rpb25UZW1wbGF0ZXM6IGZ1bmN0aW9uKGJsdWVwcmludEFjdGlvblRlbXBsYXRlcykgewogICAgYmx1ZXByaW50QWN0aW9uVGVtcGxhdGVzLnNlYXJjaCA9IHsgLi4uIH07CiAgICByZXR1cm4gYmx1ZXByaW50QWN0aW9uVGVtcGxhdGVzOwogIH0KfQpgYGAKClRoZSBgYmx1ZXByaW50QWN0aW9uVGVtcGxhdGVzYCBvYmplY3QgY29udGFpbnMga2V5cyBvZiB0aGUgYmx1ZXByaW50ICoqYWN0aW9uIG5hbWVzKioKYW5kIHZhbHVlcyBhcyBwZXIgdGhlIGZvbGxvd2luZyBleGFtcGxlIChyZWZlciB0byB0aGUKW3NvdXJjZSBjb2RlXShsaWIvdHlwZS1mb3JtYXR0ZXIuanMjTDcwKSBmb3IgdGhlIGRlZmF1bHQgdGVtcGxhdGVzKToKCmBgYGphdmFzY3JpcHQKbGV0IGJsdWVwcmludEFjdGlvblRlbXBsYXRlcyA9IHsKICBmaW5kb25lOiB7CiAgICBzdW1tYXJ5OiAnR2V0IHtnbG9iYWxJZH0gKGZpbmQgb25lKScsCiAgICBkZXNjcmlwdGlvbjogJ0xvb2sgdXAgdGhlICoqe2dsb2JhbElkfSoqIHJlY29yZCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQuJywKICAgIGV4dGVybmFsRG9jczogewogICAgICB1cmw6ICdodHRwczovL3NhaWxzanMuY29tL2RvY3VtZW50YXRpb24vcmVmZXJlbmNlL2JsdWVwcmludC1hcGkvZmluZC1vbmUnLAogICAgICBkZXNjcmlwdGlvbjogJ1NlZSBodHRwczovL3NhaWxzanMuY29tL2RvY3VtZW50YXRpb24vcmVmZXJlbmNlL2JsdWVwcmludC1hcGkvZmluZC1vbmUnCiAgICB9LAogICAgcGFyYW1ldGVyczogWwogICAgICAncHJpbWFyeUtleVBhdGhQYXJhbWV0ZXInLCAvLyBzcGVjaWFsIGNhc2U7IGZpbHRlcmVkIGFuZCBzdWJzdGl0dXRlZCBkdXJpbmcgZ2VuZXJhdGlvbiBwaGFzZQogICAgICB7ICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9MaW1pdFF1ZXJ5UGFyYW0nIH0sCiAgICBdLAogICAgcmVzdWx0RGVzY3JpcHRpb246ICdSZXNwb25kcyB3aXRoIGEgc2luZ2xlICoqe2dsb2JhbElkfSoqIHJlY29yZCBhcyBhIEpTT04gZGljdGlvbmFyeScsCiAgICBub3RGb3VuZERlc2NyaXB0aW9uOiAnUmVzcG9uc2UgZGVub3RpbmcgKip7Z2xvYmFsSWR9KiogcmVjb3JkIHdpdGggc3BlY2lmaWVkIElEICoqTk9UKiogZm91bmQnLAogICAgLy8gaWYgZnVuY3Rpb25zLCBlYWNoIGNhbGxlZCB3aXRoIChibHVlcHJpbnRBY3Rpb25UZW1wbGF0ZSwgcm91dGVJbmZvLCBwYXRoRW50cnkpCiAgICBtb2RpZmllcnM6IFsnYWRkU2VsZWN0UXVlcnlQYXJhbScsIGV4YW1wbGVNb2RpZmllckZ1bmN0aW9uUmVmXSwKICB9LAogIC4uLgp9OwpgYGAKCk5vdGUgdGhhdDoKMS4gRm9yIHN1bW1hcnkgYW5kIGRlc2NyaXB0aW9uIHN0cmluZ3MgdGhlIHZhbHVlIGB7Z2xvYmFsSWR9YCBpcyByZXBsYWNlZCB3aXRoIHRoZSBhcHBsaWNhYmxlIFNhaWxzIG1vZGVsIHZhbHVlLgoxLiBQYXJhbWV0ZXJzIHZhbHVlcyBhcmUgU3dhZ2dlciBkZWZpbml0aW9ucywgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSAqc3BlY2lhbCogc3RyaW5nIHZhbHVlCiAgIGBwcmltYXJ5S2V5UGF0aFBhcmFtZXRlcmAsIHdoaWNoIG1heSBiZSB1c2VkIHRvIGluY2x1ZGUgYSByZWZlcmVuY2UgdG8gYSBtb2RlbCdzIHByaW1hcnkga2V5LgoxLiBNb2RpZmllcnMgYXJlIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGNoYW5nZXMgdG8gdGhlIGdlbmVyYXRlZCBTd2FnZ2VyLCBub3RpbmcgdGhhdDoKICAgLSBTdHJpbmcgdmFsdWVzIGFyZSBwcmVkZWZpbmVkIGluIGBnZW5lcmF0ZVBhdGhzKClgIChyZWZlciB0byB0aGUgW3NvdXJjZSBjb2RlXShsaWIvZ2VuZXJhdG9ycy5qcyNMMjQ2KSk7CiAgICAgdmFsaWQgIG1vZGlmaWVycyBhcmU6CiAgICAgLSBgYWRkUG9wdWxhdGVRdWVyeVBhcmFtYAogICAgIC0gYGFkZFNlbGVjdFF1ZXJ5UGFyYW1gCiAgICAgLSBgYWRkT21pdFF1ZXJ5UGFyYW1gCiAgICAgLSBgYWRkTW9kZWxCb2R5UGFyYW1gCiAgICAgLSBgYWRkTW9kZWxCb2R5UGFyYW1VcGRhdGVgCiAgICAgLSBgYWRkUmVzdWx0T2ZBcnJheU9mTW9kZWxzYAogICAgIC0gYGFkZEFzc29jaWF0aW9uUGF0aFBhcmFtYAogICAgIC0gYGFkZEFzc29jaWF0aW9uRktQYXRoUGFyYW1gCiAgICAgLSBgYWRkQXNzb2NpYXRpb25SZXN1bHRPZkFycmF5YAogICAgIC0gYGFkZFJlc3VsdE9mTW9kZWxgCiAgICAgLSBgYWRkUmVzdWx0Tm90Rm91bmRgCiAgICAgLSBgYWRkUmVzdWx0VmFsaWRhdGlvbkVycm9yYAogICAgIC0gYGFkZEZrc0JvZHlQYXJhbWAKICAgICAtIGBhZGRTaG9ydEN1dEJsdWVwcmludFJvdXRlTm90ZWAKICAgLSBGdW5jdGlvbnMgYXJlIGNhbGxlZCBhcyBgZnVuYyhibHVlcHJpbnRBY3Rpb25UZW1wbGF0ZSwgcm91dGVJbmZvLCBwYXRoRW50cnksIHRhZ3MsIGNvbXBvbmVudHMpYAogICAgIHdoZXJlCiAgICAgLSBgYmx1ZXByaW50QWN0aW9uVGVtcGxhdGVgIHRoZSBibHVlcHJpbnQgYWN0aW9uIHRlbXBsYXRlIChzZWUgYWJvdmUpIHRvIHdoaWNoIHRoZSBtb2RpZmllciByZWxhdGVzCiAgICAgLSBgcm91dGVJbmZvYCB0aGUgcm91dGUgaW5mb3JtYXRpb24gb2JqZWN0IChzZWUgYWJvdmUpIGZvciB3aGljaCB0aGUgU3dhZ2dlciBpcyBiZWluZyBnZW5lcmF0ZWQKICAgICAtIGBwYXRoRW50cnlgIHRoZSBnZW5lcmF0ZWQgU3dhZ2dlciBwYXRoIGVudHJ5IHRvIGJlIG1vZGlmaWVkCiAgICAgLSBgdGFnc2AgdGhlIGdlbmVyYXRlZCBTd2FnZ2VyICoqdGFnKiogZGVmaW5pdGlvbnMgdG8gYmUgbW9kaWZpZWQvZXh0ZW5kZWQKICAgICAtIGBjb21wb25lbnRzYCB0aGUgZ2VuZXJhdGVkIFN3YWdnZXIgKipjb21wb25lbnQqKiBkZWZpbml0aW9ucyB0byBiZSBtb2RpZmllZC9leHRlbmRlZAoKIyMjIFBvc3QtcHJvY2Vzc2luZyBHZW5lcmF0ZWQgU3dhZ2dlciBPdXRwdXQKClRoZSBmaW5hbCBnZW5lcmF0ZWQgU3dhZ2dlciBvdXRwdXQgbWF5IGJlIHBvc3QtcHJvY2Vzc2VkIGJlZm9yZSBpdCBpcyB3cml0dGVuIHRvCnRoZSBvdXRwdXQgZmlsZSB1c2luZyBhIHBvc3QtcHJvY2Vzc2luZyBmdW5jdGlvbiBzcGVjaWZpZWQgYXMgdGhlIGBwb3N0UHJvY2Vzc2AgY29uZmlnIG9wdGlvbi4KCkZvciBzaXR1YXRpb25zIHdoZXJlIHNhdmluZyB0aGUgZ2VuZXJhdGVkIHN3YWdnZXIgZG9jdW1lbnRhdGlvbiBKU09OIHRvIGEgZmlsZSBpcwpub3QgZGVzaXJlZC9hcHByb3ByaWF0ZSwgdGhlIGBwb3N0UHJvY2Vzc2AgY29uZmlnIG9wdGlvbiBtYXkgYmUgdXNlZCB0byBzcGVjaWZ5CmFuIGFsdGVybmF0ZSBzYXZlIG1lY2hhbmlzbS4KCk5vdGUgdGhhdCBpZiBgc3dhZ2dlckpzb25QYXRoYCBjb25maWcgb3B0aW9uIGlzIGVtcHR5L251bGwvdW5kZWZpbmVkIHRoZSBvdXRwdXQgZmlsZSB3aWxsIG5vdCBiZSB3cml0dGVuLgoKRm9yIGV4YW1wbGU6CmBgYGphdmFzY3JpcHQKbW9kdWxlLmV4cG9ydHNbJ3N3YWdnZXItZ2VuZXJhdG9yJ10gPSB7CiAgcG9zdFByb2Nlc3M6IGZ1bmN0aW9uKHNwZWNpZmljYXRpb25zKSB7CiAgICBsZXQgc2NoID0gc3BlY2lmaWNhdGlvbnMuY29tcG9uZW50cy5zY2hlbWFzOwogICAgT2JqZWN0LmtleXMoc2NoKS5tYXAoayA9PiB7CiAgICAgIHNjaFtrXS5kZXNjcmlwdGlvbiA9IHNja1trXS5kZXNjcmlwdGlvbi50b1VwcGVyQ2FzZSgpOwogICAgfSk7CiAgfQp9CmBgYAoKCiMjIFRlc3RpbmcKCiogQ2xvbmUgdGhpcyByZXBvc2l0b3J5CgoqIEluc3RhbGwgYWxsIGRldmVsb3BtZW50IGRlcGVuZGVuY2llcwoKYGBgc2gKIG5wbSBpbnN0YWxsCmBgYAoqIFRoZW4gcnVuIHRlc3QKCmBgYHNoCm5wbSB0ZXN0CmBgYAoKIyMgQ29udHJpYnV0ZQoKRm9yayB0aGlzIHJlcG8gYW5kIHB1c2ggaW4geW91ciBpZGVhcy4KRG8gbm90IGZvcmdldCB0byBhZGQgYSBiaXQgb2YgdGVzdChzKSBvZiB3aGF0IHZhbHVlIHlvdSBhZGRpbmcuCiogc3RpY2sgdG8gY29udmVudGlvbmFsIGNvbW1pdCBtZXNzYWdlIFtoZXJlXShodHRwczovL2NvbnZlbnRpb25hbGNvbW1pdHMub3JnLykgb3IgcmVhZCBtb3JlIFthbmd1bGFyIGNvbW1pdF0oaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29tbWl0KSBwYXR0ZXJuCiogV2hpbGUgZGV2ZWxvcGluZywgeW91IGNhbiBydW4gdGhlIGJlbG93IGNvbW1hbmQgdG8gc3RhcnQgbm9kZW1vbiB3YXRjaCB0b28gcnVuIGxpbnRpbmcgYW5kIHRlc3Rpbmcgb24gYC50c2AgY2hhbmdlcwoKYGBgc2gKbnBtIHJ1biBkZXYKYGBgCgojIyBDaGFuZ2Vsb2cKClNlZSB0aGUgZGlmZmVyZW50IHJlbGVhc2VzIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vdGhlbzR1L3NhaWxzLWhvb2stc3dhZ2dlci1nZW5lcmF0b3IvcmVsZWFzZXMpCgojIyBMaWNlbnNlCgpNSVQgTGljZW5zZSAoTUlUKQo= readmeEtag: '"4f2cdccc179372dc67c604bdcbe65a6dd9ecc6dd"' readmeLastModified: Mon, 05 Jul 2021 16:21:27 GMT repositoryId: 99695966 description: >- A tool to help generate Swagger specification documentation based on OAS 3.0 for Sails APIs created: '2017-08-08T13:27:48Z' updated: '2024-08-17T09:27:11Z' language: TypeScript archived: false stars: 78 watchers: 7 forks: 34 owner: theoomoregbee logo: https://avatars.githubusercontent.com/u/10440327?v=4 license: MIT repoEtag: '"5c2c7e63efd3dd90a8a2fbdc5cf4aa714d5fa84cba2d42c97395f6038b629cf1"' repoLastModified: Sat, 17 Aug 2024 09:27:11 GMT foundInMaster: true category: Parsers id: 735d3b9a4efacd3a1909f6a1b08a9b7a - source: openapi3 tags repository: https://github.com/jimschubert/intellij-openapi-generator v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEdlbmVyYXRvciBwbHVnaW4gZm9yIEludGVsbGlKIElERXMKCiFbQXNzZW1ibGUgUGx1Z2luXShodHRwczovL2dpdGh1Yi5jb20vamltc2NodWJlcnQvaW50ZWxsaWotb3BlbmFwaS1nZW5lcmF0b3Ivd29ya2Zsb3dzL0Fzc2VtYmxlJTIwUGx1Z2luL2JhZGdlLnN2ZykKCjwhLS0gUGx1Z2luIGRlc2NyaXB0aW9uIC0tPgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgcGx1Z2luIGFsbG93cyB5b3UgdG8gZ2VuZXJhdGUgY2xpZW50LCBzZXJ2ZXIsIG9yIGRvY3VtZW50YXRpb24gY29kZSBmcm9tIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyB3aXRoaW4geW91ciBJREUuCjwhLS0gUGx1Z2luIGRlc2NyaXB0aW9uIGVuZCAtLT4KClRoaXMgcGx1Z2luIGFsbG93cyBmb3IgYSBzb3J0IG9mIF9zcGVjXyBkcml2ZW4gZGV2ZWxvcG1lbnQuCgpXaGlsZSBkZXNpZ25pbmcgeW91ciBBUEksIHlvdSBjYW4gZ2VuZXJhdGUgb25lIG9yIG1vcmUgY2xpZW50cyBmcm9tIHdpdGhpbiB0aGUgSURFIHRvIGV2YWx1YXRlIHlvdXIgY2hhbmdlcy4KCkFsc28gaW5zdGFsbCBbaW50ZWxsaWotc3dhZ2dlcl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzgzNDcpIGZvciBhIHNlYW1sZXNzIFN3YWdnZXIvT3BlbkFQSSBlZGl0b3IgZXhwZXJpZW5jZS4KCiMgQnVpbGRpbmcKCmBgYAouL2dyYWRsZXcgY2xlYW4gYnVpbGRQbHVnaW4KYGBgCgojIFJ1bm5pbmcgaW4gSW50ZWxsaUoKCkZpcnN0LCB5b3UnbGwgbmVlZCB0byBbc2V0dXAgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudF0oaHR0cDovL3d3dy5qZXRicmFpbnMub3JnL2ludGVsbGlqL3Nkay9kb2NzL2Jhc2ljcy9nZXR0aW5nX3N0YXJ0ZWQvc2V0dGluZ191cF9lbnZpcm9ubWVudC5odG1sKS4KClRoZW46CgpgYGAKLi9ncmFkbGV3IHJ1bklkZQpgYGAKCk5PVEU6IFdoZW4gcnVubmluZyBsb2NhbGx5LCBpZiBjaGFuZ2VzIGRvbid0IGFwcGVhciBpbiB0aGUgc2FuZGJveCBpbnN0YW5jZSB5b3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHVwZGF0ZSB0aGUgcGx1Z2luIHZlcnNpb24gaW4gYGdyYWRsZS5wcm9wZXJ0aWVzYC4KCiMgVXNhZ2UKCk9wZW4gYSBTcGVjaWZpY2F0aW9uIFlBTUwgb3IgSlNPTiBmaWxlIGluIEludGVsbGlKLiBTdXBwb3J0ZWQgc3BlY2lmaWNhdGlvbnMgYXJlOiBPcGVuQVBJIDIuMC9PcGVuQVBJIDMuMC4gV2l0aCB0aGUgZG9jdW1lbnQgYWN0aXZlLCBuYXZpZ2F0ZSB0byBDb2RlIC0+IE9wZW5BUEkgLT4gR2VuZXJhdGUgZnJvbSBEb2N1bWVudC4KCkNob29zZSB5b3VyIGRlc2lyZWQgZ2VuZXJhdG9yIGFuZCBmaWxsIG91dCBvcHRpb25zLiBUaGVuLCBjaG9vc2UgYW4gb3V0cHV0IGRpcmVjdG9yeSBhbmQgZ2VuZXJhdGUuCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZS4gU2VlIFsuL0xJQ0VOU0VdKExJQ0VOU0UpIGZvciBtb3JlIGRldGFpbHMuCgpTd2FnZ2Vywq4gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBTbWFydEJlYXIgU29mdHdhcmUsIEluYy4KClRoaXMgcHJvamVjdCBpcyBub3QgbWFpbnRhaW5lZCBieSwgb3IgYXNzb2NpYXRlZCB3aXRoLCBTbWFydEJlYXIgU29mdHdhcmUsIEluYy4KVGhpcyBwcm9qZWN0IGlzIG5vdCBtYWludGFpbmVkIGJ5LCBvciBhc3NvY2lhdGVkIHdpdGgsIE9wZW5BUEkgSW5pdGlhdGl2ZSAoT0FJKSBpbiBhbnl3YXkuCg== readmeEtag: '"c19f0115de2fcf02ed9589470f9238a7556b4008"' readmeLastModified: Thu, 02 Jul 2020 02:27:56 GMT repositoryId: 61175252 description: Intellij Plugin for openapi-generator created: '2016-06-15T03:38:07Z' updated: '2024-08-13T14:46:35Z' language: Kotlin archived: false stars: 77 watchers: 5 forks: 12 owner: jimschubert logo: https://avatars.githubusercontent.com/u/109659?v=4 license: Apache-2.0 repoEtag: '"8b7ecb667b522cd625d9bb97af0349d61844f9b13a0bacd7f691cde07025c16d"' repoLastModified: Tue, 13 Aug 2024 14:46:35 GMT foundInMaster: true category: - SDK - Parsers id: 6f1cc2a930b656d771fb7dcdb2527d95 - source: openapi3 tags repository: https://github.com/landgraf-dev/openapi-delphi-generator v3: true id: c46c02d7c3412c4eb8f626910aefa33f repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIENsaWVudCBHZW5lcmF0b3IgZm9yIERlbHBoaQoKR2VuZXJhdGUgRGVscGhpIGNsaWVudCBTREtzIGZvciBhbnkgUkVTVCBBUEkgZGVmaW5lZCB3aXRoIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uIAoKVGhpcyBnZW5lcmF0b3IgY2FuIHJlYWQgYW4gT3BlbkFQSSBkb2N1bWVudCAoZnJvbSBsb2NhbCBmaWxlIG9yIFVSTCkgb2YgYSBSRVNUIEFQSSBhbmQgZ2VuZXJhdGUgRGVscGhpIGNsYXNzZXMgdGhhdCB5b3UgY2FuIHVzZSB0byBpbnZva2Ugc3VjaCBSRVNUIEFQSSBlbmRwb2ludHMgaW4gYSBmcmllbmRseSB3YXkuCgpUaGUgZ2VuZXJhdG9yIGNyZWF0ZXMgdGhlIERUTyBjbGFzc2VzIChyZXByZXNlbnRpbmcgdGhlIEpTT04gZGVmaW5pdGlvbnMgdXNlZCBieSB0aGUgQVBJKSBhbmQgdGhlIGludGVyZmFjZXMgd2l0aCBtZXRob2RzIHlvdSBjYW4gY2FsbCAocmVwcmVzZW50aW5nIHRoZSBlbmRwb2ludHMgdG8gaW52b2tlKS4KCiMjIFVzYWdlCgpbRG93bmxvYWQgdGhlIGJpbmFyaWVzXShodHRwczovL2dpdGh1Yi5jb20vbGFuZGdyYWYtZGV2L29wZW5hcGktZGVscGhpLWdlbmVyYXRvci9yZWxlYXNlcykgYW5kIGRlY29tcHJlc3MgaW4gYSBmb2xkZXIgaW4geW91ciBkaXNrLiBUaGUgZ2VuZXJhdG9yIGlzIGEgc2luZ2xlIGNvbW1hbmQtbGluZSBleGUgZmlsZSBuYW1lZCBgT3BlbkFwaURlbHBoaUdlbi5leGVgLiBFeGVjdXRlIGl0IHBhc3NpbmcgdGhlIHByb3BlciBjb21tYW5kLWxpbmUgcGFyYW1ldGVycy4gVGhlIHRvb2wgcHJvdmlkZXMgYSBoZWxwIGZpbGUgc2hvd2luZyB5b3UgYWxsIHRoZSBhdmFpbGFibGUgb3B0aW9ucy4KCiMjIyBHZW5lcmF0aW5nIHRoZSBjbGllbnQKClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBnZW5lcmF0ZXMgY2xpZW50IGZpbGVzIGZvciB0aGUgcG9wdWxhciBbU3dhZ2dlciBQZXRTdG9yZV0oaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvKSBleGFtcGxlIEFQSS4KCmBgYHNoZWxsCk9wZW5BcGlEZWxwaGlHZW4gLWk6Imh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24iIC1vOiJDOlxQZXRTdG9yZSIgLW46UGV0U3RvcmUgLW06TXVsdGlwbGVDbGllbnRzRnJvbUZpcnN0VGFnQW5kT3BlcmF0aW9uSWQKYGBgCgpUaGUgYC1pYCBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSBPcGVuQVBJIGRvY3VtZW50IHRvIGltcG9ydC4gVGhlIGAtb2AgcGFyYW1ldGVyIHByb3ZpZGVzIHRoZSBvdXRwdXQgZm9sZGVyIHdoZXJlIHRoZSBEZWxwaGkgZmlsZXMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gVGhlIGAtbmAgcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSBBUEksIHVzZWQgdG8gcHJlZml4IHVuaXQgYW5kIGNsYXNzIG5hbWVzLiBGaW5hbGx5LCBgLW1gIHBhcmFtZXRlciBpbmRpY2F0ZXMgaG93IHRoZSBzZXJ2aWNlIGNsYXNzZXMgYW5kIGludGVyZmFjZXMgc2hvdWxkIGJlIG9yZ2FuaXplZC4KClRoZSBnZW5lcmF0b3Igd2lsbCBjcmVhdGUgdGhlIGZvbGxvd2luZyB1bml0czoKCjxpbWcgd2lkdGg9IjQwOCIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xMDI0MjU4MC8xODEyNzgzMzYtNmVjNzIyNzAtZWUzMi00MTZiLWJiNjktOGU5MGI4OGU1YjA3LnBuZyI+CgpgUGV0U3RvcmVDbGllbnRgIGlzIHRoZSBtYWluIHVuaXQgd2l0aCB0aGUgc2VydmljZSBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzLiBgUGV0U3RvcmVEVE9zYCBjb250YWlucyBhbGwgdGhlIERUTyBjbGFzc2VzLCBhbmQgYFBldFN0b3JlSnNvbmAgaG9sZHMgY29kZSBmb3Igc2VyaWFsaXppbmcvZGVzZXJpYWxpemluZyBEVE9zIHRvIGFuZCBmcm9tIEpTT04uCgojIyMgVXNpbmcgdGhlIGNsaWVudAoKVG8gdXNlIHRoZSBjbGllbnQsIGp1c3QgYWRkIHRoZSBnZW5lcmF0ZWQgdW5pdHMgdG8geW91ciB1c2VzIGNsYXNzZXMuIEluc3RhbnRpYXRlIHRoZSBjbGllbnQgYW5kIHVzZSBpdHMgbWV0aG9kcy4gTm90ZSB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkZXBlbmRzIG9uIHRoZSB1bml0cyBwcm92aWRlZCBpbiB0aGUgW0Rpc3RdKERpc3QpIGZvbGRlciwgc28geW91IG11c3QgYWxzbyBhZGQgdGhlbSB0byB5b3VyIHByb2plY3QuCgpPbmNlIHlvdSBpbnN0YW50aWF0ZSB0aGUgY2xpZW50LCBqdXN0IGNhbGwgYSBtZXRob2QgZnJvbSBhIHNlcnZpY2UgdG8gaW52b2tlIGFuIGVuZHBvaW50LiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgd2lsbCBjcmVhdGUgYSBuZXcgcGV0IGluIHRoZSBzZXJ2ZXIgYnkgaW52b2tpbmcgdGhlIGBQT1NUIC9QZXRzYCAgZW5kcG9pbnQ6CgpgYGBkZWxwaGkKdXNlcyB7Li4ufSwgUGV0U3RvcmVDbGllbnQsIFBldFN0b3JlRHRvczsKCnByb2NlZHVyZSBUUGV0U3RvcmVDbGllbnRUZXN0cy5DcmVhdGVBbmRHZXRQZXQ7CmNvbnN0CiAgUGV0SWQgPSA2MTM0MTsKICBDYXRlZ29yeUlkID0gNjEzNDE7CiAgVGFnSWQgPSA2MTM0MTsKdmFyCiAgUGV0OiBUUGV0OwogIFRhZzogVFRhZzsKICBDbGllbnQ6IElQZXRTdG9yZUNsaWVudDsKYmVnaW4KICBDbGllbnQgOj0gVFBldFN0b3JlQ2xpZW50LkNyZWF0ZTsKCiAgLy8gQ3JlYXRlIHRoZSBwZXQKICBQZXQgOj0gVFBldC5DcmVhdGU7CiAgdHJ5CiAgICBQZXQuSWQgOj0gUGV0SWQ7CiAgICBQZXQuTmFtZSA6PSAnSm9zZXBoaW5lJzsKICAgIFBldC5TdGF0dXMgOj0gJ2F2YWlsYWJsZSc7CgogICAgUGV0LkNhdGVnb3J5IDo9IFRDYXRlZ29yeS5DcmVhdGU7CiAgICBQZXQuQ2F0ZWdvcnkuSWQgOj0gQ2F0ZWdvcnlJZDsKICAgIFBldC5DYXRlZ29yeS5OYW1lIDo9ICdUZXJyaWVyIERvZ3MnOwoKICAgIFBldC5UYWdzIDo9IFRUYWdMaXN0LkNyZWF0ZTsKICAgIFRhZyA6PSBUVGFnLkNyZWF0ZTsKICAgIFRhZy5JZCA6PSBUYWdJZDsKICAgIFRhZy5OYW1lIDo9ICdUZXJyaWVyJzsKICAgIFBldC5UYWdzLkFkZChUYWcpOwoKICAgIFBldC5QaG90b1VybHMuQWRkKCdodHRwOi8vZHVtbXkuY29tL2RvZy5wbmcnKTsKICAgIENsaWVudC5QZXQuQWRkUGV0KFBldCk7CiAgZmluYWxseQogICAgUGV0LkZyZWU7CiAgZW5kOwpgYGAKCkFub3RoZXIgZXhhbXBsZSB0aGF0IHdpbGwgcmV0cmlldmUgYW5kIHRoZW4gZGVsZXRlIGEgcGV0OgoKYGBgZGVscGhpCiAgQ2xpZW50IDo9IFRQZXRTdG9yZUNsaWVudC5DcmVhdGU7CiAgUGV0IDo9IENsaWVudC5QZXQuR2V0UGV0QnlJZChQZXRJZCk7CiAgdHJ5CiAgICBDaGVjayhQZXQgPD4gbmlsLCBGb3JtYXQoJ1BldCAlZCBub3QgZm91bmQnLCBbUGV0SWRdKSk7CiAgICBDaGVja0VxdWFscyhQZXRJZCwgUGV0LklkKTsKICAgIENoZWNrRXF1YWxzKCdKb3NlcGhpbmUnLCBQZXQuTmFtZSk7CiAgICBDaGVja0VxdWFscygnYXZhaWxhYmxlJywgUGV0LlN0YXR1cyk7CiAgZmluYWxseQogICAgUGV0LkZyZWU7CiAgZW5kOwoKICAvLyBEZWxldGUgdGhlIG5ld2x5IGNyZWF0ZWQgcGV0CiAgQ2xpZW50LlBldC5EZWxldGVQZXQoJ3NwZWNpYWwta2V5JywgUGV0SWQpOwpgYGAKCllvdSBtdXN0IGNyZWF0ZSBhbmQgZGVzdHJveSBhbGwgRFRPIGNsYXNzZXMgeW91cnNlbGYuIFRoZSBjbGFzc2VzIGFuZCBsaXN0cyBvd25lZCBieSB0aGUgRFRPIGNsYXNzZXMgYXJlIGRlc3Ryb3llZCBhdXRvbWF0aWNhbGx5LgoKIyMjIEF1dGhlbnRpY2F0aW9uCgpZb3UgY2FuIHNldCB0aGUgYENvbmZpZy5BY2Nlc3NUb2tlbmAgcHJvcGVydHkgdG8gYXV0aGVudGljYXRlIHdpdGggdGhlIEFQSToKCmBgYGRlbHBoaQpDbGllbnQuQ29uZmlnLkFjY2Vzc1Rva2VuIDo9ICc8YWNjZXNzIHRva2VuPic7CmBgYAoKSXQgd2lsbCBzZXQgdGhlIGBBdXRob3JpemF0aW9uYCBIVFRQIGhlYWRlciB3aXRoIHRoZSB0b2tlbiB2YWx1ZSBwcmVmaXhlZCBieSBgQmVhcmVyIGAuCgojIyMgQ2xpZW50IGNvbXBhdGliaWxpdHkKCkN1cnJlbnQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgcmVxdWlyZSBhbnkgZGVwZW5kZW5jeSBvbiAzcmQgcGFydHkgdW5pdHMsIHdvcmtpbmcgd2l0aCBhIHBsYWluIERlbHBoaSBpbnN0YWxsLiBUaGUgY29kZSBpcyBjdXJyZW50bHkgdXNpbmcgYFRIdHRwQ2xpZW50YCBjbGFzcyBmcm9tIHVuaXQgYFN5c3RlbS5OZXQuSHR0cENsaWVudGAgdG8gcGVyZm9ybSB0aGUgSFRUUCByZXF1ZXN0cywgc28gdGhlIGNsaWVudCB3aWxsIG9ubHkgY29tcGlsZSBvbiBEZWxwaGkgdmVyc2lvbnMgdGhhdCBwcm92aWRlIHN1Y2ggY2xhc3MuCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGZvcmNlIHRoZSBjbGllbnQgdG8gdXNlIEluZHkgY29tcG9uZW50cyB0byBwZXJmb3JtIEhUVFAgcmVxdWVzdHMuIEZvciB0aGF0LCBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY29kZSBzbmlwcGV0LgoKYGBgZGVscGhpCnVzZXMgey4uLn0sIE9wZW5BcGlSZXN0LCBPcGVuQXBpSW5keTsKCmJlZ2luCiAgLy8gQXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIGFwcGxpY2F0aW9uLCBzZXQgdGhlIERlZmF1bHRSZXF1ZXN0RmFjdG9yeQogIERlZmF1bHRSZXF1ZXN0RmFjdG9yeSA6PSBUSW5keVJlc3RSZXF1ZXN0RmFjdG9yeS5DcmVhdGU7CmVuZDsKYGBgCgpZb3UgY2FuIGludGVyY2VwdCB0aGUgbW9tZW50IHdoZXJlIGEgbmV3IGBUSWRIVFRQYCBjbGllbnQgaXMgY3JlYXRlZCAtIGluIGNhc2UgeW91IHdhbnQgdG8gc2V0dXAgc3BlY2lmaWMgcHJvcGVydGllcyBsaWtlIHByb3h5IG9yIElPIGhhbmRsZXJzLiBGb3IgdGhhdCB5b3UgY2FuIHVzZSBhIGNvZGUgbGlrZSB0aGlzOgoKYGBgZGVscGhpCnVzZXMgey4uLn0sIE9wZW5BcGlSZXN0LCBPcGVuQXBpSW5keSwgSWRIVFRQOwoKcHJvY2VkdXJlIFRNYWluRGF0YU1vZHVsZS5JbmR5Q2xpZW50Q3JlYXRlZChDbGllbnQ6IFRJZEhUVFApOwpiZWdpbgogIC8vIFNldCBleHRyYSBDbGllbnQgcHJvcGVydGllcyBoZXJlCmVuZDsKCnByb2NlZHVyZSBUTWFpbkRhdGFNb2R1bGUuRGF0YU1vZHVsZUNyZWF0ZShTZW5kZXI6IFRPYmplY3QpOwp2YXIKICBGYWN0b3J5OiBUSW5keVJlc3RSZXF1ZXN0RmFjdG9yeTsKYmVnaW4KICAvLyBBdCB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgYXBwbGljYXRpb24sIHNldCB0aGUgRGVmYXVsdFJlcXVlc3RGYWN0b3J5CiAgRmFjdG9yeSA6PSBUSW5keVJlc3RSZXF1ZXN0RmFjdG9yeS5DcmVhdGU7CiAgRGVmYXVsdFJlcXVlc3RGYWN0b3J5IDo9IEZhY3Rvcnk7CiAgRmFjdG9yeS5PbkNsaWVudENyZWF0ZWQgOj0gSW5keUNsaWVudENyZWF0ZWQ7CmVuZDsKYGBgCgojIyBDb21waWxpbmcgYW5kIHJ1bm5pbmcgdGVzdHMKCllvdSBjYW4gY29tcGlsZSBhbmQgcnVuIHRoZSB0ZXN0IHByb2plY3QgYWxzbyB3aXRob3V0IGFueSBkZXBlbmRlbmNpZXMuIFRoZSB0ZXN0cyB3ZXJlIGNyZWF0ZWQgdXNpbmcgRFVuaXQgZm9yIG1heGltdW0gY29tcGF0aWJpbGl0eSB3aXRoIHNldmVyYWwgRGVscGhpIHZlcnNpb25zLiAKCiMjIENvbXBpbGluZyB0aGUgZ2VuZXJhdG9yIHRvb2wKClRoZSBnZW5lcmF0b3IgdG9vbCBpdHNlbGYgdXNlcyAzcmQgcGFydHkgbGlicmFyaWVzLiBZb3UgZG9uJ3QgbmVlZCB0aGVtIHRvIHVzZSBpdCwgeW91IGNhbiBzaW1wbHkgZG93bmxvYWQgdGhlIGV4ZWN1dGFibGUgYW5kIHVzZSBpdCBkaXJlY3RseS4gSW4gY2FzZSB5b3Ugd2FudCB0byBjb21waWxlIGFuZCBkZWJ1ZyB0aGUgdG9vbCwgeW91IHdpbGwgbmVlZCB0aGUgZm9sbG93aW5nIGxpYnJhcmllczoKCiogW1ZTb2Z0LkNvbW1hbmRMaW5lUGFyc2VyXShodHRwczovL2dpdGh1Yi5jb20vVlNvZnRUZWNobm9sb2dpZXMvVlNvZnQuQ29tbWFuZExpbmVQYXJzZXIpCiogW1RNUyBCSVpdKGh0dHBzOi8vd3d3LnRtc3NvZnR3YXJlLmNvbS9zaXRlL3Rtc2JpemludHJvLmFzcCkKCk5vdGUgdGhhdCBUTVMgQklaIGlzIGEgY29tbWVyY2lhbCBsaWJyYXJ5LiBZb3UgY2FuIHVzZSB0aGUgdHJpYWwgdmVyc2lvbiBmb3IgZGV2ZWxvcG1lbnQgKGluIGNhc2UgeW91IHdhbnQgdG8gY29udHJpYnV0ZSB3aXRoIHRoZSBwcm9qZWN0KS4KCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBbZmFpci1jb2RlXShodHRwOi8vZmFpcmNvZGUuaW8pIGRpc3RyaWJ1dGVkIHVuZGVyIFsqKkFwYWNoZSAyLjAgd2l0aCBDb21tb25zIENsYXVzZSoqXShMSUNFTlNFKSBsaWNlbnNlLgo= readmeEtag: '"db514f84ca82654bd88f2578cda0cc39d251d183"' readmeLastModified: Tue, 30 Jan 2024 18:38:25 GMT repositoryId: 517490524 description: >- Generate Delphi client SDKs for any REST API defined with the OpenAPI specification. created: '2022-07-25T02:23:12Z' updated: '2024-08-07T13:39:13Z' language: Pascal archived: false stars: 75 watchers: 9 forks: 11 owner: landgraf-dev logo: https://avatars.githubusercontent.com/u/52084575?v=4 license: NOASSERTION repoEtag: '"919c966e26f67efeb87200de58cc3301914ebee3f96f3bf723c5fb82e272c56e"' repoLastModified: Wed, 07 Aug 2024 13:39:13 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/christianhelle/httpgenerator v3: true id: 57615d15d5539b58b50687ba6bff2905 repositoryMetadata: base64Readme: >- WyFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9odHRwZ2VuZXJhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvaHR0cGdlbmVyYXRvci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwpClshW1Ntb2tlIFRlc3RzXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvaHR0cGdlbmVyYXRvci9hY3Rpb25zL3dvcmtmbG93cy9zbW9rZS10ZXN0cy55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2h0dHBnZW5lcmF0b3IvYWN0aW9ucy93b3JrZmxvd3Mvc21va2UtdGVzdHMueW1sKQpbIVtOdUdldF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC92L2h0dHBnZW5lcmF0b3I/Y29sb3I9Ymx1ZSldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9odHRwZ2VuZXJhdG9yKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9odHRwZ2VuZXJhdG9yJm1ldHJpYz1hbGVydF9zdGF0dXMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9odHRwZ2VuZXJhdG9yKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvY2hyaXN0aWFuaGVsbGUvaHR0cGdlbmVyYXRvci9ncmFwaC9iYWRnZS5zdmc/dG9rZW49WWVTRm5uMGJINildKGh0dHBzOi8vY29kZWNvdi5pby9naC9jaHJpc3RpYW5oZWxsZS9odHRwZ2VuZXJhdG9yKQoKIyBIVFRQIEZpbGUgR2VuZXJhdG9yCgpHZW5lcmF0ZSAuaHR0cCBmaWxlcyBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMKCmAuaHR0cGAgZmlsZXMgd2VyZSBtYWRlIHBvcHVsYXIgYnkgdGhlIFZpc3VhbCBTdHVkaW8gQ29kZSBleHRlbnNpb24gW1JFU1QgQ2xpZW50XShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9aHVtYW8ucmVzdC1jbGllbnQpLCB3aGljaCB0aGVuIHdhcyBhZG9wdGVkIGJ5IEpldEJyYWlucyBJREUncywgYW5kIGxhdGVyIG9uIFtWaXN1YWwgU3R1ZGlvIDIwMjJdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1NYWRzS3Jpc3RlbnNlbi5SZXN0Q2xpZW50KQoKIyMgSW5zdGFsbGF0aW9uCgpUaGlzIGlzIHRvb2wgaXMgZGlzdHJ1YnV0ZWQgYXMgYSAuTkVUIFRvb2wgb24gTnVHZXQub3JnCgpUbyBpbnN0YWxsLCBzaW1wbHkgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZAoKYGBgYmFzaApkb3RuZXQgdG9vbCBpbnN0YWxsIC0tZ2xvYmFsIGh0dHBnZW5lcmF0b3IKYGBgCgojIyBVc2FnZQoKYGBgdGV4dApVU0FHRToKICAgIGh0dHBnZW5lcmF0b3IgW1VSTCBvciBpbnB1dCBmaWxlXSBbT1BUSU9OU10KCkVYQU1QTEVTOgogICAgaHR0cGdlbmVyYXRvciAuL29wZW5hcGkuanNvbgogICAgaHR0cGdlbmVyYXRvciAuL29wZW5hcGkuanNvbiAtLW91dHB1dCAuLwogICAgaHR0cGdlbmVyYXRvciAuL29wZW5hcGkuanNvbiAtLW91dHB1dC10eXBlIG9uZWZpbGUKICAgIGh0dHBnZW5lcmF0b3IgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbgogICAgaHR0cGdlbmVyYXRvciBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24gLS1iYXNlLXVybCBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvCiAgICBodHRwZ2VuZXJhdG9yIC4vb3BlbmFwaS5qc29uIC0tYXV0aG9yaXphdGlvbi1oZWFkZXIgQmVhcmVyIGV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUp6ZFdJaU9pSXhNak0wTlRZM09Ea3dJaXdpYm1GdFpTSTZJa3B2YUc0Z1JHOWxJaXdpYVdGMElqb3hOVEUyTWpNNU1ESXlmUS5TZmxLeHdSSlNNZUtLRjJRVDRmd3BNZUpmMzZQT2s2eUpWX2FkUXNzdzVjCiAgICBodHRwZ2VuZXJhdG9yIC4vb3BlbmFwaS5qc29uIC0tYXp1cmUtc2NvcGUgW1NvbWUgQXBwbGljYXRpb24gSUQgVVJJXS8uZGVmYXVsdAoKQVJHVU1FTlRTOgogICAgW1VSTCBvciBpbnB1dCBmaWxlXSAgICBVUkwgb3IgZmlsZSBwYXRoIHRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBmaWxlCgpPUFRJT05TOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludHMgaGVscCBpbmZvcm1hdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIC12LCAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW50cyB2ZXJzaW9uIGluZm9ybWF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgLW8sIC0tb3V0cHV0IDxPVVRQVVQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi8gICAgICAgICAgICAgICAgICAgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1uby1sb2dnaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb24ndCBsb2cgZXJyb3JzIG9yIGNvbGxlY3QgdGVsZW1ldHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLXNraXAtdmFsaWRhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgdmFsaWRhdGlvbiBvZiBPcGVuQVBJIFNwZWNpZmljYXRpb24gZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tYXV0aG9yaXphdGlvbi1oZWFkZXIgPEhFQURFUj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbiBoZWFkZXIgdG8gdXNlIGZvciBhbGwgcmVxdWVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1sb2FkLWF1dGhvcml6YXRpb24taGVhZGVyLWZyb20tZW52aXJvbm1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2FkIHRoZSBhdXRob3JpemF0aW9uIGhlYWRlciBmcm9tIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGRlZmluZSBpdCBpbiB0aGUgLmh0dHAgZmlsZS4gWW91IGNhbiB1c2UgLS1hdXRob3JpemF0aW9uLWhlYWRlci12YXJpYWJsZS1uYW1lIHRvIHNwZWNpZnkgdGhlICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tYXV0aG9yaXphdGlvbi1oZWFkZXItdmFyaWFibGUtbmFtZSA8VkFSSUFCTEUtTkFNRT4gICAgYXV0aG9yaXphdGlvbiAgICAgICAgTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gbG9hZCB0aGUgYXV0aG9yaXphdGlvbiBoZWFkZXIgZnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS1jb250ZW50LXR5cGUgPENPTlRFTlQtVFlQRT4gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uICAgICBEZWZhdWx0IENvbnRlbnQtVHlwZSBoZWFkZXIgdG8gdXNlIGZvciBhbGwgcmVxdWVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLWJhc2UtdXJsIDxCQVNFLVVSTD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgQmFzZSBVUkwgdG8gdXNlIGZvciBhbGwgcmVxdWVzdHMuIFVzZSB0aGlzIGlmIHRoZSBPcGVuQVBJIHNwZWMgZG9lc24ndCBleHBsaWNpdGx5IHNwZWNpZnkgYSBzZXJ2ZXIgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tb3V0cHV0LXR5cGUgPE9VVFBVVC1UWVBFPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lUmVxdWVzdFBlckZpbGUgICAgT25lUmVxdWVzdFBlckZpbGUgZ2VuZXJhdGVzIG9uZSAuaHR0cCBmaWxlIHBlciByZXF1ZXN0LiBPbmVGaWxlIGdlbmVyYXRlcyBhIHNpbmdsZSAuaHR0cCBmaWxlIGZvciBhbGwgcmVxdWVzdHMuIE9uZUZpbGVQZXJUYWcgZ2VuZXJhdGVzIG9uZSAuaHR0cCBmaWxlIHBlciAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCB0YWcgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcmVxdWVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLWF6dXJlLXNjb3BlIDxTQ09QRT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF6dXJlIEVudHJhIElEIFNjb3BlIHRvIHVzZSBmb3IgcmV0cmlldmluZyBBY2Nlc3MgVG9rZW4gZm9yIEF1dGhvcml6YXRpb24gaGVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tYXp1cmUtdGVuYW50LWlkIDxURU5BTlQtSUQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXp1cmUgRW50cmEgSUQgVGVuYW50IElEIHRvIHVzZSBmb3IgcmV0cmlldmluZyBBY2Nlc3MgVG9rZW4gZm9yIEF1dGhvcml6YXRpb24gaGVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLS10aW1lb3V0IDxTRUNPTkRTPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjAgICAgICAgICAgICAgICAgICBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3Igd3JpdGluZyBmaWxlcyB0byBkaXNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKYGBgCgpSdW5uaW5nIHRoZSBmb2xsb3dpbmc6CgpgYGBzaApodHRwZ2VuZXJhdG9yIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24KYGBgCgpPdXRwdXRzIHRoZSBmb2xsb3dpbmc6CgpgYGAKSFRUUCBGaWxlIEdlbmVyYXRvciB2MC4xLjUKU3VwcG9ydCBrZXk6IG1ibWJxdmQKCk9wZW5BUEkgc3RhdGlzdGljczoKIC0gUGF0aCBJdGVtczogMTQKIC0gT3BlcmF0aW9uczogMjAKIC0gUGFyYW1ldGVyczogMTQKIC0gUmVxdWVzdCBCb2RpZXM6IDkKIC0gUmVzcG9uc2VzOiAyMAogLSBMaW5rczogMAogLSBDYWxsYmFja3M6IDAKIC0gU2NoZW1hczogNjcKCkZpbGVzOiAyMApEdXJhdGlvbjogMDA6MDA6MDIuMzA4OTQ1MApgYGAKCldoaWNoIHdpbGwgcHJvZHVjZSB0aGUgZm9sbG93aW5nIGZpbGVzOgoKYGBgc2gKLXJ3LXItLXItLSAxIGNocmlzdGlhbiAxOTcxMjEgIDU5MyBEZWMgMTAgMTA6NDQgRGVsZXRlT3JkZXIuaHR0cCAgICAgICAgCi1ydy1yLS1yLS0gMSBjaHJpc3RpYW4gMTk3MTIxICAyMzEgRGVjIDEwIDEwOjQ0IERlbGV0ZVBldC5odHRwCi1ydy1yLS1yLS0gMSBjaHJpc3RpYW4gMTk3MTIxICAzNTggRGVjIDEwIDEwOjQ0IERlbGV0ZVVzZXIuaHR0cAotcnctci0tci0tIDEgY2hyaXN0aWFuIDE5NzEyMSAgNDMyIERlYyAxMCAxMDo0NCBHZXRGaW5kUGV0c0J5U3RhdHVzLmh0dHAKLXJ3LXItLXItLSAxIGNocmlzdGlhbiAxOTcxMjEgIDUwNCBEZWMgMTAgMTA6NDQgR2V0RmluZFBldHNCeVRhZ3MuaHR0cCAgCi1ydy1yLS1yLS0gMSBjaHJpc3RpYW4gMTk3MTIxICAzNzEgRGVjIDEwIDEwOjQ0IEdldEludmVudG9yeS5odHRwICAgICAgIAotcnctci0tci0tIDEgY2hyaXN0aWFuIDE5NzEyMSAgMjQ3IERlYyAxMCAxMDo0NCBHZXRMb2dpblVzZXIuaHR0cCAgICAgICAKLXJ3LXItLXItLSAxIGNocmlzdGlhbiAxOTcxMjEgIDI5MSBEZWMgMTAgMTA6NDQgR2V0TG9nb3V0VXNlci5odHRwICAgICAgCi1ydy1yLS1yLS0gMSBjaHJpc3RpYW4gMTk3MTIxICA1NDAgRGVjIDEwIDEwOjQ0IEdldE9yZGVyQnlJZC5odHRwCi1ydy1yLS1yLS0gMSBjaHJpc3RpYW4gMTk3MTIxICAyNzUgRGVjIDEwIDEwOjQ0IEdldFBldEJ5SWQuaHR0cAotcnctci0tci0tIDEgY2hyaXN0aWFuIDE5NzEyMSAgMjQ1IERlYyAxMCAxMDo0NCBHZXRVc2VyQnlOYW1lLmh0dHAKLXJ3LXItLXItLSAxIGNocmlzdGlhbiAxOTcxMjEgIDUxMyBEZWMgMTAgMTA6NDQgUG9zdEFkZFBldC5odHRwCi1ydy1yLS1yLS0gMSBjaHJpc3RpYW4gMTk3MTIxICA1MjEgRGVjIDEwIDEwOjQ0IFBvc3RDcmVhdGVVc2VyLmh0dHAKLXJ3LXItLXItLSAxIGNocmlzdGlhbiAxOTcxMjEgIDYxMCBEZWMgMTAgMTA6NDQgUG9zdENyZWF0ZVVzZXJzV2l0aExpc3RJbnB1dC5odHRwCi1ydy1yLS1yLS0gMSBjaHJpc3RpYW4gMTk3MTIxICA0NjQgRGVjIDEwIDEwOjQ0IFBvc3RQbGFjZU9yZGVyLmh0dHAKLXJ3LXItLXItLSAxIGNocmlzdGlhbiAxOTcxMjEgIDI5OSBEZWMgMTAgMTA6NDQgUG9zdFVwZGF0ZVBldFdpdGhGb3JtLmh0dHAKLXJ3LXItLXItLSAxIGNocmlzdGlhbiAxOTcxMjEgIDI3NCBEZWMgMTAgMTA6NDQgUG9zdFVwbG9hZEZpbGUuaHR0cAotcnctci0tci0tIDEgY2hyaXN0aWFuIDE5NzEyMSAgNTEzIERlYyAxMCAxMDo0NCBQdXRVcGRhdGVQZXQuaHR0cAotcnctci0tci0tIDEgY2hyaXN0aWFuIDE5NzEyMSAgNTQxIERlYyAxMCAxMDo0NCBQdXRVcGRhdGVVc2VyLmh0dHAKYGBgCgpJbiB0aGlzIGV4YW1wbGUsIHRoZSBjb250ZW50cyBvZiBgUG9zdEFkZFBldC5odHRwYCBsb29rcyBsaWtlIHRoaXM6CgpgYGBzaApAY29udGVudFR5cGUgPSBhcHBsaWNhdGlvbi9qc29uCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMjIFJlcXVlc3Q6IFBPU1QgL3BldAojIyMgU3VtbWFyeTogQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKIyMjIERlc2NyaXB0aW9uOiBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKClBPU1QgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvcGV0CkNvbnRlbnQtVHlwZToge3tjb250ZW50VHlwZX19Cgp7CiAgImlkIjogMCwKICAibmFtZSI6ICJuYW1lIiwKICAiY2F0ZWdvcnkiOiB7CiAgICAiaWQiOiAwLAogICAgIm5hbWUiOiAibmFtZSIKICB9LAogICJwaG90b1VybHMiOiBbCiAgICAiIgogIF0sCiAgInRhZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6IDAsCiAgICAgICJuYW1lIjogIm5hbWUiCiAgICB9CiAgXSwKICAic3RhdHVzIjogImF2YWlsYWJsZSIKfQpgYGAKCmFuZCB0aGUgY29udGVudHMgb2YgYEdldFBldEJ5SWQuaHR0cGAgbG9va3MgbGlrZSB0aGlzOgoKYGBgc2gKQGNvbnRlbnRUeXBlID0gYXBwbGljYXRpb24vanNvbgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIyBSZXF1ZXN0OiBHRVQgL3BldC97cGV0SWR9CiMjIyBTdW1tYXJ5OiBGaW5kIHBldCBieSBJRAojIyMgRGVzY3JpcHRpb246IFJldHVybnMgYSBzaW5nbGUgcGV0CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyMjIFBhdGggUGFyYW1ldGVyOiBJRCBvZiBwZXQgdG8gcmV0dXJuCkBwZXRJZCA9IDAKCkdFVCBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9wZXQve3twZXRJZH19CkNvbnRlbnQtVHlwZToge3tjb250ZW50VHlwZX19CmBgYAoKSGVyZSdzIGFuIGFkdmFuY2VkIGV4YW1wbGUgb2YgZ2VuZXJhdGluZyBgLmh0dHBgIGZpbGVzIGZvciBhIFJFU1QgQVBJIGhvc3RlZCBvbiBNaWNyb3NvZnQgQXp1cmUgdGhhdCB1c2VzIHRoZSBNaWNyb3NvZnQgRW50cmEgSUQgc2VydmljZSBhcyBhbiBTVFMuIEZvciB0aGlzIGV4YW1wbGUsIEkgdXNlIFBvd2VyU2hlbGwgYW5kIEF6dXJlIENMSSB0byByZXRyaWV2ZSBhbiBhY2Nlc3MgdG9rZW4gZm9yIHRoZSB1c2VyIEknbSBjdXJyZW50bHkgbG9nZ2VkIGluIHdpdGguCgpgYGBwb3dlcnNoZWxsCmF6IGFjY291bnQgZ2V0LWFjY2Vzcy10b2tlbiAtLXNjb3BlIFtTb21lIEFwcGxpY2F0aW9uIElEIFVSSV0vLmRlZmF1bHQgYAp8IENvbnZlcnRGcm9tLUpzb24gYAp8ICV7CiAgICBodHRwZ2VuZXJhdG9yIGAKICAgICAgICBodHRwczovL2FwaS5leGFtcGxlLmNvbS9zd2FnZ2VyL3YxL3N3YWdnZXIuanNvbiBgCiAgICAgICAgLS1hdXRob3JpemF0aW9uLWhlYWRlciAoIkJlYXJlciAiICsgJF8uYWNjZXNzVG9rZW4pIGAKICAgICAgICAtLWJhc2UtdXJsIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tIGAKICAgICAgICAtLW91dHB1dCAuL0h0dHBGaWxlcyAKfQpgYGAKCllvdSBjYW4gYWxzbyB1c2UgdGhlIGAtLWF6dXJlLXNjb3BlYCBhbmQgYGF6dXJlLXRlbmFudC1pZGAgYXJndW1lbnRzIGludGVybmFsbHkgdXNlIGBEZWZhdWx0QXp1cmVDcmVkZW50aWFsc2AgZnJvbSB0aGUgYE1pY3Jvc29mdC5FeHRlbnNpb25zLkF6dXJlYCBOdUdldCBwYWNrYWdlIHRvIHJldHJpZXZlIGFuIGFjY2VzcyB0b2tlbiBmb3IgdGhlIHNwZWNpZmllZCBgc2NvcGVgLgoKYGBgcG93ZXJzaGVsbApodHRwZ2VuZXJhdG9yIGAKICBodHRwczovL2FwaS5leGFtcGxlLmNvbS9zd2FnZ2VyL3YxL3N3YWdnZXIuanNvbiBgCiAgLS1henVyZS1zY29wZSBbU29tZSBBcHBsaWNhdGlvbiBJRCBVUkldLy5kZWZhdWx0IGAKICAtLWJhc2UtdXJsIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tIGAKICAtLW91dHB1dCAuL0h0dHBGaWxlcyAKYGBgCgojIyMgRXJyb3IgTG9nZ2luZywgVGVsZW1ldHJ5LCBhbmQgUHJpdmFjeQoKVGhpcyB0b29sIGNvbGxlY3RzIGVycm9ycyBhbmQgdHJhY2tzIGZlYXR1cmVzIHVzYWdlcyB0byBzZXJ2aWNlIGNhbGxlZCBbRXhjZXB0aW9ubGVzc10oaHR0cHM6Ly9leGNlcHRpb25sZXNzLmNvbS8pCgpCeSBkZWZhdWx0LCBlcnJvciBsb2dnaW5nIGFuZCB0ZWxlbWV0cnkgY29sbGVjdGlvbiBpcyBlbmFibGVkIGJ1dCBpdCBpcyBwb3NzaWJsZSB0byAqKm9wdC1vdXQqKiBieSB1c2luZyB0aGUgYC0tbm8tbG9nZ2luZ2AgQ0xJIGFyZ3VtZW50LiAKClVzZXIgdHJhY2tpbmcgaXMgZG9uZSBhbm9ueW1vdXNseSB1c2luZyB0aGUgKipTdXBwb3J0IGtleSoqIHNob3duIHdoZW4gcnVubmluZyB0aGUgdG9vbCBhbmQgYSBnZW5lcmF0ZWQgYW5vbnltb3VzIGlkZW50aXR5IGJhc2VkIG9uIGEgc2VjdXJlIGhhc2ggYWxnb3JpdGhtIG9mIHVzZXJuYW1lQGhvc3QuCgpgYGBzaApIVFRQIEZpbGUgR2VuZXJhdG9yIHYwLjEuNQpTdXBwb3J0IGtleTogbWJtYnF2ZApgYGAKClRoZSBzdXBwb3J0IGtleSBpcyBqdXN0IHRoZSBmaXJzdCA3IGNoYXJhY3RlcnMgb2YgdGhlIGdlbmVyYXRlZCBhbm9ueW1vdXMgaWRlbnRpdHkKCiFbRXhjZXB0aW9ubGVzc10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2h0dHBnZW5lcmF0b3IvcmF3L21haW4vaW1hZ2VzL2V4Y2VwdGlvbmxlc3Mtb3ZlcnZpZXcucG5nKQoKIVtFeGNlcHRpb25sZXNzXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvaHR0cGdlbmVyYXRvci9yYXcvbWFpbi9pbWFnZXMvZXhjZXB0aW9ubGVzcy1leGNlcHRpb24ucG5nKQoKVGhlIGAtLWF1dGhvcml6YXRpb24taGVhZGVyYCB2YWx1ZSBpcyAqKmBbUkVEQUNURURdYCoqIGFuZCB0aGUgc2FtZSBnb2VzIGZvciBhbGwgcGVyc29uYWwgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uIGxpa2UgdGhlIElQIGFkZHJlc3MsIG1hY2hpbmUgbmFtZSwgYW5kIGZpbGUgc3lzdGVtIGZvbGRlcnMKCiFbRXhjZXB0aW9ubGVzc10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2h0dHBnZW5lcmF0b3IvcmF3L21haW4vaW1hZ2VzL2V4Y2VwdGlvbmxlc3MtZW52aXJvbm1lbnQucG5nKQoKSXQncyBpbXBvcnRhbnQgdG8ga25vdyB0aGF0IG5vICoqc3VwcG9ydCBrZXkqKiB3aWxsIGJlIGdlbmVyYXRlZCBpZiB5b3Ugb3B0LW91dCBmcm9tIHRlbGVtZXRyeSBjb2xsZWN0aW9uIGFuZCB0aGF0IHRoZSBFeGNlcHRpb25sZXNzIFNESyB3aWxsIGJlIGNvbXBsZXRlbHkgZGlzYWJsZWQuCgojIyMgVmlzdWFsIFN0dWRpbyAyMDIyIEV4dGVuc2lvbgoKVGhpcyB0b29sIGlzIGFsc28gYXZhaWxhYmxlIGFzIGEgW1Zpc3VhbCBTdHVkaW8gMjAyMiBleHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkh0dHBHZW5lcmF0b3IpCgpGcm9tIHRoZSAqKlRvb2xzKiogbWVudSBzZWxlY3QgKipHZW5lcmF0ZSAuaHR0cCBmaWxlcyoqCgohW1Rvb2xzIG1lbnVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9odHRwZ2VuZXJhdG9yL2Jsb2IvbWFpbi9pbWFnZXMvdnNpeF90b29scy5wbmc/cmF3PXRydWUpCgpUaGlzIG9wZW5zIHRoZSBtYWluIGRpYWxvZyB3aGljaCBoYXMgc2ltaWxhciBpbnB1dCBmaWVsZHMgYXMgdGhlIENMSSB0b29sCgohW01haW4gZGlhbG9nXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvaHR0cGdlbmVyYXRvci9ibG9iL21haW4vaW1hZ2VzL3ZzaXhfaHR0cGdlbmVyYXRvcl9kaWFsb2cucG5nP3Jhdz10cnVlKQoKWW91IGNhbiBhY3F1aXJlIGFuIEF6dXJlIEVudHJhIElEIGFjY2VzcyB0b2tlbiBieSBjbGlja2luZyBvbiB0aGUgYC4uLmAgYnV0dG9uIGJlc2lkZSB0aGUgKipBdXRob3JpemF0aW9uIEhlYWRlcnMqKiBpbnB1dCBmaWVsZAoKIVtBY3F1aXJlIEF6dXJlIEVudHJhIElEIGFjY2VzcyB0b2tlbl0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2h0dHBnZW5lcmF0b3IvYmxvYi9tYWluL2ltYWdlcy92c2l4X2F6dXJlX2VudHJhX2lkLnBuZz9yYXc9dHJ1ZSkKCkJ5IGRlZmF1bHQsIHRoZSAqKk91dHB1dCBmb2xkZXIqKiBpcyBwcmUtZmlsbGVkIHdpdGggdGhlIHBhdGggb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgQyMgUHJvamVjdCBpbiB0aGUgU29sdXRpb24gRXhwbG9yZXIsIHN1ZmZpeGVkIHdpdGggKipcSHR0cEZpbGVzKioKCiFbU29sdXRpb24gZXhwbG9yZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9odHRwZ2VuZXJhdG9yL2Jsb2IvbWFpbi9pbWFnZXMvdnNpeF9zb2x1dGlvbl9leHBsb3Jlci5wbmc/cmF3PXRydWUpCgpPbmNlIHRoZSAuaHR0cCBmaWxlcyBhcmUgZ2VuZXJhdGVkIHlvdSBjYW4gZWFzaWx5IG9wZW4gYW5kIGluc3BlY3QgdGhlbQoKIVsuaHR0cCBmaWxlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvaHR0cGdlbmVyYXRvci9ibG9iL21haW4vaW1hZ2VzL3ZzaXhfaHR0cF9maWxlLnBuZz9yYXc9dHJ1ZSkKCiMKCkZvciB0aXBzIGFuZCB0cmlja3Mgb24gc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGNoZWNrIG91dCBbbXkgYmxvZ10oaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20pCgpJZiB5b3UgZmluZCB0aGlzIHVzZWZ1bCBhbmQgZmVlbCBhIGJpdCBnZW5lcm91cyB0aGVuIGZlZWwgZnJlZSB0byBbYnV5IG1lIGEgY29mZmVlIOKYlV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkK readmeEtag: '"28da3514d384027be88088f0230d86a0d50f9294"' readmeLastModified: Thu, 08 Aug 2024 19:40:06 GMT repositoryId: 714590129 description: Generate .http files from OpenAPI (Swagger) specifications created: '2023-11-05T10:19:39Z' updated: '2024-09-05T14:16:41Z' language: C# archived: false stars: 72 watchers: 2 forks: 6 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: MIT repoEtag: '"be3e4569dc3e99c6679863fd5194544f0ca328e4be8dd066e7c9dc67d9f8f8a8"' repoLastModified: Thu, 05 Sep 2024 14:16:41 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/skellla/fastify-oas v3: true repositoryMetadata: base64Readme: >- IyBmYXN0aWZ5LW9hcwoKKipOT1RFKio6IE9wZW5BUEkgMyBzdXBwb3J0IGZpbmFsbHkgW2xhbmRlZF0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS1zd2FnZ2VyL3B1bGwvMzMzKSBpbiAib2ZmaWNpYWwiIFtmYXN0aWZ5LXN3YWdnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0aWZ5L2Zhc3RpZnktc3dhZ2dlcikgbW9kdWxlLiBDb25zaWRlciB1c2luZyBpdCBpbnN0ZWFkIG9mIHRoaXMgb25lLCBzaW5jZSBpdCBoYXMgYmV0dGVyIHN1cHBvcnQgZm9yICRyZWYgaW4gc2NoZW1hcy4KClRoaXMgcGx1Z2luIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBtYWludGVpbmVkLiBGZWVsIGZyZWUgdG8gZm9yayBpdCBhbmQgcHVibGlzaCBpZiBuZWVkZWQuCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSJodHRwczovL2dpdGxhYi5jb20vbTAzZ2Vlay9mYXN0aWZ5LW9hcy9yYXcvbWFzdGVyL2xvZ28ucG5nIiBhbHQ9ImZhc3RpZnktb2FzIGxvZ28iLz4KPC9kaXY+CgpbIVtOUE0gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9mYXN0aWZ5LW9hcy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9mYXN0aWZ5LW9hcykKWyFbRG93bmxvYWRzIENvdW50XShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9mYXN0aWZ5LW9hcy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9mYXN0aWZ5LW9hcykKWyFbVnVuZXJhYmlsaXRpZXMgQ291bnRdKGh0dHBzOi8vc255ay5pby90ZXN0L25wbS9mYXN0aWZ5LW9hcy9iYWRnZS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9mYXN0aWZ5LW9hcykKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGxhYi5jb20vbTAzZ2Vlay9mYXN0aWZ5LW9hcy9iYWRnZXMvbWFzdGVyL3BpcGVsaW5lLnN2ZyldKGh0dHBzOi8vZ2l0bGFiLmNvbS9tMDNnZWVrL2Zhc3RpZnktb2FzL2NvbW1pdHMvbWFzdGVyKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vZ2l0bGFiLmNvbS9tMDNnZWVrL2Zhc3RpZnktb2FzL2JhZGdlcy9tYXN0ZXIvY292ZXJhZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRsYWIuY29tL20wM2dlZWsvZmFzdGlmeS1vYXMvY29tbWl0cy9tYXN0ZXIpClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvZmFzdGlmeS1vYXMuc3ZnKV0oaHR0cHM6Ly9naXRsYWIuY29tL20wM2dlZWsvZmFzdGlmeS1vYXMvYmxvYi9tYXN0ZXIvTElDRU5TRSkKCltPcGVuQVBJIDMuMCsgKE9BUzMpXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2Fib3V0LykgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IgZm9yIEZhc3RpZnkuCkl0IHVzZXMgdGhlIHNjaGVtYXMgeW91IGRlY2xhcmUgaW4geW91ciByb3V0ZXMgdG8gZ2VuZXJhdGUgYW4gT3BlbkFQSSAoc3dhZ2dlcikgY29tcGxpYW50IGRvYy4KClRoaXMgcGx1Z2luIGJhc2VkIG9uIFtmYXN0aWZ5LXN3YWdnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0aWZ5L2Zhc3RpZnktc3dhZ2dlci8pIHRoYXQgZ2VuZXJhdGVzIHN3YWdnZXIgMi4wIGRvY3MuCgpUaGlzIHBsdWdpbiBkZXNpZ25lZCBpbiBzdWNoIHdheSB0byBiZSBjb21wYXRpYmxlIHdpdGggaXQncyBwcmVkY2Vzc29yIGFuZCBpbiBtb3N0IGNhc2VzIGlmIHlvdSBhbHJlYWR5IHVzZSBgZmFzdGlmeS1zd2FnZ2VyYCB5b3UgbWF5IGp1c3QgcmVwbGFjZSBpdCB3aXRoIGN1cnJlbnQgcGx1Z2luIGFuZCBpdCBzaG91bGQgd29yay4KCiMjIFRvQwotIFtmYXN0aWZ5LW9hc10oI2Zhc3RpZnktb2FzKQogIC0gW1RvQ10oI3RvYykKICAtIFtGYXN0aWZ5IHN1cHBvcnRdKCNmYXN0aWZ5LXN1cHBvcnQpCiAgLSBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQogIC0gW0ZlYXR1cmVzIGFuZCByZXF1aXJlbWVudHNdKCNmZWF0dXJlcy1hbmQtcmVxdWlyZW1lbnRzKQogIC0gW1VzYWdlXSgjdXNhZ2UpCiAgICAtIFtEb2NzXSgjZG9jcykKICAgIC0gW1BsdWdpbiBvcHRpb25zXSgjcGx1Z2luLW9wdGlvbnMpCiAgICAtIFtBZGRpdGlvbmFsIHNjaGVtYSBvcHRpb25zXSgjYWRkaXRpb25hbC1zY2hlbWEtb3B0aW9ucykKICAgIC0gW09wZW5BUEldKCNvcGVuYXBpKQogICAgLSBbU3dhZ2dlciAyLjBdKCNzd2FnZ2VyLTIwKQogIC0gW1VJXSgjdWkpCiAgLSBbRGV2ZWxvcG1lbnRdKCNkZXZlbG9wbWVudCkKICAtIFtTZWUgYWxzb10oI3NlZS1hbHNvKQogIC0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgRmFzdGlmeSBzdXBwb3J0CgotIHYwLlguWCAtIHYxLlguWCAtIHN1cHBvcnRzIGZhc3RpZnkgdjEuWC5YCi0gdjIuWC5YIC0gd2lsbCBzdXBwb3J0IGZhc3RpZnkgdjIuWC5YKgoKPHNwYW4gc3R5bGU9ImNvbG9yOnJlZDsgZm9udC1zaXplOjJlbTsiPgpDdXJyZW50bHkgaW4gRmFzdGlmeSB2Mi4xMi4wIHRoZXJlJ3MgcmVncmVzc2lvbiBidWcgdGhhdCBicmVha2VzIHRoaXMgZXhlbnN0aW9uIGZvciBtYW55IHVzZXJzLiBTbyBmb3Igbm93IHRoaXMgZXh0ZW5zaW9uIGRvZXNuJ3Qgc3VwcG9ydCBmYXN0aWZ5IDIuMTIuMC4gQ2F1c2UgaXQgd2FzIGNhdXNlIGJ5IGZhc3RpZnkgbWlub3IgY2hhbmdlIGluIG9yZGVyIHRvIHByZXZlbiBpc3N1ZXMgdGhpcyBsaWJyYXJ5IHdpbGwgdGhyb3cgYW4gZXJyb3Igd2hlbiB5b3UnbGwgdHJ5IHRvIHVzZSBpdCB3aXRoIHRoYXQgZmFzdGlmeSB2ZXJzaW9uLgpJbiBvcmRlciB0byB1c2UgaXQsIHlvdSBjYW4gZWl0aGVyIGxvY2sgeW91ciBmYXN0aWZ5IGF0IDIuMTEuMCBvciBmYXN0aWZ5LW9hcyBhdCAyLjUuMCAoYnV0IHRoZXJlIGFyZSBubyBnYXVyYW50ZWUgdGhhdCBpdCB3aWxsIHdvcmsgY29ycmVjdGx5KS4KPC9zcGFuPgoKCiMjIEluc3RhbGxhdGlvbgoKYGBgc2gKbnBtIGkgZmFzdGlmeS1vYXMgLS1zYXZlCmBgYAoKPHN1Yj5bQmFjayB0byB0b3BdKCN0b2MpPC9zdWI+CgojIyBGZWF0dXJlcyBhbmQgcmVxdWlyZW1lbnRzCgoqIFN1cHBvcnRzIE9wZW5BUEkgMysuCiogU3VwcG9ydHMgW2Zhc3RpZnktc3dhZ2dlcl0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS1zd2FnZ2VyLykgbW9kdWxlIGNvbmZpZ3MuCiogU3VwcG9ydHMgc3dhZ2dlciAyLjAgZmFzdGlmeSBzY2hlbWFzLgoqIFN1cHBvcnRzIGZhc3RpZnkgbmFtZWQgc2NoZW1hcyBjb252ZXJ0aW9uIHRvIHN3YWFnZ2VyL29wZW5hcGkgbW9kZWxzLgoKLS0tIAoKKiBSZXF1aXJlcyBmYXN0aWZ5IGA+PTEuOS4wYC4KKiBOb2RlLmpzIGA+PTguOS4wYC4KCk5PVEU6IElmIHlvdSBuZWVkIHRvIGdlbmVyYXRlIGZhc3RpZnkgcm91dGVzIGZyb20geW91ciBzd2FnZ2VyIGRvY3VtZW50IC0gcGxlYXNlIHJlZmVyIHRvIHBsdWdpbnMgaW4gW1NlZSBhbHNvXSgjc2VlLWFsc28pIGxpa2UgZmFzdGlmeS1zd2FnZ2VyZ2VuIG9yIGZhc3RpZnktb3BlbmFwaS1nbHVlLgoKPHN1Yj5bQmFjayB0byB0b3BdKCN0b2MpPC9zdWI+CgojIyBVc2FnZQoKQWRkIGl0IHRvIHlvdXIgcHJvamVjdCBsaWtlIHJlZ3VsYXIgZmFzdGlmeSBwbHVnaW4uIFVzZSBgcmVnaXN0ZXJgIG1ldGhvZCBhbmQgcGFzcyBpdCBzd2FnZ2VyIG9wdGlvbnMsIHRoZW4gY2FsbCB0aGUgYXBpIGNvbnN0cnVjdG9yLgoKYGBganMKY29uc3QgZmFzdGlmeSA9IHJlcXVpcmUoJ2Zhc3RpZnknKTsKY29uc3Qgb2FzID0gcmVxdWlyZSgnZmFzdGlmeS1vYXMnKTsKY29uc3QgYXBwID0gZmFzdGlmeSgpOwoKYXBwLnJlZ2lzdGVyKG9hcywgewogIHJvdXRlUHJlZml4OiAnL2RvY3VtZW50YXRpb24nLAogIHN3YWdnZXI6IHsKICAgIGluZm86IHsKICAgICAgdGl0bGU6ICdUZXN0IG9wZW5hcGknLAogICAgICBkZXNjcmlwdGlvbjogJ3Rlc3RpbmcgdGhlIGZhc3RpZnkgc3dhZ2dlciBhcGknLAogICAgICB2ZXJzaW9uOiAnMC4xLjAnLAogICAgfSwKICAgIGV4dGVybmFsRG9jczogewogICAgICB1cmw6ICdodHRwczovL3N3YWdnZXIuaW8nLAogICAgICBkZXNjcmlwdGlvbjogJ0ZpbmQgbW9yZSBpbmZvIGhlcmUnLAogICAgfSwKICAgIGNvbnN1bWVzOiBbJ2FwcGxpY2F0aW9uL2pzb24nXSwKICAgIHByb2R1Y2VzOiBbJ2FwcGxpY2F0aW9uL2pzb24nXSwKICB9LAogIGV4cG9zZVJvdXRlOiB0cnVlCn0pOwoKLy8gcHV0IHNvbWUgcm91dGVzIGFuZCBzY2hlbWFzCgphcHAucmVhZHkoZXJyID0+IHsKICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgYXBwLm9hcygpOwp9KTsKYGBgCgpQbGVhc2Ugbm90ZSwgdGhlIHNjaGVtYSBmb3JtYXQgZm9yIEZhc3RpZnkgcm91dGVzIGlzIFtKU09OU2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5L2Jsb2IvdjIuMTMuMC9kb2NzL1JvdXRlcy5tZCNyb3V0ZXMtb3B0aW9uKSBhbmQgeW91IG1heSBlbmNvdW50ZXIgc29tZSBkaWZmZXJlbmNlcyBpbiB0aGUgZm9ybWF0IGZvciByb3V0ZSBzcGVjIHZzLiBvdXRwdXQgT3BlbkFQSSBzcGVjLiAgClRoaXMgcGx1Z2luIGluY2x1ZGVzIGhhbmRsaW5nIGFyb3VuZCBhIGZldyBvZiB0aGVzZSBkaWZmZXJlbmNlcy4KCk9uZSBzdWNoIGNhc2UgaXMgdGhlIGBleGFtcGxlYCBvciBgZXhhbXBsZXNgIGtleXdvcmRzOgpgYGBqcwpmYXN0aWZ5LnJvdXRlKHsKICBtZXRob2Q6ICdQT1NUJywKICB1cmw6ICcvJywKICBzY2hlbWE6IHsKICAgIGJvZHk6IHsKICAgICAgdHlwZTogJ29iamVjdCcsCiAgICAgIGRlc2NyaXB0aW9uOiAnYW4gb2JqZWN0JywKICAgICAgZXhhbXBsZXM6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgbmFtZTogJ09iamVjdCBTYW1wbGUnLAogICAgICAgICAgICBzdW1tYXJ5OiAnYW4gZXhhbXBsZScsCiAgICAgICAgICAgIHZhbHVlOiB7YTogJ3BheWxvYWQnfSwKICAgICAgICAgIH0KICAgICAgXSwKICAgICAgcHJvcGVydGllczogewogICAgICAgIGE6IHt0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICd5b3VyIHBheWxvYWQnfQogICAgICB9CiAgICB9CiAgfSwKICBoYW5kbGVyOiAvLyAuLi4KfSkKYGBgCldoaWNoIHByb2R1Y2VzIGEgc3BlYyBzaW1pbGFyIHRvOgpgYGBqc29uCnsKICAuLi4gCgogICJjb250ZW50IjogewogICAgImFwcGxpY2F0aW9uL2pzb24iOiB7CiAgICAgICJleGFtcGxlcyI6IHsKICAgICAgICAiT2JqZWN0IFNhbXBsZSI6IHsKICAgICAgICAgICJzdW1tYXJ5IjogImFuIGV4YW1wbGUiLAogICAgICAgICAgInZhbHVlIjogewogICAgICAgICAgICAiYSI6ICJwYXlsb2FkIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInNjaGVtYSI6IHsKICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgImEiOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ5b3VyIHBheWxvYWQiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9CmBgYAooaW4gdGhpcyBjYXNlLCB0aGUgbmFtZSBwcm9wZXJ0eSBpcyBleHRyYWN0ZWQgYXMgdGhlIGV4YW1wbGVzIGtleSkKCjxzdWI+W0JhY2sgdG8gdG9wXSgjdG9jKTwvc3ViPgoKIyMjIERvY3MKClNlZSBbRG9jc10oL2RvY3MvUkVBRE1FLm1kKSBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBUeXBlU2NyaXB0IHR5cGVzIHRoYXQgeW91IG1heSB1c2Ugd2hlbiB3b3JraW5nIHdpdGggT3BlbkFQSSBzcGVjLgoKIyMjIFBsdWdpbiBvcHRpb25zCgp8IHBhcmFtZXRlciAgICAgIHwgdHlwZSAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRlZmF1bHQgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0gfAp8IGByb3V0ZVByZWZpeGAgIHwgU3RyaW5nICB8IERvY3VtZW50YXRpb24gZW5kcG9pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGAvZG9jdW1lbnRhdGlvbmAgfAp8IGBleHBvc2VSb3V0ZWAgIHwgQm9vbGVhbnxPYmplY3QqKiB8IElmIGB0cnVlYCB0aGUgcGx1Z2luIHdpbGwgZXhwb3NlIHRoZSBkb2N1bWVudGF0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBhcGlzOiBgLzxyb3V0ZVByZWZpeD5gLCBgLzxyb3V0ZVByZWZpeD4vanNvbmAsIGAvPHJvdXRlUHJlZml4Pi95YW1sYCB8IGBmYWxzZWAgICAgICAgICAgfAp8IGBhZGRNb2RlbHNgICAgIHwgQm9vbGVhbiB8IElmIGB0cnVlYCBhZGRzIGZhc3RpZnkgc2NoZW1hcyBhcyBvcGVuYXBpIG1vZGVscyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBmYWxzZWAgICAgICAgICAgfAp8IGBvcGVuYXBpYCAgICAgIHwgU3RyaW5nICB8IE9wZW5hcGkgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICczLjAuMCcgICAgICAgICAgfAp8IGB5YW1sYCAgICAgICAgIHwgQm9vbGVhbiB8IElmIGB0cnVlYCByZXR1cm5zIHlhbWwgaW5zdGVhZCBvZiBqc29uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBmYWxzZWAgICAgICAgICAgfAp8IGBoaWRlVW50YWdnZWRgIHwgQm9vbGVhbiB8IElmIGB0cnVlYCByZW1vdmUgcm91dGVzIHdpdGhvdXQgdGFncyBpbiBzY2hlbWEgZnJvbSByZXN1bHRpbmcgc3dhZ2dlciBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBmYWxzZWAgICAgICAgICAgfAp8IGBzd2FnZ2VyYCAgICAgIHwgT2JqZWN0ICB8IFN3YWdnZXIgb2JqZWN0IGV4Y2VwdCBwYXRocyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB7fWAgICAgICAgICAgICAgfAoKTm90ZSAoKik6IEZhc3RpZnktb2FzIHBsdWdpbiBnYXRoZXIgYWxsIHNjaGVtYXMsIHNvIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgYWxsIG9mIHRoZW0gdW5kZXIgY3VycmVudCBhbmQgbmVzdGVkIHNjb3BlcyBoYXZlIHVuaXF1ZSBuYW1lcy4KTm90ZSAoKiopOiBzZWUgW0V4cG9zZSByb3V0ZSBvcHRpb25zXSgvZG9jcy9pbnRlcmZhY2VzL2Zhc3RpZnlvYXMuZXhwb3Nlb3B0aW9ucy5tZCkKPHN1Yj5bQmFjayB0byB0b3BdKCN0b2MpPC9zdWI+CgojIyMgQWRkaXRpb25hbCBzY2hlbWEgb3B0aW9ucwoKSW4gb3JkZXIgdG8gcmVtb3ZlIHNvbWUgZW5kcG9pbnRzIGZyb20gU3dhZ2dlci9PcGVuQVBJIGRvY3VtZW50IHlvdSBtYXkgYWRkIGB7aGlkZTogdHJ1ZX1gIG9wdGlvbiB0byByb3V0ZSBzY2hlbWEuCgpgYGBqcwpjb25zdCBmYXN0aWZ5ID0gcmVxdWlyZSgnZmFzdGlmeScpKCkKZmFzdGlmeS5nZXQoJy9zb21lLXNlY3JldGUtcm91dGUvOmlkJywgewogIHNjaGVtYTogewogICAgaGlkZTogdHJ1ZSwKICAgIHBhcmFtczogewogICAgICB0eXBlOiAnb2JqZWN0JywKICAgICAgcHJvcGVydGllczogewogICAgICAgIGlkOiB7CiAgICAgICAgICB0eXBlOiAnc3RyaW5nJywKICAgICAgICAgIGRlc2NyaXB0aW9uOiAndXNlciBpZCcKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICByZXNwb25zZTogewogICAgICAyMDE6IHsKICAgICAgICBkZXNjcmlwdGlvbjogJ1N1Y2Nlc3NmdWwgcmVzcG9uc2UnLAogICAgICAgIHR5cGU6ICdvYmplY3QnLAogICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgIGhlbGxvOiB7IHR5cGU6ICdzdHJpbmcnIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgfQp9LCAocmVxLCByZXBseSkgPT4ge30pCgpgYGAKCjxzdWI+W0JhY2sgdG8gdG9wXSgjdG9jKTwvc3ViPgoKIyMjIE9wZW5BUEkKClVubGlrZSByZWd1bGFyIE9wZW5BUEkgc3BlYyB5b3UnbGwgc3RpbGwgbmVlZCBzb21lIG9wdGlvbnMgZnJvbSBzd2FnZ2VyIDIuMC4KCmBgYGpzCmNvbnN0IGZhc3RpZnkgPSByZXF1aXJlKCdmYXN0aWZ5Jyk7CmNvbnN0IG9hcyA9IHJlcXVpcmUoJ2Zhc3RpZnktb2FzJyk7CmNvbnN0IGFwcCA9IGZhc3RpZnkoKTsKCmFwcC5yZWdpc3RlcihvYXMsIHsKICByb3V0ZVByZWZpeDogJy9kb2N1bWVudGF0aW9uJywKICBzd2FnZ2VyOiB7CiAgICBpbmZvOiB7CiAgICAgIHRpdGxlOiAnVGVzdCBvcGVuYXBpJywKICAgICAgZGVzY3JpcHRpb246ICd0ZXN0aW5nIHRoZSBmYXN0aWZ5IHN3YWdnZXIgYXBpJywKICAgICAgdmVyc2lvbjogJzAuMS4wJywKICAgIH0sCiAgICBleHRlcm5hbERvY3M6IHsKICAgICAgdXJsOiAnaHR0cHM6Ly9zd2FnZ2VyLmlvJywKICAgICAgZGVzY3JpcHRpb246ICdGaW5kIG1vcmUgaW5mbyBoZXJlJywKICAgIH0sCiAgICBjb25zdW1lczogWydhcHBsaWNhdGlvbi9qc29uJ10sIC8vIGFwcC13aWRlIGRlZmF1bHQgbWVkaWEtdHlwZQogICAgcHJvZHVjZXM6IFsnYXBwbGljYXRpb24vanNvbiddLCAvLyBhcHAtd2lkZSBkZWZhdWx0IG1lZGlhLXR5cGUKICAgIHNlcnZlcnM6IFt7CiAgICAgIHVybDogJ2h0dHA6Ly9hcGkuZXhhbXBsZS5jb20vdjEnLAogICAgICBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIHNlcnZlciBkZXNjcmlwdGlvbiwgZS5nLiBNYWluIChwcm9kdWN0aW9uKSBzZXJ2ZXInLAogICAgfV0sCiAgICBjb21wb25lbnRzOiB7CiAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL09wZW5BUEkubmV4dC92ZXJzaW9ucy8zLjAuMC5tZCNjb21wb25lbnRzT2JqZWN0IGZvciBtb3JlIG9wdGlvbnMKICAgICAgc2VjdXJpdHlTY2hlbWVzOiB7CiAgICAgICAgQmFzaWNBdXRoOiB7CiAgICAgICAgICB0eXBlOiAnaHR0cCcsCiAgICAgICAgICBzY2hlbWU6ICdiYXNpYycsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sIAogIH0sCn0pOwpgYGAKCjxzdWI+W0JhY2sgdG8gdG9wXSgjdG9jKTwvc3ViPgoKIyMjIFN3YWdnZXIgMi4wCgpUaGlzIHdpbGwgbm90IGdlbmVyYXRlIHN3YWdnZXIgMi4wIGRvY3MuIEl0IHdpbGwgZ2VuZXJhdGUgb3BlbmFwaSAzLjAgZG9jcywgYnV0IGZyb20gc3dhZ2dlciAyLjAgKGFuZCBmYXN0aWZ5LXN3YWdnZXIpIGNvbXBhdGlibGUgY29uZmlndXJhdGlvbi4KSXQgd2lsbCBhbGxvdyBlYXNpbHkgbWlncmF0ZSBmcm9tIGZhc3RpZnktc3dhZ2dlci4KClRoZSBleGFtcGxlIGJlbG93IGlzIHRha2VuIGZyb20gZmFzdGlmeS1zd2FnZ2VyIHJlcG8gdG8gc2hvdyB0aGUgZGlmZmVyZW5jZXMgLgoKYGBganMKY29uc3QgZmFzdGlmeSA9IHJlcXVpcmUoJ2Zhc3RpZnknKSgpCgovLyBiZWZvcmU6IGZhc3RpZnkucmVnaXN0ZXIocmVxdWlyZSgnZmFzdGlmeS1zd2FnZ2VyJyksIHsKZmFzdGlmeS5yZWdpc3RlcihyZXF1aXJlKCdmYXN0aWZ5LW9hcycpLCB7IC8vIGFmdGVyCiAgcm91dGVQcmVmaXg6ICcvZG9jdW1lbnRhdGlvbicsCiAgc3dhZ2dlcjogewogICAgaW5mbzogewogICAgICB0aXRsZTogJ1Rlc3Qgc3dhZ2dlcicsCiAgICAgIGRlc2NyaXB0aW9uOiAndGVzdGluZyB0aGUgZmFzdGlmeSBzd2FnZ2VyIGFwaScsCiAgICAgIHZlcnNpb246ICcwLjEuMCcKICAgIH0sCiAgICBleHRlcm5hbERvY3M6IHsKICAgICAgdXJsOiAnaHR0cHM6Ly9zd2FnZ2VyLmlvJywKICAgICAgZGVzY3JpcHRpb246ICdGaW5kIG1vcmUgaW5mbyBoZXJlJwogICAgfSwKICAgIGhvc3Q6ICdsb2NhbGhvc3QnLAogICAgc2NoZW1lczogWydodHRwJ10sCiAgICBjb25zdW1lczogWydhcHBsaWNhdGlvbi9qc29uJ10sCiAgICBwcm9kdWNlczogWydhcHBsaWNhdGlvbi9qc29uJ10sCiAgICB0YWdzOiBbCiAgICAgIHsgbmFtZTogJ3VzZXInLCBkZXNjcmlwdGlvbjogJ1VzZXIgcmVsYXRlZCBlbmQtcG9pbnRzJyB9LAogICAgICB7IG5hbWU6ICdjb2RlJywgZGVzY3JpcHRpb246ICdDb2RlIHJlbGF0ZWQgZW5kLXBvaW50cycgfQogICAgXSwKICAgIHNlY3VyaXR5RGVmaW5pdGlvbnM6IHsKICAgICAgYXBpS2V5OiB7CiAgICAgICAgdHlwZTogJ2FwaUtleScsCiAgICAgICAgbmFtZTogJ2FwaUtleScsCiAgICAgICAgaW46ICdoZWFkZXInCiAgICAgIH0KICAgIH0KICB9Cn0pCgpmYXN0aWZ5LnB1dCgnL3NvbWUtcm91dGUvOmlkJywgewogIHNjaGVtYTogewogICAgZGVzY3JpcHRpb246ICdwb3N0IHNvbWUgZGF0YScsCiAgICB0YWdzOiBbJ3VzZXInLCAnY29kZSddLAogICAgc3VtbWFyeTogJ3F3ZXJ0eScsCiAgICBwYXJhbXM6IHsKICAgICAgdHlwZTogJ29iamVjdCcsCiAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICBpZDogewogICAgICAgICAgdHlwZTogJ3N0cmluZycsCiAgICAgICAgICBkZXNjcmlwdGlvbjogJ3VzZXIgaWQnCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgYm9keTogewogICAgICB0eXBlOiAnb2JqZWN0JywKICAgICAgcHJvcGVydGllczogewogICAgICAgIGhlbGxvOiB7IHR5cGU6ICdzdHJpbmcnIH0sCiAgICAgICAgb2JqOiB7CiAgICAgICAgICB0eXBlOiAnb2JqZWN0JywKICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgc29tZTogeyB0eXBlOiAnc3RyaW5nJyB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgcmVzcG9uc2U6IHsKICAgICAgMjAxOiB7CiAgICAgICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsIHJlc3BvbnNlJywKICAgICAgICB0eXBlOiAnb2JqZWN0JywKICAgICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgICBoZWxsbzogeyB0eXBlOiAnc3RyaW5nJyB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgc2VjdXJpdHk6IFsKICAgICAgewogICAgICAgICJhcGlfa2V5IjogW10KICAgICAgfQogICAgXQogIH0KfSwgKHJlcSwgcmVwbHkpID0+IHt9KQoKZmFzdGlmeS5yZWFkeShlcnIgPT4gewogIGlmIChlcnIpIHRocm93IGVycgogIGZhc3RpZnkub2FzKCkKfSkKYGBgCgo8c3ViPltCYWNrIHRvIHRvcF0oI3RvYyk8L3N1Yj4KCiMjIFVJCgpTd2FnZ2VyIFVJIGlzIGF2YWlsYWJsZSB2aWEgYC88cm91dGVQcmVmaXg+L2luZGV4Lmh0bWxgLiBCeSBkZWZhdWx0IGl0J3MgYC9kb2N1bWVudGF0aW9uL2luZGV4Lmh0bWxgLgoKUmVEb2MgVUkgaXMgYXZhaWxhYmxlIHZpYSBgLzxyb3V0ZVByZWZpeD4vZG9jcy5odG1sYC4gQnkgZGVmYXVsdCBpdCdzIGAvZG9jdW1lbnRhdGlvbi9kb2NzLmh0bWxgLgoKPHN1Yj5bQmFjayB0byB0b3BdKCN0b2MpPC9zdWI+CgojIyBEZXZlbG9wbWVudAoKSW4gb3JkZXIgdG8gc3RhcnQgZGV2ZWxvcG1lbnQgcnVuOgoKYGBgc2gKbnBtIGkKbnBtIHJ1biBwcmVwYXJlCmBgYAoKU28gdGhhdCBbc3dhZ2dlci11aV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpIHN0YXRpYyBmb2xkZXIgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIHlvdS4KCjxzdWI+W0JhY2sgdG8gdG9wXSgjdG9jKTwvc3ViPgoKIyMgU2VlIGFsc28KCiogW2Zhc3RpZnktc3dhZ2dlcl0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS1zd2FnZ2VyKSAtIHN3YWdnZXIgMi4wIGRvY3MgZ2VuZXJhdGlvbiBwbHVnaW4uCiogW2Zhc3RpZnktc3dhZ2dlcmdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3NlcmlvdXNtZS9mYXN0aWZ5LXN3YWdnZXJnZW4pIC0gZmFzdGlmeSByb3V0ZXMgZ2VuZXJhdGlvbiBmcm9tIHN3YWdnZXIgMi4wIGRvY3MuCiogW2Zhc3RpZnktb3BlbmFwaS1nbHVlXShodHRwczovL2dpdGh1Yi5jb20vc2VyaW91c21lL2Zhc3RpZnktb3BlbmFwaS1nbHVlKSAtIGZhc3RpZnktc3dhZ2dlcmdlbiBzdWNjZXNzb3IsIGdlbmVyYXRlcyBmYXN0aWZ5IHJvdXRlcyBmcm9tIHN3YWdnZXIgMi4wIGFuZCBvcGVuYXBpIDMuMCBkb2NzIChqdXN0IGxpa2UgdGhpcyBtb2R1bGUsIGJ1dCBpbiBvcHBvc2l0ZSBkaXJlY3Rpb24pLgoKPHN1Yj5bQmFjayB0byB0b3BdKCN0b2MpPC9zdWI+CgojIyBMaWNlbnNlCgpMaWNlbnNlZCB1bmRlciBbTUlUXSguL0xJQ0VOU0UpLgoKPHN1Yj5bQmFjayB0byB0b3BdKCN0b2MpPC9zdWI+Cg== readmeEtag: '"383de813919532cd88e4767385f02dfc62359d26"' readmeLastModified: Thu, 03 Nov 2022 12:15:58 GMT repositoryId: 142213233 description: Fastify OpenAPI plugin. created: '2018-07-24T21:09:52Z' updated: '2024-08-14T13:08:20Z' language: JavaScript archived: false stars: 72 watchers: 5 forks: 20 owner: SkeLLLa logo: https://avatars.githubusercontent.com/u/2273103?v=4 license: MIT repoEtag: '"3884a3298a6b6d57504b4a612e4b9ef2857c3d33d86fa8f4ed26e34240cd9af3"' repoLastModified: Wed, 14 Aug 2024 13:08:20 GMT foundInMaster: true id: 0bda0b3ad75df5840c48691fe579a850 - source: openapi3 tags repository: https://github.com/meteran/gnext v3: true repositoryMetadata: base64Readme: >- IyBnTmV4dCBXZWIgRnJhbWV3b3JrCgpbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vbWV0ZXJhbi9nbmV4dCldKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9tZXRlcmFuL2duZXh0KQpbIVtHb0RvY10oaHR0cHM6Ly9wa2cuZ28uZGV2L2JhZGdlL2dpdGh1Yi5jb20vbWV0ZXJhbi9nbmV4dD9zdGF0dXMuc3ZnKV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vbWV0ZXJhbi9nbmV4dD90YWI9ZG9jKQpbIVtSZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9yZWxlYXNlL21ldGVyYW4vZ25leHQuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL21ldGVyYW4vZ25leHQvcmVsZWFzZXMpCgpnTmV4dCBpcyBhIEdvbGFuZyBBUEktZm9jdXNlZCBmcmFtZXdvcmsgZXh0ZW5kaW5nIFtHaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9naW4tZ29uaWMvZ2luKS4gT2ZmZXJzIHRoZSBBUEkKc3RydWN0dXJpbmcsIGF1dG9tYXRlcyB2YWxpZGF0aW9uIGFuZCBnZW5lcmF0ZXMgZG9jdW1lbnRhdGlvbi4gSXQncyBjb21wYXRpYmxlIHdpdGggdGhlIGV4aXN0aW5nIEdpbiBoYW5kbGVycyBhbmQgR2luCm1pZGRsZXdhcmVzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBhbmQgYm9vc3QgZGV2ZWxvcG1lbnQgb2YgSlNPTiBBUElzLiBZb3UgY2FuIGxlYXZlIGdlbmVyaWMgYW5kIGJvcmluZyBzdHVmZiB0byBnTmV4dAphbmQgcHVyZWx5IGZvY3VzIG9uIHRoZSBidXNpbmVzcyBsb2dpYy4KCiMjIENvbnRlbnRzCgotIFtnTmV4dCBXZWIgRnJhbWV3b3JrXSgjZ25leHQtd2ViLWZyYW1ld29yaykKICAgIC0gW0NvbnRlbnRzXSgjY29udGVudHMpCiAgICAtIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgICAtIFtRdWljayBzdGFydF0oI3F1aWNrLXN0YXJ0KQotIFtEb2N1bWVudGF0aW9uXShodHRwczovL21ldGVyYW4uZ2l0aHViLmlvL2duZXh0L2RvY3VtZW50YXRpb24vc2l0ZS8pCgojIyBJbnN0YWxsYXRpb24KCllvdSBjYW4gZG93bmxvYWQgZ05leHQgYW5kIGluc3RhbGwgaXQgaW4geW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmc6CgpgYGBzaGVsbApnbyBnZXQgLXUgZ2l0aHViLmNvbS9tZXRlcmFuL2duZXh0CmBgYAoKIyMgUXVpY2sgc3RhcnQKClRoaXMgdHV0b3JpYWwgYXNzdW1lcywgdGhhdCB5b3UgYWxyZWFkeSBoYXZlIEdvbGFuZyBpbnN0YWxsYXRpb24gYW5kIGJhc2ljIGtub3dsZWRnZSBhYm91dCBob3cgdG8gYnVpbGQgYW5kIHJ1biBHbwpwcm9ncmFtcy4gSWYgdGhpcyBpcyB5b3VyIGZpcnN0IGhpdCB3aXRoIEdvLCBhbmQgeW91IGZlZWwgeW91IGhhdmUgbm8gaWRlYSB3aGF0IGlzIGhhcHBlbmluZyBoZXJlLCBwbGVhc2UgcmVhZCBob3cKdG8gW2dldCBzdGFydGVkIHdpdGggR29dKGh0dHBzOi8vZ28uZGV2L2RvYy90dXRvcmlhbC9nZXR0aW5nLXN0YXJ0ZWQpLgoKT2ssIHNvIGxldCdzIGNyZWF0ZSBhIHByb2plY3Q6CgpgYGBzaGVsbApta2RpciBnbmV4dC1leGFtcGxlCmNkIGduZXh0LWV4YW1wbGUKZ28gbW9kIGluaXQgZXhhbXBsZS5jb20vZ25leHQKZ28gZ2V0IGdpdGh1Yi5jb20vbWV0ZXJhbi9nbmV4dApgYGAKCkNyZWF0ZSBhIGZpbGUgYGV4YW1wbGUuZ29gIGFuZCBmaWxsIGl0IHVwIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOgoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgImdpdGh1Yi5jb20vbWV0ZXJhbi9nbmV4dCIKCmZ1bmMgbWFpbigpIHsKCXIgOj0gZ25leHQuUm91dGVyKCkKCglyLkdFVCgiL2V4YW1wbGUiLCBmdW5jKCkgc3RyaW5nIHsKCQlyZXR1cm4gIkhlbGxvIFdvcmxkISIKCX0pCgoJXyA9IHIuUnVuKCkKfQpgYGAKClJ1biBpdDoKCmBgYHNoZWxsCmdvIHJ1biBleGFtcGxlCmBgYAoKTm93IHlvdSBjYW4gdmlzaXQgdGhpcyBsaW5rIGluIHlvdXIgYnJvd3NlcjogaHR0cDovL2xvY2FsaG9zdDo4MDgwL2V4YW1wbGUKClllcywgeWVzLi4uIG9mIGNvdXJzZSBpdCB3b3JrcywgYnV0IHRoYXQncyBib3JpbmcuLi4gTGV0J3Mgb3BlbiB0aGlzIHBhZ2U6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9kb2NzCgpXaG9hLCB0aGF0IHdhcyBhbWF6aW5nLCAuLi5idXQgbm90IHZlcnkgdXNlZnVsLgoKTGV0J3MgdHJ5IHNvbWUgcmVhbCBleGFtcGxlLiBXaXRoIHJlcXVlc3QgYW5kIHJlc3BvbnNlLiBXZSBjYW4gbW9kaWZ5IG91ciBoYW5kbGVyIHRvIHVzZSBzdHJ1Y3R1cmVzOgoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgImdpdGh1Yi5jb20vbWV0ZXJhbi9nbmV4dCIKCmZ1bmMgbWFpbigpIHsKCXIgOj0gZ25leHQuUm91dGVyKCkKCglyLlBPU1QoIi9leGFtcGxlIiwgaGFuZGxlcikKCV8gPSByLlJ1bigpCn0KCnR5cGUgTXlSZXF1ZXN0IHN0cnVjdCB7CglJZCAgIGludCAgICBganNvbjoiaWQiIGJpbmRpbmc6InJlcXVpcmVkImAKCU5hbWUgc3RyaW5nIGBqc29uOiJuYW1lImAKfQoKdHlwZSBNeVJlc3BvbnNlIHN0cnVjdCB7CglSZXN1bHQgc3RyaW5nIGBqc29uOiJyZXN1bHQiYAp9CgpmdW5jIGhhbmRsZXIocmVxICpNeVJlcXVlc3QpICpNeVJlc3BvbnNlIHsKCXJldHVybiAmTXlSZXNwb25zZXtSZXN1bHQ6IHJlcS5OYW1lfQp9CmBgYAoKUmVzdGFydCB0aGUgc2VydmVyIGFuZCB2aXNpdCB0aGUgZG9jcyBwYWdlLiBZb3UgY2FuIHNlZSB0aGF0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIG9mIGBQT1NUIC9leGFtcGxlYCBlbmRwb2ludCBhcmUKZG9jdW1lbnRlZC4gVGhhdCdzIHRoZSByZWFsIHBvd2VyIQoKVGhlIFBPU1QgcmVxdWVzdCB3aXRob3V0IHJlcXVpcmVkIGBpZGAgbm93IGZhaWxzIHdpdGggdGhlIHZhbGlkYXRpb24gZXJyb3I6CgpgYGBzaGVsbApjdXJsIC0tcmVxdWVzdCBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9leGFtcGxlIC0tZGF0YSAneyJuYW1lIjogInNvbWUgbmFtZSJ9JwpgYGAKCmdpdmVzIG91dHB1dDoKCmBgYGpzb24KewogICJtZXNzYWdlIjogInZhbGlkYXRpb24gZXJyb3IiLAogICJkZXRhaWxzIjogWwogICAgImZpZWxkIHZhbGlkYXRpb24gZm9yICdpZCcgZmFpbGVkIG9uIHRoZSAncmVxdWlyZWQnIHRhZyB3aXRoIHZhbHVlICcnIgogIF0sCiAgInN1Y2Nlc3MiOiBmYWxzZQp9CmBgYAoKdGhlIHZhbGlkIHJlcXVlc3Q6CgpgYGBzaGVsbApjdXJsIC0tcmVxdWVzdCBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9leGFtcGxlIC0tZGF0YSAneyJuYW1lIjogInNvbWUgbmFtZSIsICJpZCI6IDR9JwpgYGAKCmdpdmVzIHVzIHRoZSBleHBlY3RlZCByZXNwb25zZToKCmBgYGpzb24KewogICJyZXN1bHQiOiAic29tZSBuYW1lIgp9CmBgYAoKQ29uZ3JhdHVsYXRpb25zISBOb3cgeW91IGFyZSBwcmVwYXJlZCBmb3IgdGhlIGZhc3QgZm9yd2FyZGluZyBkZXZlbG9wbWVudCBvZiB5b3VyIGdyZWF0IEFQSS4KCg== readmeEtag: '"05889fcd99495fbaa5b5c9b75bd40d37d5e74146"' readmeLastModified: Mon, 11 Sep 2023 11:17:40 GMT repositoryId: 434389055 description: >- Web Framework extension for Gin. Offers the API structuring, automates validation and generates documentation. It's fully compatible with the current Gin usages and Gin's middlewares. created: '2021-12-02T22:07:56Z' updated: '2024-08-31T04:41:18Z' language: Go archived: false stars: 69 watchers: 6 forks: 5 owner: meteran logo: https://avatars.githubusercontent.com/u/2293924?v=4 license: MIT repoEtag: '"cbf6a6516b0171857cfd391285c6a957411a313e59e7de1efe9d1a79bc997ad7"' repoLastModified: Sat, 31 Aug 2024 04:41:18 GMT foundInMaster: true category: - SDK - Server Implementations id: 7e0dad785526ee6f46eb80765465f803 - source: - openapi3 tags - openapi31 tags repository: https://github.com/swagger-api/apidom v3: true v3_1: true id: 1f412460f4d4f6b023e9a61816b07932 repositoryMetadata: base64Readme: >- W2NvbW1lbnRdOiA8PiAoU1BEWC1GaWxlQ29weXJpZ2h0VGV4dDogQ29weXJpZ2h0ICYjNDA7YyYjNDE7IDIwMTUgcmVmcmFjdHByb2plY3QpCltjb21tZW50XTogPD4gKFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQpCgpbY29tbWVudF06IDw+IChTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiBDb3B5cmlnaHQgJiM0MDtjJiM0MTsgMjAxNSBBcGlhcnkgSW5jLikKW2NvbW1lbnRdOiA8PiAoU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCkKCiMgQXBpRE9NCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9hcGlkb20vYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9hcGlkb20vYWN0aW9ucykKWyFbRGVwZW5kYWJvdCBlbmFibGVkXShodHRwczovL2JhZGdlbi5uZXQvYmFkZ2UvaWNvbi9kZXBlbmRhYm90P2ljb249ZGVwZW5kYWJvdCZsYWJlbCldKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2NvZGUtc2VjdXJpdHkvc3VwcGx5LWNoYWluLXNlY3VyaXR5L2tlZXBpbmcteW91ci1kZXBlbmRlbmNpZXMtdXBkYXRlZC1hdXRvbWF0aWNhbGx5KQoKClRoZSBwdXJwb3NlIG9mIEFwaURPTSBpcyB0byBwcm92aWRlIGEgc2luZ2xlLCB1bmlmeWluZyBzdHJ1Y3R1cmUgZm9yIGRlc2NyaWJpbmcgQVBJcyBhY3Jvc3MKQVBJIGRlc2NyaXB0aW9uIGxhbmd1YWdlIGFuZCBzZXJpYWxpemF0aW9uIGZvcm1hdHMuIFRoZXJlIGN1cnJlbnRseSBleGlzdHMgc2V2ZXJhbCBBUEkgZGVzY3JpcHRpb24gbGFuZ3VhZ2VzIG9uZSBjYW4gY2hvb3NlCndoZW4gZGVmaW5pbmcgYW4gQVBJLCBmcm9tIE9wZW5BUEksIFJBTUwsIEFQSSBCbHVlcHJpbnQgb3Igb3RoZXJzLgpUaGVyZSBhcmUgYWxzbyBtYW55IHNlcmlhbGl6YXRpb24gZm9ybWF0cyBzdWNoIGFzIFhNTCwgWUFNTCBvciBKU09OLiBXaXRob3V0IGEgd2F5IHRvIHBhcnNlIHRoZXNlIGZvcm1hdHMKdG8gdGhlIHNhbWUgc3RydWN0dXJlLCBkZXZlbG9wZXJzIGFyZSByZXF1aXJlZCB0byBoYW5kbGUgZWFjaCBmb3JtYXQgb25lLWJ5LW9uZSwgZWFjaCBpbiBhIGRpZmZlcmVudAp3YXkgYW5kIGVhY2ggdHJhbnNsYXRpbmcgdG8gdGhlaXIgaW50ZXJuYWwgZG9tYWluIG1vZGVsLiBUaGlzIGlzIHRlZGlvdXMsIHRpbWUtY29uc3VtaW5nLAphbmQgcmVxdWlyZXMgZWFjaCBtYWludGFpbmVyIHRvIHN0YXkgaW4gc3RlcCB3aXRoIGV2ZXJ5IGZvcm1hdCB0aGV5IHN1cHBvcnQuCgpBcGlET00gc29sdmVzIHRoaXMgY29tcGxleCBwcm9ibGVtIGluIGEgc2ltcGxlIHdheS4gSXQgYWxsb3dzIHBhcnNlcnMgdG8gcGFyc2UgdG8gYSBzaW5nbGUgc3RydWN0dXJlCmFuZCBhbGxvd3MgdG9vbCBidWlsZGVycyB0byBjb25zdW1lIG9uZSBzdHJ1Y3R1cmUgZm9yIGFsbCBmb3JtYXRzLgoKIyMgVGFibGUgb2YgQ29udGVudHMKCi0gW0dldHRpbmcgc3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKICAtIFtQcmVyZXF1aXNpdGVzXSgjcHJlcmVxdWlzaXRlcykKICAtIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgLSBbVXNhZ2VdKCN1c2FnZSkKICAtIFtBcGlET00gUGxheWdyb3VuZF0oI2FwaWRvbS1wbGF5Z3JvdW5kKQotIFtEZXZlbG9wbWVudF0oI2RldmVsb3BtZW50KQogIC0gW1ByZXJlcXVpc2l0ZXNdKCNwcmVyZXF1aXNpdGVzKQogIC0gW1NldHRpbmcgdXBdKCNzZXR0aW5nLXVwKQogIC0gW1NldHRpbmcgdXAgdmlhIGRvY2tlcl0oI3NldHRpbmctdXAtdmlhLWRvY2tlcikKICAtIFtTZXR0aW5nIHVwIHZpYSBHaXRIdWIgQ29kZXNwYWNlc10oI3NldHRpbmctdXAtdmlhLWdpdGh1Yi1jb2Rlc3BhY2VzKQogIC0gW25wbSBzY3JpcHRzXSgjbnBtLXNjcmlwdHMpCiAgLSBbQnVpbGQgYXJ0aWZhY3RzXSgjYnVpbGQtYXJ0aWZhY3RzKQogIC0gW1VzaW5nIHRoaXMgbW9ub3JlcG8gYXMgYSBsb2NhbCBkZXYgZGVwZW5kZW5jeV0oI3VzaW5nLXRoaXMtbW9ub3JlcG8tYXMtYS1sb2NhbC1kZXYtZGVwZW5kZW5jeSkKLSBbQ29udHJpYnV0aW5nXSgjY29udHJpYnV0aW5nKQotIFtEb2N1bWVudGF0aW9uXSgjZG9jdW1lbnRhdGlvbikKICAtIFtXaGF0IGlzIGFuIEVsZW1lbnQgP10oI3doYXQtaXMtYW4tZWxlbWVudC0pCiAgLSBbQXMgYSB3YXkgdG8gYW5ub3RhdGUgSlNPTl0oI2FzLWEtd2F5LXRvLWFubm90YXRlLWpzb24pCiAgLSBbQXMgYSB1bmlmeWluZyBzdHJ1Y3R1cmVdKCNhcy1hLXVuaWZ5aW5nLXN0cnVjdHVyZSkKICAtIFtBcyBhIHF1ZXJ5YWJsZSBzdHJ1Y3R1cmVdKCNhcy1hLXF1ZXJ5YWJsZS1zdHJ1Y3R1cmUpCiAgLSBbQXBpRE9NIHN0YWdlc10oI2FwaWRvbS1zdGFnZXMpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQotIFtTb2Z0d2FyZSBCaWxsIE9mIE1hdGVyaWFscyAoU0JPTSldKCNzb2Z0d2FyZS1iaWxsLW9mLW1hdGVyaWFscy1zYm9tKQoKIyMgR2V0dGluZyBzdGFydGVkCgojIyMgUHJlcmVxdWlzaXRlcwoKVGhlc2UgcHJlcmVxdWlzaXRlcyBhcmUgcmVxdWlyZWQgYm90aCBmb3IgaW5zdGFsbGluZyBBcGlET00gYXMgYSBucG0gcGFja2FnZSBhbmQgbG9jYWwgZGV2ZWxvcG1lbnQgc2V0dXAuCgotIFtub2RlLWd5cF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvbm9kZS1neXApIGA+PTEwYCB3aXRoIFtQeXRob24gMy54XShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy8pCi0gW0dMSUJDXShodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmMvKSBgPj0yLjI5YAotIFtHQ0MgY29tcGlsZXJdKGh0dHBzOi8vZ2NjLmdudS5vcmcvKQotIFtlbXNjcmlwdGVuXShodHRwczovL2Vtc2NyaXB0ZW4ub3JnL2RvY3MvZ2V0dGluZ19zdGFydGVkL2Rvd25sb2Fkcy5odG1sKSBvciBbZG9ja2VyXShodHRwczovL3d3dy5kb2NrZXIuY29tLykgbmVlZHMgdG8gYmUgaW5zdGFsbGVkLCB3ZSByZWNvbW1lbmQgZ29pbmcgd2l0aCBhIGRvY2tlciBvcHRpb24KCiMjIyBJbnN0YWxsYXRpb24KCkFzc3VtaW5nIFtwcmVyZXF1aXNpdGVzXSgjcHJlcmVxdWlzaXRlcykgYXJlIGFscmVhZHkgaW5zdGFsbGVkLCBBcGlET00gbnBtIHBhY2thZ2VzIGFyZSBpbnN0YWxsYWJsZSBhbmQgd29ya3Mgd2l0aCBgTm9kZS5qcyA+PTEyLjIwLjAgPD0yMmAuCgpZb3UgY2FuIGluc3RhbGwgQXBpRE9NIHBhY2thZ2VzIHVzaW5nIFtucG0gQ0xJXShodHRwczovL2RvY3MubnBtanMuY29tL2NsaSk6CgpgYGBzaAogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWFzdAogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWNvbnZlcnRlcgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1lcnJvcgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcGF0aAogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlcgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlci1yZWxhdGl2ZQogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWxvZ2dpbmcKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1scwogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLW5zLWFwaS1kZXNpZ24tc3lzdGVtcwogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLW5zLWFzeW5jYXBpLTIKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00CiAkIG5wbSBpbnN0YWxsIEBzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTcKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTIKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMAogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xCiAkIG5wbSBpbnN0YWxsIEBzd2FnZ2VyLWFwaS9hcGlkb20tbnMtd29ya2Zsb3dzLTEKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1wYXJzZXIKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1wYXJzZXItYWRhcHRlci1hcGktZGVzaWduLXN5c3RlbXMtanNvbgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLXBhcnNlci1hZGFwdGVyLWFwaS1kZXNpZ24tc3lzdGVtcy15YW1sCiAkIG5wbSBpbnN0YWxsIEBzd2FnZ2VyLWFwaS9hcGlkb20tcGFyc2VyLWFkYXB0ZXItYXN5bmNhcGktanNvbi0yCiAkIG5wbSBpbnN0YWxsIEBzd2FnZ2VyLWFwaS9hcGlkb20tcGFyc2VyLWFkYXB0ZXItYXN5bmNhcGkteWFtbC0yCiAkIG5wbSBpbnN0YWxsIEBzd2FnZ2VyLWFwaS9hcGlkb20tcGFyc2VyLWFkYXB0ZXItanNvbgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLXBhcnNlci1hZGFwdGVyLW9wZW5hcGktanNvbi0yCiAkIG5wbSBpbnN0YWxsIEBzd2FnZ2VyLWFwaS9hcGlkb20tcGFyc2VyLWFkYXB0ZXItb3BlbmFwaS1qc29uLTMtMAogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLXBhcnNlci1hZGFwdGVyLW9wZW5hcGktanNvbi0zLTEKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1wYXJzZXItYWRhcHRlci1vcGVuYXBpLXlhbWwtMgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLXBhcnNlci1hZGFwdGVyLW9wZW5hcGkteWFtbC0zLTAKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1wYXJzZXItYWRhcHRlci1vcGVuYXBpLXlhbWwtMy0xCiAkIG5wbSBpbnN0YWxsIEBzd2FnZ2VyLWFwaS9hcGlkb20tcGFyc2VyLWFkYXB0ZXItd29ya2Zsb3dzLWpzb24tMQogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLXBhcnNlci1hZGFwdGVyLXdvcmtmbG93cy15YW1sLTEKICQgbnBtIGluc3RhbGwgQHN3YWdnZXItYXBpL2FwaWRvbS1wYXJzZXItYWRhcHRlci15YW1sLTEtMgogJCBucG0gaW5zdGFsbCBAc3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZQpgYGAKCiMjIyBVc2FnZQoKRXZlcnkgcGFja2FnZSBvZiB0aGUgbW9ub3JlcG8gaGFzIGFuIGFzc29jaWF0ZWQgUkVBRE1FIGZpbGUgZGVtb25zdHJhdGluZyBpdHMgcHVycG9zZSBhbmQgY29udGFpbmluZwp1c2FnZSBleGFtcGxlcy4KCiMjIyBBcGlET00gUGxheWdyb3VuZAoKQXBpRE9NIFBsYXlncm91bmQgaXMgYSBSZWFjdCBhcHBsaWNhdGlvbiB0aGF0IHJ1bnMgaW4gYSBicm93c2VyIGFuZCBjYW4gdmlzdWFsbHkgZGVtb25zdHJhdGUgY2FwYWJpbGl0aWVzCm9mIHRoZSBBcGlET00uIEFwaURPTSBQbGF5Z3JvdW5kIGlzIGJ1aWxkIGFuZCBkZXBsb3llZCB3aGVuZXZlciB0aGUgbmV3IGNvbW1pdCBsYW5kcyBvbiBgbWFpbmAgYnJhbmNoLgoKIVtpbWFnZV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTkzMjg2LzE0NTAxMDUyMi01ZDg1ZTM0Yi04ZDI4LTRhMDctOWVlMi1iMjg4MDdhMDEzY2QucG5nKQoKQXBpRE9NIFBsYXlncm91bmQgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL3N3YWdnZXItYXBpLmdpdGh1Yi5pby9hcGlkb20vXShodHRwczovL3N3YWdnZXItYXBpLmdpdGh1Yi5pby9hcGlkb20vKQoKIyMgRGV2ZWxvcG1lbnQKClRoaXMgaXMgYSBtb25vcmVwbyBmb3IgYWxsIEFwaURPTSBwYWNrYWdlcy4gQWxsIHRoZSBjb2RlIGlzIHdyaXR0ZW4gaW4gW1R5cGVTY3JpcHRdKGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy8pLgpBbGwgdGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3Igd29ya2luZyB3aXRoIG1vbm9yZXBvIGNhbiBiZSBmb3VuZCBpbiB0aGlzIFthcnRpY2xlXShodHRwczovL3ZsYWRpbWlyZ29yZWouY29tL2Jsb2cvdGhpbmdzLWktaGF2ZS1sZWFybmVkLW1haW50YWluaW5nLWphdmFzY3JpcHQtbW9ub3JlcG8td2l0aC1sZXJuYS8pLgoKQXNzdW1pbmcgW3ByZXJlcXVpc2l0ZXNdKCNwcmVyZXF1aXNpdGVzKSBhcmUgYWxyZWFkeSBpbnN0YWxsZWQsIFtOb2RlLmpzXShodHRwczovL25vZGVqcy5vcmcvKSBgPj0yMC4zLjBgIGFuZCBgbnBtID49OS42LjdgCmFyZSB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9ucyB0aGF0IHRoaXMgcmVwbyBydW5zIG9uLCBidXQgd2UgcmVjb21tZW5kIHVzaW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBOb2RlLmpzQDIwLgoKIyMjIFNldHRpbmcgdXAKClJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIHRvIHNldHVwIHRoZSByZXBvc2l0b3J5IGZvciBsb2NhbCBkZXZlbG9wbWVudDoKCmBgYHNoZWxsCiAkIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvYXBpZG9tLmdpdAogJCBjZCBhcGlkb20KICQgbnBtIGkKICQgbnBtIHJ1biBidWlsZApgYGAKCiMjIyBTZXR0aW5nIHVwIHZpYSBkb2NrZXIKClRoZXJlIGFyZSBzaXR1YXRpb25zLCB3aGVuIHNhdGlzZnlpbmcgYWxsIHRoZSAqKnByZXJlcXVpc2l0ZXMqKiBvZiB0aGlzIHJlcG9zaXRvcnkgb24geW91IGxvY2FsCmRldmVsb3BtZW50IG1hY2hpbmUgaXMganVzdCBub3QgcG9zc2libGUuIEluIHRoYXQgY2FzZSwgeW91IGNhbiB1c2UgKipkb2NrZXIqKiB0byBnZXQgYXJvdW5kIGl0LgpSZXBvc2l0b3J5IGRpcmVjdG9yeSBpcyBtb3VudGVkIGFzIHZvbHVtZSBpbnNpZGUgYSBydW5uaW5nIGNvbnRhaW5lciBjYWxsZWQgYGFwaWRvbS1kZXZgLgpUaGF0IHdheSB5b3UgY2FuIGVkaXQgY29kZSBsb2NhbGx5IG9uIHlvdXIgZGV2ZWxvcG1lbnQgbWFjaGluZSBhbmQgcnVuICoqbnBtIHNjcmlwdHMqKgppbnNpZGUgdGhlIGBhcGlkb20tZGV2YCBkb2NrZXIgY29udGFpbmVyLgoKKipCdWlsZCB0aGUgQXBpRE9NIGRvY2tlciBpbWFnZToqKgoKYGBgc2gKICQgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9hcGlkb20uZ2l0CiAkIGNkIGFwaWRvbQogJCBkb2NrZXItY29tcG9zZSB1cApgYGAKCioqSW5zdGFsbCBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIEFwaURPTSBpbnNpZGUgdGhlIGRvY2tlciBjb250YWluZXI6KioKCmBgYHNoCiQgZG9ja2VyIGV4ZWMgLWl0IGFwaWRvbS1kZXYgbnBtIGkgLS12ZXJib3NlCiQgZG9ja2VyIGV4ZWMgLWl0IGFwaWRvbS1kZXYgbnBtIHJ1biBidWlsZApgYGAKCioqUnVuIG5wbSBzY3JpcHRzIGluc2lkZSB0aGUgZG9ja2VyIGNvbnRhaW5lcjoqKgoKYGBgc2gKJCBkb2NrZXIgZXhlYyAtaXQgYXBpZG9tLWRldiBucG0gcnVuIHRlc3QKYGBgCgo+IE5vdGU6IG1vbm9yZXBvIG5lZWRzIHRvIGJlIGJ1aWxkIGluIG9yZGVyIGZvciBtb25vcmVwbyBwYWNrYWdlIHRvcG9sb2d5IHRvIHdvcmsgY29ycmVjdGx5LgoKIyMjIFNldHRpbmcgdXAgdmlhIEdpdEh1YiBDb2Rlc3BhY2VzCgpUaGlzIHJlcG9zaXRvcnkgaXMgW2NvbmZpZ3VyZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9hcGlkb20vdHJlZS9tYWluLy5kZXZjb250YWluZXIpIHRvIHdvcmsgd2l0aCBbR2l0SHViIENvZGVzcGFjZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb2Rlc3BhY2VzKS4KQ3JlYXRlIGEgbmV3IGNvZGVzcGFjZSBieSBwaWNraW5nIHRoaXMgcmVwb3NpdG9yeSBmcm9tIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSByZXBvc2l0b3JpZXMuCk9uY2UgdGhlIGNvZGVzcGFjZSBpcyBjcmVhdGVkLCBydW4gZm9sbG93aW5nIGNvbW1hbmRzIGluc2lkZSB0aGUgY29kZXNwYWNlIHRlcm1pbmFsOgoKYGBgc2gKICQgbnBtIGkKICQgbnBtIHJ1biBidWlsZApgYGAKCiMjIyBucG0gc2NyaXB0cwoKU29tZSBucG0gc2NyaXB0cyBydW4gaW4gcGFyYWxsZWwuIERlZmF1bHQgbWF4aW11bSBwYXJhbGxlbGl6YXRpb24gaXMgc2V0IGAyYC4gVGhpcyBpcyBkdWUgdG8gdGhlIGZhY3QKdGhhdCBvdXIgYENJYCBydW5zIG9uIEdpdEh1YiBBY3Rpb25zIHdoaWNoIHVzZXMgR2l0SHViIGhvc3RlZCBydW5uZXJzIHdpdGggWzItY29yZSBDUFVzXShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3VzaW5nLWdpdGh1Yi1ob3N0ZWQtcnVubmVycy9hYm91dC1naXRodWItaG9zdGVkLXJ1bm5lcnMjc3VwcG9ydGVkLXJ1bm5lcnMtYW5kLWhhcmR3YXJlLXJlc291cmNlcykuCklmIHlvdSBoYXZlIGNvbXB1dGVyIHdpdGggbW9yZSB0aGFuIDIgQ1BVIGNvcmVzLCB5b3UgY2FuIHNwZWVkIHJ1bm5pbmcgbnBtIHNjcmlwdHMgYnkKY3JlYXRpbmcgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgY2FsbGVkIGBDUFVfQ09SRVNgIGFuZCBhc3NpZ24gaXQgYSBudW1iZXIgb2YgeW91ciBDUFUgY29yZXMuCgpBc3N1bWluZyA0IENQVSBjb3JlcyBhcmUgYXZhaWxhYmxlOgoKYGBgc2gKICAkIGV4cG9ydCBDUFVfQ09SRVM9NAogICQgbnBtIHJ1biBidWlsZApgYGAKCmBidWlsZGAgc2NyaXB0cyBub3cgcnVucyBtdWNoIGZhc3RlciB0aGFuIGJlZm9yZS4KCioqQnVpbGQgYXJ0aWZhY3RzKioKCmBgYHNoCiAkIG5wbSBydW4gYnVpbGQKYGBgCgoqKlRlc3QqKgoKWW91IG11c3QgZmlyc3QgKipidWlsZCB0aGUgYXJ0aWZhY3RzKiogYmVmb3JlIHJ1bm5pbmcgdGVzdHMuCgpgYGBzaAogJCBucG0gcnVuIHRlc3QKYGBgCgoqKkxpbnQqKgoKYGBgc2gKICQgbnBtIHJ1biBsaW50CmBgYAoKKipDaGVjayBUeXBlU2NyaXB0IHR5cGVzKioKCmBgYHNoCiAkIG5wbSBydW4gdHlwZXNjcmlwdDpjaGVjay10eXBlcwpgYGAKCioqR2VuZXJhdGUgVHlwZVNjcmlwdCB0eXBlcyoqCgpgYGBzaAogJCBucG0gcnVuIHR5cGVzY3JpcHQ6ZGVjbGFyYXRpb24KYGBgCgoqKkNsZWFuKioKCmBgYHNoCiAkIG5wbSBydW4gY2xlYW4KYGBgCgojIyMgQnVpbGQgYXJ0aWZhY3RzCgpBbGwgdGhlIHBhY2thZ2VzIGhhdmUgaWRlbnRpY2FsIGJ1aWxkIHN5c3RlbSBhbmQgZXhwb3NlIGJ1aWxkIGFydGlmYWN0cyBpbiBpZGVudGljYWwgd2F5LgpBZnRlciBidWlsZGluZyBhcnRpZmFjdHMsIGV2ZXJ5IHBhY2thZ2Ugd2lsbCBjb250YWluIGZpdmUgKDUpIGFkZGl0aW9uYWwgZGlyZWN0b3JpZXMuCkFsbCB0aGUgYnVpbGQgYXJ0aWZhY3RzIGFyZSBwb2x5bW9ycGhpYyAtIHRoZXkgY2FuIHJ1biBpbiBkaWZmZXJlbnQgZW52aXJvbm1lbnRzIGxpa2UgW1dlYiBCcm93c2VyXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9XZWJfYnJvd3NlciksIFtOb2RlLmpzXShodHRwczovL25vZGVqcy5vcmcvKSBvciBbV2ViIFdvcmtlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dlYl9Xb3JrZXJzX0FQSSkuCgoqKmNqcy8qKgoKVGhpcyBkaXJlY3RvcnkgbWlycm9ycyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb2RlYmFzZSBpbiBgc3JjL2AuCkNvbnRhaW5zIEVTNSBjb21wYXRpYmxlIGNvZGUgd2l0aCBbQ29tbW9uSlNdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NvbW1vbkpTKSBzdHlsZSBpbXBvcnRzLgpCdWlsZCBmcmFnbWVudHMgaW4gdGhpcyBkaXJlY3RvcnkgYXJlIGlkZWFsIGZvciBbTm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnLykgYW5kIHNpbWlsYXIgZW52aXJvbm1lbnRzLgoKKiplcy8qKgoKVGhpcyBkaXJlY3RvcnkgbWlycm9ycyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb2RlYmFzZSBpbiBgc3JjL2AuCkNvbnRhaW5zIEVTNSBjb21wYXRpYmxlIGNvZGUgd2l0aCBbRVM2IGltcG9ydHNdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL1N0YXRlbWVudHMvaW1wb3J0KS4KQnVpbGQgZnJhZ21lbnRzIGluIHRoaXMgZGlyZWN0b3J5IGFyZSBpZGVhbCBmb3IgYnVuZGxpbmcgd2l0aCBbV2VicGFja10oaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy8pIG9yIHNpbWlsYXIgYnVuZGxlcnMuCgoqKmRpc3QvKioKClRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIGJ1bmRsZWQgYnVpbGQgZnJhZ21lbnRzIHRoYXQgdXNlIFtVTURdKGh0dHBzOi8vZ2l0aHViLmNvbS91bWRqcy91bWQpIG1vZHVsZXMuClRoZXkncmUgaWRlYWwgZm9yIGJyb3dzZXIgdXNhZ2UuIFRoZSBmcmFnbWVudHMgYXJlIGJvdGggaW4gbWluaWZpZWQgYW5kIHVuLW1pbmlmaWVkIGZvcm0uCgoqKnR5cGVzLyoqCgpUeXBlU2NyaXB0IHR5cGVzIGdlbmVyYXRlZCBmcm9tIHRoZSBzb3VyY2UgY29kZS4KCiMjIyBVc2luZyB0aGlzIG1vbm9yZXBvIGFzIGEgbG9jYWwgZGV2IGRlcGVuZGVuY3kKCkZvciB1c2luZyB0aGlzIG1vbm9yZXBvIGFzIGEgbG9jYWwgZGV2IGRlcGVuZGVuY3kgZm9yIGBkZXBlbmRlbnQgcHJvamVjdGAsCmZvbGxvd2luZyBjb21tYW5kcyBuZWVkcyB0byBiZSBpc3N1ZWQgaW5zaWRlIHRoZSBtb25vcmVwbyBkaXJlY3RvcnkgYWZ0ZXIKaXQgaGFzIGJlZW4gY2xvbmVkIHRvIGEgbG9jYWwgZmlsZXN5c3RlbToKCmBgYHNoCiAkIG5wbSBpCiAkIG5wbSBydW4gYnVpbGQKICQgbnBtIHJ1biBsaW5rCmBgYApUaGlzIHdpbGwgaW5zdGFsbCB0aGUgZGVwZW5kZW5jaWVzLCBidWlsdCB0aGUgbW9ub3JlcG8gYW5kIGxpbmsgYWxsIGl0J3MgcGFja2FnZXMgdG8KZ2xvYmFsIGBub2RlX21vZHVsZXNgLgoKIyMjIyBVc2FnZSBpbiBgZGVwZW5kZW50IHByb2plY3RgCgpOb3cgdGhhdCB3ZSBoYXZlIG1vbm9yZXBvIHBhY2thZ2VzIGdsb2JhbGx5IGxpbmtlZCB3ZSBjYW4gdXNlIHRoZW0gaW4gYGRlcGVuZGVudCBwcm9qZWN0YC4KTGV0J3Mgc2F5IGBkZXBlbmRlbnQgcHJvamVjdGAgbmVlZHMgdG8gZGlyZWN0bHkgdXNlIGZvbGxvd2luZyBwYWNrYWdlczoKCi0gQHN3YWdnZXItYXBpL2FwaWRvbS1hc3QKLSBAc3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUKCklzc3VpbmcgZm9sbG93aW5nIGNvbW1hbmQgZnJvbSBpbnNpZGUgdGhlIGBkZXBlbmRlbnQgcHJvamVjdGAgd2lsbCBsaW5rIHRoZXNlIHBhY2thZ2VzOgoKYGBgc2gKICQgbnBtIGxpbmsgQHN3YWdnZXItYXBpL2FwaWRvbS1hc3QgQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlCmBgYAoKSWYgbW9yZSBwYWNrYWdlcyAob3IgYWxsIG9mIHRoZW0pIG5lZWQgdG8gYmUgdXNlZCBpbiBgZGVwZW5kZW50IHByb2plY3RgLCB0aGV5IG5lZWQgdG8gYmUgZXhwbGljaXRseQplbnVtZXJhdGVkIHVzaW5nIGFib3ZlIGNvbW1hbmQgYW5kIHNlcGFyYXRlZCBieSBzaW5nbGUgZW1wdHkgc3BhY2UuCgpOb3RpY2UgdGhhdCB3ZSBsaW5rIHBhY2thZ2VzIHVzaW5nIHNpbmdsZSBgbnBtIGxpbmtgIGNvbW1hbmQuIFRoaXMgaXMgbmVjZXNzYXJ5CmJlY2F1c2Ugb2YgaG93IGBucG0gbGlua2Agd29ya3MgaW50ZXJuYWxseS4gQWx3YXlzIHVzZSBzaW5nbGUgYG5wbSBsaW5rYCBjb21tYW5kIHdpdGgKbXVsdGlwbGUgcGFja2FnZSBuYW1lcyBhcyBhcmd1bWVudC4KCioqRG9uJ3QgZXZlciBkbyB0aGlzISoqCgpgYGBzaAogJCBucG0gbGluayBAc3dhZ2dlci1hcGkvYXBpZG9tLWFzdAogJCBucG0gbGluayBAc3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUKYGBgCgo+IFNldHRpbmcgdXAgbnBtIHNjcmlwdCBpbiBgZGVwZW5kZW50IHByb2plY3RgIGNhbiBoZWxwIGtlZXAgdGhpbmdzIERSWS4KCiMjIyMgQ2xlYW5pbmcgdXAKCiMjIyMjIERlcGVuZGVudCBwcm9qZWN0CgpUaGUgYmVzdCB3YXkgdG8gdW5saW5rIG1vbm9yZXBvIHBhY2thZ2VzIGZyb20gYGRlcGVuZGVudCBwcm9qZWN0YCBpcyB0byBydW4gZm9sbG93aW5nIGNvbW1hbmQKaW5zaWRlIHRoZSBgZGVwZW5kZW50IHByb2plY3RgOgoKYGBgc2hlbGwKICQgbnBtIGkKYGBgCgpSdW5uaW5nIGBucG0gaWAgd2lsbCByZW1vdmUgdGhlIGxpbmtzIHRvIG1vbm9yZXBvIHBhY2thZ2VzIGFuZCBpbnN0YWxsIHRoZSBwYWNrYWdlcyBmcm9tIG5wbSByZWdpc3RyeS4KCj4gTm90ZTogcnVubmluZyBgbnBtIHVubGluayA8cGFja2FnZS1uYW1lPmAgaW4gYGRlcGVuZGVudCBwcm9qZWN0YCB3aWxsIHJlbW92ZSB0aGUgbGluayB0byBtb25vcmVwbyBwYWNrYWdlLApidXQgd2lsbCBsZWF2ZSB0aGUgYGRlcGVuZGVudCBwcm9qZWN0YCBub2RlX21vZHVsZXMgaW4gY29ycnVwdGVkIHN0YXRlIGFzIHRoZXJlIGlzIG5vIHZlcnNpb24gb2YgdGhlIHBhY2thZ2UKaW5zdGFsbGVkIGFueW1vcmUuIFJ1bm5pbmcgYG5wbSBpYCBpcyBhbHdheXMgYSBwcmVmZXJlZCB3YXkgdG8gcmVzdG9yZSB5b3VyIG5vZGVfbW9kdWxlcyB0byBvcmlnaW5hbCBzdGF0ZS4KCgojIyMjIyBBcGlET00gbW9ub3JlcG8KCkl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gdW5saW5rIG1vbm9yZXBvIHBhY2thZ2VzIGZyb20gZ2xvYmFsIGBub2RlX21vZHVsZXNgLiBCdXQgaWYgeW91CndhbnQgdG8ga2VlcCB5b3VyIGdsb2JhbCBgbm9kZV9tb2R1bGVzYCB0aWR5IHlvdSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiBtb25vcmVwbyBkaXJlY3Rvcnk6CgpgYGBzaGVsbAogJCBucG0gcnVuIHVubGluawpgYGAKClJ1bm5pbmcgYWJvdmUgbnBtIHNjcmlwdCB3aWxsIHVubGluayBhbGwgbW9ub3JlcG8gcGFja2FnZXMgZnJvbSBnbG9iYWwgYG5vZGVfbW9kdWxlc2AuCgpJZiB5b3Ugd2FudCB0byBqdXN0IHVubGluayBwYXJ0aWN1bGFyIG1vbm9yZXBvIHBhY2thZ2VzLCB5b3UgaGF2ZSB0byBlbnVtZXJhdGUgdGhlbSBleHBsaWNpdGx5OgoKYGBgc2hlbGwKICQgbnBtIHVubGluayAtLWdsb2JhbCBAc3dhZ2dlci1hcGkvYXBpZG9tLWFzdCBAc3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUKYGBgCgojIyBDb250cmlidXRpbmcKClRoaXMgcHJvamVjdCB1c2VzIFtzd2FnZ2VyLWFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpKSBHaXRIdWIgb3JnYW5pemF0aW9ucyBjb250cmlidXRpbmcgZ3VpZGUuCllvdSBjYW4gb2J0YWluIGNvcHkgb2YgdGhpcyBjb250cmlidXRpbmcgZ3VpZGUgYXQgW2h0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS8uZ2l0aHViL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpLy5naXRodWIvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kKS4KUmVhZCBvdXIgY29udHJpYnV0aW5nIGd1aWRlIHRvIGxlYXJuIGFib3V0IG91ciBkZXZlbG9wbWVudCBwcm9jZXNzLCBob3cgdG8gcHJvcG9zZSBidWdmaXhlcyBhbmQgaW1wcm92ZW1lbnRzLAphbmQgaG93IHRvIGJ1aWxkIGFuZCB0ZXN0IHlvdXIgY2hhbmdlcyB0byBBcGlET00uCgojIyBEb2N1bWVudGF0aW9uCgpJZiB0aGVyZSBpcyBvbmUgdGhpbmcgQVBJIGRlc2NyaXB0aW9uIGxhbmd1YWdlcyBoYXZlIHRhdWdodCB1cywgaXQgaXMgdGhhdCBhIHNpbmdsZSBjb250cmFjdCBwcm92aWRlcwp0aGUgYmVzdCBhbmQgZmFzdGVzdCB3YXkgdG8gZGVzaWduIGFuZCBpdGVyYXRlIG9uIGFuIEFQSS4gRGV2ZWxvcGVycyBidWlsZGluZyB0aGUgQVBJIGNhbiBtb3ZlIGluZGVwZW5kZW50bHkKYXMgdGhleSBwcm9ncmVzcyB0b3dhcmRzIHRoZSBkZWZpbmVkIGNvbnRyYWN0IGZvdW5kIGluIHRoZSBPcGVuQVBJIG9yIFJBTUwgZG9jdW1lbnQuCkNvbnZlcnNlbHksIEFQSSBjb25zdW1lcnMgY2FuIGJ1aWxkIHRvb2xzIGZvciBjb25zdW1pbmcgdGhlIEFQSSBiYXNlZCBvbiB0aGUgQVBJIGRlZmluaXRpb24gZG9jdW1lbnQuCgpUaGlzIHNhbWUgcGF0dGVybiBoYXMgcHJvdmVuIHRvIGJlIGp1c3QgYXMgdmFsdWFibGUgZm9yIGJ1aWxkaW5nIEFQSSBkZXNjcmlwdGlvbiBsYW5ndWFnZXMgYW5kIHRvb2xpbmcuCkFwaURPTSBpcyB0aGUgY29udHJhY3QgZm9yIHByb2R1Y2luZyBhbmQgY29uc3VtaW5nIHRoZSBtYW55IEFQSSBkZXNjcmlwdGlvbiBsYW5ndWFnZXMgYW5kIHNlcmlhbGl6YXRpb24gZm9ybWF0cwphbmQgYWxsb3dzIGV2ZXJ5b25lIHRvIG1vdmUgcXVpY2tseSBhbmQgaW5kZXBlbmRlbnRseS4KCiMjIyBXaGF0IGlzIGFuIEVsZW1lbnQgPwoKQXBpRE9NIGlzIG1hZGUgdXAgb2YgbWFueSBzbWFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSByaWNoIHNlbWFudGljIG1lYW5pbmcgZ2l2ZW4gdGhlaXIgdmFsdWUgYW5kIGNvbnRleHQuCkFuIGVsZW1lbnQgaXMgYW4gaW5kaXZpZHVhbCBwaWVjZSB0aGF0IG1ha2VzIHVwIGFuIEFQSSwgYW5kIGNhbiByYW5nZSBmcm9tIGRlZmluaW5nIGEgcmVzb3VyY2UgdG8gcHJvdmlkaW5nCmFuIGV4YW1wbGUgb2YgYW4gSFRUUCByZXF1ZXN0LgoKVGhlIEFwaURPTSBkZWZpbmVzIGVsZW1lbnRzIHRvIGJlIHVzZWQgZm9yOgoKRGVzY3JpYmluZyBhbiBBUEkKRGVzY3JpYmluZyBkYXRhIHN0cnVjdHVyZXMgdXNlZCB3aXRoaW4gdGhhdCBBUEkKRGVzY3JpYmluZyBwYXJzZSByZXN1bHRzIHdoZW4gcGFyc2luZyBBUEktcmVsYXRlZCBkb2N1bWVudHMKVGhlc2UgZWxlbWVudHMgYWxzbyBzZWVrIHRvIHByb3ZpZGUgYSB3YXkgdG8gZGVjb3VwbGUgQVBJcyBhbmQgdGhlaXIgc2VtYW50aWNzIGZyb20gdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuCgpUaGUgc3RydWN0dXJlIG9mIGFuIEFwaURPTSBpcyByZWN1cnNpdmUgYnkgbmF0dXJlLiBXaGVuIGxvb2tpbmcgZm9yIHNwZWNpZmljIGVsZW1lbnRzLAppdCBpcyBiZXN0IHRvIHRyYXZlcnNlIHRoZSBBcGlET00gdHJlZSB0byBsb29rIGZvciBhIG1hdGNoLiBRdWVyeWluZyB0aGUgQXBpRE9NIHRyZWUgd2lsbApkZWNvdXBsZSBvdXIgY29kZSBmcm9tIHNwZWNpZmljIEFQSSBkZXNjcmlwdGlvbiBsYW5ndWFnZS4gQWxzbywgaXQgZGVjb3VwbGVzIG91ciBjb2RlIGZyb20gdGhlCnNwZWNpZmljIHN0cnVjdHVyZSBvZiB0aGVzZSBkb2N1bWVudHMgYXMgbG9uZyBhcyB0aGV5IGFyZSBzZW1hbnRpY2FsbHkgZXF1aXZhbGVudC4KCiMjIyBBcyBhIHdheSB0byBhbm5vdGF0ZSBKU09OCgpBcGlET00gcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gdGFrZSBhIG5vcm1hbCBKU09OIHN0cnVjdHVyZSBhbmQgYWRkIGEgbGF5ZXIgb24gdG9wIG9mIGl0IGZvciB0aGUgcHVycG9zZQpvZiBhbm5vdGF0aW5nIGFuZCBhZGRpbmcgc2VtYW50aWMgZGF0YS4gSW5zdGVhZCBvZiBjcmVhdGluZyBhbiBlbnRpcmVseSBkaWZmZXJlbnQgc3RydWN0dXJlIHRvIGRlc2NyaWJlIHRoZSBkYXRhLApBcGlET00ncyBhcHByb2FjaCBpcyB0byBleHBhbmQgdGhlIGV4aXN0aW5nIHN0cnVjdHVyZSAod2UgY2FsbCBpdCAicmVmcmFjdGluZyIgYSBzdHJ1Y3R1cmUpLgpIZXJlIGlzIGFuIGV4YW1wbGUgdG8gc2hvdyBvdXIgcG9pbnQuCgpUYWtlIHRoZSBmb2xsb3dpbmcgc2ltcGxlIEpTT04gb2JqZWN0LgoKYGBganNvbgp7CiAgIm5hbWUiOiAiSm9obiBEb2UiLAogICJlbWFpbCI6ICJqb2huQGV4YW1wbGUuY29tIgp9CmBgYAoKVXNpbmcgQXBpRE9NLCB3ZSBjYW4gZXhwYW5kIHRoaXMgb3V0IGFuZCBhZGQgc29tZSBodW1hbi1yZWFkYWJsZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9ucy4KCmBgYGpzb24KewogICJlbGVtZW50IjogIm9iamVjdCIsCiAgImNvbnRlbnQiOiBbCiAgICB7CiAgICAgICJlbGVtZW50IjogIm1lbWJlciIsCiAgICAgICJtZXRhIjogewogICAgICAgICJ0aXRsZSI6ICJOYW1lIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiBhIHBlcnNvbiIKICAgICAgfSwKICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgImtleSI6IHsKICAgICAgICAgICJlbGVtZW50IjogInN0cmluZyIsCiAgICAgICAgICAiY29udGVudCI6ICJuYW1lIgogICAgICAgIH0sCiAgICAgICAgInZhbHVlIjogewogICAgICAgICAgImVsZW1lbnQiOiAic3RyaW5nIiwKICAgICAgICAgICJjb250ZW50IjogIkpvaG4gRG9lIgogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHsKICAgICAgImVsZW1lbnQiOiAibWVtYmVyIiwKICAgICAgIm1ldGEiOiB7CiAgICAgICAgInRpdGxlIjogIkVtYWlsIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW1haWwgYWRkcmVzcyBmb3IgdGhlIHBlcnNvbiIKICAgICAgfSwKICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgImtleSI6IHsKICAgICAgICAgICJlbGVtZW50IjogInN0cmluZyIsCiAgICAgICAgICAiY29udGVudCI6ICJlbWFpbCIKICAgICAgICB9LAogICAgICAgICJ2YWx1ZSI6IHsKICAgICAgICAgICJlbGVtZW50IjogInN0cmluZyIsCiAgICAgICAgICAiY29udGVudCI6ICJqb2huQGV4YW1wbGUuY29tIgogICAgICAgIH0KICAgICAgfQogICAgfQogIF0KfQpgYGAKCldlIGFkZGVkIHNvbWUgc2VtYW50aWMgZGF0YSB0byB0aGUgZXhpc3RpbmcgZGF0YSwgYnV0IHdlIGRpZCBzbyB3aGlsZSByZXRhaW5pbmcgdGhlIHNlbWFudGljIHN0cnVjdHVyZSBvZiB0aGUgZGF0YQp3aXRoIHRoZSBvYmplY3QgYW5kIHN0cmluZyBlbGVtZW50cy4gKipUaGlzIG1lYW5zIHRoZXJlIGlzIG5vIHNlbWFudGljIGRpZmZlcmVuY2UgaW4gdGhlIEFwaURPTSBzdHJ1Y3R1cmUgYW5kCnRoZSBvcmlnaW5hbCBKU09OIHN0cnVjdHVyZSoqLiBJdCBhbHNvIG1lYW5zIHdlIGNhbiBhZGQgZXh0cmEgc2VtYW50aWNzIG9uIHRvcCBvZiB0aGVzZSBzdHJ1Y3R1cmFsIG9uZXMuCgojIyMgQXMgYSB1bmlmeWluZyBzdHJ1Y3R1cmUKCllvdSBtYXkgaGF2ZSBub3RpY2VkIHRoZSBzaW1pbGFyaXRpZXMgYmV0d2VlbiB0aGUgSlNPTiBleGFtcGxlIGFib3ZlIGFuZCBYTUwuClhNTCBoYXMgZWxlbWVudHMsIGF0dHJpYnV0ZXMsIGFuZCBjb250ZW50LiBJdCB3b3VsZCBiZSBhIGdvb2QgcXVlc3Rpb24gdG8gYXNrIGlmIHdlIHNpbXBseSB0dXJuZWQgSlNPTiBpbnRvIFhNTC4KCkFwaURPTSBpcyBhY3R1YWxseSBtZWFudCB0byBwcm92aWRlIHRoZXNlIGNyb3NzLWZvcm1hdCBzaW1pbGFyaXRpZXMuIEl0IG1lYW5zIHRoYXQgYSBKU09OIHN0cnVjdHVyZQptYXkgYmUgcmVmcmFjdGVkIGFuZCBjb252ZXJ0ZWQgdG8gWE1MLiBJdCBhbHNvIG1lYW5zIGFuIFhNTCBkb2N1bWVudCBtYXkgYmUgY29udmVydGVkIGludG8gQXBpRE9NLgpUaGlzIGFsc28gZ29lcyBmb3IgWUFNTCwgSFRNTCwgQ1NWLCBhbmQgbWFueSBvdGhlciBmb3JtYXRzLiBBcGlET00gaXMgYSB3YXkgdG8gdXNlIHJlZnJhY3RpbmcgdG8gdW5pZnkgdGhlc2Ugc3RydWN0dXJlcy4KCkxldCdzIGxvb2sgYXQgYW5vdGhlciBleGFtcGxlLCB0aGlzIHRpbWUgcmVmYWN0aW5nIFhNTCB3aXRoIEFwaURPTS4KCmBgYHhtbAo8cGVyc29uIG5hbWU9IkpvaG4gRG9lIiBlbWFpbD0iam9obkBleGFtcGxlLmNvbSI+PC9wZXJzb24+CmBgYAoKVGhpcyBleGFtcGxlIGluIHJlZnJhY3RlZCBmb3JtIHdvdWxkIGxvb2sgbGlrZSB0aGUgZm9sbG93aW5nIHNuaXBwZXQuIE5vdGljZSB0aGF0IHdlJ3JlIHVzaW5nIGF0dHJpYnV0ZXMgaW4gcmVzdWx0aW5nIEFwaURPTSBzdHJ1Y3R1cmUuCgpgYGBqc29uCnsKICAiZWxlbWVudCI6ICJwZXJzb24iLAogICJhdHRyaWJ1dGVzIjogewogICAgIm5hbWUiOiB7CiAgICAgICJlbGVtZW50IjogInN0cmluZyIsCiAgICAgICJjb250ZW50IjogIkpvaG4gRG9lIgogICAgfSwKICAgICJlbWFpbCI6IHsKICAgICAgImVsZW1lbnQiOiAic3RyaW5nIiwKICAgICAgImNvbnRlbnQiOiAiam9obkBleGFtcGxlLmNvbSIKICAgIH0KICB9Cn0KYGBgCgpTaW5jZSB3ZSBjYW4gZ28gYmFjayBhbmQgZm9ydGggYmV0d2VlbiBKU09OLCBZQU1MLCBYTUwsIGFuZCBvdGhlciBmb3JtYXRzLCB3ZSBhcmUgbm93IGFibGUgdG8gdXNlIHNhbWUgdG9vbHNldCBhY3Jvc3MgdGhlIGRpZmZlcmVudCBmb3JtYXRzLgpUaGF0IG1lYW5zIHdlIGNvdWxkIHVzZSBYU0xUIHRvIHRyYW5zZm9ybSBKU09OIGRvY3VtZW50cy4KCiMjIyBBcyBhIHF1ZXJ5YWJsZSBzdHJ1Y3R1cmUKCkFwaURPTSBpcyBtZWFudCB0byBmcmVlIHVzIGZyb20gdGhlIHN0cnVjdHVyZSBvZiBvdXIgZG9jdW1lbnRzLCBzaW1pbGFyIHRvIGhvdyBYTUwgZG9lcyB3aXRoIHRoaW5ncwpsaWtlIFhQQVRIIG9yIHRoZSBET00uIEl0IG1lYW5zIHdlIGNhbiBub3cgcXVlcnkgSlNPTiBkb2N1bWVudHMgYXMgaWYgdGhlcmUgd2FzIGFuIHVuZGVybHlpbmcgRE9NLAp3aGljaCBkZWNvdXBsZXMgb3VyIFNESyBmcm9tIG91ciBzdHJ1Y3R1cmUgYW5kIG91ciBzdHJ1Y3R1cmUgZnJvbSBvdXIgZGF0YS4KCiMjIyBBcGlET00gc3RhZ2VzCgpUaGVyZSBhcmUgdGhyZWUgc3RhZ2VzIHRvIEFwaURPTQoKLSBQYXJzZSBzdGFnZQotIFJlZnJhY3Qgc3RhZ2UKLSBHZW5lcmF0ZSBzdGFnZQoKCiMjIyMgUGFyc2Ugc3RhZ2UKClRoZSBwYXJzZSBzdGFnZSB0YWtlcyBKU09OIHN0cmluZyBhbmQgcHJvZHVjZXMgQXBpRE9NIHN0cnVjdHVyZSB1c2luZyB0aGUgYmFzZSBBcGlET00gbmFtZXNwYWNlLiBUaGVyZSBhcmUgdHdvIHBoYXNlcyBvZiBwYXJzaW5nOgoKLSBMZXhpY2FsIEFuYWx5c2lzIHBoYXNlCi0gU3ludGFjdGljIEFuYWx5c2lzIHBoYXNlCgoKIyMjIyMgTGV4aWNhbCBBbmFseXNpcyBwaGFzZQoKTGV4aWNhbCBBbmFseXNpcyB3aWxsIHRha2UgYSBKU09OIHN0cmluZyBhbmQgdHVybiBpdCBpbnRvIGEgc3RyZWFtIG9mIHRva2Vucy4gdHJlZS1zaXR0ZXIgLyB3ZWItdHJlZS1zaXR0ZXIgaXMgdXNlZAphcyBhbiB1bmRlcmx5aW5nIGxleGljYWwgYW5hbHl6ZXIuCgojIyMjIyBTeW50YWN0aWMgQW5hbHlzaXMKClN5bnRhY3RpYyBBbmFseXNpcyB3aWxsIHRha2UgYSBzdHJlYW0gb2YgdG9rZW5zIGFuZCB0dXJuIGl0IGludG8gYW4gQXBpRE9NIHJlcHJlc2VudGF0aW9uLgpDU1QgcHJvZHVjZWQgYnkgbGV4aWNhbCBhbmFseXNpcyBpcyBzeW50YWN0aWNhbGx5IGFuYWx5emVkLCBhbmQgQXBpRE9NIHN0cnVjdHVyZSB1c2luZyBiYXNlIChnZW5lcmljKSBBcGlET00gbmFtZXNwYWNlIGlzIHByb2R1Y2VkLgpTeW50YWN0aWMgYW5hbHlzaXMgY2FuIGZ1cnRoZXIgYmUgZGlyZWN0IG9yIGluZGlyZWN0LiBKU09OIHBhcnNlciBoYXMgYm90aCBkaXJlY3QgYW5kIGluZGlyZWN0IHN5bnRhY3RpY2FsIGFuYWx5emVycywKYnV0IFlBTUwgcGFyc2VyIG9ubHkgaGFzIGFuIGluZGlyZWN0IG9uZS4KCiMjIyMjIyBEaXJlY3QgU3ludGFjdGljYWwgYW5hbHlzaXMKClRoaXMgYW5hbHlzaXMgZGlyZWN0bHkgdHVybnMgdHJlZS1zaXR0ZXIgQ1NUIGludG8gQXBpRE9NLiBTaW5nbGUgdHJhdmVyc2FsIGlzIHJlcXVpcmVkLCB3aGljaCBtYWtlcyBpdCBzdXBlciBwZXJmb3JtYW50LAphbmQgaXQncyB0aGUgZGVmYXVsdCBhbmFseXNpcyB1c2VkLgoKIyMjIyMjIEluZGlyZWN0IFN5bnRhY3RpYyBhbmFseXNpcwoKVGhpcyBhbmFseXNpcyB0dXJucyB0cmVlcy1zaXR0ZXIgQ1NUIGludG8gSlNPTiBBU1QgcmVwcmVzZW50YXRpb24uIFRoZW4gSlNPTiBBU1QgaXMgdHVybmVkIGludG8gQXBpRE9NLgpUd28gdHJhdmVyc2FscyBhcmUgcmVxdWlyZWQsIHdoaWNoIG1ha2VzIHRoZSBpbmRpcmVjdCBhbmFseXNpcyBsZXNzIHBlcmZvcm1hbnQgdGhhbiB0aGUgZGlyZWN0IG9uZS4KVGhvdWdoIGxlc3MgcGVyZm9ybWFudCwgaGF2aW5nIEpTT04gQVNUIHJlcHJlc2VudGF0aW9uIGFsbG93cyB1cyB0byBkbyBmdXJ0aGVyIGNvbXBsZXggYW5hbHlzaXMuCgojIyMjIFJlZnJhY3Qgc3RhZ2UKClRoZSByZWZyYWN0IHN0YWdlIHRha2VzIGEgZ2VuZXJpYyBBcGlET00gc3RydWN0dXJlIChiYXNlIG5hbWVzcGFjZSkgYW5kIHRyYXZlcnNlcyB0aHJvdWdoIGl0LCBhZGRpbmcsIHVwZGF0aW5nLAphbmQgcmVtb3Zpbmcgbm9kZXMgYXMgaXQgZ29lcyBhbG9uZyBhbmQgdHVybmluZyBpdCBpbnRvIHNlbWFudGljIEFwaURPTSBzdHJ1Y3R1cmUgKGxpa2UgT3BlbkFQSSBvciBBc3luY0FQSSkuClRoaXMgaXMgYnkgZmFyIHRoZSBtb3N0IGNvbXBsZXggcGFydCBvZiBBcGlET00uIFRoaXMgaXMgd2hlcmUgcGx1Z2lucyBvcGVyYXRlLgpJZiBwbHVnaW5zIGFyZSB1c2VkLCBhZGRpdGlvbmFsIHRyYXZlcnNhbCBpcyBjdXJyZW50bHkgbmVlZGVkLgoKIyMjIyBHZW5lcmF0ZSBzdGFnZQoKV2UgY2FuIGN1cnJlbnRseSBvbmx5IGdlbmVyYXRlIEpTT04gZG9jdW1lbnRzIGZyb20gdGhlIEFwaURPTSBzdHJ1Y3R1cmUuCkl0IGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSBvcmlnaW5hbCBkb2N1bWVudCB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIGluIEpTT04gb3IgWUFNTC4KR2VuZXJhdGVkIEpTT04gZG9jdW1lbnRlZCB3aWxsIGhhdmUgZXhhY3RseSB0aGUgc2FtZSBzZW1hbnRpYyBpbmZvcm1hdGlvbiBhcyB0aGUgb3JpZ2luYWwgb25lLApidXQgdGhlIHN0eWxlIGluZm9ybWF0aW9uIGZyb20gdGhlIG9yaWdpbmFsIGRvY3VtZW50IGlzIG5vdCBwcmVzZXJ2ZWQgKHdoaXRlIHNwYWNlcy9jb21tZW50cywgZXRjLi4pLgoKLS0tCgpIYXZpbmcgc2FpZCB0aGF0LCB0aGlzIGlzIGhvdyBKU09OIE9wZW5BUEkgMy4xIGRvY3VtZW50IGdldHMgdHJhbnNmb3JtZWQgaW50byBBcGlET006CgoKKip3aXRoIGRpcmVjdCBzeW50YWN0aWMgYW5hbHlzaXMgKHJlcXVpcmVzIDIgdHJhdmVyc2FscykqKgpgYGAKSlNPTiBzdHJpbmcgLT4gdHJlZS1zaXR0ZXIgQ1NUIC0+ICBnZW5lcmljIEFwaURPTSAtPiBPcGVuQVBJIDMuMSBBcGlET00KYGBgCgoqKndpdGggaW5kaXJlY3Qgc3ludGFjdGljIGFuYWx5c2lzIChyZXF1aXJlcyAzIHRyYXZlcnNhbHMpKioKYGBgCkpTT04gc3RyaW5nIC0+IHRyZWUtc2l0dGVyIENTVCAtPiBKU09OIEFTVCAtPiBnZW5lcmljIEFwaURPTSAtPiBPcGVuQVBJIDMuMSBBcGlET00KYGBgCgoqKndpdGggZGlyZWN0IHN5bnRhY3RpYyBhbmFseXNpcyBhbmQgYWRkaXRpb25hbCBwbHVnaW5zIChyZXF1aXJlcyAzIHRyYXZlcnNhbCkqKgpgYGAKSlNPTiBzdHJpbmcgLT4gdHJlZS1zaXR0ZXIgQ1NUIC0+IGdlbmVyaWMgQXBpRE9NIC0+IE9wZW5BUEkgMy4xIEFwaURPTSAtPiBwbHVnaW5zIC0+IE9wZW5BUEkgMy4xIEFwaURPTQpgYGAKLS0tCgpUaGlzIHZlcnkgY2xvc2VseSByZWZsZWN0cyBob3cgW0JhYmVsXShodHRwczovL2dpdGh1Yi5jb20vYmFiZWwvYmFiZWwpIHdvcmtzIChbQmFiZWwgUGx1Z2luIEhhbmRib29rXShodHRwczovL2dpdGh1Yi5jb20vamFtaWVidWlsZHMvYmFiZWwtaGFuZGJvb2svYmxvYi9tYXN0ZXIvdHJhbnNsYXRpb25zL2VuL3BsdWdpbi1oYW5kYm9vay5tZCkpLgpUaGVpciB0cmFuc2Zvcm0gcGhhc2UgaXMgb3VyIHJlZnJhY3QgcGhhc2UuIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCB3aGVuIHBsdWdpbnMgYXJlIGludm9sdmVkLCBvdXIgdHJhbnNmb3JtIHBoYXNlCnJlcXVpcmVzIDIgdHJhdmVyc2FscyBpbnN0ZWFkIG9mIGEgc2luZ2xlIG9uZS4gV2UgY2FuIGZpbmQgYSB3YXkgaW4gdGhlIGZ1dHVyZSBob3cgdG8gZm9sZCB0aGVzZSAyIHRyYXZlcnNhbHMgaW50byBhIHNpbmdsZSBvbmUuCgojIyBMaWNlbnNlCgpBcGlET00gaXMgbGljZW5zZWQgdW5kZXIgW0FwYWNoZSAyLjAgbGljZW5zZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL2FwaWRvbS9ibG9iL21haW4vTElDRU5TRVMvQXBhY2hlLTIuMC50eHQpLgpBcGlET00gY29tZXMgd2l0aCBhbiBleHBsaWNpdCBbTk9USUNFXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvYXBpZG9tL2Jsb2IvbWFpbi9OT1RJQ0UpIGZpbGUKY29udGFpbmluZyBhZGRpdGlvbmFsIGxlZ2FsIG5vdGljZXMgYW5kIGluZm9ybWF0aW9uLgoKVGhpcyBwcm9qZWN0IHVzZXMgW1JFVVNFIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vcmV1c2Uuc29mdHdhcmUvc3BlYy8pIHRoYXQgZGVmaW5lcyBhIHN0YW5kYXJkaXplZCBtZXRob2QKZm9yIGRlY2xhcmluZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2luZyBmb3Igc29mdHdhcmUgcHJvamVjdHMuCgojIyBTb2Z0d2FyZSBCaWxsIE9mIE1hdGVyaWFscyAoU0JPTSkKClNvZnR3YXJlIEJpbGwgT2YgbWF0ZXJpYWxzIGlzIGF2YWlsYWJsZSBpbiB0aGlzIHJlcG9zaXRvcnkgW2RlcGVuZGVuY3kgZ3JhcGhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9hcGlkb20vbmV0d29yay9kZXBlbmRlbmNpZXMpLgpDbGljayBvbiBgRXhwb3J0IFNCT01gIGJ1dHRvbiB0byBkb3dubG9hZCB0aGUgU0JPTSBpbiBbU1BEWCBmb3JtYXRdKGh0dHBzOi8vc3BkeC5kZXYvKS4KCg== readmeEtag: '"35dd7aa6d0f0cef4ac65dbab1e1a37a259649016"' readmeLastModified: Sat, 17 Aug 2024 00:02:07 GMT repositoryId: 249737066 description: Semantic parser for API specifications created: '2020-03-24T14:55:51Z' updated: '2024-09-05T23:10:52Z' language: TypeScript archived: false stars: 68 watchers: 11 forks: 17 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 repoEtag: '"5d9bdc378426577a6f6f14e3f07792e6b7a7df649fa35aed14914710c4bc9877"' repoLastModified: Thu, 05 Sep 2024 23:10:52 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/vitalybibikov/azureextensions.swashbuckle v3: true repositoryMetadata: base64Readme: >- CiMgQXp1cmVFeHRlbnNpb25zLlN3YXNoYnVja2xlIHY0LjAuMAoKIyMjIChTZWFyY2hpbmcgZm9yIGNvbGxhYm9yYXRvcnMhKQoKT3BlbkFQSSAyLzMgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gU3dhc2hidWNrbGUoU3dhZ2dlcikgdG9vbGluZyBmb3IgQVBJJ3MgYnVpbHQgd2l0aCBBenVyZSBGdW5jdGlvbnMgCgpUaGlzIHByb2R1Y3QgYWltcyB0byBlYXNpbHkgcHJvdmlkZSBTd2FnZ2VyIGFuZCBTd2FnZ2VyIFVJIG9mIEFQSXMgY3JlYXRlZCBpbiBBenVyZSBGdW5jdGlvbnMgdXNpbmcgaXNvbGF0ZWQgd29ya2VyIG1vZGVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KNC4wLjQKLSBVcGRhdGVkIHRvIGxhdGVzdCBkZXBlbmRlbmNpZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKNC4wLjMKYnkgQE1pa2VIb29rVHJhbnNwYXJpdHkKQWRkZWQgQ2xpZW50U2VjcmV0LCBVc2VCYXNpY0F1dGhlbnRpY2F0aW9uV2l0aEFjY2Vzc0NvZGVHcmFudAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjQuMC4yCi0gVXBkYXRlZCB0byBsYXRlc3QgU3dhZ2dlciA2LjUuMQotIEZpeGVzICYgSW1wcm92ZW1lbnRzCi0gQWRkZWQgc3ltYm9scyBwYWNrYWdlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KNC4wLjEKCi0gRml4ZWQgc29tZSBtaW5vciBpc3N1ZXMKLSBVcGRhdGVkIHRvIG5ldyBsYW5ndWFnZSBmZWF0dXJlcwotIEFkZGVkIGV4Y2VwdGlvbiBoYW5kbGluZyBhbmQgbnVsbGFiaWxpdHkKLSBEb29jdW1lbmF0aW9uIGZpeGVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KNC4wLjAtYmV0YQotIGp1c3QgcmVtZWJlcmluZyB3aGF0IHRoZSBoZWNrIGlzIGdvaW5nIG9tIGhlcmUKLSBVcGRhdGVkIHRvIHY0IEZ1bmN0aW9ucwotIFVwZGF0ZWQgdG8gLk5FVCA4Ci0gVXBkYXRlZCB0byBpc29sYXRlZCB3b3JrZXIgbW9kZWwgKGZyb20gbm93IG9uIGl0IGlzIGdvaW5nIHRvIGJlIHRoZSBvbmx5IG9uZSB0aGF0IGlzIHN1cHBvcnRlZCwgYXMgaW5wcm9jZXNzIGlzIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQpCi0gVXBkYXRlZCB0byBVSSB2NS4xNy4zCi0gVXBkYXRlZCB0byBTd2FnZ2VyIDUuNi41Ci0gVXBkYXRlZCBkb2NzCi0gQ29uc2lkZXJpbmcgcmVtb3Zpbmcgc3VwcG9ydCBvZiBOZXd0b25Kc29uCgogIGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9BenVyZUV4dGVuc2lvbnMuU3dhc2hidWNrbGUvNC4wLjAtYmV0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMy4zLjEtYmV0YQoKLSAjNjQgU3VwcG9ydCBmb3IgYXV0aG9yaXphdGlvbiBjb25maWd1cmF0aW9uCi0gIzYwIENvbnNvbGlkYXRlZCBleHRlbnNpb25zIGFuZCBhZGRlZCBvbmUgdG8gc3VwcG9ydCAubmV0IDUKLSBVcGRhdGVkIGRvY3MKLSBVcGRhdGVkIGpzL2h0bWwvY3NzIGxpYnMKLSBTb21lIGNsYXNzZWQgbWFkZSBwdWJsaWMgdG8gc3VwcG9ydCAzLXBhcnR5IElvQy4KLSBGaXhlZCBzZXZlcmFsIGlzc3VlcywgcmVsYXRlZCB0byB2ZXJzaW9uaW5nIGFuZCBYTUwgY29tbWVudHMuCi0gVXBkYXRlZCB0byBVSSB2My4zNy4yCi0gVXBkYXRlZCB0byBTd2FnZ2VyIDUuNi4zCi0gVXBkYXRlZCBkb2N1bWVudGF0aW9uCi0gQWJpbGl0eSB0byBjcmVhdGUgbXVsdGlwbGUgdmVyc2lvbnMgb2YgZG9jdW1lbnRzLCBleGFtcGxlIGFkZGVkLgotIEFkZGVkIGV4YW1wbGVzIG9mIGEgY3VzdG9tIGZpbHRlciwgaW1wcm92ZWQgdGVzdCBhcHBsaWNhdGlvbgoKaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0F6dXJlRXh0ZW5zaW9ucy5Td2FzaGJ1Y2tsZS80LjAuMC1iZXRhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjMuMS42CgpodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvQXp1cmVFeHRlbnNpb25zLlN3YXNoYnVja2xlLzMuMS42CgpGaXhlZCAjOCwgIzkKClVwZGF0ZWQgdG8gVUkgdjMuMjUuMQoKVXBkYXRlZCB0byBTd2FnZ2VyIDUuNC4xCgpGaXhlZCBiYXNlIHVybCBmb3IgU3dhZ2dlciBVSQoKKipCcmVha2luZzoqKgoKT3B0aW9uIGFuZCBEb2N1bWVudE9wdGlvbiByZW5hbWVkIHRvIFN3YWdnZXJEb2NPcHRpb25zIGFuZCBTd2FnZ2VyRG9jdW1lbnQgcmVzcGVjdGl2bHkKYW5kIG1vdmVkIHRvIEF6dXJlRnVuY3Rpb25zLkV4dGVuc2lvbnMuU3dhc2hidWNrbGUuU2V0dGluZ3MgbmFtZXNwYWNlCgoqKlByb3BlcnRpZXMgcmVuYW1lZDoqKgoKUHJlcGFuZE9wZXJhdGlvbldpdGhSb3V0ZVByZWZpeCA9PiBQcmVwZW5kT3BlcmF0aW9uV2l0aFJvdXRlUHJlZml4CgpBZGRDb2RlUGFyYW1hdGVyID0+IEFkZENvZGVQYXJhbWV0ZXIKCioqUHJvcGVydGllcyBhZGRlZDoqKgoKQWRkZWQgYWJpbGl0eSB0byBjb25maWd1cmUgU3dhZ2dlckdlbiB2aWEgQ29uZmlndXJlU3dhZ2dlckdlbgoKQWRkZWQgYWJpbGl0eSB0byBvdmVycmlkZSBkZWZhdWx0IHVybCB0byBTd2FnZ2VyIGpzb24gZG9jdW1lbnQgKGluIGNhc2Ugb2YgcmV2ZXJzZSBwcm94eS9nYXRld2F5L2luZ3Jlc3MpIGFyZSB1c2VkLgoKCioqU2l6ZToqKgoKQWxsIHRoZSByZXNvdXJjZXMgYXJlIHBsYWNlcyBpbiB6aXAgYXJjaGl2ZSBpbiBvcmRlciB0byBkZWNyZWFzZSByZXN1bHQgZGxsIHNpemUgYnkgMzM4JSAoZnJvbSAxLjU5NGtiIHRvIDQ3MmtiKQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMy4wLjAKLSBVcGRhdGVkIHRvIHYzIEZ1bmN0aW9ucwotIFVwZGF0ZWQgdG8gNS4wLjAgU3dhc2hidWNrbGUuQXNwTmV0Q29yZSBudWdldHMKLSBNZXJnZWQgUFJzIHRvIGZpeCBpc3N1ZXMgcmVsYXRlZCB0byBSZXF1ZXN0Qm9keVR5cGUgYW5kIElnbm9yZSBhdHRyaWJ1dGUKLSBhcHBsaWNhdGlvbi9qc29uIGlzIGEgZGVmYXVsdCBtZWRpYSB0eXBlLgoKCgojIFNhbXBsZQoKaHR0cHM6Ly9naXRodWIuY29tL3ZpdGFseWJpYmlrb3YvYXp1cmUtZnVuY3Rpb25zLWV4dGVuc2lvbnMtc3dhc2hidWNrbGUvdHJlZS9tYXN0ZXIvc3JjL0F6dXJlRnVuY3Rpb25zLkV4dGVuc2lvbnMuU3dhc2hidWNrbGUvVGVzdEZ1bmN0aW9uCgojIFVwZGF0ZQoKVmVyc2lvbiAzLjAuMAoKCiMgR2V0dGluZyBTdGFydGVkCgoxLiBJbnN0YWxsIHRoZSBzdGFuZGFyZCBOdWdldCBwYWNrYWdlIGludG8geW91ciBBenVyZSBGdW5jdGlvbnMgYXBwbGljYXRpb24uCgpgYGAKUGFja2FnZSBNYW5hZ2VyIDogSW5zdGFsbC1QYWNrYWdlIEF6dXJlRXh0ZW5zaW9ucy5Td2FzaGJ1Y2tsZQpDTEkgOiBkb3RuZXQgYWRkIHBhY2thZ2UgQXp1cmVFeHRlbnNpb25zLlN3YXNoYnVja2xlCmBgYAoKMi4gQWRkIFByb2dyYW0uY3MgY2xhc3Mgb24geW91ciBGdW5jdGlvbnMgcHJvamVjdC4KCiEhISBOb3cgeW91IG5lZWQgdG8gc3BlY2lmeSBpbiBvcHRpb24gdGhlIFJvdXRlUHJlZml4LgoKICAgICAgICAgICAgb3B0cy5Sb3V0ZVByZWZpeCA9ICJhcGkiOwoKCmBgYGNzaGFycAp1c2luZyBTeXN0ZW07CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwp1c2luZyBNaWNyb3NvZnQuRXh0ZW5zaW9ucy5Ib3N0aW5nOwp1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsKdXNpbmcgQXp1cmVGdW5jdGlvbnMuRXh0ZW5zaW9ucy5Td2FzaGJ1Y2tsZS5TZXR0aW5nczsKdXNpbmcgTWljcm9zb2Z0LkV4dGVuc2lvbnMuRGVwZW5kZW5jeUluamVjdGlvbjsKdXNpbmcgTWljcm9zb2Z0Lk9wZW5BcGk7CnVzaW5nIE1pY3Jvc29mdC5PcGVuQXBpLk1vZGVsczsKdXNpbmcgQXp1cmVGdW5jdGlvbnMuRXh0ZW5zaW9ucy5Td2FzaGJ1Y2tsZTsKdXNpbmcgU3dhc2hidWNrbGUuQXNwTmV0Q29yZS5Td2FnZ2VyR2VuOwoKdmFyIGhvc3QgPSBuZXcgSG9zdEJ1aWxkZXIoKQogICAgLkNvbmZpZ3VyZVNlcnZpY2VzKChob3N0Q29udGV4dCwgc2VydmljZXMpID0+CiAgICB7CiAgICAgICAgLy9SZWdpc3RlciB0aGUgZXh0ZW5zaW9uCiAgICAgICAgc2VydmljZXMuQWRkU3dhc2hCdWNrbGUob3B0cyA9PgogICAgICAgIHsKICAgICAgICAgICAgLy8gSWYgeW91IHdhbnQgdG8gYWRkIE5ld3RvbnNvZnQgc3VwcG9ydCBpbnNlcnQgbmV4dCBsaW5lCiAgICAgICAgICAgIC8vIG9wdHMuQWRkTmV3dG9uc29mdFN1cHBvcnQgPSB0cnVlOwogICAgICAgICAgICBvcHRzLlJvdXRlUHJlZml4ID0gImFwaSI7CiAgICAgICAgICAgIG9wdHMuU3BlY1ZlcnNpb24gPSBPcGVuQXBpU3BlY1ZlcnNpb24uT3BlbkFwaTNfMDsKICAgICAgICAgICAgb3B0cy5BZGRDb2RlUGFyYW1ldGVyID0gdHJ1ZTsKICAgICAgICAgICAgb3B0cy5QcmVwZW5kT3BlcmF0aW9uV2l0aFJvdXRlUHJlZml4ID0gdHJ1ZTsKICAgICAgICAgICAgb3B0cy5YbWxQYXRoID0gIlRlc3RGdW5jdGlvbi54bWwiOwogICAgICAgICAgICBvcHRzLkRvY3VtZW50cyA9IG5ld1tdCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5ldyBTd2FnZ2VyRG9jdW1lbnQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lID0gInYxIiwKICAgICAgICAgICAgICAgICAgICBUaXRsZSA9ICJTd2FnZ2VyIGRvY3VtZW50IiwKICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9ICJTd2FnZ2VyIHRlc3QgZG9jdW1lbnQiLAogICAgICAgICAgICAgICAgICAgIFZlcnNpb24gPSAidjIiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbmV3IFN3YWdnZXJEb2N1bWVudAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgPSAidjIiLAogICAgICAgICAgICAgICAgICAgIFRpdGxlID0gIlN3YWdnZXIgZG9jdW1lbnQgMiIsCiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPSAiU3dhZ2dlciB0ZXN0IGRvY3VtZW50IDIiLAogICAgICAgICAgICAgICAgICAgIFZlcnNpb24gPSAidjIiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIG9wdHMuVGl0bGUgPSAiU3dhZ2dlciBUZXN0IjsKICAgICAgICAgICAgLy9vcHRzLk92ZXJyaWRlblBhdGhUb1N3YWdnZXJKc29uID0gbmV3IFVyaSgiaHR0cDovL2xvY2FsaG9zdDo3MDcxL2FwaS9Td2FnZ2VyL2pzb24iKTsKICAgICAgICAgICAgb3B0cy5Db25maWd1cmVTd2FnZ2VyR2VuID0geCA9PgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvL2N1c3RvbSBvcGVyYXRpb24gZXhhbXBsZQogICAgICAgICAgICAgICAgeC5DdXN0b21PcGVyYXRpb25JZHMoYXBpRGVzYyA9PiBhcGlEZXNjLlRyeUdldE1ldGhvZEluZm8ob3V0IE1ldGhvZEluZm8gbWV0aG9kSW5mbykKICAgICAgICAgICAgICAgICAgICA/IG1ldGhvZEluZm8uTmFtZQogICAgICAgICAgICAgICAgICAgIDogbmV3IEd1aWQoKS5Ub1N0cmluZygpKTsKCiAgICAgICAgICAgICAgICAvL2N1c3RvbSBmaWx0ZXIgZXhhbXBsZQogICAgICAgICAgICAgICAgLy94LkRvY3VtZW50RmlsdGVyPFJlbW92ZVNjaGVtYXNGaWx0ZXI+KCk7CgogICAgICAgICAgICAgICAgLy9vYXV0aDIKICAgICAgICAgICAgICAgIHguQWRkU2VjdXJpdHlEZWZpbml0aW9uKCJvYXV0aDIiLAogICAgICAgICAgICAgICAgICAgIG5ldyBPcGVuQXBpU2VjdXJpdHlTY2hlbWUKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgPSBTZWN1cml0eVNjaGVtZVR5cGUuT0F1dGgyLAogICAgICAgICAgICAgICAgICAgICAgICBGbG93cyA9IG5ldyBPcGVuQXBpT0F1dGhGbG93cwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBsaWNpdCA9IG5ldyBPcGVuQXBpT0F1dGhGbG93CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblVybCA9IG5ldyBVcmkoImh0dHBzOi8veW91ci5pZHNlcnZlci5uZXQvY29ubmVjdC9hdXRob3JpemUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY29wZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgImFwaS5yZWFkIiwgIkFjY2VzcyByZWFkIG9wZXJhdGlvbnMiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgImFwaS53cml0ZSIsICJBY2Nlc3Mgd3JpdGUgb3BlcmF0aW9ucyIgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgLy8gc2V0IHVwIHlvdXIgY2xpZW50IElEIGlmIHlvdXIgQVBJIGlzIHByb3RlY3RlZAogICAgICAgICAgICBvcHRzLkNsaWVudElkID0gInlvdXIuY2xpZW50LmlkIjsKICAgICAgICAgICAgb3B0cy5PQXV0aDJSZWRpcmVjdFBhdGggPSAiaHR0cDovL2xvY2FsaG9zdDo3MDcxL2FwaS9zd2FnZ2VyL29hdXRoMi1yZWRpcmVjdCI7CiAgICAgICAgfSk7CiAgICB9KQogICAgLkJ1aWxkKCk7Cgpob3N0LlJ1bigpOwoKYGBgCgozLiBBZGQgc3dhZ2dlciBhbmQgc3dhZ2dlciB1aSBlbmRwb2ludCBmdW5jdGlvbnMgb24geW91ciBwcm9qZWN0LgoKYGBgY3NoYXJwCiAgICBwdWJsaWMgY2xhc3MgU3dhZ2dlckNvbnRyb2xsZXIKICAgIHsKICAgICAgICBwcml2YXRlIHJlYWRvbmx5IElTd2FzaEJ1Y2tsZUNsaWVudCBzd2FzaEJ1Y2tsZUNsaWVudDsKCiAgICAgICAgcHVibGljIFN3YWdnZXJDb250cm9sbGVyKElTd2FzaEJ1Y2tsZUNsaWVudCBzd2FzaEJ1Y2tsZUNsaWVudCkKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMuc3dhc2hCdWNrbGVDbGllbnQgPSBzd2FzaEJ1Y2tsZUNsaWVudDsKICAgICAgICB9CgogICAgICAgIFtTd2FnZ2VySWdub3JlXQogICAgICAgIFtGdW5jdGlvbigiU3dhZ2dlckpzb24iKV0KICAgICAgICBwdWJsaWMgYXN5bmMgVGFzazxIdHRwUmVzcG9uc2VEYXRhPiBTd2FnZ2VySnNvbigKICAgICAgICAgICAgW0h0dHBUcmlnZ2VyKEF1dGhvcml6YXRpb25MZXZlbC5GdW5jdGlvbiwgImdldCIsIFJvdXRlID0gIlN3YWdnZXIvanNvbiIpXQogICAgICAgICAgICBIdHRwUmVxdWVzdERhdGEgIHJlcSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnN3YXNoQnVja2xlQ2xpZW50LkNyZWF0ZVN3YWdnZXJKc29uRG9jdW1lbnRSZXNwb25zZShyZXEpOwogICAgICAgIH0KCiAgICAgICAgW1N3YWdnZXJJZ25vcmVdCiAgICAgICAgW0Z1bmN0aW9uKCJTd2FnZ2VyWWFtbCIpXQogICAgICAgIHB1YmxpYyBhc3luYyBUYXNrPEh0dHBSZXNwb25zZURhdGE+IFN3YWdnZXJZYW1sKAogICAgICAgICAgICBbSHR0cFRyaWdnZXIoQXV0aG9yaXphdGlvbkxldmVsLkZ1bmN0aW9uLCAiZ2V0IiwgUm91dGUgPSAiU3dhZ2dlci95YW1sIildCiAgICAgICAgICAgIEh0dHBSZXF1ZXN0RGF0YSByZXEpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zd2FzaEJ1Y2tsZUNsaWVudC5DcmVhdGVTd2FnZ2VyWWFtbERvY3VtZW50UmVzcG9uc2UocmVxKTsKICAgICAgICB9CgogICAgICAgIFtTd2FnZ2VySWdub3JlXQogICAgICAgIFtGdW5jdGlvbigiU3dhZ2dlclVpIildCiAgICAgICAgcHVibGljIGFzeW5jIFRhc2s8SHR0cFJlc3BvbnNlRGF0YT4gU3dhZ2dlclVpKAogICAgICAgICAgICBbSHR0cFRyaWdnZXIoQXV0aG9yaXphdGlvbkxldmVsLkZ1bmN0aW9uLCAiZ2V0IiwgUm91dGUgPSAiU3dhZ2dlci91aSIpXQogICAgICAgICAgICBIdHRwUmVxdWVzdERhdGEgcmVxKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc3dhc2hCdWNrbGVDbGllbnQuQ3JlYXRlU3dhZ2dlclVJUmVzcG9uc2UocmVxLCAic3dhZ2dlci9qc29uIik7CiAgICAgICAgfQoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFRoaXMgaXMgb25seSBuZWVkZWQgZm9yIE9BdXRoMiBjbGllbnQuIFRoaXMgcmVkaXJlY3RpbmcgZG9jdW1lbnQgaXMgbm9ybWFsbHkgc2VydmVkCiAgICAgICAgLy8vIGFzIGEgc3RhdGljIGNvbnRlbnQuIEZ1bmN0aW9ucyBkb24ndCBwcm92aWRlIHRoaXMgb3V0IG9mIHRoZSBib3gsIHNvIHdlIHNlcnZlIGl0IGhlcmUuCiAgICAgICAgLy8vIERvbid0IGZvcmdldCB0byBzZXQgT0F1dGgyUmVkaXJlY3RQYXRoIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHJlZmxlY3QgdGhpcyByb3V0ZS4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icmVxIj48L3BhcmFtPgogICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3dhc2hCdWNrbGVDbGllbnQiPjwvcGFyYW0+CiAgICAgICAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz4KICAgICAgICBbU3dhZ2dlcklnbm9yZV0KICAgICAgICBbRnVuY3Rpb24oIlN3YWdnZXJPQXV0aDJSZWRpcmVjdCIpXQogICAgICAgIHB1YmxpYyBhc3luYyBUYXNrPEh0dHBSZXNwb25zZURhdGE+IFN3YWdnZXJPQXV0aDJSZWRpcmVjdCgKICAgICAgICAgICAgW0h0dHBUcmlnZ2VyKEF1dGhvcml6YXRpb25MZXZlbC5GdW5jdGlvbiwgImdldCIsIFJvdXRlID0gInN3YWdnZXIvb2F1dGgyLXJlZGlyZWN0IildCiAgICAgICAgICAgIEh0dHBSZXF1ZXN0RGF0YSByZXEpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zd2FzaEJ1Y2tsZUNsaWVudC5DcmVhdGVTd2FnZ2VyT0F1dGgyUmVkaXJlY3RSZXNwb25zZShyZXEpOwogICAgICAgIH0KICAgIH0KYGBgCgo0LiBPcGVuIFN3YWdnZXIgVUkgVVJMIGluIHlvdXIgYnJvd3Nlci4KCklmIHlvdSBkb2VzIG5vdCBjaGFuZ2VkIGFwaSByb3V0ZSBwcmVmaXguIFN3YWdnZXIgVUkgVVJMIGlzIGh0dHBzOi8vaG9zdG5hbWUvYXBpL3N3YWdnZXIvdWkgLgoKIyMgT3B0aW9ucwoKIyMjIEluY2x1ZGUgWG1sIGRvY3VtZW50IGZpbGUKCkF6dXJlRnVuY3Rpb25zLkV4dGVuc2lvbnMuU3dhc2hidWNrbGUgY2FuIGluY2x1ZGUgeG1sIGRvY3VtZW50IGZpbGUuCgoxLiBDaGFuZ2UgeW91ciBmdW5jdGlvbnMgcHJvamVjdCdzIEdlbmVyYXRlRG9jdW1lbnRhdGlvbkZpbGUgb3B0aW9uIHRvIGVuYWJsZS4KCiAgICAgICAgICAgIGJ1aWxkZXIuQWRkU3dhc2hCdWNrbGUoQXNzZW1ibHkuR2V0RXhlY3V0aW5nQXNzZW1ibHkoKSwgb3B0cyA9PgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBvcHRzLlhtbFBhdGggPSAiVGVzdEZ1bmN0aW9uLnhtbCI7CiAgICAgICAgICAgIH0pOwoKMi4gQWRkIGNvbmZpZ3JhdGlvbiBzZXR0aW5nIHRoaXMgZXh0ZW5zaW9ucyBvbiB5b3VyIGZ1bmN0aW9ucyBwcm9qZWN0J3MgbG9jYWwuc2V0dGluZ3MuanNvbgoKYGBganNvbgogICJTd2FnZ2VyRG9jT3B0aW9ucyI6IHsKICAgICJYbWxQYXRoIjogIlRlc3RGdW5jdGlvbi54bWwiCiAgfQpgYGAKCkFsdGVybmF0aXZlbHkgeW91IGNhbiBhZGQgdGhpcyBzZWN0aW9uIHRvIHlvdXIgaG9zdC5qc29uCgpgYGBqc29uCiAgImV4dGVuc2lvbnMiOiB7CiAgICAiU3dhc2hidWNrbGUiOiB7CiAgICAgICJYbWxQYXRoIjogIlRlc3RGdW5jdGlvbi54bWwiCiAgICB9CiAgfQpgYGAK readmeEtag: '"fe74cad82aaf5703f9e4fe987fce5c3db2ecae25"' readmeLastModified: Wed, 28 Aug 2024 11:18:57 GMT repositoryId: 230613540 description: This extension enriches Azure Functions with Swagger/ Open API support created: '2019-12-28T13:27:18Z' updated: '2024-08-28T11:19:01Z' language: C# archived: false stars: 67 watchers: 5 forks: 54 owner: vitalybibikov logo: https://avatars.githubusercontent.com/u/7008739?v=4 license: MIT repoEtag: '"1d0f2d3c6a6cbe240efbe2df4746efe03b907253f3a6c78cc3302f6166869041"' repoLastModified: Wed, 28 Aug 2024 11:19:01 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: ee4e8f0b8483cc304f05e07164cded87 - source: openapi3 tags repository: https://github.com/fsprojects/openapitypeprovider v3: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9Eem91a3IvT3BlbkFQSVR5cGVQcm92aWRlci9yYXcvbWFzdGVyL2xvZ28uanBnIiBhbHQ9ImRyYXdpbmciIHdpZHRoPSIxMDBweCIvPgoKCiMgT3BlbkFQSSBUeXBlIFByb3ZpZGVyCipFcmFzZWQgbmV0c3RhbmRhcmQyLjAgdHlwZSBwcm92aWRlciBmb3Igd2ViIEFQSSBwcm92aWRlcnMuKgoKIyMgV2h5IHRvIHVzZSB0aGlzIHR5cGUgcHJvdmlkZXI/CklmIHlvdSB3cml0ZSBGIyBiYWNrZW5kIGZvciBzb21lIGFwcGxpY2F0aW9uIHByb3ZpZGluZyBKU09OIEFQSSwgeW91IHByb2JhYmx5IHdhbnQgdG8gZG9jdW1lbnQgdGhpcyB1c2luZyBbT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKSAocHJldmlvdXNseSBjYWxsZWQgU3dhZ2dlcikuIFRoaXMgZG9jdW1lbnRhdGlvbiBjYW4gYmUgY3JlYXRlZCBiYXNpY2FsbHkgdHdvIHdheXM6CgoxKSBHZW5lcmF0ZSBpdCBmcm9tIGNvZGUgKGNvZGUgZmlyc3QgYXBwcm9hY2gpCjIpIFdyaXRlIGl0IG1hbnVhbGx5IChkb2N1bWVudCBmaXJzdCBhcHByb2FjaCkKClRoaXMgdHlwZSBwcm92aWRlciBpcyBmb2N1c2VkIG9uIHNlY29uZCBvcHRpb24gd2hlbiB5b3UgYWxyZWFkeSBnb3QgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiAoZS5nLiBmcm9tIGZyb250ZW5kIGRldmVsb3BlcikgYW5kIHlvdSB3YW50IHRvIGJlIDEwMCUgc3VyZSB0aGF0IHlvdXIgQVBJIGZvbGxvd3MgaXQgY29ycmVjdGx5LCB3aGljaCBtb3N0bHkgbWVhbnMgdHdvIHRoaW5nczogVmFsaWRhdGlvbiBvZiByZXF1ZXN0cyBwYXlsb2FkIGlzIGluIGNvcnJlY3QgZm9ybSAoYXMgZGVzY3JpYmVkIGluIEFQSSBkb2N1bWVudGF0aW9uKSBhbmQgY3JlYXRpbmcgcmVzcG9uc2VzLiBCb3RoIHRoaW5ncyBjYW4gYmUgcXVpdGUgdGVkaW91cyBhbmQgZXJyb3ItcHJvbmUuIEl0IGlzIGNvbW1vbiBpbiB3ZWIgQVBJIGRldmVsb3BtZW50IHRoYXQgYWZ0ZXIgc29tZSB0aW1lIHRoYXQgc2VydmVyIGJlaGF2aW9yIGlzIG5vdCB3aGF0IGlzIHdyaXR0ZW4gaW4gZG9jdW1lbnRhdGlvbi4gVGhpcyB0eXBlIHByb3ZpZGVyIGlzIGhlcmUgdG8gaGVscCB3aXRoIHRoYXQuCgojIyBHb2FscyBvZiBPcGVuQVBJVHlwZVByb3ZpZGVyCldoZW4gSSBzdGFydGVkIHRvIHRoaW5rIGFib3V0IHdyaXRpbmcgdGhpcyB0eXBlIHByb3ZpZGVyLCBJIHNldCBmZXcgZ29hbHM6CgoxLiBOZXRzdGFuZGFyZDIuMCBzdXBwb3J0CjIuIEVyYXNlZCB0eXBlCjMuIFRpZ2h0bHkgY29ubmVjdGVkIHRvIE5ld3RvbnNvZnQuSnNvbgo0LiBCYXNlZCBvbiB0aGUgbGF0ZXN0IE9wZW5BUEkgc3BlY2lmaWNhdGlvbiAobm8gc3VwcG9ydCBmb3IgU3dhZ2dlcikKCiMjIFZlcnNpb24gMi4wLjAgY2hhbmdlCkluIHZlcnNpb25zIDwgMi4wLCB0aGUgU2NoZW1hcyB3ZXJlIGNyZWF0ZWQgYmFzZWQgb24gc2ltcGxpZmllZCBsb2dpYzogSWYgdGhlIHNjaGVtYSBpcyB0aGUgc2FtZSAoaGF2aW5nIHNhbWUgc3RydWN0dXJlKSwgaXQgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgc2FtZSBzY2hlbWEgbm8gbWF0dGVyIG5hbWUgeW91IHVzZSAoYWN0dWFsbHkgdGhlIGZpcnN0IHBhcnNlZCBuYW1lZCBpcyB1c2VkIGZvciBhbGwgb3RoZXJzKS4gVGhpcyBhcHByb2FjaCBoYWQgZ29vZCBpbnRlbnRpb25zIC0gdG8gbWluaW1pemUgYW1vdW50IG9mIGNyZWF0ZWQgU2NoZW1hcyAtIGhvd2V2ZXIgc2hvd24gdG8gYmUgd3JvbmcgZm9yIGNvbXBsZXggc2NlbmFyaW9zLiBUaGlzIGNvdWxkIGVhc2lseSBsZWFkIHRvIHNpdHVhdGlvbiB3aGVyZSBjaGFuZ2UgaW4gb25lIFNjaGVtYSBicmVha3MgeW91ciBvdGhlciBTY2hlbWEsIGV2ZW4gaWYgdGhleSB3ZXJlIG5vdCBkaXJlY3RseSBsaW5rZWQgdXNpbmcgYCRyZWZgLgoKU2luY2UgdmVyc2lvbiAqKjIuMC4wKiogdGhlIFNjaGVtYXMgYXJlIGNyZWF0ZWQgYmFzZWQgb24gbG9naWM6CjEuIFJvb3QgaW5saW5lIHNjaGVtYXMgYXJlIGFsd2F5cyBjcmVhdGVkIGFzIHNlcGFyYXRlZCBvbmUKMi4gUm9vdCBgJHJlZmAgc2NoZW1hcyBhcmUgY3JlYXRlZCBhcyBzZXBhcmF0ZWQgb25lIGJ1dCB3aXRoIHN0cnVjdHVyZSAiY29waWVkIiBmcm9tIHJlZmVyZW5jZWQgc2NoZW1hCjMuIE5lc3RlZCBpbmxpbmUgc2NoZW1hcyBhcmUgY3JlYXRlZCBhcyBzZXBhcmF0ZWQgb25lCjQuIE5lc3RlZCBgJHJlZmAgc2NoZW1hcyBhcmUgbGlua2VkIHRvIHJlZmVyZW5jZWQgc2NoZW1hCgojIyBJbnN0YWxhdGlvbgoKRmlyc3QgaW5zdGFsbCBbTnVHZXQgcGFja2FnZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL09wZW5BUElUeXBlUHJvdmlkZXIvKQoKICAgIEluc3RhbGwtUGFja2FnZSBPcGVuQVBJVHlwZVByb3ZpZGVyCgpvciB1c2luZyBQYWtldAoKICAgIG51Z2V0IE9wZW5BUElUeXBlUHJvdmlkZXIKCiMjIEhvdyB0byB1c2UKCkZpcnN0IG9wZW4gY29ycmVjdCBuYW1lc3BhY2UgYW5kIGNyZWF0ZSBiYXNpYyB0eXBlIGJhc2VkIG9uIHlvdXIgWUFNTCBkb2N1bWVudGF0aW9uCgpgYGBmc2hhcnAKb3BlbiBPcGVuQVBJVHlwZVByb3ZpZGVyCgp0eXBlIFBldFN0b3JlID0gT3BlbkFQSVYzUHJvdmlkZXI8IlBldFN0b3JlLnlhbWwiPgpgYGAKCk5vdyB5b3UgY2FuIHVzZSBkZWZpbmVkIFNjaGVtYXMgaW4geW91ciBzcGVjaWZpY2F0aW9uIGxpa2UgRiMgdHlwZXMuCgojIyMgUGFyc2luZyBmcm9tIEpTT04KCkVhY2ggU2NoZW1hIHR5cGUgY2FuIGJlIGNyZWF0ZWQgZnJvbSBKU09OIHN0cmluZyB1c2luZyBzdGF0aWMgbWV0aG9kIGBQYXJzZWAuCgpgYGBmc2hhcnAKbGV0IGpzb24gPSAiIiJ7Im5hbWUiOiJSb21hbiJ9IiIiCmxldCBwZXQgPSBQZXRTdG9yZS5TY2hlbWFzLk5ld1BldC5QYXJzZShqc29uKQpsZXQgbmFtZSA9IHBldC5OYW1lIC8vIGNvbnRhaW5zIFJvbWFuCmxldCB0YWcgPSBwZXQuVGFnIC8vIGNvbnRhaW5zIE9wdGlvbiB2YWx1ZSBOb25lCmBgYAoKU29tZXRpbWVzIHlvdSBuZWVkIHRvIHVzZSBwYXJzZSBKU09OIHdpdGggY3VzdG9tIGRhdGUgZm9ybWF0LgoKYGBgZnNoYXJwCmxldCBqc29uID0gIiIieyJkYXRlMSI6IjMxLiAxMi4gMjAxOCAxMjozNDo1NiIsImRhdGUyIjoiMzEuIDEyLiAyMDE3IDEyOjM0OjU2In0iIiIKbGV0IGN1c3RvbURhdGVGb3JtYXQgPSAiZGQuIE1NLiB5eXl5IEhIOm1tOnNzIgpsZXQgdHdvRGF0ZXMgPSBQZXRTdG9yZS5TY2hlbWFzLlR3b0RhdGVzLlBhcnNlKGpzb24sIGN1c3RvbURhdGVGb3JtYXQpCmBgYAoKTWV0aG9kIGBQYXJzZWAgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBjYXNlIEpTT04gZG9lcyBub3QgZml0IHRvIGRlZmluaXRpb246CgpgYGBmc2hhcnAKLy8gZmFpbHMgd2l0aCBleGNlcHRpb24gdGhhdCBwcm9wZXJ0eSAnbmFtZScgaXMgbm90IHByZXNlbnQsCi8vIGJ1dCBzaG91bGQgYmUgYmFzZWQgb24gU2NoZW1hIGRlZmluaXRpb24KbGV0IGpzb24gPSAiIiJ7Im5vdEV4aXN0aW5nUHJvcGVydHkiOiJSb21hbiJ9IiIiCmxldCBwZXQgPSBQZXRTdG9yZS5TY2hlbWFzLk5ld1BldC5QYXJzZShqc29uKSAKCi8vIGZhaWxzIHdpdGggZXhjZXB0aW9uIHRoYXQgcHJvcGVydHkgJ25hbWUnIG5vdCBjb252ZXJ0aWJsZQovLyB0byBzdHJpbmcgdmFsdWUKbGV0IGpzb24gPSAiIiJ7Im5hbWUiOjEyMzQ1Nn0iIiIKbGV0IHBldCA9IFBldFN0b3JlLlNjaGVtYXMuTmV3UGV0LlBhcnNlKGpzb24pIApgYGAKCiMjIyBJbnN0YW50aWF0aW9uIG9mIFNjaGVtYSB0eXBlcwoKU2NoZW1hIHR5cGVzIGhhcyBjb25zdHJ1Y3RvcnMgYmFzZWQgb24gZGVmaW5pdGlvbiBzbyB5b3UgY2FuIGluc3RhbnRpYXRlIHRoZW0gYXMgeW91IG5lZWQuCgpgYGBmc2hhcnAKbGV0IHBldCA9IG5ldyBQZXRTdG9yZS5TY2hlbWFzLk5ld1BldChuYW1lID0gIlJvbWFuIikKYGBgCgojIyMgQ29udmVydGluZyB0byBKU09OCgpFYWNoIFNjaGVtYSBpbnN0YW5jZSBoYXMgbWV0aG9kIGBUb0pzb25gIHdpdGggZmV3IG92ZXJsb2Fkcy4KCmBgYGZzaGFycApsZXQgcGV0ID0gbmV3IFBldFN0b3JlLlNjaGVtYXMuTmV3UGV0KG5hbWUgPSAiUm9tYW4iKQpwZXQuVG9Kc29uKCkgLy8gcmV0dXJucyAneyJuYW1lIjoiUm9tYW4ifScgLSBubyBpbmRlbnRpbmcKcGV0LlRvSnNvbihOZXd0b25zb2Z0Lkpzb24uRm9ybWF0dGluZy5JbmRlbnRlZCkgLy8gcmV0dXJuIGpzb24gd2l0aCBmYW5jeSBmb3JtYXR0aW5nCmBgYAoKIyMjIENvbnZlcnRpbmcgdG8gSlNPTiB3aXRoIGN1c3RvbSBzZXJpYWxpemVyCgpFYWNoIGBUb0pzb25gIG1ldGhvZCBoYXMgb3ZlcmxvYWQgd2l0aCBzdXBwb3J0aW5nIGBKc29uU2VyaWFsaXplclNldHRpbmdzYCBhcyBwYXJhbWV0ZXIuCgpgYGBmc2hhcnAKbGV0IHBldCA9IG5ldyBQZXRTdG9yZS5TY2hlbWFzLk5ld1BldChuYW1lID0gIlJvbWFuIikKCmxldCBzZXR0aW5ncyA9IEpzb25TZXJpYWxpemVyU2V0dGluZ3MoKQpzZXR0aW5ncy5OdWxsVmFsdWVIYW5kbGluZyA8LSBOdWxsVmFsdWVIYW5kbGluZy5JbmNsdWRlCgpwZXQuVG9Kc29uKHNldHRpbmdzLCBGb3JtYXR0aW5nLk5vbmUpIC8vIHJldHVybnMgJ3sibmFtZSI6IlJvbWFuIiwidGFnIjpudWxsfScKYGBgCgojIyMgQ29udmVydGluZyB0byBOZXd0b25zb2Z0IEpUb2tlbgoKSWYgeW91IG5lZWQgYEpUb2tlbmAgaW5zdGVhZCBvZiBzdHJpbmcgd2l0aCBKU09OLCBtZXRob2QgYFRvSlRva2VuYCBpcyBoZXJlIGZvciB5b3UuCgpgYGBmc2hhcnAKbGV0IHBldCA9IG5ldyBQZXRTdG9yZS5TY2hlbWFzLk5ld1BldChuYW1lID0gIlJvbWFuIikKbGV0IGp0b2tlbiA9IHBldC5Ub0pUb2tlbigpCmBgYAoKQWdhaW4sIHlvdSBjYW4gY3VzdG9taXplIGhvdyB0byBoYW5kbGUgb3B0aW9uYWwgdmFsdWVzLgoKYGBgZnNoYXJwCmxldCBwZXQgPSBuZXcgUGV0U3RvcmUuU2NoZW1hcy5OZXdQZXQobmFtZSA9ICJSb21hbiIpCmxldCBqdG9rZW4gPSBwZXQuVG9KVG9rZW4oTnVsbFZhbHVlSGFuZGxpbmcuSW5jbHVkZSkgLy8gdGhpcyBub3cgY29udGFpbnMgSk51bGwgdmFsdWUgaW5zaWRlIEpPYmplY3QKYGBgCgojIyMgU2ltcGxlIHZhbHVlcwoKQnkgc3BlY2lmaWNhdGlvbiB5b3UgYXJlIGFsbG93ZWQgdG8gaGF2ZSBTY2hlbWEgdHlwZXMgbm90IGFuIG9iamVjdHMsIGJ1dCBzaW1wbGUgdmFsdWVzIGxpa2Ugc3RyaW5ncyBvciBpbnRlZ2Vycy4gVGhpcyB0eXBlIHByb3ZpZGVyIHN1cHBvcnRzIHRoZW0gYXMgd2VsbC4KCmBgYHlhbWwKU2ltcGxlU3RyaW5nOgogICAgdHlwZTogc3RyaW5nICAgIAogICAgClNpbXBsZUFycmF5OgogICAgdHlwZTogYXJyYXkKICAgIGl0ZW1zOgogICAgICAgIHR5cGU6IHN0cmluZwpgYGAKCmBgYGZzaGFycApsZXQgc2ltcGxlU3RyaW5nID0gUGV0U3RvcmUuU2NoZW1hcy5TaW1wbGVTdHJpbmcoIkFCQyIpCnNpbXBsZVN0cmluZy5WYWx1ZSAvLyBjb250YWlucyAiQUJDIgoKbGV0IHNpbXBsZUFycmF5ID0gUGV0U3RvcmUuU2NoZW1hcy5TaW1wbGVBcnJheShbIkEiOyJCIl0pCnNpbXBsZUFycmF5LlZhbHVlcyAvLyBjb250YWlucyBMaXN0PHN0cmluZz4gWyJBIjsiQiJdCmBgYAoKIyMjIFJlcXVlc3RzICYgUmVzcG9uc2VCb2RpZXMKClVzaW5nIFNjaGVtYSB0eXBlcyBkaXJlY3RseSBpcyBxdWl0ZSBoYW5keSBhbmQgc3RyYWlnaHRmb3J3YXJkLCBidXQgaXQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgcm91dGVzLCByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLiBJZiB5b3Ugd2FudCB0byBiZSAxMDAlIHN1cmUgdGhhdCB5b3UgYXJlIGZ1bGxmaWxsaW5nIHNwZWNpZmljYXRpb24sIGdvIGZvciBgUGFyc2VgIG9uIFJlcXVlc3RzIGFuZCBgVG9Kc29uYCAvIGBUb0pUb2tlbmAgbWV0aG9kcyBvbiBSZXNwb25zZUJvZGllcy4KCmBgYGZzaGFycApsZXQgcGV0U3RvcmVBUEkgPSBuZXcgUGV0U3RvcmUoKSAvLyBOb3RlISBJbnN0YW5jZSBvZiBQZXRTdG9yZSB0eXBlIGlzIG5lZWRlZCBoZXJlLgpsZXQgcGV0ID0gbmV3IFBldFN0b3JlLlNjaGVtYXMuTmV3UGV0KCJSb21hbiIpCgovLyB0aGlzIHJvdXRlIHJldHVybnMgTmV3UGV0IHNjaGVtYSBieSBkZWZpbml0aW9uIHNvIFRvSnNvbiBhbGxvd3Mgb25seSBOZXdQZXQgc2NoZW1hIGFzIHBhcmFtZXRlcgpwZXRTdG9yZUFQSS5QYXRocy5gYC9wZXRzL3tpZH1gYC5HZXQuUmVzcG9uc2VzLmBgMjAwYGAuYGBhcHBsaWNhdGlvbi9qc29uYGAuVG9Kc29uKHBldCkKCi8vIHRoaXMgcm91dGUgZXhwZWN0cyBOZXdQZXQgc2NoZW1hIGJ5IGRlZmluaXRpb24gc28gUGFyc2UgbWV0aG9kIHJldHVybnMgTmV3UGV0CmxldCBwYXJzZWRQZXQgPSBwZXRTdG9yZUFQSS5QYXRocy5gYC9wZXRzYGAuUG9zdC5SZXF1ZXN0Qm9keS5gYGFwcGxpY2F0aW9uL2pzb25gYC5QYXJzZShqc29uRnJvbVJlcXVlc3QpCmBgYAoKSW4gY2FzZSB5b3UgaGF2ZSBhbnkgZG91YnRzLCB5b3UgY2FuIGFsd2F5cyBoYXZlIGEgbG9vayBbYXQgdW5pdCB0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL0R6b3Vrci9PcGVuQVBJVHlwZVByb3ZpZGVyL2Jsb2IvbWFzdGVyL3Rlc3RzL09wZW5BUElUeXBlUHJvdmlkZXIuVGVzdHMvQmFzaWNUZXN0cy5mcykKCiMjIEtub3duIGlzc3VlcyAmIExpbWl0YXRpb25zCjEuIE5vIHN1cHBvcnQgZm9yIGBPbmVPZmAgYW5kIGBNYW55T2ZgIHNpbmNlIHRoZXkgYXJlIGJhc2ljYWxseSB1bmlvbiB0eXBlcyB3aGljaCBpcyBxdWl0ZSBkaWZmaWN1bHQgKG9yIG1heWJlIGltcG9zc2libGUpIHRvIGdlbmVyYXRlIGZyb20gdHlwZSBwcm92aWRlcgoKIyMgQ29udHJpYnV0aW9uCgpZb3UgYXJlIG1vcmUgdGhhbiB3ZWxjb21lIHRvIHNlbmQgYSBbcHVsbCByZXF1ZXN0XShodHRwczovL2dpdGh1Yi5jb20vRHpvdWtyL09wZW5BUElUeXBlUHJvdmlkZXIvcHVsbHMpIGlmIHlvdSBmaW5kIHNvbWUgYnVnIG9yIG1pc3NpbmcgZnVuY3Rpb25hbGl0eS4K readmeEtag: '"b64c6755beae2e67b78991440ea9c3ed33b596db"' readmeLastModified: Mon, 28 Jan 2019 20:18:17 GMT repositoryId: 118037484 description: F# type provider for Open API specification created: '2018-01-18T21:00:25Z' updated: '2024-03-23T17:21:43Z' language: F# archived: false stars: 65 watchers: 11 forks: 4 owner: fsprojects logo: https://avatars.githubusercontent.com/u/6001315?v=4 repoEtag: '"cbd31014f3d4ac266c435a2eed1a55b0eb86157e9bb681785b46cb5998397cf7"' repoLastModified: Sat, 23 Mar 2024 17:21:43 GMT foundInMaster: true category: Parsers id: 6b6a608ac17ac38db46546688326462f - source: openapi3 tags repository: https://github.com/drwpow/openapi-fetch v3: true id: eedc4905504decd63f3a047810e71311 repositoryMetadata: base64Readme: >- IyDwn46+IG9wZW5hcGktZmV0Y2gKCiMjIyDwn5qaIFRoaXMgcmVwbyBoYXMgbW92ZWQhCgpJdCBoYXMgYmVlbiBtZXJnZWQgd2l0aCBbb3BlbmFwaS10eXBlc2NyaXB0XShodHRwczovL2dpdGh1Yi5jb20vZHJ3cG93L29wZW5hcGktdHlwZXNjcmlwdCkuIFBsZWFzZSBzdWJtaXQgaXNzdWVzIGFuZCBjb2RlIHRoZXJlLgoKLSDwn5al77iPIFtDb2RlXShodHRwczovL2dpdGh1Yi5jb20vZHJ3cG93L29wZW5hcGktdHlwZXNjcmlwdC90cmVlL21haW4vcGFja2FnZXMvb3BlbmFwaS1mZXRjaCkKLSDwn5OWIFtEb2NzXShodHRwczovL29wZW5hcGktdHMucGFnZXMuZGV2KQo= readmeEtag: '"fd89503619966750f4a3e6280eeb339a55994fc9"' readmeLastModified: Mon, 22 May 2023 16:30:51 GMT repositoryId: 612091894 description: >- Ultra-fast fetching for TypeScript generated automatically from your OpenAPI schema created: '2023-03-10T07:18:20Z' updated: '2024-08-27T10:18:47Z' language: null archived: true stars: 65 watchers: 2 forks: 17 owner: drwpow logo: https://avatars.githubusercontent.com/u/1369770?v=4 license: MIT repoEtag: '"e6e980f8950379a2c2ddcd63c0b0a40986e9cc303626b3725b0d4df5be3db58b"' repoLastModified: Tue, 27 Aug 2024 10:18:47 GMT category: Parsers foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/stoplightio/spectral-owasp-ruleset v3: true v3_1: true id: a98ab8aaed507481a9bf8be2c5b38a8f repositoryMetadata: base64Readme: >- IyBTcGVjdHJhbCBPV0FTUCBBUEkgU2VjdXJpdHkKClshW05QTSBEb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2R3L0BzdG9wbGlnaHQvc3BlY3RyYWwtb3dhc3AtcnVsZXNldD9jb2xvcj1ibHVlKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN0b3BsaWdodC9zcGVjdHJhbC1vd2FzcC1ydWxlc2V0KSBbIVtTdG9wbGlnaHQgRm9yZXN0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2Vjb2xvZ2kvdHJlZXMvc3RvcGxpZ2h0aW5jKV1bc3RvcGxpZ2h0X2ZvcmVzdF0KClNjYW4gYW4gW09wZW5BUEldKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCkgZG9jdW1lbnQgdG8gZGV0ZWN0IHNlY3VyaXR5IGlzc3Vlcy4gQXMgT3BlbkFQSSBpcyBvbmx5IGRlc2NyaWJpbmcgdGhlIHN1cmZhY2UgbGV2ZWwgb2YgdGhlIEFQSSBpdCBjYW5ub3Qgc2VlIHdoYXQgaXMgaGFwcGVuaW5nIGluIHlvdXIgY29kZSwgYnV0IGl0IGNhbiBzcG90IG9idmlvdXMgaXNzdWVzIGFuZCBvdXRkYXRlZCBzdGFuZGFyZHMgYmVpbmcgdXNlZC4KCnYyLnggb2YgdGhpcyBydWxlc2V0IGlzIGJhc2VkIG9uIHRoZSBbT1dBU1AgQVBJIFNlY3VyaXR5IFRvcCAxMCAyMDIzIGVkaXRpb25dKGh0dHBzOi8vb3dhc3Aub3JnL0FQSS1TZWN1cml0eS9lZGl0aW9ucy8yMDIzL2VuLzB4MDAtaGVhZGVyLyksIGJ1dCBpZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgdGhlIFsyMDE5IGVkaXRpb25dKGh0dHBzOi8vb3dhc3Aub3JnL0FQSS1TZWN1cml0eS9lZGl0aW9ucy8yMDE5L2VuLzB4MDAtaGVhZGVyLykgcGxlYXNlIHVzZSB2MS54LgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCm5wbSBpbnN0YWxsIC0tc2F2ZSAtRCBAc3RvcGxpZ2h0L3NwZWN0cmFsLW93YXNwLXJ1bGVzZXRAXjIuMApucG0gaW5zdGFsbCAtLXNhdmUgLUQgQHN0b3BsaWdodC9zcGVjdHJhbC1jbGkKYGBgCgojIyBVc2FnZQoKQ3JlYXRlIGEgbG9jYWwgcnVsZXNldCB0aGF0IGV4dGVuZHMgdGhlIHJ1bGVzZXQuIEluIGl0cyBtb3N0IGJhc2ljIGZvcm0gdGhpcyBqdXN0IHRlbGxzIFNwZWN0cmFsIHdoYXQgcnVsZXNldCB5b3Ugd2FudCB0byB1c2UsIGJ1dCBpdCB3aWxsIGFsbG93IHlvdSB0byBjdXN0b21pc2UgdGhpbmdzLCBhZGQgeW91ciBvd24gcnVsZXMsIHR1cm4gYml0cyBvZmYgaWYgaXRzIGNhdXNpbmcgdHJvdWJsZS4KCmBgYApjZCB+L3NyYy88eW91ci1hcGk+CgplY2hvICdleHRlbmRzOiBbIkBzdG9wbGlnaHQvc3BlY3RyYWwtb3dhc3AtcnVsZXNldCJdJyA+IC5zcGVjdHJhbC55YW1sCmBgYAoKX0lmIHlvdSdyZSB1c2luZyBWUyBDb2RlIG9yIFN0b3BsaWdodCBTdHVkaW8gdGhlbiB0aGUgTlBNIG1vZHVsZXMgd2lsbCBub3QgYmUgYXZhaWxhYmxlLiBJbnN0ZWFkIHlvdSBjYW4gdXNlIHRoZSBDRE4gaG9zdGVkIHZlcnNpb246XwoKYGBgCmVjaG8gJ2V4dGVuZHM6IFsiaHR0cHM6Ly91bnBrZy5jb20vQHN0b3BsaWdodC9zcGVjdHJhbC1vd2FzcC1ydWxlc2V0L2Rpc3QvcnVsZXNldC5tanMiXScgPiAuc3BlY3RyYWwueWFtbApgYGAKCl8qKk5vdGU6KiogWW91IG5lZWQgdG8gdXNlIHRoZSBmdWxsIFVSTCB3aXRoIENETiBob3N0ZWQgcnVsZXNldHMgYmVjYXVzZSBTcGVjdHJhbCBbY2Fubm90IGZvbGxvdyByZWRpcmVjdHMgdGhyb3VnaCBleHRlbmRzXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vc3BlY3RyYWwvaXNzdWVzLzIyNjYpLl8KCk5leHQsIHVzZSBTcGVjdHJhbCBDTEkgdG8gbGludCBhZ2FpbnN0IHlvdXIgT3BlbkFQSSBkZXNjcmlwdGlvbi4gRG9uJ3QgaGF2ZSBhbnkgT3BlbkFQST8gW1JlY29yZCBzb21lIEhUVFAgdHJhZmZpYyB0byBtYWtlIE9wZW5BUEldKGh0dHBzOi8vYXBpc3lvdXdvbnRoYXRlLmNvbS9ibG9nL2NyZWF0aW5nLW9wZW5hcGktZnJvbS1odHRwLXRyYWZmaWMpIGFuZCB0aGVuIHlvdSBjYW4gc3dpdGNoIHRvIEFQSSBEZXNpZ24tRmlyc3QgZ29pbmcgZm9yd2FyZHMuCgpgYGAKc3BlY3RyYWwgbGludCBhcGkvb3BlbmFwaS55YW1sCmBgYAoKWW91IHNob3VsZCBzZWUgc29tZSBvdXRwdXQgbGlrZSB0aGlzOgoKYGBgCi9Vc2Vycy9waGlsL3NyYy9wcm90ZWN0LWVhcnRoLWFwaS9hcGkvb3BlbmFwaS55YW1sCiAgNDo1ICAgICAgICBlcnJvciAgICBvd2FzcDphcGk4OjIwMjMtaW52ZW50b3J5LWFjY2VzcyAgICAgICAgICAgIERlY2xhcmUgaW50ZW5kZWQgYXVkaWVuY2Ugb2YgZXZlcnkgc2VydmVyIGJ5IGRlZmluaW5nIHNlcnZlcnNbMF0ueC1pbnRlcm5hbCBhcyB0cnVlL2ZhbHNlLiAgc2VydmVyc1swXQogIDQ6MTAgICAgICAgZXJyb3IgICAgb3dhc3A6YXBpODoyMDIzLW5vLXNlcnZlci1odHRwICAgICAgICAgICAgICBTZXJ2ZXIgVVJMcyBtdXN0IG5vdCB1c2UgaHR0cDovLy4gaHR0cHM6Ly8gaXMgaGlnaGx5IHJlY29tbWVuZGVkLiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnNbMF0udXJsCiAgNDU6MTUgICAgICAgIGVycm9yICBvd2FzcDphcGk0OjIwMjMtcmF0ZS1saW1pdCAgICAgICAgICAgICAgICAgIEFsbCAyWFggYW5kIDRYWCByZXNwb25zZXMgc2hvdWxkIGRlZmluZSByYXRlIGxpbWl0aW5nIGhlYWRlcnMuICBwYXRocy4vdXBsb2FkLnBvc3QucmVzcG9uc2VzWzIwMV0KICA0NzoxNSAgICAgICAgZXJyb3IgIG93YXNwOmFwaTQ6MjAyMy1yYXRlLWxpbWl0ICAgICAgICAgICAgICAgICAgQWxsIDJYWCBhbmQgNFhYIHJlc3BvbnNlcyBzaG91bGQgZGVmaW5lIHJhdGUgbGltaXRpbmcgaGVhZGVycy4gIHBhdGhzLi91cGxvYWQucG9zdC5yZXNwb25zZXNbNDAxXQogIDkzOjE2ICBpbmZvcm1hdGlvbiAgb3dhc3A6YXBpMjoyMDIzLXJlYWQtcmVzdHJpY3RlZCAgICAgICAgICAgICBUaGlzIG9wZXJhdGlvbiBpcyBub3QgcHJvdGVjdGVkIGJ5IGFueSBzZWN1cml0eSBzY2hlbWUuICBwYXRocy4vc2l0ZXMuZ2V0LnNlY3VyaXR5CiAyMTA6MTYgIGluZm9ybWF0aW9uICBvd2FzcDphcGkyOjIwMjMtcmVhZC1yZXN0cmljdGVkICAgICAgICAgICAgIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBwcm90ZWN0ZWQgYnkgYW55IHNlY3VyaXR5IHNjaGVtZS4gIHBhdGhzLi9zcGVjaWVzLmdldC5zZWN1cml0eQpgYGAKCk5vdyB5b3UgaGF2ZSBzb21lIHRoaW5ncyB0byB3b3JrIG9uIGZvciB5b3VyIEFQSS4gVGhhbmtmdWxseSB0aGVzZSBhcmUgb25seSBhdCB0aGUgYHdhcm5pbmdgIGFuZCBgaW5mb3JtYXRpb25gIHNldmVyaXR5LCBhbmQgdGhhdCBpcyBub3QgZ29pbmcgdG8gW2ZhaWwgY29udGludW91cyBpbnRlZ3JhdGlvbl0oaHR0cHM6Ly9kb2NzLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL1pHOWpPakV4TlRNeU9UQXgtY29udGludW91cy1pbnRlZ3JhdGlvbikgKHVubGVzcyBbeW91IHdhbnQgdGhlbSB0b10oaHR0cHM6Ly9kb2NzLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL1pHOWpPakkxTVRnMS1zcGVjdHJhbC1jbGkjZXJyb3ItcmVzdWx0cykpLgoKVGhlcmUgYXJlIFthIGJ1bmNoIG9mIG90aGVyIHJ1bGVzZXRzXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vc3BlY3RyYWwtcnVsZXNldHMpIG9yIFtTdG9wbGlnaHQgQVBJIFN0eWxlYm9va10oaHR0cDovL2FwaXN0eWxlYm9vay5zdG9wbGlnaHQuaW8pIHlvdSBjYW4gdXNlLCBvciB1c2UgZm9yIGluc3BpcmF0aW9uIGZvciB5b3VyIG93biBydWxlc2V0cyBhbmQgQVBJIFN0eWxlIEd1aWRlcy4KCiMjIPCfjokgVGhhbmtzCgotIFtBbmRyemVqXShodHRwczovL2dpdGh1Yi5jb20vamVyenluKSAtIEdyZWF0IHJ1bGVzIGNvbnRyaWJ1dGVkIHRvIHRoZSBBZGlkYXMgc3R5bGUgZ3VpZGUuCi0gW1JvYmVydG8gUG9sbGldKGh0dHBzOi8vZ2l0aHViLmNvbS9pb2dnc3RyZWFtKSAtIENyZWF0ZWQgbG90cyBvZiBleGNlbGxlbnQgU3BlY3RyYWwgcnVsZXMgZm9yIFtBUEkgT0FTIENoZWNrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pdGFsaWEvYXBpLW9hcy1jaGVja2VyLykgd2hpY2ggYWxpZ25lZCB3aXRoIHRoZSBPV0FTUCBBUEkgcnVsZXMuCgojIyDwn5OcIExpY2Vuc2UKClRoaXMgcmVwb3NpdG9yeSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCgojIyDwn4yyIFNwb25zb3IKCklmIHlvdSB3b3VsZCBsaWtlIHRvIHRoYW5rIHVzIGZvciBjcmVhdGluZyBTcGVjdHJhbCwgd2UgYXNrIHRoYXQgeW91IFsqKmJ1eSB0aGUgd29ybGQgYSB0cmVlKipdW3N0b3BsaWdodF9mb3Jlc3RdLgoKW3N0b3BsaWdodF9mb3Jlc3RdOiBodHRwczovL2Vjb2xvZ2kuY29tL3N0b3BsaWdodGluYwo= readmeEtag: '"0d92d6543e532164348d50cc4b5837198a046ca8"' readmeLastModified: Tue, 12 Mar 2024 15:49:11 GMT repositoryId: 528967945 description: >- Improve the security of your API by detecting common vulnerabilities as defined by OWASP and enforced with Spectral. created: '2022-08-25T18:14:13Z' updated: '2024-09-01T17:14:03Z' language: TypeScript archived: false stars: 65 watchers: 5 forks: 11 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 repoEtag: '"f3323f9d602a74b3e711c3e332c989b27fbeaedb0ea3906a78421ff0033e0960"' repoLastModified: Sun, 01 Sep 2024 17:14:03 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/manchenkoff/openapi3-parser v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFBhcnNlcgoKIVtQeVBJIC0gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaTMtcGFyc2VyKQohW1B5UEkgLSBEb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9kbS9vcGVuYXBpMy1wYXJzZXIpCiFbUHlQSSAtIFB5dGhvbiBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9vcGVuYXBpMy1wYXJzZXIpCiFbUHlQSSAtIEZvcm1hdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2Zvcm1hdC9vcGVuYXBpMy1wYXJzZXIpCiFbUHlQSSAtIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9sL29wZW5hcGkzLXBhcnNlcikKCkEgc2ltcGxlIHBhY2thZ2UgdG8gcGFyc2UgeW91ciBPcGVuQVBJIDMgZG9jdW1lbnRzIGludG8gUHl0aG9uIG9iamVjdCB0byB3b3JrIHdpdGguCgpTdXBwb3J0ZWQgdmVyc2lvbnM6Cgp8IFZlcnNpb24gfCBTdGF0dXMgICAgICAgICB8CnwgLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tIHwKfCAyLjAgICAgIHwgRGVwcmVjYXRlZCAgICAgfAp8IDMuMCAgICAgfCAqKlN1cHBvcnRlZCoqICB8CnwgMy4xICAgICB8IEluIGRldmVsb3BtZW50IHwKCiMjIEhvdyB0byBpbnN0YWxsCgpUbyBpbnN0YWxsIHBhY2thZ2UgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZAoKYGBgCnBpcCBpbnN0YWxsIG9wZW5hcGkzLXBhcnNlcgpgYGAKCiMjIEhvdyB0byB1c2UKCkV4YW1wbGUgb2YgcGFyc2VyIHVzYWdlCgpgYGAKPj4+IGZyb20gb3BlbmFwaV9wYXJzZXIgaW1wb3J0IHBhcnNlCj4+PiBjb250ZW50ID0gcGFyc2UoJ3N3YWdnZXIueW1sJykKPj4+IHByaW50KGNvbnRlbnQpCmBgYAoKR2V0IGFwcGxpY2F0aW9uIHNlcnZlcnMKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlfcGFyc2VyIGltcG9ydCBwYXJzZQoKc3BlY2lmaWNhdGlvbiA9IHBhcnNlKCdkYXRhL3N3YWdnZXIueW1sJykKCnByaW50KCJBcHBsaWNhdGlvbiBzZXJ2ZXJzIikKCmZvciBzZXJ2ZXIgaW4gc3BlY2lmaWNhdGlvbi5zZXJ2ZXJzOgogICAgcHJpbnQoZiJ7c2VydmVyLmRlc2NyaXB0aW9ufSAtIHtzZXJ2ZXIudXJsfSIpCgojIE91dHB1dAojCiMgPj4gQXBwbGljYXRpb24gc2VydmVycwojID4+IHByb2R1Y3Rpb24gLSBodHRwczovL3VzZXJzLmFwcAojID4+IHN0YWdpbmcgLSBodHRwOi8vc3RhZ2UudXNlcnMuYXBwCiMgPj4gZGV2ZWxvcG1lbnQgLSBodHRwOi8vdXNlcnMubG9jYWwKYGBgCgpHZXQgbGlzdCBvZiBhcHBsaWNhdGlvbiBVUkxzCgpgYGBweXRob24KZnJvbSBvcGVuYXBpX3BhcnNlciBpbXBvcnQgcGFyc2UKCnNwZWNpZmljYXRpb24gPSBwYXJzZSgndGVzdHMvZGF0YS9zd2FnZ2VyLnltbCcpCgp1cmxzID0gW3gudXJsIGZvciB4IGluIHNwZWNpZmljYXRpb24ucGF0aHNdCgpwcmludCh1cmxzKQoKIyBPdXRwdXQKIwojID4+IFsnL3VzZXJzJywgJy91c2Vycy97dXVpZH0nXQpgYGAKCkdldCBvcGVyYXRpb24gd2l0aCBzdXBwb3J0ZWQgSFRUUCBtZXRob2RzCgpgYGBweXRob24KZnJvbSBvcGVuYXBpX3BhcnNlciBpbXBvcnQgcGFyc2UKCnNwZWNpZmljYXRpb24gPSBwYXJzZSgndGVzdHMvZGF0YS9zd2FnZ2VyLnltbCcpCgpmb3IgcGF0aCBpbiBzcGVjaWZpY2F0aW9uLnBhdGhzOgogICAgc3VwcG9ydGVkX21ldGhvZHMgPSAnLCcuam9pbihbeC5tZXRob2QudmFsdWUgZm9yIHggaW4gcGF0aC5vcGVyYXRpb25zXSkKCiAgICBwcmludChmIk9wZXJhdGlvbjoge3BhdGgudXJsfSwgbWV0aG9kczoge3N1cHBvcnRlZF9tZXRob2RzfSIpCgojIE91dHB1dAojCiMgPj4gT3BlcmF0aW9uOiAvdXNlcnMsIG1ldGhvZHM6IGdldCxwb3N0CiMgPj4gT3BlcmF0aW9uOiAvdXNlcnMve3V1aWR9LCBtZXRob2RzOiBnZXQscHV0CmBgYAo= readmeEtag: '"83b67c6215ce3c0da1951bf3d69690104d35dc9a"' readmeLastModified: Thu, 18 Apr 2024 08:59:47 GMT repositoryId: 290637240 description: >- OpenAPI 3 parser to use a specification inside of the code in your projects created: '2020-08-27T00:47:00Z' updated: '2024-09-05T21:39:49Z' language: Python archived: false stars: 60 watchers: 3 forks: 33 owner: manchenkoff logo: https://avatars.githubusercontent.com/u/6690063?v=4 license: MIT repoEtag: '"2d72dcbdbab384c7ebed8a3eacb1ab67c88f1c5ed0d6425e3fbc14b3c719edd4"' repoLastModified: Thu, 05 Sep 2024 21:39:49 GMT foundInMaster: true category: Parsers id: 074facec95becd6c9d361eb75f2d1d2f - source: openapi3 tags repository: https://github.com/hh-h/aiohttp-swagger3 v3: true repositoryMetadata: base64Readme: >- YWlvaHR0cC1zd2FnZ2VyMwo9PT09PT09PT09PT09PT09CgouLiBpbWFnZTo6IGh0dHBzOi8vZ2l0aHViLmNvbS9oaC1oL2Fpb2h0dHAtc3dhZ2dlcjMvYWN0aW9ucy93b3JrZmxvd3MvY2kueWFtbC9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcgogICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vaGgtaC9haW9odHRwLXN3YWdnZXIzL2FjdGlvbnMKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvaGgtaC9haW9odHRwLXN3YWdnZXIzL21hc3Rlci5zdmc/c3R5bGU9ZmxhdAogICA6dGFyZ2V0OiBodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL2hoLWgvYWlvaHR0cC1zd2FnZ2VyMz9icmFuY2g9bWFzdGVyCi4uIGltYWdlOjogaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL3B5L2Fpb2h0dHAtc3dhZ2dlcjMuc3ZnCiAgIDp0YXJnZXQ6IGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9weS9haW9odHRwLXN3YWdnZXIzCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9weXRob24tMy43JTJCLWJyaWdodGdyZWVuLnN2ZwogICA6dGFyZ2V0OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi0zLjclMkItYnJpZ2h0Z3JlZW4uc3ZnCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stYmxhY2suc3ZnCiAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbWJ2L2JsYWNrCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wvYWlvaHR0cC1zd2FnZ2VyMy5zdmcKICAgOnRhcmdldDogaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKQWJvdXQKPT09PT0KClBhY2thZ2UgZm9yIGRpc3BsYXlpbmcgc3dhZ2dlciBkb2NzIHZpYSBkaWZmZXJlbnQgVUkgYmFja2VuZHMgYW5kCm9wdGlvbmFsbHkgdmFsaWRhdGluZy9wYXJzaW5nIGFpb2h0dHAgcmVxdWVzdHMgdXNpbmcgc3dhZ2dlcgpzcGVjaWZpY2F0aW9uIDMuMCwga25vd24gYXMgT3BlbkFQSTMuCgpTdXBwb3J0ZWQgVUkgYmFja2VuZHMKPT09PT09PT09PT09PT09PT09PT09CgpNdWx0aXBsZSBVSSBiYWNrZW5kcyBjYW4gYmUgdXNlZCBvciBVSSBiYWNrZW5kIGNhbiBiZSBkaXNhYmxlZCBhdCBhbGwgaWYgb25seSBuZWVkZWQKdmFsaWRhdGlvbiB3aXRob3V0IGJlaW5nIGFibGUgdG8gdmlldyBkb2N1bWVudGF0aW9uLgoKLSBTd2FnZ2VyIFVJIC0gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkKLSBSZURvYyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jCi0gUmFwaURvYyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9tcmluOS9SYXBpRG9jCgpEb2N1bWVudGF0aW9uCj09PT09PT09PT09PT0KCmh0dHBzOi8vYWlvaHR0cC1zd2FnZ2VyMy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvCgpEaXNhYmxlIHZhbGlkYXRpb24KPT09PT09PT09PT09PT09PT09Cgp8IFBhc3MgYGB2YWxpZGF0ZT1GYWxzZWBgIHRvIGBgU3dhZ2dlckRvY3NgYC9gYFN3YWdnZXJGaWxlYGAgY2xhc3MsIHRoZSBkZWZhdWx0IGlzIGBgVHJ1ZWBgCnwgQWxzbywgc29tZXRpbWVzIHZhbGlkYXRpb24gaGFzIHRvIGJlIGRpc2FibGVkIGZvciBhIHJvdXRlLAogIHRvIGRvIHRoaXMgeW91IGhhdmUgdG8gcGFzcyBgYHZhbGlkYXRlPUZhbHNlYGAgZHVyaW5nIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgcm91dGUuCnwgZXguIGBgd2ViLnBvc3QoIi9yb3V0ZSIsIGhhbmRsZXIsIHZhbGlkYXRlPUZhbHNlKWBgLCB0aGUgZGVmYXVsdCBpcyBgYFRydWVgYAoKUmVxdWlyZW1lbnRzCj09PT09PT09PT09PQoKLSBweXRob24gPj0gMy44Ci0gYWlvaHR0cCA+PSAzLjguMAotIHB5eWFtbCA+PSA1LjQKLSBhdHRycyA+PSAxOS4zLjAKLSBweXRob24tZmFzdGpzb25zY2hlbWEgPj0gMi4xNS4wCi0gcmZjMzMzOS12YWxpZGF0b3IgPj0gMC4xLjQKCkxpbWl0YXRpb25zCj09PT09PT09PT09CgotICBvbmx5IGFwcGxpY2F0aW9uL2pzb24gYW5kIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCBzdXBwb3J0ZWQKICAgZm9yIG5vdywgYnV0IHlvdSBjYW4gY3JlYXRlIG93bgogICBgaGFuZGxlciA8aHR0cHM6Ly9naXRodWIuY29tL2hoLWgvYWlvaHR0cC1zd2FnZ2VyMy90cmVlL21hc3Rlci9leGFtcGxlcy9jdXN0b21faGFuZGxlcj5gX18KLSAgaGVhZGVyL3F1ZXJ5IHBhcmFtZXRlcnMgb25seSBzdXBwb3J0ZWQgc2ltcGxlL2Zvcm0gYXJyYXkKICAgc2VyaWFsaXphdGlvbiwgZS5nLiAxLDIsMyw0Ci0gIHNlZSBUT0RPIGJlbG93CgpJbnN0YWxsYXRpb24KPT09PT09PT09PT09CgpgYHBpcCBpbnN0YWxsIGFpb2h0dHAtc3dhZ2dlcjNgYAoKRXhhbXBsZQo9PT09PT09CgouLiBjb2RlOjogcHl0aG9uCgogICAgZnJvbSBhaW9odHRwIGltcG9ydCB3ZWIKICAgIGZyb20gYWlvaHR0cF9zd2FnZ2VyMyBpbXBvcnQgU3dhZ2dlckRvY3MsIFN3YWdnZXJJbmZvLCBTd2FnZ2VyVWlTZXR0aW5ncwoKICAgIGFzeW5jIGRlZiBnZXRfb25lX3BldChyZXF1ZXN0OiB3ZWIuUmVxdWVzdCwgcGV0X2lkOiBpbnQpIC0+IHdlYi5SZXNwb25zZToKICAgICAgICAiIiIKICAgICAgICBPcHRpb25hbCByb3V0ZSBkZXNjcmlwdGlvbgogICAgICAgIC0tLQogICAgICAgIHN1bW1hcnk6IEluZm8gZm9yIGEgc3BlY2lmaWMgcGV0CiAgICAgICAgdGFnczoKICAgICAgICAgIC0gcGV0cwogICAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgICAtIG5hbWU6IHBldF9pZAogICAgICAgICAgICBpbjogcGF0aAogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIGlkIG9mIHRoZSBwZXQgdG8gcmV0cmlldmUKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICBmb3JtYXQ6IGludDMyCiAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgJzIwMCc6CiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBFeHBlY3RlZCByZXNwb25zZSB0byBhIHZhbGlkIHJlcXVlc3QKICAgICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0IgogICAgICAgICIiIgogICAgICAgIGlmIHBldF9pZCBub3QgaW4gcmVxdWVzdC5hcHBbJ3N0b3JhZ2UnXToKICAgICAgICAgICAgcmFpc2Ugd2ViLkhUVFBOb3RGb3VuZCgpCiAgICAgICAgcmV0dXJuIHdlYi5qc29uX3Jlc3BvbnNlKHJlcXVlc3QuYXBwWydzdG9yYWdlJ11bcGV0X2lkXSkKCiAgICBkZWYgbWFpbigpOgogICAgICAgIGFwcCA9IHdlYi5BcHBsaWNhdGlvbigpCiAgICAgICAgc3dhZ2dlciA9IFN3YWdnZXJEb2NzKAogICAgICAgICAgICBhcHAsCiAgICAgICAgICAgIHN3YWdnZXJfdWlfc2V0dGluZ3M9U3dhZ2dlclVpU2V0dGluZ3MocGF0aD0iL2RvY3MvIiksCiAgICAgICAgICAgIGluZm89U3dhZ2dlckluZm8oCiAgICAgICAgICAgICAgICB0aXRsZT0iU3dhZ2dlciBQZXRzdG9yZSIsCiAgICAgICAgICAgICAgICB2ZXJzaW9uPSIxLjAuMCIsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGNvbXBvbmVudHM9ImNvbXBvbmVudHMueWFtbCIKICAgICAgICApCiAgICAgICAgc3dhZ2dlci5hZGRfcm91dGVzKFsKICAgICAgICAgICAgd2ViLmdldCgiL3BldHMve3BldF9pZH0iLCBnZXRfb25lX3BldCksCiAgICAgICAgXSkKICAgICAgICBhcHBbJ3N0b3JhZ2UnXSA9IHt9CiAgICAgICAgd2ViLnJ1bl9hcHAoYXBwKQoKTW9yZSBgZXhhbXBsZXMgPGh0dHBzOi8vZ2l0aHViLmNvbS9oaC1oL2Fpb2h0dHAtc3dhZ2dlcjMvdHJlZS9tYXN0ZXIvZXhhbXBsZXM+YF8KCkhvdyBpdCBoZWxwcwo9PT09PT09PT09PT0KCi4uIGltYWdlOjogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hoLWgvYWlvaHR0cC1zd2FnZ2VyMy9tYXN0ZXIvZG9jcy9fc3RhdGljL2NvbXBhcmlzb24ucG5nCgpGZWF0dXJlcwo9PT09PT09PQoKLSBhcHBsaWNhdGlvbi9qc29uCi0gYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIChleGNlcHQgYXJyYXkgYW5kIG9iamVjdCkKLSBpdGVtcwotIHByb3BlcnRpZXMKLSBwYXR0ZXJuCi0gcmVxdWlyZWQKLSBlbnVtCi0gbWluaW11bSwgbWF4aW11bQotIGV4Y2x1c2l2ZU1pbmltdW0sIGV4Y2x1c2l2ZU1heGltdW0KLSBtaW5MZW5ndGgsIG1heExlbmd0aAotIG1pbkl0ZW1zLCBtYXhJdGVtcwotIHVuaXF1ZUl0ZW1zCi0gbWluUHJvcGVydGllcywgbWF4UHJvcGVydGllcwotIGRlZmF1bHQgKG9ubHkgcHJpbWl0aXZlcykKLSBhZGRpdGlvbmFsUHJvcGVydGllcwotIG51bGxhYmxlCi0gcmVhZE9ubHkKLSBhbGxPZiwgb25lT2YsIGFueU9mCi0gc3RyaW5nIGZvcm1hdHM6IGRhdGUsIGRhdGUtdGltZSwgYnl0ZSwgZW1haWwsIHV1aWQsIGhvc3RuYW1lLCBpcHY0LCBpcHY2Ci0gY3VzdG9tIHN0cmluZyBmb3JtYXQgdmFsaWRhdG9ycwoKVE9ETyAocmFpc2UgYW4gaXNzdWUgaWYgbmVlZGVkKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgotIG11bHRpcGxlT2YKLSBub3QKLSBhbGxvd0VtcHR5VmFsdWUKLSBDb21tb24gUGFyYW1ldGVycyBmb3IgQWxsIE1ldGhvZHMgb2YgYSBQYXRoIChzcGVjIGZpbGUgb25seSkKLSBtb3JlIHNlcmlhbGl6YXRpb24gbWV0aG9kcywgc2VlOiBodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL3NlcmlhbGl6YXRpb24vCi0gZW5jb2RpbmcKLSBmb3JtIGRhdGEgc2VyaWFsaXphdGlvbiAoYXJyYXksIG9iamVjdCkKLSBkZWZhdWx0IChhcnJheSwgb2JqZWN0KQo= readmeEtag: '"24dadd43cbe0de81eeb5cd338aece95f2b35f482"' readmeLastModified: Sun, 03 Dec 2023 13:08:54 GMT repositoryId: 157923095 description: >- Library for swagger documentation browsing and validating aiohttp requests using swagger specification 3.0 created: '2018-11-16T21:26:37Z' updated: '2024-05-06T18:02:39Z' language: Python archived: false stars: 59 watchers: 2 forks: 22 owner: hh-h logo: https://avatars.githubusercontent.com/u/8166963?v=4 license: Apache-2.0 repoEtag: '"630e9028ef74a0485aa3f0c664c34fbbd4530f7c3dcd753d1d1038c4cc0dbddf"' repoLastModified: Mon, 06 May 2024 18:02:39 GMT foundInMaster: true category: Server Implementations id: f215ffe0267c42662e80c69062c4948d - source: openapi3 tags repository: https://github.com/italia/api-oas-checker v3: true repositoryMetadata: base64Readme: >- IyBDaGVja2VyIHBlciBBUEkgY29uZm9ybWkgYWwgTW9kZWxsbyBkaSBJbnRlcm9wZXJhYmlsaXTDoAoKWyFbSm9pbiB0aGUgI2FwaSBjaGFubmVsXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NsYWNrLSUyM2FwaS1ibHVlLnN2Zz9sb2dvPXNsYWNrKV0oaHR0cHM6Ly9kZXZlbG9wZXJzaXRhbGlhLnNsYWNrLmNvbS9tZXNzYWdlcy9DREtCWVRHNzQpClshW0FQSSBvbiBmb3J1bS5pdGFsaWEuaXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRm9ydW0taW50ZXJvcGVyYWJpbGl0JUMzJUEwLWJsdWUuc3ZnKV0oaHR0cHM6Ly9mb3J1bS5pdGFsaWEuaXQvYy9waWFuby10cmllbm5hbGUvaW50ZXJvcGVyYWJpbGl0YSkKWyFbUkVBRE1FIGluIEVuZ2xpc2hdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUmVhZG1lLUVuZ2xpc2gtZGFya2dyZWVuLnN2ZyldKFJFQURNRS5lbi5tZCkKCvCfkqEgUXVlc3RvIHJlcG9zaXRvcnkgY29udGllbmUgdW4gY2hlY2tlciBpbi1icm93c2VyIGNoZSB2ZXJpZmljYSBhbGN1bmUgZGVsbGUgcmVnb2xlIHBlciBsZSBBUEkgUkVTVCBpbmRpY2F0ZSBuZWwgTW9kZWxsbyBkaSBJbnRlcm9wZXJhYmlsaXTDoC4KCvCfl4LvuI8gSSBwcm9nZXR0aSBhc3NvY2lhdGkgc29ubyBpbmRpY2F0aSBuZWxsJ1tBUEkgU3RhcnRlciBLaXRdKGh0dHBzOi8vZ2l0aHViLmNvbS90ZWFtZGlnaXRhbGUvYXBpLXN0YXJ0ZXIta2l0KS4KCvCfkajwn4+74oCN8J+SuyBMJ2FwcGxpY2F6aW9uZSBvbi1saW5lIHByb250YSBhbGwndXNvIMOoIGRpc3BvbmliaWxlIFtxdWldKGh0dHBzOi8vaXRhbGlhLmdpdGh1Yi5pby9hcGktb2FzLWNoZWNrZXIvKS4KCuKame+4jyBJbCBjaGVja2VyIMOoIGJhc2F0byBzdSBbU3BlY3RyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbCkuCgo+ICMjIyBQZXJjaMOpIFNwZWN0cmFsPyDwn6SUCj4gTG8gYWJiaWFtbyBwcmVmZXJpdG8gcmlzcGV0dG8gYWQgYWx0cmkgc29mdHdhcmUgcGVyY2jDqQpub24gcmljaGllZGUgbCd1dGlsaXp6byBkaSBkYXRhYmFzZSBvIGNvbXBvbmVudGkgc2VydmVyIGEgY3VpIGludmlhcmUgaSB0dW9pIGRvY3VtZW50aSBPcGVuQVBJIChPQVMgQ2hlY2tlciDDqCB1bmEgcGFnaW5hIHN0YXRpY2EgZGVwbG95YXRhIHN1IEdpdEh1YiBQYWdlcykgZSBwZXJjaMOpIGxhIG1hZ2dpb3IgcGFydGUgZGVsbGUgcmVnb2xlIMOoIGRlc2NyaXR0YSB0cmFtaXRlIGZpbGUgc3RhdGljaSAoZS5nLiBZQU1MKToKW3RyYW5uZSBpbiBjYXNpIHNwZWNpZmljaV0ocnVsZXMtbW9kaS9zZWN1cml0eS9mdW5jdGlvbnMvKSBub24gw6ggbmVjZXNzYXJpbyBxdWluZGkgZXNlZ3VpcmUgY29kaWNlIEphdmFTY3JpcHQuIElub2x0cmUsIGdsaSB1dGVudGkgcG9zc29ubyBzZW1wcmUgbGltaXRhcnNpIGFkIGltcG9ydGFyZSBsZSBzb2xlIHJlZ29sZSBzdGF0aWNoZS4KPgo+IExlIGFsdGVybmF0aXZlIHZhbHV0YXRlLCB1Z3VhbG1lbnRlIHZhbGlkZSwgc29ubzoKPiAtIFtaYWxseV0oaHR0cHM6Ly9naXRodWIuY29tL3phbGFuZG8vemFsbHkpIGhhIGJpc29nbm8gZGkgdW4gZGF0YWJhc2UgZSBub24gw6ggcG9zc2liaWxlIGZhcm5lIHVuIHdlYnBhY2thZ2U7Cj4gLSBbU3BlY2N5XShodHRwczovL2dpdGh1Yi5jb20vd2V3b3JrL3NwZWNjeSkgcGFyZSBzdXBwb3J0YXJlIHNvbG8gcmVnb2xlIGluIEphdmFTY3JpcHQsIG1lbnRyZSBxdWVzdG8gY2hlY2tlciB1dGlsaXp6YSBwZXIgbG8gcGnDuSBkZWkgZmlsZSBZQU1MIHN0YXRpY2kuCgojIyDwn5OmIFJlZ29sZQoKTGUgcmVnb2xlIGNoZSBpbCBjaGVja2VyIHV0aWxpenphdGEgc29ubyBnZXN0aXRlIGluIHVuIHJlcG9zaXRvcnkgZGVkaWNhdG86IFthcGktb2FzLWNoZWNrZXItcnVsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9pdGFsaWEvYXBpLW9hcy1jaGVja2VyLXJ1bGVzKS4KCkFsIG1vbWVudG8sIGkgcnVsZXNldCBzb25vOgotIFtzcGVjdHJhbC1tb2RpLnltbF0oaHR0cHM6Ly9naXRodWIuY29tL2l0YWxpYS9hcGktb2FzLWNoZWNrZXItcnVsZXMvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL3NwZWN0cmFsLW1vZGkueW1sKSwgbyBfSXRhbGlhbiBHdWlkZWxpbmVzXywgcXVlbGxlIGRpIGRlZmF1bHQKLSBbc3BlY3RyYWwueW1sXShodHRwczovL2dpdGh1Yi5jb20vaXRhbGlhL2FwaS1vYXMtY2hlY2tlci1ydWxlcy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3BlY3RyYWwueW1sKSwgbyBfSXRhbGlhbiBHdWlkZWxpbmVzIEV4dGVuZGVkXwotIFtzcGVjdHJhbC1nZW5lcmljLnltbF0oaHR0cHM6Ly9naXRodWIuY29tL2l0YWxpYS9hcGktb2FzLWNoZWNrZXItcnVsZXMvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL3NwZWN0cmFsLWdlbmVyaWMueW1sKSwgbyBfQmVzdCBQcmFjdGljZXMgT25seV8KLSBbc3BlY3RyYWwtc2VjdXJpdHkueW1sXShodHRwczovL2dpdGh1Yi5jb20vaXRhbGlhL2FwaS1vYXMtY2hlY2tlci1ydWxlcy9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvc3BlY3RyYWwtc2VjdXJpdHkueW1sKSwgbyBfRXh0cmEgU2VjdXJpdHkgQ2hlY2tzXwotIFtzcGVjdHJhbC1mdWxsLnltbF0oaHR0cHM6Ly9naXRodWIuY29tL2l0YWxpYS9hcGktb2FzLWNoZWNrZXItcnVsZXMvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL3NwZWN0cmFsLWZ1bGwueW1sKSwgbyBfSXRhbGlhbiBHdWlkZWxpbmVzIEV4dGVuZGVkICsgRXh0cmEgU2VjdXJpdHkgQ2hlY2tzXwoKIyMg8J+UjSBFc2VndWlyZSBpbCBjaGVjayBkZWxsZSBBUEkKCklsIG1vZG8gcGnDuSBzZW1wbGljZSBwZXIgY29udHJvbGxhcmUgdW4nQVBJIMOoIGRpIHV0aWxpenphcmUgcXVlc3RvIGNoZWNrZXIsIGluc2VyZW5kbyBpbCBjb250ZW51dG8gZGVsbCdBUEkgZSBzZWxlemlvbmFuZG8gdW4gc2V0IGRpIHJlZ29sZSAoZGkgZGVmYXVsdDogX0l0YWxpYW4gR3VpZGVsaW5lc18pLiBDbGljY2FuZG8gc3UgIkNoZWNrIiBzYXLDoCBwb3NzaWJpbGUgZXNhbWluYXJlIHR1dHRpIGdsaSBlcnJvcmksIHdhcm5pbmcsIGluZm8gZSBoaW50IHJpbGV2YXRpIGRhIFNwZWN0cmFsLgoKSW4gYWx0ZXJuYXRpdmEsIMOoIHBvc3NpYmlsZSBmYXJlIGlsIGNoZWNrIGRlbGxlIEFQSSB0cmFtaXRlIElERSwgQ0xJIGUgR2l0SHViIEFjdGlvbjogc2kgcmltYW5kYSBhbCBzZWd1ZW50ZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vaXRhbGlhL2FwaS1vYXMtY2hlY2tlci1ydWxlcy9ibG9iL21haW4vUkVBRE1FLm1kKSBkZWwgcmVwbyBbYXBpLW9hcy1jaGVja2VyLXJ1bGVzXShodHRwczovL2dpdGh1Yi5jb20vaXRhbGlhL2FwaS1vYXMtY2hlY2tlci1ydWxlcykgcGVyIHR1dHRlIGxlIGluZm9ybWF6aW9uaS4KCiMjIPCfmoAgQXZ2aWFyZSBsYSB3ZWIgYXBwIGluIGxvY2FsZQoKUXVlc3RhIHdlYiBhcHAgw6ggYmFzYXRhIHN1bGxhIGxpYnJlcmlhIFJlYWN0IGUgdXNhIFdlYnBhY2sgcGVyIGdlbmVyYXJlIGlsIGJ1bmRsZSBkZWxsJ2FwcGxpY2F6aW9uZSBjb24gaWwgc3VwcG9ydG8gZGkgQmFiZWwgcGVyIHRyYW5zcGlsYXJlIGlsIGNvZGljZSBKYXZhU2NyaXB0LgoKUGVyIGF2dmlhcmUgbCdhcHBsaWNhemlvbmU6CgpgYGBiYXNoCiQgeWFybgokIHlhcm4gc3RhcnQKYGBgCgpJbiBhbHRlcm5hdGl2YToKCmBgYGJhc2gKJCBkb2NrZXItY29tcG9zZSB1cCAtLWJ1aWxkIHN0YXJ0CmBgYAoKZSBhbCB0ZXJtaW5lIGRlbGxhIGNvbXBpbGF6aW9uZSBjb2xsZWdhcnNpIGEgaHR0cDovL2xvY2FsaG9zdDozMDAwCgojIyDinI3wn4+7IENvbnRyaWJ1dGkKCkdyYXppZSBhIFBhb2xvIEZhbG9tbywKRnJhbmNlc2NvIE1hcmludWNjaSwKR2l1c2VwcGUgRGUgTWFyY28KZSBWaW5jZW56byBDaGlhbmVzZSBwZXIgaSBzdWdnZXJpbWVudGkgZWQgaSBjb250cmlidXRpIQ== readmeEtag: '"4952f2f11bd0d6dc9631597104b91d23f6fea996"' readmeLastModified: Tue, 23 Jul 2024 12:24:23 GMT repositoryId: 244353016 description: An OpenAPI 3 checker based on spectral. created: '2020-03-02T11:23:30Z' updated: '2024-07-23T12:45:07Z' language: JavaScript archived: false stars: 59 watchers: 11 forks: 23 owner: italia logo: https://avatars.githubusercontent.com/u/15377824?v=4 repoEtag: '"f8553ef83cdefecbe479539a286c4ba12d5be75790508c7af5fbb0510cbf1991"' repoLastModified: Tue, 23 Jul 2024 12:45:07 GMT foundInMaster: true category: Description Validators id: d0d29c360728cda0cf8a4698f3c79f4b - source: openapi3 tags repository: https://github.com/wol-soft/php-json-schema-model-generator v3: true repositoryMetadata: base64Readme: >- WyFbTGF0ZXN0IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3Yvd29sLXNvZnQvcGhwLWpzb24tc2NoZW1hLW1vZGVsLWdlbmVyYXRvci5zdmcpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvd29sLXNvZnQvcGhwLWpzb24tc2NoZW1hLW1vZGVsLWdlbmVyYXRvcikKWyFbTWluaW11bSBQSFAgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9waHAtJTNFJTNEJTIwOC4wLTg4OTJCRi5zdmcpXShodHRwczovL3BocC5uZXQvKQpbIVtNYWludGFpbmFiaWxpdHldKGh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvN2ViMjllNzM2NmRjM2Q2YTVmNDQvbWFpbnRhaW5hYmlsaXR5KV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL3dvbC1zb2Z0L3BocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3IvbWFpbnRhaW5hYmlsaXR5KQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS93b2wtc29mdC9waHAtanNvbi1zY2hlbWEtbW9kZWwtZ2VuZXJhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL21haW4ueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS93b2wtc29mdC9waHAtanNvbi1zY2hlbWEtbW9kZWwtZ2VuZXJhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL21haW4ueW1sKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi93b2wtc29mdC9waHAtanNvbi1zY2hlbWEtbW9kZWwtZ2VuZXJhdG9yL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL3dvbC1zb2Z0L3BocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3I/YnJhbmNoPW1hc3RlcikKWyFbTUlUIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L2wvd29sLXNvZnQvcGhwLWpzb24tc2NoZW1hLW1vZGVsLWdlbmVyYXRvci5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vd29sLXNvZnQvcGhwLWpzb24tc2NoZW1hLW1vZGVsLWdlbmVyYXRvci9ibG9iL21hc3Rlci9MSUNFTlNFKQpbIVtEb2N1bWVudGF0aW9uIFN0YXR1c10oaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvcGhwLWpzb24tc2NoZW1hLW1vZGVsLWdlbmVyYXRvci9iYWRnZS8/dmVyc2lvbj1sYXRlc3QpXShodHRwczovL3BocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3IucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Lz9iYWRnZT1sYXRlc3QpCgojIHBocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3IKR2VuZXJhdGVzIFBIUCBtb2RlbCBjbGFzc2VzIGZyb20gSlNPTi1TY2hlbWEgZmlsZXMgaW5jbHVkaW5nIHZhbGlkYXRpb24gYW5kIHByb3ZpZGluZyBhIGZsdWVudCBhdXRvIGNvbXBsZXRpb24gZm9yIHRoZSBnZW5lcmF0ZWQgY2xhc3Nlcy4KCiMjIFRhYmxlIG9mIENvbnRlbnRzICMjCgoqIFtNb3RpdmF0aW9uXSgjTW90aXZhdGlvbikKKiBbUmVxdWlyZW1lbnRzXSgjUmVxdWlyZW1lbnRzKQoqIFtJbnN0YWxsYXRpb25dKCNJbnN0YWxsYXRpb24pCiogW0Jhc2ljIHVzYWdlXSgjQmFzaWMtdXNhZ2UpCiogW0NvbmZpZ3VyaW5nIHVzaW5nIHRoZSBHZW5lcmF0b3JDb25maWd1cmF0aW9uXSgjQ29uZmlndXJpbmctdXNpbmctdGhlLUdlbmVyYXRvckNvbmZpZ3VyYXRpb24pCiogW0V4YW1wbGVzXSgjRXhhbXBsZXMpCiogW0hvdyB0aGUgaGVjayBkb2VzIHRoaXMgd29yaz9dKCNIb3ctdGhlLWhlY2stZG9lcy10aGlzLXdvcmspCiogW1Rlc3RzXSgjVGVzdHMpCiogW0RvY3NdKCNEb2NzKQoKIyMgTW90aXZhdGlvbiAjIwoKU2ltcGxlIGV4YW1wbGUgZnJvbSBhIFBIUCBhcHBsaWNhdGlvbjogeW91IGRlZmluZSBhbmQgZG9jdW1lbnQgYW4gQVBJIHdpdGggc3dhZ2dlciBhbm5vdGF0aW9ucyBhbmQgSlNPTi1TY2hlbWEgbW9kZWxzLiBOb3cgeW91IHdhbnQgdG8gdXNlIG1vZGVscyBpbiB5b3VyIGNvbnRyb2xsZXIgYWN0aW9ucyBpbnN0ZWFkIG9mIG1hbnVhbGx5IGFjY2Vzc2luZyB0aGUgcmVxdWVzdCBkYXRhIChlZy4gYXJyYXkgc3R1ZmYpLiBBZGRpdGlvbmFsbHkgeW91ciBzY2hlbWEgYWxyZWFkeSBkZWZpbmVzIHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGZvciB0aGUgbW9kZWxzLiBXaHkgZHVwbGljYXRlIHRoaXMgcnVsZXMgaW50byB5b3VyIG1hbnVhbGx5IHdyaXR0ZW4gY29kZT8gSW5zdGVhZCB5b3UgY2FuIHNldCB1cCBhIG1pZGRsZXdhcmUgd2hpY2ggaW5zdGFudGlhdGVzIG1vZGVscyBnZW5lcmF0ZWQgd2l0aCB0aGlzIGxpYnJhcnkgYW5kIGZlZWQgdGhlIG1vZGVsIHdpdGggdGhlIHJlcXVlc3QgZGF0YS4gTm93IHlvdSBoYXZlIGEgdmFsaWRhdGVkIG1vZGVsIHdoaWNoIHlvdSBjYW4gdXNlIGluIHlvdXIgY29udHJvbGxlciBhY3Rpb24uIFdpdGggZnVsbCBhdXRvIGNvbXBsZXRpb24gd2hlbiB3b3JraW5nIHdpdGggbmVzdGVkIG9iamVjdHMuIFlheSEKCiMjIFJlcXVpcmVtZW50cyAjIwoKLSBSZXF1aXJlcyBhdCBsZWFzdCBQSFAgOC4wCi0gUmVxdWlyZXMgdGhlIFBIUCBleHRlbnNpb25zIGV4dC1qc29uIGFuZCBleHQtbWJzdHJpbmcKCiMjIEluc3RhbGxhdGlvbiAjIwoKVGhlIHJlY29tbWVuZGVkIHdheSB0byBpbnN0YWxsIHBocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3IgaXMgdGhyb3VnaCBbQ29tcG9zZXJdKGh0dHA6Ly9nZXRjb21wb3Nlci5vcmcpOgpgYGAKJCBjb21wb3NlciByZXF1aXJlIC0tZGV2IHdvbC1zb2Z0L3BocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3IKJCBjb21wb3NlciByZXF1aXJlIHdvbC1zb2Z0L3BocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3ItcHJvZHVjdGlvbgpgYGAKClRvIGF2b2lkIGFkZGluZyBhbGwgZGVwZW5kZW5jaWVzIG9mIHRoZSBwaHAtanNvbi1zY2hlbWEtbW9kZWwtZ2VuZXJhdG9yIHRvIHlvdXIgcHJvZHVjdGlvbiBkZXBlbmRlbmNpZXMgaXQncyByZWNvbW1lbmRlZCB0byBhZGQgdGhlIGxpYnJhcnkgYXMgYSBkZXYtZGVwZW5kZW5jeSBhbmQgaW5jbHVkZSB0aGUgW3dvbC1zb2Z0L3BocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3ItcHJvZHVjdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3dvbC1zb2Z0L3BocC1qc29uLXNjaGVtYS1tb2RlbC1nZW5lcmF0b3ItcHJvZHVjdGlvbikgbGlicmFyeS4gVGhlIHByb2R1Y3Rpb24gbGlicmFyeSBwcm92aWRlcyBhbGwgY2xhc3NlcyB0byBydW4gdGhlIGdlbmVyYXRlZCBjb2RlLiBHZW5lcmF0aW5nIHRoZSBjbGFzc2VzIHNob3VsZCBlaXRoZXIgYmUgYSBzdGVwIGRvbmUgaW4gdGhlIGRldmVsb3BtZW50IGVudmlyb25tZW50IG9yIGFzIGEgYnVpbGQgc3RlcCBvZiB5b3VyIGFwcGxpY2F0aW9uICh3aGljaCBpcyB0aGUgcmVjb21tZW5kZWQgd29ya2Zsb3cpLgoKIyMgQmFzaWMgdXNhZ2UgIyMKCkNoZWNrIG91dCB0aGUgW2RvY3NdKGh0dHBzOi8vcGhwLWpzb24tc2NoZW1hLW1vZGVsLWdlbmVyYXRvci5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKSBmb3IgbW9yZSBkZXRhaWxzLgoKVGhlIGJhc2Ugb2JqZWN0IGZvciBnZW5lcmF0aW5nIG1vZGVscyBpcyB0aGUgKk1vZGVsR2VuZXJhdG9yKi4gQWZ0ZXIgeW91IGhhdmUgY3JlYXRlZCBhIEdlbmVyYXRvciB5b3UgY2FuIHVzZSB0aGUgb2JqZWN0IHRvIGdlbmVyYXRlIHlvdXIgbW9kZWwgY2xhc3NlcyB3aXRob3V0IGFueSBmdXJ0aGVyIGNvbmZpZ3VyYXRpb246CgpgYGBwaHAKKG5ldyBNb2RlbEdlbmVyYXRvcigpKQogICAgLT5nZW5lcmF0ZU1vZGVscyhuZXcgUmVjdXJzaXZlRGlyZWN0b3J5UHJvdmlkZXIoX19ESVJfXyAuICcvc2NoZW1hJyksIF9fRElSX18gLiAnL3Jlc3VsdCcpOwpgYGAKVGhlIGZpcnN0IHBhcmFtZXRlciBvZiB0aGUgKmdlbmVyYXRlTW9kZWxzKiBtZXRob2QgbXVzdCBiZSBhIGNsYXNzIGltcGxlbWVudGluZyB0aGUgKlNjaGVtYVByb3ZpZGVySW50ZXJmYWNlKi4gVGhlIHByb3ZpZGVyIGZldGNoZXMgdGhlIEpTT04gc2NoZW1hIGZpbGVzIGFuZCBwcm92aWRlcyB0aGVtIGZvciB0aGUgZ2VuZXJhdG9yLiBUaGUgZm9sbG93aW5nIHByb3ZpZGVycyBhcmUgYXZhaWxhYmxlOgoKUHJvdmlkZXIgfCBEZXNjcmlwdGlvbgotLS0gfCAtLS0KUmVjdXJzaXZlRGlyZWN0b3J5UHJvdmlkZXIgfCBGZXRjaGVzIGFsbCAqLmpzb24gZmlsZXMgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIGRpcmVjdG9yeS4gRWFjaCBmaWxlIG11c3QgY29udGFpbiBhIEpTT04gU2NoZW1hIG9iamVjdCBkZWZpbml0aW9uIG9uIHRoZSB0b3AgbGV2ZWwKT3BlbkFQSXYzUHJvdmlkZXIgfCBGZXRjaGVzIGFsbCBvYmplY3RzIGRlZmluZWQgaW4gdGhlIGAjL2NvbXBvbmVudHMvc2NoZW1hcyBzZWN0aW9uYCBvZiBhbiBPcGVuIEFQSSB2MyBzcGVjIGZpbGUKClRoZSBzZWNvbmQgcGFyYW1ldGVyIG11c3QgcG9pbnQgdG8gYW4gZXhpc3RpbmcgYW5kIGVtcHR5IGRpcmVjdG9yeSAoeW91IG1heSB1c2UgdGhlIGBnZW5lcmF0ZU1vZGVsRGlyZWN0b3J5YCBoZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSB5b3VyIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSkuIFRoaXMgZGlyZWN0b3J5IHdpbGwgY29udGFpbiB0aGUgZ2VuZXJhdGVkIFBIUCBjbGFzc2VzIGFmdGVyIHRoZSBnZW5lcmF0b3IgaXMgZmluaXNoZWQuCgpBcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgeW91IGNhbiBzZXQgdXAgYSAqR2VuZXJhdG9yQ29uZmlndXJhdGlvbiogb2JqZWN0IChjaGVjayBvdXQgdGhlIGRvY3MgZm9yIGFsbCBhdmFpbGFibGUgb3B0aW9ucykgdG8gY29uZmlndXJlIHlvdXIgR2VuZXJhdG9yIGFuZC9vciB1c2UgdGhlIG1ldGhvZCAqZ2VuZXJhdGVNb2RlbERpcmVjdG9yeSogdG8gZ2VuZXJhdGUgeW91ciBtb2RlbCBkaXJlY3RvcnkgKHdpbGwgZ2VuZXJhdGUgdGhlIGRpcmVjdG9yeSBpZiBpdCBkb2Vzbid0IGV4aXN0OyBpZiBpdCBleGlzdHMsIGFsbCBjb250YWluZWQgZmlsZXMgYW5kIGZvbGRlcnMgd2lsbCBiZSByZW1vdmVkIGZvciBhIGNsZWFuIGdlbmVyYXRpb24gcHJvY2Vzcyk6CgpgYGBwaHAKJGdlbmVyYXRvciA9IG5ldyBNb2RlbEdlbmVyYXRvcigKICAgIChuZXcgR2VuZXJhdG9yQ29uZmlndXJhdGlvbigpKQogICAgICAgIC0+c2V0TmFtZXNwYWNlUHJlZml4KCdNeUFwcFxNb2RlbCcpCiAgICAgICAgLT5zZXRJbW11dGFibGUoZmFsc2UpCik7CgokZ2VuZXJhdG9yCiAgICAtPmdlbmVyYXRlTW9kZWxEaXJlY3RvcnkoX19ESVJfXyAuICcvcmVzdWx0Jyk7CiAgICAtPmdlbmVyYXRlTW9kZWxzKG5ldyBSZWN1cnNpdmVEaXJlY3RvcnlQcm92aWRlcihfX0RJUl9fIC4gJy9zY2hlbWEnKSwgX19ESVJfXyAuICcvcmVzdWx0Jyk7CmBgYAoKVGhlIGdlbmVyYXRvciB3aWxsIGNoZWNrIHRoZSBnaXZlbiBzb3VyY2UgZGlyZWN0b3J5IHJlY3Vyc2l2ZSBhbmQgY29udmVydCBhbGwgZm91bmQgKi5qc29uIGZpbGVzIHRvIG1vZGVscy4gQWxsIEpTT04tU2NoZW1hIGZpbGVzIGluc2lkZSB0aGUgc291cmNlIGRpcmVjdG9yeSBtdXN0IHByb3ZpZGUgYSBzY2hlbWEgb2YgYW4gb2JqZWN0LgoKIyMgRXhhbXBsZXMgIyMKClRoZSBkaXJlY3RvcnkgYC4vdGVzdHMvbWFudWFsYCBjb250YWlucyBzb21lIGVhc3kgZXhhbXBsZXMgd2hpY2ggc2hvdyB0aGUgdXNhZ2UuIEFmdGVyIGluc3RhbGxpbmcgdGhlIGRlcGVuZGVuY2llcyBvZiB0aGUgbGlicmFyeSB2aWEgYGNvbXBvc2VyIHVwZGF0ZWAgeW91IGNhbiBleGVjdXRlIGBwaHAgLi90ZXN0cy9tYW51YWwvdGVzdC5waHBgIHRvIGdlbmVyYXRlIHRoZSBleGFtcGxlcyBhbmQgcGxheSBhcm91bmQgd2l0aCBzb21lIEpTT04tU2NoZW1hIGZpbGVzIHRvIGV4cGxvcmUgdGhlIGxpYnJhcnkuCgpMZXQncyBoYXZlIGEgbG9vayBpbnRvIGFuIGVhc3kgZXhhbXBsZS4gV2UgY3JlYXRlIGEgc2ltcGxlIG1vZGVsIGZvciBhIHBlcnNvbiB3aXRoIGEgbmFtZSBhbmQgYW4gb3B0aW9uYWwgYWdlLiBPdXIgcmVzdWx0aW5nIEpTT04tU2NoZW1hOgpgYGBqc29uCnsKICAiJGlkIjogIlBlcnNvbiIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicHJvcGVydGllcyI6IHsKICAgICJuYW1lIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9LAogICAgImFnZSI6IHsKICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICJtaW5pbXVtIjogMAogICAgfQogIH0sCiAgInJlcXVpcmVkIjogWwogICAgIm5hbWUiCiAgXQp9CmBgYAoKQWZ0ZXIgZ2VuZXJhdGluZyBhIGNsYXNzIHdpdGggdGhpcyBKU09OLVNjaGVtYSBvdXIgY2xhc3Mgd2l0aCB0aGUgbmFtZSBgUGVyc29uYCB3aWxsIHByb3ZpZGUgdGhlIGZvbGxvd2luZyBpbnRlcmZhY2U6CmBgYHBocAovLyB0aGUgY29uc3RydWN0b3IgdGFrZXMgYW4gYXJyYXkgd2l0aCBkYXRhIHdoaWNoIGlzIHZhbGlkYXRlZCBhbmQgYXBwbGllZCB0byB0aGUgbW9kZWwKcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRtb2RlbERhdGEpOwoKLy8gdGhlIG1ldGhvZCBnZXRSYXdNb2RlbERhdGFJbnB1dCBhbHdheXMgZGVsaXZlcnMgdGhlIHJhdyBpbnB1dCB3aGljaCB3YXMgcHJvdmlkZWQgb24gaW5zdGFudGlhdGlvbgpwdWJsaWMgZnVuY3Rpb24gZ2V0UmF3TW9kZWxEYXRhSW5wdXQoKTogYXJyYXk7CgovLyBnZXR0ZXJzIHRvIGZldGNoIHRoZSB2YWxpZGF0ZWQgcHJvcGVydGllcy4gQWdlIGlzIG51bGxhYmxlIGFzIGl0J3Mgbm90IHJlcXVpcmVkCnB1YmxpYyBmdW5jdGlvbiBnZXROYW1lKCk6IHN0cmluZzsKcHVibGljIGZ1bmN0aW9uIGdldEFnZSgpOiA/aW50OwoKLy8gc2V0dGVycyB0byBjaGFuZ2UgdGhlIHZhbHVlcyBvZiB0aGUgbW9kZWwgYWZ0ZXIgaW5zdGFudGlhdGlvbiAob25seSBnZW5lcmF0ZWQgaWYgaW1tdXRhYmlsaXR5IGlzIGRpc2FibGVkKQpwdWJsaWMgZnVuY3Rpb24gc2V0TmFtZShzdHJpbmcgJG5hbWUpOiBQZXJzb247CnB1YmxpYyBmdW5jdGlvbiBzZXRBZ2UoP2ludCAkYWdlKTogUGVyc29uOwpgYGAKCk5vdyBsZXQncyBoYXZlIGEgbG9vayBhdCB0aGUgYmVoYXZpb3VyIG9mIHRoZSBnZW5lcmF0ZWQgbW9kZWw6CmBgYHBocAovLyBUaHJvd3MgYW4gZXhjZXB0aW9uIGFzIHRoZSByZXF1aXJlZCBuYW1lIGlzbid0IHByb3ZpZGVkLgovLyBFeGNlcHRpb246ICdNaXNzaW5nIHJlcXVpcmVkIHZhbHVlIGZvciBuYW1lJwokcGVyc29uID0gbmV3IFBlcnNvbihbXSk7CgovLyBUaHJvd3MgYW4gZXhjZXB0aW9uIGFzIHRoZSBuYW1lIHByb3ZpZGVzIGFuIGludmFsaWQgdmFsdWUuCi8vIEV4Y2VwdGlvbjogJ0ludmFsaWQgdHlwZSBmb3IgbmFtZS4gUmVxdWlyZXMgc3RyaW5nLCBnb3QgaW50JwokcGVyc29uID0gbmV3IFBlcnNvbihbJ25hbWUnID0+IDEyXSk7CgovLyBUaHJvd3MgYW4gZXhjZXB0aW9uIGFzIHRoZSBhZ2UgY29udGFpbnMgYW4gaW52YWxpZCB2YWx1ZSBkdWUgdG8gdGhlIG1pbmltdW0gZGVmaW5pdGlvbi4KLy8gRXhjZXB0aW9uOiAnVmFsdWUgZm9yIGFnZSBtdXN0IG5vdCBiZSBzbWFsbGVyIHRoYW4gMCcKJHBlcnNvbiA9IG5ldyBQZXJzb24oWyduYW1lJyA9PiAnQWxiZXJ0JywgJ2FnZScgPT4gLTFdKTsKCi8vIEEgdmFsaWQgZXhhbXBsZSBhcyB0aGUgYWdlIGlzbid0IHJlcXVpcmVkCiRwZXJzb24gPSBuZXcgUGVyc29uKFsnbmFtZScgPT4gJ0FsYmVydCddKTsKJHBlcnNvbi0+Z2V0TmFtZSgpOyAvLyByZXR1cm5zICdBbGJlcnQnCiRwZXJzb24tPmdldEFnZSgpOyAvLyByZXR1cm5zIE5VTEwKJHBlcnNvbi0+Z2V0UmF3TW9kZWxEYXRhSW5wdXQoKTsgLy8gcmV0dXJucyBbJ25hbWUnID0+ICdBbGJlcnQnXQoKLy8gSWYgc2V0dGVycyBhcmUgZ2VuZXJhdGVkIHRoZSBzZXR0ZXJzIGFsc28gcGVyZm9ybSB2YWxpZGF0aW9ucy4KLy8gRXhjZXB0aW9uOiAnVmFsdWUgZm9yIGFnZSBtdXN0IG5vdCBiZSBzbWFsbGVyIHRoYW4gMCcKJHBlcnNvbi0+c2V0QWdlKC0xMCk7CmBgYAoKTW9yZSBjb21wbGV4IGV4Y2VwdGlvbiBtZXNzYWdlcyBlZy4gZnJvbSBhIFthbGxPZl0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvdW5kZXJzdGFuZGluZy1qc29uLXNjaGVtYS9yZWZlcmVuY2UvY29tYmluaW5nLmh0bWwjYWxsb2YpIGNvbXBvc2l0aW9uIG1heSBsb29rIGxpa2U6CmBgYApJbnZhbGlkIHZhbHVlIGZvciBBbmltYWwgZGVjbGluZWQgYnkgY29tcG9zaXRpb24gY29uc3RyYWludC4KICBSZXF1aXJlcyB0byBtYXRjaCAzIGNvbXBvc2l0aW9uIGVsZW1lbnRzIGJ1dCBtYXRjaGVkIDEgZWxlbWVudHMuCiAgLSBDb21wb3NpdGlvbiBlbGVtZW50ICMxOiBGYWlsZWQKICAgICogVmFsdWUgZm9yIGFnZSBtdXN0IG5vdCBiZSBzbWFsbGVyIHRoYW4gMAogIC0gQ29tcG9zaXRpb24gZWxlbWVudCAjMjogVmFsaWQKICAtIENvbXBvc2l0aW9uIGVsZW1lbnQgIzM6IEZhaWxlZAogICAgKiBWYWx1ZSBmb3IgbGVncyBtdXN0IG5vdCBiZSBzbWFsbGVyIHRoYW4gMgogICAgKiBWYWx1ZSBmb3IgbGVncyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMgpgYGAKCiMjIEhvdyB0aGUgaGVjayBkb2VzIHRoaXMgd29yaz8gIyMKClRoZSBjbGFzcyBnZW5lcmF0aW9uIHByb2Nlc3MgYmFzaWNhbGx5IHNwbGl0cyB1cCBpbnRvIHRocmVlIHRvIGZvdXIgc3RlcHM6CgotIFNjYW4gdGhlIGdpdmVuIHNvdXJjZSBkaXJlY3RvcnkgdG8gZmluZCBhbGwgKi5qc29uIGZpbGVzIHdoaWNoIHNob3VsZCBiZSBwcm9jZXNzZWQuCi0gTG9vcCBvdmVyIGFsbCBzY2hlbWFzIHdoaWNoIHNob3VsZCBiZSBnZW5lcmF0ZWQuIFRoaXMgaXMgdGhlIG1haW4gc3RlcCBvZiB0aGUgY2xhc3MgZ2VuZXJhdGlvbi4gTm93IGVhY2ggc2NoZW1hIGlzIHBhcnNlZCBhbmQgYSBTY2hlbWEgbW9kZWwgY2xhc3Mgd2hpY2ggaG9sZHMgdGhlIHByb3BlcnRpZXMgZm9yIHRoZSBnZW5lcmF0ZWQgbW9kZWwgaXMgcG9wdWxhdGVkLiBBbGwgdmFsaWRhdGlvbiBydWxlcyBkZWZpbmVkIGluIHRoZSBKU09OLVNjaGVtYSBhcmUgdHJhbnNsYXRlZCBpbnRvIHBsYWluIFBIUCBjb2RlLiBBZnRlciB0aGUgbW9kZWwgaXMgZmluaXNoZWQgYSBSZW5kZXJKb2IgaXMgZ2VuZXJhdGVkIGFuZCBhZGRlZCB0byB0aGUgUmVuZGVyUXVldWUuIElmIGEgSlNPTi1TY2hlbWEgY29udGFpbnMgbmVzdGVkIG9iamVjdHMgb3IgcmVmZXJlbmNlcyBtdWx0aXBsZSBSZW5kZXJKb2JzIG1heSBiZSBhZGRlZCB0byB0aGUgUmVuZGVyUXVldWUgZm9yIGEgZ2l2ZW4gc2NoZW1hIGZpbGUuCi0gSWYgcG9zdCBwcm9jZXNzb3JzIGFyZSBkZWZpbmVkIGZvciB0aGUgZ2VuZXJhdGlvbiBwcm9jZXNzIHRoZSBwb3N0IHByb2Nlc3NvcnMgd2lsbCBiZSBhcHBsaWVkLgotIEFmdGVyIGFsbCBzY2hlbWEgZmlsZXMgaGF2ZSBiZWVuIHBhcnNlZCB3aXRob3V0IGFuIGVycm9yIHRoZSBSZW5kZXJRdWV1ZSB3aWxsIGJlIHdvcmtlZCBvZmYuIEFsbCBwcmV2aW91cyBhZGRlZCBSZW5kZXJKb2JzIHdpbGwgYmUgZXhlY3V0ZWQgYW5kIHRoZSBQSFAgY2xhc3NlcyB3aWxsIGJlIHNhdmVkIHRvIHRoZSBmaWxlc3lzdGVtIGF0IHRoZSBnaXZlbiBkZXN0aW5hdGlvbiBkaXJlY3RvcnkuCgojIyBUZXN0cyAjIwoKVGhlIGxpYnJhcnkgaXMgdGVzdGVkIHZpYSBbUEhQVW5pdF0oaHR0cHM6Ly9waHB1bml0LmRlLykuCgpBZnRlciBpbnN0YWxsaW5nIHRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGxpYnJhcnkgdmlhIGBjb21wb3NlciB1cGRhdGVgIHlvdSBjYW4gZXhlY3V0ZSB0aGUgdGVzdHMgd2l0aCBgLi92ZW5kb3IvYmluL3BocHVuaXRgIChMaW51eCkgb3IgYHZlbmRvclxiaW5ccGhwdW5pdC5iYXRgIChXaW5kb3dzKS4gVGhlIHRlc3QgbmFtZXMgYXJlIG9wdGltaXplZCBmb3IgdGhlIHVzYWdlIG9mIHRoZSBgLS10ZXN0ZG94YCBvdXRwdXQuIE1vc3QgdGVzdHMgYXJlIGF0b21pYyBpbnRlZ3JhdGlvbiB0ZXN0cyB3aGljaCB3aWxsIHNldCB1cCBhIEpTT04tU2NoZW1hIGZpbGUgYW5kIGdlbmVyYXRlIGEgY2xhc3MgZnJvbSB0aGUgc2NoZW1hIGFuZCB0ZXN0IHRoZSBiZWhhdmlvdXIgb2YgdGhlIGdlbmVyYXRlZCBjbGFzcyBhZnRlcndhcmRzLgoKRHVyaW5nIHRoZSBleGVjdXRpb24gdGhlIHRlc3RzIHdpbGwgY3JlYXRlIGEgZGlyZWN0b3J5IFBIUE1vZGVsR2VuZXJhdG9yVGVzdCBpbiB0bXAgd2hlcmUgSlNPTi1TY2hlbWEgZmlsZXMgYW5kIFBIUCBjbGFzc2VzIHdpbGwgYmUgd3JpdHRlbiB0by4KCklmIGEgdGVzdCB3aGljaCBjcmVhdGVzIGEgUEhQIGNsYXNzIGZyb20gYSBKU09OLVNjaGVtYSBmYWlscyB0aGUgSlNPTi1TY2hlbWEgYW5kIHRoZSBnZW5lcmF0ZWQgY2xhc3MoZXMpIHdpbGwgYmUgZHVtcGVkIHRvIHRoZSBkaXJlY3RvcnkgYC4vZmFpbGVkLWNsYXNzZXNgCgojIyBEb2NzICMjCgpUaGUgW2RvY3NdKGh0dHBzOi8vcGhwLWpzb24tc2NoZW1hLW1vZGVsLWdlbmVyYXRvci5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKSBmb3IgdGhlIGxpYnJhcnkgaXMgZ2VuZXJhdGVkIHdpdGggW1NwaGlueF0oaHR0cHM6Ly93d3cuc3BoaW54LWRvYy5vcmcvZW4vbWFzdGVyLykuCgpUbyBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbiBpbnN0YWxsIFNwaGlueCwgZW50ZXIgdGhlIGRvY3MgZGlyZWN0b3J5IGFuZCBleGVjdXRlIGBtYWtlIGh0bWxgIChMaW51eCkgb3IgYG1ha2UuYmF0IGh0bWxgIChXaW5kb3dzKS4gVGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBkaXJlY3RvcnkgYC4vZG9jcy9idWlsZGAuCgpUaGUgZG9jdW1lbnRhdGlvbiBob3N0ZWQgYXQgW1JlYWQgdGhlIERvY3NdKGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnLykgaXMgdXBkYXRlZCBvbiBlYWNoIHB1c2guCg== readmeEtag: '"c4180c82147b3f9064cdfbc175b0b640619f3cd5"' readmeLastModified: Wed, 24 Jul 2024 12:13:20 GMT repositoryId: 130233015 description: >- Creates (immutable) PHP model classes from JSON-Schema files including all validation rules as PHP code created: '2018-04-19T15:03:37Z' updated: '2024-09-04T11:29:07Z' language: PHP archived: false stars: 59 watchers: 3 forks: 12 owner: wol-soft logo: https://avatars.githubusercontent.com/u/14750468?v=4 license: MIT repoEtag: '"a1430732d97d681cb75d3f66b3fb3fdb6445f2f74977549bcbc0fab8c982f510"' repoLastModified: Wed, 04 Sep 2024 11:29:07 GMT foundInMaster: true id: 66096cd4d636503d8f7fc479dbf415f6 - source: openapi3 tags repository: https://github.com/eazybytes/openapi v3: true id: a9c0bde4fbedfc45a7eed13c72f3e382 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWNpZmljYXRpb24gJiBTd2FnZ2VyIFRvb2xzIC0gWmVybyBUbyBNYXN0ZXIKClshW0ltYWdlXShodHRwczovL2dpdGh1Yi5jb20vZWF6eWJ5dGVzL29wZW5hcGkvYmxvYi9tYWluL29wZW5hcGkucG5nICJPcGVuQVBJIFNwZWNpZmljYXRpb24gJmFtcDsgU3dhZ2dlciBUb29scyAtIFplcm8gVG8gTWFzdGVyIildKGh0dHBzOi8vd3d3LnVkZW15LmNvbS9jb3Vyc2Uvb3BlbmFwaS1zcGVjaWZpY2F0aW9uLXN3YWdnZXItdG9vbHMtemVyby10by1tYXN0ZXIvP3JlZmVycmFsQ29kZT1GMDAyQTlBNzk5REIxMjZDRDE4OSkKCioqJ09wZW5BUEkgU3BlY2lmaWNhdGlvbiAmIFN3YWdnZXIgVG9vbHMgLSBaZXJvIFRvIE1hc3RlcicqKiBjb3Vyc2Ugd2lsbCBoZWxwIGluIHVuZGVyc3RhbmRpbmcgYWJvdXQgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBhbmQgaG93IHRvIGRlc2NyaWJlLCBkb2N1bWVudCBBUElzIHVzaW5nIE9wZW5BUEkgJiBTd2FnZ2VyIHRvb2xzLgoKIyMgVG9waWNzIGNvdmVyZWQgaW4gdGhlIGNvdXJzZQoKMSkgRGVzaWduaW5nIEFQSXMgd2l0aCBPcGVuQVBJIFNwZWNpZmljYXRpb25zIGFuZCBTd2FnZ2VyIFRvb2xzCjIpIERlc2NyaWJpbmcsIERvY3VtZW50aW5nIEFQSXMgZGV0YWlscyB1c2luZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zCjMpIEhpc3Rvcnkgb2YgT3BlbkFQSSAmIFN3YWdnZXIgYW5kIHJlbGF0aW9uIGJldHdlZW4gdGhlbQo0KSBEZXRhaWxzIGFib3V0IFN3YWdnZXIgdG9vbHMgbGlrZSBTd2FnZ2VyIEVkaXRvciwgU3dhZ2dlciBVSSxTd2FnZ2VySHViLFN3YWdnZXJIdWIgRXhwbG9yZSxTd2FnZ2VyIENvZGVnZW4gZXRjLgo1KSBIb3cgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBPcGVuQVBJIGluIGNvZGUgZmlyc3QgJiBEZXNpZ24gZmlyc3Qgc2NlbmFyaW9zCjYpIEhvdyB0byB3cml0ZSBhIHZhbGlkIE9wZW5BUEkgZG9jdW1lbnQgdXNpbmcgWUFNTCBzeW50YXgKNykgV3JpdGluZyByZS11c2FibGUgY29udGVudCBpbnNpZGUgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiB3aXRoIGNvbXBvbmVudHMKOCkgRGF0YSB0eXBlcyBzdXBwb3J0ZWQgYnkgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiAmIHRoZWlyIGRldGFpbHMKOSkgSW5oZXJpdGFuY2UgJiBwb2x5bW9ycGhpc20gaW5zaWRlIE9wZW5BUEkgd2l0aCBrZXl3b3JkcyBvbmVPZiwgYW55T2YsIGFsbE9mIGFuZCBub3QKMTAgKSBIb3cgdG8gZGVzY3JpYmUgQVBJcyBzZWN1cml0eSBpbnNpZGUgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbgoxMSkgSG93IHRvIG1vY2sgQVBJcyB3aXRoIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gJiBQcmlzbSBtb2NrIHNlcnZlcgoxMikgSG93IHRvIGdlbmVyYXRlIGNsaWVudCBjb2RlICYgc2VydmVyIHN0dWJzIHVzaW5nIE9wZW5BUEkgZm9yIHZhcmlvdXMgcG9wdWxhciBwcm9ncmFtbWluZyBsYW5ndWFnZXMgJiBmcmFtZXdvcmtzCjEzKSBEZXBsb3lpbmcgJiBIb3N0aW5nIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gaW5zaWRlIGEgR2l0SHViIHBhZ2UgYWxvbmcgd2l0aCBTd2FnZ2VyIFVJCjE0KSBQcm92aWRpbmcgZXhhbXBsZXMgZGF0YSBmb3IgdGhlIEFQSXMgaW5zaWRlIE9wZW4gQVBJIHNwZWNpZmljYXRpb24KMTUpIEFkdmFudGFnZXMgb2YgdXNpbmcgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiAKMTYpIFByb3ZpZGluZyBiZXR0ZXIgZG9jdW1lbnRhdGlvbiB1c2luZyBDb21tb25NYXJrIHN5bnRheCBpbnNpZGUgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiAKCiMjIFByZS1yZXF1aXNpdGUgZm9yIHRoZSBjb3Vyc2UKCi0gQmFzaWMga25vd2xlZGdlIG9uIEFQSXMKLSBJbnRlcmVzdCB0byBsZWFybiBhbmQgZXhwbG9yZSBhYm91dCBPcGVuQVBJICYgU3dhZ2dlciB0b29scwoKIyBJbXBvcnRhbnQgTGlua3MKCi0gT3BlbiBBUEkgV2Vic2l0ZSAtIGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZwotIFN3YWdnZXIgV2Vic2l0ZSAtIGh0dHBzOi8vc3dhZ2dlci5pbwotIFN3YWdnZXIgRWRpdG9yIC0gaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pbwotIFN3YWdnZXJIdWIgRXhwbG9yZSAtIGh0dHBzOi8vZXhwbG9yZS5zd2FnZ2VyaHViLmNvbS8KLSBPcGVuQVBJIE1hcCAtIGh0dHBzOi8vb3BlbmFwaS1tYXAuYXBpaGFuZHltYW4uaW8vCi0gT3BlbkFQSSAmIFNwcmluZ0Jvb3QgbGlicmFyeSAtIGh0dHBzOi8vc3ByaW5nZG9jLm9yZwotIExpc3Qgb2YgT3BlbkFQSSB0b29scyAtIGh0dHBzOi8vb3BlbmFwaS50b29scy8KLSBQcmlzbSBNb2NrIHNlcnZlciAtIGh0dHBzOi8vc3RvcGxpZ2h0LmlvL29wZW4tc291cmNlL3ByaXNtCi0gU1dBUEkgVGhlIFN0YXIgV2FycyBBUEkgLSBodHRwczovL3N3YXBpLmRldi8KLSBSRVFSRVMgTW9jayBBUElzIC0gaHR0cHM6Ly9yZXFyZXMuaW4K readmeEtag: '"27af9e6a7f448b9773e72076bee46be955120e2c"' readmeLastModified: Mon, 15 Jul 2024 11:00:32 GMT repositoryId: 512335029 description: 'OpenAPI Specification & Swagger Tools : Zero To Master - Code Examples' created: '2022-07-10T03:25:03Z' updated: '2024-08-28T16:03:33Z' language: Java archived: false stars: 57 watchers: 5 forks: 91 owner: eazybytes logo: https://avatars.githubusercontent.com/u/79041235?v=4 repoEtag: '"b0439e1b53128529ed2a08d31e40e6bc453e88962da32d6a9dba196eabd41aed"' repoLastModified: Wed, 28 Aug 2024 16:03:33 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/apis-guru/google-discovery-to-swagger v3: true id: f6231c27c4bcb653f01628db4e528f60 repositoryMetadata: base64Readme: >- IyBnb29nbGUtZGlzY292ZXJ5LXRvLXN3YWdnZXIKClNjcmlwdCBmb3IgY29udmVydGluZyBbR29vZ2xlIERpc2NvdmVyeSBmb3JtYXRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgaW50byBbT3BlbkFQSSAzLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKQoKIyMgVXNhZ2UKCklmIHlvdSBuZWVkIHRvIGNvbnZlcnQgc29tZSBBUElzIGZyb20gR29vZ2xlIERpc2NvdmVyeSBzZXJ2aWNlIEkgaGF2ZSBnb29kIG5ld3MgZm9yIHlvdSwgaXQgaXMgYWxyZWFkeSBbZG9uZV0oaHR0cHM6Ly9naXRodWIuY29tL0FQSXMtZ3VydS9vcGVuYXBpLWRpcmVjdG9yeS90cmVlL21hc3Rlci9BUElzL2dvb2dsZWFwaXMuY29tKSA6c21pbGU6CgpUaGlzIGxpYnJhcnkgd2FzIGRldmVsb3BlZCBvZiBhbm90aGVyIHByb2plY3Q6IFtBUElzLmd1cnVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElzLWd1cnUvb3BlbmFwaS1kaXJlY3RvcnkpIC0gV2lraXBlZGlhIGZvciBXZWIgQVBJcy4KICAKKipJTVBPUlRBTlQqKjogZG9uJ3QgdXNlIEdpdGh1YiBSQVcgbGlua3MgYmVjYXVzZSB0aGV5IGFyZSBzdWJqZWN0IHRvIGNoYW5nZS4KSW5zdGVhZCB5b3UgY2FuIGZpbmQgZGlyZWN0IGxpbmtzIGZvciBhbnkgcGFydGljdWxhciBBUEkgaW4gW3RoaXMgbGlzdF0oaHR0cHM6Ly9hcGkuYXBpcy5ndXJ1L3YyL2xpc3QuanNvbikuCkFsbCBPcGVuQVBJIGRvY3VtZW50cyBhcmUgdXBkYXRlZCwgdmFsaWRhdGVkIGFuZCBmaXhlZCBvbiBhIHdlZWtseSBiYXNpcy4KCklmIHlvdSBoYXZlIG5vbi1Hb29nbGUgQVBJIGRvY3VtZW50IGluIHRoaXMgZm9ybWF0IHBsZWFzZSBjb25zaWRlciBhZGRpbmcgaXQgdG8gdGhlIGNvbGxlY3Rpb246IGp1c3Qgb3BlbiBhbiBbaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElzLWd1cnUvb3BlbmFwaS1kaXJlY3RvcnkvaXNzdWVzL25ldykgd2l0aCBsaW5rIHRvIGl0LgoKSWYgaXQgaXMgYW4gKippbnRlcm5hbCoqIEFQSSB5b3UgY2FuIHVzZSBbYXBpLXNwZWMtY29udmVydGVyXShodHRwczovL2dpdGh1Yi5jb20vbHVjeWJvdC9hcGktc3BlYy1jb252ZXJ0ZXIpIHRvb2wgdG8gZG8gY29udmVyc2lvbiBmb3IgeW91LgoKIyMgQ3JlZGl0cwoqIFtJdmFuIEdvbmNoYXJvdl0oaHR0cHM6Ly9naXRodWIuY29tL0l2YW5Hb25jaGFyb3YvKQoqIFtNaWtlIFJhbHBoc29uXShodHRwczovL2dpdGh1Yi5jb20vTWlrZVJhbHBoc29uLykKCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"85bbb68a69ef685ca9e08d6316f9ebd8d06fc658"' readmeLastModified: Mon, 20 Feb 2023 15:02:12 GMT repositoryId: 31059694 description: Script for converting Google Discovery format into OpenAPI (swagger) 3.0 created: '2015-02-20T10:13:13Z' updated: '2024-07-04T14:57:17Z' language: JavaScript archived: false stars: 57 watchers: 6 forks: 16 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: MIT repoEtag: '"1784ac35b9be751a398155df6a7cea63e323b5fba869c7e700b337f2e78fafb9"' repoLastModified: Thu, 04 Jul 2024 14:57:17 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/apis-guru/aws2openapi v3: true repositoryMetadata: base64Readme: >- IyBhd3Myb3BlbmFwaQpBbWF6b24gV2ViIFNlcnZpY2VzIEFQSSBkZXNjcmlwdGlvbiB0byBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uCgojIyBXb3JrIGluIHByb2dyZXNzIC0gYmV0YSBxdWFsaXR5CgojIyMgSGFuZGxlcyBhbGwgY3VycmVudCAodjIpIEFXUyBqc29uIGFuZCB4bWwgc3BlY2lmaWNhdGlvbnMKClJlc3VsdGFudCBPcGVuQXBpIHNwZWNpZmljYXRpb25zIHBhc3MgW211bHRpcGxlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9zY2hlbWFzL3YzLjAvc2NoZW1hLnlhbWwpIFt2YWxpZGF0b3JzXShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS9vYXMta2l0KQoKIVtzY3JlZW5zaG90XShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vQVBJcy1ndXJ1L2F3czJvcGVuYXBpL21haW4vZG9jcy9zY3JlZW5zaG90LnBuZykKClRoZSByZXN1bHRzIG9mIHRoaXMgY29udmVydGVyIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0FQSXMtZ3VydS9vcGVuYXBpLWRpcmVjdG9yeS90cmVlL21hc3Rlci9BUElzL2FtYXpvbmF3cy5jb20pCgojIyMgVE9ETyAqKmhlbHAgd2FudGVkKioKCiogfn5GaXggaW5wdXQgaGVhZGVyIHBhcmFtZXRlciBzZWxlY3Rpdml0eX5+Ciogfn5Qcm9jZXNzIHByb3RvY29sOmVjMn5+Ciogfn5BdXRoZW50aWNhdGlvbn5+IFlvdSB3aWxsIGhhdmUgdG8gY2FsY3VsYXRlIEhNQUMgaGVhZGVycyBtYW51YWxseQoqIH5+cGFnaW5hdGlvbn5+Ciogfn5FeGFtcGxlc35+Ciogfn5XYWl0ZXJzfn4gKGFzIHZlbmRvciBleHRlbnNpb24pCiogVGVzdCBhZ2FpbnN0IGxpdmUgZW5kcG9pbnRzCiogVmVyaWZ5IG91dHB1dCBoZWFkZXIgbWFwcGluZ3MKKiBUZXN0IHBhdGgtd2l0aC1mcmFnbWVudCBoYWNrIHdvcmtzCiogVGVzdCBwYXRocyB3aXRoIGhhcmRjb2RlZCA/cGFyYW1ldGVycyB3b3JrCiogVmFsaWRhdGUgeG1sLWhhbmRsaW5nIGtleXdvcmQgdHJhbnNsYXRpb25zCg== readmeEtag: '"461c15eda2266d399b10a99de5e02ebbf93edbb6"' readmeLastModified: Wed, 15 Feb 2023 18:06:55 GMT repositoryId: 68278564 description: Amazon Web Services API description to OpenAPI 3.0 definition created: '2016-09-15T08:36:59Z' updated: '2024-06-25T22:52:57Z' language: JavaScript archived: false stars: 56 watchers: 5 forks: 10 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: MIT repoEtag: '"a904c33a367a219af0eb1bdf23787570dad661de4fcb7c52753fd16b7f86fa53"' repoLastModified: Tue, 25 Jun 2024 22:52:57 GMT foundInMaster: true category: Parsers id: 0309debf319b1f557d23ca065812fbc7 - source: openapi3 tags repository: https://github.com/sideko-inc/sideko v3: true id: 233ad37dec563fa65e5320d96629990b repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9zaWRla28uZGV2Ij4KICAgIDxpbWcgc3JjPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vc2lkZWtvLmFwcHNwb3QuY29tL3B1YmxpY19hc3NldHMvd2Vic2l0ZV9hc3NldHMvbG9nby1zeW1ib2wuc3ZnIiBoZWlnaHQ9Ijk2Ij4KICAgIDxoMyBhbGlnbj0iY2VudGVyIj5TaWRla28sIEluYy48L2gzPgogIDwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgUHV0IHRoZSBzcG90bGlnaHQgb24geW91ciBBUEkKPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9zaWRla28uZGV2Ij48c3Ryb25nPldlYnNpdGU8L3N0cm9uZz48L2E+IHwKICA8YSBocmVmPSJodHRwczovL2RvY3Muc2lkZWtvLmRldiI+PHN0cm9uZz5Eb2NzPC9zdHJvbmc+PC9hPgo8L3A+Cjxici8+CgojIyBXZWxjb21lIHRvIFNpZGVrbywgdGhlIHBsYXRmb3JtIGZvciBjcmVhdGluZyBSRVNUIEFQSSB0b29scyBhbmQgZG9jdW1lbnRhdGlvbi4KClVzZSBfT3BlbkFQSSAzLnhfIHNwZWNpZmljYXRpb25zIHRvIGdlbmVyYXRlOgotIFNES3Mgd2l0aCB0eXBlcywgdGVzdHMsIGF1dGhlbnRpY2F0aW9uLCBhbmQgY29kZSBzbmlwcGV0cwotIE1vY2sgc2VydmVycyB0aGF0IG1pbWljIHRoZSBiZWhhdmlvciBvZiB5b3VyIEFQSQotIEhvc3RlZCBBUEkgRG9jdW1lbnRhdGlvbiB0aGF0IHN0YXlzIHVwIHRvIGRhdGUgYXV0b21hdGljYWxseQoKIyMgSW5zdGFsbGF0aW9uCgpfSW5zdGFsbCB2aWEgcGlwXwoKYGBgYmFzaApwaXAgaW5zdGFsbCBzaWRla28tcHkKYGBgCgpPUgoKX0luc3RhbGwgdmlhIGN1cmwgKG1hY09TLCBMaW51eCwgV2luZG93cyB3LyBXU0wpXwoKYGBgYmFzaApjdXJsIC1mc1NMIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9TaWRla28tSW5jL3NpZGVrby9tYWluL2luc3RhbGwuc2ggfCBzaApgYGAKCiMjIFVzYWdlCgojIyMgTG9naW4KCllvdSBuZWVkIGEgU2lkZWtvIEFQSSBLZXkgdG8gZ2VuZXJhdGUgU0RLcy4gU3RhcnQgZ2VuZXJhdGluZyAqKmZyZWUqKiBTREtzIGJ5IGVpdGhlcjoKCjEuIFNpZ25pbmcgdXAgLyBsb2dnaW5nIGluIHZpYSB0aGUgQ0xJLCBvcgoyLiBTaWduaW5nIHVwIC8gbG9nZ2luZyBpbiBhdCBbYXBwLnNpZGVrby5kZXZdKGh0dHA6Ly9hcHAuc2lkZWtvLmRldikgKGBVc2VyIEljb24gPiBBUEkgS2V5c2ApCgpgYGBiYXNoCnNpZGVrbyBsb2dpbgojIENvbXBsZXRlIGxvZ2luIHZpYSBicm93c2VyIHBvcC11cApgYGAKCl9SdW4gYHNpZGVrbyBsb2dpbiAtLWhlbHBgIHRvIGxpc3QgYWxsIG9wdGlvbnMuXwoKVGhlIEFQSSBrZXkgaXMgcmVhZCBmcm9tIChpbiBvcmRlciBvZiBwcmlvcml0eSk6CgotIGAkUFdELy5zaWRla29gCi0gYCRIT01FLy5zaWRla29gCi0gYFNJREVLT19BUElfS0VZYCBlbnZpcm9ubWVudCB2YXJpYWJsZQoKIyMgRnJlZSB0aWVyCgojIyMgR2VuZXJhdGUgYW4gdW5tYW5hZ2VkIFNESyB3aXRoICJzaWRla28gc2RrIHRyeSIKCnwgTGFuZ3VhZ2UgICB8IFN1cHBvcnRlZCB8CnwgLS0tLS0tLS0tLSB8IDotLS0tLS0tOiB8CnwgUHl0aG9uICAgICB8ICAgIOKchSAgICAgfAp8IFJ1YnkgICAgICAgfCAgICDinIUgICAgIHwKfCBHbyAgICAgICAgIHwgICAg4pyFICAgICB8CnwgVHlwZXNjcmlwdCB8ICAgIOKchSAgICAgfAp8IFJ1c3QgICAgICAgfCAgICDinIUgICAgIHwKfCBDIyAgICAgICAgIHwgICAg8J+apyAgICAgfAp8IEphdmEgICAgICAgfCAgICDwn5qnICAgICB8CgpgYGBiYXNoCnNpZGVrbyBzZGsgdHJ5ICh5b3VyIFN3YWdnZXIvT3BlbkFQSSBzcGVjKSBweXRob24KYGBgCgotIFRoZSBPcGVuQVBJIHNvdXJjZSBjYW4gYmUgYSBwYXRoIHRvIGEgbG9jYWwgYC5qc29uYCBvciBgLnlhbWxgIGZpbGUsIGEgVVJMLCBvciB0aGUgcmF3IHNwZWMgYXMgYSBzdHJpbmcuCi0gTGFuZ3VhZ2Ugb3B0aW9uczogYHB5dGhvbmAsIGB0eXBlc2NyaXB0YCwgYHJ1YnlgLCBgcnVzdGAsIG9yIGBnb2AKCl9SdW4gYHNpZGVrbyAtLWhlbHBgIHRvIGxpc3QgYWxsIG9wdGlvbnMuXwoKIyMgRW50ZXJwcmlzZSBmZWF0dXJlcwoKSGVhZCBvdmVyIHRvIHRoZSBjb21wbGV0ZSBbQ0xJIERvY3VtZW50YXRpb24gUGFnZV0oLi9kb2NzL0NMSS5tZCkgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gcHJvZ3JhbW1hdGljYWxseSBtYWludGFpbiB5b3VyIGNvbXBsZXRlIEFQSSB0b29sc2V0LiAKCiMjIEV4Y2l0ZWQgYWJvdXQgU2lkZWtvPwoKUmVhY2ggdXMgYXQgYHRlYW1Ac2lkZWtvLmRldmAKCiMjIFJlZmVyZW5jZQoKLSBbQ29tcGxldGUgQ0xJIERvY3VtZW50YXRpb25dKC4vZG9jcy9DTEkubWQpCi0gW0xpY2Vuc2VdKC4vTElDRU5TRSkKLSBbSXNzdWVzXShodHRwczovL2dpdGh1Yi5jb20vU2lkZWtvLUluYy9zaWRla28vaXNzdWVzL25ldykK readmeEtag: '"124eef7782c1acb69cb66f7ecd6c3eaf1acb1c3f"' readmeLastModified: Wed, 14 Aug 2024 13:47:06 GMT repositoryId: 699872484 description: Generate SDKs and docs for your API created: '2023-10-03T14:04:44Z' updated: '2024-08-30T19:35:57Z' language: Rust archived: false stars: 54 watchers: 4 forks: 2 owner: Sideko-Inc logo: https://avatars.githubusercontent.com/u/122366043?v=4 license: NOASSERTION repoEtag: '"1345565eeb6649a532584d3e6acc416f547e5a07665df6d97c5df1c1db178de4"' repoLastModified: Fri, 30 Aug 2024 19:35:57 GMT category: SDK foundInMaster: true oldLocations: - https://github.com/sideko-inc/sdk-generator - source: openapi3 tags repository: https://github.com/yayoc/swagger-to-mock v3: true repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyLXRvLW1vY2sgWyFbdHJhdmlzLWNpXShodHRwczovL3RyYXZpcy1jaS5vcmcveWF5b2Mvc3dhZ2dlci10by1tb2NrLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3lheW9jL3N3YWdnZXItdG8tbW9jaykgWyFbR3JlZW5rZWVwZXIgYmFkZ2VdKGh0dHBzOi8vYmFkZ2VzLmdyZWVua2VlcGVyLmlvL3lheW9jL3N3YWdnZXItdG8tbW9jay5zdmcpXShodHRwczovL2dyZWVua2VlcGVyLmlvLykKCk1vY2sgZGF0YSBnZW5lcmF0b3IgQ0xJIGZvciBTd2FnZ2VyMyAoT3BlbkFQSSAzKQoKIyMgSW5zdGFsbAoKYGBgc2hlbGwKbnBtIGkgLWcgc3dhZ2dlci10by1tb2NrCmBgYAoKIyMgR2VuZXJhdGUgbW9jayBkYXRhCgpgYGBzaGVsbApzd2FnZ2VyLXRvLW1vY2sgPFlPVVIgU1dBR0dFUiBGSUxFPgpgYGAKCndpbGwgZ2VuZXJhdGUgKipKU09OIGZpbGUqKiBwZXIgZWFjaCBBUEkgcmVzcG9uc2UuICAKSlNPTiBkYXRhIHZhbHVlcyBzaG91bGQgYmUgZXhhbXBsZSB2YWx1ZXMgb24geW91ciBzd2FnZ2VyIGlmIHlvdSBzcGVjaWZpZWQgZXhhbXBsZXMuICAKT3RoZXJ3aXNlLCBgc3dhZ2dlci10by1tb2NrYCBmb2xsb3dzIFtkYXRhIHR5cGUgcnVsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS95YXlvYy9zd2FnZ2VyLXRvLW1vY2svI2RhdGEtdHlwZS1zdXBwb3J0KSBhbmQgZ2VuZXJhdGUgYXJiaXRyYXJ5IHZhbHVlcy4gIApJZiB0aGVyZSBpcyBubyBydWxlIGxpa2UgYGZvcm1hdGAsIHZhbHVlcyBzaG91bGQgYmUgYmVsb3cuCgpgYGB5YW1sCnN0cmluZzogIiIKbnVtYmVyOiAwCmludGVnZXI6IDAKYm9vbGVhbjogdHJ1ZQphcnJheTogW10Kb2JqZWN0OiB7fQpgYGAKCiMjIEV4YW1wbGUKCklmIHdlIHBhc3MgW2FuIGV4YW1wbGUgWUFNTCBmaWxlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9leGFtcGxlcy92My4wL3BldHN0b3JlLWV4cGFuZGVkLnlhbWwpCgpgYGB5YW1sCnJlc3BvbnNlczoKICAnMjAwJzoKICAgIGRlc2NyaXB0aW9uOiBwZXQgcmVzcG9uc2UKICAgIGNvbnRlbnQ6CiAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgc2NoZW1hOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwpgYGAKCmBzd2FnZ2VyLXRvLW1vY2tgIHdpbGwgZ2VuZXJhdGUgZmlsZSBuYW1lZCBgcGV0c19nZXRfMjAwLmpzb25gIGFuZCB0aGUgYm9keSBzaG91bGQgYmUgYmVsb3cKCmBgYGpzb24KWwogIHsKICAgICJuYW1lIjogIiIsCiAgICAidGFnIjogIiIsCiAgICAiaWQiOiAwCiAgfQpdCmBgYAoKIyMgRmlsZSBOYW1lCgpOYW1pbmcgSlNPTiBmaWxlIHdpbGwgZm9sbG93IHRoZSBmb3JtYXQgYmVsb3cuIApgJHtBUElfUEFUSH1fJHtIVFRQX01FVEhPRH1fJHtSRVNQT05TRV9TVEFUVVN9Lmpzb25gCgojIyBEYXRhIFR5cGUgU3VwcG9ydCBbSW4gUHJvZ3Jlc3NdCgpgc3dhZ2dlci10by1tb2NrYCB3aWxsIGZvbGxvdyBydWxlcyBiYXNlZCBvbiBbT3BlbkFQSSAzIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGF0YS1tb2RlbHMvZGF0YS10eXBlcy8pIGZvciBlYWNoIGRhdGEgdHlwZSwgSWYgdGhlIGV4YW1wbGUgdmFsdWUgaXMgbm90IHNwZWNpZmllZC4KCiMjIyBNaXhlZCBUeXBlcwoKSWYgeW91IHNwZWNpZnkgYG9uZU9mYCBvciBgYW55T2ZgLCBUaGUgdmFsdWUgc2hvdWxkIGJlIGF0IHRoZSB0b3AgdHlwZS4KCiMjIyBOdW1iZXJzCgotIGZvcm1hdAotIE1pbmltdW0gYW5kIE1heGltdW0KLSBNdWx0aXBsZXMKCiMjIyBTdHJpbmcKCi0gZm9ybWF0Ci0gcGF0dGVybgoKIyMjIEJvb2xlYW4KCnZhbHVlIHNob3VsZCBiZSBgdHJ1ZWAgb3IgYGZhbHNlYC4KCiMjIyBOdWxsCgojIyMgQXJyYXlzCgotIE1peGVkLVR5cGUgQXJyYXlzCi0gQXJyYXkgTGVuZ3RoCgojIyMgT2JqZWN0cwoKLSBGcmVlLUZvcm0gT2JqZWN0CgojIyMgRmlsZXMKCiMjIyBBbnkgVHlwZQo= readmeEtag: '"63c3bf0392868b1724f0a23bfcbf6925ab8d4f9e"' readmeLastModified: Tue, 29 Jun 2021 12:34:25 GMT repositoryId: 138289588 description: Mock data generator CLI for Swagger3 (OpenAPI 3) created: '2018-06-22T10:26:57Z' updated: '2024-07-26T07:20:03Z' language: TypeScript archived: false stars: 53 watchers: 3 forks: 8 owner: yayoc logo: https://avatars.githubusercontent.com/u/6383334?v=4 repoEtag: '"1d00070f48e88cc9f88f2435a0d2f71e203c630bd66df0bc55741a8ba1cef687"' repoLastModified: Fri, 26 Jul 2024 07:20:03 GMT foundInMaster: true category: Parsers id: 10c19215807691859c470cb694614c33 - source: openapi3 tags repository: https://github.com/meeshkan/hmt v3: true repositoryMetadata: base64Readme: >- IyBITVQKClshW0NpcmNsZUNJXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9tZWVzaGthbi9obXQuc3ZnP3N0eWxlPXNoaWVsZCldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL21lZXNoa2FuL2htdCkKWyFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2RtL2htdC5zdmcpXShodHRwczovL3B5cGkub3JnL3Byb2plY3QvaG10LykKWyFbQ29kZSBzdHlsZTogYmxhY2tdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNrLTAwMDAwMC5zdmcpXShodHRwczovL2JsYWNrLnJlYWR0aGVkb2NzLmlvLykKWyFbTGljZW5zZTogTUlUXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtTUlULWdyZWVuLnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQoKVGhlIEhUVFAgTW9ja2luZyBUb29sa2l0IChITVQpIGlzIGEgdG9vbCB0aGF0IG1vY2tzIEhUVFAgQVBJcyBmb3IgdXNlIGluIHNhbmRib3hlcyBhcyB3ZWxsIGFzIGZvciBhdXRvbWF0ZWQgYW5kIGV4cGxvcmF0b3J5IHRlc3RpbmcuIEl0IHVzZXMgYSBjb21iaW5hdGlvbiBvZiBBUEkgZGVmaW5pdGlvbnMsIHJlY29yZGVkIHRyYWZmaWMgYW5kIGNvZGUgaW4gb3JkZXIgdG8gbWFrZSBjcmFmdGluZyBtb2NrcyBhcyBlbmpveWFibGUgYXMgcG9zc2libGUuCgpbQ2hhdCB3aXRoIHVzIG9uIEdpdHRlcl0oaHR0cHM6Ly9naXR0ZXIuaW0vTWVlc2hrYW4vY29tbXVuaXR5KSB0byBsZXQgdXMga25vdyBhYm91dCBxdWVzdGlvbnMsIHByb2JsZW1zIG9yIGlkZWFzIQoKIyMgV2hhdCdzIGluIHRoaXMgZG9jdW1lbnQKCi0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKLSBbR2V0dGluZyBzdGFydGVkIHdpdGggSE1UXSgjZ2V0dGluZy1zdGFydGVkLXdpdGgtaG10KQogIC0gW1R1dG9yaWFsXSgjdHV0b3JpYWwpCi0gW0NvbGxlY3QgcmVjb3JkaW5ncyBvZiBBUEkgdHJhZmZpY10oI2NvbGxlY3QtcmVjb3JkaW5ncy1vZi1hcGktdHJhZmZpYykKLSBbQnVpbGQgYSBITVQgc3BlYyBmcm9tIHJlY29yZGluZ3NdKCNidWlsZC1hLWhtdC1zcGVjLWZyb20tcmVjb3JkaW5ncykKICAtIFtCdWlsZGluZyBtb2Rlc10oI2J1aWxkaW5nLW1vZGVzKQotIFtNb2NrIHNlcnZlciB0cmFmZmljIHVzaW5nIGEgSE1UIHNwZWNdKCNtb2NrLXNlcnZlci10cmFmZmljLXVzaW5nLWEtaG10LXNwZWMpCi0gW0RldmVsb3BtZW50XSgjZGV2ZWxvcG1lbnQpCiAgLSBbR2V0dGluZyBzdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKQogIC0gW1Rlc3RzXSgjdGVzdHMpCiAgLSBbVHlwZS1jaGVja2luZ10oI3R5cGUtY2hlY2tpbmcpCiAgLSBbQXV0b21hdGVkIGJ1aWxkc10oI2F1dG9tYXRlZC1idWlsZHMpCiAgLSBbUHVibGlzaGluZyBITVQgYXMgYSBQeVBpIHBhY2thZ2VdKCNwdWJsaXNoaW5nLWhtdC1hcy1hLXB5cGktcGFja2FnZSkKLSBbQ29udHJpYnV0aW5nXSgjY29udHJpYnV0aW5nKQogIC0gW0NvZGUgb2YgQ29uZHVjdF0oI2NvZGUtb2YtY29uZHVjdCkKCiMjIEluc3RhbGxhdGlvbgpJbnN0YWxsIHZpYSBbcGlwXShodHRwczovL3BpcC5weXBhLmlvL2VuL3N0YWJsZS9pbnN0YWxsaW5nLykgKHJlcXVpcmVzICoqUHl0aG9uIDMuNisqKik6CgpgYGBiYXNoCnBpcCBpbnN0YWxsIGhtdApgYGAKCm1hY09TIHVzZXJzIGNhbiBpbnN0YWxsIEhNVCB3aXRoIFtIb21lYnJld10oaHR0cHM6Ly9icmV3LnNoLyk6CgpgYGBzaApicmV3IHRhcCBtZWVzaGthbi90YXAKYnJldyBpbnN0YWxsIGhtdApgYGAKCkRlYmlhbiBhbmQgVWJ1bnR1IHVzZXJzIGNhbiBpbnN0YWxsIEhNVCB3aXRoIGBhcHRgOgoKYGBgc2gKZWNobyAiZGViIFt0cnVzdGVkPXllc10gaHR0cHM6Ly9kbC5iaW50cmF5LmNvbS9tZWVzaGthbi9hcHQgYWxsIG1haW4iIHwgdGVlIC1hIC9ldGMvYXB0L3NvdXJjZXMubGlzdAphcHQtZ2V0IC1xcSB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIGhtdApgYGAKCgojIyBHZXR0aW5nIHN0YXJ0ZWQgd2l0aCBITVQKClRoZSBiYXNpYyBITVQgZmxvdyBpcyAqKmNvbGxlY3QsIGJ1aWxkIGFuZCBtb2NrLioqCjEuIEZpcnN0LCAqKmNvbGxlY3QqKiBkYXRhIGZyb20gcmVjb3JkZWQgc2VydmVyIHRyYWZmaWMgYW5kL29yIE9wZW5BUEkgc3BlY3MuCjEuIFRoZW4sICoqYnVpbGQqKiBhIHNjaGVtYSB0aGF0IHVuaWZpZXMgdGhlc2UgdmFyaW91cyBkYXRhIHNvdXJjZXMuCjEuIEZpbmFsbHksIHVzZSB0aGlzIHNjaGVtYSB0byBjcmVhdGUgYSAqKm1vY2sqKiBzZXJ2ZXIgb2YgYW4gQVBJLgoKIyMjIFR1dG9yaWFsCgpUaGUgcXVpY2tlc3Qgd2F5IHRvIGdldCBhbiBvdmVydmlldyBvZiBITVQgaXMgdG8gY29tcGxldGUgb3VyIGludGVyYWN0aXZlIHR1dG9yaWFsLiBJdCB3YWxrcyB5b3UgdGhyb3VnaCB0aGUgY29sbGVjdCwgYnVpbGQsIGFuZCBtb2NrIGZsb3cgLSB3aGlsZSBhbHNvIGNvdmVyaW5nIHRoZSBjb25jZXB0cyBuZWNlc3NhcnkgZm9yIGRldmVsb3BtZW50LgoKX05vdGU6IFRoaXMgdHV0b3JpYWwgaGFzIGJlZW4gdGVzdGVkIG9uIFB5dGhvbiAzLjYsIDMuNywgYW5kIDMuOC5fCgpBZnRlciBpbnN0YWxsaW5nIEhNVCwgeW91IGNhbiBiZWdpbiB0aGUgdHV0b3JpYWwgYnkgaW52b2tpbmcgZnJvbSB0aGUgY29tbWFuZCBsaW5lOgoKYGBgYmFzaAokIGhtdCB0dXRvcmlhbApgYGAKCk9uY2UgeW91J3ZlIHJ1biB0aGlzLCB5b3Ugc2hvdWxkIHNlZToKCmBgYGJhc2gKICAgIF9fICAgICAgICAgICAgICBfXyAKICAgLyAvXyAgX19fXyBfX18gIC8gL18KICAvIF9fIFwvIF9fIGBfXyBcLyBfXy8KIC8gLyAvIC8gLyAvIC8gLyAvIC9fCi9fLyAvXy9fLyAvXy8gL18vXF9fLwoKClRoZSB0dXRvcmlhbCEhClByZXNzIEVOVEVSIHRvIGNvbnRpbnVlLi4uCmBgYAoKSWYgbm90LCBpdCdzIHByb2JhYmx5IG91ciBmYXVsdC4gUGxlYXNlIGxldCB1cyBrbm93IGJ5IFtmaWxpbmcgYW4gaXNzdWUgb24gdGhpcyByZXBvXShodHRwczovL2dpdGh1Yi5jb20vbWVlc2hrYW4vaG10L2lzc3VlcykuCgojIyBDb2xsZWN0IHJlY29yZGluZ3Mgb2YgQVBJIHRyYWZmaWMKCkxldCdzIGxvb2sgYXQgaG93IHRvIGJ1aWxkIGEgSE1UIHNwZWMuIEZpcnN0LCB5b3UgaGF2ZSB0byAqKmNvbGxlY3QqKiByZWNvcmRpbmdzIG9mIHNlcnZlciB0cmFmZmljIGFuZC9vciBPcGVuQVBJIHNlcnZlciBzcGVjcy4KClRvIHJlY29yZCBBUEkgdHJhZmZpYywgdGhlIEhNVCBDTEkgcHJvdmlkZXMgYSBgcmVjb3JkYCBtb2RlIHRoYXQgY2FwdHVyZXMgQVBJIHRyYWZmaWMgdXNpbmcgYSBwcm94eS4KCmBgYGJhc2gKJCBobXQgcmVjb3JkCmBgYAoKVGhpcyBjb21tYW5kIHN0YXJ0cyBITVQgYXMgYSByZXZlcnNlIHByb3h5IG9uIHRoZSBkZWZhdWx0IHBvcnQgb2YgYDgwMDBgIGFuZCBjcmVhdGVzIHR3byBkaXJlY3RvcmllczogYGxvZ3NgIGFuZCBgc3BlY3NgLiAKCldpdGggW2N1cmxdKGh0dHBzOi8vY3VybC5oYXh4LnNlLyksIGZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSBITVQgYXMgYSBwcm94eSBsaWtlIHNvOgoKYGBgYmFzaAokIGN1cmwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2h0dHA6Ly9hcGkuZXhhbXBsZS5jb20KYGBgCgpCeSBkZWZhdWx0LCB0aGUgcmVjb3JkaW5nIHByb3h5IHRyZWF0cyB0aGUgcGF0aCBhcyB0aGUgdGFyZ2V0IFVSTC4gSXQgdGhlbiB3cml0ZXMgYSBbYC5qc29ubGBdKGh0dHBzOi8vanNvbmxpbmVzLm9yZykgZmlsZSBjb250YWluaW5nIGxvZ3Mgb2YgYWxsIHNlcnZlciB0cmFmZmljIHRvIHRoZSBgbG9nc2AgZGlyZWN0b3J5LiAgQWxsIGxvZ3MgYXJlIGNyZWF0ZWQgaW4gdGhlIFtgaHR0cC10eXBlc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZWVzaGthbi9odHRwLXR5cGVzKSBmb3JtYXQuIFRoaXMgaXMgYmVjYXVzZSBITVQncyBgYnVpbGRgIHRvb2wgZXhwZWN0cyBhbGwgcmVjb3JkaW5ncyB0byBiZSByZXByZXNlbnRlZCBpbiBhIGAuanNvbmxgIGZpbGUgY29udGFpbmluZyByZWNvcmRpbmdzIHJlcHJlc2VudGVkIGluIHRoZSBgaHR0cC10eXBlc2AgZm9ybWF0LgoKRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcmVjb3JkaW5nLCBpbmNsdWRpbmcgZGlyZWN0IGZpbGUgd3JpdGluZyBhbmQga2Fma2Egc3RyZWFtaW5nLCBzZWUgdGhlIFtyZWNvcmRpbmcgZG9jdW1lbnRhdGlvbl0oLi9kb2NzL1JFQ09SRC5tZCkuCgojIyBCdWlsZCBhIEhNVCBzcGVjIGZyb20gcmVjb3JkaW5ncwoKVXNpbmcgdGhlIEhNVCBDTEksIHlvdSBjYW4gKipidWlsZCoqIGFuIE9wZW5BUEkgc2NoZW1hIGZyb20gYSBzaW5nbGUgYC5qc29ubGAgZmlsZSwgaW4gYWRkaXRpb24gdG8gYW55IGV4aXN0aW5nIE9wZW5BUEkgc3BlY3MgdGhhdCBkZXNjcmliZSBob3cgeW91ciBzZXJ2aWNlIHdvcmtzLgoKYGBgYmFzaAokIGhtdCBidWlsZCAtLWlucHV0LWZpbGUgcGF0aC90by9yZWNvcmRpbmdzLmpzb25sIApgYGAKCl9Ob3RlOiBUaGUgaW5wdXQgZmlsZSBzaG91bGQgYmUgaW4gW0pTT04gTGluZXNdKGh0dHA6Ly9qc29ubGluZXMub3JnLykgZm9ybWF0IGFuZCBldmVyeSBsaW5lIHNob3VsZCBiZSBpbiBbaHR0cC10eXBlc10oaHR0cHM6Ly9naXRodWIuY29tL21lZXNoa2FuL2h0dHAtdHlwZXMpIEpTT04gZm9ybWF0LiBGb3IgYW4gZXhhbXBsZSBpbnB1dCBmaWxlLCBzZWUgW3JlY29yZGluZ3MuanNvbmxdKC4vcmVzb3VyY2VzL3JlY29yZGluZ3MuanNvbmwpLl8KCk9wdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IGFuIG91dHB1dCBkaXJlY3RvcnkgdXNpbmcgdGhlIGAtLW91dGAgZmxhZyBmb2xsb3dlZCBieSB0aGUgcGF0aCB0byB0aGlzIGRpcmVjdG9yeS4gQnkgZGVmYXVsdCwgSE1UIHdpbGwgYnVpbGQgdGhlIG5ldyBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGluIHRoZSBgc3BlY3NgIGRpcmVjdG9yeS4gCgpVc2UgZGFzaCAoYC0taW5wdXQtZmlsZSAtYCkgdG8gcmVhZCBmcm9tIHN0YW5kYXJkIGlucHV0OgoKYGBgYmFzaAokIGhtdCBidWlsZCAtLWlucHV0LWZpbGUgLSA8IHJlY29yZGluZ3MuanNvbmwKYGBgCiMjIyBCdWlsZGluZyBtb2RlcwpZb3UgY2FuIHVzZSBhIG1vZGUgZmxhZyB0byBpbmRpY2F0ZSBob3cgdGhlIE9wZW5BUEkgc3BlYyBzaG91bGQgYmUgYnVpbHQsIGZvciBleGFtcGxlOgoKYGBgYmFzaApobXQgYnVpbGQgLS1pbnB1dC1maWxlIHBhdGgvdG8vcmVjb3JkaW5ncy5qc29ubCAtLW1vZGUgZ2VuCmBgYAoKU3VwcG9ydGVkIG1vZGVzIGFyZToKKiBnZW4gW2RlZmF1bHRdIC0gaW5mZXIgYSBzY2hlbWEgZnJvbSB0aGUgcmVjb3JkZWQgZGF0YQoqIHJlcGxheSAtIHJlcGxheSB0aGUgcmVjb3JkZWQgZGF0YSBiYXNlZCBvbiBleGFjdCBtYXRjaGluZwoKRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYnVpbGRpbmcsIGluY2x1ZGluZyBtaXhpbmcgdG9nZXRoZXIgdGhlIHR3byBtb2RlcyBhbmQgZWRpdGluZyB0aGUgY3JlYXRlZCBPcGVuQVBJIHNjaGVtYSwgc2VlIHRoZSBbYnVpbGRpbmcgZG9jdW1lbnRhdGlvbl0oLi9kb2NzL0JVSUxELm1kKS4KCiMjIE1vY2sgc2VydmVyIHRyYWZmaWMgdXNpbmcgYSBITVQgc3BlYwoKWW91IGNhbiB1c2UgYW4gT3BlbkFQSSBzcGVjLCBzdWNoIGFzIHRoZSBvbmUgY3JlYXRlZCB3aXRoIGBobXQgYnVpbGRgLCB0byBjcmVhdGUgYSAqKm1vY2sqKiBzZXJ2ZXIgdXNpbmcgSE1ULgoKYGBgYmFzaAokIGhtdCBtb2NrIHBhdGgvdG8vZGlyLwpgYGAKCl9Ob3RlOiBZb3UgY2FuIHNwZWNpZnkgYSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgeW91ciBPcGVuQVBJIHNwZWMgaXMgaW4gb3IgYSBwYXRoIHRvIG9uZSBzcGVjaWZpYyBmaWxlLl8KCkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG1vY2tpbmcsIGluY2x1ZGluZyBhZGRpbmcgY3VzdG9tIG1pZGRsZXdhcmUgYW5kIG1vZGlmeWluZyB0aGUgbW9ja2luZyBzY2hlbWEgSklUIHZpYSBhbiBhZG1pbiBBUEksIHNlZSB0aGUgW21vY2tpbmcgZG9jdW1lbnRhdGlvbl0oLi9kb2NzL01PQ0subWQpLgoKIyMgRGV2ZWxvcG1lbnQKCkhlcmUgYXJlIHNvbWUgdXNlZnVsIHRpcHMgZm9yIGJ1aWxkaW5nIGFuZCBydW5uaW5nIEhNVCBmcm9tIHNvdXJjZS4gCgpJZiB5b3UgcnVuIGludG8gYW55IGlzc3VlcywgcGxlYXNlIFtyZWFjaCBvdXQgdG8gb3VyIHRlYW0gb24gR2l0dGVyXShodHRwczovL2dpdHRlci5pbS9tZWVzaGthbi9jb21tdW5pdHkpLgoKIyMjIEdldHRpbmcgc3RhcnRlZAoKMS4gQ2xvbmUgdGhpcyByZXBvc2l0b3J5OiBgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWVzaGthbi9obXRgCjEuIENyZWF0ZSBhIHZpcnR1YWwgZW52aXJvbm1lbnQ6IGBweXRob24zIC1tIHZlbnYgLnZlbnYgJiYgc291cmNlIC52ZW52L2Jpbi9hY3RpdmF0ZWAKMS4gSW5zdGFsbCBkZXBlbmRlbmNpZXM6IGBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgLWUgJy5bZGV2XSdgCjEuIEluc3RhbGwgW2BwcmUtY29tbWl0YF0oaHR0cHM6Ly9wcmUtY29tbWl0LmNvbS8pIGhvb2tzIHRvIGF1dG9tYXRpY2FsbHkgZm9ybWF0IGNvZGUgYXMgYSBnaXQgaG9vazogYHByZS1jb21taXQgaW5zdGFsbGAKCiMjIyBUZXN0cwoKUnVuIGFsbCBjaGVja3M6CgpgYGBiYXNoCiQgcHl0aG9uIHNldHVwLnB5IHRlc3QKYGBgCgojIyMjIGBweXRlc3RgCgpSdW4gW3Rlc3RzL10oaHR0cHM6Ly9naXRodWIuY29tL21lZXNoa2FuL2htdC90cmVlL21hc3Rlci90ZXN0cy8pIHdpdGggYHB5dGVzdGA6CgpgYGBiYXNoCnB5dGVzdAojIG9yCnB5dGhvbiBzZXR1cC5weSB0ZXN0CmBgYAoKQ29uZmlndXJhdGlvbiBmb3IgYHB5dGVzdGAgaXMgZm91bmQgaW4gW3B5dGVzdC5pbmldKGh0dHBzOi8vZ2l0aHViLmNvbS9tZWVzaGthbi9obXQvdHJlZS9tYXN0ZXIvcHl0ZXN0LmluaSkuCgojIyMjIEZvcm1hdHRpbmcKCkZvcm1hdHRpbmcgaXMgY2hlY2tlZCBieSB0aGUgYWJvdmUgbWVudGlvbmVkIGBweXRob24gc2V0dXAucHkgdGVzdGAgY29tbWFuZC4KClRvIGZpeCBmb3JtYXR0aW5nOgoKYGBgc2gKJCBweXRob24gc2V0dXAucHkgZm9ybWF0CmBgYAoKIyMjIyBgZmxha2U4YAoKUnVuIHN0eWxlIGNoZWNrczoKCmBgYGJhc2gKJCBmbGFrZTggLgpgYGAKCiMjIyMgYHB5cmlnaHRgCgpZb3UgY2FuIHJ1biB0eXBlLWNoZWNraW5nIGJ5IGluc3RhbGxpbmcgW3B5cmlnaHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvcHlyaWdodCkgZ2xvYmFsbHk6CgpgYGBiYXNoCiQgbnBtIC1pIC1nIHB5cmlnaHQKYGBgCgpBbmQgdGhlbiBydW5uaW5nOgoKYGBgYmFzaAokIHB5cmlnaHQgLS1saWIKJCAjIG9yCiQgcHl0aG9uIHNldHVwLnB5IHR5cGVjaGVjawpgYGAKClVzaW5nIHRoZSBbUHlyaWdodCBleHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1tcy1weXJpZ2h0LnB5cmlnaHQpIGlzIHJlY29tbWVuZGVkIGZvciBkZXZlbG9wbWVudCBpbiBWUyBDb2RlLgoKIyMjIEF1dG9tYXRlZCBidWlsZHMKCkNvbmZpZ3VyYXRpb24gZm9yIENpcmNsZUNJIFtidWlsZCBwaXBlbGluZV0oaHR0cHM6Ly9hcHAuY2lyY2xlY2kuY29tL3BpcGVsaW5lcy9naXRodWIvbWVlc2hrYW4vaG10KSBjYW4gYmUgZm91bmQgaW4gWy5jaXJjbGVjaS9jb25maWcueW1sXSguLy5jaXJjbGVjaS9jb25maWcueW1sKS4KCiMjIyBQdWJsaXNoaW5nIEhNVCBhcyBhIFB5UGkgcGFja2FnZQoKVG8gcHVibGlzaCBITVQgYXMgYSBQeVBpIHBhY2thZ2UsIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6CgoxLiBCdW1wIHRoZSB2ZXJzaW9uIGluIFtzZXR1cC5weV0oLi9zZXR1cC5weSkgaWYgdGhlIHZlcnNpb24gaXMgdGhlIHNhbWUgYXMgaW4gdGhlIHB1Ymxpc2hlZCBbcGFja2FnZV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2htdC8pLiBDb21taXQgYW5kIHB1c2guCjEuIFJ1biBgcHl0aG9uIHNldHVwLnB5IHRlc3RgIHRvIGNoZWNrIHRoYXQgZXZlcnl0aGluZyB3b3JrcwoxLiBUbyBidWlsZCBhbmQgdXBsb2FkIHRoZSBwYWNrYWdlLCBydW4gYHB5dGhvbiBzZXR1cC5weSB1cGxvYWRgLiBJbnNlcnQgUHlQSSBjcmVkZW50aWFscyB0byB1cGxvYWQgdGhlIHBhY2thZ2UgdG8gYFB5UElgLiBUaGUgY29tbWFuZCB3aWxsIGFsc28gcnVuIGBnaXQgdGFnYCB0byB0YWcgdGhlIGNvbW1pdCBhcyBhIHJlbGVhc2UgYW5kIHB1c2ggdGhlIHRhZ3MgdG8gcmVtb3RlLgoKPiBUbyBzZWUgd2hhdCB0aGUgZGlmZmVyZW50IGNvbW1hbmRzIGRvLCBzZWUgYENvbW1hbmRgIGNsYXNzZXMgaW4gW3NldHVwLnB5XShodHRwczovL2dpdGh1Yi5jb20vbWVlc2hrYW4vaG10L3RyZWUvbWFzdGVyL3NldHVwLnB5KS4KCiMjIENvbnRyaWJ1dGluZwoKVGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGluIGNvbnRyaWJ1dGluZyEgUGxlYXNlIHRha2UgYSBsb29rIGF0IG91ciBbZGV2ZWxvcG1lbnQgZ3VpZGVdKCNkZXZlbG9wbWVudCkgZm9yIG5vdGVzIG9uIGhvdyB0byBkZXZlbG9wIHRoZSBwYWNrYWdlIGxvY2FsbHkuICBBIGdyZWF0IHdheSB0byBzdGFydCBjb250cmlidXRpbmcgaXMgdG8gW2ZpbGUgYW4gaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZWVzaGthbi9obXQvaXNzdWVzL25ldy9jaG9vc2UpIG9yIFttYWtlIGEgcHVsbCByZXF1ZXN0XShodHRwczovL2dpdGh1Yi5jb20vbWVlc2hrYW4vaG10L3B1bGxzKS4KCiMjIyBDb2RlIG9mIENvbmR1Y3QKClBsZWFzZSBub3RlIHRoYXQgdGhpcyBwcm9qZWN0IGlzIGdvdmVybmVkIGJ5IHRoZSBbTWVlc2hrYW4gQ29tbXVuaXR5IENvZGUgb2YgQ29uZHVjdF0oaHR0cHM6Ly9naXRodWIuY29tL21lZXNoa2FuL2NvZGUtb2YtY29uZHVjdCkuIEJ5IHBhcnRpY2lwYXRpbmcsIHlvdSBhZ3JlZSB0byBhYmlkZSBieSBpdHMgdGVybXMuCg== readmeEtag: '"6631662563d52c609f223dd4be9a0670d14646d2"' readmeLastModified: Mon, 07 Sep 2020 09:00:41 GMT repositoryId: 235120275 description: HTTP Mocking Toolkit created: '2020-01-20T14:27:44Z' updated: '2024-07-12T00:28:58Z' language: Python archived: true stars: 52 watchers: 5 forks: 7 owner: meeshkan logo: https://avatars.githubusercontent.com/u/32298527?v=4 license: MIT repoEtag: '"aad85f57c72a84997a0251cd0623c9f5a217948a035a4887ff35c9d7a7988476"' repoLastModified: Fri, 12 Jul 2024 00:28:58 GMT foundInMaster: true category: Testing id: 0a7406562ab364da1ea6a15dee9c91ac - source: openapi3 tags repository: https://github.com/mermade/openapi-lint-vscode v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWxpbnQgUkVBRE1FCgohW1Zpc3VhbCBTdHVkaW8gTWFya2V0cGxhY2UgRG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3Zpc3VhbC1zdHVkaW8tbWFya2V0cGxhY2UvZC9tZXJtYWRlLm9wZW5hcGktbGludCkgIVtWaXN1YWwgU3R1ZGlvIE1hcmtldHBsYWNlIFN0YXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3Zpc3VhbC1zdHVkaW8tbWFya2V0cGxhY2Uvc3RhcnMvbWVybWFkZS5vcGVuYXBpLWxpbnQpCgpUaGlzIGV4dGVuc2lvbiBjYW4gYmUgdXNlZCB0byB2YWxpZGF0ZSBhbmQgW2xpbnRdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xpbnRfKHNvZnR3YXJlKSkgT3BlbkFQSSAzLjAueCBkb2N1bWVudHMsIGFuZCBjb252ZXJ0IGJldHdlZW4gT3BlbkFQSSAyLjAgYW5kIDMuMC4wLiBJdCBwcm92aWRlcyAxMSBWaXN1YWwgU3R1ZGlvIENvZGUgY29tbWFuZHM6CgoqIE9wZW5BUEkgVmFsaWRhdGUgLSB3aGljaCBmdWxseSB2YWxpZGF0ZXMgeW91ciBPcGVuQVBJIGRvY3VtZW50IGFnYWluc3QgdGhlIFtzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCkKKiBPcGVuQVBJIExpbnQgLSB3aGljaCBhZGRpdGlvbmFsbHkgYXBwbGllcyBhIGxpZ2h0bHktb3BpbmlvbmF0ZWQgc2V0IG9mIGJlc3QtcHJhY3RpY2VzCiogT3BlbkFQSSBSZXNvbHZlIGFuZCBWYWxpZGF0ZSAtIHdoaWNoIHB1bGxzIGluIGV4dGVybmFsIGAkcmVmYHMgYmVmb3JlIHZhbGlkYXRpbmcKKiBPcGVuQVBJIFJlc29sdmUgYW5kIExpbnQgLSB3aGljaCBwdWxscyBpbiBleHRlcm5hbCBgJHJlZmBzIGJlZm9yZSBsaW50aW5nCiogT3BlbkFQSSBSZXNvbHZlIChCdW5kbGUpIC0gd2hpY2ggcmVzb2x2ZXMgZXh0ZXJuYWwgYCRyZWZgcyB0byBhIG5ldyB3aW5kb3cKKiBPcGVuQVBJIDIuMCB0byAzLjAuMCAoWUFNTCkgLSB3aGljaCBjb252ZXJ0cyB0aGUgY3VycmVudCBPcGVuQVBJIDIuMCBkb2N1bWVudCB0byAzLjAuMCBpbiBZQU1MCiogT3BlbkFQSSAyLjAgdG8gMy4wLjAgKEpTT04pIC0gd2hpY2ggY29udmVydHMgdGhlIGN1cnJlbnQgT3BlbkFQSSAyLjAgZG9jdW1lbnQgdG8gMy4wLjAgaW4gSlNPTgoqIE9wZW5BUEkgMi4wIHRvIDMuMC4wIChZQU1ML1Jlc29sdmVkKSAtIGxpa2UgdGhlIGFib3ZlIGJ1dCByZXNvbHZpbmcgZXh0ZXJuYWwgYCRyZWZgcwoqIE9wZW5BUEkgMi4wIHRvIDMuMC4wIChKU09OL1Jlc29sdmVkKSAtIGxpa2UgdGhlIGFib3ZlIGJ1dCByZXNvbHZpbmcgZXh0ZXJuYWwgYCRyZWZgcwoqIE9wZW5BUEkgdG8gSlNPTiAtIHdoaWNoIHNpbXBseSB0cmFuc2xhdGVzIHRoZSBjdXJyZW50IGRvY3VtZW50IHRvIEpTT04KKiBPcGVuQVBJIHRvIFlBTUwgLSB3aGljaCBzaW1wbHkgdHJhbnNsYXRlcyB0aGUgY3VycmVudCBkb2N1bWVudCB0byBZQU1MCgpUaGUgdmFsaWRhdG9yIGVuZm9yY2VzIHNlbWFudGljIHJlc3RyaWN0aW9ucyB3aGljaCBjYW5ub3QgYmUgZXhwcmVzc2VkIGJ5IHRoZSBKU09OIFNjaGVtYSB3aGljaCBkcml2ZXMgdGhlIGludGVsbGlzZW5zZSBmZWF0dXJlcywgc28gaXQgd2lsbCBwaWNrIHVwIG9uIG1hbnkgbW9yZSBlcnJvcnMuCgpUaGUgbGludGVyIGFwcGxpZXMgYSBsaWdodGx5IG9waW5pb25hdGVkIHNldCBvZiAnYmVzdCBwcmFjdGljZXMnIHRvIHlvdXIgQVBJIGRvY3VtZW50LCBtYWtpbmcgaXQgY29tcGxldGUgYW5kIGNvbXByZWhlbnNpdmUsIGFzIG9wcG9zZWQgdG8gbWVyZWx5IG1pbmltYWxseSB2YWxpZC4KClRoZSBkZWZhdWx0IGxpbnRlciBydWxlcyBhcmUgZG9jdW1lbnRlZCBbaGVyZV0oaHR0cHM6Ly9tZXJtYWRlLmdpdGh1Yi5pby9vYXMta2l0L2RlZmF1bHQtcnVsZXMuaHRtbCkuIFRoZSBsaW50ZXIgW0RTTCBydWxlcyBmb3JtYXRdKGh0dHBzOi8vbWVybWFkZS5naXRodWIuaW8vb2FzLWtpdC9saW50ZXItcnVsZXMuaHRtbCkgaXMgYWxzbyBkb2N1bWVudGVkLgoKIyMgRmVhdHVyZXMKCiogVmFsaWRhdGlvbiB1c2luZyBbb2FzLXZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb2FzLWtpdC90cmVlL21hc3Rlci9wYWNrYWdlcy9vYXMtdmFsaWRhdG9yKSBmcm9tIFtPQVMtS2l0XShodHRwczovL21lcm1hZGUuZ2l0aHViLmlvL29hcy1raXQvKQoqIExpbnRpbmcgdXNpbmcgW29hcy1saW50ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL29hcy1raXQvdHJlZS9tYXN0ZXIvcGFja2FnZXMvb2FzLWxpbnRlcikgYWxzbyBmcm9tIE9BUy1LaXQKKiBSZXNvbHV0aW9uIHVzaW5nIFtvYXMtcmVzb2x2ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL29hcy1raXQvdHJlZS9tYXN0ZXIvcGFja2FnZXMvb2FzLXJlc29sdmVyKSBhbHNvIGZyb20gT0FTLUtpdAoqIENvbnZlcnNpb24gdXNpbmcgW3N3YWdnZXIyb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb2FzLWtpdC90cmVlL21hc3Rlci9wYWNrYWdlcy9zd2FnZ2VyMm9wZW5hcGkpIGFsc28gZnJvbSBPQVMtS2l0CiogT0FTIHYzIGludGVsbGlzZW5zZSBmb3IgZmlsZXMgbmFtZWQgYCpvcGVuYXBpLmpzb25gLCBgKm9wZW5hcGkueWFtbGAsIGAqb3BlbmFwaS55bWxgLCBgKm9hczMuanNvbmAsIGAqb2FzMy55YW1sYCwgYCpvYXMzLnltbGAKKiBPQVMgdjIgaW50ZWxsaXNlbnNlIGZvciBmaWxlcyBuYW1lZCBgKnN3YWdnZXIuanNvbmAsIGAqc3dhZ2dlci55YW1sYCwgYCpzd2FnZ2VyLnltbGAsIGAqb2FzMi5qc29uYCwgYCpvYXMyLnlhbWxgLCBgKm9hczIueW1sYAoqIENvbnZlcnNpb24gYmV0d2VlbiBKU09OIGFuZCBZQU1MCiogU25pcHBldHMgKG1pbmltYWwgdmFsaWQgb3BlbmFwaS9zd2FnZ2VyIEpTT04gYW5kIFlBTUwgZG9jdW1lbnRzKQoqIEFzeW5jQVBJIHYyLjAueCBpbnRlbGxpc2Vuc2UgZm9yIGZpbGVzIG5hbWVkIGAqYXN5bmNhcGkuanNvbmAsIGAqYXN5bmNhcGkueWFtbGAsIGAqYXN5bmNhcGkueW1sYAoqIEFzeW5jQVBJIHYxLjIueCBpbnRlbGxpc2Vuc2UgZm9yIGZpbGVzIG5hbWVkIGAqYXN5bmNhcGkxLmpzb25gLCBgKmFzeW5jYXBpMS55YW1sYCwgYCphc3luY2FwaTEueW1sYAoKIyMgQ29taW5nIHNvb24KCiogTW9yZSBzbmlwcGV0cwoqIEludGVncmF0aW9uIHdpdGggW0FQSXMuZ3VydSBPcGVuQVBJIGRpcmVjdG9yeV0oaHR0cHM6Ly9naXRodWIuY29tL2FwaXMtZ3VydS9vcGVuYXBpLWRpcmVjdG9yeSkKKiBJbnRlZ3JhdGlvbiB3aXRoIFtBUElzLmd1cnUgQXN5bmNBUEkgZGlyZWN0b3J5XShodHRwczovL2dpdGh1Yi5jb20vYXBpcy1ndXJ1L2FzeW5jYXBpLWRpcmVjdG9yeSkKKiBFeHRyYWN0IGRlZmF1bHQgbGludGVyIHJ1bGVzIHRvIG5ldyB0YWIgdG8gYWxsb3cgc2F2aW5nIGFzIG92ZXJyaWRlcwoKIyMgU2NyZWVuc2hvdHMKCiFbc2NyZWVuc2hvdF0oLi9pbWFnZXMvdnNjb2RlLWxpbnQucG5nKQoKIyMgUmVxdWlyZW1lbnRzCgpUaGUgZXh0ZW5zaW9uIHNob3VsZCB3b3JrIGFzLWlzCgojIyBFeHRlbnNpb24gU2V0dGluZ3MKClRoZSBgb25TYXZlQWN0aW9uYCBjYW4gYmUgc2V0IHRvIG9uZSBvZiBgbm9uZWAsIGB2YWxpZGF0ZWAsIGByZXNvbHZlQW5kVmFsaWRhdGVgICh0aGUgZGVmYXVsdCksIGBsaW50YCBvciBgcmVzb2x2ZUFuZExpbnRgLgoKIyMgS25vd24gSXNzdWVzCgoqIEp1bXAtdG8tZXJyb3IgZnVuY3Rpb25hbGl0eSBub3QgaW1wbGVtZW50ZWQgeWV0IChhbGwgc2hvdyBhcyBsaW5lIDEpCiogTm8gd2F5IHRvIG92ZXJyaWRlL2FtZW5kIGxpbnRlciBydWxlcyB5ZXQKCiMjIENyZWRpdHMKCiogSWNvbiBiYXNlZCB1cG9uIFtJY29uczhdKGh0dHA6Ly9pY29uczguY29tLykKCiMjIFJlbGVhc2UgTm90ZXMKClNlZSB0aGUgW0NIQU5HRUxPR10oLi9DSEFOR0VMT0cubWQpCg== readmeEtag: '"e34f67b2987c46133e75a44a24bedd5c73575ceb"' readmeLastModified: Wed, 12 Aug 2020 13:36:40 GMT repositoryId: 139170191 description: >- OpenAPI 2.0/3.0.x intellisense, validator, linter, converter and resolver extension for Visual Studio Code created: '2018-06-29T16:05:52Z' updated: '2024-09-05T03:30:53Z' language: JavaScript archived: false stars: 51 watchers: 5 forks: 9 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause repoEtag: '"2c57b613bc5f948ba3963cda9ffdc66a4a87a02ca86c8db9525a5abfe687dea1"' repoLastModified: Thu, 05 Sep 2024 03:30:53 GMT foundInMaster: true name: VSCode/openapi-lint category: - Text Editors - Parsers language: Node.js link: https://marketplace.visualstudio.com/items?itemName=mermade.openapi-lint source_description: OpenAPI 2.0/3.0.x intellisense, validator and linter for Visual Studio Code v2: true id: ab48d5ce77b0c9f808ee6c600d40888c - source: openapi3 tags repository: https://github.com/marcomuellner/openapi-python-generator v3: true id: f16c0d05a415eb485dad3d30fa66ea5c repositoryMetadata: base64Readme: >- IyBPcGVuYXBpIFB5dGhvbiBHZW5lcmF0b3IKClshW1B5UEldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L29wZW5hcGktcHl0aG9uLWdlbmVyYXRvci5zdmcpXVtweXBpX10KWyFbU3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvc3RhdHVzL29wZW5hcGktcHl0aG9uLWdlbmVyYXRvci5zdmcpXVtzdGF0dXNdClshW1B5dGhvbiBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9vcGVuYXBpLXB5dGhvbi1nZW5lcmF0b3IpXVtweXRob24gdmVyc2lvbl0KWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wvb3BlbmFwaS1weXRob24tZ2VuZXJhdG9yKV1bbGljZW5zZV0KClshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9zdGF0aWMvdjE/bGFiZWw9ZG9jdW1lbnRhdGlvbiZtZXNzYWdlPWVuYWJsZWQmY29sb3I9PENPTE9SPildW2RvY3VtZW50YXRpb25dClshW1Rlc3RzXShodHRwczovL2dpdGh1Yi5jb20vTWFyY29NdWVsbG5lci9vcGVuYXBpLXB5dGhvbi1nZW5lcmF0b3Ivd29ya2Zsb3dzL1Rlc3RzL2JhZGdlLnN2ZyldW3Rlc3RzXQpbIVtDb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvTWFyY29NdWVsbG5lci9vcGVuYXBpLXB5dGhvbi1nZW5lcmF0b3IvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnKV1bY29kZWNvdl0KClshW3ByZS1jb21taXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcHJlLS1jb21taXQtZW5hYmxlZC1icmlnaHRncmVlbj9sb2dvPXByZS1jb21taXQmbG9nb0NvbG9yPXdoaXRlKV1bcHJlLWNvbW1pdF0KWyFbQmxhY2tdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNrLTAwMDAwMC5zdmcpXVtibGFja10KCltweXBpX106IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9vcGVuYXBpLXB5dGhvbi1nZW5lcmF0b3IvCltzdGF0dXNdOiBodHRwczovL3B5cGkub3JnL3Byb2plY3Qvb3BlbmFwaS1weXRob24tZ2VuZXJhdG9yLwpbcHl0aG9uIHZlcnNpb25dOiBodHRwczovL3B5cGkub3JnL3Byb2plY3Qvb3BlbmFwaS1weXRob24tZ2VuZXJhdG9yCltkb2N1bWVudGF0aW9uXTogaHR0cHM6Ly9tYXJjb211ZWxsbmVyLmdpdGh1Yi5pby9vcGVuYXBpLXB5dGhvbi1nZW5lcmF0b3IvClt0ZXN0c106IGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJjb011ZWxsbmVyL29wZW5hcGktcHl0aG9uLWdlbmVyYXRvci9hY3Rpb25zP3dvcmtmbG93PVRlc3RzCltjb2RlY292XTogaHR0cHM6Ly9hcHAuY29kZWNvdi5pby9naC9NYXJjb011ZWxsbmVyL29wZW5hcGktcHl0aG9uLWdlbmVyYXRvcgpbcHJlLWNvbW1pdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9wcmUtY29tbWl0L3ByZS1jb21taXQKW2JsYWNrXTogaHR0cHM6Ly9naXRodWIuY29tL3BzZi9ibGFjawoKIVtdKGxvZ28ucG5nKQoKLS0tCl9fRG9jdW1lbnRhdGlvbjpfXyBbaGVyZV1bZG9jdW1lbnRhdGlvbl0KCi0tLQoKIyMgRmVhdHVyZXMKCi0gX19FYXNlIG9mIHVzZV9fLiBQcm92aWRlIGlucHV0LCBvdXRwdXQgYW5kIHRoZSBsaWJyYXJ5LCBhbmQgdGhlIGdlbmVyYXRvciB3aWxsIGRvIHRoZSByZXN0LgotIF9fVHlwZSBzYWZldHkgYW5kIHR5cGUgaGludGluZy5fXyBfX09wZW5BUEkgcHl0aG9uIGdlbmVyYXRvcl9fIG1ha2VzIGhlYXZ5IHVzZSBvZiBweWRhbnRpYyBtb2RlbHMgdG8gcHJvdmlkZSB0eXBlLXNhZmUgZGF0YSBzdHJ1Y3R1cmVzLgotIF9fU3VwcG9ydCBmb3IgbXVsdGlwbGUgcmVzdCBmcmFtZXdvcmtzLl9fIF9fT3BlbkFQSSBweXRob24gZ2VuZXJhdG9yX18gY3VycmVudGx5IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmc6CiAgICAtIFtodHRweF0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2h0dHB4LykKICAgIC0gW3JlcXVlc3RzXShodHRwczovL3B5cGkub3JnL3Byb2plY3QvcmVxdWVzdHMvKQogICAgLSBbYWlvaHR0cF0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2Fpb2h0dHAvKQotIF9fQXN5bmMgYW5kIHN5bmMgY29kZSBnZW5lcmF0aW9uIHN1cHBvcnRfXywgZGVwZW5kaW5nIG9uIHRoZSBmcmFtZXdvcmsuIEl0IHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYm90aCBmb3IgZnJhbWV3b3JrcyB0aGF0IHN1cHBvcnQgYm90aC4KLSBfX0Vhc2lseSBleHRlbmRhYmxlIHVzaW5nIEppbmphMiB0ZW1wbGF0ZXNfXy4gVGhlIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgZWFzaWx5IGV4dGVuZGFibGUgYW5kIHNob3VsZCBzdXBwb3J0IGV2ZW4gbW9yZSBsYW5ndWFnZXMgYW5kIGZyYW1ld29ya3MgaW4gdGhlIGZ1dHVyZS4KLSBfX0Z1bGx5IHRlc3RlZF9fLiBFdmVyeSBnZW5lcmF0ZWQgY29kZSBpcyBhdXRvbWF0aWNhbGx5IHRlc3RlZCBhZ2FpbnN0IHRoZSBPcGVuQVBJIHNwZWMgYW5kIHdlIGhhdmUgMTAwJSBjb3ZlcmFnZS4KLSBfX1VzYWdlIGFzIENMSSBvciBhcyBsaWJyYXJ5X18uCgojIyBSZXF1aXJlbWVudHMKCi0gUHl0aG9uIDMuNysKCiMjIEluc3RhbGxhdGlvbgoKWW91IGNhbiBpbnN0YWxsIF9PcGVuYXBpIFB5dGhvbiBHZW5lcmF0b3JfIHZpYSBbcGlwXSBmcm9tIFtQeVBJXToKCmBgYGNvbnNvbGUKJCBwaXAgaW5zdGFsbCBvcGVuYXBpLXB5dGhvbi1nZW5lcmF0b3IKYGBgCgojIyBVc2FnZQoKUGxlYXNlIHNlZSB0aGUgW1F1aWNrIHN0YXJ0IHBhZ2VdIGZvciBkZXRhaWxzLgoKIyMgUm9hZG1hcAoKLSBTdXBwb3J0IGZvciBhbGwgY29tbW9ubHkgdXNlZCBodHRwIGxpYnJhcmllcyBpbiB0aGUgcHl0aG9uIGVjb3N5c3RlbSAofn5yZXF1ZXN0c35+LCB1cmxsaWIsIC4uLikKLSBTdXBwb3J0IGZvciBtdWx0aXBsZSBsYW5ndWFnZXMKLSBTdXBwb3J0IGZvciBtdWx0aXBsZSBhdXRoZW50aWNhdGlvbiBzY2hlbWVzCi0gU3VwcG9ydCBjdXN0b20gdGhlbWVzCgojIyBDb250cmlidXRpbmcKCkNvbnRyaWJ1dGlvbnMgYXJlIHZlcnkgd2VsY29tZS4KVG8gbGVhcm4gbW9yZSwgc2VlIHRoZSBbQ29udHJpYnV0b3IgR3VpZGVdLgoKIyMgTGljZW5zZQoKRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIGxpY2Vuc2VdW2xpY2Vuc2VdLApfT3BlbmFwaSBQeXRob24gR2VuZXJhdG9yXyBpcyBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZS4KCiMjIElzc3VlcwoKSWYgeW91IGVuY291bnRlciBhbnkgcHJvYmxlbXMsCnBsZWFzZSBbZmlsZSBhbiBpc3N1ZV0gYWxvbmcgd2l0aCBhIGRldGFpbGVkIGRlc2NyaXB0aW9uLgoKIyMgQ3JlZGl0cwoKU3BlY2lhbCB0aGFua3MgdG8gdGhlIHBlZXBzIGZyb20gW29wZW5hcGktc2NoZW1hLXB5ZGFudGljXShodHRwczovL2dpdGh1Yi5jb20va3VpbW9uby9vcGVuYXBpLXNjaGVtYS1weWRhbnRpYyksCndoaWNoIGFscmVhZHkgZGlkIGEgbG90IG9mIHRoZSBsZWd3b3JrIGJ5IHByb3ZpZGluZyBhIHB5ZGFudGljIHNjaGVtYSBmb3IgdGhlIE9wZW5BUEkgMy4wLjArIHNwZWNpZmljYXRpb24uCgpUaGlzIHByb2plY3Qgd2FzIGdlbmVyYXRlZCBmcm9tIFtAY2pvbG93aWN6XSdzIFtIeXBlcm1vZGVybiBQeXRob24gQ29va2llY3V0dGVyXSB0ZW1wbGF0ZS4KCltAY2pvbG93aWN6XTogaHR0cHM6Ly9naXRodWIuY29tL2Nqb2xvd2ljegpbcHlwaV06IGh0dHBzOi8vcHlwaS5vcmcvCltoeXBlcm1vZGVybiBweXRob24gY29va2llY3V0dGVyXTogaHR0cHM6Ly9naXRodWIuY29tL2Nqb2xvd2ljei9jb29raWVjdXR0ZXItaHlwZXJtb2Rlcm4tcHl0aG9uCltmaWxlIGFuIGlzc3VlXTogaHR0cHM6Ly9naXRodWIuY29tL01hcmNvTXVlbGxuZXIvb3BlbmFwaS1weXRob24tZ2VuZXJhdG9yL2lzc3VlcwpbcGlwXTogaHR0cHM6Ly9waXAucHlwYS5pby8KCjwhLS0gZ2l0aHViLW9ubHkgLS0+CgpbbGljZW5zZV06IGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJjb011ZWxsbmVyL29wZW5hcGktcHl0aG9uLWdlbmVyYXRvci9ibG9iL21haW4vTElDRU5TRQpbY29udHJpYnV0b3IgZ3VpZGVdOiBodHRwczovL2dpdGh1Yi5jb20vTWFyY29NdWVsbG5lci9vcGVuYXBpLXB5dGhvbi1nZW5lcmF0b3IvYmxvYi9tYWluL0NPTlRSSUJVVElORy5tZApbUXVpY2sgc3RhcnQgcGFnZV06IGh0dHBzOi8vbWFyY29tdWVsbG5lci5naXRodWIuaW8vb3BlbmFwaS1weXRob24tZ2VuZXJhdG9yL3F1aWNrX3N0YXJ0Lwo= readmeEtag: '"413113cdd192d35685a4bdae3fb50e3743c87d8e"' readmeLastModified: Fri, 15 Mar 2024 21:55:10 GMT repositoryId: 506151512 description: 'A client generator from openapi for python. ' created: '2022-06-22T07:56:40Z' updated: '2024-09-03T01:36:05Z' language: Python archived: false stars: 52 watchers: 2 forks: 22 owner: MarcoMuellner logo: https://avatars.githubusercontent.com/u/13886384?v=4 license: MIT repoEtag: '"409b56aa3c03a0b784f581d6919570fef86133c6de5d599941ff3aa1a444272b"' repoLastModified: Tue, 03 Sep 2024 01:36:05 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags name: Gen homepage: https://github.com/wzshiming/gen language: Go source_description: Generate OpenAPI 3, client, and route based on golang source code. category: Code Generators repository: https://github.com/wzshiming/gen v3: true repositoryMetadata: base64Readme: >- IyBHZW4gLSBUb29scyBmb3IgZ2VuZXJhdGluZyBzb3VyY2UgY29kZSBmb3IgbWljcm9zZXJ2aWNlcwoKSnVzdCB3cml0ZSBub3JtYWwgZnVuY3Rpb25zLCBhbmQgR2VuIGdlbmVyYXRlcyBlZmZpY2llbnQgcm91dGluZyBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgaXQKQmVjYXVzZSB0aGUgc291cmNlIGNvZGUgaXMgZ2VuZXJhdGVkLCBub25lIG9mIHRoaXMgYWZmZWN0cyBydW50aW1lIHBlcmZvcm1hbmNlICAKVGhlIGRpZmZlcmVuY2VzIGNhdXNlZCBieSBlYWNoIGNoYW5nZSBpbiB0aGUgdG9vbCBhcmUgc2hvd24gZGlyZWN0bHkgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UgY29kZSAgCmdlbmVyYXRpbmcgY2xpZW50cyBpcyBhbHNvIHN1cHBvcnRlZCAgCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy93enNoaW1pbmcvZ2VuLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3d6c2hpbWluZy9nZW4pClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS93enNoaW1pbmcvZ2VuKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL3d6c2hpbWluZy9nZW4pClshW0dpdEh1YiBsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL3d6c2hpbWluZy9nZW4uc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3d6c2hpbWluZy9nZW4vYmxvYi9tYXN0ZXIvTElDRU5TRSkKCi0gW0VuZ2xpc2hdKGh0dHBzOi8vZ2l0aHViLmNvbS93enNoaW1pbmcvZ2VuL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCkKLSBb566A5L2T5Lit5paHXShodHRwczovL2dpdGh1Yi5jb20vd3pzaGltaW5nL2dlbi9ibG9iL21hc3Rlci9SRUFETUVfY24ubWQpCgojIyBFeGFtcGxlcwoKJyMnIGlzIHRoZSBhbm5vdGF0aW9uLCB0aGUgYW5ub3RhdGlvbiBpcyB0aGUgZ29sYW5nIHRhZyBzeW50YXgsIHRoZSBvbmx5IGRpZmZlcmVuY2UgaGVyZSBpcyAnIycgd3JhcHMgbm90ICdgJy4KCmBgYCBnb2xhbmcKLy8gSXRlbVNlcnZpY2UgI3BhdGg6Ii9pdGVtLyIjCnR5cGUgSXRlbVNlcnZpY2Ugc3RydWN0IHt9CgovLyBDcmVhdGUgYSBJdGVtICNyb3V0ZToiUE9TVCAvIiMKZnVuYyAocyAqSXRlbVNlcnZpY2UpIENyZWF0ZShpdGVtICpJdGVtKSAoZXJyIGVycm9yKSB7fQoKLy8gVXBkYXRlIHRoZSBJdGVtICNyb3V0ZToiUFVUIC97aXRlbV9pZH0iIwpmdW5jIChzICpJdGVtU2VydmljZSkgVXBkYXRlKGl0ZW1JRCBpbnQgLyogI25hbWU6Iml0ZW1faWQiIyAqLywgaXRlbSAqSXRlbSkgKGVyciBlcnJvcikge30KCi8vIERlbGV0ZSB0aGUgSXRlbSAjcm91dGU6IkRFTEVURSAve2l0ZW1faWR9IiMKZnVuYyAocyAqSXRlbVNlcnZpY2UpIERlbGV0ZShpdGVtSUQgaW50IC8qICNuYW1lOiJpdGVtX2lkIiMgKi8pIChlcnIgZXJyb3IpIHt9CgovLyBHZXQgdGhlIEl0ZW0gI3JvdXRlOiJHRVQgL3tpdGVtX2lkfSIjCmZ1bmMgKHMgKkl0ZW1TZXJ2aWNlKSBHZXQoaXRlbUlEIGludCAvKiAjbmFtZToiaXRlbV9pZCIjICovKSAoaXRlbSAqSXRlbVdpdGhJRCwgZXJyIGVycm9yKSB7fQoKLy8gTGlzdCBvZiB0aGUgSXRlbSAjcm91dGU6IkdFVCAvIiMKZnVuYyAocyAqSXRlbVNlcnZpY2UpIExpc3Qob2Zmc2V0LCBsaW1pdCBpbnQpIChpdGVtcyBbXSpJdGVtV2l0aElELCBlcnIgZXJyb3IpIHt9CmBgYAoKMS4gSW5zdGFsbCBnZW4gdG9vbCBgZ28gZ2V0IC12IGdpdGh1Yi5jb20vd3pzaGltaW5nL2dlbi9jbWQvZ2VuYAoyLiBBZGQgZ2VuIHRvb2wgdG8gJFBBVEgKMy4gU3RhcnQgaXQgYGdlbiBydW4gZ2l0aHViLmNvbS93enNoaW1pbmcvZ2VuLWV4YW1wbGVzL3NlcnZpY2UvLi4uYAo0LiBPcGVuIFtodHRwOi8vMTI3LjAuMC4xOjgwODAvc3dhZ2dlci8/dXJsPS4vb3BlbmFwaS5qc29uI10oaHR0cDovLzEyNy4wLjAuMTo4MDgwL3N3YWdnZXIvP3VybD0uL29wZW5hcGkuanNvbiMpIHdpdGggeW91ciBicm93c2VyCgpbRXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS93enNoaW1pbmcvZ2VuLWV4YW1wbGVzLykgIAoKT3IgdHJ5IHRvIHF1aWNrbHkgYnVpbGQgc2VydmljZXMgZnJvbSBzY3JhdGNoCgoxLiBNYWtlIGEgZGlyZWN0b3J5IGBta2RpciAtcCAkKGdvIGVudiBHT1BBVEgpL3NyYy9nZW50ZXN0YAoyLiBDaGFuZ2UgZGlyZWN0b3J5IGBjZCAkKGdvIGVudiBHT1BBVEgpL3NyYy9nZW50ZXN0L2AKMy4gRGVmaW5lIG1vZGVscwpgYGAgc2hlbGwKY2F0ID4gbW9kZWxzLmdvIDw8RU9GCnBhY2thZ2UgZ2VudGVzdAp0eXBlIEdlbnRlc3Qgc3RydWN0IHsKICAgIE5hbWUgc3RyaW5nIFxganNvbjoibmFtZSJcYAogICAgQWdlICBpbnQgICAgXGBqc29uOiJhZ2UiXGAKfQpFT0YKYGBgCjQuIEdlbmVyYXRlZCBmcm9tIENSVUQgdGVtcGxhdGUgYGdlbiBjcnVkIC10IG1vY2sgLW4gR2VudGVzdGAKNS4gU3RhcnQgaXQgYEdPMTExTU9EVUxFPW9mZiBnZW4gcnVuIGdlbnRlc3RgCgojIyBTdXBwb3J0ZWQKCi0gW1hdIEdlbmVyYXRlIGRvY3VtZW50YXRpb24KICAtIFtYXSBbT3BlbkFQSSAzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3R5bGUtR3VpZGUpCiAgLSBbWF0gW1N3YWdnZXJVSV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpCiAgLSBbWF0gW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmViaWxseS9SZURvYykKLSBbWF0gUkVTVGZ1bAogIC0gW1hdIEdlbmVyYXRlIEdvIHJvdXRlcgogICAgLSBbWF0gU2VjdXJpdHkKICAgICAgLSBbWF0gYXBpS2V5CiAgICAgIC0gW1hdIGh0dHAKICAgICAgICAtIFtYXSBiYXNpYwogICAgICAgIC0gWyBdIGJlYXJlcgogICAgICAtIFsgXSBvYXV0aDIKICAgICAgLSBbIF0gb3BlbklkQ29ubmV0CiAgICAtIFtYXSBDb250ZW50CiAgICAgIC0gW1hdIFF1ZXJ5CiAgICAgIC0gW1hdIFBhdGgKICAgICAgLSBbWF0gSGVhZGVyCiAgICAgIC0gW1hdIENvb2tpZQogICAgICAtIFtYXSBCb2R5CiAgICAgICAgLSBbWF0gSlNPTgogICAgICAgIC0gWyBdIFhNTAogICAgICAgIC0gWyBdIEZvcm1kYXRhCiAgICAgICAgICAtIFtYXSBGaWxlCiAgICAgICAgICAtIFsgXSBWYWx1ZQogICAgICAgIC0gWyBdIFVSTEVuY29kZQogIC0gW1hdIEdlbmVyYXRlIEdvIGNsaWVudAogICAgLSBbWF0gU2VjdXJpdHkKICAgICAgLSBbWF0gYXBpS2V5CiAgICAgIC0gW1hdIGh0dHAKICAgICAgICAtIFtYXSBiYXNpYwogICAgICAgIC0gW1hdIGJlYXJlcgogICAgICAtIFsgXSBvYXV0aDIKICAgICAgLSBbIF0gb3BlbklkQ29ubmV0CiAgICAtIFtYXSBDb250ZW50CiAgICAgIC0gW1hdIFF1ZXJ5CiAgICAgIC0gW1hdIFBhdGgKICAgICAgLSBbWF0gSGVhZGVyCiAgICAgIC0gW1hdIENvb2tpZQogICAgICAtIFtYXSBCb2R5CiAgICAgICAgLSBbWF0gSlNPTgogICAgICAgIC0gW1hdIFhNTAogICAgICAgIC0gW1hdIEZvcm1kYXRhCiAgICAgICAgICAtIFtYXSBGaWxlCiAgICAgICAgICAtIFtYXSBWYWx1ZQogICAgICAgIC0gWyBdIFVSTEVuY29kZQogIC0gT3RoZXIgQ2xpZW50CiAgICAtIFtPcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpCiAgICAtIFtzd2FnZ2VyLWFwaS9zd2FnZ2VyLWpzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcykKICAgIC0gW3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlLzMuMC4wKQotIFsgXSBnUlBDICYgUHJvdG8zCgojIyBMaWNlbnNlCgpQb3VjaCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBbTElDRU5TRV0oaHR0cHM6Ly9naXRodWIuY29tL3d6c2hpbWluZy9nZW4vYmxvYi9tYXN0ZXIvTElDRU5TRSkgZm9yIHRoZSBmdWxsIGxpY2Vuc2UgdGV4dC4K readmeEtag: '"689ac134bbeafe8e6c678104343f9b1901004fd3"' readmeLastModified: Mon, 13 Dec 2021 05:31:34 GMT repositoryId: 138471634 description: >- Gen generates efficient web routing source code and documentation from annotations created: '2018-06-24T10:07:22Z' updated: '2024-06-04T23:38:42Z' language: Go archived: false stars: 51 watchers: 7 forks: 6 owner: wzshiming logo: https://avatars.githubusercontent.com/u/6565744?v=4 license: MIT repoEtag: '"c69f8724a4bb89b8bedf09a8bc9c80d368a26bfe352831f648f634794dd0e5f2"' repoLastModified: Tue, 04 Jun 2024 23:38:42 GMT foundInMaster: true id: 94aefe764a91d556fe6001241c0796f8 - source: openapi3 tags repository: https://github.com/iyobo/amala v3: true repositoryMetadata: base64Readme: >- IyBBbWFsYQohW2FtYWxhMl0oaHR0cHM6Ly9naXRodWIuY29tL2l5b2JvL2FtYWxhL2Fzc2V0cy81ODA0MjQ2L2FjYzY4YTUyLTExMTAtNGU4NC04NGIzLTc1MjliMWYwZDM1NCkKCgoqKkFtYWxhKiogaXMgYSBkZWNvcmF0b3ItYmFzZWQgQVBJIGZyYW1ld29yayBmb3IgS29hSlMgdjIrIGFuZCBUeXBlc2NyaXB0LgpBbWFsYSBpcyBmYXN0LCBsaWdodCwgc2VsZi1kb2N1bWVudGluZyBhbmQgRG9ja2VyLXJlYWR5OyBQZXJmZWN0IGZvciBtaWNyb3NlcnZpY2VzLgoKLSBEZWZpbmUgeW91ciBSRVNUIEFQSSBlbmRwb2ludHMgdXNpbmcgRVM4IF9jbGFzc2VzXyBhbmQgX2RlY29yYXRvcnNfLgotIEluamVjdCBhcmd1bWVudHMgaW50byB5b3VyIGVuZHBvaW50IGhhbmRsZXJzLCBlZmZlY3RpdmVseSB0dXJuaW5nIHlvdXIgY29udHJvbGxlciBlbmRwb2ludHMgaW50byBzdGFuZGFsb25lLCB0ZXN0YWJsZSBzZXJ2aWNlIGVuZHBvaW50cy4KLSBDbGVhbiwgbGlnaHQgYW5kIEZBU1QgZW5kcG9pbnRzLiBQb3dlcmVkIGJ5IEtvYS4KLSBObyBmdXJ0aGVyIG1hZ2ljIHBhc3QgZGVjb3JhdG9ycy4gRnVsbCBhY2Nlc3MgdG8gdW5kZXJseWluZyBLb2EgYXBwLgotIFByb2plY3QgY3JlYXRvciBjb21lcyB3aXRoIGZ1bGx5IGNvbmZpZ3VyZWQgRG9ja2VyIGFuZCBEb2NrZXItY29tcG9zZSBzZXR0aW5ncyBmb3IgcXVpY2sgY29udGFpbmVyaXphdGlvbi4KLSBJbi1idWlsdCBPcGVuQVBJIHNwZWMgZXhwb3J0ZXIgYW5kIFN3YWdnZXIgVUkhCgpUaGlzIGxlYWRzIHRvIGNsZWFuLCBzZWxmLWRvY3VtZW50aW5nIEFQSSBlbmRwb2ludHMgYW5kIG1ha2VzIGl0IHNvIHlvdSBjYW4gcmUtdXNlIHRob3NlIHNlcnZpY2UgZW5kcG9pbnRzIGVsc2V3aGVyZS4KSXQgYWxzbyBtYWtlcyB5b3VyIGVuZHBvaW50IGVuZHBvaW50cyBlYXNpZXIgdG8gdGVzdC4KCiMjIFN1cHBvcnRpbmcgQW1hbGEKCioqQW1hbGEqKiBpcyBhbiBNSVQtbGljZW5zZWQgb3BlbiBzb3VyY2UgcHJvamVjdCB3aXRoIGl0cyBvbmdvaW5nIGRldmVsb3BtZW50IG1hZGUgcG9zc2libGUgZW50aXJlbHkgYnkKY29tbXVuaXR5IHN1cHBvcnQuIElmIEFtYWxhIGlzIGhlbHBpbmcgeW91IGJ1aWxkCmF3ZXNvbWUgQVBJcywgcGxlYXNlIGNvbnNpZGVyIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2JlUGF0cm9uP3U9MTk2NjE5MzkiIGRhdGEtcGF0cmVvbi13aWRnZXQtdHlwZT0iYmVjb21lLXBhdHJvbi1idXR0b24iPkJlY29taW5nIGEgUGF0cm9uPC9hPi4KCklmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUgaW4gb3RoZXIgd2F5cywgUHVsbCByZXF1ZXN0cyBhcmUgYWxzbyB3ZWxjb21lIQoKIyMgR2V0dGluZyBzdGFydGVkCllvdSBtYXkgY3JlYXRlIGFuIEFtYWxhIHByb2plY3Qgd2l0aCBhbnkgb2YgdGhlIGZvbGxvd2luZzoKLSBgbnBtIGluaXQgYW1hbGEtYXBwIDxwcm9qZWN0X25hbWU+YAotIGBucG0gY3JlYXRlIGFtYWxhLWFwcCA8cHJvamVjdF9uYW1lPmAKLSBgeWFybiBjcmVhdGUgYW1hbGEtYXBwIDxwcm9qZWN0X25hbWU+YAoKRm9yIG5leHQgc3RlcHMsIHNlZSBvZmZpY2lhbCBkb2NzIGF0IGh0dHBzOi8vYW1hbGFqcy5jb20uCg== readmeEtag: '"b62622a8ea918e0d8d16ac28e4440e2885eb1b63"' readmeLastModified: Tue, 09 Jan 2024 14:46:39 GMT repositoryId: 195160672 description: >- NodeJs Framework for creating REST API endpoints with Typescript decorators. Supports API versioning, OpenAPI3 and docker. Powered by Koa 2+ and Nigerian food (amala+ewedu) created: '2019-07-04T03:11:00Z' updated: '2024-08-02T07:23:52Z' language: TypeScript archived: false stars: 51 watchers: 5 forks: 8 owner: iyobo logo: https://avatars.githubusercontent.com/u/5804246?v=4 license: MIT repoEtag: '"7f10cfa190fbeedd4258e1c39c0a4f45e7ab6546c40ed02c5a530ab4171131fe"' repoLastModified: Fri, 02 Aug 2024 07:23:52 GMT foundInMaster: true category: Server Implementations id: 2907bc65572d999425a855e40ee714ed - source: openapi3 tags repository: https://github.com/smartbear/swaggerhub-cli v3: true repositoryMetadata: base64Readme: >- U3dhZ2dlckh1YiBDTEkKPT09PT09PT09PT09PT0KClshW05QTV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9zd2FnZ2VyaHViLWNsaS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FnZ2VyaHViLWNsaSkKClRoZSBTd2FnZ2VySHViIENMSSBlbmFibGVzIHRlYW1zIHRvIGJ1aWxkIGF1dG9tYXRpb24gYW5kIHdvcmtmbG93cyBhcm91bmQgU3dhZ2dlckh1Yi4gVGVhbXMgY2FuIHVzZSBpdCBpbiBwbGFjZXMgbGlrZSB0aGVpciBDSS9DRCBwaXBlbGluZSB0byBjcmVhdGUgbmV3IEFQSXMsIGNyZWF0ZSBhbmQgdXBkYXRlIEFQSSB2ZXJzaW9ucywgYW5kIG1hcmsgQVBJIHZlcnNpb25zIGFzIHB1Ymxpc2hlZCBhbmQgZGVmYXVsdCBhbW9uZyBvdGhlciBmZWF0dXJlcy4gRXZlcnkgdGVhbSBoYXMgdGhlaXIgb3duIHdvcmtmbG93LCBhbmQgdGhlIFN3YWdnZXJIdWIgQ0xJIGNhbiBoZWxwIHRlYW1zIGJ1aWxkIHRoZSB3b3JrZmxvdyB0aGF0IGZpdHMgdGhlaXIgbmVlZHMuCgo8IS0tIHRvYyAtLT4KKiBbUmVxdWlyZW1lbnRzXSgjcmVxdWlyZW1lbnRzKQoqIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiogW1NldHVwXSgjc2V0dXApCiogW0FkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgU3dhZ2dlckh1YiBPbi1QcmVtaXNlXSgjYWRkaXRpb25hbC1jb25maWd1cmF0aW9uLWZvci1zd2FnZ2VyaHViLW9uLXByZW1pc2UpCiogW1VzYWdlXSgjdXNhZ2UpCiogW0NvbW1hbmRzXSgjY29tbWFuZHMpCiogW1BsdWdpbnNdKCNwbHVnaW5zKQoqIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCjwhLS0gdG9jc3RvcCAtLT4KIyBSZXF1aXJlbWVudHMKTm9kZS5qcyAxOC54IG9yIGxhdGVyLgoKIyBJbnN0YWxsYXRpb24KYGBgc2gtc2Vzc2lvbgokIG5wbSBpIC1nIHN3YWdnZXJodWItY2xpCmBgYAojIFNldHVwClRoZSBTd2FnZ2VySHViIENMSSBjYW4gYmUgY29uZmlndXJlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlcyBvciB0aHJvdWdoIHRoZSBbYHN3YWdnZXJodWIgY29uZmlndXJlYF0oI3N3YWdnZXJodWItY29uZmlndXJlKSBjb21tYW5kLiBUaGUgQ0xJIHdpbGwgbG9vayBmb3IgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgoqIGBTV0FHR0VSSFVCX0FQSV9LRVlgIChyZXF1aXJlZCkg4oCTICoqSW1wb3J0YW50OiBrZWVwIHRoaXMga2V5IHNlY3VyZS4qKiBUaGlzIGlzIHRoZSBTd2FnZ2VySHViIEFQSSBrZXkgdGhlIENMSSB3aWxsIHVzZSBmb3IgYXV0aGVudGljYXRpb24uIFlvdSBjYW4gZmluZCB5b3VyIEFQSSBrZXkgb24gdGhlIFt1c2VyIHNldHRpbmdzIHBhZ2VdKGh0dHBzOi8vYXBwLnN3YWdnZXJodWIuY29tL3NldHRpbmdzL2FwaUtleSkgaW4gU3dhZ2dlckh1Yi4KKiBgU1dBR0dFUkhVQl9VUkxgIChvcHRpb25hbCwgZGVmYXVsdCBpcyBgaHR0cHM6Ly9hcGkuc3dhZ2dlcmh1Yi5jb21gKSDigJMgQ3VzdG9tZXJzIHdpdGggb24tcHJlbWlzZSBpbnN0YWxsYXRpb25zIG5lZWQgdG8gcG9pbnQgdGhpcyB0byB0aGVpciBvbi1wcmVtaXNlIEFQSSwgd2hpY2ggaXMgYGh0dHAocyk6Ly97c3dhZ2dlcmh1Yi1ob3N0fS92MWAgKGRvIG5vdCBhcHBlbmQgYSBiYWNrc2xhc2gpLgoKQWxlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSB0aGUgYHN3YWdnZXJodWIgY29uZmlndXJlYCBjb21tYW5kIHRvIGNyZWF0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGhlIENMSSB0byB1c2UuIFRoaXMgY29tbWFuZCB3aWxsIHdhbGsgeW91IHRocm91Z2ggdGhlIHN0ZXBzIHRvIHNldCB1cCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb25zLgoKYGBgc2gtc2Vzc2lvbgokIHN3YWdnZXJodWIgY29uZmlndXJlCj8gU3dhZ2dlckh1YiBVUkw6IGh0dHBzOi8vYXBpLnN3YWdnZXJodWIuY29tCj8gQVBJIEtleTogPHlvdXItYXBpLWtleT4KYGBgCgpFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjcmVhdGVkIGJ5IHRoaXMgY29tbWFuZC4KCiMgQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGZvciBTd2FnZ2VySHViIE9uLVByZW1pc2UKCklmIHlvdXIgU3dhZ2dlckh1YiBPbi1QcmVtaXNlIGluc3RhbmNlIHVzZXMgYSAqKnNlbGYtc2lnbmVkIG9yIHByaXZhdGVseSBzaWduZWQgU1NMIGNlcnRpZmljYXRlKiosIHRoZXJlIGFyZSBhZGRpdGlvbmFsIHN0ZXBzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIFN3YWdnZXJIdWIgQ0xJIHRydXN0IHRoaXMgY2VydGlmaWNhdGUuCgpCeSBkZWZhdWx0LCBOb2RlLmpzIHJlamVjdHMgc2VsZi1zaWduZWQgb3IgcHJpdmF0ZWx5IHNpZ25lZCBTU0wgY2VydGlmaWNhdGVzIGJlY2F1c2UgdGhlaXIgcm9vdCBDQSBpcyBub3Qga25vd24uIFlvdSB3aWxsIHNlZSBhbiBlcnJvciBsaWtlIHRoaXMgaW4gdGhlIENMSSBvdXRwdXQ6CgpgYGAKRmV0Y2hFcnJvcjogcmVxdWVzdCB0byBodHRwczovLy4uLiBmYWlsZWQsIHJlYXNvbjogc2VsZiBzaWduZWQgY2VydGlmaWNhdGUKYGBgCgpUaGUgc29sdXRpb24gaXMgdG8gdXNlIHRoZSBbYE5PREVfRVhUUkFfQ0FfQ0VSVFNgXShodHRwczovL25vZGVqcy5vcmcvYXBpL2NsaS5odG1sI2NsaV9ub2RlX2V4dHJhX2NhX2NlcnRzX2ZpbGUpIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHNwZWNpZnkgY3VzdG9tIHRydXN0ZWQgY2VydGlmaWNhdGVzIGZvciBOb2RlLmpzLgoKU3RhcnQgYnkgY3JlYXRpbmcgYSAucGVtIGZpbGUgY29udGFpbmluZyB5b3VyIGN1c3RvbSB0cnVzdGVkIGNlcnRpZmljYXRlcyBpbiB0aGUgUEVNIGZvcm1hdC4KKiBJZiB0aGUgY2VydGlmaWNhdGUgaXMgX3NlbGYtc2lnbmVkXyAoc28gdGhhdCBpdCBpcyBpdHMgb3duIENBKSwgaW5jbHVkZSB0aGUgY2VydGlmaWNhdGUgaXRzZWxmLgoqIElmIHRoZSBjZXJ0aWZpY2F0ZSBpcyBfc2lnbmVkIGJ5IGEgcHJpdmF0ZSBDQV8sIGluY2x1ZGUgdGhlIENBIHJvb3QgYW5kIGFueSBpbnRlcm1lZGlhdGUgY2VydGlmaWNhdGVzLCBpbiBhbnkgb3JkZXIuIEJsYW5rIGxpbmVzIGFyZSBhbGxvd2VkLCBidXQgb3B0aW9uYWwsIGJldHdlZW4gaW5kaXZpZHVhbCBjZXJ0aWZpY2F0ZXMuCgpgYGAKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCkNBIHJvb3QgY2VydGlmaWNhdGUKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCkludGVybWVkaWF0ZSBjZXJ0aWZpY2F0ZSAxCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpJbnRlcm1lZGlhdGUgY2VydGlmaWNhdGUgMgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmBgYAoKU3BlY2lmeSB0aGUgcGF0aCB0byB0aGlzIFBFTSBmaWxlIGluIHRoZSBgTk9ERV9FWFRSQV9DQV9DRVJUU2AgZW52aXJvbm1lbnQgdmFyaWFibGUuCgptYWNPUy8qbml4L2Jhc2ggZXhhbXBsZXM6CmBgYHNoLXNlc3Npb24KZXhwb3J0IE5PREVfRVhUUkFfQ0FfQ0VSVFM9fi9Xb3JrL2V4dHJhLWNhLWNlcnRzLnBlbSAgICMgJ34nIG1lYW5zIHRoZSBob21lIGZvbGRlciBvZiB0aGUgbG9nZ2VkLWluIHVzZXIKCmV4cG9ydCBOT0RFX0VYVFJBX0NBX0NFUlRTPSRIT01FLy5zc2gvZXh0cmEtY2EtY2VydHMucGVtCgpleHBvcnQgTk9ERV9FWFRSQV9DQV9DRVJUUz0vVXNlcnMvdXNlcm5hbWUvV29yay9leHRyYS1jYS1jZXJ0cy5wZW0KYGBgCgpXaW5kb3dzIGV4YW1wbGVzOgpgYGAKOjogQm90aCBmb3J3YXJkIGFuZCBiYWNrc2xhc2hlcyBhcmUgT0sKc2V0IE5PREVfRVhUUkFfQ0FfQ0VSVFM9QzpcV29ya1xleHRyYS1jYS1jZXJ0cy5wZW0Kc2V0IE5PREVfRVhUUkFfQ0FfQ0VSVFM9QzovV29yay9leHRyYS1jYS1jZXJ0cy5wZW0KCjo6IFlvdSBjYW4gYWxzbyBkZWZpbmUgdGhlIHBhdGggaXRzZWxmIHVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcwpzZXQgTk9ERV9FWFRSQV9DQV9DRVJUUz0lVVNFUlBST0ZJTEUlXGV4dHJhLWNhLWNlcnRzLnBlbQpgYGAKCiMgVXNhZ2UKYGBgc2gtc2Vzc2lvbgokIHN3YWdnZXJodWIgQ09NTUFORApydW5uaW5nIGNvbW1hbmQuLi4KJCBzd2FnZ2VyaHViICgtdnwtLXZlcnNpb258dmVyc2lvbikKc3dhZ2dlcmh1Yi8wLjEuMiBkYXJ3aW4teDY0IG5vZGUtdjEyLjEzLjAKJCBzd2FnZ2VyaHViIC0taGVscCBbQ09NTUFORF0KVVNBR0UKICAkIHN3YWdnZXJodWIgQ09NTUFORAouLi4KYGBgCiMgQ29tbWFuZHMKPCEtLSBjb21tYW5kcyAtLT4KKiBbYHN3YWdnZXJodWIgYXBpOmNyZWF0ZSBPV05FUi9BUElfTkFNRS9bVkVSU0lPTl1gXSgjc3dhZ2dlcmh1Yi1hcGljcmVhdGUpCiogW2Bzd2FnZ2VyaHViIGFwaTpkZWxldGUgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dYF0oI3N3YWdnZXJodWItYXBpZGVsZXRlKQoqIFtgc3dhZ2dlcmh1YiBhcGk6Z2V0IE9XTkVSL0FQSV9OQU1FL1tWRVJTSU9OXWBdKCNzd2FnZ2VyaHViLWFwaWdldCkKKiBbYHN3YWdnZXJodWIgYXBpOnB1Ymxpc2ggT1dORVIvQVBJX05BTUUvVkVSU0lPTmBdKCNzd2FnZ2VyaHViLWFwaXB1Ymxpc2gpCiogW2Bzd2FnZ2VyaHViIGFwaTpzZXRkZWZhdWx0IE9XTkVSL0FQSV9OQU1FL1ZFUlNJT05gXSgjc3dhZ2dlcmh1Yi1hcGlzZXRkZWZhdWx0KQoqIFtgc3dhZ2dlcmh1YiBhcGk6dW5wdWJsaXNoIE9XTkVSL0FQSV9OQU1FL1ZFUlNJT05gXSgjc3dhZ2dlcmh1Yi1hcGl1bnB1Ymxpc2gpCiogW2Bzd2FnZ2VyaHViIGFwaTp1cGRhdGUgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dYF0oI3N3YWdnZXJodWItYXBpdXBkYXRlKQoqIFtgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGUgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dYF0oI3N3YWdnZXJodWItYXBpdmFsaWRhdGUpCiogW2Bzd2FnZ2VyaHViIGFwaTp2YWxpZGF0ZTpkb3dubG9hZC1ydWxlcyBPV05FUmBdKCNzd2FnZ2VyaHViLWFwaXZhbGlkYXRlZG93bmxvYWQpCiogW2Bzd2FnZ2VyaHViIGFwaTp2YWxpZGF0ZTpsb2NhbGBdKCNzd2FnZ2VyaHViLWFwaXZhbGlkYXRlbG9jYWwpCiogW2Bzd2FnZ2VyaHViIGNvbmZpZ3VyZWBdKCNzd2FnZ2VyaHViLWNvbmZpZ3VyZSkKKiBbYHN3YWdnZXJodWIgZG9tYWluOmNyZWF0ZSBPV05FUi9ET01BSU5fTkFNRS9bVkVSU0lPTl1gXSgjc3dhZ2dlcmh1Yi1kb21haW5jcmVhdGUpCiogW2Bzd2FnZ2VyaHViIGRvbWFpbjpkZWxldGUgT1dORVIvRE9NQUlOX05BTUUvW1ZFUlNJT05dYF0oI3N3YWdnZXJodWItZG9tYWluZGVsZXRlKQoqIFtgc3dhZ2dlcmh1YiBkb21haW46Z2V0IE9XTkVSL0RPTUFJTl9OQU1FL1tWRVJTSU9OXWBdKCNzd2FnZ2VyaHViLWRvbWFpbmdldCkKKiBbYHN3YWdnZXJodWIgZG9tYWluOnB1Ymxpc2ggT1dORVIvRE9NQUlOX05BTUUvVkVSU0lPTmBdKCNzd2FnZ2VyaHViLWRvbWFpbnB1Ymxpc2gpCiogW2Bzd2FnZ2VyaHViIGRvbWFpbjpzZXRkZWZhdWx0IE9XTkVSL0RPTUFJTl9OQU1FL1ZFUlNJT05gXSgjc3dhZ2dlcmh1Yi1kb21haW5zZXRkZWZhdWx0KQoqIFtgc3dhZ2dlcmh1YiBkb21haW46dW5wdWJsaXNoIE9XTkVSL0RPTUFJTl9OQU1FL1ZFUlNJT05gXSgjc3dhZ2dlcmh1Yi1kb21haW51bnB1Ymxpc2gpCiogW2Bzd2FnZ2VyaHViIGRvbWFpbjp1cGRhdGUgT1dORVIvRE9NQUlOX05BTUUvW1ZFUlNJT05dYF0oI3N3YWdnZXJodWItZG9tYWludXBkYXRlKQoqIFtgc3dhZ2dlcmh1YiBoZWxwIFtDT01NQU5EU11gXSgjc3dhZ2dlcmh1Yi1oZWxwKQoqIFtgc3dhZ2dlcmh1YiBpbnRlZ3JhdGlvbjpjcmVhdGUgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dYF0oI3N3YWdnZXJodWItaW50ZWdyYXRpb25jcmVhdGUpCiogW2Bzd2FnZ2VyaHViIGludGVncmF0aW9uOmRlbGV0ZSBPV05FUi9BUElfTkFNRS9WRVJTSU9OL0lOVEVHUkFUSU9OX0lEYF0oI3N3YWdnZXJodWItaW50ZWdyYXRpb25kZWxldGUpCiogW2Bzd2FnZ2VyaHViIGludGVncmF0aW9uOmV4ZWN1dGUgT1dORVIvQVBJX05BTUUvVkVSU0lPTi9JTlRFR1JBVElPTl9JRGBdKCNzd2FnZ2VyaHViLWludGVncmF0aW9uZXhlY3V0ZSkKKiBbYHN3YWdnZXJodWIgaW50ZWdyYXRpb246Z2V0IE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04vSU5URUdSQVRJT05fSURgXSgjc3dhZ2dlcmh1Yi1pbnRlZ3JhdGlvbmdldCkKKiBbYHN3YWdnZXJodWIgaW50ZWdyYXRpb246bGlzdCBPV05FUi9BUElfTkFNRS9bVkVSU0lPTl1gXSgjc3dhZ2dlcmh1Yi1pbnRlZ3JhdGlvbmxpc3QpCiogW2Bzd2FnZ2VyaHViIGludGVncmF0aW9uOnVwZGF0ZSBPV05FUi9BUElfTkFNRS9WRVJTSU9OL0lOVEVHUkFUSU9OX0lEYF0oI3N3YWdnZXJodWItaW50ZWdyYXRpb251cGRhdGUpCiogW2Bzd2FnZ2VyaHViIHBsdWdpbnNgXSgjc3dhZ2dlcmh1Yi1wbHVnaW5zKQoqIFtgc3dhZ2dlcmh1YiBwbHVnaW5zOmluc3RhbGwgUExVR0lOLi4uYF0oI3N3YWdnZXJodWItcGx1Z2luc2luc3RhbGwpCiogW2Bzd2FnZ2VyaHViIHBsdWdpbnM6aW5zcGVjdCBQTFVHSU4uLi5gXSgjc3dhZ2dlcmh1Yi1wbHVnaW5zaW5zcGVjdCkKKiBbYHN3YWdnZXJodWIgcGx1Z2luczppbnN0YWxsIFBMVUdJTi4uLmBdKCNzd2FnZ2VyaHViLXBsdWdpbnNpbnN0YWxsKQoqIFtgc3dhZ2dlcmh1YiBwbHVnaW5zOmxpbmsgUExVR0lOYF0oI3N3YWdnZXJodWItcGx1Z2luc2xpbmspCiogW2Bzd2FnZ2VyaHViIHBsdWdpbnM6dW5pbnN0YWxsIFBMVUdJTi4uLmBdKCNzd2FnZ2VyaHViLXBsdWdpbnN1bmluc3RhbGwpCiogW2Bzd2FnZ2VyaHViIHBsdWdpbnM6dW5pbnN0YWxsIFBMVUdJTi4uLmBdKCNzd2FnZ2VyaHViLXBsdWdpbnN1bmluc3RhbGwpCiogW2Bzd2FnZ2VyaHViIHBsdWdpbnM6dW5pbnN0YWxsIFBMVUdJTi4uLmBdKCNzd2FnZ2VyaHViLXBsdWdpbnN1bmluc3RhbGwpCiogW2Bzd2FnZ2VyaHViIHBsdWdpbnM6dXBkYXRlYF0oI3N3YWdnZXJodWItcGx1Z2luc3VwZGF0ZSkKKiBbYHN3YWdnZXJodWIgcHJvamVjdDphcGk6YWRkIE9XTkVSL1BST0pFQ1RfTkFNRSBBUElgXSgjc3dhZ2dlcmh1Yi1wcm9qZWN0YXBpYWRkKQoqIFtgc3dhZ2dlcmh1YiBwcm9qZWN0OmFwaTpyZW1vdmUgT1dORVIvUFJPSkVDVF9OQU1FIEFQSWBdKCNzd2FnZ2VyaHViLXByb2plY3RhcGlyZW1vdmUpCiogW2Bzd2FnZ2VyaHViIHByb2plY3Q6Y3JlYXRlIE9XTkVSL1BST0pFQ1RfTkFNRWBdKCNzd2FnZ2VyaHViLXByb2plY3RjcmVhdGUpCiogW2Bzd2FnZ2VyaHViIHByb2plY3Q6ZGVsZXRlIE9XTkVSL1BST0pFQ1RfTkFNRWBdKCNzd2FnZ2VyaHViLXByb2plY3RkZWxldGUpCiogW2Bzd2FnZ2VyaHViIHByb2plY3Q6ZG9tYWluOmFkZCBPV05FUi9QUk9KRUNUX05BTUUgRE9NQUlOYF0oI3N3YWdnZXJodWItcHJvamVjdGRvbWFpbmFkZCkKKiBbYHN3YWdnZXJodWIgcHJvamVjdDpkb21haW46cmVtb3ZlIE9XTkVSL1BST0pFQ1RfTkFNRSBET01BSU5gXSgjc3dhZ2dlcmh1Yi1wcm9qZWN0ZG9tYWlucmVtb3ZlKQoqIFtgc3dhZ2dlcmh1YiBwcm9qZWN0OmdldCBPV05FUi9QUk9KRUNUX05BTUVgXSgjc3dhZ2dlcmh1Yi1wcm9qZWN0Z2V0KQoqIFtgc3dhZ2dlcmh1YiBwcm9qZWN0Omxpc3QgW09XTkVSXWBdKCNzd2FnZ2VyaHViLXByb2plY3RsaXN0KQoqIFtgc3dhZ2dlcmh1YiBwcm9qZWN0Om1lbWJlcjpsaXN0IE9XTkVSL1BST0pFQ1RfTkFNRWBdKCNzd2FnZ2VyaHViLXByb2plY3RtZW1iZXJsaXN0KQoKIyMgYHN3YWdnZXJodWIgYXBpOmNyZWF0ZWAKCmNyZWF0ZXMgYSBuZXcgQVBJIC8gQVBJIHZlcnNpb24gZnJvbSBhIFlBTUwvSlNPTiBmaWxlCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgYXBpOmNyZWF0ZSBPV05FUi9BUElfTkFNRS9bVkVSU0lPTl0gWy0tdmlzaWJpbGl0eSBwdWJsaWN8cHJpdmF0ZV0gKC0tcHVibGlzaGVkIHB1Ymxpc2h8dW5wdWJsaXNoCiAgICAtZiA8dmFsdWU+KSBbLS1zZXRkZWZhdWx0IF0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dICBBUEkgdG8gY3JlYXRlIG9uIFN3YWdnZXJIdWIKCkZMQUdTCiAgLWYsIC0tZmlsZT08dmFsdWU+ICAgICAocmVxdWlyZWQpIGZpbGUgbG9jYXRpb24gb2YgQVBJIHRvIGNyZWF0ZQogIC1oLCAtLWhlbHAgICAgICAgICAgICAgU2hvdyBDTEkgaGVscC4KICAtLXB1Ymxpc2hlZD08b3B0aW9uPiAgIFtkZWZhdWx0OiB1bnB1Ymxpc2hdIHNldHMgdGhlIGxpZmVjeWNsZSBzZXR0aW5nIG9mIHRoZSBBUEkgdmVyc2lvbgogICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbnM6IHB1Ymxpc2h8dW5wdWJsaXNoPgogIC0tc2V0ZGVmYXVsdCAgICAgICAgICAgc2V0cyBBUEkgdmVyc2lvbiB0byBiZSB0aGUgZGVmYXVsdAogIC0tdmlzaWJpbGl0eT08b3B0aW9uPiAgW2RlZmF1bHQ6IHByaXZhdGVdIHZpc2liaWxpdHkgb2YgQVBJIGluIFN3YWdnZXJIdWIKICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25zOiBwdWJsaWN8cHJpdmF0ZT4KCkRFU0NSSVBUSU9OCiAgY3JlYXRlcyBhIG5ldyBBUEkgLyBBUEkgdmVyc2lvbiBmcm9tIGEgWUFNTC9KU09OIGZpbGUKICBUaGUgQVBJIHZlcnNpb24gZnJvbSB0aGUgZmlsZSB3aWxsIGJlIHVzZWQgdW5sZXNzIHRoZSB2ZXJzaW9uIGlzIHNwZWNpZmllZCBpbiB0aGUgY29tbWFuZCBhcmd1bWVudC4KICBBbiBlcnJvciB3aWxsIG9jY3VyIGlmIHRoZSBBUEkgdmVyc2lvbiBhbHJlYWR5IGV4aXN0cy4KCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBhcGk6Y3JlYXRlIG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAgLS1maWxlIGFwaS55YW1sIC0tdmlzaWJpbGl0eSBwdWJsaWMKCiAgJCBzd2FnZ2VyaHViIGFwaTpjcmVhdGUgb3JnYW5pemF0aW9uL2FwaSAtLWZpbGUgYXBpLnlhbWwKCiAgJCBzd2FnZ2VyaHViIGFwaTpjcmVhdGUgb3JnYW5pemF0aW9uL2FwaS8xLjAuMCAtLXB1Ymxpc2hlZD1wdWJsaXNoIC0tZmlsZSBhcGkuanNvbgoKICAkIHN3YWdnZXJodWIgYXBpOmNyZWF0ZSBvcmdhbml6YXRpb24vYXBpLzEuMC4wIC0tc2V0ZGVmYXVsdCAtLWZpbGUgYXBpLmpzb24KCiAgJCBzd2FnZ2VyaHViIGFwaTpjcmVhdGUgb3JnYW5pemF0aW9uL2FwaS8xLjAuMCAtLXB1Ymxpc2hlZD1wdWJsaXNoIC0tc2V0ZGVmYXVsdCAtLWZpbGUgYXBpLmpzb24KYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvYXBpL2NyZWF0ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvYXBpL2NyZWF0ZS5qcylfCgojIyBgc3dhZ2dlcmh1YiBhcGk6ZGVsZXRlYAoKZGVsZXRlIGFuIEFQSSBvciBBUEkgdmVyc2lvbgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGFwaTpkZWxldGUgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dIFstZl0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dICBBUEkgdG8gZGVsZXRlIG9uIFN3YWdnZXJIdWIKCkZMQUdTCiAgLWYsIC0tZm9yY2UgIGRlbGV0ZSBBUEkgd2l0aG91dCBwcm9tcHRpbmcgZm9yIGNvbmZpcm1hdGlvbgogIC1oLCAtLWhlbHAgICBTaG93IENMSSBoZWxwLgoKREVTQ1JJUFRJT04KICBkZWxldGUgYW4gQVBJIG9yIEFQSSB2ZXJzaW9uCgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgYXBpOmRlbGV0ZSBvcmdhbml6YXRpb24vYXBpLzEuMC4wCgogICQgc3dhZ2dlcmh1YiBhcGk6ZGVsZXRlIG9yZ2FuaXphdGlvbi9hcGkKCiAgJCBzd2FnZ2VyaHViIGFwaTpkZWxldGUgb3JnYW5pemF0aW9uL2FwaSAtLWZvcmNlCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2FwaS9kZWxldGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2FwaS9kZWxldGUuanMpXwoKIyMgYHN3YWdnZXJodWIgYXBpOmdldGAKCmZldGNoZXMgYW4gQVBJIGRlZmluaXRpb24KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBhcGk6Z2V0IE9XTkVSL0FQSV9OQU1FL1tWRVJTSU9OXSBbLWpdIFstcl0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dICBBUEkgdG8gZmV0Y2ggZnJvbSBTd2FnZ2VyaHViCgpGTEFHUwogIC1oLCAtLWhlbHAgICAgICBTaG93IENMSSBoZWxwLgogIC1qLCAtLWpzb24gICAgICByZXR1cm5zIHRoZSBBUEkgaW4gSlNPTiBmb3JtYXQuCiAgLXIsIC0tcmVzb2x2ZWQgIGdldHMgdGhlIHJlc29sdmVkIEFQSSBkZWZpbml0aW9uIChzdXBwb3J0ZWQgaW4gdjEuMjUrKS4KCkRFU0NSSVBUSU9OCiAgZmV0Y2hlcyBhbiBBUEkgZGVmaW5pdGlvbgogIFdoZW4gVkVSU0lPTiBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGFyZ3VtZW50LCB0aGUgZGVmYXVsdCB2ZXJzaW9uIHdpbGwgYmUgcmV0dXJuZWQuCiAgUmV0dXJucyB0aGUgQVBJIGluIFlBTUwgZm9ybWF0IGJ5IGRlZmF1bHQuCgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgYXBpOmdldCBvcmdhbml6YXRpb24vYXBpCgogICQgc3dhZ2dlcmh1YiBhcGk6Z2V0IG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAgLS1qc29uCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2FwaS9nZXQuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2FwaS9nZXQuanMpXwoKIyMgYHN3YWdnZXJodWIgYXBpOnB1Ymxpc2hgCgpwdWJsaXNoIGFuIEFQSSB2ZXJzaW9uCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgYXBpOnB1Ymxpc2ggT1dORVIvQVBJX05BTUUvVkVSU0lPTiBbLWZdIFstaF0KCkFSR1VNRU5UUwogIE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04gIEFQSSB0byBwdWJsaXNoIG9uIFN3YWdnZXJodWIKCkZMQUdTCiAgLWYsIC0tZm9yY2UgIHB1Ymxpc2ggQVBJIHdpdGhvdXQgcHJvbXB0aW5nIGZvciBjb25maXJtYXRpb24KICAtaCwgLS1oZWxwICAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgcHVibGlzaCBhbiBBUEkgdmVyc2lvbgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgYXBpOnB1Ymxpc2ggb3JnYW5pemF0aW9uL2FwaS8xLjAuMAoKICAkIHN3YWdnZXJodWIgYXBpOnB1Ymxpc2ggb3JnYW5pemF0aW9uL2FwaS8xLjAuMCAtLWZvcmNlCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2FwaS9wdWJsaXNoLmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9hcGkvcHVibGlzaC5qcylfCgojIyBgc3dhZ2dlcmh1YiBhcGk6c2V0ZGVmYXVsdGAKCnNldCB0aGUgZGVmYXVsdCB2ZXJzaW9uIG9mIGFuIEFQSQoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGFwaTpzZXRkZWZhdWx0IE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvVkVSU0lPTiAgQVBJIHRvIHNldCBhcyBkZWZhdWx0IG9uIFN3YWdnZXJodWIKCkZMQUdTCiAgLWgsIC0taGVscCAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgc2V0IHRoZSBkZWZhdWx0IHZlcnNpb24gb2YgYW4gQVBJCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBhcGk6c2V0ZGVmYXVsdCBvcmdhbml6YXRpb24vYXBpLzIuMC4wCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2FwaS9zZXRkZWZhdWx0LmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9hcGkvc2V0ZGVmYXVsdC5qcylfCgojIyBgc3dhZ2dlcmh1YiBhcGk6dW5wdWJsaXNoYAoKdW5wdWJsaXNoIGFuIEFQSSB2ZXJzaW9uCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgYXBpOnVucHVibGlzaCBPV05FUi9BUElfTkFNRS9WRVJTSU9OIFstaF0KCkFSR1VNRU5UUwogIE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04gIEFQSSBpZGVudGlmaWVyCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCgpERVNDUklQVElPTgogIHVucHVibGlzaCBhbiBBUEkgdmVyc2lvbgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgYXBpOnVucHVibGlzaCBvcmdhbml6YXRpb24vYXBpLzEuMC4wCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2FwaS91bnB1Ymxpc2guanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2FwaS91bnB1Ymxpc2guanMpXwoKIyMgYHN3YWdnZXJodWIgYXBpOnVwZGF0ZWAKCnVwZGF0ZSBhbiBBUEkKCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBhcGk6dXBkYXRlIE9XTkVSL0FQSV9OQU1FL1tWRVJTSU9OXSBbLWYgPHZhbHVlPl0gWy0tdmlzaWJpbGl0eSBwdWJsaWN8cHJpdmF0ZV0gWy0tcHVibGlzaGVkCiAgICBwdWJsaXNofHVucHVibGlzaF0gWy0tc2V0ZGVmYXVsdF0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dICBBUEkgdG8gdXBkYXRlIG9uIFN3YWdnZXJIdWIKCkZMQUdTCiAgLWYsIC0tZmlsZT08dmFsdWU+ICAgICBmaWxlIGxvY2F0aW9uIG9mIEFQSSB0byB1cGRhdGUKICAtaCwgLS1oZWxwICAgICAgICAgICAgIFNob3cgQ0xJIGhlbHAuCiAgLS1wdWJsaXNoZWQ9PG9wdGlvbj4gICBzZXRzIHRoZSBsaWZlY3ljbGUgc2V0dGluZyBvZiB0aGUgQVBJIHZlcnNpb24KICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25zOiBwdWJsaXNofHVucHVibGlzaD4KICAtLXNldGRlZmF1bHQgICAgICAgICAgIHNldHMgQVBJIHZlcnNpb24gdG8gYmUgdGhlIGRlZmF1bHQKICAtLXZpc2liaWxpdHk9PG9wdGlvbj4gIHZpc2liaWxpdHkgb2YgQVBJIGluIFN3YWdnZXJIdWIKICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25zOiBwdWJsaWN8cHJpdmF0ZT4KCkRFU0NSSVBUSU9OCiAgdXBkYXRlIGFuIEFQSQogIFRoZSBBUEkgdmVyc2lvbiBmcm9tIHRoZSBmaWxlIHdpbGwgYmUgdXNlZCB1bmxlc3MgdGhlIHZlcnNpb24gaXMgc3BlY2lmaWVkIGluIHRoZSBjb21tYW5kIGFyZ3VtZW50LgogIFdoZW4gbm8gZmlsZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB3aWxsIGJlIHVwZGF0ZWQuCiAgVGhlIEFQSSB2aXNpYmlsaXR5IGNhbiBiZSBjaGFuZ2VkIGJ5IHVzaW5nIHZpc2liaWxpdHkgZmxhZy4KCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBhcGk6dXBkYXRlIG9yZ2FuaXphdGlvbi9hcGkgLS1maWxlIGFwaS55YW1sCgogICQgc3dhZ2dlcmh1YiBhcGk6dXBkYXRlIG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAgLS1maWxlIGFwaS5qc29uCgogICQgc3dhZ2dlcmh1YiBhcGk6dXBkYXRlIG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAgLS1wdWJsaXNoZWQ9cHVibGlzaCAtLWZpbGUgYXBpLmpzb24KCiAgJCBzd2FnZ2VyaHViIGFwaTp1cGRhdGUgb3JnYW5pemF0aW9uL2FwaS8xLjAuMCAtLXNldGRlZmF1bHQgLS1maWxlIGFwaS5qc29uCgogICQgc3dhZ2dlcmh1YiBhcGk6dXBkYXRlIG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAgLS1wdWJsaXNoZWQ9dW5wdWJsaXNoIC0tc2V0ZGVmYXVsdCAtLWZpbGUgYXBpLmpzb24KCiAgJCBzd2FnZ2VyaHViIGFwaTp1cGRhdGUgb3JnYW5pemF0aW9uL2FwaS8xLjAuMCAtLXZpc2liaWxpdHk9cHJpdmF0ZQpgYGAKCl9TZWUgY29kZTogW3NyYy9jb21tYW5kcy9hcGkvdXBkYXRlLmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9hcGkvdXBkYXRlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIGFwaTp2YWxpZGF0ZWAKCkdldCB2YWxpZGF0aW9uIHJlc3VsdCBmb3IgYW4gQVBJIHZlcnNpb24KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGUgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dIFstY10gWy1qXSBbLWhdCgpBUkdVTUVOVFMKICBPV05FUi9BUElfTkFNRS9bVkVSU0lPTl0gIEFQSSB0byBmZXRjaCB2YWxpZGF0aW9uIGVycm9ycyBmb3IgZnJvbSBTd2FnZ2VyaHViCgpGTEFHUwogIC1jLCAtLWZhaWwtb24tY3JpdGljYWwgIEV4aXQgd2l0aCBlcnJvciBjb2RlIDEgaWYgdGhlcmUgYXJlIGNyaXRpY2FsIHN0YW5kYXJkaXphdGlvbiBlcnJvcnMgcHJlc2VudAogIC1oLCAtLWhlbHAgICAgICAgICAgICAgIFNob3cgQ0xJIGhlbHAuCiAgLWosIC0tanNvbiAgICAgICAgICAgICAgUHJpbnQgb3V0cHV0IGluIEpTT04gaW5zdGVhZCBvZiB0YWJsZSBmb3JtYXQKCkRFU0NSSVBUSU9OCiAgR2V0IHZhbGlkYXRpb24gcmVzdWx0IGZvciBhbiBBUEkgdmVyc2lvbgogIFdoZW4gVkVSU0lPTiBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGFyZ3VtZW50LCB0aGUgZGVmYXVsdCB2ZXJzaW9uIHdpbGwgYmUgdmFsaWRhdGVkLgogIEFuIGVycm9yIHdpbGwgb2NjdXIgaWYgdGhlIEFQSSB2ZXJzaW9uIGRvZXMgbm90IGV4aXN0LgogIElmIHRoZSBmbGFnIGAtY2Agb3IgYC0tZmFpbE9uQ3JpdGljYWxgIGlzIHVzZWQgYW5kIHRoZXJlIGFyZSBzdGFuZGFyZGl6YXRpb24KICBlcnJvcnMgd2l0aCBgQ3JpdGljYWxgIHNldmVyaXR5IHByZXNlbnQsIHRoZSBjb21tYW5kIHdpbGwgZXhpdCB3aXRoIGVycm9yIGNvZGUgYDFgLgoKCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIGFwaTp2YWxpZGF0ZSBvcmdhbml6YXRpb24vYXBpLzEuMC4wCgogICQgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGUgLWMgLWogb3JnYW5pemF0aW9uL2FwaS8xLjAuMAoKICAkIHN3YWdnZXJodWIgYXBpOnZhbGlkYXRlIC0tZmFpbC1vbi1jcml0aWNhbCAtLWpzb24gb3JnYW5pemF0aW9uL2FwaQpgYGAKCl9TZWUgY29kZTogW3NyYy9jb21tYW5kcy9hcGkvdmFsaWRhdGUvaW5kZXguanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2FwaS92YWxpZGF0ZS9pbmRleC5qcylfCgojIyBgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGU6ZG93bmxvYWQtcnVsZXNgCgpHZXQgZXhpc3RpbmcgU3dhZ2dlckh1YidzIG9yZ2FuaXphdGlvbiBzdGFuZGFyZGl6YXRpb24gcnVsZXNldC4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGU6ZG93bmxvYWQtcnVsZXMgT1dORVIgWy1zXSBbLWRdIFstaF0KCkFSR1VNRU5UUwogIE9XTkVSICBXaGljaCBvcmdhbml6YXRpb24gc3RhbmRhcmRpemF0aW9uIHJ1bGVzIHRvIGZldGNoIGZyb20gU3dhZ2dlckh1YgoKRkxBR1MKICAtZCwgLS1pbmNsdWRlLWRpc2FibGVkLXJ1bGVzICBJbmNsdWRlcyBkaXNhYmxlZCBydWxlcyBpbiBmZXRjaGVkIG9yZ2FuaXphdGlvbidzIHJ1bGVzZXQKICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICBTaG93IENMSSBoZWxwLgogIC1zLCAtLWluY2x1ZGUtc3lzdGVtLXJ1bGVzICAgIEluY2x1ZGVzIHN5c3RlbSBydWxlcyBpbiBmZXRjaGVkIG9yZ2FuaXphdGlvbidzIHJ1bGVzZXQKCkRFU0NSSVBUSU9OCiAgR2V0IGV4aXN0aW5nIFN3YWdnZXJIdWIncyBvcmdhbml6YXRpb24gc3RhbmRhcmRpemF0aW9uIHJ1bGVzZXQuCiAgUmVxdWlyZXMgb3JnYW5pemF0aW9uIG5hbWUgYXJndW1lbnQuIEFuIGVycm9yIHdpbGwgb2NjdXIgaWYgcHJvdmlkZWQgb3JnYW5pemF0aW9uIGRvZXNuJ3QgZXhpc3QKICBvciB5b3VyIGFjY291bnQgaXMgbm90IHBlcm1pdHRlZCB0byBhY2Nlc3MgdGhhdCBvcmdhbml6YXRpb24ncyBzZXR0aW5ncy4KICBJZiB0aGUgZmxhZyBgLXNgIG9yIGAtLWluY2x1ZGUtc3lzdGVtLXJ1bGVzYCBpcyB1c2VkLCB0aGUgcmV0dXJuZWQgcnVsZXNldCB3aWxsIGFsc28gaW5jbHVkZSBTd2FnZ2VySHViIHN5c3RlbSBydWxlcy4KICBJZiB0aGUgZmxhZyBgLWRgIG9yIGAtLWluY2x1ZGUtZGlzYWJsZWQtcnVsZXNgIGlzIHVzZWQsIHRoZSByZXR1cm5lZCBydWxlc2V0IHdpbGwgYWxzbyBpbmNsdWRlIGRpc2FibGVkIGN1c3RvbSBydWxlcwoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgYXBpOnZhbGlkYXRlOmRvd25sb2FkLXJ1bGVzIG15T3JnIC1zCgogICQgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGU6ZG93bmxvYWQtcnVsZXMgbXlPcmcgLS1pbmNsdWRlLWRpc2FibGVkLXJ1bGVzIC1zCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2FwaS92YWxpZGF0ZS9kb3dubG9hZC1ydWxlcy5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvYXBpL3ZhbGlkYXRlL2Rvd25sb2FkLXJ1bGVzLmpzKV8KCiMjIGBzd2FnZ2VyaHViIGFwaTp2YWxpZGF0ZTpsb2NhbGAKClJ1bnMgYSBzY2FuIGFnYWluc3QgYSBsb2NhbCBBUEkgZGVmaW5pdGlvbiB1c2luZyB0aGUgb3JnYW5pemF0aW9uJ3Mgc3RhbmRhcmRpemF0aW9uIGNvbmZpZ3VyYXRpb24gb24gU3dhZ2dlckh1Yi4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGU6bG9jYWwgLWYgPHZhbHVlPiAtbyA8dmFsdWU+IFstY10gWy1qXSBbLWhdCgpGTEFHUwogIC1jLCAtLWZhaWwtb24tY3JpdGljYWwgICAgICBFeGl0IHdpdGggZXJyb3IgY29kZSAxIGlmIHRoZXJlIGFyZSBjcml0aWNhbCBzdGFuZGFyZGl6YXRpb24gZXJyb3JzIHByZXNlbnQKICAtZiwgLS1maWxlPTx2YWx1ZT4gICAgICAgICAgKHJlcXVpcmVkKSBQYXRoIG9mIEFQSSBkZWZpbml0aW9uIGZpbGUgdG8gcnVuIHNjYW4gYWdhaW5zdAogIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICBTaG93IENMSSBoZWxwLgogIC1qLCAtLWpzb24gICAgICAgICAgICAgICAgICBQcmludCBvdXRwdXQgaW4gSlNPTiBpbnN0ZWFkIG9mIHRhYmxlIGZvcm1hdAogIC1vLCAtLW9yZ2FuaXphdGlvbj08dmFsdWU+ICAocmVxdWlyZWQpIFdoaWNoIG9yZ2FuaXphdGlvbidzIHN0YW5kYXJkaXphdGlvbiBzZXR0aW5ncyB0byB1c2UgZm9yIGxpbnRpbmcgdGhlIHRhcmdldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbml0aW9uCgpERVNDUklQVElPTgogIFJ1bnMgYSBzY2FuIGFnYWluc3QgYSBsb2NhbCBBUEkgZGVmaW5pdGlvbiB1c2luZyB0aGUgb3JnYW5pemF0aW9uJ3Mgc3RhbmRhcmRpemF0aW9uIGNvbmZpZ3VyYXRpb24gb24gU3dhZ2dlckh1Yi4KICBJZiB0aGUgZmxhZyBgLWNgIG9yIGAtLWZhaWxPbkNyaXRpY2FsYCBpcyB1c2VkIGFuZCB0aGVyZSBhcmUgc3RhbmRhcmRpemF0aW9uCiAgZXJyb3JzIHdpdGggYENyaXRpY2FsYCBzZXZlcml0eSBwcmVzZW50LCB0aGUgY29tbWFuZCB3aWxsIGV4aXQgd2l0aCBlcnJvciBjb2RlIGAxYC4KCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBhcGk6dmFsaWRhdGU6bG9jYWwgLW8gbXlPcmcgLWYgLi9teS1hcGkueWFtbCAtYyAtaiAKCiAgJCBzd2FnZ2VyaHViIGFwaTp2YWxpZGF0ZTpsb2NhbCAtLW9yZ2FuaXphdGlvbiBteU9yZyAtLWZpbGUgLi9teS1hcGkvanNvbiAtLWZhaWwtb24tY3JpdGljYWwgLS1qc29uCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2FwaS92YWxpZGF0ZS9sb2NhbC5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvYXBpL3ZhbGlkYXRlL2xvY2FsLmpzKV8KCiMjIGBzd2FnZ2VyaHViIGNvbmZpZ3VyZWAKCmNvbmZpZ3VyZSBhcHBsaWNhdGlvbiBzZXR0aW5ncwoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGNvbmZpZ3VyZSBbLWhdCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCgpERVNDUklQVElPTgogIGNvbmZpZ3VyZSBhcHBsaWNhdGlvbiBzZXR0aW5ncwogIEVudGVyIHRoZSBTd2FnZ2VySHViIFVSTCAtIGRlZmF1bHQgaXMgaHR0cHM6Ly9hcGkuc3dhZ2dlcmh1Yi5jb20KICBDdXN0b21lcnMgd2l0aCBvbi1wcmVtaXNlIGluc3RhbGxhdGlvbnMgbmVlZCB0byBwb2ludCB0aGlzIHRvIHRoZWlyIG9uLXByZW1pc2UgQVBJLCB3aGljaCBpcwogIGh0dHAocyk6Ly97c3dhZ2dlcmh1Yi1ob3N0fS92MQogIEVudGVyIHRoZSBBUEkgS2V5IC0gdGhpcyBjYW4gYmUgcmV0cmlldmVkIGZyb20gaHR0cHM6Ly9hcHAuc3dhZ2dlcmh1Yi5jb20vc2V0dGluZ3MvYXBpS2V5CiAgWW91IGNhbiBzZXQgdGhlc2UgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzOiBTV0FHR0VSSFVCX1VSTCwgU1dBR0dFUkhVQl9BUElfS0VZLiBUaGVzZSB0YWtlIHByaW9yaXR5IG92ZXIgY29uZmlnCiAgc2V0dGluZ3MuCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2NvbmZpZ3VyZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvY29uZmlndXJlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIGRvbWFpbjpjcmVhdGVgCgpjcmVhdGVzIGEgbmV3IGRvbWFpbiAvIGRvbWFpbiB2ZXJzaW9uIGZyb20gYSBZQU1ML0pTT04gZmlsZQoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjpjcmVhdGUgT1dORVIvRE9NQUlOX05BTUUvW1ZFUlNJT05dIFstLXZpc2liaWxpdHkgcHVibGljfHByaXZhdGVdICgtLXB1Ymxpc2hlZAogICAgcHVibGlzaHx1bnB1Ymxpc2ggLWYgPHZhbHVlPikgWy0tc2V0ZGVmYXVsdCBdIFstaF0KCkFSR1VNRU5UUwogIE9XTkVSL0RPTUFJTl9OQU1FL1tWRVJTSU9OXSAgRG9tYWluIHRvIGNyZWF0ZSBvbiBTd2FnZ2VySHViCgpGTEFHUwogIC1mLCAtLWZpbGU9PHZhbHVlPiAgICAgKHJlcXVpcmVkKSBmaWxlIGxvY2F0aW9uIG9mIGRvbWFpbiB0byBjcmVhdGUKICAtaCwgLS1oZWxwICAgICAgICAgICAgIFNob3cgQ0xJIGhlbHAuCiAgLS1wdWJsaXNoZWQ9PG9wdGlvbj4gICBbZGVmYXVsdDogdW5wdWJsaXNoXSBzZXRzIHRoZSBsaWZlY3ljbGUgc2V0dGluZyBvZiB0aGUgZG9tYWluIHZlcnNpb24KICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25zOiBwdWJsaXNofHVucHVibGlzaD4KICAtLXNldGRlZmF1bHQgICAgICAgICAgIHNldHMgZG9tYWluIHZlcnNpb24gdG8gYmUgdGhlIGRlZmF1bHQKICAtLXZpc2liaWxpdHk9PG9wdGlvbj4gIFtkZWZhdWx0OiBwcml2YXRlXSB2aXNpYmlsaXR5IG9mIGRvbWFpbiBpbiBTd2FnZ2VySHViCiAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uczogcHVibGljfHByaXZhdGU+CgpERVNDUklQVElPTgogIGNyZWF0ZXMgYSBuZXcgZG9tYWluIC8gZG9tYWluIHZlcnNpb24gZnJvbSBhIFlBTUwvSlNPTiBmaWxlCiAgVGhlIGRvbWFpbiB2ZXJzaW9uIGZyb20gdGhlIGZpbGUgd2lsbCBiZSB1c2VkIHVubGVzcyB0aGUgdmVyc2lvbiBpcyBzcGVjaWZpZWQgaW4gdGhlIGNvbW1hbmQgYXJndW1lbnQuCiAgQW4gZXJyb3Igd2lsbCBvY2N1ciBpZiB0aGUgZG9tYWluIHZlcnNpb24gYWxyZWFkeSBleGlzdHMuCgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgZG9tYWluOmNyZWF0ZSBvcmdhbml6YXRpb24vZG9tYWluLzEuMC4wIC0tZmlsZSBkb21haW4ueWFtbCAtLXZpc2liaWxpdHkgcHVibGljCgogICQgc3dhZ2dlcmh1YiBkb21haW46Y3JlYXRlIG9yZ2FuaXphdGlvbi9kb21haW4gLS1maWxlIGRvbWFpbi55YW1sCgogICQgc3dhZ2dlcmh1YiBkb21haW46Y3JlYXRlIG9yZ2FuaXphdGlvbi9kb21haW4vMS4wLjAgLS1wdWJsaXNoIC0tZmlsZSBkb21haW4uanNvbgoKICAkIHN3YWdnZXJodWIgZG9tYWluOmNyZWF0ZSBvcmdhbml6YXRpb24vZG9tYWluLzEuMC4wIC0tc2V0ZGVmYXVsdCAtLWZpbGUgZG9tYWluLmpzb24KCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjpjcmVhdGUgb3JnYW5pemF0aW9uL2RvbWFpbi8xLjAuMCAtLXB1Ymxpc2ggLS1zZXRkZWZhdWx0IC0tZmlsZSBkb21haW4uanNvbgpgYGAKCl9TZWUgY29kZTogW3NyYy9jb21tYW5kcy9kb21haW4vY3JlYXRlLmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9kb21haW4vY3JlYXRlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIGRvbWFpbjpkZWxldGVgCgpkZWxldGUgYSBkb21haW4gb3IgZG9tYWluIHZlcnNpb24KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBkb21haW46ZGVsZXRlIE9XTkVSL0RPTUFJTl9OQU1FL1tWRVJTSU9OXSBbLWZdIFstaF0KCkFSR1VNRU5UUwogIE9XTkVSL0RPTUFJTl9OQU1FL1tWRVJTSU9OXSAgRG9tYWluIHRvIGRlbGV0ZSBvbiBTd2FnZ2VySHViCgpGTEFHUwogIC1mLCAtLWZvcmNlICBkZWxldGUgZG9tYWluIHdpdGhvdXQgcHJvbXB0aW5nIGZvciBjb25maXJtYXRpb24KICAtaCwgLS1oZWxwICAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgZGVsZXRlIGEgZG9tYWluIG9yIGRvbWFpbiB2ZXJzaW9uCgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgZG9tYWluOmRlbGV0ZSBvcmdhbml6YXRpb24vZG9tYWluLzEuMC4wCgogICQgc3dhZ2dlcmh1YiBkb21haW46ZGVsZXRlIG9yZ2FuaXphdGlvbi9kb21haW4KCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjpkZWxldGUgb3JnYW5pemF0aW9uL2RvbWFpbiAtLWZvcmNlCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2RvbWFpbi9kZWxldGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2RvbWFpbi9kZWxldGUuanMpXwoKIyMgYHN3YWdnZXJodWIgZG9tYWluOmdldGAKCmZldGNoZXMgYSBkb21haW4gZGVmaW5pdGlvbgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjpnZXQgT1dORVIvRE9NQUlOX05BTUUvW1ZFUlNJT05dIFstal0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvRE9NQUlOX05BTUUvW1ZFUlNJT05dICBEb21haW4gdG8gZmV0Y2ggZnJvbSBTd2FnZ2VySHViCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCiAgLWosIC0tanNvbiAgcmV0dXJucyB0aGUgZG9tYWluIGluIEpTT04gZm9ybWF0LgoKREVTQ1JJUFRJT04KICBmZXRjaGVzIGEgZG9tYWluIGRlZmluaXRpb24KICBXaGVuIFZFUlNJT04gaXMgbm90IGluY2x1ZGVkIGluIHRoZSBhcmd1bWVudCwgdGhlIGRlZmF1bHQgdmVyc2lvbiB3aWxsIGJlIHJldHVybmVkLgogIFJldHVybnMgdGhlIGRvbWFpbiBpbiBZQU1MIGZvcm1hdCBieSBkZWZhdWx0LgoKCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjpnZXQgb3JnYW5pemF0aW9uL2RvbWFpbgoKICAkIHN3YWdnZXJodWIgZG9tYWluOmdldCBvcmdhbml6YXRpb24vZG9tYWluLzEuMC4wIC0tanNvbgpgYGAKCl9TZWUgY29kZTogW3NyYy9jb21tYW5kcy9kb21haW4vZ2V0LmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9kb21haW4vZ2V0LmpzKV8KCiMjIGBzd2FnZ2VyaHViIGRvbWFpbjpwdWJsaXNoYAoKcHVibGlzaCBhIGRvbWFpbiB2ZXJzaW9uCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgZG9tYWluOnB1Ymxpc2ggT1dORVIvRE9NQUlOX05BTUUvVkVSU0lPTiBbLWhdCgpBUkdVTUVOVFMKICBPV05FUi9ET01BSU5fTkFNRS9WRVJTSU9OICBEb21haW4gdG8gcHVibGlzaCBvbiBTd2FnZ2VySHViCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCgpERVNDUklQVElPTgogIHB1Ymxpc2ggYSBkb21haW4gdmVyc2lvbgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgZG9tYWluOnB1Ymxpc2ggb3JnYW5pemF0aW9uL2RvbWFpbi8xLjAuMApgYGAKCl9TZWUgY29kZTogW3NyYy9jb21tYW5kcy9kb21haW4vcHVibGlzaC5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvZG9tYWluL3B1Ymxpc2guanMpXwoKIyMgYHN3YWdnZXJodWIgZG9tYWluOnNldGRlZmF1bHRgCgpzZXQgdGhlIGRlZmF1bHQgdmVyc2lvbiBvZiBhIGRvbWFpbgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjpzZXRkZWZhdWx0IE9XTkVSL0RPTUFJTl9OQU1FL1ZFUlNJT04gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvRE9NQUlOX05BTUUvVkVSU0lPTiAgRG9tYWluIHRvIHNldCBhcyBkZWZhdWx0IG9uIFN3YWdnZXJIdWIKCkZMQUdTCiAgLWgsIC0taGVscCAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgc2V0IHRoZSBkZWZhdWx0IHZlcnNpb24gb2YgYSBkb21haW4KCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjpzZXRkZWZhdWx0IG9yZ2FuaXphdGlvbi9kb21haW4vMi4wLjAKYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvZG9tYWluL3NldGRlZmF1bHQuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2RvbWFpbi9zZXRkZWZhdWx0LmpzKV8KCiMjIGBzd2FnZ2VyaHViIGRvbWFpbjp1bnB1Ymxpc2hgCgp1bnB1Ymxpc2ggYSBkb21haW4gdmVyc2lvbgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjp1bnB1Ymxpc2ggT1dORVIvRE9NQUlOX05BTUUvVkVSU0lPTiBbLWhdCgpBUkdVTUVOVFMKICBPV05FUi9ET01BSU5fTkFNRS9WRVJTSU9OICBEb21haW4gdG8gdW5wdWJsaXNoIG9uIFN3YWdnZXJIdWIKCkZMQUdTCiAgLWgsIC0taGVscCAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgdW5wdWJsaXNoIGEgZG9tYWluIHZlcnNpb24KCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjp1bnB1Ymxpc2ggb3JnYW5pemF0aW9uL2RvbWFpbi8xLjAuMApgYGAKCl9TZWUgY29kZTogW3NyYy9jb21tYW5kcy9kb21haW4vdW5wdWJsaXNoLmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9kb21haW4vdW5wdWJsaXNoLmpzKV8KCiMjIGBzd2FnZ2VyaHViIGRvbWFpbjp1cGRhdGVgCgp1cGRhdGUgYSBkb21haW4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBkb21haW46dXBkYXRlIE9XTkVSL0RPTUFJTl9OQU1FL1tWRVJTSU9OXSBbLWYgPHZhbHVlPl0gWy0tdmlzaWJpbGl0eSBwdWJsaWN8cHJpdmF0ZV0gWy0tcHVibGlzaGVkCiAgICBwdWJsaXNofHVucHVibGlzaF0gWy0tc2V0ZGVmYXVsdF0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvRE9NQUlOX05BTUUvW1ZFUlNJT05dICBEb21haW4gdG8gdXBkYXRlIG9uIFN3YWdnZXJIdWIKCkZMQUdTCiAgLWYsIC0tZmlsZT08dmFsdWU+ICAgICBmaWxlIGxvY2F0aW9uIG9mIGRvbWFpbiB0byB1cGRhdGUKICAtaCwgLS1oZWxwICAgICAgICAgICAgIFNob3cgQ0xJIGhlbHAuCiAgLS1wdWJsaXNoZWQ9PG9wdGlvbj4gICBzZXRzIHRoZSBsaWZlY3ljbGUgc2V0dGluZyBvZiB0aGUgZG9tYWluIHZlcnNpb24KICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25zOiBwdWJsaXNofHVucHVibGlzaD4KICAtLXNldGRlZmF1bHQgICAgICAgICAgIHNldHMgZG9tYWluIHZlcnNpb24gdG8gYmUgdGhlIGRlZmF1bHQKICAtLXZpc2liaWxpdHk9PG9wdGlvbj4gIHZpc2liaWxpdHkgb2YgZG9tYWluIGluIFN3YWdnZXJIdWIKICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25zOiBwdWJsaWN8cHJpdmF0ZT4KCkRFU0NSSVBUSU9OCiAgdXBkYXRlIGEgZG9tYWluCiAgVGhlIGRvbWFpbiB2ZXJzaW9uIGZyb20gdGhlIGZpbGUgd2lsbCBiZSB1c2VkIHVubGVzcyB0aGUgdmVyc2lvbiBpcyBzcGVjaWZpZWQgaW4gdGhlIGNvbW1hbmQgYXJndW1lbnQuCiAgV2hlbiBubyBmaWxlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBkZWZhdWx0IGRvbWFpbiB2ZXJzaW9uIHdpbGwgYmUgdXBkYXRlZC4KICBUaGUgZG9tYWluIHZpc2liaWxpdHkgY2FuIGJlIGNoYW5nZWQgYnkgdXNpbmcgdmlzaWJpbGl0eSBmbGFnLgoKCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjp1cGRhdGUgb3JnYW5pemF0aW9uL2RvbWFpbiAtLWZpbGUgZG9tYWluLnlhbWwKCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjp1cGRhdGUgb3JnYW5pemF0aW9uL2RvbWFpbi8xLjAuMCAtLWZpbGUgZG9tYWluLmpzb24KCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjp1cGRhdGUgb3JnYW5pemF0aW9uL2RvbWFpbi8xLjAuMCAtLXB1Ymxpc2hlZD1wdWJsaXNoIC0tZmlsZSBkb21haW4uanNvbgoKICAkIHN3YWdnZXJodWIgZG9tYWluOnVwZGF0ZSBvcmdhbml6YXRpb24vZG9tYWluLzEuMC4wIC0tc2V0ZGVmYXVsdCAtLWZpbGUgZG9tYWluLmpzb24KCiAgJCBzd2FnZ2VyaHViIGRvbWFpbjp1cGRhdGUgb3JnYW5pemF0aW9uL2RvbWFpbi8xLjAuMCAtLXB1Ymxpc2hlZD11bnB1Ymxpc2ggLS1zZXRkZWZhdWx0IC0tZmlsZSBkb21haW4uanNvbgoKICAkIHN3YWdnZXJodWIgZG9tYWluOnVwZGF0ZSBvcmdhbml6YXRpb24vZG9tYWluLzEuMC4wIC0tdmlzaWJpbGl0eT1wcml2YXRlCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2RvbWFpbi91cGRhdGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2RvbWFpbi91cGRhdGUuanMpXwoKIyMgYHN3YWdnZXJodWIgaGVscGAKCkRpc3BsYXkgaGVscCBmb3Igc3dhZ2dlcmh1Yi4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBoZWxwIFtDT01NQU5EU10gWy1uXQoKQVJHVU1FTlRTCiAgQ09NTUFORFMgIENvbW1hbmQgdG8gc2hvdyBoZWxwIGZvci4KCkZMQUdTCiAgLW4sIC0tbmVzdGVkLWNvbW1hbmRzICBJbmNsdWRlIGFsbCBuZXN0ZWQgY29tbWFuZHMgaW4gdGhlIG91dHB1dC4KCkRFU0NSSVBUSU9OCiAgRGlzcGxheSBoZWxwIGZvciBzd2FnZ2VyaHViLgpgYGAKCl9TZWUgY29kZTogW0BvY2xpZi9wbHVnaW4taGVscF0oaHR0cHM6Ly9naXRodWIuY29tL29jbGlmL3BsdWdpbi1oZWxwL2Jsb2IvdjYuMC4zL3NyYy9jb21tYW5kcy9oZWxwLnRzKV8KCiMjIGBzd2FnZ2VyaHViIGludGVncmF0aW9uOmNyZWF0ZWAKCmNyZWF0ZXMgYSBuZXcgQVBJIGludGVncmF0aW9uIGZyb20gYSBKU09OIGNvbmZpZ3VyYXRpb24gZmlsZS4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBpbnRlZ3JhdGlvbjpjcmVhdGUgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dIC1mIDx2YWx1ZT4gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dICBBUEkgdG8gYWRkIGludGVncmF0aW9uIHRvIG9uIFN3YWdnZXJIdWIKCkZMQUdTCiAgLWYsIC0tZmlsZT08dmFsdWU+ICAocmVxdWlyZWQpIGxvY2F0aW9uIG9mIGludGVncmF0aW9uIGNvbmZpZ3VyYXRpb24gZmlsZQogIC1oLCAtLWhlbHAgICAgICAgICAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgY3JlYXRlcyBhIG5ldyBBUEkgaW50ZWdyYXRpb24gZnJvbSBhIEpTT04gY29uZmlndXJhdGlvbiBmaWxlLgogIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgY29uZmlndXJhdGlvbiBmaWxlczoKICBodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL3RyZWUvbWFpbi9leGFtcGxlcy9pbnRlZ3JhdGlvbnMKICBXaGVuIFZFUlNJT04gaXMgbm90IGluY2x1ZGVkIGluIHRoZSBhcmd1bWVudCwgdGhlIGludGVncmF0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYmUgZGVmYXVsdCBBUEkgdmVyc2lvbi4KCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBpbnRlZ3JhdGlvbjpjcmVhdGUgb3JnYW5pemF0aW9uL2FwaS8xLjAuMCAtLWZpbGUgY29uZmlnLmpzb24KYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvaW50ZWdyYXRpb24vY3JlYXRlLmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9pbnRlZ3JhdGlvbi9jcmVhdGUuanMpXwoKIyMgYHN3YWdnZXJodWIgaW50ZWdyYXRpb246ZGVsZXRlYAoKZGVsZXRlcyB0aGUgaW50ZWdyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gQVBJLgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIGludGVncmF0aW9uOmRlbGV0ZSBPV05FUi9BUElfTkFNRS9WRVJTSU9OL0lOVEVHUkFUSU9OX0lEIFstaF0KCkFSR1VNRU5UUwogIE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04vSU5URUdSQVRJT05fSUQgIEludGVncmF0aW9uIHRvIGRlbGV0ZSBmb3IgZ2l2ZW4gQVBJIG9uIFN3YWdnZXJodWIKCkZMQUdTCiAgLWgsIC0taGVscCAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgZGVsZXRlcyB0aGUgaW50ZWdyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gQVBJLgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgaW50ZWdyYXRpb246ZGVsZXRlIG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAvNTAzYzJkYjYtNDQ4YS00Njc4LWEzMTAtZjQ2NTQyOWU5NzA0CmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2ludGVncmF0aW9uL2RlbGV0ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvaW50ZWdyYXRpb24vZGVsZXRlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIGludGVncmF0aW9uOmV4ZWN1dGVgCgpleGVjdXRlcyBhbiBpbnRlZ3JhdGlvbiBmb3IgdGhlIGdpdmVuIEFQSS4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBpbnRlZ3JhdGlvbjpleGVjdXRlIE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04vSU5URUdSQVRJT05fSUQgWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvVkVSU0lPTi9JTlRFR1JBVElPTl9JRCAgSW50ZWdyYXRpb24gdG8gZXhlY3V0ZSBmb3IgZ2l2ZW4gQVBJIG9uIFN3YWdnZXJodWIKCkZMQUdTCiAgLWgsIC0taGVscCAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgZXhlY3V0ZXMgYW4gaW50ZWdyYXRpb24gZm9yIHRoZSBnaXZlbiBBUEkuCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBpbnRlZ3JhdGlvbjpleGVjdXRlIG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAvNTAzYzJkYjYtNDQ4YS00Njc4LWEzMTAtZjQ2NTQyOWU5NzA0CmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2ludGVncmF0aW9uL2V4ZWN1dGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2ludGVncmF0aW9uL2V4ZWN1dGUuanMpXwoKIyMgYHN3YWdnZXJodWIgaW50ZWdyYXRpb246Z2V0YAoKcmV0aWV2ZXMgYW4gaW50ZWdyYXRpb24gZm9yIHRoZSBnaXZlbiBBUEkuCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgaW50ZWdyYXRpb246Z2V0IE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04vSU5URUdSQVRJT05fSUQgWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvVkVSU0lPTi9JTlRFR1JBVElPTl9JRCAgSW50ZWdyYXRpb24gdG8gZmV0Y2ggZm9yIGdpdmVuIEFQSSBvbiBTd2FnZ2VyaHViCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCgpERVNDUklQVElPTgogIHJldGlldmVzIGFuIGludGVncmF0aW9uIGZvciB0aGUgZ2l2ZW4gQVBJLgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgaW50ZWdyYXRpb246Z2V0IG9yZ2FuaXphdGlvbi9hcGkvMS4wLjAvNTAzYzJkYjYtNDQ4YS00Njc4LWEzMTAtZjQ2NTQyOWU5NzA0CmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2ludGVncmF0aW9uL2dldC5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvaW50ZWdyYXRpb24vZ2V0LmpzKV8KCiMjIGBzd2FnZ2VyaHViIGludGVncmF0aW9uOmxpc3RgCgpsaXN0IGludGVncmF0aW9ucyBvbiBhbiBBUEkuCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgaW50ZWdyYXRpb246bGlzdCBPV05FUi9BUElfTkFNRS9bVkVSU0lPTl0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvQVBJX05BTUUvW1ZFUlNJT05dICBBUEkgdG8gbGlzdCBpbnRlZ3JhdGlvbnMgZm9yIG9uIFN3YWdnZXJodWIKCkZMQUdTCiAgLWgsIC0taGVscCAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgbGlzdCBpbnRlZ3JhdGlvbnMgb24gYW4gQVBJLgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgaW50ZWdyYXRpb246bGlzdCBvcmdhbml6YXRpb24vYXBpLzEuMC4wCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2ludGVncmF0aW9uL2xpc3QuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL2ludGVncmF0aW9uL2xpc3QuanMpXwoKIyMgYHN3YWdnZXJodWIgaW50ZWdyYXRpb246dXBkYXRlYAoKdXBkYXRlIHRoZSBjb25maWd1cmF0aW9uIG9mIGFuIEFQSSBpbnRlZ3JhdGlvbi4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBpbnRlZ3JhdGlvbjp1cGRhdGUgT1dORVIvQVBJX05BTUUvVkVSU0lPTi9JTlRFR1JBVElPTl9JRCAtZiA8dmFsdWU+IFstaF0KCkFSR1VNRU5UUwogIE9XTkVSL0FQSV9OQU1FL1ZFUlNJT04vSU5URUdSQVRJT05fSUQgIEludGVncmF0aW9uIHRvIHVwZGF0ZSBmb3IgZ2l2ZW4gQVBJIG9uIFN3YWdnZXJodWIKCkZMQUdTCiAgLWYsIC0tZmlsZT08dmFsdWU+ICAocmVxdWlyZWQpIGxvY2F0aW9uIG9mIGludGVncmF0aW9uIGNvbmZpZ3VyYXRpb24gZmlsZQogIC1oLCAtLWhlbHAgICAgICAgICAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgdXBkYXRlIHRoZSBjb25maWd1cmF0aW9uIG9mIGFuIEFQSSBpbnRlZ3JhdGlvbi4KCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIGludGVncmF0aW9uOnVwZGF0ZSBvcmdhbml6YXRpb24vYXBpLzEuMC4wLzUwM2MyZGI2LTQ0OGEtNDY3OC1hYmNkLTAxMjM0NTY3ODlhYmMgLS1maWxlIGNvbmZpZy5qc29uCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL2ludGVncmF0aW9uL3VwZGF0ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvaW50ZWdyYXRpb24vdXBkYXRlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIHBsdWdpbnNgCgpMaXN0IGluc3RhbGxlZCBwbHVnaW5zLgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnMgWy0tanNvbl0gWy0tY29yZV0KCkZMQUdTCiAgLS1jb3JlICBTaG93IGNvcmUgcGx1Z2lucy4KCkdMT0JBTCBGTEFHUwogIC0tanNvbiAgRm9ybWF0IG91dHB1dCBhcyBqc29uLgoKREVTQ1JJUFRJT04KICBMaXN0IGluc3RhbGxlZCBwbHVnaW5zLgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgcGx1Z2lucwpgYGAKCl9TZWUgY29kZTogW0BvY2xpZi9wbHVnaW4tcGx1Z2luc10oaHR0cHM6Ly9naXRodWIuY29tL29jbGlmL3BsdWdpbi1wbHVnaW5zL2Jsb2IvdjMuOS4xL3NyYy9jb21tYW5kcy9wbHVnaW5zL2luZGV4LnRzKV8KCiMjIGBzd2FnZ2VyaHViIHBsdWdpbnM6aW5zdGFsbGAKCkluc3RhbGxzIGEgcGx1Z2luIGludG8gdGhlIENMSS4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwbHVnaW5zOmluc3RhbGwgUExVR0lOLi4uCgpBUkdVTUVOVFMKICBQTFVHSU4gIFBsdWdpbiB0byBpbnN0YWxsLgoKRkxBR1MKICAtZiwgLS1mb3JjZSAgICBSdW4geWFybiBpbnN0YWxsIHdpdGggZm9yY2UgZmxhZy4KICAtaCwgLS1oZWxwICAgICBTaG93IENMSSBoZWxwLgogIC12LCAtLXZlcmJvc2UKCkRFU0NSSVBUSU9OCiAgSW5zdGFsbHMgYSBwbHVnaW4gaW50byB0aGUgQ0xJLgogIENhbiBiZSBpbnN0YWxsZWQgZnJvbSBucG0gb3IgYSBnaXQgdXJsLgoKICBJbnN0YWxsYXRpb24gb2YgYSB1c2VyLWluc3RhbGxlZCBwbHVnaW4gd2lsbCBvdmVycmlkZSBhIGNvcmUgcGx1Z2luLgoKICBlLmcuIElmIHlvdSBoYXZlIGEgY29yZSBwbHVnaW4gdGhhdCBoYXMgYSAnaGVsbG8nIGNvbW1hbmQsIGluc3RhbGxpbmcgYSB1c2VyLWluc3RhbGxlZCBwbHVnaW4gd2l0aCBhICdoZWxsbycgY29tbWFuZAogIHdpbGwgb3ZlcnJpZGUgdGhlIGNvcmUgcGx1Z2luIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIHVzZWZ1bCBpZiBhIHVzZXIgbmVlZHMgdG8gdXBkYXRlIGNvcmUgcGx1Z2luIGZ1bmN0aW9uYWxpdHkgaW4KICB0aGUgQ0xJIHdpdGhvdXQgdGhlIG5lZWQgdG8gcGF0Y2ggYW5kIHVwZGF0ZSB0aGUgd2hvbGUgQ0xJLgoKCkFMSUFTRVMKICAkIHN3YWdnZXJodWIgcGx1Z2luczphZGQKCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6aW5zdGFsbCBteXBsdWdpbiAKCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6aW5zdGFsbCBodHRwczovL2dpdGh1Yi5jb20vc29tZXVzZXIvc29tZXBsdWdpbgoKICAkIHN3YWdnZXJodWIgcGx1Z2luczppbnN0YWxsIHNvbWV1c2VyL3NvbWVwbHVnaW4KYGBgCgojIyBgc3dhZ2dlcmh1YiBwbHVnaW5zOmluc3BlY3RgCgpEaXNwbGF5cyBpbnN0YWxsYXRpb24gcHJvcGVydGllcyBvZiBhIHBsdWdpbi4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwbHVnaW5zOmluc3BlY3QgUExVR0lOLi4uCgpBUkdVTUVOVFMKICBQTFVHSU4gIFtkZWZhdWx0OiAuXSBQbHVnaW4gdG8gaW5zcGVjdC4KCkZMQUdTCiAgLWgsIC0taGVscCAgICAgU2hvdyBDTEkgaGVscC4KICAtdiwgLS12ZXJib3NlCgpHTE9CQUwgRkxBR1MKICAtLWpzb24gIEZvcm1hdCBvdXRwdXQgYXMganNvbi4KCkRFU0NSSVBUSU9OCiAgRGlzcGxheXMgaW5zdGFsbGF0aW9uIHByb3BlcnRpZXMgb2YgYSBwbHVnaW4uCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBwbHVnaW5zOmluc3BlY3QgbXlwbHVnaW4KYGBgCgpfU2VlIGNvZGU6IFtAb2NsaWYvcGx1Z2luLXBsdWdpbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vY2xpZi9wbHVnaW4tcGx1Z2lucy9ibG9iL3YzLjkuMS9zcmMvY29tbWFuZHMvcGx1Z2lucy9pbnNwZWN0LnRzKV8KCiMjIGBzd2FnZ2VyaHViIHBsdWdpbnM6aW5zdGFsbGAKCkluc3RhbGxzIGEgcGx1Z2luIGludG8gdGhlIENMSS4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwbHVnaW5zOmluc3RhbGwgUExVR0lOLi4uCgpBUkdVTUVOVFMKICBQTFVHSU4gIFBsdWdpbiB0byBpbnN0YWxsLgoKRkxBR1MKICAtZiwgLS1mb3JjZSAgICBSdW4geWFybiBpbnN0YWxsIHdpdGggZm9yY2UgZmxhZy4KICAtaCwgLS1oZWxwICAgICBTaG93IENMSSBoZWxwLgogIC12LCAtLXZlcmJvc2UKCkRFU0NSSVBUSU9OCiAgSW5zdGFsbHMgYSBwbHVnaW4gaW50byB0aGUgQ0xJLgogIENhbiBiZSBpbnN0YWxsZWQgZnJvbSBucG0gb3IgYSBnaXQgdXJsLgoKICBJbnN0YWxsYXRpb24gb2YgYSB1c2VyLWluc3RhbGxlZCBwbHVnaW4gd2lsbCBvdmVycmlkZSBhIGNvcmUgcGx1Z2luLgoKICBlLmcuIElmIHlvdSBoYXZlIGEgY29yZSBwbHVnaW4gdGhhdCBoYXMgYSAnaGVsbG8nIGNvbW1hbmQsIGluc3RhbGxpbmcgYSB1c2VyLWluc3RhbGxlZCBwbHVnaW4gd2l0aCBhICdoZWxsbycgY29tbWFuZAogIHdpbGwgb3ZlcnJpZGUgdGhlIGNvcmUgcGx1Z2luIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIHVzZWZ1bCBpZiBhIHVzZXIgbmVlZHMgdG8gdXBkYXRlIGNvcmUgcGx1Z2luIGZ1bmN0aW9uYWxpdHkgaW4KICB0aGUgQ0xJIHdpdGhvdXQgdGhlIG5lZWQgdG8gcGF0Y2ggYW5kIHVwZGF0ZSB0aGUgd2hvbGUgQ0xJLgoKCkFMSUFTRVMKICAkIHN3YWdnZXJodWIgcGx1Z2luczphZGQKCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6aW5zdGFsbCBteXBsdWdpbiAKCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6aW5zdGFsbCBodHRwczovL2dpdGh1Yi5jb20vc29tZXVzZXIvc29tZXBsdWdpbgoKICAkIHN3YWdnZXJodWIgcGx1Z2luczppbnN0YWxsIHNvbWV1c2VyL3NvbWVwbHVnaW4KYGBgCgpfU2VlIGNvZGU6IFtAb2NsaWYvcGx1Z2luLXBsdWdpbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vY2xpZi9wbHVnaW4tcGx1Z2lucy9ibG9iL3YzLjkuMS9zcmMvY29tbWFuZHMvcGx1Z2lucy9pbnN0YWxsLnRzKV8KCiMjIGBzd2FnZ2VyaHViIHBsdWdpbnM6bGlua2AKCkxpbmtzIGEgcGx1Z2luIGludG8gdGhlIENMSSBmb3IgZGV2ZWxvcG1lbnQuCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgcGx1Z2luczpsaW5rIFBMVUdJTgoKQVJHVU1FTlRTCiAgUEFUSCAgW2RlZmF1bHQ6IC5dIHBhdGggdG8gcGx1Z2luCgpGTEFHUwogIC1oLCAtLWhlbHAgICAgICBTaG93IENMSSBoZWxwLgogIC12LCAtLXZlcmJvc2UKICAtLVtuby1daW5zdGFsbCAgSW5zdGFsbCBkZXBlbmRlbmNpZXMgYWZ0ZXIgbGlua2luZyB0aGUgcGx1Z2luLgoKREVTQ1JJUFRJT04KICBMaW5rcyBhIHBsdWdpbiBpbnRvIHRoZSBDTEkgZm9yIGRldmVsb3BtZW50LgogIEluc3RhbGxhdGlvbiBvZiBhIGxpbmtlZCBwbHVnaW4gd2lsbCBvdmVycmlkZSBhIHVzZXItaW5zdGFsbGVkIG9yIGNvcmUgcGx1Z2luLgoKICBlLmcuIElmIHlvdSBoYXZlIGEgdXNlci1pbnN0YWxsZWQgb3IgY29yZSBwbHVnaW4gdGhhdCBoYXMgYSAnaGVsbG8nIGNvbW1hbmQsIGluc3RhbGxpbmcgYSBsaW5rZWQgcGx1Z2luIHdpdGggYSAnaGVsbG8nCiAgY29tbWFuZCB3aWxsIG92ZXJyaWRlIHRoZSB1c2VyLWluc3RhbGxlZCBvciBjb3JlIHBsdWdpbiBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyB1c2VmdWwgZm9yIGRldmVsb3BtZW50IHdvcmsuCgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgcGx1Z2luczpsaW5rIG15cGx1Z2luCmBgYAoKX1NlZSBjb2RlOiBbQG9jbGlmL3BsdWdpbi1wbHVnaW5zXShodHRwczovL2dpdGh1Yi5jb20vb2NsaWYvcGx1Z2luLXBsdWdpbnMvYmxvYi92My45LjEvc3JjL2NvbW1hbmRzL3BsdWdpbnMvbGluay50cylfCgojIyBgc3dhZ2dlcmh1YiBwbHVnaW5zOnVuaW5zdGFsbGAKClJlbW92ZXMgYSBwbHVnaW4gZnJvbSB0aGUgQ0xJLgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6dW5pbnN0YWxsIFBMVUdJTi4uLgoKQVJHVU1FTlRTCiAgUExVR0lOICBwbHVnaW4gdG8gdW5pbnN0YWxsCgpGTEFHUwogIC1oLCAtLWhlbHAgICAgIFNob3cgQ0xJIGhlbHAuCiAgLXYsIC0tdmVyYm9zZQoKREVTQ1JJUFRJT04KICBSZW1vdmVzIGEgcGx1Z2luIGZyb20gdGhlIENMSS4KCkFMSUFTRVMKICAkIHN3YWdnZXJodWIgcGx1Z2luczp1bmxpbmsKICAkIHN3YWdnZXJodWIgcGx1Z2luczpyZW1vdmUKYGBgCgojIyBgc3dhZ2dlcmh1YiBwbHVnaW5zOnVuaW5zdGFsbGAKClJlbW92ZXMgYSBwbHVnaW4gZnJvbSB0aGUgQ0xJLgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6dW5pbnN0YWxsIFBMVUdJTi4uLgoKQVJHVU1FTlRTCiAgUExVR0lOICBwbHVnaW4gdG8gdW5pbnN0YWxsCgpGTEFHUwogIC1oLCAtLWhlbHAgICAgIFNob3cgQ0xJIGhlbHAuCiAgLXYsIC0tdmVyYm9zZQoKREVTQ1JJUFRJT04KICBSZW1vdmVzIGEgcGx1Z2luIGZyb20gdGhlIENMSS4KCkFMSUFTRVMKICAkIHN3YWdnZXJodWIgcGx1Z2luczp1bmxpbmsKICAkIHN3YWdnZXJodWIgcGx1Z2luczpyZW1vdmUKYGBgCgpfU2VlIGNvZGU6IFtAb2NsaWYvcGx1Z2luLXBsdWdpbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vY2xpZi9wbHVnaW4tcGx1Z2lucy9ibG9iL3YzLjkuMS9zcmMvY29tbWFuZHMvcGx1Z2lucy91bmluc3RhbGwudHMpXwoKIyMgYHN3YWdnZXJodWIgcGx1Z2luczp1bmluc3RhbGxgCgpSZW1vdmVzIGEgcGx1Z2luIGZyb20gdGhlIENMSS4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwbHVnaW5zOnVuaW5zdGFsbCBQTFVHSU4uLi4KCkFSR1VNRU5UUwogIFBMVUdJTiAgcGx1Z2luIHRvIHVuaW5zdGFsbAoKRkxBR1MKICAtaCwgLS1oZWxwICAgICBTaG93IENMSSBoZWxwLgogIC12LCAtLXZlcmJvc2UKCkRFU0NSSVBUSU9OCiAgUmVtb3ZlcyBhIHBsdWdpbiBmcm9tIHRoZSBDTEkuCgpBTElBU0VTCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6dW5saW5rCiAgJCBzd2FnZ2VyaHViIHBsdWdpbnM6cmVtb3ZlCmBgYAoKIyMgYHN3YWdnZXJodWIgcGx1Z2luczp1cGRhdGVgCgpVcGRhdGUgaW5zdGFsbGVkIHBsdWdpbnMuCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgcGx1Z2luczp1cGRhdGUgWy1oXSBbLXZdCgpGTEFHUwogIC1oLCAtLWhlbHAgICAgIFNob3cgQ0xJIGhlbHAuCiAgLXYsIC0tdmVyYm9zZQoKREVTQ1JJUFRJT04KICBVcGRhdGUgaW5zdGFsbGVkIHBsdWdpbnMuCmBgYAoKX1NlZSBjb2RlOiBbQG9jbGlmL3BsdWdpbi1wbHVnaW5zXShodHRwczovL2dpdGh1Yi5jb20vb2NsaWYvcGx1Z2luLXBsdWdpbnMvYmxvYi92My45LjEvc3JjL2NvbW1hbmRzL3BsdWdpbnMvdXBkYXRlLnRzKV8KCiMjIGBzd2FnZ2VyaHViIHByb2plY3Q6YXBpOmFkZGAKCkFkZHMgYW4gQVBJIHRvIGFuIGV4aXN0aW5nIHByb2plY3QuCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgcHJvamVjdDphcGk6YWRkIE9XTkVSL1BST0pFQ1RfTkFNRSBBUEkgWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvUFJPSkVDVF9OQU1FICBUaGUgcHJvamVjdCB0byBhZGQgdGhlIEFQSSB0byBvbiBTd2FnZ2VyaHViCiAgQVBJICAgICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgQVBJIG9uIFN3YWdnZXJodWIgdG8gYWRkCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCgpERVNDUklQVElPTgogIEFkZHMgYW4gQVBJIHRvIGFuIGV4aXN0aW5nIHByb2plY3QuCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmFwaTphZGQgb3JnYW5pemF0aW9uL3Byb2plY3RfbmFtZSBteV9hcGkKYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvcHJvamVjdC9hcGkvYWRkLmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9wcm9qZWN0L2FwaS9hZGQuanMpXwoKIyMgYHN3YWdnZXJodWIgcHJvamVjdDphcGk6cmVtb3ZlYAoKUmVtb3ZlcyBhbiBBUEkgZnJvbSBhIHByb2plY3QgaW4gU3dhZ2dlckh1Yi4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmFwaTpyZW1vdmUgT1dORVIvUFJPSkVDVF9OQU1FIEFQSSBbLWhdCgpBUkdVTUVOVFMKICBPV05FUi9QUk9KRUNUX05BTUUgIFRoZSBwcm9qZWN0IHRvIHJlbW92ZSB0aGUgQVBJIGZyb20gb24gU3dhZ2dlcmh1YgogIEFQSSAgICAgICAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIEFQSSBvbiBTd2FnZ2VyaHViIHRvIHJlbW92ZQoKRkxBR1MKICAtaCwgLS1oZWxwICBTaG93IENMSSBoZWxwLgoKREVTQ1JJUFRJT04KICBSZW1vdmVzIGFuIEFQSSBmcm9tIGEgcHJvamVjdCBpbiBTd2FnZ2VySHViLgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgcHJvamVjdDphcGk6cmVtb3ZlIG9yZ2FuaXphdGlvbi9wcm9qZWN0X25hbWUgbXlfYXBpCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL3Byb2plY3QvYXBpL3JlbW92ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvcHJvamVjdC9hcGkvcmVtb3ZlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIHByb2plY3Q6Y3JlYXRlYAoKQ3JlYXRlcyBhIG5ldyBwcm9qZWN0IGluIFN3YWdnZXJIdWIuCgpgYGAKVVNBR0UKICAkIHN3YWdnZXJodWIgcHJvamVjdDpjcmVhdGUgT1dORVIvUFJPSkVDVF9OQU1FIFstLWRlc2NyaXB0aW9uIDx2YWx1ZT5dIFstYSA8dmFsdWU+XSBbLWQgPHZhbHVlPl0gWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvUFJPSkVDVF9OQU1FICBUaGUgbmV3IHByb2plY3QgdG8gY3JlYXRlIG9uIFN3YWdnZXJodWIKCkZMQUdTCiAgLWEsIC0tYXBpcz08dmFsdWU+ICAgICBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhcGkgbmFtZXMgdG8gaW5jbHVkZSBpbiBwcm9qZWN0CiAgLWQsIC0tZG9tYWlucz08dmFsdWU+ICBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBkb21haW4gbmFtZXMgdG8gaW5jbHVkZSBpbiBwcm9qZWN0CiAgLWgsIC0taGVscCAgICAgICAgICAgICBTaG93IENMSSBoZWxwLgogIC0tZGVzY3JpcHRpb249PHZhbHVlPiAgRGVzY3JpcHRpb24gb2YgcHJvamVjdAoKREVTQ1JJUFRJT04KICBDcmVhdGVzIGEgbmV3IHByb2plY3QgaW4gU3dhZ2dlckh1Yi4KCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIHByb2plY3Q6Y3JlYXRlIG9yZ2FuaXphdGlvbi9uZXdfcHJvamVjdF9uYW1lIC0tZGVzY3JpcHRpb24gInByb2plY3QgZGVzY3JpcHRpb24iCgogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmNyZWF0ZSBvcmdhbml6YXRpb24vbmV3X3Byb2plY3RfbmFtZSAtYSAidGVzdGFwaTEsdGVzdGFwaTIiCgogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmNyZWF0ZSBvcmdhbml6YXRpb24vbmV3X3Byb2plY3RfbmFtZSAtLWFwaXMgInRlc3RhcGkxLHRlc3RhcGkyIgoKICAkIHN3YWdnZXJodWIgcHJvamVjdDpjcmVhdGUgb3JnYW5pemF0aW9uL25ld19wcm9qZWN0X25hbWUgLWQgInRlc3Rkb21haW4zLHRlc3Rkb21haW40IgoKICAkIHN3YWdnZXJodWIgcHJvamVjdDpjcmVhdGUgb3JnYW5pemF0aW9uL25ld19wcm9qZWN0X25hbWUgLS1kb21haW5zICJ0ZXN0ZG9tYWluMyx0ZXN0ZG9tYWluNCIKCiAgJCBzd2FnZ2VyaHViIHByb2plY3Q6Y3JlYXRlIG9yZ2FuaXphdGlvbi9uZXdfcHJvamVjdF9uYW1lIC1hICJ0ZXN0YXBpMSIgLWQgInRlc3Rkb21haW4zIiAtLWRlc2NyaXB0aW9uICJkZXNjcmlwdGlvbiIKYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvcHJvamVjdC9jcmVhdGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL3Byb2plY3QvY3JlYXRlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIHByb2plY3Q6ZGVsZXRlYAoKRGVsZXRlcyBhIHByb2plY3QgZnJvbSBTd2FnZ2VySHViLgoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIHByb2plY3Q6ZGVsZXRlIE9XTkVSL1BST0pFQ1RfTkFNRSBbLWhdCgpBUkdVTUVOVFMKICBPV05FUi9QUk9KRUNUX05BTUUgIFRoZSBwcm9qZWN0IHRvIGRlbGV0ZSBvbiBTd2FnZ2VyaHViCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCgpERVNDUklQVElPTgogIERlbGV0ZXMgYSBwcm9qZWN0IGZyb20gU3dhZ2dlckh1Yi4KCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIHByb2plY3Q6ZGVsZXRlIG9yZ2FuaXphdGlvbi9wcm9qZWN0X25hbWUKYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvcHJvamVjdC9kZWxldGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL3Byb2plY3QvZGVsZXRlLmpzKV8KCiMjIGBzd2FnZ2VyaHViIHByb2plY3Q6ZG9tYWluOmFkZGAKCkFkZHMgYSBkb21haW4gdG8gYW4gZXhpc3RpbmcgcHJvamVjdC4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmRvbWFpbjphZGQgT1dORVIvUFJPSkVDVF9OQU1FIERPTUFJTiBbLWhdCgpBUkdVTUVOVFMKICBPV05FUi9QUk9KRUNUX05BTUUgIFRoZSBwcm9qZWN0IHRvIGFkZCB0aGUgZG9tYWluIHRvIG9uIFN3YWdnZXJodWIKICBET01BSU4gICAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBkb21haW4gb24gU3dhZ2dlcmh1YiB0byBhZGQKCkZMQUdTCiAgLWgsIC0taGVscCAgU2hvdyBDTEkgaGVscC4KCkRFU0NSSVBUSU9OCiAgQWRkcyBhIGRvbWFpbiB0byBhbiBleGlzdGluZyBwcm9qZWN0LgoKRVhBTVBMRVMKICAkIHN3YWdnZXJodWIgcHJvamVjdDpkb21haW46YWRkIG9yZ2FuaXphdGlvbi9wcm9qZWN0X25hbWUgbXlfZG9tYWluCmBgYAoKX1NlZSBjb2RlOiBbc3JjL2NvbW1hbmRzL3Byb2plY3QvZG9tYWluL2FkZC5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvcHJvamVjdC9kb21haW4vYWRkLmpzKV8KCiMjIGBzd2FnZ2VyaHViIHByb2plY3Q6ZG9tYWluOnJlbW92ZWAKClJlbW92ZXMgYSBkb21haW4gZnJvbSBhIHByb2plY3QgaW4gU3dhZ2dlckh1Yi4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmRvbWFpbjpyZW1vdmUgT1dORVIvUFJPSkVDVF9OQU1FIERPTUFJTiBbLWhdCgpBUkdVTUVOVFMKICBPV05FUi9QUk9KRUNUX05BTUUgIFRoZSBwcm9qZWN0IHRvIHJlbW92ZSB0aGUgZG9tYWluIGZyb20gb24gU3dhZ2dlcmh1YgogIERPTUFJTiAgICAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIGRvbWFpbiBvbiBTd2FnZ2VyaHViIHRvIHJlbW92ZQoKRkxBR1MKICAtaCwgLS1oZWxwICBTaG93IENMSSBoZWxwLgoKREVTQ1JJUFRJT04KICBSZW1vdmVzIGEgZG9tYWluIGZyb20gYSBwcm9qZWN0IGluIFN3YWdnZXJIdWIuCgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmRvbWFpbjpyZW1vdmUgb3JnYW5pemF0aW9uL3Byb2plY3RfbmFtZSBteV9kb21haW4KYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvcHJvamVjdC9kb21haW4vcmVtb3ZlLmpzXShodHRwczovL2dpdGh1Yi5jb20vU21hcnRCZWFyL3N3YWdnZXJodWItY2xpL2Jsb2IvdjAuOS4wL3NyYy9jb21tYW5kcy9wcm9qZWN0L2RvbWFpbi9yZW1vdmUuanMpXwoKIyMgYHN3YWdnZXJodWIgcHJvamVjdDpnZXRgCgpSZXRyaWV2ZXMgdGhlIGRldGFpbHMgZm9yIGEgcHJvamVjdC4KCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwcm9qZWN0OmdldCBPV05FUi9QUk9KRUNUX05BTUUgWy1oXQoKQVJHVU1FTlRTCiAgT1dORVIvUFJPSkVDVF9OQU1FICBUaGUgcHJvamVjdCB0byBnZXQgZGV0YWlscyBmb3Igb24gU3dhZ2dlcmh1YgoKRkxBR1MKICAtaCwgLS1oZWxwICBTaG93IENMSSBoZWxwLgoKREVTQ1JJUFRJT04KICBSZXRyaWV2ZXMgdGhlIGRldGFpbHMgZm9yIGEgcHJvamVjdC4KCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIHByb2plY3Q6Z2V0IG9yZ2FuaXphdGlvbi9wcm9qZWN0X25hbWUKYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvcHJvamVjdC9nZXQuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL3Byb2plY3QvZ2V0LmpzKV8KCiMjIGBzd2FnZ2VyaHViIHByb2plY3Q6bGlzdGAKCmxpc3QgcHJvamVjdHMKCmBgYApVU0FHRQogICQgc3dhZ2dlcmh1YiBwcm9qZWN0Omxpc3QgW09XTkVSXSBbLWhdCgpBUkdVTUVOVFMKICBPV05FUiAgVGhlIG9yZ2FuaXphdGlvbiB0byBsaXN0IHByb2plY3RzIGZvciBvbiBTd2FnZ2VyaHViCgpGTEFHUwogIC1oLCAtLWhlbHAgIFNob3cgQ0xJIGhlbHAuCgpERVNDUklQVElPTgogIGxpc3QgcHJvamVjdHMKCkVYQU1QTEVTCiAgJCBzd2FnZ2VyaHViIHByb2plY3Q6bGlzdAoKICAkIHN3YWdnZXJodWIgcHJvamVjdDpsaXN0IG9yZ2FuaXphdGlvbgpgYGAKCl9TZWUgY29kZTogW3NyYy9jb21tYW5kcy9wcm9qZWN0L2xpc3QuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydEJlYXIvc3dhZ2dlcmh1Yi1jbGkvYmxvYi92MC45LjAvc3JjL2NvbW1hbmRzL3Byb2plY3QvbGlzdC5qcylfCgojIyBgc3dhZ2dlcmh1YiBwcm9qZWN0Om1lbWJlcjpsaXN0YAoKbGlzdCBtZW1iZXJzIG9mIGEgcHJvamVjdAoKYGBgClVTQUdFCiAgJCBzd2FnZ2VyaHViIHByb2plY3Q6bWVtYmVyOmxpc3QgT1dORVIvUFJPSkVDVF9OQU1FIFstaF0KCkFSR1VNRU5UUwogIE9XTkVSL1BST0pFQ1RfTkFNRSAgUHJvamVjdCB0byBsaXN0IG1lbWJlcnMgb2Ygb24gU3dhZ2dlcmh1YgoKRkxBR1MKICAtaCwgLS1oZWxwICBTaG93IENMSSBoZWxwLgoKREVTQ1JJUFRJT04KICBsaXN0IG1lbWJlcnMgb2YgYSBwcm9qZWN0CgpFWEFNUExFUwogICQgc3dhZ2dlcmh1YiBwcm9qZWN0Om1lbWJlcjpsaXN0IG9yZ2FuaXNhdGlvbi9wcm9qZWN0X25hbWUKYGBgCgpfU2VlIGNvZGU6IFtzcmMvY29tbWFuZHMvcHJvamVjdC9tZW1iZXIvbGlzdC5qc10oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9ibG9iL3YwLjkuMC9zcmMvY29tbWFuZHMvcHJvamVjdC9tZW1iZXIvbGlzdC5qcylfCjwhLS0gY29tbWFuZHNzdG9wIC0tPgoKIyBQbHVnaW5zCgpUaGUgU3dhZ2dlckh1YiBDTEkgc3VwcG9ydHMgcGx1Z2lucyB2aWEgdGhlIFtvY2xpZiBwbHVnaW5dKGh0dHBzOi8vb2NsaWYuaW8vZG9jcy9wbHVnaW5zKSBpbmZyYXN0cnVjdHVyZS4KClRvIGluc3RhbGwgYSBwbHVnaW4KCmBgYHNoLXNlc3Npb24KJCBzd2FnZ2VyaHViIHBsdWdpbnM6aW5zdGFsbCA8Z2l0aHViLXVybD4KYGBgCgpUbyBsaXN0IG90aGVyIG9wdGlvbnMgcmVsYXRlZCB0byBwbHVnaW5zCgpgYGBzaC1zZXNzaW9uCiQgc3dhZ2dlcmh1YiBwbHVnaW5zIC0taGVscApgYGAKCkFuIGV4YW1wbGUgcGx1Z2luIHVzZWQgZm9yIGZldGNoaW5nIHBvcHVsYXIgW0pTT04gU2NoZW1hXShodHRwczovL2pzb24tc2NoZW1hLm9yZy8pIGZpbGVzLCBjYW4gYmUgZm91bmQgaGVyZTogIFtodHRwczovL2dpdGh1Yi5jb20vcG9uZWxhdC9zd2FnZ2VyaHViLWNsaS1wbHVnaW4tc2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vcG9uZWxhdC9zd2FnZ2VyaHViLWNsaS1wbHVnaW4tc2NoZW1hKQoKRXhhbXBsZSB1c2FnZQoKYGBgc2gtc2Vzc2lvbgokIHN3YWdnZXJodWIgcGx1Z2luczppbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9wb25lbGF0L3N3YWdnZXJodWItY2xpLXBsdWdpbi1zY2hlbWEKJCBzd2FnZ2VyaHViIHNjaGVtYTpsaXN0CiAgYW5ndWxhci1jbGktanNvbgogIGFuc2libGUKICBhcHBsZS1hcHAtc2l0ZS1hc3NvY2lhdGlvbgogIGFwcHNzY3JpcHQtanNvbgogICMuLi4KJCBzd2FnZ2VyaHViIHNjaGVtYTpnZXQgYW5zaWJsZQogIHsKICAgICJkZXNjcmlwdGlvbiI6ICJBdXRvLUdlbmVyYXRlZCBKU09OIFNjaGVtYSBmb3IgQW5zaWJsZS1zdGFibGUgMi45IChodHRwczovL2dpdGh1Yi5jb20vc2hhZGVkLWVubWl0eS9hbnNpYmxlLXNjaGVtYS1nZW5lcmF0b3IpIiwKICAgICJ0aXRsZSI6ICJBbnNpYmxlIDIuOSIsCiAgICAiJHNjaGVtYSI6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMiLAogICAgInR5cGUiOiAiYXJyYXkiLAogICMgLi4uCmBgYAoKIyBDb250cmlidXRpbmcKPCEtLSBjb250cmlidXRpbmcgLS0+ClRoZSBTd2FnZ2VySHViIENMSSBpcyBjdXJyZW50bHkgaW4gYW4gYWN0aXZlIGRldmVsb3BtZW50IHBoYXNl4oCUd2Ugd2lsbCBub3QgYmUgYWNjZXB0aW5nIFB1bGwgUmVxdWVzdHMgYXQgdGhpcyB0aW1lLiBJZiB5b3XigJl2ZSBmb3VuZCBhbnkgYnVncyBvciB0eXBvcywgb3IgaGF2ZSBhIGZlYXR1cmUgcmVxdWVzdHMgb3IgZ2VuZXJhbCBmZWVkYmFjayB5b3XigJlkIGxpa2UgdG8gc2hhcmUsIHBsZWFzZSBvcGVuIGFuIFtpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0QmVhci9zd2FnZ2VyaHViLWNsaS9pc3N1ZXMpIGFuZCBsZXQgdXMga25vdy4KPCEtLSBjb250cmlidXRpbmdzdG9wIC0tPgo= readmeEtag: '"79aae0c41dbae0c250daa30a688da4415cd59915"' readmeLastModified: Wed, 24 Jul 2024 14:59:30 GMT repositoryId: 261799480 description: SwaggerHub CLI created: '2020-05-06T15:21:34Z' updated: '2024-09-02T07:55:41Z' language: JavaScript archived: false stars: 50 watchers: 35 forks: 14 owner: SmartBear logo: https://avatars.githubusercontent.com/u/1644671?v=4 license: Apache-2.0 repoEtag: '"a8dfaa86b9294ecb29005ab08d969e5b07f018bc9c2e43bf4a83b328fe3c4a4d"' repoLastModified: Mon, 02 Sep 2024 07:55:41 GMT foundInMaster: true category: Code Generators id: 4921a5a6c94697cd438f25deccf95ab6 - source: openapi3 tags repository: https://github.com/sanjayvacharya/sleeplessinslc v3: true repositoryMetadata: base64Readme: >- IyBzbGVlcGxlc3NpbnNsYwpEZW1vbnN0cmF0aW9uIGFuZCBUdXRvcmlhbCBjb2RlIGZyb20gdGhlIEJMT0cgaHR0cDovL3NsZWVwbGVzc2luc2xjLmJsb2dzcG90LmNvbS4gSWYgeW91IGNsb25lIHRoaXMgcmVwbywgZm9yayB0aGlzIHJlcG8sIHNoYXJlIGEgc3RhciB0byBzaG93IGhvdyBhd2Vzb21lIGl0IGlzISBDaGVlcnMhCg== readmeEtag: '"a0791fcbf318c272bf621109ee8decf5097bad50"' readmeLastModified: Sun, 26 Jul 2020 19:06:11 GMT repositoryId: 35256352 description: 'Demo code from ' created: '2015-05-08T03:21:12Z' updated: '2024-08-24T01:36:19Z' language: Java archived: false stars: 50 watchers: 2 forks: 65 owner: sanjayvacharya logo: https://avatars.githubusercontent.com/u/605398?v=4 repoEtag: '"f5ce426abfdb081d6f70c0e9ae8cb5c6e43d2d0302b38ca6764cb9cfc8b2985b"' repoLastModified: Sat, 24 Aug 2024 01:36:19 GMT foundInMaster: true category: - SDK - Server Implementations id: cab64553444e97be76afb26aa96e229a - source: openapi3 tags repository: https://github.com/openapitools/openapi-petstore v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHBldHN0b3JlCgpUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBPcGVuQVBJIHBldCBzdG9yZSBiYXNlZCBvbiBTcHJpbmctQm9vdC4KCiMjIE92ZXJ2aWV3CgpTdGFydCB5b3VyIHNlcnZlciBhcyBhIHNpbXBsZSBTcHJpbmctQm9vdCBhcHBsaWNhdGlvbgpgYGAKbXZuIHNwcmluZy1ib290OnJ1bgpgYGAKT3IgcGFja2FnZSBpdCB0aGVuIHJ1biBpdCBhcyBhIEphdmEgYXBwbGljYXRpb24KYGBgCm12biBwYWNrYWdlCmphdmEgLWphciB0YXJnZXQvb3BlbmFwaS1wZXRzdG9yZS17VkVSU0lPTn0uamFyCmBgYAoKWW91IGNhbiB2aWV3IHRoZSBhcGkgZG9jdW1lbnRhdGlvbiBpbiBzd2FnZ2VyLXVpIGJ5IHBvaW50aW5nIHRvICAKaHR0cDovL2xvY2FsaG9zdDo4MDgwLwoKIyMgRG9ja2VyCgpUbyBzdGFydCB0aGUgc2VydmVyIHZpYSBkb2NrZXIsIHBsZWFzZSBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kczoKYGBgc2gKZG9ja2VyIHB1bGwgb3BlbmFwaXRvb2xzL29wZW5hcGktcGV0c3RvcmUKZG9ja2VyIHJ1biAtZCAtZSBPUEVOQVBJX0JBU0VfUEFUSD0vdjMgLXAgODA6ODA4MCBvcGVuYXBpdG9vbHMvb3BlbmFwaS1wZXRzdG9yZQpgYGAKClJlZjogaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLXBldHN0b3JlLwoKIyMgU2VjdXJpdHkKCiMjIyBBUEkga2V5ClVzZSBgc3BlY2lhbC1rZXlgIGZvciBlbmRwb2ludHMgcHJvdGVjdGVkIGJ5IHRoZSBBUEkga2V5CgojIyMgT0F1dGgyCkJ5IGRlZmF1bHQgdGhlIHNlcnZlciBzdXBwb3J0cyB0aGUgaW1wbGljaXQgYW5kIHRoZSBwYXNzd29yZCBmbG93IChldmVuIHRob3VnaCBvbmx5IHRoZSBpbXBsaWNpdCBmbG93IGlzIGRlc2NyaWJlZCBpbiB0aGUgT0FJIHNwZWMpClRoZSBkZWZhdWx0IGNyZWRlbnRpYWxzIGFyZToKKiBjbGllbnQtaWQ6IHNhbXBsZS1jbGllbnQtaWQKKiBjbGllbnQtc2VjcmV0OiBzZWNyZXQKKiB1c2VybmFtZTogdXNlcgoqIHBhc3N3b3JkOiB1c2VyCgojIyBDb25maWd1cmF0aW9uCgpTcHJpbmcgcGFyYW1ldGVycyBpbiBhcHBsaWNhdGlvbi5wcm9wZXJ0aWVzOgoqIFNlcnZlciBwb3J0IDogYHNlcnZlci5wb3J0YCAoZGVmYXVsdD04MDgwKQoqIEFQSSBiYXNlIHBhdGggOiBgb3BlbmFwaS5vcGVuQVBJUGV0c3RvcmUuYmFzZS1wYXRoYCAoZGVmYXVsdD0vdjMpLiBJbiB0aGUgZG9ja2VyIGltYWdlIHRoZSBiYXNlIHBhdGggY2FuIGFsc28gYmUgc2V0IHdpdGggdGhlIGBPUEVOQVBJX0JBU0VfUEFUSGAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgpFbnZpcm9ubWVudCB2YXJpYWJsZXM6CiogYERJU0FCTEVfQVBJX0tFWWAgOiBpZiBzZXQgdG8gIjEiLCB0aGUgc2VydmVyIHdpbGwgbm90IGNoZWNrIHRoZSBhcGkga2V5IGZvciB0aGUgcmVsZXZhbnQgZW5kcG9pbnRzLgoqIGBESVNBQkxFX09BVVRIYCA6IGlmIHNldCB0byAiMSIsIHRoZSBzZXJ2ZXIgd2lsbCBub3QgY2hlY2sgZm9yIGFuIE9BdXRoMiBhY2Nlc3MgdG9rZW4uCgojIyBMaWNlbnNlCgpbQXBhY2hlIDIuMCBMaWNlbnNlXShodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAp readmeEtag: '"31d448ef5211e24c2722fa848d2623050d3a9609"' readmeLastModified: Mon, 13 Aug 2018 06:24:53 GMT repositoryId: 136197966 description: The pet store sample created: '2018-06-05T15:27:38Z' updated: '2024-08-29T19:07:46Z' language: Java archived: false stars: 49 watchers: 7 forks: 44 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 repoEtag: '"4fdb3674004799024939b377a736d06c2612b79f18076aabea7e4c2405219baa"' repoLastModified: Thu, 29 Aug 2024 19:07:46 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 25fdf5fe94f828502b6c15037763b24c - source: openapi3 tags repository: https://github.com/rots/n26-api v3: true repositoryMetadata: base64Readme: >- IyBuMjYtYXBpClVub2ZmaWNpYWwgTjI2IEFQSSBkb2N1bWVudGF0aW9uCgpJdCBpcyBhIGNvbGxlY3Rpb24gb2Ygb2JzZXJ2ZWQgQVBJIGNhbGxzIGFuZCBtZXRob2RzLiBObyBndWFyYW50ZWVzIGFyZSBwcm92aWRlZCB0aGF0IHRoZXkgYXJlIGNvbXBsZXRlLCBjb3JyZWN0IG9yIHRoYXQgdGhleSBhcmUgc3RpbGwgZnVuY3Rpb25pbmcgYXMgc3BlY2lmaWVkLgoKVGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpcyBwcm92aWRlZCBpbiB0aGUgYG9wZW5hcGkueW1sYCBmaWxlLgpGb3IgdGVzdGluZyB0aGUgc3BlYywgaXQgaXMgYWxzbyBwdWJsaXNoZWQgYXQgaHR0cHM6Ly9hcHAuc3dhZ2dlcmh1Yi5jb20vYXBpcy9Sb3RzL04yNgoKCiMgQ2xpZW50IHdyYXBwZXIgZ2VuZXJhdGlvbgoKVGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBhbGxvd3MgZm9yIGdlbmVyYXRpbmcgY2xpZW50IHdyYXBwZXJzIHRvIGFjY2VzcyB0aGUgZGF0YS4KCkV4YW1wbGU6CgpgYGAKZG9ja2VyIHJ1biAtLXJtIC12ICR7UFdEfTovbG9jYWwga29yY2hhc2Evc3dhZ2dlci1jb2RlZ2VuLW9wZW5hcGkgZ2VuZXJhdGUgLWkgL2xvY2FsL29wZW5hcGkueW1sIC1sIGphdmEgLW8gL2xvY2FsL291dC9qYXZhCmBgYAoKIyBTZWN1cml0eSB3YXJuaW5nIQoKRG8gbm90IHR5cGUgaW4geW91ciBiYW5rIGNyZWRlbnRpYWxzIHRvIGFuIHVudHJ1c3RlZCBzb2Z0d2FyZSEKT25jZSB5b3UgaGF2ZSBnaXZlbiBmdWxsIGFjY2VzcyB0byBhIHRoaXJkIHBhcnR5LCB0aGV5IGNhbiBpbmRlZmluaXRlbHkgImtlZXAgdGhlIGJhbmsgQVBJIHNlc3Npb24gYWxpdmUiIGJ5IHJlZnJlc2hpbmcgdGhlaXIgYWNjZXNzIHRva2VuIGFuZCBtYWtlIHRyYW5zYWN0aW9ucyBvbiB5b3VyIGJlaGFsZiAoYW5kIGNoYW5nZSBhbnkgZGV0YWlscyBvbiB0aGUgYmFua2luZyBhcHApLgpOMjYgaGF2ZW4ndCBlbmFibGVkIGEgd2F5IHRvIHJldm9rZSBhY2Nlc3Mgb2YgdGhpcmQgcGFydHkgYXBwcyAoYXMgZmFyIGFzIEkga25vdywgeW91IGNhbid0IHNlY3VyZWx5IHNpZ24gaW4gdG8gdGhlIGJhbmsgd2l0aG91dCBnaXZpbmcgeW91ciBwYXNzd29yZCBpbiBwbGFpbiB0ZXh0IHRvIHRoZSB0aGlyZCBwYXJ0eSkuCgpJZiB5b3UgdGhpbmsgdGhhdCB5b3VyIGNyZWRlbnRpYWxzIG1heSBoYXZlIGJlZW4gY29tcHJvbWlzZWQsIGltbWlkaWF0ZWx5IGNoYW5nZSB5b3VyIGxvZ2luIHBhc3N3b3JkIGluIHRoZSBvZmZpY2lhbCBOMjYgYXBwIGFuZCBub3RpZnkgdGhlIGJhbmsgb2YgYW55IHJlbGV2YW50IGluZm9ybWF0aW9uLgoKIyBPdGhlciBrbm93biBzb2Z0d2FyZSBmb3IgTjI2CgoqIGh0dHBzOi8vZ2l0aHViLmNvbS9ndWl0bXovbjI2IEdvIEFQSQoqIGh0dHBzOi8vZ2l0aHViLmNvbS9QaWVycmlja1AvbjI2IEpTT04gQVBJCgo= readmeEtag: '"87a9f22df22926c417642603db1ab7ee253d8872"' readmeLastModified: Tue, 01 May 2018 11:05:25 GMT repositoryId: 131702971 description: Unofficial N26 Bank API documentation created: '2018-05-01T10:55:00Z' updated: '2024-04-25T03:57:04Z' language: null archived: false stars: 48 watchers: 6 forks: 3 owner: Rots logo: https://avatars.githubusercontent.com/u/362397?v=4 license: MIT repoEtag: '"488349e75a2280acd1126634de0ac5cc012aa20c89aec36fe9a6c8c3ebe3c9ad"' repoLastModified: Thu, 25 Apr 2024 03:57:04 GMT foundInMaster: true category: Server Implementations id: 1ea5bf53ca4a549ad53a8eda42392826 - source: openapi3 tags repository: https://github.com/cocreators-ee/apity v3: true id: 000c3a69f9b14fbece85d34193b80799 repositoryMetadata: base64Readme: >- IyDwn5OY77iPIGFwaXR5IC0gVHlwZWQgQVBJIGNsaWVudCBmb3IgU3ZlbHRlIGFuZCBTdmVsdGVLaXQKCkEgdHlwZWQgZmV0Y2ggY2xpZW50IGZvciBbb3BlbmFwaS10eXBlc2NyaXB0XShodHRwczovL2dpdGh1Yi5jb20vZHJ3cG93L29wZW5hcGktdHlwZXNjcmlwdCkgY29tcGF0aWJsZSB3aXRoIFN2ZWx0ZUtpdCdzIGN1c3RvbSBgZmV0Y2hgCgojIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKbnBtIGluc3RhbGwgQGNvY3JlYXRvcnMtZWUvYXBpdHkKYGBgCgpPcgoKYGBgYmFzaApwbnBtIGFkZCBAY29jcmVhdG9ycy1lZS9hcGl0eQpgYGAKCiMjIEZlYXR1cmVzCgotIFt4XSBTdXBwb3J0IG9mIEpTT04gcmVxdWVzdCBhbmQgcmVzcG9uc2VzIGZyb20gW09wZW5BUEkgMy4wXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbikKLSBbeF0gU3VwcG9ydCBvZiBgeyNhd2FpdH1gIHN5bnRheCBpbiBTdmVsdGUgdGVtcGxhdGVzCi0gW3hdIENvbXBhdGliaWxpdHkgd2l0aCBTdmVsdGVLaXQncyBgZmV0Y2hgIGluIGBsb2FkYCBmdW5jdGlvbnMKLSBbeF0gUmVxdWVzdCByZWxvYWRpbmcKLSBbeF0gQ29uZmlndXJhdGlvbiBvZiBkZWZhdWx0IFtmZXRjaCBvcHRpb25zXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvZmV0Y2gjcGFyYW1ldGVycykKCk9uIHRoZSByb2FkbWFwOgoKLSBbIF0gQ2FjaGluZyBvZiBzdWJzZXF1ZW50IHJlcXVlc3RzIHdpdGggdGhlIHNhbWUgVVJMIGFuZCBwYXJhbWV0ZXJzCgojIyMgTGl2ZSBkZW1vCgpBcGl0eSBoYXMgYSBbbGl2ZSBkZW1vXShodHRwczovL2FwaXR5LWRlbW8udmVyY2VsLmFwcC8pIHdpdGggY29kZSBzYW1wbGVzLgpBbHNvIHlvdSBjYW4gcmVhZCBhbiBpbnRyb2R1Y3Rpb25hcnkgW2Jsb2cgcG9zdF0oaHR0cHM6Ly9kZXYudG8vZmJqb3JuL2EtdHlwZWQtaHR0cC1jbGllbnQtZm9yLXN2ZWx0ZWtpdC04OGIpLgoKIyMgVXNhZ2UKCiMjIyBHZW5lcmF0ZSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZnJvbSBzY2hlbWEKCkJlZm9yZSB3b3JraW5nIHdpdGggdGhlIGxpYnJhcnksIHlvdSBuZWVkIHRvIGdlbmVyYXRlIGFuIEFQSSBzcGVjIHVzaW5nIFtvcGVuYXBpLXR5cGVzY3JpcHRdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdHlwZXNjcmlwdCk6CgpgYGBiYXNoCm5weCBvcGVuYXBpLXR5cGVzY3JpcHQgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIC0tb3V0cHV0IHNyYy9wZXRzdG9yZS50cwoK8J+agCBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24g4oaSIGZpbGU6Li9zcmMvcGV0c3RvcmUudHMgWzg3MG1zXQpgYGAKCiMjIyBVc2luZyBBcGl0eQoKQ29uZmlndXJlIEFwaXR5IGluc3RhbmNlIGFuZCBnZW5lcmF0ZSBmdW5jdGlvbnMgZm9yIG1ha2luZyBBUEkgY2FsbHM6CgpgYGB0cwovLyBGaWxlOiBhcGkudHMKCmltcG9ydCB7IEFwaXR5IH0gZnJvbSAnQGNvY3JlYXRvcnMtZWUvYXBpdHknCmltcG9ydCB0eXBlIHsgcGF0aHMgfSBmcm9tICdzcmMvcGV0c3RvcmUnCgpjb25zdCBhcGl0eSA9IEFwaXR5LmZvcjxwYXRocz4oKQoKLy8gZ2xvYmFsIGNvbmZpZ3VyYXRpb24KYXBpdHkuY29uZmlndXJlKHsKICAvLyBCYXNlIFVSTCB0byB5b3VyIEFQSQogIGJhc2VVcmw6ICdodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjInLAogIC8vIFJlcXVlc3RJbml0IG9wdGlvbnMsIGUuZy4gZGVmYXVsdCBoZWFkZXJzCiAgaW5pdDogewogICAgLy8gbW9kZTogJ2NvcnMnCiAgICAvLyBoZWFkZXJzOiB7fQogIH0sCn0pCgovLyBjcmVhdGUgZmV0Y2ggb3BlcmF0aW9ucwpleHBvcnQgY29uc3QgZmluZFBldHNCeVN0YXR1cyA9IGFwaXR5CiAgLnBhdGgoJy9wZXQvZmluZEJ5U3RhdHVzJykKICAubWV0aG9kKCdnZXQnKQogIC5jcmVhdGUoKQpleHBvcnQgY29uc3QgYWRkUGV0ID0gYXBpdHkucGF0aCgnL3BldCcpLm1ldGhvZCgncG9zdCcpLmNyZWF0ZSgpCmBgYAoKRWFjaCBBUEkgY2FsbCBpcyByZXByZXNlbnRlZCBhcyBhIHJlcXVlc3Qgb2JqZWN0IHRoYXQgaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKCmBgYHR5cGVzY3JpcHQKdHlwZSBBcGlSZXF1ZXN0PFIgPSBhbnk+ID0gewogIC8vIFN2ZWx0ZSBzdG9yZSBjb250YWluaW5nIHRoZSByZXNwb25zZSBvZiB0aGUgQVBJIGNhbGwuCiAgcmVhZG9ubHkgcmVzcDogV3JpdGFibGU8QXBpUmVzcG9uc2U8Uj4gfCB1bmRlZmluZWQ+CgogIC8vIFN2ZWx0ZSBzdG9yZSB0aGF0IGNvbnRhaW5zIGEgcHJvbWlzZSBmb3IgYW4gQVBJIGNhbGwuCiAgLy8gSWYgeW91IHJlbG9hZCB0aGUgcmVxdWVzdCB1c2luZyByZWxvYWQoKSBmdW5jdGlvbiwgdGhpcyBzdG9yZSB3aWxsIGJlIHVwZGF0ZWQuCiAgcmVhZG9ubHkgcmVhZHk6IFdyaXRhYmxlPHVuZGVmaW5lZCB8IFByb21pc2U8QXBpUmVzcG9uc2U8Uj4+PgoKICAvLyBGdW5jdGlvbiB0aGF0IHJlbG9hZHMgdGhlIHJlcXVlc3Qgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLgogIHJlbG9hZDogKCkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxSPj4KCiAgLy8gUHJvbWlzZSBmb3IgdGhlIEFQSSBjYWxsLgogIC8vIFVzZWZ1bCBmb3Igc2VydmVyIGNvZGUgYW5kIHBsYWNlcyB3aGVyZSB5b3UgY2FuJ3QgdXNlIHRoZSBgcmVhZHlgIHN0b3JlLgogIHJlc3VsdDogUHJvbWlzZTxBcGlSZXNwb25zZTxSPj4KfQpgYGAKCkVhY2ggcmVzcG9uc2UgaXMgYSBTdmVsdGUgc3RvcmUgcmV0dXJuaW5nIGVpdGhlciBhbiBgdW5kZWZpbmVkYCwgb3IgdGhlIGZvbGxvd2luZyBvYmplY3Q6CgpgYGB0cwp0eXBlIFN1Y2Nlc3NmdWxSZXNwPFI+ID0gewogIG9rOiB0cnVlCiAgLy8gVHlwZWQgb2JqZWN0IGZvciBhIHN1Y2Nlc3NmdWwgcmVxdWVzdC4gQnVpbHQgZnJvbSB0aGUgT3BlbkFQSSBzcGVjCiAgZGF0YTogUgogIC8vIEhUVFAgc3RhdHVzIGNvZGUKICBzdGF0dXM6IG51bWJlcgp9Cgp0eXBlIEZhaWxlZFJlc3AgPSB7CiAgb2s6IGZhbHNlCiAgZGF0YTogYW55CiAgLy8gSFRUUCBzdGF0dXMgY29kZQogIHN0YXR1czogbnVtYmVyCn0KCnR5cGUgQXBpUmVzcG9uc2U8Uj4gPSBTdWNjZXNzZnVsUmVzcDxSPiB8IEZhaWxlZFJlc3AKYGBgCgojIyMgRXJyb3IgaGFuZGxpbmcKClRoZXJlIGFyZSBjZXJ0YWluIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggYW4gQVBJIHJlcXVlc3QgY291bGQgdGhyb3cgYW4gZXhjZXB0aW9uIHdpdGhvdXQKYWN0dWFsbHkgcmVhY2hpbmcgdGhlIGRlc2lyZWQgc2VydmVyLCBmb3IgZXhhbXBsZSwgdW5wcmVkaWN0YWJsZSBuZXR3b3JrIGlzc3Vlcy4gRm9yIHN1Y2gKY2FzZXMsIHRoZSBhcGkgcmVzcG9uc2Ugd2lsbCBjb250YWluIGEgc3RhdHVzIHNldCB0byBhIG5lZ2F0aXZlIG51bWJlciwgaW5kaWNhdGluZyB0aGF0CmFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLgoKYGBganMKewogIG9rOiBmYWxzZSwKICBzdGF0dXM6IC0xLAogIGRhdGE6IHVuZGVmaW5lZCwKfQpgYGAKCiMjIyBVc2luZyBBcGl0eSB3aXRoIGF3YWl0IHN5bnRheCBpbiB0ZW1wbGF0ZXMKCkFzc3VtaW5nIHlvdSd2ZSBjcmVhdGVkIGFuIGBzcmMvYXBpLnRzYCBmcm9tIFt1c2luZyBBcGl0eV0oI3VzaW5nLWFwaXR5KSBzZWN0aW9uOgoKYGBgc3ZlbHRlCjxzY3JpcHQgbGFuZz0idHMiPgogIGltcG9ydCB7IGZpbmRQZXRCeVN0YXR1cyB9IGZyb20gJ3NyYy9hcGkudHMnCiAgY29uc3QgcmVxdWVzdCA9IGZpbmRQZXRCeVN0YXR1cyh7IHN0YXR1czogJ3NvbGQnIH0pCiAgY29uc3QgcGV0c1JlYWR5ID0gcmVxdWVzdC5yZWFkeQo8L3NjcmlwdD4KCjxkaXY+CiAgeyNhd2FpdCAkcGV0c1JlYWR5fQogICAgPHA+TG9hZGluZy4uPC9wPgogIHs6dGhlbiByZXNwfQogICAgeyNpZiByZXNwLm9rfQogICAgICB7I2VhY2ggcmVzcC5kYXRhIGFzIHBldH0KICAgICAgICA8cD57cGV0Lm5hbWV9PC9wPgogICAgICB7L2VhY2h9CiAgICB7OmVsc2V9CiAgICAgIDxwPkVycm9yIHdoaWxlIGxvYWRpbmcgcGV0czwvcD4KICAgIHsvaWZ9CiAgey9hd2FpdH0KCiAgPGJ1dHRvbiBvbjpjbGljaz17KCkgPT4ge3JlcXVlc3QucmVsb2FkKCl9fT4KICAgIFJlbG9hZCBwZXRzCiAgPC9idXR0b24+CjwvZGl2PgpgYGAKCiMjIyBTdWJzY3JpYmluZyB0byByZXNwb25zZSBzdG9yZQoKQXNzdW1pbmcgeW91J3ZlIGNyZWF0ZWQgYW4gYHNyYy9hcGkudHNgIGZyb20gW3VzaW5nIEFwaXR5XSgjdXNpbmctYXBpdHkpIHNlY3Rpb246CgpgYGBzdmVsdGUKPHNjcmlwdCBsYW5nPSJ0cyI+CiAgaW1wb3J0IHsgZmluZFBldEJ5U3RhdHVzIH0gZnJvbSAnc3JjL2FwaS50cycKICBjb25zdCByZXF1ZXN0ID0gZmluZFBldEJ5U3RhdHVzKHsgc3RhdHVzOiAnc29sZCcgfSkKICBsZXQgbmFtZXMgPSBbXQoKICByZXF1ZXN0LnJlc3Auc3Vic2NyaWJlKHJlc3AgPT4gewogICAgaWYgKHJlc3Aub2spIHsKICAgICAgbmFtZXMgPSByZXNwLmRhdGEubWFwKHBldCA9PiBwZXQubmFtZSkKICAgIH0KICB9KQo8L3NjcmlwdD4KCjxkaXY+CiAgeyNlYWNoIG5hbWVzIGFzIG5hbWV9CiAgICA8cD57bmFtZX08L3A+CiAgey9lYWNofQo8L2Rpdj4KYGBgCgojIyMgVXNpbmcgaW4gbG9hZCBmdW5jdGlvbnMKCkZldGNoIG9wZXJhdGlvbnMgc3VwcG9ydCBTdmVsdGVLaXQncyBbbG9hZF0oaHR0cHM6Ly9raXQuc3ZlbHRlLmRldi9kb2NzL2xvYWQjbWFraW5nLWZldGNoLXJlcXVlc3RzKSBmdW5jdGlvbiBmcm9tIGArcGFnZS50c2AgYW5kIGArcGFnZS5zZXJ2ZXIudHNgLgoKQXNzdW1pbmcgeW91J3ZlIGNyZWF0ZWQgYW4gYHNyYy9hcGkudHNgIGZyb20gW3VzaW5nIEFwaXR5XSgjdXNpbmctYXBpdHkpIHNlY3Rpb246CgpgYGB0cwppbXBvcnQgeyBmaW5kUGV0QnlTdGF0dXMgfSBmcm9tICdzcmMvYXBpLnRzJwoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWQoeyBmZXRjaCB9KSB7CiAgY29uc3QgcmVxdWVzdCA9IGZpbmRQZXRCeVN0YXR1cyh7IHN0YXR1czogJ3NvbGQnIH0pCiAgY29uc3QgcmVzcCA9IGF3YWl0IHJlcXVlc3QucmVzdWx0CiAgaWYgKHJlc3Aub2spIHsKICAgIHJldHVybiB7IHBldHM6IHJlc3AuZGF0YSwgZXJyb3I6IHVuZGVmaW5lZCB9CiAgfSBlbHNlIHsKICAgIHJldHVybiB7IHBldHM6IFtdLCBlcnJvcjogJ0ZhaWxlZCB0byBsb2FkIHBldHMnIH0KICB9Cn0KYGBgCgojIEZpbmFuY2lhbCBzdXBwb3J0CgpUaGlzIHByb2plY3QgaGFzIGJlZW4gbWFkZSBwb3NzaWJsZSB0aGFua3MgdG8gW0NvY3JlYXRvcnNdKGh0dHBzOi8vY29jcmVhdG9ycy5lZSkuIFlvdSBjYW4gaGVscCB1cyBjb250aW51ZSBvdXIgb3BlbiBzb3VyY2Ugd29yayBieSBzdXBwb3J0aW5nIHVzIG9uIFtCdXkgbWUgYSBjb2ZmZWVdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vY29jcmVhdG9ycykuCgpbIVsiQnV5IE1lIEEgQ29mZmVlIl0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hc3NldHMvaW1nL2N1c3RvbV9pbWFnZXMvb3JhbmdlX2ltZy5wbmcpXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2NvY3JlYXRvcnMpCg== readmeEtag: '"54532d3f9c27bf2ccea5fa6a5ecf300e4257def0"' readmeLastModified: Tue, 03 Oct 2023 11:45:20 GMT repositoryId: 591235475 description: A typed fetch client for openapi-typescript for use with SvelteKit created: '2023-01-20T08:55:39Z' updated: '2024-08-31T14:08:34Z' language: TypeScript archived: false stars: 48 watchers: 1 forks: 3 owner: cocreators-ee logo: https://avatars.githubusercontent.com/u/25827530?v=4 license: MIT repoEtag: '"3f6dddf6634884497cb8647e83197956e37de334a252dfab72ffb37144514384"' repoLastModified: Sat, 31 Aug 2024 14:08:34 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/jdkandersson/openalchemy v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQWxjaGVteQoKIVtDb2RlIFF1YWxpdHkgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vamRrYW5kZXJzc29uL09wZW5BbGNoZW15L3dvcmtmbG93cy9Db2RlJTIwcXVhbGl0eSUyMGNoZWNrcy9iYWRnZS5zdmcpCiFbQXp1cmUgRGV2T3BzIGNvdmVyYWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2F6dXJlLWRldm9wcy9jb3ZlcmFnZS9hbmRlcnNzb25wdWJsaWMvYW5kZXJzc29ucHVibGljLzEpClshW0RvY3VtZW50YXRpb24gU3RhdHVzXShodHRwczovL3JlYWR0aGVkb2NzLm9yZy9wcm9qZWN0cy9vcGVuYXBpLXNxbGFsY2hlbXkvYmFkZ2UvP3ZlcnNpb249bGF0ZXN0KV0oaHR0cHM6Ly9vcGVuYXBpLXNxbGFsY2hlbXkucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Lz9iYWRnZT1sYXRlc3QpCiFbQ29kZSBDbGltYXRlIG1haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY2xpbWF0ZS9tYWludGFpbmFiaWxpdHkvamRrYW5kZXJzc29uL09wZW5BbGNoZW15KQohW0NvZGUgQ2xpbWF0ZSB0ZWNobmljYWwgZGVidF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY2xpbWF0ZS90ZWNoLWRlYnQvamRrYW5kZXJzc29uL09wZW5BbGNoZW15KQohW0xHVE0gR3JhZGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbGd0bS9ncmFkZS9weXRob24vZ2l0aHViL2pka2FuZGVyc3Nvbi9PcGVuQWxjaGVteSkKClRyYW5zbGF0ZXMgYW4gT3BlbkFQSSBzY2hlbWEgdG8gU1FMQWxjaGVteSBtb2RlbHMuCgpTdXBwb3J0cyBPcGVuQVBJIDMuMCBhbmQgMy4xLgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCnB5dGhvbiAtbSBwaXAgaW5zdGFsbCBPcGVuQWxjaGVteQojIFRvIGJlIGFibGUgdG8gbG9hZCBZQU1MIGZpbGUKcHl0aG9uIC1tIHBpcCBpbnN0YWxsIE9wZW5BbGNoZW15W3lhbWxdCmBgYAoKIyMgRXhhbXBsZQoKRm9yIGV4YW1wbGUsIGdpdmVuIHRoZSBmb2xsb3dpbmcgT3BlbkFQSSBzcGVjaWZpY2F0aW9uOgoKYGBgeWFtbAojIC4vZXhhbXBsZXMvc2ltcGxlL2V4YW1wbGUtc3BlYy55bWwKb3BlbmFwaTogIjMuMC4wIgoKaW5mbzoKICB0aXRsZTogVGVzdCBTY2hlbWEKICBkZXNjcmlwdGlvbjogQVBJIHRvIGlsbHVzdHJhdGUgT3BlbkFsY2hlbXkgTVZQLgogIHZlcnNpb246ICIwLjEiCgpwYXRoczoKICAvZW1wbG95ZWU6CiAgICBnZXQ6CiAgICAgIHN1bW1hcnk6IFVzZWQgdG8gcmV0cmlldmUgYWxsIGVtcGxveWVlcy4KICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBSZXR1cm4gYWxsIGVtcGxveWVlcyBmcm9tIHRoZSBkYXRhYmFzZS4KICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9FbXBsb3llZSIKCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIEVtcGxveWVlOgogICAgICBkZXNjcmlwdGlvbjogUGVyc29uIHRoYXQgd29ya3MgZm9yIGEgY29tcGFueS4KICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHgtdGFibGVuYW1lOiBlbXBsb3llZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZGVzY3JpcHRpb246IFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZW1wbG95ZWUuCiAgICAgICAgICBleGFtcGxlOiAwCiAgICAgICAgICB4LXByaW1hcnkta2V5OiB0cnVlCiAgICAgICAgICB4LWF1dG9pbmNyZW1lbnQ6IHRydWUKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG5hbWUgb2YgdGhlIGVtcGxveWVlLgogICAgICAgICAgZXhhbXBsZTogRGF2aWQgQW5kZXJzc29uCiAgICAgICAgICB4LWluZGV4OiB0cnVlCiAgICAgICAgZGl2aXNpb246CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgcGFydCBvZiB0aGUgY29tcGFueSB0aGUgZW1wbG95ZWUgd29ya3MgaW4uCiAgICAgICAgICBleGFtcGxlOiBFbmdpbmVlcmluZwogICAgICAgICAgeC1pbmRleDogdHJ1ZQogICAgICAgIHNhbGFyeToKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBhbW91bnQgb2YgbW9uZXkgdGhlIGVtcGxveWVlIGlzIHBhaWQuCiAgICAgICAgICBleGFtcGxlOiAxMDAwMDAwLjAwCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaWQKICAgICAgICAtIG5hbWUKICAgICAgICAtIGRpdmlzaW9uCmBgYAoKVGhlIFNRTEFMY2hlbXkgbW9kZWxzIGZpbGUgdGhlbiBiZWNvbWVzOgoKYGBgcHl0aG9uCiMgbW9kZWxzLnB5CmZyb20gb3Blbl9hbGNoZW15IGltcG9ydCBpbml0X3lhbWwKCmluaXRfeWFtbCgiLi9leGFtcGxlcy9zaW1wbGUvZXhhbXBsZS1zcGVjLnltbCIpCmBgYAoKVGhlIF9CYXNlXyBhbmQgX0VtcGxveWVlXyBvYmplY3RzIGNhbiBiZSBhY2Nlc3NlZDoKCmBgYHB5dGhvbgpmcm9tIG9wZW5fYWxjaGVteS5tb2RlbHMgaW1wb3J0IEJhc2UKZnJvbSBvcGVuX2FsY2hlbXkubW9kZWxzIGltcG9ydCBFbXBsb3llZQpgYGAKCldpdGggdGhlIF9tb2RlbHNfZmlsZW5hbWVfIHBhcmFtZXRlciBhIGZpbGUgaXMgYXV0byBnZW5lcmF0ZWQgd2l0aCB0eXBlIGhpbnRzCmZvciB0aGUgU1FMQWxjaGVteSBtb2RlbHMgYXQgdGhlIHNwZWNpZmllZCBsb2NhdGlvbiwgZm9yIGV4YW1wbGU6Clt0eXBlIGhpbnRlZCBtb2RlbHMgZXhhbXBsZV0oZXhhbXBsZXMvc2ltcGxlL21vZGVsc19hdXRvLnB5KS4gVGhpcyBhZGRzIHN1cHBvcnQKZm9yIElERSBhdXRvIGNvbXBsZXRlLCBmb3IgZXhhbXBsZSBmb3IgdGhlIG1vZGVsIGluaXRpYWxpemF0aW9uOgoKIVthdXRvY29tcGxldGUgaW5pdF0oZXhhbXBsZXMvc2ltcGxlL21vZGVsc19hdXRvY29tcGxldGVfaW5pdC5wbmcpCgphbmQgZm9yIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgYXZhaWxhYmxlIG9uIGFuIGluc3RhbmNlOgoKIVthdXRvY29tcGxldGUgaW5zdGFuY2VdKGV4YW1wbGVzL3NpbXBsZS9tb2RlbHNfYXV0b2NvbXBsZXRlX2luc3RhbmNlLnBuZykKCkFuIGV4dGVuc2l2ZSBzZXQgb2YgZXhhbXBsZXMgd2l0aCBhIHJhbmdlIG9mIGZlYXR1cmVzIGlzIGhlcmU6CgpbZXhhbXBsZXMgZm9yIG1haW4gZmVhdHVyZXNdKGV4YW1wbGVzKQoKQW4gZXhhbXBsZSBBUEkgaGFzIGJlZW4gZGVmaW5lZCB1c2luZyBjb25uZXhpb24gYW5kIEZsYXNrIGhlcmU6CgpbZXhhbXBsZSBjb25uZXhpb24gYXBwXShleGFtcGxlcy9hcHApCgojIyBEb2N1bWVudGF0aW9uCgpbUmVhZCB0aGUgRG9jc10oaHR0cHM6Ly9vcGVuYXBpLXNxbGFsY2hlbXkucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0LykKCiMjIEJ1eSBtZSBhIGNvZmZlZQoKWyFbQnV5IE1lIEEgQ29mZmVlXShodHRwczovL2Nkbi5idXltZWFjb2ZmZWUuY29tL2J1dHRvbnMvdjIvZGVmYXVsdC15ZWxsb3cucG5nKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9qZGthbmRlcnNzb24pCgojIyBGZWF0dXJlcwoKLSBpbml0aWFsaXppbmcgZnJvbSBKU09OLAotIGluaXRpYWxpemluZyBmcm9tIFlBTUwsCi0gYnVpbGQgYSBwYWNrYWdlIHdpdGggdGhlIG1vZGVscyBmb3IgZGlzdHJpYnV0aW9uLCBwYWNrYWdlZCBhcyBzZGlzdCBvciB3aGVlbCwKLSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgbW9kZWxzIGZpbGUsCi0gYGludGVnZXJgICgzMiBhbmQgNjQgYml0KSwKLSBgbnVtYmVyYCAoZmxvYXQgb25seSksCi0gYGJvb2xlYW5gLAotIGBzdHJpbmdgLAotIGBwYXNzd29yZGAsCi0gYGJ5dGVgLAotIGBiaW5hcnlgLAotIGBkYXRlYCwKLSBgZGF0ZS10aW1lYCwKLSBnZW5lcmljIEpTT04gZGF0YSwKLSBgJHJlZmAgcmVmZXJlbmNlcyBmb3IgY29sdW1ucyBhbmQgbW9kZWxzLAotIHJlbW90ZSBgJHJlZmAgdG8gb3RoZXIgZmlsZXMgb24gdGhlIHNhbWUgZmlsZSBzeXN0ZW0KICAoX25vdCBzdXBwb3J0ZWQgb24gV2luZG93c18pLAotIHJlbW90ZSBgJHJlZmAgdG8gb3RoZXIgZmlsZXMgYXQgYSBVUkwsCi0gcHJpbWFyeSBrZXlzLAotIGF1dG8gaW5jcmVtZW50aW5nLAotIGluZGV4ZXMsCi0gY29tcG9zaXRlIGluZGV4ZXMsCi0gdW5pcXVlIGNvbnN0cmFpbnRzLAotIGNvbXBvc2l0ZSB1bmlxdWUgY29uc3RyYWludHMsCi0gY29sdW1uIG51bGxhYmlsaXR5LAotIGZvcmVpZ24ga2V5cywKLSBkZWZhdWx0IHZhbHVlcyBmb3IgY29sdW1ucyAoYm90aCBhcHBsaWNhdGlvbiBhbmQgZGF0YWJhc2Ugc2lkZSksCi0gbWFueSB0byBvbmUgcmVsYXRpb25zaGlwcywKLSBvbmUgdG8gb25lIHJlbGF0aW9uc2hpcHMsCi0gb25lIHRvIG1hbnkgcmVsYXRpb25zaGlwcywKLSBtYW55IHRvIG1hbnkgcmVsYXRpb25zaGlwcywKLSBtYW55IHRvIG1hbnkgcmVsYXRpb25zaGlwcyB3aXRoIGN1c3RvbSBhc3NvY2lhdGlvbiB0YWJsZXMsCi0gY3VzdG9tIGZvcmVpZ24ga2V5cyBmb3IgcmVsYXRpb25zaGlwcywKLSBiYWNrIHJlZmVyZW5jZXMgZm9yIHJlbGF0aW9uc2hpcHMsCi0gYGFsbE9mYCBpbmhlcml0YW5jZSBmb3IgY29sdW1ucyBhbmQgbW9kZWxzLAotIGpvaW5lZCBhbmQgc2luZ2xlIHRhYmxlIGluaGVyaXRhbmNlLAotIGBmcm9tX3N0cmAgbW9kZWwgbWV0aG9kcyB0byBjb25zdHJ1Y3QgZnJvbSBKU09OIHN0cmluZywKLSBgZnJvbV9kaWN0YCBtb2RlbCBtZXRob2RzIHRvIGNvbnN0cnVjdCBmcm9tIGRpY3Rpb25hcmllcywKLSBgdG9fc3RyYCBtb2RlbCBtZXRob2RzIHRvIGNvbnZlcnQgaW5zdGFuY2VzIHRvIEpTT04gc3RyaW5nLAotIGBfX3N0cl9fYCBtb2RlbCBtZXRob2RzIHRvIHN1cHBvcnQgdGhlIHB5dGhvbiBgc3RyYCBmdW5jdGlvbiwKLSBgX19yZXByX19gIG1vZGVsIG1ldGhvZHMgdG8gc3VwcG9ydCB0aGUgcHl0aG9uIGByZXByYCBmdW5jdGlvbiwKLSBgdG9fZGljdGAgbW9kZWwgbWV0aG9kcyB0byBjb252ZXJ0IGluc3RhbmNlcyB0byBkaWN0aW9uYXJpZXMsCi0gYHJlYWRPbmx5YCBhbmQgYHdyaXRlT25seWAgZm9yIGluZmx1ZW5jZSB0aGUgY29udmVyc2lvbiB0byBhbmQgZnJvbQogIGRpY3Rpb25hcmllcywKLSBleHBvc2luZyBjcmVhdGVkIG1vZGVscyB1bmRlciBgb3Blbl9hbGNoZW15Lm1vZGVsc2AgcmVtb3ZpbmcgdGhlIG5lZWQgZm9yCiAgYG1vZGVscy5weWAgZmlsZXMsCi0gYWJpbGl0eSB0byBtaXggaW4gYXJiaXRyYXJ5IGNsYXNzZXMgaW50byBhIG1vZGVsLAotIGNhbiB1c2UgdGhlIHNob3J0IGB4LWAgcHJlZml4IG9yIGEgbmFtZXNwYWNlZCBgeC1vcGVuLWFsY2hlbXktYCBwcmVmaXggZm9yCiAgZXh0ZW5zaW9uIHByb3BlcnRpZXMgYW5kCi0gZ3JvdXBpbmcgbW9kZWxzIGludG8gc2NoZW1hcy4KCiMjIENvbnRyaWJ1dGluZwoKRm9yayBhbmQgY2hlY2tvdXQgdGhlIHJlcG9zaXRvcnkuIFRvIGluc3RhbGw6CgpgYGBiYXNoCnBvZXRyeSBpbnN0YWxsCmBgYAoKVG8gcnVuIHRlc3RzOgoKYGBgYmFzaApwb2V0cnkgcnVuIHB5dGVzdApgYGAKCk1ha2UgeW91ciBjaGFuZ2VzIGFuZCByYWlzZSBhIHB1bGwgcmVxdWVzdC4KCiMjIENvbXBpbGluZyBEb2NzCgpgYGBiYXNoCnBvZXRyeSBzaGVsbApjZCBkb2NzCm1ha2UgaHRtbApgYGAKClRoaXMgY3JlYXRlcyB0aGUgYGluZGV4Lmh0bWxgIGZpbGUgaW4gYGRvY3MvYnVpbGQvaHRtbC9pbmRleC5odG1sYC4KCiMjIFJlbGVhc2UgQ29tbWFuZHMKCmBgYGJhc2gKcm0gLXIgZGlzdC8qCnBvZXRyeSBidWlsZApwb2V0cnkgcHVibGlzaApgYGAK readmeEtag: '"df3d513e4cc2ca3a4eced9cd6fda5b84ebf03d02"' readmeLastModified: Wed, 05 Oct 2022 01:05:41 GMT repositoryId: 201582900 description: Define SQLAlchemy models using the OpenAPI specification. created: '2019-08-10T05:09:36Z' updated: '2024-07-06T15:00:34Z' language: Python archived: false stars: 47 watchers: 2 forks: 13 owner: jdkandersson logo: https://avatars.githubusercontent.com/u/51036209?v=4 license: Apache-2.0 repoEtag: '"9dbf1cb6294dffa5695538d2374a5ae99dfe4d8186a10a10272d582fec3c5634"' repoLastModified: Sat, 06 Jul 2024 15:00:34 GMT foundInMaster: true category: Parsers id: 59cf3e6ba29a432331242eb475acac2f - source: openapi3 tags repository: https://github.com/piomin/sample-quarkus-applications v3: true repositoryMetadata: base64Readme: >- IyBHdWlkZSB0byBRdWFya3VzIERlbW8gUHJvamVjdCBbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvZm9sbG93L3Bpb3RyX21pbmtvd3NraS5zdmc/c3R5bGU9c29jaWFsJmxvZ289dHdpdHRlciZsYWJlbD1Gb2xsb3clMjBNZSldKGh0dHBzOi8vdHdpdHRlci5jb20vcGlvdHJfbWlua293c2tpKQoKWyFbQ2lyY2xlQ0ldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL3Bpb21pbi9zYW1wbGUtcXVhcmt1cy1hcHBsaWNhdGlvbnMuc3ZnP3N0eWxlPXN2ZyldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL3Bpb21pbi9zYW1wbGUtcXVhcmt1cy1hcHBsaWNhdGlvbnMpCgpbIVtTb25hckNsb3VkXShodHRwczovL3NvbmFyY2xvdWQuaW8vaW1hZ2VzL3Byb2plY3RfYmFkZ2VzL3NvbmFyY2xvdWQtYmxhY2suc3ZnKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1waW9taW5fc2FtcGxlLXF1YXJrdXMtYXBwbGljYXRpb25zKQpbIVtCdWdzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1waW9taW5fc2FtcGxlLXF1YXJrdXMtYXBwbGljYXRpb25zJm1ldHJpYz1idWdzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1waW9taW5fc2FtcGxlLXF1YXJrdXMtYXBwbGljYXRpb25zKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9cGlvbWluX3NhbXBsZS1xdWFya3VzLWFwcGxpY2F0aW9ucyZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPXBpb21pbl9zYW1wbGUtcXVhcmt1cy1hcHBsaWNhdGlvbnMpClshW0xpbmVzIG9mIENvZGVdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXBpb21pbl9zYW1wbGUtcXVhcmt1cy1hcHBsaWNhdGlvbnMmbWV0cmljPW5jbG9jKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1waW9taW5fc2FtcGxlLXF1YXJrdXMtYXBwbGljYXRpb25zKQoKSW4gdGhpcyBwcm9qZWN0IEknbSBkZW1vbnN0cmF0aW5nIHRoZSBtb3N0IGludGVyZXN0aW5nIGZlYXR1cmVzIG9mIFtRdWFya3VzXShodHRwczovL3F1YXJrdXMuaW8vKSBmb3IgYnVpbGRpbmcgYXBwbGljYXRpb25zIGluIEtvdGxpbi4KCiMjIEdldHRpbmcgU3RhcnRlZCAKSGVyZSdzIGEgZnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBleGFtcGxlczoKMS4gVXNpbmcgUXVhcmt1cyBmb3IgYnVpbGRpbmcgUkVTVCBhcHBsaWNhdGlvbiB0aGF0IGNvbm5lY3RzIHRvIEgyIGRhdGFiYXNlIHVzaW5nIEhpYmVybmF0ZSBPUk0uIFRoZSBleGFtcGxlIGlzIGF2YWlsYWJsZSBpbiB0aGUgbW9kdWxlIFtlbXBsb3llZS1zZXJ2aWNlXShodHRwczovL2dpdGh1Yi5jb20vcGlvbWluL3NhbXBsZS1xdWFya3VzLWFwcGxpY2F0aW9ucy90cmVlL21hc3Rlci9lbXBsb3llZS1zZXJ2aWNlKS4gQSBkZXRhaWxlZCBndWlkZSBtYXkgYmUgZm91bmQgaW4gdGhlIGZvbGxvd2luZyBhcnRpY2xlOiBbR3VpZGUgdG8gUXVhcmt1cyB3aXRoIEtvdGxpbl0oaHR0cHM6Ly9waW90cm1pbmtvd3NraS5jb20vMjAyMC8wOC8wOS9ndWlkZS10by1xdWFya3VzLXdpdGgta290bGluLykKMi4gVXNpbmcgUXVhcmt1cyBLdWJlcm5ldGVzIGV4dGVuc2lvbnMgdG8gZGVwbG95IGFwcGxpY2F0aW9uIGVhc2lseSBvbiBLdWJlcm5ldGVzLiBUaGUgZXhhbXBsZSBpcyBhdmFpbGFibGUgaW4gdGhlIG1vZHVsZSBbZW1wbG95ZWUtc2VydmljZV0oaHR0cHM6Ly9naXRodWIuY29tL3Bpb21pbi9zYW1wbGUtcXVhcmt1cy1hcHBsaWNhdGlvbnMvdHJlZS9tYXN0ZXIvZW1wbG95ZWUtc2VydmljZSkuIEEgZGV0YWlsZWQgZ3VpZGUgbWF5IGJlIGZvdW5kIGluIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZTogW0d1aWRlIHRvIFF1YXJrdXMgb24gS3ViZXJuZXRlc10oaHR0cHM6Ly9waW90cm1pbmtvd3NraS5jb20vMjAyMC8wOC8xMC9ndWlkZS10by1xdWFya3VzLW9uLWt1YmVybmV0ZXMvKQozLiBVc2luZyBRdWFya3VzIE9BdXRoMiBleHRlbnNpb24gdG8gcHJvdmlkZSBSQkFDIGF1dGhvcml6YXRpb24gYmFzZWQgb24gaW50ZWdyYXRpb24gd2l0aCBLZXljbG9hay4gVGhlIGV4YW1wbGUgaXMgYXZhaWxhYmxlIGluIHRoZSBtb2R1bGUgW2VtcGxveWVlLXNlY3VyZS1zZXJ2aWNlXShodHRwczovL2dpdGh1Yi5jb20vcGlvbWluL3NhbXBsZS1xdWFya3VzLWFwcGxpY2F0aW9ucy90cmVlL21hc3Rlci9lbXBsb3llZS1zZWN1cmUtc2VydmljZSkuIEEgZGV0YWlsZWQgZ3VpZGUgbWF5IGJlIGZvdW5kIGluIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZTogW1F1YXJrdXMgT0F1dGgyIGFuZCBzZWN1cml0eSB3aXRoIEtleWNsb2FrXShodHRwczovL3Bpb3RybWlua293c2tpLmNvbS8yMDIwLzA5LzE2L3F1YXJrdXMtb2F1dGgyLWFuZC1zZWN1cml0eS13aXRoLWtleWNsb2FrLykKNC4gVXNpbmcgUXVhcmt1cyB3aXRoIFNtYWxsUnllIEdyYXBoIGV4dGVuc2lvbiB0byBHcmFwaFFMIEFQSSBhbmQgaW50ZWdyYXRpb24gd2l0aCBhIGRhdGFiYXNlIHdpdGggUGFuYWNoZS4gVGhlIGV4YW1wbGUgaXMgYXZhaWxhYmxlIGluIHRoZSBtb2R1bGUgW3NhbXBsZS1hcHAtZ3JhcGhxbF0oaHR0cHM6Ly9naXRodWIuY29tL3Bpb21pbi9zYW1wbGUtcXVhcmt1cy1hcHBsaWNhdGlvbnMvdHJlZS9tYXN0ZXIvc2FtcGxlLWFwcC1ncmFwaHFsKS4gQSBkZXRhaWxlZCBndWlkZSBtYXkgYmUgZm91bmQgaW4gdGhlIGZvbGxvd2luZyBhcnRpY2xlOiBbQW4gQWR2YW5jZWQgR3JhcGhRTCB3aXRoIFF1YXJrdXNdKGh0dHBzOi8vcGlvdHJtaW5rb3dza2kuY29tLzIwMjEvMDQvMTQvYWR2YW5jZWQtZ3JhcGhxbC13aXRoLXF1YXJrdXMvKQo1LiBVc2luZyBRdWFya3VzIEZ1bnF5IEhUVFAgYW5kIEF6dXJlIEV4dGVuc2lvbnMgdG8gYnVpbGQgYW5kIHJ1biBzZXJ2ZXJsZXNzIGFwcHMgb24gQXp1cmUgRnVuY3Rpb25zLiBUaGUgZXhhbXBsZSBpcyBhdmFpbGFibGUgaW4gdGhlIG1vZHVsZSBbYWNjb3VudC1mdW5jdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3Bpb21pbi9zYW1wbGUtcXVhcmt1cy1hcHBsaWNhdGlvbnMvdHJlZS9tYXN0ZXIvYWNjb3VudC1mdW5jdGlvbikuIEEgZGV0YWlsZWQgZ3VpZGUgbWF5IGJlIGZvdW5kIGluIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZTogW1NlcnZlcmxlc3Mgb24gQXp1cmUgRnVuY3Rpb24gd2l0aCBRdWFya3VzXShodHRwczovL3Bpb3RybWlua293c2tpLmNvbS8yMDI0LzAxLzE5L3NlcnZlcmxlc3Mtb24tYXp1cmUtd2l0aC1zcHJpbmctY2xvdWQtZnVuY3Rpb24vKQ== readmeEtag: '"86e7361daebe88c2832f2145cb13edd6ee7ca185"' readmeLastModified: Sat, 10 Aug 2024 02:29:45 GMT repositoryId: 286198180 description: Example application built using Quarkus framework created: '2020-08-09T08:34:19Z' updated: '2024-08-29T03:22:14Z' language: Java archived: false stars: 47 watchers: 3 forks: 26 owner: piomin logo: https://avatars.githubusercontent.com/u/2892502?v=4 repoEtag: '"a1225167102b524c90596b0a2b045cb14d862ade3e656fdd4721796a7be3a48c"' repoLastModified: Thu, 29 Aug 2024 03:22:14 GMT foundInMaster: true category: SDK id: dd8f9923c6579fbc72bcd8fc5a69a30c - source: - openapi3 tags - openapi31 tags repository: https://github.com/sv-tools/openapi v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHYzLjEgU3BlY2lmaWNhdGlvbgoKWyFbQ29kZSBBbmFseXNpc10oaHR0cHM6Ly9naXRodWIuY29tL3N2LXRvb2xzL29wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvY2hlY2tzLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3N2LXRvb2xzL29wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvY2hlY2tzLnlhbWwpClshW0dvIFJlZmVyZW5jZV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2JhZGdlL2dpdGh1Yi5jb20vc3YtdG9vbHMvb3BlbmFwaS5zdmcpXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9zdi10b29scy9vcGVuYXBpKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvc3YtdG9vbHMvb3BlbmFwaS9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmc/dG9rZW49MFhWT1REUjFDVyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9zdi10b29scy9vcGVuYXBpKQpbIVtHaXRIdWIgdGFnIChsYXRlc3QgU2VtVmVyKV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi90YWcvc3YtdG9vbHMvb3BlbmFwaT9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9naXRodWIuY29tL3N2LXRvb2xzL29wZW5hcGkvcmVsZWFzZXMpCgpUaGUgaW1wbGVtZW50YXRpb24gb2YgT3BlbkFQSSB2My4xIFNwZWNpZmljYXRpb24gZm9yIEdvIHVzaW5nIGdlbmVyaWNzLgoKIyMgU3VwcG9ydGVkIEdvIHZlcnNpb25zOgoKKiB2MS4yMgoqIHYxLjIxCiogdjEuMjAKCiMjIFZlcnNpb25zOgoKKiB2MCAtICoqRGVwcmVjYXRlZCoqLiBUaGUgaW5pdGlhbCB2ZXJzaW9uIHdpdGggdGhlIGZ1bGwgaW1wbGVtZW50YXRpb24gb2YgdGhlIHYzLjEgU3BlY2lmaWNhdGlvbiB1c2luZyBnZW5lcmljcy4gU2VlIGB2MGAgYnJhbmNoLgoqIHYxIC0gVGhlIGN1cnJlbnQgdmVyc2lvbiB3aXRoIHRoZSBpbi1wbGFjZSB2YWxpZGF0aW9uIG9mIHRoZSBzcGVjaWZpY2F0aW9uLiAKICBUaGUgbWluaW1hbCB2ZXJzaW9uIG9mIEdvIGlzIGB2MS4yMGAgYW5kIHRoZSBgZ2l0aHViLmNvbS9zYW50aG9zaC10ZWt1cmkvanNvbnNjaGVtYS92NWAgcGFja2FnZSBpcyBub3QgdXNlZCBhbnltb3JlLiAKICBTZWUgYG1haW5gIGJyYW5jaC4KCiMjIEZlYXR1cmVzCgoqIFRoZSBgc3BlY2AgZm9sZGVyIGNvbnRhaW5zIGZ1bGwgaW1wbGVtZW50YXRpb24gb2YgdGhlIHYzLjEgU3BlY2lmaWNhdGlvbiB1c2luZyBnZW5lcmljcyBhbmQgYGVycm9ycy5Kb2luYCBmdW5jdGlvbiwgc28gdGhlIG1pbmltdW0gc3VwcG9ydGVkIHZlcnNpb24gb2YgR28gaXMgYHYxLjIwYC4KKiBUaGUgYHNwZWMuVmFsaWRhdGVTcGVjYCBmdW5jdGlvbiB2YWxpZGF0ZXMgdGhlIHNwZWNpZmljYXRpb24gd2l0aG91dCB0cmFuc2Zvcm1pbmcgaXQgdG8gYG1hcFtzdHJpbmddYW55YC4KKiBUaGUgb2ZmaWNpYWwgdjMuMCBhbmQgdjMuMSBbZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL3RyZWUvbWFpbi9leGFtcGxlcykgYXJlIHRlc3RlZC4KICBJbiBtb3N0IGNhc2VzIHYzLjAgc3BlY2lmaWNhdGlvbiBjYW4gYmUgY29udmVydGVkIHRvIHYzLjEgYnkgY2hhbmdpbmcgdGhlIHZlcnNpb24ncyBwYXJhbWV0ZXIgb25seS4KICBgYGBkaWZmCiAgQEAgLTEsNCArMSw0IEBACiAgLW9wZW5hcGk6ICIzLjAuMCIKICArb3BlbmFwaTogIjMuMS4wIgogIGBgYAoKKipOT1RFKio6IFRoZSBkZXNjcmlwdGlvbnMgb2YgbW9zdCBzdHJ1Y3R1cmVzIGFuZCB0aGVpciBmaWVsZHMgYXJlIHRha2VuIGZyb20gdGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb25zLgoKIyMgTGlua3MKCiogT3BlbkFQSSBTcGVjaWZpY2F0aW9uOiA8aHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24+IGFuZCA8aHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wPgoqIEpTT04gU2NoZW1hOiA8aHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvdW5kZXJzdGFuZGluZy1qc29uLXNjaGVtYS9pbmRleC5odG1sPiBhbmQgPGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvanNvbi1zY2hlbWEtY29yZS5odG1sPgoqIFRoZSBsaXN0IG9mIG1vc3QgcG9wdWxhciBhbHRlcm5hdGl2ZXM6IDxodHRwczovL3Rvb2xzLm9wZW5hcGlzLm9yZz4KCiMjIExpY2Vuc2UKCk1JVCBsaWNlbnNlZC4gU2VlIHRoZSBidW5kbGVkIFtMSUNFTlNFXShMSUNFTlNFKSBmaWxlIGZvciBtb3JlIGRldGFpbHMuCg== readmeEtag: '"141c8dc95a844473928efcf640da8eb4bc1526e9"' readmeLastModified: Mon, 08 Apr 2024 14:32:32 GMT repositoryId: 439764250 description: OpenAPI v3.1 Spec implementation in Go with generics created: '2021-12-19T03:11:04Z' updated: '2024-08-22T07:45:43Z' language: Go archived: false stars: 46 watchers: 2 forks: 8 owner: sv-tools logo: https://avatars.githubusercontent.com/u/59230487?v=4 license: MIT repoEtag: '"18810354bbf8a624cd12c1d4054476b337f323613013149882f352e6b8366bb1"' repoLastModified: Thu, 22 Aug 2024 07:45:43 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 3d4e8c0ed6ec76b10233ee8d28bd125e name: openapi homepage: https://github.com/sv-tools/openapi language: Go source_description: OpenAPI v3.1 Spec implementation in Go with generics v3_1: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/swaggerexpert/swagger-editor-validate v3: true v3_1: true id: cd216d2979394961a0ed7aaffafe46a4 repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIEVkaXRvciBWYWxpZGF0ZSBHaXRodWIgQWN0aW9uCgpUaGlzIEdpdEh1YiBBY3Rpb24gdmFsaWRhdGVzIE9wZW5BUEkgKE9BUykgZGVmaW5pdGlvbiBmaWxlIHVzaW5nIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pLgoKIVt0ZXN0XShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xOTMyODYvMTEwMjQ2MTQ4LWI3YWVhNTgwLTdmNjYtMTFlYi05YmQ3LTk0MGVjZTFmYzZiMC5wbmcpCgpJdCdzIGhhbmR5IGZvciB1c2UtY2FzZXMgd2hlbiBPQVMgZGVmaW5pdGlvbiBpcyBtYWludGFpbmVkIG1hbnVhbGx5IGFuZCBpcyBjaGVja2VkIHdpdGhpbiB0aGUgZ2l0LgpJZiBtb2RpZmljYXRpb25zIGFyZSBtYWRlIHRvIHRoZSBPQVMgZGVmaW5pdGlvbiB5b3Ugd2FudCB0byBtYWtlIHN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzCmludHJvZHVjZWQgYnkgbW9kaWZpY2F0aW9ucy4gRXJyb3JzIHRoYXQgd291bGQgYXBwZWFyIGluIFN3YWdnZXIgRWRpdG9yIHdoZW4gdGhlIE9BUyBkZWZpbml0aW9uCndvdWxkIGJlIHBhc3RlZCBpbnNpZGUgaXQuCgohW2ltYWdlXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xOTMyODYvMTEwMjQ0NjE4LWRjZWJlNTgwLTdmNWYtMTFlYi04ZGQ4LWNiMzFmNDk5NzYxZS5wbmcpCgpJZiB5b3UncmUgaW50ZXJlc3RlZCBhYm91dCB0ZWNobmljYWwgZGVzaWduIGFuZCBldm9sdXRpb24gb2YgdGhpcyBHaXRIdWIgQWN0aW9uIHBsZWFzZQpyZWFkIG91ciBbcmVsZWFzZSBhcnRpY2xlXShodHRwczovL3ZsYWRpbWlyZ29yZWouY29tL2Jsb2cvaG93LXRvLXZhbGlkYXRlLW9wZW5hcGktZGVmaW5pdGlvbnMtaW4tc3dhZ2dlci1lZGl0b3ItdXNpbmctZ2l0aHViLWFjdGlvbnMvKS4KCiMjIElucHV0cwoKIyMjIGBzd2FnZ2VyLWVkaXRvci11cmxgCgoqKk9wdGlvbmFsKiogRGVmaW5lcyBVUkwgb2YgW3N3YWdnZXItZWRpdG9yXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FnZ2VyLWVkaXRvcikgd2hlcmUgZGVmaW5pdGlvbgpmaWxlIGlzIGdvaW5nIHRvIGJlIHZhbGlkYXRlZC4gRGVmYXVsdCBgaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby9gLgoKIyMjIGBkZWZpbml0aW9uLWZpbGVgCgoqKlJlcXVpcmVkKiogRGVmaW5lcyBwYXRoIG9mIFtPQVNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSBkZWZpbml0aW9uIGZpbGUgdGhhdCBleGlzdHMKYXMgYSBwaHlzaWNhbCBmaWxlIGluIHlvdXIgcmVwb3NpdG9yeS4KCiMjIyBgaWdub3JlLWVycm9yYAoKKipPcHRpb25hbCoqIERlZmluZXMgcGF0aCB0byBKYXZhU2NyaXB0IGZpbGUgY29udGFpbmluZyBwcmVkaWNhdGUgZm9yIGRldGVybWluaW5nIGlmIHRoZSBlcnJvciBzaG91bGQgYmUgaWdub3JlZCBvciBub3QuCgoKIyMgRXhhbXBsZSB1c2FnZQoKVGhlcmUgYXJlIHR3byBtYWpvciB1c2UtY2FzZXMgb2YgaG93IHRvIHVzZSB0aGlzIEdpdEh1YiBBY3Rpb24uCgojIyMgUHVibGljIHVzZS1jYXNlCgpJZiB5b3UgaGF2ZSBhY2Nlc3MgdG8gdGhlIGludGVybmV0IGFuZCBkb24ndCBtaW5kIHRoYXQgdGhpcyBhY3Rpb24gc2VuZHMgeW91ciBPQVMgZGVmaW5pdGlvbgp0byBodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLyBmb3IgdmFsaWRhdGlvbi4KCmBgYHlhbWwKb246IFtwdXNoXQoKam9iczoKICB0ZXN0X3N3YWdnZXJfZWRpdG9yX3ZhbGlkYXRvcl9yZW1vdGU6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBuYW1lOiBTd2FnZ2VyIEVkaXRvciBWYWxpZGF0b3IgUmVtb3RlCgogICAgc3RlcHM6CiAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MgogICAgICAtIG5hbWU6IFZhbGlkYXRlIE9wZW5BUEkgZGVmaW5pdGlvbgogICAgICAgIHVzZXM6IHN3YWdnZXJleHBlcnQvc3dhZ2dlci1lZGl0b3ItdmFsaWRhdGVAdjEKICAgICAgICB3aXRoOgogICAgICAgICAgZGVmaW5pdGlvbi1maWxlOiBleGFtcGxlcy9vcGVuYXBpLTItMC55YW1sCmBgYAoKIyMjIFByaXZhdGUgdXNlLWNhc2UKCklmIHlvdSB3YW50IHRvIG1haW50YWluIGNvbXBsZXRlIHByaXZhY3kgYW5kIHlvdXIgT0FTIGRlZmluaXRpb24gbWF5IGNvbnRhaW4Kc2Vuc2l0aXZlIGluZm9ybWF0aW9uIHVzZSB0aGUgZm9sbG93aW5nIHdvcmtmbG93LiBUaGUgd29ya2Zsb3cgdXNlcyBzd2FnZ2VyLWVkaXRvcgpkb2NrZXIgaW1hZ2UgdGhhdCBydW5zIGFzIHNlcnZpY2Ugb2YgdGhlIHdvcmtmbG93LgoKYGBgeWFtbApvbjogW3B1c2hdCgpqb2JzOgogIHRlc3Rfc3dhZ2dlcl9lZGl0b3JfdmFsaWRhdG9yX3NlcnZpY2U6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBuYW1lOiBTd2FnZ2VyIEVkaXRvciBWYWxpZGF0b3IgU2VydmljZQoKICAgICMgU2VydmljZSBjb250YWluZXJzIHRvIHJ1biB3aXRoIGBydW5uZXItam9iYAogICAgc2VydmljZXM6CiAgICAgICMgTGFiZWwgdXNlZCB0byBhY2Nlc3MgdGhlIHNlcnZpY2UgY29udGFpbmVyCiAgICAgIHN3YWdnZXItZWRpdG9yOgogICAgICAgICMgRG9ja2VyIEh1YiBpbWFnZQogICAgICAgIGltYWdlOiBzd2FnZ2VyYXBpL3N3YWdnZXItZWRpdG9yCiAgICAgICAgcG9ydHM6CiAgICAgICAgICAjIE1hcHMgcG9ydCA4MDgwIG9uIHNlcnZpY2UgY29udGFpbmVyIHRvIHRoZSBob3N0IDgwCiAgICAgICAgICAtIDgwOjgwODAKCiAgICBzdGVwczoKICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYyCiAgICAgIC0gbmFtZTogVmFsaWRhdGUgT3BlbkFQSSBkZWZpbml0aW9uCiAgICAgICAgdXNlczogc3dhZ2dlcmV4cGVydC9zd2FnZ2VyLWVkaXRvci12YWxpZGF0ZUB2MQogICAgICAgIHdpdGg6CiAgICAgICAgICBzd2FnZ2VyLWVkaXRvci11cmw6IGh0dHA6Ly9sb2NhbGhvc3QvCiAgICAgICAgICBkZWZpbml0aW9uLWZpbGU6IGV4YW1wbGVzL29wZW5hcGktMi0wLnlhbWwKYGBgCg== readmeEtag: '"5fc179b9aa506a440926235a6014d4198dc49c92"' readmeLastModified: Thu, 15 Aug 2024 04:21:46 GMT repositoryId: 344901461 description: >- This GitHub Actions validates OpenAPI (OAS) definition file using Swagger Editor. created: '2021-03-05T18:37:29Z' updated: '2024-09-05T04:30:59Z' language: JavaScript archived: false stars: 46 watchers: 5 forks: 11 owner: swaggerexpert logo: https://avatars.githubusercontent.com/u/172408630?v=4 license: BSD-3-Clause repoEtag: '"8323f474dad1294071fea4c210eee2cc49e7a0cec560a432ba3e95192593545b"' repoLastModified: Thu, 05 Sep 2024 04:30:59 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/juzibot/wecom-openapi v3: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vd3djZG4ud2VpeGluLnFxLmNvbS9ub2RlL3dld29yay9pbWFnZXMvbG9nby5jNzY4Yzc1NmFiLnBuZyIgd2lkdGg9IjMwMCI+CjxpbWcgc3JjPSJodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvd3AtY29udGVudC91cGxvYWRzL3NpdGVzLzMvMjAxOC8wMi9PcGVuQVBJX0xvZ29fUGFudG9uZS0xLnBuZyIgd2lkdGg9IjMwMCI+CjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci5pby93b3JkcHJlc3MvaW1hZ2VzL2Fzc2V0cy9TV1UtbG9nby1jbHIucG5nIiB3aWR0aD0iMzAwIj4KCiMKClvnroDkvZPkuK3mloddKC4vUkVBRE1FX1pILm1kKQoKIyMgRGVzY3JpcHRpb24KClRoaXMgcHJvamVjdCBhaW1zIHRvIHRyYW5zbGF0ZSB0aGUgV2VDb20gZG9jdW1lbnRhdGlvbiBpbnRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiwgc28gdGhhdCB5b3UgY2FuIGdlbmVyYXRlIGNsaWVudCBjb2RlIGluIHZhcmlvdXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiBDdXJyZW50bHksIHdlIGFyZSB1c2luZyB2ZXJzaW9uIDMueCBvZiBPcGVuQVBJIFNwZWNpZmljYXRpb24uCgojIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKJCBucG0gaW5zdGFsbApgYGAKCiMjIFJ1bm5pbmcgdGhlIGFwcAoKV2hlbiB0aGUgYXBwIGlzIHJ1bm5pbmcsIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gZmlsZSBgb3BlbmFwaS55YW1sYCB3aWxsIGJlIGdlbmVyYXRlZC4gWW91IGNhbiBvcGVuIGBodHRwOi8vbG9jYWxob3N0OjMwMDAvb3BlbmFwaWAgdG8gdmlldyBTd2FnZ2VyIFVJLgoKYGBgYmFzaAokIG5wbSBydW4gc3RhcnQKYGBgCgojIyBHZW5lcmF0aW5nIGNsaWVudCBjb2RlCgpbc3dhZ2dlci1jb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKSBpcyBhIHZlcnkgcG9wdWxhciB0b29sIHRvIGdlbmVyYXRlIGNvZGUgZnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb24uIEJ1dCBpZiB5b3UgYXJlIHVzaW5nIEdvbGFuZywgW2dvLXN3YWdnZV0oaHR0cHM6Ly9naXRodWIuY29tL2dvLXN3YWdnZXIvZ28tc3dhZ2dlcikgaXMgcmVjb21tZW5kZWQuCgojIyMgRXhhbXBsZQoKW2dvLXN3YWdnZV0oaHR0cHM6Ly9naXRodWIuY29tL2dvLXN3YWdnZXIvZ28tc3dhZ2dlcikgaXMgYmFzZWQgb24gT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDIuMCwgc28geW91Cm5lZWQgdG8gZG93bmdyYWRlIHRoZSB2ZXJzaW9uLgoKYGBgYmFzaAokIG5wbSBpbnN0YWxsIC1nIGFwaS1zcGVjLWNvbnZlcnRlcgokIGFwaS1zcGVjLWNvbnZlcnRlciAtLWZyb209b3BlbmFwaV8zIC0tdG89c3dhZ2dlcl8yIC0tc3ludGF4PXlhbWwgLS1vcmRlcj1hbHBoYSAuL29wZW5hcGkueWFtbCA+IHN3YWdnZXIueWFtbApgYGAKClRoZW4gZ2VuZXJhdGUgR29sYW5nIGNvZGUgZnJvbSBgc3dhZ2dlci55YW1sYCBmaWxlLgoKYGBgCiQgYnJldyB0YXAgZ28tc3dhZ2dlci9nby1zd2FnZ2VyCgokIGJyZXcgaW5zdGFsbCBnby1zd2FnZ2VyCgokIG1rZGlyIHdlY29tLWFwaSAmJiBjZCB3ZWNvbS1hcGkKCiMgTk9URTogeW91IG5lZWQgcnVuIGdvIG1vZCBpbml0IHRvIGNyZWF0ZSBhIGdvLm1vZCBmaWxlCiQgZ28gbW9kIGluaXQgd2Vjb20tYXBpCgokIHN3YWdnZXIgZ2VuZXJhdGUgY2xpZW50IC1mIHN3YWdnZXIueWFtbCAtdCB3ZWNvbS1hcGkKYGBgCgojIyBEZXYKClRoaXMgcHJvamVjdCBpcyBiYXNlZCBvbiBTd2FnZ2VyIGludGVncmF0aW9uIG9mIE5lc3RKUy4gUmVmZXIgdG8gW09wZW5BUEkoTmVzdEpTKV0oaHR0cHM6Ly9kb2NzLm5lc3Rqcy5jb20vb3BlbmFwaS9pbnRyb2R1Y3Rpb24pIGZvciBkZXRhaWwuCgojIyMgQVBJIERlZmluaXRpb24gaW4gY29udHJvbGxlciBmaWxlcwoKYGBgCm5lc3QgZyAtLW5vLXNwZWMgY29udHJvbGxlciBkZXBhcnRtZW50CmBgYAoKIyMjIENyZWF0ZSBEVE8gYW5kIFJlc3BvbnNlIHN0cnVjdHVyZQoKVXN1YWxseSwgd2UgZGVjbGFyZSBEVE9zIGFuZCBSZXNwb25zZXMgaW4gZGlmZmVyZW50IGNsYXNzZXMuCgpgYGAKbmVzdCBnIC0tbm8tc3BlYyBjbGFzcyBkZXBhcnRtZW50L0RlcGFydG1lbnQKYGBgCgojIyMgQVBJIFByb3BlcnRpZXMKCmBgYAogIEBBcGlQcm9wZXJ0eSh7CiAgICByZXF1aXJlZDogZmFsc2UsCiAgICB0eXBlOiAnc3RyaW5nJywKICAgIGlzQXJyYXk6IHRydWUsCiAgICBtYXhJdGVtczogMTAwLAogICAgZXhhbXBsZTogJ1siYWJlbCJdJywKICAgIGRlc2NyaXB0aW9uOiAndXNlciBpZCBsaXN0LCBtYXggbGVuZ3RoIGlzIDEwMCcsCiAgfSkKICB1c2VyaWRfbGlzdDogc3RyaW5nW107CmBgYAoKLSBgcmVxdWlyZWRgLCBgdHlwZWAgaXMgcmVxdWlyZWQuCi0gYGRlc2NyaXB0aW9uYCwgYGV4YW1wbGVgIHJlY29tbWVuZGVk44CCCgpgYGAKICBAQXBpT3BlcmF0aW9uKHsKICAgIG9wZXJhdGlvbklkOiAnZ2V0R3JvdXBDaGF0JywKICAgIHN1bW1hcnk6ICdHZXQgdXNlciBncm91cCBkZXRhaWwnLAogICAgZGVzY3JpcHRpb246ICdHZXQgdXNlciBncm91cCBkZXRhaWwnLAogICAgZXh0ZXJuYWxEb2NzOiB7CiAgICAgIHVybDogJ2h0dHBzOi8vZGV2ZWxvcGVyLndvcmsud2VpeGluLnFxLmNvbS9kb2N1bWVudC9wYXRoLzkyMTIyJywKICAgIH0sCiAgfSkKYGBgCgotIGBvcGVyYXRpb25JZGAgUmVxdWlyZWQsIFVuaXF1ZSwgSXMgZnVuY3Rpb24gbmFtZSBpbiBnZW5lcnRhdGlvbiBjb2RlLgotIGBzdW1tYXJ5YCBSZXF1aXJlZAotIGBleHRlcm5hbERvY3NgIExpbmsgdG8gV2VDb20gb2ZmaWNpYWwgZG9jdW1lbnQuCgojIyBTd2FnZ2VyIFVJIFRyeSBpdCBvdXQKCiMjIyBBdXRob3JpemUKCkZpcnN0LCB5b3UgbmVlZCB0byBnZXQgYW4gYGFjY2Vzc190b2tlbmAgdG8gYXV0aG9yaXplIHRoZSBhcGkgY2FsbHMuCiFbXSguL3NjcmVlbnNob3QvYXV0aG9yaXplX3N0ZXAucG5nKQoKIyMjIFByb3h5CgpCcm93c2VyIGhhcyBDT1JTIGlzc3VlLCBzbyB3ZSBjYW5ub3QgYWNjZXNzIHd4LXdvcmsgZGlyZWN0bHkuIFNvIHdlIG1hZGUgYSBwcm94eSBmb3IgeW91LiBUbyBhY2Nlc3MsIHVzZSBgaHR0cDovL2xvY2FsaG9zdDozMDAwL2NnaS1iaW5gLgohW10oLi9zY3JlZW5zaG90L3Byb3h5X3N0ZXAucG5nKQo= readmeEtag: '"3ab97d0b553ac8683a7785a2d4d1a16c7d3ce104"' readmeLastModified: Fri, 11 Nov 2022 03:36:15 GMT repositoryId: 457707390 description: Swagger OpenAPI of WeCom. 企业微信的 Swagger 文档。 created: '2022-02-10T09:13:32Z' updated: '2024-06-17T10:14:10Z' language: TypeScript archived: false stars: 45 watchers: 4 forks: 2 owner: juzibot logo: https://avatars.githubusercontent.com/u/36260234?v=4 repoEtag: '"b78a2ada48f08da6245bf845760cef714b6cd5311bc1288ffdea74c403547207"' repoLastModified: Mon, 17 Jun 2024 10:14:10 GMT foundInMaster: true category: Parsers id: 34d44163975586f318085cb7dc4b1ba6 - source: openapi3 tags repository: https://github.com/javalin/javalin-openapi v3: true id: 91ce32879876ec8e68965162b84f61ec repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFBsdWdpbiBbIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL2phdmFsaW4vamF2YWxpbi1vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2dyYWRsZS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2phdmFsaW4vamF2YWxpbi1vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2dyYWRsZS55bWwpICFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3YvaW8uamF2YWxpbi5jb21tdW5pdHkub3BlbmFwaS9vcGVuYXBpLWFubm90YXRpb24tcHJvY2Vzc29yP2xhYmVsPU1hdmVuJTIwQ2VudHJhbCkgWyFbVmVyc2lvbiAvIFNuYXBzaG90XShodHRwczovL21hdmVuLnJlcG9zaWxpdGUuY29tL2FwaS9iYWRnZS9sYXRlc3Qvc25hcHNob3RzL2lvL2phdmFsaW4vY29tbXVuaXR5L29wZW5hcGkvamF2YWxpbi1vcGVuYXBpLXBsdWdpbj9jb2xvcj1BOTdCRkYmbmFtZT1TbmFwc2hvdCldKGh0dHBzOi8vbWF2ZW4ucmVwb3NpbGl0ZS5jb20vIy9zbmFwc2hvdHMvaW8vamF2YWxpbi9jb21tdW5pdHkvb3BlbmFwaSkKQ29tcGlsZS10aW1lIE9wZW5BUEkgaW50ZWdyYXRpb24gZm9yIEphdmFsaW4gNi54IGVjb3N5c3RlbS4KVGhpcyBpcyBhIG5ldyBwbHVnaW4gdGhhdCByZXBsYWNlcyBbb2xkIGJ1aWx0LWluIE9wZW5BcGkgbW9kdWxlXShodHRwczovL2dpdGh1Yi5jb20vamF2YWxpbi9qYXZhbGluL3RyZWUvamF2YWxpbi00eC9qYXZhbGluLW9wZW5hcGkpLCAKdGhlIEFQSSBsb29rcyBxdWl0ZSB0aGUgc2FtZSBkZXNwaXRlIHNvbWUgbWlub3IgY2hhbmdlcy4KCiFbUHJldmlld10oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vNDIzNTcyMi8xMjI5ODIxNjItZDIzNDRmODAtZDM5YS0xMWViLTlhOTMtZTUyYjliN2I3YjUzLnBuZykKCiMjIyBIb3cgdG8gdXNlCgoqIFtXaWtpIC8gSW5zdGFsbGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vamF2YWxpbi9qYXZhbGluLW9wZW5hcGkvd2lraS8xLi1JbnN0YWxsYXRpb24pCiogW1dpa2kgLyBTZXR1cF0oaHR0cHM6Ly9naXRodWIuY29tL2phdmFsaW4vamF2YWxpbi1vcGVuYXBpL3dpa2kvMi4tU2V0dXApCiogW1dpa2kgLyBGZWF0dXJlc10oaHR0cHM6Ly9naXRodWIuY29tL2phdmFsaW4vamF2YWxpbi1vcGVuYXBpL3dpa2kvMy4tRmVhdHVyZXMpCgojIyMgTm90ZXMKKiBSZWZsZWN0aW9uIGZyZWUsIGRvZXMgbm90IHBlcmZvcm0gYW55IGV4dHJhIG9wZXJhdGlvbnMgYXQgcnVudGltZQoqIFVzZXMgYEBPcGVuQXBpYCB0byBzaW1wbGlmeSBtaWdyYXRpb24gZnJvbSBidW5kbGVkIE9wZW5BcGkgaW1wbGVtZW50YXRpb24KKiBTdXBwb3J0cyBKYXZhIDExKyAoYWxzbyAxNiBhbmQgYW55IGZ1cnRoZXIgcmVsZWFzZXMpIGFuZCBLb3RsaW4gKHRocm91Z2ggW0thcHRdKGh0dHBzOi8va290bGlubGFuZy5vcmcvZG9jcy9rYXB0Lmh0bWwpKQoqIFVzZXMgaW50ZXJuYWwgV2ViSmFyIGhhbmRsZXIgdGhhdCB3b3JrcyB3aXRoIGAvKmAgcm91dGUgb3V0IG9mIHRoZSBib3gKKiBQcm92aWRlcyBiZXR0ZXIgcHJvamVjdGlvbiBvZiBPcGVuQVBJIHNwZWNpZmljYXRpb24KKiBTY2hlbWEgdmFsaWRhdGlvbiB0aHJvdWdoIFN3YWdnZXIgY29yZSBtb2R1bGUKCiMjIyBPdGhlciBleGFtcGxlcwoqIFtUZXN0IG1vZHVsZV0oaHR0cHM6Ly9naXRodWIuY29tL2phdmFsaW4vamF2YWxpbi1vcGVuYXBpL2Jsb2IvbWFpbi9leGFtcGxlcy9qYXZhbGluLWdyYWRsZS1rb3RsaW4vc3JjL21haW4vamF2YS9pby9qYXZhbGluL29wZW5hcGkvcGx1Z2luL3Rlc3QvSmF2YWxpblRlc3QuamF2YSkgLSBgSmF2YWxpblRlc3RgIHNob3dzIGhvdyB0aGlzIHBsdWdpbiB3b3JrIGluIEphdmEgY29kZWJhc2UgdXNpbmcgdmFyaW91cyBmZWF0dXJlcwoqIFtSZXBvc2lsaXRlXShodHRwczovL2dpdGh1Yi5jb20vZHppa295c2svcmVwb3NpbGl0ZSkgLSByZWFsIHdvcmxkIGFwcCB1c2luZyBKYXZhbGluIGFuZCBPcGVuQXBpIGludGVncmF0aW9uCgojIyMgUmVwb3NpdG9yeSBzdHJ1Y3R1cmUKCiMjIyMgVW5pdmVyc2FsIG1vZHVsZXMKCnwgTW9kdWxlICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IGBvcGVuYXBpLWFubm90YXRpb24tcHJvY2Vzc29yYCB8IENvbXBpbGUtdGltZSBhbm5vdGF0aW9uIHByb2Nlc3Nvciwgc2hvdWxkIGdlbmVyYXRlIGAvb3BlbmFwaS1wbHVnaW4vb3BlbmFwaS5qc29uYCByZXNvdXJjZSB8CnwgYG9wZW5hcGktc3BlY2lmaWNhdGlvbmAgICAgICAgIHwgQW5ub3RhdGlvbnMgJiBjbGFzc2VzIHVzZWQgdG8gZGVzY3JpYmUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgb3BlbmFwaS10ZXN0YCAgICAgICAgICAgICAgICAgfCBFeGFtcGxlIEphdmFsaW4gYXBwbGljYXRpb24gdGhhdCB1c2VzIE9wZW5BcGkgcGx1Z2luIGluIEdyYWRsZSAmIE1hdmVuICAgICAgICAgICAgICAgICAgICAgfAoKIyMjIyBKYXZhbGluIHBsdWdpbnMKCnwgUGx1Z2luICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IGBqYXZhbGluLW9wZW5hcGktcGx1Z2luYCB8IExvYWRzIGAvb3BlbmFwaS1wbHVnaW4vb3BlbmFwaS5qc29uYCByZXNvdXJjZSBhbmQgc2VydmVzIG1haW4gT3BlbkFwaSBlbmRwb2ludCB8CnwgYGphdmFsaW4tc3dhZ2dlci1wbHVnaW5gIHwgU2VydmVzIFN3YWdnZXIgVUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgamF2YWxpbi1yZWRvYy1wbHVnaW5gICAgfCBTZXJ2ZXMgUmVEb2MgVUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMjIyBCcmFuY2hlcwoKfCBCcmFuY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBKYXZhbGluIHZlcnNpb24gfCBPcGVuQXBpIFZlcnNpb24gfCBKYXZhIFZlcnNpb24gfAp8Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS18CnwgW21haW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXZhbGluL2phdmFsaW4tb3BlbmFwaS90cmVlL21haW4pIHwgNi54ICAgICAgICAgICAgIHwgNi54ICAgICAgICAgICAgIHwgSkRLMTEgICAgICAgIHwKfCBbNS54XShodHRwczovL2dpdGh1Yi5jb20vamF2YWxpbi9qYXZhbGluLW9wZW5hcGkvdHJlZS81LngpICAgfCA1LnggICAgICAgICAgICAgfCA1LnggICAgICAgICAgICAgfCBKREsxMSAgICAgICAgfAp8IFs0LnhdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXZhbGluL2phdmFsaW4tb3BlbmFwaS90cmVlLzQueCkgICB8IDQueCAgICAgICAgICAgICB8IDEueCAgICAgICAgICAgICB8IEpESzggICAgICAgICB8Cg== readmeEtag: '"fc0e52845b3780f38287e9aa78acc1b14220a87d"' readmeLastModified: Sun, 21 Jul 2024 14:21:45 GMT repositoryId: 364314288 description: >- Annotation processor for compile-time OpenAPI & JsonSchema, with out-of-the-box support for Javalin 5.x, Swagger & ReDoc created: '2021-05-04T16:10:52Z' updated: '2024-09-04T20:33:36Z' language: Kotlin archived: false stars: 45 watchers: 6 forks: 17 owner: javalin logo: https://avatars.githubusercontent.com/u/28701086?v=4 license: Apache-2.0 repoEtag: '"01c32d423a327c32d1441a2c01056c66acc6475a140185dae08e7f1bb4a70b24"' repoLastModified: Wed, 04 Sep 2024 20:33:36 GMT category: SDK foundInMaster: true oldLocations: - https://github.com/dzikoysk/javalin-openapi - https://github.com/reposilite-playground/javalin-openapi - source: openapi3 tags repository: https://github.com/egeucak/api-doc-gpt v3: true id: 1b63b5474bf136c577ee3b41fafb3685 repositoryMetadata: base64Readme: >- IyBBUEkgRG9jIEdQVAoKVGhpcyBpcyBhbiBBSSB0b29sIHRoYXQgaGVscHMgeW91IGRpc2NvdmVyIHlvdXIgQVBJIGRvY3VtZW50YXRpb24uIEl0IGlzIGJhc2VkIG9uIHRoZSBbR1BULTMuNV0oaHR0cHM6Ly9vcGVuYWkuY29tL2Jsb2cvYmV0dGVyLWxhbmd1YWdlLW1vZGVscy8pIGxhbmd1YWdlIG1vZGVsIGZyb20gT3BlbkFJLgpZb3UgY2FuIHVzZSB0aGlzIHdpdGggZWl0aGVyIGRpcmVjdGx5IGNvbm5lY3RpbmcgdG8gYSBGYXN0QXBpIGFwcCBvciBieSBwYXNzaW5nIGluIGFuIGBvcGVuYXBpLmpzb25gIGZpbGUuCgojIyBTZXR1cAoKSW5zdGFsbCB0aGUgZGVwZW5kZW5jaWVzCgpgYGBiYXNoCnBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKYGBgCgojIyBIb3cgdG8gdXNlIHdpdGggRmFzdEFwaQoKMS4gUnVuIHlvdXIgYmFja2VuZCBhcHAKCmBgYGJhc2gKdXZpY29ybiBtYWluOmFwcCAtLXJlbG9hZApgYGAKCjIuIFJ1biB0aGUgc2NyaXB0CgpgYGBiYXNoCnB5dGhvbiBhcGlfbWFzdGVyLnB5IC0tb3BlbmFpLWtleSA8eW91ci1vcGVuYWkta2V5PiAtLXRhcmdldCA8eW91ci1mYXN0YXBpLWFwcD4gLS1iYXNlLXVybCA8eW91ci1iYXNlLXVybD4KYGBgCgojIyBIb3cgdG8gdXNlIHdpdGggb3BlbmFwaS5qc29uCgpgYGBiYXNoCnB5dGhvbiBhcGlfbWFzdGVyLnB5IC0tb3BlbmFpLWtleSA8eW91ci1vcGVuYWkta2V5PiAtLW9wZW5hcGktanNvbiA8b3BlbmFwaS1qc29uPiAtLWJhc2UtdXJsIDx5b3VyLWJhc2UtdXJsPgpgYGAKCiMjIFJ1bm5pbmcgZXhhbXBsZQoKYGBgYmFzaApweXRob24gYXBpX21hc3Rlci5weSAtLW9wZW5haS1rZXk9PHlvdXItb3BlbmFpLWtleT4gLS1vcGVuYXBpLWpzb249Li9leGFtcGxlL29wZW5hcGkuanNvbiAtLWJhc2UtdXJsPSJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92MyIKYGBgCgpFbmpveSBpbnRlcmFjdGluZyB3aXRoIHlvdXIgQVBJIGRvY3VtZW50YXRpb24KIVtzaG93Y2FzZV0oLi9zaG93Y2FzZS5wbmcpCgojIFdpdGggR1BULTQKClRoaXMgYWxzbyB3b3JrcyB3aXRoIEdQVC00LiBZb3UganVzdCBuZWVkIHRvIHBhc3MgcGFyYW1ldGVyIGAtLW1vZGVsLW5hbWU9Z3B0LTRgIHdoaWxlIHJ1bm5pbmcgdGhlIHNjcmlwdC4KCiMjIEhvdyBpdCB3b3JrcwoKVGhpcyB3b3JrcyBieSBjcmVhdGluZyBvcGVuIGFwaSBkb2N1bWVudGF0aW9uIGZyb20geW91ciBmYXN0YXBpIGFwcCBhbmQgdGhlbiB1c2luZyB0aGUgR1BULTMuNSBsYW5ndWFnZSBtb2RlbCB0byBhbmFseXplIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgQVBJLgoKYGBgbWVybWFpZApzZXF1ZW5jZURpYWdyYW0KICAgIFVzZXItLT4+K1Byb2Nlc3NvcjogR2l2ZSBtZSBhIGxpc3Qgb2YgaXRlbXMuIEkgb25seSBuZWVkIDUgb2YgdGhlbQogICAgUHJvY2Vzc29yLS0+PitBSTogUFJPTVBUOiBHaXZlIG1lIGEgbGlzdCBvZiBpdGVtcy4gSSBvbmx5IG5lZWQgNSBvZiB0aGVtCiAgICBBSS0tPj4rUHJvY2Vzc29yOiBDTUQ6IEdFVCAvaXRlbXM/ZmlsdGVyPTUKICAgIFByb2Nlc3Nvci0tPj4rQUk6IENNRF9SRVNQOiBbeyJuYW1lIjogImN1Y3VtYmVyIn0sIHsibmFtZSI6ICJjZWxlcnkifS4uLl0KICAgIEFJLS0+PitQcm9jZXNzb3I6IE9VVDogSXRlbXMgYXJlIGN1Y3VtYmVyLCBjZWxlcnkuLi4KICAgIFByb2Nlc3Nvci0tPj4rVXNlcjogSXRlbXMgYXJlIGN1Y3VtYmVyLCBjZWxlcnkuLi4KYGBgCgpUaGlzIGFsc28gc3VwcG9ydHMgcmVhY3QuIE1vcmUgZGV0YWlsIGNhbiBiZSBmb3VuZCBhdDogaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIyMTAuMDM2MjkKCiMjIENvbnN0cmFpbnRzCgotIFRva2VuIHNpemUK readmeEtag: '"1fbcc22a62df0c9f992b6601ffeed6e01ca6517c"' readmeLastModified: Mon, 27 Mar 2023 15:02:29 GMT repositoryId: 609666398 description: ChatGPT for Openapi created: '2023-03-04T21:34:21Z' updated: '2024-07-28T09:18:20Z' language: Python archived: false stars: 45 watchers: 2 forks: 6 owner: egeucak logo: https://avatars.githubusercontent.com/u/15627365?v=4 license: MIT repoEtag: '"af8bca62af861ac28a08f5e42b8f1c3a062c18f8f4baac29c6816744c101daa5"' repoLastModified: Sun, 28 Jul 2024 09:18:20 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/pb33f/libopenapi-validator v3: true id: b77b0d150f7c5b07a939f34b5a16c59d repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+DQoJPGltZyBzcmM9ImxpYm9wZW5hcGktbG9nby5wbmciIGFsdD0ibGlib3BlbmFwaSIgaGVpZ2h0PSIzMDBweCIgd2lkdGg9IjQ1MHB4Ii8+DQo8L3A+DQoNCiMgRW50ZXJwcmlzZSBncmFkZSBPcGVuQVBJIHZhbGlkYXRpb24gdG9vbHMgZm9yIGdvbGFuZy4NCg0KIVtQaXBlbGluZV0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGktdmFsaWRhdG9yL3dvcmtmbG93cy9CdWlsZC9iYWRnZS5zdmcpDQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvcGIzM2YvbGlib3BlbmFwaS12YWxpZGF0b3IvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnPyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9wYjMzZi9saWJvcGVuYXBpLXZhbGlkYXRvcikNClshW2Rpc2NvcmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZGlzY29yZC85MjMyNTgzNjM1NDA4MTU5MTIpXShodHRwczovL2Rpc2NvcmQuZ2cveDdWQUNWdUVHUCkNClshW0RvY3NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZ29kb2MtcmVmZXJlbmNlLTVmYWZkNyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGktdmFsaWRhdG9yKQ0KDQpBIHZhbGlkYXRpb24gbW9kdWxlIGZvciBbbGlib3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGkpLg0KDQpgbGlib3BlbmFwaS12YWxpZGF0b3JgIHdpbGwgdmFsaWRhdGUgdGhlIGZvbGxvd2luZyBlbGVtZW50cyBhZ2FpbnN0IGFuIE9wZW5BUEkgMysgc3BlY2lmaWNhdGlvbg0KDQotICpodHRwLlJlcXVlc3QqIC0gVmFsaWRhdGVzIHRoZSByZXF1ZXN0IGFnYWluc3QgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbg0KLSAqaHR0cC5SZXNwb25zZSogLSBWYWxpZGF0ZXMgdGhlIHJlc3BvbnNlIGFnYWluc3QgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbg0KLSAqbGlib3BlbmFwaS5Eb2N1bWVudCogLSBWYWxpZGF0ZXMgdGhlIE9wZW5BUEkgZG9jdW1lbnQgYWdhaW5zdCB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uDQotICpiYXNlLlNjaGVtYSogLSBWYWxpZGF0ZXMgYSBzY2hlbWEgYWdhaW5zdCBhIEpTT04gb3IgWUFNTCBibG9iIC8gdW5tYXJzaGFsbGVkIG9iamVjdA0KDQrwn5GJ8J+RiSBbQ2hlY2sgb3V0IHRoZSBmdWxsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS92YWxpZGF0aW9uLykg8J+RiPCfkYgNCg0KLS0tDQoNCiMjIEluc3RhbGxhdGlvbg0KDQpgYGBiYXNoDQpnbyBnZXQgZ2l0aHViLmNvbS9wYjMzZi9saWJvcGVuYXBpLXZhbGlkYXRvcg0KYGBgDQoNCiMjIERvY3VtZW50YXRpb24NCg0KLSBbVGhlIHN0cnVjdHVyZSBvZiB0aGUgdmFsaWRhdG9yXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvdmFsaWRhdGlvbi8jdGhlLXN0cnVjdHVyZS1vZi10aGUtdmFsaWRhdG9yKQ0KICAtIFtWYWxpZGF0aW9uIGVycm9yc10oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL3ZhbGlkYXRpb24vI3ZhbGlkYXRpb24tZXJyb3JzKQ0KICAtIFtTY2hlbWEgZXJyb3JzXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvdmFsaWRhdGlvbi8jc2NoZW1hLWVycm9ycykNCiAgLSBbSGlnaC1sZXZlbCB2YWxpZGF0aW9uXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvdmFsaWRhdGlvbi8jaGlnaC1sZXZlbC12YWxpZGF0aW9uKQ0KLSBbVmFsaWRhdGluZyBodHRwLlJlcXVlc3RdKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS92YWxpZGF0aW9uLyN2YWxpZGF0aW5nLWh0dHByZXF1ZXN0KQ0KLSBbVmFsaWRhdGluZyBodHRwLlJlcXVlc3QgYW5kIGh0dHAuUmVzcG9uc2VdKGh0dHBzOi8vcGIzM2YuaW8vbGlib3BlbmFwaS92YWxpZGF0aW9uLyN2YWxpZGF0aW5nLWh0dHByZXF1ZXN0LWFuZC1odHRwcmVzcG9uc2UpDQotIFtWYWxpZGF0aW5nIGp1c3QgaHR0cC5SZXNwb25zZV0oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL3ZhbGlkYXRpb24vI3ZhbGlkYXRpbmctanVzdC1odHRwcmVzcG9uc2UpDQotIFtWYWxpZGF0aW5nIEhUVFAgUGFyYW1ldGVyc10oaHR0cHM6Ly9wYjMzZi5pby9saWJvcGVuYXBpL3ZhbGlkYXRpb24vI3ZhbGlkYXRpbmctaHR0cC1wYXJhbWV0ZXJzKQ0KLSBbVmFsaWRhdGluZyBhbiBPcGVuQVBJIGRvY3VtZW50XShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvdmFsaWRhdGlvbi8jdmFsaWRhdGluZy1hbi1vcGVuYXBpLWRvY3VtZW50KQ0KLSBbVmFsaWRhdGluZyBTY2hlbWFzXShodHRwczovL3BiMzNmLmlvL2xpYm9wZW5hcGkvdmFsaWRhdGlvbi8jdmFsaWRhdGluZy1zY2hlbWFzKQ0KDQpbbGlib3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3BiMzNmL2xpYm9wZW5hcGkpIGFuZCBbbGlib3BlbmFwaS12YWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYjMzZi9saWJvcGVuYXBpLXZhbGlkYXRvcikgYXJlDQpwcm9kdWN0cyBvZiBQcmluY2VzcyBCZWVmIEhlYXZ5IEluZHVzdHJpZXMsIExMQw0K readmeEtag: '"9e057a6663549e249891fdcee8b05cda591e006b"' readmeLastModified: Tue, 09 Jul 2024 15:15:01 GMT repositoryId: 621782398 description: >- OpenAPI validation extension for libopenapi, validate http requests and responses as well as schemas created: '2023-03-31T11:28:11Z' updated: '2024-08-28T21:50:57Z' language: Go archived: false stars: 44 watchers: 4 forks: 15 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION repoEtag: '"776f3d8c211f4347e681028f8bc4ae409b540057824a9dfa421f4a8702d5a028"' repoLastModified: Wed, 28 Aug 2024 21:50:57 GMT category: Parsers foundInMaster: true v3_1: true - source: openapi3 tags repository: https://github.com/a-h/rest v3: true id: e20761e913a0567699fb6cea88173185 repositoryMetadata: base64Readme: >- IyBSRVNUCgpEb2N1bWVudCBhIFJFU1QgQVBJIHdpdGggYW4gT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbi4KCiogQ29kZSwgbm90IGNvbmZpZ3VyYXRpb24uCiogTm8gbWFnaWMgY29tbWVudHMsIHRhZ3MsIG9yIGRlY29yYXRvcnMuCiogVXNlIHdpdGggb3Igd2l0aG91dCBhIEdvIHdlYiBmcmFtZXdvcmsuCiogUG9wdWxhdGVzIHNjaGVtYSBhdXRvbWF0aWNhbGx5IHVzaW5nIHJlZmxlY3Rpb24uCgojIyBXaHkgd291bGQgSSB3YW50IHRvIHVzZSB0aGlzPwoKKiBBZGQgT3BlbkFQSSBkb2N1bWVudGF0aW9uIHRvIGFuIEFQSS4KICAqIENyZWF0ZSBhIGBzd2FnZ2VyLmpzb25gIG9yIGBzd2FnZ2VyLnlhbWxgIGZpbGUuCiogU2VydmUgdGhlIFN3YWdnZXIgVUkgdG8gY3VzdG9tZXJzLgoKIyMgRXhhbXBsZXMKClNlZSB0aGUgWy4vZXhhbXBsZXNdKC4vZXhhbXBsZXMpIGRpcmVjdG9yeSBmb3IgY29tcGxldGUgZXhhbXBsZXMuCgojIyMgQ3JlYXRlIGFuIE9wZW5BUEkgMy4wIChzd2FnZ2VyKSBmaWxlCgpgYGBnbwovLyBDb25maWd1cmUgdGhlIG1vZGVscy4KYXBpIDo9IHJlc3QuTmV3QVBJKCJtZXNzYWdlcyIpCmFwaS5TdHJpcFBrZ1BhdGhzID0gW11zdHJpbmd7ImdpdGh1Yi5jb20vYS1oL3Jlc3QvZXhhbXBsZSIsICJnaXRodWIuY29tL2EtaC9yZXNwb25kIn0KCmFwaS5SZWdpc3Rlck1vZGVsKHJlc3QuTW9kZWxPZltyZXNwb25kLkVycm9yXSgpLCByZXN0LldpdGhEZXNjcmlwdGlvbigiU3RhbmRhcmQgSlNPTiBlcnJvciIpLCBmdW5jKHMgKm9wZW5hcGkzLlNjaGVtYSkgewogIHN0YXR1cyA6PSBzLlByb3BlcnRpZXNbInN0YXR1c0NvZGUiXQogIHN0YXR1cy5WYWx1ZS5XaXRoTWluKDEwMCkuV2l0aE1heCg2MDApCn0pCgphcGkuR2V0KCIvdG9waWMve2lkfSIpLgogIEhhc1BhdGhQYXJhbWV0ZXIoImlkIiwgcmVzdC5QYXRoUGFyYW17CiAgICBEZXNjcmlwdGlvbjogImlkIG9mIHRoZSB0b3BpYyIsCiAgICBSZWdleHA6ICAgICAgYFxkK2AsCiAgfSkuCiAgSGFzUmVzcG9uc2VNb2RlbChodHRwLlN0YXR1c09LLCByZXN0Lk1vZGVsT2ZbbW9kZWxzLlRvcGljXSgpKS4KICBIYXNSZXNwb25zZU1vZGVsKGh0dHAuU3RhdHVzSW50ZXJuYWxTZXJ2ZXJFcnJvciwgcmVzdC5Nb2RlbE9mW3Jlc3BvbmQuRXJyb3JdKCkpCgovLyBDcmVhdGUgdGhlIHNwZWNpZmljYXRpb24uCnNwZWMsIGVyciA6PSBhcGkuU3BlYygpCmlmIGVyciAhPSBuaWwgewogIGxvZy5GYXRhbGYoImZhaWxlZCB0byBjcmVhdGUgc3BlYzogJXYiLCBlcnIpCn0KCi8vIFdyaXRlIHRvIHN0ZG91dC4KZW5jIDo9IGpzb24uTmV3RW5jb2Rlcihvcy5TdGRvdXQpCmVuYy5TZXRJbmRlbnQoIiIsICIgIikKZW5jLkVuY29kZShzcGVjKQpgYGAKCiMjIyBTZXJ2ZSBBUEkgZG9jdW1lbnRhdGlvbiBhbG9uZ3NpZGUgeW91ciBBUEkKCmBgYGdvCi8vIENyZWF0ZSByb3V0ZXMuCnJvdXRlciA6PSBodHRwLk5ld1NlcnZlTXV4KCkKcm91dGVyLkhhbmRsZSgiL3RvcGljcyIsICZnZXQuSGFuZGxlcnt9KQpyb3V0ZXIuSGFuZGxlKCIvdG9waWMiLCAmcG9zdC5IYW5kbGVye30pCgphcGkgOj0gcmVzdC5OZXdBUEkoIm1lc3NhZ2VzIikKYXBpLlN0cmlwUGtnUGF0aHMgPSBbXXN0cmluZ3siZ2l0aHViLmNvbS9hLWgvcmVzdC9leGFtcGxlIiwgImdpdGh1Yi5jb20vYS1oL3Jlc3BvbmQifQoKLy8gUmVnaXN0ZXIgdGhlIGVycm9yIHR5cGUgd2l0aCBjdXN0b21pc2F0aW9ucy4KYXBpLlJlZ2lzdGVyTW9kZWwocmVzdC5Nb2RlbE9mW3Jlc3BvbmQuRXJyb3JdKCksIHJlc3QuV2l0aERlc2NyaXB0aW9uKCJTdGFuZGFyZCBKU09OIGVycm9yIiksIGZ1bmMocyAqb3BlbmFwaTMuU2NoZW1hKSB7CiAgc3RhdHVzIDo9IHMuUHJvcGVydGllc1sic3RhdHVzQ29kZSJdCiAgc3RhdHVzLlZhbHVlLldpdGhNaW4oMTAwKS5XaXRoTWF4KDYwMCkKfSkKCmFwaS5HZXQoIi90b3BpY3MiKS4KICBIYXNSZXNwb25zZU1vZGVsKGh0dHAuU3RhdHVzT0ssIHJlc3QuTW9kZWxPZltnZXQuVG9waWNzR2V0UmVzcG9uc2VdKCkpLgogIEhhc1Jlc3BvbnNlTW9kZWwoaHR0cC5TdGF0dXNJbnRlcm5hbFNlcnZlckVycm9yLCByZXN0Lk1vZGVsT2ZbcmVzcG9uZC5FcnJvcl0oKSkKCmFwaS5Qb3N0KCIvdG9waWMiKS4KICBIYXNSZXF1ZXN0TW9kZWwocmVzdC5Nb2RlbE9mW3Bvc3QuVG9waWNQb3N0UmVxdWVzdF0oKSkuCiAgSGFzUmVzcG9uc2VNb2RlbChodHRwLlN0YXR1c09LLCByZXN0Lk1vZGVsT2ZbcG9zdC5Ub3BpY1Bvc3RSZXNwb25zZV0oKSkuCiAgSGFzUmVzcG9uc2VNb2RlbChodHRwLlN0YXR1c0ludGVybmFsU2VydmVyRXJyb3IsIHJlc3QuTW9kZWxPZltyZXNwb25kLkVycm9yXSgpKQoKLy8gQ3JlYXRlIHRoZSBzcGVjLgpzcGVjLCBlcnIgOj0gYXBpLlNwZWMoKQppZiBlcnIgIT0gbmlsIHsKICBsb2cuRmF0YWxmKCJmYWlsZWQgdG8gY3JlYXRlIHNwZWM6ICV2IiwgZXJyKQp9CgovLyBBcHBseSBhbnkgZ2xvYmFsIGN1c3RvbWlzYXRpb24uCnNwZWMuSW5mby5WZXJzaW9uID0gInYxLjAuMC4iCnNwZWMuSW5mby5EZXNjcmlwdGlvbiA9ICJNZXNzYWdlcyBBUEkiCgovLyBBdHRhY2ggdGhlIFN3YWdnZXIgVUkgaGFuZGxlciB0byB5b3VyIHJvdXRlci4KdWksIGVyciA6PSBzd2FnZ2VydWkuTmV3KHNwZWMpCmlmIGVyciAhPSBuaWwgewogIGxvZy5GYXRhbGYoImZhaWxlZCB0byBjcmVhdGUgc3dhZ2dlciBVSSBoYW5kbGVyOiAldiIsIGVycikKfQpyb3V0ZXIuSGFuZGxlKCIvc3dhZ2dlci11aSIsIHVpKQpyb3V0ZXIuSGFuZGxlKCIvc3dhZ2dlci11aS8iLCB1aSkKCi8vIEFuZCBzdGFydCBsaXN0ZW5pbmcuCmZtdC5QcmludGxuKCJMaXN0ZW5pbmcgb24gOjgwODAuLi4iKQpmbXQuUHJpbnRsbigiVmlzaXQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkgdG8gc2VlIEFQSSBkZWZpbml0aW9ucyIpCmZtdC5QcmludGxuKCJMaXN0ZW5pbmcgb24gOjgwODAuLi4iKQpodHRwLkxpc3RlbkFuZFNlcnZlKCI6ODA4MCIsIHJvdXRlcikKYGBgCgojIyBUYXNrcwoKIyMjIHRlc3QKCmBgYApnbyB0ZXN0IC4vLi4uCmBgYAoKIyMjIHJ1bi1leGFtcGxlCgpEaXI6IC4vZXhhbXBsZXMvc3RkbGliCgpgYGAKZ28gcnVuIG1haW4uZ28KYGBgCg== readmeEtag: '"ff454f37f0e4ee23fab1100a8417417d22a9cc88"' readmeLastModified: Sat, 04 May 2024 11:35:46 GMT repositoryId: 599199253 description: Generate OpenAPI 3.0 specifications from Go code. created: '2023-02-08T16:53:48Z' updated: '2024-09-04T01:38:27Z' language: Go archived: false stars: 44 watchers: 3 forks: 16 owner: a-h logo: https://avatars.githubusercontent.com/u/1029947?v=4 license: MIT repoEtag: '"7e0f7e7bf296bb30c3427924cba3702ee3c57bfd949d6e2bb2ce21f971319e0b"' repoLastModified: Wed, 04 Sep 2024 01:38:27 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/rpstreef/openapi-tf-example v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHdpdGggQVdTIEFQSSBHYXRld2F5LCBMYW1iZGEsIENvZ25pdG8sIFNOUyBhbmQgQ2xvdWRXYXRjaCBsb2dzCgpUaGlzIHJlcG8gb25seSBkZXBsb3lzIHRoZSBpbmZyYXN0cnVjdHVyZSB2aWEgVGVycmFmb3JtLiBUaGUgc291cmNlIGNvZGUsIFt0aGlzXShodHRwczovL2dpdGh1Yi5jb20vcnBzdHJlZWYvb3BlbmFwaS1ub2RlLWV4YW1wbGUpIHJlcG8sIHdpbGwgYmUgZGVwbG95ZWQgYXV0b21hdGljYWxseSB2aWEgQVdTIENvZGVQaXBlbGluZS4gQnkgZGVmYXVsdCwgaXQncyBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgZGVwbG95IGF0IGV2ZXJ5IHB1c2ggdG8gdGhlIG1hc3RlciBicmFuY2guCgpDaGVjayB0aGUgY29tcGFuaW9uIGFydGljbGVzIHNlcmllcyAnX09wZW5BUElfJyBvbiBbZGV2LnRvXShodHRwczovL2Rldi50by9yb2xmc3RyZWVma2Vyay9vcGVuYXBpLXdpdGgtdGVycmFmb3JtLW9uLWF3cy1hcGktZ2F0ZXdheS0xN2plKS4KCiMgR2V0IHN0YXJ0ZWQKCiMjIFRoZSBlc3NlbnRpYWxzCgotIERvd25sb2FkIFRlcnJhZm9ybSB2MC4xMi54IFtoZXJlXShodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG93bmxvYWRzLmh0bWwpCi0gWW91IHdpbGwgbmVlZCBOb2RlIHYxMi54IGZyb20gW2hlcmVdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9kb3dubG9hZC8pCi0gR2l0LCB0byBjbG9uZSB0aGlzIFJlcG8sIGZyb20gW2hlcmVdKGh0dHBzOi8vZ2l0LXNjbS5jb20vZG93bmxvYWRzKQotIENyZWF0ZSBhIGZyZWUgQVdTIGFjY291bnQgKHJlcXVpcmVzIGNyZWRpdCBjYXJkKSBbaGVyZV0oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS8pCi0gRmluYWxseSwgZG93bmxvYWQgdGhlIFtBV1MgQ0xJIHRvb2xdKGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vY2xpLykgCi0gU2V0dXAgeW91ciBBV1MgbG9jYWwgcHJvZmlsZSwgc2VlIFt0aGlzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1wcm9maWxlcy5odG1sKSBndWlkZSBob3cgaXQncyBkb25lLgotIE1hbnVhbGx5IHNldHVwIGFuIEFXUyBTMyBCdWNrZXQgZm9yIFRlcnJhZm9ybSBzdGF0ZSBzdG9yYWdlLgoKIyMgVG8gZ2V0IHRoZSBBUEkgcnVubmluZwpJZiB5b3UgbWVldCBhbGwgdGhlIHByZS1yZXF1aXNpdGVzLCBkbyB0aGUgZm9sbG93aW5nCgotIEluIHlvdXIgQVdTIGRldmVsb3BtZW50IGFjY291bnQgY3JlYXRlIHRoZSBTMyBidWNrZXQgZm9yIHlvdXIgVGVycmFmb3JtIHN0YXRlIGZpbGVzLgogIC0gT3B0aW9uYWxseSwgZW5jcnlwdCB0aGUgUzMgYnVja2V0IGFuZCBlbmFibGUgdmVyc2lvbmluZyBzdWNoIHRoYXQgeW91IGNhbiBkbyBhIHJvbGxiYWNrLgotIGBgYGdpdCBjbG9uZWBgYCB0aGlzIHJlcG8uCi0gQ2hhbmdlIHlvdXIgQVdTIGNyZWRlbnRpYWxzIHByb2ZpbGUgbmFtZSBpbiB0aGVzZSBmaWxlczogCiAgLSBgYGAuL2Vudi9kZXYvcmVtb3RlLWJhY2tlbmQudGZgYGAKICAtIGBgYC4vZW52L2Rldi9kZXYudGZ2YXJzYGBgCi0gUnVuIGBgYCBucG0gaW5zdGFsbCBgYGAgYW5kIHRoZW4gZXhlY3V0ZSBgYGAgbnBtIHJ1biBkZXYtaW5pdCBgYGAsIHRoaXMgd2lsbDoKICAtIEluaXRpYWxpemUgdGhlIFRlcnJhZm9ybSBwcm9qZWN0IGZvciB0aGUgJ2RldicgZW52aXJvbm1lbnQsIGFuZCBzeW5jaHJvbml6ZSB0aGUgc3RhdGUgd2l0aCB0aGUgY2xvdWQgc3RvcmVkIC50ZnN0YXRlIGZpbGUuCiAgLSBJZiB5b3UgcnVuIGl0IGEgc2Vjb25kIHRpbWUsIGl0IHdpbGwgZmFpbCBvbiB0aGUgd29ya3NwYWNlIGNyZWF0aW9uLCB0aGlzIGlzIG5vdCBhbiBpc3N1ZSAodGhlIHdvcmtzcGFjZSBhbHJlYWR5IGV4aXN0cykKLSBSdW4gYGBgbnBtIHJ1biBkZXYtaW5mcmFgYGAgdG8gcHJlcGFyZSB0aGUgZGVwbG95bWVudCB0byB5b3VyIEFXUyBhY2NvdW50LgogIC0gTm90ZTogdGhpcyBbcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL3Jwc3RyZWVmL29wZW5hcGktbm9kZS1leGFtcGxlKSBjb250YWlucyB0aGUgbm9kZSBzb3VyY2UgY29kZSB0aGF0IHRoZSBDb2RlUGlwZWxpbmUgd2lsbCBkZXBsb3kgdG8gdGhlIEFXUyBMYW1iZGEgYW5kIExhbWJkYS1sYXllci4KICAtIENvbmZpcm0gd2l0aCBgYGB5ZXNgYGAgdG8gZGVwbG95LCBhbnl0aGluZyBlbHNlIHdpbGwgY2FuY2VsIHRoZSBkZXBsb3ltZW50CgpTZWUgbXkgZnVsbCBndWlkZSBvbiBkZXYudG8gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBwcm9qZWN0Cgpwcy4gSSdtIGF3YXJlIHRoZSBndWxwIGZpbGUgZG9lc24ndCBleGl0IG5pY2VseSwgaSdtIG5vdCBhbiBleHBlcnQuIEFueSBwdWxsIHJlcXVlc3RzIG9yIGlzc3VlIHJlcG9ydHMgd2l0aCBwb2ludGVycyBpcyBkZWZpbml0ZWx5IGFwcHJlY2lhdGVkLgoKIyMgVlMgQ29kZSBwbHVnaW5zIHVzZWQKCi0gW1N0YW5kYXJkSlNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1jaGVueHNhbi52c2NvZGUtc3RhbmRhcmRqcykKLSBbVGVycmFmb3JtXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9bWF1dmUudGVycmFmb3JtKQotIFtPcGVuQVBJIEVkaXRvcl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPTQyQ3J1bmNoLnZzY29kZS1vcGVuYXBpKQotIFtPcGVuQVBJIERlc2lnbmVyXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9cGhpbG9zb3dhZmZsZS5vcGVuYXBpLWRlc2lnbmVyKQoKIyMgUnVubmluZyBjb3N0cwoKVGhlcmUgYXJlIG5vIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCBkZXBsb3lpbmcgYW55IG9mIHRoaXMgb24gQVdTLCB0aGVyZSBpcyBbRnJlZSBUaWVyXShodHRwczovL2F3cy5hbWF6b24uY29tL2ZyZWUpIGNvdmVyYWdlIGZvciBsaW1pdGVkIGZyZWUgdXNlLgoKVGhlIGZvbGxvd2luZyBzZXJ2aWNlcyBhcmUgZGVwbG95ZWQgd2l0aCBUZXJyYWZvcm07Ci0gQVdTIENvZ25pdG8KLSBBV1MgQVBJIEdhdGV3YXkKLSBBV1MgTGFtYmRhICYgTGFtYmRhIExheWVyCi0gQVdTIElBTQotIChBZGRlZCkgQ2xvdWRXYXRjaCBBbGFybXMsIGNvc3RzIHdpbGwgYmUgaW5jdXJyZWQgZm9yIGVuYWJsaW5nIERldGFpbGVkIE1vbml0b3JpbmcgZm9yIEFQSSBHYXRld2F5ICghKQotIChBZGRlZCkgQVdTIENvZGVQaXBlbGluZSwgYW5kIENvZGVCdWlsZCB3aXRoIEdpdGh1YiBhcyBzb3VyY2UgcmVwb3NpdG9yeS4gVGhlcmUncyBhIGZyZWUgdGllciBmb3I6CiAgLSBbQ29kZUJ1aWxkXShodHRwczovL2F3cy5hbWF6b24uY29tL2NvZGVidWlsZC9wcmljaW5nLyksIDEwMCBidWlsZCBtaW51dGVzIG9mIGBgYGJ1aWxkLmdlbmVyYWwxLnNtYWxsYGBgIHBlciBtb250aC4KICAtIFtBV1MgQ29kZVBpcGVsaW5lXShodHRwczovL2F3cy5hbWF6b24uY29tL2NvZGVwaXBlbGluZS9wcmljaW5nLyk6IDEgZnJlZSBwaXBlbGluZSBhY3RpdmUgcGVyIG1vbnRoLiA= readmeEtag: '"e1dbe8e92d6a3be3e4dc1937bec8d38439974d7c"' readmeLastModified: Mon, 23 Nov 2020 07:58:54 GMT repositoryId: 236130695 description: >- Example of how you can use OpenAPI with AWS API Gateway, Also includes integrations with AWSLambda, AWS Cognito, AWS SNS and CloudWatch logs created: '2020-01-25T05:40:11Z' updated: '2024-05-14T07:04:05Z' language: HCL archived: false stars: 43 watchers: 4 forks: 19 owner: rpstreef logo: https://avatars.githubusercontent.com/u/15830262?v=4 license: Apache-2.0 repoEtag: '"f4dd3fb6ac6837f8d14fbad3a73dc7b31c7ba98cd93305cffb28f52303be946e"' repoLastModified: Tue, 14 May 2024 07:04:05 GMT foundInMaster: true category: - Description Validators - Server Implementations id: d88e9e79cc86cd11423f309b56d3accc - source: openapi3 tags repository: https://github.com/atlassian/oas3-chow-chow v3: true repositoryMetadata: base64Readme: >- IyBvYXMzLWNob3ctY2hvdwoKPiBSZXF1ZXN0IGFuZCByZXNwb25zZSB2YWxpZGF0b3IgYWdhaW5zdCBPcGVuQVBJIFNwZWNpZmljYXRpb24KClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2F0bGFzc2lhbi9vYXMzLWNob3ctY2hvdy5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9hdGxhc3NpYW4vb2FzMy1jaG93LWNob3cpClshW25wbV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vYXMzLWNob3ctY2hvdy5zdmc/c3R5bGU9ZmxhdCldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29hczMtY2hvdy1jaG93KQoKIyMgTm90ZXMKCklmIHlvdSBhcmUgbG9va2luZyBmb3IgZnJhbWV3b3JrIHNwZWNpZmljIG1pZGRsZXdhcmUsIHlvdSBtaWdodCB3YW50IHRvIGxvb2sgYXQgZm9sbG93aW5nIGxpYnJhcmllcyB0aGF0IHVzZSBvYXMzLWNob3ctY2hvdyB1bmRlciB0aGUgaG9vZC4KCltrb2Etb2FzM10oaHR0cHM6Ly9naXRodWIuY29tL2F0bGFzc2lhbi9rb2Etb2FzMykKW29wZW5hcGkzLW1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9uYXVndHVyL29wZW5hcGkzLW1pZGRsZXdhcmUpCgojIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKJCB5YXJuIGFkZCBvYXMzLWNob3ctY2hvdwokICMgT3IKJCBucG0gaSBvYXMzLWNob3ctY2hvdwpgYGAKCiMjIFVzYWdlCgpgYGB0eXBlc2NyaXB0CmltcG9ydCBDaG93Q2hvdyBmcm9tICJvYXMzLWNob3ctY2hvdyI7CmltcG9ydCAqIGFzIGZzIGZyb20gImZzIjsKaW1wb3J0ICogYXMgeWFtbCBmcm9tICJqcy15YW1sIjsKCnZhciBkb2MgPSB5YW1sLnNhZmVMb2FkKGZzLnJlYWRGaWxlU3luYygiLi9vcGVuYXBpLnltbCIsICJ1dGY4IikpOwpjb25zdCBjaG93ID0gQ2hvd0Nob3cuY3JlYXRlKGRvYyk7CgovLyBGb3IgVVJMOiAvOnBhdGhQYXJhbS9pbmZvP2FyclBhcmFtPXgmYXJyUGFyYW09eSZvdGhlcj16CmNob3cudmFsaWRhdGVSZXF1ZXN0QnlQYXRoKAogIC8vIHVybC5wYXRobmFtZSwKICAiL2Jvb2tzL2luZm8iLAogICJQT1NUIiwgewogICAgcGF0aDogeyBwYXRoUGFyYW06ICJib29rcyIgfSwKICAgIC8vIHF1ZXJ5OiBxdWVyeXN0cmluZy5wYXJzZSh1cmwuc2VhcmNoLnN1YnN0cigxKSksCiAgICBxdWVyeTogeyBhcnJQYXJhbTogWyJ4IiwgInkiXSwgb3RoZXI6ICJ6IiB9LAogICAgLy8gaGVhZGVyOiByZXEuaGVhZGVycywKICAgIGhlYWRlcjogeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICBib2R5OiB7IGE6IDEsIGI6IDIgfSwKICB9Cik7CmNob3cudmFsaWRhdGVSZXNwb25zZUJ5UGF0aCgiL2Jvb2tzL2luZm8iLCAiUE9TVCIsIHsKICBoZWFkZXI6IHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9LAogIGJvZHk6IHsKICAgIG5hbWU6ICJhIG5pY2UgYm9vayIsCiAgICBhdXRob3I6ICJtZSBtZSBtZSIKICB9Cn0pOwpgYGAKCiMjIENvbmZpZwoKWW91IGNvdWxkIG9wdGlvbmFsbHkgcHJvdmlkZSBjb25maWdzIHRvIHRoZSBjb25zdHJ1Y3RvcgpgYGB0eXBlc2NyaXB0CmNvbnN0IGNob3cgPSBDaG93Q2hvdy5jcmVhdGUoZG9jLCB7CiAgaGVhZGVyQWp2T3B0aW9uczoge30sCiAgY29va2llQWp2T3B0aW9uczoge30sCiAgcGF0aEFqdk9wdGlvbnM6IHsgY29lcmNlVHlwZXM6IHRydWUgfSwKICBxdWVyeUFqdk9wdGlvbnM6IHsgY29lcmNlVHlwZXM6ICdhcnJheScgfSwKICByZXF1ZXN0Qm9keUFqdk9wdGlvbnM6IHt9LAogIHJlc3BvbnNlQm9keUFqdk9wdGlvbnM6IHt9LAp9KTsKYGBgCgoqICoqaGVhZGVyQWp2T3B0aW9ucyoqOiBBanYgb3B0aW9ucyB0aGF0IHBhc3MgdG8gaGVhZGVyIGFqdiBpbnN0YW5jZQoqICoqY29va2llQWp2T3B0aW9ucyoqOiBBanYgb3B0aW9ucyB0aGF0IHBhc3MgdG8gY29va2llIGFqdiBpbnN0YW5jZQoqICoqcGF0aEFqdk9wdGlvbnMqKjogQWp2IG9wdGlvbnMgdGhhdCBwYXNzIHRvIHBhdGggYWp2IGluc3RhbmNlLCBkZWZhdWx0IGB7IGNvZXJjZVR5cGVzOiB0cnVlIH1gCiogKipxdWVyeUFqdk9wdGlvbnMqKjogQWp2IG9wdGlvbnMgdGhhdCBwYXNzIHRvIHF1ZXJ5IGFqdiBpbnN0YW5jZSwgZGVmYXVsdCBgeyBjb2VyY2VUeXBlczogJ2FycmF5JyB9YAoqICoqcmVxdWVzdEJvZHlBanZPcHRpb25zKio6IEFqdiBvcHRpb25zIHRoYXQgcGFzcyB0byByZXF1ZXN0IGJvZHkgYWp2IGluc3RhbmNlCiogKipyZXNwb25zZUJvZHlBanZPcHRpb25zKio6IEFqdiBvcHRpb25zIHRoYXQgcGFzcyB0byByZXNwb25zZSBib2R5IGFqdiBpbnN0YW5jZQoKIyMgQ29udHJpYnV0b3JzCgpQdWxsIHJlcXVlc3RzLCBpc3N1ZXMgYW5kIGNvbW1lbnRzIHdlbGNvbWUuIEZvciBwdWxsIHJlcXVlc3RzOgoKKiBBZGQgdGVzdHMgZm9yIG5ldyBmZWF0dXJlcyBhbmQgYnVnIGZpeGVzCiogRm9sbG93IHRoZSBleGlzdGluZyBzdHlsZQoqIFNlcGFyYXRlIHVucmVsYXRlZCBjaGFuZ2VzIGludG8gbXVsdGlwbGUgcHVsbCByZXF1ZXN0cwoqIFNlZSB0aGUgZXhpc3RpbmcgaXNzdWVzIGZvciB0aGluZ3MgdG8gc3RhcnQgY29udHJpYnV0aW5nLgoKRm9yIGJpZ2dlciBjaGFuZ2VzLCBtYWtlIHN1cmUgeW91IHN0YXJ0IGEgZGlzY3Vzc2lvbiBmaXJzdCBieSBjcmVhdGluZyBhbiBpc3N1ZSBhbmQgZXhwbGFpbmluZyB0aGUgaW50ZW5kZWQgY2hhbmdlLgoKQXRsYXNzaWFuIHJlcXVpcmVzIGNvbnRyaWJ1dG9ycyB0byBzaWduIGEgQ29udHJpYnV0b3IgTGljZW5zZSBBZ3JlZW1lbnQsIGtub3duIGFzIGEgQ0xBLiBUaGlzIHNlcnZlcyBhcyBhIHJlY29yZCBzdGF0aW5nIHRoYXQgdGhlIGNvbnRyaWJ1dG9yIGlzIGVudGl0bGVkIHRvIGNvbnRyaWJ1dGUgdGhlIGNvZGUvZG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbiB0byB0aGUgcHJvamVjdCBhbmQgaXMgd2lsbGluZyB0byBoYXZlIGl0IHVzZWQgaW4gZGlzdHJpYnV0aW9ucyBhbmQgZGVyaXZhdGl2ZSB3b3JrcyAob3IgaXMgd2lsbGluZyB0byB0cmFuc2ZlciBvd25lcnNoaXApLgoKUHJpb3IgdG8gYWNjZXB0aW5nIHlvdXIgY29udHJpYnV0aW9ucyB3ZSBhc2sgdGhhdCB5b3UgcGxlYXNlIGZvbGxvdyB0aGUgYXBwcm9wcmlhdGUgbGluayBiZWxvdyB0byBkaWdpdGFsbHkgc2lnbiB0aGUgQ0xBLiBUaGUgQ29ycG9yYXRlIENMQSBpcyBmb3IgdGhvc2Ugd2hvIGFyZSBjb250cmlidXRpbmcgYXMgYSBtZW1iZXIgb2YgYW4gb3JnYW5pemF0aW9uIGFuZCB0aGUgaW5kaXZpZHVhbCBDTEEgaXMgZm9yIHRob3NlIGNvbnRyaWJ1dGluZyBhcyBhbiBpbmRpdmlkdWFsLgoKKiBbQ0xBIGZvciBjb3Jwb3JhdGUgY29udHJpYnV0b3JzXShodHRwczovL25hMi5kb2N1c2lnbi5uZXQvTWVtYmVyL1Bvd2VyRm9ybVNpZ25pbmcuYXNweD9Qb3dlckZvcm1JZD1lMWMxN2M2Ni1jYTRkLTRhYWItYTk1My0yYzIzMWFmNGEyMGIpCiogW0NMQSBmb3IgaW5kaXZpZHVhbHNdKGh0dHBzOi8vbmEyLmRvY3VzaWduLm5ldC9NZW1iZXIvUG93ZXJGb3JtU2lnbmluZy5hc3B4P1Bvd2VyRm9ybUlkPTNmOTRmYmRjLTJmYmUtNDZhYy1iMTRjLTVkMTUyNzAwYWU1ZCkK readmeEtag: '"f8e55613e0a2eb8f9d835c49149fb0a6587babc7"' readmeLastModified: Thu, 05 Oct 2023 02:24:28 GMT repositoryId: 122282653 description: Request and response validator against OpenAPI Specification 3 created: '2018-02-21T02:16:51Z' updated: '2024-09-03T03:54:42Z' language: TypeScript archived: false stars: 42 watchers: 3 forks: 25 owner: atlassian logo: https://avatars.githubusercontent.com/u/168166?v=4 license: NOASSERTION repoEtag: '"1fbd150f7747408a9118ed22359661dbdab3b2888fdee20a6fb02048fd3630bd"' repoLastModified: Tue, 03 Sep 2024 03:54:42 GMT foundInMaster: true id: 70270b46839e1466d6a425a8da6ded65 - source: openapi3 tags repository: https://github.com/alexferl/echo-boilerplate v3: true id: d15d98fca8fb5baef974da4b37117de6 repositoryMetadata: base64Readme: >- IyBlY2hvLWJvaWxlcnBsYXRlIFshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9hbGV4ZmVybC9lY2hvLWJvaWxlcnBsYXRlKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2FsZXhmZXJsL2VjaG8tYm9pbGVycGxhdGUpIFshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9hbGV4ZmVybC9lY2hvLWJvaWxlcnBsYXRlL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2FsZXhmZXJsL2VjaG8tYm9pbGVycGxhdGUpCgpBIEdvIDEuMjIrIGJvaWxlcnBsYXRlIGFwcCB1c2luZyB0aGUgbWluaW1hbGlzdCBbZWNob10oaHR0cHM6Ly9naXRodWIuY29tL2xhYnN0YWNrL2VjaG8pIGZyYW1ld29yayBhbmQgd2l0aAphdXRoZW50aWNhdGlvbiwgYXV0aG9yaXphdGlvbiBhbmQgcmVxdWVzdC9yZXNwb25zZSB2YWxpZGF0aW9uLgoKPiAqKk5vdGUqKjogSSB1c2UgdGhpcyBhcyBhIHN0YXJ0aW5nIHBvaW50IGZvciBwZXJzb25hbCBwcm9qZWN0cywgaXQgY2FuIGFuZCB3aWxsIGNoYW5nZSB3aXRob3V0IG5vdGljZS4KCiMjIEZlYXR1cmVzCi0gW0pXVF0oaHR0cHM6Ly9qd3QuaW8vKSBmb3IgYXV0aGVudGljYXRpb24gd2l0aCBhY2Nlc3MgYW5kIFtyZWZyZXNoXShodHRwczovL2F1dGgwLmNvbS9ibG9nL3JlZnJlc2gtdG9rZW5zLXdoYXQtYXJlLXRoZXktYW5kLXdoZW4tdG8tdXNlLXRoZW0vKSB0b2tlbnMuCiBUaGUgYWNjZXNzIHRva2VuIGNhbiBiZSBzZW50IGluIHRoZSBbQXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9IZWFkZXJzL0F1dGhvcml6YXRpb24pIGhlYWRlciBvcgogYXMgYSBbY29va2llXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Nvb2tpZXMpLiBTZWUgW2VjaG8tand0XShodHRwczovL2dpdGh1Yi5jb20vYWxleGZlcmwvZWNoby1qd3QpLgotIFtDYXNiaW5dKGh0dHBzOi8vY2FzYmluLmlvLykgZm9yIGF1dGhvcml6YXRpb24gdXNpbmcgUkJBQy4gU2VlIFtlY2hvLWNhc2Jpbl0oaHR0cHM6Ly9naXRodWIuY29tL2FsZXhmZXJsL2VjaG8tY2FzYmluKS4KLSBbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHZhbGlkYXRpb24uIFNlZSBbZWNoby1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vYWxleGZlcmwvZWNoby1vcGVuYXBpKS4KCiMjIFJlcXVpcmVtZW50cwpCZWZvcmUgZ2V0dGluZyBzdGFydGVkLCBpbnN0YWxsIHRoZSBmb2xsb3dpbmc6CgpSZXF1aXJlZDoKLSBbcHJlLWNvbW1pdF0oaHR0cHM6Ly9wcmUtY29tbWl0LmNvbS8jaW5zdGFsbCkKLSBbTW9uZ29EQl0oaHR0cHM6Ly93d3cubW9uZ29kYi5jb20vZG9jcy9tYW51YWwvaW5zdGFsbGF0aW9uLyNtb25nb2RiLWluc3RhbGxhdGlvbi10dXRvcmlhbHMpCgpPcHRpb25hbDoKCi0gW2dvZnVtcHRdKGh0dHBzOi8vcGtnLmdvLmRldi9tdmRhbi5jYy9nb2Z1bXB0KSAobmVlZGVkIHRvIHJ1biBgbWFrZSBmbXRgKQotIFtyZWRvY2x5LWNsaV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9pbnN0YWxsYXRpb24vKSAobmVlZGVkIHRvIHJ1biBgbWFrZSBvcGVuYXBpLWxpbnRgKQoKIyMgVXNpbmcKU2V0dXAgdGhlIGRldiBlbnZpcm9ubWVudCBmaXJzdDoKYGBgc2hlbGwKbWFrZSBkZXYKYGBgCj4qKk5vdGUqKjogQW4gUlNBIHByaXZhdGUga2V5IHdpbGwgYmUgZ2VuZXJhdGVkIGluIHRoZSBjdXJyZW50IGZvbGRlciB0byBzaWduIGFuZCB2ZXJpZnkgdGhlIEpTT04gd2ViIHRva2Vucy4KCiMjIyBDcmVhdGluZyB0aGUgc3VwZXJ1c2VyCkxhdW5jaCB0aGUgc3VwZXJ1c2VyIGNtZCB3aXRoIGBnbyBydW4gLi9jbWQvc3VwZXJ1c2VyIC0tcGFzc3dvcmQgPHlvdXIgcGFzc3dvcmQ+YC4gWW91IGNhbiBjaGFuZ2UgdGhlIGRlZmF1bHQgdmFsdWVzCndpdGggdGhlIGZvbGxvd2luZyBmbGFnczogYC0tZW1haWxgLCBgLS1uYW1lYCBhbmQgYC0tdXNlcm5hbWVgLiBZb3UgY2FuIHZpZXcgYWxsIHRoZSBvdGhlciBzZXR0aW5ncyB3aXRoIGAtLWhlbHBgLgoKIyMjIEJ1aWxkaW5nICYgUnVubmluZyBsb2NhbGx5CmBgYHNoZWxsCm1ha2UgcnVuCmBgYAojIyMgVXNpbmcgdGhlIEFQSQojIyMjIExvZ2luClJlcXVlc3Q6CmBgYHNoZWxsCmN1cmwgLS1yZXF1ZXN0IFBPU1QgXAogIC0tdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6MTMyMy9hdXRoL2xvZ2luIFwKICAtLWhlYWRlciAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyBcCiAgLS1kYXRhICd7CgkiZW1haWwiOiAic3VwZXJAZXhhbXBsZS5jb20iLAoJInBhc3N3b3JkIjogIjx5b3VyIHBhc3N3b3JkPiIKfScKYGBgClJlc3BvbnNlOgpgYGBqc29uCnsKICAiYWNjZXNzX3Rva2VuIjogImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLiIsCiAgImV4cGlyZXNfaW4iOiAzNjAwLAogICJyZWZyZXNoX3Rva2VuIjogImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLiIsCiAgInRva2VuX3R5cGUiOiAiQmVhcmVyIgp9CmBgYAoqKk5vdGUqKjogVGhlIGBhY2Nlc3NfdG9rZW5gIG9ubHkgbGFzdHMgNjAgbWludXRlcyBieSBkZWZhdWx0LCB0aGlzIGlzIGFzIGRlc2lnbmVkLiBBIGNsaWVudAoobGlrZSBhbiBbU1BBXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TaW5nbGUtcGFnZV9hcHBsaWNhdGlvbikgb3IgYSBtb2JpbGUgYXBwbGljYXRpb24pIHdvdWxkIGhhdmUgYW4gaW50ZXJjZXB0b3IKdG8gY2F0Y2ggdGhlIDQwMSByZXNwb25zZXMsIHNlbmQgdGhlIGByZWZyZXNoX3Rva2VuYCB0byB0aGUgYC9hdXRoL3JlZnJlc2hgIGVuZHBvaW50IHRvIGdldCBuZXcgYWNjZXNzIGFuZCByZWZyZXNoIHRva2VucyBhbmQKdGhlbiByZXRyeSB0aGUgcHJldmlvdXMgcmVxdWVzdCB3aXRoIHRoZSBuZXcgYGFjY2Vzc190b2tlbmAgd2hpY2ggc2hvdWxkIHRoZW4gc3VjY2VlZC4gVGhlIGR1cmF0aW9uIG9mIHRoZSBgYWNjZXNzX3Rva2VuYApjYW4gYmUgbW9kaWZpZWQgd2l0aCBgLS1qd3QtYWNjZXNzLXRva2VuLWV4cGlyeWAgYW5kIHRoZSBgcmVmcmVzaF90b2tlbmAgd2l0aCBgLS1qd3QtcmVmcmVzaC10b2tlbi1leHBpcnlgLgoKIyMjIyBHZXQgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgdXNlcgpSZXF1ZXN0OgoKVXNpbmcgdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXI6CmBgYHNoZWxsCmN1cmwgLS1yZXF1ZXN0IEdFVCBcCiAgLS11cmwgaHR0cDovL2xvY2FsaG9zdDoxMzIzL21lIFwKICAtLWhlYWRlciAnQXV0aG9yaXphdGlvbjogQmVhcmVyIGV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLicKYGBgCgpVc2luZyB0aGUgY29va2llICh0aGUgY29va2llIGlzIHNlbnQgYXV0b21hdGljYWxseSB3aXRoIHdlYiBicm93c2VycywgSFRUUGllIGFuZCBzb21lIG90aGVyIGNsaWVudHMpOgpgYGBzaGVsbApjdXJsIC0tcmVxdWVzdCBHRVQgXAogIC0tdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6MTMyMy9tZSBcCiAgLS1jb29raWUgYWNjZXNzX3Rva2VuPWV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLgpgYGAKClJlc3BvbnNlOgpgYGBqc29uCnsKICAiaWQiOiAiY2RoZ2gwZGZjbHNjcGxucmN1YWciLAogICJ1c2VybmFtZSI6ICJzdXBlciIsCiAgImVtYWlsIjogInN1cGVyQGV4YW1wbGUuY29tIiwKICAibmFtZSI6ICJTdXBlciIsCiAgImJpbyI6ICIiLAogICJjcmVhdGVkX2F0IjogIjIwMjItMTEtMDNUMDA6MTc6MDUuODM3WiIsCiAgInVwZGF0ZWRfYXQiOiBudWxsCn0KYGBgCgojIyMgT3BlbkFQSSBkb2NzCllvdSBjYW4gc2VlIHRoZSBPcGVuQVBJIGRvY3MgYnkgcnVubmluZyB0aGUgYXBwIGFuZCBuYXZpZ2F0aW5nIHRvIGBodHRwOi8vbG9jYWxob3N0OjEzMjMvZG9jc2Agb3IgYnkKb3BlbmluZyBbYXNzZXRzL2luZGV4Lmh0bWxdKGRvY3MvaW5kZXguaHRtbCkgaW4geW91ciB3ZWIgYnJvd3Nlci4KCiMjIyBSZXBvc2l0b3J5IGxheW91dApgYGAKLgrilJzilIDilIAgY2FzYmluICAgIDwtLS0gbW9kZWwgYW5kIHBvbGljeSBmaWxlcyBmb3IgQ2FzYmluCuKUnOKUgOKUgCBjbWQgICAgICAgPC0tLSBlbnRyeXBvaW50cwrilJzilIDilIAgY29uZmlnICAgIDwtLS0gY29uZmlnIHN0cnVjdHMgYW5kIGRlZmF1bHRzIGFyZSBzcGVjaWZpZWQgaGVyZQrilJzilIDilIAgY29uZmlncyAgIDwtLS0gY29uZmlnIGZpbGVzLCBmb3IgY29uZmlncyB0aGF0IHJhcmVseSBjaGFuZ2UsIGJ1dCBzaG91bGQgb3ZlcnJpZGUgdGhlIGRlZmF1bHRzCuKUnOKUgOKUgCBkYXRhICAgICAgPC0tLSBiYXNlIG1hcHBlciwgZGF0YWJhc2UgaGVscGVycwrilJzilIDilIAgZG9jcyAgICAgIDwtLS0gZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gZnJvbSBPcGVuQVBJIHNjaGVtYQrilJzilIDilIAgaGFuZGxlcnMgIDwtLS0gSFRUUCBoYW5kbGVycyAoYWthIGNvbnRyb2xsZXJzLCBlbmRwb2ludHMgZXRjLikgdGhhdCBpbnRlcmFjdHMgd2l0aCB0aGUgc2VydmljZXMK4pSc4pSA4pSAIG1hcHBlcnMgICA8LS0tIG1hcHBlciBsYXllciB0aGF0IHRoZSBzZXJ2aWNlcyB1c2UgdG8gaW5zZXJ0L3JldHJpZXZlIG1vZGVscyBmcm9tIHRoZSBkYXRhYmFzZQrilJzilIDilIAgbW9kZWxzICAgIDwtLS0gc3RydWN0cyBkZWZpbmluZyB0aGUgdmFyaW91cyByZXNvdXJjZXMK4pSc4pSA4pSAIG9wZW5hcGkgICA8LS0tIE9wZW5BUEkgc2NoZW1hIGZpbGVzCuKUnOKUgOKUgCBzZXJ2ZXIgICAgPC0tLSBnbHVlcyBoYW5kbGVycy9zZXJ2aWNlcy9tYXBwZXJzCuKUnOKUgOKUgCBzZXJ2aWNlcyAgPC0tLSBzZXJ2aWNlIGxheWVyIHRoYXQgaW50ZXJhY3RzIHdpdGggdGhlIG1hcHBlcnMK4pSc4pSA4pSAIHRlc3RpbmcgICA8LS0tIHRlc3RpbmcgaGVscGVycwrilJTilIDilIAgdXRpbCAgICAgIDwtLS0gZ2VuZXJhbCBoZWxwZXJzCmBgYAoKIyMjIFVzYWdlCmBgYHNoZWxsCmdvIHJ1biAuL2NtZC9zZXJ2ZXIgLS1oZWxwCmBgYAoKYGBgClVzYWdlIG9mIC4vZWNoby1ib2lsZXJwbGF0ZToKICAgICAgLS1hcHAtbmFtZSBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbi4gKGRlZmF1bHQgImFwcCIpCiAgICAgIC0tYmFzZS11cmwgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlIFVSTCB3aGVyZSB0aGUgYXBwIHdpbGwgYmUgc2VydmVkIChkZWZhdWx0ICJodHRwOi8vbG9jYWxob3N0OjEzMjMiKQogICAgICAtLWNhc2Jpbi1tb2RlbCBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzYmluIG1vZGVsIGZpbGUgKGRlZmF1bHQgIi4vY2FzYmluL21vZGVsLmNvbmYiKQogICAgICAtLWNhc2Jpbi1wb2xpY3kgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzYmluIHBvbGljeSBmaWxlIChkZWZhdWx0ICIuL2Nhc2Jpbi9wb2xpY3kuY3N2IikKICAgICAgLS1jb29raWVzLWRvbWFpbiBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZXMgZG9tYWluCiAgICAgIC0tY29va2llcy1lbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kIGNvb2tpZXMgd2l0aCBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cwogICAgICAtLWNzcmYtY29va2llLWRvbWFpbiBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgQ1NSRiBjb29raWUgZG9tYWluCiAgICAgIC0tY3NyZi1jb29raWUtbmFtZSBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICBDU1JGIGNvb2tpZSBuYW1lIChkZWZhdWx0ICJjc3JmX3Rva2VuIikKICAgICAgLS1jc3JmLWVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTUkYgZW5hYmxlZAogICAgICAtLWNzcmYtaGVhZGVyLW5hbWUgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgQ1NSRiBoZWFkZXIgbmFtZSAoZGVmYXVsdCAiWC1DU1JGLVRva2VuIikKICAgICAgLS1jc3JmLXNlY3JldC1rZXkgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgIENTUkYgc2VjcmV0IHVzZWQgdG8gaGFzaCB0aGUgdG9rZW4KICAgICAgLS1lbnYtbmFtZSBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBlbnZpcm9ubWVudCBvZiB0aGUgYXBwbGljYXRpb24uIFVzZWQgdG8gbG9hZCB0aGUgcmlnaHQgY29uZmlncyBmaWxlLiAoZGVmYXVsdCAibG9jYWwiKQogICAgICAtLWh0dHAtYmluZC1hZGRyZXNzIGlwICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIElQIGFkZHJlc3MgdG8gbGlzdGVuIGF0LiAoZGVmYXVsdCAxMjcuMC4wLjEpCiAgICAgIC0taHR0cC1iaW5kLXBvcnQgdWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgcG9ydCB0byBsaXN0ZW4gYXQuIChkZWZhdWx0IDEzMjMpCiAgICAgIC0taHR0cC1jb3JzLWFsbG93LWNyZWRlbnRpYWxzICAgICAgICAgICAgICAgICAgICBUZWxscyBicm93c2VycyB3aGV0aGVyIHRvIGV4cG9zZSB0aGUgcmVzcG9uc2UgdG8gZnJvbnRlbmQgSmF2YVNjcmlwdCBjb2RlIHdoZW4gdGhlIHJlcXVlc3QncyBjcmVkZW50aWFscyBtb2RlIChSZXF1ZXN0LmNyZWRlbnRpYWxzKSBpcyAnaW5jbHVkZScuCiAgICAgIC0taHR0cC1jb3JzLWFsbG93LWhlYWRlcnMgc3RyaW5ncyAgICAgICAgICAgICAgICBJbmRpY2F0ZSB3aGljaCBIVFRQIGhlYWRlcnMgY2FuIGJlIHVzZWQgZHVyaW5nIGFuIGFjdHVhbCByZXF1ZXN0LgogICAgICAtLWh0dHAtY29ycy1hbGxvdy1tZXRob2RzIHN0cmluZ3MgICAgICAgICAgICAgICAgSW5kaWNhdGVzIHdoaWNoIEhUVFAgbWV0aG9kcyBhcmUgYWxsb3dlZCBmb3IgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzLiAoZGVmYXVsdCBbR0VULEhFQUQsUFVULFBBVENILFBPU1QsREVMRVRFXSkKICAgICAgLS1odHRwLWNvcnMtYWxsb3ctb3JpZ2lucyBzdHJpbmdzICAgICAgICAgICAgICAgIEluZGljYXRlcyB3aGV0aGVyIHRoZSByZXNwb25zZSBjYW4gYmUgc2hhcmVkIHdpdGggcmVxdWVzdGluZyBjb2RlIGZyb20gdGhlIGdpdmVuIG9yaWdpbi4gKGRlZmF1bHQgWypdKQogICAgICAtLWh0dHAtY29ycy1lbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGNyb3NzLW9yaWdpbiByZXNvdXJjZSBzaGFyaW5nLgogICAgICAtLWh0dHAtY29ycy1leHBvc2UtaGVhZGVycyBzdHJpbmdzICAgICAgICAgICAgICAgSW5kaWNhdGVzIHdoaWNoIGhlYWRlcnMgY2FuIGJlIGV4cG9zZWQgYXMgcGFydCBvZiB0aGUgcmVzcG9uc2UgYnkgbGlzdGluZyB0aGVpciBuYW1lLgogICAgICAtLWh0dHAtY29ycy1tYXgtYWdlIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kaWNhdGVzIGhvdyBsb25nIHRoZSByZXN1bHRzIG9mIGEgcHJlZmxpZ2h0IHJlcXVlc3QgY2FuIGJlIGNhY2hlZC4KICAgICAgLS1odHRwLWdyYWNlZnVsLXRpbWVvdXQgZHVyYXRpb24gICAgICAgICAgICAgICAgIFRpbWVvdXQgZm9yIGdyYWNlZnVsIHNodXRkb3duLiAoZGVmYXVsdCAzMHMpCiAgICAgIC0taHR0cC1sb2ctcmVxdWVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9scyB0aGUgbG9nZ2luZyBvZiBIVFRQIHJlcXVlc3RzIChkZWZhdWx0IHRydWUpCiAgICAgIC0taHR0cC10bHMtY2VydC1maWxlIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICBUTFMgY2VydGlmaWNhdGUgZmlsZQogICAgICAtLWh0dHAtdGxzLWtleS1maWxlIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgVExTIGtleSBmaWxlCiAgICAgIC0tand0LWFjY2Vzcy10b2tlbi1jb29raWUtbmFtZSBzdHJpbmcgICAgICAgICAgICBKV1QgYWNjZXNzIHRva2VuIGNvb2tpZSBuYW1lIChkZWZhdWx0ICJhY2Nlc3NfdG9rZW4iKQogICAgICAtLWp3dC1hY2Nlc3MtdG9rZW4tZXhwaXJ5IGR1cmF0aW9uICAgICAgICAgICAgICAgSldUIGFjY2VzcyB0b2tlbiBleHBpcnkgKGRlZmF1bHQgMWgwbTBzKQogICAgICAtLWp3dC1pc3N1ZXIgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSldUIGlzc3VlciAoZGVmYXVsdCAiaHR0cDovL2xvY2FsaG9zdDoxMzIzIikKICAgICAgLS1qd3QtcHJpdmF0ZS1rZXkgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgIEpXVCBwcml2YXRlIGtleSBmaWxlIHBhdGggKGRlZmF1bHQgIi4vcHJpdmF0ZS1rZXkucGVtIikKICAgICAgLS1qd3QtcmVmcmVzaC10b2tlbi1jb29raWUtbmFtZSBzdHJpbmcgICAgICAgICAgIEpXVCByZWZyZXNoIHRva2VuIGNvb2tpZSBuYW1lIChkZWZhdWx0ICJyZWZyZXNoX3Rva2VuIikKICAgICAgLS1qd3QtcmVmcmVzaC10b2tlbi1leHBpcnkgZHVyYXRpb24gICAgICAgICAgICAgIEpXVCByZWZyZXNoIHRva2VuIGV4cGlyeSAoZGVmYXVsdCA3MjBoMG0wcykKICAgICAgLS1sb2ctbGV2ZWwgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBncmFudWxhcml0eSBvZiBsb2cgb3V0cHV0cy4gVmFsaWQgbGV2ZWxzOiAnUEFOSUMnLCAnRkFUQUwnLCAnRVJST1InLCAnV0FSTicsICdJTkZPJywgJ0RFQlVHJywgJ1RSQUNFJywgJ0RJU0FCTEVEJyAoZGVmYXVsdCAiSU5GTyIpCiAgICAgIC0tbG9nLW91dHB1dCBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb3V0cHV0IHRvIHdyaXRlIHRvLiAnc3Rkb3V0JyBtZWFucyBsb2cgdG8gc3Rkb3V0LCAnc3RkZXJyJyBtZWFucyBsb2cgdG8gc3RkZXJyLiAoZGVmYXVsdCAic3Rkb3V0IikKICAgICAgLS1sb2ctd3JpdGVyIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBsb2cgd3JpdGVyLiBWYWxpZCB3cml0ZXJzIGFyZTogJ2NvbnNvbGUnIGFuZCAnanNvbicuIChkZWZhdWx0ICJjb25zb2xlIikKICAgICAgLS1tb25nb2RiLWFwcC1uYW1lIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgIE1vbmdvREIgYXBwIG5hbWUKICAgICAgLS1tb25nb2RiLWNvbm5lY3QtdGltZW91dC1tcyBkdXJhdGlvbiAgICAgICAgICAgIE1vbmdvREIgY29ubmVjdCB0aW1lb3V0IG1zIChkZWZhdWx0IDEwcykKICAgICAgLS1tb25nb2RiLXBhc3N3b3JkIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgIE1vbmdvREIgcGFzc3dvcmQKICAgICAgLS1tb25nb2RiLXJlcGxpY2Etc2V0IHN0cmluZyAgICAgICAgICAgICAgICAgICAgIE1vbmdvREIgcmVwbGljYSBzZXQKICAgICAgLS1tb25nb2RiLXNlcnZlci1zZWxlY3Rpb24tdGltZW91dC1tcyBkdXJhdGlvbiAgIE1vbmdvREIgc2VydmVyIHNlbGVjdGlvbiB0aW1lb3V0IG1zIChkZWZhdWx0IDEwcykKICAgICAgLS1tb25nb2RiLXNvY2tldC10aW1lb3V0LW1zIGR1cmF0aW9uICAgICAgICAgICAgIE1vbmdvREIgc29ja2V0IHRpbWVvdXQgbXMgKGRlZmF1bHQgMzBzKQogICAgICAtLW1vbmdvZGItdXJpIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9uZ29EQiBVUkkgKGRlZmF1bHQgIm1vbmdvZGI6Ly9sb2NhbGhvc3Q6MjcwMTciKQogICAgICAtLW1vbmdvZGItdXNlcm5hbWUgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgTW9uZ29EQiB1c2VybmFtZQogICAgICAtLW9hdXRoMi1nb29nbGUtY2xpZW50LWlkIHN0cmluZyAgICAgICAgICAgICAgICAgT0F1dGgyIEdvb2dsZSBjbGllbnQgaWQKICAgICAgLS1vYXV0aDItZ29vZ2xlLWNsaWVudC1zZWNyZXQgc3RyaW5nICAgICAgICAgICAgIE9BdXRoMiBHb29nbGUgY2xpZW50IHNlY3JldAogICAgICAtLW9hdXRoMi1wcm92aWRlcnMgc3RyaW5ncyAgICAgICAgICAgICAgICAgICAgICAgT0F1dGgyIHByb3ZpZGVycwogICAgICAtLW9wZW5hcGktc2NoZW1hIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlbkFQSSBzY2hlbWEgZmlsZSAoZGVmYXVsdCAiLi9vcGVuYXBpL29wZW5hcGkueWFtbCIpCmBgYAoKIyMjIERvY2tlcgojIyMjIEJ1aWxkCmBgYHNoZWxsCm1ha2UgZG9ja2VyLWJ1aWxkCmBgYAoKIyMjIyBSdW4KYGBgc2hlbGwKbWFrZSBkb2NrZXItcnVuCmBgYAoKIyMjIyBQYXNzaW5nIGFyZ3MKQ0xJOgpgYGBzaGVsbApkb2NrZXIgcnVuIC1wIDEzMjM6MTMyMyAtLXJtIGVjaG8tYm9pbGVycGxhdGUgLS1lbnYtbmFtZSBwcm9kCmBgYAoKRW52aXJvbm1lbnQgdmFyaWFibGVzOgpgYGBzaGVsbApkb2NrZXIgcnVuIC1wIDEzMjM6MTMyMyAtZSAiQVBQX0VOVl9OQU1FPXByb2QiIC0tcm0gZWNoby1ib2lsZXJwbGF0ZQpgYGAK readmeEtag: '"6174ccf8149a1263cc989f9972cc2c3f11fcad87"' readmeLastModified: Sun, 07 Apr 2024 22:53:32 GMT repositoryId: 161701098 description: >- Boilerplate for the Echo framework with authentication, authorization and request/response validation. created: '2018-12-13T22:16:36Z' updated: '2024-08-09T09:21:57Z' language: Go archived: false stars: 42 watchers: 2 forks: 16 owner: alexferl logo: https://avatars.githubusercontent.com/u/3533424?v=4 license: MIT repoEtag: '"1071e38e66406e817f0110b545f75f21cec48cc32046b958d4d93ebdd3d25be1"' repoLastModified: Fri, 09 Aug 2024 09:21:57 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/backbase/backbase-openapi-tools v3: true repositoryMetadata: base64Readme: >- IVtCdWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL0JhY2tiYXNlL2JhY2tiYXNlLW9wZW5hcGktdG9vbHMvd29ya2Zsb3dzL0JPQVQvYmFkZ2Uuc3ZnKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jb20uYmFja2Jhc2Uub3NzJTNBYmFja2Jhc2Utb3BlbmFwaS10b29scyZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jb20uYmFja2Jhc2Uub3NzJTNBYmFja2Jhc2Utb3BlbmFwaS10b29scykKWyFbTXZuIENlbnRyYWxdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9jb20uYmFja2Jhc2Uub3NzL2JhY2tiYXNlLW9wZW5hcGktdG9vbHMvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9jb20uYmFja2Jhc2Uub3NzL2JvYXQtbWF2ZW4tcGx1Z2luKQojIEJhY2tiYXNlIE9wZW5BcGkgVG9vbHMgCgpUaGUgQmFja2Jhc2UgT3BlbiBBUEkgVG9vbHMgaXMgYSBjb2xsZWN0aW9uIG9mIHRvb2xzIGNyZWF0ZWQgdG8gd29yayBlZmZpY2llbnRseSB3aXRoIE9wZW5BUEkKCkl0IGN1cnJlbnRseSBjb25zaXN0cyBvZgoKKiBDcmVhdGUgRGlmZiBSZXBvcnQgYmV0d2VlbiAyIE9wZW5BUEkgdmVyc2lvbnMgb2YgdGhlIHNhbWUgc3BlYyAoQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3F1ZW4yNDA0L29wZW5hcGktZGlmZikKKiBEZWNvbXBvc2UgVHJhbnNmb3JtZXIgdG8gcmVtb3ZlIENvbXBvc2VkIFNjaGVtYXMgZnJvbSBPcGVuQVBJIHNwZWNzIHRvIGFpZCBpbiBjb2RlIGdlbmVyYXRvcnMKKiBDYXNlIFRyYW5zZm9ybWVyIHRvIHZpZXcgaG93IHlvdXIgQVBJIGxvb2tzIGxpa2Ugd2hlbiBnb2luZyBmcm9tIENhbWVsIENhc2UgdG8gU25ha2UgQ2FzZSAgKHRyYW5zZm9ybXMgZXhhbXBsZXMgdG9vKQoqIFtDb2RlIEdlbmVyYXRvcl0oYm9hdC1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kKSBiYXNlZCBvbiBbb3BlbmFwaS1nZW5lcmF0b3IudGVjaF0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoLykgd2l0aCBvcHRpbWl6ZWQgdGVtcGxhdGVzIGFuZCBmaXhlcy4KKiBMaW50IG1vam8gYmFzZWQgb24gWmFsYW5kbyBaYWxseSBhbmQgQmFja2Jhc2UgQVBJCgojIFJlbGVhc2UgTm90ZXMKQk9BVCBpcyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCBhbmQgc3ViamVjdCB0byBjaGFuZ2UuCiMjIDAuMTcuNDYKKiBib2F0LXNjYWZmb2xkCiAgKiBFbmhhbmNlZCBJU084NjAxIERhdGUgRm9ybWF0dGluZyB3aXRoIEZyYWN0aW9uYWwgU2Vjb25kcyBTdXBwb3J0IGZvciBTd2lmdCB0ZW1wbGF0ZS4KICAgICogVGhlIGBPcGVuSVNPODYwMURhdGVGb3JtYXR0ZXJgIHRlbXBsYXRlIG5vdyBzdXBwb3J0cyBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIElTTzg2MDEgZGF0ZXMgd2l0aCBub25lLCBvbmUsIG9yIG11bHRpcGxlIGZyYWN0aW9uYWwgc2Vjb25kcyBpbiBTd2lmdCA1LiBUaGlzIGVuaGFuY2VtZW50IHByb3ZpZGVzIGdyZWF0ZXIgZmxleGliaWxpdHkgYW5kIHByZWNpc2lvbiB3aGVuIHdvcmtpbmcgd2l0aCBkYXRlIGFuZCB0aW1lIHZhbHVlcywgYWNjb21tb2RhdGluZyB2YXJpb3VzIHVzZSBjYXNlcyB0aGF0IHJlcXVpcmUgZGlmZmVyZW50IGxldmVscyBvZiBmcmFjdGlvbmFsIHNlY29uZCBhY2N1cmFjeS4KIyMgMC4xNy4zNgoqIExpbnQgcnVsZSBgQjAxNGAgZG9lc24ndCB0aHJvdyBhIG51bGwgZXhjZXB0aW9uIHdoZW4gcGFyc2luZyBhIHN0cmluZyBhcnJheSBwcm9wZXJ0eSBpbiBhIHNjaGVtYS4gIAojIyAwLjE3LjM1CiogSVNTVUU6ICM3NzYgYWRkIG5ldyBsaW50IHJ1bGUgYEIwMTRgIC0gdG8gdmFsaWRhdGUgaWYgZXhhbXBsZXMgY29udGFpbiBhbGwgZGVmaW5lZCBwcm9wZXJ0aWVzIGluIHRoZSBzY2hlbWEKKiBCT0FUIG5vdyBzdXBwb3J0cyBtdWx0aXBsZSBhY2Nlc3MgY29udHJvbCBwZXJtaXNzaW9ucyB3aXRoaW4gdGhlIHRhZyBgeC1CYkFjY2Vzc0NvbnRyb2xzYCBpbiB0aGUgT3BlbkFQSSBzcGVjLiAKSXQgY29udGFpbnMgdHdvIHBhcmFtZXRlcnMgYGRlc2NyaXB0aW9uYCB3aGljaCBkZXNjcmliZXMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBwZXJtaXNzaW9ucyBhbmQgYHBlcm1pc3Npb25zYCAKd2hpY2ggaXMgYW4gYXJyYXkgb2YgcGVybWlzc2lvbnMgd2l0aCB0YWdzIGByZXNvdXJjZWAsIGBmdW5jdGlvbmAgYW5kIGBwcml2aWxlZ2VgLiAKKiBJbXByb3ZlIGdlbmVyYXRlZCBjbGllbnQgQ2xhc3MgTmFtZQoqIEZpeCBKYWthcnRhIG5hdGl2ZSBjbGllbnQgZ2VuZXJhdGlvbiBvcHRpb25zCiMjIDAuMTcuMzAKKiBBbmd1bGFyIDE3CiMjIDAuMTcuMjkKKiBGaXhlZCBTcHJpbmcgZGVwcmVjYXRpb25zCiMjIDAuMTcuMjQKKiBib2F0LXNwcmluZwogICogRml4IFtJbmNvbnNpc3RlbnQgQENvbXBvbmVudCBmb3IgUmVzdFRlbXBsYXRlXShodHRwczovL2dpdGh1Yi5jb20vQmFja2Jhc2UvYmFja2Jhc2Utb3BlbmFwaS10b29scy9pc3N1ZXMvNjYxKQojIyAwLjE3LjIzCiogKkJvYXQgRW5naW5lKgogICogQWRkZWQgc3VwcG9ydCBmb3IgYnl0ZSBhcnJheSBleGFtcGxlcwoqICpCb2F0IFNjYWZmb2xkKgogICogUmVtb3ZlZCB0YWcgaW1wb3J0IGluIG9yZGVyIHRvIGFsbG93IEJPQVQgb2JqZWN0cyB0byBoYXZlIHRoZSBuYW1lICd0YWcnCiMjIDAuMTcuMjIKKiBib2F0LW1hdmVuLXBsdWdpbgogICogSXNzdWUgMjExOiBGaXggdHlwbyBpbiBjaGFuZ2Vsb2dSZW5kZXJlciBwYXJhbWV0ZXIgaW4gRGlmZk1vam8uamF2YSAoIzY1MikgQHRhbGJvdAojIyAwLjE3LjIxCiogYm9hdC1zcHJpbmcsIGJvYXQtamF2YQogICogSXNzdWUgNjQ5OiBtaXNzaW5nIEJpZ0RlY2ltYWxDdXN0b21TZXJpYWxpemVyLmphdmEgKCM2NTApIEB3YWxhbmlhbQoqIEJPQVQgQW5kcm9pZCAoIzYzNykgQGNoYXJiZWxta2gKIyMgMC4xNy4xOAoqIGJvYXQtc3ByaW5nCiAgKiBGaXggW1JlZ3Jlc3Npb24gb24gcHV0dGluZyB2YWxpZCBhbm5vdGF0aW9uIG9uIEZRQ04saHR0cHM6Ly9naXRodWIuY29tL0JhY2tiYXNlL2JhY2tiYXNlLW9wZW5hcGktdG9vbHMvaXNzdWVzLzYxOV0KICAqIEZpeCBbQnJva2VuIHBvam8gZmllbGQgdmFsaWRhdGlvbnMsIGh0dHBzOi8vZ2l0aHViLmNvbS9CYWNrYmFzZS9iYWNrYmFzZS1vcGVuYXBpLXRvb2xzL2lzc3Vlcy82MzNdCiAgKiBGaXggQWRkIGBATm90TnVsbGAgZm9yIHJlcXVpcmVkIHByb3BlcnRpZXMuCiAgKiBGaXggaW5pdGlhdGlvbiBvZiBgcmVxdWlyZWRgIHByb3BlcnR5IHRoYXQgaGFzIGBhZGRpdGlvbmFsUHJvcGVydGllc2AgKGdlbmVyYXRlZCBhcyBNYXApIHdoZW4gdXNpbmcgYGNvbnRhaW5lckRlZmF1bHRUb051bGw9dHJ1ZWAKICAqIEZpeCBbYGNyZWF0ZUFwaUNvbXBvbmVudGAgb3B0aW9uIGluIHNwcmluZ3RlbXBsYXRlIGdlbmVyYXRvciBpcyBpZ25vcmVkXShodHRwczovL2dpdGh1Yi5jb20vQmFja2Jhc2UvYmFja2Jhc2Utb3BlbmFwaS10b29scy9pc3N1ZXMvNjMwKQogICogRml4IGh0dHBzOi8vZ2l0aHViLmNvbS9CYWNrYmFzZS9iYWNrYmFzZS1vcGVuYXBpLXRvb2xzL2lzc3Vlcy82MzUKICAqIEZpeCBbTGlzdCBvZiBNYXBzIG9mIFN0cmluZ3MgZ2VuZXJhdGVkIGNvZGUgZG9lcyBub3QgY29tcGlsZS4gLGh0dHBzOi8vZ2l0aHViLmNvbS9CYWNrYmFzZS9iYWNrYmFzZS1vcGVuYXBpLXRvb2xzL2lzc3Vlcy82NDddCiMjIDAuMTcuMTYKKiBCT0FUIEFuZ3VsYXIgR2VuZXJhdG9yCiAgKiBhZGRlZCBgQGFuZ3VsYXIvY29tbW9uYCBhcyBwZWVyIGRlcGVuZGVuY3kgaW4gdGhlIGdlbmVyYXRlZCBwYWNrYWdlLmpzb24gZmlsZXMKICAqIHJlcGxhY2UgdXNhZ2VzIG9mIGBpc0xpc3RDb250YWluZXJgIHdpdGggYGlzQXJyYXlgIGluIGFwaS5zZXJ2aWNlIHRlbXBsYXRlCiMjIDAuMTcuMTUKKiBib2F0LXNwcmluZwogICogZml4OiBpbmNvcnJlY3RseSB1c2VkIGVudW0gcGFyYW0gb24gY29sbGVjdGlvbiBpdGVtcyAoc2VlIGBjb2xsZWN0aW9uRGF0YVR5cGVQYXJhbS5tdXN0YWNoZWApCiMjIDAuMTcuMTQKKiBib2F0LXNwcmluZwogICogYWRkZWQgdmFsaWRhdGlvbiBjb25zdHJhaW50cyBvbiBwcmltaXRpdmUgY29sbGVjdGlvbiBpdGVtcyB0eXBlcyBpbiByZXF1ZXN0IHBhcmFtcyAoc2VlIGBjb2xsZWN0aW9uRGF0YVR5cGVQYXJhbS5tdXN0YWNoZWApCiAgKiBhZGRlZCB2YWxpZGF0aW9uIGNvbnN0cmFpbnRzIG9uIHByaW1pdGl2ZSBtYXAgdmFsdWUgdHlwZXMgKHNlZSBgbWFwRGF0YVR5cGUubXVzdGFjaGVgKSAKIyMgMC4xNy4xMwoqIGJvYXQtc3ByaW5nCiAgKiBGaXg6IGdlbmVyYXRlIHZhbGlkYXRpb24gY29uc3RyYWludHMgb24gcHJpbWl0aXZlIGNvbGxlY3Rpb24gaXRlbXMgdHlwZXMgKHVwZGF0ZXMgaW4gcG9qby5tdXN0YWNoZSBhbmQgbmV3IGNvbGxlY3Rpb25EYXRhVHlwZS5tdXN0YWNoZSkKIyMgMC4xNy4xMgoqIEJvYXRKYXZhQ29kZUdlbiwgQm9hdFNwcmluZ0NvZGVHZW4KICAqIEZpeDogQWx3YXlzIGdlbmVyYXRlIGNvbGxlY3Rpb24gaW5pdGlhbGl6ZXIgd2hlbiBhcnJheSBpcyByZXF1aXJlZCBpbiB0aGUgc2NoZW1hIChldmVuIGlmIGNvbnRhaW5lckRlZmF1bHRUb051bGw9dHJ1ZSkKICAqIEZpeDogW3ZhbGlkYXRlZCBwb2pvIHJlZmVyZW5jZWQgY2xhc3MgY2F1c2VzIGludmFsaWQgY29kZSB0byBiZSBnZW5lcmF0ZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9CYWNrYmFzZS9iYWNrYmFzZS1vcGVuYXBpLXRvb2xzL2lzc3Vlcy82MTUpCiAgKiBGaXg6IGJvYXQtamF2YSBwb2pvIHRlbXBsYXRlIHRvIHN1cHBvcnQgYHVzZVdpdGhNb2RpZmllcmAgdG8gZ2VuZXJhdGUgYHdpdGhTb21ldGhpbmdgIG1ldGhvZHM7IGZpeGVzIHJlZmVyZW5jaW5nICdjb21tb24nIGNsYXNzZXMgZ2VuZXJhdGVkIHVzaW5nIGJvYXQtc3ByaW5nIHRlbXBsYXRlcy4KIyMgMC4xNy4xMQoqIEJvYXRKYXZhQ29kZUdlbiwgQm9hdFNwcmluZ0NvZGVHZW4KICAqIEZpeDogYWx3YXlzIGdlbmVyYXRlIGNvbGxlY3Rpb24gaW5pdGlhbGl6ZXIgd2hlbiBhcnJheSBpcyByZXF1aXJlZCBpbiB0aGUgc2NoZW1hIChldmVuIGlmIGNvbnRhaW5lckRlZmF1bHRUb051bGw9dHJ1ZSkKIyMgMC4xNy4xMAoqIEJvYXQgbWF2ZW4gcGx1Z2luCiAgKiBGaXg6IFdoZW4gdXNpbmcgTXVsdGlwYXJ0LCBnZW5lcmF0ZSB3aXRoIGBAUmVxdWVzdFBhcnRgIGluc3RlYWQgb2YgYEBSZXF1ZXN0UGFyYW1gCiMjIDAuMTcuOQoqIEJvYXQgTWF2ZW4gcGx1Z2luCiAgKiBGaXg6IFtjb250YWluZXJEZWZhdWx0VG9OdWxsPXRydWUgaXMgbm90IGJhY2t3YXJkIGNvbXBhdGlibGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9CYWNrYmFzZS9iYWNrYmFzZS1vcGVuYXBpLXRvb2xzL2lzc3Vlcy82MDQpCiMjIDAuMTcuOAoqIEJvYXQgU3ByaW5nIGdlbmVyYXRvcgogICogRml4OiBbU2VyaWFsaXphdGlvbiAvIGRlc2VyaWFsaXphdGlvbiBpc3N1ZXMgb2YgSnNvblN1YlR5cGVzIGR1ZSB0byBpbmNvcnJlY3QgdXNhZ2Ugb2YgSnNvbklnbm9yZVByb3BlcnRpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9CYWNrYmFzZS9iYWNrYmFzZS1vcGVuYXBpLXRvb2xzL2lzc3Vlcy82MDEpCiMjIDAuMTcuNwoqIEJvYXQgbWF2ZW4gcGx1Z2luCiAgKiBGaXg6IEFkZGVkICdjb250YWluZXJEZWZhdWx0VG9OdWxsJyBkZWZhdWx0IG9wdGlvbiB0byB0aGUgTU9KTyBnZW5lcmF0b3IKIyMgMC4xNy42CiogQm9hdCBlbmdpbmUKICAqIEZpeDogUHJvY2Vzc2luZyBvZiBhIHNpbmdsZSBzdHJpbmcgdHlwZSBleGFtcGxlIG9uIG1lZGlhLXR5cGUuCiMjIDAuMTcuNAoqIEJvYXQgQW5ndWxhciBnZW5lcmF0b3IKICAqIE5ldyBmb3JtYXQgZm9yIEFuZ3VsYXIgbW9ja3MsIHdoaWNoIGFyZSBub3cgZXhwb3J0IGFuIGFycmF5IHdpdGggcmVzcG9uc2VzLgojIyAwLjE3LjMKKiBCb2F0IEFuZ3VsYXIgZ2VuZXJhdG9yCiAgKiBNYXAgdGhlIGBTZXRgIHR5cGUgdG8gYEFycmF5YCBieSBkZWZhdWx0IHRvIGF2b2lkIGJyZWFraW5nIGNoYW5nZXMgdnMgY2xpZW50cyBnZW5lcmF0ZWQgd2l0aCAwLjE2LnguIAojIyAwLjE3LjIKKiBCb2F0IEFuZ3VsYXIgZ2VuZXJhdG9yCiAgKiBSZW1vdmUgbGVhZGluZyBjb21tZW50IGZyb20gdHlwZXNjcmlwdCBmaWxlcyBzbyB0aGF0IHRoZXJlIGFyZSBmZXdlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIGZpbGVzIHdoZW4gcmVnZW5lcmF0aW5nIHdpdGggYSBuZXcgc3BlYyB2ZXJzaW9uIChpbmZvIG1vdmVkIHRvIFJFQURNRSkKICAqIFJlbW92ZSBsaWNlbmNlIGZpZWxkIGZyb20gcGFja2FnZS5qc29uCiMjIDAuMTcuMQoqIEJvYXQgQW5ndWxhciBnZW5lcmF0b3IKICAqIEFkZGVkIGFydGlmYWN0IGluZm9ybWF0aW9uIHRvIGdlbmVyYXRlZCBwYWNrYWdlLmpzb24KIyMgMC4xNy4wCiogR2VuZXJhbAogICogUmVtb3ZlZCBSQU1MIFN1cHBvcnQKICAqIFJlbW92ZWQgY3VzdG9tIEphdmFTY3JpcHQgY2xpZW50CiAgKiBVcGRhdGUgT3BlbkFQSSBUb29scyB0byA2LjIuMQoqIEJvYXQgSmF2YSBHZW5lcmF0b3IKICAqIEpha2FydGEgRUUgOSBjb21wYXRpYmlsaXR5CiAgKiBgc3ByaW5nLW12Y2AgbGlicmFyeSBpcyByZW1vdmVkIGJlY2F1c2UgaXQgaXMgbm90IHN1cHBvcnRlZCBieSBPcGVuQVBJIFRvb2xzIGFueW1vcmUKICAqIFVzZSBvZiBgU2V0YCBmb3IgdW5pcXVlIGl0ZW1zIGlzIG5vdyBlbmFibGVkIGJ5IGRlZmF1bHQgYXMgT3BlbkFQSSBHZW5lcmF0b3IgZml4ZWQgdGhlaXIgaW1wbGVtZW50YXRpb24KIyMgMC4xNi4xNQoqIEJvYXQgZW5naW5lCiAgKiBGaXg6IFByb2Nlc3Npbmcgb2YgYSBzaW5nbGUgc3RyaW5nIHR5cGUgZXhhbXBsZSBvbiBtZWRpYS10eXBlLgoqIEJvYXQgQW5ndWxhciBnZW5lcmF0b3IKICAqIE5ldyBmb3JtYXQgZm9yIEFuZ3VsYXIgbW9ja3MsIHdoaWNoIGFyZSBub3cgZXhwb3J0IGFuIGFycmF5IHdpdGggcmVzcG9uc2VzLgojIyAwLjE2LjEzCiogQm9hdCBBbmd1bGFyIGdlbmVyYXRvcgogICogYEBhbmd1bGFyL2NvbW1vbmAgYWRkZWQgYXMgYSBwZWVyIGRlcGVuZGVuY3kgaW4gdGhlIGdlbmVyYXRlZCBwYWNrYWdlLmpzb24gZmlsZXMKIyMgMC4xNi4xMgoqIEJvYXQgQW5ndWxhciBnZW5lcmF0b3IKICAqIFJlbW92ZSBsZWFkaW5nIGNvbW1lbnQgZnJvbSB0eXBlc2NyaXB0IGZpbGVzIHNvIHRoYXQgdGhlcmUgYXJlIGZld2VyIGRpZmZlcmVuY2VzIGJldHdlZW4gZmlsZXMgd2hlbiByZWdlbmVyYXRpbmcgd2l0aCBhIG5ldyBzcGVjIHZlcnNpb24gKGluZm8gbW92ZWQgdG8gUkVBRE1FKQogICogUmVtb3ZlIGxpY2VuY2UgZmllbGQgZnJvbSBwYWNrYWdlLmpzb24KIyMgMC4xNi4xMQoqIEJvYXQgQW5ndWxhciBnZW5lcmF0b3IKICAqIFNldCBgcmVtb3ZlQ29tbWVudHM6IGZhbHNlYCBpbiBnZW5lcmF0ZWQgdHNjb25maWcuanNvbiBmaWxlcyB0byByZXRhaW4gYC8qI19fUFVSRV9fKi9gIGFubm90YXRpb24gaW4gY29tcGlsZWQgSlMuCiMjIDAuMTYuMTAKKiBCb2F0IEFuZ3VsYXIgZ2VuZXJhdG9yCiAgKiBSZW1vdmUgdHlwZXMgZnJvbSBnZW5lcmF0ZWQgbW9jayBwcm92aWRlcnMgZHVlIHRvIGEgVHlwZVNjcmlwdCB3aGljaCBwcmV2ZW50cyBgLyojX19QVVJFX18qL2AgYW5ub3RhdGlvbiBmcm9tIHdvcmtpbmcKIyMgMC4xNi45CiogQm9hdCBBbmd1bGFyIGdlbmVyYXRvcgogICogVXNlIG9mIGAvKiNfX1BVUkVfXyovYCBmb3IgYGNyZWF0ZU1vY2tzYCBmdW5jdGlvbiBjYWxsIGluIHRlbXBsYXRlcyB0byBlbmFibGUgdHJlZS1zaGFraW5nCiMjIDAuMTYuNgoqIEJvYXQgQW5ndWxhciBnZW5lcmF0b3IKICAqIFVzZSBgXmAgaW5zdGVhZCBvZiBgPj1gIGZvciBgZGV2RGVwZW5kZW5jaWVzYCBpbiB0aGUgZ2VuZXJhdGVkIHByb2plY3QsIHNvIHByb2plY3Qgd2lsbCBiZSBidWlsdCB1c2luZyBjb3JyZWN0IHRhcmdldCB2ZXJzaW9uIG9mIG5nLXBhY2thZ3IgJiB0aGUgQW5ndWxhciBDTEkKICAqIERlY2xhcmUgc29tZSBleHRyYSBgZGV2RGVwZW5kZW5jaWVzYCBhdCBleHBsaWNpdCB2ZXJzaW9ucyB0byBmaXggYG5wbSBpbnN0YWxsYCBpc3N1ZXMgaW4gdGhlIGdlbmVyYXRlZCBwcm9qZWN0IHdoZW4gdXNpbmcgYG5wbWAgdjgKIyMgMC4xNi41CiogQm9hdCBBbmd1bGFyIGdlbmVyYXRvcgogICogQWxsb3cgYW55IGZvcm1hdCBmb3Igc3BlYyB2ZXJzaW9ucy4KIyMgMC4xNi40CiogQm9hdCBBbmd1bGFyIGdlbmVyYXRvcgogICogQWRkIGFiaWxpdHkgdG8gYmFrZSB0aGUgc3BlYyB2ZXJzaW9uIHVzZWQgaW4gdGhlIHBhY2thZ2UuanNvbiBmaWxlLgojIyAwLjE2LjMKKiAqTWF2ZW4gUGx1Z2luKgogICogRG8gbm90IHRyZWF0IHNwYWNlcyBhcyBkZWxpbWl0ZXJzIGluIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB3aGljaCB0YWtlIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdmFsdWVzLgogICAgRml4ZXMgYW4gaXNzdWUgdGhhdCBwcmV2ZW50ZWQgdGhlIHVzZSBvZiB0YWcgbmFtZXMgY29udGFpbmluZyBzcGFjZXMgaW4gdGhlIGBhcGlzVG9HZW5lcmF0ZWAgcHJvcGVydHkuCiMjIDAuMTYuMgoqIEJvYXQgQW5ndWxhciBnZW5lcmF0b3IKICAqIFNwZWNpZnkgbWluaW11bSBBbmd1bGFyLXJlbGF0ZWQgcGFja2FnZSB2ZXJzaW9ucyB3aGVuIEFuZ3VsYXIgdjEzIGlzIHVzZWQKIyMgMC4xNi4xCiogQm9hdCBKYXZhIGdlbmVyYXRvcgogICogSmF2YSAxNyBjb21wYXRpYmlsaXR5IHVwZGF0ZQojIyAwLjE2LjAKKiBCb2F0IEFuZ3VsYXIgZ2VuZXJhdG9yCiAgKiBVc2UgYD49YCBmb3IgbWFpbiBwZWVyIGRlcGVuZGVuY3kgdG8gaW1wcm92ZSBmb3J3YXJkIGNvbXBhdGliaWxpdHkKIyMgMC4xNS44CiogKkJvYXQgU2NhZmZvbGQqCiAgKiBNYWtlcyBzdXJlIHRvIG5vdCBhdXRvZ2VuZXJhdGUgZXhhbXBsZXMgZnJvbSBzY2hlbWEgaWYgZXhhbXBsZXMgYXJlIGFscmVhZHkgcHJlc2VudAojIyAwLjE1LjYKKiAqTWF2ZW4gUGx1Z2luKgogICogQWRkIGV4YW1wbGUgb2YgdXNlIHRoZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgbGlrZSBjcmVhdGVBcGlDb21wb25lbnQKKiAqQm9hdCBBbmd1bGFyIGdlbmVyYXRvcioKICAqIEdlbmVyYXRlIHRoZSBgbmctcGFja2FnZS5qc29uYCBmaWxlIGZvciB1c2Ugd2l0aCB0aGUgYG5nLXBhY2thZ2VgIENMSQojIyAwLjE1LjUKKiAqQm9hdCBMaW50KgogKiBCdW1wZWQgdmVyc2lvbiBvZiBaYWxseSBMaW50aW5nIExpYnJhcmllcyB0aGF0IGNvbnRhaW4gc2V2ZXJhbCB2dWxuZXJhYmlsaXR5IGZpeGVzCiMjIDAuMTUuNAoqICpCb2F0IEFuZ3VsYXIgZ2VuZXJhdG9yKgogICogRW5hYmxlIHBhcnRpYWwgSXZ5IGNvbXBpbGF0aW9uIGZvciBsaWJyYXJpZXMuCiMjIDAuMTUuMwoqICpCb2F0IFNjYWZmb2xkKgogKiBBIGZpeCBmb3IgbWFwcGluZyBvZiBNYXAgZm9yIHF1ZXJ5IHBhcmFtcyAoaW4gY2xpZW50IGNvZGUpLiAKIyMgMC4xNS4yCiogKk1hdmVuIFBsdWdpbioKICAqIEZpeGVkIGhhbmRsaW5nIG9mIGFic29sdXRlIGZpbGUgcGF0aHMgZm9yIGxpbnRpbmcgT3BlbkFQSSBzcGVjcwogICogQ2hhbmdlZCBib2F0LWJheSBkYXRlTGlicmFyeSBmb3IgdXBsb2FkIHNwZWMgLgojIyAwLjE1LjEKKiAqTWF2ZW4gUGx1Z2luKgogICogTWFkZSBgYm9hdDpyYWRpb2AgZ29hbCBwcm9wZXJ0aWVzIHcuci50IGJvYXQtYmF5IHNlcnZlciB1bmlxdWUuCiMjIDAuMTUuMAoqICpNYXZlbiBQbHVnaW4qCiAgKiBBZGRlZCBuZXcgZ29hbCBgYm9hdDpyYWRpb2A7IHNlZSB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIFtwbHVnaW4gKipkb2N1bWVudGF0aW9uKipdKGJvYXQtbWF2ZW4tcGx1Z2luL1JFQURNRS5tZCNib2F0cmFkaW8pLgojIyAwLjE0LjEyCiogKkJvYXQgU2NhZmZvbGQqCiAgKiBSZWZlcmVuY2VzIHRvIC9leGFtcGxlcy9mb28gbm93IGFyZSBhbHNvIGRlcmVmZXJlbmNlZAojIyAwLjE0LjEwCiogKkJvYXQgU2NhZmZvbGQqCiAgKiBNYWtlcyBzdXJlIHRvIFVSTERlY29kZSBwYXRocyB3aGlsZSBkZXJlZmVyZW5jaW5nIGV4YW1wbGVzCiMjIDAuMTQuOQoqICpCb2F0IFNjYWZmb2xkKgogICogUmVzb2x2ZSByZWZlcmVuY2VzIHRvIG90aGVyIHBhdGggb3BlcmF0aW9ucycgZXhhbXBsZXMKCiMjIDAuMTQuOAoqICpCb2F0IE1hcmluYSoKICAqIFJlbW92ZXMgZmxhdE9iamVjdHMgYXMgdGhleSBhcmUgbm8gbG9uZ2VyIG5lZWRlZAogICogcmVzcG9uc2UubWVzc2FnZSB3YXMgd3JvbmdmdWxseSBlc2NhcGVkLCBlc2NhcGluZyBpbiB0aGUgZG9jcyB0ZW1wbGF0ZSBpbnN0ZWFkCiAgKiBXZSBubyBsb25nZXIgbmVlZCB0byBnZW5lcmF0ZSBtb2RlbCBhbGlhc2VzIGluIGJvYXQgbWFyaW5hCiMjIDAuMTQuNwoqICpCb2F0IE1hcmluYSoKICAqIEV4cG9ydHMgZmxhdE9iamVjdHMgYXMgYSBtb2RlbCB0byBwcmV2ZW50IGVycm9ycyB3aXRoIHJlZmVyZW5jZXMKIyMgMC4xNC42IAoqICpNYXZlbiBQbHVnaW4qCiAgKiBBZGRlZCBgYm9hdDpzaGlwYCBtb2pvIHRvIGF1dG9tYWdpY2FsbHkgemlwIHNwZWNzIGZvdW5kIGluIGBzcmMvbWFpbi9yZXNvdXJjZXNgIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHByb2plY3QgcmVhY3RvciBzbyBgbXZuIGluc3RhbGxgIG9yIGBtdm4gZGVwbG95YCB3aWxsIGFsc28gaW5jbHVkZSBhIHppcCBhcmNoaXZlIG9mIHRoZSBwcm9qZWN0IHdpdGggd2l0aCBgYXBpYCBjbGFzc2lmaWVyCiAgKiBDaGFuZ2VkIGBib2F0OmJ1bmRsZWAgIGBpbmNsdWRlc2AgcGFyYW1ldGVyIHRvIGFuIGFycmF5IG9mIHBhdHRlcm5zIHRvIGFsbG93IHJlY3Vyc2l2ZSBwYXR0ZXJzIHRvIGRpc2NvdmVyIE9wZW5BUElzIAoqICpCb2F0IFNjYWZmb2xkKgogICogRml4ZWQgYnVnIGluIHR5cGVzY3JpcHQgZ2VuZXJhdG9yIHdoZXJlIG9ubHkgb25lIG9mIHRoZSBvdmVybG9hZGVkIGZ1bmN0aW9uIHNpZ25hdHVyZXMgcGVyIGRlcHJlY2F0ZWQgZW5kcG9pbnQgd2FzIG1hcmtlZCBhcyBkZXByZWNhdGVkLgoKCiMjIDAuMTQuNQoqICpCb2F0IE1hcmluYSoKICAqIEFkZGVkIGBib2F0LW1hcmtlcnNgIGRpcmVjdG9yeSBpbiB0YXJnZXQgdG8ga2VlcCB0cmFjayBvZiBzdWNjZXNzZnVsIGFuZCB1bnN1Y2Nlc3NmdWwgYWN0aW9ucyBvbiBPcGVuQVBJIHNwZWNzCgojIyAwLjE0LjQKCiogKkJvYXQgTWFyaW5hKgogICogQWRkZWQgYSBub3cgQk9BVCBTY2FmZm9sZCB0ZW1wbGF0ZSBjYWxsZWQgTWFyaW5hLCBhcyB0aGF0IGlzIHdoZXJlIHRoZSBtb2RlbHMgaGFuZyBvdXQuIFRoZSBCb2F0IE1hcmluYSB0ZW1wbGF0ZSBvdXRwdXRzIGEgc2luZ2xlIEpTT04gZmlsZSB0aGF0IGlzIHVzZWQgdG8gb2ZmZXIgYSByaWNoIHVzZXIgaW50ZXJmYWNlIGJ1aWx0IGZyb20gdGhlIHNwZWNzIGluY2x1ZGluZyBzZWFyY2gsIHBhZ2UgcGVyIG9wZXJhdGlvbiBhbmQgbWFueSBtb3JlIGZlYXR1cmVzIQoKKiAqTWF2ZW4gUGx1Z2luKgogICAgKiBUaGUgYm9hdDpkb2MgZ29hbCBub3cgcmVjdXJzaXZlbHkgc2VhcmNoIE9wZW5BUEkgc3BlY3MgaW4gYSBkaXJlY3RvcnkgdG8gZ2VuZXJhdGUgZG9jcyBmb3IgZWFjaCBmb3VuZCBzcGVjLiAgCgojIyAwLjE0LjMKCiogKk1hdmVuIFBsdWdpbioKICAqIEFkZGVkIG5ldyBnb2FsIGBib2F0OnRyYW5zZm9ybWA7IHNlZSB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIFtwbHVnaW4gZG9jdW1lbnRhdGlvbl0oYm9hdC1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kI2JvYXR0cmFuc2Zvcm0pLgoKIyMgMC4xNC4yCiogKkFuZ3VsYXIgR2VuZXJhdG9yKgogICogQWRkZWQgc3VwcG9ydCBmb3IgQW5ndWxhciB2ZXJzaW9uIHJhbmdlcyBpbiBwZWVyIGRlcGVuZGVuY2llcwogIAojIyAwLjE0LjEKKiAqQW5ndWxhciBHZW5lcmF0b3IqCiAgKiBBZGRlZCBzdXBwb3J0IGZvciBBbmd1bGFyIDExCiAgCiMjIDAuMTQuMAoqICpBbmd1bGFyIEdlbmVyYXRvcioKICAqIFNpbXBsaWZ5IEFuZ3VsYXIgZ2VuZXJhdG9yIG9wdGlvbnMgYnkgcmVtb3ZpbmcgdGhlIHVudXNlZCBvbmVzICh3aXRoSW50ZXJmYWNlcyxwcm92aWRlZEluUm9vdCkKICAqIGZpeCBNb2NrIGlzIG5vdCBnZW5lcmF0ZWQgaWYgSHR0cCBzdGF0dXMgZXF1YWxzIHRvIDIwMSAoU0RLLTIzODgpCgojIyAwLjEzLjAKKiAqTGludCoKICAqIEFkZGVkIHJ1bGVzLiAKICAgICogQ2hlY2sgcGx1cmFscyBvbiBwYXRocyByZXNvdXJjZSBuYW1lcy4gCiAgICAqIENoZWNrIHByZWZpeCBmb3IgcGF0aHMgc2hvdWxkIGNvbnRhaW4gdmVyc2lvbi4KICAqIEVuYWJsZWQgcnVsZXMuCiAgICAqIFVzZSBTdGFuZGFyZCBIVFRQIFN0YXR1cyBDb2Rlcy4KCiMjIDAuMTIuMAoqICpHZW5lcmFsKgogICogSW1wcm92ZWQgY29kZSBxdWFsaXR5CiAgKiBBZGRlZCBtb3JlIHVuaXQgdGVzdHMKICAqIEFkZGVkIG1vcmUgcmVhbGlzdGljIGV4YW1wbGUgcHJvamVjdHMgaW4gYm9hdC1tYXZlbi1wbHVnaW4KICAqIEFkZGVkIGhlbHA6ZGVzY3JpYmUgc3VwcG9ydCBmb3IgYm9hdC1tYXZlbi1wbHVnaW4KICAqIEZpeGVkIGJ1aWxkaW5nIGluIFdpbmRvd3MgCiogKkJvYXQgRG9jcyoKICAqIFJlbmRlciByZXNwb25zZSBleGFtcGxlcyBmcm9tIHJlc3BvbnNlIGluc3RlYWQgb2Ygc2NoZW1hIG9iamVjdAoqICpMaW50KgogICogQWRkZWQgYWRkaXRpb25hbCBydWxlcy4gCiAgICAqIENoZWNrIHgtaWNvbiB2YWx1ZSBpbiB0aGUgaW5mbyBibG9jay4KICAgICogQ2hlY2sgaW5mbyBibG9jayBkZXNjcmlwdGlvbi4KICAgICogQ2hlY2sgdGFncyBhbGxvd2VkLgogICAgKiBDaGVjayBpbmZvIGJsb2NrIHRpdGxlLgogICAgKiBDaGVjayBwcmVmaXggZm9yIHBhdGhzLiBpLmUuICJjbGllbnQtYXBpIiwgInNlcnZpY2UtYXBpIiwgImludGVncmF0aW9uLWFwaSIKICAqIElnbm9yZSBaYWxhbmRvIFJ1bGVzZXQgYnkgZGVmYXVsdCBpbiBib2F0LW1hdmVuLXBsdWdpbgogIAojIyAwLjExLjQKKiAqSmF2YSBUZW1wbGF0ZXMqCiAgKiBDb3JyZWN0IHRoZSBpbXBvcnQgYW5kIHVzZSBvZiBAUXVhbGlmaWVyIGluIEFwaUNsaWVudCB0ZW1wbGF0ZQogICogT25seSBjaGFuZ2UgYmFzZSB0eXBlIHdoZW4gZGF0ZSB1c2VTZXRGb3JVbmlxdWVOYW1lcyBpcyBzZXQgdHJ1ZQogICAgCiogKkJvYXQgRG9jcyoKICAqIEhhbmRsZSBleGFtcGxlcyBmb3IgTWVkaWFUeXBlcyB3aXRob3V0IFNjaGVtYXMgKHN1Y2ggYXMgdGV4dC9jc3YpCiAgCiMjIDAuMTEuMwoKKiAqQW5ndWxhciBHZW5lcmF0b3IqCiAgKiBBcHBseSB0aGUgY29ycmVjdCByZXR1cm4gdHlwZSB3aGVuIG11bHRpcGxlIHJlc3BvbnNlcyBhcmUgcHJlc2VudAogICogR2VuZXJhdGUgbW9ja3MgZm9yIGV4YW1wbGVzIGRlZmluZWQgaW4gZGVyZWZlcmVuY2VkIHNjaGVtYXMKICAKIyMgMC4xMS4xCgoqICpKYXZhIEdlbmVyYXRvciAtIGJvYXQtc3ByaW5nIGxpYnJhcnkqCiAgKiBGaXhlZCByZWFjdGl2ZSBzcHJpbmcgdGVtcGxhdGVzCiAgKiBBdm9pZCBpbXBvcnRpbmcgYEh0dHBTZXJ2bGV0UmVzcG9uc2VgIHdoZW4gdXNpbmcgcmVhY3RpdmUKKiAqQW5ndWxhciBHZW5lcmF0b3IqCiAgKiBIYW5kbGUgZW1wdHkgYm9kaWVzIHByb3Blcmx5IGluIE1vY2sgZ2VuZXJhdGlvbgogICogVXBkYXRlIGZvdW5kYXRpb24tYW5nIHRvIGxhdGVzdCB2ZXJzaW9uCgojIyAwLjExLjAKCiogKk1hdmVuIFBsdWdpbioKICAgKiBBZGRlZCBgcmVtb3ZlRXh0ZW5zaW9uc2AgbW9qbyBwYXJhbWV0ZXIgdG8gYGJvYXQ6YnVuZGxlYCB0byBmaWx0ZXIgb3V0IHRoZSBnaXZlbiB2ZW5kb3IgZXh0ZW5zaW9ucyBmcm9tIGJ1bmRsZS4KICAgKiBBZGRlZCBgaW5jbHVkZXNgIG1vam8gcGFyYW1ldGVyIHRvIGBib2F0OmJ1bmRsZWAgYXMgYSBnbG9iIHBhdHRlcm4gc2VsZWN0aW5nIHRoZSBzcGVjaWZpY2F0aW9uIGZpbGVzIChkZWZhdWx0cyB0byBgKi55YW1sYCkuCiAgICogQWRkZWQgYGFwaXNUb0dlbmVyYXRlYCBtb2pvIHBhcmFtZXRlciB0byBgYm9hdDpnZW5lcmF0ZWAKICAgKiBTZXQgdGhlIGRlZmF1bHQgb2YgYGh0dHBVc2VyQWdlbnRgIHRvIGAke3Byb2plY3QuYXJ0aWZhY3RJZH0tJHtwcm9qZWN0LnZlcnNpb259YC4KCiogKkphdmEgR2VuZXJhdG9yIC0gcmVzdHRlbXBsYXRlIGxpYnJhcnkqCiAgKiBBZGRlZCBgdXNlV2l0aE1vZGlmaWVyc2Agb3B0aW9uIHRvIHVzZSB0aGUgYHdpdGhgIHByZWZpeCBmb3IgUE9KTyBtb2RpZmllcnMgKGRlZmF1bHRzIHRvIGBmYWxzZWApLgogICogYWRkZWQgYHVzZVNldEZvclVuaXF1ZUl0ZW1zYCB0byBtYXAgYXJyYXlzIGNvbnRhaW5pbmcgYHVuaXF1ZUl0ZW1zYCB0byBgU2V0YCAoZGVmYXVsdHMgdG8gYGZhbHNlYCkuCiAgKiBBZGRlZCBgdXNlQ2xhc3NMZXZlbEJlYW5WYWxpZGF0aW9uYCBvcHRpb24gKGRlZmF1bHRzIHRvIGBmYWxzZWApLgogICogQWRkZWQgYHVzZUphY2tzb25Db252ZXJzaW9uYCB0byB1c2UgSmFja3NvbiBmb3IgcGFyYW1ldGVycyBjb252ZXJzaW9uIGluc3RlYWQgb2YgYHRvU3RyaW5nYCAoZGVmYXVsdHMgdG8gYGZhbHNlYCkuCiAgKiBBZGRlZCBgcmVzdFRlbXBsYXRlQmVhbk5hbWVgIHRvIHF1YWxpZnkgdGhlIGF1dG93aXJlZCBSZXN0VGVtcGxhdGUgYmVhbi4KCiogKkFuZ3VsYXIgR2VuZXJhdG9yKgogICogQWRkZWQgYW4gQW5ndWxhciBjbGllbnQgZ2VuZXJhdG9yIGZvciB2ZXJzaW9uIDEwIGFuZCB1cC4gCiAgICBUaGUgZ2VuZXJhdG9yIHRlbXBsYXRlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBzdGFuZGFyZCBvbmUgYXQgW29wZW5hcGktZ2VuZXJhdG9yLnRlY2hdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC8pLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBtb2NrIHJlc3BvbnNlcyBhbmQgYSBzZXZlcmFsIGZpeGVzLCBhbW9uZyB3aGljaDoKICAgICogSGFuZGxpbmcgb2YgcmVzZXJ2ZWQgdHlwZXNjcmlwdCB3b3JkcwogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBUeXBlc2NyaXB0IGFuZCBKYXZhc2NyaXB0IGZvciBlc2NhcGluZyBvZiBzdHJpbmdzIGluIGdlbmVyYXRvcnMKICAgICogRXNjYXBpbmcgb2YgbW9kZWwgcHJvcGVydGllcyB3aGVuIG5vdCB1c2luZyBgY2FtZWxDYXNlYAogICAgKiBTdXBwb3J0IGZvciBtdWx0aXBsZSBgTWVkaWFUeXBlc2AKICAqIFRvIGVuYWJsZSBtb2NrcyBnZW5lcmF0aW9uLCBzZXQgdGhlIGB3aXRoTW9ja3NgIG9wdGlvbiB0byBgdHJ1ZWAgIAoKIyMgMC4xMC4wCiogKk1hdmVuIFBsdWdpbioKICAgKiBgYm9hdDpsaW50YCBtb2pvIHdpbGwgZ2VuZXJhdGUgYW4gSFRNTCByZXBvcnQgYmFzZWQgb24gQVBJIEd1aWRlbGluZXMgCiAgICogYGJvYXQ6ZG9jc2AgbW9qbyB3aWxsIGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbiBmcm9tIE9wZW5BUEkgc2hvd2luZyBtdWx0aXBsZSBleGFtcGxlcyBhbmQgcmVxdWVzdHMgYXMgd2VsbCBhcyBDdXN0b20gQW5ub3RhdGlvbnMKKiBHZW5lcmFsIEJ1ZyBGaXhlcwoqIExpbnRpbmcgUnVsZSBFbmdpbmUgZXh0ZW5kZWQgd2l0aCByZXNlcnZlZCB3b3JkIGxpbnRpbmcKKiAqKk5PVEUqKjogVGhlIGxpbnQgcnVsZXMgYXJlIHN0aWxsIGluIGRldmVsb3BtZW50LiBUaGUgZG9jdW1lbnRhdGlvbiBpcyBzdGlsbCBpbiB0aGUgd29ya3MuIAoKIyMgMC45LjAKKiAqTWF2ZW4gUGx1Z2luKgogICogQWRkZWQgYHZlcnNpb25gIHBhcmFtZXRlciB0byBgYnVuZGxlYCBnb2FsLgogICogQWRkZWQgYGJ1bmRsZVNwZWNzYCBwYXJhbWV0ZXIgdG8gYGdlbmVyYXRlYCBnb2FsIHRvIGF1dG9tYXRpY2FsbHkgYnVuZGxlIHNwZWNzIGludG8gc2luZ2xlIGZpbGUKKiBNb2Rlcm5pc2VkIEJPQVQgVGVybWluYWwKKiBJbXByb3ZlZCBCT0FUOkRvY3MgVGVtcGxhdGVzCiogUHJvcGVybHkgZGVyZWZlcmVuY2UgZXhhbXBsZXMKCiMjIDAuOC4wCiogSW1wcm92ZWQgc3R5bGluZyBIVE1MIGRvY3MKKiBwcmV2aWV3IEJPQVQ6UVVBWSBsaW50aW5nIG1vam8gZm9yIGxpbnRpbmcgT3BlbkFQSSBzcGVjcy4KKiBBdm9pZCBjaXJjdWxhciByZWZlcmVuY2VzIHdoZW4gZGVyZWZlbmVuY2luZyBPcGVuQVBJIHNwZWNzCgojIyAwLjcuMAoqIFJlbmRlciBtdWx0aXBsZSByZXF1ZXN0cyBhbmQgZXhhbXBsZXMgaW4gYm9hdC1kb2NzCiogQ3JlYXRlZCBIVE1MIHRlbXBsYXRlcyBmb3IgYm9hdC1kb2NzCiogUHJldHR5IFByaW50IEpTT04gRXhhbXBsZXMKKiBBZGRlZCBib2F0OmRvYyBtb2pvIGZvciBnZW5lcmF0aW5nIGJlYXV0aWZ1bCBIVE1MMiBkb2NzCgoqICogU3ByaW5nIEdlbmVyYXRvcioKICAqIFJlc3RvcmVkIGBIdHRwU2VydmxldFJlcXVlc3RgIHBhcmFtZXRlciAocmVncmVzc2lvbikuCiogQWRkZWQgYm9hdDp5YXJkIHRvIGNyZWF0ZSBzdGF0aWMgd2Vic2l0ZSBiYXNlZCBvbiBhIGNvbGxlY3Rpb24gb2Ygc3BlY3MKCiMjIDAuNi4wCiogc2ltcGxlIGZpeCB0byBjaGVjayBmb3IgbnVsbCB2YWx1ZSBpbiBvcGVuQXBpLmdldENvbXBvbmVudHMoKS5nZXRTY2hlbWFzKCkKKiBhYmlsaXR5IHRvIHJlc29sdmUgcmVmZXJlbmNlcyBsaWtlICMvY29tcG9uZW50cy9zY2hlbWFzL215T2JqZWN0L2l0ZW1zIG9yICMvY29tcG9uZW50cy9zY2hlbWFzL215T2JqZWN0L3Byb3BlcnRpZXMvZW1iZWRkZWRPYmplY3QKKiBzaW1wbGUgZml4IHRvIGF2b2lkIG5wZSBpbiBTdGF0aWNIdG1sMkdlbmVyYXRpb24gZXNjYXBpbmcgcmVzcG9uc2UgbWVzc2FnZS4KCiMjIDAuNS4wCgoqIEFkZCBEZXJlZmVyZW5jZUNvbXBvbmVudHNQcm9wZXJ0aWVzVHJhbnNmb3JtZXIgKHRoYXQgZG9lcyBhIGJpdCBleHRyYSkKKiBGaXggcmVjdXJzaXZlIHJlZmVyZW5jaW5nIGluIFVuQWxpYXNUcmFuc2Zvcm1lcgoKIyMgMC40LjAKKiBBZGRlZCBidW5kbGUgc2tpcAoqIENoYW5nZWQgbnVtYmVyaW5nIHNjaGVtZQoKIyMgMC4zLjAKCiogKk1hdmVuIFBsdWdpbioKICAqIEFkZGVkIGBidW5kbGUuc2tpcGAgcGFyYW1ldGVyIHRvIGBidW5kbGVgIGdvYWwgKGRlZmF1bHRzIHRvIGZhbHNlKS4KCiogKkhUTUwyIEdlbmVyYXRvcioKICAqIFJlbW92ZXMgZXhhbXBsZXMKICAqIEFkZHMgdGl0bGUgb2YgQVBJIHRvIHRoZSBsZWZ0IG5hdmlnYXRpb24KICAqIFJlbW92ZXMgdW5uZWNlc3Nhcnkgc3BhY2VzIGluIHRoZSBkb2NzCiAgKiBGaXhlcyBpdGVtIGZvY3VzIG9uIGxlZnQgbmF2aWdhdGlvbgogICogVXBkYXRlcyBKc29uIFNjaGVtYSBSZWYgUGFyc2VyIGxpYnJhcnkKICAqIFVwZGF0ZXMgSnNvbiBzY2hlbWEgdmlldyBsaWJyYXJ5CiAgKiBBZGRzIHN1cHBvcnQgZm9yIGFsbE9mIHdpdGggSnNvbiBzY2hlbWEgbWVyZ2UgYWxsIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9tb2trYWJvbm5hL2pzb24tc2NoZW1hLW1lcmdlLWFsbG9mCiAgKiBGaXhlcyBoZWFkZXIgeC0gcGFyYW1zIGJlaW5nIGVzY2FwZWQuIGVnIFgtVG90YWwtQ291bnQgdG8gWE1pbnVzVG90YWxNdW5pc0NvdW50CiAgKiBGaXhlcyBtYXJrZG93biBpbiBkZXNjcmlwdGlvbiBub3QgYmVpbmcgZXNjYXBlZCBhbmQgYnJlYWtpbmcgamF2YXNjcmlwdC4KICAqIEZpeGVzIG1pc3NpbmcgcmVmZXJlbmNlcyB0byBleHRlbmRlZCBzaW1wbGUgdHlwZXMgKHNldCBgdW5BbGlhc2Agb3B0aW9uIHRvIHRydWUpLgogICogRml4ZXMgbWlzc2luZyByZWZlcmVuY2VzIGJlY2F1c2UgY29uZnVzaW9uIG92ZXIgd2hldGhlciB0byByZWZlcmVuY2UgbmFtZSBvciBjbGFzc25hbWUuCiAgKiBNb3ZlZCB0aGUgY29kZSBnZW5lcmF0aW9uIGludG8gYSBzZXBhcmF0ZSBtb2R1bGUgdG8gYmUgdXNlZCBieSBvdGhlciBCT0FUIGNvbXBvbmVudHMuCiAgKiBDbGVhbmluZyB1cCBkZXBlbmRlbmNpZXMKICAqIEFkZGVkIGJvYXQ6YnVuZGxlIG1vam8gdG8gYnVuZGxlIGZyYWdtZW50cyBpbnRvIGEgc2luZ2xlIHNwZWMuCiAgKiBib2F0OmJ1bmRsZSB1bmFsaWFzZXMgdGhlIHNwZWMuIAoKKiAqU3ByaW5nIEdlbmVyYXRvcioKICAqIEFkZGVkIGB1c2VXaXRoTW9kaWZpZXJzYCB0byB1c2UgdGhlIGB3aXRoYCBwcmVmaXggZm9yIFBPSk8gbW9kaWZpZXJzIChkZWZhdWx0cyB0byBgZmFsc2VgOyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQgUkFNTCBnZW5lcmF0b3IgbXVzdCBiZSBzZXQgdG8gYHRydWVgKS4KICAqIEZpeGVkIHgtYWJzdHJhY3QgZXh0ZW5zaW9uIChub3QgZ2VuZXJhdGVkKQogICogUmVzZXQgdGhlIGRlZmF1bHRzIG9mIHRoZSBvcHRpb25zIGFkZGVkIGluIDAuMi43IHRvIGF2b2lkIGJyZWFraW5nIGNoYW5nZXMuCiAgICAtIHVzZUxvbWJva0Fubm90YXRpb25zOiBmYWxzZQogICAgLSBvcGVuQXBpTnVsbGFibGU6IHRydWUKICAgIC0gdXNlU2V0Rm9yVW5pcXVlSXRlbXM6IGZhbHNlCgojIyAwLjIuNwoKKiAqU3ByaW5nIEdlbmVyYXRvcioKICAqIGFkZGVkIGluLWNvbnRhaW5lciB2YWxpZGF0aW9uLCBlLmcuIGBMaXN0PEBTaXplKG1heCA9IDM2KSBTdHJpbmc+YCAoc2VlIFtKU1ItMzgwIC0gQ29udGFpbmVyIGVsZW1lbnQgY29uc3RyYWludHNdKGh0dHBzOi8vYmVhbnZhbGlkYXRpb24ub3JnLzIuMC9zcGVjLyNjb25zdHJhaW50ZGVjbGFyYXRpb252YWxpZGF0aW9ucHJvY2Vzcy1jb250YWluZXJlbGVtZW50Y29uc3RyYWludHMpKS4KICAqIGFkZGVkIHZlbmRvciBleHRlbnNpb25zOiBgeC1hYnN0cmFjdGAsIGB4LWltcGxlbWVudHNgLgogICogYWRkZWQgYHVzZUxvbWJva0Fubm90YXRpb25zYCBvcHRpb24gKGRlZmF1bHRzIHRvIGB0cnVlYCkKICAqIGFkZGVkIGBvcGVuQXBpTnVsbGFibGVgIG9wdGlvbiAodGFrZW4gZnJvbSA1LjAsICBicmVha2luZyBjaGFuZ2UsIGRlZmF1bHRzIHRvIGBmYWxzZWAsIHNldCB0byBgdHJ1ZWAgaWYgbm90IHJlYWR5KS4KICAqIGFkZGVkIGB1c2VTZXRGb3JVbmlxdWVJdGVtc2AgdG8gbWFwIGFycmF5cyB3aXRoIGB1bmlxdWVJdGVtc2AgdG8gYFNldGAgaW5zdGVhZCBvZiBgTGlzdGAgKGJyZWFraW5nIGNoYW5nZSwgZGVmYXVsdHMgdG8gYHRydWVgLCBzZXQgdG8gYGZhbHNlYCBpZiBub3QgcmVhZHkpLgogICogYWRkZWQgYGFkZGl0aW9uYWxEZXBlbmRlbmNpZXNgIHRvIGJlIHVzZWQgaW4gYHNwcmluZy1ib290L3BvbS5tdXN0YWNoZWAgdGVtcGxhdGUuCiAgKiBmb3JtYXR0ZWQgbWV0aG9kIHBhcmFtZXRlcnMuCgoqICpNYXZlbiBQbHVnaW4qCiAgKiBhZGRlZCBgYWRkVGVzdENvbXBpbGVTb3VyY2VSb290YCB3aGljaCBhZGRzIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHRvIHRoZSBwcm9qZWN0IGFzIGEgdGVzdCBzb3VyY2Ugcm9vdC4KICAqIGFkZGVkIGBhcGlOYW1lU3VmZml4YCB0byBjdXN0b21pc2UgdGhlIG5hbWUgb2YgdGhlIEFQSSBpbnRlcmZhY2UuCiAgKiBjb3JyZWN0ZWQgYGdlbmVyYXRvck5hbWVgIHByb3BlcnR5IHRvIHBvaW50IHRvIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uZ2VuZXJhdG9yTmFtZWAuCiAgKiBmaXhlZCB0aGUgY29kZSBnZW5lcmF0ZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZSBgTWFwYCBpbiBtb2RlbC4KICAqIHJlZmFjdG9yZWQgYEdlbmVyYXRlTW9qb2Agc28gYG12biBib2F0OmdlbmVyYXRlIC1EY29kZWdlbi5jb25maWdIZWxwIC1Eb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmdlbmVyYXRvck5hbWU9c3ByaW5nYCB3b3JrcyBjb3JyZWN0bHkuCiAgKiB0ZXN0IHRoZSBnZW5lcmF0ZWQgY29kZSBpbiB0aGUgaW50ZWdyYXRpb24gdGVzdCBwaGFzZQoKIyMgMC4yLjYKKiBFbnN1cmUgUkFNTCB0cmFpdHMgdGhhdCBhcmUgY29udmVydGVkIHRvIE9BUyBleHRlbnNpb25zIGFyZSBhbGwgdXNpbmcgbG93ZXIgY2FzZS4gCgojIyAwLjIuNSAKKiBGaXhlZCBhIGJ1ZyBob3cgZHVwbGljYXRlIG5hbWVzIGFyZSBnZW5lcmF0ZWQgaWYgUkFNTCBzb3VyY2UgaGFzIGR1cGxpY2F0ZSBuYW1lcyBmb3IgcmVmZXJlbmNlcy4gVGhlIHBhcmVudCByZXNvdXJjZSBuYW1lIGlzIG5vdyBwcmVwZW5kZWQgdG8gdGhlIHNjaGVtYSBuYW1lIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBwYXJlbnQgcmVzb3VyY2UgbmFtZQoqIEZpeGVkIGEgYnVnIHdoZW4gaW4gUkFNTCByZXNvdXJjZXMgd2VyZSBpbmxpbmUgcmVmZXJlbmNlcyBpbnN0ZWFkIG9mIGdsb2JhbCB0eXBlIHJlZmVyZW5jZXMgZm9yIFJlcXVlc3QgQm9kaWVzIGNhdXNpbmcgUmVzcG9uc2UgU2NoZW1hcyBiZWluZyByZWZlcmVuY2VkIGFzIFJlcXVlc3QgQm9kaWVzCgojIyAwLjIuNCAtIEJyZWFraW5nIENoYW5nZSEKKiAqKkNoYW5nZWQgaG93IG9wZXJhdGlvbklkcyBhcmUgZ2VuZXJhdGVkKiouIFRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBlbmRlZCB1cCBnZW5lcmF0aW5nIHZlcnkgbG9uZyBhbmQgY29uZnVzaW5nIG5hbWVzLiAKICAgIFRoZSBpbXByb3ZlZCBnZW5lcmF0b3IgZ3JlYXRseSBpbXByb3ZlcyB0aGUgbmFtZXMgb2Ygb3BlcmF0aW9uSWQgd2hlbiBjb252ZXJ0aW5nIGZyb20gUkFNTCB0byBPQVMzCiogRGVmYXVsdCB2ZXJzaW9uIG9mIE9wZW5BUEkgaXMgbm93ICoqMy4wLjMqKgoqIEdlbmVyYXRlZCBTVFVCUyBhbmQgQ2xpZW50cyBtdXN0IGJlIHJlZmFjdG9yZWQgdG8gdXNlIHRoZSBuZXcgbmFtZXMhIEl0IHNob3VsZCBub3QgYWZmZWN0IHRoZSBuYW1lcyBvZiBTY2hlbWFzIGNvbnZlcnRlZCBmcm9tIFJBTUwuIAoKCiMjIDAuMi4zCiogVXNlIFJBTUwgRGlzcGxheSBOYW1lIGFzIFN1bW1hcnkgb24gSHR0cCBPcGVyYXRpb25zIHdoZW4gY29udmVydGluZyB0byBPQVMzCiogQWxzbyBpbmNsdWRlIGludGVncmF0aW9uLXNwZWMgYW5kIGFydGlmYWN0cyBlbmRpbmcgb24gc3BlY3MgYXMgZGVmYXVsdCBmb3IgY29udmVyc2lvbiB1c2luZyBgZXhwb3J0LWRlcGAKKiBGaXggSFRNTDIgVGl0bGVzCgojIyAwLjIuMgoqIEZpeGVkIGVudW0gY29udmVyc2lvbi4gRW1wdHkgZW51bXMgYXJlIG5vdyBzZXQgdG8gbnVsbCBhZ2FpbiB3aGVuIGNvbnZlcnRpbmcgZnJvbSByYW1sIHRvIE9wZW5BUEkKKiBBZGRlZCBtb3JlIHJvYnVzdCBjb2RlIGdlbiBtb2pvcwoKCiMjIDAuMi4xCiogSW1wcm92ZWQgT3BlbiBBUEkgRGlmZgoqIFNvbmFyIEZpeGVzIAoKIyMgMC4yLjAKKiBDcmVhdGVkIG5ldyBDb2RlIEdlbmVyYXRpb24gTW9qb3Mgd2l0aCBvcGluaW9uYXRlZCBzZXR0aW5ncyBmb3IKKiogSmF2YSBDbGllbnQgd2l0aCBTcHJpbmcgV2ViQ2xpZW50IChSZWFjdGl2ZSkKKiogSmF2YSBTZXJ2ZXIgU3R1YnMgZm9yIFdlYkZsdXggKFJlYWN0aXZlKQoqKiBKYXZhIENsaWVudCB3aXRoIFNwcmluZyBSZXN0IFRlbXBsYXRlIChOb24gUmVhY3RpdmUpCioqIEphdmEgU2VydmVyIFN0dWJzIGZvciBTcHJpbmcgUmVzdCBDb250cm9sbGVyIChOb24gUmVhY3RpdmUpCioqIEltcHJvdmVkIEphdmEgQ2xpZW50IEFQSSdzIHRvIGJldHRlciBjb3BlIHdpdGggcmVzZXJ2ZWQgd29yZHMKKiBFeHBvcnQgRGVwZW5kZW5jaWVzIHdpbGwgbm93IHRyYXZlcnNlIHRocm91Z2ggdGhlIGFydGlmYWN0IHRvIGZpbmQgYWxsIHJhbWwgc3BlY3MKKiBJbXByb3ZlZCBSQU1MIDIgT3BlbiBBUEkgY29udmVyc2lvbgoqIFVwZ3JhZGVkIE9wZW5BUEkgRGlmZiBsaWJyYXJ5IHRvIG1vcmUgY3VycmVudCB2ZXJzaW9uCiogTW9qbydzIGNhbiBub3cgYnJlYWsgdGhlIGJ1aWxkIGJ5IHNldHRpbmcgYGNvbnRpbnVlT25FcnJvcmAgdG8gZmFsc2UKCiMjIDAuMS45CiogSW1wcm92ZWQgaG93IHNlcnZpY2VzIGFyZSBuYW1lZCBhZnRlciBiYXNlIHVybCBjb252ZXJzaW9uIHdhcyBpbnRyb2R1Y2VkLgoKIyMgMC4xLjgKKiBSZXZlcnNlZCBub3JtYWxpemF0aW9uIG9mIHNjaGVtYSBuYW1lcyBhcyB0aGF0IGNhdXNlcyBzdGFjayBvdmVyZmxvdyBlcnJvcnMuIAoqIEZpeGVkIEJhc2UgVVJMIENvbnZlcnNpb24gZnJvbSBSQU1MIHRvIE9wZW5BUEkKKiBTcGVjaWZ5IHNjaGVtYSB0eXBlIHdoZW4gYWRkaW5nIGFkZGl0aW9uYWwgcHJvcGVydGllcyBpbiBNYXZlbiBwbHVnaW4gdXNpbmcgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzVHlwZWAgY29uZmlndXJhdGlvbiBvcHRpb24KCgojIyAwLjEuNwoqIEFkZGVkIGNvbmZpZ3VyYWJsZSBmbGFnIHRvIGFkZCBIdHRwU2VydmxldFJlcXVlc3QgcGFyYW1ldGVycyB0byBjb2RlZ2VuJ2Qgc2VydmVyIHN0dWJzLgoqIEV4dHJhY3QgaW5saW5lIGV4YW1wbGVzIGZyb20gdGhlIG9idGFpbmVkIE9wZW5BUEkgc3BlYyBhbmQgcHV0IHRoZW0gdW5kZXIgJzxvdXRwdXQtZGlyPi9leGFtcGxlcy8nIGFzIGpzb24gZmlsZXMuCiogQ2hhbmdlZCB0aGUgbm9ybWFsaXphdGlvbiBvZiBTY2hlbWEgTmFtZXMgdG8gZW5zdXJlIGV4aXN0aW5nIGNhc2luZyBpcyBub3QgbG9zdAoKIyMgMC4xLjYKKiBBZGRlZCBkb2N1bWVudGF0aW9uIG9uIGJvYXQtbWF2ZW4tcGx1Z2luCiogVXBncmFkZWQgWUFNTCBMaWJyYXJpZXMgdG8gaW1wcm92ZSBvdXRwdXQgb2YgWUFNTCBmaWxlcwoqIFVzZSBzdGFuZGFyZGl6ZWQgc3dhZ2dlciBZQU1MIG91dHB1dAoqIEFkZGVkIEJlYW4gVmFsaWRhdG9yIGluIENvZGUgR2VuZXJhdG9yCiogQ2hhbmdlZCBPcGVuIEFQSSBMb2FkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgcmVmZXJlbmNlcyBmcm9tIHJlYWRpbmcgaW5wdXQgbG9jYXRpb24gaW5zdGVhZCBvZiBzdHJpbmcKCiMjIDAuMS41CgoqIFVwZ3JhZGVkIG9wZW5hcGktZ2VuZXJhdG9yIHRvIDQuMy4wCiogRml4ZWQgamF2YSBkb2MgaW4gdGhlIEphdmEgdGVtcGxhdGVzIHRvIGFsbG93IHVzYWdlIGluIEphdmEgMTEgcHJvamVjdHMKKiBSZW5hbWUgdmFyaWFibGUgbmFtZSBgYWNjZXB0YCB0byBgYWNjZXB0TWVkaWFUeXBlYCBpbiBKYXZhIHRlbXBsYXRlcyB0byBhbGxvdyBPcGVuQVBJIFNwZWNzIHdpdGggcGFyYW1ldGVycyBjYWxsZWQgYGFjY2VwdGAKCgojIyAwLjEuNAoKKiBGaXhlZCB0ZW1wbGF0ZSBmb3IgSFRNTDIgZ2VuZXJhdG9yCiogSW5jbHVkZSBjb252ZXJzaW9uIG9mIGFwaS5yYW1sIGZpbGVzIGZvdW5kIGluIGRlcGVuZGVuY2llcwoKIyMgMC4xLjMgIAoKKiBBZGRlZCBDb2RlIEdlbmVyYXRvciBNb2pvIGZyb20gb24gW29wZW5hcGktZ2VuZXJhdG9yLnRlY2hdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC8pIHdpdGggY3VzdG9tIHRlbXBsYXRlcyBmb3IgSmF2YSwgSmF2YVNwcmluZyBhbmQgSFRNTDIKKiBSZW5hbWVkIGBleHBvcnRgIHRvIGBleHBvcnQtZGVwYCBtb2pvIGZvciBjb252ZXJ0aW5nIFJBTUwgc3BlY3MgdG8gb2FzIGZyb20gZGVwZW5kZW5jaWVzCiogQWRkZWQgYGV4cG9ydGAgbW9qbyBmb3IgY29udmVydGluZyBSQU1MIHNwZWNzIGZyb20gaW5wdXQgZmlsZQoqIEFkZGVkIE5vcm1hbGlzZXIgdHJhbnNmb3JtZXIgZm9yIHRyYW5zZm9ybWluZyBleGFtcGxlcyBuYW1lcyB0byBiZSB1c2VkIGluIEphdmEgY29kZSBnZW5lcmF0aW9uICBhcyBleGFtcGxlIG5hbWVzIGNhbm5vdCBoYXZlIHNwZWNpYWwgY2hhcmFjdGVycy4KKiBJbXByb3ZlIFRpdGxlIGFuZCBEZXNjcmlwdGlvbnMgb2YgY29udmVydGVkIFJBTUwgc3BlY3MKKiBBbHdheXMgd3JhcCBleGFtcGxlcyBpbiBleGFtcGxlIG9iamVjdAoqIE1hbnkgY29kZSBpbXByb3ZlbWVudHMgdG8gYmUgbm90IGFzaGFtZWQgb2YgU29uYXIgUmVwb3J0cy4gIAoKCiMgQnVpbGQgJiBJbnN0YWxsCgpgYGBzaGVsbCBzY3JpcHQKbXZuIGluc3RhbGwKYGBgCgojIyBNYXZlbiBQbHVnaW4gVXNhZ2UKClRoZSBmb2xsb3dpbmcgY29tbWFuZCB3aWxsIGdlbmVyYXRlIGBpbmRleC5odG1sYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgb3V0cHV0IGZvbGRlciB0aGF0IGNvbnRhaW5zIEFQSSBlbmRwb2ludHMgZGVzY3JpcHRpb24uICAKIApgYGBiYXNoCm12biBib2F0OmdlbmVyYXRlQGdlbmVyYXRlLWRvY3MKYGBgCgojIyBHZW5lcmF0ZSBBUEkgaW50ZXJmYWNlcwoKQ29uZmlndXJhdGlvbgpgYGAKPGJ1aWxkPgogIDxwbHVnaW5zPgogICAgPHBsdWdpbj4KICAgICAgPGdyb3VwSWQ+Y29tLmJhY2tiYXNlLm9zczwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+Ym9hdC1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPiR7Ym9hdC1tYXZlbi1wbHVnaW4udmVyc2lvbn08L3ZlcnNpb24+CiAgICAgIDxleGVjdXRpb25zPgogICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICA8aWQ+Z2VuZXJhdGUtYXBpLWNvZGU8L2lkPgogICAgICAgICAgPGdvYWxzPgogICAgICAgICAgICA8Z29hbD5nZW5lcmF0ZTwvZ29hbD4KICAgICAgICAgIDwvZ29hbHM+CiAgICAgICAgICA8cGhhc2U+Z2VuZXJhdGUtc291cmNlczwvcGhhc2U+CiAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgPGlucHV0U3BlYz4ke3Byb2plY3QuYmFzZWRpcn0vc3JjL21haW4vcmVzb3VyY2VzL2FwaS55YW1sPC9pbnB1dFNwZWM+CiAgICAgICAgICAgIDxvdXRwdXQ+JHtwcm9qZWN0LmJ1aWxkLmRpcmVjdG9yeX0vZ2VuZXJhdGVkLXNvdXJjZXMvYXBpPC9vdXRwdXQ+CiAgICAgICAgICAgIDxnZW5lcmF0b3JOYW1lPnNwcmluZzwvZ2VuZXJhdG9yTmFtZT4KICAgICAgICAgICAgWy4uLl0KICAgICAgICAgICAgPGNvbmZpZ09wdGlvbnM+CiAgICAgICAgICAgICAgPGxpYnJhcnk+c3ByaW5nLWJvb3Q8L2xpYnJhcnk+CiAgICAgICAgICAgICAgPGFwaVBhY2thZ2U+Y29tLmV4YW1wbGUubXkuc2VydmljZS5hcGkuaW50ZXJmYWNlczwvYXBpUGFja2FnZT4KICAgICAgICAgICAgICA8bW9kZWxQYWNrYWdlPmNvbS5leGFtcGxlLm15LnNlcnZpY2UubW9kZWxzPC9tb2RlbFBhY2thZ2U+CiAgICAgICAgICAgICAgPGhpZGVHZW5lcmF0aW9uVGltZXN0YW1wPnRydWU8L2hpZGVHZW5lcmF0aW9uVGltZXN0YW1wPgogICAgICAgICAgICAgIDxkYXRlTGlicmFyeT5qYXZhODwvZGF0ZUxpYnJhcnk+CiAgICAgICAgICAgICAgPGludGVyZmFjZU9ubHk+dHJ1ZTwvaW50ZXJmYWNlT25seT4KICAgICAgICAgICAgICA8c2tpcERlZmF1bHRJbnRlcmZhY2U+dHJ1ZTwvc2tpcERlZmF1bHRJbnRlcmZhY2U+CiAgICAgICAgICAgICAgPHVzZUJlYW5WYWxpZGF0aW9uPnRydWU8L3VzZUJlYW5WYWxpZGF0aW9uPgogICAgICAgICAgICAgIDx1c2VUYWdzPnRydWU8L3VzZVRhZ3M+CiAgICAgICAgICAgICAgPGphdmE4PnRydWU8L2phdmE4PgogICAgICAgICAgICAgIDx1c2VPcHRpb25hbD5mYWxzZTwvdXNlT3B0aW9uYWw+CiAgICAgICAgICAgICAgWy4uLl0KICAgICAgICAgICAgPC9jb25maWdPcHRpb25zPgogICAgICAgICAgPC9jb25maWd1cmF0aW9uPgogICAgICAgIDwvZXhlY3V0aW9uPgogICAgICA8L2V4ZWN1dGlvbnM+CiAgICA8L3BsdWdpbj4KIDwvcGx1Z2lucz4KPC9idWlsZD4KYGBgCgpBIGNvbXByZWhlbnNpdmUgbGlzdCBvZiB0aGUgQ29uZmlndXJhdGlvbiBvcHRpb25zIGNhbiBiZSBmb3VuZCBiZWxvdy4KCnwgT3B0aW9uIHwgUHJvcGVydHkgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgYHZlcmJvc2VgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4udmVyYm9zZWAgfCB2ZXJib3NlIG1vZGUgKGBmYWxzZWAgYnkgZGVmYXVsdCkKfCBgaW5wdXRTcGVjYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmlucHV0U3BlY2AgfCBPcGVuQVBJIFNwZWMgZmlsZSBwYXRoCnwgYGxhbmd1YWdlYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmxhbmd1YWdlYCB8IHRhcmdldCBnZW5lcmF0aW9uIGxhbmd1YWdlIChkZXByZWNhdGVkLCByZXBsYWNlZCBieSBgZ2VuZXJhdG9yTmFtZWAgYXMgdmFsdWVzIGhlcmUgZG9uJ3QgcmVwcmVzZW50IG9ubHkgJ2xhbmd1YWdlJyBhbnkgbG9uZ2VyKQp8IGBnZW5lcmF0b3JOYW1lYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmdlbmVyYXRvck5hbWVgIHwgdGFyZ2V0IGdlbmVyYXRvciBuYW1lCnwgYG91dHB1dGAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5vdXRwdXRgIHwgdGFyZ2V0IG91dHB1dCBwYXRoIChkZWZhdWx0IGlzIGAke3Byb2plY3QuYnVpbGQuZGlyZWN0b3J5fS9nZW5lcmF0ZWQtc291cmNlcy9vcGVuYXBpYC4gQ2FuIGFsc28gYmUgc2V0IGdsb2JhbGx5IHRocm91Z2ggdGhlIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4ub3V0cHV0YCBwcm9wZXJ0eSkKfCBgZ2l0SG9zdGAgfCBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmdpdEhvc3RgIHwgVGhlIGdpdCBob3N0LCBlLmcuIGdpdGxhYi5jb20KfCBgZ2l0VXNlcklkYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmdpdFVzZXJJZGAgfCBzZXRzIGdpdCBpbmZvcm1hdGlvbiBvZiB0aGUgcHJvamVjdAp8IGBnaXRSZXBvSWRgIHwgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5naXRSZXBvSWRgIHwgc2V0cyB0aGUgcmVwbyBJRCAoZS5nLiBvcGVuYXBpLWdlbmVyYXRvcikKfCBgdGVtcGxhdGVEaXJlY3RvcnlgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4udGVtcGxhdGVEaXJlY3RvcnlgIHwgZGlyZWN0b3J5IHdpdGggbXVzdGFjaGUgdGVtcGxhdGVzCnwgYHRlbXBsYXRlUmVzb3VyY2VQYXRoYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLnRlbXBsYXRlUmVzb3VyY2VQYXRoYCB8IGRpcmVjdG9yeSB3aXRoIG11c3RhY2hlIHRlbXBsYXRlcyB2aWEgcmVzb3VyY2UgcGF0aC4gVGhpcyBvcHRpb24gd2lsbCBvdmVyd3JpdGUgYW55IG9wdGlvbiBkZWZpbmVkIGluIGB0ZW1wbGF0ZURpcmVjdG9yeWAuCnwgYGVuZ2luZWAgfCBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmVuZ2luZWAgfCBUaGUgbmFtZSBvZiB0ZW1wbGF0aW5nIGVuZ2luZSB0byB1c2UsICJtdXN0YWNoZSIgKGRlZmF1bHQpIG9yICJoYW5kbGViYXJzIiAoYmV0YSkKfCBgYXV0aGAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5hdXRoYCB8IGFkZHMgYXV0aG9yaXphdGlvbiBoZWFkZXJzIHdoZW4gZmV0Y2hpbmcgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbnMgcmVtb3RlbHkuIFBhc3MgaW4gYSBVUkwtZW5jb2RlZCBzdHJpbmcgb2YgYG5hbWU6aGVhZGVyYCB3aXRoIGEgY29tbWEgc2VwYXJhdGluZyBtdWx0aXBsZSB2YWx1ZXMKfCBgY29uZmlndXJhdGlvbkZpbGVgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uY29uZmlndXJhdGlvbkZpbGVgIHwgUGF0aCB0byBzZXBhcmF0ZSBqc29uIGNvbmZpZ3VyYXRpb24gZmlsZS4gRmlsZSBjb250ZW50IHNob3VsZCBiZSBpbiBhIGpzb24gZm9ybWF0IHsib3B0aW9uS2V5Ijoib3B0aW9uVmFsdWUiLCAib3B0aW9uS2V5MSI6Im9wdGlvblZhbHVlMSIuLi59IFN1cHBvcnRlZCBvcHRpb25zIGNhbiBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggbGFuZ3VhZ2UuIFJ1biBgY29uZmlnLWhlbHAgLWcge2dlbmVyYXRvciBuYW1lfWAgY29tbWFuZCBmb3IgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29uZmlnIG9wdGlvbnMKfCBgc2tpcE92ZXJ3cml0ZWAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5za2lwT3ZlcndyaXRlYCB8IFNwZWNpZmllcyBpZiB0aGUgZXhpc3RpbmcgZmlsZXMgc2hvdWxkIGJlIG92ZXJ3cml0dGVuIGR1cmluZyB0aGUgZ2VuZXJhdGlvbi4gKGBmYWxzZWAgYnkgZGVmYXVsdCkKfCBgYXBpUGFja2FnZWAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5hcGlQYWNrYWdlYCB8IHRoZSBwYWNrYWdlIHRvIHVzZSBmb3IgZ2VuZXJhdGVkIGFwaSBvYmplY3RzL2NsYXNzZXMKfCBgbW9kZWxQYWNrYWdlYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLm1vZGVsUGFja2FnZWAgfCB0aGUgcGFja2FnZSB0byB1c2UgZm9yIGdlbmVyYXRlZCBtb2RlbCBvYmplY3RzL2NsYXNzZXMKfCBgaW52b2tlclBhY2thZ2VgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uaW52b2tlclBhY2thZ2VgIHwgdGhlIHBhY2thZ2UgdG8gdXNlIGZvciB0aGUgZ2VuZXJhdGVkIGludm9rZXIgb2JqZWN0cwp8IGBwYWNrYWdlTmFtZWAgfCBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLnBhY2thZ2VOYW1lYCB8IHRoZSBkZWZhdWx0IHBhY2thZ2UgbmFtZSB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgb2JqZWN0cwp8IGBncm91cElkYCB8IGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uZ3JvdXBJZGAgIHwgc2V0cyBwcm9qZWN0IGluZm9ybWF0aW9uIGluIGdlbmVyYXRlZCBwb20ueG1sL2J1aWxkLmdyYWRsZSBvciBvdGhlciBidWlsZCBzY3JpcHQuIExhbmd1YWdlLXNwZWNpZmljIGNvbnZlcnNpb25zIG9jY3VyIGluIG5vbi1qdm0gZ2VuZXJhdG9ycwp8IGBhcnRpZmFjdElkYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmFydGlmYWN0SWRgIHwgc2V0cyBwcm9qZWN0IGluZm9ybWF0aW9uIGluIGdlbmVyYXRlZCBwb20ueG1sL2J1aWxkLmdyYWRsZSBvciBvdGhlciBidWlsZCBzY3JpcHQuIExhbmd1YWdlLXNwZWNpZmljIGNvbnZlcnNpb25zIG9jY3VyIGluIG5vbi1qdm0gZ2VuZXJhdG9ycwp8IGBhcnRpZmFjdFZlcnNpb25gIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uYXJ0aWZhY3RWZXJzaW9uYCB8IHNldHMgcHJvamVjdCBpbmZvcm1hdGlvbiBpbiBnZW5lcmF0ZWQgcG9tLnhtbC9idWlsZC5ncmFkbGUgb3Igb3RoZXIgYnVpbGQgc2NyaXB0LiBMYW5ndWFnZS1zcGVjaWZpYyBjb252ZXJzaW9ucyBvY2N1ciBpbiBub24tanZtIGdlbmVyYXRvcnMKfCBgbGlicmFyeWAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5saWJyYXJ5YCB8IGxpYnJhcnkgdGVtcGxhdGUgKHN1Yi10ZW1wbGF0ZSkKfCBgbW9kZWxOYW1lUHJlZml4YCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLm1vZGVsTmFtZVByZWZpeGAgfCBTZXRzIHRoZSBwcmVmaXggZm9yIG1vZGVsIGNsYXNzZXMgYW5kIGVudW1zCnwgYG1vZGVsTmFtZVN1ZmZpeGAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5tb2RlbE5hbWVTdWZmaXhgIHwgU2V0cyB0aGUgc3VmZml4IGZvciBtb2RlbCBjbGFzc2VzIGFuZCBlbnVtcwp8IGBpZ25vcmVGaWxlT3ZlcnJpZGVgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uaWdub3JlRmlsZU92ZXJyaWRlYCB8IHNwZWNpZmllcyB0aGUgZnVsbCBwYXRoIHRvIGEgYC5vcGVuYXBpLWdlbmVyYXRvci1pZ25vcmVgIHVzZWQgZm9yIHBhdHRlcm4gYmFzZWQgb3ZlcnJpZGVzIG9mIGdlbmVyYXRlZCBvdXRwdXRzCnwgYGh0dHBVc2VyQWdlbnRgIHwgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5odHRwVXNlckFnZW50YCB8IFNldHMgY3VzdG9tIFVzZXItQWdlbnQgaGVhZGVyIHZhbHVlCnwgYHJlbW92ZU9wZXJhdGlvbklkUHJlZml4YCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLnJlbW92ZU9wZXJhdGlvbklkUHJlZml4YCB8IHJlbW92ZSBvcGVyYXRpb25JZCBwcmVmaXggKGUuZy4gdXNlcl9nZXROYW1lID0+IGdldE5hbWUpCnwgYGxvZ1RvU3RkZXJyYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmxvZ1RvU3RkZXJyYCB8IHdyaXRlIGFsbCBsb2cgbWVzc2FnZXMgKG5vdCBqdXN0IGVycm9ycykgdG8gU1RET1VUCnwgYGVuYWJsZVBvc3RQcm9jZXNzRmlsZWAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5gIHwgZW5hYmxlIGZpbGUgcG9zdC1wcm9jZXNzaW5nIGhvb2sKfCBgc2tpcFZhbGlkYXRlU3BlY2AgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5za2lwVmFsaWRhdGVTcGVjYCB8IFdoZXRoZXIgb3Igbm90IHRvIHNraXAgdmFsaWRhdGluZyB0aGUgaW5wdXQgc3BlYyBwcmlvciB0byBnZW5lcmF0aW9uLiBCeSBkZWZhdWx0LCBpbnZhbGlkIHNwZWNpZmljYXRpb25zIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLgp8IGBzdHJpY3RTcGVjYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLnN0cmljdFNwZWNgIHwgV2hldGhlciBvciBub3QgdG8gdHJlYXQgYW4gaW5wdXQgZG9jdW1lbnQgc3RyaWN0bHkgYWdhaW5zdCB0aGUgc3BlYy4gJ01VU1QnIGFuZCAnU0hBTEwnIHdvcmRpbmcgaW4gT3BlbkFQSSBzcGVjIGlzIHN0cmljdGx5IGFkaGVyZWQgdG8uIGUuZy4gd2hlbiBmYWxzZSwgbm8gZml4ZXMgd2lsbCBiZSBhcHBsaWVkIHRvIGRvY3VtZW50cyB3aGljaCBwYXNzIHZhbGlkYXRpb24gYnV0IGRvbid0IGZvbGxvdyB0aGUgc3BlYy4KfCBgZ2VuZXJhdGVBbGlhc0FzTW9kZWxgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uZ2VuZXJhdGVBbGlhc0FzTW9kZWxgIHwgZ2VuZXJhdGUgYWxpYXMgKGFycmF5LCBtYXApIGFzIG1vZGVsCnwgYGNvbmZpZ09wdGlvbnNgIHwgIE4vQSB8IGEgKiptYXAqKiBvZiBsYW5ndWFnZS1zcGVjaWZpYyBwYXJhbWV0ZXJzLiBUbyBzaG93IGEgZnVsbCBsaXN0IG9mIGdlbmVyYXRvci1zcGVjaWZpZWQgcGFyYW1ldGVycyAob3B0aW9ucyksIHBsZWFzZSB1c2UgYGNvbmZpZ0hlbHBgIChleHBsYWluZWQgYmVsb3cpCnwgYGluc3RhbnRpYXRpb25UeXBlc2AgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5pbnN0YW50aWF0aW9uVHlwZXNgIHwgc2V0cyBpbnN0YW50aWF0aW9uIHR5cGUgbWFwcGluZ3MgaW4gdGhlIGZvcm1hdCBvZiB0eXBlPWluc3RhbnRpYXRlZFR5cGUsdHlwZT1pbnN0YW50aWF0ZWRUeXBlLiBGb3IgZXhhbXBsZSAoaW4gSmF2YSk6IGBhcnJheT1BcnJheUxpc3QsbWFwPUhhc2hNYXBgLiBJbiBvdGhlciB3b3JkcyBhcnJheSB0eXBlcyB3aWxsIGdldCBpbnN0YW50aWF0ZWQgYXMgQXJyYXlMaXN0IGluIGdlbmVyYXRlZCBjb2RlLiBZb3UgY2FuIGFsc28gaGF2ZSBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiB0aGlzIG9wdGlvbgp8IGBpbXBvcnRNYXBwaW5nc2AgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5pbXBvcnRNYXBwaW5nc2AgfCBzcGVjaWZpZXMgbWFwcGluZ3MgYmV0d2VlbiBhIGdpdmVuIGNsYXNzIGFuZCB0aGUgaW1wb3J0IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoYXQgY2xhc3MgaW4gdGhlIGZvcm1hdCBvZiB0eXBlPWltcG9ydCx0eXBlPWltcG9ydC4gWW91IGNhbiBhbHNvIGhhdmUgbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgdGhpcyBvcHRpb24KfCBgdHlwZU1hcHBpbmdzYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLnR5cGVNYXBwaW5nc2AgfCBzZXRzIG1hcHBpbmdzIGJldHdlZW4gT3BlbkFQSSBzcGVjIHR5cGVzIGFuZCBnZW5lcmF0ZWQgY29kZSB0eXBlcyBpbiB0aGUgZm9ybWF0IG9mIE9wZW5BUElUeXBlPWdlbmVyYXRlZFR5cGUsT3BlbkFQSVR5cGU9Z2VuZXJhdGVkVHlwZS4gRm9yIGV4YW1wbGU6IGBhcnJheT1MaXN0LG1hcD1NYXAsc3RyaW5nPVN0cmluZ2AuIFlvdSBjYW4gYWxzbyBoYXZlIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIHRoaXMgb3B0aW9uCnwgYGxhbmd1YWdlU3BlY2lmaWNQcmltaXRpdmVzYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmxhbmd1YWdlU3BlY2lmaWNQcmltaXRpdmVzYCB8IHNwZWNpZmllcyBhZGRpdGlvbmFsIGxhbmd1YWdlIHNwZWNpZmljIHByaW1pdGl2ZSB0eXBlcyBpbiB0aGUgZm9ybWF0IG9mIHR5cGUxLHR5cGUyLHR5cGUzLHR5cGUzLiBGb3IgZXhhbXBsZTogYFN0cmluZyxib29sZWFuLEJvb2xlYW4sRG91YmxlYC4gWW91IGNhbiBhbHNvIGhhdmUgbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgdGhpcyBvcHRpb24KfCBgYWRkaXRpb25hbFByb3BlcnRpZXNgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uYWRkaXRpb25hbFByb3BlcnRpZXNgIHwgc2V0cyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBieSB0aGUgbXVzdGFjaGUgdGVtcGxhdGVzIGluIHRoZSBmb3JtYXQgb2YgbmFtZT12YWx1ZSxuYW1lPXZhbHVlLiBZb3UgY2FuIGFsc28gaGF2ZSBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiB0aGlzIG9wdGlvbgp8IGBzZXJ2ZXJWYXJpYWJsZU92ZXJyaWRlc2AgfCBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLnNlcnZlclZhcmlhYmxlT3ZlcnJpZGVzYCB8IEEgbWFwIG9mIHNlcnZlciB2YXJpYWJsZSBvdmVycmlkZXMgZm9yIHNwZWNzIHRoYXQgc3VwcG9ydCBzZXJ2ZXIgVVJMIHRlbXBsYXRpbmcKfCBgcmVzZXJ2ZWRXb3Jkc01hcHBpbmdzYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLnJlc2VydmVkV29yZHNNYXBwaW5nc2AgfCBzcGVjaWZpZXMgaG93IGEgcmVzZXJ2ZWQgbmFtZSBzaG91bGQgYmUgZXNjYXBlZCB0by4gT3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBgXzxuYW1lPmAgaXMgdXNlZC4gRm9yIGV4YW1wbGUgYGlkPWlkZW50aWZpZXJgLiBZb3UgY2FuIGFsc28gaGF2ZSBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiB0aGlzIG9wdGlvbgp8IGBnZW5lcmF0ZUFwaXNgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uZ2VuZXJhdGVBcGlzYCB8IGdlbmVyYXRlIHRoZSBhcGlzIChgdHJ1ZWAgYnkgZGVmYXVsdCkuIFNwZWNpZmljIGFwaXMgbWF5IGJlIGRlZmluZWQgYXMgYSBDU1YgdmlhIGBhcGlzVG9HZW5lcmF0ZWAuCnwgYGFwaXNUb0dlbmVyYXRlYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmFwaXNUb0dlbmVyYXRlYCB8IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYXBpcyB0byBnZW5lcmF0ZS4gIEFsbCBhcGlzIGlzIHRoZSBkZWZhdWx0Lgp8IGBnZW5lcmF0ZU1vZGVsc2AgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5nZW5lcmF0ZU1vZGVsc2AgfCBnZW5lcmF0ZSB0aGUgbW9kZWxzIChgdHJ1ZWAgYnkgZGVmYXVsdCkuIFNwZWNpZmljIG1vZGVscyBtYXkgYmUgZGVmaW5lZCBhcyBhIENTViB2aWEgYG1vZGVsc1RvR2VuZXJhdGVgLgp8IGBtb2RlbHNUb0dlbmVyYXRlYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLm1vZGVsc1RvR2VuZXJhdGVgIHwgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBtb2RlbHMgdG8gZ2VuZXJhdGUuICBBbGwgbW9kZWxzIGlzIHRoZSBkZWZhdWx0Lgp8IGBnZW5lcmF0ZVN1cHBvcnRpbmdGaWxlc2AgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5nZW5lcmF0ZVN1cHBvcnRpbmdGaWxlc2AgfCBnZW5lcmF0ZSB0aGUgc3VwcG9ydGluZyBmaWxlcyAoYHRydWVgIGJ5IGRlZmF1bHQpCnwgYHN1cHBvcnRpbmdGaWxlc1RvR2VuZXJhdGVgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uc3VwcG9ydGluZ0ZpbGVzVG9HZW5lcmF0ZWAgfCBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN1cHBvcnRpbmcgZmlsZXMgdG8gZ2VuZXJhdGUuICBBbGwgZmlsZXMgaXMgdGhlIGRlZmF1bHQuCnwgYGdlbmVyYXRlTW9kZWxUZXN0c2AgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5nZW5lcmF0ZU1vZGVsVGVzdHNgIHwgZ2VuZXJhdGUgdGhlIG1vZGVsIHRlc3RzIChgdHJ1ZWAgYnkgZGVmYXVsdC4gT25seSBhdmFpbGFibGUgaWYgYGdlbmVyYXRlTW9kZWxzYCBpcyBgdHJ1ZWApCnwgYGdlbmVyYXRlTW9kZWxEb2N1bWVudGF0aW9uYCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmdlbmVyYXRlTW9kZWxEb2N1bWVudGF0aW9uYCB8IGdlbmVyYXRlIHRoZSBtb2RlbCBkb2N1bWVudGF0aW9uIChgdHJ1ZWAgYnkgZGVmYXVsdC4gT25seSBhdmFpbGFibGUgaWYgYGdlbmVyYXRlTW9kZWxzYCBpcyBgdHJ1ZWApCnwgYGdlbmVyYXRlQXBpVGVzdHNgIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uZ2VuZXJhdGVBcGlUZXN0c2AgfCBnZW5lcmF0ZSB0aGUgYXBpIHRlc3RzIChgdHJ1ZWAgYnkgZGVmYXVsdC4gT25seSBhdmFpbGFibGUgaWYgYGdlbmVyYXRlQXBpc2AgaXMgYHRydWVgKQp8IGBnZW5lcmF0ZUFwaURvY3VtZW50YXRpb25gIHwgIGBvcGVuYXBpLmdlbmVyYXRvci5tYXZlbi5wbHVnaW4uZ2VuZXJhdGVBcGlEb2N1bWVudGF0aW9uYCB8IGdlbmVyYXRlIHRoZSBhcGkgZG9jdW1lbnRhdGlvbiAoYHRydWVgIGJ5IGRlZmF1bHQuIE9ubHkgYXZhaWxhYmxlIGlmIGBnZW5lcmF0ZUFwaXNgIGlzIGB0cnVlYCkKfCBgd2l0aFhtbGAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi53aXRoWG1sYCB8IGVuYWJsZSBYTUwgYW5ub3RhdGlvbnMgaW5zaWRlIHRoZSBnZW5lcmF0ZWQgbW9kZWxzIGFuZCBBUEkgKG9ubHkgd29ya3Mgd2l0aCBKYXZhIGBsYW5ndWFnZWAgYW5kIGxpYnJhcmllcyB0aGF0IHByb3ZpZGUgc3VwcG9ydCBmb3IgSlNPTiBhbmQgWE1MKQp8IGBza2lwYCB8ICBgY29kZWdlbi5za2lwYCB8IHNraXAgY29kZSBnZW5lcmF0aW9uIChgZmFsc2VgIGJ5IGRlZmF1bHQuIENhbiBhbHNvIGJlIHNldCBnbG9iYWxseSB0aHJvdWdoIHRoZSBgY29kZWdlbi5za2lwYCBwcm9wZXJ0eSkKfCBgc2tpcElmU3BlY0lzVW5jaGFuZ2VkYCB8ICBgY29kZWdlbi5za2lwSWZTcGVjSXNVbmNoYW5nZWRgIHwgU2tpcCB0aGUgZXhlY3V0aW9uIGlmIHRoZSBzb3VyY2UgZmlsZSBpcyBvbGRlciB0aGFuIHRoZSBvdXRwdXQgZm9sZGVyIChgZmFsc2VgIGJ5IGRlZmF1bHQuIENhbiBhbHNvIGJlIHNldCBnbG9iYWxseSB0aHJvdWdoIHRoZSBgY29kZWdlbi5za2lwSWZTcGVjSXNVbmNoYW5nZWRgIHByb3BlcnR5KQp8IGBhZGRDb21waWxlU291cmNlUm9vdGAgfCAgYG9wZW5hcGkuZ2VuZXJhdG9yLm1hdmVuLnBsdWdpbi5hZGRDb21waWxlU291cmNlUm9vdGAgfCBBZGQgdGhlIG91dHB1dCBkaXJlY3RvcnkgdG8gdGhlIHByb2plY3QgYXMgYSBzb3VyY2Ugcm9vdCwgc28gdGhhdCB0aGUgZ2VuZXJhdGVkIGphdmEgdHlwZXMgYXJlIGNvbXBpbGVkIGFuZCBpbmNsdWRlZCBpbiB0aGUgcHJvamVjdCBhcnRpZmFjdCAoYHRydWVgIGJ5IGRlZmF1bHQpLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgYWRkVGVzdENvbXBpbGVTb3VyY2VSb290YC4KfCBgYWRkVGVzdENvbXBpbGVTb3VyY2VSb290YCB8ICBgb3BlbmFwaS5nZW5lcmF0b3IubWF2ZW4ucGx1Z2luLmFkZFRlc3RDb21waWxlU291cmNlUm9vdGAgfCBBZGQgdGhlIG91dHB1dCBkaXJlY3RvcnkgdG8gdGhlIHByb2plY3QgYXMgYSB0ZXN0IHNvdXJjZSByb290LCBzbyB0aGF0IHRoZSBnZW5lcmF0ZWQgamF2YSB0eXBlcyBhcmUgY29tcGlsZWQgb25seSBmb3IgdGhlIHRlc3QgY2xhc3NwYXRoIG9mIHRoZSBwcm9qZWN0IChgZmFsc2VgIGJ5IGRlZmF1bHQpLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgYWRkQ29tcGlsZVNvdXJjZVJvb3RgLgp8IGBlbnZpcm9ubWVudFZhcmlhYmxlc2AgfCBOL0EgfCBBICoqbWFwKiogb2YgaXRlbXMgY29uY2VwdHVhbGx5IHNpbWlsYXIgdG8gImVudmlyb25tZW50IHZhcmlhYmxlcyIgb3IgInN5c3RlbSBwcm9wZXJ0aWVzIi4gVGhlc2UgYXJlIG1lcmdlZCBpbnRvIGEgbWFwIG9mIGdsb2JhbCBzZXR0aW5ncyBhdmFpbGFibGUgdG8gYWxsIGFzcGVjdHMgb2YgdGhlIGdlbmVyYXRpb24gZmxvdy4gVXNlIHRoaXMgbWFwIGZvciBhbnkgb3B0aW9ucyBkb2N1bWVudGVkIGVsc2V3aGVyZSBhcyBgc3lzdGVtUHJvcGVydGllc2AuCnwgYGNvbmZpZ0hlbHBgIHwgIGBjb2RlZ2VuLmNvbmZpZ0hlbHBgIHwgZHVtcHMgdGhlIGNvbmZpZ3VyYXRpb24gaGVscCBmb3IgdGhlIHNwZWNpZmllZCBsaWJyYXJ5IChnZW5lcmF0ZXMgbm8gc291cmNlcykKCkZvciB0aGUgYHNwcmluZ2AgZ2VuZXJhdG9yLCB0aGUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlOgoKfCBPcHRpb24gfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IGBzb3J0UGFyYW1zQnlSZXF1aXJlZEZsYWdgIHwgU29ydCBtZXRob2QgYXJndW1lbnRzIHRvIHBsYWNlIHJlcXVpcmVkIHBhcmFtZXRlcnMgYmVmb3JlIG9wdGlvbmFsIHBhcmFtZXRlcnMuIChEZWZhdWx0OiB0cnVlKSB8CnwgYHNvcnRNb2RlbFByb3BlcnRpZXNCeVJlcXVpcmVkRmxhZ2AgfCBTb3J0IG1vZGVsIHByb3BlcnRpZXMgdG8gcGxhY2UgcmVxdWlyZWQgcGFyYW1ldGVycyBiZWZvcmUgb3B0aW9uYWwgcGFyYW1ldGVycy4gKERlZmF1bHQ6IHRydWUpIHwKfCBgZW5zdXJlVW5pcXVlUGFyYW1zYCB8IFdoZXRoZXIgdG8gZW5zdXJlIHBhcmFtZXRlciBuYW1lcyBhcmUgdW5pcXVlIGluIGFuIG9wZXJhdGlvbiAocmVuYW1lIHBhcmFtZXRlcnMgdGhhdCBhcmUgbm90KS4gKERlZmF1bHQ6IHRydWUpIHwKfCBgYWxsb3dVbmljb2RlSWRlbnRpZmllcnNgIHwgYm9vbGVhbiwgdG9nZ2xlcyB3aGV0aGVyIHVuaWNvZGUgaWRlbnRpZmllcnMgYXJlIGFsbG93ZWQgaW4gbmFtZXMgb3Igbm90LCBkZWZhdWx0IGlzIGZhbHNlIChEZWZhdWx0OiBmYWxzZSkgfAp8IGBwcmVwZW5kRm9ybU9yQm9keVBhcmFtZXRlcnNgIHwgQWRkIGZvcm0gb3IgYm9keSBwYXJhbWV0ZXJzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHBhcmFtZXRlciBsaXN0LiAoRGVmYXVsdDogZmFsc2UpIHwKfCBgbW9kZWxQYWNrYWdlYCB8IHBhY2thZ2UgZm9yIGdlbmVyYXRlZCBtb2RlbHMgKERlZmF1bHQ6IG9yZy5vcGVuYXBpdG9vbHMubW9kZWwpIHwKfCBgYXBpUGFja2FnZWAgfCBwYWNrYWdlIGZvciBnZW5lcmF0ZWQgYXBpIGNsYXNzZXMgKERlZmF1bHQ6IG9yZy5vcGVuYXBpdG9vbHMuYXBpKSB8CnwgYGludm9rZXJQYWNrYWdlYCB8IHJvb3QgcGFja2FnZSBmb3IgZ2VuZXJhdGVkIGNvZGUgKERlZmF1bHQ6IG9yZy5vcGVuYXBpdG9vbHMuYXBpKSB8CnwgYGdyb3VwSWRgIHwgZ3JvdXBJZCBpbiBnZW5lcmF0ZWQgcG9tLnhtbCAoRGVmYXVsdDogb3JnLm9wZW5hcGl0b29scykgfAp8IGBhcnRpZmFjdElkYCB8IGFydGlmYWN0SWQgaW4gZ2VuZXJhdGVkIHBvbS54bWwuIFRoaXMgYWxzbyBiZWNvbWVzIHBhcnQgb2YgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5J3MgZmlsZW5hbWUgKERlZmF1bHQ6IG9wZW5hcGktc3ByaW5nKSB8CnwgYGFydGlmYWN0VmVyc2lvbmAgfCBhcnRpZmFjdCB2ZXJzaW9uIGluIGdlbmVyYXRlZCBwb20ueG1sLiBUaGlzIGFsc28gYmVjb21lcyBwYXJ0IG9mIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSdzIGZpbGVuYW1lIChEZWZhdWx0OiAxLjAuMCkgfAp8IGBhcnRpZmFjdFVybGAgfCBhcnRpZmFjdCBVUkwgaW4gZ2VuZXJhdGVkIHBvbS54bWwgKERlZmF1bHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIHwKfCBgYXJ0aWZhY3REZXNjcmlwdGlvbmAgfCBhcnRpZmFjdCBkZXNjcmlwdGlvbiBpbiBnZW5lcmF0ZWQgcG9tLnhtbCAoRGVmYXVsdDogT3BlbkFQSSBKYXZhKSB8CnwgYHNjbUNvbm5lY3Rpb25gIHwgU0NNIGNvbm5lY3Rpb24gaW4gZ2VuZXJhdGVkIHBvbS54bWwgKERlZmF1bHQ6IHNjbTpnaXQ6Z2l0QGdpdGh1Yi5jb206b3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLmdpdCkgfAp8IGBzY21EZXZlbG9wZXJDb25uZWN0aW9uYCB8IFNDTSBkZXZlbG9wZXIgY29ubmVjdGlvbiBpbiBnZW5lcmF0ZWQgcG9tLnhtbCAoRGVmYXVsdDogc2NtOmdpdDpnaXRAZ2l0aHViLmNvbTpvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IuZ2l0KSB8CnwgYHNjbVVybGAgfCBTQ00gVVJMIGluIGdlbmVyYXRlZCBwb20ueG1sIChEZWZhdWx0OiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSB8CnwgYGRldmVsb3Blck5hbWVgIHwgZGV2ZWxvcGVyIG5hbWUgaW4gZ2VuZXJhdGVkIHBvbS54bWwgKERlZmF1bHQ6IE9wZW5BUEktR2VuZXJhdG9yIENvbnRyaWJ1dG9ycykgfAp8IGBkZXZlbG9wZXJFbWFpbGAgfCBkZXZlbG9wZXIgZW1haWwgaW4gZ2VuZXJhdGVkIHBvbS54bWwgKERlZmF1bHQ6IHRlYW1Ab3BlbmFwaXRvb2xzLm9yZykgfAp8IGBkZXZlbG9wZXJPcmdhbml6YXRpb25gIHwgZGV2ZWxvcGVyIG9yZ2FuaXphdGlvbiBpbiBnZW5lcmF0ZWQgcG9tLnhtbCAoRGVmYXVsdDogT3BlbkFQSVRvb2xzLm9yZykgfAp8IGBkZXZlbG9wZXJPcmdhbml6YXRpb25VcmxgIHwgZGV2ZWxvcGVyIG9yZ2FuaXphdGlvbiBVUkwgaW4gZ2VuZXJhdGVkIHBvbS54bWwgKERlZmF1bHQ6IGh0dHA6Ly9vcGVuYXBpdG9vbHMub3JnKSB8CnwgYGxpY2Vuc2VOYW1lYCB8IFRoZSBuYW1lIG9mIHRoZSBsaWNlbnNlIChEZWZhdWx0OiBVbmxpY2Vuc2UpIHwKfCBgbGljZW5zZVVybGAgfCBUaGUgVVJMIG9mIHRoZSBsaWNlbnNlIChEZWZhdWx0OiBodHRwOi8vdW5saWNlbnNlLm9yZykgfAp8IGBzb3VyY2VGb2xkZXJgIHwgc291cmNlIGZvbGRlciBmb3IgZ2VuZXJhdGVkIGNvZGUgKERlZmF1bHQ6IHNyYy9tYWluL2phdmEpIHwKfCBgc2VyaWFsaXphYmxlTW9kZWxgIHwgYm9vbGVhbiAtIHRvZ2dsZSAiaW1wbGVtZW50cyBTZXJpYWxpemFibGUiIGZvciBnZW5lcmF0ZWQgbW9kZWxzIChEZWZhdWx0OiBmYWxzZSkgfAp8IGBiaWdEZWNpbWFsQXNTdHJpbmdgIHwgVHJlYXQgQmlnRGVjaW1hbCB2YWx1ZXMgYXMgU3RyaW5ncyB0byBhdm9pZCBwcmVjaXNpb24gbG9zcy4gKERlZmF1bHQ6IGZhbHNlKSB8CnwgYGZ1bGxKYXZhVXRpbGAgfCB3aGV0aGVyIHRvIHVzZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBmb3IgY2xhc3NlcyB1bmRlciBqYXZhLnV0aWwuIFRoaXMgb3B0aW9uIG9ubHkgd29ya3MgZm9yIEphdmEgQVBJIGNsaWVudCAoRGVmYXVsdDogZmFsc2UpIHwKfCBgaGlkZUdlbmVyYXRpb25UaW1lc3RhbXBgIHwgSGlkZXMgdGhlIGdlbmVyYXRpb24gdGltZXN0YW1wIHdoZW4gZmlsZXMgYXJlIGdlbmVyYXRlZC4gKERlZmF1bHQ6IGZhbHNlKSB8CnwgYHdpdGhYbWxgIHwgd2hldGhlciB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIGFwcGxpY2F0aW9uL3htbCBjb250ZW50IHR5cGUgYW5kIGluY2x1ZGUgWE1MIGFubm90YXRpb25zIGluIHRoZSBtb2RlbCAod29ya3Mgd2l0aCBsaWJyYXJpZXMgdGhhdCBwcm92aWRlIHN1cHBvcnQgZm9yIEpTT04gYW5kIFhNTCkgKERlZmF1bHQ6IGZhbHNlKSB8CnwgYGRhdGVMaWJyYXJ5YCB8IE9wdGlvbi4gRGF0ZSBsaWJyYXJ5IHRvIHVzZSAoRGVmYXVsdDogdGhyZWV0ZW5icCk8YnI+am9kYSAtIEpvZGEgKGZvciBsZWdhY3kgYXBwIG9ubHkpPGJyPmxlZ2FjeSAtIExlZ2FjeSBqYXZhLnV0aWwuRGF0ZSAoaWYgeW91IHJlYWxseSBoYXZlIGEgZ29vZCByZWFzb24gbm90IHRvIHVzZSB0aHJlZXRlbmJwPGJyPmphdmE4LWxvY2FsZGF0ZXRpbWUgLSBKYXZhIDggdXNpbmcgTG9jYWxEYXRlVGltZSAoZm9yIGxlZ2FjeSBhcHAgb25seSk8YnI+amF2YTggLSBKYXZhIDggbmF0aXZlIEpTUjMxMCAocHJlZmVycmVkIGZvciBqZGsgMS44KykgLSBub3RlOiB0aGlzIGFsc28gc2V0cyAiamF2YTgiIHRvIHRydWU8YnI+dGhyZWV0ZW5icCAtIEJhY2twb3J0IG9mIEpTUjMxMCAocHJlZmVycmVkIGZvciBqZGsgPCAxLjgpIHwKfCBgamF2YThgIHwgT3B0aW9uLiBVc2UgSmF2YTggY2xhc3NlcyBpbnN0ZWFkIG9mIHRoaXJkIHBhcnR5IGVxdWl2YWxlbnRzIChEZWZhdWx0OiBmYWxzZSk8YnI+dHJ1ZSAtIFVzZSBKYXZhIDggY2xhc3NlcyBzdWNoIGFzIEJhc2U2NC4gVXNlIGphdmE4IGRlZmF1bHQgaW50ZXJmYWNlIHdoZW4gYSByZXNwb25zZVdyYXBwZXIgaXMgdXNlZDxicj5mYWxzZSAtIFZhcmlvdXMgdGhpcmQgcGFydHkgbGlicmFyaWVzIGFzIG5lZWRlZCB8CnwgYGRpc2FibGVIdG1sRXNjYXBpbmdgIHwgRGlzYWJsZSBIVE1MIGVzY2FwaW5nIG9mIEpTT04gc3RyaW5ncyB3aGVuIHVzaW5nIGdzb24gKG5lZWRlZCB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIGJ5dGVbXSBmaWVsZHMpIChEZWZhdWx0OiBmYWxzZSkgfAp8IGBib29sZWFuR2V0dGVyUHJlZml4YCB8IFNldCBib29sZWFuR2V0dGVyUHJlZml4IChEZWZhdWx0OiBnZXQpIHwKfCBgYWRkaXRpb25hbE1vZGVsVHlwZUFubm90YXRpb25zYCB8IEFkZGl0aW9uYWwgYW5ub3RhdGlvbnMgZm9yIG1vZGVsIHR5cGUoY2xhc3MgbGV2ZWwgYW5ub3RhdGlvbnMpIHwKfCBgcGFyZW50R3JvdXBJZGAgfCBwYXJlbnQgZ3JvdXBJZCBpbiBnZW5lcmF0ZWQgcG9tIE4uQi4gcGFyZW50R3JvdXBJZCwgcGFyZW50QXJ0aWZhY3RJZCBhbmQgcGFyZW50VmVyc2lvbiBtdXN0IGFsbCBiZSBzcGVjaWZpZWQgZm9yIGFueSBvZiB0aGVtIHRvIHRha2UgZWZmZWN0IHwKfCBgcGFyZW50QXJ0aWZhY3RJZGAgfCBwYXJlbnQgYXJ0aWZhY3RJZCBpbiBnZW5lcmF0ZWQgcG9tIE4uQi4gcGFyZW50R3JvdXBJZCwgcGFyZW50QXJ0aWZhY3RJZCBhbmQgcGFyZW50VmVyc2lvbiBtdXN0IGFsbCBiZSBzcGVjaWZpZWQgZm9yIGFueSBvZiB0aGVtIHRvIHRha2UgZWZmZWN0IHwKfCBgcGFyZW50VmVyc2lvbmAgfCBwYXJlbnQgdmVyc2lvbiBpbiBnZW5lcmF0ZWQgcG9tIE4uQi4gcGFyZW50R3JvdXBJZCwgcGFyZW50QXJ0aWZhY3RJZCBhbmQgcGFyZW50VmVyc2lvbiBtdXN0IGFsbCBiZSBzcGVjaWZpZWQgZm9yIGFueSBvZiB0aGVtIHRvIHRha2UgZWZmZWN0IHwKfCBgc25hcHNob3RWZXJzaW9uYCB8IFVzZXMgYSBTTkFQU0hPVCB2ZXJzaW9uLiB0cnVlIC0gVXNlIGEgU25hcFNob3QgVmVyc2lvbmZhbHNlIC0gVXNlIGEgUmVsZWFzZSBWZXJzaW9uIHwKfCBgdGl0bGVgIHwgc2VydmVyIHRpdGxlIG5hbWUgb3IgY2xpZW50IHNlcnZpY2UgbmFtZSAoRGVmYXVsdDogT3BlbkFQSSBTcHJpbmcpIHwKfCBgY29uZmlnUGFja2FnZWAgfCBjb25maWd1cmF0aW9uIHBhY2thZ2UgZm9yIGdlbmVyYXRlZCBjb2RlIChEZWZhdWx0OiBvcmcub3BlbmFwaXRvb2xzLmNvbmZpZ3VyYXRpb24pIHwKfCBgYmFzZVBhY2thZ2VgIHwgYmFzZSBwYWNrYWdlIChpbnZva2VyUGFja2FnZSkgZm9yIGdlbmVyYXRlZCBjb2RlIChEZWZhdWx0OiBvcmcub3BlbmFwaXRvb2xzKSB8CnwgYGludGVyZmFjZU9ubHlgIHwgV2hldGhlciB0byBnZW5lcmF0ZSBvbmx5IEFQSSBpbnRlcmZhY2Ugc3R1YnMgd2l0aG91dCB0aGUgc2VydmVyIGZpbGVzLiAoRGVmYXVsdDogZmFsc2UpIHwKfCBgZGVsZWdhdGVQYXR0ZXJuYCB8IFdoZXRoZXIgdG8gZ2VuZXJhdGUgdGhlIHNlcnZlciBmaWxlcyB1c2luZyB0aGUgZGVsZWdhdGUgcGF0dGVybiAoRGVmYXVsdDogZmFsc2UpIHwKfCBgc2luZ2xlQ29udGVudFR5cGVzYCB8IFdoZXRoZXIgdG8gc2VsZWN0IG9ubHkgb25lIHByb2R1Y2VzL2NvbnN1bWVzIGNvbnRlbnQtdHlwZSBieSBvcGVyYXRpb24uIChEZWZhdWx0OiBmYWxzZSkgfAp8IGBza2lwRGVmYXVsdEludGVyZmFjZWAgfCBXaGV0aGVyIHRvIGdlbmVyYXRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBqYXZhOCBpbnRlcmZhY2VzIChEZWZhdWx0OiBmYWxzZSkgfAp8IGBhc3luY2AgfCB1c2UgYXN5bmMgQ2FsbGFibGUgY29udHJvbGxlcnMgKERlZmF1bHQ6IGZhbHNlKSB8CnwgYHJlYWN0aXZlYCB8IHdyYXAgcmVzcG9uc2VzIGluIE1vbm8vRmx1eCBSZWFjdG9yIHR5cGVzIChzcHJpbmctYm9vdCBvbmx5KSAoRGVmYXVsdDogZmFsc2UpIHwKfCBgcmVzcG9uc2VXcmFwcGVyYCB8IHdyYXAgdGhlIHJlc3BvbnNlcyBpbiBnaXZlbiB0eXBlIChGdXR1cmUsIENhbGxhYmxlLCBDb21wbGV0YWJsZUZ1dHVyZSxMaXN0ZW5hYmxlRnV0dXJlLCBEZWZlcnJlZFJlc3VsdCwgSHlzdHJpeENvbW1hbmQsIFJ4T2JzZXJ2YWJsZSwgUnhTaW5nbGUgb3IgZnVsbHkgcXVhbGlmaWVkIHR5cGUpIHwKfCBgdmlydHVhbFNlcnZpY2VgIHwgR2VuZXJhdGVzIHRoZSB2aXJ0dWFsIHNlcnZpY2UuIEZvciBtb3JlIGRldGFpbHMgcmVmZXIgLSBodHRwczovL2dpdGh1Yi5jb20vZWxhbi12ZW50dXJlL3ZpcnR1YWxhbi93aWtpIChEZWZhdWx0OiBmYWxzZSkgfAp8IGB1c2VUYWdzYCB8IHVzZSB0YWdzIGZvciBjcmVhdGluZyBpbnRlcmZhY2UgYW5kIGNvbnRyb2xsZXIgY2xhc3NuYW1lcyAoRGVmYXVsdDogZmFsc2UpIHwKfCBgdXNlQmVhblZhbGlkYXRpb25gIHwgVXNlIEJlYW5WYWxpZGF0aW9uIEFQSSBhbm5vdGF0aW9ucyAoRGVmYXVsdDogdHJ1ZSkgfAp8IGBwZXJmb3JtQmVhblZhbGlkYXRpb25gIHwgVXNlIEJlYW4gVmFsaWRhdGlvbiBJbXBsLiB0byBwZXJmb3JtIEJlYW5WYWxpZGF0aW9uIChEZWZhdWx0OiBmYWxzZSkgfAp8IGB1c2VDbGFzc0xldmVsQmVhblZhbGlkYXRpb25gIHwgQWRkcyBAVmFsaWRhdGVkIGFubm90YXRpb24gdG8gQVBJIGludGVyZmFjZXMgKERlZmF1bHQ6IGZhbHNlKSB8CnwgYHVzZUxvbWJva0Fubm90YXRpb25zYCB8IFVzZSBMb21ib2sgYW5ub3RhdGlvbnMgdG8gZ2VuZXJhdGUgcHJvcGVydGllcyBhY2Nlc3NvcnMgYW5kIGBoYXNoQ29kZWAvYGVxdWFsc2AgbWV0aG9kcyAoRGVmYXVsdDogZmFsc2UpIHwKfCBgYWRkU2VydmxldFJlcXVlc3RgIHwgQWRkcyBTZXJ2bGV0UmVxdWVzdCBvYmplY3RzIHRvIEFQSSBtZXRob2QgZGVmaW5pdGlvbnMgKERlZmF1bHQ6IGZhbHNlKSB8CnwgYGFkZEJpbmRpbmdSZXN1bHRgIHwgQWRkcyBCaW5kaW5nUmVzdWx0IHRvIEFwaSBtZXRob2QgZGVmaW5pdGlvbnMnIHJlcXVlc3QgYm9kaWVzIGlmIFVzZUJlYW5WYWxpZGF0aW9uIHRydWUsIGZvciB0aGlzIHRvIGJlIGVmZmVjdGl2ZSB5b3UgbXVzdCBjb25maWd1cmUgVXNlQmVhblZhbGlkYXRpb24sIHRoaXMgaXMgbm90IGRvbmUgYXV0b21hdGljYWxseSAoRGVmYXVsdDogZmFsc2UpfAp8IGBpbXBsaWNpdEhlYWRlcnNgIHwgU2tpcCBoZWFkZXIgcGFyYW1ldGVycyBpbiB0aGUgZ2VuZXJhdGVkIEFQSSBtZXRob2RzIHVzaW5nIEBBcGlJbXBsaWNpdFBhcmFtcyBhbm5vdGF0aW9uLiAoRGVmYXVsdDogZmFsc2UpIHwKfCBgc3dhZ2dlckRvY2tldENvbmZpZ2AgfCBHZW5lcmF0ZSBTcHJpbmcgT3BlbkFQSSBEb2NrZXQgY29uZmlndXJhdGlvbiBjbGFzcy4gKERlZmF1bHQ6IGZhbHNlKSB8CnwgYGFwaUZpcnN0YCB8IEdlbmVyYXRlIHRoZSBBUEkgZnJvbSB0aGUgT0FJIHNwZWMgYXQgc2VydmVyIGNvbXBpbGUgdGltZSAoQVBJIGZpcnN0IGFwcHJvYWNoKSAoRGVmYXVsdDogZmFsc2UpIHwKfCBgdXNlT3B0aW9uYWxgIHwgVXNlIE9wdGlvbmFsIGNvbnRhaW5lciBmb3Igb3B0aW9uYWwgcGFyYW1ldGVycyAoRGVmYXVsdDogZmFsc2UpIHwKfCBgaGF0ZW9hc2AgfCBVc2UgU3ByaW5nIEhBVEVPQVMgbGlicmFyeSB0byBhbGxvdyBhZGRpbmcgSEFURU9BUyBsaW5rcyAoRGVmYXVsdDogZmFsc2UpIHwKfCBgcmV0dXJuU3VjY2Vzc0NvZGVgIHwgR2VuZXJhdGVkIHNlcnZlciByZXR1cm5zIDJ4eCBjb2RlIChEZWZhdWx0OiBmYWxzZSkgfAp8IGB1bmhhbmRsZWRFeGNlcHRpb25gIHwgRGVjbGFyZSBvcGVyYXRpb24gbWV0aG9kcyB0byB0aHJvdyBhIGdlbmVyaWMgZXhjZXB0aW9uIGFuZCBhbGxvdyB1bmhhbmRsZWQgZXhjZXB0aW9ucyAodXNlZnVsIGZvciBTcHJpbmcgYEBDb250cm9sbGVyQWR2aWNlYCBkaXJlY3RpdmVzKS4gKERlZmF1bHQ6IGZhbHNlKSB8CnwgYGxpYnJhcnlgIHwgbGlicmFyeSB0ZW1wbGF0ZSAoc3ViLXRlbXBsYXRlKSAoRGVmYXVsdDogc3ByaW5nLWJvb3QpPGJyPnNwcmluZy1ib290IC0gU3ByaW5nLWJvb3QgU2VydmVyIGFwcGxpY2F0aW9uIHVzaW5nIHRoZSBTcHJpbmdGb3ggaW50ZWdyYXRpb24uPGJyPnNwcmluZy1tdmMgLSBTcHJpbmctTVZDIFNlcnZlciBhcHBsaWNhdGlvbiB1c2luZyB0aGUgU3ByaW5nRm94IGludGVncmF0aW9uLjxicj5zcHJpbmctY2xvdWQgLSBTcHJpbmctQ2xvdWQtRmVpZ24gY2xpZW50IHdpdGggU3ByaW5nLUJvb3QgYXV0by1jb25maWd1cmVkIHNldHRpbmdzLnwK readmeEtag: '"c11607a771f3ce04d7220682923b265a83d0e879"' readmeLastModified: Thu, 29 Aug 2024 15:32:06 GMT repositoryId: 241074287 description: Backbase Open Api Tools (boat) helps manage large OpenAPI projects created: '2020-02-17T10:00:41Z' updated: '2024-08-30T08:38:02Z' language: Mustache archived: false stars: 41 watchers: 11 forks: 24 owner: Backbase logo: https://avatars.githubusercontent.com/u/1914334?v=4 license: NOASSERTION repoEtag: '"ce0df98678bd6eba69db6cb6f434652244971c3a2bc140ede0395465ee0bcfbe"' repoLastModified: Fri, 30 Aug 2024 08:38:02 GMT foundInMaster: true category: SDK id: fd5b893e6ddf5af8821536a61ecb1d4e - source: openapi3 tags repository: https://github.com/juliacomputing/openapi.jl v3: true id: daf8fe2008e1ce6b16d45cb87d8bbb50 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUNvbXB1dGluZy9PcGVuQVBJLmpsL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vSnVsaWFDb21wdXRpbmcvT3BlbkFQSS5qbC9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBQ0krYnJhbmNoJTNBbWFpbikKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL0p1bGlhQ29tcHV0aW5nL09wZW5BUEkuamwvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPWlaZUZMN0pzMGwpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvSnVsaWFDb21wdXRpbmcvT3BlbkFQSS5qbCkKClRoaXMgaXMgdGhlIEp1bGlhIGxpYnJhcnkgbmVlZGVkIGFsb25nIHdpdGggY29kZSBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIGdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoLykgdG8gaGVscCBkZWZpbmUsIHByb2R1Y2UgYW5kIGNvbnN1bWUgT3BlbkFQSSBpbnRlcmZhY2VzLgoKWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY3MtbGF0ZXN0LWJsdWUuc3ZnKV0oaHR0cHM6Ly9KdWxpYUNvbXB1dGluZy5naXRodWIuaW8vT3BlbkFQSS5qbCkKCiMjIFF1aWNrIEd1aWRlCgotIENyZWF0ZSBhbiBBUEkgc3BlY2lmaWNhdGlvbi4gQ2hlY2sgb3V0IFtPcGVuQVBJLVNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSBmb3Igc3BlY2lmaWNhdGlvbiBzeW50YXggYW5kIGV4YW1wbGVzLgotIFVzZSBbaW5zdHJ1Y3Rpb25zXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvZG9jcy9nZW5lcmF0b3JzKSBwcm92aWRlZCBmb3IgdGhlIEp1bGlhIE9wZW5BUEkgY29kZSBnZW5lcmF0b3IgcGx1Z2luIHRvIGdlbmVyYXRlIEp1bGlhIGNvZGUuCi0gQ2xpZW50OgogICAgLSBVc2UgdGhlIGdlbmVyYXRlZCBjbGllbnQgaW4gSnVsaWEgZGlyZWN0bHkgdG8gaW52b2tlIEFQSXMKLSBTZXJ2ZXI6CiAgICAtIFByb3ZpZGUgY29kZSB0byBoYW5kbGUgQVBJIGludm9jYXRpb25zIG9uIHRoZSBzZXJ2ZXIgc2lkZSBieSBpbXBsZW1lbnRpbmcgdGhlIEp1bGlhIG1ldGhvZHMgY29ycmVzcG9uZGluZyB0byBBUEkgc3R1YnMuCiAgICAtIFN0YXJ0IGEgc2VydmVyIHVzaW5nIEhUVFAuamwgYW5kIHJlZ2lzdGVyIHRoZSBnZW5lcmF0ZWQgcmVxdWVzdCBoYW5kbGVycy4KCiMjIEV4YW1wbGVzCgpUaGUgUGV0c3RvcmUgaXMgYSBjb21tb24gZXhhbXBsZSB0aGF0IG1vc3QgT3BlbkFQSSBpbXBsZW1lbnRhdGlvbnMgdXNlIHRvIHRlc3QgYW5kIGRlbW9uc3RyYXRlLiBDbGllbnRzIGFuZCBzZXJ2ZXJzIGdlbmVyYXRlZCBmcm9tIGJvdGggdmVyc2lvbiAyIGFuZCAzIHNwZWNpZmljYXRpb25zIGFyZSBpbmNsdWRlZCBpbiB0aGlzIHJlcG8uCgotIFBldHN0b3JlIHYyOgogICAgLSBDbGllbnQ6IFtkb2NzXSh0ZXN0L2NsaWVudC9wZXRzdG9yZV92Mi9wZXRzdG9yZS9SRUFETUUubWQpLCBbaW1wbGVtZW50YXRpb25dKHRlc3QvY2xpZW50L3BldHN0b3JlX3YyKQogICAgLSBTZXJ2ZXI6IFtkb2NzXSh0ZXN0L3NlcnZlci9wZXRzdG9yZV92Mi9wZXRzdG9yZS9SRUFETUUubWQpLCBbaW1wbGVtZW50YXRpb25dKHRlc3Qvc2VydmVyL3BldHN0b3JlX3YyKQotIFBldHN0b3JlIHYzOgogICAgLSBDbGllbnQ6IFtkb2NzXSh0ZXN0L2NsaWVudC9wZXRzdG9yZV92My9wZXRzdG9yZS9SRUFETUUubWQpLCBbaW1wbGVtZW50YXRpb25dKHRlc3QvY2xpZW50L3BldHN0b3JlX3YzKQogICAgLSBTZXJ2ZXI6IFtkb2NzXSh0ZXN0L3NlcnZlci9wZXRzdG9yZV92My9wZXRzdG9yZS9SRUFETUUubWQpLCBbaW1wbGVtZW50YXRpb25dKHRlc3Qvc2VydmVyL3BldHN0b3JlX3YzKQo= readmeEtag: '"267b6741436f2490b6fe88033bf5824947d7b9d0"' readmeLastModified: Fri, 26 Jul 2024 07:24:14 GMT repositoryId: 535564203 description: OpenAPI helper and code generator for Julia created: '2022-09-12T07:55:03Z' updated: '2024-07-26T07:24:18Z' language: Julia archived: false stars: 41 watchers: 23 forks: 7 owner: JuliaComputing logo: https://avatars.githubusercontent.com/u/10258468?v=4 license: NOASSERTION repoEtag: '"d70723f85393c415344fc274de66c3573b5701a635d2c4457277ceeb4d8ad99b"' repoLastModified: Fri, 26 Jul 2024 07:24:18 GMT foundInMaster: true category: Parsers - source: openapi3 tags repository: https://github.com/oas-tools/oas-generator v3: true repositoryMetadata: base64Readme: >- PiAqKldhcm5pbmcqKgo+Cj4gVGhpcyBwYWNrYWdlIGlzIG5vdyBpbmNsdWRlZCBpbiBbT0FTIFRvb2xzIENMSV0oaHR0cHM6Ly9naXRodWIuY29tL29hcy10b29scy9vYXMtY2xpKS4gQ2hlY2sgdGhlIFtkb2NzXShodHRwczovL29hcy10b29scy5naXRodWIuaW8vZG9jcy9jbGkpIGZvciBtb3JlIGluZm8uCgojIG9hcy1nZW5lcmF0b3IKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2lzYS1ncm91cC9vYXMtZ2VuZXJhdG9yLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2lzYS1ncm91cC9vYXMtZ2VuZXJhdG9yKQpbIVtkZXBlbmRlbmNpZXMgU3RhdHVzXShodHRwczovL2RhdmlkLWRtLm9yZy9pc2EtZ3JvdXAvb2FzLWdlbmVyYXRvci9zdGF0dXMuc3ZnKV0oaHR0cHM6Ly9kYXZpZC1kbS5vcmcvaXNhLWdyb3VwL29hcy1nZW5lcmF0b3IpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9pc2EtZ3JvdXAvb2FzLWdlbmVyYXRvci9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9pc2EtZ3JvdXAvb2FzLWdlbmVyYXRvcikKWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9ucG0vb2FzLWdlbmVyYXRvci9iYWRnZS5zdmcpXShodHRwczovL3NueWsuaW8vdGVzdC9ucG0vb2FzLWdlbmVyYXRvcikKWyFbR3JlZW5rZWVwZXIgYmFkZ2VdKGh0dHBzOi8vYmFkZ2VzLmdyZWVua2VlcGVyLmlvL2lzYS1ncm91cC9vYXMtZ2VuZXJhdG9yLnN2ZyldKGh0dHBzOi8vZ3JlZW5rZWVwZXIuaW8vKQoKWyFbTlBNXShodHRwczovL25vZGVpLmNvL25wbS9vYXMtZ2VuZXJhdG9yLnBuZz9kb3dubG9hZHM9dHJ1ZSZkb3dubG9hZFJhbms9dHJ1ZSZzdGFycz10cnVlKV0oaHR0cHM6Ly9ub2RlaS5jby9ucG0vb2FzLWdlbmVyYXRvci8pCgpUaGlzIG1vZHVsZSBwcm92aWRlcyBOb2RlSlMgUkVTVGZ1bGwgQVBJcyBzY2FmZm9sZGluZyBiYXNlZCBPcGVuQVBJIDMueCBzcGVjcyB1c2luZyBbb2FzLXRvb2xzXShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL29hcy10b29scykgYW5kIFtleHByZXNzXShodHRwczovL2dpdGh1Yi5jb20vZXhwcmVzc2pzL2V4cHJlc3MpLiBJdCBpcyBjb21wYXRpYmxlIHdpdGggc2VydmVycyBnZW5lcmF0ZWQgd2l0aCB0aGUgc3dhZ2dlci10b29sIHN1aXRlIHRvIGhlbHAgaW4gdGhlIHRyYW5zaXRpb24gZnJvbSBwcmUtZXhpc3Rpbmcgc2VydmVycyBiYXNlZCBvbiAyLnggc3BlY3MuCgpXZSBoYXZlIGEgMiBtaW4uIHR1dG9yaWFsOgoKPGEgaHJlZj0iaHR0cHM6Ly95b3V0dS5iZS9PWmh0b1hQMkdpNCIgYWx0PSJvYXMtZ2VuZXJhdG9yIGludHJvZHVjdGlvbiAodjIuMC42KSAtIENsaWNrIHRvIFdhdGNoISI+PGltZyBzcmM9Imh0dHBzOi8vaS5pbWd1ci5jb20vZmNxYVdDcS5qcGciIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIzMDAiIGFsdD0ib2FzLWdlbmVyYXRvciBpbnRyb2R1Y3Rpb24gKHYyLjAuNikgLSBDbGljayB0byBXYXRjaCEiPjwvYT4KCgojIyAxXC4gSW5zdGFsbCBvYXMtZ2VuZXJhdG9yCgpgYGBiYXNoCm5wbSBpbnN0YWxsIG9hcy1nZW5lcmF0b3IgLWcKYGBgCgojIyAyXC4gVXNlIG9hcy1nZW5lcmF0b3IgY29tbWFuZAoKIyMjIDIuMVwuIEhlbHAKCmBgYGJhc2gKJCBvYXMtZ2VuZXJhdG9yIC0taGVscAoKVXNhZ2U6ICBvYXMtZ2VuZXJhdG9yIDxPQVMgdjMgZmlsZSBpbiBZQU1MIG9yIEpTT04+CgogIE9wdGlvbnM6CgogICAgLW4sIC0tcHJvamVjdE5hbWUgPHByb2plY3ROYW1lPiAgTmFtZSBmb3IgdGhlIGdlbmVyYXRlZCBmb2xkZXIKICAgIC16LCAtLWdlbmVyYXRlWmlwICAgICAgICAgICAgICAgIEluZGljYXRlIHdoZXRoZXIgdGhlIGdlbmVyYXRlZCBmb2xkZXIgbXVzdCBiZSBkZWxldGVkIGFmdGVyIGNvbXByZXNzaW9uCiAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgdXNhZ2UgaW5mb3JtYXRpb24KYGBgCgojIyMgMi4yIEV4YW1wbGVzCgpHZW5lcmF0ZSBhIE5vZGVKUyBwcm9qZWN0OiBUaGUgZm9sbG93aW5nIGNvbW1hbmQgd2lsIGNyZWF0ZSB0aGUgY29kZSBvZiBhIE5vZGVKUyBhcHBsaWNhdGlvbiBiYXNlZCBvbiB0aGUgT3BlbkFQSSBTcGVjIDMueCBgZG9ja2VyLWVuZ2luZS55YW1sYCBhbmQgcGxhY2UgaXRzIGNvZGUgaW4gYSBmb2xkZXIgYnkgdGhlIG5hbWUgYGdlbmVyYXRlZFNlcnZlcmAuCgpgYGBiYXNoCiQgb2FzLWdlbmVyYXRvciBzcGVjcy9kb2NrZXItZW5naW5lLnlhbWwgLW4gZ2VuZXJhdGVkU2VydmVyCmBgYAoKT25jZSB0aGUgZm9sZGVyIGlzIGNyZWF0ZWQgbG9jYXRlIGludG8gaXQuIEluc3RhbGwgZGVwZW5kZW5jaWVzIGFuZCBydW4gaXQgYnkgZG9pbmcgbnBtIHN0YXJ0OgoKYGBgYmFzaAokIGNkIGdlbmVyYXRlZFNlcnZlcgokIG5wbSBzdGFydApgYGAKCk5vdyB5b3VyIGFwcCBpcyBydW5uaW5nIG9uIHBvcnQgODA4MC4KWW91IGNhbiB0cnkgdGhlIHVybCBbaHR0cDovL2xvY2FsaG9zdDo4MDgwL3YxLjMzL3ZvbHVtZXNdKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC92MS4zMy92b2x1bWVzKQoKSW4gdGhlIGZvbGRlciBgY29udHJvbGxlcnNgIHRoZXJlIHdpbGwgYmUgYSBzZXQgb2YganMgZmlsZXMgd2l0aCB0aGUgdGVtcGxhdGVzIGZvciBlYWNoIG1ldGhvZCBzcGVjaWZpZWQgaW4gdGhlIHNwZWMgdGhhdCBzaG91bGQgYmUgY29tcGxldGVkIHRvIGhhdmUgYSBmdWxseSB3b3JraW5nIEFQSS4KCkhhcHB5IGNvZGluZyEgCgoKIyMgTGljZW5zZQoKQ29weXJpZ2h0IDIwMTgsIFtJU0EgR3JvdXBdKGh0dHA6Ly93d3cuaXNhLnVzLmVzKSwgW1VuaXZlcnNpdHkgb2YgU2V2aWxsYV0oaHR0cDovL3d3dy51cy5lcykKCkZvciB0ZWNobmljYWwgaW5xdWlyeSBwbGVhc2UgY29udGFjdCB0byBbZW5naW5lZXJpbmcgdGVhbV0oLi9leHRyYS90ZWFtLm1kKS4KClshW0lTQSBHcm91cF0oaHR0cDovL3d3dy5pc2EudXMuZXMvMi4wL2Fzc2V0cy9pbWcvdGhlbWUvbG9nbzIucG5nKV0oaHR0cDovL3d3dy5pc2EudXMuZXMpCgpMaWNlbnNlZCB1bmRlciB0aGUgKipBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAqKiAodGhlICJbTGljZW5zZV0oLi9MSUNFTlNFKSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBhcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo= readmeEtag: '"21e0d301092f58c02c880708a88bd38cd13d9555"' readmeLastModified: Mon, 15 Aug 2022 00:25:20 GMT repositoryId: 134678864 description: >- NodeJS RESTful APIs scaffolding based OpenAPI 3.x specs using oas-tools and express. created: '2018-05-24T07:35:23Z' updated: '2023-01-27T22:17:58Z' language: JavaScript archived: true stars: 41 watchers: 8 forks: 4 owner: oas-tools logo: https://avatars.githubusercontent.com/u/97441539?v=4 license: Apache-2.0 repoEtag: '"9078852f1366650d9790c7bb403ea8d4efe9fc8e10987ed7b98df0d09e174516"' repoLastModified: Fri, 27 Jan 2023 22:17:58 GMT foundInMaster: true category: - Server - Parsers id: 18da66b6dce72c18901effa0c36ae85a oldLocations: - https://github.com/isa-group/oas-generator - source: openapi3 tags repository: https://github.com/jaredce/serverless-openapi-documenter v3: true id: 73f90a4d2a5d00e00db21917b3fb11e5 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEdlbmVyYXRvciBmb3Igc2VydmVybGVzcwoKPHA+CiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuc2VydmVybGVzcy5jb20iPgogICAgPGltZyBzcmM9Imh0dHA6Ly9wdWJsaWMuc2VydmVybGVzcy5jb20vYmFkZ2VzL3YzLnN2ZyI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3NlcnZlcmxlc3Mtb3BlbmFwaS1kb2N1bWVudGVyIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3NlcnZlcmxlc3Mtb3BlbmFwaS1kb2N1bWVudGVyLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9KYXJlZENFL3NlcnZlcmxlc3Mtb3BlbmFwaS1kb2N1bWVudGVyL2FjdGlvbnMvd29ya2Zsb3dzL25vZGUueW1sIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vSmFyZWRDRS9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRlci9hY3Rpb25zL3dvcmtmbG93cy9ub2RlLnltbC9iYWRnZS5zdmciPgogIDwvYT4KPC9wPgoKVGhpcyB3aWxsIGdlbmVyYXRlIGFuIE9wZW5BUEkgVjMgKHVwIHRvIHYzLjAuMykgZmlsZSBmb3IgeW91IGZyb20geW91ciBzZXJ2ZXJsZXNzIGZpbGUuIEl0IGNhbiBvcHRpb25hbGx5IGdlbmVyYXRlIGEgW1Bvc3RtYW4gQ29sbGVjdGlvbiBWMl0oaHR0cHM6Ly9naXRodWIuY29tL3Bvc3RtYW5sYWJzL29wZW5hcGktdG8tcG9zdG1hbikgZnJvbSB0aGUgT3BlbkFQSSBmaWxlIGZvciB5b3UgdG9vLiBUaGlzIGN1cnJlbnRseSB3b3JrcyBmb3IgYGh0dHBgIGFuZCBgaHR0cEFwaWAgY29uZmlndXJhdGlvbnMuCgpPcmlnaW5hbGx5IGJhc2VkIG9mZiBvZjogaHR0cHM6Ly9naXRodWIuY29tL3RlbWFuZG8vc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50YXRpb24KCiMjIEluc3RhbGwKClRoaXMgcGx1Z2luIHdvcmtzIGZvciBTZXJ2ZXJsZXNzICgyLngsIDMueCBhbmQgNC54KSBhbmQgb25seSBzdXBwb3J0cyBub2RlLmpzIDE0IGFuZCB1cC4KClRvIGFkZCB0aGlzIHBsdWdpbiB0byB5b3VyIHBhY2thZ2UuanNvbjoKCioqVXNpbmcgbnBtOioqCgpgYGBiYXNoCm5wbSBpbnN0YWxsIC0tc2F2ZS1kZXYgc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50ZXIKYGBgCgpOZXh0IHlvdSBuZWVkIHRvIGFkZCB0aGUgcGx1Z2luIHRvIHRoZSBgcGx1Z2luc2Agc2VjdGlvbiBvZiB5b3VyIGBzZXJ2ZXJsZXNzLnltbGAgZmlsZS4KCmBgYHltbApwbHVnaW5zOgogIC0gc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50ZXIKYGBgCgo+IE5vdGU6IEFkZCB0aGlzIHBsdWdpbiBfYWZ0ZXJfIGBzZXJ2ZXJsZXNzLW9mZmxpbmVgIHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYFN0cmluZy5yZXBsYWNlQWxsYCBiZWluZyBvdmVycmlkZGVuIGluY29ycmVjdGx5LgoKIyMgQWRkaW5nIGRvY3VtZW50YXRpb24gdG8gc2VydmVybGVzcwoKVG8gUnVuOiBgc2VydmVybGVzcyBvcGVuYXBpIGdlbmVyYXRlIC1vIG9wZW5hcGkuanNvbiAtZiBqc29uIC1hIDMuMC4zIC1wIHBvc3RtYW4uanNvbmAKCk9wdGlvbnM6CgpgYGAKLS1vdXRwdXQgICAgICAgICAgICAgICAgLW8gIFdoYXQgZmlsZW5hbWUgdGhlIE9wZW5BUEkgRGVzY3JpcHRpb24gc2hvdWxkIG91dHB1dCB1bmRlci4gRGVmYXVsdDogb3BlbmFwaS5qc29uCi0tZm9ybWF0ICAgICAgICAgICAgICAgIC1mICBXaGV0aGVyIHRvIG91dHB1dCB0aGUgT3BlbkFQSSBEZXNjcmlwdGlvbiBhcyBqc29uIG9yIHlhbWwuIERlZmF1bHQ6IGpzb24KLS1pbmRlbnQgICAgICAgICAgICAgICAgLWkgIEZpbGUgaW5kZW50YXRpb24gaW4gc3BhY2VzLiBEZWZhdWx0OiAyCi0tb3BlbkFwaVZlcnNpb24gICAgICAgIC1hICBPcGVuQVBJIHZlcnNpb24gdG8gZ2VuZXJhdGUgZm9yLiBEZWZhdWx0OiAzLjAuMAotLXBvc3RtYW5Db2xsZWN0aW9uICAgICAtcCAgV2lsbCBnZW5lcmF0ZSBhIHBvc3RtYW4gY29sbGVjdGlvbiAoZnJvbSB0aGUgZ2VuZXJhdGVkIE9wZW5BUEkgRGVzY3JpcHRpb24pLCBpbiBqc29uIG9ubHksIGlmIHBhc3NlZCBpbi4gRGVmYXVsdDogcG9zdG1hbi5qc29uCi0tdmFsaWRhdGlvbldhcm4gICAgICAgIC13ICBXYXJuIGFib3V0IHZhbGlkYXRpb24gZXJyb3JzIG9ubHkuICBXaWxsIHdyaXRlIHRoZSBPcGVuQVBJIGZpbGUgaWYgZ2VuZXJhdGlvbiBpcyBzdWNjZXNzZnVsLiAgRGVmYXVsdDogZmFsc2UKYGBgCgojIyMgUkVBRE1FIEhpZ2hsaWdodGVkIFJlYWRpbmcKCiMjIyMgU2VjdXJpdHkgRGV0YWlscwoKLSBbU2VjdXJpdHldKCNzZWN1cml0eXNjaGVtZXMpCi0gW1NlY3VyaXR5IG9uIEFsbCBPcGVyYXRpb25zXSgjc2VjdXJpdHktb24tZWFjaC1vcGVyYXRpb24pCi0gW1NlY3VyaXR5IFBlciBPcGVyYXRpb25dKCNzZWN1cml0eSkKCiMjIyMgTW9kZWwgRGV0YWlscwoKLSBbTW9kZWxzXSgjbW9kZWxzKQotIFtOb3RlcyBvbiBTY2hlbWFzXSgjbm90ZXMtb24tc2NoZW1hcykKLSBbUmVxdWVzdCBTY2hlbWEgVmFsaWRhdG9yc10oI3NlcnZlcmxlc3MtcmVxdWVzdC1zY2hlbWEtdmFsaWRhdG9ycykKCiMjIyMgUmVzcG9uc2UgSGVhZGVycwoKLSBbQ09SU10oI2NvcnMpCi0gW09XQVNQIFNlY3VyZSBIZWFkZXJzXSgjb3dhc3ApCgojIyMjIFZhbGlkYXRpb24KCi0gW1ZhbGlkYXRpb25dKCN2YWxpZGF0b3IpCgojIyMgT3BlbkFQSSBNYXBwaW5nCgp8IE9wZW5BUEkgZmllbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNlcnZlcmxlc3MgZmllbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgaW5mby50aXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGN1c3RvbS5kb2N1bWVudGF0aW9uLnRpdGxlYCBPUiBzZXJ2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGluZm8uZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBjdXN0b20uZG9jdW1lbnRhdGlvbi5kZXNjcmlwdGlvbmAgT1IgYmxhbmsgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbmZvLnZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgY3VzdG9tLmRvY3VtZW50YXRpb24udmVyc2lvbmAgT1IgcmFuZG9tIHY0IHV1aWQgaWYgbm90IHByb3ZpZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW5mby50ZXJtc09mU2VydmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGN1c3RvbS5kb2N1bWVudGF0aW9uLnRlcm1zT2ZTZXJ2aWNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGluZm8uY29udGFjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGN1c3RvbS5kb2N1bWVudGF0aW9uLmNvbnRhY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbmZvLmNvbnRhY3QubmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgY3VzdG9tLmRvY3VtZW50YXRpb24uY29udGFjdC5uYW1lYCBPUiBibGFuayBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW5mby5jb250YWN0LnVybCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGN1c3RvbS5kb2N1bWVudGF0aW9uLmNvbnRhY3QudXJsYCBpZiBwcm92aWRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGluZm8uY29udGFjdC54LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBjdXN0b20uZG9jdW1lbnRhdGlvbi5jb250YWN0LngtYCBleHRlbmRlZCBzcGVjaWZpY2F0aW9ucyBwcm92aWRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbmZvLmxpY2Vuc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjdXN0b20uZG9jdW1lbnRhdGlvbi5saWNlbnNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW5mby5saWNlbnNlLm5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGN1c3RvbS5kb2N1bWVudGF0aW9uLmxpY2Vuc2UubmFtZWAgT1IgYmxhbmsgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGluZm8ubGljZW5zZS51cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBjdXN0b20uZG9jdW1lbnRhdGlvbi5saWNlbnNlLnVybGAgaWYgcHJvdmlkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbmZvLmxpY2Vuc2UueC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgY3VzdG9tLmRvY3VtZW50YXRpb24ubGljZW5zZS54LWAgaWYgZXh0ZW5kZWQgc3BlY2lmaWNhdGlvbnMgcHJvdmlkZWQgcHJvdmlkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgZXh0ZXJuYWxEb2NzLmRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGN1c3RvbS5kb2N1bWVudGF0aW9uLmV4dGVybmFsRG9jdW1lbnRhdGlvbi5kZXNjcmlwdGlvbiBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGV4dGVybmFsRG9jcy51cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBjdXN0b20uZG9jdW1lbnRhdGlvbi5leHRlcm5hbERvY3VtZW50YXRpb24udXJsYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB4LXRhZ0dyb3VwcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgY3VzdG9tLmRvY3VtZW50YXRpb24ueC10YWdHcm91cHNgIGlmIHByb3ZpZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cnwgc2VjdXJpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGN1c3RvbS5kb2N1bWVudGF0aW9uLnNlY3VyaXR5YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHNlcnZlcnNbXS5kZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGN1c3RvbS5kb2N1bWVudGF0aW9uLnNlcnZlcnMuZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBzZXJ2ZXJzW10udXJsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjdXN0b20uZG9jdW1lbnRhdGlvbi5zZXJ2ZXJzLnVybCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cnwgc2VydmVyc1tdLnZhcmlhYmxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY3VzdG9tLmRvY3VtZW50YXRpb24uc2VydmVycy52YXJpYWJsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHRhZ3NbXS5uYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBjdXN0b20uZG9jdW1lbnRhdGlvbi50YWdzLm5hbWVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB0YWdzW10uZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgY3VzdG9tLmRvY3VtZW50YXRpb24udGFncy5kZXNjcmlwdGlvbmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgdGFnc1tdLmV4dGVybmFsRG9jcy51cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGN1c3RvbS5kb2N1bWVudGF0aW9uLnRhZ3MuZXh0ZXJuYWxEb2N1bWVudGF0aW9uLnVybGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHRhZ3NbXS5leHRlcm5hbERvY3MuZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBjdXN0b20uZG9jdW1lbnRhdGlvbi50YWdzLmV4dGVybmFsRG9jdW1lbnRhdGlvbi5kZXNjcmlwdGlvbmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB0YWdzW10uZXh0ZXJuYWxEb2NzLngtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgY3VzdG9tLmRvY3VtZW50YXRpb24udGFncy5leHRlcm5hbERvY3VtZW50YXRpb24ueC1gIGlmIGV4dGVuZGVkIHNwZWNpZmljYXRpb25zIHByb3ZpZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5ldmVudHMuW2h0dHAgT1IgaHR0cEFwaV0ucGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uc2VydmVyc1tdLmRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuc2VydmVycy5kZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLnNlcnZlcnNbXS51cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLnNlcnZlcnMudXJsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5tZXRob2QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0uc3VtbWFyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5zdW1tYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLmRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5vcGVyYXRpb25JZCAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLm9wZXJhdGlvbklkIE9SIGZ1bmN0aW9uTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0uZGVwcmVjYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5kZXByZWNhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLmV4dGVybmFsRG9jcy5kZXNjcmlwdGlvbiAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uZXh0ZXJuYWxEb2N1bWVudGF0aW9uLmRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5leHRlcm5hbERvY3MudXJsICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLmV4dGVybmFsRG9jdW1lbnRhdGlvbi51cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0uc2VydmVyc1tdLmRlc2NyaXB0aW9uICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5zZXJ2ZXJzLmRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnNlcnZlcnNbXS51cmwgICAgICAgICAgICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uc2VydmVycy51cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5zZWN1cml0eSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLnNlY3VyaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0uZGVwcmVjYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5kZXByZWNhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnBhcmFtZXRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uW3BhdGgvcXVlcnkvY29va2llL2hlYWRlcl1QYXJhbXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5wYXJhbWV0ZXJzLm5hbWUgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLltwYXRoL3F1ZXJ5L2Nvb2tpZS9oZWFkZXJdUGFyYW1zLm5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0ucGFyYW1ldGVycy5pbiAgICAgICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5bcGF0aC9xdWVyeS9jb29raWUvaGVhZGVyXVBhcmFtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnBhcmFtZXRlcnMuZGVzY3JpcHRpb24gICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uW3BhdGgvcXVlcnkvY29va2llL2hlYWRlcl1QYXJhbXMuZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5wYXJhbWV0ZXJzLnJlcXVpcmVkICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLltxdWVyeS9jb29raWUvaGVhZGVyXVBhcmFtcy5yZXF1aXJlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0ucGFyYW1ldGVycy5kZXByZWNhdGVkICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5bcGF0aC9xdWVyeS9jb29raWUvaGVhZGVyXVBhcmFtcy5kZXByZWNhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnBhcmFtZXRlcnMuYWxsb3dFbXB0eVZhbHVlICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uW3BhdGgvcXVlcnkvY29va2llL2hlYWRlcl1QYXJhbXMuYWxsb3dFbXB0eVZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5wYXJhbWV0ZXJzLnN0eWxlICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLltwYXRoL3F1ZXJ5L2Nvb2tpZS9oZWFkZXJdUGFyYW1zLnN0eWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0ucGFyYW1ldGVycy5leHBsb2RlICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5bcGF0aC9xdWVyeS9jb29raWUvaGVhZGVyXVBhcmFtcy5leHBsb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnBhcmFtZXRlcnMuYWxsb3dSZXNlcnZlZCAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uW3BhdGgvcXVlcnkvY29va2llL2hlYWRlcl1QYXJhbXMuYWxsb3dSZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5wYXJhbWV0ZXJzLnNjaGVtYSAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLltwYXRoL3F1ZXJ5L2Nvb2tpZS9oZWFkZXJdUGFyYW1zLnNjaGVtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0ucGFyYW1ldGVycy5leGFtcGxlICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5bcGF0aC9xdWVyeS9jb29raWUvaGVhZGVyXVBhcmFtcy5leGFtcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnBhcmFtZXRlcnMuZXhhbXBsZXMgICAgICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24uW3BhdGgvcXVlcnkvY29va2llL2hlYWRlcl1QYXJhbXMuZXhhbXBsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5yZXF1ZXN0Qm9keSAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLnJlcXVlc3RCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0ucmVxdWVzdEJvZHkuZGVzY3JpcHRpb24gICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5yZXF1ZXN0Qm9keS5kZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnJlcXVlc3RCb2R5LnJlcXVpcmVkICAgICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24ucmVxdWVzdEJvZHkucmVxdWlyZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5yZXF1ZXN0Qm9keS5jb250ZW50ICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLnJlcXVlc3RNb2RlbHNbY29udGVudFR5cGVdLm5hbWUgTGlua3MgdG8gY3VzdG9tLmRvY3VtZW50YXRpb24ubW9kZWxzLm5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0ucmVzcG9uc2VzICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5tZXRob2RSZXNwb25zZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBwYXRoW3BhdGhdLltvcGVyYXRpb25dLnJlc3BvbnNlcy5bc3RhdHVzQ29kZV0gICAgICAgICAgICAgfCBmdW5jdGlvbnMuZnVuY3Rpb25zLltodHRwIE9SIGh0dHBBcGldLmRvY3VtZW50YXRpb24ubWV0aG9kUmVzcG9uc2VzW3N0YXR1c0NvZGVdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcGF0aFtwYXRoXS5bb3BlcmF0aW9uXS5yZXNwb25zZXMuW3N0YXR1c0NvZGVdLmRlc2NyaXB0aW9uIHwgZnVuY3Rpb25zLmZ1bmN0aW9ucy5baHR0cCBPUiBodHRwQXBpXS5kb2N1bWVudGF0aW9uLm1ldGhvZFJlc3BvbnNlc1tzdGF0dXNDb2RlXS5yZXNwb25zZUJvZHkuZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHBhdGhbcGF0aF0uW29wZXJhdGlvbl0ucmVzcG9uc2VzLltzdGF0dXNDb2RlXS5jb250ZW50ICAgICB8IGZ1bmN0aW9ucy5mdW5jdGlvbnMuW2h0dHAgT1IgaHR0cEFwaV0uZG9jdW1lbnRhdGlvbi5tZXRob2RSZXNwb25zZXNbc3RhdHVzQ29kZV0ucmVzcG9uc2VNb2RlbHNbY29udGVudFR5cGVdIExpbmtzIHRvIGN1c3RvbS5kb2N1bWVudGF0aW9uLm1vZGVscy5uYW1lIHwKCiMjIyBDb25maWd1cmF0aW9uCgpUbyBjb25maWd1cmUgdGhpcyBwbHVnaW4gdG8gZ2VuZXJhdGUgYSB2YWxpZCBPcGVuQVBJIERlc2NyaXB0aW9uLCB0aGVyZSBhcmUgdHdvIHBsYWNlcyB5b3UnbGwgbmVlZCB0byBtb2RpZnkgaW4geW91ciBgc2VydmVybGVzcy55bWxgIGZpbGUsIHRoZSBgY3VzdG9tYCB2YXJpYWJsZXMgc2VjdGlvbiBhbmQgdGhlIGBodHRwL2h0dHBBcGlgIGV2ZW50IHNlY3Rpb24gZm9yIGVhY2ggZ2l2ZW4gZnVuY3Rpb24gaW4geW91ciBzZXJ2aWNlLgoKVGhlIGBjdXN0b21gIHNlY3Rpb24gb2YgeW91ciBgc2VydmVybGVzcy55bWxgIGNhbiBiZSBjb25maWd1cmVkIGFzIGJlbG93OgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgdmVyc2lvbjogIjEiCiAgICB0aXRsZTogIk15IEFQSSIKICAgIGRlc2NyaXB0aW9uOiAiVGhpcyBpcyBteSBBUEkiCiAgICB0ZXJtc09mU2VydmljZTogaHR0cHM6Ly9nb29nbGUuY29tCiAgICBleHRlcm5hbERvY3VtZW50YXRpb246CiAgICAgIHVybDogaHR0cHM6Ly9nb29nbGUuY29tCiAgICAgIGRlc2NyaXB0aW9uOiBBIGxpbmsgdG8gZ29vZ2xlCiAgICBzZXJ2ZXJzOgogICAgICB1cmw6IGh0dHBzOi8vZXhhbXBsZS5jb206e3BvcnR9LwogICAgICBkZXNjcmlwdGlvbjogVGhlIHNlcnZlcgogICAgICB2YXJpYWJsZXM6CiAgICAgICAgcG9ydDoKICAgICAgICAgIGVudW06CiAgICAgICAgICAgIC0gNDAwMAogICAgICAgICAgICAtIDMwMDAKICAgICAgICAgIGRlZmF1bHQ6IDMwMDAKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgcG9ydCB0aGUgc2VydmVyIG9wZXJhdGVzIG9uCiAgICB0YWdzOgogICAgICAtIG5hbWU6IHRhZzEKICAgICAgICBkZXNjcmlwdGlvbjogdGhpcyBpcyBhIHRhZwogICAgICAgIGV4dGVybmFsRG9jdW1lbnRhdGlvbjoKICAgICAgICAgIHVybDogaHR0cHM6Ly9ucG1qcy5jb20KICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIGxpbmsgdG8gbnBtCiAgICBtb2RlbHM6IHt9CmBgYAoKTW9zdGx5IGV2ZXJ5dGhpbmcgaGVyZSBpcyBvcHRpb25hbC4gQSB2ZXJzaW9uIGZyb20gYSBVVUlEIHdpbGwgYmUgZ2VuZXJhdGVkIGZvciB5b3UgaWYgeW91IGRvbid0IHNwZWNpZnkgb25lLCB0aXRsZSB3aWxsIGJlIHRoZSBuYW1lIG9mIHlvdXIgc2VydmljZSBpZiB5b3UgZG9uJ3Qgc3BlY2lmeSBvbmUuIFlvdSB3aWxsIG5lZWQgdG8gc3BlY2lmeSB0aGUgYGRvY3VtZW50YXRpb25gIHRvcCBvYmplY3QuCgojIyMjIHRlcm1zT2ZTZXJ2aWNlCgpNdXN0IGJlIGluIHRoZSBmb3JtYXQgb2YgYSB1cmwgaWYgaW5jbHVkZWQuCgojIyMjIENvbnRhY3QKCllvdSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbCBjb250YWN0IG9iamVjdCBzdWNoIGFzOgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgY29udGFjdDoKICAgICAgbmFtZTogSm9obgogICAgICB1cmw6IGh0dHBzOi8vZXhhbXBsZS5jb20KICAgICAgZW1haWw6IEpvaG5AZXhhbXBsZS5jb20KYGBgCgpUaGVzZSBmaWVsZHMgYXJlIG9wdGlvbmFsLCB0aG91Z2ggYHVybGAgbmVlZHMgdG8gaW4gdGhlIGZvcm0gb2YgYSBVUkwgYW5kIGBlbWFpbGAgbmVlZHMgdG8gYmUgaW4gdGhlIGZvcm1hdCBvZiBhbiBlbWFpbCBhZGRyZXNzIChlZDogd2hhdCB0aGF0IG1pZ2h0IGJlLCBJJ20gbm90IDEwMCUgc3VyZS4uLiBnbyByZWFkIHRoZSBlbWFpbCBSRkMocykpLgoKVGhpcyBjYW4gYmUgZXh0ZW5kZWQgdXNpbmcgdGhlIGBeeC1gIHNwZWNpZmljYXRpb24gZXh0ZW5zaW9uLgoKIyMjIyBMaWNlbnNlCgpZb3UgY2FuIHByb3ZpZGUgYW4gb3B0aW9uYWwgbGljZW5zZSBvYmplY3Qgc3VjaCBhczoKCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIGxpY2Vuc2U6CiAgICAgIG5hbWU6IEFwYWNoZSAyLjAKICAgICAgdXJsOiBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLmh0bWwKYGBgCgpOYW1lIGlzIHJlcXVpcmVkIGJ1dCBgdXJsYCBpcyBvcHRpb25hbCBhbmQgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IG9mIGEgdXJsLgoKVGhpcyBjYW4gYmUgZXh0ZW5kZWQgdXNpbmcgdGhlIGBeeC1gIHNwZWNpZmljYXRpb24gZXh0ZW5zaW9uLgoKIyMjIyBFeHRlbmRlZCBGaWVsZHMKCllvdSBjYW4gYWxzbyBhZGQgZXh0ZW5kZWQgZmllbGRzIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9iamVjdDoKCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIHgtb3RoZXItZmllbGQ6IFRoaXMgaXMgYW4gZXh0ZW5kZWQgZmllbGQKYGBgCgpUaGVzZSBmaWVsZHMgbXVzdCBoYXZlIGB4LWAgYmVmb3JlIHRoZW0sIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgaWdub3JlZDoKCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIG90aGVyLWZpZWxkOiBUaGlzIGlzIGFuIGV4dGVuZGVkIGZpZWxkCmBgYAoKYG90aGVyLWZpZWxkYCBoZXJlIHdpbGwgbm90IG1ha2UgaXQgdG8gdGhlIGdlbmVyYXRlZCBPcGVuQVBJIHNjaGVtYS4KCkN1cnJlbnRseSBleHRlbmRlZCBzcGVjaWZpY2F0aW9uIGZpZWxkcyBkZWZpbmVkIHVuZGVyIHRoZSBgZG9jdW1lbnRhdGlvbmAgdGFnIHdpbGwgc2l0IHVuZGVyIHRoZSBPcGVuQVBJIGBpbmZvYCBvYmplY3QgZS5nLgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgdGl0bGU6IG15U2VydmljZQogICAgeC1vdGhlci1maWVsZDogVGhpcyBpcyBhbiBleHRlbmRlZCBmaWVsZApgYGAKCmNvbnZlcnRzIHRvOgoKYGBganNvbgp7CiAgImluZm8iOiB7CiAgICAidGl0bGUiOiAibXlTZXJ2aWNlIiwKICAgICJ4LW90aGVyLWZpZWxkIjogIlRoaXMgaXMgYW4gZXh0ZW5kZWQgZmllbGQiCiAgfQp9CmBgYAoKQW4gZXhjZXB0aW9uIHRvIHRoaXMgaXMgUmVkb2NseSBgeC10YWdHcm91cHNgLiBJZiBkZWZpbmVkLCB0aGV5IHdpbGwgc2l0IGF0IHRoZSByb290IGxldmVsIG9mIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIGUuZy4KCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIHRpdGxlOiBteVNlcnZpY2UKICAgIHgtb3RoZXItZmllbGQ6IFRoaXMgaXMgYW4gZXh0ZW5kZWQgZmllbGQKICAgIHgtdGFnR3JvdXBzOgogICAgICAtIG5hbWU6IEN1c3RvbWVycwogICAgICAgIHRhZ3M6CiAgICAgICAgICAtIEN1c3RvbWVycwpgYGAKCmNvbnZlcnRzIHRvOgoKYGBganNvbgp7CiAgImluZm8iOiB7CiAgICAidGl0bGUiOiAibXlTZXJ2aWNlIiwKICAgICJ4LW90aGVyLWZpZWxkIjogIlRoaXMgaXMgYW4gZXh0ZW5kZWQgZmllbGQiCiAgfSwKICAieC10YWdHcm91cHMiOiBbCiAgICB7CiAgICAgICJuYW1lIjogIkN1c3RvbWVycyIsCiAgICAgICJ0YWdzIjogWyJDdXN0b21lcnMiXQogICAgfQogIF0KfQpgYGAKCiMjIyMgTW92aW5nIGRvY3VtZW50YXRpb24gdG8gYSBzZXBhcmF0ZSBmaWxlCgpUaGVzZSBjb25maWd1cmF0aW9ucyBjYW4gYmUgcXVpdGUgdmVyYm9zZTsgeW91IGNhbiBzZXBhcmF0ZSBpdCBvdXQgaW50byBpdCdzIG93biBmaWxlLCBzdWNoIGFzIGBzZXJ2ZXJsZXNzLmRvYy55bWxgIGFzIGJlbG93OgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOiAke2ZpbGUoc2VydmVybGVzcy5kb2MueW1sKTpkb2N1bWVudGF0aW9ufQoKZnVuY3Rpb25zOgogIG15RnVuYzoKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgICAgcGF0aDogZ2V0U3R1ZmYKICAgICAgICAgIG1ldGhvZDogZ2V0CiAgICAgICAgICBkb2N1bWVudGF0aW9uOiAke2ZpbGUoc2VydmVybGVzcy5kb2MueW1sKTplbmRwb2ludHMubXlGdW5jfQpgYGAKCkZvciBtb3JlIGluZm8gb24gYHNlcnZlcmxlc3MueW1sYCBzeW50YXgsIHNlZSB0aGVpciBkb2NzLgoKIyMjIyBzZWN1cml0eVNjaGVtZXMKCllvdSBjYW4gcHJvdmlkZSBvcHRpb25hbCBTZWN1cml0eSBTY2hlbWVzOgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgc2VjdXJpdHlTY2hlbWVzOgogICAgICBteV9hcGlfa2V5OgogICAgICAgIHR5cGU6IGFwaUtleQogICAgICAgIG5hbWU6IGFwaV9rZXkKICAgICAgICBpbjogaGVhZGVyCmBgYAoKSXQgYWNjZXB0cyBhbGwgYXZhaWxhYmxlIFNlY3VyaXR5IFNjaGVtZXMgYW5kIGZvbGxvd3MgdGhlIHNwZWNpZmljYXRpb246IGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMyNzZWN1cml0eS1zY2hlbWUtb2JqZWN0CgojIyMjIFNlY3VyaXR5IG9uIGVhY2ggb3BlcmF0aW9uCgpUbyBhcHBseSBhbiBvdmVyYWxsIHNlY3VyaXR5IHNjaGVtZSB0byBhbGwgb2YgeW91ciBvcGVyYXRpb25zIHdpdGhvdXQgaGF2aW5nIHRvIGFkZCB0aGUgZG9jdW1lbnRhdGlvbiB0byBlYWNoIG9uZSwgeW91IGNhbiB3cml0ZSBpdCBsaWtlOgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgc2VjdXJpdHlTY2hlbWVzOgogICAgICBteV9hcGlfa2V5OgogICAgICAgIHR5cGU6IGFwaUtleQogICAgICAgIG5hbWU6IGFwaV9rZXkKICAgICAgICBpbjogaGVhZGVyCiAgICBzZWN1cml0eToKICAgICAgLSBteV9hcGlfa2V5OiBbXQpgYGAKClRoaXMgd2lsbCBhcHBseSB0aGUgcmVxdWlyZW1lbnQgb2YgZWFjaCBvcGVyYXRpb24gcmVxdWlyaW5nIHlvdXIgYG15X2FwaV9rZXlgIHNlY3VyaXR5IHNjaGVtZSwgW3lvdSBjYW4gb3ZlcnJpZGUgdGhpc10oI3NlY3VyaXR5KS4KCiMjIyMgTW9kZWxzCgpUaGVyZSBhcmUgdHdvIHdheXMgdG8gd3JpdGUgdGhlIE1vZGVscy4gTW9kZWxzIGNvbnRhaW4gYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0aGF0IHlvdSBjYW4gdXNlIHRvIGRlZmluZSBzY2hlbWFzIGZvciBlbmRwb2ludHMuIFlvdSBtdXN0IGRlZmluZSB0aGUgX2NvbnRlbnQgdHlwZV8gZm9yIGVhY2ggc2NoZW1hIHRoYXQgeW91IHByb3ZpZGUgaW4gdGhlIG1vZGVscy4KClRoZSBmaXJzdCB3YXkgb2Ygd3JpdGluZyB0aGUgbW9kZWwgaXM6Cl9yZXF1aXJlZF8gZGlyZWN0aXZlcyBmb3IgdGhlIG1vZGVscyBzZWN0aW9uIGFyZSBhcyBmb2xsb3c6CgotIGBuYW1lYDogdGhlIG5hbWUgb2YgdGhlIHNjaGVtYQotIGBkZXNjcmlwdGlvbmA6IGEgZGVzY3JpcHRpb24gb2YgdGhlIHNjaGVtYQotIGBjb250ZW50VHlwZWA6IHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIGRlc2NyaWJlZCByZXF1ZXN0L3Jlc3BvbnNlIChpZS4gYGFwcGxpY2F0aW9uL2pzb25gIG9yIGBhcHBsaWNhdGlvbi94bWxgKS4KLSBgc2NoZW1hYDogVGhlIEpTT04gU2NoZW1hIChbd2Vic2l0ZV0oaHR0cDovL2pzb24tc2NoZW1hLm9yZy8pKSB0aGF0IGRlc2NyaWJlcyB0aGUgbW9kZWwuIFlvdSBjYW4gZWl0aGVyIHVzZSBpbmxpbmUgYFlBTUxgIHRvIGRlZmluZSB0aGVzZSBvciB1c2UgZWl0aGVyIGFuIGV4dGVybmFsIGZpbGUgc2NoZW1hIHRoYXQgc2VydmVybGVzcyB3aWxsIHJlc29sdmUgKGFzIGJlbG93KSwgb3IgYSByZWZlcmVuY2UgdG8gYW4gZXh0ZXJuYWxseSBob3N0ZWQgc2NoZW1hIHRoYXQgd2lsbCBiZSBhdHRlbXB0ZWQgdG8gYmUgcmVzb2x2ZWQuCgpgYGB5bWwKY3VzdG9tOgogIGRvY3VtZW50YXRpb246CiAgICBtb2RlbHM6CiAgICAgIC0gbmFtZTogIkVycm9yUmVzcG9uc2UiCiAgICAgICAgZGVzY3JpcHRpb246ICJUaGlzIGlzIGFuIGVycm9yIgogICAgICAgIGNvbnRlbnRUeXBlOiAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBzY2hlbWE6ICR7ZmlsZShtb2RlbHMvRXJyb3JSZXNwb25zZS5qc29uKX0KICAgICAgLSBuYW1lOiAiUHV0RG9jdW1lbnRSZXNwb25zZSIKICAgICAgICBkZXNjcmlwdGlvbjogIlBVVCBEb2N1bWVudCByZXNwb25zZSBtb2RlbCAoZXh0ZXJuYWwgcmVmZXJlbmNlIGV4YW1wbGUpIgogICAgICAgIGNvbnRlbnRUeXBlOiAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBzY2hlbWE6ICR7ZmlsZShtb2RlbHMvUHV0RG9jdW1lbnRSZXNwb25zZS5qc29uKX0KICAgICAgLSBuYW1lOiAiUHV0RG9jdW1lbnRSZXF1ZXN0IgogICAgICAgIGRlc2NyaXB0aW9uOiAiUFVUIERvY3VtZW50IHJlcXVlc3QgbW9kZWwgKGlubGluZSBleGFtcGxlKSIKICAgICAgICBjb250ZW50VHlwZTogImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgJHNjaGVtYTogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgU29tZU9iamVjdDoKICAgICAgICAgICAgICB0eXBlOiAib2JqZWN0IgogICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICBTb21lQXR0cmlidXRlOgogICAgICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgLSBuYW1lOiBzb21lT2JqZWN0SW5saW5lRXhhbXBsZQogICAgICAgICAgICBzdW1tYXJ5OiBhbiBleGFtcGxlIG9mIGEgcmVxdWVzdAogICAgICAgICAgICBkZXNjcmlwdGlvbjogYSBsb25nZXIgc3RyaW5nIHRoYW4gdGhlIHN1bW1hcnkKICAgICAgICAgICAgdmFsdWU6IHsgU29tZU9iamVjdDogeyBTb21lQXR0cmlidXRlOiAiYXR0cmlidXRlIiB9IH0KICAgICAgICAgIC0gbmFtZTogc29tZU9iamVjdEV4dGVybmFsRXhhbXBsZQogICAgICAgICAgICBzdW1tYXJ5OiBhbiBleGFtcGxlIG9mIGEgcmVxdWVzdCBleHRlcm5hbAogICAgICAgICAgICBkZXNjcmlwdGlvbjogYSBsb25nZXIgc3RyaW5nIHRoYW4gdGhlIHN1bW1hcnkKICAgICAgICAgICAgZXh0ZXJuYWxWYWx1ZTogaHR0cHM6Ly9leGFtcGxlLmNvbS9leHRlcm5hbC5qc29uCmBgYAoKVGhlIFNlY29uZCB3YXkgb2Ygd3JpdGluZyB0aGUgbW9kZWxzOgoKLSBgbmFtZWA6IHRoZSBuYW1lIG9mIHRoZSBzY2hlbWEKLSBgZGVzY3JpcHRpb25gOiBhIGRlc2NyaXB0aW9uIG9mIHRoZSBzY2hlbWEKLSBgY29udGVudGA6IGFuIE9iamVjdCBtYWRlIHVwIG9mIHRoZSBjb250ZW50VHlwZSBhbmQgdGhlIHNjaGVtYSwgYXMgc2hvd24gYmVsb3cKCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIG1vZGVsczoKICAgICAgLSBuYW1lOiAiRXJyb3JSZXNwb25zZSIKICAgICAgICBkZXNjcmlwdGlvbjogIlRoaXMgaXMgYW4gZXJyb3IiCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYTogJHtmaWxlKG1vZGVscy9FcnJvclJlc3BvbnNlLmpzb24pfQogICAgICAtIG5hbWU6ICJQdXREb2N1bWVudFJlc3BvbnNlIgogICAgICAgIGRlc2NyaXB0aW9uOiAiUFVUIERvY3VtZW50IHJlc3BvbnNlIG1vZGVsIChleHRlcm5hbCByZWZlcmVuY2UgZXhhbXBsZSkiCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYTogJHtmaWxlKG1vZGVscy9QdXREb2N1bWVudFJlc3BvbnNlLmpzb24pfQogICAgICAtIG5hbWU6ICJQdXREb2N1bWVudFJlcXVlc3QiCiAgICAgICAgZGVzY3JpcHRpb246ICJQVVQgRG9jdW1lbnQgcmVxdWVzdCBtb2RlbCAoaW5saW5lIGV4YW1wbGUpIgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHNjaGVtYTogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIKICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgU29tZU9iamVjdDoKICAgICAgICAgICAgICAgICAgdHlwZTogIm9iamVjdCIKICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgICBTb21lQXR0cmlidXRlOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICAgICAgLSBuYW1lOiBzb21lT2JqZWN0SW5saW5lRXhhbXBsZQogICAgICAgICAgICAgICAgc3VtbWFyeTogYW4gZXhhbXBsZSBvZiBhIHJlcXVlc3QKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBhIGxvbmdlciBzdHJpbmcgdGhhbiB0aGUgc3VtbWFyeQogICAgICAgICAgICAgICAgdmFsdWU6IHsgU29tZU9iamVjdDogeyBTb21lQXR0cmlidXRlOiAiYXR0cmlidXRlIiB9IH0KICAgICAgICAgICAgICAtIG5hbWU6IHNvbWVPYmplY3RFeHRlcm5hbEV4YW1wbGUKICAgICAgICAgICAgICAgIHN1bW1hcnk6IGFuIGV4YW1wbGUgb2YgYSByZXF1ZXN0IGV4dGVybmFsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYSBsb25nZXIgc3RyaW5nIHRoYW4gdGhlIHN1bW1hcnkKICAgICAgICAgICAgICAgIGV4dGVybmFsVmFsdWU6IGh0dHBzOi8vZXhhbXBsZS5jb20vZXh0ZXJuYWwuanNvbgpgYGAKCiMjIyMjIE1vZGVsIHJlLXVzZQoKVGhyb3VnaCB0aGUgbWFnaWMgb2YgWUFNTCwgeW91IGNhbiByZS11c2UgbW9kZWxzOgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgLi4uCiAgICBtb2RlbHM6CiAgICAgIC0gbmFtZTogIkVycm9yUmVzcG9uc2UiCiAgICAgICAgZGVzY3JpcHRpb246ICJUaGlzIGlzIGFuIGVycm9yIgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6ICZFcnJvckl0ZW0KICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgbWVzc2FnZToKICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICBjb2RlOgogICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCgogICAgICAtIG5hbWU6ICJQdXREb2N1bWVudFJlc3BvbnNlIgogICAgICAgIGRlc2NyaXB0aW9uOiAiUFVUIERvY3VtZW50IHJlc3BvbnNlIG1vZGVsIChleHRlcm5hbCByZWZlcmVuY2UgZXhhbXBsZSkiCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgIGl0ZW1zOiAqRXJyb3JJdGVtCmBgYAoKYCZFcnJvckl0ZW1gIGluIHRoZSBhYm92ZSBleGFtcGxlIGNyZWF0ZXMgYSBub2RlIGFuY2hvciAoJkVycm9ySXRlbSkgdG8gdGhlIGBFcnJvclJlc3BvbnNlYCBzY2hlbWEgd2hpY2ggdGhlbiBjYW4gYmUgdXNlZCBpbiB0aGUgYFB1dERvY3VtZW50UmVzcG9uc2VgIHNjaGVtYSB2aWEgdGhlIHJlZmVyZW5jZSAoXCpFcnJvckl0ZW0pLiBUaGUgbm9kZSBhbmNob3IgbmVlZHMgdG8gYmUgZGVjbGFyZWQgZmlyc3QgYmVmb3JlIGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSB2aWEgdGhlIHJlZmVyZW5jZSwgc3dhcHBpbmcgdGhlIGFib3ZlIGV4YW1wbGUgYXJvdW5kIHdvdWxkIHJlc3VsdCBpbiBhbiBlcnJvci4KCiMjIyMjIE1vZGVsc0xpc3QgLSBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eQoKSXQgd2FzIGJyb3VnaHQgdG8gbXkgYXR0ZW50aW9uIHRoYXQgYW4gb2xkZXIgcGx1Z2luIHZlcnNpb24gYWxsb3dlZCB0aGUgdXNlIG9mIGBtb2RlbHNMaXN0YC4gQXMgb2YgMC4wLjYwLCB5b3UgY2FuIGNvbnRpbnVlIHRvIHVzZSBgbW9kZWxzTGlzdGAgYXMgd2VsbCBhcyB1c2luZyBgbW9kZWxzYCwgaG93ZXZlciBgbW9kZWxzTGlzdGAgbm93IGhhcyB0byBiZSBuZXN0ZWQgd2l0aGluIHRoZSBgZG9jdW1lbnRhdGlvbmAgc2VjdGlvbi4gWW91IGNhbiB3cml0ZSBgbW9kZWxzTGlzdGAgdGhlIHNhbWUgd2F5IGFzIGFueSBvZiB0aGUgdHdvIHN0eWxlcyBmb3IgW01vZGVsc10oI01vZGVscykuCgpgYGAKY3VzdG9tOgogIGRvY3VtZW50YXRpb246CiAgICAuLi4KICAgIG1vZGVsc0xpc3Q6CiAgICAgIC0gbmFtZTogIkVycm9yUmVzcG9uc2UiCiAgICAgICAgZGVzY3JpcHRpb246ICJUaGlzIGlzIGFuIGVycm9yIgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCmBgYAoKIyMjIyMgU2VydmVybGVzcyBSZXF1ZXN0IFNjaGVtYSBWYWxpZGF0b3JzCgpBcyBvZiAwLjAuNjQsIHlvdSBjYW4gbm93IG1ha2UgdXNlIG9mIFtSZXF1ZXN0IFNjaGVtYSBWYWxpZGF0b3JzXShodHRwczovL3d3dy5zZXJ2ZXJsZXNzLmNvbS9mcmFtZXdvcmsvZG9jcy9wcm92aWRlcnMvYXdzL2V2ZW50cy9hcGlnYXRld2F5I3JlcXVlc3Qtc2NoZW1hLXZhbGlkYXRvcnMpLiBUaGlzIGFsbG93cyB5b3UgdG8gZGVmaW5lIFJlcXVlc3QgbW9kZWxzIHZpYSB0aGUgYGFwaUdhdGV3YXlgIHNldHRpbmdzOgoKYGBgeW1sCnByb3ZpZGVyOgogIC4uLgogIGFwaUdhdGV3YXk6CiAgICByZXF1ZXN0OgogICAgICBzY2hlbWFzOgogICAgICAgIHBvc3QtY3JlYXRlLW1vZGVsOgogICAgICAgICAgbmFtZTogUG9zdENyZWF0ZU1vZGVsCiAgICAgICAgICBzY2hlbWE6ICR7ZmlsZShhcGlfc2NoZW1hL3Bvc3RfYWRkX3NjaGVtYS5qc29uKX0KICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQSBNb2RlbCB2YWxpZGF0aW9uIGZvciBhZGRpbmcgcG9zdHMiCmBgYAoKd2hpY2ggYXJlIHRoZW4gdXNlZCBsaWtlOgoKYGBgeW1sCmZ1bmN0aW9uczoKICBjcmVhdGU6CiAgICBoYW5kbGVyOiBwb3N0cy5jcmVhdGUKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgICAgcGF0aDogcG9zdHMvY3JlYXRlCiAgICAgICAgICBtZXRob2Q6IHBvc3QKICAgICAgICAgIHJlcXVlc3Q6CiAgICAgICAgICAgIHNjaGVtYXM6CiAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjogcG9zdC1jcmVhdGUtbW9kZWwKICAgICAgICAgIGRvY3VtZW50YXRpb246IC4uLgpgYGAKClRoZSBnZW5lcmF0b3Igd2lsbCBtYXRjaCB0byB0aGUgbW9kZWwgd2l0aGluIHRoZSBgYXBpR2F0ZXdheWAgc2V0dGluZ3MgbW9kZWwgbGlzdC4gSWYgeW91IGFyZSB1c2luZyB0aGUgYGFwaUdhdGV3YXlgIHRvIGRlZmluZSBtb2RlbHMsIHBsZWFzZSBkbyBub3QgcmUtdXNlIGFueSBuYW1lcyB0aGF0IHlvdSBtaWdodCBkZWZpbmUgaW4gdGhlIFtgbW9kZWxzYF0oI21vZGVscykgbGlzdC4KCllvdSBjYW4gYWxzbyBza2lwIHdyaXRpbmcgYSBgcmVxdWVzdEJvZHlgIGFuZCBgcmVxdWVzdE1vZGVsc2AgaWYgeW91IGhhdmUgZGVmaW5lZCBhIGByZXF1ZXN0YCBwcm9wZXJ0eSBpbiB5b3VyIGV2ZW50LgoKSWYgeW91J3JlIG5vdCB1c2luZyBgYXBpR2F0ZXdheWAsIHlvdSBjYW4gc3RpbGwgbWFrZSB1c2Ugb2YgYHJlcXVlc3RgIGJ5IHdyaXRpbmcgaW4gdGhlIG90aGVyIHN0eWxlcyB0aGF0IHNlcnZlcmxlc3MgYWNjZXB0cyBmb3IgUmVxdWVzdCBTY2hlbWEgVmFsaWRhdG9yczoKCmBgYHltbApmdW5jdGlvbnM6CiAgY3JlYXRlOgogICAgaGFuZGxlcjogcG9zdHMuY3JlYXRlCiAgICBldmVudHM6CiAgICAgIC0gaHR0cDoKICAgICAgICAgIHBhdGg6IHBvc3RzL2NyZWF0ZQogICAgICAgICAgbWV0aG9kOiBwb3N0CiAgICAgICAgICByZXF1ZXN0OgogICAgICAgICAgICBzY2hlbWFzOgogICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgICBzY2hlbWE6ICR7ZmlsZShjcmVhdGVfcmVxdWVzdC5qc29uKX0KICAgICAgICAgICAgICAgIG5hbWU6IFBvc3RDcmVhdGVNb2RlbAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJWYWxpZGF0aW9uIG1vZGVsIGZvciBDcmVhdGluZyBQb3N0cyIKYGBgCgpvcgoKYGBgeW1sCmZ1bmN0aW9uczoKICBjcmVhdGU6CiAgICBoYW5kbGVyOiBwb3N0cy5jcmVhdGUKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgICAgcGF0aDogcG9zdHMvY3JlYXRlCiAgICAgICAgICBtZXRob2Q6IHBvc3QKICAgICAgICAgIHJlcXVlc3Q6CiAgICAgICAgICAgIHNjaGVtYXM6CiAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjogJHtmaWxlKGNyZWF0ZV9yZXF1ZXN0Lmpzb24pfQpgYGAKCiMjIyMgRnVuY3Rpb25zCgpUbyBkZWZpbmUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGEgZ2l2ZW4gZnVuY3Rpb24gZXZlbnQsIHlvdSBuZWVkIHRvIGNyZWF0ZSBhIGBkb2N1bWVudGF0aW9uYCBhdHRyaWJ1dGUgZm9yIHlvdXIgYGh0dHBgIG9yIGBodHRwQXBpYCBldmVudCBpbiB5b3VyIGBzZXJ2ZXJsZXNzLnltbGAgZmlsZS4KClRoZSBgZG9jdW1lbnRhdGlvbmAgc2VjdGlvbiBvZiB0aGUgZXZlbnQgY29uZmlndXJhdGlvbiBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CgotIGBzdW1tYXJ5YDogQSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgbWV0aG9kCi0gYGRlc2NyaXB0aW9uYDogQSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgbWV0aG9kCi0gYHRhZ3NgOiBBbiBhcnJheSBvZiB0YWdzIGZvciB0aGlzIGV2ZW50Ci0gYGRlcHJlY2F0ZWRgOiBCb29sZWFuIGluZGljYXRvciB0aGF0IGluZGljYXRlcyBjbGllbnRzIHNob3VsZCBtaWdyYXRlIGF3YXkgZnJvbSB0aGlzIGZ1bmN0aW9uCi0gYHJlcXVlc3RCb2R5YDogQ29udGFpbnMgZGVzY3JpcHRpb24gb2YgdGhlIHJlcXVlc3QKICAtIGBkZXNjcmlwdGlvbmA6IEEgZGVzY3JpcHRpb24gb2YgdGhlIHJlcXVlc3QgYm9keQogIC0gYHJlcXVpcmVkYDogV2hldGhlciB0aGUgcmVxdWVzdCBib2R5IGlzIHJlcXVpcmVkLCBkZWZhdWx0cyB0byBmYWxzZQotIGByZXF1ZXN0TW9kZWxzYDogQSBsaXN0IG9mIG1vZGVscyB0byBkZXNjcmliZSB0aGUgcmVxdWVzdCBib2RpZXMgKHNlZSBbcmVxdWVzdE1vZGVsc10oI3JlcXVlc3Rtb2RlbHMpIGJlbG93KQotIGBxdWVyeVBhcmFtc2A6IEEgbGlzdCBvZiBxdWVyeSBwYXJhbWV0ZXJzIChzZWUgW3F1ZXJ5UGFyYW1zXSgjcXVlcnlwYXJhbXMpIGJlbG93KQotIGBwYXRoUGFyYW1zYDogQSBsaXN0IG9mIHBhdGggcGFyYW1ldGVycyAoc2VlIFtwYXRoUGFyYW1zXSgjcGF0aHBhcmFtcykgYmVsb3cpCi0gYGNvb2tpZVBhcmFtc2A6IEEgbGlzdCBvZiBjb29raWUgcGFyYW1ldGVycyAoc2VlIFtjb29raWVQYXJhbXNdKCNjb29raWVwYXJhbXMpIGJlbG93KQotIGBoZWFkZXJQYXJhbXNgOiBBIGxpc3Qgb2YgaGVhZGVycyAoc2VlIFtoZWFkZXJQYXJhbXNdKCNoZWFkZXJwYXJhbXMtLS1yZXF1ZXN0LWhlYWRlcnMpIGJlbG93KQotIGBzZWN1cml0eWA6IFRoZSBzZWN1cml0eSByZXF1aXJlbWVudCB0byBhcHBseSAoc2VlIFtzZWN1cml0eV0oI3NlY3VyaXR5KSBiZWxvdykKLSBgbWV0aG9kUmVzcG9uc2VzYDogQW4gYXJyYXkgb2YgcmVzcG9uc2UgbW9kZWxzIGFuZCBhcHBsaWNhYmxlIHN0YXR1cyBjb2RlcwogIC0gYHN0YXR1c0NvZGVgOiBBcHBsaWNhYmxlIGh0dHAgc3RhdHVzIGNvZGUgKGllLiAyMDAvNDA0LzUwMCBldGMuKQogIC0gYHJlc3BvbnNlQm9keWA6IENvbnRhaW5zIGRlc2NyaXB0aW9uIG9mIHRoZSByZXNwb25zZQogICAgLSBgZGVzY3JpcHRpb25gOiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBib2R5IHJlc3BvbnNlCiAgLSBgcmVzcG9uc2VIZWFkZXJzYDogQSBsaXN0IG9mIHJlc3BvbnNlIGhlYWRlcnMgKHNlZSBbcmVzcG9uc2VIZWFkZXJzXSgjcmVzcG9uc2VoZWFkZXJzKSBiZWxvdykKICAtIGByZXNwb25zZU1vZGVsc2A6IEEgbGlzdCBvZiBtb2RlbHMgdG8gZGVzY3JpYmUgdGhlIHJlcXVlc3QgYm9kaWVzIChzZWUgW3Jlc3BvbnNlTW9kZWxzXSgjcmVzcG9uc2Vtb2RlbHMpIGJlbG93KSBmb3IgZWFjaCBgQ29udGVudC1UeXBlYAoKSWYgeW91IGRvbid0IHdhbnQgYSBgaHR0cGAgb3IgYGh0dHBBcGlgIGV2ZW50IHRvIGJlIGRvY3VtZW50ZWQsIHlvdSBjYW4gbGVhdmUgb2ZmIHRoZSBgZG9jdW1lbnRhdGlvbmAgb2JqZWN0LiBUaGUgY29uZmlndXJhdGlvbiBzY2hlbWEgd2lsbCBvbmx5IGNoZWNrIHRoYXQgeW91IGhhdmUgc3BlY2lmaWVkIGEgYG1ldGhvZFJlc3BvbnNlc2Agb24gdGhlIGBkb2N1bWVudGF0aW9uYCBldmVudCwgcHJldmlvdXNseSB0aGUgcGx1Z2luIHdvdWxkIGNhdXNlIHNlcnZlcmxlc3MgdG8gd2FybiBvciBlcnJvciAoZGVwZW5kaW5nIG9uIHlvdXIgYGNvbmZpZ1ZhbGlkYXRpb25Nb2RlYCkgaWYgeW91IGhhZCBub3Qgc3VwcGxpZWQgYSBgZG9jdW1lbnRhdGlvbmAgb24gYW4gZXZlbnQuCgpgYGB5bWwKZnVuY3Rpb25zOgogIGNyZWF0ZVVzZXI6CiAgICBoYW5kbGVyOiBoYW5kbGVyLmNyZWF0ZQogICAgZXZlbnRzOgogICAgICAtIGh0dHA6CiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgbWV0aG9kOiBwb3N0CiAgICAgICAgY29yczogdHJ1ZQogICAgICAgIHN1bW1hcnk6CiAgICAgICAgZG9jdW1lbnRhdGlvbjoKICAgICAgICAgIHN1bW1hcnk6ICJDcmVhdGUgVXNlciIKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ3JlYXRlcyBhIHVzZXIgYW5kIHRoZW4gc2VuZHMgYSBnZW5lcmF0ZWQgcGFzc3dvcmQgZW1haWwiCiAgICAgICAgICB0YWdzOgogICAgICAgICAgICAtIHRhZzEKICAgICAgICAgIGV4dGVybmFsRG9jdW1lbnRhdGlvbjoKICAgICAgICAgICAgdXJsOiBodHRwczovL2JpbmcuY29tCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIGxpbmsgdG8gYmluZwogICAgICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQSB1c2VyIGluZm9ybWF0aW9uIG9iamVjdCIKICAgICAgICAgIHJlcXVlc3RNb2RlbHM6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246ICJQdXREb2N1bWVudFJlcXVlc3QiCiAgICAgICAgICBwYXRoUGFyYW1zOgogICAgICAgICAgICAtIG5hbWU6ICJ1c2VybmFtZSIKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlRoZSB1c2VybmFtZSBmb3IgYSB1c2VyIHRvIGNyZWF0ZSIKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgICAgICAgICAgcGF0dGVybjogIl5bLWEtejAtOV9dKyQiCiAgICAgICAgICBxdWVyeVBhcmFtczoKICAgICAgICAgICAgLSBuYW1lOiAibWVtYmVyc2hpcFR5cGUiCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJUaGUgdXNlcidzIE1lbWJlcnNoaXAgVHlwZSIKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgICAgICAgICAgZW51bToKICAgICAgICAgICAgICAgICAgLSAicHJlbWl1bSIKICAgICAgICAgICAgICAgICAgLSAic3RhbmRhcmQiCiAgICAgICAgICBjb29raWVQYXJhbXM6CiAgICAgICAgICAgIC0gbmFtZTogIlNlc3Npb25JZCIKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkEgU2Vzc2lvbiBJRCB2YXJpYWJsZSIKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgICAgaGVhZGVyUGFyYW1zOgogICAgICAgICAgICBuYW1lOiAiQ29udGVudC1UeXBlIgogICAgICAgICAgICBkZXNjcmlwdGlvbjogIlRoZSBjb250ZW50IHR5cGUiCiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgICAgbWV0aG9kUmVzcG9uc2VzOgogICAgICAgICAgICAtIHN0YXR1c0NvZGU6IDIwMQogICAgICAgICAgICAgIHJlc3BvbnNlQm9keToKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQSB1c2VyIG9iamVjdCBhbG9uZyB3aXRoIGdlbmVyYXRlZCBBUEkgS2V5cyIKICAgICAgICAgICAgICByZXNwb25zZU1vZGVsczoKICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246ICJQdXREb2N1bWVudFJlc3BvbnNlIgogICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyczoKICAgICAgICAgICAgICAgIFgtUmF0ZS1MaW1pdC1MaW1pdDoKICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBudW1iZXIgb2YgYWxsb3dlZCByZXF1ZXN0cyBpbiB0aGUgY3VycmVudCBwZXJpb2QKICAgICAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgLSBzdGF0dXNDb2RlOiA1MDAKICAgICAgICAgICAgICByZXNwb25zZUJvZHk6CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkFuIGVycm9yIG1lc3NhZ2Ugd2hlbiBjcmVhdGluZyBhIG5ldyB1c2VyIgogICAgICAgICAgICAgIHJlc3BvbnNlTW9kZWxzOgogICAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjogIkVycm9yUmVzcG9uc2UiCmBgYAoKIyMjIyBgcXVlcnlQYXJhbXNgCgpRdWVyeSBwYXJhbWV0ZXJzIGNhbiBiZSBkZXNjcmliZWQgYXMgZm9sbG93OgoKLSBgbmFtZWA6IHRoZSBuYW1lIG9mIHRoZSBxdWVyeSB2YXJpYWJsZQotIGBkZXNjcmlwdGlvbmA6IGEgZGVzY3JpcHRpb24gb2YgdGhlIHF1ZXJ5IHZhcmlhYmxlCi0gYHJlcXVpcmVkYDogd2hldGhlciB0aGUgcXVlcnkgcGFyYW1ldGVyIGlzIG1hbmRhdG9yeSAoYm9vbGVhbikKLSBgc2NoZW1hYDogSlNPTiBzY2hlbWEgKGlubGluZSwgZmlsZSBvciBleHRlcm5hbGx5IGhvc3RlZCkKCmBgYHltbApxdWVyeVBhcmFtczoKICAtIG5hbWU6ICJmaWx0ZXIiCiAgICBkZXNjcmlwdGlvbjogIlRoZSBmaWx0ZXIgcGFyYW1ldGVyIgogICAgcmVxdWlyZWQ6IHRydWUKICAgIHNjaGVtYToKICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyMjIGBwYXRoUGFyYW1zYAoKUGF0aCBwYXJhbWV0ZXJzIGNhbiBiZSBkZXNjcmliZWQgYXMgZm9sbG93OgoKLSBgbmFtZWA6IHRoZSBuYW1lIG9mIHRoZSBwYXRoIHBhcmFtZXRlcgotIGBkZXNjcmlwdGlvbmA6IGEgZGVzY3JpcHRpb24gb2YgdGhlIHBhdGggcGFyYW1ldGVyCi0gYHNjaGVtYWA6IEpTT04gc2NoZW1hIChpbmxpbmUsIGZpbGUgb3IgZXh0ZXJuYWxseSBob3N0ZWQpCgpgYGB5bWwKcGF0aFBhcmFtczoKICAtIG5hbWU6ICJ1c2VybmFtZUlkIgogICAgZGVzY3JpcHRpb246ICJUaGUgdXNlcm5hbWVJZCBwYXJhbWV0ZXIiCiAgICBzY2hlbWE6CiAgICAgIHR5cGU6ICJzdHJpbmciCmBgYAoKIyMjIyBgY29va2llUGFyYW1zYAoKQ29va2llIHBhcmFtZXRlcnMgY2FuIGJlIGRlc2NyaWJlZCBhcyBmb2xsb3c6CgotIGBuYW1lYDogdGhlIG5hbWUgb2YgdGhlIGNvb2tpZSBwYXJhbWV0ZXIKLSBgZGVzY3JpcHRpb25gOiBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb29raWUgcGFyYW1ldGVyCi0gYHJlcXVpcmVkYDogd2hldGhlciB0aGUgY29va2llIHBhcmFtZXRlciBpcyBtYW5kYXRvcnkgKGJvb2xlYW4pCi0gYHNjaGVtYWA6IEpTT04gc2NoZW1hIChpbmxpbmUsIGZpbGUgb3IgZXh0ZXJuYWxseSBob3N0ZWQpCgpgYGB5bWwKY29va2llUGFyYW1zOgogIC0gbmFtZTogInNlc3Npb25JZCIKICAgIGRlc2NyaXB0aW9uOiAiVGhlIHNlc3Npb25JZCBwYXJhbWV0ZXIiCiAgICByZXF1aXJlZDogdHJ1ZQogICAgc2NoZW1hOgogICAgICB0eXBlOiAic3RyaW5nIgpgYGAKCiMjIyMgYGhlYWRlclBhcmFtc2AgLSBSZXF1ZXN0IEhlYWRlcnMKClJlcXVlc3QgSGVhZGVycyBjYW4gYmUgZGVzY3JpYmVkIGFzIGZvbGxvdzoKCi0gYG5hbWVgOiB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyCi0gYGRlc2NyaXB0aW9uYDogYSBkZXNjcmlwdGlvbiBvZiB0aGUgaGVhZGVyCi0gYHJlcXVpcmVkYDogd2hldGhlciB0aGUgaGVhZGVyIGlzIG1hbmRhdG9yeSAoYm9vbGVhbikKLSBgc2NoZW1hYDogSlNPTiBzY2hlbWEgKGlubGluZSwgZmlsZSBvciBleHRlcm5hbGx5IGhvc3RlZCkKCmBgYHltbApoZWFkZXJQYXJhbXM6CiAgLSBuYW1lOiAiQ29udGVudC1UeXBlIgogICAgZGVzY3JpcHRpb246ICJUaGUgY29udGVudCB0eXBlIgogICAgcmVxdWlyZWQ6IHRydWUKICAgIHNjaGVtYToKICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyMjIGBzZWN1cml0eWAKClRoZSBgc2VjdXJpdHlgIHByb3BlcnR5IGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgW1NlY3VyaXR5IFNjaGVtZV0oI3NlY3VyaXR5c2NoZW1lcykgdG8gYXBwbHkgdG8gdGhlIEhUVFAgUmVxdWVzdC4gSWYgeW91IGhhdmUgYXBwbGllZCBhbiBgc2VjdXJpdHlgIChbc2VlIFNlY3VyaXR5IG9uIGVhY2ggb3BlcmF0aW9uXSgjc2VjdXJpdHktb24tZWFjaC1vcGVyYXRpb24pKSB0aGVuIHlvdSBjYW4gZWl0aGVyIGxlYXZlIHRoaXMgZmllbGQgb2ZmLCBvciB0byBvdmVycmlkZSBpdCB3aXRoIGEgZGlmZmVyZW50IHNjaGVtZSB5b3UgY2FuIHdyaXRlIGl0IGxpa2U6CgpgYGB5bWwKY3VzdG9tOgogIGRvY3VtZW50YXRpb246CiAgICBzZWN1cml0eVNjaGVtZXM6CiAgICAgIG15X2FwaV9rZXk6CiAgICAgICAgdHlwZTogYXBpS2V5CiAgICAgICAgbmFtZTogYXBpX2tleQogICAgICAgIGluOiBoZWFkZXIKICAgICAgcGV0c3RvcmVfYXV0aDoKICAgICAgICB0eXBlOiBvYXV0aDIKICAgICAgICBmbG93czoKICAgICAgICAgIGltcGxpY2l0OgogICAgICAgICAgICBhdXRob3JpemF0aW9uVXJsOiBodHRwczovL2V4YW1wbGUuY29tL2FwaS9vYXV0aC9kaWFsb2cKICAgICAgICAgICAgc2NvcGVzOgogICAgICAgICAgICAgIHdyaXRlOnBldHM6IG1vZGlmeSBwZXRzIGluIHlvdXIgYWNjb3VudAogICAgICAgICAgICAgIHJlYWQ6cGV0czogcmVhZCB5b3VyIHBldHMKICAgIHNlY3VyaXR5OgogICAgICAtIG15X2FwaV9rZXk6IFtdCgpmdW5jdGlvbnM6CiAgZ2V0RGF0YToKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgICAgZG9jdW1lbnRhdGlvbjoKICAgICAgICAgICAgc2VjdXJpdHk6CiAgICAgICAgICAgICAgLSBwZXRzdG9yZV9hdXRoOgogICAgICAgICAgICAgICAgICAtIHdyaXRlOnBldHMKICAgICAgICAgICAgICAgICAgLSByZWFkOnBldHMKYGBgCgpJZiB5b3UgaGF2ZSBzcGVjaWZpZWQgYW4gYHNlY3VyaXR5YCBhdCB0aGUgZG9jdW1lbnQgcm9vdCwgYnV0IHRoaXMgSFRUUCBSZXF1ZXN0IHNob3VsZCBub3QgYXBwbHkgYW55IHNlY3VyaXR5IHNjaGVtZXMsIHlvdSBzaG91bGQgc2V0IHNlY3VyaXR5IHRvIGJlIGFuIGFycmF5IHdpdGggYW4gZW1wdHkgb2JqZWN0OgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgc2VjdXJpdHlTY2hlbWVzOgogICAgICBteV9hcGlfa2V5OgogICAgICAgIHR5cGU6IGFwaUtleQogICAgICAgIG5hbWU6IGFwaV9rZXkKICAgICAgICBpbjogaGVhZGVyCiAgICBzZWN1cml0eToKICAgICAgLSBteV9hcGlfa2V5OiBbXQoKZnVuY3Rpb25zOgogIGdldERhdGE6CiAgICBldmVudHM6CiAgICAgIC0gaHR0cDoKICAgICAgICAgIGRvY3VtZW50YXRpb246CiAgICAgICAgICAgIHNlY3VyaXR5OgogICAgICAgICAgICAgIC0ge30KYGBgCgojIyMjIyBwcml2YXRlCgpJZiB5b3UgdXNlIHRoZSBbcHJpdmF0ZV0oaHR0cHM6Ly93d3cuc2VydmVybGVzcy5jb20vZnJhbWV3b3JrL2RvY3MvcHJvdmlkZXJzL2F3cy9ldmVudHMvYXBpZ2F0ZXdheSNzZXR0aW5nLWFwaS1rZXlzLWZvci15b3VyLXJlc3QtYXBpKSBwcm9wZXJ0eSBvbiB5b3VyIGV2ZW50OgoKYGBgeW1sCmZ1bmN0aW9uczoKICBnZXREYXRhOgogICAgZXZlbnRzOgogICAgICAtIGh0dHA6CiAgICAgICAgICBwYXRoOiAvCiAgICAgICAgICBtZXRob2Q6IGdldAogICAgICAgICAgcHJpdmF0ZTogdHJ1ZQpgYGAKCkl0IHdpbGwgYXV0b21hdGljYWxseSBzZXR1cCBhbiBhcGlLZXkgc2VjdXJpdHkgc2NoZW1lIG9mIGB4LWFwaS1rZXlgIGF0dGFjaGVkIHRvIHRoYXQgbWV0aG9kLiBZb3UgZG9uJ3QgbmVlZCB0byBhZGQgdGhpcyB0byB0aGUgW1NlY3VyaXR5IFNjaGVtZV0oI3NlY3VyaXR5c2NoZW1lcykgaW4gdGhlIG1haW4gZG9jdW1lbnRhdGlvbi4gSWYgeW91IGhhdmUgYWxyZWFkeSBhZGRlZCBhIFNlY3VyaXR5IFNjaGVtZSBvZiBhbiBgYXBpS2V5YCB3aXRoIGEgbmFtZSBvZiBgeC1hcGkta2V5YCwgaXQgd2lsbCBhc3NvY2lhdGUgd2l0aCB0aGF0IGtleS4KCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIHNlY3VyaXR5U2NoZW1lczoKICAgICAgbXlfYXBpX2tleToKICAgICAgICB0eXBlOiBhcGlLZXkKICAgICAgICBuYW1lOiB4LWFwaS1rZXkKICAgICAgICBpbjogaGVhZGVyCiAgICBzZWN1cml0eToKICAgICAgLSBteV9hcGlfa2V5OiBbXQoKZnVuY3Rpb25zOgogIGdldERhdGE6CiAgICBldmVudHM6CiAgICAgIC0gaHR0cDoKICAgICAgICAgIHBhdGg6IC8KICAgICAgICAgIG1ldGhvZDogZ2V0CiAgICAgICAgICBwcml2YXRlOiB0cnVlCiAgICAgICAgICBkb2N1bWVudGF0aW9uOiAuLi4KYGBgCgpXaWxsIHNldCB0aGUgU2VjdXJpdHkgU2NoZW1lIHRvIGBteV9hcGlfa2V5YCBmb3IgdGhhdCBvcGVyYXRpb24uCgojIyMjIGByZXF1ZXN0TW9kZWxzYAoKVGhlIGByZXF1ZXN0TW9kZWxzYCBwcm9wZXJ0eSBhbGxvd3MgeW91IHRvIGRlZmluZSBtb2RlbHMgZm9yIHRoZSBIVFRQIFJlcXVlc3Qgb2YgdGhlIGZ1bmN0aW9uIGV2ZW50LiBZb3UgY2FuIGRlZmluZSBhIGRpZmZlcmVudCBtb2RlbCBmb3IgZWFjaCBkaWZmZXJlbnQgYENvbnRlbnQtVHlwZWAuIFlvdSBjYW4gZGVmaW5lIGEgcmVmZXJlbmNlIHRvIHRoZSByZWxldmFudCByZXF1ZXN0IG1vZGVsIG5hbWVkIGluIHRoZSBgbW9kZWxzYCBzZWN0aW9uIG9mIHlvdXIgY29uZmlndXJhdGlvbiAoc2VlIFtEZWZpbmluZyBNb2RlbHNdKCNtb2RlbHMpIHNlY3Rpb24pLgoKYGBgeW1sCnJlcXVlc3RNb2RlbHM6CiAgYXBwbGljYXRpb24vanNvbjogIkNyZWF0ZVJlcXVlc3QiCiAgYXBwbGljYXRpb24veG1sOiAiQ3JlYXRlUmVxdWVzdFhNTCIKYGBgCgojIyMjIGBtZXRob2RSZXNwb25zZXNgCgpgbWV0aG9kUmVzcG9uc2VzYCBpcyBhIG1hbmRhdG9yeSBwcm9wZXJ0eSBhbmQgc2hvdWxkIGluY2x1ZGUgdGhlIGByZXNwb25zZUJvZHlgIGFuZCBgZGVzY3JpcHRpb25gIHByb3BlcnRpZXMuCgpZb3UgY2FuIGRlZmluZSB0aGUgcmVzcG9uc2Ugc2NoZW1hcyBieSBkZWZpbmluZyBwcm9wZXJ0aWVzIGZvciB5b3VyIGZ1bmN0aW9uIGV2ZW50LgoKRm9yIGFuIGV4YW1wbGUgb2YgYSBgbWV0aG9kUmVzcG9uc2VzYCBjb25maWd1cmF0aW9uIGZvciBhbiBldmVudCBzZWUgYmVsb3c6CgpgYGB5bWwKbWV0aG9kUmVzcG9uc2U6CiAgLSBzdGF0dXNDb2RlOiAyMDAKICAgIHJlc3BvbnNlQm9keToKICAgICAgZGVzY3JpcHRpb246IFN1Y2Nlc3MKICAgIHJlc3BvbnNlTW9kZWxzOgogICAgICBhcHBsaWNhdGlvbi9qc29uOiAiQ3JlYXRlUmVzcG9uc2UiCiAgICAgIGFwcGxpY2F0aW9uL3htbDogIkNyZWF0ZVJlc3BvbnNlWE1MIgogICAgbGlua3M6CiAgICAgIGdldERhdGFMaW5rOgogICAgICAgIG9wZXJhdGlvbjogZ2V0RGF0YQogICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgaWQgY3JlYXRlZCBoZXJlIGNhbiBiZSB1c2VkIHRvIGdldCBEYXRhCiAgICAgICAgcGFyYW1ldGVyczoKICAgICAgICAgIGNvbnRlbnRJZDogJHJlc3BvbnNlLmJvZHkjL2lkCiAgICByZXNwb25zZUhlYWRlcnM6CiAgICAgIFgtUmF0ZS1MaW1pdC1MaW1pdDoKICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG51bWJlciBvZiBhbGxvd2VkIHJlcXVlc3RzIGluIHRoZSBjdXJyZW50IHBlcmlvZAogICAgICAgIHNjaGVtYToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgWC1SYXRlLUxpbWl0LVJlbWFpbmluZzoKICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG51bWJlciBvZiByZW1haW5pbmcgcmVxdWVzdHMgaW4gdGhlIGN1cnJlbnQgcGVyaW9kCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICBYLVJhdGUtTGltaXQtUmVzZXQ6CiAgICAgICAgZGVzY3JpcHRpb246IFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBsZWZ0IGluIHRoZSBjdXJyZW50IHBlcmlvZAogICAgICAgIHNjaGVtYToKICAgICAgICAgIHR5cGU6IGludGVnZXIKYGBgCgojIyMjIyBgcmVzcG9uc2VNb2RlbHNgCgpUaGUgYHJlc3BvbnNlTW9kZWxzYCBwcm9wZXJ0eSBhbGxvd3MgeW91IHRvIGRlZmluZSBtb2RlbHMgZm9yIHRoZSBIVFRQIFJlc3BvbnNlIG9mIHRoZSBmdW5jdGlvbiBldmVudC4gWW91IGNhbiBkZWZpbmUgYSBkaWZmZXJlbnQgbW9kZWwgZm9yIGVhY2ggZGlmZmVyZW50IGBDb250ZW50LVR5cGVgLiBZb3UgY2FuIGRlZmluZSBhIHJlZmVyZW5jZSB0byB0aGUgcmVsZXZhbnQgcmVzcG9uc2UgbW9kZWwgbmFtZWQgaW4gdGhlIGBtb2RlbHNgIHNlY3Rpb24gb2YgeW91ciBjb25maWd1cmF0aW9uIChzZWUgW0RlZmluaW5nIE1vZGVsc10oI21vZGVscykgc2VjdGlvbikuCgpgYGB5bWwKcmVzcG9uc2VNb2RlbHM6CiAgYXBwbGljYXRpb24vanNvbjogIkNyZWF0ZVJlc3BvbnNlIgogIGFwcGxpY2F0aW9uL3htbDogIkNyZWF0ZVJlc3BvbnNlWE1MIgpgYGAKCiMjIyMjIGBsaW5rc2AKClRoZSBgbGlua3NgIHByb3BlcnR5IGFsbG93cyB5b3UgdG8gZGVmaW5lIGhvdyBvcGVyYXRpb25zIGFyZSBsaW5rZWQgdG8gZWFjaCBvdGhlcjoKCmBgYHltbApsaW5rczoKICBsaW5rTmFtZToKICAgIG9wZXJhdGlvbjogZ2V0Q29udGVudAogICAgZGVzY3JpcHRpb246IFRoZSBjb250ZW50SWQgY3JlYXRlZCBoZXJlIGNhbiBiZSB1c2VkIHRvIGdldCBjb250ZW50CiAgICBwYXJhbWV0ZXJzOgogICAgICBjb250ZW50SWQ6ICRyZXNwb25zZS5ib2R5Iy9jb250ZW50SWQKYGBgCgpXaGVyZSB3ZSBhcmUgc3BlY2lmeWluZyBvcGVyYXRpb24sIHRoaXMgc2hvdWxkIG1hcCB0byB0aGUgZnVuY3Rpb24gbmFtZToKCmBgYHltbApmdW5jdGlvbnM6CiAgY3JlYXRlQ29udGVudDoKICAgIGV2ZW50czoKICAgICAgLSBodHRwQXBpOgogICAgICAgICAgcGF0aDogLwogICAgICAgICAgbWV0aG9kOiBQT1NUCiAgICAgICAgICBkb2N1bWVudGF0aW9uOiAuLi4KICBnZXRDb250ZW50OgogICAgZXZlbnRzOgogICAgICAtIGh0dHA6CiAgICAgICAgICBwYXRoOiAve2NvbnRlbnRJZH0KICAgICAgICAgIG1ldGhvZDogUE9TVAogICAgICAgICAgZG9jdW1lbnRhdGlvbjogLi4uCmBgYAoKSWYgb3VyIGV4YW1wbGUgbGluayB3YXMgYXR0YWNoZWQgdG8gdGhlICoqY3JlYXRlQ29udGVudCoqIGZ1bmN0aW9uLCBhbmQgd2Ugd2FudGVkIHRoZSBgY29udGVudElkYCB0aGF0IHdhcyBjcmVhdGVkIHRvIGJlIHVzZWQgb24gdGhlICoqZ2V0Q29udGVudCoqIGZ1bmN0aW9uIGluIHRoZSBgY29udGVudElkYCBwYXJhbWV0ZXIsIHdlJ2Qgc3BlY2lmeSB0aGUgYG9wZXJhdGlvbmAgcHJvcGVydHkgYXMgKipnZXRDb250ZW50KiouIElmIGhvd2V2ZXIsIHlvdSBoYWQgc3BlY2lmaWVkIGFuIG9wZXJhdGlvbklkIGluIHRoZSBkb2N1bWVudGF0aW9uIHRvIG92ZXJyaWRlIHRoZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgb25lOgoKYGBgeW1sCmdldENvbnRlbnQ6CiAgZXZlbnRzOgogICAgLSBodHRwOgogICAgICAgIHBhdGg6IC97Y29udGVudElkfQogICAgICAgIG1ldGhvZDogUE9TVAogICAgICAgIGRvY3VtZW50YXRpb246CiAgICAgICAgICBvcGVyYXRpb25JZDogZ2V0TXlDb250ZW50CmBgYAoKWW91IGNhbiByZWZlciB0byB0aGUgYG9wZXJhdGlvbklkYCB0aGF0IHlvdSBjcmVhdGVkLgoKWW91IGNhbiByZWFkIG1vcmUgYWJvdXQgW2xpbmtzXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2xpbmtzLykgb24gdGhlIHN3YWdnZXIuaW8gc2l0ZSBhbmQgaW4gdGhlIFtPcGVuQVBJXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMjbGluay1vYmplY3QpIHNwZWNpZmljYXRpb24uIFRoZXkgZG9uJ3Qgc2VlbSB3aWRlbHkgc3VwcG9ydGVkIGp1c3QgeWV0LCBidXQgcGVyaGFwcyB0aGV5J2xsIGltcHJvdmUgeW91ciBkb2N1bWVudGF0aW9uLgoKIyMjIyMgYHJlc3BvbnNlSGVhZGVyc2AKClRoZSBgcmVzcG9uc2VIZWFkZXJzYCBwcm9wZXJ0eSBhbGxvd3MgeW91IHRvIGRlZmluZSB0aGUgaGVhZGVycyBleHBlY3RlZCBpbiBhIEhUVFAgUmVzcG9uc2Ugb2YgdGhlIGZ1bmN0aW9uIGV2ZW50LiBUaGlzIHNob3VsZCBvbmx5IGNvbnRhaW4gYSBkZXNjcmlwdGlvbiBhbmQgYSBzY2hlbWEsIHdoaWNoIG11c3QgYmUgYSBKU09OIHNjaGVtYSAoaW5saW5lLCBmaWxlIG9yIGV4dGVybmFsbHkgaG9zdGVkKS4KCmBgYHltbApyZXNwb25zZUhlYWRlcnM6CiAgWC1SYXRlLUxpbWl0LUxpbWl0OgogICAgZGVzY3JpcHRpb246IFRoZSBudW1iZXIgb2YgYWxsb3dlZCByZXF1ZXN0cyBpbiB0aGUgY3VycmVudCBwZXJpb2QKICAgIHNjaGVtYToKICAgICAgdHlwZTogaW50ZWdlcgpgYGAKCiMjIyMjIyBDT1JTCgpZb3UgY2FuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgQ09SUyByZXNwb25zZSBoZWFkZXJzIGJ5IHNldHRpbmcgYGNvcnNgIGF0IHRoZSBmdW5jdGlvbiBsZXZlbC4gU2VydmVybGVzcyBhbGxvd3MgeW91IHRvIG1vZGlmeSBob3cgQ09SUyBpcyBzZXR1cCwgc28geW91IGNhbiBoYXZlIHRoZSBkZWZhdWx0IG9wdGlvbnMgd2l0aCBgY29yczogdHJ1ZWAsIG9yIHlvdSBjYW4gbW9kaWZ5IHRoZSBzZXR0aW5ncyBhcyBzaG93biBpbiB0aGUgW3NlcnZlcmxlc3MgZG9jdW1lbnRhdGlvbiBmb3IgQ09SU10oaHR0cHM6Ly93d3cuc2VydmVybGVzcy5jb20vZnJhbWV3b3JrL2RvY3MvcHJvdmlkZXJzL2F3cy9ldmVudHMvYXBpZ2F0ZXdheSNlbmFibGluZy1jb3JzKS4KClRoZSBnZW5lcmF0b3Igd2lsbCBpbnRlcnByZXQgeW91ciBzZXR0aW5ncyBmb3IgQ09SUyBhbmQgYXV0b21hdGljYWxseSBhZGQgdGhlIHJlc3BvbnNlIGhlYWRlcnMuIElmIGZvciB3aGF0ZXZlciByZWFzb24geW91IHdpc2ggdG8gb3ZlcnJpZGUgdGhlc2UsIHlvdSBjYW4gc2V0IHRoZW0gdmlhIHRoZSBhYm92ZSBgcmVzcG9uc2VIZWFkZXJzYCBzZXR0aW5nIGFuZCBpdCdsbCBhcHBseSB5b3VyIG92ZXJyaWRlcy4KCiMjIyMjIE9XQVNQCgpZb3UgY2FuIG1ha2UgdXNlIG9mIHRoZSBbT1dBU1AgU2VjdXJlIEhlYWRlcnNdKGh0dHBzOi8vb3dhc3Aub3JnL3d3dy1wcm9qZWN0LXNlY3VyZS1oZWFkZXJzLyN4LXBlcm1pdHRlZC1jcm9zcy1kb21haW4tcG9saWNpZXMpIHRvIGdlbmVyYXRlIHJlc3BvbnNlIGhlYWRlcnMuIFRoZXNlIGFyZSBhIHNlbGVjdGlvbiBvZiByZXNwb25zZSBoZWFkZXJzIHdpdGggZGVmYXVsdCB2YWx1ZXMgdGhhdCBPV0FTUCByZWNvbW1lbmRzIHJldHVybmluZyB3aXRoIHlvdXIgcmVzcG9uc2UgdG8gaGVscCBzZWN1cmUgeW91ciBhcHBsaWNhdGlvbi4KClRoZSBPV0FTUCBTZWN1cmUgSGVhZGVycyBQcm9qZWN0IGNvbnRhaW5zIGEgc2V0IG9mIHJlY29tbWVuZGVkIGhlYWRlcnMgdG8gcmV0dXJuIHdpdGggcmVjb21tZW5kZWQgdmFsdWVzLCB3aGVuIGdlbmVyYXRpbmcgdGhlIGRvY3VtZW50YXRpb24sIHRoZSBnZW5lcmF0b3Igd2lsbCBhdHRlbXB0IHRvIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBkb2N1bWVudCBhbmQgYXBwbHkgdGhlIGxhdGVzdCByZWNvbW1lbmRhdGlvbnMuIElmIHlvdSBkbyBub3QgYWxsb3cgb3V0c2lkZSBjb25uZWN0aW9ucywgaXQgd2lsbCBkZWZhdWx0IHRvIGEgdmVyc2lvbiBvZiByZWNvbW1lbmRhdGlvbnMgZnJvbSAqKjIwMjMtMDUtMjYgMTI6MjI6MzAgVVRDKiouCgpMaWtlIENPUlMsIGlmIHlvdSBoYXZlIGFscmVhZHkgc2V0IGFueSBvZiB0aGUgT1dBU1AgU2VjdXJlIGhlYWRlcnMgdmlhIGByZXNwb25zZUhlYWRlcnNgLCBpdCB3aWxsIG5vdCBvdmVyd3JpdGUgdGhlbS4KClRvIG1ha2UgdXNlIG9mIE9XQVNQIFNlY3VyZSBIZWFkZXJzLCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nOgoKIyMjIyMjIEFsbCBPV0FTUCBTZWN1cmUgSGVhZGVycwoKYGBgeW1sCm1ldGhvZFJlc3BvbnNlOgogIC0gc3RhdHVzQ29kZTogMjAwCiAgICByZXNwb25zZUJvZHk6CiAgICAgIGRlc2NyaXB0aW9uOiBTdWNjZXNzCiAgICByZXNwb25zZU1vZGVsczoKICAgICAgYXBwbGljYXRpb24vanNvbjogIkNyZWF0ZVJlc3BvbnNlIgogICAgb3dhc3A6IHRydWUKYGBgCgpUaGlzIHdpbGwgdXNlIHRoZSBmdWxsIHNldCBvZiBPV0FTUCBTZWN1cmUgSGVhZGVycyBhbmQgdGhlaXIgcmVjb21tZW5kZWQgdmFsdWVzLiBTb21lIG9mIHRoZXNlIG1pZ2h0IG5vdCBiZSBhcHByb3ByaWF0ZSBmb3IgeW91ciBhcHBsaWNhdGlvbi4KCiMjIyMjIyBTdWJzZXQgb2YgT1dBU1AgU2VjdXJlIEhlYWRlcnMKCmBgYHltbAptZXRob2RSZXNwb25zZToKICAtIHN0YXR1c0NvZGU6IDIwMAogICAgcmVzcG9uc2VCb2R5OgogICAgICBkZXNjcmlwdGlvbjogU3VjY2VzcwogICAgcmVzcG9uc2VNb2RlbHM6CiAgICAgIGFwcGxpY2F0aW9uL2pzb246ICJDcmVhdGVSZXNwb25zZSIKICAgIG93YXNwOgogICAgICBjYWNoZUNvbnRyb2w6IHRydWUKICAgICAgcmVmZXJyZXJQb2xpY3k6IHRydWUKYGBgCgpUaGlzIHdpbGwgc2V0IG9ubHkgdGhlIGBjYWNoZUNvbnRyb2xgIGFuZCBgcmVmZXJyZXJQb2xpY3lgIHJlc3BvbnNlIGhlYWRlciB3aXRoIHRoZSBkZWZhdWx0IHJlY29tbWVuZGF0aW9ucy4KClRoZSBmdWxsIGxpc3Qgb2YgT1dBU1AgU2VjdXJlIEhlYWRlcnMgeW91IGNhbiBzZXQgYXJlOgoKLSBjYWNoZUNvbnRyb2wgLSBDYWNoZS1Db250cm9sLAotIGNsZWFyU2l0ZURhdGEgLSBDbGVhci1TaXRlLURhdGEsCi0gY29udGVudFNlY3VyaXR5UG9saWN5IC0gQ29udGVudC1TZWN1cml0eS1Qb2xpY3ksCi0gY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSAtIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3ksCi0gY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgLSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSwKLSBjcm9zc09yaWdpblJlc291cmNlUG9saWN5IC0gQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSwKLSBwZXJtaXNzaW9uc1BvbGljeSAtIFBlcm1pc3Npb25zLVBvbGljeSwKLSBwcmFnbWEgLSBQcmFnbWEsCi0gcmVmZXJyZXJQb2xpY3kgLSBSZWZlcnJlci1Qb2xpY3ksCi0gc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHkgLSBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5LAotIHhDb250ZW50VHlwZU9wdGlvbnMgLSBYLUNvbnRlbnQtVHlwZS1PcHRpb25zLAotIHhGcmFtZU9wdGlvbnMgLSBYLUZyYW1lLU9wdGlvbnMsCi0geFBlcm1pdHRlZENyb3NzRG9tYWluUG9saWNpZXMgLSBYLVBlcm1pdHRlZC1Dcm9zcy1Eb21haW4tUG9saWNpZXMKCiMjIyMjIyBTdWJzZXQgb2YgT1dBU1AgU2VjdXJlIEhlYWRlcnMgd2l0aCB1c2VyIGRlZmluZWQgdmFsdWVzCgpJZiB5b3Ugd2lzaCB0byBvdmVycmlkZSB0aGUgT1dBU1AgU2VjdXJlIEhlYWRlcnMsIHlvdSBjYW4gd3JpdGUgeW91ciBgbWV0aG9kUmVzcG9uc2VgIGxpa2U6CgpgYGB5bWwKbWV0aG9kUmVzcG9uc2U6CiAgLSBzdGF0dXNDb2RlOiAyMDAKICAgIHJlc3BvbnNlQm9keToKICAgICAgZGVzY3JpcHRpb246IFN1Y2Nlc3MKICAgIHJlc3BvbnNlTW9kZWxzOgogICAgICBhcHBsaWNhdGlvbi9qc29uOiAiQ3JlYXRlUmVzcG9uc2UiCiAgICBvd2FzcDoKICAgICAgY2FjaGVDb250cm9sOgogICAgICAgIHZhbHVlOiBuby1zdG9yZQpgYGAKClRoaXMgd2lsbCBzZXQgdGhlIGBDYWNoZS1Db250cm9sYCBSZXNwb25zZSBIZWFkZXIgdG8gaGF2ZSBhIHZhbHVlIG9mICJuby1zdG9yZSIgcmF0aGVyIHRoYW4gYW55IHZhbHVlIHRoZSBPV0FTUCBTZWN1cmUgSGVhZGVycyBQcm9qZWN0IHJlY29tbWVuZHMuCgojIyBWYWxpZGF0b3IKClZhbGlkYXRpb24gZm9yIHRoZSBPcGVuQVBJIERlc2NyaXB0aW9uIGlzIG5vdyAoYXMgb2YgMC4wLjkwKSBkb25lIGJ5IFtSZWRvY2x5XShodHRwczovL3JlZG9jbHkuY29tLykuIFRoaXMgaXMgYSBzbGlnaHRseSBsZXNzIG9waW5pb25hdGVkIHZhbGlkYXRvciBmb3IgYW4gT3BlbkFQSSBEZXNjcmlwdGlvbiwgaXQgc2hvdWxkIHJlc3VsdCBpbiBsZXNzIGVycm9ycyBhcm91bmQgIllBTUwgQW5jaG9ycyIuIEl0J3MgYWxzbyBhIG1haW50YWluZWQgbGlicmFyeSwgYW5kIGhhcyBzdXBwb3J0IGZvciBPcGVuQVBJIDMuMS4wIHdoaWNoIEkgaG9wZSB0byBiZSBhYmxlIHRvIHN1cHBvcnQgdmVyeSBzb29uLgoKSSBhbSBtYWtpbmcgdXNlIG9mIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0ByZWRvY2x5L29wZW5hcGktY29yZSwgd2hpY2ggSSBoYXZlIGJlZW4gd2FybmVkIGlzIGxpa2VseSB0byBjaGFuZ2UuIElmIHlvdSBub3RpY2UgYW55dGhpbmcgZ29pbmcgd3Jvbmcgd2l0aCB2YWxpZGF0aW9uIG9mIHlvdXIgT3BlbkFQSSBEZXNjcmlwdGlvbiwgZmVlbCBmcmVlIHRvIG9wZW4gYW4gaXNzdWUgaGVyZS4gSSBtYWtlIGFjdGl2ZSB1c2Ugb2YgdGhpcyBsaWJyYXJ5LCBzbyB3aWxsIGhvcGVmdWxseSBjb21lIGFjcm9zcyB0aG9zZSBpc3N1ZXMgdG9vLgoKIyMjIFJ1bGVzCgpJIGhhdmUgY29uZmlndXJlZCB0aGUgdmFsaWRhdG9yIHRvIHVzZSB0aGVzZSBSdWxlczoKCi0gW3NwZWNdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvcnVsZXMvc3BlYy8pCi0gW3BhdGgtcGFyYW1ldGVycy1kZWZpbmVkXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzL3BhdGgtcGFyYW1ldGVycy1kZWZpbmVkLykKLSBbb3BlcmF0aW9uLTJ4eC1yZXNwb25zZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcy9vcGVyYXRpb24tMnh4LXJlc3BvbnNlLykKLSBbb3BlcmF0aW9uLTR4eC1yZXNwb25zZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcy9vcGVyYXRpb24tNHh4LXJlc3BvbnNlLykKLSBbb3BlcmF0aW9uLW9wZXJhdGlvbklkLXVuaXF1ZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcy9vcGVyYXRpb24tb3BlcmF0aW9uaWQtdW5pcXVlLykKLSBbcGF0aC1kZWNsYXJhdGlvbi1tdXN0LWV4aXN0XShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzL3BhdGgtZGVjbGFyYXRpb24tbXVzdC1leGlzdC8pCgpIb3dldmVyLCB5b3UgY2FuIGNvbmZpZ3VyZSB5b3VyIG93biBydWxlcyBmcm9tIHRoZSBbcnVsZXNldCBhdmFpbGFibGUgb24gdGhlIFJlZG9jbHkgc2l0ZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcy9idWlsdC1pbi1ydWxlcy8pLiBUbyBkbyB0aGlzLCB5b3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSBhIGByZWRvY2x5Lmpzb25gIGZpbGUgd2l0aGluIGFuIGBvcHRpb25zYCBmb2xkZXIuIFRoZSBmaWxlIHNob3VsZCBsb29rIGxpa2U6CgpgYGBqc29uCnsKICAic3BlYyI6ICJlcnJvciIsCiAgInBhdGgtcGFyYW1ldGVycy1kZWZpbmVkIjogImVycm9yIiwKICAib3BlcmF0aW9uLTJ4eC1yZXNwb25zZSI6ICJlcnJvciIsCiAgIm9wZXJhdGlvbi00eHgtcmVzcG9uc2UiOiAiZXJyb3IiLAogICJvcGVyYXRpb24tb3BlcmF0aW9uSWQtdW5pcXVlIjogImVycm9yIiwKICAicGF0aC1kZWNsYXJhdGlvbi1tdXN0LWV4aXN0IjogImVycm9yIgp9CmBgYAoKU2luY2UgcnVsZXMgY2FuIGJlIHNldCB0byAid2FybiIsIHlvdSBubyBsb25nZXIgYXJlIHJlcXVpcmVkIHRvIHRlbGwgdGhlIHBsdWdpbiB0byBpZ25vcmUgZXJyb3JzIHdpdGggdGhlIGAtLXZhbGlkYXRpb25XYXJuYCBmbGFnLgoKIyMgRXhhbXBsZSBjb25maWd1cmF0aW9uCgpQbGVhc2UgdmlldyB0aGUgZXhhbXBsZSBbc2VydmVybGVzcy55bWxdKHRlc3Qvc2VydmVybGVzcy10ZXN0cy9iZXN0L3NlcnZlcmxlc3MueW1sKS4KCiMjIE5vdGVzIG9uIHNjaGVtYXMKClNjaGVtYXMgY2FuIGJlIGVpdGhlcjogaW5saW5lLCBpbiBmaWxlIG9yIGV4dGVybmFsbHkgaG9zdGVkLiBJZiB0aGV5J3JlIGlubGluZSBvciBpbiBmaWxlLCB0aGUgcGx1Z2luIHdpbGwgYXR0ZW1wdCB0byBub3JtYWxpc2UgdGhlIHNjaGVtYSB0byBbT3BlbkFQSSAzLjAuWCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4wLjAubWQjc2NoZW1hT2JqZWN0KS4KCklmIHRoZXkgZXhpc3QgYXMgYW4gZXh0ZXJuYWwgcmVmZXJlbmNlLCBmb3IgaW5zdGFuY2U6CgpgYGB5YW1sCnNjaGVtYTogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaGVtYVN0b3JlL3NjaGVtYXN0b3JlL21hc3Rlci9zcmMvc2NoZW1hcy9qc29uL2JldHRlcmNvZGVodWIuanNvbgpgYGAKCldlIHVzZSB0aGUgcGx1Z2luIFtKU09OIFNjaGVtYSAkUmVmIFBhcnNlcl0oaHR0cHM6Ly9hcGl0b29scy5kZXYvanNvbi1zY2hlbWEtcmVmLXBhcnNlci8pIHRvIGF0dGVtcHQgdG8gcGFyc2UgYW5kIHJlc29sdmUgdGhlIHJlZmVyZW5jZXMuIFRoZXJlIGFyZSBsaW1pdGF0aW9ucyB0byB0aGlzLiBDb25zaWRlciB0aGUgc2NoZW1hOgoKYGBganNvbgp7CiAgIiRzY2hlbWEiOiAiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIiwKICAidGl0bGUiOiAiUmV1c2FibGUgRGVmaW5pdGlvbnMiLAogICJ0eXBlIjogIm9iamVjdCIsCiAgImlkIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9qc29uLWVkaXRvci9qc29uLWVkaXRvci9tYXN0ZXIvdGVzdHMvZml4dHVyZXMvZGVmaW5pdGlvbnMuanNvbiIsCiAgImRlZmluaXRpb25zIjogewogICAgImFkZHJlc3MiOiB7CiAgICAgICJ0aXRsZSI6ICJBZGRyZXNzIiwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgInN0cmVldF9hZGRyZXNzIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgImNpdHkiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAic3RhdGUiOiB7ICJ0eXBlIjogInN0cmluZyIgfQogICAgICB9LAogICAgICAicmVxdWlyZWQiOiBbInN0cmVldF9hZGRyZXNzIl0KICAgIH0sCiAgICAibGluayI6IHsgIiRyZWZzIjogIi4vcHJvcGVydGllcy5qc29uIy9wcm9wZXJ0aWVzL3RpdGxlIiB9CiAgfSwKICAicHJvcGVydGllcyI6IHsKICAgICJhZGRyZXNzIjogeyAiJHJlZnMiOiAiIy9kZWZpbml0aW9ucy9hZGRyZXNzIiB9CiAgfQp9CmBgYAoKV2hlcmUgdGhlIGRlZmluaXRpb24gImxpbmsiIHJlZmVycyB0byBhIHNjaGVtYSBoZWxkIGluIGEgZGlyZWN0b3J5IHRoYXQgdGhlIHJlc29sdmVyIGRvZXMgbm90IGtub3cgYWJvdXQsIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gZnVsbHkgcmVzb2x2ZSB0aGUgc2NoZW1hIHdoaWNoIHdpbGwgbGlrZWx5IGNhdXNlIGVycm9ycyBpbiB2YWxpZGF0aW9uIG9mIHRoZSBPcGVuQVBJIDMuMC5YIERlc2NyaXB0aW9uLgoKQmVjYXVzZSBvZiB0aGUgZGVwZW5kZW5jeSB3ZSB1c2UgdG8gcGFyc2UgZXh0ZXJuYWxseSBsaW5rZWQgc2NoZW1hcywgd2UgY2FuIHN1cHBseSBvdXIgb3duIG9wdGlvbnMgdG8gcmVzb2x2ZSBzY2hlbWFzIHRoYXQgYXJlIG1vcmUgZGlmZmljdWx0IHRoYW4gYSBzdHJhaWdodCBmb3J3YXJkIGV4YW1wbGUuCgpZb3UgY2FuIGNyZWF0ZSB5b3VyIG93biBvcHRpb25zIGZpbGU6IGh0dHBzOi8vYXBpdG9vbHMuZGV2L2pzb24tc2NoZW1hLXJlZi1wYXJzZXIvZG9jcy9vcHRpb25zLmh0bWwgdG8gcGFzcyBpbnRvIHRoZSBkZXBlbmRlbmN5IHRoYXQgY29udGFpbnMgaXQncyBvd24gcmVzb2x2ZXIgdG8gYWxsb3cgeW91IHRvIHJlc29sdmUgcmVmZXJlbmNlcyB0aGF0IG1pZ2h0IGJlIGluIGhhcmQgdG8gcmVhY2ggcGxhY2VzLiBJbiB5b3VyIG1haW4gcHJvamVjdCBmb2xkZXIsIHlvdSBzaG91bGQgaGF2ZSBhIGZvbGRlciBjYWxsZWQgYG9wdGlvbnNgIHdpdGggYSBmaWxlIGNhbGxlZCBgcmVmLXBhcnNlci5qc2AgdGhhdCBsb29rcyBsaWtlOgoKYGBganMKInVzZSBzdHJpY3QiOwoKLy8gb3B0aW9ucyBmcm9tOiBodHRwczovL2FwaXRvb2xzLmRldi9qc29uLXNjaGVtYS1yZWYtcGFyc2VyL2RvY3Mvb3B0aW9ucy5odG1sCgptb2R1bGUuZXhwb3J0cyA9IHsKICBjb250aW51ZU9uRXJyb3I6IHRydWUsIC8vIERvbid0IHRocm93IG9uIHRoZSBmaXJzdCBlcnJvcgogIHBhcnNlOiB7CiAgICBqc29uOiBmYWxzZSwgLy8gRGlzYWJsZSB0aGUgSlNPTiBwYXJzZXIKICAgIHlhbWw6IHsKICAgICAgYWxsb3dFbXB0eTogZmFsc2UsIC8vIERvbid0IGFsbG93IGVtcHR5IFlBTUwgZmlsZXMKICAgIH0sCiAgICB0ZXh0OiB7CiAgICAgIGNhblBhcnNlOiBbIi50eHQiLCAiLmh0bWwiXSwgLy8gUGFyc2UgLnR4dCBhbmQgLmh0bWwgZmlsZXMgYXMgcGxhaW4gdGV4dCAoc3RyaW5ncykKICAgICAgZW5jb2Rpbmc6ICJ1dGYxNiIsIC8vIFVzZSBVVEYtMTYgZW5jb2RpbmcKICAgIH0sCiAgfSwKICByZXNvbHZlOiB7CiAgICBmaWxlOiBmYWxzZSwgLy8gRG9uJ3QgcmVzb2x2ZSBsb2NhbCBmaWxlIHJlZmVyZW5jZXMKICAgIGh0dHA6IHsKICAgICAgdGltZW91dDogMjAwMCwgLy8gMiBzZWNvbmQgdGltZW91dAogICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsIC8vIEluY2x1ZGUgYXV0aCBjcmVkZW50aWFscyB3aGVuIHJlc29sdmluZyBIVFRQIHJlZmVyZW5jZXMKICAgIH0sCiAgfSwKICBkZXJlZmVyZW5jZTogewogICAgY2lyY3VsYXI6IGZhbHNlLCAvLyBEb24ndCBhbGxvdyBjaXJjdWxhciAkcmVmcwogICAgZXhjbHVkZWRQYXRoTWF0Y2hlcjogKAogICAgICBwYXRoIC8vIFNraXAgZGVyZWZlcmVuY2luZyBjb250ZW50IHVuZGVyIGFueSAnZXhhbXBsZScga2V5CiAgICApID0+IHBhdGguaW5jbHVkZXMoIi9leGFtcGxlLyIpLAogIH0sCn07CmBgYAoKSWYgeW91IGRvbid0IHN1cHBseSB0aGlzIGZpbGUsIGl0IHdpbGwgdXNlIHRoZSBkZWZhdWx0IG9wdGlvbnMuCgojIyBMaWNlbnNlCgpNSVQK readmeEtag: '"50a1b1e9f8401fa78719aafc8c1389583ba64dad"' readmeLastModified: Tue, 30 Jul 2024 14:38:12 GMT repositoryId: 495583813 description: >- Serverless plugin to export your config as OpenAPI v3 Documentation and Postman Collection V2 created: '2022-05-23T21:49:03Z' updated: '2024-08-27T14:32:56Z' language: JavaScript archived: false stars: 40 watchers: 1 forks: 13 owner: JaredCE logo: https://avatars.githubusercontent.com/u/770400?v=4 license: MIT repoEtag: '"8ccea9c49e733d01311c514d6c5b1bb99bc8acdae06b8c38b1a22ceb13645de6"' repoLastModified: Tue, 27 Aug 2024 14:32:56 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/alidehbansiahkarbon/openapiclientwizard v3: true id: 8ebb675de44da3df54a6c6b891575bd3 repositoryMetadata: base64Readme: >- PGltZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vQWxpRGVoYmFuc2lhaGthcmJvbi9PcGVuQVBJQ2xpZW50V2l6YXJkL2Fzc2V0cy81NjAxNjA4LzllYWIwOTM3LTkwZTQtNDZhZS1iY2UyLTI5YTI0YzAyYmQ5ZCIgYWx0PSIiLz4gCgojIE9wZW5BUElDbGllbnRXaXphcmQoYmV0YS0gbm8gcHJvZHVjdGlvbiByZWFkeSkKCldlbGNvbWUgdG8gKipPcGVuQVBJQ2xpZW50V2l6YXJkKiog4oCTIHRoZSB1bHRpbWF0ZSBwbHVnaW4gZm9yIFJBRCBTdHVkaW8gdGhhdCByZXZvbHV0aW9uaXplcyB0aGUgd2F5IERlbHBoaSBkZXZlbG9wZXJzIGltcGxlbWVudCBSRVNUIEFQSSBjbGllbnRzLgoKIyMgT3ZlcnZpZXcKCkFzIERlbHBoaSBkZXZlbG9wZXJzLCB3ZSBvZnRlbiBmYWNlIHRoZSBjaGFsbGVuZ2Ugb2YgaW1wbGVtZW50aW5nIFJFU1QgQVBJIGNsaWVudHMuIEFQSSBkb2N1bWVudGF0aW9uIHJhcmVseSBpbmNsdWRlcyBEZWxwaGkgY29kZSBzbmlwcGV0cywgZm9yY2luZyB1cyB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBpbXBsZW1lbnQgZWFjaCBtZXRob2QgLSBHRVQsIFBPU1QsIFBVVCwgREVMRVRFIC0gbWFudWFsbHkuIEV2ZW4gd2l0aCBTd2FnZ2VyIG9yIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMsIGl0J3MgYSB0aW1lLWNvbnN1bWluZyBwcm9jZXNzLiBXaXRob3V0IHRoZXNlIHNwZWNpZmljYXRpb25zLCB3ZSByZXNvcnQgdG8gdG9vbHMgbGlrZSBEZWxwaGkncyBSRVNUIERlYnVnZ2VyIG9yIFBvc3RtYW4sIHRlc3RpbmcgZWFjaCBtZXRob2QgaW5kaXZpZHVhbGx5IGJlZm9yZSBjb2RpbmcgdGhlbSBpbnRvIG91ciBwcm9qZWN0cy4KCioqT3BlbkFQSUNsaWVudFdpemFyZCoqIGNoYW5nZXMgYWxsIHRoYXQuIFRoaXMgcG93ZXJmdWwgcGx1Z2luIHJlYWRzIFN3YWdnZXIsIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMsIG9yIFBvc3RtYW4gY29sbGVjdGlvbiBhbmQgZ2VuZXJhdGVzIGEgZnVsbHkgaW1wbGVtZW50ZWQgY2xpZW50LXNpZGUgc2FtcGxlKFZDTCkgcHJvamVjdCBpbiBEZWxwaGksIHJlYWR5IHRvIGNvbXBpbGUsIGluIGp1c3QgMi0zIHNlY29uZHMhCgojIyBJREUgVmVyc2lvbiBzdXBwb3J0Ci0gKipTdXBwb3J0cyBmcm9tIERlbHBoaSAxMC4xIEJlcmxpbiB0byAxMi54IEF0aGVucyoqCgojIyBGZWF0dXJlcwoKLSAqKlN1cHBvcnRzIFN3YWdnZXIgU3BlY2lmaWNhdGlvbnM6KiogSGFuZGxlcyBKU09OIGZvcm1hdCBlZmZvcnRsZXNzbHkuCi0gKipTdXBwb3J0cyBPcGVuQVBJIFNwZWNpZmljYXRpb25zOioqIEhhbmRsZXMgYm90aCBKU09OIGFuZCBZQU1MIGZvcm1hdHMgZWZmb3J0bGVzc2x5LgotICoqUG9zdG1hbiBDb2xsZWN0aW9uIENvbnZlcnNpb246KiogQ29udmVydHMgUG9zdG1hbiBjb2xsZWN0aW9ucyBpbnRvIGNvbXBsZXRlIERlbHBoaSBjbGllbnQgcHJvamVjdHMuCi0gKipSYXBpZCBQcm9qZWN0IEdlbmVyYXRpb246KiogR2VuZXJhdGVzIGZ1bGx5IGltcGxlbWVudGVkIGNsaWVudC1zaWRlIHByb2plY3RzIGluIHNlY29uZHMsIHNhdmluZyB5b3UgYSBodWdlIHRpbWUod2Vla3Mgb2YgZGV2ZWxvcG1lbnQpLgoKCiMjIEJlbmVmaXRzCgotICoqU2F2ZSBUaW1lOioqIFJlZHVjZXMgd2Vla3Mgb2Ygd29yayB0byBtZXJlIHNlY29uZHMuCi0gKipJbmNyZWFzZSBQcm9kdWN0aXZpdHk6KiogRm9jdXMgb24gYnVpbGRpbmcgYW1hemluZyBhcHBsaWNhdGlvbnMgaW5zdGVhZCBvZiBzcGVuZGluZyB0aW1lIG9uIHJlcGV0aXRpdmUgY29kaW5nIHRhc2tzLgotICoqU2ltcGxpZnkgRGV2ZWxvcG1lbnQ6KiogQXV0b21hdGUgdGhlIGNyZWF0aW9uIG9mIERlbHBoaSBjbGllbnQtc2lkZSBwcm9qZWN0cyBmcm9tIEFQSSBzcGVjaWZpY2F0aW9ucy4KCiMjIEdldHRpbmcgU3RhcnRlZAoKMS4gKipEb3dubG9hZCBhbmQgSW5zdGFsbDoqKiBGb2xsb3cgdGhlIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgaW4gdGhlIHJlcG9zaXRvcnkuCjIuICoqUnVuIE9wZW5BUElDbGllbnRXaXphcmQ6KiogT3BlbiB5b3VyIFJBRCBTdHVkaW8gSURFIGFuZCBydW4gdGhlIHBsdWdpbi4KMy4gKipDcmVhdGUgYSBuZXcgcHJvamVjdCoqIGluIFJBRCBTdHVkaW8gYnkgZm9sbG93aW5nIHRoaXMgcGF0aDogRmlsZS9OZXcvT3RoZXI6CgoKIVtpbWFnZV0oaHR0cHM6Ly9naXRodWIuY29tL0FsaURlaGJhbnNpYWhrYXJib24vT3BlbkFQSUNsaWVudFdpemFyZC9hc3NldHMvNTYwMTYwOC9mMGRmZWFlNy01ZDFhLTQ5YjYtYjk3MC00N2UyNWQzYjM5NDQpCgo0LiAqKlNldHVwIHRoZSBwcm9qZWN0J3MgcHJlZmVyZW5jZXMqKgoKCiFbaW1hZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy84YjhkMWMzYi1hNTRiLTQzNzgtYWFhZC04MDI4NTJlYjc0YjApCgogICAKNi4gKipHZW5lcmF0ZSBZb3VyIFByb2plY3Q6KiogUHJvdmlkZSB5b3VyIFN3YWdnZXIgb3IgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBvciBQb3N0bWFuIGNvbGxlY3Rpb24sIGFuZCBsZXQgdGhlIHBsdWdpbiBkbyB0aGUgcmVzdC4KCiFbaW1hZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9BbGlEZWhiYW5zaWFoa2FyYm9uL09wZW5BUElDbGllbnRXaXphcmQvYXNzZXRzLzU2MDE2MDgvNDliYTFlMGQtOGI0YS00ZjA4LTg5YTgtODVkYjBiY2ZmOWJmKQoKCgojIyBSZW1hcmtzCioqVG8gZG93bmxvYWQsIHlvdSBtdXN0IHByb3ZpZGUgdGhlIGRpcmVjdCBVUkwgb2YgdGhlIGZpbGU7IHJlZGlyZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuKioKKipZb3UgY2Fubm90IHVzZSB0aGUgZmlyc3QgVVJMIHRvIGRvd25sb2FkIHRoZSBKU09OIHNwZWNpZmljYXRpb24sIGJ1dCB0aGUgc2Vjb25kIG9uZSBpcyBhY2NlcHRhYmxlLioqCgoxLSBodHRwczovL2dpdGh1Yi5jb20vYWRld2cvSUNBUi9ibG9iL0FERS0xL3VybC1zY2hlbWVzL3JlcHJvZHVjdGlvblVSTFNjaGVtZS5qc29uIOKdjAoKMi0gaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FkZXdnL0lDQVIvQURFLTEvdXJsLXNjaGVtZXMvcmVwcm9kdWN0aW9uVVJMU2NoZW1lLmpzb24g4pyFCgoKIyMgRGVtbyBWaWRlbwoqKldhdGNoIGEgc2hvcnQgdmlkZW8gW2hlcmVdKGh0dHBzOi8veW91dHUuYmUvN0I3blNISXNWNjQpOioqIHRvIGxlYXJuIGhvdyB0byB1c2UgdGhlIHBsdWctaW4gKG9yIGNsaWNrIG9uIHRoZSBiZWxvdyBpbWFnZfCfkYfwn5GHKQoKPGEgaHJlZj0iaHR0cHM6Ly95b3V0dS5iZS83QjduU0hJc1Y2NCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vQWxpRGVoYmFuc2lhaGthcmJvbi9PcGVuQVBJQ2xpZW50V2l6YXJkL2Fzc2V0cy81NjAxNjA4LzkwMTVjYTQzLTNkM2EtNGRmYS04NDM2LTFiYmJhN2FjNmZkZCIgd2lkdGggPSAiMzAwIiBoZWlnaHQgPSAiMzAwIiAvPjwvYT4KCiMjIFN1cHBvcnQKCklmIHlvdSBmaW5kIE9wZW5BUElDbGllbnRXaXphcmQgdXNlZnVsLCBwbGVhc2UgZ2l2ZSBpdCBhICoqc3RhcioqLgoKWW91ciBzdXBwb3J0IGlzIGdyZWF0bHkgYXBwcmVjaWF0ZWQhCgpZb3UgY2FuIGFsc28gc3VwcG9ydCBteSB3b3JrIGJ5IGJ1eWluZyBtZSBhIGNvZmZlZS4gVGhpcyBoZWxwcyBtZSBjb250aW51ZSBkZXZlbG9waW5nIHRoaXMgcGx1Z2luIGFuZCBvdGhlciB0b29scyBsaWtlIFtDaGF0R1BUV2l6YXJkXShodHRwczovL2dpdGh1Yi5jb20vQWxpRGVoYmFuc2lhaGthcmJvbi9DaGF0R1BUV2l6YXJkKSBhbmQgW0Vhc3lEQk1pZ3JhdG9yXShodHRwczovL2dpdGh1Yi5jb20vQWxpRGVoYmFuc2lhaGthcmJvbi9FYXN5REJNaWdyYXRvcikuCgo8YSBocmVmPSJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2FkZWhiYW5yIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vY2RuLmJ1eW1lYWNvZmZlZS5jb20vYnV0dG9ucy9kZWZhdWx0LW9yYW5nZS5wbmciIGFsdD0iQnV5IE1lIEEgQ29mZmVlIiBoZWlnaHQ9IjQxIiB3aWR0aD0iMTc0Ij48L2E+CgojIyMgQXNrIGZvciBkaXJlY3Qgc3VwcG9ydCBvciBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbgoKT3BlbkFQSUNsaWVudFdpemFyZCBpcyBwcm92aWRlZCBhcyBpcy4gSWYgeW91IG5lZWQgYW55IHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGNvbnRhY3QgbWUgdmlhIFtlbWFpbF0oYWRlaGJhbkBnbWFpbC5jb20pLCBwbGVhc2UuCgojIyBDb250cmlidXRpbmcKCkNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUhIApJZiB5b3UgaGF2ZSBzdWdnZXN0aW9ucyBmb3IgaW1wcm92ZW1lbnRzIG9yIGZpbmQgYW55IGlzc3VlcywgcGxlYXNlIG9wZW4gYW4gaXNzdWUgb3Igc3VibWl0IGEgcHVsbCByZXF1ZXN0LgoKIyMgTGljZW5zZQpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiAKU2VlIHRoZSBMSUNFTlNFIGZpbGUgZm9yIGRldGFpbHMuCgojIyBEZXBlbmRlbmNpZXMKVGhpcyBwbHVnaW4gdXRpbGl6ZXMgdGhlIE5lc2xpYiBsaWJyYXJ5IHRvIHBhcnNlIFlhbWwgZm9ybWF0LCB3aGljaCBpcyBpbmNsdWRlZCBpbiB0aGUgcmVwb3NpdG9yeSBmb3IgY29udmVuaWVuY2UuIAoKTm8gYWN0aW9uIGlzIHJlcXVpcmVkIG9uIHlvdXIgcGFydC4gCgpIb3dldmVyLCB5b3UgY2FuIGZpbmQgdGhlIGxhdGVzdCBzb3VyY2UgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZXNsaWIvTmVzbGliLkpzb24pLgoKLS0tCgpUcmFuc2Zvcm0gdGhlIHdheSB5b3UgZGV2ZWxvcCBSRVNUIEFQSSBjbGllbnRzIGluIERlbHBoaSB3aXRoICoqT3BlbkFQSUNsaWVudFdpemFyZCoqLiAKCkRvd25sb2FkIGl0IHRvZGF5IGFuZCBzdHJlYW1saW5lIHlvdXIgd29ya2Zsb3chCgo8aHI+CjxwIGFsaWduPSJjZW50ZXIiPgo8aW1nIHNyYz0iaHR0cHM6Ly9pMC53cC5jb20vYmxvZ3MuZW1iYXJjYWRlcm8uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzExL2Rsb2dvbmV3LTU1ODI3NDAucG5nP3Jlc2l6ZT0yNTQlMkMyNDImc3NsPTEiIGFsdD0iRGVscGhpIj4KPC9wPgo8aDUgYWxpZ249ImNlbnRlciI+Ck1hZGUgd2l0aCA6aGVhcnQ6IG9uIERlbHBoaQo8L2g1Pgo= readmeEtag: '"f25aed280079a9f45bd4b6decd9534447425add8"' readmeLastModified: Tue, 03 Sep 2024 20:56:51 GMT repositoryId: 812935191 description: >- OpenAPIClientWizard – the ultimate plugin for RAD Studio that revolutionizes the way Delphi developers implement REST API clients. created: '2024-06-10T07:29:10Z' updated: '2024-09-03T20:56:57Z' language: Pascal archived: false stars: 40 watchers: 8 forks: 3 owner: AliDehbansiahkarbon logo: https://avatars.githubusercontent.com/u/5601608?v=4 license: MIT repoEtag: '"ee8804215182c7232d98896ef8065d9dffe1ae1209741b72a78899b428c36425"' repoLastModified: Tue, 03 Sep 2024 20:56:57 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/networknt/light-codegen v3: true repositoryMetadata: base64Readme: >- QSBjb2RlIGdlbmVyYXRvciBiYXNlZCBvbiBbcm9ja2VyXShodHRwczovL2dpdGh1Yi5jb20vZml6emVkL3JvY2tlcikgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIGNvbW1hbmQgbGluZSB1dGlsaXR5IG9yIHdlYiBzZXJ2aWNlLgoKW1N0YWNrIE92ZXJmbG93XShodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy90YWdnZWQvbGlnaHQtNGopIHwKW0dvb2dsZSBHcm91cF0oaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8jIWZvcnVtL2xpZ2h0LTRqKSB8CltHaXR0ZXIgQ2hhdF0oaHR0cHM6Ly9naXR0ZXIuaW0vbmV0d29ya250L2xpZ2h0LWNvZGVnZW4pIHwKW1N1YnJlZGRpdF0oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2xpZ2h0YXBpLykgfApbWW91dHViZSBDaGFubmVsXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSENSTVdKVlh3OGlCN3pLeEY1NUJ5dykgfApbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2MubmV0d29ya250LmNvbS90b29sL2xpZ2h0LWNvZGVnZW4vKSB8CltDb250cmlidXRpb24gR3VpZGVdKGh0dHBzOi8vZG9jLm5ldHdvcmtudC5jb20vY29udHJpYnV0ZS8pIHwKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL25ldHdvcmtudC9saWdodC1jb2RlZ2VuLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL25ldHdvcmtudC9saWdodC1jb2RlZ2VuKQoKVGhlIExpZ2h0IHBsYXRmb3JtIGNvbnRhaW5zIHNldmVyYWwgZnJhbWV3b3JrcyB0byBidWlsZCBkaWZmZXJlbnQgc3R5bGVzIG9mIEFQSXMgb3IgbWljcm9zZXJ2aWNlcyBiYXNlZCBvbiB0aGUgY29udHJhY3Qgc3BlY2lmaWNhdGlvbnMuIEl0IGVuY291cmFnZXMgdXNlcnMgdG8gY3JlYXRlIHNlcnZpY2UgY29udHJhY3Qgc3BlY2lmaWNhdGlvbiBiZWZvcmUgY29kaW5nLCBhbmQgaXQgd291bGQgYmUgbmljZSBpZiB3ZSBjYW4gc2NhZmZvbGQgYSBwcm9qZWN0IGJhc2VkIG9uIHRoZSBkZXNpZ25lZCBzcGVjaWZpY2F0aW9uLiBGdXJ0aGVyLCBpdCB3b3VsZCBiZSBldmVuIHN3ZWV0ZXIgaWYgd2UgY291bGQgdXRpbGl6ZSB0aGUgc3BlY2lmaWNhdGlvbiBkdXJpbmcgcnVudGltZSB0byB2ZXJpZnkgdGhlIHNlY3VyaXR5IGFuZCB2YWxpZGF0ZSBpbnB1dCByZXF1ZXN0L291dCByZXNwb25zZSBiYXNlZCBvbiB0aGUgc2FtZSBzcGVjaWZpY2F0aW9uLgoKQmVmb3JlIHdlIGJ1aWx0IG91ciBnZW5lcmF0b3IsIHdlIGxvb2tlZCBhdCB0aGUgb3Blbi1zb3VyY2UgY29tbXVuaXR5IGFuZCBjb3VsZG4ndCBmaW5kIGFueXRoaW5nIHN1aXRhYmxlIGZvciBvdXIgbmVlZHMuIFNvIHdlIGNyZWF0ZWQgb25lIG92ZXIgYSB3ZWVrZW5kLCBhbmQgaXQgdHVybmVkIG91dCB2ZXJ5IHN1Y2Nlc3NmdWwuIElmIHlvdSB3YW50IHRvIGtub3cgbW9yZSBhYm91dCBpdCwgcGxlYXNlIGNoZWNrIG91dCB0aGUgW2xpZ2h0LWNvZGVnZW4gZG9jdW1lbnRdKGh0dHBzOi8vZG9jLm5ldHdvcmtudC5jb20vdG9vbC9saWdodC1jb2RlZ2VuLykuCgpUaGUgZ2VuZXJhdG9yIGlzIHZlcnkgZWFzeSB0byB1c2UsIGFuZCB0aGVyZSBhcmUgbnVtZXJpYyB3YXlzIHRvIHVzZSBpdC4gQ29tbWFuZC1saW5lLCBEb2NrZXIsIFNjcmlwdGluZywgYW5kIFtXZWIgVUldKGh0dHBzOi8vY29kZWdlbi5saWdodGFwaS5uZXQpLiBUbyBnZXQgc3RhcnRlZCwgcGxlYXNlIGZvbGxvdyB0aGUgW2dldHRpbmctc3RhcnRlZF0oaHR0cHM6Ly9kb2MubmV0d29ya250LmNvbS9nZXR0aW5nLXN0YXJ0ZWQvbGlnaHQtY29kZWdlbi8pLgoKSWYgeW91IHdhbnQgdG8ga25vdyBhbGwgdGhlIG9wdGlvbnMgd2l0aCB0aGUgbGlnaHQtY29kZWdlbiwgeW91IGNhbiBmb2xsb3cgdGhlIHR1dG9yaWFscyBmb3IgZWFjaCBnZW5lcmF0b3IgYXQgW2xpZ2h0LWNvZGVnZW4gdHV0b3JpYWxdKGh0dHBzOi8vZG9jLm5ldHdvcmtudC5jb20vdHV0b3JpYWwvZ2VuZXJhdG9yLykuCgpBbHNvLCB0aGVyZSBhcmUgc28gbWFueSBbb3RoZXIgdHV0b3JpYWxzXShodHRwczovL2RvYy5uZXR3b3JrbnQuY29tL3R1dG9yaWFsLykgdGhhdCBhcmUgdXNpbmcgbGlnaHQtY29kZWdlbiB0byBzY2FmZm9sZCBwcm9qZWN0cywgYW5kIHRoZXNlIGNhbiBiZSBmb3VuZCBpbiB0aGUgdHV0b3JpYWwgc2VjdGlvbi4K readmeEtag: '"3e249f4adf8a02097ffe857091c3fd6de2561e9c"' readmeLastModified: Sat, 22 Jun 2024 15:21:05 GMT repositoryId: 89109684 description: >- A code generator based on rocker that can be used as an utility or web service created: '2017-04-23T01:25:59Z' updated: '2024-09-01T03:43:24Z' language: Java archived: false stars: 41 watchers: 24 forks: 23 owner: networknt logo: https://avatars.githubusercontent.com/u/8740739?v=4 license: Apache-2.0 repoEtag: '"5713e33f472d3b3bb933815a5d8d4ce930a2b3a0c0f48e05f9ffb2dd95705f85"' repoLastModified: Sun, 01 Sep 2024 03:43:24 GMT foundInMaster: true category: - Code Generators - Parsers id: d81400a71f884e180d82047ee75eafea - source: openapi3 tags repository: https://github.com/vuongtlt13/full-stack-fastapi-mysql v3: true repositoryMetadata: base64Readme: >- IyBGdWxsIFN0YWNrIEZhc3RBUEkgYW5kIE15U1FMIC0gQmFzZSBQcm9qZWN0IEdlbmVyYXRvcgoKIyMjICpUaGlzIHByb2plY3QgYmFzZWQgb24gdGhlIHByb2plY3QgaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Z1bGwtc3RhY2stZmFzdGFwaS1wb3N0Z3Jlc3FsLCBidXQgdXNlIE15U1FMIGluc3RlYWQgUG9zdGdyZVNRTCogICAgCgogIAoKJm5ic3A7CgoKR2VuZXJhdGUgYSBiYWNrZW5kIGFuZCBmcm9udGVuZCBzdGFjayB1c2luZyBQeXRob24sIGluY2x1ZGluZyBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbi4KCiMjIyBJbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbgoKWyFbQVBJIGRvY3NdKGltZy9kb2NzLnBuZyldKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbCkKCiMjIyBBbHRlcm5hdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbgoKWyFbQVBJIGRvY3NdKGltZy9yZWRvYy5wbmcpXShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwpCgojIyMgRGFzaGJvYXJkIExvZ2luCgpbIVtBUEkgZG9jc10oaW1nL2xvZ2luLnBuZyldKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbCkKCiMjIyBEYXNoYm9hcmQgLSBDcmVhdGUgVXNlcgoKWyFbQVBJIGRvY3NdKGltZy9kYXNoYm9hcmQucG5nKV0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsKQoKIyMgRmVhdHVyZXMKCiogRnVsbCAqKkRvY2tlcioqIGludGVncmF0aW9uIChEb2NrZXIgYmFzZWQpLgoqIERvY2tlciBTd2FybSBNb2RlIGRlcGxveW1lbnQuCiogKipEb2NrZXIgQ29tcG9zZSoqIGludGVncmF0aW9uIGFuZCBvcHRpbWl6YXRpb24gZm9yIGxvY2FsIGRldmVsb3BtZW50LgoqICoqUHJvZHVjdGlvbiByZWFkeSoqIFB5dGhvbiB3ZWIgc2VydmVyIHVzaW5nIFV2aWNvcm4gYW5kIEd1bmljb3JuLgoqIFB5dGhvbiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZmFzdGFwaSIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj4qKkZhc3RBUEkqKjwvYT4gYmFja2VuZDoKICAgICogKipGYXN0Kio6IFZlcnkgaGlnaCBwZXJmb3JtYW5jZSwgb24gcGFyIHdpdGggKipOb2RlSlMqKiBhbmQgKipHbyoqICh0aGFua3MgdG8gU3RhcmxldHRlIGFuZCBQeWRhbnRpYykuCiAgICAqICoqSW50dWl0aXZlKio6IEdyZWF0IGVkaXRvciBzdXBwb3J0LiA8YWJiciB0aXRsZT0iYWxzbyBrbm93biBhcyBhdXRvLWNvbXBsZXRlLCBhdXRvY29tcGxldGlvbiwgSW50ZWxsaVNlbnNlIj5Db21wbGV0aW9uPC9hYmJyPiBldmVyeXdoZXJlLiBMZXNzIHRpbWUgZGVidWdnaW5nLgogICAgKiAqKkVhc3kqKjogRGVzaWduZWQgdG8gYmUgZWFzeSB0byB1c2UgYW5kIGxlYXJuLiBMZXNzIHRpbWUgcmVhZGluZyBkb2NzLgogICAgKiAqKlNob3J0Kio6IE1pbmltaXplIGNvZGUgZHVwbGljYXRpb24uIE11bHRpcGxlIGZlYXR1cmVzIGZyb20gZWFjaCBwYXJhbWV0ZXIgZGVjbGFyYXRpb24uCiAgICAqICoqUm9idXN0Kio6IEdldCBwcm9kdWN0aW9uLXJlYWR5IGNvZGUuIFdpdGggYXV0b21hdGljIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24uCiAgICAqICoqU3RhbmRhcmRzLWJhc2VkKio6IEJhc2VkIG9uIChhbmQgZnVsbHkgY29tcGF0aWJsZSB3aXRoKSB0aGUgb3BlbiBzdGFuZGFyZHMgZm9yIEFQSXM6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uIiBjbGFzcz0iZXh0ZXJuYWwtbGluayIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5BUEk8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vanNvbi1zY2hlbWEub3JnLyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5KU09OIFNjaGVtYTwvYT4uCiAgICAqIDxhIGhyZWY9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vZmVhdHVyZXMvIiBjbGFzcz0iZXh0ZXJuYWwtbGluayIgdGFyZ2V0PSJfYmxhbmsiPioqTWFueSBvdGhlciBmZWF0dXJlcyoqPC9hPiBpbmNsdWRpbmcgYXV0b21hdGljIHZhbGlkYXRpb24sIHNlcmlhbGl6YXRpb24sIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24sIGF1dGhlbnRpY2F0aW9uIHdpdGggT0F1dGgyIEpXVCB0b2tlbnMsIGV0Yy4KKiAqKlNlY3VyZSBwYXNzd29yZCoqIGhhc2hpbmcgYnkgZGVmYXVsdC4KKiAqKkpXVCB0b2tlbioqIGF1dGhlbnRpY2F0aW9uLgoqICoqU1FMQWxjaGVteSoqIG1vZGVscyAoaW5kZXBlbmRlbnQgb2YgRmxhc2sgZXh0ZW5zaW9ucywgc28gdGhleSBjYW4gYmUgdXNlZCB3aXRoIENlbGVyeSB3b3JrZXJzIGRpcmVjdGx5KS4KKiBCYXNpYyBzdGFydGluZyBtb2RlbHMgZm9yIHVzZXJzIChtb2RpZnkgYW5kIHJlbW92ZSBhcyB5b3UgbmVlZCkuCiogKipBbGVtYmljKiogbWlncmF0aW9ucy4KKiAqKkNPUlMqKiAoQ3Jvc3MgT3JpZ2luIFJlc291cmNlIFNoYXJpbmcpLgoqICoqQ2VsZXJ5Kiogd29ya2VyIHRoYXQgY2FuIGltcG9ydCBhbmQgdXNlIG1vZGVscyBhbmQgY29kZSBmcm9tIHRoZSByZXN0IG9mIHRoZSBiYWNrZW5kIHNlbGVjdGl2ZWx5LgoqIFJFU1QgYmFja2VuZCB0ZXN0cyBiYXNlZCBvbiAqKlB5dGVzdCoqLCBpbnRlZ3JhdGVkIHdpdGggRG9ja2VyLCBzbyB5b3UgY2FuIHRlc3QgdGhlIGZ1bGwgQVBJIGludGVyYWN0aW9uLCBpbmRlcGVuZGVudCBvbiB0aGUgZGF0YWJhc2UuIEFzIGl0IHJ1bnMgaW4gRG9ja2VyLCBpdCBjYW4gYnVpbGQgYSBuZXcgZGF0YSBzdG9yZSBmcm9tIHNjcmF0Y2ggZWFjaCB0aW1lIChzbyB5b3UgY2FuIHVzZSBFbGFzdGljU2VhcmNoLCBNb25nb0RCLCBDb3VjaERCLCBvciB3aGF0ZXZlciB5b3Ugd2FudCwgYW5kIGp1c3QgdGVzdCB0aGF0IHRoZSBBUEkgd29ya3MpLgoqIEVhc3kgUHl0aG9uIGludGVncmF0aW9uIHdpdGggKipKdXB5dGVyIEtlcm5lbHMqKiBmb3IgcmVtb3RlIG9yIGluLURvY2tlciBkZXZlbG9wbWVudCB3aXRoIGV4dGVuc2lvbnMgbGlrZSBBdG9tIEh5ZHJvZ2VuIG9yIFZpc3VhbCBTdHVkaW8gQ29kZSBKdXB5dGVyLgoqICoqVnVlKiogZnJvbnRlbmQ6CiAgICAqIEdlbmVyYXRlZCB3aXRoIFZ1ZSBDTEkuCiAgICAqICoqSldUIEF1dGhlbnRpY2F0aW9uKiogaGFuZGxpbmcuCiAgICAqIExvZ2luIHZpZXcuCiAgICAqIEFmdGVyIGxvZ2luLCBtYWluIGRhc2hib2FyZCB2aWV3LgogICAgKiBNYWluIGRhc2hib2FyZCB3aXRoIHVzZXIgY3JlYXRpb24gYW5kIGVkaXRpb24uCiAgICAqIFNlbGYgdXNlciBlZGl0aW9uLgogICAgKiAqKlZ1ZXgqKi4KICAgICogKipWdWUtcm91dGVyKiouCiAgICAqICoqVnVldGlmeSoqIGZvciBiZWF1dGlmdWwgbWF0ZXJpYWwgZGVzaWduIGNvbXBvbmVudHMuCiAgICAqICoqVHlwZVNjcmlwdCoqLgogICAgKiBEb2NrZXIgc2VydmVyIGJhc2VkIG9uICoqTmdpbngqKiAoY29uZmlndXJlZCB0byBwbGF5IG5pY2VseSB3aXRoIFZ1ZS1yb3V0ZXIpLgogICAgKiBEb2NrZXIgbXVsdGktc3RhZ2UgYnVpbGRpbmcsIHNvIHlvdSBkb24ndCBuZWVkIHRvIHNhdmUgb3IgY29tbWl0IGNvbXBpbGVkIGNvZGUuCiAgICAqIEZyb250ZW5kIHRlc3RzIHJhbiBhdCBidWlsZCB0aW1lIChjYW4gYmUgZGlzYWJsZWQgdG9vKS4KICAgICogTWFkZSBhcyBtb2R1bGFyIGFzIHBvc3NpYmxlLCBzbyBpdCB3b3JrcyBvdXQgb2YgdGhlIGJveCwgYnV0IHlvdSBjYW4gcmUtZ2VuZXJhdGUgd2l0aCBWdWUgQ0xJIG9yIGNyZWF0ZSBpdCBhcyB5b3UgbmVlZCwgYW5kIHJlLXVzZSB3aGF0IHlvdSB3YW50LgogICAgKiBJdCdzIGFsc28gZWFzeSB0byByZW1vdmUgaXQgaWYgeW91IGhhdmUgYW4gQVBJLW9ubHkgYXBwLCBjaGVjayB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBnZW5lcmF0ZWQgYFJFQURNRS5tZGAuCiogKipGbG93ZXIqKiBmb3IgQ2VsZXJ5IGpvYnMgbW9uaXRvcmluZy4KKiBMb2FkIGJhbGFuY2luZyBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIHdpdGggKipUcmFlZmlrKiosIHNvIHlvdSBjYW4gaGF2ZSBib3RoIHVuZGVyIHRoZSBzYW1lIGRvbWFpbiwgc2VwYXJhdGVkIGJ5IHBhdGgsIGJ1dCBzZXJ2ZWQgYnkgZGlmZmVyZW50IGNvbnRhaW5lcnMuCiogVHJhZWZpayBpbnRlZ3JhdGlvbiwgaW5jbHVkaW5nIExldCdzIEVuY3J5cHQgKipIVFRQUyoqIGNlcnRpZmljYXRlcyBhdXRvbWF0aWMgZ2VuZXJhdGlvbi4KKiBHaXRMYWIgKipDSSoqIChjb250aW51b3VzIGludGVncmF0aW9uKSwgaW5jbHVkaW5nIGZyb250ZW5kIGFuZCBiYWNrZW5kIHRlc3RpbmcuCgojIyBIb3cgdG8gdXNlIGl0CgpHbyB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHlvdSB3YW50IHRvIGNyZWF0ZSB5b3VyIHByb2plY3QgYW5kIHJ1bjoKCmBgYGJhc2gKcGlwIGluc3RhbGwgY29va2llY3V0dGVyCmNvb2tpZWN1dHRlciBodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwKYGBgCgojIyMgR2VuZXJhdGUgcGFzc3dvcmRzCgpZb3Ugd2lsbCBiZSBhc2tlZCB0byBwcm92aWRlIHBhc3N3b3JkcyBhbmQgc2VjcmV0IGtleXMgZm9yIHNldmVyYWwgY29tcG9uZW50cy4gT3BlbiBhbm90aGVyIHRlcm1pbmFsIGFuZCBydW46CgpgYGBiYXNoCm9wZW5zc2wgcmFuZCAtaGV4IDMyCiMgT3V0cHV0cyBzb21ldGhpbmcgbGlrZTogOTlkM2IxZjAxYWE2MzllNGE3NmY0ZmMyODFmYzgzNDc0N2E1NDM3MjBiYTRjOGE4NjQ4YmE3NTVhZWY5YmU3ZgpgYGAKCkNvcHkgdGhlIGNvbnRlbnRzIGFuZCB1c2UgdGhhdCBhcyBwYXNzd29yZCAvIHNlY3JldCBrZXkuIEFuZCBydW4gdGhhdCBhZ2FpbiB0byBnZW5lcmF0ZSBhbm90aGVyIHNlY3VyZSBrZXkuCgoKIyMjIElucHV0IHZhcmlhYmxlcwoKVGhlIGdlbmVyYXRvciAoY29va2llY3V0dGVyKSB3aWxsIGFzayB5b3UgZm9yIHNvbWUgZGF0YSwgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBhdCBoYW5kIGJlZm9yZSBnZW5lcmF0aW5nIHRoZSBwcm9qZWN0LgoKVGhlIGlucHV0IHZhcmlhYmxlcywgd2l0aCB0aGVpciBkZWZhdWx0IHZhbHVlcyAoc29tZSBhdXRvIGdlbmVyYXRlZCkgYXJlOgoKKiBgcHJvamVjdF9uYW1lYDogVGhlIG5hbWUgb2YgdGhlIHByb2plY3QKKiBgcHJvamVjdF9zbHVnYDogVGhlIGRldmVsb3BtZW50IGZyaWVuZGx5IG5hbWUgb2YgdGhlIHByb2plY3QuIEJ5IGRlZmF1bHQsIGJhc2VkIG9uIHRoZSBwcm9qZWN0IG5hbWUKKiBgZG9tYWluX21haW5gOiBUaGUgZG9tYWluIGluIHdoZXJlIHRvIGRlcGxveSB0aGUgcHJvamVjdCBmb3IgcHJvZHVjdGlvbiAoZnJvbSB0aGUgYnJhbmNoIGBwcm9kdWN0aW9uYCksIHVzZWQgYnkgdGhlIGxvYWQgYmFsYW5jZXIsIGJhY2tlbmQsIGV0Yy4gQnkgZGVmYXVsdCwgYmFzZWQgb24gdGhlIHByb2plY3Qgc2x1Zy4KKiBgZG9tYWluX3N0YWdpbmdgOiBUaGUgZG9tYWluIGluIHdoZXJlIHRvIGRlcGxveSB3aGlsZSBzdGFnaW5nIChiZWZvcmUgcHJvZHVjdGlvbikgKGZyb20gdGhlIGJyYW5jaCBgbWFzdGVyYCkuIEJ5IGRlZmF1bHQsIGJhc2VkIG9uIHRoZSBtYWluIGRvbWFpbi4KCiogYGRvY2tlcl9zd2FybV9zdGFja19uYW1lX21haW5gOiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgd2hpbGUgZGVwbG95aW5nIHRvIERvY2tlciBpbiBTd2FybSBtb2RlIGZvciBwcm9kdWN0aW9uLiBCeSBkZWZhdWx0LCBiYXNlZCBvbiB0aGUgZG9tYWluLgoqIGBkb2NrZXJfc3dhcm1fc3RhY2tfbmFtZV9zdGFnaW5nYDogVGhlIG5hbWUgb2YgdGhlIHN0YWNrIHdoaWxlIGRlcGxveWluZyB0byBEb2NrZXIgaW4gU3dhcm0gbW9kZSBmb3Igc3RhZ2luZy4gQnkgZGVmYXVsdCwgYmFzZWQgb24gdGhlIGRvbWFpbi4KCiogYHNlY3JldF9rZXlgOiBCYWNrZW5kIHNlcnZlciBzZWNyZXQga2V5LiBVc2UgdGhlIG1ldGhvZCBhYm92ZSB0byBnZW5lcmF0ZSBpdC4KKiBgZmlyc3Rfc3VwZXJ1c2VyYDogVGhlIGZpcnN0IHN1cGVydXNlciBnZW5lcmF0ZWQsIHdpdGggaXQgeW91IHdpbGwgYmUgYWJsZSB0byBjcmVhdGUgbW9yZSB1c2VycywgZXRjLiBCeSBkZWZhdWx0LCBiYXNlZCBvbiB0aGUgZG9tYWluLgoqIGBmaXJzdF9zdXBlcnVzZXJfcGFzc3dvcmRgOiBGaXJzdCBzdXBlcnVzZXIgcGFzc3dvcmQuIFVzZSB0aGUgbWV0aG9kIGFib3ZlIHRvIGdlbmVyYXRlIGl0LgoqIGBiYWNrZW5kX2NvcnNfb3JpZ2luc2A6IE9yaWdpbnMgKGRvbWFpbnMsIG1vcmUgb3IgbGVzcykgdGhhdCBhcmUgZW5hYmxlZCBmb3IgQ09SUyAoQ3Jvc3MgT3JpZ2luIFJlc291cmNlIFNoYXJpbmcpLiBUaGlzIGFsbG93cyBhIGZyb250ZW5kIGluIG9uZSBkb21haW4gKGUuZy4gYGh0dHBzOi8vZGFzaGJvYXJkLmV4YW1wbGUuY29tYCkgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGlzIGJhY2tlbmQsIHRoYXQgY291bGQgYmUgbGl2aW5nIGluIGFub3RoZXIgZG9tYWluIChlLmcuIGBodHRwczovL2FwaS5leGFtcGxlLmNvbWApLiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGFsbG93IHlvdXIgbG9jYWwgZnJvbnRlbmQgKHdpdGggYSBjdXN0b20gYGhvc3RzYCBkb21haW4gbWFwcGluZywgYXMgZGVzY3JpYmVkIGluIHRoZSBwcm9qZWN0J3MgYFJFQURNRS5tZGApIHRoYXQgY291bGQgYmUgbGl2aW5nIGluIGBodHRwOi8vZGV2LmV4YW1wbGUuY29tOjgwODBgIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGJhY2tlbmQgYXQgYGh0dHBzOi8vc3RhZy5leGFtcGxlLmNvbWAuIE5vdGljZSB0aGUgYGh0dHBgIHZzIGBodHRwc2AgYW5kIHRoZSBgZGV2LmAgcHJlZml4IGZvciBsb2NhbCBkZXZlbG9wbWVudCB2cyB0aGUgInN0YWdpbmciIGBzdGFnLmAgcHJlZml4LiBCeSBkZWZhdWx0LCBpdCBpbmNsdWRlcyBvcmlnaW5zIGZvciBwcm9kdWN0aW9uLCBzdGFnaW5nIGFuZCBkZXZlbG9wbWVudCwgd2l0aCBwb3J0cyBjb21tb25seSB1c2VkIGR1cmluZyBsb2NhbCBkZXZlbG9wbWVudCBieSBzZXZlcmFsIHBvcHVsYXIgZnJvbnRlbmQgZnJhbWV3b3JrcyAoVnVlIHdpdGggYDo4MDgwYCwgUmVhY3QsIEFuZ3VsYXIpLgoqIGBzbXRwX3BvcnRgOiBQb3J0IHRvIHVzZSB0byBzZW5kIGVtYWlscyB2aWEgU01UUC4gQnkgZGVmYXVsdCBgNTg3YC4KKiBgc210cF9ob3N0YDogSG9zdCB0byB1c2UgdG8gc2VuZCBlbWFpbHMsIGl0IHdvdWxkIGJlIGdpdmVuIGJ5IHlvdXIgZW1haWwgcHJvdmlkZXIsIGxpa2UgTWFpbGd1biwgU3Bhcmtwb3N0LCBldGMuCiogYHNtdHBfdXNlcmA6IFRoZSB1c2VyIHRvIHVzZSBpbiB0aGUgU01UUCBjb25uZWN0aW9uLiBUaGUgdmFsdWUgd2lsbCBiZSBnaXZlbiBieSB5b3VyIGVtYWlsIHByb3ZpZGVyLgoqIGBzbXRwX3Bhc3N3b3JkYDogVGhlIHBhc3N3b3JkIHRvIGJlIHVzZWQgaW4gdGhlIFNNVFAgY29ubmVjdGlvbi4gVGhlIHZhbHVlIHdpbGwgYmUgZ2l2ZW4gYnkgdGhlIGVtYWlsIHByb3ZpZGVyLgoqIGBzbXRwX2VtYWlsc19mcm9tX2VtYWlsYDogVGhlIGVtYWlsIGFjY291bnQgdG8gdXNlIGFzIHRoZSBzZW5kZXIgaW4gdGhlIG5vdGlmaWNhdGlvbiBlbWFpbHMsIGl0IHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlIGBpbmZvQHlvdXItY3VzdG9tLWRvbWFpbi5jb21gLgogCiogYG15c3FsX3VzZXJgOiBNeVNRTCBpbml0IHVzZXIuCiogYG15c3FsX3Bhc3N3b3JkYDogTXlTUUwgcGFzc3dvcmQgZm9yIGluaXQgdXNlci4KKiBgbXlzcWxfZGF0YWJhc2VgOiBNeVNRTCBkYXRhYmFzZSBuYW1lLgoqIGBteXNxbF9yb290X3Bhc3N3b3JkYDogTXlTUUwgcGFzc3dvcmQgZm9yICpyb290KiB1c2VyLgogCiogYHRyYWVmaWtfY29uc3RyYWludF90YWdgOiBUaGUgdGFnIHRvIGJlIHVzZWQgYnkgdGhlIGludGVybmFsIFRyYWVmaWsgbG9hZCBiYWxhbmNlciAoZm9yIGV4YW1wbGUsIHRvIGRpdmlkZSByZXF1ZXN0cyBiZXR3ZWVuIGJhY2tlbmQgYW5kIGZyb250ZW5kKSBmb3IgcHJvZHVjdGlvbi4gVXNlZCB0byBzZXBhcmF0ZSB0aGlzIHN0YWNrIGZyb20gYW55IG90aGVyIHN0YWNrIHlvdSBtaWdodCBoYXZlLiBUaGlzIHNob3VsZCBpZGVudGlmeSBlYWNoIHN0YWNrIGluIGVhY2ggZW52aXJvbm1lbnQgKHByb2R1Y3Rpb24sIHN0YWdpbmcsIGV0YykuCiogYHRyYWVmaWtfY29uc3RyYWludF90YWdfc3RhZ2luZ2A6IFRoZSBUcmFlZmlrIHRhZyB0byBiZSB1c2VkIHdoaWxlIG9uIHN0YWdpbmcuCiogYHRyYWVmaWtfcHVibGljX2NvbnN0cmFpbnRfdGFnYDogVGhlIHRhZyB0aGF0IHNob3VsZCBiZSB1c2VkIGJ5IHN0YWNrIHNlcnZpY2VzIHRoYXQgc2hvdWxkIGNvbW11bmljYXRlIHdpdGggdGhlIHB1YmxpYy4KCiogYGZsb3dlcl9hdXRoYDogQmFzaWMgSFRUUCBhdXRoZW50aWNhdGlvbiBmb3IgZmxvd2VyLCBpbiB0aGUgZm9ybWB1c2VyOnBhc3N3b3JkYC4gQnkgZGVmYXVsdDogImBhZG1pbjpjaGFuZ2V0aGlzYCIuCgoqIGBzZW50cnlfZHNuYDogS2V5IFVSTCAoRFNOKSBvZiBTZW50cnksIGZvciBsaXZlIGVycm9yIHJlcG9ydGluZy4gWW91IGNhbiB1c2UgdGhlIG9wZW4gc291cmNlIHZlcnNpb24gb3IgYSBmcmVlIGFjY291bnQuIEUuZy46IGBodHRwczovLzEyMzRhYmNkOjU2NzhlZkBzZW50cnkuZXhhbXBsZS5jb20vMzBgLgoKKiBgZG9ja2VyX2ltYWdlX3ByZWZpeGA6IFByZWZpeCB0byB1c2UgZm9yIERvY2tlciBpbWFnZSBuYW1lcy4gSWYgeW91IGFyZSB1c2luZyBHaXRMYWIgRG9ja2VyIHJlZ2lzdHJ5IGl0IHdvdWxkIGJlIGJhc2VkIG9uIHlvdXIgY29kZSByZXBvc2l0b3J5LiBFLmcuOiBgZ2l0LmV4YW1wbGUuY29tL2RldmVsb3BtZW50LXRlYW0vbXktYXdlc29tZS1wcm9qZWN0L2AuCiogYGRvY2tlcl9pbWFnZV9iYWNrZW5kYDogRG9ja2VyIGltYWdlIG5hbWUgZm9yIHRoZSBiYWNrZW5kLiBCeSBkZWZhdWx0LCBpdCB3aWxsIGJlIGJhc2VkIG9uIHlvdXIgRG9ja2VyIGltYWdlIHByZWZpeCwgZS5nLjogYGdpdC5leGFtcGxlLmNvbS9kZXZlbG9wbWVudC10ZWFtL215LWF3ZXNvbWUtcHJvamVjdC9iYWNrZW5kYC4gQW5kIGRlcGVuZGluZyBvbiB5b3VyIGVudmlyb25tZW50LCBhIGRpZmZlcmVudCB0YWcgd2lsbCBiZSBhcHBlbmRlZCAoIGBwcm9kYCwgYHN0YWdgLCBgYnJhbmNoYCApLiBTbywgdGhlIGZpbmFsIGltYWdlIG5hbWVzIHVzZWQgd2lsbCBiZSBsaWtlOiBgZ2l0LmV4YW1wbGUuY29tL2RldmVsb3BtZW50LXRlYW0vbXktYXdlc29tZS1wcm9qZWN0L2JhY2tlbmQ6cHJvZGAuCiogYGRvY2tlcl9pbWFnZV9jZWxlcnl3b3JrZXJgOiBEb2NrZXIgaW1hZ2UgZm9yIHRoZSBjZWxlcnkgd29ya2VyLiBCeSBkZWZhdWx0LCBiYXNlZCBvbiB5b3VyIERvY2tlciBpbWFnZSBwcmVmaXguCiogYGRvY2tlcl9pbWFnZV9mcm9udGVuZGA6IERvY2tlciBpbWFnZSBmb3IgdGhlIGZyb250ZW5kLiBCeSBkZWZhdWx0LCBiYXNlZCBvbiB5b3VyIERvY2tlciBpbWFnZSBwcmVmaXguCgojIyBIb3cgdG8gZGVwbG95CgpUaGlzIHN0YWNrIGNhbiBiZSBhZGp1c3RlZCBhbmQgdXNlZCB3aXRoIHNldmVyYWwgZGVwbG95bWVudCBvcHRpb25zIHRoYXQgYXJlIGNvbXBhdGlibGUgd2l0aCBEb2NrZXIgQ29tcG9zZSwgYnV0IGl0IGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgaW4gYSBjbHVzdGVyIGNvbnRyb2xsZWQgd2l0aCBwdXJlIERvY2tlciBpbiBTd2FybSBNb2RlIHdpdGggYSBUcmFlZmlrIG1haW4gbG9hZCBiYWxhbmNlciBwcm94eSBoYW5kbGluZyBhdXRvbWF0aWMgSFRUUFMgY2VydGlmaWNhdGVzLCB1c2luZyB0aGUgaWRlYXMgZnJvbSA8YSBocmVmPSJodHRwczovL2RvY2tlcnN3YXJtLnJvY2tzIiB0YXJnZXQ9Il9ibGFuayI+RG9ja2VyU3dhcm0ucm9ja3M8L2E+LgoKUGxlYXNlIHJlZmVyIHRvIDxhIGhyZWY9Imh0dHBzOi8vZG9ja2Vyc3dhcm0ucm9ja3MiIHRhcmdldD0iX2JsYW5rIj5Eb2NrZXJTd2FybS5yb2NrczwvYT4gdG8gc2VlIGhvdyB0byBkZXBsb3kgc3VjaCBhIGNsdXN0ZXIgaW4gMjAgbWludXRlcy4KCiMjIE1vcmUgZGV0YWlscwoKQWZ0ZXIgdXNpbmcgdGhpcyBnZW5lcmF0b3IsIHlvdXIgbmV3IHByb2plY3QgKHRoZSBkaXJlY3RvcnkgY3JlYXRlZCkgd2lsbCBjb250YWluIGFuIGV4dGVuc2l2ZSBgUkVBRE1FLm1kYCB3aXRoIGluc3RydWN0aW9ucyBmb3IgZGV2ZWxvcG1lbnQsIGRlcGxveW1lbnQsIGV0Yy4gWW91IGNhbiBwcmUtcmVhZCBbdGhlIHByb2plY3QgYFJFQURNRS5tZGAgdGVtcGxhdGUgaGVyZSB0b29dKC4ve3tjb29raWVjdXR0ZXIucHJvamVjdF9zbHVnfX0vUkVBRE1FLm1kKS4KCgojIyBSZWxlYXNlIE5vdGVzCgojIyMgTGF0ZXN0IENoYW5nZXMKKiBDaGFuZ2UgdG8gdXNlIE15U1FMIGFuZCB1cGRhdGUgZG9jcwoqIFVwZGF0ZSBpc3N1ZS1tYW5hZ2VyLiBQUiBbIzIxMV0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMjExKS4KKiBBZGQgW0dpdEh1YiBTcG9uc29yc10oaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3RpYW5nb2xvKSBidXR0b24uIFBSIFsjMjAxXShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8yMDEpLgoqIEFkZCBjb25zaXN0ZW50IGVycm9ycyBmb3IgZW52IHZhcnMgbm90IHNldC4gUFIgWyMyMDBdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzIwMCkuCiogVXBncmFkZSBUcmFlZmlrIHRvIHZlcnNpb24gMiwga2VlcGluZyBpbiBzeW5jIHdpdGggRG9ja2VyU3dhcm0ucm9ja3MuIFBSIFsjMTk5XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8xOTkpLgoqIEFkZCBkb2NzIGFib3V0IHJlcG9ydGluZyB0ZXN0IGNvdmVyYWdlIGluIEhUTUwuIFBSIFsjMTYxXShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8xNjEpLgoqIFJ1biB0ZXN0cyB3aXRoIGBUZXN0Q2xpZW50YC4gUFIgWyMxNjBdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzE2MCkuCiogUmVmYWN0b3IgYmFja2VuZDoKICAgICogU2ltcGxpZnkgY29uZmlncyBmb3IgdG9vbHMgYW5kIGZvcm1hdCB0byBiZXR0ZXIgc3VwcG9ydCBlZGl0b3IgaW50ZWdyYXRpb24uCiAgICAqIEFkZCBteXB5IGNvbmZpZ3VyYXRpb25zIGFuZCBwbHVnaW5zLgogICAgKiBBZGQgdHlwZXMgdG8gYWxsIHRoZSBjb2RlYmFzZS4KICAgICogVXBkYXRlIHR5cGVzIGZvciBTUUxBbGNoZW15IG1vZGVscyB3aXRoIHBsdWdpbi4KICAgICogVXBkYXRlIGFuZCByZWZhY3RvciBDUlVEIHV0aWxzLgogICAgKiBSZWZhY3RvciBEQiBzZXNzaW9ucyB0byB1c2UgZGVwZW5kZW5jaWVzIHdpdGggYHlpZWxkYC4KICAgICogUmVmYWN0b3IgZGVwZW5kZW5jaWVzLCBzZWN1cml0eSwgQ1JVRCwgbW9kZWxzLCBzY2hlbWFzLCBldGMuIFRvIHNpbXBsaWZ5IGNvZGUgYW5kIGltcHJvdmUgYXV0b2NvbXBsZXRpb24uCiAgICAqIENoYW5nZSBmcm9tIFB5SldUIHRvIFB5dGhvbi1KT1NFIGFzIGl0IHN1cHBvcnRzIGFkZGl0aW9uYWwgdXNlIGNhc2VzLgogICAgKiBGaXggSldUIHRva2VucyB1c2luZyB1c2VyIGVtYWlsL0lEIGFzIHRoZSBzdWJqZWN0IGluIGBzdWJgLgogICAgKiBQUiBbIzE1OF0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTU4KS4KKiBBZGQgZG9jcyBhYm91dCByZW1vdmluZyB0aGUgZnJvbnRlbmQsIGZvciBhbiBBUEktb25seSBhcHAuIFBSIFsjMTU2XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8xNTYpLgoqIFNpbXBsaWZ5IHNjcmlwdHMgYW5kIGRldmVsb3BtZW50LCB1cGRhdGUgZG9jcyBhbmQgY29uZmlncy4gUFIgWyMxNTVdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzE1NSkuCiogU2ltcGxpZnkgYGRvY2tlci1jb21wb3NlLioueW1sYCBmaWxlcywgcmVmYWN0b3IgZGVwbG95bWVudCB0byByZWR1Y2UgY29uZmlnIGZpbGVzLiBQUiBbIzE1M10oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTUzKS4KKiBTaW1wbGlmeSBlbnYgdmFyIGZpbGVzLCBtZXJnZSB0byBhIHNpbmdsZSBgLmVudmAgZmlsZS4gUFIgWyMxNTFdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzE1MSkuCgojIyMgMC41LjAKCiogTWFrZSB0aGUgVHJhZWZpayBwdWJsaWMgbmV0d29yayBhIGZpeGVkIGRlZmF1bHQgb2YgYHRyYWVmaWstcHVibGljYCBhcyBkb25lIGluIERvY2tlclN3YXJtLnJvY2tzLCB0byBzaW1wbGlmeSBkZXZlbG9wbWVudCBhbmQgaXRlcmF0aW9uIG9mIHRoZSBwcm9qZWN0IGdlbmVyYXRvci4gUFIgWyMxNTBdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzE1MCkuCiogVXBkYXRlIHRvIFBvc3RncmVTUUwgMTIuIFBSIFsjMTQ4XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8xNDgpLiBieSBbQFJDaGVlc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9SQ2hlZXNlKS4KKiBVc2UgUG9ldHJ5IGZvciBwYWNrYWdlIG1hbmFnZW1lbnQuIEluaXRpYWwgUFIgWyMxNDRdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzE0NCkgYnkgW0BSQ2hlZXNlXShodHRwczovL2dpdGh1Yi5jb20vUkNoZWVzZSkuCiogRml4IFdpbmRvd3MgbGluZSBlbmRpbmdzIGZvciBzaGVsbCBzY3JpcHRzIGFmdGVyIHByb2plY3QgZ2VuZXJhdGlvbiB3aXRoIENvb2tpZWN1dHRlciBob29rcy4gUFIgWyMxNDldKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzE0OSkuCiogVXBncmFkZSBWdWUgQ0xJIHRvIHZlcnNpb24gNC4gUFIgWyMxMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzEyMCkgYnkgW0BicjNuZG9ubGFuZF0oaHR0cHM6Ly9naXRodWIuY29tL2JyM25kb25sYW5kKS4KKiBSZW1vdmUgZHVwbGljYXRlIGBsb2dpbmAgdGFnLiBQUiBbIzEzNV0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTM1KSBieSBbQE5vbmFtZWVudGVyZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9Ob25hbWVlbnRlcmVkKS4KKiBGaXggc2hvd2luZyBlbWFpbCBpbiBkYXNoYm9hcmQgd2hlbiB0aGVyZSdzIG5vIHVzZXIncyBmdWxsIG5hbWUuIFBSIFsjMTI5XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8xMjkpIGJ5IFtAcmxvbmthXShodHRwczovL2dpdGh1Yi5jb20vcmxvbmthKS4KKiBGb3JtYXQgY29kZSB3aXRoIEJsYWNrIGFuZCBGbGFrZTguIFBSIFsjMTIxXShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8xMjEpIGJ5IFtAYnIzbmRvbmxhbmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9icjNuZG9ubGFuZCkuCiogU2ltcGxpZnkgU1FMQWxjaGVteSBCYXNlIGNsYXNzLiBQUiBbIzExN10oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTE3KSBieSBbQGFpcmliYXJuZV0oaHR0cHM6Ly9naXRodWIuY29tL2FpcmliYXJuZSkuCiogVXBkYXRlIENSVUQgdXRpbHMgZm9yIHVzZXJzLCBoYW5kbGluZyBwYXNzd29yZCBoYXNoaW5nLiBQUiBbIzEwNl0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTA2KSBieSBbQG1vY3Nhcl0oaHR0cHM6Ly9naXRodWIuY29tL21vY3NhcikuCiogVXNlIGAuYCBpbnN0ZWFkIG9mIGBzb3VyY2VgIGZvciBpbnRlcm9wZXJhYmlsaXR5LiBQUiBbIzk4XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC85OCkgYnkgW0BndWNoYXJib25dKGh0dHBzOi8vZ2l0aHViLmNvbS9ndWNoYXJib24pLgoqIFVzZSBQeWRhbnRpYydzIGBCYXNlU2V0dGluZ3NgIGZvciBzZXR0aW5ncy9jb25maWdzIGFuZCBlbnYgdmFycy4gUFIgWyM4N10oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvODcpIGJ5IFtAU3RlcGhlbkJyb3duMl0oaHR0cHM6Ly9naXRodWIuY29tL1N0ZXBoZW5Ccm93bjIpLgoqIFJlbW92ZSBgcGFja2FnZS1sb2NrLmpzb25gIHRvIGxldCBldmVyeW9uZSBsb2NrIHRoZWlyIG93biB2ZXJzaW9ucyAoZGVwZW5kaW5nIG9uIE9TLCBldGMpLgoqIFNpbXBsaWZ5IFRyYWVmaWsgc2VydmljZSBsYWJlbHMgUFIgWyMxMzldKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzEzOSkuCiogQWRkIGVtYWlsIHZhbGlkYXRpb24uIFBSIFsjNDBdKGh0dHBzOi8vZ2l0aHViLmNvbS92dW9uZ3RsdDEzL2Z1bGwtc3RhY2stZmFzdGFwaS1teXNxbC9wdWxsLzQwKSBieSBbQGtlZG9kXShodHRwczovL2dpdGh1Yi5jb20va2Vkb2QpLgoqIEZpeCB0eXBvIGluIFJFQURNRS4gUFIgWyM4M10oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvODMpIGJ5IFtAYXNoZWFyc10oaHR0cHM6Ly9naXRodWIuY29tL2FzaGVhcnMpLgoqIEZpeCB0eXBvIGluIFJFQURNRS4gUFIgWyM4MF0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvODApIGJ5IFtAYWJqb2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2Fiam9rZXIpLgoqIEZpeCBmdW5jdGlvbiBuYW1lIGByZWFkX2l0ZW1gIGFuZCByZXNwb25zZSBjb2RlLiBQUiBbIzc0XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC83NCkgYnkgW0BqY2FndWlycmU4OV0oaHR0cHM6Ly9naXRodWIuY29tL2pjYWd1aXJyZTg5KS4KKiBGaXggdHlwbyBpbiBjb21tZW50LiBQUiBbIzcwXShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC83MCkgYnkgW0BkYW5pZWwtYnV0bGVyXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsLWJ1dGxlcikuCiogRml4IEZsb3dlciBEb2NrZXIgY29uZmlndXJhdGlvbi4gUFIgWyMzN10oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMzcpIGJ5IFtAZG1vbnRhZ3VdKGh0dHBzOi8vZ2l0aHViLmNvbS9kbW9udGFndSkuCiogQWRkIG5ldyBDUlVEIHV0aWxzIGJhc2VkIG9uIERCIGFuZCBQeWRhbnRpYyBtb2RlbHMuIEluaXRpYWwgUFIgWyMyM10oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMjMpIGJ5IFtAZWJyZXRvbl0oaHR0cHM6Ly9naXRodWIuY29tL2VicmV0b24pLgoqIEFkZCBub3JtYWwgdXNlciB0ZXN0aW5nIFB5dGVzdCBmaXh0dXJlLiBQUiBbIzIwXShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8yMCkgYnkgW0BlYnJldG9uXShodHRwczovL2dpdGh1Yi5jb20vZWJyZXRvbikuCgojIyMgMC40LjAKCiogRml4IHNlY3VyaXR5IG9uIHJlc2V0dGluZyBhIHBhc3N3b3JkLiBSZWNlaXZlIHRva2VuIGFzIGJvZHksIG5vdCBxdWVyeS4gUFIgWyMzNF0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMzQpLgoKKiBGaXggc2VjdXJpdHkgb24gcmVzZXR0aW5nIGEgcGFzc3dvcmQuIFJlY2VpdmUgaXQgYXMgYm9keSwgbm90IHF1ZXJ5LiBQUiBbIzMzXShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8zMykgYnkgW0BkbW9udGFndV0oaHR0cHM6Ly9naXRodWIuY29tL2Rtb250YWd1KS4KCiogRml4IFNRTEFsY2hlbXkgY2xhc3MgbG9va3VwIG9uIGluaXRpYWxpemF0aW9uLiBQUiBbIzI5XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8yOSkgYnkgW0BlYnJldG9uXShodHRwczovL2dpdGh1Yi5jb20vZWJyZXRvbikuCgoqIEZpeCBTUUxBbGNoZW15IG9wZXJhdGlvbiBlcnJvcnMgb24gZGF0YWJhc2UgcmVzdGFydC4gUFIgWyMzMl0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMzIpIGJ5IFtAZWJyZXRvbl0oaHR0cHM6Ly9naXRodWIuY29tL2VicmV0b24pLgoKKiBGaXggbG9jYXRpb25zIG9mIHNjcmlwdHMgaW4gZ2VuZXJhdGVkIFJFQURNRS4gUFIgWyMxOV0oaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTkpIGJ5IFtAZWJyZXRvbl0oaHR0cHM6Ly9naXRodWIuY29tL2VicmV0b24pLgoKKiBGb3J3YXJkIGFyZ3VtZW50cyBmcm9tIHNjcmlwdCB0byBgcHl0ZXN0YCBpbnNpZGUgY29udGFpbmVyLiBQUiBbIzE3XShodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8xNykgYnkgW0BlYnJldG9uXShodHRwczovL2dpdGh1Yi5jb20vZWJyZXRvbikuCgoqIFVwZGF0ZSBkZXZlbG9wbWVudCBzY3JpcHRzLgoKKiBSZWFkIEFsZW1iaWMgY29uZmlncyBmcm9tIGVudiB2YXJzLiBQUiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC85IiB0YXJnZXQ9Il9ibGFuayI+Izk8L2E+IGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9lYnJldG9uIiB0YXJnZXQ9Il9ibGFuayI+QGVicmV0b248L2E+LgoKKiBDcmVhdGUgREIgSXRlbSBvYmplY3RzIGZyb20gYWxsIFB5ZGFudGljIG1vZGVsJ3MgZmllbGRzLgoKKiBVcGRhdGUgSnVweXRlciBMYWIgaW5zdGFsbGF0aW9uIGFuZCB1dGlsIHNjcmlwdC9lbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQuCgojIyMgMC4zLjAKCiogUFIgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTQiIHRhcmdldD0iX2JsYW5rIj4jMTQ8L2E+OgogICAgKiBVcGRhdGUgQ1JVRCB1dGlscyB0byB1c2UgdHlwZXMgYmV0dGVyLgogICAgKiBTaW1wbGlmeSBQeWRhbnRpYyBtb2RlbCBuYW1lcywgZnJvbSBgVXNlckluQ3JlYXRlYCB0byBgVXNlckNyZWF0ZWAsIGV0Yy4KICAgICogVXBncmFkZSBwYWNrYWdlcy4KICAgICogQWRkIG5ldyBnZW5lcmljICJJdGVtcyIgbW9kZWxzLCBjcnVkIHV0aWxzLCBlbmRwb2ludHMsIGFuZCB0ZXN0cy4gVG8gZmFjaWxpdGF0ZSByZS11c2luZyB0aGVtIHRvIGNyZWF0ZSBuZXcgZnVuY3Rpb25hbGl0eS4gQXMgdGhleSBhcmUgc2ltcGxlIGFuZCBnZW5lcmljIChub3QgbGlrZSBVc2VycyksIGl0J3MgZWFzaWVyIHRvIGNvcHktcGFzdGUgYW5kIGFkYXB0IHRoZW0gdG8gZWFjaCB1c2UgY2FzZS4KICAgICogVXBkYXRlIGVuZHBvaW50cy8qcGF0aCBvcGVyYXRpb25zKiB0byBzaW1wbGlmeSBjb2RlIGFuZCB1c2UgbmV3IHV0aWxpdGllcywgcHJlZml4IGFuZCB0YWdzIGluIGBpbmNsdWRlX3JvdXRlcmAuCiAgICAqIFVwZGF0ZSB0ZXN0aW5nIHV0aWxzLgogICAgKiBVcGRhdGUgbGludGluZyBydWxlcywgcmVsYXggdnVsdHVyZSB0byByZWR1Y2UgZmFsc2UgcG9zaXRpdmVzLgogICAgKiBVcGRhdGUgbWlncmF0aW9ucyB0byBpbmNsdWRlIG5ldyBJdGVtcy4KICAgICogVXBkYXRlIHByb2plY3QgUkVBRE1FLm1kIHdpdGggdGlwcyBhYm91dCBob3cgdG8gc3RhcnQgd2l0aCBiYWNrZW5kLgoKKiBVcGdyYWRlIFB5dGhvbiB0byAzLjcgYXMgQ2VsZXJ5IGlzIG5vdyBjb21wYXRpYmxlIHRvby4gUFIgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Z1b25ndGx0MTMvZnVsbC1zdGFjay1mYXN0YXBpLW15c3FsL3B1bGwvMTAiIHRhcmdldD0iX2JsYW5rIj4jMTA8L2E+IGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9lYnJldG9uIiB0YXJnZXQ9Il9ibGFuayI+QGVicmV0b248L2E+LgoKIyMjIDAuMi4yCgoqIEZpeCBmcm9udGVuZCBoaWphY2tpbmcgL2RvY3MgaW4gZGV2ZWxvcG1lbnQuIFVzaW5nIGxhdGVzdCBodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vbm9kZS1mcm9udGVuZCB3aXRoIGN1c3RvbSBOZ2lueCBjb25maWdzIGluIGZyb250ZW5kLiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC82IiB0YXJnZXQ9Il9ibGFuayI+UFIgIzY8L2E+LgoKIyMjIDAuMi4xCgoqIEZpeCBkb2N1bWVudGF0aW9uIGZvciAqcGF0aCBvcGVyYXRpb24qIHRvIGdldCB1c2VyIGJ5IElELiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC80IiB0YXJnZXQ9Il9ibGFuayI+UFIgIzQ8L2E+IGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9tcGNsYXJrc29uIiB0YXJnZXQ9Il9ibGFuayI+QG1wY2xhcmtzb248L2E+IGluIEZhc3RBUEkuCgoqIFNldCBgL3N0YXJ0LXJlbG9hZC5zaGAgYXMgYSBjb21tYW5kIG92ZXJyaWRlIGZvciBkZXZlbG9wbWVudCBieSBkZWZhdWx0LgoKKiBVcGRhdGUgZ2VuZXJhdGVkIFJFQURNRS4KCiMjIyAwLjIuMAoKKio8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdnVvbmd0bHQxMy9mdWxsLXN0YWNrLWZhc3RhcGktbXlzcWwvcHVsbC8yIiB0YXJnZXQ9Il9ibGFuayI+UFIgIzI8L2E+Kio6CgoqIFNpbXBsaWZ5IGFuZCB1cGRhdGUgYmFja2VuZCBgRG9ja2VyZmlsZWBzLgoqIFJlZmFjdG9yIGFuZCBzaW1wbGlmeSBiYWNrZW5kIGNvZGUsIGltcHJvdmUgbmFtaW5nLCBpbXBvcnRzLCBtb2R1bGVzIGFuZCAibmFtZXNwYWNlcyIuCiogSW1wcm92ZSBhbmQgc2ltcGxpZnkgVnVleCBpbnRlZ3JhdGlvbiB3aXRoIFR5cGVTY3JpcHQgYWNjZXNzb3JzLgoqIFN0YW5kYXJkaXplIGZyb250ZW5kIGNvbXBvbmVudHMgbGF5b3V0LCBidXR0b25zIG9yZGVyLCBldGMuCiogQWRkIGxvY2FsIGRldmVsb3BtZW50IHNjcmlwdHMgKHRvIGRldmVsb3AgdGhpcyBwcm9qZWN0IGdlbmVyYXRvciBpdHNlbGYpLgoqIEFkZCBsb2dzIHRvIHN0YXJ0dXAgbW9kdWxlcyB0byBkZXRlY3QgZXJyb3JzIGVhcmx5LgoqIEltcHJvdmUgRmFzdEFQSSBkZXBlbmRlbmN5IHV0aWxpdGllcywgdG8gc2ltcGxpZnkgYW5kIHJlZHVjZSBjb2RlICh0byByZXF1aXJlIGEgc3VwZXJ1c2VyKS4KCiMjIyAwLjEuMgoKKiBGaXggcGF0aCBvcGVyYXRpb24gdG8gdXBkYXRlIHNlbGYtdXNlciwgc2V0IHBhcmFtZXRlcnMgYXMgYm9keSBwYXlsb2FkLgoKIyMjIDAuMS4xCgpTZXZlcmFsIGJ1ZyBmaXhlcyBzaW5jZSBpbml0aWFsIHB1YmxpY2F0aW9uLCBpbmNsdWRpbmc6CgoqIE9yZGVyIG9mIHBhdGggb3BlcmF0aW9ucyBmb3IgdXNlcnMuCiogRnJvbnRlbmQgc2VuZGluZyBsb2dpbiBkYXRhIGluIHRoZSBjb3JyZWN0IGZvcm1hdC4KKiBBZGQgaHR0cHM6Ly9sb2NhbGhvc3QgdmFyaWFudHMgdG8gQ09SUy4KCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLgo= readmeEtag: '"123573141c2c691d0fea24fd43777f83a5c76a0c"' readmeLastModified: Wed, 03 May 2023 15:26:27 GMT repositoryId: 479628739 description: >- Full stack, modern web application generator. Using FastAPI, MySQL as database, Docker, automatic HTTPS and more. created: '2022-04-09T05:32:37Z' updated: '2024-07-13T15:03:10Z' language: Python archived: false stars: 39 watchers: 3 forks: 14 owner: vuongtlt13 logo: https://avatars.githubusercontent.com/u/14292473?v=4 license: MIT repoEtag: '"8dda2aa8ed1d0d1fdfdfa323a3ed9938912241099ffd237a910061f30ebe2e2f"' repoLastModified: Sat, 13 Jul 2024 15:03:10 GMT foundInMaster: true category: Server Implementations id: 288909aadff60d6d617f878d02cb018c - source: openapi3 tags repository: https://github.com/kstasik/schema-tools v3: true repositoryMetadata: base64Readme: >- IyBTY2hlbWEgVG9vbHMKClshW2J1aWxkXShodHRwczovL2dpdGh1Yi5jb20va3N0YXNpay9zY2hlbWEtdG9vbHMvd29ya2Zsb3dzL2J1aWxkL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9rc3Rhc2lrL3NjaGVtYS10b29scy9hY3Rpb25zKQpbIVt0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2tzdGFzaWsvc2NoZW1hLXRvb2xzL3dvcmtmbG93cy90ZXN0L2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9rc3Rhc2lrL3NjaGVtYS10b29scy9hY3Rpb25zKQoKIyBJbnRyb2R1Y3Rpb24KCkp1c3QgYW5vdGhlciBhcHByb2FjaCB0byBvcGVuYXBpL2pzb25zY2hlbWEgY29kZSBnZW5lcmF0b3IuIEl0J3MgYSBob21lIHByb2plY3Qgd3JpdHRlbiBpbiBgUnVzdGAsIHNpbXBsZSBhbGwtaW4tb25lIGNvbnNvbGUgdG9vbCB3aXRoIGZlYXR1cmVzIGxpa2U6CgotIG9wZW5hcGkvanNvbiBzY2hlbWEgdmFsaWRhdGlvbgotIHNjaGVtYSBwcmVwcm9jZXNzaW5nCiAgICAtIGRlcmVmZXJlbmNlCiAgICAtIG1lcmdlLWFsbG9mCiAgICAtIHBhdGNoIChhcHBseS9nZW5lcmF0ZSBqc29uLXBhdGNoKQogICAgLSBuYW1lCiAgICAtIG1lcmdlLW9wZW5hcGkKLSBbVGVyYV0oaHR0cHM6Ly9naXRodWIuY29tL0tlYXRzL3RlcmEpIChqaW5qYTIpICoqY29kZSBnZW5lcmF0b3IqKiB3aXRoIGN1c3RvbSB0ZW1wbGF0ZXMgc3VwcG9ydAoKSXQgaXMgZGVzaWduZWQgdG8gc3BlZWQgdXAgZGV2ZWxvcG1lbnQgb2YgbWljcm9zZXJ2aWNlcyBoZWF2bHkgdXNpbmcganNvbiBvYmplY3RzIChqc29uIHNjaGVtYXMgb24gYXBpIGxldmVsIGFzIHdlbGwgZXZlbnRzKS4KCk1haW4gZGlmZmVyZW5jZXMgaW4gYXBwcm9hY2ggYmV0d2VlbiBvdGhlciBzb2x1dGlvbnMgbGlrZSBgb3BlbmFwaS1nZW5lcmF0b3JgOgoKLSBtb3JlIHJvYnVzdCB0ZW1wbGF0ZSBsYW5ndWFnZSBsaWtlIGppbmphMgotIGxhbmd1YWdlIHNwZWNpZmljIGxvZ2ljIG1vdmVkIHRvIHRlbXBsYXRlcyBpbmNsdWRpbmcgdHlwZSBtYXBwaW5nLCByZXNlcnZlZCB3b3JkcwotIHdyYXBwaW5nIG9mIG1peGVkIHR5cGVzIHdpdGhvdXQgZGlzY3JpbWluYXRvcgotIG9uZSB0b29sIGZvciBjbGllbnRzLCBzZXJ2ZXJzLCBqc29uLXNjaGVtYSBxdWV1ZSBjb25zdW1lcnMgYW5kIHByb2Nlc3Npbmcgb2Ygb3BlbmFwaQotIHJlbGF0aXZlbHkgc21hbGwgYmluYXJ5IHVzZWQgb24gZXZlcnkgYnVpbGQgb2YgcHJvamVjdAotIGNvZGVnZW4gZXhlY3V0ZWQgcGVyIG1pY3Jvc2VydmljZSBhcHByb2FjaCAobm90IGFzIGEgc2VwYXJhdGUsIGdlbmVyaWMgY2xpZW50IGxpYnJhcnkpCi0ganNvbi1zY2hlbWEgcmVnaXN0cnkgc3VwcG9ydCwgVE9ETzogc2hhcmVkIG1vZGVscyAtIGNyZWF0ZSBvbmUgbW9kZWwgZm9yIHNoYXJlZCBzdHJ1Y3R1cmVzIGluIGRpZmZlcmVudCBjbGllbnRzL3NlcnZlcnMgdG8gYXZvaWQgbWFwcGluZyBzYW1lIHN0cnVjdHVyZXMKCiMgR2VuZXJhbCBydWxlcwoKLSBBbGwgY29tbWFuZHMgc3VwcG9ydCB5YW1sIGFuZCBqc29uIGZpbGVzLgotIFVzZSBoZWxwIHRvIGdldCBsaXN0IG9mIGF2YWlsYWJsZSBhcmd1bWVudHMgYHNjaGVtYS10b29scyBwcm9jZXNzIC0taGVscGAKLSBgLXZgLCBgLXZ2YCwgYC12dnZgLCBgLXZ2dnZgIHZlcmJvc2l0eSBsZXZlbHMKCiMgVmFsaWRhdGUKClRvIHZhbGlkYXRlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbjoKCmBgYApzY2hlbWF0b29scyB2YWxpZGF0ZSBvcGVuYXBpIG9wZW5hcGkueWFtbApgYGAKClRvIHZhbGlkYXRlIGpzb24gc2NoZW1hIGRlZmluaXRpb246CgpgYGAKc2NoZW1hdG9vbHMgdmFsaWRhdGUgb3BlbmFwaSBzY2hlbWEueWFtbApgYGAKCkJvdGggY29tbWFuZHMgcmV0dXJuIG5vbi16ZXJvIGV4aXQgY29kZSBpbiBjYXNlIG9mIGZhaWx1cmUuIEVycm9yIHJlcG9ydGluZyBpcyBub3QgdmVyeSBjbGVhciBidXQgaXQgc2hvd3MgdGhlIHBsYWNlIHdoZXJlIGpzb24gc2NoZW1hIGlzIG5vdCBtZXQuIFRPRE86IHJlc29sdmUgdGhpcyBbaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9TdHJhbmdlcjY2NjcvanNvbnNjaGVtYS1ycy9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBb3BlbitlcnJvcikKCiMjIFByb2Nlc3MKCkNvbW1vbiBDTEkgYXJndW1lbnRzOgoKYGBgCjxmaWxlPiAgICAgICAgICAgICAgICAgICAgICBQYXRoIHRvIGpzb24veWFtbCBmaWxlIHdpdGggb3BlbmFwaSBzcGVjaWZpY2F0aW9uCi1vLCAtLW91dHB1dCA8b3V0cHV0PiAgICAgICBSZXR1cm5lZCBmb3JtYXQgW2RlZmF1bHQ6IGpzb25dIFtwb3NzaWJsZSB2YWx1ZXM6IGpzb24sICB5YW1sXQotLXRvLWZpbGUgPHRvLWZpbGU+ICAgICAgICAgUGF0aCBvZiBvdXRwdXQgZmlsZSwgZGVmYXVsdCBvdXRwdXQgdG8gc3Rkb3V0CmBgYAoKIyMjIE5hbWluZwoKSWYgeW91ciBvcGVuYXBpIHNwZWNpZmljYXRpb24gZm9sbG93cyBgUkVTVEZVTGAgb3BlbmFwaSBydWxlcyB5b3UgY2FuIGNyZWF0ZSBtaXNzaW5nIGpzb24tc2NoZW1hIHRpdGxlcyBvciB0cnkgdG8gcmVuYW1lIG9wZXJhdGlvbklkIG9mIGV4aXN0aW5nIGVuZHBvaW50OgoKYGBgCnNjaGVtYXRvb2xzIHByb2Nlc3MgbmFtZSBzY2hlbWEueWFtbApgYGAKCkFkZGl0aW9uYWwgb3B0aW9ucyBhcmU6CmBgYAotLW92ZXJ3cml0ZSAgICAgICAgICAgICAgICAgIFNob3VsZCBvdmVyd3JpdGUgZXhpc3RpbmcgdGl0bGVzCi0tb3ZlcndyaXRlLWFtYmlndW91cyAgICAgICAgIFNob3VsZCBvdmVyd3JpdGUgYW1iaWd1b3VzIHRpdGxlcwotLXJlc291cmNlLW1ldGhvZC12ZXJzaW9uICAgIFJldmVydHMgb3JkZXIgb2Ygb3BlcmF0aW9uSWQgZ2VuZXJhdG9yIHRvIHJlc291cmNlK21ldGhvZCt2ZXJzaW9uCmBgYAoKIyMjIERlcmVmZXJlbmNpbmcKClRvIHJlcGxhY2UgYWxsIG9jY3VycmVuY2VzIG9mIGAkcmVmYCBpbiBvcGVuYXBpIHlvdSBtYXkgdHlwZToKCmBgYApzY2hlbWF0b29scyBwcm9jZXNzIGRlcmVmZXJlbmNlIHNjaGVtYS55YW1sCmBgYAoKWW91IHNob3VsZCBoYXJkbHkgZXZlciBwZXJmb3JtIGZ1bGwgZGVyZWZlcmVuY2Ugb2Ygb3BlbmFwaS4gSXQgcGFydGlhbGx5IGRlcmVmZXJlbmNlIHNjaGVtYSB5b3UgbWF5IHVzZSBmb2xsb3dpbmcgb3B0aW9uczoKCi0gKipza2lwLXJlZmVyZW5jZXMqKiAtIGlzIHVzZWZ1bCBpZiB5b3UgYXJlIHVzaW5nIHJlZ2lzdHJ5IG9mIGNvbW1vbiBzY2hlbWFzLiBJbiBtYW55IGNhc2VzIHlvdSBkb24ndCB3YW50IHRvIGRlcmVmZXJlbmNlIHN1Y2ggYCRyZWZgcwotICoqc2tpcC1yb290LWludGVybmFsLXJlZmVyZW5jZXMqKiAtIGlzIHVzZWZ1bCB0byBza2lwIGAvY29tcG9uZW50cy4qYCBvcGVuYXBpIHNjaGVtYSByZWZlcmVuY2VzIHdoaWNoIGFyZSB2ZXJ5IG9mdGVuIHN0b3JlZCBpbiByb290IG9wZW5hcGkgZmlsZS4KLSAqKmNyZWF0ZS1pbnRlcm5hbC1yZWZlcmVuY2VzKiogLSBzYXZlcyBzcGFjZSBhbmQgZGVyZWZlcmVuY2VzIGVhY2ggcG9pbnRlciBvbmx5IG9uY2UsIGFsbCBuZXh0IG9jY3VycmVuY2VzIGFyZSByZXBsYWNlZCBieSBwb2ludGVyIHRvIGZpcnN0IHBvaW50ZXIKCmBgYAogLS1jcmVhdGUtaW50ZXJuYWwtcmVmZXJlbmNlcyAgICAgICAgICAgICBDcmVhdGVzIGludGVybmFsIHJlZmVyZW5jZXMgaWYgcmVmcyB3aGVyZSBwb2ludGluZyB0byBzYW1lIHBsYWNlCi0tc2tpcC1yb290LWludGVybmFsLXJlZmVyZW5jZXMgICAgICAgICAgIExlYXZlcyBpbnRlcm5hbCByZWZlcmVuY2VzIGludGFjdCBpbiByb290IHNjaGVtYSBmaWxlCi0tc2tpcC1yZWZlcmVuY2VzIDxza2lwLXJlZmVyZW5jZXM+Li4uICAgIExpc3Qgb2YgaG9zdG5hbWVzIHRvIHNraXAgZGVyZWZlcmVuY2UKYGBgCgojIyMgTWVyZ2UgYWxsIG9mCgpUbyBtZXJnZSBgYWxsT2ZgcyBpbnRvIG9iamVjdHMgdHlwZToKCmBgYApzY2hlbWF0b29scyBwcm9jZXNzIG1lcmdlLWFsbC1vZiBvcGVuYXBpLnlhbWwKYGBgCgpJdCdzIHVzZWZ1bCB0byBwZXJmb3JtIHN1Y2ggdGhpbmcgYmVmb3JlIGNvZGUgZ2VuZXJhdGlvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoYXQganNvbiBzY2hlbWEgaXMgbW9yZSByZXByZXNlbnRhdGlvbiBvZiB2YWxpZGF0aW9uIG5vdCBkYXRhIHN0cnVjdHVyZSBpdHNlbGYuIEluIG1hbnkgbGFuZ3VhZ2VzIHVuaW9ucyBhcmUgYSBjb21wbGljYXRlZCB0aGluZyBidXQgaWYgeW91IGFyZSB1c2luZyBhbGxPZnMgdG8gZXh0cmFjdCBjb21tb24gcGFydHMgb2Ygc3RydWN0cyBpdCdzIGEgZnVuY3Rpb25hbGl0eSB3aGljaCBtYXkgYmUgdmVyeSBoZWxwZnVsIGZvciB5b3UuCgojIyMgUGF0Y2gKCklmIG9wZW5hcGkgeW91IHJlY2VpdmVkIHNlZW1zIGJyb2tlbiB5b3UgbWF5IGZpeCBpdCBhbmQgY3JlYXRlIFtqc29uLXBhdGNoXShodHRwOi8vanNvbnBhdGNoLmNvbS8pIGZpbGU6CgpgYGAKc2NoZW1hdG9vbHMgcHJvY2VzcyBwYXRjaCA8ZmlsZT4gY3JlYXRlIDxvcmlnaW5hbC1maWxlPiAKYGBgCgpUaGVuIHlvdSBjYW4gYXBwbHkgc3VjaCBwYXRjaCB0byBvcmlnaW5hbCBvcGVuYXBpIGZpbGUgZHVyaW5nIHByb2Nlc3Npbmc6CgpgYGAKc2NoZW1hdG9vbHMgcHJvY2VzcyBwYXRjaCA8ZmlsZT4gYXBwbHkgPHBhdGNoLWZpbGU+IApgYGAKCiMjIyBNZXJnZSBvcGVuYXBpIGFuZCBidW1wCgpJZiB5b3UgbWljcm9zZXJ2aWNlIGlzIHNwbGl0IHRvIG1vcmUgdGhhbiBvbmUgc2VydmljZSAoYW5kIGlzIGV4cG9zZWQgdW5kZXIgc2FtZSBpbmdyZXNzKSB5b3UgbWF5IGZpbmQgaXQgdXNlZnVsIHRvIGNyZWF0ZSBvbmUgb3BlbmFwaSBkZWZpbml0aW9uOgoKYGBgCnNjaGVtYXRvb2xzIHByb2Nlc3MgbWVyZ2Utb3BlbmFwaSA8ZmlsZT4gLS13aXRoIDx3aXRoPgpgYGAKClNvbWUgdXNlZnVsIG9wdGlvbnMgd2hpY2ggbWF5IGJlIG5lZWRlZCBmb3IgdmVyc2lvbmluZyBtZXJnZWQgb3BlbmFwaToKCmBgYAotLWFkZC12ZXJzaW9uIDxhZGQtdmVyc2lvbj4gICAgU2hvdWxkIGFkZCBpbmZvLngtdmVyc2lvbi0gYXR0cmlidXRlIHRvIG9wZW5hcGkgc3BlY2lmaWNhdGlvbgotLXJldGFnIDxyZXRhZz4gICAgICAgICAgICAgICAgU2hvdWxkIGNoYW5nZSB0YWdzIG9mIGFsbCBlbmRwb2ludHMgb2YgbWVyZ2VkIG9wZW5hcGkKYGBgCgpUbyBidW1wIG1lcmdlZCBvcGVuYXBpIHZlcnNpb24geW91IG1heSB1c2UgdGhpcyBjb21tYW5kOgoKYGBgCnNjaGVtYXRvb2xzIHByb2Nlc3MgYnVtcC1vcGVuYXBpIDxmaWxlPiAtLW9yaWdpbmFsIDxwcmV2aW91cy12ZXJzaW9uLWZpbGU+CmBgYAoKSXQgc2hvdWxkIGNvcnJlY3RseSBjaGFuZ2UgdmVyc2lvbiBvZiBvcGVuYXBpIGFjY29yZGluZyB0byBhbGwgc3ViLW9wZW5hcGkgc2VtdmVyc2lvbnMuCgojIyBDb2RlZ2VuIG9wZW5hcGkKCkNvZGUgZ2VuZXJhdGlvbiBpdHNlbGYgaXMgcGVyZm9ybWVkIGJ5IHByb2Nlc3NpbmcgdGVtcGxhdGVzIGRpcmVjdG9yeS4gQmVmb3JlIGl0IGlzIGRvbmUgYWxsIGRhdGEgZnJvbSBvcGVuYXBpL2pzb24tc2NoZW1hIGZpbGVzIGhhcyB0byBiZSBleHRyYWN0ZWQgYW5kIHByb2Nlc3NlZC4gVGhlcmUgYXJlIHR3byB3YXlzIG9mIHBlcmZvcm1pbmcgY29kZWdlbjoKCi0gYHNjaGVtYXRvb2xzIGNvZGVnZW4ganNvbi1zY2hlbWEganNvbi1zY2hlbWEuanNvbiBbLi4uXWAgaXMgdXNlZCB0byBwcm9jZXNzIGpzb24gc2NoZW1hIGZpbGUuIEl0IG5lZWRzIGFkZGl0aW9uYWwgYXR0cmlidXRlIGAtLWJhc2UtbmFtZSA8YmFzZS1uYW1lPmAgaWYgdGl0bGUgb2YganNvbiBzY2hlbWEgaXMgbWlzc2luZy4gT25lIGpzb24tc2NoZW1hIGRvZXNudCBtZWFuIHRoYXQgcmVzdWx0IG9mIHN1Y2ggY29kZWdlbmVyYXRpb24gcnVuIHdpbGwgYmUgZXhhY3RseSBvbmUgc3RydWN0L29iamVjdC9jbGFzcyAtIGluIGNhc2Ugb2YgY29tcGxleCBqc29uIHNjaGVtYXMgaXQgd2lsbCBiZSBtYW55IG1vZGVscy4KLSBgc2NoZW1hdG9vbHMgY29kZWdlbiBvcGVuYXBpIG9wZW5hcGkuanNvbiBbLi4uXWAgaXMgdXNlZCB0byBwcm9jZXNzIG9wZW5hcGkgc3BlY2lmaWNhdGlvbiAtIGVuZHBvaW50cyBhbmQgbW9kZWxzIGV4dHJhY3Rpb24uCgpTaW1wbGUgdXNhZ2U6CgpgYGAKc2NoZW1hLXRvb2xzIGNvZGVnZW4gb3BlbmFwaSBvcGVuYXBpLmpzb24gLS10ZW1wbGF0ZSB0ZW1wbGF0ZXMvICAtLXRhcmdldC1kaXIgcGtnL2NsaWVudC8KYGBgCgotIGBvcGVuYXBpLmpzb25gIC0gb3BlbmFwaSBzcGVjaWZpY2F0aW9uIGZpbGUKLSBgLS10ZW1wbGF0ZSB0ZW1wbGF0ZXMvYCAtIGRpcmVjdG9yeSB3aXRoIGppbmphMiBmaWxlcwotIGAtLXRhcmdldC1kaXIgcGtnL2NsaWVudC9gIC0gd2hlcmUgY29kZSBzaG91bGQgYmUgZ2VuZXJhdGVkCgojIyMgQ29kZWdlbiBvcHRpb25zCgotIGAtLW5lc3RlZC1hcnJheXMtYXMtbW9kZWxzYCAtIHNvbWUgbGFuZ3VhZ2VzIGFsbG93IHRvIGNyZWF0ZSBgVmVjPEhhc2hNYXA8VmVjPEhhc2hNYXA+Pj4+YCAvIGBbXVtdW11pbnRgIGlubGluZSB0eXBlcywgc29tZSBtYXkgbmVlZCB0byBjcmVhdGUgd3JhcHBpbmcgdHlwZXMgZm9yIHN1Y2ggY2FzZXMKLSBgLS1vcHRpb25hbC1hbmQtbnVsbGFibGUtYXMtbW9kZWxzYCAtIG9wZW5hcGkgYWxsb3dzIHRvIGNyZWF0ZSB0d28gbGV2ZWxzIG9mICJudWxsYWJpbGl0eSIsIHNvbWUgbGFuZ3VhZ2VzIGRvZXNudCBkaXN0aW5ndWlzaCBiZXR3ZWVuIG51bGwgYW5kIHVuZGVmaW5lZC4gVGhpcyBvcHRpb24gd3JhcCBhbGwgb2NjdXJyZW5jZXMgb2YgbnVsbGFibGUgYW5kIG9wdGlvbmFsIGZpZWxkcyBpbiBzZXBhcmF0ZSB0eXBlcwotIGAtLXdyYXBwZXJzYCAtIG9wdGlvbiB0byB3cmFwIG1peGVkIHR5cGVzIChvbmVPZikgdG8gY3VzdG9tIG9iamVjdHMgd2l0aCBjdXN0b20gZGVzZXJpYWxpemF0aW9uIGxvZ2ljCi0gYC1vIDxvcHRpb25zPmAgLSBvcHRpb24gdG8gcGFzcyBvcHRpb25zIChzdHJpbmcgb3IganNvbikgdG8gYWxsIHRlbXBsYXRlcyBmaWxlcyBleC4gYC1vICduYW1lPW9yZGVyc0NsaWVudCcgLW8gJ3VzZWRFbmRwb2ludHM9WyIvb3JkZXJzIiwgIi9vcmRlcnMve2lkfS9pdGVtcyJdJ2AKLSBgLS1mb3JtYXRgIC0gZXhlY3V0ZXMgbGFuZ3VhZ2UgZm9ybWF0dGVyIGFmdGVyIGNvZGUgZ2VuZXJhdGlvbiBleC4gYC0tZm9ybWF0ICJnb2ZtdCAtdyJgCgojIyMgQ29kZWdlbiB0ZW1wbGF0ZXMKCkNvZGVnZW4gdGVtcGxhdGVzIGRpcmVjdG9yeSBpcyB0YXJnZXRlZCB1c2luZyBgLS10ZW1wbGF0ZSB0ZW1wbGF0ZXMvYCBvcHRpb24uIEFsbCBzaW1wbGUgZmlsZXMgZnJvbSB0aGlzIGRpcmVjdG9yeSBhcmUgY29waWVkIHRvIGAtLXRhcmdldC1kaXJgIGJlc2lkZSBgLmoyYCB0ZW1wbGF0ZXMuIFRoZSBtb3N0IGltcG9ydGFudCBvZiBlYWNoIGAuajJgIGlzIGl0J3MgaGVhZGVyIChmaXJzdCBsaW5lIG9mIGZpbGUpLgoKRXhhbXBsZSBvZiBtb2RlbHMuajI6CgpgYGAKeyMgdHlwZT1tb2RlbHMsZmlsZW5hbWU9bW9kZWxzLmdvICN9CgovKiBvcHRpb25zOiB7eyBvcHRpb25zIHwganNvbl9lbmNvZGUocHJldHR5PXRydWUpIH19ICovCi8qIG1vZGVsczoge3sgbW9kZWxzIHwganNvbl9lbmNvZGUocHJldHR5PXRydWUpIH19ICovCmBgYAoKRXhhbXBsZSBvZiBlbmRwb2ludHMuajI6CgpgYGAKeyMgdHlwZT1lbmRwb2ludHMsZmlsZW5hbWU9ZW5kcG9pbnRzLmdvICN9CgovKiBvcHRpb25zOiB7eyBvcHRpb25zIHwganNvbl9lbmNvZGUocHJldHR5PXRydWUpIH19ICovCi8qIG1vZGVsczoge3sgZW5kcG9pbnRzIHwganNvbl9lbmNvZGUocHJldHR5PXRydWUpIH19ICovCmBgYAoKKkhlYWRlciogZGVjaWRlcyBob3cgdG8gdHJlYXQgdGVtcGxhdGUgZmlsZSwgaG93IHRvIGFuZCB3aGVuIGdlbmVyYXRlIGZpbGVzLiBIZWFkZXIgb3B0aW9uczoKCi0gYHR5cGU9P2AgLSBwb3NzaWJsZSB2YWx1ZXM6IGBlbmRwb2ludHNgLCBgbW9kZWxzYAotIGBmaWxlbmFtZT0/YCAtIHRhcmdldCBmaWxlcGF0aCB0byBjcmVhdGUuIE1heSBiZSBtaXhlZCB3aXRoIG9wdGlvbnMsIGV4LiBgZmlsZW5hbWU9Y2xpZW50cy8lb3B0aW9ucy5uYW1lJS9lbmRwb2ludHMuZ29gCi0gYGlmPWZvbzpiYXJgIC0gY29uZGl0aW9uIHdoZW4gdG8gdXNlIHRlbXBsYXRlIGZpbGUuIFNob3VsZCBiZSBtaXhlZCB3aXRoIG9wdGlvbnMgZXguIGBpZj0lb3B0aW9ucy50eXBlJTpzZXJ2ZXJgCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiBob3cgdG8gd3JpdGUgdGVtcGxhdGUgZmlsZXMgcGxlYXNlIHJlZmVyIHRvIFtUZXJhIGRvY3NdKGh0dHBzOi8vdGVyYS5uZXRsaWZ5LmFwcC9kb2NzLykuIFRvIGdldCBsaXN0IG9mIGFkZGl0aW9uYWwgZmlsdGVycyB3ZSBjcmVhdGVkIHBsZWFzZSB2aXNpdCBbZmlsdGVycy5yc10oaHR0cHM6Ly9naXRodWIuY29tL2tzdGFzaWsvc2NoZW1hLXRvb2xzL2Jsb2IvbWFzdGVyL3NyYy9jb2RlZ2VuL2ZpbHRlcnMucnMpLgoKIyMjIENvZGVnZW4gdGVtcGxhdGUgaW5oZXJpdGFuY2UKCkNvZGVnZW4gYWxsb3dzIHRvIGRlZmluZWQgbXVsdGlwbGUgYC0tdGVtcGxhdGVgIG9wdGlvbnMuCgpgYGAKc2NoZW1hdG9vbHMgY29kZWdlbiBvcGVuYXBpLmpzb24gLS10ZW1wbGF0ZSBkaXIxLyAtLXRlbXBsYXRlMiBkaXIyLyAtLXRhcmdldC1kaXIgb3V0cHV0LwpgYGAKCkZpbGVzIGZyb20gYWxsIGRpcmVjdG9yaWVzIGFyZSBsb2FkZWQgb25lIGJ5IG9uZSBhbmQgaW4gY2FzZSBvZiBjb25mbGljdHMgdGhleSBhcmUgb3ZlcndyaXR0ZW4uIFRoZXJlIGlzIGFsc28gb3B0aW9uIHRvIHBvaW50IHRvIHJlZ2lzdHJ5IHdoaWNoIGN1cnJlbnRseSBtYXkgYmUgb25seSBhICoqZ2l0IHJlcG9zaXRvcnkqKjoKCmBgYApzY2hlbWF0b29scyBjb2RlZ2VuIG9wZW5hcGkuanNvbiAtLXRlbXBsYXRlIFJFR0lTVFJZOjpkaXIxLyAtLXRlbXBsYXRlMiBkaXIyLyAtLXRhcmdldC1kaXIgb3V0cHV0LwpgYGAKCiMjIyBDb2RlZ2VuIHJlYWR5IHRvIHVzZSB0ZW1wbGF0ZXMKClRPRE86IHB1c2ggY29kZWdlbiB0ZW1wbGF0ZXMgdG8gdGhlIHNlcGFyYXRlIHJlcG8gYW5kIHdyaXRlIHRoZXJlIGFuIGV4YW1wbGUKCiMjIENoYWluCgpUaGlzIGlzIHRoZSB3aG9sZSBwb2ludCBvZiB0aGlzIHRvb2wuIEl0IHdyYXBzIGFsbCBleGlzdGluZyBmdW5jdGlvbmFsaXRpZXMgdG9nZXRoZXIgYW5kIGFkZHMgZ2xvYmFsIGFwcGxpY2F0aW9uIGNvbnRleHQgdG8gb3BlbmFwaSBwcm9jZXNzaW5nLgoKYGBgCnNjaGVtYXRvb2xzIGNoYWluIC12dnZ2IFwKICAgLWMgJ3Byb2Nlc3MgbWVyZ2UtYWxsLW9mIC0tbGVhdmUtaW52YWxpZC1wcm9wZXJ0aWVzIGh0dHBzOi8vZG9tYWluLmNvbS9vcGVuYXBpL29yZGVycy9hcGkueWFtbCcgXAogICAtYyAncHJvY2VzcyBuYW1lIC0gLS1yZXNvdXJjZS1tZXRob2QtdmVyc2lvbiAtLW92ZXJ3cml0ZScgXAogICAtYyAndmFsaWRhdGUgb3BlbmFwaSAtIC0tY29udGludWUtb24tZXJyb3InIFwKICAgLWMgJ2NvZGVnZW4gb3BlbmFwaSAtIFwKICAgICAgICAtLXRlbXBsYXRlIGNvZGVnZW4vY2xpZW50LyBcCiAgICAgICAgLS1mb3JtYXQgImdvZm10IC13IiBcCiAgICAgICAgLS10YXJnZXQtZGlyIHBrZy9jbGllbnQvIFwKICAgICAgICAtbyBuYW1lc3BhY2U9b3JkZXJzIFwKICAgICAgICAtbyBjbGllbnROYW1lPU9yZGVyc0NsaWVudCcKYGBgCgpBbGwgY29tbWFuZHMgdGFrZSBzYW1lIGFyZ3VtZW50cyBhcyB0aGV5IHdlcmUgZXhlY3V0ZWQgc2VwYXJhdGVseS4gVGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBmaXJzdCBleGVjdXRpb24gaGFzIHRvIHRha2UgcmVhbCBzY2hlbWEgZmlsZSBhcyBgLWZgIGFyZ3VtZW50LiBUaGUgbmV4dCBleGVjdXRpb25zIHNob3VsZCB0YWtlIGAtYCB0byB1c2UgcHJldmlvdXNseSBnZW5lcmF0ZWQgc2NoZW1hIGZpbGUuCgpgYGAKc2NoZW1hdG9vbHMgY2hhaW4gLXZ2dnYgXAogICAtYyAncHJvY2VzcyBtZXJnZS1hbGwtb2YgLS1sZWF2ZS1pbnZhbGlkLXByb3BlcnRpZXMgc3BlY2lmaWNhdGlvbnMvYXBpLnlhbWwnIFwKICAgLWMgJ3Byb2Nlc3MgbmFtZSAtIC0tcmVzb3VyY2UtbWV0aG9kLXZlcnNpb24gLS1vdmVyd3JpdGUnIFwKICAgLWMgJ3ZhbGlkYXRlIG9wZW5hcGkgLSAnIAogICAtYyAnY29kZWdlbiBvcGVuYXBpIC0gXAogICAgICAgIC0tdGVtcGxhdGUgY29kZWdlbi9zZXJ2ZXIvIFwKICAgICAgICAtLWZvcm1hdCAiZ29mbXQgLXciIFwKICAgICAgICAtLXRhcmdldC1kaXIgaW50ZXJuYWwvaHR0cC8gXAogICAgICAgIC1vIG5hbWVzcGFjZT1teXNlcnZpY2UnCmBgYAoKVGhlcmUgaXMgYW4gb3B0aW9uIHRvIGR1bXAgcHJvY2Vzc2VkIHNjaGVtYSB0byBhIGZpbGUgZHVyaW5nIGNoYWluaW5nIHVzaW5nIGBvdXRwdXRgIGNvbW1hbmQ6CgpgYGAKc2NoZW1hdG9vbHMgY2hhaW4gLXZ2dnYgXAogICAtYyAncHJvY2VzcyBtZXJnZS1hbGwtb2YgLS1sZWF2ZS1pbnZhbGlkLXByb3BlcnRpZXMgc3BlY2lmaWNhdGlvbnMvYXBpLnlhbWwnIFwKICAgLWMgJ3Byb2Nlc3MgbmFtZSAtIC0tcmVzb3VyY2UtbWV0aG9kLXZlcnNpb24gLS1vdmVyd3JpdGUnIFwKICAgLWMgJ3ZhbGlkYXRlIG9wZW5hcGkgLSAnIFwKICAgLWMgJ291dHB1dCAtLXRvLWZpbGU9dGVzdC5qc29uIC1vIGpzb24nIFwKICAgLWMgJ2NvZGVnZW4gb3BlbmFwaSAtIFwKICAgICAgICAtLXRlbXBsYXRlIGNvZGVnZW4vc2VydmVyLyBcCiAgICAgICAgLS1mb3JtYXQgImdvZm10IC13IiBcCiAgICAgICAgLS10YXJnZXQtZGlyIGludGVybmFsL2h0dHAvIFwKICAgICAgICAtbyBuYW1lc3BhY2U9bXlzZXJ2aWNlJwpgYGAKCiMjIyBSZWdpc3RyeQoKVGhlcmUgaXMgYW4gb3B0aW9uIHRvIHRyZWF0IGEgc2VwYXJhdGUgZ2l0IHJlcG9zaXRvcnkgYXMgc291cmNlIG9mIHRlbXBsYXRlczoKCmBgYApzY2hlbWF0b29scyBjaGFpbiAtdnZ2diBcCiAgIC1jICdyZWdpc3RyeSBhZGQgY29tbW9uIGdpdDovL2dpdGh1Yi5jb20va3N0YXNpay9zY2hlbWEtdG9vbHMgLS10YWcgdjAuMC4xJyBcCiAgIC1jICdwcm9jZXNzIG1lcmdlLWFsbC1vZiAtLWxlYXZlLWludmFsaWQtcHJvcGVydGllcyBjbGllbnRzL2NsaWVudDEueWFtbCcgXAogICAtYyAncHJvY2VzcyBuYW1lIC0gLS1yZXNvdXJjZS1tZXRob2QtdmVyc2lvbiAtLW92ZXJ3cml0ZScgXAogICAtYyAndmFsaWRhdGUgb3BlbmFwaSAtIC0tY29udGludWUtb24tZXJyb3InIFwKICAgLWMgJ2NvZGVnZW4gb3BlbmFwaSAtIC0tdGVtcGxhdGUgY29tbW9uOjpyZXNvdXJjZXMvb3BlbmFwaS8gLS10YXJnZXQtZGlyIHBrZy9jbGllbnQxLyAtbyBuYW1lc3BhY2U9Y2xpZW50MSAtbyBjbGllbnROYW1lPUNsaWVudDEnCmBgYAoKVG8gdGFyZ2V0IHN1Y2ggcmVnaXN0cnkgeW91IHNpbXBseSB1c2U6IGAtLXRlbXBsYXRlIFJFR0lTVFJZX05BTUU6OnBhdGgvYAoKIyMgRXhhbXBsZSBvZiB1c2FnZQoKVGhpcyBleGFtcGxlIHNob3dzIG9wZW5hcGkgaHR0cCBzZXJ2ZXIgd2l0aCB0d28gZXh0ZXJuYWwgb3BlbmFwaSBjbGllbnQgZGVwZW5kZW5jaWVzOgoKYGBgCnNjaGVtYXRvb2xzIGNoYWluIC12diBcCiAgIyAwLiBSZWdpc3RlciBleHRlcm5hbCByZXBvc2l0b3J5IHdpdGggdGVtcGxhdGVzIGFuZCBmaXggaXQgdG8gdGFnCiAgLWMgJ3JlZ2lzdHJ5IGFkZCBkZWZhdWx0IGh0dHBzOi8vY29kZWdlbi10ZW1wbGF0ZXMvdGVtcGxhdGVzLmdpdCAtLXRhZyB2MC41LjAnIFwKICAjIDEuIExvYWQgbG9jYWwgb3BlbmFwaSBzcGVjaWZpY2F0aW9uIGZyb20gZmlsZSBhbmQgZGVyZWZlcmVuY2UKICAtYyAncHJvY2VzcyBkZXJlZmVyZW5jZSBzcGVjL2FwaS55YW1sIC0tc2tpcC1yb290LWludGVybmFsLXJlZmVyZW5jZXMgLS1jcmVhdGUtaW50ZXJuYWwtcmVmZXJlbmNlcycgXAogICMgMS4gQ29udmVydCBhbGxPZiB0byBzdHJ1Y3RzCiAgLWMgJ3Byb2Nlc3MgbWVyZ2UtYWxsLW9mIC0gLS1sZWF2ZS1pbnZhbGlkLXByb3BlcnRpZXMnIFwKICAjIDEuIE92ZXJ3cml0ZSB0aXRsZXMgb2Ygc2NoZW1hcyBhbmQgb3BlcmF0aW9uSWRzIG9mIGVuZHBvaW50cyBpbiBvcGVuYXBpCiAgLWMgJ3Byb2Nlc3MgbmFtZSAtIC0tb3ZlcndyaXRlIC0tcmVzb3VyY2UtbWV0aG9kLXZlcnNpb24nIFwKICAjIDEuIFBlcmZvcm0gdmFsaWRhdGlvbiBvZiBvdXIgb3BlbmFwaSBzcGVjaWZpY2F0aW9uIC0gaW50ZXJydXB0IGJ1aWxkIG9uIGVycm9yCiAgLWMgJ3ZhbGlkYXRlIG9wZW5hcGkgLSAnIFwKICAjIDEuIENyZWF0ZSBtb2RlbHMgYW5kIHJvdXRlcnMKICAtYyAnY29kZWdlbiBvcGVuYXBpIC0gLS10ZW1wbGF0ZSBkZWZhdWx0OjpydXN0LWFjdGl4LXNlcnZlci8gLS1mb3JtYXQgInJ1c3RmbXQgLS1lZGl0aW9uIDIwMTgiIC0tdGFyZ2V0LWRpciBzcmMvYXBwLyAtbyBuYW1lPVNoaXBwaW5nQXBwJyAgXAogIFwKICAjIDIuIExvYWQgcmVtb3RlIG9wZW5hcGkgZGVmaW5pdGlvbiBvZiBleHRlcm5hbCBzZXJ2aWNlCiAgLWMgJ3Byb2Nlc3MgZGVyZWZlcmVuY2UgaHR0cHM6Ly9zY2hlbWFzLmNvbS9vcGVuYXBpL29yZGVycy92MC4xLjAuanNvbiAtLXNraXAtcm9vdC1pbnRlcm5hbC1yZWZlcmVuY2VzJyBcCiAgIyAyLiBDb252ZXJ0IGFsbE9mIHRvIHN0cnVjdHMKICAtYyAncHJvY2VzcyBtZXJnZS1hbGwtb2YgLSAtLWxlYXZlLWludmFsaWQtcHJvcGVydGllcycgXAogICMgMi4gT3ZlcndyaXRlIHRpdGxlcyBvZiBzY2hlbWFzIGFuZCBvcGVyYXRpb25JZHMgb2YgZW5kcG9pbnRzIGluIG9wZW5hcGkgYmVjYXVzZSBpdCBmb2xsb3cgcmVzdGZ1bCBzdGFuZGFyZHMKICAtYyAncHJvY2VzcyBuYW1lIC0gLS1vdmVyd3JpdGUgLS1yZXNvdXJjZS1tZXRob2QtdmVyc2lvbicgXAogICMgMi4gUGF0Y2ggb3BlbmFwaSBzcGVjaWZpY2F0aW9uIGJlY2F1c2UgaXQgaGFzIGFuIGVycm9yIGFuZCB3ZSBkb24ndCB3YW50IHRvIHdhaXQgZm9yIGEgZml4IHRvIGJlIHB1Ymxpc2hlZCBieSBvdGhlciBwcm9qZWN0CiAgLWMgJ3BhdGNoIC0gYXBwbHkgc3BlY3MvZml4ZXMvb3JkZXJzLnlhbWwnIFwKICAjIDIuIFZhbGlkYXRlIG9wZW5hcGkgZGVmaW5pdGlvbiBidXQgY29udGludWUgb24gZmFpbHVyZSBiZWNhdXNlIGl0J3MgYW4gZXh0ZXJuYWwgY2xpZW50IG5vdCBvd25lZCBieSBwcm9qZWN0CiAgLWMgJ3ZhbGlkYXRlIG9wZW5hcGkgLSAtLWNvbnRpbnVlLW9uLWVycm9yJyBcCiAgIyAyLiBDcmVhdGUgY2xpZW50CiAgLWMgImNvZGVnZW4gb3BlbmFwaSAtIC0tb3B0aW9uYWwtYW5kLW51bGxhYmxlLWFzLW1vZGVscyAtLXRlbXBsYXRlIGRlZmF1bHQ6OnJ1c3QtcmVxd2VzdC1odHRwLyAtLWZvcm1hdCAncnVzdGZtdCAtLWVkaXRpb24gMjAxOCcgXAogICAgLW8gJ3VzZWRFbmRwb2ludHM9fltcIm9yZGVyc0xpc3RWM1wiLFwib3JkZXJzQ3JlYXRlVjNcIl0nIFwKICAgIC0tdGFyZ2V0LWRpciBzcmMvY2xpZW50cy8gLW8gbmFtZT1PcmRlcnNDbGllbnQiIFwKICBcCiAgIyAzLiBMb2FkIHJlbW90ZSBvcGVuYXBpIGRlZmluaXRpb24gb2YgZXh0ZXJuYWwgc2VydmljZQogIC1jICdwcm9jZXNzIGRlcmVmZXJlbmNlIGh0dHBzOi8vc2NoZW1hcy5jb20vb3BlbmFwaS91c2Vycy92MC4xLjAuanNvbiAtLXNraXAtcm9vdC1pbnRlcm5hbC1yZWZlcmVuY2VzJyBcCiAgIyAzLiBDb252ZXJ0IGFsbE9mIHRvIHN0cnVjdHMKICAtYyAncHJvY2VzcyBtZXJnZS1hbGwtb2YgLSAtLWxlYXZlLWludmFsaWQtcHJvcGVydGllcycgXAogICMgMy4gT3ZlcndyaXRlIHRpdGxlcyBvZiBzY2hlbWFzIGFuZCBvcGVyYXRpb25JZHMgb2YgZW5kcG9pbnRzIGluIG9wZW5hcGkgYmVjYXVzZSBpdCBmb2xsb3cgcmVzdGZ1bCBzdGFuZGFyZHMKICAtYyAncHJvY2VzcyBuYW1lIC0gLS1vdmVyd3JpdGUgLS1yZXNvdXJjZS1tZXRob2QtdmVyc2lvbicgXAogICMgMy4gVmFsaWRhdGUgb3BlbmFwaSBkZWZpbml0aW9uIGJ1dCBjb250aW51ZSBvbiBmYWlsdXJlIGJlY2F1c2UgaXQncyBhbiBleHRlcm5hbCBjbGllbnQgbm90IG93bmVkIGJ5IHByb2plY3QKICAtYyAndmFsaWRhdGUgb3BlbmFwaSAtIC0tY29udGludWUtb24tZXJyb3InIFwKICAjIDMuIENyZWF0ZSBjbGllbnQKICAtYyAiY29kZWdlbiBvcGVuYXBpIC0gLS1vcHRpb25hbC1hbmQtbnVsbGFibGUtYXMtbW9kZWxzIC0tdGVtcGxhdGUgZGVmYXVsdDo6cnVzdC1yZXF3ZXN0LWh0dHAvIC0tZm9ybWF0ICdydXN0Zm10IC0tZWRpdGlvbiAyMDE4JyBcCiAgICAtbyAndXNlZEVuZHBvaW50cz1+W1widXNlcnNMaXN0VjNcIixcInVzZXJzQ3JlYXRlVjNcIl0nIFwKICAgIC0tdGFyZ2V0LWRpciBzcmMvY2xpZW50cy8gLW8gbmFtZT1Vc2Vyc0NsaWVudCIKYGBgCg== readmeEtag: '"8103d35fc3f20e2bc98d5977801919a95f5a5ffe"' readmeLastModified: Mon, 03 Jun 2024 11:54:47 GMT repositoryId: 319082686 description: >- Set of tools for codegen, preprocessing and validation of json-schema and openapi spec created: '2020-12-06T16:48:56Z' updated: '2024-09-05T16:59:24Z' language: Rust archived: false stars: 40 watchers: 8 forks: 13 owner: kstasik logo: https://avatars.githubusercontent.com/u/676617?v=4 license: MIT repoEtag: '"8e5355f3c8885d4ae0f270bffdeb03fc2ec7e9dd11429fdf4e82e8f4dcb98a24"' repoLastModified: Thu, 05 Sep 2024 16:59:24 GMT category: Parsers foundInMaster: true id: 152cddaa4f413487d9d5bab9d4eb78cb - source: openapi3 tags name: go-openapi homepage: https://github.com/nasa9084/go-openapi language: Go source_description: Golang struct model for OpenAPI 3.x. category: - Low-level Tooling - Parsers repository: https://github.com/nasa9084/go-openapi v3: true repositoryMetadata: base64Readme: >- T3BlbkFQSSBTcGVjaWZpY2F0aW9uIG9iamVjdCBtb2RlbAo9PT0KClshW0dvRG9jXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL25hc2E5MDg0L2dvLW9wZW5hcGk/c3RhdHVzLnN2ZyldKGh0dHBzOi8vZ29kb2Mub3JnL2dpdGh1Yi5jb20vbmFzYTkwODQvZ28tb3BlbmFwaSkKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvbmFzYTkwODQvZ28tb3BlbmFwaS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9uYXNhOTA4NC9nby1vcGVuYXBpKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvbmFzYTkwODQvZ28tb3BlbmFwaS9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9uYXNhOTA4NC9nby1vcGVuYXBpKQoKLS0tCgoqKlRoaXMgcGFja2FnZSBpcyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCwgc28gdGhlIEFQSSB3aWxsIGJlIGNoYW5nZWQgd2l0aG91dCBhbnkgbm90aWZpY2F0aW9uKioKCiMjIE92ZXJ2aWV3CgpUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIFtPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgb2JqZWN0IG1vZGVsIHdpdGggc29tZSB1c2FibGUgZnVuY3Rpb25zLgoKIyMgU3lub3BzaXMKCmBgYCBnbwpwYWNrYWdlIG1haW4KCmltcG9ydCAoCiAgICAiZm10IgoKICAgICJnaXRodWIuY29tL25hc2E5MDg0L2dvLW9wZW5hcGkiCikKCmZ1bmMgbWFpbigpIHsKICAgIGRvYywgXyA6PSBvcGVuYXBpLkxvYWRGaWxlKCJwYXRoL3RvL3NwZWMiKQogICAgZm10LlByaW50KGRvYy5WZXJzaW9uKQp9CmBgYAoKIyMgU3RhdHVzCgoqIFt4XSBNb2RlbCBkZWZpbml0aW9uCiogW3hdIExvYWQgT3BlbkFQSSAzLjAgc3BlYyBmaWxlCiogWyBdIFJlc29sdmUgUmVmZXJlbmNlIG9iamVjdAogICogW3hdIFJlc29sdmUgIy9jb21wb25lbnQgcmVmZXJlbmNlCiAgKiBbIF0gUmVzb2x2ZSBvdGhlciBmaWxlIHJlZmVyZW5jZQoqIFsgXSBWYWxpZGF0aW9uCiAgKiBbeF0gVmFsaWRhdGUgc3BlYyB2YWx1ZXMKICAgICogWyBdIHRlc3QgZm9yIHZhbGlkYXRpb24KICAgICAgKiBbeF0gRG9jdW1lbnQKICAgICAgKiBbeF0gSW5mbwogICAgICAqIFt4XSBDb250YWN0CiAgICAgICogW3hdIExpY2Vuc2UKICAgICAgKiBbeF0gU2VydmVyCiAgICAgICogW3hdIFNlcnZlclZhcmlhYmxlCiAgICAgICogW3hdIFBhdGhzCiAgICAgICogW3hdIFBhdGhJdGVtCiAgICAgICogW3hdIE9wZXJhdGlvbgogICAgICAqIFt4XSBQYXJhbWV0ZXIKICAgICAgKiBbeF0gUmVxdWVzdEJvZHkKICAgICAgKiBbeF0gUmVzcG9uc2VzCiAgICAgICogW3hdIFJlc3BvbnNlCiAgICAgICogW3hdIENhbGxiYWNrcwogICAgICAqIFt4XSBDYWxsYmFjawogICAgICAqIFsgXSBTY2hlbWEKICAgICAgKiBbeF0gRXhhbXBsZQogICAgICAqIFsgXSBNZWRpYVR5cGUKICAgICAgKiBbIF0gSGVhZGVyCiAgICAgICogWyBdIExpbmsKICAgICAgKiBbIF0gRW5jb2RpbmcKICAgICAgKiBbeF0gRGlzY3JpbWluYXRvcgogICAgICAqIFt4XSBYTUwKICAgICAgKiBbeF0gQ29tcG9uZW50cwogICAgICAqIFt4XSBTZWN1cml0eVNjaGVtZQogICAgICAqIFt4XSBPQXV0aEZsb3dzCiAgICAgICogW3hdIE9BdXRoRmxvdwogICAgICAqIFsgXSBTZWN1cml0eVJlcXVpcmVtZW50CiAgICAgICogW3hdIFRhZwogICAgICAqIFt4XSBFeHRlcm5hbERvY3VtZW50YXRpb24KICAqIFsgXSBWYWxpZGF0ZSBIVFRQIFJlcXVlc3QKICAqIFsgXSBWYWxpZGF0ZSBIVFRQIFJlc3BvbnNlCg== readmeEtag: '"41aa7a6b31dade11ea34606947980743473497e8"' readmeLastModified: Wed, 19 Jun 2024 11:38:10 GMT repositoryId: 113154608 description: OpenAPI Specification (OAS) 3.0 implementation for Go created: '2017-12-05T08:30:55Z' updated: '2024-06-19T11:39:06Z' language: Go archived: false stars: 38 watchers: 3 forks: 4 owner: nasa9084 logo: https://avatars.githubusercontent.com/u/11725486?v=4 license: MIT repoEtag: '"c03603f1c8f45441caa5c0b371b89506230adfb6d42bc88e205fff1812c1c319"' repoLastModified: Wed, 19 Jun 2024 11:39:06 GMT foundInMaster: true id: 7b277653d8ebb25b494d8eda45d7b35e - source: openapi3 tags repository: https://github.com/hpoul/openapi_dart v3: true repositoryMetadata: base64Readme: >- IyBEYXJ0IE9wZW5BUEkgQ29kZSBHZW5lcmF0b3IKCkRhcnQgaW1wbGVtZW50YXRpb24gdG8gZ2VuZXJhdGUgKGRhcnQpIHNlcnZlcgpzdHVicyBhbmQgY2xpZW50IGxpYnJhcmllcy4KClNlZSBbcGFja2FnZXMvb3BlbmFwaV9jb2RlX2J1aWxkZXIvUkVBRE1FLm1kXShwYWNrYWdlcy9vcGVuYXBpX2NvZGVfYnVpbGRlci9SRUFETUUubWQpIGZvciBkZXRhaWxzLgo= readmeEtag: '"0b2f1170acd3a87d380fb9559d68595bf4ec8fba"' readmeLastModified: Sun, 26 May 2024 10:39:04 GMT repositoryId: 270302676 description: >- Dart implementation to generate (dart) server stubs and client libraries from OpenAPI 3.0 yaml files. created: '2020-06-07T12:41:17Z' updated: '2024-09-01T19:56:30Z' language: Dart archived: false stars: 37 watchers: 3 forks: 18 owner: hpoul logo: https://avatars.githubusercontent.com/u/313066?v=4 repoEtag: '"001fe7e94ce3b59b2bf26c68813e436b036e2377e498d18f182001013e646d77"' repoLastModified: Sun, 01 Sep 2024 19:56:30 GMT foundInMaster: true category: Code Generators id: ced3cf309aea10ea14f4d94579214646 - source: openapi3 tags repository: https://github.com/quantmind/aio-openapi v3: true repositoryMetadata: base64Readme: >- IyBhaW8tb3BlbmFwaQoKWyFbUHlQSSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcHkvYWlvLW9wZW5hcGkuc3ZnKV0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL3B5L2Fpby1vcGVuYXBpKQpbIVtQeXRob24gdmVyc2lvbnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL2Fpby1vcGVuYXBpLnN2ZyldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9haW8tb3BlbmFwaSkKWyFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9xdWFudG1pbmQvYWlvLW9wZW5hcGkvd29ya2Zsb3dzL2J1aWxkL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9xdWFudG1pbmQvYWlvLW9wZW5hcGkvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQWJ1aWxkKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL3F1YW50bWluZC9haW8tb3BlbmFwaS9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmc/dG9rZW49WFYyR0Q5NDZRSSldKGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvcXVhbnRtaW5kL2Fpby1vcGVuYXBpKQpbIVtEb2N1bWVudGF0aW9uIFN0YXR1c10oaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvYWlvLW9wZW5hcGkvYmFkZ2UvP3ZlcnNpb249bGF0ZXN0KV0oaHR0cHM6Ly9haW8tb3BlbmFwaS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvP2JhZGdlPWxhdGVzdCkKWyFbRG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZGQvYWlvLW9wZW5hcGkuc3ZnKV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2Fpby1vcGVuYXBpLykKCkFzeW5jaHJvbm91cyB3ZWIgbWlkZGxld2FyZSBmb3IgW2Fpb2h0dHBdW10gYW5kIHNlcnZpbmcgUmVzdCBBUElzIHdpdGggW09wZW5BUEldW10gdiAzCnNwZWNpZmljYXRpb24gYW5kIHdpdGggb3B0aW9uYWwgW1Bvc3RncmVTcWxdW10gZGF0YWJhc2UgYmluZGluZ3MuCgpTZWUgdGhlIFt0dXRvcmlhbF0oaHR0cHM6Ly9haW8tb3BlbmFwaS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdHV0b3JpYWwuaHRtbCkgZm9yIGEgcXVpY2sgaW50cm9kdWN0aW9uLgoKClthaW9odHRwXTogaHR0cHM6Ly9haW9odHRwLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS8KW29wZW5hcGldOiBodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvCltwb3N0Z3Jlc3FsXTogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvCltzcWxhbGNoZW15XTogaHR0cHM6Ly93d3cuc3FsYWxjaGVteS5vcmcvCltjbGlja106IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxsZXRzL2NsaWNrClthbGVtYmljXTogaHR0cDovL2FsZW1iaWMuenp6Y29tcHV0aW5nLmNvbS9lbi9sYXRlc3QvClthc3luY3BnXTogaHR0cHM6Ly9naXRodWIuY29tL01hZ2ljU3RhY2svYXN5bmNwZwo= readmeEtag: '"47846cd96146992f3d69208b90bf08036431f616"' readmeLastModified: Thu, 31 Aug 2023 20:48:01 GMT repositoryId: 133532636 description: >- A python module for building OpenAPI compliant asynchronous Rest Servers. Auto documentation, serialization and validation in the same unified API. created: '2018-05-15T15:00:21Z' updated: '2024-08-17T09:51:26Z' language: Python archived: true stars: 36 watchers: 5 forks: 3 owner: quantmind logo: https://avatars.githubusercontent.com/u/144099?v=4 license: BSD-3-Clause repoEtag: '"99f1c4de68d303a1ed4d7c841ec52f05cd0371674e882f0ba9759f20077504cf"' repoLastModified: Sat, 17 Aug 2024 09:51:26 GMT foundInMaster: true category: Server Implementations id: feb4cad12aee75a89800812a52852fdc - source: openapi3 tags repository: https://github.com/redocly/museum-openapi-example v3: true id: 1908c5d265dd6cda6a2bb2946e0fe880 repositoryMetadata: base64Readme: >- IyBSZWRvY2x5IE11c2V1bSBBUEkgRXhhbXBsZQoKQW4gaW1hZ2luYXJ5LCBidXQgZGVsaWdodGZ1bCBNdXNldW0gQVBJIGZvciBpbnRlcmFjdGluZyB3aXRoIG11c2V1bSBzZXJ2aWNlcyBhbmQgaW5mb3JtYXRpb24uCkJ1aWx0IGJ5IFJlZG9jbHkgZm9yIGVkdWNhdGlvbmFsIHB1cnBvc2VzLgoKPiBbIU5PVEVdICAKPiBUaGlzIE9wZW5BUEkgZGVzY3JpcHRpb24gdXNlcyB0aGUgW09wZW5BUEkgMy4xLjAgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wKS4KCiMjIE92ZXJ2aWV3CgpJbnRyb2R1Y2luZyB0aGUgIk11c2V1bSBBUEkiLCB3aGljaCBvZmZlcnMgYSBzZXQgb2YgZW5kcG9pbnRzIHRvIGludGVyYWN0IHdpdGggYSBtdXNldW0ncyBzZXJ2aWNlcy0tc3VjaCBhcyByZXRyaWV2aW5nIG11c2V1bSBob3VycywgbWFuYWdpbmcgc3BlY2lhbCBldmVudHMsIGFuZCBwdXJjaGFzaW5nIHRpY2tldHMuCgpOZXcgZnVuY3Rpb25hbGl0eSBtYXkgYmUgYWRkZWQgdG8gdGhlIE11c2V1bSBBUEkgaW4gdGhlIGZ1dHVyZS4KSXMgdGhlcmUgYW4gZXhhbXBsZSB5b3UnZCBsaWtlIHRvIHNlZT8gUGxlYXNlIFtvcGVuIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9tdXNldW0tb3BlbmFwaS1leGFtcGxlL2lzc3Vlcy9uZXcpLgoKIyMgRmVhdHVyZXMKCj4gWyFOT1RFXSAgCj4gUmVtaW5kZXIgdGhhdCB0aGVzZSBhcmUgZmljdGlvbmFsIGV4YW1wbGVzIGZvciBsZWFybmluZyBwdXJwb3Nlcy4KPiBUaGUgY29udGVudHMgb2YgdGhpcyByZXBvc2l0b3J5IGFyZSBpbGx1c3RyYXRpb25zIHRvIHVzZSB3aXRoIHlvdXIgT3BlbkFQSSBzdHVkeSBvciB0b29scyBleHBsb3JhdGlvbi4KCiMjIyBPcGVuQVBJCgotIGBvcGVuYXBpLnlhbWxgIGNvbnRhaW5zIHRoZSBNdXNldW0gQVBJLiBJdCBpcyBhbiBPcGVuQVBJIDMuMS4wIGRlc2NyaXB0aW9uLgoKVGhlIE11c2V1bSBBUEkgaGFzIHRoZSBmb2xsb3dpbmcgY29yZSBmZWF0dXJlcyAoc29ydGVkIGJ5IHRhZ3MpOgotIE9wZXJhdGlvbnMKICAtIEdldCBtdXNldW0gb3BlcmF0aW9uYWwgaG91cnMKLSBTcGVjaWFsIGV2ZW50cwogIC0gR2V0IHNwZWNpYWwgZXZlbnQgZGF0YQogIC0gTGlzdCBzcGVjaWFsIGV2ZW50cwogIC0gQ3JlYXRlIGFuZCB1cGRhdGUgYSBzcGVjaWFsIGV2ZW50CiAgLSBEZWxldGUgYSBzcGVjaWFsIGV2ZW50Ci0gVGlja2V0cwogIC0gUHVyY2hhc2UgbXVzZXVtIHRpY2tldHMgZm9yIGdlbmVyYWwgZW50cnkgb3Igc3BlY2lhbCBldmVudHMKICAtIEdldCBzY2FubmFibGUgUVIgY29kZSBmb3IgbXVzZXVtIHRpY2tldAoKIyMjIEFyYXp6bwoKLSBgYXJhenpvL211c2V1bS10aWNrZXRzLmFyYXp6by55YW1sYCBpcyBhbiBBcmF6em8gMS4wLjAgZGVzY3JpcHRpb24gb2YgdXNpbmcgdGhlIE11c2V1bSBPcGVuQVBJIHNvdXJjZSB0byBkZXNjcmliZSBhbiBBUEkgc2VxdWVuY2UuCi0gYGFyYXp6by9tdXNldW0tYXBpLmFyYXp6by55YW1sYCBpcyBhbiBBcmF6em8gMS4wLjAgZGVzY3JpcHRpb24gdXNpbmcgYm90aCB0aGUgTXVzZXVtIEFQSSBhbmQgYW5vdGhlciBBcmF6em8gZmlsZSB0byBkZXNjcmliZSBhIHNlcmllcyBvZiBtdWx0aS1zdGVwIEFQSSB3b3JrZmxvd3MgYW5kIHBhc3NpbmcgdGhlIHZhcmlhYmxlcyBiZXR3ZWVuIHRoZW0uCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCjEuIENsb25lIHRoaXMgcmVwby4KMi4gT3BlbiB0aGUgcmVwbyBpbiB5b3VyIElERS4KMy4gUnVuIGBucG0gaW5zdGFsbGAgdG8gaW5zdGFsbCB0aGUgUmVkb2NseSBDTEkuCgojIyMgV29ya2luZyB3aXRoIHRoZSBPcGVuQVBJIGRlc2NyaXB0aW9uCgpXZSBlbmNvdXJhZ2UgeW91IHRvIGV4cGxvcmUgdGhlIG11c2V1bSdzIE9wZW5BUEkgZGVzY3JpcHRpb24gYW5kIG1ha2UgY2hhbmdlcy4KVHJ5IGV4cGVyaW1lbnRpbmcgd2l0aCB0aGUgZm9sbG93aW5nIGFwcHJvYWNoZXM6CgoqKlByZXZpZXcgdGhlIE11c2V1bSBPcGVuQVBJIGV4YW1wbGUncyBBUEkgZG9jcyBhbmQgb2JzZXJ2ZSB5b3VyIGNoYW5nZXMgdmlzdWFsbHkuKioKCi0gUnVuIGBucG0gcnVuIHByZXZpZXdgIHRvIHByZXZpZXcgdGhlIGRvY3VtZW50YXRpb24uCi0gTmF2aWdhdGUgdG8gdGhlICoqTGlzdCBzcGVjaWFsIGV2ZW50cyoqIG9wZXJhdGlvbiBpbiB0aGUgcHJldmlldy4KLSBXaXRoIHRoZSBwcmV2aWV3IHJ1bm5pbmcuLi4KICAtIEdvIHRvIHRoZSBfb3BlbmFwaS55YW1sXyBmaWxlIGluIHlvdXIgSURFLgogIC0gU2VhcmNoIGZvciBgbGlzdFNwZWNpYWxFdmVudHNgIHRvIGZpbmQgdGhlIG1hdGNoaW5nIGBvcGVyYXRpb25JZGAuCiAgLSBSZXBsYWNlIHRoZSBgZGVzY3JpcHRpb25gIGZpZWxkIHdpdGggdGhlIHNuaXBwZXQgYmVsb3c6CgpgYGB5YW1sCiAgICBkZXNjcmlwdGlvbjogfC0KICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIF91cGNvbWluZ18gc3BlY2lhbCBldmVudHMgYXQgdGhlIG11c2V1bS4KICAgICAgICAgICAgCiAgICAgICAgU2VlIG9uZSB5b3UgbGlrZT8gVXNlIHRoaXMgQVBJIHRvIFtidXkgYSB0aWNrZXRdKC8jdGFnL1RpY2tldHMvb3BlcmF0aW9uL2J1eU11c2V1bVRpY2tldHMpLiAgCmBgYAoKU2VlIHRoZSB1cGRhdGVkIGRlc2NyaXB0aW9uPyBUaGlzIGlzIGEgZ3JlYXQgd2F5IHRvIHByZXZpZXcgaG93IGVuZC11c2VycyBvZiB5b3VyIGRvY3Mgd2lsbCBleHBlcmllbmNlIHlvdXIgY2hhbmdlcy4KCioqTGludCB5b3VyIGNoYW5nZXMgdG8gdGhlIE9wZW5BUEkgZGVzY3JpcHRpb24gdXNpbmcgW1JlZG9jbHkgQ0xJXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpLykuKioKCi0gT3BlbiB0aGUgbXVzZXVtJ3MgX29wZW5hcGkueWFtbF8gZmlsZSBpbiB5b3VyIElERS4gCi0gQWRkIHRoZSBmb2xsb3dpbmcgc25pcHBldCB0byBgcGF0aHNgIGFib3ZlIHRoZSAvbXVzZXVtLWhvdXJzIG9wZXJhdGlvbjoKCmBgYHlhbWwKICAvZXhhbXBsZToKICAgIGdldDogCiAgICAgIHN1bW1hcnk6IEV4YW1wbGUgU3VtbWFyeQogICAgICBkZXNjcmlwdGlvbjogRXhhbXBsZSBkZXNjcmlwdGlvbgogICAgICByZXNwb25zZXM6IAogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IFN1Y2Nlc3MKICAgICAgICAnNDAwJzogCiAgICAgICAgICBkZXNjcmlwdGlvbjogQmFkIFJlcXVlc3QKYGBgCgotIFJ1biBgbnBtIHJ1biBsaW50YCBpbiB5b3VyIHRlcm1pbmFsLiBTZWUgdGhlIGVycm9ycz8gCgpUaGUgbGludGluZyBiZWhhdmlvciBpcyBjb250cm9sbGVkIGJ5IHRoZSBfcmVkb2NseS55YW1sXyBjb25maWd1cmF0aW9uIGZpbGUuClRoZSBsaW50ZXIgaXMgY29uZmlndXJlZCB0byB1c2UgUmVkb2NseSdzIFtyZWNvbW1lbmRlZCBydWxlc2V0XShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzL3JlY29tbWVuZGVkLyNyZWNvbW1lbmRlZC1ydWxlc2V0KSwgd2hpY2ggYXJlIGJ1aWx0IGludG8gdGhlIENMSS4KSG93ZXZlciwgd2UgYWxzbyBhZGRlZCBhIFtjb25maWd1cmFibGUgcnVsZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcy9jb25maWd1cmFibGUtcnVsZXMvKSBmb3IgZW5mb3JjaW5nIHNlbnRlbmNlIGNhc2luZyBvbiBvcGVyYXRpb24gc3VtbWFyaWVzLgoKKipMaW50IGFuIEFyYXp6byBkZXNjcmlwdGlvbiB1c2luZyBbUmVkb2NseSBDTEldKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvKS4qKgoKLSBSZWRvY2x5IENMSSBjYW4gYWxzbyBsaW50IGZvcm1hdHMgb3RoZXIgdGhhbiBPcGVuQVBJLCBzdWNoIGFzIHRoZSBBcmF6em8gZm9ybWF0LgotIFJ1biBgbnBtIHJ1biBsaW50IGFyYXp6by9tdXNldW0tYXBpLmFyYXp6by55YW1sYCB0byBsaW50IGFuIGV4YW1wbGUgQXJhenpvIGRlc2NyaXB0aW9uLgo= readmeEtag: '"c9c914daa47efa61b11958a22b1523a89d69d58d"' readmeLastModified: Thu, 25 Jul 2024 14:17:47 GMT repositoryId: 713070411 description: 'An example OpenAPI description for an imaginary Museum API. ' created: '2023-11-01T19:22:54Z' updated: '2024-08-28T16:03:51Z' language: null archived: false stars: 36 watchers: 13 forks: 36 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"165ae9f3f2d2a84feb9b0c8dad2f746235547d1555b43fab3e2168272365b2d9"' repoLastModified: Wed, 28 Aug 2024 16:03:51 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/namsor/namsor-python-sdk2 v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWNsaWVudApOYW1Tb3IgQVBJIHYyIDogZW5wb2ludHMgdG8gcHJvY2VzcyBwZXJzb25hbCBuYW1lcyAoZ2VuZGVyLCBjdWx0dXJhbCBvcmlnaW4gb3IgZXRobmljaXR5KSBpbiBhbGwgYWxwaGFiZXRzIG9yIGxhbmd1YWdlcy4gQnkgZGVmYXVsdCwgZW5wb2ludHMgdXNlIDEgdW5pdCBwZXIgbmFtZSAoZXguIEdlbmRlciksIGJ1dCBFdGhuaWNpdHkgY2xhc3NpZmljYXRpb24gdXNlcyAxMCB0byAyMCB1bml0cyBwZXIgbmFtZSBkZXBlbmRpbmcgb24gdGF4b25vbXkuIFVzZSBHRVQgbWV0aG9kcyBmb3Igc21hbGwgdGVzdHMsIGJ1dCBwcmVmZXIgUE9TVCBtZXRob2RzIGZvciBoaWdoZXIgdGhyb3VnaHB1dCAoYmF0Y2ggcHJvY2Vzc2luZyBvZiB1cCB0byAxMDAgbmFtZXMgYXQgYSB0aW1lKS4gTmVlZCBzb21ldGhpbmcgeW91IGNhbid0IGZpbmQgaGVyZT8gV2UgaGF2ZSBtYW55IG1vcmUgZmVhdHVyZXMgY29taW5nIHNvb24uIExldCB1cyBrbm93LCB3ZSdsbCBkbyBvdXIgYmVzdCB0byBhZGQgaXQhIAoKVGhpcyBQeXRob24gcGFja2FnZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUgW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpIHByb2plY3Q6CgotIEFQSSB2ZXJzaW9uOiAyLjAuMjcKLSBQYWNrYWdlIHZlcnNpb246IDIuMC4yNwotIEJ1aWxkIHBhY2thZ2U6IG9yZy5vcGVuYXBpdG9vbHMuY29kZWdlbi5sYW5ndWFnZXMuUHl0aG9uQ2xpZW50Q29kZWdlbgpGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0IFtodHRwOi8vd3d3Lm5hbXNvci5jb20vXShodHRwOi8vd3d3Lm5hbXNvci5jb20vKQoKIyMgUmVxdWlyZW1lbnRzLgoKUHl0aG9uICZndDsmI3gzRDszLjcKCiMjIE1pZ3JhdGlvbiBmcm9tIG90aGVyIGdlbmVyYXRvcnMgbGlrZSBweXRob24gYW5kIHB5dGhvbi1sZWdhY3kKCiMjIyBDaGFuZ2VzCjEuIFRoaXMgZ2VuZXJhdG9yIHVzZXMgc3BlYyBjYXNlIGZvciBhbGwgKG9iamVjdCkgcHJvcGVydHkgbmFtZXMgYW5kIHBhcmFtZXRlciBuYW1lcy4KICAgIC0gU28gaWYgdGhlIHNwZWMgaGFzIGEgcHJvcGVydHkgbmFtZSBsaWtlIGNhbWVsQ2FzZSwgaXQgd2lsbCB1c2UgY2FtZWxDYXNlIHJhdGhlciB0aGFuIGNhbWVsX2Nhc2UKICAgIC0gU28geW91IHdpbGwgbmVlZCB0byB1cGRhdGUgaG93IHlvdSBpbnB1dCBhbmQgcmVhZCBwcm9wZXJ0aWVzIHRvIHVzZSBzcGVjIGNhc2UKMi4gRW5kcG9pbnQgcGFyYW1ldGVycyBhcmUgc3RvcmVkIGluIGRpY3Rpb25hcmllcyB0byBwcmV2ZW50IGNvbGxpc2lvbnMgKGV4cGxhbmF0aW9uIGJlbG93KQogICAgLSBTbyB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSBob3cgeW91IHBhc3MgZGF0YSBpbiB0byBlbmRwb2ludHMKMy4gRW5kcG9pbnQgcmVzcG9uc2VzIG5vdyBpbmNsdWRlIHRoZSBvcmlnaW5hbCByZXNwb25zZSwgdGhlIGRlc2VyaWFsaXplZCByZXNwb25zZSBib2R5LCBhbmQgKHRvZG8pdGhlIGRlc2VyaWFsaXplZCBoZWFkZXJzCiAgICAtIFNvIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHlvdXIgY29kZSB0byB1c2UgcmVzcG9uc2UuYm9keSB0byBhY2Nlc3MgZGVzZXJpYWxpemVkIGRhdGEKNC4gQWxsIHZhbGlkYXRlZCBkYXRhIGlzIGluc3RhbnRpYXRlZCBpbiBhbiBpbnN0YW5jZSB0aGF0IHN1YmNsYXNzZXMgYWxsIHZhbGlkYXRlZCBTY2hlbWEgY2xhc3NlcyBhbmQgRGVjaW1hbC9zdHIvbGlzdC90dXBsZS9mcm96ZW5kaWN0L05vbmVDbGFzcy9Cb29sQ2xhc3MvYnl0ZXMvaW8uRmlsZUlPCiAgICAtIFRoaXMgbWVhbnMgdGhhdCB5b3UgY2FuIHVzZSBpc2luc3RhbmNlIHRvIGNoZWNrIGlmIGEgcGF5bG9hZCB2YWxpZGF0ZWQgYWdhaW5zdCBhIHNjaGVtYSBjbGFzcwogICAgLSBUaGlzIG1lYW5zIHRoYXQgbm8gZGF0YSB3aWxsIGJlIG9mIHR5cGUgTm9uZS9UcnVlL0ZhbHNlCiAgICAgICAgLSBpbmdlc3RlZCBOb25lIHdpbGwgc3ViY2xhc3MgTm9uZUNsYXNzCiAgICAgICAgLSBpbmdlc3RlZCBUcnVlIHdpbGwgc3ViY2xhc3MgQm9vbENsYXNzCiAgICAgICAgLSBpbmdlc3RlZCBGYWxzZSB3aWxsIHN1YmNsYXNzIEJvb2xDbGFzcwogICAgICAgIC0gU28gaWYgeW91IG5lZWQgdG8gY2hlY2sgaXMgVHJ1ZS9GYWxzZS9Ob25lLCBpbnN0ZWFkIHVzZSBpbnN0YW5jZS5pc190cnVlX29hcGcoKS8uaXNfZmFsc2Vfb2FwZygpLy5pc19ub25lX29hcGcoKQo1LiBBbGwgdmFsaWRhdGVkIGNsYXNzIGluc3RhbmNlcyBhcmUgaW1tdXRhYmxlIGV4Y2VwdCBmb3Igb25lcyBiYXNlZCBvbiBpby5GaWxlCiAgICAtIFRoaXMgaXMgYmVjYXVzZSBpZiBwcm9wZXJ0aWVzIHdlcmUgY2hhbmdlZCBhZnRlciB2YWxpZGF0aW9uLCB0aGF0IHZhbGlkYXRpb24gd291bGQgbm8gbG9uZ2VyIGFwcGx5CiAgICAtIFNvIG5vIGNoYW5naW5nIHZhbHVlcyBvciBwcm9wZXJ0eSB2YWx1ZXMgYWZ0ZXIgYSBjbGFzcyBoYXMgYmVlbiBpbnN0YW50aWF0ZWQKNi4gU3RyaW5nICsgTnVtYmVyIHR5cGVzIHdpdGggZm9ybWF0cwogICAgLSBTdHJpbmcgdHlwZSBkYXRhIGlzIHN0b3JlZCBhcyBhIHN0cmluZyBhbmQgaWYgeW91IG5lZWQgdG8gYWNjZXNzIHR5cGVzIGJhc2VkIG9uIGl0cyBmb3JtYXQgbGlrZSBkYXRlLAogICAgZGF0ZS10aW1lLCB1dWlkLCBudW1iZXIgZXRjIHRoZW4geW91IHdpbGwgbmVlZCB0byB1c2UgYWNjZXNzb3IgZnVuY3Rpb25zIG9uIHRoZSBpbnN0YW5jZQogICAgLSB0eXBlIHN0cmluZyArIGZvcm1hdDogU2VlIC5hc19kYXRlX29hcGcsIC5hc19kYXRldGltZV9vYXBnLCAuYXNfZGVjaW1hbF9vYXBnLCAuYXNfdXVpZF9vYXBnCiAgICAtIHR5cGUgbnVtYmVyICsgZm9ybWF0OiBTZWUgLmFzX2Zsb2F0X29hcGcsIC5hc19pbnRfb2FwZwogICAgLSB0aGlzIHdhcyBkb25lIGJlY2F1c2Ugb3BlbmFwaS9qc29uLXNjaGVtYSBkZWZpbmVzIGNvbnN0cmFpbnRzLiBzdHJpbmcgZGF0YSBtYXkgYmUgdHlwZSBzdHJpbmcgd2l0aCBubyBmb3JtYXQKICAgIGtleXdvcmQgaW4gb25lIHNjaGVtYSwgYW5kIGluY2x1ZGUgYSBmb3JtYXQgY29uc3RyYWludCBpbiBhbm90aGVyIHNjaGVtYQogICAgLSBTbyBpZiB5b3UgbmVlZCB0byBhY2Nlc3MgYSBzdHJpbmcgZm9ybWF0IGJhc2VkIHR5cGUsIHVzZSBhc19kYXRlX29hcGcvYXNfZGF0ZXRpbWVfb2FwZy9hc19kZWNpbWFsX29hcGcvYXNfdXVpZF9vYXBnCiAgICAtIFNvIGlmIHlvdSBuZWVkIHRvIGFjY2VzcyBhIG51bWJlciBmb3JtYXQgYmFzZWQgdHlwZSwgdXNlIGFzX2ludF9vYXBnL2FzX2Zsb2F0X29hcGcKNy4gUHJvcGVydHkgYWNjZXNzIG9uIEFueVR5cGUodHlwZSB1bnNldCkgb3Igb2JqZWN0KGRpY3QpIHNjaGVtYXMKICAgIC0gT25seSByZXF1aXJlZCBrZXlzIHdpdGggdmFsaWQgcHl0aG9uIG5hbWVzIGFyZSBwcm9wZXJ0aWVzIGxpa2UgLnNvbWVQcm9wIGFuZCBoYXZlIHR5cGUgaGludHMKICAgIC0gQWxsIG9wdGlvbmFsIGtleXMgbWF5IG5vdCBleGlzdCwgc28gcHJvcGVydGllcyBhcmUgbm90IGRlZmluZWQgZm9yIHRoZW0KICAgIC0gT25lIGNhbiBhY2Nlc3Mgb3B0aW9uYWwgdmFsdWVzIHdpdGggZGljdF9pbnN0YW5jZVsnb3B0aW9uYWxQcm9wJ10gYW5kIEtleUVycm9yIHdpbGwgYmUgcmFpc2VkIGlmIGl0IGRvZXMgbm90IGV4aXN0CiAgICAtIFVzZSBnZXRfaXRlbV9vYXBnIGlmIHlvdSBuZWVkIGEgd2F5IHRvIGFsd2F5cyBnZXQgYSB2YWx1ZSB3aGV0aGVyIG9yIG5vdCB0aGUga2V5IGV4aXN0cwogICAgICAgIC0gSWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdCwgc2NoZW1hcy51bnNldCBpcyByZXR1cm5lZCBmcm9tIGNhbGxpbmcgZGljdF9pbnN0YW5jZS5nZXRfaXRlbV9vYXBnKCdvcHRpb25hbFByb3AnKQogICAgICAgIC0gQWxsIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBrZXlzIGhhdmUgdHlwZSBoaW50cyBmb3IgdGhpcyBtZXRob2QsIGFuZCBAdHlwaW5nLm92ZXJsb2FkIGlzIHVzZWQKICAgICAgICAtIEEgdHlwZSBoaW50IGlzIGFsc28gZ2VuZXJhdGVkIGZvciBhZGRpdGlvbmFsUHJvcGVydGllcyBhY2Nlc3NlZCB1c2luZyB0aGlzIG1ldGhvZAogICAgLSBTbyB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB5b3UgY29kZSB0byB1c2Ugc29tZV9pbnN0YW5jZVsnb3B0aW9uYWxQcm9wJ10gdG8gYWNjZXNzIG9wdGlvbmFsIHByb3BlcnR5CiAgICBhbmQgYWRkaXRpb25hbFByb3BlcnR5IHZhbHVlcwo4LiBUaGUgbG9jYXRpb24gb2YgdGhlIGFwaSBjbGFzc2VzIGhhcyBjaGFuZ2VkCiAgICAtIEFwaSBjbGFzc2VzIGFyZSBsb2NhdGVkIGluIHlvdXJfcGFja2FnZS5hcGlzLnRhZ3Muc29tZV9hcGkKICAgIC0gVGhpcyBjaGFuZ2Ugd2FzIG1hZGUgdG8gZWxpbWluYXRlIHJlZHVuZGFudCBjb2RlIGdlbmVyYXRpb24KICAgIC0gTGVnYWN5IGdlbmVyYXRvcnMgZ2VuZXJhdGVkIHRoZSBzYW1lIGVuZHBvaW50IHR3aWNlIGlmIGl0IGhhZCA+IDEgdGFnIG9uIGl0CiAgICAtIFRoaXMgZ2VuZXJhdG9yIGRlZmluZXMgYW4gZW5kcG9pbnQgaW4gb25lIGNsYXNzLCB0aGVuIGluaGVyaXRzIHRoYXQgY2xhc3MgdG8gZ2VuZXJhdGUKICAgICAgYXBpcyBieSB0YWdzIGFuZCBieSBwYXRocwogICAgLSBUaGlzIGNoYW5nZSByZWR1Y2VzIGNvZGUgYW5kIGFsbG93cyBxdWlja2VyIHJ1biB0aW1lIGlmIHlvdSB1c2UgdGhlIHBhdGggYXBpcwogICAgICAgIC0gcGF0aCBhcGlzIGFyZSBhdCB5b3VyX3BhY2thZ2UuYXBpcy5wYXRocy5zb21lX3BhdGgKICAgIC0gVGhvc2UgYXBpcyB3aWxsIG9ubHkgbG9hZCB0aGVpciBuZWVkZWQgbW9kZWxzLCB3aGljaCBpcyBsZXNzIHRvIGxvYWQgdGhhbiBhbGwgb2YgdGhlIHJlc291cmNlcyBuZWVkZWQgaW4gYSB0YWcgYXBpCiAgICAtIFNvIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHlvdXIgaW1wb3J0IHBhdGhzIHRvIHRoZSBhcGkgY2xhc3NlcwoKIyMjIFdoeSBhcmUgT2FwZyBhbmQgX29hcGcgdXNlZCBpbiBjbGFzcyBhbmQgbWV0aG9kIG5hbWVzPwpDbGFzc2VzIGNhbiBoYXZlIGFyYml0cmFyaWx5IG5hbWVkIHByb3BlcnRpZXMgc2V0IG9uIHRoZW0KRW5kcG9pbnRzIGNhbiBoYXZlIGFyYml0cmFyeSBvcGVyYXRpb25JZCBtZXRob2QgbmFtZXMgc2V0CkZvciB0aG9zZSByZWFzb25zLCBJIHVzZSB0aGUgcHJlZml4IE9hcGcgYW5kIF9vYXBnIHRvIGdyZWF0bHkgcmVkdWNlIHRoZSBsaWtlbGlob29kIG9mIGNvbGxpc2lvbnMKb24gcHJvdGVjdGVkICsgcHVibGljIGNsYXNzZXMvbWV0aG9kcy4Kb2FwZyBzdGFuZHMgZm9yIE9wZW5BcGkgUHl0aG9uIEdlbmVyYXRvci4KCiMjIyBPYmplY3QgcHJvcGVydHkgc3BlYyBjYXNlClRoaXMgd2FzIGRvbmUgYmVjYXVzZSB3aGVuIHBheWxvYWRzIGFyZSBpbmdlc3RlZCwgdGhleSBjYW4gYmUgdmFsaWRhdGVkIGFnYWluc3QgTiBudW1iZXIgb2Ygc2NoZW1hcy4KSWYgdGhlIGlucHV0IHNpZ25hdHVyZSB1c2VkIGEgZGlmZmVyZW50IHByb3BlcnR5IG5hbWUgdGhlbiB0aGF0IGhhcyBtdXRhdGVkIHRoZSBwYXlsb2FkLgpTbyBTY2hlbWFBIGFuZCBTY2hlbWFCIG11c3QgYm90aCBzZWUgdGhlIGNhbWVsQ2FzZSBzcGVjIG5hbWVkIHZhcmlhYmxlLgpBbHNvIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgaW4gdHdvIHByb3BlcnRpZXMsIG5hbWVkIGNhbWVsQ2FzZSBhbmQgY2FtZWxfY2FzZSBpbiB0aGUgc2FtZSBwYXlsb2FkLgpUaGF0IHVzZSBjYXNlIHNob3VsZCBiZSBzdXBwb3J0IHNvIHNwZWMgY2FzZSBpcyB1c2VkLgoKIyMjIFBhcmFtZXRlciBzcGVjIGNhc2UKUGFyYW1ldGVycyBjYW4gYmUgaW5jbHVkZWQgaW4gZGlmZmVyZW50IGxvY2F0aW9ucyBpbmNsdWRpbmc6Ci0gcXVlcnkKLSBwYXRoCi0gaGVhZGVyCi0gY29va2llCgpBbnkgb2YgdGhvc2UgcGFyYW1ldGVycyBjb3VsZCB1c2UgdGhlIHNhbWUgcGFyYW1ldGVyIG5hbWVzLCBzbyBpZiBldmVyeSBwYXJhbWV0ZXIKd2FzIGluY2x1ZGVkIGFzIGFuIGVuZHBvaW50IHBhcmFtZXRlciBpbiBhIGZ1bmN0aW9uIHNpZ25hdHVyZSwgdGhleSB3b3VsZCBjb2xsaWRlLgpGb3IgdGhhdCByZWFzb24sIGVhY2ggb2YgdGhvc2UgaW5wdXRzIGhhdmUgYmVlbiBzZXBhcmF0ZWQgb3V0IGludG8gc2VwYXJhdGUgdHlwZWQgZGljdGlvbmFyaWVzOgotIHF1ZXJ5X3BhcmFtcwotIHBhdGhfcGFyYW1zCi0gaGVhZGVyX3BhcmFtcwotIGNvb2tpZV9wYXJhbXMKClNvIHdoZW4gdXBkYXRpbmcgeW91ciBjb2RlLCB5b3Ugd2lsbCBuZWVkIHRvIHBhc3MgZW5kcG9pbnQgcGFyYW1ldGVycyBpbiB1c2luZyB0aG9zZQpkaWN0aW9uYXJpZXMuCgojIyMgRW5kcG9pbnQgcmVzcG9uc2VzCkVuZHBvaW50IHJlc3BvbnNlcyBoYXZlIGJlZW4gZW5yaWNoZWQgdG8gbm93IGluY2x1ZGUgbW9yZSBpbmZvcm1hdGlvbi4KQW55IHJlc3BvbnNlIHJlb20gYW4gZW5kcG9pbnQgd2lsbCBub3cgaW5jbHVkZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CnJlc3BvbnNlOiB1cmxsaWIzLkhUVFBSZXNwb25zZQpib2R5OiB0eXBpbmcuVW5pb25bVW5zZXQsIFNjaGVtYV0KaGVhZGVyczogdHlwaW5nLlVuaW9uW1Vuc2V0LCBUT0RPXQpOb3RlOiByZXNwb25zZSBoZWFkZXIgZGVzZXJpYWxpemF0aW9uIGhhcyBub3QgeWV0IGJlZW4gYWRkZWQKCgojIyBJbnN0YWxsYXRpb24gJiBVc2FnZQojIyMgcGlwIGluc3RhbGwKCklmIHRoZSBweXRob24gcGFja2FnZSBpcyBob3N0ZWQgb24gYSByZXBvc2l0b3J5LCB5b3UgY2FuIGluc3RhbGwgZGlyZWN0bHkgdXNpbmc6CgpgYGBzaApwaXAgaW5zdGFsbCBnaXQraHR0cHM6Ly9naXRodWIuY29tL25hbXNvci9uYW1zb3ItcHl0aG9uLXNkazIuZ2l0CmBgYAooeW91IG1heSBuZWVkIHRvIHJ1biBgcGlwYCB3aXRoIHJvb3QgcGVybWlzc2lvbjogYHN1ZG8gcGlwIGluc3RhbGwgZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9uYW1zb3IvbmFtc29yLXB5dGhvbi1zZGsyLmdpdGApCgpUaGVuIGltcG9ydCB0aGUgcGFja2FnZToKYGBgcHl0aG9uCmltcG9ydCBvcGVuYXBpX2NsaWVudApgYGAKCiMjIyBTZXR1cHRvb2xzCgpJbnN0YWxsIHZpYSBbU2V0dXB0b29sc10oaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NldHVwdG9vbHMpLgoKYGBgc2gKcHl0aG9uIHNldHVwLnB5IGluc3RhbGwgLS11c2VyCmBgYAoob3IgYHN1ZG8gcHl0aG9uIHNldHVwLnB5IGluc3RhbGxgIHRvIGluc3RhbGwgdGhlIHBhY2thZ2UgZm9yIGFsbCB1c2VycykKClRoZW4gaW1wb3J0IHRoZSBwYWNrYWdlOgpgYGBweXRob24KaW1wb3J0IG9wZW5hcGlfY2xpZW50CmBgYAoKIyMgR2V0dGluZyBTdGFydGVkCgpQbGVhc2UgZm9sbG93IHRoZSBbaW5zdGFsbGF0aW9uIHByb2NlZHVyZV0oI2luc3RhbGxhdGlvbi0tdXNhZ2UpIGFuZCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nOgoKYGBgcHl0aG9uCgppbXBvcnQgdGltZQppbXBvcnQgb3BlbmFwaV9jbGllbnQKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludApmcm9tIG9wZW5hcGlfY2xpZW50LmFwaXMudGFncyBpbXBvcnQgYWRtaW5fYXBpCmZyb20gb3BlbmFwaV9jbGllbnQubW9kZWwuYXBpX2NsYXNzaWZpZXJfdGF4b25vbXlfb3V0IGltcG9ydCBBUElDbGFzc2lmaWVyVGF4b25vbXlPdXQKZnJvbSBvcGVuYXBpX2NsaWVudC5tb2RlbC5hcGlfY2xhc3NpZmllcnNfc3RhdHVzX291dCBpbXBvcnQgQVBJQ2xhc3NpZmllcnNTdGF0dXNPdXQKZnJvbSBvcGVuYXBpX2NsaWVudC5tb2RlbC5hcGlfa2V5X291dCBpbXBvcnQgQVBJS2V5T3V0CmZyb20gb3BlbmFwaV9jbGllbnQubW9kZWwuYXBpX3BlcmlvZF91c2FnZV9vdXQgaW1wb3J0IEFQSVBlcmlvZFVzYWdlT3V0CmZyb20gb3BlbmFwaV9jbGllbnQubW9kZWwuYXBpX3NlcnZpY2VzX291dCBpbXBvcnQgQVBJU2VydmljZXNPdXQKZnJvbSBvcGVuYXBpX2NsaWVudC5tb2RlbC5hcGlfdXNhZ2VfYWdncmVnYXRlZF9vdXQgaW1wb3J0IEFQSVVzYWdlQWdncmVnYXRlZE91dApmcm9tIG9wZW5hcGlfY2xpZW50Lm1vZGVsLmFwaV91c2FnZV9oaXN0b3J5X291dCBpbXBvcnQgQVBJVXNhZ2VIaXN0b3J5T3V0CmZyb20gb3BlbmFwaV9jbGllbnQubW9kZWwucmVnaW9uX291dCBpbXBvcnQgUmVnaW9uT3V0CmZyb20gb3BlbmFwaV9jbGllbnQubW9kZWwuc29mdHdhcmVfdmVyc2lvbl9vdXQgaW1wb3J0IFNvZnR3YXJlVmVyc2lvbk91dAojIERlZmluaW5nIHRoZSBob3N0IGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byBodHRwczovL3YyLm5hbXNvci5jb20vTmFtU29yQVBJdjIKIyBTZWUgY29uZmlndXJhdGlvbi5weSBmb3IgYSBsaXN0IG9mIGFsbCBzdXBwb3J0ZWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgpjb25maWd1cmF0aW9uID0gb3BlbmFwaV9jbGllbnQuQ29uZmlndXJhdGlvbigKICAgIGhvc3QgPSAiaHR0cHM6Ly92Mi5uYW1zb3IuY29tL05hbVNvckFQSXYyIgopCgojIFRoZSBjbGllbnQgbXVzdCBjb25maWd1cmUgdGhlIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHBhcmFtZXRlcnMKIyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIEFQSSBzZXJ2ZXIgc2VjdXJpdHkgcG9saWN5LgojIEV4YW1wbGVzIGZvciBlYWNoIGF1dGggbWV0aG9kIGFyZSBwcm92aWRlZCBiZWxvdywgdXNlIHRoZSBleGFtcGxlIHRoYXQKIyBzYXRpc2ZpZXMgeW91ciBhdXRoIHVzZSBjYXNlLgoKIyBDb25maWd1cmUgQVBJIGtleSBhdXRob3JpemF0aW9uOiBhcGlfa2V5CmNvbmZpZ3VyYXRpb24uYXBpX2tleVsnYXBpX2tleSddID0gJ1lPVVJfQVBJX0tFWScKCiMgVW5jb21tZW50IGJlbG93IHRvIHNldHVwIHByZWZpeCAoZS5nLiBCZWFyZXIpIGZvciBBUEkga2V5LCBpZiBuZWVkZWQKIyBjb25maWd1cmF0aW9uLmFwaV9rZXlfcHJlZml4WydhcGlfa2V5J10gPSAnQmVhcmVyJwoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIG9wZW5hcGlfY2xpZW50LkFwaUNsaWVudChjb25maWd1cmF0aW9uKSBhcyBhcGlfY2xpZW50OgogICAgIyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGFzcwogICAgYXBpX2luc3RhbmNlID0gYWRtaW5fYXBpLkFkbWluQXBpKGFwaV9jbGllbnQpCiAgICBzb3VyY2UgPSAic291cmNlX2V4YW1wbGUiICMgc3RyIHwgCmFub255bWl6ZWQgPSBUcnVlICMgYm9vbCB8IAp0b2tlbiA9ICJ0b2tlbl9leGFtcGxlIiAjIHN0ciB8IAoKICAgIHRyeToKICAgICAgICAjIEFjdGl2YXRlL2RlYWN0aXZhdGUgYW5vbnltaXphdGlvbiBmb3IgYSBzb3VyY2UuCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gYXBpX2luc3RhbmNlLmFub255bWl6ZShzb3VyY2Vhbm9ueW1pemVkdG9rZW4pCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBvcGVuYXBpX2NsaWVudC5BcGlFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBBZG1pbkFwaS0+YW5vbnltaXplOiAlc1xuIiAlIGUpCmBgYAoKIyMgRG9jdW1lbnRhdGlvbiBmb3IgQVBJIEVuZHBvaW50cwoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL3YyLm5hbXNvci5jb20vTmFtU29yQVBJdjIqCgpDbGFzcyB8IE1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqQWRtaW5BcGkqIHwgWyoqYW5vbnltaXplKipdKGRvY3MvYXBpcy90YWdzL0FkbWluQXBpLm1kI2Fub255bWl6ZSkgfCAqKmdldCoqIC9hcGkyL2pzb24vYW5vbnltaXplL3tzb3VyY2V9L3thbm9ueW1pemVkfS97dG9rZW59IHwgQWN0aXZhdGUvZGVhY3RpdmF0ZSBhbm9ueW1pemF0aW9uIGZvciBhIHNvdXJjZS4KKkFkbWluQXBpKiB8IFsqKmFub255bWl6ZTEqKl0oZG9jcy9hcGlzL3RhZ3MvQWRtaW5BcGkubWQjYW5vbnltaXplMSkgfCAqKmdldCoqIC9hcGkyL2pzb24vYW5vbnltaXplL3tzb3VyY2V9L3thbm9ueW1pemVkfSB8IEFjdGl2YXRlL2RlYWN0aXZhdGUgYW5vbnltaXphdGlvbiBmb3IgYSBzb3VyY2UuCipBZG1pbkFwaSogfCBbKiphcGlfa2V5X2luZm8qKl0oZG9jcy9hcGlzL3RhZ3MvQWRtaW5BcGkubWQjYXBpX2tleV9pbmZvKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9hcGlLZXlJbmZvIHwgUmVhZCBBUEkgS2V5IGluZm8uCipBZG1pbkFwaSogfCBbKiphcGlfc3RhdHVzKipdKGRvY3MvYXBpcy90YWdzL0FkbWluQXBpLm1kI2FwaV9zdGF0dXMpIHwgKipnZXQqKiAvYXBpMi9qc29uL2FwaVN0YXR1cyB8IFByaW50cyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGNsYXNzaWZpZXJzLiBBIGNsYXNzaWZpZXIgbmFtZSBpbiBhcGlTdGF0dXMgY29ycmVzcG9uZHMgdG8gYSBzZXJ2aWNlIG5hbWUgaW4gYXBpU2VydmljZXMuCipBZG1pbkFwaSogfCBbKiphcGlfdXNhZ2UqKl0oZG9jcy9hcGlzL3RhZ3MvQWRtaW5BcGkubWQjYXBpX3VzYWdlKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9hcGlVc2FnZSB8IFByaW50IGN1cnJlbnQgQVBJIHVzYWdlLgoqQWRtaW5BcGkqIHwgWyoqYXBpX3VzYWdlX2hpc3RvcnkqKl0oZG9jcy9hcGlzL3RhZ3MvQWRtaW5BcGkubWQjYXBpX3VzYWdlX2hpc3RvcnkpIHwgKipnZXQqKiAvYXBpMi9qc29uL2FwaVVzYWdlSGlzdG9yeSB8IFByaW50IGhpc3RvcmljYWwgQVBJIHVzYWdlLgoqQWRtaW5BcGkqIHwgWyoqYXBpX3VzYWdlX2hpc3RvcnlfYWdncmVnYXRlKipdKGRvY3MvYXBpcy90YWdzL0FkbWluQXBpLm1kI2FwaV91c2FnZV9oaXN0b3J5X2FnZ3JlZ2F0ZSkgfCAqKmdldCoqIC9hcGkyL2pzb24vYXBpVXNhZ2VIaXN0b3J5QWdncmVnYXRlIHwgUHJpbnQgaGlzdG9yaWNhbCBBUEkgdXNhZ2UgKGluIGFuIGFnZ3JlZ2F0ZWQgdmlldywgYnkgc2VydmljZSwgYnkgZGF5L2hvdXIvbWluKS4KKkFkbWluQXBpKiB8IFsqKmF2YWlsYWJsZV9zZXJ2aWNlcyoqXShkb2NzL2FwaXMvdGFncy9BZG1pbkFwaS5tZCNhdmFpbGFibGVfc2VydmljZXMpIHwgKipnZXQqKiAvYXBpMi9qc29uL2FwaVNlcnZpY2VzIHwgTGlzdCBvZiBjbGFzc2lmaWNhdGlvbiBzZXJ2aWNlcyBhbmQgdXNhZ2UgY29zdCBpbiBVbml0cyBwZXIgY2xhc3NpZmljYXRpb24gKGRlZmF1bHQgaXMgMSYjeDNEO09ORSBVbml0KS4gU29tZSBBUEkgZW5kcG9pbnRzIChleC4gQ29ycmlkb3IpIGNvbWJpbmUgbXVsdGlwbGUgY2xhc3NpZmllcnMuCipBZG1pbkFwaSogfCBbKipkaXNhYmxlKipdKGRvY3MvYXBpcy90YWdzL0FkbWluQXBpLm1kI2Rpc2FibGUpIHwgKipnZXQqKiAvYXBpMi9qc29uL2Rpc2FibGUve3NvdXJjZX0ve2Rpc2FibGVkfSB8IEFjdGl2YXRlL2RlYWN0aXZhdGUgYW4gQVBJIEtleS4KKkFkbWluQXBpKiB8IFsqKmxlYXJuYWJsZSoqXShkb2NzL2FwaXMvdGFncy9BZG1pbkFwaS5tZCNsZWFybmFibGUpIHwgKipnZXQqKiAvYXBpMi9qc29uL2xlYXJuYWJsZS97c291cmNlfS97bGVhcm5hYmxlfS97dG9rZW59IHwgQWN0aXZhdGUvZGVhY3RpdmF0ZSBsZWFybmluZyBmcm9tIGEgc291cmNlLgoqQWRtaW5BcGkqIHwgWyoqbGVhcm5hYmxlMSoqXShkb2NzL2FwaXMvdGFncy9BZG1pbkFwaS5tZCNsZWFybmFibGUxKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9sZWFybmFibGUve3NvdXJjZX0ve2xlYXJuYWJsZX0gfCBBY3RpdmF0ZS9kZWFjdGl2YXRlIGxlYXJuaW5nIGZyb20gYSBzb3VyY2UuCipBZG1pbkFwaSogfCBbKipyZWdpb25zKipdKGRvY3MvYXBpcy90YWdzL0FkbWluQXBpLm1kI3JlZ2lvbnMpIHwgKipnZXQqKiAvYXBpMi9qc29uL3JlZ2lvbnMgfCBQcmludCBiYXNpYyBzb3VyY2Ugc3RhdGlzdGljcy4KKkFkbWluQXBpKiB8IFsqKnNvZnR3YXJlX3ZlcnNpb24qKl0oZG9jcy9hcGlzL3RhZ3MvQWRtaW5BcGkubWQjc29mdHdhcmVfdmVyc2lvbikgfCAqKmdldCoqIC9hcGkyL2pzb24vc29mdHdhcmVWZXJzaW9uIHwgR2V0IHRoZSBjdXJyZW50IHNvZnR3YXJlIHZlcnNpb24KKkFkbWluQXBpKiB8IFsqKnRheG9ub215X2NsYXNzZXMqKl0oZG9jcy9hcGlzL3RhZ3MvQWRtaW5BcGkubWQjdGF4b25vbXlfY2xhc3NlcykgfCAqKmdldCoqIC9hcGkyL2pzb24vdGF4b25vbXlDbGFzc2VzL3tjbGFzc2lmaWVyTmFtZX0gfCBQcmludCB0aGUgdGF4b25vbXkgY2xhc3NlcyB2YWxpZCBmb3IgdGhlIGdpdmVuIGNsYXNzaWZpZXIuCipDaGluZXNlQXBpKiB8IFsqKmNoaW5lc2VfbmFtZV9jYW5kaWRhdGVzKipdKGRvY3MvYXBpcy90YWdzL0NoaW5lc2VBcGkubWQjY2hpbmVzZV9uYW1lX2NhbmRpZGF0ZXMpIHwgKipnZXQqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlcy97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0gfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBXYW5nIFhpYW9taW5nCipDaGluZXNlQXBpKiB8IFsqKmNoaW5lc2VfbmFtZV9jYW5kaWRhdGVzX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0NoaW5lc2VBcGkubWQjY2hpbmVzZV9uYW1lX2NhbmRpZGF0ZXNfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9jaGluZXNlTmFtZUNhbmRpZGF0ZXNCYXRjaCB8IElkZW50aWZ5IENoaW5lc2UgbmFtZSBjYW5kaWRhdGVzLCBiYXNlZCBvbiB0aGUgcm9tYW5pemVkIG5hbWUgKGZpcnN0TmFtZSAmI3gzRDsgY2hpbmVzZUdpdmVuTmFtZTsgbGFzdE5hbWUmI3gzRDtjaGluZXNlU3VybmFtZSksIGV4LiBXYW5nIFhpYW9taW5nCipDaGluZXNlQXBpKiB8IFsqKmNoaW5lc2VfbmFtZV9jYW5kaWRhdGVzX2dlbmRlcl9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9DaGluZXNlQXBpLm1kI2NoaW5lc2VfbmFtZV9jYW5kaWRhdGVzX2dlbmRlcl9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlc0dlbmRlckJhdGNoIHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSAoZmlyc3ROYW1lICYjeDNEOyBjaGluZXNlR2l2ZW5OYW1lOyBsYXN0TmFtZSYjeDNEO2NoaW5lc2VTdXJuYW1lKSBleC4gV2FuZyBYaWFvbWluZy4KKkNoaW5lc2VBcGkqIHwgWyoqY2hpbmVzZV9uYW1lX2dlbmRlcl9jYW5kaWRhdGVzKipdKGRvY3MvYXBpcy90YWdzL0NoaW5lc2VBcGkubWQjY2hpbmVzZV9uYW1lX2dlbmRlcl9jYW5kaWRhdGVzKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9jaGluZXNlTmFtZUdlbmRlckNhbmRpZGF0ZXMve2NoaW5lc2VTdXJuYW1lTGF0aW59L3tjaGluZXNlR2l2ZW5OYW1lTGF0aW59L3trbm93bkdlbmRlcn0gfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBXYW5nIFhpYW9taW5nIC0gaGF2aW5nIGEga25vd24gZ2VuZGVyICgmI3gyNzttYWxlJiN4Mjc7IG9yICYjeDI3O2ZlbWFsZSYjeDI3OykKKkNoaW5lc2VBcGkqIHwgWyoqY2hpbmVzZV9uYW1lX21hdGNoKipdKGRvY3MvYXBpcy90YWdzL0NoaW5lc2VBcGkubWQjY2hpbmVzZV9uYW1lX21hdGNoKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9jaGluZXNlTmFtZU1hdGNoL3tjaGluZXNlU3VybmFtZUxhdGlufS97Y2hpbmVzZUdpdmVuTmFtZUxhdGlufS97Y2hpbmVzZU5hbWV9IHwgUmV0dXJuIGEgc2NvcmUgZm9yIG1hdGNoaW5nIENoaW5lc2UgbmFtZSBleC4g546L5pmT5piOIHdpdGggYSByb21hbml6ZWQgbmFtZSBleC4gV2FuZyBYaWFvbWluZwoqQ2hpbmVzZUFwaSogfCBbKipjaGluZXNlX25hbWVfbWF0Y2hfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvQ2hpbmVzZUFwaS5tZCNjaGluZXNlX25hbWVfbWF0Y2hfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9jaGluZXNlTmFtZU1hdGNoQmF0Y2ggfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGNoaW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lJiN4M0Q7Y2hpbmVzZVN1cm5hbWUpLCBleC4gV2FuZyBYaWFvbWluZwoqQ2hpbmVzZUFwaSogfCBbKipnZW5kZXJfY2hpbmVzZV9uYW1lKipdKGRvY3MvYXBpcy90YWdzL0NoaW5lc2VBcGkubWQjZ2VuZGVyX2NoaW5lc2VfbmFtZSkgfCAqKmdldCoqIC9hcGkyL2pzb24vZ2VuZGVyQ2hpbmVzZU5hbWUve2NoaW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgQ2hpbmVzZSBmdWxsIG5hbWUgZXguIOeOi+aZk+aYjgoqQ2hpbmVzZUFwaSogfCBbKipnZW5kZXJfY2hpbmVzZV9uYW1lX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0NoaW5lc2VBcGkubWQjZ2VuZGVyX2NoaW5lc2VfbmFtZV9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL2dlbmRlckNoaW5lc2VOYW1lQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgZnVsbCBuYW1lcyBleC4g546L5pmT5piOCipDaGluZXNlQXBpKiB8IFsqKmdlbmRlcl9jaGluZXNlX25hbWVfcGlueWluKipdKGRvY3MvYXBpcy90YWdzL0NoaW5lc2VBcGkubWQjZ2VuZGVyX2NoaW5lc2VfbmFtZV9waW55aW4pIHwgKipnZXQqKiAvYXBpMi9qc29uL2dlbmRlckNoaW5lc2VOYW1lUGlueWluL3tjaGluZXNlU3VybmFtZUxhdGlufS97Y2hpbmVzZUdpdmVuTmFtZUxhdGlufSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgQ2hpbmVzZSBuYW1lIGluIExBVElOIChQaW55aW4pLgoqQ2hpbmVzZUFwaSogfCBbKipnZW5kZXJfY2hpbmVzZV9uYW1lX3Bpbnlpbl9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9DaGluZXNlQXBpLm1kI2dlbmRlcl9jaGluZXNlX25hbWVfcGlueWluX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vZ2VuZGVyQ2hpbmVzZU5hbWVQaW55aW5CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBDaGluZXNlIG5hbWVzIGluIExBVElOIChQaW55aW4pLgoqQ2hpbmVzZUFwaSogfCBbKipwYXJzZV9jaGluZXNlX25hbWUqKl0oZG9jcy9hcGlzL3RhZ3MvQ2hpbmVzZUFwaS5tZCNwYXJzZV9jaGluZXNlX25hbWUpIHwgKipnZXQqKiAvYXBpMi9qc29uL3BhcnNlQ2hpbmVzZU5hbWUve2NoaW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDnjovmmZPmmI4gLSZndDsg546LKHN1cm5hbWUpIOaZk+aYjihnaXZlbiBuYW1lKQoqQ2hpbmVzZUFwaSogfCBbKipwYXJzZV9jaGluZXNlX25hbWVfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvQ2hpbmVzZUFwaS5tZCNwYXJzZV9jaGluZXNlX25hbWVfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9wYXJzZUNoaW5lc2VOYW1lQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4g546L5pmT5piOIC0mZ3Q7IOeOiyhzdXJuYW1lKSDmmZPmmI4oZ2l2ZW4gbmFtZSkuCipDaGluZXNlQXBpKiB8IFsqKnBpbnlpbl9jaGluZXNlX25hbWUqKl0oZG9jcy9hcGlzL3RhZ3MvQ2hpbmVzZUFwaS5tZCNwaW55aW5fY2hpbmVzZV9uYW1lKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9waW55aW5DaGluZXNlTmFtZS97Y2hpbmVzZU5hbWV9IHwgUm9tYW5pemUgdGhlIENoaW5lc2UgbmFtZSB0byBQaW55aW4sIGV4LiDnjovmmZPmmI4gLSZndDsgV2FuZyAoc3VybmFtZSkgWGlhb21pbmcgKGdpdmVuIG5hbWUpCipDaGluZXNlQXBpKiB8IFsqKnBpbnlpbl9jaGluZXNlX25hbWVfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvQ2hpbmVzZUFwaS5tZCNwaW55aW5fY2hpbmVzZV9uYW1lX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vcGlueWluQ2hpbmVzZU5hbWVCYXRjaCB8IFJvbWFuaXplIGEgbGlzdCBvZiBDaGluZXNlIG5hbWUgdG8gUGlueWluLCBleC4g546L5pmT5piOIC0mZ3Q7IFdhbmcgKHN1cm5hbWUpIFhpYW9taW5nIChnaXZlbiBuYW1lKS4KKkdlbmVyYWxBcGkqIHwgWyoqbmFtZV90eXBlKipdKGRvY3MvYXBpcy90YWdzL0dlbmVyYWxBcGkubWQjbmFtZV90eXBlKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9uYW1lVHlwZS97cHJvcGVyTm91bn0gfCBJbmZlciB0aGUgbGlrZWx5IHR5cGUgb2YgYSBwcm9wZXIgbm91biAocGVyc29uYWwgbmFtZSwgYnJhbmQgbmFtZSwgcGxhY2UgbmFtZSBldGMuKQoqR2VuZXJhbEFwaSogfCBbKipuYW1lX3R5cGVfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvR2VuZXJhbEFwaS5tZCNuYW1lX3R5cGVfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9uYW1lVHlwZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBjb21tb24gdHlwZSBvZiB1cCB0byAxMDAgcHJvcGVyIG5vdW5zIChwZXJzb25hbCBuYW1lLCBicmFuZCBuYW1lLCBwbGFjZSBuYW1lIGV0Yy4pCipHZW5lcmFsQXBpKiB8IFsqKm5hbWVfdHlwZV9nZW8qKl0oZG9jcy9hcGlzL3RhZ3MvR2VuZXJhbEFwaS5tZCNuYW1lX3R5cGVfZ2VvKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9uYW1lVHlwZUdlby97cHJvcGVyTm91bn0ve2NvdW50cnlJc28yfSB8IEluZmVyIHRoZSBsaWtlbHkgdHlwZSBvZiBhIHByb3BlciBub3VuIChwZXJzb25hbCBuYW1lLCBicmFuZCBuYW1lLCBwbGFjZSBuYW1lIGV0Yy4pCipHZW5lcmFsQXBpKiB8IFsqKm5hbWVfdHlwZV9nZW9fYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvR2VuZXJhbEFwaS5tZCNuYW1lX3R5cGVfZ2VvX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vbmFtZVR5cGVHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgY29tbW9uIHR5cGUgb2YgdXAgdG8gMTAwIHByb3BlciBub3VucyAocGVyc29uYWwgbmFtZSwgYnJhbmQgbmFtZSwgcGxhY2UgbmFtZSBldGMuKQoqSW5kaWFuQXBpKiB8IFsqKmNhc3RlX2luZGlhbl9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9JbmRpYW5BcGkubWQjY2FzdGVfaW5kaWFuX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vY2FzdGVJbmRpYW5CYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IEluZGlhbiBuYW1lIGNhc3RlIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBJbmRpYW4gSGluZHUgbmFtZXMuIAoqSW5kaWFuQXBpKiB8IFsqKmNhc3RlZ3JvdXBfaW5kaWFuKipdKGRvY3MvYXBpcy90YWdzL0luZGlhbkFwaS5tZCNjYXN0ZWdyb3VwX2luZGlhbikgfCAqKmdldCoqIC9hcGkyL2pzb24vY2FzdGVncm91cEluZGlhbi97c3ViRGl2aXNpb25Jc28zMTY2Mn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IEluZGlhbiBuYW1lIGNhc3RlZ3JvdXAgb2YgYSBmaXJzdCAvIGxhc3QgbmFtZS4KKkluZGlhbkFwaSogfCBbKipjYXN0ZWdyb3VwX2luZGlhbl9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9JbmRpYW5BcGkubWQjY2FzdGVncm91cF9pbmRpYW5fYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9jYXN0ZWdyb3VwSW5kaWFuQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gbmFtZSBjYXN0ZWdyb3VwIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBmaXJzdCAvIGxhc3QgbmFtZXMuIAoqSW5kaWFuQXBpKiB8IFsqKmNhc3RlZ3JvdXBfaW5kaWFuX2Z1bGwqKl0oZG9jcy9hcGlzL3RhZ3MvSW5kaWFuQXBpLm1kI2Nhc3RlZ3JvdXBfaW5kaWFuX2Z1bGwpIHwgKipnZXQqKiAvYXBpMi9qc29uL2Nhc3RlZ3JvdXBJbmRpYW5GdWxsL3tzdWJEaXZpc2lvbklzbzMxNjYyfS97cGVyc29uYWxOYW1lRnVsbH0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gbmFtZSBjYXN0ZWdyb3VwIG9mIGEgcGVyc29uYWwgZnVsbCBuYW1lLgoqSW5kaWFuQXBpKiB8IFsqKmNhc3RlZ3JvdXBfaW5kaWFuX2Z1bGxfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvSW5kaWFuQXBpLm1kI2Nhc3RlZ3JvdXBfaW5kaWFuX2Z1bGxfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9jYXN0ZWdyb3VwSW5kaWFuRnVsbEJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgSW5kaWFuIG5hbWUgY2FzdGVncm91cCBvZiB1cCB0byAxMDAgcGVyc29uYWwgZnVsbCBuYW1lcy4gCipJbmRpYW5BcGkqIHwgWyoqY2FzdGVncm91cF9pbmRpYW5faGluZHUqKl0oZG9jcy9hcGlzL3RhZ3MvSW5kaWFuQXBpLm1kI2Nhc3RlZ3JvdXBfaW5kaWFuX2hpbmR1KSB8ICoqZ2V0KiogL2FwaTIvanNvbi9jYXN0ZUluZGlhbi97c3ViRGl2aXNpb25Jc28zMTY2Mn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IEluZGlhbiBuYW1lIGNhc3RlIG9mIGEgcGVyc29uYWwgSGluZHUgbmFtZS4KKkluZGlhbkFwaSogfCBbKipyZWxpZ2lvbioqXShkb2NzL2FwaXMvdGFncy9JbmRpYW5BcGkubWQjcmVsaWdpb24pIHwgKipnZXQqKiAvYXBpMi9qc29uL3JlbGlnaW9uSW5kaWFuRnVsbC97c3ViRGl2aXNpb25Jc28zMTY2Mn0ve3BlcnNvbmFsTmFtZUZ1bGx9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgcmVsaWdpb24gb2YgYSBwZXJzb25hbCBJbmRpYW4gZnVsbCBuYW1lLCBwcm92aWRlZCB0aGUgSW5kaWFuIHN0YXRlIG9yIFVuaW9uIHRlcnJpdG9yeSAoTkIvIHRoaXMgY2FuIGJlIGluZmVycmVkIHVzaW5nIHRoZSBzdWJjbGFzc2lmaWNhdGlvbiBlbmRwb2ludCkuCipJbmRpYW5BcGkqIHwgWyoqcmVsaWdpb24xKipdKGRvY3MvYXBpcy90YWdzL0luZGlhbkFwaS5tZCNyZWxpZ2lvbjEpIHwgKipnZXQqKiAvYXBpMi9qc29uL3JlbGlnaW9uSW5kaWFuL3tzdWJEaXZpc2lvbklzbzMxNjYyfS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgcmVsaWdpb24gb2YgYSBwZXJzb25hbCBJbmRpYW4gZmlyc3QvbGFzdCBuYW1lLCBwcm92aWRlZCB0aGUgSW5kaWFuIHN0YXRlIG9yIFVuaW9uIHRlcnJpdG9yeSAoTkIvIHRoaXMgY2FuIGJlIGluZmVycmVkIHVzaW5nIHRoZSBzdWJjbGFzc2lmaWNhdGlvbiBlbmRwb2ludCkuCipJbmRpYW5BcGkqIHwgWyoqcmVsaWdpb25faW5kaWFuX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0luZGlhbkFwaS5tZCNyZWxpZ2lvbl9pbmRpYW5fYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9yZWxpZ2lvbkluZGlhbkJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgcmVsaWdpb24gb2YgdXAgdG8gMTAwIHBlcnNvbmFsIGZpcnN0L2xhc3QgSW5kaWFuIG5hbWVzLCBwcm92aWRlZCB0aGUgc3ViY2xhc3NpZmljYXRpb24gYXQgU3RhdGUgb3IgVW5pb24gdGVycml0b3J5IGxldmVsIChOQi8gY2FuIGJlIGluZmVycmVkIHVzaW5nIHRoZSBzdWJjbGFzc2lmaWNhdGlvbiBlbmRwb2ludCkuCipJbmRpYW5BcGkqIHwgWyoqcmVsaWdpb25faW5kaWFuX2Z1bGxfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvSW5kaWFuQXBpLm1kI3JlbGlnaW9uX2luZGlhbl9mdWxsX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vcmVsaWdpb25JbmRpYW5GdWxsQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSByZWxpZ2lvbiBvZiB1cCB0byAxMDAgcGVyc29uYWwgZnVsbCBJbmRpYW4gbmFtZXMsIHByb3ZpZGVkIHRoZSBzdWJjbGFzc2lmaWNhdGlvbiBhdCBTdGF0ZSBvciBVbmlvbiB0ZXJyaXRvcnkgbGV2ZWwgKE5CLyBjYW4gYmUgaW5mZXJyZWQgdXNpbmcgdGhlIHN1YmNsYXNzaWZpY2F0aW9uIGVuZHBvaW50KS4KKkluZGlhbkFwaSogfCBbKipzdWJjbGFzc2lmaWNhdGlvbl9pbmRpYW4qKl0oZG9jcy9hcGlzL3RhZ3MvSW5kaWFuQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uX2luZGlhbikgfCAqKmdldCoqIC9hcGkyL2pzb24vc3ViY2xhc3NpZmljYXRpb25JbmRpYW4ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IEluZGlhbiBzdGF0ZSBvZiBVbmlvbiB0ZXJyaXRvcnkgYWNjb3JkaW5nIHRvIElTTyAzMTY2LTI6SU4gYmFzZWQgb24gdGhlIG5hbWUuCipJbmRpYW5BcGkqIHwgWyoqc3ViY2xhc3NpZmljYXRpb25faW5kaWFuX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0luZGlhbkFwaS5tZCNzdWJjbGFzc2lmaWNhdGlvbl9pbmRpYW5fYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9zdWJjbGFzc2lmaWNhdGlvbkluZGlhbkJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgSW5kaWFuIHN0YXRlIG9mIFVuaW9uIHRlcnJpdG9yeSBhY2NvcmRpbmcgdG8gSVNPIDMxNjYtMjpJTiBiYXNlZCBvbiBhIGxpc3Qgb2YgdXAgdG8gMTAwIG5hbWVzLgoqSW5kaWFuQXBpKiB8IFsqKnN1YmNsYXNzaWZpY2F0aW9uX2luZGlhbl9mdWxsKipdKGRvY3MvYXBpcy90YWdzL0luZGlhbkFwaS5tZCNzdWJjbGFzc2lmaWNhdGlvbl9pbmRpYW5fZnVsbCkgfCAqKmdldCoqIC9hcGkyL2pzb24vc3ViY2xhc3NpZmljYXRpb25JbmRpYW5GdWxsL3tmdWxsTmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gc3RhdGUgb2YgVW5pb24gdGVycml0b3J5IGFjY29yZGluZyB0byBJU08gMzE2Ni0yOklOIGJhc2VkIG9uIHRoZSBuYW1lLgoqSW5kaWFuQXBpKiB8IFsqKnN1YmNsYXNzaWZpY2F0aW9uX2luZGlhbl9mdWxsX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0luZGlhbkFwaS5tZCNzdWJjbGFzc2lmaWNhdGlvbl9pbmRpYW5fZnVsbF9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL3N1YmNsYXNzaWZpY2F0aW9uSW5kaWFuRnVsbEJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgSW5kaWFuIHN0YXRlIG9mIFVuaW9uIHRlcnJpdG9yeSBhY2NvcmRpbmcgdG8gSVNPIDMxNjYtMjpJTiBiYXNlZCBvbiBhIGxpc3Qgb2YgdXAgdG8gMTAwIG5hbWVzLgoqSmFwYW5lc2VBcGkqIHwgWyoqZ2VuZGVyX2phcGFuZXNlX25hbWVfZnVsbCoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNnZW5kZXJfamFwYW5lc2VfbmFtZV9mdWxsKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9nZW5kZXJKYXBhbmVzZU5hbWVGdWxsL3tqYXBhbmVzZU5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBKYXBhbmVzZSBmdWxsIG5hbWUgZXguIOeOi+aZk+aYjgoqSmFwYW5lc2VBcGkqIHwgWyoqZ2VuZGVyX2phcGFuZXNlX25hbWVfZnVsbF9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNnZW5kZXJfamFwYW5lc2VfbmFtZV9mdWxsX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vZ2VuZGVySmFwYW5lc2VOYW1lRnVsbEJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIGZ1bGwgbmFtZXMKKkphcGFuZXNlQXBpKiB8IFsqKmdlbmRlcl9qYXBhbmVzZV9uYW1lX3BpbnlpbioqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNnZW5kZXJfamFwYW5lc2VfbmFtZV9waW55aW4pIHwgKipnZXQqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZS97amFwYW5lc2VTdXJuYW1lfS97amFwYW5lc2VHaXZlbk5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBKYXBhbmVzZSBuYW1lIGluIExBVElOIChQaW55aW4pLgoqSmFwYW5lc2VBcGkqIHwgWyoqZ2VuZGVyX2phcGFuZXNlX25hbWVfcGlueWluX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0phcGFuZXNlQXBpLm1kI2dlbmRlcl9qYXBhbmVzZV9uYW1lX3Bpbnlpbl9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIEphcGFuZXNlIG5hbWVzIGluIExBVElOIChQaW55aW4pLgoqSmFwYW5lc2VBcGkqIHwgWyoqamFwYW5lc2VfbmFtZV9nZW5kZXJfa2FuamlfY2FuZGlkYXRlc19iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZV9uYW1lX2dlbmRlcl9rYW5qaV9jYW5kaWRhdGVzX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lR2VuZGVyS2FuamlDYW5kaWRhdGVzQmF0Y2ggfCBJZGVudGlmeSBqYXBhbmVzZSBuYW1lIGNhbmRpZGF0ZXMgaW4gS0FOSkksIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSAoZmlyc3ROYW1lICYjeDNEOyBqYXBhbmVzZUdpdmVuTmFtZTsgbGFzdE5hbWUmI3gzRDtqYXBhbmVzZVN1cm5hbWUpIHdpdGggS05PV04gZ2VuZGVyLCBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKmphcGFuZXNlX25hbWVfa2FuamlfY2FuZGlkYXRlcyoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZV9uYW1lX2thbmppX2NhbmRpZGF0ZXMpIHwgKipnZXQqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlcy97amFwYW5lc2VTdXJuYW1lTGF0aW59L3tqYXBhbmVzZUdpdmVuTmFtZUxhdGlufSB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBZYW1hbW90byBTYW5hZQoqSmFwYW5lc2VBcGkqIHwgWyoqamFwYW5lc2VfbmFtZV9rYW5qaV9jYW5kaWRhdGVzMSoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZV9uYW1lX2thbmppX2NhbmRpZGF0ZXMxKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXMve2phcGFuZXNlU3VybmFtZUxhdGlufS97amFwYW5lc2VHaXZlbk5hbWVMYXRpbn0ve2tub3duR2VuZGVyfSB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBZYW1hbW90byBTYW5hZSAtIGFuZCBhIGtub3duIGdlbmRlci4KKkphcGFuZXNlQXBpKiB8IFsqKmphcGFuZXNlX25hbWVfa2FuamlfY2FuZGlkYXRlc19iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZV9uYW1lX2thbmppX2NhbmRpZGF0ZXNfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXNCYXRjaCB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGphcGFuZXNlR2l2ZW5OYW1lOyBsYXN0TmFtZSYjeDNEO2phcGFuZXNlU3VybmFtZSksIGV4LiBZYW1hbW90byBTYW5hZQoqSmFwYW5lc2VBcGkqIHwgWyoqamFwYW5lc2VfbmFtZV9sYXRpbl9jYW5kaWRhdGVzKipdKGRvY3MvYXBpcy90YWdzL0phcGFuZXNlQXBpLm1kI2phcGFuZXNlX25hbWVfbGF0aW5fY2FuZGlkYXRlcykgfCAqKmdldCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lTGF0aW5DYW5kaWRhdGVzL3tqYXBhbmVzZVN1cm5hbWVLYW5qaX0ve2phcGFuZXNlR2l2ZW5OYW1lS2Fuaml9IHwgUm9tYW5pemUgamFwYW5lc2UgbmFtZSwgYmFzZWQgb24gdGhlIG5hbWUgaW4gS2FuamkuCipKYXBhbmVzZUFwaSogfCBbKipqYXBhbmVzZV9uYW1lX2xhdGluX2NhbmRpZGF0ZXNfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VfbmFtZV9sYXRpbl9jYW5kaWRhdGVzX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lTGF0aW5DYW5kaWRhdGVzQmF0Y2ggfCBSb21hbml6ZSBqYXBhbmVzZSBuYW1lcywgYmFzZWQgb24gdGhlIG5hbWUgaW4gS0FOSkkKKkphcGFuZXNlQXBpKiB8IFsqKmphcGFuZXNlX25hbWVfbWF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VfbmFtZV9tYXRjaCkgfCAqKmdldCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lTWF0Y2gve2phcGFuZXNlU3VybmFtZUxhdGlufS97amFwYW5lc2VHaXZlbk5hbWVMYXRpbn0ve2phcGFuZXNlTmFtZX0gfCBSZXR1cm4gYSBzY29yZSBmb3IgbWF0Y2hpbmcgSmFwYW5lc2UgbmFtZSBpbiBLQU5KSSBleC4g5bGx5pysIOaXqeiLlyB3aXRoIGEgcm9tYW5pemVkIG5hbWUgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipqYXBhbmVzZV9uYW1lX21hdGNoX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0phcGFuZXNlQXBpLm1kI2phcGFuZXNlX25hbWVfbWF0Y2hfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVNYXRjaEJhdGNoIHwgUmV0dXJuIGEgc2NvcmUgZm9yIG1hdGNoaW5nIGEgbGlzdCBvZiBKYXBhbmVzZSBuYW1lcyBpbiBLQU5KSSBleC4g5bGx5pysIOaXqeiLlyB3aXRoIHJvbWFuaXplZCBuYW1lcyBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKmphcGFuZXNlX25hbWVfbWF0Y2hfZmVlZGJhY2tfbG9vcCoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZV9uYW1lX21hdGNoX2ZlZWRiYWNrX2xvb3ApIHwgKipnZXQqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZU1hdGNoRmVlZGJhY2tMb29wL3tqYXBhbmVzZVN1cm5hbWVMYXRpbn0ve2phcGFuZXNlR2l2ZW5OYW1lTGF0aW59L3tqYXBhbmVzZU5hbWV9IHwgW0NSRURJVFMgMSBVTklUXSBGZWVkYmFjayBsb29wIHRvIGJldHRlciBwZXJmb3JtIG1hdGNoaW5nIEphcGFuZXNlIG5hbWUgaW4gS0FOSkkgZXguIOWxseacrCDml6noi5cgd2l0aCBhIHJvbWFuaXplZCBuYW1lIGV4LiBZYW1hbW90byBTYW5hZQoqSmFwYW5lc2VBcGkqIHwgWyoqcGFyc2VfamFwYW5lc2VfbmFtZSoqXShkb2NzL2FwaXMvdGFncy9KYXBhbmVzZUFwaS5tZCNwYXJzZV9qYXBhbmVzZV9uYW1lKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9wYXJzZUphcGFuZXNlTmFtZS97amFwYW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDlsbHmnKwg5pep6IuXIG9yIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipwYXJzZV9qYXBhbmVzZV9uYW1lX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL0phcGFuZXNlQXBpLm1kI3BhcnNlX2phcGFuZXNlX25hbWVfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9wYXJzZUphcGFuZXNlTmFtZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIOWxseacrCDml6noi5cgb3IgWWFtYW1vdG8gU2FuYWUgCipQZXJzb25hbEFwaSogfCBbKipjb3JyaWRvcioqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNjb3JyaWRvcikgfCAqKmdldCoqIC9hcGkyL2pzb24vY29ycmlkb3Ive2NvdW50cnlJc28yRnJvbX0ve2ZpcnN0TmFtZUZyb219L3tsYXN0TmFtZUZyb219L3tjb3VudHJ5SXNvMlRvfS97Zmlyc3ROYW1lVG99L3tsYXN0TmFtZVRvfSB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FIENPVVBMRV0gSW5mZXIgc2V2ZXJhbCBjbGFzc2lmaWNhdGlvbnMgZm9yIGEgY3Jvc3MgYm9yZGVyIGludGVyYWN0aW9uIGJldHdlZW4gbmFtZXMgKGV4LiByZW1pdCwgdHJhdmVsLCBpbnRsIGNvbSkKKlBlcnNvbmFsQXBpKiB8IFsqKmNvcnJpZG9yX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI2NvcnJpZG9yX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vY29ycmlkb3JCYXRjaCB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FIFBBSVJdIEluZmVyIHNldmVyYWwgY2xhc3NpZmljYXRpb25zIGZvciB1cCB0byAxMDAgY3Jvc3MgYm9yZGVyIGludGVyYWN0aW9uIGJldHdlZW4gbmFtZXMgKGV4LiByZW1pdCwgdHJhdmVsLCBpbnRsIGNvbSkKKlBlcnNvbmFsQXBpKiB8IFsqKmNvdW50cnkqKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjY291bnRyeSkgfCAqKmdldCoqIC9hcGkyL2pzb24vY291bnRyeS97cGVyc29uYWxOYW1lRnVsbH0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBvZiBhIHBlcnNvbmFsIGZ1bGwgbmFtZSwgb3Igb25lIHN1cm5hbWUuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2YgcmVzaWRlbmNlIE9SIHRoZSBjb3VudHJ5IG9mIG9yaWdpbi4KKlBlcnNvbmFsQXBpKiB8IFsqKmNvdW50cnlfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjY291bnRyeV9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL2NvdW50cnlCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2YgcmVzaWRlbmNlIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBmdWxsIG5hbWVzLCBvciBzdXJuYW1lcy4gQXNzdW1lcyBuYW1lcyBhcyB0aGV5IGFyZSBpbiB0aGUgY291bnRyeSBvZiByZXNpZGVuY2UgT1IgdGhlIGNvdW50cnkgb2Ygb3JpZ2luLgoqUGVyc29uYWxBcGkqIHwgWyoqZGlhc3BvcmEqKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjZGlhc3BvcmEpIHwgKipnZXQqKiAvYXBpMi9qc29uL2RpYXNwb3JhL3tjb3VudHJ5SXNvMn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSBvZiBhIHBlcnNvbmFsIG5hbWUsIGdpdmVuIGEgY291bnRyeSBvZiByZXNpZGVuY2UgSVNPMiBjb2RlIChleC4gVVMsIENBLCBBVSwgTlogZXRjLikKKlBlcnNvbmFsQXBpKiB8IFsqKmRpYXNwb3JhX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI2RpYXNwb3JhX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vZGlhc3BvcmFCYXRjaCB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIGdpdmVuIGEgY291bnRyeSBvZiByZXNpZGVuY2UgSVNPMiBjb2RlIChleC4gVVMsIENBLCBBVSwgTlogZXRjLikKKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcioqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNnZW5kZXIpIHwgKipnZXQqKiAvYXBpMi9qc29uL2dlbmRlci97Zmlyc3ROYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEganVzdCBhIGZpdmVuIG5hbWUsIGFzc3VtaW5nIGRlZmF1bHQgJiN4Mjc7VVMmI3gyNzsgbG9jYWwgY29udGV4dC4gUGxlYXNlIHVzZSBwcmVmZXJhYmx5IGZ1bGwgbmFtZXMgYW5kIGxvY2FsIGdlb2dyYXBoaWMgY29udGV4dCBmb3IgYmV0dGVyIGFjY3VyYWN5LgoqUGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyMSoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNnZW5kZXIxKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9nZW5kZXIve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgbmFtZS4KKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcl9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNnZW5kZXJfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9nZW5kZXJCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipQZXJzb25hbEFwaSogfCBbKipnZW5kZXJfZnVsbCoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNnZW5kZXJfZnVsbCkgfCAqKmdldCoqIC9hcGkyL2pzb24vZ2VuZGVyRnVsbC97ZnVsbE5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBmdWxsIG5hbWUsIGV4LiBKb2huIEguIFNtaXRoCipQZXJzb25hbEFwaSogfCBbKipnZW5kZXJfZnVsbF9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNnZW5kZXJfZnVsbF9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGxCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxsIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgY3VsdHVyYWwgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcl9mdWxsX2dlbyoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNnZW5kZXJfZnVsbF9nZW8pIHwgKipnZXQqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGxHZW8ve2Z1bGxOYW1lfS97Y291bnRyeUlzbzJ9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBmdWxsIG5hbWUsIGdpdmVuIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IGNvZGUpLgoqUGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyX2Z1bGxfZ2VvX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcl9mdWxsX2dlb19iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGxHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxsIG5hbWVzLCB3aXRoIGEgZ2l2ZW4gY3VsdHVyYWwgY29udGV4dCAoY291bnRyeSBJU08yIGNvZGUpLgoqUGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyX2dlbyoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNnZW5kZXJfZ2VvKSB8ICoqZ2V0KiogL2FwaTIvanNvbi9nZW5kZXJHZW8ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97Y291bnRyeUlzbzJ9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBuYW1lLCBnaXZlbiBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBjb2RlKS4KKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcl9nZW9fYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyX2dlb19iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL2dlbmRlckdlb0JhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIG5hbWVzLCBlYWNoIGdpdmVuIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IGNvZGUpLgoqUGVyc29uYWxBcGkqIHwgWyoqb3JpZ2luKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI29yaWdpbikgfCAqKmdldCoqIC9hcGkyL2pzb24vb3JpZ2luL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IG9mIG9yaWdpbiBvZiBhIHBlcnNvbmFsIG5hbWUuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2Ygb3JpZ2luLiBGb3IgVVMsIENBLCBBVSwgTlogYW5kIG90aGVyIG1lbHRpbmctcG90cyA6IHVzZSAmI3gyNztkaWFzcG9yYSYjeDI3OyBpbnN0ZWFkLgoqUGVyc29uYWxBcGkqIHwgWyoqb3JpZ2luX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI29yaWdpbl9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL29yaWdpbkJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBvZiBvcmlnaW4gb2YgdXAgdG8gMTAwIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgY3VsdHVyYWwgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKnBhcnNlX25hbWUqKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjcGFyc2VfbmFtZSkgfCAqKmdldCoqIC9hcGkyL2pzb24vcGFyc2VOYW1lL3tuYW1lRnVsbH0gfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gCipQZXJzb25hbEFwaSogfCBbKipwYXJzZV9uYW1lX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3BhcnNlX25hbWVfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9wYXJzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiBKb2huIFNtaXRoIG9yIFNNSVRILCBKb2huIG9yIFNNSVRIOyBKb2huLgoqUGVyc29uYWxBcGkqIHwgWyoqcGFyc2VfbmFtZV9nZW8qKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjcGFyc2VfbmFtZV9nZW8pIHwgKipnZXQqKiAvYXBpMi9qc29uL3BhcnNlTmFtZS97bmFtZUZ1bGx9L3tjb3VudHJ5SXNvMn0gfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gRm9yIGJldHRlciBhY2N1cmFjeSwgcHJvdmlkZSBhIGdlb2dyYXBoaWMgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKnBhcnNlX25hbWVfZ2VvX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3BhcnNlX25hbWVfZ2VvX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vcGFyc2VOYW1lR2VvQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gR2l2aW5nIGEgbG9jYWwgY29udGV4dCBpbXByb3ZlcyBwcmVjaXNpb24uIAoqUGVyc29uYWxBcGkqIHwgWyoqcmVsaWdpb24yKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3JlbGlnaW9uMikgfCAqKmdldCoqIC9hcGkyL2pzb24vcmVsaWdpb24ve2NvdW50cnlJc28yfS97c3ViRGl2aXNpb25Jc28zMTY2Mn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IHJlbGlnaW9uIG9mIGEgcGVyc29uYWwgZmlyc3QvbGFzdCBuYW1lLiBOQjogb25seSBmb3IgSU5ESUEgKGFzIG9mIGN1cnJlbnQgdmVyc2lvbikuCipQZXJzb25hbEFwaSogfCBbKipyZWxpZ2lvbl9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCNyZWxpZ2lvbl9iYXRjaCkgfCAqKnBvc3QqKiAvYXBpMi9qc29uL3JlbGlnaW9uQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSByZWxpZ2lvbiBvZiB1cCB0byAxMDAgcGVyc29uYWwgZmlyc3QvbGFzdCBuYW1lcy4gTkI6IG9ubHkgZm9yIEluZGlhIGFzIG9mIGN1cnJlbnRseS4KKlBlcnNvbmFsQXBpKiB8IFsqKnJlbGlnaW9uX2Z1bGwqKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjcmVsaWdpb25fZnVsbCkgfCAqKmdldCoqIC9hcGkyL2pzb24vcmVsaWdpb25GdWxsL3tjb3VudHJ5SXNvMn0ve3N1YkRpdmlzaW9uSXNvMzE2NjJ9L3twZXJzb25hbE5hbWVGdWxsfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IHJlbGlnaW9uIG9mIGEgcGVyc29uYWwgZnVsbCBuYW1lLiBOQjogb25seSBmb3IgSU5ESUEgKGFzIG9mIGN1cnJlbnQgdmVyc2lvbikuCipQZXJzb25hbEFwaSogfCBbKipyZWxpZ2lvbl9mdWxsX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3JlbGlnaW9uX2Z1bGxfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9yZWxpZ2lvbkZ1bGxCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IHJlbGlnaW9uIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBmdWxsIG5hbWVzLiBOQjogb25seSBmb3IgSW5kaWEgYXMgb2YgY3VycmVudGx5LgoqUGVyc29uYWxBcGkqIHwgWyoqc3ViY2xhc3NpZmljYXRpb24qKl0oZG9jcy9hcGlzL3RhZ3MvUGVyc29uYWxBcGkubWQjc3ViY2xhc3NpZmljYXRpb24pIHwgKipnZXQqKiAvYXBpMi9qc29uL3N1YmNsYXNzaWZpY2F0aW9uL3tjb3VudHJ5SXNvMn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IG9yaWdpbiBvZiBhIG5hbWUgYXQgYSBjb3VudHJ5IHN1YmNsYXNzaWZpY2F0aW9uIGxldmVsIChzdGF0ZSBvciByZWdlaW9uKS4gSW5pdGlhbGx5LCB0aGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBJbmRpYSAoSVNPMiBjb2RlICYjeDI3O0lOJiN4Mjc7KS4KKlBlcnNvbmFsQXBpKiB8IFsqKnN1YmNsYXNzaWZpY2F0aW9uX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uX2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vc3ViY2xhc3NpZmljYXRpb25CYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IG9yaWdpbiBvZiBhIGxpc3Qgb2YgdXAgdG8gMTAwIG5hbWVzIGF0IGEgY291bnRyeSBzdWJjbGFzc2lmaWNhdGlvbiBsZXZlbCAoc3RhdGUgb3IgcmVnZWlvbikuIEluaXRpYWxseSwgdGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgSW5kaWEgKElTTzIgY29kZSAmI3gyNztJTiYjeDI3OykuCipQZXJzb25hbEFwaSogfCBbKipzdWJjbGFzc2lmaWNhdGlvbl9mdWxsKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uX2Z1bGwpIHwgKipnZXQqKiAvYXBpMi9qc29uL3N1YmNsYXNzaWZpY2F0aW9uRnVsbC97Y291bnRyeUlzbzJ9L3tmdWxsTmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBvcmlnaW4gb2YgYSBuYW1lIGF0IGEgY291bnRyeSBzdWJjbGFzc2lmaWNhdGlvbiBsZXZlbCAoc3RhdGUgb3IgcmVnZWlvbikuIEluaXRpYWxseSwgdGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgSW5kaWEgKElTTzIgY29kZSAmI3gyNztJTiYjeDI3OykuCipQZXJzb25hbEFwaSogfCBbKipzdWJjbGFzc2lmaWNhdGlvbl9mdWxsX2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uX2Z1bGxfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9zdWJjbGFzc2lmaWNhdGlvbkZ1bGxCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IG9yaWdpbiBvZiBhIGxpc3Qgb2YgdXAgdG8gMTAwIG5hbWVzIGF0IGEgY291bnRyeSBzdWJjbGFzc2lmaWNhdGlvbiBsZXZlbCAoc3RhdGUgb3IgcmVnZWlvbikuIEluaXRpYWxseSwgdGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgSW5kaWEgKElTTzIgY29kZSAmI3gyNztJTiYjeDI3OykuCipQZXJzb25hbEFwaSogfCBbKip1c19yYWNlX2V0aG5pY2l0eSoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCN1c19yYWNlX2V0aG5pY2l0eSkgfCAqKmdldCoqIC9hcGkyL2pzb24vdXNSYWNlRXRobmljaXR5L3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgYSBVUyByZXNpZGVudCYjeDI3O3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXkgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuIE9wdGlvbmFsbHkgYWRkIGhlYWRlciBYLU9QVElPTi1VU1JBQ0VFVEhOSUNJVFktVEFYT05PTVk6IFVTUkFDRUVUSE5JQ0lUWS02Q0xBU1NFUyBmb3IgdHdvIGFkZGl0aW9uYWwgY2xhc3NlcywgQUlfQU4gKEFtZXJpY2FuIEluZGlhbiBvciBBbGFza2FuIE5hdGl2ZSkgYW5kIFBJIChQYWNpZmljIElzbGFuZGVyKS4KKlBlcnNvbmFsQXBpKiB8IFsqKnVzX3JhY2VfZXRobmljaXR5X2JhdGNoKipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3VzX3JhY2VfZXRobmljaXR5X2JhdGNoKSB8ICoqcG9zdCoqIC9hcGkyL2pzb24vdXNSYWNlRXRobmljaXR5QmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdXAtdG8gMTAwIFVTIHJlc2lkZW50JiN4Mjc7cyBsaWtlbHkgcmFjZS9ldGhuaWNpdHkgYWNjb3JkaW5nIHRvIFVTIENlbnN1cyB0YXhvbm9teS4gT3V0cHV0IGlzIFdfTkwgKHdoaXRlLCBub24gbGF0aW5vKSwgSEwgKGhpc3Bhbm8gbGF0aW5vKSwgIEEgKGFzaWFuLCBub24gbGF0aW5vKSwgQl9OTCAoYmxhY2ssIG5vbiBsYXRpbm8pLiBPcHRpb25hbGx5IGFkZCBoZWFkZXIgWC1PUFRJT04tVVNSQUNFRVRITklDSVRZLVRBWE9OT01ZOiBVU1JBQ0VFVEhOSUNJVFktNkNMQVNTRVMgZm9yIHR3byBhZGRpdGlvbmFsIGNsYXNzZXMsIEFJX0FOIChBbWVyaWNhbiBJbmRpYW4gb3IgQWxhc2thbiBOYXRpdmUpIGFuZCBQSSAoUGFjaWZpYyBJc2xhbmRlcikuCipQZXJzb25hbEFwaSogfCBbKip1c19yYWNlX2V0aG5pY2l0eV96aXA1KipdKGRvY3MvYXBpcy90YWdzL1BlcnNvbmFsQXBpLm1kI3VzX3JhY2VfZXRobmljaXR5X3ppcDUpIHwgKipnZXQqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eVpJUDUve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97emlwNUNvZGV9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIGEgVVMgcmVzaWRlbnQmI3gyNztzIGxpa2VseSByYWNlL2V0aG5pY2l0eSBhY2NvcmRpbmcgdG8gVVMgQ2Vuc3VzIHRheG9ub215LCB1c2luZyAob3B0aW9uYWwpIFpJUDUgY29kZSBpbmZvLiBPdXRwdXQgaXMgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuIE9wdGlvbmFsbHkgYWRkIGhlYWRlciBYLU9QVElPTi1VU1JBQ0VFVEhOSUNJVFktVEFYT05PTVk6IFVTUkFDRUVUSE5JQ0lUWS02Q0xBU1NFUyBmb3IgdHdvIGFkZGl0aW9uYWwgY2xhc3NlcywgQUlfQU4gKEFtZXJpY2FuIEluZGlhbiBvciBBbGFza2FuIE5hdGl2ZSkgYW5kIFBJIChQYWNpZmljIElzbGFuZGVyKS4KKlBlcnNvbmFsQXBpKiB8IFsqKnVzX3ppcF9yYWNlX2V0aG5pY2l0eV9iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9QZXJzb25hbEFwaS5tZCN1c196aXBfcmFjZV9ldGhuaWNpdHlfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi91c1ppcFJhY2VFdGhuaWNpdHlCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB1cC10byAxMDAgVVMgcmVzaWRlbnQmI3gyNztzIGxpa2VseSByYWNlL2V0aG5pY2l0eSBhY2NvcmRpbmcgdG8gVVMgQ2Vuc3VzIHRheG9ub215LCB3aXRoIChvcHRpb25hbCkgWklQIGNvZGUuIE91dHB1dCBpcyBXX05MICh3aGl0ZSwgbm9uIGxhdGlubyksIEhMIChoaXNwYW5vIGxhdGlubyksICBBIChhc2lhbiwgbm9uIGxhdGlubyksIEJfTkwgKGJsYWNrLCBub24gbGF0aW5vKS4gT3B0aW9uYWxseSBhZGQgaGVhZGVyIFgtT1BUSU9OLVVTUkFDRUVUSE5JQ0lUWS1UQVhPTk9NWTogVVNSQUNFRVRITklDSVRZLTZDTEFTU0VTIGZvciB0d28gYWRkaXRpb25hbCBjbGFzc2VzLCBBSV9BTiAoQW1lcmljYW4gSW5kaWFuIG9yIEFsYXNrYW4gTmF0aXZlKSBhbmQgUEkgKFBhY2lmaWMgSXNsYW5kZXIpLgoqU29jaWFsQXBpKiB8IFsqKnBob25lX2NvZGUqKl0oZG9jcy9hcGlzL3RhZ3MvU29jaWFsQXBpLm1kI3Bob25lX2NvZGUpIHwgKipnZXQqKiAvYXBpMi9qc29uL3Bob25lQ29kZS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9L3twaG9uZU51bWJlcn0gfCBbVVNFUyAxMSBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IGFuZCBwaG9uZSBwcmVmaXgsIGdpdmVuIGEgcGVyc29uYWwgbmFtZSBhbmQgZm9ybWF0dGVkIC8gdW5mb3JtYXR0ZWQgcGhvbmUgbnVtYmVyLgoqU29jaWFsQXBpKiB8IFsqKnBob25lX2NvZGVfYmF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvU29jaWFsQXBpLm1kI3Bob25lX2NvZGVfYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9waG9uZUNvZGVCYXRjaCB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgb2YgdXAgdG8gMTAwIHBlcnNvbmFsIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgbG9jYWwgY29udGV4dCBnaXZlbiBhIG5hbWUgYW5kIGZvcm1hdHRlZCAvIHVuZm9ybWF0dGVkIHBob25lIG51bWJlci4KKlNvY2lhbEFwaSogfCBbKipwaG9uZV9jb2RlX2dlbyoqXShkb2NzL2FwaXMvdGFncy9Tb2NpYWxBcGkubWQjcGhvbmVfY29kZV9nZW8pIHwgKipnZXQqKiAvYXBpMi9qc29uL3Bob25lQ29kZUdlby97Zmlyc3ROYW1lfS97bGFzdE5hbWV9L3twaG9uZU51bWJlcn0ve2NvdW50cnlJc28yfSB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IHBob25lIHByZWZpeCwgZ2l2ZW4gYSBwZXJzb25hbCBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIsIHdpdGggYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgb2YgcmVzaWRlbmNlKS4KKlNvY2lhbEFwaSogfCBbKipwaG9uZV9jb2RlX2dlb19iYXRjaCoqXShkb2NzL2FwaXMvdGFncy9Tb2NpYWxBcGkubWQjcGhvbmVfY29kZV9nZW9fYmF0Y2gpIHwgKipwb3N0KiogL2FwaTIvanNvbi9waG9uZUNvZGVHZW9CYXRjaCB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgb2YgdXAgdG8gMTAwIHBlcnNvbmFsIG5hbWVzLCB3aXRoIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IG9mIHJlc2lkZW5jZSkuCipTb2NpYWxBcGkqIHwgWyoqcGhvbmVfY29kZV9nZW9fZmVlZGJhY2tfbG9vcCoqXShkb2NzL2FwaXMvdGFncy9Tb2NpYWxBcGkubWQjcGhvbmVfY29kZV9nZW9fZmVlZGJhY2tfbG9vcCkgfCAqKmdldCoqIC9hcGkyL2pzb24vcGhvbmVDb2RlR2VvRmVlZGJhY2tMb29wL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve3Bob25lTnVtYmVyfS97cGhvbmVOdW1iZXJFMTY0fS97Y291bnRyeUlzbzJ9IHwgW0NSRURJVFMgMSBVTklUXSBGZWVkYmFjayBsb29wIHRvIGJldHRlciBpbmZlciB0aGUgbGlrZWx5IHBob25lIHByZWZpeCwgZ2l2ZW4gYSBwZXJzb25hbCBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIsIHdpdGggYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgb2YgcmVzaWRlbmNlKS4KCiMjIERvY3VtZW50YXRpb24gRm9yIE1vZGVscwoKIC0gW0FQSUJpbGxpbmdQZXJpb2RVc2FnZU91dF0oZG9jcy9tb2RlbHMvQVBJQmlsbGluZ1BlcmlvZFVzYWdlT3V0Lm1kKQogLSBbQVBJQ2xhc3NpZmllck91dF0oZG9jcy9tb2RlbHMvQVBJQ2xhc3NpZmllck91dC5tZCkKIC0gW0FQSUNsYXNzaWZpZXJUYXhvbm9teU91dF0oZG9jcy9tb2RlbHMvQVBJQ2xhc3NpZmllclRheG9ub215T3V0Lm1kKQogLSBbQVBJQ2xhc3NpZmllcnNTdGF0dXNPdXRdKGRvY3MvbW9kZWxzL0FQSUNsYXNzaWZpZXJzU3RhdHVzT3V0Lm1kKQogLSBbQVBJQ291bnRlclYyT3V0XShkb2NzL21vZGVscy9BUElDb3VudGVyVjJPdXQubWQpCiAtIFtBUElLZXlPdXRdKGRvY3MvbW9kZWxzL0FQSUtleU91dC5tZCkKIC0gW0FQSVBlcmlvZFVzYWdlT3V0XShkb2NzL21vZGVscy9BUElQZXJpb2RVc2FnZU91dC5tZCkKIC0gW0FQSVBsYW5TdWJzY3JpcHRpb25PdXRdKGRvY3MvbW9kZWxzL0FQSVBsYW5TdWJzY3JpcHRpb25PdXQubWQpCiAtIFtBUElTZXJ2aWNlT3V0XShkb2NzL21vZGVscy9BUElTZXJ2aWNlT3V0Lm1kKQogLSBbQVBJU2VydmljZXNPdXRdKGRvY3MvbW9kZWxzL0FQSVNlcnZpY2VzT3V0Lm1kKQogLSBbQVBJVXNhZ2VBZ2dyZWdhdGVkT3V0XShkb2NzL21vZGVscy9BUElVc2FnZUFnZ3JlZ2F0ZWRPdXQubWQpCiAtIFtBUElVc2FnZUhpc3RvcnlPdXRdKGRvY3MvbW9kZWxzL0FQSVVzYWdlSGlzdG9yeU91dC5tZCkKIC0gW0JhdGNoQ29ycmlkb3JJbl0oZG9jcy9tb2RlbHMvQmF0Y2hDb3JyaWRvckluLm1kKQogLSBbQmF0Y2hDb3JyaWRvck91dF0oZG9jcy9tb2RlbHMvQmF0Y2hDb3JyaWRvck91dC5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUNhc3RlT3V0XShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVDYXN0ZU91dC5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUNhc3RlZ3JvdXBPdXRdKGRvY3MvbW9kZWxzL0JhdGNoRmlyc3RMYXN0TmFtZUNhc3RlZ3JvdXBPdXQubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0XShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVySW5dKGRvY3MvbW9kZWxzL0JhdGNoRmlyc3RMYXN0TmFtZUdlbmRlckluLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVyZWRPdXRdKGRvY3MvbW9kZWxzL0JhdGNoRmlyc3RMYXN0TmFtZUdlbmRlcmVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvSW5dKGRvY3MvbW9kZWxzL0JhdGNoRmlyc3RMYXN0TmFtZUdlb0luLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvU3ViY2xhc3NpZmljYXRpb25PdXRdKGRvY3MvbW9kZWxzL0JhdGNoRmlyc3RMYXN0TmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvU3ViZGl2aXNpb25Jbl0oZG9jcy9tb2RlbHMvQmF0Y2hGaXJzdExhc3ROYW1lR2VvU3ViZGl2aXNpb25Jbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUdlb1ppcHBlZEluXShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUluXShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVJbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0XShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVPcmlnaW5lZE91dC5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXRdKGRvY3MvbW9kZWxzL0JhdGNoRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXQubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luXShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbl0oZG9jcy9tb2RlbHMvQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZVJlbGlnaW9uZWRPdXRdKGRvY3MvbW9kZWxzL0JhdGNoRmlyc3RMYXN0TmFtZVJlbGlnaW9uZWRPdXQubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVTdWJkaXZpc2lvbkluXShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVTdWJkaXZpc2lvbkluLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lVVNSYWNlRXRobmljaXR5T3V0XShkb2NzL21vZGVscy9CYXRjaEZpcnN0TGFzdE5hbWVVU1JhY2VFdGhuaWNpdHlPdXQubWQpCiAtIFtCYXRjaE1hdGNoUGVyc29uYWxGaXJzdExhc3ROYW1lSW5dKGRvY3MvbW9kZWxzL0JhdGNoTWF0Y2hQZXJzb25hbEZpcnN0TGFzdE5hbWVJbi5tZCkKIC0gW0JhdGNoTmFtZUdlb0luXShkb2NzL21vZGVscy9CYXRjaE5hbWVHZW9Jbi5tZCkKIC0gW0JhdGNoTmFtZUluXShkb2NzL21vZGVscy9CYXRjaE5hbWVJbi5tZCkKIC0gW0JhdGNoTmFtZU1hdGNoQ2FuZGlkYXRlc091dF0oZG9jcy9tb2RlbHMvQmF0Y2hOYW1lTWF0Y2hDYW5kaWRhdGVzT3V0Lm1kKQogLSBbQmF0Y2hOYW1lTWF0Y2hlZE91dF0oZG9jcy9tb2RlbHMvQmF0Y2hOYW1lTWF0Y2hlZE91dC5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lQ2FzdGVncm91cE91dF0oZG9jcy9tb2RlbHMvQmF0Y2hQZXJzb25hbE5hbWVDYXN0ZWdyb3VwT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVHZW5kZXJlZE91dF0oZG9jcy9tb2RlbHMvQmF0Y2hQZXJzb25hbE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lR2VvSW5dKGRvY3MvbW9kZWxzL0JhdGNoUGVyc29uYWxOYW1lR2VvSW4ubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZUdlb091dF0oZG9jcy9tb2RlbHMvQmF0Y2hQZXJzb25hbE5hbWVHZW9PdXQubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0XShkb2NzL21vZGVscy9CYXRjaFBlcnNvbmFsTmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVHZW9TdWJkaXZpc2lvbkluXShkb2NzL21vZGVscy9CYXRjaFBlcnNvbmFsTmFtZUdlb1N1YmRpdmlzaW9uSW4ubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZUluXShkb2NzL21vZGVscy9CYXRjaFBlcnNvbmFsTmFtZUluLm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXRdKGRvY3MvbW9kZWxzL0JhdGNoUGVyc29uYWxOYW1lUGFyc2VkT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVSZWxpZ2lvbmVkT3V0XShkb2NzL21vZGVscy9CYXRjaFBlcnNvbmFsTmFtZVJlbGlnaW9uZWRPdXQubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZVN1YmRpdmlzaW9uSW5dKGRvY3MvbW9kZWxzL0JhdGNoUGVyc29uYWxOYW1lU3ViZGl2aXNpb25Jbi5tZCkKIC0gW0JhdGNoUHJvcGVyTm91bkNhdGVnb3JpemVkT3V0XShkb2NzL21vZGVscy9CYXRjaFByb3Blck5vdW5DYXRlZ29yaXplZE91dC5tZCkKIC0gW0NvcnJpZG9ySW5dKGRvY3MvbW9kZWxzL0NvcnJpZG9ySW4ubWQpCiAtIFtDb3JyaWRvck91dF0oZG9jcy9tb2RlbHMvQ29ycmlkb3JPdXQubWQpCiAtIFtGZWVkYmFja0xvb3BPdXRdKGRvY3MvbW9kZWxzL0ZlZWRiYWNrTG9vcE91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVDYXN0ZU91dF0oZG9jcy9tb2RlbHMvRmlyc3RMYXN0TmFtZUNhc3RlT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZUNhc3RlZ3JvdXBPdXRdKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVDYXN0ZWdyb3VwT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZURpYXNwb3JhZWRPdXRdKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZUdlbmRlckluXShkb2NzL21vZGVscy9GaXJzdExhc3ROYW1lR2VuZGVySW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VuZGVyZWRPdXRdKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVHZW9Jbl0oZG9jcy9tb2RlbHMvRmlyc3RMYXN0TmFtZUdlb0luLm1kKQogLSBbRmlyc3RMYXN0TmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0XShkb2NzL21vZGVscy9GaXJzdExhc3ROYW1lR2VvU3ViY2xhc3NpZmljYXRpb25PdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VvU3ViZGl2aXNpb25Jbl0oZG9jcy9tb2RlbHMvRmlyc3RMYXN0TmFtZUdlb1N1YmRpdmlzaW9uSW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VvWmlwcGVkSW5dKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVJbl0oZG9jcy9tb2RlbHMvRmlyc3RMYXN0TmFtZUluLm1kKQogLSBbRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0XShkb2NzL21vZGVscy9GaXJzdExhc3ROYW1lT3JpZ2luZWRPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lT3V0XShkb2NzL21vZGVscy9GaXJzdExhc3ROYW1lT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXRdKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVQaG9uZUNvZGVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZVBob25lTnVtYmVyR2VvSW5dKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luLm1kKQogLSBbRmlyc3RMYXN0TmFtZVBob25lTnVtYmVySW5dKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckluLm1kKQogLSBbRmlyc3RMYXN0TmFtZVJlbGlnaW9uZWRPdXRdKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVSZWxpZ2lvbmVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZVN1YmRpdmlzaW9uSW5dKGRvY3MvbW9kZWxzL0ZpcnN0TGFzdE5hbWVTdWJkaXZpc2lvbkluLm1kKQogLSBbRmlyc3RMYXN0TmFtZVVTUmFjZUV0aG5pY2l0eU91dF0oZG9jcy9tb2RlbHMvRmlyc3RMYXN0TmFtZVVTUmFjZUV0aG5pY2l0eU91dC5tZCkKIC0gW01hdGNoUGVyc29uYWxGaXJzdExhc3ROYW1lSW5dKGRvY3MvbW9kZWxzL01hdGNoUGVyc29uYWxGaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtOYW1lR2VvSW5dKGRvY3MvbW9kZWxzL05hbWVHZW9Jbi5tZCkKIC0gW05hbWVJbl0oZG9jcy9tb2RlbHMvTmFtZUluLm1kKQogLSBbTmFtZU1hdGNoQ2FuZGlkYXRlT3V0XShkb2NzL21vZGVscy9OYW1lTWF0Y2hDYW5kaWRhdGVPdXQubWQpCiAtIFtOYW1lTWF0Y2hDYW5kaWRhdGVzT3V0XShkb2NzL21vZGVscy9OYW1lTWF0Y2hDYW5kaWRhdGVzT3V0Lm1kKQogLSBbTmFtZU1hdGNoZWRPdXRdKGRvY3MvbW9kZWxzL05hbWVNYXRjaGVkT3V0Lm1kKQogLSBbUGVyc29uYWxOYW1lQ2FzdGVncm91cE91dF0oZG9jcy9tb2RlbHMvUGVyc29uYWxOYW1lQ2FzdGVncm91cE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUdlbmRlcmVkT3V0XShkb2NzL21vZGVscy9QZXJzb25hbE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUdlb0luXShkb2NzL21vZGVscy9QZXJzb25hbE5hbWVHZW9Jbi5tZCkKIC0gW1BlcnNvbmFsTmFtZUdlb091dF0oZG9jcy9tb2RlbHMvUGVyc29uYWxOYW1lR2VvT3V0Lm1kKQogLSBbUGVyc29uYWxOYW1lR2VvU3ViY2xhc3NpZmljYXRpb25PdXRdKGRvY3MvbW9kZWxzL1BlcnNvbmFsTmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0Lm1kKQogLSBbUGVyc29uYWxOYW1lR2VvU3ViZGl2aXNpb25Jbl0oZG9jcy9tb2RlbHMvUGVyc29uYWxOYW1lR2VvU3ViZGl2aXNpb25Jbi5tZCkKIC0gW1BlcnNvbmFsTmFtZUluXShkb2NzL21vZGVscy9QZXJzb25hbE5hbWVJbi5tZCkKIC0gW1BlcnNvbmFsTmFtZVBhcnNlZE91dF0oZG9jcy9tb2RlbHMvUGVyc29uYWxOYW1lUGFyc2VkT3V0Lm1kKQogLSBbUGVyc29uYWxOYW1lUmVsaWdpb25lZE91dF0oZG9jcy9tb2RlbHMvUGVyc29uYWxOYW1lUmVsaWdpb25lZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZVN1YmRpdmlzaW9uSW5dKGRvY3MvbW9kZWxzL1BlcnNvbmFsTmFtZVN1YmRpdmlzaW9uSW4ubWQpCiAtIFtQcm9wZXJOb3VuQ2F0ZWdvcml6ZWRPdXRdKGRvY3MvbW9kZWxzL1Byb3Blck5vdW5DYXRlZ29yaXplZE91dC5tZCkKIC0gW1JlZ2lvbklTT10oZG9jcy9tb2RlbHMvUmVnaW9uSVNPLm1kKQogLSBbUmVnaW9uT3V0XShkb2NzL21vZGVscy9SZWdpb25PdXQubWQpCiAtIFtSZWxpZ2lvblN0YXRPdXRdKGRvY3MvbW9kZWxzL1JlbGlnaW9uU3RhdE91dC5tZCkKIC0gW1NvZnR3YXJlVmVyc2lvbk91dF0oZG9jcy9tb2RlbHMvU29mdHdhcmVWZXJzaW9uT3V0Lm1kKQoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgQXV0aG9yaXphdGlvbgoKQXV0aGVudGljYXRpb24gc2NoZW1lcyBkZWZpbmVkIGZvciB0aGUgQVBJOgo8YSBpZD0iYXBpX2tleSI+PC9hPgojIyMgYXBpX2tleQoKLSAqKlR5cGUqKjogQVBJIGtleQotICoqQVBJIGtleSBwYXJhbWV0ZXIgbmFtZSoqOiBYLUFQSS1LRVkKLSAqKkxvY2F0aW9uKio6IEhUVFAgaGVhZGVyCgoKIyMgQXV0aG9yCgpjb250YWN0QG5hbXNvci5jb20KY29udGFjdEBuYW1zb3IuY29tCmNvbnRhY3RAbmFtc29yLmNvbQpjb250YWN0QG5hbXNvci5jb20KY29udGFjdEBuYW1zb3IuY29tCmNvbnRhY3RAbmFtc29yLmNvbQpjb250YWN0QG5hbXNvci5jb20KCiMjIE5vdGVzIGZvciBMYXJnZSBPcGVuQVBJIGRvY3VtZW50cwpJZiB0aGUgT3BlbkFQSSBkb2N1bWVudCBpcyBsYXJnZSwgaW1wb3J0cyBpbiBvcGVuYXBpX2NsaWVudC5hcGlzIGFuZCBvcGVuYXBpX2NsaWVudC5tb2RlbHMgbWF5IGZhaWwgd2l0aCBhClJlY3Vyc2lvbkVycm9yIGluZGljYXRpbmcgdGhlIG1heGltdW0gcmVjdXJzaW9uIGxpbWl0IGhhcyBiZWVuIGV4Y2VlZGVkLiBJbiB0aGF0IGNhc2UsIHRoZXJlIGFyZSBhIGNvdXBsZSBvZiBzb2x1dGlvbnM6CgpTb2x1dGlvbiAxOgpVc2Ugc3BlY2lmaWMgaW1wb3J0cyBmb3IgYXBpcyBhbmQgbW9kZWxzIGxpa2U6Ci0gYGZyb20gb3BlbmFwaV9jbGllbnQuYXBpcy5kZWZhdWx0X2FwaSBpbXBvcnQgRGVmYXVsdEFwaWAKLSBgZnJvbSBvcGVuYXBpX2NsaWVudC5tb2RlbC5wZXQgaW1wb3J0IFBldGAKClNvbHV0aW9uIDE6CkJlZm9yZSBpbXBvcnRpbmcgdGhlIHBhY2thZ2UsIGFkanVzdCB0aGUgbWF4aW11bSByZWN1cnNpb24gbGltaXQgYXMgc2hvd24gYmVsb3c6CmBgYAppbXBvcnQgc3lzCnN5cy5zZXRyZWN1cnNpb25saW1pdCgxNTAwKQppbXBvcnQgb3BlbmFwaV9jbGllbnQKZnJvbSBvcGVuYXBpX2NsaWVudC5hcGlzIGltcG9ydCAqCmZyb20gb3BlbmFwaV9jbGllbnQubW9kZWxzIGltcG9ydCAqCmBgYAo= readmeEtag: '"f1e8481de55c3dbef80e7be35ac335d84669b148"' readmeLastModified: Wed, 23 Aug 2023 08:02:50 GMT repositoryId: 165632249 description: >- NamSor API v2 Python SDK - classify personal names accurately by gender, country of origin, or ethnicity. created: '2019-01-14T09:22:11Z' updated: '2024-08-26T08:06:30Z' language: Python archived: false stars: 36 watchers: 6 forks: 7 owner: namsor logo: https://avatars.githubusercontent.com/u/6951565?v=4 license: AGPL-3.0 repoEtag: '"0d1e038c6345118648bf646d0f27cefd085d9f247abf4322da290de45012435f"' repoLastModified: Mon, 26 Aug 2024 08:06:30 GMT foundInMaster: true category: - Server Implementations - Description Validators id: 78fde2a8b60c871d4f8c2b5f7bb08775 - source: openapi3 tags repository: https://github.com/frameio/rolodex v3: true repositoryMetadata: base64Readme: >- IyBSb2xvZGV4CgpbIVtoZXgucG0gdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9oZXhwbS92L3JvbG9kZXguc3ZnKV0oaHR0cHM6Ly9oZXgucG0vcGFja2FnZXMvcm9sb2RleCkgWyFbQ2lyY2xlQ0ldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL0ZyYW1laW8vcm9sb2RleC5zdmc/c3R5bGU9c3ZnKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvRnJhbWVpby9yb2xvZGV4KQoKUm9sb2RleCBnZW5lcmF0ZXMgZG9jdW1lbnRhdGlvbiBmb3IgeW91ciBQaG9lbml4IEFQSS4KClNpbXBseSBhbm5vdGF0ZSB5b3VyIFBob2VuaXggY29udHJvbGxlciBhY3Rpb24gZnVuY3Rpb25zIHdpdGggYEBkb2NgIG1ldGFkYXRhLCBhbmQgUm9sb2RleCB3aWxsIHR1cm4gdGhlc2UgZGVzY3JpcHRpb25zIGludG8gdmFsaWQgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHBsYXRmb3JtLgoKQ3VycmVudGx5IHN1cHBvcnRzOgotIFtPcGVuQVBJIDMuMF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKQoKIyMgRGlzY2xhaW1lcgoKUm9sb2RleCBpcyBjdXJyZW50bHkgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50ISBUaGUgQVBJIGlzIGEgd29yayBpbiBwcm9ncmVzcyBhcyB3ZSBoZWFkIHRvd2FyZHMgdjEuMC4KCiMjIERvY3VtZW50YXRpb24KClNlZSBbaHR0cHM6Ly9oZXhkb2NzLnBtL3JvbG9kZXhdKGh0dHBzOi8vaGV4ZG9jcy5wbS9yb2xvZGV4L1JvbG9kZXguaHRtbCkKCiMjIEluc3RhbGxhdGlvbgoKUm9sb2RleCBpcyBbYXZhaWxhYmxlIGluIEhleF0oaHR0cHM6Ly9oZXgucG0vcGFja2FnZXMvcm9sb2RleCkuIEFkZCBpdCB0byB5b3VyCmRlcHMgaW4gYG1peC5leHNgOgoKYGBgZWxpeGlyCmRlZiBkZXBzIGRvCiAgWwogICAgezpyb2xvZGV4LCAifj4gMC4xMC4wIn0KICBdCmVuZApgYGAK readmeEtag: '"3f157d5eb96f9c9fe916623cc7b67602c4262e0f"' readmeLastModified: Tue, 14 Apr 2020 15:29:38 GMT repositoryId: 164505694 description: 📇API Documentation Generator for Phoenix created: '2019-01-07T22:18:10Z' updated: '2022-09-10T22:14:19Z' language: Elixir archived: false stars: 36 watchers: 22 forks: 3 owner: Frameio logo: https://avatars.githubusercontent.com/u/8882715?v=4 license: MIT repoEtag: '"7deaf61a93efd6e84415ab80fc33e3a2c8012464d386cf29ed062f02353d95cb"' repoLastModified: Sat, 10 Sep 2022 22:14:19 GMT foundInMaster: true category: Server id: b5c2d746eddf512431874f73431f26ba - source: openapi3 tags repository: https://github.com/rexagon/opg v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgICA8aDMgYWxpZ249ImNlbnRlciI+b3BnPC9oMz4KICAgIDxwIGFsaWduPSJjZW50ZXIiPlJ1c3QgT3BlbkFQSSAzLjAgZG9jcyBnZW5lcmF0b3I8L3A+CiAgICA8cCBhbGlnbj0iY2VudGVyIj4KICAgICAgICA8YSBocmVmPSIvTElDRU5TRSI+CiAgICAgICAgICAgIDxpbWcgYWx0PSJHaXRIdWIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9SZXhhZ29uL29wZyIgLz4KICAgICAgICA8L2E+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1JleGFnb24vb3BnL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FtYXN0ZXIiPgogICAgICAgICAgICA8aW1nIGFsdD0iR2l0SHViIFdvcmtmbG93IFN0YXR1cyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi93b3JrZmxvdy9zdGF0dXMvUmV4YWdvbi9vcGcvbWFzdGVyIiAvPgogICAgICAgIDwvYT4KICAgICAgICA8YSBocmVmPSJodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvb3BnIj4KICAgICAgICAgICAgPGltZyBhbHQ9IkNyYXRlcy5pbyBWZXJzaW9uIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3Yvb3BnIiAvPgogICAgICAgIDwvYT4KICAgICAgICA8YSBocmVmPSJodHRwczovL2RvY3MucnMvb3BnIj4KICAgICAgICAgICAgPGltZyBhbHQ9IkRvY3MucnMiIHNyYz0iaHR0cHM6Ly9kb2NzLnJzL29wZy9iYWRnZS5zdmciIC8+CiAgICAgICAgPC9hPgogICAgPC9wPgo8L3A+CgojIyMjIEV4YW1wbGU6Cj4gT3Igc2VlIG1vcmUgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZXhhZ29uL29wZy90cmVlL21hc3Rlci90ZXN0X3N1aXRlL3Rlc3RzKQoKYGBgcnVzdAp1c2Ugb3BnOjoqOwp1c2Ugc2VyZGU6OntTZXJpYWxpemUsIERlc2VyaWFsaXplfTsKCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIE9wZ01vZGVsKV0KI1tzZXJkZShyZW5hbWVfYWxsID0gImNhbWVsQ2FzZSIpXQojW29wZygiU2ltcGxlIGVudW0iKV0KZW51bSBTaW1wbGVFbnVtIHsKICAgIFRlc3QsCiAgICBBbm90aGVyLAogICAgWWF5LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBPcGdNb2RlbCldCiNbb3BnKCJuZXd0eXBlIHN0cmluZyIsIGZvcm1hdCA9ICJpZCIsIGV4YW1wbGUgPSAiYWJjZDAwMDEiKV0Kc3RydWN0IE5ld1R5cGUoU3RyaW5nKTsKCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIE9wZ01vZGVsKV0Kc3RydWN0IFNpbXBsZVN0cnVjdCB7CiAgICBmaXJzdF9maWVsZDogaTMyLAogICAgI1tvcGcoIkZpZWxkIGRlc2NyaXB0aW9uIildCiAgICBzZWNvbmQ6IFN0cmluZywKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgT3BnTW9kZWwpXQojW3NlcmRlKHJlbmFtZV9hbGwgPSAia2ViYWItY2FzZSIpXQplbnVtIEV4dGVybmFsbHlUYWdnZWRFbnVtIHsKICAgIFRlc3QoU3RyaW5nKSwKICAgIEFub3RoZXJUZXN0KFN0cmluZywgI1tvcGcoIlNlY29uZCIpXSBTdHJpbmcpLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBPcGdNb2RlbCldCiNbc2VyZGUodW50YWdnZWQpXQplbnVtIFVudGFnZ2VkRW51bSB7CiAgICBGaXJzdCB7CiAgICAgICAgdmFsdWU6IE5ld1R5cGUsCiAgICB9LAogICAgI1tvcGcoIlZhcmlhbnQgZGVzY3JpcHRpb24iKV0KICAgIFNlY29uZCB7CiAgICAgICAgI1tvcGcoIklubGluZWQgc3RydWN0IiwgaW5saW5lKV0KICAgICAgICBhbm90aGVyOiBTaW1wbGVTdHJ1Y3QsCiAgICB9LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBPcGdNb2RlbCldCiNbc2VyZGUodGFnID0gInRhZyIsIHJlbmFtZV9hbGwgPSAibG93ZXJjYXNlIildCmVudW0gSW50ZXJuYWxseVRhZ2dlZEVudW0gewogICAgRmlyc3QoU2ltcGxlU3RydWN0KSwKICAgIFNlY29uZCB7IGZpZWxkOiBTdHJpbmcgfSwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgT3BnTW9kZWwpXQojW3NlcmRlKHRhZyA9ICJ0YWciLCBjb250ZW50ID0gImNvbnRlbnQiLCByZW5hbWVfYWxsID0gImxvd2VyY2FzZSIpXQplbnVtIEFkamFjZW50bHlUYWdnZWRFbnVtIHsKICAgIEZpcnN0KFN0cmluZyksCiAgICBTZWNvbmQoTmV3VHlwZSwgTmV3VHlwZSksCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIE9wZ01vZGVsKV0KI1tzZXJkZShyZW5hbWVfYWxsID0gImNhbWVsQ2FzZSIpXQpzdHJ1Y3QgVHlwZUNoYW5nZWRTdHJ1Y3QgewogICAgI1tzZXJkZSh3aXRoID0gImNocm9ubzo6bmFpdmU6OnNlcmRlOjp0c19taWxsaXNlY29uZHMiKV0KICAgICNbb3BnKCJVVEMgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyIsIGludGVnZXIsIGZvcm1hdCA9ICJpbnQ2NCIpXQogICAgcHViIHRpbWVzdGFtcDogY2hyb25vOjpOYWl2ZURhdGVUaW1lLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBPcGdNb2RlbCldCnN0cnVjdCBTdHJ1Y3RXaXRoQ29tcGxleE9iamVjdHMgewogICAgI1tzZXJkZShza2lwX3NlcmlhbGl6aW5nX2lmID0gIk9wdGlvbjo6aXNfbm9uZSIpXQogICAgI1tvcGcob3B0aW9uYWwpXQogICAgc3VwZXJfb3B0aW9uYWw6IE9wdGlvbjxPcHRpb248U3RyaW5nPj4sCiAgICBmaWVsZDogT3B0aW9uPFN0cmluZz4sCiAgICBib3hlZDogQm94PE9wdGlvbjxpMzI+PiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBPcGdNb2RlbCldCnN0cnVjdCBHZW5lcmljU3RydWN0V2l0aFJlZjwnYSwgVD4gewogICAgbWVzc2FnZTogJidhIHN0ciwKICAgIHRlc3Q6IFQsCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgT3BnTW9kZWwpXQpzdHJ1Y3QgU3VwZXJSZXNwb25zZSB7CiAgICBzaW1wbGVfZW51bTogU2ltcGxlRW51bSwKICAgICNbc2VyZGUocmVuYW1lID0gIm5ld190eXBlIildCiAgICBuZXd0eXBlOiBOZXdUeXBlLAogICAgZXh0ZXJuYWxseV90YWdnZWRfZW51bTogRXh0ZXJuYWxseVRhZ2dlZEVudW0sCiAgICB1bnRhZ2dlZF9lbnVtOiBVbnRhZ2dlZEVudW0sCiAgICBpbnRlcm5hbGx5X3RhZ2dlZF9lbnVtOiBJbnRlcm5hbGx5VGFnZ2VkRW51bSwKICAgIGFkamFjZW50bHlfdGFnZ2VkX2VudW06IEFkamFjZW50bHlUYWdnZWRFbnVtLAogICAgdHlwZV9jaGFuZ2VkX3N0cnVjdDogVHlwZUNoYW5nZWRTdHJ1Y3QsCiAgICBzdHJ1Y3Rfd2l0aF9jb21wbGV4X29iamVjdHM6IFN0cnVjdFdpdGhDb21wbGV4T2JqZWN0cywKfQoKI1t0ZXN0XQpmbiBwcmludF9hcGkoKSB7CiAgICBsZXQgdGVzdCA9IGRlc2NyaWJlX2FwaSEgewogICAgICAgIGluZm86IHsKICAgICAgICAgICAgdGl0bGU6ICJNeSBzdXBlciBBUEkiLAogICAgICAgICAgICB2ZXJzaW9uOiAiMC4wLjAiLAogICAgICAgIH0sCiAgICAgICAgdGFnczoge2ludGVybmFsLCBhZG1pbigiU3VwZXIgYWRtaW4gbWV0aG9kcyIpfSwKICAgICAgICBzZXJ2ZXJzOiB7CiAgICAgICAgICAgICJodHRwczovL215LnN1cGVyLnNlcnZlci5jb20vdjEiLAogICAgICAgIH0sCiAgICAgICAgc2VjdXJpdHlfc2NoZW1lczogewogICAgICAgICAgICAoaHR0cCAiYmVhcmVyQXV0aCIpOiB7CiAgICAgICAgICAgICAgICBzY2hlbWU6IEJlYXJlciwKICAgICAgICAgICAgICAgIGJlYXJlcl9mb3JtYXQ6ICJKV1QiLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgcGF0aHM6IHsKICAgICAgICAgICAgKCJoZWxsbyIgLyAid29ybGQiIC8geyBwYXJhbVRlc3Q6IFN0cmluZyB9KTogewogICAgICAgICAgICAgICAgc3VtbWFyeTogIlNvbWUgdGVzdCBncm91cCBvZiByZXF1ZXN0cyIsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkFub3RoZXIgdGVzdCBkZXNjcmlwdGlvbiIsCiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7CiAgICAgICAgICAgICAgICAgICAgKGhlYWRlciAieC1yZXF1ZXN0LWlkIik6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBHRVQ6IHsKICAgICAgICAgICAgICAgICAgICB0YWdzOiB7aW50ZXJuYWx9LAogICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6ICJTbWFsbCBzdW1tYXJ5IiwKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlNtYWxsIGRlc2NyaXB0aW9uIiwKICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGVkOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgKHF1ZXJ5IHNvbWVQYXJhbTogdTMyKTogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgMjAwOiBTdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgNDE4ICgiT3B0aW9uYWwgcmVzcG9uc2UgZGVzY3JpcHRpb24iKTogU3RyaW5nCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgUE9TVDogewogICAgICAgICAgICAgICAgICAgIHRhZ3M6IHthZG1pbn0sCiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHk6IHsiYmVhcmVyQXV0aCJ9LAogICAgICAgICAgICAgICAgICAgIGJvZHk6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJTb21lIGludGVyZXN0aW5nIGRlc2NyaXB0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hOiBHZW5lcmljU3RydWN0V2l0aFJlZjwnc3RhdGljLCBpNjQ+LAogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIDIwMDogU3VwZXJSZXNwb25zZSwKICAgICAgICAgICAgICAgICAgICBjYWxsYmFja3M6IHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tVcmw6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiY2FsbGJhY2tVcmwiKTogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPU1Q6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwOiBzdGQ6OnZlYzo6VmVjPFN0cmluZz4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKCiAgICBwcmludGxuISgie30iLCBzZXJkZV95YW1sOjp0b19zdHJpbmcoJnRlc3QpLnVud3JhcCgpKTsKfQpgYGAKCjxkZXRhaWxzPjxzdW1tYXJ5PjxiPlJlc3VsdDo8L2I+PC9zdW1tYXJ5Pgo8cD4KCmBgYHlhbWwKLS0tCm9wZW5hcGk6IDMuMC4zCmluZm86CiAgdGl0bGU6IE15IHN1cGVyIEFQSQogIHZlcnNpb246IDAuMC4wCnRhZ3M6CiAgLSBuYW1lOiBhZG1pbgogICAgZGVzY3JpcHRpb246IFN1cGVyIGFkbWluIG1ldGhvZHMKICAtIG5hbWU6IGludGVybmFsCnNlcnZlcnM6CiAgLSB1cmw6ICJodHRwczovL215LnN1cGVyLnNlcnZlci5jb20vdjEiCnBhdGhzOgogICIvaGVsbG8vd29ybGQve3BhcmFtVGVzdH0iOgogICAgc3VtbWFyeTogU29tZSB0ZXN0IGdyb3VwIG9mIHJlcXVlc3RzCiAgICBkZXNjcmlwdGlvbjogQW5vdGhlciB0ZXN0IGRlc2NyaXB0aW9uCiAgICBnZXQ6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBpbnRlcm5hbAogICAgICBzdW1tYXJ5OiBTbWFsbCBzdW1tYXJ5CiAgICAgIGRlc2NyaXB0aW9uOiBTbWFsbCBkZXNjcmlwdGlvbgogICAgICBkZXByZWNhdGVkOiB0cnVlCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgNDE4OgogICAgICAgICAgZGVzY3JpcHRpb246IE9wdGlvbmFsIHJlc3BvbnNlIGRlc2NyaXB0aW9uCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogc29tZVBhcmFtCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGVzdAogICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgZm9ybWF0OiB1aW50MzIKICAgIHBvc3Q6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBhZG1pbgogICAgICBzZWN1cml0eToKICAgICAgICAtIGJlYXJlckF1dGg6IFtdCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgZGVzY3JpcHRpb246IFNvbWUgaW50ZXJlc3RpbmcgZGVzY3JpcHRpb24KICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9HZW5lcmljU3RydWN0V2l0aFJlZiIKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvU3VwZXJSZXNwb25zZSIKICAgICAgY2FsbGJhY2tzOgogICAgICAgIGNhbGxiYWNrVXJsOgogICAgICAgICAgL2NhbGxiYWNrVXJsOgogICAgICAgICAgICBwb3N0OgogICAgICAgICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgICAgICAgIDIwMDoKICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICBwYXJhbWV0ZXJzOgogICAgICAtIG5hbWU6IHBhcmFtVGVzdAogICAgICAgIGluOiBwYXRoCiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBzY2hlbWE6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgLSBuYW1lOiB4LXJlcXVlc3QtaWQKICAgICAgICBkZXNjcmlwdGlvbjogVGVzdAogICAgICAgIGluOiBoZWFkZXIKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIHNjaGVtYToKICAgICAgICAgIHR5cGU6IHN0cmluZwpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBBZGphY2VudGx5VGFnZ2VkRW51bToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgY29udGVudDoKICAgICAgICAgIG9uZU9mOgogICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICBvbmVPZjoKICAgICAgICAgICAgICAgICAgLSAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvTmV3VHlwZSIKICAgICAgICAgICAgICAgICAgLSAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvTmV3VHlwZSIKICAgICAgICB0YWc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQWRqYWNlbnRseVRhZ2dlZEVudW0gdHlwZSB2YXJpYW50CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGVudW06CiAgICAgICAgICAgIC0gZmlyc3QKICAgICAgICAgICAgLSBzZWNvbmQKICAgICAgICAgIGV4YW1wbGU6IGZpcnN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gdGFnCiAgICAgICAgLSBjb250ZW50CiAgICBFeHRlcm5hbGx5VGFnZ2VkRW51bToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOgogICAgICAgIG9uZU9mOgogICAgICAgICAgLSB0eXBlOiBzdHJpbmcKICAgICAgICAgIC0gdHlwZTogYXJyYXkKICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogU2Vjb25kCiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgR2VuZXJpY1N0cnVjdFdpdGhSZWY6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG1lc3NhZ2U6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB0ZXN0OgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZm9ybWF0OiBpbnQ2NAogICAgICByZXF1aXJlZDoKICAgICAgICAtIG1lc3NhZ2UKICAgICAgICAtIHRlc3QKICAgIEludGVybmFsbHlUYWdnZWRFbnVtOgogICAgICBvbmVPZjoKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgZmlyc3RfZmllbGQ6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGZvcm1hdDogaW50MzIKICAgICAgICAgICAgc2Vjb25kOgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBGaWVsZCBkZXNjcmlwdGlvbgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICB0YWc6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEludGVybmFsbHlUYWdnZWRFbnVtIHR5cGUgdmFyaWFudAogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgICAtIGZpcnN0CiAgICAgICAgICAgICAgZXhhbXBsZTogZmlyc3QKICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAtIGZpcnN0X2ZpZWxkCiAgICAgICAgICAgIC0gc2Vjb25kCiAgICAgICAgICAgIC0gdGFnCiAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGZpZWxkOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICB0YWc6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEludGVybmFsbHlUYWdnZWRFbnVtIHR5cGUgdmFyaWFudAogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgICAtIHNlY29uZAogICAgICAgICAgICAgIGV4YW1wbGU6IHNlY29uZAogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgIC0gZmllbGQKICAgICAgICAgICAgLSB0YWcKICAgIE5ld1R5cGU6CiAgICAgIGRlc2NyaXB0aW9uOiBuZXd0eXBlIHN0cmluZwogICAgICB0eXBlOiBzdHJpbmcKICAgICAgZm9ybWF0OiBpZAogICAgICBleGFtcGxlOiBhYmNkMDAwMQogICAgU2ltcGxlRW51bToKICAgICAgZGVzY3JpcHRpb246IFNpbXBsZSBlbnVtCiAgICAgIHR5cGU6IHN0cmluZwogICAgICBlbnVtOgogICAgICAgIC0gdGVzdAogICAgICAgIC0gYW5vdGhlcgogICAgICAgIC0geWF5CiAgICAgIGV4YW1wbGU6IHRlc3QKICAgIFN0cnVjdFdpdGhDb21wbGV4T2JqZWN0czoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgYm94ZWQ6CiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZm9ybWF0OiBpbnQzMgogICAgICAgIGZpZWxkOgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHN1cGVyX29wdGlvbmFsOgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXF1aXJlZDoKICAgICAgICAtIGZpZWxkCiAgICAgICAgLSBib3hlZAogICAgU3VwZXJSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgYWRqYWNlbnRseV90YWdnZWRfZW51bToKICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9BZGphY2VudGx5VGFnZ2VkRW51bSIKICAgICAgICBleHRlcm5hbGx5X3RhZ2dlZF9lbnVtOgogICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL0V4dGVybmFsbHlUYWdnZWRFbnVtIgogICAgICAgIGludGVybmFsbHlfdGFnZ2VkX2VudW06CiAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvSW50ZXJuYWxseVRhZ2dlZEVudW0iCiAgICAgICAgbmV3X3R5cGU6CiAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvTmV3VHlwZSIKICAgICAgICBzaW1wbGVfZW51bToKICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9TaW1wbGVFbnVtIgogICAgICAgIHN0cnVjdF93aXRoX2NvbXBsZXhfb2JqZWN0czoKICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9TdHJ1Y3RXaXRoQ29tcGxleE9iamVjdHMiCiAgICAgICAgdHlwZV9jaGFuZ2VkX3N0cnVjdDoKICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9UeXBlQ2hhbmdlZFN0cnVjdCIKICAgICAgICB1bnRhZ2dlZF9lbnVtOgogICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1VudGFnZ2VkRW51bSIKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBzaW1wbGVfZW51bQogICAgICAgIC0gbmV3X3R5cGUKICAgICAgICAtIGV4dGVybmFsbHlfdGFnZ2VkX2VudW0KICAgICAgICAtIHVudGFnZ2VkX2VudW0KICAgICAgICAtIGludGVybmFsbHlfdGFnZ2VkX2VudW0KICAgICAgICAtIGFkamFjZW50bHlfdGFnZ2VkX2VudW0KICAgICAgICAtIHR5cGVfY2hhbmdlZF9zdHJ1Y3QKICAgICAgICAtIHN0cnVjdF93aXRoX2NvbXBsZXhfb2JqZWN0cwogICAgVHlwZUNoYW5nZWRTdHJ1Y3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHRpbWVzdGFtcDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBVVEMgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcwogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZm9ybWF0OiBpbnQ2NAogICAgICByZXF1aXJlZDoKICAgICAgICAtIHRpbWVzdGFtcAogICAgVW50YWdnZWRFbnVtOgogICAgICBvbmVPZjoKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL05ld1R5cGUiCiAgICAgICAgICByZXF1aXJlZDoKICAgICAgICAgICAgLSB2YWx1ZQogICAgICAgIC0gZGVzY3JpcHRpb246IFZhcmlhbnQgZGVzY3JpcHRpb24KICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgYW5vdGhlcjoKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSW5saW5lZCBzdHJ1Y3QKICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgZmlyc3RfZmllbGQ6CiAgICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICAgICAgZm9ybWF0OiBpbnQzMgogICAgICAgICAgICAgICAgc2Vjb25kOgogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogRmllbGQgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgICAgICAtIGZpcnN0X2ZpZWxkCiAgICAgICAgICAgICAgICAtIHNlY29uZAogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgIC0gYW5vdGhlcgogIHNlY3VyaXR5U2NoZW1lczoKICAgIGJlYXJlckF1dGg6CiAgICAgIHR5cGU6IGh0dHAKICAgICAgc2NoZW1lOiBiZWFyZXIKICAgICAgYmVhcmVyRm9ybWF0OiBKV1QKYGBgCjwvcD4KPC9kZXRhaWxzPgo= readmeEtag: '"93ada7b30d97fd956334f7b2152c7c9a3a52bc79"' readmeLastModified: Wed, 05 Apr 2023 13:48:24 GMT repositoryId: 273586856 description: Rust OpenAPI 3.0 docs generator created: '2020-06-19T21:08:55Z' updated: '2024-08-14T07:06:47Z' language: Rust archived: false stars: 36 watchers: 3 forks: 8 owner: Rexagon logo: https://avatars.githubusercontent.com/u/7278479?v=4 license: Apache-2.0 repoEtag: '"45ab59b8b1cabdec058a16108380ee9299e5a6208ec9e5838a63d67284c913c8"' repoLastModified: Wed, 14 Aug 2024 07:06:47 GMT foundInMaster: true category: Parsers id: 06fd1d157b70af7d99fc62cfd47a1723 - source: - openapi3 tags - openapi31 tags name: openapi-processor-spring category: Server language: Java link: https://docs.openapiprocessor.io/spring repository: https://github.com/openapi-processor/openapi-processor-spring source_description: >- Generates java interfaces & model classes for Spring Boot (annotation based, MVC & WebFlux) from an openapi.yaml. Provides type mapping capabilities to adjust the generated code. Gradle support. v2: false v3: true repositoryMetadata: base64Readme: >- WyFbXVtiYWRnZS1jaV1dW3dvcmtmbG93LWNpXQpbIVtdW3NvbmFyLXRlY2RlYnRdXVtzb25hcl0KWyFbXVtiYWRnZS1jZW50cmFsXV1bb2FwLWNlbnRyYWxdCgohW29wZW5hcGktcHJvY2Vzc29yLXNwcmluZyBsb2dvXShpbWFnZXMvb3BlbmFwaS1wcm9jZXNzb3Itc3ByaW5nQDEyODB4MjAwLnBuZykKCiMgb3BlbmFwaS1wcm9jZXNzb3Itc3ByaW5nCgphbiBbT3BlbkFQSV1bb3BlbmFwaV0gaW50ZXJmYWNlIG9ubHkgJiBtb2RlbCBqYXZhIGNvZGUgZ2VuZXJhdG9yIGZvciBbU3ByaW5nIEJvb3RdW3NwcmluZ2Jvb3RdLgogCgojIGRvY3VtZW50YXRpb24KClNlZSBbaGVyZV1bb2FwLWRvY3NdLgoKIyBzbmFwc2hvdCByZXBvc2l0b3J5Cgp0byB1c2Ugc25hcHNob3QgdmVyc2lvbnMgYWRkIGBodHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzYCBhcyBtYXZlbiByZXBvc2l0b3J5IHRvIHlvdXIgYnVpbGQgZmlsZS4KCgpbb2FwLWNlbnRyYWxdOiBodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9aW8ub3BlbmFwaXByb2Nlc3NvcgpbYmFkZ2UtY2VudHJhbF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2lvLm9wZW5hcGlwcm9jZXNzb3Ivb3BlbmFwaS1wcm9jZXNzb3Itc3ByaW5nP2xhYmVsPU1hdmVuJTIwQ2VudHJhbApbYmFkZ2UtbGljZW5zZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1BcGFjaGUlMjAyLjAtYmx1ZS5zdmc/bGFiZWxDb2xvcj0zMTNBNDIKW2JhZGdlLWNpXTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktcHJvY2Vzc29yL29wZW5hcGktcHJvY2Vzc29yLXNwcmluZy93b3JrZmxvd3MvYnVpbGQvYmFkZ2Uuc3ZnCltvYXAtbGljZW5zZV06IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpLXByb2Nlc3Nvci9vcGVuYXBpLXByb2Nlc3Nvci1zcHJpbmcvYmxvYi9tYXN0ZXIvTElDRU5TRQpbd29ya2Zsb3ctY2ldOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1wcm9jZXNzb3Ivb3BlbmFwaS1wcm9jZXNzb3Itc3ByaW5nL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FidWlsZApbc29uYXItY292ZXJhZ2VdOiBodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1vcGVuYXBpLXByb2Nlc3Nvcl9vcGVuYXBpLXByb2Nlc3Nvci1zcHJpbmcmbWV0cmljPWNvdmVyYWdlCltzb25hci10ZWNkZWJ0XTogaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9b3BlbmFwaS1wcm9jZXNzb3Jfb3BlbmFwaS1wcm9jZXNzb3Itc3ByaW5nJm1ldHJpYz1zcWFsZV9pbmRleApbc29uYXJdOiBodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPW9wZW5hcGktcHJvY2Vzc29yX29wZW5hcGktcHJvY2Vzc29yLXNwcmluZwpbb2FwLWRvY3NdOiBodHRwczovL2RvY3Mub3BlbmFwaXByb2Nlc3Nvci5pbwpbb3BlbmFwaV06IGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8KW3NwcmluZ2Jvb3RdOiBodHRwczovL3NwcmluZy5pby9wcm9qZWN0cy9zcHJpbmctYm9vdAo= readmeEtag: '"30cd974a3ea4e6063e7047f83afc28193e69882a"' readmeLastModified: Sun, 04 Aug 2024 12:49:25 GMT repositoryId: 196863956 description: an OpenAPI 3.0 & 3.1 interface & model java code generator for Spring Boot created: '2019-07-14T17:16:49Z' updated: '2024-08-24T15:10:20Z' language: Kotlin archived: false stars: 35 watchers: 3 forks: 9 owner: openapi-processor logo: https://avatars.githubusercontent.com/u/66728774?v=4 license: Apache-2.0 repoEtag: '"fc5967ff65e138fbaeb36e9366fffefc261d880baa993170dbb3f31c93780741"' repoLastModified: Sat, 24 Aug 2024 15:10:20 GMT foundInMaster: true id: 544de493e48dbce482dd3fcfc87ad568 v3_1: true - source: openapi3 tags repository: https://github.com/dolmen-go/openapi-preprocessor v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXByZXByb2Nlc3NvcgoKYG9wZW5hcGktcHJlcHJvY2Vzc29yYCBpcyBhbiBwcm9jZXNzaW5nIHRvb2wgdGhhdCBnaXZlcyBmbGV4aWJpbGl0eSB0byBBUEkgZG9jdW1lbnRhdGlvbiBhdXRob3JzIGZvciB3cml0aW5nIE9wZW5BUEkgMi4wLzMueCBzcGVjaWZpY2F0aW9ucy4KClshW1RyYXZpcy1DSV0oaHR0cHM6Ly9hcGkudHJhdmlzLWNpLm9yZy9kb2xtZW4tZ28vb3BlbmFwaS1wcmVwcm9jZXNzb3Iuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvZG9sbWVuLWdvL29wZW5hcGktcHJlcHJvY2Vzc29yKQpbIVtDb2RlY292XShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvZG9sbWVuLWdvL29wZW5hcGktcHJlcHJvY2Vzc29yL21hc3Rlci5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvZG9sbWVuLWdvL29wZW5hcGktcHJlcHJvY2Vzc29yL2JyYW5jaC9tYXN0ZXIpClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9kb2xtZW4tZ28vb3BlbmFwaS1wcmVwcm9jZXNzb3IpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZG9sbWVuLWdvL29wZW5hcGktcHJlcHJvY2Vzc29yKQoKIyMgVXNlcyBDYXNlcwoKLSBBdXRob3IgeW91ciBPcGVuQVBJIHNwZWMgaW4gWUFNTCBidXQgcHVibGlzaCBhcyBKU09OLgotIFNwbGl0IHlvdXIgT3BlbkFQSSBzcGVjIHNvdXJjZSBpbiBtdWx0aXBsZSBmaWxlcyBmb3IgYXV0aG9yaW5nLCBidXQgcHVibGlzaCBhIHNpbmdsZSBmaWxlLgotIEJ1aWxkIG11bHRpcGxlIHNwZWNzIGZyb20gc2hhcmVkIHBhcnRzLgotIE1lcmdlIHNwZWMgZ2VuZXJhdGVkIGZyb20gc291cmNlIGNvZGUgd2l0aCB5b3VyIGFkZGl0aW9uYWwgY29udGVudCBjcmVhdGVkIGJ5IGhhbmQuCi0gVXNlIGFkdmFuY2VkIGlubGluaW5nIChgJGlubGluZWAsIGAkbWVyZ2VgKSB0byByZW1vdmUgZHVwbGljYXRpb24gKHNvdXJjZSBvZiBpbmNvbnNpc3RlbmNpZXMpLgotIFVzZSBhZHZhbmNlZCBpbmxpbmluZyAoYCRpbmxpbmVgLCBgJG1lcmdlYCkgdG8gcHJvZHVjZSBjb21wbGV4IHNjaGVtYXMgdGhhdCBzaGFyZSBzdWJzZXQgb2YgcHJvcGVydGllcy4KLSBEZXJpdmF0ZSBhIHNwZWMgdG8gYnVpbGQgYSBuZXcgc3BlYyB3aXRoIGFsdGVyZWQgc2VydmVycyBzZXR0aW5ncyBmb3IgbG9jYWxob3N0L3N0YWdpbmcvcHJlcHJvZCBlbnZpcm9ubWVudHMuCi0gKlN1Ym1pdCB5b3Vycy4uLioKCiMjIEZlYXR1cmVzCgotIEV2ZXJ5IHZhbGlkIE9wZW5BUEkgMi4wLzMueCBzcGVjaWZpY2F0aW9uIGlzIGEgdmFsaWQgaW5wdXQgKHNvIHlvdSBjYW4gZWFzaWx5IHN0YXJ0IHJlZmFjdG9yaW5nIGdyYWR1YWxseSBmcm9tIGFuIGV4aXN0aW5nIHNwZWMpCi0gQWxsb3dzIHRvIGJ1aWxkIGEgc3BlYyBmcm9tIG11bHRpcGxlIGZpbGVzOyBwcm9kdWNlcyBhIHNpbmdsZSBvdXRwdXQgZmlsZQotIFlBTUwgb3IgSlNPTiBpbnB1dAotIFByb2R1Y2VzIGFuIE9wZW5BUEkgd2l0aCBtYXhpbXVtIGNvbXBhdGliaWxpdHkgd2l0aCBjb25zdW1taW5nIHRvb2xzOgogIC0gc2ltcGxpZmllcyBjb21wbGV4IHBhcnRzIG9mIHRoZSBzcGVjIG5vdCBzdXBwb3J0ZWQgYnkgYWxsIHRvb2xzCiAgLSBKU09OIG91dHB1dAotIEFkZHMgYSBmZXcga2V5d29yZHMgKGAkaW5saW5lYCwgYCRtZXJnZWApIHRoYXQgYWxsb3cgdG8gYXZvaWQgZHVwbGljYXRpb24gb2YgY29udGVudCBhbmQgZWFzZSB0aGUgd3JpdGluZyBvZiBjb25zaXN0ZW50IGRvY3VtZW50YXRpb24KLSBSZW1vdmVzIHVudXNlZCBnbG9iYWwgc2NoZW1hcyAodW5kZXIgYC9jb21wb25lbnRzL3NjaGVtYXNgKSwgcGFyYW1ldGVycyAodW5kZXIgYC9jb21wb25lbnRzL3BhcmFtZXRlcnNgKSBhbmQgcmVzcG9uc2VzICh1bmRlciBgL2NvbXBvbmVudHMvcmVzcG9uc2VzYCkuIFRoaXMgcmVkdWNlcyByaXNrIG9mIGxlYWtpbmcgd29yayBpbiBwcm9ncmVzcyBvciBpbnRlcm5hbCBkZXRhaWxzLgoKIyMgSW5zdGFsbAoKIyMjIEluc3RhbGwgZnJvbSBzb3VyY2UKCkEgW0dvIGRldmVsb3BtZW50IGVudmlyb25tZW50XShodHRwczovL2dvbGFuZy5vcmcvZG9jL2luc3RhbGwjaW5zdGFsbCkgaXMgcmVxdWlyZWQuIEdvIDEuMTIrIHJlY29tbWVuZGVkLgoKQnVpbGQgYG9wZW5hcGktcHJlcHJvY2Vzc29yYCBiaW5hcnkgYW5kIGluc3RhbGwgaW4gYCRHT1BBVEgvYmluYDoKCiAgICAkIG1ha2UgaW5zdGFsbAoKIyMgVXNhZ2UKCiAgICBvcGVuYXBpLXByZXByb2Nlc3NvciBbPG9wdGlvbj4uLi5dIDxmaWxlPgoKIyMgS2V5d29yZHMKCiMjIyBgJHJlZmAKCiAgICB7ICIkcmVmIjogIjxmaWxlPiIgfQogICAgeyAiJHJlZiI6ICI8ZmlsZT4jPHBvaW50ZXI+IiB9CiAgICB7ICIkcmVmIjogIiM8cG9pbnRlcj4iIH0KCmAkcmVmYCBpcyBsaWtlIGluIE9wZW5BUEksIGJ1dCBpdCBjYW4gcmVmZXJlbmNlIGNvbnRlbnQgaW4gZXh0ZXJuYWwgZmlsZXMgdXNpbmcgcmVsYXRpdmUgVVJMcyBhcyB3ZWxsIGFzIGludHJhLWRvY3VtZW50LiBUaGUgcmVmZXJlbmNlZCBwYXJ0IG9mIHRoZSBwb2ludGVkIGRvY3VtZW50IGlzIGluamVjdGVkIGludG8gdGhlIG91dHB1dCBkb2N1bWVudC4KClJlc3RyaWN0aW9uczoKLSBKU09OIHBvaW50ZXIgbG9jYXRpb24gaW4gdGhlIG91dHB1dCBkb2N1bWVudCB3aWxsIGJlIHRoZSBzYW1lIGxvY2F0aW9uIGFzIGluIHRoZSByZWYgbGluay4gRXhhbXBsZTogYHsiJHJlZiI6ICJleHRlcm5hbC55bWwjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9JZCJ9YCB3aWxsIGltcG9ydCB0aGUgY29udGVudCB0byBgL2NvbXBvbmVudHMvcGFyYW1ldGVycy9JZGAuIFRoaXMgaW1wbGllcyB0aGF0IHBhcnRpYWwgZmlsZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGF5b3V0IGFzIGEgZnVsbCBzcGVjICh0aGlzIGlzIGEgZmVhdHVyZSBhcyBpdCBlbmZvcmNlcyByZWFkYWJpbGl0eSBvZiBwYXJ0aWFscykuCi0gb3RoZXIgcHJvcGVydGllcyBhbG9uZyBgJHJlZmAgYXJlIG5vdCBhbGxvd2VkIGFzIHRoZSBzZW1hbnRpY3MgaW4gSlNPTiBTY2hlbWEgYW5kIFN3YWdnZXIvT3BlbkFQSSBoYXMgZXZvbHZlZCBhbmQgdGhlIHN1cHBvcnQgaW4gY29uc3VtaW5nIHRvb2xzIG1heSB2YXJ5LiBVc2UgYCRtZXJnZWAgaW5zdGVhZCB0aGF0IGhhcyBhIHN0cmljdCBiZWhhdmlvdXIgaW4gdGhpcyB0b29sLgoKIyMjIGAkaW5saW5lYAoKICAgIHsgIiRpbmxpbmUiOiAiPGZpbGU+Izxwb2ludGVyPiJ9CgogICAgewogICAgICAgICIkaW5saW5lIjogIjxmaWxlPiM8cG9pbnRlcj4iLAogICAgICAgICJwb2ludGVyMSI6IDx2YWx1ZT4sIC8vIE92ZXJyaWRlcyB2YWx1ZSBhdCA8ZmlsZT4jPHBvaW50ZXI+L3BvaW50ZXIxCiAgICAgICAgInBvaW50ZXIyL3NsYXNoIjogPHZhbHVlPiAvLyBPdmVycmlkZXMgdmFsdWUgZGVlcGx5IGF0IDxmaWxlPiM8cG9pbnRlcj4vcG9pbnRlci9zbGFzaAogICAgfQoKYCRpbmxpbmVgIGlzIGFuIE9wZW5BUEkgZXh0ZW5zaW9uIGFsbG93aW5nIHRvIGluamVjdCBhIGNvcHkgb2YgYW5vdGhlciBwYXJ0IG9mIGEgZG9jdW1lbnQgaW4gcGxhY2UuIEtleXMgYWxvbmcgdGhlIGAkaW5saW5lYCBrZXl3b3JkIGFyZSBKU09OIHBvaW50ZXJzICh3aXRoIHRoZSBsZWFkaW5nIGAvYCByZW1vdmVkKSBhbGxvd2luZyB0byBvdmVycmlkZSBzb21lIHBhcnRzIG9mIHRoZSBpbmxpbmVkIGNvbnRlbnQuCgpJZiB0aGUgdGFyZ2V0IG9mIGAkaW5saW5lYCBpcyBhIGAkcmVmYCBhbmQgYCRpbmxpbmVgIGhhcyBvdmVycmlkZXMsIHRoZSBsaW5rIGlzIGRlcmVmZXJlbmNlZCByZWN1cnNpdmVseSBiZWZvcmUgaW5saW5pbmcuCgpOb3RlOiBkZWVwIGlubGluaW5nIChpbmxpbmluZyBhIG5vZGUgd2hpY2ggaXRzZWxmIHVzZSBgJGlubGluZWAgaW4gaXRzIHRyZWUpIG1pZ2h0IHdvcmssIGJ1dCB3aWxsIHByb2JhYmx5IG5vdCAoc2VlIFtpc3N1ZSAjNl0oaHR0cHM6Ly9naXRodWIuY29tL2RvbG1lbi1nby9vcGVuYXBpLXByZXByb2Nlc3Nvci9pc3N1ZXMvNikgYXMgYW4gZXhhbXBsZSkuIFVzZSBpbnN0ZWFkIGAkbWVyZ2VgIHdoaWNoIHN1cHBvcnRzIGl0LgoKIyMjIGAkbWVyZ2VgCgogICAgewogICAgICAgICIkbWVyZ2UiOiAiPGZpbGU+Izxwb2ludGVyPiIsCiAgICAgICAgImtleSI6IDx2YWx1ZT4sCiAgICAgICAgImtleS9zbGFzaCI6IDx2YWx1ZT4gLy8gT3ZlcnJpZGVzIHZhbHVlIGF0IDxmaWxlPiM8cG9pbnRlcj4va2V5fjFzbGFzaAogICAgfQoKICAgIHsKICAgICAgICAiJG1lcmdlIjogWwogICAgICAgICAgICAiPGZpbGUxPiM8cG9pbnRlcjE+IiwKICAgICAgICAgICAgIjxmaWxlMj4jPHBvaW50ZXIyPiIgLy8gT3ZlcnJpZGVzIGtleXMgZnJvbSA8ZmlsZTE+Izxwb2ludGVyMT4KICAgICAgICBdCiAgICAgICAgImtleSI6IDx2YWx1ZT4sCiAgICAgICAgImtleS9zbGFzaCI6IDx2YWx1ZT4gLy8gT3ZlcnJpZGVzIHZhbHVlIGF0IDxmaWxlMj4jPHBvaW50ZXIyPi9rZXl+MXNsYXNoCiAgICB9CgoKYCRtZXJnZWAgaXMgYW4gT3BlbkFQSSBleHRlbnNpb24gYWxsb3dpbmcgdG8gY29weSBhIG5vZGUsIG92ZXJyaWRpbmcgc29tZSBrZXlzLiBUaGlzIGlzIGEga2luZCBvZiBpbmxpbmVkICpgJHJlZmAgd2l0aCBrZXlzIG92ZXJyaWRlcyouCgojIyBFeGFtcGxlcwoKU2VlIHRoZSBbdGVzdHN1aXRlXShodHRwczovL2dpdGh1Yi5jb20vZG9sbWVuLWdvL29wZW5hcGktcHJlcHJvY2Vzc29yL3RyZWUvbWFzdGVyL3Rlc3RkYXRhKS4KClJ1bm5pbmcgYSBiYXNpYyBleGFtcGxlOgoKICAgICQgbWFrZQogICAgJCAuL29wZW5hcGktcHJlcHJvY2Vzc29yIHRlc3RkYXRhLzEwLXJlZi1leHQvaW5wdXQueW1sCgojIyBMaWNlbnNlCgpDb3B5cmlnaHQgMjAxOC0yMDIyIE9saXZpZXIgTWVuZ3XDqQoKTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCg== readmeEtag: '"abe2e736c1089b5f61d5ba586feeb3ee6c4b615a"' readmeLastModified: Thu, 21 Mar 2024 17:38:50 GMT repositoryId: 141041148 description: An authoring tool for OpenAPI specifications created: '2018-07-15T16:16:48Z' updated: '2024-01-04T16:20:18Z' language: Go archived: false stars: 34 watchers: 5 forks: 5 owner: dolmen-go logo: https://avatars.githubusercontent.com/u/22580372?v=4 license: Apache-2.0 repoEtag: '"0927c25c6c05f6c9e11ee179eafa0060a7967452a2999ebf586ecaefc6711d3b"' repoLastModified: Thu, 04 Jan 2024 16:20:18 GMT foundInMaster: true category: Parsers id: 084230f40fdffa9865facd7e88ca7499 - source: openapi3 tags repository: https://github.com/apidevtools/openapi-schemas v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWNpZmljYXRpb24gU2NoZW1hcwoKWyFbQ3Jvc3MtUGxhdGZvcm0gQ29tcGF0aWJpbGl0eV0oaHR0cHM6Ly9hcGl0b29scy5kZXYvaW1nL2JhZGdlcy9vcy1iYWRnZXMuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL29wZW5hcGktc2NoZW1hcy9hY3Rpb25zKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9vcGVuYXBpLXNjaGVtYXMvd29ya2Zsb3dzL0NJLUNEL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL29wZW5hcGktc2NoZW1hcy9hY3Rpb25zKQoKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvQVBJRGV2VG9vbHMvb3BlbmFwaS1zY2hlbWFzL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL0FQSURldlRvb2xzL29wZW5hcGktc2NoZW1hcykKWyFbRGVwZW5kZW5jaWVzXShodHRwczovL2RhdmlkLWRtLm9yZy9BUElEZXZUb29scy9vcGVuYXBpLXNjaGVtYXMuc3ZnKV0oaHR0cHM6Ly9kYXZpZC1kbS5vcmcvQVBJRGV2VG9vbHMvb3BlbmFwaS1zY2hlbWFzKQoKWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BhcGlkZXZ0b29scy9vcGVuYXBpLXNjaGVtYXMuc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGFwaWRldnRvb2xzL29wZW5hcGktc2NoZW1hcykKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AYXBpZGV2dG9vbHMvb3BlbmFwaS1zY2hlbWFzLnN2ZyldKExJQ0VOU0UpClshW0J1eSB1cyBhIHRyZWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvVHJlZXdhcmUtJUYwJTlGJThDJUIzLWxpZ2h0Z3JlZW4pXShodHRwczovL3BsYW50LnRyZWV3YXJlLmVhcnRoL0FQSURldlRvb2xzL29wZW5hcGktc2NoZW1hcykKCgoKVGhpcyBwYWNrYWdlIGNvbnRhaW5zIFsqKnRoZSBvZmZpY2lhbCBKU09OIFNjaGVtYXMqKl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vdHJlZS9tYXN0ZXIvc2NoZW1hcykgZm9yIGV2ZXJ5IHZlcnNpb24gb2YgU3dhZ2dlci9PcGVuQVBJIFNwZWNpZmljYXRpb246Cgp8IFZlcnNpb24gfCBTY2hlbWEgfCBEb2NzCnwtLS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLQp8IFN3YWdnZXIgMS4yICAgfCBbdjEuMiBzY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL3RyZWUvbWFzdGVyL3NjaGVtYXMvdjEuMikgICAgICAgICAgICAgICB8IFt2MS4yIGRvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzEuMi5tZCkKfCBTd2FnZ2VyIDIuMCAgIHwgW3YyLjAgc2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9zY2hlbWFzL3YyLjAvc2NoZW1hLmpzb24pICAgfCBbdjIuMCBkb2NzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQpCnwgT3BlbkFQSSAzLjAueCB8IFt2My4wLnggc2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9zY2hlbWFzL3YzLjAvc2NoZW1hLmpzb24pIHwgW3YzLjAuMyBkb2NzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMy5tZCkKfCBPcGVuQVBJIDMuMS54IHwgW3YzLjEueCBzY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3NjaGVtYXMvdjMuMS9zY2hlbWEuanNvbikgfCBbdjMuMS4wIGRvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMS4wLm1kKQoKCkFsbCBzY2hlbWFzIGFyZSBrZXB0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0IG9mZmljaWFsIGRlZmluaXRpb25zIHZpYSBhbiBhdXRvbWF0ZWQgQ0kvQ0Qgam9iLiDwn6SW8J+TpgoKCgpJbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KWW91IGNhbiBpbnN0YWxsIE9wZW5BUEkgU2NoZW1hcyB2aWEgW25wbV0oaHR0cHM6Ly9kb2NzLm5wbWpzLmNvbS9hYm91dC1ucG0vKS4KCmBgYGJhc2gKbnBtIGluc3RhbGwgQGFwaWRldnRvb2xzL29wZW5hcGktc2NoZW1hcwpgYGAKCgoKVXNhZ2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBkZWZhdWx0IGV4cG9ydCBjb250YWlucyBhbGwgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIHZlcnNpb25zOgoKYGBgamF2YXNjcmlwdApjb25zdCBvcGVuYXBpID0gcmVxdWlyZSgiQGFwaWRldnRvb2xzL29wZW5hcGktc2NoZW1hcyIpOwoKY29uc29sZS5sb2cob3BlbmFwaS52MSk7ICAgIC8vIHsgJHNjaGVtYSwgaWQsIHByb3BlcnRpZXMsIGRlZmluaXRpb25zLCAuLi4gfQpjb25zb2xlLmxvZyhvcGVuYXBpLnYyKTsgICAgLy8geyAkc2NoZW1hLCBpZCwgcHJvcGVydGllcywgZGVmaW5pdGlvbnMsIC4uLiB9CmNvbnNvbGUubG9nKG9wZW5hcGkudjMpOyAgICAvLyB7ICRzY2hlbWEsIGlkLCBwcm9wZXJ0aWVzLCBkZWZpbml0aW9ucywgLi4uIH0KY29uc29sZS5sb2cob3BlbmFwaS52MzEpOyAgICAvLyB7ICRzY2hlbWEsIGlkLCBwcm9wZXJ0aWVzLCBkZWZpbml0aW9ucywgLi4uIH0KYGBgCgpPciB5b3UgY2FuIGltcG9ydCB0aGUgc3BlY2lmaWMgdmVyc2lvbihzKSB0aGF0IHlvdSBuZWVkOgoKYGBgamF2YXNjcmlwdApjb25zdCB7IG9wZW5hcGlWMSwgb3BlbmFwaVYyLCBvcGVuYXBpVjMsIG9wZW5hcGlWMzEgfSA9IHJlcXVpcmUoIkBhcGlkZXZ0b29scy9vcGVuYXBpLXNjaGVtYXMiKTsKCmNvbnNvbGUubG9nKG9wZW5hcGlWMSk7ICAgIC8vIHsgJHNjaGVtYSwgaWQsIHByb3BlcnRpZXMsIGRlZmluaXRpb25zLCAuLi4gfQpjb25zb2xlLmxvZyhvcGVuYXBpVjIpOyAgICAvLyB7ICRzY2hlbWEsIGlkLCBwcm9wZXJ0aWVzLCBkZWZpbml0aW9ucywgLi4uIH0KY29uc29sZS5sb2cob3BlbmFwaVYzKTsgICAgLy8geyAkc2NoZW1hLCBpZCwgcHJvcGVydGllcywgZGVmaW5pdGlvbnMsIC4uLiB9CmNvbnNvbGUubG9nKG9wZW5hcGlWMzEpOyAgICAvLyB7ICRzY2hlbWEsIGlkLCBwcm9wZXJ0aWVzLCBkZWZpbml0aW9ucywgLi4uIH0KYGBgCgpZb3UgY2FuIHVzZSBhIEpTT04gU2NoZW1hIHZhbGlkYXRvciBzdWNoIGFzIFtaLVNjaGVtYV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvei1zY2hlbWEpIG9yIFtBSlZdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2FqdikgdG8gdmFsaWRhdGUgT3BlbkFQSSBkZWZpbml0aW9ucyBhZ2FpbnN0IHRoZSBzcGVjaWZpY2F0aW9uLgoKYGBgamF2YXNjcmlwdApjb25zdCB7IG9wZW5hcGlWMzEgfSA9IHJlcXVpcmUoIkBhcGlkZXZ0b29scy9vcGVuYXBpLXNjaGVtYXMiKTsKY29uc3QgWlNjaGVtYSA9IHJlcXVpcmUoInotc2NoZW1hIik7CgovLyBDcmVhdGUgYSBaU2NoZW1hIHZhbGlkYXRvcgpsZXQgdmFsaWRhdG9yID0gbmV3IFpTY2hlbWEoKTsKCi8vIFZhbGlkYXRlIGFuIE9wZW5BUEkgZGVmaW5pdGlvbiBhZ2FpbnN0IHRoZSBPcGVuQVBJIHYzLjAgc3BlY2lmaWNhdGlvbgp2YWxpZGF0b3IudmFsaWRhdGUob3BlbmFwaURlZmluaXRpb24sIG9wZW5hcGlWMzEpOwpgYGAKCgoKQ29udHJpYnV0aW5nCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkNvbnRyaWJ1dGlvbnMsIGVuaGFuY2VtZW50cywgYW5kIGJ1Zy1maXhlcyBhcmUgd2VsY29tZSEgIFtPcGVuIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vQVBJRGV2VG9vbHMvb3BlbmFwaS1zY2hlbWFzL2lzc3Vlcykgb24gR2l0SHViIGFuZCBbc3VibWl0IGEgcHVsbCByZXF1ZXN0XShodHRwczovL2dpdGh1Yi5jb20vQVBJRGV2VG9vbHMvb3BlbmFwaS1zY2hlbWFzL3B1bGxzKS4KCiMjIyMgQnVpbGRpbmcKVG8gYnVpbGQgdGhlIHByb2plY3QgbG9jYWxseSBvbiB5b3VyIGNvbXB1dGVyOgoKMS4gX19DbG9uZSB0aGlzIHJlcG9fXzxicj4KYGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vQVBJRGV2VG9vbHMvb3BlbmFwaS1zY2hlbWFzLmdpdGAKCjIuIF9fSW5zdGFsbCBkZXBlbmRlbmNpZXNfXzxicj4KYG5wbSBpbnN0YWxsYAoKMy4gX19CdWlsZCB0aGUgY29kZV9fPGJyPgpgbnBtIHJ1biBidWlsZGAKCjQuIF9fUnVuIHRoZSB0ZXN0c19fPGJyPgpgbnBtIHRlc3RgCgoKCkxpY2Vuc2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlbkFQSSBTY2hlbWFzIGlzIDEwMCUgZnJlZSBhbmQgb3Blbi1zb3VyY2UsIHVuZGVyIHRoZSBbTUlUIGxpY2Vuc2VdKExJQ0VOU0UpLiBVc2UgaXQgaG93ZXZlciB5b3Ugd2FudC4KClRoaXMgcGFja2FnZSBpcyBbVHJlZXdhcmVdKGh0dHA6Ly90cmVld2FyZS5lYXJ0aCkuIElmIHlvdSB1c2UgaXQgaW4gcHJvZHVjdGlvbiwgdGhlbiB3ZSBhc2sgdGhhdCB5b3UgWyoqYnV5IHRoZSB3b3JsZCBhIHRyZWUqKl0oaHR0cHM6Ly9wbGFudC50cmVld2FyZS5lYXJ0aC9BUElEZXZUb29scy9vcGVuYXBpLXNjaGVtYXMpIHRvIHRoYW5rIHVzIGZvciBvdXIgd29yay4gQnkgY29udHJpYnV0aW5nIHRvIHRoZSBUcmVld2FyZSBmb3Jlc3QgeW914oCZbGwgYmUgY3JlYXRpbmcgZW1wbG95bWVudCBmb3IgbG9jYWwgZmFtaWxpZXMgYW5kIHJlc3RvcmluZyB3aWxkbGlmZSBoYWJpdGF0cy4KCgoKQmlnIFRoYW5rcyBUbwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGFua3MgdG8gdGhlc2UgYXdlc29tZSBjb21wYW5pZXMgZm9yIHRoZWlyIHN1cHBvcnQgb2YgT3BlbiBTb3VyY2UgZGV2ZWxvcGVycyDinaQKClshW0dpdEh1Yl0oaHR0cHM6Ly9hcGl0b29scy5kZXYvaW1nL2JhZGdlcy9naXRodWIuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlKQpbIVtOUE1dKGh0dHBzOi8vYXBpdG9vbHMuZGV2L2ltZy9iYWRnZXMvbnBtLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS8pClshW0NvdmVyYWxsc10oaHR0cHM6Ly9hcGl0b29scy5kZXYvaW1nL2JhZGdlcy9jb3ZlcmFsbHMuc3ZnKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8pClshW1RyYXZpcyBDSV0oaHR0cHM6Ly9hcGl0b29scy5kZXYvaW1nL2JhZGdlcy90cmF2aXMtY2kuc3ZnKV0oaHR0cHM6Ly90cmF2aXMtY2kuY29tKQpbIVtTYXVjZUxhYnNdKGh0dHBzOi8vYXBpdG9vbHMuZGV2L2ltZy9iYWRnZXMvc2F1Y2UtbGFicy5zdmcpXShodHRwczovL3NhdWNlbGFicy5jb20pCg== readmeEtag: '"630689d883f00bf566fa29ef5b93e65f2cdee68c"' readmeLastModified: Sat, 01 May 2021 15:44:27 GMT repositoryId: 193236806 description: JSON Schemas for every version of the OpenAPI Specification created: '2019-06-22T13:26:54Z' updated: '2024-08-20T05:33:54Z' language: JavaScript archived: false stars: 34 watchers: 3 forks: 4 owner: APIDevTools logo: https://avatars.githubusercontent.com/u/43750074?v=4 license: MIT repoEtag: '"fce6bf42ff612fb1d41a11aa44ca2d6b2466ea3689d44cba70f2f271d1b00499"' repoLastModified: Tue, 20 Aug 2024 05:33:54 GMT foundInMaster: true category: Parsers id: 1dbb49e9733b078e9e04a157e4d9dc56 - source: openapi3 tags repository: https://github.com/mossaabfrifita/spring-boot-3-security-6-jwt v3: true id: 6d5a8382d9fc074802b8d7104eb367a8 repositoryMetadata: base64Readme: >- IyBKV1QgSW1wbGVtZW50YXRpb24gd2l0aCBTcHJpbmcgQm9vdCAzIGFuZCBTcHJpbmcgU2VjdXJpdHkgNgoKVGhpcyByZXBvc2l0b3J5IHNob3djYXNlcyBhIHByb2plY3QgdGhhdCBkZW1vbnN0cmF0ZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIEpTT04gV2ViIFRva2VucyAoSldUKSB3aXRoIFNwcmluZyBCb290IDMgYW5kIFNwcmluZyBTZWN1cml0eSA2LiBUaGUgcHJvamVjdCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWxpdGllczoKCi0gVXNlciBSZWdpc3RyYXRpb24gYW5kIExvZ2luIHdpdGggSldUIEF1dGhlbnRpY2F0aW9uCi0gUmVmcmVzaCBUb2tlbiBzdG9yZWQgaW4gZGIKLSBSb2xlLUJhc2VkIEF1dGhvcml6YXRpb24gd2l0aCBhdXRob3JpdGllcwotIEN1c3RvbWl6ZWQgQWNjZXNzIERlbmllZCBIYW5kbGluZwotIE9wZW5BUEkgRG9jdW1lbnRhdGlvbiBJbnRlZ3JhdGlvbiAoU3dhZ2dlcikKCiMgVGVjaG5vbG9naWVzCgotIFNwcmluZyBCb290IDMuMQotIFNwcmluZyBTZWN1cml0eQotIFNwcmluZyBEYXRhIEpQQQotIFNwcmluZyBCb290IGN1c3RvbSBWYWxpZGF0aW9uCi0gSlNPTiBXZWIgVG9rZW5zKEpXVCkKLSBCQ3J5cHQKLSBNYXZlbgotIE9wZW5BUEkoU3ByaW5nRG9jIEltcGwpCi0gTG9tYm9rCgojIEdldHRpbmcgU3RhcnRlZApUbyBnZXQgc3RhcnRlZCB3aXRoIHRoaXMgcHJvamVjdCwgeW91IHdpbGwgbmVlZCB0byBoYXZlIHRoZSBmb2xsb3dpbmcgaW5zdGFsbGVkIG9uIHlvdXIgbG9jYWwgbWFjaGluZToKLSBKREsgMTcrCi0gTWF2ZW4gMysKIyMgQ29uZmlndXJlIFNwcmluZyBEYXRhc291cmNlLCBKUEEsIEFwcCBwcm9wZXJ0aWVzCjEuIENsb25lIHRoZSByZXBvc2l0b3J5CjIuIE9wZW4gc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbApgYGAKc3ByaW5nOgogIGRhdGFzb3VyY2U6CiAgICBkcml2ZXItY2xhc3MtbmFtZTogb3JnLnBvc3RncmVzcWwuRHJpdmVyCiAgICB1cmw6IGpkYmM6cG9zdGdyZXNxbDovL2xvY2FsaG9zdDo1NDMyL2RiX3NlY3VyaXR5CiAgICB1c2VybmFtZTogcG9zdGdyZXMKICAgIHBhc3N3b3JkOiAke1BPU1RHUkVTX1BBU1NXT1JEfQogIGpwYToKICAgIGhpYmVybmF0ZToKICAgICAgZGRsLWF1dG86IGNyZWF0ZQogICAgc2hvdy1zcWw6IHRydWUKICAgIHByb3BlcnRpZXM6CiAgICAgIGhpYmVybmF0ZToKICAgICAgICBmb3JtYXRfc3FsOiB0cnVlCiAgICBkYXRhYmFzZTogcG9zdGdyZXNxbAogICAgZGF0YWJhc2UtcGxhdGZvcm06IG9yZy5oaWJlcm5hdGUuZGlhbGVjdC5Qb3N0Z3JlU1FMRGlhbGVjdApzZXJ2ZXI6CiAgcG9ydDogODA4NgphcHBsaWNhdGlvbjoKICBzZWN1cml0eToKICAgIGp3dDoKICAgICAgc2VjcmV0LWtleTogNTg2QjYzMzgzNDQxNkUzOTZENzQzNjc1Mzg3OTM4MkY0MjNGNDQyODQ4MkI0QzYyNTA2NTUzNjc1NjZCNTk3MAogICAgICBleHBpcmF0aW9uOiA4NjQwMDAwMCAjIGEgZGF5CiAgICAgIHJlZnJlc2gtdG9rZW46CiAgICAgICAgZXhwaXJhdGlvbjogNjA0ODAwMDAwICMgNyBkYXlzCmBgYAojIyBCdWlsZCBhbmQgcnVuIHRoZSBQcm9qZWN0Ci0gQnVpbGQgdGhlIHByb2plY3Q6IGBtdm4gY2xlYW4gaW5zdGFsbGAKLSBSdW4gdGhlIHByb2plY3Q6IGBtdm4gc3ByaW5nLWJvb3Q6cnVuYAoKVGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4Ni4KCiMgVGVzdCBwcm9qZWN0CiMjIFVzZXIgcmVnaXN0cmF0aW9uIGVuZHBvaW50CgpgUE9TVCBodHRwOi8vbG9jYWxob3N0OjgwODYvYXBpL3YxL2F1dGgvcmVnaXN0ZXJgCgohW3JlZ2lzdGVyXShyZWdpc3Rlci5QTkcpCgpGb3IgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBhbmQgdGVzdGluZyBvZiB0aGUgQVBJcywgYWNjZXNzIHRoZSBTd2FnZ2VyIFVJIGJ5IHZpc2l0aW5nOgpgYGAKaHR0cDovL2xvY2FsaG9zdDo4MDg2L3N3YWdnZXItdWkuaHRtbApgYGAK readmeEtag: '"b8d6ee48acd54595f25860d89532bd7d5ea1155c"' readmeLastModified: Thu, 21 Dec 2023 23:56:23 GMT repositoryId: 659193077 description: >- Spring Boot 3.1 & Spring Security 6 : Token Based Authentication example with JWT, Authorization, Spring Data & PostgreSQL created: '2023-06-27T10:15:47Z' updated: '2024-09-04T13:20:23Z' language: Java archived: false stars: 34 watchers: 3 forks: 12 owner: MossaabFrifita logo: https://avatars.githubusercontent.com/u/34568592?v=4 repoEtag: '"505b0f5d5e25c5152149c8739bf8ce0beaaf90c2492acbe8729932613fbe0233"' repoLastModified: Wed, 04 Sep 2024 13:20:23 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/konfig-sdks/openapi-examples v3: true id: b6d4b2fc8b2568e91841ef29462ff558 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KCiFbQmFubmVyXSguL2Jhbm5lci5wbmcpCgpbIVtMaWNlbnNlOiBNSVRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQoKPC9kaXY+Cg== readmeEtag: '"732401a7dda3a77bdf43a476c7662df9902220bd"' readmeLastModified: Sun, 11 Aug 2024 00:27:02 GMT repositoryId: 748795976 description: >- The highest quality collection of up-to-date OpenAPI specifications for public APIs on the internet. This dataset also includes descriptions, categories, uptime metrics, and media assets for every API. created: '2024-01-26T19:30:01Z' updated: '2024-09-04T12:40:31Z' language: null archived: false stars: 34 watchers: 1 forks: 3 owner: konfig-sdks logo: https://avatars.githubusercontent.com/u/156027835?v=4 repoEtag: '"d0e0526c08cc031cfd946ea244aa0bb93c0fae0b94603b0b0c449e9fa3d57d7b"' repoLastModified: Wed, 04 Sep 2024 12:40:31 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/bezkoder/spring-boot-swagger-3-example v3: true id: 2dcf393fa42baff255226528de79cac5 repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIDMgYW5kIFNwcmluZyBCb290IGV4YW1wbGUgKHdpdGggT3BlbkFQSSAzKQoKRG9jdW1lbnQgUkVTVCBBUEkgd2l0aCBTd2FnZ2VyIDMgaW4gU3ByaW5nIEJvb3QgZXhhbXBsZSAoZm9sbG93IE9wZW5BUEkgMyBzcGVjaWZpY2F0aW9uKS4gWW91IHdpbGwgYWxzbyBrbm93IHNldmVyYWwgd2F5cyB0byBjb25maWd1cmUgU3dhZ2dlciBBUEkgZGVzY3JpcHRpb24gYW5kIHJlc3BvbnNlLgoKRm9yIG1vcmUgZGV0YWlsLCBwbGVhc2UgdmlzaXQ6Cj4gW1NwcmluZyBCb290IHdpdGggU3dhZ2dlciAzIGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1zd2FnZ2VyLTMvKQoKWW91IGNhbiBhbHNvIGFwcGx5IHRoZSBjb2RlIGVhc2lseSBvbiBmb2xsb3dpbmcgUHJvamVjdHM6Cj4gW1NwcmluZyBCb290IDMgUkVTVCBBUEkgZXhhbXBsZV0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL3NwcmluZy1ib290LTMtcmVzdC1hcGkvKQoKPiBbU3ByaW5nIEJvb3QgUmVzdCBBUEkgd2l0aCBIMl0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL3NwcmluZy1ib290LWpwYS1oMi1leGFtcGxlLykKCj4gW1NwcmluZyBCb290IFJlc3QgQVBJIHdpdGggTXlTUUxdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1qcGEtY3J1ZC1yZXN0LWFwaS8pCgo+IFtTcHJpbmcgQm9vdCBSZXN0IEFQSSB3aXRoIFBvc3RncmVTUUxdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1wb3N0Z3Jlc3FsLWV4YW1wbGUvKQoKPiBbU3ByaW5nIEJvb3QgUmVzdCBBUEkgd2l0aCBTUUwgU2VydmVyXShodHRwczovL3d3dy5iZXprb2Rlci5jb20vc3ByaW5nLWJvb3Qtc3FsLXNlcnZlci8pCgo+IFtTcHJpbmcgQm9vdCBSZXN0IEFQSSB3aXRoIE1vbmdvREJdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1tb25nb2RiLWNydWQvKQoKPiBbU3ByaW5nIEJvb3QgUmVzdCBBUEkgd2l0aCBDYXNzYW5kcmFdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1jYXNzYW5kcmEtY3J1ZC8pCgo+IFtTcHJpbmcgQm9vdCBSZXN0IEFQSSB3aXRoIE9yYWNsZV0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL3NwcmluZy1ib290LWhpYmVybmF0ZS1vcmFjbGUvKQoKRnJvbnQtZW5kIHRoYXQgd29ya3Mgd2VsbCB3aXRoIHRoaXMgQmFjay1lbmQKPiBbQW5ndWxhciA4IENsaWVudF0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL2FuZ3VsYXItY3J1ZC1hcHAvKSAvIFtBbmd1bGFyIDEwIENsaWVudF0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL2FuZ3VsYXItMTAtY3J1ZC1hcHAvKSAvIFtBbmd1bGFyIDExIENsaWVudF0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL2FuZ3VsYXItMTEtY3J1ZC1hcHAvKSAvIFtBbmd1bGFyIDEyIENsaWVudF0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL2FuZ3VsYXItMTItY3J1ZC1hcHAvKSAvIFtBbmd1bGFyIDEzIENsaWVudF0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL2FuZ3VsYXItMTMtY3J1ZC1leGFtcGxlLykgLyBbQW5ndWxhciAxNCBDbGllbnRdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9hbmd1bGFyLTE0LWNydWQtZXhhbXBsZS8pIC8gW0FuZ3VsYXIgMTUgQ2xpZW50XShodHRwczovL3d3dy5iZXprb2Rlci5jb20vYW5ndWxhci0xNS1jcnVkLWV4YW1wbGUvKQoKPiBbVnVlIDIgQ2xpZW50XShodHRwczovL3d3dy5iZXprb2Rlci5jb20vdnVlLWpzLWNydWQtYXBwLykgLyBbVnVlIDMgQ2xpZW50XShodHRwczovL3d3dy5iZXprb2Rlci5jb20vdnVlLTMtY3J1ZC8pIC8gW1Z1ZXRpZnkgQ2xpZW50XShodHRwczovL3d3dy5iZXprb2Rlci5jb20vdnVldGlmeS1kYXRhLXRhYmxlLWV4YW1wbGUvKQoKPiBbUmVhY3QgQ2xpZW50XShodHRwczovL3d3dy5iZXprb2Rlci5jb20vcmVhY3QtaG9va3MtY3J1ZC1heGlvcy1hcGkvKSAvIFtSZWFjdCBSZWR1eCBDbGllbnRdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9yZWR1eC10b29sa2l0LWNydWQtcmVhY3QtaG9va3MvKQoKTW9yZSBQcmFjdGljZToKPiBbU3ByaW5nIEJvb3QgRmlsZSB1cGxvYWQgZXhhbXBsZSB3aXRoIE11bHRpcGFydCBGaWxlXShodHRwczovL3d3dy5iZXprb2Rlci5jb20vc3ByaW5nLWJvb3QtZmlsZS11cGxvYWQvKQoKPiBbU3ByaW5nIEJvb3QgUGFnaW5hdGlvbiAmIEZpbHRlciBleGFtcGxlIHwgU3ByaW5nIEpQQSwgUGFnZWFibGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1wYWdpbmF0aW9uLWZpbHRlci1qcGEtcGFnZWFibGUvKQoKPiBbU3ByaW5nIERhdGEgSlBBIFNvcnQvT3JkZXIgYnkgbXVsdGlwbGUgQ29sdW1ucyB8IFNwcmluZyBCb290XShodHRwczovL3d3dy5iZXprb2Rlci5jb20vc3ByaW5nLWRhdGEtc29ydC1tdWx0aXBsZS1jb2x1bW5zLykKCj4gW1NwcmluZyBCb290IFJlcG9zaXRvcnkgVW5pdCBUZXN0IHdpdGggQERhdGFKcGFUZXN0XShodHRwczovL3d3dy5iZXprb2Rlci5jb20vc3ByaW5nLWJvb3QtdW5pdC10ZXN0LWpwYS1yZXBvLWRhdGFqcGF0ZXN0LykKCj4gW0RlcGxveSBTcHJpbmcgQm9vdCBBcHAgb24gQVdTIOKAkyBFbGFzdGljIEJlYW5zdGFsa10oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL2RlcGxveS1zcHJpbmctYm9vdC1hd3MtZWIvKQoKRXhjZXB0aW9uIEhhbmRsaW5nOgo+IFtTcHJpbmcgQm9vdCBAQ29udHJvbGxlckFkdmljZSAmIEBFeGNlcHRpb25IYW5kbGVyIGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1jb250cm9sbGVyYWR2aWNlLWV4Y2VwdGlvbmhhbmRsZXIvKQoKPiBbQFJlc3RDb250cm9sbGVyQWR2aWNlIGV4YW1wbGUgaW4gU3ByaW5nIEJvb3RdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1yZXN0Y29udHJvbGxlcmFkdmljZS8pCgpTZWN1cml0eToKPiBbU3ByaW5nIEJvb3QgKyBTcHJpbmcgU2VjdXJpdHkgSldUIEF1dGhlbnRpY2F0aW9uICYgQXV0aG9yaXphdGlvbl0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL3NwcmluZy1ib290LWp3dC1hdXRoZW50aWNhdGlvbi8pCgpGdWxsc3RhY2s6Cj4gW1Z1ZSArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC12dWUtanMtY3J1ZC1leGFtcGxlLykKCj4gW0FuZ3VsYXIgOCArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9hbmd1bGFyLXNwcmluZy1ib290LWNydWQvKQoKPiBbQW5ndWxhciAxMCArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9hbmd1bGFyLTEwLXNwcmluZy1ib290LWNydWQvKQoKPiBbQW5ndWxhciAxMSArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9hbmd1bGFyLTExLXNwcmluZy1ib290LWNydWQvKQoKPiBbQW5ndWxhciAxMiArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9hbmd1bGFyLTEyLXNwcmluZy1ib290LWNydWQvKQoKPiBbQW5ndWxhciAxMyArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1hbmd1bGFyLTEzLWNydWQvKQoKPiBbQW5ndWxhciAxNCArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1hbmd1bGFyLTE0LWNydWQvKQoKPiBbQW5ndWxhciAxNSArIFNwcmluZyBCb290IGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1hbmd1bGFyLTE1LWNydWQvKQoKPiBbUmVhY3QgKyBTcHJpbmcgQm9vdCArIE15U1FMIGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9yZWFjdC1zcHJpbmctYm9vdC1jcnVkLykKCj4gW1JlYWN0ICsgU3ByaW5nIEJvb3QgKyBQb3N0Z3JlU1FMIGV4YW1wbGVdKGh0dHBzOi8vd3d3LmJlemtvZGVyLmNvbS9zcHJpbmctYm9vdC1yZWFjdC1wb3N0Z3Jlc3FsLykKClJ1biBib3RoIEJhY2stZW5kICYgRnJvbnQtZW5kIGluIG9uZSBwbGFjZToKPiBbSW50ZWdyYXRlIEFuZ3VsYXIgd2l0aCBTcHJpbmcgQm9vdCBSZXN0IEFQSV0oaHR0cHM6Ly93d3cuYmV6a29kZXIuY29tL2ludGVncmF0ZS1hbmd1bGFyLXNwcmluZy1ib290LykKCj4gW0ludGVncmF0ZSBSZWFjdC5qcyB3aXRoIFNwcmluZyBCb290IFJlc3QgQVBJXShodHRwczovL3d3dy5iZXprb2Rlci5jb20vaW50ZWdyYXRlLXJlYWN0anMtc3ByaW5nLWJvb3QvKQoKPiBbSW50ZWdyYXRlIFZ1ZS5qcyB3aXRoIFNwcmluZyBCb290IFJlc3QgQVBJXShodHRwczovL3d3dy5iZXprb2Rlci5jb20vaW50ZWdyYXRlLXZ1ZS1zcHJpbmctYm9vdC8pCgojIyBSdW4gU3ByaW5nIEJvb3QgYXBwbGljYXRpb24KYGBgCm12biBzcHJpbmctYm9vdDpydW4KYGBgCgo= readmeEtag: '"b53f18bde83eb6f6547ef70b47e6267d2a12e859"' readmeLastModified: Wed, 15 Mar 2023 03:35:06 GMT repositoryId: 614175956 description: >- Spring Boot and Swagger 3 example - configuration for API description / response example - Swagger annotations with OpenAPI 3 created: '2023-03-15T03:33:57Z' updated: '2024-08-06T03:49:00Z' language: Java archived: false stars: 33 watchers: 2 forks: 26 owner: bezkoder logo: https://avatars.githubusercontent.com/u/52996966?v=4 repoEtag: '"40d4b3a8d7599cef307c683a6b53d72d47bcb0f140a1980d9515713109164bda"' repoLastModified: Tue, 06 Aug 2024 03:49:00 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/data-fair/data-fair v3: true repositoryMetadata: base64Readme: >- IyA8aW1nIGFsdD0iRGF0YSBGQUlSIGxvZ28iIHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2RhdGEtZmFpci9kYXRhLWZhaXJAbWFzdGVyL3B1YmxpYy9hc3NldHMvbG9nby5zdmciIHdpZHRoPSI0MCI+IERhdGEgRkFJUgoKKkZpbmRhYmxlLCBBY2Nlc3NpYmxlLCBJbnRlcm9wZXJhYmxlIGFuZCBSZXVzYWJsZSBEYXRhKgoKW1Zpc2l0IGRvY3VtZW50YXRpb24gd2Vic2l0ZV0oaHR0cHM6Ly9kYXRhLWZhaXIuZ2l0aHViLmlvLzMvKQoKIVtdKGRvYy9zdGF0aWMvZGF0YS1mYWlyLmdpZikKCiMjIFNwb25zb3JzCgp8IHwgQ2xpY2sgW2hlcmUgdG8gc3VwcG9ydCB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBwcm9qZWN0XShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMva291bW91bC1kZXYpLiB8CnwtfC18CnwgWzxpbWcgYWx0PSJLb3Vtb3VsIGxvZ28iIHNyYz0iaHR0cHM6Ly9rb3Vtb3VsLmNvbS9zdGF0aWMvbG9nby1zbG9nYW4ucG5nIiBoZWlnaHQ9IjQwIj5dKGh0dHBzOi8va291bW91bC5jb20pIHwgW0tvdW1vdWxdKGh0dHBzOi8va291bW91bC5jb20pIGRldmVsb3BzIHRoZSBEYXRhIEZhaXIgZWNvc3lzdGVtIGFuZCBob3N0cyBpdCBhcyBhbiBvbmxpbmUgc2VydmljZS4gfAp8IFs8aW1nIGFsdD0iRGF3aXp6IGxvZ28iIHNyYz0iaHR0cHM6Ly9kYXdpenouZnIvbG9nby1EYXdpenotYWxsLWFib3V0LXlvdXItZGF0YS1ob21lLnBuZyIgaGVpZ2h0PSI0MCI+XShodHRwczovL2Rhd2l6ei5mcikgfCBbRGF3aXp6XShodHRwczovL2Rhd2l6ei5mcikgdXNlcyBEYXRhIEZhaXIgaW5zaWRlIGl0cyBwbGF0Zm9ybSBhbmQgc3VwcG9ydHMgaXRzIGRldmVsb3BtZW50LiB8CgojIyBEZXZlbG9wZXJzCgpUYWtlIGEgbG9vayBhdCB0aGUgW2NvbnRyaWJ1dGlvbiBndWlkZWxpbmVzXSguL0NPTlRSSUJVVElORy5tZCku readmeEtag: '"371ffe787bc5809f23aff5dfc3933f5feea445cb"' readmeLastModified: Tue, 13 Aug 2024 13:20:53 GMT repositoryId: 111959381 description: >- Findable, Accessible, Interoperable and Reusable Data. A complete open-source solution for your open and private data needs. French only for the time being, internationalization coming soon. created: '2017-11-24T22:19:00Z' updated: '2024-09-05T14:56:00Z' language: JavaScript archived: false stars: 33 watchers: 3 forks: 9 owner: data-fair logo: https://avatars.githubusercontent.com/u/83776320?v=4 license: AGPL-3.0 repoEtag: '"01ed70f0739f5e6c5160feadec1f170bb44d0a99e603ca8f361236ab0f147f08"' repoLastModified: Thu, 05 Sep 2024 14:56:00 GMT foundInMaster: true category: - Documentation - Server Implementations id: 384e501654823f177688cd3302ea80ee - source: openapi3 tags repository: https://github.com/luoyunchong/igeekfan.aspnetcore.rapidoc v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KPGgxIGFsaWduPSJjZW50ZXIiPiA8aW1nIGFsdD0iTXJpbkRvYyBsb2dvIiBzcmM9ImRvY3MvaW1hZ2VzL2xvZ28ucG5nIiB3aWR0aD0iNDBweCIgLz4gIElHZWVrRmFuLkFzcE5ldENvcmUuUmFwaURvYyA8L2gxPgoKKipbUmFwaURvY10oaHR0cHM6Ly9naXRodWIuY29tL21yaW45L1JhcGlEb2MpKiogQ3VzdG9tIEVsZW1lbnQgZm9yIE9wZW4tQVBJIHNwZWMgdmlld2luZyDvvIxTdXBwb3J0IC5ORVQgQ29yZTMuMSDjgIEuTkVUIFN0YW5kYXJkMi4w44CBLk5FVDUuMOOAgS5ORVQ2LjDjgIIKClshWy5ORVQgSURFIFJpZGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9zdHlsZT1mbG9hdCZsb2dvPXJpZGVyJmxhYmVsPVJpZGVyJm1lc3NhZ2U9amV0YnJhaW5zJmNvbG9yPXJlZCldKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vcmlkZXIvKQpbIVtHaXRIdWIgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZyldKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sdW95dW5jaG9uZy9JR2Vla0Zhbi5Bc3BOZXRDb3JlLlJhcGlEb2MvbWFzdGVyL0xJQ0VOU0UpCjxwPgogICAgPHNwYW4+RW5nbGlzaDwvc3Bhbj4gfCAgCiAgICA8YSBocmVmPSJSRUFETUUuemgtQ04ubWQiPuS4reaWhzwvYT4KPC9wPgo8L2Rpdj4KCkFuIEFQSSBkb2N1bWVudCB0aGF0IGltcGxlbWVudHMgc3dhZ2dlciAyLjAgYW5kIE9wZW5BUEkgMy4wLiBJIGludGVncmF0ZSBpdCBpbnRvIGFzcG5ldGNvcmXjgIIKCiMjIEZlYXR1cmVzCi0gU3VwcG9ydHMgU3dhZ2dlciAyLjAgYW5kIE9wZW5BUEkgMy4wCi0gV29ya3Mgd2l0aCBhbnkgZnJhbWV3b3JrIG9yIHdpdGggbm8gZnJhbWV3b3JrCi0gQWxsb3dzIG1ha2luZyBBUEkgY2FsbHMuIEFuZCBNb3JlLi4uLgotIEZvciBtb3JlIGZlYXR1cmVzLCBwbGVhc2UgcmVmZXIgdG8gKipbUmFwaURvY10oaHR0cHM6Ly9naXRodWIuY29tL21yaW45L1JhcGlEb2MpIFJFQURNRSoqCgojIyBOdWdldCBQYWNrYWdlcwoKUGFja2FnZSBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzaW9uICAgICAgICAgICAgICAgICAgICAgfCBEb3dubG9hZHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0KYElHZWVrRmFuLkFzcE5ldENvcmUuUmFwaURvY2AgfCBbIVtOdUdldF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC92L0lHZWVrRmFuLkFzcE5ldENvcmUuUmFwaURvYy5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmbGFiZWw9bnVnZXQmY29sb3I9ZmVkY2JhKV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0lHZWVrRmFuLkFzcE5ldENvcmUuUmFwaURvYy8pIHwgIVtkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvZHQvSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jLnN2ZykKYElHZWVrRmFuLkFzcE5ldENvcmUuUmFwaURvYy5FeHRyYWAgfCBbIVtOdUdldF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC92L0lHZWVrRmFuLkFzcE5ldENvcmUuUmFwaURvYy5FeHRyYS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmbGFiZWw9bnVnZXQpXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jLkV4dHJhLykgfCAhW2Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC9kdC9JR2Vla0Zhbi5Bc3BOZXRDb3JlLlJhcGlEb2MuRXh0cmEuc3ZnKQoKIAojIyBEZXBlbmRlbmNpZXMKIyMjIFtSYXBpRG9jXShodHRwczovL2dpdGh1Yi5jb20vbXJpbjkvUmFwaURvYykKLSByYXBpZG9jXih2ZXJzaW9uKSBbaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvcmFwaWRvY10oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvcmFwaWRvYykKIyMjIFtTd2FzaGJ1Y2tsZS5Bc3BOZXRDb3JlXShodHRwczovL2dpdGh1Yi5jb20vZG9tYWluZHJpdmVuZGV2L1N3YXNoYnVja2xlLkFzcE5ldENvcmUpCi0gU3dhc2hidWNrbGUuQXNwTmV0Q29yZS5Td2FnZ2VyCi0gU3dhc2hidWNrbGUuQXNwTmV0Q29yZS5Td2FnZ2VyR2VuCgojIyBEZW1vCi0gW0Jhc2ljXShodHRwczovL2dpdGh1Yi5jb20vbHVveXVuY2hvbmcvSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jL2Jsb2IvbWFzdGVyL3Rlc3QvQmFzaWMpCi0gW1JhcGlEb2NEZW1vXShodHRwczovL2dpdGh1Yi5jb20vbHVveXVuY2hvbmcvSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jL2Jsb2IvbWFzdGVyL3Rlc3QvUmFwaURvY0RlbW8pCi0gW09BdXRoMkludGVncmF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbHVveXVuY2hvbmcvSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jL2Jsb2IvbWFzdGVyL3Rlc3QvV2ViU2l0ZXMvT0F1dGgySW50ZWdyYXRpb24pCi0gW0FTUE5FVCBDb3JlIDZdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdW95dW5jaG9uZy9JR2Vla0Zhbi5Bc3BOZXRDb3JlLlJhcGlEb2MvYmxvYi9tYXN0ZXIvdGVzdC9Bc3BOZXRDb3JlNl9SYXBpRGVtbykKIyMg8J+TmiBRdWlja1N0YXJ0CgojIyMg8J+agCBJbnN0YWxsIFBhY2thZ2UKdXNlIFN3YXNoYnVja2xlLkFzcE5ldENvcmUuU3dhZ2dlciBDb21wb25lbnRzCgoxLkluc3RhbGwgdGhlIHN0YW5kYXJkIE51Z2V0IHBhY2thZ2UgaW50byB5b3VyIEFTUC5ORVQgQ29yZSBhcHBsaWNhdGlvbi4KCmBgYApQYWNrYWdlIE1hbmFnZXIgOiAKCkluc3RhbGwtUGFja2FnZSBTd2FzaGJ1Y2tsZS5Bc3BOZXRDb3JlLlN3YWdnZXIKSW5zdGFsbC1QYWNrYWdlIFN3YXNoYnVja2xlLkFzcE5ldENvcmUuU3dhZ2dlckdlbgpJbnN0YWxsLVBhY2thZ2UgSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jCgpPUgoKQ0xJIDoKCmRvdG5ldCBhZGQgcGFja2FnZSBTd2FzaGJ1Y2tsZS5Bc3BOZXRDb3JlLlN3YWdnZXIKZG90bmV0IGFkZCBwYWNrYWdlIFN3YXNoYnVja2xlLkFzcE5ldENvcmUuU3dhZ2dlckdlbgpkb3RuZXQgYWRkIHBhY2thZ2UgSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jCmBgYAoKMi5JbiB0aGUgQ29uZmlndXJlU2VydmljZXMgbWV0aG9kIG9mIFN0YXJ0dXAuY3MsIHJlZ2lzdGVyIHRoZSBTd2FnZ2VyIGdlbmVyYXRvciwgZGVmaW5pbmcgb25lIG9yIG1vcmUgU3dhZ2dlciBkb2N1bWVudHMuCgpgYGAKdXNpbmcgTWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLkNvbnRyb2xsZXJzCnVzaW5nIE1pY3Jvc29mdC5PcGVuQXBpLk1vZGVsczsKdXNpbmcgU3dhc2hidWNrbGUuQXNwTmV0Q29yZS5Td2FnZ2VyR2VuOwp1c2luZyBJR2Vla0Zhbi5Bc3BOZXRDb3JlLlJhcGlEb2M7CmBgYAojIyMg8J+agSBDb25maWd1cmVTZXJ2aWNlcwoKMy5TZXJ2aWNlcyBDb25maWd1cmUKYGBgCiAgIHNlcnZpY2VzLkFkZFN3YWdnZXJHZW4oYyA9PgogICAgewogICAgICAgIGMuU3dhZ2dlckRvYygidjEiLG5ldyBPcGVuQXBpSW5mb3tUaXRsZSA9ICJBUEkgVjEiLFZlcnNpb24gPSAidjEifSk7CiAgICAgICAgdmFyIGZpbGVQYXRoID0gUGF0aC5Db21iaW5lKFN5c3RlbS5BcHBDb250ZXh0LkJhc2VEaXJlY3RvcnksJCJ7dHlwZW9mKFN0YXJ0dXApLkFzc2VtYmx5LkdldE5hbWUoKS5OYW1lfS54bWwiKTsKICAgICAgICBjLkluY2x1ZGVYbWxDb21tZW50cyhmaWxlUGF0aCwgdHJ1ZSk7CiAgICB9KTsKYGBgCgojIyMg8J+SqiBDb25maWd1cmUKNC4gTWlkZGxld2FyZSBDb25maWd1cmUKYGBgCmFwcC5Vc2VTd2FnZ2VyKCk7CgphcHAuVXNlUmFwaURvY1VJKGMgPT4KewogICAgYy5Sb3V0ZVByZWZpeCA9ICIiOyAvLyBzZXJ2ZSB0aGUgVUkgYXQgcm9vdAogICAgYy5Td2FnZ2VyRW5kcG9pbnQoIi92MS9hcGktZG9jcyIsICJWMSBEb2NzIik7CiAgICAvL2h0dHBzOi8vbXJpbjkuZ2l0aHViLmlvL1JhcGlEb2MvYXBpLmh0bWwKICAgIC8vVGhpcyBDb25maWcgSGlnaGVyIHByaW9yaXR5CiAgICBjLkdlbmVyaWNSYXBpQ29uZmlnID0gbmV3IEdlbmVyaWNSYXBpQ29uZmlnKCkKICAgIHsKICAgICAgICBSZW5kZXJTdHlsZSA9ICJyZWFkIiwKICAgICAgICBUaGVtZSA9ICJsaWdodCIsLy9saWdodCB8IGRhcmsKICAgICAgICBTY2hlbWFTdHlsZSA9ICJ0YWJsZSIvLy8vdHJlZSB8IHRhYmxlCiAgICB9Owp9KTsKCmFwcC5Vc2VFbmRwb2ludHMoZW5kcG9pbnRzID0+CnsKICAgIGVuZHBvaW50cy5NYXBDb250cm9sbGVycygpOwogICAgZW5kcG9pbnRzLk1hcFN3YWdnZXIoIntkb2N1bWVudE5hbWV9L2FwaS1kb2NzIik7Cn0pOwpgYGAKW2h0dHBzOi8vbXJpbjkuZ2l0aHViLmlvL1JhcGlEb2MvYXBpLmh0bWxdKGh0dHBzOi8vbXJpbjkuZ2l0aHViLmlvL1JhcGlEb2MvYXBpLmh0bWwpIEdlbmVyaWNSYXBpQ29uZmlnIENvbmZpZ3VyYXRpb24gaXRlbXMgcmVmZXIgdG8gdGhpcyBkb2N1bWVudAoKIyMjIPCflI4gVmlld3MKUnVuIFByb2plY3TvvIxPcGVuIFdlYlNpdGUgaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9pbmRleC5odG1sIy9ob21lCgohW2RvY3MvaW1hZ2VzL3ZpZXcucG5nXShkb2NzL2ltYWdlcy92aWV3LnBuZykKCjUuTW9yZSBDb25maWd1cmUKClRvIGFkZCBjb21tZW50cyB0byBhIGRvY3VtZW50LCByaWdodC1jbGljayBvbiB0aGUgcHJvamVjdCAtIHByb3BlcnRpZXMgLSBnZW5lcmF0ZQoKIVtdKGh0dHBzOi8vcGljLmRvd25rLmNjL2l0ZW0vNWYzNDE2MWQxNDE5NWFhNTk0MTNmMGZjLmpwZykKCkluIEFkZFN3YWdnZXJHZW4gTWV0aG9kcyBZb3Ugc2hvdWxkIGFkZCB0aGlzIG1ldGhvbmQKCmBgYApjLkluY2x1ZGVYbWxDb21tZW50cyhQYXRoLkNvbWJpbmUoQXBwQ29udGV4dC5CYXNlRGlyZWN0b3J5LCAiU3dhZ2dlckRlbW8ueG1sIiksdHJ1ZSk7CmBgYApUaGUgbGFzdCBwYXJhbWV0ZXIgaXMgc2V0IHRvIHRydWUgdG8gZW5hYmxlIGNvbW1lbnRzIG9uIHRoZSBjb250cm9sbGVyCgoKCiMjIyBOU3dhZy5Bc3BOZXRDb3JlCgpBbm90aGVyIHdheQoKUGxlYXNlIHJlZmVyIHRvIHRoZSB0YWJsZSBvZiBjb250ZW50cyBbdGVzdC9XZWJTaXRlcy9OU3dhZy5Td2FnZ2VyLlJhcGlEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdW95dW5jaG9uZy9JR2Vla0Zhbi5Bc3BOZXRDb3JlLlJhcGlEb2MvdHJlZS9tYXN0ZXIvdGVzdC9XZWJTaXRlcy9OU3dhZy5Td2FnZ2VyLlJhcGlEb2MpCgpgYGAKUGFja2FnZSBNYW5hZ2VyIDogCgpJbnN0YWxsLVBhY2thZ2UgSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jCgpPUgoKQ0xJIDoKCmRvdG5ldCBhZGQgcGFja2FnZSBOU3dhZy5Bc3BOZXRDb3JlCmBgYAoKYGBgCnB1YmxpYyB2b2lkIENvbmZpZ3VyZVNlcnZpY2VzKElTZXJ2aWNlQ29sbGVjdGlvbiBzZXJ2aWNlcykKIHsKICAgIC8vIOWFtuWug1NlcnZpY2UKICAgICBzZXJ2aWNlcy5BZGRPcGVuQXBpRG9jdW1lbnQoKTsKIH0KYGBgCgpgYGAKcHVibGljIHZvaWQgQ29uZmlndXJlKElBcHBsaWNhdGlvbkJ1aWxkZXIgYXBwLCBJV2ViSG9zdEVudmlyb25tZW50IGVudikKewogICAgICAgIC8vIOWFtuWugyBVc2UKICAgICAgYXBwLlVzZU9wZW5BcGkoKTsKICAgICAgYXBwLlVzZVJhcGlEb2NVSShjID0+CiAgICAgewogICAgICAgICAgIGMuUm91dGVQcmVmaXggPSAiIjsKICAgICAgICAgICBjLlN3YWdnZXJFbmRwb2ludCgiL3N3YWdnZXIvdjEvc3dhZ2dlci5qc29uIik7CiAgICAgICAgICAgLy9odHRwczovL21yaW45LmdpdGh1Yi5pby9SYXBpRG9jL2FwaS5odG1sCiAgICAgICAgICAgLy9UaGlzIENvbmZpZyBIaWdoZXIgcHJpb3JpdHkKICAgICAgICAgICBjLkdlbmVyaWNSYXBpQ29uZmlnID0gbmV3IEdlbmVyaWNSYXBpQ29uZmlnKCkKICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSA9ICJyZWFkIiwKICAgICAgICAgICAgICAgIFRoZW1lID0gImxpZ2h0IiwvL2xpZ2h0IHwgZGFyawogICAgICAgICAgICAgICAgU2NoZW1hU3R5bGUgPSAidGFibGUiLy8vL3RyZWUgfCB0YWJsZQogICAgICAgICAgIH07CiAgICAgIH0pOwp9CmBgYApFdmVyeSBUaGluZ3MgaXMgT2suIE5vd++8jCBZb3UgY2FuIHZpc2lzdCBSYXBpRG9jCgoKCiMjIyBJR2Vla0Zhbi5Bc3BOZXRDb3JlLlJhcGlEb2MuRXh0cmEKVGhlcmUgaXMgb25seSBvbmUgY2xhc3PvvIxEaXNwbGF5IGxhYmVscyBvbiBtZXRob2RzIHRocm91Z2ggJ2ZpbHRlcicKCkNMSSAKYGBgCmRvdG5ldCBhZGQgcGFja2FnZSBJR2Vla0Zhbi5Bc3BOZXRDb3JlLlJhcGlEb2MuRXh0cmEKYGBgCgppbiBBZGRTd2FnZ2VyR2VuIHNlcnZpY2VzIGFkZCBgUmFwaURvY0xhYmxlT3BlcmF0aW9uRmlsdGVyYCBGaWx0ZXLjgIEKCllvdXIgbmVlZCBhZGQgdGhpcyBuYW1lc3BhY2VgSUdlZWtGYW4uQXNwTmV0Q29yZS5SYXBpRG9jLkV4dHJhYAoKYGBgZGlmZgpidWlsZGVyLlNlcnZpY2VzLkFkZFN3YWdnZXJHZW4oYyA9Pgp7CisgICBjLk9wZXJhdGlvbkZpbHRlcjxSYXBpRG9jTGFibGVPcGVyYXRpb25GaWx0ZXI+KCk7CiAgICB2YXIgZmlsZVBhdGggPSBQYXRoLkNvbWJpbmUoU3lzdGVtLkFwcENvbnRleHQuQmFzZURpcmVjdG9yeSwgJCJ7dHlwZW9mKFByb2dyYW0pLkFzc2VtYmx5LkdldE5hbWUoKS5OYW1lfS54bWwiKTsKICAgIGMuSW5jbHVkZVhtbENvbW1lbnRzKGZpbGVQYXRoLCB0cnVlKTsKICAgIGMuU3dhZ2dlckRvYygidjEiLCBuZXcgT3BlbkFwaUluZm8geyBUaXRsZSA9ICJBc3BOZXRDb3JlNl9SYXBpRGVtbyIsIFZlcnNpb24gPSAidjEiIH0pOwp9KTsKYGBgCgoKSW4gWW91ciBDb250cm9sbGVy77yMWW91IGNhbiBhZGQgdGhpcyBhdHRyaWJ1dGUgdG8gdGhlIG1ldGhvZAoKYGBgZGlmZgorICAgW1JhcGlEb2NMYWJlbCgiQ29yZSBBcGkiKV0KKyAgIFtSYXBpRG9jTGFiZWwoIlRlc3QiLFJhcGlEb2NDb2xvci5SRUQpXQogICAgW0h0dHBHZXQoTmFtZSA9ICJHZXRXZWF0aGVyRm9yZWNhc3QiKV0KICAgIHB1YmxpYyBJRW51bWVyYWJsZTxXZWF0aGVyRm9yZWNhc3Q+IEdldCgpCiAgICB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CmBgYApWaWV3cwoKIVtkb2NzL2ltYWdlcy9saWdodC1iYWRnZXMucG5nXShkb2NzL2ltYWdlcy9saWdodC1iYWRnZXMucG5nKQoKLSBJbiBhcHBzZXR0aW5ncy5qc29uIAoKYGBgY3NoYXJwCmJ1aWxkZXIuU2VydmljZXMuQ29uZmlndXJlPFJhcGlEb2NPcHRpb25zPihjID0+ewogICAgYnVpbGRlci5Db25maWd1cmF0aW9uLkJpbmQoIlJhcGlEb2MiLCBjKTsKfSk7CmBgYAoKYW9vc2V0dGluZ3MuanNvbgpgYGBqc29uCiAiUmFwaURvYyI6IHsKICAgICJSb3V0ZVByZWZpeCI6ICJzd2FnZ2VyIiwKICAgICJEb2N1bWVudFRpdGxlIjogIkFTUE5FVCBDT1JFIDYgUkFQSSBET0MiLAogICAgIkdlbmVyaWNSYXBpQ29uZmlnIjogewogICAgICAiVGhlbWUiOiAiZGFyayIKICAgIH0KICB9CmBgYApVc2UgTWlkZGxld2FyZSBDb25maWcgSGlnaGVyIHByaW9yaXR5LCBBbGwgR2VuZXJpY1JhcGlDb25maWcgY2FuIGNvbmZpZ3VyYXRpb24gaW4geW91IGFwcHNldHRpbmdzLmpzb24sUGxlYXNlIHJlZmVyIHRvIHRoaXMgZG9jdW1lbnRzIFtodHRwczovL21yaW45LmdpdGh1Yi5pby9SYXBpRG9jL2FwaS5odG1sXShodHRwczovL21yaW45LmdpdGh1Yi5pby9SYXBpRG9jL2FwaS5odG1sKQpgYGBjc2hhcnAKIGFwcC5Vc2VSYXBpRG9jVUkoYyA9PgogICAgewogICAgICAgIC8vVGhpcyBDb25maWcgSGlnaGVyIHByaW9yaXR5CiAgICAgICAgYy5HZW5lcmljUmFwaUNvbmZpZyA9IG5ldyBHZW5lcmljUmFwaUNvbmZpZygpCiAgICAgICAgewogICAgICAgICAgICBSZW5kZXJTdHlsZT0gInJlYWQiLC8vcmVhZCB8IHZpZXcgfCBmb2N1c2VkCiAgICAgICAgICAgIFRoZW1lPSJsaWdodCIsLy9saWdodCB8IGRhcmsKICAgICAgICAgICAgU2NoZW1hU3R5bGU9ICJ0YWJsZSIvL3RyZWUgfCB0YWJsZQogICAgICAgIH07CgogICAgfSk7CmBgYAoKIyMjIE1vcmUgQ29uZmlndXJlCgotIFtodHRwczovL2dpdGh1Yi5jb20vZG9tYWluZHJpdmVuZGV2L1N3YXNoYnVja2xlLkFzcE5ldENvcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kb21haW5kcml2ZW5kZXYvU3dhc2hidWNrbGUuQXNwTmV0Q29yZSkKLSBbaHR0cHM6Ly9tcmluOS5naXRodWIuaW8vUmFwaURvYy9hcGkuaHRtbF0oaHR0cHM6Ly9tcmluOS5naXRodWIuaW8vUmFwaURvYy9hcGkuaHRtbCkKCg== readmeEtag: '"4b762d10a1a847aa413b673b6d8043b50af83d96"' readmeLastModified: Fri, 03 May 2024 06:20:10 GMT repositoryId: 352583663 description: RapiDoc Custom Element for Open-API spec viewing +asp.net core created: '2021-03-29T09:17:57Z' updated: '2024-07-10T17:35:56Z' language: C# archived: false stars: 33 watchers: 4 forks: 2 owner: luoyunchong logo: https://avatars.githubusercontent.com/u/18613266?v=4 license: MIT repoEtag: '"33c0e9ecd882d99567022bef3c47009dbaa946b62010b4df08e385b04c4fb88c"' repoLastModified: Wed, 10 Jul 2024 17:35:56 GMT foundInMaster: true category: SDK id: 35f12ae192b1843f5eb2aa583dc33f45 - source: openapi3 tags repository: https://github.com/contentjet/openapi-ui v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFVJCgpUaGlzIGlzIGEgUmVhY3QgYmFzZWQgc2luZ2xlIHBhZ2UgYXBwIHdoaWNoIHJlbmRlcnMgZG9jdW1lbnRhdGlvbiBmcm9tIGEgdmFsaWQgT3BlbkFQSSAzLjAuMC1SQzAgZG9jdW1lbnQuCgojIE5PVEUKClRoaXMgcHJvamVjdCB3YXMgZXhwZXJpbWVudGFsIGFuZCBpcyBub3QgYmVpbmcgYWN0aXZlbHkgbWFpbnRhaW5lZC4KCiMjIEdldHRpbmcgc3RhcnRlZAoKIyMjIyBQcm9qZWN0IHNldHVwCgpJbnN0YWxsIHByb2plY3QgZGVwZW5kZW5jaWVzOgoKYGBgCm5wbSBpbnN0YWxsCmBgYAoKIyMjIyBSdW4gZGV2ZWxvcG1lbnQgc2VydmVyCgpgYGAKbnBtIHN0YXJ0CmBgYAoKIyMjIyBSdW4gbGludGVyCgpgYGAKbnBtIHJ1biBsaW50CmBgYAoKIyMjIyBDcmVhdGUgcHJvZHVjdGlvbiBidWlsZAoKYGBgCm5wbSBydW4gYnVpbGQKYGBgCg== readmeEtag: '"096c9725fbaffffd629a454da4dc657fefc07dd4"' readmeLastModified: Thu, 15 Aug 2019 06:16:12 GMT repositoryId: 84547405 description: React based OpenAPI 3.0+ documentation generator created: '2017-03-10T10:16:22Z' updated: '2023-10-16T16:32:26Z' language: JavaScript archived: false stars: 32 watchers: 1 forks: 3 owner: contentjet logo: https://avatars.githubusercontent.com/u/21168640?v=4 repoEtag: '"84156f80826ad3ac936ef4d80f4cf796a17a62ab8f8de7fcc4dd0c7b2d47fe79"' repoLastModified: Mon, 16 Oct 2023 16:32:26 GMT foundInMaster: true category: - Description Validators - Server Implementations id: 28b84909b56d604ecd1db7ae362fec50 - source: openapi3 tags repository: https://github.com/anupsaund/vertx-auto-swagger v3: true repositoryMetadata: base64Readme: >- IyB2ZXJ0eC1hdXRvLXN3YWdnZXIKCj4gVEw7RFIgLSBIb3cgdG8gZ2V0IGphdmEgVmVydC54IHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBPcGVuIEFQSSB2MyBzcGVjIChBLmsuYS4gU3dhZ2dlcikgYW5kIHNlcnZlIGl0IHRvIFN3YWdnZXIgVUksIHNlcnZlZCB0aHJvdWdoIFZlcnQueC4KCiMjIyBNb3RpdmF0aW9uCkkgbmVlZGVkIGEgd2F5IHRvIGdlbmVyYXRlIGEgc3dhZ2dlciBzcGVjIGZyb20gSmF2YSBjb2RlLCBpbnN0ZWFkIG9mIGhhdmluZyB0byBoYW5kIGNyYWZ0IGEgc3dhZ2dlciBKU09OIGZpbGUuCgpJIGFsc28gd2FudGVkIHRvIHNlcnZlIG91dCB0aGUgc3BlYyBmcm9tIFZlcnQueCBpbnRvIFN3YWdnZXIgVUkgc28gdGhhdCBpdCBjb3VsZCBiZSB1c2VkIGJ5IGFsbC4KClRoZXJlIGlzIGEgbW9yZSBkZXRhaWxlZCB3cml0ZSB1cCBhdmFpbGFibGUgb24gbXkgYmxvZyBwb3N0OiAKaHR0cDovL2FudXBzYXVuZC5jb20vaG93LXRvLWdlbmVyYXRlLW9wZW5hcGktMy0wLXN3YWdnZXItc3BlYy1mcm9tLXZlcnR4LWphdmEtYW5kLXNlcnZlLWl0LXZpYS1zd2FnZ2VyLXVpCgojIyMgV2hhdCBkb2VzIGl0IGRvPwoKMS4gIFJlYWQgSmF2YSBBbm5vdGF0aW9ucyBhbmQgbWFwIHRoZW0gaW50byBhIG9wZW5BUEkgc3BlYy4KMi4gIFNlcnZlIHRoZSBvcGVuQVBJIHNwZWMgb3V0IG9uIGFuIGVuZCBwb2ludC4KMy4gIFNlcnZlIGEgZGlzdHJpYnV0YWJsZSB2ZXJzaW9uIG9mIFN3YWdnZXJVSSB3aGljaCBwcmVzZW50cyB0aGUgc3dhZ2dlciBzcGVjIGZyb20gcG9pbnQgMi4KCgojIyMgU2NyZWVuc2hvdCBvZiBTd2FnZ2VyIFVJCiFbU3dhZ2dlclVJXShVSS5QTkcgIlN3YWdnZXJVSSIpCgojIyMgV2hhdCBkb2VzIGEgdHlwaWNhbCBKYXZhIGFubm90YXRpb24gbG9vayBsaWtlPwoKYGBgamF2YQpAT3BlcmF0aW9uKHN1bW1hcnkgPSAiRmluZCBwcm9kdWN0cyBieSBJRCIsIG1ldGhvZCA9ICJHRVQiLCBvcGVyYXRpb25JZCA9ICJwcm9kdWN0Lzpwcm9kdWN0SWQiLAogICAgdGFncyA9IHsKICAgICAgIlByb2R1Y3QiCiAgICB9LAogICAgcGFyYW1ldGVycyA9IHsKICAgICAgQFBhcmFtZXRlcihpbiA9IFBhcmFtZXRlckluLlBBVEgsIG5hbWUgPSAicHJvZHVjdElkIiwKICAgICAgICByZXF1aXJlZCA9IHRydWUsIGRlc2NyaXB0aW9uID0gIlRoZSB1bmlxdWUgSUQgYmVsb25naW5nIHRvIHRoZSBwcm9kdWN0Iiwgc2NoZW1hID0gQFNjaGVtYSh0eXBlID0gInN0cmluZyIpKQogICAgfSwKICAgIHJlc3BvbnNlcyA9IHsKICAgICAgQEFwaVJlc3BvbnNlKHJlc3BvbnNlQ29kZSA9ICIyMDAiLCBkZXNjcmlwdGlvbiA9ICJPSyIsCiAgICAgICAgY29udGVudCA9IEBDb250ZW50KAogICAgICAgICAgbWVkaWFUeXBlID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgZW5jb2RpbmcgPSBARW5jb2RpbmcoY29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbiIpLAogICAgICAgICAgc2NoZW1hID0gQFNjaGVtYShuYW1lID0gInByb2R1Y3QiLCBleGFtcGxlID0KICAgICAgICAgICAgInsiICsKICAgICAgICAgICAgICAiJ19pZCc6J2FiYycsIiArCiAgICAgICAgICAgICAgIid0aXRsZSc6J1JlZCBUcnVjaycsIiArCiAgICAgICAgICAgICAgIidpbWFnZV91cmwnOidodHRwczovL2ltYWdlcy5wZXhlbHMuY29tL3Bob3Rvcy8xMTEyNTk3L3BleGVscy1waG90by0xMTEyNTk3LmpwZWcnLCIgKwogICAgICAgICAgICAgICInZnJvbV9kYXRlJzonMjAxOC0wOC0zMCcsIiArCiAgICAgICAgICAgICAgIid0b19kYXRlJzonMjAxOS0wOC0zMCcsIiArCiAgICAgICAgICAgICAgIidwcmljZSc6JzEyNS4wMCcsIiArCiAgICAgICAgICAgICAgIidlbmFibGVkJzp0cnVlIiArCiAgICAgICAgICAgICAgIn0iLAogICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiA9IFByb2R1Y3QuY2xhc3MpCiAgICAgICAgKQogICAgICApLAogICAgICBAQXBpUmVzcG9uc2UocmVzcG9uc2VDb2RlID0gIjQwNCIsIGRlc2NyaXB0aW9uID0gIk5vdCBmb3VuZC4iKSwKICAgICAgQEFwaVJlc3BvbnNlKHJlc3BvbnNlQ29kZSA9ICI1MDAiLCBkZXNjcmlwdGlvbiA9ICJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IuIikKICAgIH0KICApCmBgYAoKIyMgSG93IHRvIGdldCBpdCBydW5uaW5nCgo+IERlcGVuZGFuY2llczogTWF2ZW4sIEpBVkEgYW5kIGEgSkFWQSBJREUgaXMgaGVscGZ1bC4KCjEuIENsb25lIHRoZSByZXBvc2l0b3J5IGFuZCB1c2UgTWF2ZW4gdG8gaW5zdGFsbCBkZXBlbmRhbmNpZXMuCjEuIEluIEludGVsbGlqIHNldCB1cCBhIGNvbmZpZyB0byBydW4gYSBKYXZhIEFwcGxpY2F0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBzZXR0aW5ncy4KCmBgYCAKICBNYWluIENsYXNzOiBpby52ZXJ0eC5jb3JlLkxhdW5jaGVyCiAgVk0gT3B0aW9uczogPHVwIHRvIHlvdSwgb3IgbGVhdmUgYmxhbms+CiAgUHJvZ3JhbSBBcmd1bWVudHM6IHJ1biBpby52ZXJ0eC5WZXJ0eEF1dG9Td2FnZ2VyLk1haW5WZXJ0aWNsZQpgYGAKCjMuIEFmdGVyIHRoYSBhcHBsaWNhdGlvbiBoYXMgbGF1bmNoZWQsIGdvIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9kb2MvaW5kZXguaHRtbAoKIyMjIyBTcGVjaWFsIENyZWRpdApHb2VzIHRvIENocmlzdG9zIEthcmF0emFzIGZvciBjcmVhdGluZyB0aGUgZ2VuZXJhdG9yIGNsYXNzIHdoaWNoIGhhcyBiZWVuIHVzZWQgYW5kIGVuaGFuY2VkIGZvciB0aGlzIHJlc3Bvc2l0b3J5OgogCkhpcyBvcmlnaW5hbCByZXBvc2l0b3J5IGlzIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly9naXRodWIuY29tL2NrYXJhdHphcy92ZXJ0eC1vcGVuYXBpLXNwZWMtZ2VuZXJhdG9yCgo= readmeEtag: '"b8f5574724322b3a9f82670fee3c87e13b84bb50"' readmeLastModified: Wed, 23 Feb 2022 05:43:43 GMT repositoryId: 147231389 description: Java Micro Service API Generation created: '2018-09-03T16:50:50Z' updated: '2024-04-25T22:33:50Z' language: Java archived: false stars: 32 watchers: 5 forks: 15 owner: anupsaund logo: https://avatars.githubusercontent.com/u/6728822?v=4 license: MIT repoEtag: '"f7b827c821d8464e2d785605e26012be0b0276437d18d82ddff3a5471398a9be"' repoLastModified: Thu, 25 Apr 2024 22:33:50 GMT foundInMaster: true category: Parsers id: d2fbd0151824a8918e13f184d83e8083 - source: openapi3 tags repository: https://github.com/cxxxr/apispec v3: true repositoryMetadata: base64Readme: >- IyBhcGlzcGVjCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9mdWthbWFjaGkvYXBpc3BlYy5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9mdWthbWFjaGkvYXBpc3BlYykKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9mdWthbWFjaGkvYXBpc3BlYy9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vY292ZXJhbGxzLmlvL3IvZnVrYW1hY2hpL2FwaXNwZWMpCgpBIENvbW1vbiBMaXNwIGxpYnJhcnkgZm9yIGhhbmRsaW5nIFdlYiBBUEkgc3BlY2lmaWNhdGlvbnMuIFRoaXMgYWxsb3dzIHRvIHZhbGlkYXRlIGFuZCBwYXJzZSBIVFRQIHJlcXVlc3QgaGVhZGVycywgcGFyYW1ldGVycyBhbmQgYm9kaWVzIHdpdGggT3BlbkFQSTMgc3BlY2lmaWNhdGlvbi4KCiMjIFdhcm5pbmcKClRoaXMgc29mdHdhcmUgaXMgc3RpbGwgQUxQSEEgcXVhbGl0eS4gVGhlIEFQSXMgd2lsbCBiZSBsaWtlbHkgdG8gY2hhbmdlLgoKIyMgUHJlcmVxdWlzaXRlCgoqIFtsaWJ5YW1sXShodHRwOi8vcHl5YW1sLm9yZy93aWtpL0xpYllBTUwpIGZvciBsb2FkaW5nIE9wZW5BUEkgc3BlYyBmaWxlcy4KCiMjIFVzYWdlCgojIyMgTG9hZGluZyBzcGVjaWZpY2F0aW9uIGZpbGUKCmBgYGNvbW1vbi1saXNwCihkZWZ2YXIgKnNwZWMqCiAgKGFwaXNwZWM6bG9hZC1mcm9tLWZpbGUgI1AiZG9jcy9hcGkueWFtbCIpKQoKKGFwaXNwZWM6c3BlYy12ZXJzaW9uICpzcGVjKikKOz0+ICIzLjAuMiIKYGBgCgojIyMgR2V0dGluZyB0aGUgb3BlcmF0aW9uCgpgYGBjb21tb24tbGlzcAooZGVmdmFyICpyb3V0ZXIqIChhcGlzcGVjOnNwZWMtcm91dGVyICpzcGVjKikpCgooYXBpc3BlYzpmaW5kLXJvdXRlICpyb3V0ZXIqIDpHRVQgIi91c2Vycy8xMiIpCjs9PiAjPEFQSVNQRUMvQ0xBU1NFUy9PUEVSQVRJT046T1BFUkFUSU9OIHsxMDAzRERCMDczfT4KYGBgCgojIyMgUGFyc2luZyBhbmQgVmFsaWRhdGluZyBIVFRQIHJlcXVlc3RzCgpgYGBjb21tb24tbGlzcAooaW1wb3J0ICcobGFjay5yZXF1ZXN0OnJlcXVlc3QtcXVlcnktcGFyYW1ldGVycwogICAgICAgICAgbGFjay5yZXF1ZXN0OnJlcXVlc3QtYm9keS1wYXJhbWV0ZXJzCiAgICAgICAgICBsYWNrLnJlcXVlc3Q6cmVxdWVzdC1jb29raWVzCiAgICAgICAgICBhcGlzcGVjOnJlcXVlc3QtcGF0aC1wYXJhbWV0ZXJzKSkKCjs7IENsYWNrIGFwcGxpY2F0aW9uCihkZWZ2YXIgKmFwcCoKICAobGFtYmRhIChlbnYpCiAgICAobXVsdGlwbGUtdmFsdWUtYmluZCAob3BlcmF0aW9uIHBhdGgtcGFyYW1ldGVycykKICAgICAgICAoYXBpc3BlYzpmaW5kLXJvdXRlIChzcGVjLXJvdXRlciAqc3BlYyopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0ZiBlbnYgOnJlcXVlc3QtbWV0aG9kKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldGYgZW52IDpwYXRoLWluZm8pKQogICAgICA7OyBHZXR0aW5nIExhY2suUmVxdWVzdAogICAgICAobGV0ICgocmVxdWVzdCAoYXBpc3BlYzp2YWxpZGF0ZS1yZXF1ZXN0IG9wZXJhdGlvbiBlbnYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6cGF0aC1wYXJhbWV0ZXJzIHBhdGgtcGFyYW1ldGVycykpKQogICAgICAgIDs7IFdyaXRlIHRoZSBtYWluIGFwcGxpY2F0aW9uIGhlcmUuCgogICAgICAgIDs7IEFjY2Vzc29ycyBmb3IgZ2V0dGluZyBlYWNoIHBhcmFtZXRlcnMuCiAgICAgICAgKHJlcXVlc3QtcXVlcnktcGFyYW1ldGVycyByZXF1ZXN0KSAgOz0+IFF1ZXJ5IHBhcmFtZXRlcnMgKGFsaXN0KQogICAgICAgIChyZXF1ZXN0LWJvZHktcGFyYW1ldGVycyByZXF1ZXN0KSAgIDs9PiBCb2R5IHBhcmFtZXRlcnMgKGFsaXN0KQogICAgICAgIChyZXF1ZXN0LXBhdGgtcGFyYW1ldGVycyByZXF1ZXN0KSAgIDs9PiBQYXRoIHBhcmFtZXRlcnMgKGFsaXN0KQogICAgICAgIChyZXF1ZXN0LWNvb2tpZXMpICAgICAgICAgICAgICAgICAgIDs9PiBDb29raWUgcGFyYW1ldGVycyAoYWxpc3QpCgogICAgICAgICkpKSkKCjs7IFN0YXJ0IHRoZSBzZXJ2ZXIKKGNsYWNrOmNsYWNrdXAgKmFwcCopCmBgYAoKIyMjIFZhbGlkYXRpbmcgYW5kIEVuY29kaW5nIEhUVFAgcmVzcG9uc2VzCgpgYGBjb21tb24tbGlzcAooaW1wb3J0ICdsYWNrLnJlc3BvbnNlOm1ha2UtcmVzcG9uc2UpCgooYXBpc3BlYzp2YWxpZGF0ZS1yZXNwb25zZSBvcGVyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtcmVzcG9uc2UgMjAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoOmNvbnRlbnQtdHlwZSAiYXBwbGljYXRpb24vanNvbiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKCJpZCIgLiAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgibmFtZSIgLiAi5Yid6Z+z44Of44KvIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlzX2FkbWluIiAuIG5pbCkpKSkKOz0+ICgyMDAgKDpDT05URU5ULVRZUEUgImFwcGxpY2F0aW9uL2pzb24iKSAoIntcImlkXCI6MyxcIm5hbWVcIjpcIuWInemfs+ODn+OCr1wiLFwiaXNfYWRtaW5cIjpmYWxzZX0iKSkKYGBgCgojIyMgQ3VzdG9tIEVuY29kZXIgZm9yIHN0YW5kYXJkIG9iamVjdHMKCmBgYGNvbW1vbi1saXNwCihpbXBvcnQgJ2xhY2sucmVzcG9uc2U6bWFrZS1yZXNwb25zZSkKCjs7IEN1c3RvbSBjbGFzcwooZGVmY2xhc3MgdXNlciAoKQogICgoaWQgOmluaXRhcmcgOmlkKQogICAobmFtZSA6aW5pdGFyZyA6bmFtZSkKICAgKGlzLWFkbWluIDppbml0YXJnIDppcy1hZG1pbikpKQoKOzsgRGVmaW5lIEFQSVNQRUM6RU5DT0RFLU9CSkVDVCBmb3IgdGhlIGNsYXNzCihkZWZtZXRob2QgYXBpc3BlYzplbmNvZGUtb2JqZWN0ICgodXNlciB1c2VyKSkKICBgKCgiaWQiIC4gLChzbG90LXZhbHVlIHVzZXIgJ2lkKSkKICAgICgibmFtZSIgLiAsKHNsb3QtdmFsdWUgdXNlciAnbmFtZSkpCiAgICAoImlzX2FkbWluIiAuICwoc2xvdC12YWx1ZSB1c2VyICdpcy1hZG1pbikpKSkKCihkZWZ2YXIgKnl1a2FyaSoKICAobWFrZS1pbnN0YW5jZSAndXNlcgogICAgICAgICAgICAgICAgIDppZCAxNAogICAgICAgICAgICAgICAgIDpuYW1lICLntZDmnIjjgobjgYvjgooiCiAgICAgICAgICAgICAgICAgOmlzLWFkbWluIG5pbCkpCgooYXBpc3BlYzp2YWxpZGF0ZS1yZXNwb25zZSBvcGVyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtcmVzcG9uc2UgMjAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoOmNvbnRlbnQtdHlwZSAiYXBwbGljYXRpb24vanNvbiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp5dWthcmkqKSkKOz0+ICgyMDAgKDpDT05URU5ULVRZUEUgImFwcGxpY2F0aW9uL2pzb24iKSAoIntcImlkXCI6MTQsXCJuYW1lXCI6XCLntZDmnIjjgobjgYvjgopcIixcImlzX2FkbWluXCI6ZmFsc2V9IikpCmBgYAoKIyMgRXhhbXBsZXMKClNlZSBbZXhhbXBsZXMvXShleGFtcGxlcy8pLgoKIyMgU2VlIEFsc28KCiogW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pCiogW0xhY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9mdWthbWFjaGkvbGFjaykKCiMjIEF1dGhvcgoKKiBFaXRhcm8gRnVrYW1hY2hpIChlLmFycm93c0BnbWFpbC5jb20pCgojIyBDb3B5cmlnaHQKCkNvcHlyaWdodCAoYykgMjAxOSBFaXRhcm8gRnVrYW1hY2hpIChlLmFycm93c0BnbWFpbC5jb20pCgojIyBMaWNlbnNlCgpMaWNlbnNlZCB1bmRlciB0aGUgQlNEIDMtQ2xhdXNlIExpY2Vuc2UuCg== readmeEtag: '"6d45557234331003c7fd2f1c0e77d3f996e3e5c8"' readmeLastModified: Wed, 17 Jan 2024 07:44:28 GMT repositoryId: 200196107 description: A Common Lisp library for handling Web API requests and responses. created: '2019-08-02T08:23:34Z' updated: '2024-05-21T10:15:50Z' language: Common Lisp archived: false stars: 32 watchers: 6 forks: 8 owner: cxxxr logo: https://avatars.githubusercontent.com/u/13656378?v=4 repoEtag: '"6bd6969f9810c489a1201ce26dbe054d19bf62d7046a3d756fe7cba091f8d9a4"' repoLastModified: Tue, 21 May 2024 10:15:50 GMT foundInMaster: true category: Data Validators id: 6c1ee68ee37441a94526d023a6d888e6 - source: openapi3 tags repository: https://github.com/ryan-mars/workers-queue-demo v3: true repositoryMetadata: base64Readme: >- IyBEdXJhYmxlIE9iamVjdHMgUkVTVCBNZXNzYWdlIFF1ZXVlIEV4YW1wbGUKCj4gTm90ZTogWW91IG11c3QgdXNlIFt3cmFuZ2xlcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL3dvcmtlcnMvY2xpLXdyYW5nbGVyL2luc3RhbGwtdXBkYXRlKSAxLjE5LjMgb3IgbmV3ZXIgdG8gZGVwbG95IHRoaXMgcHJvamVjdC4KCkFuIGVkZ2UgbWVzc2FnZSBxdWV1ZSBzZXJ2aWNlIHRoYXQgcnVucyBvbiBDbG91ZGZsYXJlIFdvcmtlcnMgdXNpbmcgRHVyYWJsZSBPYmplY3RzIGFuZCBLVi4gSXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBzaW1wbGUgUkVTVCBBUEkuCgpUaGlzIGRlbW8gdXNlczoKCi0gW0Nsb3VkZmxhcmUgV29ya2Vyc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL3dvcmtlcnMvbGVhcm5pbmcvaG93LXdvcmtlcnMtd29ya3MpCi0gW0R1cmFibGUgT2JqZWN0c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL3dvcmtlcnMvbGVhcm5pbmcvdXNpbmctZHVyYWJsZS1vYmplY3RzKQotIFtLVl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL3dvcmtlcnMvcnVudGltZS1hcGlzL2t2KQotIFtNaW5pZmxhcmUgdjJdKGh0dHBzOi8vdjIubWluaWZsYXJlLmRldikKLSBbVHlwZVNjcmlwdF0oaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnKQotIFtKZXN0XShodHRwczovL2plc3Rqcy5pbykKLSBbRVMgTW9kdWxlc10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9Nb2R1bGVzKQotIFtlc2J1aWxkXShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvKQotIFtXcmFuZ2xlcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL3dvcmtlcnMvY2xpLXdyYW5nbGVyL2luc3RhbGwtdXBkYXRlKQoKIyMgUnVubmluZyB0aGUgRGVtbwoKLSBgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9yeWFuLW1hcnMvd29ya2Vycy1xdWV1ZS1kZW1vLmdpdGAKLSBJbnN0YWxsIFt3cmFuZ2xlcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL3dvcmtlcnMvY2xpLXdyYW5nbGVyL2luc3RhbGwtdXBkYXRlKQotIGBjZCB3b3JrZXJzLXF1ZXVlLWRlbW9gCi0gYG5wbSBpbnN0YWxsYAotIGB3cmFuZ2xlciBsb2dpbmAKLSBgd3JhbmdsZXIga3Y6bmFtZXNwYWNlIGNyZWF0ZSBRVUVVRVNfS1ZgCiAgWW91IHNob3VsZCBzZWUgc29tZXRoaW5nIGxpa2U6CgpgYGAK8J+MgCAgQ3JlYXRpbmcgbmFtZXNwYWNlIHdpdGggdGl0bGUgIndvcmtlcnMtcXVldWUtZGVtby1RVUVVRVNfS1YiCuKcqCAgU3VjY2VzcyEKQWRkIHRoZSBmb2xsb3dpbmcgdG8geW91ciBjb25maWd1cmF0aW9uIGZpbGUgaW4geW91ciBrdl9uYW1lc3BhY2VzIGFycmF5Ogp7IGJpbmRpbmcgPSAiUVVFVUVTX0tWIiwgaWQgPSAiYmFmMDg1YzIzYy4uLiIgfQpgYGAKCi0gQWRkIHRoZSBLViBjb25maWcgdG8gYHdyYW5nbGVyLnRvbWxgCi0gYHdyYW5nbGVyIHB1Ymxpc2hgIHdpbGwgYnVpbGQsIHJ1biB0ZXN0cywgYW5kIGRlcGxveSB0byBDbG91ZGZsYXJlCgpZb3Ugc2hvdWxkIHNlZSBzb21ldGhpbmcgbGlrZToKCmBgYArinKggIEJ1aWxkIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhYArinKggIFN1Y2Nlc3NmdWxseSBwdWJsaXNoZWQgeW91ciBzY3JpcHQgdG8KIGh0dHBzOi8vd29ya2Vycy1xdWV1ZS1kZW1vLnlvdTEyMzQud29ya2Vycy5kZXYKYGBgCgo+IE5vdGUgdGhlIFVSTCDwn5GG8J+PuwoKQ29weS9wYXN0ZSB0aGUgY29udGVudHMgb2YgYHNjaGVtYS55YW1sYCBpbnRvIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pLiBDaGFuZ2UgdGhlIGBzZXJ2ZXJzYCBrZXkgdG8gbWF0Y2ggeW91ciBkZXBsb3llZCBVUkwuCgpIYXZlIGZ1biEKCiMjIFdoZXJlIHRvIGZpbmQgdGhpbmdzCgotIFJFU1QgQVBJIHNwZWMgaXMgaW4gYHNjaGVtYS55YW1sYC4KLSBXb3JrZXIgY29kZSBpcyBpbiBgc3JjL2AuIFRoZSBEdXJhYmxlIE9iamVjdCBgUXVldWVgIGNsYXNzIGlzIGluIGBzcmMvcXVldWUudHNgLCBhbmQgdGhlIFdvcmtlciBzY3JpcHQgaXMgaW4gYHNyYy9pbmRleC50c2AuCi0gZXNidWlsZCBpcyBjb25maWd1cmVkIHRvIG91dHB1dCBhIGJ1bmRsZWQgRVMgTW9kdWxlIHRvIGBkaXN0L2luZGV4Lm1qc2AuCi0gVW5pdCB0ZXN0cyBpbiBgc3JjL2luZGV4LnNwZWMudHNgLCB3aGljaCB3aWxsIHJ1biBhcyBwYXJ0IG9mIGB3cmFuZ2xlciBidWlsZGAuIFRvIHJ1biB0ZXN0cyBvbiB0aGVpciBvd24gdXNlIGBucG0gdGVzdGAuCg== readmeEtag: '"f9c76c7d6c392322cbda83405447e0547810b5f3"' readmeLastModified: Sun, 21 Nov 2021 06:08:47 GMT repositoryId: 430176829 description: >- Edge message queue service on Cloudflare Workers using Durable Objects and KV. It provides a simple REST API. created: '2021-11-20T18:14:55Z' updated: '2024-07-02T02:06:08Z' language: TypeScript archived: false stars: 31 watchers: 3 forks: 3 owner: ryan-mars logo: https://avatars.githubusercontent.com/u/824046?v=4 license: MIT repoEtag: '"86140cb7ce0eec78c755e0c3c38de30d363ed79ae9a5aede834b1d1ca7b682a7"' repoLastModified: Tue, 02 Jul 2024 02:06:08 GMT foundInMaster: true category: - Documentation - Server Implementations id: 1f14d7ec72292757f719d521c8fd5f54 - source: openapi3 tags repository: https://github.com/kota65535/openapi-merger v3: true id: 6e88483ef2d9b10f9f1f1268e7d4834b repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLW1lcmdlcgoKWWV0IGFub3RoZXIgQ0xJIHRvb2wgZm9yIG1lcmdpbmcgbXVsdGlwbGUgT3BlbkFQSSBmaWxlcyBpbnRvIGEgc2luZ2xlIGZpbGUuCgohW2J1aWxkIHdvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20va290YTY1NTM1L29wZW5hcGktbWVyZ2VyL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbC9iYWRnZS5zdmcpClshW05QTV0oaHR0cHM6Ly9ub2RlaS5jby9ucG0vb3BlbmFwaS1tZXJnZXIucG5nKV0oaHR0cHM6Ly9ub2RlaS5jby9ucG0vb3BlbmFwaS1tZXJnZXIvKQoKIyMgRmVhdHVyZXMKLSBTaW1pbGFyIHRvIFtzd2FnZ2VyLW1lcmdlcl0oaHR0cHM6Ly9naXRodWIuY29tL1dpbmRvbVovc3dhZ2dlci1tZXJnZXIpCi0gQ29udmVydCBhbGwgcmVtb3RlICYgVVJMIHJlZnMgaW50byBsb2NhbCByZWZzCiAgLSBUaGlzIGlzIHVzZWZ1bCBvbiBjb2RlIGdlbmVyYXRpb24sIGJlY2F1c2UgaXQgaGVscHMgW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQogICAgdG8gb3V0cHV0IHVuaXF1ZSBtb2RlbCBjbGFzc2VzIHdpdGhvdXQgZHVwbGljYXRpb24uCi0gYCRpbmNsdWRlYCBrZXl3b3JkOiBzYW1lIGFzIGAkcmVmYCwgZXhjZXB0IGl0IG1lcmdlcyB0aGUgb2JqZWN0IHdpdGggc2libGluZyBlbGVtZW50cy4gKGAkcmVmYCBpZ25vcmVzIHRoZW0pCgojIyBVc2FnZQoKYGBgc2gKJCBucG0gaW5zdGFsbCAtZyBvcGVuYXBpLW1lcmdlcgokIG9wZW5hcGktbWVyZ2VyIC1pIG9wZW5hcGkueWFtbCAtbyBtZXJnZWQueWFtbApgYGAKCiMjICRpbmNsdWRlIGtleXdvcmQKCm9wZW5hcGktbWVyZ2VyIGludHJvZHVjZXMgdGhlIHNwZWNpYWwga2V5d29yZCBgJGluY2x1ZGVgLgpJdCBoYXMgc2ltaWxhciBzeW50YXggYXMgYCRyZWZgLCB3aGljaCB0YWtlcyBKU09OIHJlZmVyZW5jZSBhcyBpdHMgdmFsdWUuCgpgYGB5YW1sCiRpbmNsdWRlOiAncmVmZXJlbmNlIHRvIGNvbnRlbnQnCmBgYAoKVGhlIGJpZ2dlc3QgZGlmZmVyZW5jZSBpcyB0aGF0IGAkaW5jbHVkZWAgcmVwbGFjZXMgaXRzZWxmIGRpcmVjdGx5IGJ5IHRoZSByZWZlcmVuY2VkIGNvbnRlbnQsIGFsbG93aW5nIHRvIG1lcmdlIGl0cyBzaWJsaW5nIGVsZW1lbnRzLgoKCiMjIyBNZXJnZSBvYmplY3RzICYgYXJyYXlzCgpJZiBgJGluY2x1ZGVgIGlzIHVzZWQgaW4gYW4gb2JqZWN0IGFuZCB0aGVuIHJlZmVyZW5jZWQgY29udGVudCBpcyBhbiBvYmplY3QgdG9vLCB0aGV5IGFyZSBtZXJnZWQuCgotIG1haW4ueW1sCmBgYHlhbWwKb2JqZWN0OgogICRpbmNsdWRlOiBvYmplY3QueW1sCiAga2V5MzogdmFsMwpgYGAKCi0gb2JqZWN0LnltbApgYGB5YW1sCmtleTE6IHZhbDEKa2V5MjogdmFsMgpgYGAKCi0gcmVzdWx0cyBpbjoKYGBgeWFtbApvYmplY3Q6CiAga2V5MTogdmFsMQogIGtleTI6IHZhbDIKICBrZXkzOiB2YWwzCmBgYCAKCkFycmF5cyBnbyBpbiB0aGUgc2FtZSBtYW5uZXIuCgotIG1haW4ueW1sCmBgYHlhbWwKYXJyYXk6CiAgLSAkaW5jbHVkZTogYXJyYXkueW1sCiAgLSB2YWwzCmBgYAoKLSBhcnJheS55bWwKYGBgeWFtbAotIHZhbDEKLSB2YWwyCmBgYAoKLSByZXN1bHRzIGluOgpgYGB5YW1sCmFycmF5OgogIC0gdmFsMQogIC0gdmFsMgogIC0gdmFsMwpgYGAgCgpJZiB5b3Ugd2FudCBub3QgdG8gbWVyZ2UgYXJyYXlzLCB1c2UgYCRpbmNsdWRlYCBpbiBhIG5lc3RlZCBhcnJheS4KCi0gbWFpbi55bWwKYGBgeWFtbAphcnJheToKICAtIC0gJGluY2x1ZGU6IGFycmF5LnltbAogIC0gdmFsMwpgYGAKCi0gYXJyYXkueW1sCmBgYHlhbWwKLSB2YWwxCi0gdmFsMgpgYGAKCi0gcmVzdWx0cyBpbjoKYGBgeWFtbAphcnJheToKICAtIC0gdmFsMQogICAgLSB2YWwyCiAgLSB2YWwzCmBgYCAKCiMjIyBNdWx0aXBsZSAkaW5jbHVkZSBhdCBzYW1lIHBsYWNlCgpgJGluY2x1ZGVgIGNhbiBiZSB1c2VkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBzYW1lIHBsYWNlIGJ5IGFwcGVuZGluZyBgI2Agd2l0aCBzb21lIElELCBhdm9pZGluZyBrZXkgZHVwbGljYXRpb24uCgpgYGB5YW1sCiRpbmNsdWRlI2ZvbzogLi9mb28ueW1sCiRpbmNsdWRlI2JhcjogLi9iYXIueW1sCmBgYAoKCiMjIyBLZXkgbW9kaWZpY2F0aW9uICYgRmlsdGVyaW5nCgpgJGluY2x1ZGVgIGlzIGNhcGFibGUgb2YgbW9kaWZpY2F0aW9uIGFuZCBmaWx0ZXJpbmcgb2YgdGhlIGtleXMgb2YgdGhlIHJlZmVyZW5jZWQgY29udGVudC4KVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBhZ2dyZWdhdGUgbXVsdGlwbGUgT3BlbkFQSSBkb2N1bWVudHMgb2YgYmFja2VuZCBzZXJ2aWNlcyBpbnRvIG9uZSBmb3IgQVBJIEdhdGV3YXkuCgpUbyB1dGlsaXplIHRoaXMgZnVuY3Rpb24sIGEgY29uZmlndXJhdGlvbiBmaWxlIHNob3VsZCBiZSBnaXZlbiBieSBgLWNgIG9wdGlvbi4KVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBsaWtlIGZvbGxvd2luZzoKCmBgYHlhbWwKaW5jbHVkZToKICAjICdmb28nIGNsYXNzLCB3aGljaCBhZGQgJy92MScgcHJlZml4IHRvIGVhY2gga2V5CiAgZm9vOgogICAgcHJlZml4OiAvdjEKICAjICdiYXInIGNsYXNzLCB3aGljaCBzZWxlY3RzIG9ubHkga2V5cyBtYXRjaGluZyB0byByZWdleCAKICAjIGhlcmUgZXhjbHVkaW5nIHBhdGhzIHRoYXQgYmVnaW5zICdpbnRlcm5hbCcKICBiYXI6IAogICAgZmlsdGVyOiBeKD8hL2ludGVybmFsKS4qCmBgYAoKVXNlIGRlZmluZWQgY2xhc3MgYXMgZm9sbG93aW5nOgotIG1haW4ueW1sCmBgYHlhbWwKIyB1c2luZyBmb28gY2xhc3MKJGluY2x1ZGUuZm9vOiBwYXRocy55bWwgCiMgdXNpbmcgYmFyIGNsYXNzCiRpbmNsdWRlLmJhcjogcGF0aHMueW1sCmBgYAoKLSBwYXRocy55bWwKYGBgeWFtbAovdXNlcnM6CiAgcG9zdDoKICAgIC4uLgoKL3VzZXJzL3tpZH06CiAgZ2V0OgogICAgLi4uCgovaW50ZXJuYWwvcGV0czoKICBwb3N0OgogICAgLi4uCmBgYAoKLSByZXN1bHRzIGluOgpgYGB5YW1sCiMgZnJvbSAkaW5jbHVkZS5mb28KL3YxL3VzZXJzOgogIHBvc3Q6CiAgICAuLi4KCi92MS91c2Vycy97aWR9OgogIGdldDoKICAgIC4uLgoKL3YxL2ludGVybmFsL3BldHM6CiAgcG9zdDoKICAgIC4uLgoKIyBmcm9tICRpbmNsdWRlLmJhcgovdXNlcnM6CiAgcG9zdDoKICAgIC4uLgoKL3VzZXJzL3tpZH06CiAgZ2V0OgogICAgLi4uCmBgYAoKWW91IGNhbiBzdGlsbCB1c2UgYCNgIG5vdGF0aW9uIHRvIGF2b2lkIGtleSBjb25mbGljdHMgbGlrZSBiZWxvdy4gCgpgYGB5YW1sCiRpbmNsdWRlI2EuZm9vOiBwYXRoczEueW1sCiRpbmNsdWRlI2IuZm9vOiBwYXRoczIueW1sCmBgYAo= readmeEtag: '"2f6bd1fba948ab091412152a8319c37185f35c2b"' readmeLastModified: Fri, 15 Mar 2024 09:27:33 GMT repositoryId: 275802208 description: Merges multiple OpenAPI document files into a single file. created: '2020-06-29T12:02:45Z' updated: '2024-04-23T08:20:39Z' language: JavaScript archived: false stars: 31 watchers: 3 forks: 6 owner: kota65535 logo: https://avatars.githubusercontent.com/u/10975834?v=4 license: MIT repoEtag: '"bcda99a34c2bd3bdf1d74006dc403b11f1f9aebeea253ee3dc9c9b8486eb5491"' repoLastModified: Tue, 23 Apr 2024 08:20:39 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/franeklubi/clubi v3: true repositoryMetadata: base64Readme: >- IyBDbHViaQoKIVtsb2dvLnBuZ10oLi9hc3NldHMvbG9nby5wbmcpCgojIyMgQ2x1YmkgaXMgYSBncm91cC1vcmllbnRlZCBzb2NpYWwgbWVkaWEgcGxhdGZvcm0gd3JpdHRlbiBpbiBMYXJhdmVsLgoKVmlzaXQgdXMgYXQ6IGh0dHBzOi8vY2x1YmkuZnJhbmVrbHViaS5jb20vCgotLS0KKiBbRmVhdHVyZXNdKCNmZWF0dXJlcykKKiBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCiogW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKLS0tCgohW3Jlc3BvbnNpdmUucG5nXSguL2Fzc2V0cy9yZXNwb25zaXZlLnBuZykKKlNob3djYXNlIG9mIHRoZSByZXNwb25zaXZlIGRlc2lnbioKCiMgRmVhdHVyZXMKKiBvcGVuIGFwaSB3aXRoIHRva2VuIGF1dGggdGhhdCdzIHByZXBhcmVkIGZvciBwb3RlbnRpYWwgYXBwIGRldmVsb3BtZW50IChnbyB0byBbZG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pIHRvIGxlYXJuIG1vcmUpCiogYWxsb3dzIGZvciBlYXN5IChwdWJsaWMgb3IgcHJpdmF0ZSkgZ3JvdXAgY3JlYXRpb24gYW5kIG1hbmFnZW1lbnQKKiBkaXNwbGF5cyBub3RpZmljYXRpb25zLCBzdWNoIGFzOgogICAgLSBuZXcgcG9zdCBpbiBZb3VyIGdyb3VwCiAgICAtIHNvbWVvbmUgaGFzIGxpa2VkIFlvdXIgcG9zdC9jb21tZW50CiAgICAtIHNvbWVvbmUgaGFzIGpvaW5lZCBZb3VyIGdyb3VwCiAgICAtIHNvbWVvbmUgaGFzIGxlZnQgYSBjb21tZW50IG9uIFlvdXIgcG9zdAoqIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiB1c2VycywgZ3JvdXAgYWRtaW5zLCBhbmQgc2l0ZSBhZG1pbnMKKiBpbXBsZW1lbnRzIHVzZXItc3BlY2lmaWMgZmVlZCBjb250YWluaW5nIGxhdGVzdCBwb3N0cyBmcm9tIGFsbCBncm91cHMgdGhlIHVzZXIgaGFzIGpvaW5lZAoqIGltcGxlbWVudHMgaW52aXRhdGlvbiBzeXN0ZW0gd2l0aCBzcGVjaWZpZWQgY29udHJvbHMgc3VjaCBhczogbmVjZXNzYXJ5IGFkbWluIGFwcHJvdmFsIGZvciBpbnZpdGF0aW9ucyB0byBwcml2YXRlIGdyb3VwcwoqIHJhbmtzIDEwIG1vc3QgcG9wdWxhciBncm91cHMgb24gc2l0ZQoqIGFsbG93cyBmb3Igc2VhcmNoaW5nIGdyb3VwcyBieSBuYW1lIG9yIHRoZWlyIGlkIHN0cmluZwoqIHVzZXJzIGFyZSBhYmxlIHRvIGF0dGFjaCBwaWN0dXJlcyB0byBwb3N0cy9jb21tZW50cyBhbmQgYWxzbyBsaWtlIHRoZW0KKiBjb250YWlucyBiYWRnZXMgbmV4dCB0byB1c2VybmFtZSBpbmRpY2F0aW5nIHVzZXIncyByZWxldmFuY2U6CiAgICAtIHBvc3QgYXV0aG9yCiAgICAtIGdyb3VwIGFkbWluCiAgICAtIHNpdGUgYWRtaW4KKiBpbXBsZW1lbnRzICdMb2FkIG1vcmUnIGZ1bmN0aW9uYWxpdHkgZm9yIHBvc3RzIGFuZCBjb21tZW50cwoqIHVzZXMgcmVzcG9uc2l2ZSBkZXNpZ24KCiMgRG9jdW1lbnRhdGlvbgoKRm9yIEFQSSBkb2N1bWVudGF0aW9uLCB2aXNpdCB0aGlzIGxpbms6IFtnZW5lcmF0ZWQgc3dhZ2dlciBkb2NdKGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8vP3VybD1odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZnJhbmVrbHViaS9jbHViaS9tYXN0ZXIvZG9jcy9vcGVuYXBpLnlhbWwpCgojIENvbnRyaWJ1dGluZwoKQ2x1Ymkgd2VsY29tZXMgY29udHJpYnV0aW9ucyBvZiBhbnkga2luZCA6KQoKVG8gc3RhcnQgY29udHJpYnV0aW5nIGNsb25lIHRoZSByZXBvc2l0b3J5IGFuZCBydW4gYC4vZGV2X3NldHVwLnNoYCB0byBoZWxwIGdldCBZb3Ugc3RhcnRlZC4gVGhpcyBzY3JpcHQgd2lsbDoKKiBpbnN0YWxsIGNvbXBvc2VyIGFuZCBucG0gcGFja2FnZXMKKiBjb21waWxlIGpzIGFzc2V0cwoqIGNvcHkgdGhlIC5lbnYuZXhhbXBsZSB0byAuZW52CiogZ2VuZXJhdGUgc2VjdXJlIGtleSB3aXRoIGFydGlzYW4KKiBvcGVuIC5lbnYgaW4gdmltIGZvciBZb3UgdG8gbW9kaWZ5IGl0Cg== readmeEtag: '"02f9329c336de4dfe43fca97896180f7ea8bd184"' readmeLastModified: Tue, 06 Dec 2022 19:49:21 GMT repositoryId: 280255962 description: A group-oriented social media platform written in Laravel and Vue created: '2020-07-16T20:52:54Z' updated: '2024-07-01T17:31:21Z' language: PHP archived: false stars: 31 watchers: 5 forks: 2 owner: franeklubi logo: https://avatars.githubusercontent.com/u/33394849?v=4 license: MIT repoEtag: '"17a54ae9d988df5bfd24b66b30d1d8c2c3af5352c4ea6b09c7b0e426e0d7c27b"' repoLastModified: Mon, 01 Jul 2024 17:31:21 GMT foundInMaster: true category: - Testing - Server Implementations id: 45fe333e65955184af9db3099d28c59b - source: openapi3 tags repository: https://github.com/tfranzel/drf-spectacular-sidecar v3: true repositoryMetadata: base64Readme: >- PT09PT09PT09PT09PT09PT09PT09PT0KZHJmLXNwZWN0YWN1bGFyLXNpZGVjYXIKPT09PT09PT09PT09PT09PT09PT09PT0KCnxweXBpLXZlcnNpb258IHxweXBpLWRsfAoKU2VydmUgc2VsZi1jb250YWluZWQgZGlzdHJpYnV0aW9uIGJ1aWxkcyBvZiBgU3dhZ2dlciBVSWBfIGFuZCBgUmVkb2NgXyB3aXRoIGBEamFuZ29gXyBlaXRoZXIgdmlhIGBydW5zZXJ2ZXJgXyBvciBgY29sbGVjdHN0YXRpY2BfLgoKVGhpcyBEamFuZ28gYXBwIGlzIGFuIG9wdGlvbmFsIGFkZGl0aW9uIHRvIGBkcmYtc3BlY3RhY3VsYXJgXywgYnV0IGRvZXMgbm90IGRlcGVuZCBvbiBpdC4gSXQgbWF5IGFsc28gYmUgdXNlZCBpbmRlcGVuZGVudGx5LgoKKiBgU3dhZ2dlciBVSWBfIHZlcnNpb24gYGA1LjE3LjE0YGAgKGBucG0gPGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXItdWktZGlzdD5gX18pCiogYFJlZG9jYF8gdmVyc2lvbiBgYDIuMS41YGAgKGBucG0gPGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3JlZG9jPmBfXykKClRoaXMgaXMgYSBzZWxmLXVwZGF0aW5nIGFuZCBzZWxmLXB1Ymxpc2hpbmcgcmVwb3NpdG9yeSB0aGF0IGxvb2tzIGZvciB1cGRhdGVzIG9uIHRoZSAxc3Qgb2YgZXZlcnkgbW9udGguClRoZSBkaXN0cmlidXRpb24gZmlsZXMgYXJlIHNvdXJjZWQgZnJvbSBucG0gdmlhIGBqc2RlbGl2cmBfLCB2YWxpZGF0ZWQsIHBhY2thZ2VkIGFuZCB1cGxvYWRlZCB0byBgUHlQSWBfLgoKSW5zdGFsbGF0aW9uCi0tLS0tLS0tLS0tLQoKLi4gY29kZTo6IGJhc2gKCiAgICAkIHBpcCBpbnN0YWxsIGRyZi1zcGVjdGFjdWxhci1zaWRlY2FyCgpUaGUgcGFja2FnZSBuZWVkcyB0byBiZSByZWdpc3RlcmVkIHRvIGFsbG93IERqYW5nbyB0byBkaXNjb3ZlciB0aGUgc3RhdGljIGZpbGVzLgoKLi4gY29kZTo6IHB5dGhvbgoKICAgIElOU1RBTExFRF9BUFBTID0gWwogICAgICAgICMgQUxMIFlPVVIgQVBQUwogICAgICAgICdkcmZfc3BlY3RhY3VsYXJfc2lkZWNhcicsCiAgICBdCgpSZXF1aXJlbWVudHMKLS0tLS0tLS0tLS0tCgpEamFuZ28gPj0gMi4yCgpMaWNlbnNlcwotLS0tLS0tLQoKUHJvdmlkZWQgYnkgYFQuIEZyYW56ZWwgPGh0dHBzOi8vZ2l0aHViLmNvbS90ZnJhbnplbD5gXy4gYExpY2Vuc2VkIHVuZGVyIDMtQ2xhdXNlIEJTRCA8aHR0cHM6Ly9naXRodWIuY29tL3RmcmFuemVsL2RyZi1zcGVjdGFjdWxhci1zaWRlY2FyL2Jsb2IvbWFzdGVyL0xJQ0VOU0U+YF8uCgpUaGlzIHBhY2thZ2UgaW5jbHVkZXMgZGlzdHJpYnV0aW9uIGJ1aWxkcyBvZgoKKiBgU3dhZ2dlciBVSWBfOiBUaGUgYG9yaWdpbmFsIGxpY2Vuc2UgKEFwYWNoZSAyLjApIDxodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS9ibG9iL21hc3Rlci9MSUNFTlNFPmBfIGFuZCBjb3B5cmlnaHQgYXBwbHkgdG8gdGhvc2UgZmlsZXMuCiogYFJlZG9jYF86IFRoZSBgb3JpZ2luYWwgbGljZW5zZSAoTUlUKSA8aHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MvYmxvYi9tYXN0ZXIvTElDRU5TRT5gXyBhbmQgY29weXJpZ2h0IGFwcGx5IHRvIHRob3NlIGZpbGVzLgoKCi4uIHxweXBpLXZlcnNpb258IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvZHJmLXNwZWN0YWN1bGFyLXNpZGVjYXIuc3ZnCiAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kcmYtc3BlY3RhY3VsYXItc2lkZWNhci8KLi4gfHB5cGktZGx8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2RtL2RyZi1zcGVjdGFjdWxhci1zaWRlY2FyCiAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kcmYtc3BlY3RhY3VsYXItc2lkZWNhci8KCi4uIF9QeVBJOiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvZHJmLXNwZWN0YWN1bGFyLXNpZGVjYXIvCi4uIF9qc2RlbGl2cjogaHR0cHM6Ly93d3cuanNkZWxpdnIuY29tLwouLiBfRGphbmdvOiBodHRwczovL3d3dy5kamFuZ29wcm9qZWN0LmNvbS8KLi4gX2RyZi1zcGVjdGFjdWxhcjogaHR0cHM6Ly9naXRodWIuY29tL3RmcmFuemVsL2RyZi1zcGVjdGFjdWxhcgouLiBfUmVkb2M6IGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jCi4uIF9Td2FnZ2VyIFVJOiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aQouLiBfY29sbGVjdHN0YXRpYzogaHR0cHM6Ly9kb2NzLmRqYW5nb3Byb2plY3QuY29tL2VuLzMuMi9yZWYvY29udHJpYi9zdGF0aWNmaWxlcy8jY29sbGVjdHN0YXRpYwouLiBfcnVuc2VydmVyOiBodHRwczovL2RvY3MuZGphbmdvcHJvamVjdC5jb20vZW4vMy4yL3JlZi9jb250cmliL3N0YXRpY2ZpbGVzLyNydW5zZXJ2ZXIK readmeEtag: '"2f0c1a4ce4eae2047cac48ada00dc4cbecad61ce"' readmeLastModified: Mon, 01 Jul 2024 11:20:30 GMT repositoryId: 410115575 description: >- Serve self-contained distribution builds of Swagger UI and Redoc with Django. created: '2021-09-24T22:17:14Z' updated: '2024-09-04T11:26:46Z' language: Python archived: false stars: 30 watchers: 2 forks: 3 owner: tfranzel logo: https://avatars.githubusercontent.com/u/13507857?v=4 license: BSD-3-Clause repoEtag: '"349495b13ea916e86e0874fcf76d9c635b37541a3b365193aee5a0a51e23353f"' repoLastModified: Wed, 04 Sep 2024 11:26:46 GMT foundInMaster: true category: - Converters - Server Implementations id: efb63b84a6a36939fb408835301f3b03 - source: openapi3 tags repository: https://github.com/maximiliankoestler/hcloud-openapi v3: true repositoryMetadata: base64Readme: >- IyBVbm9mZmljaWFsIE9wZW5BUEkgRGVzY3JpcHRpb24gZm9yIHRoZSBIZXR6bmVyIENsb3VkIEFQSQoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXhpbWlsaWFuS29lc3RsZXIvaGNsb3VkLW9wZW5hcGkvd29ya2Zsb3dzL0NJJTIwQnVpbGQlMjBhbmQlMjBPcGVuQVBJJTIwU3BlYyUyMEdlbmVyYXRpb24vYmFkZ2Uuc3ZnKQoKVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGltcHJvdmUgSGV0em5lcidzIG93biBPcGVuQVBJIHNwZWNpZmljYXRpb24gdG8gbWFrZSBpdCB1c2FibGUgaW4gY29kZSBnZW5lcmF0aW9uLgoKV2hlbiB0aGlzIHByb2plY3Qgd2FzIHN0YXJ0ZWQsIEhldHpuZXIgaGFkIG5vdCBwdWJsaXNoZWQgdGhlaXIgb3duIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmb3IgdGhlaXIgY2xvdWQgQVBJLCBzbyBJIGRlY2lkZWQgdG8gYnVpbGQgbXkgb3duIGJhc2VkIG9uIHRoZSBIVE1MIGRvY3VtZW50YXRpb24gb24gdGhlaXIgd2Vic2l0ZS4KTHVja2lseSwgSGV0em5lciBoYXMgYWN0dWFsbHkgcHVibGlzaGVkIGFuIFtPcGVuQVBJIHNwZWMgZm9yIHRoZWlyIEFQSV0oaHR0cHM6Ly9kb2NzLmhldHpuZXIuY2xvdWQvc3BlYy5qc29uKSBpbiB0aGUgbWVhbnRpbWUgYnV0IEkgdGhpbmsgdGhpcyBwcm9qZWN0IHN0aWxsIGFkZHMgc29tZSB2YWx1ZS4KCldoaWxlIEhldHpuZXIgbm93IGFwcGVhcnMgdG8gZ2VuZXJhdGUgdGhlaXIgZG9jdW1lbnRhdGlvbiB3ZWJzaXRlIGZyb20gdGhlIE9wZW5BUEkgc3BlYywgdGhlIHNwZWMgaXMgbm90IHZlcnkgdXNlZnVsIGZvciBhdXRvbWF0aWMgY29kZSBnZW5lcmF0aW9uLgpUaGlzIHByb2plY3QgYWltcyB0byBjb252ZXJ0IHRoZSBvZmZpY2lhbCBzcGVjIHRvIGFuIGltcHJvdmVkIHZlcnNpb24gd2l0aCB0aGUgZm9sbG93aW5nIG1haW4gZmVhdHVyZXM6CgotIERlZmluaXRpb24gb2YgY29tbW9uIGNvbXBvbmVudHMgdGhhdCBhcmUgcmV1c2VkIHRocm91Z2hvdXQgdGhlIHNjaGVtYQotIEFkZGVkIHBhZ2luYXRpb24gc3VwcG9ydAotIEFQSS1mcmllbmRseSB0YWcgbmFtZXMKLSBVbmlxdWUgYG9wZXJhdGlvbklkYHMKCkFzIGFuIGFkZGVkIGJlbmVmaXQsIG1haW5seSBmcm9tIHVzZSBvZiBjb21tb24gY29tcG9uZW50cywgdGhlIGltcHJvdmVkIHNwZWMgaXMgbXVjaCBzbWFsbGVyICg1NDggS2lCIHZzIDEuNCBNaUIpIHRoYW4gdGhlIG9yaWdpbmFsLgoKIyMgRnVydGhlciBSZWFkaW5nCgotIFtMaW5rIHRvIHRoZSBnZW5lcmF0ZWQgb3BlbkFQSSBkb2N1bWVudF0ob3BlbmFwaS9oY2xvdWQuanNvbikKLSBbT2ZmaWNpYWwgQVBJIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5oZXR6bmVyLmNsb3VkLykKLSBbT3BlbkFQSSBzcGVjIGRvY3VtZW50IHByb3ZpZGVkIGJ5IEhldHpuZXJdKGh0dHBzOi8vZG9jcy5oZXR6bmVyLmNsb3VkL3NwZWMuanNvbikKLSBbT3BlbkFQSSBzdGFuZGFyZF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKQoKIyMgVXNlIENhc2VzClRoaXMgQVBJIGRlc2NyaXB0aW9uIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgcHJvamVjdHM6Ci0gW2hjbG91ZC1ydXN0XShodHRwczovL2dpdGh1Yi5jb20vSGVubmluZ0hvbG1ERS9oY2xvdWQtcnVzdCkKICBbIVtDcmF0ZXMuaW9dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvaGNsb3VkLnN2ZyldKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9oY2xvdWQpCiAgWyFbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLnJzL2hjbG91ZC9iYWRnZS5zdmcpXShodHRwczovL2RvY3MucnMvaGNsb3VkLykKCiMjIFN1cHBvcnRlZCBFbmRwb2ludHMKPHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPgogIDx0ciBoZWlnaHQ9IjgwIj4KICAgIDx0ZD5hY3Rpb25zPC90ZD4KICAgIDx0ZD5jZXJ0aWZpY2F0ZXM8L3RkPgogICAgPHRkPmRhdGFjZW50ZXJzPC90ZD4KICA8L3RyPgogIDx0ciBoZWlnaHQ9IjgwIj4KICAgIDx0ZD5mbG9hdGluZ19pcHM8L3RkPgogICAgPHRkPmltYWdlczwvdGQ+CiAgICA8dGQ+aXNvczwvdGQ+CiAgPC90cj4KICA8dHIgaGVpZ2h0PSI4MCI+CiAgICA8dGQ+bG9hZF9iYWxhbmNlcl90eXBlczwvdGQ+CiAgICA8dGQ+bG9hZF9iYWxhbmNlcnM8L3RkPgogICAgPHRkPmxvY2F0aW9uczwvdGQ+CiAgPC90cj4KICA8dHIgaGVpZ2h0PSI4MCI+CiAgICA8dGQ+bmV0d29ya3M8L3RkPgogICAgPHRkPnByaWNpbmc8L3RkPgogICAgPHRkPnNlcnZlcl90eXBlczwvdGQ+CiAgPC90cj4KICA8dHIgaGVpZ2h0PSI4MCI+CiAgICA8dGQ+c2VydmVyczwvdGQ+CiAgICA8dGQ+c3NoX2tleXM8L3RkPgogICAgPHRkPnZvbHVtZXM8L3RkPgogIDwvdHI+CiAgPHRyIGhlaWdodD0iODAiPgogICAgPHRkPmZpcmV3YWxsczwvdGQ+CiAgICA8dGQ+cGxhY2VtZW50X2dyb3VwczwvdGQ+CiAgICA8dGQ+cHJpbWFyeV9pcHM8L3RkPgogIDwvdHI+CjwvdGFibGU+CgpgYGAKL2FjdGlvbnMgKEdFVCkKL2FjdGlvbnMve2lkfSAoR0VUKQovY2VydGlmaWNhdGVzIChHRVQsIFBPU1QpCi9jZXJ0aWZpY2F0ZXMve2lkfSAoREVMRVRFLCBHRVQsIFBVVCkKL2NlcnRpZmljYXRlcy97aWR9L2FjdGlvbnMgKEdFVCkKL2NlcnRpZmljYXRlcy97aWR9L2FjdGlvbnMve2FjdGlvbl9pZH0gKEdFVCkKL2NlcnRpZmljYXRlcy97aWR9L2FjdGlvbnMvcmV0cnkgKFBPU1QpCi9jZXJ0aWZpY2F0ZXMvYWN0aW9ucyAoR0VUKQovY2VydGlmaWNhdGVzL2FjdGlvbnMve2lkfSAoR0VUKQovZGF0YWNlbnRlcnMgKEdFVCkKL2RhdGFjZW50ZXJzL3tpZH0gKEdFVCkKL2ZpcmV3YWxscyAoR0VULCBQT1NUKQovZmlyZXdhbGxzL3tpZH0gKERFTEVURSwgR0VULCBQVVQpCi9maXJld2FsbHMve2lkfS9hY3Rpb25zIChHRVQpCi9maXJld2FsbHMve2lkfS9hY3Rpb25zL3thY3Rpb25faWR9IChHRVQpCi9maXJld2FsbHMve2lkfS9hY3Rpb25zL2FwcGx5X3RvX3Jlc291cmNlcyAoUE9TVCkKL2ZpcmV3YWxscy97aWR9L2FjdGlvbnMvcmVtb3ZlX2Zyb21fcmVzb3VyY2VzIChQT1NUKQovZmlyZXdhbGxzL3tpZH0vYWN0aW9ucy9zZXRfcnVsZXMgKFBPU1QpCi9maXJld2FsbHMvYWN0aW9ucyAoR0VUKQovZmlyZXdhbGxzL2FjdGlvbnMve2lkfSAoR0VUKQovZmxvYXRpbmdfaXBzIChHRVQsIFBPU1QpCi9mbG9hdGluZ19pcHMve2lkfSAoREVMRVRFLCBHRVQsIFBVVCkKL2Zsb2F0aW5nX2lwcy97aWR9L2FjdGlvbnMgKEdFVCkKL2Zsb2F0aW5nX2lwcy97aWR9L2FjdGlvbnMve2FjdGlvbl9pZH0gKEdFVCkKL2Zsb2F0aW5nX2lwcy97aWR9L2FjdGlvbnMvYXNzaWduIChQT1NUKQovZmxvYXRpbmdfaXBzL3tpZH0vYWN0aW9ucy9jaGFuZ2VfZG5zX3B0ciAoUE9TVCkKL2Zsb2F0aW5nX2lwcy97aWR9L2FjdGlvbnMvY2hhbmdlX3Byb3RlY3Rpb24gKFBPU1QpCi9mbG9hdGluZ19pcHMve2lkfS9hY3Rpb25zL3VuYXNzaWduIChQT1NUKQovZmxvYXRpbmdfaXBzL2FjdGlvbnMgKEdFVCkKL2Zsb2F0aW5nX2lwcy9hY3Rpb25zL3tpZH0gKEdFVCkKL2ltYWdlcyAoR0VUKQovaW1hZ2VzL3tpZH0gKERFTEVURSwgR0VULCBQVVQpCi9pbWFnZXMve2lkfS9hY3Rpb25zIChHRVQpCi9pbWFnZXMve2lkfS9hY3Rpb25zL3thY3Rpb25faWR9IChHRVQpCi9pbWFnZXMve2lkfS9hY3Rpb25zL2NoYW5nZV9wcm90ZWN0aW9uIChQT1NUKQovaW1hZ2VzL2FjdGlvbnMgKEdFVCkKL2ltYWdlcy9hY3Rpb25zL3tpZH0gKEdFVCkKL2lzb3MgKEdFVCkKL2lzb3Mve2lkfSAoR0VUKQovbG9hZF9iYWxhbmNlcl90eXBlcyAoR0VUKQovbG9hZF9iYWxhbmNlcl90eXBlcy97aWR9IChHRVQpCi9sb2FkX2JhbGFuY2VycyAoR0VULCBQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfSAoREVMRVRFLCBHRVQsIFBVVCkKL2xvYWRfYmFsYW5jZXJzL3tpZH0vYWN0aW9ucyAoR0VUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL3thY3Rpb25faWR9IChHRVQpCi9sb2FkX2JhbGFuY2Vycy97aWR9L2FjdGlvbnMvYWRkX3NlcnZpY2UgKFBPU1QpCi9sb2FkX2JhbGFuY2Vycy97aWR9L2FjdGlvbnMvYWRkX3RhcmdldCAoUE9TVCkKL2xvYWRfYmFsYW5jZXJzL3tpZH0vYWN0aW9ucy9hdHRhY2hfdG9fbmV0d29yayAoUE9TVCkKL2xvYWRfYmFsYW5jZXJzL3tpZH0vYWN0aW9ucy9jaGFuZ2VfYWxnb3JpdGhtIChQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL2NoYW5nZV9kbnNfcHRyIChQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL2NoYW5nZV9wcm90ZWN0aW9uIChQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL2NoYW5nZV90eXBlIChQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL2RlbGV0ZV9zZXJ2aWNlIChQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL2RldGFjaF9mcm9tX25ldHdvcmsgKFBPU1QpCi9sb2FkX2JhbGFuY2Vycy97aWR9L2FjdGlvbnMvZGlzYWJsZV9wdWJsaWNfaW50ZXJmYWNlIChQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL2VuYWJsZV9wdWJsaWNfaW50ZXJmYWNlIChQT1NUKQovbG9hZF9iYWxhbmNlcnMve2lkfS9hY3Rpb25zL3JlbW92ZV90YXJnZXQgKFBPU1QpCi9sb2FkX2JhbGFuY2Vycy97aWR9L2FjdGlvbnMvdXBkYXRlX3NlcnZpY2UgKFBPU1QpCi9sb2FkX2JhbGFuY2Vycy97aWR9L21ldHJpY3MgKEdFVCkKL2xvYWRfYmFsYW5jZXJzL2FjdGlvbnMgKEdFVCkKL2xvYWRfYmFsYW5jZXJzL2FjdGlvbnMve2lkfSAoR0VUKQovbG9jYXRpb25zIChHRVQpCi9sb2NhdGlvbnMve2lkfSAoR0VUKQovbmV0d29ya3MgKEdFVCwgUE9TVCkKL25ldHdvcmtzL3tpZH0gKERFTEVURSwgR0VULCBQVVQpCi9uZXR3b3Jrcy97aWR9L2FjdGlvbnMgKEdFVCkKL25ldHdvcmtzL3tpZH0vYWN0aW9ucy97YWN0aW9uX2lkfSAoR0VUKQovbmV0d29ya3Mve2lkfS9hY3Rpb25zL2FkZF9yb3V0ZSAoUE9TVCkKL25ldHdvcmtzL3tpZH0vYWN0aW9ucy9hZGRfc3VibmV0IChQT1NUKQovbmV0d29ya3Mve2lkfS9hY3Rpb25zL2NoYW5nZV9pcF9yYW5nZSAoUE9TVCkKL25ldHdvcmtzL3tpZH0vYWN0aW9ucy9jaGFuZ2VfcHJvdGVjdGlvbiAoUE9TVCkKL25ldHdvcmtzL3tpZH0vYWN0aW9ucy9kZWxldGVfcm91dGUgKFBPU1QpCi9uZXR3b3Jrcy97aWR9L2FjdGlvbnMvZGVsZXRlX3N1Ym5ldCAoUE9TVCkKL25ldHdvcmtzL2FjdGlvbnMgKEdFVCkKL25ldHdvcmtzL2FjdGlvbnMve2lkfSAoR0VUKQovcGxhY2VtZW50X2dyb3VwcyAoR0VULCBQT1NUKQovcGxhY2VtZW50X2dyb3Vwcy97aWR9IChERUxFVEUsIEdFVCwgUFVUKQovcHJpY2luZyAoR0VUKQovcHJpbWFyeV9pcHMgKEdFVCwgUE9TVCkKL3ByaW1hcnlfaXBzL3tpZH0gKERFTEVURSwgR0VULCBQVVQpCi9wcmltYXJ5X2lwcy97aWR9L2FjdGlvbnMvYXNzaWduIChQT1NUKQovcHJpbWFyeV9pcHMve2lkfS9hY3Rpb25zL2NoYW5nZV9kbnNfcHRyIChQT1NUKQovcHJpbWFyeV9pcHMve2lkfS9hY3Rpb25zL2NoYW5nZV9wcm90ZWN0aW9uIChQT1NUKQovcHJpbWFyeV9pcHMve2lkfS9hY3Rpb25zL3VuYXNzaWduIChQT1NUKQovcHJpbWFyeV9pcHMvYWN0aW9ucyAoR0VUKQovcHJpbWFyeV9pcHMvYWN0aW9ucy97aWR9IChHRVQpCi9zZXJ2ZXJfdHlwZXMgKEdFVCkKL3NlcnZlcl90eXBlcy97aWR9IChHRVQpCi9zZXJ2ZXJzIChHRVQsIFBPU1QpCi9zZXJ2ZXJzL3tpZH0gKERFTEVURSwgR0VULCBQVVQpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucyAoR0VUKQovc2VydmVycy97aWR9L2FjdGlvbnMve2FjdGlvbl9pZH0gKEdFVCkKL3NlcnZlcnMve2lkfS9hY3Rpb25zL2FkZF90b19wbGFjZW1lbnRfZ3JvdXAgKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9hdHRhY2hfaXNvIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvYXR0YWNoX3RvX25ldHdvcmsgKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9jaGFuZ2VfYWxpYXNfaXBzIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvY2hhbmdlX2Ruc19wdHIgKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9jaGFuZ2VfcHJvdGVjdGlvbiAoUE9TVCkKL3NlcnZlcnMve2lkfS9hY3Rpb25zL2NoYW5nZV90eXBlIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvY3JlYXRlX2ltYWdlIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvZGV0YWNoX2Zyb21fbmV0d29yayAoUE9TVCkKL3NlcnZlcnMve2lkfS9hY3Rpb25zL2RldGFjaF9pc28gKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9kaXNhYmxlX2JhY2t1cCAoUE9TVCkKL3NlcnZlcnMve2lkfS9hY3Rpb25zL2Rpc2FibGVfcmVzY3VlIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvZW5hYmxlX2JhY2t1cCAoUE9TVCkKL3NlcnZlcnMve2lkfS9hY3Rpb25zL2VuYWJsZV9yZXNjdWUgKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9wb3dlcm9mZiAoUE9TVCkKL3NlcnZlcnMve2lkfS9hY3Rpb25zL3Bvd2Vyb24gKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9yZWJvb3QgKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9yZWJ1aWxkIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvcmVtb3ZlX2Zyb21fcGxhY2VtZW50X2dyb3VwIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvcmVxdWVzdF9jb25zb2xlIChQT1NUKQovc2VydmVycy97aWR9L2FjdGlvbnMvcmVzZXQgKFBPU1QpCi9zZXJ2ZXJzL3tpZH0vYWN0aW9ucy9yZXNldF9wYXNzd29yZCAoUE9TVCkKL3NlcnZlcnMve2lkfS9hY3Rpb25zL3NodXRkb3duIChQT1NUKQovc2VydmVycy97aWR9L21ldHJpY3MgKEdFVCkKL3NlcnZlcnMvYWN0aW9ucyAoR0VUKQovc2VydmVycy9hY3Rpb25zL3tpZH0gKEdFVCkKL3NzaF9rZXlzIChHRVQsIFBPU1QpCi9zc2hfa2V5cy97aWR9IChERUxFVEUsIEdFVCwgUFVUKQovdm9sdW1lcyAoR0VULCBQT1NUKQovdm9sdW1lcy97aWR9IChERUxFVEUsIEdFVCwgUFVUKQovdm9sdW1lcy97aWR9L2FjdGlvbnMgKEdFVCkKL3ZvbHVtZXMve2lkfS9hY3Rpb25zL3thY3Rpb25faWR9IChHRVQpCi92b2x1bWVzL3tpZH0vYWN0aW9ucy9hdHRhY2ggKFBPU1QpCi92b2x1bWVzL3tpZH0vYWN0aW9ucy9jaGFuZ2VfcHJvdGVjdGlvbiAoUE9TVCkKL3ZvbHVtZXMve2lkfS9hY3Rpb25zL2RldGFjaCAoUE9TVCkKL3ZvbHVtZXMve2lkfS9hY3Rpb25zL3Jlc2l6ZSAoUE9TVCkKL3ZvbHVtZXMvYWN0aW9ucyAoR0VUKQovdm9sdW1lcy9hY3Rpb25zL3tpZH0gKEdFVCkKYGBgCgojIyBRdWljayBTdGFydAoKYGBgCm5wbSBydW4gY29udmVydCAtLSAtLW91dHB1dCBvcGVuYXBpL2hjbG91ZC5qc29uCmBgYAoKIyMgVXNhZ2Ugd2l0aCBPcGVuQVBJIEdlbmVyYXRvcgoKW09wZW5BUEkgR2VuZXJhdG9yIG9uIEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKCiMjIyBWYWxpZGF0ZQoKYGBgCmphdmEgLWphciA8cGF0aD4vb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciB2YWxpZGF0ZSAtLWlucHV0LXNwZWMgb3BlbmFwaS9oY2xvdWQuanNvbgpgYGAKCiMjIyBHZW5lcmF0ZQoKYGBgCmphdmEgLWphciA8cGF0aD4vb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBnZW5lcmF0ZSAtLWlucHV0LXNwZWMgb3BlbmFwaS9oY2xvdWQuanNvbiAtLWdlbmVyYXRvci1uYW1lIDxuYW1lPiAtLW91dHB1dCA8cGF0aD4KYGBgCg== readmeEtag: '"e512f10dde663a563d1ade30453690639920c6af"' readmeLastModified: Fri, 09 Aug 2024 10:57:21 GMT repositoryId: 266785930 description: >- This is the unofficial OpenAPI description of the Hetzner Cloud API. It allows automatic code generation for the hcloud API. created: '2020-05-25T13:26:36Z' updated: '2024-08-23T19:03:34Z' language: TypeScript archived: false stars: 29 watchers: 4 forks: 4 owner: MaximilianKoestler logo: https://avatars.githubusercontent.com/u/6814304?v=4 license: MIT repoEtag: '"1490de5ecf5db7f7435554a53ff29e825888652d7b21c3e50a9ea04084158d88"' repoLastModified: Fri, 23 Aug 2024 19:03:34 GMT foundInMaster: true category: Testing id: faad796cc6069f33f77380c65a4256f3 - source: openapi3 tags repository: https://github.com/outofcoffee/vertx-oas v3: true repositoryMetadata: base64Readme: >- IyB2ZXJ0eC1vYXMKCkdlbmVyYXRlcyBhIFN3YWdnZXIvT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZyb20gYSBWZXJ0LnggV2ViIFJvdXRlci4KCiMjIFVzYWdlCgpBc3N1bWluZyB5b3UncmUgdXNpbmcgVmVydC54IFdlYiwgdXNlIGl0IHdpdGggeW91ciBgUm91dGVyYCBhcyBmb2xsb3dzOgoKYGBgamF2YQovLyB5b3VyIG5vcm1hbCBWZXJ0LnggV2ViIFJvdXRlciB3aXRoIHBhdGhzIGV0Yy4KUm91dGVyIHJvdXRlciA9IFJvdXRlci5yb3V0ZXIodmVydHgpOwpyb3V0ZXIucG9zdCgiL3VzZXJzIikuaGFuZGxlciggcm91dGluZ0NvbnRleHQgLT4geyAvKiBldGMuLi4gKi8gfSk7CnJvdXRlci5nZXQoIi91c2Vycy86dXNlcklkIikuaGFuZGxlciggcm91dGluZ0NvbnRleHQgLT4geyAvKiBldGMuLi4gKi8gfSk7CgovLyBwdWJsaXNoIHRoZSBTd2FnZ2VyL09wZW5BUEkgc3BlY2lmaWNhdGlvbiB0byBhIFVSTApSb3V0ZXJTcGVjR2VuZXJhdG9yLnB1Ymxpc2hBcGlEb2NzKHJvdXRlciwgIi9hcGkvc3BlYyIpOwpgYGAKCkluIHRoaXMgZXhhbXBsZSwgdGhlIHNwZWNpZmljYXRpb24gaXMgcHVibGlzaGVkIHRvIGAvYXBpL3NwZWNgLgoKWW91IGNhbiBvYnRhaW4gWUFNTCBvciBKU09OIHZlcnNpb25zIG9mIHRoZSBzcGVjaWZpY2F0aW9uIGJ5IGFkZGluZyB0aGUgYXBwcm9wcmlhdGUgZmlsZSBleHRlbnNpb24uCgotLS0KCkZvciBleGFtcGxlLCBmZXRjaGluZyBgL2FwaS9zcGVjLnlhbWxgIHdvdWxkIHByb2R1Y2U6CgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMSIKaW5mbzoKICB0aXRsZTogIlZlcnQueCBBUElzIgogIGRlc2NyaXB0aW9uOiAiVGhpcyBzcGVjaWZpY2F0aW9uIHdhcyBnZW5lcmF0ZWQgZnJvbSBhIFZlcnQueCBXZWIgUm91dGVyLiIKcGF0aHM6CiAgL3VzZXJzOgogICAgcG9zdDoKICAgICAgcGFyYW1ldGVyczogW10KICAvdXNlcnMve3VzZXJJZH06CiAgICBnZXQ6CiAgICAgIHBhcmFtZXRlcnM6CiAgICAgIC0gbmFtZTogInVzZXJJZCIKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGFsbG93RW1wdHlWYWx1ZTogZmFsc2UKYGBgCgojIyBMaW1pdGF0aW9ucwoKLSBEb2Vzbid0IHVuZGVyc3RhbmQgcmVnZXggcGF0aHMKLSBEb2Vzbid0IGtub3cgdGhlIHR5cGUgb2YgcGF0aCBwYXJhbWV0ZXJzCi0gRG9lc24ndCBrbm93IGFib3V0IHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSBtb2RlbHMKCiMjIFVzZSBpbiB5b3VyIHByb2plY3QKCiMjIyBNYXZlbgoKQWRkIHJlcG9zaXRvcnk6CgpgYGB4bWwKPHByb2plY3Q+Ci4uLgogIDxyZXBvc2l0b3JpZXM+CiAgICA8cmVwb3NpdG9yeT4KICAgICAgPGlkPmdhdGVoaWxsc29mdHdhcmUtc25hcHNob3RzPC9pZD4KICAgICAgPG5hbWU+R2F0ZWhpbGwgU29mdHdhcmUgU25hcHNob3RzPC9uYW1lPgogICAgICA8dXJsPmh0dHBzOi8vczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vZ2F0ZWhpbGxzb2Z0d2FyZS1tYXZlbi9zbmFwc2hvdHM8L3VybD4KICAgIDwvcmVwb3NpdG9yeT4KICAgIDxyZXBvc2l0b3J5PgogICAgICA8aWQ+c29uYXR5cGUtc25hcHNob3RzPC9pZD4KICAgICAgPG5hbWU+U29uYXR5cGUgT1NTIFNuYXBzaG90czwvbmFtZT4KICAgICAgPHVybD5odHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzPC91cmw+CiAgICA8L3JlcG9zaXRvcnk+CiAgPC9yZXBvc2l0b3JpZXM+Ci4uLgo8L3Byb2plY3Q+CmBgYAogICAgCkFkZCBkZXBlbmRlbmN5OgoKYGBgeG1sCjxkZXBlbmRlbmNpZXM+CiAgICAuLi4KICAgIDxkZXBlbmRlbmN5PgogICAgICAgIDxncm91cElkPmNvbS5nYXRlaGlsbC52ZXJ0eC1vYXM8L2dyb3VwSWQ+CiAgICAgICAgPGFydGlmYWN0SWQ+dmVydHgtb2FzPC9hcnRpZmFjdElkPgogICAgICAgIDx2ZXJzaW9uPjEuMC4xPC92ZXJzaW9uPgogICAgPC9kZXBlbmRlbmN5PgogICAgLi4uCjwvZGVwZW5kZW5jaWVzPgpgYGAKCiMjIyBHcmFkbGUKCkFkZCByZXBvc2l0b3J5OgoKICAgIHJlcG9zaXRvcmllcyB7CiAgICAgICAgbWF2ZW4gewogICAgICAgICAgICB1cmwgJ2h0dHBzOi8vczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vZ2F0ZWhpbGxzb2Z0d2FyZS1tYXZlbi9zbmFwc2hvdHMnCiAgICAgICAgfQogICAgICAgIG1hdmVuIHsKICAgICAgICAgICAgdXJsICdodHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzJwogICAgICAgIH0KICAgIH0KICAgIApBZGQgZGVwZW5kZW5jeToKCiAgICBjb21waWxlICdjb20uZ2F0ZWhpbGwudmVydHgtb2FzOnZlcnR4LW9hczoxLjAuMScgIAoKIyMgQnVpbGQKCklmIHlvdSdkIGxpa2UgdG8gYnVpbGQgdGhlIGNvZGUgbG9jYWxseSwgZm9sbG93IHRoZXNlIGluc3RydWN0aW9ucy4KCiMjIyBQcmVyZXF1aXNpdGVzCgotIEpESzgKCiMjIyBDb21waWxlIGFuZCB0ZXN0CgogICAgLi9ncmFkbGV3IGNsZWFuIGJ1aWxkCgojIyMgUHVibGlzaAoKUHVibGlzaCB0byBsb2NhbCBNYXZlbiByZXBvc2l0b3J5OgoKICAgIC4vZ3JhZGxldyBwdWJsaXNoVG9NYXZlbkxvY2FsCgpQdWJsaXNoIHRvIHJlbW90ZSBNYXZlbiByZXBvc2l0b3J5OgoKICAgIC4vZ3JhZGxldyBwdWJsaXNoCgojIyBDb250cmlidXRpbmcKCiogUHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZS4KKiBQbGVhc2UgcnVuIGBrdGxpbnRgIG9uIHlvdXIgYnJhbmNoLgoKIyMgQXV0aG9yCgpQZXRlIENvcm5pc2ggKG91dG9mY29mZmVlQGdtYWlsLmNvbSkK readmeEtag: '"c0adb9fa3d4ca39583c24d35776d56936c0cee2a"' readmeLastModified: Sun, 04 Mar 2018 17:57:03 GMT repositoryId: 118284639 description: Generates a Swagger/OpenAPI specification from a Vert.x Web Router. created: '2018-01-20T22:08:13Z' updated: '2023-07-21T15:55:53Z' language: Kotlin archived: false stars: 29 watchers: 7 forks: 4 owner: outofcoffee logo: https://avatars.githubusercontent.com/u/1248633?v=4 repoEtag: '"02919645606e3b0a212e63118cb1b36388b212885411ffb5c1fb379a824b1e6a"' repoLastModified: Fri, 21 Jul 2023 15:55:53 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 0b55bd32d15d8b2237f4f34d7fc0335e - source: openapi3 tags repository: https://github.com/namuan/http-rider v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9uYW11YW4vaHR0cC1yaWRlci9yYXcvbWFzdGVyL3Jlc291cmNlcy9pbWFnZXMvaHR0cHJpZGVyLXJlYWRtZS5wbmciIHdpZHRoPSIxMjhweCIvPgo8L3A+CjxoMSBhbGlnbj0iY2VudGVyIj5IdHRwUmlkZXIgOjogU2ltcGxlIGFuZCBQb3dlcmZ1bCBDcm9zcy1QbGF0Zm9ybSBBUEkgQ2xpZW50PC9oMT4gIAogIApbIVtNYWNPUyBSZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3JlbGVhc2UvbmFtdWFuL2h0dHAtcmlkZXItb3N4P2xhYmVsPW1hY29zKV0oaHR0cHM6Ly9naXRodWIuY29tL25hbXVhbi9odHRwLXJpZGVyLW9zeC9yZWxlYXNlcy9sYXRlc3QpIFshW1dpbmRvd3MgUmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi9yZWxlYXNlL25hbXVhbi9odHRwLXJpZGVyLXdpbj9sYWJlbD13aW5kb3dzKV0oaHR0cHM6Ly9naXRodWIuY29tL25hbXVhbi9odHRwLXJpZGVyLXdpbi9yZWxlYXNlcy9sYXRlc3QpIFshW0xpbnV4IFJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS9uYW11YW4vaHR0cC1yaWRlcj9sYWJlbD1MaW51eCldKGh0dHBzOi8vZ2l0aHViLmNvbS9uYW11YW4vaHR0cC1yaWRlci9yZWxlYXNlcy9sYXRlc3QpIFshW0dpdEh1YiBsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL25hbXVhbi9odHRwLXJpZGVyLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9uYW11YW4vaHR0cC1yaWRlci9ibG9iL21hc3Rlci9MSUNFTlNFKSBbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9uYW11YW4vaHR0cC1yaWRlci5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9uYW11YW4vaHR0cC1yaWRlcikgWyFbR2l0SHViIGxhc3QgY29tbWl0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC9uYW11YW4vaHR0cC1yaWRlcildKGh0dHBzOi8vZ2l0aHViLmNvbS9uYW11YW4vaHR0cC1yaWRlci9jb21taXRzL21hc3RlcikgWyFbR2l0SHViIGNvbW1pdCBhY3Rpdml0eSB0aGUgcGFzdCB3ZWVrLCA0IHdlZWtzLCB5ZWFyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9jb21taXQtYWN0aXZpdHkveS9uYW11YW4vaHR0cC1yaWRlcildKGh0dHBzOi8vZ2l0aHViLmNvbS9uYW11YW4vaHR0cC1yaWRlci9jb21taXRzL21hc3RlcikgWyFbVHdpdHRlciBGb2xsb3ddKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHdpdHRlci9mb2xsb3cvZGVza3JpZGVyc190d3Quc3ZnP3N0eWxlPXNvY2lhbCZsYWJlbD1Gb2xsb3cpXShodHRwczovL3R3aXR0ZXIuY29tL2Rlc2tyaWRlcnNfdHd0KSBbIVtHaXR0ZXJdKGh0dHBzOi8vYmFkZ2VzLmdpdHRlci5pbS9odHRwLXJpZGVyL2NvbW11bml0eS5zdmcpXShodHRwczovL2dpdHRlci5pbS9odHRwLXJpZGVyL2NvbW11bml0eT91dG1fc291cmNlPWJhZGdlJnV0bV9tZWRpdW09YmFkZ2UmdXRtX2NhbXBhaWduPXByLWJhZGdlKQogICAKWyFbSHR0cFJpZGVyIEludHJvXShodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS9yV212d1Z1dU42SS8wLmpwZyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9cldtdndWdXVONkkpCiAKIyMjIERvd25sb2FkcwoKRG93bmxvYWRzIGFyZSBjdXJyZW50bHkgYXZhaWxhYmxlIGZvciBNYWNPUyBhbmQgV2luZG93cyBob3dldmVyIGl0IGlzIHNpbXBsZSB0byBydW4gZnJvbSBzb3VyY2UgaWYgeW91IHByZWZlciB0aGF0LgoKU2VlIFtodHRwczovL3d3dy5odHRwcmlkZXIuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkL2luc3RhbGxhdGlvbi9dKGh0dHBzOi8vbmFtdWFuLmdpdGh1Yi5pby9odHRwLXJpZGVyLWRvY3MvZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvaW5zdGFsbGF0aW9uLykgZm9yIGluc3RydWN0aW9ucyBmb3IgZGlmZmVyZW50IG9wZXJhdGluZyBzeXN0ZW1zLgogCiMjIyBGZWF0dXJlcyAgCiAgCvCfmoAgRmVhdHVyZSBjb21wbGV0ZSB8IPCfmYggRXhwZXJpbWVudGFsIHwg8J+TnSBJbiBkZXZlbG9wbWVudCB8IOKYge+4j++4jyBQbGFubmVkICAKICAKLS0tICAKICAK8J+agCBNYWtpbmcgYSBzaW1wbGUgcmVxdWVzdCAtIFtEZW1vXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWZ3OGpNalFwZnk4KSAgCiAgCvCfmoAgQWRkaW5nIHF1ZXJ5IHBhcmFtLCBoZWFkZXIsIHJlcXVlc3QgYm9keSAgICAKICAK8J+agCBSdW5uaW5nIG11bHRpcGxlIEFQSXMvUmVhcnJhbmdpbmcgQVBJcyAgCiAgCvCfmoAgVGFncy9MYWJlbHMgYW5kIFNlYXJjaCBhbmQgZmlsdGVyaW5nICAKICAK8J+agCBIdHRwIHJlcXVlc3RzIGhpc3RvcnkgICAKICAK8J+agCBQcm9qZWN0cyBzdXBwb3J0ICAKICAK8J+agCBFbnZpcm9ubWVudHMgYW5kIHVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyAgCiAgCvCfmoAgSW1wb3J0aW5nL0V4cG9ydGluZyBlbnZpcm9ubWVudHMgIAogIArwn5qAIFVzaW5nIEZha2Ugb3IgcmFuZG9tIGRhdGEgZ2VuZXJhdG9ycyAgCiAgCvCfmoAgVXNpbmcgdmFyaWFibGVzIGJldHdlZW4gQVBJIHJlcXVlc3RzICAKICAgCvCfmoAgQXNzZXJ0aW9ucyAgCiAgCvCfmoAgTW9ja2luZyByZXNwb25zZXMgIAogIAoqKkV4cG9ydGVycyoqCiAgCvCfmoAgRXhwb3J0IFtQbGFudFVNTF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9wbGFudHVtbCkgU2VxdWVuY2UgZGlhZ3JhbSAtIFtEZW1vXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTRBc3JfNGlPeFVNKQogIArwn5qAIEV4cG9ydCBbU2xvdyBDb29rZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9idW95YW50aW8vc2xvd19jb29rZXIpIHBlcmZvcm1hbmNlIHRlc3RzICAKICAK8J+agCBFeHBvcnQgW0xvY3VzdC5pb10oaHR0cHM6Ly9sb2N1c3QuaW8pIHBlcmZvcm1hbmNlIHRlc3RzIC0gW0RlbW9dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9N3pxY1ltWklkVnMpCiAgCvCfmoAgRXhwb3J0IFB5dGhvbiBjb2RlIHVzaW5nIHJlcXVlc3RzIG1vZHVsZSAgCiAgCvCfmoAgRXhwb3J0IE1hcmtkb3duIGZvciBkb2N1bWVudGluZyBBUEkgcmVxdWVzdHMvcmVzcG9uc2VzICAKICAK8J+agCBFeHBvcnQgW0FwaWNrbGldKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlja2xpL2FwaWNrbGkpIGZ1bmN0aW9uYWwgdGVzdHMgW0RlbW9dKGh0dHBzOi8vZGVza3JpZGVycy5kZXYvZ2VuZXJhdGluZy1iZGQtdGVzdHMtd2l0aC1odHRwcmlkZXIvKQogIArwn5qAIEV4cG9ydCBjdXJsIHJlcXVlc3RzICAKICAK8J+agCBFeHBvcnQgW01lcm1haWRKU10oaHR0cHM6Ly9tZXJtYWlkanMuZ2l0aHViLmlvLykgU2VxdWVuY2UgZGlhZ3JhbSAgCiAgCvCfmoAgRXhwb3J0IFtSdW5zY29wZV0oaHR0cHM6Ly93d3cucnVuc2NvcGUuY29tKSBtb25pdG9yaW5nIHRlc3RzIFtEZW1vXShodHRwczovL2Rlc2tyaWRlcnMuZGV2L2dlbmVyYXRpbmctcnVuc2NvcGUtbW9uaXRvcmluZy10ZXN0cy8pCgrwn5qAIEV4cG9ydCBbT3BlbkFwaSBWM10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpIGRvY3VtZW50Cgrwn5qAIEV4cG9ydCBbUmVzdEFzc3VyZWRdKGh0dHA6Ly9yZXN0LWFzc3VyZWQuaW8pIGZ1bmN0aW9uYWwgdGVzdHMKICAKKipJbXBvcnRlcnMqKgogIArwn5qAIEltcG9ydCBbT3BlbkFwaSBWM10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpIGRvY3VtZW50ICAKICAK8J+agCBJbXBvcnQgUG9zdG1hbiBjb2xsZWN0aW9ucwogIAojIyMgRGV2ZWxvcG1lbnQgIAogICAgClJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gc2V0LXVwIHZpcnR1YWwgZW52aXJvbm1lbnQKCmBgYCAgCiQgbWFrZSBzZXR1cCAKYGBgICAKICAKVGhlbiBgbWFrZSBydW5gIHNob3VsZCBzdGFydHVwIHRoZSBhcHBsaWNhdGlvbi4gIAogIApgYGAgIAokIG1ha2UgcnVuICAKYGBgCgpZb3UgY2FuIGp1c3QgcnVuIGBtYWtlYCB0byBkaXNwbGF5IGxpc3Qgb2YgYXZhaWxhYmxlIGNvbW1hbmRzLgo= readmeEtag: '"a57611f6488ed80020b6ba41789135504edf6715"' readmeLastModified: Sun, 08 Oct 2023 19:57:32 GMT repositoryId: 196688038 description: Simple and Powerful desktop client for working with JSON APIs created: '2019-07-13T06:41:18Z' updated: '2024-04-10T07:59:28Z' language: Python archived: false stars: 29 watchers: 3 forks: 8 owner: namuan logo: https://avatars.githubusercontent.com/u/575441?v=4 license: MIT repoEtag: '"23f12a53025b8d59d4ed8b0df55f0d7c7ad23f6c1b0a1b8db4d370358130911f"' repoLastModified: Wed, 10 Apr 2024 07:59:28 GMT foundInMaster: true category: SDK id: f0ed41f04fc11f264ffb1b4221371aec - source: openapi3 tags repository: https://github.com/mermade/openapi-extract v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWV4dHJhY3QKCiFbY2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL29wZW5hcGktZXh0cmFjdC93b3JrZmxvd3MvY2kvYmFkZ2Uuc3ZnKQoKRXh0cmFjdCBwYXRocywgb3BlcmF0aW9ucywgcGFyYW1ldGVycywgc2NoZW1hcyBldGMgZnJvbSBPcGVuQVBJL1N3YWdnZXIgZGVmaW5pdGlvbnMuCgpXb3JrcyB3aXRoIE9wZW5BUEkvU3dhZ2dlciAyLjAgYW5kIDMueCBkZWZpbml0aW9ucy4KCmBgYApVc2FnZTogb3BlbmFwaS1leHRyYWN0IFtvcHRpb25zXSB7aW5maWxlfSBbe291dGZpbGV9XQoKT3B0aW9uczoKICAtaCwgLS1oZWxwICAgICAgICAgICAgIFNob3cgaGVscCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAtLXZlcnNpb24gICAgICAgICAgICAgIFNob3cgdmVyc2lvbiBudW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAtLW9wZW5haSAgICAgICAgICAgICAgIG1ha2UgdGhlIGRlZmluaXRpb24gT3BlbkFJIGNvbXBsaWFudCAgICAgICAgICBbYm9vbGVhbl0KICAtLXNlcnZlciAgICAgICAgICAgICAgIGluY2x1ZGUgc2VydmVyIGluZm9ybWF0aW9uICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAtLXNoYXJkICAgICAgICAgICAgICAgIHNoYXJkIHRoZSBpbnB1dCB0byBhbiBvdXRwdXQgZGlyZWN0b3J5ICAgICAgICAgW3N0cmluZ10KICAtcCwgLS1wYXRoICAgICAgICAgICAgIHRoZSBwYXRoIHRvIGV4dHJhY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10KICAtbywgLS1vcGVyYXRpb25pZCAgICAgIHRoZSBvcGVyYXRpb25JZHMgdG8gZXh0cmFjdCAgICAgICAgICAgICAgICAgICAgIFthcnJheV0KICAtbSwgLS1tZXRob2QgICAgICAgICAgIHRoZSBtZXRob2QgdG8gZXh0cmFjdCBmb3IgdGhlIGdpdmVuIHBhdGggICAgICAgW3N0cmluZ10KICAtaSwgLS1pbmZvICAgICAgICAgICAgIGNvcHkgZnVsbCBpbmZvIG9iamVjdCwgb3RoZXJ3aXNlIG1pbmltYWwgICAgICBbYm9vbGVhbl0KICAtZCwgLS1yZW1vdmVEb2NzICAgICAgIHJlbW92ZSBhbGwgZXh0ZXJuYWxEb2NzIHByb3BlcnRpZXMgICAgICAgICAgICBbYm9vbGVhbl0KICAtciwgLS1yZW1vdmVFeGFtcGxlcyAgIHJlbW92ZSBhbGwgZXhhbXBsZS9leGFtcGxlcyBwcm9wZXJ0aWVzICAgICAgICBbYm9vbGVhbl0KICAteCwgLS1yZW1vdmVFeHRlbnNpb25zIHJlbW92ZSBhbGwgeC0gZXh0ZW5zaW9uIHByb3BlcnRpZXMgICAgICAgICAgICBbYm9vbGVhbl0KICAtcywgLS1zZWN1cml0eSAgICAgICAgIGluY2x1ZGUgc2VjdXJpdHkgaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KICAtdiwgLS12ZXJib3NlICAgICAgICAgIGluY3JlYXNlIHZlcmJvc2l0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0KYGBgCgpvcgoKYGBgamF2YXNjcmlwdApjb25zdCBvcGVuYXBpRXh0cmFjdG9yID0gcmVxdWlyZSgnb3BlbmFwaS1leHRyYWN0Jyk7CmNvbnN0IG9wdGlvbnMgPSB7fTsKLy8gb3B0aW9ucy5wYXRoID0gJy4uLic7Ci8vIG9wdGlvbnMubWV0aG9kID0gJy4uLic7Ci8vIG9wdGlvbnMub3BlcmF0aW9uaWQgPSBbJy4uLiddOwpjb25zdCByZXMgPSBvcGVuYXBpRXh0cmFjdG9yLmV4dHJhY3Qob2JqLCBvcHRpb25zKTsKCmNvbnN0IG1hcCA9IG9wZW5hcGlFeHRyYWN0b3Iuc2hhcmQob2JqLCBvcHRpb25zKTsKYGBgCgpUaGUgYG9wdGlvbnNgIG9iamVjdCB0YWtlcyB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIENMSSwgZm9yIHRoZXNlIGtleXMgYW5kIGRlZmF1bHQgdmFsdWVzOgoKKiAgIHBhdGggPSAnJwoqICAgbWV0aG9kID0gJycKKiAgIGluZm8gPSBmYWxzZQoqICAgb3BlbmFpID0gZmFsc2UKKiAgIHJlbW92ZURvY3MgPSBmYWxzZQoqICAgcmVtb3ZlRXhhbXBsZXMgPSBmYWxzZQoqICAgcmVtb3ZlRXh0ZW5zaW9ucyA9IGZhbHNlCiogICBzZXJ2ZXIgPSBmYWxzZQoqICAgc2VjdXJpdHkgPSBmYWxzZQoqICAgb3BlcmF0aW9uaWQgPSBbXQoKIyMgT3BlbkFJIGNvbXBsaWFudCBtb2RlCgpUaGlzIG9wdGlvbiB0dXJucyBvbiB0aGUgZm9sbG93aW5nIHJ1bGVzOgoKMS4gVGhlIGBkZXNjcmlwdGlvbmAgcHJvcGVydGllcyBtdXN0IGhhdmUgYSBtYXhpbXVtIGxlbmd0aCBvZiAzMDAgY2hhcmFjdGVycwo= readmeEtag: '"5f353389f7717a81f71aa1c92d7ed45243239dd2"' readmeLastModified: Thu, 20 Apr 2023 05:29:05 GMT repositoryId: 118493814 description: Extract single paths/operations from OpenAPI definitions created: '2018-01-22T17:56:20Z' updated: '2024-08-20T10:03:54Z' language: JavaScript archived: false stars: 28 watchers: 4 forks: 9 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause repoEtag: '"f974cba645a14bebba27be7aa6322910d93d2a021e73b125528eb2919e780f7c"' repoLastModified: Tue, 20 Aug 2024 10:03:54 GMT foundInMaster: true category: Parsers id: 8345bfb16b8aa0dc647fa5b2ab90b100 - source: openapi3 tags repository: https://github.com/mrtimofey/vue-admin v3: true repositoryMetadata: base64Readme: >- IyMgV2hhdCBpcyBpdD8KClRoaXMgaXMgdGhlIGxhc3QgcGFja2FnZSB5b3Ugd2lsbCBldmVyIG5lZWQgdG8gYnVpbGQgeW91ciBjdXN0b20gZGFzaGJvYXJkIG9yIGFkbWluaXN0cmF0aXZlIHBhbmVsLiBJdCBpbmNsdWRlczoKKiBBZG1pbkxURSAob25seSBzdHlsZXMpCiogVnVlLmpzIGJhc2VkIHJlYWR5LXRvLXVzZSBvdXQgb2YgdGhlIGJveCBTUEEKKiBTaW1wbGUgYnV0IGZsZXhpYmxlIGN1c3RvbWl6YXRpb24gc3lzdGVtCiogT3BlbkFQSSAzIChmb3JtZXJseSBrbm93biBhcyBTd2FnZ2VyKSBzcGVjaWZpY2F0aW9uIGZvciBhIGNvbXBhdGlibGUgc2VydmVyIEFQSSBpbXBsZW1lbnRhdGlvbgoqIEJpZyB2YXJpZXR5IG9mIGJ1aWx0LWluIGZpZWxkIHR5cGVzCiogQmlnIHZhcmlldHkgb2YgYnVpbHQtaW4gZGF0YSBkaXNwbGF5IGZvcm1hdCB0eXBlcwoqIFR5cGUtc2FmZSBieSBkZXNpZ24KKiBTdWl0YWJsZSBmb3IgYSBmYXN0IHByb3RvdHlwaW5nCgpbRGVtbyB3aXRoIExhcmF2ZWwgNS42IGJhY2tlbmRdKGh0dHA6Ly9hZG1pbi1kZW1vLnNoaXQtZnJlZS5zcGFjZSkKCltEb2N1bWVudGF0aW9uXShodHRwczovL21yLXRpbW9mZXkuZ2l0Ym9va3MuaW8vdnVlLWFkbWluKQoKIyMgSG93IGRvZXMgaXQgd29yaz8KClRoZSBwYWNrYWdlIGNvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IGZpbGVzIGZvciBidWlsZCBhbmQgZGV2ZWxvcG1lbnQuIFRoZXJlIGlzIG5vIHByZWJ1aWx0IHZlcnNpb24gc2luY2UKYHZ1ZS1hZG1pbi1mcm9udGAgYWltcyB0byBwcm92aWRlIGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgd2hlcmUgeW91IGNhbiBjdXN0b21pemUgYWxtb3N0IGV2ZXJ5dGhpbmcgaW5jbHVkaW5nCmJ1aWxkLXRpbWUgc3R1ZmYuIEJ1dCB5b3UgY2FuIHVzZSB0aGlzIGp1c3QgYXMtaXMgYnkgZXhlY3V0aW5nIGEgYnVpbGQgY29tbWFuZCBkZXNjcmliZWQgYmVsbG93LgoKQWxsIHRoZSB0aGluZ3MgcmVsYXRlZCB0byB5b3VyIHByb2plY3QgZGF0YSBzdHJ1Y3R1cmUgYW5kIGRhdGEgbWFuaXB1bGF0aW9uIGNhcGFiaWxpdGllcyBzaG91bGQgYmUgcHJvdmlkZWQKYnkgeW91ciBiYWNrZW5kIFJFU1QgQVBJIGVuZHBvaW50cwpbZGVzY3JpYmVkIGluIE9wZW5BUEkgMyBmb3JtYXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tclRpbW9mZXkvdnVlLWFkbWluL2Jsb2IvbWFzdGVyL2RvY3Mvc3dhZ2dlci55bWwpCgojIyBXaGF0IGFib3V0IHNlcnZlciBzb2x1dGlvbnM/CgpPbmx5IFtQSFA3LjEvTGFyYXZlbCBiYXNlZCBzb2x1dGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21yVGltb2ZleS9sYXJhdmVsLWFkbWluLWFwaSkgZXhpc3RzIGF0IHRoZSBtb21lbnQuCk1ha2luZyBtb3JlIG9mIHRoZW0gd2lsbCBiZSB2ZXJ5IGFwcHJlY2lhdGVkLgpbUmVhZCB0aGUgZG9jc10oaHR0cHM6Ly9tci10aW1vZmV5LmdpdGJvb2tzLmlvL3Z1ZS1hZG1pbi9zZXJ2ZXItYXBpLXByZXJlcXVpc2l0aWVzLmh0bWwpIGZvciBtb3JlIGluZm8uCgojIyBIb3cgdG8gdXNlPwoKSW5zdGFsbDoKYGBgYmFzaApucG0gaSAtUyB2dWUtYWRtaW4tZnJvbnQgY3Jvc3MtZW52IHJpbXJhZiB3ZWJwYWNrLW5hbm8KYGBgCgpBZGQgdGhpcyB0byBwYWNrYWdlLmpzb24gc2NyaXB0czoKYGBganNvbgp7CgkiYWRtaW46ZGV2IjogIm5vZGUgbm9kZV9tb2R1bGVzL3Z1ZS1hZG1pbi1mcm9udC9pbmRleC5qcyIsCgkiYWRtaW46YnVpbGQiOiAicmltcmFmIHB1YmxpYy9hZG1pbi1kaXN0ICYmIGNyb3NzLWVudiBOT0RFX0VOVj1wcm9kdWN0aW9uIHdwIC0tY29uZmlnIG5vZGVfbW9kdWxlcy92dWUtYWRtaW4tZnJvbnQvd2VicGFjay5jb25maWcuanMiCn0KYGBgCgpVc2UgYG5wbSBydW4gYWRtaW46ZGV2YCB0byBzdGFydCBkZXYgc2VydmVyLCBgbnBtIHJ1biBhZG1pbjpidWlsZGAgdG8gbWFrZSBhIHN0YXRpYyBidWlsZCB3aXRoaW4gYHB1YmxpYy9hZG1pbi1kaXN0YCBkaXJlY3RvcnkuCgpNb3JlIGluZm8gW2hlcmVdKGh0dHBzOi8vbXItdGltb2ZleS5naXRib29rcy5pby92dWUtYWRtaW4vcXVpY2stc3RhcnQuaHRtbCkuCg== readmeEtag: '"e61e7c35756e2a6624a0f2f5f6fd4e5cdab04dae"' readmeLastModified: Wed, 07 Oct 2020 08:58:30 GMT repositoryId: 112570086 description: Vue.js based administrative interface created: '2017-11-30T05:46:35Z' updated: '2023-08-18T22:29:38Z' language: Vue archived: false stars: 28 watchers: 2 forks: 4 owner: mrTimofey logo: https://avatars.githubusercontent.com/u/7373909?v=4 license: MIT repoEtag: '"91bdd9c709cb9ac9e8a1ac8820069d3e1c9fa416f25e2dd947a769be3a4b68e4"' repoLastModified: Fri, 18 Aug 2023 22:29:38 GMT foundInMaster: true category: - Documentation - Server Implementations id: 74974a7100769636130f55d931ed814f - source: openapi3 tags repository: https://github.com/hei-school/hei-admin-api v3: true repositoryMetadata: base64Readme: >- VGhpcyBwcm9qZWN0IGJvdGggc3BlY2lmaWVzIHRoZQpbSEVJIEFkbWluIEFQSV0oaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvLz91cmw9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hlaS1zY2hvb2wvaGVpLWFkbWluLWFwaS9kZXYvZG9jL2FwaS55bWwpCmFuZCBpbXBsZW1lbnRzIGl0IGluIEphdmEuCgpbUmVsZWFzZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9oZWktc2Nob29sL2hlaS1hZG1pbi1hcGkvcmVsZWFzZXMpIGFyZSBwdWJsaXNoZWQgW2hlcmVdKGh0dHBzOi8vZ2FsbGVyeS5lY3IuYXdzL3E2aTZ5NW80L2hlaS1hZG1pbi1hcGkpIGFzIERvY2tlciBpbWFnZXMuIEZlZWwgZnJlZSB0byB1c2UgdGhlbS4KCldlIHdlbGNvbWUgW2NvbnRyaWJ1dGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9oZWktc2Nob29sL2hlaS1hZG1pbi1hcGkvYmxvYi9kZXYvQ09OVFJJQlVUSU5HLm1kKS4K readmeEtag: '"acfd1751707c93d0284459681d3566f9b375948c"' readmeLastModified: Fri, 16 Aug 2024 08:38:47 GMT repositoryId: 393620909 description: RESTful API for managing a school created: '2021-08-07T08:06:01Z' updated: '2024-09-04T11:35:08Z' language: Java archived: false stars: 27 watchers: 3 forks: 123 owner: hei-school logo: https://avatars.githubusercontent.com/u/88576095?v=4 license: MIT repoEtag: '"0d576e660eb9a4f998a5d87f8da64374164507f7cf7dac2b427371965e5bc310"' repoLastModified: Wed, 04 Sep 2024 11:35:08 GMT foundInMaster: true category: Code Generators id: bf98240ea893afa32efc180fb73dd5b6 - source: openapi3 tags repository: https://github.com/aerokube/selenium-openapi v3: true repositoryMetadata: base64Readme: >- IyBTZWxlbml1bSBPcGVuQVBJIFNwZWMKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBTZWxlbml1bSBPcGVuQVBJIDMuMCAoZXgtU3dhZ2dlcikgc3BlYy4KCiMjIFVzaW5nIFN3YWdnZXIgRWRpdG9yCgoxKSBMYXVuY2ggU3dhZ2dlciBFZGl0b3IgRG9ja2VyIGNvbnRhaW5lcjoKYGBgCiQgZG9ja2VyIHJ1biAtZCAtLW5hbWUgc3dhZ2dlci1lZGl0b3IgLXAgODA4MDo4MDgwIHN3YWdnZXJhcGkvc3dhZ2dlci1lZGl0b3IKYGBgCgoyKSBPcGVuIGBodHRwOi8vbG9jYWxob3N0OjgwODAvYCBpbiBicm93c2VyLgozKSBDb3B5IGFuZCBwYXN0ZSBgc2VsZW5pdW0ueWFtbGAgY29udGVudHMgdG8gZWRpdG9yLgo= readmeEtag: '"56432a639227e29ac74f08e20891709988efc3f6"' readmeLastModified: Sat, 03 Sep 2022 17:21:07 GMT repositoryId: 185360868 description: The missing Selenium OpenAPI spec created: '2019-05-07T08:50:02Z' updated: '2023-01-29T06:21:22Z' language: Shell archived: false stars: 27 watchers: 5 forks: 10 owner: aerokube logo: https://avatars.githubusercontent.com/u/26328913?v=4 license: Apache-2.0 repoEtag: '"9f1246ae8a4ad697b6d881a7ab6d799fa3ab51590be30c89548495e9d518ce77"' repoLastModified: Sun, 29 Jan 2023 06:21:22 GMT foundInMaster: true category: - Code Generators - Server Implementations id: f034b9fb8c5913474475f9f688e93960 - source: openapi3 tags repository: https://github.com/mermade/openapi3-examples v3: true repositoryMetadata: repositoryId: 84428973 description: Passing and failing test cases for OpenAPI 3.x validators created: '2017-03-09T10:24:25Z' updated: '2024-03-12T11:46:10Z' language: null archived: false stars: 26 watchers: 6 forks: 17 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: Apache-2.0 repoEtag: '"150515eadd6a28b872e21830724bd66a7b566c234d417b1883c5360d89313c71"' repoLastModified: Tue, 12 Mar 2024 11:46:10 GMT foundInMaster: true id: a3fce9bef41c3b8feb3992adbd1f694e - source: openapi3 tags repository: https://github.com/rafaelcaricio/sticker v3: true repositoryMetadata: base64Readme: >- Li4gaW1hZ2U6OiBodHRwczovL2dpdGh1Yi5jb20vcmFmYWVsY2FyaWNpby9zdGlja2VyL3Jhdy9tYXN0ZXIvZG9jcy9pbWFnZXMvc3RpY2tlcl9sb2dvLnBuZwogICAgOmFsaWduOiBjZW50ZXIKICAgIDphbHQ6IFN0aWNrZXIKICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWZhZWxjYXJpY2lvL3N0aWNrZXIKCnwKCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvc3RpY2tlci5zdmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc3RpY2tlcgoKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvbC9zdGlja2VyLnN2ZwogICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zdGlja2VyCgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL3N0aWNrZXIuc3ZnCiAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3N0aWNrZXIKCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29udHJpYnV0b3JzL3JhZmFlbGNhcmljaW8vc3RpY2tlci5zdmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWZhZWxjYXJpY2lvL3N0aWNrZXIvZ3JhcGhzL2NvbnRyaWJ1dG9ycwoKV3JpdGUgYm9pbGVycGxhdGUtZnJlZSBQeXRob24gZnVuY3Rpb25zIGFuZCB1c2UgdGhlbSBhcyB5b3VyIEFQSSBoYW5kbGVycy4KU3RpY2tlciBhbGxvd3MgeW91IHRvIGNob29zZSBGbGFzaywgYm90dGxlLnB5LCBTYW5pYywgb3IgVG9ybmFkbyBhcyB5b3VyCmFwcGxpY2F0aW9uIHJ1bnRpbWUuCgoqKkhpZ2hsaWdodHMqKjoKCiogQ29tbXVuaXR5IGNyZWF0ZWQgYW5kIG1haW50YWluZWQKKiBTdXBwb3J0IGZvciBgT3BlbkFQSSAzLjAgPGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLz5gXwoqIE11bHRpLWZyYW1ld29yayBzdXBwb3J0OiBgRmxhc2sgPGh0dHA6Ly9mbGFzay5wb2Nvby5vcmcvPmBfLCBgYm90dGxlLnB5IDxodHRwczovL2dpdGh1Yi5jb20vYm90dGxlcHkvYm90dGxlPmBfLCBgU2FuaWMgPGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFubmVsY2F0L3NhbmljPmBfLCBhbmQgYFRvcm5hZG8gPGh0dHA6Ly93d3cudG9ybmFkb3dlYi5vcmcvZW4vc3RhYmxlLz5gXwoqIFN1cHBvcnQgZm9yICoqcHVyZSBQeXRob24gaGFuZGxlcnMqKiAobm8gYm9pbGVycGxhdGUgY29kZSkKCkl0J3MgRWFzeSB0byBXcml0ZQo9PT09PT09PT09PT09PT09PT0KCllvdSBuZWVkIGEgbGl0dGxlIGJpdCBvZiBQeXRob24uCgouLiBjb2RlLWJsb2NrOjogcHl0aG9uCgogICAgZGVmIHNheV9oZWxsbyhwYXJhbXMpOgogICAgICAgIHJldHVybiB7ImNvbnRlbnRzIjogIkhlbGxvIFdvcmxkISJ9CgpQbHVzIGJpdHMgb2YgeW91ciBBUEkgZGVzY3JpcHRpb24uCgouLiBjb2RlLWJsb2NrOjogWUFNTAoKICAgIG9wZW5hcGk6ICIzLjAuMCIKICAgIHBhdGhzOgogICAgICAvOgogICAgICAgIGdldDoKICAgICAgICAgIG9wZXJhdGlvbklkOiBoZWxsby5zYXlfaGVsbG8KCk5vdyB0aGUgZnVuIHBhcnQsIHlvdSBjaG9vc2Ugd2hpY2ggd2ViIGZyYW1ld29yayB5b3Ugd2FudCB0byB1c2UuCgpSdW4gd2l0aCBGbGFzazoKCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBmcm9tIHN0aWNrZXIgaW1wb3J0IEZsYXNrQVBJCiAgICBhcGkgPSBGbGFza0FQSSgnaGVsbG8ueW1sJykKICAgIGFwaS5nZXRfYXBwKF9fbmFtZV9fKS5ydW4oKQoKUnVuIHdpdGggQm90dGxlLnB5OgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGZyb20gc3RpY2tlciBpbXBvcnQgQm90dGxlQVBJCiAgICBhcGkgPSBCb3R0bGVBUEkoJ2hlbGxvLnltbCcpCiAgICBhcGkucnVuKCkKClJ1biB3aXRoIFNhbmljOgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGZyb20gc3RpY2tlciBpbXBvcnQgU2FuaWNBUEkKICAgIGFwaSA9IFNhbmljQVBJKCdoZWxsby55bWwnKQogICAgYXBpLmdldF9hcHAoX19uYW1lX18pLnJ1bigpCgpSdW4gd2l0aCBUb3JuYWRvOgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGZyb20gc3RpY2tlciBpbXBvcnQgVG9ybmFkb0FQSQogICAgaW1wb3J0IHRvcm5hZG8uaW9sb29wCiAgICBhcGkgPSBUb3JuYWRvQVBJKCdoZWxsby55bWwnKQogICAgYXBpLmdldF9hcHAoKS5saXN0ZW4oODg4OCkKICAgIHRvcm5hZG8uaW9sb29wLklPTG9vcC5jdXJyZW50KCkuc3RhcnQoKQoKVGhlIGZyYW1ld29yayBzZXR1cCwgdmFsaWRhdGlvbiwgdHlwZXMgY29udmVyc2lvbiwgYW5kIG1vY2tpbmcgaXMgaGFuZGxlZCBhdCBydW50aW1lIGJ5IFN0aWNrZXIuCgrinKgKCkluc3RhbGxhdGlvbgo9PT09PT09PT09PT0KClN0aWNrZXIgaXMgcHVibGlzaGVkIGF0IFB5UEksIHNvIHlvdSBjYW4gdXNlIGBgcGlwYGAgdG8gaW5zdGFsbDoKCi4uIGNvZGUtYmxvY2s6OiBiYXNoCgogICAgJCBwaXAgaW5zdGFsbCBzdGlja2VyCgpSZXF1aXJlbWVudHMKPT09PT09PT09PT09CgpTdGlja2VyIHdhcyBkZXZlbG9wZWQgZm9yICoqUHl0aG9uID49My42KiogYW5kICoqT3BlbkFQSSAzLjAqKi4gU3VwcG9ydCBmb3IgUHl0aG9uIDIuNyBpcyBub3QgcHJlc2VudCBub3IgcGxhbm5lZCBmb3IgdGhpcyBwcm9qZWN0LgoKRG9jdW1lbnRhdGlvbgo9PT09PT09PT09PT09CgpTdGlja2VyIGlzIGEgZmxleGlibGUgbWV0YWZyYW1ld29yayBmb3IgV2ViIEFQSSBkZXZlbG9wbWVudCBhbmQgZXhlY3V0aW9uLiBUaGUgT3BlbkFQSSAzLjAgc3RhbmRhcmQgaXMgdXNlZCBhcwpkZXNjcmlwdGlvbiBmb3JtYXQgZm9yIFN0aWNrZXIgcG93ZXJlZCBBUElzLiBZb3UgcHJvdmlkZSB0aGUgQVBJIHNwZWNpZmljYXRpb24gYW5kIGNob29zZSBvbmUgb2YgdGhlClN0aWNrZXIncyBydW50aW1lcyB0byBoYXZlIGEgd2Vic2VydmVyIHVwIGFuZCBydW5uaW5nLgoKSW4gdGhpcyBkb2N1bWVudCB3ZSB3aWxsIGRlc2NyaWJlIGEgZmV3IGRpZmZlcmVudCB3YXlzIHRvIHdyaXRlIGNvZGUgdGhhdCB3b3JrcyB3ZWxsIHdpdGggU3RpY2tlci4KClB1cmUgUHl0aG9uIEhhbmRsZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTdGlja2VyIHN1cHBvcnRzIHRoZSB1c2Ugb2YgcHVyZSBQeXRob24gZnVuY3Rpb25zIGFzIGhhbmRsZXJzLiBZb3VyIGNvZGUgd2lsbCBiZSBmcmVlIG9mIGFueSBmcmFtZXdvcmsKc3BlY2lmaWMgYm9pbGVycGxhdGUgY29kZSwgaW5jbHVkaW5nIFN0aWNrZXIncyBpdHNlbGYuIFRoaXMgYWxsb3dzIHlvdSB0byBzd2FwIGJldHdlZW4gZGlmZmVyZW50IGZyYW1ld29ya3MKYXMgeW91IHdpc2guIFN0aWNrZXIgd2lsbCB0YWtlIGNhcmUgb2YgcHV0dGluZyB0b2dldGhlciB5b3VyIGNvZGUsIHlvdXIgQVBJLCBhbmQgdGhlIGZyYW1ld29yayB5b3UgY2hvb3NlLgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGRlZiBteWhhbmRsZXIocGFyYW1zKToKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAiY29udGVudCI6IGYiSGVsbG8ge3BhcmFtcy5nZXQoIm5hbWUiLCAiV29ybGQiKX0hIiwKICAgICAgICAgICAgInN0YXR1cyI6IDIwMAogICAgICAgIH0KCldyaXRpbmcgdGVzdHMgZm9yIHB1cmUgUHl0aG9uIGhhbmRsZXMgaXMgZWFzeSBhbmQgYWxzbwpmcmVlIG9mIGJvaWxlcnBsYXRlIGNvZGUuCgouLiBjb2RlLWJsb2NrOjogcHl0aG9uCgogICAgZGVmIHRlc3RfbXloYW5kbGVyKCk6CiAgICAgICAgcGFyYW1zID0gewogICAgICAgICAgICAibmFtZSI6ICJKb2huIERvZSIKICAgICAgICB9CiAgICAgICAgcmVzcG9uc2UgPSBteWhhbmRsZXIocGFyYW1zKQogICAgICAgIGFzc2VydCByZXNwb25zZVsiY29udGVudCJdID09ICJIZWxsbyBKb2huIERvZSEiCgpBcyB5b3UgY291bGQgc2VlIGluIHRoZSBleGFtcGxlIGFib3ZlLCBubyBpbXBvcnRzIGZyb20gU3RpY2tlciB3ZXJlIG5lY2Vzc2FyeSB0byBkZWZpbmUgdGhlIEFQSSBoYW5kbGVyIGZ1bmN0aW9uLgpUaGlzIGlzIG9ubHkgcG9zc2libGUgYmVjYXVzZSBTdGlja2VyIGV4cGVjdHMgeW91ciBoYW5kbGVycyB0byBmb2xsb3cgYSBjb2RlIGNvbnZlbnRpb24uCgpBbmF0b215IE9mIEFuIEFQSSBIYW5kbGVyIEZ1bmN0aW9uCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KCldyaXRlIHRoaXMgcGFydC4KClJlc3BvbnNlcwpeXl5eXl5eXl4KCkFQSSBoYW5kbGVycyBhcmUgZXhwZWN0ZWQgdG8gcmV0dXJuIGEgUHl0aG9uIGRpY3Rpb25hcnkgKGBgZGljdGBgKSBvYmplY3QuIFRoZSByZXR1cm5lZCBkaWN0aW9uYXJ5IGRlZmluZXMgaG93IGEgcmVzcG9uc2UKd2lsbCBsb29rIGxpa2UuIEFsbCBrZXlzIGluIHRoZSBkaWN0aW9uYXJ5IGFyZSBvcHRpb25hbC4gVGhlIGV4cGVjdGVkIGtleXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgdGFibGUgYmVsbG93LgoKPT09PT09PT09PT0gPT09PT09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09CktleSAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgo9PT09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT0gPT09PT09PT09PT0KY29udGVudCAgICAgc3RyICAgICAgICAgICAgICAgICAgICAgIEJvZHkgb2YgSFRUUCByZXF1ZXN0LiBObyB0cmVhdG1lbnQvcGFyc2luZyBvZiB0aGlzIHZhbHVlIGlzIGRvbmUuIFRoZSB2YWx1ZSBpcyBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIGNob3NlbiBmcmFtZXdvcmsuCmpzb24gICAgICAgIFVuaW9uW2RpY3QsIExpc3RbZGljdF1dICBKU09OIHZhbHVlIHRvIGJlIHVzZWQgaW4gdGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QuIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBoYXZpbmcgdGhlIGhlYWRlciAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBhbmQgc2VyaWFsaXppbmcgdGhpcyB2YWx1ZSB1c2luZyB0aGUgbW9zdCBjb21tb24gd2F5IGRvbmUgYnkgdGhlIGNob3NlbiBmcmFtZXdvcmsuCmZpbGUgICAgICAgIFVuaW9uW0lPW0FueVN0cl0sIHN0cl0gICBEYXRhIHRvIGJlIHJldHVybmVkIGFzIGJ5dGUgc3RyZWFtLiBUaGlzIGlzIGEgc2hvcnRjdXQgZm9yIGhhdmluZyB0aGUgaGVhZGVyICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIuIFVzZXMgdGhlIG1vc3QgY29tbW9uIHdheSB0byBzdHJlYW0gZmlsZXMgd2l0aCB0aGUgY2hvc2VuIGZyYW1ld29yay4KcmVkaXJlY3QgICAgc3RyICAgICAgICAgICAgICAgICAgICAgIFRoZSBwYXRoIG9yIGZ1bGwgVVJMIHRvIGJlIHJlZGlyZWN0ZWQuIFRoaXMgaXMgYSBzaG9ydGN1dCBmb3IgaGF2aW5nIHRoZSBoZWFkZXIgIkxvY2F0aW9uOiIgd2l0aCBIVFRQIHN0YXR1cyBgMzAxYC4Kc3RhdHVzICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIFRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIGJlIHVzZWQgaW4gdGhlIHJlc3BvbnNlLiBUaGlzIHZhbHVlIG92ZXJyaWRlcyBhbnkgc2hvcnRjdXQgZGVmYXVsdCBzdGF0dXMgY29kZS4KaGVhZGVycyAgICAgRGljdFtzdHIsIHN0cl0gICAgICAgICAgIFRoZSBIVFRQIGhlYWRlcnMgdG8gYmUgdXNlZCBpbiB0aGUgcmVzcG9uc2UuIFRoaXMgdmFsdWUgaXMgbWVyZ2VkIHdpdGggdGhlIHNob3J0Y3V0IHZhbHVlcyB3aXRoIHByaW9yaXR5Lgo9PT09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT0gPT09PT09PT09PT0KCgpXZSBoYXZlIGV4cG9zZWQgaGVyZSBzb21lIGV4YW1wbGVzIG9mIHVzaW5nIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucyBvZiB0aGUgYGBkaWN0YGAgd2UndmUgZGVmaW5lZCBhYm92ZSB0byBkZXNjcmliZSB0aGUKSFRUUCByZXNwb25zZSBvZiBBUEkgaGFuZGxlcnMuIFRoZSBhY3R1YWwgSFRUUCByZXNwb25zZSB2YWx1ZSBnZW5lcmF0ZWQgd2lsbCB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgZnJhbWV3b3JrIGNob3NlbiBhcwpydW50aW1lLiBUaGUgZXhhbXBsZXMgYXJlIGEgbWluaW1hbCBpbGx1c3RyYXRpb24gb2Ygd2hhdCB0byBleHBlY3QgdG8gYmUgdGhlIEhUVFAgcmVzcG9uc2UuCgpUaGUgImNvbnRlbnQiIGtleSBjYW4gYmUgdXNlZCB3aGVuIGl0J3MgZGVzaXJlZCB0byByZXR1cm4gYSAiSGVsbG8gd29ybGQhIiBzdHJpbmcgd2l0aCBzdGF0dXMgYGAyMDBgYC4KCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBkZWYgc2F5X2hlbGxvKHBhcmFtcyk6CiAgICAgICAgcmV0dXJuIHsiY29udGVudCI6ICJIZWxsbyB3b3JsZCEifQoKUmVzdWx0cyBpbiB0aGUgSFRUUCByZXNwb25zZSBzaW1pbGFyIHRvOgoKLi4gY29kZS1ibG9jazo6CgogICAgSFRUUC8xLjEgMjAwIE9LCiAgICBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KCiAgICBIZWxsbyB3b3JsZCEKClRoZSAianNvbiIga2V5IGNhbiBiZSB1c2VkIHdoZW4gZGVzaXJlZCB0byByZXR1cm4gYW4gSlNPTiByZXNwb25zZSB3aXRoIHN0YXR1cyBgYDIwMWBgLgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGRlZiBjcmVhdGUocGFyYW1zKToKICAgICAgICBkYXRhID0gewogICAgICAgICAgICAiaWQiOiAidWhIdWVodUUiLAogICAgICAgICAgICAidmFsdWUiOiAic29tZXRoaW5nIgogICAgICAgIH0KICAgICAgICByZXR1cm4geyJqc29uIjogZGF0YSwgInN0YXR1cyI6IDIwMX0KClRoZSBIVFRQIHJlc3BvbnNlIGdlbmVyYXRlZCB3aWxsIGJlIHNpbWlsYXIgdG86CgouLiBjb2RlLWJsb2NrOjoKCiAgICBIVFRQLzEuMSAyMDEgQ3JlYXRlZAogICAgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCgogICAgeyJpZCI6InVoSHVlaHVFIiwidmFsdWUiOiJzb21ldGhpbmcifQoKVGhlICJmaWxlIiBrZXkgaXMgdXNlZCB0byByZXR1cm4gZmlsZSBjb250ZW50cy4KCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBkZWYgaG9tZXBhZ2UocGFyYW1zKToKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAiZmlsZSI6IG9wZW4oJ3RlbXBsYXRlcy9ob21lLmh0bWwnLCAncicpLAogICAgICAgICAgICAiaGVhZGVycyI6IHsKICAgICAgICAgICAgICAgICJDb250ZW50LVR5cGUiOiAidGV4dC9odG1sIgogICAgICAgICAgICB9CiAgICAgICAgfQoKVGhlIEhUVFAgcmVzcG9uc2Ugd2lsbCBiZSBzaW1pbGFyIHRvOgoKLi4gY29kZS1ibG9jazo6CgogICAgSFRUUC8xLjEgMjAwIE9LCiAgICBDb250ZW50LVR5cGU6IHRleHQvaHRtbAoKICAgIDxodG1sPjx0aXRsZT5NeSBob21lcGFnZTwvdGl0bGU+PGJvZHk+PGgxPldlbGNvbWUhPC9oMT48L2JvZHk+PC9odG1sPgoKV2hlbiBuZWNlc3NhcnkgdG8gcmVkaXJlY3QgcmVxdWVzdCwgdGhlICJyZWRpcmVjdCIga2V5IGNhbiBiZSB1c2VkLgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGRlZiBvbGRfZW5kcG9pbnQocGFyYW1zKToKICAgICAgICByZXR1cm4geydyZWRpcmVjdCc6ICcvbmV3LXBhdGgnfQoKVGhlIEhUVFAgcmVzcG9uc2Ugd2lsbCBiZSBzaW1pbGFyIHRvOgoKLi4gY29kZS1ibG9jazo6CgogICAgSFRUUC8xLjEgMzAxIE1vdmVkIFBlcm1hbmVudGx5CiAgICBMb2NhdGlvbjogaHR0cHM6Ly9leGFtcGxlLmNvbS9uZXctcGF0aAoKVGhlIHVzYWdlIG9mIGtleXMgInN0YXR1cyIgYW5kICJoZWFkZXJzIiB3ZXJlIHNob3duIGluIHRoZSBwcmV2aW91cyBleGFtcGxlcy4gVGhlICJzdGF0dXMiIGFuZCAiaGVhZGVycyIga2V5cywgd2hlbiBzZXQsCm92ZXJyaWRlIHRoZSB2YWx1ZXMgc2V0IGJ5IGRlZmF1bHQgd2hlbiB1c2luZyB0aGUgc2hvcnRjdXQga2V5cyAoImpzb24iLCAiZmlsZSIsIGFuZCAicmVkaXJlY3QiKS4KCkVycm9yIEhhbmRsaW5nCi0tLS0tLS0tLS0tLS0tCgpTdGlja2VyIGV4cGVjdHMgeW91IHRvIGRlZmluZSB0aGUgZXJyb3IgZm9ybWF0IHRvIGJlIHJldHVybmVkIGJ5IHlvdXIgQVBJLiBBIGVycm9yIGhhbmRsZXIgaXMgY29uZmlndXJhYmxlLAphbmQgY2FsbGVkIGV2ZXJ5IHRpbWUgdmFsaWRhdGlvbiBmb3IgdGhlIGVuZHBvaW50IGZhaWxzLgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGRlZiBlcnJvcl9oYW5kbGVyKGVycm9yKToKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAgICJlcnJvciI6IGVycm9yWyJtZXNzYWdlIl0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImhlYWRlcnMiOiB7CiAgICAgICAgICAgICAgICAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDQwMAogICAgICAgIH0KCkRldmVsb3BpbmcKPT09PT09PT09PQoKV2UgZm9sbG93IGBTZW1hbnRpYyBWZXJzaW9uaW5nIDxodHRwczovL3NlbXZlci5vcmcvc3BlYy92Mi4wLjAuaHRtbD5gXy4KCkNvbnRyaWJ1dGluZwo9PT09PT09PT09PT0KClN0aWNrZXIgaXMgZGV2ZWxvcGVkIHVuZGVyIHRoZSBgQXBhY2hlIDIuMCBsaWNlbnNlIDxodHRwczovL2dpdGh1Yi5jb20vcmFmYWVsY2FyaWNpby9zdGlja2VyL2Jsb2IvbWFzdGVyL0xJQ0VOU0U+YF8KYW5kIGlzIHB1YmxpY2x5IGF2YWlsYWJsZSB0byBldmVyeW9uZS4gV2UgYXJlIGhhcHB5IHRvIGFjY2VwdCBjb250cmlidXRpb25zLgoKSG93IHRvIENvbnRyaWJ1dGUKLS0tLS0tLS0tLS0tLS0tLS0KCiMuIENoZWNrIGZvciBvcGVuIGlzc3VlcyBvciBvcGVuIGEgZnJlc2ggaXNzdWUgdG8gc3RhcnQgYSBkaXNjdXNzaW9uIGFyb3VuZCBhIGZlYXR1cmUgaWRlYSBvciBhIGJ1Zy4gVGhlcmUgaXMgYSBgR29vZCBGaXJzdCBJc3N1ZWBfIHRhZyBmb3IgaXNzdWVzIHRoYXQgc2hvdWxkIGJlIGlkZWFsIGZvciBwZW9wbGUgd2hvIGFyZSBub3QgdmVyeSBmYW1pbGlhciB3aXRoIHRoZSBjb2RlYmFzZSB5ZXQuCiMuIEZvcmsgYHRoZSByZXBvc2l0b3J5YF8gb24gR2l0SHViIHRvIHN0YXJ0IG1ha2luZyB5b3VyIGNoYW5nZXMgdG8gdGhlICoqbWFzdGVyKiogYnJhbmNoIChvciBicmFuY2ggb2ZmIG9mIGl0KS4KIy4gV3JpdGUgYSB0ZXN0IHdoaWNoIHNob3dzIHRoYXQgdGhlIGJ1ZyB3YXMgZml4ZWQgb3IgdGhhdCB0aGUgZmVhdHVyZSB3b3JrcyBhcyBleHBlY3RlZC4KIy4gU2VuZCBhIHB1bGwgcmVxdWVzdCBhbmQgYnVnIHRoZSBtYWludGFpbmVyIHVudGlsIGl0IGdldHMgbWVyZ2VkIGFuZCBwdWJsaXNoZWQuIDopIE1ha2Ugc3VyZSB0byBhZGQgeW91cnNlbGYgdG8gQVVUSE9SU18uCgouLiBfYHRoZSByZXBvc2l0b3J5YDogaHR0cHM6Ly9naXRodWIuY29tL3JhZmFlbGNhcmljaW8vc3RpY2tlcgouLiBfQVVUSE9SUzogaHR0cHM6Ly9naXRodWIuY29tL3JhZmFlbGNhcmljaW8vc3RpY2tlci9ibG9iL21hc3Rlci9BVVRIT1JTLnJzdAouLiBfR29vZCBGaXJzdCBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JhZmFlbGNhcmljaW8vc3RpY2tlci9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBb3BlbitsYWJlbCUzQSUyMmdvb2QrZmlyc3QraXNzdWUlMjIK readmeEtag: '"32a10c263ca8bfd42a12eb6312b770f0514a8a67"' readmeLastModified: Sat, 01 May 2021 22:48:47 GMT repositoryId: 126081831 description: >- Sticker is a powerful yet boilerplate-free alternative to writing your web API. created: '2018-03-20T21:00:32Z' updated: '2023-01-27T23:43:25Z' language: Python archived: true stars: 26 watchers: 4 forks: 1 owner: rafaelcaricio logo: https://avatars.githubusercontent.com/u/107613?v=4 license: Apache-2.0 repoEtag: '"c279b4d1239bbf537655e1566f10ce51bf872f59b37b7c57e43cb6f230e1cb20"' repoLastModified: Fri, 27 Jan 2023 23:43:25 GMT foundInMaster: true category: Server Implementations id: cb1a6cacac08f3879554ade8788535c8 - source: openapi3 tags repository: https://github.com/chanced/openapi v3: true id: 7ee990b4d1feb380f92d50101672d759 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpIC0gQW4gT3BlbkFQSSAzLnggbGlicmFyeSBmb3IgZ28KClshW0dvIFJlZmVyZW5jZV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2JhZGdlL2dpdGh1Yi5jb20vY2hhbmNlZC9vcGVuYXBpLnN2ZyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2NoYW5jZWQvb3BlbmFwaSkKWyFbTGF0ZXN0IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvdGFnL2NoYW5jZWQvb3BlbmFwaS5zdmc/c29ydD1zZW12ZXImc3R5bGU9ZmxhdC1zcXVhcmUmbGFiZWw9dmVyc2lvbiZjb2xvcj1ibHVlKV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi90YWcvY2hhbmNlZC9vcGVuYXBpLnN2Zz9zb3J0PXNlbXZlciZzdHlsZT1mbGF0LXNxdWFyZSZsYWJlbD12ZXJzaW9uJmNvbG9yPWJsdWUpCiFbQnVpbGQgU3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi93b3JrZmxvdy9zdGF0dXMvY2hhbmNlZC9vcGVuYXBpL0J1aWxkP3N0eWxlPWZsYXQtc3F1YXJlKQoKb3BlbmFwaSBpcyBhIGxpYnJhcnkgZm9yIHBhcnNpbmcgYW5kIHZhbGlkYXRpbmcgT3BlbkFQSQpbMy4xXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjApLApbMy4wXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMpLiBUaGUgaW50ZW50IG9mIHRoZSBsaWJyYXJ5IGlzIHRvCm9mZmVyIGJ1aWxkaW5nIGJsb2NrcyBmb3IgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uLgoKOndhcm5pbmc6IFRoaXMgbGlicmFyeSBpcyB1bmRlciBhY3RpdmUgZGV2ZWxvcG1lbnQ7IHRoZXJlIG1heSBiZSBicmVha2luZyBjaGFuZ2VzIGFuZCBidWdzLgoKIyMgRmVhdHVyZXMKCi0gICBgJHJlZmAgcmVzb2x1dGlvbgotICAgQWxsIGtleXMgcmV0YWluIHRoZWlyIG9yZGVyIGZyb20gdGhlIG1hcmt1cCB1c2luZyBzbGljZXMgb2Yga2V5L3ZhbHVlcyB3aGljaAogICAgYWlkcyBpbiBjb2RlIGdlbmVyYXRpb24uCi0gICBWYWxpZGF0aW9uIChbc2VlIHRoZSB2YWxpZGF0aW9uIHNlY3Rpb25dKCN2YWxpZGF0aW9uKSkKLSAgIEFsbCBub24tcHJpbWl0aXZlIG5vZGVzIGhhdmUgYW4gYWJzb2x1dGUgJiByZWxhdGl2ZSBsb2NhdGlvbgotICAgU3RyaW5ncyBhcmUgW3RleHQuVGV4dF0oaHR0cHM6Ly9naXRodWIuY29tL2NoYW5jZWQvY2Fwcykgd2hpY2ggaGFzIGNhc2UKICAgIGNvbnZlcnNpb25zIGFuZCBgc3RyaW5nc2AgZnVuY3Rpb25zIGFzIG1ldGhvZHMuCi0gICBFeHRlbnNpb25zLCB1bmtub3duIEpTT04gU2NoZW1hIGtleXdvcmRzLCBleGFtcGxlcywgYW5kIGEgZmV3IG90aGVyIGZpZWxkcwogICAgYXJlIGluc3RhbmNlcyBvZiBbanNvbnguUmF3TWVzc2FnZV0oaHR0cHM6Ly9naXRodWIuY29tL2NoYW5jZWQvanNvbngpIHdoaWNoCiAgICBjb21lcyB3aXRoIGEgZmV3IGhlbHBlciBtZXRob2RzLgotICAgU3VwcG9ydHMgYm90aCBKU09OIGFuZCBZQU1MCgojIyBVc2FnZQoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAogICAgImdpdGh1Yi5jb20vY2hhbmNlZC9vcGVuYXBpIgogICAgImdpdGh1Yi5jb20vY2hhbmNlZC91cmkiCiAgICAiZ2l0aHViLmNvbS9zYW50aG9zaC10ZWt1cmkvanNvbnNjaGVtYS92NSIKICAgICJlbWJlZCIKICAgICJpbyIKICAgICJwYXRoL2ZpbGVwYXRoIgogICAgImxvZyIKKQoKLy9nbzplbWJlZCBzcGVjCnZhciBzcGVjRmlsZXMgZW1iZWQuRlMKCmZ1bmMgbWFpbigpIHsKICAgIGN0eCA6PSBjb250ZXh0LkJhY2tncm91bmQoKQoKICAgIGMsIGVyciA6PSBvcGVuYXBpLlNldHVwQ29tcGlsZXIoanNvbnNjaGVtYS5OZXdDb21waWxlcigpKSAvLyBhZGRpbmcgc2NoZW1hIGZpbGVzCiAgICBpZiBlcnIgIT0gbmlsIHsKICAgICAgICBsb2cuRmF0YWwoZXJyKQogICAgfQogICAgdiwgZXJyIDo9IG9wZW5hcGkuTmV3VmFsaWRhdG9yKGMpCiAgICBpZiBlcnIgIT0gbmlsIHsKICAgICAgICBsb2cuRmF0YWwoZXJyKQogICAgfQoKICAgIGZuIDo9IGZ1bmMoXyBjb250ZXh0LkNvbnRleHQsIHVyaSB1cmkuVVJJLCBraW5kIG9wZW5hcGkuS2luZCkgKG9wZW5hcGkuS2luZCwgW11ieXRlLCBlcnJvcil7CiAgICAgICAgZiwgZXJyIDo9IHNwZWNGaWxlcy5PcGVuKGZwKQogICAgICAgIGlmIGVyciAhPSBuaWwgewogICAgICAgICAgICBsb2cuRmF0YWwoZXJyKQogICAgICAgIH0KICAgICAgICAvLyB5b3UgY2FuIHJldHVybiBlaXRoZXIgSlNPTiBvciBZQU1MCiAgICAgICAgZCwgZXJyIDo9IGlvLlJlYWRBbGwoZikKICAgICAgICBpZiBlcnIgIT0gbmlsewogICAgICAgICAgICBsb2cuZmF0YWwoZXJyKQogICAgICAgIH0KICAgICAgICAvLyB1c2UgdGhlIHVyaSBvciB0aGUgZGF0YSB0byBkZXRlcm1pbmUgdGhlIEtpbmQKICAgICAgICByZXR1cm4gb3BlbmFwaS5LaW5kRG9jdW1lbnQsIGQsIG5pbAogICAgfQogICAgLy8geW91IGNhbiBMb2FkIGVpdGhlciBKU09OIG9yIFlBTUwKICAgIC8vIExvYWQgdmFsaWRhdGVzIHRoZSBEb2N1bWVudCBhcyB3ZWxsLgogICAgZG9jLCBlcnIgOj0gb3BlbmFwaS5Mb2FkKGN0eCwgInNwZWMvb3BlbmFwaS55YW1sIiwgdiwgZm4pCiAgICBpZiBlcnIgIT0gbmlsewogICAgICAgIGxvZy5GYXRhbChlcnIpCiAgICB9CiAgICBfID0gZG9jIC8vICpvcGVuYXBpLkRvY3VtZW50Cn0KYGBgCgojIyBWYWxpZGF0aW9uCgpUaGUgc3RhbmRhcmQgdmFsaWRhdG9yIChgU3RkVmFsaWRhdG9yYCkgY3VycmVudGx5IHZhbGlkYXRlcyBPcGVuQVBJIGRvY3VtZW50cwp3aXRoIEpTT04gU2NoZW1hLiBQZXIgT3BlbkFQSSdzIGRvY3VtZW50YXRpb24sIHRoaXMgbWF5IG5vdCBiZSBlbm91Z2ggdG8KcHJvcGVybHkgZW5jYXBzdWxhdGUgYWxsIHRoZSBudWFuY2VzIG9mIGEgc3BlY2lmaWNhdGlvbi4gSG93ZXZlciwgSlNPTiBTY2hlbWEgaXMKYWJsZSB0byBzdWNjZXNzZnVsbHkgdmFsaWRhdGUgdGhlIGN1cnJlbnQgT3BlbkFQSSAzLjEgU3BlY2lmaWNhdGlvbiB0ZXN0IHN1aXRlLgoKVmFsaWRhdGlvbiBpcyBhbiBhcmVhIHRoYXQgc3RpbGwgbmVlZHMgd29yay4gSWYgeW91IGRvIGZpbmQgY2FzZXMgd2hlcmUgdGhlCmN1cnJlbnQgdmFsaWRhdG9yIGlzIG5vdCBzdWZmaWNpZW50LCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBzbyB0aGF0IHRoZSBsaWJyYXJ5CmNhbiBiZSB1cGRhdGVkIHdpdGggcHJvcGVyIGNvdmVyYWdlIG9mIHRoYXQgY2FzZS4KCiMjIERlcGVuZGVuY2llcwoKfCBEZXBlbmRlbmN5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFVzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFtnaXRodWIuY29tL3NhbnRob3NoLXRla3VyaS9qc29uc2NoZW1hL3Y1XShodHRwczovL2dpdGh1Yi5jb20vc2FudGhvc2gtdGVrdXJpL2pzb25zY2hlbWEvdjUpIHwgdXNlZCBpbiB0aGUgYFN0ZFZhbGlkYXRvcmAgdG8gdmFsaWRhdGUgT3BlbkFQSSBkb2N1bWVudHMgJiBjb21wb25lbnRzICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbZ2l0aHViLmNvbS9jaGFuY2VkL2NhcHMvdGV4dF0oaHR0cHM6Ly9naXRodWIuY29tL2NoYW5jZWQvY2FwcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVzZWQgZm9yIGFsbCBzdHJpbmcgZmllbGRzIHRvIHByb3ZpZGUgY2FzZSBjb252ZXJzaW9uIGFuZCBmdW5jdGlvbnMgZnJvbSBgc3RyaW5nc2AgYXMgbWV0aG9kcyB8CnwgW2dpdGh1Yi5jb20vY2hhbmNlZC9qc29ucG9pbnRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2NoYW5jZWQvanNvbnBvaW50ZXIpICAgICAgICAgICAgICAgICAgICAgfCByZWxhdGl2ZSBsb2NhdGlvbnMgb2YgYWxsIG5vbi1zY2FsYXIgbm9kZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtnaXRodWIuY29tL3RpZHdhbGwvZ2pzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS90aWR3YWxsL2dqc29uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSlNPTiBwYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbZ2l0aHViLmNvbS9jaGFuY2VkL2pzb254XShodHRwczovL2dpdGh1Yi5jb20vY2hhbmNlZC9qc29ueCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJhdyBKU09OIHR5cGUgYW5kIGEgdG9vbGtpdCBmb3IganNvbiB0eXBlIGRldGVjdGlvbiAmIHBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW2dpdGh1Yi5jb20vY2hhbmNlZC9tYXBzXShodHRwczovL2dpdGh1Yi5jb20vY2hhbmNlZC9tYXBzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzbWFsbCB1dGlsaXR5IHVzZWQgdG8gc29ydCBgRXh0ZW5zaW9uc2AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtnaXRodWIuY29tL2NoYW5jZWQvdHJhbnNjb2RlXShodHRwczovL2dpdGh1Yi5jb20vY2hhbmNlZC90cmFuc2NvZGUpICAgICAgICAgICAgICAgICAgICAgICAgIHwgdXNlZCB0byB0cmFuc2Zvcm0gWUFNTCBpbnRvIEpTT04gYW5kIHZpY2UgdmVyc2EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbZ2l0aHViLmNvbS9jaGFuY2VkL3VyaV0oaHR0cHM6Ly9naXRodWIuY29tL2NoYW5jZWQvdXJpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVzZWQgdG8gcmVwcmVzZW50IFVSSXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW2dpdGh1Yi5jb20vTWFzdGVybWluZHMvc2VtdmVyXShodHRwczovL2dpdGh1Yi5jb20vTWFzdGVybWluZHMvc2VtdmVyKSAgICAgICAgICAgICAgICAgICAgICAgfCBvcGVuYXBpIGZpZWxkIGFuZCB2ZXJzaW9uIGRldGVjdGlvbiBvZiBPcGVuQVBJIGRvY3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtnb3BrZy5pbi95YW1sLnYzXShodHRwczovL2dvcGtnLmluL3lhbWwudjMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbmVlZGVkIHRvIHNhdGlzZnkgYHlhbWwuTWFyc2hhbGVyYCBhbmQgYHlhbWwuVW5tYXJzaGFsZXJgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbZ2l0aHViLmNvbS9nb29nbGUvZ28tY21wXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvLWNtcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRlc3RpbmcgcHVycG9zZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyBDb250cmlidXRpb25zCgpQbGVhc2UgZmVlbCBmcmVlIHRvIG9wZW4gdXAgYW4gaXNzdWUgb3IgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IGlmIHlvdSBmaW5kIGlzc3VlcwpvciBpZiB0aGVyZSBhcmUgZmVhdHVyZXMgeW91J2QgbGlrZSB0byBzZWUgYWRkZWQuCgojIyBMaWNlbnNlCgpNSVQK readmeEtag: '"148e14ce9c3d302f82a384f2ae0020f85d5818b9"' readmeLastModified: Sat, 01 Oct 2022 17:55:19 GMT repositoryId: 433235623 description: an OpenAPI 3.x library for go created: '2021-11-30T00:04:28Z' updated: '2024-05-30T08:21:32Z' language: Go archived: false stars: 26 watchers: 3 forks: 2 owner: chanced logo: https://avatars.githubusercontent.com/u/1073892?v=4 license: MIT repoEtag: '"67698a7ef5d7c346294af6eb57e9db939befaf67a658a1d9916db3f1ad043c0a"' repoLastModified: Thu, 30 May 2024 08:21:32 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/redocly/json-to-json-schema v3: true repositoryMetadata: base64Readme: >- IyBqc29uLXRvLWpzb24tc2NoZW1hCgpbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZW4ubmV0L25wbS92L0ByZWRvY2x5L2pzb24tdG8tanNvbi1zY2hlbWEpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AcmVkb2NseS9qc29uLXRvLWpzb24tc2NoZW1hKSBbIVtidW5kbGUgc2l6ZV0oaHR0cHM6Ly9iYWRnZW4ubmV0L2J1bmRsZXBob2JpYS9taW4vQHJlZG9jbHkvanNvbi10by1qc29uLXNjaGVtYSldKGh0dHBzOi8vYnVuZGxlcGhvYmlhLmNvbS9wYWNrYWdlL0ByZWRvY2x5L2pzb24tdG8tanNvbi1zY2hlbWEpIFshW2RlcGVuZGVuY3kgc2l6ZV0oaHR0cHM6Ly9iYWRnZW4ubmV0L2J1bmRsZXBob2JpYS9kZXBlbmRlbmN5LWNvdW50L0ByZWRvY2x5L2pzb24tdG8tanNvbi1zY2hlbWEpXShodHRwczovL2J1bmRsZXBob2JpYS5jb20vcGFja2FnZS9AcmVkb2NseS9qc29uLXRvLWpzb24tc2NoZW1hKSBbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9SZWRvY2x5L2pzb24tdG8tanNvbi1zY2hlbWEvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL1JlZG9jbHkvanNvbi10by1qc29uLXNjaGVtYT9icmFuY2g9bWFpbikKCkNvbnZlcnQgSlNPTiBleGFtcGxlcyBpbnRvIEpTT04gc2NoZW1hLgoKU3VwcG9ydHMgSlNPTiBTY2hlbWEgYGRyYWZ0LTA1YCB1c2VkIGluIFN3YWdnZXIgMi4wIGFuZCBPcGVuQVBJIDMuMCBhbmQgbmV3IGRyYWZ0IGBkcmFmdC0yMDIwLTEyYCB1c2VkIGluIE9wZW5BUEkgMy4xLgoKIyMgVXNhZ2UKCmBgYGpzCmltcG9ydCB7IGNvbnZlcnQsIGZvcm1hdCB9IGZyb20gJ0ByZWRvY2x5L2pzb24tdG8tanNvbi1zY2hlbWEnOwoKY29uc3QgZXhhbXBsZSA9IHsgZmlyc3RuYW1lOiAnSm9obicsIHN1cm5hbWU6ICdEb2UnLCBiaXJ0aGRheTogJzE5OTAtMDItMjMnIH07Cgpjb25zdCBzY2hlbWEgPSBjb252ZXJ0KGV4YW1wbGUsIHsKICB0YXJnZXQ6ICdkcmFmdC0wNS1vYXMnLCAvLyBvciBkcmFmdC0yMDIwLTEyCiAgaW5jbHVkZUV4YW1wbGVzOiBmYWxzZSwKICBkaXNhYmxlQWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLAogIGluZmVyUmVxdWlyZWQ6IGZhbHNlLAp9KTsKYGBgCgpPdXRwdXQ6CgpgYGB5YW1sCmZpcnN0bmFtZToKICB0eXBlOiBzdHJpbmcKc3VybmFtZToKICB0eXBlOiBzdHJpbmcKYmlydGhkYXk6CiAgdHlwZTogc3RyaW5nCiAgZm9ybWF0OiBkYXRlCmBgYAoKIyMgU2ltaWxhciB0b29scwoKaHR0cHM6Ly9naXRodWIuY29tL21vaHNlbjEvanNvbi10by1qc29uLXNjaGVtYQo= readmeEtag: '"e67a573719c6836f2f476fc15cd6c16a2afe4c2b"' readmeLastModified: Tue, 09 Jul 2024 12:53:52 GMT repositoryId: 470442887 description: >- Convert JSON examples into JSON schema (supports Swagger 2, OpenAPI 3 and 3.1) created: '2022-03-16T05:21:04Z' updated: '2024-07-09T12:53:56Z' language: TypeScript archived: false stars: 25 watchers: 13 forks: 5 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 repoEtag: '"cc30af7031a7540d12bc519ad248b5a367c54cc682157b3b1d2de63f734ea95d"' repoLastModified: Tue, 09 Jul 2024 12:53:56 GMT foundInMaster: true category: - Data Validators - Parsers id: b3e82f9d6dce83866b919d7eb14c19bc - source: openapi3 tags repository: https://github.com/typeable/comparest v3: true repositoryMetadata: base64Readme: >- IyBjb21wYVJFU1QKClshW0hhY2thZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vaGFja2FnZS92L2NvbXBhUkVTVC5zdmc/bG9nbz1oYXNrZWxsKV0oaHR0cHM6Ly9oYWNrYWdlLmhhc2tlbGwub3JnL3BhY2thZ2UvY29tcGFSRVNUKQpbIVtNSVQgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZyldKExJQ0VOU0UpCgpDb21wYXRpYmlsaXR5IGNoZWNrZXIgZm9yIE9wZW5BUEkKCiMjIFVzaW5nIGNvbXBhUkVTVCBpbiBHaXRodWIgQWN0aW9ucwoKQWRkIHRoZSBmb2xsb3dpbmcgc3RlcCB0byB5b3VyICBHaXRodWIgQWN0aW9ucyB3b3JrZmxvdzoKCmBgYHlhbWwKLSB1c2VzOiB0eXBlYWJsZS9jb21wYXJlc3QKICAgIGlmOiAke3sgZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3B1bGxfcmVxdWVzdCcgfX0KICAgIHdpdGg6CiAgICAgIG9sZDogb2xkLW9wZW5hcGkueWFtbAogICAgICBuZXc6IG5ldy1vcGVuYXBpLnlhbWwKYGBgCgpUaGUgYG5ld2AgYW5kIGBvbGRgIHZhbHVlcyBzaG91bGQgYmUgcGF0aHMgdG8geW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb25zIHlvdSB3YW50IHRvIGNvbXBhcmUuCgpZb3Ugd2lsbCBnZXQgc29tZXRoaW5nIGxpa2UgdGhpcyBpbiB5b3VyIHB1bGwgcmVxdWVzdHM6CgohW10oZG9jcy9pbWcvZ2l0aHViLWFjdGlvbi1yZXBvcnQucG5nKQoKRm9yIG1vcmUgZGV0YWlsIHBsZWFzZSBzZWUgb3VyIFtpbnRlZ3JhdGlvbiBndWlkZV0oZG9jcy9JbnRlZ3JhdGlvbl9ndWlkZS5tZCkuCgojIyBBbiBleGFtcGxlCgojIyMgWW91ciBzaXR1YXRpb24KCllvdSBhcmUgZGV2ZWxvcGluZyBhIHZlcnkgaW1wb3J0YW50IHNlcnZlciB3aXRoIGEgUkVTVCBBUEkuIFlvdSBoYXZlIGNsaWVudHMgd2hvIHVzZSB5b3VyIEFQSSB0aGF0IHlvdSBkbyBub3QgY29udHJvbC4gU2F5LCB5b3UgYXJlIGFsc28gZGV2ZWxvcGluZyBhIG1vYmlsZSBhcHAgdGhhdCB1c2VzIHlvdXIgQVBJIGFuZCB5b3UgY2FuJ3QgZm9yY2Ugc29tZW9uZSB0byB1cGRhdGUgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLiAoT3IgeW91IHByZWZlciBub3QgdG8gZm9yIFVYIHJlYXNvbnMuKQoKWW91IGhhdmUgcmVjZW50bHkgcmVsZWFzZWQgdmVyc2lvbiAxLjAgYW5kIHRoaW5ncyBhcmUgZ29pbmcgZ3JlYXQ6IHVzZXIgYXJlIGRvd25sb2FkaW5nIHlvdXIgYXBwLCBzZXJ2ZXJzIGFyZSBwcm9jZXNzaW5nIHJlcXVlc3RzLgoKWW91IGRlc2NyaWJlIHlvdXIgQVBJIGluIGEgZmlsZSBgYXBpLTEuMC4wLnlhbWxgOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogU3dhZ2dlciBQZXRzdG9yZQogIGxpY2Vuc2U6CiAgICBuYW1lOiBNSVQKc2VydmVyczoKICAtIHVybDogaHR0cHM6Ly9leGFtcGxlLmNvbQpwYXRoczoKICAvcGV0czoKICAgIGdldDoKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIG5hbWU6IGxpbWl0CiAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIG1heGltdW06IDIwCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiIgogICAgICAgICAgaGVhZGVyczoKICAgICAgICAgICAgeC1uZXh0OgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0cyIKICAgIHBvc3Q6CiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1BldCIKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDEiOgogICAgICAgICAgZGVzY3JpcHRpb246ICIiCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFBldDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaWQKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBtaW5MZW5ndGg6IDMKICAgICAgICAgIG1heExlbmd0aDogMTAKICAgIFBldHM6CiAgICAgIHR5cGU6IGFycmF5CiAgICAgIGl0ZW1zOgogICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQiCmBgYAoKIyMjIEV2b2x2aW5nIHlvdXIgcHJvZHVjdAoKRW50aHVzZWQgb3ZlciB5b3VyIGluaXRpYWwgc3VjY2VzcyB5b3UgaHVycnkgdG8gcmVsZWFzZSBhIG5ldyBhbmQgaW1wcm92ZWQgdmVyc2lvbiBvZiB5b3VyIEFQSSBhbmQgbW9iaWxlIGFwcC4KCkFmdGVyIGEgcm91bmQgb2YgdmVyeSBpbnRlbnNlIHByb2dyYW1taW5nIHlvdSB0YWtlIGEgbG9vayBhdCB5b3VyIG5ldyBgYXBpLTEuMS4wLnlhbWxgOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4xLjAKICB0aXRsZTogU3dhZ2dlciBQZXRzdG9yZQogIGxpY2Vuc2U6CiAgICBuYW1lOiBNSVQKc2VydmVyczoKICAtIHVybDogaHR0cHM6Ly9leGFtcGxlLmNvbQpwYXRoczoKICAvcGV0czoKICAgIGdldDoKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIG5hbWU6IGxpbWl0CiAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIG1heGltdW06IDMwCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiIgogICAgICAgICAgaGVhZGVyczoKICAgICAgICAgICAgeC1uZXh0OgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0cyIKICAgIHBvc3Q6CiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1BldCIKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDEiOgogICAgICAgICAgZGVzY3JpcHRpb246ICIiCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFBldDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaWQKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBtaW5MZW5ndGg6IDEKICAgICAgICAgIG1heExlbmd0aDogMTUKICAgICAgICB3ZWlnaHQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICBQZXRzOgogICAgICB0eXBlOiBhcnJheQogICAgICBpdGVtczoKICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0IgpgYGAKCkxvb2tpbmcgYXQgdGhlIHZlcnkgbGFyZ2UgYW5kIGNvbXBsZXggQVBJIGRlc2NyaXB0aW9uLCB5b3UgZ3JvdyBtb3JlIGFuZCBtb3JlIGNvbmNlcm5lZCB0aGF0IHlvdXIgb2xkIG1vYmlsZSBhcHAgbWlnaHQgc3RvcCB3b3JraW5nIHdoZW4geW91IHVwZGF0ZSB0aGUgc2VydmVyLiBCdXQgdGhlIHNwZWMgaXMgdG9vIGxhcmdlIGFuZCB0b28gY29tcGxleCB0byByZWFzb25hYmx5IGFzc2VzcyB0aGlzIG1hbnVhbGx5LgoKIyMjIEFzc2Vzc2luZyBjb21wYXRpYmlsaXR5IGF1dG9tYXRpY2FsbHkKCkx1Y2tpbHksIHlvdSBoYXZlIGFjY2VzcyB0byBjb21wYVJFU1Qgd2hpY2ggY2FuIHByb2dyYW1tYXRpY2FsbHkgYW5hbHl6ZSB5b3VyIEFQSXMgYW5kIGRldGVybWluZSB3aGF0LCBpZiBhbnl0aGluZywgYnJlYWtzIGNvbXBhdGliaWxpdHkgYW5kIHdoYXQgZG9lc24ndC4KCllvdSBjYW4gY2FsbCBpdCwgcGFzc2luZyB0aGUgQVBJIHlvdXIgY2xpZW50IHdpbGwgYmUgYXdhcmUgb2YsIGFuZCB0aGUgQVBJIHlvdXIgc2VydmVyIHdpbGwgc2VydmUgbGlrZSBzbzoKCmBgYGJhc2gKZG9ja2VyIHJ1biAtLXJtIC12ICQocHdkKTovZGF0YTpydyB0eXBlYWJsZS9jb21wYXJlc3QgLS1jbGllbnQgL2RhdGEvYXBpLTEuMC4wLnlhbWwgLS1zZXJ2ZXIgL2RhdGEvYXBpLTEuMS4wLnlhbWwgLS1vdXRwdXQgL2RhdGEvcmVwb3J0Lm1kCmBgYAoKUnVubmluZyB0aGlzIGNvbW1hbmQgd2lsbCBvdXRwdXQgYSBmaWxlIGByZXBvcnQubWRgLCBjb250YWluaW5nIHRoZSBjb21wYXRpYmlsaXR5IHJlcG9ydCBiZXR3ZWVuIHRoZSB0d28gQVBJczoKCj4gIyBTdW1tYXJ5Cj4KPiB8IFvinYwgQnJlYWtpbmcgY2hhbmdlc10oI2JyZWFraW5nLWNoYW5nZXMpIHwgW+KaoO+4jyBOb24tYnJlYWtpbmcgY2hhbmdlc10oI25vbi1icmVha2luZy1jaGFuZ2VzKSB8Cj4gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKPiB8IDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+Cj4gIyA8c3BhbiBpZD0iYnJlYWtpbmctY2hhbmdlcyI+PC9zcGFuPuKdjCBCcmVha2luZyBjaGFuZ2VzCj4KPiAjIyAqKkdFVCoqIC9wZXRzCj4KPiAjIyMg4qyF77iP4piB77iPIEpTT04gUmVzcG9uc2Ug4oCTIDIwMAo+Cj4gIyMjIyBgJFsqXS5uYW1lKFN0cmluZylgCj4KPiAxLiAgTWF4aW11bSBsZW5ndGggb2YgdGhlIHN0cmluZyBjaGFuZ2VkIGZyb20gMTAgdG8gMTUuCj4KPiAyLiAgTWluaW11bSBsZW5ndGggb2YgdGhlIHN0cmluZyBjaGFuZ2VkIGZyb20gMyB0byAxLgo+Cj4gIyMgKipQT1NUKiogL3BldHMKPgo+ICMjIyDinqHvuI/imIHvuI8gSlNPTiBSZXF1ZXN0Cj4KPiAjIyMjIGAkLndlaWdodGAKPgo+IDEuICBWYWx1ZXMgYXJlIG5vdyBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgdHlwZXM6Cj4KPiAgICAgLSAgIE51bWJlcgo+Cj4gMi4gIFRoZSBwcm9wZXJ0eSB3YXMgcHJldmlvdXNseSBpbXBsaWNpdGx5IGRlc2NyaWJlZCBieSB0aGUgY2F0Y2gtYWxsCj4gICAgICJhZGRpdGlvbmFsIHByb3BlcnRpZXMiIGNhc2UuIEl0IGlzIG5vdyBleHBsaWNpdGx5IGRlZmluZWQuCj4KPiAjIyMjIGAkLndlaWdodChOdW1iZXIpYAo+Cj4gVmFsdWUgaXMgbm93IGEgbXVsdGlwbGUgb2YgMS4wLgo+Cj4gIyA8c3BhbiBpZD0ibm9uLWJyZWFraW5nLWNoYW5nZXMiPjwvc3Bhbj7imqDvuI8gTm9uLWJyZWFraW5nIGNoYW5nZXMKPgo+ICMjICoqR0VUKiogL3BldHMKPgo+ICMjIyBQYXJhbWV0ZXIgbGltaXQKPgo+ICMjIyMgSlNPTiBTY2hlbWEKPgo+ICMjIyMjIGAkKE51bWJlcilgCj4KPiBVcHBlciBib3VuZCBjaGFuZ2VkIGZyb20gMjAuMCBpbmNsdXNpdmUgdG8gMzAuMCBpbmNsdXNpdmUuCj4KPiAjIyMg4qyF77iP4piB77iPIEpTT04gUmVzcG9uc2Ug4oCTIDIwMAo+Cj4gIyMjIyBgJFsqXS53ZWlnaHRgCj4KPiAxLiAgVmFsdWVzIGFyZSBub3cgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIHR5cGVzOgo+Cj4gICAgIC0gICBOdW1iZXIKPgo+IDIuICBUaGUgcHJvcGVydHkgd2FzIHByZXZpb3VzbHkgaW1wbGljaXRseSBkZXNjcmliZWQgYnkgdGhlIGNhdGNoLWFsbAo+ICAgICAiYWRkaXRpb25hbCBwcm9wZXJ0aWVzIiBjYXNlLiBJdCBpcyBub3cgZXhwbGljaXRseSBkZWZpbmVkLgo+Cj4gIyMjIyBgJFsqXS53ZWlnaHQoTnVtYmVyKWAKPgo+IFZhbHVlIGlzIG5vdyBhIG11bHRpcGxlIG9mIDEuMC4KPgo+ICMjICoqUE9TVCoqIC9wZXRzCj4KPiAjIyMg4p6h77iP4piB77iPIEpTT04gUmVxdWVzdAo+Cj4gIyMjIyBgJC5uYW1lKFN0cmluZylgCj4KPiAxLiAgTWF4aW11bSBsZW5ndGggb2YgdGhlIHN0cmluZyBjaGFuZ2VkIGZyb20gMTAgdG8gMTUuCj4KPiAyLiAgTWluaW11bSBsZW5ndGggb2YgdGhlIHN0cmluZyBjaGFuZ2VkIGZyb20gMyB0byAxLgoKWW91IG5vdyBrbm93IGV4YWN0bHkgaW4gd2hhdCBzaXR1YXRpb25zIGFuZCBpbiB3aGF0IHdheSB5b3VyIDEuMCB2ZXJzaW9uIG9mIHRoZSBhcHAgd2lsbCBicmVhayBpZiB5b3UgZGVwbG95IHlvdXIgMS4xIHZlcnNpb24gb2YgdGhlIHNlcnZlci4KCiMjIyBBZGRpdGlvbmFsIGZvcm1hdHMKCllvdSBjYW4gYWxzbyBwcm9kdWNlIGEgc2VsZi1jb250YWluZWQgSFRNTCByZXBvcnQgdGhhdCB5b3UgY2FuIG9wZW4gaW4geW91ciBicm93c2VyIGJ5IHNpbXBseSBvbWl0dGluZyB0aGUgZmlsZSBleHRlbnNpb24gb2YgdGhlIG91dHB1dCBmaWxlOgoKYGBgYmFzaApkb2NrZXIgcnVuIC0tcm0gLXYgJChwd2QpOi9kYXRhOnJ3IHR5cGVhYmxlL2NvbXBhcmVzdCAtLWNsaWVudCAvZGF0YS9hcGktMS4wLjAueWFtbCAtLXNlcnZlciAvZGF0YS9hcGktMS4xLjAueWFtbCAtLW91dHB1dCAvZGF0YS9yZXBvcnQKYGBgCgojIyBDTEkgZG9jcwoKRm9yIG1vcmUgZGV0YWlsIHBsZWFzZSBzZWUgb3VyIFt1c2VyIGd1aWRlXShkb2NzL1VzZXJfZ3VpZGUubWQpLgoKYGBgClVzYWdlOiBjb21wYXJlc3QgKC1jfC0tY2xpZW50IEFSRykgKC1zfC0tc2VydmVyIEFSRykKICAgICAgICAgICAgICAgICBbLS1zaWxlbnQgfCAtLW9ubHktYnJlYWtpbmcgfCAtLWFsbF0gWy1vfC0tb3V0cHV0IEFSR10KICAgICAgICAgICAgICAgICBbLS1mb2xkaW5nLWJsb2NrLXF1b3Rlcy1zdHlsZSB8IC0taGVhZGVyLXN0eWxlXQogICAgICAgICAgICAgICAgIFstLXNpZ25hbC1leGl0LWNvZGVdCiAgQSB0b29sIHRvIGNoZWNrIGNvbXBhdGliaWxpdHkgYmV0d2VlbiB0d28gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4KCiAgVXNhZ2UgZXhhbXBsZXMKCiAgICAgIENvbXBhcmUgZmlsZXMgb2xkLnlhbWwgd2l0aCBuZXcueWFtbCBhbmQgb3V0cHV0IHRoZSByZXN1bHRpbmcgcmVwb3J0IHRvCiAgICAgIHN0ZG91dDoKCiAgICAgICAgICBjb21wYXJlc3QgLWMgb2xkLnlhbWwgLXMgbmV3LnlhbWwKCiAgICAgIE9ubHkgb3V0cHV0IGJyZWFraW5nIGNoYW5nZXMgYW5kIHdyaXRlIGEgc3R5bGVkIEhUTUwgcmVwb3J0IHRvIGZpbGUKICAgICAgcmVwb3J0Lmh0bWw6CgogICAgICAgICAgY29tcGFyZXN0IC1jIG9sZC55YW1sIC1zIG5ldy55YW1sIC0tb25seS1icmVha2luZyAtbyByZXBvcnQKCiAgICAgIERvbid0IG91dHB1dCBhbnl0aGluZywgb25seSBmYWlsIGlmIHRoZXJlIGFyZSBicmVha2luZyBjaGFuZ2VzOgoKICAgICAgICAgIGNvbXBhcmVzdCAtYyBvbGQuanNvbiAtcyBuZXcuanNvbiAtLXNpbGVudAoKICAgICAgV3JpdGUgZnVsbCByZXBvcnQgc3VpdGFibGUgZm9yIGVtYmVkZGluZyBpbnRvIGEgR2l0SHViIGNvbW1lbnQgdG8KICAgICAgcmVwb3J0Lmh0bWw6CgogICAgICAgICAgY29tcGFyZXN0IC1jIG9sZC5qc29uIC1zIG5ldy5qc29uIC0tZm9sZGluZy1ibG9jay1xdW90ZXMtc3R5bGUgLW8gcmVwb3J0Lmh0bWwKCkF2YWlsYWJsZSBvcHRpb25zOgogIC1oLC0taGVscCAgICAgICAgICAgICAgICBTaG93IHRoaXMgaGVscCB0ZXh0CiAgLWMsLS1jbGllbnQgQVJHICAgICAgICAgIEEgcGF0aCB0byB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBzcGVjaWZpY2F0aW9uIHRoYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSB1c2VkIGZvciB0aGUgY2xpZW50IG9mIHRoZSBBUEkuIENhbiBiZSBlaXRoZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBZQU1MIG9yIEpTT04gZmlsZS4KICAtcywtLXNlcnZlciBBUkcgICAgICAgICAgQSBwYXRoIHRvIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIHNwZWNpZmljYXRpb24gdGhhdAogICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIHVzZWQgZm9yIHRoZSBzZXJ2ZXIgb2YgdGhlIEFQSS4gQ2FuIGJlIGVpdGhlcgogICAgICAgICAgICAgICAgICAgICAgICAgICBhIFlBTUwgb3IgSlNPTiBmaWxlLgogIC0tc2lsZW50ICAgICAgICAgICAgICAgICBTaWxlbmNlIGFsbCBvdXRwdXQuIE9ubHkgbWFrZXMgc2Vuc2UgaW4gY29tYmluYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCAtLXNpZ25hbC1leGl0LWNvZGUuCiAgLS1vbmx5LWJyZWFraW5nICAgICAgICAgIE9ubHkgcmVwb3J0IGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIG91dHB1dC4KICAtLWFsbCAgICAgICAgICAgICAgICAgICAgUmVwb3J0IGJvdGggaW5jb21wYXRpYmxlIGFuZCBjb21wYXRpYmxlIGNoYW5nZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBhdGlibGUgY2hhbmdlcyB3aWxsIG5vdCB0cmlnZ2VyIGEgZmFpbHVyZSBleGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUuCiAgLW8sLS1vdXRwdXQgQVJHICAgICAgICAgIFRoZSBmaWxlIHBhdGggd2hlcmUgdGhlIG91dHB1dCBzaG91bGQgYmUgd3JpdHRlbi4gSWYKICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wdGlvbiBpcyBvbWl0dGVkIHRoZSByZXN1bHQgd2lsbCBiZSB3cml0dGVuIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBmaWxlIGV4dGVuc2lvbiBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgdHlwZSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGZpbGUuCgogICAgICAgICAgICAgICAgICAgICAgICAgICBTdXBwb3J0cyBtYW55IGZvcm1hdHMgc3VjaCBhcyBtYXJrZG93biwgaHRtbCwgcnRmLAogICAgICAgICAgICAgICAgICAgICAgICAgICBkb2MsIHR4dCwgcnN0LCBhbmQgbWFueSBtb3JlLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVhdmUgb3V0IHRoZSBleHRlbnNpb24gdG8gcHJvZHVjZSBhIHNlbGYtY29udGFpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgcmVwb3J0IHdpdGggc3R5bGluZy4KICAtLWZvbGRpbmctYmxvY2stcXVvdGVzLXN0eWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSByZXBvcnQgdHJlZSBpcyBzdHJ1Y3R1cmVkIHVzaW5nIHN1bW1hcnkvZGV0YWlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgZWxlbWVudHMgYW5kIGluZGVudGVkIHVzaW5nIGJsb2NrIHF1b3Rlcy4gVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSByZW5kZXJzIHdlbGwgb24gR2l0SHViLkludGVuZGVkIGZvciBIVE1MIG91dHB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQuIE1hcmtkb3duIGhhcyByZW5kZXJpbmcgYnVncyBvbiBHaXRIdWIuCiAgLS1oZWFkZXItc3R5bGUgICAgICAgICAgIFRoZSByZXBvcnQgdHJlZSBpcyBzdHJ1Y3R1cmVkIHVzaW5nIGluY3JlYXNpbmcgbGV2ZWxzCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGhlYWRlcnMuCiAgLS1zaWduYWwtZXhpdC1jb2RlICAgICAgIFNpZ25hbCBBUEkgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBleGl0IGNvZGUuCgogICAgICAgICAgICAgICAgICAgICAgICAgICBFeGl0IHdpdGggMCBpZiB0aGVyZSBhcmUgbm8gYnJlYWtpbmcgY2hhbmdlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhpdCB3aXRoIDEgaWYgdGhlcmUgYXJlIGJyZWFraW5nIGNoYW5nZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4aXQgd2l0aCAyIGlmIGNvdWxkIG5vdCBkZXRlcm1pbmUgY29tcGF0aWJpbGl0eS4KYGBgCg== readmeEtag: '"9cadc60d8914e12b5fe7f44ec8cec9782c6dd8a9"' readmeLastModified: Mon, 29 Jul 2024 18:37:22 GMT repositoryId: 340356702 description: Compatibility checker for OpenAPI created: '2021-02-19T12:03:06Z' updated: '2024-07-29T18:37:27Z' language: Haskell archived: false stars: 24 watchers: 3 forks: 2 owner: typeable logo: https://avatars.githubusercontent.com/u/22911778?v=4 license: MIT repoEtag: '"b4d0eea0c88a14c4026aa0f72b381f1bdead11c2e4bb7876fed05c4f785d7d44"' repoLastModified: Mon, 29 Jul 2024 18:37:27 GMT foundInMaster: true category: Parsers id: 7658feea5b221bdef8d18a4d78f0ae7f - source: openapi3 tags repository: https://github.com/openapitools/sbt-openapi-generator v3: true repositoryMetadata: base64Readme: >- IyBzYnQtb3BlbmFwaS1nZW5lcmF0b3IKCiFbU2NhbGEgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuQVBJVG9vbHMvc2J0LW9wZW5hcGktZ2VuZXJhdG9yL3dvcmtmbG93cy9TY2FsYSUyMENJL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKQoKQSBTYnQgcGx1Z2luIHRvIHN1cHBvcnQgdGhlIE9wZW5BUEkgZ2VuZXJhdG9yIHByb2plY3QuCgojIFVzYWdlCgpBZGQgdG8geW91ciBgcHJvamVjdC9wbHVnaW5zLnNidGA6CgpgYGBzYnQKYWRkU2J0UGx1Z2luKCJvcmcub3BlbmFwaXRvb2xzIiAlICJzYnQtb3BlbmFwaS1nZW5lcmF0b3IiICUgIjcuNy4wIikKYGBgCgojIENvbmZpZ3VyYXRpb24KCkNvbmZpZ3VyYXRpb24gYmFzZWQgb24gcHJvamVjdCBtb2R1bGUgaXMgcmVjb21tZW5kZWQgd2F5IHRvIHNlcGFyYXRlIHNwZWNpZmljYXRpb25zIGJ5IG1vZHVsZXMuCgpZb3UgbXVzdCBkZWZpbmUgb25lIG9mIHRoZSBzZXR0aW5ncyBgb3BlbkFwaUlucHV0U3BlY2Agb3IgYG9wZW5BcGlDb25maWdGaWxlYCB0byBhYmxlIHJ1biBwbHVnaW4gdG8gZ2VuZXJhdGUuCgpTZXR0aW5ncyB3aWxsIGJlIHBpY2tlZCB1cCBmcm9tIGBvcGVuQXBpQ29uZmlnRmlsZWAgZmlyc3QgaWYgZGVmaW5lZCBhbmQgdGhlbiB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggbW9kdWxlIHNwZWNpZmllZApzZXR0aW5ncyBpZiBwcm92aWRlZAoKV2l0aCB0aGUgbmV4dCBleGFtcGxlIG1vZHVsZSBgZ2VuZXJhdGVkYCB3aWxsIGJlIGRlZmluZWQgYXM6CgpgYGBzYnQKbGF6eSB2YWwgZ2VuZXJhdGVkID0gcHJvamVjdC5pbihmaWxlKCJnZW5lcmF0ZWQiKSkKICAuc2V0dGluZ3MoCiAgICBvcGVuQXBpSW5wdXRTcGVjIDo9ICJvcGVuYXBpLnlhbWwiLAogICAgb3BlbkFwaUNvbmZpZ0ZpbGUgOj0gImNvbmZpZy55YW1sIgogICkKYGBgCgpUaGVyZSBpcyBhIGhlbHBlcnMgdG8gaGF2ZSBib29sZWFuIHNldHRpbmdzIG1vcmUgcmVhZGFibGUuIEluc3RlYWQgb2YgYFNvbWUodHJ1ZSlgIGl0IHBvc3NpYmxlIHRvIGRvIG5leHQ6CmBgYHNidAogICAgb3BlbkFwaVZhbGlkYXRlU3BlYyA6PSBTZXR0aW5nRGlzYWJsZWQsCiAgICBvcGVuQXBpR2VuZXJhdGVNb2RlbFRlc3RzIDo9IFNldHRpbmdFbmFibGVkLApgYGAKIyBFeGVjdXRpb24KClRvIHByaW50IGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2VzIHVzZQpgYGBzaGVsbCBzY3JpcHQKc2J0IG9wZW5BcGlHZW5lcmF0b3JzCmBgYAoKVG8gcnVuIHRlbXBsYXRlIGdlbmVyYXRpb24gcHJvY2VzcwpgYGBzaGVsbCBzY3JpcHQKc2J0IG9wZW5BcGlHZW5lcmF0ZQpgYGAKb3IgcGVyIGRlZmluZWQgbW9kdWxlCmBgYHNoZWxsIHNjcmlwdApzYnQgZ2VuZXJhdGVkL29wZW5BcGlHZW5lcmF0ZQpgYGAKCiMgU2V0dGluZ3MKCgp8IFNldHRpbmcgIHwgVHlwZSAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Cnwgb3BlbkFwaUdlbmVyYXRvck5hbWUgKnwgYFN0cmluZ2AgfCBUaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdG9yIHdoaWNoIHdpbGwgaGFuZGxlIGNvZGVnZW4uIChzZWUgXCJvcGVuQXBpR2VuZXJhdG9yc1wiIHRhc2spPGJyPiBSZXF1aXJlZC4gQ2FuIGJlIHByb3ZpZGVkIGFzIGBnZW5lcmF0b3JOYW1lYCBvcHRpb24gb2YgYG9wZW5BcGlDb25maWdGaWxlYCBqc29uIGNvbmZpZyB8Cnwgb3BlbkFwaUlucHV0U3BlYyAqfCBgU3RyaW5nYCB8IFRoZSBPcGVuIEFQSSAyLjAvMy54IHNwZWNpZmljYXRpb24gbG9jYXRpb24gKGZpbGUgb3IgdXJsKTxicj4gUmVxdWlyZWQuIENhbiBiZSBwcm92aWRlZCBhcyBgaW5wdXRTcGVjYCBvcHRpb24gb2YgYG9wZW5BcGlDb25maWdGaWxlYCBqc29uIGNvbmZpZyB8Cnwgb3BlbkFwaU91dHB1dERpcnwgYFN0cmluZ2AgfCBUaGUgb3V0cHV0IHRhcmdldCBkaXJlY3RvcnkgaW50byB3aGljaCBjb2RlIHdpbGwgYmUgZ2VuZXJhdGVkIHwKfCBvcGVuQXBpQ29uZmlnRmlsZSAqKnwgYFN0cmluZ2AgfCBQYXRoIHRvIGpzb24gY29uZmlndXJhdGlvbiBmaWxlPGJyPiBUaGlzIHNldHRpbmcgaXMgcmVxdWlyZWQgd2l0aCBgZ2VuZXJhdG9yTmFtZWAgYW5kIGBpbnB1dFNwZWNgIHNldHRpbmdzIHByb3ZpZGVkIGlmIHNidCBzZXR0aW5ncyBgb3BlbkFwaUdlbmVyYXRvck5hbWVgIGFuZCBgb3BlbkFwaUlucHV0U3BlY2AgYXJlIGFic2VudCB8Cnwgb3BlbkFwaUFkZGl0aW9uYWxQcm9wZXJ0aWVzIHwgYE1hcFtTdHJpbmcsIFN0cmluZ11gIHwgU2V0cyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBieSB0aGUgbXVzdGFjaGUgdGVtcGxhdGVzIGluIHRoZSBmb3JtYXQgb2YgbmFtZT12YWx1ZSxuYW1lPXZhbHVlLiBZb3UgY2FuIGFsc28gaGF2ZSBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiB0aGlzIG9wdGlvbiB8Cnwgb3BlbkFwaUdsb2JhbFByb3BlcnRpZXMgfCBgTWFwW1N0cmluZywgU3RyaW5nXWAgfFNldHMgc3BlY2lmaWVkIHN5c3RlbSBwcm9wZXJ0aWVzIHwKfCBvcGVuQXBpVmVyYm9zZSB8IGBPcHRpb25bQm9vbGVhbl1gIHwgVGhlIHZlcmJvc2l0eSBvZiBnZW5lcmF0aW9uIHwKfCBvcGVuQXBpVmFsaWRhdGVTcGVjIHwgYE9wdGlvbltCb29sZWFuXWAgfCBXaGV0aGVyIG9yIG5vdCBhbiBpbnB1dCBzcGVjaWZpY2F0aW9uIHNob3VsZCBiZSB2YWxpZGF0ZWQgdXBvbiBnZW5lcmF0aW9uIHwKfCBvcGVuQXBpVGVtcGxhdGVEaXIgfCBgU3RyaW5nYCB8IFRoZSB0ZW1wbGF0ZSBkaXJlY3RvcnkgaG9sZGluZyBhIGN1c3RvbSB0ZW1wbGF0ZSB8Cnwgb3BlbkFwaUF1dGggfCBgU3RyaW5nYCB8IEFkZHMgYXV0aG9yaXphdGlvbiBoZWFkZXJzIHdoZW4gZmV0Y2hpbmcgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbnMgcmVtb3RlbHkuIFBhc3MgaW4gYSBVUkwtZW5jb2RlZCBzdHJpbmcgb2YgbmFtZTpoZWFkZXIgd2l0aCBhIGNvbW1hIHNlcGFyYXRpbmcgbXVsdGlwbGUgdmFsdWVzIHwKfCBvcGVuQXBpU2tpcE92ZXJ3cml0ZSB8IGBPcHRpb25bQm9vbGVhbl1gIHwgU3BlY2lmaWVzIGlmIHRoZSBleGlzdGluZyBmaWxlcyBzaG91bGQgYmUgb3ZlcndyaXR0ZW4gZHVyaW5nIHRoZSBnZW5lcmF0aW9uIHwKfCBvcGVuQXBpUGFja2FnZU5hbWUgfCBgU3RyaW5nYCB8IFBhY2thZ2UgZm9yIGdlbmVyYXRlZCBjbGFzc2VzICh3aGVyZSBzdXBwb3J0ZWQpIHwKfCBvcGVuQXBpQXBpUGFja2FnZSB8IGBTdHJpbmdgIHwgUGFja2FnZSBmb3IgZ2VuZXJhdGVkIGFwaSBjbGFzc2VzIHwKfCBvcGVuQXBpTW9kZWxQYWNrYWdlIHwgYFN0cmluZ2AgfCBQYWNrYWdlIGZvciBnZW5lcmF0ZWQgbW9kZWxzIHwKfCBvcGVuQXBpTW9kZWxOYW1lUHJlZml4IHwgYFN0cmluZ2AgfCBQcmVmaXggdGhhdCB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwgbW9kZWwgbmFtZXMgfAp8IG9wZW5BcGlNb2RlbE5hbWVTdWZmaXggfCBgU3RyaW5nYCB8IFN1ZmZpeCB0aGF0IHdpbGwgYmUgYXBwZW5kZWQgdG8gYWxsIG1vZGVsIG5hbWVzIHwKfCBvcGVuQXBpSW5zdGFudGlhdGlvblR5cGVzIHwgYE1hcFtTdHJpbmcsIFN0cmluZ11gIHwgU2V0cyBpbnN0YW50aWF0aW9uIHR5cGUgbWFwcGluZ3MgfAp8IG9wZW5BcGlUeXBlTWFwcGluZ3MgfCBgTWFwW1N0cmluZywgU3RyaW5nXWAgfCBTZXRzIG1hcHBpbmdzIGJldHdlZW4gT3BlbkFQSSBzcGVjIHR5cGVzIGFuZCBnZW5lcmF0ZWQgY29kZSB0eXBlcyB8Cnwgb3BlbkFwaVNlcnZlclZhcmlhYmxlcyB8IGBNYXBbU3RyaW5nLCBTdHJpbmddYCB8IFNldHMgc2VydmVyIHZhcmlhYmxlIGZvciBzZXJ2ZXIgVVJMIHRlbXBsYXRlIHN1YnN0aXR1dGlvbiwgaW4gdGhlIGZvcm1hdCBvZiBuYW1lPXZhbHVlLG5hbWU9dmFsdWUuIFlvdSBjYW4gYWxzbyBoYXZlIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIHRoaXMgb3B0aW9uIHwKfCBvcGVuQXBpTGFuZ3VhZ2VTcGVjaWZpY1ByaW1pdGl2ZXMgfCBgTGlzdFtTdHJpbmddYCB8IFNwZWNpZmllcyBhZGRpdGlvbmFsIGxhbmd1YWdlIHNwZWNpZmljIHByaW1pdGl2ZSB0eXBlcyBpbiB0aGUgZm9ybWF0IG9mIHR5cGUxLHR5cGUyLHR5cGUzLHR5cGUzLiBGb3IgZXhhbXBsZTogU3RyaW5nLGJvb2xlYW4sQm9vbGVhbixEb3VibGUgfAp8IG9wZW5BcGlJbXBvcnRNYXBwaW5ncyB8IGBNYXBbU3RyaW5nLCBTdHJpbmddYCB8IFNwZWNpZmllcyBtYXBwaW5ncyBiZXR3ZWVuIGEgZ2l2ZW4gY2xhc3MgYW5kIHRoZSBpbXBvcnQgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhhdCBjbGFzcyB8Cnwgb3BlbkFwaUludm9rZXJQYWNrYWdlIHwgYFN0cmluZ2AgfCBSb290IHBhY2thZ2UgZm9yIGdlbmVyYXRlZCBjb2RlIHwKfCBvcGVuQXBpR3JvdXBJZCB8IGBTdHJpbmdgIHwgZ3JvdXBJZCBpbiBnZW5lcmF0ZWQgcG9tLnhtbC9idWlsZC5zYnQgfAp8IG9wZW5BcGlJZCB8IGBTdHJpbmdgIHwgYXJ0aWZhY3RJZCBpbiBnZW5lcmF0ZWQgcG9tLnhtbC9idWlsZC5zYnQuIFRoaXMgYWxzbyBiZWNvbWVzIHBhcnQgb2YgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5J3MgZmlsZW5hbWUgfAp8IG9wZW5BcGlMaWJyYXJ5IHwgYFN0cmluZ2AgfCBsaWJyYXJ5IHRlbXBsYXRlIChzdWItdGVtcGxhdGUpIHwKfCBvcGVuQXBpR2l0SG9zdCB8IGBTdHJpbmdgIHxHaXQgaG9zdCwgZS5nLiBnaXRsYWIuY29tIHwKfCBvcGVuQXBpR2l0VXNlcklkIHwgYFN0cmluZ2AgfCBHaXQgdXNlciBJRCwgZS5nLiBvcGVuYXBpdG9vbHMgfAp8IG9wZW5BcGlHaXRSZXBvSWQgfCBgU3RyaW5nYCB8IEdpdCByZXBvIElELCBlLmcuIG9wZW5hcGktZ2VuZXJhdG9yIHwKfCBvcGVuQXBpUmVsZWFzZU5vdGUgfCBgU3RyaW5nYCB8IFJlbGVhc2Ugbm90ZSwgZGVmYXVsdCB0byAnTWlub3IgdXBkYXRlJyB8Cnwgb3BlbkFwaUh0dHBVc2VyQWdlbnQgfCBgU3RyaW5nYCB8IEhUVFAgdXNlciBhZ2VudCwgZS5nLiBjb2RlZ2VuX2NzaGFycF9hcGlfY2xpZW50LCBkZWZhdWx0IHRvICdPcGVuQVBJLUdlbmVyYXRvci97cGFja2FnZVZlcnNpb259fS97bGFuZ3VhZ2V9JyB8Cnwgb3BlbkFwaVJlc2VydmVkV29yZHNNYXBwaW5ncyB8IGBNYXBbU3RyaW5nLCBTdHJpbmddYCB8IF0oIlNwZWNpZmllcyBob3cgYSByZXNlcnZlZCBuYW1lIHNob3VsZCBiZSBlc2NhcGVkIHRvIHwKfCBvcGVuQXBpSWdub3JlRmlsZU92ZXJyaWRlIHwgYFN0cmluZ2AgfCBTcGVjaWZpZXMgYW4gb3ZlcnJpZGUgbG9jYXRpb24gZm9yIHRoZSAub3BlbmFwaS1nZW5lcmF0b3ItaWdub3JlIGZpbGUuIE1vc3QgdXNlZnVsIG9uIGluaXRpYWwgZ2VuZXJhdGlvbi4gfAp8IG9wZW5BcGlSZW1vdmVPcGVyYXRpb25JZFByZWZpeCB8IGBPcHRpb25bQm9vbGVhbl1gIHwgUmVtb3ZlIHByZWZpeCBvZiBvcGVyYXRpb25JZCwgZS5nLiBjb25maWdfZ2V0SWQgPT4gZ2V0SWQgfAp8IG9wZW5BcGlBcGlGaWxlc0NvbnN0cmFpbmVkVG8gfCBgTGlzdFtTdHJpbmddYCB8IERlZmluZXMgd2hpY2ggQVBJLXJlbGF0ZWQgZmlsZXMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gVGhpcyBhbGxvd3MgeW91IHRvIGNyZWF0ZSBhIHN1YnNldCBvZiBnZW5lcmF0ZWQgZmlsZXMgKG9yIG5vbmUgYXQgYWxsKSB8Cnwgb3BlbkFwaU1vZGVsRmlsZXNDb25zdHJhaW5lZFRvIHwgYExpc3RbU3RyaW5nXWAgfCBEZWZpbmVzIHdoaWNoIG1vZGVsLXJlbGF0ZWQgZmlsZXMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gVGhpcyBhbGxvd3MgeW91IHRvIGNyZWF0ZSBhIHN1YnNldCBvZiBnZW5lcmF0ZWQgZmlsZXMgKG9yIG5vbmUgYXQgYWxsKSB8Cnwgb3BlbkFwaVN1cHBvcnRpbmdGaWxlc0NvbnN0cmFpbmVkVG8gfCBgTGlzdFtTdHJpbmddYCB8IERlZmluZXMgd2hpY2ggc3VwcG9ydGluZyBmaWxlcyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBUaGlzIGFsbG93cyB5b3UgdG8gY3JlYXRlIGEgc3Vic2V0IG9mIGdlbmVyYXRlZCBmaWxlcyAob3Igbm9uZSBhdCBhbGwgfAp8IG9wZW5BcGlHZW5lcmF0ZU1vZGVsVGVzdHMgfCBgT3B0aW9uW0Jvb2xlYW5dYCB8IFNwZWNpZmllcyB0aGF0IG1vZGVsIHRlc3RzIGFyZSB0byBiZSBnZW5lcmF0ZWQgfAp8IG9wZW5BcGlHZW5lcmF0ZU1vZGVsRG9jdW1lbnRhdGlvbiB8IGBPcHRpb25bQm9vbGVhbl1gIHwgRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCBtb2RlbC1yZWxhdGVkIF9kb2N1bWVudGF0aW9uXyBmaWxlcyBzaG91bGQgYmUgZ2VuZXJhdGVkIHwKfCBvcGVuQXBpR2VuZXJhdGVBcGlUZXN0cyB8IGBPcHRpb25bQm9vbGVhbl1gIHwgU3BlY2lmaWVzIHRoYXQgYXBpIHRlc3RzIGFyZSB0byBiZSBnZW5lcmF0ZWQgfAp8IG9wZW5BcGlHZW5lcmF0ZUFwaURvY3VtZW50YXRpb24gfCBgT3B0aW9uW0Jvb2xlYW5dYCB8IERlZmluZXMgd2hldGhlciBvciBub3QgYXBpLXJlbGF0ZWQgX2RvY3VtZW50YXRpb25fIGZpbGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQgfAp8IG9wZW5BcGlXaXRoWG1sIHwgYE9wdGlvbltCb29sZWFuXWAgfCBBIHNwZWNpYWwtY2FzZSBzZXR0aW5nIHdoaWNoIGNvbmZpZ3VyZXMgc29tZSBnZW5lcmF0b3JzIHdpdGggWE1MIHN1cHBvcnQuIEluIHNvbWUgY2FzZXMsIHRoaXMgZm9yY2VzIGpzb24gT1IgeG1sLCBzbyB0aGUgZGVmYXVsdCBoZXJlIGlzIGZhbHNlIHwKfCBvcGVuQXBpTG9nVG9TdGRlcnIgfCBgT3B0aW9uW0Jvb2xlYW5dYCB8IFRvIHdyaXRlIGFsbCBsb2cgbWVzc2FnZXMgKG5vdCBqdXN0IGVycm9ycykgdG8gU1RET1VUIHwKfCBvcGVuQXBpRW5hYmxlUG9zdFByb2Nlc3NGaWxlIHwgYE9wdGlvbltCb29sZWFuXWAgfCBFbmFibGUgcG9zdC1wcm9jZXNzaW5nIGZpbGUgdXNpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHwgXAp8IG9wZW5BcGlTa2lwVmFsaWRhdGVTcGVjIHwgYE9wdGlvbltCb29sZWFuXWAgfCBUbyBza2lwIHNwZWMgdmFsaWRhdGlvbi4gV2hlbiB0cnVlLCB3ZSB3aWxsIHNraXAgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdmFsaWRhdGluZyBhIHNwZWMgYmVmb3JlIGdlbmVyYXRpb24gfAp8IG9wZW5BcGlHZW5lcmF0ZUFsaWFzQXNNb2RlbCB8IGBPcHRpb25bQm9vbGVhbl1gIHwgR2VuZXJhdGUgbW9kZWwgaW1wbGVtZW50YXRpb24gZm9yIGFsaWFzZXMgdG8gbWFwIGFuZCBhcnJheSBzY2hlbWFzIHwKfCBvcGVuQXBpR2VuZXJhdGVNZXRhZGF0YSB8IGBPcHRpb25bQm9vbGVhbl1gIHwgR2VuZXJhdGUgbWV0YWRhdGEgZmlsZXMgdXNlZCBieSBPcGVuQVBJIEdlbmVyYXRvci4gVGhpcyBpbmNsdWRlcyBgLm9wZW5hcGktZ2VuZXJhdG9yLWlnbm9yZWAgYW5kIGFueSBmaWxlcyB3aXRoaW4gYC5vcGVuYXBpLWdlbmVyYXRvcmAuIHwKCiMgRXhhbXBsZXMKClBsZWFzZSBzZWUgW2FuIHNidC10ZXN0IGNvbmZpZ3VyYXRpb25dKHNyYy9zYnQtdGVzdCkgZm9yIGV4YW1wbGVzIG9mIHVzaW5nIHRoZSBwbHVnaW4uCkRvIG5vdCBydW4gdGhvc2UgZXhhbXBsZXMgZGlyZWN0bHksIHBsZWFzZSBjb3B5IHRoZW0gdG8gc2VwYXJhdGUgcGxhY2UgZmlyc3QuCgojIENvbnRyaWJ1dGlvbiBhbmQgVGVzdHMKCldyaXRlIHBsdWdpbiBpbnRlZ3JhdGlvbiB0ZXN0cyB1bmRlciBbc3JjL3NidC10ZXN0XShzcmMvc2J0LXRlc3QpCgpFeGVjdXRlIG5leHQgY29tbWFuZCB0byBydW4gdGVzdHM6CgpgYGBzaGVsbCBzY3JpcHQKc2J0IHNjcmlwdGVkCmBgYAoKTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gd3JpdGUgYW5kIGV4ZWN1dGUgdGVzdHMgW2lzIGhlcmVdKGh0dHBzOi8vd3d3LnNjYWxhLXNidC5vcmcvMS54L2RvY3MvVGVzdGluZy1zYnQtcGx1Z2lucy5odG1sKQo= readmeEtag: '"d1ee4687396bfc00fad8050b9f8864c9c543afa5"' readmeLastModified: Sat, 27 Jul 2024 17:56:21 GMT repositoryId: 244148241 description: null created: '2020-03-01T12:49:22Z' updated: '2024-09-04T23:48:09Z' language: Scala archived: false stars: 25 watchers: 3 forks: 33 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: NOASSERTION repoEtag: '"7e795ec37020decf7f4b5de0938a3475b040e4bd0b370f3d0d97689ec42f06b6"' repoLastModified: Wed, 04 Sep 2024 23:48:09 GMT foundInMaster: true category: Description Validators id: b442d7afc94f3b9d9e3009c0936c0e9c - source: openapi3 tags repository: https://github.com/liveramp/reslang v3: true repositoryMetadata: base64Readme: >- IyBSZXNsYW5nOiBBUEkgZGVmaW5pdGlvbnMgbWFkZSBlYXN5CgpSZXNsYW5nIGlzIGEgc2ltcGxlIGxhbmd1YWdlIGZvciBkZXNjcmliaW5nIHJlc291cmNlLW9yaWVudGVkIEFQSXMgJiB0dXJuaW5nIHRoZW0gaW50byBTd2FnZ2VyLiBJdCBwcm9kdWNlcyBTd2FnZ2VyL09wZW5BUEkgd2hpY2ggaXMgZnVsbHkgYWxpZ25lZCB3aXRoIFtMaXZlUmFtcCdzIEFQSSBzdGFuZGFyZHNdKGh0dHBzOi8vbGl2ZXJhbXAuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9DSS9wYWdlcy8xMDE0NDk4MjczL1JGQytBUEktMytMaXZlUmFtcCtBUEkrU3RhbmRhcmRzKS4KCkl0IGNhbiBhbHNvIGdlbmVyYXRlIGFuIFtBc3luY0FQSSBzcGVjaWZpY2F0aW9uXShodHRwczovL3d3dy5hc3luY2FwaS5jb20vKSwgZGVzY3JpYmluZyBldmVudHMsIGZyb20gdGhlIHNhbWUgc3BlYy4gUmVjZW50bHkgd2UgaGF2ZSBhZGRlZCB0aGUgYWJpbGl0eSB0byBnZW5lcmF0ZSBbSlNPTiBzY2hlbWFdKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLykgZnJvbSB0aGUgUmVzbGFuZyBzcGVjIHRvby4KCltSZWxlYXNlIG5vdGVzXSguL2RvY3MvcmVsZWFzZXMubWQpCgpSZXNsYW5nIGlzIGxpY2Vuc2VkIHVuZGVyIFtBcGFjaGUgVjJdKGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCgojIyBEb2NzCgp8IFRvcGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFtXaHkgcmVzbGFuZz9dKC4vZG9jcy93aHkubWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgV2h5IGRvIHdlIG5lZWQgdGhpcyB0b29sIGFuZCB3aGF0IGRvZXMgaXQgb2ZmZXI/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtJbnRybyB0dXRvcmlhbF0oLi9kb2NzL2ludHJvLm1kKSAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpYmVzIG1ha2luZyBhIHRveSBBUEkgZm9yIG1hbmlwdWxhdGluZyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtUaGUgQVBJIHBhcmFkaWdtXSguL2RvY3MvcGFyYWRpZ20ubWQpICAgICAgICAgICAgICAgICAgIHwgV2hhdCBpcyB0aGUgUmVzbGFuZyBwYXJhZGlnbSBhbmQgaG93IGRvZXMgaXQgcmVsYXRlIHRvIFJFU1QsIE9PIGFuZCBSUEMgICAgICAgICAgICAgICAgICAgICAgfAp8IFtFdmVudCBpbnRybyB0dXRvcmlhbF0oLi9kb2NzL2ludHJvLWV2ZW50cy5tZCkgICAgICAgICAgIHwgRGVzY3JpYmVzIGEgc2ltcGxlIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIEFzeW5jQVBJIHRvIGRlc2NyaWJlIGV2ZW50cyAgICAgICAgICAgICAgICAgICAgfAp8IFtTZWN0aW9uc10oLi9kb2NzL3NlY3Rpb25zLm1kKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGhpcyBleHBsYWlucyBob3cgdG8gcmVvcmRlciAvIGdyb3VwIHRoZSBwcmVzZW50YXRpb24gb2YgeW91ciByZXNvdXJjZXMgICAgICAgICAgICAgICAgICAgICAgfAp8IFtEaXJlY3QyRGlzdCBBUEldKC4vZG9jcy9kaXJlY3QyZGlzdC1leHBsYW5hdGlvbi5tZCkgICAgIHwgVGhpcyBpcyBhIG1vcmUgY29tcGxleCBleGFtcGxlIHdoaWNoIHJlY3JlYXRlcyB0aGUgZW50aXJlIERpcmVjdDJEaXN0IEFQSS4gICAgICAgICAgICAgICAgICAgfAp8IFtNVUxUSSB2ZXJic10oLi9kb2NzL211bHRpLm1kKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpYmVzIE1VTFRJLSB2ZXJicyBzdWNoIGFzIE1VTFRJUE9TVCwgTVVMVElQQVRDSCBldGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtSZWZlcmVuY2UgbWFudWFsXSguL2RvY3MvcmVmZXJlbmNlLm1kKSAgICAgICAgICAgICAgICAgIHwgVGhpcyBkZXNjcmliZXMgdGhlIHN5bnRheCBhbmQgZmVhdHVyZXMgaW4gbW9yZSBkZXB0aC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtTZXJ2ZXIgYmxvY2tzXSguL2RvY3Mvc2VydmVyLWJsb2Nrcy5tZCkgICAgICAgICAgICAgICAgIHwgVGhpcyBleHBsYWlucyBob3cgdG8gZGVmaW5lIHNlcnZlcnMgZm9yIFJFU1QgYW5kIGV2ZW50cyBBUElzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtKU09OIHNjaGVtYSBnZW5lcmF0aW9uXSguL2RvY3MvanNvbnNjaGVtYS5tZCkgICAgICAgICAgIHwgVGhpcyBleHBsYWlucyBob3cgdG8gZ2VuZXJhdGUgSlNPTiBzY2hlbWEgZGVmaW5pdGlvbnMgZnJvbSBSZXNsYW5nIGNvZGUgICAgICAgICAgICAgICAgICAgICAgfAp8IFtJbnRlcm5hbCBTeXN0ZW0gRGVzaWduXSguL2RvY3MvUmVzbGFuZ1N5c3RlbURlc2lnbi5wZGYpIHwgRXhwbGFpbnMgaG93IFJlc2xhbmcgaXMgc3RydWN0dXJlZCBhcyBhIHR5cGVzY3JpcHQgYXBwbGljYXRpb24sIGFuZCBob3cgdGhlIHRyYW5zcGlsZXIgd29ya3MgfAp8IFtWU0NvZGUgU3ludGF4IGhpZ2hsaWdodGluZ10oLi92c2NvZGUvUkVBRE1FLm1kKSAgICAgICAgIHwgRXhwbGFpbnMgaG93IHRvIGluc3RhbGwgVlNDb2RlIHN5bnRheCBoaWdobGlnaHRpbmcuIEhpbnQgc2VhcmNoIGV4dGVuc2lvbnMgZm9yIFJlc2xhbmchICAgICAgfAoKIyMgSW5zdGFsbGF0aW9uCgojIyMgRm9yIGxvY2FsIHVzZQoKMS4gZW5zdXJlIG5vZGUgJiB5YXJuIGFyZSBpbnN0YWxsZWQKCihUaGlzIGlzIHRoZSBub2RlLmpzIHN0YWNrIC0gcGxlYXNlIHNlZSBoZXJlIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zOiBbbm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnL2VuL2Rvd25sb2FkLykgJiBbeWFybl0oaHR0cHM6Ly9jbGFzc2ljLnlhcm5wa2cuY29tL2VuL2RvY3MvaW5zdGFsbC8jbWFjLXN0YWJsZSkpCgoyLiBjbG9uZSB0aGUgcmVzbGFuZyByZXBvCjMuIHlhcm4gaW5zdGFsbAo0LiAuL2luc3RhbGwtcmVzbGFuZwoKTm90ZSB0aGF0IHN0ZXAgNCBpbnN0YWxscyBpdCBhcyBhIGNvbW1hbmQgbGluZSB0b29sIHVzaW5nICJ5YXJuIGxpbmsiCgojIyBSdW5uaW5nCgpUZXN0IGl0IG91dCBieSB0eXBpbmc6CgogICAgcmVzbGFuZwoKVGhpcyBzaG91bGQgYnJpbmcgdXAgdGhlIG9wdGlvbnMuCgo8ZGV0YWlscz4KICA8c3VtbWFyeT5DbGljayB0byBzZWUgSW5zdGFsbGF0aW9uIG9wdGlvbnM8L3N1bW1hcnk+CgojIyBSdW5uaW5nIGluIERvY2tlciAoZm9yIGludGVybmFsIExpdmVSYW1wIHVzZXJzIG9ubHkpCgpJbmRpdmlkdWFscyB3aG8gZG8gbm90IHdhbnQgdG8gYnVpbGQgUmVzbGFuZyBmcm9tIHNjcmF0Y2ggYXJlIGZyZWUgdG8gdXNlIHRoZSBgcmVzbGFuZy1kb2NrZXJgIHNjcmlwdCB3aGljaCBwcm92aWRlcyBjb252ZW5pZW50LCBidXQgbGltaXRlZCwgZnVuY3Rpb25hbGl0eSB3aXRoIGEgcmVzbGFuZyBjb250YWluZXIuClRoaXMgc2NyaXB0IG91dHB1dHMgdGhlIGdlbmVyYXRlZCBzd2FnZ2VyIHRvIFNURE9VVCBhbmQgcmVxdWlyZXMgYW4gYWJzb2x1dGUgcGF0aCB0byBmdW5jdGlvbi4KCmBgYAogICAgYmFzaCAuL3Jlc2xhbmctZG9ja2VyLnNoICRQV0QvbW9kZWxzL2Rpc3RyaWJ1dGlvbgpgYGAKCjwvZGV0YWlscz4KCiMjIENyZWF0aW5nICYgdmlld2luZyB0aGUgU3dhZ2dlciAvIE9wZW5BUEkKClRvIGNyZWF0ZSBzd2FnZ2VyLCB5b3UgZmlyc3QgY3JlYXRlIGEgcmVzbGFuZyBmaWxlLiBUaGVuIHlvdSBzaW1wbHkgYXNrIHRoZSByZXNsYW5nIHByb2dyYW0gdG8gdHVybiB0aGlzIGludG8gc3dhZ2dlci4KCk5vdGUgdGhhdCB0aGUgbW9kZWxzIGRpcmVjdG9yeSBoYXMgYSBzZXQgb2YgZXhhbXBsZSBkZWZpbml0aW9ucy4KClRoZSBmb2xsb3dpbmcgY29waWVzIHRoZSBzd2FnZ2VyIHRvIHRoZSBjbGlwYm9hcmQgYW5kIG9wZW5zIHRoZSBSZURvYyBicm93c2VyIGZvciB5b3UuCgogICAgcmVzbGFuZyBtb2RlbHMvc2ltcGxlLXJlc291cmNlIC0tb3BlbgoKSWYgeW91IHdhbnQganVzdCB3YW50IHRvIHByaW50IHRvIHN0ZG91dCB1c2U6CgogICAgcmVzbGFuZyBtb2RlbHMvc2ltcGxlLXJlc291cmNlIC0tc3Rkb3V0CgojIyBWaWV3aW5nIFN3YWdnZXIgLyBPcGVuQVBJIGluIFN3YWdnZXIgZWRpdG9yCgpJZiB5b3Ugd2FudCB0byB1c2UgdGhlIFN3YWdnZXIgZWRpdG9yLCBhZGQgLS13ZWIgdG8gdGhlIGNtZCBsaW5lOgoKICAgIHJlc2xhbmcgbW9kZWxzL3NpbXBsZS1yZXNvdXJjZSAtLW9wZW4gLS13ZWIKClRoZW4gcGFzdGUgdGhlIGNsaXBib2FyZCBpbnRvIHRoZSBsZWZ0IHdpbmRvdyBwYW5lIG9mIHRoZSBlZGl0b3IuCgojIyBDcmVhdGluZyBhIGdyYXBoaWNhbCB2aWV3CgpSZXNsYW5nIGNhbiBnZW5lcmF0ZSBkb3R2aXogb3V0cHV0LCB3aGljaCBwcm92aWRlcyBhIG5pY2UgZ3JhcGhpY2FsIHZpZXcgb2YgdGhlIHJlc291cmNlcy4KClRoZSBmb2xsb3dpbmcgY29tbWFuZCB3aWxsIGNvcHkgdGhlIGRvdHZpeiBvdXRwdXQgdG8gdGhlIGNsaXBib2FyZC4KCiAgICByZXNsYW5nIG1vZGVscy9zaW1wbGUtcmVzb3VyY2UgLS1vcGVuIC0tZGlhZ3JhbSBtYWluCgpUaGlzIHdpbGwgb3BlbiB5b3VyIGJyb3dzZXIgYXQgYSBuaWNlIGdyYXBodml6IG9ubGluZSBlZGl0b3IuIFBhc3RlIHRoZSBjbGlwYm9hcmQgaW50byB0aGUgZWRpdG9yIGFuZCB5b3Ugd2lsbCBnZXQgeW91ciBncmFwaGljYWwgdmlldyBvZiB5b3VyIEFQSSAtIGEgcmVzb3VyY2UgZGlhZ3JhbS4KCiMjIFZpZXdpbmcgZXZlbnRzIHZpYSBBc3luY0FQSQoKUmVzbGFuZyBjYW4gZ2VuZXJhdGUgQXN5bmNBUEksIGRlc2NyaWJpbmcgdGhlIGV2ZW50cyBhIFJFU1QgQVBJIGNhbiBnZW5lcmF0ZS4gSXQgYWxzbyBwcm92aWRlcyBhbiAiZXZlbnQiIGtleXdvcmQgd2hpY2ggeW91IGNhbiB1c2UgdG8gZGVzY3JpYmUgYWRob2MgZXZlbnRzLgoKICAgIHJlc2xhbmcgbW9kZWxzL2V2ZW50aW5nIC0tb3BlbiAtLWV2ZW50cwoKSWYgaW5zdGVhZCB5b3Ugd2lzaCB0byB2aWV3IHRoZSBldmVudHMgaW4gdGhlIEFzeW5jQVBJIFBsYXlncm91bmRlciBmb3IgZWRpdGluZywgcGxlYXNlIGFkZCB0aGUgLS13ZWIgb3B0aW9uLgoKICAgIHJlc2xhbmcgbW9kZWxzL2V2ZW50aW5nIC0tb3BlbiAtLWV2ZW50cyAtLXdlYgoKTm90ZSB0aGF0IHRoZSBBc3luY0FQSSBzcGVjIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgY2xpcGJvYXJkIC0geW91IHdpbGwgbmVlZCB0byBwYXN0ZSBpdCBpbnRvIHRoZSBvcGVuZWQgZWRpdG9yLCBvbiB0aGUgbGVmdC4KCiMjIFByZXR0eSBQcmludGluZyAtIFN0cmlwcGluZyBvdXQgdGhlIGNvbW1lbnRzIGZvciByZXZpZXcKClJlc2xhbmcgY2FuIHByb2R1Y2UgYSBuaWNlIHByZXR0eS1wcmludGVkLCBzdHJpcHBlZCBkb3duIHZlcnNpb24gb2YgdGhlIFJlc2xhbmcgaW4gaHRtbC4gSXQgaXMgb2Z0ZW4gZWFzaWVyIHRvIHJldmlldyB0aGlzIGZvcm0sIGFzIGl0IHJlbW92ZXMgdGhlIGNvbW1lbnRzIGFuZCBlcnJvciBzdHJ1Y3R1cmVzLgoKICAgIHJlc2xhbmcgbW9kZWxzL3Jlc291cmNlcyAtLXN0cmlwcGVkIC0tb3BlbgoKV2lsbCBvcGVuIGEgYnJvd3NlciBvbiB0aGUgc3RyaXBwZWQgZG93biBmaWxlLiBJZiB5b3UganVzdCB3YW50IHBsYWluIHRleHQsIGFkZCAtLXBsYWluCgojIyBSZXF1ZXN0aW5nIG5ldyBmZWF0dXJlcwoKTmV3IGZlYXR1cmVzIGFuZCBlbmhhbmNlbWVudHMgdGhhdCBpbnZvbHZlIGNoYW5naW5nIExpdmVSYW1wJ3MgQVBJIHN0YW5kYXJkcwp3aWxsIG5vdCBiZSBjb25zaWRlcmVkIHVudGlsIHRoZSBbQVBJIHN0YW5kYXJkcyBwcm9wb3NhbCBwcm9jZXNzXVtzdGFuZGFyZHMgcHJvY2Vzc10gaXMgY29tcGxldGUuCgpPdGhlciBlbmhhbmNlbWVudHMgc2hvdWxkIGJlIHJlcXVlc3RlZCBieSBvcGVuaW5nIGEgR2l0SHViIElzc3VlIHVzaW5nIHRoZQphcHByb3ByaWF0ZSBpc3N1ZSB0ZW1wbGF0ZSBvciBieSBvcGVuaW5nIGEgUHVsbCBSZXF1ZXN0IGFuZCBoYXZpbmcgeW91ciBjaGFuZ2VzCnJldmlld2VkIGJ5IHRoZSBBUEkgU3F1YWQuCgpbc3RhbmRhcmRzIHByb2Nlc3NdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFYM2ZjRllMZHNSenNRZVg4OXpkbUNPb2lzTnNENlgtd2NydFljYjhNa0dBL2VkaXQK readmeEtag: '"341f1bfef251d4848c3ed009ef4013654b3c046a"' readmeLastModified: Mon, 01 Apr 2024 08:11:04 GMT repositoryId: 195102746 description: >- A language for describing resource-oriented APIs & turning them into Swagger or resource diagrams. Oriented around the concepts we want to expose in the APIs. created: '2019-07-03T17:51:56Z' updated: '2024-01-19T08:41:20Z' language: TypeScript archived: false stars: 23 watchers: 75 forks: 7 owner: LiveRamp logo: https://avatars.githubusercontent.com/u/2374529?v=4 license: Apache-2.0 repoEtag: '"9217fac13fb3c974e2f5fe7ebb682084da61a178114c465fb3b26cbbe75104ba"' repoLastModified: Fri, 19 Jan 2024 08:41:20 GMT foundInMaster: true category: - Documentation - Server Implementations id: 9b8ed2b3568ac6aa6c9cbbd70e4574b4 - source: openapi3 tags repository: https://github.com/eropple/fastify-openapi3 v3: true repositoryMetadata: base64Readme: >- IyBgQGVyb3BwbGUvZmFzdGlmeS1vcGVuYXBpM2AgIwpfQmVjYXVzZSBJIGp1c3QgY2FuJ3Qgc3RvcCBtYWtpbmcgT3BlbkFQSSBsaWJyYXJpZXMsIEkgZ3Vlc3MuXwoKWyFbTlBNIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGVyb3BwbGUvZmFzdGlmeS1vcGVuYXBpMyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0Blcm9wcGxlL2Zhc3RpZnktb3BlbmFwaTMpIFshW0NJXShodHRwczovL2dpdGh1Yi5jb20vZXJvcHBsZS9mYXN0aWZ5LW9wZW5hcGkzL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2Vyb3BwbGUvZmFzdGlmeS1vcGVuYXBpMy9hY3Rpb25zL3dvcmtmbG93cy9jaS55YW1sKQoKIyMgV2hhdCBpcyBpdD8gIyMKVGhpcyBpcyBhIGxpYnJhcnkgdG8gaGVscCB5b3UgZ2VuZXJhdGUgW09wZW5BUEkgMy4xXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjApLWNvbXBsaWFudCAob3IgMy4wLjMgaWYgeW91IGRvIGEgbGl0dGxlIHdvcmsgb24geW91ciBvd24pIHNwZWNzIGZyb20geW91ciBbRmFzdGlmeV0oaHR0cHM6Ly93d3cuZmFzdGlmeS5pby8pIGFwcC4gT3RoZXJzIGV4aXN0LCBidXQgdG8gbXkgbWluZCBkb24ndCBzY3JhdGNoIHRoZSBpdGNoIHRoYXQgdGhlIGJlc3QgT0FTIHRvb2xpbmcgZG9lczogbWFraW5nIGl0IGZhc3RlciBhbmQgZWFzaWVyIHRvIGNyZWF0ZSBjb3JyZWN0IHNwZWNzIGFuZCB2YWxpZCBBUEkgY2xpZW50cyBmcm9tIHRob3NlIHNwZWNzLiBCZWNhdXNlIG9mIG15IFtvd25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Rlcm4tcHJvamVjdC9tb2Rlcm4tcnVieSkgW2JhY2tncm91bmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9lcm9wcGxlL25lc3Rqcy1vcGVuYXBpMykgaW4gYnVpbGRpbmcgT3BlbkFQSSBsaWJyYXJpZXMsIGFuZCBteSBncm93aW5nIGFwcHJlY2lhdGlvbiBmb3IgRmFzdGlmeSwgSSBkZWNpZGVkIHRvIHRha2UgYSBjcmFjayBhdCBpdC4KClRoaXMgbGlicmFyeSBwcmVzdXBwb3NlcyB0aGF0IHlvdSB1c2UgW2BAc2luY2xhaXIvdHlwZWJveGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5jbGFpcnp4ODEvdHlwZWJveCkgdG8gZGVmaW5lIHRoZSBKU09OIHNjaGVtYSB1c2VkIGluIHlvdXIgcmVxdWVzdHMsIGFuZCBmcm9tIHRoYXQgSlNPTiBTY2hlbWEgZGVyaXZlcyB0eXBlcy4gKEVyZ29ub21pY3MgZm9yIG5vbi1UeXBlU2NyaXB0IHVzZXJzIGlzIHNwZWNpZmljYWxseSBvdXQtb2Ytc2NvcGUuKSBJdCB3aWxsIHdhbGsgYWxsIHlvdXIgcm91dGVzLCBkZXRlcm1pbmUgeW91ciBzY2hlbWEsIGFuZCBleHRyYWN0IGFuZCBkZWR1cGxpY2F0ZSB0aG9zZSBzY2hlbWFzIHRvIHByZXNlbnQgYSByZWxhdGl2ZWx5IGNsZWFuIGFuZCBlYXN5LXRvLXVzZSBPcGVuQVBJIGRvY3VtZW50LiBJdCdsbCB0aGVuIGFsc28gc2VydmUgSlNPTiBhbmQgWUFNTCB2ZXJzaW9ucyBvZiB5b3VyIHNwZWNpZmljYXRpb24sIGFzIHdlbGwgYXMgaG9zdCBhbiBpbnRlcmFjdGl2ZSBBUEkgZXhwbG9yZXIgd2l0aCB0cnktaXQtb3V0IGZlYXR1cmVzIGNvdXJ0ZXN5IG9mIFtSYXBpZG9jXShodHRwczovL21yaW45LmdpdGh1Yi5pby9SYXBpRG9jLykgb3IgW1NjYWxhcl0oaHR0cHM6Ly9zY2FsYXIuY29tKS4KCioqRmFpciB3YXJuaW5nOioqIFRoaXMgbGlicmFyeSBpcyBpbiBFYXJseSBBY2Nlc3ModG0pIGFuZCB3aGlsZSB0aGUgZnVuY3Rpb25hbGl0eSB0aGF0J3MgaGVyZSBkb2VzIHdvcmssIHRoZXJlJ3Mgc29tZSBmdW5jdGlvbmFsaXR5IHRoYXQgX2RvZXNuJ3RfIGV4aXN0LiBUaGUgc3R1ZmYgdGhhdCBzdGFuZHMgb3V0IHRvIG1lIHBlcnNvbmFsbHkgY2FuIGJlIGZvdW5kIGluIFtUT0RPLm1kXShodHRwczovL2dpdGh1Yi5jb20vZXJvcHBsZS9mYXN0aWZ5LW9wZW5hcGkzL2Jsb2IvbWFpbi9UT0RPLm1kKSwgaW5jbHVkaW5nIGEgc2hvcnQgbGlzdCBvZiB0aGluZ3MgdGhpcyBwbHVnaW4gX3dvbid0XyBkby4KCiMjIFVzYWdlICMjCgpGaXJzdCwgaW5zdGFsbCBpdCwgZXRjLiBldGMuOgoKYGBgYmFzaApucG0gaW5zdGFsbCBAZXJvcHBsZS9mYXN0aWZ5LW9wZW5hcGkzCnBucG0gYWRkIEBlcm9wcGxlL2Zhc3RpZnktb3BlbmFwaTMKeWFybiBhZGQgQGVyb3BwbGUvZmFzdGlmeS1vcGVuYXBpMwpgYGAKCk9uY2UgeW91J3ZlIGluc3RhbGxlZCBpdC0td2VsbCwgeW91J2QgYmVzdCBnbyBkbyBzb21lIHRoaW5ncyB0byBzZXQgaXQgdXAsIGh1aD8gVGhlcmUncyBhIG1hbnVhbCB0ZXN0IChvcmlnaW5hbGx5IGFkZGVkIHRvIHNtb2tlIG91dCBpc3N1ZXMgd2l0aCBSYXBpZG9jIHNlcnZpbmcpIGluIFtgZXhhbXBsZXMvc3RhcnQtc2VydmVyLnRzYF0sIHdoaWNoIGNhbiBhbHNvIGJlIGRpcmVjdGx5IGludm9rZWQgZnJvbSB0aGUgcmVwb3NpdG9yeSB3aXRoIGBucG0gcnVuIGRlbW9gLiBCZWxvdyBhcmUgdGhlIGltcG9ydGFudCBiaXRzIGZyb20gdGhhdCBkZW1vOgoKYGBgdHMKaW1wb3J0IEZhc3RpZnksIHsgRmFzdGlmeUluc3RhbmNlIH0gZnJvbSAnZmFzdGlmeSc7CmltcG9ydCB7IFN0YXRpYywgVHlwZSB9IGZyb20gJ0BzaW5jbGFpci90eXBlYm94JzsKCmltcG9ydCBPQVMzUGx1Z2luLCB7IE9BUzNQbHVnaW5PcHRpb25zLCBzY2hlbWFUeXBlLCBvYXMzUGx1Z2luQWp2IH0gZnJvbSAnLi4vc3JjL2luZGV4LmpzJzsKYGBgCgpZb3VyIGltcG9ydHMuIChPYnZpb3VzbHksIGluIHlvdXIgcHJvamVjdCwgdGhlIGxhc3QgaW1wb3J0IHdpbGwgYmUgZnJvbSBgIkBlcm9wcGxlL2Zhc3RpZnktb3BlbmFwaTMiYC4pCgpgYGB0cwpjb25zdCBmYXN0aWZ5T3B0czogRmFzdGlmeVNlcnZlck9wdGlvbnMgPSB7CiAgbG9nZ2VyOiB7IGxldmVsOiAnZXJyb3InIH0sCiAgYWp2OiB7CiAgICBwbHVnaW5zOiBbb2FzM1BsdWdpbkFqdl0sCiAgfQp9Cgpjb25zdCBmYXN0aWZ5ID0gRmFzdGlmeShmYXN0aWZ5T3B0cyk7CmF3YWl0IGZhc3RpZnkucmVnaXN0ZXIoT0FTM1BsdWdpbiwgeyAuLi5wbHVnaW5PcHRzIH0pOwpgYGAKClJlZ2lzdGVyIHRoZSBPQVMzIHBsdWdpbi4gVGhpcyBwbHVnaW4gdXNlcyB0aGUgRmFzdGlmeSBsb2dnZXIgYW5kIGNhbiBiZSBwcmV0dHkgY2hhdHR5IG9uIGBkZWJ1Z2AsIHNvIGJlYXIgdGhhdCBpbiBtaW5kLiBgcGx1Z2luT3B0c2AgaXMgdmlzaWJsZSBpbiB0aGF0IGZpbGUgZm9yIGFuIGV4YW1wbGUsIGJ1dCBpdCdzIGFsc28gY29tbWVudGVkIGV4aGF1c3RpdmVseSBmb3IgeW91ciBJbnRlbGxTZW5zaW5nIHBsZWFzdXJlIHdoaWxlIHlvdSdyZSB3cml0aW5nIGl0LgoKYGBgdHMKY29uc3QgUGluZ1Jlc3BvbnNlID0gc2NoZW1hVHlwZSgnUGluZ1Jlc3BvbnNlJywgVHlwZS5PYmplY3QoeyBwb25nOiBUeXBlLkJvb2xlYW4oKSB9KSk7CnR5cGUgUGluZ1Jlc3BvbnNlID0gU3RhdGljPHR5cGVvZiBQaW5nUmVzcG9uc2U+OwpgYGAKCllvdXIgc2NoZW1hLiBgc2NoZW1hVHlwZWAgdGFrZXMgYSBzdHJpbmcgYXMgYSBuYW1lLCB3aGljaCBfbXVzdCBiZSB1bmlxdWUgZm9yIHlvdXIgZW50aXJlIHByb2plY3RfLCBhcyB3ZWxsIGFzIGEgYEBzaW5jbGFpci90eXBlYm94YCBgVHlwZWAgKHdoaWNoIHlvdSBjYW4gdGhlbiB1c2UgYXMgYSBUeXBlU2NyaXB0IHR5cGUgYnkgZG9pbmcgYFN0YXRpYzx0eXBlb2YgVD5gLCBpdCdzIGF3ZXNvbWUpLiBUaGlzIGlzIG5vdyBhIGBUYWdnZWRTY2hlbWFgLCB3aGljaCBjYW4gYmUgdXNlZCBhbnl3aGVyZSBhIG5vcm1hbCBKU09OIFNjaGVtYSBvYmplY3QgY2FuIGJlIHVzZWQgd2l0aGluIEZhc3RpZnkgYW5kIHdpbGwgaGFuZGxlIHZhbGlkYXRpb24gYXMgeW91IHdvdWxkIGV4cGVjdC4KCklmIHlvdSB1c2UgYSBgVGFnZ2VkU2NoZW1hYCB3aXRoaW4gYW5vdGhlciBzY2hlbWEsIHRoZSBPQVMzIHBsdWdpbiBpcyBzbWFydCBlbm91Z2ggdG8gZXh0cmFjdCBpdCBpbnRvIGl0cyBvd24gT3BlbkFQSSBgIy9jb21wb25lbnRzL3NjaGVtYXMvWW91clR5cGVIZXJlYCBlbnRyeSwgc28geW91ciBnZW5lcmF0ZWQgY2xpZW50cyB3aWxsIGFsc28gb25seSBoYXZlIHRoZSBtaW5pbWFsIHNldCBvZiBtb2RlbCBjbGFzc2VzLCBldGMuIHRvIHdvcnJ5IGFib3V0LiBEaXR0byBoYXZpbmcgdGhlbSBpbiBhcnJheXMgYW5kIHNvIG9uLiBJJ3ZlIHRyaWVkIHRvIG1ha2UgdGhpcyBhcyBzaW1wbGUgdG8gZGVhbCB3aXRoIGFzIHBvc3NpYmxlOyBpZiBpdCBhY3RzIGluIHdheXMgeW91IGRvbid0IGV4cGVjdCwgX3BsZWFzZSBmaWxlIGFuIGlzc3VlXy4KCkFuZCBub3cgbGV0J3MgbWFrZSBhIHJvdXRlOgoKYGBgdHMKICBhd2FpdCBmYXN0aWZ5LnJlZ2lzdGVyKGFzeW5jIChmYXN0aWZ5OiBGYXN0aWZ5SW5zdGFuY2UpID0+IHsKICAgIGZhc3RpZnkucm91dGU8eyBSZXBseTogUGluZ1Jlc3BvbnNlIH0+KHsKICAgICAgdXJsOiAnL3BpbmcnLAogICAgICBtZXRob2Q6ICdHRVQnLAogICAgICBzY2hlbWE6IHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgMjAwOiBQaW5nUmVzcG9uc2UsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgb2FzOiB7CiAgICAgICAgb3BlcmF0aW9uSWQ6ICdwaW5nUGluZ1BpbmdBbmREZWZpbml0ZWx5Tm90UG9uZycsCiAgICAgICAgc3VtbWFyeTogImEgcGluZyB0byB0aGUgc2VydmVyIiwKICAgICAgICBkZXNjcmlwdGlvbjogIlRoaXMgcGluZyB0byB0aGUgc2VydmVyIGxldHMgeW91IGtub3cgdGhhdCBpdCBoYXMgbm90IGJlZW4gZWF0ZW4gYnkgYSBncnVlLiIsCiAgICAgICAgZGVwcmVjYXRlZDogZmFsc2UsCiAgICAgICAgdGFnczogWydtZXRhJ10sCiAgICAgIH0sCiAgICAgIGhhbmRsZXI6IGFzeW5jIChyZXEsIHJlcGx5KSA9PiB7CiAgICAgICAgcmV0dXJuIHsgcG9uZzogdHJ1ZSB9OwogICAgICB9CiAgICB9KTsKICB9LCB7IHByZWZpeDogJy9hcGknIH0pOwpgYGAKCllvdSBkb24ndCBoYXZlIHRvIHB1dCB5b3VycyBpbnNpZGUgYSBwcmVmaXhlZCByb3V0ZSwgYnV0IEkgbGlrZSB0bywgc28sIHdlbGwsIHRoZXJlIHlvdSBnby4KCklmIHlvdSBkbyBhIGBucG0gcnVuIGRlbW9gLCB5b3UnbGwgZ2V0IGEgVUkgdGhhdCBsb29rcyBsaWtlIHRoZSBmb2xsb3dpbmc6CgohW2EgZG9jcyBzY3JlZW5zaG90XShodHRwczovL2kuaW1ndXIuY29tL2lPUEFwbXEucG5nKQoKQW5kIHRoZXJlIHlvdSBnby4KCiMjIENvbnRyaWJ1dGluZyAjIwpJc3N1ZXMgYW5kIFBScyB3ZWxjb21lISBDb25zdHJ1Y3RpdmUgY3JpdGljaXNtIG9uIGhvdyB0byBpbXByb3ZlIHRoZSBsaWJyYXJ5IHdvdWxkIGJlIGF3ZXNvbWUsIGV2ZW4gYXMgSSB1c2UgaXQgaW4gbXkgb3duIHN0dWZmIGFuZCBmaWd1cmUgb3V0IHdoZXJlIHRvIGdvIGZyb20gdGhlcmUsIHRvby4KCioqQmVmb3JlIHlvdSBzdGFydCBpbiBvbiBhIFBSLCBob3dldmVyKiosIHBsZWFzZSBkbyBtZSBhIHNvbGlkIGFuZCBkcm9wIGFuIGlzc3VlIHNvIHdlIGNhbiBkaXNjdXNzIHRoZSBhcHByb2FjaC4gVGhhbmtzIQo= readmeEtag: '"e8a273f42b9d368468f5c34ef413e1eba93a3fea"' readmeLastModified: Thu, 29 Aug 2024 23:55:22 GMT repositoryId: 459027206 description: Developer-friendly OpenAPI3 tooling for Fastify that's easy to use. created: '2022-02-14T05:24:29Z' updated: '2024-09-02T08:16:21Z' language: TypeScript archived: false stars: 22 watchers: 3 forks: 1 owner: eropple logo: https://avatars.githubusercontent.com/u/109262?v=4 repoEtag: '"cc51d71038ced48bb5c8af73077654bb31b10eb337d3fbaf4cd2822b885af6d7"' repoLastModified: Mon, 02 Sep 2024 08:16:21 GMT foundInMaster: true category: - Server - Parsers id: 69aabd9435e6e1468c8a137c700edcaf - source: openapi3 tags repository: https://github.com/riconijeboer/laravel-to-swagger v3: true repositoryMetadata: base64Readme: >- IyBMYXJhdmVsIHRvIFN3YWdnZXIKCjxhIGhyZWY9Imh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9yaWNvbmlqZWJvZXIvbGFyYXZlbC10by1zd2FnZ2VyIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlBhY2thZ2lzdCB2ZXJzaW9uIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC92L3JpY29uaWplYm9lci9sYXJhdmVsLXRvLXN3YWdnZXIiIGFsdD0iUGFja2FnaXN0IHZlcnNpb24iPgo8L2E+CjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC9kbS9yaWNvbmlqZWJvZXIvbGFyYXZlbC10by1zd2FnZ2VyIiBhbHQ9IlBhY2thZ2lzdCBkb3dubG9hZHMiPgoKVGhpcyBwYWNrYWdlIGFpbXMgdG8gYnJpbmcgdGhlIGVhc2llc3QgcGF0aCB0byBjcmVhdGluZyBhIFN3YWdnZXIgLyBPcGVuQXBpIDMgY29uZmlnIGZvciB5b3VyIExhcmF2ZWwgQVBJJ3MuCgojIyBJbnN0YWxsYXRpb24KCkZvciBsb2NhbCBvbmx5IGluc3RhbGxhdGlvbiBnbyBbaGVyZV0oI2xvY2FsLW9ubHktaW5zdGFsbGF0aW9uKQoKMS4gYGNvbXBvc2VyIHJlcXVpcmUgcmljb25pamVib2VyL2xhcmF2ZWwtdG8tc3dhZ2dlcmAKMS4gYHBocCBhcnRpc2FuIHZlbmRvcjpwdWJsaXNoIC0tcHJvdmlkZXI9IlJpY29OaWplYm9lclxTd2FnZ2VyXFN3YWdnZXJTZXJ2aWNlUHJvdmlkZXIiYAogICAgLSBUaGlzIHdpbGwgcHVibGlzaCB0aGUgcGFja2FnZSdzIGNvbmZpZy1maWxlIGFuZCBtaWdyYXRpb25zCgojIyMgTG9jYWwgT25seSBpbnN0YWxsYXRpb24KCjEuIGBjb21wb3NlciByZXF1aXJlIHJpY29uaWplYm9lci9sYXJhdmVsLXRvLXN3YWdnZXIgLS1kZXZgCjEuIGBwaHAgYXJ0aXNhbiB2ZW5kb3I6cHVibGlzaCAtLXByb3ZpZGVyPSJSaWNvTmlqZWJvZXJcU3dhZ2dlclxTd2FnZ2VyU2VydmljZVByb3ZpZGVyImAKICAgIC0gVGhpcyB3aWxsIHB1Ymxpc2ggdGhlIHBhY2thZ2UncyBjb25maWctZmlsZSBhbmQgbWlncmF0aW9ucwoxLiBGaW5hbGx5LCB5b3Ugc2hvdWxkIHByZXZlbnQgdGhlIFN3YWdnZXIgcGFja2FnZSBmcm9tIGJlaW5nIFthdXRvLWRpc2NvdmVyZWRdKGh0dHBzOi8vbGFyYXZlbC5jb20vZG9jcy84LngvcGFja2FnZXMjcGFja2FnZS1kaXNjb3ZlcnkpIGJ5IGFkZGluZyB0aGUgZm9sbG93aW5nIHRvIHlvdXIgYGNvbXBvc2VyLmpzb25gIGZpbGU6CiAgIGBgYAogICAiZXh0cmEiOiB7CiAgICAgICAibGFyYXZlbCI6IHsKICAgICAgICAgICAiZG9udC1kaXNjb3ZlciI6IFsKICAgICAgICAgICAgICAgInJpY29uaWplYm9lci9sYXJhdmVsLXRvLXN3YWdnZXIiCiAgICAgICAgICAgXQogICAgICAgfQogICB9CiAgIGBgYAoxLiBOb3cgdGhhdCBhdXRvLWRpc2NvdmVyeSBpcyBkaXNhYmxlZCB5b3Ugc2hvdWxkIG1hbnVhbGx5IHJlZ2lzdGVyIHRoZSBzZXJ2aWNlIHByb3ZpZGVyIGluIHRoZSBgcmVnaXN0ZXJgIG1ldGhvZCBvZiB5b3VyIGBBcHBcUHJvdmlkZXJzXEFwcFNlcnZpY2VQcm92aWRlcmAgY2xhc3MuCiAgIEluIHRoZSBleGFtcGxlIHdlIG9ubHkgZW5hYmxlIHRoZSBwYWNrYWdlIHdoZW4gd2UgYXJlIHJ1bm5pbmcgaW4gYSBgbG9jYWxgIGVudmlyb25tZW50LgogICBgYGBwaHAKICAgLyoqCiAgICAqIFJlZ2lzdGVyIGFueSBhcHBsaWNhdGlvbiBzZXJ2aWNlcy4KICAgICoKICAgICogQHJldHVybiB2b2lkCiAgICAqLwogICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXIoKQogICB7CiAgICAgICBpZiAoJHRoaXMtPmFwcC0+ZW52aXJvbm1lbnQoJ2xvY2FsJykpIHsKICAgICAgICAgICAkdGhpcy0+YXBwLT5yZWdpc3RlcihcUmljb05pamVib2VyXFN3YWdnZXJcU3dhZ2dlclNlcnZpY2VQcm92aWRlcjo6Y2xhc3MpOwogICAgICAgfQogICB9CiAgIGBgYAoKIyMjIFJlcXVpcmVtZW50cwoKLSAqKlBIUCoqOiA3LjQueCBvciA4LjAueAotICoqTGFyYXZlbCoqOiB2NiAvIHY3IC8gdjgKCiMjIyBVcGRhdGluZwoKV2hlbiBjaGFuZ2VzIGFyZSBtYWRlIHRoYXQgaW1wYWN0IGV4aXN0aW5nIHVzZXJzLCBJIHdpbGwgbWFrZSBzdXJlIHRoYXQgdGhleSBhcmUgZG9jdW1lbnRlZCBpbiB0aGUgW0NoYW5nZWxvZ10oI2NoYW5nZWxvZykuCgpUaGVzZSB3aWxsIGNvbnRhaW4gY2hhbmdlcyBsaWtlIGRhdGFiYXNlIGNvbHVtbnMgYWRkZWQgLyByZW1vdmVkIC8gcmVuYW1lZC4gT3IgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgbmVlZCBhY3Rpb24gd2l0aGluIHlvdXIgY29kZS4KCiMjIyMgdjIuMS54IHRvIHYyLjIueAoKLSBXaGVuIHVwZGF0aW5nIGZyb20gdjIuMSB0byB2Mi4yIGFkZCBhIG51bGxhYmxlIGByb3V0ZV9kb21haW5gIHN0cmluZy1jb2x1bW4gdG8gdGhlIGBzd2FnZ2VyX2JhdGNoZXNgIGRvbWFpbi4gICAKICBgJHRhYmxlLT5zdHJpbmcoJ3JvdXRlX2RvbWFpbicpLT5udWxsYWJsZSgpO2AKCiMjIFVzYWdlCgojIyMgUmVnaXN0ZXJpbmcgdGhlIFJlZG9jIERvY3VtZW50YXRpb24gcm91dGUuCgpSZWFkaW5nIGEgU3dhZ2dlciBjb25maWcgaXMgYW4gYWNxdWlyZWQgdGFzdGUuIFRvIGRpc3BsYXkgdGhlIGNvbmZpZyBpbiBhIG1vcmUgdXNlci1mcmllbmRseSB3YXkgSSd2ZSB1c2VkIFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MpLiBUbyByZWdpc3RlciB0aGUgZG9jdW1lbnRhdGlvbiByb3V0ZSB5b3UgY2FuIHNpbXBseQphZGQgdGhlIGNvZGUgYmVsb3cgdG8geW91ciBgcm91dGVzL3dlYi5waHBgIGZpbGUgb3Igd2l0aGluIGEgU2VydmljZVByb3ZpZGVyLgoKYGBgcGhwCnVzZSBSaWNvTmlqZWJvZXJcU3dhZ2dlclxTd2FnZ2VyOwoKU3dhZ2dlcjo6cm91dGVzKCk7CmBgYAoKIyMjIyBDdXN0b21pemluZyB0aGUgL2RvY3MgVXJsCgpgYGBwaHAKdXNlIFJpY29OaWplYm9lclxTd2FnZ2VyXEh0dHBcUm91dGluZ1xSb3V0ZVJlZ2lzdHJhcjsKdXNlIFJpY29OaWplYm9lclxTd2FnZ2VyXFN3YWdnZXI7CgpTd2FnZ2VyOjpyb3V0ZXMoZm4gKFJvdXRlUmVnaXN0cmFyICRyb3V0ZXMpID0+ICRyb3V0ZXMtPmZvckRvY3VtZW50YXRpb24oJy9kaWZmZXJlbnQtdXJsL2RvY3MnKSk7CmBgYAoKIyMjIyBDdXN0b21pemluZyB0aGUgcm91dGluZyBncm91cAoKYGBgcGhwCnVzZSBSaWNvTmlqZWJvZXJcU3dhZ2dlclxTd2FnZ2VyOwoKU3dhZ2dlcjo6cm91dGVzKG51bGwsIFsKICAgICdwcmVmaXgnID0+ICdzd2FnZ2VyJywgLy8gVGhpcyB3aWxsIGRvIFJvdXRlOjpncm91cChbJ3ByZWZpeCcgPT4gJ3N3YWdnZXInXSkgdW5kZXIgdGhlIGhvb2QuCl0pOwpgYGAKCiMjIyMgVXNpbmcgU3dhZ2dlciBVSSBpbnN0ZWFkIG9mIFJlZG9jCgpZb3UgY2FuIGRpc2FibGUgUmVkb2MgYW5kIHVzZSBTd2FnZ2VyIFVJIGluc3RlYWQgYnkgcGFzc2luZyBgZmFsc2VgIGFzIHRoZSBzZWNvbmQgcGFyYW1ldGVyIHRvIHRoZSBgZm9yRG9jdW1lbnRhdGlvbmAgbWV0aG9kLgoKYGBgcGhwCnVzZSBSaWNvTmlqZWJvZXJcU3dhZ2dlclxIdHRwXFJvdXRpbmdcUm91dGVSZWdpc3RyYXI7CnVzZSBSaWNvTmlqZWJvZXJcU3dhZ2dlclxTd2FnZ2VyOwoKU3dhZ2dlcjo6cm91dGVzKGZuIChSb3V0ZVJlZ2lzdHJhciAkcm91dGVzKSA9PiAkcm91dGVzLT5mb3JEb2N1bWVudGF0aW9uKCcvZG9jcycsIGZhbHNlKSk7CmBgYAoKIyMjIFJlZ2lzdGVyaW5nIHJvdXRlcyBmb3IgeW91ciBTd2FnZ2VyIGNvbmZpZwoKVG8gYWRkIHJvdXRlcyB0byB5b3VyIFN3YWdnZXIgY29uZmlnIHlvdSB3YW50IHRvIGFkZCB0aGUgYFxSaWNvTmlqZWJvZXJcU3dhZ2dlclxIdHRwXE1pZGRsZXdhcmVcU3dhZ2dlclJlYWRlcmAgbWlkZGxld2FyZS4gV2hpY2ggaXMgYWxpYXNlZCB0byBib3RoIGBzd2FnZ2VyX3JlYWRlcmAgYW5kIGBvcGVuYXBpX3JlYWRlcmAuCgpgYGBwaHAKUm91dGU6Om1pZGRsZXdhcmUoJ3N3YWdnZXJfcmVhZGVyJyktPmdldCgncHJvZHVjdHMnLCBbUHJvZHVjdENvbnRyb2xsZXI6OmNsYXNzLCdpbmRleCddKTsKYGBgCgojIyMjIFRhZ2dpbmcgLyBHcm91cGluZyByb3V0ZXMKClRvIGdyb3VwIG11bHRpcGxlIHJvdXRlcyBpbiBTd2FnZ2VyIHlvdSBhZGQgYSB0YWcgdG8gdGhlIHBhdGguIFVzaW5nIHRoZSBwYWNrYWdlIHlvdSBtYXkgcmVnaXN0ZXIgYSB0YWcgdGhyb3VnaCBhZGRpbmcgYSBtaWRkbGV3YXJlIHRvIHlvdXIgcm91dGUgYW5kIHN1cHBseWluZyBpdCB3aXRoIHRoZSBkZXNpcmVkIHRhZ3MgYXMgc2hvd24gYmVsb3cuCgo+IEtlZXAgaW4gbWluZCB0aGF0IHRoZSBgc3dhZ2dlcl90YWdgIChgXFJpY29OaWplYm9lclxTd2FnZ2VyXEh0dHBcTWlkZGxld2FyZVxTd2FnZ2VyVGFnYCkgbWlkZGxld2FyZSBpcyBvbmx5IGdvaW5nIHRvIHRhZyB5b3VyIHJlcXVlc3Qgb25jZSB0aGUgYmF0Y2ggaGFzIGJlZW4gc3RvcmVkLgo+IElmIGEgYmF0Y2ggaGFzIG5vdCBiZWVuIGNyZWF0ZWQgaXQgd2lsbCBjb250aW51ZSBhbmQgZG8gbm90aGluZywgbm8gcXVlc3Rpb25zIGFza2VkLgoKYGBgcGhwCi8vIFVzaW5nIHRoZSBTd2FnZ2VyUmVhZGVyIG1pZGRsZXdhcmUKUm91dGU6Om1pZGRsZXdhcmUoJ3N3YWdnZXJfcmVhZGVyOnRhZy1vbmUsdGFnLXR3bycpLT5nZXQoJ3Byb2R1Y3RzJywgW1Byb2R1Y3RDb250cm9sbGVyOjpjbGFzcywnaW5kZXgnXSk7CgovLyBVc2luZyB0aGUgU3dhZ2dlclRhZyBtaWRkbGV3YXJlClJvdXRlOjptaWRkbGV3YXJlKCdzd2FnZ2VyX3RhZzp0YWctb25lLHRhZy10d28nKS0+Z2V0KCdwcm9kdWN0cycsIFtQcm9kdWN0Q29udHJvbGxlcjo6Y2xhc3MsJ2luZGV4J10pOwpgYGAKCiMjIENvbmZpZ3VyYXRpb24KCiMjIyBEYXRhYmFzZSBjb25uZWN0aW9uCgpZb3UgbWF5IHdhbnQgeW91ciBkYXRhYmFzZSBlbnRyaWVzIGZyb20gdGhlIExhcmF2ZWwgdG8gU3dhZ2dlciBwYWNrYWdlIGluIGEgc2VwYXJhdGUgZGF0YWJhc2Ugb3IgdG8gaGF2ZSBhbiBleHRyYSBwcmVmaXguIFRvIGRvIHRoaXMsIGFkZCBhbiBleHRyYSBjb25uZWN0aW9uIHRvIHlvdXIgTGFyYXZlbCBwcm9qZWN0IGFuZCBqdXN0IHNpbXBseQpzZXQgdGhlIGBzd2FnZ2VyLmRhdGFiYXNlLmNvbm5lY3Rpb25gIGNvbmZpZyB2YWx1ZS4KCkZvciBleGFtcGxlLCBpZiBJIHdhbnQgYWxsIHBhcnRzIG9mIHRoZSBTd2FnZ2VyIGRhdGFiYXNlIHRvIGJlIGluIGEgY29ubmVjdGlvbiBJJ3ZlIG5hbWVkIGBzd2FnZ2VyYCwgSSdkIHNldCB0aGUgY29uZmlnIGxpa2UgYmVsb3cuCgpgYGBwaHAKcmV0dXJuIFsKICAgIC8vLi4uCiAgICAnZGF0YWJhc2UnID0+IFsKICAgICAgICAnY29ubmVjdGlvbicgPT4gJ3N3YWdnZXInLAogICAgXSwKICAgIC8vLi4uCl07CmBgYAoKIyMjIEV2YWx1YXRpb24gZGVsYXksIGNvbmZpZ3VyZSBob3cgb2Z0ZW4geW91ciBlbmRwb2ludHMgYXJlIHJlLWV2YWx1YXRlZAoKQnkgZGVmYXVsdCwgdGhlIHBhY2thZ2Ugb25seSB1cGRhdGVzIHRoZSBjb25maWd1cmF0aW9uIG9mIHlvdXIgcm91dGUgZXZlcnkgMTIgaG91cnMsIHdpdGhpbiBhIGNvdXBsZSByZXN0cmFpbnRzLiBUaGlzIGRvZXMga2VlcCBpbnRvIGFjY291bnQgdGhlIHJlc3BvbnNlIGNvZGVzIHlvdSBhcmUgc2VuZGluZyBiYWNrIHRvIHlvdXIgdXNlcnMuCgpJZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhpcyB0byBmb3IgZXhhbXBsZSAyNCBob3VycywgeW91J2Qgc2V0IHRoZSBgc3dhZ2dlci5ldmFsdWF0aW9uLWRlbGF5YCBjb25maWcgdmFsdWUgdG8gdGhlIHRpbWUgaW4gc2Vjb25kcy4KCmBgYHBocApyZXR1cm4gWwogICAgLy8uLi4KICAgICdldmFsdWF0aW9uLWRlbGF5JyA9PiAyNCAqIDYwICogNjAsIC8vIE9yIDg2NDAwCiAgICAvLy4uLgpdOwpgYGAKCiMjIyBTd2FnZ2VyIE1ldGEgSW5mb3JtYXRpb24KClN3YWdnZXIgYWxsb3dzIHlvdSB0byBwcm92aWRlIHRoZSB1c2VycyB3aXRoIGEgYml0IG9mIGluZm8gYWJvdXQgeW91ciBBUEk7IGEgdGl0bGUsIGEgZGVzY3JpcHRpb24gYW5kIGEgdmVyc2lvbi4KCkluIHRoZSBjb25maWcgdGhlcmUgaXMgYSBgc3dhZ2dlci5pbmZvYCBhcnJheSB3aGVyZSB5b3UgY2FuIGFkZCB5b3VyIEFQSSdzIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgdmVyc2lvbiwgYXMgc2hvd24gYmVsb3cuCgpgYGBwaHAKcmV0dXJuIFsKICAgIC8vLi4uCiAgICAnaW5mbycgICAgICAgICAgICAgPT4gWwogICAgICAgICd0aXRsZScgICAgICAgPT4gJ0xhcmF2ZWwgdG8gU3dhZ2dlcicsCiAgICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiBudWxsLAogICAgICAgICd2ZXJzaW9uJyAgICAgPT4gJzIuMS4yJywKICAgIF0sCiAgICAvLy4uLgpdOwpgYGAKCiMjIyBTd2FnZ2VyIFNlcnZlcnMKClN3YWdnZXIgYWxsb3dzIHlvdSB0byBzaG93IHRoZSB1c2VyIHNlcnZlcnMgdGhhdCB5b3UgY2FuIGFjY2VzcyB0aGUgQVBJIGZyb20uIEEgYmFzaWMgc2V0dXAgd291bGQgYmUgdGhlIG9uZSBiZWxvdzsKCi0gWW91IGhhdmUgb25lIEFQSSB3aGVyZSB5b3VyIHVzZXJzIGNhbiBhY2Nlc3MgbGl2ZSBkYXRhIGFuZCBvbmUgd2hlcmUgdGhleSBjYW4gYWNjZXNzIHNvbWUgZGVtbyBpbmZvcm1hdGlvbi4KCmBgYHBocApyZXR1cm4gWwogICAgLy8uLi4KICAgICdzZXJ2ZXJzJyAgICAgICAgICA9PiBbCiAgICAgICAgWwogICAgICAgICAgICAndXJsJyAgICAgICAgID0+ICdodHRwOi8vYXBpLmV4YW1wbGUuY29tL3YxJywKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiBudWxsLAogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgICAndXJsJyAgICAgICAgID0+ICdodHRwOi8vZGVtby1hcGkuZXhhbXBsZS5jb20vdjEnLAogICAgICAgICAgICAnZGVzY3JpcHRpb24nID0+ICdUaGUgZGVtbyBlbnZpcm9ubWVudCBkZXNjcmlwdGlvbicsCiAgICAgICAgXSwKICAgIF0sCiAgICAvLy4uLgpdOwpgYGAKCiMjIyMgU2VydmVyIHRlbXBsYXRpbmcKClN3YWdnZXIgYWxzbyBzdXBwb3J0cyBbU2VydmVyIHRlbXBsYXRpbmddKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYXBpLWhvc3QtYW5kLWJhc2UtcGF0aC8pLiBZb3UgYXJlIGFibGUgdG8gYWRkIHZhcmlhYmxlcyB0byB5b3VyIHNlcnZlciB3aGljaCBnaXZlcyB5b3UgdGhlIHBvc3NpYmlsaXR5IHRvIG9iZnVzY2F0ZSB0aGUKdXJscyBhIGJpdC4KCkFuIGV4YW1wbGUgZnJvbSB0aGVpciBkb2N1bWVudGF0aW9uIGlzIGEgc2VydmVyIHdoZXJlIHlvdSBoYXZlIGBodHRwczovL3tjdXN0b21lcklkfS5zYWFzLWFwcC5jb206e3BvcnR9L3YyYCBhcyB0aGUgVVJMLiBUaGlzIGlzIHRyYW5zbGF0ZWQgdG8gdGhlaXIgWWFtbCBhcyBzaG93biBiZWxvdy4gVGhleSBkZWZpbmUgdGhlIHVybCwKY29udGFpbmluZyBpdHMgdmFyaWFibGVzLCBhbmQgZGVzY3JpYmUgd2hhdCB0aGUgdmFyaWFibGVzIGRvIGFuZCB3aGF0IHRoZWlyIGRlZmF1bHQgdmFsdWVzIGFyZS4KCkxhcmF2ZWwgdG8gU3dhZ2dlciBzdXBwb3J0cyBiYXNpY2FsbHkgdGhlIHNhbWUgZm9ybWF0IGFzIHRoZSBZYW1sIGZpbGUsIGJlbG93IHRoZSBZYW1sIHlvdSBjYW4gc2VlIGhvdyB5b3UgdHJhbnNsYXRlIGl0IHRvIHRoZSBTd2FnZ2VyIGNvbmZpZy4gSSd2ZSBhZGRlZCB2ZXJ5IGxpZ2h0IHZhbGlkYXRpb24gdG8gdGhpcywgc28gaWYgdGhlClN3YWdnZXIgVUkgLyBSZWRvYyBVSSBicmVha3MgdHJ5IHRvIGZpcnN0IGVuc3VyZSB0aGF0IHlvdSd2ZSBjb3JyZWN0bHkgY29uZmlndXJlZCB0aGUgY29uZmlnIGFjY29yZGluZyB0byB0aGUgW1N3YWdnZXIgZG9jc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hcGktaG9zdC1hbmQtYmFzZS1wYXRoLykKCioqU3dhZ2dlciBZYW1sKioKCmBgYHlhbWwKc2VydmVyczoKICAtIHVybDogaHR0cHM6Ly97Y3VzdG9tZXJJZH0uc2Fhcy1hcHAuY29tOntwb3J0fS92MgogICAgdmFyaWFibGVzOgogICAgICBjdXN0b21lcklkOgogICAgICAgIGRlZmF1bHQ6IGRlbW8KICAgICAgICBkZXNjcmlwdGlvbjogQ3VzdG9tZXIgSUQgYXNzaWduZWQgYnkgdGhlIHNlcnZpY2UgcHJvdmlkZXIKICAgICAgcG9ydDoKICAgICAgICBlbnVtOgogICAgICAgICAgLSAnNDQzJwogICAgICAgICAgLSAnODQ0MycKICAgICAgICBkZWZhdWx0OiAnNDQzJwpgYGAKCioqTGFyYXZlbCB0byBTd2FnZ2VyIENvbmZpZyoqCgpgYGBwaHAKcmV0dXJuIFsKICAgIC8vLi4uCiAgICAnc2VydmVycycgICAgICAgICAgPT4gWwogICAgICAgIFsKICAgICAgICAgICAgJ3VybCcgICAgICAgPT4gJ2h0dHBzOi8ve2N1c3RvbWVySWR9LnNhYXMtYXBwLmNvbTp7cG9ydH0vdjInLAogICAgICAgICAgICAndmFyaWFibGVzJyA9PiBbCiAgICAgICAgICAgICAgICAnY3VzdG9tZXJJZCcgPT4gWwogICAgICAgICAgICAgICAgICAgICdkZWZhdWx0JyAgICAgPT4gJ2RlbW8nLAogICAgICAgICAgICAgICAgICAgICdkZXNjcmlwdGlvbicgPT4gJ0N1c3RvbWVyIElEIGFzc2lnbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAncG9ydCcgICAgICAgPT4gWwogICAgICAgICAgICAgICAgICAgICdlbnVtJyAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICc0NDMnLAogICAgICAgICAgICAgICAgICAgICAgICAnODQ0MycsCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdCcgPT4gJzQ0MycsCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICBdLAogICAgICAgIF0sCiAgICBdLAogICAgLy8uLi4KXTsKYGBgCgojIyMgUmVkb2MgVmVyc2lvbgoKTGV0J3Mgc2F5IHlvdSBydW4gaW50byBhIGJ1ZyB3aXRoaW4gdGhlIFJlZG9jIHRoYXQgdGhlIHRlYW0gYmVoaW5kIFJlZG9jIGhhcyBmaXhlZCBpbiBhIG5ld2VyIHZlcnNpb24sIGFuZCBJIGhhdmUgbm90IHVwZGF0ZWQgdGhlIHBhY2thZ2UgeWV0IHRvIGhhdmUgdGhlIGZpeGVkIHZlcnNpb24gdXNlZC4gSSBoYXZlIGFkZGVkIGEgY29uZmlnCnZhbHVlIChgc3dhZ2dlci5yZWRvYy52ZXJzaW9uYCksIHNvIHlvdSBkb24ndCBoYXZlIHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpbmdzIGxpa2UgcHVibGlzaGVkIHZpZXdzIG9yIGFueXRoaW5nOyBZb3UgY2FuIHNpbXBseSBjaGFuZ2UgdGhlIHZlcnNpb24gYmFzZWQgb24KdGhlaXIgW3JlbGVhc2VzXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYy9yZWxlYXNlcyksIGF0IHRoZSB0aW1lIG9mIHdyaXRpbmcgdGhpcyBkb2N1bWVudGF0aW9uIHRoZSBsYXRlc3QgdmVyc2lvbiBpcyBgdjIuMC4wLXJjLjUzYC4KCmBgYHBocApyZXR1cm4gWwogICAgLy8uLi4KICAgICdyZWRvYycgPT4gWwogICAgICAgICd2ZXJzaW9uJyA9PiAndjIuMC4wLXJjLjUzJywKICAgICAgICAvLy4uLgogICAgXSwKICAgIC8vLi4uCl07CmBgYAoKIyMjIEdyb3VwaW5nIFRhZ3MKIVtyZWRvYy1vbmx5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JlZG9jJTIwT25seS1yZWQuc3ZnKQoKSWYgeW91IGFyZSB1c2luZyBSZWRvYyB5b3UgYXJlIGFibGUgdG8gZ3JvdXAgeW91ciB0YWdzIGJ5IHVzaW5nIHRoZSBjb25maWcuCkluIHRoZSBleGFtcGxlIGJlbG93IGEgZ3JvdXAgY2FsbGVkICJVc2VyIE1hbmFnZW1lbnQiIGlzIGNyZWF0ZWQgY29udGFpbmluZyB0aGUgdGFncyAiVXNlcnMiLCAiQWRtaW4iIGFuZCAiQVBJIGtleXMiLgoKPiBUYWdzIHRoYXQgYXJlIG5vdCBncm91cGVkIGJ5IHlvdSB3aWxsIGJlIGFkZGVkIHVuZGVyIGEgZGVmYXVsdCBncm91cCwgPGJyPgogIHRoZSBuYW1lIG9mIHdoaWNoIGNhbiBiZSBjaGFuZ2VkIHVzaW5nIHRoZSBjb25maWcgKGBzd2FnZ2VyLnJlZG9jLmRlZmF1bHQtZ3JvdXBgKQoKYGBgcGhwCnJldHVybiBbCiAgICAvLy4uLgogICAgJ3JlZG9jJyA9PiBbCiAgICAgICAgLy8uLi4KICAgICAgICAnZGVmYXVsdC1ncm91cCcgPT4gbnVsbCwKICAgICAgICAndGFnLWdyb3VwcycgPT4gWwogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnbmFtZScgPT4gJ1VzZXIgTWFuYWdlbWVudCcsCiAgICAgICAgICAgICAgICAndGFncycgPT4gWyAnVXNlcnMnLCAnQWRtaW4nLCAnQVBJIGtleXMnIF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgXSwKICAgIF0sCiAgICAvLy4uLgpdOwpgYGAKCiMjIyBBZGRpbmcgYSBsb2dvCiFbcmVkb2Mtb25seV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9SZWRvYyUyME9ubHktcmVkLnN2ZykKCllvdSBjYW4gYWRkIGEgbG9nbyB0byB0aGUgc2lkZWJhciBpbiB5b3VyIFJlZG9jIHZpc3VhbGl6YXRpb24gYnkgYWRkaW5nIGEgZnVsbC11cmwgdG8gdGhlIGBzd2FnZ2VyLmluZm8ubG9nby51cmxgLgoKPiBUaGUgbG9nbyBpcyBvbmx5IGRpc3BsYXllZCB3aGVuIHlvdSB1c2UgdGhlIFJlZG9jIGRvY3VtZW50YXRpb24gcm91dGUuCgpgYGBwaHAKcmV0dXJuIFsKICAgIC8vLi4uCiAgICAnaW5mbycgPT4gWwogICAgICAgIC8vLi4uCiAgICAgICAgJ2xvZ28nID0+IFsKICAgICAgICAgICAgJ3VybCcgPT4gJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8zMDAvMjAwJywKICAgICAgICBdLAogICAgXSwKICAgIC8vLi4uCl07CmBgYAoKIyMgVGVzdGluZwoKYGBgCmNvbXBvc2VyIHRlc3QKYGBgCgojIyBDcmVkaXRzCgotIFtSaWNvIE5pamVib2VyXShodHRwczovL2dpdGh1Yi5jb20vUmljb05pamVib2VyLykKLSBbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29OaWplYm9lci9sYXJhdmVsLXRvLXN3YWdnZXIvZ3JhcGhzL2NvbnRyaWJ1dG9ycykKCiMjIExpY2Vuc2UKClRoZSBNSVQgTGljZW5zZSAoTUlUKS4gUGxlYXNlIHNlZSBbTGljZW5zZSBGaWxlXShMSUNFTlNFLm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIENoYW5nZWxvZwoKQWxsIG5vdGFibGUgY2hhbmdlcyBjYW4gYmUgZm91bmQgaW4gdGhlIFtDSEFOR0VMT0cubWRdKENIQU5HRUxPRy5tZCkuCg== readmeEtag: '"f64ef8febcfdad081fee6d050fdd1c1de5ec2b0f"' readmeLastModified: Tue, 15 Feb 2022 07:38:07 GMT repositoryId: 350056876 description: >- This package aims to bring you the easiest way to create a Swagger / OpenApi 3 config for your Laravel API's. created: '2021-03-21T16:37:23Z' updated: '2024-05-15T12:41:37Z' language: PHP archived: true stars: 23 watchers: 1 forks: 0 owner: RicoNijeboer logo: https://avatars.githubusercontent.com/u/26306300?v=4 license: MIT repoEtag: '"bf18f6584f4bb2705d86554ba86a458e0a0c87c1e69005131f0d4a0c4d8f4ff9"' repoLastModified: Wed, 15 May 2024 12:41:37 GMT foundInMaster: true category: Server Implementations id: 79cd08ad7f4391e56675bdf9ed635f89 - source: openapi3 tags repository: https://github.com/vymalo/keycloak-webhook v3: true id: ed4d4928e6bf8f5d23dd3eeccc015ab0 repositoryMetadata: base64Readme: >- IyBXZWJob29rcyBmcm9tIEtleWNsb2FrCgpUaGlzIHBsdWdpbiBjYWxsIGEgd2ViaG9vayB3aGVuZXZlciBhbiBldmVudCBpcyBjcmVhdGVkIGZyb20gd2l0aGluIEtleWNsb2FrLgoKCiMjIENvbmZpZ3VyYXRpb24KLSBgV0VCSE9PS19FVkVOVFNfVEFLRU4gKG9wdGlvbmFsKWAgaXMgdGhlIGxpc3Qgb2YgZXZlbnRzIGNyZWF0ZWQgZnJvbSBLZXljbG9haywgdGhhdCBhcmUgbGlzdGVuZWQgYnkgdGhlIHBsdWdpbi4gRXhhbXBsZTogYCJMT0dJTixSRUdJU1RFUixMT0dPVVQiYC4gSWYgbm90IHNwZWNpZmllZCwgd2lsbCB0YWtlIGFsbC4KCiMjIyBVc2luZyB0aGUgaHR0cCBjbGllbnQKLSBgV0VCSE9PS19IVFRQX0JBU0VfUEFUSGAgaXMgdGhlIGVuZHBvaW50IHdoZXJlIHRoZSB3ZWJob29rIHJlcXVlc3QgaXMgZ29pbmcgdG8gYmUgc2VudC4gRXhhbXBsZTogaHR0cHM6Ly9sb2NhbGhvc3Q6MzAwMAotIGBXRUJIT09LX0hUVFBfQVVUSF9VU0VSTkFNRSAob3B0aW9uYWwpYCBpcyB0aGUgYmFzaWMgYXV0aCB1c2VybmFtZS4gRXhhbXBsZSAiYWRtaW4iLgotIGBXRUJIT09LX0hUVFBfQVVUSF9QQVNTV09SRCAob3B0aW9uYWwpYCBpcyB0aGUgYmFzaWMgYXV0aCBwYXNzd29yZC4gRXhhbXBsZSAicGFzc3dvcmQiLgoKIyMjIFVzaW5nIHRoZSBBTVFQIGNsaWVudApUaGlzIHBhcnQgaXMgaGVhdmlseSBpbnNwaXJlZCBmcm9tIHRoZSBba2V5Y2xvYWstZXZlbnQtbGlzdGVuZXItcmFiYml0bXFdKGh0dHBzOi8vZ2l0aHViLmNvbS9hem5hbWllci9rZXljbG9hay1ldmVudC1saXN0ZW5lci1yYWJiaXRtcSkgcGx1Z2luLgotIGBXRUJIT09LX0FNUVBfSE9TVGAgaXMgdGhlIGhvc3QgdXJsIG9mIHRoZSByYWJiaXRtcSBzZXJ2ZXIuIFRoaXMga2V5IHdpbGwgaW5kaWNhdGUgdGhhdCB0aGUgYW1xcCBjbGllbnQgaXMgYmVpbmcgdXNlZC4KLSBgV0VCSE9PS19BTVFQX1VTRVJOQU1FYCBpcyB0aGUgdXNlcm5hbWUgb2YgdGhlIHJhYmJpdG1xIHNlcnZlciAKLSBgV0VCSE9PS19BTVFQX1BBU1NXT1JEYCBpcyB0aGUgcGFzc3dvcmQgb2YgdGhlIHJhYmJpdG1xIHNlcnZlcgotIGBXRUJIT09LX0FNUVBfUE9SVGAgaXMgdGhlIHBvcnQgb2YgdGhlIHJhYmJpdG1xIHNlcnZlcgotIGBXRUJIT09LX0FNUVBfVkhPU1QgKG9wdGlvbmFsKWAgaXMgdGhlIHZob3N0IG9mIHRoZSByYWJiaXRtcSBzZXJ2ZXIKLSBgV0VCSE9PS19BTVFQX0VYQ0hBTkdFYCBpcyB0aGUgZXhjaGFuZ2Ugb2YgdGhlIHJhYmJpdG1xIHNlcnZlcgotIGBXRUJIT09LX0FNUVBfU1NMIChvcHRpb25hbClgIGlzIHRvIGluZGljYXRlIGlmIHdlJ3JlIHVzaW5nIFNTTCBvciBub3QuIFZhbHVlcyBhcmUgInllcyIgb3IgIm5vIgoKIyMjIEVuYWJsZSBsaXN0ZW5lci13ZWJob29rIGluIEtleWNsb2FrCkdvIHRvIFJlYWxtIFNldHRpbmdzIC0+IEV2ZW50cyAtPiBFdmVudCBsaXN0ZW5lcnMgYW5kIGFkZCAibGlzdGVuZXItd2ViaG9vayIgdG8gdGhlIGxpc3QuCgojIyMgRXhhbXBsZQpXaGVuIHVzaW5nIHRoZSBkb2NrZXItY29tcG9zZSBmaWxlLCB0aGUgZm9sbG93aW5nIGNvbnRhaW5lcnMgYXJlIGNyZWF0ZWQ6Ci0ga2V5Y2xvYWs6IGEga2V5Y2xvYWsgc2VydmVyCi0gd2F0Y2hlcjogYSBzaW1wbGUgY29udGFpbmVyIHRoYXQgd2lsbCBwcmludCB0aGUgd2ViaG9vayByZXF1ZXN0LiBJdCdzIHVzZWQgdG8gdGVzdCB0aGUgcGx1Z2luLiBVcG9uIHVzZXIgbG9naW4sIHlvdSBzaG91bGQgc2VlIGEgcmVxdWVzdCBwcmludGVkIGluIHRoZSB3ZWIgY29uc29sZSBhdCBodHRwOi8vbG9jYWxob3N0OjMwMDAgbGlrZSB0aGlzOgogIGBgYGpzb24KICB7CiAgICAidHlwZSI6ICJMT0dJTiIsCiAgICAicmVhbG1JZCI6ICJiMWE3MGM4YS04NjU2LTRhZTktODVmMS01MjRlNWM3ZjYyOTQiLAogICAgInRpbWUiOiAxNjkxNzU4MTg4MDM4LAogICAgImNsaWVudElkIjogImFjY291bnQtY29uc29sZSIsCiAgICAidXNlcklkIjogImEwMzJiNDI1LTYwYjUtNDYyYS1iMTU2LThkMTc4Yjg2ZmE3MSIsCiAgICAiaXBBZGRyZXNzIjogIjE3Mi4xOC4wLjEiLAogICAgImRldGFpbHMiOiB7CiAgICAgICJhdXRoX21ldGhvZCI6ICJvcGVuaWQtY29ubmVjdCIsCiAgICAgICJyZXNwb25zZV90eXBlIjogImNvZGUiLAogICAgICAicmVkaXJlY3RfdXJpIjogImh0dHA6Ly9sb2NhbGhvc3Q6OTEwMC9yZWFsbXMvbWFpbi9hY2NvdW50LyMvIiwKICAgICAgInJlbWVtYmVyX21lIjogImZhbHNlIiwKICAgICAgImNvbnNlbnQiOiAibm9fY29uc2VudF9yZXF1aXJlZCIsCiAgICAgICJjb2RlX2lkIjogIjgxYmUxNzkyLThlMDctNGJmZi1hNmY0LWFjYTE5NzFiMWVhMyIsCiAgICAgICJyZXNwb25zZV9tb2RlIjogImZyYWdtZW50IiwKICAgICAgInVzZXJuYW1lIjogInNlbGFzdGxhbWJvdUBnbWFpbC5jb20iCiAgICB9CiAgfQogIGBgYAotIHJhYmJpdG1xOiBhIHJhYmJpdG1xIHNlcnZlci4gVGhpcyBpcyBmb3IgdGVzdGluZyBBTVFQIGNsaWVudC4= readmeEtag: '"bc694fc5098241ee9faabb18d2f9eb8c3fd6a3ec"' readmeLastModified: Thu, 29 Feb 2024 13:00:37 GMT repositoryId: 628094839 description: Event-based Webhook plugin for Keycloak created: '2023-04-14T22:47:31Z' updated: '2024-09-03T22:44:10Z' language: Kotlin archived: false stars: 23 watchers: 1 forks: 6 owner: vymalo logo: https://avatars.githubusercontent.com/u/128943481?v=4 license: MIT repoEtag: '"bc473790b29593e05ff31b1cff615cf6beece93f1e1da684fc1371aa7bacea0c"' repoLastModified: Tue, 03 Sep 2024 22:44:10 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/apiaddicts/apigen.springboot v3: true v3_1: true id: fd840bafced1deba1ac3d162e2c56928 repositoryMetadata: base64Readme: >- CiMg8J+boO+4jyBBcGlnZW4gIVtSZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3JlbGVhc2UtMC42LjItcHVycGxlKSAhW1N3YWdnZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLW9wZW5hcGktJTIzQ2xvanVyZT9zdHlsZT1mbGF0JmxvZ289c3dhZ2dlciZsb2dvQ29sb3I9d2hpdGUpICFbSmF2YV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhLSUyM0VEOEIwMC5zdmc/c3R5bGU9ZmxhdCZsb2dvPW9wZW5qZGsmbG9nb0NvbG9yPXdoaXRlKSAhW1NwcmluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zcHJpbmctJTIzNkRCMzNGLnN2Zz9zdHlsZT1mbGF0JmxvZ289c3ByaW5nJmxvZ29Db2xvcj13aGl0ZSkgWyFbTGljZW5zZTogTEdQTCB2M10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUxHUExfdjMtYmx1ZS5zdmcpXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMy4wKQoKV2VsY29tZSB0byAqKmFwaWdlbi5zcHJpbmdib290KiosIG1hZGUgaW4gc3BhaW4gIVtTcGFpbl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N0ZXZlbnJza2VsdG9uL2ZsYWctaWNvbi9tYXN0ZXIvcG5nLzE2L2NvdW50cnktNHgzL2VzLnBuZyAiU3BhaW4iKSwgdGhlIG9wZW5zb3VyY2UgcHJvamVjdCBpbiBKYXZhIHRoYXQgYWxsb3dzIHlvdSB0byBnZW5lcmF0ZSBhbiBhcmNoZXR5cGUgb2YgdGhlIHNwcmluZ2Jvb3QgZnJhbWV3b3JrIHVzaW5nIHRoZSBvcGVuYXBpIGZpbGUgYXMgYSBtYXBwaW5nIHRvb2wgYmV0d2VlbiB0aGUgb3BlbmFwaSBkZWZpbml0aW9uIGFuZCB0aGUgZGF0YWJhc2UuIENsaWNrIG1hdmVuIHRvIHNlZSBhdmFpbGFibGUgbXZucmVwb3NpdG9yeSBkZXBlbmRlbmNpZXMuCgo8YSB0aXRsZT0ibXZucmVwb3NpdG9yeSIgaHJlZj0iaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuYXBpYWRkaWN0cy5hcGl0b29scy5hcGlnZW4vYXBpZ2VuIj4KICAgIDxpbWcgd2lkdGg9IjE1MCIgIHNyYz0iaHR0cHM6Ly9ibG9nLmlyb250ZWMuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE5LzEyLzEyODBweC1NYXZlbl9sb2dvLnN2Z18tMzAweDc2LnBuZyI+CjwvYT4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpClshW0Rpc2NvcmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC0lMjM1ODY1RjIuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1kaXNjb3JkJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vZGlzY29yZC5nZy9aZGJHcU1CWXk4KQpbIVtMaW5rZWRJbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saW5rZWRpbi0lMjMwMDc3QjUuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1saW5rZWRpbiZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9hcGlhZGRpY3RzLykKWyFbRmFjZWJvb2tdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRmFjZWJvb2stJTIzMTg3N0YyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289RmFjZWJvb2smbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2FwaWFkZGljdHMpClshW1lvdVR1YmVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvWW91VHViZS0lMjNGRjAwMDAuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1Zb3VUdWJlJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL0BBUElBZGRpY3RzbG1hb28pCgojIPCfmYwgSm9pbiB0aGUgKipBcGlnZW4qKiBBZG9wdGVycyBsaXN0CvCfk6IgSWYgQXBpZ2VuIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtBY2Npb25hXShodHRwczovL3d3dy5hY2Npb25hLmNvbS8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyB8CnwgW01hZHJpZCBEaWdpdGFsXShodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NlcnZpY2lvcy9zZWRlLWVsZWN0cm9uaWNhL21hZHJpZC1kaWdpdGFsLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzICB8CnwgW0FwaXF1YWxpdHldKGh0dHBzOi8vYXBpcXVhbGl0eS5pby8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAoKIyDwn5Gp8J+PveKAjfCfkrsgIENvbnRyaWJ1dGUgdG8gQXBpQWRkaWN0cwoKV2UncmUgYW4gaW5jbHVzaXZlIGFuZCBvcGVuIGNvbW11bml0eSwgd2VsY29taW5nIHlvdSB0byBqb2luIG91ciBlZmZvcnQgdG8gZW5oYW5jZSBBcGlBZGRpY3RzLCBhbmQgd2UncmUgZXhjaXRlZCB0byBwcmlvcml0aXplIHRhc2tzIGJhc2VkIG9uIGNvbW11bml0eSBpbnB1dCwgaW52aXRpbmcgeW91IHRvIHJldmlldyBhbmQgY29sbGFib3JhdGUgdGhyb3VnaCBvdXIgR2l0SHViIGlzc3VlIHRyYWNrZXIuCgpGZWVsIGZyZWUgdG8gZHJvcCBieSBhbmQgZ3JlZXQgdXMgb24gb3VyIEdpdEh1YiBkaXNjdXNzaW9uIG9yIERpc2NvcmQgY2hhdC4gWW91IGNhbiBhbHNvIHNob3cgeW91ciBzdXBwb3J0IGJ5IGdpdmluZyB1cyBzb21lIEdpdEh1YiBzdGFycyDirZDvuI8sIG9yIGJ5IGZvbGxvd2luZyB1cyBvbiBUd2l0dGVyLCBMaW5rZWRJbiwgYW5kIHN1YnNjcmliaW5nIHRvIG91ciBZb3VUdWJlIGNoYW5uZWwhIPCfmoAKClshWyJCdXkgTWUgQSBDb2ZmZWUiXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2Fzc2V0cy9pbWcvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyldKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXBpYWRkaWN0cykKCgojIPCfk5EgR2V0dGluZyBzdGFydGVkCgojIyDwn5CLIERvY2tlciBjb21wb3NlCgpgYGB5YW1sCnZlcnNpb246ICIzLjMiCnNlcnZpY2VzOgogIGFwaWdlbjoKICAgIGltYWdlOiAiYXBpYWRkaWN0cy9hcGl0b29scy1hcGlnZW46MC42LjIiCiAgICBwb3J0czoKICAgICAgLSAiODA4MDo4MDgwIgpgYGAKCiMjIFByb2plY3QKCiMjIyBTY2hlbWUKICAgIHgtYXBpZ2VuLXByb2plY3Q6CiAgICAgIG5hbWU6IHN0cmluZwogICAgICBkZXNjcmlwdGlvbjogc3RyaW5nCiAgICAgIHZlcnNpb246IHN0cmluZwogICAgICBqYXZhLXByb3BlcnRpZXM6CiAgICAgICAgZ3JvdXAtaWQ6IHN0cmluZwogICAgICAgIGFydGlmYWN0LWlkOiBzdHJpbmcKCiMjIyBEZWZpbml0aW9uCi0gYHgtYXBpZ2VuLXByb2plY3RgOiBTZWN0aW9uIHdoZXJlIHByb2plY3QgaW5mb3JtYXRpb24gaXMgZGVmaW5lZAogIC0gYG5hbWVgOiBQcm9qZWN0IG5hbWUKICAtIGBkZXNjcmlwdGlvbmA6IEJyaWVmIHByb2plY3QgZGVzY3JpcHRpb24KICAtIGB2ZXJzaW9uYDogUHJvamVjdCB2ZXJzaW9uCiAgLSBgamF2YS1wcm9wZXJ0aWVzYDogU2VjdGlvbiB3aGVyZSBzcGVjaWZpYyBKYXZhIHByb2plY3QgaW5mb3JtYXRpb24gaXMgZGVmaW5lZAogICAgLSBgZ3JvdXAtaWRgOiBJbml0aWFsIHBhY2thZ2UgbmFtZSB3aGVyZSB0aGUgcHJvamVjdCByZXNpZGVzLiBJZiBpdCBjb25zaXN0cyBvZiBtdWx0aXBsZSB3b3JkcywgdGhleSB3aWxsIGJlIHNlcGFyYXRlZCBieSBgLmAKICAgIC0gYGFydGlmYWN0LWlkYDogSWRlbnRpZmllciBuYW1lIGZvciB0aGUgcHJvamVjdAogICAgLSBgYmFzZS1wYWNrYWdlYDogTmFtZSBvZiB0aGUgYmFzZSBwYWNrYWdlIHRvIHVzZSBpbiB0aGUgZ2VuZXJhdGVkIGNvZGU7IGlmIG5vdCBzcGVjaWZpZWQsIGl0IGlzIG9idGFpbmVkIGZyb20gdGhlIGBncm91cC1pZGAgYW5kIGBhcnRpZmFjdC1pZGAKICAtIGBzdGFuZGFyZC1yZXNwb25zZS1vcGVyYXRpb25zYDogU2VjdGlvbiB3aGVyZSBzdGFuZGFyZCBhcGlnZW4gcmVzcG9uc2UgdHJhbnNmb3JtYXRpb24gb3BlcmF0aW9ucyBhcmUgZGVmaW5lZCAob3B0aW9uYWwpCiAgICAtIGA8anNvbnBhdGNoIG9wZXJhdGlvbiBub2RlPmA6IE5vZGUgdGhhdCBjb21wbGllcyB3aXRoIHRoZSBqc29uLXBhdGNoIHN0YW5kYXJkLCBhbGxvd2luZyBvcHRpb25hbCBvcGVyYXRpb25zIHRvIGJlIGRlY2xhcmVkIG9uIGFsbCBlbGVtZW50cyBvZiBhbiBhcnJheQoKIyMjIFNhbXBsZXMKICAgIHgtYXBpZ2VuLXByb2plY3Q6CiAgICAgIG5hbWU6IENvbG9ycwogICAgICBkZXNjcmlwdGlvbjogVGhpcyB3b3VsZCBiZSB0aGUgQ29sb3JzIHByb2plY3QKICAgICAgdmVyc2lvbjogMS4wLjAKICAgICAgamF2YS1wcm9wZXJ0aWVzOgogICAgICAgIGdyb3VwLWlkOiB0aGUuZ3JvdXAKICAgICAgICBhcnRpZmFjdC1pZDogYXBwCgojIyBNb2RlbHMKCiMjIyBTY2hlbWUKICAgIHgtYXBpZ2VuLW1vZGVsczoKICAgICAgPG1vZGVsX25hbWU+OgogICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICB0YWJsZTogc3RyaW5nCiAgICAgICAgYXR0cmlidXRlczoKICAgICAgICAgIC0gbmFtZTogc3RyaW5nCiAgICAgICAgICAgIHR5cGU6IHN0cmluZyBbRU5VTVtBcnJheSwgU3RyaW5nLCBCb29sZWFuLCBEb3VibGUsIEZsb2F0LCBCaWdEZWNpbWFsLCBJbnRlZ2VyLCBMb25nLCBCaWdJbnRlZ2VyLCBMb2NhbERhdGUsIExvY2FsRGF0ZVRpbWUsIFpvbmVkRGF0ZVRpbWUsIE9mZnNldERhdGVUaW1lLCBJbnN0YW50LCBDb21wb3NlZElEXSBvIDxtb2RlbF9uYW1lPl0KICAgICAgICAgICAgaXRlbXMtdHlwZTogc3RyaW5nIFs8bW9kZWxfbmFtZT5dCiAgICAgICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICAgICAgY29sdW1uOiBzdHJpbmcKICAgICAgICAgICAgICBwcmltYXJ5LWtleTogYm9vbGVhbgogICAgICAgICAgICAgIGZvcmVpZ24tY29sdW1uOiBzdHJpbmcKICAgICAgICAgICAgICBpbnRlcm1lZGlhdGUtdGFibGU6IHN0cmluZwogICAgICAgICAgICAgIG93bmVyOiBib29sZWFuCiAgICAgICAgICAgIHZhbGlkYXRpb25zOgogICAgICAgICAgICAgIC0gdHlwZTogc3RyaW5nIFtFTlVNW05vdE51bGwsIFNpemUsIE1pbiwgTWF4LCBFbWFpbCwgTm90RW1wdHksIE5vdEJsYW5rLCBQb3NpdGl2ZSwgUG9zaXRpdmVPclplcm8sIE5lZ2F0aXZlLCBOZWdhdGl2ZU9yWmVybywgUGFzdCwgUGFzdE9yUHJlc2VudCwgRnV0dXJlLCBGdXR1cmVPclByZXNlbnQsIFBhdHRlcm4sIERpZ2l0cywgRGVjaW1hbE1pbiwgRGVjaW1hbE1heF1dCiAgICAgICAgICAgICAgICBtaW46IGludGVnZXIKICAgICAgICAgICAgICAgIG1heDogaW50ZWdlcgogICAgICAgICAgICAgICAgcmVnZXg6IHN0cmluZwogICAgICAgICAgICAgICAgdmFsdWU6IGludGVnZXIgfCBzdHJpbmcKICAgICAgICAgICAgICAgIGludGVnZXI6IGludGVnZXIKICAgICAgICAgICAgICAgIGZyYWN0aW9uOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IGJvb2xlYW4gICAKCiMjIyBEZWZpbml0aW9uCi0gYHgtYXBpZ2VuLW1vZGVsc2A6IFNlY3Rpb24gd2hlcmUgcHJvamVjdCBtb2RlbHMgYXJlIGRlZmluZWQKICAtIGA8bW9kZWxfbmFtZT5gOiBOYW1lIG9mIHRoZSBtb2RlbAogICAgLSBgcmVsYXRpb25hbC1wZXJzaXN0ZW5jZWA6IFNlY3Rpb24gd2hlcmUgYWxsIGFzcGVjdHMgcmVsYXRlZCB0byB0aGUgbW9kZWwncyByZWxhdGlvbmFsIHBlcnNpc3RlbmNlIGFyZSBpbmRpY2F0ZWQKICAgICAgLSBgdGFibGVgOiBOYW1lIG9mIHRoZSB0YWJsZSBpbiB0aGUgZGF0YWJhc2UKICAgIC0gYGF0dHJpYnV0ZXNgOiBTZWN0aW9uIHRoYXQgY29udGFpbnMgdGhlIG1vZGVsJ3MgYXR0cmlidXRlcwogICAgICAtIGBuYW1lYDogTmFtZSBvZiB0aGUgYXR0cmlidXRlCiAgICAgIC0gYHR5cGVgOiBUeXBlIG9mIHRoZSBhdHRyaWJ1dGUsIHN1cHBvcnRlZCB0eXBlcyBhcmU6IFtBcnJheSwgU3RyaW5nLCBCb29sZWFuLCBEb3VibGUsIEZsb2F0LCBJbnRlZ2VyLCBMb25nLCBMb2NhbERhdGUsIE9mZnNldERhdGVUaW1lLCBDb21wb3NlZElEXSwgb3IgaW4gdGhlIGNhc2Ugb2YgYW5vdGhlciBtb2RlbCwgdGhlIG5hbWUgb2YgdGhhdCBtb2RlbAogICAgICAtIGBpdGVtcy10eXBlYDogSW4gdGhlIGNhc2Ugb2YgdGhlIGB0eXBlYCBiZWluZyBhbiBgQXJyYXlgLCB0aGlzIGZpZWxkIHNob3VsZCBiZSBkZWZpbmVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgbW9kZWwKICAgICAgLSBgYXR0cmlidXRlc2A6IFNpbWlsYXIgdG8gdGhlIGBhdHRyaWJ1dGVzYCBvZiB0aGUgbW9kZWwsIG9ubHkgdXNlZCB3aGVuIHRoZSBgdHlwZWAgaXMgQ29tcG9zZWRJRCB0byBpbmRpY2F0ZSB0aGUgYXR0cmlidXRlcyB0aGF0IG1ha2UgdXAgdGhlIGlkZW50aWZpZXIKICAgICAgLSBgcmVsYXRpb25hbC1wZXJzaXN0ZW5jZWA6IFNlY3Rpb24gd2hlcmUgYWxsIGFzcGVjdHMgcmVsYXRlZCB0byB0aGUgcmVsYXRpb25hbCBwZXJzaXN0ZW5jZSBvZiB0aGUgbW9kZWwncyBhdHRyaWJ1dGUgYXJlIGluZGljYXRlZAogICAgICAgIC0gYGNvbHVtbmA6IE5hbWUgb2YgdGhlIGNvbHVtbiBpbiB0aGUgZGF0YWJhc2UKICAgICAgICAtIGBjb2x1bW5zYDogUmVsYXRpb25zaGlwIG9mIGNvbHVtbnMgZnJvbSB0aGUgY3VycmVudCB0YWJsZSB0byBhbm90aGVyIHJlbGF0ZWQgdGFibGUgd2hlbiBkZWFsaW5nIHdpdGggYSBtb2RlbCB3aXRoIGEgY29tcG9zaXRlIGlkZW50aWZpZXIgKGVhY2ggZW50cnkgaXMgZGVmaW5lZCBhcyBrZXk6IHZhbHVlIHdoZXJlIHRoZSBrZXkgaXMgdGhlIG5hbWUgaW4gdGhlIGN1cnJlbnQgdGFibGUgYW5kIHRoZSB2YWx1ZSBpcyB0aGUgbmFtZSBpbiB0aGUgcmVsYXRlZCB0YWJsZSkKICAgICAgICAtIGBwcmltYXJ5LWtleWA6IEluZGljYXRlcyBpZiBpdCBpcyB0aGUgcHJpbWFyeSBrZXksIGlmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgYGZhbHNlYAogICAgICAgIC0gYGZvcmVpZ24tY29sdW1uYDogSW5kaWNhdGVzIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gaW4gdGhlIHJlbGF0ZWQgdGFibGUKICAgICAgICAtIGBmb3JlaWduLWNvbHVtbnNgOiBSZWxhdGlvbnNoaXAgb2YgY29sdW1ucyBpbiB0aGUgcmVsYXRlZCB0YWJsZSB0byB0aGUgY3VycmVudCB0YWJsZSB3aGVuIGRlYWxpbmcgd2l0aCBhIG1vZGVsIHdpdGggYSBjb21wb3NpdGUgaWRlbnRpZmllciAoZWFjaCBlbnRyeSBpcyBkZWZpbmVkIGFzIGtleTogdmFsdWUgd2hlcmUgdGhlIGtleSBpcyB0aGUgbmFtZSBpbiB0aGUgcmVsYXRlZCB0YWJsZSBhbmQgdGhlIHZhbHVlIGlzIHRoZSBuYW1lIGluIHRoZSBjdXJyZW50IHRhYmxlKQogICAgICAgIC0gYGludGVybWVkaWF0ZS10YWJsZWA6IE5hbWUgb2YgdGhlIGludGVybWVkaWF0ZSB0YWJsZSBpbiB0aG9zZSBhdHRyaWJ1dGVzIHRoYXQgcmVwcmVzZW50IGEgbWFueS10by1tYW55IHJlbGF0aW9uc2hpcAogICAgICAgIC0gYG93bmVyYDogSW5kaWNhdGVzIGlmIHRoaXMgcGFydCBvZiB0aGUgcmVsYXRpb25zaGlwIGlzIHRoZSBvd25lciwgbmVjZXNzYXJ5IGluIG9uZS10by1vbmUgb3Igb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwcwogICAgICAgIC0gYHNlcXVlbmNlYDogU2VjdGlvbiB3aGVyZSB0aGUgb3B0aW9uYWwgZ2VuZXJhdG9yIHRvIHVzZSBmb3IgdGhlIHByaW1hcnkga2V5IGNhbiBiZSBpbmRpY2F0ZWQKICAgICAgLSBgdmFsaWRhdGlvbnNgOiBTZWN0aW9uIHdoZXJlIGF0dHJpYnV0ZSB2YWxpZGF0aW9ucyBhcmUgZGVmaW5lZAogICAgICAgIC0gYHR5cGVgOiBUaGUgc3VwcG9ydGVkIHR5cGVzIGZvciB2YWxpZGF0aW9uIGFyZSBhcyBmb2xsb3dzOiBbTm90TnVsbCwgU2l6ZSwgTWluLCBNYXgsIEVtYWlsLCBOb3RFbXB0eSwgTm90QmxhbmssIFBvc2l0aXZlLCBQb3NpdGl2ZU9yWmVybywgTmVnYXRpdmUsIE5lZ2F0aXZlT3JaZXJvLCBQYXN0LCBQYXN0T3JQcmVzZW50LCBGdXR1cmUsIEZ1dHVyZU9yUHJlc2VudCwgUGF0dGVybiwgRGlnaXRzLCBEZWNpbWFsTWluLCBEZWNpbWFsTWF4XQogICAgICAgIC0gYG1pbmA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBTaXplYAogICAgICAgIC0gYG1heGA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBTaXplYAogICAgICAgIC0gYHJlZ2V4YDogVmFsdWUgdXNlZCB3aGVuIHRoZSBgdHlwZWAgZmllbGQgaXMgYFBhdHRlcm5gCiAgICAgICAgLSBgdmFsdWVgOiBWYWx1ZSB1c2VkIHdoZW4gdGhlIGB0eXBlYCBmaWVsZCBpcyBgTWluYCwgYE1heGAsIGBEZWNpbWFsTWluYCwgb3IgYERlY2ltYWxNYXhgCiAgICAgICAgLSBgaW50ZWdlcmA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBEaWdpdHNgLCByZXByZXNlbnRpbmcgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoZSBudW1iZXIKICAgICAgICAtIGBmcmFjdGlvbmA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBEaWdpdHNgLCByZXByZXNlbnRpbmcgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZGVjaW1hbCBwYXJ0IG9mIHRoZSBudW1iZXIKICAgICAgICAtIGBpbmNsdXNpdmVgOiBWYWx1ZSB1c2VkIHdoZW4gdGhlIGB0eXBlYCBmaWVsZCBpcyBgRGVjaW1hbE1pbmAgb3IgYERlY2ltYWxNYXhgCgojIyMgU2FtcGxlcwogICAgeC1hcGlnZW4tbW9kZWxzOgogICAgICBDb2xvcjoKICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgdGFibGU6IGNvbG9ycwogICAgICAgIGF0dHJpYnV0ZXM6CiAgICAgICAgICAtIG5hbWU6IGlkCiAgICAgICAgICAgIHR5cGU6IExvbmcKICAgICAgICAgICAgcmVsYXRpb25hbC1wZXJzaXN0ZW5jZToKICAgICAgICAgICAgICBjb2x1bW46IGlkCiAgICAgICAgICAgICAgcHJpbWFyeS1rZXk6IHRydWUKICAgICAgICAgICAgdmFsaWRhdGlvbnM6CiAgICAgICAgICAgICAgLSB0eXBlOiBOb3ROdWxsCiAgICAgICAgICAtIG5hbWU6IG5hbWUKICAgICAgICAgICAgdHlwZTogU3RyaW5nCiAgICAgICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICAgICAgY29sdW1uOiBuYW1lCiAgICAgICAgICAgIHZhbGlkYXRpb25zOgogICAgICAgICAgICAgIC0gdHlwZTogUGF0dGVybgogICAgICAgICAgICAgICAgcmVnZXg6IFtBLVpdKwogICAgICBDb21wb3NlZDoKICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgdGFibGU6IGNvbXBvc2VkCiAgICAgICAgYXR0cmlidXRyZXM6CiAgICAgICAgICAtIG5hbWU6IGlkCiAgICAgICAgICAgIHR5cGU6IENvbXBvc2VkSUQKICAgICAgICAgICAgdmFsaWRhdGlvbnM6CiAgICAgICAgICAgICAgIC0gdHlwZTogTm90TnVsbAogICAgICAgICAgICBhdHRyaWJ1dGVzOgogICAgICAgICAgICAgIC0gbmFtZTogb25lCiAgICAgICAgICAgICAgICB0eXBlOiBTdHJpbmcKICAgICAgICAgICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICAgICAgICAgIGNvbHVtbjogY19vbmUKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25zOgogICAgICAgICAgICAgICAgIC0gdHlwZTogTm90TnVsbAogICAgICAgICAgICAgIC0gbmFtZTogdHdvCiAgICAgICAgICAgICAgICB0eXBlOiBJbnRlZ2VyICAgICAgCiAgICAgICAgICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgICAgICAgICBjb2x1bW46IGNfdHdvICAgICAgCiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uczoKICAgICAgICAgICAgICAgICAtIHR5cGU6IE5vdE51bGwKCiMjIFBhdGggZXhwYW5zaW9uCgojIyMgU2NoZW1lCiAgICBwYXRoczoKICAgICAgPHBhdGg+OgogICAgICAgIC4uLgogICAgICAgIHgtYXBpZ2VuLWJpbmRpbmc6CiAgICAgICAgICBtb2RlbDogc3RyaW5nCgojIyMgRGVmaW5pdGlvbgotIGB4LWFwaWdlbi1iaW5kaW5nYDogU2VjdGlvbiB3aGVyZSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBlbmRwb2ludCBhbmQgdGhlIG1vZGVsIHdlIHdpbGwgdXNlIGlzIGRlZmluZWQKICAtIGBtb2RlbGA6IEluIHRoaXMgZmllbGQsIHdlIGNhbiBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBtb2RlbC4KICAtIGBjaGlsZC1tb2RlbGA6IEluIHRoaXMgZmllbGQsIHdlIHdpbGwgcHV0IHRoZSBuYW1lIG9mIHRoZSBjaGlsZCBtb2RlbC4gT25seSBuZWNlc3NhcnkgZm9yIHNlbGYtbWFuYWdlZCBlbmRwb2ludHMgb2YgcGFyZW50LWNoaWxkIHR5cGUgZW50aXRpZXMuCiAgLSBgY2hpbGQtcGFyZW50LXJlbGF0aW9uLXByb3BlcnR5YDogSW4gdGhpcyBmaWVsZCwgd2Ugd2lsbCBwdXQgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGluIHRoZSBjaGlsZCB0aGF0IHJlbGF0ZXMgdG8gdGhlIHBhcmVudC4gT25seSBuZWNlc3NhcnkgZm9yIHNlbGYtbWFuYWdlZCBlbmRwb2ludHMgb2YgcGFyZW50LWNoaWxkIHR5cGUgZW50aXRpZXMuCgojIyMgU2FtcGxlCiAgICBwYXRoczoKICAgICAgL2NvbG9yczoKICAgICAgICB4LWFwaWdlbi1iaW5kaW5nOgogICAgICAgICAgbW9kZWw6IENvbG9yCgojIyBFeHRlbnNpb24gb2YgdGhlIHNjaGVtYSBzZWN0aW9uIG9mIHRoZSByZXF1ZXN0Qm9keQoKIyMjIFNjaGVtZQoKICAgIHNjaGVtYXM6CiAgICAgIDxzY2hlbWE+OgogICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICBtb2RlbDogc3RyaW5nCiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIDxwcm9wX25hbWU+OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgICAgICBtb2RlbDogc3RyaW5nCiAgICAgICAgICAgIGZpZWxkOiBzdHJpbmcKICAgICAgICA8cHJvcF9uYW1lXzI+OgogICAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgICAgbW9kZWw6IHN0cmluZwoKIyMjIERlZmluaXRpb24KCi0gYHgtYXBpZ2VuLW1hcHBpbmdgOiBTZWN0aW9uIHdoZXJlIGFsbCBtYXBwaW5nIGRhdGEgYmV0d2VlbiByZXNvdXJjZXMgYW5kIG1vZGVscyBhcmUgZGVmaW5lZC4gRWFjaCBhdHRyaWJ1dGUgb2YgYW4gaW5wdXQgcmVzb3VyY2UsIGluY2x1ZGluZyB0aGUgaW5wdXQgcmVzb3VyY2UgaXRzZWxmLCBjYW4gaGF2ZSB0aGlzIHNlY3Rpb24gZGVmaW5lZC4gSWYgaXQgaXMgbm90IGRlZmluZWQsIGl0IGlzIGFzc3VtZWQgdG8gaGF2ZSB0aGUgZGVmYXVsdCB2YWx1ZXMgaW5kaWNhdGVkIGluIGVhY2ggc2VjdGlvbi4KICAtIGBtb2RlbGA6IE5hbWUgb2YgdGhlIG1vZGVsIHRoYXQgdGhlIHJlc291cmNlIG9yIGF0dHJpYnV0ZSByZXByZXNlbnRzLiBJZiBub3Qgc3BlY2lmaWVkIGF0IHRoZSByZXNvdXJjZSBsZXZlbCwgaXQgaXMgbm90IGNvbnNpZGVyZWQgYSBzdGFuZGFyZCBpbnB1dCByZXNvdXJjZS4KICAtIGBmaWVsZGA6IE5hbWUgb2YgdGhlIG1vZGVsIGF0dHJpYnV0ZSB0byB3aGljaCB0aGUgcmVzb3VyY2UgYXR0cmlidXRlIHdpbGwgYmUgbWFwcGVkLiBCeSBkZWZhdWx0LCBpZiBub3RoaW5nIGlzIHNwZWNpZmllZCwgaXQgd2lsbCBiZSBtYXBwZWQgdG8gYW4gYXR0cmlidXRlIHdpdGggdGhlIHNhbWUgbmFtZSBpZiBpdCBleGlzdHM7IG90aGVyd2lzZSwgaXQgd2lsbCBiZSBpZ25vcmVkLiBUaGVyZSBhcmUgdHdvIHNwZWNpZmljIGNhc2VzIGluIHdoaWNoIGl0IGlzIG1hbmRhdG9yeSB0byBkZWZpbmUgdGhpcyBmaWVsZDoKICAgIC0gV2hlbiB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGluIHRoZSByZXNvdXJjZSBhbmQgaW4gdGhlIG1vZGVsIGFyZSBkaWZmZXJlbnQ6CiAgICAgIGBgYHlhbWwKICAgICAgbm9tYnJlOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICBmaWVsZDogcHJpbWVyTm9tYnJlCiAgICAgIGBgYAogICAgLSBXaGVuIHRoZSBhdHRyaWJ1dGUgaW4gdGhlIHJlc291cmNlIGlzIGFuIGFiYnJldmlhdGlvbiBvZiB0aGUgaWRlbnRpZmllciBvZiBhIG5lc3RlZCBtb2RlbDoKICAgICAgYGBgeWFtbAogICAgICBjb2xvcjoKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgICAgbW9kZWw6IGNvbG9yCiAgICAgICAgICBmaWVsZDogdmFsb3JDcm9tYXRpY28uaWQKICAgICAgYGBgCgojIyBFeHBhbnNpb24gb2YgdGhlIHJlc3BvbnNlIG91dGxpbmUgc2VjdGlvbgoKIyMjIFByZWNvbmRpdGlvbnMKClRoZSBBcGlnZW4gZXh0ZW5zaW9uIGZvciBPcGVuQVBJIGZvcmNlcyB1cyB0byB0YWtlIGludG8gYWNjb3VudCBhIHNlcmllcyBvZiBjb25kaXRpb25zIHNvIHRoYXQgZW5kcG9pbnQgcmVzcG9uc2VzIGNvbXBseSB3aXRoIHRoZSBzdGFuZGFyZC4KCiMjIyMgSGF2ZSBhIGRlZmluZWQgc3RhbmRhcmQgcmVzcG9uc2UKCmBgYGB5YW1sCiAgc2NoZW1hczoKICAgIHN0YW5kYXJkX3Jlc3BvbnNlX3Jlc3VsdDoKICAgICAgcHJvcGVydGllczoKICAgICAgICByZXN1bHQ6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIHN0YXR1czoKICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgIGh0dHBfY29kZToKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIGVycm9yczoKICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL3N0YW5kYXJkX2Vycm9yJwogICAgICAgICAgICBpbmZvOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICB0cmFjZV9pZDoKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgbnVtX2VsZW1lbnRzOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAtIHN0YXR1cwogICAgICAgICAgICAtIGh0dHBfY29kZQogICAgICAgICAgICAtIHRyYWNlX2lkCiAgICBzdGFuZGFyZF9lcnJvcjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgY29kZToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBtZXNzYWdlOgogICAgICAgICAgdHlwZTogc3RyaW5nCmBgYGAKCiMjIyMgSGF2ZSBhIHNpbmdsZSBzdGFuZGFyZCBjb2xsZWN0aW9uIHJlc3BvbnNlIGRlZmluZWQgZm9yIGVhY2ggbW9kZWwKCmBgYGB5YW1sCiAgc2NoZW1hczoKICAgIHN0YW5kYXJkX3Jlc3BvbnNlX2NvbGxlY3Rpb25fPG1vZGVsPjoKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvc3RhbmRhcmRfcmVzcG9uc2VfcmVzdWx0IgogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBkYXRhOgogICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICA8bW9kZWxfcGx1cmFsPjoKICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzLzxtb2RlbF9yZXNvdXJjZT4iCmBgYGAKCiMjIyMgSGF2ZSBhIHNpbmdsZSBzaW1wbGUgc3RhbmRhcmQgcmVzcG9uc2UgZGVmaW5lZCBmb3IgZWFjaCBtb2RlbAoKYGBgYHlhbWwKICBzY2hlbWFzOgogICAgc3RhbmRhcmRfcmVzcG9uc2VfPG1vZGVsPjoKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvc3RhbmRhcmRfcmVzcG9uc2VfcmVzdWx0IgogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBkYXRhOgogICAgICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy88bW9kZWxfcmVzb3VyY2U+IgpgYGBgCgojIyMgU2NoZW1lCgogICAgc2NoZW1hczoKICAgICAgPHNjaGVtYT46CiAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgIG1vZGVsOiBzdHJpbmcKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgPHByb3BfbmFtZT46CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICAgIGZpZWxkOiBzdHJpbmcKCiMjIyBEZWZpbml0aW9uCi0gYHgtYXBpZ2VuLW1hcHBpbmdgOiBTZWN0aW9uIHdoZXJlIGFsbCBtYXBwaW5nIGRhdGEgYmV0d2VlbiByZXNvdXJjZXMgYW5kIG1vZGVscyBhcmUgZGVmaW5lZC4gRWFjaCBvdXRwdXQgcmVzb3VyY2UgbXVzdCBoYXZlIHRoaXMgc2VjdGlvbiBkZWZpbmVkLgogIC0gYG1vZGVsYDogTmFtZSBvZiB0aGUgbW9kZWwgdGhhdCB0aGUgcmVzb3VyY2UgcmVwcmVzZW50cy4KICAtIGBmaWVsZGA6IE5hbWUgb2YgdGhlIG1vZGVsIGF0dHJpYnV0ZSB0byB3aGljaCB0aGUgcmVzb3VyY2UgYXR0cmlidXRlIHdpbGwgYmUgbWFwcGVkLgoKIyMjIFNhbXBsZQoKICAgIGNvbG9yOgogICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgIG1vZGVsOiBDb2xvcgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBqc29uX2lkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgICAgZmllbGQ6IGlkCiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGZvcm1zOgogICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL2Zvcm1zIgoKCiMjIPCfkpsgU3BvbnNvcnMKPHAgYWxpZ249ImNlbnRlciI+Cgk8YSBocmVmPSJodHRwczovL2FwaWFkZGljdHMub3JnLyI+CiAgICAJPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy5jbG91ZGFwcGkubmV0L3dlYi9pbWFnZS80MjQ4L0xPR09DbG91ZGFwcGkyMDIwVmVyc2lvbmVzLTAxLnBuZyIgYWx0PSJjbG91ZGFwcGkiIHdpZHRoPSIxNTAiLz4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly93d3cuY29tdW5pZGFkLm1hZHJpZC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3N0eWxlcy9ibG9ja190ZWFzZXJfaW1hZ2UvcHVibGljL2ltZy9sb2dvcy1zaW1ib2xvcy9sb2dvX2NlbnRyYWRvX21kLnBuZz9pdG9rPTRyVFVobWNqIiBhbHQ9Im1kIiB3aWR0aD0iMTUwIi8+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXBpcXVhbGl0eS5pby93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wOS9jcm9wcGVkLWxvZ28tYXBpcXVhbGl0eS1wcmluY2lwYWwtMS0xNzB4NzAucG5nIiBoZWlnaHQgPSAiNzUiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMtd2ViLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzAzLzE3MTU1NzM2L2Nyb3BwZWQtQVBJQWRkaWN0cy1sb2dvdGlwb19yb2pvLnBuZyIgaGVpZ2h0ID0gIjc1Ij4KCTwvYT4KPC9wPg== readmeEtag: '"fb2db8426d5cceb1cf5c93e6b2f2867f72bef95f"' readmeLastModified: Mon, 02 Sep 2024 11:35:02 GMT repositoryId: 317847354 description: >- Apigen allow generate springboot archetipe using openapi file as mapping tool between the openapi definition and the database. created: '2020-12-02T11:56:38Z' updated: '2024-09-02T11:36:16Z' language: Java archived: false stars: 23 watchers: 3 forks: 1 owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 repoEtag: '"6afc7c347fb2a0f6eac9f3d05b5c907d794633ec15e74049853dc8a07d1e9def"' repoLastModified: Mon, 02 Sep 2024 11:36:16 GMT category: SDK foundInMaster: true oldLocations: - https://github.com/apiaddicts/apigen - source: openapi3 tags repository: https://github.com/shipengine/shipengine-openapi v3: true repositoryMetadata: base64Readme: >- IVtPcGVuQVBJIExvZ29dKGh0dHBzOi8vc2hpcGVuZ2luZS5naXRodWIuaW8vaW1nL29wZW5hcGktbG9nby5wbmcpIFNoaXBFbmdpbmXihKIgT3BlbkFQSSBEZWZpbml0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClRoaXMgcmVwbyBjb250YWlucyB0aGUgb2ZmaWNpYWwgW09wZW5BUEkgMy4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCkgZGVmaW5pdGlvbnMgZm9yIHRoZSBbU2hpcEVuZ2luZSBBUEldKGh0dHBzOi8vc2hpcGVuZ2luZS5jb20pLiAgWW91IGNhbiB1c2UgdGhlc2UgZGVmaW5pdGlvbnMgd2l0aCBhbnkgb2YgY291bnRsZXNzIFtPcGVuQVBJIHRvb2xzXShodHRwczovL29wZW5hcGkudG9vbHMvKSB0byBnZW5lcmF0ZSBzYW1wbGUgY29kZSwgdGVzdHMsIG1vY2sgc2VydmVycywgZXRjLgoKCldoaWNoIGZpbGUgdG8gdXNlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRlcGVuZGluZyBvbiB5b3VyIHByZWZlcmVuY2VzIGFuZC9vciB0b29saW5nLCB5b3UgbWF5IGNob29zZSB0byB1c2Ugb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBmaWxlczoKCnxQYXRoICAgICAgICAgICAgICAgIHxEZXNjcmlwdGlvbgp8Oi0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnxbYG9wZW5hcGkueWFtbGBdKG9wZW5hcGkueWFtbCkgICAgICAgIHxUaGUgZW50aXJlIFNoaXBFbmdpbmUgT3BlbkFQSSBkZWZpbml0aW9uLCBpbiBhIHNpbmdsZSBZQU1MIGZpbGUuICBUaGlzIGZpbGUgdXNlcyBbYCRyZWZgIHBvaW50ZXJzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCNyZWZlcmVuY2Utb2JqZWN0KSB0byByZWR1Y2UgZHVwbGljYXRpb24gYW5kIGtlZXAgdGhlIGZpbGUgc21hbGwgYW5kIGZhaXJseSBodW1hbi1yZWFkYWJsZS48YnI+PGJyPiBTb21lIFtPcGVuQVBJIHRvb2xzXShodHRwczovL29wZW5hcGkudG9vbHMvKSBkb24ndCBzdXBwb3J0IFlBTUwgb3IgZG9uJ3Qgc3VwcG9ydCBgJHJlZmAgcG9pbnRlcnMsIHNvIHlvdSBtYXkgbmVlZCB0byB1c2UgdGhlIFtgb3BlbmFwaS5qc29uYCBmaWxlXShvcGVuYXBpLmpzb24pIGluc3RlYWQuCnxbYG9wZW5hcGkuanNvbmBdKG9wZW5hcGkuanNvbikgICAgICAgIHxUaGUgZW50aXJlIFNoaXBFbmdpbmUgT3BlbkFQSSBkZWZpbml0aW9uLCBpbiBhIHNpbmdsZSBKU09OIGZpbGUuICBUaGlzIGZpbGUgKipkb2VzIG5vdCoqIGNvbnRhaW4gYW55IGAkcmVmYCBwb2ludGVycywgd2hpY2ggbWVhbnMgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgW09wZW5BUEkgdG9vbF0oaHR0cHM6Ly9vcGVuYXBpLnRvb2xzLykuCgoKT3RoZXIgQVBJIERlZmluaXRpb24gRm9ybWF0cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIyMgIVtSZWRvYyBMb2dvXShodHRwczovL3NoaXBlbmdpbmUuZ2l0aHViLmlvL2ltZy9yZWRvYy1sb2dvLXNtYWxsLnBuZykKVmlldyB0aGUgU2hpcEVuZ2luZSBBUEkgZGVmaW5pdGlvbiBbb25saW5lIGluIHlvdXIgYnJvd3Nlcl0oaHR0cHM6Ly9zaGlwZW5naW5lLmdpdGh1Yi5pby9zaGlwZW5naW5lLW9wZW5hcGkvKS4gVGhpcyB3ZWIgcGFnZSBpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgW09wZW5BUEkgZGVmaW5pdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL1NoaXBFbmdpbmUvc2hpcGVuZ2luZS1vcGVuYXBpKSB1c2luZyBbUmVEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKS4KCgojIyMgIVtQb3N0bWFuIExvZ29dKGh0dHBzOi8vc2hpcGVuZ2luZS5naXRodWIuaW8vaW1nL3Bvc3RtYW4tbG9nby1zbWFsbC5wbmcpIFBvc3RtYW4KVGhlIG9mZmljaWFsIFtQb3N0bWFuIHJlZmVyZW5jZSBjb2xsZWN0aW9uXShodHRwczovL2RvY3VtZW50ZXIuZ2V0cG9zdG1hbi5jb20vdmlldy8zMDUyMDQvU1c3VzVWNm8pIGZvciBTaGlwRW5naW5lLiAgSnVzdCBpbXBvcnQgaXQgaW50byBbUG9zdG1hbl0oaHR0cHM6Ly9nZXRwb3N0bWFuLmNvbSkgYW5kIGltbWVkaWF0ZWx5IGJlZ2luIGludGVyYWN0aW5nIHdpdGggdGhlIFNoaXBFbmdpbmUgQVBJLiAKCgpOZXcgdG8gU2hpcEVuZ2luZT8gRG93bmxvYWQgb3VyIFt3YWxrdGhyb3VnaCBjb2xsZWN0aW9uIGluc3RlYWRdKGh0dHBzOi8vZG9jdW1lbnRlci5nZXRwb3N0bWFuLmNvbS92aWV3LzMwNTIwNC9TVzdYYkE2VikuCgoKIyMjICFbSlNPTiBTY2hlbWEgTG9nb10oaHR0cHM6Ly9zaGlwZW5naW5lLmdpdGh1Yi5pby9pbWcvanNvbi1zY2hlbWEtbG9nby1zbWFsbC5wbmcpIEpTT04gU2NoZW1hCklmIHlvdSBuZWVkIHRvIHZhbGlkYXRlIEFQSSByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLCB0aGVuIHlvdSBtYXkgd2FudCB0byB1c2UgW291ciBKU09OIFNjaGVtYSBkZWZpbml0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL1NoaXBFbmdpbmUvc2hpcGVuZ2luZS1qc29uLXNjaGVtYSkuCg== readmeEtag: '"905646882c040ce5f7cbff386973219b5fc0b66b"' readmeLastModified: Tue, 13 Aug 2024 01:33:22 GMT repositoryId: 155577069 description: The official OpenAPI 3.0 definitions for ShipEngine™ created: '2018-10-31T15:06:25Z' updated: '2024-09-04T01:33:53Z' language: null archived: false stars: 22 watchers: 22 forks: 16 owner: ShipEngine logo: https://avatars.githubusercontent.com/u/42709242?v=4 repoEtag: '"b103fa1cec41a6c4996bf26f796ca034bf3f02a27dcdd7c60de6e7768c13dfda"' repoLastModified: Wed, 04 Sep 2024 01:33:53 GMT foundInMaster: true category: Parsers id: ff407dc64fade9a4275ec5d32f20aab5 - source: openapi3 tags repository: https://github.com/chukmunnlee/caddy-openapi v3: true repositoryMetadata: base64Readme: >- IyBjYWRkeS1vcGVuYXBpCgpUaGlzIG1pZGRsZXdhcmUgdmFsaWRhdGVzIEhUVFAgcmVxdWVzdCBhbmQgcmVzcG9uc2UgYWdhaW5zdCBhIE9wZW5BUEkgVjMgU3BlY2lmaWNhdGlvbiBmaWxlCgojIyBJbnN0YWxsYXRpb24KCkJ1aWxkIGNhZGR5IHdpdGggY2FkZHktb3BlbmFwaSwgcnVuIGBtYWtlYC4gVGhpcyB3aWxsIGJ1aWxkIGZvciBMaW51eCwgV2luZG93cyBhbmQgT1NYLgoKWW91IGNhbiBhbHNvIGJ1aWxkIHdpdGggYHhjYWRkeWAKYGBgCnhjYWRkeSBidWlsZCBcCiAgICAtLXdpdGggZ2l0aHViLmNvbS9jaHVrbXVubmxlZS9jYWRkeS1vcGVuYXBpCmBgYAoKVGVzdGVkIHdpdGggYGdvIHZlcnNpb24gZ28xLjIyLjMgbGludXgvYW1kNjRgIG9uIGBMaW51eCA8bmFtZT4gNi41LjAtMzUtZ2VuZXJpYyAjMzV+MjIuMDQuMS1VYnVudHUgU01QIFBSRUVNUFRfRFlOQU1JQyA8dGltZXN0YW1wPiB4ODZfNjQgeDg2XzY0IHg4Nl82NCBHTlUvTGludXhgCgojIyBVc2FnZQoKIyMjIENhZGR5ZmlsZQoKTG9hZCBgZXhhbXBsZXMvY3VzdG9tZXIvY3VzdG9tZXIueWFtbGAgZmlsZSB3aXRoIGRlZmF1bHRzCgpgYGAKOjgwODAgewogIHJvdXRlIC9hcGkgewogICAgb3BlbmFwaSAuL2V4YW1wbGVzL2N1c3RvbWVyL2N1c3RvbWVyLnlhbWwKICB9Cn0KYGBgCgpPbmUgd2l0aCBhbGwgdGhlIG9wdGlvbnMKCmBgYAo6ODA4MCB7CiAgcm91dGUgL2FwaSB7CiAgICBvcGVuYXBpIHsKICAgICAgc3BlYyAuL2V4YW1wbGVzL2N1c3RvbWVyL2N1c3RvbWVyLnlhbWwKICAgICAgZmFsbF90aHJvdWdoCiAgICAgIGxvZ19lcnJvcgogICAgfQogIH0KfQpgYGAKClJlcG9ydHMgYW55IGVycm9ycyBhcyBhIGB7b3BlbmFwaS5lcnJvcn1gIFtwbGFjZWhvbGRlcl0oaHR0cHM6Ly9jYWRkeXNlcnZlci5jb20vZG9jcy9jYWRkeWZpbGUvY29uY2VwdHMjcGxhY2Vob2xkZXJzKSB3aGljaCBjYW4gYmUgdXNlZCBpbiBvdGhlciBbZGlyZWN0aXZlc10oaHR0cHM6Ly9jYWRkeXNlcnZlci5jb20vZG9jcy9jYWRkeWZpbGUvZGlyZWN0aXZlcykgbGlrZSBbYHJlc3BvbmRgXShodHRwczovL2NhZGR5c2VydmVyLmNvbS9kb2NzL2NhZGR5ZmlsZS9kaXJlY3RpdmVzL3Jlc3BvbmQpCgp8IEZpZWxkcyAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgYHNwZWMgPG9hc19maWxlPmAgICAgICAgIHwgVGhlIE9wZW5BUEkzIFlBTUwgZmlsZS4gVGhpcyBhdHRyaWJ1dGUgaXMgYSBtYW5kYXRvcnkgfAp8IGBwb2xpY3lfYnVuZGxlIDxidW5kbGU+YCB8IFtPUEFdKGh0dHBzOi8vd3d3Lm9wZW5wb2xpY3lhZ2VudC5vcmcvKSBwb2xpY3kgYnVuZGxlIGNyZWF0ZWQgd2l0aCBgb3BhIGJ1aWxkYC4gfAp8IGBmYWxsX3Rocm91Z2hgICAgICAgICAgICB8IFRvZ2dsZXMgZmFsbCB0aHJvdWdoIHdoZW4gdGhlIHJlcXVlc3QgZG9lcyBkbyBtYXRjaCB0aGUgcHJvdmlkZWQgT3BlbkFQSSBzcGVjLiBEZWZhdWx0IGlzIGBmYWxzZWAgfAp8IGB2YWxpZGF0ZV9zZXJ2ZXJzYCAgICAgICB8IEVuYWJsZSBzZXJ2ZXIgdmFsaWRhdGlvbi4gQWNjZXB0cyBgdHJ1ZWAsIGBmYWxzZWAgb3IganVzdCB0aGUgZGlyZWN0aXZlIHdoaWNoIGVuYWJsZXMgdmFsaWRhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuIHwKfCBgbG9nX2Vycm9yYCAgICAgICAgICAgICAgfCBUb2dnbGVzIGVycm9yIGxvZ2dpbmcuIERlZmF1bHQgaXMgYGZhbHNlYCB8CnwgYGNoZWNrYCAgICAgICAgICAgICAgICAgIHwgRW5hYmxlIHZhbGlkYXRpb24gb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyczsgaW5jbHVkZSBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGRpcmVjdGl2ZXMgaW4gdGhlIGJvZHk6YHJlcV9wYXJhbXNgLCBgcmVxX2JvZHlgIGFuZCBgcmVzcF9ib2R5YC4gYHJlc3BfYm9keWAgb25seSB2YWxpZGF0ZXMgYGFwcGxpY2F0aW9uL2pzb25gIHBheWxvYWQuIE5vdGUgdGhhdCB2YWxpZGF0aW5nIHRoZSByZXF1ZXN0IGJvZHkgd2lsbCBpbXBsaWNpdGx5IHNldCBgcmVxX3BhcmFtc2AgfAoKRXJyb3JzIGFyZSByZXBvcnRlZCBpbiB0aGUgZm9sbG93aW5nIFtwbGFjZWhvbGRlcnNdKGh0dHBzOi8vY2FkZHlzZXJ2ZXIuY29tL2RvY3MvY2FkZHlmaWxlL2NvbmNlcHRzI3BsYWNlaG9sZGVycykuIFlvdSBjYW4gdXNlIHRoZW0gaW4gb3RoZXIgW2RpcmVjdGl2ZXNdKGh0dHBzOi8vY2FkZHlzZXJ2ZXIuY29tL2RvY3MvY2FkZHlmaWxlL2RpcmVjdGl2ZXMpIGxpa2UgW2ByZXNwb25kYF0oaHR0cHM6Ly9jYWRkeXNlcnZlci5jb20vZG9jcy9jYWRkeWZpbGUvZGlyZWN0aXZlcy9yZXNwb25kKQoKfCBQbGFjZWhvbGRlcnMgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IGBvcGVuYXBpLmVycm9yYCAgICAgICAgICB8IERlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciB8CnwgYG9wZW5hcGkuc3RhdHVzX2NvZGVgICAgIHwgU3VnZ2VzdGVkIHN0YXR1cyBjb2RlIHwKfCBgb3BlbmFwaS5yZXNwb25zZV9lcnJvcmAgfCBSZXNvbnNlIGVycm9yIHwKCiMjIEV4YW1wbGUKClRoZSBmb2xsb3dpbmcgZXhhbXBsZSB2YWxpZGF0ZXMgYWxsIHJlcXVlc3QsIGluY2x1ZGluZyBxdWVyeSBzdHJpbmcgYXMgd2VsbCBhcyBwYXlsb2FkcywgdG8gYGxvY2FsaG9zdDo4MDgwL2FwaWAgCmFnYWluc3QgdGhlIGAuL2V4YW1wbGVzL2N1c3RvbWVyL2N1c3RvbWVyLnlhbWxgIGZpbGUuICBBbnkgbm9uIGNvbXBsaWFudCByZXF1ZXN0IHdpbGwgYmUgbG9nZ2VkIHRvIENhZGR5J3MgY29uc29sZS4gClJlc3BvbmQgdG8gdGhlIGNsaWVudCB3aXRoIHRoZSBlcnJvciBge29wZW5hcGkuZXJyb3J9YC4KCmBgYAo6ODA4MCB7CgogIEBhcGkgewogICAgcGF0aCAvYXBpLyoKICB9CgogIHJldmVyc2VfcHJveHkgQGFwaSB7CiAgICB0byBsb2NhbGhvc3Q6MzAwMAogIH0KCiAgcm91dGUgQGFwaSB7CiAgICBvcGVuYXBpIHsKICAgICAgc3BlYyAuL2V4YW1wbGVzL2N1c3RvbWVyL2N1c3RvbWVyLnlhbWwgCiAgICAgIHBvbGljeV9idW5kbGUgLi9leGFtcGxlcy9wb2xpY3kvYnVuZGxlLnRhci5negogICAgICBjaGVjayB7CiAgICAgICAgcmVxX2JvZHkgCiAgICAgICAgcmVzcF9ib2R5IAogICAgICB9CiAgICAgIHZhbGlkYXRlX3NlcnZlcnMKICAgICAgbG9nX2Vycm9yIAogICAgfQogIH0KCiAgaGFuZGxlX2Vycm9ycyB7CiAgICByZXNwb25kIEBhcGkgIlJlc291cmNlOiB7aHR0cC5yZXF1ZXN0Lm9yaWdfdXJpfS4gRXJyb3I6IHtvcGVuYXBpLmVycm9yfSIge29wZW5hcGkuc3RhdHVzX2NvZGV9ICB7CiAgICAgIGNsb3NlCiAgICB9CiAgfQp9CmBgYAoKVHJ5IG91dCB0aGUgYGN1c3RvbWVyLnlhbWxgIEFQSSBieSBydW5uaW5nIHRoZSBhY2NvbXBhbnlpbmcgbm9kZSBhcHBsaWNhdGlvbi4KCiMjIFVzaW5nIE9wZW5Qb2xpY3lBZ2VudAoKWW91IGNhbiBlbmZvcmNlIHBvbGljaWVzIG9uIHJvdXRlcyBieSBhZGRpbmcgdGhlIGB4LXBvbGljeWAgZmllbGQgdG8gZWl0aGVyIHRoZSBbT3BlbkFQSTMgZG9jdW1lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNzY2hlbWEpIGxldmVsLCBvciB0aGUgW3BhdGggaXRlbV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3BhdGhJdGVtT2JqZWN0KSBsZXZlbCBvciBvciB0aGUgW29wZXJhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI29wZXJhdGlvbk9iamVjdCkgbGV2ZWwuIAoKSWYgYSBgeC1wb2xpY3lgIGZpZWxkIGlzIGFkZGVkIGF0IHRoZQotICpPcGVuQVBJMyBkb2N1bWVudCogdGhlbiB0aGUgcG9saWN5IHdpbGwgYmUgYXBwbGllZCB0byBhbGwgcGF0aAotICpQYXRoIGl0ZW0qIHRoZW4gdGhlIHBvbGljeSB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIG1ldGhvZHMgc3BlY2lmaWVkIGZvciB0aGF0IHBhdGggZWcgYFBPU1RgLCBgR0VUYCB0byBgL2FwaS92MS9jdXN0b21lcmAKLSAqT3BlcmF0aW9uKiB0aGVuIHRoZSBwb2xpY3kgd2lsbCBvbmx5IGJlIGFwcGxpZWQgdG8gdGhhdCBvcGVyYXRpb24gZWcuIGBHRVQvYXBpL3YxL2N1c3RvbWVyYApgeC1wb2xpY3lgIGF0dHJpYnV0ZSBuZXN0ZWQgZGVlcGVyIGludG8gdGhlIAoKVGhlICdkZWVwZXInIGEgYHgtcG9saWN5YCBmaWVsZCwgdGhlIGhpZ2hlciBpdHMgcHJlY2VkZW5jZS4gU2luY2UgYHBvbGljeV9idW5kbGVgIGlzIG9wdGlvbmFsLCBubyBgeC1wb2xpY3lgIHdpbGwgYmUgZXZhbHVhdGVkIGlmIG5vIGJ1bmRsZSBhcmUgbG9hZGVkLgoKQXNzdW1lIHRoZSBmb2xsb3dpbmcgT1BBIHBvbGljeSBmaWxlCmBgYApwYWNrYWdlIGF1dGh6CgpkZWZhdWx0IGFsbG93ID0gZmFsc2UKCmFsbG93IHsKICBsb3dlcihpbnB1dC5tZXRob2QpID0gImdldCIKICBhcnJheS5zbGljZShpbnB1dC5wYXRoLCAwLCAyKSA9IFsgImFwaSIsICJjdXN0b21lciIgXQogIHRvX251bWJlcihpbnB1dC5wYXRoUGFyYW1zLmN1c3RJZCkgPj0gMTAwCn0KYGBgCmhhcyBiZWVuIGJ1bmRsZWQgYXMgYGJ1bmRsZS50YXIuZ3pgLiBMb2FkIGl0IHdpdGggYHBvbGljeV9idW5kbGVgCgpUaGUgZm9sbG93aW5nIE9wZW5BUEkzIGZyYWdtZW50IHNob3cgaG93IHlvdSBjYW4gZXZhbHVhdGUgYGF1dGh6LmFsbG93YCBvbiBhbGwgYEdFVCAvYXBpL2N1c3RvbWVyL2AKYGBgCnBhdGhzOgogIC9hcGkvY3VzdG9tZXIve2N1c3RJZH06CiAgICBnZXQ6CiAgICAgIGRlc2NyaXB0aW9uOiBHZXQgY3VzdG9tZXIKICAgICAgb3BlcmF0aW9uSWQ6IGdldEN1c3RvbWVyCiAgICAgIHgtcG9saWN5OiBhdXRoei5hbGxvdwogICAgICBwYXJhbWV0ZXJzOgogICAgICAtIG5hbWU6IGN1c3RJZAogICAgICAgIGluOiBwYXRoCiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgdHlwZTogbnVtYmVyCmBgYAoKVGhlIEhUVFAgcmVxdWVzdCBhcmUgY29udmVydGVkIGludG8gYGlucHV0YCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyB0YWJsZQoKfCBGaWVsZHMgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IGBpbnB1dC5zY2hlbWVgICAgICAgICAgICB8IEhUVFAgb3IgSFRUUFMgfAp8IGBpbnB1dC5ob3N0YCAgICAgICAgICAgICB8IEhvc3QgYW5kIHBvcnQgbnVtYmVyIHwKfCBgaW5wdXQubWV0aG9kYCAgICAgICAgICAgfCBIVFRQIG1ldGhvZCAgfAp8IGBpbnB1dC5wYXRoYCAgICAgICAgICAgICB8IEFycmF5IG9mIHBhdGggZWxlbWVudHMgZWcuIGAvYXBpL2N1c3RvbWVyLzEyM2AgaXMgY29udmVydGVkIHRvIGBbICdhcGknLCAnY3VzdG9tZXInLCAnMTIzJyBdYCB8CnwgYGlucHV0LnJlbW90ZUFkZHJgICAgICAgIHwgSG9zdCBhbmQgcG9ydCBudW1iZXIgb2YgdGhlIGNsaWVudCB8CnwgYGlucHV0LnF1ZXJ5U3RyaW5nYCAgICAgIHwgSWYgYSBxdWVyeSBzdHJpbmcgaXMgcHJlc2VudCwgdGhlIHF1ZXJ5IHN0cmluZyB3aWxsIGJlIGRlc3RydWN0ZWQgaW50byBhIG1hcCB1bmRlciBgcXVlcnlTdHJpbmdgIHJvb3QuIEV4YW1wbGUgYD9vZmZzZXQ9MTAmbGltaXQ9MTBgIHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBmb2xsb3dpbmcga2V5czogYGlucHV0LnF1ZXJ5U3RyaW5nLm9mZnNldGAgYW5kIGBpbnB1dC5xdWVyeVN0cmluZy5saW1pdGAuIFF1ZXJ5IHBhcmFtZXRlcnMgd2l0aCBtdWx0aXBsZSB2YWx1ZSB3aWxsIGhhdmUgYW4gYXJyYXkgYXMgaXRzIHZhbHVlLiBgcXVlcnlTdHJpbmdgIHdpbGwgbm90IGJlIHByZXNlbnQgaWYgdGhlIHJlcXVlc3QgZG8gbm90IGNvbnRhaW4gYW55IHF1ZXJ5IHBhcmFtcyB8CnwgYGlucHV0LnBhdGhQYXJhbXNgICAgICAgIHwgTGlrZSBxdWVyeSBzdHJpbmcgYnV0IGEgbWFwIG9mIG1hdGNoZWQgcGF0aCBwYXJhbWV0ZXJzIGZyb20gdGhlIE9wZW5BUEkzIHNwZWMgd2hlcmUgcGFyYW1ldGVyIHR5cGUgaXMgYGluOiBwYXRoYC4gU2VlIGFib3ZlIGV4YW1wbGUgfAp8IGBpbnB1dC5oZWFkZXJzYCAgICAgICAgICB8IE1hcCBvZiBhbGwgdGhlIHJlcXVlc3QgaGVhZGVycyB8CnwgYGlucHV0LmJvZHlgICAgICAgICAgICAgIHwgQWNjZXNzIHRvIHRoZSByZXF1ZXN0J3MgYm9keS4gT25seSBzdXBwb3J0cyBgYXBwbGljYXRpb24vanNvbmAgY29udGVudCB0eXBlLiAqKk5vdCBpbXBsZW1lbnRlZCB5ZXQqKiB8CgpBc3N1bWUgYWxsIHZhbHVlcyBhcmUgc3RyaW5nCgpUaGlzIHBsdWdpbiBjdXJyZW50bHkgY2FuIG9ubHkgd29yayB3aXRoIHBvbGljaWVzL3J1bGVzIHRoYXQgcmV0dXJuIHRydWUgb3IgZmFsc2UuCg== readmeEtag: '"a0da3c3c39baa725bb64411929b5a519a0991567"' readmeLastModified: Wed, 05 Jun 2024 00:13:19 GMT repositoryId: 288679362 description: >- A Caddy module to validate HTTP request and response against a OpenAPI spec (V3) file created: '2020-08-19T08:42:14Z' updated: '2024-06-05T05:44:17Z' language: Go archived: false stars: 22 watchers: 3 forks: 7 owner: chukmunnlee logo: https://avatars.githubusercontent.com/u/5455699?v=4 license: Apache-2.0 repoEtag: '"8d3eea335217cdc604601b282b1c035a318b783fef6635b3d4af35ca16e06f72"' repoLastModified: Wed, 05 Jun 2024 05:44:17 GMT foundInMaster: true category: Parsers id: 522bdf41bdbd2bfe5d70f1b36466741d - source: openapi3 tags repository: https://github.com/microprofile-extensions/openapi-ext v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQXBpIEV4dGVuc2lvbnMKClshW2J1aWxkX3N0YXR1c10oaHR0cHM6Ly9hcHAudHJhdmlzLWNpLmNvbS9taWNyb3Byb2ZpbGUtZXh0ZW5zaW9ucy9vcGVuYXBpLWV4dC5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2FwcC50cmF2aXMtY2kuY29tL2dpdGh1Yi9taWNyb3Byb2ZpbGUtZXh0ZW5zaW9ucy9vcGVuYXBpLWV4dCkgWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUFwYWNoZSUyMDItYmx1ZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9wcm9maWxlLWV4dGVuc2lvbnMvb3BlbmFwaS1leHQvYmxvYi9tYWluL0xJQ0VOU0UpCl9fX19fX19fX19fCkhlcmUgeW91IHdpbGwgZmluZCBzb21lIGV4dHJhIHRvb2xzIGZvciBPcGVuIEFQSQoKKiBbT3BlbkFwaSBVSV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3JvcHJvZmlsZS1leHRlbnNpb25zL29wZW5hcGktZXh0L2Jsb2IvbWFpbi9vcGVuYXBpLXVpL1JFQURNRS5tZCkKCiMjIEV4YW1wbGVzCgpBbHNvIGxvb2sgYXQgdGhlIFtleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9wcm9maWxlLWV4dGVuc2lvbnMvb3BlbmFwaS1leHQvYmxvYi9tYWluL29wZW5hcGktZXhhbXBsZXMvYmFzaWMtZXhhbXBsZS9SRUFETUUubWQpIHRvIHNlZSBob3cgdGhpcyBpcyB1c2VkLgpbSGVsaWRvbiBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9wcm9maWxlLWV4dGVuc2lvbnMvb3BlbmFwaS1leHQvYmxvYi9tYWluL29wZW5hcGktZXhhbXBsZXMvaGVsaWRvbi1iYXNpYy1leGFtcGxlL1JFQURNRS5tZCkgZGVtb25zdHJhdGUgT3BlbkFwaSB1c2FnZSB3aXRoIEhlbGlkb24gTWljcm9Qcm9maWxlLgo= readmeEtag: '"310bf9c993b51c13e1dc837e3d10c7c41e32aba4"' readmeLastModified: Mon, 01 May 2023 10:37:19 GMT repositoryId: 149434703 description: Some extensions for MicroProfile OpenAPI created: '2018-09-19T10:39:23Z' updated: '2024-06-05T00:16:01Z' language: Java archived: false stars: 22 watchers: 2 forks: 13 owner: microprofile-extensions logo: https://avatars.githubusercontent.com/u/43223776?v=4 license: Apache-2.0 repoEtag: '"a6b2e53fe25206e5247f0d90ab8845f63ee281396aa7a8578228bf3f20090802"' repoLastModified: Wed, 05 Jun 2024 00:16:01 GMT foundInMaster: true category: - SDK - Parsers id: a6ea8a703b31ae1a40d92590739ef8a4 - source: openapi3 tags repository: https://github.com/mnf-group/openapimux v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJTXV4Ck9wZW5BUElNdXggaXMgYSAic2NoZW1hLWZpcnN0IiBIVFRQIHJvdXRlci4gSXQgdGFrZXMgb25lIG9yIG11bHRpcGxlCltPcGVuQVBJICAoU3dhZ2dlcildKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykgc2NoZW1hIGZpbGVzIGFzIGFuIGlucHV0CmFuZCB0aGVuIG1hdGNoZXMsIHZhbGlkYXRlcyBhbmQgaGFuZGxlcyBhbGwgaW5jb21pbmcgSFRUUCBiYXNlZCBvbiB0aGVzZSBzY2hlbWFzLgpVbmRlciB0aGUgaG9vZCwgaXQgdXNlcyBba2luLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkvKSBmb3IKT3BlbkFQSSBzY2hlbWEgcGFyc2luZyBhbmQgdmFsaWRhdGlvbi4KCiMgTW90aXZhdGlvbgpPcGVuQVBJIG9mZmVycyBhIGdyZWF0IHdheSBvZiBkb2N1bWVudGluZyBBUEkuIEhvd2V2ZXIsIG5vbmUgb2YKW2V4aXN0aW5nIGdvIHJvdXRlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmVsaW5vL2F3ZXNvbWUtZ28jcm91dGVycykgb2ZmZXJzCiJzY2hlbWEgZmlyc3QiIGFwcHJvYWNoLiBJbiBlYWNoIHJvdXRlciwgeW91IG5lZWQgdG8gaW5pdGlhbGl6ZSBhIGxpc3Qgb2YgYXZhaWxhYmxlCnJvdXRlcyBhbmQgdGhlbiBkbyB0aGUgcmVxdWVzdCB2YWxpZGF0aW9uIG1hbnVhbGx5LiBPcGVuQVBJTXV4IGZpbGxzIHRoaXMgZ2FwIGJ5CmFsbG93aW5nIHRvIGluaXRpYWxpemUgYSByb3V0ZXIgZGlyZWN0bHkgZnJvbSB0aGUgT3BlbkFQSSBzY2hlbWEgZGVmaW5pdGlvbiBmaWxlLgoKIyBGZWF0dXJlcwoqIFdvcmtzIHdpdGggYm90aCBPcGVuQVBJIDMuMCBhbmQgT3BlbkFQSSAyLjAgKGFrYSBTd2FnZ2VyKS4gQXMgd2VsbCBhcyBib3RoIGpzb24gYW5kIHlhbWwgc2NoZW1hcwoqIE11bHRpcGxlIE9wZW5BUEkgc2NoZW1hIGZpbGVzIGNhbiBiZSB1c2VkIGF0IHRoZSBzYW1lIHJvdXRlciB0byBzdXBwb3J0IEFQSSB2ZXJzaW9uaW5nCiogSW1wbGVtZW50cyBgaHR0cC5IYW5kbGVyYCBpbnRlcmZhY2UsIHNvIGl0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgc3RhbmRhcmQgaHR0cC5TZXJ2ZU11eAoqIFN1cHBvcnRzIGdsb2JhbCBsZXZlbCBgaHR0cC5IYW5kbGVyYCBtaWRkbGV3YXJlcywgc28gaXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoaXJkLXBhcnR5IG1pZGRsZXdhcmVzCiogU3VwcG9ydHMgY3VzdG9tIGVycm9yIGhhbmRsZXIgZm9yIG1vcmUgY29udHJvbAoKIyBSb3V0aW5nCiogYG9wZXJhdGlvbklkYCBhdHRyaWJ1dGUgb2YgYW4gT3BlbkFQSSBwYXRoIGlzIHVzZWQgdG8gcmVzb2x2ZSBpdCB0byBhbiBhcHByb3ByaWF0ZSBoYW5kbGVyCiogT3BlbkFQSU11eCBjYW4gZW5jYXBzdWxhdGUgb25lIG9yIG1vcmUgc3dhZ2dlciByb3V0ZXJzLiBFYWNoIHJvdXRlciBjb3VsZApiZSBjcmVhdGVkIGZyb20gYW4gT3BlbkFQSSBzY2hlbWEgZmlsZSBvciBkaXJlY3RseSBhcyBhIHN3YWdnZXIgb2JqZWN0CiogVG8gaGFuZGxlIG11bHRpcGxlIHZlcnNpb25zLCB1c2UgdGhlIGBzZXJ2ZXJzLnVybGAgYXR0cmlidXRlIGluIE9wZW5BUEkgc2NoZW1hLiBFZwogYGBgeWFtbAogc2VydmVyczoKICAtIHVybDogIi92MS4yIgpgYGAKKiBXaGVuIGZpbmRpbmcgYSBtYXRjaGluZyByb3V0ZSwgcm91dGVycyB3aXRoIGBzZXJ2ZXJzYCBhdHRyaWJ1dGUgc2V0IHRha2UgcHJpb3JpdHkKCiMgSW5zdGFsbApgZ28gZ2V0IC11IGdpdGh1Yi5jb20vTU5GR3JvdXAvb3BlbmFwaW11eGAKCiMgRnVsbCBFeGFtcGxlCkFzc3VtaW5nIGBvcGVuYXBpLnlhbWxgIGhhcyB0aGUgZm9sbG93aW5nIHNjaGVtYQpgYGB5YW1sCm9wZW5hcGk6IDMuMC4wCgpwYXRoczoKICAvZm9vOgogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogZ2V0Rm9vCmBgYAoKSXQgd2lsbCBjcmVhdGUgYW5kIHN0YXJ0IGEgc2VydmVyIG9uIDgwODAKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImZtdCIKCSJsb2ciCgkibmV0L2h0dHAiCgoJImdpdGh1Yi5jb20vZ28tY2hpL2NoaS9taWRkbGV3YXJlIgopCgp0eXBlIGZvb0hhbmRsZXIgc3RydWN0e30KCmZ1bmMgKGYgZm9vSGFuZGxlcikgU2VydmVIVFRQKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7CglmbXQuRnByaW50KHcsICJIZWxsbyIpCn0KCmZ1bmMgbWFpbigpIHsKCXIsIGVyciA6PSBOZXdSb3V0ZXIoIi4vb3BlbmFwaS55YW1sIikKCWlmIGVyciAhPSBuaWwgewoJCXBhbmljKGVycikKCX0KCglyLlVzZUhhbmRsZXJzKG1hcFtzdHJpbmddaHR0cC5IYW5kbGVyewoJCSJnZXRGb28iOiBmb29IYW5kbGVye30sCgl9KQoKCXIuVXNlTWlkZGxld2FyZSgKCQltaWRkbGV3YXJlLlJlY292ZXJlciwKCQltaWRkbGV3YXJlLlJlcXVlc3RJRCwKCQltaWRkbGV3YXJlLkRlZmF1bHRDb21wcmVzcywKCSkKCglyLkVycm9ySGFuZGxlciA9IGZ1bmModyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QsIGRhdGEgc3RyaW5nLCBjb2RlIGludCkgewoJCXcuV3JpdGVIZWFkZXIoY29kZSkKCQlpZiBjb2RlID09IGh0dHAuU3RhdHVzSW50ZXJuYWxTZXJ2ZXJFcnJvciB7CgkJCWZtdC5QcmludGxuKCJGYXRhbDoiLCBkYXRhKQoJCQl3LldyaXRlKFtdYnl0ZSgiT29wcyIpKQoJCX0gZWxzZSB7CgkJCXcuV3JpdGUoW11ieXRlKGRhdGEpKQoJCX0KCX0KCglsb2cuRmF0YWwoaHR0cC5MaXN0ZW5BbmRTZXJ2ZSgiOjgwODAiLCByKSkKfQpgYGAK readmeEtag: '"b2584cc991f2bbdf819484e0b0bb0dc68fe11eb3"' readmeLastModified: Mon, 11 Oct 2021 22:26:40 GMT repositoryId: 193996898 description: Open API router in go created: '2019-06-27T00:45:48Z' updated: '2023-08-14T14:37:21Z' language: Go archived: false stars: 22 watchers: 5 forks: 3 owner: mnf-group logo: https://avatars.githubusercontent.com/u/40686352?v=4 license: MIT repoEtag: '"d340084af88e2b03eb98ce18e0b36cd5292d802131d9810e7ffbff0d0b9f3587"' repoLastModified: Mon, 14 Aug 2023 14:37:21 GMT foundInMaster: true category: - Data Validators - Parsers id: c89db4b421338959f10cb6d1be0f8c7b - source: openapi3 tags repository: https://github.com/mockoon/mock-samples v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tIiBhbHQ9Im1vY2tvb24gbG9nbyI+CiAgICA8aW1nIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL2xvZ28tc3F1YXJlLW1vY2stYXBpLXNhbXBsZXMucG5nIj4KICA8L2E+CiAgPGJyPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vI2Rvd25sb2FkIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Eb3dubG9hZCUyMGFwcC1Hby1ncmVlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JCPTE5OTdjNiIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tLyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvV2Vic2l0ZS1Hby1ncmVlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JCPTE5OTdjNiIvPjwvYT4KICA8YSBocmVmPSJodHRwOi8vZWVwdXJsLmNvbS9kc2tCMlgiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL05ld3NsZXR0ZXItU3Vic2NyaWJlLWdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0dldE1vY2tvb24iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXJfQEdldE1vY2tvb24tZm9sbG93LWJsdWUuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQj0xZGExZjIiLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmdnL011dFJwc1k1Z0UiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtZ28tYmx1ZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JBPTZjODRkOSZjb2xvckI9MWRhMWYyIi8+PC9hPgogIDxicj4KICA8YnI+CiAgPGgxPk1vY2tvb24ncyBtb2NrIHNhbXBsZXM8L2gxPgo8L2Rpdj4KCldlbGNvbWUgdG8gTW9ja29vbidzIG1vY2sgQVBJIHNhbXBsZXMgcmVwb3NpdG9yeS4gWW91IHdpbGwgZmluZCBpbiB0aGUgW2BhcGlzYF0oL21vY2stYXBpcykgZm9sZGVyIG1hbnkgbW9jayBzYW1wbGVzIGZyb20gcG9wdWxhciBBUElzIChPcGVuIFdlYXRoZXIsIEdpcGh5LCBldGMuKS4gV2Ugd2lsbCBiZSBhZGRpbmcgbW9yZSBzYW1wbGVzIGZyb20gdGltZSB0byB0aW1lLgoKWW91IHdpbGwgZmluZCB0aGUgZnVsbCBsaXN0IG9mIHNhbXBsZSBtb2NrIEFQSXMgb24gb3VyIHdlYnNpdGUgdG9vOiBodHRwczovL21vY2tvb24uY29tL21vY2stc2FtcGxlcy8KCi0tLQoKIyMgSG93IHRvIG9wZW4gdGhlIHNhbXBsZXMgaW4gTW9ja29vbgoKVG8gb3BlbiB0aGUgc2FtcGxlcyBpbiBNb2Nrb29uIGFwcGxpY2F0aW9uLCB5b3UgaGF2ZSB0d28gcG9zc2liaWxpdGllczoKCjEuIERvd25sb2FkIHRoZSBzYW1wbGUgSlNPTiBmaWxlIGFuZCBjbGljayBvbiB0aGUgb3BlbiBidXR0b246CgogICAhW29wZW4gZW52aXJvbm1lbnRdKC9kb2NzL29wZW4tZW52aXJvbm1lbnQucG5nKQoKMS4gQ29weSB0aGUgc2FtcGxlIGZpbGUgY29udGVudCBmcm9tIHRoaXMgcmVwb3NpdG9yeSB0byB0aGUgY2xpcGJvYXJkIGFuZCBvcGVuIHRoZSBgRmlsZWAgbWVudSBhbmQgY2hvb3NlIGBOZXcgZW52aXJvbm1lbnQgZnJvbSBjbGlwYm9hcmRgOgoKICAgIVtuZXcgZW52aXJvbm1lbnQgZnJvbSBjbGlwYm9hcmRdKC9kb2NzL25ldy1lbnZpcm9ubWVudC1mcm9tLWNsaXBib2FyZC5wbmcpCgpJbiBib3RoIGNhc2VzLCBhIG5ldyBlbnZpcm9ubWVudCB3aWxsIGJlIGNyZWF0ZWQgYW5kIHJlYWR5IHRvIHVzZSBhZnRlciBydW5uaW5nIGl0IGJ5IHByZXNzaW5nIHRoZSBncmVlbiAicGxheSIgYnV0dG9uLgoKIVtSdW4gdGhlIG1vY2sgQVBJXSgvZG9jcy9ydW4tYXBpLnBuZykKCiMjIEhvdyB0byB1c2UgdGhlIHNhbXBsZXMgd2l0aCBNb2Nrb29uIENMSQoKVG8gcnVuIHRoZSBtb2NrIHNhbXBsZXMgd2l0aCB0aGUgW0NMSV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vY2xpKSB5b3UgY2FuIGRpcmFjdGx5IHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdXNpbmcgdGhlIHNhbXBsZSByYXcgZmlsZSBHaXRIdWIgVVJMOiAKCmBtb2Nrb29uLWNsaSBzdGFydCAtLWRhdGEgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vY2tvb24vbW9jay1zYW1wbGVzL21haW4vbW9jay1hcGlzL2RhdGEvZ2lwaHljb20uanNvbmAKCiMjIFN1cHBvcnQvZmVlZGJhY2sKCllvdSBjYW4gZGlzY3VzcyBhbGwgdGhpbmdzIHJlbGF0ZWQgdG8gTW9ja29vbiwgYW5kIGFzayBmb3IgaGVscCwgb24gdGhlIFtvZmZpY2lhbCBjb21tdW5pdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vZGlzY3Vzc2lvbnMpLiBJdCdzIGFsc28gYSBnb29kIHBsYWNlIHRvIGRpc2N1c3MgYnVncyBhbmQgZmVhdHVyZSByZXF1ZXN0cyBiZWZvcmUgb3BlbmluZyBhbiBpc3N1ZSBvbiB0aGlzIHJlcG9zaXRvcnkuIEZvciBtb3JlIGNoYXQtbGlrZSBkaXNjdXNzaW9ucywgeW91IGNhbiBhbHNvIGpvaW4gb3VyIFtEaXNjb3JkIHNlcnZlcl0oaHR0cHM6Ly9kaXNjb3JkLmdnL011dFJwc1k1Z0UpLgoKIyMgQ29udHJpYnV0aW5nCgpJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHRvIE1vY2tvb24gbW9jayBzYW1wbGVzLCBwbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIFtjb250cmlidXRpbmcgZ3VpZGVsaW5lc10oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9jay1zYW1wbGVzL2Jsb2IvbWFpbi9DT05UUklCVVRJTkcubWQpLgoKUGxlYXNlIGFsc28gdGFrZSBhIGxvb2sgYXQgb3VyIFtDb2RlIG9mIENvbmR1Y3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2stc2FtcGxlcy9ibG9iL21haW4vQ09ERV9PRl9DT05EVUNULm1kKS4KCiMjIERvY3VtZW50YXRpb24KCllvdSB3aWxsIGZpbmQgTW9ja29vbidzIFtkb2N1bWVudGF0aW9uXShodHRwczovL21vY2tvb24uY29tL2RvY3MvbGF0ZXN0KSBvbiB0aGUgb2ZmaWNpYWwgd2Vic2l0ZS4gSXQgY292ZXJzIE1vY2tvb24ncyBtb3N0IGNvbXBsZXggZmVhdHVyZXMuIEZlZWwgZnJlZSB0byBjb250cmlidXRlIG9yIGFzayBmb3IgbmV3IHRvcGljcyB0byBiZSBjb3ZlcmVkLgoKIyMgUm9hZG1hcAoKSWYgeW91IHdhbnQgdG8ga25vdyB3aGF0IHdpbGwgYmUgY29taW5nIGluIHRoZSBuZXh0IHJlbGVhc2UgeW91IGNhbiBjaGVjayB0aGUgW3Byb2plY3QgIlJvYWRtYXAiXShodHRwczovL2dpdGh1Yi5jb20vb3Jncy9tb2Nrb29uL3Byb2plY3RzLzkpLgoKTmV3IHJlbGVhc2VzIHdpbGwgYmUgYW5ub3VuY2VkIG9uIE1vY2tvb24ncyBbVHdpdHRlciBhY2NvdW50IEBHZXRNb2Nrb29uXShodHRwczovL3R3aXR0ZXIuY29tL0dldE1vY2tvb24pIGFuZCB0aHJvdWdoIHRoZSBuZXdzbGV0dGVyIHRvIHdoaWNoIHlvdSBjYW4gc3Vic2NyaWJlIFtoZXJlXShodHRwOi8vZWVwdXJsLmNvbS9kc2tCMlgpLgo= readmeEtag: '"e35c8d52343943599ef71218041c8fc3fc2caf98"' readmeLastModified: Fri, 28 Jun 2024 11:48:59 GMT repositoryId: 310602836 description: 'Start using Mockoon in no time with popular APIs mock samples. ' created: '2020-11-06T13:20:14Z' updated: '2024-08-14T00:55:58Z' language: TypeScript archived: false stars: 22 watchers: 3 forks: 21 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: MIT repoEtag: '"0f3e8f2bed4d19055dee00c650a22ba69eeaf42d17537288b3d45226f26703cb"' repoLastModified: Wed, 14 Aug 2024 00:55:58 GMT foundInMaster: true category: - Documentation - Testing id: af9630261912faa3f1476d3277e03d2a - source: openapi3 tags repository: https://github.com/simonireilly/compeller v3: true repositoryMetadata: base64Readme: >- IyBDb21wZWxsZXIKCkEgc3Ryb25nIHR5cGVzY3JpcHQgYmluZGluZyBmb3IgeW91ciBPcGVuQVBJIFNjaGVtYSB0aGF0IGRvZXNuJ3QgbmVlZCBnZW5lcmF0aW9uLCBhbmQgaXNuJ3QgcHJlc2NyaXB0aXZlLgoKIVtob3cgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBjb21wZWxsZXJdKC4vYXNzZXRzL3VzYWdlLmdpZikKCgotIFtDb21wZWxsZXJdKCNjb21wZWxsZXIpCiAgLSBb8J+aqCBBbHBoYSBzb2Z0d2FyZSDwn5qoXSgjLWFscGhhLXNvZnR3YXJlLSkKICAtIFtBYm91dF0oI2Fib3V0KQogIC0gW0dldCBzdGFydGVkXSgjZ2V0LXN0YXJ0ZWQpCiAgLSBb8J+bo++4jyBSb2FkIG1hcF0oI++4jy1yb2FkLW1hcCkKICAgIC0gW1VzYWdlXSgjdXNhZ2UpCiAgLSBbU2hvdWxkZXJzXSgjc2hvdWxkZXJzKQoKIyMg8J+aqCBBbHBoYSBzb2Z0d2FyZSDwn5qoCgpDb21wZWxsZXIgaXMgaW4gYWxwaGEsIHNvIGl0J3MgQVBJIG1pZ2h0IGNoYW5nZSwgbWF5YmUgeW91IGhhdmUgc29tZSB0aG91Z2h0cz8KCiMjIEFib3V0CgpDb21wZWxsZXIgdHJpZXMgdG8gaW5mZXIgeW91ciBPcGVuQVBJIHZhbGlkYXRpb25zIGFuZCByZXNwb25zZXMsIGZyb20gYSB0eXBlZCBPcGVuQVBJIHNwZWNpZmljYXRpb24uCgojIyBHZXQgc3RhcnRlZAoKWW91IGNhbiB1c2UgdGhlIENMSSB0byBzdGFydCBhIG5ldyBwcm9qZWN0LCBnZW5lcmF0aW5nIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KCmBgYGJhc2gKbnB4IGNvbXBlbGxlckBhbHBoYSBuZXcKYGBgCgojIyDwn5uj77iPIFJvYWQgbWFwCgotIFt4XSBTdXBwb3J0IGZvciByZXF1ZXN0IGJvZHkgdmFsaWRhdGlvbiB0byB0eXBlIGd1YXJkIChhanYpCi0gW3hdIFN1cHBvcnQgZm9yIGhlYWRlciByZXNwb25zZSB0eXBlcwotIFsgXSBTdXBwb3J0IGZvciByZXNwb25zZSB0eXBlIG1hcHBpbmcKLSBbIF0gU3VwcG9ydCBmb3IgcGF0aCB2YWxpZGF0aW9uCi0gWyBdIFN1cHBvcnQgaGVhZGVyIHZhbGlkYXRpb24KCiMjIyBVc2FnZQoKQ3JlYXRlIGEgU2NoZW1hIHNwZWNpZmljYXRpb24gZm9yIGFuIEFQSSBNb2RlbCBsaWtlOgoKYGBgdHMKLy8gLi9leGFtcGxlcy9zdGFuZGFsb25lL29wZW5hcGkvc2NoZW1hcy92ZXJzaW9uLnNjaGVtYS50cwoKaW1wb3J0IHsgRnJvbVNjaGVtYSB9IGZyb20gJ2pzb24tc2NoZW1hLXRvLXRzJzsKCmV4cG9ydCBjb25zdCBWZXJzaW9uU2NoZW1hID0gewogIHR5cGU6ICdvYmplY3QnLAogIHJlcXVpcmVkOiBbJ3ZlcnNpb24nXSwKICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsCiAgcHJvcGVydGllczogewogICAgdmVyc2lvbjogewogICAgICB0eXBlOiAnc3RyaW5nJywKICAgIH0sCiAgfSwKfSBhcyBjb25zdDsKCmV4cG9ydCB0eXBlIFZlcnNpb24gPSBGcm9tU2NoZW1hPHR5cGVvZiBWZXJzaW9uU2NoZW1hPjsKCmBgYAoKTmV4dCwgYmluZCB0aGUgbW9kZWwgaW50byBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gb2JqZWN0LgoKYGBgdHMKLy8gLi9leGFtcGxlcy9zdGFuZGFsb25lL29wZW5hcGkvc3BlYy50cwoKaW1wb3J0IHsgVmVyc2lvblNjaGVtYSB9IGZyb20gJy4vc2NoZW1hcy92ZXJzaW9uLnNjaGVtYSc7CgpleHBvcnQgY29uc3QgT3BlbkFQSVNwZWNpZmljYXRpb24gPSB7CiAgaW5mbzogewogICAgdGl0bGU6ICdOZXcgQVBJIGdlbmVyYXRlZCB3aXRoIGNvbXBlbGxlcicsCiAgICB2ZXJzaW9uOiAnMS4wLjAnLAogIH0sCiAgb3BlbmFwaTogJzMuMS4wJywKICBwYXRoczogewogICAgJ3YxL3ZlcnNpb24nOiB7CiAgICAgIGdldDogewogICAgICAgIHJlc3BvbnNlczogewogICAgICAgICAgJzIwMCc6IHsKICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZXQgdGhlIGN1cnJlbnQgQVBJIHZlcnNpb24nLAogICAgICAgICAgICBjb250ZW50OiB7CiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7CiAgICAgICAgICAgICAgICBzY2hlbWE6IFZlcnNpb25TY2hlbWEsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgfSwKfTsKCmBgYAoKV2l0aCBjb21wZWxsZXIgeW91IGNhbiBjb21waWxlIHRoaXMgaW50byBhIHR5cGVkIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGhhbmRsZXIgbGlrZToKCmBgYHRzCmltcG9ydCB7IE9wZW5BUElTcGVjaWZpY2F0aW9uIH0gZnJvbSAnLi9zcGVjJzsKCi8vIFRoZSBhcGkgaXMgaW5mZXJyZWQsIGFuZCB2YWxpZGF0aW9ucyBhcmUgZ2VuZXJhdGVkCmNvbnN0IGFwaSA9IGNvbXBlbGxlcihPcGVuQVBJU3BlY2lmaWNhdGlvbik7CgovLyBUaGVzZSByb3V0ZXMgYW5kIG1ldGhvZHMgYXJlIGVuZm9yY2VkCmNvbnN0IHsgcmVzcG9uc2UgfSA9IGFwaSgnL3YxL3ZlcnNpb24nLCAnZ2V0Jyk7CgovLyBUaGUgcmVzcG9uc2UgY29kZSBhbmQgYm9keSBzY2hlbWEgYXJlIGJvdW5kCmNvbnN0IHJlc3AgPSByZXNwb25zZSgnMjAwJywgeyBuYW1lOiAnVHlwZS1zYWZlIHJlcGx5JyB9KTsKYGBgCgpTZWUgWy4vZXhhbXBsZXNdKC4vZXhhbXBsZXMpCgojIyBTaG91bGRlcnMKCkNvbXBlbGwgaXMgYnVpbHQgb24gdG9wIG9mIHNvbWUgZ3JlYXQgbGlicmFyaWVzLCBhdCBpdCdzIGNvcmUgaXQgcmVsaWVzIG9uOgoKLSBbb3BlbmFwaTMtdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhZGV2cHJvL29wZW5hcGkzLXRzKQotIFtqc29uLXNjaGVtYS10by10c10oaHR0cHM6Ly9naXRodWIuY29tL1Rob21hc0FyaWJhcnQvanNvbi1zY2hlbWEtdG8tdHMpCgpJdCBhbHNvIGxheWVycyBvbiByZXF1ZXN0IGFuZCByZXNwb25zZSB2YWxpZGF0aW9uIHBvd2VyZWQgYnk6CgotIFthanZdKGh0dHBzOi8vZ2l0aHViLmNvbS9hanYtdmFsaWRhdG9yL2FqdikKCkknbSBncmF0ZWZ1bCBmb3IgdGhlc2UgbGlicmFyaWVzCg== readmeEtag: '"0c64ee60e30f8b960c24d00b92244b4f9157b5ab"' readmeLastModified: Mon, 31 Jan 2022 21:08:10 GMT repositoryId: 452000471 description: >- A strong typescript binding for your OpenAPI Schema that doesn't need generation and is not prescriptive in coding style created: '2022-01-25T18:44:08Z' updated: '2024-08-13T03:40:21Z' language: TypeScript archived: false stars: 22 watchers: 5 forks: 1 owner: simonireilly logo: https://avatars.githubusercontent.com/u/30017294?v=4 license: MIT repoEtag: '"82d149d9da73ceb25ce4982b685d792e6691a11ebaa74e229872f0a919fa9cb3"' repoLastModified: Tue, 13 Aug 2024 03:40:21 GMT foundInMaster: true category: Parsers id: c2573db36bc9c133fcb66e2714f9a37c - source: openapi3 tags repository: https://github.com/zweidenker/openapi v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy96d2VpZGVua2VyL09wZW5BUEkuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvendlaWRlbmtlci9PcGVuQVBJKQo= readmeEtag: '"79163d291a392028dcd86abd2b0143eb4f734b1b"' readmeLastModified: Thu, 21 Jan 2021 16:35:59 GMT repositoryId: 118589193 description: A pharo implementation of OpenAPI 3.0.1 created: '2018-01-23T09:38:10Z' updated: '2023-08-13T00:57:19Z' language: Smalltalk archived: false stars: 22 watchers: 7 forks: 5 owner: zweidenker logo: https://avatars.githubusercontent.com/u/20300491?v=4 license: MIT repoEtag: '"ef84ddd0910084144d73f7a431ee50c218785711b57cde27047fae2cf21d8eda"' repoLastModified: Sun, 13 Aug 2023 00:57:19 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 1dbc4782ef0fd6319683bd896d58b471 - source: openapi3 tags repository: https://github.com/cdimascio/kotlin-spring-mvc-template v3: true repositoryMetadata: base64Readme: >- IyBrb3RsaW4tc3ByaW5nLW12Yy10ZW1wbGF0ZQoKU3ByaW5nIDUgTVZDIHRlbXBsYXRlIHdpdGggKktvdGxpbiogYW5kICpPcGVuQVBJIDMuMCouIChBbHNvIFN1cHBvcnRzICpTd2FnZ2VyIDIuMCopCgpGZWF0dXJlcyBhdXRvbWF0aWMgcmVxdWVzdC9yZXNwb25zZSB2YWxpZGF0aW9uIGFuZCBpbnRlcmFjdGl2ZSBBUEkgZG9jCgo8cCBhbGlnbj0ibGVmdCI+CjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY2RpbWFzY2lvL2tvdGxpbi1zcHJpbmctbXZjLXRlbXBsYXRlL21hc3Rlci9hc3NldHMvc3ByaW5nLW12Yy1vcGVuYXBpLnBuZyIgd2lkdGg9IjYwMCIvPgo8L3A+CgoqKkZlYXR1cmVzKio6CgotIEF1dG9tYXRpYyByZXF1ZXN0IGFuZCByZXNwb25zZSB2YWxpZGF0aW9uIHZpYSBhdGxhc3NpYW4gW09wZW5BcGkgMy4wXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2Fib3V0LykKLSBBdXRvbWF0aWMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uIHZpYSBbU3dhZ2dlciBVSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Rvb2xzL3N3YWdnZXItdWkvKQotIDEyIGZhY3RvciBjb21wbGlhbnQgY29uZmlndXJhdGlvbiB2aWEgW2phdmEtZG90ZW52XShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2phdmEtZG90ZW52KQotIEF1dG9tYXRpYyBjb2RlIGZvcm1hdHRpbmcgYW5kIGxpbnRpbmcgdmlhIFtrdGxpbnRdKGh0dHBzOi8va3RsaW50LmdpdGh1Yi5pbykKLSBGdWxseSBvcGVyYXRpb25hbCBzYW1wbGUgUkVTVCBBUEkKLSBBUEkgaW50ZWdyYXRpb24gdGVzdHMgd2l0aCBbVW5pcmVzdF0oaHR0cDovL3VuaXJlc3QuaW8vamF2YS5odG1sKSBSRVNUIGNsaWVudAotIFNpbXBsZSBIVFRQIGVycm9ycyB2aWEgW2phcGktZXJyb3JzXShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2phcGktZXJyb3JzKQotIERvY2tlcmZpbGUKCiMjIFNldHVwCgotIENsb25lIHRoaXMgcmVwbwotIGNvcHkgYC5lbnYudGVtcGxhdGVgIHRvIGBzcmMvbWFpbi9yZXNvdXJjZXMvLmVudmAKCgoKIyMgQnVpbGQKCmBgYHNoZWxsCi4vZ3JhZGxldyBidWlsZApgYGAKCiMjIEZvcm1hdC9MaW50IAoKYGBgc2hlbGwKLi9ncmFkbGV3IGxpbnRLb3RsaW4gIyBzZWUgbGludCBlcnJvcnMKLi9ncmFkbGV3IGZvcm1hdEtvdGxpbiAjIGF0dGVtcHQgdG8gYXV0b21hdGljYWxseSBmaXggbGludCBlcnJvcnMKYGBgCgojIyBSdW4KYGBgc2hlbGwKLi9ncmFkbGV3IGJvb3RSdW4KYGBgCgojIyBUZXN0CgpgYGBzaGVsbAouL2dyYWRsZXcgdGVzdApgYGAKCiMjIFBhY2thZ2UgLyBEaXN0CgpgYGBzaGVsbAouL2dyYWRsZXcgamFyCgojIFJ1biB0aGUgZGlzdApqYXZhIC1qYXIgLi9idWlsZC9saWJzL2V4YW1wbGUtc2VydmljZS0xLjAuMC5qYXIgIApgYGAKCiMjIFRyeSBJdAoKTmF2aWdhdGUgdG8gW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGlfZXhwbG9yZXIvaW5kZXguaHRtbF0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaV9leHBsb3Jlci9pbmRleC5odG1sKQoKIyMgVmFsaWRhdGUgRXhhbXBsZQoKCmBgYHNoZWxsCmN1cmwgLVggUE9TVCAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3VzZXJzIiAtSCAiYWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtZCAie1wibWVcIjpcImNhcm1pbmVcIn0iCgp7CiAgImVycm9yIjogIiBPYmplY3QgaW5zdGFuY2UgaGFzIHByb3BlcnRpZXMgd2hpY2ggYXJlIG5vdCBhbGxvd2VkIGJ5IHRoZSBzY2hlbWE6IFtcIm1lXCJdIiwKICAiY29kZSI6IDQwMAp9CmBgYAojIyBJbnRlcmFjdGl2ZSBBcGkgZG9jCgohW10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NkaW1hc2Npby9rb3RsaW4tc3ByaW5nLW12Yy10ZW1wbGF0ZS9tYXN0ZXIvYXNzZXRzL3N3YWdnZXItdWkucG5nKQoKIyMgTGljZW5zZQpBcGFjaGUgMi4wCg== readmeEtag: '"6f5c449cd0dd9eb5a7267b2983326b53e82bd1a1"' readmeLastModified: Fri, 15 Feb 2019 02:10:19 GMT repositoryId: 151765325 description: >- 12-factor compliant Spring MVC Kotlin template. Features automatic request/response validation and interactive API doc created: '2018-10-05T18:57:20Z' updated: '2024-04-16T13:27:40Z' language: Kotlin archived: false stars: 22 watchers: 3 forks: 8 owner: cdimascio logo: https://avatars.githubusercontent.com/u/4706618?v=4 repoEtag: '"d89893774db5c81407b8970a396028534d952d5abc8f944192e54070d9fb0090"' repoLastModified: Tue, 16 Apr 2024 13:27:40 GMT foundInMaster: true category: - Data Validators - Server Implementations id: f8dfb37ecbaed15a1f658a4017e9e785 - source: openapi3 tags repository: https://github.com/stackql/stackql-provider-registry v3: true id: ab1223f46183efa011bd7c836c344820 repositoryMetadata: base64Readme: >- PCEtLSBsYW5ndWFnZTogbGFuZy1ub25lIC0tPgpbIVtHaXRIdWIgQWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1wcm92aWRlci1yZWdpc3RyeS9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsLXByb3ZpZGVyLXJlZ2lzdHJ5L2FjdGlvbnMvd29ya2Zsb3dzL21haW4ueW1sKQohW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2Uvc3RhY2txbC9zdGFja3FsKQoKIyBTdGFja1FMIFByb3ZpZGVyIFJlZ2lzdHJ5CgpBIHJlcG9zaXRvcnkgb2YgYHByb3ZpZGVyYCBpbnRlcmZhY2UgZG9jdW1lbnRzIHN1cHBvcnRpbmcgW3N0YWNrcWxdKGh0dHBzOi8vc3RhY2txbC5pby8pIChbc3RhY2txbCBHaXRIdWIgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbCkpLiAKCiMjIENvbnRleHQKCgpTdGFja1FMIHByb3ZpZGVyIGludGVyZmFjZSBkb2N1bWVudHMgaW5mb3JtIHRoZSBzdGFja3FsIGFwcGxpY2F0aW9uIG9uIGhvdyB0byBpbnRlcmFjdCB3aXRoIGEgZ2l2ZW4gcHJvdmlkZXIgKGxpa2UgYGF3c2AsIGBhenVyZWAsIGBnb29nbGVgLCBldGMpLCBpbmNsdWRpbmcgd2hhdCBtZXRob2RzIGFyZSBhdmFpbGFibGUgaW4gdGhlIHByb3ZpZGVyIGFuZCBob3cgdG8gaW52b2tlIHRoZXNlIHVzaW5nIFNRTCBzZW1hbnRpY3MuICBQcm92aWRlciBpbnRlcmZhY2UgZG9jdW1lbnRzIGFyZSBgeWFtbGAgZm9ybWF0dGVkLCBPcGVuQVBJIHNwZWNpZmljYXRpb25zIHdpdGggZXh0ZW5zaW9ucy4gIAoKVGhlIGRvY3VtZW50cyBhcmUgdmVyc2lvbmVkIHBlciBwcm92aWRlciBpbiB0aGlzIHJlcG9zaXRvcnksIGFuZCBidWlsdCBhcyBzaWduZWQgYW5kIGNvbXByZXNzZWQgYXMgcGFja2FnZWQgYXJ0aWZhY3RzLiAgVGhlIHBhY2thZ2VkIGFydGlmYWN0cyBhcmUgcmVnaXN0ZXJlZCBhbmQgcHVibGlzaGVkIHRvIHRoZSBTdGFja1FMIFByb3ZpZGVyIFJlZ2lzdHJ5IEFydGlmYWN0IFJlcG9zaXRvcnkgaW4gQVdTIFMzLiAgVGhlIHByb3ZpZGVyIHJlZ2lzdHJ5IEFQSSBpcyBhIFtEZW5vIERlcGxveV0oaHR0cHM6Ly9kZW5vLmNvbS9kZXBsb3kpIGFwcGxpY2F0aW9uIHRoYXQgc2VydmVzIHRoZSBwcm92aWRlciBpbnRlcmZhY2UgZG9jdW1lbnRzIHRvIHRoZSBzdGFja3FsIGFwcGxpY2F0aW9uIHVzaW5nIHRoZSBgUkVHSVNUUlkgTElTVGAgYW5kIGBSRUdJU1RSWSBQVUxMYCBjb21tYW5kcy4gIAoKVGhlIGZvbGxvd2luZyBkaWFncmFtIHNob3dzIHRoZSBjb250ZXh0IG9mIHRoZSBwcm92aWRlciByZWdpc3RyeTogIAoKYGBgbWVybWFpZApDNENvbnRleHQKICAgIFN5c3RlbV9FeHQoZ2l0aHViX3JlcG8sICJzdGFja3FsLXByb3ZpZGVyLXJlZ2lzdHJ5IiwgIkdpdEh1YiBSZXBvc2l0b3J5IikKICAgIFN5c3RlbV9FeHQoZ2l0aHViX2FjdGlvbnMsICJCdWlsZCBhbmQgRGVwbG95IiwgIkdpdEh1YiBBY3Rpb25zIikKICAgIFN5c3RlbURiKGFydGlmYWN0X3JlcG8sICJBcnRpZmFjdCBSZXBvc2l0b3J5IiwgIkFXUyBTMyIpCiAgICBTeXN0ZW0oZGVub19yZWdpc3RyeSwgIlByb3ZpZGVyIFJlZ2lzdHJ5IEFQSSIsICJEZW5vIERlcGxveSIpCiAgICBTeXN0ZW0oc3RhY2txbCwgIlN0YWNrUUwgQXBwbGljYXRpb24iLCAic3RhY2txbCIpCgogICAgUmVsKGdpdGh1Yl9yZXBvLCBnaXRodWJfYWN0aW9ucywgInRyaWdnZXJzLi4uIikKICAgIFJlbChnaXRodWJfYWN0aW9ucywgYXJ0aWZhY3RfcmVwbywgInJlZ2lzdGVycyBhbmQgcHVzaGVzIHRvLi4uIiwgInNpZ25lZCB0Z3ogcGFja2FnZSIpCiAgICBSZWwoZ2l0aHViX2FjdGlvbnMsIGRlbm9fcmVnaXN0cnksICJwdXNoZXMgdG8uLi4iLCAic2lnbmVkIHRneiBwYWNrYWdlIikKICAgIFJlbChzdGFja3FsLCBkZW5vX3JlZ2lzdHJ5LCAibGlzdCBhbmQgcHVsbHMgcmVnaXN0cnkgZG9jcyBmcm9tLi4uIiwgIlJFR0lTVFJZIExJU1QgfCBSRUdJU1RSWSBQVUxMIikKICAgIFVwZGF0ZUxheW91dENvbmZpZygkYzRTaGFwZUluUm93PSIzIiwgJGM0Qm91bmRhcnlJblJvdz0iMCIpCiAgICBVcGRhdGVSZWxTdHlsZShnaXRodWJfcmVwbywgZ2l0aHViX2FjdGlvbnMsICRvZmZzZXRZPSIxMCIsICRvZmZzZXRYPSItMjAiKQogICAgVXBkYXRlUmVsU3R5bGUoZ2l0aHViX2FjdGlvbnMsIGFydGlmYWN0X3JlcG8sICRvZmZzZXRZPSI0NCIsICRvZmZzZXRYPSItNTUiKQogICAgVXBkYXRlUmVsU3R5bGUoZ2l0aHViX2FjdGlvbnMsIGRlbm9fcmVnaXN0cnksICRvZmZzZXRZPSItMTgiLCAkb2Zmc2V0WD0iLTEzMCIpCiAgICBVcGRhdGVSZWxTdHlsZShzdGFja3FsLCBkZW5vX3JlZ2lzdHJ5LCAkb2Zmc2V0WT0iNDAiLCAkb2Zmc2V0WD0iLTQwIikKYGBgCgpUaGUgcHVibGljIFN0YWNrUUwgUHJvdmlkZXIgUmVnaXN0cnkgaXMgZGlzdHJpYnV0ZWQgdmlhIFtEZW5vIERlcGxveV0oaHR0cHM6Ly9kZW5vLmNvbS9kZXBsb3kpLCB1c2luZyB0aGUgZm9sbG93aW5nIGVuZHBvaW50czogIAoKfCBFbmRwb2ludCB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0gfAp8IFtyZWdpc3RyeS5zdGFja3FsLmFwcF0oaHR0cHM6Ly9yZWdpc3RyeS5zdGFja3FsLmFwcC9waW5nKSB8IFByb2R1Y3Rpb24gcmVnaXN0cnkgKGJ1aWx0IGZyb20gYG1haW5gKSB8CnwgW3JlZ2lzdHJ5LWRldi5zdGFja3FsLmFwcF0oaHR0cHM6Ly9yZWdpc3RyeS5zdGFja3FsLmFwcC9waW5nKSB8IERldmVsb3BtZW50IHJlZ2lzdHJ5IChidWlsdCBmcm9tIGBkZXZlbG9wYCkgfAoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2Ugc2VlIFsuZ2l0aHViL0NPTlRSSUJVVElORy5tZF0oLy5naXRodWIvQ09OVFJJQlVUSU5HLm1kKS4KCiMjIERldmVsb3BpbmcgYSBQcm92aWRlcgoKU3RhY2tRTCBwcm92aWRlcnMgYXJlIGdlbmVyYXRlZCBmcm9tIHByb3ZpZGVyIE9wZW5BUEkgb3IgU3dhZ2dlciBzcGVjaWZpY2F0aW9ucyAoZWl0aGVyIHN1cHBsaWVkIGJ5IHRoZSBwcm92aWRlciBvciBjb25zdGl0dXRlZCB0aHJvdWdoIG90aGVyIHNjcmlwdHMgLSBmb3IgZXhhbXBsZSwgW2dvb2dsZS1kaXNjb3ZlcnktdG8tb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvZ29vZ2xlLWRpc2NvdmVyeS10by1vcGVuYXBpKSBvciBbc3RhY2txbC1henVyZS1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsLWF6dXJlLW9wZW5hcGkpKS4gIAoKT25jZSB5b3UgaGF2ZSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24sIHlvdSBjYW4gdXNlIHRoZSBbb3BlbmFwaXNhdXJ1c10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvb3BlbmFwaXNhdXJ1cykgdXRpbGl0eSBwcm9qZWN0IHRvIGdlbmVyYXRlIGEgU3RhY2tRTCBwcm92aWRlciBkb2N1bWVudC4gIAoKIyMgQnVpbGQgYW5kIERlcGxveW1lbnQgV29ya2Zsb3cKClRoZSBwcm92aWRlciByZWdpc3RyeSBpcyBidWlsdCBhbmQgZGVwbG95ZWQgdXNpbmcgR2l0SHViIEFjdGlvbnMuICBQcm92aWRlciBkb2N1bWVudHMgYXJlIHZhbGlkYXRlZCBhbmQgdGVzdGVkIGluIHdvcmtmbG93IHN0ZXBzIGFuZCB0aGVuIHBhY2thZ2VkIGFuZCBzdG9yZWQgaW4gdGhlIGFydGlmYWN0IHJlcG9zaXRvcnkuICBUaGUgbW9zdCByZWNlbnQgcGFja2FnZWQgdmVyc2lvbnMgYXJlIHB1Ymxpc2hlZCB0byB0aGUgcmVnaXN0cnkgQVBJIChhIFtEZW5vIERlcGxveV0oaHR0cHM6Ly9kZW5vLmNvbS9kZXBsb3kpIGFwcGxpY2F0aW9uKSwgd2hlcmUgdGhleSBhcmUgYXZhaWxhYmxlIGZyb20gdGhlIGBzdGFja3FsYCBhcHBsaWNhdGlvbiB1c2luZyBgUkVHSVNUUlkgTElTVGAgb3IgYFJFR0lTVFJZIFBVTExgLiAgU2VlIFtkb2NzL2J1aWxkLWFuZC1kZXBsb3ltZW50Lm1kXShkb2NzL2J1aWxkLWFuZC1kZXBsb3ltZW50Lm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gIAoKIyMgVGVzdGluZyBhIFByb3ZpZGVyIHVzaW5nIHRoZSBgZGV2YCBSZWdpc3RyeQoKVXNlIHRoZSBmb2xsb3dpbmcgc3RlcHMgdG8gdGVzdCBhIHByb3ZpZGVyIHVzaW5nIHRoZSBgZGV2YCByZWdpc3RyeTogIAoKYGBgYmFzaApleHBvcnQgREVWX1JFRz0ieyBcInVybFwiOiBcImh0dHBzOi8vcmVnaXN0cnktZGV2LnN0YWNrcWwuYXBwL3Byb3ZpZGVyc1wiIH0iCi4vc3RhY2txbCAtLXJlZ2lzdHJ5PSIke0RFVl9SRUd9IiBzaGVsbApgYGA= readmeEtag: '"49bf6971ba5d86cf1233c839a45ebb41f6c1e236"' readmeLastModified: Wed, 31 Jul 2024 13:53:02 GMT repositoryId: 441087132 description: >- Registry for cloud and SaaS providers for StackQL, generated from extensions to the providers OpenAPI3 specification created: '2021-12-23T06:39:01Z' updated: '2024-08-31T02:53:49Z' language: Go archived: false stars: 22 watchers: 2 forks: 3 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 repoEtag: '"a768eed045e89157481723f45bdf5a104383ebf852605731cd6bccaa9f33e851"' repoLastModified: Sat, 31 Aug 2024 02:53:49 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/outline/openapi v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWNpZmljYXRpb24KClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBbT3BlbkFQSSBzcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKSBmb3IgT3V0bGluZSdzIEFQSS4KCiMjIyBEZXZlbG9wbWVudAoKSXQgaXMgcmVjb21tZW5kZWQgdG8gW2VkaXQgdGhlIHNwZWNpZmljYXRpb24gdXNpbmcgdGhlIFN3YWdnZXIgZWRpdG9yLF0oaHR0cDovL2VkaXRvci5zd2FnZ2VyLmlvLz91cmw9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL291dGxpbmUvb3BlbmFwaS9tYWluL3NwZWMzLnltbCkgd2hpY2ggd2lsbCB2YWxpZGF0ZSB0aGUgc3BlYyBhcyB5b3UgdHlwZS4gSWYgc3VnZ2VzdGluZyBjaGFuZ2VzIG9yIGZpeGVzIHRvIHRoaXMgcmVwb3NpdG9yeSBwbGVhc2UgbWFrZSBzdXJlIHRvIGluY2x1ZGUgYm90aCB0aGUganNvbiBhbmQgeW1sIHZlcnNpb25zIGluIHRoZSBQUi4gCgoKIyMjIERlcGxveW1lbnQKCkNoYW5nZXMgdG8gdGhpcyByZXBvc2l0b3J5IGFwcGVhciBhdCBbZ2V0b3V0bGluZS5jb20vZGV2ZWxvcGVyc10oaHR0cHM6Ly9nZXRvdXRsaW5lLmNvbS9kZXZlbG9wZXJzKSBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIFttYXJrZXRpbmcgd2Vic2l0ZV0oaHR0cHM6Ly9naXRodWIuY29tL291dGxpbmUvd2Vic2l0ZSkgaXMgZGVwbG95ZWQuCg== readmeEtag: '"aea3c806ec00242ad22a0e442f652ffb918d249c"' readmeLastModified: Sat, 06 Jul 2024 01:43:53 GMT repositoryId: 272337808 description: OpenAPI specification for the Outline API created: '2020-06-15T03:58:23Z' updated: '2024-07-11T14:34:51Z' language: null archived: false stars: 21 watchers: 4 forks: 10 owner: outline logo: https://avatars.githubusercontent.com/u/1765001?v=4 license: BSD-3-Clause repoEtag: '"30f67bd1c10fa5d829b8719434b48b27cec3e6417a688f6d0f208a44c964878f"' repoLastModified: Thu, 11 Jul 2024 14:34:51 GMT foundInMaster: true category: - Converters - Parsers id: 859f9bdad31e9a5c13169e55d6f37e73 - source: openapi3 tags repository: https://github.com/postman-open-technologies/bingchain v3: true id: 7775903803c68ddd46ca381ffe39c75b repositoryMetadata: base64Readme: >- IyDwn5W177iP8J+UlyBCaW5nQ2hhaW4KClRoaXMgaXMgYW4gZXZvbHV0aW9uIG9mIFtsYW5nY2hhaW4tbWluaV0oaHR0cHM6Ly9naXRodWIuY29tL0NvbGluRWJlcmhhcmR0L2xhbmdjaGFpbi1taW5pKSwgYSB2ZXJ5IHNpbXBsZSByZS1pbXBsZW1lbnRhdGlvbiBvZiBbTGFuZ0NoYWluXShodHRwczovL2dpdGh1Yi5jb20vaHdjaGFzZTE3L2xhbmdjaGFpbiksIGluIH4zNTAgbGluZXMgb2YgY29yZSBjb2RlLiBJbiBlc3NlbmNlLCBpdCBpcyBhIG11bHRpLW1vZGVsIExMTS1wb3dlcmVkIGNoYXQgYXBwbGljYXRpb24gdGhhdCBpcyBhYmxlIHRvIHVzZSB0b29scyAoTWljcm9zb2Z0ICoqQmluZyoqIHNlYXJjaCwgVVJMIHJldHJpZXZhbCwgQVBJIHBsdWdpbiBpbnN0YWxsYXRpb24sIEFQSSBjYWxscywgYSBKYXZhc2NyaXB0IHNhbmRib3gsIEpzRmlkZGxlIGNyZWF0aW9uLCBpbWFnZSBhbmQgdmlkZW8gcHJldmlldywgYW5kIGEgc2NpZW50aWZpYyBjYWxjdWxhdG9yLCBhcyB3ZWxsIGFzIG1ldGEtdG9vbHMgc3VjaCBhcyBgbGlzdGAsIGBkaXNhYmxlYCwgYHJlc2V0YCBhbmQgYGRlYnVnYCkgaW4gb3JkZXIgdG8gYnVpbGQgYSAqKmNoYWluKiogb2YgdGhvdWdodCB0byBob2xkIGNvbnZlcnNhdGlvbnMgYW5kIGFuc3dlciBxdWVzdGlvbnMuCgpIZXJlJ3MgYW4gZXhhbXBsZToKCn5+fgpROiBXaGF0IGlzIHRoZSB3b3JsZCByZWNvcmQgZm9yIHNvbHZpbmcgYSBydWJpa3MgY3ViZT8KVGhlIHdvcmxkIHJlY29yZCBmb3Igc29sdmluZyBhIFJ1YmlrJ3MgQ3ViZSBpcyA0LjY5IHNlY29uZHMsIGhlbGQgYnkgWWloZW5nIFdhbmcgKENoaW5hKS4KUTogQ2FuIGEgcm9ib3Qgc29sdmUgaXQgZmFzdGVyPwpUaGUgZmFzdGVzdCB0aW1lIGEgcm9ib3QgaGFzIHNvbHZlZCBhIFJ1YmlrJ3MgQ3ViZSBpcyAwLjYzNyBzZWNvbmRzLgpROiBXaG8gbWFkZSB0aGlzIHJvYm90PwpJbmZpbmVvbiBjcmVhdGVkIHRoZSByb2JvdCB0aGF0IHNvbHZlZCBhIFJ1YmlrJ3MgQ3ViZSBpbiAwLjYzNyBzZWNvbmRzLgpROiBXaGF0IHRpbWUgd291bGQgYW4gYXZlcmFnZSBodW1hbiBleHBlY3QgZm9yIHNvbHZpbmc/Ckl0IHRha2VzIHRoZSBhdmVyYWdlIHBlcnNvbiBhYm91dCB0aHJlZSBob3VycyB0byBzb2x2ZSBhIFJ1YmlrJ3MgY3ViZSBmb3IgdGhlIGZpcnN0IHRpbWUuCn5+fgoKVGhpcyBpcyBub3QgaW50ZW5kZWQgdG8gYmUgYSByZXBsYWNlbWVudCBmb3IgTGFuZ0NoYWluLCB3aGljaCBoYXMgbWFueSBhbHRlcm5hdGl2ZSBhbmQgY29tcG9zYWJsZSBidWlsZGluZyBibG9ja3MsIGluc3RlYWQgaXQgd2FzIGJ1aWx0IHRvIGRlbW9uc3RyYXRlIHRoZSBwb3dlciBvZiBhc3NlbWJsaW5nIGEgc2V0IG9mIHRvb2xzIChzdWNoIGFzIEFQSSBjYWxsaW5nIGFuZCBKYXZhc2NyaXB0IGV4ZWN1dGlvbikuIElmIHlvdSdyZSBpbnRlcmVzdGVkIGluIGhvdyBMYW5nQ2hhaW4sIGFuZCBzaW1pbGFyIHRvb2xzIHdvcmssIHRoaXMgaXMgYSB2ZXJ5IGdvb2Qgc3RhcnRpbmcgcG9pbnQuCgojIyBSdW5uaW5nIC8gZGV2ZWxvcGluZwoKSW5zdGFsbCBkZXBlbmRlbmNpZXMsIGFuZCBydW4gKHdpdGggbm9kZSA+PSB2MTgpOgoKfn5+CiUgbnBtIGluc3RhbGwKfn5+CgpUbyBkaXNwbGF5IHZpZGVvcyBpbiB0aGUgdGVybWluYWwsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCBgZmZtcGVnYC4KCllvdSdsbCBuZWVkIHRvIGhhdmUgYW4gT3BlbkFJIEFQSSBrZXksIGFuZCBvcHRpb25hbGx5IGEgQmluZyBTZWFyY2ggQVBJIGtleS4gVGhlc2UgY2FuIGJlIHN1cHBsaWVkIHRvIHRoZSBhcHBsaWNhdGlvbiB2aWEgYSBgLmVudmAgZmlsZToKCmBgYHNoZWxsCk9QRU5BSV9BUElfS0VZPSIuLi4iCkJJTkdfQVBJX0tFWT0iLi4uIgpNT0RFTD1ncHQtNApUT0tFTl9MSU1JVD0zMjc2OApURU1QRVJBVFVSRT0wLjI1ClJFU1BPTlNFX0xJTUlUPTUxMgpQT1JUPTEzMzcKR1VJPTEKI0xBTkc9VWtyYWluaWFuCiNERUJVRz0yCiNTRUVEX1FVRVJJRVM9MQojUFJPTVBUX09WRVJSSURFPVJpZGRsZSBtZSB0aGlzISAke3F1ZXN0aW9ufQpgYGAKCllvdSBjYW4gYWxzbyBzZXQgYFBST1ZJREVSPWFudGhyb3BpY2AgKHdpdGggYSByZWxldmFudCBgQU5USFJPUElDX0FQSV9LRVlgLCBgTU9ERUxgIGFuZCBgVE9LRU5fTElNSVRgKSB0byB1c2UgYW4gYWx0ZXJuYXRpdmUgTExNL0FQSSBwcm92aWRlci4KClNldCB0aGUgdG9rZW4gbGltaXQgdG8gdGhlIGFkdmVydGlzZWQgbGltaXQgb2YgdGhlIG1vZGVsIHlvdSBhcmUgdXNpbmcsIHNvIDMyNzY4IGZvciBgZ3B0LTRgLCA0MDk2IGZvciBgdGV4dC1kYXZpbmNpLTAwM2AgYW5kIDIwNDggZm9yIGB0ZXh0LWN1cmllLTAwMWAuCgpUaGUgY2xldmVyIHBhcnQgaXMgdGhlIGRlZmF1bHQgaW5pdGlhbCBwcm9tcHQsIHdoaWNoIGlzIGhlbGQgaW4gW2Bwcm9tcHQudHh0YF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Bvc3RtYW4tb3Blbi10ZWNobm9sb2dpZXMvYmluZ2NoYWluL21haW4vcHJvbXB0LnR4dCksIHVubGVzcyBvdmVycmlkZGVuIGJ5IHRoZSBgUFJPTVBUX09WRVJSSURFYCBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCkV4YW1wbGUgcHJvbXB0cyBhbmQgcmVzcG9uc2VzIHRvIHNob3cgaG93IHRoZSB2YXJpb3VzIGJ1aWx0LWluIHRvb2xzIHdvcmsgY2FuIGJlIGZvdW5kIGluIHRoZSBbYGV4YW1wbGVzYF0oaHR0cHM6Ly9naXRodWIuY29tL3Bvc3RtYW4tb3Blbi10ZWNobm9sb2dpZXMvYmluZ2NoYWluL3RyZWUvbWFpbi9leGFtcGxlcykgZGlyZWN0b3J5LiBUaGUgdG9vbHMgdGhlbXNlbHZlcyBhcmUgZGVmaW5lZCBpbiBbYGxpYi90b29scy5tanNgXShodHRwczovL2dpdGh1Yi5jb20vcG9zdG1hbi1vcGVuLXRlY2hub2xvZ2llcy9iaW5nY2hhaW4vdHJlZS9tYWluL2xpYi90b29scy5tanMpLCBpbmNsdWRpbmcgdGhlIGBkZXNjcmlwdGlvbmAgcHJvcGVydGllcyB3aGljaCBhY3QgYXMgZnVydGhlciBwcm9tcHRzIHRvIHRoZSBMTE0gdG8gc3VnZ2VzdCB3aGVuIGFuZCBob3cgdGhlIHRvb2xzIHNob3VsZCBiZSB1c2VkLgoKVGhlcmUgYXJlIGEgZmV3IEphdmFzY3JpcHQgYW5kIENTUyBmaWxlcyBzY2F0dGVyZWQgYWJvdXQgZnJvbSBbanNmaWRkbGUubmV0XShodHRwczovL2pzZmlkZGxlLm5ldC8pIHRvIG1ha2UgdGhlIGBzYXZldGV4dGAsIGBzYXZlaHRtbGAgYW5kIGBzYXZlY29kZWAgdG9vbHMgd29yayBsb2NhbGx5LgoKKipOb3RlKio6IHRvIGVuYWJsZSB0aGUgSmF2YXNjcmlwdCBzYW5kYm94LCB5b3UgbXVzdCBwYXNzIHRoZSBvcHRpb24gYC0tZXhwZXJpbWVudGFsLXZtLW1vZHVsZXNgIHRvIE5vZGUuanMuIFRoZSBpbmNsdWRlZCBgZ28uc2hgIHNjcmlwdCBzZXRzIHRoZSBOb2RlLmpzIHJlY29tbWVuZGVkIG9wdGlvbnMuCgojIyBTdGFydC11cAoKVGhlIGFwcGxpY2F0aW9uIHdpbGwgZGlzcGxheSB0aGUgYnVpbHQtaW4gdG9vbHMgYXMgaXQgaW5pdGlhbGlzZXMgdGhlbS4gVG9vbCBuYW1lcyBmb2xsb3dlZCBieSBbMV0gYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgZm9yIHNlY3VyaXR5IHJlYXNvbnMgKGkuZS4gdGhleSBtYXkgYWNjZXNzIGZpbGVzIG9uIHlvdXIgbG9jYWwgZmlsZXN5c3RlbSBvciB5b3VyIGVudmlyb25tZW50IHZhcmlhYmxlcykuIFlvdSBjYW4gZW5hYmxlIHRoZW0gYnkgdHlwaW5nIGBlbmFibGUgW3Rvb2xuYW1lXWAgYXQgdGhlIHByb21wdC4gVG9vbCBuYW1lcyBmb2xsb3dlZCBieSBbMl0gYXJlIGRpc2FibGVkIGJlY3Vhc2UgeW91IGRvIG5vdCBoYXZlIHRoZSByZXF1aXNpdGUgQVBJIGtleSBpbiB5b3VyIGVudmlyb25tZW50IG9yIHlvdXIgdmVyc2lvbiBvZiBOb2RlLmpzIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkIGZlYXR1cmVzLgoKIyMgRXhhbXBsZSBkaWFsb2d1ZQoKWW91IGNhbiBub3cgcnVuIHRoZSBjaGFpbjoKCmBgYHJlcGwKJSAuL2dvLnNoCkhvdyBjYW4gSSBoZWxwPyA+IHdoYXQgd2FzIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCB3b21hbiBpbiBzcGFjZT8KYGBgCgoqIEkgbmVlZCB0byBzZWFyY2ggZm9yIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCB3b21hbiBpbiBzcGFjZS4KKiAqQWN0aW9uKjogYHNlYXJjaGAKKiAqQWN0aW9uIElucHV0KjogYGZpcnN0IHdvbWFuIGluIHNwYWNlIG5hbWVgCgpDYWxsaW5nIGBzZWFyY2hgIHdpdGggYGZpcnN0IHdvbWFuIGluIHNwYWNlIG5hbWVgCgoxLiAqKlZhbGVudGluYSBUZXJlc2hrb3ZhIC0gRmlyc3QgV29tYW4gaW4gU3BhY2UgLSBCaW9ncmFwaHkqKgoyLiAqKlZhbGVudGluYSBUZXJlc2hrb3ZhOiBGaXJzdCBXb21hbiBpbiBTcGFjZSB8IFNwYWNlKioKMy4gKipUaGUgRmlyc3QgV29tYW4gaW4gU3BhY2U6IFZhbGVudGluYSBUZXJlc2hrb3ZhIC0gVGhvdWdodENvKioKCiogKlRob3VnaHQqOiBJIG5vdyBrbm93IHRoZSBmaW5hbCBhbnN3ZXIuCiogKkZpbmFsIEFuc3dlcio6IFRoZSBuYW1lIG9mIHRoZSBmaXJzdCB3b21hbiBpbiBzcGFjZSBpcyBWYWxlbnRpbmEgVGVyZXNoa292YS4KKiAqKlRoZSBuYW1lIG9mIHRoZSBmaXJzdCB3b21hbiBpbiBzcGFjZSBpcyBWYWxlbnRpbmEgVGVyZXNoa292YS4qKgoKIyMjIEV4aXRpbmcgdGhlIGNoYWluIC8gdmkgbW9kZQoKKiBZb3UgY2FuIHVzZSBgdmlgL2B2aW1gLWxpa2UgY29tbWFuZHMgdG8gZXhpdCwgc3VjaCBhcyBgOnFgIG9yIHlvdSBjYW4gQ3RybC1DIHR3aWNlIHRvIGV4aXQuCiogWW91IGNhbiB1c2UgYDpzZXRgIHRvIHF1ZXJ5IGFsbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3IgYDpzZXQgW3ZhcmlhYmxlXT1bdmFsdWVdYCB0byB0ZW1wb3JhcmlseSBhbWVuZCB0aGUgY3VycmVudCBlbnZpcm9ubWVudC4KCiMjIEF1dGhvcnMKCiogW01pa2UgUmFscGhzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9NaWtlUmFscGhzb24pCiogW0diYWRleWJvaCBCZWxsb10oaHR0cHM6Ly9naXRodWIuY29tL0diYWhkZXlib2gpCiogW0NvbGluIEViZXJoYXJkdF0oaHR0cHM6Ly9naXRodWIuY29tL0NvbGluRWJlcmhhcmR0KQoKIyMgRnV0dXJlIHdvcmsgcGxhbm5lZAoKKiBJZGVhcyBhbmQgUFJzIGdyYXRlZnVsbHkgcmVjZWl2ZWQuCg== readmeEtag: '"212c190a1f5a844903068a3e6c9644f508923de8"' readmeLastModified: Fri, 19 May 2023 10:39:01 GMT repositoryId: 636541324 description: Capable Langchain/AutoGPT alternative in ~350 lines of core code created: '2023-05-05T04:49:20Z' updated: '2024-06-11T04:52:31Z' language: JavaScript archived: false stars: 21 watchers: 6 forks: 2 owner: postman-open-technologies logo: https://avatars.githubusercontent.com/u/79494470?v=4 license: MIT repoEtag: '"7e20ad64a514116414ba5a45eb928441cf8ec297a9797bbbebff4355a0cb098b"' repoLastModified: Tue, 11 Jun 2024 04:52:31 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/erasys/openapi-php v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXBocAoKWyFbTGF0ZXN0IFZlcnNpb24gb24gUGFja2FnaXN0XVtpY28tdmVyc2lvbl1dW2xpbmstcmVsZWFzZXNdClshW1NvZnR3YXJlIExpY2Vuc2VdW2ljby1saWNlbnNlXV0oTElDRU5TRSkKWyFbQnVpbGQgU3RhdHVzXVtpY28tdHJhdmlzXV1bbGluay10cmF2aXNdClshW0NvdmVyYWdlIFN0YXR1c11baWNvLWNvdmVyYWdlXV1bbGluay1jb3ZlcmFnZV0KWyFbUXVhbGl0eSBTY29yZV1baWNvLXNjcnV0aW5pemVyXV1bbGluay1zY3J1dGluaXplcl0KWyFbVG90YWwgRG93bmxvYWRzXVtpY28tZG93bmxvYWRzXV1bbGluay1kb3dubG9hZHNdCgpPcGVuIEFQSSAzLjAgYnVpbGRlciBhbmQgdmFsaWRhdGlvbiBsaWJyYXJ5IGZvciBQSFAgdGhhdCBoZWxwcyB5b3Ugd3JpdGUgdmFsaWQgc3BlY3MuCgpbUFNSLTFdOiBodHRwczovL2dpdGh1Yi5jb20vcGhwLWZpZy9maWctc3RhbmRhcmRzL2Jsb2IvbWFzdGVyL2FjY2VwdGVkL1BTUi0xLWJhc2ljLWNvZGluZy1zdGFuZGFyZC5tZApbUFNSLTJdOiBodHRwczovL2dpdGh1Yi5jb20vcGhwLWZpZy9maWctc3RhbmRhcmRzL2Jsb2IvbWFzdGVyL2FjY2VwdGVkL1BTUi0yLWNvZGluZy1zdHlsZS1ndWlkZS5tZApbUFNSLTRdOiBodHRwczovL2dpdGh1Yi5jb20vcGhwLWZpZy9maWctc3RhbmRhcmRzL2Jsb2IvbWFzdGVyL2FjY2VwdGVkL1BTUi00LWF1dG9sb2FkZXIubWQKCgpUaGlzIHByb2plY3QgaXMgY29tcGxpYW50IHdpdGggW1BTUi0xXSwgW1BTUi0yXSBhbmQgW1BTUi00XS4KSWYgeW91IG5vdGljZSBjb21wbGlhbmNlIG92ZXJzaWdodHMsIHBsZWFzZSBzZW5kIGEgcGF0Y2ggdmlhIHB1bGwgcmVxdWVzdC4KCiMjIEZlYXR1cmVzCgotIEZ1bGx5IGRvY3VtZW50ZWQgb2JqZWN0LW9yaWVudGVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSAKW09wZW4gQVBJIDMuMCtdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL3RyZWUvbWFzdGVyL3ZlcnNpb25zKSBzcGVjaWZpY2F0aW9uIHdpdGggaGVscGVyIG1ldGhvZHMKdG8gd3JpdGUgdmFsaWQgZG9jdW1lbnRzLgotIFN1cHBvcnRzIElsbHVtaW5hdGUgKExhcmF2ZWwpIFtgSnNvbmFibGVgXShodHRwczovL2dpdGh1Yi5jb20vaWxsdW1pbmF0ZS9jb250cmFjdHMvYmxvYi92NS40LjAvU3VwcG9ydC9Kc29uYWJsZS5waHApIAphbmQgW2BBcnJheWFibGVgXShodHRwczovL2dpdGh1Yi5jb20vaWxsdW1pbmF0ZS9jb250cmFjdHMvYmxvYi92NS40LjAvU3VwcG9ydC9BcnJheWFibGUucGhwKS4KLSBHZW5lcmF0ZXMgYW4gc3BlY2lmaWNhdGlvbiBpbiBwbGFpbiBQSFAgYXJyYXlzLCBwbGFpbiBvYmplY3RzLCBKU09OIG9yIFlBTUwuCi0gVmFsaWRhdGVzIE9wZW4gQVBJIGRvY3VtZW50cyBhZ2FpbnN0IHRoZSBPcGVuIEFQSSAzLjAueCBKU09OIFNjaGVtYS4KCgojIyBJbnN0YWxsCgpWaWEgQ29tcG9zZXIKCmBgYCBiYXNoCiQgY29tcG9zZXIgcmVxdWlyZSBlcmFzeXMvb3BlbmFwaS1waHAKYGBgCgpWaWEgR2l0CgpgYGAgYmFzaAokIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vZXJhc3lzL29wZW5hcGktcGhwLmdpdApgYGAKCiMjIFVzYWdlCgpCYXNpYyBleGFtcGxlOgoKYGBgcGhwCjw/cGhwCgp1c2UgZXJhc3lzXE9wZW5BcGlcU3BlY1x2MyBhcyBPQVN2MzsKCiRkb2MgPSBuZXcgT0FTdjNcRG9jdW1lbnQoCiAgICBuZXcgT0FTdjNcSW5mbygnTXkgQVBJJywgJzEuMC4wJywgJ015IEFQSSBkZXNjcmlwdGlvbicpLAogICAgWwogICAgICAgICcvZm9vL2JhcicgPT4gbmV3IE9BU3YzXFBhdGhJdGVtKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnZ2V0JyA9PiBuZXcgT0FTdjNcT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJzIwMCcgPT4gbmV3IE9BU3YzXFJlc3BvbnNlKCdTdWNjZXNzZnVsIHJlc3BvbnNlLicpLAogICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdCcgPT4gbmV3IE9BU3YzXFJlc3BvbnNlKCdEZWZhdWx0IGVycm9yIHJlc3BvbnNlLicpLAogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0KICAgICAgICApLAogICAgXQopOwoKJHlhbWwgPSAkZG9jLT50b1lhbWwoKTsKJGpzb24gPSAkZG9jLT50b0pzb24oKTsKJGFyciAgPSAkZG9jLT50b0FycmF5KCk7CiRvYmogID0gJGRvYy0+dG9PYmplY3QoKTsKCmBgYAoKIyMgVGVzdGluZwoKYGBgIGJhc2gKJCBjb21wb3NlciB0ZXN0CmBgYAoKb3IKCmBgYCBiYXNoCiQgdmVuZG9yL2Jpbi9waHB1bml0CiQgdmVuZG9yL2Jpbi9waHBjcwpgYGAKCiMjIENvbnRyaWJ1dGluZwoKUGxlYXNlIHNlZSBbQ09OVFJJQlVUSU5HXShodHRwczovL2dpdGh1Yi5jb20vZXJhc3lzL29wZW5hcGktcGhwL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCkgZm9yIGRldGFpbHMuCgojIyBMaWNlbnNlCgpUaGUgTUlUIExpY2Vuc2UgKE1JVCkuClBsZWFzZSBzZWUgW0xpY2Vuc2UgRmlsZV0oaHR0cHM6Ly9naXRodWIuY29tL2VyYXN5cy9vcGVuYXBpLXBocC9ibG9iL21hc3Rlci9MSUNFTlNFKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCgpbaWNvLXZlcnNpb25dOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC92L2VyYXN5cy9vcGVuYXBpLXBocC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUKW2ljby1saWNlbnNlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1icmlnaHRncmVlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUKW2ljby10cmF2aXNdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3RyYXZpcy9lcmFzeXMvb3BlbmFwaS1waHAvbWFzdGVyLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZQpbaWNvLWRvd25sb2Fkc106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L2R0L2VyYXN5cy9vcGVuYXBpLXBocC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUKW2ljby1jb3ZlcmFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc2NydXRpbml6ZXIvY292ZXJhZ2UvZy9lcmFzeXMvb3BlbmFwaS1waHAuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlCltpY28tc2NydXRpbml6ZXJdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3NjcnV0aW5pemVyL2cvZXJhc3lzL29wZW5hcGktcGhwLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZQpbbGluay1yZWxlYXNlc106IGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9lcmFzeXMvb3BlbmFwaS1waHAKW2xpbmstdHJhdmlzXTogaHR0cHM6Ly90cmF2aXMtY2kub3JnL2VyYXN5cy9vcGVuYXBpLXBocApbbGluay1kb3dubG9hZHNdOiBodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvZXJhc3lzL29wZW5hcGktcGhwCltsaW5rLWNvdmVyYWdlXTogaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9lcmFzeXMvb3BlbmFwaS1waHAvY29kZS1zdHJ1Y3R1cmUKW2xpbmstc2NydXRpbml6ZXJdOiBodHRwczovL3NjcnV0aW5pemVyLWNpLmNvbS9nL2VyYXN5cy9vcGVuYXBpLXBocAo= readmeEtag: '"a68dd99cb7a4677ca15321a9279bf5bc88ee1cc5"' readmeLastModified: Fri, 03 Nov 2023 09:41:25 GMT repositoryId: 129788604 description: >- 📚Swagger / Open API 3.0 builder and validation library for PHP that helps you write valid specs. created: '2018-04-16T18:32:26Z' updated: '2024-05-21T20:22:00Z' language: PHP archived: false stars: 21 watchers: 13 forks: 13 owner: erasys logo: https://avatars.githubusercontent.com/u/1845621?v=4 license: MIT repoEtag: '"00ccc9b3d70cf974e5b36cf697f1ca934ef7382b8497c4503eb257db65bbba04"' repoLastModified: Tue, 21 May 2024 20:22:00 GMT foundInMaster: true category: Data Validators id: acce8eb5c93c964fa251e3fed927c64d - source: openapi3 tags repository: https://github.com/uderline/openapi-php-attributes v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFBIUCBBdHRyaWJ1dGVzIEdlbmVyYXRvcgoKVGhpcyBDTEkgVG9vbCBpcyBhYmxlIHRvIGdlbmVyYXRlIGFuIE9wZW5BcGkgSlNPTiBmaWxlIGRlc2NyaXB0aW9uIGFjY29yZGluZyB0byBQSFAgYXR0cmlidXRlcyBjb250YWluZWQgaW4geW91ciBmaWxlcy4KCiMjIOKaoO+4jyBNaXNzaW5nIHNvbWV0aGluZyA/Ckp1c3Qgb3BlbiBhbiBpc3N1ZSBzYXlpbmcgd2hhdCdzIG1pc3NpbmcgISBGZWVsIGZyZWUgdG8gb3BlbiBhIFBSIGJ1dCB3ZSByZWNvbW1lbmQgb3BlbmluZyBhbiBpc3N1ZSBiZWZvcmVoYW5kLgoKIyMgV2hlcmUgdG8gc3RhcnQgPwoxIC0gSW5zdGFsbCB0aGUgcGFja2FnZSBvcGVuYXBpLXBocC1hdHRyaWJ1dGVzLWdlbmVyYXRvciB3aXRoIGNvbXBvc2VyLgoKYGBgYmFzaApjb21wb3NlciByZXF1aXJlIHVkZXJsaW5lL29wZW5hcGktcGhwLWF0dHJpYnV0ZXMKYGBgCgoyIC0gRGVzY3JpYmUgeW91ciBBUEkgYnkgZm9sbG93aW5nIHRoaXMgZG9jdW1lbnRhdGlvbjogaHR0cHM6Ly91ZGVybGluZS5naXRodWIuaW8vb3BlbmFwaS1waHAtYXR0cmlidXRlcy8KCjMgLSBHZW5lcmF0ZSB0aGUgSlNPTiBmaWxlOgpgYGBiYXNoCnBocCAuL3ZlbmRvci9iaW4vb3BhZyAvc3JjL2ZpbGVzL3Byb2plY3Qgb3BlbmFwaS5qc29uCmBgYAoKQSBuZXcgZmlsZSBjYWxsZWQgYG9wZW5hcGkuanNvbmAgaGFzIGJlZW4gZ2VuZXJhdGVkICEKCiMjIEV4YW1wbGUKYGBgcGhwCiNbQ29udHJvbGxlcl0KY2xhc3MgQ29udHJvbGxlciB7CiAgICAjWwogICAgICAgIEdFVCgiL3BhdGgve2lkfSIsIFsiVGFnMSIsICJUYWcyIl0sICJEZXNjcmlwdGlvbiBvZiB0aGUgbWV0aG9kIiksCiAgICAgICAgUHJvcGVydHkoVHlwZTo6U1RSSU5HLCAicHJvcDEiLCBkZXNjcmlwdGlvbjogIlByb3BlcnR5IGRlc2NyaXB0aW9uIiwgZW51bTogQmFja2VkRW51bTo6Y2xhc3MpLAogICAgICAgIFByb3BlcnR5KFR5cGU6OklOVCwgInByb3AyIiwgZXhhbXBsZTogMSksCiAgICAgICAgUHJvcGVydHkoVHlwZTo6Qk9PTEVBTiwgInByb3AzIiksCiAgICAgICAgUHJvcGVydHkoVHlwZTo6UkVGLCAicHJvcDQiLCByZWY6IFJlZlNjaGVtYTo6Y2xhc3MpCiAgICAgICAgUmVzcG9uc2UocmVmOiBTY2hlbWFOYW1lOjpjbGFzcywgZGVzY3JpcHRpb246ICJSZXNwb25zZSBkZXNjcmlwdGlvbiIpCiAgICBdCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0KCNbUGFyYW1ldGVyKCJQYXJhbWV0ZXIgZGVzY3JpcHRpb24iKV0gaW50ICRpZCk6IEpzb25SZXNwb25zZSB7CiAgICAgICAgLy8gLi4uCiAgICB9Cn0KCmVudW0gQmFja2VkRW51bTogc3RyaW5nCnsKICAgIGNhc2UgVkFMMTogInZhbDEiOwogICAgY2FzZSBWQUwyOiAidmFsMiI7Cn0KCiNbCiAgICBTY2hlbWEsCiAgICBQcm9wZXJ0eShUeXBlOjpTVFJJTkcsICJQcm9wZXJ0eSAxIiksCiAgICBQcm9wZXJ0eShUeXBlOjpJTlQsICJQcm9wZXJ0eSAyIiksCl0KY2xhc3MgUmVmU2NoZW1hCnsKICAgIHB1YmxpYyBzdHJpbmcgJHByb3BlcnR5MTsKICAgIHB1YmxpYyBpbnQgJHByb3BlcnR5MjsKfQpgYGAKCldpbGwgZ2VuZXJhdGUKYGBganNvbgp7CiAgICAicGF0aHMiOiB7CiAgICAgICAgIi9wYXRoL3tpZH0iOiB7CiAgICAgICAgICAgICJwb3N0IjogewogICAgICAgICAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAgICAgICAgICAgIlRhZzEiLAogICAgICAgICAgICAgICAgICAgICJUYWcyIgogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJzdW1tYXJ5IjogIkRlc2NyaXB0aW9uIG9mIHRoZSBtZXRob2QiLAogICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlBhcmFtZXRlciBkZXNjcmlwdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJyZXF1ZXN0Qm9keSI6IHsKICAgICAgICAgICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9wMSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvcGVydHkgZGVzY3JpcHRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbDEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWwyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvcDIiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9wMyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImJvb2xlYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3A0IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUmVmU2NoZW1hIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc3BvbnNlIGRlc2NyaXB0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9EdW1teUNvbXBvbmVudCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KYGBgCg== readmeEtag: '"496c83d0500db6d82730fb9964a6eae3d6662ee4"' readmeLastModified: Mon, 25 Mar 2024 20:17:29 GMT repositoryId: 374416484 description: >- Automatically render your OpenApi 3 file describing your PHP API using attributes created: '2021-06-06T16:59:48Z' updated: '2024-05-03T14:58:45Z' language: PHP archived: false stars: 21 watchers: 3 forks: 8 owner: uderline logo: https://avatars.githubusercontent.com/u/10776690?v=4 license: MIT repoEtag: '"1c1a9d3e28069a0a5b5624201a82e1880c7fd4933c43298315fa755ba4d9a899"' repoLastModified: Fri, 03 May 2024 14:58:45 GMT foundInMaster: true category: Parsers id: c9db84b60f30668d6e75ceb8a14d8e62 - source: openapi3 tags repository: https://github.com/dkackman/chia-api v3: true repositoryMetadata: base64Readme: >- IyBjaGlhLWFwaQoKWyFbT3BlbkFQSSBMaW50ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9ka2Fja21hbi9jaGlhLWFwaS9hY3Rpb25zL3dvcmtmbG93cy9saW50ZXIueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZGthY2ttYW4vY2hpYS1hcGkvYWN0aW9ucy93b3JrZmxvd3MvbGludGVyLnlhbWwpCgpBbiB1bm9mZmljYWwgW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIGRlc2NyaXB0aW9uIG9mIFtjaGlhXShodHRwczovL2dpdGh1Yi5jb20vQ2hpYS1OZXR3b3JrL2NoaWEtYmxvY2tjaGFpbikgUlBDIGludGVyZmFjZXMuCgpWaWV3IGN1cnJlbnQgc3BlYyBiYXNlZCBvbiBjaGlhIDIuMy4wOgoKLSBbSW4gdGhlIHN3YWdnZXIgVUldKGh0dHBzOi8vZGthY2ttYW4uZ2l0aHViLmlvL2NoaWEtYXBpLz91cmxzLnByaW1hcnlOYW1lPUZ1bGwlMjBOb2RlKQotIFtBcyBhIHJlZG9jIGdlbmVyYXRlZCBzaXRlXShodHRwczovL2RrYWNrbWFuLmdpdGh1Yi5pby9jaGlhLWFwaS9yZWRvYy8pCi0gW0FzIGEgc3dhZ2dlci1jb2RlZ2VuIGdlbmVyYXRlZCBzaXRlXShodHRwczovL2RrYWNrbWFuLmdpdGh1Yi5pby9jaGlhLWFwaS9zdGF0aWMvKQoKX19fCgpfY2hpYSBhbmQgaXRzIGxvZ28gYXJlIHRoZSByZWdpc3RlcmVkIHRyYWRlbWFyayBvciB0cmFkZW1hcmsgb2YgQ2hpYSBOZXR3b3JrLCBJbmMuIGluIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCB3b3JsZHdpZGUuXwo= readmeEtag: '"17ee97b308127adc7ad399d2e7edf501d3980759"' readmeLastModified: Wed, 07 Aug 2024 12:51:53 GMT repositoryId: 453839137 description: Swagger for chia https://dkackman.github.io/chia-api/ created: '2022-01-31T00:32:10Z' updated: '2024-08-30T20:46:36Z' language: Mustache archived: false stars: 21 watchers: 3 forks: 5 owner: dkackman logo: https://avatars.githubusercontent.com/u/5160233?v=4 license: Apache-2.0 repoEtag: '"055e975d15e85bc98099ab25aa0b1ffb36d868de7c15cd32144247f1d796d947"' repoLastModified: Fri, 30 Aug 2024 20:46:36 GMT foundInMaster: true category: Server id: af8d79e99ec00e2f41229885f84248da - source: - openapi3 tags - openapi31 tags repository: https://github.com/fatal1ty/openapify v3: true v3_1: true id: 2e5e94dab0e4592660585f4aecadb841 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpZnkKCiMjIyMjIyBGcmFtZXdvcmsgYWdub3N0aWMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGdlbmVyYXRpb24gZm9yIGNvZGUgbG92ZXJzCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9GYXRhbDF0eS9vcGVuYXBpZnkvd29ya2Zsb3dzL3Rlc3RzL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9GYXRhbDF0eS9vcGVuYXBpZnkvYWN0aW9ucykKWyFbTGF0ZXN0IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L29wZW5hcGlmeS5zdmcpXShodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL29wZW5hcGlmeSkKWyFbUHl0aG9uIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL29wZW5hcGlmeS5zdmcpXShodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL29wZW5hcGlmeSkKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1ibHVlLnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMCkKCi0tLQoKVGhpcyBsaWJyYXJ5IGlzIGRlc2lnbmVkIGZvciBjb2RlLWZpcnN0IHBlb3BsZSB3aG8gZG9uJ3Qgd2FudCB0byBib3RoZXIgZGl2aW5nCmludG8gdGhlIGRldGFpbHMKb2YgW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wKSwgYnV0IHdobwppbnN0ZWFkIHdhbnQgdG8gdXNlIGFkdmFudGFnZXMgb2YgUHl0aG9uIHR5cGluZyBzeXN0ZW0sIElERSBjb2RlLWNvbXBsZXRpb24gYW5kCnN0YXRpYyB0eXBlIGNoZWNrZXJzIHRvIGNvbnRpbnVvdXNseSBidWlsZCB0aGUgQVBJIGRvY3VtZW50YXRpb24gYW5kIGtlZXAgaXQKYWx3YXlzIHVwIHRvIGRhdGUuCgpPcGVuYXBpZnkgaXMgYmFzZWQgb24gdGhlIGlkZWEgb2YgYXBwbHlpbmcgZGVjb3JhdG9ycyBvbiByb3V0ZSBoYW5kbGVycy4gQW55CndlYi1mcmFtZXdvcmsgaGFzIGEgcm91dGluZyBzeXN0ZW0gdGhhdCBsZXQgdXMgbGluayBhIHJvdXRlIHRvIGEgaGFuZGxlcgooYSBoaWdoLWxldmVsIGZ1bmN0aW9uIG9yIGEgY2xhc3MgbWV0aG9kKS4gQnkgdXNpbmcgZGVjb3JhdG9ycywgd2UgY2FuIGFkZAppbmZvcm1hdGlvbiBhYm91dCByZXF1ZXN0cywgcmVzcG9uc2VzIGFuZCBvdGhlciBkZXRhaWxzIHRoYXQgd2lsbCB0aGVuIGJlIHVzZWQKdG8gY3JlYXRlIGFuIGVudGlyZSBPcGVuQVBJIGRvY3VtZW50LgoKPiBbIVdBUk5JTkddXAo+IFRoaXMgbGlicmFyeSBpcyBjdXJyZW50bHkgaW4gcHJlLXJlbGVhc2Ugc3RhZ2UgYW5kIG1heSBoYXZlIGJhY2t3YXJkCj4gaW5jb21wYXRpYmxlIGNoYW5nZXMgcHJpb3IgdG8gdmVyc2lvbiAxLjAuIFBsZWFzZSB1c2UgY2F1dGlvbiB3aGVuIHVzaW5nIHRoaXMKPiBsaWJyYXJ5IGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIGFuZCBiZSBzdXJlIHRvIHRob3JvdWdobHkgdGVzdCBhbnkgdXBkYXRlcwo+IGJlZm9yZSB1cGdyYWRpbmcgdG8gYSBuZXcgdmVyc2lvbi4KClRhYmxlIG9mIGNvbnRlbnRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiogW1F1aWNrc3RhcnRdKCNxdWlja3N0YXJ0KQoqIFtCdWlsZGluZyB0aGUgT3BlbkFQSSBEb2N1bWVudF0oI2J1aWxkaW5nLXRoZS1vcGVuYXBpLWRvY3VtZW50KQoqIFtJbnRlZ3JhdGlvbiB3aXRoIHdlYi1mcmFtZXdvcmtzXSgjaW50ZWdyYXRpb24td2l0aC13ZWItZnJhbWV3b3JrcykKICAgICogW2Fpb2h0dHBdKCNhaW9odHRwKQogICAgKiBbV3JpdGluZyB5b3VyIG93biBpbnRlZ3JhdGlvbl0oI3dyaXRpbmcteW91ci1vd24taW50ZWdyYXRpb24pCiogW0RlY29yYXRvcnNdKCNkZWNvcmF0b3JzKQogICAgKiBbR2VuZXJpYyBvcGVyYXRpb24gaW5mb10oI2dlbmVyaWMtb3BlcmF0aW9uLWluZm8pCiAgICAqIFtSZXF1ZXN0XSgjcmVxdWVzdCkKICAgICogW1Jlc3BvbnNlXSgjcmVzcG9uc2UpCiAgICAqIFtTZWN1cml0eSByZXF1aXJlbWVudHNdKCNzZWN1cml0eS1yZXF1aXJlbWVudHMpCiogW1BsdWdpbnNdKCNwbHVnaW5zKQogICogW2BzY2hlbWFfaGVscGVyYF0oI3NjaGVtYV9oZWxwZXIpCiAgKiBbYG1lZGlhX3R5cGVfaGVscGVyYF0oI21lZGlhX3R5cGVfaGVscGVyKQoKSW5zdGFsbGF0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpVc2UgcGlwIHRvIGluc3RhbGw6CgpgYGBzaGVsbAokIHBpcCBpbnN0YWxsIG9wZW5hcGlmeQpgYGAKClF1aWNrc3RhcnQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCj4gWyFOT1RFXVwKPiBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIHdlIHdpbGwgaW50ZW50aW9uYWxseSBkZW1vbnN0cmF0ZSB0aGUgcHJvY2VzcyBvZgo+IGNyZWF0aW5nIGFuIE9wZW5BUEkgZG9jdW1lbnQgd2l0aG91dCBiZWluZyB0aWVkIHRvIGEgc3BlY2lmaWMgd2ViLWZyYW1ld29yay4KPiBIb3dldmVyLCB0aGlzIHByb2Nlc3MgbWF5IGJlIGVhc2llciBvbiBhIHN1cHBvcnRlZCB3ZWItZnJhbWV3b3JrLgo+IFNlZSBbSW50ZWdyYXRpb24gd2l0aCB3ZWItZnJhbWV3b3Jrc10oI2ludGVncmF0aW9uLXdpdGgtd2ViLWZyYW1ld29ya3MpIGZvcgo+IG1vcmUgaW5mby4KCkxldCdzIHNlZSBob3cgdG8gYnVpbGQgYW4gT3BlbkFQSSBkb2N1bWVudCB3aXRoIG9wZW5hcGlmeS4gU3VwcG9zZSB3ZSBhcmUKd3JpdGluZyBhbiBhcHAgZm9yIGEgYm9va3N0b3JlIHRoYXQgcmV0dXJuIGEgbGlzdCBvZiBuZXcgYm9va3MuIEhlcmUgd2UgaGF2ZSBhCmRhdGFjbGFzcyBtb2RlbCBgQm9va2AgdGhhdCB3b3VsZCBiZSB1c2VkIGFzIGEgcmVzcG9uc2UgbW9kZWwgaW4gYSByZWFsLWxpZmUKc2NlbmFyaW8uIEEgZnVuY3Rpb24gYGdldF9uZXdfYm9va3NgIGlzIG91ciBoYW5kbGVyLgoKYGBgcHl0aG9uCmZyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFjbGFzcwoKQGRhdGFjbGFzcwpjbGFzcyBCb29rOgogICAgdGl0bGU6IHN0cgogICAgYXV0aG9yOiBzdHIKICAgIHllYXI6IGludAoKZGVmIGdldF9uZXdfYm9va3MoLi4uKToKICAgIC4uLgpgYGAKCk5vdyB3ZSB3YW50IHRvIHNheSB0aGF0IG91ciBoYW5kbGVyIHJldHVybnMgYSBqc29uIHNlcmlhbGl6ZWQgbGlzdCBvZiBib29rcwpsaW1pdGVkIGJ5IHRoZSBvcHRpb25hbCBgY291bnRgIHBhcmFtZXRlci4gV2UgdXNlIGByZXF1ZXN0X3NjaGVtYWAKYW5kIGByZXNwb25zZV9zY2hlbWFgIGRlY29yYXRvcnMgYWNjb3JkaW5nbHk6CgpgYGBweXRob24KZnJvbSBvcGVuYXBpZnkgaW1wb3J0IHJlcXVlc3Rfc2NoZW1hLCByZXNwb25zZV9zY2hlbWEKCkByZXF1ZXN0X3NjaGVtYShxdWVyeV9wYXJhbXM9eyJjb3VudCI6IGludH0pCkByZXNwb25zZV9zY2hlbWEobGlzdFtCb29rXSkKZGVmIGdldF9uZXdfYm9va3MoLi4uKToKICAgIC4uLgpgYGAKCkFuZCBub3cgd2UgbmVlZCB0byBjb2xsZWN0IGFsbCB0aGUgcm91dGUgZGVmaW5pdGlvbnMgYW5kIHBhc3MgdGhlbSB0byB0aGUKYGJ1aWxkX3NwZWNgIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gb2JqZWN0IHRoYXQgaGFzIGB0b195YW1sYAptZXRob2QuCgpgYGBweXRob24KZnJvbSBvcGVuYXBpZnkgaW1wb3J0IGJ1aWxkX3NwZWMKZnJvbSBvcGVuYXBpZnkuY29yZS5tb2RlbHMgaW1wb3J0IFJvdXRlRGVmCgpyb3V0ZXMgPSBbUm91dGVEZWYoIi9ib29rcyIsICJnZXQiLCBnZXRfbmV3X2Jvb2tzKV0Kc3BlYyA9IGJ1aWxkX3NwZWMocm91dGVzKQpwcmludChzcGVjLnRvX3lhbWwoKSkKYGBgCgpBcyBhIHJlc3VsdCwgd2Ugd2lsbCBnZXQgdGhlIGZvbGxvd2luZyBPcGVuQVBJIGRvY3VtZW50IHdoaWNoIGNhbiBiZSByZW5kZXJlZAp1c2luZyB0b29scyBzdWNoIGFzIFN3YWdnZXIgVUk6CgpgYGB5YW1sCm9wZW5hcGk6IDMuMS4wCmluZm86CiAgdGl0bGU6IEFQSQogIHZlcnNpb246IDEuMC4wCnBhdGhzOgogIC9ib29rczoKICAgIGdldDoKICAgICAgcGFyYW1ldGVyczoKICAgICAgLSBuYW1lOiBjb3VudAogICAgICAgIGluOiBxdWVyeQogICAgICAgIHNjaGVtYToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0Jvb2snCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIEJvb2s6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICB0aXRsZTogQm9vawogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHRpdGxlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgYXV0aG9yOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgeWVhcjoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgIHJlcXVpcmVkOgogICAgICAtIHRpdGxlCiAgICAgIC0gYXV0aG9yCiAgICAgIC0geWVhcgpgYGAKCkJ1aWxkaW5nIHRoZSBPcGVuQVBJIERvY3VtZW50Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZSBmaW5hbCBnb2FsIG9mIHRoaXMgbGlicmFyeSBpcyB0byBidWlsZAp0aGUgW09wZW5BUEkgRG9jdW1lbnRdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVuYXBpLWRvY3VtZW50KQpmb3IgeW91ciB3ZWItYXBwbGljYXRpb24uIFRoaXMgZG9jdW1lbnQgY29uc2lzdHMgb2YgY29tbW9uIGluZm9ybWF0aW9uIGFib3V0CnRoZSBhcHBsaWNhdGlvbiwgc3VjaCBhcyBhIHRpdGxlIGFuZCB2ZXJzaW9uLCBhbmQgc3BlY2lmaWMgaW5mb3JtYXRpb24gdGhhdApvdXRsaW5lcyB0aGUgZnVuY3Rpb25hbGl0aWVzIG9mIHRoZSBBUEkuCgpTaW5jZSBvcGVuYXBpZnkgaXMgbm93IGJhc2VkCm9uIFthcGlzcGVjXShodHRwczovL2dpdGh1Yi5jb20vbWFyc2htYWxsb3ctY29kZS9hcGlzcGVjKSBsaWJyYXJ5LCB0aGUgT3BlbkFQSQpkb2N1bWVudCBpcyBwcmVzZW50ZWQgYnkgYEFQSVNwZWNgIGNsYXNzIGZvciB0aGUgY29udmVuaWVuY2Ugb2YgdXNpbmcgdGhlCmV4aXN0aW5nIGVjb3N5c3RlbSBvZiBwbHVnaW5zLiBIb3dldmVyLCBvcGVuYXBpZnkgaGFzIGl0cyBvd24Kc3ViY2xhc3MgYE9wZW5BUElEb2N1bWVudGAgd2hpY2ggbWFrZXMgaXQgZWFzaWVyIHRvIGFkZCBzb21lIGNvbW1vbiBmaWVsZHMsCnN1Y2ggYXMgYW4gYXJyYXkKb2YgW1NlcnZlcl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3NlcnZlci1vYmplY3QpIG9iamVjdHMgb3IKYXJyYXkgb2YKY29tbW9uIFtTZWN1cml0eSBTY2hlbWVdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNzZWN1cml0eS1zY2hlbWUtb2JqZWN0KQpvYmplY3RzLgoKVG8gYnVpbGQgdGhlIGRvY3VtZW50LCB0aGVyZSBpcyBgYnVpbGRfc3BlY2AgZnVuY3Rpb24uIFRoZSB2ZXJ5IGJhc2ljIGRvY3VtZW50CmNhbiBiZSBjcmVhdGVkIGJ5IGNhbGxpbmcgaXQgd2l0aCBhbiBlbXB0eSBsaXN0IG9mIHJvdXRlIGRlZmluaXRpb25zLCBsZWF2aW5nCmFsbCB0aGUgcGFyYW1ldGVycyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzLgpgYGBweXRob24KZnJvbSBvcGVuYXBpZnkgaW1wb3J0IGJ1aWxkX3NwZWMKCnByaW50KGJ1aWxkX3NwZWMoW10pLnRvX3lhbWwoKSkKYGBgCgpBcyBhIHJlc3VsdCwgd2Ugd2lsbCBnZXQgdGhlIGZvbGxvd2luZyBkb2N1bWVudDoKCmBgYHlhbWwKb3BlbmFwaTogMy4xLjAKaW5mbzoKICB0aXRsZTogQVBJCiAgdmVyc2lvbjogMS4wLjAKcGF0aHM6IHt9CmBgYAoKV2UgY2FuIGNoYW5nZSB0aGUgY29tbW9uIGRvY3VtZW50IGF0dHJpYnV0ZXMgZWl0aGVyIGJ5IHBhc3NpbmcgdGhlbQp0byBgYnVpbGRfc3BlY2A6CgpgYGBweXRob24KZnJvbSBvcGVuYXBpZnkgaW1wb3J0IGJ1aWxkX3NwZWMKZnJvbSBvcGVuYXBpZnkuY29yZS5vcGVuYXBpLm1vZGVscyBpbXBvcnQgSFRUUFNlY3VyaXR5U2NoZW1lCgpidWlsZF9zcGVjKAogICAgcm91dGVzPVtdLAogICAgdGl0bGU9Ik15IEJvb2tzdG9yZSBBUEkiLAogICAgdmVyc2lvbj0iMS4xLjAiLAogICAgb3BlbmFwaV92ZXJzaW9uPSIzLjEuMCIsCiAgICBzZXJ2ZXJzPVsiaHR0cDovLzEyNy4wLjAuMSJdLAogICAgc2VjdXJpdHlfc2NoZW1lcz17ImJhc2ljX2F1dGgiOiBIVFRQU2VjdXJpdHlTY2hlbWUoKX0KKQpgYGAKCm9yIHVzaW5nIGEgcHJlcGFyZWQgYE9wZW5BUElEb2N1bWVudGAgb2JqZWN0OgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaWZ5IGltcG9ydCBPcGVuQVBJRG9jdW1lbnQsIGJ1aWxkX3NwZWMKZnJvbSBvcGVuYXBpZnkuY29yZS5vcGVuYXBpLm1vZGVscyBpbXBvcnQgSFRUUFNlY3VyaXR5U2NoZW1lCgpzcGVjID0gT3BlbkFQSURvY3VtZW50KAogICAgdGl0bGU9Ik15IEJvb2tzdG9yZSBBUEkiLAogICAgdmVyc2lvbj0iMS4xLjAiLAogICAgb3BlbmFwaV92ZXJzaW9uPSIzLjEuMCIsCiAgICBzZXJ2ZXJzPVsiaHR0cDovLzEyNy4wLjAuMSJdLAogICAgc2VjdXJpdHlfc2NoZW1lcz17ImJhc2ljX2F1dGgiOiBIVFRQU2VjdXJpdHlTY2hlbWUoKX0sCikKYnVpbGRfc3BlYyhbXSwgc3BlYykKYGBgCgpUbyBhZGQgbWVhbmluZyB0byBvdXIgZG9jdW1lbnQsIHdlIGNhbgphZGQgW1BhdGhdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNwYXRocy1vYmplY3QpLApbQ29tcG9uZW50XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjY29tcG9uZW50cy1vYmplY3QpCmFuZCBvdGhlciBPcGVuQVBJIG9iamVjdHMgYnkgYXBwbHlpbmcgW2RlY29yYXRvcnNdKCNkZWNvcmF0b3JzKSBvbiBvdXIgcm91dGUKaGFuZGxlcnMgYW5kIGNvbnN0cnVjdGluZyByb3V0ZSBkZWZpbml0aW9ucyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBidWlsZGVyLgpBIHNpbmdsZSBjb21wbGV0ZSByb3V0ZSBkZWZpbml0aW9uIHByZXNlbnRlZCBieSBgUm91dGVEZWZgIGNsYXNzIGNhbiBsb29rIGxpa2UKdGhpczoKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlmeS5jb3JlLm1vZGVscyBpbXBvcnQgUm91dGVEZWYKZnJvbSBvcGVuYXBpZnkuY29yZS5vcGVuYXBpLm1vZGVscyBpbXBvcnQgUGFyYW1ldGVyLCBQYXJhbWV0ZXJMb2NhdGlvbgoKZGVmIGdldF9ib29rX2J5X2lkX2hhbmRsZXIoLi4uKToKICAgIC4uLgoKUm91dGVEZWYoCiAgICBwYXRoPSIvYm9vay97aWR9IiwKICAgIG1ldGhvZD0iZ2V0IiwKICAgIGhhbmRsZXI9Z2V0X2Jvb2tfYnlfaWRfaGFuZGxlciwKICAgIHN1bW1hcnk9IkdldHRpbmcgdGhlIGJvb2siLAogICAgZGVzY3JpcHRpb249IkdldHRpbmcgdGhlIGJvb2sgYnkgaWQiLAogICAgcGFyYW1ldGVycz1bCiAgICAgICAgUGFyYW1ldGVyKAogICAgICAgICAgICBuYW1lPSJpZCIsCiAgICAgICAgICAgIGxvY2F0aW9uPVBhcmFtZXRlckxvY2F0aW9uLlBBVEgsCiAgICAgICAgICAgIHJlcXVpcmVkPVRydWUsCiAgICAgICAgICAgIHNjaGVtYT17InR5cGUiOiAiaW50ZWdlciJ9LAogICAgICAgICkKICAgIF0sCiAgICB0YWdzPVsiYm9vayJdLAopCmBgYAoKQXMgd2lsbCBiZSBzaG93biBmdXJ0aGVyLCBvcHRpb25hbAphcmd1bWVudHMgYHN1bW1hcnlgLCBgZGVzY3JpcHRpb25gLCBgcGFyYW1ldGVyc2AgYW5kIGB0YWdzYCBjYW4gYmUgb3ZlcnJpZGRlbgpvciBleHRlbmRlZCBieSBgb3BlcmF0aW9uX2RvY3NgIGFuZCBgcmVxdWVzdF9zY2hlbWFgIGRlY29yYXRvcnMuCgpUaGUgY3JlYXRpbmcgb2YgdGhlc2Ugcm91dGUgZGVmaW5pdGlvbnMgY2FuIGJlIGF1dG9tYXRlZCBhbmQgYWRhcHRlZCB0byBhCnNwZWNpZmljIHdlYi1mcmFtZXdvcmssIGFuZCBvcGVuYXBpZnkgaGFzIGJ1aWx0LWluIHN1cHBvcnQgZm9yIGEgZmV3IG9mIHRoZW0uClNlZSBbSW50ZWdyYXRpb24gd2l0aCB3ZWItZnJhbWV3b3Jrc10oI2ludGVncmF0aW9uLXdpdGgtd2ViLWZyYW1ld29ya3MpIGZvcgpkZXRhaWxzLgoKSW50ZWdyYXRpb24gd2l0aCB3ZWItZnJhbWV3b3JrcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgaXMgYnVpbHQtaW4gc3VwcG9ydCBmb3IgYSBmZXcgd2ViLWZyYW1ld29ya3MsIHdoaWNoIG1ha2VzIGNyZWF0aW5nIHRoZQpkb2N1bWVudGF0aW9uIGV2ZW4gZWFzaWVyIGFuZCBtb3JlIGZ1bi4gQW55IG90aGVyIGZyYW1ld29ya3MgY2FuIGJlIGludGVncmF0ZWQKd2l0aCBhIGxpdHRsZSBlZmZvcnQuIElmIHlvdSBhcmUgcmVhZHkgdG8gdGFrZSBvbiB0aGlzLCB5b3UgYXJlIHZlcnkgd2VsY29tZSB0bwpjcmVhdGUgYSBbcHVsbCByZXF1ZXN0XShodHRwczovL2dpdGh1Yi5jb20vRmF0YWwxdHkvb3BlbmFwaWZ5L3B1bGxzKS4KCiMjIyBhaW9odHRwCgpUaGUgZG9jdW1lbnRhdGlvbiBmb3IgW2Fpb2h0dHBdKGh0dHBzOi8vZ2l0aHViLmNvbS9haW8tbGlicy9haW9odHRwKQp3ZWItYXBwbGljYXRpb24gY2FuIGJlIGJ1aWx0IGluIHRocmVlIHdheXM6CgoqIFVzaW5nIGFuIGFscmVhZHkgZXhpc3RpbmcgW2BhaW9odHRwLndlYi5BcHBsaWNhdGlvbmBdKGh0dHBzOi8vZG9jcy5haW9odHRwLm9yZy9lbi9zdGFibGUvd2ViX3JlZmVyZW5jZS5odG1sI2FwcGxpY2F0aW9uKSBvYmplY3QKKiBVc2luZyBhIHNldCBvZiBbYGFpb2h0dHAud2ViLlJvdXRlRGVmYF0oaHR0cHM6Ly9kb2NzLmFpb2h0dHAub3JnL2VuL3N0YWJsZS93ZWJfcmVmZXJlbmNlLmh0bWwjYWlvaHR0cC53ZWIuUm91dGVEZWYpIG9iamVjdHMKKiBVc2luZyBhIHNldCBvZiBvYmplY3RzIGltcGxlbWVudGluZyBbYEFpb0h0dHBSb3V0ZURlZmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9GYXRhbDF0eS9vcGVuYXBpZnkvYmxvYi8yYmJmMmU5OWMwNmIzMWZhMmYxNDY1ZjJlYmMxMTg4ODRjZTJiYjk1L29wZW5hcGlmeS9leHQvd2ViL2Fpb2h0dHAucHkjTDQzLUw0NikgcHJvdG9jb2wKCkFsbCB3ZSBuZWVkIGlzIHRvIHBhc3MgZWl0aGVyIGFuIGFwcGxpY2F0aW9uLCBvciBhIHNldCBvZiByb3V0ZSBkZWZzIHRvCm1vZGlmaWVkIGBidWlsZF9zcGVjYCBmdW5jdGlvbi4gU2VlIHRoZSBleGFtcGxlOgpgYGBweXRob24KZnJvbSBhaW9odHRwIGltcG9ydCB3ZWIKZnJvbSBvcGVuYXBpZnkgaW1wb3J0IHJlcXVlc3Rfc2NoZW1hLCByZXNwb25zZV9zY2hlbWEKZnJvbSBvcGVuYXBpZnkuZXh0LndlYi5haW9odHRwIGltcG9ydCBidWlsZF9zcGVjCgpyb3V0ZXMgPSB3ZWIuUm91dGVUYWJsZURlZigpCgpAcmVzcG9uc2Vfc2NoZW1hKHN0ciwgbWVkaWFfdHlwZT0idGV4dC9wbGFpbiIpCkByb3V0ZXMucG9zdCgiLyIpCmFzeW5jIGRlZiBoZWxsbyhyZXF1ZXN0KToKICAgIHJldHVybiB3ZWIuUmVzcG9uc2UodGV4dD0iSGVsbG8sIHdvcmxkIikKCmFwcCA9IHdlYi5BcHBsaWNhdGlvbigpCmFwcC5hZGRfcm91dGVzKHJvdXRlcykKCnByaW50KGJ1aWxkX3NwZWMoYXBwKS50b195YW1sKCkpCmBgYApBcyBhIHJlc3VsdCwgd2Ugd2lsbCBnZXQgdGhlIGZvbGxvd2luZyBkb2N1bWVudDoKCmBgYHlhbWwKb3BlbmFwaTogMy4xLjAKaW5mbzoKICB0aXRsZTogQVBJCiAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgLzoKICAgIHBvc3Q6CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgdGV4dC9wbGFpbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKYGBgCgojIyMgV3JpdGluZyB5b3VyIG93biBpbnRlZ3JhdGlvbgoK8J+apyBUbyBiZSBkZXNjcmliZWQKCkRlY29yYXRvcnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk9wZW5hcGlmeSBoYXMgc2V2ZXJhbCBkZWNvcmF0b3JzIHRoYXQgZW1iZWQgbmVjZXNzYXJ5IHNwZWNpZmljIGluZm9ybWF0aW9uIGZvcgpsYXRlciB1c2Ugd2hlbiBidWlsZGluZyB0aGUgT3BlbkFQSSBkb2N1bWVudC4gSW4gZ2VuZXJhbCwgZGVjb3JhdG9ycyB3aWxsCmRlZmluZSB0aGUgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGluCnRoZSBbT3BlcmF0aW9uIE9iamVjdF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpCndoaWNoIGRlc2NyaWJlcyBhIHNpbmdsZSBBUEkgb3BlcmF0aW9uIG9uIGEgcGF0aC4gV2Ugd2lsbCBsb29rIGF0IHdoYXQgZWFjaApkZWNvcmF0b3IgcGFyYW1ldGVyIGlzIHJlc3BvbnNpYmxlIGZvciBhbmQgaG93IGl0IGlzIHJlZmxlY3RlZCBpbiB0aGUgZmluYWwKZG9jdW1lbnQuCgojIyMgR2VuZXJpYyBvcGVyYXRpb24gaW5mbwoKRGVjb3JhdG9yIGBvcGVyYXRpb25fZG9jc2AgYWRkcyBnZW5lcmljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBPcGVyYXRpb24gb2JqZWN0LAp3aGljaCBpbmNsdWRlcyBzdW1tYXJ5LCBkZXNjcmlwdGlvbiwgdGFncywgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiBhbmQKZGVwcmVjYXRpb24gbWFya2VyLgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaWZ5IGltcG9ydCBvcGVyYXRpb25fZG9jcwpgYGAKCiMjIyMgc3VtbWFyeQoKQW4gb3B0aW9uYWwsIHN0cmluZyBzdW1tYXJ5LCBpbnRlbmRlZCB0byBhcHBseSB0byB0aGUgb3BlcmF0aW9uLiBUaGlzIGFmZmVjdHMKdGhlIHZhbHVlIG9mCnRoZSBbYHN1bW1hcnlgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkgZmllbGQgb2YKdGhlIE9wZXJhdGlvbiBvYmplY3QuCgp8IFBvc3NpYmxlIHR5cGVzIHwgRXhhbXBsZXMgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgYHN0cmAgICAgICAgICAgfCBgIkdldHRpbmcgbmV3IGJvb2tzImAgfAoKIyMjIyBkZXNjcmlwdGlvbgoKQW4gb3B0aW9uYWwsIHN0cmluZyBkZXNjcmlwdGlvbiwgaW50ZW5kZWQgdG8gYXBwbHkgdG8gdGhlCm9wZXJhdGlvbi4gW0NvbW1vbk1hcmsgc3ludGF4XShodHRwczovL3NwZWMuY29tbW9ubWFyay5vcmcpIE1BWSBiZSB1c2VkIGZvcgpyaWNoIHRleHQgcmVwcmVzZW50YXRpb24uIFRoaXMgYWZmZWN0cyB0aGUgdmFsdWUgb2YKdGhlIFtgZGVzY3JpcHRpb25gXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkKZmllbGQgb2YgdGhlIE9wZXJhdGlvbiBvYmplY3QuCgp8IFBvc3NpYmxlIHR5cGVzIHwgRXhhbXBsZXMgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgYHN0cmAgICAgICAgICAgfCBgIlJldHVybnMgYSBsaXN0IG9mIGJvb2tzImAgfAoKIyMjIyB0YWdzCgpBIGxpc3Qgb2YgdGFncyBmb3IgQVBJIGRvY3VtZW50YXRpb24gY29udHJvbC4gVGFncyBjYW4gYmUgdXNlZCBmb3IgbG9naWNhbApncm91cGluZyBvZiBvcGVyYXRpb25zIGJ5IHJlc291cmNlcyBvciBhbnkgb3RoZXIgcXVhbGlmaWVyLiBUaGlzIGFmZmVjdHMgdGhlCnZhbHVlIG9mIHRoZSBbYHRhZ3NgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkKZmllbGQgb2YgdGhlIE9wZXJhdGlvbiBvYmplY3QuCgp8IFBvc3NpYmxlIHR5cGVzICB8IEV4YW1wbGVzICAgfAp8LS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tfAp8IGBTZXF1ZW5jZVtzdHJdYCB8IGBbImJvb2siXWAgfAoKIyMjIyBvcGVyYXRpb25faWQKClVuaXF1ZSBzdHJpbmcgdXNlZCB0byBpZGVudGlmeSB0aGUgb3BlcmF0aW9uLiBUaGlzIGFmZmVjdHMgdGhlCnZhbHVlIG9mCnRoZSBbYG9wZXJhdGlvbklkYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpCmZpZWxkIG9mIHRoZSBPcGVyYXRpb24gb2JqZWN0LgoKfCBQb3NzaWJsZSB0eXBlcyB8IEV4YW1wbGVzICAgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS18CnwgYHN0cmAgICAgICAgICAgfCBgZ2V0Qm9va3NgIHwKCiMjIyMgZXh0ZXJuYWxfZG9jcwoKQWRkaXRpb25hbCBleHRlcm5hbCBkb2N1bWVudGF0aW9uIGZvciB0aGUgb3BlcmF0aW9uLiBJdCBjYW4gYmUgYSBzaW5nbGUgdXJsIG9yCih1cmwsIGRlc2NyaXB0aW9uKSBwYWlyLiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHN1bW1hcnlgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkgZmllbGQgb2YKdGhlIE9wZXJhdGlvbiBvYmplY3QuCgp8IFBvc3NpYmxlIHR5cGVzICAgIHwgRXhhbXBsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBgc3RyYCAgICAgICAgICAgICB8IGAiaHR0cHM6Ly9leGFtcGxlLm9yZy9kb2NzL2Jvb2tzImAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBUdXBsZVtzdHIsIHN0cl1gIHwgYCgiaHR0cHM6Ly9leGFtcGxlLm9yZy9kb2NzL2Jvb2tzIiwgIkV4dGVybmFsIGRvY3VtZW50YXRpb24gZm9yIC9ib29rcyIpYCB8CgojIyMjIGRlcHJlY2F0ZWQKCkRlY2xhcmVzIHRoZSBvcGVyYXRpb24gdG8gYmUgZGVwcmVjYXRlZC4gQ29uc3VtZXJzIFNIT1VMRCByZWZyYWluIGZyb20gdXNhZ2UKb2YgdGhlIGRlY2xhcmVkIG9wZXJhdGlvbi4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4gVGhpcyBhZmZlY3RzIHRoZSB2YWx1ZSBvZgp0aGUgW2BkZXByZWNhdGVkYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpIGZpZWxkCm9mIHRoZSBPcGVyYXRpb24gb2JqZWN0LgoKfCBQb3NzaWJsZSB0eXBlcyB8IEV4YW1wbGVzICAgICAgICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IGBib29sYCAgICAgICAgIHwgPGNvZGUgbGFuZz0icHl0aG9uIj5UcnVlPC9wcmU+IHwKCiMjIyBSZXF1ZXN0CgpEZWNvcmF0b3IgYHJlcXVlc3Rfc2NoZW1hYCBhZGRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcGVyYXRpb24gcmVxdWVzdHMuClJlcXVlc3QgY2FuIGhhdmUgYSBib2R5LCBxdWVyeSBwYXJhbWV0ZXJzLCBoZWFkZXJzIGFuZCBjb29raWVzLgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaWZ5IGltcG9ydCByZXF1ZXN0X3NjaGVtYQpgYGAKCiMjIyMgYm9keQoKQSByZXF1ZXN0IGJvZHkgY2FuIGJlIGRlc2NyaWJlZCBlbnRpcmVseSBieSBvbmUgYGJvZHlgIHBhcmFtZXRlciBvZiB0eXBlIGBCb2R5YApvciBwYXJ0aWFsbHkgYnkgc2VwYXJhdGUgYGJvZHlfKmAgcGFyYW1ldGVycyAoc2VlIGJlbG93KS4KCkluIHRoZSBmaXJzdCBjYXNlIGl0IGlzIGBvcGVuYXBpZnkuY29yZS5tb2RlbHMuQm9keWAgb2JqZWN0IHRoYXQgaGFzIGFsbCB0aGUKc2VwYXJhdGUgYGJvZHlfKmAgcGFyYW1ldGVycyBpbnNpZGUuIFRoaXMgYWZmZWN0cyB0aGUgdmFsdWUgb2YKdGhlIFtgcmVxdWVzdEJvZHlgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkKZmllbGQgb2YgdGhlIE9wZXJhdGlvbiBvYmplY3QuCgpJbiB0aGUgc2Vjb25kIGNhc2UgaXQgaXMgdGhlIHJlcXVlc3QgYm9keSBQeXRob24gZGF0YSB0eXBlIGZvciB3aGljaCB0aGUgSlNPTgpTY2hlbWEgd2lsbCBiZSBidWlsdC4gVGhpcyBhZmZlY3RzIHRoZSB2YWx1ZSBvZgp0aGUgW2ByZXF1ZXN0Qm9keWBdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0KQpmaWVsZCBvZiB0aGUgT3BlcmF0aW9uIG9iamVjdCwgb3IgbW9yZSBwcmVjaXNlbHksCnRoZSBbYHNjaGVtYWBdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNtZWRpYS10eXBlLW9iamVjdCkgZmllbGQgb2YKTWVkaWEgVHlwZSBvYmplY3QgaW5zaWRlCnRoZSB2YWx1ZQpvZiBbYGNvbnRlbnRgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcmVxdWVzdC1ib2R5LW9iamVjdCkgZmllbGQKb2YgUmVxdWVzdCBCb2R5IG9iamVjdC4KCjx0YWJsZT4KPHRyPgo8dGg+UG9zc2libGUgdHlwZXM8L3RoPgo8dGg+RXhhbXBsZXM8L3RoPgo8L3RyPgo8dHI+Cjx0ZD4gPGNvZGU+VHlwZTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCkJvb2sKYGBgCgo8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4gPGNvZGU+Qm9keTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCkJvZHkoCiAgICB2YWx1ZV90eXBlPUJvb2ssCiAgICBtZWRpYV90eXBlPSJhcHBsaWNhdGlvbi9qc29uIiwKICAgIHJlcXVpcmVkPVRydWUsCiAgICBkZXNjcmlwdGlvbj0iQSBib29rIiwKICAgIGV4YW1wbGU9ewogICAgICAgICJ0aXRsZSI6ICJBbm5hIEthcmVuaW5hIiwKICAgICAgICAiYXV0aG9yIjogIkxlbyBUb2xzdG95IiwKICAgICAgICAieWVhciI6IDE4NzcsCiAgICB9LAopCmBgYAoKPC90ZD4KPC90cj4KPC90YWJsZT4KCiMjIyMgbWVkaWFfdHlwZQoKQSBtZWRpYSB0eXBlCm9yIFttZWRpYSB0eXBlIHJhbmdlXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzIzMSNhcHBlbmRpeC1EKSBvZiB0aGUKcmVxdWVzdCBib2R5LiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHJlcXVlc3RCb2R5YF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpCmZpZWxkIG9mIHRoZSBPcGVyYXRpb24gb2JqZWN0LCBvciBtb3JlIHByZWNpc2VseSwKdGhlIGtleQpvZiBbYGNvbnRlbnRgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcmVxdWVzdC1ib2R5LW9iamVjdCkgZmllbGQKb2YgUmVxdWVzdCBCb2R5IG9iamVjdC4KClRoZSBkZWZhdWx0IHZhbHVlIGlzIGAiYXBwbGljYXRpb24vanNvbiJgLgoKfCBQb3NzaWJsZSB0eXBlcyB8IEV4YW1wbGVzICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgYHN0cmAgICAgICAgICAgfCBgImFwcGxpY2F0aW9uL3htbCJgIHwKCiMjIyMgYm9keV9yZXF1aXJlZAoKRGV0ZXJtaW5lcyBpZiB0aGUgcmVxdWVzdCBib2R5IGlzIHJlcXVpcmVkIGluIHRoZSByZXF1ZXN0LiBEZWZhdWx0cyB0byBmYWxzZS4KVGhpcyBhZmZlY3RzIHRoZSB2YWx1ZSBvZgp0aGUgW2ByZXF1ZXN0Qm9keWBdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0KQpmaWVsZCBvZiB0aGUgT3BlcmF0aW9uIG9iamVjdCwgb3IgbW9yZSBwcmVjaXNlbHksCnRoZSBbYHJlcXVpcmVkYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3JlcXVlc3QtYm9keS1vYmplY3QpCmZpZWxkIG9mIFJlcXVlc3QgQm9keSBvYmplY3QuCgp8IFBvc3NpYmxlIHR5cGVzIHwgRXhhbXBsZXMgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfAp8IGBib29sYCAgICAgICAgIHwgYFRydWVgICAgfAoKIyMjIyBib2R5X2Rlc2NyaXB0aW9uCgpBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSByZXF1ZXN0IGJvZHkuIFRoaXMgY291bGQgY29udGFpbiBleGFtcGxlcyBvZgp1c2UuIFtDb21tb25NYXJrIHN5bnRheF0oaHR0cHM6Ly9zcGVjLmNvbW1vbm1hcmsub3JnKSBNQVkgYmUgdXNlZCBmb3IgcmljaCB0ZXh0CnJlcHJlc2VudGF0aW9uLiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHJlcXVlc3RCb2R5YF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpCmZpZWxkIG9mIHRoZSBPcGVyYXRpb24gb2JqZWN0LCBvciBtb3JlIHByZWNpc2VseSwKdGhlIFtgZGVzY3JpcHRpb25gXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcmVxdWVzdC1ib2R5LW9iamVjdCkKZmllbGQgb2YgUmVxdWVzdCBCb2R5IG9iamVjdC4KCnwgUG9zc2libGUgdHlwZXMgfCBFeGFtcGxlcyAgIHwKfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tfAp8IGBzdHJgICAgICAgICAgIHwgYCJBIGJvb2siYCB8CgojIyMjIGJvZHlfZXhhbXBsZQoKRXhhbXBsZSBvZiB0aGUgcmVxdWVzdCBib2R5LiBUaGUgZXhhbXBsZSBvYmplY3QgU0hPVUxEIGJlIGluIHRoZSBjb3JyZWN0IGZvcm1hdAphcyBzcGVjaWZpZWQgYnkgdGhlIG1lZGlhIHR5cGUuIFRoaXMgYWZmZWN0cyB0aGUgdmFsdWUgb2YKdGhlIFtgcmVxdWVzdEJvZHlgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkKZmllbGQgb2YgdGhlIE9wZXJhdGlvbiBvYmplY3QsIG9yIG1vcmUgcHJlY2lzZWx5LAp0aGUgW2BleGFtcGxlYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI21lZGlhLXR5cGUtb2JqZWN0KSBmaWVsZApvZgpNZWRpYSBUeXBlIG9iamVjdCBpbnNpZGUKdGhlIHZhbHVlCm9mIFtgY29udGVudGBdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNyZXF1ZXN0LWJvZHktb2JqZWN0KSBmaWVsZApvZiBSZXF1ZXN0IEJvZHkgb2JqZWN0LgoKPHRhYmxlPgo8dHI+Cjx0aD5Qb3NzaWJsZSB0eXBlczwvdGg+Cjx0aD5FeGFtcGxlczwvdGg+CjwvdHI+Cjx0cj4KPHRkPiA8Y29kZT5Bbnk8L2NvZGU+IDwvdGQ+Cjx0ZD4KCmBgYHB5dGhvbgp7CiAgICAidGl0bGUiOiAiQW5uYSBLYXJlbmluYSIsCiAgICAiYXV0aG9yIjogIkxlbyBUb2xzdG95IiwKICAgICJ5ZWFyIjogMTg3NywKfQpgYGAKCjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMjIGJvZHlfZXhhbXBsZXMKCkV4YW1wbGVzIG9mIHRoZSByZXF1ZXN0IGJvZHkuIEVhY2ggZXhhbXBsZSBvYmplY3QgU0hPVUxEIG1hdGNoIHRoZSBtZWRpYSB0eXBlCmFuZCBzcGVjaWZpZWQgc2NoZW1hIGlmIHByZXNlbnQuIFRoaXMgYWZmZWN0cyB0aGUgdmFsdWUgb2YKdGhlIFtgcmVxdWVzdEJvZHlgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkKZmllbGQgb2YgdGhlIE9wZXJhdGlvbiBvYmplY3QsIG9yIG1vcmUgcHJlY2lzZWx5LAp0aGUgW2BleGFtcGxlc2BdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNtZWRpYS10eXBlLW9iamVjdCkgZmllbGQKb2YKTWVkaWEgVHlwZSBvYmplY3QgaW5zaWRlCnRoZSB2YWx1ZQpvZiBbYGNvbnRlbnRgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcmVxdWVzdC1ib2R5LW9iamVjdCkgZmllbGQKb2YgUmVxdWVzdCBCb2R5IG9iamVjdC4KClRoZSB2YWx1ZXMgb2YgdGhpcyBkaWN0aW9uYXJ5IGNvdWxkIGJlIGVpdGhlciBleGFtcGxlcyB0aGVtc2VsdmVzLApvciBgb3BlbmFwaWZ5LmNvcmUub3BlbmFwaS5tb2RlbHMuRXhhbXBsZWAgb2JqZWN0cy4gSW4gdGhlIGxhdHRlciBjYXNlLApleHRlbmRlZCBpbmZvcm1hdGlvbiBhYm91dCBleGFtcGxlcywgc3VjaCBhcyBhIHN1bW1hcnkgYW5kIGRlc2NyaXB0aW9uLCBjYW4gYmUKYWRkZWQgdG8gdGhlIFtFeGFtcGxlXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjZXhhbXBsZS1vYmplY3QpCm9iamVjdC4KCjx0YWJsZT4KPHRyPgo8dGg+UG9zc2libGUgdHlwZXM8L3RoPgo8dGg+RXhhbXBsZXM8L3RoPgo8L3RyPgo8dHI+Cjx0ZD4gPGNvZGU+TWFwcGluZ1tzdHIsIEFueV08L2NvZGU+IDwvdGQ+Cjx0ZD4KCmBgYHB5dGhvbgp7CiAgICAiQW5uYSBLYXJlbmluYSI6IHsKICAgICAgICAidGl0bGUiOiAiQW5uYSBLYXJlbmluYSIsCiAgICAgICAgImF1dGhvciI6ICJMZW8gVG9sc3RveSIsCiAgICAgICAgInllYXIiOiAxODc3LAogICAgfQp9CmBgYAoKPC90ZD4KPC90cj4KPHRyPgo8dGQ+IDxjb2RlPk1hcHBpbmdbc3RyLCBFeGFtcGxlXTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCnsKICAgICJBbm5hIEthcmVuaW5hIjogRXhhbXBsZSgKICAgICAgICB2YWx1ZT17CiAgICAgICAgICAgICJ0aXRsZSI6ICJBbm5hIEthcmVuaW5hIiwKICAgICAgICAgICAgImF1dGhvciI6ICJMZW8gVG9sc3RveSIsCiAgICAgICAgICAgICJ5ZWFyIjogMTg3NywKICAgICAgICB9LAogICAgICAgIHN1bW1hcnk9IlRoZSBib29rICdBbm5hIEthcmVuaW5hJyIsCiAgICApCn0KYGBgCgo8L3RkPgo8L3RyPgo8L3RhYmxlPgoKIyMjIyBxdWVyeV9wYXJhbXMKCkRpY3Rpb25hcnkgb2YgcXVlcnkgcGFyYW1ldGVycyBhcHBsaWNhYmxlIGZvciB0aGUgb3BlcmF0aW9uLCB3aGVyZSB0aGUga2V5IGlzCnRoZSBwYXJhbWV0ZXIgbmFtZSBhbmQgdGhlIHZhbHVlIGNhbiBiZSBlaXRoZXIgYSBQeXRob24gZGF0YSB0eXBlIG9yCmEgYFF1ZXJ5UGFyYW1gIG9iamVjdC4KCkluIHRoZSBmaXJzdCBjYXNlIGl0IGlzIHRoZSBQeXRob24gZGF0YSB0eXBlIGZvciB0aGUgcXVlcnkgcGFyYW1ldGVyIGZvciB3aGljaAp0aGUgSlNPTiBTY2hlbWEgd2lsbCBiZSBidWlsdC4gVGhpcyBhZmZlY3RzIHRoZSB2YWx1ZSBvZgp0aGUgW2BwYXJhbWV0ZXJzYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpCmZpZWxkIG9mIHRoZSBPcGVyYXRpb24gb2JqZWN0LCBvciBtb3JlIHByZWNpc2VseSwKdGhlIFtgc2NoZW1hYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3BhcmFtZXRlci1vYmplY3QpIGZpZWxkIG9mClBhcmFtZXRlciBvYmplY3QuCgpJbiB0aGUgc2Vjb25kIGNhc2UgaXQgaXMgYG9wZW5hcGlmeS5jb3JlLm1vZGVscy5RdWVyeVBhcmFtYCBvYmplY3QgdGhhdCBjYW4KaGF2ZSBleHRlbmRlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGFyYW1ldGVyLCBzdWNoIGFzIGEgZGVmYXVsdCB2YWx1ZSwKZGVwcmVjYXRpb24gbWFya2VyLCBleGFtcGxlcyBldGMuCgo8dGFibGU+Cjx0cj4KPHRoPlBvc3NpYmxlIHR5cGVzPC90aD4KPHRoPkV4YW1wbGVzPC90aD4KPC90cj4KPHRyPgo8dGQ+IDxjb2RlPk1hcHBpbmdbc3RyLCBUeXBlXTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCnsiY291bnQiOiBpbnR9CmBgYAoKPC90ZD4KPC90cj4KPHRyPgo8dGQ+IDxjb2RlPk1hcHBpbmdbc3RyLCBRdWVyeVBhcmFtXTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCnsKICAgICJjb3VudCI6IFF1ZXJ5UGFyYW0oCiAgICAgICAgdmFsdWVfdHlwZT1pbnQsCiAgICAgICAgZGVmYXVsdD0xMCwKICAgICAgICByZXF1aXJlZD1UcnVlLAogICAgICAgIGRlc2NyaXB0aW9uPSJMaW1pdHMgdGhlIG51bWJlciBvZiBib29rcyByZXR1cm5lZCIsCiAgICAgICAgZGVwcmVjYXRlZD1GYWxzZSwKICAgICAgICBhbGxvd0VtcHR5VmFsdWU9RmFsc2UsCiAgICAgICAgZXhhbXBsZT00MiwKICAgICkKfQpgYGAKCjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMjIGhlYWRlcnMKCkRpY3Rpb25hcnkgb2YgcmVxdWVzdCBoZWFkZXJzIGFwcGxpY2FibGUgZm9yIHRoZSBvcGVyYXRpb24sIHdoZXJlIHRoZSBrZXkgaXMKdGhlIGhlYWRlciBuYW1lIGFuZCB0aGUgdmFsdWUgY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhIGBIZWFkZXJgIG9iamVjdC4KCkluIHRoZSBmaXJzdCBjYXNlIGl0IGlzIHRoZSBoZWFkZXIgZGVzY3JpcHRpb24uIFRoaXMgYWZmZWN0cyB0aGUgdmFsdWUgb2YKdGhlIFtgcGFyYW1ldGVyc2BdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0KQpmaWVsZCBvZiB0aGUgT3BlcmF0aW9uIG9iamVjdCwgb3IgbW9yZSBwcmVjaXNlbHksCnRoZSBbYGRlc2NyaXB0aW9uYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3BhcmFtZXRlci1vYmplY3QpCmZpZWxkIG9mIFBhcmFtZXRlciBvYmplY3QuCgpJbiB0aGUgc2Vjb25kIGNhc2UgaXQgaXMgYG9wZW5hcGlmeS5jb3JlLm1vZGVscy5IZWFkZXJgIG9iamVjdCB0aGF0IGNhbiBoYXZlCmV4dGVuZGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBoZWFkZXIsIHN1Y2ggYXMgYSBkZXNjcmlwdGlvbiwgZGVwcmVjYXRpb24KbWFya2VyLCBleGFtcGxlcyBldGMuCgo8dGFibGU+Cjx0cj4KPHRoPlBvc3NpYmxlIHR5cGVzPC90aD4KPHRoPkV4YW1wbGVzPC90aD4KPC90cj4KPHRyPgo8dGQ+IDxjb2RlPk1hcHBpbmdbc3RyLCBzdHJdPC9jb2RlPiA8L3RkPgo8dGQ+CgpgYGBweXRob24KeyJYLVJlcXVlc3RlZC1XaXRoIjogIkluZm9ybWF0aW9uIGFib3V0IHRoZSBjcmVhdGlvbiBvZiB0aGUgcmVxdWVzdCJ9CmBgYAoKPC90ZD4KPC90cj4KPHRyPgo8dGQ+IDxjb2RlPk1hcHBpbmdbc3RyLCBIZWFkZXJdPC9jb2RlPiA8L3RkPgo8dGQ+CgpgYGBweXRob24KewogICAgIlgtUmVxdWVzdGVkLVdpdGgiOiBIZWFkZXIoCiAgICAgICAgZGVzY3JpcHRpb249IkluZm9ybWF0aW9uIGFib3V0IHRoZSBjcmVhdGlvbiBvZiB0aGUgcmVxdWVzdCIsCiAgICAgICAgcmVxdWlyZWQ9VHJ1ZSwKICAgICAgICB2YWx1ZV90eXBlPXN0ciwKICAgICAgICBkZXByZWNhdGVkPUZhbHNlLAogICAgICAgIGFsbG93RW1wdHlWYWx1ZT1GYWxzZSwKICAgICAgICBleGFtcGxlPSJYTUxIdHRwUmVxdWVzdCIsCiAgICApCn0KYGBgCgo8L3RkPgo8L3RyPgo8L3RhYmxlPgoKIyMjIyBjb29raWVzCgpEaWN0aW9uYXJ5IG9mIHJlcXVlc3QgY29va2llcyBhcHBsaWNhYmxlIGZvciB0aGUgb3BlcmF0aW9uLCB3aGVyZSB0aGUga2V5IGlzCnRoZSBjb29raWUgbmFtZSBhbmQgdGhlIHZhbHVlIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYSBgQ29va2llYCBvYmplY3QuCgpJbiB0aGUgZmlyc3QgY2FzZSBpdCBpcyB0aGUgY29va2llIGRlc2NyaXB0aW9uLiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHBhcmFtZXRlcnNgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkKZmllbGQgb2YgdGhlIE9wZXJhdGlvbiBvYmplY3QsIG9yIG1vcmUgcHJlY2lzZWx5LAp0aGUgW2BkZXNjcmlwdGlvbmBdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNwYXJhbWV0ZXItb2JqZWN0KQpmaWVsZCBvZiBQYXJhbWV0ZXIgb2JqZWN0LgoKSW4gdGhlIHNlY29uZCBjYXNlIGl0IGlzIGBvcGVuYXBpZnkuY29yZS5tb2RlbHMuQ29va2llYCBvYmplY3QgdGhhdCBjYW4gaGF2ZQpleHRlbmRlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29va2llLCBzdWNoIGFzIGEgZGVzY3JpcHRpb24sIGRlcHJlY2F0aW9uCm1hcmtlciwgZXhhbXBsZXMgZXRjLgoKPHRhYmxlPgo8dHI+Cjx0aD5Qb3NzaWJsZSB0eXBlczwvdGg+Cjx0aD5FeGFtcGxlczwvdGg+CjwvdHI+Cjx0cj4KPHRkPiA8Y29kZT5NYXBwaW5nW3N0ciwgc3RyXTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCnsiX19nYSI6ICJBIHJhbmRvbWx5IGdlbmVyYXRlZCBudW1iZXIgYXMgYSBjbGllbnQgSUQifQpgYGAKCjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPiA8Y29kZT5NYXBwaW5nW3N0ciwgQ29va2llXTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCnsKICAgICJfX2dhIjogQ29va2llKAogICAgICAgIGRlc2NyaXB0aW9uPSJBIHJhbmRvbWx5IGdlbmVyYXRlZCBudW1iZXIgYXMgYSBjbGllbnQgSUQiLAogICAgICAgIHJlcXVpcmVkPVRydWUsCiAgICAgICAgdmFsdWVfdHlwZT1zdHIsCiAgICAgICAgZGVwcmVjYXRlZD1GYWxzZSwKICAgICAgICBhbGxvd0VtcHR5VmFsdWU9RmFsc2UsCiAgICAgICAgZXhhbXBsZT0iMS4yLjM0NTY3ODkwMS4yMzQ1Njc4OTAxIiwKICAgICkKfQpgYGAKCjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMgUmVzcG9uc2UKCkRlY29yYXRvciBgcmVzcG9uc2Vfc2NoZW1hYCBkZXNjcmliZXMgYSBzaW5nbGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJIE9wZXJhdGlvbi4KUmVzcG9uc2UgY2FuIGhhdmUgYW4gSFRUUCBjb2RlLCBib2R5IGFuZCBoZWFkZXJzLiBJZiB0aGUgT3BlcmF0aW9uIHN1cHBvcnRzCm1vcmUgdGhhbiBvbmUgcmVzcG9uc2UsIHRoZW4gdGhlIGRlY29yYXRvciBtdXN0IGJlIGFwcGxpZWQgbXVsdGlwbGUgdGltZXMgdG8KY292ZXIgZWFjaCBvZiB0aGVtLgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaWZ5IGltcG9ydCByZXNwb25zZV9zY2hlbWEKYGBgCgojIyMjIGJvZHkKCkEgUHl0aG9uIGRhdGEgdHlwZSBmb3IgdGhlIHJlc3BvbnNlIGJvZHkgZm9yIHdoaWNoCnRoZSBKU09OIFNjaGVtYSB3aWxsIGJlIGJ1aWx0LiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHJlc3BvbnNlc2BdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0KQpmaWVsZCBvZiB0aGUgT3BlcmF0aW9uIG9iamVjdCwgb3IgbW9yZSBwcmVjaXNlbHksCnRoZSBbYHNjaGVtYWBdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNtZWRpYS10eXBlLW9iamVjdCkgZmllbGQgb2YKTWVkaWEgVHlwZSBvYmplY3QgaW5zaWRlIHRoZSB2YWx1ZQpvZiBbYGNvbnRlbnRgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcmVzcG9uc2Utb2JqZWN0KSBmaWVsZApvZiBSZXNwb25zZSBvYmplY3QuCgp8IFBvc3NpYmxlIHR5cGVzIHwgRXhhbXBsZXMgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfAp8IGBUeXBlYCAgICAgICAgIHwgYEJvb2tgICAgfAoKIyMjIyBodHRwX2NvZGUKCkFuIEhUVFAgY29kZSBvZiB0aGUgcmVzcG9uc2UuIFRoaXMgYWZmZWN0cyB0aGUgdmFsdWUgb2YKdGhlIFtgcmVzcG9uc2VzYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpCmZpZWxkIG9mIHRoZSBPcGVyYXRpb24gb2JqZWN0LCBvciBtb3JlIHByZWNpc2VseSwgdGhlIHBhdHRlcm5lZCBrZXkgaW4KdGhlIFtSZXNwb25zZXNdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNyZXNwb25zZXMtb2JqZWN0KSBvYmplY3QuCgp8IFBvc3NpYmxlIHR5cGVzIHwgRXhhbXBsZXMgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfAp8IGBzdHJgICAgICAgICAgIHwgYCIyMDAiYCAgfAp8IGBpbnRgICAgICAgICAgIHwgYDQwMGAgICAgfAoKIyMjIyBtZWRpYV90eXBlCgpBIG1lZGlhIHR5cGUKb3IgW21lZGlhIHR5cGUgcmFuZ2VdKGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM3MjMxI2FwcGVuZGl4LUQpIG9mIHRoZQpyZXNwb25zZSBib2R5LiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHJlc3BvbnNlc2BdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0KQpmaWVsZCBvZiB0aGUgT3BlcmF0aW9uIG9iamVjdCwgb3IgbW9yZSBwcmVjaXNlbHksIHRoZSBrZXkKb2YgW2Bjb250ZW50YF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3Jlc3BvbnNlLW9iamVjdCkgZmllbGQgb2YKUmVzcG9uc2Ugb2JqZWN0LgoKVGhlIGRlZmF1bHQgdmFsdWUgaXMgYCJhcHBsaWNhdGlvbi9qc29uImAuCgp8IFBvc3NpYmxlIHR5cGVzIHwgRXhhbXBsZXMgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBgc3RyYCAgICAgICAgICB8IGAiYXBwbGljYXRpb24veG1sImAgfAoKIyMjIwoKIyMjIyBkZXNjcmlwdGlvbgoKQSBkZXNjcmlwdGlvbiBvZiB0aGUgcmVzcG9uc2UuIFtDb21tb25NYXJrIHN5bnRheF0oaHR0cHM6Ly9zcGVjLmNvbW1vbm1hcmsub3JnKQpNQVkgYmUgdXNlZCBmb3IgcmljaCB0ZXh0IHJlcHJlc2VudGF0aW9uLiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHJlc3BvbnNlc2BdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0KQpmaWVsZCBvZiB0aGUgT3BlcmF0aW9uIG9iamVjdCwgb3IgbW9yZSBwcmVjaXNlbHksCnRoZSBbYGRlc2NyaXB0aW9uYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3Jlc3BvbnNlLW9iamVjdCkgZmllbGQKb2YgUmVzcG9uc2Ugb2JqZWN0LgoKCnwgUG9zc2libGUgdHlwZXMgfCBFeGFtcGxlcyAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgYHN0cmAgICAgICAgICAgfCBgIkludmFsaWQgSUQgU3VwcGxpZWQiYCB8CgojIyMjIGhlYWRlcnMKCkRpY3Rpb25hcnkgb2YgcmVzcG9uc2UgaGVhZGVycyBhcHBsaWNhYmxlIGZvciB0aGUgb3BlcmF0aW9uLCB3aGVyZSB0aGUga2V5IGlzCnRoZSBoZWFkZXIgbmFtZSBhbmQgdGhlIHZhbHVlIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYSBgSGVhZGVyYCBvYmplY3QuCgpJbiB0aGUgZmlyc3QgY2FzZSBpdCBpcyB0aGUgaGVhZGVyIGRlc2NyaXB0aW9uLiBUaGlzIGFmZmVjdHMgdGhlIHZhbHVlIG9mCnRoZSBbYHJlc3BvbnNlc2BdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNvcGVyYXRpb24tb2JqZWN0KQpmaWVsZCBvZiB0aGUgT3BlcmF0aW9uIG9iamVjdCwgb3IgbW9yZSBwcmVjaXNlbHksCnRoZSBbYGRlc2NyaXB0aW9uYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI2hlYWRlci1vYmplY3QpCmZpZWxkIG9mIEhlYWRlciBvYmplY3QuCgpJbiB0aGUgc2Vjb25kIGNhc2UgaXQgaXMgYG9wZW5hcGlmeS5jb3JlLm1vZGVscy5IZWFkZXJgIG9iamVjdCB0aGF0IGNhbiBoYXZlCmV4dGVuZGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBoZWFkZXIsIHN1Y2ggYXMgYSBkZXNjcmlwdGlvbiwgZGVwcmVjYXRpb24KbWFya2VyLCBleGFtcGxlcyBldGMuCgo8dGFibGU+Cjx0cj4KPHRoPlBvc3NpYmxlIHR5cGVzPC90aD4KPHRoPkV4YW1wbGVzPC90aD4KPC90cj4KPHRyPgo8dGQ+IDxjb2RlPk1hcHBpbmdbc3RyLCBzdHJdPC9jb2RlPiA8L3RkPgo8dGQ+CgpgYGBweXRob24KeyJDb250ZW50LUxvY2F0aW9uIjogIkFuIGFsdGVybmF0ZSBsb2NhdGlvbiBmb3IgdGhlIHJldHVybmVkIGRhdGEifQpgYGAKCjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPiA8Y29kZT5NYXBwaW5nW3N0ciwgSGVhZGVyXTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCnsKICAgICJDb250ZW50LUxvY2F0aW9uIjogSGVhZGVyKAogICAgICAgIGRlc2NyaXB0aW9uPSJBbiBhbHRlcm5hdGUgbG9jYXRpb24gZm9yIHRoZSByZXR1cm5lZCBkYXRhIiwKICAgICAgICBleGFtcGxlPSIvaW5kZXguaHRtIiwKICAgICkKfQpgYGAKCjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMjIGV4YW1wbGUKCkV4YW1wbGUgb2YgdGhlIHJlc3BvbnNlIGJvZHkuIFRoZSBleGFtcGxlIG9iamVjdCBTSE9VTEQgYmUgaW4gdGhlIGNvcnJlY3QgZm9ybWF0CmFzIHNwZWNpZmllZCBieSB0aGUgbWVkaWEgdHlwZS4gVGhpcyBhZmZlY3RzIHRoZSB2YWx1ZSBvZgp0aGUgW2ByZXNwb25zZXNgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjb3BlcmF0aW9uLW9iamVjdCkKZmllbGQgb2YgdGhlIE9wZXJhdGlvbiBvYmplY3QsIG9yIG1vcmUgcHJlY2lzZWx5LAp0aGUgW2BleGFtcGxlYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI21lZGlhLXR5cGUtb2JqZWN0KSBmaWVsZApvZiBNZWRpYSBUeXBlIG9iamVjdCBpbnNpZGUgdGhlIHZhbHVlCm9mIFtgY29udGVudGBdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNyZXNwb25zZS1vYmplY3QpIGZpZWxkIG9mClJlc3BvbnNlIG9iamVjdC4KCjx0YWJsZT4KPHRyPgo8dGg+UG9zc2libGUgdHlwZXM8L3RoPgo8dGg+RXhhbXBsZXM8L3RoPgo8L3RyPgo8dHI+Cjx0ZD4gPGNvZGU+QW55PC9jb2RlPiA8L3RkPgo8dGQ+CgpgYGBweXRob24KewogICAgInRpdGxlIjogIkFubmEgS2FyZW5pbmEiLAogICAgImF1dGhvciI6ICJMZW8gVG9sc3RveSIsCiAgICAieWVhciI6IDE4NzcsCn0KYGBgCgo8L3RkPgo8L3RyPgo8L3RhYmxlPgoKIyMjIyBleGFtcGxlcwoKRXhhbXBsZXMgb2YgdGhlIHJlc3BvbnNlIGJvZHkuIEVhY2ggZXhhbXBsZSBvYmplY3QgU0hPVUxEIG1hdGNoIHRoZSBtZWRpYSB0eXBlCmFuZCBzcGVjaWZpZWQgc2NoZW1hIGlmIHByZXNlbnQuIFRoaXMgYWZmZWN0cyB0aGUgdmFsdWUgb2YKdGhlIFtgcmVzcG9uc2VzYF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI29wZXJhdGlvbi1vYmplY3QpCmZpZWxkIG9mIHRoZSBPcGVyYXRpb24gb2JqZWN0LCBvciBtb3JlIHByZWNpc2VseSwKdGhlIFtgZXhhbXBsZXNgXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjbWVkaWEtdHlwZS1vYmplY3QpIGZpZWxkCm9mIE1lZGlhIFR5cGUgb2JqZWN0IGluc2lkZSB0aGUgdmFsdWUKb2YgW2Bjb250ZW50YF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3Jlc3BvbnNlLW9iamVjdCkgZmllbGQgb2YKUmVzcG9uc2Ugb2JqZWN0LgoKVGhlIHZhbHVlcyBvZiB0aGlzIGRpY3Rpb25hcnkgY291bGQgYmUgZWl0aGVyIGV4YW1wbGVzIHRoZW1zZWx2ZXMsCm9yIGBvcGVuYXBpZnkuY29yZS5vcGVuYXBpLm1vZGVscy5FeGFtcGxlYCBvYmplY3RzLiBJbiB0aGUgbGF0dGVyIGNhc2UsCmV4dGVuZGVkIGluZm9ybWF0aW9uIGFib3V0IGV4YW1wbGVzLCBzdWNoIGFzIGEgc3VtbWFyeSBhbmQgZGVzY3JpcHRpb24sIGNhbiBiZQphZGRlZCB0byB0aGUgW0V4YW1wbGVdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNleGFtcGxlLW9iamVjdCkKb2JqZWN0LgoKPHRhYmxlPgo8dHI+Cjx0aD5Qb3NzaWJsZSB0eXBlczwvdGg+Cjx0aD5FeGFtcGxlczwvdGg+CjwvdHI+Cjx0cj4KPHRkPiA8Y29kZT5NYXBwaW5nW3N0ciwgQW55XTwvY29kZT4gPC90ZD4KPHRkPgoKYGBgcHl0aG9uCnsKICAgICJBbm5hIEthcmVuaW5hIjogewogICAgICAgICJ0aXRsZSI6ICJBbm5hIEthcmVuaW5hIiwKICAgICAgICAiYXV0aG9yIjogIkxlbyBUb2xzdG95IiwKICAgICAgICAieWVhciI6IDE4NzcsCiAgICB9Cn0KYGBgCgo8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4gPGNvZGU+TWFwcGluZ1tzdHIsIEV4YW1wbGVdPC9jb2RlPiA8L3RkPgo8dGQ+CgpgYGBweXRob24KewogICAgIkFubmEgS2FyZW5pbmEiOiBFeGFtcGxlKAogICAgICAgIHZhbHVlPXsKICAgICAgICAgICAgInRpdGxlIjogIkFubmEgS2FyZW5pbmEiLAogICAgICAgICAgICAiYXV0aG9yIjogIkxlbyBUb2xzdG95IiwKICAgICAgICAgICAgInllYXIiOiAxODc3LAogICAgICAgIH0sCiAgICAgICAgc3VtbWFyeT0iVGhlIGJvb2sgJ0FubmEgS2FyZW5pbmEnIiwKICAgICkKfQpgYGAKCjwvdGQ+CjwvdHI+CjwvdGFibGU+CgojIyMgU2VjdXJpdHkgcmVxdWlyZW1lbnRzCgpEZWNvcmF0b3IgYHNlY3VyaXR5X3JlcXVpcmVtZW50c2AKZGVjbGFyZXMgW3NlY3VyaXR5IG1lY2hhbmlzbXNdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNzZWN1cml0eVJlcXVpcmVtZW50T2JqZWN0KQp0aGF0IGNhbiBiZSB1c2VkIGZvciB0aGUgb3BlcmF0aW9uLgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaWZ5IGltcG9ydCBzZWN1cml0eV9yZXF1aXJlbWVudHMKYGBgCgpUaGlzIGRlY29yYXRvciB0YWtlcyBvbmUgb3IgbW9yZSBgU2VjdXJpdHlSZXF1aXJlbWVudGAgbWFwcGluZ3MsIHdoZXJlIHRoZSBrZXkKaXMgdGhlIHJlcXVpcmVtZW50IG5hbWUgYW5kIHRoZSB2YWx1ZSBpcyBgU2VjdXJpdHlTY2hlbWVgIG9iamVjdC4gVGhlcmUgYXJlCmNsYXNzZXMgZm9yCmVhY2ggW3NlY3VyaXR5IHNjaGVtZV0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3NlY3VyaXR5LXNjaGVtZS1vYmplY3QpCndoaWNoIGNhbiBiZSBpbXBvcnRlZCBhcyBmb2xsb3dzOgoKYGBgcHl0aG9uCmZyb20gb3BlbmFwaWZ5LmNvcmUub3BlbmFwaS5tb2RlbHMgaW1wb3J0ICgKICAgIEFQSUtleVNlY3VyaXR5U2NoZW1lLAogICAgSFRUUFNlY3VyaXR5U2NoZW1lLAogICAgT0F1dGgyU2VjdXJpdHlTY2hlbWUsCiAgICBPcGVuSURDb25uZWN0U2VjdXJpdHlTY2hlbWUsCikKYGBgCgpGb3IgZXhhbXBsZSwgdG8gYWRkIGF1dGhvcml6YXRpb24gYnkgdG9rZW4sIHlvdSBjYW4gd3JpdGUgc29tZXRoaW5nIGxpa2UgdGhpczoKCmBgYHB5dGhvbgpmcm9tIG9wZW5hcGlmeSBpbXBvcnQgc2VjdXJpdHlfcmVxdWlyZW1lbnRzCmZyb20gb3BlbmFwaWZ5LmNvcmUub3BlbmFwaS5tb2RlbHMgaW1wb3J0ICgKICAgIEFQSUtleVNlY3VyaXR5U2NoZW1lLAogICAgU2VjdXJpdHlTY2hlbWVBUElLZXlMb2NhdGlvbiwKKQoKWEF1dGhUb2tlblNlY3VyaXR5UmVxdWlyZW1lbnQgPSB7CiAgICAieC1hdXRoLXRva2VuIjogQVBJS2V5U2VjdXJpdHlTY2hlbWUoCiAgICAgICAgbmFtZT0iWC1BdWgtVG9rZW4iLAogICAgICAgIGxvY2F0aW9uPVNlY3VyaXR5U2NoZW1lQVBJS2V5TG9jYXRpb24uSEVBREVSLAogICAgKQp9CgpAc2VjdXJpdHlfcmVxdWlyZW1lbnRzKFhBdXRoVG9rZW5TZWN1cml0eVJlcXVpcmVtZW50KQpkZWYgc2VjdXJlX29wZXJhdGlvbigpOgogICAgLi4uCmBgYAoKQW5kIHRoZSBnZW5lcmF0ZWQgc3BlY2lmaWNhdGlvbiBkb2N1bWVudCB3aWxsIGxvb2sgbGlrZSB0aGlzOgoKYGBgeWFtbApvcGVuYXBpOiAzLjEuMAppbmZvOgogIHRpdGxlOiBBUEkKICB2ZXJzaW9uOiAxLjAuMApwYXRoczoKICAvc2VjdXJlX3BhdGg6CiAgICBnZXQ6CiAgICAgIHNlY3VyaXR5OgogICAgICAtIHgtYXV0aC10b2tlbjogW10KY29tcG9uZW50czoKICBzZWN1cml0eVNjaGVtZXM6CiAgICB4LWF1dGgtdG9rZW46CiAgICAgIHR5cGU6IGFwaUtleQogICAgICBuYW1lOiBYLUF1aC1Ub2tlbgogICAgICBpbjogaGVhZGVyCmBgYAoKUGx1Z2lucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU29tZSBhc3BlY3RzIG9mIGNyZWF0aW5nIGFuIE9wZW5BUEkgZG9jdW1lbnQgY2FuIGJlIGNoYW5nZWQgdXNpbmcgcGx1Z2lucy4KVGhlcmUgaXMgYG9wZW5hcGlmeS5wbHVnaW5zLkJhc2VQbHVnaW5gIGJhc2UgY2xhc3MsIHdoaWNoIGhhcyBhbGwgdGhlIG1ldGhvZHMKYXZhaWxhYmxlIGZvciBkZWZpbml0aW9uLiBJZiB5b3Ugd2FudCB0byB3cml0ZSBhIHBsdWdpbiB0aGF0LCBmb3IgZXhhbXBsZSwgd2lsbApvbmx5IGdlbmVyYXRlIHNjaGVtYSBmb3IgcmVxdWVzdCBwYXJhbWV0ZXJzLCB0aGVuIGl0IHdpbGwgYmUgZW5vdWdoIGZvciB5b3UgdG8KZGVmaW5lIG9ubHkgb25lIGFwcHJvcHJpYXRlIG1ldGhvZCwgYW5kIGxlYXZlIHRoZSByZXN0IG5vbi1pbXBsZW1lbnRlZC4KUGx1Z2luIHN5c3RlbSB3b3JrcyBieSBnb2luZyB0aHJvdWdoIGFsbCByZWdpc3RlcmVkIHBsdWdpbnMgYW5kIGNhbGxpbmcKdGhlIGFwcHJvcHJpYXRlIG1ldGhvZC4gSWYgc3VjaCBhIG1ldGhvZCByYWlzZXMgYE5vdEltcGxlbWVudGVkRXJyb3JgIG9yCnJldHVybnMgYE5vbmVgLCBpdCBpcyBhc3N1bWVkIHRoYXQgdGhpcyBwbHVnaW4gZG9lc24ndCBwcm92aWRlIHRoZSBuZWNlc3NhcnkKZnVuY3Rpb25hbGl0eS4gSXRlcmF0aW9uIHN0b3BzIGF0IHRoZSBmaXJzdCBwbHVnaW4gdGhhdCByZXR1cm5lZCBzb21ldGhpbmcKb3RoZXIgdGhhbiBgTm9uZWAuCgpQbHVnaW5zIGFyZSByZWdpc3RlcmVkIHZpYSB0aGUgYHBsdWdpbnNgIGFyZ3VtZW50IG9mIHRoZSBgYnVpbGRfc3BlY2AgZnVuY3Rpb246CgpgYGBweXRob24KZnJvbSBvcGVuYXBpZnkgaW1wb3J0IEJhc2VQbHVnaW4sIGJ1aWxkX3NwZWMKCgpjbGFzcyBNeVBsdWdpbjEoQmFzZVBsdWdpbik6CiAgICBkZWYgc2NoZW1hX2hlbHBlciguLi4pOgogICAgICAgICMgcmV0dXJuIHNvbWV0aGluZyBtZWFuaW5nZnVsIGhlcmUsIHNlZSB0aGUgZm9sbG93aW5nIGNoYXB0ZXJzCiAgICAgICAgLi4uCgoKYnVpbGRfc3BlYyguLi4sIHBsdWdpbnM9W015UGx1Z2luMSgpXSkKYGBgCgojIyMgYHNjaGVtYV9oZWxwZXJgCgpPcGVuQVBJIFtTY2hlbWFdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNzY2hlbWFPYmplY3QpIG9iamVjdAppcyBidWlsdCBmcm9tIHB5dGhvbiB0eXBlcyBzdG9yZWQgaW4gdGhlIGB2YWx1ZV90eXBlYCBhdHRyaWJ1dGUgb2YgdGhlCmZvbGxvd2luZyBvcGVuYXBpZnkgZGF0YWNsYXNzZXMgZGVmaW5lZCBpbiBgb3BlbmFwaWZ5LmNvcmUubW9kZWxzYDoKKiBgQm9keWAKKiBgQ29va2llYAoqIGBIZWFkZXJgCiogYFF1ZXJ5UGFyYW1gCgpPdXQgb2YgdGhlIGJveCwgdGhlIHNjaGVtYSBpcyBnZW5lcmF0ZWQgYnkgdXNpbmcKW2BtYXNodW1hcm9gXShodHRwczovL2dpdGh1Yi5jb20vRmF0YWwxdHkvbWFzaHVtYXJvKSBsaWJyYXJ5LCBidXQgc3VwcG9ydApmb3IgdGhpcmQtcGFydHkgZW50aXR5IHNjaGVtYSBnZW5lcmF0b3JzIGNhbiBiZSBhY2hpZXZlZCB0aHJvdWdoCmBzY2hlbWFfaGVscGVyYCBtZXRob2QuIEZvciBleGFtcGxlLCBoZXJlJ3Mgd2hhdCBhIHBsdWdpbiBmb3IgcHlkYW50aWMgbW9kZWxzCm1pZ2h0IGxvb2sgbGlrZToKCmBgYHB5dGhvbgpmcm9tIHR5cGluZyBpbXBvcnQgQW55Cgpmcm9tIG9wZW5hcGlmeSBpbXBvcnQgQmFzZVBsdWdpbgpmcm9tIG9wZW5hcGlmeS5jb3JlLm1vZGVscyBpbXBvcnQgQm9keSwgQ29va2llLCBIZWFkZXIsIFF1ZXJ5UGFyYW0KZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsCgoKY2xhc3MgUHlkYW50aWNTY2hlbWFQbHVnaW4oQmFzZVBsdWdpbik6CiAgICBkZWYgc2NoZW1hX2hlbHBlcigKICAgICAgICBzZWxmLAogICAgICAgIG9iajogQm9keSB8IENvb2tpZSB8IEhlYWRlciB8IFF1ZXJ5UGFyYW0sCiAgICAgICAgbmFtZTogc3RyIHwgTm9uZSA9IE5vbmUsCiAgICApIC0+IGRpY3Rbc3RyLCBBbnldIHwgTm9uZToKICAgICAgICBpZiBpc3N1YmNsYXNzKG9iai52YWx1ZV90eXBlLCBCYXNlTW9kZWwpOgogICAgICAgICAgICBzY2hlbWEgPSBvYmoudmFsdWVfdHlwZS5tb2RlbF9qc29uX3NjaGVtYSgKICAgICAgICAgICAgICAgIHJlZl90ZW1wbGF0ZT0iIy9jb21wb25lbnRzL3NjaGVtYXMve21vZGVsfSIKICAgICAgICAgICAgKQogICAgICAgICAgICBzZWxmLnNwZWMuY29tcG9uZW50cy5zY2hlbWFzLnVwZGF0ZShzY2hlbWEucG9wKCIkZGVmcyIsIHt9KSkKICAgICAgICAgICAgcmV0dXJuIHNjaGVtYQpgYGAKCiMjIyBtZWRpYV90eXBlX2hlbHBlcgoKQSBtZWRpYSB0eXBlIGlzIHVzZWQgaW4gT3BlbkFQSSBSZXF1ZXN0CltCb2R5XShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcmVxdWVzdC1ib2R5LW9iamVjdCkgYW5kCltSZXNwb25zZV0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3Jlc3BvbnNlLW9iamVjdCkgb2JqZWN0cy4KQnkgZGVmYXVsdCwgYGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbWAgaXMgYXBwbGllZCBmb3IgYGJ5dGVzYCBvciBgYnl0ZWFycmF5YAp0eXBlcywgYW5kIGBhcHBsaWNhdGlvbi9qc29uYCBpcyBhcHBsaWVkIG90aGVyd2lzZS4gWW91IGNhbiBzdXBwb3J0IG1vcmUgbWVkaWEKdHlwZXMgb3Igb3ZlcnJpZGUgZXhpc3Rpbmcgb25lcyB3aXRoIGBtZWRpYV90eXBlX2hlbHBlcmAgbWV0aG9kLgoKTGV0J3MgaW1hZ2luZSB0aGF0IHlvdSBoYXZlIGFuIEFQSSByb3V0ZSB0aGF0IHJldHVybnMgUE5HIGltYWdlcyBhcyB0aGUgYm9keS4KWW91IGNhbiBoYXZlIGEgc2VwYXJhdGUgbW9kZWwgY2xhc3MgcmVwcmVzZW50aW5nIGltYWdlcywgYnV0IHRoZSBtb3JlIGNvbW1vbgpjYXNlIGlzIHRvIHVzZSBgdHlwaW5nLkFubm90YXRlZGAgd3JhcHBlciBmb3IgYnl0ZXMuIEhlcmUncyB3aGF0IGEgcGx1Z2luIGZvcgpgaW1hZ2UvcG5nYCBtZWRpYSB0eXBlIG1pZ2h0IGxvb2sgbGlrZToKCmBgYHB5dGhvbgpmcm9tIHR5cGluZyBpbXBvcnQgQW5ub3RhdGVkLCBBbnksIERpY3QsIE9wdGlvbmFsCgpmcm9tIG9wZW5hcGlmeSBpbXBvcnQgQmFzZVBsdWdpbiwgYnVpbGRfc3BlYywgcmVzcG9uc2Vfc2NoZW1hCmZyb20gb3BlbmFwaWZ5LmNvcmUubW9kZWxzIGltcG9ydCBCb2R5LCBSb3V0ZURlZgoKSW1hZ2VQTkcgPSBBbm5vdGF0ZWRbYnl0ZXMsICJQTkciXQoKCmNsYXNzIEltYWdlUE5HUGx1Z2luKEJhc2VQbHVnaW4pOgogICAgZGVmIG1lZGlhX3R5cGVfaGVscGVyKAogICAgICAgIHNlbGYsIGJvZHk6IEJvZHksIHNjaGVtYTogRGljdFtzdHIsIEFueV0KICAgICkgLT4gT3B0aW9uYWxbc3RyXToKICAgICAgICBpZiBib2R5LnZhbHVlX3R5cGUgaXMgSW1hZ2VQTkc6CiAgICAgICAgICAgIHJldHVybiAiaW1hZ2UvcG5nIgoKCkByZXNwb25zZV9zY2hlbWEoYm9keT1JbWFnZVBORykKZGVmIGZvbygpOgogICAgLi4uCgoKcm91dGVzID0gW1JvdXRlRGVmKCIvZm9vIiwgImdldCIsIGZvbyldCnNwZWMgPSBidWlsZF9zcGVjKHJvdXRlcywgcGx1Z2lucz1bSW1hZ2VQTkdQbHVnaW4oKV0pCnByaW50KHNwZWMudG9feWFtbCgpKQpgYGAKClRoZSByZXN1bHRpbmcgZG9jdW1lbnQgd2lsbCBjb250YWluIGBpbWFnZS9wbmdgIGNvbnRlbnQgaW4gdGhlIHJlc3BvbnNlOgpgYGB5YW1sCm9wZW5hcGk6IDMuMS4wCmluZm86CiAgdGl0bGU6IEFQSQogIHZlcnNpb246IDEuMC4wCnBhdGhzOgogIC9mb286CiAgICBnZXQ6CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgaW1hZ2UvcG5nOgogICAgICAgICAgICAgIHNjaGVtYToge30KYGBgCg== readmeEtag: '"8a2ce70fa7d083f9add9442f30efc1d024b44267"' readmeLastModified: Mon, 04 Mar 2024 15:36:45 GMT repositoryId: 625681832 description: Framework agnostic OpenAPI Specification generation for code lovers created: '2023-04-09T21:19:19Z' updated: '2024-06-23T15:15:20Z' language: Python archived: false stars: 21 watchers: 3 forks: 0 owner: Fatal1ty logo: https://avatars.githubusercontent.com/u/323962?v=4 license: Apache-2.0 repoEtag: '"5d7d5351bd33e1f5d3b4a763c394f837ba3eceda57958ff48249ed70dec8016a"' repoLastModified: Sun, 23 Jun 2024 15:15:20 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/technocreatives/openapi-eller v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8yNzkwOTkvMzk2NzcyNjQtMzk2Zjk1NjgtNTE3OC0xMWU4LTlhZmMtYjg0NWZkZDIyMThmLnBuZyIgYWx0PSJFbGxlciBsb2dvIi8+CjwvcD4KClshW0FjdGlvbnMgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vdGVjaG5vY3JlYXRpdmVzL29wZW5hcGktZWxsZXIvd29ya2Zsb3dzL25vZGVqcy1idWlsZC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vdGVjaG5vY3JlYXRpdmVzL29wZW5hcGktZWxsZXIvYWN0aW9ucykgWyFbTlBNIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvb3BlbmFwaS1lbGxlci5zdmc/c3R5bGU9ZmxhdCldKGh0dHBzOi8vd3d3Lm5wbWpzLm9yZy9wYWNrYWdlL29wZW5hcGktZWxsZXIpCgojIE9wZW5BUEkgR2VuZXJhdG9yLCBlbGxlcj8KCkdlbmVyYXRlIE9wZW5BUEkgdjMgY2xpZW50cyBhbmQgc2VydmVycyBmcm9tIHRoZSBjb21tYW5kIGxpbmUgd2l0aCBub3RoaW5nIG1vcmUKdGhhbiBOb2RlLmpzLgoKCkp1c3QgcnVuOgoKYGBgCm5wbSBpIC1nIG9wZW5hcGktZWxsZXIKYGBgCgpTZWUgYG9wZW5hcGktZWxsZXIgLS1oZWxwYCBmb3IgdXNhZ2UgZGV0YWlscy4KCi0gW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vdGVjaG5vY3JlYXRpdmVzLmdpdGh1Yi5pby9vcGVuYXBpLWVsbGVyKQoKLS0tCgpMb29raW5nIGZvciBhbiBlYXN5IHdheSB0byBnZW5lcmF0ZSBhIG1vY2sgc2VydmVyIGZyb20gYW4gT3BlbkFQSSB2MyBzcGVjPyBXZSd2ZSBnb3QgeW91IGNvdmVyZWQuCgpUcnkgW29wZW5hcGktbW9jay1lbGxlcl0oaHR0cHM6Ly9naXRodWIuY29tL3RlY2hub2NyZWF0aXZlcy9vcGVuYXBpLW1vY2stZWxsZXIpIHRvZGF5IQoKLS0tCgoqKlBMRUFTRSBOT1RFOiBUaGlzIGNvZGViYXNlIGlzIHN0aWxsIGEgd29yay1pbi1wcm9ncmVzcywgYnV0IGl0IGRvZXMgcHJvZHVjZSBwcm9kdWN0aW9uLWdyYWRlIGNvZGUKZm9yIHRob3NlIHRhcmdldHMgbGlzdGVkIGFzIHN1cHBvcnRlZC4gQmVoYXZpb3VyIGlzIHN1YmplY3QgdG8gY2hhbmdlIGJldHdlZW4gdmFyaWFudHMgdW50aWwgMS4wLjAuKioKCiMjIEZlYXR1cmVzCgotIFN1cHBvcnRzKiB0aGUgZnVsbCBPcGVuQVBJIHYzIHNwZWNpZmljYXRpb24KLSBVc2VzIGFuIGludGVyY2VwdG9yIHBhdHRlcm4gZm9yIGhhbmRsaW5nIHNlY3VyaXR5IHNjaGVtYXMgaW4gY2xpZW50cwotIE9BdXRoIDIgY2xpZW50cyBjb21wbHkgd2l0aCBbUkZDNjc0OV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkpIGFuZCAKICBbUkZDNjc1MF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NTApIChCZWFyZXIgVG9rZW4gVXNhZ2UpCi0gVGFyZ2V0cyBjYW4gYmUgY29uZmlndXJlZCB3aXRoIGEgSlNPTiBvciBZQU1MIGZpbGUgZm9yIHNpbXBsZSwgcmVwcm9kdWNhYmxlIGdlbmVyYXRpb25zCi0gRWFzaWx5IGV4dGVuc2libGUgSGFuZGxlYmFycyB0ZW1wbGF0ZXMgZm9yIGNvcmUgc3RydWN0dXJlIG9mIGZpbGVzLCB3aXRoIFR5cGVTY3JpcHQgCiAgdGFyZ2V0LXNwZWNpZmljIGNvZGUgZm9yIGhhbmRsaW5nIHdpdGggcG9pbnR5IGJpdHMKCiMjIFN1cHBvcnRlZCB0YXJnZXRzCgotIENsaWVudHM6CiAgLSBLb3RsaW4gKEFuZHJvaWQpCiAgLSBTd2lmdCAoaU9TKQogIC0gVHlwZVNjcmlwdAotIFNlcnZlcnM6CiAgLSBBU1AuTkVUIChNVkMgRnJhbWV3b3JrIDQuNSkKClRoZXJlIGFyZSBvdGhlciB0YXJnZXRzIGluIHRoZSB0cmVlLCB0aG91Z2ggdGhleSBhcmUgYSB3b3JrLWluLXByb2dyZXNzLgoKIyMgUm9hZG1hcCB0byAwLjQKCi0gWyBdIEdlbmVyYXRpbmcgcGxhdGZvcm0tY29uZm9ybWFudCBBUEkgZG9jdW1lbnRhdGlvbgotIFsgXSBIYW5kbGUgcmV0dXJuaW5nIGhlYWRlcnMsIHN0YXR1cyBjb2RlcyBhbmQgcmF3IHJlc3BvbnNlIG9iamVjdHMgd2hlcmUgbmVjZXNzYXJ5Ci0gWyBdIEhhbmRsZSBtYW5kYXRvcnkgY29uZmlndXJhdGlvbiBmb3IgdGFyZ2V0cwotIFsgXSBHZW5lcmF0ZSBkb2N1bWVudGF0aW9uIGZvciB0YXJnZXQgY29uZmlndXJhdGlvbgoKIyMgVXNlcnMKCi0gVGhlIFRlY2hubyBDcmVhdGl2ZXMKCiMjIENvbnRyaWJ1dGluZwoKV2UgaGFwcGlseSBhY2NlcHQgY29udHJpYnV0aW9ucyEgV2Ugc2ltcGx5IGFzayB0aGF0IHlvdSBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgYW55IGRlcGVuZGVuY2llcyAKb2YgeW91ciB0YXJnZXRzIHVzZSBhIHBlcm1pc3NpdmUgbGljZW5zZSBjb21wYXRpYmxlIHdpdGggdGhlIElTQyBsaWNlbnNlICh3aGljaCBtZWFucyBubyBBR1BMIG9yIApHUEwgZGVwZW5kZW5jaWVzLCB1bmZvcnR1bmF0ZWx5LikKCklmIHlvdSdyZSB1bnN1cmUsIG9wZW4gYW4gaXNzdWUgYW5kIHdlIGNhbiBoZWxwIHlvdSBvdXQhCgojIyBMaWNlbnNlCgpJU0MgbGljZW5zZSAtIHNlZSBMSUNFTlNFIGZpbGUuCgpBbnkgY29kZSBvdXRwdXR0ZWQgYnkgdGhpcyBnZW5lcmF0b3IgaXMgdGhlIGxpY2Vuc2Ugb2YgeW91ciBjaG9pY2UuCg== readmeEtag: '"14a1bcf12a26b2a7e23f2ea775a520b7ac613910"' readmeLastModified: Tue, 12 May 2020 08:48:11 GMT repositoryId: 130574986 description: Generate OpenAPI v3 clients and servers from the command line created: '2018-04-22T14:25:35Z' updated: '2024-06-10T18:55:28Z' language: TypeScript archived: false stars: 20 watchers: 8 forks: 4 owner: technocreatives logo: https://avatars.githubusercontent.com/u/4668783?v=4 license: ISC repoEtag: '"b4914c6b7b7a569f386984344ce75f32ac408f5da51359af59c483fddfc3534c"' repoLastModified: Mon, 10 Jun 2024 18:55:28 GMT foundInMaster: true category: - Server - Parsers id: 9ab6e634f0f3553238502aa27b3e5a45 - source: openapi3 tags repository: https://github.com/vanmoof/gopenapi v3: true repositoryMetadata: base64Readme: >- PSBHT3BlbkFQSQoKaW1hZ2U6aHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvVmFuTW9vZi9nb3BlbmFwaS5zdmc/c3R5bGU9c3ZnJmNpcmNsZS10b2tlbj0zYWY2MjY4YjJjOGRhMjBjMjI2MzIyNjE4ODJkMzU4ZTMwMjdjMDQ1WyJDaXJjbGVDSSIsIGxpbms9Imh0dHBzOi8vY2lyY2xlY2kuY29tL2doL1Zhbk1vb2YvZ29wZW5hcGkiXQoKQW4gT3BlbkFQSSB1dGlsaXR5IGZvciBHby4KVGhpcyBwcm9qZWN0IGFpbXMgdG8gYnJpbmcgc3VwcG9ydCBvZiBPcGVuQVBJIHYzLgoKPT0gVXNhZ2UKCmBgYGJhc2gKJCBnb3BlbmFwaSBbY29tbWFuZF0gW2FyZ10KYGBgCgo9PT0gR2VuZXJhdGluZyBTcGVjaWZpY2F0aW9ucyBGcm9tIENvZGUKCmBgYGJhc2gKZ29wZW5hcGkgZ2VuZXJhdGUgc3BlYyBbb3B0aW9uYWwgcGF0aF0gW2ZsYWdzXQpgYGAKCj09PT0gQXJncwoKYGBgYmFzaApbb3B0aW9uYWwgcGF0aF0gICBPcHRpb25hbGx5IHNwZWNpZnkgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0byBzZWFyY2guIEFjY2VwdHMgYWJzb2x1dGUgcGF0aHMuIFJlbGF0aXZlIHBhdGhzIGFyZSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuIChkZWZhdWx0ICIuIikKYGBgCgo9PT09IEZsYWdzCgpgYGBiYXNoCi1mLCAtLWZvcm1hdCBzdHJpbmcgICBUaGUgZm9ybWF0IG9mIHRoZSBvdXRwdXQuIE1heSBiZSBqc29uIG9yIHlhbWwgKGRlZmF1bHQgImpzb24iKQotbywgLS1vdXRwdXQgc3RyaW5nICAgV2hlcmUgdGhlIG91dHB1dCBzaG91bGQgYmUgZGlyZWN0ZWQuIE1heSBiZSAnLScgKHN0ZG91dCkgb3IgYSBwYXRoIHRvIGEgZmlsZSAoZGVmYXVsdCAiLSIpCmBgYAoKPT09PSBGb3JtYXQKCkNvZGUgaXMgYW5ub3RhdGVkIHdpdGggZGlmZmVyZW50IHR5cGVzIG9mIGNvbW1lbnRzIHRoYXQgaGVscCBnZW5lcmF0ZSB0aGUgc3BlYy4KClRoZSBjb21tZW50IGNvbnRhaW5zIGEga2V5d29yZCB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgT3BlbkFQSSBlbGVtZW50LgoKVGhlIGNvbnRlbnQgb2YgdGhlIGNvbW1lbnQgc2hvdWxkIGJlIGEgdmFsaWQgWUFNTCBPcGVuQVBJIGVsZW1lbnQKCj09PT09IEluZm8KCkJlZ2luIGEgY29tbWVudCB3aXRoIGBnb3BlbmFwaTppbmZvYCBhbmQgZm9sbG93IHVwIHdpdGggYSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBPcGVuQVBJIEluZm8gZWxlbWVudC4KClRoaXMgZWxlbWVudCBpcyB0aGVuIHNldCB0byB0aGUgYGluZm9gIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpY2F0aW9uLgoKYGBgZ28KcGFja2FnZSBtYWluCgovKgpnb3BlbmFwaTppbmZvCnRpdGxlOiBUaGUgQXBwIE5hbWUKdmVyc2lvbjogMS4wCmRlc2NyaXB0aW9uOiB8LQogIFRoZSBhcHAgZGVzY3JpcHRpb24KY29udGFjdDoKICBuYW1lOiBKaW1ib2IgSm9uZXMKICB1cmw6IGh0dHBzOi8vam9uZXMuY29tCiAgZW1haWw6IGppbWJvYkBqb25lcy5jb20KbGljZW5zZToKICBuYW1lOiBBcGFjaGUgMi4wCiAgdXJsOiBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLmh0bWwKKi8KZnVuYyBtYWluKCkgewp9CmBgYAoKPT09PT0gUGF0aAoKQmVnaW4gYSBjb21tZW50IHdpdGggYGdvcGVuYXBpOnBhdGhgIGFuZCBmb2xsb3cgdXAgd2l0aCBhIFlBTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIE9wZW5BUEkgUGF0aEl0ZW0gZWxlbWVudC4KClRoaXMgZWxlbWVudCBpcyB0aGVuIGFwcGVuZGVkIHRvIHRoZSBgcGF0aHNgIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpY2F0aW9uLgoKYGBgZ28KcGFja2FnZSBtYWluCgovKgpnb3BlbmFwaTpwYXRoCi9waW5nOgogIGdldDoKICAgIHJlc3BvbnNlczoKICAgICAgMjAwOgogICAgICAgIGRlc2NyaXB0aW9uOiB8LQogICAgICAgICAgVGhlIGRlZmF1bHQgcmVzcG9uc2Ugb2YgInBpbmciCiAgICAgICAgY29udGVudDoKICAgICAgICAgIHRleHQvcGxhaW46CiAgICAgICAgICAgIGV4YW1wbGU6IHBvbmcKKi8KZnVuYyBDb250cm9sbGVyRnVuYygpIHsKfQpgYGAKCj09PT09IE9iamVjdCBTY2hlbWEKCkFubm90YXRlIGEgc3RydWN0IHdpdGggYSBgZ29wZW5hcGk6b2JqZWN0U2NoZW1hYC4KClRoZSBnZW5lcmF0ZWQgT2JqZWN0U2NoZW1hIGVsZW1lbnQgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgYGNvbXBvbmVudHMuc2NoZW1hc2AgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmljYXRpb24uCgpgYGBnbwovL2dvcGVuYXBpOm9iamVjdFNjaGVtYQp0eXBlIFJvb3RNb2RlbCBzdHJ1Y3QgewoJSW50RmllbGQgICAgaW50NjQgIGBqc29uOiJpbnRGaWVsZCJgCglTdHJpbmdGaWVsZCBzdHJpbmcgYGpzb246InN0cmluZ0ZpZWxkImAKfQoKLy8gVGhpcyBzdHJ1Y3Qgd2lsbCBiZSBpZ25vcmVkCnR5cGUgSWdub3JlZE1vZGVsIHN0cnVjdCB7Cn0KCi8vZ29wZW5hcGk6b2JqZWN0U2NoZW1hCnR5cGUgQWxpYXNlZE1vZGVscyBbXSpBbGlhc2VkTW9kZWwgLy8gVGhpcyBhbGlhcyB3aWxsIGFwcGVhciBhcyBhIHNjaGVtYSB0b28KCi8vZ29wZW5hcGk6b2JqZWN0U2NoZW1hCnR5cGUgQWxpYXNlZE1vZGVsIHN0cnVjdCB7CglJZ25vcmVkRmllbGQgc3RyaW5nIGBqc29uOiItImAgLy8gVGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQKCVRpbWVGaWVsZCAgICB0aW1lLlRpbWUKfQoKYGBgCgo9PT09PSBQYXJhbWV0ZXIKCkFubm90YXRlIGEgYGNvbnN0YCBvciBhIGB2YXJgIHdpdGggYSBgZ29wZW5hcGk6cGFyYW1ldGVyYC4KClRoZSBhbm5vdGF0ZWQgZmllbGQgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgYGNvbXBvbmVudHMucGFyYW1ldGVyc2AgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmljYXRpb24uCgpgYGBnbwovKgpnb3BlbmFwaTpwYXJhbWV0ZXIKaW46IHBhdGgKcmVxdWlyZWQ6IHRydWUKY29udGVudDoKICB0ZXh0L3BsYWluOgogICAgZXhhbXBsZTogMzAKKi8KY29uc3QgTGltaXQgPSAibGltaXQiCmBgYAoKVGhlIG5hbWUgb2YgdGhlIGZpZWxkIChgTGltaXRgKSB3aWxsIGJlIHRoZSBwYXJhbWV0ZXIgaWRlbnRpZmllciBhbmQgdGhlIHZhbHVlIG9mIHRoZSBmaWVsZCAoYGxpbWl0YCkgd2lsbCBiZSB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLg== readmeEtag: '"d002052719c18775f586320321423b3be79c70a5"' readmeLastModified: Tue, 15 Oct 2019 10:03:39 GMT repositoryId: 209779146 description: An OpenAPI v3 utility for Go created: '2019-09-20T11:53:43Z' updated: '2023-02-22T17:36:24Z' language: Go archived: false stars: 20 watchers: 6 forks: 1 owner: VanMoof logo: https://avatars.githubusercontent.com/u/26412800?v=4 license: MIT repoEtag: '"9a6477f2956a8d8a2913866d532b8ef0c125b30b1efe99024433940a3e0279fc"' repoLastModified: Wed, 22 Feb 2023 17:36:24 GMT foundInMaster: true category: Parsers id: 87176f9790da6975ca8309ca566efc2d - source: openapi3 tags repository: https://github.com/yhnavein/swaggie v3: true id: 4dabb31099f545ae69a12182a15f3739 repositoryMetadata: base64Readme: >- PGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW46IDBweCBhdXRvIDMwcHg7IG1heC13aWR0aDogNjAwcHgiPgogIDxpbWcgc3JjPSIuL3N3YWdnaWUuc3ZnIiBhbHQ9IlN3YWdnaWUgbG9nbyI+CjwvZGl2PgoKIyBTd2FnZ2llCgohW25wbSBsYXRlc3QgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9zd2FnZ2llKQohW05vZGVDSV0oaHR0cHM6Ly9naXRodWIuY29tL3lobmF2ZWluL3N3YWdnaWUvd29ya2Zsb3dzL05vZGVDSS9iYWRnZS5zdmcpCiFbVGVzdCBDb3ZlcmFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90ZXN0X2NvdmVyYWdlLTk4JTI1LWJyaWdodGdyZWVuKQohW25wbSBkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2R3L3N3YWdnaWUuc3ZnKQohW25wbSBidW5kbGUgc2l6ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9idW5kbGVwaG9iaWEvbWluemlwL3N3YWdnaWUuc3ZnKQohW25wbSBpbnN0YWxsIHNpemVdKGh0dHBzOi8vcGFja2FnZXBob2JpYS5ub3cuc2gvYmFkZ2U/cD1zd2FnZ2llKQohW0hhY2thZ2UgRGVwZW5kZW5jaWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2hhY2thZ2UtZGVwcy92L3N3YWdnaWUpCgpHZW5lcmF0ZSBUeXBlc2NyaXB0IGNvZGUgZnJvbSBhbiBPcGVuQVBJIDMuMCBkb2N1bWVudCwgc28gdGhhdCBhY2Nlc3NpbmcgUkVTVCBBUEkgcmVzb3VyY2VzIGZyb20gdGhlIGNsaWVudCBjb2RlIGlzIGxlc3MgZXJyb3ItcHJvbmUsIHN0YXRpYy10eXBlZCBhbmQganVzdCBlYXNpZXIgdG8gdXNlIGxvbmctdGVybS4KCllvdSBjYW4gdGFrZSBhIGxvb2sgYXQgdGhlIFtFeGFtcGxlcyBzZWN0aW9uXSgjZXhhbXBsZSkgZG93biBiZWxvdy4KClByb2plY3QgaXMgYmFzZWQgYW5kIGluc3BpcmVkIGJ5IFtPcGVuQXBpIENsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL21pa2VzdGVhZC9vcGVuYXBpLWNsaWVudCkuCgojIyMgRmVhdHVyZXMKCi0gR2VuZXJhdGUgVHlwZVNjcmlwdCBjb2RlIGZyb20gT3BlbkFQSSAzLjAgc3BlYwotIFN1cHBvcnRzIGBmZXRjaGAsIGBheGlvc2AsIGB4aW9yYCwgYFNXUiArIGF4aW9zYCwgYEFuZ3VsYXIgMWAsIGBBbmd1bGFyIDIrYCB0ZW1wbGF0ZXMuIEl0J3MgZmxleGlibGUuCi0gUG9zc2libGUgdG8gY3JlYXRlIHlvdXIgb3duIHRlbXBsYXRlIHRoYXQgd29ya3Mgd2l0aCB5b3VyIGV4aXN0aW5nIGNvZGViYXNlCi0gSXQncyBhIGRldiB0b29sIHRoYXQgZ2VuZXJhdGVzIGNvZGUsIHNvIGl0J3Mgbm90IGEgcnVudGltZSBkZXBlbmRlbmN5Ci0gU3VwcG9ydCBmb3IgYGFsbE9mYCwgYG9uZU9mYCwgYGFueU9mYCBhbmQgYCRyZWZgIGluIHNjaGVtYXMKLSBTdXBwb3J0IGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgZW51bXMKLSBTdXBwb3J0IGZvciBkaWZmZXJlbnQgY29udGVudCB0eXBlcwotIEpTRG9jIGNvbW1lbnRzIGZvciBnZW5lcmF0ZWQgY29kZQotIFNtYWxsIGxpYnJhcnkgc2l6ZSBhbmQgdmVyeSBzbWFsbCBhbmQgdHJlZS1zaGFrYWJsZSBvdXRwdXQgdGhhdCBpcyBhbGwgcGxhY2VkIGluIG9uZSBmaWxlCi0gT3BlbkFQSSAzLjEgaXMgcGFydGlhbGx5IHN1cHBvcnRlZCAobW9zdGx5IGVudW1zLCBtb3JlIHRvIGNvbWUpCgojIyBJbnN0YWxsCgpJbiB5b3VyIHByb2plY3QKCiAgICBucG0gaW5zdGFsbCBzd2FnZ2llIC0tc2F2ZS1kZXYKCk9yIGdsb2JhbGx5IHRvIHJ1biBDTEkgZnJvbSBhbnl3aGVyZQoKICAgIG5wbSBpbnN0YWxsIHN3YWdnaWUgLWcKCiMjIE9wZW5BUEkgdmVyc2lvbnMKClN3YWdnaWUgZnJvbSB2ZXJzaW9uIDEuMCBzdXBwb3J0cyBPcGVuQVBJIDMuMCAoYW5kIHNvbWUgZmVhdHVyZXMgb2YgMy4xKS4gU3dhZ2dlciBvciBPcGVuQVBJIDIuMCBkb2N1bWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQgYW55bW9yZSwgYnV0IHlvdSBoYXZlIGZldyBvcHRpb25zIGhvdyB0byBkZWFsIHdpdGggaXQ6CgotICoqKHByZWZlcnJlZCkqKiBGcm9tIHlvdXIgYmFja2VuZCBzZXJ2ZXIgZ2VuZXJhdGUgT3BlbkFQSSAzLjAgc3BlYyBpbnN0ZWFkIG9mIHZlcnNpb24gMiAoc2FtcGxlcyBhcmUgdXBkYXRlZCB0byB1c2UgT3BlbkFQSSAzLjApCi0gQ29udmVydCB5b3VyIE9wZW5BUEkgMi4wIHNwZWMgdG8gMy4wIHVzaW5nIFtzd2FnZ2VyMm9wZW5hcGldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXIyb3BlbmFwaSkgdG9vbCAob3Igc29tZXRoaW5nIHNpbWlsYXIpCi0gSWYgeW91IGNhbid0IGRvIHRoYXQgZm9yIGFueSByZWFzb24sIHlvdSBjYW4gc3RpY2sgdG8gYFN3YWdnaWUgdjAueGAuIEJ1dCB1cGdyYWRlIGlzIHN1Z2dlc3RlZAoKUGxlYXNlIG5vdGUgdGhhdCBPcGVuQVBJIDMuMCBpcyBhIG1ham9yIHNwZWMgdXBncmFkZSBhbmQgaXQncyBwb3NzaWJsZSB0aGF0IHRoZXJlIHdpbGwgYmUgc29tZSBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBnZW5lcmF0ZWQgY29kZS4KSSBoYXZlIHRyaWVkIG15IGJlc3QgdG8gbWluaW1pemUgdGhlIGltcGFjdCwgYnV0IGl0IHdhcyBub3QgcG9zc2libGUgdG8gYXZvaWQgaXQgY29tcGxldGVseS4KCk1vcmUgaW5mbyBhYm91dCBicmVha2luZyBjaGFuZ2VzIGNhbiBiZSBmb3VuZCBpbiB0aGUgW1JlbGVhc2VzXShodHRwczovL2dpdGh1Yi5jb20veWhuYXZlaW4vc3dhZ2dpZS9yZWxlYXNlcykuCgojIyMgQ0xJCgpgYGAKVXNhZ2U6IHN3YWdnaWUgW29wdGlvbnNdCgpPcHRpb25zOgoKICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgIG91dHB1dCB0aGUgdmVyc2lvbiBudW1iZXIKICAtYywgLS1jb25maWcgPHBhdGg+ICAgICAgIFRoZSBwYXRoIHRvIHRoZSBjb25maWd1cmF0aW9uIEpTT04gZmlsZS4gWW91IGNhbiBkbyBhbGwgdGhlIHNldCB1cCB0aGVyZSBpbnN0ZWFkIG9mIHBhcmFtZXRlcnMgaW4gdGhlIENMSQogIC1zLCAtLXNyYyA8dXJsfHBhdGg+ICAgICAgVGhlIHVybCBvciBwYXRoIHRvIHRoZSBPcGVuIEFQSSBzcGVjIGZpbGUKICAtbywgLS1vdXQgPGZpbGVQYXRoPiAgICAgIFRoZSBwYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBBUEkgd291bGQgYmUgZ2VuZXJhdGVkLiBVc2Ugc3Rkb3V0IGlmIGxlZnQgZW1wdHkKICAtYiwgLS1iYXNlVXJsIDxzdHJpbmc+ICAgIEJhc2UgVVJMIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGEgZGVmYXVsdCB2YWx1ZSBpbiB0aGUgY2xpZW50cyAoZGVmYXVsdDogIiIpCiAgLXQsIC0tdGVtcGxhdGUgPHN0cmluZz4gICBUZW1wbGF0ZSB1c2VkIGZvcmdlbmVyYXRpbmcgQVBJIGNsaWVudC4gRGVmYXVsdDogImF4aW9zIgogIC0tcHJlZmVyQW55ICAgICAgICAgICAgICAgVXNlICJhbnkiIHR5cGUgaW5zdGVhZCBvZiAidW5rbm93biIgKGRlZmF1bHQ6IGZhbHNlKQogIC0tc2VydmljZVByZWZpeCA8c3RyaW5nPiAgUHJlZml4IGZvciBzZXJ2aWNlIG5hbWVzLiBVc2VmdWwgd2hlbiB5b3UgaGF2ZSBtdWx0aXBsZSBBUElzIGFuZCB5b3Ugd2FudCB0byBhdm9pZCBuYW1lIGNvbGxpc2lvbnMgKGRlZmF1bHQ6ICIiKQogIC0tYWxsb3dEb3RzIDxib29sPiAgICAgICAgRGV0ZXJtaW5lcyBpZiBkb3RzIHNob3VsZCBiZSB1c2VkIGZvciBzZXJpYWxpemF0aW9uIG9iamVjdCBwcm9wZXJ0aWVzCiAgLS1hcnJheUZvcm1hdCA8Zm9ybWF0PiAgICBEZXRlcm1pbmVzIGhvdyBhcnJheXMgc2hvdWxkIGJlIHNlcmlhbGl6ZWQgKGNob2ljZXM6ICJpbmRpY2VzIiwgInJlcGVhdCIsICJicmFja2V0cyIpCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHAgZm9yIGNvbW1hbmQKYGBgCgpTYW1wbGUgQ0xJIHVzYWdlIHVzaW5nIFN3YWdnZXIncyBQZXQgU3RvcmU6CgpgYGBiYXNoCnN3YWdnaWUgLXMgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIC1vIC4vY2xpZW50L3BldHN0b3JlLnRzCmBgYAoKYHN3YWdnaWVgIG91dHB1dHMgVHlwZVNjcmlwdCB0aGF0IGlzIHNvbWVob3cgZm9ybWF0dGVkLCBidXQgaXQncyBmYXIgZnJvbSBwZXJmZWN0LiBZb3UgY2FuIGFkanVzdCB0aGUgZ2VuZXJhdGVkIGNvZGUgYnkgcHJldHRpZnlpbmcgb3V0cHV0IHVzaW5nIHlvdXIgcHJlZmVycmVkIGJlYXV0aWZ5IHRvb2wgdXNpbmcgeW91ciByZXBvJ3Mgc3R5bGluZyBndWlkZWxpbmVzLiBGb3IgZXhhbXBsZSBpbnZvbHZpbmcgYHByZXR0aWVyYCBsb29rcyBsaWtlIHRoaXM6CgpgYGBiYXNoCnN3YWdnaWUgLXMgJFVSTCAtbyAuL2NsaWVudC9wZXRzdG9yZS50cyAmJiBwcmV0dGllciAuL2NsaWVudC9wZXRzdG9yZS50cyAtLXdyaXRlYApgYGAKCkFuZCB0aGlzIGNhbiBiZSBlYXNpbHkgYXV0b21hdGVkIChpbiB0aGUgbnBtIHNjcmlwdHMgZm9yIGV4YW1wbGUpCgojIyMgQ29uZmlndXJhdGlvbiBGaWxlCgpJbnN0ZWFkIG9mIHByb3ZpZGluZyBhbGwgcmVxdWlyZWQgZmxhZ3MgZnJvbSB0aGUgY29tbWFuZCBsaW5lIHlvdSBjYW4gYWx0ZXJuYXRpdmVseSBjcmVhdGUgYSBuZXcgSlNPTiBmaWxlIHdoZXJlIHlvdSBjYW4gZmlsbCB1cCBhbGwgc2V0dGluZ3MuCgpTYW1wbGUgY29uZmlndXJhdGlvbiBsb29rcyBsaWtlIHRoaXM6CgpgYGBqc29uCnsKICAiJHNjaGVtYSI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20veWhuYXZlaW4vc3dhZ2dpZS9tYXN0ZXIvc2NoZW1hLmpzb24iLAogICJvdXQiOiAiLi9zcmMvY2xpZW50L3BldHN0b3JlLnRzIiwKICAic3JjIjogImh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbiIsCiAgInRlbXBsYXRlIjogImF4aW9zIiwKICAiYmFzZVVybCI6ICIvYXBpIiwKICAicHJlZmVyQW55IjogdHJ1ZSwKICAic2VydmljZVByZWZpeCI6ICIiLAogICJkYXRlRm9ybWF0IjogIkRhdGUiLCAvLyAic3RyaW5nIiB8ICJEYXRlIgogICJxdWVyeVBhcmFtc1NlcmlhbGl6YXRpb24iOiB7CiAgICAiYXJyYXlGb3JtYXQiOiAicmVwZWF0IiwgLy8gInJlcGVhdCIgfCAiYnJhY2tldHMiIHwgImluZGljZXMiCiAgICAiYWxsb3dEb3RzIjogdHJ1ZQogIH0KfQpgYGAKCiMjIyBUZW1wbGF0ZXMKClRoZSBmb2xsb3dpbmcgdGVtcGxhdGVzIGFyZSBidW5kbGVkIHdpdGggU3dhZ2dpZToKCmBgYApheGlvcyAgICAgRGVmYXVsdCB0ZW1wbGF0ZS4gUmVjb21tZW5kZWQgZm9yIFJlYWN0IC8gVnVlIC8gc2ltaWxhciBmcmFtZXdvcmtzLiBVc2VzIGF4aW9zCnhpb3IgICAgICBMaWdodHdlaWdodCBhbmQgbW9kZXJuIGFsdGVybmF0aXZlIHRvIGF4aW9zLiBVc2VzIFt4aW9yXShodHRwczovL2dpdGh1Yi5jb20vc3VoYW90aWFuL3hpb3IjaW50cm8pCnN3ci1heGlvcyBUZW1wbGF0ZSB0aGF0IGVtYnJhY2VzIFNSVyBmb3IgR0VUIHJlcXVlc3RzIGFuZCBhcyBhIGZhbGxiYWNrIHVzZXMgYXhpb3MuCmZldGNoICAgICBUZW1wbGF0ZSBzaW1pbGFyIHRvIGF4aW9zLCBidXQgd2l0aCBmZXRjaCBBUEkgaW5zdGVhZC4gUmVjb21tZW5kZWQgZm9yIFJlYWN0IC8gVnVlIC8gc2ltaWxhciBmcmFtZXdvcmtzCm5nMSAgICAgICBUZW1wbGF0ZSBmb3IgQW5ndWxhciAxICh0aGlzIGlzIGZvciB0aGUgb2xkIG9uZSkKbmcyICAgICAgIFRlbXBsYXRlIGZvciBBbmd1bGFyIDIrICh1c2VzIEh0dHBDbGllbnQsIEluamVjdGlvblRva2VucywgZXRjKQpgYGAKCklmIHlvdSB3YW50IHRvIHVzZSB5b3VyIG93biB0ZW1wbGF0ZSwgeW91IGNhbiB1c2UgdGhlIHBhdGggdG8geW91ciB0ZW1wbGF0ZSBmb3IgdGhlIGAtdGAgcGFyYW1ldGVyOgoKYGBgYmFzaApzd2FnZ2llIC1zIGh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbiAtbyAuL2NsaWVudC9wZXRzdG9yZSAtLXRlbXBsYXRlIC4vbXktc3dhZ2dpZS10ZW1wbGF0ZS8KYGBgCgojIyBVc2FnZSDigJMgSW50ZWdyYXRpbmcgaW50byB5b3VyIHByb2plY3QKCkxldCdzIGFzc3VtZSB0aGF0IHlvdSBoYXZlIGEgW1BldFN0b3JlIEFQSV0oaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vKSBhcyB5b3VyIFJFU1QgQVBJIGFuZCB5b3UgYXJlIGRldmVsb3BpbmcgYSBjbGllbnQgYXBwIHdyaXR0ZW4gaW4gVHlwZVNjcmlwdCB0aGF0IHdpbGwgY29uc3VtZSB0aGlzIEFQSS4KCkluc3RlYWQgb2Ygd3JpdGluZyBhbnkgY29kZSBieSBoYW5kIGZvciBmZXRjaGluZyBwYXJ0aWN1bGFyIHJlc291cmNlcywgd2Ugd2lsbCBsZXQgU3dhZ2dpZSBkbyBpdCBmb3IgdXMuCgojIyMgUXVlcnkgUGFyYW1ldGVycyBTZXJpYWxpemF0aW9uCgpXaGVuIGl0IGNvbWVzIHRvIHVzZSBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRoZW4geW91IG1pZ2h0IG5lZWQgdG8gYWRqdXN0IHRoZSB3YXkgdGhlc2UgcGFyYW1ldGVycyB3aWxsIGJlIHNlcmlhbGl6ZWQsIGFzIGJhY2tlbmQgc2VydmVyIHlvdSBhcmUgdXNpbmcgZXhwZWN0cyB0aGVtIHRvIGJlIGluIGEgc3BlY2lmaWMgZm9ybWF0LiBUaGFua2Z1bGx5IGluIFN3YWdnaWUgeW91IGNhbiBzcGVjaWZ5IGhvdyB0aGV5IHNob3VsZCBiZSBoYW5kbGVkLiBJZiB5b3Ugd29uJ3QgcHJvdmlkZSBhbnkgY29uZmlndXJhdGlvbiwgdGhlbiBTd2FnZ2llIHdpbGwgdXNlIHRoZSBkZWZhdWx0cyB2YWx1ZXMgZXhwZWN0ZWQgaW4gdGhlIEFTUC5ORVQgQ29yZSB3b3JsZC4KCkZvciB5b3VyIGNvbnZlbmllbmNlIHRoZXJlIGFyZSBmZXcgY29uZmlnIGV4YW1wbGVzIHRvIGFjaGlldmUgZGlmZmVyZW50IHNlcmlhbGl6YXRpb24gZm9ybWF0cyBmb3IgYW4gb2JqZWN0IGB7ICJhIjogeyAiYiI6IDEgfSwgImMiOiBbMiwgM10gfWA6Cgp8IEV4cGVjdGVkIEZvcm1hdCAgICAgICAgIHwgYWxsb3dEb3RzIHwgYXJyYXlGb3JtYXQgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0gfAp8IGA/YS5iPTEmYz0yJmM9M2AgICAgICAgIHwgYHRydWVgICAgIHwgYHJlcGVhdGAgICAgfAp8IGA/YS5iPTEmY1tdPTImY1tdPTNgICAgIHwgYHRydWVgICAgIHwgYGJyYWNrZXRzYCAgfAp8IGA/YS5iPTEmY1swXT0yJmNbMV09M2AgIHwgYHRydWVgICAgIHwgYGluZGljZXNgICAgfAp8IGA/YVtiXT0xJmM9MiZjPTNgICAgICAgIHwgYGZhbHNlYCAgIHwgYHJlcGVhdGAgICAgfAp8IGA/YVtiXT0xJmNbXT0yJmNbXT0zYCAgIHwgYGZhbHNlYCAgIHwgYGJyYWNrZXRzYCAgfAp8IGA/YVtiXT0xJmNbMF09MiZjWzFdPTNgIHwgYGZhbHNlYCAgIHwgYGluZGljZXNgICAgfAoKT25jZSB5b3Uga25vdyB3aGF0IHlvdXIgYmFja2VuZCBleHBlY3RzLCB5b3UgY2FuIGFkanVzdCB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGFjY29yZGluZ2x5OiAoYmVsb3cgYXJlIGRlZmF1bHQgdmFsdWVzKQoKYGBganNvbgp7CiAgInF1ZXJ5UGFyYW1zU2VyaWFsaXphdGlvbiI6IHsKICAgICJhcnJheUZvcm1hdCI6ICJyZXBlYXQiLAogICAgImFsbG93RG90cyI6IHRydWUKICB9Cn0KYGBgCgojIyMgQ29kZSBRdWFsaXR5Cgo+IFBsZWFzZSBub3RlIHRoYXQgaXQncyAqKnJlY29tbWVuZGVkKiogdG8gcGlwZSBTd2FnZ2llIGNvbW1hbmQgdG8gc29tZSBwcmV0dGlmaWVyIGxpa2UgYHByZXR0aWVyYCwgYGJpb21lYCBvciBgZHByaW50YCB0byBtYWtlIHRoZSBnZW5lcmF0ZWQgY29kZSBsb29rIG5vdCBvbmx5IG5pY2UsIGJ1dCBhbHNvIHBlcnNpc3RlbnQuCj4gQmVjYXVzZSBTd2FnZ2llIHJlbGllcyBvbiBhIHRlbXBsYXRpbmcgZW5naW5lLCB3aGl0ZXNwYWNlcyBhcmUgZ2VuZXJhbGx5IGEgbWVzcywgc28gdGhleSBtYXkgY2hhbmdlIGJldHdlZW4gdmVyc2lvbnMuCgoqKlN1Z2dlc3RlZCBwcmV0dGllcnMqKgoKW3ByZXR0aWVyXShodHRwczovL3ByZXR0aWVyLmlvLykgLSB0aGUgbW9zdCBwb3B1bGFyIG9uZQoKYGBgYmFzaApwcmV0dGllciAuL0ZJTEVfUEFUSC50cyAtLXdyaXRlCmBgYAoKW2Jpb21lXShodHRwczovL2Jpb21lanMuZGV2KSAtIHRoZSBzdXBlciBmYXN0IG9uZQoKYGBgYmFzaApiaW9tZSBjaGVjayAuL0ZJTEVfUEFUSC50cyAtLWFwcGx5LXVuc2FmZQpgYGAKCllvdSBhcmUgbm90IGxpbWl0ZWQgdG8gYW55IG9mIHRoZXNlLCBidXQgaW4gb3VyIGV4YW1wbGVzIHdlIHdpbGwgdXNlIFByZXR0aWVyLiBQbGVhc2UgcmVtZW1iZXIgdGhhdCB0aGVzZSB0b29scyBuZWVkcyB0byBiZSBpbnN0YWxsZWQgZmlyc3QgYW5kIHRoZXkgbmVlZCBhIGNvbmZpZyBmaWxlIGluIHlvdXIgcHJvamVjdC4KCiMjIyBFeGFtcGxlCgpMZXQncyBydW4gYHN3YWdnaWVgIGFnYWluc3QgUGV0U3RvcmUgQVBJIGFuZCBzZWUgd2hhdCB3aWxsIGhhcHBlbjoKCmBgYGJhc2gKc3dhZ2dpZSAtcyBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24gLW8gLi9hcGkvcGV0c3RvcmUudHMgJiYgcHJldHRpZXIgLi9hcGkvcGV0c3RvcmUudHMgLS13cml0ZQpgYGAKCmBgYHR5cGVzY3JpcHQKLy8gLi9hcGkvcGV0c3RvcmUudHMKCmltcG9ydCBBeGlvcywgeyBBeGlvc1Byb21pc2UgfSBmcm9tICdheGlvcyc7CmNvbnN0IGF4aW9zID0gQXhpb3MuY3JlYXRlKHsKICBiYXNlVVJMOiAnL2FwaScsCiAgcGFyYW1zU2VyaWFsaXplcjogKHBhcmFtcykgPT4KICAgIGVuY29kZVBhcmFtcyhwYXJhbXMsIG51bGwsIHsKICAgICAgYWxsb3dEb3RzOiB0cnVlLAogICAgICBhcnJheUZvcm1hdDogJ3JlcGVhdCcsCiAgICB9KSwKfSk7CgovKiogWy4uLl0gKiovCgpleHBvcnQgY29uc3QgcGV0Q2xpZW50ID0gewogIC8qKgogICAqIEBwYXJhbSBwZXRJZAogICAqLwogIGdldFBldEJ5SWQocGV0SWQ6IG51bWJlcik6IEF4aW9zUHJvbWlzZTxQZXQ+IHsKICAgIGxldCB1cmwgPSBgL3BldC8ke2VuY29kZVVSSUNvbXBvbmVudChgJHtwZXRJZH1gKX1gOwoKICAgIHJldHVybiBheGlvcy5yZXF1ZXN0PFBldD4oewogICAgICB1cmw6IHVybCwKICAgICAgbWV0aG9kOiAnR0VUJywKICAgIH0pOwogIH0sCgogIC8vIC4uLiBhbmQgb3RoZXIgbWV0aG9kcyAuLi4KfTsKYGBgCgpXaGVuIHdlIGhhdmUgdGhhdCB3ZSBjYW4gd3JpdGUgc29tZSBkb21haW4gY29kZSBhbmQgdXNlIHRoaXMgYXV0by1nZW5lcmF0ZWQgY2xhc3NlczoKCmBgYHR5cGVzY3JpcHQKLy8gYXBwLnRzCgppbXBvcnQgeyBwZXRDbGllbnQgfSBmcm9tICcuL2FwaS9wZXRDbGllbnQnOwoKcGV0Q2xpZW50LmdldFBldEJ5SWQoMTIzKS50aGVuKChwZXQpID0+IGNvbnNvbGUubG9nKCdQZXQ6ICcsIHBldCkpOwpgYGAKCklmIFBldHN0b3JlIG93bmVycyBkZWNpZGUgdG8gcmVtb3ZlIG1ldGhvZCB3ZSB1c2UsIHRoZW4gYWZ0ZXIgcnVubmluZyBgc3dhZ2dpZWAgYWdhaW4gaXQgd2lsbCBubyBsb25nZXIgYmUgcHJlc2VudCBpbiB0aGUgYHBldENsaWVudGAgY2xhc3MuIFRoaXMgd2lsbCByZXN1bHQgaW4gdGhlIGJ1aWxkIGVycm9yLCB3aGljaCBpcyB2ZXJ5IG11Y2ggYXBwcmVjaWF0ZWQgYXQgdGhpcyBzdGFnZS4KCldpdGhvdXQgdGhpcyBhcHByb2FjaCwgdGhlIGVycm9yIHdvdWxkIGJlIHNwb3R0ZWQgYnkgb3VyIGVuZC11c2VyIGFuZCBoZS9zaGUgd291bGQgbm90IGFwcHJlY2lhdGUgaXQgYXQgYWxsIQoKIyMgU2VydmVyIGNvbmZpZwoKWW91IG1pZ2h0IHdvbmRlciBob3cgdG8gc2V0IHVwIHNlcnZlciB0byBmdWxseSB1dGlsaXplIFN3YWdnaWUncyBmZWF0dXJlcy4gRm9yIHRoYXQgSSd2ZSBhZGRlZCBhIGBzYW1wbGVzL2AgZm9sZGVyIHdpdGggc2FtcGxlIGNvbmZpZ3VyYXRpb25zLgoKW0FTUC5ORVQgQ29yZSArIE5zd2FnXSguL3NhbXBsZXMvZG90bmV0Y29yZS9uc3dhZy9SRUFETUUubWQpCgpbQVNQLk5FVCBDb3JlICsgU3dhc2hidWNrbGVdKC4vc2FtcGxlcy9kb3RuZXRjb3JlL3N3YXNoYnVja2xlL1JFQURNRS5tZCkKClNlcnZlciBpcyBub3QgbmVjZXNzYXJ5IHRvIHVzZSBTd2FnZ2llLiBTd2FnZ2llIGNhcmVzIG9ubHkgYWJvdXQgdGhlIEpTT04veWFtbCBmaWxlIHdpdGggdGhlIE9wZW4gQVBJIHNwZWMsIGJ1dCBmb3IgeW91ciBkZXZlbG9wbWVudCBwdXJwb3NlIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgYSBzZXJ2ZXIgdGhhdCBjYW4gc2VydmUgdGhpcyBmaWxlIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgYWN0dWFsIGVuZHBvaW50cy4KCiMjIFVzaW5nIFN3YWdnaWUgcHJvZ3JhbW1hdGljYWxseQoKYGBgamF2YXNjcmlwdApjb25zdCBzd2FnZ2llID0gcmVxdWlyZSgnc3dhZ2dpZScpOwpzd2FnZ2llCiAgLmdlbkNvZGUoewogICAgc3JjOiAnaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uJywKICAgIG91dDogJy4vYXBpL3BldHN0b3JlLnRzJywKICB9KQogIC50aGVuKGNvbXBsZXRlLCBlcnJvcik7CgpmdW5jdGlvbiBjb21wbGV0ZShzcGVjKSB7CiAgY29uc29sZS5pbmZvKCdTZXJ2aWNlIGdlbmVyYXRpb24gY29tcGxldGUnKTsKfQoKZnVuY3Rpb24gZXJyb3IoZSkgewogIGNvbnNvbGUuZXJyb3IoZS50b1N0cmluZygpKTsKfQpgYGAKCiMjIE5vdGVzCgp8IFN1cHBvcnRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdCBzdXBwb3J0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBPcGVuQVBJIDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTd2FnZ2VyLCBPcGVuIEFQSSAyLjAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBhbGxPZmAsIGBvbmVPZmAsIGBhbnlPZmAsIGAkcmVmYCB0byBzY2hlbWFzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBub3RgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU3BlYyBmb3JtYXRzOiBgSlNPTmAsIGBZQU1MYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyeSBjb21wbGV4IHF1ZXJ5IHBhcmFtcyAgICAgICAgICAgICAgICAgIHwKfCBFeHRlbnNpb25zOiBgeC1wb3NpdGlvbmAsIGB4LW5hbWVgLCBgeC1lbnVtTmFtZXNgLCBgeC1lbnVtLXZhcm5hbWVzYCAgICAgICAgICAgfCBNdWx0aXBsZSByZXNwb25zZSB0eXBlcyAob25lIHdpbGwgYmUgdXNlZCkgfAp8IENvbnRlbnQgdHlwZXM6IGBKU09OYCwgYHRleHRgLCBgbXVsdGlwYXJ0L2Zvcm0tZGF0YWAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE11bHRpcGxlIHJlcXVlc3QgdHlwZXMgKG9uZSB3aWxsIGJlIHVzZWQpICB8CnwgQ29udGVudCB0eXBlczogYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAsIGBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1gIHwgUmVmZXJlbmNlcyB0byBvdGhlciBzcGVjIGZpbGVzICAgICAgICAgICAgIHwKfCBEaWZmZXJlbnQgdHlwZXMgb2YgZW51bSBkZWZpbml0aW9ucyAoKyBPcGVuQVBJIDMuMSBzdXBwb3J0IGZvciBlbnVtcykgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBhdGhzIGluaGVyaXRhbmNlLCBjb21tZW50cyAoZGVzY3JpcHRpb25zKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR2V0dGluZyBkb2N1bWVudHMgZnJvbSByZW1vdGUgbG9jYXRpb25zIG9yIGFzIHBhdGggcmVmZXJlbmNlIChsb2NhbCBmaWxlKSAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHcm91cGluZyBlbmRwb2ludHMgYnkgdGFncyArIGhhbmRsZSBncmFjZWZ1bGx5IGR1cGxpY2F0ZSBvcGVyYXRpb24gaWRzICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMgVXNlZCBieQoKPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxcmVtOyI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LmJyaXRpc2hjb3VuY2lsLm9yZyI+PGltZyBhbHQ9IkJyaXRpc2ggQ291bmNpbCIgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iL2UvZTEvQnJpdGlzaENvdW5jaWwucG5nLzMyMHB4LUJyaXRpc2hDb3VuY2lsLnBuZyIgc3R5bGU9ImhlaWdodDogNTBweDsiIC8+PC9hPgo8YSBocmVmPSJodHRwczovL2twbWcuY29tLyI+PGltZyBhbHQ9IktQTUciIHNyYz0iaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8zLzMxL0tQTUcuc3ZnLzMyMHB4LUtQTUcuc3ZnLnBuZyIgc3R5bGU9ImhlaWdodDogNTBweDsiIC8+PC9hPgo8L2Rpdj4K readmeEtag: '"a0e45b642b1cb55935097621342fc00e1506eba1"' readmeLastModified: Sun, 14 Jul 2024 18:49:03 GMT repositoryId: 120893123 description: Tool for generating TypeScript client code for given Swagger API endpoints created: '2018-02-09T10:37:44Z' updated: '2024-07-29T21:41:34Z' language: TypeScript archived: false stars: 20 watchers: 5 forks: 9 owner: yhnavein logo: https://avatars.githubusercontent.com/u/516709?v=4 license: MIT repoEtag: '"764a861be4d5c2f8dc916d6680cf8df4d990e2049e8916d51c24f14b2ec10e9a"' repoLastModified: Mon, 29 Jul 2024 21:41:34 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/eikek/sbt-openapi-schema v3: true repositoryMetadata: base64Readme: >- IyBTQlQgT3BlbkFwaSBTY2hlbWEgQ29kZWdlbgoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9laWtlay9zYnQtb3BlbmFwaS1zY2hlbWEvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9laWtlay9zYnQtb3BlbmFwaS1zY2hlbWEvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sKQpbIVtTY2FsYSBTdGV3YXJkIGJhZGdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NjYWxhX1N0ZXdhcmQtaGVscGluZy1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZsb2dvPWRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQTRBQUFBUUNBTUFBQUFSU3I0SUFBQUFWRkJNVkVVQUFBQ0hqb2psT3k1Tldsckt6Y1lSS2pHRmpJYnAyOTNZeWN1TGEzcFlZMkxTcXFsNGYzcENVRlRnU2pOb2RZUm1jWFVzUEQvTlRUYmpSUysyam9taGduek5jMjIzY0d2WlMwSGFTRDBYTGpiYVNqRWxoSXIrQUFBQUFYUlNUbE1BUU9iWVpnQUFBSGxKUkVGVUNOZE55b3NPd3lBSWhXSEFRUzFWdDdhNzcvM2ZjeHhkbXYweHdtY2t1dEFSMW5rbTRnZ2J5RWNnL3dXbWxHTERBQTNvTDUweGk2Zms1ZmZaM0UyRTNRZlpEQ2NDTjJZdGJFV1p0K0RyYzZ1NnJscXY3VWswTGRLcXFyNXJrMlVDUlhPazB2bVFLR2ZjOTRuT0p5UWpvdUY5SC93Q2M5Z0VDRVlmT05vQUFBQUFTVVZPUks1Q1lJST0pXShodHRwczovL3NjYWxhLXN0ZXdhcmQub3JnKQpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2Vpa2VrL3NidC1vcGVuYXBpLXNjaGVtYS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3I9c3RlZWxibHVlKV0oaHR0cHM6Ly9naXRodWIuY29tL2Vpa2VrL3NidC1vcGVuYXBpLXNjaGVtYS9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dCkKCgpUaGlzIGlzIGFuIHNidCBwbHVnaW4gdG8gZ2VuZXJhdGUgU2NhbGEgb3IgRWxtIGNvZGUgZ2l2ZW4gYW4gb3BlbmFwaQozLnggc3BlY2lmaWNhdGlvbi4gVW5saWtlIG90aGVyIGNvZGVnZW4gdG9vbHMsIHRoaXMgZm9jdXNlcyBvbmx5IG9uCnRoZSBgIy9jb21wb25lbnRzL3NjaGVtYWAgc2VjdGlvbi4gQWxzbywgaXQgZ2VuZXJhdGVzIGltbXV0YWJsZQpjbGFzc2VzIGFuZCBvcHRpb25hbGx5IHRoZSBjb3JyZXNwb25kaW5nIEpTT04gY29udmVyc2lvbnMuCgotIFNjYWxhOiBgY2FzZSBjbGFzc2BlcyBhcmUgZ2VuZXJhdGVkIGFuZCBKU09OIGNvbnZlcnNpb24gdmlhIGNpcmNlLgotIEVsbTogcmVjb3JkcyBhcmUgZ2VuZXJhdGVkIGFuZCBjb25zdHJ1Y3RvcnMgZm9yICJlbXB0eSIgdmFsdWVzLiBJdAogIHdvcmtzIG9ubHkgZm9yIG9iamVjdHMuIEpTT04gY29udmVyc2lvbiBpcyBnZW5lcmF0ZWQgdXNpbmcgRWxtJ3MKICBkZWZhdWx0IGVuY29kaW5nIHN1cHBvcnQgYW5kIHRoZQogIFtqc29uLWRlY29kZS1waXBlbGluZV0oaHR0cHM6Ly9naXRodWIuY29tL05vUmVkSW5rL2VsbS1qc29uLWRlY29kZS1waXBlbGluZSkKICBtb2R1bGUgZm9yIGRlY29kaW5nLgotIEpTT04gc3VwcG9ydCBpcyBvcHRpb25hbC4KClRoZSBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlZCBvbiB0aGUKW3N3YWdnZXItcGFyc2VyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wYXJzZXIpCnByb2plY3QuCgpJdCBpcyBwb3NzaWJsZSB0byBjdXN0b21pemUgdGhlIGNvZGUgZ2VuZXJhdGlvbi4KCiMjIFVzYWdlCgpBZGQgdGhpcyBwbHVnaW4gdG8geW91ciBidWlsZCBpbiBgcHJvamVjdC9wbHVnaW5zLnNidGA6CgpgYGAKYWRkU2J0UGx1Z2luKCJjb20uZ2l0aHViLmVpa2VrIiAlICJzYnQtb3BlbmFwaS1zY2hlbWEiICUgIngueS56IikKYGBgCgpQbGVhc2UgY2hlY2sgdGhlIGdpdCB0YWdzIG9yIG1hdmVuIGNlbnRyYWwgZm9yIHRoZSBjdXJyZW50IHZlcnNpb24uClRoZW4gZW5hYmxlIHRoZSBwbHVnaW4gaW4gc29tZSBwcm9qZWN0OgoKYGBgCmVuYWJsZVBsdWdpbnMoT3BlbkFwaVNjaGVtYSkKYGBgCgpUaGVyZSBhcmUgdHdvIHJlcXVpcmVkIHNldHRpbmdzOiBgb3BlbmFwaVNwZWNgIGFuZApgb3BlbmFwaVRhcmdldExhbmd1YWdlYC4gVGhlIGZpcnN0IGRlZmluZXMgdGhlIG9wZW5hcGkueW1sIGZpbGUgYW5kCnRoZSBvdGhlciBpcyBhIGNvbnN0YW50IGZyb20gdGhlIGBMYW5ndWFnZWAgb2JqZWN0OgoKYGBgc2NhbGEKaW1wb3J0IGNvbS5naXRodWIuZWlrZWsuc2J0Lm9wZW5hcGkuXwoKcHJvamVjdC4KICBlbmFibGVQbHVnaW5zKE9wZW5BcGlTY2hlbWEpLgogIHNldHRpbmdzKAogICAgb3BlbmFwaVRhcmdldExhbmd1YWdlIDo9IExhbmd1YWdlLlNjYWxhCiAgICBvcGVuYXBpU3BlYyA6PSAoQ29tcGlsZS9yZXNvdXJjZURpcmVjdG9yeSkudmFsdWUvInRlc3QueW1sIgogICkKYGBgCgpUaGUgc291cmNlcyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBjb21waWxlYC4gVGhlCnRhc2sgYG9wZW5hcGlDb2RlZ2VuYCBjYW4gYmUgdXNlZCB0byBydW4gdGhlIGdlbmVyYXRpb24gaW5kZXBlbmRlbnQKZnJvbSB0aGUgYGNvbXBpbGVgIHRhc2suCgojIyBDb25maWd1cmF0aW9uCgpUaGUgY29uZmlndXJhdGlvbiBpcyBzcGVjaWZpYyB0byB0aGUgdGFyZ2V0IGxhbmd1YWdlLiBUaGVyZSBleGlzdHMgYQpzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgU2NhbGEgYW5kIEVsbS4KClRoZSBrZXkgYG9wZW5hcGlTY2FsYUNvbmZpZ2AgZGVmaW5lcyBzb21lIGNvbmZpZ3VyYXRpb24gdG8gY3VzdG9taXplCnRoZSBjb2RlIGdlbmVyYXRpb24uCgpGb3IgU2NhbGEsIGl0IGxvb2tzIGxpa2UgdGhpczoKYGBgc2NhbGEKY2FzZSBjbGFzcyBTY2FsYUNvbmZpZygKICAgIG1hcHBpbmc6IEN1c3RvbU1hcHBpbmcgPSBDdXN0b21NYXBwaW5nLm5vbmUsCiAgICBqc29uOiBTY2FsYUpzb24gPSBTY2FsYUpzb24ubm9uZQopIHsKCiAgZGVmIHdpdGhKc29uKGpzb246IFNjYWxhSnNvbik6IFNjYWxhQ29uZmlnID0KICAgIGNvcHkoanNvbiA9IGpzb24pCgogIGRlZiBhZGRNYXBwaW5nKGNtOiBDdXN0b21NYXBwaW5nKTogU2NhbGFDb25maWcgPQogICAgY29weShtYXBwaW5nID0gbWFwcGluZy5hbmRUaGVuKGNtKSkKCiAgZGVmIHNldE1hcHBpbmcoY206IEN1c3RvbU1hcHBpbmcpOiBTY2FsYUNvbmZpZyA9CiAgICBjb3B5KG1hcHBpbmcgPSBjbSkKfQpgYGAKCkJ5IGRlZmF1bHQsIG5vIEpTT04gc3VwcG9ydCBpcyBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGNsYXNzZXMuIFRoaXMKY2FuIGJlIGNoYW5nZWQgdmlhOgoKYGBgCm9wZW5hcGlTY2FsYUNvbmZpZyA6PSBTY2FsYUNvbmZpZygpLndpdGhKc29uKFNjYWxhSnNvbi5jaXJjZVNlbWlhdXRvKQpgYGAKClRoaXMgZ2VuZXJhdGVzIHRoZSBlbmNvZGVyIGFuZCBkZWNvZGVyIHVzaW5nCltjaXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL2NpcmNlL2NpcmNlKS4gTm90ZSwgdGhhdCB0aGlzIHBsdWdpbgpkb2Vzbid0IGNoYW5nZSB5b3VyIGBsaWJyYXJ5RGVwZW5kZW5jaWVzYCBzZXR0aW5nLiBTbyB5b3UgbmVlZCB0byBhZGQKdGhlIGNpcmNlIGRlcGVuZGVuY2llcyB5b3Vyc2VsZi4KClRoZSBgQ3VzdG9tTWFwcGluZ2AgY2xhc3MgYWxsb3dzIHRvIGNoYW5nZSB0aGUgY2xhc3MgbmFtZXMgb3IgdXNlCmRpZmZlcmVudCB0eXBlcyAoZm9yIGV4YW1wbGUsIHlvdSBtaWdodCB3YW50IHRvIGNoYW5nZSBgTG9jYWxEYXRlYCB0bwpgRGF0ZWApLgoKSXQgbG9va3MgbGlrZSB0aGlzOgpgYGBzY2FsYQp0cmFpdCBDdXN0b21NYXBwaW5nIHsgc2VsZiA9PgoKICBkZWYgY2hhbmdlVHlwZSh0ZDogVHlwZURlZik6IFR5cGVEZWYKCiAgZGVmIGNoYW5nZVNvdXJjZShzcmM6IFNvdXJjZUZpbGUpOiBTb3VyY2VGaWxlCgogIGRlZiBhbmRUaGVuKGNtOiBDdXN0b21NYXBwaW5nKTogQ3VzdG9tTWFwcGluZyA9IG5ldyBDdXN0b21NYXBwaW5nIHsKICAgIGRlZiBjaGFuZ2VUeXBlKHRkOiBUeXBlRGVmKTogVHlwZURlZiA9CiAgICAgIGNtLmNoYW5nZVR5cGUoc2VsZi5jaGFuZ2VUeXBlKHRkKSkKCiAgICBkZWYgY2hhbmdlU291cmNlKHNyYzogU291cmNlRmlsZSk6IFNvdXJjZUZpbGUgPQogICAgICBjbS5jaGFuZ2VTb3VyY2Uoc2VsZi5jaGFuZ2VTb3VyY2Uoc3JjKSkKICB9Cn0KYGBgCgpUaGVyZSBhcmUgY29udmVuaWVudCBjb25zdHJ1Y3RvcnMgaW4gaXRzIGNvbXBhbmlvbiBvYmplY3QuCgpJdCBhbGxvd3MgdG8gdXNlIGRpZmZlcmVudCB0eXBlcyB2aWEgYGNoYW5nZVR5cGVgIG9yIGNoYW5nZSB0aGUgc291cmNlCmZpbGUuIEhlcmUgaXMgYSBgYnVpbGQuc2J0YCBleGFtcGxlIHNuaXBwZXQ6CgpgYGBzY2FsYQppbXBvcnQgY29tLmdpdGh1Yi5laWtlay5zYnQub3BlbmFwaS5fCgp2YWwgQ2lyY2VWZXJzaW9uICAgICAgICAgICAgPSAiMC4xNC4xIgpsaWJyYXJ5RGVwZW5kZW5jaWVzICsrPSBTZXEoCiAgImlvLmNpcmNlIiAlJSAiY2lyY2UtZ2VuZXJpYyIgJSBDaXJjZVZlcnNpb24sCiAgImlvLmNpcmNlIiAlJSAiY2lyY2UtcGFyc2VyIiAgJSBDaXJjZVZlcnNpb24KKQoKb3BlbmFwaVNwZWMgOj0gKENvbXBpbGUvcmVzb3VyY2VEaXJlY3RvcnkpLnZhbHVlLyJ0ZXN0LnltbCIKb3BlbmFwaVRhcmdldExhbmd1YWdlIDo9IExhbmd1YWdlLlNjYWxhCkNvbXBpbGUvb3BlbmFwaVNjYWxhQ29uZmlnIDo9IFNjYWxhQ29uZmlnKCkKICAgIC53aXRoSnNvbihTY2FsYUpzb24uY2lyY2VTZW1pYXV0bykKICAgIC5hZGRNYXBwaW5nKEN1c3RvbU1hcHBpbmcuZm9yVHlwZSh7IGNhc2UgVHlwZURlZigiTG9jYWxEYXRlVGltZSIsIF8pID0+CiAgICAgIFR5cGVEZWYoIlRpbWVzdGFtcCIsIEltcG9ydHMoImNvbS5teXBhY2thZ2UuVGltZXN0YW1wIikpCiAgICB9KSkKICAgIC5hZGRNYXBwaW5nKEN1c3RvbU1hcHBpbmcuZm9yTmFtZSh7IGNhc2UgcyA9PiBzICsgIkR0byIgfSkpCgplbmFibGVQbHVnaW5zKE9wZW5BcGlTY2hlbWEpCmBgYAoKSXQgYWRkcyBjaXJjZSBKU09OIHN1cHBvcnQgYW5kIGNoYW5nZXMgdGhlIG5hbWUgb2YgYWxsIGNsYXNzZXMgYnkKYXBwZW5kaW5nIHRoZSBzdWZmaXggIkR0byIuIEl0IGFsc28gY2hhbmdlcyB0aGUgdHlwZSB1c2VkIGZvciBsb2NhbApkYXRlcyB0byBiZSBgY29tLm15cGFja2FnZS5UaW1lc3RhbXBgLgoKCiMjIEVsbQoKVGhlcmUgaXMgc29tZSBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBFbG0gZGF0YSBzdHJ1Y3R1cmVzCmFuZCBjb3JyZXNwb25kaW5nIEpTT04gY29udmVyc2lvbiBmdW5jdGlvbnMuIFdoZW4gdXNpbmcgdGhlCmBkZWNvZGVQaXBlbGluZWAganNvbiB2YXJpYW50LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZXNlIHBhY2thZ2VzOgoKYGBgCmVsbSBpbnN0YWxsIGVsbS9qc29uCmVsbSBpbnN0YWxsIE5vUmVkSW5rL2VsbS1qc29uLWRlY29kZS1waXBlbGluZQpgYGAKClRoZSBkZWZhdWx0IG91dHB1dCBwYXRoIGZvciBlbG0gc291cmNlcyBpcyBgdGFyZ2V0L2VsbS1zcmNgLiBTbyBpbgp5b3VyIGBlbG0uanNvbmAgZmlsZSwgYWRkIHRoaXMgZGlyZWN0b3J5IHRvIHRoZSBgc291cmNlLWRpcmVjdG9yaWVzYApsaXN0IGFsb25nIHdpdGggdGhlIG1haW4gc291cmNlIGRpci4gSXQgbWF5IGxvb2sgc29tZXRoaW5nIGxpa2UgdGhpczoKCmBgYGpzb24KewogICAgInR5cGUiOiAiYXBwbGljYXRpb24iLAogICAgInNvdXJjZS1kaXJlY3RvcmllcyI6IFsKICAgICAgICAibW9kdWxlcy93ZWJhcHAvdGFyZ2V0L2VsbS1zcmMiLAogICAgICAgICJtb2R1bGVzL3dlYmFwcC9zcmMvbWFpbi9lbG0iCiAgICBdLAogICAgImVsbS12ZXJzaW9uIjogIjAuMTkuMCIsCiAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJkaXJlY3QiOiB7CiAgICAgICAgICAgICJOb1JlZEluay9lbG0tanNvbi1kZWNvZGUtcGlwZWxpbmUiOiAiMS4wLjAiLAogICAgICAgICAgICAiZWxtL2Jyb3dzZXIiOiAiMS4wLjEiLAogICAgICAgICAgICAiZWxtL2NvcmUiOiAiMS4wLjIiLAogICAgICAgICAgICAiZWxtL2h0bWwiOiAiMS4wLjAiLAogICAgICAgICAgICAiZWxtL2pzb24iOiAiMS4xLjMiCiAgICAgICAgfSwKICAgICAgICAiaW5kaXJlY3QiOiB7CiAgICAgICAgICAgICJlbG0vdGltZSI6ICIxLjAuMCIsCiAgICAgICAgICAgICJlbG0vdXJsIjogIjEuMC4wIiwKICAgICAgICAgICAgImVsbS92aXJ0dWFsLWRvbSI6ICIxLjAuMiIKICAgICAgICB9CiAgICB9LAogICAgInRlc3QtZGVwZW5kZW5jaWVzIjogewogICAgICAgICJkaXJlY3QiOiB7fSwKICAgICAgICAiaW5kaXJlY3QiOiB7fQogICAgfQp9CmBgYAoKSXQgYWx3YXlzIGdlbmVyYXRlcyB0eXBlIGFsaWFzZXMgZm9yIHJlY29yZHMuCgpXaGlsZSBzb3VyY2UgZmlsZXMgZm9yIHNjYWxhIGFyZSBhZGRlZCB0byBzYnQncyBgc291cmNlR2VuZXJhdG9yc2Agc28KdGhhdCB0aGV5IGdldCBjb21waWxlZCB3aXRoIHlvdXIgc291cmNlcywgdGhlIGVsbSBzb3VyY2UgZmlsZXMgYXJlIG5vdAphZGRlZCBhbnl3aGVyZSwgYmVjYXVzZSB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBFbG0gaW4gc2J0LiBIb3dldmVyLAppbiB0aGUgYGJ1aWxkLnNidGAgZmlsZSwgeW91IGNhbiB0ZWxsIHNidCB0byBnZW5lcmF0ZSB0aGUgZmlsZXMgYmVmb3JlCmNvbXBpbGluZyB5b3VyIGVsbSBhcHAuIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gcnVuIGR1cmluZyByZXNvdXJjZQpnZW5lcmF0aW9uLiBFeGFtcGxlOgoKYGBgIHNjYWxhCgovLyBQdXQgcmVzdWx0aW5nIGpzIGZpbGUgaW50byB0aGUgd2ViamFyIGxvY2F0aW9uCmRlZiBjb21waWxlRWxtKGxvZ2dlcjogTG9nZ2VyLCB3ZDogRmlsZSwgb3V0QmFzZTogRmlsZSwgYXJ0aWZhY3Q6IFN0cmluZywgdmVyc2lvbjogU3RyaW5nKTogU2VxW0ZpbGVdID0gewogIGxvZ2dlci5pbmZvKCJDb21waWxlIGVsbSBmaWxlcyAuLi4iKQogIHZhbCB0YXJnZXQgPSBvdXRCYXNlLyJNRVRBLUlORiIvInJlc291cmNlcyIvIndlYmphcnMiL2FydGlmYWN0L3ZlcnNpb24vIm15LWFwcC5qcyIKICB2YWwgcHJvYyA9IFByb2Nlc3MoU2VxKCJlbG0iLCAibWFrZSIsICItLW91dHB1dCIsIHRhcmdldC50b1N0cmluZykgKysgU2VxKHdkLyJzcmMiLyJtYWluIi8iZWxtIi8iTWFpbi5lbG0iKS5tYXAoXy50b1N0cmluZyksIFNvbWUod2QpKQogIHZhbCBvdXQgPSBwcm9jLiEhCiAgbG9nZ2VyLmluZm8ob3V0KQogIFNlcSh0YXJnZXQpCn0KCnZhbCB3ZWJhcHAgPSBwcm9qZWN0LmluKGZpbGUoIndlYmFwcCIpKS4KICBlbmFibGVQbHVnaW5zKE9wZW5BcGlTY2hlbWEpLgogIHNldHRpbmdzKAogICAgb3BlbmFwaVRhcmdldExhbmd1YWdlIDo9IExhbmd1YWdlLkVsbSwKICAgIG9wZW5hcGlQYWNrYWdlIDo9IFBrZygiQXBpLk1vZGVsIiksCiAgICBvcGVuYXBpU3BlYyA6PSAoQ29tcGlsZS9yZXNvdXJjZURpcmVjdG9yeSkudmFsdWUvIm9wZW5hcGkueW1sIiwKICAgIG9wZW5hcGlFbG1Db25maWcgOj0gRWxtQ29uZmlnKCkud2l0aEpzb24oRWxtSnNvbi5kZWNvZGVQaXBlbGluZSksCiAgICBDb21waWxlL3Jlc291cmNlR2VuZXJhdG9ycyArPSAoRGVmLnRhc2sgewogICAgICBvcGVuYXBpQ29kZWdlbi52YWx1ZSAvLyBnZW5lcmF0ZSBhcGkgbW9kZWwgZmlsZXMKICAgICAgY29tcGlsZUVsbShzdHJlYW1zLnZhbHVlLmxvZwogICAgICAgICwgKENvbXBpbGUvYmFzZURpcmVjdG9yeSkudmFsdWUKICAgICAgICAsIChDb21waWxlL3Jlc291cmNlTWFuYWdlZCkudmFsdWUKICAgICAgICAsIG5hbWUudmFsdWUKICAgICAgICAsIHZlcnNpb24udmFsdWUpCiAgICB9KS50YXNrVmFsdWUsCiAgICB3YXRjaFNvdXJjZXMgKz0gV2F0Y2hlZC5XYXRjaFNvdXJjZSgKICAgICAgKENvbXBpbGUvc291cmNlRGlyZWN0b3J5KS52YWx1ZS8iZWxtIgogICAgICAgICwgRmlsZUZpbHRlci5nbG9iRmlsdGVyKCIqLmVsbSIpCiAgICAgICAgLCBIaWRkZW5GaWxlRmlsdGVyCiAgICApCiAgKQpgYGAKClRoaXMgZXhhbXBsZSBhc3N1bWVzIGEgYGVsbS5qc29uYCBwcm9qZWN0IGZpbGUgaW4gdGhlIHNvdXJjZSByb290LgoKIyMgRGlzY3JpbWluYXRvciBTdXBwb3J0CgpPcGVuQVBJIDMuMCBlbmFibGVzIHRvIGludHJvZHVjZSBzdWJ0eXBpbmcgb24gZ2VuZXJhdGVkIHNjaGVtYXMgYnkgdXNpbmcgW2Rpc2NyaW1pbmF0b3JzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCNkaXNjcmltaW5hdG9yT2JqZWN0KS4KClR3byBvZiB0aGVzZSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBvbmx5IGluIFNjYWxhIDogYG9uZU9mYCBhbmQgYGFsbE9mYC4gICAKCiMjIyMgU2V0dXAKCkluIG9yZGVyIHRvIHByb3ZpZGUgSlNPTiBjb252ZXJzaW9uIGZvciB0aGVzZSBkaXNjcmltaW5hdG9ycyB3aXRoIENpcmNlLCB3ZSBuZWVkIHRvIG1ha2UgdXNlIG9mIFtjaXJjZS1nZW5lcmljLWV4dHJhc10oaHR0cHM6Ly9naXRodWIuY29tL2NpcmNlL2NpcmNlLWdlbmVyaWMtZXh0cmFzKQoKQW4gZXhhbXBsZSBidWlsZC5zYnQgdXNpbmcgdGhlIHBsdWdpbiB3b3VsZCBsb29rIGxpa2UgdGhlIGZvbGxvd2luZzoKYGBgc2NhbGEKaW1wb3J0IGNvbS5naXRodWIuZWlrZWsuc2J0Lm9wZW5hcGkuXwoKbGlicmFyeURlcGVuZGVuY2llcyArKz0gU2VxKAogICJpby5jaXJjZSIgJSUgImNpcmNlLWdlbmVyaWMtZXh0cmFzIiAlICIwLjExLjEiLAogICJpby5jaXJjZSIgJSUgImNpcmNlLWNvcmUiICUgIjAuMTEuMSIsCiAgImlvLmNpcmNlIiAlJSAiY2lyY2UtZ2VuZXJpYyIgJSAiMC4xMS4xIiwKICAiaW8uY2lyY2UiICUlICJjaXJjZS1wYXJzZXIiICUgIjAuMTEuMSIKKQoKb3BlbmFwaVNwZWMgOj0gKENvbXBpbGUvcmVzb3VyY2VEaXJlY3RvcnkpLnZhbHVlLyJ0ZXN0LnltbCIKb3BlbmFwaVRhcmdldExhbmd1YWdlIDo9IExhbmd1YWdlLlNjYWxhCm9wZW5hcGlTY2FsYUNvbmZpZyA6PSBTY2FsYUNvbmZpZygpLgogIHdpdGhKc29uKFNjYWxhSnNvbi5jaXJjZVNlbWlhdXRvRXh0cmEpLgogIGFkZE1hcHBpbmcoQ3VzdG9tTWFwcGluZy5mb3JOYW1lKHsgY2FzZSBzID0+IHMgKyAiRHRvIiB9KSkKCmVuYWJsZVBsdWdpbnMoT3BlbkFwaVNjaGVtYSkKYGBgCgoKIyMjIyBIYW5kbGUgYGFsbE9mYCBrZXl3b3JkcyBpbiBTY2FsYQoKSGVyZSBpcyBhbiBleGFtcGxlIE9wZW5BUEkgc3BlYyBhbmQgdGhlIHJlc3VsdGluZyBTY2FsYSBtb2RlbHMgd2l0aCBKU09OIGNvbnZlcnNpb25zCgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFBldDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGRpc2NyaW1pbmF0b3I6CiAgICAgICAgcHJvcGVydHlOYW1lOiBwZXRUeXBlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHBldFR5cGU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgcmVxdWlyZWQ6CiAgICAgIC0gbmFtZQogICAgICAtIHBldFR5cGUKICAgIENhdDogICMjICJDYXQiIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGlzY3JpbWluYXRvciB2YWx1ZQogICAgICBkZXNjcmlwdGlvbjogQSByZXByZXNlbnRhdGlvbiBvZiBhIGNhdAogICAgICBhbGxPZjoKICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwogICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICBodW50aW5nU2tpbGw6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG1lYXN1cmVkIHNraWxsIGZvciBodW50aW5nCiAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBodW50aW5nU2tpbGwKICAgIERvZzogICMjICJEb2ciIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGlzY3JpbWluYXRvciB2YWx1ZQogICAgICBkZXNjcmlwdGlvbjogQSByZXByZXNlbnRhdGlvbiBvZiBhIGRvZwogICAgICBhbGxPZjoKICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwogICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICBwYWNrU2l6ZToKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBmb3JtYXQ6IGludDMyCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGUgc2l6ZSBvZiB0aGUgcGFjayB0aGUgZG9nIGlzIGZyb20KICAgICAgICByZXF1aXJlZDoKICAgICAgICAtIHBhY2tTaXplCmBgYAoKYGBgc2NhbGEKaW1wb3J0IGlvLmNpcmNlLl8KaW1wb3J0IGlvLmNpcmNlLmdlbmVyaWMuZXh0cmFzLnNlbWlhdXRvLl8KaW1wb3J0IGlvLmNpcmNlLmdlbmVyaWMuZXh0cmFzLkNvbmZpZ3VyYXRpb24KCnNlYWxlZCB0cmFpdCBQZXREdG8gewogIHZhbCBuYW1lOiBTdHJpbmcKfQpvYmplY3QgUGV0RHRvIHsKICBpbXBsaWNpdCB2YWwgY3VzdG9tQ29uZmlnOiBDb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5kZWZhdWx0LndpdGhEZWZhdWx0cy53aXRoRGlzY3JpbWluYXRvcigicGV0VHlwZSIpCgogIGNhc2UgY2xhc3MgQ2F0ICgKICAgIGh1bnRpbmdTa2lsbDogU3RyaW5nLCBuYW1lOiBTdHJpbmcKICApIGV4dGVuZHMgUGV0RHRvCgogIGNhc2UgY2xhc3MgRG9nICgKICAgIHBhY2tTaXplOiBJbnQsIG5hbWU6IFN0cmluZwogICkgZXh0ZW5kcyBQZXREdG8KCiAgb2JqZWN0IENhdCB7CiAgICBpbXBsaWNpdCB2YWwgY3VzdG9tQ29uZmlnOiBDb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5kZWZhdWx0LndpdGhEZWZhdWx0cy53aXRoRGlzY3JpbWluYXRvcigicGV0VHlwZSIpCiAgICBwcml2YXRlIGltcGxpY2l0IHZhbCBqc29uRGVjb2RlcjogRGVjb2RlcltDYXRdID0gZGVyaXZlRGVjb2RlcltDYXRdCiAgICBwcml2YXRlIGltcGxpY2l0IHZhbCBqc29uRW5jb2RlcjogRW5jb2RlcltDYXRdID0gZGVyaXZlRW5jb2RlcltDYXRdCiAgfQoKICBvYmplY3QgRG9nIHsKICAgIGltcGxpY2l0IHZhbCBjdXN0b21Db25maWc6IENvbmZpZ3VyYXRpb24gPSBDb25maWd1cmF0aW9uLmRlZmF1bHQud2l0aERlZmF1bHRzLndpdGhEaXNjcmltaW5hdG9yKCJwZXRUeXBlIikKICAgIHByaXZhdGUgaW1wbGljaXQgdmFsIGpzb25EZWNvZGVyOiBEZWNvZGVyW0RvZ10gPSBkZXJpdmVEZWNvZGVyW0RvZ10KICAgIHByaXZhdGUgaW1wbGljaXQgdmFsIGpzb25FbmNvZGVyOiBFbmNvZGVyW0RvZ10gPSBkZXJpdmVFbmNvZGVyW0RvZ10KICB9CgogIGltcGxpY2l0IHZhbCBqc29uRGVjb2RlcjogRGVjb2RlcltQZXREdG9dID0gZGVyaXZlRGVjb2RlcltQZXREdG9dCiAgaW1wbGljaXQgdmFsIGpzb25FbmNvZGVyOiBFbmNvZGVyW1BldER0b10gPSBkZXJpdmVFbmNvZGVyW1BldER0b10KfQoKYGBgCgpOb3RlcyBhYm91dCB0aGUgYWJvdmUgZXhhbXBsZToKLSBUaGUgaW50ZXJuYWwgc2NoZW1hcyAoIkRvZyIgYW5kICJDYXQiKSBoYXZlIHByaXZhdGUgZW5jb2Rlci9kZWNvZGVycyBzbyB0aGF0IHRoZXkgYXJlIG9ubHkgZW5jb2RlZCBhbmQgZGVjb2RlZCBhcyB0aGUgdHJhaXQgaW50ZXJmYWNlLiBJZiB5b3UgdHJ5IHRvIGRlY29kZSBhcyBhIERvZyBvciBDYXQgdHlwZSwgdGhlIGNpcmNlLWdlbmVyaWMtZXh0cmFzIGRvZXNuJ3QgaW5jbHVkZSB0aGUgZGlzY3JpbWluYW50IHR5cGUKLSBUaGUgbWFwcGluZyBmdW5jdGlvbmFsaXR5IChhZGRpbmcgIkR0byIpIGlzIG9ubHkgdXNlZCBvbiB0aGUgc2VhbGVkIHRyYWl0IHNpbmNlIHRoZSBkaXNjcmltaW5hbnQgdHlwZSB1c2VzIHRoZSBuYW1lIG9mIHRoZSBpbm5lciBjYXNlIGNsYXNzZXMgKCJEb2ciIGFuZCAiQ2F0IikuCgojIyMjIEhhbmRsZSBgb25lT2ZgIGtleXdvcmRzIGluIFNjYWxhCgpBbm90aGVyIHdheSBvZiB0cmFuc2Zvcm0gY29tcG9zZWQgc2NoZW1hcyBpbnRvIGBzZWFsZWQgdHJhaXRgIGhpZXJhcmNoaWVzIGlzIHRvIHVzZSBgb25lT2ZgLgoKYGBgeWFtbCAKUGV0OgogIHR5cGU6IG9iamVjdAogIGRpc2NyaW1pbmF0b3I6CiAgICBwcm9wZXJ0eU5hbWU6IHBldFR5cGUKICBvbmVPZjoKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NhdCcKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0RvZycKQ2F0OiAgIyMgIkNhdCIgd2lsbCBiZSB1c2VkIGFzIHRoZSBkaXNjcmltaW5hdG9yIHZhbHVlCiAgZGVzY3JpcHRpb246IEEgcmVwcmVzZW50YXRpb24gb2YgYSBjYXQKICBwcm9wZXJ0aWVzOgogICAgaHVudGluZ1NraWxsOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgZGVzY3JpcHRpb246IFRoZSBtZWFzdXJlZCBza2lsbCBmb3IgaHVudGluZwogICAgICBlbnVtOgogICAgICAgIC0gY2x1ZWxlc3MKICAgICAgICAtIGxhenkKICAgICAgICAtIGFkdmVudHVyb3VzCiAgICAgICAgLSBhZ2dyZXNzaXZlCiAgICBuYW1lOgogICAgICB0eXBlOiBzdHJpbmcKICAgIHBldFR5cGU6CiAgICAgIHR5cGU6IHN0cmluZwogIHJlcXVpcmVkOgogICAgLSBodW50aW5nU2tpbGwKICAgIC0gbmFtZQogICAgLSBwZXRUeXBlCkRvZzogICMjICJEb2ciIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGlzY3JpbWluYXRvciB2YWx1ZQogIGRlc2NyaXB0aW9uOiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgZG9nCiAgcHJvcGVydGllczoKICAgIHBhY2tTaXplOgogICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgIGZvcm1hdDogaW50MzIKICAgICAgZGVzY3JpcHRpb246IHRoZSBzaXplIG9mIHRoZSBwYWNrIHRoZSBkb2cgaXMgZnJvbQogICAgICBkZWZhdWx0OiAwCiAgICAgIG1pbmltdW06IDAKICAgIG5hbWU6CiAgICAgIHR5cGU6IHN0cmluZwogICAgcGV0VHlwZToKICAgICAgdHlwZTogc3RyaW5nCiAgcmVxdWlyZWQ6CiAgICAtIHBhY2tTaXplCiAgICAtIG5hbWUKICAgIC0gcGV0VHlwZQpgYGAKCmBgYHNjYWxhCmltcG9ydCBpby5jaXJjZS5fCmltcG9ydCBpby5jaXJjZS5nZW5lcmljLmV4dHJhcy5zZW1pYXV0by5fCmltcG9ydCBpby5jaXJjZS5nZW5lcmljLmV4dHJhcy5Db25maWd1cmF0aW9uCgpzZWFsZWQgdHJhaXQgUGV0RHRvIHsKfSAKb2JqZWN0IFBldER0byB7CiAgaW1wbGljaXQgdmFsIGN1c3RvbUNvbmZpZzogQ29uZmlndXJhdGlvbiA9IENvbmZpZ3VyYXRpb24uZGVmYXVsdC53aXRoRGVmYXVsdHMud2l0aERpc2NyaW1pbmF0b3IoInBldFR5cGUiKQogIGNhc2UgY2xhc3MgQ2F0ICgKICAgIGh1bnRpbmdTa2lsbDogU3RyaW5nLCBuYW1lOiBTdHJpbmcsIHBldFR5cGU6IFN0cmluZwogICkgZXh0ZW5kcyBQZXREdG8KICBjYXNlIGNsYXNzIERvZyAoCiAgICBwYWNrU2l6ZTogSW50LCBuYW1lOiBTdHJpbmcsIHBldFR5cGU6IFN0cmluZwogICkgZXh0ZW5kcyBQZXREdG8KICBvYmplY3QgQ2F0IHsKICAgIGltcGxpY2l0IHZhbCBjdXN0b21Db25maWc6IENvbmZpZ3VyYXRpb24gPSBDb25maWd1cmF0aW9uLmRlZmF1bHQud2l0aERlZmF1bHRzLndpdGhEaXNjcmltaW5hdG9yKCJwZXRUeXBlIikKICAgIHByaXZhdGUgaW1wbGljaXQgdmFsIGpzb25EZWNvZGVyOiBEZWNvZGVyW0NhdF0gPSBkZXJpdmVEZWNvZGVyW0NhdF0KICAgIHByaXZhdGUgaW1wbGljaXQgdmFsIGpzb25FbmNvZGVyOiBFbmNvZGVyW0NhdF0gPSBkZXJpdmVFbmNvZGVyW0NhdF0KICB9CiAgb2JqZWN0IERvZyB7CiAgICBpbXBsaWNpdCB2YWwgY3VzdG9tQ29uZmlnOiBDb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5kZWZhdWx0LndpdGhEZWZhdWx0cy53aXRoRGlzY3JpbWluYXRvcigicGV0VHlwZSIpCiAgICBwcml2YXRlIGltcGxpY2l0IHZhbCBqc29uRGVjb2RlcjogRGVjb2RlcltEb2ddID0gZGVyaXZlRGVjb2RlcltEb2ddCiAgICBwcml2YXRlIGltcGxpY2l0IHZhbCBqc29uRW5jb2RlcjogRW5jb2RlcltEb2ddID0gZGVyaXZlRW5jb2RlcltEb2ddCiAgfQogIGltcGxpY2l0IHZhbCBqc29uRGVjb2RlcjogRGVjb2RlcltQZXREdG9dID0gZGVyaXZlRGVjb2RlcltQZXREdG9dCiAgaW1wbGljaXQgdmFsIGpzb25FbmNvZGVyOiBFbmNvZGVyW1BldER0b10gPSBkZXJpdmVFbmNvZGVyW1BldER0b10KfSAKYGBgCgpVbmxpa2UgYGFsbE9mYCwgYG9uZU9mYCBkb2Vzbid0IHBlcm1pdCBzdWJzY2hlbWFzIHRvIGluaGVyaXQgZmllbGRzIGZyb20gdGhlaXIgcGFyZW50LiBUaGlzIGtpbmQgb2YgcmVsYXRpb24gZml0cyB3ZWxsIHRvIGFsZ2VicmFpYyBkYXRhIHR5cGVzIGVuY29kaW5ncyBpbiBTY2FsYS4KCiMjIFN0YXRpYyBEb2N1bWVudGF0aW9uCgpUaGUgcGx1Z2luIGNhbiBydW4gdGhlIFtzd2FnZ2VyIGNvZGVnZW4KdG9vbF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikgb3IKW3JlZG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykgdG8gcHJvZHVjZSBhIHN0YXRpYyBIVE1MCnBhZ2Ugb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmaWxlLgoKRGVmaW5lIHdoaWNoIGdlbmVyYXRvciB0byB1c2UgdmlhOgoKYGBgIHNjYWxhCm9wZW5hcGlTdGF0aWNHZW4gOj0gT3BlbkFwaURvY0dlbmVyYXRvci5SZWRvYyAvL29yCm9wZW5hcGlTdGF0aWNHZW4gOj0gT3BlbkFwaURvY0dlbmVyYXRvci5Td2FnZ2VyCmBgYAoKTm90ZSB0aGF0IG5vZGVqcyAodGhlIGBucHhgIGNvbW1hbmQpIGlzIHJlcXVpcmVkIGZvciByZWRvYyEgVGhlCmRlZmF1bHQgaXMgc3dhZ2dlci4KClRoZW4gdXNlIHRoZSBgb3BlbmFwaVN0YXRpY0RvY2AgdGFzayB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbgpmcm9tIHlvdXIgb3BlbmFwaSBzcGVjaWZpY2F0aW9uLgoKCkFkZGl0aW9uYWxseSwgdGhlcmUgaXMgYWxzbyBhIHRhc2sgdGhhdCBydW5zIFtgb3BlbmFwaS1jbGkKbGludGBdKGh0dHBzOi8vcmVkb2MubHkvZG9jcy9jbGkvKSBhZ2FpbnN0IHlvdXIgc3BlY2lmaWNhdGlvbiBmaWxlLgpUaGlzIGFsc28gcmVxdWlyZXMgdG8gaGF2ZSBub2RlanMgaW5zdGFsbGVkLgoKCgojIyBDcmVkaXRzCgpGaXJzdCwgdGhhbmsgeW91IGFsbCB3aG8gcmVwb3J0ZWQgaXNzdWVzISBJdCBmb2xsb3dzIGEgbGlzdCBvZgpjb250cmlidXRpb25zIGluIGZvcm0gb2YgY29kZS4gSWYgeW91IGZpbmQgeW91cnNlbGYgbWlzc2luZywgcGxlYXNlCmxldCBtZSBrbm93IG9yIG9wZW4gYSBQUi4KCi0gQHhlbGE4NSBmb3IgYWRkaW5nIGBvbmVPZmAga2V5d29yZHMgc3VwcG9ydCAoIzQyKQotIEBtaGVydG9ncyBmb3IgYWRkaW5nIHN1cHBvcnQgZm9yIGRpc2NyaW1pbmF0b3JzICgjOCkK readmeEtag: '"6e5a4e6bd94d6f320f02b9b00de4e8ed3e3b5cba"' readmeLastModified: Tue, 23 Jul 2024 06:13:55 GMT repositoryId: 178213765 description: Generate schema sources for Scala, Java and Elm from an openapi 3.0 spec. created: '2019-03-28T13:53:17Z' updated: '2024-09-02T15:45:46Z' language: Scala archived: false stars: 21 watchers: 4 forks: 9 owner: eikek logo: https://avatars.githubusercontent.com/u/701128?v=4 license: MIT repoEtag: '"8f7ed0f74130677e4cf0fd753ec654c855a86c9fd217c9a0db3ffe96ba9aa80c"' repoLastModified: Mon, 02 Sep 2024 15:45:46 GMT foundInMaster: true category: Parsers id: c55aff4f35aaeecc6904953f3eb67cb6 - source: openapi3 tags repository: https://github.com/juststeveking/go-api v3: true repositoryMetadata: base64Readme: >- IyBHbyBBUEkKCkEgc2ltcGxlIEdvIEFQSSBmb2xsb3dpbmcgY29uY2VwdHMgb2YgRG9tYWluIERyaXZlbiBEZXNpZ24gZm9yIGVkdWNhdGlvbmFsIHB1cnBvc2VzLgoKT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiBjYW4gYmUgZm91bmQgW2hlcmVdKGRvY3MvcmVmZXJlbmNlL29wZW5hcGkudjEueWFtbCkKCiMjIEluc3RhbGxhdGlvbgoKQ2xvbmUgdGhlIHJlcG8KCmBgYGJhc2gKJCBnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206SnVzdFN0ZXZlS2luZy9nby1hcGkuZ2l0CmBgYAoKYGBgYmFzaAokIGNkIGdvLWFwaQpgYGAKCiMjIFJ1bm5pbmcKCk9uY2UgaW5zdGFsbGVkLCBzaW1wbHkgc3BpbiB1cCB0aGUgZG9ja2VyIGNvbnRhaW5lcjoKCmBgYGJhc2gKJCBkb2NrZXItY29tcG9zZSB1cCAtZCAtLWJ1aWxkCmBgYAoKVGhpcyB3aWxsIGdpdmUgeW91IGEgc2luZ2xlIGVuZHBvaW50IGZvciBub3cgdW5kZXI6IGBodHRwOi8vbG9jYWxob3N0OjgwODAvcGluZ2Agd2hpY2ggaXMgYSBoZWFsdGhjaGVjayBVUkwsIGFuZCB3aWxsIHJldHVybiB0aGUgZm9sbG93aW5nOgoKYGBganNvbgp7CiAgICAibWVzc2FnZSI6ICJTZXJ2aWNlIE9ubGluZSIKfQpgYGAK readmeEtag: '"69eb1ee01846f68945f716e4100d11270378bf27"' readmeLastModified: Mon, 20 Jul 2020 10:51:45 GMT repositoryId: 279888235 description: >- A simple Go API following concepts of Domain Driven Design for educational purposes. created: '2020-07-15T14:18:30Z' updated: '2024-08-23T06:08:37Z' language: Go archived: false stars: 20 watchers: 2 forks: 2 owner: JustSteveKing logo: https://avatars.githubusercontent.com/u/6368379?v=4 repoEtag: '"3645ba38a4d7c51023a52bf4604b9ff2926463f18f26db5c9b453b0006c33f41"' repoLastModified: Fri, 23 Aug 2024 06:08:37 GMT foundInMaster: true category: - Code Generators - Server Implementations id: a5ef021c7ce2024aa60ecd3895fd1304 - source: openapi3 tags repository: https://github.com/core116/angular_kanban_board v3: true id: b7625fb606881f819b5a497ba1dc5eb0 repositoryMetadata: base64Readme: >- IyMgS2FuYmFuIEFwcGxpY2F0aW9uCgpUaGlzIGlzIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgS2FuYmFuIEJvYXJkLCBhIHRvb2wgdGhhdCBoZWxwcyB2aXN1YWxpemUgYW5kIG1hbmFnZSB3b3JrLiBPcmlnaW5hbGx5IGl0IHdhcyBmaXJzdCBjcmVhdGVkIGluIFRveW90YSBhdXRvbW90aXZlLCBidXQgbm93YWRheXMgaXQncyB3aWRlbHkgdXNlZCBpbiBzb2Z0d2FyZSBkZXZlbG9wbWVudC4KCkEgS2FuYmFuIEJvYXJkIGlzIHVzdWFsbHkgbWFkZSBvZiAzIGNvbHVtbnMgLSAqVE9ETyosICpJblByb2dyZXMqcyAmICpEb25lKi4gSW4gZWFjaCBjb2x1bW4gdGhlcmUgYXJlIFBvc3QtaXQgbm90ZXMgdGhhdCByZXByZXNlbnRzIHRhc2sgYW5kIHRoZWlyIHN0YXR1cy4KCkFzIGFscmVhZHkgc3RhdGVkIHRoaXMgcHJvamVjdCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBzdWNoIGJvYXJkIGFuZCBtYWRlIG9mIDMgc2VwYXJhdGUgRG9ja2VyIGNvbnRhaW5lcnMgdGhhdCBob2xkczoKCi0gUG9zdGdyZVNRTCBkYXRhYmFzZQotIEphdmEgYmFja2VuZCAoU3ByaW5nIEJvb3QpCi0gQW5ndWxhciBmcm9udGVuZAoKVGhlIGVudHJ5IHBvaW50IGZvciBhIHVzZXIgaXMgYSB3ZWJzaXRlIHdoaWNoIGlzIGF2YWlsYWJsZSB1bmRlciB0aGUgYWRkcmVzczogKipodHRwOi8vbG9jYWxob3N0OjQyMDAvKioKCi0tLQoKIyMjIFByZXJlcXVpc2l0ZXMKCkluIG9yZGVyIHRvIHJ1biB0aGlzIGFwcGxpY2F0aW9uIHlvdSBuZWVkIHRvIGluc3RhbGwgdHdvIHRvb2xzOiAqKkRvY2tlcioqICYgKipEb2NrZXIgQ29tcG9zZSoqLgoKSW5zdHJ1Y3Rpb25zIGhvdyB0byBpbnN0YWxsICoqRG9ja2VyKiogb24gW1VidW50dV0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vaW5zdGFsbC9saW51eC9kb2NrZXItY2UvdWJ1bnR1LyksIFtXaW5kb3dzXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItZm9yLXdpbmRvd3MvaW5zdGFsbC8pLCBbTWFjXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItZm9yLW1hYy9pbnN0YWxsLykuCgoqKkRvY2tlciBDb21wb3NlKiogaXMgYWxyZWFkeSBpbmNsdWRlZCBpbiBpbnN0YWxsYXRpb24gcGFja3MgZm9yICpXaW5kb3dzKiBhbmQgKk1hYyosIHNvIG9ubHkgVWJ1bnR1IHVzZXJzIG5lZWRzIHRvIGZvbGxvdyBbdGhpcyBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2NvbXBvc2UvaW5zdGFsbC8pLgoKCiMjIyBIb3cgdG8gcnVuIGl0PwoKVGhlIGVudGlyZSBhcHBsaWNhdGlvbiBjYW4gYmUgcnVuIHdpdGggYSBzaW5nbGUgY29tbWFuZCBvbiBhIHRlcm1pbmFsOgoKYGBgCiQgZG9ja2VyLWNvbXBvc2UgdXAgLWQKYGBgCgpJZiB5b3Ugd2FudCB0byBzdG9wIGl0LCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgCiQgZG9ja2VyLWNvbXBvc2UgZG93bgpgYGAKCi0tLQoKIyMjIyBrYW5iYW4tcG9zdGdyZXMgKERhdGFiYXNlKQoKUG9zdGdyZVNRTCBkYXRhYmFzZSBjb250YWlucyBvbmx5IHNpbmdsZSBzY2hlbWEgd2l0aCB0d28gdGFibGVzIC0ga2FuYmFuCmFuZCB0YXNrIHRhYmxlLgoKQWZ0ZXIgcnVubmluZyB0aGUgYXBwIGl0IGNhbiBiZSBhY2Nlc3NpYmxlIHVzaW5nIHRoZXNlIGNvbm5lY3RvcnM6CgotIEhvc3Q6ICpsb2NhbGhvc3QqCi0gRGF0YWJhc2U6ICprYW5iYW4qCi0gVXNlcjogKmthbmJhbioKLSBQYXNzd29yZDogKmthbmJhbioKCgpMaWtlIG90aGVyIHBhcnRzIG9mIGFwcGxpY2F0aW9uIFBvc3RncmVzIGRhdGFiYXNlIGlzIGNvbnRhaW5lcml6ZWQgYW5kCnRoZSBkZWZpbml0aW9uIG9mIGl0cyBEb2NrZXIgY29udGFpbmVyIGNhbiBiZSBmb3VuZCBpbgoqZG9ja2VyLWNvbXBvc2UueW1sKiBmaWxlLgoKYGBgeW1sCmthbmJhbi1wb3N0Z3JlczoKICAgIGltYWdlOiAicG9zdGdyZXM6OS42LWFscGluZSIKICAgIGNvbnRhaW5lcl9uYW1lOiBrYW5iYW4tcG9zdGdyZXMKICAgIHZvbHVtZXM6CiAgICAgIC0ga2FuYmFuLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhCiAgICBwb3J0czoKICAgICAgLSA1NDMyOjU0MzIKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX0RCOmthbmJhbgogICAgICAtIFBPU1RHUkVTX1VTRVI6a2FuYmFuCiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ6a2FuYmFuCmBgYAoKIyMjIyBrYW5iYW4tYXBwIChSRVNUIEFQSSkKClRoaXMgaXMgYSBTcHJpbmcgQm9vdCAoSmF2YSkgYmFzZWQgYXBwbGljYXRpb24gdGhhdCBjb25uZWN0cyB3aXRoIGEKZGF0YWJhc2UgdGhhdCBhbmQgZXhwb3NlIHRoZSBSRVNUIGVuZHBvaW50cyB0aGF0IGNhbiBiZSBjb25zdW1lZCBieQpmcm9udGVuZC4gSXQgc3VwcG9ydHMgbXVsdGlwbGUgSFRUUCBSRVNUIG1ldGhvZHMgbGlrZSBHRVQsIFBPU1QsIFBVVCBhbmQKREVMRVRFIGZvciB0d28gcmVzb3VyY2VzIC0ga2FuYmFuICYgdGFzay4KCkZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgUkVTVCBlbmRwb2ludHMgY291bGQgYmUgZm91bmQgaW4gU3dhZ2dlciBVSSwKd2hpY2ggY291bGQgYmUgY2FsbGVkIHVzaW5nIGxpbms6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS9zd2FnZ2VyLXVpLmh0bWwqKgoKCiFbc3dhZ2dlci11aV0oaHR0cHM6Ly9naXRodWIuY29tL3drcnp5d2llYy9rYW5iYW4tYm9hcmQvYmxvYi9tYXN0ZXIvYXNzZXRzL3N3YWdnZXIucG5nKQoKClRoaXMgYXBwIGlzIGFsc28gcHV0IGluIERvY2tlciBjb250YWluZXIgYW5kIGl0cyBkZWZpbml0aW9uIGNhbiBiZSBmb3VuZAppbiBhIGZpbGUgKmthbmJhbi1hcHAvRG9ja2VyZmlsZSouIAoKCgojIyMjIGthbmJhbi11aSAoRnJvbnRlbmQpCgpUaGlzIGlzIGEgcmVhbCBlbmRwb2ludCBmb3IgYSB1c2VyIHdoZXJlIHRoZXkgY2FuIG1hbmlwdWxhdGUgdGhlaXIKa2FuYmFucyBhbmQgdGFza3MuIEl0IGNvbnN1bWVzIHRoZSBSRVNUIEFQSSBlbmRwb2ludHMgcHJvdmlkZWQgYnkKKmthbmJhbi1hcHAqLgoKSXQgY2FuIGJlIGVudGVyZWQgdXNpbmcgbGluazogKipodHRwOi8vbG9jYWxob3N0OjQyMDAvKioK readmeEtag: '"6a2207f3ca28a8b2dc0726ea620763d0cfbc4a8c"' readmeLastModified: Thu, 29 Dec 2022 23:25:55 GMT repositoryId: 583485682 description: >- A Kanban Board is usually made of 3 columns - TODO, InProgress & Done. In each column there are Post-it notes that represents task and their status. created: '2022-12-29T23:21:22Z' updated: '2024-06-25T11:23:50Z' language: Java archived: false stars: 20 watchers: 1 forks: 0 owner: core116 logo: https://avatars.githubusercontent.com/u/120689599?v=4 repoEtag: '"1775436e176710b2a215e7d6c0c17eef88f3c29b9123813c4bec48a00e82179d"' repoLastModified: Tue, 25 Jun 2024 11:23:50 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/core116/java-angular - source: openapi3 tags repository: https://github.com/antonk52/swaggerlint v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VybGludAoKYFN3YWdnZXJsaW50YCBoZWxwcyB5b3UgdG8gaGF2ZSBhIGNvbnNpc3RlbnQgQVBJIHN0eWxlIGJ5IGxpbnRpbmcgeW91ciBzd2FnZ2VyIC8gT3BlbkFQSSBTY2hlbWUuCgo8cCBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0iaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vNTgxNzgwOS83MjAxMzQ5NS0wYjQ0MzcwMC0zMjZmLTExZWEtOTU0OS04NGRjZTFlYzg2MWUucG5nIiB3aWR0aD0iNzUwIiBhbHQ9Im5wbSBjb21tYW5kIj48L3A+CgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgaXQgaW4geW91ciBwcm9qZWN0CgpgYGBzaApucG0gaW5zdGFsbCBzd2FnZ2VybGludApgYGAKCkluc3RhbGwgaXQgZ2xvYmFsbHkKCmBgYHNoCm5wbSBpbnN0YWxsIC0tZ2xvYmFsIHN3YWdnZXJsaW50CmBgYAoKIyMgVXNhZ2UKCiMjIyBDTEkKCllvdSBjYW4gbGludCB5b3VyIHN3YWdnZXIgc2NoZW1lIGJ5IHBhdGgKCmBgYHNoCnN3YWdnZXJsaW50IC9wYXRoL3RvL3N3YWdnZXIuanNvbgpgYGAKCk9yIGJ5IHByb3ZpZGluZyBhIFVSTAoKYGBgc2gKc3dhZ2dlcmxpbnQgaHR0cHM6Ly8uLi4KYGBgCgojIyMjIENvbmZpZyBmbGFnCgpgc3dhZ2dlcmxpbnRgIHdpbGwgYXV0b21hdGljYWxseSBzZWFyY2ggdXAgdGhlIGRpcmVjdG9yeSB0cmVlIGZvciBhIGBzd2FnZ2VybGludC5jb25maWcuanNgIGZpbGUuIE9yIHlvdSBjYW4gc3BlY2lmeSBpdCBleHBsaWNpdGx5CgpgYGBzaApzd2FnZ2VybGludCAtLWNvbmZpZyAvcGF0aC90by9zd2FnZ2VybGludC5jb25maWcuanMKYGBgCgojIyMgTm9kZWpzCgpgYGBqcwpjb25zdCB7c3dhZ2dlcmxpbnR9ID0gcmVxdWlyZSgnc3dhZ2dlcmxpbnQnKTsKY29uc3QgY29uZmlnID0gcmVxdWlyZSgnLi9jb25maWdzL3N3YWdnZXJsaW50LmNvbmZpZy5qcycpOwpjb25zdCBzd2FnZ2VyU2NoZW1lID0gcmVxdWlyZSgnLi9zd2FnZ2VyLmpzb24nKTsKCmNvbnN0IHJlc3VsdCA9IHN3YWdnZXJsaW50KHN3YWdnZXJTY2hlbWUsIGNvbmZpZyk7Cgpjb25zb2xlLmxvZyhyZXN1bHQpOyAvLyBhbiBhcnJheSBvciBlcnJvcnMKCi8qKgogKiBbewogKiAgIG5hbWU6ICdzdHJpbmcnLCAvLyBydWxlIG5hbWUKICogICBtc2c6ICdzdHJpbmcnLCAvLyBtZXNzYWdlIGZyb20gdGhlIHJ1bGUgY2hlY2tlcgogKiAgIGxvY2F0aW9uOiBbJ3BhdGgnLCAndG8nLCAnZXJyb3InXSAvLyB3aGF0IGNhdXNlZCBhbiBlcnJvcgogKiB9XQogKi8KYGBgCgojIyMgRG9ja2VyIGltYWdlCgpJZiB5b3UgZG8gbm90IGhhdmUgbm9kZWpzIGluc3RhbGxlZCB5b3UgY2FuIHVzZSB0aGUgW3N3YWdnZXJsaW50IGRvY2tlciBpbWFnZV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2FudG9uazUyL2FscGluZS1zd2FnZ2VybGludCkuCgojIyBDb25maWcKCmBgYGpzCi8vIHN3YWdnZXJsaW50LmNvbmZpZy5qcwptb2R1bGUuZXhwb3J0cyA9IHsKICAgIHJ1bGVzOiB7CiAgICAgICAgJ29iamVjdC1wcm9wLWNhc2luZyc6IFsnY2FtZWwnXSwKICAgICAgICAncHJvcGVydGllcy1mb3Itb2JqZWN0LXR5cGUnOiB0cnVlLAogICAgICAgICdsYXRpbi1kZWZpbml0aW9ucy1vbmx5JzogdHJ1ZSwKICAgIH0sCn07CmBgYAoKIyMgUnVsZXMKCllvdSBjYW4gc2V0IGFueSBydWxlIHZhbHVlIHRvIGBmYWxzZWAgdG8gZGlzYWJsZSBpdCBvciB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFuZCBzZXQgaXRzIHNldHRpbmcgdG8gZGVmYXVsdCB2YWx1ZS4KCjwhLS0gR0VORVJBVEVEX1NUQVJUKGlkOnJ1bGVzdGFibGU7aGFzaDo3OGYzYjcyNGQ4ZWY2NjdhNGJjZWYyMGQ2YzkyZDIyZSkgVGhpcyBpcyBnZW5lcmF0ZWQgY29udGVudCwgZG8gbm90IG1vZGlmeSBieSBoYW5kLCB0byByZWdlbmVyYXRlIHJ1biAibnBtIHJ1biB1cGRhdGVEb2NzIiAtLT4KCnwgcnVsZSBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBbYGV4cHJlc3NpdmUtcGF0aC1zdW1tYXJ5YF0oLi9zcmMvcnVsZXMvZXhwcmVzc2l2ZS1wYXRoLXN1bW1hcnkvcmVhZG1lLm1kKSAgICAgICAgICAgICAgIHwgRW5mb3JjZXMgYW4gaW50ZW50aW9uYWwgcGF0aCBzdW1tYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW2BsYXRpbi1kZWZpbml0aW9ucy1vbmx5YF0oLi9zcmMvcnVsZXMvbGF0aW4tZGVmaW5pdGlvbnMtb25seS9yZWFkbWUubWQpICAgICAgICAgICAgICAgICB8IEJhbnMgbm9uIExhdGluIGNoYXJhY3RlcnMgdXNhZ2UgaW4gZGVmaW5pdGlvbiBuYW1lcyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFsicGxhY2Vob2xkZXJfdG9fYmVfcmVtb3ZlZCIseyJpZ25vcmUiOltdfV0gfAp8IFtgbm8tZW1wdHktb2JqZWN0LXR5cGVgXSguL3NyYy9ydWxlcy9uby1lbXB0eS1vYmplY3QtdHlwZS9yZWFkbWUubWQpICAgICAgICAgICAgICAgICAgICAgfCBPYmplY3QgdHlwZXMgaGF2ZSB0byBoYXZlIHRoZWlyIHByb3BlcnRpZXMgc3BlY2lmaWVkIGV4cGxpY2l0bHkgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbYG5vLWV4dGVybmFsLXJlZnNgXSguL3NyYy9ydWxlcy9uby1leHRlcm5hbC1yZWZzL3JlYWRtZS5tZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRm9yYmlkcyB0aGUgdXNhZ2Ugb2YgZXh0ZXJuYWwgUmVmZXJlbmNlT2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW2Buby1pbmxpbmUtZW51bXNgXSguL3NyYy9ydWxlcy9uby1pbmxpbmUtZW51bXMvcmVhZG1lLm1kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEVudW1zIG11c3QgYmUgaW4gYERlZmluaXRpb25zT2JqZWN0YCBvciBgQ29tcG9uZW50c09iamVjdGAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtgbm8tcmVmLXByb3BlcnRpZXNgXSguL3NyYy9ydWxlcy9uby1yZWYtcHJvcGVydGllcy9yZWFkbWUubWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEaXNhbGxvd3MgdG8gaGF2ZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgaW4gUmVmZXJlbmNlIG9iamVjdHMgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbYG5vLXNpbmdsZS1hbGxvZmBdKC4vc3JjL3J1bGVzL25vLXNpbmdsZS1hbGxvZi9yZWFkbWUubWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgT2JqZWN0IHR5cGVzIHNob3VsZCBub3QgaGF2ZSBhIHJlZHVuZGFudCBzaW5nbGUgYGFsbE9mYCBwcm9wZXJ0eSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW2Buby10cmFpbGluZy1zbGFzaGBdKC4vc3JjL3J1bGVzL25vLXRyYWlsaW5nLXNsYXNoL3JlYWRtZS5tZCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFVSTHMgbXVzdCBOT1QgZW5kIHdpdGggYSBzbGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtgb2JqZWN0LXByb3AtY2FzaW5nYF0oLi9zcmMvcnVsZXMvb2JqZWN0LXByb3AtY2FzaW5nL3JlYWRtZS5tZCkgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXNpbmcgZm9yIHlvdXIgb2JqZWN0IHByb3BlcnR5IG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbImNhbWVsIl0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbYG9ubHktdmFsaWQtbWltZS10eXBlc2BdKC4vc3JjL3J1bGVzL29ubHktdmFsaWQtbWltZS10eXBlcy9yZWFkbWUubWQpICAgICAgICAgICAgICAgICAgIHwgQ2hlY2tzIG1pbWUgdHlwZXMgYWdhaW5zdCBrbm93biBmcm9tIFtgbWltZS1kYmBdKGh0dHBzOi8vbnBtLmltL21pbWUtZGIpICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW2BwYXJhbWV0ZXItY2FzaW5nYF0oLi9zcmMvcnVsZXMvcGFyYW1ldGVyLWNhc2luZy9yZWFkbWUubWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhc2luZyBmb3IgeW91ciBwYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFsiY2FtZWwiLHsiaGVhZGVyIjoia2ViYWIifV0gICAgICAgICAgICAgICAgfAp8IFtgcGF0aC1wYXJhbS1yZXF1aXJlZC1maWVsZGBdKC4vc3JjL3J1bGVzL3BhdGgtcGFyYW0tcmVxdWlyZWQtZmllbGQvcmVhZG1lLm1kKSAgICAgICAgICAgfCBIZWxwcyB0byBrZWVwIGNvbnNpc3RlbnRseSBzZXQgb3B0aW9uYWwgYHJlcXVpcmVkYCBwcm9wZXJ0eSBpbiBwYXRoIHBhcmFtZXRlcnMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbYHJlcXVpcmVkLW9wZXJhdGlvbi10YWdzYF0oLi9zcmMvcnVsZXMvcmVxdWlyZWQtb3BlcmF0aW9uLXRhZ3MvcmVhZG1lLm1kKSAgICAgICAgICAgICAgIHwgQWxsIG9wZXJhdGlvbnMgbXVzdCBoYXZlIHRhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW2ByZXF1aXJlZC1wYXJhbWV0ZXItZGVzY3JpcHRpb25gXSguL3NyYy9ydWxlcy9yZXF1aXJlZC1wYXJhbWV0ZXItZGVzY3JpcHRpb24vcmVhZG1lLm1kKSB8IEFsbCBwYXJhbWV0ZXJzIG11c3QgaGF2ZSBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtgcmVxdWlyZWQtdGFnLWRlc2NyaXB0aW9uYF0oLi9zcmMvcnVsZXMvcmVxdWlyZWQtdGFnLWRlc2NyaXB0aW9uL3JlYWRtZS5tZCkgICAgICAgICAgICAgfCBBbGwgdGFncyBtdXN0IGhhdmUgZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCjwhLS0gR0VORVJBVEVEX0VORChpZDpydWxlc3RhYmxlKSAtLT4KCiMjIERvY3VtZW50YXRpb24KCi0gICBbSG93IHRvIHdyaXRlIGEgcnVsZV0oLi9kb2NzL2hvdy10by13cml0ZS1hLXJ1bGUubWQpCgojIyMgQWNrbm93bGVkZ21lbnRzCgpUaGlzIHRvb2wgaGFzIGJlZW4gaW5zcGlyZWQgYnkgYWxyZWFkeSBleGlzdGluZyBzd2FnZ2VyIHZhbGlkYXRpb24gY2hlY2tlcnM6CgotICAgW2FwaSBsaW50XShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9hcGlsaW50KQotICAgW3NwZWNjeV0oaHR0cHM6Ly9naXRodWIuY29tL3dld29yay9zcGVjY3kpCi0gICBbemFsbHldKGh0dHBzOi8vZ2l0aHViLmNvbS96YWxhbmRvL3phbGx5KQotICAgW29wZW5hcGktdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vSUJNL29wZW5hcGktdmFsaWRhdG9yKQo= readmeEtag: '"43e61a83ca19a938628f274362a0f9069a40ac9e"' readmeLastModified: Fri, 10 Mar 2023 13:40:44 GMT repositoryId: 227476747 description: Keep your API consistent created: '2019-12-11T23:03:15Z' updated: '2023-08-22T16:29:55Z' language: TypeScript archived: false stars: 20 watchers: 2 forks: 1 owner: antonk52 logo: https://avatars.githubusercontent.com/u/5817809?v=4 repoEtag: '"5c17ac6bcb2603e12484b2d88e1dba968a13fb89e890f23739f36e8ad4a3ffcf"' repoLastModified: Tue, 22 Aug 2023 16:29:55 GMT foundInMaster: true category: Description Validators id: ab3e4e31e5204b176458f2b5fc9126e7 - source: openapi3 tags repository: https://github.com/mikekonan/go-oas3 v3: true repositoryMetadata: base64Readme: >- R28gT3BlbkFQSSB2MyBzZXJ2ZXIgY29kZWdlbmVyYXRvcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZSBwdXJwb3NlIG9mIHRoaXMgcHJvamVjdCBpcyB0byBnZW5lcmF0ZSBhIGNsZWFuIHNlcnZlciBib2lsZXJwbGF0ZSBjb2RlIGZyb20gb3BlbmFwaSB2MyBzcGVjaWZpY2F0aW9uLiBUaGUgZ2VuZXJhdGVkIGNvZGUgYmFzZWQgb24gZ2l0aHViLmNvbS9nby1jaGkvY2hpL3Y1IHJvdXRlci4gR2VuZXJhdG9yIGdvZXMgb3ZlciBhbGwgcGF0aHMgYW5kIGNvbXBvbmVudHMgYW5kIGdlbmVyYXRlcyBHbyBzdHJ1Y3RzIGFuZCBzdHVicy4gCgojIyMjIEtleSBpZGVhczoKLSBTdHVicyB0YWtlIG92ZXIgdGhlIGxvZ2ljIG9mIHBhcnNpbmcgdGhlIHJlcXVlc3QuCi0gUmVzcG9uc2UgYnVpbGRlcnMgZW5jYXBzdWxhdGVkIGxvZ2ljIHRoYXQgZG9lc24ndCBhbGxvdyB5b3UgdG8gcmVzcG9uZCBkaWZmZXJlbnRseSBmcm9tIHlvdXIgc3BlY2lmaWNhdGlvbi4KClRha2UgYSBub3RlIHRoYXQgcGF0aCBzdHVicyBnZW5lcmF0aW9uIHJlbGllcyBvbiB0aGUgKipmaXJzdCB0YWcqKiBmcm9tIHlvdXIgcGF0aHMuCiMjIEluc3RhbGxhdGlvbgpgYGAKZ28gaW5zdGFsbCBnaXRodWIuY29tL21pa2Vrb25hbi9nby1vYXMzQGxhdGVzdApgYGAKIyMgUHJvZ3JhbSBhcmd1bWVudHMKYGBgClVzYWdlIG9mIGdvLW9hczM6CiAgLWNvbXBvbmVudHNQYWNrYWdlIHN0cmluZwogIC1jb21wb25lbnRzUGF0aCBzdHJpbmcKICAtcGFja2FnZSBzdHJpbmcKICAtcGF0aCBzdHJpbmcKICAtc3dhZ2dlci1hZGRyIHN0cmluZwogICAgCSAoZGVmYXVsdCAic3dhZ2dlci55YW1sIikKICAtYXV0aG9yaXphdGlvbiBzdHJpbmcgCiAgICBhIGxpc3Qgb2YgY29tbWEtc2VwYXJhdGVkIGtleTp2YWx1ZSBwYWlycyB0byBiZSBzZW50IGFzIGhlYWRlcnMgYWxvbmdzaWRlIGVhY2ggaHR0cCByZXF1ZXN0CiAgLXByaW9yaXRpemUteC1nby10eXBlCiAgICBieSBkZWZhdWx0LCBpZiBib3RoIHByb3BlcnRpZXMgYW5kIHgtZ28tdHlwZSBpcyBwcm92aWRlZCwgdGhlIGdlbmVyYXRvciB3aWxsIHVzZSBwcm9wZXJ0aWVzLgogICAgdGhpcyBmbGFnIHdpbGwgbWFrZSBnZW5lcmF0b3IgcHJpb3JpdGl6ZSB4LWdvLXR5cGUgb3ZlciBwcm9wZXJ0aWVzLgoKYGBgCiMjIEV4YW1wbGUKUnVuIHdpdGg6IGBgYGdvLW9hczMgLXN3YWdnZXItYWRkciBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbWlrZWtvbmFuL2dvLW9hczMvdjEuMC41NC9leGFtcGxlL3N3YWdnZXIueWFtbCAtcGFja2FnZSBleGFtcGxlIC1wYXRoIC4vZXhhbXBsZWBgYApUaGUgcmVzdWx0IGdlbmVyYXRlZCBib2lsZXJwbGF0ZSBhbmQgaXRzIGNsaWVudCB5b3UgY2FuIHNlZSBhdCAuL2V4YW1wbGUuCgojIE9wZW5BUEkgZmVhdHVyZXMKIyMjIFJlcXVpcmVkIGZpZWxkcwpQYXRoLCBxdWVyeSwgY29tcG9uZW50LCBoZWFkZXIgcmVxdWlyZWQgZmllbGRzIGFyZSBzdXBwb3J0ZWQuCgojIyMgU2VjdXJpdHkKU2VjdXJpdHkgc2NoZW1hcyBmb3IgaHR0cCwgYXBpa2V5IChoZWFkZXIvY29va2llKS4KCiMjIyBDb29raWUKUmVzcG9uc2UgaGVhZGVyIGBTZXQtQ29va2llYCBzdXBwb3J0ZWQuICpDb29raWUgaW4gcmVxdWVzdCBzdXBwb3J0ZWQgdmlhIHNlY3VyaXR5IHNjaGVtYSBvbmx5LiogIAoKIyMjIFZhbGlkYXRpb24KVHlwZXMgdmFsaWRhdGlvbiBzdXBwb3J0cyBmb2xsb3dpbmcgZGF0YSB0eXBlczoKLSAqKnN0cmluZyoqOiBtaW5MZW5ndGgsIG1heExlbmd0aAotICoqbnVtYmVyKiosICoqaW50ZWdlcioqOiBtaW5pbXVtLCBtYXhpbXVtLCBleGNsdXNpdmVNaW5pbXVtLCBleGNsdXNpdmVNYXhpbXVtCgojIyMgQ3VzdG9tIHR5cGVzCkdlbmVyYXRvciBzdXBwb3J0cyBmZXcgc3dhZ2dlciB0eXBlcyBmb3IgY29tcG9uZW50cy4gCnxvcGVuYXBpIHR5cGV8Z28gdHlwZXwKfC0tLXwtLS18Cnx1dWlkfGdpdGh1Yi5jb20vZ29vZ2xlL3V1aWQuVVVJRHwKfGlzbzQyMTctY3VycmVuY3ktY29kZXxnaXRodWIuY29tL21pa2Vrb25hbi9nby10eXBlcy92Mi9jdXJyZW5jeS5Db2RlfAp8aXNvMzE2Ni1hbHBoYS0yfGdpdGh1Yi5jb20vbWlrZWtvbmFuL2dvLXR5cGVzL3YyL2NvdW50cnkuQWxwaGEyQ29kZXwKfGlzbzMxNjYtYWxwaGEtM3xnaXRodWIuY29tL21pa2Vrb25hbi9nby10eXBlcy92Mi9jb3VudHJ5LkFscGhhM0NvZGV8CgojIyMjIEV4dGVudGlvbnM6ClNwZWNpZnkgYSBnbyB0eXBlIHdpdGg6CmBgYAogICAgQ29tcG9uZW50OgogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG1ldGFkYXRhOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICB4LWdvLXR5cGU6IGVuY29kaW5nL2pzb24uUmF3TWVzc2FnZQpgYGAKCkZvcmNpbmcgcG9pbnRlciB1c2FnZSBmb3IgdGhlIGZpZWxkOgpgYGAKICAgIENvbXBvbmVudDoKICAgICAgcHJvcGVydGllczoKICAgICAgICBhbW91bnQ6CiAgICAgICAgICB0eXBlOiBpbnQKICAgICAgICAgIHgtZ28tcG9pbnRlcjogdHJ1ZQpgYGAKClNwZWNpZnkgYSByZWdleCB0byBtYXRjaCBhIHN0cmluZzoKYGBgCiAgICBQYXJhbWV0ZXI6CiAgICAgIGRlc2NyaXB0aW9uOiBQYXJhbWV0ZXIKICAgICAgaW46IGhlYWRlcgogICAgICBuYW1lOiBwYXJhbWV0ZXIgbmFtZQogICAgICByZXF1aXJlZDogdHJ1ZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgeC1nby1yZWdleDogXlsuP1xkXSskCmBgYAoKSWYgeW91IHdhbnQgdG8gdXNlIHlvdXIgc3BlY2lmaWMgdHlwZShpdCBoYXMgdG8gZGVjbGFyZSBmdW5jdGlvbiBgYGBQYXJzZXtUWVBFTkFNRX0gKHtUWVBFTkFNRX0sIGVycm9yKWBgYCkgaW4gcXVlcnkvcGF0aC9oZWFkZXIgcGFyYW1zOgpgYGAKICAgIFRZUEVOQU1FOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgeC1nby10eXBlOiBnaXRodWJyZXBvL2xpYi9wa2cue1RZUEVOQU1FfQogICAgICB4LWdvLXR5cGUtc3RyaW5nLXBhcnNlOiBnaXRodWJyZXBvL2xpYi9wa2cuUGFyc2V7VFlQRU5BTUV9CmBgYAoKSWYgeW91IHdhbnQgdG8gaGF2ZSBhIHNwZWNpZmljIGdvIG1hcCB5b3UgY2FuIGFsc28gdXNlIGB4LWdvLXR5cGVgIHRvIHNwZWNpZnkgYSBrZXkuIEl0IHdvcmtzIG9ubHkgaWYgYWRkaXRpb25hbFByb3BlcnRpZXMgc3BlY2lmaWVkLgpgYGAKICAgIFJlc3BvbnNlQm9keToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOgogICAgICAgIGl0ZW1zOgogICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL29iamVjdHMuVHlwZScKICAgICAgICB0eXBlOiBhcnJheQogICAgICB4LWdvLXR5cGU6IGdpdGh1YnJlcG8vb2JqZWN0cy5Tb21lVHlwZQpgYGAKClVzZSBgeC1nby1zdHJpbmctdGltbWFibGVgIGtleSBJZiB5b3Ugd291bGQgbGlrZSB0byB0cmltIHNwYWNlcyBiZWZvcmUgdmFsaWRhdGlvbi4gSXQgd29ya3Mgb25seSBmb3Igc3RyaW5nIHR5cGUKYGBgCiAgICBSZXNwb25zZUJvZHk6CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgdGl0bGU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHgtZ28tc3RyaW5nLXRyaW1tYWJsZTogdHJ1ZQpgYGAKCklmIHlvdSB3YW50IHRvIGFkZCBvbWl0ZW1wdHkgdGFnIHlvdSBjYW4gYWxzbyB1c2UgYHgtZ28tb21pdGVtcHR5YApgYGAKICAgIFJlc3BvbnNlQm9keToKICAgICAgcHJvcGVydGllczoKICAgICAgICB0aXRsZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgeC1nby1vbWl0ZW1wdHk6IHRydWUKYGBgCgpCeSBkZWZhdWx0LCB2YWxpZGF0aW9uIGlzIGFkZGVkIHRvIHJlcXVlc3QgYm9keSBvYmplY3RzLiBJZiB5b3Ugd2FudCB0byBpZ25vcmUgdmFsaWRhdGlvbiwgdXNlIGZsYWcgYHgtZ28tc2tpcC12YWxpZGF0aW9uYApgYGAKICAgIFJlc3BvbnNlQm9keToKICAgICAgcHJvcGVydGllczoKICAgICAgICB0aXRsZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICB4LWdvLXNraXAtdmFsaWRhdGlvbjogdHJ1ZQpgYGAKIyMgSGF2ZSBhIHF1ZXN0aW9uIG9yIG5lZWQgc29tZSBmdW5jdGlvbmFsaXR5PwpGZWVsIGZyZWUgdG8gZGlzY3VzcyBpdCBvciBkbyBhIFBSLgoKIyMgQ29udHJpYnV0aW9uCkdvIE9wZW5BUEkgdjMgc2VydmVyIGNvZGVnZW5lcmF0b3IgdXNlcyBodHRwczovL2dpdGh1Yi5jb20vZGF2ZS9qZW5uaWZlci4gClVzaW5nIGh0dHBzOi8vZ2l0aHViLmNvbS9hbG9kZXIvdG9qZW4gaXMgc3VnZ2VzdGVkIHdheSB0byBnZW5lcmF0ZSBqZW5uaWZlciBjb2RlLgo= readmeEtag: '"4e2095f352125684f92c67ba842ded995eaf1aa1"' readmeLastModified: Wed, 14 Aug 2024 13:26:43 GMT repositoryId: 315667251 description: Open API v3 server code generator created: '2020-11-24T15:03:56Z' updated: '2024-08-20T14:54:25Z' language: Go archived: false stars: 20 watchers: 3 forks: 9 owner: mikekonan logo: https://avatars.githubusercontent.com/u/36304777?v=4 license: MIT repoEtag: '"e8dc919f23a3a8a7c871ddf604ecbc6c3f27e801c731314689e3c6c176ba2e7f"' repoLastModified: Tue, 20 Aug 2024 14:54:25 GMT foundInMaster: true category: Parsers id: 15bb9572a91297aa6595fb0450194d91 - source: openapi3 tags repository: https://github.com/mockoon/mockoon.com v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tIiBhbHQ9Im1vY2tvb24gbG9nbyI+CiAgICA8aW1nIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL2xvZ28tc3F1YXJlLXdlYnNpdGUucG5nIj4KICA8L2E+CiAgPGJyPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vZG93bmxvYWQvIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Eb3dubG9hZCUyMGFwcC1Hby1ncmVlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JCPTE5OTdjNiIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tLyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvV2Vic2l0ZS1Hby1ncmVlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JCPTE5OTdjNiIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tL25ld3NsZXR0ZXIvIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9OZXdzbGV0dGVyLVN1YnNjcmliZS1ncmVlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUiLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9HZXRNb2Nrb29uIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Ud2l0dGVyX0BHZXRNb2Nrb29uLWZvbGxvdy1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckI9MWRhMWYyIi8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vZGlzY29yZC5nZy9GdEpqa2VqS0dwIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EaXNjb3JkLWdvLWJsdWUuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQT02Yzg0ZDkmY29sb3JCPTFkYTFmMiIvPjwvYT4KICA8YnI+CiAgPGJyPgogIDxoMT5Nb2Nrb29uJ3Mgd2Vic2l0ZSByZXBvc2l0b3J5PC9oMT4KPC9kaXY+CgpUaGlzIHJlcG9zaXRvcnkgaXMgaG9tZSBvZiBNb2Nrb29uJ3MgZG9jdW1lbnRhdGlvbiwgdHV0b3JpYWxzIGFuZCBibG9nIHBvc3RzLgoKLS0tCgojIyBTdXBwb3J0L2ZlZWRiYWNrCgpZb3UgY2FuIGRpc2N1c3MgYWxsIHRoaW5ncyByZWxhdGVkIHRvIE1vY2tvb24sIGFuZCBhc2sgZm9yIGhlbHAsIG9uIHRoZSBbb2ZmaWNpYWwgY29tbXVuaXR5XShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uL2Rpc2N1c3Npb25zKS4gSXQncyBhbHNvIGEgZ29vZCBwbGFjZSB0byBkaXNjdXNzIGJ1Z3MgYW5kIGZlYXR1cmUgcmVxdWVzdHMgYmVmb3JlIG9wZW5pbmcgYW4gaXNzdWUgb24gdGhpcyByZXBvc2l0b3J5LiBGb3IgbW9yZSBjaGF0LWxpa2UgZGlzY3Vzc2lvbnMsIHlvdSBjYW4gYWxzbyBqb2luIG91ciBbRGlzY29yZCBzZXJ2ZXJdKGh0dHBzOi8vZGlzY29yZC5nZy9GdEpqa2VqS0dwKS4KCiMjIENvbnRyaWJ1dGluZwoKSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGNvbnRyaWJ1dGluZyB0byBNb2Nrb29uIHdlYnNpdGUgYW5kIGRvY3VtZW50YXRpb24sIHBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZWxpbmVzXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uLmNvbS9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKS4KClBsZWFzZSBhbHNvIHRha2UgYSBsb29rIGF0IG91ciBbQ29kZSBvZiBDb25kdWN0XShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uLmNvbS9ibG9iL21haW4vQ09ERV9PRl9DT05EVUNULm1kKS4KCiMjIERvY3VtZW50YXRpb24KCllvdSB3aWxsIGZpbmQgTW9ja29vbidzIFtkb2N1bWVudGF0aW9uXShodHRwczovL21vY2tvb24uY29tL2RvY3MvbGF0ZXN0Lykgb24gdGhlIG9mZmljaWFsIHdlYnNpdGUuIEl0IGNvdmVycyBNb2Nrb29uJ3MgbW9zdCBjb21wbGV4IGZlYXR1cmVzLiBGZWVsIGZyZWUgdG8gY29udHJpYnV0ZSBvciBhc2sgZm9yIG5ldyB0b3BpY3MgdG8gYmUgY292ZXJlZC4KCiMjIFJvYWRtYXAKCklmIHlvdSB3YW50IHRvIGtub3cgd2hhdCB3aWxsIGJlIGNvbWluZyBpbiB0aGUgbmV4dCByZWxlYXNlIHlvdSBjYW4gY2hlY2sgdGhlIGdsb2JhbCBbUm9hZG1hcF0oaHR0cHM6Ly9naXRodWIuY29tL29yZ3MvbW9ja29vbi9wcm9qZWN0cy85KS4KCk5ldyByZWxlYXNlcyB3aWxsIGJlIGFubm91bmNlZCBvbiBNb2Nrb29uJ3MgW1R3aXR0ZXIgYWNjb3VudCBAR2V0TW9ja29vbl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9HZXRNb2Nrb29uKSBhbmQgdGhyb3VnaCB0aGUgbmV3c2xldHRlciB0byB3aGljaCB5b3UgY2FuIHN1YnNjcmliZSBbaGVyZV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9uZXdzbGV0dGVyLykuCg== readmeEtag: '"6228016e1d9582fbf2d65e7aca804fd122cceb5e"' readmeLastModified: Wed, 14 Aug 2024 16:12:07 GMT repositoryId: 98350934 description: Mockoon application official website repository and documentation created: '2017-07-25T21:19:22Z' updated: '2024-08-27T11:41:11Z' language: TypeScript archived: false stars: 20 watchers: 4 forks: 16 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION repoEtag: '"63f715187c4315919869c24e408143e808c8d818a1ab74aed8a69b90769830e3"' repoLastModified: Tue, 27 Aug 2024 11:41:11 GMT foundInMaster: true category: Testing id: 84d3391fa9deedcd6398666ba504eb78 - source: openapi3 tags repository: https://github.com/ben-jamin-chen/kafka-streams-redis-statestore v3: true id: 574d5c6f9e5705994875220ae1875d15 repositoryMetadata: base64Readme: >- IyBLYWZrYSBTdHJlYW1zICgyLjYuMCkgd2l0aCBhIFJlZGlzLWJhY2tlZCBTdGF0ZSBTdG9yZQpCeSBkZWZhdWx0LCBLYWZrYSBTdHJlYW1zIHV0aWxpemVzIHRoZSBSb2Nrc0RCIHN0b3JhZ2UgZW5naW5lIGZvciBwZXJzaXN0ZW50IHN0YXRlIHN0b3Jlcy4gT25lIGdsYXJpbmcgaXNzdWUgeW91IG1heSBoYXZlIG5vdGljZWQgaXMgdGhlIGJpZ2dlc3QgZGVsYXkgb2NjdXJzIHdoZW4gS2Fma2EgU3RyZWFtcyBpcyBpbiBhIHJlYmFsYW5jaW5nIHN0YXRlLCB3aGVyZSBpdCBpbnRlcm5hbGx5IHJlYnVpbGRzIHRoZXNlIHN0YXRlIHN0b3JlcyBmcm9tIHRoZSBjaGFuZ2UtbG9nIHRvcGljcy4gVGhpcyBpcyBlc3BlY2lhbGx5IGEgY29tbW9uIHByb2JsZW0gaWYgeW91IHVzZSBbS3ViZXJuZXRlc10oaHR0cHM6Ly9rdWJlcm5ldGVzLmlvKSBhbmQgeW91ciBlbnZpcm9ubWVudCBpcyBkZXNpZ25lZCB0byBzY2FsZSB1cCAobmV3IHBvZHMpIG9yIGRvd24gKG5vZGVzIGFyZSByZW1vdmVkKS4gV2hpbGUgaXTigJlzIGluIGEgcmViYWxhbmNpbmcgc3RhdGUsIGFsbCBpbnZvbHZlZCBjb25zdW1lciBwcm9jZXNzaW5nIGlzIGJsb2NrZWQsIHNvIHdoYXQgdGhpcyBtZWFucyBpcyB0aGUgYXBwbGljYXRpb24gd29u4oCZdCBiZSBhYmxlIHRvIHNlcnZpY2UgYW55IHJlcXVlc3RzIHVudGlsIHRoZSBwcm9jZXNzIGJlY29tZXMgdW5ibG9ja2VkLiBUaGlzIGlzbuKAmXQgaWRlYWwgZXNwZWNpYWxseSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgb3IgZnJvbSBhIHByYWN0aWNhbGl0eSBzdGFuZHBvaW50LiBUaGUgb3ZlcmFsbCB0aW1lIHdpdGggdGhpcyBkZWxheSBzZWVtcyB0byBjb3JyZXNwb25kIHdpdGggaG93IGxhcmdlIHlvdXIgZGF0YXNldCBpcyBpbiB5b3VyIHRvcGljcywgc28gaWYgeW91J3JlIGRldmVsb3BpbmcgdW5kZXIgYSBjb250aW51b3VzIGludGVncmF0aW9uIGVudmlyb25tZW50IHRoaXMgcG9zZXMgYSBtYWpvciBjaGFsbGVuZ2Ugc2luY2UgZXZlcnkgZGVwbG95bWVudCB3aWxsIHJlcXVpcmUgc29tZSBhbW91bnQgb2YgdXBmcm9udCB0aW1lIHRvIHJlYmFsYW5jZS4KCkFueXdheXMsIHRoaXMgaXMgdGhlIHByaW1hcnkgbW90aXZhdGlvbiBmb3Igc3dpdGNoaW5nIG92ZXIgdG8gYSBjdXN0b20gc3RhdGUgc3RvcmUuIFdlIGNhbiBsZXZlcmFnZSBhIHBlcm1hbmVudCBzdG9yYWdlIHNvbHV0aW9uIGxpa2UgUmVkaXMgc3VjaCB0aGF0IGluIGFueSBuZXcgZGVwbG95bWVudCBvciBhcHBsaWNhdGlvbiByZXN0YXJ0LCB3ZSBjYW4gYXZvaWQgdGhlc2UgdXBmcm9udCByZWJhbGFuY2luZyBkZWxheS4KCiMjIFdoYXQgWW91IE5lZWQKCiogSmF2YSAxNAoqIE1hdmVuIDMuNi4wKwoqIERvY2tlciAxOSsKKiBSZWRpcyA1KwoKIyMgR2V0dGluZyBTdGFydGVkCkZpcnN0LCBpbnN0YWxsIGEgbG9jYWwgaW5zdGFuY2Ugb2YgUmVkaXMgKGlmIHlvdSBoYXZlbid0IGFscmVhZHkpLiBJZiB5b3UncmUgcnVubmluZyBvbiBNYWMgT1MgWCwgeW91IGNhbiB1c2UgW0hvbWVicmV3XShodHRwczovL2JyZXcuc2gpIHZpYSB0aGUgY29tbWFuZDoKCmBgYHpzaAokICBicmV3IGluc3RhbGwgcmVkaXMKYGBgCgpGb3IgV2luZG93cywgdGhlcmUncyBhIGNvdXBsZSBvZiB3YXlzIHRvIGRvIHRoaXMsIGJ1dCBJIGdlbmVyYWxseSBsaWtlIHRvIGRlcGxveSBhbmQgcnVuIFtSZWRpc10oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL3JlZGlzKSBpbiBbRG9ja2VyXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItZm9yLXdpbmRvd3MvaW5zdGFsbCkuCgpgYGBwd3NoCj4gIGRvY2tlciBydW4gLS1uYW1lIHNvbWUtcmVkaXMgLXAgNjM3OSAtZCByZWRpcwpgYGAKClRoZSBlYXNpZXN0IHdheSB0byBzdGFydCB0aGUgUmVkaXMgc2VydmVyIGlzIGp1c3QgZXhlY3V0aW5nIHRoZSBgcmVkaXMtc2VydmVyYCBjb21tYW5kIHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KCmBgYHpzaAokICByZWRpcy1zZXJ2ZXIKYGBgCgpZb3UgY2FuIGNvbm5lY3QgdG8gdGhlIFJlZGlzIGluc3RhbmNlICh3aXRoIGRlZmF1bHQgY29uZmlndXJhdGlvbnMpIHVzaW5nIHRoZSBgcmVkaXMtY2xpYCBjb21tYW5kOgoKYGBgenNoCiQgIHJlZGlzLWNsaSAtaCBsb2NhbGhvc3QgLXAgNjM3OQpgYGAKCk5leHQsIHdlIG5lZWQgdG8gbGF1bmNoIHRoZSB2YXJpb3VzIENvbmZsdWVudCBzZXJ2aWNlcyAoaS5lLiBTY2hlbWEgUmVnaXN0cnksIEJyb2tlciwgWm9vS2VlcGVyKSBsb2NhbGx5IGJ5IHJ1bm5pbmcgdGhlIGBkb2NrZXItY29tcG9zZSB1cCAtZGAgQ0xJIGNvbW1hbmQgd2hlcmUgdGhlIFtkb2NrZXItY29tcG9zZS55bWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9iY2hlbjA0L2thZmthLXN0cmVhbXMtcmVkaXMtc3RhdGVzdG9yZS9ibG9iL21hc3Rlci9kb2NrZXItY29tcG9zZS55bWwpIGZpbGUgaXMuIFR5cGljYWxseSwgeW91IGNhbiBjcmVhdGUgYSBzdGFjayBmaWxlIChpbiB0aGUgZm9ybSBvZiBhIFlBTUwgZmlsZSkgdG8gZGVmaW5lIHlvdXIgYXBwbGljYXRpb25zLiBZb3UgY2FuIGFsc28gcnVuIGBkb2NrZXItY29tcG9zZSBwc2AgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgc3RhY2suIE5vdGljZSwgdGhlIGVuZHBvaW50cyBmcm9tIHdpdGhpbiB0aGUgY29udGFpbmVycyBvbiB5b3VyIGhvc3QgbWFjaGluZS4KCnwgTmFtZSB8IEZyb20gd2l0aGluIGNvbnRhaW5lcnMgfCBGcm9tIGhvc3QgbWFjaGluZSB8CnwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwKfCBLYWZrYSBCcm9rZXIgfCBicm9rZXI6OTA5MiB8IGxvY2FsaG9zdDo5MDkyIHwKfCBTY2hlbWEgUmVnaXN0cnkgIHwgaHR0cDovL3NjaGVtYS1yZWdpc3RyeTo4MDgxIHwgaHR0cDovL2xvY2FsaG9zdDo4MDgxIHwKfCBab29LZWVwZXIgfCB6b29rZWVwZXI6MjE4MSB8IGxvY2FsaG9zdDoyMTgxIHwKCj4gTm90ZTogeW91IGNhbiBydW4gYGRvY2tlci1jb21wb3NlIGRvd25gIHRvIHN0b3AgYWxsIHNlcnZpY2VzIGFuZCBjb250YWluZXJzLgoKQXMgcGFydCBvZiB0aGlzIHNhbXBsZSwgSSd2ZSByZXRyb2ZpdHRlZCB0aGUgYXZlcmFnZSBhZ2dyZWdhdGUgZXhhbXBsZSBmcm9tIFtDb25mbHVlbnQncyBLYWZrYSBUdXRvcmlhbHNdKGh0dHBzOi8va2Fma2EtdHV0b3JpYWxzLmNvbmZsdWVudC5pby9hZ2dyZWdhdGluZy1hdmVyYWdlL2tzdHJlYW1zLmh0bWwpIGludG8gdGhpcyBwcm9qZWN0LiBUaGUgQVBJIHdpbGwgY2FsY3VsYXRlIGFuZCByZXR1cm4gYSBydW5uaW5nIGF2ZXJhZ2UgcmF0aW5nIGZvciBhIGdpdmVuIG1vdmllIGlkZW50aWZpZXIuIFRoaXMgc2hvdWxkIGRlbW9uc3RyYXRlIGhvdyB0byBidWlsZCBhIGJhc2ljIEFQSSBzZXJ2aWNlIG9uIHRvcCBvZiBhbiBhZ2dyZWdhdGlvbiByZXN1bHQuCgpOb3RpY2UgaW4gdGhlIGB+L3NyYy9tYWluL2F2cm9gIGRpcmVjdG9yeSwgd2UgaGF2ZSBhbGwgb3VyIEF2cm8gc2NoZW1hIGZpbGVzIGZvciB0aGUgc3RyZWFtIG9mIGByYXRpbmdzYCBhbmQgYGNvdW50c3VtYC4gRm9yIHlvdXIgY29udmVuaWVuY2UsIHRoZSBjbGFzc2VzIHdlcmUgYWxyZWFkeSBnZW5lcmF0ZWQgdW5kZXIgdGhlIGB+L3NyYy9tYWluL2phdmEvaW8vY29uZmx1ZW50L2RlbW9gIGRpcmVjdG9yeSwgYnV0IGZlZWwgZnJlZSB0byB0aW5rZXIgd2l0aCB0aGVtIGFuZCByZWNvbXBpbGUgdGhlIHNjaGVtYXMgaWYgbmVlZGVkLiBUaGUgQXZybyBjbGFzc2VzIGNhbiBiZSBwcm9ncmFtbWF0aWNhbGx5IGdlbmVyYXRlZCB1c2luZyBgTWF2ZW5gIG9yIGJ5IG1hbnVhbGx5IGludm9raW5nIHRoZSBbc2NoZW1hIGNvbXBpbGVyXShodHRwczovL2F2cm8uYXBhY2hlLm9yZy9kb2NzLzEuMTAuMC9nZXR0aW5nc3RhcnRlZGphdmEuaHRtbCNDb21waWxpbmcrdGhlK3NjaGVtYSkuIAoKU28gYmVmb3JlIGJ1aWxkaW5nIGFuZCBydW5uaW5nIHRoZSBwcm9qZWN0LCBvcGVuIGEgbmV3IHRlcm1pbmFsIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kcyB0byBnZW5lcmF0ZSB5b3VyIGlucHV0IGFuZCBvdXRwdXQgdG9waWNzLgoKYGBgenNoCiQgIGRvY2tlci1jb21wb3NlIGV4ZWMgYnJva2VyIGthZmthLXRvcGljcyAtLWNyZWF0ZSAtLWJvb3RzdHJhcC1zZXJ2ZXIgXAogICBsb2NhbGhvc3Q6OTA5MiAtLXJlcGxpY2F0aW9uLWZhY3RvciAxIC0tcGFydGl0aW9ucyAxIC0tdG9waWMgcmF0aW5ncwoKJCAgZG9ja2VyLWNvbXBvc2UgZXhlYyBicm9rZXIga2Fma2EtdG9waWNzIC0tY3JlYXRlIC0tYm9vdHN0cmFwLXNlcnZlciBcCiAgIGxvY2FsaG9zdDo5MDkyIC0tcmVwbGljYXRpb24tZmFjdG9yIDEgLS1wYXJ0aXRpb25zIDEgLS10b3BpYyByYXRpbmctYXZlcmFnZXMKYGBgCgpOZXh0LCB3ZSB3aWxsIG5lZWQgdG8gcHJvZHVjZSBzb21lIGRhdGEgb250byB0aGUgaW5wdXQgdG9waWMuCgpgYGB6c2gKJCAgZG9ja2VyIGV4ZWMgLWkgc2NoZW1hLXJlZ2lzdHJ5IC91c3IvYmluL2thZmthLWF2cm8tY29uc29sZS1wcm9kdWNlciAtLXRvcGljIHJhdGluZ3MgLS1icm9rZXItbGlzdCBicm9rZXI6OTA5MlwKICAgIC0tcHJvcGVydHkgInBhcnNlLmtleT1mYWxzZSJcCiAgICAtLXByb3BlcnR5ICJrZXkuc2VwYXJhdG9yPToiXAogICAgLS1wcm9wZXJ0eSB2YWx1ZS5zY2hlbWE9IiQoPCBzcmMvbWFpbi9hdnJvL3JhdGluZy5hdnNjKSIKIGBgYAogClBhc3RlIGluIHRoZSBmb2xsb3dpbmcgYGpzb25gIGRhdGEgd2hlbiBwcm9tcHRlZCBhbmQgYmUgc3VyZSB0byBwcmVzcyBlbnRlciB0d2ljZSB0byBhY3R1YWxseSBzdWJtaXQgaXQuCgpgYGBqc29uCnsibW92aWVfaWQiOjM2MiwicmF0aW5nIjoxMH0KeyJtb3ZpZV9pZCI6MzYyLCJyYXRpbmciOjh9CiBgYGAKCk9wdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBzZWUgdGhlIGNvbnN1bWVyIHJlc3VsdHMgb24gdGhlIG91dHB1dCB0b3BpYyBieSBydW5uaW5nIHRoaXMgY29tbWFuZCBvbiBhIG5ldyB0ZXJtaW5hbCB3aW5kb3c6CgpgYGB6c2gKJCAgZG9ja2VyIGV4ZWMgLWl0IGJyb2tlciAvdXNyL2Jpbi9rYWZrYS1jb25zb2xlLWNvbnN1bWVyIC0tdG9waWMgcmF0aW5nLWF2ZXJhZ2VzIC0tYm9vdHN0cmFwLXNlcnZlciBicm9rZXI6OTA5MiBcCiAgICAtLXByb3BlcnR5ICJwcmludC5rZXk9dHJ1ZSJcCiAgICAtLXByb3BlcnR5ICJrZXkuZGVzZXJpYWxpemVyPW9yZy5hcGFjaGUua2Fma2EuY29tbW9uLnNlcmlhbGl6YXRpb24uTG9uZ0Rlc2VyaWFsaXplciIgXAogICAgLS1wcm9wZXJ0eSAidmFsdWUuZGVzZXJpYWxpemVyPW9yZy5hcGFjaGUua2Fma2EuY29tbW9uLnNlcmlhbGl6YXRpb24uRG91YmxlRGVzZXJpYWxpemVyIiBcCiAgICAtLWZyb20tYmVnaW5uaW5nCmBgYAoKIyMgQnVpbGQgYW5kIFJ1biB0aGUgU2FtcGxlCgpZb3UgY2FuIGltcG9ydCB0aGUgY29kZSBzdHJhaWdodCBpbnRvIHlvdXIgcHJlZmVycmVkIElERSBvciBydW4gdGhlIHNhbXBsZSB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQgKGluIHRoZSByb290IHByb2plY3QgZm9sZGVyKS4KCmBgYHpzaAokICBtdm4gc3ByaW5nLWJvb3Q6cnVuCmBgYAoKQWZ0ZXIgdGhlIGFwcGxpY2F0aW9uIHJ1bnMsIGZyb20gdGhlIGByZWRpcy1jbGlgLCBvYnNlcnZlIHRoYXQgYSBuZXcgW1JlZGlzIHN0cmVhbV0oaHR0cHM6Ly9yZWRpcy5pby90b3BpY3Mvc3RyZWFtcy1pbnRybykgZ290IGNyZWF0ZWQgdXNpbmcgdGhlIGBLRVlTYCBjb21tYW5kOgoKYGBgenNoCmxvY2FsaG9zdDo2Mzc5PiBrZXlzICoKMSkgInJhdGluZy1hdmVyYWdlcy1zdHJlYW0iCmBgYAoKVG8gcXVlcnkgdGhlIHN0cmVhbSwgeW91IGNhbiB1c2UgdGhlIGBYUkFOR0VgIGNvbW1hbmQgd2hlcmUgZWFjaCBlbnRyeSByZXR1cm5lZCBpcyBhbiBhcnJheSBvZiB0aGUgSUQgYW5kIHRoZSBsaXN0IG9mIGZpZWxkLXZhbHVlIHBhaXJzLiBUaGUgYC1gIGFuZCBgK2AgcmVwcmVzZW50IHRoZSBzbWFsbGVzdCBhbmQgdGhlIGdyZWF0ZXN0IElEIHBvc3NpYmxlLiBJZiB5b3UgdXNlZCB0aGUgc2FtZSBpbnB1dCBkYXRhIGZyb20gYWJvdmUsIGl0IHNob3VsZCByZXR1cm4gc29tZXRoaW5nIHNpbWlsYXIgbGlrZSB0aGlzIGJlbG93OgoKYGBgenNoCmxvY2FsaG9zdDo2Mzc5PiB4cmFuZ2UgcmF0aW5nLWF2ZXJhZ2VzLXN0cmVhbSAtICsKMSkgMSkgIjE2MDUwNDM2MTQwMTEtMCIKICAgMikgMSkgIjM2MiIKICAgICAgMikgIjkuMCIKYGBgCgpGaW5hbGx5LCBuYXZpZ2F0ZSB0byBbaHR0cDovL2xvY2FsaG9zdDo3MDAxL3N3YWdnZXItdWkvaW5kZXguaHRtbD9jb25maWdVcmw9L2FwaS1kb2NzL3N3YWdnZXItY29uZmlnXShodHRwOi8vbG9jYWxob3N0OjcwMDEvc3dhZ2dlci11aS9pbmRleC5odG1sP2NvbmZpZ1VybD0vYXBpLWRvY3Mvc3dhZ2dlci1jb25maWcpIGluIHlvdXIgd2ViIGJyb3dzZXIgdG8gYWNjZXNzIHRoZSBTd2FnZ2VyIFVJLiBZb3UgY2FuIGVudGVyIGAzNjJgIGFzIHRoZSBgbW92aWVJZGAgYW5kIGl0IHNob3VsZCByZXR1cm4gdGhlIHNhbWUgdmFsdWUgZnJvbSBhYm92ZS4KCmBgYGpzb24KewogICJtb3ZpZUlkIjogMzYyLAogICJyYXRpbmciOiA5Cn0KYGBgCgpZb3UnbGwgZmluZCB0aGF0IHRoZSBgc3RvcmUucmVhZCguLi4pYCBtZXRob2QgaW4gdGhlIGNvbnRyb2xsZXIgaXMgYWJsZSB0byBxdWVyeSBpbnRvIHRoaXMgUmVkaXMtYmFja2VkIHN0YXRlIHN0b3JlLgoKPiBOb3RlOiBrZWVwIGluIG1pbmQgdGhlIHZhcmlvdXMgW3N0YXRlc10oaHR0cHM6Ly9rYWZrYS5hcGFjaGUub3JnLzI2L2phdmFkb2Mvb3JnL2FwYWNoZS9rYWZrYS9zdHJlYW1zL0thZmthU3RyZWFtcy5TdGF0ZS5odG1sKSBvZiB0aGUgY2xpZW50LiBXaGVuIGEgS2Fma2EgU3RyZWFtcyBpbnN0YW5jZSBpcyBpbiBgUlVOTklOR2Agc3RhdGUsIGl0IGFsbG93cyBmb3IgaW5zcGVjdGlvbiBvZiB0aGUgc3RyZWFtJ3MgbWV0YWRhdGEgdXNpbmcgbWV0aG9kcyBsaWtlIGBxdWVyeU1ldGFkYXRhRm9yS2V5KClgLiBXaGlsZSBpdCBpcyBpbiBgUkVCQUxBTkNJTkdgIHN0YXRlLCB0aGUgUkVTVCBzZXJ2aWNlIGNhbm5vdCBpbW1lZGlhdGVseSBhbnN3ZXIgcmVxdWVzdHMgdW50aWwgdGhlIHN0YXRlIHN0b3JlcyBhcmUgZnVsbHkgcmVidWlsdC4KCiMjIFRyb3VibGVzaG9vdGluZwoKKiBJbiBjZXJ0YWluIGNvbmRpdGlvbnMsIHlvdSBtYXkgbmVlZCB0byBkbyBhIGNvbXBsZXRlIGFwcGxpY2F0aW9uIHJlc2V0LiBZb3UgY2FuIGRlbGV0ZSB0aGUgYXBwbGljYXRpb27igJlzIGxvY2FsIHN0YXRlIGRpcmVjdG9yeSB3aGVyZSB0aGUgYXBwbGljYXRpb24gaW5zdGFuY2Ugd2FzIHJ1bi4gSW4gdGhpcyBwcm9qZWN0LCBLYWZrYSBTdHJlYW1zIHBlcnNpc3RzIGxvY2FsIHN0YXRlcyB1bmRlciB0aGUgYH4vZGF0YWAgZm9sZGVyLgo= readmeEtag: '"ee740369c0ba2ffe584b7045371f503358c5048d"' readmeLastModified: Wed, 11 Nov 2020 18:21:16 GMT repositoryId: 289421697 description: >- A demo project demonstrating how to read and write data into a Redis-backed state store using Kafka Streams. created: '2020-08-22T04:54:11Z' updated: '2024-08-01T03:19:22Z' language: Java archived: false stars: 20 watchers: 1 forks: 7 owner: ben-jamin-chen logo: https://avatars.githubusercontent.com/u/41641688?v=4 license: MIT repoEtag: '"09b8a0cc3a71714a2a1887822ac6b1aa64e51c3add98faba3df2b3c3ebabfe96"' repoLastModified: Thu, 01 Aug 2024 03:19:22 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/buzzingben/kafka-streams-redis-statestore - https://github.com/bchen04/kafka-streams-redis-statestore - source: openapi3 tags repository: https://github.com/cloudedbats/cloudedbats_wurb_2020 v3: true repositoryMetadata: base64Readme: >- IyAgQ2xvdWRlZEJhdHMgLSBXVVJCIDIwMjAKCldlbGNvbWUgdG8gQ2xvdWRlZEJhdHMtV1VSQiwgdGhlIERJWSBiYXQgZGV0ZWN0b3IuCgoqKk5vdGU6IFRoaXMgaXMgYSBuZXcgdmVyc2lvbiBvZiB0aGUgV1VSQiBiYXQgZGV0ZWN0b3IuClRoZSBvbGQgdmVyc2lvbiBjYW4gc3RpbGwgYmUgZm91bmQgaGVyZTogCmh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZGVkYmF0cy9jbG91ZGVkYmF0c193dXJiKioKCiFbV1VSQi0yMDIwXShpbWFnZXMvQ2xvdWRlZEJhdHMtV1VSQi5qcGc/cmF3PXRydWUgICJDbG91ZGVkQmF0cyBXVVJCIDIwMjAuIikKQ2xvdWRlZEJhdHMgLSBXVVJCIDIwMjAuIENsb3VkZWRCYXRzLm9yZyAvIFtDQy1CWV0oaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC8pCgojIyBJbnRyb2R1Y3Rpb24KClRoaXMgaXMgd2hhdCB5b3UgbmVlZCB0byBidWlsZCB5b3VyIG93biBiYXQgZGV0ZWN0b3I7IGFuIHVsdHJhc29uaWMgVVNCIG1pY3JvcGhvbmUsIGEgUmFzcGJlcnJ5IFBpIGNvbXB1dGVyIAp3aXRoIFNEIGNhcmQsIHBvd2VyIHN1cHBseSBhbmQgdGhpcyBDbG91ZGVkQmF0cy1XVVJCIDIwMjAgb3BlbiBzb3VyY2Ugc29mdHdhcmUuIE9wdGlvbmFsIHBhcnRzIHRoYXQgCmFyZSByZWNvbW1lbmRlZCBhcmUgVVNCIG1lbW9yeSBzdGlja3MsIGFuIFVTQiBHUFMgcmVjZWl2ZXIgYW5kIGEgUG93ZXIgYmFuayBmb3Igc2luZ2xlIG5pZ2h0IHNlc3Npb25zLgpGb3IgdGhlIHYwLjkuMCByZWxlYXNlIHlvdSB3aWxsIGFsc28gbmVlZCBoZWFkcGhvbmVzIHdpdGggYSAzLjUgbW0gamFjayBmb3IgYXVkaW8gZmVlZGJhY2suCgojIyBGdW5jdGlvbmFsIGZlYXR1cmVzLCBmcm9tIHRoZSBlYXJsaWVyIENsb3VkZWRCYXRzLVdVUkI6CgotIFN1cHBvcnQgZm9yIFVTQiB1bHRyYXNvbmljIG1pY3JvcGhvbmVzIGZyb20gUGV0dGVyc3NvbiBhbmQgRG9kb3Ryb25pYyAKICAodGVzdGVkIHdpdGggUGV0dGVyc3NvbiB1MjU2LCB1Mzg0LCBNNTAwICh0aGUgNTAwIGtIeiB2YXJpYW50KSwgTTUwMC0zODQgKDM4NCBrSHopIGFuZCAKICBEb2RvdHJvbmljIFVsdHJhTWljIDE5MkssIDI1MEssIDM4NEsgQkxFKS4KLSBTdXBwb3J0IGZvciBVU0IgR1BTIHJlY2VpdmVycyAodGVzdGVkIHdpdGggIk5hdmlsb2NrIE5MLTYwMlUiLCAiRy1TVEFSIElWLCBCVS0zNTNTNCIgCiAgYW5kICJHUFMvR0xPTkFTUyBVLWJsb3g3IikuCi0gRmlsZSBzdG9yYWdlIGFsdGVybmF0aXZlcyBhcmU7IGludGVybmFsbHkgKG9uIHRoZSBTRCBjYXJkKSwgVVNCIG1lbW9yeSBvciBVU0IgZGlzYy4KLSBSZWNvcmRpbmcgbW9kZXMgYXJlIGZ1bGwgc3BlY3RydW0gb3IgdGltZSBleHBhbmRlZCAid2F2IiBmaWxlcy4KLSBTb3VuZCBkZXRlY3Rpb24gYWxnb3JpdGhtIHRvIGF2b2lkIGVtcHR5IGZpbGVzLiBCdWZmZXIgYmVmb3JlIHRoZSBkZXRlY3RlZCBzb3VuZCBpcyBhbHdheXMgb24uCi0gVGltZSBhbmQgcG9zaXRpb24gZnJvbSBhdHRhY2hlZCBHUFMgcmVjZWl2ZXIgaXMgdXNlZCBpbiBmaWxlbmFtZXMgYW5kIGZvciB0aGUgc2NoZWR1bGVycyBjYWxjdWxhdGlvbnMuCi0gU2NoZWR1bGVyIGZvciBzdGFydCBhbmQgc3RvcCByZWxhdGVkIHRvIHRpbWVzdGFtcHMsIHN1bnNldCwgZGF3biwgZXRjLiB0aGF0IGFyZSBjYWxjdWxhdGVkIGZyb20gR1BTIHRpbWUgYW5kIHBvc2l0aW9uLgotIE1hbnVhbGx5IGNvbnRyb2xsZWQgdmlhIHN3aXRjaGVzIG9yIGEgY29tcHV0ZXIgbW91c2UuCi0gTG9nIGZpbGVzIGZvciBwZXJmb3JtZWQgYWN0aW9ucyBhbmQgZXJyb3JzLgotIFRoaXMgdmVyc2lvbiB3YXMgY29uZmlndXJlZCB2aWEgc2V0dGluZ3MgZmlsZXMgc3RvcmVkIG9uIHRoZSBVU0IgbWVtb3J5IHN0aWNrLgoKIyMgQWRkZWQgZmVhdHVyZXMgaW4gQ2xvdWRlZEJhdHMtV1VSQiAyMDIwOgoKUmVsZWFzZSB2MC44OgoKLSBUaGUgZGV0ZWN0b3IgYWN0cyBhcyBhIFdpRmkgSG90c3BvdC9BY2Nlc3NQb2ludCBhbmQgY29udGFpbnMgYSB3ZWIgc2VydmVyLiAKLSBXZWIgcGFnZXMgYXJlIHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24gYW5kIGNvbnRyb2wuIEFkYXB0aXZlIGxheW91dCBmb3IgYm90aCBzbWFydHBob25lcyBhbmQgY29tcHV0ZXJzLgotIEF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgY29ubmVjdGVkIFVsdHJhc29uaWMgbWljcm9waG9uZXMgKHZhbGlkIGZvciBQZXR0ZXJzc29uIGFuZCBEb2RvdHJvbmljKS4KLSBBdXRvbWF0aWMgZGV0ZWN0aW9uIG9mIGNvbm5lY3RlZCBVU0IgR1BTIFJlY2VpdmVyLgotIFNvdW5kIHBlYWtzIGluIGtIeiBhbmQgZEJGUyBhcmUgcHJlc2VudGVkIGluIGxpdmUgbG9nIGFuZCBpbiBmaWxlIG5hbWVzLgotIEF1dG9tYXRpYyBjaGVjayB3aGVyZSByZWNvcmRlZCBmaWxlcyBzaG91bGQgYmUgc3RvcmVkLiBPbiBVU0IgbWVtb3J5IChtdWx0aXBsZSBjYW4gYmUgdXNlZCkgb3IgCiAgaW50ZXJuYWxseSBpZiBubyBVU0IgYXJlIGZvdW5kLiBBdXRvbWF0aWMgZmFpbG92ZXIgdG8gaW50ZXJuYWwgc3RvcmFnZSB3aGVuIFVTQiBtZW1vcnkgaXMgZnVsbC4KLSBQb3NzaWJsZSB0byBydW4gdGhlIGRldGVjdG9ycyB1c2VyIGludGVyZmFjZSBvdmVyIGludGVybmV0LCBhbmQgdG8gZG93bmxvYWQgZmlsZXMgdmlhIFNGVFAuCgpSZWxlYXNlIHYwLjk6CgotIFJlb3JnYW5pemVkIHVzZXIgaW50ZXJmYWNlIHdpdGggYSBtb3JlIGludHVpdGl2ZSBkZXRlY3RvciBtb2RlIHNlbGVjdG9yLgotIEF1ZGlvIGZlZWRiYWNrIHZpYSB0aGUgMy41IG1tIGF1ZGlvIGphY2sgZm9yIGFjdGl2ZSBtb25pdG9yaW5nIHdpdGggYWRqdXN0YWJsZSBwaXRjaCBsZXZlbC4KLSBOZXcgYWx0ZXJuYXRpdmVzIGZvciBHUFMgc291cmNlcyB3aXRoIGZhbGxiYWNrIGFsdGVybmF0aXZlcyBzdWl0YWJsZSBmb3IgcGFzc2l2ZSBtb25pdG9yaW5nLgotIFR3byBjb25maWd1cmFibGUgc2V0dGluZ3M6ICJ1c2VyIGRlZmF1bHQgc2V0dGluZ3MiIGFuZCAic3RhcnQtdXAgc2V0dGluZ3MiLgotIEJhc2ljIGNvbnRyb2wgdmlhIHN3aXRjaGVzIG9yIGEgY29tcHV0ZXIgbW91c2UgKHJlaW50cm9kdWNlZCwgd2FzIG1pc3NpbmcgaW4gdjAuOCkuCi0gQ29uZmlndXJhYmxlIGhvc3QgYW5kIHBvcnQgZm9yIGludGVybmV0IHRyYWZmaWMgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlcy4KLSBQb3NzaWJsZSB0byBleHBlcmltZW50IGFuZCB1c2Ugb3RoZXIgc291bmQgY2FyZHMgdGhhdCBhcmUgY29tcGF0aWJsZSB3aXRoIEFMU0Egb24gUmFzcGJlcnJ5IFBpLgogIEVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgdXNlZCB0byBzcGVjaWZ5IHNvdW5kIGNhcmQgbmFtZSBhbmQgc2FtcGxpbmcgZnJlcXVlbmN5LgotIFVzZXIgbWFudWFsIGZvciBiYXNpYyB1c2FnZS4KCiMjIE90aGVyIGNoYXJhY3RlcmlzdGljcwoKLSBUaGUgQ2xvdWRlZEJhdHMgc29mdHdhcmUgaXMgZGV2ZWxvcGVkIGFzIG9wZW4gc291cmNlIHNvZnR3YXJlLiBGcmVlIHRvIHVzZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLgotIFRoZSBzb2Z0d2FyZSBpcyBkZXZlbG9wZWQgb24gdG9wIG9mIG1vZGVybiBvcGVuIHNvdXJjZSBjb2RlIGxpYnJhcmllcyBhbmQgZnJhbWV3b3Jrcy4KLSBJbmV4cGVuc2l2ZSBoYXJkd2FyZSBjYW4gYmUgdXNlZC4gTW9zdCBvZiBpdCBpcyBhdmFpbGFibGUgd2hlcmUgdGhleSBhcmUgc2VsbGluZyBlbGVjdHJvbmljIHRoaW5ncywgZXhjZXB0IGZvciB0aGUgdWx0cmFzb25pYyBtaWNyb3Bob25lLgotIFRoZSBSYXNwYmVycnkgUGkgY29tcHV0ZXIgb2ZmZXJzIG1hbnkgb3B0aW9ucyBmb3IgZW5oYW5jZW1lbnRzLCBsaWtlIGFkZGluZyBjYW1lcmFzIGFuZCBkaWZmZXJlbnQgdHlwZXMgb2Ygc2Vuc29ycy4KLSBTb2Z0d2FyZSBkZXZlbG9wZXJzIGNhbiBmb3JrIHRoZSBjb2RlIGZyb20gR2l0SHViIHRvIGFkanVzdCB0aGUgZGV0ZWN0b3IgY29kZSB0byBtYXRjaCB0aGVpciBvd24gbmVlZHMuCgojIyBEcmF3YmFja3MKCi0gSGlnaGVyIHBvd2VyIGNvbnN1bXB0aW9uIGNvbXBhcmVkIHRvIG90aGVyIHBhc3NpdmUgbW9uaXRvcmluZyBzeXN0ZW1zLiAKLSBZb3UgbXVzdCBwdXQgdG9nZXRoZXIgdGhlIHN5c3RlbSB5b3Vyc2VsZi4KLSBUaGUgY29kZSBpcyBkZWxpdmVyZWQgImFzLWlzIiB3aXRoIG5vIHdhcnJhbnRpZXMgYXQgYWxsLiBIb3dldmVyLCBtb3N0IHNvZnR3YXJlIGRldmVsb3BlcnMgdXNpbmcgTGludXggLyBQeXRob24gCiAgc2hvdWxkIHVuZGVyc3RhbmQgdGhlIGNvZGUgYW5kIHN5c3RlbSBzZXR1cCB0byBjb3JyZWN0IGVycm9ycyBpZiBJIGNhbid0IGhlbHAuCgojIyBVc2VyIG1hbnVhbHM6Ci0gVXNlciBtYW51YWwgZm9yIGJhc2ljIHVzYWdlOgogIGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZGVkYmF0cy9jbG91ZGVkYmF0c193dXJiXzIwMjAvYmxvYi9tYXN0ZXIvZG9jcy91c2VyX21hbnVhbF9iYXNpYy5tZAotIFRoZSB1c2VyIG1hbnVhbCBmb3IgYWR2YW5jZWQgdXNhZ2UgaXMgbm90IHdyaXR0ZW4geWV0LiBQbGVhc2UgY29udGFjdCBtZSBpZiB0aGVyZSBhcmUgcXVlc3Rpb25zLgoKIyMgU29mdHdhcmUgbm90ZXMsIGZvciBkZXZlbG9wZXJzOgoKVGhpcyBpcyB2YWxpZCBmb3IgdGhlIENsb3VkZWRCYXRzLVdVUkIgMjAyMCB2ZXJzaW9uLgoKLSBTb2Z0d2FyZSBjb21wbGV0ZWx5IHJld3JpdHRlbi4gUHl0aG9uIDMuNysgbmVlZGVkLgotIFJhc3BiaWFuIEJ1c3RlciBMaXRlIHVzZWQgZm9yIFJhc3BiZXJyeSBQaSA0IHN1cHBvcnQuCi0gUmFzcEFQIChodHRwczovL3Jhc3BhcC5jb20vKSB1c2VkIHRvIHJ1biB0aGUgZGV0ZWN0b3IgYXMgYSBXaUZpIEhvdHNwb3QvQWNjZXNzUG9pbnQuCi0gVGhlIHNvZnR3YXJlIGRlc2lnbiBpcyBpbnNwaXJlZCBieSBtaWNybyBzZXJ2aWNlcy4KLSBUaGUgUkVTVCBBUEkgaXMgc3BlY2lmaWVkIGFzIE9wZW5BUEkgMy4wLgotIEFzeW5jaHJvbm91cyAoYXN5bmMvYXdhaXQpIHByb2dyYW1taW5nIGJvdGggaW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQuCi0gV2ViU29ja2V0cyBhcmUgdXNlZCBmb3IgZmFzdCBjbGllbnQgdXBkYXRlcy4KLSBTdHlsZXNoZWV0cyBmb3IgcmVzcG9uc2l2ZSB3ZWIgcGFnZXMgYXJlIGJhc2VkIG9uIEJ1bG1hIChodHRwczovL2J1bG1hLmlvKS4KLSBGYXN0QVBJIGFuZCB1dmljb3JuIChodHRwczovL3d3dy51dmljb3JuLm9yZykgYXJlIHVzZWQgdG8gcnVuIHRoZSBhc3luY2hyb25vdXMgd2ViIHNlcnZpY2VzLgotIFB5dGhvbnMgbmV3IGFzeW5jaW8gbGlicmFyeSBpcyB1c2VkIHRvIHJlcGxhY2UgYWxsIHRocmVhZHMgaW4gdGhlIGJhY2tlbmQgc2VydmljZXMuIAotIFNvdW5kZGV2aWNlIGFuZCBweWF1ZGlvIGhhdmUgcHJldmlvdXNseSBiZWVuIHVzZWQgZm9yIGNvbW11bmljYXRpb24gd2l0aCBhdWRpbyBkZXZpY2VzLCBidXQKICB0aGV5IGFyZSBub3cgcmVwbGFjZWQgYnkgYWxzYWF1ZGlvIChodHRwczovL2xhcnNpbW1pc2NoLmdpdGh1Yi5pby9weWFsc2FhdWRpby8pLgoKIyMgSGFyZHdhcmUKCkFueSBSYXNwYmVycnkgUGkgbW9kZWwgd2l0aCBXaUZpLiAoUlBpIFplcm8gVyB3b3JrcyBpZiBhdXRvIGRldGVjdGlvbiBhbmQgCmF1ZGlvIGZlZWRiYWNrIGlzIHR1cm5lZCBvZmYpLiBSYXNwYmVycnkgUGkgNCBpcyByZWNvbW1lbmRlZCBpZiB5b3Ugd2FudCBoaWdoIHNwZWVkIHRyYW5zZmVyCm9mIHJlY29yZGVkIGZpbGVzIG92ZXIgaW50ZXJuZXQuCgpNb3N0IFNEIGNhcmRzIHNlZW1zIHRvIHdvcmsgYnV0IGZhc3RlciBvbmVzIGFyZSByZWNvbW1lbmRlZC4KUGVyc29uYWxseSBJIG1vc3RseSB1c2UgVTMgKFVIUyBTcGVlZCBDbGFzcyBVMyksIGZvciBleGFtcGxlIFRvc2hpYmEgRXhjZXJpYSBQcm8uCgoqKk5vdGU6KiogRm9yIHNvbWUgc3RyYW5nZSByZWFzb24gYm90aCBNNTAwIGFuZCBNNTAwLTM4NCBoYXZlIHByb2JsZW1zIGlmIGNvbm5lY3RlZCBkaXJlY3RseSB0byBhIApSYXNwYmVycnkgUGkgNCBhdCBzdGFydHVwIChSUGkzQisgd29ya3MgZmluZSkuIFdvcmthcm91bmRzIGFyZSB0byB1c2UgYW4gZXh0cmEgVVNCIDIuMCBIdWIgKHBhc3NpdmUgaXMgb2spLCAKb3IgYXR0YWNoIHRoZSBNNTAwIG9yIE01MDAtMzg0IG1pY3JvcGhvbmUgYWZ0ZXIgc3RhcnR1cC4KCiMjIEluc3RhbGxhdGlvbgoKTm90ZTogVGhpcyBpbnN0YWxsYXRpb24gZ3VpZGUgaXMgdXBkYXRlZCB0byBtYXRjaCB0aGUgQW5zaWJsZQppbnN0YWxsYXRpb24gZ3VpZGUgdGhhdCBpcyB1c2VkIGZvciBtb3JlIGF1dG9tYXRlZCBpbnN0YWxsYXRpb25zLgpJZiB5b3UgYXJlIGZhbWlsaWFyIHdpdGggQW5zaWJsZSwgdGhlbiBwbGVhc2UgaGF2ZSBhIGxvb2sgaGVyZToKaHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkZWRiYXRzL2Fuc2libGUtcGxheWJvb2tzCgojIyMgTWFpbiB3b3JrZmxvdywgb3ZlcnZpZXcKClRoZSBtYWluIHN0ZXBzIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIGFyZToKCi0gSW5zdGFsbCB0aGUgUmFzcGJlcnJ5IFBpIE9wZXJhdGluZyBzeXN0ZW0gb24gYW4gU0QgY2FyZCwgd2l0aCBzb21lIGJhc2ljIGNvbmZpZ3VyYXRpb25zLgotIE1vdmUgdGhlIFNEIGNhcmQgdG8gYSBSYXNwYmVycnkgUGkgY29tcHV0ZXIgYW5kIHBvd2VyIGl0IHVwLgotIFRoZSBSYXNwYmVycnkgUGkgc2hvdWxkIG5vdyBiZSBjb25uZWN0ZWQgdG8geW91ciBsb2NhbCBXaUZpIG5ldHdvcmssIG9yIHZpYSBhbiBvcHRpb25hbCBFdGhlcm5ldCBjYWJsZS4KLSBMb2dpbiB0byB0aGUgUmFzcGJlcnJ5IFBpIHdpdGggU1NIIGJ5IHVzaW5nIGEgdGVybWluYWwgd2luZG93LgotIE1ha2Ugc29tZSBiYXNpYyBjb25maWd1cmF0aW9ucy4KLSBJbnN0YWxsIG5lZWRlZCBMaW51eCBtb2R1bGVzLgotIEluc3RhbGwgdGhlIENsb3VkZWRCYXRzIFdVUkItMjAyMCBzb2Z0d2FyZS4KLSBSZXN0YXJ0IHRoZSBSYXNwYmVycnkgUGkuCi0gQWRkIGV4dHJhIG9wdGlvbmFsIGZlYXR1cmVzIGxpa2UgUmFzcEFQLCBldGMuCgojIyMgSW5zdGFsbCB0aGUgUmFzcGJlcnJ5IFBpIE9TCgpVc2UgdGhlICoqUmFzcGJlcnJ5IFBpIEltYWdlcioqIHRvIGluc3RhbGwgdGhlIFJhc3BiZXJyeSBQaSBvcGVyYXRpbmcgc3lzdGVtLgoKLSBEb3dubG9hZCBhbmQgaW5zdGFsbCB0aGUgUmFzcGJlcnJ5IFBpIEltYWdlciBmcm9tIGhlcmU6Cmh0dHBzOi8vd3d3LnJhc3BiZXJyeXBpLmNvbS9zb2Z0d2FyZS8KLSBTdGFydCB0aGUgUmFzcGJlcnJ5IFBpIEltYWdlci4KLSBTZWxlY3QgdGhlIG9wZXJhdGluZyBzeXN0ZW0gKioiUmFzcGJlcnJ5IFBpIE9TIExpdGUiKiosIHVzZSB0aGUgMzItYml0IHZlcnNpb24uIChUaGUgIkRlc2t0b3AiIHZlcnNpb24gd2lsbCBub3Qgd29yaywgaXQgbXVzdCBiZSB0aGUgKioiTGl0ZSIqKiB2ZXJzaW9uLikKLSBBdHRhY2ggYW4gU0QgY2FyZCBhbmQgc2VsZWN0IGl0IGluIHRoZSBSYXNwYmVycnkgUGkgSW1hZ2VyLgotIENsaWNrIHRoZSDigJxzZXR0aW5nc+KAnSBidXR0b24gKHRoZSBjb2d3aGVlbCkuCgpUaGVuIG1ha2UgdGhlc2Ugc2V0dGluZywgdG8gYmUgdXNlZCBhcyBhbiBleGFtcGxlLiBJdCB3aWxsIGFsc28gd29yayB3aXRoIGFuCkV0aGVybmV0IGNhYmxlIGNvbm5lY3RlZCB0byB0aGUgUmFzcGJlcnJ5IFBpLCBhbmQgdGhlbiB0aGUgV2lGaSAod2lyZWxlc3MgTEFOKSBwYXJ0IGNhbiBiZSBvbWl0dGVkLgoKTm90ZSB0aGF0IHRoZSB1c2VybmFtZSBtdXN0IGJlICoqcGkqKiBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIFdVUkIgYmF0IGRldGVjdG9yLgoKLSBIb3N0bmFtZTogd3VyYjk5Ci0gRW5hYmxlIFNTSAotIFVzZSBwYXNzd29yZCBhdXRoZW50aWNhdGlvbgotIFVzZXJuYW1lOiBwaQotIFBhc3N3b3JkOiBteS13dXJiOTktcGFzc3dvcmQKLSBDb25maWd1cmUgd2lyZWxlc3MgTEFOCiAgLSBTU0lEOiBteS1ob21lLXdpZmkKICAtIFBhc3N3b3JkOiBteS1ob21lLXdpZmktcGFzc3dvcmQKICAtIFdpcmVsZXNzIExBTiBjb3VudHJ5OiBTRQotIExvY2FsZSBzZXR0aW5ncwogIC0gVGltZSB6b25lOiBFdXJvcGUvU3RvY2tob2xtCiAgLSBLZXlib2FyZCBsYXlvdXQ6IHNlCgpGaW5hbGx5IHdyaXRlIHRvIHRoZSBTRCBjYXJkLiBXaGVuIGZpbmlzaGVkIHJlbW92ZSB0aGUgU0QgY2FyZC4KCklmIHlvdSBoYXZlIG1hbnkgZGV0ZWN0b3JzLCB0aGVuIGJlIHN1cmUgdGhhdCB5b3UgdXNlIGRpZmZlcmVudCBob3N0bmFtZXMuCk90aGVyd2lzZSB0aGVyZSB3aWxsIGJlIHByb2JsZW1zIHdoZW4gdGhleSBhcmUgY29ubmVjdGVkIHRvIHRoZSBzYW1lIG5ldHdvcmsKaWYgbW9yZSB0aGFuIG9uZSBpcyBpZGVudGlmaWVkIGFzLCBmb3IgZXhhbXBsZSwgInd1cmI5OS5sb2NhbCIuCgojIyMgU3RhcnQgdGhlIFJhc3BiZXJyeSBQaQoKSW5zZXJ0IHRoZSBTRCBjYXJkIGludG8gdGhlIFJhc3BiZXJyeSBQaSBhbmQgcG93ZXIgaXQgdXAuCgpUaGUgUmFzcGJlcnJ5IFBpIHNob3VsZCBub3cgYmUgY29ubmVjdGVkIHRvIHlvdXIgbG9jYWwgbmV0d29yaywgZWl0aGVyIHZpYSAKV2lGaSBvciBhbiBFdGhlcm5ldCBjYWJsZSBkZXBlbmRpbmcgb24geW91ciBjb25maWd1cmF0aW9uIGFib3ZlLgoKU3RhcnQgYSB0ZXJtaW5hbCB3aW5kb3cgYW5kIGNvbm5lY3Qgd2l0aCBTU0guCkZvciBXaW5kb3dzIHVzZXJzIFB1dHR5IGlzIGEgd2VsbCBrbm93biBhbHRlcm5hdGl2ZS4KCiAgICBzc2ggcGlAd3VyYjk5LmxvY2FsCgpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGF0dGFjaCBhIHNjcmVlbiBhbmQga2V5Ym9hcmQvbW91c2UgZGlyZWN0bHkgdG8KdGhlIFJhc3BiZXJyeSBQaSBpbnN0ZWFkIG9mIHVzaW5nIHNzaC4gCk5vIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSB3aWxsIGJlIGF2YWlsYWJsZSwgb25seSBjb21tYW5kIGxpbmUgbW9kZS4KCiMjIyBCYXNpYyBjb25maWd1cmF0aW9ucwoKVXBkYXRlIHRoZSBSYXNwYmVycnkgUGkgc29mdHdhcmUuCgogICAgc3VkbyBhcHQgdXBkYXRlCiAgICBzdWRvIGFwdCB1cGdyYWRlCgpNYWtlIHNvbWUgY29uZmlndXJhdGlvbnMuCk1vc3Qgb2YgdGhlbSBhcmUgYWxyZWFkeSBtYWRlIHdoZW4gcnVubmluZwpSYXNwYmVycnkgUGkgSW1hZ2VyIGFib3ZlLCBidXQgdGhlIGxhc3QgdHdvIG11c3QKYmUgZG9uZSBoZXJlLiBMYXRlciBtb2RpZmljYXRpb24gY2FuIGJlIGRvbmUKd2hlbmV2ZXIgeW91IHdhbnQgYnkgcnVubmluZyByYXNwaS1jb25maWcuCgogICAgc3VkbyByYXNwaS1jb25maWcKCkNoZWNrIG9yIGNoYW5nZSB0aGlzIChleGFtcGxlIGZvciBTd2VkaXNoIHVzZXJzKToKCi0gU3lzdGVtIE9wdGlvbnMgLSBIb3N0bmFtZTogd3VyYjk5IAotIFN5c3RlbSBPcHRpb25zIC0gUGFzc3dvcmQ6IG15LXd1cmI5OS1wYXNzd29yZAotIExvY2FsaXphdGlvbiBPcHRpb25zIC0gVGltZXpvbmU6IEV1cm9wZSAtIFN0b2NraG9sbQoKTWFuZGF0b3J5OgoKLSBTeXN0ZW0gT3B0aW9ucyAtIE5ldHdvcmsgYXQgYm9vdDogTm8KLSBBZHZhbmNlZCBPcHRpb25zIC0gRXhwYW5kIEZpbGVzeXN0ZW0uCgpBIHJlYm9vdCBpcyBuZWVkZWQgdG8gZXhwYW5kIHRoZSBmaWxlIHN5c3RlbS4KCiAgICBzdWRvIHJlYm9vdAoKSGludDogV2lGaSBuZXR3b3JrcyBjYW4gYmUgY2hhbmdlZCB2aWEgcmFzcGktY29uZmlnLgpBbm90aGVyIGFsdGVybmF0aXZlIGlzIHRvIGVkaXQgdGhlIHdwYV9zdXBwbGljYW50LmNvbmYgZmlsZQphbmQgY2hhbmdlIFNTSUQgYW5kIHBhc3N3b3JkIGZvciB0aGUgbmV0d29yay4KRXZlbiBhIGxpc3Qgb2YgbmV0d29ya3MgY2FuIGJlIGFkZGVkIGluIHRoaXMgZmlsZSBpZiB0aGUKZGV0ZWN0b3IgaXMgdXNlZCBhdCBkaWZmZXJlbnQgcGxhY2VzLgoKICAgIHN1ZG8gbmFubyAvZXRjL3dwYV9zdXBwbGljYW50L3dwYV9zdXBwbGljYW50LmNvbmYKCiMjIyBJbnN0YWxsIExpbnV4IHBhY2thZ2VzCgpJbnN0YWxsIG5lZWRlZCBzb2Z0d2FyZSBwYWNrYWdlcy4KCiAgICBzdWRvIGFwdCBpbnN0YWxsIGdpdCBweXRob24zLXZlbnYgcHl0aG9uMy1kZXYgbGliYXRsYXMtYmFzZS1kZXYgdWRldmlsCgpUbyBtYWtlIGl0IHdvcmsgd2l0aCB0aGUgIkJvb2t3b3JtIiByZWxlYXNlIG9mIHRoZSBSYXNwYmVycnkgUGkgT1MgdGhlc2UgCmluc3RhbGxhdGlvbnMgbXVzdCBiZSBkb25lLiBOb3RlIHRoYXQgIm51bXB5IiBhbmQgInNjaXB5IiBub3cgaXMgcmVtb3ZlZCBmcm9tCnRoZSAicmVxdWlyZW1lbnRzLnR4dCIgZmlsZSB1c2VkIGJ5ICJwaXAgaW5zdGFsbCIuIFRoZSBjb21tYW5kIGZvciBjcmVhdGluZwp2aXJ0dWFsIGVudmlyb25tZW50cyBmb3IgcHl0aG9uIGlzIGFsc28gbW9kaWZpZWQgdG8gYWNjZXB0IG51bXB5IGFuZCAKc2NpcHkgd2hlbiB0aGV5IGFyZSBub3QgY3JlYXRlZCBpbnNpZGUgdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQuIApUaGUgcGFja2FnZSAicHlhbHNhYXVkaW8iIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIDY0IGJpdHMgdmVyc2lvbiwgCmFuZCB3ZSBoYXZlIHRvIHN0YXkgd2l0aCB0aGUgMzIgYml0cyB2ZXJzaW9uIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtLgoKICAgIHN1ZG8gYXB0IGluc3RhbGwgcHVsc2VhdWRpbyBweXRob24zLW51bXB5IHB5dGhvbjMtc2NpcHkKCiMjIyBQZXR0ZXJzc29uIE01MDAgKDUwMGtIeikKClRoZSBQZXR0ZXJzc29uIE01MDAgbWljcm9waG9uZSAodGhlIDUwMGtIeiB2ZXJzaW9uKSBkaWZmZXIgaW4gY29tbXVuaWNhdGlvbgpmb3JtYXQgY29tcGFyZWQgdG8gTTUwMC0zODQsIHUyNTYsIGFuZCB1Mzg0LiBTb21lIHVkZXYgcnVsZXMgbXVzdCBiZSBzZXR1cAp0byBhbGxvdyB0aGUgZGV0ZWN0b3IgdG8gY29tbXVuaWNhdGUgd2l0aCBpdC4KCiAgICAjIENyZWF0ZSBhIGZpbGUgd2l0aCB1ZGV2IHJ1bGVzOgogICAgc3VkbyBuYW5vIC9ldGMvdWRldi9ydWxlcy5kL3BldHRlcnNzb25fbTUwMF9iYXRtaWMucnVsZXMKICAgIAogICAgIyBBZGQgdGhpcyByb3cgaW4gdGhlIG5ldyBmaWxlLiAKICAgIFNVQlNZU1RFTT09InVzYiIsIEVOVntERVZUWVBFfT09InVzYl9kZXZpY2UiLCBNT0RFPSIwNjY0IiwgR1JPVVA9InBpIgoKIyMjIEluc3RhbGwgdGhlIENsb3VkZWRCYXRzIFdVUkItMjAyMCBzb2Z0d2FyZQoKQ2xvbmUgdGhlIHNvZnR3YXJlIGZyb20gdGhlIEdpdEh1YiByZXBvc2l0b3J5IGFuZCBpbnN0YWxsIFB5dGhvbiByZWxhdGVkIHBhY2thZ2VzLgoKICAgIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vY2xvdWRlZGJhdHMvY2xvdWRlZGJhdHNfd3VyYl8yMDIwLmdpdAogICAgY2QgY2xvdWRlZGJhdHNfd3VyYl8yMDIwLwogICAgcHl0aG9uIC1tIHZlbnYgLS1zeXN0ZW0tc2l0ZS1wYWNrYWdlcyB2ZW52CiAgICBzb3VyY2UgdmVudi9iaW4vYWN0aXZhdGUKICAgIHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQgCgpOb3RlOiBXaGVuIGluc3RhbGxpbmcgcGFja2FnZXMgbW9zdCBvZiB0aGVtIGFyZSBwcmUtcHJlcGFyZWQgaW4gc29tZXRoaW5nCmNhbGxlZCAid2hlZWxzIi4KVGhlIG1haW4gc291cmNlIGZvciB3aGVlbHMgZm9yIFJhc3BiZXJyeSBQaSBjYW4gYmUgZm91bmQgaGVyZSwKd2l0aCBhbiBleGFtcGxlIGZvciBTY2lQeToKaHR0cHM6Ly9waXdoZWVscy5vcmcvcHJvamVjdC9zY2lweS8KSWYgdGhhdCBidWlsZCBoYXMgZmFpbGVkLCB0aGVuIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBhbiBvbGRlciB2ZXJzaW9uLgpUaGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MgbWF5IGZpbmQgYSB3b3JraW5nIHZlcnNpb24gYXV0b21hdGljYWxseSB3aXRoIGEKbG90IG9mIHdhcm5pbmdzIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuClRoZW4gaXQgaXMgcG9zc2libGUgdG8gZWRpdCB0aGUgcmVxdWlyZW1lbnRzLnR4dCBmaWxlIHRvIHNwZWVkIHVwIHRoZQppbnN0YWxsYXRpb24gcHJvY2Vzcy4gSW4gdGhlIFNjaVB5IGNhc2UgdGhlIHJvdyBjYW4gYmUgY2hhbmdlZApmcm9tICJzY2lweSIgdG8gInNjaXB5PDEuOS4wIiBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB2ZXJzaW9uIDEuOS4wLgoKIyMjIFJ1biB0aGUgZGV0ZWN0b3Igc29mdHdhcmUgYXMgYSBzZXJ2aWNlCgpJbnN0YWxsIHRoZSBzZXJ2aWNlIGFuZCBlbmFibGUgaXQuIEVuYWJsZSBtZWFucyB0aGF0IHRoZSBzZXJ2aWNlIHdpbGwKc3RhcnQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBSYXNwYmVycnkgUGkgaXMgc3RhcnRlZC4KCiAgICBzdWRvIGNwIHd1cmJfMjAyMC5zZXJ2aWNlIC9ldGMvc3lzdGVtZC9zeXN0ZW0vd3VyYl8yMDIwLnNlcnZpY2UKICAgIHN1ZG8gc3lzdGVtY3RsIGRhZW1vbi1yZWxvYWQKICAgIHN1ZG8gc3lzdGVtY3RsIGVuYWJsZSB3dXJiXzIwMjAuc2VydmljZQogICAgc3VkbyBzeXN0ZW1jdGwgc3RhcnQgd3VyYl8yMDIwLnNlcnZpY2UKCiMjIyBBZGp1c3Qgc291bmQgbGV2ZWwKClNldCB0aGUgaGVhZHBob25lIHZvbHVtZSB1c2VkIGZvciBhdWRpbyBmZWVkYmFjay4KCiAgICBhbWl4ZXIgc2V0ICdQQ00nIDEwMCUKICAgICMgT3RoZXIgdXNlZnVsIGNvbW1hbmRzIGlmIHRoZXJlIGFyZSBwcm9ibGVtczoKICAgIGFwbGF5IC1MCiAgICBhbWl4ZXIgc2NvbnRyb2xzCiAgICBhbHNhbWl4ZXIgLWMwCgojIyMgQW5kIGZpbmFsbHksIHJlc3RhcnQgdGhlIGRldGVjdG9yCgogICAgc3VkbyByZWJvb3QKCiMjIyBSYXNwQVAsIG9wdGlvbmFsIGluc3RhbGxhdGlvbgoKSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBkZXRlY3RvciBhd2F5IGZyb20gY29tcHV0ZXIgbmV0d29ya3MsIHRoZW4KdGhlIFJhc3BBUCBzb2Z0d2FyZSBjYW4gaGVscC4gUmVhZCBtb3JlIGhlcmU6IGh0dHBzOi8vcmFzcGFwLmNvbQoKTm90ZSB0aGF0IHRoZSBidWlsdC1pbiBXaUZpIG1vZHVsZSB3aWxsIGJlIHVzZWQgYnkgUmFzcEFQIHRvIHByb3ZpZGUgYSBXaUZpCmFjY2VzcyBwb2ludC4gVGhhdCBtZWFucyB0aGF0IHRoZSBwcmV2aW91c2x5IHVzZWQgV2lGaSBjb25uZWN0aW9uIHRvCnRoZSBsb2NhbCB3aXJlbGVzcyBuZXR3b3JrIHdpbGwgbm90IHdvcmsgd2hlbiBSYXNwQVAgaXMgaW5zdGFsbGVkLgpXaGVuIGludGVybmV0IGFjY2VzcyBpcyBuZWVkZWQgeW91IGhhdmUgdG8gY29ubmVjdCBhbiBFdGhlcm5ldCBjYWJsZS4KQW5vdGhlciBvcHRpb24gaXMgdG8gdXNlIGEgNEcvTFRFIG1vZGVtLCBsaWtlIHRoZSBIVUFXRUkgRTMzNzIsIGFuZCB0aGVuCnRoZSBkZXRlY3RvciBhbHNvIGNhbiBiZSB1c2VkIGFzIGEgV2lGaSBhY2Nlc3MgcG9pbnQgZm9yIGludGVybmV0IGFjY2Vzcy4KCkRvd25sb2FkIGFuZCBpbnN0YWxsIFJhc3BBcC4KCiAgICBjdXJsIC1zTCBodHRwczovL2luc3RhbGwucmFzcGFwLmNvbSB8IGJhc2gKCiAgICAjIEl0IGlzIG9rIHRvIHNlbGVjdCAiWSIgb24gYWxsIHN0ZXBzIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uLgogICAgIyBPcGVuVlBOIGFuZCBXaXJlZ3VhcmQgYXJlIG5vdCB1c2VkLCB5b3UgY2FuIHByZXNzICJOIiBmb3IgdGhlbS4KClJlc3RhcnQgdGhlIGRldGVjdG9yLgoKICAgIHN1ZG8gcmVib290CgpDb25uZWN0IHRvIHRoZSB3aWZpIG5ldHdvcmsgbmFtZWQgcmFzcGktd2ViZ3VpLiBQYXNzd29yZDogQ2hhbmdlTWUuCgpTdGFydCBhIHdlYiBicm93c2VyIGFuZCBnbyB0bzogaHR0cDovLzEwLjMuMTQxLjEuCgpJZiB0aGUgZGV0ZWN0b3IgaXMgdXNpbmcgYW4gRXRoZXJuZXQgY2FibGUgdGhlIHdlYiBhZGRyZXNzICJodHRwOi8vd3VyYjk5LmxvY2FsLyIKd2lsbCB3b3JrIGZyb20gYW55IGNvbXB1dGVyIGluIHRoZSBuZXR3b3JrIChpZiB0aGUgaG9zdG5hbWUgaXMgd3VyYjk5KS4KCkxvZ2luIGZvciB0aGUgYWRtaW5pc3RyYXRpb24gcGFnZTogVXNlcm5hbWU6ICoqYWRtaW4qKiwgcGFzc3dvcmQ6ICoqc2VjcmV0KiouCgpDaGFuZ2UgdGhlIGRlZmF1bHRzIHNldHRpbmdzIGZyb206CgotIEhvdHNwb3QtQmFzaWMtU1NJRCAod2lmaSBuYW1lKTogcmFzcGktd2ViZ3VpCi0gSG90c3BvdC1TZWN1cml0eS1QU0sgKHdpZmkgcGFzc3dvcmQpOiBDaGFuZ2VNZQotIEF1dGhlbnRpY2F0aW9uLVVzZXJuYW1lIChhZG1pbiB1c2VybmFtZSk6IGFkbWluCi0gQXV0aGVudGljYXRpb24tUGFzc3dvcmQgKGFkbWluIHBhc3N3b3JkKTogc2VjcmV0CgpDaGFuZ2UgdG8gKGV4YW1wbGUgZm9yIFN3ZWRpc2ggdXNlcnMpOgoKLSBIb3RzcG90LUJhc2ljLVNTSUQgKHdpZmkgbmFtZSk6IHdpZmk0YmF0cwotIEhvdHNwb3QtU2VjdXJpdHktUFNLICh3aWZpIHBhc3N3b3JkKTogY2hpcm9wdGVyYQotIEF1dGhlbnRpY2F0aW9uLVVzZXJuYW1lIChhZG1pbiB1c2VybmFtZSk6IGJhdG1hbgotIEF1dGhlbnRpY2F0aW9uLVBhc3N3b3JkIChhZG1pbiBwYXNzd29yZCk6IGNoaXJvcHRlcmEKLSBIb3RzcG90LUFkdmFuY2VkLUNvdW50cnkgQ29kZTogU3dlZGVuCgojIyBSdW4gdGhlIGRldGVjdG9yCgotIENvbm5lY3QgdGhlIHVsdHJhc29uaWMgbWljcm9waG9uZSB0byB0aGUgZGV0ZWN0b3IgKGNhbiBhbHNvIGJlIGRvbmUgYWZ0ZXIgc3RhcnR1cCkuCi0gQ29ubmVjdCBVU0IgbWVtb3J5IHN0aWNrKHMpIChvcHRpb25hbCwgb3IgY2FuIGJlIGRvbmUgYWZ0ZXIgc3RhcnR1cCkuCi0gU3RhcnQgdGhlIFJhc3BiZXJyeSBQaS4gSXQgd2lsbCBzdGFydCBhdXRvbWF0aWNhbGx5IHdoZW4gcG93ZXIgaXMgYWRkZWQuCi0gQ29ubmVjdCBhIGNvbXB1dGVyIG9yIG1vYmlsZSBwaG9uZSB0byB0aGUgV2lGaSBuZXR3b3JrIGNhbGxlZCAid2lmaTRiYXRzIi4gUGFzc3dvcmQ6IGNoaXJvcHRlcmEuCi0gT3BlbiBhIHdlYiBicm93c2VyIGFuZCBnbyB0byBodHRwOi8vMTAuMy4xNDEuMTo4MDAwIChodHRwOi8vd3VyYjk5OjgwMDAgd2lsbCB3b3JrIGlmIG5vdCB1c2luZyBSYXNwQVAuKQotIENoZWNrICJHZW9ncmFwaGljIGxvY2F0aW9uIiBhbmQgIlNldHRpbmdzIi4KLSBQcmVzcyAiU2V0IHRpbWUiLgotIFNlbGVjdCAiTW9kZSIsIGZvciBleGFtcGxlICJSZWNvcmRpbmcgLSBBdXRvIGRldGVjdGlvbiIuCi0gQ29ubmVjdCBoZWFkcGhvbmVzICgzLjUgbW0gamFja2V0IG9uIHRoZSBSYXNwYmVycnkgUGkpIGFuZCBsaXN0ZW4gdG8gdGhlIGJhdHMuCi0gUmVjb3JkIHNvbWUgYmF0cy4KLSBQcmVzcyAiU3RvcCByZWNvcmRpbmciLgoKVGhlcmUgYXJlIGRpZmZlcmVudCB3YXlzIHRvIHR1cm4gdGhlIFJhc3BiZXJyeSBQaSBkZXRlY3RvciBvZmYgKHBvd2VyIG9mZiBvbmx5IGlzIG5vdApyZWNvbW1lbmRlZCBzaW5jZSB0aGVyZSBpcyBhIHNtYWxsIHJpc2sgb2YgY29ycnVwdGVkIFNEIGNhcmQgb3IgVVNCIG1lbW9yeSBzdGlja3MpOgoKLSBTZWxlY3QgIk1vZGUiOiAiRGV0ZWN0b3IgLSBQb3dlciBvZmYuLi4iIGFuZCBwcmVzcyB0aGUgIlNodXRkb3duIiBidXR0b24uCi0gR28gdG8gdGhlIFdpRmkgYWRtaW5pc3RyYXRpb24gcGFnZSBhdCBodHRwOi8vMTAuMy4xNDEuMS4gU2VsZWN0ICJTeXN0ZW0iIGFuZCBwcmVzcyAiU2h1dGRvd24iLgotIEF0dGFjaCBhbiBVU0IgQ29tcHV0ZXIgbW91c2UgYW5kIGhvbGQgZG93biBib3RoIHRoZSBsZWZ0IGVuZCByaWdodCBidXR0b24gZm9yIDUgc2VjLgotIENvbm5lY3QgYSBwaHlzaWNhbCBidXR0b24gdG8gR1BJTyBwaW4gIzM3IGFuZCBwaW4gIzM5IChidXQgYmUgY2FyZWZ1bCwgY29ubmVjdGluZyB0aGUgd3JvbmcgR1BJTyAKICBwaW5zIGNhbiBkZXN0cm95IHlvdXIgUmFzcGJlcnJ5IFBpKS4gVGhlbiBwcmVzcyB0aGF0IGJ1dHRvbiBmb3IgYSBmZXcgc2Vjb25kcy4KCk1vcmUgdGhhbiBvbmUgVVNCIG1lbW9yeSBzdGljayBjYW4gYmUgdXNlZC4gVGhleSB3aWxsIGJlIGZpbGxlZCB1cCB3aXRoIHdhdmUgZmlsZXMKaW4gYWxwaGFiZXRpYyBvcmRlci4gV2hlbiB0aGUgbGFzdCBVU0IgbWVtb3J5IHN0aWNrIGlzIGZ1bGwsIHRoZW4gaXQgd2lsbCBjb250aW51ZQpvbiB0aGUgU0QgY2FyZC4gSXQgd2lsbCBzdG9wIHdoZW4gdGhlcmUgaXMgbGVzcyB0aGFuIDAuNSBHQiBsZWZ0IG9uIHRoZSBTRCBjYXJkLgoKSWYgZmlsZXMgYXJlIHN0b3JlZCBvbiB0aGUgU0QgY2FyZCB0aGVuIHRoZXkgY2FuIGJlIGRvd25sb2FkZWQgYW5kL29yIHJlbW92ZWQgYnkKdXNpbmcgZm9yIGV4YW1wbGUgRmlsZVppbGxhLiBDb25uZWN0IHdpdGggU0ZUUCB0byBodHRwOi8vMTAuMy4xNDEuMSAKd2l0aCB1c2VyICJwaSIgYW5kIHBhc3N3b3JkICJjaGlyb3B0ZXJhIi4KUGF0aCB0byBmaWxlcyBvbiB0aGUgU0QgY2FyZDogIi9ob21lL3BpL3d1cmJfcmVjb3JkaW5ncyIuCgpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGRvd25sb2FkIGZpbGVzIGJ5IHVzaW5nIEZpbGVaaWxsYSwgb3Igc2ltaWxhciwgZnJvbSB0aGUgVVNCCm1lbW9yeSBzdGljayBkdXJpbmcgYW4gb25nb2luZyByZWNvcmRpbmcgc2Vzc2lvbi4gVGhlIHBhdGggdG8gdGhlIFVTQiBtZW1vcnkgaXMgdGhlbgoiL21lZGlhL3BpLzx5b3VyLXVzYi1tZW1vcnktc3RpY2stbmFtZT4iLgoKTm90ZTogU29tZSBtb2JpbGUgcGhvbmVzIGNvbXBsYWlucyBpZiB0aGUgIndpZmk0YmF0cyIgbmV0d29yayBub3QgaXMKY29ubmVjdGVkIHRvIGludGVybmV0LiBJZiB0aGF0IGhhcHBlbnMsIHRoZW4gdGVsbCBpdCB0byBmb3JnZXQgdGhlIG5ldHdvcmssCmNvbm5lY3QgdG8gaSBhZ2FpbiBhbmQgYW5zd2VyIHRoZSBxdWVzdGlvbiBpZiB5b3Ugd2FudCB0byBjb25uZWN0IHRvIGl0CmFueXdheS4KCiMjIFRoZSBNSVQgbGljZW5zZQoKVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgdGhhdCBtZWFucyB0aGF0IHlvdSBhcmUgZnJlZSB0byB1c2UgaXQgYXMgeW91IHdhbnQ7CnVzZSBpdCwgc2hhcmUgaXQsIGN1dCBpdCBpbnRvIHBpZWNlcywgZXh0ZW5kIGl0LCBvciBldmVuIHNlbGwgaXQgZm9yIG1vbmV5LgpCdXQgeW91IGFyZSBub3QgYWxsb3dlZCB0byByZW1vdmUgdGhlIE1JVCBsaWNlbnNlIGNsYXVzZQooanVzdCBjaGFuZ2UgbXkgbmFtZSB0byB5b3VycyBpbiB0aGUgY29weXJpZ2h0IHJvdyBmb3IgbW9kaWZpZWQgY29kZSBmaWxlcyksCmFuZCBpdCBjb21lcyAiYXMtaXMiIHdpdGggbm8gd2FycmFudGllcyBhdCBhbGwuCgojIyBDb250YWN0CgpBcm5vbGQgQW5kcmVhc3NvbiwgU3dlZGVuLgoKaW5mb0BjbG91ZGVkYmF0cy5vcmcK readmeEtag: '"55170a91d0eadc6be1eba1b1416e91cb13990471"' readmeLastModified: Mon, 23 Oct 2023 19:21:41 GMT repositoryId: 247984856 description: CloudedBats-WURB. The DIY bat detector. created: '2020-03-17T14:03:00Z' updated: '2024-05-04T22:49:25Z' language: Python archived: false stars: 19 watchers: 5 forks: 2 owner: cloudedbats logo: https://avatars.githubusercontent.com/u/16818499?v=4 license: MIT repoEtag: '"7243f91ebb5d77ebe67696b53ab5cefc82547dc81a525d64f4d535469ce33403"' repoLastModified: Sat, 04 May 2024 22:49:25 GMT foundInMaster: true category: Server Implementations id: 2acd0e2152c96fbe7f024c2c46ddd40c - source: - openapi3 tags - openapi31 tags repository: https://github.com/redocly/redocly-cli-cookbook v3: true v3_1: true id: 2d252e6d912a2772d88fd6f022fff74f repositoryMetadata: base64Readme: >- IyBSZWRvY2x5IENMSSBDb29rYm9vawoKQSBjb21tdW5pdHkgY29sbGVjdGlvbiBvZiBydWxlc2V0cywgY29uZmlndXJhdGlvbiwgY3VzdG9tIHBsdWdpbnMgYW5kIG90aGVyIGFkZGl0aW9ucyBmb3IgW1JlZG9jbHkgQ0xJXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvY2x5LWNsaSkuIFdlIGtub3cgb3VyIHVzZXJzIGhhdmUgc29tZSBncmVhdCB0aXBzLCBleGFtcGxlcywgYW5kIGNvZGUgdG8gc2hhcmUsIGFuZCB0aGlzIGlzIHRoZSBwbGFjZSB0byBkbyBqdXN0IHRoYXQuIFdlIHdvdWxkIGxvdmUgdG8gaGF2ZSB5b3VyIFtjb250cmlidXRpb25zXSgjY29udHJpYnV0aW5nKSBoZXJlIHRvbyEKCj4gWyFJTVBPUlRBTlRdCj4gUmVkb2NseSBhcmUgdGhlIHJlcG9zaXRvcnkgbWFpbnRhaW5lcnMsIGJ1dCB3ZSBjYW4ndCB0aG9yb3VnaGx5IHRlc3QgZXZlcnl0aGluZyBoZXJlLiBQbGVhc2UgYnJvd3NlLCBzaGFyZSwgYW5kIHVzZSB3aGF0IHlvdSBmaW5kIGF0IHlvdXIgb3duIHJpc2suCgpJZiB5b3UncmUgbmV3IHRvIFJlZG9jbHkgQ0xJLCBzdGFydCB3aXRoIHRoZSBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS8pIHRvIGdldCB1cCBhbmQgcnVubmluZywgdGhlbiBjb21lIGJhY2sgaGVyZSB0byBwaWNrIG91dCBhbnkgZWxlbWVudHMgeW91IHdvdWxkIGxpa2UgdG8gcmUtdXNlIHlvdXJzZWxmLiBUbyBrZWVwIHVwIHdpdGggbmV3IGRldmVsb3BtZW50cywgZWl0aGVyIHN1YnNjcmliZSB0byB0aGUgcHJvamVjdCByZXBvc2l0b3J5LCBvciBbc2lnbiB1cCBmb3IgdGhlIFJlZG9jbHkgcHJvZHVjdCBuZXdzbGV0dGVyXShodHRwczovL3JlZG9jbHkuY29tL3Byb2R1Y3QtdXBkYXRlcy8pLgoKIyMgVXNhZ2UKClVzZSB0aGUgY29udGVudCBoZXJlIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIHlvdXIgb3duIHdvcmsuCgoxLiBUYWtlIGEgbG9vayBhdCB3aGF0J3MgYXZhaWxhYmxlIGluIGVhY2ggY2F0ZWdvcnksIGFuZCBwaWNrIGFueSB0aGF0IHlvdSB0aGluayBhcHBseSB0byB5b3VyIHNpdHVhdGlvbi4KCjIuIEVhY2ggc2VjdGlvbiBsaW5rcyB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhhdCBmZWF0dXJlLCBpbmNhc2UgeW91IG5lZWQgYW4gaW50cm9kdWN0aW9uIG9yIHJlZnJlc2hlci4KCjMuIENvcHkgYW5kIHBhc3RlIHRoZSBleGFtcGxlcyB5b3Ugd2FudCB0byB1c2UgaW50byB5b3VyIG93biBzZXR1cCwgdGhlbiBlZGl0IHRoZW0gdG8gZml0IHlvdXIgb3duIG5lZWRzLgoKSWYgeW91IGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgbmV3LCBwbGVhc2UgY29uc2lkZXIgc2hhcmluZyBpdCBoZXJlIGJ5IG9wZW5pbmcgYSBwdWxsIHJlcXVlc3QuCgojIyBDYXRlZ29yaWVzCgojIyMgUnVsZXNldHMKCkNvbWJpbmUgZXhpc3RpbmcgW2J1aWx0LWluIHJ1bGVzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzL2J1aWx0LWluLXJ1bGVzLykgaW4gd2F5cyB0aGF0IHNlcnZlIGEgc3BlY2lmaWMgcHVycG9zZSwgYW5kIG1ha2UgYSBbcmVzdWFibGUgcnVsZXNldF0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ndWlkZXMvY29uZmlndXJlLXJ1bGVzLyNjcmVhdGUtYS1yZXVzYWJsZS1ydWxlc2V0KS4KCi0gW1NwZWMtY29tcGxpYW50IHJ1bGVzZXRdKHJ1bGVzZXRzL3NwZWMtY29tcGxpYW50LykKLSBbU3BvdCBjb21tb24gbWlzdGFrZXNdKHJ1bGVzZXRzL2NvbW1vbi1taXN0YWtlcykKCiMjIyBDb25maWd1cmFibGUgcnVsZXMKClRoZXJlIGFyZSBzb21lIGZhbnRhc3RpYyBleGFtcGxlcyBvZiBbY29uZmlndXJhYmxlIHJ1bGVzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzL2NvbmZpZ3VyYWJsZS1ydWxlcy8pIGluIHRoZSB3aWxkLCB3ZSBob3BlIHRoZSBsaXN0IGhlcmUgaW5zcGlyZXMgeW91IHRvIHNoYXJlIG1vcmUgb2YgeW91ciBvd24hCgotIFtCYW4gY2VydGFpbiB3b3JkcyBmcm9tIGRlc2NyaXB0aW9uc10oY29uZmlndXJhYmxlLXJ1bGVzL2Rlc2NyaXB0aW9uLWJhbm5lZC13b3Jkcy8pCi0gW1JlcXVpcmUgYGl0ZW1zYCBmaWVsZCBmb3Igc2NoZW1hcyBvZiB0eXBlIGBhcnJheWBdKGNvbmZpZ3VyYWJsZS1ydWxlcy9yZXF1aXJlZC1pdGVtcy1mb3ItYXJyYXktc2NoZW1hcy8pCi0gW0Vuc3VyZSBzZW50ZW5jZSBjYXNlIGluIG9wZXJhdGlvbiBzdW1tYXJpZXNdKGNvbmZpZ3VyYWJsZS1ydWxlcy9vcGVyYXRpb24tc3VtbWFyeS1zZW50ZW5jZS1jYXNlKQotIFtgUE9TVGAgU0hPVUxEIGRlZmluZSBgcmVxdWVzdEJvZHlgIHNjaGVtYV0oY29uZmlndXJhYmxlLXJ1bGVzL29wZXJhdGlvbi1wb3N0LXNob3VsZC1kZWZpbmUtcmVxdWVzdC1ib2R5LykKLSBbYEdFVGAgU0hPVUxEIE5PVCBkZWZpbmUgYHJlcXVlc3RCb2R5YCBzY2hlbWFdKGNvbmZpZ3VyYWJsZS1ydWxlcy9vcGVyYXRpb24tZ2V0LXNob3VsZC1ub3QtZGVmaW5lLXJlcXVlc3RCb2R5LykKLSBbYERFTEVURWAgU0hPVUxEIE5PVCBkZWZpbmUgYHJlcXVlc3RCb2R5YCBzY2hlbWFdKGNvbmZpZ3VyYWJsZS1ydWxlcy9vcGVyYXRpb24tZGVsZXRlLXNob3VsZC1ub3QtZGVmaW5lLXJlcXVlc3RCb2R5LykKLSBbSW5mbyBzZWN0aW9uIG11c3QgaGF2ZSBhIGRlc2NyaXB0aW9uXShjb25maWd1cmFibGUtcnVsZXMvaW5mby1kZXNjcmlwdGlvbikKLSBbTm8gYDxzY3JpcHQ+YCB0YWdzIGluIGRlc2NyaXB0aW9uc10oY29uZmlndXJhYmxlLXJ1bGVzL25vLXNjcmlwdCkKLSBbUGF0aHMgc2hvdWxkIG5vdCBtYXRjaCBhIHBhdHRlcm5dKGNvbmZpZ3VyYWJsZS1ydWxlcy9wYXRoLWV4Y2x1ZGVzLXBhdHRlcm4vKQotIFtBUEkgaGVhbHRoY2hlY2sgcnVsZXNdKGNvbmZpZ3VyYWJsZS1ydWxlcy9hcGktaGVhbHRoLykKLSBbU3RyaW5nIHNjaGVtYXMgbGVuZ3RoIGRlZmluZWRdKGNvbmZpZ3VyYWJsZS1ydWxlcy9zdHJpbmctc2NoZW1hcy1sZW5ndGgtZGVmaW5lZC8pCi0gW0pTT04gU2NoZW1hIG1pc2NvbmZpZ3VyYXRpb25zXShjb25maWd1cmFibGUtcnVsZXMvanNvbi1zY2hlbWEtbWlzY29uZmlndXJhdGlvbnMvKQotIFtBenVyZSBBUElNIHVuc3VwcG9ydGVkIGtleXdvcmRzXShjb25maWd1cmFibGUtcnVsZXMvYXp1cmUtYXBpbS11bnN1cHBvcnRlZC1rZXl3b3JkLykKCiMjIyBDdXN0b20gcGx1Z2lucwoKVGhlIFtjdXN0b20gcGx1Z2luXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL2N1c3RvbS1wbHVnaW5zLykgaXMgdGhlIHVsdGltYXRlIGluIGV4dGVuc2liaWxpdHksIGJ1dCBpdCdzIGFuIGFkdmFuY2VkIGZlYXR1cmUuIFRyeSB0aGVzZSBwbHVnaW5zIGZvciBpbnNwaXJhdGlvbiBhbmQgdG8gZ2V0IHlvdSBzdGFydGVkLiBSYXRoZXIgdGhhbiBpbmNsdWRpbmcgdGhlIHdob2xlIHBsdWdpbiwgdGhlcmUgYXJlIGFsc28gc2VjdGlvbnMgZm9yIGluZGl2aWR1YWwgcnVsZXMgYW5kIGRlY29yYXRvcnMgZnVydGhlciBkb3duLgoKIyMjIyBEZWNvcmF0b3JzIChmb3IgY3VzdG9tIHBsdWdpbnMpCgotIFtUYWcgc29ydGluZ10oLi9jdXN0b20tcGx1Z2luLWRlY29yYXRvcnMvdGFnLXNvcnRpbmcpIC0gcHV0IHlvdXIgdGFncyBsaXN0IGluIGFscGhhYmV0aWNhbCBvcmRlci4KLSBbU3Vic3RpdHV0ZSBkYXRldGltZSBwbGFjZWhvbGRlcnMgaW4gYW4gQVBJIGRlc2NyaXB0aW9uXSguL2N1c3RvbS1wbHVnaW4tZGVjb3JhdG9ycy91cGRhdGUtZXhhbXBsZS1kYXRlcykgLSB1cGRhdGUgZGF0ZXMgaW4gZXhhbXBsZXMgdG8gdGhlIGN1cnJlbnQgZGF0ZS4KLSBbT3BlbkFJIGlzQ29uc2VxdWVudGlhbF0oLi9jdXN0b20tcGx1Z2luLWRlY29yYXRvcnMvb3BlbmFpLWlzLWNvbnNlcXVlbnRpYWwpIC0gYWRkIGB4LW9wZW5haS1pc0NvbnNlcXVlbnRpYWw6IHRydWVgIHNwZWNpZmljYXRpb24gZXh0ZW5zaW9uIHRvIEdFVCBvcGVyYXRpb25zLgotIFtSZW1vdmUgZXh0ZW5zaW9uc10oLi9jdXN0b20tcGx1Z2luLWRlY29yYXRvcnMvcmVtb3ZlLWV4dGVuc2lvbnMpIC0gcmVtb3ZlIGFueSBnaXZlbiBbT3BlbkFQSSBFeHRlbnNpb25zXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjc3BlY2lmaWNhdGlvbi1leHRlbnNpb25zKSBmcm9tIGFuIE9wZW5BUEkgZG9jdW1lbnQuCi0gW1JlbW92ZSB1bnVzZWQgdGFnc10oLi9jdXN0b20tcGx1Z2luLWRlY29yYXRvcnMvcmVtb3ZlLXVudXNlZC10YWdzKSAtIHJlbW92ZSB0YWdzIHRoYXQgYXJlIGRlY2xhcmVkIGJ1dCBub3QgdXNlZCBieSBhbnkgb3BlcmF0aW9ucy4KLSBbQXp1cmUgQVBJTV0oLi9jdXN0b20tcGx1Z2luLWRlY29yYXRvcnMvYXp1cmUtYXBpbSkgLSByZW1vdmUgZmVhdHVyZXMgdW5zdXBwb3J0ZWQgYnkgQXp1cmUgQVBJTSBzdWNoIGFzIGV4YW1wbGVzLgotIFtTd2FwIHN1bW1hcnkgYW5kIGRlc2NyaXB0aW9uXSguL2N1c3RvbS1wbHVnaW4tZGVjb3JhdG9ycy9zd2FwLXN1bW1hcnktZGVzY3JpcHRpb24pIC0gc3dhcCB0aGUgY29udGVudHMgb2Ygc3VtbWFyeSBhbmQgZGVzY3JpcHRpb24gZmllbGRzIGlmIHRoZXkgYXJlIHRoZSB3cm9uZyB3YXkgcm91bmQuCgojIyMjIFJ1bGVzIChmb3IgY3VzdG9tIHBsdWdpbnMpCgotIFtWYWxpZGF0ZSBNYXJrZG93bl0oLi9jdXN0b20tcGx1Z2luLXJ1bGVzL21hcmtkb3duLXZhbGlkYXRvcikgLSBjaGVjayBNYXJrZG93biBpbiBkZXNjcmlwdGlvbiBmaWVsZHMgaXMgdmFsaWQuCgojIyMgTWlzY2VsbGFuZW91cyAoaW5jbHVkaW5nIHRpcHMgYW5kIHRyaWNrcykKClNoYXJlIGFueXRoaW5nIHRoYXQgZGlkbid0IGZpdCB0aGUgZXhpc3RpbmcgY2F0ZWdvcmllcyBoZXJlLgoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2Ugc2hhcmUgeW91ciBiZXN0IFJlZG9jbHkgQ0xJIHVzYWdlIHdpdGggdXMhIEVhY2ggaXRlbSBzaG91bGQgYmUgc2hhcmVkIGluIGl0cyBvd24gcHVsbCByZXF1ZXN0LCBmb2xsb3dpbmcgdGhlIGV4aXN0aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgYW5kIGluY2x1ZGluZyB0aGUgW1JFQURNRSB0ZW1wbGF0ZV0ocmVhZG1lLXRlbXBsYXRlLm1kKSBjb3BpZWQgaW50byBlYWNoIGZvbGRlci4gRnVsbCBpbnN0cnVjdGlvbnMgYXJlIGluIHRoZSBbQ09OVFJJQlVUSU5HIGZpbGVdKENPTlRSSUJVVElORy5tZCkuCgojIyBSZXF1ZXN0cwoKSWYgdGhlcmUncyBzb21ldGhpbmcgeW91IHRoaW5rIHNob3VsZCBiZSBpbiB0aGUgY29sbGVjdGlvbiBhbmQgaXQgaXNuJ3QsIGxldCB1cyBrbm93ISBPcGVuIGFuIGlzc3VlLCBhbmQgZGVzY3JpYmUgdGhlIHByb2JsZW0geW91J2QgbGlrZSB0byBzZWUgc29sdmVkIHdpdGggUmVkb2NseSBDTEkuIFdlIGNhbid0IG1ha2UgcHJvbWlzZXMsIGJ1dCB3ZSBhcmUgcHJldHR5IHN1cmUgc29tZW9uZSBvdXQgdGhlcmUgd2lsbCBrbm93IHRoZSBhbnN3ZXIuCg== readmeEtag: '"8fe6e166bc899f30bfaa8599fc6811e3d965588c"' readmeLastModified: Thu, 15 Aug 2024 14:26:48 GMT repositoryId: 697834648 description: >- A community-created collection of configuration, plugins and techniques for getting the best from Redocly CLI in every situation. created: '2023-09-28T15:12:02Z' updated: '2024-08-22T07:22:26Z' language: JavaScript archived: false stars: 19 watchers: 15 forks: 5 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT repoEtag: '"f08ba73244d5a91dda8e277a803f9df26fea44df63557fb77b6888bd8cfcd4f1"' repoLastModified: Thu, 22 Aug 2024 07:22:26 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/httptoolkit/openapi-directory-js v3: true repositoryMetadata: base64Readme: >- IyBBbiBPcGVuQVBJIERpcmVjdG9yeSBmb3IgSlMgWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vaHR0cHRvb2xraXQvb3BlbmFwaS1kaXJlY3RvcnktanMvd29ya2Zsb3dzL0NJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9odHRwdG9vbGtpdC9vcGVuYXBpLWRpcmVjdG9yeS1qcy9hY3Rpb25zKSBbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW5hcGktZGlyZWN0b3J5LnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9vcGVuYXBpLWRpcmVjdG9yeSkKCj4gX1BhcnQgb2YgW0hUVFAgVG9vbGtpdF0oaHR0cHM6Ly9odHRwdG9vbGtpdC5jb20pOiBwb3dlcmZ1bCB0b29scyBmb3IgYnVpbGRpbmcsIHRlc3RpbmcgJiBkZWJ1Z2dpbmcgSFRUUChTKV8KClRoaXMgcmVwbyBidWlsZHMgJiBidW5kbGVzIHRoZSBbT3BlbkFQSSBEaXJlY3RvcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElzLWd1cnUvb3BlbmFwaS1kaXJlY3RvcnkpLCBzbyB5b3UgY2FuIGVhc2lseSBmaW5kLCByZXF1aXJlIGFuZCB1c2UgYW55IE9wZW5BUEkgc3BlYyBmcm9tIHRoZSBkaXJlY3RvcnkgaW4geW91ciBKUyBwcm9qZWN0cy4KCkl0IHByb3ZpZGVzIGZpbGVzIHRoYXQgY2FuIGJlIGluZGl2aWR1YWxseSByZXF1aXJlZCBvciByZW1vdGVseSBkb3dubG9hZGVkICh2aWEgaHR0cHM6Ly91bnBrZy5jb20vb3BlbmFwaS1kaXJlY3RvcnkvKSBmb3IgZXZlcnkgQVBJIGluIHRoZSBjb2xsZWN0aW9uLCBhbmQgYW4gaW5kZXggdG8gcXVpY2tseSBmaW5kIHRoZSByZWxldmFudCBPcGVuQVBJIHNwZWMgZm9yIGEgZ2l2ZW4gVVJMLgoKQWxsIHNwZWNzIGFyZToKCiogUHJlLXBhcnNlZCBhbmQgZXhwb3NlZCBhcyBKYXZhU2NyaXB0IG9iamVjdHMgKG5vdCBZQU1MIHN0cmluZ3MpLgoqIENvbnZlcnRlZCB0byBPcGVuQVBJIHYzLgoqIFByZS1idW5kbGVkIHdpdGggYWxsIGV4dGVybmFsICRyZWZzLgoKVGhhdCBtZWFucyB5b3UgY2FuIGltcG9ydCB0aGVtLCBhbmQgaW1tZWRpYXRlbHkgJiBjb25zaXN0ZW50bHkgc3RhcnQgdXNpbmcgdGhlbS4KCiMjIEhvdyB0byB1c2UgaXQKCkZpcnN0IHVwLCBpbnN0YWxsIGl0IHdpdGg6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIG9wZW5hcGktZGlyZWN0b3J5CmBgYAoKQWxsIE9wZW5BUEkgc3BlY3MgY2FuIGJlIG5vdyByZXF1aXJlZCB3aXRoOgoKYGBganMKY29uc3Qgc3BlYyA9IHJlcXVpcmUoJ29wZW5hcGktZGlyZWN0b3J5L2FwaS88c3BlYy1pZD4uanNvbicpOwpgYGAKCihvciByZWFkIGZyb20gYGh0dHBzOi8vdW5wa2cuY29tL29wZW5hcGktZGlyZWN0b3J5L2FwaS88c3BlYy1pZD4uanNvbmApCgpUaGUgZWFzaWVzdCB3YXkgdG8gb2J0YWluIGEgc3BlYyBpZCBpcyB0byB1c2UgdGhlIGluZGV4LiBZb3UgY2FuIGxvb2sgdXAgYSBVUkwgaW4gdGhlIGluZGV4IHdpdGg6CgpgYGBqcwpjb25zdCB7IGZpbmRBcGkgfSA9IHJlcXVpcmUoJ29wZW5hcGktZGlyZWN0b3J5Jyk7CgpmaW5kQXBpKCd3aWtpbWVkaWEub3JnL2FwaS9yZXN0X3YxL2ZlZWQvYXZhaWxhYmlsaXR5Jyk7CmBgYAoKYGZpbmRBcGlgIHRha2VzIGEgVVJMIChob3N0IGFuZCBwYXRoLCBfd2l0aG91dF8gdGhlIHByb3RvY29sKSB3aXRoaW4gYW55IEFQSSwgYW5kIHdpbGwgcmV0dXJuIGVpdGhlcjoKCiogVW5kZWZpbmVkLCBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBBUElzLgoqIEEgc3RyaW5nIHNwZWMgaWQsIGlmIHRoZXJlIGlzIGV4YWN0bHkgb25lIEFQSSB0aGF0J3MgcmVsZXZhbnQgdG8gdGhhdCBVUkwuCiogQSBsaXN0IG9mIHNwZWMgaWRzLCBpbiByYXJlIGNhc2VzIHdoZXJlIG11bHRpcGxlIHNwZWNzIG1heSBjb3ZlciB0aGUgc2FtZSBVUkwuCgpBbHRlcm5hdGl2ZWx5IGlmIHlvdSBrbm93IGluIGFkdmFuY2Ugd2hpY2ggc3BlYyB5b3Ugd2FudCB5b3UgY2FuIHJlcXVpcmUgaXQgZGlyZWN0bHkuIFRoZSBpZCBmb3IgZXZlcnkgc3BlYyBpbiB0aGUgZGlyZWN0b3J5IGlzIG1hZGUgdXAgb2YgdGhlIHByb3ZpZGVyIG5hbWUsIGZvbGxvd2VkIGJ5IGEgc2xhc2ggYW5kIHRoZSBzZXJ2aWNlIG5hbWUgaWYgYSBzZXJ2aWNlIG5hbWUgZXhpc3RzLiBTb21lIGV4YW1wbGUgaWRzOgoKKiBgeGtjZC5jb21gIChwcm92aWRlciBpcyB4a2NkLmNvbSwgbm8gc2VydmljZSBuYW1lKQoqIGBhbWF6b25hd3MuY29tL2FjbWAgKHByb3ZpZGVyIGlzIGFtYXpvbmF3cy5jb20sIHNlcnZpY2UgbmFtZSBpcyBhY20pLgoKWW91IGNhbiBmaW5kIHRoZSBwcm92aWRlciBhbmQgc2VydmljZSBuYW1lIGluIHRoZSBzcGVjIGl0c2VsZiAodW5kZXIgYGluZm9gLCBgeC1wcm92aWRlck5hbWVgIGFuZCBgeC1zZXJ2aWNlTmFtZWApLCBhbmQgeW91IGNhbiBicm93c2UgdGhlIHJhdyBzcGVjcyBkaXJlY3RseSBhdCBodHRwczovL2dpdGh1Yi5jb20vQVBJcy1ndXJ1L29wZW5hcGktZGlyZWN0b3J5LgoKIyMgTGljZW5zZQoKVGhpcyByZXBvL25wbSBtb2R1bGUgaXMgbGljZW5zZWQgYXMgTUlULgoKVGhlIGxpY2Vuc2UgZm9yIEFQSSBkZWZpbml0aW9ucyB2YXJpZXMgYnkgc3BlYywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9BUElzLWd1cnUvb3BlbmFwaS1kaXJlY3RvcnkjbGljZW5zZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgpJbiBnZW5lcmFsIGl0J3MgdmVyeSBsaWtlbHkgdGhhdCB5b3VyIHVzZSBvZiBhbnkgQVBJIGRlZmluaXRpb24gaXMgY292ZXJlZCBlaXRoZXIgYnkgQ0MwIChmb3Igc3BlY3Mgc3VibWl0dGVkIGRpcmVjdGx5IHRvIHRoZSBkaXJlY3RvcnkpLCB0aGUgc3BlYydzIG93biBsaWNlbnNlIChjaGVjayBgaW5mby5saWNlbnNlYCkgb3IgYnkgRmFpciBVc2UgcHJvdmlzaW9ucyB3aGVuIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBzZXJ2aWNlLiBUaGlzIGlzIG5vdCBmb3JtYWwgbGVnYWwgYWR2aWNlIHRob3VnaCwgaXRzIHlvdXIgcmVzcG9uc2liaWxpdHkgdG8gY29uZmlybSB0aGlzIGZvciB5b3Vyc2VsZiBmb3IgdGhlIHNwZWNzIHlvdSdyZSB1c2luZy4= readmeEtag: '"5124ae309ffc8962b2afc7add3307aab28133a19"' readmeLastModified: Thu, 15 Aug 2024 13:41:53 GMT repositoryId: 170318480 description: >- Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS created: '2019-02-12T12:59:30Z' updated: '2024-08-15T13:41:57Z' language: TypeScript archived: false stars: 19 watchers: 5 forks: 5 owner: httptoolkit logo: https://avatars.githubusercontent.com/u/39777515?v=4 license: MIT repoEtag: '"ddb84220fc62233616503342dea86445598bcfd12561f874c5388ed34486a6e3"' repoLastModified: Thu, 15 Aug 2024 13:41:57 GMT foundInMaster: true category: - Testing - Parsers id: 0b4f0ec3b8efec08b4c9de26e8119588 - source: openapi3 tags repository: https://github.com/rpstreef/aws-sam-node-example v3: true repositoryMetadata: base64Readme: IyBPcGVuQVBJIE5vZGUgY29kZSBleGFtcGxlCgo= readmeEtag: '"e9ba7d0270059b5e2bb339f36a56857576323f15"' readmeLastModified: Thu, 07 Jan 2021 02:46:27 GMT repositoryId: 261105398 description: AWS SAM NodeJS project example created: '2020-05-04T07:17:35Z' updated: '2024-08-13T03:40:19Z' language: JavaScript archived: false stars: 19 watchers: 2 forks: 12 owner: rpstreef logo: https://avatars.githubusercontent.com/u/15830262?v=4 license: Apache-2.0 repoEtag: '"1666e3fa66a76d57c1205cbd2f04d6ad79e363da05fd5f823e54911d8985f862"' repoLastModified: Tue, 13 Aug 2024 03:40:19 GMT foundInMaster: true category: Parsers id: ad0e4c9c11802319236236fb57f3c0be - source: openapi3 tags repository: https://github.com/benirave/aspnetcore.scalar v3: true id: 2dbfc9923a0675a6a8269f3d0af9b9da repositoryMetadata: base64Readme: >- WyFbTnVnZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9hc3BuZXRjb3JlLnNjYWxhcildKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Bc3BOZXRDb3JlLlNjYWxhcikKCiMgLk5FVCBTY2FsYXIgQVBJIFJlZmVyZW5jZQoKQWRkIHRoZSBbU2NhbGFyIEFQSSBSZWZlcmVuY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyP3RhYiUyNTNEcmVhZG1lLW92LWZpbGUjd2l0aC1uZXh0anMpIHRvIGFueSBvZiB5b3VyIC5ORVQgYXBwbGljYXRpb25zLgoKPiBkb3RuZXQgYWRkIHBhY2thZ2UgQXNwTmV0Q29yZS5TY2FsYXIgLS12ZXJzaW9uIDEuMS41CgojIyBVc2FnZQoKVG8gaW5jb3Jwb3JhdGUgdGhlIFNjYWxhciBVSSwgc2ltcGx5IGV4cG9zZSBhbiBPcGVuQVBJIHNjaGVtYSBieSB1c2luZyBbU3dhc2hidWNrbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kb21haW5kcml2ZW5kZXYvU3dhc2hidWNrbGUuV2ViQXBpKSBvciBbTlN3YWddKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcpLCBhbmQgdGhlbiBpbnZva2UgdGhlICoqYXBwLlVzZVNjYWxhcigpKiouCgpDb2RlIGV4YW1wbGUuOgoKYGBgY3NoYXJwCnVzaW5nIEFzcE5ldENvcmUuU2NhbGFyOwoKdmFyIGJ1aWxkZXIgPSBXZWJBcHBsaWNhdGlvbi5DcmVhdGVCdWlsZGVyKGFyZ3MpOwoKLy8gQWRkIHN3YWdnZXIgc2NoZW1hIGdlbmVyYXRvcgpidWlsZGVyLlNlcnZpY2VzLkFkZFN3YWdnZXJHZW4oKTsKCnZhciBhcHAgPSBidWlsZGVyLkJ1aWxkKCk7CgovLyBBZGQgc3dhZ2dlciBtaWRkbGV3YXJlCmFwcC5Vc2VTd2FnZ2VyKCk7Ci8vIEFkZCBTY2FsYXIgVUkKYXBwLlVzZVNjYWxhcihvcHRpb25zID0+CnsKICAgIG9wdGlvbnMuVXNlVGhlbWUoVGhlbWUuU29sYXJpemVkKTsKfSk7CgpgYGAKCkV4cGxvcmUgYSB3b3JraW5nIGV4YW1wbGUgW2hlcmVdKC4vZXhhbXBsZS8pLgoKIyMjIEN1c3RvbWl6YXRpb24gT3B0aW9ucwoKYEluamVjdFN0eWxlc2hlZXRgCgotICoqRGVzY3JpcHRpb24qKjogSW5qZWN0cyBhIHN0eWxlc2hlZXQgbGluayBpbnRvIHRoZSBoZWFkIGNvbnRlbnQgb2YgdGhlIFNjYWxhck9wdGlvbnMuCi0gKipQYXJhbWV0ZXJzKio6CiAgLSBgcGF0aGAgKHN0cmluZyk6IFRoZSBwYXRoIHRvIHRoZSBzdHlsZXNoZWV0IGZpbGUuCiAgLSBgbWVkaWFgIChzdHJpbmcsIG9wdGlvbmFsKTogVGhlIG1lZGlhIHR5cGUgZm9yIHdoaWNoIHRoZSBzdHlsZXNoZWV0IGlzIGludGVuZGVkLiBEZWZhdWx0IHZhbHVlIGlzICJzY3JlZW4iLgoKYFVzZVNwZWNVcmxgCgotICoqRGVzY3JpcHRpb24qKjogU2V0cyB0aGUgVVJMIGZvciB0aGUgc3BlY2lmaWNhdGlvbiBwYWdlLgotICoqUGFyYW1ldGVycyoqOgogIC0gYHVybGAgKHN0cmluZyk6IFRoZSBVUkwgb2YgdGhlIHNwZWNpZmljYXRpb24gcGFnZS4KCmBVc2VMYXlvdXRgCgotICoqRGVzY3JpcHRpb24qKjogU2V0cyB0aGUgbGF5b3V0IGZvciB0aGUgU2NhbGFyT3B0aW9ucy4gWW91IGNhbiB1c2UgJ01vZGVybicgYW5kIENsYXNzaWMuCi0gKipEZWZhdWx0Kio6IE1vZGVybgotICoqUGFyYW1ldGVycyoqOgogIC0gYGxheW91dGAgKFRoZW1lKTogQW4gZW51bSByZXByZXNlbnRpbmcgdGhlIGxheW91dCB0byB1c2UuCgpgVXNlVGhlbWVgCgotICoqRGVzY3JpcHRpb24qKjogU2V0cyB0aGUgdGhlbWUgZm9yIHRoZSBTY2FsYXJPcHRpb25zLgotICoqUGFyYW1ldGVycyoqOgogIC0gYHRoZW1lYCAoVGhlbWUpOiBBbiBlbnVtIHJlcHJlc2VudGluZyB0aGUgdGhlbWUgdG8gdXNlLgoKYEhpZGVTaWRlYmFyYAoKLSAqKkRlc2NyaXB0aW9uKio6IEhpZGVzIHRoZSBzaWRlYmFyIGluIHRoZSBTY2FsYXJPcHRpb25zLgotICoqUGFyYW1ldGVycyoqOiBOb25lLgoKYFVzZVNlYXJjaEFzSG90S2V5YAoKLSAqKkRlc2NyaXB0aW9uKio6IFNldHMgdGhlIHNlYXJjaCBob3RrZXkgZm9yIHRoZSBTY2FsYXJPcHRpb25zLgotICoqUGFyYW1ldGVycyoqOgogIC0gYGhvdEtleWAgKGNoYXIpOiBUaGUgY2hhcmFjdGVyIHJlcHJlc2VudGluZyB0aGUgaG90a2V5IGZvciBzZWFyY2guCgpgQWRkQWRkaXRpb25hbEl0ZW1gCgotICoqRGVzY3JpcHRpb24qKjogQWRkcyBhbiBhZGRpdGlvbmFsIGl0ZW0gdG8gdGhlIFNjYWxhck9wdGlvbnMgY29uZmlndXJhdGlvbi4KLSAqKlBhcmFtZXRlcnMqKjoKICAtIGBrZXlgIChzdHJpbmcpOiBUaGUga2V5IG9mIHRoZSBhZGRpdGlvbmFsIGl0ZW0uCiAgLSBgdmFsdWVgIChvYmplY3QpOiBUaGUgdmFsdWUgb2YgdGhlIGFkZGl0aW9uYWwgaXRlbS4KClRoZXNlIGN1c3RvbWl6YXRpb24gb3B0aW9ucyBwcm92aWRlIGRldmVsb3BlcnMgd2l0aCBmbGV4aWJpbGl0eSBpbiBjb25maWd1cmluZyB0aGUgU2NhbGFyIGxpYnJhcnkgdG8gc3VpdCB0aGVpciBzcGVjaWZpYyBuZWVkcyBhbmQgcHJlZmVyZW5jZXMuIERldmVsb3BlcnMgY2FuIHV0aWxpemUgdGhlc2Ugb3B0aW9ucyB0byBlbmhhbmNlIHRoZSBmdW5jdGlvbmFsaXR5IGFuZCBhcHBlYXJhbmNlIG9mIHRoZWlyIGFwcGxpY2F0aW9ucyBzZWFtbGVzc2x5LgoKIyMgQ29tcGF0aWJpbGl0eQoKfCAgQXNwTmV0Q29yZS5TY2FsYXIgIHwgICAgIFNjYWxhciAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS06fAp8ICAgICAgICAxLjAuMCAgICAgICAgfCAgICAxLjE3LjEyICAgIHwKfCAgICAgICAgMS4xLjAgICAgICAgIHwgICAgMS4xOS4yICAgICB8CnwgICAgICAgIDEuMS4xICAgICAgICB8ICAgIDEuMjIuNDggICAgfAp8ICAgICAgICAxLjEuMiAgICAgICAgfCAgICAxLjIzLjUgICAgIHwKfCAgICAgICAgMS4xLjMgICAgICAgIHwgICAgMS4yNC43MiAgICB8CnwgICAgICAgIDEuMS40ICAgICAgICB8ICAgIDEuMjQuNzUgICAgfAp8ICAgICAgICAxLjEuNSAgICAgICAgfCAgICAxLjI1LjYgICAgfAoKVGhpcyBwcm9qZWN0IHdhcyBiYXNlZCBvbiBbU3dhc2hidWNrbGUgUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9kb21haW5kcml2ZW5kZXYvU3dhc2hidWNrbGUuQXNwTmV0Q29yZS90cmVlL21hc3Rlci9zcmMvU3dhc2hidWNrbGUuQXNwTmV0Q29yZS5SZURvYykuCg== readmeEtag: '"16132d54793176c7719a8e77d00079773bf985f4"' readmeLastModified: Mon, 26 Aug 2024 07:56:41 GMT repositoryId: 720201668 description: Scalar API reference from Swagger/OpenAPI files for .NET🔥 created: '2023-11-17T20:04:30Z' updated: '2024-08-26T07:56:44Z' language: C# archived: false stars: 19 watchers: 1 forks: 1 owner: benirave logo: https://avatars.githubusercontent.com/u/23312114?v=4 license: MIT repoEtag: '"ff6711d51d45e8adf99e896094a28229b3422a335f6cd19d51d3d616ee2b6a96"' repoLastModified: Mon, 26 Aug 2024 07:56:44 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/skyffel/airbyte-connector-generator-poc v3: true id: 860d1acedb05489453d89925436dff89 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KCTxwPjxpbWcgd2lkdGg9IjE2MHB4IiBzcmM9Imh0dHBzOi8vZnJhbWVydXNlcmNvbnRlbnQuY29tL2ltYWdlcy9SaE9DUVMwZTJ4OTRXWnEyZDhocGh0N0lOUlEucG5nIiAvPjwvcD4KCTxwPm1vdmluZyB5b3VyIGRhdGEgZnJvbSBhIHRvIGIsIG9uZSBzaG92ZWwgYXQgYSB0aW1lLjwvcD4KCTxwIGFsaWduPSJjZW50ZXIiPgoJCTxhIGhyZWY9IiMta2V5LWZlYXR1cmVzIj5GZWF0dXJlczwvYT4g4oCiCgkJPGEgaHJlZj0iIy1pbnN0YWxsYXRpb24iPkluc3RhbGxhdGlvbjwvYT4g4oCiCgkJPGEgaHJlZj0iIy1ob3ctdG8tdXNlIj5Ib3cgdG8gdXNlPC9hPgogICAJIDwvcD4KPC9kaXY+CgpUaGlzIGlzIGEgcHJvb2Ygb2YgY29uY2VwdCB0byBnZW5lcmF0ZSBBaXJieXRlIGxvdy1jb2RlIFlBTUwgY29ubmVjdG9ycyBmcm9tIEFQSSBkb2N1bWVudGF0aW9uLiBXZSB3YW50IHRoaXMgdG8gc2VydmUgYXMgaW5zcGlyYXRpb24gdG8gd2hhdCBjYW4gYmUgZG9uZSB3aXRoIExMTXMuIEhlcmUncyBob3cgaXQgd29ya3M6CgotIFNwZWNpZnkgYSBnb2FsLCBlLmcgIl9GZXRjaCBhbGwgcGFnZXMgcG9zdHNfIgotIFByb3ZpZGUgb25lIG9yIG1vcmUgbGlua3MgdG8gZG9jdW1lbnRhdGlvbiwgZS5nIGZvciBOb3Rpb246IFtBUEkgSW50cm9dKGh0dHBzOi8vZGV2ZWxvcGVycy5ub3Rpb24uY29tL3JlZmVyZW5jZS9pbnRybyksIFtBUEkgVmVyc2lvbmluZ10oaHR0cHM6Ly9kZXZlbG9wZXJzLm5vdGlvbi5jb20vcmVmZXJlbmNlL3ZlcnNpb25pbmcpIGFuZCBbU2VhcmNoIEVuZHBvaW50XShodHRwczovL2RldmVsb3BlcnMubm90aW9uLmNvbS9yZWZlcmVuY2UvcG9zdC1zZWFyY2gpCgpUaGlzIHdpbGwgZ2VuZXJhdGUgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW4gYW5kIGEgQWlyYnl0ZSBsb3ctY29kZSBjb25uZWN0b3IuIFRyeSBpdCEKCiMjIPCfk73vuI8gRGVtbwoKIyMjIE5vdGlvbgpodHRwczovL2dpdGh1Yi5jb20vc2t5ZmZlbC9haXJieXRlLWNvbm5lY3Rvci1nZW5lcmF0b3ItcG9jL2Fzc2V0cy8zMTM0ODk1L2Y3ZTAzZjZkLTYwZDktNDRiNi04OGVlLTNiYzBlNGJjZDMzOQoKIyMjIFBlcnBsZXhpdHkKaHR0cHM6Ly9naXRodWIuY29tL3NreWZmZWwvYWlyYnl0ZS1jb25uZWN0b3ItZ2VuZXJhdG9yLXBvYy9hc3NldHMvMjU2MjI0MTIvZTI5MjJhYWEtNGYxOS00NjA4LThmYmEtZTFlMDhjMjAxMDMzCgoKIyMg4pyFIEtleSBmZWF0dXJlcwoKLSBDby1waWxvdCBmb3IgZ2VuZXJhdGluZyBFVEwgY29kZSBmb3IgSFRUUCBBUElzCi0gU3VwcG9ydCBBaXJieXRlIGxvdy1jb2RlIFlBTUwgY29ubmVjdG9ycwotIFNjcmFwZXMgQVBJIGRvY3VtZW50YXRpb24KLSBQcm9kdWNlcyBPcGVuQVBJIHNwZWNpZmljYXRpb25zCgojIyDwn5OmIEluc3RhbGxhdGlvbgoKMS4gQ2xvbmUgdGhlIHJlcG9zaXRvcnkKCiAgIGBgYGJhc2gKICAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9za3lmZmVsL2FpcmJ5dGUtY29ubmVjdG9yLWdlbmVyYXRvci1wb2MKICAgY2QgYWlyYnl0ZS1jb25uZWN0b3ItZ2VuZXJhdG9yLXBvYwogICBgYGAKCjIuIFNldHVwIHZpcnR1YWwgZW52aXJvbm1lbnQKCiAgIGBgYGJhc2gKICAgIyBVc2luZyB2aXJ0dWFsZW52CiAgIHZpcnR1YWxlbnYgZW52CiAgIHNvdXJjZSBlbnYvYmluL2FjdGl2YXRlCgogICAjIE9yIHVzaW5nIHZlbnYKICAgcHl0aG9uMyAtbSB2ZW52IGVudgogICBzb3VyY2UgZW52L2Jpbi9hY3RpdmF0ZQoKICAgIyBPciB1c2luZyBwb2V0cnkKICAgcG9ldHJ5IHNoZWxsCiAgIGBgYAoKMy4gSW5zdGFsbCByZXF1aXJlZCBwYWNrYWdlcwoKICAgYGBgYmFzaAogICBwb2V0cnkgaW5zdGFsbAogICBwbGF5d3JpZ2h0IGluc3RhbGwKICAgYGBgCgojIyDwn5qAIEhvdyB0byB1c2UKCkdlbmVyYXRlcyBhbiBBaXJieXRlIGxvdy1jb2RlIFlBTUwgY29ubmVjdG9yIHVzaW5nIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBwcm92aWRlZCB2aWEgVVJMcy4KCj4gU2V0IGBERUJVRz10cnVlYCBpbiBgLmVudmAgdG8gZW5hYmxlIGxvZ3MKCmBgYGJhc2gKc2t5ZmZlbCAtLWdvYWwgIjxNWSBFVEwgR09BTD4iIC0tdXJscyAiPFVSTCBET0MgMT4iIC0tdXJscyAiPFVSTCBET0MgMj4iCmBgYAoKSGVyZSB3ZSBnZW5lcmF0ZSBhIGNvbm5lY3RvciBmb3IgZXh0cmFjdGluZyBhbGwgYmxvZyBwb3N0cyBmcm9tIHRoZSBEZXBhcnRtZW50IG9mIEp1c3RpY2UuCgpgYGBiYXNoCnNreWZmZWwgXAogICAgLS1nb2FsICJleHRyYWN0IGFsbCBibG9nIGVudHJpZXMgZnJvbSBkZXBhcnRtZW50IG9mIGp1c3RpY2UiIFwKICAgIC0tdXJscyBodHRwczovL3d3dy5qdXN0aWNlLmdvdi9kZXZlbG9wZXIvYXBpLWRvY3VtZW50YXRpb24vYXBpX3YxCmBgYAoKIyMjIPCfk6UgSW1wb3J0IHRvIEFpcmJ5dGUKCkFmdGVyIGdlbmVyYXRpbmcgdGhlIGNvbm5lY3RvciwgeW91IG5lZWQgdG8gaW1wb3J0IGl0IHRvIEFpcmJ5dGUuIEV2ZW50dWFsbHkgdGhleSBtaWdodCBleHBvc2UgYW4gQVBJIHRvIGRvIHRoaXMgcHJvZ3JhbWF0aWNhbGx5IPCfpJ4gVW50aWwgdGhlbiwgaGVyZSdzIGhvdzoKCjEuIEdvIHRvIHlvdXIgQWlyYnl0ZSB3b3Jrc3BhY2UKMi4gQ2xpY2sgb24gQnVpbGRlciBbQkVUQV0gaW4gdGhlIG1lbnUKCiAgIDxpbWcgd2lkdGg9IjIwMHB4IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9za3lmZmVsL2FpcmJ5dGUtY29ubmVjdG9yLWdlbmVyYXRvci1wb2MvYXNzZXRzLzI1NjIyNDEyLzRiN2NlMTgyLTAzYjQtNDhkNy1hOTlhLWJlYWQyODdmZjI5NyIgLz4KCjMuIENsaWNrIOKAnE5ldyBjdXN0b20gY29ubmVjdG9y4oCdIGluIHRoZSB1cHBlciByaWdodCBjb3JuZXIKCiAgIDxpbWcgd2lkdGg9IjIwMHB4IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9za3lmZmVsL2FpcmJ5dGUtY29ubmVjdG9yLWdlbmVyYXRvci1wb2MvYXNzZXRzLzI1NjIyNDEyL2Y4OWQwNjYwLTFkYzEtNGYzNy1iNDZjLWMyMmE5NGU3Y2VlMCIgLz4KCjQuIENsaWNrIOKAnEltcG9ydCBhIFlBTUzigJ0gYW5kIHNlbGVjdCB0aGUgZ2VuZXJhdGVkIGBhaXJieXRlX2Nvbm5lY3Rvci55YW1sYAoKICAgPGltZyB3aWR0aD0iMjAwcHgiIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3NreWZmZWwvYWlyYnl0ZS1jb25uZWN0b3ItZ2VuZXJhdG9yLXBvYy9hc3NldHMvMjU2MjI0MTIvZGMyMTAyNDAtYjIzZC00N2IwLWEwMjQtMjZlNzA4MzRiMjhhIiAvPgoKNS4gRmlsbCBpbiB0aGUgdGVzdCB2YWx1ZXMgYW5kIHJ1biB0aGUgdGVzdAo2LiBQcmVzcyDigJxQdWJsaXNoIHRvIHdvcmtzcGFjZeKAnQo= readmeEtag: '"cb5b34a23d3565e46223887f3bfb4f1e8756ad04"' readmeLastModified: Mon, 11 Mar 2024 15:30:53 GMT repositoryId: 761669694 description: >- proof of concept to generate Airbyte low-code YAML connectors from API documentation created: '2024-02-22T09:11:10Z' updated: '2024-07-14T17:27:06Z' language: Python archived: false stars: 18 watchers: 0 forks: 2 owner: skyffel logo: https://avatars.githubusercontent.com/u/160840259?v=4 license: NOASSERTION repoEtag: '"36ea2615fb2e8aa7af1cf580c5ad33cfd77d51c3c801ab633c1f4e3a36b05e37"' repoLastModified: Sun, 14 Jul 2024 17:27:06 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/igor-baiborodine/campsite-booking v3: true id: d2c07b19920cc8af4f5cbac91985559f repositoryMetadata: base64Readme: >- IyBDYW1wc2l0ZSBCb29raW5nIEFQSSAoSmF2YSkgIAohW01hc3RlciBCcmFuY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ29yLWJhaWJvcm9kaW5lL2NhbXBzaXRlLWJvb2tpbmcvd29ya2Zsb3dzL0J1aWxkJTIwTWFzdGVyJTIwQnJhbmNoL2JhZGdlLnN2ZykKWyFbU29uYXJjbG91ZCBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWlnb3ItYmFpYm9yb2RpbmVfY2FtcHNpdGUtYm9va2luZyZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1pZ29yLWJhaWJvcm9kaW5lX2NhbXBzaXRlLWJvb2tpbmcpIApbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9aWdvci1iYWlib3JvZGluZV9jYW1wc2l0ZS1ib29raW5nJm1ldHJpYz1jb3ZlcmFnZSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPWlnb3ItYmFpYm9yb2RpbmVfY2FtcHNpdGUtYm9va2luZykKCvCflKUgQSBHbyB2ZXJzaW9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgW2NhbXBzaXRlLWJvb2tpbmctZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ29yLWJhaWJvcm9kaW5lL2NhbXBzaXRlLWJvb2tpbmctZ28pIHJlcG9zaXRvcnkuIAoKIyMjIEEgUkVTVGZ1bCB3ZWIgc2VydmljZSB0aGF0IG1hbmFnZXMgY2FtcHNpdGUgYm9va2luZ3MuIAoKUmVhZCB0aGVzZSBhcnRpY2xlcyB0byBnZXQgbW9yZSBpbnNpZ2h0czoKKiBbQ2FtcHNpdGUgQm9va2luZyBBUEk6IFJldmlzaXRlZF0oaHR0cHM6Ly93d3cua2lyb3VsZS5jb20vYXJ0aWNsZS9jYW1wc2l0ZS1ib29raW5nLWFwaS1yZXZpc2l0ZWQvKQoqIFtDYW1wc2l0ZSBCb29raW5nIEFQSTogUmV2aXNpdGVkIDJdKGh0dHBzOi8vd3d3Lmtpcm91bGUuY29tL2FydGljbGUvY2FtcHNpdGUtYm9va2luZy1hcGktcmV2aXNpdGVkLTIvKQoqIFtDYW1wc2l0ZSBCb29raW5nIEFQSTogUmV2aXNpdGVkIDNdKGh0dHBzOi8vd3d3Lmtpcm91bGUuY29tL2FydGljbGUvY2FtcHNpdGUtYm9va2luZy1hcGktcmV2aXNpdGVkLTMvKQoKPCEtLSBTVEFSVCBkb2N0b2MgZ2VuZXJhdGVkIFRPQyBwbGVhc2Uga2VlcCBjb21tZW50IGhlcmUgdG8gYWxsb3cgYXV0byB1cGRhdGUgLS0+CjwhLS0gRE9OJ1QgRURJVCBUSElTIFNFQ1RJT04sIElOU1RFQUQgUkUtUlVOIGRvY3RvYyBUTyBVUERBVEUgLS0+CioqVGFibGUgb2YgQ29udGVudHMqKgoKLSBbVGVjaG5pY2FsIFRhc2tdKCN0ZWNobmljYWwtdGFzaykKICAtIFtCb29raW5nIENvbnN0cmFpbnRzXSgjYm9va2luZy1jb25zdHJhaW50cykKICAtIFtTeXN0ZW0gUmVxdWlyZW1lbnRzXSgjc3lzdGVtLXJlcXVpcmVtZW50cykKLSBbSW1wbGVtZW50YXRpb24gRGV0YWlsc10oI2ltcGxlbWVudGF0aW9uLWRldGFpbHMpCi0gW1VwICYgUnVubmluZ10oI3VwLS1ydW5uaW5nKQogIC0gW1J1biB3aXRoIE1hdmVuXSgjcnVuLXdpdGgtbWF2ZW4pCiAgLSBbRXhlY3V0YWJsZSBKQVJdKCNleGVjdXRhYmxlLWphcikKICAtIFtEb2NrZXJdKCNkb2NrZXIpCi0gW1Rlc3RzXSgjdGVzdHMpCiAgLSBbTWF2ZW5dKCNtYXZlbikKICAtIFtTd2FnZ2VyIFVJXSgjc3dhZ2dlci11aSkKICAtIFtDb25jdXJyZW50IFRlc3RzXSgjY29uY3VycmVudC10ZXN0cykKICAgIC0gW0Jvb2tpbmdzIENyZWF0aW9uXSgjYm9va2luZ3MtY3JlYXRpb24pCiAgICAtIFtCb29raW5nIFVwZGF0ZV0oI2Jvb2tpbmctdXBkYXRlKQogIC0gW0Jhc2ljIExvYWQgVGVzdGluZ10oI2Jhc2ljLWxvYWQtdGVzdGluZykKLSBbQ29udGludW91cyBJbnRlZ3JhdGlvbl0oI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24pCiAgLSBbQnVpbGQgTWFzdGVyIEJyYW5jaF0oI2J1aWxkLW1hc3Rlci1icmFuY2gpCiAgLSBbQnVpbGQgb24gUHVsbCBSZXF1ZXN0XSgjYnVpbGQtb24tcHVsbC1yZXF1ZXN0KQogIC0gW0dlbmVyYXRlIFJFQURNRSBUT0NdKCNnZW5lcmF0ZS1yZWFkbWUtdG9jKQogIC0gW1BlcmZvcm0gUmVsZWFzZV0oI3BlcmZvcm0tcmVsZWFzZSkKCjwhLS0gRU5EIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KCiMjIFRlY2huaWNhbCBUYXNrCgojIyMgQm9va2luZyBDb25zdHJhaW50cwoqIFRoZSBjYW1wc2l0ZSBjYW4gYmUgcmVzZXJ2ZWQgZm9yIG1heCAzIGRheXMuCiogVGhlIGNhbXBzaXRlIGNhbiBiZSByZXNlcnZlZCBtaW5pbXVtIDEgZGF5KHMpIGFoZWFkIG9mIGFycml2YWwgYW5kIHVwIHRvIDEgbW9udGggaW4gYWR2YW5jZS4KKiBSZXNlcnZhdGlvbnMgY2FuIGJlIGNhbmNlbGxlZCBhbnl0aW1lLgoqIEZvciBzYWtlIG9mIHNpbXBsaWNpdHkgYXNzdW1lIHRoZSBjaGVjay1pbiAmIGNoZWNrLW91dCB0aW1lIGlzIDEyOjAwIEFNLgoKIyMjIFN5c3RlbSBSZXF1aXJlbWVudHMKKiBUaGUgdXNlcnMgd2lsbCBuZWVkIHRvIGZpbmQgb3V0IHdoZW4gdGhlIGNhbXBzaXRlIGlzIGF2YWlsYWJsZS4gU28gdGhlIHN5c3RlbSBzaG91bGQgZXhwb3NlIGFuIEFQSSB0byBwcm92aWRlIGluZm9ybWF0aW9uIG9mIHRoZQphdmFpbGFiaWxpdHkgb2YgdGhlIGNhbXBzaXRlIGZvciBhIGdpdmVuIGRhdGUgcmFuZ2Ugd2l0aCB0aGUgZGVmYXVsdCBiZWluZyAxIG1vbnRoLgoqIFByb3ZpZGUgYW4gZW5kIHBvaW50IGZvciByZXNlcnZpbmcgdGhlIGNhbXBzaXRlLiBUaGUgdXNlciB3aWxsIHByb3ZpZGUgaGlzL2hlciBlbWFpbCAmIGZ1bGwgbmFtZSBhdCB0aGUgdGltZSBvZiByZXNlcnZpbmcgdGhlIGNhbXBzaXRlCmFsb25nIHdpdGggaW50ZW5kZWQgYXJyaXZhbCBkYXRlIGFuZCBkZXBhcnR1cmUgZGF0ZS4gUmV0dXJuIGEgdW5pcXVlIGJvb2tpbmcgaWRlbnRpZmllciBiYWNrIHRvIHRoZSBjYWxsZXIgaWYgdGhlIHJlc2VydmF0aW9uIGlzIHN1Y2Nlc3NmdWwuCiogVGhlIHVuaXF1ZSBib29raW5nIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gbW9kaWZ5IG9yIGNhbmNlbCB0aGUgcmVzZXJ2YXRpb24gbGF0ZXIgb24uIFByb3ZpZGUgYXBwcm9wcmlhdGUgZW5kIHBvaW50KHMpIHRvIGFsbG93Cm1vZGlmaWNhdGlvbi9jYW5jZWxsYXRpb24gb2YgYW4gZXhpc3RpbmcgcmVzZXJ2YXRpb24uCiogRHVlIHRvIHRoZSBwb3B1bGFyaXR5IG9mIHRoZSBjYW1wc2l0ZSwgdGhlcmUgaXMgYSBoaWdoIGxpa2VsaWhvb2Qgb2YgbXVsdGlwbGUgdXNlcnMgYXR0ZW1wdGluZyB0byByZXNlcnZlIHRoZSBjYW1wc2l0ZSBmb3IgdGhlIHNhbWUvb3ZlcmxhcHBpbmcKZGF0ZShzKS4gRGVtb25zdHJhdGUgd2l0aCBhcHByb3ByaWF0ZSB0ZXN0IGNhc2VzIHRoYXQgdGhlIHN5c3RlbSBjYW4gZ3JhY2VmdWxseSBoYW5kbGUgY29uY3VycmVudCByZXF1ZXN0cyB0byByZXNlcnZlIHRoZSBjYW1wc2l0ZS4KKiBQcm92aWRlIGFwcHJvcHJpYXRlIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBjYWxsZXIgdG8gaW5kaWNhdGUgdGhlIGVycm9yIGNhc2VzLgoqIFRoZSBzeXN0ZW0gc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGxhcmdlIHZvbHVtZSBvZiByZXF1ZXN0cyBmb3IgZ2V0dGluZyB0aGUgY2FtcHNpdGUgYXZhaWxhYmlsaXR5LgoqIFRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgb24gaG93IHJlc2VydmF0aW9ucyBhcmUgc3RvcmVkIGFzIGxvbmcgYXMgc3lzdGVtIGNvbnN0cmFpbnRzIGFyZSBub3QgdmlvbGF0ZWQuCgojIyBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzCgpUaGlzIHByb2plY3QgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYW4gQVBJLWZpcnN0KG9yIGNvbnRyYWN0LWZpcnN0KSBhcHByb2FjaCBhbG9uZyB3aXRoIE1hdmVuJ3MKbXVsdGktbW9kdWxlIHByb2plY3Qgc3RydWN0dXJlLiBZb3UgY2FuIHJlYWQKbW9yZSBbaGVyZV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Jlc291cmNlcy9hcnRpY2xlcy9hZG9wdGluZy1hbi1hcGktZmlyc3QtYXBwcm9hY2gvKSBvbiB0aGUgQVBJLWZpcnN0CmRldmVsb3BtZW50IGFwcHJvYWNoLgoKIyMgVXAgJiBSdW5uaW5nCiMjIyBSdW4gd2l0aCBNYXZlbgpgYGBiYXNoCiQgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9pZ29yLWJhaWJvcm9kaW5lL2NhbXBzaXRlLWJvb2tpbmcuZ2l0CiQgY2QgY2FtcHNpdGUtYm9va2luZwokIG12biBjbGVhbiBpbnN0YWxsIC1Ec2tpcFRlc3RzIC1Ec2tpcElUcwokIG12biBzcHJpbmctYm9vdDpydW4gLURzcHJpbmctYm9vdC5ydW4ucHJvZmlsZXM9aW4tbWVtb3J5LWRiIC1mIGNhbXBzaXRlLWJvb2tpbmctc2VydmljZS9wb20ueG1sCmBgYApUaGUgU3dhZ2dlciBVSSBpcyBhdmFpbGFibGUgYXQgYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpLmh0bWxgLgoKIyMjIEV4ZWN1dGFibGUgSkFSCmBgYGJhc2gKJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2lnb3ItYmFpYm9yb2RpbmUvY2FtcHNpdGUtYm9va2luZy5naXQKJCBjZCBjYW1wc2l0ZS1ib29raW5nCiQgbXZuIGNsZWFuIGluc3RhbGwgLURza2lwVGVzdHMgLURza2lwSVRzCiQgbXZuIHBhY2thZ2Ugc3ByaW5nLWJvb3Q6cmVwYWNrYWdlIC1Ec2tpcFRlc3RzIC1Ec2tpcElUcyAtZiBjYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UvcG9tLnhtbAokIGphdmEgLWphciAtRHNwcmluZy5wcm9maWxlcy5hY3RpdmU9aW4tbWVtb3J5LWRiIGNhbXBzaXRlLWJvb2tpbmctc2VydmljZS90YXJnZXQvY2FtcHNpdGUtYm9va2luZy1zZXJ2aWNlLTx2ZXJzaW9uPi5qYXIKYGBgClRoZSBTd2FnZ2VyIFVJIGlzIGF2YWlsYWJsZSBhdCBgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbGAuCgojIyMgRG9ja2VyCmBgYGJhc2gKJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2lnb3ItYmFpYm9yb2RpbmUvY2FtcHNpdGUtYm9va2luZy5naXQKJCBjZCBjYW1wc2l0ZS1ib29raW5nCiQgZG9ja2VyIGJ1aWxkIC0tcm0gLS1maWxlIGNvbnRhaW5lci9Eb2NrZXJmaWxlIC0tdGFnIGNhbXBzaXRlLWJvb2tpbmctc2VydmljZSAuCiQgZG9ja2VyIHJ1biAtZSAiU1BSSU5HX1BST0ZJTEVTX0FDVElWRT1pbi1tZW1vcnktZGIiIC0tbmFtZSBjYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UgLWQgY2FtcHNpdGUtYm9va2luZy1zZXJ2aWNlCiQgZG9ja2VyIGxvZ3MgLWYgY2FtcHNpdGUtYm9va2luZy1zZXJ2aWNlIApgYGAKClRoZSBTd2FnZ2VyIFVJIGlzIGF2YWlsYWJsZSBhdCBgaHR0cDovLzxjb250YWluZXItaXA+OjgwODAvc3dhZ2dlci11aS5odG1sYC4gVG8gZ2V0IHRoZSBjb250YWluZXIgSVAKYWRkcmVzcywgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBjb25zb2xlCiQgZG9ja2VyIGluc3BlY3QgLWYgJ3t7cmFuZ2UgLk5ldHdvcmtTZXR0aW5ncy5OZXR3b3Jrc319e3suSVBBZGRyZXNzfX17e2VuZH19JyBjYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UKYGBgCgpWaWEgdGhlIGhvc3QgbWFjaGluZSBvbiBwb3J0IDgwOgpgYGBjb25zb2xlCiQgZG9ja2VyIHJ1biAtZSAiU1BSSU5HX1BST0ZJTEVTX0FDVElWRT1pbi1tZW1vcnktZGIiIC0tbmFtZSBjYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UgLXAgODA6ODA4MCAtZCBjYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UKYGBgClRoZSBTd2FnZ2VyIFVJIGlzIGF2YWlsYWJsZSBhdCBgaHR0cDovL2xvY2FsaG9zdDo4MC9zd2FnZ2VyLXVpLmh0bWxgIG9yIGBodHRwOi8vaG9zdC1pcDo4MC9zd2FnZ2VyLXVpLmh0bWxgLgoKLi4uIG9yIHdpdGggYW4gW2ltYWdlIGZyb20gRG9ja2VyIEh1Yl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2liYWlib3JvZGluZS9jYW1wc2l0ZS1ib29raW5nKToKYGBgY29uc29sZQokIGRvY2tlciBydW4gLWUgIlNQUklOR19QUk9GSUxFU19BQ1RJVkU9aW4tbWVtb3J5LWRiIiAtLW5hbWUgY2FtcHNpdGUtYm9va2luZy1zZXJ2aWNlIC1wIDgwOjgwODAgLWQgaWJhaWJvcm9kaW5lL2NhbXBzaXRlLWJvb2tpbmctc2VydmljZQpgYGAKLi4uIG9yIHdpdGggaW4tbWVtb3J5IERCIFtkb2NrZXItY29tcG9zZV0oLi4vY29udGFpbmVyL2RvY2tlci1jb21wb3NlLnltbCk6CmBgYGNvbnNvbGUKJCBkb2NrZXIgY29tcG9zZSAtZiBjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sIHVwIC1kCmBgYAouLi4gb3Igd2l0aCBNeVNRTCBbZG9ja2VyLWNvbXBvc2VdKC4uL2NvbnRhaW5lci9jYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UtbXlzcWwvZG9ja2VyLWNvbXBvc2UueW1sKToKYGBgY29uc29sZQokIGRvY2tlciBjb21wb3NlIC1mIGNvbnRhaW5lci9jYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UtbXlzcWwvZG9ja2VyLWNvbXBvc2UueW1sIHVwIC1kCmBgYAogCiMjIFRlc3RzCgojIyMgTWF2ZW4KKiBSdW4gb25seSB1bml0IHRlc3RzOgpgYGBiYXNoCiQgbXZuIGNsZWFuIHRlc3QKYGBgCiogUnVuIG9ubHkgaW50ZWdyYXRpb24gdGVzdHM6CmBgYGJhc2gKJCBtdm4gY2xlYW4gZmFpbHNhZmU6aW50ZWdyYXRpb24tdGVzdApgYGAKKiBSdW4gdW5pdCBhbmQgaW50ZWdyYXRpb24gdGVzdHM6CmBgYGJhc2gKJCBtdm4gY2xlYW4gdmVyaWZ5CmBgYAoqIFJ1biBTb25hckNsb3VkIGFuYWx5c2lzLCBpbmNsdWRpbmcgdGVzdCBjb3ZlcmFnZSwgY29kZSBzbWVsbHMsIHZ1bG5lcmFiaWxpdGllcywgZXRjLjoKYGBgYmFzaAokIG12biBjbGVhbiB2ZXJpZnkgc29uYXI6c29uYXIgLURzb25hci5sb2dpbj08U09OQVJfVE9LRU4+CmBgYAoKIyMjIFN3YWdnZXIgVUkKVGhlIEFQSSBjYW4gYmUgdGVzdGVkIHZpYSB0aGUgU3dhZ2dlciBVSToKCiFbU3dhZ2dlciBVSSBNYWluIFZpZXddKC9yZWFkbWUvc3dhZ2dlci1tYWluLXZpZXcucG5nKQoKRm9yIGV4YW1wbGUsIHRvIGFkZCBhIG5ldyBib29raW5nLCBleHBhbmQgdGhlIGBQT1NUYCBvcGVyYXRpb24uIFRoZW4gY2xpY2sgb24gdGhlIGBUcnkgaXQgb3V0YCwgYWRkCnRoZSBwYXlsb2FkIGJlbG93IHRvIHRoZSBgUmVxdWVzdCBCb2R5YCB0ZXh0IGFyZWEsIGFuZCBjbGljayBvbiB0aGUgYEV4ZWN1dGVgOgoKYGBganNvbgp7CiAgImNhbXBzaXRlSWQiOiAxLAogICJlbWFpbCI6ICJKb2huIFNtaXRoIiwKICAiZnVsbE5hbWUiOiAiam9obi5zbWl0aEBlbWFpbC5jb20iLAogICJzdGFydERhdGUiOiAiMjAyMy0xMS0xOSIsCiAgImVuZERhdGUiOiAiMjAyMy0xMS0yMSIsCiAgImFjdGl2ZSI6IHRydWUKfQpgYGAKIVtTd2FnZ2VyIFVJIEFkZCBCb29raW5nIDFdKC9yZWFkbWUvc3dhZ2dlci1hZGQtYm9va2luZy0xLnBuZykKCklmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bCwgeW91IHdpbGwgZ2V0IHRoZSBmb2xsb3dpbmcgcmVzcG9uc2U6CgohW1N3YWdnZXIgVUkgQWRkIEJvb2tpbmcgMV0oL3JlYWRtZS9zd2FnZ2VyLWFkZC1ib29raW5nLTIucG5nKQoKIyMjIENvbmN1cnJlbnQgVGVzdHMKClN0YXJ0IGFuIGluc3RhbmNlIG9mIHRoZSBDYW1wc2l0ZSBCb29raW5nIEFQSSB2aWEgRG9ja2VyIENvbXBvc2UgZWl0aGVyCmluIFt0aGUgaW4tbWVtb3J5LWRiXSguLi9jb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sKSBvcgppbiBbbXlzcWxdKC4uL2NvbnRhaW5lci9jYW1wc2l0ZS1ib29raW5nLXNlcnZpY2UtbXlzcWwvZG9ja2VyLWNvbXBvc2UueW1sKSBwcm9maWxlLgoKYGBgYmFzaAokIGRvY2tlci1jb21wb3NlLnltbCB1cCAtZApgYGAKCiMjIyMgQm9va2luZ3MgQ3JlYXRpb24KCkV4ZWN1dGUgdGhlIFtjb25jdXJyZW50LWNyZWF0ZS1ib29raW5ncy5zaF0oLi4vc2NyaXB0L3Rlc3QvY29uY3VycmVudC1jcmVhdGUtYm9va2luZ3Muc2gpIHNjcmlwdCB0bwpzaW11bGF0ZSBjb25jdXJyZW50IGJvb2tpbmcgY3JlYXRpb24gZm9yIHRoZSBzYW1lIGJvb2tpbmcgZGF0ZXM6CgpgYGBiYXNoCiQgLi9zY3JpcHQvdGVzdC9jb25jdXJyZW50LWNyZWF0ZS1ib29raW5ncy5zaCAyMDIzLTExLTE2IDIwMjMtMTEtMTcgaHR0cDovbG9jYWxob3N0OjgwCmBgYApUaGUgcmVzcG9uc2Ugc2hvdWxkIGJlIGFzIGZvbGxvd3MgYWZ0ZXIgZm9ybWF0dGluZywgaS5lLiwgb25seSBvbmUgYm9va2luZyB3YXMgY3JlYXRlZDoKYGBganNvbgpbCiAgewogICAgInV1aWQiOiAiNGRhMTgxOGMtMmQ5ZS00ZWZlLWI1OWQtMzg5MTVkNmJjNWQzIiwKICAgICJ2ZXJzaW9uIjogMCwKICAgICJjYW1wc2l0ZUlkIjogMSwKICAgICJlbWFpbCI6ICJqb2huLnNtaXRoLjJAZW1haWwuY29tIiwKICAgICJmdWxsTmFtZSI6ICJKb2huIFNtaXRoIDIiLAogICAgInN0YXJ0RGF0ZSI6ICIyMDIzLTExLTE2IiwKICAgICJlbmREYXRlIjogIjIwMjMtMTEtMTciLAogICAgImFjdGl2ZSI6IHRydWUKICB9LAogIHsKICAgICJzdGF0dXMiOiA0MDAsCiAgICAibWVzc2FnZSI6ICJObyB2YWNhbnQgZGF0ZXMgYXZhaWxhYmxlIGZyb20gMjAyMy0xMS0xNiB0byAyMDIzLTExLTE3IiwKICAgICJ0aW1lc3RhbXAiOiAiMjAyMy0xMS0xMlQyMDozMToyMy43NTErMDA6MDAiLAogICAgInN1YkVycm9ycyI6IFtdCiAgfSwKICB7CiAgICAic3RhdHVzIjogNDAwLAogICAgIm1lc3NhZ2UiOiAiTm8gdmFjYW50IGRhdGVzIGF2YWlsYWJsZSBmcm9tIDIwMjMtMTEtMTYgdG8gMjAyMy0xMS0xNyIsCiAgICAidGltZXN0YW1wIjogIjIwMjMtMTEtMTJUMjA6MzE6MjMuNzU2KzAwOjAwIiwKICAgICJzdWJFcnJvcnMiOiBbXQogIH0KXQpgYGAKCiMjIyMgQm9va2luZyBVcGRhdGUKCkV4ZWN1dGUgdGhlIFtjb25jdXJyZW50LXVwZGF0ZS1ib29raW5nLnNoXSguLi9zY3JpcHQvdGVzdC9jb25jdXJyZW50LXVwZGF0ZS1ib29raW5nLnNoKSBzY3JpcHQgdG8Kc2ltdWxhdGUgY29uY3VycmVudCB1cGRhdGVzIGZvciB0aGUgc2FtZSBib29raW5nOgoKYGBgYmFzaAokIC4vc2NyaXB0L3Rlc3QvY29uY3VycmVudC11cGRhdGUtYm9va2luZy5zaCAyMDIzLTExLTE1IDIwMjMtMTEtMTYgaHR0cDovbG9jYWxob3N0OjgwCmBgYApUaGUgcmVzcG9uc2Ugc2hvdWxkIGJlIGFzIGZvbGxvd3MgYWZ0ZXIgZm9ybWF0dGluZywgaS5lLiwgb25seSBvbmUgYm9va2luZyB3YXMgdXBkYXRlZDoKYGBganNvbgpbCiAgewogICAgInV1aWQiOiAiZWExMDAwOGItYzYwZS00MWY5LTk3YmItMzEzZTk1MDJlN2Y0IiwKICAgICJ2ZXJzaW9uIjogMSwKICAgICJjYW1wc2l0ZUlkIjogMywKICAgICJlbWFpbCI6ICJqb2huLnNtaXRoLjFAZW1haWwuY29tIiwKICAgICJmdWxsTmFtZSI6ICJKb2huIFNtaXRoIDEiLAogICAgInN0YXJ0RGF0ZSI6ICIyMDIzLTExLTE1IiwKICAgICJlbmREYXRlIjogIjIwMjMtMTEtMTYiLAogICAgImFjdGl2ZSI6IHRydWUKICB9LAogIHsKICAgICJzdGF0dXMiOiA0MDksCiAgICAibWVzc2FnZSI6ICJPcHRpbWlzdGljIGxvY2tpbmcgZXJyb3I6IGNvbS5raXJvdWxlLmNhbXBzaXRlYm9va2luZy5yZXBvc2l0b3J5LmVudGl0eS5Cb29raW5nRW50aXR5IHdpdGggaWQgMSB3YXMgdXBkYXRlZCBieSBhbm90aGVyIHRyYW5zYWN0aW9uIiwKICAgICJ0aW1lc3RhbXAiOiAiMjAyMy0xMS0xMlQyMDoyOTo1NS4wMDgrMDA6MDAiLAogICAgInN1YkVycm9ycyI6IFtdCiAgfQpdCmBgYAoKIyMjIEJhc2ljIExvYWQgVGVzdGluZyAKQmFzaWMgbG9hZCB0ZXN0aW5nIGZvciByZXRyaWV2aW5nIHZhY2FudCBkYXRlcyBjYW4gYmUgcGVyZm9ybWVkIHdpdGggdGhlIEFwYWNoZUJlbmNoIGJ5IGV4ZWN1dGluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CmBgYEJhc2gKJCBkb2NrZXItY29tcG9zZS55bWwgdXAgLWQKJCBhYiAtbiAxMDAwMCAtYyAxMDAgLWsgaHR0cDovL2xvY2FsaG9zdDo4MC9hcGkvdjIvYm9va2luZy92YWNhbnQtZGF0ZXMKYGBgCiogKiotbiAxMDAwMCoqIGlzIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMgdG8gbWFrZQoqICoqLWMgMTAwKiogaXMgdGhlIG51bWJlciBvZiBjb25jdXJyZW50IHJlcXVlc3RzIHRvIG1ha2UgYXQgYSB0aW1lCiogKiotayoqIHNlbmRzIHRoZSAqKktlZXBBbGl2ZSoqIGhlYWRlciwgd2hpY2ggYXNrcyB0aGUgd2ViIHNlcnZlciB0byBub3Qgc2h1dCBkb3duIHRoZSBjb25uZWN0aW9uIGFmdGVyIGVhY2ggcmVxdWVzdCBpcyBkb25lLCBidXQgdG8gaW5zdGVhZCBrZWVwIHJldXNpbmcgaXQKClJlc3VsdDoKYGBgCkJlbmNobWFya2luZyBsb2NhbGhvc3QgKGJlIHBhdGllbnQpCkNvbXBsZXRlZCAxMDAwIHJlcXVlc3RzCkNvbXBsZXRlZCAyMDAwIHJlcXVlc3RzCkNvbXBsZXRlZCAzMDAwIHJlcXVlc3RzCkNvbXBsZXRlZCA0MDAwIHJlcXVlc3RzCkNvbXBsZXRlZCA1MDAwIHJlcXVlc3RzCkNvbXBsZXRlZCA2MDAwIHJlcXVlc3RzCkNvbXBsZXRlZCA3MDAwIHJlcXVlc3RzCkNvbXBsZXRlZCA4MDAwIHJlcXVlc3RzCkNvbXBsZXRlZCA5MDAwIHJlcXVlc3RzCkNvbXBsZXRlZCAxMDAwMCByZXF1ZXN0cwpGaW5pc2hlZCAxMDAwMCByZXF1ZXN0cwoKU2VydmVyIFNvZnR3YXJlOiAgICAgICAgClNlcnZlciBIb3N0bmFtZTogICAgICAgIGxvY2FsaG9zdApTZXJ2ZXIgUG9ydDogICAgICAgICAgICA4MAoKRG9jdW1lbnQgUGF0aDogICAgICAgICAgL2FwaS92Mi9ib29raW5nL3ZhY2FudC1kYXRlcwpEb2N1bWVudCBMZW5ndGg6ICAgICAgICAxNTkgYnl0ZXMKCkNvbmN1cnJlbmN5IExldmVsOiAgICAgIDEwMApUaW1lIHRha2VuIGZvciB0ZXN0czogICAyLjEzNCBzZWNvbmRzCkNvbXBsZXRlIHJlcXVlc3RzOiAgICAgIDEwMDAwCkZhaWxlZCByZXF1ZXN0czogICAgICAgIDAKTm9uLTJ4eCByZXNwb25zZXM6ICAgICAgMTAwMDAKS2VlcC1BbGl2ZSByZXF1ZXN0czogICAgMApUb3RhbCB0cmFuc2ZlcnJlZDogICAgICAyNzIwMDAwIGJ5dGVzCkhUTUwgdHJhbnNmZXJyZWQ6ICAgICAgIDE1OTAwMDAgYnl0ZXMKUmVxdWVzdHMgcGVyIHNlY29uZDogICAgNDY4NS45NSBbIy9zZWNdIChtZWFuKQpUaW1lIHBlciByZXF1ZXN0OiAgICAgICAyMS4zNDAgW21zXSAobWVhbikKVGltZSBwZXIgcmVxdWVzdDogICAgICAgMC4yMTMgW21zXSAobWVhbiwgYWNyb3NzIGFsbCBjb25jdXJyZW50IHJlcXVlc3RzKQpUcmFuc2ZlciByYXRlOiAgICAgICAgICAxMjQ0LjcwIFtLYnl0ZXMvc2VjXSByZWNlaXZlZAoKQ29ubmVjdGlvbiBUaW1lcyAobXMpCiAgICAgICAgICAgICAgbWluICBtZWFuWysvLXNkXSBtZWRpYW4gICBtYXgKQ29ubmVjdDogICAgICAgIDAgICAgMSAgIDAuOCAgICAgIDEgICAgICAgNwpQcm9jZXNzaW5nOiAgICAgMiAgIDIwICAgOS42ICAgICAxOSAgICAgIDg4CldhaXRpbmc6ICAgICAgICAxICAgMTkgICA5LjAgICAgIDE4ICAgICAgODcKVG90YWw6ICAgICAgICAgIDIgICAyMSAgIDkuMyAgICAgMTkgICAgICA4OAoKUGVyY2VudGFnZSBvZiB0aGUgcmVxdWVzdHMgc2VydmVkIHdpdGhpbiBhIGNlcnRhaW4gdGltZSAobXMpCiAgNTAlICAgICAxOQogIDY2JSAgICAgMjMKICA3NSUgICAgIDI1CiAgODAlICAgICAyNwogIDkwJSAgICAgMzIKICA5NSUgICAgIDM4CiAgOTglICAgICA0NwogIDk5JSAgICAgNTUKIDEwMCUgICAgIDg4IChsb25nZXN0IHJlcXVlc3QpCmBgYAoKIyMgQ29udGludW91cyBJbnRlZ3JhdGlvbgoKQ29udGludW91cyBpbnRlZ3JhdGlvbiBpcyBpbXBsZW1lbnRlZCB1c2luZyBHaXRIdWIgQWN0aW9ucywgYW5kIGl0IGluY2x1ZGVzCnRoZSBgQnVpbGQgTWFzdGVyIEJyYW5jaGAsIGBCdWlsZCBvbiBQdWxsIFJlcXVlc3RgLCBgR2VuZXJhdGUgUkVBRE1FIFRPQ2AsIGFuZCBgUGVyZm9ybSBSZWxlYXNlYAp3b3JrZmxvd3M6CgohW0dpdEh1YiBBY3Rpb25zXSgvcmVhZG1lL2dpdGh1Yi1hY3Rpb25zLnBuZykKCiMjIyBCdWlsZCBNYXN0ZXIgQnJhbmNoCgpUaGlzIHdvcmtmbG93IGlzIGV4ZWN1dGVkIGF1dG9tYXRpY2FsbHkgb24gYW55IGNvbW1pdCB0byB0aGUgYG1hc3RlcmAgYnJhbmNoIGFuZCBjb25zaXN0cyBvZgp0aGUgYFNvbmFyQ2xvdWQgU2NhbmAgYW5kIGBTbmFwc2hvdCBQdWJsaXNoaW5nYCBqb2JzOgoKIVtCdWlsZCBNYXN0ZXIgQnJhbmNoIFdvcmtmbG93XSgvcmVhZG1lL2dpdGh1Yi1hY3Rpb25zLWJ1aWxkLW1hc3Rlci1icmFuY2gucG5nKQoKIyMjIEJ1aWxkIG9uIFB1bGwgUmVxdWVzdAoKVGhpcyB3b3JrZmxvdyBpcyBleGVjdXRlZCBhdXRvbWF0aWNhbGx5IG9uIGFueSBwdWxsIHJlcXVlc3QgYW5kIGNvbnNpc3RzIG9mCnRoZSBgVW5pdCAmIFNvbmFyQ2xvdWQgU2NhbmAgam9iOgoKIVtCdWlsZCBvbiBQdWxsIFJlcXVlc3QgV29ya2Zsb3ddKC9yZWFkbWUvZ2l0aHViLWFjdGlvbnMtYnVpbGQtb24tcHVsbC1yZXF1ZXN0LnBuZykKCiMjIyBHZW5lcmF0ZSBSRUFETUUgVE9DCgpUaGlzIHdvcmtmbG93IGlzIGV4ZWN1dGVkIGF1dG9tYXRpY2FsbHkgb24gYW55IHVwZGF0ZSBvZiB0aGUgYHJlYWRtZS9SRUFETUUubWRgIGZpbGUgcHVzaGVkIHRvCnRoZSBgbWFzdGVyYCBicmFuY2ggYW5kIGNvbnNpc3RzIG9mIHRoZSBgR2VuZXJhdGUgVE9DYCBqb2I6CgohW0dlbmVyYXRlIFJFQURNRSBUT0MgV29ya2Zsb3ddKC9yZWFkbWUvZ2l0aHViLWFjdGlvbnMtZ2VuZXJhdGUtcmVhZG1lLXRvYy5wbmcpCgojIyMgUGVyZm9ybSBSZWxlYXNlClRoaXMgd29ya2Zsb3cgaXMgZXhlY3V0ZWQgbWFudWFsbHkgYW5kIGNvbnNpc3RzIG9mIHRoZSBgTWF2ZW4gUmVsZWFzZWAgYW5kIGBEb2NrZXIgSW1hZ2VgIGpvYnM6CgohW1BlcmZvcm0gUmVsZWFzZSBXb3JrZmxvd10oL3JlYWRtZS9naXRodWItYWN0aW9ucy1wZXJmb3JtLXJlbGVhc2UucG5nKQoKVGhlIGBSZWxlYXNlIFZlcnNpb25gIHBhcmFtZXRlciB2YWx1ZSBzaG91bGQgYmUgcHJvdmlkZWQgYmVmb3JlIGV4ZWN1dGluZyB0aGlzICB3b3JrZmxvdzoKCiFbUGVyZm9ybSBSZWxlYXNlIFdvcmtmbG93XSgvcmVhZG1lL2dpdGh1Yi1hY3Rpb25zLXBlcmZvcm0tcmVsZWFzZS1wYXJhbWV0ZXIucG5nKQo= readmeEtag: '"3d6c4b9f7d5fc55a5fd95e0dc0537e18b91329f8"' readmeLastModified: Thu, 23 May 2024 15:45:31 GMT repositoryId: 154585856 description: >- This project contains the source code of a Spring Boot 3 REST API example application. created: '2018-10-25T00:16:09Z' updated: '2024-06-02T06:21:53Z' language: Java archived: false stars: 18 watchers: 1 forks: 11 owner: igor-baiborodine logo: https://avatars.githubusercontent.com/u/1027701?v=4 repoEtag: '"46f3052291aa433c672824461429aad5b3d7ae1be07eab269453bd20cc20df12"' repoLastModified: Sun, 02 Jun 2024 06:21:53 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/elixir-cloud-aai/foca v3: true id: 1b552721e4edb94864dd3f1fad63ef9f repositoryMetadata: base64Readme: >- IyAhW0ZPQ0FfbG9nb11bZm9jYS1sb2dvXSAmZW5zcDtfRGV2ZWxvcCBGbGFzayBtaWNyb3NlcnZpY2VzIHF1aWNrbHkhXwoKWyFbTGljZW5zZV1bYmFkZ2UtbGljZW5zZV1dW2JhZGdlLXVybC1saWNlbnNlXQpbIVtCdWlsZF9zdGF0dXNdW2JhZGdlLWJ1aWxkLXN0YXR1c11dW2JhZGdlLXVybC1idWlsZC1zdGF0dXNdClshW0RvY3NdW2JhZGdlLWRvY3NdXVtiYWRnZS11cmwtZG9jc10KWyFbQ292ZXJhZ2VdW2JhZGdlLWNvdmVyYWdlXV1bYmFkZ2UtdXJsLWNvdmVyYWdlXQpbIVtHaXRIdWJfdGFnXVtiYWRnZS1naXRodWItdGFnXV1bYmFkZ2UtdXJsLWdpdGh1Yi10YWddClshW1B5UElfcmVsZWFzZV1bYmFkZ2UtcHlwaV1dW2JhZGdlLXVybC1weXBpXQoKKipGT0NBKiogKCoqRioqbGFzay0qKk8qKnBlbkFQSS0qKkMqKm9ubmV4aW9uLSoqQSoqcmNoZXR5cGUpIGlzIGFuIG9waW5pb25hdGVkCmFyY2hldHlwZSB0aGF0IGVuYWJsZXMgZmFzdCBkZXZlbG9wbWVudCBvZiBbT3BlbkFQSV1bcmVzLW9wZW5hcGldLWJhc2VkIEhUVFAKQVBJIG1pY3Jvc2VydmljZXMgaW4gW0ZsYXNrXVtyZXMtZmxhc2tdLCBsZXZlcmFnaW5nIHRoZSBleGNlbGxlbnQKW0Nvbm5leGlvbl1bcmVzLWNvbm5leGlvbl0gZnJhbWV3b3JrLgoKRk9DQSByZWR1Y2VzIHRoZSByZXF1aXJlZCBib2lsZXJwbGF0ZSBjb2RlIHRvIGZpcmUgdXAgeW91ciBhcHAgdG8gYSBiYXJlCm1pbmltdW0gYW5kIGFsbG93cyB5b3UgdG8gXyoqZm9jdXMgb24geW91ciBhcHBsaWNhdGlvbiBsb2dpYyoqXy4gSXQgYWxzbyBhdm9pZHMKdW5uZWNlc3NhcnkgY29kZSByZXBldGl0aW9uIGFuZCBpbnRyb2R1Y2VzIGNyb3NzLXNlcnZpY2UgY29uc2lzdGVuY3kgd2hlbgpkZXZlbG9waW5nIG11bHRpcGxlIGFwcGxpY2F0aW9ucy4gU2ltcGx5IHdyaXRlIGEgY29uZmlndXJhdGlvbiBmaWxlLCBwYXNzCml0IHRvIEZPQ0EgYW5kIHlvdSdyZSBnb29kIHRvIGdvIQoKQ3VycmVudGx5IHN1cHBvcnRlZCBmZWF0dXJlczoKCiogTWFuYWdlIGFwcCBjb25maWd1cmF0aW9uCiogSGFuZGxlIGV4Y2VwdGlvbnMKKiBSZWdpc3RlciBPcGVuQVBJIDIueC8zLnggc3BlY2lmaWNhdGlvbnMKKiBQcm90ZWN0IGVuZHBvaW50cyB2aWEgW0pXVF1bcmVzLWp3dF0gdmFsaWRhdGlvbgoqIFJlZ2lzdGVyIFtNb25nb0RCXVtyZXMtbW9uZ28tZGJdIGNvbGxlY3Rpb25zCiogUnVuIGFzeW5jaHJvbm91cyB0YXNrcyB2aWEgW1JhYmJpdE1RXVtyZXMtcmFiYml0bXFdICYgW0NlbGVyeV1bcmVzLWNlbGVyeV0KKiBbQ09SU11bcmVzLWNvcnNdIHN1cHBvcnQKCkNoZWNrIHRoZSBbQVBJIGRvY3NdW2JhZGdlLXVybC1kb2NzXSBmb3IgZnVydGhlciBkZXRhaWxzLgoKIyMgVGFibGUgb2YgQ29udGVudHMKCiogW1VzYWdlXSgjdXNhZ2UpCiogW0NvbmZpZ3VyYXRpb25dKCNjb25maWd1cmF0aW9uKQogICogW0NvbmZpZ3VyaW5nIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnNdKCNjb25maWd1cmluZy1vcGVuYXBpLXNwZWNpZmljYXRpb25zKQogICogW0NvbmZpZ3VyaW5nIE1vbmdvREJdKCNjb25maWd1cmluZy1tb25nb2RiKQogICogW0NvbmZpZ3VyaW5nIGV4Y2VwdGlvbnNdKCNjb25maWd1cmluZy1leGNlcHRpb25zKQogICogW0NvbmZpZ3VyaW5nIGFzeW5jaHJvbm91cyB0YXNrc10oI2NvbmZpZ3VyaW5nLWFzeW5jaHJvbm91cy10YXNrcykKICAqIFtDb25maWd1cmluZyBsb2dnaW5nXSgjY29uZmlndXJpbmctbG9nZ2luZykKICAqIFtDb25maWd1cmluZyBzZWN1cml0eV0oI2NvbmZpZ3VyaW5nLXNlY3VyaXR5KQogICogW0NvbmZpZ3VyaW5nIHRoZSBzZXJ2ZXJdKCNjb25maWd1cmluZy10aGUtc2VydmVyKQogICogW0N1c3RvbSBjb25maWd1cmF0aW9uXSgjY3VzdG9tLWNvbmZpZ3VyYXRpb24pCiAgKiBbQWNjZXNzaW5nIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyc10oI2FjY2Vzc2luZy1jb25maWd1cmF0aW9uLXBhcmFtZXRlcnMpCiogW1V0aWxpdGllc10oI3V0aWxpdGllcykKICAqIFtEYXRhYmFzZSB1dGlsaXRpZXNdKCNkYXRhYmFzZS11dGlsaXRpZXMpCiAgKiBbTG9nZ2luZyB1dGl0bGllc10oI2xvZ2dpbmctdXRpbGl0aWVzKQogICogW01pc2NlbGxhbmVvdXMgdXRpbGl0aWVzXSgjbWlzY2VsbGFuZW91cy11dGlsaXRpZXMpCiAgKiBbQWNjZXNzIENvbnRyb2wgdXRpbGl0aWVzXSgjYWNjZXNzLWNvbnRyb2wtdXRpbGl0aWVzKQoqIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCiogW1ZlcnNpb25pbmddKCN2ZXJzaW9uaW5nKQoqIFtMaWNlbnNlXSgjbGljZW5zZSkKKiBbQ29udGFjdF0oI2NvbnRhY3QpCgojIyBVc2FnZQoKKDEpIEluc3RhbGwgdGhlIFtGT0NBIHBhY2thZ2VdW2JhZGdlLXVybC1weXBpXSB3aXRoIGBwaXBgOgoKYGBgYmFzaApwaXAgaW5zdGFsbCBmb2NhCmBgYAoKKDIpIENyZWF0ZSBhIFtjb25maWd1cmF0aW9uXSgjY29uZmlndXJhdGlvbikgZmlsZS4KCigzKSBJbXBvcnQgdGhlIEZPQ0EgY2xhc3MgYW5kIHBhc3MgeW91ciBjb25maWcgZmlsZToKCmBgYHB5dGhvbgpmcm9tIGZvY2EgaW1wb3J0IEZvY2EKCmZvY2EgPSBGb2NhKGNvbmZpZ19maWxlPSJwYXRoL3RvL215L2FwcC9jb25maWcueWFtbCIpCmFwcCA9IGZvY2EuY3JlYXRlX2FwcCgpICAjIHJldHVybnMgYSBDb25uZXhpb24gYXBwIGluc3RhbmNlCmBgYAoKKDQpIFN0YXJ0IHlvdXIgW0ZsYXNrXVtyZXMtZmxhc2tdIGFwcCBhcyB1c3VhbC4KCiFbSGludF1baW1nLWhpbnRdIF8qKkNoZWNrIG91dCB0aGUgW1BldHN0b3JlIGV4YW1wbGUgYXBwbGljYXRpb25dW2V4YW1wbGVdCnNoaXBwZWQgd2l0aCB0aGlzIHJlcG9zaXRvcnkgdG8gc2VlIEZPQ0EgaW4gYWN0aW9uISoqXwoKIyMgQ29uZmlndXJhdGlvbgoKIVtIaW50XVtpbWctaGludF0gXyoqSW4gb3JkZXIgdG8gZ2V0IHlvdSBzdGFydGVkIHdyaXRpbmcgeW91ciBvd24gYXBwCmNvbmZpZ3VyYXRpb24sIHlvdSBjYW4gY29weSB0aGUgWyoqYW5ub3RhdGVkIHRlbXBsYXRlKipdW2NvbmZpZy10ZW1wbGF0ZV0Kc2hpcHBlZCB3aXRoIHRoaXMgcmVwb3NpdG9yeSBhbmQgbW9kaWZ5IGl0LioqXwoKSW4gb3JkZXIgdG8gdXNlIEZPQ0EgZnVuY3Rpb25hbGl0aWVzLCB5b3UgbXVzdCBjcmVhdGUgYSBbWUFNTF1bcmVzLXlhbWxdCmNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IGluY2x1ZGVzIGtleXdvcmQgc2VjdGlvbnMgcmVzZXJ2ZWQgYnkgRk9DQS4gVGhlCmZvbGxvd2luZyB0b3AtbGV2ZWwgc2VjdGlvbnMgYXJlIGludGVycHJldGVkIGJ5IEZPQ0EgKGV4aGF1c3RpdmU7IGxpbmtzIGFyZQpwcm92aWRlZCB0byB0aGUgY29ycmVzcG9uZGluZyBzZWN0aW9ucyBpbiB0aGlzIGRvY3VtZW50YXRpb24sIGFzIHdlbGwgYXMgdG8gdGhlCmNvcnJlc3BvbmRpbmcgbW9kZWxzIGluIHRoZSBbQVBJIGRvY3VlbWVudGF0aW9uXVtiYWRnZS11cmwtZG9jc10pOgoKKiBbYGFwaWBdKCNjb25maWd1cmluZy1vcGVuYXBpLXNwZWNpZmljYXRpb25zKSAvIFttb2RlbF1bZG9jcy1tb2RlbHMtYXBpXQoqIFtgZGJgXSgjY29uZmlndXJpbmctbW9uZ29kYikgLyBbbW9kZWxdW2RvY3MtbW9kZWxzLWRiXQoqIFtgZXhjZXB0aW9uc2BdKCNjb25maWd1cmluZy1leGNlcHRpb25zKSAvIFttb2RlbF1bZG9jcy1tb2RlbHMtZXhjZXB0aW9uc10KKiBbYGpvYnNgXSgjY29uZmlndXJpbmctYXN5bmNocm9ub3VzLXRhc2tzKSAvIFttb2RlbF1bZG9jcy1tb2RlbHMtam9ic10KKiBbYGxvZ2BdKCNjb25maWd1cmluZy1sb2dnaW5nKSAvIFttb2RlbF1bZG9jcy1tb2RlbHMtbG9nXQoqIFtgc2VjdXJpdHlgXSgjY29uZmlndXJpbmctc2VjdXJpdHkpIC8gW21vZGVsXVtkb2NzLW1vZGVscy1zZWN1cml0eV0KKiBbYHNlcnZlcmBdKCNjb25maWd1cmluZy10aGUtc2VydmVyKSAvIFttb2RlbF1bZG9jcy1tb2RlbHMtc2VydmVyXQoKKipfQW55IHZhbHVlcyBwYXNzZWQgdG8gcmVzZXJ2ZWQga2V5d29yZHMgYXJlIGF1dG9tYXRpY2FsbHkgdmFsaWRhdGVkXyoqLCBhbmQgYQpjb3JyZXNwb25kaW5nIGluZm9ybWF0aXZlIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuZXZlciBhIHZhbHVlIGRvZXMgbm90CmFkaGVyZSB0byB0aGUgY29ycmVzcG9uZGluZyBtb2RlbCBhcyBkZXNjcmliZWQgaW4gdGhlIFtBUEkKZG9jdW1lbnRhdGlvbl1bZG9jcy1tb2RlbHNdLiBJZiB5b3UgZG8gX25vdF8gd2FudCB0byBtYWtlIHVzZSBvZiBhIHNwZWNpZmljCkZPQ0EgZnVuY3Rpb25hbGl0eSwgc2ltcGx5IG9taXQgdGhlIGNvcnJlc3BvbmRpbmcgc2VjdGlvbi4KCiMjIyBDb25maWd1cmluZyBPcGVuQVBJIHNwZWNpZmljYXRpb25zCgpUaGUgYGFwaWAgc2VjdGlvbiBpcyB1c2VkIHRvIHNwZWNpZnkgYW55IFtPcGVuQVBJXVtyZXMtb3BlbmFwaV0gc3BlY2lmaWNhdGlvbnMKY29uc3VtZWQgYXMgcGFydCBvZiB5b3VyIGFwcGxpY2F0aW9uLiBFc3NlbnRpYWxseSwgRk9DQSBhZGRzIGEgd3JhcHBlciBhcm91bmQKW0Nvbm5leGlvbl1bcmVzLWNvbm5leGlvbl0sIHdoaWNoIHZhbGlkYXRlcyByZXF1ZXN0cy9yZXNwb25zZXMgYW5kIGNhbiBzZXJ2ZQp0aGUgc3BlY2lmaWNhdGlvbnMgYXMgd2VsbCBhcyBhIFtTd2FnZ2VyXVtyZXMtc3dhZ2dlcl0tYmFzZWQgdXNlciBpbnRlcmZhY2UgdG8KZXhwbG9yZSB0aGUgQVBJLiBGT0NBIHN1cHBvcnRzIG11bHRpcGxlIHNwZWNpZmljYXRpb24gZmlsZXMgKHZlcnNpb25zClN3YWdnZXIvT3BlbkFQSSAyLngsIE9wZW5BUEkgMy54IGFuZCBtaXhlZCkgYW5kIG11bHRpcGxlIGZyYWdtZW50cyB0aGVyZW9mLCBhbmQKaXQgYWRkcyBhZGRpdGlvbmFsIGZlYXR1cmVzIHRoYXQgYWxsb3cgZWFzeSBtb2RpZmljYXRpb24gb2Ygc3BlY2lmaWNhdGlvbnMgb24KdGhlIGZseS4gSW4gcGFydGljdWxhciwgbGlua3MgdG8gcm91dGVycyBhbmQgc2VjdXJpdHkgZGVmaW5pdGlvbnMgY2FuIGJlIGFkZGVkCnRvIGVhY2ggc3BlY2lmaWVkIGVuZHBvaW50LgoKX0V4YW1wbGU6XwoKYGBgeWFtbAphcGk6CiAgc3BlY3M6CiAgICAtIHBhdGg6CiAgICAgICAgLSBwYXRoL3RvL29wZW5hcGkvc3BlY3MueWFtbAogICAgICAgIC0gcGF0aC90by9vcGVuYXBpL2FkZGl0aW9ucy55YW1sCiAgICAgIGFkZF9vcGVyYXRpb25fZmllbGRzOgogICAgICAgIHgtb3BlbmFwaS1yb3V0ZXItY29udHJvbGxlcjogbXlhcGkuY29udHJvbGxlcnMKICAgICAgYWRkX3NlY3VyaXR5X2ZpZWxkczoKICAgICAgICB4LWJlYXJlckluZm9GdW5jOiBhcHAudmFsaWRhdGVfdG9rZW4KICAgICAgZGlzYWJsZV9hdXRoOiBGYWxzZQogICAgICBjb25uZXhpb246CiAgICAgICAgc3RyaWN0X3ZhbGlkYXRpb246IFRydWUKICAgICAgICB2YWxpZGF0ZV9yZXNwb25zZXM6IFRydWUKICAgICAgICBvcHRpb25zOgogICAgICAgICAgc3dhZ2dlcl91aTogVHJ1ZQogICAgICAgICAgc2VydmVfc3BlYzogVHJ1ZQogICAgLSBwYXRoOgogICAgICAgIC0gcGF0aC90by9vcGVuYXBpL290aGVyX3NwZWNzLnlhbWwKYGBgCgo+IEluIHRoaXMgZXhhbXBsZSwgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBsaXN0cyB0d28gc2VwYXJhdGUgc3BlY2lmaWNhdGlvbnMuCj4gVGhlIGZpcnN0IGlzIGEgY29tcG9zaXRlIG9uZSB0aGF0IEZPQ0Egd2lsbCBjb21waWxlIGZyb20gdHdvIGZpbGVzLAo+IGBwYXRoL3RvL29wZW5hcGkvc3BlY3MueWFtbGAgYW5kIGBwYXRoL3RvL29wZW5hcGkvYWRkaXRpb25zLnlhbWxgLiBJdCBjb21lcwo+IHdpdGggYSByYW5nZSBvZiBkaWZmZXJlbnQgZXhwbGljaXRseSBzcGVjaWZpZWQgcGFyYW1ldGVycyB0byBmdXJ0aGVyCj4gY3VzdG9taXplIHRoZSBzcGVjaWZpY2F0aW9uIGl0c2VsZiAoY2xhc3Nlcy9mdW5jdGlvbnMgaW1wbGVtZW50aW5nCj4gY29udHJvbGxlcnMgYW5kIHRva2VuIHZhbGlkYXRpb24gYXJlIGxpbmtlZCB0byBlYWNoIGVuZHBvaW50IHZpYQo+IGBhZGRfb3BlcmF0aW9uX2ZpZWxkc2A7IGB4LW9wZW5hcGktcm91dGVyLWNvbnRyb2xsZXJgIGFuZCBgeC1iZWFyZXJJbmZvRnVuY2AKPiBjYW4gYmUgdXNlZCB0byBsaW5rIGNvbnRyb2xsZXIgZnVuY3Rpb25zL2NsYXNzZXMgYW5kIGF1dGhvcml6YXRpb24gdmFsaWRhdGlvbgo+IGZ1bmN0aW9ucyB0byBlbmRwb2ludHMsIHJlc3BlY3RpdmVseS4gRnVydGhlcm1vcmUsIGEgZmxhZyB0byBkaXNhYmxlIHRoZSBuZWVkCj4gZm9yIHBhc3NpbmcgYXV0aG9yaXphdGlvbiB0b2tlbnMgYW5kIHNldmVyYWwgW0Nvbm5leGlvbl1bcmVzLWNvbm5leGlvbl0KPiBvcHRpb25zIGFyZSBleHBsaWNpdGx5IHNldCBmb3IgdGhpcyBzcGVjaWZpY2F0aW9uLiBJbiBjb250cmFzdCwgb25seSB0aGUgcGF0aAo+IHRvIGEgc2luZ2xlIGZpbGUgaXMgc3BlY2lmaWVkIGZvciB0aGUgc2Vjb25kIHNwZWNpZmljYXRpb24sIGltcGx5aW5nIGRlZmF1bHQKPiB2YWx1ZXMgZm9yIGFsbCBvdGhlciBvcHRpb25zLiAgCj4gIAo+IEZ1cnRoZXIgc3VwcG9ydCBmb3IgdmFsaWRhdGluZyBhdXRob3JpemF0aW9uIGNhbiBhbHNvIGJlIGFkZGVkIHRvCj4gc3BlY2lmaWNhdGlvbnMgdmlhIHRoZSBgYWRkX3NlY3VyaXR5X2ZpZWxkc2AgcGFyYW1ldGVyIHVuZGVyIGBzcGVjc2AgKG5vdAo+IHNob3duIGhlcmUpLiBDZi4gdGhlIFtBUEkgbW9kZWxdW2RvY3MtbW9kZWxzLWFwaV0gZm9yIHRoaXMgYW5kIG90aGVyIG9wdGlvbnMsCj4gYXMgd2VsbCBhcyBmdXJ0aGVyIGRldGFpbHMuCgojIyMgQ29uZmlndXJpbmcgTW9uZ29EQgoKRk9DQSBjYW4gcmVnaXN0ZXIgb25lIG9yIG1vcmUgW01vbmdvREJdW3Jlcy1tb25nby1kYl0gZGF0YWJhc2VzIGFuZC9vcgpjb2xsZWN0aW9ucyBmb3IgeW91LiBUbyB1c2UgdGhhdCBmdW5jdGlvbmFsaXR5LCBzaW1wbHkgaW5jbHVkZSB0aGUgdG9wLWxldmVsCmBkYmAga2V5d29yZCBzZWN0aW9uIGluIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlIGFuZCB0dW5lIGl0cyBiZWhhdmlvciB0aHJvdWdoCnRoZSBhdmFpbGFibGUgcGFyYW1ldGVycy4KCl9FeGFtcGxlOl8KCmBgYHlhbWwKZGI6CiAgaG9zdDogbW9uZ29kYgogIHBvcnQ6IDI3MDE3CiAgZGJzOgogICAgbXlEYjoKICAgICAgY29sbGVjdGlvbnM6CiAgICAgICAgbXlDb2xsZWN0aW9uOgogICAgICAgICAgaW5kZXhlczoKICAgICAgICAgICAgLSBrZXlzOgogICAgICAgICAgICAgICAgaWQ6IDEKICAgICAgICAgICAgICBvcHRpb25zOgogICAgICAgICAgICAgICAgJ3VuaXF1ZSc6IFRydWUKICAgICAgICBteVNlY29uZENvbGxlY3Rpb246CiAgICAgICAgICBpbmRleGVzOgogICAgICAgICAgICAtIGtleXM6CiAgICAgICAgICAgICAgICBvdGhlcl9pZDogMQogICAgbXlPdGhlckRiOgogICAgICBjb2xsZWN0aW9uczoKICAgICAgICBteVRoaXJkQ29sbGVjdGlvbjoKICAgICAgICAgIGluZGV4ZXM6CiAgICAgICAgICAgIC0ga2V5czoKICAgICAgICAgICAgICAgIHRoaXJkX2lkOiAxCmBgYAoKPiBJbiB0aGlzIGV4YW1wbGUsIHR3byBkYXRhYmFzZXMgKGBteURiYCBhbmQgYG15T3RoZXJEYmApIGFyZSBjb25maWd1cmVkLCB0aGUKPiBmb3JtZXIgd2l0aCB0d28gYW5kIHRoZSBsYXR0ZXIgd2l0aCBvbmUgY29sbGVjdGlvbiAoYG15Q29sbGVjdGlvbmAsCj4gYG15U2Vjb25kQ29sbGVjdGlvbmAgYW5kIGBteVRoaXJkQ29sbGVjdGlvbmAsIHJlc3BlY3RpdmVseSkuIEZPQ0Egd2lsbAo+IGF1dG9tYXRpY2FsbHkgcmVnaXN0ZXIgYW5kIGluaXRpYWxpemUgdGhlc2UgZGF0YWJhc2VzIGFuZCBjb2xsZWN0aW9ucyBmb3IgeW91Cj4gYW5kIGFkZCBjb252ZW5pZW50IGNsaWVudHMgdG8gdGhlIGFwcCBpbnN0YW5jZSAoYWNjZXNzaWJsZSBhcyBjaGlsZHJlbiBvZgo+IGBjdXJyZW50X2FwcC5jb25maWcuZm9jYWAgaW4gYW4gW2FwcGxpY2F0aW9uCj4gY29udGV4dF1bcmVzLWZsYXNrLWFwcC1jb250ZXh0XSkuIFRoZSBjb2xsZWN0aW9ucyB3b3VsZCBiZSBpbmRleGVkIGJ5IGtleXMKPiBgaWRgLCBgb3RoZXJfaWRgIGFuZCBgdGhpcmRfaWRgLCByZXNwZWN0aXZlbHkuIE91dCBvZiB0aGVzZSwgb25seSBgaWRgCj4gd2lsbCBiZSByZXF1aXJlZCB0byBiZSB1bmlxdWUuICAKPiAgCj4gQ2YuIHRoZSBbQVBJIG1vZGVsXVtkb2NzLW1vZGVscy1kYl0gZm9yIGZ1cnRoZXIgb3B0aW9ucyBhbmQgZGV0YWlscy4KCiMjIyBDb25maWd1cmluZyBleGNlcHRpb25zCgpGT0NBIHByb3ZpZGVzIGEgY29udmVuaWVudCwgY29uZmlndXJhYmxlIGV4Y2VwdGlvbiBoYW5kbGVyIGFuZCBhIHNpbXBsZSB3YXkKb2YgYWRkaW5nIG5ldyBleGNlcHRpb25zIHRvIGJlIHVzZWQgd2l0aCB0aGF0IGhhbmRsZXIuIFRvIHVzZSBpdCwgc3BlY2lmeSBhCnRvcC1sZXZlbCBgZXhjZXB0aW9uc2Agc2VjdGlvbiBpbiB0aGUgYXBwIGNvbmZpZ3VyYXRpb24gZmlsZS4KCl9FeGFtcGxlOl8KCmBgYHlhbWwKZXhjZXB0aW9uczoKICByZXF1aXJlZF9tZW1iZXJzOiBbWydtc2cnXSwgWydzdGF0dXMnXV0KICBzdGF0dXNfbWVtYmVyOiBbJ3N0YXR1cyddCiAgZXhjZXB0aW9uczogbXlfYXBwLmV4Y2VwdGlvbnMuZXhjZXB0aW9ucwogIGxvZ2dpbmc6IG9uZV9saW5lCmBgYAoKPiBUaGlzIGV4YW1wbGUgY29uZmlndXJhdGlvbiB3b3VsZCBhdHRhY2ggdGhlIGV4Y2VwdGlvbnMgZGVmaW5lZCBpbiB0aGUKPiBgbXlfYXBwLmV4Y2VwdGlvbnMuZXhjZXB0aW9uc2AgZGljdGlvbmFyeSB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIFRoZQo+IGV4Y2VwdGlvbiBoYW5kbGVyIGVuc3VyZXMgdGhhdCBldmVyeSBleGNlcHRpb24gaW4gdGhhdCBkaWN0aW9uYXJ5IGRlZmluZXMKPiBhdCBsZWFzdCBtZW1iZXJzIGBtc2dgIGFuZCBgc3RhdHVzYC4gT3V0IG9mIHRoZXNlLCBgc3RhdHVzYCB3aWxsIGJlIHVzZWQKPiB0byBpbmZvcm0gdGhlIHN0YXR1cyBjb2RlIGZvciB0aGUgZXJyb3IgcmVzcG9uc2UuIEV4Y2VwdGlvbnMgcHJvY2Vzc2VkIHZpYQo+IEZPQ0EncyBleGNlcHRpb24gaGFuZGxlciB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbG9nZ2VkLCBpZiByZXF1ZXN0ZWQuIEluIHRoaXMKPiBjYXNlLCB0aGUgaGFuZGxlciBpcyBjb25maWd1cmVkIHRvIGxvZyBhbGwgZXJyb3JzIHZlcmJvc2VseSAoaW5jbHVkaW5nIGFueQo+IHRyYWNlYmFjayBpbmZvcm1hdGlvbiwgaWYgYXBwbGljYWJsZSkgb24gYSBzaW5nbGUgbGluZSAob3RoZXIgcmVuZGVyaW5nCj4gb3B0aW9ucyBhcmUgYWxzbyBzdXBwb3J0ZWQpLgo+ICAKPiBZb3UgbWF5IGZ1cnRoZXIgY29uZmlndXJlIG9wdGlvbmFsIG1lbWJlcnMsIGEgbGlzdCBvZiBgcHVibGljIG1lbWJlcnNgICh0byBiZQo+IGluY2x1ZGVkIGluIGVycm9yIHJlc3BvbnNlcykgYW5kIGBwcml2YXRlIG1lbWJlcnNgIChvbmx5IHZpc2libGUgaW4gbG9ncykuCj4gQ2YuIHRoZSBbQVBJIG1vZGVsXVtkb2NzLW1vZGVscy1leGNlcHRpb25zXSBmb3IgZnVydGhlciBvcHRpb25zIGFuZCBkZXRhaWxzLgoKIyMjIENvbmZpZ3VyaW5nIGFzeW5jaHJvbm91cyB0YXNrcwoKRk9DQSBvZmZlcnMgbGltaXRlZCBzdXBwb3J0IGZvciBydW5uaW5nIGFzeW5jaHJvbm91cyB0YXNrcyB2aWEgdGhlCltSYWJiaXRNUV1bcmVzLXJhYmJpdG1xXSBicm9rZXIgYW5kIFtDZWxlcnldW3Jlcy1jZWxlcnldLiBUbyBtYWtlIHVzZSBvZiBpdCwKaW5jbHVkZSB0aGUgYGpvYnNgIHRvcC1sZXZlbCBzZWN0aW9uIGluIHRoZSBhcHAgY29uZmlndXJhdGlvbiBmaWxlLgoKX0V4YW1wbGU6XwoKYGBgeWFtbApqb2JzOgogIGhvc3Q6IHJhYmJpdG1xCiAgcG9ydDogNTY3MgogIGJhY2tlbmQ6ICdycGM6Ly8nCiAgaW5jbHVkZToKICAgIC0gbXlfYXBwLnRhc2tzLm15X3Rhc2tfMQogICAgLSBteV9hcHAudGFza3MubXlfdGFza18yCmBgYAoKPiBUaGlzIGNvbmZpZyBhdHRhY2hlcyB0aGUgYHJhYmJpdG1xYCBicm9rZXIgaG9zdCBydW5uaW5nIG9uIHBvcnQgYDU2NzJgIHRvCj4gRk9DQSBhbmQgcmVnaXN0ZXJzIHRoZSB0YXNrcyBmb3VuZCBpbiBtb2R1bGVzIGBteV90YXNrXzFgIGFuZCBgbXlfdGFza18yYC4gIAo+ICAKPiBDZi4gdGhlIFtBUEkgbW9kZWxdW2RvY3MtbW9kZWxzLWpvYnNdIGZvciBmdXJ0aGVyIGRldGFpbHMuICAKClRoZSBgZm9jYS5Gb2NhYCBjbGFzcyBwcm92aWRlcyBhIG1ldGhvZCBgLmNyZWF0ZV9jZWxlcnlfYXBwKClgIHRoYXQgeW91IGNhbgp1c2UgaW4geW91ciBDZWxlcnkgd29ya2VyIGVudHJ5IHBvaW50IHRvIGNyYXRlIGEgQ2VsZXJ5IGFwcCwgbGlrZSBzbzoKCmBgYHB5CmZyb20gZm9jYSBpbXBvcnQgRm9jYQoKZm9jYSA9IEZvY2EoY29uZmlnPSJteV9hcHAvY29uZmlnLnlhbWwiKQpteV9jZWxlcnlfYXBwID0gZm9jYS5jcmVhdGVfY2VsZXJ5X2FwcCgpCmBgYAoKIyMjIENvbmZpZ3VyaW5nIGxvZ2dpbmcKCkZPQ0EgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGEgWUFNTC1iYXNlZCBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gdG8gY29udHJvbCB5b3VyCmFwcGxpY2F0aW9uJ3MgbG9nZ2luZyBiZWhhdmlvciBpbiBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhIHNpbmdsZSBjb25maWd1cmF0aW9uCmZpbGUgZm9yIGV2ZXJ5IGFwcGxpY2F0aW9uLiBUbyB1c2UgaXQsIHNpbXBseSBhZGQgYSBgbG9nYCB0b3AtbGV2ZWwgc2VjdGlvbiBpbgp5b3VyIGFwcCBjb25maWd1cmF0aW9uIGZpbGUuCgpfRXhhbXBsZTpfCgpgYGB5YW1sCmxvZzoKICB2ZXJzaW9uOiAxCiAgZGlzYWJsZV9leGlzdGluZ19sb2dnZXJzOiBGYWxzZQogIGZvcm1hdHRlcnM6CiAgICBzdGFuZGFyZDoKICAgICAgY2xhc3M6IGxvZ2dpbmcuRm9ybWF0dGVyCiAgICAgIHN0eWxlOiAieyIKICAgICAgZm9ybWF0OiAiW3thc2N0aW1lfToge2xldmVsbmFtZTo8OH1dIHttZXNzYWdlfSBbe25hbWV9XSIKICBoYW5kbGVyczoKICAgIGNvbnNvbGU6CiAgICAgIGNsYXNzOiBsb2dnaW5nLlN0cmVhbUhhbmRsZXIKICAgICAgbGV2ZWw6IDIwCiAgICAgIGZvcm1hdHRlcjogc3RhbmRhcmQKICAgICAgc3RyZWFtOiBleHQ6Ly9zeXMuc3RkZXJyCiAgcm9vdDoKICAgIGxldmVsOiAxMAogICAgaGFuZGxlcnM6IFtjb25zb2xlXQpgYGAKCj4gVGhlIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBpcyBzaW1wbHkgcGFzc2VkIG9uIHRvIFB5dGhvbidzIGBsb2dnaW5nJyBwYWNrYWdlLAo+IGFuZCBzbyBpdCBoYXMgdG8gY29uZm9ybSB3aXRoIHRoYXQgW3BhY2thZ2Uncwo+IHJlcXVpcmVtZW50c11bcmVzLXB5dGhvbi1sb2dnaW5nXS4gU2VlIFtoZXJlXVtyZXMtcHl0aG9uLWxvZ2dpbmctaG93LXRvXSBmb3IKPiBtb3JlIGluZm8uCgojIyMgQ29uZmlndXJpbmcgc2VjdXJpdHkKCkZPQ0Egb2ZmZXJzIHNvbWUgY29udmVuaWVuY2UgZnVuY3Rpb25hbGl0aWVzIGZvciBzZWN1cmluZyB5b3VyIGFwcC4KU3BlY2lmaWNhbGx5LCBpdCBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSB0aGUgdmFsaWRhdGlvbiBvZiBbSlNPTiBXZWIKVG9rZW4gKEpXVCldW3Jlcy1qd3RdLWJhc2VkIGF1dGhvcml6YXRpb24sIGEgW0Nhc2Jpbl1bcmVzLWNhc2Jpbl0tYmFzZWQgYWNjZXNzCmNvbnRyb2wgbW9kZWwsIGFuZCB0aGUgdXNlIG9mIFtjcm9zcy1vcmlnaW4gcmVzb3VyY2Ugc2hhcmluZyAoQ09SUyldW3Jlcy1jb3JzXS4KVG8gbWFrZSB1c2Ugb2YgdGhlbSwgaW5jbHVkZSB0aGUgYHNlY3VyaXR5YCB0b3AtbGV2ZWwgc2VjdGlvbiBpbiB5b3VyIGFwcApjb25maWd1cmF0aW9uLCBhcyB3ZWxsIGFzIHRoZSBkZXNpcmVkIHN1YmxldmVsIHNlY3Rpb24ocyk6CgpgYGB5YW1sCnNlY3VyaXR5OgogIGF1dGg6CiAgICBhbGdvcml0aG1zOgogICAgICAtIFJTMjU2CiAgICBhbGxvd19leHBpcmVkOiBGYWxzZQogICAgdmFsaWRhdGlvbl9tZXRob2RzOgogICAgICAtIHVzZXJpbmZvCiAgICAgIC0gcHVibGljX2tleQogICAgdmFsaWRhdGlvbl9jaGVja3M6IGFueQogIGFjY2Vzc19jb250cm9sOgogICAgYXBpX3NwZWNzOiAncGF0aC90by95b3VyL2FjY2Vzcy9jb250cm9sL3NwZWNzJwogICAgYXBpX2NvbnRyb2xsZXJzOiAncGF0aC90by95b3VyL2FjY2Vzcy9jb250cm9sL3NwZWMvY29udHJvbGxlcnMnCiAgICBhcGlfcm91dGU6ICcvcm91dGUvdG8vYWNjZXNzX2NvbnRyb2xfYXBpJwogICAgZGJfbmFtZTogYWNjZXNzX2NvbnRyb2xfZGJfbmFtZQogICAgY29sbGVjdGlvbl9uYW1lOiBhY2Nlc3NfY29udHJvbF9jb2xsZWN0aW9uX25hbWUKICAgIG1vZGVsOiBhY2Nlc3NfY29udHJvbF9tb2RlbF9kZWZpbml0aW9uCiAgY29yczoKICAgIGVuYWJsZWQ6IFRydWUKYGBgCgo+IEluIHRoaXMgZXhhbXBsZSwgdGhlIHZhbGlkYXRpb24gb2YgSldUIEJlYXJlciB0b2tlbnMgd291bGQgbWFrZSB1c2Ugb2YgdGhlCj4gYFJTMjU2YCBhbGdvcml0aG0sIHdvdWxkIG5vdCBhbGxvdyBleHBpcmVkIHRva2VucyBhbmQgd291bGQgZ3JhbnQgYWNjZXNzIHRvCj4gYSBwcm90ZWN0ZWQgZW5kcG9pbnQgaWYgYGFueWAgb2YgdGhlIHR3byBsaXN0ZWQgdmFsaWRhdGlvbiBtZXRob2RzICh2aWEgdGhlCj4gaWRlbnRpdHkgcHJvdmlkZXIncyBgL3VzZXJpbmZvYCBlbmRwb2ludCBvciBpdHMgSlNPTiBXZWIgS2V5IChKV0spIHB1YmxpYwo+IGtleS4gRnVydGhlcm1vcmUsIHRoZSBhcHBsaWNhdGlvbiBjcmVhdGVkIHdpdGggdGhpcyBjb25maWcgd291bGQgcHJvdmlkZQo+IGFuIGFjY2VzcyBjb250cm9sIG1vZGVsIGBtb2RlbGAuIENvcnJlc3BvbmRpbmcgcGVybWlzc2lvbnMgY291bGQgYmUgYWNjZXNzZWQKPiBhbmQgYWx0ZXJlZCBieSBhIHVzZXIgd2l0aCBhZG1pbiBwZXJtaXNzaW9ucyB2aWEgdGhlIGRlZGljYXRlZCBlbmRwb2ludHMKPiBkZWZpbmVkIGluIHRoZSBgYXBpX3NwZWNzYCwgb3BlcmF0aW9uYWxpemVkIGJ5IHRoZSBjb250cm9sbGVycyBpbgo+IGBhcGlfY29udHJvbGxlcnNgIGFuZCBob3N0ZWQgYXQgYGFwaV9yb3V0ZWAuIFBlcm1pc3Npb25zIHdpbGwgYmUgc3RvcmVkIGluCj4gY29sbGVjdGlvbiBgY29sbGVjdGlvbl9uYW1lYCBvZiBhIGRlZGljYXRlZCBNb25nb0RCIGRhdGFiYXNlIGBkYl9uYW1lYC4KPiBGaW5hbGx5LCBDT1JTIHdvdWxkIGJlIGVuYWJsZWQgZm9yIHRoaXMgYXBwbGljYXRpb24uCj4gIAo+IENmLiB0aGUgW0FQSSBtb2RlbF1bZG9jcy1tb2RlbHMtc2VjdXJpdHldIGZvciBmdXJ0aGVyIG9wdGlvbnMgYW5kIGRldGFpbHMuCgoqKk5vdGU6KiogQSBkZXRhaWxlZCBleHBsYWluYXRpb24gb2YgdGhlIGFjY2VzcyBjb250cm9sIGltcGxlbWVudGF0aW9uIGNhbiBiZQpmb3VuZCBbaGVyZV1bZG9jcy1hY2Nlc3MtY29udHJvbF0uCgojIyMgQ29uZmlndXJpbmcgdGhlIHNlcnZlcgoKRk9DQSBhbGxvd3MgeW91IHRvIHBhc3MgY2VydGFpbiBiYXNpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8geW91ciBGbGFzawphcHBsaWNhdGlvbi4gVG8gbW9kaWZ5IGRlZmF1bHRzLCBpbmNsdWRlIHRoZSB0b3AtbGV2ZWwgYHNlcnZlcmAga2V5d29yZCBzZWN0aW9uCmluIHlvdXIgYXBwIGNvbmZpZ3VyYXRpb24gZmlsZToKCmBgYHlhbWwKc2VydmVyOgogIGhvc3Q6ICcwLjAuMC4wJwogIHBvcnQ6IDgwODAKICBkZWJ1ZzogVHJ1ZQogIGVudmlyb25tZW50OiBkZXZlbG9wbWVudAogIHVzZV9yZWxvYWRlcjogRmFsc2UKYGBgCgo+IFRoaXMgY29uZmlnIHdvdWxkIGNyZWF0ZSBhbiBhcHBsaWNhdGlvbiBzZXJ2ZXIgaG9zdGluZyBhIEZsYXNrIGBkZXZlbG9wbWVudGAKPiBlbnZpcm9ubWVudCBhdCBgMC4wLjAuMDo4MDgwYCwgRmxhc2sncyBkZWJ1Z2dlciBzd2l0Y2hlZCBvbiwgYW5kIGl0cyByZWxvYWRlcgo+IG9mZi4KPiAgCj4gQ2YuIHRoZSBbQVBJIG1vZGVsXVtkb2NzLW1vZGVscy1zZXJ2ZXJdIGZvciBmdXJ0aGVyIG9wdGlvbnMgYW5kIGRldGFpbHMuCgojIyMgQ3VzdG9tIGNvbmZpZ3VyYXRpb24KCklmIHlvdSB3b3VsZCBsaWtlIEZPQ0EgdG8gdmFsaWRhdGUgeW91ciBjdXN0b20gYXBwIGNvbmZpZ3VyYXRpb24gKGUuZy4sCnBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGluZGl2aWR1YWwgY29udHJvbGxlcnMsIHlvdSBjYW4gcHJvdmlkZSBhIHBhdGgsIGluCmRvdCBub3RhdGlvbiwgdG8gYSBbYHB5ZGFudGljYF1bcmVzLXB5ZGFudGljXSBgQmFzZU1vZGVsYC1kZXJpdmVkIG1vZGVsLiBGT0NBCnRoZW4gdHJpZXMgdG8gaW5zdGFudGlhdGUgdGhlIG1vZGVsIGNsYXNzIHdpdGggYW55IGN1c3RvbSBwYXJhbWV0ZXJzIGxpc3RlZAp1bmRlciBrZXl3b3JkIHNlY3Rpb24gYGN1c3RvbWAuCgpTdXBwb3NlIHlvdSBoYXZlIGEgbW9kZWwgbGlrZSB0aGUgZm9sbG93aW5nIGRlZmluZWQgaW4gbW9kdWxlCmBteV9hcHAuY3VzdG9tX2NvbmZpZ2A6CgpgYGBweQpmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwKCgpjbGFzcyBDdXN0b21Db25maWcoQmFzZU1vZGVsKToKICAgIG15X3BhcmFtOiBpbnQgPSA1CmBgYAoKQW5kIHlvdSBoYXZlLCBpbiB5b3VyIGFwcCBjb25maWd1cmF0aW9uIGZpbGUgYG15X2FwcC9jb25maWcueWFtbGAsIHRoZQpmb2xsb3dpbmcgc2VjdGlvbjoKCmBgYGNvbnNvbGUKY3VzdG9tOgogIG15X3BhcmFtOiAxMApgYGAKCllvdSBjYW4gdGhlbiBoYXZlIEZPQ0EgdmFsaWRhdGUgeW91ciBjdXN0b20gY29uZmlndXJhdGlvbiBhZ2FpbnN0IHRoZQpgQ3VzdG9tQ29uZmlnYCBjbGFzcyBieSBpbmNsdWRpbmcgaXQgaW4gdGhlIGBGb2NhKClgIGNhbGwgbGlrZSBzbzoKCmBgYHB5CmZyb20gZm9jYSBpbXBvcnQgRm9jYQoKZm9jYSA9IEZvY2EoCiAgY29uZmlnPSJteV9hcHAvY29uZmlnLnlhbWwiLAogIGN1c3RvbV9jb25maWdfbW9kZWw9Im15X2FwcC5jdXN0b21fY29uZmlnLkN1c3RvbUNvbmZpZyIsCikKbXlfYXBwID0gZm9jYS5jcmVhdGVfYXBwKCkKYGBgCgpXZSByZWNvbW1lbmQgdGhhdCwgd2hlbiBkZWZpbmluZyB5b3VyIGBweWRhbnRpY2AgbW9kZWwsIHRoYXQgeW91IHN1cHBseQpkZWZhdWx0IHZhbHVlcyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gdGhpcyB3YXksIHRoZSBjdXN0b20gY29uZmlndXJhdGlvbgpwYXJhbWV0ZXJzIHdpbGwgYWx3YXlzIGJlIGF2YWlsYWJsZSwgZXZlbiBpZiBub3QgZXhwbGljaXRseSBsaXN0ZWQgaW4gdGhlIGFwcApjb25maWd1cmF0aW9uIChsaWtlIHdpdGggdGhlIEZPQ0Etc3BlY2lmaWMgcGFyYW1ldGVycykuCgo+IE5vdGUgdGhhdCB0aGVyZSBpcyB0b29saW5nIGF2YWlsYWJsZSB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGBweWRhbnRpY2AKPiBtb2RlbHMgZnJvbSBkaWZmZXJlbnQgZmlsZSBmb3JtYXRzIGxpa2UgSlNPTiBTY2hlbWEgZXRjLiBTZWUgaGVyZSBmb3IgdGhlCj4gW2RhdGFtb2RlbC1jb2RlLWdlbmVyYXRvcl1bcmVzLWRhdGFtb2RlbC1jb2RlLWdlbmVyYXRvcl0gcHJvamVjdC4KCkFwYXJ0IGZyb20gdGhlIHJlc2VydmVkIGtleXdvcmQgc2VjdGlvbnMgbGlzdGVkIGFib3ZlLCB5b3UgYXJlIGZyZWUgdG8gaW5jbHVkZQphbnkgb3RoZXIgc2VjdGlvbnMgYW5kIHBhcmFtZXRlcnMgaW4geW91ciBhcHAgY29uZmlndXJhdGlvbiBmaWxlLiBGT0NBIHdpbGwKc2ltcGx5IGF0dGFjaCB0aGVzZSB0byB5b3VyIGFwcGxpY2F0aW9uIGluc3RhbmNlIGFzIGRlc2NyaWJlZApbYWJvdmVdKCNjb25maWd1cmF0aW9uKSBhbmQgc2hvd24gW2JlbG93XSgjYWNjZXNzaW5nLWNvbmZpZ3VyYXRpb24tcGFyYW1ldGVycykuCk5vdGUsIGhvd2V2ZXIsIHRoYXQgYW55IHN1Y2ggcGFyYW1ldGVycyBuZWVkIHRvIGJlIF9tYW51YWxseV8gdmFsaWRhdGVkLiBUaGUKc2FtZSBpcyB0cnVlIGlmIHlvdSBpbmNsdWRlIGEgYGN1c3RvbWAgc2VjdGlvbiBidXQgZG8gX25vdF8gcHJvdmlkZSBhCnZhbGlkYXRpb24gbW9kZWwgY2xhc3MgdmlhIHRoZSBgY3VzdG9tX2NvbmZpZ19tb2RlbGAgcGFyYW1ldGVyIHdoZW4KaW5zdGFudGlhdGluZyBgRm9jYWAuCgpfRXhhbXBsZTpfCgpgYGB5YW1sCm15X2N1c3RvbV9wYXJhbTogJ3NvbWVfdmFsdWUnCgpteV9jdXN0b21fcGFyYW1fc2VjdGlvbjoKICBhbm90aGVyX2N1c3RvbV9wYXJhbTogMwogIG15X2N1c3RvbV9saXN0X3BhcmFtOgogICAgLSAxCiAgICAtIDIKICAgIC0gMwpgYGAKCiMjIyBBY2Nlc3NpbmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCgpPbmNlIHRoZSBhcHBsaWNhdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGBmb2NhKClgLCBvbmUgY2FuIGVhc2lseSBhY2Nlc3MgYW55CmNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmcm9tIHdpdGhpbiB0aGUgW2FwcGxpY2F0aW9uCmNvbnRleHRdW3Jlcy1mbGFzay1hcHAtY29udGV4dF0gdGhyb3VnaCBgY3VycmVudF9hcHAuY29uZmlnLmZvY2EgbGlrZSBzbzoKCmBgYHB5dGhvbgpmcm9tIGZsYXNrIGltcG9ydCBjdXJyZW50X2FwcAoKYXBwX2NvbmZpZyA9IGN1cnJlbnRfYXBwLmNvbmZpZy5mb2NhCgpkYiA9IGFwcF9jb25maWcuZGIKYXBpID0gYXBwX2NvbmZpZy5hcGkKc2VydmVyID0gYXBwX2NvbmZpZy5zZXJ2ZXIKZXhjZXB0aW9ucyA9IGFwcF9jb25maWcuZXhjZXB0aW9ucwpzZWN1cml0eSA9IGFwcF9jb25maWcuc2VjdXJpdHkKam9icyA9IGFwcF9jb25maWcuam9icwpsb2cgPSBhcHBfY29uZmlnLmxvZwphcHBfc3BlY2lmaWNfcGFyYW0gPSBjdXJyZW50X2FwcC5jb25maWdbJ2FwcF9zcGVjaWZpY19wYXJhbSddCmBgYAoKX091dHNpZGUgb2YgdGhlIGFwcGxpY2F0aW9uIGNvbnRleHRfLCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZQp2aWEgYGFwcC5jb25maWcuZm9jYWAgaW4gYSBzaW1pbGFyIHdheS4KCiMjIyBNb3JlIGV4YW1wbGVzCgpBcGFydCBmcm9tIHRoZSBbYW5ub3RhdGVkIHRlbXBsYXRlXVtjb25maWctdGVtcGxhdGVdLCB5b3UgY2FuIGFsc28gY2hlY2sKb3V0IHRoZSBbY29uZmlndXJhdGlvbiBmaWxlXVtjb25maWctcGV0c3RvcmVdIG9mIHRoZSBbUGV0c3RvcmUgYXBwXVtleGFtcGxlXQpmb3IgYW5vdGhlciBleGFtcGxlLgoKIVtIaW50XVtpbWctaGludF0gXyoqT3Igd2h5IG5vdCBleHBsb3JlIFthcHBzIHRoYXQgYWxyZWFkeSB1c2UKRk9DQV1bcmVzLXVzaW5nLWZvY2FdPyoqXwoKIyMgVXRpbGl0aWVzCgpGT0NBIHByb3ZpZGVzIHNvbWUgZnVuY3Rpb25zIHRoYXQgbWF5IGJlIHVzZWZ1bCBmb3Igc2V2ZXJhbCBhcHBsaWNhdGlvbnMuClNpbXBseSBpbXBvcnQgdGhlbSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlbS4KCiMjIyBEYXRhYmFzZSB1dGlsaXRpZXMKCkZPQ0EgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBnZW5lcmFsLXB1cnBvc2UgTW9uZ29EQiBjb250cm9sbGVyczoKCiogRmV0Y2ggbGF0ZXN0IG9iamVjdCBnaXZlbiB0aGUgZGIgYGNvbGxlY3Rpb25gOgoKYGBgcHl0aG9uCmZyb20gZm9jYS51dGlscy5kYiBpbXBvcnQgZmluZF9vbmVfbGF0ZXN0CgpsYXRlc3Rfb2JqZWN0ID0gZmluZF9vbmVfbGF0ZXN0KCJ5b3VyX2RiX2NvbGxlY3Rpb25faW5zdGFuY2UiKQpgYGAKCiogRmV0Y2ggbGF0ZXN0IG9iamVjdCBpZGVudGlmaWVyIChgaWRgKSBnaXZlbiB0aGUgZGIgYGNvbGxlY3Rpb25gOgoKYGBgcHl0aG9uCmZyb20gZm9jYS51dGlscy5kYiBpbXBvcnQgZmluZF9pZF9sYXRlc3QKCmxhdGVzdF9vYmplY3RfaWQgPSBmaW5kX2lkX2xhdGVzdCgieW91cl9kYl9jb2xsZWN0aW9uX2luc3RhbmNlIikKYGBgCgojIyMgTG9nZ2luZyB1dGlsaXRpZXMKCkZPQ0EgcHJvdmlkZXMgYSBkZWNvcmF0b3IgdGhhdCBjYW4gYmUgdXNlZCBvbiBhbnkgcm91dGUgdG8gYXV0b21hdGljYWxseSBsb2cKYW55IHJlcXVlc3RzIGFuZC9vciByZXNwb25zZXMgcGFzc2luZyB0aHJvdWdoIHRoYXQgcm91dGU6CgpgYGBweXRob24KZnJvbSBmb2NhLnV0aWxzLmxvZ2dpbmcgaW1wb3J0IGxvZ190cmFmZmljCgpAbG9nX3RyYWZmaWMobG9nX3JlcXVlc3Q9VHJ1ZSwgbG9nX3Jlc3BvbnNlPVRydWUsIGxvZ19sZXZlbD0yMCkKZGVmIHlvdXJfY29udHJvbGxlcigpOgogICAgcGFzcwpgYGAKCj4gVGhlIGFib3ZlIGRlY29yYXRlciB3aWxsIGxvZyBib3RoIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgd2l0aCB0aGUgc3BlY2lmaWVkCj4gbG9nZ2luZyBsZXZlbCAoYDIwYCwgb3IgYElORk9gKS4KCiMjIyBNaXNjZWxsYW5lb3VzIHV0aWxpdGllcwoKKiBHZW5lcmF0ZSBhIHJhbmRvbSBvYmplY3QgZnJvbSBhIGdpdmVuIGNoYXJhY3RlciBzZXQ6CgpgYGBweXRob24KaW1wb3J0IHN0cmluZwoKZnJvbSBmb2NhLnV0aWxzLm1pc2MgaW1wb3J0IGdlbmVyYXRlX2lkCgpvYmpfaWQgPSBnZW5lcmF0ZV9pZChjaGFyc2V0PXN0cmluZy5kaWdpdHMsIGxlbmd0aD02KQpgYGAKCj4gVGhlIGFib3ZlIGZ1bmN0aW9uIHByb2Nlc3NlcyBhbmQgcmV0dXJucyBhIHJhbmRvbSBgb2JqX2lkYCBvZiBsZW5ndGggYDZgCj4gY29uc2lzdGluZyBvZiBvbmx5IGRpZ2l0cyAoYHN0cmluZy5kaWdpdHNgKS4KCiMjIyBBY2Nlc3MgQ29udHJvbCB1dGlsaXRpZXMKCkZPQ0EgcHJvdmlkZXMgYSBkZWNvcmF0b3IgdGhhdCBjYW4gYmUgdXNlZCBvbiBhbnkgcm91dGUgdG8gYXV0b21hdGljYWxseQp2YWxpZGF0ZSByZXF1ZXN0IG9uIHRoZSBiYXNpcyBvZiBwZXJtaXNzaW9uIHJ1bGVzLgoKYGBgcHl0aG9uCmZyb20gZm9jYS5zZWN1cml0eS5hY2Nlc3NfY29udHJvbC5yZWdpc3Rlcl9hY2Nlc3NfY29udHJvbCBpbXBvcnQgKAogICAgY2hlY2tfcGVybWlzc2lvbnMKKQoKQGNoZWNrX3Blcm1pc3Npb25zCmRlZiB5b3VyX2NvbnRyb2xsZXIoKToKICAgIHBhc3MKYGBgCgojIyBDb250cmlidXRpbmcKClRoaXMgcHJvamVjdCBpcyBhIGNvbW11bml0eSBlZmZvcnQgYW5kIGxpdmVzIG9mZiB5b3VyIGNvbnRyaWJ1dGlvbnMsIGJlIGl0IGluCnRoZSBmb3JtIG9mIGJ1ZyByZXBvcnRzLCBmZWF0dXJlIHJlcXVlc3RzLCBkaXNjdXNzaW9ucywgb3IgZml4ZXMgYW5kIG90aGVyIGNvZGUKY2hhbmdlcy4gUGxlYXNlIHJlZmVyIHRvIG91ciBvcmdhbml6YXRpb24ncyBbY29udHJpYnV0aW5nCmd1aWRlbGluZXNdW3Jlcy1lbGl4aXItY2xvdWQtY29udHJpYnV0aW5nXSBpZiB5b3UgYXJlIGludGVyZXN0ZWQgdG8gY29udHJpYnV0ZS4KUGxlYXNlIG1pbmQgdGhlIFtjb2RlIG9mIGNvbmR1Y3RdW3Jlcy1lbGl4aXItY2xvdWQtY29jXSBmb3IgYWxsIGludGVyYWN0aW9ucwp3aXRoIHRoZSBjb21tdW5pdHkuCgojIyBWZXJzaW9uaW5nCgpUaGUgcHJvamVjdCBhZG9wdHMgW3NlbWFudGljIHZlcnNpb25pbmddW3Jlcy1zZW12ZXJdLiBDdXJyZW50bHkgdGhlIHNlcnZpY2UKaXMgaW4gYmV0YSBzdGFnZSwgc28gdGhlIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgZnVydGhlciBub3RpY2UuCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgY292ZXJlZCBieSB0aGUgW0FwYWNoZSBMaWNlbnNlIDIuMF1bbGljZW5zZS1hcGFjaGVdIGFsc28KW3NoaXBwZWQgd2l0aCB0aGlzIHJlcG9zaXRvcnldW2xpY2Vuc2VdLgoKIyMgQ29udGFjdAoKVGhlIHByb2plY3QgaXMgYSBjb2xsYWJvcmF0aXZlIGVmZm9ydCB1bmRlciB0aGUgdW1icmVsbGEgb2YgW0VMSVhJUiBDbG91ZCAmCkFBSV1bb3JnLWVsaXhpci1jbG91ZF0uIEZvbGxvdyB0aGUgbGluayB0byBnZXQgaW4gdG91Y2ggd2l0aCB1cyB2aWEgY2hhdCBvcgplbWFpbC4gUGxlYXNlIG1lbnRpb24gdGhlIG5hbWUgb2YgdGhpcyBzZXJ2aWNlIGZvciBhbnkgaW5xdWlyeSwgcHJvcG9zYWwsCnF1ZXN0aW9uIGV0Yy4KCiFbTG9nb19iYW5uZXJdW2ltZy1sb2dvLWJhbm5lcl0KCltiYWRnZS1idWlsZC1zdGF0dXNdOiA8aHR0cHM6Ly9naXRodWIuY29tL2VsaXhpci1jbG91ZC1hYWkvZm9jYS9hY3Rpb25zL3dvcmtmbG93cy9jaGVja3MueW1sL2JhZGdlLnN2Zz4KW2JhZGdlLWNvdmVyYWdlXTogPGh0dHBzOi8vY29kZWNvdi5pby9naC9lbGl4aXItY2xvdWQtYWFpL2ZvY2EvYnJhbmNoL2Rldi9ncmFwaC9iYWRnZS5zdmc/YnJhbmNoPWRldj4KW2JhZGdlLWRvY3NdOiA8aHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvZm9jYS9iYWRnZS8+CltiYWRnZS1naXRodWItdGFnXTogPGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvdGFnL2VsaXhpci1jbG91ZC1hYWkvZm9jYT9jb2xvcj1DMzlCRDM+CltiYWRnZS1saWNlbnNlXTogPGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1BcGFjaGUlMjAyLjAtYmx1ZS5zdmc+CltiYWRnZS1weXBpXTogPGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L2ZvY2Euc3ZnP3N0eWxlPWZsYXQmY29sb3I9QzM5QkQzPgpbYmFkZ2UtdXJsLWJ1aWxkLXN0YXR1c106IDxodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWNsb3VkLWFhaS9mb2NhL2FjdGlvbnMvd29ya2Zsb3dzL2NoZWNrcy55bWw+CltiYWRnZS11cmwtY292ZXJhZ2VdOiA8aHR0cHM6Ly9jb2RlY292LmlvL2doL2VsaXhpci1jbG91ZC1hYWkvZm9jYT9icmFuY2g9ZGV2PgpbYmFkZ2UtdXJsLWRvY3NdOiA8aHR0cHM6Ly9mb2NhLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8+CltiYWRnZS11cmwtZ2l0aHViLXRhZ106IDxodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWNsb3VkLWFhaS9mb2NhL3JlbGVhc2VzPgpbYmFkZ2UtdXJsLWxpY2Vuc2VdOiA8aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPgpbYmFkZ2UtdXJsLXB5cGldOiA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9mb2NhPgpbY29uZmlnLXRlbXBsYXRlXTogdGVtcGxhdGVzL2NvbmZpZy55YW1sCltjb25maWctcGV0c3RvcmVdOiBleGFtcGxlcy9wZXRzdG9yZS9jb25maWcueWFtbApbZG9jcy1hY2Nlc3MtY29udHJvbF06IGRvY3MvYWNjZXNzX2NvbnRyb2wvUkVBRE1FLm1kCltkb2NzLW1vZGVsc106IDxodHRwczovL2ZvY2EucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L21vZHVsZXMvZm9jYS5tb2RlbHMuaHRtbD4KW2RvY3MtbW9kZWxzLWFwaV06IDxodHRwczovL2ZvY2EucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L21vZHVsZXMvZm9jYS5tb2RlbHMuaHRtbCNmb2NhLm1vZGVscy5jb25maWcuQVBJQ29uZmlnPgpbZG9jcy1tb2RlbHMtZGJdOiA8aHR0cHM6Ly9mb2NhLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9tb2R1bGVzL2ZvY2EubW9kZWxzLmh0bWwjZm9jYS5tb2RlbHMuY29uZmlnLkRCQ29uZmlnPgpbZG9jcy1tb2RlbHMtZXhjZXB0aW9uc106IDxodHRwczovL2ZvY2EucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L21vZHVsZXMvZm9jYS5tb2RlbHMuaHRtbCNmb2NhLm1vZGVscy5jb25maWcuRXhjZXB0aW9uQ29uZmlnPgpbZG9jcy1tb2RlbHMtam9ic106IDxodHRwczovL2ZvY2EucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L21vZHVsZXMvZm9jYS5tb2RlbHMuaHRtbCNmb2NhLm1vZGVscy5jb25maWcuSm9ic0NvbmZpZz4KW2RvY3MtbW9kZWxzLWxvZ106IDxodHRwczovL2ZvY2EucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L21vZHVsZXMvZm9jYS5tb2RlbHMuaHRtbCNmb2NhLm1vZGVscy5jb25maWcuTG9nQ29uZmlnPgpbZG9jcy1tb2RlbHMtc2VjdXJpdHldOiA8aHR0cHM6Ly9mb2NhLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9tb2R1bGVzL2ZvY2EubW9kZWxzLmh0bWwjZm9jYS5tb2RlbHMuY29uZmlnLlNlY3VyaXR5Q29uZmlnPgpbZG9jcy1tb2RlbHMtc2VydmVyXTogPGh0dHBzOi8vZm9jYS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvbW9kdWxlcy9mb2NhLm1vZGVscy5odG1sI2ZvY2EubW9kZWxzLmNvbmZpZy5TZXJ2ZXJDb25maWc+CltleGFtcGxlXTogZXhhbXBsZXMvcGV0c3RvcmUvUkVBRE1FLm1kCltmb2NhLWxvZ29dOiBpbWFnZXMvZm9jYV9sb2dvXzE5MnB4LnBuZwpbaW1nLWhpbnRdOiBpbWFnZXMvaGludC5zdmcKW2ltZy1sb2dvLWJhbm5lcl06IGltYWdlcy9sb2dvLWJhbm5lci5zdmcKW2xpY2Vuc2VdOiBMSUNFTlNFCltsaWNlbnNlLWFwYWNoZV06IDxodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPgpbb3JnLWVsaXhpci1jbG91ZF06IDxodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWNsb3VkLWFhaS9lbGl4aXItY2xvdWQtYWFpPgpbcmVzLWNhc2Jpbl06IDxodHRwczovL2Nhc2Jpbi5vcmcvPgpbcmVzLWNlbGVyeV06IDxodHRwOi8vZG9jcy5jZWxlcnlwcm9qZWN0Lm9yZy8+CltyZXMtY29ubmV4aW9uXTogPGh0dHBzOi8vZ2l0aHViLmNvbS96YWxhbmRvL2Nvbm5leGlvbj4KW3Jlcy1jb3JzXTogPGh0dHBzOi8vZmxhc2stY29ycy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvPgpbcmVzLWVsaXhpci1jbG91ZC1jb2NdOiA8aHR0cHM6Ly9naXRodWIuY29tL2VsaXhpci1jbG91ZC1hYWkvZWxpeGlyLWNsb3VkLWFhaS9ibG9iL2Rldi9DT0RFX09GX0NPTkRVQ1QubWQ+CltyZXMtZWxpeGlyLWNsb3VkLWNvbnRyaWJ1dGluZ106IDxodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWNsb3VkLWFhaS9lbGl4aXItY2xvdWQtYWFpL2Jsb2IvZGV2L0NPTlRSSUJVVElORy5tZD4KW3Jlcy1mbGFza106IDxodHRwOi8vZmxhc2sucG9jb28ub3JnLz4KW3Jlcy1mbGFzay1hcHAtY29udGV4dF06IDxodHRwczovL2ZsYXNrLnBhbGxldHNwcm9qZWN0cy5jb20vZW4vMS4xLngvYXBwY29udGV4dC8+CltyZXMtand0XTogPGh0dHBzOi8vand0LmlvPgpbcmVzLW1vbmdvLWRiXTogPGh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tLz4KW3Jlcy1vcGVuYXBpXTogPGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8+CltyZXMtcHlkYW50aWNdOiA8aHR0cHM6Ly9weWRhbnRpYy1kb2NzLmhlbHBtYW51YWwuaW8vPgpbcmVzLXJhYmJpdG1xXTogPGh0dHBzOi8vd3d3LnJhYmJpdG1xLmNvbS8+CltyZXMtc2VtdmVyXTogPGh0dHBzOi8vc2VtdmVyLm9yZy8+CltyZXMtc3dhZ2dlcl06IDxodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci11aS8+CltyZXMtdXNpbmctZm9jYV06IDxodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWNsb3VkLWFhaS9mb2NhL25ldHdvcmsvZGVwZW5kZW50cz4KW3Jlcy15YW1sXTogPGh0dHBzOi8veWFtbC5vcmcvPgo= readmeEtag: '"49341f02d708e9732db76eb3f2d2ca068f40ca86"' readmeLastModified: Thu, 11 Jul 2024 10:51:55 GMT repositoryId: 238483669 description: >- Opinionated Flask microservice archetype for quick OpenAPI-based microservice development created: '2020-02-05T15:30:51Z' updated: '2024-07-19T19:28:21Z' language: Python archived: false stars: 18 watchers: 24 forks: 11 owner: elixir-cloud-aai logo: https://avatars.githubusercontent.com/u/60704687?v=4 license: Apache-2.0 repoEtag: '"9fbf9643e2b5f6d7973b6b8987bfc35be5a034fc9ab353dcdfc2959641435be3"' repoLastModified: Fri, 19 Jul 2024 19:28:21 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/openehr/specifications-its-rest v3: true id: 975080575406c455891722c24cae7045 repositoryMetadata: base64Readme: >- IyBzcGVjaWZpY2F0aW9ucy1JVFMtUkVTVCAtIG9wZW5FSFIgUkVTVCBBUEkgU3BlY2lmaWNhdGlvbnMKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyB0aGUgZG9jdW1lbnRzIGFuZCBzb3VyY2VzIChpbiBodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjNbT3BlbkFQSSAzLjBdIGZvcm1hdCkgb2YgdGhlIG9wZW5FSFIgUkVTVCBBUEkgc3BlY2lmaWNhdGlvbnMuClRoZSBsYXRlc3QgcHVibGlzaGVkIGZvcm0gY2FuIGJlIGFjY2Vzc2VkIGF0IGh0dHBzOi8vc3BlY2lmaWNhdGlvbnMub3BlbmVoci5vcmcvcmVsZWFzZXMvSVRTLVJFU1QvbGF0ZXN0W0lUUy1SRVNUIHNwZWNpZmljYXRpb25zIGluZGV4IHBhZ2VdLgo= readmeEtag: '"4c8cf33553f29e93cdebed4245936615305d036c"' readmeLastModified: Tue, 12 Mar 2024 09:28:48 GMT repositoryId: 40630650 description: openEHR REST API Specifications created: '2015-08-13T00:20:48Z' updated: '2024-08-28T09:39:17Z' language: PHP archived: false stars: 18 watchers: 21 forks: 15 owner: openEHR logo: https://avatars.githubusercontent.com/u/1481762?v=4 license: Apache-2.0 repoEtag: '"104498189cf16de9e4ffa15669c1359baaaaa339df5b8c3f3122fd4d38df9c4e"' repoLastModified: Wed, 28 Aug 2024 09:39:17 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/speakeasy-api/openapi-reference-documentation v3: true id: 529feb5341d9e218d083e115c280ae49 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8cGljdHVyZT4KICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iLi9pbWFnZXMvbG9nb3Mvb3BlbmFwaS1kYXJrLnN2ZyI+CiAgICA8aW1nIGFsdD0iT3BlbkFQSSBsb2dvIiBzcmM9Ii4vaW1hZ2VzL2xvZ29zL29wZW5hcGktbGlnaHQuc3ZnIiB3aWR0aD0iOTAlIj4KICA8L3BpY3R1cmU+CjwvZGl2PgoKPGJyPjxicj4KCjxkaXYgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9zcGVha2Vhc3lhcGkuZGV2LyI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9jdXN0b20taWNvbi1iYWRnZXMuZGVtb2xhYi5jb20vYmFkZ2UvLUJ1aWx0JTIwQnklMjBTcGVha2Vhc3ktMjEyMDE1P3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nb0NvbG9yPUZCRTMzMSZsb2dvPXNwZWFrZWFzeSZsYWJlbENvbG9yPTU0NTQ1NCIgLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQtYmx1ZS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAyOHB4OyIgLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NwZWFrZWFzeS1hcGkvb3BlbmFwaS1yZWZlcmVuY2UtZG9jdW1lbnRhdGlvbi9pc3N1ZXMiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9zcGVha2Vhc3ktYXBpL29wZW5hcGktcmVmZXJlbmNlLWRvY3VtZW50YXRpb24/c3R5bGU9Zm9yLXRoZS1iYWRnZSIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAyOHB4OyIgLz48L2E+CjwvZGl2PgoKPGJyIC8+CjxiciAvPgoKPGgxIGFsaWduPSJjZW50ZXIiPlRoZSBPcGVuQVBJIFJlZmVyZW5jZTwvaDE+CjxkaXYgYWxpZ249ImNlbnRlciI+CkFuIGV4YW1wbGUtcmljaCwgZWFzeSB0byB1bmRlcnN0YW5kIHJlZmVyZW5jZSBmb3IgT3BlbkFQSS4KPC9kaXY+CjwvYnI+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3d3dy5zcGVha2Vhc3lhcGkuZGV2L29wZW5hcGkiPiBMaXZlIFJlZmVyZW5jZTwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LWFwaS9vcGVuYXBpLXJlZmVyZW5jZS1kb2N1bWVudGF0aW9uL2lzc3Vlcy9uZXc/YXNzaWduZWVzPSZsYWJlbHM9YnVnJnByb2plY3RzPSZ0ZW1wbGF0ZT1idWdfcmVwb3J0Lm1kIj5SZXBvcnQgSXNzdWU8L2E+CiAgICDCtwogICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NwZWFrZWFzeS1hcGkvb3BlbmFwaS1yZWZlcmVuY2UtZG9jdW1lbnRhdGlvbi9pc3N1ZXMvbmV3P2Fzc2lnbmVlcz0mbGFiZWxzPWVuaGFuY2VtZW50JnByb2plY3RzPSZ0ZW1wbGF0ZT1mZWF0dXJlX3JlcXVlc3QubWQiPlJlcXVlc3QgRmVhdHVyZTwvYT4KICAgIMK3CiAgPGEgaHJlZj0iaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L3NwZWFrZWFzeS1kZXYvc2hhcmVkX2ludml0ZS96dC0xY3diM2ZseHotbFM1U3laeEFzRl8zTk9xNXhjOENqdyI+Sm9pbiBPdXIgU2xhY2s8L2E+CiAgCiAgPC9wPgoKIyMgV2hhdCBpcyB0aGlzIHJlZmVyZW5jZSBmb3I/CgpPcGVuQVBJIGlzIGEgc3BlY2lmaWNhdGlvbiBmb3IgZGVzY3JpYmluZyBSRVNUZnVsIEFQSXMuIEZ1bmN0aW9uYWxseSwgaXQgc2VydmVzIGFzIGEgc291cmNlIG9mIHRydXRoIGZvciBBUEkgdG9vbGluZywgZG9jdW1lbnRhdGlvbiwgYW5kIHRlc3RpbmcuIEFzIHN1Y2gsIGl0IGlzIGVzc2VudGlhbCBmb3IgZGV2ZWxvcGVycyB0byB1bmRlcnN0YW5kIHRoZSBzcGVjaWZpY2F0aW9uLgoKVGhpcyByZWZlcmVuY2UgaXMgaW50ZW5kZWQgdG8gYmUgY29tcGxlbWVudGFyeSBvZiB0aGUgW29mZmljaWFsIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBSZWZlcmVuY2VdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCkuIEl0IGlzIGZvY3VzZWQgb24gYmVpbmcgZGV2LWZyaWVuZGx5OiBleGFtcGxlLWJhc2VkIHdpdGggdGhvcm91Z2ggZXhwbGFuYXRpb25zLCBwbHVzIEFJIHNlYXJjaCEKCklmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUgdG8gdGhpcyByZWZlcmVuY2UsIHBsZWFzZSBzZWUgdGhlIFtjb250cmlidXRpbmcgZ3VpZGVdKENPTlRSSUJVVElORy5tZCkuCgojIyBXaGF0IGlzIFNwZWFrZWFzeQoKQXQgU3BlYWtlYXN5IHdlIGFyZSBidWlsZGluZyB0aGUgdG9vbGNoYWluIHRvIG1ha2UgQVBJcyBlYXN5IHRvIGNyZWF0ZSBhbmQgY29uc3VtZS4KClRvZGF5LCBvdXIgcGxhdGZvcm0gYWxsb3dzIHlvdSB0byBjcmVhdGUgYSByb2J1c3QgZGV2ZWxvcGVyIGV4cGVyaWVuY2UgZm9yIHlvdXIgQVBJIHVzaW5nIGFuIE9wZW5BUEkgc3BlYzoKCi0gW1NES3MgaW4gOSBsYW5ndWVzXShodHRwczovL3d3dy5zcGVha2Vhc3lhcGkuZGV2L2RvY3MvY3JlYXRlLWNsaWVudC1zZGtzKTogVHlwZVNjcmlwdCwgUHl0aG9uLCBHbywgSmF2YSwgQyMsIFJ1YnksIFBIUCwgU3dpZnQgYW5kIFVuaXR5Ci0gW1RlcnJhZm9ybSBQcm92aWRlcnNdKGh0dHBzOi8vd3d3LnNwZWFrZWFzeWFwaS5kZXYvZG9jcy9jcmVhdGUtdGVycmFmb3JtKQoKRHVlIHRvIHRoZSBuYXR1cmUgb2Ygb3VyIHdvcmssIHdlIHNwZW5kIGEgbG90IG9mIHRpbWUgd29ya2luZyB3aXRoIE9wZW5BUEkgYW5kIGhhdmUgYmVjb21lIGV4cGVydHMgb24gaG93IHRoZSBzcGVjIGltcGFjdHMgZG93bnN0cmVhbSB3b3JrZmxvd3MuIFRoaXMgcmVmZXJlbmNlIGlzIGEgd2F5IGZvciB1cyB0byBnaXZlIGJhY2sgdG8gdGhlIGNvbW11bml0eSBhbmQgcGFzcyBvbiBzb21lIG9mIHRoZSBsZWFybmluZyB0aGF0IHdlJ3ZlIGRvbmUgYWxvbmcgdGhlIHdheS4KCiMjIENvbnRyaWJ1dGluZwoKV2hpbGUgd2UgaGF2ZSBhIGxvdCBvZiBpbnRlcm5hbCBvcGluaW9ucyBvbiBob3cgdG8gd3JpdGUgT3BlbkFQSSwgd2UgdmFsdWUgb3BpbmlvbnMgZnJvbSB0aGUgY29tbXVuaXR5LiBXZSB3b3VsZCBsb3ZlIGZvciBjb250cmlidXRpb25zIHRvIHRoaXMgcmVmZXJlbmNlIHRvIGNvbWUgZnJvbSBhIHdpZGUgcmFuZ2Ugb2YgcGVvcGxlLCB3aXRoIGRpZmZlcmVudCBiYWNrZ3JvdW5kcyBhbmQgZXhwZXJpZW5jZXMuCgpUaGlzIE9wZW5BUEkgUmVmZXJlbmNlIGlzIE9wZW4gU291cmNlIHVuZGVyIHRoZSBbTUlUXShMSUNFTlNFKSwgYW5kIGlzIHRoZSBbY29weXJpZ2h0IG9mIGl0cyBjb250cmlidXRvcnNdKE5PVElDRSkuIElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUgdG8gdGhlIHNvZnR3YXJlLCB5b3UgbXVzdDoKCjEuIFJlYWQgdGhlIERldmVsb3BlciBDZXJ0aWZpY2F0ZSBvZiBPcmlnaW4gVmVyc2lvbiAxLjEgKGh0dHBzOi8vZGV2ZWxvcGVyY2VydGlmaWNhdGUub3JnLykKMi4gU2lnbmluZyBhbGwgY29tbWl0cyB0byB0aGUgT3BlbkFQSSBSZWZlcmVuY2UgcHJvamVjdC4KClRoaXMgZW5zdXJlcyB0aGF0IHVzZXJzLCBkaXN0cmlidXRvcnMsIGFuZCBvdGhlciBjb250cmlidXRvcnMgY2FuIHJlbHkgb24gYWxsIHRoZSBzb2Z0d2FyZSByZWxhdGVkIHRvIFNwZWFrZWFzeSBiZWluZyBjb250cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtMaWNlbnNlXShMSUNFTlNFKS4gTm8gY29udHJpYnV0aW9ucyB3aWxsIGJlIGFjY2VwdGVkIHdpdGhvdXQgZm9sbG93aW5nIHRoaXMgcHJvY2Vzcy4KCkFmdGVyd2FyZHMsIG5hdmlnYXRlIHRvIHRoZSBbY29udHJpYnV0aW5nIGd1aWRlXShDT05UUklCVVRJTkcubWQpIHRvIGdldCBzdGFydGVkLgoKIyMgTGljZW5zZQoKVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIFNwZWFrZWFzeSdzIE9wZW5BUEkgUmVmZXJlbmNlLCBjb3ZlcmVkIHVuZGVyIHRoZSBbTUlUXShMSUNFTlNFKSwgZXhjZXB0IHdoZXJlIG5vdGVkIChhbnkgRGF5dG9uYSBsb2dvcyBvciB0cmFkZW1hcmtzIGFyZSBub3QgY292ZXJlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIGFuZCBzaG91bGQgYmUgZXhwbGljaXRseSBub3RlZCBieSBhIExJQ0VOU0UgZmlsZS4pCgpTcGVha2Vhc3kgaXMgYSBwcm9kdWN0IHRoYXQgbWFrZXMgdXNlIG9mIHRoaXMgb3BlbiBzb3VyY2UgZG9jdW1lbnRhdGlvbi4gSXQgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgb3VyIGNvbW1lcmNpYWwgdGVybXMuCgpPdGhlcnMgYXJlIGFsbG93ZWQgdG8gbWFrZSB0aGVpciBvd24gZGlzdHJpYnV0aW9uIG9mIHRoaXMgZG9jdW1lbnRhdGlvbiwgYnV0IHRoZXkgY2Fubm90IHVzZSBhbnkgb2YgdGhlIFNwZWFrZWFzeSB0cmFkZW1hcmtzLCBjbG91ZCBzZXJ2aWNlcywgZXRjLgoKIyMgQ29kZSBvZiBDb25kdWN0CgpUaGlzIHByb2plY3QgaGFzIGFkYXB0ZWQgdGhlIENvZGUgb2YgQ29uZHVjdCBmcm9tIHRoZSBbQ29udHJpYnV0b3IgQ292ZW5hbnRdKGh0dHBzOi8vd3d3LmNvbnRyaWJ1dG9yLWNvdmVuYW50Lm9yZy8pLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdGhlIFtDb2RlIG9mIENvbmR1Y3RdKENPREVfT0ZfQ09ORFVDVC5tZCkuCgojIyBRdWVzdGlvbnMKCkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1c2UgYW5kIGRldmVsb3AgU3BlYWtlYXN5LCB0YWxrIHRvIHVzIG9uCltTbGFja10oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L3NwZWFrZWFzeS1kZXYvc2hhcmVkX2ludml0ZS96dC0xY3diM2ZseHotbFM1U3laeEFzRl8zTk9xNXhjOENqdykuCg== readmeEtag: '"5d53ec1c7efd99d73fe1abf3b311807aae3081d14f10a6890440a829e1895692"' readmeLastModified: Tue, 09 Apr 2024 11:51:00 GMT repositoryId: 648239100 description: Best in class OpenAPI reference documentation created: '2023-06-01T14:08:03Z' updated: '2024-08-27T15:41:42Z' language: MDX archived: false stars: 18 watchers: 10 forks: 1 owner: speakeasy-api logo: https://avatars.githubusercontent.com/u/91446104?v=4 repoEtag: '"d72f61dfdc0fe11d18c30d80df48a8d27e2b81f7997fb0b0b3a634ae1556a625"' repoLastModified: Tue, 27 Aug 2024 15:41:42 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/wblondel/tgtg-api-wrapper v3: true repositoryMetadata: base64Readme: >- IyB0Z3RnLWFwaS13cmFwcGVyCnRndGctYXBpLXdyYXBwZXIgaXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgW1Rvb0dvb2RUb0dvXShodHRwczovL3Rvb2dvb2R0b2dvLmNvbS8pIEFQSS4KCiMjIFdvcmsgaW4gcHJvZ3Jlc3MKQ3VycmVudGx5IHJlZGFjdGluZyB0aGUgQVBJIHN0cnVjdHVyZSBpbiBPcGVuQVBJIDMgc3RhbmRhcmQuCkEgUHl0aG9uIHdyYXBwZXIgd2lsbCBiZSB3cml0dGVuIG5leHQuCgojIyBMaXN0IG9mIEFQSSBzZXJ2ZXJzCgpUaGUgbGlzdCBvZiBUb29Hb29kVG9HbydzIEFQSSBzZXJ2ZXJzIGNhbiBiZSBmb3VuZCBhdCB0aGlzIGFkZHJlc3M6IGh0dHBzOi8vbWV0YS5hcHB0b29nb29kdG9nby5jb20vZW52L3YxL2xpc3QuanNvbgoKQXMgb2YgMjAgRmVicnVhcnkgMjAyNCwgdGhlIHNlcnZlcnMgYXJlOgoKfCBOYW1lICAgICAgICAgICAgICAgICAgICAgCXwgUHVibGljIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCXwgIkhpZGRlbiIgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAl8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQl8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQl8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0JfAp8IFByb2R1Y3Rpb24gKE5lYXJlc3QpICAgICAJfCBodHRwczovL2FwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgICAgICAgICAgICAgICAJfCBodHRwczovL25lYXJlc3QtcHJvZC1iYWNrZW5kLXB1YmxpYy5wci1iZS1zaGFyZWQudGd0Zy5uaW5qYSAgCXwKfCBQcm9kdWN0aW9uIChFVSkgICAgICAgICAgCXwgaHR0cHM6Ly9ldXcxLmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9wcm9kLWJhY2tlbmQtcHVibGljLnByb2QtZWtzLTEudGd0Zy5uaW5qYSAgICAgICAgICAgIAl8CnwgUHJvZHVjdGlvbiAoVVMpICAgICAgICAgIAl8IGh0dHBzOi8vdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAgICAgICAgICAgICAgIAl8IGh0dHBzOi8vcHJvZC1iYWNrZW5kLXB1YmxpYy5wci1iZS11c2UxLnRndGcubmluamEgICAgICAgICAgICAJfAp8IFN0YWdpbmcgKE5lYXJlc3QpICAgICAgICAJfCBodHRwczovL2JhY2tlbmQtc3RhZ2luZy5hcHB0b29nb29kdG9nby5jb20gICAgICAJfCBodHRwczovL25lYXJlc3Qtc3RhZ2luZy1iYWNrZW5kLXB1YmxpYy5kZXYtc2hhcmVkLnRndGcubmluamEgCXwKfCBTdGFnaW5nIChFVSkgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXN0YWdpbmctZXV3MS5hcHB0b29nb29kdG9nby5jb20gCXwgaHR0cHM6Ly9zdGFnaW5nLWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgIAl8CnwgU3RhZ2luZyAoVVMpICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC1zdGFnaW5nLXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tIAl8IGh0dHBzOi8vc3RhZ2luZy1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAJfAp8IEdvbGQgKEVVKSAoUmVxdWlyZXMgVlBOKSAJfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJfCBodHRwczovL2dvbGQtYmFja2VuZC1pbnRlcm5hbC5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgCXwKfCBHb2xkIChVUykgKFJlcXVpcmVzIFZQTikgCXwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9nb2xkLWJhY2tlbmQtaW50ZXJuYWwuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgIAl8CnwgUGFydG5lciAoRVUpICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC1wYXJ0bmVyLWV1dzEuYXBwdG9vZ29vZHRvZ28uY29tICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQYXJ0bmVyIChVUykgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXBhcnRuZXItdXNlMS5hcHB0b29nb29kdG9nby5jb20gICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFFBIChFVSkgICAgICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtcWEtZXV3MS5hcHB0b29nb29kdG9nby5jb20gICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUUEgKFVTKSAgICAgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC1xYS11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBUZXN0MSAoRVUpICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxLmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MS1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIAl8CnwgVGVzdDEgKFVTKSAgICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC10ZXN0MS11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDEtYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICAJfAp8IFRlc3QyIChFVSkgICAgICAgICAgICAgICAJfCBodHRwczovL2JhY2tlbmQtdGVzdDIuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QyLWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgCXwKfCBUZXN0MiAoVVMpICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyLXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0Mi1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIAl8CnwgVGVzdDMgKEVVKSAgICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC10ZXN0My5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDMtYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICAJfAp8IFRlc3QzIChVUykgICAgICAgICAgICAgICAJfCBodHRwczovL2JhY2tlbmQtdGVzdDMtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QzLWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgCXwKfCBUZXN0NCAoRVUpICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXRlc3Q0LmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0NC1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIAl8CnwgVGVzdDQgKFVTKSAgICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC10ZXN0NC11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDQtYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICAJfAp8IFRlc3Q1IChFVSkgICAgICAgICAgICAgICAJfCBodHRwczovL2JhY2tlbmQtdGVzdDUuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3Q1LWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgCXwKfCBUZXN0NSAoVVMpICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXRlc3Q1LXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0NS1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIAl8CnwgVGVzdDYgKEVVKSAgICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC10ZXN0Ni5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDYtYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICAJfAp8IFRlc3Q2IChVUykgICAgICAgICAgICAgICAJfCBodHRwczovL2JhY2tlbmQtdGVzdDYtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3Q2LWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgCXwKfCBUZXN0NyAoRVUpICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXRlc3Q3LmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0Ny1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIAl8CnwgVGVzdDcgKFVTKSAgICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC10ZXN0Ny11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDctYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICAJfAp8IFRlc3Q4IChFVSkgICAgICAgICAgICAgICAJfCBodHRwczovL2JhY2tlbmQtdGVzdDguYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3Q4LWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgCXwKfCBUZXN0OCAoVVMpICAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXRlc3Q4LXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0OC1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIAl8CnwgVGVzdDkgKEVVKSAgICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC10ZXN0OS5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDktYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICAJfAp8IFRlc3Q5IChVUykgICAgICAgICAgICAgICAJfCBodHRwczovL2JhY2tlbmQtdGVzdDktdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3Q5LWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgCXwKfCBUZXN0MTAgKEVVKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxMC5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDEwLWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QxMCAoVVMpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDEwLXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0MTAtYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDExIChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MTEuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QxMS1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MTEgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxMS11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDExLWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QxMiAoRVUpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDEyLmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MTItYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDEyIChVUykgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MTItdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QxMi1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MTMgKEVVKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxMy5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDEzLWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QxMyAoVVMpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDEzLXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0MTMtYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDE0IChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MTQuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QxNC1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MTQgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxNC11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDE0LWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QxNSAoRVUpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDE1LmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MTUtYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDE1IChVUykgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MTUtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QxNS1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MTYgKEVVKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxNi5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDE2LWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QxNiAoVVMpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDE2LXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0MTYtYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDE3IChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MTcuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QxNy1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MTcgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxNy11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDE3LWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QxOCAoRVUpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDE4LmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MTgtYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgIAl8CnwgVGVzdDE4IChVUykgICAgICAgICAgICAgIAl8IGh0dHBzOi8vYmFja2VuZC10ZXN0MTgtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QxOC1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MTkgKEVVKSAgICAgICAgICAgICAgCXwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QxOS5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDE5LWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QxOSAoVVMpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDE5LXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0MTktYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDIwIChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MjAuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QyMC1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MjAgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyMC11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDIwLWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QyMSAoRVUpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDIxLmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MjEtYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDIxIChVUykgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MjEtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QyMS1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MjIgKEVVKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyMi5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDIyLWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QyMiAoVVMpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDIyLXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0MjItYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDIzIChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MjMuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QyMy1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MjMgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyMy11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDIzLWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QyNCAoRVUpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDI0LmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MjQtYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDI0IChVUykgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MjQtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QyNC1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MjUgKEVVKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyNS5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDI1LWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QyNSAoVVMpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDI1LXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0MjUtYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDI2IChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MjYuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QyNi1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MjYgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyNi11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDI2LWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QyNyAoRVUpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDI3LmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MjctYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDI3IChVUykgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MjctdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QyNy1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MjggKEVVKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyOC5hcHB0b29nb29kdG9nby5jb20gICAgICAgIAl8IGh0dHBzOi8vdGVzdDI4LWJhY2tlbmQtcHVibGljLmRldi1ldXcxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QyOCAoVVMpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDI4LXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgCXwgaHR0cHM6Ly90ZXN0MjgtYmFja2VuZC1wdWJsaWMuZGV2LXVzZTEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDI5IChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MjkuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAJfCBodHRwczovL3Rlc3QyOS1iYWNrZW5kLXB1YmxpYy5kZXYtZXV3MS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBUZXN0MjkgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXRlc3QyOS11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIAl8IGh0dHBzOi8vdGVzdDI5LWJhY2tlbmQtcHVibGljLmRldi11c2UxLnRndGcubmluamEgICAgICAgICAgICAgfAp8IFRlc3QzMCAoRVUpICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtdGVzdDMwLmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgCXwgaHR0cHM6Ly90ZXN0MzAtYmFja2VuZC1wdWJsaWMuZGV2LWV1dzEudGd0Zy5uaW5qYSAgICAgICAgICAgICB8CnwgVGVzdDMwIChVUykgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC10ZXN0MzAtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAJfCBodHRwczovL3Rlc3QzMC1iYWNrZW5kLXB1YmxpYy5kZXYtdXNlMS50Z3RnLm5pbmphICAgICAgICAgICAgIHwKfCBQZW50ZXN0IChFVSkgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXBlbnRlc3QuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBlbnRlc3QgKFVTKSAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtcGVudGVzdC11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQm91bnR5IChFVSkgICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC1ib3VudHkuYXBwdG9vZ29vZHRvZ28uY29tICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBCb3VudHkgKFVTKSAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLWJvdW50eS11c2UxLmFwcHRvb2dvb2R0b2dvLmNvbSAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBhcnRuZXIgKEVVKSAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtcGFydG5lci5hcHB0b29nb29kdG9nby5jb20gICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUGFydG5lciAoVVMpICAgICAgICAgICAgICB8IGh0dHBzOi8vYmFja2VuZC1wYXJ0bmVyLXVzZTEuYXBwdG9vZ29vZHRvZ28uY29tICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBRQSAoRVUpICAgICAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9iYWNrZW5kLXFhLmFwcHRvb2dvb2R0b2dvLmNvbSAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFFBIChVUykgICAgICAgICAgICAgICAgICAgfCBodHRwczovL2JhY2tlbmQtcWEtdXNlMS5hcHB0b29nb29kdG9nby5jb20gICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgoKClRoZSBiYXNlIHBhdGggZm9yIHRoZSBBUEkgaXMgYC9hcGkvYC4KClRoZSBkb2N1bWVudGF0aW9uIHNlZW1zIHRvIGJlIGF0IGAvYXBpL2FwaS1kb2NzYCBidXQgaXMgb25seSBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlaXIgVlBOLgoKQSBHRVQgcmVxdWVzdCB0byBgL3dlYmAgdGhyb3dzIGEgNDAzIEZvcmJpZGRlbiBlcnJvciB3aXRoIHRoZSBtZXNzYWdlICJJbnZhbGlkIENTUkYgdG9rZW4iLgoKQSBHRVQgcmVxdWVzdCB0byBgL2xvZ291dGAgcmVkaXJlY3RzICgzMDIpIHRvIGAvbG9naW4/bG9nb3V0YCwgd2hpY2ggdGhyb3dzIGEgNDA0IE5vdCBGb3VuZCBlcnJvci4KCkEgR0VUIHJlcXVlc3QgdG8gYC9waW5nYCByZXR1cm5zIGBwb25nYCA6RAoKQSBHRVQgcmVxdWVzdCB0byBgL2FwaS9gIG9uIGEgcHVibGljIFVSTCByZWRpcmVjdHMgKDMwMikgdG8gYC9hcGkvYXBpLWRvY3NgIG9uIHRoZSBjb3JyZXNwb25kaW5nICJIaWRkZW4iIHNlcnZlci4KClRoZSBBUElzIHNlZW0gdG8gYmUgYnVpbHQgd2l0aCBTcHJpbmcgQm9vdCAoY2x1ZTogdGhlIGBXaGl0ZWxhYmVsIEVycm9yIFBhZ2VgKQo= readmeEtag: '"ed7b0bc073189ec9dc5b179944913f2d527b0d3f"' readmeLastModified: Tue, 20 Feb 2024 10:45:29 GMT repositoryId: 242966436 description: Attempt to reverse-engineer the TooGoodToGo API created: '2020-02-25T09:57:17Z' updated: '2024-02-25T20:58:19Z' language: Java archived: false stars: 18 watchers: 3 forks: 3 owner: wblondel logo: https://avatars.githubusercontent.com/u/7508531?v=4 repoEtag: '"72612e55cefefc3ba10ac0911c6b430c8f889b7bccbaac43c238e27afd84048e"' repoLastModified: Sun, 25 Feb 2024 20:58:19 GMT foundInMaster: true category: Server Implementations id: 85d23379e17d8db6ffff513aa15140c5 - source: openapi3 tags repository: https://github.com/hunyadi/pyopenapi v3: true id: 9a608e628c0c1af0db91578fd6850e9f repositoryMetadata: base64Readme: >- IyBHZW5lcmF0ZSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZnJvbSBhIFB5dGhvbiBjbGFzcwoKKlB5T3BlbkFQSSogcHJvZHVjZXMgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIEpTT04sIFlBTUwgb3IgSFRNTCBmb3JtYXQgd2l0aCBlbmRwb2ludCBkZWZpbml0aW9ucyBleHRyYWN0ZWQgZnJvbSBtZW1iZXIgZnVuY3Rpb25zIG9mIGEgc3Ryb25nbHktdHlwZWQgUHl0aG9uIGNsYXNzLgoKIyMgRmVhdHVyZXMKCiogc3VwcG9ydHMgc3RhbmRhcmQgYW5kIGFzeW5jaHJvbm91cyBmdW5jdGlvbnMgKGBhc3luYyBkZWZgKQoqIG1hcHMgZnVuY3Rpb24gbmFtZSBwcmVmaXhlcyBzdWNoIGFzIGBnZXRfYCBvciBgY3JlYXRlX2AgdG8gSFRUUCBHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBQQVRDSAoqIGhhbmRsZXMgYm90aCBzaW1wbGUgYW5kIGNvbXBvc2l0ZSB0eXBlcyAoYGludGAsIGBzdHJgLCBgRW51bWAsIGBAZGF0YWNsYXNzYCkKKiBoYW5kbGVzIGdlbmVyaWMgdHlwZXMgKGBMaXN0W1RdYCwgYERpY3RbSywgVl1gLCBgT3B0aW9uYWxbVF1gLCBgVW5pb25bVDEsIFQyLCBUM11gKQoqIG1hcHMgUHl0aG9uIHBvc2l0aW9uYWwtb25seSBhbmQga2V5d29yZC1vbmx5IGFyZ3VtZW50cyAob2Ygc2ltcGxlIHR5cGVzKSB0byBwYXRoIGFuZCBxdWVyeSBwYXJhbWV0ZXJzLCByZXNwZWN0aXZlbHkKKiBtYXBzIGNvbXBvc2l0ZSB0eXBlcyB0byBIVFRQIHJlcXVlc3QgYm9keQoqIHN1cHBvcnRzIHVzZXItZGVmaW5lZCByb3V0ZXMsIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHNhbXBsZXMgd2l0aCBkZWNvcmF0b3IgYEB3ZWJtZXRob2RgCiogZXh0cmFjdHMgZGVzY3JpcHRpb24gdGV4dCBmcm9tIGNsYXNzIGFuZCBmdW5jdGlvbiBkb2Mtc3RyaW5ncyAoYF9fZG9jX19gKQoqIHJlY29nbml6ZXMgcGFyYW1ldGVyIGRlc2NyaXB0aW9uIHRleHQgZ2l2ZW4gaW4gcmVTdHJ1Y3R1cmVkVGV4dCBkb2Mtc3RyaW5nIGZvcm1hdCAoYDpwYXJhbSBuYW1lOiAuLi5gKQoqIGNvbnZlcnRzIGV4Y2VwdGlvbnMgZGVjbGFyZWQgaW4gZG9jLXN0cmluZ3MgaW50byBIVFRQIDR4eCBhbmQgNXh4IHJlc3BvbnNlcyAoZS5nLiBgOnJhaXNlcyBUeXBlRXJyb3I6YCkKKiByZWN1cnNpdmVseSBjb252ZXJ0cyBjb21wb3NpdGUgdHlwZXMgaW50byBKU09OIHNjaGVtYXMKKiBncm91cHMgZnJlcXVlbnRseSB1c2VkIGNvbXBvc2l0ZSB0eXBlcyBpbnRvIGEgc2VwYXJhdGUgc2VjdGlvbiBhbmQgcmUtdXNlcyB0aGVtIHdpdGggYCRyZWZgCiogZGlzcGxheXMgZ2VuZXJhdGVkIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpbiBIVE1MIHdpdGggW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykKCiMjIExpdmUgZXhhbXBsZXMKCiogW0VuZHBvaW50IGRlZmluaXRpb24gaW4gUHl0aG9uXShodHRwczovL2h1bnlhZGkuZ2l0aHViLmlvL3B5b3BlbmFwaS9leGFtcGxlcy9weXRob24vaW5kZXguaHRtbCkKKiBbR2VuZXJhdGVkIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpbiBKU09OXShodHRwczovL2h1bnlhZGkuZ2l0aHViLmlvL3B5b3BlbmFwaS9leGFtcGxlcy9qc29uL2luZGV4Lmh0bWwpCiogW0dlbmVyYXRlZCBPcGVuQVBJIHNwZWNpZmljYXRpb24gaW4gWUFNTF0oaHR0cHM6Ly9odW55YWRpLmdpdGh1Yi5pby9weW9wZW5hcGkvZXhhbXBsZXMveWFtbC9pbmRleC5odG1sKQoqIFtHZW5lcmF0ZWQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIEhUTUwgd2l0aCBSZURvY10oaHR0cHM6Ly9odW55YWRpLmdpdGh1Yi5pby9weW9wZW5hcGkvZXhhbXBsZXMvaW5kZXguaHRtbCkKCiMjIFVzZXIgZ3VpZGUKCiMjIyBUaGUgc3BlY2lmaWNhdGlvbiBvYmplY3QKCkluIG9yZGVyIHRvIGdlbmVyYXRlIGFuIFtPcGVuQVBJIHNwZWNpZmljYXRpb24gZG9jdW1lbnRdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL2xhdGVzdC5odG1sKSwgeW91IHNob3VsZCBmaXJzdCBjb25zdHJ1Y3QgYSBgU3BlY2lmaWNhdGlvbmAgb2JqZWN0LCB3aGljaCBlbmNhcHN1bGF0ZXMgdGhlIGZvcm1hbCBkZWZpbml0aW9uOgoKYGBgcHl0aG9uCnNwZWNpZmljYXRpb24gPSBTcGVjaWZpY2F0aW9uKAogICAgTXlFbmRwb2ludCwKICAgIE9wdGlvbnMoCiAgICAgICAgc2VydmVyPVNlcnZlcih1cmw9Imh0dHA6Ly9leGFtcGxlLmNvbS9hcGkiKSwKICAgICAgICBpbmZvPUluZm8oCiAgICAgICAgICAgIHRpdGxlPSJFeGFtcGxlIHNwZWNpZmljYXRpb24iLAogICAgICAgICAgICB2ZXJzaW9uPSIxLjAiLAogICAgICAgICAgICBkZXNjcmlwdGlvbj1kZXNjcmlwdGlvbiwKICAgICAgICApLAogICAgICAgIGRlZmF1bHRfc2VjdXJpdHlfc2NoZW1lPVNlY3VyaXR5U2NoZW1lSFRUUCgKICAgICAgICAgICAgIkF1dGhlbnRpY2F0ZXMgYSByZXF1ZXN0IGJ5IHZlcmlmeWluZyBhIEpXVCAoSlNPTiBXZWIgVG9rZW4pIHBhc3NlZCBpbiB0aGUgYEF1dGhvcml6YXRpb25gIEhUVFAgaGVhZGVyLiIsCiAgICAgICAgICAgICJiZWFyZXIiLAogICAgICAgICAgICAiSldUIiwKICAgICAgICApLAogICAgICAgIGV4dHJhX3R5cGVzPVtFeGFtcGxlVHlwZSwgVW5yZWZlcmVuY2VkVHlwZV0sCiAgICAgICAgZXJyb3Jfd3JhcHBlcj1UcnVlLAogICAgKSwKKQpgYGAKClRoZSBmaXJzdCBhcmd1bWVudCB0byBgU3BlY2lmaWNhdGlvbmAgaXMgYSBQeXRob24gY2xhc3MgKGB0eXBlYCkgd2hvc2UgbWV0aG9kcyB3aWxsIGJlIGluc3BlY3RlZCBhbmQgY29udmVydGVkIGludG8gT3BlbkFQSSBlbmRwb2ludCBvcGVyYXRpb25zLiBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIGFkZGl0aW9uYWwgb3B0aW9ucyB0aGF0IGZpbmUtdHVuZSBob3cgdGhlIHNwZWNpZmljYXRpb24gaXMgZ2VuZXJhdGVkLgoKIyMjIERlZmluaW5nIGVuZHBvaW50IG9wZXJhdGlvbnMKCkxldCdzIHRha2UgYSBsb29rIGF0IHRoZSBkZWZpbml0aW9uIG9mIGEgc2ltcGxlIGVuZHBvaW50IGNhbGxlZCBgSm9iTWFuYWdlbWVudGA6CgpgYGBweXRob24KY2xhc3MgSm9iTWFuYWdlbWVudDoKICAgIGRlZiBjcmVhdGVfam9iKHNlbGYsIGl0ZW1zOiBMaXN0W1VSTF0pIC0+IHV1aWQuVVVJRDoKICAgICAgICAuLi4KCiAgICBkZWYgZ2V0X2pvYihzZWxmLCBqb2JfaWQ6IHV1aWQuVVVJRCwgLywgZm9ybWF0OiBGb3JtYXQpIC0+IEpvYjoKICAgICAgICAuLi4KCiAgICBkZWYgcmVtb3ZlX2pvYihzZWxmLCBqb2JfaWQ6IHV1aWQuVVVJRCwgLykgLT4gTm9uZToKICAgICAgICAuLi4KCiAgICBkZWYgdXBkYXRlX2pvYihzZWxmLCBqb2JfaWQ6IHV1aWQuVVVJRCwgLywgam9iOiBKb2IpIC0+IE5vbmU6CiAgICAgICAgLi4uCmBgYAoKVGhlIG5hbWUgb2YgZWFjaCBtZXRob2QgYmVnaW5zIHdpdGggYSBwcmVmaXggc3VjaCBhcyBgY3JlYXRlYCwgYGdldGAsIGByZW1vdmVgIG9yIGB1cGRhdGVgLCBlYWNoIG9mIHdoaWNoIG1hcHMgdG8gYW4gSFRUUCB2ZXJiLCBlLmcuIGBQT1NUYCwgYEdFVGAsIGBERUxFVEVgIG9yIGBQQVRDSGAuIFRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbiBuYW1lIHNlcnZlcyBhcyBhbiBpZGVudGlmaWVyLCBlLmcuIGBqb2JgLiBUaGUgYHNlbGZgIGFyZ3VtZW50IHRvIHRoZSBmdW5jdGlvbiBpcyBpZ25vcmVkLiBPdGhlciBhcmd1bWVudHMgaW5kaWNhdGUgd2hhdCBwYXRoIGFuZCBxdWVyeSBbcGFyYW1ldGVyIG9iamVjdHNdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL2xhdGVzdC5odG1sI3BhcmFtZXRlci1vYmplY3QpLCBhbmQgd2hhdCBbSFRUUCByZXF1ZXN0IGJvZHldKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL2xhdGVzdC5odG1sI3JlcXVlc3QtYm9keS1vYmplY3QpIHRoZSBvcGVyYXRpb24gYWNjZXB0cy4KCiMjIyBGdW5jdGlvbiBzaWduYXR1cmVzIGZvciBvcGVyYXRpb25zCgpGdW5jdGlvbiBzaWduYXR1cmVzIGZvciBvcGVyYXRpb25zIG11c3QgaGF2ZSBmdWxsIHR5cGUgYW5ub3RhdGlvbiwgaW5jbHVkaW5nIHBhcmFtZXRlciB0eXBlcyBhbmQgcmV0dXJuIHR5cGUuCgpQeXRob24gW3Bvc2l0aW9uYWwtb25seSBhcmd1bWVudHNdKGh0dHBzOi8vcGVwcy5weXRob24ub3JnL3BlcC0wNTcwLykgbWFwIHRvIHBhdGggcGFyYW1ldGVycy4gUHl0aG9uIHBvc2l0aW9uYWwtb3Ita2V5d29yZCBhcmd1bWVudHMgbWFwIHRvIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgdGhleSBhcmUgb2YgYSBzaW1wbGUgdHlwZSAoZS5nLiBgaW50YCBvciBgc3RyYCkuIElmIGEgY29tcG9zaXRlIHR5cGUgKGUuZy4gYSBjbGFzcywgYSBsaXN0IG9yIGEgdW5pb24pIG9jY3VycyBpbiB0aGUgUHl0aG9uIHBhcmFtZXRlciBsaXN0LCBpdCBpcyB0cmVhdGVkIGFzIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBIVFRQIHJlcXVlc3QgYm9keS4gT25seSBvbmUgY29tcG9zaXRlIHR5cGUgbWF5IGFwcGVhciBpbiB0aGUgcGFyYW1ldGVyIGxpc3QuIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgZnVuY3Rpb24gaXMgdHJlYXRlZCBhcyB0aGUgSFRUUCByZXNwb25zZSBib2R5LiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBgTm9uZWAsIGl0IGNvcnJlc3BvbmRzIHRvIGFuIEhUVFAgcmVzcG9uc2Ugd2l0aCBubyBwYXlsb2FkIChpLmUuIGEgYENvbnRlbnQtTGVuZ3RoYCBvZiAwKS4KClRoZSBKU09OIHNjaGVtYSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBhbmQgcmVzcG9uc2UgYm9keSBpcyBnZW5lcmF0ZWQgd2l0aCB0aGUgbGlicmFyeSBbanNvbl9zdHJvbmdfdHlwaW5nXShodHRwczovL2dpdGh1Yi5jb20vaHVueWFkaS9zdHJvbmdfdHlwaW5nKSwgYW5kIGlzIGF1dG9tYXRpY2FsbHkgZW1iZWRkZWQgaW4gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBkb2N1bWVudC4KCiMjIyBVc2VyLWRlZmluZWQgb3BlcmF0aW9uIHBhdGgKCkJ5IGRlZmF1bHQsIHRoZSBsaWJyYXJ5IGNvbnN0cnVjdHMgdGhlIG9wZXJhdGlvbiBwYXRoIGZyb20gdGhlIFB5dGhvbiBmdW5jdGlvbiBuYW1lIGFuZCBwb3NpdGlvbmFsLW9ubHkgcGFyYW1ldGVycy4gSG93ZXZlciwgaXQgaXMgcG9zc2libGUgdG8gc3VwcGx5IGEgY3VzdG9tIHBhdGggKHJvdXRlKSB1c2luZyB0aGUgYEB3ZWJtZXRob2RgIGRlY29yYXRvcjoKCmBgYHB5dGhvbgpAd2VibWV0aG9kKAogICAgcm91dGU9Ii9wZXJzb24vbmFtZS97ZmFtaWx5fS97Z2l2ZW59IiwKKQpkZWYgZ2V0X3BlcnNvbl9ieV9uYW1lKHNlbGYsIGZhbWlseTogc3RyLCBnaXZlbjogc3RyLCAvKSAtPiBQZXJzb246CiAgICAuLi4KYGBgCgpUaGUgY3VzdG9tIHBhdGggbXVzdCBoYXZlIHBsYWNlaG9sZGVycyBmb3IgYWxsIHBvc2l0aW9uYWwtb25seSBwYXJhbWV0ZXJzIGluIHRoZSBmdW5jdGlvbiBzaWduYXR1cmUsIGFuZCB2aWNlIHZlcnNhLgoKIyMjIERvY3VtZW50aW5nIG9wZXJhdGlvbnMKClVzZSBQeXRob24gUmVTVCAoUmVTdHJ1Y3R1cmVkIFRleHQpIGRvYy1zdHJpbmdzIHRvIGF0dGFjaCBkb2N1bWVudGF0aW9uIHRvIG9wZXJhdGlvbnM6IAoKYGBgcHl0aG9uCmRlZiBnZXRfam9iKHNlbGYsIGpvYl9pZDogdXVpZC5VVUlELCAvLCBmb3JtYXQ6IEZvcm1hdCkgLT4gSm9iOgogICAgIiIiCiAgICBRdWVyeSBzdGF0dXMgaW5mb3JtYXRpb24gYWJvdXQgYSBqb2IuCgogICAgOnBhcmFtIGpvYl9pZDogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBqb2IgdG8gcXVlcnkuCiAgICA6cmV0dXJuczogU3RhdHVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBqb2IuCiAgICA6cmFpc2VzIE5vdEZvdW5kRXJyb3I6IFRoZSBqb2IgZG9lcyBub3QgZXhpc3QuCiAgICA6cmFpc2VzIFZhbGlkYXRpb25FcnJvcjogVGhlIGlucHV0IGlzIG1hbGZvcm1lZC4KICAgICIiIgogICAgLi4uCmBgYAoKRmllbGRzIHN1Y2ggYXMgYHBhcmFtYCBhbmQgYHJldHVybnNgIGhlbHAgZG9jdW1lbnQgcGF0aCBhbmQgcXVlcnkgcGFyYW1ldGVycywgSFRUUCByZXF1ZXN0IGFuZCByZXNwb25zZSBib2R5LiBUaGUgZmllbGQgYHJhaXNlc2AgaGVscHMgZG9jdW1lbnQgZXJyb3IgcmVzcG9uc2VzIGJ5IGlkZW50aWZ5aW5nIHRoZSBleGFjdCByZXR1cm4gdHlwZSB3aGVuIGFuIGVycm9yIG9jY3Vycy4gVGhlIFB5dGhvbiB0eXBlIGZvciBgcmV0dXJuc2AgYW5kIGByYWlzZXNgIGlzIHRyYW5zbGF0ZWQgdG8gYSBKU09OIHNjaGVtYSBhbmQgZW1iZWRkZWQgaW4gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBkb2N1bWVudC4KCiMjIyBSZXF1ZXN0IGFuZCByZXNwb25zZSBleGFtcGxlcwoKT3BlbkFQSSBzdXBwb3J0cyBzcGVjaWZ5aW5nIFtleGFtcGxlc10oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvbGF0ZXN0Lmh0bWwjZXhhbXBsZS1vYmplY3QpIGZvciB0aGUgSFRUUCByZXF1ZXN0IGFuZCByZXNwb25zZSBib2R5IG9mIGVuZHBvaW50IG9wZXJhdGlvbnMuIFRoaXMgaXMgc3VwcG9ydGVkIHZpYSB0aGUgYEB3ZWJtZXRob2RgIGRlY29yYXRvcjoKCmBgYHB5dGhvbgogICAgQHdlYm1ldGhvZCgKICAgICAgICByb3V0ZT0iL21lbWJlci9uYW1lL3tmYW1pbHl9L3tnaXZlbn0iLAogICAgICAgIHJlc3BvbnNlX2V4YW1wbGVzPVsKICAgICAgICAgICAgU3R1ZGVudCgiU3rDtnJueWV0ZWciLCAiTGFqb3MiKSwKICAgICAgICAgICAgU3R1ZGVudCgiTMOzIiwgIlN6ZXJhZmluIiksCiAgICAgICAgICAgIFN0dWRlbnQoIkJydWNrbmVyIiwgIlN6aWdmcmlkIiksCiAgICAgICAgICAgIFN0dWRlbnQoIk5hZ3kiLCAiWm/DoXJkIiksCiAgICAgICAgICAgIFRlYWNoZXIoIk1pa2thIiwgIk1ha2thIiwgIk7DqWd5c3rDtmdsZXTFsSBLZXJlayBFcmTFkSIpLAogICAgICAgICAgICBUZWFjaGVyKCJWYWNza2EiLCAiTWF0aSIsICJOw6lneXN6w7ZnbGV0xbEgS2VyZWsgRXJkxZEiKSwKICAgICAgICBdLAogICAgKQogICAgZGVmIGdldF9tZW1iZXJfYnlfbmFtZShzZWxmLCBmYW1pbHk6IHN0ciwgZ2l2ZW46IHN0ciwgLykgLT4gVW5pb25bU3R1ZGVudCwgVGVhY2hlcl06CiAgICAgICAgLi4uCmBgYAoKQSByZXNwb25zZSBleGFtcGxlIG1heSBiZSBhbiBleGNlcHRpb24gb3IgZXJyb3IgY2xhc3MgKGEgdHlwZSB0aGF0IGRlcml2ZXMgZnJvbSBgRXhjZXB0aW9uYCkuIFRoZXNlIGFyZSB1c3VhbGx5IHNob3duIHVuZGVyIGFuIEhUVFAgc3RhdHVzIGNvZGUgb2YgNHh4IG9yIDV4eC4KClRoZSBQeXRob24gb2JqZWN0cyBpbiBgcmVxdWVzdF9leGFtcGxlc2AgYW5kIGByZXNwb25zZV9leGFtcGxlc2AgYXJlIHRyYW5zbGF0ZWQgdG8gSlNPTiB3aXRoIHRoZSBsaWJyYXJ5IFtqc29uX3N0cm9uZ190eXBpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9odW55YWRpL3N0cm9uZ190eXBpbmcpLgoKIyMjIE1hcHBpbmcgZnVuY3Rpb24gbmFtZSBwcmVmaXhlcyB0byBIVFRQIHZlcmJzCgpUaGUgZm9sbG93aW5nIHRhYmxlIGlkZW50aWZpZXMgd2hpY2ggZnVuY3Rpb24gbmFtZSBwcmVmaXhlcyBtYXAgdG8gd2hpY2ggSFRUUCB2ZXJiczogCgp8IFByZWZpeCB8IEhUVFAgdmVyYiAgIHwKfCAtLS0tLS0gfCAtLS0tLS0tLS0tLSB8CnwgY3JlYXRlIHwgUE9TVCAgICAgICAgfAp8IGRlbGV0ZSB8IFJFTU9WRSAgICAgIHwKfCBkbyAgICAgfCBHRVQgb3IgUE9TVCB8CnwgZ2V0ICAgIHwgR0VUICAgICAgICAgfAp8IHBvc3QgICB8IFBPU1QgICAgICAgIHwKfCBwdXQgICAgfCBQT1NUICAgICAgICB8CnwgcmVtb3ZlIHwgUkVNT1ZFICAgICAgfAp8IHNldCAgICB8IFBVVCAgICAgICAgIHwKfCB1cGRhdGUgfCBQQVRDSCAgICAgICB8CgpJZiB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlIGNvbmZsaWN0cyB3aXRoIHRoZSBIVFRQIHZlcmIgKGUuZy4gYSBmdW5jdGlvbiBuYW1lIHN0YXJ0cyB3aXRoIGBnZXRgIGJ1dCBoYXMgYSBjb21wb3NpdGUgdHlwZSBpbiB0aGUgcGFyYW1ldGVyIGxpc3QsIHdoaWNoIG1hcHMgdG8gYSBub24tZW1wdHkgSFRUUCByZXF1ZXN0IGJvZHkpLCB0aGUgSFRUUCB2ZXJiIGlzIGF1dG9tYXRpY2FsbHkgYWRqdXN0ZWQuCgojIyMgQXNzb2NpYXRpbmcgSFRUUCBzdGF0dXMgY29kZXMgd2l0aCByZXNwb25zZSB0eXBlcwoKQnkgZGVmYXVsdCwgdGhlIGxpYnJhcnkgYXNzb2NpYXRlcyBzdWNjZXNzIHJlc3BvbnNlcyB3aXRoIEhUVFAgc3RhdHVzIGNvZGUgMjAwLCBhbmQgZXJyb3IgcmVzcG9uc2VzIHdpdGggSFRUUCBzdGF0dXMgY29kZSA1MDAuIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRvIGFzc29jaWF0ZSBhbnkgUHl0aG9uIHR5cGUgd2l0aCBhbnkgSFRUUCBzdGF0dXMgY29kZToKCmBgYHB5dGhvbgpzcGVjaWZpY2F0aW9uID0gU3BlY2lmaWNhdGlvbigKICAgIE15RW5kcG9pbnQsCiAgICBPcHRpb25zKAogICAgICAgIHNlcnZlcj1TZXJ2ZXIodXJsPSJodHRwOi8vZXhhbXBsZS5jb20vYXBpIiksCiAgICAgICAgaW5mbz1JbmZvKAogICAgICAgICAgICB0aXRsZT0iRXhhbXBsZSBzcGVjaWZpY2F0aW9uIiwKICAgICAgICAgICAgdmVyc2lvbj0iMS4wIiwKICAgICAgICAgICAgZGVzY3JpcHRpb249ZGVzY3JpcHRpb24sCiAgICAgICAgKSwKICAgICAgICBzdWNjZXNzX3Jlc3BvbnNlcz17CiAgICAgICAgICAgIFN0dWRlbnQ6IEhUVFBTdGF0dXMuQ1JFQVRFRCwKICAgICAgICAgICAgVGVhY2hlcjogSFRUUFN0YXR1cy5BQ0NFUFRFRCwKICAgICAgICB9LAogICAgICAgIGVycm9yX3Jlc3BvbnNlcz17CiAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uRXJyb3I6IEhUVFBTdGF0dXMuVU5BVVRIT1JJWkVELAogICAgICAgICAgICBCYWRSZXF1ZXN0RXJyb3I6IDQwMCwKICAgICAgICAgICAgSW50ZXJuYWxTZXJ2ZXJFcnJvcjogNTAwLAogICAgICAgICAgICBOb3RGb3VuZEVycm9yOiBIVFRQU3RhdHVzLk5PVF9GT1VORCwKICAgICAgICAgICAgVmFsaWRhdGlvbkVycm9yOiAiNDAwIiwKICAgICAgICB9LAogICAgICAgIGVycm9yX3dyYXBwZXI9VHJ1ZSwKICAgICksCikKYGBgCgpUaGUgYXJndW1lbnRzIGBzdWNjZXNzX3Jlc3BvbnNlc2AgYW5kIGBlcnJvcl9yZXNwb25zZXNgIHRha2UgYSBkaWN0aW9uYXJ5IHRoYXQgbWFwcyB0eXBlcyB0byBzdGF0dXMgY29kZXMuIFN0YXR1cyBjb2RlcyBtYXkgYmUgaW50ZWdlcnMgKGUuZy4gYDQwMGApLCBzdHJpbmdzIChlLmcuIGAiNDAwImAgb3IgYCI0eHgiYCkgb3IgW0hUVFBTdGF0dXNdKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9odHRwLmh0bWwjaHR0cC5IVFRQU3RhdHVzKSBlbnVtZXJhdGlvbiB2YWx1ZXMuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0YXR1cyBjb2RlIG11c3QgYmUgdmFsaWQgYXMgcGVyIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uCg== readmeEtag: '"d10f83aa93fb3182b3dbea0e079c5e29de5e368e"' readmeLastModified: Sat, 20 May 2023 08:02:36 GMT repositoryId: 429913601 description: Generate an OpenAPI specification from a Python class definition created: '2021-11-19T19:34:39Z' updated: '2024-07-28T00:01:47Z' language: Python archived: false stars: 18 watchers: 1 forks: 1 owner: hunyadi logo: https://avatars.githubusercontent.com/u/7794010?v=4 license: MIT repoEtag: '"d3498d1d41abaa9b865e5bb72952421d340c183d441f08cb822760aad073d18c"' repoLastModified: Sun, 28 Jul 2024 00:01:47 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/mikekonan/go-types v3: true repositoryMetadata: base64Readme: >- WyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL21pa2Vrb25hbi9nby10eXBlcyldKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMpIFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kuY29tL21pa2Vrb25hbi9nby10eXBlcy5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL3RyYXZpcy1jaS5jb20vbWlrZWtvbmFuL2dvLXR5cGVzKSBbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvbWlrZWtvbmFuL2dvLXR5cGVzL2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj04M1EwNE9XNEkxKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL21pa2Vrb25hbi9nby10eXBlcykKIyBnby10eXBlcwpUaGlzIGxpYnJhcnkgaGFzIGJlZW4gY3JlYXRlZCB3aXRoIHRoZSBwdXJwb3NlIHRvIGZhY2lsaXRhdGUgdGhlIHN0b3JlLCB2YWxpZGF0aW9uLCBhbmQgdHJhbnNmZXIgb2YgR28gSVNPLTMxNjYvSVNPLTQyMTcvdGltZXpvbmVzL2VtYWlscy9VUkwgdHlwZXMuIFRoZXJlIGlzIGEgW29wZW5hcGkzIHNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMvYmxvYi9tYWluL3N3YWdnZXIueWFtbCkgb2YgdGhhdCB0eXBlIGFuZCBtYWtlIHlvdSBhYmxlIHRvIGluY2x1ZGUgaXQgaW50byB5b3VyIHNwZWMuIEFsbCB0eXBlcyBoYXMgb3duIG96em8uVmFsaWRhdGUsIGpzb24uVW5tYXJzaGFsZXIsIFN0cmluZ2VyIGFuZCBkcml2ZXIuVmFsdWVyIGltcGxlbWVudGF0aW9ucy4KCiMgSW5zdGFsbGF0aW9uCmBgYGJhc2gKZ28gZ2V0IGdpdGh1Yi5jb20vbWlrZWtvbmFuL2dvLXR5cGVzL3YyCmBgYAojIFVzYWdlOgoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImVuY29kaW5nL2pzb24iCgkiZm10IgoJImxvZyIKCgl2YWxpZGF0aW9uICJnaXRodWIuY29tL2dvLW96em8vb3p6by12YWxpZGF0aW9uL3Y0IgoJImdpdGh1Yi5jb20vbWlrZWtvbmFuL2dvLXR5cGVzL3YyL2NvdW50cnkiCgkiZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMvdjIvY291bnRyeS9hbHBoYTIiCgkiZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMvdjIvY291bnRyeS9hbHBoYTMiCgkiZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMvdjIvbGFuZ3VhZ2UiCgkiZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMvdjIvY291bnRyeS9uYW1lIgoJImdpdGh1Yi5jb20vbWlrZWtvbmFuL2dvLXR5cGVzL3YyL2N1cnJlbmN5IgoJImdpdGh1Yi5jb20vbWlrZWtvbmFuL2dvLXR5cGVzL3YyL2N1cnJlbmN5L2NvZGUiCgkiZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMvdjIvcGhvbmUiCgkiZ2l0aHViLmNvbS9taWtla29uYW4vZ28tdHlwZXMvdjIvcG9zdGFsX2NvZGUiCikKCi8vIDEuIHVzZSBpbiB5b3VyIHN0cnVjdHMKdHlwZSBVc2VyIHN0cnVjdCB7CglOYW1lICAgICAgICAgICAgc3RyaW5nICAgICAgICAgICAgICAgIGBqc29uOiJuYW1lIiBkYjoibmFtZSJgCglDb3VudHJ5ICAgICAgICAgY291bnRyeS5BbHBoYTJDb2RlICAgIGBqc29uOiJjb3VudHJ5IiBkYjoiY291bnRyeSJgCglDdXJyZW5jeSAgICAgICAgY3VycmVuY3kuQ29kZSAgICAgICAgIGBqc29uOiJjdXJyZW5jeSIgZGI6ImN1cnJlbmN5ImAKCUxhbmd1YWdlICAgICAgICBsYW5ndWFnZS5BbHBoYTJDb2RlICAgYGpzb246Imxhbmd1YWdlIiBkYjoibGFuZ3VhZ2UiYAoJUGhvbmUgICAgICAgICAgIHBob25lLk51bWJlciAgICAgICAgICBganNvbjoicGhvbmUiIGRiOiJwaG9uZSJgCglDb3VudHJ5RGlhbENvZGUgcGhvbmUuRGlhbENvZGUgICAgICAgIGBqc29uOiJkaWFsQ29kZSIgZGI6ImRpYWxDb2RlImAKCVBvc3RhbENvZGUgICAgICBwb3N0YWxjb2RlLlBvc3RhbENvZGUgYGpzb246InBvc3RhbENvZGUiIGRiOiJwb3N0YWxDb2RlImAKfQoKZnVuYyBtYWluKCkgewoJLy8gMi4gdXNlIGluIHlvdXIgd2lyZQoJdXNlciA6PSBVc2Vye30KCV8gPSBqc29uLlVubWFyc2hhbChbXWJ5dGUoYHsibmFtZSI6Im5hbWUiLCAiY291bnRyeSI6ICJDQSIsICJjdXJyZW5jeSI6ICJDQUQiLCAibGFuZ3VhZ2UiOiAiZnIiLCAicGhvbmUiOiAiMTIzNDU2Nzg5IiwgImRpYWxDb2RlIjogIjEifWApLCAmdXNlcikKCgkvLyAzLiBjaGVjayBpcyBzZXQKCXVzZXIuQ291bnRyeS5Jc1NldCgpCgl1c2VyLkN1cnJlbmN5LklzU2V0KCkKCXVzZXIuTGFuZ3VhZ2UuSXNTZXQoKQoKCS8vIDQuIHZhbGlkYXRlIHVzaW5nIG96em8tdmFsaWRhdGlvbgoJaWYgZXJyIDo9IHZhbGlkYXRpb24uVmFsaWRhdGVTdHJ1Y3QoJnVzZXIsIHZhbGlkYXRpb24uRmllbGQoJnVzZXIuQ291bnRyeSksIHZhbGlkYXRpb24uRmllbGQoJnVzZXIuQ3VycmVuY3kpKTsgZXJyICE9IG5pbCB7CiAgICAgICAgICAgIGxvZy5GYXRhbChlcnIpCgl9CgoJLy8gNS4gbG9va3VwIGJ5IGFscGhhMiwgYWxwaGEzLCBjb3VudHJ5IG5hbWUKCWlmIHVzZXJDb3VudHJ5LCBvayA6PSBjb3VudHJ5LkJ5QWxwaGEyQ29kZSh1c2VyLkNvdW50cnkpOyBvayB7CiAgICAgICAgICAgIGZtdC5QcmludGYoImNvdW50cnkgbmFtZSAtICclcycsIGFscGhhLTIgLSAnJXMnLCBhbHBoYS0zIC0gJyVzJyIsIHVzZXJDb3VudHJ5Lk5hbWUoKSwgdXNlckNvdW50cnkuQWxwaGEyQ29kZSgpLCB1c2VyQ291bnRyeS5BbHBoYTNDb2RlKCkpCgl9CgoJLy8gNi4gbG9va3VwIGJ5IDIgYW5kIDMgY2hhciBjb2RlcywgbGFuZ3VhZ2UgbmFtZQoJaWYgdXNlckxhbmd1YWdlLCBvayA6PSBsYW5ndWFnZS5CeUFscGhhMkNvZGUodXNlci5MYW5ndWFnZSk7IG9rIHsKICAgICAgICAgICAgZm10LlByaW50ZigibGFuZ3VhZ2UgbmFtZSAtICclcycsIGFscGhhLTIgLSAnJXMnLCBhbHBoYS0zIC0gJyVzJyIsIHVzZXJMYW5ndWFnZS5OYW1lKCksIHVzZXJMYW5ndWFnZS5BbHBoYTJDb2RlKCksIHVzZXJMYW5ndWFnZS5BbHBoYTNDb2RlKCkpCgl9CgoJLy8gNy4gbG9va3VwIGJ5IGNvdW50cnkgZGlhbCBjb2RlCglpZiBwaG9uZUNvdW50cmllcywgb2sgOj0gcGhvbmUuQ291bnRyaWVzQnlEaWFsQ29kZSh1c2VyLkNvdW50cnlEaWFsQ29kZSk7IG9rIHsKICAgICAgICAgICAgZm9yIF8sIHBob25lQ291bnRyeSA6PSByYW5nZSBwaG9uZUNvdW50cmllcyB7CiAgICAgICAgICAgICAgICBmbXQuUHJpbnRmKCJjb3VudHJ5IGJ5IGRpYWwgY29kZSAtICclcyciLCBwaG9uZUNvdW50cnkpCiAgICAgICAgICAgIH0KCX0KCgkvLyA4LiBsb29rdXAgYnkgY291bnRyeQoJaWYgZGlhbENvZGUsIG9rIDo9IHBob25lLkRpYWxCeUFscGhhMkNvZGUodXNlci5Db3VudHJ5KTsgb2sgewogICAgICAgICAgICBmbXQuUHJpbnRmKCInJXMnIGRpYWwgY29kZSBpcyAnJXMnIiwgdXNlci5Db3VudHJ5LCBkaWFsQ29kZSkKICAgICAgICB9CgoJLy8gOS4gbG9va3VwIGJ5IGN1cnJlbmN5IGNvZGUKCWlmIHVzZXJDdXJyZW5jeSwgb2sgOj0gY3VycmVuY3kuQnlDb2RlKHVzZXIuQ3VycmVuY3kpOyBvayB7CiAgICAgICAgICAgIGZtdC5QcmludGYoImN1cnJlbmN5IG5hbWUgLSAnJXMnLCBjb2RlIC0gJyVzJywgbnVtYmVyIC0gJyVzJywgY291bnRyaWVzIC0gJyVzJywgZGVjaW1hbCBwbGFjZXMgLSAnJWQnIiwKICAgICAgICAgICAgICAgIHVzZXJDdXJyZW5jeS5DdXJyZW5jeSgpLCB1c2VyQ3VycmVuY3kuQ29kZSgpLCB1c2VyQ3VycmVuY3kuTnVtYmVyKCksIHVzZXJDdXJyZW5jeS5Db3VudHJpZXMoKSwgdXNlckN1cnJlbmN5LkRlY2ltYWxQbGFjZXMoKSkKCX0KCgkvLyAxMC4gc3RvcmUgaW4gZGIKCWZtdC5QcmludGxuKHVzZXIuQ291bnRyeS5WYWx1ZSgpKSAgLy9wcmludHMgJ0NBJwoJZm10LlByaW50bG4odXNlci5DdXJyZW5jeS5WYWx1ZSgpKSAvL3ByaW50cyAnQ0FOJwoJZm10LlByaW50bG4odXNlci5MYW5ndWFnZS5WYWx1ZSgpKSAvL3ByaW50cyAnZnInCgoJLy8gMTEuIHVzZSBzcGVjaWZpYyBjb3VudHJ5IGNvbnN0YW50cwoJZm10LlByaW50bG4oY291bnRyeS5DYW5hZGEuQWxwaGEyQ29kZSgpKQoJZm10LlByaW50bG4oIm5hbWU6IiwgbmFtZS5DYW5hZGEpCglmbXQuUHJpbnRsbigiYWxwaGEtMjoiLCBhbHBoYTIuQ0EpCglmbXQuUHJpbnRsbigiYWxwaGEtMzoiLCBhbHBoYTMuQ0FOKQoKCS8vIDEyLiB1c2Ugc3BlY2lmaWMgY3VycmVuY3kgY29kZXMKCWZtdC5QcmludGxuKGNvZGUuQ0FEKQp9CmBgYAoKIyMgTGlua3M6Ci0gQ3VycmVuY3kgQ29kZXMgWyhJU08gNDIxNyldKGh0dHBzOi8vd3d3LmN1cnJlbmN5LWlzby5vcmcvZW4vaG9tZS90YWJsZXMvdGFibGUtYTEuaHRtbCkgLSBbd2lraV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzQyMTcpLCBbZGF0YSBzb3VyY2VdKGh0dHBzOi8vd3d3LnNpeC1ncm91cC5jb20vZGFtL2Rvd25sb2FkL2ZpbmFuY2lhbC1pbmZvcm1hdGlvbi9kYXRhLWNlbnRlci9pc28tY3VycnJlbmN5L2xpc3RzL2xpc3Qtb25lLnhtbCkKLSBDb3VudHJ5IENvZGVzIFsoSVNPIDMxNjYpXShodHRwczovL3d3dy5pc28ub3JnL2lzby0zMTY2LWNvdW50cnktY29kZXMuaHRtbCkgLSBbd2lraV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzMxNjYtMikKLSBVUkwoaW5jbHVkaW5nIEh0dHBVUkwpIFsoc3RhbmRhcmQpXShodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvKSAtIFt3aWtpXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VUkwpCi0gRW1haWwgWyhwYXJ0IG9mIFJGQzUzMjIpXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMikgLSBbd2lraV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRW1haWxfYWRkcmVzcykKLSBUaW1lem9uZSBbKFJGQzY1NTcgSUFOQSB0aW1lem9uZXMpXShodHRwczovL3d3dy5pYW5hLm9yZy90aW1lLXpvbmVzKSAtIFt3aWtpXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9UaW1lX3pvbmUpCi0gTGFuZ3VhZ2VzIFsoSVNPIDYzOS0xKV0oaHR0cHM6Ly93d3cuaXNvLm9yZy9zdGFuZGFyZC8yMjEwOS5odG1sKSAtIFt3aWtpXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX0lTT182MzktMV9jb2Rlcyk7IFsoSVNPIDYzOS0yKV0oaHR0cHM6Ly93d3cuaXNvLm9yZy9zdGFuZGFyZC80NzY3Lmh0bWwpIC0gW3dpa2ldKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xpc3Rfb2ZfSVNPXzYzOS0yX2NvZGVzKSwgW2RhdGEgc291cmNlXShodHRwczovL2RhdGFodWIuaW8vY29yZS9sYW5ndWFnZS1jb2Rlcy9yL2xhbmd1YWdlLWNvZGVzLTNiMi5qc29uKQotIERpYWwgQ29kZXMgWyhFLjE2NCldKGh0dHBzOi8vd3d3Lml0dS5pbnQvcmVjL1QtUkVDLUUuMTY0LTIwMTIwMy1JIVN1cDYvZW4pIC0gW3dpa2ldKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0UuMTY0KSwgW2RhdGEgc291cmNlXShodHRwczovL2RhdGFodWIuaW8vY29yZS9jb3VudHJ5LWNvZGVzL3IvY291bnRyeS1jb2Rlcy5qc29uKQotIEJDUDQ3IGxhbmd1YWdlIHRhZ3MgWyh3aWtpKV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSUVURl9sYW5ndWFnZV90YWcpLCBbcmZjXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9pbmZvL2JjcDQ3KQo= readmeEtag: '"ac383a2beb748745027f0ecef63e948c2f69d7e1"' readmeLastModified: Fri, 26 Jul 2024 20:27:42 GMT repositoryId: 360145760 description: >- Library providing opanapi3 and Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types. created: '2021-04-21T11:34:25Z' updated: '2024-07-26T20:27:49Z' language: Go archived: false stars: 18 watchers: 2 forks: 8 owner: mikekonan logo: https://avatars.githubusercontent.com/u/36304777?v=4 license: MIT repoEtag: '"2cd63229e297359171d3a676a66ace39249cdaeb43efd34accd8f9b652ab57d3"' repoLastModified: Fri, 26 Jul 2024 20:27:49 GMT foundInMaster: true category: Low-level Tooling id: fe04f57bdbf5a56f74b29a4a912ef4c2 - source: openapi3 tags repository: https://github.com/felipementel/deploy.cachorro.api v3: true id: 0812df37e319298aadaf68398b59b2d5 repositoryMetadata: base64Readme: >- IyBERVBMT1kuQ2FjaG9ycm8uQXBpCgohW0ltYWdlbSBwcm9qZXRvIGFwaSBkZSBjYWNob3Jyb10oLi9kb2NzL2ltZ3JlYWRtZTEucG5nKQoKWyFbUXVhbGl0eSBnYXRlXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL3F1YWxpdHlfZ2F0ZT9wcm9qZWN0PWZlbGlwZW1lbnRlbF9ERVBMT1kuQ2FjaG9ycm8uQXBpKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9ZmVsaXBlbWVudGVsX0RFUExPWS5DYWNob3Jyby5BcGkpCiFbYWN0aW9ucy5dKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxpcGVtZW50ZWwvREVQTE9ZLkNhY2hvcnJvLkFwaS9hY3Rpb25zL3dvcmtmbG93cy9wdXNoLWltYWdlLnlhbWwvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKQojIENvbmZpZ3VyYcOnw6NvIGxvY2FsIGRvIEdpdAoKYGBgCmdpdCBjb25maWcgLS1sb2NhbCAtLWxpc3QKYGBgCgpgYGAKZ2l0IGNvbmZpZyAtLWxvY2FsIHVzZXIubmFtZSAiRmVsaXBlIEF1Z3VzdG8iCmBgYAoKYGBgCmdpdCBjb25maWcgLS1sb2NhbCB1c2VyLmVtYWlsIGZlbGlwZW1lbnRlbEBob3RtYWlsLmNvbQpgYGAKCmBgYAoKZ2l0IGZldGNoIG9yaWdpbiAtLXBydW5lCgpgYGAKClByb2pldG8gZWR1Y2FjaW9uYWwsIGNyaWFkbyBlIG1hbnRpZG8gYXRyYXbDqXMgZG8gY2FuYWwgREVQTE9ZIG5vIFlvdVR1YmUuCgo+IFBhcmEgY3JpYXIgYSBpbWFnZW0sIGEgcGFydGlyIGRvIGRpcmV0w7NyaW8gcm9vdCBkYSBhcGxpY2HDp8OjbyAocGFzdGEgcXVlIGNvbnRlbSBvIGFycXVpdm8gc2xuKQoKIyBwcmUtcmVxdWlzaXRvcyBwYXJhIGV4ZWN1dGFyIG8gcHJvamV0bwoKMS4gRG9ja2VyCjIuIFVtIGNvbnRhIG5vIEF6dXJlIHBhcmEgY3JpYXIgcmVjdXJzb3MKCj4gUGFyYSBleGVjdXRhciBvIHByb2pldG8gbG9jYWw6CgpgYGAKZG90bmV0IHJ1biAtLXByb2plY3QgLi9zcmMvREVQTE9ZLkNhY2hvcnJvLkFwaS9ERVBMT1kuQ2FjaG9ycm8uQXBpLmNzcHJvaiBBU1BORVRDT1JFX0VOVklST05NRU5UPWFhYSBDb25uZWN0aW9uU3RyaW5nczpBcHBsaWNhdGlvbkluc2lnaHRzPSJiYmIiIENvbm5lY3Rpb25TdHJpbmdzOkRlZmF1bHRDb25uZWN0aW9uPSJjY2MiIENvbm5lY3Rpb25TdHJpbmdzOkFwcENvbmZpZ3VyYXRpb249ImRkZCIKQXBwbGljYXRpb25JbnNpZ2h0czpBcGlLZXk9ImVlZSIgS2V5VmF1bHQ6VmF1bHRVcmk9ImZmZiIKYGBgCgo+IFBhcmEgZXhlY3V0YXIgbyBwcm9qZXRvIGxvY2FsLCB1dGlsaXphbmRvIGRvY2tlcgoKYGBgCmRvY2tlciBjb250YWluZXIgcnVuIC0tcm0gLXAgODA4ODo4MCBcCi1lIEFTUE5FVENPUkVfRU5WSVJPTk1FTlQ9YWFhIFwKLWUgQ29ubmVjdGlvblN0cmluZ3NfX0FwcGxpY2F0aW9uSW5zaWdodHM9ImJiYiIgXAotZSBDb25uZWN0aW9uU3RyaW5nc19fRGVmYXVsdENvbm5lY3Rpb249ImNjYyIgXAotZSBDb25uZWN0aW9uU3RyaW5nc19fQXBwQ29uZmlndXJhdGlvbj0iZGRkIiBcCi1lIEFwcGxpY2F0aW9uSW5zaWdodHNfX0FwaUtleT0iZWVlIiBcCi1lIEtleVZhdWx0X19WYXVsdFVyaT0iZmZmIiBcCi1lIEF6dXJlQWRfX0luc3RhbmNlPSJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20iIFwKLWUgQXp1cmVBZF9fQ2xpZW50SWQ9ImdnZyIgXAotZSBBenVyZUFkX19UZW5hbnRJZD0iaGhoIiBcCmZlbGlwZW1lbnRlbC9jYWNob3Jyby5hcGk6bGF0ZXN0CmBgYAoKYGBgCmFhYSA9IERldmVsb3BtZW50fFByb2R1Y3Rpb24KYmJiID0gQ29ubmVjdGlvblN0cmluZyBkbyBBcHBsaWNhdGlvbiBJbnNpZ2h0cwpjY2MgPSBDb25uZWN0aW9uIFN0cmluZyAoQXp1cmUgU1FMIERhdGFiYXNlIG91IGh0dHBzOi8vaHViLmRvY2tlci5jb20vXy9taWNyb3NvZnQtYXp1cmUtc3FsLWVkZ2UpCmRkZCA9IENvbm5lY3Rpb24gc3RyaW5nIGRvIEFwcCBDb25maWd1cmF0aW9uCmVlZSA9IEFwaUtleSBnZXJhZGEgZGVudHJvIGRvIEFwcGxpY2F0aW9uIEluc2lnaHRzCmZmZiA9IFVSSSBkbyBBenVyZSBLZXlWYXVsdApnZ2cgPSBJZGVudGlmaWNhZG9yIGRvIGNsaWVudGUgY3JpYWRvIG5vIEVudHJhIElECmhoaCA9IElkZW50aWZpY2Fkb3IgZG8gVGVuYW50CmBgYAoKQ29tYW5kbyBwYXJhIHN1YmlyIG8gYmFuY28gZGUgZGFkb3MgbG9jYWw6CgpgYGAKZG9ja2VyIHJ1biAtLWNhcC1hZGQgU1lTX1BUUkFDRSAtZSAnQUNDRVBUX0VVTEE9MScgLWUgJ01TU1FMX1NBX1BBU1NXT1JEPUFiY2QxMjM0JScgLWUgJ01TU1FMX1BJRD1EZXZlbG9wZXInIC1wIDE0MzM6MTQzMyAtLW5hbWUgYXp1cmVzcWxlZGdlIC1kIG1jci5taWNyb3NvZnQuY29tL2F6dXJlLXNxbC1lZGdlOjIuMC4wCmBgYAoKQ2FzbyBxdWVpcmEgdGVzdGFyIGNvbSBvdXRyYSB0YWcsIHV0aWxpemUgb3MgY29tYW5kb3MgYWJhaXhvIHBhcmEgb2J0ZXIgYSBsaXN0YSBkZSB0YWdzCgpgYGAKaHR0cHM6Ly9tY3IubWljcm9zb2Z0LmNvbS92Mi9henVyZS1zcWwtZWRnZS90YWdzL2xpc3QKYGBgCgojIFRlc3RlcyBkZSB1bmlkYWRlCgpUZWNub2xvZ2lhOiBYVW5pdAoKMC4gUHJlIHJlcXVpc2l0bwogICBTZXLDoSBuZWNlc3PDoXJpbyBpbnN0YWxhciBvcyBkb2lzIHBhY290ZXMgYWJhaXhvIHBhcmEgdGVyIHN1Y2Vzc28gYW8gZXhlY3V0YXIgb3MgY29tYW5kb3MgZGVzY3JpdG9zIG5lc3NlIGFycXVpdm8uCgpgYGAKZG90bmV0IHRvb2wgaW5zdGFsbCAtLWdsb2JhbCBkb3RuZXQtcmVwb3J0Z2VuZXJhdG9yLWdsb2JhbHRvb2wKYGBgCgpgYGAKZG90bmV0IHRvb2wgaW5zdGFsbCAtLWdsb2JhbCBkb3RuZXQtY292ZXJhZ2UKYGBgCgoxLiBDb21vIEV4ZWN1dGFyOgogICAxLjEgQSBwYXJ0aXIgZGEgcGFzdGEgc3JjIGV4ZWN1dGUgbyBjb21hbmRvOgoKYGBgCmRvdG5ldCB0ZXN0CmBgYAoKMi4gR2VyYcOnw6NvIGRlIHJlbGF0w7NyaW8gZGUgdGVzdGVzCgogICAxLjEgQSBwYXJ0aXIgZGEgcGFzdGEgc3JjIGV4ZWN1dGUgbyBjb21hbmRvOgoKYGBgCmRvdG5ldCB0ZXN0IC0tY29sbGVjdDoiWFBsYXQgQ29kZSBDb3ZlcmFnZSIgLS1sb2dnZXIgImNvbnNvbGU7dmVyYm9zaXR5PWRldGFpbGVkIiAtLXJlc3VsdHMtZGlyZWN0b3J5IC4uXFRlc3RSZXN1bHRzXFhQbGF0Q29kZUNvdmVyYWdlXApgYGAKCmUgZGVwb2lzIGV4ZWN1dGU6CgpgYGAKcmVwb3J0Z2VuZXJhdG9yIC1yZXBvcnRzOi4uXFRlc3RSZXN1bHRzXFhQbGF0Q29kZUNvdmVyYWdlXCoqXGNvdmVyYWdlLmNvYmVydHVyYS54bWwgIC10YXJnZXRkaXI6Li5cVGVzdFJlc3VsdHNcWFBsYXRDb2RlQ292ZXJhZ2VcQ292ZXJhZ2VSZXBvcnQgLXJlcG9ydHR5cGVzOiJIdG1sO1NvbmFyUXViZTtKc29uU3VtbWFyeTtCYWRnZXMiIC1jbGFzc2ZpbHRlcnM6Ii0qLk1pZ3JhdGlvbnMuKiIgLXZlcmJvc2l0eTpWZXJib3NlIC10aXRsZTpDYWNob3Jyby5BUEkgLXRhZzpjYW5hbC1kZXBsb3kKYGBgCgpvdQoKYGBgCiR2YXIgPSAoR2V0LURhdGUpLlRvU3RyaW5nKCJ5eXl5TU1kZC1ISG1tc3MiKTsgZG90bmV0LWNvdmVyYWdlIGNvbGxlY3QgImRvdG5ldCB0ZXN0IiAtZiB4bWwgLW8gIi4uXFRlc3RSZXN1bHRzXERvdG5ldENvdmVyYWdlQ29sbGVjdFwkdmFyXGNvdmVyYWdlLmNvYmVydHVyYS54bWwiCmBgYAoKZSBkZXBvaXMgZXhlY3V0ZToKCmBgYApyZXBvcnRnZW5lcmF0b3IgLXJlcG9ydHM6Li5cVGVzdFJlc3VsdHNcRG90bmV0Q292ZXJhZ2VDb2xsZWN0XCoqXGNvdmVyYWdlLmNvYmVydHVyYS54bWwgIC10YXJnZXRkaXI6Li5cVGVzdFJlc3VsdHNcRG90bmV0Q292ZXJhZ2VDb2xsZWN0XENvdmVyYWdlUmVwb3J0IC1yZXBvcnR0eXBlczoiSHRtbDtTb25hclF1YmU7SnNvblN1bW1hcnk7QmFkZ2VzIiAtdmVyYm9zaXR5OlZlcmJvc2UgLXRpdGxlOkNhY2hvcnJvLkFQSSAtdGFnOmNhbmFsLWRlcGxveQpgYGAKCjEuMiBBIHBhcnRpciBkYSBwYXN0YSBzcmMgZXhlY3V0ZSBvIGNvbWFuZG86CgojIEFtYmllbnRlIExvY2FsCgojIyBTb25hclF1YmUKCjEuIENvbWFuZG9zIHBhcmEgc3VibWV0ZXIgbyBjw7NkaWdvIGFvIHNvbmFycXViZSBkbyBDb250YWluZXIKCmBgYApkb3RuZXQgc29uYXJzY2FubmVyIGJlZ2luIC9rOiJDYWNob3Jyb0FQSSIgL2Q6c29uYXIuaG9zdC51cmw9Imh0dHA6Ly9sb2NhbGhvc3Q6OTA0NCIgL2Q6c29uYXIudG9rZW49Inh4eHh4IiAvZDpzb25hci5jcy52c2NvdmVyYWdleG1sLnJlcG9ydHNQYXRocz1jb3ZlcmFnZS54bWwgL2Q6c29uYXIuZXhjbHVzaW9ucz0iKiovTWlncmF0aW9ucy8qKiIKYGBgCgpgYGAKZG90bmV0IHJlc3RvcmUgLlxzcmNcREVQTE9ZLkNhY2hvcnJvLkFwaVxERVBMT1kuQ2FjaG9ycm8uQXBpLmNzcHJvagpgYGAKCmBgYApkb3RuZXQgYnVpbGQgLlxzcmNcREVQTE9ZLkNhY2hvcnJvLkFwaVxERVBMT1kuQ2FjaG9ycm8uQXBpLmNzcHJvaiAtLW5vLWluY3JlbWVudGFsCmBgYAoKYGBgCmRvdG5ldC1jb3ZlcmFnZSBjb2xsZWN0ICdkb3RuZXQgdGVzdCAuL3NyYy8nIC1mIHhtbCAtbyAnY292ZXJhZ2UueG1sJwpgYGAKCmBgYApkb3RuZXQtc29uYXJzY2FubmVyIGVuZCAvZDpzb25hci50b2tlbj0ieHh4eHgiCmBgYAoKLS0tCgojIEVudGl0eUZyYW1ld29yayBDb21tYW5kcwoKYGBgCgpkb3RuZXQgdG9vbCBpbnN0YWxsIC0tZ2xvYmFsIGRvdG5ldC1lZgoKYGBgCgpgYGAKCmRvdG5ldCBlZiBtaWdyYXRpb25zIGFkZCBJbml0RGF0YWJhc2VBUEkgLXMgREVQTE9ZLkNhY2hvcnJvLkFwaSAtcCBERVBMT1kuQ2FjaG9ycm8uSW5mcmEuUmVwb3NpdG9yeSAtYyBERVBMT1kuQ2FjaG9ycm8uSW5mcmEuUmVwb3NpdG9yeS5DYWNob3Jyb0RiQ29udGV4dCAtLW91dHB1dC1kaXIgTWlncmF0aW9ucy9BUEkgLXYKCmBgYAoKYGBgCgpkb3RuZXQgZWYgZGF0YWJhc2UgdXBkYXRlIEluaXREYXRhYmFzZUFQSSAtLXN0YXJ0dXAtcHJvamVjdCBERVBMT1kuQ2FjaG9ycm8uQXBpIC0tcHJvamVjdCBERVBMT1kuQ2FjaG9ycm8uSW5mcmEuUmVwb3NpdG9yeSAtLWNvbnRleHQgREVQTE9ZLkNhY2hvcnJvLkluZnJhLlJlcG9zaXRvcnkuQ2FjaG9ycm9EYkNvbnRleHQgLS12ZXJib3NlCgpgYGAKCkNvbm5lY3Rpb24gU3RyaW5nCgpgYGAKCkRhdGEgU291cmNlPTEyNy4wLjAuMSwxNDMzO0luaXRpYWwgQ2F0YWxvZz1DYWNob3JybztVc2VyIElkPXNhO1Bhc3N3b3JkPUFiY2QxMjM0JTtJbnRlZ3JhdGVkIFNlY3VyaXR5PUZhbHNlO011bHRpcGxlQWN0aXZlUmVzdWx0U2V0cz1UcnVlO1RydXN0U2VydmVyQ2VydGlmaWNhdGU9dHJ1ZTsKCmBgYAoKIyBBenVyZSBFbnRyYSBJRAoKYGBgCgpodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvZW50cmEvaWRlbnRpdHktcGxhdGZvcm0vdjItb3ZlcnZpZXcKYGBgCgpgYGAKaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2VudHJhL2lkZW50aXR5LXBsYXRmb3JtL3F1aWNrc3RhcnQtcmVnaXN0ZXItYXBwCmBgYAoKYGBgCmh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9lbnRyYS9pZGVudGl0eS1wbGF0Zm9ybS9zY29wZXMtb2lkYwpgYGAKCmBgYAoKaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2VudHJhL2lkZW50aXR5LXBsYXRmb3JtL3NjZW5hcmlvLXByb3RlY3RlZC13ZWItYXBpLWFwcC1jb25maWd1cmF0aW9uP3RhYnM9YXNwbmV0Y29yZSNiZWFyZXItdG9rZW4KCmBgYAoKYGBgCgpodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvZW50cmEvaWRlbnRpdHktcGxhdGZvcm0vc2NlbmFyaW8td2ViLWFwcC1zaWduLXVzZXItYXBwLWNvbmZpZ3VyYXRpb24/dGFicz1hc3BuZXQKCmBgYAoKPGJyLz4KPGJyLz4KPGJyLz4KPGJyLz4KPGJyLz4KCiMjIExpbmsgZGUgZG9jdW1lbnRhw6fDtWVzIGNpdGFkYXMgZHVyYW50ZSBhIGNyaWHDp2FvIGRvIHByb2pldG8KCmBgYApodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvZG90bmV0L2NvcmUvdG9vbHMvZG90bmV0CmBgYAoKYGBgCgpodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXNwbmV0L2NvcmUvZnVuZGFtZW50YWxzL2xvZ2dpbmcvP3ZpZXc9YXNwbmV0Y29yZS03LjAKCmBgYAoKYGBgCmh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9kb3RuZXQvY29yZS9jb21wYXRpYmlsaXR5L2NvbnRhaW5lcnMvOC4wL2FwcC11c2VyCgpgYGAKCmBgYAoKaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2FzcG5ldC9jb3JlL3NlY3VyaXR5L2FwcC1zZWNyZXRzP3ZpZXc9YXNwbmV0Y29yZS03LjAmdGFicz13aW5kb3dzCgpgYGAKCiMjIyBHaXRodWIKCmBgYApodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zCgpgYGAKCmBgYApodHRwczovL2dpdGh1Yi5jb20vZGFuaWVscGFsbWUvUmVwb3J0R2VuZXJhdG9yCmBgYAoKYGBgCmh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrZXRwbGFjZS9hY3Rpb25zL3JlcG9ydGdlbmVyYXRvcgpgYGAKCmBgYApodHRwczovL2dpdGh1Yi5jb20vbWFya2V0cGxhY2UvYWN0aW9ucy9yZXBvcnRnZW5lcmF0b3IKYGBgCgojIyMgSUxvZ2dlcgoKYGBgCgpodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXNwbmV0L2NvcmUvZnVuZGFtZW50YWxzL2xvZ2dpbmcvP3ZpZXc9YXNwbmV0Y29yZS03LjAKCmBgYAoKYGBgCgpodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvZG90bmV0L2NvcmUvdG9vbHMvZG90bmV0LXRlc3QKCmBgYAoKYGBgCgpodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYXp1cmUtbW9uaXRvci9hcHAvaWxvZ2dlcj90YWJzPWRvdG5ldDYKCmBgYAoKIyMjIEFwcGxpY2F0aW9uIEluc2lnaHRzCgpgYGAKCmh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9wdC1ici9henVyZS9henVyZS1tb25pdG9yL2FwcC9hc3AtbmV0LWNvcmU/dGFicz1uZXRjb3JlbmV3JTJDbmV0Y29yZTYKCmBgYAoKTGl2ZSBTdHJlYW0gLyBMaXZlIE1ldHJpY3MKCmBgYAoKaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL2F6dXJlLW1vbml0b3IvYXBwL2xpdmUtc3RyZWFtP3RhYnM9ZG90bmV0NgoKYGBgCgojIyMgS2V5IFZhdWx0CgpgYGAKCmh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9wdC1ici9henVyZS9rZXktdmF1bHQvZ2VuZXJhbC9iYXNpYy1jb25jZXB0cwoKYGBgCgpgYGAKaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2RvdG5ldC9henVyZS9zZGsvZGVwZW5kZW5jeS1pbmplY3Rpb24/dGFicz13ZWItYXBwLWJ1aWxkZXIKYGBgCgpgYGAKaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL3B0LWJyL2FzcG5ldC9jb3JlL3NlY3VyaXR5L2tleS12YXVsdC1jb25maWd1cmF0aW9uP3ZpZXc9YXNwbmV0Y29yZS0zLjEKYGBgCgojIyMgQ29uZmlndXJhdGlvbgoKYGBgCgpodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXNwbmV0L2NvcmUvZnVuZGFtZW50YWxzL2NvbmZpZ3VyYXRpb24vP3ZpZXc9YXNwbmV0Y29yZS03LjAKCmBgYAoKIyMjIFNvbmFyUXViZQoKYGBgCgpodHRwczovL2RvY3Muc29uYXJzb3VyY2UuY29tL3NvbmFyY2xvdWQvYWR2YW5jZWQtc2V0dXAvYW5hbHlzaXMtcGFyYW1ldGVycy8KCmBgYAoKIyMjIEF6dXJlIEFwcCBDb25maWd1cmF0aW9uCgpgYGAKCmh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9henVyZS1hcHAtY29uZmlndXJhdGlvbi9xdWlja3N0YXJ0LWFzcG5ldC1jb3JlLWFwcD90YWJzPWNvcmU2eApgYGAKCmBgYApodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYXp1cmUtYXBwLWNvbmZpZ3VyYXRpb24vaG93dG8tZmVhdHVyZS1maWx0ZXJzLWFzcG5ldC1jb3JlCmBgYAoKYGBgCmh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9henVyZS1hcHAtY29uZmlndXJhdGlvbi9lbmFibGUtZHluYW1pYy1jb25maWd1cmF0aW9uLWFzcG5ldC1jb3JlP3RhYnM9Y29yZTZ4CgpgYGAKCiMjIyBEb2NrZXIgQ29tbWFuZHMKCmBgYAoKZG9ja2VyIGNvbnRhaW5lciBybSAtZiAkKGRvY2tlciBjb250YWluZXIgbHMgLWEgLXEpCgpgYGAKCmBgYAoKZG9ja2VyIHZvbHVtZSBybSAkKGRvY2tlciB2b2x1bWUgbHMgLXEpCgpgYGAKCmBgYAoKZG9ja2VyIGltYWdlIHJtIC1mICQoZG9ja2VyIGltYWdlIGxzIC1hIC1xKQoKYGBgCgpgYGAKCmRvY2tlciBzeXN0ZW0gcHJ1bmUKCmBgYAoKYGBgCgpkb2NrZXIgaW1hZ2UgbHMKCmBgYAoKYGBgCgpkb2NrZXIgYnVpbGQgLWYgLi9zcmMvREVQTE9ZLkNhY2hvcnJvLkFwaS9Eb2NrZXJmaWxlIC10IGZlbGlwZW1lbnRlbC9jYWNob3Jyby5hcGk6bG9jYWwgLi9zcmMKCmBgYAoKYGBgCgpkb2NrZXIgdGFnIDQzMGY1ZDlmNDIyOSBjcmNhbmFsZGVwbG95ZGV2LmF6dXJlY3IuaW8vY2FjaG9ycm8uYXBpOmxhdGVzdAoKYGBgCgpgYGAKCmRvY2tlciBwdXNoIGNyY2FuYWxkZXBsb3lkZXYuYXp1cmVjci5pby9jYWNob3Jyby5hcGk6bGF0ZXN0CgpgYGAKCmBgYAoKZG9ja2VyIHB1c2ggZ2hjci5pby9mZWxpcGVtZW50ZWwvY2FjaG9ycm8uYXBpOmxhdGVzdAoKYGBgCgpgYGAKCmRvY2tlciBjb250YWluZXIgcnVuIC1wIDgwODg6ODAgY3JjYW5hbGRlcGxveWRldi5henVyZWNyLmlvL2NhY2hvcnJvLmFwaTpsYXRlc3QKCmBgYAoKYGBgCgpkb2NrZXIgY29udGFpbmVyIHJ1biAtLXJtIC0tbmFtZSBzb25hci1jYW5hbC1kZXBsb3kgLXAgOTA0NDo5MDAwIHNvbmFycXViZToxMC4zLjAtY29tbXVuaXR5CgpgYGAKCiMjIyBDb21hbmRvcyBBenVyZSBLZXkgVmF1bHQKCmBgYAoKYXoga2V5dmF1bHQgc2VjcmV0IHNob3cgLS1uYW1lIENhY2hvcnJvQ29ubmVjdGlvblN0cmluZyAtLXZhdWx0LW5hbWUga3YtY2FuYWxkZXBsb3ktZGV2CgpgYGAKCmBgYAoKQE1pY3Jvc29mdC5LZXlWYXVsdChTZWNyZXRVcmk9aHR0cHM6Ly9rdi1jYW5hbGRlcGxveS1kZXYudmF1bHQuYXp1cmUubmV0L3NlY3JldHMvQ29ubmVjdGlvblN0cmluZ3MtLUFwcGxpY2F0aW9uSW5zaWdodHMvKQoKYGBgCgpgYGAKCkBNaWNyb3NvZnQuS2V5VmF1bHQoVmF1bHROYW1lPWt2LWNhbmFsZGVwbG95LWRldjtTZWNyZXROYW1lPUNvbm5lY3Rpb25TdHJpbmdzLS1BcHBsaWNhdGlvbkluc2lnaHRzKQoKYGBgCgojIyMgQ29tYW5kb3MgQXp1cmUgQ29udGFpbmVyIEluc3RhbmNlCgpgYGAKCmF6IGNvbnRhaW5lciBsb2dzIC0tcmVzb3VyY2UtZ3JvdXAgcmctY2FuYWxkZXBsb3ktZGV2IC0tbmFtZSBhcGktY2FjaG9ycm8KCmBgYAoKYGBgCgpheiBjb250YWluZXIgZXhlYyAtZyBnLWNhbmFsZGVwbG95LWRldiAtLW5hbWUgY2FjaG9ycm8uYXBpIC0tZXhlYy1jb21tYW5kICIvYmluL2Jhc2giCgpgYGAKCiNnaXQKI2dpdGh1YgojZ2l0aHViLWFjdGlvbnMKI3NvbmFyLXF1YmUKI3dzbC0yCiNkb2NrZXIKI2RvY2tlci1jb21wb3NlCiNkb2NrZXItaHViCiNkb25ldAojZWYtY29yZQojZW50aXR5LWZyYW1ld29yay1jb3JlCiN4LXVuaXQKI3Bvc3RtYW4KI2F6dXJlCiNhenVyZS1hcHBsaWNhdGlvbi1pbmdpc2h0cwojYXp1cmUtc3FsLWRhdGFiYXNlCiNhenVyZS1hcHAtY29uZmlndXJhdGlvbgojYXp1cmUtY29udGFpbmVyLXJlZ2lzdHJ5CiNhenVyZS1jb250YWluZXItaW5zdGFuY2UKI2F6dXJlLWNvbnRhaW5lci1hcHBzCiNhenVyZS1rZXktdmF1bHQK readmeEtag: '"9b644949f45842b4609922c1b7d9bb9e7e5e6239"' readmeLastModified: Thu, 15 Aug 2024 00:56:25 GMT repositoryId: 682787791 description: API criada no canal DEPLOY para fins de estudo created: '2023-08-24T23:30:51Z' updated: '2024-08-21T17:59:07Z' language: C# archived: false stars: 18 watchers: 2 forks: 4 owner: felipementel logo: https://avatars.githubusercontent.com/u/14238257?v=4 license: Apache-2.0 repoEtag: '"5d54044e5dcee4ab4f24bcf3f1be49be537847074fa3a7d0d556341ba9c837ec"' repoLastModified: Wed, 21 Aug 2024 17:59:07 GMT category: Code Generators foundInMaster: true - source: openapi3 tags repository: https://github.com/yinzhenyu-su/api-typing v3: true id: 79905bfab17d50136d875818f7c1066e repositoryMetadata: base64Readme: >- IyBhcGktdHlwaW5nCgpbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZW4ubmV0L25wbS92L2FwaS10eXBpbmcpXShodHRwczovL25wbS5pbS9hcGktdHlwaW5nKQoKIyMgIVthcGktdHlwaW5nXShodHRwczovL2dpdGh1Yi5jb20veWluemhlbnl1LXN1L2FwaS10eXBpbmcvYmxvYi9tYWluL2FwaS10eXBpbmcuZ2lmP3Jhdz10cnVlKQoKLS0tCgpFbmdsaXNoIHwgW+eugOS9k+S4reaWh10oLi9SRUFETUUuemgtSGFucy5tZCkKCiMjIEEgc3Ryb25nIHR5cGUtaGludCBodHRwIGNsaWVudCBmcmFtd29yayhiYXNlZCBvbiBheGlvcykuCgogICAgRGVhciBmcm9udC1lbmQgY29sbGVhZ3VlcywgYXJlIHlvdSBmZWQgdXAgd2l0aCB0aGUgaW50ZXJmYWNlIHdpdGggdGhlIGJhY2stZW5kIGV2ZXJ5IGRheSwgYWRqdXN0aW5nIHRoZSBpbnRlcmZhY2UgcGF0aCBhbmQgcGFyYW1ldGVyIHRyYW5zZmVyIGZvcm1hdD8gVGlyZWQgb2Ygdmlld2luZyBiYWNrZW5kIGRvY3VtZW50YXRpb24/IEFyZSB5b3UgdGlyZWQgb2YgY2hlY2tpbmcgYW5kIHN5bmNocm9uaXppbmcgdGhlIGludGVyZmFjZSBmaWVsZCBjaGFuZ2VzIGFmdGVyIGVhY2ggdXBkYXRlPyBJdCdzIHRpbWUgdG8gbWFrZSB0aGVzZSBqb2JzIGEgbGl0dGxlIGVhc2llci4KCiMjIEluc3RhbGwKCmBgYGJhc2gKcG5wbSBpIGFwaS10eXBpbmcKYGBgCgojIyBVc2FnZQoKMS4gIHNldCBhIHNjcmlwdCB0byBydW4gYGdldC10eXBlc2AgaW4gYHBhY2thZ2UuanNvbmAKCiAgICBgYGBqc29uCiAgICB7CiAgICAgICJzY3JpcHRzIjogewogICAgICAgICJnZXQtdHlwZXMiOiAiZ2V0LXR5cGVzIFwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL3BldHN0b3JlLWV4cGFuZGVkLmpzb25cIiBcIi4vYXBpLXR5cGluZy1tZXRhLmQudHNcIiIKICAgICAgfQogICAgfQogICAgYGBgCgogICAgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgb3BlbmFwaSBkZWZpbml0aW9uIGZpbGUsIGpzb24gZm9ybWF0LgogICAgdGhlIHNlY29uZCBhcmd1bWVudCBpcyBhdXRvLWdlbmVyYXRlZCB0eXBlIGRlZmluZXRpb24gZmlsZSBuYW1lIHdpdGggZGVmYXVsdCB2YWx1ZSBgYXBpLXR5cGluZy1tZXRhLmQudHNgCgoyLiAgcnVuCgogICAgYGBgYmFzaAogICAgcG5wbSBydW4gZ2V0LXR5cGVzCiAgICBgYGAKCiAgICB0aGUgdHlwZSBkZWZpbml0aW9uIGZpbGUgd291bGQgYmUgZ2VuZXJhdGVkIGluIHlvdXIgcHJvamVjdCByb290LgoKMy4gIGFmdGVyIGBhcGktdHlwaW5nLW1ldGEuZC50c2AgZ2VuZ3JhdGVkIGluIHlvdXIgcHJvamVjdCByb290LiBtYWtlIHN1cmUgeW91ciBgdHNjb25maWcuanNvbmAgaW5jbHVkZSB0aGlzIGRlY2xhcmUuCgogICAgYGBganNvbgogICAgewogICAgICAiaW5jbHVkZSI6IFsiYXBpLXR5cGluZy1tZXRhLmQudHMiXQogICAgfQogICAgYGBgCgo0LiAgaW1wb3J0IGFuZCBlbmpveSBpdCEKCiAgICBgYGB0cwogICAgaW1wb3J0IHsgY3JlYXRlSFRUUENsaWVudCB9IGZyb20gImFwaS10eXBpbmciCiAgICBjcmVhdGVIVFRQQ2xpZW50KHsgYmFzZVVSTDogInlvdXIgYmFzZVVSTCIgfSkKICAgICAgLnBvc3QoImNob29zZS91cmwvd2l0aC9oaW50IiwgewogICAgICAgIC8qKgogICAgICAgICAqIHJlcXVlc3QgZmllbGQgd2l0aCB0eXBlLWhpbnQKICAgICAgICAgKi8KICAgICAgfSkKICAgICAgLnRoZW4oKGQpID0+IHsKICAgICAgICAvKioKICAgICAgICAgKiByZXNwb25zZSBmaWVsZCB3aXRoIHR5cGUtaGludAogICAgICAgICAqLwogICAgICB9KQogICAgYGBgCg== readmeEtag: '"8f2c185bb5ccc94efec5da62ebaebefc3486a830"' readmeLastModified: Wed, 31 Jul 2024 13:33:23 GMT repositoryId: 530271572 description: Axios based HTTP client with type hint created: '2022-08-29T15:06:26Z' updated: '2024-08-24T04:48:57Z' language: TypeScript archived: false stars: 18 watchers: 1 forks: 0 owner: yinzhenyu-su logo: https://avatars.githubusercontent.com/u/16461374?v=4 license: MIT repoEtag: '"04284b4032d406d95f7a3875fb8021844d4c45667474fbe5b5a217e71522dbc8"' repoLastModified: Sat, 24 Aug 2024 04:48:57 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/louis-lau/duckyapi v3: true repositoryMetadata: base64Readme: >- X19OT1RFOl9fIFRoaXMgcHJvamVjdCBpcyBzdGlsbCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIFlvdSBjYW4gYWxyZWFkeSBjaGVjayBpdCBvdXQgaWYgeW91J3JlIGN1cmlvdXMuIFRoZSBBUEkgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgoKIyBEdWNreUFQSQoKQVBJIHRoYXQgaW50ZXJhY3RzIHdpdGggdGhlIFtXaWxkRHVja10oaHR0cHM6Ly9naXRodWIuY29tL25vZGVtYWlsZXIvd2lsZGR1Y2spIEFQSS4gTW9zdGx5IGJ1aWx0IGFzIGEgYmFja2VuZCB0byBbRHVja3lQYW5lbF0oaHR0cHM6Ly9naXRodWIuY29tL2xvdWlzLWxhdS9EdWNreVBhbmVsKS4KCgohW1dlIG5lZWQgdG8gZ28gZGVlcGVyXShkb2NzL2ltYWdlcy9kZWVwZXIuanBnKQoKIyMgV2h5PwpJbiBXaWxkRHVjayBhIHVzZXIgaXMgYSBzaW5nbGUgRW1haWwgQWNjb3VudCwgdXNpbmcgdGhlIGFwaSBhcyBhbiBlbmQtdXNlciB5b3UgY2FuIGFkZCBhZGRyZXNzIGFsaWFzZXMgdG8gdGhhdCBpbmJveC4gWW91IGNhbiBub3QgYWRkIGV4dHJhIGVtYWlsIGFjY291bnRzIG9yIG1hbmFnZSBkb21haW4gbGV2ZWwgZnVuY3Rpb25hbGl0eSBsaWtlIERLSU0uIFRoZSBhaW0gb2YgRHVja3lBUEkgaXMgdG8gb2ZmZXIgYW4gZW5kLXVzZXIgQVBJIHRoYXQgYWxsb3dzIGNvbXBsZXRlIG1hbmFnZW1lbnQgb2YgZG9tYWlucyBhbmQgZW1haWwgYWNjb3VudHMgd2l0aGluIHRob3NlIGRvbWFpbnMuCgojIyBIb3c/CkR1Y2t5QVBJIHN0b3JlcyBpdHMgdXNlcnMgaW4gTW9uZ29EQiwgdGhpcyBjYW4gYmUgdGhlIHNhbWUgaW5zdGFuY2UgdGhhdCB5b3UncmUgYWxyZWFkeSB1c2luZyBmb3IgV2lsZER1Y2suIEVhY2ggdXNlciBvd25zIGEgbGlzdCBvZiBkb21haW5zLCBncmFudGluZyBwZXJtaXNzaW9uIHRvIG1hbmFnZSBka2ltIG9yIGFkZC9lZGl0IGVtYWlsIGFjY291bnRzIGFuZCBmb3J3YXJkZXJzIHVuZGVyIHRoYXQgZG9tYWluLiBFYWNoIHVzZXIgY2FuIGJlIGFzc2lnbmVkIGEgcGFja2FnZSwgY29udGFpbmluZyBxdW90YXMgYW5kIGxpbWl0cyBmb3IgdGhlIHVzZXIuIEN1cnJlbnRseSBub3RoaW5nIGhhcHBlbnMgd2hlbiBxdW90YSBpcyBleGNlZWRlZCwgdGhpcyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuCgpMaWtlIFdpbGREdWNrLCB0aGlzIGFwcGxpY2F0aW9uIGRvZXMgbm90IGRlcGVuZCBvbiBtZW1vcnkgZm9yIGFueXRoaW5nLiBVc2VycyBldGMgYXJlIHN0b3JlZCBpbiBtb25nb2RiLCBxdWV1ZSBtYW5hZ2VtZW50IGlzIGRvbmUgaW4gcmVkaXMuIFRoaXMgYXBwbGljYXRpb24gaXMgc3RhdGVsZXNzLgoKIyMgRmVhdHVyZXMKU2VlIFtEdWNreVBhbmVsIGZlYXR1cmVzXShodHRwczovL2dpdGh1Yi5jb20vbG91aXMtbGF1L0R1Y2t5UGFuZWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1cnJlbnQtZmVhdHVyZXMpLgoKIyMgRGVwZW5kZW5jaWVzCiogTm9kZS5qcwoqIE1vbmdvREIKKiBSZWRpcwoqIFdpbGREdWNrCgojIyBJbnN0YWxsYXRpb24KYGBgYmFzaAokIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vbG91aXMtbGF1L0R1Y2t5QVBJLmdpdAokIGNkIER1Y2t5QVBJCiQgbnBtIGluc3RhbGwKYGBgCgojIyBDb25maWd1cmF0aW9uCkNvcHkgYGNvbmZpZy9leGFtcGxlLmVudmAgdG8gYGNvbmZpZy9wcm9kdWN0aW9uLmVudmAgb3IgYGNvbmZpZy9kZXZlbG9wbWVudC5lbnZgIGRlcGVuZGluZyBvbiB5b3VyIGVudmlyb25tZW50LiBZb3UgbXVzdCBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBzdGFydC4gSWYgeW91J3ZlIG1pc2NvbmZpZ3VyZWQgc29tZXRoaW5nIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgdGVsbCB5b3Ugb24gc3RhcnQuCgojIyBVc2FnZQpgYGBiYXNoCiQgbnBtIHJ1biBjbGVhbgokIG5wbSBydW4gYnVpbGQKJCBucG0gc3RhcnQKCiMgQ3JlYXRlIHlvdXIgZmlyc3QgYWRtaW4gdXNlciwgYWRtaW4gdXNlcnMgYXJlCiMgb25seSBtZWFudCBmb3IgYWRkaW5nIGFuZCB1cGRhdGluZyB1c2Vycy9wYWNrYWdlcwokIG5vZGUgZGlzdC9jbGkgY3JlYXRlLWFkbWluIDx1c2VybmFtZT4KIyBDcmVhdGUgYW4gYXBpIGtleSBmb3IgeW91ciBhZG1pbiB1c2VyCiQgbm9kZSBkaXN0L2NsaSBjcmVhdGUtYXBpa2V5IDx1c2VybmFtZT4gPGtleU5hbWU+CgojIEFkZCBhIG5vcm1hbCB1c2VyIHVzaW5nIHRoZSBhcGksIGJlIHN1cmUgdG8gcmVwbGFjZQojIHRoZSBhY2Nlc3MgdG9rZW4gd2l0aCB0aGUgb25lIHlvdSBqdXN0IGdvdCBmcm9tIGNyZWF0ZS1hcGlrZXkKY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0OjMwMDAvdXNlcnMiIFwKLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSLUFDQ0VTUy1UT0tFTi1IRVJFIiBcCi1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKLWQgJ3sidXNlcm5hbWUiOiJqb2huZG9lIiwgInBhc3N3b3JkIjoic3VwZXJzZWNyZXQifScKCiMgTm93IHVzZSB0aGUgbm9ybWFsIHVzZXIgdG8gbG9nIGluIHRvIER1Y2t5UGFuZWwsCiMgb3IgcmVxdWVzdCBhbiBhY2Nlc3MgdG9rZW4gZnJvbSB0aGUgL2F1dGhlbnRpY2F0aW9uIGVuZHBvaW50CmBgYArwn5GGIEluc3RlYWQgb2YgdXNpbmcgY3VybCB5b3UgY2FuIGFsc28gZXhlY3V0ZSB0aGlzIHJlcXVlc3QgZnJvbSBbbG9jYWxob3N0OjMwMDAvc3dhZ2dlcl0oaHR0cDovL2xvY2FsaG9zdDozMDAwL3N3YWdnZXIpCgojIyBBUEkgZG9jdW1lbnRhdGlvbgpBUEkgZG9jdW1lbnRhdGlvbiB3aXRoIGNvZGUgZXhhbXBsZXMgaXMgYXZhaWxhYmxlIG9uIFtsb3Vpcy1sYXUuZ2l0aHViLmlvL0R1Y2t5QVBJXShodHRwczovL2xvdWlzLWxhdS5naXRodWIuaW8vRHVja3lBUEkpLgoKWW91IGNhbiBhbHNvIHZpc2l0IFtsb2NhbGhvc3Q6MzAwMC9zd2FnZ2VyXShodHRwOi8vbG9jYWxob3N0OjMwMDAvc3dhZ2dlcikgdG8gdHJ5IHRoZSBhcGkgb3V0IGxpdmUgaW4geW91ciBicm93c2VyLiBNdWNoIG5pY2UgdGhhbiB1c2luZyBjdXJsIQoKIyMgSW50ZWdyYXRlZCBEdWNreVBhbmVsCkR1Y2t5QXBpIGNhbiBzZXJ2ZSBEdWNreVBhbmVsIG9uIGl0cyBpbnRlZ3JhdGVkIHNlcnZlci4gSnVzdCBvcGVuIHlvdXIgY29uZmlndXJhdGlvbiBhbmQgc2V0IGBTRVJWRV9EVUNLWVBBTkVMYCB0byBgdHJ1ZWAuIFRoZW4gc2V0IGEgY3VzdG9tIGBCQVNFX1VSTGAgZm9yIHRoZSBhcGksIGZvciBleGFtcGxlIGAvYXBpYC4KCkR1Y2t5cGFuZWwgd2lsbCBub3cgYmUgbGl2ZSBhdCBbbG9jYWxob3N0OjMwMDBdKGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMCksIGFuZCBEdWNreUFwaSBhdCBbbG9jYWxob3N0OjMwMDAvYXBpXShodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpKS4KCiMjIFRhc2sgcXVldWUKQW55IGNyZWF0ZWQgYmFja2dyb3VuZCB0YXNrcyBhbmQgdGhlaXIgcHJvZ3Jlc3MgY2FuIGJlIHZpZXdlZCBvbiBbbG9jYWxob3N0OjMwMDAvcXVldWVzXShodHRwOi8vbG9jYWxob3N0OjMwMDAvcXVldWVzKSB3aXRoIGJhc2ljYXV0aCBpZiB5b3UndmUgZW5hYmxlZCB0aGlzIGluIHRoZSBjb25maWd1cmF0aW9uLiBSZW1vdmluZyBhIGRvbWFpbiBvciBzdXNwZW5kaW5nIGEgdXNlciB3aWxsIHRyaWdnZXIgYSBiYWNrZ3JvdW5kIHRhc2sgdG8gZXhlY3V0ZSBtYXNzIGNoYW5nZXMu readmeEtag: '"1910d5ed1d3bd579279e36aa22d64567a8a46a4a"' readmeLastModified: Fri, 30 Apr 2021 14:53:40 GMT repositoryId: 197958401 description: Domain admin API on top of the WildDuck API. Back-end for DuckyPanel. created: '2019-07-20T16:55:26Z' updated: '2024-03-26T13:34:00Z' language: TypeScript archived: false stars: 18 watchers: 3 forks: 13 owner: louis-lau logo: https://avatars.githubusercontent.com/u/1346804?v=4 license: AGPL-3.0 repoEtag: '"8f9e9405a06089f5766bbe6bda324917f2f22fa5af90c0fc12cabe5e3856d36b"' repoLastModified: Tue, 26 Mar 2024 13:34:00 GMT foundInMaster: true category: Server Implementations id: d8f0bcb887ddf1e1f6c1bcb9d08314e5 - source: openapi3 tags name: openapi homepage: https://github.com/wzshiming/openapi language: Go source_description: OpenAPI 3 Specification for golang category: - Low-level Tooling - Parsers repository: https://github.com/wzshiming/openapi v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJCgpbIVtHb0RvY10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS93enNoaW1pbmcvb3BlbmFwaT9zdGF0dXMuc3ZnKV0oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS93enNoaW1pbmcvb3BlbmFwaSkKWyFbR2l0SHViIGxpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2Uvd3pzaGltaW5nL29wZW5hcGkuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3d6c2hpbWluZy9vcGVuYXBpL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpCgpUaGUgb2JqZWN0IG1vZGVsIGZvciBbT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGRvY3VtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pCgpVSSBtb3ZlIHRvIFtnaXRodWIuY29tL3d6c2hpbWluZy9vcGVuYXBpdWldKGh0dHBzOi8vZ2l0aHViLmNvbS93enNoaW1pbmcvb3BlbmFwaXVpKQoKIyMgTGljZW5zZQoKUG91Y2ggaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgW0xJQ0VOU0VdKGh0dHBzOi8vZ2l0aHViLmNvbS93enNoaW1pbmcvb3BlbmFwaS9ibG9iL21hc3Rlci9MSUNFTlNFKSBmb3IgdGhlIGZ1bGwgbGljZW5zZSB0ZXh0Lgo= readmeEtag: '"ebf44953ba48498ad777498d0330c0eae5ced41c"' readmeLastModified: Fri, 03 Jul 2020 17:16:32 GMT repositoryId: 138125024 description: OpenAPI 3 Specification for golang created: '2018-06-21T05:49:32Z' updated: '2023-09-08T17:41:57Z' language: Go archived: false stars: 17 watchers: 3 forks: 0 owner: wzshiming logo: https://avatars.githubusercontent.com/u/6565744?v=4 license: MIT repoEtag: '"6fc0a320062aee88aa12318630eeeab0d7df2762bbc1555c2eed0440d288bc3f"' repoLastModified: Fri, 08 Sep 2023 17:41:57 GMT foundInMaster: true id: 4cfd529550011a9abf3d56ff76ff174b - source: openapi3 tags repository: https://github.com/edo1z/rust-axum-sqlx-sample v3: true repositoryMetadata: base64Readme: >- IyBydXN0LWF4dW0tc3FseC1zYW1wbGUKCiMjIEluc3RhbGwKCmBgYHNoZWxsCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vd2ViM3RlbjAvcnVzdC1heHVtLXNxbHgtMS5naXQKY2QgcnVzdC1heHVtLXNxbHgtMS9sb2NhbApkb2NrZXItY29tcG9zZSB1cCAtZApzaCBzY3JpcHRzL2V4ZWNfaW5pdF9kYgpgYGAKCiMjIE1pZ3JhdGlvbgoKLSDlj4Lnhac6IGh0dHBzOi8vZ2l0aHViLmNvbS9sYXVuY2hiYWRnZS9zcWx4L3RyZWUvbWFzdGVyL3NxbHgtY2xpCgpgYGBzaGVsbApjZCBsb2NhbC9zY3JpcHRzCnNoIG1pZ3JhdGUgYWRkIC1yIHVzZXJzCnNoIG1pZ3JhdGUgcnVuCnNoIG1pZ3JhdGUgcmV2ZXJ0CmBgYAoKIyMgU3dhZ2dlcgojIyMgc3dhZ2dlci11aeOBrlVSTAotIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMQoK readmeEtag: '"d7b06b401cbbc36c5f51365937fa9fe6fa2002e4"' readmeLastModified: Tue, 19 Sep 2023 21:37:10 GMT repositoryId: 450315160 description: Rust Axum+SQLx Sample created: '2022-01-21T01:33:05Z' updated: '2024-08-30T23:02:29Z' language: Rust archived: false stars: 17 watchers: 1 forks: 3 owner: edo1z logo: https://avatars.githubusercontent.com/u/89882017?v=4 license: MIT repoEtag: '"debab7bcd09ea312152b42d16ff17dbe2b6b97edb55ddf91ba36a19663c3d32c"' repoLastModified: Fri, 30 Aug 2024 23:02:29 GMT foundInMaster: true category: Code Generators id: 3bcd05d3559d8a12b7772c87d59d8c84 oldLocations: - https://github.com/net3i/rust-axum-sqlx-sample - source: openapi3 tags repository: https://github.com/mikuhuyo/file-service v3: true id: 22c13f95118be85ee3165ce5f382e8ad repositoryMetadata: base64Readme: >- IyDmlofku7bmnI3liqEKClshW0dpdEh1YiBsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL21pa3VodXlvL2ZpbGUtc2VydmljZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1aHV5by9maWxlLXNlcnZpY2UvYmxvYi9tYXN0ZXIvTElDRU5TRSkKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL21pa3VodXlvL2ZpbGUtc2VydmljZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1aHV5by9maWxlLXNlcnZpY2UvaXNzdWVzKQpbIVtHaXRIdWIgc3RhcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL21pa3VodXlvL2ZpbGUtc2VydmljZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1aHV5by9maWxlLXNlcnZpY2Uvc3RhcmdhemVycykKWyFbR2l0SHViIGZvcmtzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9mb3Jrcy9taWt1aHV5by9maWxlLXNlcnZpY2UpXShodHRwczovL2dpdGh1Yi5jb20vbWlrdWh1eW8vZmlsZS1zZXJ2aWNlL25ldHdvcmspCiFbSmF2YSB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0pkay0xMS15ZWxsb3cpCiFbU3ByaW5nQm9vdCB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NwcmluZ0Jvb3QtMi4zLjEyLlJFTEVBU0UtYnJpZ2h0Z3JlZW4pCgo+IGh0dHA6Ly8xMjcuMC4wLjE6NTEwMDAvc3dhZ2dlci11aS5odG1sCgojIyDlkK/liqgKCmBgYHlhbWwKdmVyc2lvbjogIjMuNyIKc2VydmljZXM6CiAgbWluaW86CiAgICBpbWFnZTogbWluaW8vbWluaW86UkVMRUFTRS4yMDIyLTA4LTAyVDIzLTU5LTE2WgogICAgcHJpdmlsZWdlZDogdHJ1ZQogICAgY29udGFpbmVyX25hbWU6IG1pbmlvCiAgICBwb3J0czoKICAgICAgLSAiOTAwMDo5MDAwIgogICAgICAtICI5MDAxOjkwMDEiCiAgICB2b2x1bWVzOgogICAgICAtIC9yb290L2RvY2tlci9taW5pby9kYXRhMTovZGF0YTEKICAgICAgLSAvcm9vdC9kb2NrZXIvbWluaW8vZGF0YTI6L2RhdGEyCiAgICBjb21tYW5kOiBzZXJ2ZXIgLS1jb25zb2xlLWFkZHJlc3MgIjo5MDAxIiBodHRwOi8vbWluaW8vZGF0YXsxLi4uMn0KICAgIGVudmlyb25tZW50OgogICAgICAtIE1JTklPX1JPT1RfVVNFUj1yb290CiAgICAgIC0gTUlOSU9fUk9PVF9QQVNTV09SRD15dWVsaW1pbnZjQG91dGxvb2suY29tCiAgICAgICMtIE1JTklPX0FDQ0VTU19LRVk9QUtJQUlPU0ZPRE5ON0VYQU1QTEUKICAgICAgIy0gTUlOSU9fU0VDUkVUX0tFWT13SmFsclhVdG5GRU1JL0s3TURFTkcvYlB4UmZpQ1lFWEFNUExFS0VZCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDogWyJDTUQiLCAiY3VybCIsICItZiIsICJodHRwOi8vbG9jYWxob3N0OjkwMDAvbWluaW8vaGVhbHRoL2xpdmUiXQogICAgICBpbnRlcnZhbDogMzBzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAzCmBgYAoKPiBkb2NrZXItY29tcG9zZSB1cCAtZAoKIyMg54m55Yir6bij6LCiCgojIyMg5YWz5rOo6ICFCgpbIVtTdGFyZ2F6ZXJzIHJlcG8gcm9zdGVyIGZvciBAbWlrdWh1eW8vZmlsZS1zZXJ2aWNlXShodHRwczovL3JlcG9yb3N0ZXIuY29tL3N0YXJzL21pa3VodXlvL2ZpbGUtc2VydmljZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1aHV5by9maWxlLXNlcnZpY2Uvc3RhcmdhemVycykKCiMjIyDmlLbol4/ogIUKClshW0ZvcmtlcnMgcmVwbyByb3N0ZXIgZm9yIEBtaWt1aHV5by9maWxlLXNlcnZpY2VdKGh0dHBzOi8vcmVwb3Jvc3Rlci5jb20vZm9ya3MvbWlrdWh1eW8vZmlsZS1zZXJ2aWNlKV0oaHR0cHM6Ly9naXRodWIuY29tL21pa3VodXlvL2ZpbGUtc2VydmljZS9uZXR3b3JrL21lbWJlcnMpCgojIyDor7fov5nkuKpi5Zad5p2v5rC0PwoKIVtBbGlwYXldKC4vaW1hZ2UvYWxpcGF5cy5wbmcpCgotLS0KCiFbV2VDaGF0UGF5XSguL2ltYWdlL3dlY2hhdHMucG5nKQo= readmeEtag: '"c8a92ce1d18dad63b05f91592df245a5eec41253"' readmeLastModified: Mon, 27 Feb 2023 13:11:35 GMT repositoryId: 400815425 description: 单纯的文件服务, 目前仅仅集成了minio(人在电信外包差点没了) created: '2021-08-28T14:40:30Z' updated: '2024-05-03T09:56:13Z' language: Java archived: false stars: 17 watchers: 2 forks: 5 owner: mikuhuyo logo: https://avatars.githubusercontent.com/u/42843191?v=4 repoEtag: '"1d792bcc4a0b4079fa470e9cd529a6be4bc86fea1a33705a699d6180960759f6"' repoLastModified: Fri, 03 May 2024 09:56:13 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/tavis-software/tavis.openapi v3: true repositoryMetadata: base64Readme: >- IyBUYXZpcy5PcGVuQVBJCgoqKk5vdGU6IFRoaXMgbGlicmFyeSBoYXMgYmVlbiBzdXBlcmNlZGVkIGJ5IFtNaWNyb3NvZnQuT3BlbkFQSS5ORVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvT3BlbkFQSS5ORVQpLiAgSSBkb24ndCBleHBlY3QgYW55IGZ1cnRoZXIgZGV2ZWxvcG1lbnQgb24gdGhpcyBwcm9qZWN0LioqCgpUaGlzIGxpYnJhcnkgaXMgYSBwYXJzZXIgZm9yIHRoZSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL29wZW5hcGlzLm9yZy8pLiAgVGhlIG1vZGVsIGlzIGJhc2VkIGFyb3VuZCBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uLgoKIyMgU2ltcGxlIEV4YW1wbGUKCmBgYGNzaGFycAogICAgICAgICAgICB2YXIgcGFyc2luZ0NvbnRleHQgPSBPcGVuQXBpUGFyc2VyLlBhcnNlKEAiCiAgICAgICAgICAgICAgICAgICAgb3BlbmFwaTogMy4wLjAKICAgICAgICAgICAgICAgICAgICBpbmZvOgogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogQSBzaW1wbGUgaW5saW5lIGV4YW1wbGUKICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogMS4wLjAKICAgICAgICAgICAgICAgICAgICBwYXRoczoKICAgICAgICAgICAgICAgICAgICAgIC9hcGkvaG9tZToKICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OgogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEEgaG9tZSBkb2N1bWVudAogICAgICAgICAgICAgICAgICAgICIpOwoKICAgICAgICAgICAgQXNzZXJ0LkVxdWFsKCIzLjAuMCIsIHBhcnNpbmdDb250ZXh0Lk9wZW5BcGlEb2MuVmVyc2lvbik7CiAgICAgICAgICAgIEFzc2VydC5FcXVhbCgwLCBwYXJzaW5nQ29udGV4dC5QYXJzaW5nRXJyb3JzLkNvdW50KCkpOwpgYGAKCiMjIEdvYWxzCgotIEltcG9ydCBPcGVuQVBJIFYzIGRlZmluaXRpb25zIGluIGJvdGggWUFNTCBhbmQgSlNPTiBmb3JtYXRzLgotIEV4cG9ydCBPcGVuQVBJIGRlZmluaXRpb24gaW4gWUFNTCBmb3JtYXQKLSBJbXBvcnQgT3BlbkFQSSBWMiBkZWZpbml0aW9ucwotIFByb3ZpZGUgY29tcHJlaGVuc2l2ZSBzeW50YXggYW5kIHNlbWFudGljIGVycm9yIHJlcG9ydGluZyAKLSBFbmFibGUgY29uc3RydWN0aW5nIG9mIE9wZW5BUEkgZGVzY3JpcHRpb25zIHZpYSBhIGRvY3VtZW50IG9iamVjdCBtb2RlbAo= readmeEtag: '"ec945c4a56aa3941d5db5e51a3f812ef03184da0"' readmeLastModified: Fri, 19 Jan 2018 19:15:32 GMT repositoryId: 69284017 description: Parser for OpenAPI Specification created: '2016-09-26T19:13:14Z' updated: '2023-09-27T14:30:38Z' language: JavaScript archived: true stars: 17 watchers: 4 forks: 3 owner: tavis-software logo: https://avatars.githubusercontent.com/u/1613247?v=4 license: Apache-2.0 repoEtag: '"73cc27d5c827967b9e11411641fadc1e091e6ee31d72655c647fc78f5a1811bb"' repoLastModified: Wed, 27 Sep 2023 14:30:38 GMT foundInMaster: true category: Parsers id: a804baa6bc67699b99d15abe7827381b - source: openapi3 tags repository: https://github.com/spaceavocado/apidoc v3: true repositoryMetadata: base64Readme: >- IyBBUElEb2MKPiBDdXJyZW50IHZlcnNpb246IGJldGEtMC4zLjMKCjxicj4KPHAgYWxpZ249ImNlbnRlciI+CiAgICA8aW1nIGFsdD0iYXBpZG9jIiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9zcGFjZWF2b2NhZG8vYXBpZG9jL3Jhdy9tYXN0ZXIvYXNzZXRzL2FwaWRvYy5wbmciIHdpZHRoPSIyNDAiPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICBHZW5lcmF0ZSBSRVNUZnVsIEFQSSBkb2N1bWVudGF0aW9uIGZyb20gR08gc291cmNlIGZpbGVzIGludG8gdGhlIDxhIGhyZWY9Imh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyI+T3BlbkFQSSB2My4wLjI8L2E+IHNwZWNpZmljYXRpb24gKGZvcm1hbCBTd2FnZ2VyIDIuMCBTcGVjaWZpY2F0aW9uKS4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vdHJhdmlzLWNpLm9yZy9zcGFjZWF2b2NhZG8vYXBpZG9jLnN2Zz9icmFuY2g9bWFzdGVyIj48aW1nIGFsdD0iVHJhdmlzIFN0YXR1cyIgc3JjPSJodHRwczovL3RyYXZpcy1jaS5vcmcvc3BhY2Vhdm9jYWRvL2FwaWRvYy5zdmc/YnJhbmNoPW1hc3RlciI+PC9hPiA8YSBocmVmPSJodHRwczovL2NvZGVjb3YuaW8vZ2gvc3BhY2Vhdm9jYWRvL2FwaWRvYyI+CiAgPGltZyBzcmM9Imh0dHBzOi8vY29kZWNvdi5pby9naC9zcGFjZWF2b2NhZG8vYXBpZG9jL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnIiAvPgo8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL3NwYWNlYXZvY2Fkby9hcGlkb2MiPjxpbWcgYWx0PSJHbyBSZXBvcnQgQ2FyZCIgc3JjPSJodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9zcGFjZWF2b2NhZG8vYXBpZG9jIj48L2E+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvZGFjeS5jb20vYXBwL2RhdmlkaG9yYWsvYXBpZG9jP3V0bV9zb3VyY2U9Z2l0aHViLmNvbSZhbXA7dXRtX21lZGl1bT1yZWZlcnJhbCZhbXA7dXRtX2NvbnRlbnQ9c3BhY2Vhdm9jYWRvL2FwaWRvYyZhbXA7dXRtX2NhbXBhaWduPUJhZGdlX0dyYWRlIj48aW1nIHNyYz0iaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlL2VkNzAxZDVlNDJmMzQyNmQ4MzJkZTk3MzkwNmJhMTliIi8+PC9hPiA8YSBocmVmPSJodHRwczovL2FwcC5mb3NzYS5pby9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGc3BhY2Vhdm9jYWRvJTJGYXBpZG9jP3JlZj1iYWRnZV9zaGllbGQiIGFsdD0iRk9TU0EgU3RhdHVzIj48aW1nIHNyYz0iaHR0cHM6Ly9hcHAuZm9zc2EuaW8vYXBpL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZzcGFjZWF2b2NhZG8lMkZhcGlkb2Muc3ZnP3R5cGU9c2hpZWxkIi8+PC9hPiA8YSBocmVmPSJodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL3NwYWNlYXZvY2Fkby9hcGlkb2MiPjxpbWcgYWx0PSJHbyBEb2MiIHNyYz0iaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9zcGFjZWF2b2NhZG8vYXBpZG9jP3N0YXR1cy5zdmciPjwvYT4KPC9wPgoKIyMgVGFibGUgb2YgQ29udGVudHMKLSBbQVBJRG9jXSgjYXBpZG9jKQogIC0gW1RhYmxlIG9mIENvbnRlbnRzXSgjdGFibGUtb2YtY29udGVudHMpCiAgLSBbU3VtbWFyeV0oI3N1bW1hcnkpCiAgLSBbRXhhbXBsZXNdKCNleGFtcGxlcykKICAtIFtHZXR0aW5nIFN0YXJ0ZWRdKCNnZXR0aW5nLXN0YXJ0ZWQpCi0gW0FQSSBBbm5vdGF0aW9uIGluIENvbW1lbnRzXSgjYXBpLWFubm90YXRpb24taW4tY29tbWVudHMpCiAgLSBbTWFpbiBTZWN0aW9uXSgjbWFpbi1zZWN0aW9uKQogICAgLSBbU3VwcG9ydGVkIFRhZ3NdKCNzdXBwb3J0ZWQtdGFncykKICAgIC0gW0V4YW1wbGVdKCNleGFtcGxlKQogIC0gW0FuIEVuZHBvaW50XSgjYW4tZW5kcG9pbnQpCiAgICAtIFtTdXBwb3J0ZWQgVGFnc10oI3N1cHBvcnRlZC10YWdzLTEpCiAgICAtIFtQYXJhbSBUYWddKCNwYXJhbS10YWcpCiAgICAgIC0gW25hbWVdKCNuYW1lKQogICAgICAtIFtpbl0oI2luKQogICAgICAtIFt0eXBlXSgjdHlwZSkKICAgIC0gW0JvZHkgVGFnXSgjYm9keS10YWcpCiAgICAgIC0gW3JlZmVyZW5jZV0oI3JlZmVyZW5jZSkKICAgIC0gW1dyYXBwZXIgVGFnXSgjd3JhcHBlci10YWcpCiAgICAgIC0gW0V4YW1wbGVdKCNleGFtcGxlLTEpCiAgICAtIFtSZXNwb25zZSBUYWddKCNyZXNwb25zZS10YWcpCiAgICAgIC0gW2NvZGVdKCNjb2RlKQogICAgICAtIFt0eXBlXSgjdHlwZS0xKQogICAgICAtIFtyZWZlcmVuY2VdKCNyZWZlcmVuY2UtMSkKICAgIC0gW1BhdGggVGFnXSgjcGF0aC10YWcpCiAgICAgIC0gW3BhdGhdKCNwYXRoKQogICAgICAtIFttZXRob2RdKCNtZXRob2QpCiAgICAtIFtFeGFtcGxlIEVuZHBvaW50IEFubm90YXRpb25dKCNleGFtcGxlLWVuZHBvaW50LWFubm90YXRpb24pCiAgLSBbZ29yaWxsYS9tdXggSGFuZGxlciBGdW5jdGlvbnNdKCNnb3JpbGxhbXV4LWhhbmRsZXItZnVuY3Rpb25zKQogICAgLSBbTm90ZXNdKCNub3RlcykKICAtIFtnb3JpbGxhL211eCBTdWJyb3V0ZXJdKCNnb3JpbGxhbXV4LXN1YnJvdXRlcikKICAgIC0gW1N1YnJvdXRlciBBbm5vdGF0aW9uXSgjc3Vicm91dGVyLWFubm90YXRpb24pCiAgICAgIC0gW0V4YW1wbGVdKCNleGFtcGxlLTIpCiAgLSBbTWltZSBUeXBlcyBBbm5vdGF0aW9uXSgjbWltZS10eXBlcy1hbm5vdGF0aW9uKQogIC0gW1N0cnVjdCBBbm5vdGF0aW9uXSgjc3RydWN0LWFubm90YXRpb24pCiAgLSBbRGF0YSBUeXBlcyBDb252ZXJzaW9uXSgjZGF0YS10eXBlcy1jb252ZXJzaW9uKQotIFtUaXBzXSgjdGlwcykKICAtIFtBbm5vdGF0aW9uIG92ZXIgTXVsdGlwbGUgTGluZXNdKCNhbm5vdGF0aW9uLW92ZXItbXVsdGlwbGUtbGluZXMpCiAgLSBbQXJyYXkgUmVmZXJlbmNlc10oI2FycmF5LXJlZmVyZW5jZXMpCiAgLSBbQW5kIEVuZHBvaW50IFdpdGggTWFueSBEZWNyYWxhcmlvbnNdKCNhbmQtZW5kcG9pbnQtd2l0aC1tYW55LWRlY3JhbGFyaW9ucykKICAgIC0gW0V4YW1wbGVdKCNleGFtcGxlLTMpCi0gW0FQSURvYyBDTEldKCNhcGlkb2MtY2xpKQotIFtBYm91dCB0aGUgUHJvamVjdF0oI2Fib3V0LXRoZS1wcm9qZWN0KQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCiAgLSBbUHVsbCBSZXF1ZXN0IFByb2Nlc3NdKCNwdWxsLXJlcXVlc3QtcHJvY2VzcykKLSBbTGljZW5zZV0oI2xpY2Vuc2UpCgojIyBTdW1tYXJ5CkFQSURvYyBleHRyYWN0cyB0aGUgQVBJIGRvY3VtZW50YXRpb24gYW5ub3RhdGlvbiBmcm9tIHlvdXIgR08gc291cmNlIGZpbGVzLCByZWN1cnNpdmVseSByZXNvbGVzIHN0cnVjdCByZWZlcmVuY2VzLCBhbmQgaXQgZ2VuZXJhdGVzIHRoZSBZQU1MIFtPcGVuQVBJIHYzLjAuMl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKSBzcGVjLiBmaWxlLCB3aGljaCBjb3VsZCBiZSB0ZXN0ZWQgaW4gdGhlIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pIGFuZCBxdWlja2x5IGludGVncmF0ZWQgd2l0aCBbU3dhZ2dlciBVSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Rvb2xzL3N3YWdnZXItdWkvZG93bmxvYWQvKS4KClRoZSBnZW5lcmF0b3IgaXMgYWxzbyBhYmxlIHRvIHJlYWQgW2dvcmlsbGEvbXV4XShodHRwczovL2dpdGh1Yi5jb20vZ29yaWxsYS9tdXgpICoqSGFuZGxlcioqIGFuZCAqKkhhbmRsZXJGdW5jKiogZnVuYyBzaWduYXR1cmUgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSB0aGUgYEByb3V0ZXJgIHRhZywgYW5kIGBAcGFyYW1gIHRhZy9zLiBbU2VlIGdvcmlsbGEvbXV4IEhhbmRsZXIgRnVuY3Rpb25zXSgjZ29yaWxsYW11eC1oYW5kbGVyLWZ1bmN0aW9ucykuCgo+IE5vdGU6IEl0IGRvZXMgbm90IGdlbmVyYXRlL3N1cHBvcnQgYWxsIE9wZW5BUEkgdjMuMC4yIGJsb2NrcywgdGhlIHRvb2wgaGFuZGxlcyBqdXN0IGEgc3Vic2V0IHJlcXVpcmVkIGJ5IG91ciBpbnRlcm5hbCBuZWVkcywgaXQgbWlnaHQgYmUgZXh0ZW5kZWQgaWYgdGhlcmUgd2lsbCBiZSBoaWdoIGRlbWFuZCBvbiBleHRlbnNpb24sIG9yIGlmIGFueW9uZSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUuCgojIyBFeGFtcGxlcwpbQmFzaWMgQVBJIFByb2plY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcGFjZWF2b2NhZG8vYXBpZG9jL3RyZWUvbWFzdGVyL2V4YW1wbGUpCgojIyBHZXR0aW5nIFN0YXJ0ZWQKMS4gQWRkIGFubm90YXRpb24gaW50byB5b3VyIEFQSSBzb3VyY2UgY29kZSBmaWxlcywgW1NlZSBBUEkgQW5ub3RhdGlvbiBpbiBDb21tZW50c10oI2FwaS1hbm5vdGF0aW9uLWluLWNvbW1lbnRzKS4KICAgCjIuIEdldCB0aGUgQVBJRG9jIGJ5IHVzaW5nOgogICAgYGBgc2gKICAgIGdvIGdldCAtdSBnaXRodWIuY29tL3NwYWNlYXZvY2Fkby9hcGlkb2MKICAgIGBgYAogICAgPiBUaGlzIHdpbGwgY3JlYXRlIGEgYmluYXJ5IGluIHlvdXIgKiokR09QQVRIL2JpbioqIGZvbGRlciBjYWxsZWQgYGFwaWRvY2AgKE1hYy9Vbml4KSBvciBgYXBpZG9jLmV4ZWAgKFdpbmRvd3MpLgoKMy4gTm93IHlvdSBjYW4gcnVuIGBhcGlkb2NgIGNvbW1hbmQgZnJvbSB5b3VyIHNoZWxsLgogICA+IE1ha2Ugc3VyZSB0aGF0ICoqJEdPUEFUSC9iaW4qKiBpcyBpbiB5b3VyIEVudmlyb25tZW50IFZhcmlhYmxlczoKICAgIC0gKipMaW51eCoqOgogICAgICBgYGBzaAogICAgICBleHBvcnQgUEFUSD0kUEFUSDokR09QQVRIL2JpbgogICAgICBgYGAKICAgICAgKk5vdGUqOiBhc3N1bXB0aW9uIHRoYXQgeW91ciBoYXZlIGNvcnJlY3RseSBzZXQgJEdPUEFUSCBlbnYuIHZhcmlhYmxlLgoKICAgIC0gKipXaW5kb3dzKio6ICJDb250cm9sIFBhbmVsIiA+ICJTeXN0ZW0iID4gIkVkaXQgdGhlIHN5c3RlbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMiID4gIkFkdmFuY2VkIiA+ICJFbnZpcm9ubWVudCBWYXJpYWJsZXMiID4gIlBhdGgiID4gIkVkaXQiLiBhbmQgYWRkIHRoZSBkaXJlY3RvcnkuCgo0LiBSdW4gYGFwaWRvY2AgaW4gdGhlIHlvdXIgcHJvamVjdCdzIHJvb3QgZm9sZGVyLiBUaGlzIHdpbGwgZXh0cmFjdCBhbmQgcHJvY2VzcyB5b3VyIGFubm90YXRpb24gYW5kIGl0IGdlbmVyYXRlcyB0aGUgb3V0cHV0IFlBTUwgZmlsZS4KICAgIGBgYHNoCiAgICBhcGlkb2MgLW0gbWFpbi5nbyAtZSBoYW5kbGVyIC1vIGRvY3MvYXBpCiAgICBgYGAKICAgICpOb3RlKjogdGhlIGV4YW1wbGUgc2hvd3MgdGhlIGRlZmF1bHQgZmxhZyB2YWx1ZXMsIGZvciBtb3JlIGRldGFpbHMsIFtTZWUgQVBJRG9jIENMSV0oI2FwaWRvYy1jbGkpLgoKNS4gUHJldmlldyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgW1N3YWdnZXIgRWRpdG9yXShodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLyksIGkuZS4gcHV0IHRoZSBvcGVuYXBpLnlhbWwgY29udGVudCBpbnRvIHRoZSBlZGl0b3IuCgojIEFQSSBBbm5vdGF0aW9uIGluIENvbW1lbnRzCkFuIEFQSSBhbm5vdGF0aW9uIGlzIHJlcHJlc2VudGVkIGFzIGFuIGNvZGUgY29tbWVudCBzdGFydGluZyB3aXRoICoqQCoqIHN5bWJvbCBmb2xsb3dlZCBieSBkb2N1bWVudGF0aW9uIHRhZyBhbmQgaXQgdmFsdWUgb3IgcGFyYW1ldGVycy4gRXhhbXBsZXM6CgoqIGAvLyBAdGl0bGUgRXhhbXBsZSBSRVNUZnVsIEFQSWAsIHRhZyAqKnRpdGxlKiogd2l0aCB2YWx1ZSAiRXhhbXBsZSBSRVNUZnVsIEFQSSIKKiBgLy8gQHNlcnZlciBhcGkuZG9tYWluLmNvbS92MyBQcm9kdWN0aW9uYCwgdGFnICoqc2VydmVyKiogd2l0aCBwYXJhbXM6ICJhcGkuZG9tYWluLmNvbS92MyIsICJQcm9kdWN0aW9uIiAKClRoZSB0aGUgdmFsdWUgb2YgdGhlIHRhZyBvciB0aGUgbGFzdCBwYXJhbWV0ZXIgb2YgdGhlIHRhZyBjYXB0dXJlcyB0aGUgbXVsdGlsaW5lIGNvbW1lbnRzLCBleGFtcGxlOgpgYGBnbwovLyBAZGVzYyBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZwovLyBlbGl0LiBOdWxsYW0gcmhvbmN1cyBtYWduYSBudW5jLCBpbiBmYXVjaWJ1cyBtZXR1cyBwdWx2aW5hcgovLyBldC4gTWF1cmlzIHBlbGxlbnRlc3F1ZSAKYGBgCj4gVGhlIHZhbHVlIG9mIGRlc2MgdGFnIGlzIGNhcHR1cmVkIGFzOiAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gTnVsbGFtIHJob25jdXMgbWFnbmEgbnVuYywgaW4gZmF1Y2lidXMgbWV0dXMgcHVsdmluYXIgZXQuIE1hdXJpcyBwZWxsZW50ZXNxdWUiCmBgYGdvCi8vIEBzZXJ2ZXIgYXBpLmRvbWFpbi5jb20vdjMgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyCi8vIGVsaXQuIE51bGxhbSByaG9uY3VzIG1hZ25hIG51bmMuCmBgYAo+IFRoZSBsYXN0IHBhcmFtZXRlciwgKipkZXNjcmlwdGlvbioqIG9mIHRoZSBzZXJ2ZXIgdGFnIGlzIGNhcHR1cmVkIGFzOiAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGVsaXQuIE51bGxhbSByaG9uY3VzIG1hZ25hIG51bmMuIgogIAojIyBNYWluIFNlY3Rpb24KVGhpcyBzZWN0aW9uIHNob3VsZCBiZSBsb2NhdGVkIGluIHRoZSAqKm1haW4qKiBmaWxlLCBwYXNzZWQgdG8gdGhlIFtBUElEb2MgQ0xJXSgjYXBpZG9jLWNsaSkgaW4gKiotbSoqIGZsYWcgKGRlZmF1bHRzIHRvICoqbWFpbi5nbyoqKS4KCiMjIyBTdXBwb3J0ZWQgVGFncwo+IE5vdGU6ICoqKCkqKiB3aXRoaW4gKipBbm5vdGF0aW9uKiogaW5kaWNhdGVzIGFuIGFubm90YXRpb24gcGFyYW1ldGVyIGNhcHR1cmVkIGJ5IHRoZSBnZW5lcmF0b3IuCgp8IEFubm90YXRpb24gICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE9wZW5BUEkgU3BlYy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEV4YW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCB0aXRsZSAodmFsdWUpICAgICAgICAgICAgICB8ICoqUkVRVUlSRUQqKi4gVGhlIHRpdGxlIG9mIHRoZSBhcHBsaWNhdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jaW5mb09iamVjdCBmaWVsZDogdGl0bGUgICAgICAgICAgfCAvLyBAdGl0bGUgRXhhbXBsZSBSRVNUZnVsIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGRlc2MgKHZhbHVlKSAgICAgICAgICAgICAgIHwgQSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgYXBwbGljYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNpbmZvT2JqZWN0IGZpZWxkOiBkZXNjcmlwdGlvbiAgICB8IC8vIEBkZXNjIEFuIGV4YW1wbGUgb2YgcHVibGljbHkgYWNjZXNzaWJsZSBBUEkgICAgICAgICAgICAgICB8CnwgdmVyICh2YWx1ZSkgICAgICAgICAgICAgICAgfCAqKlJFUVVJUkVEKiouIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2luZm9PYmplY3QgZmllbGQ6IHZlcnNpb24gICAgICAgIHwgLy8gQHZlciAxLjAuMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB0ZXJtcyAodmFsdWUpICAgICAgICAgICAgICB8IEEgVVJMIHRvIHRoZSBUZXJtcyBvZiBTZXJ2aWNlIGZvciB0aGUgQVBJLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jaW5mb09iamVjdCBmaWVsZDogdGVybXNPZlNlcnZpY2UgfCAvLyBAdGVybXMgaHR0cHM6Ly9kb21haW4uY29tL2FwaS90ZXJtcyAgICAgICAgICAgICAgICAgICAgICAgfAp8IGNvbnRhY3QubmFtZSAodmFsdWUpICAgICAgIHwgVGhlIGlkZW50aWZ5aW5nIG5hbWUgb2YgdGhlIGNvbnRhY3QgcGVyc29uL29yZ2FuaXphdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNjb250YWN0T2JqZWN0IGZpZWxkOiBuYW1lICAgICAgICB8IC8vIEBjb250YWN0Lm5hbWUgQVBJIFN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgY29udGFjdC51cmwgKHZhbHVlKSAgICAgICAgfCBUaGUgVVJMIHBvaW50aW5nIHRvIHRoZSBjb250YWN0IGluZm9ybWF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2NvbnRhY3RPYmplY3QgZmllbGQ6IHVybCAgICAgICAgIHwgLy8gQGNvbnRhY3QudXJsIGh0dHBzOi8vZG9tYWluLmNvbS9hcGkvc3VwcG9ydCAgICAgICAgICAgICAgIHwKfCBjb250YWN0LmVtYWlsICh2YWx1ZSkgICAgICB8IFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjb250YWN0IHBlcnNvbi9vcmdhbml6YXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jY29udGFjdE9iamVjdCBmaWVsZDogZW1haWwgICAgICAgfCAvLyBAY29udGFjdC5lbWFpbCBzdXBwb3J0QGRvbWFpbi5jb20gICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGxpYy5uYW1lICh2YWx1ZSkgICAgICAgICAgIHwgVGhlIGxpY2Vuc2UgbmFtZSB1c2VkIGZvciB0aGUgQVBJLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNsaWNlbnNlT2JqZWN0IGZpZWxkOiBuYW1lICAgICAgICB8IC8vIEBsaWMubmFtZSBBcGFjaGUgMi4wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgbGljLnVybCAodmFsdWUpICAgICAgICAgICAgfCBBIFVSTCB0byB0aGUgbGljZW5zZSB1c2VkIGZvciB0aGUgQVBJLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2xpY2Vuc2VPYmplY3QgZmllbGQ6IHVybCAgICAgICAgIHwgLy8gQGxpYy51cmwgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC5odG1sIHwKfCBzZXJ2ZXIgKHVybCkgKGRlc2NyaXB0aW9uKSB8IEFuIG9iamVjdCByZXByZXNlbnRpbmcgYSBTZXJ2ZXIgPGJyPjxicj5Ob3RlOiBUaGVyZSBtaWdodCBiZSBtYW55IEBzZXJ2ZXIgdGFncyB3aXRoaW4gdGhlIG1haW4gc2VjdGlvbi4gfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jc2VydmVyT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgfCAvLyBAc2VydmVyIGFwaS5kb21haW4uY29tL3YzIFByb2R1Y3Rpb24gICAgICAgICAgICAgICAgICAgICAgfAoKIyMjIEV4YW1wbGUKYGBgZ28KLy8gQHRpdGxlIEFuIGV4YW1wbGUgYXV0aGVudGljYXRpb24gQVBJCi8vIEBkZXNjIFB1YmxpY2x5IGFjY2Vzc2libGUgYXV0aGVudGljYXRpb24gUkVTVCBBUEkuCi8vIEB0ZXJtcyBodHRwczovL2RvbWFpbi5jb20vZG9jcy9hcGkvdGVybXMKLy8KLy8gQGNvbnRhY3QubmFtZSBBUEkgU3VwcG9ydAovLyBAY29udGFjdC51cmwgaHR0cHM6Ly9kb21haW4uY29tL2NvbnRhY3QKLy8gQGNvbnRhY3QuZW1haWwgc3VwcG9ydEBkb21haW4uY29tCi8vCi8vIEBsaWMubmFtZSBBcGFjaGUgMi4wCi8vIEBsaWMudXJsIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuaHRtbAovLwovLyBAdmVyIDEuMAovLyBAc2VydmVyIGh0dHBzOi8vYXV0aC5kb21haW4uY29tL3YzIFByb2R1Y3Rpb24gQVBJCi8vIEBzZXJ2ZXIgaHR0cHM6Ly9hdXRoLmRldi5kb21haW4uY29tL3YzIERldmVsb3BtZW50IEFQSQpmdW5jIG1haW4oKSB7fQpgYGAKCiMjIEFuIEVuZHBvaW50CkFuIGVuZHBvaW50IGlzIGJlaW5nIGNvbnNpZGVyZWQgYXMgYSBBUEkgY29tbWVudCBhbm5vdGF0aW9uIGJsb2NrIGZvdW5kIHdpdGhpbiBhbnkgZmlsZSBsb2NhdGVkIGluc2lkZSB0aGUgKiplbmRwb2ludHMqKiByb290IGZvbGRlciwgcGFzc2VkIHRvIHRoZSBbQVBJRG9jIENMSV0oI2FwaWRvYy1jbGkpIGluICoqLWUqKiBmbGFnIChkZWZhdWx0cyB0byAqKi4vKiopLgo+IEZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIHBhc3MgdGhlIGVuZHBvaW50cyByb290IGZvbGRlciBhcyBhIGZsYWcgdG8gdGhlIENMSSB0byBhdm9pZCB1bm5lY2Vzc2FyeSBmaWxlIHByb2Nlc3NpbmcuCgojIyMgU3VwcG9ydGVkIFRhZ3MKPiBOb3RlOiAqKigpKiogd2l0aGluICoqQW5ub3RhdGlvbioqIGluZGljYXRlcyBhbiBhbm5vdGF0aW9uIHBhcmFtZXRlciBjYXB0dXJlZCBieSB0aGUgZ2VuZXJhdG9yLgoKfCBBbm5vdGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgT3BlbkFQSSBTcGVjLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFeGFtcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IHN1bW1hcnkgKHZhbHVlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBIHNob3J0IHN1bW1hcnkgb2Ygd2hhdCB0aGUgb3BlcmF0aW9uIGRvZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jb3BlcmF0aW9uT2JqZWN0IGZpZWxkOiBzdW1tYXJ5ICAgICB8IEBzdW1hbXJ5IExvcmVtIGlwc3VtIGRvbG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBkZXNjICh2YWx1ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQSB2ZXJib3NlIGV4cGxhbmF0aW9uIG9mIHRoZSBvcGVyYXRpb24gYmVoYXZpb3IuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI29wZXJhdGlvbk9iamVjdCBmaWVsZDogZGVzY3JpcHRpb24gfCBAZGVzYyBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaWQgKHZhbHVlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFVuaXF1ZSBzdHJpbmcgdXNlZCB0byBpZGVudGlmeSB0aGUgb3BlcmF0aW9uLiBUaGUgaWQgTVVTVCBiZSB1bmlxdWUgYW1vbmcgYWxsIG9wZXJhdGlvbnMgZGVzY3JpYmVkIGluIHRoZSBBUEkuIFRoZSBvcGVyYXRpb25JZCB2YWx1ZSBpcyBjYXNlLXNlbnNpdGl2ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNvcGVyYXRpb25PYmplY3QgZmllbGQ6IG9wZXJhdGlvbklkIHwgLy8gQGlkIGxvZ2luICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHRhZyAoYXJyYXkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBIGxpc3Qgb2YgdGFncyBmb3IgQVBJIGRvY3VtZW50YXRpb24gY29udHJvbC4gVGFncyBjYW4gYmUgdXNlZCBmb3IgbG9naWNhbCBncm91cGluZyBvZiBvcGVyYXRpb25zIGJ5IHJlc291cmNlcyBvciBhbnkgb3RoZXIgcXVhbGlmaWVyLjxicj48YnI+Tm90ZTogQ29tbWEgc2VwYXJhdGVkIHZhbHVlLCBvciBhIHNpbmdsZSB2YWx1ZS4gfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jb3BlcmF0aW9uT2JqZWN0IGZpZWxkOiB0YWdzICAgICAgICB8IC8vIEB0YWcgVXNlcjxicj48YnI+Ly8gQHRhZyBVc2VyLCBBdXRoZW50aWNhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBhY2NlcHQgKGFycmF5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQSBsaXN0IG9mIGFjY2VwdGVkIHJlcXVlc3QgY29udGVudCBtaW1lIHR5cGVzPGJyPjxicj5bU2VlIE1pbWUgVHlwZXMgQW5ub3RhdGlvbl0oI21pbWUtdHlwZXMtYW5ub3RhdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbi9hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAvLyBAYWNjZXB0IGpzb248YnI+PGJyPi8vIEBhY2NlcHQgYXBwbGljYXRpb24vanNvbiwgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkICAgICAgICAgICAgICAgICB8CnwgcHJvZHVjZSAoYXJyYXkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqUkVRVUlSRUQqKi4gQSBsaXN0IG9mIHN1cHBvcnRlZCBjb250ZW50IHJlc3BvbnNlIG1pbWUgdHlwZXM8YnI+PGJyPltTZWUgTWltZSBUeXBlcyBBbm5vdGF0aW9uXSgjbWltZS10eXBlcy1hbm5vdGF0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG4vYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgLy8gQHByb2R1Y2UganNvbjxicj48YnI+Ly8gQHByb2R1Y2UgYXBwbGljYXRpb24vanNvbiwgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkICAgICAgICAgICAgICAgfAp8IHBhcmFtIChuYW1lKSAoaW4pIHsodHlwZSl9IChyZXF1aXJlZCkgKGRlc2NyaXB0aW9uKSAgICAgICAgfCBEZXNjcmliZXMgYSBzaW5nbGUgb3BlcmF0aW9uIHBhcmFtZXRlci4gPGJyPjxicj5bU2VlIFBhcmFtIFRhZ10oI3BhcmFtLXRhZyk8YnI+PGJyPk5vdGU6IFRoZXJlIG1pZ2h0IGJlIG1hbnkgQHBhcmFtIHRhZ3Mgd2l0aGluIHRoZSBlbmRwb2ludCBibG9jay4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jcGFyYW1ldGVyT2JqZWN0ICAgICAgICAgICAgICAgICAgICB8IC8vIEBwYXJhbSB0b2tlbiBwYXRoIHtzdHJpbmd9IHRydWUgU2VjdXJpdHkgVG9rZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBib2R5IChyZWZlcmVuY2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpYmVzIGEgc2luZ2xlIHJlcXVlc3QgYm9keS48YnI+PGJyPltTZWUgQm9keSBUYWddKCNib2R5LXRhZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI3JlcXVlc3RCb2R5T2JqZWN0ICAgICAgICAgICAgICAgICAgfCAvL0Bib2R5IG1vZGVsLkxvZ2luICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cnwgc3dyYXAgKHJlZmVyZW5jZSkgKGZpZWxkIHBvaW50ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1Y2Nlc3Mgb2JqZWN0IHdyYXBwZXIuIElmIHRoaXMgdGFnIGlzIHNldCwgYW55IHN1Y2Nlc3MgcmVzcG9uc2Ugb2JqZWN0IGlzIGJlaW5nIHdyYXBwZWQgd2l0aCB0aGlzIG9iamVjdCBvbiB0aGUgZGVzaXJlZCAqKnBvaW50ZXIgZmllbGQqKjxicj48YnI+W1NlZSBXcmFwcGVyIFRhZ10oI3dyYXBwZXItdGFnKSAgICAgICAgICAgICB8IG4vYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgLy8gQHN3cmFwIHJlc3BvbnNlLlN1Y2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHN1Y2Nlc3MgKGNvZGUpIHsodHlwZSl9IChyZWZlcmVuY2Ugb3IgZW1wdHkpIChkZXNjcmlwdGlvbikgfCAqKlJFUVVJUkVEKiouIERlc2NyaWJlcyBhIHNpbmdsZSBzdWNjZXNzIHJlc3BvbnNlIGZyb20gYW4gQVBJIE9wZXJhdGlvbi48YnI+PGJyPltTZWUgUmVzcG9uc2UgVGFnXSgjcmVzcG9uc2UtdGFnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jcmVzcG9uc2VPYmplY3QgICAgICAgICAgICAgICAgICAgICB8IC8vIEBzdWNjZXNzIDIwMCB7b2JqZWN0fSByZXNwb25zZS5TdWNjZXNzIE9LPGJyPjxicj4vLyBAc3VjY2VzcyAyMDAge3N0cmluZ30gT0sgICAgICAgICAgICAgICAgICAgICAgIHwKfCBmd3JhcCAocmVmZXJlbmNlKSAoZmllbGQgcG9pbnRlcikgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRmFpbHVyZSBvYmplY3Qgd3JhcHBlci4gSWYgdGhpcyB0YWcgaXMgc2V0LCBhbnkgZmFpbHVyZSByZXNwb25zZSBvYmplY3QgaXMgYmVpbmcgd3JhcHBlZCB3aXRoIHRoaXMgb2JqZWN0IG9uIHRoZSBkZXNpcmVkICoqcG9pbnRlciBmaWVsZCoqPGJyPjxicj5bU2VlIFdyYXBwZXIgVGFnXSgjd3JhcHBlci10YWcpICAgICAgICAgICAgIHwgbi9hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAvLyBAZndyYXAgcmVzcG9uc2UuRXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgZmFpbHVyZSAoY29kZSkgeyh0eXBlKX0gKHJlZmVyZW5jZSBvciBlbXB0eSkgKGRlc2NyaXB0aW9uKSB8IERlc2NyaWJlcyBhIHNpbmdsZSBmYWlsdXJlIHJlc3BvbnNlIGZyb20gYW4gQVBJIE9wZXJhdGlvbi48YnI+PGJyPltTZWUgUmVzcG9uc2UgVGFnXSgjcmVzcG9uc2UtdGFnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNyZXNwb25zZU9iamVjdCAgICAgICAgICAgICAgICAgICAgIHwgLy8gQGZhaWx1cmUgNDAxIHtvYmplY3R9IHJlc3BvbnNlLkF1dGhFcnJvciBVbmF1dGhvcml6ZWQ8YnI+PGJyPi8vIEBmYWlsdXJlIDQwMSB7c3RyaW5nfSBVbmF1dGhvcml6ZWQgfAp8IHN1YnJvdXRlciAodmFsdWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOYW1lIG9mIHRoZSBzdWJyb3V0ZXIgdXNlZCBmb3IgdGhpcyBlbmRwb2ludC4gPGJyPjxicj5bU2VlIGdvcmlsbGEvbXV4IFN1YnJvdXRlcl0oI2dvcmlsbGFtdXgtc3Vicm91dGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBuL2EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC8vIEBzdWJyb3V0ZXIgdXNlciBbcG9zdF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCByb3V0ZXIgKHBhdGgpIFsobWV0aG9kKV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipSRVFVSVJFRCoqLiBEZXNjcmliZXMgdGhlIG9wZXJhdGlvbnMgYXZhaWxhYmxlIG9uIGEgc2luZ2xlIHBhdGgsIGkuZS4gZW5kcG9pbnQgVVJMPGJyPjxicj5bU2VlIFBhdGggVGFnXSgjcGF0aC10YWcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jcGF0aEl0ZW1PYmplY3QgICAgICAgICAgICAgICAgICAgICB8IC8vIEByb3V0ZXIgL2xvZ2luIFtwb3N0XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIyBQYXJhbSBUYWcKPiAqQW5ub3RhdGlvbjoqIHBhcmFtIChuYW1lKSAoaW4pIHsodHlwZSl9IChyZXF1aXJlZCkgKGRlc2NyaXB0aW9uKQoKVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSAqKnBhcmFtKiogdGFnCiMjIyMgbmFtZSAKKiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLiBQYXJhbWV0ZXIgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLgoqIElmIGBpbmAgaXMgInBhdGgiLCB0aGUgbmFtZSBmaWVsZCBNVVNUIGNvcnJlc3BvbmQgdG8gdGhlIGFzc29jaWF0ZWQgcm91dGVyIHVybCBwYXJhbWV0ZXIsIGUuZy46CiAgIGAvLyBAcGFyYW0gdG9rZW4gcGF0aCB7c3RyaW5nfSB0cnVlIFNlY3VyaXR5IHRva2VuYCBtdXN0IG1hdGNoIHdpdGggYC8vIEByb3V0ZXIgL2F1dGgve3Rva2VufSBbZ2V0XWAKCiMjIyMgaW4gCiogVGhlIGxvY2F0aW9uIG9mIHRoZSBwYXJhbWV0ZXIuIFBvc3NpYmxlIHZhbHVlcyBhcmUgInF1ZXJ5IiwgImhlYWRlciIsICJwYXRoIiBvciAiY29va2llIi4KCiMjIyMgdHlwZQoqIHRoZSBvdXRlciAie30iIGFyZSB1c2VkIGp1c3QgYXMgdmlzdWFsIHNlcGFyYXRvcnMgb2YgdHlwZSBmaWVsZCwgaS5lLiB0aGVpciBhcmUgbm90IHJlcXVpcmVkLgogIEUuZy4gYC8vIEBwYXJhbSB0b2tlbiBwYXRoIHtzdHJpbmd9IHRydWUgU2VjdXJpdHkgdG9rZW5gID0gYC8vIEBwYXJhbSB0b2tlbiBwYXRoIHN0cmluZyB0cnVlIFNlY3VyaXR5IHRva2VuYAoqIFBhcmFtIHRhZyBkb2VzIG5vdCBzdXBwb3J0IHN0cnVjdCB0eXBlLCBqdXN0IGJhc2UgZ28gdHlwZXMsIFtTZWUgVHlwZSBNYXBwaW5nXSgjdHlwZS1tYXBwaW5nKQoqICoqQXJyYXkgYW5ub3RhdGlvbioqOiBge1tdc3RyaW5nfWAsIGB7W11pbnR9YCwgZXRjLgoKIyMjIEJvZHkgVGFnCj4gKkFubm90YXRpb246KiBib2R5IChyZWZlcmVuY2UpCgojIyMjIHJlZmVyZW5jZQoqIGdvIHN0cnVjdHVyZSB1c2VkIGFzIHJlcXVlc3QgbW9kZWwsIGV4YW1wbGU6IGAvLyBAYm9keSBtb2RlbC5Mb2dpbmAKICAKICBgYGBnbwogIC8vIExvZ2luIHN0cnVjdCBsb2NhdGVkIGluICJtb2RlbCIgcGFja2FnZSwKICAvLyByZWZlcmVuY2VkIGluIHRoZSBnbyBmaWxlIHdoZXJlIHRoZSBlbmRwb2ludAogIC8vIGFubm90YXRpb24gaXMgc2V0CiAgdHlwZSBMb2dpbiBzdHJ1Y3QgewogICAgLy8gVXNlcidzIGVtYWlsIGFkZHJlc3MKICAgIFVzZXJuYW1lIHN0cmluZyBganNvbjoidXNlcm5hbWUiYAogICAgUGFzc3dvcmQgc3RyaW5nCiAgfQogIGBgYAogIHdpbGwgYmUgcmVzb2x2ZWQgYXM6CiAgYGBgeWFtbAogIHNjaGVtYToKICAgIHR5cGU6IG9iamVjdAogICAgcGFyYW1ldGVyczoKICAgICAgdXNlcm5hbWU6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGVzY3JpcHRpb246IFVzZXIncyBlbWFpbCBhZGRyZXNzCiAgICAgIHBhc3N3b3JkOgogICAgICAgIHR5cGU6IHN0cmluZwogIGBgYAoqIFRoZSByZWZlcmVuY2Ugc3RydWN0dXJlIGlzIGJlaW5nIHJlc29sdmVkIHJlY3Vyc2l2ZWx5LCBpLmUuIGl0IG1pZ2h0IGNvbnRhaW4gZmllbGRzIHJlZmVyZW5jaW5nIG90aGVyIGdvIHN0cnVjdC4KKiBbU2VlIFN0cnVjdCBBbm5vdGF0aW9uXSgjc3RydWN0LWFubm90YXRpb24pIGZvciBtb3JlIGRldGFpbHMuCgojIyMgV3JhcHBlciBUYWcKPiAqQW5ub3RhdGlvbjoqIHN3cmFwIChyZWZlcmVuY2UpIChwb2ludGVyIGZpZWxkKSwgZndyYXAgKHJlZmVyZW5jZSkgKGZpZWxkIHBvaW50ZXIpCgpJZiB0aGlzIHRhZyBpcyBzZXQsIGFueSBzdWNjZXNzL2ZhaWx1cmUgcmVzcG9uc2Ugb2JqZWN0IGlzIGJlaW5nIHdyYXBwZWQgd2l0aCB0aGlzIG9iamVjdCBvbiB0aGUgZGVzaXJlZCBwb2ludGVyIGZpZWxkLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgYXJlIHVzaW5nIGEgZ2VuZXJpYyBBUEkgcmVzcG9uc2Ugb2JqZWN0IHdpdGggdmFyaW91cyBkYXRhIGZpZWxkLgoKIyMjIyBFeGFtcGxlCmBgYGdvCnR5cGUgQVBJU3VjY2VzcyBzdHJ1Y3QgewogIFN0YXR1cyBzdHJpbmcgYGpzb246InN0YXR1cyJgCiAgRGF0YSBpbnRlcmZhY2V7fSBganNvbjoiZGF0YSJgCn0KdHlwZSBQcm9maWxlIHN0cnVjdCB7CiAgRmlyc3RuYW1lIGludCBganNvbjoiZmlyc3RuYW1lImAKICBMYXN0bmFtZSBzdHJpbmcgYGpzb246Imxhc3RuYW1lImAKfQpgYGAKCmAvLyBAc3dyYXAgQVBJU3VjY2VzcyBkYXRhYCBhbmQgYC8vIEBzdWNjZXNzIDIwMCB7b2JqZWN0fSBQcm9maWxlIE9LYCB3aWxsIHByb2R1Y2U6CmBgYHlhbWwKIjIwMCI6CiAgZGVzY3JpcHRpb246IE9LCiAgY29udGVudDoKICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgc3RhdHVzOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRhdGE6CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUHJvZmlsZSIKYGBgCgoqIFRoZSByZWZlcmVuY2Ugc3RydWN0dXJlIGlzIGJlaW5nIHJlc29sdmVkIHJlY3Vyc2l2ZWx5LCBpLmUuIGl0IG1pZ2h0IGNvbnRhaW4gZmllbGRzIHJlZmVyZW5jaW5nIG90aGVyIGdvIHN0cnVjdC4KKiBbU2VlIFN0cnVjdCBBbm5vdGF0aW9uXSgjc3RydWN0LWFubm90YXRpb24pIGZvciBtb3JlIGRldGFpbHMuCgojIyMgUmVzcG9uc2UgVGFnCj4gKkFubm90YXRpb246KiBzdWNjZXNzIChjb2RlKSB7KHR5cGUpfSAocmVmZXJlbmNlIG9yIHN0cmluZykgKGRlc2NyaXB0aW9uKSwgZmFpbHVyZSAoY29kZSkgeyh0eXBlKX0gKHJlZmVyZW5jZSBvciBzdHJpbmcpIChkZXNjcmlwdGlvbikKCiMjIyMgY29kZQoqIEFueSB2YWxpZCBIVFRQIHJlcG9uc2UgY29kZQoKIyMjIyB0eXBlCiogVGhlIG91dGVyICJ7fSIgYXJlIHVzZWQganVzdCBhcyB2aXN1YWwgc2VwYXJhdG9ycyBvZiB0eXBlIGZpZWxkLCBpLmUuIHRoZWlyIGFyZSBub3QgcmVxdWlyZWQuCiAgRS5nLiBgLy8gQHN1Y2Nlc3MgMjAwIHtzdHJpbmd9IHN0cmluZyBPS2AgPSBgLy8gQHN1Y2Nlc3MgMjAwIHN0cmluZyBzdHJpbmcgT0tgCiogU3VwcG9ydGVkOiBvYmplY3QsIHN0cmluZwogICogaWYgc2V0IHRvIG9iamVjdCwgdGhlIG5leHQgcGFyYW1ldGVyIGV4cGVjdGVkIGlzICoqcmVmZXJlbmNlKioKICAqIGlmIHNldCB0byBzdHJpbmcsIG5leHQgcGFyYW1ldGVyIGlzIHNraXBwZWQgKHJlZmVyZW5jZSkKCiMjIyMgcmVmZXJlbmNlCiogUmVmZXJlbmNlIHJlc3BvbnNlIGdvIHN0cnVjdAoqICoqQXJyYXkgYW5ub3RhdGlvbioqOiBge1tdcmVzcG9uc2UuQ2FyfWAsIGV0Yy4KKiBUaGUgcmVmZXJlbmNlIHN0cnVjdHVyZSBpcyBiZWluZyByZXNvbHZlZCByZWN1cnNpdmVseSwgaS5lLiBpdCBtaWdodCBjb250YWluIGZpZWxkcyByZWZlcmVuY2luZyBvdGhlciBnbyBzdHJ1Y3QuCiogW1NlZSBTdHJ1Y3QgQW5ub3RhdGlvbl0oI3N0cnVjdC1hbm5vdGF0aW9uKSBmb3IgbW9yZSBkZXRhaWxzLgoKIyMjIFBhdGggVGFnCj4gKkFubm90YXRpb246KiByb3V0ZXIgKHBhdGgpIFsobWV0aG9kKV0KCiMjIyMgcGF0aCAKKiBJdCBtaWdodCBjb250YWluIHRoZSAicGF0aCIgcGFyYW1ldGVycywgaXQgdGhpcyBmb3JtYXQ6IGAvbG9naW4ve3Rva2VufWAgd2hlcmUgdG9rZW4gaXMgdGhlIG5hbWUgb2YgcGFyYW0gZGVmaW5lZCBpbiB0aGUgW1BhcmFtIFRhZ10oI3BhdGFtLXRhZykuCgojIyMjIG1ldGhvZAoqIEhUVFAgbWV0aG9kCiogVGhlIG91dGVyICJbXSIgYXJlIHVzZWQganVzdCBhcyB2aXN1YWwgc2VwYXJhdG9ycyBvZiBtZXRob2QgZmllbGQsIGkuZS4gdGhlaXIgYXJlIG5vdCByZXF1aXJlZC4KICBFLmcuIGAvLyBAcm91dGVyIC9sb2dpbiBbcG9zdF1gID0gYC8vIEByb3V0ZXIgL2xvZ2luIHBvc3RgCiogSXQgbWlnaHQgY29udGFpbiBhbiBhcnJheSBvZiBtZXRob2RzLCBlLmcuOiBgW3Bvc3QsIHB1dF1gCgojIyMgRXhhbXBsZSBFbmRwb2ludCBBbm5vdGF0aW9uCmBgYGdvCi8vIExvZ2luIHJlcXVlc3QKLy8gQHN1bW1hcnkgTG9naW4gdXNlcgovLyBAZGVzYyBBdXRoZW50aWNhdGlvbiByZXF1ZXN0Ci8vIEBpZCBsb2dpbgovLyBAdGFnIEF1dGhlbnRpY2F0aW9uCi8vIEBhY2NlcHQganNvbiwgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkCi8vIEBwcm9kdWNlIGpzb24KLy8gQGJvZHkgbW9kZWwuTG9naW4KLy8gQHN3cmFwIHJlc3BvbnNlLkRhdGEgZGF0YQovLyBAc3VjY2VzcyAyMDAge29iamVjdH0gcmVxdWVzdC5Ub2tlbiBPSwovLyBAZmFpbHVyZSA0MDEge29iamVjdH0gcmVzcG9uc2UuRXJyb3IgVW5hdXRob3JpemVkLgovLyBTZWUgZXJyb3IgY29kZSBhbmQgZXJyb3IgbWVzc2FnZSBmb3IgbW9yZSBkZXRhaWxzLgovLyBAZmFpbHVyZSA1MDAge3N0cmluZ30gSW50ZXJuYWwgU2VydmVyIEVycm9yCi8vIEByb3V0ZXIgL2xvZ2luIFtwb3N0XQpmdW5jIGhhbmRsZXIodyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHt9CgovLyBAc3VtbWFyeSBBY3RpdmF0ZSB1c2VyCi8vIEBkZXNjIFVzZXIgYWN0aXZhdGlvbiB2aWEgdGhlIHRva2VuIHJlcXVlc3QuCi8vIEBpZCBhY3RpdmF0ZQovLyBAdGFnIFJlZ2lzdHJhdGlvbgovLyBAcGFyYW0gdG9rZW4gcGF0aCB7c3RyaW5nfSB0cnVlIEFjdGl2YXRpb24gdG9rZW4KLy8gQHByb2R1Y2UganNvbgovLyBAc3VjY2VzcyAyMDAge3N0cmluZ30gT0sKLy8gQGZhaWx1cmUgNTAwIHtzdHJpbmd9IEludGVybmFsIFNlcnZlciBFcnJvcgovLyBAcm91dGVyIC9yZWdpc3RyYXRpb24vYWN0aXZhdGUve3Rva2VufSBbZ2V0XQpmdW5jIGhhbmRsZXIodyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHt9CgovLyBIYW5kbGVycyB3aXRoIHBhc3NlZCBnb3JpbGxhIG11eCByb3V0ZXIKLy8KLy8gSW4gdGhpcyBleGFtcGxlIHRoZSBAcm91dGVyIHRhZyBpcyBiZWluZyByZXNvbHZlZAovLyBmcm9tIHRoZSBIYW5kbGVGdW5jIG9yIEhhbmRsZSBnb3JpbGxhICptdXguUm91dGVyIGZ1bmMuCi8vIEBwYXJhbSB0YWdzIGFyYSBhbHNvIHJlc29sdmVkIGZyb20gdGhlIGZ1bmMgcGF0aCBzdHJpbmcuCi8vCi8vIFRoZXNlIHRhZ3Mgd2lsbCBiZSBleHRyYWN0ZWQgYXV0b21hdGljYWxseToKLy8gQHJvdXRlciAvcGVyc29uL3tpZH0gW2dldF0KLy8gQHBhcmFtIGlkIHBhdGgge3N0cmluZ30gdHJ1ZQpmdW5jIEhhbmRsZXJzKHIgKm11eC5Sb3V0ZXIpIHsKICAvLyBHZXRQZXJzb24gaGFuZGxlcgogIC8vIEBzdW1tYXJ5IFBlcnNvbgogIC8vIEBkZXNjIEdldCBwZXJzb24gYnkgSUQuCiAgLy8gQGlkIHBlcnNvbgogIC8vIEB0YWcgUGVyc29uCiAgLy8gQHByb2R1Y2UganNvbgogIC8vIEBzdWNjZXNzIDIwMCB7b2JqZWN0fSBQZXJzb24gT0sKICAvLyBAZmFpbHVyZSA1MDAge3N0cmluZ30gSW50ZXJuYWwgU2VydmVyIEVycm9yCiAgci5IYW5kbGVGdW5jKCIvcGVyc29uL3tpZDpbMC05XSt9IiwgR2V0UGVyc29uKS5NZXRob2RzKCJHRVQiKQp9CmBgYAoKIyMgZ29yaWxsYS9tdXggSGFuZGxlciBGdW5jdGlvbnMKYEByb3V0ZXJgIHRhZyBhbmQgIGBAcGFyYW1gIHRhZ3MgY291bGQgYXV0b21hdGljYWxseSByZXNvbHZlZCBpZiB0aGUgZW5kcG9pbnQgYW5ub3RhdGlvbiBpcyBwbGFjZWQgYWJvdmUgdGhlIFtnb3JpbGxhL211eF0oaHR0cHM6Ly9naXRodWIuY29tL2dvcmlsbGEvbXV4KSBIYW5kbGVyIG9yIEhhbmRsZXJGdW5jIGZ1bmN0aW9uOgpgYGBnbwovLyBHZXRQZXJzb24gaGFuZGxlcgovLyBAc3VtbWFyeSBQZXJzb24KLy8gQGRlc2MgR2V0IHBlcnNvbiBieSBJRC4KLy8gQGlkIHBlcnNvbgovLyBAdGFnIFBlcnNvbgovLyBAcHJvZHVjZSBqc29uCi8vIEBzdWNjZXNzIDIwMCB7b2JqZWN0fSBQZXJzb24gT0sKLy8gQGZhaWx1cmUgNTAwIHtzdHJpbmd9IEludGVybmFsIFNlcnZlciBFcnJvcgpyLkhhbmRsZUZ1bmMoIi9wZXJzb24ve2lkOlswLTldK30iLCBHZXRQZXJzb24pLk1ldGhvZHMoIkdFVCIpCmBgYApBdXRvbWF0aWNhbGx5IHJlc29sdmVkIHRhZ3Mgd2lsbCBiZSBiZToKKiBgQHJvdXRlciAvcGVyc29uL3tpZH0gW2dldF1gCiogYEBwYXJhbSBpZCBwYXRoIHtzdHJpbmd9IHRydWVgCgojIyMgTm90ZXMKKiBUaGlzIHByb2Nlc3MgaXMgc2tpcHBlZCBpZiB0aGUgZW5kcG9pbnQgYW5ub3RhdGlvbiBjb250YWlucyB0aGUgYEByb3V0ZXJgIHRhZwoqIElmIHRoZSBlbmRwb2ludCBhbm5vdGF0aW9uIGNvbnRhaW5zIGEgYEBwYXJhbWAgdGFnIGZvdW5kIGluIHRoZSBmdW5jIHBhdGggcGFyYW1ldGVyLCBpdCBpcyBub3QgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIHRoaXMgcHJvY2VzcyBub3IgZG91YmxlIGFubm90YXRlZC4KKiBQbGVhc2UgW3NlZSBnb3JpbGxhL211eCBTdWJyb3V0ZXJdKCNnb3JpbGxhbXV4LXN1YnJvdXRlcikgc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBob3cgdG8gd29yayB3aXRoIGdvcmlsbGEvbXV4IHN1YnJvdXRlcnMuCgojIyBnb3JpbGxhL211eCBTdWJyb3V0ZXIKQW4gZW5kcG9pbnQgY2FuIHVzZSBgc3Vicm91dGVyYCB0YWcgdG8gY29ubmVjdCBhIGVuZHBvaW50IHdpdGggdGhlIHN1YnJvdXRlciB0byByZXNvbHZlIHRoZSBmaW5hbCBlbmRwb2ludCBVUkwuCgojIyMgU3Vicm91dGVyIEFubm90YXRpb24KfCBBbm5vdGF0aW9uICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgfCBFeGFtcGxlICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCByb3V0ZXIgKG5hbWUpICAgIHwgTmFtZSBvZiB0aGUgc3Vicm91dGVyLiAgICAgICAgfCAvLyBAcm91dGVyIGFjY291bnQgIHwKfCBzdWJyb3V0ZXIgKG5hbWUpIHwgTmFtZSBvZiB0aGUgcGFyZW50IHN1YnJvdXRlci4gfCAvLyBAc3Vicm91dGVyIGFkbWluIHwKClRoZSBhbm5vdGF0aW9uIG11c3QgYmUgcGxhY2VkIGFib3ZlIHRoZSAqKmdvcmlsbGEubXV4IFN1YnJvdXRlcioqIG1ldGhvZCBhbnl3aGVyZSB3aXRoaW4gdGhlIE1haW4gZmlsZSBvciBpbiBhbnkgZmlsZSB3aXRoaW4gdGhlIGVuZHBvaW50cyByb290IGZvbGRlci4KCiMjIyMgRXhhbXBsZQpgYGBnbwovLyBAcm91dGVyIGFkbWluCnIuUGF0aFByZWZpeCgiL2FkbWluIikuU3Vicm91dGVyKCkKCi8vIEByb3V0ZXIgdXNlcgovLyBAc3Vicm91dGVyIGFkbWluCnIuUGF0aFByZWZpeCgiL3VzZXIiKS5TdWJyb3V0ZXIoKQoKLy8gQHN1bW1hcnkgTGlzdCBvZiB1c2VycwovLyBAcHJvZHVjZSBqc29uCi8vIEBzdWNjZXNzIDIwMCB7b2JqZWN0fSBQZXJzb24gT0sKLy8gQHN1YnJvdXRlciB1c2VyCnIuSGFuZGxlRnVuYygiL2xpc3QiLCBHZXRQZXJzb25MaXN0KS5NZXRob2RzKCJHRVQiKQpgYGAKPiBUaGUgVVJMIHJlc29sdmVkIGZvciB0aGUgIkxpc3Qgb2YgdXNlcnMiIGVuZHBvaW50IHdpbGwgYmUgYC9hZG1pbi91c2VyL2xpc3RgCgojIyBNaW1lIFR5cGVzIEFubm90YXRpb24KfCBNaW1lIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbm5vdGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgdGV4dC9wbGFpbiAgICAgICAgICAgICAgICAgICAgICAgIHwgdGV4dCwgdGV4dC9wbGFpbiAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB0ZXh0L2h0bWwgICAgICAgICAgICAgICAgICAgICAgICAgfCBodG1sLCB0ZXh0L2h0bWwgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IHRleHQveG1sICAgICAgICAgICAgICAgICAgICAgICAgICB8IHhtbCwgdGV4dC94bWwgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYXBwbGljYXRpb24vanNvbiAgICAgICAgICAgICAgICAgIHwganNvbiwgYXBwbGljYXRpb24vanNvbiAgICAgICAgICAgICAgICAgIHwKfCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQgfCBmb3JtLCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQgfAp8IG11bHRpcGFydC9mb3JtLWRhdGEgICAgICAgICAgICAgICB8IG11bHRpcGFydCwgbXVsdGlwYXJ0L2Zvcm0tZGF0YSAgICAgICAgICB8CnwgYXBwbGljYXRpb24vdm5kLmFwaStqc29uICAgICAgICAgIHwganNvbi1hcGksIGFwcGxpY2F0aW9uL3ZuZC5hcGkranNvbiAgICAgIHwKfCBhcHBsaWNhdGlvbi94LWpzb24tc3RyZWFtICAgICAgICAgfCBqc29uLXN0cmVhbSwgYXBwbGljYXRpb24veC1qc29uLXN0cmVhbSAgfAp8IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSAgICAgICAgICB8IG9jdGV0LXN0cmVhbSwgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtICB8CnwgaW1hZ2UvcG5nICAgICAgICAgICAgICAgICAgICAgICAgIHwgcG5nLCBpbWFnZS9wbmcgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbWFnZS9qcGVnICAgICAgICAgICAgICAgICAgICAgICAgfCBqcGVnLCBpbWFnZS9qcGVnICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGltYWdlL2pwZWcgICAgICAgICAgICAgICAgICAgICAgICB8IGpwZywgIGltYWdlL2pwZWcgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW1hZ2UvZ2lmICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ2lmLCAgaW1hZ2UvZ2lmICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIFN0cnVjdCBBbm5vdGF0aW9uCmBgYGdvCnR5cGUgUHJvZmlsZSBzdHJ1Y3QgewogIC8vIFVzZXIncyBlbWFpbAogIFVzZXJuYW1lIHN0cmluZyBganNvbjoidXNlcm5hbWUiIHJlcXVpcmVkOiJ0cnVlImAKICBTdGF0dXMgVXNlclN0YXR1cyBgYXBpdHlwZToiaW50ImAKfQp0eXBlIFVzZXJTdGF0dXMgaW50CmBgYAoKKiBDb21tZW50IGFib3ZlIHRoZSBmaWVsZCBpcyBiZWluZyBjYXB0dXJlZCBhcyBmaWVsZCAiZGVzY3JpcHRpb24iCiogYGpzb246IngiYCBvdmVycmlkZXMgdGhlIGZpZWxkIG5hbWUKKiBgYXBpdHlwZToieCJgIG92ZXJyaWRlcyB0aGUgZmllbGQgdHlwZQoqIGByZXF1aXJlZDoidHJ1ZSJgIG1hcmtzIHRoZSBmaWVsZCBhcyByZXF1aXJlZAoKIyMgRGF0YSBUeXBlcyBDb252ZXJzaW9uCkdvIHR5cGVzIGFyZSBiZWluZyBjb252ZXJ0ZWQgaW50byBPcGVuQVBJIGFjY2VwdGVkIGZvcm1hdAoKfCBnbyBUeXBlIHwgQ29udmVydGVkIFR5cGUgfAp8IC0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLSB8CnwgYnl0ZSAgICB8IGludGVnZXIgICAgICAgIHwKfCBydW5lICAgIHwgaW50ZWdlciAgICAgICAgfAp8IGludCAgICAgfCBpbnRlZ2VyICAgICAgICB8CnwgaW50OCAgICB8IGludGVnZXIgICAgICAgIHwKfCBpbnQxNiAgIHwgaW50ZWdlciAgICAgICAgfAp8IGludDMyICAgfCBpbnRlZ2VyICAgICAgICB8CnwgaW50NjQgICB8IGludGVnZXIgICAgICAgIHwKfCB1aW50ICAgIHwgaW50ZWdlciAgICAgICAgfAp8IHVpbnQ4ICAgfCBpbnRlZ2VyICAgICAgICB8CnwgdWludDE2ICB8IGludGVnZXIgICAgICAgIHwKfCB1aW50MzIgIHwgaW50ZWdlciAgICAgICAgfAp8IHVpbnQ2NCAgfCBpbnRlZ2VyICAgICAgICB8CnwgdWludHB0ciB8IGludGVnZXIgICAgICAgIHwKfCBmbG9hdDMyIHwgbnVtYmVyICAgICAgICAgfAp8IGZsb2F0NjQgfCBudW1iZXIgICAgICAgICB8CnwgYm9vbCAgICB8IGJvb2xlYW4gICAgICAgIHwKCiMgVGlwcwoKIyMgQW5ub3RhdGlvbiBvdmVyIE11bHRpcGxlIExpbmVzCkxhc3QgcGFyYW1ldGVyIG9mIGFueSB0YWcgaXMgY291bGQgc3ByZWFkIG92ZXIgbXVsdGlwbGUgbGluZXMsIGUuZy46CmBgYGdvCi8vIEBkZXNjIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nCi8vIGVsaXQuIE51bGxhbSByaG9uY3VzIG1hZ25hIG51bmMsIGluIGZhdWNpYnVzIG1ldHVzIHB1bHZpbmFyCi8vIGV0LiBNYXVyaXMgcGVsbGVudGVzcXVlIGVuaW0ganVzdG8KCi8vIEBmYWlsdXJlIDUwMCB7c3RyaW5nfSBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIKLy8gYWRpcGlzY2luZyBlbGl0LiBOdWxsYW0gcmhvbmN1cyBtYWduYSBudW5jLCBpbiBmYXVjaWJ1cyBtZXR1cwovLyBwdWx2aW5hciBldC4gTWF1cmlzIHBlbGxlbnRlc3F1ZSBlbmltIGp1c3RvLgpgYGAKCiMjIEFycmF5IFJlZmVyZW5jZXMKVXNlICoqW10qKiBhbm5vdGF0aW9uIGluIGZyb20gb2YgdGhlIHJlZmVyZW5jZS4KYGBgZ28KLy8gQGJvZHkgW11yZXF1ZXN0LlBlcnNvbgoKLy8gQHN1Y2Nlc3MgMjAwIHtvYmplY3R9IFtdcmVzcG9uc2UuUGVyc29uIE9LCmBgYAoKIyMgQW5kIEVuZHBvaW50IFdpdGggTWFueSBEZWNyYWxhcmlvbnMKQW4gZW5kcG9pbnQsIHdpdGggdGhlIHNhbWUgVVJMIGNvdWxkIGJlIGRlY2xhcmVkIHNlcGFyYXRlbHkgd2l0aCBkaWZmZXJlbnQgbWV0aG9kcywgYW5kIHRoZSBnZW5lcmF0b3Igd2lsbCBwcm9wZXJseSBncm91cCB0aGVtLgojIyMgRXhhbXBsZQpgYGBnbwovLyBAc3VtbWFyeSBHZXQgVXNlcgovLyBAcGFyYW0gaWQgcGF0aCB7aW50fSB0cnVlIFVzZXIgSUQKLy8gQHByb2R1Y2UgdGV4dAovLyBAc3VjY2VzcyAyMDAge3N0cmluZ30gT0sKLy8gQHJvdXRlciAvdXNlci97aWR9IFtwb3N0XQoKLy8gLi4uCgovLyBAc3VtbWFyeSBEZWxldGUgVXNlcgovLyBAcGFyYW0gaWQgcGF0aCB7aW50fSB0cnVlIFVzZXIgSUQKLy8gQHByb2R1Y2UgdGV4dAovLyBAc3VjY2VzcyAyMDAge3N0cmluZ30gT0sKLy8gQHJvdXRlciAvdXNlci97aWR9IFtkZWxldGVdCmBgYAp3aWxsIHByb2R1Y2UKYGBgeWFtbAovdXNlci97aWR9OgogIGdldDoKICAgIHN1bW1hcnk6IEdldCBVc2VyCiAgICBwYXJhbWV0ZXJzOgogICAgLSBuYW1lOiBpZAogICAgICBkZXNjcmlwdGlvbjogVXNlciBJRAogICAgICBpbjogcGF0aAogICAgICByZXF1aXJlZDogdHJ1ZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogaW50ZWdlcgogICAgcmVzcG9uc2VzOgogICAgICAiMjAwIjoKICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICBjb250ZW50OgogICAgICAgICAgcGxhaW4vdGV4dDoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogIGRlbGV0ZToKICAgIHN1bW1hcnk6IERlbGV0ZSBVc2VyCiAgICBwYXJhbWV0ZXJzOgogICAgLSBuYW1lOiBpZAogICAgICBkZXNjcmlwdGlvbjogVXNlciBJRAogICAgICBpbjogcGF0aAogICAgICByZXF1aXJlZDogdHJ1ZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogaW50ZWdlcgogICAgcmVzcG9uc2VzOgogICAgICAiMjAwIjoKICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICBjb250ZW50OgogICAgICAgICAgcGxhaW4vdGV4dDoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwpgYGAKCiMgQVBJRG9jIENMSQpSdW4gdGhlIGBhcGlkb2MgLWhgIHRvIGFsbCBmbGFncyBhbmQgY29tbWFuZHM6CmBgYGNvbnNvbGUKQVBJIERvY3VtZW50YXRpb24gR2VuZXJhdG9yCgpVc2FnZToKICAgW2ZsYWdzXQogICBbY29tbWFuZF0KCkF2YWlsYWJsZSBDb21tYW5kczoKICBoZWxwICAgICAgICBIZWxwIGFib3V0IGFueSBjb21tYW5kCiAgdmVyc2lvbiAgICAgU2hvdyB0aGUgQVBJRG9jIHZlcnNpb24KCkZsYWdzOgogIC1lLCAtLWVuZHBvaW50cyBzdHJpbmcgICBSb290IGVuZHBvaW50cyBmb2xkZXIgKGRlZmF1bHQgIi4vIikKICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgSGVscCBmb3IgdGhpcyBjb21tYW5kCiAgLW0sIC0tbWFpbiBzdHJpbmcgICAgICAgIE1haW4gQVBJIGRvY3VtZW50YXRpb24gZmlsZSAoZGVmYXVsdCAibWFpbi5nbyIpCiAgLW8sIC0tb3V0cHV0IHN0cmluZyAgICAgIERvY3VtZW50YXRpb24gb3V0cHV0IGZvbGRlciAoZGVmYXVsdCAiZG9jcy9hcGkiKQogIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBTaG93IGdlbmVyYXRpb24gd2FybmluZ3MKClVzZSAiIFtjb21tYW5kXSAtLWhlbHAiIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4KYGBgCgojIEFib3V0IHRoZSBQcm9qZWN0ClRoaXMgcHJvamVjdCB3YXMgaW5zcGlyZWQgYnkgW3N3YWdnby9zd2FnXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dvL3N3YWcvKSwgZGVzaWduZWQgbWFpbmx5IHRvIGhhbmRsZSBvdXIgQVBJIGRvY3VtZW50YXRpb24gbmVlZHMsIGkuZS4gYWRkIHN1cHBvcnQgZm9yIHJlc3BvbnNlIHdyYXBwZXJzLCBnZW5lcmF0ZSBPcGVuQVBJIHYzLlggZG9jdW1lbnRhdGlvbi4gQW55IGZlZWRiYWNrLCBjb250cmlidXRpb24gdG8gdGhpcyBwcm9qZWN0IGlzIHdlbGNvbWVkLgoKVGhlIHByb2plY3QgaXMgaW4gYSBiZXRhIHBoYXNlLCB0aGVyZWZvcmUgdGhlcmUgbWlnaHQgYmUgbWFqb3IgY2hhbmdlcyBpbiBuZWFyIGZ1dHVyZSwgdGhlIGFubm90YXRpb24gc2hvdWxkIHN0YXkgdGhlIHNhbWUsIHRob3VnaC4KCiMgQ29udHJpYnV0aW5nCldoZW4gY29udHJpYnV0aW5nIHRvIHRoaXMgcmVwb3NpdG9yeSwgcGxlYXNlIGZpcnN0IGRpc2N1c3MgdGhlIGNoYW5nZSB5b3Ugd2lzaCB0byBtYWtlIHZpYSBpc3N1ZSwgZW1haWwsIG9yIGFueSBvdGhlciBtZXRob2Qgd2l0aCB0aGUgb3duZXJzIG9mIHRoaXMgcmVwb3NpdG9yeSBiZWZvcmUgbWFraW5nIGEgY2hhbmdlLiAKCiMjIFB1bGwgUmVxdWVzdCBQcm9jZXNzCjEuIEZvcmsgaXQKMi4gQ3JlYXRlIHlvdXIgZmVhdHVyZSBicmFuY2ggKGBnaXQgY2hlY2tvdXQgLWIgZnQvbmV3LWZlYXR1cmUtbmFtZWApCjMuIENvbW1pdCB5b3VyIGNoYW5nZXMgKGBnaXQgY29tbWl0IC1hbSAnQWRkIHNvbWUgZmVhdHVyZSdgKQo0LiBQdXNoIHRvIHRoZSBicmFuY2ggKGBnaXQgcHVzaCBvcmlnaW4gZnQvbmV3LWZlYXR1cmUtbmFtZWApCjUuIENyZWF0ZSBuZXcgUHVsbCBSZXF1ZXN0Cgo+IFBsZWFzZSBtYWtlIGFuIGlzc3VlIGZpcnN0IGlmIHRoZSBjaGFuZ2UgaXMgbGlrZWx5IHRvIGluY3JlYXNlLgoKIyBMaWNlbnNlCkFQSURvYyBpcyByZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLiBTZWUgW0xJQ0VOU0UudHh0XShodHRwczovL2dpdGh1Yi5jb20vc3BhY2Vhdm9jYWRvL2FwaWRvYy9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dCkKCg== readmeEtag: '"407860f005d432f04e671a9e1ddb89f05aa66be2"' readmeLastModified: Wed, 13 Mar 2019 21:55:10 GMT repositoryId: 168361295 description: >- Generate RESTful API documentation from GO source files into the OpenAPI v3.0.2 specification (formal Swagger 2.0 Specification). created: '2019-01-30T15:00:04Z' updated: '2023-10-13T20:53:04Z' language: Go archived: false stars: 17 watchers: 3 forks: 5 owner: spaceavocado logo: https://avatars.githubusercontent.com/u/47183501?v=4 license: Apache-2.0 repoEtag: '"b659f53944b8f69d75baff9e82b6191b47594ba3122ca051661cb42ca870b890"' repoLastModified: Fri, 13 Oct 2023 20:53:04 GMT foundInMaster: true category: Parsers id: 5dcebefc091c51707c14ac3e9f3253e5 - source: openapi3 tags repository: https://github.com/curvednebula/apibake-js v3: true id: bf23379a010e0d69a29b65a9831316fd repositoryMetadata: base64Readme: >- IyBBcGlCYWtlCgpDb252ZXJ0IE9wZW5BUEkgc3BlYyB0byBQREYuIFN1cHBvcnRzIE9wZW5BUEkgMy4wLjArIGpzb24gYW5kIHlhbWwuCgojIyBRdWljayBTdGFydAoKTm9kZS5qcyAxNisgcmVxdWlyZWQuCgpgYGAKbnBtIGluc3RhbGwgLWcgYXBpYmFrZQoKYXBpYmFrZSA8b3BlbmFwaS5qc29ufC55YW1sfGZvbGRlci1uYW1lPiBbPGZpbGUtb3ItZm9sZGVyMj4gPGZpbGUtb3ItZm9sZGVyMz4gLi4uXSBbPG9wdGlvbnM+XQpgYGAKCioqT3B0aW9uczoqKgoKYGBgCiAtLW91dCA8c3RyaW5nPjogT3V0cHV0IFBERiBmaWxlIG5hbWUuCiAtLXRpdGxlIDxzdHJpbmc+OiBEb2N1bWVudCB0aXRsZS4KIC0tc3VidGl0bGUgPHN0cmluZz46IERvY3VtZW50IHN1YiB0aXRsZS4KIC0tc2VwYXJhdGUtc2NoZW1hczogV2hlbiBtdWx0aXBsZSBBUEkgZmlsZXMgcGFyc2VkLCBjcmVhdGUgc2VwYXJhdGUgc2NoZW1hcyBzZWN0aW9uIGZvciBlYWNoLgogLS1mb290ZXIgPHN0cmluZz46IERlZmluZXMgY29udGVudCBvZiBjb21tb24gcGFnZSBmb290ZXIuIE9wdGlvbnM6ICJwYWdlLW51bWJlciIuIFRvIHR1cm4gb2ZmOiAiIi4KIC0tY29uZmlnIDxzdHJpbmc+OiBQYXRoIHRvIGFwaWJha2UtY29uZmlnLmpzb24uIFNlZSAtLWV4cG9ydC1jb25maWcuCiAtLWV4cG9ydC1jb25maWc6IFNhdmUgZGVmYXVsdCBjb25maWcgaW50byBqc29uIGZpbGUgZm9yIGVkaXRpbmcuCiAtaDogU2hvdyB0aGlzIGhlbHAuCmBgYAoKIyMgRXhhbXBsZXMKClNwZWNpZnkgdGl0bGUgYW5kIHN1YnRpdGxlIGZvciB5b3VyIFBERjoKCmBgYAphcGliYWtlIG9wZW5hcGkuanNvbiAtLXRpdGxlICdSRVNUIEFQSSBTcGVjJyAtLXN1YnRpdGxlICdjcmVhdGVkIHdpdGggQXBpQmFrZScKYGBgCgpDb21iaW5lIHNldmVyYWwgT3BlbkFQSSBzcGVjcyBpbnRvIG9uZSBQREY6CgpgYGAKYXBpYmFrZSBhcGkxLmpzb24gYXBpMi55YW1sIC0tdGl0bGUgJ1JFU1QgQVBJIFNwZWMnCmFwaWJha2UgZGlyL3dpdGgvb3BlbmFwaS1zcGVjcyAtLXRpdGxlICdSRVNUIEFQSSBTcGVjJwpgYGAKCiMjIEN1c3RvbSBjb25maWc6IGZvbnRzLCBjb2xvcnMsIHBhZ2UgbWFyZ2lucy4KClRvIG1vZGlmeSBkZWZhdWx0IGFwaWJha2UgY29uZmlnIC0gZmlyc3QgZXhwb3J0IGl0IGludG8gYSBmaWxlOgoKYGBgCmFwaWJha2UgLS1leHBvcnQtY29uZmlnCmBgYAoKTW9kaWZ5IGFwaWJha2UtY29uZmlnLmpzb24gYW5kIHRlbGwgYXBpYmFrZSB0byB1c2UgaXQ6CgpgYGAKYXBpYmFrZSBvcGVuYXBpLmpzb24gLS1jb25maWcgYXBpYmFrZS1jb25maWcuanNvbgpgYGAKClBERiBkZWZhdWx0IGZvbnRzIGNhbiBiZSBzcGVjaWZpZWQgYnkgdGhlaXIgbmFtZXM6CgogLSBDb3VyaWVyCiAtIENvdXJpZXItQm9sZAogLSBDb3VyaWVyLU9ibGlxdWUKIC0gQ291cmllci1Cb2xkT2JsaXF1ZQogLSBIZWx2ZXRpY2EKIC0gSGVsdmV0aWNhLUJvbGQKIC0gSGVsdmV0aWNhLU9ibGlxdWUKIC0gSGVsdmV0aWNhLUJvbGRPYmxpcXVlCiAtIFN5bWJvbAogLSBUaW1lcy1Sb21hbgogLSBUaW1lcy1Cb2xkCiAtIFRpbWVzLUl0YWxpYwogLSBUaW1lcy1Cb2xkSXRhbGljCiAtIFphcGZEaW5nYmF0cwoKQWx0ZXJuYXRpdmVseSwgZXh0ZXJuYWwgZm9udCBmaWxlcyBjYW4gYmUgc3BlY2lmaWVkLiBTdXBwb3J0ZWQgZm9udCBmb3JtYXRzOiBUcnVlVHlwZSAoLnR0ZiksIE9wZW5UeXBlICgub3RmKSwgV09GRiwgV09GRjIsIFRydWVUeXBlIENvbGxlY3Rpb24gKC50dGMpLCBhbmQgRGF0YWZvcmsgVHJ1ZVR5cGUgKC5kZm9udCkgZm9udHMuCgpFeGFtcGxlOgoKYGBgCnsKICAiZm9udCI6IHsKICAgICJiYXNlU2l6ZSI6IDEwLAogICAgIm1haW4iOiB7CiAgICAgICJub3JtIjogewogICAgICAgICJmYWNlIjogImZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZiIKICAgICAgfSwKICAgICAgImJvbGQiOiB7CiAgICAgICAgImZhY2UiOiAiZm9udHMvUm9ib3RvLUJvbGQudHRmIgogICAgICB9LAogICAgICAiaXRhbGljIjogewogICAgICAgICJmYWNlIjogImZvbnRzL1JvYm90by1JdGFsaWMudHRmIgogICAgICB9CiAgICB9LAogICAgIm1vbm8iOiB7CiAgICAgICJub3JtIjogewogICAgICAgICJmYWNlIjogIkNvdXJpZXIiCiAgICAgIH0sCiAgICAgICJib2xkIjogewogICAgICAgICJmYWNlIjogIkNvdXJpZXItQm9sZCIKICAgICAgfSwKICAgICAgIml0YWxpYyI6IHsKICAgICAgICAiZmFjZSI6ICJDb3VyaWVyLU9ibGlxdWUiCiAgICAgIH0KICAgIH0KICB9LAogIC4uLgp9CmBgYAoKTm90ZTogaWYgZm9udCBmaWxlIGlzIGEgY29sbGVjdGlvbiAoLnR0YykgLSB0aGVuIGZvbnQgc3R5bGUgbXVzdCBiZSBhbHNvIHNwZWNpZmllZC4gRXhhbXBsZToKCmBgYAogImZvbnQiOiB7CiAgICAibWFpbiI6IHsKICAgICAgIm5vcm0iOiB7CiAgICAgICAgImZhY2UiOiAiZm9udHMvUm9ib3RvLnR0YyIsCiAgICAgICAgInN0eWxlIjogIlJvYm90by1SZWd1bGFyIgogICAgICB9LAogICAgICAiYm9sZCI6IHsKICAgICAgICAiZmFjZSI6ICJmb250cy9Sb2JvdG8udHRjIiwKICAgICAgICAic3R5bGUiOiAiUm9ib3RvLUJvbGQiCiAgICAgIH0sCiAgICB9LAogICAgLi4uCiB9CmBgYAoKIyBNSVQgTGljZW5zZQoKQ29weXJpZ2h0IChjKSAyMDIzIEN1cnZlZE5lYnVsYS5jb20KClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg== readmeEtag: '"99e8b092bf3a384ed53c1dddb9bfeac2ed13457d"' readmeLastModified: Mon, 20 May 2024 19:20:55 GMT repositoryId: 683452181 description: Convert OpenAPI to PDF. created: '2023-08-26T16:09:46Z' updated: '2024-09-04T10:02:37Z' language: TypeScript archived: false stars: 21 watchers: 2 forks: 2 owner: curvednebula logo: https://avatars.githubusercontent.com/u/1443238?v=4 repoEtag: '"48522b18a097beb9ce2232727e66f2f1b156fc8a6cccf44e2ef2461faebda644"' repoLastModified: Wed, 04 Sep 2024 10:02:37 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/lusingander/topi v3: true repositoryMetadata: base64Readme: >- IyB0b3BpCgpUZXJtaW5hbCBPcGVuQVBJIGRvY3VtZW50YXRpb24gdmlld2VyIPCfkJAKCiMjIEFib3V0Cgo+IHRvcGkgaXMgc3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQuLi4g8J+QkAoKdG9waSBpcyB0aGUgZG9jdW1lbnRhdGlvbiB2aWV3ZXIgZm9yIE9wZW5BUEkgdjMgZGVmaW5pdGlvbnMgaW4gdGhlIHRlcm1pbmFsLgoKPGltZyBzcmM9Ii4vaW1nL2ltYWdlLmdpZiIgd2lkdGg9ODAwPgoKKFRoaXMgaW1hZ2Ugc2hvdyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL3Jlc3QtYXBpLWRlc2NyaXB0aW9uKQoKIyMgSW5zdGFsbGF0aW9uCgpgJCBnbyBpbnN0YWxsIGdpdGh1Yi5jb20vbHVzaW5nYW5kZXIvdG9waUBsYXRlc3RgCgoocmVxdWlyZSBHbyAxLjE4KykKCiMjIFVzYWdlCgpgJCB0b3BpIDxwYXRoPmAKCj4gYHBhdGhgIGNhbiBiZSBsb2NhbCBmaWxlIHBhdGggb3IgcmVtb3RlIFVSTC4KCiMjIyBLZXliaW5kaW5ncwoKIyMjIyBDb21tb24KCmNvbW1vbiBrZXliaW5kaW5ncyBmb3IgYWxsIHBhZ2VzCgp8S2V5fERlc2NyaXB0aW9ufAp8LXwtfAp8PGtiZD5CYWNrc3BhY2U8L2tiZD58YmFjayB0byBwZXJ2IHBhZ2V8Cnw8a2JkPkN0cmwrYzwva2JkPnxxdWl0fAp8PGtiZD4/PC9rYmQ+fHNob3cgaGVscCBwYWdlfAoKIyMjIyBMaXN0IHBhZ2UKCmtleWJpbmRpbmdzIGZvciBsaXN0LXN5bGUgcGFnZXMgCgp8S2V5fERlc2NyaXB0aW9ufAp8LXwtfAp8PGtiZD5qPC9rYmQ+fGN1cnNvciBkb3dufAp8PGtiZD5rPC9rYmQ+fGN1cnNvciB1cHwKfDxrYmQ+Zjwva2JkPiA8a2JkPmw8L2tiZD58bmV4dCBwYWdlfAp8PGtiZD5iPC9rYmQ+IDxrYmQ+aDwva2JkPnxwcmV2IHBhZ2V8Cnw8a2JkPmc8L2tiZD58Z28gdG8gc3RhcnR8Cnw8a2JkPkc8L2tiZD58Z28gdG8gZW5kfAp8PGtiZD4vPC9rYmQ+fEVudGVyIGZpbHRlcmluZyBtb2RlfAp8PGtiZD5FbnRlcjwva2JkPnwoZGVmYXVsdCkgc2VsZWN0IGl0ZW0sIChmaWx0ZXJpbmcpIGFwcGx5IGZpbHRlcnwKfDxrYmQ+RXNjPC9rYmQ+fChmaWx0ZXJpbmcpIGNhbmNlbCBmaWx0ZXIsIChmaWx0ZXIgYXBwbGllZCkgcmVtb3ZlIGZpbHRlcnwKCiMjIyMgRG9jdW1lbnQgcGFnZQoKa2V5YmluZGluZ3MgZm9yIGRvY3VtZW50IHBhZ2VzIAoKfEtleXxEZXNjcmlwdGlvbnwKfC18LXwKfDxrYmQ+ajwva2JkPnxwYWdlIGRvd24gb25lIGxpbmV8Cnw8a2JkPms8L2tiZD58cGFnZSB1cCBvbmUgbGluZXwKfDxrYmQ+Zjwva2JkPnxwYWdlIGRvd258Cnw8a2JkPmI8L2tiZD58cGFnZSB1cHwKfDxrYmQ+ZDwva2JkPnxoYWxmIHBhZ2UgZG93bnwKfDxrYmQ+dTwva2JkPnxoYWxmIHBhZ2UgdXB8Cnw8a2JkPlRhYjwva2JkPnxzZWxlY3QgbGlua3wKfDxrYmQ+eDwva2JkPnxvcGVuIHNlbGVjdGluZyBsaW5rfAoKc3BlY2lmaWMgdG8gdGhlIGNyZWRpdHMgcGFnZQoKfEtleXxEZXNjcmlwdGlvbnwKfC18LXwKfDxrYmQ+dDwva2JkPnx0b2dnbGUgY3JlZGl0cyBsaXN0fAoKIyMgTGljZW5zZQoKTUlUCg== readmeEtag: '"ea4e07f1cf4fd5b52dc4b092a72088a0f71a95bf"' readmeLastModified: Sun, 26 Jun 2022 07:45:32 GMT repositoryId: 463991716 description: Terminal OpenAPI documentation viewer 🐐 created: '2022-02-26T23:31:07Z' updated: '2024-06-14T14:19:52Z' language: Go archived: false stars: 17 watchers: 2 forks: 0 owner: lusingander logo: https://avatars.githubusercontent.com/u/31386431?v=4 license: MIT repoEtag: '"cc4e512ab5963fdf235867f358d29a2519badbef0872f13831febcf2e3a81bf6"' repoLastModified: Fri, 14 Jun 2024 14:19:52 GMT foundInMaster: true category: Documentation id: 236a30079db63d08dcedfb42b08f615d - source: openapi3 tags repository: https://github.com/go-courier/oas v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWMgQnVpbGRlcgoKWyFbR29Eb2MgV2lkZ2V0XShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2dvLWNvdXJpZXIvb2FzP3N0YXR1cy5zdmcpXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2dvLWNvdXJpZXIvb2FzKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9nby1jb3VyaWVyL29hcy5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9nby1jb3VyaWVyL29hcykKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2dvLWNvdXJpZXIvb2FzL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2dvLWNvdXJpZXIvb2FzKQpbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZ28tY291cmllci9vYXMpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZ28tY291cmllci9vYXMpCgoKW09wZW5BUEkgU3BlY10oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24pIDMuMC4zIGJ1aWxkZXIgZm9yIEdvbGFuZwoKIyMgVXNhZ2UKCmBgYGJhc2gKZ28gZ2V0IGdpdGh1Yi5jb20vZ28tY291cmllci9vYXMKYGBgCgo= readmeEtag: '"cad75c7f933591c657627a9abae8032d1d4fb8f3"' readmeLastModified: Wed, 24 Feb 2021 03:01:47 GMT repositoryId: 116089474 description: OpenAPI Spec builder in go created: '2018-01-03T04:01:46Z' updated: '2023-10-26T06:26:25Z' language: Go archived: false stars: 17 watchers: 5 forks: 3 owner: go-courier logo: https://avatars.githubusercontent.com/u/37426719?v=4 license: MIT repoEtag: '"d1f67477b8b7323a5db6f8fe7fe0f2b2ffae920ad2255d3a9e5944c18d1225fc"' repoLastModified: Thu, 26 Oct 2023 06:26:25 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: e6691a9306efe4c41d1db1f42c020391 - source: - openapi3 tags - openapi31 tags repository: https://github.com/mnahkies/openapi-code-generator v3: true repositoryMetadata: base64Readme: >- IyBAbmFoa2llcy9vcGVuYXBpLWNvZGUtZ2VuZXJhdG9yCgohW0NJL0NEXShodHRwczovL2dpdGh1Yi5jb20vbW5haGtpZXMvb3BlbmFwaS1jb2RlLWdlbmVyYXRvci9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQG5haGtpZXMvb3BlbmFwaS1jb2RlLWdlbmVyYXRvci5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbmFoa2llcy9vcGVuYXBpLWNvZGUtZ2VuZXJhdG9yKQoKYEBuYWhraWVzL29wZW5hcGktY29kZS1nZW5lcmF0b3JgIGlzIGEgQ0xJIHRvb2wgdGhhdCBhaW1zIHRvIGdlbmVyYXRlIGhpZ2ggcXVhbGl0eSB0eXBlc2NyaXB0IGNsaWVudCBTREsncywKYW5kIEFQSSBzZXJ2ZXIgc2NhZmZvbGRpbmcgKHJvdXRpbmcsIHZhbGlkYXRpb24sIHNlcmlhbGl6YXRpb24pIGZyb20gT3BlbkFQSSAzIHNwZWNpZmljYXRpb25zLgoKQ3VycmVudGx5LCBbT3BlbkFQSSAzLjBdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uL3YzKSwgW09wZW5BUEkgMy4xXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pLAphbmQgW1R5cGVTcGVjXShodHRwczovL3R5cGVzcGVjLmlvLykgYXJlIHN1cHBvcnRlZCBhbiBpbnB1dCBzcGVjaWZpY2F0aW9ucy4KCjwhLS0gdG9jIC0tPgoKLSBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCi0gW1Byb2plY3QgU3RydWN0dXJlXSgjcHJvamVjdC1zdHJ1Y3R1cmUpCi0gW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKLSBbTGljZW5zZV0oI2xpY2Vuc2UpCgo8IS0tIHRvY3N0b3AgLS0+CgojIyBEb2N1bWVudGF0aW9uCgpWaXNpdCBodHRwczovL29wZW5hcGktY29kZS1nZW5lcmF0b3IubmFoa2llcy5jby5uei8gZm9yIGRldGFpbGVkIGRvY3VtZW50YXRpb24gaW5jbHVkaW5nCnF1aWNrIHN0YXJ0IGd1aWRlcyBhbmQgcmVmZXJlbmNlIG1hdGVyaWFsLgoKVGhlIGRvY3VtZW50YXRpb24gaXMgYnVpbHQgdXNpbmcgTmV4dEpTIC8gTmV4dHJhLCBhbmQgZGVwbG95ZWQgdXNpbmcgR2l0aHViIHBhZ2VzLgpZb3UgY2FuIGNvbnRyaWJ1dGUgdG8gaXQgaW4gWy4vcGFja2FnZXMvZG9jdW1lbnRhdGlvbl0oLi9wYWNrYWdlcy9kb2N1bWVudGF0aW9uKQoKIyMgUHJvamVjdCBTdHJ1Y3R1cmUKClRoZSByZXBvc2l0b3J5IGlzIHN0cnVjdHVyZWQgYXMgYSBtb25vIHJlcG8gb2Ygc2V2ZXJhbCBucG0gcGFja2FnZXMgdGhhdCB3b3JrIHRvZ2V0aGVyIHVuZGVyIFsuL3BhY2thZ2VzXSguL3BhY2thZ2VzKToKCi0gW29wZW5hcGktY29kZS1nZW5lcmF0b3JdKC4vcGFja2FnZXMvb3BlbmFwaS1jb2RlLWdlbmVyYXRvcikKLSBbdHlwZXNjcmlwdC1heGlvcy1ydW50aW1lXSguL3BhY2thZ2VzL3R5cGVzY3JpcHQtYXhpb3MtcnVudGltZSkKLSBbdHlwZXNjcmlwdC1mZXRjaC1ydW50aW1lXSguL3BhY2thZ2VzL3R5cGVzY3JpcHQtZmV0Y2gtcnVudGltZSkKLSBbdHlwZXNjcmlwdC1rb2EtcnVudGltZV0oLi9wYWNrYWdlcy90eXBlc2NyaXB0LWtvYS1ydW50aW1lKQoKVGhlIGBvcGVuYXBpLWNvZGUtZ2VuZXJhdG9yYCBwYWNrYWdlIGlzIHRoZSBtYWluIHBhY2thZ2UsIHdoaWxzdCB0aGUgb3RoZXJzIGFyZSBzdXBwb3J0aW5nIHBhY2thZ2VzIHVzZWQgYXQgcnVudGltZSBieQp0aGUgY29kZSBvdXRwdXQgYnkgc29tZSBvZiB0aGUgdGVtcGxhdGVzLgoKSW50ZWdyYXRpb24gdGVzdCBkZWZpbml0aW9ucyBsaXZlIGluIFsuL2ludGVncmF0aW9uLXRlc3RzLWRlZmluaXRpb25zXSguL2ludGVncmF0aW9uLXRlc3RzLWRlZmluaXRpb25zKSBhbmQgdGhlIGdlbmVyYXRlZApjb2RlIG91dHB1dCB0byBbLi9pbnRlZ3JhdGlvbi10ZXN0c10oLi9pbnRlZ3JhdGlvbi10ZXN0cykKClNjcmlwdHMgdG8gcmVmcmVzaCB0aGUgdGVzdCBkYXRhIGxpdmUgaW4gWy4vc2NyaXB0c10oLi9zY3JpcHRzKQoKIyMgQ29udHJpYnV0aW5nCgpDb250cmlidXRpbmcgZ3VpZGVsaW5lcyBjYW4gYmUgZm91bmQgaW4gWy4vQ09OVFJJQlVUSU5HLm1kXSguL0NPTlRSSUJVVElORy5tZCkuCgpBbiBvdmVydmlldyBvZiB0aGUgY29kZWJhc2UgYXJjaGl0ZWN0dXJlIGlzIFthdmFpbGFibGUgaGVyZV0oaHR0cHM6Ly9vcGVuYXBpLWNvZGUtZ2VuZXJhdG9yLm5haGtpZXMuY28ubnovcmVmZXJlbmNlL2FyY2hpdGVjdHVyZSkKCiMjIExpY2Vuc2UKClNlZSBbLi9MSUNFTlNFXSguL0xJQ0VOU0UpCg== readmeEtag: '"fd2e60a86a8e08012eb652ba530d757345e6faa2"' readmeLastModified: Wed, 14 Aug 2024 06:00:16 GMT repositoryId: 283031380 description: >- A code generation tool for openapi 3 / 3.1 specifications written in typescript, primarily aimed at generating typescript clients and server stubs. Other target languages may be added in future. created: '2020-07-27T22:27:40Z' updated: '2024-09-05T06:46:27Z' language: JavaScript archived: false stars: 17 watchers: 7 forks: 2 owner: mnahkies logo: https://avatars.githubusercontent.com/u/2555533?v=4 license: MIT repoEtag: '"56780987311c86ec4819b90c5218cba436fdeb6ddfb45365798fa4b3ab82f13c"' repoLastModified: Thu, 05 Sep 2024 06:46:27 GMT foundInMaster: true category: Parsers id: f48e00de5360ad43542a200fc9b5769b v3_1: true - source: openapi3 tags repository: https://github.com/postgrest/postgrest-openapi v3: true id: 587979cc8238ff762a0d0bea8a052e41 repositoryMetadata: base64Readme: >- IyBQb3N0Z1JFU1QgT3BlbkFQSQoKU1FMIGZ1bmN0aW9ucyB0byBidWlsZCB0aGUgT3BlbkFQSSBvdXRwdXQgb2YgYSBQb3N0Z1JFU1QgaW5zdGFuY2UuCgojIyBSb2FkbWFwCgotIFRoZSBmaXJzdCBzdGVwIGluIHRoZSByb2FkbWFwIGlzIHRvIG1pZ3JhdGUgdGhlIE9wZW5BUEkgc3BlYyBmcm9tIHRoZSBQb3N0Z1JFU1QgY29yZSByZXBvc2l0b3J5ICh2ZXJzaW9uIDIuMCB0byAzLjEpOgogIC0gW3hdIEluZm8gb2JqZWN0CiAgLSBbeF0gU2VydmVyIG9iamVjdCAocmVwbGFjZXMgaG9zdCwgYmFzZVBhdGggYW5kIHNjaGVtZXMgZnJvbSBPQVMgMi4wKQogIC0gWyBdIENvbXBvbmVudHMgb2JqZWN0CiAgICAtIFt4XSBTY2hlbWFzIChkZWZpbml0aW9ucyBpbiBPQVMgMi4wKQogICAgLSBbeF0gU2VjdXJpdHkgc2NoZW1lIChzZWN1cml0eSBkZWZpbml0aW9ucyBpbiBPQVMgMi4wKQogICAgLSBbIF0gUGFyYW1ldGVycwogIC0gWyBdIFBhdGhzIG9iamVjdAogICAgLSBbeF0gVGFibGVzIGFuZCBWaWV3cwogICAgICAtIFt4XSBHRVQKICAgICAgLSBbeF0gUE9TVAogICAgICAtIFt4XSBQQVRDSAogICAgICAtIFt4XSBERUxFVEUKICAgIC0gWyBdIEZ1bmN0aW9ucwogICAgICAtIFsgXSBHRVQKICAgICAgLSBbIF0gUE9TVAogIC0gWyBdIEV4dGVybmFsIERvY3VtZW50YXRpb24gT2JqZWN0CiAgLSBbIF0gSGFuZGxlIHJlbGV2YW50IE9wZW5BUEkgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHVzZXIgcGVybWlzc2lvbnMKLSBUaGUgbmV4dCBzdGVwIGlzIHRvIGZpeCB0aGUgaXNzdWVzIHRhZ2dlZCB3aXRoIGBPcGVuQVBJYCBpbiB0aGUgY29yZSByZXBvLgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCm1ha2UgJiYgc3VkbyBtYWtlIGluc3RhbGwKYGBgCgojIyBEZXZlbG9wbWVudAoKQ2hlY2sgdGhlIGNvZGUgZG9jdW1lbnRhdGlvbiBhdCBbL2RvY3NdKC9kb2NzKSB0byBmYW1pbGlhcml6ZSB5b3Vyc2VsZiB3aXRoIHRoZSBwcm9qZWN0IHN0cnVjdHVyZSBhbmQgZnVuY3Rpb24gdXNhZ2UuCgpGb3IgdGVzdGluZyBvbiB5b3VyIGxvY2FsIGRhdGFiYXNlOgoKYGBgYmFzaAojIHRoaXMgd2lsbCBsb2FkIGZpeHR1cmVzIGluIGEgY29udHJpYl9yZWdyZXNzaW9uIGRiIG9uIHlvdXIgbG9jYWwgcG9zdGdyZXMKbWFrZSBmaXh0dXJlcwoKIyBydW4gdGhlIHRlc3RzLCB0aGV5IGNhbiBiZSBydW4gcmVwZWF0ZWRseQptYWtlIGluc3RhbGxjaGVjawoKIyB0byBjbGVhbiB0aGUgZml4dHVyZXMgeW91IGNhbiB1c2UKbWFrZSBjbGVhbgpgYGAKCkZvciBhbiBpc29sYXRlZCBhbmQgcmVwcm9kdWNpYmxlIGVudmlyb21lbnQgeW91IGNhbiB1c2UgW05peF0oaHR0cHM6Ly9uaXhvcy5vcmcvZG93bmxvYWQuaHRtbCkuCgpgYGBiYXNoCiMgdG8gcnVuIHRlc3RzCm5peC1zaGVsbCAtLXJ1biAid2l0aC1wZy0xNSBtYWtlIGluc3RhbGxjaGVjayIKCiMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbG9jYWwgZGF0YWJhc2Ugd2l0aCBmaXh0dXJlcyBsb2FkZWQKbml4LXNoZWxsIC0tcnVuICJ3aXRoLXBnLTE1IHBzcWwgY29udHJpYl9yZWdyZXNzaW9uIgoKIyB5b3UgY2FuIGNob29zZSB0aGUgcGcgdmVyc2lvbgpuaXgtc2hlbGwgLS1ydW4gIndpdGgtcGctMTMgbWFrZSBpbnN0YWxsY2hlY2siCmBgYAoKRm9yIHRob3NlIHdobyBpbnNpc3Qgb24gRG9ja2VyOgpgYGBiYXNoCiMgVG8gYnVpbGQgYSBkb2NrZXIgaW1hZ2UgYW5kIHJ1biB0aGUgdGVzdHMgaW4gaXQKbWFrZSBkb2NrZXItYnVpbGQtdGVzdAoKIyBUbyBidWlsZCBhIGRvY2tlciBpbWFnZSBmb3IgYWN0dWFsIHVzZQptYWtlIGRvY2tlci1idWlsZApgYGAKCiMjIFJlZmVyZW5jZXMKCi0gW09wZW5BUEkgMyBTcGVjaWZpY2F0aW9uIERvY3VtZW50YXRpb25dKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCk6IFRoZSBvZmZpY2lhbCBkb2N1bWVudGF0aW9uIG9mIHRoZSBzcGVjLgotIFtPcGVuQVBJIFNwZWNpZmljYXRpb24gRXhwbGFpbmVkXShodHRwczovL2xlYXJuLm9wZW5hcGlzLm9yZy9zcGVjaWZpY2F0aW9uLyk6IEludHJvZHVjdG9yeSBleHBsYW5hdGlvbiBvZiB0aGUgc3BlYy4KLSBbT3BlbkFQSSBHdWlkZV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8pOiBEZXRhaWxlZCBleHBsYW5hdGlvbiBmb3IgZWFjaCBjb25jZXB0IG9mIHRoZSBzcGVjLCB1c2VmdWwgdG8gYnVpbGQgaXQgZnJvbSBzY3JhdGNoLgotIFtPcGVuQVBJIFZpc3VhbCBNYXBdKGh0dHA6Ly9vcGVuYXBpLW1hcC5hcGloYW5keW1hbi5pby8/dmVyc2lvbj0zLjApOiBWaXN1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNwZWMgdXNpbmcgYW4gaW50ZXJhY3RpdmUgR1VJIHRvIG5hdmlnYXRlIHRocm91Z2ggaXRzIGNvbXBvbmVudHMuCg== readmeEtag: '"6a713015f73c2cb73b74e0f6a8b34ef5130fd09e"' readmeLastModified: Thu, 22 Feb 2024 02:11:12 GMT repositoryId: 638743792 description: OpenAPI output generated in SQL for a PostgREST instance created: '2023-05-10T02:33:03Z' updated: '2024-09-02T19:00:01Z' language: PLpgSQL archived: false stars: 17 watchers: 6 forks: 4 owner: PostgREST logo: https://avatars.githubusercontent.com/u/15115011?v=4 license: MIT repoEtag: '"da3e0bb09e05bfc3e47b1209bc4859cfcb15e266252f6bc3b19876dcf8086905"' repoLastModified: Mon, 02 Sep 2024 19:00:01 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/lornajane/openapi-overlays-js v3: true id: 23a1b93a676dfb84bfc1d9adb30b4875 repositoryMetadata: base64Readme: >- IyBPdmVybGF5cyBmb3IgT3BlbkFQSQoKVGhpcyBOb2RlSlMgbGlicmFyeSBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaW4tcHJvZ3Jlc3MgW09wZW5BUEkgT3ZlcmxheXMgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PdmVybGF5LVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzEuMC4wLm1kKS4KCiMjIEFib3V0IE92ZXJsYXlzCgpPdmVybGF5cyBhcmUgYSB3YXkgdG8gZXh0ZW5kIG9yIGVuaGFuY2UgYW4gZXhpc3RpbmcgW09wZW5BUEkgZGVzY3JpcHRpb25dKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIGJ5IGFkZGluZywgdXBkYXRpbmcgb3IgcmVtb3ZpbmcgZmllbGRzLiBGb3IgZXhhbXBsZToKCiogVGhlIE9wZW5BUEkgZGVzY3JpcHRpb24gbGl2ZXMgaW4gdGhlIGNvZGViYXNlLCBidXQgeW91ciB0ZWNoIHdyaXRlcnMgbmVlZCB0byBhZGQgZXhhbXBsZXMgYW5kIGluZm9ybWF0aW9uIGJlZm9yZSBkb2N1bWVudGF0aW9uIGlzIHByb2R1Y2VkLgoqIFlvdXIgb3JnYW5pc2F0aW9uIHVzZXMgT3BlbkFQSSBidXQgaXQncyBnZW5lcmF0ZWQgZnJvbSBjb2RlLCBhbmQgbmVlZHMgYW1lbmRtZW50cyBvciBhZGRpdGlvbnMgdG8gYmUgdXNlZnVsIHRvIHVzZXJzLgoqIFlvdSdyZSB1c2luZyBvdGhlciB0b29scyBzdWNoIGFzIEFQSSBjbGllbnQgZ2VuZXJhdG9ycywgdGhhdCBjYW4gbWFrZSB1c2Ugb2YgYWRkaXRpb25hbCBjb250ZXh0IGFkZGVkIHRvIHRoZSBBUEkgZGVzY3JpcHRpb24sIHN1Y2ggYXMgdGFncyB0byByZW1vdmUgY2VydGFpbiBlbmRwb2ludHMsIHdoaWNoIGFyZW4ndCBpbiB0aGUgbWFpbiBBUEkgZGVzY3JpcHRpb24gZmlsZS4KCioqQnkgdXNpbmcgT3ZlcmxheXMgdG8gZGVzY3JpYmUgYW5kIGFwcGx5IHRoZSBjaGFuZ2VzLCB3aGVuIHRoZSBBUEkgZGVzY3JpcHRpb24gaXMgdXBkYXRlZCwgdGhlIHNhbWUgY2hhbmdlcyBjYW4gaW5zdGFudGx5IGJlIHJlLWFwcGxpZWQuKioKCiMjIEluc3RhbGxhdGlvbgoKSW5zdGFsbCB0aGUgYG92ZXJsYXlqc2AgY29tbWFuZCBmcm9tIFtucG1dKGh0dHBzOi8vbnBtanMuY29tKSB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYHRleHQKbnBtIGluc3RhbGwgLWcgb3BlbmFwaS1vdmVybGF5LWpzCmBgYAoKVGhlIGAtZ2Agc3dpdGNoIGluc3RhbGxzIGl0IGdsb2JhbGx5IHNvIHlvdSBjYW4gdXNlIHRoZSBjb21tYW5kIGZyb20gYW55d2hlcmUgb24geW91ciBzeXN0ZW0uCgo+ICoqUHJvLXRpcDoqKiB1c2UgYG5vZGUgaW5kZXguanNgIGZyb20gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QgaWYgeW91J3JlIHVzaW5nIHRoZSBibGVlZGluZyBlZGdlIG9mIHRoZSBwcm9qZWN0IG9yIHdvcmtpbmcgb24gYSBicmFuY2guCgojIyBVc2FnZQoKRXhhbXBsZTogYG92ZXJsYXlqcyAtLW9wZW5hcGkgb3BlbmFwaS55bWwgLS1vdmVybGF5IGFkZC1zcGFya2xlLnlhbWxgCgpVc2UgYG92ZXJsYXlqcyAtLWhlbHBgIHRvIHNlZSB0aGUgdXNhZ2UgaW5mb3JtYXRpb24uCgpTZWUgW2RvY3MvZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb3JuYWphbmUvb3BlbmFwaS1vdmVybGF5cy1qcy9kb2NzL2V4YW1wbGVzL2luZGV4Lm1kKSBmb3IgbW9yZSBleGFtcGxlcy4KCiMjIFByb2plY3Qgc3RhdHVzCgo6d2FybmluZzogUHJvamVjdCBzdGF0dXM6IGFscGhhCgpUaGlzIHByb2plY3QgaXMgdmVyeSBtdWNoIGF0IGFuIGFscGhhIHN0YWdlIGJ1dCBmZWVkYmFjaywgY29tbWVudHMgYW5kIHF1ZXN0aW9ucyBhcmUgYWxsIHZlcnkgd2VsY29tZSBhcyBpc3N1ZXMgb24gdGhpcyByZXBvc2l0b3J5IC0gYW5kIHB1bGwgcmVxdWVzdHMgYXJlIGFsc28gZ3JhdGVmdWxseSByZWNlaXZlZC4gSXQgd291bGQgYmUgZXhjZWxsZW50IHRvIGhlYXIgd2hhdCBwcm9ibGVtIHRoaXMgdG9vbCBjYW4gc29sdmUsIGFuZCBob3cgeW91IGdldCBvbiB3aXRoIGl0LiBCb251cyBwb2ludHMgaWYgeW91IGNhbiBzaGFyZSBleGFtcGxlcyAod29ya2luZyBvciBicm9rZW4pIG9mIHdoYXQgeW91IHRyaWVkLgo= readmeEtag: '"57181ab20497e62fb144f92bafa22bb865fdc066"' readmeLastModified: Mon, 06 May 2024 18:40:16 GMT repositoryId: 591983470 description: Apply overlays to OpenAPI descriptions created: '2023-01-22T15:11:54Z' updated: '2024-08-11T07:25:59Z' language: JavaScript archived: false stars: 16 watchers: 3 forks: 3 owner: lornajane logo: https://avatars.githubusercontent.com/u/172607?v=4 license: Apache-2.0 repoEtag: '"853de0a9df6a0ff6e4f440d982fe2d5d881c0047e74a28b8a22ed5e90fae5204"' repoLastModified: Sun, 11 Aug 2024 07:25:59 GMT category: Parsers foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/janbuchar/payload-oapi v3: true v3_1: true id: a75ea2a00fbf40d2b02b06915b51c5f4 repositoryMetadata: base64Readme: >- IyBQYXlsb2FkIE9wZW5BUEkgUGx1Z2luCgpbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL3BheWxvYWQtb2FwaS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9wYXlsb2FkLW9hcGkpCgpBdXRvZ2VuZXJhdGUgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZyb20geW91ciBQYXlsb2FkIENNUyBpbnN0YW5jZSBhbmQgdXNlIGl0IGZvciBkb2N1bWVudGF0aW9uIG9yIHRvIGdlbmVyYXRlIGNsaWVudCBTREtzLgoKIyBSb2FkbWFwCgotIFt4XSBDb21wbGV0ZSBkZXNjcmlwdGlvbiBvZiBjb2xsZWN0aW9uIENSVUQgZW5kcG9pbnRzCi0gW3hdIENvbXBsZXRlIGRlc2NyaXB0aW9uIG9mIGdsb2JhbHMgQ1JVRCBlbmRwb2ludHMKLSBbeF0gSW50ZWdyYXRlZCBTd2FnZ2VyIFVJIGFuZCBSYXBpZG9jCi0gWyBdIEN1c3RvbSBlbmRwb2ludHMKLSBbIF0gQXV0aGVudGljYXRpb24gZW5kcG9pbnRzIGFuZCBzcGVjaWZpY2F0aW9uCi0gWyBdIFByZWZlcmVuY2VzIGVuZHBvaW50cwoKIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdGhlIHBsdWdpbiBmcm9tIG5wbSAtIGB5YXJuIGFkZCBwYXlsb2FkLW9hcGlgIG9yIGBucG0gaSBwYXlsb2FkLW9hcGlgLgoKIyBTZXR1cAoKVG8gYWRkIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZW5kcG9pbnQgdG8geW91ciBQYXlsb2FkIGFwcCwgc2ltcGx5IGltcG9ydCB0aGUgYG9wZW5hcGlgIHBsdWdpbiBhbmQgYWRkIGl0IHRvIHlvdXIgcGF5bG9hZCBjb25maWd1cmF0aW9uOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBvcGVuYXBpIH0gZnJvbSAncGF5bG9hZC1vYXBpJwoKYnVpbGRDb25maWcoewogIHBsdWdpbnM6IFsKICAgIG9wZW5hcGkoeyBvcGVuYXBpVmVyc2lvbjogJzMuMCcsIG1ldGFkYXRhOiB7IHRpdGxlOiAnRGV2IEFQSScsIHZlcnNpb246ICcwLjAuMScgfSB9KSwKICAgIC8vIC4uLgogIF0sCiAgLy8gLi4uCn0pCmBgYAoKVG8gYWRkIGEgZG9jdW1lbnRhdGlvbiBVSSwgdXNlIHRoZSBgc3dhZ2dlclVJYCwgYHJhcGlkb2NgIG9yIGByZWRvY2AgcGx1Z2lucywgcmVzcGVjdGl2ZWx5OgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBvcGVuYXBpLCBzd2FnZ2VyVUkgfSBmcm9tICdwYXlsb2FkLW9hcGknCgpidWlsZENvbmZpZyh7CiAgcGx1Z2luczogWwogICAgb3BlbmFwaSgvKiAuLi4gKi8pLAogICAgc3dhZ2dlclVJKHsvKiAuLi4gKi99KQogIF0sCiAgLy8gLi4uCn0pCmBgYAo= readmeEtag: '"7594a475028a5c88caa215e8b1ff05b0bace396f"' readmeLastModified: Thu, 16 May 2024 21:06:08 GMT repositoryId: 618796772 description: A Payload CMS plugin for OpenAPI (3.0, 3.1) specification generation created: '2023-03-25T11:34:02Z' updated: '2024-07-27T15:05:59Z' language: TypeScript archived: false stars: 16 watchers: 2 forks: 0 owner: janbuchar logo: https://avatars.githubusercontent.com/u/461515?v=4 license: MIT repoEtag: '"e9787a7891273f3a0a1953b5071655ba9a08975178cd12c098b271faedff60bf"' repoLastModified: Sat, 27 Jul 2024 15:05:59 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/teyras/payload-oapi - source: openapi3 tags repository: https://github.com/dgouyette/play-api-refiner v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgc3RhdHVzXShodHRwczovL2FwaS50cmF2aXMtY2kuY29tL2Rnb3V5ZXR0ZS9wbGF5LWFwaS1yZWZpbmVkLnN2Zz9icmFuY2g9ZGV2ZWxvcCldKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9kZ291eWV0dGUvcGxheS1hcGktcmVmaW5lZD9icmFuY2g9ZGV2ZWxvcCkKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2Rnb3V5ZXR0ZS9wbGF5LWFwaS1yZWZpbmVkL2JyYW5jaC9kZXZlbG9wL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9kZ291eWV0dGUvcGxheS1hcGktcmVmaW5lZCkKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby86bGljZW5zZS1NSVQtYmx1ZS5zdmcpXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkKCgojIFBsYXkgQVBJIFJlZmluZWQKCkEgdGlueSBsaWJyYXJ5IHRvIGdlbmVyYXRlIE9wZW5BUEkgIGRvY3VtZW50YXRpb24gYW5kIGpzb24gc2NoZW1hIGJhc2VkIG9uIFJlZmluZWQncyBjYXNlIGNsYXNzZXMuCgoKIyMgU2V0dXAKCkluIG9yZGVyIHRvIHVzZSBwbGF5LWpzb24tb3JnLmRnb3V5ZXR0ZS5yZWZpbmVkIHlvdSBuZWVkIHRvIGFkZCB0aGUgZm9sbG93aW5nIGxpbmVzIHRvIHlvdXIgYGJ1aWxkLnNidGA6CgpgYGBzY2FsYQpyZXNvbHZlcnMgKz0gUmVzb2x2ZXIuYmludHJheVJlcG8oImRnb3V5ZXR0ZSIsICJtYXZlbiIpCgpsaWJyYXJ5RGVwZW5kZW5jaWVzICs9ICJvcmcuZGdvdXlldHRlIiAlJSAiYXBpLXJlZmluZXIiICUgIjEuMC4wLU0xIgpgYGAKCiMjIFVzYWdlCgojIyMgUGxheSBKc29uIFJlZmluZWQgIGVycm9ycyAKClRvIHJldHVybiBqc29uIGVycm9ycyBiYXNlZCBvbiBvcmcuZGdvdXlldHRlLnJlZmluZWQgY2xhc3NlcyB5b3UgbXVzdCBpbXBvcnQgOgoKYGBgYHNjYWxhCmltcG9ydCBvcmcub3JnLmRnb3V5ZXR0ZS5qc29uLlJlZmluZWRSdW50aW1lVmFsaWRhdG9yLl8KYGBgYAoKIyMjIEpzb24gU2NoZW1hIGdlbmVyYXRpb24KCmBgYHNjYWxhCgpjYXNlIGNsYXNzIENvbGxlY3Rpb25TdHJpbmdOb25FbXB0eShlIDogTGlzdFtTdHJpbmddIFJlZmluZWQgTm9uRW1wdHkpCkpzb25TY2hlbWEuYXNKc1ZhbHVlW0NvbGxlY3Rpb25TdHJpbmdOb25FbXB0eV0gLy8gPT4geyJlIjp7Im1pbkxlbmd0aCI6MSwidHlwZSI6ImFycmF5IiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9fX0KCmBgYAoKIyMjIEpzb24gU2NoZW1hIG9uIENsaWVudCBFcnJvciAKCmBgYHNjYWxhCmNhc2UgY2xhc3MgTG9naW5EVE8oZW1haWwgIDogU3RyaW5nIFJlZmluZWQgTm9uRW1wdHksIHBhc3N3b3JkIDogU3RyaW5nIFJlZmluZWQgTm9uRW1wdHkpCgoKQFNpbmdsZXRvbgpjbGFzcyBIb21lQ29udHJvbGxlciBASW5qZWN0KCkoYnA6IEJvZHlQYXJzZXJXaXRoSnNvblNjaGVtYSkgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2xsZXIoY2MpIHsKICBpbXBsaWNpdCB2YWwgbG9naW5TY2hlbWEgPSBKc29uU2NoZW1hLmFzSnNWYWx1ZVtMb2dpbkRUT10KICBpbXBsaWNpdCB2YWwgZHRvU2NoZW1hID0gSnNvblNjaGVtYS5hc0pzVmFsdWVbU2ltcGxlRFRPXQogIAogIGRlZiBsb2dpbigpOiBBY3Rpb25bTG9naW5EVE9dID0gQWN0aW9uKGJwLmpzb25SZWZpbmVkKExvZ2luRFRPLmZtdCwgbG9naW5TY2hlbWEpKSB7CiAgICBpbXBsaWNpdCByZXF1ZXN0ID0+CiAgICBPawogIH0KfQpgYGAgCgpXaXRoIGEgYmFkIGNsaWVudCByZXF1ZXN0IDogCgpgY3VybCAtWCBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC9sb2dpbiAtZCAneyJlbWFpbCIgOiIiLCJwYXNzd29yZCIgOiIiIH0nYAoKWW91IHdpbGwgaGF2ZSB0aGlzIGVycm9yIAoKYGBganNvbgp7CiAgICAib2JqLmVtYWlsIjogWwogICAgICAgIHsKICAgICAgICAgICAgIm1zZyI6IFsKICAgICAgICAgICAgICAgICJQcmVkaWNhdGUgaXNFbXB0eSgpIGRpZCBub3QgZmFpbC4iCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJhcmdzIjogW10KICAgICAgICB9CiAgICBdLAogICAgIl9zY2hlbWEiOiB7CiAgICAgICAgInBhc3N3b3JkIjogewogICAgICAgICAgICAibWluTGVuZ3RoIjogMSwKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgImVtYWlsIjogewogICAgICAgICAgICAibWluTGVuZ3RoIjogMSwKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgIH0KICAgIH0sCiAgICAib2JqLnBhc3N3b3JkIjogWwogICAgICAgIHsKICAgICAgICAgICAgIm1zZyI6IFsKICAgICAgICAgICAgICAgICJQcmVkaWNhdGUgaXNFbXB0eSgpIGRpZCBub3QgZmFpbC4iCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJhcmdzIjogW10KICAgICAgICB9CiAgICBdCn0KYGBgCgojIyBHZW5lcmF0ZSBPcGVuQVBJIChTd2FnZ2VyKSBEb2N1bWVudGF0aW9uCgpPcGVuQVBJQ29udHJvbGxlciA6IApgYGBgc2NhbGEKZGVmIGpzb246IEFjdGlvbltVbml0XSA9IEFjdGlvbihwYXJzZS5lbXB0eSkgewogICAgaW1wbGljaXQgIHJlcSA9PgogICAgIE9rKE9wZW5BUEkuZnJvbVJvdXRlc0ZpbGUoImNvbmYvcm91dGVzIikpCiAgfQpgYGBgCgpjb25mL3JvdXRlcwpgYGAKUE9TVCAgICAgICAgL2xvZ2luICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlcnMuSG9tZUNvbnRyb2xsZXIubG9naW4KR0VUICAgICAgICAgL2RvYy9qc29uICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlcnMuT3BlbkFQSUNvbnRyb2xsZXIuanNvbgpgYGAKCiFbT3BlbkFQSSBEb2N1bWVudGF0aW9uXShvcGVuQVBJLnBuZykKCg== readmeEtag: '"2a3a7bda5cbb93243decfc59c607390854ff1ae5"' readmeLastModified: Wed, 16 Oct 2019 07:59:29 GMT repositoryId: 206240618 description: null created: '2019-09-04T05:43:38Z' updated: '2022-07-07T15:57:50Z' language: Scala archived: false stars: 16 watchers: 4 forks: 0 owner: dgouyette logo: https://avatars.githubusercontent.com/u/274061?v=4 repoEtag: '"f54b40fcd1099baef8e338541df4bb5c2da467131a86f66e02bbf5c98bbe68fa"' repoLastModified: Thu, 07 Jul 2022 15:57:50 GMT foundInMaster: true category: Data Validators id: df6e428f59101c20eaeb110a9e268e9b - source: openapi3 tags repository: https://github.com/serafin-labs/serafin v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Imh0dHBzOi8vc2VyYWZpbi1sYWJzLmdpdGh1Yi5pby9pbWFnZXMvbG9nby1zZXJhZmluLXdpdGgtdGV4dC0xMDgwLnBuZyIgd2lkdGg9IjMwMCIvPjwvcD4KCioqU2VyYWZpbioqIGlzIGFuICpBUEkgZnJhbWV3b3JrKiBkZXNpZ25lZCB0byBxdWlja2x5IHNldCB1cCBhIHJvYnVzdCAqKnNlbGYtZGVzY3JpcHRpdmUgUkVTVCBBUEkqKiB3cml0dGVuIGluICpub2RlSlMvVHlwZXNjcmlwdCouCgpJdCBpcyBiYXNlZCBvbiAqKk9wZW4gQVBJIDMqKiwgKipKU09OIFNjaGVtYSoqIGFuZCAqKkdyYXBoUUwqKiBzdGFuZGFyZHMuCgpbIVtHcmVlbmtlZXBlciBiYWRnZV0oaHR0cHM6Ly9iYWRnZXMuZ3JlZW5rZWVwZXIuaW8vc2VyYWZpbi1sYWJzL3NlcmFmaW4uc3ZnKV0oaHR0cHM6Ly9ncmVlbmtlZXBlci5pby8pClshW0RlcGVuZGVuY2llc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kYXZpZC9zZXJhZmluLWxhYnMvc2VyYWZpbi5zdmcpXShodHRwczovL2RhdmlkLWRtLm9yZy9zZXJhZmluLWxhYnMvc2VyYWZpbikKWyFbTWFpbnRhaW5hYmlsaXR5XShodHRwczovL2FwaS5jb2RlY2xpbWF0ZS5jb20vdjEvYmFkZ2VzL2JlYmExNjFhZTBlNWY0ZjY5Yzc5L21haW50YWluYWJpbGl0eSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi9zZXJhZmluLWxhYnMvc2VyYWZpbi9tYWludGFpbmFiaWxpdHkpClshW1Rlc3QgQ292ZXJhZ2VdKGh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvYmViYTE2MWFlMGU1ZjRmNjljNzkvdGVzdF9jb3ZlcmFnZSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi9zZXJhZmluLWxhYnMvc2VyYWZpbi90ZXN0X2NvdmVyYWdlKQoKIyMgSW5zdGFsbGF0aW9uClRoZXJlJ3Mgbm8gbnBtIHBhY2thZ2UgeWV0ISBXZSBhcmUgY2xvc2UgdG8gdGhlIGFscGhhIHJlbGVhc2UgYW5kIHdlIHdpbGwgcHJvZHVjZSBwYWNrYWdlcyBmb3IgdGhpcyB2ZXJzaW9uLgpJZiB5b3Ugd2FudCB0byB0ZXN0ICoqc2VyYWZpbioqIHlvdSBjYW4gY2xvbmUgdGhlIHJlcG8gYW5kIHJ1biBpdCBsb2NhbGx5IG9yIHlvdSBjYW4gaW5jbHVkZSBhIGRpcmVjdCBnaXQgcmVmZXJlbmNlIHRvIHlvdXIgYGBgcGFja2FnZS5qc29uYGBgIDoKCmBgYGpzb24KIkBzZXJhZmluL2FwaSI6ICJnaXQrc3NoOi8vZ2l0QGdpdGh1Yi5jb20vc2VyYWZpbi1mcmFtZXdvcmsvc2VyYWZpbi5naXQiCmBgYAoKIyMgQ29uY2VwdHMKCklmIHlvdSB3YW50IHRvIGtub3cgbW9yZSBhYm91dCBTZXJhZmluIGNvbmNlcHRzIGFuZCBmZWF0dXJlcywgZ28gdG8gb3VyIFtvdmVydmlldyBkb2N1bWVudF0oLi9taXNjL2RvYy9PVkVSVklFVy5tZCkKCiMjIEdldHRpbmcgc3RhcnRlZAoKSWYgeW91IGp1c3Qgd2FudCB0byBnZXQgc3RhcnRlZCBhbmQgd3JpdGUgc29tZSBjb2RlLCBnbyB0byBvdXIgW3dhbGt0aHJvdWdoIGRvY3VtZW50XSguL21pc2MvZG9jL1dBTEtUSFJPVUdILm1kKQoKIyMgV2hhdCBkb2VzIGl0IGxvb2sgbGlrZSA/CgpBIHZlcnkgc2ltcGxlIGV4YW1wbGUgbG9va3MgbGlrZSB0aGF0IDoKCmBgYHR5cGVzY3JpcHQKaW1wb3J0ICogYXMgZXhwcmVzcyBmcm9tICdleHByZXNzJzsKaW1wb3J0ICogYXMgYm9keVBhcnNlciBmcm9tICdib2R5LXBhcnNlcic7CmltcG9ydCB7IFNjaGVtYUJ1aWxkZXIgfSBmcm9tICdAc2VyYWZpbi9zY2hlbWEtYnVpbGRlcic7CmltcG9ydCB7IEFwaSwgUGlwZWxpbmVTb3VyY2VJbk1lbW9yeSwgUmVzdFRyYW5zcG9ydCB9IGZyb20gJ0BzZXJhZmluL2FwaSc7CgovLyBleHByZXNzIGluaXRpYWxpemF0aW9uCmxldCBhcHAgPSBleHByZXNzKCk7CmFwcC51c2UoYm9keVBhcnNlci5qc29uKCkpOwoKLy8gRGVjbGFyZSBvdXIgQXBpIHdpdGggaXRzIGdlbmVyYWwgaW5mb3JtYXRpb24KbGV0IGFwaSA9IG5ldyBBcGkoYXBwLCB7CiAgICAib3BlbmFwaSI6ICIzLjAuMCIsCiAgICAiaW5mbyI6IHsKICAgICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICAgInRpdGxlIjogIkFuIEFQSSIKICAgIH0sCiAgICBwYXRoczoge30KfSk7CmFwaS5jb25maWd1cmUobmV3IFJlc3RUcmFuc3BvcnQoKSk7CgovLyBEZWNsYXJlIGEgU2NoZW1hIGZvciBvdXIgImVudGl0eSIKbGV0IGFNb2RlbFNjaGVtYSA9IFNjaGVtYUJ1aWxkZXIuZW1wdHlTY2hlbWEoKS5hZGRTdHJpbmcoImlkIikuYWRkU3RyaW5nKCJkYXRhIik7CgovLyBEZWZpbmUgdGhlIHBpcGVsaW5lLCBpdCBzdG9yZXMgZGF0YSBpbnRvIG1lbW9yeSBkaXJlY3RseQpsZXQgYVBpcGVsaW5lID0gKG5ldyBQaXBlbGluZVNvdXJjZUluTWVtb3J5KGFNb2RlbFNjaGVtYSkpCiAgLy8ucGlwZSguLi4pIC8vIEFkZCBhIHBpcGVsaW5lIHRvIGV4dGVuZCB0aGUgYmVoYXZpb3IKCi8vIFVzZSB0aGUgcGlwZWxpbmUgaW4gdGhlIGFwaS4gSXQgd2lsbCBhZGQgYWxsIHRoZSByb3V0ZXMgYW5kIGNvbXB1dGUgT3BlbiBBcGkgc3BlYwphcGkudXNlKGFQaXBlbGluZSwgIm1vZGVsIik7CgovLyBTdGFydCB0aGUgc2VydmVyCmFwcC5saXN0ZW4ocHJvY2Vzcy5lbnYuUE9SVCB8fCA4MCk7CmBgYAoKV2l0aCB0aGlzIGJhc2ljIGV4YW1wbGUgeW91IG5vdyBoYXZlIHRoZSBmb2xsb3dpbmcgZW5kcG9pbnRzOgoKLSBHRVQgL2FwaS5qc29uIHdoaWNoIGNvbnRhaW5zIE9wZW4gQXBpIHNwZWMgZm9yIHRoaXMgQVBJCi0gR0VUIC9tb2RlbHMKLSBQT1NUIC9tb2RlbHMKLSBHRVQgL21vZGVscy86aWQKLSBQVVQgL21vZGVscy86aWQKLSBQQVRDSCAvbW9kZWxzLzppZAotIERFTEVURSAvbW9kZWxzLzppZAoKVGhlIGltcG9ydGFudCBwb2ludCBpcyB0aGF0IHRoZSAqKkFwaSoqIHJlYWN0IHRvIHRoZSAqKnBpcGVsaW5lKiogYmVoYXZpb3VyLiBXaGVuIHlvdSBkZWZpbmUgbmV3IGNvbnN0cmFpbnRzIG9uIHlvdXIgKipzY2hlbWEqKiBvciBuZXcgb3B0aW9ucyBpbiBhICoqcGlwZWxpbmUqKiwgdGhlICoqQXBpKiogd2lsbCByZWFjdCBhY2NvcmRpbmdseS4KCklmIHlvdSB3YW50IHRvIHNlZSBtb3JlIGNvbXBsZXggZXhhbXBsZXMsIHRha2UgYSBsb29rIGF0IHRoZSBgYGBzcmMvZXhhbXBsZWBgYCBmb2xkZXIuCgoKIyMgQ29udHJpYnV0aW5nCgpUaGUgcHJvamVjdCBpbnRlcmVzdHMgeW91ID8gUmVhZCBvdXIgW2NvbnRyaWJ1dGVyIGd1aWRlXSguL0NPTlRSSUJVVElORy5tZCkgc28geW91IGNhbiBnZXQgaW52b2x2ZWQuCgoKCgoKCg== readmeEtag: '"a63119ec4a801e2768bbe1efa68063d92b3eb7cf"' readmeLastModified: Thu, 09 May 2019 22:34:30 GMT repositoryId: 109129356 description: An API framework in Typescript/Node.js with OpenApi 3 & GraphQL created: '2017-11-01T12:35:17Z' updated: '2024-05-04T22:28:07Z' language: TypeScript archived: false stars: 16 watchers: 4 forks: 0 owner: serafin-labs logo: https://avatars.githubusercontent.com/u/33131861?v=4 license: MIT repoEtag: '"0a018e0ae7c935004baebb369451cb3fb3928483c58f1c9da0b0e1e7cfaf6f51"' repoLastModified: Sat, 04 May 2024 22:28:07 GMT foundInMaster: true category: - Server - Parsers id: ab96ee28815dc64b9a94c061ff5169f1 - source: openapi3 tags repository: https://github.com/ben-jamin-chen/springboot-kafka-streams-rest-api v3: true id: 0c2d44cef1118bbebe90119d0b6e9879 repositoryMetadata: base64Readme: >- IyBTcHJpbmcgQm9vdCAoMi4zLjMpIFJFU1RmdWwgQVBJIHdpdGggS2Fma2EgU3RyZWFtcyAoMi42LjApCgpXaGlsZSBsb29raW5nIHRocm91Z2ggdGhlIEthZmthIFR1dG9yaWFscyB0byBzZWUgaG93IEkgY291bGQgc2V0dXAgYSBTcHJpbmcgQm9vdCBBUEkgcHJvamVjdCB3aXRoIEthZmthIFN0cmVhbXMsIEkgZm91bmQgaXQgc3RyYW5nZSB0aGF0IHRoZXJlIHdhc24ndCBhIGNvbXBsZXRlIG9yIG1vcmUgaW5mb3JtYXRpdmUgZXhhbXBsZSBvbiBob3cgdGhpcyBjb3VsZCBiZSBhY2hpZXZlZC4gTW9zdCB1c2UgY2FzZXMgZGVtb25zdHJhdGVkIGhvdyB0byBjb21wdXRlIGFnZ3JlZ2F0aW9ucyBhbmQgaG93IHRvIGJ1aWxkIHNpbXBsZSB0b3BvbG9naWVzLCBidXQgaXQgd2FzIGRpZmZpY3VsdCB0byBmaW5kIGEgY29uY3JldGUgZXhhbXBsZSBvbiBob3cgdG8gYnVpbGQgYW4gQVBJIHNlcnZpY2UgdGhhdCBjb3VsZCBxdWVyeSBpbnRvIHRoZXNlIG1hdGVyaWFsaXplZCBuYW1lIHN0b3Jlcy4gQW55d2F5cywgSSB0aG91Z2h0IEnigJlkIGNyZWF0ZSBteSBvd24gdXNpbmcgYSBtb3JlIHJlY2VudCB2ZXJzaW9uIG9mIFNwcmluZyBCb290IHdpdGggSmF2YSAxNC4KCiMjIFdoYXQgWW91IE5lZWQKCiogSmF2YSAxNAoqIE1hdmVuIDMuNi4wKwoqIERvY2tlciAxOSsKCiMjIEdldHRpbmcgU3RhcnRlZApXZSBuZWVkIHRvIGZpcnN0IGxhdW5jaCB0aGUgQ29uZmx1ZW50IHNlcnZpY2VzIChpLmUuIFNjaGVtYSBSZWdpc3RyeSwgQnJva2VyLCBab29LZWVwZXIpIGxvY2FsbHkgYnkgcnVubmluZyB0aGUgYGRvY2tlci1jb21wb3NlIHVwIC1kYCBDTEkgY29tbWFuZCB3aGVyZSB0aGUgW2RvY2tlci1jb21wb3NlLnltbF0oaHR0cHM6Ly9naXRodWIuY29tL2JjaGVuMDQvc3ByaW5nYm9vdC1rYWZrYS1zdHJlYW1zLXJlc3QtYXBpL2Jsb2IvbWFzdGVyL2RvY2tlci1jb21wb3NlLnltbCkgZmlsZSBpcy4gVHlwaWNhbGx5LCB5b3UgY2FuIGNyZWF0ZSBhIHN0YWNrIGZpbGUgKGluIHRoZSBmb3JtIG9mIGEgWUFNTCBmaWxlKSB0byBkZWZpbmUgeW91ciBhcHBsaWNhdGlvbnMuIFlvdSBjYW4gYWxzbyBydW4gYGRvY2tlci1jb21wb3NlIHBzYCB0byBjaGVjayB0aGUgc3RhdHVzIG9mIHRoZSBzdGFjay4gTm90aWNlLCB0aGUgZW5kcG9pbnRzIGZyb20gd2l0aGluIHRoZSBjb250YWluZXJzIG9uIHlvdXIgaG9zdCBtYWNoaW5lLgoKfCBOYW1lIHwgRnJvbSB3aXRoaW4gY29udGFpbmVycyB8IEZyb20gaG9zdCBtYWNoaW5lIHwKfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfAp8IEthZmthIEJyb2tlciB8IGJyb2tlcjo5MDkyIHwgbG9jYWxob3N0OjkwOTIgfAp8IFNjaGVtYSBSZWdpc3RyeSAgfCBodHRwOi8vc2NoZW1hLXJlZ2lzdHJ5OjgwODEgfCBodHRwOi8vbG9jYWxob3N0OjgwODEgfAp8IFpvb0tlZXBlciB8IHpvb2tlZXBlcjoyMTgxIHwgbG9jYWxob3N0OjIxODEgfAoKPiBOb3RlOiB5b3UgY2FuIHJ1biBgZG9ja2VyLWNvbXBvc2UgZG93bmAgdG8gc3RvcCBhbGwgc2VydmljZXMgYW5kIGNvbnRhaW5lcnMuCgpBcyBwYXJ0IG9mIHRoaXMgc2FtcGxlLCBJJ3ZlIHJldHJvZml0dGVkIHRoZSBhdmVyYWdlIGFnZ3JlZ2F0ZSBleGFtcGxlIGZyb20gW0NvbmZsdWVudCdzIEthZmthIFR1dG9yaWFsc10oaHR0cHM6Ly9rYWZrYS10dXRvcmlhbHMuY29uZmx1ZW50LmlvL2FnZ3JlZ2F0aW5nLWF2ZXJhZ2Uva3N0cmVhbXMuaHRtbCkgaW50byB0aGlzIHByb2plY3QuIFRoZSBBUEkgd2lsbCBjYWxjdWxhdGUgYW5kIHJldHVybiBhIHJ1bm5pbmcgYXZlcmFnZSByYXRpbmcgZm9yIGEgZ2l2ZW4gbW92aWUgaWRlbnRpZmllci4gVGhpcyBzaG91bGQgZGVtb25zdHJhdGUgaG93IHRvIGJ1aWxkIGEgYmFzaWMgQVBJIHNlcnZpY2Ugb24gdG9wIG9mIGFuIGFnZ3JlZ2F0aW9uIHJlc3VsdC4KCk5vdGljZSBpbiB0aGUgYH4vc3JjL21haW4vYXZyb2AgZGlyZWN0b3J5LCB3ZSBoYXZlIGFsbCBvdXIgQXZybyBzY2hlbWEgZmlsZXMgZm9yIHRoZSBzdHJlYW0gb2YgYHJhdGluZ3NgIGFuZCBgY291bnRzdW1gLiBGb3IgeW91ciBjb252ZW5pZW5jZSwgdGhlIGNsYXNzZXMgd2VyZSBhbHJlYWR5IGdlbmVyYXRlZCB1bmRlciB0aGUgYH4vc3JjL21haW4vamF2YS9pby9jb25mbHVlbnQvZGVtb2AgZGlyZWN0b3J5LCBidXQgZmVlbCBmcmVlIHRvIHRpbmtlciB3aXRoIHRoZW0gYW5kIHJlY29tcGlsZSB0aGUgc2NoZW1hcyBpZiBuZWVkZWQuIFRoZSBBdnJvIGNsYXNzZXMgY2FuIGJlIHByb2dyYW1tYXRpY2FsbHkgZ2VuZXJhdGVkIHVzaW5nIGBNYXZlbmAgb3IgYnkgbWFudWFsbHkgaW52b2tpbmcgdGhlIFtzY2hlbWEgY29tcGlsZXJdKGh0dHBzOi8vYXZyby5hcGFjaGUub3JnL2RvY3MvMS4xMC4wL2dldHRpbmdzdGFydGVkamF2YS5odG1sI0NvbXBpbGluZyt0aGUrc2NoZW1hKS4gCgpTbyBiZWZvcmUgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgdGhlIHByb2plY3QsIG9wZW4gYSBuZXcgdGVybWluYWwgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIHRvIGdlbmVyYXRlIHlvdXIgaW5wdXQgYW5kIG91dHB1dCB0b3BpY3MuCgpgYGB6c2gKJCAgZG9ja2VyLWNvbXBvc2UgZXhlYyBicm9rZXIga2Fma2EtdG9waWNzIC0tY3JlYXRlIC0tYm9vdHN0cmFwLXNlcnZlciBcCiAgIGxvY2FsaG9zdDo5MDkyIC0tcmVwbGljYXRpb24tZmFjdG9yIDEgLS1wYXJ0aXRpb25zIDEgLS10b3BpYyByYXRpbmdzCgokICBkb2NrZXItY29tcG9zZSBleGVjIGJyb2tlciBrYWZrYS10b3BpY3MgLS1jcmVhdGUgLS1ib290c3RyYXAtc2VydmVyIFwKICAgbG9jYWxob3N0OjkwOTIgLS1yZXBsaWNhdGlvbi1mYWN0b3IgMSAtLXBhcnRpdGlvbnMgMSAtLXRvcGljIHJhdGluZy1hdmVyYWdlcwpgYGAKCk5leHQsIHdlIHdpbGwgbmVlZCB0byBwcm9kdWNlIHNvbWUgZGF0YSBvbnRvIHRoZSBpbnB1dCB0b3BpYy4KCmBgYHpzaAokICBkb2NrZXIgZXhlYyAtaSBzY2hlbWEtcmVnaXN0cnkgL3Vzci9iaW4va2Fma2EtYXZyby1jb25zb2xlLXByb2R1Y2VyIC0tdG9waWMgcmF0aW5ncyAtLWJyb2tlci1saXN0IGJyb2tlcjo5MDkyXAogICAgLS1wcm9wZXJ0eSAicGFyc2Uua2V5PWZhbHNlIlwKICAgIC0tcHJvcGVydHkgImtleS5zZXBhcmF0b3I9OiJcCiAgICAtLXByb3BlcnR5IHZhbHVlLnNjaGVtYT0iJCg8IHNyYy9tYWluL2F2cm8vcmF0aW5nLmF2c2MpIgogYGBgCiAKUGFzdGUgaW4gdGhlIGZvbGxvd2luZyBganNvbmAgZGF0YSB3aGVuIHByb21wdGVkIGFuZCBiZSBzdXJlIHRvIHByZXNzIGVudGVyIHR3aWNlIHRvIGFjdHVhbGx5IHN1Ym1pdCBpdC4KCmBgYGpzb24KeyJtb3ZpZV9pZCI6MzYyLCJyYXRpbmciOjEwfQp7Im1vdmllX2lkIjozNjIsInJhdGluZyI6OH0KIGBgYAoKT3B0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNlZSB0aGUgY29uc3VtZXIgcmVzdWx0cyBvbiB0aGUgb3V0cHV0IHRvcGljIGJ5IHJ1bm5pbmcgdGhpcyBjb21tYW5kIG9uIGEgbmV3IHRlcm1pbmFsIHdpbmRvdzoKCmBgYHpzaAokICBkb2NrZXIgZXhlYyAtaXQgYnJva2VyIC91c3IvYmluL2thZmthLWNvbnNvbGUtY29uc3VtZXIgLS10b3BpYyByYXRpbmctYXZlcmFnZXMgLS1ib290c3RyYXAtc2VydmVyIGJyb2tlcjo5MDkyIFwKICAgIC0tcHJvcGVydHkgInByaW50LmtleT10cnVlIlwKICAgIC0tcHJvcGVydHkgImtleS5kZXNlcmlhbGl6ZXI9b3JnLmFwYWNoZS5rYWZrYS5jb21tb24uc2VyaWFsaXphdGlvbi5Mb25nRGVzZXJpYWxpemVyIiBcCiAgICAtLXByb3BlcnR5ICJ2YWx1ZS5kZXNlcmlhbGl6ZXI9b3JnLmFwYWNoZS5rYWZrYS5jb21tb24uc2VyaWFsaXphdGlvbi5Eb3VibGVEZXNlcmlhbGl6ZXIiIFwKICAgIC0tZnJvbS1iZWdpbm5pbmcKYGBgCgojIyBCdWlsZCBhbmQgUnVuIHRoZSBTYW1wbGUKCllvdSBjYW4gaW1wb3J0IHRoZSBjb2RlIHN0cmFpZ2h0IGludG8geW91ciBwcmVmZXJyZWQgSURFIG9yIHJ1biB0aGUgc2FtcGxlIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCAoaW4gdGhlIHJvb3QgcHJvamVjdCBmb2xkZXIpLgoKYGBgenNoCiQgIG12biBzcHJpbmctYm9vdDpydW4KYGBgCkFmdGVyIHRoZSBhcHBsaWNhdGlvbiBydW5zLCBuYXZpZ2F0ZSB0byBbaHR0cDovL2xvY2FsaG9zdDo3MDAxL3N3YWdnZXItdWkvaW5kZXguaHRtbD9jb25maWdVcmw9L2FwaS1kb2NzL3N3YWdnZXItY29uZmlnXShodHRwOi8vbG9jYWxob3N0OjcwMDEvc3dhZ2dlci11aS9pbmRleC5odG1sP2NvbmZpZ1VybD0vYXBpLWRvY3Mvc3dhZ2dlci1jb25maWcpIGluIHlvdXIgd2ViIGJyb3dzZXIgdG8gYWNjZXNzIHRoZSBTd2FnZ2VyIFVJLiBJZiB5b3UgdXNlZCB0aGUgc2FtZSBzYW1wbGUgZGF0YSBmcm9tIGFib3ZlLCB5b3UgY2FuIGVudGVyIGAzNjJgIGFzIHRoZSBgbW92aWVJZGAgYW5kIGl0IHNob3VsZCByZXR1cm4gc29tZXRoaW5nIHNpbWlsYXIgbGlrZSB0aGlzIGJlbG93OgoKYGBganNvbgp7CiAgIm1vdmllSWQiOiAzNjIsCiAgInJhdGluZyI6IDkKfQpgYGAKCj4gTm90ZToga2VlcCBpbiBtaW5kIHRoZSB2YXJpb3VzIFtzdGF0ZXNdKGh0dHBzOi8va2Fma2EuYXBhY2hlLm9yZy8yNS9qYXZhZG9jL29yZy9hcGFjaGUva2Fma2Evc3RyZWFtcy9LYWZrYVN0cmVhbXMuU3RhdGUuaHRtbCkgb2YgdGhlIGNsaWVudC4gV2hlbiBhIEthZmthIFN0cmVhbXMgaW5zdGFuY2UgaXMgaW4gYFJVTk5JTkdgIHN0YXRlLCBpdCBhbGxvd3MgZm9yIGluc3BlY3Rpb24gb2YgdGhlIHN0cmVhbSdzIG1ldGFkYXRhIHVzaW5nIG1ldGhvZHMgbGlrZSBgcXVlcnlNZXRhZGF0YUZvcktleSgpYC4gV2hpbGUgaXQgaXMgaW4gYFJFQkFMQU5DSU5HYCBzdGF0ZSwgdGhlIFJFU1Qgc2VydmljZSBjYW5ub3QgaW1tZWRpYXRlbHkgYW5zd2VyIHJlcXVlc3RzIHVudGlsIHRoZSBzdGF0ZSBzdG9yZXMgYXJlIGZ1bGx5IHJlYnVpbHQuCgojIyBUcm91Ymxlc2hvb3RpbmcKCiogSW4gY2VydGFpbiBjb25kaXRpb25zLCB5b3UgbWF5IG5lZWQgdG8gZG8gYSBjb21wbGV0ZSBhcHBsaWNhdGlvbiByZXNldC4gWW91IGNhbiBkZWxldGUgdGhlIGFwcGxpY2F0aW9u4oCZcyBsb2NhbCBzdGF0ZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlIHdhcyBydW4uIEluIHRoaXMgcHJvamVjdCwgS2Fma2EgU3RyZWFtcyBwZXJzaXN0cyBsb2NhbCBzdGF0ZXMgdW5kZXIgdGhlIGB+L2RhdGFgIGZvbGRlci4K readmeEtag: '"8c67934d12533f0829b86012ce9b09bb6fc938d6"' readmeLastModified: Sat, 15 Aug 2020 18:19:50 GMT repositoryId: 281567320 description: >- A sample RESTful API with Kafka Streams (2.6.0) using Spring Boot (2.3.3) and Java 14. created: '2020-07-22T03:43:45Z' updated: '2024-05-15T21:31:13Z' language: Java archived: false stars: 15 watchers: 3 forks: 9 owner: ben-jamin-chen logo: https://avatars.githubusercontent.com/u/41641688?v=4 license: MIT repoEtag: '"caa39420593a4d9fa12ab92fafc74854e741f1e0a06984da4027e6d54261b6d9"' repoLastModified: Wed, 15 May 2024 21:31:13 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/buzzingben/springboot-kafka-streams-rest-api - https://github.com/bchen04/springboot-kafka-streams-rest-api - source: openapi3 tags repository: https://github.com/f0rzend/simple-go-webserver v3: true id: 407da12faa6c6f82979cc1d77ea6233c repositoryMetadata: base64Readme: >- IyBTaW1wbGVHb1dlYnNlcnZlcgoKIVtHaXRIdWIgcmVsZWFzZSAobGF0ZXN0IGJ5IGRhdGUpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3JlbGVhc2UvRjByemVuZC9TaW1wbGVHb1dlYnNlcnZlcj9kaXNwbGF5X25hbWU9dGFnKQohW0dpdEh1YiB0b3AgbGFuZ3VhZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhbmd1YWdlcy90b3AvRjByemVuZC9TaW1wbGVHb1dlYnNlcnZlcikKIVtHaXRIdWIgZ28ubW9kIEdvIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2dvLW1vZC9nby12ZXJzaW9uL0YwcnplbmQvU2ltcGxlR29XZWJzZXJ2ZXIpCiFbU3dhZ2dlciBWYWxpZGF0b3JdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3dhZ2dlci92YWxpZC8zLjA/c3BlY1VybD1odHRwcyUzQSUyRiUyRnJhdy5naXRodWJ1c2VyY29udGVudC5jb20lMkZGMHJ6ZW5kJTJGU2ltcGxlR29XZWJzZXJ2ZXIlMkZtYXN0ZXIlMkZkb2NzJTJGb3BlbmFwaS55YW1sKQoKVGhlcmUgaXMgYSBzaW1wbGUgd2Vic2VydmVyIHdyaXR0ZW4gaW4gR28uCgpXZSB1c2UgREREIChEb21haW4gRHJpdmVuIERlc2lnbikgdG8gc2VwYXJhdGUgdGhlIGRvbWFpbiBsb2dpYyBmcm9tIHRoZSBhcHBsaWNhdGlvbiBsb2dpYy4KCiMjIEZlYXR1cmVzCgogKiBUaGUgcHJvamVjdCB1c2VzIHRoZSBzdHJ1Y3R1cmUgcHJvcG9zZWQgaW4gdGhlIGJvb2sKW0dvIHdpdGggZG9tYWluXShodHRwczovL3RocmVlZG90cy50ZWNoL2dvLXdpdGgtdGhlLWRvbWFpbi8pCiAqIFttb3FdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRyeWVyL21vcSkgZm9yIGFkYXB0ZXJzIG1vY2tpbmcKICogW1N3YWdnZXJdKGh0dHBzOi8vc3dhZ2dlci5pbykKICogW09wZW5BUEldKGh0dHBzOi8vb3BlbmFwaS5pbykKICogW2NoaSByb3V0ZXJdKGh0dHBzOi8vZ28tY2hpLmlvLykKICogW0RvY2tlcl0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pCiAqIFtkb2NrZXItY29tcG9zZV0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vY29tcG9zZS9vdmVydmlldy8pCiAqIFtHaXRIdWIgQWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL0YwcnplbmQvU2ltcGxlR29XZWJzZXJ2ZXIvYWN0aW9ucykKIAoKIyMgUnVuIGluIGRvY2tlciAqKFJlY29tbWVuZGVkKSoKCkl0J3Mgc2ltcGxlIHRvIHJ1biBpdCB3aXRoIGRvY2tlci4KWW91IGRvbid0IGV2ZW4gbmVlZCB0byBjbG9uZSB0aGUgcHJvamVjdCB0byB5b3VyIHJlcG9zaXRvcnk6CmBgYHNoZWxsCmRvY2tlciBydW4gXAogIC1lIEFERFJFU1M9MC4wLjAuMDo4MDgwIFwKICBnaGNyLmlvL2YwcnplbmQvc2ltcGxlZ293ZWJzZXJ2ZXI6bWFzdGVyCmBgYAoKVGhlcmUgaXMgYWxzbyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB5b3UgY2FuIHNldCwgdG8gY29uZmlndXJlIHByb2plY3QuClJlYWQgbW9yZSBhYm91dCBpdCBpbiB0aGUgW2RvY2tlciBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL3J1bi8jZW52LWVudmlyb25tZW50LXZhcmlhYmxlcykuCgpMaXN0IG9mIGF2YWlsYWJsZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYWJvdmUuCgp8IFZhcmlhYmxlICB8IERlc2NyaXB0aW9uICAgICAgICAgIHwgRGVmYXVsdCB8CnwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwKfCBgQUREUkVTU2AgfCBBZGRyZXNzIHRvIGxpc3RlbiBvbiB8IGA6ODA4MGAgfAoKQmUgY2FyZWZ1bGx5LiBJZiB5b3Ugd2FudCB0byBydW4gaXQgb24gbG9jYWxob3N0IGluIGRvY2tlciBjb250YWluZXIsIAp5b3UgbmVlZCB0byBzZXQgYEFERFJFU1NgIHRvIGAwLjAuMC4wOjgwODBgLgoKIyMgQnVpbGQgZnJvbSBzb3VyY2UKCklmIHlvdSB3YW50IHRvIGJ1aWxkIHRoZSBwcm9qZWN0IGZyb20gc291cmNlLCB5b3UgbmVlZCB0byBoYXZlCltHb10oaHR0cHM6Ly9nb2xhbmcub3JnL2RvYy9pbnN0YWxsKSBhbmQgW2dpdF0oaHR0cHM6Ly9naXQtc2NtLmNvbS9kb3dubG9hZHMpIGluc3RhbGxlZC4KCkZpcnN0bHkgeW91IG5lZWQgdG8gY2xvbmUgdGhlIHByb2plY3QgcmVwb3NpdG9yeSBvbiB5b3VyIGxvY2FsIG1hY2hpbmU6CmBgYHNoZWxsCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vRjByemVuZC9TaW1wbGVHb1dlYnNlcnZlci5naXQKYGBgCgpFbnRyeSBwb2ludCBpcyBgY21kL2FwaS9tYWluLmdvYCBmaWxlLgpUaGVuIHlvdSBuZWVkIHRvIGdvIHRvIHRoZSBwcm9qZWN0IGRpcmVjdG9yeSBhbmQgYnVpbGQgaXQ6CmBgYHNoZWxsCmNkIFNpbXBsZUdvV2Vic2VydmVyICYmIGdvIGJ1aWxkIC1vIHNpbXBsZWdvd2Vic2VydmVyIGNtZC9hcGkvbWFpbi5nbwpgYGAKCk5vdyB5b3UgY2FuIHJ1biB0aGUgcHJvamVjdC4gWW91IG11c3QgYmUgaW4gdGhlIHNhbWUgZm9sZGVyIGFzIHRoZSBiaW5hcnkKYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CmBgYHNoZWxsCi4vc2ltcGxlZ293ZWJzZXJ2ZXIKYGBgCgpBZnRlciB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIG1lc3NhZ2U6CmBgYHNoZWxsCjA6MDBBTSBJTkYgY21kL2FwaS9tYWluLmdvOjI3ID4gc3RhcnRpbmcgc2VydmVyIG9uIDo4MDgwCmBgYAoKIyMgUnVuIHByb2plY3QgdmlhIGRvY2tlciBjb21wb3NlCgpZb3UgY2FuIHJ1biB0aGUgcHJvamVjdCB2aWEgZG9ja2VyIGNvbXBvc2UuClNlZSB0aGUgW2RvY2tlci1jb21wb3NlLnltbF0oaHR0cHM6Ly9naXRodWIuY29tL0YwcnplbmQvU2ltcGxlR29XZWJzZXJ2ZXIvYmxvYi9tYXN0ZXIvZG9ja2VyLWNvbXBvc2UueW1sKSBmaWxlLgo= readmeEtag: '"81f3f2c47fba27145c3beec977c620e299bf5d26"' readmeLastModified: Tue, 28 Jun 2022 18:29:43 GMT repositoryId: 482293541 description: Golang webserver with DDD and Clean Architecture created: '2022-04-16T15:41:41Z' updated: '2024-07-13T19:43:56Z' language: Go archived: false stars: 15 watchers: 1 forks: 1 owner: F0rzend logo: https://avatars.githubusercontent.com/u/50886859?v=4 license: MIT repoEtag: '"cacf5c85ee0ce04e28f116c4c76f3b790fbc52d63149f6224a892f952b599fb9"' repoLastModified: Sat, 13 Jul 2024 19:43:56 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/f0rzend/simplegowebserver - source: openapi3 tags repository: https://github.com/philosowaffle/vs-openapi-designer v3: true repositoryMetadata: base64Readme: >- IyB2cy1vcGVuYXBpLWRlc2lnbmVyIFtQcmV2aWV3XQoKIFZTIENvZGUgZXh0ZW5zaW9uIGZvciBwcmV2aWV3aW5nIFtPcGVuQXBpIFNjaGVtYSdzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgd2l0aGluIFZTIENvZGUuCgogRmluZCBpdCBpbiB0aGUgW1ZTIENvZGUgTWFya2V0UGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1waGlsb3Nvd2FmZmxlLm9wZW5hcGktZGVzaWduZXIpLgoKIyMgRmVhdHVyZXMKCi0gUHJldmlldyBPcGVuQXBpIHNwZWNzIGluIHNpZGUgcGFuZWwgaW4gVlMgQ29kZSBvciBpbiBCcm93c2VyCi0gU3dhZ2dlciAyLjAgU3BlYyBwcmV2aWV3aW5nIGFuZCB2YWxpZGF0aW9uCiAgLSBZQU1ML0pTT04KICAtIFNpbmdsZSBhbmQgTXVsdGktRmlsZSAoYm90aCBsb2NhbCBhbmQgcmVtb3RlIHJlZmVyZW5jZXMpCi0gT3BlbkFwaSAzLjAgU3BlYyBwcmV2aWV3aW5nIGFuZCB2YWxpZGF0aW9uCiAgLSBZQU1ML0pTT04KICAtIFNpbmdsZSBhbmQgTXVsdGktRmlsZSAoYm90aCBsb2NhbCBhbmQgcmVtb3RlIHJlZmVyZW5jZXMpCgojIyBVc2FnZQoKLSBPcGVuIHRoZSByb290IG9mIHlvdXIgc2NoZW1hCi0gYGN0cmwtc2hmdC1wYCA+IGBPcGVuQXBpIERlc2lnbmVyOiBQcmV2aWV3YAotIE90aGVyIEF2YWlsYWJsZSBDb21tYW5kcwogIC0gYE9wZW5BcGkgRGVzaWduZXI6IFByZXZpZXdgIC0gb3BlbnMgcHJldmlldyB1c2luZyB5b3VyIGRlZmF1bHQgdmlldyBwcmVmZXJlbmNlCiAgLSBgT3BlbkFwaSBEZXNpZ25lcjogUHJldmlldyBJbiBTaWRlIFBhbmVsYCAtIG9wZW4gcHJldmlldyBpbiBzaWRlIHBhbmVsCiAgLSBgT3BlbkFwaSBEZXNpZ25lcjogUHJldmlldyBJbiBCcm93c2VyYCAtIG9wZW4gcHJlaXZldyBpbiBicm93c2VyCiAgLSBgT3BlbkFwaSBEZXNpZ25lcjogQ29tcGlsZSBTY2hlbWFgIC0gQ29tcGlsZXMgYSB1bmlmaWVkIHNjaGVtYSBhbmQgZGVyZWZlcmVuY2VzIGFsbCBgJHJlZnNgIGludG8gYSBzaW5nbGUgZmlsZQoKIyMgUmVxdWlyZW1lbnRzCgotIE5vbmUKCiMjIEV4dGVuc2lvbiBTZXR0aW5ncwoKVGhpcyBleHRlbnNpb24gY29udHJpYnV0ZXMgdGhlIGZvbGxvd2luZyBzZXR0aW5nczoKCi0gYG9wZW5BcGlEZXNpZ25lci5kZWZhdWx0UG9ydGA6IGRlZmF1bHQgcG9ydCBmb3Igc2VydmluZyB0aGUgU3dhZ2dlciBVSSwgZGVmYXVsdCBgOTAwNWAKLSBgb3BlbkFwaURlc2lnbmVyLnByZXZpZXdJbkJyb3dzZXJgOiB3aGV0aGVyIHRvIG9wZW4gcHJldmlldyBpbiB0aGUgQnJvd3NlciBvciBpbiBWUyBDb2RlIHNpZGUgcGFuZWwsIGRlZmF1bHQgYGZhbHNlYAoKIyMgS25vd24gSXNzdWVzCgpTZWUga25vd24gaXNzdWVzIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vcGhpbG9zb3dhZmZsZS92cy1vcGVuYXBpLWRlc2lnbmVyL2lzc3VlcykuICBJZiB5b3VyIGlzc3VlIGlzIG5vdCBhbHJlYWR5IGxpc3RlZCB0aGVyZSBwbGVhc2UgbG9nIGEgbmV3IG9uZS4KCiMjIFJlbGVhc2UgTm90ZXMKClNlZSBbQ0hBTkdFTE9HXShodHRwczovL2dpdGh1Yi5jb20vcGhpbG9zb3dhZmZsZS92cy1vcGVuYXBpLWRlc2lnbmVyL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyMgQ29udHJpYnV0aW5nCgojIyMgRGV2ZWxvcG1lbnQKCi0gY2QgZGlyLCBgbnBtIGluc3RhbGxgIHRvIGluc3RhbGwgbmVlZGVkIGRlcGVuZGVuY2llcwotIEY1IHRvIGxhdW5jaCBleHRlbnNpb24gYW5kIHZhbGlkYXRlCi0gYG5wbSBpbnN0YWxsIC1nIHZzY2VgIEZvciBwYWNrYWdpbmcgYW5kIHB1Ymxpc2hpbmcKICAgIC0gYHZzY2UgcGFja2FnZWAgLSBUbyBidWlsZCBwcmUtcmVsZWFzZSBwYWNha2FnZXMKICAgIC0gVG8gc2lkZSBsb2FkIGluIFZTIENvZGUgYGN0cmwtc2hmdC1wYCwgYEluc3RhbGwgRnJvbSBWU0lYYCwgbG9jYXRlIG91dHB1dCBmcm9tIGBwYWNrYWdlYAo= readmeEtag: '"7a32ffd2f503223348c02e00cf78ee0ea520dace"' readmeLastModified: Sun, 14 Apr 2019 20:00:46 GMT repositoryId: 142328036 description: OpenApi Designer Extension for VS Code created: '2018-07-25T16:45:17Z' updated: '2022-12-02T15:55:10Z' language: JavaScript archived: false stars: 15 watchers: 3 forks: 2 owner: philosowaffle logo: https://avatars.githubusercontent.com/u/7275041?v=4 license: GPL-3.0 repoEtag: '"dbc50fece6c0ed71d8d62c7715ba37e1c627312078c97f3895c70a9e82b96475"' repoLastModified: Fri, 02 Dec 2022 15:55:10 GMT foundInMaster: true category: Documentation id: bbbe73cd6a16928706867d54bc485989 - source: openapi3 tags repository: https://github.com/oai/projects v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEluaXRpYXRpdmUgKE9BSSkgUHJvamVjdHMKVGhpcyBpcyBhIHJlcG8gZm9yIG1vdmluZyBmb3J3YXJkIGEgdmFyaWV0eSBvZiBwcm9qZWN0cyB3aXRoaW4gdGhlIE9wZW5BUEkgY29tbXVuaXR5LiBJbiBhbiBlZmZvcnQgdG8gYmUgbW9yZSB0cmFuc3BhcmVudCBhbmQgaGVscCBpbnZvbHZlIHRoZSBjb21tdW5pdHkgaW4gYSB2YXJpZXR5IG9mIHdheXMgd2Ugd2lsbCBiZSBtYW5hZ2luZyBtb3N0IHByb2plY3RzIHdpdGhpbiB0aGlzIHJlcG9zaXRvcnkuIFRoaXMgUkVBRE1FIHNob3VsZCBwcm92aWRlIHlvdSB3aXRoIGV2ZXJ5dGhpbmcgeW91IG5lZWQgdG8gZ2V0IHN0YXJ0ZWQgd29ya2luZyBvbiBhbiBleGlzdGluZyBwcm9qZWN0LCBvciBzdWdnZXN0IGEgbmV3IHByb2plY3QuCgojIyBIb3cgSXQgQWxsIFdvcmtzCldlIGFyZSBqdXN0IGdldHRpbmcgc3RhcnRlZCB3aXRoIHRoaXMgZWZmb3J0IHRvIGV4dGVybmFsIHByb2plY3Qgd29yaywgc28gdGhpcyBwcm9jZXNzIHdpbGwgZXZvbHZlLiBIZXJlIGFyZSB0aGUgbW92aW5nIHBhcnRzIGZvciBtYW5hZ2luZyBwcm9qZWN0cyB1c2luZyB0aGlzIHJlcG9zaXRvcnk6CgotICoqUkVBRE1FKiogLSBUaGUgUkVBRE1FIGlzIHRoZSAiaG9tZSBwYWdlIiBmb3IgYWxsIHRoZSBwcm9qZWN0IGJlaW5nIG1hbmFnZWQgYW5kIHdpbGwgYmUga2VwdCBhcyBhbiBvdmVydmlldyBvZiBldmVyeXRoaW5nIHRoYXQgaXMgaGFwcGVuaW5nLgotICoqSXNzdWVzKiogLSBXZSBhcmUgdXNpbmcgaXNzdWVzIGZvciB0aGUgY2F0Y2ggYWxsIGJhc2tldCBmb3IgYW55IGNvbW1lbnRzLCBxdWVzdGlvbnMsIG9yIGZlZWRiYWNrLCBhbmQgcHJvamVjdHMgY2FuIGhhdmUgbXVsdGlwbGUgaXNzdWVzLgotICoqUHJvamVjdHMqKiAtIE9uY2UgYW4gaWRlYSBvciBzdWdnZXN0aW9uIGZvciBhIG5ldyBwcm9qZWN0IGlzIHNldCBpbnRvIG1vdGlvbiBpdCB3aWxsIGJlIGdpdmVuIGEgZm9ybWFsIHByb2plY3QgZm9yIG1hbmFnaW5nIGFsbCB0YXNrcy4KLSAqKlBhZ2VzKiogLSBPbmdvaW5nIHByb2plY3RzIG1heSBhbHNvIGhhdmUgYSBkZWRpY2F0ZWQgbWFya2Rvd24gcGFnZSB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byBhbnkgcmVsYXRlZCBkb2N1bWVudHMgYW5kIGFydGlmYWN0cy4KLSAqKkZvbGRlcioqIC0gUHJvamVjdHMgbWF5IGFsc28gYmUgYWJsZSB0byBoYXZlIHRoZWlyIG93biBmb2xkZXJzIHdpdGhpbiB0aGUgcmVwb3NpdG9yeSBmb3Igb3JnYW5pemluZyBhbnkgY29kZSBvciByZWxhdGVkIGFydGlmYWN0cy4KCkZlZWwgZnJlZSB0byBzdWdnZXN0IGEgbmV3IHByb2plY3QgYnkgc3VibWl0dGluZyBhbiBpc3N1ZSwgb3IgZ2V0IGludm9sdmVkIGluIGEgc3BlY2lmaWMgcHJvamVjdCBieSBqdW1waW5nIGluIG9uIHRoZSBpc3N1ZXMgb3IgdGhlIGRpc2N1c3Npb25zIGZvciBlYWNoIGFyZWEgb2Ygd29yay4KCjwhLS0gZHluYW1pYyBjb250ZW50IC0tPgojIyBBY3RpdmUgUHJvamVjdHMKVGhlc2UgYXJlIHRoZSBwcm9qZWN0cyBjdXJyZW50bHkgYmVpbmcgbW92ZWQgZm9yd2FyZCBpbiBzb21lIGNhcGFjaXR5LiBFYWNoIHByb2plY3QgaGFzIGEgbGlzdGluZyBvZiB0by1kbywgaW4gcHJvZ3Jlc3MsIGFuZCBkb25lIHRhc2tzLCBhcyB3ZWxsIGFzIGxpbmsgdG8gYW55IG9wZW4gaXNzdWVzIG9yIGRpc2N1c3Npb25zLgoKUHJvamVjdHxEZXNjcmlwdGlvbnwKfC0tLXwtLS18CnxbKipNZW1iZXIgU2hvd2Nhc2UgJiBFbmdhZ2VtZW50KipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvMil8Q29udGludWFsbHkgaW1wcm92aW5nIGhvdyB3ZSBzaG93Y2FzZSBhbmQgZW5nYWdlIHdpdGggdGhlIG1lbWJlcnMgb2YgdGhlIE9BSSwgYW5kIGluY3JlYXNlIHRoZWlyIHBhcnRpY2lwYXRpb24gd2l0aGluIHRoZSBPQVMgY29tbXVuaXR5LnwKfFsqKlByb2ZpbGUgJiBFbmdhZ2Ugd2l0aCBBUEkgUHJvdmlkZXJzKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvMyl8V29yayB0byBpZGVudGlmeSwgcHJvZmlsZSwgYW5kIGJ1aWxkIHJlbGF0aW9uc2hpcHMgd2l0aCBBUEkgcHJvdmlkZXJzIHdobyBoYXZlIGltcGxlbWVudGVkIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIGFuZCBwdWJsaXNoIHByb2ZpbGUgdG8gYSBjZW50cmFsIGRhdGFiYXNlLnwKfFsqKlByb2ZpbGUgYW5kIEVuZ2FnZSB3aXRoIE9wZW4gU291cmNlIFRvb2xpbmcqKl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9Qcm9qZWN0cy9wcm9qZWN0cy80KXxFc3RhYmxpc2ggYW4gb2ZmaWNpYWwgZGlyZWN0b3J5IG9mIG9wZW4gc291cmNlIHRvb2xpbmcgdGhhdCB1c2VzIE9BUywgYW5kIGFjdGl2ZWx5IHdvcmsgdG8gZXN0YWJsaXNoIGFuZCBidWlsZCByZWxhdGlvbnNoaXBzIHdpdGggZWFjaCB0b29saW5nIHByb3ZpZGVyIHRvIGdldCB0aGVtIG1vcmUgaW52b2x2ZWQgaW4gdGhlIGNvbW11bml0eS58CnxbKipCdXNpbmVzcyBTZWN0b3IgU2hvd2Nhc2UgJiBFbmdhZ2VtZW50KipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvNSl8V29yayB0byBwcm9maWxlIGJ1c2luZXNzIHNlY3RvcnMgdGhhdCBhcmUgcHV0dGluZyBPcGVuQVBJIHRvIHdvcmssIHRoZW4gZW5nYWdlLCBhbmQgYnVpbGQgcmVsYXRpb25zaGlwcyB3aXRoIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMsIHdoaWxlIGhlbHBpbmcgc3RpbXVsYXRlIE9BSSBzcGVjaWFsIGludGVyZXN0IGdyb3VwcyBpbiB0aGVzZSBhcmVhcy58CnxbKipRdWFudGlmeSB0aGUgU2NvcGUgb2YgdGhlIE9wZW5BUEkgQ29tbXVuaXR5KipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvNil8V29yayB0byBlc3RhYmxpc2ggdGhlIHNpemUgYW5kIHNjb3BlIG9mIHRoZSBPcGVuQVBJIGNvbW11bml0eSBhbmQgdGhlbiB0cmFjayBvbiB0aGUgZ3Jvd3RoIG92ZXIgdGltZS58CnxbKipTdHJlbmd0aGVuIE11bHRpLVNwZWNpZmljYXRpb24gUmVsYXRpb25zaGlwcyoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzcpfE9uZ29pbmcgd29yayB0byBoZWxwIHN0cmVuZ3RoZW4gdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgT0FJIGFuZCBvdGhlciBBUEkgc3BlY2lmaWNhdGlvbnMgbGlrZSBBc3luY0FQSSwgR3JhcGhRTCwgSlNPTiBTY2hlbWEsIGFuZCBnUlBDLnwKfFsqKkN1cmF0ZSBhbmQgUHVibGlzaCBBUEkgQXJ0aWNsZXMsIFBvZGNhc3RzLCBWaWRlb3MqKl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9Qcm9qZWN0cy9wcm9qZWN0cy84KXxXb3JrIHRvIGRpc2NvdmVyLCBjdXJhdGUsIGFuZCB0aGVuIHNob3djYXNlIGFuZCBzeW5kaWNhdGUgdGhlIGV4aXN0aW5nIGFydGljbGVzLCBwb2RjYXN0cywgYW5kIHZpZGVvcyB0aGF0IGV4aXN0IGFib3V0IE9wZW5BUEkufAp8WyoqQWRkaXRpb25hbCBPQUkgTGVhZGVyc2hpcCoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzkpfFdvcmsgdG8gZGVmaW5lIHRoZSByb2xlcyBmb3IgMyBhZGRpdGlvbmFsIGxlYWRlcnNoaXAgd2l0aGluIHRoZSBPQUksIGFuZCBoZWxwIHRoZW0gYmUgc3VjY2Vzc2Z1bCBpbiB3b3JrIG92ZXIgYSB5ZWFyLnwKfFsqKkpTT04gU2NoZW1hIERvY3VtZW50YXRpb24gVXBkYXRlKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvMTApfFRoaXMgaXMgd29yayB0byBpbnZlc3QgaW4gdGhlIHVwZGF0aW5nIG9mIEpTT04gU2NoZW1hIGRvY3VtZW50YXRpb24sIGhlbHBpbmcgaW52ZXN0IGluIHN1cHBvcnRpbmcgc3BlY2lmaWNhdGlvbnMufAp8WyoqT3BlbkFQSSBTZWFyY2ggRW5naW5lIE9wdGltaXphdGlvbioqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzExKXxUaGlzIGlzIG9uZ29pbmcgd29yayB0byBoZWxwIGltcHJvdmUgdGhlIHNlYXJjaCBlbmdpbmUgb3B0aW1pemF0aW9uIGZvciB0aGUgT0FJIGFuZCBPQVMsIGhlbHBpbmcgaW5jcmVhc2UgaXQncyBwcmVzZW5jZS58CnxbKipXb3JrZmxvdyBTSUcqKl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9Qcm9qZWN0cy9wcm9qZWN0cy8xMyl8VGhpcyBpcyBhIGdyb3VwIHRvIG1vdmUgZm9yd2FyZCB0aGUgd29ya2Zsb3cgYW5kIHNjZW5hcmlvIGNvbnZlcnNhdGlvbi58CnxbKipTZWN1cml0eSBTSUcqKl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9Qcm9qZWN0cy9wcm9qZWN0cy8xNCl8VGhpcyBpcyBhIGdyb3VwIHRvIG1vdmUgZm9yd2FyZCB0aGUgc2VjdXJpdHkgZGlzY3Vzc2lvbi58CnxbKipTTEEgU0lHKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvMTUpfFRoaXMgaXMgYSBncm91cCB0byBtb3ZlIGZvcndhcmQgdGhlIFNMQSBjb252ZXJzYXRpb24ufAp8WyoqVHJhdmVsIFNJRyoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzE2KXxUaGlzIGlzIGEgZ3JvdXAgdG8gbW92ZSB0aGUgdHJhdmVsIGNvbnZlcnNhdGlvbiBmb3J3YXJkLnwKfFsqKk92ZXJsYXlzKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvMTcpfFRoaXMgaXMgdG8gdHJhY2sgb24gYWxsIHRoZSBtb3ZpbmcgcGFydHMgb2YgdGhlIG92ZXJsYXlzIGNvbnZlcnNhdGlvbi58CnxbKipIZWFsdGhjYXJlIFNJRyoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzE4KXxUaGlzIGlzIGEgcHJvamVjdCB0byBzZXR1cCBhIHdvcmtpbmcgZ3JvdXAgdG8gZm9jdXMgb24gdGhlIGhlYWx0aGNhcmUgaW5kdXN0cnkufAp8WyoqUGl0Y2ggRGVjayoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzE5KXxNb3ZlIGZvcndhcmQgdGhlIHdvcmsgYXJvdW5kIGEgZm9ybWFsIHBpdGNoIGRlY2sgdG8gcmVwcmVzZW50IHdoYXQgT3BlbkFQSSBpcyB0byBpbmRpdmlkdWFsIG9uYm9hcmRpbmcgd2l0aCB0aGUgc3BlYyBvciB0aGUgT0FJIGFzIGFuIG9yZ2FuaXphdGlvbi58CnxbKipBUEkgU3BlY2lmaWNhdGlvbnMgQ29uZmVyZW5jZSoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzIwKXxLZWVwIHRyYWNrIG9mIHNvbWUgb2YgdGhlIGdvaW5ncyBvbiBhcm91bmQgQVNDLnwKfFsqKk9mZmljZSBIb3VycyoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzIyKXxUaGlzIGlzIGEgcHJvamVjdCB0byBvZmZlciBvbmdvaW5nIHdlZWtseSBvZmZpY2UgaG91cnMgd2hlcmUgYW55b25lIGNhbiBjb21lIGFuZCBsZWFybiBhYm91dCB0aGUgT0FJLCBPQVMsIGFuZCBob3cgaXQgYWxsIHdvcmtzLnwKfFsqKlNJRyBQbGFubmluZyoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzIzKXxUaGlzIGlzIGEgcHJvamVjdCB0byB0cmFjayBvbiB0aGUgZGV0YWlscyBhY3Jvc3MgdGhlIFNJR3MuIEVhY2ggU0lHIGhhcyBvd24gcHJvamVjdCBib2FyZCwgYnV0IHRoaXMgaXMgdXNlZCB0byBwbGFuIGFjcm9zcyB0aGUgU0lHcy58CnxbKipOZXcgTWVtYmVyIElkZW50aWZpY2F0aW9uICYgRW5nYWdlbWVudCoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzI0KXxXb3JrIHRvIGlkZW50aWZ5IHBvdGVudGlhbCBuZXcgbWVtYmVycyB0byB0aGUgT0FJIGFuZCByZWFjaCBvdXQgdG8gdGhlbSB0byBoZWxwIHN0YXJ0IGEgY29udmVyc2F0aW9uIGFuZCBtYWtlIHRoZW0gYXdhcmUgb2YgdGhlIGJlbmVmaXRzIG9mIGJlaW5nIGEgbWVtYmVyLnwKfFsqKkJ1c2luZXNzIEdvdmVybmFuY2UgQm9hcmQgKEJHQikqKl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9Qcm9qZWN0cy9wcm9qZWN0cy8yNSl8VGhpcyBpcyB1c2VkIHRvIG1hbmFnZSB0YXNrcyBmb3IgdGhlIEJHQiwgaGVscGluZyBOZWFsLCBJc2FiZWwsIGFuZCBLaW4gYmUgbW9yZSBvcmdhbml6ZWQufAp8WyoqRXh0ZW5zaW9uIERpcmVjdG9yeSoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1Byb2plY3RzL3Byb2plY3RzLzI2KXxUaGlzIGlzIGEgcHJvamVjdCB0byBtb3ZlIGZvcndhcmQgYW4gb2ZmaWNpYWwgT0FJIGV4dGVuc2lvbiByZWdpc3RyeSwgY2F0YWxvZ2luZyBob3cgdGhlIHNwZWNpZmljYXRpb24gaXMgYmVpbmcgZXh0ZW5kZWQufAp8WyoqQmxvZyBQcm9jZXNzKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvUHJvamVjdHMvcHJvamVjdHMvMjcpfEhvdyBkbyB5b3Ugc3VibWl0IGEgc3RvcnkgZm9yIGluY2x1c2lvbiBvbiB0aGUgYmxvZy58CgojIyBJbmN1YmF0b3IgUHJvamVjdHMKClByb2plY3R8RGVzY3JpcHRpb258CnwtLS18LS0tfAo8IS0tIGR5bmFtaWMgY29udGVudCAtLT4KCkFzIHByb2plY3RzIGFyZSBjb21wbGV0ZSB0aGV5IHdpbGwgYmUgY2xvc2VkLCB3aXRoIHNvbWUgcHJvamVjdHMgbGl2aW5nIG9uIGZvcmV2ZXIgYW5kIGlzc3VlcyBhbmQgZGlzY3Vzc2lvbnMgYmVpbmcgdXNlZCB0byBkcml2ZSBvbmdvaW5nIHdvcmsuCgojIyBBY3RpdmUgUGFydGljaXBhbnRzClRoZXNlIGFyZSB0aGUgaW5kaXZpZHVhbHMgd2hvIGFyZSBjdXJyZW50bHkgcGFydCBvZiBtb3ZpbmcgcHJvamVjdHMgZm9yd2FyZCBhcyBwYXJ0IG9mIHRoZSBPQUksIGFuZCBoZXJlIHRvIGFuc3dlciBhbnkgcXVlc3Rpb25zLgoKLSBbS2luIExhbmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9raW5sYW5lKSAtIFJlcHJlc2VudGluZyBhcyBjby1jaGFpciBvZiB0aGUgQkdCIEJvYXJkLgotIFtDaHJpcyBUc2FpXShodHRwczovL2dpdGh1Yi5jb20vZ3JpenppY2xlKSAtIElkZW50aWZ5aW5nICYgZW5nYWdpbmcgbmV3IG1lbWJlcnMgdG8gZ3JvdyB0aGUgT0FJLgotIFtDaHJpcyBXb29kXShodHRwczovL2dpdGh1Yi5jb20vU2Vuc2libGVXb29kKSAtIEVuZ2FnaW5nIHdpdGggb3BlbiBzb3VyY2UgdG9vbGluZyBhbmQgY3VyYXRlIGNvbnRlbnQuCi0gW1BoaWwgU3R1cmdlb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsc3R1cmdlb24pIC0gRW5nYWdpbmcgd2l0aCBBUElzLCBvcGVuIHNvdXJjZSB0b29saW5nIGFuZCBjdXJhdGUgY29udGVudC4KCklmIHlvdSdkIGxpa2UgdG8gYmUgYWRkZWQgcGxlYXNlIHN1Ym1pdCBhIEdpdGh1YiBpc3N1ZSBzdGF0aW5nIGhvdyB5b3UnZCBsaWtlIHRvIGhlbHAgYW5kIHdlJ2xsIGFkZCB5b3UgdG8gdGhlIGxpc3Qgb2YgcGFydGljaXBhbnRzLgo= readmeEtag: '"f619bc60a700df6dc6174ecd2fbb7071385653dc"' readmeLastModified: Wed, 05 Jan 2022 23:07:05 GMT repositoryId: 366089329 description: >- All of the open projects occurring within the Open API Initiative (OAI) community. created: '2021-05-10T15:25:36Z' updated: '2024-08-02T02:22:50Z' language: JavaScript archived: false stars: 15 watchers: 13 forks: 9 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 license: Apache-2.0 repoEtag: '"29b2489c03e11376d6c45075788db20edbc42a925950001413bf9321bf29d161"' repoLastModified: Fri, 02 Aug 2024 02:22:50 GMT foundInMaster: true category: Server id: dd0109543e2834f7f902f1f438b6b874 - source: openapi3 tags repository: https://github.com/marcelthole/openapi-merge v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIE1lcmdlCgoKWyFbVGVzdCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjZWx0aG9sZS9vcGVuYXBpLW1lcmdlL3dvcmtmbG93cy9UZXN0cy9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbWFyY2VsdGhvbGUvb3BlbmFwaS1tZXJnZS9hY3Rpb25zKQpbIVtEb2NrZXIgQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vbWFyY2VsdGhvbGUvb3BlbmFwaS1tZXJnZS93b3JrZmxvd3MvRG9ja2VyLUJ1aWxkL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjZWx0aG9sZS9vcGVuYXBpLW1lcmdlL2FjdGlvbnMpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9tYXJjZWx0aG9sZS9vcGVuYXBpLW1lcmdlL2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj1kZmZWYmhxeHZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL21hcmNlbHRob2xlL29wZW5hcGktbWVyZ2UpClshW011dGF0aW9uIHRlc3RpbmcgYmFkZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/c3R5bGU9ZmxhdCZ1cmw9aHR0cHMlM0ElMkYlMkZiYWRnZS1hcGkuc3RyeWtlci1tdXRhdG9yLmlvJTJGZ2l0aHViLmNvbSUyRm1hcmNlbHRob2xlJTJGb3BlbmFwaS1tZXJnZSUyRm1haW4pXShodHRwczovL2Rhc2hib2FyZC5zdHJ5a2VyLW11dGF0b3IuaW8vcmVwb3J0cy9naXRodWIuY29tL21hcmNlbHRob2xlL29wZW5hcGktbWVyZ2UvbWFpbikKWyFbTGF0ZXN0IFN0YWJsZSBWZXJzaW9uXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL21hcmNlbHRob2xlL29wZW5hcGktbWVyZ2UvdildKC8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9tYXJjZWx0aG9sZS9vcGVuYXBpLW1lcmdlKQpbIVtMaWNlbnNlXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL21hcmNlbHRob2xlL29wZW5hcGktbWVyZ2UvbGljZW5zZSldKC8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9tYXJjZWx0aG9sZS9vcGVuYXBpLW1lcmdlKQoKClJlYWQgbXVsdGlwbGUgT3BlbkFQSSAzLjAueCBZQU1MIGFuZCBKU09OIGZpbGVzIGFuZCBtZXJnZSB0aGVtIGludG8gb25lIGxhcmdlIGZpbGUuICAKVGhpcyBhcHBsaWNhdGlvbiBpcyBidWlsZCBvbiBbY2ViZS9waHAtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL2NlYmUvcGhwLW9wZW5hcGkpIAoKIyBJbnN0YWxsYXRpb24KYGBgCmNvbXBvc2VyIHJlcXVpcmUgbWFyY2VsdGhvbGUvb3BlbmFwaS1tZXJnZQpgYGAKCiMgVXNhZ2UKIyMgQ0xJCmBgYAokIHZlbmRvci9iaW4vb3BlbmFwaS1tZXJnZSAtLWhlbHAKClVzYWdlOgogICAgb3BlbmFwaS1tZXJnZSBiYXNlZmlsZS55bWwgYWRkaXRpb25hbEZpbGVBLnltbCBhZGRpdGlvbmFsRmlsZUIueW1sIFsuLi5dICA+IGNvbWJpbmVkLnltbAoKYGBgCgojIyMgQXJndW1lbnRzCnwgQXJndW1lbnQgfCBNZWFuaW5nIHwKfCAtLS0gfCAtLS0gIHwKfCAtLW1hdGNoWz1NQVRDSF0gfCBVc2UgYSBSZWdFeCBwYXR0ZXJuIHRvIGRldGVybWluZSB0aGUgYWRkaXRpb25hbEZpbGVzLiBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgdGhlIGFkZGl0aW9uYWxGaWxlcyBjb3VsZCBiZSBvbWl0dGVkIChtdWx0aXBsZSB2YWx1ZXMgYWxsb3dlZCkgfAp8IC0tcmVzb2x2ZS1yZWZlcmVuY2VzWz1SRVNPTFZFLVJFRkVSRU5DRVNdIHwgUmVzb2x2ZSB0aGUgIiRyZWZzIiBpbiB0aGUgZ2l2ZW4gZmlsZXMgW2RlZmF1bHQ6IHRydWVdIHwKfCAtbywgLS1vdXRwdXRmaWxlWz1PVVRQVVRGSUxFXSB8IERlZmluZXMgdGhlIG91dHB1dCBmaWxlIGZvciB0aGUgcmVzdWx0LiBEZWZhdWx0cyB0aGUgcmVzdWx0IHdpbGwgcHJpbnRlZCB0byBzdGRvdXQgfAoKCiMjIERvY2tlcgpSdW4gdGhlIGBvcGVuYXBpLW1lcmdlYCBjb21tYW5kIHdpdGhpbiBhIGRvY2tlciBjb250YWluZXIKYGBgCmRvY2tlciBwdWxsIGdoY3IuaW8vbWFyY2VsdGhvbGUvb3BlbmFwaS1tZXJnZQpkb2NrZXIgcnVuIC12ICRQV0Q6L2FwcCAtLXJtIGdoY3IuaW8vbWFyY2VsdGhvbGUvb3BlbmFwaS1tZXJnZSBbYXJndW1lbnRzXQpgYGAKCkJ1aWxkIHRoZSBpbWFnZSBsb2NhbGx5IGZyb20gdGhlIHNvdXJjZWNvZGU6CmBgYApkb2NrZXIgYnVpbGQgLS1idWlsZC1hcmcgQ09NUE9TRVJfUkVRVUlSRV9WRVJTSU9OPTx2ZXJzaW9uPiAtLW5vLWNhY2hlIC10IG1hcmNlbHRob2xlL29wZW5hcGktbWVyZ2U6ZGV2IGRvY2tlcgpkb2NrZXIgcnVuIC12ICRQV0Q6L2FwcCAtLXJtIG1hcmNlbHRob2xlL29wZW5hcGktbWVyZ2U6ZGV2IFthcmd1bWVudHNdCmBgYAoKIyMgT3V0cHV0Zm9ybWF0ClRoZSBvdXRwdXQgZm9ybWF0IGlzIGRldGVybWluZWQgYnkgdGhlIGJhc2VmaWxlIGV4dGVuc2lvbi4K readmeEtag: '"f38a618bcdaad980cdeebe190ddf0b31e15dde62"' readmeLastModified: Tue, 06 Aug 2024 10:46:53 GMT repositoryId: 306759712 description: null created: '2020-10-23T22:26:31Z' updated: '2024-08-06T10:46:58Z' language: PHP archived: false stars: 15 watchers: 2 forks: 6 owner: marcelthole logo: https://avatars.githubusercontent.com/u/850125?v=4 license: MIT repoEtag: '"872270b226c02e1da4da82a21082fc6400e2bb0b5cd3b76b6c75c540a225353c"' repoLastModified: Tue, 06 Aug 2024 10:46:58 GMT foundInMaster: true category: Description Validators id: d4f30650d1fe678296b5e48ab1cf97bb - source: - openapi3 tags - openapi31 tags name: aiopenapi3 homepage: https://github.com/commonism/aiopenapi3 language: Python source_description: >- OpenAPI 3, Python3.7+ client & validator with automatic data validation & serialization, sync or asyncio. category: - Client Implementations - Server Implementations repository: https://github.com/commonism/aiopenapi3 repositoryMetadata: base64Readme: >- IyBhaW9wZW5hcGkzCgpBIFB5dGhvbiBbT3BlbkFQSSAzIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZCkgY2xpZW50IGFuZCB2YWxpZGF0b3IgZm9yIFB5dGhvbiAzLgoKWyFbVGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL2NvbW1vbmlzbS9haW9wZW5hcGkzL2FjdGlvbnMvd29ya2Zsb3dzL2NvZGVjb3YueW1sL2JhZGdlLnN2Zz9ldmVudD1wdXNoJmJyYW5jaD1tYXN0ZXIpXShodHRwczovL2dpdGh1Yi5jb20vY29tbW9uaXNtL2Fpb3BlbmFwaTMvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQUNvZGVjb3YrZXZlbnQlM0FwdXNoK2JyYW5jaCUzQW1hc3RlcikKWyFbcHJlLWNvbW1pdC5jaSBzdGF0dXNdKGh0dHBzOi8vcmVzdWx0cy5wcmUtY29tbWl0LmNpL2JhZGdlL2dpdGh1Yi9jb21tb25pc20vYWlvcGVuYXBpMy9tYXN0ZXIuc3ZnKV0oaHR0cHM6Ly9yZXN1bHRzLnByZS1jb21taXQuY2kvbGF0ZXN0L2dpdGh1Yi9jb21tb25pc20vYWlvcGVuYXBpMy9tYXN0ZXIpClshW0NvdmVyYWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvY29tbW9uaXNtL2Fpb3BlbmFwaTMpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvY29tbW9uaXNtL2Fpb3BlbmFwaTMpClshW1N1cHBvcnRlZCBQeXRob24gdmVyc2lvbnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL2Fpb3BlbmFwaTMuc3ZnKV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2Fpb3BlbmFwaTMpClshW0RvY3VtZW50YXRpb24gU3RhdHVzXShodHRwczovL3JlYWR0aGVkb2NzLm9yZy9wcm9qZWN0cy9haW9wZW5hcGkzL2JhZGdlLz92ZXJzaW9uPWxhdGVzdCldKGh0dHBzOi8vYWlvcGVuYXBpMy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvP2JhZGdlPWxhdGVzdCkKCgpUaGlzIHByb2plY3QgaXMgYSBmb3JrIG9mIFtEb3J0aHUvb3BlbmFwaTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9Eb3J0aHUvb3BlbmFwaTMvKS4KCiMjIEZlYXR1cmVzCiAgKiBpbXBsZW1lbnRzIOKApgogICAgKiBTd2FnZ2VyIDIuMAogICAgKiBPcGVuQVBJIDMuMC4zCiAgICAqIE9wZW5BUEkgMy4xLjAKICAqIGRlc2NyaXB0aW9uIGRvY3VtZW50IHBhcnNpbmcgdmlhIFtweWRhbnRpY10oaHR0cHM6Ly9naXRodWIuY29tL3NhbXVlbGNvbHZpbi9weWRhbnRpYykKICAgICogcmVjdXJzaXZlIHNjaGVtYXMgKEEuYSAtPiBBKQogICogcmVxdWVzdCBib2R5IG1vZGVsIGNyZWF0aW9uIHZpYSBweWRhbnRpYwogICAgKiBweWRhbnRpYyBjb21wYXRpYmxlICJmb3JtYXQiLXR5cGUgY29lcmNpb24gKGUuZy4gZGF0ZXRpbWUuaW50ZXJ2YWwpCiAgICAqIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIChsaW1pdGVkIHRvIHN0cmluZy10by1hbnkgZGljdGlvbmFyaWVzIHdpdGhvdXQgcHJvcGVydGllcykKICAqIHJlc3BvbnNlIGJvZHkgJiBoZWFkZXIgcGFyc2luZyB2aWEgcHlkYW50aWMKICAqIGJsb2NraW5nIGFuZCBub25ibG9ja2luZyAoYXN5bmNpbykgaW50ZXJmYWNlIHZpYSBbaHR0cHhdKGh0dHBzOi8vd3d3LnB5dGhvbi1odHRweC5vcmcvKQogICAgKiBTT0NLUzUgdmlhIGh0dHB4X3NvY2tzCiAgKiB0ZXN0cyB3aXRoIHB5dGVzdCAmIFtmYXN0YXBpXShodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tLykKICAqIHByb3ZpZGluZyBhY2Nlc3MgdG8gbWV0aG9kcyBhbmQgYXJndW1lbnRzIHZpYSB0aGUgc2FkIHNtaWxleSAuXy4gaW50ZXJmYWNlCiAgKiBQbHVnaW4gSW50ZXJmYWNlL2FwaSB0byBtb2RpZnkgZGVzY3JpcHRpb24gZG9jdW1lbnRzL3JlcXVlc3RzL3Jlc3BvbnNlcyB0byBhZGFwdCB0byBub24gY29tcGxpYW50IHNlcnZpY2VzCiAgKiBZQU1MIHR5cGUgY29lcmNpb24gaGludHMgZm9yIG5vdCB3ZWxsIGZvcm1hdHRlZCBkZXNjcmlwdGlvbiBkb2N1bWVudHMKICAqIERlc2NyaXB0aW9uIERvY3VtZW50IGRlcGVuZGVuY3kgZG93bmxvYWRzICh1c2luZyB0aGUgV2ViTG9hZGVyKQogICAgKiBsb2dnaW5nCiAgICAgICogYGV4cG9ydCBBSU9QRU5BUEkzX0xPR0dJTkdfSEFORExFUlM9ZGVidWdgIHRvIGdldCAvdG1wL2Fpb3BlbmFwaTMtZGVidWcubG9nCgoKIyMgRG9jdW1lbnRhdGlvbgpbQVBJIERvY3VtZW50YXRpb25dKGh0dHBzOi8vYWlvcGVuYXBpMy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKQoKCiMjIFJ1bm5pbmcgVGVzdHMKClRoaXMgcHJvamVjdCBpbmNsdWRlcyBhIHRlc3Qgc3VpdGUsIHJ1biB2aWEgYGBweXRlc3RgYC4gIFRvIHJ1biB0aGUgdGVzdCBzdWl0ZSwKZW5zdXJlIHRoYXQgeW91J3ZlIGluc3RhbGxlZCB0aGUgZGVwZW5kZW5jaWVzIGFuZCB0aGVuIHJ1biBgYHB5dGVzdGBgIGluIHRoZSByb290Cm9mIHRoaXMgcHJvamVjdC4KCmBgYHNoZWxsClBZVEhPTlBBVEg9LiBweXRlc3QgLS1jb3Y9Li8gLS1jb3YtcmVwb3J0PXhtbCAuCmBgYAo= readmeEtag: '"091767230f77346d3ea0eb78ac7448ca039d6745"' readmeLastModified: Wed, 07 Aug 2024 07:24:30 GMT repositoryId: 443839740 description: 'Python OpenAPI3 client/validator w\ {a,}syncio ' created: '2022-01-02T18:23:26Z' updated: '2024-08-29T10:40:07Z' language: Python archived: false stars: 15 watchers: 3 forks: 6 owner: commonism logo: https://avatars.githubusercontent.com/u/164513?v=4 license: BSD-3-Clause repoEtag: '"785e9a54cf55bf49cfd58759cf55b2e299afb0d39ad5f4b2f52d9cffedaeedf3"' repoLastModified: Thu, 29 Aug 2024 10:40:07 GMT foundInMaster: true id: f7fe65d08545a563279e1526fe797380 v3: true v3_1: true - source: openapi3 tags repository: https://github.com/180protocol/codaptor v3: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Ii5naXRodWIvQ29kYXB0b3ItbG9nby5wbmciIGFsdD0iQ29kYXB0b3IgTG9nbyIgd2lkdGg9IjQwJSIvPgoKQ29kYXB0b3IgaXMgYW4gb3BlbiBzb3VyY2UgcHJvamVjdCBkZXNpZ25lZCB0byBhZGRyZXNzIHRoZSBuZWVkcyBvZiB0ZWFtcyBidWlsZGluZyBkZWNlbnRyYWxpemVkIGFwcGxpY2F0aW9ucwpvbiBbQ29yZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb3JkYS9jb3JkYSkgb3IgaW50ZWdyYXRpbmcgQ29yRGFwcHMgd2l0aCBvdGhlciBzeXN0ZW1zLiBDb3JkYSBpcyBhIGdyZWF0IGVuZ2luZQpmb3IgZGVjZW50cmFsaXplZCBhcHBsaWNhdGlvbnMsIGJ1dCBpbiBvcmRlciB0byBjb21tdW5pY2F0ZSB3aXRoIGEgQ29yZGEgbm9kZSwgdGVhbXMgaGF2ZSB0byBkZXZlbG9wIGJlc3Bva2UKaW50ZWdyYXRpb25zIHVzaW5nIGl0cyBKYXZhIGNsaWVudCBsaWJyYXJpZXMuIFRoaXMgY29tZXMgd2l0aCBhIHN0ZWVwIGxlYXJuaW5nIGN1cnZlLCBhbmQgYWRkcyBjb21wbGV4aXR5IGZvcgpmb3IgdGVhbXMgd29ya2luZyBvdXRzaWRlIEphdmEgZWNvc3lzdGVtLCBlLmcuIE5vZGUuanMsIC5OZXQsIG9yIFB5dGhvbi4KCkNvZGFwdG9yIHNvbHZlcyB0aGlzIHByb2JsZW0gYnkgYXV0b21hdGljYWxseSBjcmVhdGluZyBSRVNUIEFQSSBmb3IgYW55IENvckRhcHAgcnVubmluZyBvbiBhIENvcmRhIG5vZGUuIFRoZXJlIGFyZQptYW55IHRvb2xzIHRoYXQgdW5kZXJzdGFuZCBSRVNUIEFQSXMgaW4gZXZlcnkgdGVjaG5vbG9neSBzdGFjaywgYW5kIHRlYW1zIGNhbiBwaWNrIGFuZCBjaG9vc2Ugd2hhdCB3b3JrcyBmb3IgdGhlbS4KQ29kYXB0b3IgYWxzbyBhbGxvd3MgdG8gZGVjb3VwbGUgQVBJIHVzZXJzIGZyb20gdGhlIHVuZGVybHlpbmcgQ29yZGEgbm9kZSBpbiBvcmRlciB0byBpbXByb3ZlIHRoZSBhdmFpbGFiaWxpdHksCnJlbGlhYmlsaXR5LCBhbmQgZmxleGliaWxpdHkgb2YgdGhlIG92ZXJhbGwgc3lzdGVtLgoKIyMgRmVhdHVyZXMKCiogWmVyby1jb25maWd1cmF0aW9uIGRlcGxveW1lbnQgb3B0aW9uIGFzIGFuIGVtYmVkZGVkIENvcmRhIHNlcnZpY2UgLS0gZ3JlYXQgZm9yIGRldmVsb3BtZW50IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0aW5nCiogR2VuZXJhdGlvbiBvZiBbT3BlbkFQSSAzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgSlNPTiBzcGVjIGZvciB0aGUgQVBJIGVuZHBvaW50IGJhc2VkIAogIG9uIGFjdHVhbCBmbG93cyBhbmQgY29udHJhY3Qgc3RhdGUgY2xhc3NlcyBvZiBhdmFpbGFibGUgQ29yRGFwcHMKKiBFbWJlZGRlZCBbU3dhZ2dlciBVSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Rvb2xzL3N3YWdnZXItdWkvKSBmb3IgZXhwbG9yaW5nIHRoZSBBUEkgaW4geW91ciBicm93c2VyCiogRG9ja2VyLWZyaWVuZGx5IHN0YW5kYWxvbmUgZGVwbG95bWVudCBvcHRpb24gY29uZmlndXJhYmxlIHZpYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIGNvbXBhdGlibGUgd2l0aAogIEt1YmVybmV0ZXMgc2VjcmV0cyBtYW5hZ2VtZW50CiogU3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIGV4ZWN1dGlvbiBvZiBDb3JkYSBmbG93cyB2aWEgdGhlIEFQSQoqIENvbXByZWhlbnNpdmUgQVBJIGZvciBub2RlIHZhdWx0IHF1ZXJpZXMKKiBGbGV4aWJsZSBBUEkgc2VjdXJpdHkgYmFzZWQgb24gW1BBQzRKXShodHRwczovL3d3dy5wYWM0ai5vcmcvKSBhbGxvd2luZyBzdWNoIGF1dGhvcml6YXRpb24gbW9kZWxzIGFzIEFQSSBrZXlzLAogIE9wZW5JRCBDb25uZWN0LCBTQU1MIDIsIG9yIGp1c3QgYWJvdXQgYW55dGhpbmcgZWxzZSAtLSBncmVhdCBmb3IgaW50ZWdyYXRpbmcgbWFuYWdlZCBzZXJ2aWNlcyBsaWtlIEFXUyBDb2duaXRvCiogRnVsbCBzdXBwb3J0IGZvciBTU0wgb3V0IG9mIHRoZSBib3gKKiBFeHRlbnNpYmxlIGFyY2hpdGVjdHVyZSBhbGxvd2luZyBiZXNwb2tlIGZlYXR1cmVzIHRvIGJlIGFkZGVkIGFzIHNpbXBseSBhcyBkcm9wcGluZyBhIEpBUiBmaWxlIGludG8gYSBkaXJlY3RvcnkKCiMjIFZlcnNpb25zIGFuZCBhcnRpZmFjdHMKCkF0IHRoZSBtb21lbnQgQ29kYXB0b3IgaXMgYSBwcmUtMS4wIHRlY2hub2xvZ3kgcHJldmlldyBtYWRlIGF2YWlsYWJsZSB0byB0aGUgY29tbXVuaXR5IHRvIGdhdGhlciBmZWVkYmFjayBhbmQgaWRlbnRpZnkKYXJlYXMgZm9yIGltcHJvdmVtZW50LiBJdCBpcyBub3QgY29uc2lkZXJlZCBwcm9kdWN0aW9uLXJlYWR5IHlldC4KCkxhdGVzdCBDb2RhcHRvciByZWxlYXNlIGlzIFswLjQuMV0oaHR0cHM6Ly9naXRodWIuY29tLzE4MFByb3RvY29sL2NvZGFwdG9yL3JlbGVhc2VzL3RhZy8wLjQuMSkuIFlvdSBjYW4gZG93bmxvYWQKc3RhbmRhbG9uZSBidW5kbGUgYXJjaGl2ZSBmcm9tIHRoZSByZWxlYXNlIHBhZ2Ugb24gR2l0SHViLiBGcm9tIHZlcnNpb24gMC40LjEgY29yZGFwdG9yIHJlbGVhc2VzIGFyZSB0YWdnZWQgd2l0aCB0aGUgY29yZGEgcGxhdGZvcm0gdmVyc2lvbiB0aGV5IGFyZSBidWlsdCB1bmRlci4gRm9yIGV4LCB0aGUgY3VycmVudCAwLjQuMSB2ZXJzaW9uIGlzIHRhZ2dlZCBhcyBgMC40LjEtY29yZGE0LjdgLiBBbGwgQ29kYXB0b3IgbW9kdWxlcyBhcmUgClthdmFpbGFibGUgaW4gTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL3NlYXJjaD9xPWc6dGVjaC5iMTgwLmNvcmRhcHRvciUyMEFORCUyMHY6MC40LjEtY29yZGE0LjcpLgpFbWJlZGRlZCBDb3JEYXBwIGJ1bmRsZSBjYW4gYmUgYWRkZWQgdXNpbmcgY29vcmRpbmF0ZXMgYHRlY2guYjE4MC5jb3JkYXB0b3I6Y29yZGFwdG9yLWJ1bmRsZS1yZXN0LWVtYmVkZGVkOjAuNC4xLWNvcmRhNC43YCAoCnNlZSBbZ2V0dGluZyBzdGFydGVkIGd1aWRlXSguL2RvY3MvZ2V0dGluZy1zdGFydGVkLm1kKSkKCkJyYW5jaCBbMC4xLnhdKGh0dHBzOi8vZ2l0aHViLmNvbS9iMTgwdGVjaC9jb3JkYXB0b3IvdHJlZS8wLjEueCkgd2FzIGNyZWF0ZWQgZm9yIGJ1ZyBmaXhlcywgYW5kIHN1YnNlcXVlbnQKcmVsZWFzZXMgb2YgdGhlIDAueC54IGFyZSBnb2luZyB0byBiZSBidWdmaXggb25seS4gU25hcHNob3QgdmVyc2lvbnMgb2YgYWxsIGFydGlmYWN0cyAoYDAuNC4xLWNvcmRhNC43LVNOQVBTSE9UYCkKYXJlIGF2YWlsYWJsZSBmcm9tIFtPU1MgU29uYXR5cGUgQ29yZGFwdG9yXShodHRwczovL29zcy5zb25hdHlwZS5vcmcvI25leHVzLXNlYXJjaDtnYXZ+dGVjaC5iMTgwLmNvcmRhcHRvcikKTWF2ZW4gcmVwb3NpdG9yeSBpZiB5b3UgZG8gbm90IHdhbnQgdG8gd2FpdCBmb3IgdGhlIHJlbGVhc2UuIFB1Ymxpc2hlZCBzbmFwc2hvdCB2ZXJzaW9ucyBwYXNzIGFsbCBhdXRvbWF0ZWQgdGVzdHMuCgpBbGwgbmV3IGZ1bmN0aW9uYWxpdHkgaXMgZGV2ZWxvcGVkIGluIGBtYXN0ZXJgIGJyYW5jaCwgYW5kIHRoZSBuZXh0IG1ham9yIG1pbGVzdG9uZSByZWxlYXNlIGlzIGdvaW5nIHRvIGJlIDAuNS4wLgpTbmFwc2hvdCB2ZXJzaW9ucyBvZiBhbGwgYXJ0aWZhY3RzIChgMC40LjEtY29yZGE0LjctU05BUFNIT1RgKSBhcmUgYXZhaWxhYmxlIGZyb20KW09TUyBTb25hdHlwZSBDb3JkYXB0b3JdKGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy8jbmV4dXMtc2VhcmNoO2dhdn50ZWNoLmIxODAuY29yZGFwdG9yKQpNYXZlbiByZXBvc2l0b3J5IGlmIHlvdSBkbyBub3Qgd2FudCB0byB3YWl0IGZvciB0aGUgcmVsZWFzZS4gUHVibGlzaGVkIHNuYXBzaG90IHZlcnNpb25zIHBhc3MgYWxsIGF1dG9tYXRlZCB0ZXN0cy4KCiMjIEdldHRpbmcgc3RhcnRlZAoKQ29kYXB0b3IgaXMgZGVzaWduZWQgZnJvbSB0aGUgZ3JvdW5kIHVwIHRvIGJlIHVub2JzdHJ1Y3RlZCwgc28gdGhlcmUgaXMgKipubyBjb2RlIG9yIGNvbmZpZ3VyYXRpb24gcmVxdWlyZWQqKiEKU2ltcGx5IGRvd25sb2FkIHRoZSBlbWJlZGRlZCBDb3JEYXBwIGJ1bmRsZSBKQVIgZmlsZSBmcm9tIHRoZQpbbGF0ZXN0IHJlbGVhc2UgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL2IxODB0ZWNoL2NvcmRhcHRvci9yZWxlYXNlcykgYW5kIGRyb3AgaXQgaW50byBgY29yZGFwcHNgIApkaXJlY3Rvcnkgb2YgeW91ciBDb3JkYSBub2RlLiBSZXN0YXJ0IHRoZSBub2RlIGFuZCBmaXJlIHVwIHlvdXIgYnJvd3NlciB0byBhY2Nlc3MgdGhlIFN3YWdnZXIgVUkuCgpSZWFkIG1vcmUgaW4gW0dldHRpbmcgc3RhcnRlZF0oLi9kb2NzL2dldHRpbmctc3RhcnRlZC5tZCkgZ3VpZGUgYWJvdXQgb3RoZXIgd2F5cyB0byBnZXQgaW1tZWRpYXRlbHkKcHJvZHVjdGl2ZSB3aXRoIENvZGFwdG9yLgoKIyMgTmV4dCBzdGVwcwoKKiBMZWFybiBob3cgdG8gW2dldCBzdGFydGVkXSguL2RvY3MvZ2V0dGluZy1zdGFydGVkLm1kKSB3aXRoIENvZGFwdG9yCiogTGVhcm4gbW9yZSBhYm91dCBbdXNpbmddKC4vZG9jcy9ob3ctdG8tdXNlLm1kKSBDb2RhcHRvcgoqIFJlYWQgYWJvdXQgaG93IENvZGFwdG9yIGZpdHMgaW50byB5b3VyIFthcmNoaXRlY3R1cmVdKC4vZG9jcy9hcmNoaXRlY3R1cmUubWQpCiogVW5kZXJzdGFuZCBob3cgdG8gW2NvbmZpZ3VyZV0oLi9kb2NzL2NvbmZpZ3VyYXRpb24ubWQpIENvZGFwdG9yCiogTGVhcm4gaG93IHRvIFtjcmVhdGUgZXh0ZW5zaW9uc10oLi9kb2NzL2V4dGVuc2lvbnMubWQpIGZvciBDb2RhcHRvcgoqIFN0YXkgdHVuZWQgdG8gdXBkYXRlcyBpbiB0aGUgW2RldmVsb3BtZW50IGJsb2ddKGh0dHBzOi8vbWVkaXVtLmNvbS9iMTgwdGVjaCkKKiBJZiB5b3UgYXJlIGRldmVsb3BpbmcgZm9yIHRoZSBDb2RhcHRvciBbZGV2ZWxvcGVyIGd1aWRlXSguL2RvY3MvZGV2ZWxvcGVyLWd1aWRlLm1kKQoKIyMgR2V0dGluZyBzdXBwb3J0CgpXZSBvZmZlciBjb21tdW5pdHkgc3VwcG9ydCBmb3IgQ29kYXB0b3IgaW4gYCNjb3JkYXB0b3JgIGNoYW5uZWwgb24gW0NvcmRhbGVkZ2VyIFNsYWNrXShodHRwczovL3NsYWNrLmNvcmRhLm5ldC8pLgpUaGUgZGV2ZWxvcG1lbnQgdGVhbSBtZW1iZXJzIGNhbiBvZnRlbiBiZSBzZWVuIGhhbmdpbmcgb3V0IHRoZXJlLgoKSWYgc29tZXRoaW5nIGlzbid0IHdvcmtpbmcsIGZlZWwgZnJlZSB0byBmaWxlIGEgYnVnIHJlcG9ydCB0aHJvdWdoCltHaXRIdWIgSXNzdWVzXShodHRwczovL2dpdGh1Yi5jb20vYjE4MHRlY2gvY29yZGFwdG9yL2lzc3VlcykuIEFsdGhvdWdoLCB3ZSBhc2sgeW91IHRvIHNlYXJjaCBmb3IKcmVsYXRlZCBtZXNzYWdlcyBpbiB0aGUgYWJvdmUgU2xhY2sgY2hhbm5lbCBhbmQgYW1vbmcgZXhpc3RpbmcgcmVwb3J0ZWQgaXNzdWVzIG9uIEdpdEh1YiBmaXJzdAp0byBhdm9pZCBjcmVhdGluZyBkdXBsaWNhdGVzLgoKRm9yIGJlc3Bva2UgZmVhdHVyZSBkZXZlbG9wbWVudCwgY3VzdG9tIGludGVncmF0aW9ucyBhbmQgZXh0ZW5zaW9ucywgb3IgY29tbWVyY2lhbCBzdXBwb3J0IGVucXVpcmllcywgcGxlYXNlIGVtYWlsIAp0byBbbWFuYWdlbWVudEBib25kMTgwLmNvbV0obWFpbHRvOm1hbmFnZW1lbnRAYm9uZDE4MC5jb20/c3ViamVjdD1Db3JkYXB0b3IpLgoKIyMgQ29udHJpYnV0aW5nCgpDb2RhcHRvciBpcyBhbiBvcGVuLXNvdXJjZSBwcm9qZWN0IGFuZCBjb250cmlidXRpb25zIGFyZSB3ZWxjb21lIQoKIyMgTGljZW5zZQoKW0dOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMgb3IgbGF0ZXJdKC4vTElDRU5TRSkKClNQRFg6QUdQTC0zLjAtb3ItbGF0ZXIKCkNvcHlyaWdodCAoQykgMjAyMCBCb25kMTgwIExpbWl0ZWQKCioqSW1wb3J0YW50IG5vdGljZSoqOiBmb3IgdGhlIGF2b2lkYW5jZSBvZiBkb3VidCBpbiB0aGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGxpY2Vuc2UgdGVybXMsCnRoZSBjb3B5cmlnaHQgaG9sZGVycyBjb21taXQgdG8gdHJlYXQgdGhlIGZvbGxvd2luZyB1c2VzIG9mIENvZGFwdG9yIGFzICdhZ2dyZWdhdGUnIGFzIG9wcG9zZWQgdG8gJ21vZGlmaWVkIHZlcnNpb25zJzoKMS4gRGVwbG95aW5nIGVtYmVkZGVkIENvZGFwdG9yIGJ1bmRsZSBKQVIgZmlsZSBpbnRvIGEgQ29yZGEgbm9kZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgZmlsZQpkaXN0cmlidXRlZCBhcyBhIGJpbmFyeSBvciBidWlsdCBmcm9tIHRoZSBzb3VyY2UgY29kZSwgYXMgbG9uZyBhcyB0aGUgc291cmNlIGNvZGUgb2YgYWxsIG1vZHVsZXMgaW4gdGhlIGJ1bmRsZQpyZW1haW5zIHVubW9kaWZpZWQuCjIuIEFubm90YXRpbmcgYXBwbGljYXRpb24gY29kZSB3aXRoIGFubm90YXRpb24gdHlwZXMgcHJvdmlkZWQgYnkgQ29kYXB0b3IgaW4gb3JkZXIgdG8gZmluZS10dW5lIHRoZSBiZWhhdmlvdXIKb2YgQ29kYXB0b3IgY29tcG9uZW50cyBpbnRlcmFjdGluZyB3aXRoIHRoZSBhcHBsaWNhdGlvbiBjb2RlLgozLiBDcmVhdGluZyBleHRlbnNpb25zIGZvciBDb2RhcHRvciB1c2luZyBpdCdzIHB1Ymxpc2hlZCBtaWNyb2tlcm5lbCdzIGFuZCBtb2R1bGVzJyBBUElzLCB3aGVyZSB0aGUKZXh0ZW5zaW9ucycgY29kZSBpcyBhc3NlbWJsZWQgaW50byBzZXBhcmF0ZSBKQVIgZmlsZXMgYW5kIG1hZGUgYXZhaWxhYmxlIGZvciBDb2RhcHRvciBtaWNyb2tlcm5lbAp0byBkeW5hbWljYWxseSBkaXNjb3ZlciBhdCBydW50aW1lLiBGb3IgY2xhcml0eSdzIHNha2UsIGNvZGUgY29uc3RpdHV0aW5nIHB1Ymxpc2hlZCBBUElzIG11c3QgYmUgYXBwcm9wcmlhdGVseQphbm5vdGF0ZWQsIHNlZSBbRXh0ZW5kaW5nIENvcmRhcHRvcl0oLi9kb2NzL2V4dGVuc2lvbnMubWQpIGZvciBmdXJ0aGVyIGRldGFpbHMuCjQuIEluY2x1ZGluZyBDb2RhcHRvciBhcyBhIGNvbXBvbmVudCBvZiBhIGJyb2FkZXIgYXBwbGljYXRpb24gYXJjaGl0ZWN0dXJlIHdoZXJlIG90aGVyIGNvbXBvbmVudHMgaW50ZXJhY3Qgd2l0aCBpdAp1c2luZyBuZXR3b3JrIGNvbW11bmljYXRpb24gcHJvdG9jb2xzIHJlZ2FyZGxlc3Mgb2YgaG93IENvZGFwdG9yIGlzIGRlcGxveWVkIGFuZCBjb25maWd1cmVkLgoKVGhlIGludGVudCBvZiB1c2luZyBBR1BMIGlzIHRvIHByb3RlY3QgdGhlIGludGVyZXN0cyBvZiB0aGUgQ29kYXB0b3IgdXNlciBjb21tdW5pdHkgYW5kIGVuc3VyZSBhbnkgYnVnIGZpeGVzCmFuZCBpbXBvcnRhbnQgbmV3IGZlYXR1cmVzIGRldmVsb3BlZCBieSBzb21lIHVzZXJzIGJlY29tZSBhdmFpbGFibGUgdG8gZXZlcnlvbmUgZWxzZS4gSXQgaXMgbm90IHRoZSBpbnRlbnQgb2YKdXNpbmcgQUdQTCB0byBmb3JjZSBkaXNjbG9zZSBvZiBhbnkgcHJvcHJpZXRhcnkgYXBwbGljYXRpb24gY29kZSByZWx5aW5nIG9uIENvZGFwdG9yLgo= readmeEtag: '"d2e9e89471e0f2d0b4e1e640d59978a8ce286929"' readmeLastModified: Thu, 21 Jul 2022 11:16:00 GMT repositoryId: 311944546 description: >- Instantly add Corda to any tech stack and improve resiliency of your architecture created: '2020-11-11T11:02:29Z' updated: '2022-07-30T16:03:51Z' language: Kotlin archived: false stars: 15 watchers: 4 forks: 5 owner: 180Protocol logo: https://avatars.githubusercontent.com/u/74298369?v=4 license: AGPL-3.0 repoEtag: '"0f14b4c181ca4816e3ddcbdc1593d682088c98141ab06acfef4b20b3d64ec561"' repoLastModified: Sat, 30 Jul 2022 16:03:51 GMT foundInMaster: true category: - Documentation - Server Implementations id: f46a7821f80968f7a52b8d1d69aabac9 - source: openapi3 tags repository: https://github.com/nijens/openapi-bundle v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIGJ1bmRsZQoKWyFbTGF0ZXN0IHZlcnNpb24gb24gUGFja2FnaXN0XVtpY28tdmVyc2lvbl1dW2xpbmstdmVyc2lvbl0KWyFbU29mdHdhcmUgTGljZW5zZV1baWNvLWxpY2Vuc2VdXVtsaW5rLWxpY2Vuc2VdClshW0J1aWxkIFN0YXR1c11baWNvLWJ1aWxkXV1bbGluay1idWlsZF0KWyFbQ29kZSBRdWFsaXR5XVtpY28tY29kZS1xdWFsaXR5XV1bbGluay1jb2RlLXF1YWxpdHldCgpIZWxwcyB5b3UgY3JlYXRlIGEgUkVTVCBBUEkgZnJvbSB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KClRoaXMgYnVuZGxlIHN1cHBvcnRzIGEgZGVzaWduLWZpcnN0IG1ldGhvZG9sb2d5IGZvciBjcmVhdGluZyBhbiBBUEkgd2l0aCBTeW1mb255IGJ5IHByb3ZpZGluZyB0aGUgZm9sbG93aW5nIHRvb2xzOgoKKiBbTG9hZGluZyB0aGUgcGF0aCBpdGVtcyBhbmQgb3BlcmF0aW9ucyBvZiBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gYXMgcm91dGVzXSgjcm91dGluZykKKiBbVmFsaWRhdGlvbiBvZiB0aGUgcmVxdWVzdCB0byB0aG9zZSByb3V0ZXNdKCN2YWxpZGF0aW9uLW9mLXRoZS1yZXF1ZXN0KQoqIFtEZXNlcmlhbGl6YXRpb24gb2YgYSB2YWxpZGF0ZWQgSlNPTiByZXF1ZXN0IGJvZHkgaW50byBhbiBvYmplY3RdKCNkZXNlcmlhbGl6ZS1hLWpzb24tcmVxdWVzdC1ib2R5KQoqIFtPcGVuQVBJLWJhc2VkIHNlcmlhbGl6YXRpb24gY29udGV4dCBmb3IgdGhlIFN5bWZvbnkgU2VyaWFsaXplcl0oI29wZW5hcGktYmFzZWQtc2VyaWFsaXphdGlvbi1jb250ZXh0LWZvci10aGUtc3ltZm9ueS1zZXJpYWxpemVyKQoqIFtFeGNlcHRpb24gaGFuZGxpbmddKCNleGNlcHRpb24taGFuZGxpbmcpCgojIyBJbnN0YWxsYXRpb24KCiMjIyBBcHBsaWNhdGlvbnMgdGhhdCB1c2UgU3ltZm9ueSBGbGV4Ck9wZW4gYSBjb21tYW5kIGNvbnNvbGUsIGVudGVyIHlvdXIgcHJvamVjdCBkaXJlY3RvcnkgYW5kIGV4ZWN1dGU6CgpgYGBjb25zb2xlCmNvbXBvc2VyIHJlcXVpcmUgbmlqZW5zL29wZW5hcGktYnVuZGxlCmBgYAoKIyMjIEFwcGxpY2F0aW9ucyB0aGF0IGRvbid0IHVzZSBTeW1mb255IEZsZXgKCiMjIyMgU3RlcCAxOiBEb3dubG9hZCB0aGUgQnVuZGxlCgpPcGVuIGEgY29tbWFuZCBjb25zb2xlLCBlbnRlciB5b3VyIHByb2plY3QgZGlyZWN0b3J5IGFuZCBleGVjdXRlIHRoZQpmb2xsb3dpbmcgY29tbWFuZCB0byBkb3dubG9hZCB0aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uIG9mIHRoaXMgYnVuZGxlOgoKYGBgY29uc29sZQpjb21wb3NlciByZXF1aXJlIG5pamVucy9vcGVuYXBpLWJ1bmRsZQpgYGAKClRoaXMgY29tbWFuZCByZXF1aXJlcyB5b3UgdG8gaGF2ZSBDb21wb3NlciBpbnN0YWxsZWQgZ2xvYmFsbHksIGFzIGV4cGxhaW5lZAppbiB0aGUgW2luc3RhbGxhdGlvbiBjaGFwdGVyXShodHRwczovL2dldGNvbXBvc2VyLm9yZy9kb2MvMDAtaW50cm8ubWQpCm9mIHRoZSBDb21wb3NlciBkb2N1bWVudGF0aW9uLgoKIyMjIyBTdGVwIDI6IEVuYWJsZSB0aGUgQnVuZGxlCgpUaGVuLCBlbmFibGUgdGhlIGJ1bmRsZSBieSBhZGRpbmcgaXQgdG8gdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCBidW5kbGVzCmluIHRoZSBgc3JjL0tlcm5lbC5waHBgIGZpbGUgb2YgeW91ciBwcm9qZWN0OgoKYGBgcGhwCjw/cGhwCi8vIHNyYy9LZXJuZWwucGhwCgovLyAuLi4KY2xhc3MgS2VybmVsIGV4dGVuZHMgQmFzZUtlcm5lbAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXJCdW5kbGVzKCk6IGl0ZXJhYmxlCiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgLy8gLi4uCiAgICAgICAgICAgIG5ldyBOaWplbnNcT3BlbmFwaUJ1bmRsZVxOaWplbnNPcGVuYXBpQnVuZGxlKCksCiAgICAgICAgXTsKICAgIH0KCiAgICAvLyAuLi4KfQpgYGAKCiMjIFVzYWdlCkJlZm9yZSBzdGFydGluZyB3aXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYnVuZGxlLCB5b3Ugc2hvdWxkIHRha2UgdGhlIHRpbWUgdG8gZGVzaWduIHlvdXIgQVBJIGFjY29yZGluZwp0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgoKVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgY2FuIGhlbHAgeW91IHdpdGggZGVzaWduaW5nIHRoZSBzcGVjaWZpY2F0aW9uOgoqIFtPcGVuQVBJIHNwZWNpZmljYXRpb24gdmVyc2lvbiAzXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbikKKiBbU3dhZ2dlciBzcGVjaWZpY2F0aW9uIGVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pbykKCiMjIyBSb3V0aW5nClRoaXMgYnVuZGxlIHByb3ZpZGVzIGEgcm91dGUgbG9hZGVyIHRoYXQgbG9hZHMgW3BhdGggaXRlbXNdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNwYXRoSXRlbU9iamVjdCkKYW5kIFtvcGVyYXRpb25zXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jb3BlcmF0aW9uT2JqZWN0KSBmcm9tIHlvdXIgT3BlbkFQSSBkb2N1bWVudC4KCllvdSBsb2FkIHlvdXIgT3BlbkFQSSBkb2N1bWVudCBieSBjb25maWd1cmluZyBpdCBpbiB0aGUgcm91dGluZyBvZiB5b3VyIGFwcGxpY2F0aW9uOgoKYGBgeWFtbAojIGFwcC9jb25maWcvcm91dGVzLnltbAoKYXBpOgogICAgcHJlZml4OiAvYXBpCiAgICByZXNvdXJjZTogLi4vb3BlbmFwaS55YW1sICMgb3IgLi4vb3BlbmFwaS5qc29uCiAgICB0eXBlOiBvcGVuYXBpCiAgICBuYW1lX3ByZWZpeDogImFwaV8iCmBgYAoKV2l0aGluIHRoZSBPcGVuQVBJIGRvY3VtZW50IHdlIHdpbGwgdXNlIHRoZSBgeC1vcGVuYXBpLWJ1bmRsZWAgc3BlY2lmaWNhdGlvbiBleHRlbnNpb24gdG8gYWRkIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbgp0byB0aGUgb3BlcmF0aW9ucyBkZWZpbmVkIGluIHRoZSBkb2N1bWVudC4KCiMjIyMgQ29uZmlndXJpbmcgYSBjb250cm9sbGVyIGZvciBhIHJvdXRlCkEgU3ltZm9ueSBjb250cm9sbGVyIGZvciBhIHJvdXRlIGlzIGNvbmZpZ3VyZWQgYnkgYWRkaW5nIHRoZSBgY29udHJvbGxlcmAgcHJvcGVydHkgdG8gdGhlIGB4LW9wZW5hcGktYnVuZGxlYApzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbiB3aXRoaW4gYW4gb3BlcmF0aW9uIHdpdGhpbiB5b3VyIE9wZW5BUEkgZG9jdW1lbnQuCgpgYGB5YW1sCnBhdGhzOgogIC9wZXRzL3t1dWlkfToKICAgIHB1dDoKICAgICAgeC1vcGVuYXBpLWJ1bmRsZToKICAgICAgICBjb250cm9sbGVyOiAnTmlqZW5zXE9wZW5hcGlCdW5kbGVcQ29udHJvbGxlclxQZXRDb250cm9sbGVyOjpwdXQnCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BldCcKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246ICdSZXR1cm5zIHRoZSBzdG9yZWQgcGV0LicKYGBgCgo8ZGV0YWlscz4KPHN1bW1hcnk+RXhhbXBsZSBvZiBhbiBPcGVuQVBJIGRvY3VtZW50IGluIEpTT04gZm9ybWF0PC9zdW1tYXJ5PgoKYGBganNvbgp7CiAgInBhdGhzIjogewogICAgIi9wZXRzL3t1dWlkfSI6IHsKICAgICAgInB1dCI6IHsKICAgICAgICAieC1vcGVuYXBpLWJ1bmRsZSI6IHsKICAgICAgICAgICJjb250cm9sbGVyIjogIk5pamVuc1xcT3BlbmFwaUJ1bmRsZVxcQ29udHJvbGxlclxcUGV0Q29udHJvbGxlcjo6cHV0IgogICAgICAgIH0sCiAgICAgICAgInJlcXVlc3RCb2R5IjogewogICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXQiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHN0b3JlZCBwZXQuIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQpgYGAKCjwvZGV0YWlscz4KClRoZSB2YWx1ZSBvZiB0aGUgYGNvbnRyb2xsZXJgIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFzIHlvdSB3b3VsZCBub3JtYWxseSBhZGQgdG8gYSBbU3ltZm9ueSByb3V0ZV0oaHR0cHM6Ly9zeW1mb255LmNvbS9kb2MvY3VycmVudC9yb3V0aW5nLmh0bWwjY3JlYXRpbmctcm91dGVzKS4KCiMjIyMgVXNpbmcgdGhlIG9wZXJhdGlvbklkIG9mIGFuIG9wZXJhdGlvbiBhcyB0aGUgbmFtZSBvZiB0aGUgU3ltZm9ueSByb3V0ZQpXaXRoaW4gYW4gT3BlbkFQSSBkb2N1bWVudCwgeW91IGNhbiBnaXZlIGVhY2ggb3BlcmF0aW9uIGFuCltvcGVyYXRpb25JZF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvbGF0ZXN0Lmh0bWwjZml4ZWQtZmllbGRzLTcpIHRvIGJldHRlciBpZGVudGlmeSBpdC4KVG8gdXNlIHRoZSBgb3BlcmF0aW9uSWRgIGFzIHRoZSBuYW1lIGZvciBhIGxvYWRlZCBTeW1mb255IHJvdXRlLCBhZGQgdGhlIGZvbGxvd2luZyBidW5kbGUgY29uZmlndXJhdGlvbjoKCmBgYHlhbWwKIyBjb25maWcvcGFja2FnZXMvbmlqZW5zX29wZW5hcGkueWFtbApuaWplbnNfb3BlbmFwaToKICAgIHJvdXRpbmc6CiAgICAgICAgb3BlcmF0aW9uX2lkX2FzX3JvdXRlX25hbWU6IHRydWUKYGBgCgpVc2luZyB0aGUgYG9wZXJhdGlvbklkYCBmb3IgeW91ciByb3V0ZXMgZ2l2ZXMgeW91IG1vcmUgY29udHJvbCBvdmVyIHRoZSBBUEkgcm91dGUgbmFtZXMgYW5kIGFsbG93cyB5b3UgdG8gYmV0dGVyIHVzZQp0aGVtIHdpdGggYSBgVXJsR2VuZXJhdG9yYC4KCiMjIyBWYWxpZGF0aW9uIG9mIHRoZSByZXF1ZXN0CkJ5IGRlZmF1bHQsIHRoZSBbZGVwcmVjYXRlZCB2YWxpZGF0aW9uIGNvbXBvbmVudF0oZG9jcy92YWxpZGF0aW9uL2RlcHJlY2F0ZWQtdmFsaWRhdGlvbi1jb21wb25lbnQubWQpIGlzIGVuYWJsZWQuClRvIGVuYWJsZSB0aGUgaW1wcm92ZWQgdmFsaWRhdGlvbiBjb21wb25lbnQsIGFkZCB0aGUgZm9sbG93aW5nIFlBTUwgY29uZmlndXJhdGlvbi4KCmBgYHlhbWwKIyBjb25maWcvcGFja2FnZXMvbmlqZW5zX29wZW5hcGkueWFtbApuaWplbnNfb3BlbmFwaToKICAgIGV4Y2VwdGlvbl9oYW5kbGluZzoKICAgICAgICBlbmFibGVkOiB0cnVlCgogICAgdmFsaWRhdGlvbjoKICAgICAgICBlbmFibGVkOiB0cnVlCmBgYAoKSXQgaXMgc3Ryb25nbHkgYWR2aXNlZCB0byBhbHNvIGVuYWJsZSB0aGUgaW1wcm92ZWQgZXhjZXB0aW9uIGhhbmRsaW5nIGNvbXBvbmVudCwgYXMgaXQgd2lsbCBjb252ZXJ0IHRoZSBkZXRhaWxzIG9mCnRoZSB2YWxpZGF0aW9uIGV4Y2VwdGlvbnMgaW50byBwcm9wZXIgSlNPTiByZXNwb25zZXMuCgpUaGUgdmFsaWRhdGlvbiBjb21wb25lbnQgY29tZXMgd2l0aCB2YWxpZGF0aW9uIGZvciB0aGUgZm9sbG93aW5nIHBhcnRzIG9mIGEgcmVxdWVzdDoKCiogKipDb250ZW50LXR5cGUqKjogQmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgY29udGVudCB0eXBlcyBjb25maWd1cmVkIGluIHRoZSBgcmVxdWVzdEJvZHlgIHByb3BlcnR5IG9mIGFuIG9wZXJhdGlvbgoqICoqUXVlcnkgcGFyYW1ldGVycyoqOiBWYWxpZGF0ZXMgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgY29uZmlndXJlZCBvZiB0aGUgb3BlcmF0aW9uIGFuZCBwYXRoIGl0ZW0uCiAgKk5vdGUgdGhhdCB0aGlzIHR5cGUgb2YgdmFsaWRhdGlvbiBpcyBleHBlcmltZW50YWwgYXMgaXQgbWlnaHQgYmUgbWlzc2luZyB2YWxpZGF0aW9uIG9mIGNlcnRhaW4gcXVlcnkgcGFyYW1ldGVyIHR5cGVzLioKKiAqKkpTT04gcmVxdWVzdCBib2R5Kio6IEJhc2VkIG9uIHRoZSBKU09OIHNjaGVtYSBpbiB0aGUgYHJlcXVlc3RCb2R5YCBwcm9wZXJ0eSBvZiBhbiBvcGVyYXRpb24KCiMjIyMgTGVhcm4gbW9yZQoKKiBbQWN0aXZhdGUgcXVlcnkgcGFyYW1ldGVyIHJlcXVlc3QgdmFsaWRhdGlvbl0oZG9jcy92YWxpZGF0aW9uL2FjdGl2YXRlLXF1ZXJ5LXBhcmFtZXRlci1yZXF1ZXN0LXZhbGlkYXRpb24ubWQpCiogW0NyZWF0ZSB5b3VyIGN1c3RvbSByZXF1ZXN0IHZhbGlkYXRvcl0oZG9jcy92YWxpZGF0aW9uL2NyZWF0ZS15b3VyLWN1c3RvbS1yZXF1ZXN0LXZhbGlkYXRvci5tZCkKKiBDb250ZW50LXR5cGUgdmFsaWRhdGlvbiBleHBsYWluZWQgKGNvbWluZyBzb29u4oSiKQoqIEpTT04gcmVxdWVzdCBib2R5IHZhbGlkYXRpb24gZXhwbGFpbmVkIChjb21pbmcgc29vbuKEoikKKiBRdWVyeSBwYXJhbWV0ZXIgdmFsaWRhdGlvbiBleHBsYWluZWQgKGNvbWluZyBzb29u4oSiKQoKIyMjIERlc2VyaWFsaXplIGEgSlNPTiByZXF1ZXN0IGJvZHkKCkFkZGluZyB0aGUgYGRlc2VyaWFsaXphdGlvbk9iamVjdGAgcHJvcGVydHkgdG8gdGhlIGB4LW9wZW5hcGktYnVuZGxlYCBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbiBvZiBhbiBvcGVyYXRpb24gYWN0aXZhdGVzCnRoZSByZXF1ZXN0IGJvZHkgZGVzZXJpYWxpemF0aW9uLgoKV2hlbiB0aGUgcmVxdWVzdCBib2R5IGlzIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgSlNPTiBzY2hlbWEgd2l0aGluIHlvdXIgT3BlbkFQSSBkb2N1bWVudCwKaXQgd2lsbCBkZXNlcmlhbGl6ZSB0aGUgcmVxdWVzdCBib2R5IGludG8gdGhlIGNvbmZpZ3VyZWQgZGVzZXJpYWxpemF0aW9uIG9iamVjdC4KClRoZSBkZXNlcmlhbGl6ZWQgb2JqZWN0IGlzIGluamVjdGVkIGludG8gdGhlIGNvbnRyb2xsZXIgYmFzZWQgb246CgoxLiBUaGUgdHlwZSBoaW50IG9mIHRoZSBhcmd1bWVudCBpbiB0aGUgY29udHJvbGxlciBtZXRob2QuCgoyLiBUaGUgYCNbRGVzZXJpYWxpemVkT2JqZWN0XWAgcGFyYW1ldGVyIGF0dHJpYnV0ZS4gKHN1cHBvcnRlZCBzaW5jZSBQSFAgOC4wKQoKICAgVGhpcyBtZXRob2QgaXMgdGhlIHJlY29tbWVuZGVkIHdheSwgYXMgaXQgc3VwcG9ydHMgYXJndW1lbnQgcmVzb2x2aW5nIGZvciBib3RoIGFycmF5IGRlc2VyaWFsaXphdGlvbgogICBhbmQgbWl4ZWQgYXJndW1lbnQgdHlwZXMuCgozLiBUaGUgYGRlc2VyaWFsaXphdGlvbk9iamVjdEFyZ3VtZW50TmFtZWAgcHJvcGVydHkgdGhhdCBjYW4gYmUgYWRkZWQgdG8gdGhlIGB4LW9wZW5hcGktYnVuZGxlYAogICBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbi4KCiMjIyMgTGVhcm4gbW9yZQoKKiBbSG93IHRvIHVzZSBhIHNpbmdsZSBjb250cm9sbGVyIHdpdGggdGhlIFN5bWZvbnkgTWVzc2VuZ2VyIGNvbXBvbmVudF0oZG9jcy9kZXNlcmlhbGl6YXRpb24vaG93LXRvLXVzZS1hLXNpbmdsZS1jb250cm9sbGVyLXdpdGgtdGhlLXN5bWZvbnktbWVzc2VuZ2VyLWNvbXBvbmVudC5tZCkKCiMjIyBPcGVuQVBJLWJhc2VkIHNlcmlhbGl6YXRpb24gY29udGV4dCBmb3IgdGhlIFN5bWZvbnkgU2VyaWFsaXplcgrimqAgXyoqUGxlYXNlIG5vdGU6KiogVGhpcyBmZWF0dXJlIGlzIHN0aWxsIGV4cGVyaW1lbnRhbC4gVGhlIEFQSSBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgbWlub3IgdmVyc2lvbi5fCgpUaGUgYFNlcmlhbGl6YXRpb25Db250ZXh0QnVpbGRlcmAgaGVscHMgeW91IHdpdGggY3JlYXRpbmcgYSBzZXJpYWxpemF0aW9uIGNvbnRleHQgZm9yIHRoZSBTeW1mb255IFNlcmlhbGl6ZXIuCkl0IGFsbG93cyB5b3UgdG8gZWFzaWx5IGNyZWF0ZSBhIEpTT04gcmVzcG9uc2UgZnJvbSBhbiBvYmplY3Qgb3IgZW50aXR5IGJhc2VkIG9uIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgoKVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byB1c2UgdGhlIHNlcmlhbGl6YXRpb24gY29udGV4dCBidWlsZGVyIGJ5IGxldmVyYWdpbmcgdGhlIHJlcXVlc3QgYXR0cmlidXRlcyBhZGRlZApieSB0aGUgcm91dGluZy4KCmBgYHBocAo8P3BocAoKdXNlIE5pamVuc1xPcGVuYXBpQnVuZGxlXFJvdXRpbmdcUm91dGVDb250ZXh0Owp1c2UgTmlqZW5zXE9wZW5hcGlCdW5kbGVcU2VyaWFsaXphdGlvblxTZXJpYWxpemF0aW9uQ29udGV4dEJ1aWxkZXJJbnRlcmZhY2U7CnVzZSBTeW1mb255XENvbXBvbmVudFxIdHRwRm91bmRhdGlvblxKc29uUmVzcG9uc2U7CnVzZSBTeW1mb255XENvbXBvbmVudFxIdHRwRm91bmRhdGlvblxSZXF1ZXN0Owp1c2UgU3ltZm9ueVxDb21wb25lbnRcU2VyaWFsaXplclxTZXJpYWxpemVySW50ZXJmYWNlOwoKY2xhc3MgRXhhbXBsZUNvbnRyb2xsZXIKewogICAgcHVibGljIGZ1bmN0aW9uIF9faW52b2tlKAogICAgICAgIFJlcXVlc3QgJHJlcXVlc3QsCiAgICAgICAgU2VyaWFsaXplckludGVyZmFjZSAkc2VyaWFsaXplciwKICAgICAgICBTZXJpYWxpemF0aW9uQ29udGV4dEJ1aWxkZXJJbnRlcmZhY2UgJHNlcmlhbGl6YXRpb25Db250ZXh0QnVpbGRlcgogICAgKTogSnNvblJlc3BvbnNlIHsKICAgICAgICAkcGV0ID0gbmV3IFBldCgpOwoKICAgICAgICAkc2VyaWFsaXphdGlvbkNvbnRleHQgPSAkc2VyaWFsaXphdGlvbkNvbnRleHRCdWlsZGVyLT5nZXRDb250ZXh0Rm9yU2NoZW1hT2JqZWN0KAogICAgICAgICAgICAnUGV0JywKICAgICAgICAgICAgJHJlcXVlc3QtPmF0dHJpYnV0ZXMtPmdldChSb3V0ZUNvbnRleHQ6OlJFUVVFU1RfQVRUUklCVVRFKVtSb3V0ZUNvbnRleHQ6OlJFU09VUkNFXQogICAgICAgICk7CgogICAgICAgIHJldHVybiBKc29uUmVzcG9uc2U6OmZyb21Kc29uU3RyaW5nKAogICAgICAgICAgICAkc2VyaWFsaXplci0+c2VyaWFsaXplKCRwZXQsICdqc29uJywgJHNlcmlhbGl6YXRpb25Db250ZXh0KQogICAgICAgICk7CiAgICB9Cn0KYGBgCgojIyMgRXhjZXB0aW9uIGhhbmRsaW5nCkJ5IGRlZmF1bHQsIHRoZSBbcHJldmlvdXMgZXhjZXB0aW9uIGhhbmRsaW5nIGNvbXBvbmVudF0oZG9jcy9wcmV2aW91cy1leGNlcHRpb24taGFuZGxpbmcubWQpIGlzIGVuYWJsZWQuClRvIGVuYWJsZSB0aGUgbmV3IGV4Y2VwdGlvbiBoYW5kbGluZyBjb21wb25lbnQsIGFkZCB0aGUgZm9sbG93aW5nIFlBTUwgY29uZmlndXJhdGlvbi4KCmBgYHlhbWwKIyBjb25maWcvcGFja2FnZXMvbmlqZW5zX29wZW5hcGkueWFtbApuaWplbnNfb3BlbmFwaToKICAgIGV4Y2VwdGlvbl9oYW5kbGluZzoKICAgICAgICBlbmFibGVkOiB0cnVlCmBgYAoKVGhlIG5ldyBleGNlcHRpb24gaGFuZGxpbmcgY29tcG9uZW50IHVzZXMgdGhlIFtQcm9ibGVtIERldGFpbHMgSlNPTiBPYmplY3RdKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzgwNyNzZWN0aW9uLTMpCmZvcm1hdCB0byB0dXJuIGFuIGV4Y2VwdGlvbiAob3IgYFRocm93YWJsZWApIGludG8gYSBjbGVhciBlcnJvciByZXNwb25zZS4KCklmIHlvdSB3YW50IHRvIGltcGxlbWVudCB5b3VyIG93biBleGNlcHRpb24gaGFuZGxpbmc/IENoYW5nZSBgZW5hYmxlZGAgdG8gYGZhbHNlYC4gSXQgd2lsbCBkaXNhYmxlIHRoZQpleGNlcHRpb24gaGFuZGxpbmcgY29tcG9uZW50IG9mIHRoZSBidW5kbGUuCgojIyMjIEN1c3RvbWl6aW5nIHRoZSBQcm9ibGVtIERldGFpbHMgSlNPTiBPYmplY3QgcmVzcG9uc2Ugb2YgYW4gZXhjZXB0aW9uClRocm91Z2ggdGhlIGV4Y2VwdGlvbiBoYW5kbGluZyBjb25maWd1cmF0aW9uIG9mIHRoZSBidW5kbGUsIHlvdSBjYW4gbW9kaWZ5IHRoZSByZXNwb25zZSBzdGF0dXMgY29kZSBhbmQKcHJvYmxlbSBKU09OIHJlc3BvbnNlIGJvZHkgb2YgYW55IGBUaHJvd2FibGVgLiBTZWUgdGhlIGZvbGxvd2luZyBleGFtcGxlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKYGBgeWFtbAojIGNvbmZpZy9wYWNrYWdlcy9uaWplbnNfb3BlbmFwaS55YW1sCm5pamVuc19vcGVuYXBpOgogICAgZXhjZXB0aW9uX2hhbmRsaW5nOgogICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICBleGNlcHRpb25zOgogICAgICAgICAgICBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb246ICAgICAgICAgICAgICAgIyBUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzbmFtZSBvZiB0aGUgZXhjZXB0aW9uLgogICAgICAgICAgICAgICAgc3RhdHVzX2NvZGU6IDQwMCAgICAgICAgICAgICAgICAgICAgIyBNb2RpZnkgdGhlIHJlc3BvbnNlIHN0YXR1cyBjb2RlIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBleGNlcHRpb24gcmVzcG9uc2UuCgogICAgICAgICAgICAgICAgdHlwZV91cmk6IGh0dHBzOi8vZXhhbXBsZS5jb20vZXJyb3IgIyBBZGQgYSB1bmlxdWUgdHlwZSBVUkkgdG8gdGhlIFByb2JsZW0gRGV0YWlscy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBjb3VsZCBiZSBhIFVSTCB0byBhZGRpdGlvbmFsIGRvY3VtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWJvdXQgdGhlIGVycm9yLgoKICAgICAgICAgICAgICAgIHRpdGxlOiBUaGUgcmVxdWVzdCB3YXMgaW52YWxpZC4gICAgICMgQWRkIGEgY2xlYXIgaHVtYW4tcmVhZGFibGUgdGl0bGUgcHJvcGVydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdG8gdGhlIFByb2JsZW0gRGV0YWlscy4KCiAgICAgICAgICAgICAgICBhZGRfaW5zdGFuY2VfdXJpOiB0cnVlICAgICAgICAgICAgICAjIEFkZCB0aGUgY3VycmVudCByb3V0ZSBhcyBpbnN0YW5jZV91cmkgcHJvcGVydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdG8gdGhlIFByb2JsZW0gRGV0YWlscy4KYGBgCgpUbyBoZWxwIHlvdSBpbmNsdWRlIHRoZSBQcm9ibGVtIERldGFpbHMgSlNPTiBvYmplY3QgaW4geW91ciBPcGVuQVBJIGRvY3VtZW50LCB3ZSBwcm92aWRlIGFuCltPcGVuQVBJIHRlbXBsYXRlXShzcmMvUmVzb3VyY2VzL3NwZWNpZmljYXRpb25zL29wZW5hcGlfcHJvYmxlbWRldGFpbHMueWFtbCkgd2l0aCBzY2hlbWFzCmZvciB0aGUgc3BlY2lmaWMgUHJvYmxlbSBEZXRhaWxzIEpTT04gb2JqZWN0cyB0aGlzIGJ1bmRsZSBjcmVhdGVzLgoKIyMgQ3JlZGl0cyBhbmQgYWNrbm93bGVkZ2VtZW50cwoKKiBBdXRob3I6IFtOaWVscyBOaWplbnNdW2xpbmstYXV0aG9yXQoKQWxzbywgc2VlIHRoZSBsaXN0IG9mIFtjb250cmlidXRvcnNdW2xpbmstY29udHJpYnV0b3JzXSB3aG8gcGFydGljaXBhdGVkIGluIHRoaXMgcHJvamVjdC4KCiMjIExpY2Vuc2UKVGhlIE9wZW5BUEkgYnVuZGxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gUGxlYXNlIHNlZSB0aGUgW0xJQ0VOU0UgZmlsZV1bbGluay1saWNlbnNlXSBmb3IgZGV0YWlscy4KCltpY28tdmVyc2lvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3YvbmlqZW5zL29wZW5hcGktYnVuZGxlLnN2ZwpbaWNvLXByZS1yZWxlYXNlLXZlcnNpb25dOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC92cHJlL25pamVucy9vcGVuYXBpLWJ1bmRsZS5zdmcKW2ljby1saWNlbnNlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1icmlnaHRncmVlbi5zdmcKW2ljby1idWlsZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9uaWplbnMvb3BlbmFwaS1idW5kbGUvYWN0aW9ucy93b3JrZmxvd3MvY29udGludW91cy1pbnRlZ3JhdGlvbi55YW1sL2JhZGdlLnN2ZwpbaWNvLWNvZGUtcXVhbGl0eV06IGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvbmlqZW5zL29wZW5hcGktYnVuZGxlL2JhZGdlcy9xdWFsaXR5LXNjb3JlLnBuZz9iPW1haW4KCltsaW5rLXZlcnNpb25dOiBodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvbmlqZW5zL29wZW5hcGktYnVuZGxlCltsaW5rLWxpY2Vuc2VdOiBMSUNFTlNFCltsaW5rLWJ1aWxkXTogaHR0cHM6Ly9naXRodWIuY29tL25pamVucy9vcGVuYXBpLWJ1bmRsZS9hY3Rpb25zL3dvcmtmbG93cy9jb250aW51b3VzLWludGVncmF0aW9uLnlhbWwKW2xpbmstY292ZXJhZ2VdOiBodHRwczovL2NvdmVyYWxscy5pby9yL25pamVucy9vcGVuYXBpLWJ1bmRsZT9icmFuY2g9bWFzdGVyCltsaW5rLWNvZGUtcXVhbGl0eV06IGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvbmlqZW5zL29wZW5hcGktYnVuZGxlLz9icmFuY2g9bWFzdGVyCltsaW5rLWF1dGhvcl06IGh0dHBzOi8vZ2l0aHViLmNvbS9uaWVscy1uaWplbnMKW2xpbmstY29udHJpYnV0b3JzXTogaHR0cHM6Ly9naXRodWIuY29tL25pamVucy9vcGVuYXBpLWJ1bmRsZS9jb250cmlidXRvcnMK readmeEtag: '"5b8d3a9794523acde50cfa484177df781071a6a3"' readmeLastModified: Wed, 15 May 2024 14:57:05 GMT repositoryId: 134330854 description: Helps you create a REST API from your OpenAPI specification. created: '2018-05-21T22:16:39Z' updated: '2024-05-15T14:57:10Z' language: PHP archived: false stars: 15 watchers: 5 forks: 4 owner: nijens logo: https://avatars.githubusercontent.com/u/22254531?v=4 license: MIT repoEtag: '"1fa5cd025e868a93e8d5d04f3fe86452ce0d274ac0c6d87f74f30d41da29afbd"' repoLastModified: Wed, 15 May 2024 14:57:10 GMT foundInMaster: true category: - Data Validators - Parsers id: 2081e3bef767fdcec32955dc3c047f98 - source: openapi3 tags repository: https://github.com/azcodingaccount/igomokugame v3: true id: b51a5e8608a4db43e47c31fe151fe98c repositoryMetadata: base64Readme: >- IyBpR29tb2t1R2FtZQoKPGhyPgoKIyMg5LuL57uN8J+TmAoK4oCLCQlpR29tb2t1R2FtZeaYr+S4gOS4quWfuuS6jioqVnVlMyoq44CBKipTcHJpbmdCb290Myoq77yMKipFbGVtZW50LVBsdXMqKuOAgSoqV2ViU29ja2V0KirjgIEqKlNwcmluZ1Rhc2sqKuOAgSoqRGF0YVYqKuOAgSoq5LqU5a2Q5qOLQUnnrpfms5UqKuetieWunueOsOeahOS4gOasvuWcqOe6v+S6lOWtkOaji+a4uOaIj+OAguaUr+aMgSoq5o6S6KGM5qacKirjgIEqKuWlveWPiyoq44CBKirkurrmnLrlr7nmiJgqKuOAgSoq5Lq65py65LqS5YqoKirjgIEqKuiBlOacuuWvueaImCoq44CBKirmlbDmja7lj6/op4bljJbliIbmnpAqKuetieWKn+iDveOAgumhueebruS9v+eUqOacgOaWsOaKgOacr+W8gOWPke+8jOW8gOWPkei/h+eoi+inhOiMg++8jOmAu+i+keS4peiwqOOAggoKQuermemhueebruS7i+e7jeWcsOWdgO+8miBodHRwczovL2IyMy50di9waDRPejVsCgojIyDlnKjnur/pooTop4jwn5GACgotIOWJjeWPsO+8mmh0dHA6Ly9nYW1lLmJ1Z2Rlc2lnbmVyLmNuCQnotKblj7dgZGVtbzFgOmBkZW1vMWDjgIJgZGVtbzJgOmBkZW1vMmDjgIJgZGVtbzNgOmBkZW1vM2Ag77yM5oKo5Lmf5Y+v5Lul6Ieq6KGM5rOo5YaM6LSm5Y+3Ci0g5ZCO5Y+w77yaaHR0cDovL2dhbWUuYnVnZGVzaWduZXIuY24vYWRtaW4gICAg6LSm5Y+377yaYGFkbWluYCDlr4bnoIHvvJpgYWRtaW5gCgrihLnvuI8g5a+55LqO55So5oi356uv77yM5oKo5Y+v6IO96ZyA6KaBKipDdHJsK+a7mui9rioq5bCG5bGP5bmV57yp5pS+5Yiw5LiA5a6a5bC65a+477yI5LiA6Iis5pivODAl77yJCgrihLnvuI8g56ys5LiA5qyh6K6/6Zeu6K+36ICQ5b+D562J5b6F5rWP6KeI5Zmo5LuO5pyN5Yqh5Zmo5ouJ5Y+W6LWE5rqQCgojIyDms6jmhI/wn5SSCgrnlLHkuo7mnKzpobnnm67kuLvopoHkuLrmvJTnpLrpobnnm67vvIzlpoLpnIDms6jlhozotKblj7fvvIzor7fpgb/lhY3kvb/nlKjkuKrkurrluLjnlKjnlKjmiLflkI3kuI7lr4bnoIHvvIzku6XlhY3lm6DmlbDmja7ms4TpnLLooqvpu5HlrqLojrflj5bov5vooYwqKuaSnuW6k+aUu+WHuyoqCgojIyDku6PnoIHku5PlupPwn4yfCgotIEdpdGVl77yaaHR0cHM6Ly9naXRlZS5jb20vQWxiZXJ0X2hhbi9pLWdvbW9rdS1nYW1lCi0gR2l0SHVi77yaaHR0cHM6Ly9naXRodWIuY29tL0FaQ29kaW5nQWNjb3VudC9pR29tb2t1R2FtZQoKIyMg6aG555uu5Lqu54K58J+SoQoKMS4g5oqA5pyv5paw44CC6YeH55So5pyA5paw54mI5LyB5Lia5Li75rWB5Y2V5L2T5bqU55So5byA5Y+R5oqA5pyv44CCCjIuIOW6lOeUqOaWsOOAguaOoue0okFJ6K+t6Z+z44CB5LqS5Yqo5Lqk5Y+L5LiO5qOL57G75ri45oiP57uT5ZCI55qE5paw5Y+v6IO944CCCjMuIOeul+azleaWsOOAguWunueOsOe7j+WFuOeul+azleW5tuWKoOWFpeWOn+WIm+mDqOWIhuOAggo0LiDmnInlub/luqbjgILlrozmlbRDUlVE44CBQUnnrpfms5XjgIHmlbDmja7lrp7ml7bpgJrkv6HjgIHmlbDmja7lj6/op4bljJblupTnlKjnrYkKCiMjIOmhueebruaKgOacr+W6lOeUqPCfm6DvuI8KCjEuIOacrOmhueebrumHh+eUqGBWdWUzYCtgU3ByaW5nQm9vdDNg5Li65Li76KaB5byA5Y+R5oqA5pyv44CCCgoyLiDkvb/nlKhgU3ByaW5nIFRhc2tg5oqA5pyv5a6e546w5a6a5pe25Lu75YqhLOiHquWKqOWFs+mXreaIv+mXtOOAggoKMy4g5L2/55SoYFdlYlNvY2tldGDmioDmnK/lrp7njrDnlKjmiLfogYrlpKnkuI7ogZTmnLrlr7nmiJjnmoTlrp7njrDjgIIKCjQuIOS9v+eUqGDljZrlvIjmoJFgK2DmnoHlpKfmnoHlsI/mkJzntKJgK2BBbHBoYS1CZXRh5Ymq5p6dYCtg6K+E5Lyw5Ye95pWwYOWunueOsOS6uuacuuWvueaImAoKNS4g5L2/55SoYEVjaGFydHNg5ZKMYERhdGFWaWV3YOWunueOsOaVsOaNruWPr+inhuWMlgoKNi4gYEhUVFDnn63ova7or6Jg5a6e546w5pWw5o2u5Y+v6KeG5YyW5Lit5pWw5o2u55qE5pu05pawCgo3LiDkvb/nlKjliY3nq6/nmoRgRXhjZWxg5YyF5a6e546w5pWw5o2u55qE5a+85YWl5a+85Ye6Cgo4LiDkvb/nlKhgYW5pbWF0ZS5jc3Ng5a6e546w5ri45oiP57uT5p2f5pe25Yqo55S755qE5pKt5pS+Cgo5LiDkvb/nlKhgVFRTYOaKgOacr+WunueOsOaWh+acrOi9rOivremfs+WujOaIkEFJ5LiO55So5oi35LqS5Yqo55qE5Yqf6IO9CgoxMC4g5Z+65LqOYGtuaWZlNGpg6YG15b6qYE9wZW5BUEkzYOazqOino+inhOiMg+iHquWKqOeUn+aIkOaOpeWPo+aWh+ahowoKMTEuIOS9v+eUqGBJUDJSZWdpb25g5a6e546w5qC55o2uSVDojrflj5bnlKjmiLflnLDlnYAKCiMjIOW/q+mAn+W8gOWniyDwn5qACgotICoq5ouJ5Y+W6aG555uuKiogKOaCqOmcgOimgeWFiOWuieijhUdpdCkKCmBgYGJhc2gKIyBHaXRlZQpnaXQgcHVsbCBodHRwczovL2dpdGVlLmNvbS9BbGJlcnRfaGFuL2ktZ29tb2t1LWdhbWUuZ2l0CiMgR2l0SHViCmdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9BWkNvZGluZ0FjY291bnQvaUdvbW9rdUdhbWUKYGBgCgotICoq6L+Q6KGM5YmN56uv6aG555uuKioKCmBgYGJhc2gKY2Qg5YmN56uv6aG555uu55uu5b2VCnBucG0gaQkgICAjIOWuieijheS+nei1lgpwbnBtIGRldiAgICMg6L+Q6KGM56iL5bqPCQpgYGAKCi0gKirov5DooYzmlbDmja7lupPohJrmnKwqKgoKaW5pdC5zcWzmlofku7blnKggIGAvaUdvbW9rdUdhbWUtU2VydmVyL3NyYy9tYWluL3Jlc291cmNlcy9zcWxg55uu5b2V5LiL44CCCgox77ya5Y+z6ZSu5L2/55SoaWRlYei/kOihjAoKMu+8muaJvuWIsOS4gOasvuaVsOaNruW6k+euoeeQhuW3peWFt++8jOWmgk5hdmljYXQg77yMRGF0YUdyaXDnrYnvvIzlr7zlhaVzcWzmlofku7bvvIzov5DooYzjgIIKCjPvvJrkvb/nlKjlkb3ku6TooYzov5DooYwKCmBgYGJhc2gKbXlzcWwgLXUgdXNlcm5hbWUgLXAgPCAuL2luaXQuc3FsCSMgc3Fs5paH5Lu255qE55u45a+55oiW57ud5a+56Lev5b6ECmBgYAoKLSAqKui/kOihjOWQjuerr+mhueebrioqCgox77ya5Y+z6ZSu5L2/55SoaWRlYeaJk+W8gOOAgueCueWHu3J1buWNs+WPr+i/kOihjAoKMu+8muS9v+eUqOWRveS7pOihjOi/kOihjAoKYGBgYmFzaAogY2Qg5YmN56uv6aG555uu55uu5b2VCiBtdm4gY2xlYW4gcGFja2FnZQkjIOaJk+WMhemhueebrgogY2QgdGFyZ2V0IAogamF2YSAtamFyIGphcuWMheWQjSAgIyDov5DooYzpobnnm64KYGBgCgoqKumhueebrumDqOe9sioqCgrpobnnm67pg6jnvbLor7fnp7vmraXljZrlrqLmlofnq6DvvJpbRG9ja2Vy6YOo572ySmF2YemhueebrueahOatpemqpCBdKGh0dHBzOi8vYmxvZy5idWdkZXNpZ25lci5jbi9kb2NrZXLpg6jnvbJqYXZh6aG555uu55qE5q2l6aqkLykKCiMjIOmhueebrumDqOWIhueVjOmdoumihOiniPCfkYHvuI8KCi0g5Li76aG1CgohW2ltYWdlLTIwMjMxMjI2MTYwMDQzODYzXShodHRwczovL215LXBpY3R1cmUtYmVkMS0xMzIxMTAwMjAxLmNvcy5hcC1iZWlqaW5nLm15cWNsb3VkLmNvbS9teXBpY3R1cmVzL2ltYWdlLTIwMjMxMjI2MTYwMDQzODYzLnBuZykKCi0g5Lq65py65a+55oiY6aG1CgohW2ltYWdlLTIwMjMxMjI2MTkxNjA0Mjc2XShodHRwczovL215LXBpY3R1cmUtYmVkMS0xMzIxMTAwMjAxLmNvcy5hcC1iZWlqaW5nLm15cWNsb3VkLmNvbS9teXBpY3R1cmVzL2ltYWdlLTIwMjMxMjI2MTkxNjA0Mjc2LnBuZykKCgoKLSDlkI7lj7DpppbpobUKCiFbaW1hZ2UtMjAyMzEyMjYxNjAzMDA0MTVdKGh0dHBzOi8vbXktcGljdHVyZS1iZWQxLTEzMjExMDAyMDEuY29zLmFwLWJlaWppbmcubXlxY2xvdWQuY29tL215cGljdHVyZXMvaW1hZ2UtMjAyMzEyMjYxNjAzMDA0MTUucG5nKQoKCgotIOWPr+inhuWMluWkp+WxjwoKIVtpbWFnZS0yMDIzMTIyNjE2MDQzNTc1Ml0oaHR0cHM6Ly9teS1waWN0dXJlLWJlZDEtMTMyMTEwMDIwMS5jb3MuYXAtYmVpamluZy5teXFjbG91ZC5jb20vbXlwaWN0dXJlcy9pbWFnZS0yMDIzMTIyNjE2MDQzNTc1Mi5wbmcpCgoKCi0g5rWB6YeP5YiG5p6Q6aG1CgohW2ltYWdlLTIwMjMxMjI2MTYwNTA3MTM0XShodHRwczovL215LXBpY3R1cmUtYmVkMS0xMzIxMTAwMjAxLmNvcy5hcC1iZWlqaW5nLm15cWNsb3VkLmNvbS9teXBpY3R1cmVzL2ltYWdlLTIwMjMxMjI2MTYwNTA3MTM0LnBuZykKCiMjIOm4o+iwovCfjLkKCjEuIFRUU+aWh+acrOi9rOa8lOiusuaKgOacryAKCuKAiwkJQUnlmInnhLbvvJrmqKHlnovkvZzogIXvvJpgWHrkuZTluIxgCgrigIsJCUFJ5LiB55yf77ya6a2U5aGU56S+5Yy66aG555uu5Zyw5Z2A77yaaHR0cHM6Ly9tb2RlbHNjb3BlLmNuL3N0dWRpb3MvTWlEZDFFeWUvRFotQmVydC1WSVRTMi9zdW1tYXJ5CgrigIsJ5LqM6ICF5Z+65LqOQmVydC1WSVRTMuaooeWei++8jEdpdGh1YumhueebruWcsOWdgO+8miAgaHR0cHM6Ly9naXRodWIuY29tL2Zpc2hhdWRpby9CZXJ0LVZJVFMyCgoyLiBEYXRhVuaVsOaNruWPr+inhuWMluaKgOacrwoKICAg5a6Y572R77yaaHR0cDovL2RhdGF2LmppYW1pbmdoaS5jb20vZ3VpZGUvCgozLiBLbmlmZTRqCgrigIsJCUdpdGh1YumhueebruWcsOWdgO+8mmh0dHBzOi8vZ2l0aHViLmNvbS94aWFveW1pbi9rbmlmZTRqCgoyLiBJUDJSZWdpb24KCiAgIEdpdGh1YumhueebruWcsOWdgO+8mmh0dHBzOi8vZ2l0aHViLmNvbS9saW9uc291bDIwMTQvaXAycmVnaW9uCgozLiDkupTlrZDmo4tBSeeul+azleWPguiAg+WNmuWuogoKICAgW+OAkOeul+azleOAkeaegeWkp+aegeWwj86xLc6y5Ymq5p6d566X5rOVIC0g55+l5LmOICh6aGlodS5jb20pXShodHRwczovL3podWFubGFuLnpoaWh1LmNvbS9wLzY1MjE5NDQ2KQoKIyMg5o2Q6LWg8J+NtQoK5aaC5p6c5oKo6K6k5Li66L+Z5Liq6aG555uu5a+55oKo5pyJ5biu5Yqp77yM5Y+v5Lul6YCa6L+H5LiL6Z2i5pa55byP5pSv5oyB5oiRCgotIFN0YXLjgIFGb3Jr44CBV2F0Y2gg5LiA6ZSu5LiJ6L+eIPCfjJ8KLSDpgJrov4flvq7kv6HvvIzmlK/ku5jlrp3or7fmiJHllp3mna/lpbbojLYg4p2kCgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlvq7kv6EgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg5pSv5LuY5a6dICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfAp8IDxpbWcgc3JjPSJodHRwczovL215LXBpY3R1cmUtYmVkMS0xMzIxMTAwMjAxLmNvcy5hcC1iZWlqaW5nLm15cWNsb3VkLmNvbS9teXBpY3R1cmVzL3dlY2hhdC5qcGciIGFsdD0id2VjaGF0IiBzdHlsZT0iem9vbTogMTUlO21hcmdpbjowIGF1dG8iIC8+IHwgPGltZyBzcmM9Imh0dHBzOi8vbXktcGljdHVyZS1iZWQxLTEzMjExMDAyMDEuY29zLmFwLWJlaWppbmcubXlxY2xvdWQuY29tL215cGljdHVyZXMvYWxpcGF5LmpwZyIgYWx0PSJhbGlwYXkiIHN0eWxlPSJ6b29tOjE1JTttYXJnaW46MCBhdXRvIiAvPiB8CgoKCg== readmeEtag: '"ce42366b098d6304b2e5db990453941e7e2dcbcb"' readmeLastModified: Sat, 25 May 2024 14:11:27 GMT repositoryId: 735775072 description: 一个基于vue3、springboot3、websocket、alpha-beta cut的五子棋游戏 created: '2023-12-26T03:35:56Z' updated: '2024-09-05T10:03:17Z' language: Java archived: false stars: 15 watchers: 2 forks: 2 owner: AZCodingAccount logo: https://avatars.githubusercontent.com/u/145426558?v=4 license: MIT repoEtag: '"4d686d9ac1aac582d25491ab2aace13ccaa2230271ef7e1159dae3d6b2cf54f9"' repoLastModified: Thu, 05 Sep 2024 10:03:17 GMT category: Code Generators foundInMaster: true - source: openapi3 tags repository: https://github.com/mermade/openapi-webconverter v3: true repositoryMetadata: base64Readme: >- IyBPbmxpbmUgU3dhZ2dlciAyLjAgdG8gT3BlbkFQSSAzLjAueCBjb252ZXJ0ZXIKCltDb252ZXJ0XShodHRwczovL21lcm1hZGUub3JnLnVrL29wZW5hcGktY29udmVydGVyKSBTd2FnZ2VyIDIuMCBkZWZpbml0aW9ucyBvciBbdmFsaWRhdGVdKGh0dHBzOi8vbWVybWFkZS5vcmcudWsvb3BlbmFwaS1jb252ZXJ0ZXIpIE9wZW5BUEkgMy4wLnggZGVmaW5pdGlvbnMKCkNvbnZlcnNpb25zIGFuZCB2YWxpZGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJ5IFtPQVMtS2l0XShodHRwczovL2dpdGh1Yi5jb20vbWVybWFkZS9vYXMta2l0KQoKWW91IG1heSBhbHNvIHVzZSB0aGUgW0FQSV0oaHR0cHM6Ly9yZWRvY2x5LmdpdGh1Yi5pby9yZWRvYy8/dXJsPWh0dHBzOi8vbWVybWFkZS5vcmcudWsvb3BlbmFwaS1jb252ZXJ0ZXIvY29udHJhY3Qvc3dhZ2dlci5qc29uKSB0byBjb252ZXJ0IFN3YWdnZXIgMi4wIGRlZmluaXRpb25zIG9yIHZhbGlkYXRlIGEgMy4wLnggZGVmaW5pdGlvbgo8cD4KPHVsPgogICA8bGk+PGk+UE9TVDwvaT4gPGI+L2FwaS92MS9jb252ZXJ0PC9iPiAtIHdpdGggYSBzb3VyY2Ugb3IgZmlsZW5hbWUgcGFyYW1ldGVyLCBvcHRpb25hbGx5IHdpdGggdmFsaWRhdGU9b248L2xpPgogICA8bGk+PGk+UE9TVDwvaT4gPGI+L2FwaS92MS92YWxpZGF0ZTwvYj4gLSB3aXRoIGEgc291cmNlIG9yIGZpbGVuYW1lIHBhcmFtZXRlcjwvbGk+CiAgIDxsaT48aT5HRVQ8L2k+IDxhIGhyZWY9Imh0dHBzOi8vbWVybWFkZS5vcmcudWsvb3BlbmFwaS1jb252ZXJ0ZXIvYXBpL3YxL3N0YXR1cyI+L2FwaS92MS9zdGF0dXM8L2E+PC9saT4KICAgPGxpPjxpPkdFVDwvaT4gPGI+L2FwaS92MS9jb252ZXJ0P3VybD0uLi48L2I+IG9wdGlvbmFsbHkgd2l0aCBhIDxiPnZhbGlkYXRlPC9iPiBwYXJhbWV0ZXI8L2xpPgogICA8bGk+PGk+R0VUPC9pPiA8Yj4vYXBpL3YxL3ZhbGlkYXRlP3VybD0uLi48L2I+PC9saT4KICAgPGxpPjxpPkdFVDwvaT4gPGI+L2FwaS92MS9iYWRnZT91cmw9Li4uPC9iPiByZXR1cm5zIGEgcmVkaXJlY3QgdG8gYW4gU1ZHIGJhZGdlPC9saT4KPC91bD4KCg== readmeEtag: '"970c4b85bc245c7750c2a7fbe4768c08a8acfe50"' readmeLastModified: Tue, 04 Apr 2023 05:17:26 GMT repositoryId: 83992765 description: Mermade Swagger 2.0 to OpenAPI 3.0.0 converter front-end created: '2017-03-05T18:33:45Z' updated: '2023-09-20T16:11:59Z' language: JavaScript archived: false stars: 14 watchers: 3 forks: 9 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause repoEtag: '"a3576622f16f13335641cc69b5d1111f99a30e847d8540b463c709a8a01cffde"' repoLastModified: Wed, 20 Sep 2023 16:11:59 GMT foundInMaster: true category: - Converters - Parsers id: 54a547cbd73c5b26b11a1f473a6d1e15 - source: openapi3 tags repository: https://github.com/briankinney/airtable-swagger v3: true repositoryMetadata: base64Readme: >- YWlydGFibGUtc3dhZ2dlcgo9PT0KCkdlbmVyYXRlIE9BUyAzLjAgQVBJIGRlZmluaXRpb24gZnJvbSBBaXJ0YWJsZSBzY2hlbWEgb2JqZWN0CgpCYWNrZ3JvdW5kCi0tLQoKRXZlcnkgQWlydGFibGUgYmFzZSBoYXMgYW4gYXV0by1nZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBwYWdlIHRoYXQgaXMgbGFyZ2VseSBkcml2ZW4gYnkgYW4gb2JqZWN0IHRoYXQgZGVzY3JpYmVzIHRoZQpzY2hlbWEgb2YgdGhlIGJhc2UuIFRoaXMgdXRpbGl0eSB3aWxsIGNvbnZlcnQgdGhlIHNjaGVtYSBvYmplY3QgaW50byBhbiBPQVMgMy4wIChzd2FnZ2VyKSBkb2N1bWVudCBzbyB5b3UgY2FuIHRha2UKYWR2YW50YWdlIG9mIHRvb2xzIHRoYXQgbWFrZSB1c2Ugb2YgdGhpcyBBUEkgZGVmaW5pdGlvbiBmb3JtYXQuCgoKRmlyZWZveCBBZGRvbgotLS0KCiMjIyBTZXR1cAoKW0Rvd25sb2FkIGxpbmtdKGh0dHBzOi8vYWRkb25zLm1vemlsbGEub3JnL2VuLVVTL2ZpcmVmb3gvYWRkb24vYWlydGFibGUtc3dhZ2dlci1nZW5lcmF0b3IvKQoKIyMjIFVzYWdlCgoxLiBPcGVuIHlvdXIgQWlydGFibGUgZG9jdW1lbnRhdGlvbiBwYWdlCjIuIENsaWNrIHRoaXMgaWNvbiBpbiB5b3VyIFVSTCBiYXIgdG8gb3BlbiB0aGUgc2lkZSBwYW5lbAoKICAgICFbVXJsIGJhciBpY29uXShwbHVnaW4vaWNvbnMvaWNvbnM4LXVzZXItbWFudWFsLTQ4LnBuZykKMy4gQ2xpY2sgdGhlIGJ1dHRvbi4gQW4gT0FTIGpzb24gYmxvYiBzaG91bGQgYXBwZWFyIGluIHRoZSB0ZXh0IGFyZWEgYWJvdmUKCkNvbW1hbmQgTGluZSBUb29sCi0tLQoKIyMjIFNldHVwCgpJbnN0YWxsIGZyb20gc291cmNlIHVzaW5nIG5wbQpgYGBiYXNoCnlvdXItY29tcHV0ZXI6L3BhdGgvdG8vYWlydGFibGUtc3dhZ2dlciQgbnBtIGkgLWcgLgpgYGAKCiMjIyBVc2FnZQoKMS4gVmlldyB0aGUgc291cmNlIG9mIHRoZSBBaXJ0YWJsZSBkb2N1bWVudGF0aW9uIHBhZ2UgZ2VuZXJhdGVkIGZvciB5b3VyIGJhc2UKMi4gRmluZCB0aGUgbGluZSBjb250YWluaW5nIGB3aW5kb3cubG9jYXRpb24gPSB7Li4ufWAKMy4gQ29weSB0aGUgdmFsdWUgb2YgYHdpbmRvdy5sb2NhdGlvbmAgdG8gYSBmaWxlCjQuIFJ1biB0aGUgdG9vbDoKICAgIGBgYGJhc2gKICAgIGFpcnRhYmxlLXN3YWdnZXIgL3BhdGgvdG8vYWlydGFibGUtc2NoZW1hLmpzb24KICAgIGBgYAo1LiBVc2UgdGhlIG91dHB1dCB3aXRoIHlvdXIgZmF2b3JpdGUgc3dhZ2dlciB0b29s readmeEtag: '"6cc029e73b65b39ce49fe4b13665497a3f8525d0"' readmeLastModified: Tue, 07 Nov 2023 23:23:33 GMT repositoryId: 183827168 description: Build OAS 3.0 API Definitions from Airtable Schema Object created: '2019-04-27T22:26:25Z' updated: '2023-11-07T23:23:37Z' language: JavaScript archived: false stars: 14 watchers: 2 forks: 2 owner: briankinney logo: https://avatars.githubusercontent.com/u/6935747?v=4 license: ISC repoEtag: '"46471c5b1f01d3be33dc260416f09050f112549c95532d23e4f2bd3e057da1ae"' repoLastModified: Tue, 07 Nov 2023 23:23:37 GMT foundInMaster: true category: Parsers id: 5f05bc19eecf433b1626fbc38eeea108 - source: openapi3 tags repository: https://github.com/env0/serverless-openapi-typescript v3: true repositoryMetadata: base64Readme: >- IyBTZXJ2ZXJsZXNzIE9wZW5BUEkgVHlwZVNjcmlwdCBQbHVnaW4KCkdlbmVyYXRlcyBbKipPcGVuQVBJIDMuMS4wKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvMy4xLjAvdmVyc2lvbnMvMy4xLjAubWQpIGRvY3VtZW50YXRpb24gZnJvbSBzZXJ2ZXJsZXNzIGNvbmZpZ3VyYXRpb24gZmlsZXMgKippbmNsdWRpbmcgZnVsbHkgZ2VuZXJhdGVkIHJlcXVlc3QvcmVzcG9uc2UgbW9kZWxzIGZyb20gVHlwZVNjcmlwdCoqLiAgCgpUaGlzIGlzIGFuIGV4dGVuc2lvbiBwbHVnaW4gdG8gdGhlIG1vc3QgZXhjZWxsZW50IFtAY29ucWEvc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0Bjb25xYS9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbikuICAKClBhcnRpbGx5IHdvcmtzIHdpdGggW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmViaWxseS9SZURvYykgYXMgdGhleSdyZSBzdGlsbCB3b3JraW5nIG9uIE9wZW5BUEkgMy4xLjAgc3VwcG9ydC4gIApXb3JrcyB3ZWxsIHdpdGggW1N0b3BsaWdodC5pb10oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vKSAgICAKCj4gKipXaHkgT3BlbkFQSSAzLjEuMCBhbmQgbm90IDMuMC4wPyoqICAKPiBCZWNhdXNlIHR5cGVzIGdlbmVyYXRlZCBmcm9tIFR5cGVTY3JpcHQgYXJlIGNvbXBsZXggYW5kIHJlcXVpcmUgYXQgbGVhc3QganNvbi1zY2hlbWEgZHJhZnQwNyB0byBiZSBkZXNjcmliZWQgcHJvcGVybHkuICAKPiBPcGVuQVBJIDMuMS4wIGlzIHRoZSBmaXJzdCB2ZXJzaW9uIHRvIGJlIGZ1bGx5IGNvbXBhdGlibGUgd2l0aCBKU09OIFNjaGVtYSAtIDMuMC4wIGlzIGp1c3QgYW4gImV4dGVuZGVkIHN1YnNldCIgb2YgZHJhZnQwNQoKLS0tCgotIFtVc2FnZV0oI3VzYWdlKQogICAgLSBbT3B0aW9uc10oI29wdGlvbnMpCiAgICAtIFtDb25maWd1cmF0aW9uXSgjY29uZmlndXJhdGlvbikKICAgICAgICAtIFtNb2RlbHNdKCNtb2RlbHMpCiAgICAgICAgLSBbRnVuY3Rpb25zXSgjZnVuY3Rpb25zKQogICAgICAgIC0gW2BxdWVyeVBhcmFtc2BdKCNxdWVyeXBhcmFtcykKICAgICAgICAtIFtgcGF0aFBhcmFtc2BdKCNwYXRocGFyYW1zKQogICAgICAgIC0gW2Bjb29raWVQYXJhbXNgXSgjY29va2llcGFyYW1zKQogICAgICAgIC0gW2ByZXF1ZXN0TW9kZWxzYF0oI3JlcXVlc3Rtb2RlbHMpCiAgICAgICAgLSBbYG1ldGhvZFJlc3BvbnNlc2BdKCNtZXRob2RyZXNwb25zZXMtYW5kLXJlc3BvbnNlbW9kZWxzKQogICAgICAgIC0gW2B3ZWJob29rc2BdKCN3ZWJob29rcykKLSBbSW5zdGFsbF0oI2luc3RhbGwpCgotLS0KCiMjIFVzYWdlCgpUaGlzIHBsdWdpbiByZXF1aXJlcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gdG8gdXNlLCBzZWUgdGhlICJbQ29uZmlndXJhdGlvbl0oI2NvbmZpZ3VyYXRpb24pIiBzZWN0aW9uIGZvciBob3cgdG8gY29uZmlndXJlIHRoZSBwbHVnaW4gdG8gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbi4KCkJlbG93IGFyZSB0aGUgY29tbWFuZGxpbmUgb3B0aW9ucyB0byBydW4gdGhlIGdlbmVyYXRvcjoKCmBgYGJhc2gKc2VydmVybGVzcyBvcGVuYXBpIGdlbmVyYXRlIFtvcHRpb25zXQpgYGAKCiMjIyBPcHRpb25zCgpgYGBiYXNoClBsdWdpbjogU2VydmVybGVzc09wZW5BUElEb2N1bWVudGF0aW9uCm9wZW5hcGkgZ2VuZXJhdGUgIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gR2VuZXJhdGUgT3BlbkFQSSB2MyBEb2N1bWVudGF0aW9uCiAgICAtLW91dHB1dCAvIC1vIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gT3V0cHV0IGZpbGUgbG9jYXRpb24gW2RlZmF1bHQ6IG9wZW5hcGkueW1sfGpzb25dCiAgICAtLWZvcm1hdCAvIC1mIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gT3BlbkFQSSBmaWxlIGZvcm1hdCAoeW1sfGpzb24pIFtkZWZhdWx0OiB5bWxdCiAgICAtLWluZGVudCAvIC1pIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gRmlsZSBpbmRlbnRhdGlvbiBpbiBzcGFjZXMgW2RlZmF1bHQ6IDJdCiAgICAtLWhlbHAgLyAtaCAgIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gSGVscApgYGAKCiMjIyBDb25maWd1cmF0aW9uCgpUbyBjb25maWd1cmUgdGhpcyBwbHVnaW4gdG8gZ2VuZXJhdGUgdmFsaWQgT3BlbkFQSSBkb2N1bWVudGF0aW9uIHRoZXJlIGFyZSB0d28gcGxhY2VzIHlvdSdsbCBuZWVkIHRvIG1vZGlmeSBpbiB5b3VyIGBzZXJ2ZXJsZXNzLnltbGAgZmlsZSwgdGhlIGBjdXN0b21gIHZhcmlhYmxlcyBzZWN0aW9uIGFuZCB0aGUgYGh0dHBgIGV2ZW50IHNlY3Rpb24gZm9yIGVhY2ggZ2l2ZW4gZnVuY3Rpb24gaW4geW91ciBzZXJ2aWNlLgoKVGhpcyBwbHVnaW4gaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBzYW1lIGRvY3VtZW50YXRpb24gY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUgaW4gW0Bjb25xYS9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGNvbnFhL3NlcnZlcmxlc3Mtb3BlbmFwaS1kb2N1bWVudGF0aW9uKSBhbmQgbmVlZHMgdG8gYmUgcnVuIGJlc2lkZSBpdC4KClRoZSBgY3VzdG9tYCBzZWN0aW9uIG9mIHlvdXIgYHNlcnZlcmxlc3MueW1sYCBjYW4gYmUgY29uZmlndXJlZCBhcyBiZWxvdzoKCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIHZlcnNpb246ICcxJwogICAgdGl0bGU6ICdNeSBBUEknCiAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgbXkgQVBJJwogICAgIyBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCNzZWN1cml0eVNjaGVtZU9iamVjdAogICAgc2VjdXJpdHlTY2hlbWVzOiB7fQogICAgIyBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCNzZWN1cml0eS1yZXF1aXJlbWVudC1vYmplY3QKICAgIHNlY3VyaXR5OiB7fQogICAgbW9kZWxzOiB7fQogICAgdHlwZXNjcmlwdEFwaVBhdGg6ICdhcGkuZC50cycKICAgIHRzY29uZmlnUGF0aDogJ3RzY29uZmlnLmpzb24nCmBgYAoKVGhlc2UgY29uZmlndXJhdGlvbnMgY2FuIGJlIHF1aXRlIHZlcmJvc2U7IHlvdSBjYW4gc2VwYXJhdGUgaXQgb3V0IGludG8gaXQncyBvd24gZmlsZSwgc3VjaCBhcyBgc2VydmVybGVzcy5kb2MueW1sYCBhcyBiZWxvdzoKCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjogJHtmaWxlKHNlcnZlcmxlc3MuZG9jLnltbCk6ZG9jdW1lbnRhdGlvbn0KCmZ1bmN0aW9uczoKICBteUZ1bmM6CiAgICBldmVudHM6CiAgICAgIC0gaHR0cDoKICAgICAgICAgIHBhdGg6IGdldFN0dWZmCiAgICAgICAgICBtZXRob2Q6IGdldAogICAgICAgICAgZG9jdW1lbnRhdGlvbjogJHtmaWxlKHNlcnZlcmxlc3MuZG9jLnltbCk6ZW5kcG9pbnRzLm15RnVuY30KYGBgCgpGb3IgbW9yZSBpbmZvIG9uIGBzZXJ2ZXJsZXNzLnltbGAgc3ludGF4LCBzZWUgdGhlaXIgZG9jcy4KCiMjIyMgTW9kZWxzCgpUaGVzZSB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgeW91IGZyb20gVHlwZVNjcmlwdC4gIApGb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIHNwZWNpZnkgdGhlc2UgeW91cnNlbGYsIHNlZSBbTW9kZWxzXShodHRwczovL2dpdGh1Yi5jb20vY29ucWEvc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50YXRpb24jbW9kZWxzKSBvbiB0aGUgYmFzZSBwbHVnaW4gcGFnZS4gICAgCgojIyMjIEZ1bmN0aW9ucwoKVG8gZGVmaW5lIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhIGdpdmVuIGZ1bmN0aW9uIGV2ZW50LCB5b3UgbmVlZCB0byBjcmVhdGUgYSBgZG9jdW1lbnRhdGlvbmAgYXR0cmlidXRlIGZvciB5b3VyIGh0dHAgZXZlbnQgaW4geW91ciBgc2VydmVybGVzcy55bWxgIGZpbGUuICAKClRoaXMgcGx1Z2luIHdpbGwgYXNzZXJ0IHRoZSBgZG9jdW1lbnRhdGlvbmAgYXR0cmlidXRlIGlzIHNldCBvbiBldmVyeSBub24gYHByaXZhdGU6IHRydWVgIGZ1bmN0aW9uIHdpdGggYW4gYGh0dHBgIGV2ZW50LiAgCgpJZiB5b3Ugd2lzaCBhIGZ1bmN0aW9uIHRvIG5vdCBiZSBsaXN0ZWQgb24geW91ciBkb2N1bWVudGF0aW9uLCB5b3UgbXVzdCBleHBsaWNpdGx5IHNldCBgZG9jdW1lbnRhdGlvbjogfmAgdG8gZGlzYWJsZSBkb2NzIG9uIHRoYXQgZnVuY3Rpb24uICAgIAoKVGhlIGBkb2N1bWVudGF0aW9uYCBzZWN0aW9uIG9mIHRoZSBldmVudCBjb25maWd1cmF0aW9uIGNhbiBjb250YWluIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKCiogYHN1bW1hcnlgOiBhIHNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBtZXRob2QKKiBgZGVzY3JpcHRpb25gOiBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBtZXRob2QKKiBgdGFnc2A6IGFuIGFycmF5IG9mIHRhZ3MgZm9yIHRoaXMgZXZlbnQKKiBgZGVwcmVjYXRlZGA6IGJvb2xlYW4gaW5kaWNhdG9yIHRoYXQgaW5kaWNhdGVzIGNsaWVudHMgc2hvdWxkIG1pZ3JhdGUgYXdheSBmcm9tIHRoaXMgZnVuY3Rpb24KKiBgcmVxdWVzdEJvZHlgOiBjb250YWlucyBkZXNjcmlwdGlvbiBvZiB0aGUgcmVxdWVzdAogICAgKiBgZGVzY3JpcHRpb25gOiBhIGRlc2NyaXB0aW9uIG9mIHRoZSByZXF1ZXN0IGJvZHkKKiBgcmVxdWVzdE1vZGVsc2A6IGEgbGlzdCBvZiBtb2RlbHMgdG8gZGVzY3JpYmUgdGhlIHJlcXVlc3QgYm9kaWVzIChzZWUgW3JlcXVlc3RNb2RlbHNdKCNyZXF1ZXN0bW9kZWxzKSBiZWxvdykgLSAqKnRoZXNlIHdpbGwgYmUgYXV0b2dlbmVyYXRlZCBmb3IgeW91IGZyb20gVHlwZVNjcmlwdCoqCiogYHF1ZXJ5UGFyYW1zYDogYSBsaXN0IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgKHNlZSBbcXVlcnlQYXJhbXNdKCNxdWVyeXBhcmFtcykgYmVsb3cpIC0gKip0aGVzZSBfY2FuXyBiZSBhdXRvZ2VuZXJhdGVkIGZvciB5b3UgZnJvbSBUeXBlU2NyaXB0KioKKiBgcGF0aFBhcmFtc2A6IGEgbGlzdCBvZiBwYXRoIHBhcmFtZXRlcnMgKHNlZSBbcGF0aFBhcmFtc10oI3BhdGhwYXJhbXMpIGJlbG93KSAtICoqdGhlc2UgX2Nhbl8gYmUgYXV0b2dlbmVyYXRlZCBmb3IgeW91IGZyb20gVHlwZVNjcmlwdCoqCiogYGNvb2tpZVBhcmFtc2A6IGEgbGlzdCBvZiBjb29raWUgcGFyYW1ldGVycyAoc2VlIFtjb29raWVQYXJhbXNdKCNjb29raWVwYXJhbXMpIGJlbG93KQoqIGBtZXRob2RSZXNwb25zZXNgOiBhbiBhcnJheSBvZiByZXNwb25zZSBtb2RlbHMgYW5kIGFwcGxpY2FibGUgc3RhdHVzIGNvZGVzIChzZWUgW21ldGhvZFJlc3BvbnNlc10oI21ldGhvZHJlc3BvbnNlcy1hbmQtcmVzcG9uc2Vtb2RlbHMpKSAtICoqdGhlc2UgX3dpbGxfIGJlIGF1dG9nZW5lcmF0ZWQgZm9yIHlvdSBmcm9tIFR5cGVTY3JpcHQqKgoqIGB3ZWJob29rc2A6IGFuIG9iamVjdCB3aXRoIGFsbCB0aGUgd2ViaG9va3Mgd2l0aCBkZXNjcmlwdGlvbnMgKHNlZSBbd2ViaG9va3NdKCN3ZWJob29rcykpIC0gKip0aGVzZSBfd2lsbF8gYmUgYXV0b2dlbmVyYXRlZCBmb3IgeW91IGZyb20gVHlwZVNjcmlwdCoqCgpgYGB5bWwKZnVuY3Rpb25zOgogIGNyZWF0ZVVzZXI6CiAgICBoYW5kbGVyOiAiaGFuZGxlci5jcmVhdGUiCiAgICBldmVudHM6CiAgICAgIC0gaHR0cDoKICAgICAgICBwYXRoOiAiY3JlYXRlIgogICAgICAgIG1ldGhvZDogInBvc3QiCiAgICAgICAgZG9jdW1lbnRhdGlvbjoKICAgICAgICAgIHN1bW1hcnk6ICJDcmVhdGUgVXNlciIKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ3JlYXRlcyBhIHVzZXIgYW5kIHRoZW4gc2VuZHMgYSBnZW5lcmF0ZWQgcGFzc3dvcmQgZW1haWwiCiAgICAgICAgICByZXF1ZXN0Qm9keToKICAgICAgICAgICAgZGVzY3JpcHRpb246ICJBIHVzZXIgaW5mb3JtYXRpb24gb2JqZWN0IgogICAgICAgICAgcmVxdWVzdE1vZGVsczoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjogIlB1dERvY3VtZW50UmVxdWVzdCIKICAgICAgICAgIHBhdGhQYXJhbXM6CiAgICAgICAgICAgIC0gbmFtZTogInVzZXJuYW1lIgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVGhlIHVzZXJuYW1lIGZvciBhIHVzZXIgdG8gY3JlYXRlIgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6ICJzdHJpbmciCiAgICAgICAgICAgICAgICBwYXR0ZXJuOiAiXlstYS16MC05X10rJCIKICAgICAgICAgIHF1ZXJ5UGFyYW1zOgogICAgICAgICAgICAtIG5hbWU6ICJtZW1iZXJzaGlwVHlwZSIKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlRoZSB1c2VyJ3MgTWVtYmVyc2hpcCBUeXBlIgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6ICJzdHJpbmciCiAgICAgICAgICAgICAgICBlbnVtOgogICAgICAgICAgICAgICAgICAtICJwcmVtaXVtIgogICAgICAgICAgICAgICAgICAtICJzdGFuZGFyZCIKICAgICAgICAgIGNvb2tpZVBhcmFtczoKICAgICAgICAgICAgLSBuYW1lOiAiU2Vzc2lvbklkIgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQSBTZXNzaW9uIElEIHZhcmlhYmxlIgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6ICJzdHJpbmciCiAgICAgICAgICBtZXRob2RSZXNwb25zZXM6CiAgICAgICAgICAgIC0gc3RhdHVzQ29kZTogMjAxCiAgICAgICAgICAgICAgcmVzcG9uc2VCb2R5OgogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJBIHVzZXIgb2JqZWN0IGFsb25nIHdpdGggZ2VuZXJhdGVkIEFQSSBLZXlzIgogICAgICAgICAgICAgIHJlc3BvbnNlTW9kZWxzOgogICAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjogIlB1dERvY3VtZW50UmVzcG9uc2UiCiAgICAgICAgICAgIC0gc3RhdHVzQ29kZTogNTAwCiAgICAgICAgICAgICAgcmVzcG9uc2VCb2R5OgogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJBbiBlcnJvciBtZXNzYWdlIHdoZW4gY3JlYXRpbmcgYSBuZXcgdXNlciIKICAgICAgICAgICAgICByZXNwb25zZU1vZGVsczoKICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246ICJFcnJvclJlc3BvbnNlIgpgYGAKCiMjIyMgYHF1ZXJ5UGFyYW1zYAoKUXVlcnkgcGFyYW1ldGVycyBjYW4gYmUgZGVzY3JpYmVkIGFzIGZvbGxvdzoKCiogYG5hbWVgOiB0aGUgbmFtZSBvZiB0aGUgcXVlcnkgdmFyaWFibGUKKiBgZGVzY3JpcHRpb25gOiBhIGRlc2NyaXB0aW9uIG9mIHRoZSBxdWVyeSB2YXJpYWJsZQoqIGByZXF1aXJlZGA6IHdoZXRoZXIgdGhlIHF1ZXJ5IHBhcmFtZXRlciBpcyBtYW5kYXRvcnkgKGJvb2xlYW4pCiogYHNjaGVtYWA6IEpTT04gc2NoZW1hIChpbmxpbmUgb3IgZmlsZSkgKipvciBhIHN0cmluZyByZXByZXNlbnRpbmcgZnVsbHkgcXVhbGlmaWVkIFR5cGVTY3JpcHQgdHlwZSB0byBnZW5lcmF0ZSBzY2hlbWEgZnJvbSoqCgo+IE5vdGU6IElmIHNjaGVtYSBpcyBub3Qgc3BlY2lmaWVkIG9uZSB3aWxsIGJlIGF1dG9nZW5lcmF0ZWQgZm9yIHlvdSBhcyBgeyAidHlwZSI6ICJzdHJpbmciIH1gIGlmIHlvdSBzcGVjaWZ5IGBxdWVyeXN0cmluZ3NgIGluIHlvdXIgW1NlcnZlcmxlc3MgcmVxdWVzdCBwYXJhbWV0ZXJzXShodHRwczovL3d3dy5zZXJ2ZXJsZXNzLmNvbS9mcmFtZXdvcmsvZG9jcy9wcm92aWRlcnMvYXdzL2V2ZW50cy9hcGlnYXRld2F5I3JlcXVlc3QtcGFyYW1ldGVycykKCiMjIyMjIEV4cGxpY2l0IHNjaGVtYSBleGFtcGxlCmBgYHltbApxdWVyeVBhcmFtczoKICAtIG5hbWU6ICJmaWx0ZXIiCiAgICBkZXNjcmlwdGlvbjogIlRoZSBmaWx0ZXIgcGFyYW1ldGVyIgogICAgcmVxdWlyZWQ6IHRydWUKICAgIHNjaGVtYToKICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyMjIyBBdXRvZ2VuZXJhdGVkIFNjaGVtYSBmcm9tIFNlcnZlcmxlc3MgY29uZmlnCmBgYHltbApmdW5jdGlvbnM6CiAgZm9vOgogICAgZXZlbnRzOgogICAgICAtIGh0dHA6CiAgICAgICAgICByZXF1ZXN0OgogICAgICAgICAgICBwYXJhbWV0ZXJzOgogICAgICAgICAgICAgIHF1ZXJ5c3RyaW5nczoKICAgICAgICAgICAgICAgIGZpbHRlcjogdHJ1ZQoKIyBUaGlzIHdpbGwgYmUgYXV0b2dlbmVyYXRlZCBmb3IgeW91IGJhc2VkIG9uIHlvdXIgU2VydmVybGVzcyBjb25maWcgYWJvdmUhIE5vIG5lZWQgdG8gd3JpdGUgaXQgeW91cnNlbGY6ICAgICAgICAgICAgICAgIAojIHF1ZXJ5UGFyYW1zOgojICAtIG5hbWU6ICJmaWx0ZXIiCiMgICAgcmVxdWlyZWQ6IHRydWUgCiMgICAgc2NoZW1hOgojICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyMjIyBHZW5lcmF0ZWQgU2NoZW1hIGZyb20gVHlwZVNjcmlwdCB0eXBlCmBgYHR5cGVzY3JpcHQKZXhwb3J0IG5hbWVzcGFjZSBNeUFwaSB7CiAgICBleHBvcnQgbmFtZXNwYWNlIEZvb0JhciB7CiAgICAgICAgZXhwb3J0IG5hbWVzcGFjZSBSZXF1ZXN0IHsKICAgICAgICAgICAgZXhwb3J0IG5hbWVzcGFjZSBRdWVyeVBhcmFtcyB7CiAgICAgICAgICAgICAgICAvLyBZb3UgbWF5IHVzZSBKU2RvYyB0byBzZXQgSlNPTiBTY2hlbWEgYXR0cmlidXRlcyEgCiAgICAgICAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBmaWx0ZXIgcGFyYW1ldGVyICoqLwogICAgICAgICAgICAgICAgZXhwb3J0IHR5cGUgRmlsdGVyID0gJ2hlbGxvJyB8ICd3b3JsZCc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KYGBgCgpgYGB5bWwKZnVuY3Rpb25zOgogIGZvb0JhcjoKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgICAgZG9jdW1lbnRhdGlvbjoKICAgICAgICAgICAgcXVlcnlQYXJhbXM6CiAgICAgICAgICAgICAgLSBuYW1lOiAiZmlsdGVyIgogICAgICAgICAgICAgICAgc2NoZW1hOiAiTXlBcGkuRm9vQmFyLlJlcXVlc3QuUXVlcnlQYXJhbXMuRmlsdGVyIgogICAgICAgICAgcmVxdWVzdDoKICAgICAgICAgICAgcGFyYW1ldGVyczoKICAgICAgICAgICAgICBxdWVyeXN0cmluZ3M6CiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlCgojIFRoaXMgd2lsbCBiZSBhdXRvZ2VuZXJhdGVkIGZvciB5b3UgYmFzZWQgZnJvbSBUeXBlU2NyaXB0ISBObyBuZWVkIHRvIHdyaXRlIGl0IHlvdXJzZWxmICAgICAgICAgICAgICAgIAojIHF1ZXJ5UGFyYW1zOgojICAtIG5hbWU6ICJmaWx0ZXIiCiMgICAgcmVxdWlyZWQ6IGZhbHNlCiMgICAgZGVzY3JpcHRpb246ICJUaGUgZmlsdGVyIHBhcmFtZXRlciIgIAojICAgIHNjaGVtYToKIyAgICAgIHR5cGU6IHN0cmluZwojICAgICAgZW51bToKIyAgICAgICAgLSBoZWxsbwojICAgICAgICAtIHdvcmxkCmBgYAoKIyMjIyBgcGF0aFBhcmFtc2AKClBhdGggcGFyYW1ldGVycyBjYW4gYmUgZGVzY3JpYmVkIGFzIGZvbGxvdzoKCiogYG5hbWVgOiB0aGUgbmFtZSBvZiB0aGUgcXVlcnkgdmFyaWFibGUKKiBgZGVzY3JpcHRpb25gOiBhIGRlc2NyaXB0aW9uIG9mIHRoZSBxdWVyeSB2YXJpYWJsZQoqIGBzY2hlbWFgOiBKU09OIHNjaGVtYSAoaW5saW5lIG9yIGZpbGUpICoqb3IgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGZ1bGx5IHF1YWxpZmllZCBUeXBlU2NyaXB0IHR5cGUgdG8gZ2VuZXJhdGUgc2NoZW1hIGZyb20qKgoKIyMjIyMgRXhwbGljaXQgc2NoZW1hIGV4YW1wbGUKCmBgYHltbApwYXRoUGFyYW1zOgogIC0gbmFtZTogInVzZXJuYW1lSWQiCiAgICBkZXNjcmlwdGlvbjogIlRoZSB1c2VybmFtZUlkIHBhcmFtZXRlciIKICAgIHNjaGVtYToKICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyMjIyBBdXRvZ2VuZXJhdGVkIFNjaGVtYSBmcm9tIFNlcnZlcmxlc3MgY29uZmlnCmBgYHltbApmdW5jdGlvbnM6CiAgZm9vOgogICAgZXZlbnRzOgogICAgICAtIGh0dHA6CiAgICAgICAgICByZXF1ZXN0OgogICAgICAgICAgICBwYXJhbWV0ZXJzOgogICAgICAgICAgICAgIHBhaHRzOgogICAgICAgICAgICAgICAgdXNlcm5hbWVJZDogdHJ1ZQoKIyBUaGlzIHdpbGwgYmUgYXV0b2dlbmVyYXRlZCBmb3IgeW91IGJhc2VkIG9uIHlvdXIgU2VydmVybGVzcyBjb25maWcgYWJvdmUhIE5vIG5lZWQgdG8gd3JpdGUgaXQgeW91cnNlbGY6ICAgICAgICAgICAgICAgIAojIHF1ZXJ5UGFyYW1zOgojICAtIG5hbWU6ICJmaWx0ZXIiCiMgICAgcmVxdWlyZWQ6IHRydWUgCiMgICAgc2NoZW1hOgojICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyMjIyBHZW5lcmF0ZWQgU2NoZW1hIGZyb20gVHlwZVNjcmlwdCB0eXBlCmBgYHR5cGVzY3JpcHQKZXhwb3J0IG5hbWVzcGFjZSBNeUFwaSB7CiAgICBleHBvcnQgbmFtZXNwYWNlIEZvb0JhciB7CiAgICAgICAgZXhwb3J0IG5hbWVzcGFjZSBSZXF1ZXN0IHsKICAgICAgICAgICAgZXhwb3J0IG5hbWVzcGFjZSBQYXRoUGFyYW1zIHsKICAgICAgICAgICAgICAgIC8vIFlvdSBtYXkgdXNlIEpTZG9jIHRvIHNldCBKU09OIFNjaGVtYSBhdHRyaWJ1dGVzISAKICAgICAgICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXJuYW1lSWQgcGFyYW1ldGVyICoqLwogICAgICAgICAgICAgICAgZXhwb3J0IHR5cGUgVXNlcm5hbWVJZCA9IHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpgYGAKCmBgYHltbApmdW5jdGlvbnM6CiAgZm9vQmFyOgogICAgZXZlbnRzOgogICAgICAtIGh0dHA6CiAgICAgICAgICBkb2N1bWVudGF0aW9uOgogICAgICAgICAgICBwYXRoczoKICAgICAgICAgICAgICAtIG5hbWU6ICJ1c2VybmFtZUlkIgogICAgICAgICAgICAgICAgc2NoZW1hOiAiTXlBcGkuRm9vQmFyLlJlcXVlc3QuUXVlcnlQYXJhbXMuRmlsdGVyIgogICAgICAgICAgcmVxdWVzdDoKICAgICAgICAgICAgcGFyYW1ldGVyczoKICAgICAgICAgICAgICBwYXRoczoKICAgICAgICAgICAgICAgIHVzZXJuYW1lSWQ6IHRydWUKCiMgVGhpcyB3aWxsIGJlIGF1dG9nZW5lcmF0ZWQgZm9yIHlvdSBiYXNlZCBmcm9tIFR5cGVTY3JpcHQhIE5vIG5lZWQgdG8gd3JpdGUgaXQgeW91cnNlbGYgICAgICAgICAgICAgICAgCiMgcXVlcnlQYXJhbXM6CiMgIC0gbmFtZTogImZpbHRlciIKIyAgICByZXF1aXJlZDogdHJ1ZSAKIyAgICBkZXNjcmlwdGlvbjogIlRoZSB1c2VybmFtZUlkIHBhcmFtZXRlciIKIyAgICBzY2hlbWE6CiMgICAgICB0eXBlOiBzdHJpbmcKYGBgCgojIyMjIGBjb29raWVQYXJhbXNgCgpUeXBlU2NyaXB0IGdlbmVyYXRpb24gZm9yIHRoZXNlIGlzbid0IHN1cHBvcnRlZC4gIApGb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIHNwZWNpZnkgdGhlc2UgeW91cnNlbGYsIHNlZSBbQ29va2llIFBhcmFtZXRlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb25xYS9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbiNjb29raWVwYXJhbXMpIG9uIHRoZSBiYXNlIHBsdWdpbiBwYWdlLgoKIyMjIyBgcmVxdWVzdE1vZGVsc2AKClRoZSBgcmVxdWVzdE1vZGVsc2AgcHJvcGVydHkgYWxsb3dzIHlvdSB0byBkZWZpbmUgbW9kZWxzIGZvciB0aGUgSFRUUCBSZXF1ZXN0IG9mIHRoZSBmdW5jdGlvbiBldmVudC4gIAoKVGhlc2Ugd2lsbCBiZSBhdXRvZ2VuZXJhdGVkIGZvciB5b3UgZnJvbSBUeXBlU2NyaXB0ICoqYnkgY29udmVudGlvbioqLiAgClRoZSBwbHVnaW4gd2lsbCBhdXRvZ2VuZXJhdGUgYSByZXF1ZXN0IG1vZGVsIGZvciBldmVyeSBgcHV0YCwgYHBhdGNoYCBvciBgcG9zdGAgbWV0aG9kIGJhc2VkIG9uIHRoZSBUeXBlU2NyaXB0IHR5cGUgZm91bmQgYnkgY29udmVudGlvbi4gICAgClRoZSBsb29rIHN0cmF0ZWd5IHdpbGwgYmUgYnk6ICAKYCR7c2VydmVybGVzcy5jdXN0b20uZG9jdW1lbnRhdGlvbi5hcGlOYW1lc3BhY2V9LiR7dXBwZXItY2FzZS1uYW1lLW9mLWZ1bmN0aW9ufS5SZXF1ZXN0LkJvZHlgLiBOb3RlIHRoYXQgYW55IHVuZGVyc2NvcmVzIChgX2ApIG9yIGh5cGhlbnMgKGAtYCkgaW4gZnVuY3Rpb24gbmFtZXMgd2lsbCBiZSBleGNsdWRlZCBpbiB0aGUgcmVzb2x2ZWQgdHlwZSAoZS5nLiB0aGUgU2VydmVybGVzcyBmdW5jdGlvbiBgbXlfZ2V0LWZ1bmN0aW9uYCB3aWxsIHJlc29sdmUgdG8gYE15R2V0RnVuY3Rpb25gIGluIFR5cGVzY3JpcHQpICAKCkZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uOiAgCmBgYHlhbWwKZnVuY3Rpb25zOgogIG15RnVuY3Rpb246IAogICAgZXZlbnRzOgogICAgICAtIGh0dHA6CiAgICAgICAgZG9jdW1lbnRhdGlvbjoKICAgICAgICAgIHN1bW1hcnk6ICJEb2VzIGEgbG90IGZvciB5b3UiCmBgYAoKV2lsbCBsb29rIGZvciB0aGUgcmVzb2x2ZSB0eXBlIGFzIGl0cyByZXF1ZXN0IG1vZGVsOiAgCmBgYHR5cGVzY3JpcHQKLy8gYXBpLmQudHMKCmV4cG9ydCBuYW1lc3BhY2UgTXlBcGkgewogICAgZXhwb3J0IG5hbWVzcGFjZSBNeUZ1bmN0aW9uIHsKICAgICAgICBleHBvcnQgbmFtZXNwYWNlIFJlcXVlc3QgewogICAgICAgICAgICBleHBvcnQgdHlwZSBCb2R5ID0gewogICAgICAgICAgICAgICAgaWQ6IHN0cmluZywKICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZywKICAgICAgICAgICAgICAgIGFnZTogbnVtYmVyCiAgICAgICAgICAgICAgICAvLyAuLi4KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpgYGAKCiMjIyMgYG1ldGhvZFJlc3BvbnNlc2AgYW5kIGByZXNwb25zZU1vZGVsc2AKClRoZXNlIHdpbGwgYmUgYXV0b2dlbmVyYXRlZCBmb3IgeW91IGZyb20gVHlwZVNjcmlwdCAqKmJ5IGNvbnZlbnRpb24qKi4gIApUaGUgcGx1Z2luIHdpbGwgYXV0b2dlbmVyYXRlIGEgcmVzcG9uc2UgbW9kZWwgZm9yIGV2ZXJ5IGBwdXRgLCBgcGF0Y2hgLCBgcG9zdGAgYW5kIGBnZXRgIG1ldGhvZCBiYXNlZCBvbiB0aGUgVHlwZVNjcmlwdCB0eXBlIGZvdW5kIGJ5IGNvbnZlbnRpb24uICAKVGhlIHJlc3BvbnNlIHdpbGwgdXNlIHRoZSBnZW5lcmF0ZWQgdHlwZSBhcyBib2R5LCBhbmQgd2lsbCBoYXZlIGEgMjAwIHN0YXR1cyBjb2RlLiAgCmBkZWxldGVgIG1ldGhvZCB3aWxsIGJlIGdlbmVyYXRlZCB3aXRoIGFuIGVtcHR5IGJvZHkgYW5kIDIwNCBzdGF0dXMgY29kZS4gIApPbmx5IGBhcHBsaWNhdGlvbi9qc29uYCByZXNwb25zZSB0eXBlcyBhcmUgc3VwcG9ydGVkLiAgCgpUaGUgbG9vayBzdHJhdGVneSB3aWxsIGJlIGJ5OiAgCmAke3NlcnZlcmxlc3MuY3VzdG9tLmRvY3VtZW50YXRpb24uYXBpTmFtZXNwYWNlfS4ke3VwcGVyLWNhc2UtbmFtZS1vZi1mdW5jdGlvbn0uUmVzcG9uc2VgCgpGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBmdW5jdGlvbjoKYGBgeWFtbApmdW5jdGlvbnM6CiAgbXlGdW5jdGlvbjogCiAgICBldmVudHM6CiAgICAgIC0gaHR0cDoKICAgICAgICBkb2N1bWVudGF0aW9uOgogICAgICAgICAgc3VtbWFyeTogIkRvZXMgYSBsb3QgZm9yIHlvdSIKYGBgCgpXaWxsIGxvb2sgZm9yIHRoZSByZXNvbHZlIHR5cGUgYXMgaXRzIHJlcXVlc3QgbW9kZWw6CmBgYHR5cGVzY3JpcHQKLy8gYXBpLmQudHMKCmV4cG9ydCBuYW1lc3BhY2UgTXlBcGkgewogIGV4cG9ydCBuYW1lc3BhY2UgTXlGdW5jdGlvbiB7CiAgICBleHBvcnQgdHlwZSBSZXNwb25zZSA9IHsKICAgICAgaWQ6IHN0cmluZywKICAgICAgbmFtZTogc3RyaW5nLAogICAgICBhZ2U6IG51bWJlcgogICAgICAvLyAuLi4KICAgIH0KICB9Cn0KYGBgCgojIyMjIyBgcmVzcG9uc2VIZWFkZXJzYCBhbmQgYHJlcXVlc3RIZWFkZXJzYAoKVGhlIGByZXNwb25zZUhlYWRlcnMvcmVxdWVzdEhlYWRlcnNgIHNlY3Rpb24gb2YgdGhlIGNvbmZpZ3VyYXRpb24gYWxsb3dzIHlvdSB0byBkZWZpbmUgdGhlIEhUVFAgaGVhZGVycyBmb3IgdGhlIGZ1bmN0aW9uIGV2ZW50LiAgICAKVHlwZVNjcmlwdCBnZW5lcmF0aW9uIGZvciB0aGVzZSBpc24ndCBzdXBwb3J0ZWQuICAgIApGb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIHNwZWNpZnkgdGhlc2UgeW91cnNlbGYsIHNlZSBbUmVzcG9uc2UgSGVhZGVyc10oaHR0cHM6Ly9naXRodWIuY29tL2NvbnFhL3NlcnZlcmxlc3Mtb3BlbmFwaS1kb2N1bWVudGF0aW9uI3Jlc3BvbnNlaGVhZGVycy1hbmQtcmVxdWVzdGhlYWRlcnMpIG9uIHRoZSBiYXNlIHBsdWdpbiBwYWdlLiAgCgojIyMjIyBgY3VzdG9tVGFnc2AKCkluIHNvbWUgY2FzZXMgd2hlcmUgYSBzaW5nbGUgc2VydmVybGVzcy55bWwgY29udGFpbnMgZW5kcG9pbnRzIHdoaWNoIGNhbiBiZSBncm91cGVkIGRpZmZlcmVudGx5LAp5b3UgY2FuIGRlZmluZSBjdXN0b20gdGFncyBhcyBmb2xsb3dpbmc6CgpgYGB5YW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOgogICAgdGl0bGU6ICdQcm9qZWN0JwogICAgZGVzY3JpcHRpb246IER1bW15RGVzY3JpcHRpb24KCiAgICBhcGlOYW1lc3BhY2U6IFByb2plY3RBcGkKICAgIHRhZ3M6CiAgICAgICAtIG5hbWU6IEZvb0JhclRpdGxlCiAgICAgICAgIGRlc2NyaXB0aW9uOiBGb29CYXJEZXNjcmlwdGlvbgogICAgICAgLSBuYW1lOiBCYXpUaXRsZQogICAgICAgICBkZXNjcmlwdGlvbjogQmF6RGVzY3JpcHRpb24KYGBgCgpgYGB5YW1sCmZ1bmN0aW9uczoKICBjcmVhdGVGdW5jOgogICAgaGFuZGxlcjogaGFuZGxlci5jcmVhdGUKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgICAgZG9jdW1lbnRhdGlvbjoKICAgICAgICAgICAgc3VtbWFyeTogIkNyZWF0ZSBGdW5jdGlvbiIKICAgICAgICAgICAgdGFnOiBGb29CYXJUaXRsZQpgYGAKCkVuZHBvaW50cyB0aGF0IGFyZSBub3QgYXR0YWNoZWQgdG8gYSBjdXN0b20gdGFnLCBhcmUgc3RpbGwgYXR0YWNoZWQgdG8gdGhlIHRpdGxlICggd2hpY2ggaXMgdGhlIGRlZmF1bHQgdGFnICkuCgojIyMjIGB3ZWJob29rc2AKT3BlbkFQSSBoYXZlIGFuIG9wdGlvbiB0byBhZGQgeW91ciBhcHBsaWNhdGlvbiBgd2ViaG9va3NgLCB3aGlsZSB0aGlzIGZlYXR1cmUgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGBzZXJ2ZXJsZXNzYC4KCkZvciB0aG9zZSB0aGUgcGx1Z2luIHdpbGwgbG9vayBmb3IgdGhlIHdlYmhvb2tzIHVuZGVyIGBjdXN0b20uZG9jdW1lbnRhdGlvbi53ZWJob29rc2AuCgpGb3IgZXhhbXBsZQoKYGBgeWFtbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIGFwaU5hbWVzcGFjZTogTXlBcGkKICAgIHdlYmhvb2tzOgogICAgICBXZWJob29rTmFtZToKICAgICAgICBwb3N0OgogICAgICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgICAgVGhpcyBpcyBhIHJlcXVlc3QgYm9keSBkZXNjcmlwdGlvbgogICAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgICAyMDA6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBleHBlY3RlZCByZXNwb25zZSBkZXNjcmlwdGlvbgpgYGAKCnRoaXMgd2lsbCBnZW5lcmF0ZSB0aGUgbmV4dCBPcGVuQVBJIGZpbGUKCmBgYHlhbWwKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgTXlBcGkuV2ViaG9va3MuV2ViaG9va05hbWU6CiAgICAgIHR5cGU6IG9iamVjdAp3ZWJob29rczoKICBXZWJob29rTmFtZToKICAgIHBvc3Q6CiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICBUaGlzIGlzIGEgcmVxdWVzdCBib2R5IGRlc2NyaXB0aW9uCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTXlBcGkuV2ViaG9va3MuV2ViaG9va05hbWUnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoaXMgaXMgYSBleHBlY3RlZCByZXNwb25zZSBkZXNjcmlwdGlvbgpgYGAKCldpdGggdGhlIG5leHQgYGFwaS5kLnRzYDoKCmBgYHR5cGVzY3JpcHQKZXhwb3J0IG5hbWVzcGFjZSBNeUFwaSB7CiAgZXhwb3J0IG5hbWVzcGFjZSBXZWJob29rcyB7CiAgICBleHBvcnQgdHlwZSBXZWJob29rTmFtZSA9IHsKICAgICAgaWQ6IHN0cmluZywKICAgICAgbmFtZTogc3RyaW5nLAogICAgICBhZ2U6IG51bWJlcgogICAgICAvLyAuLi4KICAgIH0KICB9Cn0KYGBgCgpZb3UgY2FuIGFsc28gYWRkIFdlYmhvb2sgdGFncyBieSB1c2luZyBgd2ViaG9va1RhZ3NgIGtleXdvcmQgaXQgd2lsbCBhdXRvIGFkZCB0YWcgdG8gYWxsIHdlYmhvb2tzCmBgYHlhbWwKY3VzdG9tOgogIGRvY3VtZW50YXRpb246CiAgICBhcGlOYW1lc3BhY2U6IE15QXBpCiAgICB3ZWJob29rVGFnczoKICAgICAgLSBuYW1lOiBQcm9qZWN0V2ViaG9va3MKICAgICAgICBkZXNjcmlwdGlvbjogVGhpcyBpcyB0aGUgZGVzY3JpcHRpb24gZm9yIFByb2plY3RXZWJob29rcwogICAgd2ViaG9va3M6CiAgICAgIFdlYmhvb2tOYW1lOgogICAgICAgIHBvc3Q6CiAgICAgICAgICByZXF1ZXN0Qm9keToKICAgICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgICBUaGlzIGlzIGEgcmVxdWVzdCBib2R5IGRlc2NyaXB0aW9uCiAgICAgICAgICByZXNwb25zZXM6CiAgICAgICAgICAgIDIwMDoKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICAgICAgVGhpcyBpcyBhIGV4cGVjdGVkIHJlc3BvbnNlIGRlc2NyaXB0aW9uCmBgYAoKCiMjIEluc3RhbGwKClRoaXMgcGx1Z2luIGlzICoqYW4gZXh0ZW5zaW9uKiouICAKSXQgbWVhbnMgeW91IG11c3QgaW5zdGFsbCBhbmQgZW5hYmxlIGBAY29ucWEvc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50YXRpb25gIHRvby4KClRvIGFkZCB0aGVzZSBwbHVnaW5zIHRvIHlvdXIgcGFja2FnZS5qc29uOgoKKipVc2luZyBucG06KioKYGBgYmFzaApucG0gaW5zdGFsbCBAY29ucWEvc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50YXRpb24gLS1zYXZlLWRldgpucG0gaW5zdGFsbCBzZXJ2ZXJsZXNzLW9wZW5hcGktdHlwZXNjcmlwdCAtLXNhdmUtZGV2CmBgYAoKKipVc2luZyBZYXJuOioqCmBgYGJhc2gKeWFybiBhZGQgQGNvbnFhL3NlcnZlcmxlc3Mtb3BlbmFwaS1kb2N1bWVudGF0aW9uIC0tZGV2Cnlhcm4gYWRkIHNlcnZlcmxlc3Mtb3BlbmFwaS10eXBlc2NyaXB0IC0tZGV2CmBgYAoKTmV4dCB5b3UgbmVlZCB0byBhZGQgdGhlIHBsdWdpbiB0byB0aGUgYHBsdWdpbnNgIHNlY3Rpb24gb2YgeW91ciBgc2VydmVybGVzcy55bWxgIGZpbGUuCgpgYGB5bWwKcGx1Z2luczoKICAtIEBjb25xYS9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbgogIC0gc2VydmVybGVzcy1vcGVuYXBpLXR5cGVzY3JpcHQKICAjIE5PVEU6IE9yZGVyIGlzIGltcG9ydGFudCBoZXJlIC0gdGhpcyBwbHVnaW4gbXVzdCBiZSBhZGRlZCBhZnRlciB0aGUgYmFzZSBAY29ucWEvc2VydmVybGVzcy1vcGVuYXBpLWRvY3VtZW50YXRpb24gcGx1Z2luCiAgIyBUaGlzIHBsdWdpbiBhc3NlcnRzIHRoYXQgLSB5b3Ugd2lsbCBnZXQgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaWYgeW91IGdldCB0aGUgb3JkZXJpbmcgd3JvbmcgCmBgYAoKPiBOb3RlOiBBZGQgdGhpcyBwbHVnaW4gX2FmdGVyXyBgc2VydmVybGVzcy1vZmZsaW5lYCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGBTdHJpbmcucmVwbGFjZUFsbGAgYmVpbmcgb3ZlcnJpZGRlbiBpbmNvcnJlY3RseS4KCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"805379935366bacdc6beb284e7684d85a00c68c2"' readmeLastModified: Mon, 27 May 2024 12:03:39 GMT repositoryId: 400071702 description: >- Serverless plugin to generate OpenAPI 3.1.0 documentation including models from serverless configuration and TypeScript created: '2021-08-26T06:57:36Z' updated: '2024-05-27T12:03:43Z' language: TypeScript archived: false stars: 14 watchers: 7 forks: 8 owner: env0 logo: https://avatars.githubusercontent.com/u/46656519?v=4 repoEtag: '"6756eb31f8f0cb5a61eab63280e908168df42eba16f1cdd434cb1cbf68933861"' repoLastModified: Mon, 27 May 2024 12:03:43 GMT foundInMaster: true category: - Code Generators - Parsers id: 1f0ebfad51f6d4b3b4f19310e8beaae8 - source: openapi3 tags repository: https://github.com/greenstand/treetracker-query-api v3: true repositoryMetadata: base64Readme: >- IyBUcmVldHJhY2tlciBRdWVyeSBBUEkKClRoaXMgQVBJIGV4cG9zZXMgYSBSRVNUZnVsIGludGVyZmFjZSB0byBxdWVyeSB0aGUgdHJlZXRyYWNrZXIgZGF0YSwgY2FwdHVyZSwgcGxhbnRlciBhbmQgb3JnYW5pemF0aW9uIGFuZCBvdGhlcnMuCgpPbmUgb2YgcXVlcnkgYXBpJ3MgY2xpZW50IGlzIG91ciB3ZWIgbWFwIGFwcDogaHR0cHM6Ly9naXRodWIuY29tL0dyZWVuc3RhbmQvdHJlZXRyYWNrZXItd2ViLW1hcC1jbGllbnQvCgojIERldmVsb3BtZW50IHRvb2xraXQKClRoaXMgcmVwb3NpdG9yeSB3YXMgY3JlYXRlZCBmcm9tIEdyZWVuc3RhbmQncyB0ZW1wbGF0ZSBmb3IgbWljcm9zZXJ2aWNlIHByb2plY3RzLiBUaGlzIG1lYW5zIGl0IGNvbWVzIHdpdGggbWFueSBkZXZlbG9wbWVudCB0b29scyB0aGF0IHdlIHVzZSBmb3IgZGV2ZWxvcG1lbnQgYW5kIGRlcGxveW1lbnQuIEFzIGEgY29udHJpYnV0b3IgdG8gdGhpcyByZXBvc2l0b3J5LCB5b3Ugc2hvdWxkIGxlYXJuIGFuZCB1c2UgdGhlc2UgdG9vbHMuIFRoZXkgYXJlIG91dGxpbmVkIGJlbG93LgoKLSBDb252ZW50aW9uYWwgQ29tbWl0cwotIGh1c2t5Ci0gcHJldHRpZXIgLyBsaW50Ci0gZ2l0aHViIGFjdGlvbnMKLSBKZXN0Ci0gVHlwZVNjcmlwdAoKIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIFByb2plY3QgU2V0dXAKCk9wZW4gdGVybWluYWwgYW5kIG5hdmlnYXRlIHRvIGEgZm9sZGVyIHRvIGluc3RhbGwgdGhpcyBwcm9qZWN0OgoKYGBgCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vR3JlZW5zdGFuZC90cmVldHJhY2tlci1yZXBvc2l0b3J5LW5hbWUuZ2l0CgpgYGAKCkluc3RhbGwgYWxsIG5lY2Vzc2FyeSBkZXBlbmRlbmNpZXM6CgpgYGAKbnBtIGNpCmBgYAoKUnVuIHRoZSBzZXJ2ZXIgd2l0aCBkYXRhYmFzZSBzZXR0aW5nczoKCmBgYApEQVRBQkFTRV9VUkw9Wy4uLl0gbnBtIHJ1biBkZXYKYGBgCgpQbGVhc2Ugam9pbiBvdXIgc2xhY2sgY2hhbm5lbCB0byBnZXQgaGVscCB3aXRoIHNldHRpbmcgdXAgdGhlIGRhdGFiYXNlLgoKIyBXb3JrZmxvdyB3aXRoIEdpdGh1YgoKW2NoZWNrIG91dCBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vR3JlZW5zdGFuZC90cmVldHJhY2tlci13ZWItbWFwLWNsaWVudCN3b3JrZmxvdy13aXRoLWdpdGh1YikKCiMgRGV2ZWxvcG1lbnQgU3BlY2lmaWNhdGlvbgoKLSBFdmVyeSBlbmRwb2ludCBzaG91bGQgaGF2ZSBhIGUyZSB0ZXN0IHRvIGNvdmVyIHRoZSBtYWluIHVzZSBjYXNlcy4KCi0gRm9yIGVkZ2UgY2FzZXMsIHdlIGNhbiB1c2UgdW5pdCB0ZXN0cyB0byB0ZXN0IHRoZSBlZGdlIGNhc2VzLCBkb24ndCBuZWVkIHRvIHVzZSBlMmUgdGVzdCB0byBjb3ZlciBhbGwgY2FzZXMsIGUyZSBqdXN0IGNvdmVyIG1haW4gd29ya2Zsb3cuCgotIENsYXNzIG5hbWUgc2hvdWxkIGJlIGNhcGl0YWxpemVkLgoKLSBEbyBub3Qgd3JpdGUgU1FMIGRpcmVjdGx5IGluIGByb3V0ZXJgIGFuZCBgbW9kZWxgIGZpbGVzLCB0aGVyZSBpcyBhIGZ1bmN0aW9uIGNhbGxlZCBgZGVsZWdhdGVSZXBvc2l0b3J5YCBjYW4gaGVscCB0byBzaW1wbGlmeSBzb21lIHNpbXBsZSBjYXNlczsKCi0gUGxlYXNlIHVzZSBgbG9nbGV2ZWxgIHRvIHJlcGxhY2UgYGNvbnNvbGUubG9nYCwgYW5kIGFsd2F5cyB1c2UgYXBwcm9wcmlhdGUgbG9nIGxldmVsIHRvIGxvZy4KCiMgQXJjaGl0ZWN0dXJlIG9mIHRoaXMgcHJvamVjdAoKVGhpcyBwcm9qZWN0IHVzZSBtdWx0aXBsZSBsYXllciBzdHJ1Y3R1cmUgdG8gYnVpbGQgdGhlIHdob2xlIHN5c3RlbS4gVGhlIGFyY2hpdGVjdHVyZSBmb2xsb3dzIHNvbWUgcHJpbmNpcGxlcyBvZiBbRG9tYWluIERyaXZlbiBEZXNpZ25dKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0RvbWFpbi1kcml2ZW5fZGVzaWduKS4gQW5kIGluc3BpcmVkIGJ5IHRoaXMgYXJ0aWNsZTogaHR0cHM6Ly9tZWRpdW0uY29tL3Nwb3RsaWdodC1vbi1qYXZhc2NyaXB0L2RvbWFpbi1kcml2ZW4tZGVzaWduLWZvci1qYXZhc2NyaXB0LWRldmVsb3BlcnMtOWZjM2Y2ODE5MzFhCgpXZSBjb21wb3NlL2J1aWxkIHRoZSBtb2RlbCBpbnN0YW5jZSBpbiBhIGZ1bmN0aW9uYWwgc3R5bGUsIHRoZW4gZXhlY3V0ZSB0aGUgYnVzaW5lc3MuCgotICoqUHJvdG9jb2wgbGF5ZXIqKgoKSSB0aGluayB3ZSBjYW4gYWxzbyBjYWxsIGl0IHRoZSBBcHBsaWNhdGlvbiBMYXllciwgYSB0ZXJtIGluIHRoZSBEREQsIHRoZSBlbnRyeSBvZiB0aGlzIHByb2plY3QuCgpUaGlzIG1pY3Jvc2VydmljZSBvZmZlcnMgUkVTVEZ1bCBBUEkgaW50ZXJmYWNlIGJhc2VkIG9uIEhUVFAgcHJvdG9jb2wuIFdlIHVzZSBFeHByZXNzIHRvIGhhbmRsZSBhbGwgSFRUUCByZXF1ZXN0cy4KClRoZSBFeHByZXNzLXJvdXRlcnMgd29yayBsaWtlIHRoZSBjb250cm9sbGVyIHJvbGUgaW4gTVZDLCB0aGV5IHJlY2VpdmUgdGhlIHJlcXVlc3RzIGFuZCBwYXJhbWV0ZXJzIGZyb20gY2xpZW50LCBhbmQgdHJhbnNsYXRlIGl0IGFuZCBkaXNwYXRjaCB0YXNrcyB0byBhcHByb3ByaWF0ZSBidXNpbmVzcyBtb2RlbHMuIFRoZW4gcmVjZWl2ZSB0aGUgcmVzdWx0IGZyb20gdGhlbSwgdHJhbnNsYXRlIHRvIHRoZSAndmlldycsIHRoZSBKU09OIHJlc3BvbnNlLCB0byBjbGllbnQuCgotICoqTW9kZWwgbGF5ZXIqKgoKVGhlIGJ1c2luZXNzIG1vZGVsLCBtb3N0IG9mIHRoZSBidXNpbmVzcyBsb2dpYyBpcyBoZXJlLiBXZSBhcmUgY29uc2lkZXJpbmcgcHV0IG1vc3Qgb2YgdGhlIGJ1c2luZXNzIGxvZ2ljIGluIHRoZSBtb2RlbCBsYXllci4gU28gaXQgc2hvdWxkIGJlIHRoZSB0aGlja2VzdCBsYXllciwgaW5jbHVkaW5nIGFsbCB0aGUgYnVzaW5lc3MgbG9naWMsIGFuZCBidWlsZCB1cCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gbW9kZWxzKGJ1c2luZXNzKS4KCi0gKipJbmZyYXN0cnVjdHVyZSBsYXllcioqCgogIC0gKipSZXBvc2l0b3J5IGxheWVyKioKCiAgICBSZXBvc2l0b3J5IGlzIHJlc3BvbnNpYmxlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIHJlYWwgZGF0YWJhc2UuCgogICAgQWxsIHRoZSBTUUwgc3RhdGVtZW50cyBzaG91bGQgYmUgaGVyZS4KCiAgLSAqKk90aGVycyoqCgogICAgRm9yIGV4YW1wbGUsIHRoZSBNZXNzYWdlIFF1ZXVlLgoKIyBBYm91dCB0aGUgZG9jdW1lbnRhdGlvbi9zcGVjaWZpY2F0aW9uCgpXZSB1c2UgT3BlbkFQSSAzLjAgdG8gZG9jdW1lbnQgdGhlIEFQSS4KCllvdSBjYW4gY29weSB0aGUgeWFtbCBmaWxlIGFuZCBpbXBvcnQgdG8gc3dhZ2dlci11aSB0byBzZWUgdGhlIEFQSS4KCiMgSG93IHRvIHRlc3QKCiMjIFVuaXQgdGVzdAoKVG8gcnVuIHRoZSB1bml0IHRlc3RzOgoKYGBgCm5wbSBydW4gdGVzdC11bml0CmBgYAoKIyMgRW5kIHRvIEVuZCB0ZXN0CgpBbGwgdGhlIGVuZCB0byBlbmQgdGVzdHMgYXJlIGxvY2F0ZWQgdW5kZXIgZm9sZGVyIGBfX3Rlc3RzX18vZTJlYCwgdGhlIHRlc3Qgd2lsbCBydW4gYWdhaW5zdCB0aGUgZGV2IGRhdGFiYXNlLgoKVG8gcnVuIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0OgoKUnVuIHRlc3RzOgoKYGBgCm5wbSBydW4gdGVzdC1lMmUKYGBgCgoqKklmIGVycm9yczoqKgoKYGBgCgpEQVRBQkFTRV9VUkwgaXMgdW5kZWZpbmVkCgpvcgoKeyAiY29kZSI6IDUwMCwibWVzc2FnZSI6ICJVbmtub3duIGVycm9yIChzZWxmIHNpZ25lZCBjZXJ0aWZpY2F0ZSBpbiBjZXJ0aWZpY2F0ZSBjaGFpbikiIH0KYGBgCgoqKkZvbGxvd3MgdGhvc2Ugc3RlcHM6KioKCjEtIEdvIHRvIHRoZSAuZW52IGZpbGUsIGNvcHkgdGhlIERBVEFCQVNFX1VSTCB3aXRoIGl0cyB2YWx1ZS4KCjItIEFkZCBpdCB3aXRoIE5PREVfVExTX1JFSkVDVF9VTkFVVEhPUklaRUQ9JzAnICwgbnBtIHJ1biB0ZXN0LWUyZSwgYW5kIHJ1biB0aGUgdGVzdHMuCgpGb3IgZXhhbXBsZToKCmBgYAoKREFUQUJBU0VfVVJMPVt0aGUgbGluayBwcm92aWRlZF0gTk9ERV9UTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0nMCcgbnBtIHJ1biB0ZXN0LWUyZQpgYGAKCi4KLgouCi4KLgouCi4K readmeEtag: '"5388e765dcc1d00f3a990488d39db21fd04ff112"' readmeLastModified: Mon, 08 Jul 2024 00:52:41 GMT repositoryId: 431701346 description: >- To fetch Greenstand map data for client's like web map, wallet app, and so on. created: '2021-11-25T03:25:18Z' updated: '2024-07-08T00:52:45Z' language: TypeScript archived: false stars: 14 watchers: 11 forks: 58 owner: Greenstand logo: https://avatars.githubusercontent.com/u/25363578?v=4 license: GPL-3.0 repoEtag: '"b080e57f241ad526e225f293a829fd57adebacfad2dc9e0f95a49a14f795c2fc"' repoLastModified: Mon, 08 Jul 2024 00:52:45 GMT foundInMaster: true category: Server Implementations id: 7d2ec66434cc6bbf5bad52bd1d32e0f7 - source: openapi3 tags repository: https://github.com/yukihirop/r2-oas v3: true repositoryMetadata: base64Readme: >- IyBSMi1PQVMKClshW0dlbSBWZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcmIvcjItb2FzLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9yYi9yMi1vYXMpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3l1a2loaXJvcC9yMi1vYXMuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcveXVraWhpcm9wL3IyLW9hcykKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIveXVraWhpcm9wL3IyLW9hcy9iYWRnZS5zdmcpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIveXVraWhpcm9wL3IyLW9hcykKWyFbTWFpbnRhaW5hYmlsaXR5XShodHRwczovL2FwaS5jb2RlY2xpbWF0ZS5jb20vdjEvYmFkZ2VzL2Y4YzM4NDZmMzUwYmI0MTJmZDYzL21haW50YWluYWJpbGl0eSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi95dWtpaGlyb3AvcjItb2FzL21haW50YWluYWJpbGl0eSkKCkdlbmVyYXRlIGFwaSBkb2N1bWVudCAoT3BlbkFQSSkgc2lkZSBvbmx5IGZyb20gYFJhaWxzYCByb3V0aW5nLgoKUHJvdmlkZXMgYSByYWtlIGNvbW1hbmQgdG8gaGVscCBgZ2VuZXJhdGVgLCBgdmlld2AsIGFuZCBgZWRpdGAgT3BlbkFQSSBkb2N1bWVudHMuCgpgYGBiYXNoCmJ1bmRsZSBleGVjIHJha2Ugcm91dGVzOm9hczppbml0ICAgICMgaW5pdGlhbGl6ZQpidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6ZG9jcyAgICAjIGdlbmVyYXRlCmJ1bmRsZSBleGVjIHJha2Ugcm91dGVzOm9hczp1aSAgICAgICMgdmlldwpidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6ZWRpdG9yICAjIGVkaXQKYnVuZGxlIGV4ZWMgcmFrZSByb3V0ZXM6b2FzOm1vbml0b3IgIyBtb25pdG9yCmJ1bmRsZSBleGVjIHJha2Ugcm91dGVzOm9hczpidWlsZCAgICMgYnVpbGQKYnVuZGxlIGV4ZWMgcmFrZSByb3V0ZXM6b2FzOmNsZWFuICAgIyBjbGVhbgpidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6YW5hbHl6ZSAjIGFuYWx5emUKYnVuZGxlIGV4ZWMgcmFrZSByb3V0ZXM6b2FzOmRlcGxveSAgIyBkZXBsb3kKYGBgCgojIyDwn5KOIEluc3RhbGxhdGlvbgoKQWRkIHRoaXMgbGluZSB0byB5b3VyIGFwcGxpY2F0aW9uJ3MgR2VtZmlsZToKCmBgYHJ1YnkKZ3JvdXAgOmRldmVsb3BtZW50IGRvCiAgZ2VtICdyMi1vYXMnCmVuZApgYGAKCkFuZCB0aGVuIGV4ZWN1dGU6CgogICAgJCBidW5kbGUKCk9yIGluc3RhbGwgaXQgeW91cnNlbGYgYXM6CgogICAgJCBnZW0gaW5zdGFsbCByMi1vYXMKCiMjIPCflKYgUmVxdWlyZW1lbnRzCgpJZiB5b3Ugd2FudCB0byB2aWV3IHdpdGggYFN3YWdnZXIgVUlgIG9yIGVkaXQgd2l0aCBgU3dhZ2dlciBFZGl0b3JgLCBUaGlzIGdlbSBuZWVkcyB0aGUgZm9sbG93aW5nOgoKLSBbYHN3YWdnZXJhcGkvc3dhZ2dlci11aTpsYXRlc3RgIGRvY2tlciBpbWFnZV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3N3YWdnZXJhcGkvc3dhZ2dlci11aS8pCi0gW2Bzd2FnZ2VyYXBpL3N3YWdnZXItZWRpdG9yOmxhdGVzdGAgZG9ja2VyIGltYWdlXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivc3dhZ2dlcmFwaS9zd2FnZ2VyLWVkaXRvci8pCi0gW2BjaHJvbWVkcml2ZXJgXShodHRwOi8vY2hyb21lZHJpdmVyLmNocm9taXVtLm9yZy9kb3dubG9hZHMpCgpJZiB5b3UgZG8gbm90IGhhdmUgaXQgZG93bmxvYWQgYXMgYmVsb3cuCgpgYGAKJCBkb2NrZXIgcHVsbCBzd2FnZ2VyYXBpL3N3YWdnZXItZWRpdG9yOmxhdGVzdAokIGRvY2tlciBwdWxsIHN3YWdnZXJhcGkvc3dhZ2dlci11aTpsYXRlc3QKJCBicmV3IGNhc2sgaW5zdGFsbCBjaHJvbWVkcml2ZXIKYGBgCgojIyDwn5qAIFR1dG9yaWFsCgpBZnRlciByZXF1aXJpbmcgYSBnZW0gYW5kIENvbmZpZ3VyZSBgUmFrZWZpbGVgIGluIHlvdXIgcmFpbHMgcHJvamVjdAoKYGBgcmIKUjJPQVMubG9hZF90YXNrcwpgYGAKCmBgYGJhc2gKJCBidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6aW5pdAogICAgICBjcmVhdGUJb2FzX2RvY3MKICAgICAgY3JlYXRlCW9hc19kb2NzLy5wYXRocwogICAgICBjcmVhdGUJb2FzX2RvY3MvcGx1Z2lucy9oZWxwZXJzCiAgICAgIGNyZWF0ZQlvYXNfZG9jcy90YXNrcy9oZWxwZXJzCiAgICAgIGNyZWF0ZQlvYXNfZG9jcy9wbHVnaW5zLy5naXRrZWVwCiAgICAgIGNyZWF0ZQlvYXNfZG9jcy9wbHVnaW5zL2hlbHBlcnMvLmdpdGtlZXAKICAgICAgY3JlYXRlCW9hc19kb2NzL3Rhc2tzLy5naXRrZWVwCiAgICAgIGNyZWF0ZQlvYXNfZG9jcy90YXNrcy9oZWxwZXJzLy5naXRrZWVwCiQgYnVuZGxlIGV4ZWMgcmFrZSByb3V0ZXM6b2FzOmRvY3MKJCBidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6ZWRpdG9yCmBgYAoKIyMjIyBHZW5lcmF0ZSBkb2NzCgohW29hc19kb2NzXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xMTE0Njc2Ny84MDg1NjIzNi0wYjgzOWE4MC04YzgzLTExZWEtODg4Zi1kMGU2NTllMGMyNTEuZ2lmKQoKCiMjIyMgRWRpdCBkb2NzCgohW29hc19lZGl0b3JdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzExMTQ2NzY3LzgwODU2MjQwLTE1YTU5OTAwLThjODMtMTFlYS05ZGJkLTQzODI1Mjg5NDRmMi5naWYpCgojIyBVc2FnZQoKWW91IGNhbiBleGVjdXRlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgcmFpbHMuICAKVGhlIGZvbGxvd2luZyBhcmUgZXhhbXBsZXMgb2YgdHlwaWNhbCBjb21tYW5kIHVzYWdlLgoKRnVsbCBkb2NzIGFyZSBhdmFpbGFibGUgYXQgaHR0cHM6Ly95dWtpaGlyb3AuZ2l0aHViLmlvL3IyLW9hcwoKIyMjIEluaXRpYWxpemUKCkluaXRpYWxpemUgcjItb2FzLgoKYGBgYmFzaAokIGJ1bmRsZSBleGVjIHJha2Ugcm91dGVzOm9hczppbml0CiAgICAgIGNyZWF0ZQlvYXNfZG9jcwogICAgICBjcmVhdGUJb2FzX2RvY3MvLnBhdGhzCiAgICAgIGNyZWF0ZQlvYXNfZG9jcy9wbHVnaW5zL2hlbHBlcnMKICAgICAgY3JlYXRlCW9hc19kb2NzL3Rhc2tzL2hlbHBlcnMKICAgICAgY3JlYXRlCW9hc19kb2NzL3BsdWdpbnMvLmdpdGtlZXAKICAgICAgY3JlYXRlCW9hc19kb2NzL3BsdWdpbnMvaGVscGVycy8uZ2l0a2VlcAogICAgICBjcmVhdGUJb2FzX2RvY3MvdGFza3MvLmdpdGtlZXAKICAgICAgY3JlYXRlCW9hc19kb2NzL3Rhc2tzL2hlbHBlcnMvLmdpdGtlZXAKYGBgCgojIyMgR2VuZXJhdGUKCkdlbmVyYXRlIGRvY3MuCgpgYGBiYXNoCiQgYnVuZGxlIGV4ZWMgcmFrZSByb3V0ZXM6b2FzOmRvY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBHZW5lcmF0ZSBkb2NzCiQgUEFUSFNfRklMRT0ib2FzX2RvY3Mvc2NoZW1hL3BhdGhzL2FwaS92MS90YXNrLnltbCIgYnVuZGxlIGV4ZWMgcmFrZSByb3V0ZXM6b2FzOmRvY3MgICAgIyBHZW5lcmF0ZSBkb2NzIGJ5IHNwZWNpZnkgdW5pdCBwYXRocwpgYGAKCiMjIyBFZGl0b3IKClN0YXJ0IFN3YWdnZXIgZWRpdG9yLgoKYGBgYmFzaAokIGJ1bmRsZSBleGVjIHJha2Ugcm91dGVzOm9hczplZGl0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU3RhcnQgc3dhZ2dlciBlZGl0b3IKJCBQQVRIU19GSUxFPSJvYXNfZG9jcy9zY2hlbWEvcGF0aHMvYXBpL3YxL3Rhc2sueW1sIiBidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6ZWRpdG9yICAjIFN0YXJ0IHN3YWdnZXIgZWRpdG9yIGJ5IHNwZWNpZnkgdW5pdCBwYXRocwpgYGAKCiMjIyBVSQoKU3RhcnQgc3dhZ2dlciB1aS4KCmBgYGJhc2gKJCBidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6dWkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFN0YXJ0IHN3YWdnZXIgdWkKJCBQQVRIU19GSUxFPSJvYXNfZG9jcy9zY2hlbWEvcGF0aHMvYXBpL3YxL3Rhc2sueW1sIiBidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6dWkgICAgICAjIFN0YXJ0IHN3YWdnZXIgdWkgYnkgc3BlY2lmeSB1bml0IHBhdGhzCmBgYAoKIyMjIEJ1aWxkCgpCdWlsZCBkb2NzLiAgCmBQbHVnaW4gaXMgYXBwbGllZGAKCmBgYGJhc2gKJCBidW5kbGUgZXhlYyByYWtlIHJvdXRlczpvYXM6YnVpbGQKYGBgCgojIyMgQW5hbHl6ZQoKQW5hbHl6ZSBkb2NzLiAgClJlYWRzIE9wZW5BUEkgZm9ybWF0IGRvY3VtZW50IGFuZCBkaXZpZGVzIGl0IGludG8gc2V2ZXJhbCBwYXJ0cyB0byBnZW5lcmF0ZSBhIHNvdXJjZSBmaWxlCgpgYGBiYXNoCiQgT0FTX0ZJTEU9In4vRGVza3RvcC9zd2FnZ2VyLnltbCIgYnVuZGxlIGV4ZWMgcmFrZSByb3V0ZXM6b2FzOmFuYWx5emUKYGBgCgojIyDwn5OaIERvY3VtZW50cwoKRnVsbCBkb2NzIGFyZSBhdmFpbGFibGUgYXQgaHR0cHM6Ly95dWtpaGlyb3AuZ2l0aHViLmlvL3IyLW9hcwoKIyMg4p2k77iPIFN1cHBvcnQgUmFpbHMgVmVyc2lvbgoKLSBSYWlscyAoPj0gNC4yLjUuMSkKCiMjIOKdpO+4jyBTdXBwb3J0IFJ1YnkgVmVyc2lvbgoKLSBSdWJ5ICg+PSAyLjUuMCkKCiMjIOKdpO+4jyBTdXBwb3J0IFJvdWdpbmcKCi0gUmFpbHMgRW5naW5lIFJvdXRpbmcKLSBSYWlscyBOb3JtYWwgUm91dGluZwoKIyMg4p2k77iPIFN1cHBvcnQgT3BlbkFQSSBTY2hlbWEKCkZ1bGwgZG9jcyBhcmUgYXZhaWxhYmxlIGF0IGh0dHBzOi8veXVraWhpcm9wLmdpdGh1Yi5pby9yMi1vYXMvIy9zY2hlbWEvMy4wLjAKCiMjIOKdl++4jyBDb252ZW50aW9uIG92ZXIgQ29uZmlndXJhdGlvbiAoQ29DKQoKLSBgdGFnIG5hbWVgIHJlcHJlc2VudHMgYGNvbnRyb2xsZXIgbmFtZWAgYW5kIGRldGVybWluZXMgYHBhdGhzIGZpbGUgbmFtZWAuCiAgLSBGb3IgZXhhbXBsZSwgSWYgYGNvbnRyb2xsZXIgbmFtZWAgaXMgYEFwaTo6VjE6OlVzZXJzQ29udHJvbGxlcmAsIGB0YWdfbmFtZWAgaXMgYGFwaS92MS91c2VyYCwgdGhlbiBgcGF0aHMgZmlsZSBuYW1lYCBpcyBgYXBpL3YxL3VzZXIueW1sYAoKLSBgX2Agb2YgYGNvbXBvbmVudHMve3NjaGVtYXMscmVxdWVzdEJvZGllcywgLi4ufSBuYW1lYCBjb252ZXJ0IGAvYCB3aGVuIHNhdmUgZmlsZS4KICAtIEZvciBleGFtcGxlLCBJZiBgY29tcG9uZW50cy9zY2hlbWFzIG5hbWVgIGlzIGBBcGlfVjFfVXNlcmAsIGBjb21wb25lbnRzL3NjaGVtYXMgZmlsZSBuYW1lYCBpcyBgYXBpL3YxL3VzZXIueW1sYC4KICAtIGBfYCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIHRvIGV4cHJlc3MgYG5hbWVzcGFjZWAuCiAgLSBmb3JtYXQgaXMgYE5hbWVzcGFjZTFfTmFtZXNwYWNlMl9Nb2RlbGAuCgotIGAuYCBvZiBgY29tcG9uZW50cy97c2NoZW1hcyxyZXF1ZXN0Qm9kaWVzLCAuLi59IG5hbWVgIGNvbnZlcnQgYC9gIHdoZW4gc2F2aW5nIHRoZSBmaWxlLgogIC0gRm9yIGV4YW1wbGUsIElmIGBjb21wb25lbnRzL3NjaGVtYXMgbmFtZWAgaXMgYGFwaS52MS5Vc2VyYCwgYGNvbXBvbmVudHMvc2NoZW1hcyBmaWxlIG5hbWVgIGlzIGBhcGkvdjEvdXNlci55bWxgLgogIC0gYC5gIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgdG8gZXhwcmVzcyBgbmFtZXNwYWNlYC4KICAtIGZvcm1hdCBpcyBgbmFtZXNwYWNlMS5uYW1lc3BhY2UyLk1vZGVsYC4KCiMjIOKamSBDb25maWd1cmUKCkFsbCBzZXR0aW5ncyBhcmUgYG9wdGlvbmFsYAoKRnVsbCBkb2NzIGFyZSBhdmFpbGFibGUgYXQgaHR0cHM6Ly95dWtpaGlyb3AuZ2l0aHViLmlvL3IyLW9hcy8jL3NldHRpbmcvY29uZmlndXJlCgojIyBCdW5kbGUgYW5kIFJzcGVjIHdpdGggbXVsdGlwbGUgcnVieSDigIvigIt2ZXJzaW9ucwoKIyMjIyBCdW5kbGUKCmBgYGJhc2gKL2Jpbi9iYXNoIGRldnNjcmlwdC9hbGxfc3VwcG9ydF9ydWJ5LnNoIGJ1bmRsZQouCi4KLgo9PT09PSBCdW5kbGUgaW5zdGFsbCBmb3IgQWxsIFN1cHBvcnQgUnVieSBSZXN1bHQgPT09PT0KcnVieS0yLjUuODogMApydWJ5LTIuNi42OiAwCnJ1YnktMi43LjE6IDAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmBgYAoKSWYgc3BlY2lmeSBydWJ5IHZlcnNpb24gYDIuNi42YCBhbmQgYDIuNy4xYAoKYGBgYmFzaAovYmluL2Jhc2ggZGV2c2NyaXB0L2FsbF9zdXBwb3J0X3J1Ynkuc2ggYnVuZGxlIDIuNi42IDIuNy4xCi4KLgouCj09PT09IEJ1bmRsZSBpbnN0YWxsIGZvciBBbGwgU3VwcG9ydCBSdWJ5IFJlc3VsdCA9PT09PQpydWJ5LTIuNi42OiAwCnJ1YnktMi43LjE6IDAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmBgYAoKIyMjIyBSc3BlYwoKYGBgYmFzaAovYmluL2Jhc2ggZGV2c2NyaXB0L2FsbF9zdXBwb3J0X3J1Ynkuc2ggcnNwZWMKLgouCi4KPT09PT0gUnNwZWMgZm9yIEFsbCBTdXBwb3J0IFJ1YnkgUmVzdWx0ID09PT09CnJ1YnktMi41Ljg6IDAKcnVieS0yLjYuNjogMApydWJ5LTIuNy4xOiAwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpgYGAKCklmIHNwZWNpZnkgcnVieSB2ZXJzaW9uIGAyLjYuNmAgYW5kIGAyLjcuMWAKCmBgYGJhc2gKL2Jpbi9iYXNoIGRldnNjcmlwdC9hbGxfc3VwcG9ydF9ydWJ5LnNoIHJzcGVjIDIuNi42IDIuNy4xCi4KLgouCj09PT09IFJzcGVjIGZvciBBbGwgU3VwcG9ydCBSdWJ5IFJlc3VsdCA9PT09PQpydWJ5LTIuNi42OiAwCnJ1YnktMi43LjE6IDAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmBgYAoKIyMg8J+UqSBDT1JTCgpVc2UgW3JhY2stY29yc10oaHR0cHM6Ly9naXRodWIuY29tL2N5dS9yYWNrLWNvcnMpIHRvIGVuYWJsZSBDT1JTLgoKYGBgcnVieQpyZXF1aXJlICdyYWNrL2NvcnMnCnVzZSBSYWNrOjpDb3JzIGRvCiAgYWxsb3cgZG8KICAgIG9yaWdpbnMgJyonCiAgICByZXNvdXJjZSAnKicsIGhlYWRlcnM6IDphbnksIG1ldGhvZHM6IFsgOmdldCwgOnBvc3QsIDpwdXQsIDpkZWxldGUsIDpvcHRpb25zIF0KICBlbmQKZW5kCmBgYAoKQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzZXQgQ09SUyBoZWFkZXJzIGluIGEgYGJlZm9yZWAgYmxvY2suCgpgYGBydWJ5CmJlZm9yZSBkbwogIGhlYWRlclsnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJ10gPSAnKicKICBoZWFkZXJbJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kJ10gPSAnKicKZW5kCmBgYAoKIyMg8J+TnSBMaWNlbnNlCgpUaGUgZ2VtIGlzIGF2YWlsYWJsZSBhcyBvcGVuIHNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtNSVQgTGljZW5zZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgoKIyMg8J+knSBDb250cmlidXRpbmcKCjEuIEZvcmsgaXQgKCBodHRwOi8vZ2l0aHViLmNvbS95dWtpaGlyb3AvcjItb2FzL2ZvcmsgKQoyLiBDcmVhdGUgeW91ciBmZWF0dXJlIGJyYW5jaCAoYGdpdCBjaGVja291dCAtYiBteS1uZXctZmVhdHVyZWApCjMuIENvbW1pdCB5b3VyIGNoYW5nZXMgKGBnaXQgY29tbWl0IC1hbSAnQWRkIHNvbWUgZmVhdHVyZSdgKQo0LiBQdXNoIHRvIHRoZSBicmFuY2ggKGBnaXQgcHVzaCBvcmlnaW4gbXktbmV3LWZlYXR1cmVgKQo1LiBDcmVhdGUgbmV3IFB1bGwgUmVxdWVzdAo= readmeEtag: '"6ec17e30d2447980b86ef1490b3a2d6ae31aa884"' readmeLastModified: Fri, 22 Dec 2023 17:00:54 GMT repositoryId: 175621234 description: >- r2-oas allows generation of OpenAPI Specification (V3) from config/routes.rb in Rails application. created: '2019-03-14T12:51:19Z' updated: '2024-08-07T03:24:44Z' language: Ruby archived: false stars: 14 watchers: 2 forks: 4 owner: yukihirop logo: https://avatars.githubusercontent.com/u/11146767?v=4 license: MIT repoEtag: '"5ffc368cbb70bb230b060ae3327c4fbaed9931870a5b7b24388b5fd84e014572"' repoLastModified: Wed, 07 Aug 2024 03:24:44 GMT foundInMaster: true category: Data Validators id: c0d7926604df1b7fdea354fdb2b100b9 - source: openapi3 tags name: openapi-data-validator category: - Data Validators - Parsers repository: https://github.com/authress-engineering/openapi-data-validator.js language: - Node.js - Javascript source_description: >- Validate API requests against an OpenAPI schema. Lightweight, focused, and integrates with any framework link: https://github.com/Rhosys/openapi-data-validator.js/blob/main/README.md v2: false v3: true repositoryMetadata: base64Readme: >- IyMgT3BlbkFQSSBEYXRhIFZhbGlkYXRvcgpMaWdodHdlaWdodCBPcGVuQVBJIGNvbXBsZXRlIHJlcXVlc3QgbW9kZWwgdmFsaWRhdG9yLiBGYXN0LCB1bm9waW5pb25hdGVkLCBmdWxsIGZlYXR1cmVkIHZhbGlkYXRvciBmb3IgQVBJIHJlcXVlc3RzIHRoYXQgdXRpbGl6ZSBPcGVuQVBJIGRvY3MgZm9yIEFQSSBkb2N1bWVudGF0aW9uLgoKVGhpcyBpcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IG1hbmFnZWQgYnkgdGhlIFtBdXRocmVzcyBFbmdpbmVlcmluZyB0ZWFtXShodHRwczovL2F1dGhyZXNzLmlvKS4KClshW0F1dGhyZXNzIEVuZ2luZWVyaW5nXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1BdXRocmVzcytFbmdpbmVlcmluZyZtZXNzYWdlPU9wZW5BUEklMjBEYXRhJTIwVmFsaWRhdG9yJmNvbG9yPSUyM0ZCQUYwQiZsb2dvPWFuZHJvaWRhdXRvJmxvZ29Db2xvcj0lMjNGQkFGMEIpXShodHRwczovL2F1dGhyZXNzLmlvKSBbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW5hcGktZGF0YS12YWxpZGF0b3Iuc3ZnKV0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW5hcGktZGF0YS12YWxpZGF0b3IpCgojIyBVc2FnZQpJdCBpcyBzaW1wbGUsIGFuZCB0aGF0J3MgYWxsIHRoZXJlIGlzIHRvIGl0IQoKYGBgc2gKbnBtIGluc3RhbGwgb3BlbmFwaS1kYXRhLXZhbGlkYXRvciAtLXNhdmUKYGBgCgpgYGBqcwpjb25zdCB7IE9wZW5BcGlWYWxpZGF0b3IgfSA9IHJlcXVpcmUoJ29wZW5hcGktZGF0YS12YWxpZGF0b3InKTsKY29uc3Qgc3BlYyA9IHJlcXVpcmUoJy4vb3BlbmFwaS5qc29uJyk7Cgpjb25zdCBvcGVuQXBpVmFsaWRhdG9yID0gbmV3IE9wZW5BcGlWYWxpZGF0b3IoeyBhcGlTcGVjOiBzcGVjIH0pOwpjb25zdCB2YWxpZGF0b3IgPSBvcGVuQXBpVmFsaWRhdG9yLmNyZWF0ZVZhbGlkYXRvcigpOwoKLy8gQ29uZmlndXJlIHRoaXMgdG8gdGhlIGNsaWVudCdzIHJlcXVlc3QuIEl0IHdpbGwgcmVzb2x2ZSB0aGUgZXhwZWN0ZWQgc2NoZW1hIGluIHRoZSBzcGVjIHVzaW5nIHRoZSBtZXRob2QgYW5kIHJvdXRlIGRlZmluZWQsIGFuZCB2YWxpZGF0ZSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzLgpjb25zdCBuZXdSZXF1ZXN0ID0gewogIG1ldGhvZDogJ0dFVCcsCiAgLy8gTWF0Y2hlZCBvcGVuYXBpIHNwZWNpZmljYXRpb24gZ2VuZXJpYyByb3V0ZSwgdGhpcyBzaG91bGQgYmUgdGhlIGdlbmVyaWMgYHBhdGhgIGZyb20gdGhlIHNwZWMsIHN1Y2ggYXMgYC9yZXNvdXJjZXMve3Jlc291cmNlSWR9L2AsIGl0IG11c3QgbWF0Y2ggb25lIG9mIHRoZW0gZXhhY3RseS4KICByb3V0ZTogcmVxdWVzdC5yb3V0ZQoKICBoZWFkZXJzOiB7IEF1dGhvcml6YXRpb246ICdCZWFyZXIgVG9rZW4nIH0sCiAgCiAgLy8gUXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMgZnJvbSB0aGUgcmVxdWVzdAogIHF1ZXJ5OiB7IGxpbWl0OiAxMCB9LAogIAogIC8vIEJvZHkgYWxyZWFkeSBwYXJzZWQgdG8gSlNPTgogIGJvZHk6IHsgZmllbGQ6IHRydWUgfSwKCiAgLy8gUGF0aCBwYXJhbWV0ZXJzCiAgcGF0aDogeyB1c2VyOiAndXNlcklkJyB9Cn07CmF3YWl0IHZhbGlkYXRvcihuZXdSZXF1ZXN0KTsKYGBgCgojIyBDb21waWxlIHZhbGlkYXRvcgpGb3IgaW1wcm92ZWQgcHJvY2Vzc2luZyBzcGVlZCB0aGUgdmFsaWRhdG9yIGNhbiBiZSBwcmUtY29tcGlsZWQgZnJvbSB0aGUgc3BlYwoKYGBganMKY29uc3Qgb3BlbkFwaVZhbGlkYXRvciA9IG5ldyBPcGVuQXBpVmFsaWRhdG9yKHsgYXBpU3BlYzogc3BlYywgY29tcGlsZWRGaWxlUGF0aDogJy4vY29tcGlsZWRWYWxpZGF0b3IuanNvbicgfSk7CmF3YWl0IG9wZW5BcGlWYWxpZGF0b3IuY29tcGlsZVZhbGlkYXRvcigpOwovLyBMYXRlcgpjb25zdCB2YWxpZGF0b3IgPSBhd2FpdCBvcGVuQXBpVmFsaWRhdG9yLmxvYWRWYWxpZGF0aW9uKCk7CgovLyAuLi4KYXdhaXQgdmFsaWRhdG9yKHJlcXVlc3QpOwpgYGAKCkNoZWNrb3V0IHRoZSBmdWxsOiBbQXN5bmMgZXhhbXBsZV0oLi9kb2NzL2FzeW5jLWV4YW1wbGUubWQpCgojIyBGQVFzCgojIyMjIFdoeSBub3QganVzdCB1c2UgQUpWCkFKViBpcyB0aGUgYmVzdCwgYnV0IHRoZXJlIGFyZSBzb21lIHRoaW5ncyB0aGF0IGp1c3QgYXJlIHZlcnkgT3BlbkFQSSBzcGVjaWZpYyB0aGF0IGRvbid0IG1ha2Ugc2Vuc2UgdG8gYmUgaW4gdGhlIHZhbGlkYXRvci4gRG9uJ3QgbmVlZCB0aGVtPyBHcmVhdCwgZ28gdXNlIEFKVi4KCiogVG9wIGxldmVsIGRlZmluZWQgUGF0aCBwYXJhbWV0ZXJzIC0gQUpWIGRvZXNuJ3QgdW5kZXJzdGFuZAoqIElubGluZSByZXF1ZXN0IGJvZHkgZGVmaW5pdGlvbnMsIEFKViBkb2Vzbid0IHVuZGVyc3RhbmQgc2NoZW1hIGRlZmluZWQgaW4gdGhlIG1ldGhvZCwgaXQgaGFzIHRvIGJlIGluIGEgY29tcG9uZW50CiogQm9keSBDb250ZW50LVR5cGUgdmFsaWRhdGlvbiAtIFJlcXVlc3QgYm9kaWVzIHdpdGggbXVsdGlwbGUgY29udGVudCB0eXBlcyBhbGxvd2VkCg== readmeEtag: '"83712693f8165c9b29fdb87cddc5f5574e655383"' readmeLastModified: Tue, 31 Oct 2023 18:33:44 GMT repositoryId: 373612289 description: OpenAPI Request Validation for API for any framework created: '2021-06-03T18:58:54Z' updated: '2024-02-02T15:27:14Z' language: JavaScript archived: false stars: 14 watchers: 4 forks: 6 owner: Authress-Engineering logo: https://avatars.githubusercontent.com/u/35577654?v=4 license: Apache-2.0 repoEtag: '"a2d33c1026c3417e01d15ebf34b00a6946ac5dcab5cdbafbfc4d62463696f8a7"' repoLastModified: Fri, 02 Feb 2024 15:27:14 GMT foundInMaster: true id: c64a20817064b7b24a1f079a7b7b5363 oldLocations: - https://github.com/rhosys/openapi-data-validator.js - source: openapi3 tags repository: https://github.com/ckaratzas/tus-server-implementation v3: true repositoryMetadata: base64Readme: >- IyBUVVMgU2VydmVyIEphdmEgSW1wbGVtZW50YXRpb24KQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFR1cyBSZXN1bWFibGUgVXBsb2FkIHByb3RvY29sIFtodHRwczovL3R1cy5pby9wcm90b2NvbHMvcmVzdW1hYmxlLXVwbG9hZC5odG1sXSBpbiBqYXZhLiBWZXJ0eC1XZWIgaXMgdXNlZCBmb3IgdGhlIGh0dHAgc3RhY2sgcGFydAphbmQgcmVkaXMgYXMgdGhlIGJhY2tlbmQgZm9yIHVwbG9hZCBpbmZvcm1hdGlvbiBtYW5hZ2VtZW50LgpFeHRlbnNpb25zIHN1cHBvcnRlZCBhcmUgY3JlYXRpb24sY2hlY2tzdW0sdGVybWluYXRpb24sY29uY2F0ZW5hdGlvbi4gVGhlIHB1cnBvc2Ugb2YgdGhpcyByZXBvc2l0b3J5IGlzIHRvIHByb3ZpZGUgYSBUdXMgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24gYWdub3N0aWMKb2YgdGhlIHVuZGVybHlpbmcgc3RvcmFnZSBwcm92aWRlciB0aHVzIGFsbG93aW5nIGltcGxlbWVudG9ycyB0byBmb2N1cyBvbiB0aGVpciBidXNpbmVzcyBsb2dpYyBhbmQgc3BlY2lmaWMgbmVlZHMuCkFuIGlzc3VlIHRoYXQgaXMgbm90IGEgY29uY2VybiBvZiB0aGUgcHJvdG9jb2wgYnV0IGNvdWxkIGJlIGFuIGV4dGVuc2lvbiBpcyB0aGUgaGFuZGxpbmcgb2YgdGhlIGxvY2tzIGR1cmluZyBhIHBhdGNoIG9wZXJhdGlvbi4gU28gd2hlbiBhIHBhdGNoIGlzIGluaXRpYXRlZAphIGxvY2sgaXMgYWNxdWlyZWQgKGZvciBtb3N0IG9idmlvdXMgY2FzZXMpIHRvIGVuc3VyZSBjb25zaXN0ZW5jeS4gSWYgdGhlIHByb2Nlc3MgdHJpZ2dlcmVkIGZyb20gcGF0Y2ggZmFpbHMgYW5kIGxvY2sgaXMgbm90IHJlbGVhc2VkIHRoZXJlIGlzIGEgCnBoYW50b20gbG9jayByZW1haW5pbmcuIFRoaXMgZWRnZSBjYXNlIGNvdWxkIGJlIG1pdGlnYXRlZCBieSBlaXRoZXIgbWFraW5nIHRoZSBzZXJ2ZXIgc3RpY2t5IGFuZCBrZWVwaW5nIHRoZSBsb2NrcyBpbi1wcm9jZXNzIG9yIGJ5IHBlcmhhcHMgaXNzdWluZyBhIApyZWxlYXNlIHJlcXVlc3Qgd2l0aCBhIGxvY2sgdG9rZW4gb2J0YWluZWQgYnkgdGhlIGluaXRpYXRvciBvZiB0aGUgdXBsb2FkLgpObyBhdXRoZW50aWNhdGlvbiB2YWx2ZXMgYXJlIGltcGxlbWVudGVkIGhlcmUgYWxzby4KCiMgSW5zdHJ1Y3Rpb25zClRvIGp1c3QgYnVpbGQgdGhlIHR1cy1zZXJ2ZXItaW1wbGVtZW50YXRpb24ganVzdDoKCmBgYGNkIDxyb290PmBgYAoKYGBgbXZuIGNsZWFuIGluc3RhbGxgYGAKClRvIGJ1aWxkIHRoZSBkb2NrZXIgaW1hZ2UgZm9yIHRoZSB0dXMtc2VydmVyLWltcGxlbWVudGF0aW9uIGp1c3QgKGRvY2tlciBlZGdlIHJlbGVhc2UgW2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VkZ2UvXSBpcyByZXF1aXJlZCEpOgoKYGBgY2QgPHJvb3Q+YGBgCgpgYGBkb2NrZXIgYnVpbGQgLXQgdHVzX3NlcnZlciAuYGBgCgpJbiBvcmRlciB0byBydW4gdHVzLXNlcnZlci1pbXBsZW1lbnRhdGlvbiBhbG9uZyB3aXRoIGFsbCBkZXBlbmRlbmNpZXMganVzdCAoYXNzdW1pbmcgeW91IGFscmVhZHkgaGF2ZSB0aGUgZG9ja2VyIGltYWdlIGJ1aWx0IGZyb20gYWJvdmUpOgoKYGBgY2QgPHJvb3Q+YGBgCgpgYGBkb2NrZXItY29tcG9zZSAtZiB0dXMtc2VydmVyLnltbCB1cGBgYAoKSW4gb3JkZXIgdG8gc2V0dXAgdGhlIHR1cy1zZXJ2ZXItaW1wbGVtZW50YXRpb24gZm9yIGRldmVsb3BtZW50IGZyb20geW91ciBmYXZvcml0ZSBJREUgcmVkaXMgcnVubmluZyBpcyByZXF1aXJlZDoKCmBgYGNkIDxyb290PmBgYAoKYGBgZG9ja2VyLWNvbXBvc2UgLWYgcmVkaXMueW1sIHVwYGBgCgpBZnRlciB0aGF0IGluIG9yZGVyIHRvIHJ1biB0aGUgdHVzLXNlcnZlci1pbXBsZW1lbnRhdGlvbiBmcm9tIGluc2lkZSB5b3VyIGZhdm9yaXRlIElERSBqdXN0OgpSdW4gdGhlIGNvbS50dXMub3NzLnNlcnZlci5hcHBsaWNhdGlvbi5BcHBsaWNhdGlvbiBtYWluIGNsYXNzIAp3aXRoIHByb2dyYW0gYXJndW1lbnRzOgogLWMgPHJvb3Q+L2NvbmZpZ3VyYXRpb24vIC1iIHR1cy1zZXJ2ZXItYmVhbnMueG1sCmFuZCBWTSBwYXJhbWV0ZXJzOiAtRGxvZ2dpbmcuY29uZmlnPWZpbGU6PHJvb3Q+L2NvbmZpZ3VyYXRpb24vbG9nYmFjay54bWwKUmVkaXMgbXVzdCBiZSBsaXZlIGFsc28gKHNlZSBhYm92ZSBob3cgdG8gcnVuIGl0KQoKIyBUZXN0aW5nCkluIHRoZSB0ZXN0IGZvbGRlcjoKVGhlcmUgaXMgYSB2ZXJ5IHNpbXBsZSB1cGxvYWQgdGVzdCB0aGF0IHVzZXMgdHVzLWphdmEtY2xpZW50IFtodHRwczovL2dpdGh1Yi5jb20vdHVzL3R1cy1qYXZhLWNsaWVudF0uIApUaGVyZSBhcmUgYWxzbyBjdXJsIHRlc3RzIHRoYXQgdGVzdCBzaW1wbGUgdXBsb2FkIGFuZCBwYXJ0aWFsIHVwbG9hZHMgKGNvbmNhdGVuYXRpb24gZXh0ZW5zaW9uKQo= readmeEtag: '"b8fbdc615a000a14734483efc3465bad6c840924"' readmeLastModified: Sun, 04 Feb 2018 21:09:29 GMT repositoryId: 118587778 description: >- A java implementation of https://tus.io/protocols/resumable-upload.html protocol with vertx-web. created: '2018-01-23T09:26:44Z' updated: '2024-03-22T12:02:19Z' language: Java archived: false stars: 13 watchers: 2 forks: 1 owner: ckaratzas logo: https://avatars.githubusercontent.com/u/35725079?v=4 license: MIT repoEtag: '"23a56def3f8124354ea0fdde8e1430603b900f15e9d8f8ef82a75ac05250e784"' repoLastModified: Fri, 22 Mar 2024 12:02:19 GMT foundInMaster: true category: Server Implementations id: e81e01372ba901858d7fe6cb28c44c60 - source: openapi3 tags repository: https://github.com/alekshura/sourceapi v3: true repositoryMetadata: base64Readme: >- IyA8aW1nIHNyYz0iL0NvbXBlbnRpby5Bc3NldHMvTG9nby5wbmciIGFsaWduPSJsZWZ0IiB3aWR0aD0iNTAiPiBTb3VyY2VBcGkKClshW051R2V0XShodHRwOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9Db21wZW50aW8uU291cmNlQXBpLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Db21wZW50aW8uU291cmNlQXBpKQohW051Z2V0XShodHRwczovL2ltZy5zaGllbGRzLmlvL251Z2V0L2R0L0NvbXBlbnRpby5Tb3VyY2VBcGkpCiFbR2l0SHViXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2FsZWtzaHVyYS9Tb3VyY2VBcGkpCiFbR2l0SHViIHRvcCBsYW5ndWFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFuZ3VhZ2VzL3RvcC9hbGVrc2h1cmEvU291cmNlQXBpKQoKIyBJbnRyb2R1Y3Rpb24KVHdvIGRpZmZlcmVudCBhcHByb2FjaGVzIGZvciBXZWIgQVBJIGltcGxlbWVudGF0aW9uIG9mdGVuIHVzZWQgYnkgZGV2ZWxvcG1lbnQgdGVhbXM6IGBjb2RlIGZpcnN0YCBhbmQgYEFQSSBmaXJzdGAuCkR1cmluZyB0aGUgYGNvZGUgZmlyc3RgIGFwcHJvYWNoIFdlYiBBUEkgQ29udHJvbGxlcnMgYXJlIGltcGxlbWVudGVkLCBTd2FnZ2VyL09wZW4gQVBJIGxpYnJhcmllcyBhcmUgYWRkZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGFuZCBmaW5uYWx5IGl0IGRlcGxveWVkLgpPcGVuIEFQSSBsaWJyYXJpZXMgYWN0dWFsbHkgYWRkcyBhIG1pZGRsZXdhcmVzIHRvIGFwcGxpY2F0aW9uIHdoaWNoIHNlcnZlIE9wZW4gQVBJIGRlZmluaXRpb25zLCAKU3dhZ2dlciBVSSB0aHVzIHRoZSBjbGllbnRzIGNhbiB1c2UgdGhpcyBkZWZpbml0aW9ucyB0byBnZW5lcmF0ZSBjb2RlIG9yIHVzZSB0ZXN0IEFQSSB1c2luZyBVSS4gICAgCgpJbiBzZWNvbmQsIGBBUEkgRmlyc3RgIGFwcHJvYWNoLCBBUEkgZGVmaW5lZCBpbiBganNvbmAgb3IgYHlhbWxgIGZpbGVzIHVzaW5nIFtPcGVuIEFQSSBzdGFuZGFyZF0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKSBmaXJzdCBhbmQgYWZ0ZXIgdGhhdApzZXJ2ZXIgb3IgY2xpZW50IGNvZGUsIGludGVyZmFjZXMgb3IgRFRPJ3MgYXJlIGdlbmVyYXRlZCBpbiBhcHBsaWNhdGlvbi4KClRoaXMgYXBwcm9hY2ggaXMgdGVjaG5vbG9neSBhZ25vc3RpYzogQVBJIGNhbiBiZSBkaXNpZ25lZCBpbmRlcGVuZGVudGx5IGZyb20gdGVjaG5vbG9naWVzIHVzZWQgaW4gY2xvdWQgbmF0aXZlIGFyY2hpdGVjdHVyZSB3aXRoIGEgd2lkZSB0ZWNoIHN0YWNrLCB0aGVuIApzaGFyZWQgYmV0d2VlbiBkZWZmZXJlbnQgdGVhbXMgKGBKYXZhYCwgYC5ORVRgLCBgTm9kZUpTYCwgYEZyb250ZW5kYCwgZWN0LikgYW5kIGVjaCB0ZWFtIGNhbiBkZWNpZGUgYWJvdXQgd2hhdCBoYXMgdG8gYmUgZG9uZSB3aXRoIGl0OiB0byBnZW5lcmF0ZSBvbmx5IERUTydzLCBvciAKY3JlYXRlIGJhc2UgYWJzdHJhY3QgY29udHJvbGxlcnMsIHdpdGggcm91dGVzLCBkb2N1bWVudGF0aW9uIGFuZCBEVE8ncyBvciB0byBnZW5lcmF0ZSBjbGllbnQgY29kZSBmb3IgY29uc3VtZSB0aGUgQVBJLgoKYFNvdXJjZUFwaWAgaXMgYSBjb2RlIGdlbmVyYXRvciB0aGF0IGhlbHBzIHRvIHVzZSBgQVBJIEZpcnN0YCBhcHByb2FjaCBmb3IgLk5FVCBDb3JlIDMrIChhbHNvIC5ORVQgNSspIFdlYiBBUEkgYXBwbGljYXRpb25zOgpkdXJpbmcgZGVzaWduIHRpbWUgaW4gVmlzdWFsIFN0dWRpbyBJREUgaXQgZ2VuZXJhdGVzIGFic3RyYWN0IGJhc2UgQ29udHJvbGxlcnMgY2xhc3NlcyBhbmQgRFRPJ3MgdGhhdCBjYW4gYmUgdXNlZCBieSBkZXZlbG9wZXIgdG8gaW1wbGVtZW50IHRoZSB0YXJnZXQgZnVuY3Rpb25hbGl0eS4KCkl0IGlzIGJhc2VkIG9uIFtTb3VyY2UgR2VuZXJhdG9ycyBBZGRpdGlvbmFsIEZpbGUgVHJhbnNhZm9ybWF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vZG90bmV0L3Jvc2x5bi9ibG9iL21haW4vZG9jcy9mZWF0dXJlcy9zb3VyY2UtZ2VuZXJhdG9ycy5jb29rYm9vay5tZCNhZGRpdGlvbmFsLWZpbGUtdHJhbnNmb3JtYXRpb24pIGZlYXR1cmUKd2hlcmUgaXQgaXMgcG9zc2libGUgdG8gYmUgYWJsZSB0byB0cmFuc2Zvcm0gYW4gZXh0ZXJuYWwgbm9uLUMjIGZpbGUgaW50byBhbiBlcXVpdmFsZW50IEMjIHJlcHJlc2VudGF0aW9uLgoKUmljbyBTdXRlcidzIFtOU3dhZ10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZykgaXMgdXNlZCB1bmRlcmhvb2Q6Ci0gW0NTaGFycENvbnRyb2xsZXJHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDb250cm9sbGVyR2VuZXJhdG9yKSBpcyB1c2VkIGZvciBhYnN0cmFjdCBiYXNlIGNvbnRyb2xsZXJzIGNvZGUgZ2VuZXJhdGlvbgotIFtDU2hhcnBDbGllbnRHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpIHVzZWQgZm9yIERUTydzIG9ubHkgY29kZSBnZW5lcmF0aW9uIG1vZGUuIAoKIyBJbnN0YWxsYXRpb24KSW5zdGFsbCB1c2luZyBudWdldCBwYWNrYWdlIG1hbmFnZXI6CgpgYGBjb25zb2xlCkluc3RhbGwtUGFja2FnZSBDb21wZW50aW8uU291cmNlQXBpCmBgYAoKb3IgYC5ORVQgQ0xJYDoKCmBgYGNvbnNvbGUKZG90bmV0IGFkZCBwYWNrYWdlIENvbXBlbnRpby5Tb3VyY2VBcGkKYGBgCgojIEhvdyB0byB1c2UKSW4gYmFzaWMgYW5kIG1vc3Qgc2ltcGxlIHNjZW5hcmlvOiBhZGQgT3BlbiBBUEkgZGVmaW5pdGlvbiBmaWxlIG9yIGZpbGVzIChgKi5qc29uYCBhbmQgYCoueWFtbGAgZm9ybWF0cyBhcmUgc3VwcG9ydGVkKSB0byB5b3UgcHJvamVjdCBhcyBgQWRkaXRpb25hbEZpbGVzYDoKCj5gYGB4bWwKPjxJdGVtR3JvdXA+Cj4gICA8QWRkaXRpb25hbEZpbGVzIEluY2x1ZGU9Ik9wZW5BcGkvUGV0cy5qc29uIj4KPiAgICAgPENvcHlUb091dHB1dERpcmVjdG9yeT5QcmVzZXJ2ZU5ld2VzdDwvQ29weVRvT3V0cHV0RGlyZWN0b3J5Pgo+ICAgPC9BZGRpdGlvbmFsRmlsZXM+Cj4gICA8QWRkaXRpb25hbEZpbGVzIEluY2x1ZGU9Ik9wZW5BcGkvVXNlcnMueWFtbCI+Cj4gICAgIDxDb3B5VG9PdXRwdXREaXJlY3Rvcnk+UHJlc2VydmVOZXdlc3Q8L0NvcHlUb091dHB1dERpcmVjdG9yeT4KPiAgIDwvQWRkaXRpb25hbEZpbGVzPgo+IDwvSXRlbUdyb3VwPiAKCm9yIGluIGZpbGUgcHJvcGVydGllcyBpbiBWaXN1YWwgU3R1ZGlvOgoKPGltZyBzcmM9Ii9Db21wZW50aW8uQXNzZXRzL0FkZGl0aW9uYWxGaWxlLnBuZyIgYWxpZ249ImNlbnRlciIgd2lkdGg9Ijk1JSI+CgpZb3Ugd2lsbCBzZWUgZ2VuZXJhdGVkIGFic3RyYWN0IGNvbnRyb2xsZXJzIGluIAo+IERlcGVuZGVuY2llcyAtPiBBbmFseXplcnMgLT4gQ29tcGVudGlvLlNvdXJjZUFwaSA+IENvbXBlbnRpby5Tb3VyY2VBcGkuR2VuZXJhdG9yLgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9Ii9Db21wZW50aW8uQXNzZXRzL0dlbmVyYXRlZEZpbGVzLnBuZyIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjUwJSI+CjwvcD4KCj4hIEZvciBub3cgdXNlIG9uZSBPcGVuIEFQSSBmaWxlIHBlciBjb250cm9sbGVyLiBbT3BlbiBBUEkgVGFnc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9ncm91cGluZy1vcGVyYXRpb25zLXdpdGgtdGFncy8pIGFyZSBub3Qgc3VwcG9ydGVkLgoKTm93IHlvdSBjYW4gdXNlIHRoZXNlIGJhc2UgY29udHJvbGxlcnMgZHVyaW5nIGltcGxlbWVudGF0aW9uIG9mIHlvdSBXZWIgQVBJLiBUaGUgRFRPJ3MgYXJlIGdlbmVyYXRlZCwgcm91dGVzIGFyZSBkZWZpbmVkLCBkb2N1bWVudGF0aW9uIGZvciB0aGUgQVBJIG1ldGhvZHMgYWxzbyB1c2VkIGZyb20gCk9wZW4gQVBJIGRlZmluaXRpb25zOgoKYGBgY3MKW0FwaUNvbnRyb2xsZXJdCltBcGlDb252ZW50aW9uVHlwZSh0eXBlb2YoRGVmYXVsdEFwaUNvbnZlbnRpb25zKSldCnB1YmxpYyBjbGFzcyBTdG9yZUNvbnRyb2xsZXIgOiBTdG9yZUNvbnRyb2xsZXJCYXNlCnsKCS8vLyA8aW5oZXJpdGRvYyAvPgoJcHVibGljIG92ZXJyaWRlIFRhc2s8SUFjdGlvblJlc3VsdD4gRGVsZXRlT3JkZXIoW0JpbmRSZXF1aXJlZF0gbG9uZyBvcmRlcklkKQoJewoJCXRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbigpOwoJfQoKCS8vLyA8aW5oZXJpdGRvYyAvPgoJcHVibGljIG92ZXJyaWRlIFRhc2s8QWN0aW9uUmVzdWx0PElEaWN0aW9uYXJ5PHN0cmluZywgaW50Pj4+IEdldEludmVudG9yeSgpCgl7CgkJdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCk7Cgl9CgoJLy8vIDxpbmhlcml0ZG9jIC8+CglwdWJsaWMgb3ZlcnJpZGUgVGFzazxBY3Rpb25SZXN1bHQ8T3JkZXI+PiBHZXRPcmRlckJ5SWQoW0JpbmRSZXF1aXJlZF0gbG9uZyBvcmRlcklkKQoJewoJCXRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbigpOwoJfQoKCS8vLyA8aW5oZXJpdGRvYyAvPgoJcHVibGljIG92ZXJyaWRlIFRhc2s8QWN0aW9uUmVzdWx0PE9yZGVyPj4gUGxhY2VPcmRlcihbQmluZFJlcXVpcmVkLCBGcm9tQm9keV0gT3JkZXIgYm9keSkKCXsKCQl0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oKTsKCX0KfQpgYGAKCj4hIFlvdSBuZWVkIHRvIGFkZCBgPGluaGVyaXRkb2MgLz5gIHRhZyB0byBzaG93IGRvY3VtZW50YXRpb24gZnJvbSBiYXNlIGNsYXNzIGluIFN3YWdnZXIuCgpBbmQgZXhhbXBsZSBvZiBnZW5lcmF0ZWQgY29kZSBmb3IgYmFzZSBjb250cm9sbGVyIGNsYXNzOgoKYGBgY3MKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyA8YXV0by1nZW5lcmF0ZWQ+Ci8vICAgICBHZW5lcmF0ZWQgdXNpbmcgdGhlIE5Td2FnIHRvb2xjaGFpbiB2MTMuMTMuMi4wIChOSnNvblNjaGVtYSB2MTAuNS4yLjAgKE5ld3RvbnNvZnQuSnNvbiB2MTIuMC4wLjIpKSAoaHR0cDovL05Td2FnLm9yZykKLy8gPC9hdXRvLWdlbmVyYXRlZD4KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNwcmFnbWEgd2FybmluZyBkaXNhYmxlIDEwOCAvLyBEaXNhYmxlICJDUzAxMDggJ3tkZXJpdmVkRHRvfS5Ub0pzb24oKScgaGlkZXMgaW5oZXJpdGVkIG1lbWJlciAne2R0b0Jhc2V9LlRvSnNvbigpJy4gVXNlIHRoZSBuZXcga2V5d29yZCBpZiBoaWRpbmcgd2FzIGludGVuZGVkLiIKCiNwcmFnbWEgd2FybmluZyBkaXNhYmxlIDExNCAvLyBEaXNhYmxlICJDUzAxMTQgJ3tkZXJpdmVkRHRvfS5SYWlzZVByb3BlcnR5Q2hhbmdlZChTdHJpbmcpJyBoaWRlcyBpbmhlcml0ZWQgbWVtYmVyICdkdG9CYXNlLlJhaXNlUHJvcGVydHlDaGFuZ2VkKFN0cmluZyknLiBUbyBtYWtlIHRoZSBjdXJyZW50IG1lbWJlciBvdmVycmlkZSB0aGF0IGltcGxlbWVudGF0aW9uLCBhZGQgdGhlIG92ZXJyaWRlIGtleXdvcmQuIE90aGVyd2lzZSBhZGQgdGhlIG5ldyBrZXl3b3JkLiIKCiNwcmFnbWEgd2FybmluZyBkaXNhYmxlIDQ3MiAvLyBEaXNhYmxlICJDUzA0NzIgVGhlIHJlc3VsdCBvZiB0aGUgZXhwcmVzc2lvbiBpcyBhbHdheXMgJ2ZhbHNlJyBzaW5jZSBhIHZhbHVlIG9mIHR5cGUgJ0ludDMyJyBpcyBuZXZlciBlcXVhbCB0byAnbnVsbCcgb2YgdHlwZSAnSW50MzI/JwoKI3ByYWdtYSB3YXJuaW5nIGRpc2FibGUgMTU3MyAvLyBEaXNhYmxlICJDUzE1NzMgUGFyYW1ldGVyICcuLi4nIGhhcyBubyBtYXRjaGluZyBwYXJhbSB0YWcgaW4gdGhlIFhNTCBjb21tZW50IGZvciAuLi4KCiNwcmFnbWEgd2FybmluZyBkaXNhYmxlIDE1OTEgLy8gRGlzYWJsZSAiQ1MxNTkxIE1pc3NpbmcgWE1MIGNvbW1lbnQgZm9yIHB1YmxpY2x5IHZpc2libGUgdHlwZSBvciBtZW1iZXIgLi4uIgoKI3ByYWdtYSB3YXJuaW5nIGRpc2FibGUgODA3MyAvLyBEaXNhYmxlICJDUzgwNzMgVGhlIHJlc3VsdCBvZiB0aGUgZXhwcmVzc2lvbiBpcyBhbHdheXMgJ2ZhbHNlJyBzaW5jZSBhIHZhbHVlIG9mIHR5cGUgJ1QnIGlzIG5ldmVyIGVxdWFsIHRvICdudWxsJyBvZiB0eXBlICdUPyciCgojcHJhZ21hIHdhcm5pbmcgZGlzYWJsZSAzMDE2IC8vIERpc2FibGUgIkNTMzAxNiBBcnJheXMgYXMgYXR0cmlidXRlIGFyZ3VtZW50cyBpcyBub3QgQ0xTLWNvbXBsaWFudCIKCm5hbWVzcGFjZSBDb21wZW50aW8uU291cmNlQXBpLldlYkV4YW1wbGUuQ29udHJvbGxlcnMKewogICAgdXNpbmcgU3lzdGVtID0gZ2xvYmFsOjpTeXN0ZW07CgogICAgW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIk5Td2FnIiwgIjEzLjEzLjIuMCAoTkpzb25TY2hlbWEgdjEwLjUuMi4wIChOZXd0b25zb2Z0Lkpzb24gdjEyLjAuMC4yKSkiKV0KICAgIFtNaWNyb3NvZnQuQXNwTmV0Q29yZS5NdmMuUm91dGUoImFwaS92MSIpXQogICAgcHVibGljIGFic3RyYWN0IGNsYXNzIFN0b3JlQ29udHJvbGxlckJhc2UgOiBNaWNyb3NvZnQuQXNwTmV0Q29yZS5NdmMuQ29udHJvbGxlckJhc2UKICAgIHsKICAgICAgICAvLy8gPHN1bW1hcnk+UmV0dXJucyBwZXQgaW52ZW50b3JpZXMgYnkgc3RhdHVzPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cmV0dXJucz5zdWNjZXNzZnVsIG9wZXJhdGlvbjwvcmV0dXJucz4KICAgICAgICBbTWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLkh0dHBHZXQsIE1pY3Jvc29mdC5Bc3BOZXRDb3JlLk12Yy5Sb3V0ZSgic3RvcmUvaW52ZW50b3J5IildCiAgICAgICAgcHVibGljIGFic3RyYWN0IFN5c3RlbS5UaHJlYWRpbmcuVGFza3MuVGFzazxNaWNyb3NvZnQuQXNwTmV0Q29yZS5NdmMuQWN0aW9uUmVzdWx0PFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLklEaWN0aW9uYXJ5PHN0cmluZywgaW50Pj4+IEdldEludmVudG9yeSgpOwogICAgICAgIC8vLyA8c3VtbWFyeT5QbGFjZSBhbiBvcmRlciBmb3IgYSBwZXQ8L3N1bW1hcnk+CiAgICAgICAgLy8vIDxwYXJhbSBuYW1lID0gImJvZHkiPm9yZGVyIHBsYWNlZCBmb3IgcHVyY2hhc2luZyB0aGUgcGV0PC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgW01pY3Jvc29mdC5Bc3BOZXRDb3JlLk12Yy5IdHRwUG9zdCwgTWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLlJvdXRlKCJzdG9yZS9vcmRlciIpXQogICAgICAgIHB1YmxpYyBhYnN0cmFjdCBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzLlRhc2s8TWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLkFjdGlvblJlc3VsdDxPcmRlcj4+IFBsYWNlT3JkZXIoW01pY3Jvc29mdC5Bc3BOZXRDb3JlLk12Yy5Gcm9tQm9keV1bTWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLk1vZGVsQmluZGluZy5CaW5kUmVxdWlyZWRdIE9yZGVyIGJvZHkpOwogICAgICAgIC8vLyA8c3VtbWFyeT5GaW5kIHB1cmNoYXNlIG9yZGVyIGJ5IElEPC9zdW1tYXJ5PgogICAgICAgIC8vLyA8cGFyYW0gbmFtZSA9ICJvcmRlcklkIj5JRCBvZiBwZXQgdGhhdCBuZWVkcyB0byBiZSBmZXRjaGVkPC9wYXJhbT4KICAgICAgICAvLy8gPHJldHVybnM+c3VjY2Vzc2Z1bCBvcGVyYXRpb248L3JldHVybnM+CiAgICAgICAgW01pY3Jvc29mdC5Bc3BOZXRDb3JlLk12Yy5IdHRwR2V0LCBNaWNyb3NvZnQuQXNwTmV0Q29yZS5NdmMuUm91dGUoInN0b3JlL29yZGVyL3tvcmRlcklkfSIpXQogICAgICAgIHB1YmxpYyBhYnN0cmFjdCBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzLlRhc2s8TWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLkFjdGlvblJlc3VsdDxPcmRlcj4+IEdldE9yZGVyQnlJZChbTWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLk1vZGVsQmluZGluZy5CaW5kUmVxdWlyZWRdIGxvbmcgb3JkZXJJZCk7CiAgICAgICAgLy8vIDxzdW1tYXJ5PkRlbGV0ZSBwdXJjaGFzZSBvcmRlciBieSBJRDwvc3VtbWFyeT4KICAgICAgICAvLy8gPHBhcmFtIG5hbWUgPSAib3JkZXJJZCI+SUQgb2YgdGhlIG9yZGVyIHRoYXQgbmVlZHMgdG8gYmUgZGVsZXRlZDwvcGFyYW0+CiAgICAgICAgW01pY3Jvc29mdC5Bc3BOZXRDb3JlLk12Yy5IdHRwRGVsZXRlLCBNaWNyb3NvZnQuQXNwTmV0Q29yZS5NdmMuUm91dGUoInN0b3JlL29yZGVyL3tvcmRlcklkfSIpXQogICAgICAgIHB1YmxpYyBhYnN0cmFjdCBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzLlRhc2s8TWljcm9zb2Z0LkFzcE5ldENvcmUuTXZjLklBY3Rpb25SZXN1bHQ+IERlbGV0ZU9yZGVyKFtNaWNyb3NvZnQuQXNwTmV0Q29yZS5NdmMuTW9kZWxCaW5kaW5nLkJpbmRSZXF1aXJlZF0gbG9uZyBvcmRlcklkKTsKICAgIH0KCiAgICBbU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZSgiTkpzb25TY2hlbWEiLCAiMTAuNS4yLjAgKE5ld3RvbnNvZnQuSnNvbiB2MTIuMC4wLjIpIildCiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBPcmRlcgogICAgewogICAgICAgIFtOZXd0b25zb2Z0Lkpzb24uSnNvblByb3BlcnR5KCJpZCIsIFJlcXVpcmVkID0gTmV3dG9uc29mdC5Kc29uLlJlcXVpcmVkLkRpc2FsbG93TnVsbCwgTnVsbFZhbHVlSGFuZGxpbmcgPSBOZXd0b25zb2Z0Lkpzb24uTnVsbFZhbHVlSGFuZGxpbmcuSWdub3JlKV0KICAgICAgICBwdWJsaWMgbG9uZyBJZCB7IGdldDsgc2V0OyB9CgogICAgICAgIFtOZXd0b25zb2Z0Lkpzb24uSnNvblByb3BlcnR5KCJwZXRJZCIsIFJlcXVpcmVkID0gTmV3dG9uc29mdC5Kc29uLlJlcXVpcmVkLkRpc2FsbG93TnVsbCwgTnVsbFZhbHVlSGFuZGxpbmcgPSBOZXd0b25zb2Z0Lkpzb24uTnVsbFZhbHVlSGFuZGxpbmcuSWdub3JlKV0KICAgICAgICBwdWJsaWMgbG9uZyBQZXRJZCB7IGdldDsgc2V0OyB9CgogICAgICAgIFtOZXd0b25zb2Z0Lkpzb24uSnNvblByb3BlcnR5KCJxdWFudGl0eSIsIFJlcXVpcmVkID0gTmV3dG9uc29mdC5Kc29uLlJlcXVpcmVkLkRpc2FsbG93TnVsbCwgTnVsbFZhbHVlSGFuZGxpbmcgPSBOZXd0b25zb2Z0Lkpzb24uTnVsbFZhbHVlSGFuZGxpbmcuSWdub3JlKV0KICAgICAgICBwdWJsaWMgaW50IFF1YW50aXR5IHsgZ2V0OyBzZXQ7IH0KCiAgICAgICAgW05ld3RvbnNvZnQuSnNvbi5Kc29uUHJvcGVydHkoInNoaXBEYXRlIiwgUmVxdWlyZWQgPSBOZXd0b25zb2Z0Lkpzb24uUmVxdWlyZWQuRGlzYWxsb3dOdWxsLCBOdWxsVmFsdWVIYW5kbGluZyA9IE5ld3RvbnNvZnQuSnNvbi5OdWxsVmFsdWVIYW5kbGluZy5JZ25vcmUpXQogICAgICAgIHB1YmxpYyBTeXN0ZW0uRGF0ZVRpbWVPZmZzZXQgU2hpcERhdGUgeyBnZXQ7IHNldDsgfQoKICAgICAgICAvLy8gPHN1bW1hcnk+T3JkZXIgU3RhdHVzPC9zdW1tYXJ5PgogICAgICAgIFtOZXd0b25zb2Z0Lkpzb24uSnNvblByb3BlcnR5KCJzdGF0dXMiLCBSZXF1aXJlZCA9IE5ld3RvbnNvZnQuSnNvbi5SZXF1aXJlZC5EaXNhbGxvd051bGwsIE51bGxWYWx1ZUhhbmRsaW5nID0gTmV3dG9uc29mdC5Kc29uLk51bGxWYWx1ZUhhbmRsaW5nLklnbm9yZSldCiAgICAgICAgW05ld3RvbnNvZnQuSnNvbi5Kc29uQ29udmVydGVyKHR5cGVvZihOZXd0b25zb2Z0Lkpzb24uQ29udmVydGVycy5TdHJpbmdFbnVtQ29udmVydGVyKSldCiAgICAgICAgcHVibGljIE9yZGVyU3RhdHVzIFN0YXR1cyB7IGdldDsgc2V0OyB9CgogICAgICAgIFtOZXd0b25zb2Z0Lkpzb24uSnNvblByb3BlcnR5KCJjb21wbGV0ZSIsIFJlcXVpcmVkID0gTmV3dG9uc29mdC5Kc29uLlJlcXVpcmVkLkRpc2FsbG93TnVsbCwgTnVsbFZhbHVlSGFuZGxpbmcgPSBOZXd0b25zb2Z0Lkpzb24uTnVsbFZhbHVlSGFuZGxpbmcuSWdub3JlKV0KICAgICAgICBwdWJsaWMgYm9vbCBDb21wbGV0ZSB7IGdldDsgc2V0OyB9ID0gZmFsc2U7CiAgICB9CgogICAgW1N5c3RlbS5Db2RlRG9tLkNvbXBpbGVyLkdlbmVyYXRlZENvZGUoIk5Kc29uU2NoZW1hIiwgIjEwLjUuMi4wIChOZXd0b25zb2Z0Lkpzb24gdjEyLjAuMC4yKSIpXQogICAgcHVibGljIGVudW0gT3JkZXJTdGF0dXMKICAgIHsKICAgICAgICBbU3lzdGVtLlJ1bnRpbWUuU2VyaWFsaXphdGlvbi5FbnVtTWVtYmVyKFZhbHVlID0gQCJwbGFjZWQiKV0KICAgICAgICBQbGFjZWQgPSAwLAogICAgICAgIFtTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uLkVudW1NZW1iZXIoVmFsdWUgPSBAImFwcHJvdmVkIildCiAgICAgICAgQXBwcm92ZWQgPSAxLAogICAgICAgIFtTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uLkVudW1NZW1iZXIoVmFsdWUgPSBAImRlbGl2ZXJlZCIpXQogICAgICAgIERlbGl2ZXJlZCA9IDIsCiAgICB9Cn0KI3ByYWdtYSB3YXJuaW5nIHJlc3RvcmUgMTU5MQojcHJhZ21hIHdhcm5pbmcgcmVzdG9yZSAxNTczCiNwcmFnbWEgd2FybmluZyByZXN0b3JlIDQ3MgojcHJhZ21hIHdhcm5pbmcgcmVzdG9yZSAxMTQKI3ByYWdtYSB3YXJuaW5nIHJlc3RvcmUgMTA4CiNwcmFnbWEgd2FybmluZyByZXN0b3JlIDMwMTYKCmBgYAo+IFRoZSBkZWZhdWx0IG5hbWVzcGFjZSBoZXJlIGlzIGNvbmNhdGVuYXRpb24gb2YgeW91IHByb2plY3QgbmFtZSBhbmQgZGlyZWN0b3J5IG9mIE9wZW4gQVBJIGRlZmluaXRpb25zLgo+IFRvIGNoYW5nZSBuYW1lc3BhY2Ugc2VlIGBDb25maWd1cmF0aW9uYCAgIAoKIyBDb25maWd1cmF0aW9uCgpUbyBjdXN0b21pemUgdGhlIGdlbmVyYXRlZCBjb2RlIGFuZCBvdmVycmlkZSBkZWZhdWx0cyBgU291cmNlQXBpYCAKW2NvbnN1bWVzIE1TQnVpbGQgcHJvcGVydGllcyBhbmQgbWV0YWRhdGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kb3RuZXQvcm9zbHluL2Jsb2IvbWFpbi9kb2NzL2ZlYXR1cmVzL3NvdXJjZS1nZW5lcmF0b3JzLmNvb2tib29rLm1kI2NvbnN1bWUtbXNidWlsZC1wcm9wZXJ0aWVzLWFuZC1tZXRhZGF0YSkuCgpUd28gY29uZmlndXJhdGlvbiBwcm9wZXJpZXMgeW91IGNhbiBkYWZpbmUgaW4gYCouY3Byb2pgIGZpbGUgdG8gY3VzdG9taXplIFNvdXJjZUFwaSBnZW5lcmF0b3I6Ci0gU291cmNlQXBpX0dlbmVyYXRvck5hbWVzcGFjZSAtIHlvdSBjYW4gZGVmaW5lIG5hbWVzcGFjZSBmb3IgZ2VuZXJhdGVkIGNsYXNzZXMKLSBTb3VyY2VBcGlfR2VuZXJhdGVPbmx5Q29udHJhY3RzIC0geW91IGNhbiBnZW5lcmF0ZSBvbmx5IERUTydzIHdpdGhvdXQgQ29udHJvbGxlciBiYXNlIGNsYXNzZXMuCgo+SW4gYSBjYXNlIGlmIHByb3BlcnRpZXMgYXJlIG5vdCBhZGRlZCwgZGVmYXVsdCB2YWx1ZXMgYXJlIHVzZWQ6IGBTb3VyY2VBcGlfR2VuZXJhdGVPbmx5Q29udHJhY3RzYCBpcyBzZXQgdG8gYEZhbHNlYCBhbmQgZm9yIGBTb3VyY2VBcGlfR2VuZXJhdG9yTmFtZXNwYWNlYCAKPmNvbmNhdGVuYXRpb24gb2YgeW91IHByb2plY3QgbmFtZSBhbmQgZGlyZWN0b3J5IG9mIE9wZW4gQVBJIGRlZmluaXRpb25zIGlzIHVzZWQKCkZvciBnbG9iYWwgY29uZmlndXJhdGlvbiAodXNlZCBmb3IgYWxsIGFkZGVkIE9wZW4gQVBJIGZpbGVzKSBkZWZpbmUgdGhlc2UgcGFyYW1ldGVycyBpbiBgPFByb3BlcnR5R3JvdXA+IHNlY3Rpb246CgpgYGB4bWwKPFByb3BlcnR5R3JvdXA+CiAgIDxUYXJnZXRGcmFtZXdvcms+bmV0NS4wPC9UYXJnZXRGcmFtZXdvcms+CiAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb25GaWxlPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDxOb1dhcm4+JChOb1dhcm4pOzE1OTE8L05vV2Fybj4KICAgLi4uCiAgIDxTb3VyY2VBcGlfR2VuZXJhdG9yTmFtZXNwYWNlPkNvbXBlbnRpby5Tb3VyY2VBcGkuV2ViRXhhbXBsZS5Db250cm9sbGVyczwvU291cmNlQXBpX0dlbmVyYXRvck5hbWVzcGFjZT4KICAgPFNvdXJjZUFwaV9HZW5lcmF0ZU9ubHlDb250cmFjdHM+ZmFsc2U8L1NvdXJjZUFwaV9HZW5lcmF0ZU9ubHlDb250cmFjdHM+CjwvUHJvcGVydHlHcm91cD4KIGBgYAoKCllvdSBjYW4gYWxzbyBkZWZpbmUgdGhlc2UgcGFyYW1ldGVycyBwZXIgZmlsZSBpbiBgPEl0ZW1Hcm91cD5gOiAKCmBgYHhtbAo8SXRlbUdyb3VwPgogICA8QWRkaXRpb25hbEZpbGVzIEluY2x1ZGU9Ik9wZW5BcGlcUGV0cy55YW1sIi8+CiAgIDxBZGRpdGlvbmFsRmlsZXMgSW5jbHVkZT0iT3BlbkFwaVxTdG9yZS55YW1sIiBTb3VyY2VBcGlfR2VuZXJhdG9yTmFtZXNwYWNlPSJDb21wZW50aW8uU291cmNlQXBpLldlYkV4YW1wbGUuV2ViQXBpIi8+CiAgIDxBZGRpdGlvbmFsRmlsZXMgSW5jbHVkZT0iT3BlbkFwaVxVc2Vycy55YW1sIiBTb3VyY2VBcGlfR2VuZXJhdG9yTmFtZXNwYWNlPSJDb21wZW50aW8uU291cmNlQXBpLldlYkV4YW1wbGUuV2ViQXBpIiBTb3VyY2VBcGlfR2VuZXJhdGVPbmx5Q29udHJhY3RzID0gInRydWUiLz4KIDwvSXRlbUdyb3VwPgogPEltcG9ydCBQcm9qZWN0PSIuLlxDb21wZW50aW8uU291cmNlQXBpXEdlbmVyYXRvci5wcm9wcyIgLz4KYGBgCgpIZXJlIGluIGEgY2FzZSBnbG9iYWwgY29uZmlndXJhdGlvbiBleGlzdHMsIGZvciBgUGV0cy55YW1sYCBnbG9iYWwgY29uZmlnIGlzIHVzZWQsIGZvciBgU3RvcmUueWFtbGAgbmFtZXNwYWNlIGlzIG92ZXJyaWRlbiBhbmQgZm9yIGBVc2Vycy55YW1sYCAKYFNvdXJjZUFwaV9HZW5lcmF0b3JOYW1lc3BhY2VgIGFuZCBgU291cmNlQXBpX0dlbmVyYXRlT25seUNvbnRyYWN0c2AgYXJlIG92ZXJyaWRlbi4KCg== readmeEtag: '"ded6d51ffe7f2a935d0d442a4c1eae2ff8f63b20"' readmeLastModified: Thu, 02 Dec 2021 10:31:06 GMT repositoryId: 420145950 description: 'API first Open API code generator based on json or yaml definitions. ' created: '2021-10-22T15:16:23Z' updated: '2024-09-02T00:34:32Z' language: C# archived: false stars: 14 watchers: 2 forks: 0 owner: alekshura logo: https://avatars.githubusercontent.com/u/4995545?v=4 license: MIT repoEtag: '"1d7aeb13bbd9e53de7cace3ae794d641f39e8342e141f61f46b2dce8435136c4"' repoLastModified: Mon, 02 Sep 2024 00:34:32 GMT foundInMaster: true category: SDK id: 482e24e836e1e54d828cc864a71c9b8e - source: openapi3 tags repository: https://github.com/yapily/yapily-sdk-python v3: true id: d79b8bc72d6746f1ce7697d3680dfeb3 repositoryMetadata: base64Readme: >- IyBZYXBpbHkgUHl0aG9uIFNESwpbIVtHaXRIdWIgdmVyc2lvbl0oaHR0cHM6Ly9kMjVsY2lwemlqMTdkLmNsb3VkZnJvbnQubmV0L2JhZGdlLnN2Zz9pZD1naCZ0eXBlPTYmdj0meDI9MCldKGh0dHA6Ly9iYWRnZS5mdXJ5LmlvL2doL2JvZW5uZW1hbm4lMkZiYWRnZXMpCgpUaGlzIFNESyBsaWJyYXJ5IHdhcyBnZW5lcmF0ZWQgdXNpbmcgW09wZW5BcGkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKS4gVGhlIFNESyBjYW4gYmUgdXNlZCBhcyBhIG1vZHVsZSBpbiB5b3VyIGNvZGUgYW5kIHRoZSBleGFtcGxlcyBkZW1vbnN0cmF0ZSBob3cgdG8gY29ubmVjdCB0byBmaW5hbmNpYWwgaW5zdGl0dXRpb25zIGludGVncmF0ZWQgd2l0aCBZYXBpbHkuCgojIyBSZXF1aXJlbWVudHMKClRvIGNvbm5lY3QgdG8gdGhlIFlhcGlseSBBUEksIHlvdSB3aWxsIG5lZWQgdG8gcmVnaXN0ZXIgeW91ciAKYXBwbGljYXRpb24gYXQgW2h0dHBzOi8vZGFzaGJvYXJkLnlhcGlseS5jb21dKCkuCgpUaGVzZSBhcHBsaWNhdGlvbiBjcmVkZW50aWFscyBjYW4gdGhlbiBiZSB1c2VkIHRvIGF1dGhvcmlzZSBhbGwKeW91ciBBUEkgcmVxdWVzdHMuCgojIyBJbnN0YWxsYXRpb24KClRoZSBTREsgaXMgY3VycmVudGx5IGF2YWlsYWJsZSBpbiB0aGUgWWFwaWx5IGdpdGh1YiByZXBvc2l0b3J5IGFuZCAKY2FuIGJlIGluY2x1ZGVkIGluIHlvdXIgcHJvamVjdCAKYnkgYWRkaW5nIGl0IHRvIHlvdXIgZGVwZW5kZW5jaWVzCgojIyMjIHBpcCBpbnN0YWxsCgpwaXAzIGluc3RhbGwgZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS95YXBpbHkveWFwaWx5LXNkay1weXRob24uZ2l0I3N1YmRpcmVjdG9yeT1zZGsKCiMjIyMgcGlwIHVwZ3JhZGUKCnBpcDMgaW5zdGFsbCAtLXVwZ3JhZGUgZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS95YXBpbHkveWFwaWx5LXNkay1weXRob24uZ2l0I3N1YmRpcmVjdG9yeT1zZGsKCiMjIFVzYWdlCgpTYW1wbGUgdXNhZ2Ugb2YgdGhlIFNESyBjYW4gYmUgc2VlbiBpbiB0aGUgYGV4YW1wbGVzYCBmb2xkZXIuCgotIFJldHJpZXZlIGEgbGlzdCBvZiBhdmFpbGFibGUgZmluYW5jaWFsIGluc3RpdHV0aW9ucyB0byBjb25uZWN0IHRvCgpgYGBweXRob24KY29uZmlndXJhdGlvbiA9IENvbmZpZ3VyYXRpb24oKQpjb25maWd1cmF0aW9uLnVzZXJuYW1lID0gY29uc3RhbnRzLkFQUExJQ0FUSU9OX0lECmNvbmZpZ3VyYXRpb24ucGFzc3dvcmQgPSBjb25zdGFudHMuQVBQTElDQVRJT05fU0VDUkVUCgphcGlDbGllbnQgPSBBcGlDbGllbnQoY29uZmlndXJhdGlvbikKaW5zdGl0dXRpb25zQXBpID0gSW5zdGl0dXRpb25zQXBpKGFwaUNsaWVudCkKaW5zdGl0dXRpb25zID0gaW5zdGl0dXRpb25zQXBpLmdldF9pbnN0aXR1dGlvbnNfdXNpbmdfZ2V0KCkKYGBgCgotIENyZWF0aW5nIHVzZXJzIGFuZCByZXRyaWV2aW5nIHVzZXJzIGZvciB5b3VyIGFwcGxpY2F0aW9uIHJlZ2lzdGVyZWQgaW4gdGhlIFlhcGlseSBEYXNoYm9hcmQKYGBgcHl0aG9uCmFwcGxpY2F0aW9uX3VzZXIgPSBOZXdBcHBsaWNhdGlvblVzZXIoYXBwbGljYXRpb25fdXNlcl9pZD1hcHBfdXNlcl9pZCkKdXNlcl9hcGkgPSBBcHBsaWNhdGlvblVzZXJzQXBpKGFwaUNsaWVudCkKdXNlcl9hcGkuYWRkX3VzZXJfdXNpbmdfcG9zdChhcHBsaWNhdGlvbl91c2VyKQpgYGAKCi0gQ3JlYXRlIGFuIGF1dGhvcmlzYXRpb24gVVJMIGZvciB5b3VyIHVzZXJzIHRvIHVzZSB0byBsb2cgaW50byB0aGVpciBpbnN0aXR1dGlvbgoKYGBgcHl0aG9uCmFjY291bnRfYXV0aG9yaXNhdGlvbl9yZXF1ZXN0ID0gQWNjb3VudEF1dGhvcmlzYXRpb25SZXF1ZXN0KAogICAgYXBwbGljYXRpb25fdXNlcl9pZD1jb25zdGFudHMuQVBQTElDQVRJT05fVVNFUl9JRCwgCiAgICBpbnN0aXR1dGlvbl9pZD1jb25zdGFudHMuSU5TVElUVVRJT05fSUQsCiAgICBjYWxsYmFjaz0nJywKICAgIG9uZV90aW1lX3Rva2VuPScnCikKCnJlc3BvbnNlID0gYWNjb3VudHNfYXBpLmluaXRpYXRlX2FjY291bnRfcmVxdWVzdF91c2luZ19wb3N0KGFjY291bnRfYXV0aF9yZXF1ZXN0PWFjY291bnRfYXV0aG9yaXNhdGlvbl9yZXF1ZXN0KQpyZWRpcmVjdF91cmwgPSByZXNwb25zZS5kYXRhLmF1dGhvcmlzYXRpb25fdXJsCmBgYAogCi0gT2J0YWluaW5nIGEgdmFsaWQgY29uc2VudCBmb3IgZmluYW5jaWFsIGRhdGEKCmBgYHB5dGhvbgpkZWYgZmlsdGVyQnlTdGF0dXMoY29uc2VudCk6CiAgICBpZiAoY29uc2VudC5zdGF0dXMgPT0gIkFVVEhPUklaRUQiKToKICAgICAgICByZXR1cm4gVHJ1ZQogICAgZWxzZToKICAgICAgICByZXR1cm4gRmFsc2UKCmNvbnNlbnRzID0gQ29uc2VudHNBcGkoYXBpQ2xpZW50KS5nZXRfY29uc2VudHNfdXNpbmdfZ2V0KAogICAgZmlsdGVyX2FwcGxpY2F0aW9uX3VzZXJfaWQ9W2NvbnN0YW50cy5BUFBMSUNBVElPTl9VU0VSX0lEXSwKICAgIGZpbHRlcl9pbnN0aXR1dGlvbj1bY29uc3RhbnRzLklOU1RJVFVUSU9OX0lEXQopLmRhdGEKCmF1dGhvcmlzZWRfY29uc2VudHMgPSBsaXN0KGZpbHRlcihmaWx0ZXJCeVN0YXR1cywgY29uc2VudHMpKQpjb25zZW50ID0gYXV0aG9yaXNlZF9jb25zZW50c1swXQpjb25zZW50X3Rva2VuID0gY29uc2VudC5jb25zZW50X3Rva2VuCmBgYAoKLSBSZXR1cm5pbmcgdXNlciBhY2NvdW50IGRldGFpbHMKYGBgcHl0aG9uCmFjY291bnRzQXBpID0gQWNjb3VudHNBcGkoYXBpQ2xpZW50KQphY2NvdW50cyA9IGFjY291bnRzQXBpLmdldF9hY2NvdW50c191c2luZ19nZXQoY29uc2VudF90b2tlbikKYGBgCgotIFJldHVybmluZyB1c2VyIHRyYW5zYWN0aW9uIGRldGFpbHMKCmBgYHB5dGhvbgp0cmFuc2FjdGlvbnNBcGkgPSBUcmFuc2FjdGlvbnNBcGkoYXBpQ2xpZW50KQp0cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbnNBcGkuZ2V0X3RyYW5zYWN0aW9uc191c2luZ19nZXQoY29uc2VudF90b2tlbiwgYWNjb3VudHMuZGF0YVswXS5faWQpCmBgYAoKLSBSZXR1cm5pbmcgdXNlciBpZGVudGl0eSBkZXRhaWxzCmBgYHB5dGhvbgppbnN0aXR1dGlvbnNfYXBpID0gSW5zdGl0dXRpb25zQXBpKGFwaUNsaWVudCkKZmVhdHVyZXMgPSBpbnN0aXR1dGlvbnNfYXBpLmdldF9pbnN0aXR1dGlvbl91c2luZ19nZXQoY29uc3RhbnRzLklOU1RJVFVUSU9OX0lEKS5mZWF0dXJlcwppZiAoIklERU5USVRZIiBpbiBmZWF0dXJlcyk6CiAgICBpZGVudGl0eV9hcGkgPSBJZGVudGl0eUFwaShhcGlDbGllbnQpCiAgICBpZGVudGl0eSA9IGlkZW50aXR5X2FwaS5nZXRfaWRlbnRpdHlfdXNpbmdfZ2V0KGNvbnNlbnRfdG9rZW4pCmBgYAoKIyMgRnVydGhlciBpbmZvcm1hdGlvbgoKRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIGdldCBjb25uZWN0ZWQsIHZpc2l0IHRoZSBbWWFwaWx5IEtub3dsZWRnZSBCYXNlXShodHRwczovL2tiLnlhcGlseS5jb20pLgo= readmeEtag: '"6679845fa0b0b0596176a83fe0f33c26cbbbd044"' readmeLastModified: Fri, 25 Nov 2022 12:42:30 GMT repositoryId: 133962026 description: >- Python SDK generated against the Yapily API. This SDK can be used to connect to Open Banking entities. created: '2018-05-18T14:02:57Z' updated: '2024-06-23T15:55:49Z' language: Python archived: false stars: 13 watchers: 3 forks: 10 owner: yapily logo: https://avatars.githubusercontent.com/u/36482918?v=4 license: MIT repoEtag: '"62b57e09db60899f309e56310037bd045a6c412b38bcf30067cf04880a7bb173"' repoLastModified: Sun, 23 Jun 2024 15:55:49 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/arbs-io/api-studio-visualstudio v3: true id: 48eafce82bf409d993a951b9780d6826 repositoryMetadata: base64Readme: >- IVtWaXN1YWwgU3R1ZGlvIE1hcmtldHBsYWNlIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdmlzdWFsLXN0dWRpby1tYXJrZXRwbGFjZS92L0FuZHJld0J1dHNvbi5BcGlTdHVkaW8pCiFbVmlzdWFsIFN0dWRpbyBNYXJrZXRwbGFjZSBJbnN0YWxsc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2kvQW5kcmV3QnV0c29uLkFwaVN0dWRpbykKIVtWaXN1YWwgU3R1ZGlvIE1hcmtldHBsYWNlIFJhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3IvQW5kcmV3QnV0c29uLkFwaVN0dWRpbykKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2FyYnMtaW8vYXBpLXN0dWRpby12aXN1YWxzdHVkaW8uc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2FyYnMtaW8vYXBpLXN0dWRpby12aXN1YWxzdHVkaW8vaXNzdWVzKQoKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9YXJicy1pb19hcGktc3R1ZGlvLXZpc3VhbHN0dWRpbyZtZXRyaWM9c3FhbGVfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9YXJicy1pb19hcGktc3R1ZGlvLXZpc3VhbHN0dWRpbykKWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1hcmJzLWlvX2FwaS1zdHVkaW8tdmlzdWFsc3R1ZGlvJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1hcmJzLWlvX2FwaS1zdHVkaW8tdmlzdWFsc3R1ZGlvKQpbIVtSZWxpYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWFyYnMtaW9fYXBpLXN0dWRpby12aXN1YWxzdHVkaW8mbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPWFyYnMtaW9fYXBpLXN0dWRpby12aXN1YWxzdHVkaW8pClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWFyYnMtaW9fYXBpLXN0dWRpby12aXN1YWxzdHVkaW8mbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1hcmJzLWlvX2FwaS1zdHVkaW8tdmlzdWFsc3R1ZGlvKQpbIVtWdWxuZXJhYmlsaXRpZXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWFyYnMtaW9fYXBpLXN0dWRpby12aXN1YWxzdHVkaW8mbWV0cmljPXZ1bG5lcmFiaWxpdGllcyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPWFyYnMtaW9fYXBpLXN0dWRpby12aXN1YWxzdHVkaW8pCgojIyAqKldoYXQgaXMgQXBpIFN0dWRpbz8qKgoKQXBpIFN0dWRpbyBpcyBhIHByb2R1Y3Rpdml0eSBleHRlbnNpb24gZm9yIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLiBUaGUgZXh0ZW5zaW9uIGJyaWRnZXMgdGhlIHJvbGUgb2YgYXJjaGl0ZWN0IGFuZCBkZXZlbG9wZXIsIHByb3ZpZGluZyByYXBpZCBwcm90b3R5cGluZyBhbmQgcHJvbW90aW5nIGluZHVzdHJ5IGJlc3QgcHJhY3RpY2VzLiBJbiBhZGRpdGlvbiwgQXBpIFN0dWRpbyBwcm92aWRlcyB0ZW1wbGF0aW5nIHRvIGd1YXJhbnRlZSBhIGNvbnNpc3RlbnQgbG9vayBhbmQgZmVlbCByZWdhcmRsZXNzIG9mIG9yZ2FuaXNhdGlvbiBvciBwcm9qZWN0IHNpemUuCgojIyAqKlZpc3VhbCBTdHVkaW8gRXh0ZW5zaW9uKioKCkFwaSBTdHVkaW8gRXh0ZW5zaW9uIGVuaGFuY2VzIFZpc3VhbCBTdHVkaW8gMjAyMisgYnkgcHJvdmlkaW5nIGEgZGVzaWduZXIsIHRvb2xib3gsIGV4cGxvcmVyIGFuZCBjb2RlIGdlbmVyYXRpb24gZW5naW5lIHRvIGNyZWF0ZSBhbmQgbWFuYWdlIEFwaSBTdHVkaW8gYXNzZXRzLiBQcm9tb3RpbmcgQW4gQVBJLWZpcnN0IGFwcHJvYWNoIG1lYW5zIHRoYXQgeW91ciBBUElzIGFyZSB0cmVhdGVkIGFzICJmaXJzdC1jbGFzcyBjaXRpemVucyBmb3IgYW55IGRldmVsb3BtZW50IHByb2plY3QuIiBBcGkgU3R1ZGlvIHByb3ZpZGVzIGFyY2hpdGVjdHMgYW5kIGRldmVsb3BlcnMgd2l0aCBhIHNvbHV0aW9uIHRvIHF1aWNrbHkgZGVzaWduIGFuZCBjb2xsYWJvcmF0ZSwgcHJvdmlkaW5nIHRoZSBibHVlcHJpbnQgZm9yIHNvbHV0aW9uIGltcGxlbWVudGF0aW9uLiBJbiBhZGRpdGlvbiwgdGhlIGV4dGVuc2lvbiB3aWxsIGVuYWJsZSB0ZWFtcyB0byBxdWlja2x5IG1vY2sgc29sdXRpb24gZW5kcG9pbnRzLCBwcm9vZmluZyB1c2FiaWxpdHkgYmVmb3JlIGludmVzdGluZyBpbiBkZXZlbG9wbWVudC4KCiMjICoqSG93IGRvZXMgQXBpIFN0dWRpbyB3b3JrPyoqCgpBcGkgU3R1ZGlvIGNvbnRhaW5zIGEgdmlzdWFsIHN0dWRpbyBkZXNpZ25lciwgZG9tYWluLXNwZWNpZmljIGxhbmd1YWdlIChEU0wpIGFuZCBjb2RlIGdlbmVyYXRpb24gZW5naW5lIHRvIHByb3ZpZGUgYW4gZXhjZXB0aW9uYWwgZXhwZXJpZW5jZSBmb3IgYnVpbGRpbmcgbW9kZXJuIHJlc291cmNlLWJhc2VkIHNvbHV0aW9ucy4KCioqRG93bmxvYWQqKiBbQXBpIFN0dWRpbyBFeHRlbnNpb24gZm9yIFZpc3VhbCBTdHVkaW9dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1BbmRyZXdCdXRzb24uQXBpU3R1ZGlvKSBmcm9tIHZpc3VhbCBzdHVkaW8gbWFya2V0cGxhY2UKCiMjICoqRmVhdHVyZXMqKgoKVGhlIGV4dGVuc2lvbiBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzLgoKLSA8c3BhbiBzdHlsZT0iY29sb3I6IzI2N0YwMDsiPioqRGVzaWduZXIqKjwvc3Bhbj46IFRoZSBWaXN1YWwgU3R1ZGlvIEFwaSBTdHVkaW8gRGVzaWduZXIgaXMgZGVkaWNhdGVkIHRvIGVkaXRpbmcgQXBpIFN0dWRpbyBEU0wgYXJ0ZWZhY3RzIHVzZWQgYnkgY29kZSBnZW5lcmF0ZWQgZGlyZWN0bHkgaW4gdGhlIFZpc3VhbCBTdHVkaW8gZW52aXJvbm1lbnQuIFRvIG9wZW4gYSAuQXBpU3R1ZGlvIGZpbGUsIHRoZSBkZXNpZ25lciBvcGVucyBpbiB0aGUgY2VudHJhbCBkb2NraW5nIGFyZWEgd2l0aGluIHZpc3VhbCBzdHVkaW8uIElmIHRoZXJlIGlzIG5vIHN1Y2ggZmlsZSwgeW91IG1heSBjcmVhdGUgaXQgdXNpbmcgdGhlIEFkZCAtLT4gTmV3IEl0ZW0gLS0+IEFwaVN0dWRpby4KCi0gPHNwYW4gc3R5bGU9ImNvbG9yOiNCMjAwRkY7Ij4qKlRvb2xib3gqKjwvc3Bhbj46IFRoZSBUb29sYm94IHdpbmRvdyBkaXNwbGF5cyBjb250cm9scyB0aGF0IHlvdSBjYW4gYWRkIHRvIFZpc3VhbCBTdHVkaW8gcHJvamVjdHMuIENob29zZSBWaWV3ID4gVG9vbGJveCBmcm9tIHRoZSBtZW51IGJhciBvciBwcmVzcyBDdHJsK0FsdCtYIHRvIG9wZW4gVG9vbGJveC4gWW91IGNhbiBkcmFnIGFuZCBkcm9wIGRpZmZlcmVudCBjb250cm9scyBvbnRvIHRoZSBzdXJmYWNlIG9mIHRoZSBBcGkgU3R1ZGlvIGRlc2lnbmVyIGFuZCByZXNpemUgYW5kIHBvc2l0aW9uIHRoZSBjb250cm9scy4gVG9vbGJveCBhcHBlYXJzIGluIGNvbmp1bmN0aW9uIHdpdGggQXBpIFN0dWRpbyBkZXNpZ25lciB2aWV3cy4gVG9vbGJveCBkaXNwbGF5cyBvbmx5IHRob3NlIGNvbnRyb2xzIHRoYXQgdGhlIGN1cnJlbnQgZGVzaWduZXIgY2FuIHVzZS4gWW91IGNhbiBzZWFyY2ggd2l0aGluIFRvb2xib3ggdG8gZnVydGhlciBmaWx0ZXIgdGhlIGl0ZW1zIHRoYXQgYXBwZWFyLgoKLSA8c3BhbiBzdHlsZT0iY29sb3I6IzAwOTRGRjsiPioqQXBpIFN0dWRpbyBFeHBsb3JlcioqPC9zcGFuPjogWW91IGNhbiB1c2UgdGhlIEV4cGxvcmVyIHRvb2wgd2luZG93IHRvIGNyZWF0ZSAmIG1hbmFnZSB5b3VyIHNvbHV0aW9ucyBhbmQgcHJvamVjdHMgYW5kIHRvIHZpZXcgJiBpbnRlcmFjdCB3aXRoIHlvdXIgY29kZS4KCi0gPHNwYW4gc3R5bGU9ImNvbG9yOiNGRkQ4MDA7Ij4qKlByb3BlcnR5Kio8L3NwYW4+OiBUaGUgVmlzdWFsIFN0dWRpbyBQcm9wZXJ0aWVzIHdpbmRvdyBpcyBhIHByb3BlcnR5IGJyb3dzZXIgZm9yIEFwaSBTdHVkaW8gY29tcG9uZW50cy4gVGhlIFByb3BlcnRpZXMgd2luZG93IGxpc3QgbWV0YWRhdGEgYXQgZGVzaWduIHRpbWUgZm9yIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgb2JqZWN0IGluIGFueSBvdGhlciB3aW5kb3cgaW4gdGhlIGludGVncmF0ZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgKElERSkuCgohW2FwaS1zdHVkaW8tdmlzdWFsc3R1ZGlvLW92ZXJ2aWV3LWhpZ2hsaWdodGVkX18xLnBuZ10oaW1hZ2VzL2FwaS1zdHVkaW8tdmlzdWFsc3R1ZGlvLW92ZXJ2aWV3LWhpZ2hsaWdodGVkLnBuZykKCiMjIyAqKlZpc3VhbCBTdHVkaW8gUHJvamVjdHMqKgoKQXBpIFN0dWRpbyBwcm92aWRlcyBhIHZpc3VhbCBzdHVkaW8gcHJvamVjdCBjb250YWluaW5nIGFsbCBhc3NldHMgdG8gZ2V0IHN0YXJ0ZWQuIFRoZSB0ZW1wbGF0ZSBvZmZlcnMgYSBjb21wbGV0ZSBidXQgbGlnaHR3ZWlnaHQgc29sdXRpb24uCgojIyMgQXZhaWxhYmxlIFByb2plY3QgVGVtcGxhdGVzCgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMYW5ndWFnZSB8IExpYnJhcnkgICAgICAgIHwgRnJhbWV3b3JrIHwgVmVyc2lvbiB8IFN0YXR1cyB8IENvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCAtLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwgLS0tLS0tLSB8IDotLS0tOiB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8ICFbY3NoYXJwLWF6dXJlZnVuY3Rpb24tZG90bmV0Nl0oaW1hZ2VzL2FwaS1zdHVkaW8uY29kZWdlbi5jc2hhcnAtYXp1cmVmdW5jdGlvbi1kb3RuZXQ2LnBuZykgfCBjc2hhcnAgICB8IGF6dXJlX2Z1bmN0aW9uIHwgbmV0Ni4wICAgIHwgMS4wLjAgICB8ICAg4pyFICAgfAp8ICAgICFbY3NoYXJwLW1pbmltYWxhcGktZG90bmV0Nl0oaW1hZ2VzL2FwaS1zdHVkaW8uY29kZWdlbi5jc2hhcnAtbWluaW1hbGFwaS1kb3RuZXQ2LnBuZykgICAgfCBjc2hhcnAgICB8IG1pbmltdW1fYXBpICAgIHwgbmV0Ni4wICAgIHwgMS4wLjAgICB8ICAg4pyFICAgfCBuZXQ2LjAgb3BlbmFwaSBzcGVjaWZpY2F0aW9uIGxpbWl0YXRpb25zLCBhbnRpY2lwYXRlZCBmdWxsIHN1cHBvcnQgaW4gbmV0Ny4wIHwKCiMjIyBUZW1wbGF0ZSBTdGFuZGFyZHMKCkFwaSBTdHVkaW8gcHJvdmlkZXMgdGVtcGxhdGVkIHN0YW5kYXJkcyBmb3IgaGVhZGVyLCByZXNwb25zZSBjb2RlcyBhbmQgc2VjdXJpdHkgbW9kZWxzLiBBbGxvd2luZyBlbnRlcnByaXNlIHN0YW5kYXJkcyB0byBiZSBzaGFyZWQgYmV0d2VlbiBkZXZlbG9wbWVudCB0ZWFtcy4gVGhlIG9wdGlvbnMgYXJlIGF2YWlsYWJsZSB3aXRoaW4gdmlzdWFsIHN0dWRpb3Mgb3B0aW9ucyBUb29scyAtLT4gT3B0aW9ucyAtLT4gQXBpU3R1ZGlvLiBUaGUgb3B0aW9ucyBwYW5lbCBwcm92aWRlIEltcG9ydC9FeHBvcnQgZnVuY3Rpb25hbGl0eS4KCiFbYXBpLXN0dWRpby12aXN1YWxzdHVkaW8tb3B0aW9ucy5wbmddKGltYWdlcy9hcGktc3R1ZGlvLXZpc3VhbHN0dWRpby1vcHRpb25zLnBuZykKCiMjIyBBcGkgU3R1ZGlvIERlc2lnbmVyCgpUaGUgYXBpLXN0dWRpbyBmaWxlcyBhcmUgbG9jYXRlZCBpbiB0aGUgYCJcQXBpU3R1ZGlvImAgZm9sZGVyIHdpdGhpbiB0aGUgcHJvamVjdC4gVG8gb3BlbiB0aGUgZGVzaWduZXIgZG91YmxlIGNsaWNrIHRoZSBmaWxlLCBvciByaWdodCBjbGljayBhbmQgc2VsZWN0IGAiT3BlbiJgCgohW2FwaS1zdHVkaW8tdmlzdWFsc3R1ZGlvLXByb2plY3QucG5nXShpbWFnZXMvYXBpLXN0dWRpby12aXN1YWxzdHVkaW8tcHJvamVjdC5wbmcpCgojIyAqKkdldHRpbmcgU3RhcnRlZCoqCgpDcmVhdGluZyBhIG5ldyBwcm9qZWN0IGlzIHNpbXBsZS4gVmlzdWFsIFN0dWRpbyAiQ3JlYXRlIFByb2plY3QiLCBmaWx0ZXIgdXNpbmcgcHJvamVjdCB0eXBlICJBcGkgU3R1ZGlvIi4KCiFbYXBpLXN0dWRpby1wcm9qZWN0LXRlbXBsYXRlLWZpbHRlci5wbmddKGltYWdlcy9hcGktc3R1ZGlvLXByb2plY3QtdGVtcGxhdGUtZmlsdGVyLnBuZykKCiMjICoqV2hhdCdzIG5leHQqKgoKVGhpcyBleHRlbnNpb24gY3VycmVudGx5IHN1cHBvcnRzIFJFU1RmdWwtYmFzZWQgQVBJcywgYnV0IGV4dGVuc2lvbnMgdG8gYWxsb3cgc3VwcG9ydCBmb3IgZ1JwYywgV2ViSG9va3MgYW5kIFdlYlNvY2tldCBpbnRlcmZhY2VzIHNvb24uCgojIyAqKkhvdyBjYW4gSSBoZWxwPyoqCgpJZiB5b3UgZW5qb3kgdXNpbmcgdGhlIGV4dGVuc2lvbiwgcGxlYXNlIGdpdmUgaXQgYSByYXRpbmcgb24gdGhlIFtWaXN1YWwgU3R1ZGlvIE1hcmtldHBsYWNlXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9QW5kcmV3QnV0c29uLkFwaVN0dWRpbykuCgpTaG91bGQgeW91IGVuY291bnRlciBidWdzIG9yIGlmIHlvdSBoYXZlIGZlYXR1cmUgcmVxdWVzdHMsIGhlYWQgb24gb3ZlciB0byB0aGUgW0dpdEh1YiByZXBvXShodHRwczovL2dpdGh1Yi5jb20vYXJicy1pby9hcGktc3R1ZGlvLXZpc3VhbHN0dWRpbykgdG8gb3BlbiBhbiBpc3N1ZSBpZiBvbmUgZG9lc24ndCBhbHJlYWR5IGV4aXN0LgpQdWxsIHJlcXVlc3RzIGFyZSBhbHNvIHZlcnkgd2VsY29tZSBzaW5jZSBJIGNhbid0IGFsd2F5cyBnZXQgYXJvdW5kIHRvIGZpeGluZyBhbGwgYnVncyBteXNlbGYuCgpUaGlzIGlzIGEgcGVyc29uYWwgcGFzc2lvbiBwcm9qZWN0LCBzbyBteSB0aW1lIGlzIGxpbWl0ZWQuCgpBbm90aGVyIHdheSB0byBoZWxwIG91dCBpcyB0byBbc3BvbnNvciBtZSBvbiBHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hcmJzLWlvKS4KCiMjICoqQ29weXJpZ2h0KioKCkNvcHlyaWdodCAyMDIzIEFwaSBTdHVkaW8sIEluYy4KCkxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZQo= readmeEtag: '"8e6b2f42fc70b9ab01ac2e06e7fdd87d58cf39b4"' readmeLastModified: Mon, 13 Feb 2023 21:09:35 GMT repositoryId: 448539420 description: >- Visual studio plug-in to create clean RESTful APIs. The plug-in provides a quick and easy ways to scaffold HTTP end-points following RFC and best practice. created: '2022-01-16T11:52:38Z' updated: '2024-07-26T19:11:31Z' language: C# archived: false stars: 13 watchers: 1 forks: 7 owner: arbs-io logo: https://avatars.githubusercontent.com/u/71968891?v=4 license: MIT repoEtag: '"7e226e7207a12880f4c2bd12daebe8b21dd67cac6e2aa7314f03f8df3163f5e7"' repoLastModified: Fri, 26 Jul 2024 19:11:31 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/pglass/py-openapi-schema-to-json-schema v3: true repositoryMetadata: base64Readme: >- T3ZlcnZpZXcKLS0tLS0tLS0KClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3BnbGFzcy9weS1vcGVuYXBpLXNjaGVtYS10by1qc29uLXNjaGVtYS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9wZ2xhc3MvcHktb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWEpClshW1B5UEldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3B5LW9wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hLnN2ZyldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9weS1vcGVuYXBpLXNjaGVtYS10by1qc29uLXNjaGVtYS8pClshW1B5UEkgLSBQeXRob24gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvcHktb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWEuc3ZnKV0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5LW9wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hLykKCgoqKlRoaXMgaXMgYSBzdHJhaWdodCBQeXRob24gcG9ydCBvZiB0aGUgTUlULWxpY2Vuc2VkClttaWt1bm4vb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1bm4vb3BlbmFwaS1zY2hlbWEtdG8tanNvbi1zY2hlbWEpCihbdjIuMS4wXShodHRwczovL2dpdGh1Yi5jb20vbWlrdW5uL29wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hL3RyZWUvdjIuMS4wKSkqKi4KVGhpcyBwb3J0IGlzIHNpbWlsYXJseSBNSVQtbGljZW5zZWQuCgpJdCBjb252ZXJ0cyBmcm9tIFtPcGVuQVBJIDMuMF0oCmh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKSB0bwpbSlNPTiBTY2hlbWEgRHJhZnQgNF0oaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zcGVjaWZpY2F0aW9uLWxpbmtzLmh0bWwjZHJhZnQtNCkuCgojIyBXaHk/CgpPcGVuQVBJIDMgU2NoZW1hcyBhbmQgSlNPTiBTY2hlbWFzIGFyZSBtb3N0bHkgc2ltaWxhci4gSG93ZXZlciwgSlNPTiBTY2hlbWEKdmFsaWRhdG9ycyBhcmUgdW5hd2FyZSBvZiB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdHdvIGZvcm1hdHMuIFRoaXMgbWVhbnMKdGhhdCB2YWxpZGF0aW5nIHJlcXVlc3QvcmVzcG9uc2UgSlNPTiB1c2luZyBhIHN0YW5kYXJkIEpTT04gU2NoZW1hIHZhbGlkYXRvcgp3aXRoIE9wZW5BUEkgMyBTY2hlbWFzIHdpbGwgcmVzdWx0IGluIGluY29ycmVjdCB2YWxpZGF0aW9ucyBpbiBjZXJ0YWluIGNvbW1vbgpjYXNlcy4KCk9uZSB3YXkgdG8gc29sdmUgdGhpcyBwcm9ibGVtIGlzIHRvIHRyYW5zbGF0ZSB0aGUgT3BlbkFQSSAzIHNjaGVtYSB0byBKU09OClNjaGVtYSwgd2hpY2ggaXMgdGhlIHB1cnBvc2Ugb2YgdGhpcyBsaWJyYXJ5LgoKU2VlIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vbWlrdW5uL29wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hL3RyZWUvdjIuMS4wI3doeSkKZm9yIG1vcmUgcmF0aW9uYWxlLCBhcyB3ZWxsIGFzIFtQaGlsIFN0dXJnZW9uJ3MgYmxvZyBwb3N0XSgKaHR0cHM6Ly9waGlsc3R1cmdlb24udWsvYXBpLzIwMTgvMDMvMzAvb3BlbmFwaS1hbmQtanNvbi1zY2hlbWEtZGl2ZXJnZW5jZS8pCmFib3V0IHRoZSBwcm9ibGVtLgoKIyMgRmVhdHVyZXMKCiogY29udmVydHMgT3BlbkFQSSAzLjAgU2NoZW1hIE9iamVjdCB0byBKU09OIFNjaGVtYSBEcmFmdCA0CiogZGVsZXRlcyBgbnVsbGFibGVgIGFuZCBhZGRzIGAibnVsbCJgIHRvIGB0eXBlYCBhcnJheSBpZiBgbnVsbGFibGVgIGlzIGB0cnVlYCBhbmQgYHR5cGVgIGlzIHByZXNlbnQKKiBhZGRzIGB7InR5cGUiOiAibnVsbCJ9YCB0byBgb25lT2ZgIG9yIGBhbnlPZmAgYXJyYXkgaWYgYG51bGxhYmxlYCBpcyBgdHJ1ZWAgYW5kIGB0eXBlYCBpcyBfbm90XyBwcmVzZW50Ciogc3VwcG9ydHMgZGVlcCBzdHJ1Y3R1cmVzIHdpdGggbmVzdGVkIGBhbGxPZmBzIGV0Yy4KKiByZW1vdmVzIFtPcGVuQVBJIHNwZWNpZmljCiAgcHJvcGVydGllc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjZml4ZWQtZmllbGRzLTIwKQpzdWNoIGFzIGBkaXNjcmltaW5hdG9yYCwgYGRlcHJlY2F0ZWRgIGV0Yy4gdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UKKiBvcHRpb25hbGx5IHN1cHBvcnRzIGBwYXR0ZXJuUHJvcGVydGllc2Agd2l0aCBgeC1wYXR0ZXJuUHJvcGVydGllc2AgaW4gdGhlCiAgU2NoZW1hIE9iamVjdAoKKipOT1RFKio6IGAkcmVmYHMgYXJlIG5vdCBkZXJlZmVyZW5jZWQuIFlvdSB3aWxsIG5lZWQgYW5vdGhlciBsaWJyYXJ5IHRvCnJlYWQgdGhlIHNwZWMgYW5kIGZvbGxvdyBgJHJlZmAgZmllbGRzLgoKCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaAokIHBpcCBpbnN0YWxsIHB5LW9wZW5hcGktc2NoZW1hLXRvLWpzb24tc2NoZW1hCmBgYAoKCiMjIFVzYWdlCgpgYGBweXRob24KaW1wb3J0IGpzb24KZnJvbSBvcGVuYXBpX3NjaGVtYV90b19qc29uX3NjaGVtYSBpbXBvcnQgdG9fanNvbl9zY2hlbWEKCm9wZW5hcGlfc2NoZW1hID0gewogICAgInR5cGUiOiAib2JqZWN0IiwKICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJuYW1lIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAibnVsbGFibGUiOiBUcnVlLAogICAgICAgIH0KICAgIH0sCiAgICAieC1wYXR0ZXJuUHJvcGVydGllcyI6IHsKICAgICAgICAiXlthLXpdKyQiOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm51bWJlciIsCiAgICAgICAgfQogICAgfQp9CgpvcHRpb25zID0geyJzdXBwb3J0UGF0dGVyblByb3BlcnRpZXMiOiBUcnVlfQpjb252ZXJ0ZWQgPSB0b19qc29uX3NjaGVtYShvcGVuYXBpX3NjaGVtYSwgb3B0aW9ucykKCnByaW50KGpzb24uZHVtcHMoY29udmVydGVkLCBpbmRlbnQ9MikpCmBgYAoKVGhpcyBvdXRwdXRzIHRoZSBmb2xsb3dpbmcgSlNPTiBzY2hlbWEuIFRoaXMgc2hvd3MgdGhlIGNvbnZlcnNpb24gb2YKYG51bGxhYmxlOiBUcnVlYCB0byBgdHlwZTogWyJzdHJpbmciLCAibnVsbCJdYCwgYW5kIHRoZSBlbmFibGVtZW50IG9mCnVuc3VwcG9ydGVkIEpTT04gU2NoZW1hIGZlYXR1cmVzIHVzaW5nIE9wZW5BUEkgZXh0ZW5zaW9uIGZpZWxkcwooYHgtcGF0dGVyblByb3BlcnRpZXNgIC0+IGBwYXR0ZXJuUHJvcGVydGllc2ApLgoKYGBganNvbgp7CiAgInBhdHRlcm5Qcm9wZXJ0aWVzIjogewogICAgIl5bYS16XSskIjogewogICAgICAidHlwZSI6ICJudW1iZXIiCiAgICB9CiAgfSwKICAicHJvcGVydGllcyI6IHsKICAgICJuYW1lIjogewogICAgICAidHlwZSI6IFsKICAgICAgICAic3RyaW5nIiwKICAgICAgICAibnVsbCIKICAgICAgXQogICAgfQogIH0sCiAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAidHlwZSI6ICJvYmplY3QiCn0KYGBgCgojIyMgT3B0aW9ucwoKVGhlIGB0b19qc29uX3NjaGVtYWAgZnVuY3Rpb24gYWNjZXB0cyBhbiBgb3B0aW9uc2AgZGljdGlvbmFyeSBhcyB0aGUgc2Vjb25kCmFyZ3VtZW50LgoKYGBgcHl0aG9uCiMgRGVmYXVsdHMKb3B0aW9ucyA9IHsKICAgICdjbG9uZVNjaGVtYSc6IFRydWUsCiAgICAnZGF0ZVRvRGF0ZVRpbWUnOiBGYWxzZSwKICAgICdzdXBwb3J0UGF0dGVyblByb3BlcnRpZXMnOiBGYWxzZSwKICAgICdrZWVwTm90U3VwcG9ydGVkJzogW10sCiAgICAncGF0dGVyblByb3BlcnRpZXNIYW5kbGVyJzoKICAgICAgICBvcGVuYXBpX3NjaGVtYV90b19qc29uX3NjaGVtYS5wYXR0ZXJuUHJvcGVydGllc0hhbmRsZXIsCiAgICAncmVtb3ZlUmVhZE9ubHknOiBGYWxzZSwKICAgICdyZW1vdmVXcml0ZU9ubHknOiBUcnVlLAp9CmBgYAoKIyMjIyBgY2xvbmVTY2hlbWFgIChib29sKQoKSWYgc2V0IHRvIGBGYWxzZWAsIGNvbnZlcnRzIHRoZSBwcm92aWRlZCBzY2hlbWEgaW4gcGxhY2UuIElmIGBUcnVlYCwgY2xvbmVzIHRoZQpzY2hlbWEgdXNpbmcgYGNvcHkuZGVlcGNvcHlgLiBEZWZhdWx0cyB0byBgVHJ1ZWAuCgojIyMjIGBkYXRlVG9EYXRlVGltZWAgKGJvb2wpCgpUaGlzIGlzIGBGYWxzZWAgYnkgZGVmYXVsdCBhbmQgbGVhdmVzIGBkYXRlYCBmb3JtYXQgYXMgaXMuIElmIHNldCB0byBgVHJ1ZWAsCnNldHMgYGZvcm1hdDogJ2RhdGUnYCB0byBgZm9ybWF0OiAnZGF0ZS10aW1lJ2AuCgpGb3IgZXhhbXBsZQoKYGBgcHl0aG9uCmltcG9ydCBqc29uCmZyb20gb3BlbmFwaV9zY2hlbWFfdG9fanNvbl9zY2hlbWEgaW1wb3J0IHRvX2pzb25fc2NoZW1hCgpzY2hlbWEgPSB7CiAgJ3R5cGUnOiAnc3RyaW5nJywKICAnZm9ybWF0JzogJ2RhdGUnLAp9Cgpjb252ZXJ0ZWQgPSB0b19qc29uX3NjaGVtYShzY2hlbWEsIHsnZGF0ZVRvRGF0ZVRpbWUnOiBUcnVlfSkKCnByaW50KGpzb24uZHVtcHMoY29udmVydGVkLCBpbmRlbnQ9MikpCmBgYAoKcHJpbnRzCgpgYGBqc29uCnsKICAiZm9ybWF0IjogImRhdGUtdGltZSIsCiAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAidHlwZSI6ICJzdHJpbmciCn0KYGBgCgojIyMjIGBrZWVwTm90U3VwcG9ydGVkYCAobGlzdCkKCkJ5IGRlZmF1bHQsIHRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSByZW1vdmVkIGZyb20gdGhlIHJlc3VsdCBzY2hlbWE6CmBudWxsYWJsZWAsIGBkaXNjcmltaW5hdG9yYCwgYHJlYWRPbmx5YCwgYHdyaXRlT25seWAsIGB4bWxgLCBgZXh0ZXJuYWxEb2NzYCwKYGV4YW1wbGVgIGFuZCBgZGVwcmVjYXRlZGAgYXMgdGhleSBhcmUgbm90IHN1cHBvcnRlZCBieSBKU09OIFNjaGVtYSBEcmFmdCA0LgpQcm92aWRlIGEgbGlzdCBvZiB0aGUgb25lcyB5b3Ugd2FudCB0byBrZWVwIChhcyBzdHJpbmdzKSBhbmQgdGhleSB3b24ndCBiZQpyZW1vdmVkLgoKIyMjIyBgcmVtb3ZlUmVhZE9ubHlgIChib29sKQoKSWYgc2V0IHRvIGBUcnVlYCwgd2lsbCByZW1vdmUgcHJvcGVydGllcyBzZXQgYXMgYHJlYWRPbmx5YC4gSWYgdGhlIHByb3BlcnR5IGlzCnNldCBhcyBgcmVxdWlyZWRgLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgYHJlcXVpcmVkYCBsaXN0IGFzIHdlbGwuIFRoZQpwcm9wZXJ0eSB3aWxsIGJlIHJlbW92ZWQgZXZlbiBpZiBgcmVhZE9ubHlgIGlzIHNldCB0byBiZSBrZXB0IHdpdGgKYGtlZXBOb3RTdXBwb3J0ZWRgLgoKIyMjIyBgcmVtb3ZlV3JpdGVPbmx5YCAoYm9vbCkKClNpbWlsYXIgdG8gYHJlbW92ZVJlYWRPbmx5YCwgYnV0IGZvciBgd3JpdGVPbmx5YCBwcm9wZXJ0aWVzLgoKIyMjIyBgc3VwcG9ydFBhdHRlcm5Qcm9wZXJ0aWVzYCAoYm9vbCkKCklmIHNldCB0byBgVHJ1ZWAgYW5kIGB4LXBhdHRlcm5Qcm9wZXJ0aWVzYCBwcm9wZXJ0eSBpcyBwcmVzZW50LCBjaGFuZ2UKYHgtcGF0dGVyblByb3BlcnRpZXNgIHRvIGBwYXR0ZXJuUHJvcGVydGllc2AgYW5kIGNhbGwKYHBhdHRlcm5Qcm9wZXJ0aWVzSGFuZGxlcmAuIElmIGBwYXR0ZXJuUHJvcGVydGllc0hhbmRsZXJgIGlzIG5vdCBkZWZpbmVkLCBjYWxsCnRoZSBkZWZhdWx0IGhhbmRsZXIuIFNlZSBgcGF0dGVyblByb3BlcnRpZXNIYW5kbGVyYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIyMgYHBhdHRlcm5Qcm9wZXJ0aWVzSGFuZGxlcmAgKGZ1bmN0aW9uKQoKUHJvdmlkZSBhIGZ1bmN0aW9uIHRvIGhhbmRsZSBwYXR0ZXJuIHByb3BlcnRpZXMgYW5kIHNldApgc3VwcG9ydFBhdHRlcm5Qcm9wZXJ0aWVzYCB0byB0YWtlIGVmZmVjdC4gVGhlIGZ1bmN0aW9uIHRha2VzIHRoZSBzY2hlbWEgd2hlcmUKYHgtcGF0dGVyblByb3BlcnRpZXNgIGlzIGRlZmluZWQgb24gdGhlIHJvb3QgbGV2ZWwuIEF0IHRoaXMgcG9pbnQKYHgtcGF0dGVyblByb3BlcnRpZXNgIGlzIGNoYW5nZWQgdG8gYHBhdHRlcm5Qcm9wZXJ0aWVzYC4gSXQgbXVzdCByZXR1cm4gdGhlCm1vZGlmaWVkIHNjaGVtYS4KCklmIHRoZSBoYW5kbGVyIGlzIG5vdCBwcm92aWRlZCwgdGhlIGRlZmF1bHQgaGFuZGxlciBpcyB1c2VkLiBJZgpgYWRkaXRpb25hbFByb3BlcnRpZXNgIGlzIHNldCBhbmQgaXMgYW4gb2JqZWN0LCB0aGUgZGVmYXVsdCBoYW5kbGVyIHNldHMgaXQgdG8KZmFsc2UgaWYgdGhlIGBhZGRpdGlvbmFsUHJvcGVydGllc2Agb2JqZWN0IGhhcyBkZWVwIGVxdWFsaXR5IHdpdGggYSBwYXR0ZXJuCm9iamVjdCBpbnNpZGUgYHBhdHRlcm5Qcm9wZXJ0aWVzYC4gVGhpcyBpcyBiZWNhdXNlIHdlIG1pZ2h0IHdhbnQgdG8gZGVmaW5lCmBhZGRpdGlvbmFsUHJvcGVydGllc2AgaW4gT3BlbkFQSSBzcGVjIGZpbGUsIGJ1dCB3YW50IHRvIHZhbGlkYXRlIGFnYWluc3QgYQpwYXR0ZXJuLiBUaGUgcGF0dGVybiB3b3VsZCB0dXJuIG91dCB0byBiZSB1c2VsZXNzIGlmIGBhZGRpdGlvbmFsUHJvcGVydGllc2Agb2YKdGhlIHNhbWUgc3RydWN0dXJlIHdlcmUgYWxsb3dlZC4gQ3JlYXRlIHlvdSBvd24gaGFuZGxlciB0byBvdmVycmlkZSB0aGlzCmZ1bmN0aW9uYWxpdHkuCgpTZWUgYHRlc3RzL3RvX2pzb25zY2hlbWEvdGVzdF9wYXR0ZXJuX3Byb3BlcnRpZXMucHlgIGZvciBleGFtcGxlcyBvZiB0aGlzLgoKCkNyZWRpdHMKLS0tLS0tLQoKLSBbbWlrdW5uXShodHRwczovL2dpdGh1Yi5jb20vbWlrdW5uKSBmb3IgdGhlIFtvcmlnaW5hbApvcGVuYXBpLXNjaGVtYS10by1qc29uLXNjaGVtYV0oaHR0cHM6Ly9naXRodWIuY29tL21pa3Vubi9vcGVuYXBpLXNjaGVtYS10by1qc29uLXNjaGVtYSkKLSBbUGhpbCBTdHVyZ2Vvbl0oaHR0cHM6Ly9naXRodWIuY29tL3BoaWxzdHVyZ2VvbikgZm9yIGhpcyBncmVhdCAKW2Jsb2cgcG9zdF0oaHR0cHM6Ly9waGlsc3R1cmdlb24udWsvYXBpLzIwMTgvMDMvMzAvb3BlbmFwaS1hbmQtanNvbi1zY2hlbWEtZGl2ZXJnZW5jZS8pCmFib3V0IHRoZSBpc3N1ZSAoYW5kIGhpcyBbcmV2ZXJzZSBpbXBsZW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3dld29yay9qc29uLXNjaGVtYS10by1vcGVuYXBpLXNjaGVtYSkpCg== readmeEtag: '"ed09d8d2c80770ebf18b14fa5917a334d1f42bed"' readmeLastModified: Sat, 25 Jul 2020 05:42:26 GMT repositoryId: 138369054 description: Python port of https://github.com/mikunn/openapi-schema-to-json-schema created: '2018-06-23T03:46:02Z' updated: '2024-03-18T07:38:58Z' language: Python archived: false stars: 13 watchers: 3 forks: 2 owner: pglass logo: https://avatars.githubusercontent.com/u/1077740?v=4 license: MIT repoEtag: '"3911c3e7f7078427e8adf01f22540d8f9c7601f697956470c6f367205b3dd175"' repoLastModified: Mon, 18 Mar 2024 07:38:58 GMT foundInMaster: true category: - Converters - Parsers id: c66a109574c000814bbca0c6afab6254 - source: openapi3 tags repository: https://github.com/ndsev/zswag v3: true id: 9ce9cc067be88c2fb444f0cda133e0ff repositoryMetadata: base64Readme: >- IyBac3dhZwoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9LbGViZXJ0LUVuZ2luZWVyaW5nL3pzd2FnL2FjdGlvbnMvd29ya2Zsb3dzL2NtYWtlLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vS2xlYmVydC1FbmdpbmVlcmluZy96c3dhZy9hY3Rpb25zL3dvcmtmbG93cy9jbWFrZS55bWwpClshW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlbGVhc2UvS2xlYmVydC1FbmdpbmVlcmluZy96c3dhZyldKGh0dHBzOi8vR2l0SHViLmNvbS9LbGViZXJ0LUVuZ2luZWVyaW5nL3pzd2FnL3JlbGVhc2VzLykKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9rbGViZXJ0LWVuZ2luZWVyaW5nL3pzd2FnKV0oaHR0cHM6Ly9naXRodWIuY29tL0tsZWJlcnQtRW5naW5lZXJpbmcvenN3YWcvYmxvYi9tYXN0ZXIvTElDRU5TRSkKCnpzd2FnIGlzIGEgc2V0IG9mIGxpYnJhcmllcyBmb3IgdXNpbmcvaG9zdGluZyB6c2VyaW8gc2VydmljZXMgdGhyb3VnaCBPcGVuQVBJLgoKKipUYWJsZSBvZiBDb250ZW50czoqKgoKICAqIFtDb21wb25lbnRzXSgjY29tcG9uZW50cykKICAqIFtTZXR1cF0oI3NldHVwKQogICAgKyBbRm9yIFB5dGhvbiBVc2Vyc10oI2Zvci1weXRob24tdXNlcnMpCiAgICArIFtGb3IgQysrIFVzZXJzXSgjZm9yLWMtdXNlcnMpCiAgKiBbT3BlbkFQSSBHZW5lcmF0b3IgQ0xJXSgjb3BlbmFwaS1nZW5lcmF0b3ItY2xpKQogICAgKyBbR2VuZXJhdG9yIFVzYWdlIEV4YW1wbGVdKCNnZW5lcmF0b3ItdXNhZ2UtZXhhbXBsZSkKICAgICsgW0RvY3VtZW50YXRpb24gZXh0cmFjdGlvbl0oI2RvY3VtZW50YXRpb24tZXh0cmFjdGlvbikKICAqIFtTZXJ2ZXIgQ29tcG9uZW50IChQeXRob24pXSgjc2VydmVyLWNvbXBvbmVudCkKICAqIFtVc2luZyB0aGUgUHl0aG9uIENsaWVudF0oI3VzaW5nLXRoZS1weXRob24tY2xpZW50KQogICogW0MrKyBDbGllbnRdKCNjLWNsaWVudCkKICAqIFtDbGllbnQgRW52aXJvbm1lbnQgU2V0dGluZ3NdKCNjbGllbnQtZW52aXJvbm1lbnQtc2V0dGluZ3MpCiAgKiBbSFRUUCBQcm94aWVzIGFuZCBBdXRoZW50aWNhdGlvbl0oI3BlcnNpc3RlbnQtaHR0cC1oZWFkZXJzLXByb3h5LWNvb2tpZS1hbmQtYXV0aGVudGljYXRpb24pCiAgKiBbU3dhZ2dlciBVc2VyIEludGVyZmFjZV0oI3N3YWdnZXItdXNlci1pbnRlcmZhY2UpCiAgKiBbQ2xpZW50IFJlc3VsdCBDb2RlIEhhbmRsaW5nXSgjY2xpZW50LXJlc3VsdC1jb2RlLWhhbmRsaW5nKQogICogW09wZW5BUEkgT3B0aW9ucyBJbnRlcm9wZXJhYmlsaXR5XSgjb3BlbmFwaS1vcHRpb25zLWludGVyb3BlcmFiaWxpdHkpCiAgICArIFtIVFRQIG1ldGhvZF0oI2h0dHAtbWV0aG9kKQogICAgKyBbUmVxdWVzdCBCb2R5XSgjcmVxdWVzdC1ib2R5KQogICAgKyBbVVJMIEJsb2IgUGFyYW1ldGVyXSgjdXJsLWJsb2ItcGFyYW1ldGVyKQogICAgKyBbVVJMIFNjYWxhciBQYXJhbWV0ZXJdKCN1cmwtc2NhbGFyLXBhcmFtZXRlcikKICAgICsgW1VSTCBBcnJheSBQYXJhbWV0ZXJdKCN1cmwtYXJyYXktcGFyYW1ldGVyKQogICAgKyBbVVJMIENvbXBvdW5kIFBhcmFtZXRlcl0oI3VybC1jb21wb3VuZC1wYXJhbWV0ZXIpCiAgICArIFtTZXJ2ZXIgVVJMIEJhc2UgUGF0aF0oI3NlcnZlci11cmwtYmFzZS1wYXRoKQogICAgKyBbQXV0aGVudGljYXRpb24gU2NoZW1lc10oI2F1dGhlbnRpY2F0aW9uLXNjaGVtZXMpCgojIyBDb21wb25lbnRzCgpUaGUgenN3YWcgcmVwb3NpdG9yeSBjb250YWlucyB0d28gbWFpbiBsaWJyYXJpZXMgd2hpY2ggcHJvdmlkZQpPcGVuQVBJIGxheWVycyBmb3IgenNlcmlvIFB5dGhvbiBhbmQgQysrIGNsaWVudHMuIEZvciBQeXRob24sIHRoZXJlCmlzIGV2ZW4gYSBnZW5lcmljIHpzZXJpbyBPcGVuQVBJIHNlcnZlciBsYXllci4KClRoZSBmb2xsb3dpbmcgVU1MIGRpYWdyYW0gcHJvdmlkZXMgYSBtb3JlIGluLWRlcHRoIG92ZXJ2aWV3OgoKIVtDb21wb25lbnQgT3ZlcnZpZXddKGRvYy96c3dhZy1hcmNoaXRlY3R1cmUucG5nKQoKSGVyZSBhcmUgc29tZSBicmllZiBkZXNjcmlwdGlvbnMgb2YgdGhlIG1haW4gY29tcG9uZW50czoKCiogYHpzd2FnY2xgIGlzIGEgQysrIExpYnJhcnkgd2hpY2ggZXhwb3NlcyB0aGUgenNlcmlvIE9wZW5BUEkgc2VydmljZSBjbGllbnQgYE9BQ2xpZW50YAogIGFzIHdlbGwgYXMgdGhlIG1vcmUgZ2VuZXJpYyBgT3BlbkFwaUNsaWVudGAgYW5kIGBPcGVuQXBpQ29uZmlnYCBjbGFzc2VzLgogIFRoZSBsYXR0ZXIgdHdvIGFyZSByZXVzZWQgZm9yIHRoZSBQeXRob24gY2xpZW50IGxpYnJhcnkuCiogYHpzd2FnYCBpcyBhIFB5dGhvbiBMaWJyYXJ5IHdoaWNoIHByb3ZpZGVzIGJvdGggYSB6c2VyaW8gUHl0aG9uIHNlcnZpY2UgY2xpZW50CiAgKGBPQUNsaWVudGApIGFzIHdlbGwgYXMgYSB6c2VyaW8tT3BlbkFQSSBzZXJ2ZXIgbGF5ZXIgYmFzZWQgb24gRmxhc2svQ29ubmV4aW9uCiAgKGBPQVNlcnZlcmApLiBJdCBhbHNvIGNvbnRhaW5zIHRoZSBjb21tYW5kLWxpbmUgdG9vbCBgenN3YWcuZ2VuYCwgd2hpY2ggY2FuIGJlCiAgdXNlZCB0byBnZW5lcmF0ZSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZnJvbSBhIHpzZXJpbyBQeXRob24gc2VydmljZSBjbGFzcy4KKiBgcHl6c3dhZ2NsYCBpcyBhIGJpbmRpbmcgbGlicmFyeSB3aGljaCBleHBvc2VzIHRoZSBDKystYmFzZWQgT3BlbkFwaQogIHBhcnNpbmcvcmVxdWVzdCBmdW5jdGlvbmFsaXR5IHRvIFB5dGhvbi4gKipQbGVhc2UgY29uc2lkZXIgaXQgImludGVybmFsIi4qKgoqIGBodHRwY2xgIGlzIGEgd3JhcHBlciBhcm91bmQgW2NwcC1odHRwbGliXShodHRwczovL2dpdGh1Yi5jb20veWhpcm9zZS9jcHAtaHR0cGxpYiksCiAgSFRUUCByZXF1ZXN0IGNvbmZpZ3VyYXRpb24gYW5kIE9TIHNlY3JldCBzdG9yYWdlIGFiaWxpdGllcyBiYXNlZCBvbgogIHRoZSBba2V5Y2hhaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9ocmFudHpzY2gva2V5Y2hhaW4pIGxpYnJhcnkuCiAgCiMjIFNldHVwCgojIyMgRm9yIFB5dGhvbiBVc2VycwoKU2ltcGx5IHJ1biBgcGlwIGluc3RhbGwgenN3YWdgLiAqKk5vdGU6IFRoaXMgb25seSB3b3JrcyB3aXRoIC4uLioqCgoqIDY0LWJpdCBQeXRob24gMy44LngsIGBwaXAgLS12ZXJzaW9uYCA+PSAxOS4zCiogNjQtYml0IFB5dGhvbiAzLjkueCwgYHBpcCAtLXZlcnNpb25gID49IDE5LjMKCioqTm90ZToqKiBPbiBXaW5kb3dzLCBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSB0aGUgKk1pY3Jvc29mdCBWaXN1YWwgQysrIFJlZGlzdHJpYnV0YWJsZSBCaW5hcmllcyogaW5zdGFsbGVkLiBZb3UgY2FuIGZpbmQgdGhlIHg2NCBpbnN0YWxsZXIgaGVyZTogaHR0cHM6Ly9ha2EubXMvdnMvMTYvcmVsZWFzZS92Y19yZWRpc3QueDY0LmV4ZQogCiMjIyBGb3IgQysrIFVzZXJzCgpVc2luZyBDTWFrZSwgeW91IGNhbiAuLi4KCiog8J+Mn3J1biB0ZXN0cy4KKiDwn4yfYnVpbGQgdGhlIHpzd2FnIHdoZWVscyBmb3IgYSBjdXN0b20gUHl0aG9uIHZlcnNpb24uCiog8J+Mn1tpbnRlZ3JhdGUgdGhlIEMrKyBjbGllbnQgaW50byBhIEMrKyBwcm9qZWN0Ll0oI2MtY2xpZW50KQoKRGVwZW5kZW5jaWVzIGFyZSBtYW5hZ2VkIHZpYSBDTWFrZSdzIGBGZXRjaENvbnRlbnRgIG1lY2hhbmlzbSBhbmQgQ29uYW4gMi4wLgpNYWtlIHN1cmUgeW91IGhhdmUgYSByZWNlbnQgdmVyc2lvbiBvZiBDTWFrZSAoPj0gMy4yNCkgYW5kIENvbmFuICg+PSAyLjAuNSkgaW5zdGFsbGVkLgoKVGhlIGJhc2ljIHNldHVwIGZvbGxvd3MgdGhlIHVzdWFsIENNYWtlIGNvbmZpZ3VyZS9idWlsZCBzdGVwczoKYGBgYmFzaApta2RpciBidWlsZCAmJiBjZCBidWlsZApjbWFrZSAuLgpjbWFrZSAtLWJ1aWxkIC4KYGBgCgoqKk5vdGU6KiogVGhlIFB5dGhvbiBlbnZpcm9ubWVudCB1c2VkIGZvciBjb25maWd1cmF0aW9uIHdpbGwgYmUgdXNlZAp0byBidWlsZCB0aGUgcmVzdWx0aW5nIHdoZWVscy4gQWZ0ZXIgYnVpbGRpbmcsIHlvdSB3aWxsIGZpbmQgdGhlIFB5dGhvbgp3aGVlbHMgdW5kZXIgYGJ1aWxkL2Jpbi93aGVlbGAuCgoqKlRvIHJ1biB0ZXN0cyoqLCBqdXN0IGV4ZWN1dGUgQ1Rlc3QgYXQgdGhlIHRvcCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5OgpgYGBiYXNoCmNkIGJ1aWxkICYmIGN0ZXN0IC0tdmVyYm9zZQpgYGAKCgojIyBPcGVuQVBJIEdlbmVyYXRvciBDTEkKCkFmdGVyIGluc3RhbGxpbmcgYHpzd2FnYCB2aWEgcGlwIGFzIFtkZXNjcmliZWQgYWJvdmVdKCNmb3ItcHl0aG9uLXVzZXJzKSwKeW91IGNhbiBydW4gYHB5dGhvbiAtbSB6c3dhZy5nZW5gLCBhIENMSSB0byBnZW5lcmF0ZSBPcGVuQVBJIFlBTUwgZmlsZXMuClRoZSBDTEkgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgb3B0aW9ucwoKYGBgCnVzYWdlOiBac2VyaW8gT3BlbkFwaSBZQU1MIEdlbmVyYXRvciBbLWhdIC1zIHNlcnZpY2UtaWRlbnRpZmllciAtaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgenNlcmlvLW9yLXB5dGhvbi1wYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbLXIgenNlcmlvLXNyYy1yb290LWRpcl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFstcCB0b3AtbGV2ZWwtcGFja2FnZV0gWy1jIHRhZ3MgW3RhZ3MgLi4uXV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFstbyBvdXRwdXRdIFstYiBCQVNFX0NPTkZJR19ZQU1MXQoKb3B0aW9uYWwgYXJndW1lbnRzOgogIC1oLCAtLWhlbHAKICAgICAgICBzaG93IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBleGl0CiAgLXMgc2VydmljZS1pZGVudGlmaWVyLCAtLXNlcnZpY2Ugc2VydmljZS1pZGVudGlmaWVyCgogICAgICAgIEZ1bGx5IHF1YWxpZmllZCB6c2VyaW8gc2VydmljZSBpZGVudGlmaWVyLgoKICAgICAgICBFeGFtcGxlOgogICAgICAgICAgICAtcyBteS5wYWNrYWdlLlNlcnZpY2VDbGFzcwoKICAtaSB6c2VyaW8tb3ItcHl0aG9uLXBhdGgsIC0taW5wdXQgenNlcmlvLW9yLXB5dGhvbi1wYXRoCgogICAgICAgIENhbiBiZSBlaXRoZXIgLi4uCiAgICAgICAgKEEpIFBhdGggdG8gYSB6c2VyaW8gLnpzIGZpbGUuIE11c3QgYmUgZWl0aGVyIGEgdG9wLQogICAgICAgICAgICBsZXZlbCBlbnRyeXBvaW50IChlLmcuIGFsbC56cyksIG9yIGEgc3VicGFja2FnZQogICAgICAgICAgICAoZS5nLiBzZXJ2aWNlcy9teXNlcnZpY2UuenMpIGluIGNvbmp1bmN0aW9uIHdpdGgKICAgICAgICAgICAgYSAiLS16c2VyaW8tc291cmNlLXJvb3R8LXIgPGRpcj4iIGFyZ3VtZW50LgogICAgICAgIChCKSBQYXRoIHRvIHBhcmVudCBkaXIgb2YgYSB6c2VyaW8gUHl0aG9uIHBhY2thZ2UuCgogICAgICAgIEV4YW1wbGVzOgogICAgICAgICAgICAtaSBwYXRoL3RvL3NjaGVtYS9tYWluLnpzICAgICAgICAgKEEpCiAgICAgICAgICAgIC1pIHBhdGgvdG8vcHl0aG9uL3BhY2thZ2UvcGFyZW50ICAoQikKCiAgLXIgenNlcmlvLXNyYy1yb290LWRpciwgLS16c2VyaW8tc291cmNlLXJvb3QgenNlcmlvLXNyYy1yb290LWRpcgoKICAgICAgICBXaGVuIC1pIHNwZWNpZmllcyBhIHpzIGZpbGUgKE9wdGlvbiBBKSwgaW5kaWNhdGUgdGhlCiAgICAgICAgZGlyZWN0b3J5IGZvciB0aGUgenNlcmlvIC1zcmMgZGlyZWN0b3J5IGFyZ3VtZW50LiBJZgogICAgICAgIG5vdCBzcGVjaWZpZWQsIHRoZSBwYXJlbnQgZGlyZWN0b3J5IG9mIHRoZSB6cyBmaWxlCiAgICAgICAgd2lsbCBiZSB1c2VkLgoKICAtcCB0b3AtbGV2ZWwtcGFja2FnZSwgLS1wYWNrYWdlIHRvcC1sZXZlbC1wYWNrYWdlCgogICAgICAgIFdoZW4gLWkgc3BlY2lmaWVzIGEgenMgZmlsZSAoT3B0aW9uIEEpLCBpbmRpY2F0ZQogICAgICAgIHRoYXQgYSBzcGVjaWZpYyB0b3AtbGV2ZWwgenNlcmlvIHBhY2thZ2UgbmFtZQogICAgICAgIHNob3VsZCBiZSB1c2VkLgoKICAgICAgICBFeGFtcGxlczoKICAgICAgICAgICAgLXAgenNlcmlvX3BrZ19uYW1lCgogIC1jIHRhZ3MgW3RhZ3MgLi4uXSwgLS1jb25maWcgdGFncyBbdGFncyAuLi5dCgogICAgICAgIENvbmZpZ3VyYXRpb24gdGFncyBmb3IgYSBzcGVjaWZpYyBvciBhbGwgbWV0aG9kcy4KICAgICAgICBUaGUgYXJndW1lbnQgc3ludGF4IGZvbGxvd3MgdGhpcyBwYXR0ZXJuOgoKICAgICAgICAgICBbKHNlcnZpY2UtbWV0aG9kLW5hbWUpOl0oY29tbWEtc2VwYXJhdGVkLXRhZ3MpCgogICAgICAgIE5vdGU6IFRoZSAtYyBhcmd1bWVudCBtYXkgYmUgYXBwbGllZCBtdWx0aXBsZSB0aW1lcy4KICAgICAgICBUaGUgYGNvbW1hLXNlcGFyYXRlZC10YWdzYCBtdXN0IGJlIGEgbGlzdCBvZiB0YWdzCiAgICAgICAgd2hpY2ggaW5kaWNhdGUgT3BlbkFwaSBtZXRob2QgZ2VuZXJhdG9yIHByZWZlcmVuY2VzLgogICAgICAgIFRoZSBmb2xsb3dpbmcgdGFncyBhcmUgc3VwcG9ydGVkOgoKICAgICAgICBnZXR8cHV0fHBvc3R8ZGVsZXRlIDogSFRUUCBtZXRob2QgdGFncwogICAgICAgICAgICAgICAgcXVlcnl8cGF0aHwgOiBQYXJhbWV0ZXIgbG9jYXRpb24gdGFncwogICAgICAgICAgICAgICAgaGVhZGVyfGJvZHkKICAgICAgICAgICAgICAgICAgZmxhdHxibG9iIDogRmxhdHRlbiByZXF1ZXN0IG9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgcGFzcyBpdCBhcyB3aG9sZSBibG9iLgogICAgICAgICAgKHBhcmFtLXNwZWNpZmllcikgOiBTcGVjaWZ5IHBhcmFtZXRlciBuYW1lLCBmb3JtYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxvY2F0aW9uIGZvciBhIHNwZWNpZmljCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QtcGFydC4gU2VlIGJlbG93LgogICAgICAgICAgICBzZWN1cml0eT0obmFtZSkgOiBTZXQgYSBwYXJ0aWN1bGFyIHNlY3VyaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtZSB0byBiZSB1c2VkLiBUaGUgc2NoZW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgbXVzdCBiZSBwcm92aWRlZCB0aHJvdWdoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSAtLWJhc2UtY29uZmlnLXlhbWwuCiAgICAgICAgIHBhdGg9KG1ldGhvZC1wYXRoKSA6IFNldCBhIHBhcnRpY3VsYXIgbWV0aG9kIHBhdGguCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heSBjb250YWluIHBsYWNlaG9sZGVycyBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBwYXJhbXMuCgogICAgICAgIEEgKHBhcmFtLXNwZWNpZmllcikgdGFnIGhhcyB0aGUgZm9sbG93aW5nIHNjaGVtYToKCiAgICAgICAgICAgIChmaWVsZD9uYW1lPS4uLgogICAgICAgICAgICAgICAgICAmaW49W3BhdGh8Ym9keXxxdWVyeXxoZWFkZXJdCiAgICAgICAgICAgICAgICAgICZmb3JtYXQ9W2JpbmFyeXxiYXNlNjR8aGV4XQogICAgICAgICAgICAgICAgICBbJnN0eWxlPS4uLl0KICAgICAgICAgICAgICAgICAgWyZleHBsb2RlPS4uLl0pCgogICAgICAgIEV4YW1wbGVzOgoKICAgICAgICAgIEV4cG9zZSBhbGwgbWV0aG9kcyBhcyBQT1NULCBidXQgYGdldExheWVyQnlUaWxlSWRgCiAgICAgICAgICBhcyBHRVQgd2l0aCBmbGF0IHBhdGgtcGFyYW1ldGVyczoKCiAgICAgICAgICAgIGAtYyBwb3N0IGdldExheWVyQnlUaWxlSWQ6Z2V0LGZsYXQscGF0aGAKCiAgICAgICAgICBGb3IgbXlNZXRob2QsIHB1dCB0aGUgd2hvbGUgcmVxdWVzdCBibG9iIGludG8gdGhlIGEKICAgICAgICAgIHF1ZXJ5ICJkYXRhIiBwYXJhbWV0ZXIgYXMgYmFzZTY0OgoKICAgICAgICAgICAgYC1jIG15TWV0aG9kOio/bmFtZT1kYXRhJmluPXF1ZXJ5JmZvcm1hdD1iYXNlNjRgCgogICAgICAgICAgRm9yIG15TWV0aG9kLCBzZXQgdGhlICJBd2Vzb21lQXV0aCIgYXV0aCBzY2hlbWU6CgogICAgICAgICAgICBgLWMgbXlNZXRob2Q6c2VjdXJpdHk9QXdlc29tZUF1dGhgCgogICAgICAgICAgRm9yIG15TWV0aG9kLCBwcm92aWRlIHRoZSBwYXRoIGFuZCBwbGFjZSBteUZpZWxkCiAgICAgICAgICBleHBsaWNpdGVseSBpbiBhIHBhdGggcGxhY2Vob2xkZXI6CgogICAgICAgICAgICBgLWMgJ215TWV0aG9kOnBhdGg9L215LW1ldGhvZC97cGFyYW19LC4uLgogICAgICAgICAgICAgICAgIG15RmllbGQ/bmFtZT1wYXJhbSZpbj1wYXRoJmZvcm1hdD1zdHJpbmcnYAoKICAgICAgICBOb3RlOgogICAgICAgICAgICAqIFRoZSBIVFRQLW1ldGhvZCBkZWZhdWx0cyB0byBgcG9zdGAuCiAgICAgICAgICAgICogVGhlIHBhcmFtZXRlciAnaW4nIGRlZmF1bHRzIHRvIGBxdWVyeWAgZm9yCiAgICAgICAgICAgICAgYGdldGAsIGBib2R5YCBvdGhlcndpc2UuCiAgICAgICAgICAgICogSWYgYSBtZXRob2QgdXNlcyBhIHBhcmFtZXRlciBzcGVjaWZpZXIsIHRoZQogICAgICAgICAgICAgIGBmbGF0YCwgYGJvZHlgLCBgcXVlcnlgLCBgcGF0aGAsIGBoZWFkZXJgIGFuZAogICAgICAgICAgICAgIGBib2R5YC10YWdzIGFyZSBpZ25vcmVkLgogICAgICAgICAgICAqIFRoZSBgZmxhdGAgdGFnIGlzIG9ubHkgbWVhbmluZ2Z1bCBpbiBjb25qdW5jdGlvbgogICAgICAgICAgICAgIHdpdGggYHF1ZXJ5YCBvciBgcGF0aGAuCiAgICAgICAgICAgICogQW4gdW5zcGVjaWZpYyB0YWcgbGlzdCAobm8gc2VydmljZS1tZXRob2QtbmFtZSkKICAgICAgICAgICAgICBhZmZlY3RzIHRoZSBkZWZhdWx0cyBvbmx5IGZvciBmb2xsb3dpbmcsIG5vdAogICAgICAgICAgICAgIHByZWNlZGluZyBzcGVjaWFsaXplZCB0YWcgYXNzaWdubWVudHMuCgogIC1vIG91dHB1dCwgLS1vdXRwdXQgb3V0cHV0CgogICAgICAgIE91dHB1dCBmaWxlIHBhdGguIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBvdXRwdXQgd2lsbCBiZQogICAgICAgIHdyaXR0ZW4gdG8gc3Rkb3V0LgoKICAtYiBCQVNFX0NPTkZJR19ZQU1MLCAtLWJhc2UtY29uZmlnLXlhbWwgQkFTRV9DT05GSUdfWUFNTAoKICAgICAgICBCYXNlIGNvbmZpZ3VyYXRpb24gZmlsZS4gQ2FuIGJlIHVzZWQgdG8gZnVsbHkgb3IgcGFydGlhbGx5CiAgICAgICAgc3Vic3RpdHV0ZSAtLWNvbmZpZyBhcmd1bWVudHMsIGFuZCB0byBwcm92aWRlIGFkZGl0aW9uYWwKICAgICAgICBPcGVuQVBJIGluZm9ybWF0aW9uLiBUaGUgWUFNTCBmaWxlIG11c3QgbG9vayBsaWtlIHRoaXM6CgogICAgICAgICAgbWV0aG9kOiAjIE9wdGlvbmFsIG1ldGhvZCB0YWdzIGRpY3Rpb25hcnkKICAgICAgICAgICAgPG1ldGhvZC1uYW1lfCo+OiA8bGlzdCBvZiBjb25maWcgdGFncz4KICAgICAgICAgIHNlY3VyaXR5U2NoZW1lczogLi4uICMgT3B0aW9uYWwgT3BlbkFQSSBzZWN1cml0eVNjaGVtZXMKICAgICAgICAgIGluZm86IC4uLiAgICAgICAgICAgICMgT3B0aW9uYWwgT3BlbkFQSSBpbmZvIHNlY3Rpb24KICAgICAgICAgIHNlcnZlcnM6IC4uLiAgICAgICAgICMgT3B0aW9uYWwgT3BlbkFQSSBzZXJ2ZXJzIHNlY3Rpb24KICAgICAgICAgIHNlY3VyaXR5OiAuLi4gICAgICAgICMgT3B0aW9uYWwgT3BlbkFQSSBnbG9iYWwgc2VjdXJpdHkKYGBgCgojIyMgR2VuZXJhdG9yIFVzYWdlIGV4YW1wbGUKCkxldCdzIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgenNlcmlvIHNlcnZpY2Ugc2F2ZWQgdW5kZXIgYG15YXBwL3NlcnZpY2VzLnpzYDoKCmBgYApwYWNrYWdlIHNlcnZpY2VzOwoKc3RydWN0IFJlcXVlc3QgewogIGludDMyIHZhbHVlOwp9OwoKc3RydWN0IFJlc3BvbnNlIHsKICBpbnQzMiB2YWx1ZTsKfTsKCnNlcnZpY2UgTXlTZXJ2aWNlIHsKICBSZXNwb25zZSBteUFwaShSZXF1ZXN0KTsKfTsKYGBgCgpBbiBPcGVuQVBJIGZpbGUgYGFwaS55YW1sYCBmb3IgYE15U2VydmljZWAgY2FuIG5vdyBiZQpjcmVhdGVkIHdpdGggdGhlIGZvbGxvd2luZyBgenN3YWcuZ2VuYCBpbnZvY2F0aW9uOgoKYGBgYmFzaApjZCBteWFwcApweXRob24gLW0genN3YWcuZ2VuIC1zIHNlcnZpY2VzLk15U2VydmljZSAtaSBzZXJ2aWNlcy56cyAtbyBhcGkueWFtbApgYGAKCllvdSBjYW4gZnVydGhlciBjdXN0b21pemUgdGhlIGdlbmVyYXRpb24gdXNpbmcgYC1jYCBjb25maWd1cmF0aW9uCmFyZ3VtZW50cy4gRm9yIGV4YW1wbGUsIGAtYyBnZXQsZmxhdCxwYXRoYCB3aWxsIHJlY3Vyc2l2ZWx5ICJmbGF0dGVuIgp0aGUgenNlcmlvIHJlcXVlc3Qgb2JqZWN0IGludG8gaXQncyBjb21wb3VuZCBzY2FsYXIgZmllbGRzIHVzaW5nClt4LXpzZXJpby1yZXF1ZXN0LXBhcnRdKCN1cmwtc2NhbGFyLXBhcmFtZXRlcikgZm9yIGFsbCBtZXRob2RzLgpJZiB5b3Ugd2FudCB0byBjaGFuZ2UgT3BlbkFQSSBwYXJhbWV0ZXJzIG9ubHkgZm9yIG9uZSBwYXJ0aWN1bGFyCm1ldGhvZCwgeW91IGNhbiBwcmVmaXggdGhlIHRhZyBjb25maWcgYXJndW1lbnQgd2l0aCB0aGUgbWV0aG9kCm5hbWUgKGAtYyBtZXRob2ROYW1lOnRhZ3MuLi5gKS4KCiMjIyBEb2N1bWVudGF0aW9uIEV4dHJhY3Rpb24KCldoZW4gaW52b2tpbmcgYHpzd2FnLmdlbmAgd2l0aCBgLWkgenNlcmlvLWZpbGVgIGFuIGF0dGVtcHQKd2lsbCBiZSBtYWRlIHRvIHBvcHVsYXRlIHRoZSBzZXJ2aWNlL21ldGhvZC9yZXF1ZXN0L3Jlc3BvbnNlCmRlc2NyaXB0aW9ucyB3aXRoIGRvYy1zdHJpbmdzIHRoYXQgYXJlIGV4dHJhY3RlZCBmcm9tIHRoZSB6c2VyaW8Kc291cmNlcy4KCkZvciBzdHJ1Y3RzIGFuZCBzZXJ2aWNlcywgdGhlIGRvY3VtZW50YXRpb24gaXMgZXhwZWN0ZWQgdG8gYmUKZW5jbG9zZWQgYnkgYC8qISAuLi4uICEqL2AgbWFya2VycyBwcmVjZWRpbmcgdGhlIGRlY2xhcmF0aW9uOgoKYGBgQwovKiEKIyMjIE15IE1hcmtkb3duIFN0cnVjdCBEb2MKSSBjaG9vc2UgdG8gX19oaWdobGlnaHRfXyB0aGlzIHdvcmQuCiEqLwoKc3RydWN0IE15U3RydWN0IHsKICAgIC4uLgp9OwpgYGAKCkZvciBzZXJ2aWNlIG1ldGhvZHMsIGEgc2luZ2xlLWxpbmUgZG9jLXN0cmluZyBpcyBwYXJzZWQgd2hpY2gKaW1tZWRpYXRlbHkgcHJlY2VkZXMgdGhlIGRlY2xhcmF0aW9uOgoKYGBgQwovKiogVGhpcyBtZXRob2QgaXMgZG9jdW1lbnRlZC4gKi8KUmV0dXJuVHlwZSBteU1ldGhvZChBcmd1bWVudFR5cGUpOwpgYGAKCiMjIFNlcnZlciBDb21wb25lbnQKClRoZSBgT0FTZXJ2ZXJgIGNvbXBvbmVudCBnaXZlcyB5b3UgdGhlIHBvd2VyIHRvIG1hcnJ5IGEgenNlcmlvLWdlbmVyYXRlZCBhcHAKc2VydmVyIGNsYXNzIHdpdGggYSB1c2VyLXdyaXR0ZW4gYXBwIGNvbnRyb2xsZXIgYW5kIGEgZml0dGluZyBPcGVuQVBJIHNwZWNpZmljYXRpb24uCkl0IGlzIGJhc2VkIG9uIFtGbGFza10oaHR0cHM6Ly9mbGFzay5wYWxsZXRzcHJvamVjdHMuY29tL2VuLzEuMS54LykgYW5kCltDb25uZXhpb25dKGh0dHBzOi8vY29ubmV4aW9uLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8pLgoKKipJbXBsZW1lbnRhdGlvbiBjaG9pY2UgcmVnYXJkaW5nIEhUVFAgcmVzcG9uc2UgY29kZXM6KiogVGhlIHNlcnZlciBhcyBpbXBsZW1lbnRlZApoZXJlIHdpbGwgcmV0dXJuIEhUVFAgY29kZSBgNDAwYCAoQmFkIFJlcXVlc3QpIHdoZW4gdGhlIHVzZXIgcmVxdWVzdCBjb3VsZCBub3QKYmUgcGFyc2VkLCBhbmQgYDUwMGAgKEludGVybmFsIFNlcnZlciBFcnJvcikgd2hlbiBhIGRpZmZlcmVudCBleGNlcHRpb24gb2NjdXJyZWQgd2hpbGUKZ2VuZXJhdGluZyB0aGUgcmVzcG9uc2UvcnVubmluZyB0aGUgdXNlcidzIGNvbnRyb2xsZXIgaW1wbGVtZW50YXRpb24uCgojIyMgSW50ZWdyYXRpb24gRXhhbXBsZQoKV2UgY29uc2lkZXIgdGhlIHNhbWUgYG15YXBwYCBkaXJlY3Rvcnkgd2l0aCBhIGBzZXJ2aWNlcy56c2AgenNlcmlvIGZpbGUKYXMgYWxyZWFkeSB1c2VkIGluIHRoZSBbT3BlbkFQSSBHZW5lcmF0b3IgRXhhbXBsZV0oI2dlbmVyYXRvci11c2FnZS1leGFtcGxlKS4KCioqTm90ZToqKgoKKiBgbXlhcHBgIG11c3QgYmUgYXZhaWxhYmxlIGFzIGEgbW9kdWxlIChpdCBtdXN0IGJlCnBvc3NpYmxlIHRvIGBpbXBvcnQgbXlhcHBgKS4gCiogV2UgcmVjb21tZW5kIHRvIHJ1biB0aGUgenNlcmlvIFB5dGhvbiBnZW5lcmF0b3IgaW52b2NhdGlvbgogIGluc2lkZSB0aGUgYG15YXBwYCBtb2R1bGUncyBgX19pbml0X18ucHlgLCBsaWtlIHRoaXM6CgpgYGBweQppbXBvcnQgenNlcmlvCmZyb20gb3MucGF0aCBpbXBvcnQgZGlybmFtZSwgYWJzcGF0aAoKd29ya2luZ19kaXIgPSBkaXJuYW1lKGFic3BhdGgoX19maWxlX18pKQp6c2VyaW8uZ2VuZXJhdGUoCiAgenNfZGlyPXdvcmtpbmdfZGlyLAogIG1haW5fenNfZmlsZT0ic2VydmljZXMuenMiLAogIGdlbl9kaXI9d29ya2luZ19kaXIpCmBgYAoKQSBzZXJ2ZXIgc2NyaXB0IGxpa2UgYG15YXBwL3NlcnZlci5weWAgbWlnaHQgdGhlbiBsb29rIGFzIGZvbGxvd3M6CgpgYGBweQppbXBvcnQgenN3YWcKaW1wb3J0IG15YXBwLmNvbnRyb2xsZXIgYXMgY29udHJvbGxlcgpmcm9tIG15YXBwIGltcG9ydCB3b3JraW5nX2RpcgoKIyBUaGlzIGltcG9ydCBvbmx5IHdvcmtzIGFmdGVyIHpzZXJpbyBnZW5lcmF0aW9uLgppbXBvcnQgc2VydmljZXMuYXBpIGFzIHNlcnZpY2VzCgphcHAgPSB6c3dhZy5PQVNlcnZlcigKICBjb250cm9sbGVyX21vZHVsZT1jb250cm9sbGVyLAogIHNlcnZpY2VfdHlwZT1zZXJ2aWNlcy5NeVNlcnZpY2UuU2VydmljZSwKICB5YW1sX3BhdGg9d29ya2luZ19kaXIrIi9hcGkueWFtbCIsCiAgenNfcGtnX3BhdGg9d29ya2luZ19kaXIpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgYXBwLnJ1bigpCmBgYAoKVGhlIHNlcnZlciBzY3JpcHQgYWJvdmUgcmVmZXJlbmNlcyB0d28gaW1wb3J0YW50IGNvbXBvbmVudHM6CiogQW4gKipPcGVuQVBJIGZpbGUqKiAoYG15YXBwL2FwaS55YW1sYCk6IFVwb24gc3RhcnR1cCwgYE9BU2VydmVyYAogIHdpbGwgb3V0cHV0IGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0LiBUaGUKICBlcnJvciBtZXNzYWdlIGFscmVhZHkgY29udGFpbnMgdGhlIGNvcnJlY3QgY29tbWFuZCB0bwogIGludm9rZSB0aGUgW09wZW5BUEkgR2VuZXJhdG9yIENMSV0oI29wZW5hcGktZ2VuZXJhdG9yLWNsaSkKICB0byBnZW5lcmF0ZSBgbXlhcHAvYXBpLnlhbWxgLgoqIEEgKipjb250cm9sbGVyIG1vZHVsZSoqIChgbXlhcHAvY29udHJvbGxlci5weWApOiBUaGlzIGZpbGUgcHJvdmlkZXMKICB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBmb3IgeW91ciBzZXJ2aWNlIGVuZHBvaW50cy4KICAKRm9yIHRoZSBjdXJyZW50IGV4YW1wbGUsIGBjb250cm9sbGVyLnB5YCBtaWdodCBsb29rIGFzIGZvbGxvd3M6CgpgYGBweQppbXBvcnQgc2VydmljZXMuYXBpIGFzIHNlcnZpY2VzCgojIFdyaXR0ZW4gYnkgeW91CmRlZiBteV9hcGkocmVxdWVzdDogc2VydmljZXMuUmVxdWVzdCk6CiAgICByZXR1cm4gc2VydmljZXMuUmVzcG9uc2UocmVxdWVzdC52YWx1ZSAqIDQyKQpgYGAKCiMjIFVzaW5nIHRoZSBQeXRob24gQ2xpZW50CgpUaGUgZ2VuZXJpYyBQeXRob24gY2xpZW50IHRhbGtzIHRvIGFueSB6c2VyaW8gc2VydmljZSB0aGF0IGlzIHJ1bm5pbmcKdmlhIEhUVFAvUkVTVCwgYW5kIHByb3ZpZGVzIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBvZiBpdCdzIGludGVyZmFjZS4KCiMjIyBJbnRlZ3JhdGlvbiBFeGFtcGxlCgpBcyBhbiBleGFtcGxlLCBjb25zaWRlciBhIFB5dGhvbiBtb2R1bGUgY2FsbGVkIGBteWFwcGAgd2hpY2ggaGFzIHRoZQpzYW1lIGBteWFwcC9fX2luaXRfXy5weWAgYW5kIGBteWFwcC9zZXJ2aWNlcy56c2AgenNlcmlvIGRlZmluaXRpb24gYXMKW3ByZXZpb3VzbHkgbWVudGlvbmVkXSgjZ2VuZXJhdG9yLXVzYWdlLWV4YW1wbGUpLiBXZSBjb25zaWRlcgp0aGF0IHRoZSBzZXJ2ZXIgaXMgcHJvdmlkaW5nIGl0cyBPcGVuQVBJIHNwZWMgdW5kZXIgYGxvY2FsaG9zdDo1MDAwL29wZW5hcGkuanNvbmAuCgpJbiB0aGlzIHNldHRpbmcsIGEgY2xpZW50IGBteWFwcC9jbGllbnQucHlgIG1pZ2h0IGxvb2sgYXMgZm9sbG93czoKCmBgYHB5dGhvbgpmcm9tIHpzd2FnIGltcG9ydCBPQUNsaWVudAppbXBvcnQgc2VydmljZXMuYXBpIGFzIHNlcnZpY2VzCgpvcGVuYXBpX3VybCA9ICJodHRwOi8vbG9jYWxob3N0OjUwMDAvb3BlbmFwaS5qc29uIgoKIyBUaGUgY2xpZW50IHJlYWRzIHBlci1tZXRob2QgSFRUUCBkZXRhaWxzIGZyb20gdGhlIE9wZW5BUEkgVVJMLgojIFlvdSBjYW4gYWxzbyBwYXNzIGEgbG9jYWwgZmlsZSBieSBzZXR0aW5nIHRoZSBgaXNfbG9jYWxfZmlsZWAgYXJndW1lbnQKIyBvZiB0aGUgT0FDbGllbnQgY29uc3RydWN0b3IuCmNsaWVudCA9IHNlcnZpY2VzLk15U2VydmljZS5DbGllbnQoT0FDbGllbnQob3BlbmFwaV91cmwpKQoKIyBUaGlzIHdpbGwgdHJpZ2dlciBhbiBIVFRQIHJlcXVlc3QgdW5kZXIgdGhlIGhvb2QuCmNsaWVudC5teV9hcGkoc2VydmljZXMuUmVxdWVzdCgxKSkKYGBgCgpBcyB5b3UgY2FuIHNlZSwgYW4gaW5zdGFuY2Ugb2YgYE9BQ2xpZW50YCBpcyBwYXNzZWQgaW50byB0aGUgY29uc3RydWN0b3IKZm9yIHpzZXJpbyB0byB1c2UgYXMgdGhlIHNlcnZpY2UgY2xpZW50J3MgdHJhbnNwb3J0IGltcGxlbWVudGF0aW9uLgoKKipOb3RlOioqIFdoaWxlIGNvbm5lY3RpbmcsIHRoZSBjbGllbnQgd2lsbCBhbHNvIHVzZSAuLi4KMS4gW1BlcnNpc3RlbnQgSFRUUCBjb25maWd1cmF0aW9uXSgjcGVyc2lzdGVudC1odHRwLWhlYWRlcnMtcHJveHktY29va2llLWFuZC1hdXRoZW50aWNhdGlvbikuCjIuIEFkZGl0aW9uYWwgSFRUUCBxdWVyeS9oZWFkZXIvY29va2llL3Byb3h5L2Jhc2ljLWF1dGggY29uZmlncyBwYXNzZWQKICAgaW50byB0aGUgYE9BQ2xpZW50YCBjb25zdHJ1Y3RvciB1c2luZyBhbiBpbnN0YW5jZSBvZiBgenN3YWcuSFRUUENvbmZpZ2AuCiAgIEZvciBleGFtcGxlOgogICAKICAgYGBgcHl0aG9uCiAgIGZyb20genN3YWcgaW1wb3J0IE9BQ2xpZW50LCBIVFRQQ29uZmlnCiAgIGltcG9ydCBzZXJ2aWNlcy5hcGkgYXMgc2VydmljZXMKICAgY29uZmlnID0gSFRUUENvbmZpZygpIFwKICAgICAgIC5oZWFkZXIoa2V5PSJYLU15LUhlYWRlciIsIHZhbD0idmFsdWUiKSBcICAjIENhbiBiZSBzcGVjaWZpZWQgCiAgICAgICAuY29va2llKGtleT0iTXlDb29raWUiLCB2YWw9InZhbHVlIikgICAgXCAgIyBtdWx0aXBsZSB0aW1lcy4KICAgICAgIC5xdWVyeShrZXk9Ik15Q29va2llIiwgdmFsPSJ2YWx1ZSIpICAgICBcICAjIAogICAgICAgLnByb3h5KGhvc3Q9ImxvY2FsaG9zdCIsIHBvcnQ9NTA1MCwgdXNlcj0iam9obiIsIHB3PSJkb2UiKSBcCiAgICAgICAuYmFzaWNfYXV0aCh1c2VyPSJqb2huIiwgcHc9ImRvZSIpIFwKICAgICAgIC5iZWFyZXIoImJlYXJlci10b2tlbiIpIFwKICAgICAgIC5hcGlfa2V5KCJ0b2tlbiIpCiAgIAogICBjbGllbnQgPSBzZXJ2aWNlcy5NeVNlcnZpY2UuQ2xpZW50KAogICAgICAgT0FDbGllbnQoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9vcGVuYXBpLiIsIGNvbmZpZz1jb25maWcpKQogICAKICAgIyBBbHRlcm5hdGl2ZSB3aGVuIHNwZWNpZnlpbmcgYXBpLWtleSBvciBiZWFyZXIKICAgY2xpZW50ID0gc2VydmljZXMuTXlTZXJ2aWNlLkNsaWVudCgKICAgICAgIE9BQ2xpZW50KCJodHRwOi8vbG9jYWxob3N0OjgwODAvb3BlbmFwaS4iLCBhcGlfa2V5PSJ0b2tlbiIsIGJlYXJlcj0idG9rZW4iKSkKICAgYGBgCiAgIAogICAqKk5vdGU6KiogVGhlIGFkZGl0aW9uYWwgYGNvbmZpZ2Agd2lsbCBvbmx5IGVucmljaCwgbm90IG92ZXJ3cml0ZSB0aGUKICAgZGVmYXVsdCBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24uIElmIHlvdSB3b3VsZCBsaWtlIHRvIHByZXZlbnQgcGVyc2lzdGVudAogICBjb25maWcgZnJvbSBiZWluZyBjb25zaWRlcmVkIGF0IGFsbCwgc2V0IGBIVFRQX1NFVFRJTkdTX0ZJTEVgIHRvIGVtcHR5LAogICBlLmcuIHZpYSBgb3MuZW52aXJvblsnSFRUUF9TRVRUSU5HU19GSUxFJ109JydgCgojIyBDKysgQ2xpZW50CgpUaGUgZ2VuZXJpYyBDKysgY2xpZW50IHRhbGtzIHRvIGFueSB6c2VyaW8gc2VydmljZSB0aGF0IGlzIHJ1bm5pbmcKdmlhIEhUVFAvUkVTVCwgYW5kIHByb3ZpZGVzIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBvZiBpdHMgaW50ZXJmYWNlLgpXaGVuIHVzaW5nIHRoZSBDKysgYE9BQ2xpZW50YCB3aXRoIHlvdXIgenNlcmlvIHNjaGVtYSwgbWFrZSBzdXJlCnRoYXQgdGhlIGZsYWdzIFtgLXdpdGhUeXBlSW5mb0NvZGVgIGFuZCBgLXdpdGhSZWZsZWN0aW9uQ29kZWBdKGh0dHA6Ly96c2VyaW8ub3JnL2RvYy9ac2VyaW9Vc2VyR3VpZGUuaHRtbCN6c2VyaW8tY29tbWFuZC1saW5lLWludGVyZmFjZSkgYXJlIHBhc3NlZCB0byB0aGUgenNlcmlvIEMrKyBlbWl0dGVyLgoKIyMjIEludGVncmF0aW9uIEV4YW1wbGUKCkFzIGFuIGV4YW1wbGUsIHdlIGNvbnNpZGVyIHRoZSBgbXlhcHBgIGRpcmVjdG9yeSB3aGljaCBjb250YWlucyBhIGBzZXJ2aWNlcy56c2AKenNlcmlvIGRlZmluaXRpb24gYXMgW3ByZXZpb3VzbHkgbWVudGlvbmVkXSgjZ2VuZXJhdG9yLXVzYWdlLWV4YW1wbGUpLgoKV2UgYXNzdW1lIHRoYXQgenN3YWcgaXMgYWRkZWQgdG8gYG15YXBwYCBhcyBhIFtHaXQgc3VibW9kdWxlXShodHRwczovL2dpdC1zY20uY29tL2Jvb2svZW4vdjIvR2l0LVRvb2xzLVN1Ym1vZHVsZXMpCnVuZGVyIGBteWFwcC96c3dhZ2AuCgpOZXh0IHRvIGBteWFwcC9zZXJ2aWNlcy56c2AsIHdlIHBsYWNlIGEgYG15YXBwL0NNYWtlTGlzdHMudHh0YCB3aGljaCBkZXNjcmliZXMgb3VyIHByb2plY3Q6CgpgYGBjbWFrZQpwcm9qZWN0KG15YXBwKQoKIyBJZiB5b3UgYXJlIG5vdCBpbnRlcmVzdGVkIGluIGJ1aWxkaW5nIHpzd2FnIFB5dGhvbgojIHdoZWVscywgeW91IGNhbiBzZXQgdGhlIGZvbGxvd2luZyBvcHRpb246CiMgc2V0KFpTV0FHX0JVSUxEX1dIRUVMUyBPRkYpCgojIElmIHlvdXIgY29tcGlsYXRpb24gZW52aXJvbm1lbnQgZG9lcyBub3QgcHJvdmlkZQojIGxpYnNlY3JldCwgdGhlIGZvbGxvd2luZyBzd2l0Y2ggd2lsbCBkaXNhYmxlIGtleWNoYWluIGludGVncmF0aW9uOgojIHNldChaU1dBR19LRVlDSEFJTl9TVVBQT1JUIE9GRikKCiMgSW4gY2FzZSB5b3Ugd2FudCB0byBidWlsZCB6c3dhZyB3aXRob3V0IHVzaW5nIGNvbmFuCiMgbWFrZSBzdXJlIHRvIHByb3ZpZGUgdGFyZ2V0cyBmb3IgT3BlblNTTCBhbmQgc3BkbG9nCiMgYW5kIHNldCB0aGUgZm9sbG93aW5nIHN3aXRjaCB0byBPRkY6CiMgc2V0KFpTV0FHX1dJVEhfQ09OQU4gT0ZGKQoKIyBUaGlzIGlzIGhvdyBDKysgd2lsbCBrbm93IGFib3V0IHRoZSB6c3dhZyBsaWIKIyBhbmQgaXRzIGRlcGVuZGVuY2llcywgc3VjaCBhcyB6c2VyaW8uCmlmIChOT1QgVEFSR0VUIHpzd2FnKQogICAgICAgIEZldGNoQ29udGVudF9EZWNsYXJlKHpzd2FnCiAgICAgICAgICAgICAgICBHSVRfUkVQT1NJVE9SWSAiaHR0cHM6Ly9naXRodWIuY29tL25kc2V2L3pzd2FnLmdpdCIKICAgICAgICAgICAgICAgIEdJVF9UQUcgICAgICAgICJ2MS42LjciCiAgICAgICAgICAgICAgICBHSVRfU0hBTExPVyAgICBPTikKICAgICAgICBGZXRjaENvbnRlbnRfTWFrZUF2YWlsYWJsZSh6c3dhZykKZW5kaWYoKQoKZmluZF9wYWNrYWdlKE9wZW5TU0wgQ09ORklHIFJFUVVJUkVEKQp0YXJnZXRfbGlua19saWJyYXJpZXMoaHR0cGxpYiBJTlRFUkZBQ0UgT3BlblNTTDo6U1NMKQoKIyBUaGlzIGNvbW1hbmQgaXMgcHJvdmlkZWQgYnkgenN3YWcgdG8gZWFzaWx5IGNyZWF0ZQojIGEgQ01ha2UgQysrIHJlZmxlY3Rpb24gbGlicmFyeSBmcm9tIHpzZXJpbyBjb2RlLgphZGRfenNlcmlvX2xpYnJhcnkoJHtQUk9KRUNUX05BTUV9LXpzZXJpby1jcHAKICBXSVRIX1JFRkxFQ1RJT04KICBST09UICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0iCiAgRU5UUlkgc2VydmljZXMuenMKICBUT1BfTEVWRUxfUEtHIG15YXBwX3NlcnZpY2VzKQoKIyBXZSBjcmVhdGUgYSBteWFwcCBjbGllbnQgZXhlY3V0YWJsZSB3aGljaCBsaW5rcyB0bwojIHRoZSBnZW5lcmF0ZWQgenNlcmlvIEMrKyBsaWJyYXJ5IGFuZCB0aGUgenN3YWcgY2xpZW50CiMgbGlicmFyeS4KYWRkX2V4ZWN1dGFibGUoJHtQUk9KRUNUX05BTUV9IGNsaWVudC5jcHApCgojIE1ha2Ugc3VyZSB0byBsaW5rIHRvIHRoZSBgenN3YWdjbGAgdGFyZ2V0CnRhcmdldF9saW5rX2xpYnJhcmllcygke1BST0pFQ1RfTkFNRX0KICAgICR7UFJPSkVDVF9OQU1FfS16c2VyaW8tY3BwIHpzd2FnY2wpCmBgYAoKKipOb3RlOioqIE9wZW5TU0wgaXMgYXNzdW1lZCB0byBiZSBpbnN0YWxsZWQgb3IgYnVpbHQgdXNpbmcgdGhlIGBsaWJgIChub3QgYGxpYjY0YCkgZGlyZWN0b3J5IG5hbWUuCgpUaGUgYGFkZF9leGVjdXRhYmxlYCBjb21tYW5kIGFib3ZlIHJlZmVyZW5jZXMgdGhlIGZpbGUgYG15YXBwL2NsaWVudC5jcHBgLAp3aGljaCBjb250YWlucyB0aGUgY29kZSB0byBhY3R1YWxseSB1c2UgdGhlIHpzd2FnIEMrKyBjbGllbnQuCgpgYGBjcHAKI2luY2x1ZGUgInpzd2FnY2wvb2FjbGllbnQuaHBwIgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlICJteWFwcF9zZXJ2aWNlcy9zZXJ2aWNlcy9NeVNlcnZpY2UuaCIKCnVzaW5nIG5hbWVzcGFjZSB6c3dhZ2NsOwp1c2luZyBuYW1lc3BhY2UgaHR0cGNsOwpuYW1lc3BhY2UgTXlTZXJ2aWNlID0gbXlhcHBfc2VydmljZXM6OnNlcnZpY2VzOjpNeVNlcnZpY2U7CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAgLy8gQXNzdW1lIHRoYXQgdGhlIHNlcnZlciBwcm92aWRlcyBpdHMgT3BlbkFQSSBkZWZpbml0aW9uIGhlcmUKICAgIGF1dG8gb3BlbkFwaVVybCA9ICJodHRwOi8vbG9jYWxob3N0OjUwMDAvb3BlbmFwaS5qc29uIjsKICAgIAogICAgLy8gQ3JlYXRlIGFuIEhUVFAgY2xpZW50IHRvIGJlIHVzZWQgYnkgb3VyIE9wZW5BUEkgY2xpZW50CiAgICBhdXRvIGh0dHBDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEh0dHBMaWJIdHRwQ2xpZW50PigpOwogICAgCiAgICAvLyBGZXRjaCB0aGUgT3BlbkFQSSBjb25maWd1cmF0aW9uIHVzaW5nIHRoZSBIVFRQIGNsaWVudAogICAgYXV0byBvcGVuQXBpQ29uZmlnID0gZmV0Y2hPcGVuQVBJQ29uZmlnKG9wZW5BcGlVcmwsICpodHRwQ2xpZW50KTsKICAgIAogICAgLy8gQ3JlYXRlIGEgWnNlcmlvIHJlZmxlY3Rpb24tYmFzZWQgT3BlbkFQSSBjbGllbnQgdGhhdAogICAgLy8gdXNlcyB0aGUgT3BlbkFQSSBjb25maWd1cmF0aW9uIHdlIGp1c3QgcmV0cmlldmVkLgogICAgYXV0byBvcGVuQXBpQ2xpZW50ID0gT0FDbGllbnQob3BlbkFwaUNvbmZpZywgc3RkOjptb3ZlKGh0dHBDbGllbnQpKTsKICAgICAgICAKICAgIC8vIENyZWF0ZSBhIE15U2VydmljZSBjbGllbnQgYmFzZWQgb24gdGhlIE9wZW5BcGktQ2xpZW50CiAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgenNlcmlvOjpJU2VydmljZUNsaWVudCBpbnRlcmZhY2UuCiAgICBhdXRvIG15U2VydmljZUNsaWVudCA9IE15U2VydmljZTo6Q2xpZW50KG9wZW5BcGlDbGllbnQpOwogICAgCiAgICAvLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JqZWN0CiAgICBhdXRvIHJlcXVlc3QgPSBteWFwcF9zZXJ2aWNlczo6c2VydmljZXM6OlJlcXVlc3QoMik7CgogICAgLy8gSW52b2tlIHRoZSBSRVNUIGVuZHBvaW50LiBNaW5kIHRoYXQgeW91ciBtZXRob2QtCiAgICAvLyBuYW1lIGZyb20gdGhlIHNjaGVtYSBpcyBhcHBlbmRlZCB3aXRoIGEgIi4uLk1ldGhvZCIgc3VmZml4LgogICAgYXV0byByZXNwb25zZSA9IG15U2VydmljZUNsaWVudC5teUFwaU1ldGhvZChyZXF1ZXN0KTsKICAgIAogICAgLy8gUHJpbnQgdGhlIHJlc3BvbnNlCiAgICBzdGQ6OmNvdXQgPDwgIkdvdCAiIDw8IHJlc3BvbnNlLmdldFZhbHVlKCkgPDwgc3RkOjplbmRsOwp9CmBgYAoKKipOb3RlOioqIFdoaWxlIGNvbm5lY3RpbmcsIGBIdHRwTGliSHR0cENsaWVudGAgd2lsbCBhbHNvIHVzZSAuLi4KMS4gW1BlcnNpc3RlbnQgSFRUUCBjb25maWd1cmF0aW9uXSgjcGVyc2lzdGVudC1odHRwLWhlYWRlcnMtcHJveHktY29va2llLWFuZC1hdXRoZW50aWNhdGlvbikuCjIuIEFkZGl0aW9uYWwgSFRUUCBxdWVyeS9oZWFkZXIvY29va2llL3Byb3h5L2Jhc2ljLWF1dGggY29uZmlncyBwYXNzZWQKICAgaW50byB0aGUgYE9BQ2xpZW50YCBjb25zdHJ1Y3RvciB1c2luZyBhbiBpbnN0YW5jZSBvZiBgaHR0cGNsOjpDb25maWdgLgogICBZb3UgY2FuIGluY2x1ZGUgdGhpcyBjbGFzcyB2aWEgYCNpbmNsdWRlICJodHRwY2wvaHR0cC1zZXR0aW5ncy5ocHAiYC4KICAgVGhlIGFkZGl0aW9uYWwgYENvbmZpZ2Agd2lsbCBvbmx5IGVucmljaCwgbm90IG92ZXJ3cml0ZSB0aGUKICAgZGVmYXVsdCBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24uIElmIHlvdSB3b3VsZCBsaWtlIHRvIHByZXZlbnQgcGVyc2lzdGVudAogICBjb25maWcgZnJvbSBiZWluZyBjb25zaWRlcmVkIGF0IGFsbCwgc2V0IGBIVFRQX1NFVFRJTkdTX0ZJTEVgIHRvIGVtcHR5LAogICBlLmcuIHZpYSBgc2V0ZW52YC4KCiMjIENsaWVudCBFbnZpcm9ubWVudCBTZXR0aW5ncwoKQm90aCB0aGUgUHl0aG9uIGFuZCBDKysgQ2xpZW50cyBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgZm9sbG93aW5nCmVudmlyb25tZW50IHZhcmlhYmxlczoKCnwgVmFyaWFibGUgTmFtZSB8IERldGFpbHMgICB8CnwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLSB8CnwgYEhUVFBfU0VUVElOR1NfRklMRWAgfCBQYXRoIHRvIHNldHRpbmdzIGZpbGUgZm9yIEhUVFAgcHJveGllcyBhbmQgYXV0aGVudGljYXRpb24sIHNlZSBbbmV4dCBzZWN0aW9uXSgjcGVyc2lzdGVudC1odHRwLWhlYWRlcnMtcHJveHktY29va2llLWFuZC1hdXRoZW50aWNhdGlvbikgfAp8IGBIVFRQX0xPR19MRVZFTGAgfCBWZXJib3NpdHkgbGV2ZWwgZm9yIGNvbnNvbGUvbG9nIG91dHB1dC4gU2V0IHRvIGBkZWJ1Z2AgZm9yIGRldGFpbGVkIG91dHB1dC4gfAp8IGBIVFRQX0xPR19GSUxFYCB8IExvZ2ZpbGUtcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1lKSB0byByZWRpcmVjdCBjb25zb2xlIG91dHB1dC4gVGhlIGxvZyB3aWxsIHJvdGF0ZSB3aXRoIHRocmVlIGZpbGVzIChgSFRUUF9MT0dfRklMRWAsIGBIVFRQX0xPR19GSUxFLTFgLCBgSFRUUF9MT0dfRklMRS0yYCkuIHwKfCBgSFRUUF9MT0dfRklMRV9NQVhTSVpFYCB8IE1heGltdW0gc2l6ZSBvZiB0aGUgbG9nZmlsZSwgaW4gYnl0ZXMuIERlZmF1bHRzIHRvIDFHQi4gfAp8IGBIVFRQX1RJTUVPVVRgIHwgVGltZW91dCBmb3IgSFRUUCByZXF1ZXN0cyAoY29ubmVjdGlvbit0cmFuc2ZlcikgaW4gc2Vjb25kcy4gRGVmYXVsdHMgdG8gNjBzLiB8CnwgYEhUVFBfU1NMX1NUUklDVGAgfCBTZXQgdG8gYW55IG5vbmVtcHR5IHZhbHVlIGZvciBzdHJpY3QgU1NMIGNlcnRpZmljYXRlIHZhbGlkYXRpb24uIHwKCiMjIFBlcnNpc3RlbnQgSFRUUCBIZWFkZXJzLCBQcm94eSwgQ29va2llIGFuZCBBdXRoZW50aWNhdGlvbgoKQm90aCB0aGUgUHl0aG9uIGBPQUNsaWVudGAgYW5kIEMrKyBgSHR0cExpYkh0dHBDbGllbnRgIHJlYWQgYSBZQU1MIGZpbGUKc3RvcmVkIHVuZGVyIGEgcGF0aCB3aGljaCBpcyBnaXZlbiBieSB0aGUgYEhUVFBfU0VUVElOR1NfRklMRWAgZW52aXJvbm1lbnQKdmFyaWFibGUuIFRoZSBZQU1MIGZpbGUgY29udGFpbnMgYSBsaXN0IG9mIEhUVFAtcmVsYXRlZCBjb25maWdzIHRoYXQgYXJlCmFwcGxpZWQgdG8gSFRUUCByZXF1ZXN0cyBiYXNlZCBvbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aGljaCBpcyBtYXRjaGVkCmFnYWluc3QgdGhlIHJlcXVlc3RlZCBVUkwuCgpGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBlbnRyeSB3b3VsZCBtYXRjaCBhbGwgcmVxdWVzdHMgZHVlIHRvIHRoZSBgKmAKdXJsLW1hdGNoLXBhdHRlcm4gZm9yIHRoZSBgc2NvcGVgIGZpZWxkOgoKYGBgeWFtbApodHRwLXNldHRpbmdzOgogICMgVW5kZXIgaHR0cC1zZXR0aW5ncywgYSBsaXN0IG9mIHNldHRpbmdzIGlzIGRlZmluZWQgZm9yIHNwZWNpZmljIFVSTCBzY29wZXMuCiAgLSBzY29wZTogKiAgICAgIyBVUkwgc2NvcGUgLSBlLmcuIGh0dHBzOi8vKi5uZHMubGl2ZS8qIG9yICouZ29vZ2xlLmNvbS4KICAgIGJhc2ljLWF1dGg6ICAjIEJhc2ljIGF1dGggY3JlZGVudGlhbHMgZm9yIG1hdGNoaW5nIHJlcXVlc3RzLgogICAgICB1c2VyOiBqb2huZG9lCiAgICAgIGtleWNoYWluOiBrZXljaGFpbi1zZXJ2aWNlLXN0cmluZwogICAgcHJveHk6ICAgICAgIyBQcm94eSBzZXR0aW5ncyBmb3IgbWF0Y2hpbmcgcmVxdWVzdHMuCiAgICAgIGhvc3Q6IGxvY2FsaG9zdAogICAgICBwb3J0OiA4ODg4CiAgICAgIHVzZXI6IHRlc3QKICAgICAga2V5Y2hhaW46IC4uLgogICAgY29va2llczogICAgIyBBZGRpdGlvbmFsIENvb2tpZXMgZm9yIG1hdGNoaW5nIHJlcXVlc3RzLgogICAgICBrZXk6IHZhbHVlCiAgICBoZWFkZXJzOiAgICAjIEFkZGl0aW9uYWwgSGVhZGVycyBmb3IgbWF0Y2hpbmcgcmVxdWVzdHMuCiAgICAgIGtleTogdmFsdWUKICAgIHF1ZXJ5OiAgICAgICMgQWRkaXRpb25hbCBRdWVyeSBwYXJhbWV0ZXJzIGZvciBtYXRjaGluZyByZXF1ZXN0cy4KICAgICAga2V5OiB2YWx1ZQogICAgYXBpLWtleTogdmFsdWUgICMgQVBJIEtleSBhcyByZXF1aXJlZCBieSBPcGVuQVBJIGNvbmZpZyAtIHNlZSBkZXNjcmlwdGlvbiBiZWxvdy4KYGBgCgoqKk5vdGU6KiogRm9yIGBwcm94eWAgY29uZmlncywgdGhlIGNyZWRlbnRpYWxzIGFyZSBvcHRpb25hbC4KClRoZSAqKmBhcGkta2V5YCoqIHNldHRpbmcgd2lsbCBiZSBhcHBsaWVkIHVuZGVyIHRoZSBjb3JyZWN0CmNvb2tpZS9oZWFkZXIvcXVlcnkgcGFyYW1ldGVyLCBpZiB0aGUgc2VydmljZQp5b3UgYXJlIGNvbm5lY3RpbmcgdG8gdXNlcyBhbiBbT3BlbkFQSSBgYXBpS2V5YCBhdXRoIHNjaGVtZV0oI2F1dGhlbnRpY2F0aW9uLXNjaGVtZXMpLgoKUGFzc3dvcmRzIGNhbiBiZSBzdG9yZWQgaW4gY2xlYXIgdGV4dCBieSBzZXR0aW5nIGEgYHBhc3N3b3JkYCBmaWVsZCBpbnN0ZWFkCm9mIHRoZSBga2V5Y2hhaW5gIGZpZWxkLiBLZXljaGFpbiBlbnRyaWVzIGNhbiBiZSBtYWRlIHdpdGggZGlmZmVyZW50IHRvb2xzCm9uIGVhY2ggcGxhdGZvcm06CgoqIFtMaW51eCBgc2VjcmV0LXRvb2xgXShodHRwczovL3d3dy5tYXJpYW4tZGFuLnJvL2Jsb2cvc3RvcmluZy1zZWNyZXRzLXVzaW5nLXNlY3JldC10b29sKSAKKiBbbWFjT1MgYGFkZC1nZW5lcmljLXBhc3N3b3JkYF0oaHR0cHM6Ly93d3cubmV0bWVpc3Rlci5vcmcvYmxvZy9rZXljaGFpbi1wYXNzd29yZHMuaHRtbCkKKiBbV2luZG93cyBgY21ka2V5YF0oaHR0cHM6Ly93d3cuc2NyaXB0aW5nbGlicmFyeS5jb20vbGFuZ3VhZ2VzL3Bvd2Vyc2hlbGwvaG93LXRvLW1hbmFnZS1zZWNyZXRzLWFuZC1wYXNzd29yZHMtd2l0aC1jcmVkZW50aWFsbWFuYWdlci1hbmQtcG93ZXJzaGVsbC8pCgojIyBDbGllbnQgUmVzdWx0IENvZGUgSGFuZGxpbmcKCkJvdGggY2xpZW50cyAoUHl0aG9uIGFuZCBDKyspIHdpbGwgdHJlYXQgYW55IEhUVFAgcmVzcG9uc2UgY29kZSBvdGhlciB0aGFuIGAyMDBgIGFzIGFuIGVycm9yIHNpbmNlIHpzZXJpbyBzZXJ2aWNlcyBhcmUgZXhwZWN0ZWQgdG8gcmV0dXJuIGEgcGFyc2FibGUgcmVzcG9uc2Ugb2JqZWN0LiBUaGUgY2xpZW50IHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIHdpdGggYSBkZXNjcmlwdGl2ZSBtZXNzYWdlIGlmIHRoZSByZXNwb25zZSBjb2RlIGlzIG5vdCBgMjAwYC4KCkluIGNhc2UgYXBwbGljYXRpb25zIHdhbnQgdG8gdXRpbGl6ZSBmb3IgZXhhbXBsZSB0aGUgYDIwNCAoTm8gQ29udGVudClgIHJlc3BvbnNlIGNvZGUsIHRoZXkgaGF2ZSB0byBjYXRjaCB0aGUgZXhjZXB0aW9uIGFuZCBoYW5kbGUgaXQgYWNjb3JkaW5nbHkuCgojIyBTd2FnZ2VyIFVzZXIgSW50ZXJmYWNlIAoKSWYgeW91IGhhdmUgaW5zdGFsbGVkIGBwaXAgaW5zdGFsbCAiY29ubmV4aW9uW3N3YWdnZXItdWldImAsIHlvdSBjYW4gdmlldwpBUEkgZG9jcyBvZiB5b3VyIHNlcnZpY2UgdW5kZXIgYFsvcHJlZml4XS91aWAuCgojIyBPcGVuQVBJIE9wdGlvbnMgSW50ZXJvcGVyYWJpbGl0eQoKVGhlIFNlcnZlciwgQ2xpZW50cyBhbmQgR2VuZXJhdG9yIG9mZmVyIHZhcmlvdXMgZGVncmVlcyBvZiBmcmVlZG9tCnJlZ2FyZGluZyB0aGUgT3BlbkFQSSBZQU1MIGZpbGUuIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgZGV0YWlsIHdoaWNoCmNvbXBvbmVudHMgc3VwcG9ydCB3aGljaCBhc3BlY3RzIG9mIE9wZW5BUEkuIFRoZSBkaWZmZXJlbmNlIGluIGNvbXBsaWFuY2UKaXMgbW9zdGx5IGR1ZSB0byBsaW1pdGVkIGRldmVsb3BtZW50IHNjb3Blcy4gSWYgeW91IGFyZSBtaXNzaW5nIGEgcGFydGljdWxhcgpPcGVuQVBJIGZlYXR1cmUgZm9yIGEgcGFydGljdWxhciBjb21wb25lbnQsIGZlZWwgZnJlZSB0byBjcmVhdGUgYW4gaXNzdWUhCgoqKk5vdGU6KiogRm9yIGFsbCBvcHRpb25zIHRoYXQgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgYHpzd2FnLmdlbmAsIHlvdQp3aWxsIG5lZWQgdG8gbWFudWFsbHkgZWRpdCB0aGUgT3BlbkFQSSBZQU1MIGZpbGUgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZApjb25maWd1cmF0aW9uLiBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8gZWRpdCB0aGUgZmlsZSBtYW51YWxseSB0byBmaWxsIGluCm1ldGEtaW5mbyAocHJvdmlkZXIgbmFtZSwgc2VydmljZSB2ZXJzaW9uLCBldGMuKS4KCiMjIyBIVFRQIG1ldGhvZAoKVG8gY2hhbmdlIHRoZSAqKkhUVFAgbWV0aG9kKiosIHRoZSBkZXNpcmVkIG1ldGhvZCBuYW1lIGlzIHBsYWNlZCAKYXMgdGhlIGtleSB1bmRlciB0aGUgbWV0aG9kIHBhdGgsIHN1Y2ggYXMgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlOgpgYGB5YW1sCnBhdGhzOgogIC9tZXRob2ROYW1lOgogICAge2dldHxwb3N0fHB1dHxkZWxldGV9OgogICAgICAuLi4KYGBgCgojIyMjIENvbXBvbmVudCBTdXBwb3J0Cgp8IEZlYXR1cmUgICAgICAgICAgICB8IEMrKyBDbGllbnQgfCBQeXRob24gQ2xpZW50IHwgT0FTZXJ2ZXIgfCB6c3dhZy5nZW4gfAp8IC0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0gfCAtLS0tLS0tLS0gfAp8IGBnZXRgIGBwb3N0YCBgcHV0YCBgZGVsZXRlYCB8IOKclO+4jyB8IOKclO+4jyB8IOKclO+4jyB8IOKclO+4jyB8CnwgYHBhdGNoYCB8IOKdjO+4jyB8IOKdjO+4jyB8IOKdjO+4jyB8IOKdjO+4jyB8CgoqKk5vdGU6KiogUGF0Y2ggaXMgdW5zdXBwb3J0ZWQsIGJlY2F1c2UgdGhlIHJlcXVpcmVkIHNlbWFudGljcyBvZgphIHBhcnRpYWwgb2JqZWN0IHVwZGF0ZSBjYW5ub3QgYmUgcmVhbGl6ZWQgaW4gdGhlIHpzZXJpbyB0cmFuc3BvcnQKbGF5ZXIgaW50ZXJmYWNlLgoKIyMjIFJlcXVlc3QgQm9keQoKQSBzZXJ2ZXIgY2FuIGluc3RydWN0IGNsaWVudHMgdG8gdHJhbnNtaXQgdGhlaXIgenNlcmlvIHJlcXVlc3Qgb2JqZWN0IGluIHRoZQpyZXF1ZXN0IGJvZHkgd2hlbiB1c2luZyBIVFRQIGBwb3N0YCwgYHB1dGAgb3IgYGRlbGV0ZWAuClRoaXMgaXMgZG9uZSBieSBzZXR0aW5nIHRoZSBPcGVuQVBJIGByZXF1ZXN0Qm9keS9jb250ZW50YCB0bwpgYXBwbGljYXRpb24veC16c2VyaW8tb2JqZWN0YDoKCmBgYHlhbWwKcmVxdWVzdEJvZHk6CiAgY29udGVudDoKICAgIGFwcGxpY2F0aW9uL3gtenNlcmlvLW9iamVjdDoKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IHN0cmluZwpgYGAKCiMjIyMgQ29tcG9uZW50IFN1cHBvcnQKCnwgRmVhdHVyZSAgICAgICAgICAgIHwgQysrIENsaWVudCB8IFB5dGhvbiBDbGllbnQgfCBPQVNlcnZlciB8IHpzd2FnLmdlbiB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLSB8IC0tLS0tLS0tLSB8CnwgYGFwcGxpY2F0aW9uL3gtenNlcmlvLW9iamVjdGAgfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfAoKIyMjIFVSTCBCbG9iIFBhcmFtZXRlcgoKWnN3YWcgdG9vbHMgc3VwcG9ydCBhbiBhZGRpdGlvbmFsIE9wZW5BUEkgbWV0aG9kIHBhcmFtZXRlcgpmaWVsZCBjYWxsZWQgYHgtenNlcmlvLXJlcXVlc3QtcGFydGAuIFRocm91Z2ggdGhpcyBmaWVsZCwKYSBzZXJ2aWNlIHByb3ZpZGVyIGNhbiBleHByZXNzIHRoYXQgYSBjZXJ0YWluIHJlcXVlc3QgcGFyYW1ldGVyCm9ubHkgY29udGFpbnMgYSBwYXJ0IG9mLCBvciB0aGUgd2hvbGUgenNlcmlvIHJlcXVlc3Qgb2JqZWN0LgpXaGVuIHBhcmFtZXRlciBjb250YWlucyB0aGUgd2hvbGUgcmVxdWVzdCBvYmplY3QsIGB4LXpzZXJpby1yZXF1ZXN0LXBhcnRgCnNob3VsZCBiZSBzZXQgdG8gYW4gYXN0ZXJpc2sgKGAqYCk6CgpgYGB5YW1sCnBhcmFtZXRlcnM6Ci0gZGVzY3JpcHRpb246ICcnCiAgaW46IHF1ZXJ5fHBhdGh8aGVhZGVyCiAgbmFtZTogcGFyYW1ldGVyTmFtZQogIHJlcXVpcmVkOiB0cnVlCiAgeC16c2VyaW8tcmVxdWVzdC1wYXJ0OiAiKiIKICBzY2hlbWE6CiAgICBmb3JtYXQ6IHN0cmluZ3xieXRlfGJhc2U2NHxiYXNlNjR1cmx8aGV4fGJpbmFyeQpgYGAKCkFib3V0IHRoZSBgZm9ybWF0YCBzcGVjaWZpZXIgdmFsdWU6CiogQm90aCBgc3RyaW5nYCBhbmQgYGJpbmFyeWAgcmVzdWx0IGluIGEgcmF3IFVSTC1lbmNvZGVkIHN0cmluZyBidWZmZXIuCiogQm90aCBgYnl0ZWAgYW5kIGBiYXNlNjRgIHJlc3VsdCBpbiBhIHN0YW5kYXJkIEJhc2U2NC1lbmNvZGVkIHZhbHVlLgogIFRoZSBgYmFzZTY0dXJsYCBvcHRpb24gaW5kaWNhdGVzIFVSTC1zYWZlIEJhc2U2NCBmb3JtYXQuCiogVGhlIGBoZXhgIGVuY29kaW5nIHByb2R1Y2VzIGEgaGV4YWRlY2ltYWwgZW5jb2Rpbmcgb2YgdGhlIHJlcXVlc3QgYmxvYi4KCioqTm90ZToqKiBXaGVuIGEgcGFyYW1ldGVyIGlzIHBhc3NlZCB3aXRoIGBpbj1wYXRoYCwgaXRzIHZhbHVlCioqbXVzdCBub3QgYmUgZW1wdHkqKi4gVGhpcyBob2xkcyB0cnVlIGZvciBzdHJpbmdzIGFuZCBieXRlcywKYnV0IGFsc28gZm9yIGFycmF5cyAoc2VlIGJlbG93KS4KCiMjIyMgQ29tcG9uZW50IFN1cHBvcnQKCnwgRmVhdHVyZSAgICAgICAgICAgIHwgQysrIENsaWVudCB8IFB5dGhvbiBDbGllbnQgfCBPQVNlcnZlciB8IHpzd2FnLmdlbiB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLSB8IC0tLS0tLS0tLSB8CnwgYHgtenNlcmlvLXJlcXVlc3QtcGFydDogKmAgfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfAp8IGBmb3JtYXQ6IHN0cmluZ2AgfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfAp8IGBmb3JtYXQ6IGJ5dGVgIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwKfCBgZm9ybWF0OiBoZXhgIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwKCiMjIyBVUkwgU2NhbGFyIFBhcmFtZXRlcgoKVXNpbmcgYHgtenNlcmlvLXJlcXVlc3QtcGFydGAsIGl0IGlzIGFsc28gcG9zc2libGUgdG8gdHJhbnNmZXIKb25seSBhIHNpbmdsZSBzY2FsYXIgKG5lc3RlZCkgbWVtYmVyIG9mIHRoZSByZXF1ZXN0IG9iamVjdDoKCmBgYHlhbWwKcGFyYW1ldGVyczoKLSBkZXNjcmlwdGlvbjogJycKICBpbjogcXVlcnl8cGF0aHxoZWFkZXIKICBuYW1lOiBwYXJhbWV0ZXJOYW1lCiAgcmVxdWlyZWQ6IHRydWUKICB4LXpzZXJpby1yZXF1ZXN0LXBhcnQ6ICJbcGFyZW50Ll0qbWVtYmVyIgogIHNjaGVtYToKICAgIGZvcm1hdDogc3RyaW5nfGJ5dGV8YmFzZTY0fGJhc2U2NHVybHxoZXh8YmluYXJ5CmBgYAoKSW4gdGhpcyBjYXNlLCBgeC16c2VyaW8tcmVxdWVzdC1wYXJ0YCBzaG91bGQgcG9pbnQgdG8gYSBzY2FsYXIgdHlwZSwKc3VjaCBhcyBgdWludDhgLCBgZmxvYXQzMmAsIGBzdHJpbmdgIGV0Yy4KClRoZSBgZm9ybWF0YCB2YWx1ZSBlZmZlY3QgcmVtYWlucyBhcyBleHBsYWluZWQgYWJvdmUuIEEgc21hbGwKZGlmZmVyZW5jZSBleGlzdHMgZm9yIGludGVnZXIgdHlwZXM6IFRoZWlyIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uCndpbGwgYmUgdGhlIG5hdHVyYWwgbnVtZXJpYyBvbmUsIG5vdCBiaW5hcnkuCgojIyMjIENvbXBvbmVudCBTdXBwb3J0Cgp8IEZlYXR1cmUgICAgICAgICAgICB8IEMrKyBDbGllbnQgfCBQeXRob24gQ2xpZW50IHwgT0FTZXJ2ZXIgfCB6c3dhZy5nZW4gfAp8IC0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0gfCAtLS0tLS0tLS0gfAp8IGB4LXpzZXJpby1yZXF1ZXN0LXBhcnQ6IDxbcGFyZW50Ll0qbWVtYmVyPmAgfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfAoKIyMjIFVSTCBBcnJheSBQYXJhbWV0ZXIKClRoZSBgeC16c2VyaW8tcmVxdWVzdC1wYXJ0YCBtYXkgYWxzbyBwb2ludCB0byBhbiBhcnJheSBtZW1iZXIgb2YKdGhlIHpzZXJpbyByZXF1ZXN0IHN0cnVjdCwgbGlrZSBzbzoKCmBgYHlhbWwKcGFyYW1ldGVyczoKLSBkZXNjcmlwdGlvbjogJycKICBpbjogcXVlcnl8cGF0aHxoZWFkZXIKICBzdHlsZTogZm9ybXxzaW1wbGV8bGFiZWx8bWF0cml4CiAgZXhwbG9kZTogdHJ1ZXxmYWxzZQogIG5hbWU6IHBhcmFtZXRlck5hbWUKICByZXF1aXJlZDogdHJ1ZQogIHgtenNlcmlvLXJlcXVlc3QtcGFydDogIltwYXJlbnQuXSphcnJheV9tZW1iZXIiCiAgc2NoZW1hOgogICAgZm9ybWF0OiBzdHJpbmd8Ynl0ZXxiYXNlNjR8YmFzZTY0dXJsfGhleHxiaW5hcnkKYGBgCgpJbiB0aGlzIGNhc2UsIGB4LXpzZXJpby1yZXF1ZXN0LXBhcnRgIHNob3VsZCBwb2ludCB0byBhbiBhcnJheSBvZgpzY2FsYXIgdHlwZXMuIFRoZSBhcnJheSB3aWxsIGJlIGVuY29kZWQgYWNjb3JkaW5nCnRvIHRoZSBbZm9ybWF0LCBzdHlsZSBhbmQgZXhwbG9kZV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4xLjAubWQjcGFyYW1ldGVyLW9iamVjdCkKc3BlY2lmaWVycy4KCnwgRmVhdHVyZSAgICAgICAgICAgIHwgQysrIENsaWVudCB8IFB5dGhvbiBDbGllbnQgfCBPQVNlcnZlciB8IHpzd2FnLmdlbiB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLSB8IC0tLS0tLS0tLSB8CnwgYHgtenNlcmlvLXJlcXVlc3QtcGFydDogPFtwYXJlbnQuXSphcnJheV9tZW1iZXI+YCAgfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfCDinJTvuI8gfAp8IGBzdHlsZTogc2ltcGxlYCB8IOKclO+4jyB8IOKclO+4jyB8IOKclO+4jyB8IOKclO+4jyB8CnwgYHN0eWxlOiBmb3JtYCB8IOKclO+4jyB8IOKclO+4jyB8IOKclO+4jyB8IOKclO+4jyB8CnwgYHN0eWxlOiBsYWJlbGAgfCDinJTvuI8gfCDinJTvuI8gfCDinYwgfCDinJTvuI8gfAp8IGBzdHlsZTogbWF0cml4YCB8IOKclO+4jyB8IOKclO+4jyB8IOKdjCB8IOKclO+4jyB8CnwgYGV4cGxvZGU6IHRydWVgIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwKfCBgZXhwbG9kZTogZmFsc2VgIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwKCiMjIyBVUkwgQ29tcG91bmQgUGFyYW1ldGVyCgpJbiB0aGlzIGNhc2UsIGB4LXpzZXJpby1yZXF1ZXN0LXBhcnRgIHBvaW50cyB0byBhIHpzZXJpbyBjb21wb3VuZCBzdHJ1Y3QKaW5zdGVhZCBvZiBhIGZpZWxkIHdpdGggYSBzY2FsYXIgdmFsdWUuICoqVGhpcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC4qKgoKIyMjIyBDb21wb25lbnQgU3VwcG9ydAoKfCBGZWF0dXJlICAgICAgICAgICAgfCBDKysgQ2xpZW50IHwgUHl0aG9uIENsaWVudCB8IE9BU2VydmVyIHwgenN3YWcuZ2VuIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tIHwgLS0tLS0tLS0tIHwKfCBgeC16c2VyaW8tcmVxdWVzdC1wYXJ0OiA8W3BhcmVudC5dKmNvbXBvdW5kX21lbWJlcj5gICB8IOKdjO+4jyB8IOKdjO+4jyB8IOKdjO+4jyB8IOKdjO+4jyB8CgojIyMgU2VydmVyIFVSTCBCYXNlIFBhdGgKCk9wZW5BUEkgYWxsb3dzIGZvciBhIGBzZXJ2ZXJzYCBmaWVsZCBpbiB0aGUgc3BlYyB0aGF0IGxpc3RzIFVSTCBwYXRoIHByZWZpeGVzCnVuZGVyIHdoaWNoIHRoZSBzcGVjaWZpZWQgQVBJIG1heSBiZSByZWFjaGVkLiBUaGUgT3BlbkFQSSBjbGllbnRzCmxvb2tzIGludG8gdGhpcyBsaXN0IHRvIGRldGVybWluZSBhIFVSTCBiYXNlIHBhdGggZnJvbQp0aGUgZmlyc3QgZW50cnkgaW4gdGhpcyBsaXN0LiBBIHNhbXBsZSBlbnRyeSBtaWdodCBsb29rIGFzIGZvbGxvd3M6CgpgYGAKc2VydmVyczoKLSBodHRwOi8vdW51c2VkLWhvc3QtaW5mb3JtYXRpb24vcGF0aC90by9teS9hcGkKYGBgIAoKVGhlIE9wZW5BUEkgY2xpZW50IHdpbGwgdGhlbiBjYWxsIG1ldGhvZHMgd2l0aCB5b3VyIHNwZWNpZmllZCBob3N0CmFuZCBwb3J0LCBidXQgcHJlZml4IHRoZSBgL3BhdGgvdG8vbXkvYXBpYCBzdHJpbmcuIAoKIyMjIyBDb21wb25lbnQgU3VwcG9ydAoKfCBGZWF0dXJlICAgICAgICAgICAgfCBDKysgQ2xpZW50IHwgUHl0aG9uIENsaWVudCB8IE9BU2VydmVyIHwgenN3YWcuZ2VuIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tIHwgLS0tLS0tLS0tIHwKfCBgc2VydmVyc2AgIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwg4pyU77iPIHwKCiMjIyBBdXRoZW50aWNhdGlvbiBTY2hlbWVzCgpUbyBmYWNpbGl0YXRlIHRoZSBjb21tdW5pY2F0aW9uIG9mIGF1dGhlbnRpY2F0aW9uIG5lZWRzIGZvciB0aGUgd2hvbGUgb3IgcGFydHMKb2YgYSBzZXJ2aWNlLCBPcGVuQVBJIGFsbG93cyBmb3IgYHNlY3VyaXR5U2NoZW1lc2AgYW5kIGBzZWN1cml0eWAgZmllbGRzIGluIHRoZSBzcGVjLgpQbGVhc2UgcmVmZXIgdG8gdGhlIHJlbGV2YW50IHBhcnRzIG9mIHRoZSBbT3BlbkFQSSAzIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYXV0aGVudGljYXRpb24vKSBmb3Igc29tZQpleGFtcGxlcyBvbiBob3cgdG8gaW50ZWdyYXRlIHRoZXNlIGZpZWxkcyBpbnRvIHlvdXIgc3BlYy4KClpzd2FnIGN1cnJlbnRseSB1bmRlcnN0YW5kcyB0aGUgZm9sbG93aW5nIGF1dGhlbnRpY2F0aW9uIHNjaGVtZXM6CgoqICoqSFRUUCBCYXNpYyBBdXRob3JpemF0aW9uOioqIElmIGEgY2FsbGVkIGVuZHBvaW50IHJlcXVpcmVzIEhUVFAgYmFzaWMgYXV0aCwKICB6c3dhZyB3aWxsIHZlcmlmeSB0aGF0IHRoZSBIVFRQIGNvbmZpZyBjb250YWlucyBiYXNpYy1hdXRoIGNyZWRlbnRpYWxzLgogIElmIHRoZXJlIGFyZSBub25lLCB6c3dhZyB3aWxsIHRocm93IGEgZGVzY3JpcHRpdmUgcnVudGltZSBlcnJvci4KKiAqKkhUVFAgQmVhcmVyIEF1dGhvcml6YXRpb246KiogSWYgYSBjYWxsZWQgZW5kcG9pbnQgcmVxdWlyZXMgSFRUUCBiZWFyZXIgYXV0aCwKICB6c3dhZyB3aWxsIHZlcmlmeSB0aGF0IHRoZSBIVFRQIGNvbmZpZyBjb250YWlucyBhIGhlYWRlciB3aXRoIHRoZQogIGtleSBuYW1lIGBBdXRob3JpemF0aW9uYCBhbmQgdGhlIHZhbHVlIGBCZWFyZXIgPHRva2VuPmAsICpjYXNlLXNlbnNpdGl2ZSouCiogKipBUEktS2V5IENvb2tpZToqKiBJZiBhIGNhbGxlZCBlbmRwb2ludCByZXF1aXJlcyBhIENvb2tpZSBBUEktS2V5LAogIHpzd2FnIHdpbGwgZWl0aGVyIGFwcGx5IFt0aGUgYGFwaS1rZXlgIHNldHRpbmddKCNwZXJzaXN0ZW50LWh0dHAtaGVhZGVycy1wcm94eS1jb29raWUtYW5kLWF1dGhlbnRpY2F0aW9uKSwgb3IgdmVyaWZ5IHRoYXQgdGhlCiAgSFRUUCBjb25maWcgY29udGFpbnMgYSBjb29raWUgd2l0aCB0aGUgcmVxdWlyZWQgbmFtZSwgKmNhc2Utc2Vuc2l0aXZlKi4KKiAqKkFQSS1LZXkgUXVlcnkgUGFyYW1ldGVyOioqIElmIGEgY2FsbGVkIGVuZHBvaW50IHJlcXVpcmVzIGEgUXVlcnkgQVBJLUtleSwKICB6c3dhZyB3aWxsIGVpdGhlciBhcHBseSB0aGUgYGFwaS1rZXlgIHNldHRpbmcsIG9yIHZlcmlmeSB0aGF0IHRoZQogIEhUVFAgY29uZmlnIGNvbnRhaW5zIGEgcXVlcnkga2V5LXZhbHVlIHBhaXIgd2l0aCB0aGUgcmVxdWlyZWQgbmFtZSwgKmNhc2Utc2Vuc2l0aXZlKi4KKiAqKkFQSS1LZXkgSGVhZGVyOioqIElmIGEgY2FsbGVkIGVuZHBvaW50IHJlcXVpcmVzIGFuIEFQSS1LZXkgSGVhZGVyLAogIHpzd2FnIHdpbGwgZWl0aGVyIGFwcGx5IHRoZSBgYXBpLWtleWAgc2V0dGluZywgb3IgdmVyaWZ5IHRoYXQgdGhlCiAgSFRUUCBjb25maWcgY29udGFpbnMgYSBoZWFkZXIga2V5LXZhbHVlIHBhaXIgd2l0aCB0aGUgcmVxdWlyZWQgbmFtZSwgKmNhc2Utc2Vuc2l0aXZlKi4KCioqTm90ZSoqOiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBwYXNzIHlvdXIgQmFzaWMtQXV0aC9CZWFyZXIvUXVlcnkvQ29va2llL0hlYWRlcgpjcmVkZW50aWFsIHRocm91Z2ggeW91ciBbcGVyc2lzdGVudCBjb25maWddKCNwZXJzaXN0ZW50LWh0dHAtaGVhZGVycy1wcm94eS1jb29raWUtYW5kLWF1dGhlbnRpY2F0aW9uKSwKeW91IGNhbiBwYXNzIGEgYGh0dHBjbDo6Q29uZmlnYC9bYEhUVFBDb25maWdgXSgjdXNpbmctdGhlLXB5dGhvbi1jbGllbnQpIG9iamVjdCB0byB0aGUgYE9BQ2xpZW50YC9bYE9BQ2xpZW50YF0oI3VzaW5nLXRoZS1weXRob24tY2xpZW50KS4KY29uc3RydWN0b3IgaW4gQysrL1B5dGhvbiB3aXRoIHRoZSByZWxldmFudCBkZXRhaWwuCgojIyMjIENvbXBvbmVudCBTdXBwb3J0Cgp8IEZlYXR1cmUgICAgICAgICAgICB8IEMrKyBDbGllbnQgfCBQeXRob24gQ2xpZW50IHwgT0FTZXJ2ZXIgfCB6c3dhZy5nZW4gfAp8IC0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0gfCAtLS0tLS0tLS0gfAp8IGBIVFRQIEJhc2ljLUF1dGhgIGBIVFRQIEJlYXJlci1BdXRoYCBgQ29va2llIEFQSS1LZXlgIGBIZWFkZXIgQVBJLUtleWAgYFF1ZXJ5IEFQSS1LZXlgICB8IOKclO+4jyB8IOKclO+4jyB8IOKclO+4jygqKikgfCDinJTvuI8gfAp8IGBPcGVuSUQgQ29ubmVjdGAgYE9BdXRoMmAgIHwg4p2M77iPIHwg4p2M77iPIHwg4pyU77iPKCoqKSB8IOKdjO+4jyB8CgoqKihcKlwqKSoqOiBUaGUgc2VydmVyIHN1cHBvcnQgZm9yIGFsbCBhdXRoZW50aWNhdGlvbiBzY2hlbWVzIGRlcGVuZHMgb24geW91cgpjb25maWd1cmF0aW9uIG9mIHRoZSBXU0dJIHNlcnZlciAoQXBhY2hlL05naW54Ly4uLikgd2hpY2ggd3JhcHMgdGhlIHpzd2FnIEZsYXNrIGFwcC4K readmeEtag: '"2bbabd4b1797868062f7bf310d6a96ed87aa85ec"' readmeLastModified: Thu, 18 Jul 2024 05:32:06 GMT repositoryId: 253472682 description: Access/Serve zserio services via REST/OpenAPI 🌍. created: '2020-04-06T11:07:06Z' updated: '2024-07-18T05:32:46Z' language: C++ archived: false stars: 13 watchers: 6 forks: 3 owner: ndsev logo: https://avatars.githubusercontent.com/u/38692822?v=4 license: BSD-3-Clause repoEtag: '"7a7b021634f1ba5610b76d31f47f0b36701de50388e54f16d7eaf6c4c56a3441"' repoLastModified: Thu, 18 Jul 2024 05:32:46 GMT foundInMaster: true oldLocations: - https://github.com/klebert-engineering/zswag - source: openapi3 tags repository: https://github.com/bcgov/nr-arch-exploration v3: true id: 3f615b0e3b3fa8fcbfb93455f2b21739 repositoryMetadata: base64Readme: >- ClshW0NvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29udHJpYnV0b3JzL2JjZ292L2lpdC1hcmNoKV0oLy4uLy4uL2dyYXBocy9jb250cmlidXRvcnMpClshW0ZvcmtzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9mb3Jrcy9iY2dvdi9paXQtYXJjaCldKC8uLi8uLi9uZXR3b3JrL21lbWJlcnMpClshW1N0YXJnYXplcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL2JjZ292L2lpdC1hcmNoKV0oLy4uLy4uL3N0YXJnYXplcnMpClshW0lzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2JjZ292L2lpdC1hcmNoKV0oLy4uLy4uL2lzc3VlcykKWyFbTUlUIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvYmNnb3YvaWl0LWFyY2guc3ZnKV0oL0xJQ0VOU0UubWQpCiFbTGlmZWN5Y2xlOkV4cGVyaW1lbnRhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWZlY3ljbGUtRXhwZXJpbWVudGFsLTMzOTk5OSkKIyBuci1hcmNoLWV4cGxvcmF0aW9uClRoaXMgY29kZSByZXBvIGNvbnRhaW5zIHZhcmlvdXMgZXhhbXBsZXMgZnJvbSBOUklEUyBBcmNoaXRlY3R1cmUgdGVhbQoxLiBBUElzCjIuIFVJcwozLiBNZXRhYmFzZSBEZXBsb3ltZW50IFNwZWNpZmljIHRvIExlZ2FjeSBPcmFjbGUgQ29ubmVjdGlvbiBvdmVyIGVuY3J5cHRlZCBsaXN0ZW5lcnMKClNjaGVtYXNweQpodHRwczovL2JjZ292LmdpdGh1Yi5pby9uci1hcmNoLWV4cGxvcmF0aW9uL3NjaGVtYXNweS9pbmRleC5odG1sCg== readmeEtag: '"51cae3045923ec4f524179bfc985e4147fcadce4"' readmeLastModified: Fri, 19 Jan 2024 00:33:14 GMT repositoryId: 467760840 description: >- This repo contains various examples on different APIs and UIs and Metabase deployment specific to Oracle connection created: '2022-03-09T03:17:27Z' updated: '2024-01-30T17:29:37Z' language: Shell archived: true stars: 13 watchers: 8 forks: 0 owner: bcgov logo: https://avatars.githubusercontent.com/u/916280?v=4 license: Apache-2.0 repoEtag: '"647e5cd8ce5154e0fecb69a73de25663d3b60b5c1d6d377c3299abd31f69ac6f"' repoLastModified: Tue, 30 Jan 2024 17:29:37 GMT category: Documentation foundInMaster: true oldLocations: - https://github.com/bcgov/nr-arch-templates - source: openapi3 tags repository: https://github.com/yapily/yapily-openapi v3: true repositoryMetadata: base64Readme: >- IyBZYXBpbHktb3BlbmFwaTMtc3BlY2lmaWNhdGlvbnMKCiFbU2NoZW1hIFZhbGlkYXRvcl0oaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3I/dXJsPWh0dHBzOi8vb3BlbmFwaS55YXBpbHkuY29tL29wZW5hcGkuanNvbikKCllhcGlseSB1c2VzIHRoZSBgT3BlbkFQSSAzLjAuMWAgc3BlY2lmaWNhdGlvbiB0byBzY2hlbWF0aXplIG91ciBbZG9jc10oaHR0cHM6Ly9kb2NzLnlhcGlseS5jb20vKSBhbmQgZ2VuZXJhdGUgb3VyIHN1cHBvcnRlZCBjbGllbnQgbGlicmFyaWVzLiBUaGlzIHByb3ZpZGVzIGEgY29uc2lzdGVudCBkZXZlbG9wZXIgZXhwZXJpZW5jZSBhY3Jvc3Mgb3VyIGV4dGVybmFsIGludGVyZmFjZXMuCgotIFtZYXBpbHktb3BlbmFwaTMtc3BlY2lmaWNhdGlvbnNdKCN5YXBpbHktb3BlbmFwaTMtc3BlY2lmaWNhdGlvbnMpCiAgLSBbSW5zdGFsbGluZyB0aGUgSmF2YSBkZXBlbmRlbmNpZXNdKCNpbnN0YWxsaW5nLXRoZS1qYXZhLWRlcGVuZGVuY2llcykKICAtIFtKYXZhIHN1cHBvcnRdKCNqYXZhLXN1cHBvcnQpCiAgLSBbTm9kZSBzdXBwb3J0XSgjbm9kZS1zdXBwb3J0KQogIC0gW1B5dGhvbiBzdXBwb3J0XSgjcHl0aG9uLXN1cHBvcnQpCiAgLSBbS25vd24gaXNzdWVzIHdpdGggb3BlbmFwaS1nZW5lcmF0b3JdKCNrbm93bi1pc3N1ZXMtd2l0aC1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFtFeGFtcGxlc10oI2V4YW1wbGVzKQoKIyMgSW5zdGFsbGluZyB0aGUgSmF2YSBkZXBlbmRlbmNpZXMKClRoZSBPcGVuQVBJIGdlbmVyYXRvciBpcyBhIG1hdmVuIHBsdWdpbiB1c2VkIHRvIGdlbmVyYXRlIHNlcnZlciBhbmQgY2xpZW50IGxpYnJhcmllcyBmcm9tIGEgZ2l2ZW4gT0FTIGZpbGUuCgpGaXJzdCByZXF1aXJlbWVudCB0byB1c2UgdGhlIE9wZW5BUEkgZ2VuZXJhdG9yIGlzIHRvIGluc3RhbGwgSmF2YS4gCgpUaGUgZm9sbG93aW5nIFt0dXRvcmlhbF0oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2phdmEvZG9jcy9zZXR1cCNpbnN0YWxsX2FfamRrX2phdmFfZGV2ZWxvcG1lbnRfa2l0KSBwcm92aWRlcyBhbiBleHRlbnNpdmUgc3RlcC1ieS1zdGVwIGd1aWRlIG9uIGhvdyB0byBzZXQgdXAgYW5kIGNvbmZpZ3VyZSB5b3VyIGRldmVsb3BtZW50IGVudmlyb25tZW50LgoKIyMgSmF2YSBzdXBwb3J0CgpQbGVhc2UgcmVmZXIgdG8gdGhpcyBbZG9jdW1lbnRdKC9tYWluLy4uL2RvY3MvamF2YS5tZCkgZm9yIEphdmEuCgojIyBOb2RlIHN1cHBvcnQKClBsZWFzZSByZWZlciB0byB0aGlzIFtkb2N1bWVudF0oL21haW4vLi4vZG9jcy9ub2RlLm1kKSBmb3IgTm9kZS4KCiMjIFB5dGhvbiBzdXBwb3J0CgpQbGVhc2UgcmVmZXIgdG8gdGhpcyBbZG9jdW1lbnRdKC9tYWluLy4uL2RvY3MvcHl0aG9uLm1kKSBmb3IgUHl0aG9uLgoKIyMgS25vd24gaXNzdWVzIHdpdGggb3BlbmFwaS1nZW5lcmF0b3IKClRoZSBbb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIGdlbmVyYXRpb24gc3R5bGVzIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSBjaG9zZW4gbGFuZ3VhZ2U6CgotIFdlIHJlZ2FyZCB0aGUgZXh0ZW5zaW9uIG9mIGVudW1lcmF0aW9ucyBpbiB0aGUgWWFwaWx5IEFQSSB0byBiZSBhIG5vbi1icmVha2luZyBjaGFuZ2UsIGFuZCB3ZSBtYXkgYWRkIG5ldyB2YWx1ZXMgd2l0aG91dCBhZHZhbmNlIHdhcm5pbmcuIFBsZWFzZSBub3RlIHRoYXQgc29tZSBPcGVuQVBJIGdlbmVyYXRvcnMgYXV0b21hdGljYWxseSBlbXBsb3kgZW51bSB2YWxpZGF0aW9uIGJ5IGRlZmF1bHQsIGhvd2V2ZXIgd2UgZXhwZWN0IGNsaWVudHMgdG8gZGlzYWJsZSBzdHJpY3QgZW51bSB2YWxpZGF0aW9uIGZvciByZXNwb25zZXMgaW4geW91ciBnZW5lcmF0ZWQgbGlicmFyaWVzLiBPdGhlcndpc2UsIHlvdXIgY2xpZW50cyB3aWxsIGV4cGVyaWVuY2UgZXJyb3JzIHdoZW4gbmV3IGVudW0gdmFsdWVzIGFyZSBhZGRlZC4KCiMjIEV4YW1wbGVzCgpGb3IgYSBiZXR0ZXIgdmlldyBvZiB0aGUgaW1wbGVtZW50YXRpb24gcHJvY2VzcywgY2hlY2sgb3V0IG91ciBbZXhhbXBsZXNdKC9tYWluLy4uL2V4YW1wbGVzL1JFQURNRS5tZCkgc2VjdGlvbiB3aGljaCBwcmVzZW50cyBhIHN0cmF0ZWd5IGZvciBpbXBsZW1lbnRpbmcgZWFzaWx5IHdpdGggWWFwaWx5IGluIHlvdXIgbGFuZ3VhZ2Ugb2YgY2hvaWNlLgo= readmeEtag: '"cd917f5a69109701b406eb7f7ba6252573c6f9a8"' readmeLastModified: Mon, 05 Aug 2024 11:31:19 GMT repositoryId: 446895316 description: >- Yapily’s OpenAPI Specification. Use this complete definition of our API to generate client libraries in the language of your choice. created: '2022-01-11T16:20:08Z' updated: '2024-08-29T12:37:20Z' language: null archived: false stars: 13 watchers: 2 forks: 2 owner: yapily logo: https://avatars.githubusercontent.com/u/36482918?v=4 repoEtag: '"d02ebaa6e93e2b417219c7e8d7c7a44cb9f0964db68c5e6ab68eff5c5aafd4f1"' repoLastModified: Thu, 29 Aug 2024 12:37:20 GMT foundInMaster: true category: - SDK - Parsers id: 480ed47307537545205cc96bd408fb48 - source: openapi3 tags repository: https://github.com/mkbeh/fastapi-admin-panel v3: true repositoryMetadata: base64Readme: >- IyBGYXN0QVBJIGFuZCBQb3N0Z3JlU1FMIC0gQWRtaW4gUGFuZWwKCgpbIVtQeXRob24gMy45XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi0zLjktYmx1ZS5zdmcpXShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy9yZWxlYXNlL3B5dGhvbi0zOTAvKQohW1BsYXRmb3JtXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3BsYXRmb3JtLWxpbnV4LWdyZWVuLnN2ZykKWyFbR2l0SHViIGxpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvTmFlcmVlbi9TdHJhcERvd24uanMuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL05hZXJlZW4vU3RyYXBEb3duLmpzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpCgoKQmFja2VuZCBzdGFjayB1c2luZyBQeXRob24gLCBpbmNsdWRpbmcgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24gYW5kIG1hbnkgdXNlZnVsIGZlYXR1cmVzIG91dCBvZiB0aGUgYm94LgoKCiMjIEludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9uCgohW1N3YWdnZXJdKGltZy9zd2FnZ2VyX2RvY3MucG5nKQoKCiMjIEFsdGVybmF0aXZlIEFQSSBkb2N1bWVudGF0aW9uCgohW1JlZG9jXShpbWcvcmVkb2NfZG9jcy5wbmcpCgoKIyMgRmVhdHVyZXMKCiogRnVsbCAqKkRvY2tlcioqIGludGVncmF0aW9uIChEb2NrZXIgYmFzZWQpLgoKKiAqKkRvY2tlciBDb21wb3NlKiogaW50ZWdyYXRpb24uCgoqICoqUHJvZHVjdGlvbiByZWFkeSoqIFB5dGhvbiB3ZWIgc2VydmVyIHVzaW5nIFV2aWNvcm4uCgoqIFB5dGhvbiAqKkZhc3RBUEkqKiBiYWNrZW5kLgoKKiAqKlNlY3VyZSBwYXNzd29yZCoqIGhhc2hpbmcgYnkgZGVmYXVsdC4KCiogKipKV1QgdG9rZW4qKiBhdXRoZW50aWNhdGlvbi4KCiogKipTUUxBbGNoZW15KiogbW9kZWxzLgoKKiAqKkFsZW1iaWMqKiBtaWdyYXRpb25zLgoKKiAqKkNPUlMqKiAoQ3Jvc3MgT3JpZ2luIFJlc291cmNlIFNoYXJpbmcpLgoKKiBSRVNUIGJhY2tlbmQgdGVzdHMgYmFzZWQgb24gKipQeXRlc3QqKiwgaW50ZWdyYXRlZCB3aXRoIERvY2tlciwgc28geW91IGNhbiB0ZXN0IHRoZSBmdWxsIEFQSSBpbnRlcmFjdGlvbiwgaW5kZXBlbmRlbnQgb24gdGhlIGRhdGFiYXNlLiBBcyBpdCBydW5zIGluIERvY2tlciwgaXQgY2FuIGJ1aWxkIGEgbmV3IGRhdGEgc3RvcmUgZnJvbSBzY3JhdGNoIGVhY2ggdGltZS4KCiogKipTZWN1cmUgZG9jcyoqIGJlaGluZCBiYXNpYyBodHRwIGF1dGguCgoqICoqU2VudHJ5KiogaW50ZWdyYXRpb24gKGFwcGxpY2F0aW9uIG1vbml0b3JpbmcgYW5kIGVycm9yIHRyYWNraW5nKS4KCiogKipTZW5kR3JpZCoqIGludGVncmF0aW9uIChlbWFpbCBkZWxpdmVyeSBzZXJ2aWNlKS4KCiogKipFbWFpbCBjb25maXJtYXRpb24qKiB3aGVuIHJlZ2lzdGVyaW5nIGEgdXNlci4KCiogSW50ZWdyYXRpb24gd2l0aCAqKlNvY2lhbCBOZXR3b3JrcyoqIChWa29udGFrZSwgRmFjZWJvb2ssIEdtYWlsKS4KCiogQmVhdXR5IG1peGlucyBmb3IgKipBc3luY2hyb25vdXMgU1FMQWxjaGVteSoqLgoKCiMjIEhvdyB0byB1c2UgaXQKCiMjIyBHZW5lcmF0ZSBwYXNzd29yZHMKCllvdSB3aWxsIGJlIGFza2VkIHRvIHByb3ZpZGUgcGFzc3dvcmRzIGFuZCBzZWNyZXQga2V5cyBmb3Igc2V2ZXJhbCBjb21wb25lbnRzLiBPcGVuIGFub3RoZXIgdGVybWluYWwgYW5kIHJ1bjoKCmBgYApvcGVuc3NsIHJhbmQgLWhleCAzMgojIE91dHB1dHMgc29tZXRoaW5nIGxpa2U6IDk5ZDNiMWYwMWFhNjM5ZTRhNzZmNGZjMjgxZmM4MzQ3NDdhNTQzNzIwYmE0YzhhODY0OGJhNzU1YWVmOWJlN2YKYGBgCgojIyMgRW52aXJvbm1lbnQgdmFyaWFibGVzCgpUaGUgaW5wdXQgdmFyaWFibGVzLCB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzOgoKKiBgUFJPSkVDVF9OQU1FYDogVGhlIG5hbWUgb2YgdGhlIHByb2plY3QKCiogYFZFUlNJT05gOiBQcm9qZWN0IHZlcnNpb24KCiogYFNFUlZFUl9ET01BSU5gOiBUaGUgZG9tYWluIGluIHdoZXJlIHRvIGRlcGxveSB0aGUgcHJvamVjdC4gQnkgZGVmYXVsdCwgYmFzZWQgb24gdGhlIGBodHRwOi8vbG9jYWxob3N0OjgwMDBgLgoKKiBgRklSU1RfU1VQRVJVU0VSX0xPR0lOYDogVGhlIGZpcnN0IHN1cGVydXNlciBnZW5lcmF0ZWQsIHdpdGggaXQgeW91IHdpbGwgYmUgYWJsZSB0byBjcmVhdGUgbW9yZSB1c2VycywgZXRjLgoKKiBgRklSU1RfU1VQRVJVU0VSX1BBU1NXT1JEYDogRmlyc3Qgc3VwZXJ1c2VyIHBhc3N3b3JkLiBVc2UgdGhlIG1ldGhvZCBhYm92ZSB0byBnZW5lcmF0ZSBpdC4KCiogYERPQ1NfQURNSU5fVVNFUk5BTUVgOiBVc2VybmFtZSBmb3IgYmFzaWMgaHR0cCBhdXRoIG9mIHNlY3VyZSBkb2NzLgoKKiBgRE9DU19BRE1JTl9QQVNTV09SRGA6IFBhc3N3b3JkIGZvciBiYXNpYyBodHRwIGF1dGggb2Ygc2VjdXJlIGRvY3MuCgoqIGBFTlZgOiBFbnZpcm9ubWVudCBtb2RlLCBsaWtlIERFViBvciBQUk9ELgoKKiBgU0VOVFJZX0RTTmA6IEtleSBVUkwgKERTTikgb2YgU2VudHJ5LCBmb3IgbGl2ZSBlcnJvciByZXBvcnRpbmcuCgoqIGBBVVRIX1NFQ1JFVF9LRVlgOiBCYWNrZW5kIHNlcnZlciBzZWNyZXQga2V5LiBVc2UgdGhlIG1ldGhvZCBhYm92ZSB0byBnZW5lcmF0ZSBpdC4KCiogYEVNQUlMX1NFTkRfTU9ERWA6IFNlbmQgZW1haWxzIHZpYSBwb3N0IHNlcnZpY2UuIEJ5IGRlZmF1bHQgb2ZmIGFuZCBzaG93IG1lc3NhZ2UgY29udGV4dCBvbiBvdXRwdXQuCgoqIGBTRU5EX0dSSURfS0VZYDogS2V5IG9mIFNlbmRHcmlkLCBmb3Igc2VuZGluZyBlbWFpbHMuCgpPdGhlciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgY291bGQgYmUgZm91bmQgaW4gYGVudi50ZW1wbGF0ZWAgb2YgYGJhY2tlbmRgIGRpcmVjdG9yeS4KCgojIyMgSG93IHRvIGRlcGxveQoKKiBDcmVhdGUgYC5lbnZgIGZpbGUgaW4gYGJhY2tlbmRgIGRpcmVjdG9yeSB3aXRoIHNldHRpbmdzIGZyb20gYC5lbnYudGVtcGxhdGVgLgoKKiBSdW4gY29tbWFuZCBgZG9ja2VyLWNvbXBvc2UgdXAgLS1idWlsZCAtZGAuCgoqIENoZWNrIFVSTCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwYC4gQnkgZGVmYXVsdCBmb3Igc2VjdXJlIGRvY3MgdXNlIGNyZWRlbnRpYWxzOiBgYWRtaW46YWRtaW5gLgo= readmeEtag: '"6dd34f0197934fb88471aebc275fa0ede61ffcc6"' readmeLastModified: Thu, 18 Nov 2021 13:52:20 GMT repositoryId: 380564891 description: >- Backend application. Using FastAPI, PostgreSQL as database, Docker, SQLAlchemy and more. created: '2021-06-26T17:53:29Z' updated: '2024-08-30T16:45:25Z' language: HTML archived: false stars: 13 watchers: 1 forks: 4 owner: mkbeh logo: https://avatars.githubusercontent.com/u/26373902?v=4 license: MIT repoEtag: '"620a70b29f5f169fe93f32986a3c5282538a740571229e85eab9e02125b9fd60"' repoLastModified: Fri, 30 Aug 2024 16:45:25 GMT foundInMaster: true category: Server Implementations id: e236f6dafcb1ee24117db986ab0f4617 - source: openapi3 tags repository: https://github.com/tuwilof/tomograph v3: true id: d31c98262a36d04a86611f50ddbeb2b4 repositoryMetadata: base64Readme: >- IyBUb21vZ3JhcGggCgpDb252ZXJ0IEFQSSBCbHVlcHJpbnQsIFN3YWdnZXIgYW5kIE9wZW5BUEkgdG8gbWluaW1hbCByb3V0ZXMgd2l0aCBKU09OIFNjaGVtYS4gRm9yIGVhc2Ugb2YgdXNlIGFuZCBjcmVhdGlvbiBvZiBuZXcgdG9vbHMuCgpXaWxsIGxvb2sgbGlrZQoKICBgYGBqc29uCiAgWwogICAgewogICAgICAicGF0aCI6ICIvc2Vzc2lvbnMiLAogICAgICAibWV0aG9kIjogIlBPU1QiLAogICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAicmVxdWVzdHMiOiBbewogICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICJsb2dpbiI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJwYXNzd29yZCI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAibG9naW4iLAogICAgICAgICAgInBhc3N3b3JkIgogICAgICAgIF0KICAgICAgfV0sCiAgICAgICJyZXNwb25zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgInN0YXR1cyI6ICI0MDEiLAogICAgICAgICAgImNvbnRlbnQtdHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICJib2R5Ijoge30KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJzdGF0dXMiOiAiNDI5IiwKICAgICAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAiYm9keSI6IHt9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAic3RhdHVzIjogIjIwMSIsCiAgICAgICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgImJvZHkiOiB7CiAgICAgICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICJjb25maXJtYXRpb24iOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICJpZCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgImNhcHRjaGFfZG9lc19ub3RfbWF0Y2giOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXQogICAgfQogIF0KICBgYGAKCiMjIEluc3RhbGxhdGlvbgoKVGhlbiBhZGQgdGhpcyBsaW5lIHRvIHlvdXIgYXBwbGljYXRpb24ncyBHZW1maWxlOgoKYGBgcnVieQpnZW0gJ3RvbW9ncmFwaCcKYGBgCgpBZnRlciB0aGF0IGV4ZWN1dGU6CgpgYGBiYXNoCiQgYnVuZGxlCmBgYAoKT3IgaW5zdGFsbCB0aGUgZ2VtIGJ5IHlvdXJzZWxmOgoKYGBgYmFzaAokIGdlbSBpbnN0YWxsIHRvbW9ncmFwaApgYGAKCiMjIFVzYWdlCgojIyMgSW4gY29kZQoKIyMjIyBPcGVuQVBJIDIuMAoKQWxzbyBTd2FnZ2VyCgpgYGBydWJ5CnJlcXVpcmUgJ3RvbW9ncmFwaCcKCnRvbW9ncmFtID0gVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcob3BlbmFwaTJfanNvbl9wYXRoOiAnL3BhdGgvdG8vZG9jLmpzb24nKQpgYGAKCiMjIyMgT3BlbkFQSSAzLjAKCkFsc28gT3BlbkFQSQoKYGBgcnVieQpyZXF1aXJlICd0b21vZ3JhcGgnCgp0b21vZ3JhbSA9IFRvbW9ncmFwaDo6VG9tb2dyYW0ubmV3KG9wZW5hcGkzX3lhbWxfcGF0aDogJy9wYXRoL3RvL2RvYy55YW1sJykKYGBgCgojIyMjIEFQSSBCbHVlcHJpbnQKCkZpcnN0IHlvdSBuZWVkIHRvIGluc3RhbGwgW2RyYWZ0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlhcnlpby9kcmFmdGVyKS4KV29ya3MgYWZ0ZXIgY29udmVyc2lvbiBmcm9tIEFQSSBCbHVlcHJpbnQgdG8gQVBJIEVsZW1lbnRzIChpbiBZQU1MIGZpbGUpIHdpdGggRHJhZnRlci4KClRoYXQgaXMsIEkgbWVhbiB0aGF0IHlvdSBmaXJzdCBuZWVkIHRvIGRvIHRoaXMKCmBgYGJhc2gKZHJhZnRlciBkb2MuYXBpYiAtbyBkb2MueWFtbApgYGAKCmFuZCB0aGVuCgpgYGBydWJ5CnJlcXVpcmUgJ3RvbW9ncmFwaCcKCnRvbW9ncmFtID0gVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcoZHJhZnRlcl95YW1sX3BhdGg6ICcvcGF0aC90by9kb2MueWFtbCcpCmBgYAoKIyMjIyBUb21vZ3JhcGgKClRvIHVzZSBhZGRpdGlvbmFsIGZlYXR1cmVzIG9mIHRoZSBwcmUtY29udmVydGVkCgpgYGBydWJ5CnJlcXVpcmUgJ3RvbW9ncmFwaCcKCnRvbW9ncmFtID0gVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcodG9tb2dyYW1fanNvbl9wYXRoOiAnL3BhdGgvdG8vZG9jLmpzb24nKQpgYGAKCiMjIyMgcHJlZml4CkRlZmF1bHQ6IGAnJ2AKCllvdSBjYW4gc3BlY2lmeSBBUEkgcHJlZml4IGFuZCBwYXRoIHRvIHRoZSBzcGVjIHVzaW5nIG9uZSBvZiB0aGUgcG9zc2libGUgZm9ybWF0czoKCmBgYHJ1YnkKVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcocHJlZml4OiAnL2FwaS92MicsIGRyYWZ0ZXJfeWFtbF9wYXRoOiAnL3BhdGgvdG8vZG9jLnlhbWwnKQpgYGAKCmBgYHJ1YnkKVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcocHJlZml4OiAnL2FwaS92MicsIHRvbW9ncmFtX2pzb25fcGF0aDogJy9wYXRoL3RvL2RvYy5qc29uJykKYGBgCgojIyMjIHRvX2pzb24KVXNlIGB0b19qc29uYCBmb3IgY29udmVydGluZyB0byBKU09OLCBleGFtcGxlIGZyb20gQVBJIEJsdWVwcmludDoKCmBgYHJ1YnkKdG9tb2dyYW0udG9fanNvbgpgYGAKCjxkZXRhaWxzPgogIDxzdW1tYXJ5PkV4YW1wbGUgaW5wdXQ8L3N1bW1hcnk+CgogIGBgYGFwaWIKICBGT1JNQVQ6IDFBCiAgSE9TVDogaHR0cDovL3Rlc3QubG9jYWwKICAKICAjIHByb2plY3QKICAKICAjIEdyb3VwIHByb2plY3QKICAKICBQcm9qZWN0CiAgCiAgIyMgQXV0aGVudGljYXRpb24gWy9zZXNzaW9uc10KICAKICAjIyMgU2lnbiBJbiBbUE9TVF0KICAKICArIFJlcXVlc3QgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgICAgICsgQXR0cmlidXRlcwogICAgICAgKyBsb2dpbiAoc3RyaW5nLCByZXF1aXJlZCkKICAgICAgICsgcGFzc3dvcmQgKHN0cmluZywgcmVxdWlyZWQpCiAgICAgICArIGNhcHRjaGEgKHN0cmluZywgb3B0aW9uYWwpCiAgCiAgKyBSZXNwb25zZSA0MDEgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgKyBSZXNwb25zZSA0MjkgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgKyBSZXNwb25zZSAyMDEgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgICAgICsgQXR0cmlidXRlcwogICAgICAgKyBjb25maXJtYXRpb24gKENvbmZpcm1hdGlvbiwgb3B0aW9uYWwpCiAgICAgICArIGNhcHRjaGEgKHN0cmluZywgb3B0aW9uYWwpCiAgICAgICArIGNhcHRjaGFfZG9lc19ub3RfbWF0Y2ggKGJvb2xlYW4sIG9wdGlvbmFsKQogIAogIAogICMgRGF0YSBTdHJ1Y3R1cmVzCiAgCiAgIyMgQ29uZmlybWF0aW9uIChvYmplY3QpCiAgICArIGlkIChzdHJpbmcsIHJlcXVpcmVkKQogICAgKyB0eXBlIChzdHJpbmcsIHJlcXVpcmVkKQogICAgKyBvcGVyYXRpb24gKHN0cmluZywgcmVxdWlyZWQpCiAgYGBgCjwvZGV0YWlscz4KCjxkZXRhaWxzPgogIDxzdW1tYXJ5PkV4YW1wbGUgb3V0cHV0PC9zdW1tYXJ5PgoKICBgYGBqc29uCiAgWwogICAgewogICAgICAicGF0aCI6ICIvc2Vzc2lvbnMiLAogICAgICAibWV0aG9kIjogIlBPU1QiLAogICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAicmVxdWVzdHMiOiBbewogICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICJsb2dpbiI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJwYXNzd29yZCI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAibG9naW4iLAogICAgICAgICAgInBhc3N3b3JkIgogICAgICAgIF0KICAgICAgfV0sCiAgICAgICJyZXNwb25zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgInN0YXR1cyI6ICI0MDEiLAogICAgICAgICAgImNvbnRlbnQtdHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICJib2R5Ijoge30KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJzdGF0dXMiOiAiNDI5IiwKICAgICAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAiYm9keSI6IHt9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAic3RhdHVzIjogIjIwMSIsCiAgICAgICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgImJvZHkiOiB7CiAgICAgICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICJjb25maXJtYXRpb24iOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICJpZCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgImNhcHRjaGFfZG9lc19ub3RfbWF0Y2giOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXQogICAgfQogIF0KICBgYGAKPC9kZXRhaWxzPiAKCiMjIyMgdG9fYQpgYGBydWJ5CnRvbW9ncmFtLnRvX2EKYGBgCgojIyMjIGZpbmRfcmVxdWVzdApgYGBydWJ5CnJlcXVlc3QgPSB0b21vZ3JhbS5maW5kX3JlcXVlc3QobWV0aG9kOiAnR0VUJywgcGF0aDogJy9zdGF0dXMvMT9xd2U9cnR5JykKYGBgCgojIyMjIGZpbmRfcmVxdWVzdF93aXRoX2NvbnRlbnRfdHlwZQpgYGBydWJ5CnJlcXVlc3QgPSB0b21vZ3JhbS5maW5kX3JlcXVlc3Rfd2l0aF9jb250ZW50X3R5cGUobWV0aG9kOiAnR0VUJywgcGF0aDogJy9zdGF0dXMvMT9xd2U9cnR5JywgY29udGVudF90eXBlOiAnYXBwbGljYXRpb24vanNvbicpCmBgYAoKIyMjIyBgZmluZF9yZXNwb25zZXNgCmBgYHJ1YnkKcmVzcG9uc2VzID0gcmVxdWVzdC5maW5kX3Jlc3BvbnNlcyhzdGF0dXM6ICcyMDAnKQpgYGAKCiMjIyMgcHJlZml4X21hdGNoPwpUaGlzIG1heSBiZSB1c2VmdWwgaWYgeW91IHNwZWNpZnkgYSBwcmVmaXguCgpgYGBydWJ5CnRvbW9ncmFtLnByZWZpeF9tYXRjaD8oJ2h0dHA6Ly9sb2NhbC9hcGkvdjIvdXNlcnMnKQpgYGAKCiMjIyMgdG9fcmVzb3VyY2VzCk1hcHMgcmVzb3VyY2VzIGZvciBBUEkgQmx1ZXByaW50IHdpdGggcG9zc2libGUgcmVxdWVzdHMuCgpFeGFtcGxlIG91dHB1dDoKCmBgYHJ1YnkKewogICcvc2Vzc2lvbnMnID0+IFsnUE9TVCAvc2Vzc2lvbnMnXQp9CmBgYAoKIyMjIENvbW1hbmQgbGluZSB0b29sCgpDTEkgYWxsb3dzIHlvdSB0byBjb252ZXJ0IGZpbGVzIGZyb20gQVBJIEJsdWVwcmludCAoQVBJIEVsZW1lbnRzKSwgU3dhZ2dlciBhbmQgT3BlbkFQSSB0byBKU09OIFNjaGVtYS4KClJ1biBDTEkgd2l0aCBgLWhgIHRvIGdldCBkZXRhaWxlZCBoZWxwOgoKYGBgYmFzaAp0b21vZ3JhcGggLWgKYGBgCgpUbyBzcGVjaWZ5IHRoZSBoYW5kbGVyIHZlcnNpb24gdXNlIHRoZSBgLWRgIGZsYWc6CgojIyMjIE9wZW5BUEkgMi4wCmBgYGJhc2gKdG9tb2dyYXBoIC1kIG9wZW5hcGkyIG9wZW5hcGkyLmpzb24gdG9tb2dyYW0uanNvbgpgYGAKCiMjIyMgT3BlbkFQSSAzLjAKYGBgYmFzaAp0b21vZ3JhcGggLWQgb3BlbmFwaTMgb3BlbmFwaTMueWFtbCBkb2MuanNvbgpgYGAKCiMjIyMgQVBJIEJsdWVwcmludApgYGBiYXNoCnRvbW9ncmFwaCAtZCA0IGFwaWVsZW1ldG5zLnlhbWwgZG9jLmpzb24KYGBgCgojIyMjIGV4Y2x1ZGUtZGVzY3JpcHRpb24KCkV4Y2x1ZGUgImRlc2NyaXB0aW9uIiBrZXlzIGZyb20ganNvbi1zY2hlbWFzLgoKYGBgYmFzaAp0b21vZ3JhcGggLWQgNCBhcGllbGVtZXRucy55YW1sIGRvYy5qc29uIC0tZXhjbHVkZS1kZXNjcmlwdGlvbgpgYGAKCiMjIyMgc3BsaXQKClNwbGl0IG91dHB1dCBpbnRvIGZpbGVzIGJ5IG1ldGhvZC4gT3V0cHV0IGluIGRpciBwYXRoLgoKYGBgYmFzaAp0b21vZ3JhcGggLWQgNCAtLXNwbGl0IGFwaWVsZW1ldG5zLnlhbWwganNvbnMvCmBgYAoKIyMgTGljZW5zZQoKVGhlIGdlbSBpcyBhdmFpbGFibGUgYXMgb3BlbiBzb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIExpY2Vuc2VdKGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgoKW1Nwb25zb3JlZCBieSBGdW5Cb3hdKGh0dHBzOi8vZnVuYm94LnJ1KQo= readmeEtag: '"1ce89b494851b667504536ff9080f94dd945f5bb"' readmeLastModified: Wed, 07 Aug 2024 20:54:22 GMT repositoryId: 81070217 description: >- Convert API Blueprint, Swagger and OpenAPI to JSON Schema and search through it created: '2017-02-06T09:27:24Z' updated: '2024-08-07T20:54:26Z' language: Ruby archived: false stars: 12 watchers: 6 forks: 6 owner: tuwilof logo: https://avatars.githubusercontent.com/u/5956924?v=4 license: MIT repoEtag: '"51f329a05261aa5f6f947a7aa125fc23f62446e98d0e27a2cb35a3eef6ac0b22"' repoLastModified: Wed, 07 Aug 2024 20:54:26 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/namsor/namsor-r-sdk2 v3: true repositoryMetadata: base64Readme: >- IyBSIEFQSSBjbGllbnQgZm9yIG5hbXNvcgoKTk9URSA6IHRoaXMgU0RLIHdpbGwgc3RpbGwgd29yayBidXQgaXMgbm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBjaGVjayBvbmUgb2YgdGhlIGFsdGVybmF0aXZlIFNES3MgOiBKYXZhLCBQeXRob24gb3IgR29sYW5nLgoKTmFtU29yIEFQSSB2MiA6IGVucG9pbnRzIHRvIHByb2Nlc3MgcGVyc29uYWwgbmFtZXMgKGdlbmRlciwgY3VsdHVyYWwgb3JpZ2luIG9yIGV0aG5pY2l0eSkgaW4gYWxsIGFscGhhYmV0cyBvciBsYW5ndWFnZXMuIFVzZSBHRVQgbWV0aG9kcyBmb3Igc21hbGwgdGVzdHMsIGJ1dCBwcmVmZXIgUE9TVCBtZXRob2RzIGZvciBoaWdoZXIgdGhyb3VnaHB1dCAoYmF0Y2ggcHJvY2Vzc2luZyBvZiB1cCB0byAxMDAgbmFtZXMgYXQgYSB0aW1lKS4gTmVlZCBzb21ldGhpbmcgeW91IGNhbid0IGZpbmQgaGVyZT8gV2UgaGF2ZSBtYW55IG1vcmUgZmVhdHVyZXMgY29taW5nIHNvb24uIExldCB1cyBrbm93LCB3ZSdsbCBkbyBvdXIgYmVzdCB0byBhZGQgaXQhIAoKIyMgT3ZlcnZpZXcKVGhpcyBBUEkgY2xpZW50IHdhcyBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSBwcm9qZWN0LiBCeSB1c2luZyB0aGUgW09wZW5BUEkgc3BlY10oaHR0cHM6Ly9vcGVuYXBpcy5vcmcpIGZyb20gYSByZW1vdGUgc2VydmVyLCB5b3UgY2FuIGVhc2lseSBnZW5lcmF0ZSBhbiBBUEkgY2xpZW50LgoKLSBBUEkgdmVyc2lvbjogMi4wLjEwCi0gUGFja2FnZSB2ZXJzaW9uOiAyLjEuMAotIEJ1aWxkIHBhY2thZ2U6IG9yZy5vcGVuYXBpdG9vbHMuY29kZWdlbi5sYW5ndWFnZXMuUkNsaWVudENvZGVnZW4KRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBbaHR0cDovL3d3dy5uYW1zb3IuY29tL10oaHR0cDovL3d3dy5uYW1zb3IuY29tLykKCiMjIEluc3RhbGxhdGlvbgoKIyMjIFByZXJlcXVpc2l0ZXMKCkluc3RhbGwgdGhlIGRlcGVuZGVuY2llcwoKYGBgUgppbnN0YWxsLnBhY2thZ2VzKCJqc29ubGl0ZSIpCmluc3RhbGwucGFja2FnZXMoImh0dHIiKQppbnN0YWxsLnBhY2thZ2VzKCJiYXNlNjRlbmMiKQpgYGAKCiMjIyBCdWlsZCB0aGUgcGFja2FnZQoKYGBgc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9uYW1zb3IvbmFtc29yLXItc2RrMgpjZCBuYW1zb3Itci1zZGsyClIgQ01EIGJ1aWxkIC4KUiBDTUQgY2hlY2sgbmFtc29yXzIuMS4wLnRhci5negpSIENNRCBJTlNUQUxMIG5hbXNvcl8yLjEuMC50YXIuZ3oKYGBgCgojIyMgSW5zdGFsbCB0aGUgcGFja2FnZQoKYGBgUgppbnN0YWxsLnBhY2thZ2VzKCJuYW1zb3IiKQpgYGAKClRvIGluc3RhbGwgZGlyZWN0bHkgZnJvbSBHaXRodWIsIHVzZSBgZGV2dG9vbHNgOgpgYGBSCmluc3RhbGwucGFja2FnZXMoImRldnRvb2xzIikKbGlicmFyeShkZXZ0b29scykKaW5zdGFsbF9naXRodWIoIm5hbXNvci9uYW1zb3Itci1zZGsyIikKYGBgCgojIyMgVXNhZ2UKYGBgUgpsaWJyYXJ5KG5hbXNvcikKCnZhci5maXJzdC5uYW1lIDwtICdKb2huJyAjIGNoYXJhY3RlciB8IAp2YXIubGFzdC5uYW1lIDwtICdTbWl0aCcgIyBjaGFyYWN0ZXIgfCAKdmFyLmNvdW50cnkuaXNvMiA8LSAnVVMnICMgY2hhcmFjdGVyIHwgCgojSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBuYW1lLCBnaXZlbiBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBjb2RlKS4KYXBpLmluc3RhbmNlIDwtIFBlcnNvbmFsQXBpJG5ldygpCiMgQ29uZmlndXJlIEFQSSBrZXkgYXV0aG9yaXphdGlvbjogYXBpX2tleSAKYXBpLmluc3RhbmNlJGFwaUNsaWVudCRhcGlLZXlzWydYLUFQSS1LRVknXSA8LSAnODNhZDI4ZTNiM2Y5MmRlMTQ5NDE4MTYyNDg2NGJlYzYnOwpyZXN1bHQgPC0gYXBpLmluc3RhbmNlJEdlbmRlckdlbyh2YXIuZmlyc3QubmFtZSwgdmFyLmxhc3QubmFtZSwgdmFyLmNvdW50cnkuaXNvMikKZHB1dChyZXN1bHQpCnByaW50KHJlc3VsdCkKYGBgCgojIyMgVXNhZ2UgdG8gcHJvY2VzcyBhIENTViBmaWxlCmBgYFIKCiNwcmVwYXJlIHdvcmtzcGFjZQppZighJ2RldnRvb2xzJyAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpKXsKICBpbnN0YWxsLnBhY2thZ2VzKGRldnRvb2xzKQp9CgppZighJ3JlYWRyJyAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpKXsKICBpbnN0YWxsLnBhY2thZ2VzKCJyZWFkciIpCn0KCmlmKCEnbmFtc29yJyAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpKXsKICBpbnN0YWxsX2dpdGh1YigibmFtc29yL25hbXNvci1yLXNkazIiKQp9CgojY2FsbCBwYWNrYWdlcwpsaWJyYXJ5KGRldnRvb2xzKQpsaWJyYXJ5KG5hbXNvcikKbGlicmFyeShyZWFkcikKCiNjYWxsIGFwaQpodHRyOjpzZXRfY29uZmlnKGh0dHI6OmNvbmZpZyhzc2xfdmVyaWZ5cGVlciA9IDBMKSkKYXBpLmluc3RhbmNlIDwtIFBlcnNvbmFsQXBpJG5ldygpCmFwaS5pbnN0YW5jZSRhcGlDbGllbnQkYXBpS2V5c1snWC1BUEktS0VZJ10gPC0gJzgzYWQyOGUzYjNmOTJkZTE0OTQxODE2MjQ4NjRiZWM2JzsKCiNjYWxsIGZ1bmN0aW9uCmV4dHJhY3RvciA8LSBmdW5jdGlvbihuYW1lcyl7CiAgCiMjIyBGdW5jdGlvbiBjYWxscyBhcGkgdG8gYXNzaWduIGdlbmRlciBieSBhdHRyaWJ1dGVzICMjIwogIAogICNJbnB1dDoKICAKICAjbmFtZXMgLSBkYXRhLmZyYW1lIHdpdGggNCBjb2x1bW5zOgogICMgMS4gaWQoY2hhcikKICAjIDIuZmlyc3QgbmFtZShjaGFyKQogICMgMy4gc2Vjb25kIG5hbWUoY2hhcikKICAjIDQuIGNvdW50cnkoY2hhcikKICAKICAKICAjT3V0cHV0OgogICNuYW1lcyAtIGRhdGEuZnJhbWUgd2l0aCA1IGNvbHVtbnM6CiAgIyAxLiBpZChjaGFyKQogICMgMi5maXJzdCBuYW1lKGNoYXIpCiAgIyAzLiBzZWNvbmQgbmFtZShjaGFyKQogICMgNC4gY291bnRyeShjaGFyKQogICMgNS4gZ2VuZGVyKGNoYXIpCiAgCgoKIyMgU1BMSVQgVE8gTElTVApuYW1lc19saXN0IDwtIHNwbGl0KG5hbWVzLCAKICAgICAgICAgICAgICAgICAgICBmYWN0b3IocmVwKHNlcShjZWlsaW5nKG5yb3cobmFtZXMpLzEwMCkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhY2ggPSAxMDApWzE6bnJvdyhuYW1lcyldKSkKCiMjIEFERCBJRApuYW1lc19saXN0IDwtIGxhcHBseShuYW1lc19saXN0LCBmdW5jdGlvbih4KXsKICBkYXRhLmZyYW1lKCduZXdfaWQnID0gc2VxKG5yb3coeCkpLCAKICAgICAgICAgICAgICdpZCcgPSB4WywgMV0sCiAgICAgICAgICAgICAnZmlyc3RfbmFtZScgPSB4WywgMl0sIAogICAgICAgICAgICAgJ2xhc3RfbmFtZScgPSB4WywgM10sIAogICAgICAgICAgICAgJ2NvdW50cnknID0geFssIDRdKQp9KQoKI2NyZWF0ZSByX2dlbmRlcgpyX2dlbmRlciA8LSBsYXBwbHkobmFtZXNfbGlzdCwgZnVuY3Rpb24oeCl7CiAgYXBwbHkoeCwgMSwgZnVuY3Rpb24oeSl7UGVyc29uYWxOYW1lR2VvSW4kbmV3KGFzLmNoYXJhY3Rlcih5WzFdKSx5WzNdLCB5WzRdKX0pCn0pCiNjb21iaW5lCnJfZ2VuZGVyIDwtIGxhcHBseShyX2dlbmRlciwgZnVuY3Rpb24oeCl7Yyh4KX0pCiNjcmVhdGUgdmFyIGdlbmRlcgp2YXJfZ2VuZGVyIDwtIGxhcHBseShyX2dlbmRlciwgZnVuY3Rpb24oeCl7CiAgQmF0Y2hQZXJzb25hbE5hbWVHZW9JbiRuZXcocGVyc29uYWxOYW1lcyA9IHgpfSkKI2NhbGwgYXBpCmFwaS5pbnN0YW5jZSA8LSBQZXJzb25hbEFwaSRuZXcoKQphcGkuaW5zdGFuY2UkYXBpQ2xpZW50JGFwaUtleXNbJ1gtQVBJLUtFWSddIDwtICc4M2FkMjhlM2IzZjkyZGUxNDk0MTgxNjI0ODY0YmVjNic7CiNnZXQgcmVzdWx0CnJlc3VsdF9nZW5kZXIgPC0gbGFwcGx5KHZhcl9nZW5kZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHgpewogICAgICAgICAgICAgICAgICAgICAgICAgIGFwaS5pbnN0YW5jZSRHZW5kZXJGdWxsR2VvQmF0Y2goCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaC5wZXJzb25hbC5uYW1lLmdlby5pbj14KX0pCiNleHRyYWN0IGdlbmRlcgpnZW5kZXIgPC0gbGFwcGx5KHJlc3VsdF9nZW5kZXIsIGZ1bmN0aW9uKHgpe2xhcHBseSh4JHBlcnNvbmFsTmFtZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih5KXt5JGxpa2VseUdlbmRlcn0pfSkKICAKI2FkZCBnZW5kZXIKbmFtZXMkZ2VuZGVyIDwtIHVubGlzdChnZW5kZXIpCgojcmV0dXJuCnJldHVybihuYW1lcykKfQoKI2xvYWQgc21hbGwgZGF0YQpkZjEgPC0gcmVhZC5jc3YoJ2V4YW1wbGUyX2Nzdi5jc3YnLCBzdHJpbmdzQXNGYWN0b3JzID0gRkFMU0UpCgojY29udmVydCB0byBjaGFyCmRmMVssIDFdIDwtIHNhcHBseShkZjFbLCAxXSwgYXMuY2hhcmFjdGVyKQoKI2NhbGwgZnVuY3Rpb24KZGYxX3dpdGhfbmFtZXMgPC0gZXh0cmFjdG9yKGRmMSkKCiNsb2FkIGJpZyBkYXRhCmRmMiA8LSBkYXRhLmZyYW1lKHJlYWRfZGVsaW0oImV4YW1wbGUxX3BpcGVfaW5wdXQudHh0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInwiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIHRyaW1fd3MgPSBUUlVFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfbmFtZXMgPSBGQUxTRSkpCiNhbGwgY2hhcgpzdHIoZGYyKQoKI2NhbGwgZnVuY3Rpb24KZGYyX3dpdGhfbmFtZXMgPC0gZXh0cmFjdG9yKGRmMikKCmBgYAoKIyMgRG9jdW1lbnRhdGlvbiBmb3IgQVBJIEVuZHBvaW50cwoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL3YyLm5hbXNvci5jb20vTmFtU29yQVBJdjIqCgpDbGFzcyB8IE1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqQWRtaW5BcGkqIHwgWyoqQWRkQ3JlZGl0cyoqXShkb2NzL0FkbWluQXBpLm1kI0FkZENyZWRpdHMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FkZENyZWRpdHMve2FwaUtleX0ve3VzYWdlQ3JlZGl0c30ve3VzZXJNZXNzYWdlfSB8IEFkZCB1c2FnZSBjcmVkaXRzIHRvIGFuIEFQSSBLZXkuCipBZG1pbkFwaSogfCBbKipBbm9ueW1pemUqKl0oZG9jcy9BZG1pbkFwaS5tZCNBbm9ueW1pemUpIHwgKipHRVQqKiAvYXBpMi9qc29uL2Fub255bWl6ZS97c291cmNlfS97YW5vbnltaXplZH0gfCBBY3RpdmF0ZS9kZWFjdGl2YXRlIGFub255bWl6YXRpb24gZm9yIGEgc291cmNlLgoqQWRtaW5BcGkqIHwgWyoqQXBpU3RhdHVzKipdKGRvY3MvQWRtaW5BcGkubWQjQXBpU3RhdHVzKSB8ICoqR0VUKiogL2FwaTIvanNvbi9hcGlTdGF0dXMgfCBQcmludHMgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBjbGFzc2lmaWVycy4KKkFkbWluQXBpKiB8IFsqKkFwaVVzYWdlKipdKGRvY3MvQWRtaW5BcGkubWQjQXBpVXNhZ2UpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVVzYWdlIHwgUHJpbnQgY3VycmVudCBBUEkgdXNhZ2UuCipBZG1pbkFwaSogfCBbKipBcGlVc2FnZUhpc3RvcnkqKl0oZG9jcy9BZG1pbkFwaS5tZCNBcGlVc2FnZUhpc3RvcnkpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVVzYWdlSGlzdG9yeSB8IFByaW50IGhpc3RvcmljYWwgQVBJIHVzYWdlLgoqQWRtaW5BcGkqIHwgWyoqQXBpVXNhZ2VIaXN0b3J5QWdncmVnYXRlKipdKGRvY3MvQWRtaW5BcGkubWQjQXBpVXNhZ2VIaXN0b3J5QWdncmVnYXRlKSB8ICoqR0VUKiogL2FwaTIvanNvbi9hcGlVc2FnZUhpc3RvcnlBZ2dyZWdhdGUgfCBQcmludCBoaXN0b3JpY2FsIEFQSSB1c2FnZSAoaW4gYW4gYWdncmVnYXRlZCB2aWV3LCBieSBzZXJ2aWNlLCBieSBkYXkvaG91ci9taW4pLgoqQWRtaW5BcGkqIHwgWyoqQXZhaWxhYmxlUGxhbnMqKl0oZG9jcy9BZG1pbkFwaS5tZCNBdmFpbGFibGVQbGFucykgfCAqKkdFVCoqIC9hcGkyL2pzb24vYXZhaWxhYmxlUGxhbnMgfCBMaXN0IGFsbCBhdmFpbGFibGUgcGxhbnMgaW4gdGhlIGRlZmF1bHQgY3VycmVuY3kgKHVzZCkuCipBZG1pbkFwaSogfCBbKipBdmFpbGFibGVQbGFuczEqKl0oZG9jcy9BZG1pbkFwaS5tZCNBdmFpbGFibGVQbGFuczEpIHwgKipHRVQqKiAvYXBpMi9qc29uL2F2YWlsYWJsZVBsYW5zL3t0b2tlbn0gfCBMaXN0IGFsbCBhdmFpbGFibGUgcGxhbnMgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgY3VycmVuY3kuCipBZG1pbkFwaSogfCBbKipBdmFpbGFibGVTZXJ2aWNlcyoqXShkb2NzL0FkbWluQXBpLm1kI0F2YWlsYWJsZVNlcnZpY2VzKSB8ICoqR0VUKiogL2FwaTIvanNvbi9hcGlTZXJ2aWNlcyB8IExpc3Qgb2YgQVBJIHNlcnZpY2VzIGFuZCB1c2FnZSBjb3N0IGluIFVuaXRzIChkZWZhdWx0IGlzIDE9T05FIFVuaXQpLgoqQWRtaW5BcGkqIHwgWyoqQmlsbGluZ0N1cnJlbmNpZXMqKl0oZG9jcy9BZG1pbkFwaS5tZCNCaWxsaW5nQ3VycmVuY2llcykgfCAqKkdFVCoqIC9hcGkyL2pzb24vYmlsbGluZ0N1cnJlbmNpZXMgfCBMaXN0IHBvc3NpYmxlIGN1cnJlbmN5IG9wdGlvbnMgZm9yIGJpbGxpbmcgKFVTRCwgRVVSLCBHQlAsIC4uLikKKkFkbWluQXBpKiB8IFsqKkJpbGxpbmdIaXN0b3J5KipdKGRvY3MvQWRtaW5BcGkubWQjQmlsbGluZ0hpc3RvcnkpIHwgKipHRVQqKiAvYXBpMi9qc29uL2JpbGxpbmdIaXN0b3J5L3t0b2tlbn0gfCBSZWFkIHRoZSBoaXN0b3J5IGJpbGxpbmcgaW5mb3JtYXRpb24gKGludm9pY2VzIHBhaWQgdmlhIFN0cmlwZSBvciBtYW51YWxseSkuCipBZG1pbkFwaSogfCBbKipCaWxsaW5nSW5mbyoqXShkb2NzL0FkbWluQXBpLm1kI0JpbGxpbmdJbmZvKSB8ICoqR0VUKiogL2FwaTIvanNvbi9iaWxsaW5nSW5mby97dG9rZW59IHwgUmVhZCB0aGUgYmlsbGluZyBpbmZvcm1hdGlvbiAoY29tcGFueSBuYW1lLCBhZGRyZXNzLCBwaG9uZSwgdmF0IElEKQoqQWRtaW5BcGkqIHwgWyoqQ2hhcmdlKipdKGRvY3MvQWRtaW5BcGkubWQjQ2hhcmdlKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vY2hhcmdlIHwgQ3JlYXRlIGEgU3RyaXBlIEN1c3RvbWVyLCBiYXNlZCBvbiBhIHBheW1lbnQgY2FyZCB0b2tlbiAoZnJvbSBzZWN1cmUgU3RyaXBlSlMpIGFuZCBlbWFpbC4KKkFkbWluQXBpKiB8IFsqKkNvcnBvcmF0ZUtleSoqXShkb2NzL0FkbWluQXBpLm1kI0NvcnBvcmF0ZUtleSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vY29ycG9yYXRlS2V5L3thcGlLZXl9L3tjb3Jwb3JhdGV9IHwgU2V0dGluZyBhbiBBUEkgS2V5IHRvIGEgY29ycG9yYXRlIHN0YXR1cy4KKkFkbWluQXBpKiB8IFsqKkRlYnVnTGV2ZWwqKl0oZG9jcy9BZG1pbkFwaS5tZCNEZWJ1Z0xldmVsKSB8ICoqR0VUKiogL2FwaTIvanNvbi9kZWJ1Z0xldmVsL3tsb2dnZXJ9L3tsZXZlbH0gfCBVcGRhdGUgZGVidWcgbGV2ZWwgZm9yIGEgY2xhc3NpZmllcgoqQWRtaW5BcGkqIHwgWyoqRmx1c2gqKl0oZG9jcy9BZG1pbkFwaS5tZCNGbHVzaCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vZmx1c2ggfCBGbHVzaCBjb3VudGVycy4KKkFkbWluQXBpKiB8IFsqKkludmFsaWRhdGVDYWNoZSoqXShkb2NzL0FkbWluQXBpLm1kI0ludmFsaWRhdGVDYWNoZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vaW52YWxpZGF0ZUNhY2hlIHwgSW52YWxpZGF0ZSBzeXN0ZW0gY2FjaGVzLgoqQWRtaW5BcGkqIHwgWyoqTGVhcm5hYmxlKipdKGRvY3MvQWRtaW5BcGkubWQjTGVhcm5hYmxlKSB8ICoqR0VUKiogL2FwaTIvanNvbi9sZWFybmFibGUve3NvdXJjZX0ve2xlYXJuYWJsZX0gfCBBY3RpdmF0ZS9kZWFjdGl2YXRlIGxlYXJuaW5nIGZyb20gYSBzb3VyY2UuCipBZG1pbkFwaSogfCBbKipOYW1zb3JDb3VudGVyKipdKGRvY3MvQWRtaW5BcGkubWQjTmFtc29yQ291bnRlcikgfCAqKkdFVCoqIC9hcGkyL2pzb24vbmFtc29yQ291bnRlciB8IEdldCB0aGUgb3ZlcmFsbCBBUEkgY291bnRlcgoqQWRtaW5BcGkqIHwgWyoqUGF5bWVudEluZm8qKl0oZG9jcy9BZG1pbkFwaS5tZCNQYXltZW50SW5mbykgfCAqKkdFVCoqIC9hcGkyL2pzb24vcGF5bWVudEluZm8ve3Rva2VufSB8IEdldCB0aGUgU3RyaXBlIHBheW1lbnQgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGdvb2dsZSBhdXRoIHNlc3Npb24gdG9rZW4uCipBZG1pbkFwaSogfCBbKipQcm9jdXJlS2V5KipdKGRvY3MvQWRtaW5BcGkubWQjUHJvY3VyZUtleSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vcHJvY3VyZUtleS97dG9rZW59IHwgUHJvY3VyZSBhbiBBUEkgS2V5IChzZW50IHZpYSBFbWFpbCksIGJhc2VkIG9uIGFuIGF1dGggdG9rZW4uIEtlZXAgeW91ciBBUEkgS2V5IHNlY3JldC4KKkFkbWluQXBpKiB8IFsqKlJlZGVwbG95VUkqKl0oZG9jcy9BZG1pbkFwaS5tZCNSZWRlcGxveVVJKSB8ICoqR0VUKiogL2FwaTIvanNvbi9yZWRlcGxveVVJIHwgUmVkZXBsb3kgVUkgZnJvbSBjdXJyZW50IGRldiBicmFuY2guCipBZG1pbkFwaSogfCBbKipSZWRlcGxveVVJMSoqXShkb2NzL0FkbWluQXBpLm1kI1JlZGVwbG95VUkxKSB8ICoqR0VUKiogL2FwaTIvanNvbi9yZWRlcGxveVVJL3tsaXZlfSB8IFJlZGVwbG95IFVJIGZyb20gY3VycmVudCBkZXYgYnJhbmNoLgoqQWRtaW5BcGkqIHwgWyoqUmVtb3ZlVXNlckFjY291bnQqKl0oZG9jcy9BZG1pbkFwaS5tZCNSZW1vdmVVc2VyQWNjb3VudCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vcmVtb3ZlVXNlckFjY291bnQve3Rva2VufSB8IFJlbW92ZSB0aGUgdXNlciBhY2NvdW50LgoqQWRtaW5BcGkqIHwgWyoqUmVtb3ZlVXNlckFjY291bnRPbkJlaGFsZioqXShkb2NzL0FkbWluQXBpLm1kI1JlbW92ZVVzZXJBY2NvdW50T25CZWhhbGYpIHwgKipHRVQqKiAvYXBpMi9qc29uL3JlbW92ZVVzZXJBY2NvdW50T25CZWhhbGYve2FwaUtleX0gfCBSZW1vdmUgKG9uIGJlaGFsZikgYSB1c2VyIGFjY291bnQuCipBZG1pbkFwaSogfCBbKipTaHV0ZG93bioqXShkb2NzL0FkbWluQXBpLm1kI1NodXRkb3duKSB8ICoqR0VUKiogL2FwaTIvanNvbi9zaHV0ZG93biB8IFN0b3AgbGVhcm5pbmcgYW5kIHNodXRkb3duIHN5c3RlbS4KKkFkbWluQXBpKiB8IFsqKlNvZnR3YXJlVmVyc2lvbioqXShkb2NzL0FkbWluQXBpLm1kI1NvZnR3YXJlVmVyc2lvbikgfCAqKkdFVCoqIC9hcGkyL2pzb24vc29mdHdhcmVWZXJzaW9uIHwgR2V0IHRoZSBjdXJyZW50IHNvZnR3YXJlIHZlcnNpb24KKkFkbWluQXBpKiB8IFsqKlNvdXJjZVN0YXRzKipdKGRvY3MvQWRtaW5BcGkubWQjU291cmNlU3RhdHMpIHwgKipHRVQqKiAvYXBpMi9qc29uL3NvdXJjZVN0YXRzL3tzb3VyY2V9IHwgUHJpbnQgYmFzaWMgc291cmNlIHN0YXRpc3RpY3MuCipBZG1pbkFwaSogfCBbKipTdGF0cyoqXShkb2NzL0FkbWluQXBpLm1kI1N0YXRzKSB8ICoqR0VUKiogL2FwaTIvanNvbi9zdGF0cyB8IFByaW50IGJhc2ljIHN5c3RlbSBzdGF0aXN0aWNzLgoqQWRtaW5BcGkqIHwgWyoqU3RyaXBlQ29ubmVjdCoqXShkb2NzL0FkbWluQXBpLm1kI1N0cmlwZUNvbm5lY3QpIHwgKipHRVQqKiAvYXBpMi9qc29uL3N0cmlwZUNvbm5lY3QgfCBDb25uZWN0cyBhIFN0cmlwZSBBY2NvdW50LgoqQWRtaW5BcGkqIHwgWyoqU3Vic2NyaWJlUGxhbioqXShkb2NzL0FkbWluQXBpLm1kI1N1YnNjcmliZVBsYW4pIHwgKipHRVQqKiAvYXBpMi9qc29uL3N1YnNjcmliZVBsYW4ve3BsYW5OYW1lfS97dG9rZW59IHwgU3Vic2NyaWJlIHRvIGEgZ2l2ZSBBUEkgcGxhbiwgdXNpbmcgdGhlIHVzZXIncyBwcmVmZXJyZWQgb3IgZGVmYXVsdCBjdXJyZW5jeS4KKkFkbWluQXBpKiB8IFsqKlN1YnNjcmliZVBsYW5PbkJlaGFsZioqXShkb2NzL0FkbWluQXBpLm1kI1N1YnNjcmliZVBsYW5PbkJlaGFsZikgfCAqKkdFVCoqIC9hcGkyL2pzb24vc3Vic2NyaWJlUGxhbk9uQmVoYWxmL3twbGFuTmFtZX0ve2FwaUtleX0gfCBTdWJzY3JpYmUgdG8gYSBnaXZlIEFQSSBwbGFuLCB1c2luZyB0aGUgdXNlcidzIHByZWZlcnJlZCBvciBkZWZhdWx0IGN1cnJlbmN5IChhZG1pbiBvbmx5KS4KKkFkbWluQXBpKiB8IFsqKlRheG9ub215Q2xhc3NlcyoqXShkb2NzL0FkbWluQXBpLm1kI1RheG9ub215Q2xhc3NlcykgfCAqKkdFVCoqIC9hcGkyL2pzb24vdGF4b25vbXlDbGFzc2VzL3tjbGFzc2lmaWVyTmFtZX0gfCBQcmludCB0aGUgdGF4b25vbXkgY2xhc3NlcyB2YWxpZCBmb3IgdGhlIGdpdmVuIGNsYXNzaWZpZXIuCipBZG1pbkFwaSogfCBbKipVcGRhdGVCaWxsaW5nSW5mbyoqXShkb2NzL0FkbWluQXBpLm1kI1VwZGF0ZUJpbGxpbmdJbmZvKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vdXBkYXRlQmlsbGluZ0luZm8ve3Rva2VufSB8IFNldHMgb3IgdXBkYXRlIHRoZSBiaWxsaW5nIGluZm9ybWF0aW9uIChjb21wYW55IG5hbWUsIGFkZHJlc3MsIHBob25lLCB2YXQgSUQpCipBZG1pbkFwaSogfCBbKipVcGRhdGVMaW1pdCoqXShkb2NzL0FkbWluQXBpLm1kI1VwZGF0ZUxpbWl0KSB8ICoqR0VUKiogL2FwaTIvanNvbi91cGRhdGVMaW1pdC97dXNhZ2VMaW1pdH0ve2hhcmRPclNvZnR9L3t0b2tlbn0gfCBNb2RpZmllcyB0aGUgaGFyZC9zb2Z0IGxpbWl0IG9uIHRoZSBBUEkgcGxhbidzIG92ZXJhZ2VzIChkZWZhdWx0IGlzIDAkIHNvZnQgbGltaXQpLgoqQWRtaW5BcGkqIHwgWyoqVXBkYXRlUGF5bWVudERlZmF1bHQqKl0oZG9jcy9BZG1pbkFwaS5tZCNVcGRhdGVQYXltZW50RGVmYXVsdCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vdXBkYXRlUGF5bWVudERlZmF1bHQve2RlZmF1dFNvdXJjZUlkfS97dG9rZW59IHwgVXBkYXRlIHRoZSBkZWZhdWx0IFN0cmlwZSBjYXJkIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBnb29nbGUgYXV0aCBzZXNzaW9uIHRva2VuLgoqQWRtaW5BcGkqIHwgWyoqVXNlckluZm8qKl0oZG9jcy9BZG1pbkFwaS5tZCNVc2VySW5mbykgfCAqKkdFVCoqIC9hcGkyL2pzb24vdXNlckluZm8ve3Rva2VufSB8IEdldCB0aGUgdXNlciBwcm9maWxlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBnb29nbGUgYXV0aCBzZXNzaW9uIHRva2VuLgoqQWRtaW5BcGkqIHwgWyoqVmVyaWZ5RW1haWwqKl0oZG9jcy9BZG1pbkFwaS5tZCNWZXJpZnlFbWFpbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vdmVyaWZ5RW1haWwve2VtYWlsVG9rZW59IHwgVmVyaWZpZXMgYW4gZW1haWwsIGJhc2VkIG9uIHRva2VuIHNlbnQgdG8gdGhhdCBlbWFpbAoqQWRtaW5BcGkqIHwgWyoqVmVyaWZ5UmVtb3ZlRW1haWwqKl0oZG9jcy9BZG1pbkFwaS5tZCNWZXJpZnlSZW1vdmVFbWFpbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vdmVyaWZ5UmVtb3ZlRW1haWwve2VtYWlsVG9rZW59IHwgVmVyaWZpZXMgYW4gZW1haWwsIGJhc2VkIG9uIHRva2VuIHNlbnQgdG8gdGhhdCBlbWFpbAoqQWRtaW5BcGkqIHwgWyoqVmV0KipdKGRvY3MvQWRtaW5BcGkubWQjVmV0KSB8ICoqR0VUKiogL2FwaTIvanNvbi92ZXR0aW5nL3tzb3VyY2V9L3t2ZXR0ZWR9IHwgVmV0dGluZyBvZiBhIHNvdXJjZS4KKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVDYW5kaWRhdGVzKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNDaGluZXNlTmFtZUNhbmRpZGF0ZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlcy97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0gfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBXYW5nIFhpYW9taW5nCipDaGluZXNlQXBpKiB8IFsqKkNoaW5lc2VOYW1lQ2FuZGlkYXRlc0JhdGNoKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNDaGluZXNlTmFtZUNhbmRpZGF0ZXNCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlc0JhdGNoIHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSAoZmlyc3ROYW1lID0gY2hpbmVzZUdpdmVuTmFtZTsgbGFzdE5hbWU9Y2hpbmVzZVN1cm5hbWUpLCBleC4gV2FuZyBYaWFvbWluZwoqQ2hpbmVzZUFwaSogfCBbKipDaGluZXNlTmFtZUNhbmRpZGF0ZXNHZW5kZXJCYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjQ2hpbmVzZU5hbWVDYW5kaWRhdGVzR2VuZGVyQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9jaGluZXNlTmFtZUNhbmRpZGF0ZXNHZW5kZXJCYXRjaCB8IElkZW50aWZ5IENoaW5lc2UgbmFtZSBjYW5kaWRhdGVzLCBiYXNlZCBvbiB0aGUgcm9tYW5pemVkIG5hbWUgKGZpcnN0TmFtZSA9IGNoaW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lPWNoaW5lc2VTdXJuYW1lKSBleC4gV2FuZyBYaWFvbWluZy4KKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVHZW5kZXJDYW5kaWRhdGVzKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNDaGluZXNlTmFtZUdlbmRlckNhbmRpZGF0ZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lR2VuZGVyQ2FuZGlkYXRlcy97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0ve2tub3duR2VuZGVyfSB8IElkZW50aWZ5IENoaW5lc2UgbmFtZSBjYW5kaWRhdGVzLCBiYXNlZCBvbiB0aGUgcm9tYW5pemVkIG5hbWUgZXguIFdhbmcgWGlhb21pbmcgLSBoYXZpbmcgYSBrbm93biBnZW5kZXIgKCdtYWxlJyBvciAnZmVtYWxlJykKKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVNYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjQ2hpbmVzZU5hbWVNYXRjaCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vY2hpbmVzZU5hbWVNYXRjaC97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0ve2NoaW5lc2VOYW1lfSB8IFJldHVybiBhIHNjb3JlIGZvciBtYXRjaGluZyBDaGluZXNlIG5hbWUgZXguIOeOi+aZk+aYjiB3aXRoIGEgcm9tYW5pemVkIG5hbWUgZXguIFdhbmcgWGlhb21pbmcKKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVNYXRjaEJhdGNoKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNDaGluZXNlTmFtZU1hdGNoQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9jaGluZXNlTmFtZU1hdGNoQmF0Y2ggfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgPSBjaGluZXNlR2l2ZW5OYW1lOyBsYXN0TmFtZT1jaGluZXNlU3VybmFtZSksIGV4LiBXYW5nIFhpYW9taW5nCipDaGluZXNlQXBpKiB8IFsqKkdlbmRlckNoaW5lc2VOYW1lKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNHZW5kZXJDaGluZXNlTmFtZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVyQ2hpbmVzZU5hbWUve2NoaW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgQ2hpbmVzZSBmdWxsIG5hbWUgZXguIOeOi+aZk+aYjgoqQ2hpbmVzZUFwaSogfCBbKipHZW5kZXJDaGluZXNlTmFtZUJhdGNoKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNHZW5kZXJDaGluZXNlTmFtZUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZ2VuZGVyQ2hpbmVzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxsIG5hbWVzIGV4LiDnjovmmZPmmI4KKkNoaW5lc2VBcGkqIHwgWyoqR2VuZGVyQ2hpbmVzZU5hbWVQaW55aW4qKl0oZG9jcy9DaGluZXNlQXBpLm1kI0dlbmRlckNoaW5lc2VOYW1lUGlueWluKSB8ICoqR0VUKiogL2FwaTIvanNvbi9nZW5kZXJDaGluZXNlTmFtZVBpbnlpbi97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIENoaW5lc2UgbmFtZSBpbiBMQVRJTiAoUGlueWluKS4KKkNoaW5lc2VBcGkqIHwgWyoqR2VuZGVyQ2hpbmVzZU5hbWVQaW55aW5CYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjR2VuZGVyQ2hpbmVzZU5hbWVQaW55aW5CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckNoaW5lc2VOYW1lUGlueWluQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgQ2hpbmVzZSBuYW1lcyBpbiBMQVRJTiAoUGlueWluKS4KKkNoaW5lc2VBcGkqIHwgWyoqUGFyc2VDaGluZXNlTmFtZSoqXShkb2NzL0NoaW5lc2VBcGkubWQjUGFyc2VDaGluZXNlTmFtZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vcGFyc2VDaGluZXNlTmFtZS97Y2hpbmVzZU5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIOeOi+aZk+aYjiAtPiDnjosoc3VybmFtZSkg5pmT5piOKGdpdmVuIG5hbWUpCipDaGluZXNlQXBpKiB8IFsqKlBhcnNlQ2hpbmVzZU5hbWVCYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjUGFyc2VDaGluZXNlTmFtZUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vcGFyc2VDaGluZXNlTmFtZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIOeOi+aZk+aYjiAtPiDnjosoc3VybmFtZSkg5pmT5piOKGdpdmVuIG5hbWUpLgoqQ2hpbmVzZUFwaSogfCBbKipQaW55aW5DaGluZXNlTmFtZSoqXShkb2NzL0NoaW5lc2VBcGkubWQjUGlueWluQ2hpbmVzZU5hbWUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3BpbnlpbkNoaW5lc2VOYW1lL3tjaGluZXNlTmFtZX0gfCBSb21hbml6ZSB0aGUgQ2hpbmVzZSBuYW1lIHRvIFBpbnlpbiwgZXguIOeOi+aZk+aYjiAtPiBXYW5nIChzdXJuYW1lKSBYaWFvbWluZyAoZ2l2ZW4gbmFtZSkKKkNoaW5lc2VBcGkqIHwgWyoqUGlueWluQ2hpbmVzZU5hbWVCYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjUGlueWluQ2hpbmVzZU5hbWVCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3BpbnlpbkNoaW5lc2VOYW1lQmF0Y2ggfCBSb21hbml6ZSBhIGxpc3Qgb2YgQ2hpbmVzZSBuYW1lIHRvIFBpbnlpbiwgZXguIOeOi+aZk+aYjiAtPiBXYW5nIChzdXJuYW1lKSBYaWFvbWluZyAoZ2l2ZW4gbmFtZSkuCipKYXBhbmVzZUFwaSogfCBbKipHZW5kZXJKYXBhbmVzZU5hbWVGdWxsKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjR2VuZGVySmFwYW5lc2VOYW1lRnVsbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVySmFwYW5lc2VOYW1lRnVsbC97amFwYW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgSmFwYW5lc2UgZnVsbCBuYW1lIGV4LiDnjovmmZPmmI4KKkphcGFuZXNlQXBpKiB8IFsqKkdlbmRlckphcGFuZXNlTmFtZUZ1bGxCYXRjaCoqXShkb2NzL0phcGFuZXNlQXBpLm1kI0dlbmRlckphcGFuZXNlTmFtZUZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZUZ1bGxCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxsIG5hbWVzCipKYXBhbmVzZUFwaSogfCBbKipHZW5kZXJKYXBhbmVzZU5hbWVQaW55aW4qKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNHZW5kZXJKYXBhbmVzZU5hbWVQaW55aW4pIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZS97amFwYW5lc2VTdXJuYW1lfS97amFwYW5lc2VHaXZlbk5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBKYXBhbmVzZSBuYW1lIGluIExBVElOIChQaW55aW4pLgoqSmFwYW5lc2VBcGkqIHwgWyoqR2VuZGVySmFwYW5lc2VOYW1lUGlueWluQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNHZW5kZXJKYXBhbmVzZU5hbWVQaW55aW5CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIEphcGFuZXNlIG5hbWVzIGluIExBVElOIChQaW55aW4pLgoqSmFwYW5lc2VBcGkqIHwgWyoqSmFwYW5lc2VOYW1lS2FuamlDYW5kaWRhdGVzKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjSmFwYW5lc2VOYW1lS2FuamlDYW5kaWRhdGVzKSB8ICoqR0VUKiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXMve2phcGFuZXNlU3VybmFtZUxhdGlufS97amFwYW5lc2VHaXZlbk5hbWVMYXRpbn0gfCBJZGVudGlmeSBqYXBhbmVzZSBuYW1lIGNhbmRpZGF0ZXMgaW4gS0FOSkksIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKkphcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlc0JhdGNoKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjSmFwYW5lc2VOYW1lS2FuamlDYW5kaWRhdGVzQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXNCYXRjaCB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgPSBqYXBhbmVzZUdpdmVuTmFtZTsgbGFzdE5hbWU9amFwYW5lc2VTdXJuYW1lKSwgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipKYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXMqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNKYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUxhdGluQ2FuZGlkYXRlcy97amFwYW5lc2VTdXJuYW1lS2Fuaml9L3tqYXBhbmVzZUdpdmVuTmFtZUthbmppfSB8IFJvbWFuaXplIGphcGFuZXNlIG5hbWUsIGJhc2VkIG9uIHRoZSBuYW1lIGluIEthbmppLgoqSmFwYW5lc2VBcGkqIHwgWyoqSmFwYW5lc2VOYW1lTGF0aW5DYW5kaWRhdGVzQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNKYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXNCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUxhdGluQ2FuZGlkYXRlc0JhdGNoIHwgUm9tYW5pemUgamFwYW5lc2UgbmFtZXMsIGJhc2VkIG9uIHRoZSBuYW1lIGluIEtBTkpJCipKYXBhbmVzZUFwaSogfCBbKipKYXBhbmVzZU5hbWVNYXRjaCoqXShkb2NzL0phcGFuZXNlQXBpLm1kI0phcGFuZXNlTmFtZU1hdGNoKSB8ICoqR0VUKiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVNYXRjaC97amFwYW5lc2VTdXJuYW1lTGF0aW59L3tqYXBhbmVzZUdpdmVuTmFtZUxhdGlufS97amFwYW5lc2VOYW1lfSB8IFJldHVybiBhIHNjb3JlIGZvciBtYXRjaGluZyBKYXBhbmVzZSBuYW1lIGluIEtBTkpJIGV4LiDlsbHmnKwg5pep6IuXIHdpdGggYSByb21hbml6ZWQgbmFtZSBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKkphcGFuZXNlTmFtZU1hdGNoQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNKYXBhbmVzZU5hbWVNYXRjaEJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lTWF0Y2hCYXRjaCB8IFJldHVybiBhIHNjb3JlIGZvciBtYXRjaGluZyBhIGxpc3Qgb2YgSmFwYW5lc2UgbmFtZXMgaW4gS0FOSkkgZXguIOWxseacrCDml6noi5cgd2l0aCByb21hbml6ZWQgbmFtZXMgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipKYXBhbmVzZU5hbWVNYXRjaEZlZWRiYWNrTG9vcCoqXShkb2NzL0phcGFuZXNlQXBpLm1kI0phcGFuZXNlTmFtZU1hdGNoRmVlZGJhY2tMb29wKSB8ICoqR0VUKiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVNYXRjaEZlZWRiYWNrTG9vcC97amFwYW5lc2VTdXJuYW1lTGF0aW59L3tqYXBhbmVzZUdpdmVuTmFtZUxhdGlufS97amFwYW5lc2VOYW1lfSB8IFtDUkVESVRTIDEgVU5JVF0gRmVlZGJhY2sgbG9vcCB0byBiZXR0ZXIgcGVyZm9ybSBtYXRjaGluZyBKYXBhbmVzZSBuYW1lIGluIEtBTkpJIGV4LiDlsbHmnKwg5pep6IuXIHdpdGggYSByb21hbml6ZWQgbmFtZSBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKlBhcnNlSmFwYW5lc2VOYW1lKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjUGFyc2VKYXBhbmVzZU5hbWUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3BhcnNlSmFwYW5lc2VOYW1lL3tqYXBhbmVzZU5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIOWxseacrCDml6noi5cgb3IgWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKlBhcnNlSmFwYW5lc2VOYW1lQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNQYXJzZUphcGFuZXNlTmFtZUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vcGFyc2VKYXBhbmVzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDlsbHmnKwg5pep6IuXIG9yIFlhbWFtb3RvIFNhbmFlIAoqUGVyc29uYWxBcGkqIHwgWyoqQ291bnRyeSoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI0NvdW50cnkpIHwgKipHRVQqKiAvYXBpMi9qc29uL2NvdW50cnkve3BlcnNvbmFsTmFtZUZ1bGx9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBvZiByZXNpZGVuY2Ugb2YgYSBwZXJzb25hbCBmdWxsIG5hbWUsIG9yIG9uZSBzdXJuYW1lLiBBc3N1bWVzIG5hbWVzIGFzIHRoZXkgYXJlIGluIHRoZSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBPUiB0aGUgY291bnRyeSBvZiBvcmlnaW4uCipQZXJzb25hbEFwaSogfCBbKipDb3VudHJ5QmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNDb3VudHJ5QmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9jb3VudHJ5QmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBvZiB1cCB0byAxMDAgcGVyc29uYWwgZnVsbCBuYW1lcywgb3Igc3VybmFtZXMuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2YgcmVzaWRlbmNlIE9SIHRoZSBjb3VudHJ5IG9mIG9yaWdpbi4KKlBlcnNvbmFsQXBpKiB8IFsqKkRpYXNwb3JhKipdKGRvY3MvUGVyc29uYWxBcGkubWQjRGlhc3BvcmEpIHwgKipHRVQqKiAvYXBpMi9qc29uL2RpYXNwb3JhL3tjb3VudHJ5SXNvMn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSBvZiBhIHBlcnNvbmFsIG5hbWUsIGdpdmVuIGEgY291bnRyeSBvZiByZXNpZGVuY2UgSVNPMiBjb2RlIChleC4gVVMsIENBLCBBVSwgTlogZXRjLikKKlBlcnNvbmFsQXBpKiB8IFsqKkRpYXNwb3JhQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNEaWFzcG9yYUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZGlhc3BvcmFCYXRjaCB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIGdpdmVuIGEgY291bnRyeSBvZiByZXNpZGVuY2UgSVNPMiBjb2RlIChleC4gVVMsIENBLCBBVSwgTlogZXRjLikKKlBlcnNvbmFsQXBpKiB8IFsqKkdlbmRlcioqXShkb2NzL1BlcnNvbmFsQXBpLm1kI0dlbmRlcikgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVyL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIG5hbWUuCipQZXJzb25hbEFwaSogfCBbKipHZW5kZXJCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI0dlbmRlckJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZ2VuZGVyQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBjdWx0dXJhbCBjb250ZXh0LgoqUGVyc29uYWxBcGkqIHwgWyoqR2VuZGVyRnVsbCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI0dlbmRlckZ1bGwpIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGwve2Z1bGxOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgZnVsbCBuYW1lLCBleC4gSm9obiBILiBTbWl0aAoqUGVyc29uYWxBcGkqIHwgWyoqR2VuZGVyRnVsbEJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjR2VuZGVyRnVsbEJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZ2VuZGVyRnVsbEJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIGZ1bGwgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBjdWx0dXJhbCBjb250ZXh0LgoqUGVyc29uYWxBcGkqIHwgWyoqR2VuZGVyRnVsbEdlbyoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI0dlbmRlckZ1bGxHZW8pIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGxHZW8ve2Z1bGxOYW1lfS97Y291bnRyeUlzbzJ9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBmdWxsIG5hbWUsIGdpdmVuIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IGNvZGUpLgoqUGVyc29uYWxBcGkqIHwgWyoqR2VuZGVyRnVsbEdlb0JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjR2VuZGVyRnVsbEdlb0JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZ2VuZGVyRnVsbEdlb0JhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIGZ1bGwgbmFtZXMsIHdpdGggYSBnaXZlbiBjdWx0dXJhbCBjb250ZXh0IChjb3VudHJ5IElTTzIgY29kZSkuCipQZXJzb25hbEFwaSogfCBbKipHZW5kZXJHZW8qKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNHZW5kZXJHZW8pIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlckdlby97Zmlyc3ROYW1lfS97bGFzdE5hbWV9L3tjb3VudHJ5SXNvMn0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIG5hbWUsIGdpdmVuIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IGNvZGUpLgoqUGVyc29uYWxBcGkqIHwgWyoqR2VuZGVyR2VvQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNHZW5kZXJHZW9CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckdlb0JhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIG5hbWVzLCBlYWNoIGdpdmVuIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IGNvZGUpLgoqUGVyc29uYWxBcGkqIHwgWyoqT3JpZ2luKipdKGRvY3MvUGVyc29uYWxBcGkubWQjT3JpZ2luKSB8ICoqR0VUKiogL2FwaTIvanNvbi9vcmlnaW4ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2Ygb3JpZ2luIG9mIGEgcGVyc29uYWwgbmFtZS4gQXNzdW1lcyBuYW1lcyBhcyB0aGV5IGFyZSBpbiB0aGUgY291bnRyeSBvZiBvcmlnaW4uIEZvciBVUywgQ0EsIEFVLCBOWiBhbmQgb3RoZXIgbWVsdGluZy1wb3RzIDogdXNlICdkaWFzcG9yYScgaW5zdGVhZC4KKlBlcnNvbmFsQXBpKiB8IFsqKk9yaWdpbkJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjT3JpZ2luQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9vcmlnaW5CYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2Ygb3JpZ2luIG9mIHVwIHRvIDEwMCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipQZXJzb25hbEFwaSogfCBbKipQYXJzZU5hbWUqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNQYXJzZU5hbWUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3BhcnNlTmFtZS97bmFtZUZ1bGx9IHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIEpvaG4gU21pdGggb3IgU01JVEgsIEpvaG4gb3IgU01JVEg7IEpvaG4uIAoqUGVyc29uYWxBcGkqIHwgWyoqUGFyc2VOYW1lQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNQYXJzZU5hbWVCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3BhcnNlTmFtZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIEpvaG4gU21pdGggb3IgU01JVEgsIEpvaG4gb3IgU01JVEg7IEpvaG4uCipQZXJzb25hbEFwaSogfCBbKipQYXJzZU5hbWVHZW8qKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNQYXJzZU5hbWVHZW8pIHwgKipHRVQqKiAvYXBpMi9qc29uL3BhcnNlTmFtZS97bmFtZUZ1bGx9L3tjb3VudHJ5SXNvMn0gfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gRm9yIGJldHRlciBhY2N1cmFjeSwgcHJvdmlkZSBhIGdlb2dyYXBoaWMgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKlBhcnNlTmFtZUdlb0JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjUGFyc2VOYW1lR2VvQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9wYXJzZU5hbWVHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiBKb2huIFNtaXRoIG9yIFNNSVRILCBKb2huIG9yIFNNSVRIOyBKb2huLiBHaXZpbmcgYSBsb2NhbCBjb250ZXh0IGltcHJvdmVzIHByZWNpc2lvbi4gCipQZXJzb25hbEFwaSogfCBbKipQYXJzZWRHZW5kZXJCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI1BhcnNlZEdlbmRlckJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vcGFyc2VkR2VuZGVyQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgZnVsbHkgcGFyc2VkIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgY3VsdHVyYWwgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKlBhcnNlZEdlbmRlckdlb0JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjUGFyc2VkR2VuZGVyR2VvQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9wYXJzZWRHZW5kZXJHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxseSBwYXJzZWQgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBjdWx0dXJhbCBjb250ZXh0LgoqUGVyc29uYWxBcGkqIHwgWyoqVXNSYWNlRXRobmljaXR5KipdKGRvY3MvUGVyc29uYWxBcGkubWQjVXNSYWNlRXRobmljaXR5KSB8ICoqR0VUKiogL2FwaTIvanNvbi91c1JhY2VFdGhuaWNpdHkve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciBhIFVTIHJlc2lkZW50J3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXkgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuCipQZXJzb25hbEFwaSogfCBbKipVc1JhY2VFdGhuaWNpdHlCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI1VzUmFjZUV0aG5pY2l0eUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vdXNSYWNlRXRobmljaXR5QmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdXAtdG8gMTAwIFVTIHJlc2lkZW50J3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXkuCipQZXJzb25hbEFwaSogfCBbKipVc1JhY2VFdGhuaWNpdHlaSVA1KipdKGRvY3MvUGVyc29uYWxBcGkubWQjVXNSYWNlRXRobmljaXR5WklQNSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vdXNSYWNlRXRobmljaXR5WklQNS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9L3t6aXA1Q29kZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgYSBVUyByZXNpZGVudCdzIGxpa2VseSByYWNlL2V0aG5pY2l0eSBhY2NvcmRpbmcgdG8gVVMgQ2Vuc3VzIHRheG9ub215LCB1c2luZyAob3B0aW9uYWwpIFpJUDUgY29kZSBpbmZvLiBPdXRwdXQgaXMgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuCipQZXJzb25hbEFwaSogfCBbKipVc1ppcFJhY2VFdGhuaWNpdHlCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI1VzWmlwUmFjZUV0aG5pY2l0eUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vdXNaaXBSYWNlRXRobmljaXR5QmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdXAtdG8gMTAwIFVTIHJlc2lkZW50J3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXksIHdpdGggKG9wdGlvbmFsKSBaSVAgY29kZS4KKlNvY2lhbEFwaSogfCBbKipQaG9uZUNvZGUqKl0oZG9jcy9Tb2NpYWxBcGkubWQjUGhvbmVDb2RlKSB8ICoqR0VUKiogL2FwaTIvanNvbi9waG9uZUNvZGUve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97cGhvbmVOdW1iZXJ9IHwgW1VTRVMgMTEgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBhbmQgcGhvbmUgcHJlZml4LCBnaXZlbiBhIHBlcnNvbmFsIG5hbWUgYW5kIGZvcm1hdHRlZCAvIHVuZm9ybWF0dGVkIHBob25lIG51bWJlci4KKlNvY2lhbEFwaSogfCBbKipQaG9uZUNvZGVCYXRjaCoqXShkb2NzL1NvY2lhbEFwaS5tZCNQaG9uZUNvZGVCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3Bob25lQ29kZUJhdGNoIHwgW1VTRVMgMTEgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBhbmQgcGhvbmUgcHJlZml4LCBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBsb2NhbCBjb250ZXh0IGdpdmVuIGEgbmFtZSBhbmQgZm9ybWF0dGVkIC8gdW5mb3JtYXR0ZWQgcGhvbmUgbnVtYmVyLgoqU29jaWFsQXBpKiB8IFsqKlBob25lQ29kZUdlbyoqXShkb2NzL1NvY2lhbEFwaS5tZCNQaG9uZUNvZGVHZW8pIHwgKipHRVQqKiAvYXBpMi9qc29uL3Bob25lQ29kZUdlby97Zmlyc3ROYW1lfS97bGFzdE5hbWV9L3twaG9uZU51bWJlcn0ve2NvdW50cnlJc28yfSB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IHBob25lIHByZWZpeCwgZ2l2ZW4gYSBwZXJzb25hbCBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIsIHdpdGggYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgb2YgcmVzaWRlbmNlKS4KKlNvY2lhbEFwaSogfCBbKipQaG9uZUNvZGVHZW9CYXRjaCoqXShkb2NzL1NvY2lhbEFwaS5tZCNQaG9uZUNvZGVHZW9CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3Bob25lQ29kZUdlb0JhdGNoIHwgW1VTRVMgMTEgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBhbmQgcGhvbmUgcHJlZml4LCBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIHdpdGggYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgb2YgcmVzaWRlbmNlKS4KKlNvY2lhbEFwaSogfCBbKipQaG9uZUNvZGVHZW9GZWVkYmFja0xvb3AqKl0oZG9jcy9Tb2NpYWxBcGkubWQjUGhvbmVDb2RlR2VvRmVlZGJhY2tMb29wKSB8ICoqR0VUKiogL2FwaTIvanNvbi9waG9uZUNvZGVHZW9GZWVkYmFja0xvb3Ave2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97cGhvbmVOdW1iZXJ9L3twaG9uZU51bWJlckUxNjR9L3tjb3VudHJ5SXNvMn0gfCBbQ1JFRElUUyAxIFVOSVRdIEZlZWRiYWNrIGxvb3AgdG8gYmV0dGVyIGluZmVyIHRoZSBsaWtlbHkgcGhvbmUgcHJlZml4LCBnaXZlbiBhIHBlcnNvbmFsIG5hbWUgYW5kIGZvcm1hdHRlZCAvIHVuZm9ybWF0dGVkIHBob25lIG51bWJlciwgd2l0aCBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBvZiByZXNpZGVuY2UpLgoKCiMjIERvY3VtZW50YXRpb24gZm9yIE1vZGVscwoKIC0gW0FQSUJpbGxpbmdQZXJpb2RVc2FnZU91dF0oZG9jcy9BUElCaWxsaW5nUGVyaW9kVXNhZ2VPdXQubWQpCiAtIFtBUElDbGFzc2lmaWVyT3V0XShkb2NzL0FQSUNsYXNzaWZpZXJPdXQubWQpCiAtIFtBUElDbGFzc2lmaWVyVGF4b25vbXlPdXRdKGRvY3MvQVBJQ2xhc3NpZmllclRheG9ub215T3V0Lm1kKQogLSBbQVBJQ2xhc3NpZmllcnNTdGF0dXNPdXRdKGRvY3MvQVBJQ2xhc3NpZmllcnNTdGF0dXNPdXQubWQpCiAtIFtBUElDb3VudGVyVjJPdXRdKGRvY3MvQVBJQ291bnRlclYyT3V0Lm1kKQogLSBbQVBJS2V5T3V0XShkb2NzL0FQSUtleU91dC5tZCkKIC0gW0FQSVBlcmlvZFVzYWdlT3V0XShkb2NzL0FQSVBlcmlvZFVzYWdlT3V0Lm1kKQogLSBbQVBJUGxhbk91dF0oZG9jcy9BUElQbGFuT3V0Lm1kKQogLSBbQVBJUGxhblN1YnNjcmlwdGlvbk91dF0oZG9jcy9BUElQbGFuU3Vic2NyaXB0aW9uT3V0Lm1kKQogLSBbQVBJUGxhbnNPdXRdKGRvY3MvQVBJUGxhbnNPdXQubWQpCiAtIFtBUElTZXJ2aWNlT3V0XShkb2NzL0FQSVNlcnZpY2VPdXQubWQpCiAtIFtBUElTZXJ2aWNlc091dF0oZG9jcy9BUElTZXJ2aWNlc091dC5tZCkKIC0gW0FQSVVzYWdlQWdncmVnYXRlZE91dF0oZG9jcy9BUElVc2FnZUFnZ3JlZ2F0ZWRPdXQubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZURpYXNwb3JhZWRPdXQubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJJbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUdlbmRlcmVkT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUdlbmRlcmVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvSW5dKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lR2VvSW4ubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUluXShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUluLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lT3JpZ2luZWRPdXRdKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lT3JpZ2luZWRPdXQubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVQaG9uZUNvZGVkT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXQubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luXShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZVBob25lTnVtYmVyR2VvSW4ubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckluXShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZVBob25lTnVtYmVySW4ubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVVU1JhY2VFdGhuaWNpdHlPdXRdKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lVVNSYWNlRXRobmljaXR5T3V0Lm1kKQogLSBbQmF0Y2hNYXRjaFBlcnNvbmFsRmlyc3RMYXN0TmFtZUluXShkb2NzL0JhdGNoTWF0Y2hQZXJzb25hbEZpcnN0TGFzdE5hbWVJbi5tZCkKIC0gW0JhdGNoTmFtZU1hdGNoQ2FuZGlkYXRlc091dF0oZG9jcy9CYXRjaE5hbWVNYXRjaENhbmRpZGF0ZXNPdXQubWQpCiAtIFtCYXRjaE5hbWVNYXRjaGVkT3V0XShkb2NzL0JhdGNoTmFtZU1hdGNoZWRPdXQubWQpCiAtIFtCYXRjaFBhcnNlZEZ1bGxOYW1lR2VvSW5dKGRvY3MvQmF0Y2hQYXJzZWRGdWxsTmFtZUdlb0luLm1kKQogLSBbQmF0Y2hQYXJzZWRGdWxsTmFtZUluXShkb2NzL0JhdGNoUGFyc2VkRnVsbE5hbWVJbi5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lR2VuZGVyZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lR2VvSW5dKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW9Jbi5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lR2VvT3V0XShkb2NzL0JhdGNoUGVyc29uYWxOYW1lR2VvT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVJbl0oZG9jcy9CYXRjaFBlcnNvbmFsTmFtZUluLm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXQubWQpCiAtIFtCaWxsaW5nSGlzdG9yeU91dF0oZG9jcy9CaWxsaW5nSGlzdG9yeU91dC5tZCkKIC0gW0JpbGxpbmdJbmZvSW5PdXRdKGRvY3MvQmlsbGluZ0luZm9Jbk91dC5tZCkKIC0gW0NhY2hlTWV0cmljc091dF0oZG9jcy9DYWNoZU1ldHJpY3NPdXQubWQpCiAtIFtDbGFzc2lmaWVyTWV0cmljc091dF0oZG9jcy9DbGFzc2lmaWVyTWV0cmljc091dC5tZCkKIC0gW0N1cnJlbmNpZXNPdXRdKGRvY3MvQ3VycmVuY2llc091dC5tZCkKIC0gW0RlcGxveVVJT3V0XShkb2NzL0RlcGxveVVJT3V0Lm1kKQogLSBbRXhwZWN0ZWRDbGFzc01ldHJpY3NPdXRdKGRvY3MvRXhwZWN0ZWRDbGFzc01ldHJpY3NPdXQubWQpCiAtIFtGZWVkYmFja0xvb3BPdXRdKGRvY3MvRmVlZGJhY2tMb29wT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZURpYXNwb3JhZWRPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZURpYXNwb3JhZWRPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VuZGVySW5dKGRvY3MvRmlyc3RMYXN0TmFtZUdlbmRlckluLm1kKQogLSBbRmlyc3RMYXN0TmFtZUdlbmRlcmVkT3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVHZW9Jbl0oZG9jcy9GaXJzdExhc3ROYW1lR2VvSW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VvWmlwcGVkSW5dKGRvY3MvRmlyc3RMYXN0TmFtZUdlb1ppcHBlZEluLm1kKQogLSBbRmlyc3RMYXN0TmFtZUluXShkb2NzL0ZpcnN0TGFzdE5hbWVJbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVPcmlnaW5lZE91dF0oZG9jcy9GaXJzdExhc3ROYW1lT3JpZ2luZWRPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lT3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lUGhvbmVDb2RlZE91dF0oZG9jcy9GaXJzdExhc3ROYW1lUGhvbmVDb2RlZE91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luXShkb2NzL0ZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luLm1kKQogLSBbRmlyc3RMYXN0TmFtZVBob25lTnVtYmVySW5dKGRvY3MvRmlyc3RMYXN0TmFtZVBob25lTnVtYmVySW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lVVNSYWNlRXRobmljaXR5T3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVVU1JhY2VFdGhuaWNpdHlPdXQubWQpCiAtIFtJbmxpbmVPYmplY3RdKGRvY3MvSW5saW5lT2JqZWN0Lm1kKQogLSBbSW52b2ljZUl0ZW1PdXRdKGRvY3MvSW52b2ljZUl0ZW1PdXQubWQpCiAtIFtJbnZvaWNlT3V0XShkb2NzL0ludm9pY2VPdXQubWQpCiAtIFtNYXRjaFBlcnNvbmFsRmlyc3RMYXN0TmFtZUluXShkb2NzL01hdGNoUGVyc29uYWxGaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtOYW1Tb3JDb3VudGVyT3V0XShkb2NzL05hbVNvckNvdW50ZXJPdXQubWQpCiAtIFtOYW1lTWF0Y2hDYW5kaWRhdGVPdXRdKGRvY3MvTmFtZU1hdGNoQ2FuZGlkYXRlT3V0Lm1kKQogLSBbTmFtZU1hdGNoQ2FuZGlkYXRlc091dF0oZG9jcy9OYW1lTWF0Y2hDYW5kaWRhdGVzT3V0Lm1kKQogLSBbTmFtZU1hdGNoZWRPdXRdKGRvY3MvTmFtZU1hdGNoZWRPdXQubWQpCiAtIFtQYXJzZWRGdWxsTmFtZUdlb0luXShkb2NzL1BhcnNlZEZ1bGxOYW1lR2VvSW4ubWQpCiAtIFtQYXJzZWRGdWxsTmFtZUluXShkb2NzL1BhcnNlZEZ1bGxOYW1lSW4ubWQpCiAtIFtQZXJzb25hbE5hbWVHZW5kZXJlZE91dF0oZG9jcy9QZXJzb25hbE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUdlb0luXShkb2NzL1BlcnNvbmFsTmFtZUdlb0luLm1kKQogLSBbUGVyc29uYWxOYW1lR2VvT3V0XShkb2NzL1BlcnNvbmFsTmFtZUdlb091dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUluXShkb2NzL1BlcnNvbmFsTmFtZUluLm1kKQogLSBbUGVyc29uYWxOYW1lUGFyc2VkT3V0XShkb2NzL1BlcnNvbmFsTmFtZVBhcnNlZE91dC5tZCkKIC0gW1JvbWFuaXplZE5hbWVPdXRdKGRvY3MvUm9tYW5pemVkTmFtZU91dC5tZCkKIC0gW1NvZnR3YXJlVmVyc2lvbk91dF0oZG9jcy9Tb2Z0d2FyZVZlcnNpb25PdXQubWQpCiAtIFtTb3VyY2VEZXRhaWxlZE1ldHJpY3NPdXRdKGRvY3MvU291cmNlRGV0YWlsZWRNZXRyaWNzT3V0Lm1kKQogLSBbU291cmNlTWV0cmljc091dF0oZG9jcy9Tb3VyY2VNZXRyaWNzT3V0Lm1kKQogLSBbU3RyaXBlQ2FyZE91dF0oZG9jcy9TdHJpcGVDYXJkT3V0Lm1kKQogLSBbU3RyaXBlQ3VzdG9tZXJPdXRdKGRvY3MvU3RyaXBlQ3VzdG9tZXJPdXQubWQpCiAtIFtTeXN0ZW1NZXRyaWNzT3V0XShkb2NzL1N5c3RlbU1ldHJpY3NPdXQubWQpCiAtIFtVc2VySW5mb091dF0oZG9jcy9Vc2VySW5mb091dC5tZCkKCgojIyBEb2N1bWVudGF0aW9uIGZvciBBdXRob3JpemF0aW9uCgoKIyMjIGFwaV9rZXkKCi0gKipUeXBlKio6IEFQSSBrZXkKLSAqKkFQSSBrZXkgcGFyYW1ldGVyIG5hbWUqKjogWC1BUEktS0VZCi0gKipMb2NhdGlvbioqOiBIVFRQIGhlYWRlcgoKCgojIyBBdXRob3IKCmNvbnRhY3RAbmFtc29yLmNvbQoK readmeEtag: '"2662eb18fb456251adc73e369600b29eda77e51c"' readmeLastModified: Mon, 15 Mar 2021 08:47:25 GMT repositoryId: 168223476 description: >- NamSor API v2 R SDK - classify personal names accurately by gender, country of origin, or ethnicity. created: '2019-01-29T20:28:30Z' updated: '2023-03-11T18:48:25Z' language: R archived: false stars: 12 watchers: 5 forks: 2 owner: namsor logo: https://avatars.githubusercontent.com/u/6951565?v=4 repoEtag: '"58cfdcb80b2a6bc6c9776595d54d3a2234189dd4e431d8773e211f7511f05ca4"' repoLastModified: Sat, 11 Mar 2023 18:48:25 GMT foundInMaster: true category: - Server Implementations - Description Validators id: 10347725bd389e99e9dcfbeb8212e0be - source: openapi3 tags repository: https://github.com/superfaceai/openapi-linter v3: true id: 86b53702824389b1522bcbb79dcb880b repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIExpbnRlcgoKWyFbR2l0SHViIFdvcmtmbG93IFN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvd29ya2Zsb3cvc3RhdHVzL3N1cGVyZmFjZWFpL29wZW5hcGktbGludGVyL0NJKV0oaHR0cHM6Ly9naXRodWIuY29tL3N1cGVyZmFjZWFpL29wZW5hcGktbGludGVyL2FjdGlvbnMvd29ya2Zsb3dzL21haW4ueW1sKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHN1cGVyZmFjZWFpL29wZW5hcGktbGludGVyKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN1cGVyZmFjZWFpL29wZW5hcGktbGludGVyKQpbIVtsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9sL0BzdXBlcmZhY2VhaS9vcGVuYXBpLWxpbnRlcildKExJQ0VOU0UpClshW0NMSSBidWlsdCB3aXRoIG9jbGlmXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NsaS1vY2xpZi1icmlnaHRncmVlbi5zdmcpXShodHRwczovL29jbGlmLmlvKQpbIVtHaXRIdWIgRGlzY3Vzc2lvbnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2Rpc2N1c3Npb25zL3N1cGVyZmFjZWFpLy5naXRodWI/bG9nbz1naXRodWImbG9nb0NvbG9yPWZmZildKGh0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL3N1cGVyZmFjZWFpL2Rpc2N1c3Npb25zKQoKPiBJcyB5b3VyIE9wZW5BUEkgU3BlYyByZWFkeSBmb3IgU0RLIGdlbmVyYXRvcnM/CgpPcGVuQVBJIExpbnRlciBpcyBhIENMSSBhbmQgYSBOb2RlLmpzIGxpYnJhcnkgdG8gdmFsaWRhdGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgpJdCBpcyBiYXNlZCBvbiBbU3BlY3RyYWxdIGJ5IFN0b3BsaWdodCB3aXRoIFtPcGVuQVBJIHJ1bGVzXShodHRwczovL21ldGEuc3RvcGxpZ2h0LmlvL2RvY3Mvc3BlY3RyYWwvNGRlYzI0NDYxZjNhZi1vcGVuLWFwaS1ydWxlcykgd2l0aCBhZGRpdGlvbmFsIHJ1bGVzLiBUaGUgZ29hbCBvZiBMaW50ZXIgaXMgdG8gY2hlY2sgd2hldGhlciB0aGUgc3BlYyBjb250YWlucyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgaGlnaCBxdWFsaXR5LCB3ZWxsIGRvY3VtZW50ZWQgU0RLLgpXZSB1c2UgT3BlbkFQSSBMaW50ZXIgaW4gW1N1cGVyZmFjZSBJbnRlZ3JhdGlvbiBEZXNpZ25lcl1bZGVzaWduZXJdLCBidXQgYW55IGNsaWVudCBjb2RlIGdlbmVyYXRvciBiZW5lZml0cyBmcm9tIHdlbGwgd3JpdHRlbiBPcGVuQVBJIHNwZWNzLgoKIyMgU2V0dXAKCkluc3RhbGwgZnJvbSBucG0gZ2xvYmFsbHk6CgpgYGBzaGVsbApucG0gaSAtZyBAc3VwZXJmYWNlYWkvb3BlbmFwaS1saW50ZXIKYGBgCgpOb3cgeW91IGNhbiB1c2UgdGhlIGxpbnRlciB3aXRoIGNvbW1hbmRzIGBvcGVuYXBpLWxpbnRlcmAgb3IgYG9hbGAuCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gdXNlIHRoZSBsaW50ZXIgd2l0aG91dCBpbnN0YWxsYXRpb24gd2l0aCBgbnB4YDoKCmBgYApucHggQHN1cGVyZmFjZWFpL29wZW5hcGktbGludGVyIGxpbnQgPGZpbGUgb3IgVVJMPgpgYGAKCiMjIENMSSBjb21tYW5kcwoKICA8IS0tIGNvbW1hbmRzIC0tPgoKLSBbYG9wZW5hcGktbGludGVyIGxpbnQgU1BFQ0lGSUNBVElPTlBBVEhgXSgjb3BlbmFwaS1saW50ZXItbGludC1zcGVjaWZpY2F0aW9ucGF0aCkKCiMjIyBgb3BlbmFwaS1saW50ZXIgbGludCBTUEVDSUZJQ0FUSU9OUEFUSGAKCkxpbnRzIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiB1c2luZyB0aHJlZSBkaWZmZXJlbnQgcGFyc2Vycy92YWxpZGF0b3JzLgoKYGBgClVTQUdFCiAgJCBvcGVuYXBpLWxpbnRlciBsaW50IFtTUEVDSUZJQ0FUSU9OUEFUSF0gWy1mIHlhbWx8anNvbl0gWy1lIGVycm9yfHdhcm5pbmd8YW55XQoKQVJHVU1FTlRTCiAgU1BFQ0lGSUNBVElPTlBBVEggIFBhdGggb3IgVVJMIHRvIHNwZWNpZmljYXRpb24gZmlsZQoKRkxBR1MKICAtZSwgLS10aHJvd09uPTxvcHRpb24+ICAgICBbZGVmYXVsdDogZXJyb3JdIE9uIHdoaWNoIGtpbmQgb2Ygc2V2ZXJ0eSBlcnJvciBzaG91bGQgYmUgdGhyb3duLiBXaGVuIHNldCB0byB3YXJuaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCB3aWxsIHRocm93IHdoZW4gdGhlcmUgaXMgYSByZXN1bHQgd2l0aCAid2FybmluZyIgb3IgImVycm9yIiBzZXZlcml0eS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uczogZXJyb3J8d2FybmluZ3xhbnk+CiAgLWYsIC0tZmlsZUZvcm1hdD08b3B0aW9uPiAgRm9ybWF0IG9mIHNwZWNpZmljYXRpb24uIE11c3QgYmUgInlhbWwiIG9yICJqc29uIiB3aGVuIGRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uczogeWFtbHxqc29uPgoKREVTQ1JJUFRJT04KICBMaW50cyBPcGVuQVBJIHNwZWNpZmljYXRpb24gdXNpbmcgdGhyZWUgZGlmZmVyZW50IHBhcnNlcnMvdmFsaWRhdG9ycy4KCkVYQU1QTEVTCiAgJCBvYWwgbGludCBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wZXRzdG9yZS9ibG9iL21hc3Rlci9zcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaS55YW1sCgogICQgb2FsIGxpbnQgZXhhbXBsZXMvcGV0c3RvcmUueWFtbAoKICAkIG9hbCBsaW50IGV4YW1wbGVzL3BldHN0b3JlLnlhbWwgLWUgYW55CgogICQgb2FsIGxpbnQgZXhhbXBsZXMvcGV0c3RvcmUueWFtbCAtZiB5YW1sCmBgYAoKPCEtLSBjb21tYW5kc3N0b3AgLS0+CgojIyBVc2FnZSBpbiBjb2RlCgpJbnN0YWxsIHRoZSBsaW50ZXIgYXMgYSBkZXBlbmRlbmN5IGludG8geW91ciBwcm9qZWN0OgoKYGBgc2hlbGwKbnBtIGkgQHN1cGVyZmFjZWFpL29wZW5hcGktbGludGVyCmBgYAoKVXNlIHRoZSBgbGludGAgZnVuY3Rpb246Cgo8IS0tIFRPRE86IEFkZCBleGFtcGxlIHdoYXQncyBpbiBsaW50UmVzdWx0IC0tPgoKYGBgdHMKaW1wb3J0IHsgbGludCB9IGZyb20gJ29wZW5hcGktbGludGVyJzsKCi8vIEdldCBzcGVjaWZpY2F0aW9uIGFzIHN0cmluZwpjb25zdCBzcGVjaWZpY2F0aW9uID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aFRvU3BlYywgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTsKCi8vIFBhc3Mgc3BlY2lmaWNhdGlvbiwgaXRzIGV4dGVuc2lvbiAoInlhbWwiIG9yICJqc29uIikgYW5kIG5hbWUKY29uc3QgbGludFJlc3VsdCA9IGF3YWl0IGxpbnQoc3BlY2lmaWNhdGlvbiwgJ3lhbWwnLCAnbXktc3BlYy1uYW1lJyk7CgovL0RvIHNvbWV0aGluZyB3aXRoIHJlc3VsdApjb25zb2xlLmxvZyhsaW50UmVzdWx0KTsKYGBgCgo8IS0tIFRPRE8KIyMgQWRkZWQgcnVsZXMgKFdJUCkKCiogRWFjaCBvcGVyYXRpb24gaGFzIHRvIGRlZmluZSBhdCBsZWFzdCBvbmUgc3VjY2VzcyByZXNwb25zZQoqIEVhY2ggb3BlcmF0aW9uIGhhcyB0byBkZWZpbmUgYXQgbGVhc3Qgb25lIGVycm9yIG9yIGRlZmF1bHQgcmVzcG9uc2UKLS0+CgojIyBSZWxhdGVkIHByb2plY3RzCgotIFtTcGVjdHJhbF0sIGdlbmVyaWMgbGludGVyIGZvciBKU09OIGFuZCBZQU1MIHRoaXMgcHJvamVjdCBpcyBiYXNlZCBvbgotIFtPcGVuQVBJIEVuZm9yY2VyXShodHRwczovL29wZW5hcGktZW5mb3JjZXIuY29tLykKLSBbT3BlbkFQSSBWYWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9JQk0vb3BlbmFwaS12YWxpZGF0b3IpCi0gW09BUyBUb29sc10oaHR0cHM6Ly9vYXMtdG9vbHMuZ2l0aHViLmlvLykKLSBbUmVkb2NseSBDTEldKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jbHktY2xpKQotIFtDaGVycnlib21iXShodHRwczovL2dpdGh1Yi5jb20vYmxzdC1zZWN1cml0eS9jaGVycnlib21iKSAoUnVzdCkKLSBhbmQgW21hbnkgbW9yZV0oaHR0cHM6Ly9vcGVuYXBpLnRvb2xzLykKCiMjIE1haW50YWluZXJzCgotIFtKYWt1YiBWYWNla10oaHR0cHM6Ly9naXRodWIuY29tL0pha3ViLVZhY2VrKQotIFtSYWRlayBLeXNlbMO9XShodHRwczovL2dpdGh1Yi5jb20va3lzZWx5KQoKIyMgTGljZW5zZQoKVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBbTUlUIGxpY2Vuc2VdKExJQ0VOU0UpLgoKwqkgMjAyMyBTdXBlcmZhY2Ugcy5yLm8uCgpbc3BlY3RyYWxdOiBodHRwczovL3N0b3BsaWdodC5pby9vcGVuLXNvdXJjZS9zcGVjdHJhbApbZGVzaWduZXJdOiBodHRwczovL3N1cGVyZmFjZS5haS9kZXNpZ25lcgo= readmeEtag: '"dcc032fec32455a2fa8825288981763ef91c0e33"' readmeLastModified: Wed, 19 Jul 2023 11:32:46 GMT repositoryId: 530604809 description: Is your OpenAPI Spec ready for SDK generators? created: '2022-08-30T10:24:31Z' updated: '2024-09-03T14:52:23Z' language: TypeScript archived: false stars: 13 watchers: 5 forks: 0 owner: superfaceai logo: https://avatars.githubusercontent.com/u/57067369?v=4 license: MIT repoEtag: '"50760aea89af8a3a81df237aa2093531db7f622d3f9421eb646902471b85935e"' repoLastModified: Tue, 03 Sep 2024 14:52:23 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/jnig/fastify-flux v3: true id: 2b41fe1fc019c16cbb976ee69aa351e0 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ZsdXhhcGkvZmx1eGFwaSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+CiAgICA8aW1nIHdpZHRoPSIxODAiIHNyYz0iLi9sb2dvLnBuZyIgYWx0PSJGbHV4IGxvZ28iPgogIDwvYT4KPC9wPgo8YnIvPgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jcmVhdGUtZmFzdGlmeS1mbHV4Ij48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9jcmVhdGUtZmFzdGlmeS1mbHV4LnN2ZyIgYWx0PSJucG0gcGFja2FnZSI+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vbm9kZWpzLm9yZy9lbi9hYm91dC9yZWxlYXNlcy8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25vZGUvdi9jcmVhdGUtZmFzdGlmeS1mbHV4LnN2ZyIgYWx0PSJub2RlIGNvbXBhdGliaWxpdHkiPjwvYT4KICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLU1JVC1ncmVlbi5zdmciIGFsdD0ibGljZW5zZSIgLz4KICA8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL0puaWcvZmFzdGlmeS1mbHV4L2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3QueW1sL2JhZGdlLnN2ZyIgLz4KCjwvcD4KPGJyLz4KCiMgRmx1eEFQSSDimqEKCj4gRGVsaWdodGZ1bCBBUEkgZGV2ZWxvcG1lbnQKCi0g8J+SoSBJbnN0YW50IHNlcnZlciBzdGFydCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ldmFudy9lc2J1aWxkIiB0YXJnZXQ9Il9ibGFuayI+ZXNidWlsZDwvYT4KLSDwn46vIEF1dG9tYXRpYyByZWxvYWRzIGFuZCBvcHRpb25hbCB0eXBlIGNoZWNraW5nCi0g4pqh77iPIExpZ2h0bmluZyBmYXN0IGh0dHAgcmVxdWVzdHMgd2l0aCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5IiB0YXJnZXQ9Il9ibGFuayI+ZmFzdGlmeTwvYT4KLSDwn5ug77iPIEUyRSB0ZXN0cyB3aXRoIFtqZXN0XShodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svamVzdCkKLSDwn5OmIE9wZW5BUEkgdjMKLSDwn5SLIEJhdHRlcmllcyBpbmNsdWRlZDogQSB0eXBlZCBjbGllbnQgU0RLIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FjYWNvZGUvc3dhZ2dlci10eXBlc2NyaXB0LWFwaSIgdGFyZ2V0PSJfYmxhbmsiPnN3YWdnZXItdHlwZXNjcmlwdC1hcGk8L2E+CgpGbHV4QVBJIGlzIGEgbmV3IEFQSSBidWlsZCB0b29sIHRoYXQgc2lnbmlmaWNhbnRseSBpbXByb3ZlcyB0aGUgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZS4gVHlwZXNjcmlwdCBpbnRlcmZhY2VzIGFyZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCBpbnRvIEpTT04gc2NoZW1hLgoKIyMgUXVpY2tzdGFydAoKYGBgc2gKbnB4IGNyZWF0ZS1mYXN0aWZ5LWZsdXhAbGF0ZXN0CmBgYAoKUnVuIHRoZSBjb21tYW5kIGFuZCBmb2xsb3cgdGhlIGluc3RydWN0aW9ucy4gQWZ0ZXJ3YXJkcyB5b3Ugd2lsbCBoYXZlIGFuIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBhdCBodHRwOi8vbG9jYWxob3N0OjgwODAvIGFuZCBhIGNsaWVudCBTREsgZ2VuZXJhdGVkIGluIHRoZSBmaWxlIGBHZW5lcmF0ZWRBcGkudHNgLgoKIyMgTW90aXZhdGlvbgoKVGhlcmUgYXJlIGdyZWF0IE5vZGUuanMgZnJhbWV3b3JrcyBmb3IgYnVpbGRpbmcgQVBJcyB3aXRoIGRlY29yYXRvcnMuIEhvd2V2ZXIgdXNpbmcgdGhvc2UgY2FuIGdldCB2ZXJ5IHZlcmJvc2UuIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKCmBgYHRzCmV4cG9ydCBjbGFzcyBVcGRhdGVUb2RvRHRvIHsKICBASXNJbnQoKQogIHJlYWRvbmx5IGlkOiBudW1iZXI7CgogIEBJc1N0cmluZygpCiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nOwp9CgpAUG9zdCgnLzppZCcpCkBBcGlSZXNwb25zZSh7CiAgdHlwZTogVG9kbywKfSkKYXN5bmMgdXBkYXRlKEBQYXJhbSgnaWQnKSBpZDogbnVtYmVyLCBAQm9keSgpIGJvZHk6IFVwZGF0ZVRvZG9EdG8pOiBQcm9taXNlPFRvZG8+IHsKICAvLyBpbXBsZW1lbnRhdGlvbgp9CmBgYAoKVGhlIHBhcmFtZXRlciBkZWNvcmF0b3JzIG1ha2UgdGhlIGV4YW1wbGUgc2xpZ2h0bHkgaGFyZCB0byByZWFkLiBUaGUgQEFwaVJlc3BvbnNlIHR5cGUgaXMgcmVkdW5kYW50IHdpdGggZnVuY3Rpb24gcmV0dXJuIHR5cGUgYFByb21pc2U8VG9kbz5gLgoKV2l0aCBGbHV4QVBJIHRoZSBzYW1lIGNhbiBiZSBhY2hpZXZlZCB3aXRoIHRoZSBmb2xsb3dpbmc6CgpgYGB0cwppbnRlcmZhY2UgVXBkYXRlVG9kbyB7CiAgaWQgbnVtYmVyOwogIG5hbWU6IHN0cmluZzsKfQoKQFBvc3QoJy86aWQnKQphc3luYyB1cGRhdGUoaWQ6IG51bWJlciwgYm9keTogVXBkYXRlVG9kbyk6IFByb21pc2U8VG9kbz4gewogIC8vIGltcGxlbWVudGF0aW9uCn0KYGBgCgpUaGUgaWQgcGFyYW1ldGVyIGlzIG1hdGNoZWQgd2l0aCB0aGUgcGF0aCBgLzppZGAgYW5kIHRoZSBib2R5IGlzIHByb3ZpZGVkIHRvIHRoZSBwYXJhbXRlciBuYW1lZCBib2R5LiBUaGUgZnVuY3Rpb24gcmV0dXJuIHR5cGUgaXMgY29udmVydGVkIGludG8gYW4gT3BlbkFwaSByZXNwb25zZS4KCkFub3RoZXIgYWR2YW50YWdlIGlzIHRoYXQgeW91IGNhbiBsZXZlcmFnZSB0aGUgaW50ZXJmYWNlcyB3aGljaCBhcmUgcHJvdmlkZWQgYnkgYSBkYXRhYmFzZSBmcmFtZXdvcmsgZS5nLiBwcmlzbWEsIGJlY2F1c2UgaXQncyBubyBsb25nZXIgbmVjZXNzYXJ5IHRvIGNyZWF0ZSBhIER0byBjbGFzcy4KCiMjIFVzYWdlCgpUaGUgZm9sbG93aW5nIGNvZGUgc25pcHBldHMgYXJlIG9ubHkgcHJvdmlkZWQgYXMgZXhhbXBsZS4gSXQncyBiZXN0IHRvIHN0YXJ0IGEgbmV3IHByb2plY3QgdmlhCmBucG0gY3JlYXRlIGZsdXhgLgoKIyMjIERlZmluZSBhIGNvbnRyb2xsZXIKCmBUb2RvLmNvbnRyb2xsZXIudHNgCgpgYGB0cwppbXBvcnQgeyBDb250cm9sbGVyLCBEZWxldGUsIEdldCwgUG9zdCwgUHV0LCBTdGF0dXMgfSBmcm9tICdAZmx1eGFwaS9jb21tb24nOwppbXBvcnQgewogIENyZWF0ZVRvZG8sCiAgTGlzdFRvZG9RdWVyeSwKICBUb2RvUmVzcG9uc2UsCiAgVXBkYXRlVG9kbywKfSBmcm9tICcuL1RvZG8uc2NoZW1hJzsKCkBDb250cm9sbGVyKCcvdG9kb3MnLCB7IHRhZ3M6IFsndG9kb3MnXSB9KQpleHBvcnQgY2xhc3MgVG9kb0NvbnRyb2xsZXIgewogIEBHZXQoKQogIGFzeW5jIGxpc3QocXVlcnk6IExpc3RUb2RvUXVlcnkpOiBQcm9taXNlPFRvZG9SZXNwb25zZVtdPiB7CiAgICAvLyBpbXBsZW1lbnRhdGlvbgogIH0KCiAgQFBvc3QoKQogIGFzeW5jIGNyZWF0ZShib2R5OiBDcmVhdGVUb2RvKTogUHJvbWlzZTxUb2RvUmVzcG9uc2U+IHsKICAgIC8vIGltcGxlbWVudGF0aW9uCiAgfQoKICBAR2V0KCcvOmlkJykKICBhc3luYyBnZXQoaWQ6IG51bWJlcik6IFByb21pc2U8VG9kb1Jlc3BvbnNlPiB7CiAgICAvLyBpbXBsZW1lbnRhdGlvbgogIH0KCiAgQFB1dCgnLzppZCcpCiAgYXN5bmMgdXBkYXRlKGlkOiBudW1iZXIsIGJvZHk6IFVwZGF0ZVRvZG8pOiBQcm9taXNlPFRvZG9SZXNwb25zZT4gewogICAgLy8gaW1wbGVtZW50YXRpb24KICB9CgogIEBEZWxldGUoJy86aWQnKQogIEBTdGF0dXMoMjA0KQogIGFzeW5jIHJlbW92ZShpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICAvLyBpbXBsZW1lbnRhdGlvbgogIH0KfQpgYGAKCiMjIyBEZWZpbmUgdGhlIHNjaGVtYQoKU2NoZW1hIGZpbGVzIG11c3QgZW5kIHdpdGggYHNjaGVtYS50c2AKCmBUb2RvLnNjaGVtYS50c2AKCmBgYHRzCmludGVyZmFjZSBUb2RvIHsKICBpZCBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwogIGRvbmU6IGJvb2xlYW47Cn0KCmV4cG9ydCBpbnRlcmZhY2UgVG9kb1Jlc3BvbnNlIGV4dGVuZHMgVG9kbyB7fQoKZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUb2RvIGV4dGVuZHMgT21pdDxUb2RvUmVzcG9uc2UsICdpZCc+IHt9CgpleHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVRvZG8gZXh0ZW5kcyBQYXJ0aWFsPE9taXQ8VG9kb1Jlc3BvbnNlLCAnaWQnPj4ge30KCmV4cG9ydCBpbnRlcmZhY2UgTGlzdFRvZG9RdWVyeSB7CiAgaW5jbHVkZURvbmU/OiBib29sZWFuOwp9CgpgYGAKCiMjIyBDcmVhdGUgdGhlIHNlcnZlcgoKYGluZGV4LnRzYAoKYGBgdHMKaW1wb3J0IEZhc3RpZnkgZnJvbSAnZmFzdGlmeSc7CmltcG9ydCB7IEZsdXhDb250cm9sbGVyLCBGbHV4T3BlbmFwaSB9IGZyb20gJ2Zhc3RpZnktZmx1eCc7CmltcG9ydCB7IFRvZG9Db250cm9sbGVyIH0gZnJvbSAnfi9Ub2RvLmNvbnRyb2xsZXInOwoKY29uc3QgZmFzdGlmeSA9IEZhc3RpZnkoKTsKCmZhc3RpZnkucmVnaXN0ZXIoRmx1eE9wZW5hcGkpOwpmYXN0aWZ5LnJlZ2lzdGVyKEZsdXhDb250cm9sbGVyLCB7CiAgY29udHJvbGxlcnM6IFtUb2RvQ29udHJvbGxlcl0sCn0pOwoKZmFzdGlmeS5saXN0ZW4oODA4MCwgJzEyNy4wLjAuMScsIChlcnIsIGFkZHJlc3MpID0+IHsKICBjb25zb2xlLmxvZyhgU2VydmVyIGxpc3RlbmluZyBhdCAke2FkZHJlc3N9YCk7Cn0pOwpgYGAKCiMjIEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zCgo8ZGV0YWlscz4KICA8c3VtbWFyeT5Ib3cgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIEpTT04gU2NoZW1hIHByb3BlcnRpZXM/PC9zdW1tYXJ5PgoKWW91IGNhbiB1c2UgSlNEb2MgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIEpTT04gU2NoZW1hIHByb3BlcnRpZXMuIFlvdSBjYW4gYWxzbyBmaW5kIG1vcmUgZXhhbXBsZXMgaW4gdGhlIFt0cy1qc29uLXNjaGVtYS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS92ZWdhL3RzLWpzb24tc2NoZW1hLWdlbmVyYXRvcikgcmVwb3NpdG9yeS4KCmBgYHRzCi8qKgogKiBAdGl0bGUgU29tZSB0aXRsZSBoZXJlCiAqIEBkZXNjcmlwdGlvbiBTb21lIGRlc2NyaXB0aW9uIGhlcmUKICovCmV4cG9ydCBpbnRlcmZhY2UgTXlPYmplY3QgewogIC8qKgogICAqIEBkZXNjcmlwdGlvbiBFeHBvcnQgZmllbGQgZGVzY3JpcHRpb24KICAgKiBAZGVmYXVsdCAnZm9vYmFyJwogICAqLwogIG5hbWU6IHN0cmluZzsKfQpgYGAKCjwvZGV0YWlscz4KCjxkZXRhaWxzPgogIDxzdW1tYXJ5PkhvdyB0byBjb25maWd1cmUgdGhlIE9wZW5BUEkgZG9jdW1lbnRhdGlvbj88L3N1bW1hcnk+CgpUaGUgb3BlbmFwaSBmdW5jdGlvbiBhY2NlcHRzIGFsbCBvcHRpb25zIGZyb20gW2Zhc3RpZnktc3dhZ2dlcl0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS1zd2FnZ2VyKS4KCmBgYHRzCmZhc3RpZnkucmVnaXN0ZXIoRmx1eE9wZW5hcGksIHsKICByb3V0ZVByZWZpeDogJy9kb2N1bWVudGF0aW9uJywKICBzd2FnZ2VyOiB7CiAgICBpbmZvOiB7CiAgICAgIHRpdGxlOiAnVGVzdCBzd2FnZ2VyJywKICAgICAgZGVzY3JpcHRpb246ICdUZXN0aW5nIHRoZSBGYXN0aWZ5IHN3YWdnZXIgQVBJJywKICAgICAgdmVyc2lvbjogJzAuMS4wJywKICAgIH0sCiAgfSwKfSk7CmBgYAoKPC9kZXRhaWxzPgoKPGRldGFpbHM+CiAgPHN1bW1hcnk+V2hpY2ggZnVuY3Rpb24gcGFyYW1ldGVycyBhcmUgbWFwcGVkIGFuZCBob3cgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIG1hcHBpbmdzPzwvc3VtbWFyeT4KCk1hcHBpbmdzIGNhbiBiZSBwcm92aWRlZCBieSBwYXJhbWV0ZXIgYG5hbWVgIG9yIGB0eXBlYC4gVGhlIGZvbGxvd2luZyBtYXBwaW5ncyBhcmUgcHJvdmlkZWQgYnkgZGVmYXVsdCBhbmQgY2FuIGJlIGV4dGVuZGVkLgoKYGBgdHMKY29uc3QgZmFzdGlmeSA9IGZsdXgoewogIG1hcHBpbmc6IFsKICAgIHsKICAgICAgbmFtZTogJ3F1ZXJ5JywKICAgICAgbWFwcGVyKHsgcmVxdWVzdCB9KSB7CiAgICAgICAgcmV0dXJuIHJlcXVlc3QucXVlcnk7CiAgICAgIH0sCiAgICB9LAogICAgewogICAgICBuYW1lOiAnYm9keScsCiAgICAgIG1hcHBlcih7IHJlcXVlc3QgfSkgewogICAgICAgIHJldHVybiByZXF1ZXN0LmJvZHk7CiAgICAgIH0sCiAgICB9LAogICAgewogICAgICB0eXBlOiAnRmFzdGlmeVJlcGx5JywKICAgICAgbWFwcGVyKHsgcmVwbHkgfSkgewogICAgICAgIHJldHVybiByZXBseTsKICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgIHR5cGU6ICdGYXN0aWZ5UmVxdWVzdCcsCiAgICAgIG1hcHBlcih7IHJlcXVlc3QgfSkgewogICAgICAgIHJldHVybiByZXF1ZXN0OwogICAgICB9LAogICAgfSwKICBdLAp9KTsKYGBgCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KICA8c3VtbWFyeT5Ib3cgY2FuIEkgYWRkIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHRvIHRoZSBBUEk/PC9zdW1tYXJ5PgoKRm9yIGF1dGhlbnRpY2F0aW9uIGZhc3RpZnkgaG9va3MgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdXNlciBieSBhIFRva2VuLCBKV1Qgb3IgYW55aGluZyBlbHNlLgoKVGhlIGBAQXV0aGAgZGVjb3JhdG9yIGNhbiBiZSB1c2VkIHRvIGFkZCB2YWx1ZXMgbGlrZSByb2xlcyBvciBwZXJtaXNzaW9ucyB0byBhbiBlbmRwb2ludC4gVmlhIGByZXBseS5jb250ZXh0LmNvbmZpZy5hdXRoYCB0aGUgYWRkZWQgdmFsdWUgY2FuIGJlIHVzZWQgaW4gZmFzdGlmeSBob29rcy4KCmBgYHRzCkBQb3N0KCkKQEF1dGgoJ2FkbWluJykKYXN5bmMgY3JlYXRlKGJvZHk6IENyZWF0ZVRvZG8pOiBQcm9taXNlPFRvZG9SZXNwb25zZT4gewp9CmBgYAoKYGBgdHMKZmFzdGlmeS5hZGRIb29rKCdvblJlcXVlc3QnLCBhc3luYyAocmVxdWVzdCwgcmVwbHkpID0+IHsKICBjb25zdCB7IGF1dGggfSA9IHJlcGx5LmNvbnRleHQuY29uZmlnOwogIGlmICghcmVxdWVzdC51c2VyLnJvbGVzLmluY2x1ZGVzKGF1dGgpKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoKTsKICB9Cn0pOwpgYGAKCjwvZGV0YWlscz4KCiMjIEFsdGVybmF0aXZlcyB0byBjb25zaWRlcgoKVGhlIGZvbGxvd2luZyBmcmFtZXdvcmtzIHdlcmUgdXNlZCBhcyBpbnNwaXJhdGlvbi4KCltOZXN0SlNdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZXN0anMvbmVzdCksIFtUcy5FRF0oaHR0cHM6Ly9naXRodWIuY29tL3RzZWRpby90c2VkKSwgW3Rzb2FdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlYXV0cnkvdHNvYSkK readmeEtag: '"2040d508a5097a4618112bdc03bf93188fd3d07d"' readmeLastModified: Sat, 17 Aug 2024 02:07:38 GMT repositoryId: 439055297 description: >- Delightful API development: Focused on developer experience and performance. created: '2021-12-16T16:23:45Z' updated: '2024-09-05T04:19:41Z' language: TypeScript archived: false stars: 12 watchers: 2 forks: 1 owner: Jnig logo: https://avatars.githubusercontent.com/u/3729585?v=4 license: MIT repoEtag: '"8cd26c36d9bc231fd48b48d8be1e44fd73bdd1e206b408596388872dc674d3fc"' repoLastModified: Thu, 05 Sep 2024 04:19:41 GMT category: - Data Validators - Parsers foundInMaster: true oldLocations: - https://github.com/fluxapi/fluxapi - source: openapi3 tags repository: https://github.com/foxel/openapi3-typescript-codegen v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpMy10eXBlc2NyaXB0LWNvZGVnZW4KClR5cGVTY3JpcHQgY29kZSBnZW5lcmF0b3IgZm9yIE9wZW5BUEkgMy4wLjAKCkluc3BpcmVkIGJ5IHByb2JsZW1zIHdpdGggW29wZW5hcGktY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb3BlbmFwaS1jb2RlZ2VuKQoKSWRlYSBpcyB0byBwcm92aWRlIG5hdGl2ZSBPcGVuQVBJIDMgZ2VuZXJhdG9yIHdpdGggYWxsIGxhbmd1YWdlLXNwZWNpZmljIGNvZGUgYmVpbmcgcHV0IGludG8gdGVtcGxhdGVzIHdpdGggaGVscCBvZiBnZW5lcmljIGhlbHBlcnMuCgpDdXJyZW50bHkgb25seSBUeXBlU2NyaXB0IGxhbmd1YWdlIGFuZCBBbmd1bGFyIGZyYW1ld29ya3MgYXJlIHN1cHBvcnRlZC4KCioqV29yayBpbiBwcm9ncmVzcyoqCgojIyBVc2FnZQoKIyMjIEluc3RhbGxpbmcKCmBucG0gaSAtZyBvcGVuYXBpMy10eXBlc2NyaXB0LWNvZGVnZW5gCgojIyMgQ0xJCgpgYGAKb3AzLWNvZGVnZW4ge29wZW5hcGktZGVmaW5pdGlvbi55YW1sfSBbb3B0aW9uc10KCk9wdGlvbnM6CiAgLW8sIC0tb3V0cHV0ICAgICBTcGVjaWZ5IG91dHB1dCBkaXJlY3RvcnkgICAgICAgICBbc3RyaW5nXSBbZGVmYXVsdDogIi4vb3V0LyJdCiAgLXQsIC0tdGVtcGxhdGVzICBTcGVjaWZ5IHRlbXBsYXRlcyBkaXJlY3RvcnkgKHBybyBvbmx5KSAgICAgICAgICAgICAgIFtzdHJpbmddCmBgYAoKIyMgTGltaXRhdGlvbnMgaW4gT3BlbkFQSSBzdXBwb3J0ICh0byBiZSByZW1vdmVkKQoKKiBzdXBwb3J0IG9ubHkgZm9yICdodHRwJyAoJ2Jhc2ljJyBhbmQgJ2JlYXJlcicpIGFuZCAnYXBpS2V5JyBTZWN1cml0eSBzY2hlbWFzLAoqIHBhcmFtZXRlcnMgZW5jb2RlciBzdXBwb3J0cyBvbmx5IHN0eWxlPSdmb3JtJyxleHBsb2RlPWZhbHNlIGVuY29kaW5nIHNjaGVtZSwKKiBvbmx5IEdFVCwgUE9TVCwgUFVULCBERUxFVEUgb3BlcmF0aW9ucyBjb2RlIGlzIGdlbmVyYXRlZCAK readmeEtag: '"273df9af006ceae91d646cf22328361b9cf1a654"' readmeLastModified: Tue, 15 Sep 2020 15:01:05 GMT repositoryId: 128030151 description: typescript codegen for OpenAPI 3 created: '2018-04-04T08:14:52Z' updated: '2024-05-04T22:28:50Z' language: TypeScript archived: false stars: 12 watchers: 3 forks: 10 owner: foxel logo: https://avatars.githubusercontent.com/u/1551926?v=4 repoEtag: '"38d7b7a579d4a631c0de168f8eba5d666e2cad187d291793c6616c41cb5dec6f"' repoLastModified: Sat, 04 May 2024 22:28:50 GMT foundInMaster: true category: Parsers id: 742ee9c0aa686f002325d9be63c367de - source: openapi3 tags repository: https://github.com/narazaka/swagger-serializer v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyOjpTZXJpYWxpemVyCgpbIVtBY3Rpb25zIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL05hcmF6YWthL3N3YWdnZXItc2VyaWFsaXplci93b3JrZmxvd3MvUnVieS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vTmFyYXpha2Evc3dhZ2dlci1zZXJpYWxpemVyL2FjdGlvbnMpClshW0dlbSBWZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcmIvc3dhZ2dlci1zZXJpYWxpemVyLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9yYi9zd2FnZ2VyLXNlcmlhbGl6ZXIpCgpTd2FnZ2VyIChPcGVuQVBJIDMpIHNjaGVtYSBiYXNlZCBzZXJpYWxpemVyLgoKIyMgSW5zdGFsbGF0aW9uCgpBZGQgdGhpcyBsaW5lIHRvIHlvdXIgYXBwbGljYXRpb24ncyBHZW1maWxlOgoKYGBgcnVieQpnZW0gJ3N3YWdnZXItc2VyaWFsaXplcicKYGBgCgpBbmQgdGhlbiBleGVjdXRlOgoKICAgICQgYnVuZGxlCgpPciBpbnN0YWxsIGl0IHlvdXJzZWxmIGFzOgoKICAgICQgZ2VtIGluc3RhbGwgc3dhZ2dlci1zZXJpYWxpemVyCgojIyBVc2FnZQoKIyMjIFJhaWxzIHdpdGggc3dhZ2dlci1kc2wKCnVzZSAiW3N3YWdnZXItZHNsXShodHRwczovL2dpdGh1Yi5jb20vTmFyYXpha2Evc3dhZ2dlci1kc2wpIiEKCkxvYWQgaXQgaW4gaW5pdGlhbGl6ZXIuCgpgYGBydWJ5CiMgY29uZmlnL2luaXRpYWxpemVycy9zd2FnZ2VyX3NlcmlhbGl6ZXIucmIKCmlmIFJhaWxzLmFwcGxpY2F0aW9uLmNvbmZpZy5lYWdlcl9sb2FkCiAgU3dhZ2dlcjo6RFNMLmN1cnJlbnQuY29uZmlnLmxhenlfZGVmaW5lX3BhdGhzID0gdHJ1ZQogIFJhaWxzLmFwcGxpY2F0aW9uLmNvbmZpZy5hZnRlcl9pbml0aWFsaXplIGRvCiAgICBSYWlscy5hcHBsaWNhdGlvbi5yZWxvYWRfcm91dGVzIQogICAgU3dhZ2dlcjo6RFNMLmN1cnJlbnQuZGVmaW5lX3BhdGhzIQogICAgU3dhZ2dlcjo6U2NoZW1hLmN1cnJlbnQgPSBTd2FnZ2VyOjpTY2hlbWEubmV3KFN3YWdnZXI6OkRTTC5jdXJyZW50LnJlc29sdmVkKQogIGVuZAplbHNlCiAgU3dhZ2dlcjo6U2NoZW1hLmN1cnJlbnQgPSBTd2FnZ2VyOjpTY2hlbWEubmV3KFN3YWdnZXI6OkRTTC5jdXJyZW50KQogIFN3YWdnZXI6OlNlcmlhbGl6ZXI6OlN0b3JlLmN1cnJlbnQuc2VyaWFsaXplX29wdGlvbnNbOnJlc29sdmVyXSA9IFN3YWdnZXI6OkRTTC5jdXJyZW50LnJlc29sdmVyCiAgU3dhZ2dlcjo6U2VyaWFsaXplcjo6U3RvcmUuY3VycmVudC5kZXNlcmlhbGl6ZV9vcHRpb25zWzpyZXNvbHZlcl0gPSBTd2FnZ2VyOjpEU0wuY3VycmVudC5yZXNvbHZlcgplbmQKYGBgCgpVc2UgaXQgaW4gY29udHJvbGxlcnMuCgpgYGBydWJ5CiMgYXBwL2NvbnRyb2xsZXJzL2FwcGxpY2F0aW9uX2NvbnRyb2xsZXIucmIKY2xhc3MgQXBwbGljYXRpb25Db250cm9sbGVyIDwgQWN0aW9uQ29udHJvbGxlcjo6QmFzZQogIGluY2x1ZGUgU3dhZ2dlcjo6U2VyaWFsaXplcjo6UmFpbHNDb250cm9sbGVyCiAgZXh0ZW5kIFN3YWdnZXI6OkRTTDo6UmFpbHNDb250cm9sbGVyCgogIGRlZiByZW5kZXJfb2soZGF0YSwgY29udGV4dCA9IG5pbCkKICAgIHJlbmRlcl9hc19zY2hlbWEgMjAwLCA6anNvbiwgZGF0YSwgY29udGV4dAogIGVuZAoKICBkZWYgcmVuZGVyX2JhZChkYXRhLCBjb250ZXh0ID0gbmlsKQogICAgcmVuZGVyX2FzX3NjaGVtYSA0MDAsIDpqc29uLCBkYXRhLCBjb250ZXh0CiAgZW5kCmVuZApgYGAKCmBgYHJ1YnkKIyBhcHAvY29udHJvbGxlcnMvdXNlcnNfY29udHJvbGxlci5yYgpjbGFzcyBVc2Vyc0NvbnRyb2xsZXIgPCBBcHBsaWNhdGlvbkNvbnRyb2xsZXIKICBzd2FnZ2VyIDppbmRleCBkbwogICAgcmVuZGVyIDIwMCBkbwogICAgICBhcnJheSEgeyBjcmVmISBVc2VyU2VyaWFsaXplciB9CiAgICBlbmQKICBlbmQKICBkZWYgaW5kZXgKICAgIHJlbmRlcl9vayBVc2VyLmFsbAogIGVuZAoKICBzd2FnZ2VyIDpzaG93IGRvCiAgICBwYXJhbXMgZG8KICAgICAgcGF0aCA6aWQsIHNjaGVtYTogOmludGVnZXIKICAgIGVuZAoKICAgIHJlbmRlciAyMDAgZG8KICAgICAgY3JlZiEgVXNlclNlcmlhbGl6ZXIKICAgIGVuZAogIGVuZAogIGRlZiBzaG93CiAgICByZW5kZXJfb2sgVXNlci5maW5kKHNjaGVtYV9wYXJhbXNbOmlkXSkKICBlbmQKCiAgc3dhZ2dlciA6Y3JlYXRlIGRvCiAgICBib2R5IGZvcm1hdDogWzpmb3JtLCA6anNvbl0gZG8KICAgICAgdXNlciA6b2JqZWN0IGRvCiAgICAgICAgbmFtZSA6c3RyaW5nCiAgICAgIGVuZAogICAgZW5kCiAgICAKICAgIHJlbmRlciAyMDAgZG8KICAgICAgY3JlZiEgVXNlclNlcmlhbGl6ZXIKICAgIGVuZAogICAgcmVuZGVyIDQwMCBkbwogICAgICBhZGRpdGlvbmFsUHJvcGVydGllcyEgZG8KICAgICAgICBhcnJheSEgeyBzdHJpbmchIH0KICAgICAgZW5kCiAgICBlbmQKICBlbmQKICBkZWYgY3JlYXRlCiAgICBAdXNlciA9IFVzZXIubmV3KHNjaGVtYV9wYXJhbXNbOnVzZXJdKQoKICAgIGlmIEB1c2VyLnNhdmUKICAgICAgcmVuZGVyX29rIEB1c2VyCiAgICBlbHNlCiAgICAgIHJlbmRlcl9iYWQgQHVzZXIuZXJyb3JzCiAgICBlbmQKICBlbmQKCiAgc3dhZ2dlciA6dXBkYXRlIGRvCiAgICBwYXJhbXMgZG8KICAgICAgcGF0aCA6aWQsIHNjaGVtYTogOnN0cmluZwogICAgZW5kCgogICAgYm9keSBmb3JtYXQ6IFs6Zm9ybSwgOmpzb25dIGRvCiAgICAgIHVzZXIgOm9iamVjdCBkbwogICAgICAgIG5hbWUgOnN0cmluZwogICAgICBlbmQKICAgIGVuZAogICAgCiAgICByZW5kZXIgMjAwIGRvCiAgICAgIGNyZWYhIFVzZXJTZXJpYWxpemVyCiAgICBlbmQKICAgIHJlbmRlciA0MDAgZG8KICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXMhIGRvCiAgICAgICAgYXJyYXkhIHsgc3RyaW5nISB9CiAgICAgIGVuZAogICAgZW5kCiAgZW5kCiAgZGVmIHVwZGF0ZQogICAgQHVzZXIgPSBVc2VyLmZpbmQoc2NoZW1hX3BhcmFtc1s6aWRdKQoKICAgIGlmIEB1c2VyLnVwZGF0ZShzY2hlbWFfcGFyYW1zWzp1c2VyXSkKICAgICAgcmVuZGVyX29rIEB1c2VyCiAgICBlbHNlCiAgICAgIHJlbmRlcl9iYWQgQHVzZXIuZXJyb3JzCiAgICBlbmQKICBlbmQKCiAgc3dhZ2dlciA6ZGVzdHJveSBkbwogICAgcGFyYW1zIGRvCiAgICAgIHBhdGggOmlkLCBzY2hlbWE6IDpzdHJpbmcKICAgIGVuZAogIGVuZAogIGRlZiBkZXN0cm95CiAgICBAdXNlci5kZXN0cm95IQogICAgaGVhZCA6bm9fY29udGVudAogIGVuZAplbmQKYGBgCgpXb3VsZCB5b3Ugd2FudCB0byBjdXN0b21pemUgc2VyaWFsaXphdGlvbj8KCmBgYHJ1YnkKIyBhcHAvc2VyaWFsaXplcnMvYmFzZV9zZXJpYWxpemVyLnJiCmNsYXNzIEJhc2VTZXJpYWxpemVyCiAgaW5jbHVkZSBTd2FnZ2VyOjpTZXJpYWxpemVyCiAgZXh0ZW5kIFN3YWdnZXI6OkRTTDo6U2VyaWFsaXplcgplbmQKYGBgCgpgYGBydWJ5CiMgYXBwL3NlcmlhbGl6ZXJzL3VzZXJfc2VyaWFsaXplci5yYgpjbGFzcyBVc2VyU2VyaWFsaXplciA8IEJhc2VTZXJpYWxpemVyCiAgc3dhZ2dlciBkbwogICAgaWQgOmludGVnZXIKICAgIG5hbWUgOnN0cmluZywgb3B0aW9uYWw6IHRydWUKICBlbmQKCiAgZGVmIG5hbWUKICAgICIje0Btb2RlbC5uYW1lfSEhISEiCiAgZW5kCmVuZApgYGAKCk5vdyB5b3UgY2FuIGdldCBgeyAiaWQiID0+IDQyLCAibmFtZSIgPT4gIm1lISEhISIgfWAuCgpUaGlzIHNlcmlhbGl6ZXIgY2xhc3MgZGV0ZWN0aW9uIHVzZXMgdGhlIHNjaGVtYSdzIGB0aXRsZWAga2V5LgpJZiB5b3Ugd2FudCB0byB1c2UgYEZvbzo6QmFyU2VyaWFsaXplcmAsIHNldCBgRm9vLUJhcmAgdG8gYHRpdGxlYCBrZXkuCgpUaGUga2V5IGlzIGNvbmZpZ3VyYWJsZSBieQoKYGBgcnVieQojIGluIGNvbmZpZy9pbml0aWFsaXplcnMvc3dhZ2dlcl9zZXJpYWxpemVyLnJiClN3YWdnZXI6OlNlcmlhbGl6ZXI6OlN0b3JlLmN1cnJlbnQuc2VyaWFsaXplX29wdGlvbnNbOmluamVjdF9rZXldID0gIm15X2luamVjdF9rZXkiClN3YWdnZXI6OlNlcmlhbGl6ZXI6OlN0b3JlLmN1cnJlbnQuZGVzZXJpYWxpemVfb3B0aW9uc1s6aW5qZWN0X2tleV0gPSAibXlfaW5qZWN0X2tleSIKU3dhZ2dlcjo6RFNMLmN1cnJlbnQuY29uZmlnLmluamVjdF9rZXkgPSAibXlfaW5qZWN0X2tleSIKYGBgCgpTb21ldGltZXMgbW9kZWwgbmVlZHMgZGlyZWN0IHNlcmlhbGl6ZS4KCmBgYHJ1YnkKIyBhcHAvbW9kZWxzL2FwcGxpY2F0aW9uX3JlY29yZC5yYgpjbGFzcyBBcHBsaWNhdGlvblJlY29yZCA8IEFjdGl2ZVJlY29yZDo6QmFzZQogIHNlbGYuYWJzdHJhY3RfY2xhc3MgPSB0cnVlCiAgCiAgaW5jbHVkZSBTd2FnZ2VyOjpTZXJpYWxpemVyOjpNb2RlbAplbmQKYGBgCgpOb3cgeW91IGNhbiBnZXQgc2VyaWFsaXplZCByZXN1bHQgYnkgYHAgVXNlci5maXJzdC5zZXJpYWxpemVgLgoKIyMjIFJhaWxzIHdpdGggcmF3IHNjaGVtYQoKV3JpdGUgeW91ciBPcGVuQVBJIHNwZWMuCgpgYGB5YW1sCiMgc3dhZ2dlci55bWwKb3BlbmFwaTogMy4wLjAKaW5mbzoKICB0aXRsZTogZXhhbXBsZSBhcGkKICB2ZXJzaW9uOiAwLjEuMApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBVc2VyOiAmVXNlcgogICAgICB0aXRsZTogVXNlcgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOiBbaWRdCnBhdGhzOgogIC91c2VyczoKICAgIGdldDoKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIGl0ZW1zOiAqVXNlcgogIC91c2Vycy97aWR9OgogICAgZ2V0OgogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6ICpVc2VyCgpgYGAKCkxvYWQgaXQgaW4gaW5pdGlhbGl6ZXIuCgpgYGBydWJ5CiMgY29uZmlnL2luaXRpYWxpemVycy9zd2FnZ2VyX3NlcmlhbGl6ZXIucmIKClN3YWdnZXI6OlNjaGVtYS5sb2FkX2ZpbGVfdG9fY3VycmVudCgKICBfX2Rpcl9fICsgIi8uLi8uLi9zd2FnZ2VyLnltbCIsCikKYGBgCgpVc2UgaXQgaW4gY29udHJvbGxlcnMuCgpgYGBydWJ5CiMgYXBwL2NvbnRyb2xsZXJzL2FwcGxpY2F0aW9uX2NvbnRyb2xsZXIucmIKY2xhc3MgQXBwbGljYXRpb25Db250cm9sbGVyIDwgQWN0aW9uQ29udHJvbGxlcjo6QmFzZQogIGluY2x1ZGUgU3dhZ2dlcjo6U2VyaWFsaXplcjo6UmFpbHNDb250cm9sbGVyCgogIGRlZiByZW5kZXJfb2soZGF0YSwgY29udGV4dCA9IG5pbCkKICAgIHJlbmRlcl9hc19zY2hlbWEgMjAwLCA6anNvbiwgZGF0YSwgY29udGV4dAogIGVuZAplbmQKYGBgCgpgYGBydWJ5CiMgYXBwL2NvbnRyb2xsZXJzL3VzZXJzX2NvbnRyb2xsZXIucmIKY2xhc3MgVXNlcnNDb250cm9sbGVyIDwgQXBwbGljYXRpb25Db250cm9sbGVyCiAgZGVmIGluZGV4CiAgICByZW5kZXJfb2sgVXNlci5hbGwKICBlbmQKCiAgZGVmIHNob3cKICAgIHJlbmRlcl9vayBVc2VyLmZpbmQocGFyYW1zWzppZF0pCiAgZW5kCmVuZApgYGAKCldvdWxkIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSBzZXJpYWxpemF0aW9uPwoKYGBgcnVieQojIGFwcC9zZXJpYWxpemVycy9iYXNlX3NlcmlhbGl6ZXIucmIKY2xhc3MgQmFzZVNlcmlhbGl6ZXIKICBpbmNsdWRlIFN3YWdnZXI6OlNlcmlhbGl6ZXIKZW5kCmBgYAoKYGBgcnVieQojIGFwcC9zZXJpYWxpemVycy91c2VyX3NlcmlhbGl6ZXIucmIKY2xhc3MgVXNlclNlcmlhbGl6ZXIgPCBCYXNlU2VyaWFsaXplcgogIGRlZiBuYW1lCiAgICAiI3tAbW9kZWwubmFtZX0hISEhIgogIGVuZAplbmQKYGBgCgpOb3cgeW91IGNhbiBnZXQgYHsgImlkIiA9PiA0MiwgIm5hbWUiID0+ICJtZSEhISEiIH1gLgoKU29tZXRpbWVzIG1vZGVsIG5lZWRzIGRpcmVjdCBzZXJpYWxpemUuCgpgYGBydWJ5CiMgYXBwL21vZGVscy9hcHBsaWNhdGlvbl9yZWNvcmQucmIKY2xhc3MgQXBwbGljYXRpb25SZWNvcmQgPCBBY3RpdmVSZWNvcmQ6OkJhc2UKICBzZWxmLmFic3RyYWN0X2NsYXNzID0gdHJ1ZQogIAogIGluY2x1ZGUgU3dhZ2dlcjo6U2VyaWFsaXplcjo6TW9kZWwKZW5kCmBgYAoKTm93IHlvdSBjYW4gZ2V0IHNlcmlhbGl6ZWQgcmVzdWx0IGJ5IGBwIFVzZXIuZmlyc3Quc2VyaWFsaXplYC4KCiMjIyBAY29udGV4dAoKQ29sbGVjdGlvbiBzZXJpYWxpemF0aW9uIHNvbWV0aW1lcyBuZWVkcyBjb250ZXh0IGRhdGEgZm9yIGF2b2lkaW5nIE4rMSBhY2Nlc3Mgb3Igc29tZSBvdGhlciByZWFzb24uCgpgcmVuZGVyX2FzX3NjaGVtYWAncyA0dGggcGFyYW1ldGVyIGlzIHRoZSBjb250ZXh0IHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gc2VyaWFsaXplcnMgYEBjb250ZXh0YC4KCmBgYHJ1YnkKIyBhcHAvc2VyaWFsaXplcnMvaXRlbV9zZXJpYWxpemVyLnJiCmNsYXNzIEl0ZW1TZXJpYWxpemVyIDwgQmFzZVNlcmlhbGl6ZXIKICBzd2FnZ2VyIGRvCiAgICBpZCA6aW50ZWdlcgogICAgcmF0ZSA6aW50ZWdlcgogIGVuZAoKICBkZWYgcmF0ZQogICAgQGNvbnRleHRbOnJhdGVzXVtpZF0KICBlbmQKZW5kCgojIGFwcC9jb250cm9sbGVycy9pdGVtc19jb250cm9sbGVyLnJiCmNsYXNzIEl0ZW1zQ29udHJvbGxlciA8IEFwcGxpY2F0aW9uQ29udHJvbGxlcgogIHN3YWdnZXIgOmluZGV4IGRvCiAgICByZW5kZXIgMjAwIGRvCiAgICAgIGFycmF5ISBkbwogICAgICAgIGNyZWYhIEl0ZW1TZXJpYWxpemVyCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCgogIGRlZiBpbmRleAogICAgaXRlbXMgPSBJdGVtLmFsbAogICAgcmF0ZXMgPSBJdGVtUmF0ZS5jYWxjX2l0ZW1fcmF0ZXMoaXRlbXMpCiAgICByZW5kZXJfb2sgaXRlbXMsIHsgcmF0ZXM6IHJhdGVzIH0KICBlbmQKZW5kCmBgYAoKIyMgRGV2ZWxvcG1lbnQKCkFmdGVyIGNoZWNraW5nIG91dCB0aGUgcmVwbywgcnVuIGBiaW4vc2V0dXBgIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzLiBUaGVuLCBydW4gYHJha2Ugc3BlY2AgdG8gcnVuIHRoZSB0ZXN0cy4gWW91IGNhbiBhbHNvIHJ1biBgYmluL2NvbnNvbGVgIGZvciBhbiBpbnRlcmFjdGl2ZSBwcm9tcHQgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBleHBlcmltZW50LgoKVG8gaW5zdGFsbCB0aGlzIGdlbSBvbnRvIHlvdXIgbG9jYWwgbWFjaGluZSwgcnVuIGBidW5kbGUgZXhlYyByYWtlIGluc3RhbGxgLiBUbyByZWxlYXNlIGEgbmV3IHZlcnNpb24sIHVwZGF0ZSB0aGUgdmVyc2lvbiBudW1iZXIgaW4gYHZlcnNpb24ucmJgLCBhbmQgdGhlbiBydW4gYGJ1bmRsZSBleGVjIHJha2UgcmVsZWFzZWAsIHdoaWNoIHdpbGwgY3JlYXRlIGEgZ2l0IHRhZyBmb3IgdGhlIHZlcnNpb24sIHB1c2ggZ2l0IGNvbW1pdHMgYW5kIHRhZ3MsIGFuZCBwdXNoIHRoZSBgLmdlbWAgZmlsZSB0byBbcnVieWdlbXMub3JnXShodHRwczovL3J1YnlnZW1zLm9yZykuCgojIyBDb250cmlidXRpbmcKCkJ1ZyByZXBvcnRzIGFuZCBwdWxsIHJlcXVlc3RzIGFyZSB3ZWxjb21lIG9uIEdpdEh1YiBhdCBodHRwczovL2dpdGh1Yi5jb20vTmFyYXpha2Evc3dhZ2dlci1zZXJpYWxpemVyLgo= readmeEtag: '"c78406061fe60b821c3e0b80cbdf6a792e09da4e"' readmeLastModified: Mon, 21 Nov 2022 07:45:36 GMT repositoryId: 224905174 description: Swagger (OpenAPI 3) schema based serializer for ruby created: '2019-11-29T18:34:41Z' updated: '2022-11-18T11:26:05Z' language: Ruby archived: false stars: 12 watchers: 4 forks: 2 owner: Narazaka logo: https://avatars.githubusercontent.com/u/1712548?v=4 license: Zlib repoEtag: '"0c44adcb4c1ddaf8a33179e75a519850a8e71beed15c92f006c0f729e941512e"' repoLastModified: Fri, 18 Nov 2022 11:26:05 GMT foundInMaster: true category: Code Generators id: 68fbc50ba4ab0b9974f93a27abd30aea - source: openapi3 tags repository: https://github.com/amishfaldu/swagger-docs v3: true id: 634e51a90d74b30e957b1b9220cc414b repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIERvY3MKClRoaXMgbGlicmFyeSBoZWxwcyB5b3UgdG8gYnVpbGQgc3dhZ2dlciBhcGkgZG9jcyBoYXNzbGUgZnJlZSBieSB1c2luZyBkZWNvcmF0b3JzLCByZWZsZWN0IG1ldGFkYXRhIGFwaS4KCiMjIERvY3VtZW50YXRpb24KCkZvciBtb3JlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gbGlicmFyeSB1c2FnZSBhbmQgYXBpIHJlZmVyZW5jZXMsIGhlYWQgb3ZlciB0byBwcm9qZWN0J3MgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9BbWlzaEZhbGR1L3N3YWdnZXItZG9jcy93aWtpKS4KClRvIGZpbmQgYW5zd2VycyBmb3IgeW91ciBxdWVzdGlvbiwgYXNrIHF1ZXN0aW9ucywgYWRkIHN1Z2dlc3Rpb25zIG9yIGlkZWFzIHRvIGltcHJvdmUgdGhpcyBwcm9qZWN0LCBlbmdhZ2UgaW4gZ2VuZXJhbCBkaXNjdXNzaW9uIGhlYWQgb3ZlciB0byBwcm9qZWN0J3MgW2Rpc2N1c3Npb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9BbWlzaEZhbGR1L3N3YWdnZXItZG9jcy9kaXNjdXNzaW9ucykuCgojIyBDdXJyZW50IHN0YXRlIC8gcHJvYmxlbXMgZmFjZWQKClRvIHdyaXRlIHN3YWdnZXIgYXBpIGRvY3MgZm9yIHdlYiBhcHBzIGRldmVsb3BlZCB1c2luZyBub2RlLmpzIHdpdGhvdXQgdXNlIG9mIGZyYW1ld29ya3MgbGlrZSBuZXN0LmpzLCB5b3Ugd2lsbCBuZWVkIHRvIHdyaXRlIGFubm90YXRlZCBqc2RvYyBhbmQgc2Nyb2xsIHRob3VnaCBjb25mdXNpbmcgc3dhZ2dlciBkb2N1bWVudGF0aW9uIHRvIGZpbmQgcmlnaHQgc3BlY2lmaWNhdGlvbiBzeW50YXggZm9yIGFwaSByb3V0ZXMuCgojIyBQcm9ibGVtcyBzb2x2ZWQKCldoYXQgeW91IGFjaGVpdmUgYnkgdXNpbmcgdGhpcyBsaWJyYXJ5CgoxLiBRdWljayBzd2FnZ2VyIGFwaSBkb2NzLiA6d2hpdGVfY2hlY2tfbWFyazoKCjIuIEF1dG8tZ2VuZXJhdGUgYXBpIGRvY3MgZm9yIHRoZSByb3V0ZXMgeW91IHdyaXRlIGFuZCBhdHRhY2ggdG8gd2ViIGZyYW1ld29ya3MuIDp3aGl0ZV9jaGVja19tYXJrOgoKMy4gQ2hhbmdlcyBtYWRlIHRvIGFwaSBhbHNvIHJlZmxlY3RzIGluIHN3YWdnZXIgYXBpIGRvY3Mgd2l0aG91dCBtb2RpZnlpbmcgZnJ1c3RyYXRpbmcgZG9jIGNvZGUuIDp3aGl0ZV9jaGVja19tYXJrOgoKNC4gQXV0by1kZXRlY3QgcGFyYW1ldGVycywgYXV0aGVudGljYXRpb24sIHJlcXVlc3QgYm9keSwgcmVzcG9uc2UgYm9keSBmcm9tIHRoZSBhcGkgcm91dGVzIGRlZmluZWQuIDp3aGl0ZV9jaGVja19tYXJrOgoKNS4gTWluaW1hbCBkZXBlbmRlbmN5IGxpYnJhcnkgZm9yIGdlbmVyYXRpbmcgc3dhZ2dlciBhcGkgZG9jcy4gOndoaXRlX2NoZWNrX21hcms6CgojIyBJbXBsZW1lbnRhdGlvbgoKVGhpcyBsaWJyYXJ5IGltcGxlbWVudHMgZGVjb3JhdG9ycyBmb3IgZGVmaW5pbmcgYXBpIHJvdXRlcywgcmVsZWN0IG1ldGFkYXRhIGFwaXMgdG8gZ2VuZXJhdGUgc3dhZ2dlciBhcGkgZG9jcwoKIyMgUmVmZXJlbmNlcwoKRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gZGVjb3JhdG9ycywgbWV0YWRhdGEgYW5kIHJlZmxlY3Rpb24KCjEuIFtEZWNvcmF0b3JzICYgbWV0YWRhdGEgcmVmbGVjdGlvbiBpbiBUeXBlc2NyaXB0XShodHRwOi8vYmxvZy53b2xrc29mdHdhcmUuY29tL2RlY29yYXRvcnMtcmVmbGVjdGlvbi1qYXZhc2NyaXB0LXR5cGVzY3JpcHQpCg== readmeEtag: '"27f6347e83ce936caa691cb0edefe219a840717e"' readmeLastModified: Sun, 11 Feb 2024 07:11:00 GMT repositoryId: 528825705 description: A node.js package used to build swagger docs hassle free created: '2022-08-25T11:45:33Z' updated: '2024-03-19T23:23:52Z' language: TypeScript archived: false stars: 12 watchers: 1 forks: 0 owner: AmishFaldu logo: https://avatars.githubusercontent.com/u/46478801?v=4 license: Apache-2.0 repoEtag: '"a7acf3b439883551cb9b61af5712f1892741bb9736ad0a5acf27f898f1063adf"' repoLastModified: Tue, 19 Mar 2024 23:23:52 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/yapily/yapily-sdk-java v3: true id: 41fae7ca06526a669b911fc4db371eb6 repositoryMetadata: base64Readme: >- IyBZYXBpbHkgSmF2YSBTREsKWyFbR2l0SHViIHZlcnNpb25dKGh0dHBzOi8vZDI1bGNpcHppajE3ZC5jbG91ZGZyb250Lm5ldC9iYWRnZS5zdmc/aWQ9Z2gmdHlwZT02JnY9Mi4xMy4xJngyPTApXShodHRwOi8vYmFkZ2UuZnVyeS5pby9naC9ib2VubmVtYW5uJTJGYmFkZ2VzKQoKVGhpcyBTREsgbGlicmFyeSB3YXMgZ2VuZXJhdGVkIHVzaW5nIFtPcGVuQXBpIEdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikuIFRoZSBTREsgY2FuIGJlIHVzZWQgYXMgYSBtb2R1bGUgaW4geW91ciBjb2RlIGFuZCB0aGUgZXhhbXBsZXMgZGVtb25zdHJhdGUgaG93IHRvIGNvbm5lY3QgdG8gZmluYW5jaWFsIGluc3RpdHV0aW9ucyBpbnRlZ3JhdGVkIHdpdGggWWFwaWx5LgoKIyMgUmVxdWlyZW1lbnRzCgpUbyBjb25uZWN0IHRvIHRoZSBZYXBpbHkgQVBJLCB5b3Ugd2lsbCBuZWVkIHRvIHJlZ2lzdGVyIHlvdXIgCmFwcGxpY2F0aW9uIGF0IFtodHRwczovL2Rhc2hib2FyZC55YXBpbHkuY29tXSgpLgoKU3BlY2lmeSB0aGUgZmluYW5jaWFsIGluc3RpdHV0aW9ucyB5b3Ugd2FudCB0byB3b3JrIHdpdGggYW5kIHNhdmUgeW91ciBhcHBsaWNhdGlvbi4gWW91IHdpbGwgdGhlbiBiZSBwcm9tcHRlZCB0byBkb3dubG9hZCB5b3VyIGFwcGxpY2F0aW9uIGNyZWRlbnRpYWxzLiAKVGhlc2UgYXBwbGljYXRpb24gY3JlZGVudGlhbHMgY2FuIHRoZW4gYmUgdXNlZCB0byBhdXRob3Jpc2UgeW91ciByZXF1ZXN0cyBhZ2FpbnN0IHRoZSBbWWFwaWx5IEFQSV0oaHR0cHM6Ly9kb2NzLnlhcGlseS5jb20vI2dldC1zdGFydGVkKS4KCiMjIEluc3RhbGxhdGlvbgoKVGhlIFNESyBpcyBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBZYXBpbHkgbWF2ZW4gcmVwb3NpdG9yeSBhbmQgCmNhbiBiZSBpbmNsdWRlZCBpbiB5b3VyIHByb2plY3QgCmJ5IGFkZGluZyBpdCB0byB5b3VyIGRlcGVuZGVuY2llcwoKIyMjIyBNYXZlbgoKUmVwb3NpdG9yeToKCmBgYHhtbAo8cmVwb3NpdG9yaWVzPgogICA8IS0tIG90aGVyIHJlcG9zLS0+CiAgIDxyZXBvc2l0b3J5PgogICAgICAgPGlkPnlhcGlseS1yZXBvPC9pZD4KICAgICAgIDxuYW1lPnlhcGlseS1yZXBvPC9uYW1lPgogICAgICAgPHVybD5odHRwOi8vbWF2ZW4ueWFwaWx5LmNvbS88L3VybD4KICAgPC9yZXBvc2l0b3J5Pgo8L3JlcG9zaXRvcmllcz4KYGBgCgpEZXBlbmRlbmN5OgoKYGBgeG1sCjxkZXBlbmRlbmNpZXM+CiAgIDwhLS0gb3RoZXIgZGVwZW5kZW5jaWVzIC0tPgogICA8ZGVwZW5kZW5jeT4KICAgICAgIDxncm91cElkPnlhcGlseTwvZ3JvdXBJZD4KICAgICAgIDxhcnRpZmFjdElkPnlhcGlseS1zZGs8L2FydGlmYWN0SWQ+CiAgICAgICA8dmVyc2lvbj4yLjEzLjE8L3ZlcnNpb24+CiAgIDwvZGVwZW5kZW5jeT4KPC9kZXBlbmRlbmNpZXM+CmBgYAoKIyMjIyBHcmFkbGUKClJlcG9zaXRvcnk6CgpgYGBncm9vdnkKcmVwb3NpdG9yaWVzIHsKICAgIC8vIG90aGVyIHJlcG9zCiAgICBtYXZlbiB7CiAgICAgICAgdXJsICJodHRwOi8vbWF2ZW4ueWFwaWx5LmNvbS8iCiAgICB9Cn0KYGBgCgpEZXBlbmRlbmN5OgoKYGBgZ3Jvb3Z5CmNvbXBpbGUgZ3JvdXA6ICd5YXBpbHknLCBuYW1lOiAneWFwaWx5LXNkaycsIHZlcnNpb246ICcyLjEzLjEnCmBgYAoKIyMjIyBEb3dubG9hZCBKQVIKClRoZSBKQVIgY2FuIGFsc28gYmUgZG93bmxvYWRlZCBmcm9tIGEgdGFnZ2VkIHJlbGVhc2UsIApvciB0aGlzIHByb2plY3QgY2FuIGJlIGNsb25lZC9kb3dubG9hZGVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgCmxpYnJhcnkgSkFSIHRvIGJlIGluY2x1ZGVkIGluIHlvdXIgcHJvamVjdC4KCiMjIFVzYWdlCgpTYW1wbGUgdXNhZ2VzIG9mIHRoZSBTREsgY2FuIGJlIHNlZW4gaW4gdGhlIGBleGFtcGxlc2AgZm9sZGVyLgoKLSBDb25maWd1cmUgdGhlIGRlZmF1bHQgYXBpIGNsaWVudAoKYGBgamF2YQpBcGlDbGllbnQgZGVmYXVsdENsaWVudCA9IENvbmZpZ3VyYXRpb24uZ2V0RGVmYXVsdEFwaUNsaWVudCgpOwovLyBDb25maWd1cmUgdGhlIEFQSSBhdXRoZW50aWNhdGlvbgpIdHRwQmFzaWNBdXRoIGJhc2ljQXV0aCA9IChIdHRwQmFzaWNBdXRoKSBkZWZhdWx0Q2xpZW50LmdldEF1dGhlbnRpY2F0aW9uKCJiYXNpY0F1dGgiKTsKLy8gUmVwbGFjZSB0aGVzZSBkZW1vIGNvbnN0YW50cyB3aXRoIHlvdXIgYXBwbGljYXRpb24gY3JlZGVudGlhbHMKYmFzaWNBdXRoLnNldFVzZXJuYW1lKEFQUExJQ0FUSU9OX0lEKTsKYmFzaWNBdXRoLnNldFBhc3N3b3JkKEFQUExJQ0FUSU9OX1NFQ1JFVCk7CmBgYAoKLSBPciBjb25maWd1cmUgYSBuZXcgb25lIGZvciBtdWx0aXBsZSBhcHBsaWNhdGlvbiBjYXNlcyAKCmBgYGphdmEKQXBpQ2xpZW50IGFwcGxpY2F0aW9uQ2xpZW50ID0gbmV3IEFwaUNsaWVudCgpOwovLyBDb25maWd1cmUgdGhlIEFQSSBhdXRoZW50aWNhdGlvbgpIdHRwQmFzaWNBdXRoIGJhc2ljQXV0aCA9IChIdHRwQmFzaWNBdXRoKSBhcHBsaWNhdGlvbkNsaWVudC5nZXRBdXRoZW50aWNhdGlvbigiYmFzaWNBdXRoIik7Ci8vIFJlcGxhY2UgdGhlc2UgZGVtbyBjb25zdGFudHMgd2l0aCB5b3VyIGFwcGxpY2F0aW9uIGNyZWRlbnRpYWxzCmJhc2ljQXV0aC5zZXRVc2VybmFtZShBUFBMSUNBVElPTl9JRCk7CmJhc2ljQXV0aC5zZXRQYXNzd29yZChBUFBMSUNBVElPTl9TRUNSRVQpOwpJbnN0aXR1dGlvbnNBcGkgaW5zdGl0dXRpb25zQXBpID0gbmV3IEluc3RpdHV0aW9uc0FwaSgpOwppbnN0aXR1dGlvbnNBcGkuc2V0QXBpQ2xpZW50KGFwcGxpY2F0aW9uQ2xpZW50KTsKYGBgCgotIFJldHJpZXZlIGEgbGlzdCBvZiBhdmFpbGFibGUgZmluYW5jaWFsIGluc3RpdHV0aW9ucyB0byBjb25uZWN0IHRvCgpgYGBqYXZhCkluc3RpdHV0aW9uc0FwaSBpbnN0aXR1dGlvbnNBcGkgPSBuZXcgSW5zdGl0dXRpb25zQXBpKCk7Ckxpc3Q8SW5zdGl0dXRpb24+IGluc3RpdHV0aW9ucyA9IGluc3RpdHV0aW9uc0FwaS5nZXRJbnN0aXR1dGlvbnNVc2luZ0dFVCgpLmdldERhdGEoKTsKYGBgCgotIENyZWF0aW5nIHVzZXJzIGFuZCByZXRyaWV2aW5nIHVzZXJzIGZvciB5b3VyIGFwcGxpY2F0aW9uIHJlZ2lzdGVyZWQgaW4gdGhlIFlhcGlseSBEYXNoYm9hcmQKYGBgamF2YQpmaW5hbCBBcHBsaWNhdGlvblVzZXJzQXBpIGFwcGxpY2F0aW9uVXNlcnNBcGkgPSBuZXcgQXBwbGljYXRpb25Vc2Vyc0FwaSgpOwpOZXdBcHBsaWNhdGlvblVzZXIgZXhhbXBsZVVzZXIgPSBuZXcgTmV3QXBwbGljYXRpb25Vc2VyKCk7CmV4YW1wbGVVc2VyLnNldEFwcGxpY2F0aW9uVXNlcklkKCJqYXZhLXNka0B5YXBpbHkuY29tIik7CmFwcGxpY2F0aW9uVXNlcnNBcGkuYWRkVXNlclVzaW5nUE9TVChleGFtcGxlVXNlcik7CgpMaXN0PEFwcGxpY2F0aW9uVXNlcj4gdXNlcnMgPSBhcHBsaWNhdGlvblVzZXJzQXBpLmdldFVzZXJzVXNpbmdHRVQoKTsKYGBgCgotIENyZWF0ZSBhbiBhdXRob3JpemF0aW9uIHVybCBpbiBvcmRlciBmb3IgeW91ciB1c2VycyB0byBnaXZlIGNvbnNlbnQgb24gYWNjZXNzaW5nIHRoZWlyIGFjY291bnQgZGF0YS4gCgpgYGBqYXZhCmZpbmFsIEFjY291bnRzQXBpIGFjY291bnRzQXBpID0gbmV3IEFjY291bnRzQXBpKCk7CkFjY291bnRBdXRob3Jpc2F0aW9uUmVxdWVzdCBhY2NvdW50QXV0aG9yaXNhdGlvblJlcXVlc3QgPSBuZXcgQWNjb3VudEF1dGhvcmlzYXRpb25SZXF1ZXN0KCk7CmFjY291bnRBdXRob3Jpc2F0aW9uUmVxdWVzdC5zZXRBcHBsaWNhdGlvblVzZXJJZChhcHBsaWNhdGlvblVzZXJJZCk7CmFjY291bnRBdXRob3Jpc2F0aW9uUmVxdWVzdC5zZXRJbnN0aXR1dGlvbklkKGluc3RpdHV0aW9uSWQpOwovKioKKiBVc2UgdGhlIGRlZmF1bHRzCiovCmFjY291bnRBdXRob3Jpc2F0aW9uUmVxdWVzdC5zZXRBY2NvdW50UmVxdWVzdChuZXcgQWNjb3VudFJlcXVlc3QoKSk7CkFwaVJlc3BvbnNlT2ZBdXRob3Jpc2F0aW9uUmVxdWVzdFJlc3BvbnNlIGF1dGhvcml6YXRpb25SZXNwb25zZSA9IGFjY291bnRzQXBpLmluaXRpYXRlQWNjb3VudFJlcXVlc3RVc2luZ1BPU1QoYWNjb3VudEF1dGhvcmlzYXRpb25SZXF1ZXN0LCBudWxsLCBudWxsLCBudWxsKTsKU3RyaW5nIGRpcmVjdFVybCA9IGF1dGhvcml6YXRpb25SZXNwb25zZS5nZXREYXRhKCkuZ2V0QXV0aG9yaXNhdGlvblVybCgpOwpgYGAKCi0gR2V0IHRoZSBtb3N0IHJlc2VudCBDb25zZW50IGZvciB0aGUgY29uZmlndXJlZCB1c2VyIGFuZCBpbnN0aXR1dGlvbi4gTWFrZSBzdXJlIHRvIGNoZWNrIHRoYXQgdGhlIENvbnNlbnQgaXMgQVVUSE9SSVpFRCBvdGhlcndpc2UgZmFpbCB0aGUgcmVxdWVzdApgYGBqYXZhCkNvbnNlbnQgY29uc2VudCA9IGNvbnNlbnRzQXBpLmdldENvbnNlbnRzVXNpbmdHRVQoCiAgICAgICAgQ29sbGVjdGlvbnMuc2luZ2xldG9uTGlzdChhcHBsaWNhdGlvblVzZXJJZCksCiAgICAgICAgQ29sbGVjdGlvbnMuZW1wdHlMaXN0KCksCiAgICAgICAgQ29sbGVjdGlvbnMuc2luZ2xldG9uTGlzdChpbnN0aXR1dGlvbklkKSwKICAgICAgICBDb2xsZWN0aW9ucy5lbXB0eUxpc3QoKSwKICAgICAgICBudWxsLAogICAgICAgIG51bGwsCiAgICAgICAgMSwKICAgICAgICBudWxsKS5nZXREYXRhKCkuc3RyZWFtKCkKICAgICAgICAuZmlsdGVyKGMgLT4gYy5nZXRTdGF0dXMoKS5lcXVhbHMoQ29uc2VudC5TdGF0dXNFbnVtLkFVVEhPUklaRUQpKQogICAgICAgIC5maW5kRmlyc3QoKQogICAgICAgIC5vckVsc2VUaHJvdygoKSAtPiBuZXcgUnVudGltZUV4Y2VwdGlvbihTdHJpbmcuZm9ybWF0KCJObyB2YWxpZCBjb25zZW50IHRva2VuIHByZXNlbnQgZm9yIGFwcGxpY2F0aW9uIHVzZXIgJXMiLCBhcHBsaWNhdGlvblVzZXJJZCkpKTsKCmBgYAogCi0gUHJvdmlkaW5nIHRoYXQgdGhlIHVzZXIgaGFzIGdpdmVuIGNvbnNlbnQgYW5kIHlvdSBoYXZlIGFuIEFVVEhPUklaRUQgQ29uc2VudCwgb2J0YWluIHRoZSB1c2VyIGFjY291bnQgZGV0YWlscyB1c2luZyB0aGUgY29uc2VudCB0b2tlbgoKYGBgamF2YQpTdHJpbmcgY29uc2VudFRva2VuID0gY29uc2VudC5nZXRDb25zZW50VG9rZW4oKTsKQXBpTGlzdFJlc3BvbnNlT2ZBY2NvdW50IGFjY291bnRzUmVzcG9uc2UgPSBhY2NvdW50c0FwaS5nZXRBY2NvdW50c1VzaW5nR0VUKGNvbnNlbnRUb2tlbik7Ckxpc3Q8QWNjb3VudD4gYWNjb3VudHMgPSBhY2NvdW50c1Jlc3BvbnNlLmdldERhdGEoKTsKYGBgCgotIFJldHVybiB1c2VyIHRyYW5zYWN0aW9uIGRldGFpbHMsIHVzaW5nIGFuIGFjY291bnQgdGhlIHVzZXIgaGFzIGdpdmVuIGNvbnNlbnQgdG8uCgpgYGBqYXZhClN0cmluZyBjb25zZW50VG9rZW4gPSBjb25zZW50LmdldENvbnNlbnRUb2tlbigpOwpBcGlMaXN0UmVzcG9uc2VPZlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uc1Jlc3BvbnNlID0gdHJhbnNhY3Rpb25zQXBpLmdldFRyYW5zYWN0aW9uc1VzaW5nR0VUKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VudFRva2VuLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRJZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aW9ucy5lbXB0eUxpc3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxOTgwLTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIwMjAtMDEtMDFUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCk7Ckxpc3Q8VHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9uc1Jlc3BvbnNlLmdldERhdGEoKTsKYGBgCgotIENoZWNrIHRoYXQgdGhlIGlkZW50aXR5IGZlYXR1cmUgaXMgcHJvdmlkZWQgZm9yIHRoaXMgaW5zdGl0dXRpb24uCmBgYGphdmEKSW5zdGl0dXRpb24gaW5zdGl0dXRpb24gPSBpbnN0aXR1dGlvbnNBcGkuZ2V0SW5zdGl0dXRpb25Vc2luZ0dFVChpbnN0aXR1dGlvbklkKTsKQm9vbGVhbiBzdXBwb3J0c0lkZW50aXR5ID0gaW5zdGl0dXRpb24uZ2V0RmVhdHVyZXMoKS5zdHJlYW0oKQogICAgICAgIC5hbnlNYXRjaChmZWF0dXJlc0VudW0gLT4gZmVhdHVyZXNFbnVtICE9IG51bGwgJiYgZmVhdHVyZXNFbnVtLmVxdWFscyhJbnN0aXR1dGlvbi5GZWF0dXJlc0VudW0uSURFTlRJVFkpKTsKYGBgCgotIElmIHRoZSBpZGVudGl0eSBmZWF0dXJlIGlzIHN1cHBvcnRlZCByZXR1cm4gdXNlciBpZGVudGl0eSBkZXRhaWxzLiBUaGlzIHdpbGwgZmFpbCBpZiB0aGUgaWRlbnRpdHkgZmVhdHVyZSBpcyBub3Qgc3VwcG9ydGVkLgpgYGBqYXZhClN0cmluZyBjb25zZW50VG9rZW4gPSBjb25zZW50LmdldENvbnNlbnRUb2tlbigpOwpJZGVudGl0eUFwaSBpZGVudGl0eUFwaSA9IG5ldyBJZGVudGl0eUFwaSgpOwpBcGlSZXNwb25zZU9mSWRlbnRpdHkgaWRlbnRpdHlSZXNwID0gaWRlbnRpdHlBcGkuZ2V0SWRlbnRpdHlVc2luZ0dFVChjb25zZW50VG9rZW4pOyAKSWRlbnRpdHkgaWRlbnRpdHkgPSBpZGVudGl0eVJlc3AuZ2V0RGF0YSgpOwpgYGAKCi0gQ3JlYXRlIGEgbmV3IHBheW1lbnQgcmVxdWVzdCBkZXRhaWxpbmcgd2hhdCB0eXBlIG9mIHBheW1lbnQgeW91IHdhbnQgdG8gaXNzdWUgb24gYmVoYWxmIG9mIHlvdXIgdXNlciBlLmcuIGEgRG9tZXN0aWMgCnBheW1lbnQgdG8gc2VuZCDCozEuMDAgdG8gYW5vdGhlciBhY2NvdW50IHVzaW5nIGFuIGFjY291bnQgbnVtYmVyIGFuZCBzb3J0IGNvZGU6CgpgYGBqYXZhClBheW1lbnRSZXF1ZXN0IHBheW1lbnRSZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KCk7CgpBbW91bnQgYW1vdW50ID0gbmV3IEFtb3VudCgpOwphbW91bnQuc2V0QW1vdW50KG5ldyBCaWdEZWNpbWFsKDEpKTsKYW1vdW50LnNldEN1cnJlbmN5KCJHQlAiKTsKClBheWVlIHBheWVlID0gbmV3IFBheWVlKCk7CnBheWVlLnNldE5hbWUoIkpvaG4gRG9lIik7CgpMaXN0PEFjY291bnRJZGVudGlmaWNhdGlvbj4gcGF5ZWVBY2NvdW50SWRlbnRpZmljYXRpb25zID0gbmV3IEFycmF5TGlzdDw+KCk7CgpBY2NvdW50SWRlbnRpZmljYXRpb24gYWNjb3VudE51bWJlcklkZW50aWZpY2F0aW9uID0gbmV3IEFjY291bnRJZGVudGlmaWNhdGlvbigpOwphY2NvdW50TnVtYmVySWRlbnRpZmljYXRpb24uc2V0VHlwZShBY2NvdW50SWRlbnRpZmljYXRpb24uVHlwZUVudW0uQUNDT1VOVF9OVU1CRVIpOwphY2NvdW50TnVtYmVySWRlbnRpZmljYXRpb24uc2V0SWRlbnRpZmljYXRpb24oIjcwMDAwMDA1Iik7CnBheWVlQWNjb3VudElkZW50aWZpY2F0aW9ucy5hZGQoYWNjb3VudE51bWJlcklkZW50aWZpY2F0aW9uKTsKCkFjY291bnRJZGVudGlmaWNhdGlvbiBzb3J0Q29kZUlkZW50aWZpY2F0aW9uID0gbmV3IEFjY291bnRJZGVudGlmaWNhdGlvbigpOwpzb3J0Q29kZUlkZW50aWZpY2F0aW9uLnNldFR5cGUoQWNjb3VudElkZW50aWZpY2F0aW9uLlR5cGVFbnVtLlNPUlRfQ09ERSk7CnNvcnRDb2RlSWRlbnRpZmljYXRpb24uc2V0SWRlbnRpZmljYXRpb24oIjcwMDAwMSIpOwpwYXllZUFjY291bnRJZGVudGlmaWNhdGlvbnMuYWRkKHNvcnRDb2RlSWRlbnRpZmljYXRpb24pOwoKcGF5ZWUuc2V0QWNjb3VudElkZW50aWZpY2F0aW9ucyhwYXllZUFjY291bnRJZGVudGlmaWNhdGlvbnMpOwoKcGF5bWVudFJlcXVlc3Quc2V0QW1vdW50KGFtb3VudCk7CnBheW1lbnRSZXF1ZXN0LnNldFBheWVlKHBheWVlKTsKcGF5bWVudFJlcXVlc3Quc2V0VHlwZShQYXltZW50UmVxdWVzdC5UeXBlRW51bS5ET01FU1RJQ19QQVlNRU5UKTsKcGF5bWVudFJlcXVlc3Quc2V0UmVmZXJlbmNlKCJTZW5kaW5nIMKjMS4wMCB0byBKb2huIERvZSB2aWEuIFlhcGlseSIpOwpwYXltZW50UmVxdWVzdC5zZXRQYXltZW50SWRlbXBvdGVuY3lJZCgiYW55VW5pcXVlU3RyaW5nT3ZlcjE4Y2hhcmFjdGVycyIpOwpgYGAKCi0gQ3JlYXRlIGEgbmV3IHBheW1lbnQgYXV0aG9yaXNhdGlvbiByZXF1ZXN0IHVzaW5nIHRoZSBwYXltZW50IHJlcXVlc3QgdG8gZ2VuZXJhdGUgYW4gYXV0aG9yaXphdGlvbiB1cmwgdGhhdCB5b3VyIHVzZXJzIGNhbiB1c2UgdG8gYXV0aG9yaXplIHRoZSBwYXltZW50OgoKYGBgamF2YQpQYXltZW50c0FwaSBwYXltZW50c0FwaSA9IG5ldyBQYXltZW50c0FwaSgpOwpQYXltZW50QXV0aG9yaXNhdGlvblJlcXVlc3QgcGF5bWVudEF1dGhvcmlzYXRpb25SZXF1ZXN0ID0gbmV3IFBheW1lbnRBdXRob3Jpc2F0aW9uUmVxdWVzdCgpOwpwYXltZW50QXV0aG9yaXNhdGlvblJlcXVlc3Quc2V0QXBwbGljYXRpb25Vc2VySWQoYXBwbGljYXRpb25Vc2VySWQpOwpwYXltZW50QXV0aG9yaXNhdGlvblJlcXVlc3Quc2V0SW5zdGl0dXRpb25JZChpbnN0aXR1dGlvbklkKTsKcGF5bWVudEF1dGhvcmlzYXRpb25SZXF1ZXN0LnNldFBheW1lbnRSZXF1ZXN0KHBheW1lbnRSZXF1ZXN0KTsKQXBpUmVzcG9uc2VPZlBheW1lbnRBdXRob3Jpc2F0aW9uUmVxdWVzdFJlc3BvbnNlIGF1dGhvcml6YXRpb25SZXNwb25zZSA9IAogICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50c0FwaS5jcmVhdGVQYXltZW50QXV0aG9yaXNhdGlvblVzaW5nUE9TVChwYXltZW50QXV0aG9yaXNhdGlvblJlcXVlc3QsIG51bGwsIG51bGwsIG51bGwpOwpTdHJpbmcgdXJsID0gYXV0aG9yaXphdGlvblJlc3BvbnNlLmdldERhdGEoKS5nZXRBdXRob3Jpc2F0aW9uVXJsKCk7CmBgYAoKLSBTdWJtaXQgYSBwYXltZW50IHJlcXVlc3QgdXNpbmcgdGhlIHNhbWUgcGF5bWVudCByZXF1ZXN0IG9iamVjdCBpbiB0aGUgYXV0aG9yaXphdGlvbiByZXF1ZXN0IGFuZCB0aGUgQVVUSE9SSVpFRCBjb25zZW50IGdpdmVuIGJ5IHRoZSB1c2VyOgoKYGBgamF2YQpTdHJpbmcgY29uc2VudFRva2VuID0gY29uc2VudC5nZXRDb25zZW50VG9rZW4oKTsKQXBpUmVzcG9uc2VPZlBheW1lbnRSZXNwb25zZSByZXNwb25zZSA9IHBheW1lbnRzQXBpLmNyZWF0ZVBheW1lbnRVc2luZ1BPU1QoY29uc2VudFRva2VuLCBwYXltZW50UmVxdWVzdCk7CmBgYAoKLSBDaGVjayB0aGUgcGF5bWVudCBzdGF0dXM6CmBgYGphdmEKU3RyaW5nIGNvbnNlbnRUb2tlbiA9IGNvbnNlbnQuZ2V0Q29uc2VudFRva2VuKCk7ClN0cmluZyBwYXltZW50SWQgPSAgcGF5bWVudFJlc3BvbnNlLmdldERhdGEoKS5nZXRJZCgpOwpBcGlSZXNwb25zZU9mUGF5bWVudFJlc3BvbnNlIGFwaVJlc3BvbnNlT2ZQYXltZW50UmVzcG9uc2UgPSBwYXltZW50c0FwaS5nZXRQYXltZW50U3RhdHVzVXNpbmdHRVQocGF5bWVudElkLCBjb25zZW50VG9rZW4pOwpgYGAKCgojIyBGdXJ0aGVyIGluZm9ybWF0aW9uCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2V0IGNvbm5lY3RlZCwgdmlzaXQgdGhlIFtZYXBpbHkgS25vd2xlZGdlIEJhc2VdKGh0dHBzOi8va2IueWFwaWx5LmNvbSkuCgojIyMjIyMgW1dlYnNpdGVdKGh0dHBzOi8veWFwaWx5LmNvbSkgfCBbTGVnYWxdKGh0dHBzOi8veWFwaWx5LmNvbS9sZWdhbC1wb2xpY2llcykgfCBbQ29udGFjdCBVc10obWFpbHRvOmluZm9AeWFwaWx5LmNvbSkgCgo= readmeEtag: '"47d36eb12a8b997bf64a83f71f118f6684009623"' readmeLastModified: Fri, 07 Oct 2022 11:52:19 GMT repositoryId: 148512801 description: >- Java SDK generated against the Yapily API. This SDK can be used to connect to Open Banking entities. created: '2018-09-12T16:54:43Z' updated: '2022-06-09T14:16:35Z' language: Java archived: false stars: 12 watchers: 7 forks: 3 owner: yapily logo: https://avatars.githubusercontent.com/u/36482918?v=4 license: MIT repoEtag: '"53b5c90758f5031c2bef9ca1f4d05661060fb4d8ae3acd319a8acf61e54d6ed1"' repoLastModified: Thu, 09 Jun 2022 14:16:35 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/notethan/scorpio v3: true repositoryMetadata: base64Readme: >- IyBTY29ycGlvCgohW1Rlc3QgQ0kgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vbm90RXRoYW4vc2NvcnBpby9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbC9iYWRnZS5zdmc/YnJhbmNoPXN0YWJsZSkKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvbm90RXRoYW4vc2NvcnBpby9iYWRnZS5zdmcpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvbm90RXRoYW4vc2NvcnBpbykKClNjb3JwaW8gaXMgYSBsaWJyYXJ5IHRoYXQgaGVscHMgeW91LCBhcyBhIGNsaWVudCwgY29uc3VtZSBhbiBIVFRQIHNlcnZpY2UgZGVzY3JpYmVkIGJ5IGFuIE9wZW5BUEkgZG9jdW1lbnQuIFlvdSBwcm92aWRlIHRoZSBPcGVuQVBJIGRlc2NyaXB0aW9uIGRvY3VtZW50LCBhIGxpdHRsZSBiaXQgb2YgY29uZmlndXJhdGlvbiwgYW5kIFNjb3JwaW8gd2lsbCB0YWtlIHRoYXQgYW5kIGR5bmFtaWNhbGx5IGdlbmVyYXRlIGFuIGludGVyZmFjZSBmb3IgeW91IHRvIGNhbGwgdGhlIHNlcnZpY2UncyBvcGVyYXRpb25zIGFuZCBpbnRlcmFjdCB3aXRoIGl0cyByZXNvdXJjZXMgYXMgYW4gT1JNLgoKTm90ZTogVGhlIGNhbm9uaWNhbCBsb2NhdGlvbiBvZiB0aGlzIFJFQURNRSBpcyBvbiBbUnVieURvY10oaHR0cDovL3J1Ynlkb2MuaW5mby9nZW1zL3Njb3JwaW8vKS4gV2hlbiB2aWV3ZWQgb24gW0dpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL25vdEV0aGFuL3Njb3JwaW8vKSwgaXQgbWF5IGJlIGluY29uc2lzdGVudCB3aXRoIHRoZSBsYXRlc3QgcmVsZWFzZWQgZ2VtLCBhbmQgWWFyZG9jIGxpbmtzIHdpbGwgbm90IHdvcmsuCgojIyBCYWNrZ3JvdW5kCgpUbyBzdGFydCB3aXRoLCB5b3UgbmVlZCBhbiBPcGVuQVBJIChmb3JtZXJseSBrbm93biBhcyBTd2FnZ2VyKSBkb2N1bWVudCBkZXNjcmliaW5nIGEgc2VydmljZSB5b3Ugd2lsbCBiZSBjb25zdW1pbmcuIHYyIGFuZCB2MyBhcmUgYm90aCBzdXBwb3J0ZWQuW14xXSBUaGlzIGRvY3VtZW50IGNhbiBiZSB3cml0dGVuIGJ5IGhhbmQgb3Igc29tZXRpbWVzIGdlbmVyYXRlZCBmcm9tIG90aGVyIGV4aXN0aW5nIHNvdXJjZXMuIFRoZSBjcmVhdGlvbiBvZiBhbiBPcGVuQVBJIGRvY3VtZW50IGRlc2NyaWJpbmcgeW91ciBzZXJ2aWNlIGlzIG91dHNpZGUgdGhlIHNjb3BlIG9mIFNjb3JwaW8uIEhlcmUgYXJlIHNldmVyYWwgcmVzb3VyY2VzIG9uIE9wZW5BUEk6CgotIFtPcGVuQVBJIFNwZWNpZmljYXRpb24gYXQgV2lraXBlZGlhXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9PcGVuQVBJX1NwZWNpZmljYXRpb24pCi0gW09wZW5BUEkgSW5pdGlhdGl2ZV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgaXMgdGhlIG9mZmljaWFsIHdlYiBzaXRlIGZvciBPcGVuQVBJCi0gW09wZW5BUEkgU3BlY2lmaWNhdGlvbiBvbiBHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKQotIFtzd2FnZ2VyLmlvXShodHRwczovL3N3YWdnZXIuaW8vKSBBUEkgdG9vbGluZwoKT3BlbkFQSSByZWxpZXMgb24gdGhlIGRlZmluaXRpb24gb2Ygc2NoZW1hcyB1c2luZyB0aGUgSlNPTiBzY2hlbWEgc3BlY2lmaWNhdGlvbiwgd2hpY2ggY2FuIGJlIGxlYXJuZWQgYWJvdXQgYXQgaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvCgpPbmNlIHlvdSBoYXZlIHRoZSBPcGVuQVBJIGRvY3VtZW50IGRlc2NyaWJpbmcgdGhlIHNlcnZpY2UgeW91IHdpbGwgY29uc3VtZSwgeW91IGNhbiBnZXQgc3RhcnRlZCBpbXBsZW1lbnRpbmcgdGhlIGNvZGUgdGhhdCB3aWxsIGludGVyYWN0IHdpdGggdGhhdCBzZXJ2aWNlLgoKW14xXTogQ2VydGFpbiBmZWF0dXJlcyBtYXkgYmUgbWlzc2luZywgYnV0IFNjb3JwaW8gdHJpZXMgdG8gbWFrZSB3b3JrYXJvdW5kcyBlYXN5LiBJc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgcmVnYXJkaW5nIG1pc3NpbmcgZnVuY3Rpb25hbGl0eSBhcmUgd2VsY29tZS4KCiMjIFBldCBTdG9yZSAodXNpbmcgU2NvcnBpbzo6UmVzb3VyY2VCYXNlKQoKTGV0J3MgZGl2ZSBpbnRvIHNvbWUgY29kZSwgc2hhbGwgd2U/IElmIHlvdSBoYXZlIGxlYXJuZWQgYWJvdXQgT3BlbkFQSSwgeW91IGxpa2VseSBsZWFybmVkIHVzaW5nIHRoZSBleGFtcGxlIG9mIHRoZSBQZXQgU3RvcmUgc2VydmljZS4gVGhpcyBSRUFETUUgd2lsbCB1c2UgdGhlIHNhbWUgc2VydmljZS4gSXRzIGRvY3VtZW50YXRpb24gaXMgYXQgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvLy4KClVzaW5nIHRoZSBPcGVuQVBJIGRvY3VtZW50LCB3ZSBjYW4gc3RhcnQgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgcGV0IHN0b3JlIHdpdGggdmVyeSBsaXR0bGUgY29kZS4gSGVyZSBpcyB0aGF0IGNvZGUsIHdpdGggZXhwbGFuYXRpb25zIG9mIGVhY2ggcGFydCBpbiB0aGUgY29tbWVudHMuCgpgYGBydWJ5CnJlcXVpcmUgJ3Njb3JwaW8nCiMgUGV0U3RvcmUgaXMgYSBtb2R1bGUgdG8gY29udGFpbiBvdXIgcGV0IHN0b3JlIHJlbGF0ZWQgY2xhc3Nlcy4KIyBpdCBpcyBvcHRpb25hbCAtIHlvdXIgbmFtaW5nIGNvbnZlbnRpb25zIGFyZSB5b3VyIG93bi4KbW9kdWxlIFBldFN0b3JlCiAgIyBTY29ycGlvJ3MgcmVjb21tZW5kZWQgc3RydWN0dXJlIGlzIHRvIGhhdmUgYSBiYXNlIGNsYXNzIHdoaWNoIGluaGVyaXRzIGZyb20KICAjIFNjb3JwaW86OlJlc291cmNlQmFzZSB0byByZXByZXNlbnQgdGhlIFBldCBTdG9yZSBhbmQgYWxsIGl0cyByZXNvdXJjZXMuCiAgIwogICMgeW91IGNvbmZpZ3VyZSB0aGUgb3BlbmFwaSBkb2N1bWVudCBhbmQgb3RoZXIgc2hhcmVkIGNvbmZpZ3VyYXRpb24gb24gdGhpcyBjbGFzcy4KICBjbGFzcyBSZXNvdXJjZSA8IFNjb3JwaW86OlJlc291cmNlQmFzZQogICAgIyBzZXQgdGhlIG9wZW5hcGkgZG9jdW1lbnQuIHlvdSdsbCB1c3VhbGx5IHdhbnQgdGhpcyB0byBiZSBhIGZpbGUgaW4geW91ciBsb2NhbCBmaWxlc3lzdGVtCiAgICAjIChtYWtpbmcgbmV0d29yayBjYWxscyBhdCBhcHBsaWNhdGlvbiBib290IHRpbWUgaXMgdXN1YWxseSBhIGJhZCBpZGVhKSwgYnV0IGZvciB0aGlzCiAgICAjIGV4YW1wbGUgd2Ugd2lsbCBkbyBhIHF1aWNrLWFuZC1kaXJ0eSBodHRwIGdldC4KICAgIHJlcXVpcmUgJ2pzb24nCiAgICBzZWxmLm9wZW5hcGlfZG9jdW1lbnQgPSBKU09OLnBhcnNlKEZhcmFkYXkuZ2V0KCdodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uJykuYm9keSkKICBlbmQKCiAgIyBhIFBldCBpcyBhIHJlc291cmNlIG9mIHRoZSBwZXQgc3RvcmUsIHNvIGluaGVyaXRzIGZyb20gUGV0U3RvcmU6OlJlc291cmNlCiAgY2xhc3MgUGV0IDwgUmVzb3VyY2UKICAgICMgc2V0dGluZyB0aGUgdGFnIG5hbWUgdGVsbHMgU2NvcnBpbyB0byBhc3NvY2lhdGUgb3BlcmF0aW9ucyB0YWdnZWQgd2l0aCAncGV0JyB3aXRoIHRoaXMKICAgICMgY2xhc3MgYW5kIGl0cyBpbnN0YW5jZXMuIHRoaXMgbGV0cyB5b3UgY2FsbCBvcGVyYXRpb25zIHN1Y2ggYXMgYWRkUGV0LCB1cGRhdGVQZXQsIGV0Yy4KICAgIHNlbGYudGFnX25hbWUgPSAncGV0JwoKICAgICMgc2V0dGluZyB0aGUgc2NoZW1hcyB3aGljaCByZXByZXNlbnQgYSBQZXQgd2lsbCBsZXQgc2NvcnBpbyByZXR1cm4gcmVzdWx0cyBmcm9tIG9wZXJhdGlvbgogICAgIyBjYWxscyBwcm9wZXJseSBpbnN0YW50aWF0ZWQgYXMgUGV0IGluc3RhbmNlcy4gZm9yIGV4YW1wbGUsIGNhbGxpbmcgZ2V0UGV0QnlJZCB3aWxsIHJldHVybgogICAgIyBhIFBldFN0b3JlOjpQZXQgaW5zdGFuY2Ugc2luY2UgaXRzIHN1Y2Nlc3MgcmVzcG9uc2UgcmVmZXJzIHRvICMvZGVmaW5pdGlvbnMvUGV0LgogICAgIwogICAgIyB0aGlzIHdvcmtzIGZvciBuZXN0ZWQgc3RydWN0dXJlcyBhcyB3ZWxsLCBlLmcuIGZpbmRQZXRzQnlTdGF0dXMgcmV0dXJucyBhbiBhcnJheSBvZgogICAgIyAjL2RlZmluaXRpb25zL1BldCBhbmQgbGlrZXdpc2UgU2NvcnBpbyB3aWxsIHJldHVybiBhbiBhcnJheSBvZiBQZXRTdG9yZTo6UGV0IGluc3RhbmNlcy4KICAgICMKICAgICMgdGhpcyBhbHNvIGFkZHMgYWNjZXNzb3JzIGZvciBwcm9wZXJ0aWVzIG9mIHRoZSBzY2hlbWEgLSBpbiB0aGlzIGNhc2UgI2lkLCAjbmFtZSwgI3RhZ3MsIGV0Yy4KICAgIHNlbGYucmVwcmVzZW50ZWRfc2NoZW1hcyA9IFtvcGVuYXBpX2RvY3VtZW50LmRlZmluaXRpb25zWydQZXQnXV0KICBlbmQKZW5kCmBgYAoKVGhhdCBzaG91bGQgYmUgYWxsIHlvdSBuZWVkIHRvIHN0YXJ0IGNhbGxpbmcgb3BlcmF0aW9uczoKCmBgYHJ1YnkKIyBjYWxsIHRoZSBvcGVyYXRpb24gZmluZFBldHNCeVN0YXR1cwojIGRvYzogaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvLyMvcGV0L2ZpbmRQZXRzQnlTdGF0dXMKc29sZF9wZXRzID0gUGV0U3RvcmU6OlBldC5maW5kUGV0c0J5U3RhdHVzKHN0YXR1czogJ3NvbGQnKQojIHNvbGRfcGV0cyBpcyBhbiBhcnJheS1saWtlIGNvbGxlY3Rpb24gb2YgUGV0U3RvcmU6OlBldCBpbnN0YW5jZXMKCnBldCA9IHNvbGRfcGV0cy5zYW1wbGUKCnBldC50YWdzLm1hcCgmOm5hbWUpCiMgbm90ZSB0aGF0IHlvdSBoYXZlIGFjY2Vzc29ycyBvbiBQZXRTdG9yZTo6UGV0IGxpa2UgI3RhZ3MsIGFuZCBhbHNvIHRoYXQKIyB0YWdzIGhhdmUgYWNjZXNzb3JzIGZvciBwcm9wZXJ0aWVzICduYW1lJyBhbmQgJ2lkJyBmcm9tIHRoZSB0YWdzIHNjaGVtYQojICh5b3VyIHRhZyBuYW1lcyB3aWxsIGJlIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gd2hhdCdzIGluIHRoZSBwZXQgc3RvcmUpCiMgPT4gWyJhdWN1bmUiXQoKIyBjb21wYXJlIHRvIGdldFBldEJ5SWQ6IGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8jL3BldC9nZXRQZXRCeUlkCnBldCA9PSBQZXRTdG9yZTo6UGV0LmdldFBldEJ5SWQocGV0SWQ6IHBldFsnaWQnXSkKIyBwZXQgaXMgdGhlIHNhbWUsIHJldHJpZXZlZCB1c2luZyB0aGUgZ2V0UGV0QnlJZCBvcGVyYXRpb24KCiMgbGV0J3MgbmFtZSB0aGUgcGV0IGFmdGVyIG91cnNlbGYKcGV0Lm5hbWUgPSBFTlZbJ1VTRVInXQoKIyBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZSBwZXQgc3RvcmUuIG5vdGUgdGhlIHVwZGF0ZVBldCBjYWxsIGZyb20gdGhlIGluc3RhbmNlIC0gb3VyCiMgY2FsbHMgc28gZmFyIGhhdmUgYmVlbiBvbiB0aGUgY2xhc3MgUGV0U3RvcmU6OlBldCwgYnV0IHNjb3JwaW8gZGVmaW5lcyBpbnN0YW5jZQojIG1ldGhvZHMgdG8gY2FsbCBvcGVyYXRpb25zIHdoZXJlIGFwcHJvcHJpYXRlIGFzIHdlbGwuCiMgdXBkYXRlUGV0OiBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vIy9wZXQvdXBkYXRlUGV0CnBldC51cGRhdGVQZXQKCiMgY2hlY2sgdGhhdCBpdCB3YXMgc2F2ZWQKUGV0U3RvcmU6OlBldC5nZXRQZXRCeUlkKHBldElkOiBwZXRbJ2lkJ10pLm5hbWUKIyA9PiAiZXRoYW4iICh1bmxlc3MgZm9yIHNvbWUgcmVhc29uIHlvdXIgbmFtZSBpcyBub3QgRXRoYW4pCgojIGhlcmUgaXMgaG93IGVycm9ycyBhcmUgaGFuZGxlZDoKUGV0U3RvcmU6OlBldC5nZXRQZXRCeUlkKHBldElkOiAwKQojIHJhaXNlczogU2NvcnBpbzo6SFRUUEVycm9yczo6Tm90Rm91bmQ0MDRFcnJvcgojICAgRXJyb3IgY2FsbGluZyBvcGVyYXRpb24gZ2V0UGV0QnlJZCBvbiBQZXRTdG9yZTo6UGV0OgojICAgeyJjb2RlIjoxLCJ0eXBlIjoiZXJyb3IiLCJtZXNzYWdlIjoiUGV0IG5vdCBmb3VuZCJ9CmBgYAoKSXNuJ3QgdGhhdCBjb29sPyBZb3UgZ2V0IGNsYXNzIG1ldGhvZHMgbGlrZSBnZXRQZXRCeUlkLCBpbnN0YW5jZSBtZXRob2RzIGxpa2UgdXBkYXRlUGV0LCBhdHRyaWJ1dGUgYWNjZXNzb3JzIGxpa2UgI25hbWUgYW5kICN0YWdzLCBhbGwgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIE9wZW5BUEkgZGVzY3JpcHRpb24uIFlvdSBqdXN0IG1ha2UgYSBmZXcgY2xhc3NlcyB3aXRoIGEgbGluZSBvciB0d28gb2YgY29uZmlndXJhdGlvbiBpbiBlYWNoLgoKIyMgUGV0IFN0b3JlICh1c2luZyBTY29ycGlvOjpPcGVuQVBJIGNsYXNzZXMpCgpZb3UgZG8gbm90IGhhdmUgdG8gZGVmaW5lIHJlc291cmNlIGNsYXNzZXMgdG8gdXNlIFNjb3JwaW8gdG8gY2FsbCBPcGVuQVBJIG9wZXJhdGlvbnMgLSB0aGUgY2xhc3NlcyBTY29ycGlvIHVzZXMgdG8gcmVwcmVzZW50IGNvbmNlcHRzIGZyb20gT3BlbkFQSSBjYW4gYmUgY2FsbGVkIGRpcmVjdGx5LiBTY29ycGlvIHVzZXMgW0pTSV0oaHR0cHM6Ly9naXRodWIuY29tL25vdEV0aGFuL2pzaSkgY2xhc3NlcyB0byByZXByZXNlbnQgT3BlbkFQSSBzY2hlbWVzIHN1Y2ggYXMgdGhlIERvY3VtZW50IGFuZCBpdHMgT3BlcmF0aW9ucy4KCldlIHN0YXJ0IGJ5IGluc3RhbnRpYXRpbmcgdGhlIE9wZW5BUEkgZG9jdW1lbnQuIGBTY29ycGlvOjpPcGVuQVBJOjpEb2N1bWVudC5mcm9tX2luc3RhbmNlYCByZXR1cm5zIGEgVjIgb3IgVjMgT3BlbkFQSSBEb2N1bWVudCBjbGFzcyBpbnN0YW5jZS4KCmBgYHJ1YnkKcmVxdWlyZSAnc2NvcnBpbycKcGV0X3N0b3JlX2RvYyA9IFNjb3JwaW86Ok9wZW5BUEk6OkRvY3VtZW50LmZyb21faW5zdGFuY2UoSlNPTi5wYXJzZShGYXJhZGF5LmdldCgnaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbicpLmJvZHkpKQojID0+ICN7PFNjb3JwaW86Ok9wZW5BUEk6OlYyOjpEb2N1bWVudCBmcmFnbWVudD0iIyI+ICJzd2FnZ2VyIiA9PiAiMi4wIiwgLi4ufQpgYGAKClRoZSBPcGVuQVBJIGRvY3VtZW50IGhvbGRzIHRoZSBKU09OIHRoYXQgcmVwcmVzZW50cyBpdCwgc28gdG8gZ2V0IGFuIE9wZXJhdGlvbiB5b3UgZ28gdGhyb3VnaCB0aGUgZG9jdW1lbnQncyBwYXRocywganVzdCBhcyBpdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgSlNPTi4KCmBgYHJ1YnkKIyB0aGUgc3RvcmUgaW52ZW50b3J5IG9wZXJhdGlvbiB3aWxsIGxldCB1cyBzZWUgd2hhdCBzdGF0dXNlcyB0aGVyZSBhcmUgaW4gdGhlIHN0b3JlLgppbnZlbnRvcnlfb3AgPSBwZXRfc3RvcmVfZG9jLnBhdGhzWycvc3RvcmUvaW52ZW50b3J5J11bJ2dldCddCiMgPT4gI3s8SlNJIChTY29ycGlvOjpPcGVuQVBJOjpWMjo6T3BlcmF0aW9uKT4KIyAgICAgICJzdW1tYXJ5IiA9PiAiUmV0dXJucyBwZXQgaW52ZW50b3JpZXMgYnkgc3RhdHVzIiwKIyAgICAgICJvcGVyYXRpb25JZCIgPT4gImdldEludmVudG9yeSIsCiMgICAgICAuLi4KIyAgICB9CmBgYAoKQWx0ZXJuYXRpdmVseSwgU2NvcnBpbyBkZWZpbmVzIGEgaGVscGVyIGBEb2N1bWVudCNvcGVyYXRpb25zYCB3aGljaCBiZWhhdmVzIGxpa2UgYW4gRW51bWVyYWJsZSBvZiBhbGwgdGhlIE9wZXJhdGlvbnMgaW4gdGhlIERvY3VtZW50LiBJdCBjYW4gYmUgc3Vic2NyaXB0ZWQgd2l0aCB0aGUgYG9wZXJhdGlvbklkYDoKCmBgYHJ1YnkKaW52ZW50b3J5X29wID0gcGV0X3N0b3JlX2RvYy5vcGVyYXRpb25zWydnZXRJbnZlbnRvcnknXQojID0+IHJldHVybnMgdGhlIHNhbWUgaW52ZW50b3J5X29wIGFzIGFib3ZlLgpgYGAKCk5vdyB0aGF0IHdlIGhhdmUgYW4gb3BlcmF0aW9uLCB3ZSBjYW4gcnVuIHJlcXVlc3RzIGZyb20gaXQuIHtTY29ycGlvOjpPcGVuQVBJOjpPcGVyYXRpb24jcnVufSBwZXJmb3JtcyB0aGUgb3BlcmF0aW9uIGJ5IHJ1bm5pbmcgYSByZXF1ZXN0LiBJZiB0aGUgcmVzcG9uc2UgaXMgYW4gZXJyb3IsIGEge1Njb3JwaW86OkhUVFBFcnJvcn0gc3ViY2xhc3Mgd2lsbCBiZSByYWlzZWQuIE9uIHN1Y2Nlc3MsIGl0IHJldHVybnMgdGhlIHJlc3BvbnNlIGJvZHkgZW50aXR5LCBpbnN0YW50aWF0ZWQgYWNjb3JkaW5nIHRvIHRoZSBPcGVuQVBJIHNjaGVtYSBmb3IgdGhlIG9wZXJhdGlvbiByZXNwb25zZSwgaWYgc3BlY2lmaWVkLiBGb3IgbW9yZSBkZXRhaWwgb24gaG93IGpzb24tc2NoZW1hIGluc3RhbmNlcyBhcmUgcmVwcmVzZW50ZWQsIHNlZSB0aGUgZ2VtIFtKU0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ub3RFdGhhbi9qc2kpLgoKYGBgcnVieQppbnZlbnRvcnkgPSBpbnZlbnRvcnlfb3AucnVuCiMgPT4gI3s8SlNJPgojICAgICAgInVuYXZhaWxhYmxlIiA9PiA0LAojICAgICAgInVubG92ZWQgLSBuZWVkcyBhIGhvbWUiID0+IDEsCiMgICAgICAiYXZhaWxhYmxlIiA9PiAyMzUwLAojICAgICAgInNvbGQiID0+IDU3OTAsCiMgICAgICAiZG9nIiA9PiAxLAojICAgIH0KYGBgCgpsZXQncyBwaWNrIGEgc3RhdGUgYW5kIGZpbmQgYSBwZXQuIHdlJ2xsIGdvIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGV4YW1wbGUgaW4gdGhlIFJlc291cmNlQmFzZSBzZWN0aW9uIHByZXR0eSBtdWNoIGxpa2UgaXQgaXMgdXAgdGhlcmU6CgpgYGBydWJ5CiMgY2FsbCB0aGUgb3BlcmF0aW9uIGZpbmRQZXRzQnlTdGF0dXMKIyBkb2M6IGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8jL3BldC9maW5kUGV0c0J5U3RhdHVzCnNvbGRfcGV0cyA9IHBldF9zdG9yZV9kb2Mub3BlcmF0aW9uc1snZmluZFBldHNCeVN0YXR1cyddLnJ1bihzdGF0dXM6ICdzb2xkJykKIyBzb2xkX3BldHMgaXMgYW4gYXJyYXktbGlrZSBjb2xsZWN0aW9uIG9mIEpTSSBpbnN0YW5jZXMKCnBldCA9IHNvbGRfcGV0cy5kZXRlY3QgeyB8cGV0fCBwZXQudGFncy5hbnk/IH0KCnBldC50YWdzLm1hcCgmOm5hbWUpCiMgbm90ZSB0aGF0IHlvdSBoYXZlIGFjY2Vzc29ycyBvbiB0aGUgcmV0dXJuZWQgSlNJIGxpa2UgI3RhZ3MsIGFuZCBhbHNvIHRoYXQKIyB0YWdzIGhhdmUgYWNjZXNzb3JzIGZvciBwcm9wZXJ0aWVzICduYW1lJyBhbmQgJ2lkJyBmcm9tIHRoZSB0YWdzIHNjaGVtYQojICh5b3VyIHRhZyBuYW1lcyB3aWxsIGJlIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gd2hhdCdzIGluIHRoZSBwZXQgc3RvcmUpCiMgPT4gWyJhdWN1bmUiXQoKIyBjb21wYXJlIHRoZSBwZXQgZnJvbSBmaW5kUGV0c0J5U3RhdHVzIHRvIG9uZSByZXR1cm5lZCBmcm9tIGdldFBldEJ5SWQKIyBkb2M6IGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8jL3BldC9nZXRQZXRCeUlkCnBldF9ieV9pZCA9IHBldF9zdG9yZV9kb2Mub3BlcmF0aW9uc1snZ2V0UGV0QnlJZCddLnJ1bihwZXRJZDogcGV0WydpZCddKQoKIyB1bmxpa2UgUmVzb3VyY2VCYXNlIGluc3RhbmNlcyBhYm92ZSwgSlNJIGluc3RhbmNlcyBoYXZlIHN0cmljdGVyCiMgZXF1YWxpdHkgYW5kIHRoZSBwZXRzIHJldHVybmVkIGZyb20gZGlmZmVyZW50IG9wZXJhdGlvbnMgYXJlIG5vdAojIGVxdWFsLCBiZWNhdXNlIHRoZXkgYXJlIGluIGRpZmZlcmVudCBKU09OIGRvY3VtZW50cy4KcGV0X2J5X2lkID09IHBldAojID0+IGZhbHNlCgojIGxldCdzIG5hbWUgdGhlIHBldCBhZnRlciBvdXJzZWxmCnBldC5uYW1lID0gRU5WWydVU0VSJ10KCiMgc3RvcmUgdGhlIHJlc3VsdCBpbiB0aGUgcGV0IHN0b3JlLgojIHVwZGF0ZVBldDogaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvLyMvcGV0L3VwZGF0ZVBldApwZXRfc3RvcmVfZG9jLm9wZXJhdGlvbnNbJ3VwZGF0ZVBldCddLnJ1bihib2R5X29iamVjdDogcGV0KQoKIyBjaGVjayB0aGF0IGl0IHdhcyBzYXZlZApwZXRfc3RvcmVfZG9jLm9wZXJhdGlvbnNbJ2dldFBldEJ5SWQnXS5ydW4ocGV0SWQ6IHBldFsnaWQnXSkubmFtZQojID0+ICJldGhhbiIgKHVubGVzcyBmb3Igc29tZSByZWFzb24geW91ciBuYW1lIGlzIG5vdCBFdGhhbikKCiMgaGVyZSBpcyBob3cgZXJyb3JzIGFyZSBoYW5kbGVkOgpwZXRfc3RvcmVfZG9jLm9wZXJhdGlvbnNbJ2dldFBldEJ5SWQnXS5ydW4ocGV0SWQ6IDApCiMgcmFpc2VzOiBTY29ycGlvOjpIVFRQRXJyb3JzOjpOb3RGb3VuZDQwNEVycm9yCiMgICBFcnJvciBjYWxsaW5nIG9wZXJhdGlvbiBnZXRQZXRCeUlkOgojICAgeyJjb2RlIjoxLCJ0eXBlIjoiZXJyb3IiLCJtZXNzYWdlIjoiUGV0IG5vdCBmb3VuZCJ9CmBgYAoKIyMjIEFub3RoZXIgRXhhbXBsZTogQmxvZwoKRm9yIGFub3RoZXIgZXhhbXBsZSBvZiBhbiBBUEkgdGhhdCBhIGNsaWVudCBpbnRlcmFjdHMgd2l0aCB1c2luZyBTY29ycGlvOjpSZXNvdXJjZUJhc2UsIFNjb3JwaW8ncyB0ZXN0cyBpbXBsZW1lbnQgdGhlIEJsb2cgc2VydmljZS4gVGhpcyBpcyBkZWZpbmVkIGluIHRlc3QvYmxvZy5yYi4gVGhlIHNlcnZpY2UgdXNlcyBBY3RpdmVSZWNvcmQgbW9kZWxzIGFuZCBTaW5hdHJhIHRvIG1ha2UgYSBzaW1wbGUgUkVTVGZ1bCBzZXJ2aWNlLgoKSXRzIEFQSSBpcyBkZXNjcmliZWQgaW4gYHRlc3QvYmxvZy5vcGVuYXBpLnltbGAsIGRlZmluaW5nIHRoZSBBcnRpY2xlIHJlc291cmNlLCBzZXZlcmFsIG9wZXJhdGlvbnMsIGFuZCBzY2hlbWFzLiBUaGUgY2xpZW50IGlzIHNldCB1cCBpbiBgdGVzdC9ibG9nX3Njb3JwaW9fbW9kZWxzLnJiYC4gVGhlIGJhc2UgY2xhc3MgQmxvZ01vZGVsIGRlZmluZXMgdGhlIGJhc2VfdXJsIGFuZCB0aGUgYXBpIGRlc2NyaXB0aW9uLCBhcyB3ZWxsIGFzIHNvbWUgb3RoZXIgb3B0aW9uYWwgc2V0dXAgZG9uZSBmb3IgdGVzdGluZy4gSXRzIG9wZXJhdGlvbnMgYXJlIHRlc3RlZCBpbiBgdGVzdC9zY29ycGlvX3Rlc3QucmJgLgoKIyMgU2NvcnBpbzo6UmVzb3VyY2VCYXNlCgpTY29ycGlvOjpSZXNvdXJjZUJhc2UgaXMgdGhlIG1haW4gY2xhc3MgdXNlZCBpbiBhYnN0cmFjdGluZyBvbiBPcGVuQVBJIGRvY3VtZW50LiBTY29ycGlvOjpSZXNvdXJjZUJhc2UgYWltcyB0byByZXByZXNlbnQgUkVTVGZ1bCByZXNvdXJjZXMgaW4gcnVieSBjbGFzc2VzIHdpdGggYXMgbGl0dGxlIGNvZGUgYXMgcG9zc2libGUsIGdpdmVuIGEgc2VydmljZSB3aXRoIGEgcHJvcGVybHkgY29uc3RydWN0ZWQgT3BlbkFQSSBkb2N1bWVudC4KCkEgY2xhc3Mgd2hpY2ggc3ViY2xhc3NlcyBTY29ycGlvOjpSZXNvdXJjZUJhc2UgZGlyZWN0bHkgKHN1Y2ggYXMgUGV0U3RvcmU6OlJlc291cmNlIGFib3ZlKSBzaG91bGQgZ2VuZXJhbGx5IHJlcHJlc2VudCB0aGUgd2hvbGUgQVBJIC0geW91IHNldCB0aGUgb3BlbmFwaV9kb2N1bWVudCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbiBvbiB0aGlzIGNsYXNzLiBBcyBzdWNoLCBpdCBpcyBnZW5lcmFsbHkgbm90IGluc3RhbnRpYXRlZC4gSXRzIHN1YmNsYXNzZXMsIHJlcHJlc2VudGluZyByZXNvdXJjZXMgd2l0aCBhIHRhZyBvciB3aXRoIHNjaGVtYSBkZWZpbml0aW9ucyBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudCwgYXJlIHdoYXQgeW91IG1vc3RseSBpbnN0YW50aWF0ZSBhbmQgaW50ZXJhY3Qgd2l0aC4KCkEgbW9kZWwgcmVwcmVzZW50aW5nIGEgcmVzb3VyY2UgbmVlZHMgdG8gYmUgY29uZmlndXJlZCwgbWluaW1hbGx5LCB3aXRoOgoKLSB0aGUgT3BlbkFQSSBkb2N1bWVudCBkZXNjcmliaW5nIHRoZSBBUEkKLSB0aGUgc2NoZW1hcyB0aGF0IHJlcHJlc2VudCBpbnN0YW5jZXMgb2YgdGhlIG1vZGVsLCBpZiBhbnkKCklmIHRoZSByZXNvdXJjZSBoYXMgSFRUUCBvcGVyYXRpb25zIGFzc29jaWF0ZWQgd2l0aCBpdCAobW9zdCwgYnV0IG5vdCBhbGwgcmVzb3VyY2VzIHdpbGwpOgoKLSBhIHRhZyBuYW1lIGlkZW50aWZ5aW5nIGl0cyB0YWdnZWQgb3BlcmF0aW9ucwoKV2hlbiB0aGVzZSBhcmUgc2V0LCBTY29ycGlvOjpSZXNvdXJjZUJhc2UgbG9va3MgdGhyb3VnaCB0aGUgQVBJIGRlc2NyaXB0aW9uIGFuZCBkeW5hbWljYWxseSBzZXRzIHVwIG1ldGhvZHMgZm9yIHRoZSBtb2RlbDoKCi0gYWNjZXNzb3JzIGZvciBwcm9wZXJ0aWVzIG9mIHRoZSBtb2RlbCBkZWZpbmVkIGFzIHByb3BlcnRpZXMgb2Ygc2NoZW1hcyByZXByZXNlbnRpbmcgdGhlIHJlc291cmNlIGluIHRoZSBkZXNjcmlwdGlvbiBkb2N1bWVudAotIEFQSSBtZXRob2QgY2FsbHMgb24gdGhlIG1vZGVsIGNsYXNzIGFuZCwgd2hlcmUgYXBwcm9wcmlhdGUsIG9uIHRoZSBtb2RlbCBpbnN0YW5jZQoKIyMgU2NvcnBpbzo6VXIKCklmIHlvdSBuZWVkIGEgbW9yZSBjb21wbGV0ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgSFRUUCByZXF1ZXN0IGFuZC9vciByZXNwb25zZSwgU2NvcnBpbzo6T3BlbkFQSTo6T3BlcmF0aW9uI3J1bl91ciBvciBTY29ycGlvOjpSZXF1ZXN0I3J1bl91ciB3aWxsIHJldHVybiBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBkZWZpbmVkIGJ5IHRoZSBnZW0gW1VyXShodHRwczovL2dpdGh1Yi5jb20vbm90RXRoYW4vdXIpLiBTZWUgdGhhdCBsaW5rIGZvciBtb3JlIGRldGFpbC4gUmVsYXRpbmcgdG8gdGhlIGV4YW1wbGUgYWJvdmUgdGl0bGVkICJQZXQgU3RvcmUgKHVzaW5nIFNjb3JwaW86Ok9wZW5BUEkgY2xhc3NlcykiLCB0aGlzIGNvZGUgd2lsbCByZXR1cm4gYW4gVXI6CgpgYGBydWJ5CmludmVudG9yeV9vcCA9IFNjb3JwaW86Ok9wZW5BUEk6OkRvY3VtZW50LmZyb21faW5zdGFuY2UoSlNPTi5wYXJzZShGYXJhZGF5LmdldCgnaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbicpLmJvZHkpKS5wYXRoc1snL3N0b3JlL2ludmVudG9yeSddWydnZXQnXQppbnZlbnRvcnlfdXIgPSBpbnZlbnRvcnlfb3AucnVuX3VyCiMgPT4gI3s8U2NvcnBpbzo6VXIgZnJhZ21lbnQ9IiMiPiAuLi59CmBgYAoKIyMjIFNjb3JwaW8gUmVzb3VyY2VCYXNlIHBpY2tsZSBhZGFwdGVyCgpTY29ycGlvIHByb3ZpZGVzIGEgcGlja2xlIGFkYXB0ZXIgdG8gdXNlIG1vZGVscyB3aXRoIFtQaWNrbGVdKGh0dHBzOi8vcnVieWdlbXMub3JnL2dlbXMvcGlja2xlKS4gYHJlcXVpcmUgJ3Njb3JwaW8vcGlja2xlX2FkYXB0ZXInYCwgZW5zdXJlIHRoYXQgdGhlIHBpY2tsZSBPUk0gYWRhcHRlciBpcyBlbmFibGVkLCBhbmQgeW91IHNob3VsZCBiZSBhYmxlIHRvIGNyZWF0ZSBtb2RlbHMgYXMgbm9ybWFsIHdpdGggcGlja2xlLgoKIyMjIEdvb2dsZSBBUEkgZGlzY292ZXJ5IHNlcnZpY2UKCkFuIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgU2NvcnBpbzo6UmVzb3VyY2VCYXNlIHdhcyBiYXNlZCBvbiB0aGUgZm9ybWF0IGRlZmluZWQgZm9yIEdvb2dsZSdzIEFQSSBkaXNjb3Zlcnkgc2VydmljZS4KCkZvciBiYWNrZ3JvdW5kIG9uIHRoZSBHb29nbGUgZGlzY292ZXJ5IHNlcnZpY2UgYW5kIHRoZSBBUEkgZGVzY3JpcHRpb24gZm9ybWF0IGl0IGRlZmluZXMsIHNlZToKCi0gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5LwotIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvCgpUaGlzIGZvcm1hdCBpcyBzdGlsbCBzdXBwb3J0ZWQgaW5kaXJlY3RseSwgYnkgY29udmVydGluZyBmcm9tIGEgR29vZ2xlIEFQSSBkb2N1bWVudCB0byBPcGVuQVBJIHVzaW5nIGBTY29ycGlvOjpHb29nbGU6OlJlc3REZXNjcmlwdGlvbiN0b19vcGVuYXBpX2RvY3VtZW50YC4gRXhhbXBsZSBjb252ZXJzaW9uIGxvb2tzIGxpa2U6CgpgYGBydWJ5CmNsYXNzIE15TW9kZWwgPCBTY29ycGlvOjpSZXNvdXJjZUJhc2UKICByZXN0X2Rlc2NyaXB0aW9uX2RvYyA9IFlBTUwubG9hZF9maWxlKCdwYXRoL3RvL2RvYy55bWwnKQogIHJlc3RfZGVzY3JpcHRpb24gPSBTY29ycGlvOjpHb29nbGU6OlJlc3REZXNjcmlwdGlvbi5uZXcocmVzdF9kZXNjcmlwdGlvbl9kb2MpCiAgc2VsZi5vcGVuYXBpX2RvY3VtZW50ID0gcmVzdF9kZXNjcmlwdGlvbi50b19vcGVuYXBpX2RvY3VtZW50CgogICMgLi4uIHRoZSByZW1haW5kZXIgb2YgeW91ciBzZXR1cCBhbmQgbW9kZWwgY29kZSBoZXJlCmVuZApgYGAKCiMjIE90aGVyCgpUaGUgZGV0YWlsZWQsIG1hY2hpbmUtaW50ZXJwcmV0YWJsZSBkZXNjcmlwdGlvbiBvZiBhbiBBUEkgcHJvdmlkZWQgYnkgYSBwcm9wZXJseS1jb25zdHJ1Y3RlZCBPcGVuQVBJIGRvY3VtZW50IG9wZW5zIHVwIG51bWVyb3VzIHBvc3NpYmlsaXRpZXMgdG8gYXV0b21hdGUgYXNwZWN0cyBvZiBjbGllbnRzIGFuZCBzZXJ2aWNlcyB0byBhbiBBUEkuIFRoZXNlIGFyZSBwbGFubmVkIHRvIGJlIGltcGxlbWVudGVkIGluIFNjb3JwaW86CgotIGNvbnN0cnVjdGluZyB0ZXN0IG9iamVjdHMgaW4gYSBtYW5uZXIgc2ltaWxhciB0byBGYWN0b3J5Qm90LCBhbGxvd2luZyB5b3UgdG8gd3JpdGUgdGVzdHMgdGhhdCBkZXBlbmQgb24gYSBzZXJ2aWNlIHdpdGhvdXQgaGF2aW5nIHRvIGludGVyYWN0IHdpdGggYW4gYWN0dWFsIHJ1bm5pbmcgaW5zdGFuY2Ugb2YgdGhhdCBzZXJ2aWNlIHRvIHJ1biB5b3VyIHRlc3RzCi0gcmFjayBtaWRkbGV3YXJlIHRvIHRlc3QgdGhhdCBvdXRnb2luZyBIVFRQIHJlc3BvbnNlcyBhcmUgY29uZm9ybWFudCB0byB0aGVpciByZXNwb25zZSBzY2hlbWFzCi0gcmFjayBtaWRkbGV3YXJlIHRvIHRlc3QgdGhhdCBpbmNvbWluZyBIVFRQIHJlcXVlc3RzIGFyZSBjb25mb3JtYW50IHRvIHRoZWlyIHJlcXVlc3Qgc2NoZW1hcywgYW5kIHRoYXQgdGhlIHNlcnZpY2UgaGFuZGxlcyBiYWQgcmVxdWVzdHMgYXBwcm9wcmlhdGVseSAoZS5nLiBlbnN1cmluZyB0aGF0IGZvciBhbnkgYmFkIHJlcXVlc3QsIHRoZSBzZXJ2aWNlIHJlc3BvbmRzIHdpdGggYSA0eHggZXJyb3IgaW5zdGVhZCBvZiAyeHgpLgotIGludGVncmF0aW5nIHdpdGggT1JNcyB0byBnZW5lcmF0ZSBIVFRQIHJlc3BvbnNlcyB0aGF0IGFyZSBjb25mb3JtYW50IHRvIHRoZSByZXNwb25zZSBzY2hlbWEgY29ycmVzcG9uZGluZyB0byB0aGUgcmVzb3VyY2UgY29ycmVzcG9uZGluZyB0byB0aGUgT1JNIG1vZGVsCi0gZ2VuZXJhdGluZyBtb2RlbCB2YWxpZGF0aW9ucyBmb3IgT1JNcwoKIyMgTGljZW5zZQoKWzxpbWcgYWxpZ249InJpZ2h0IiBzcmM9Imh0dHBzOi8vd3d3LmdudS5vcmcvZ3JhcGhpY3MvYWdwbHYzLTE1NXg1MS5wbmciPl0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLTMuMC5odG1sKQoKU2NvcnBpbyBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwtMy4wLmh0bWwpLgoKVW5saWtlIHRoZSBNSVQgb3IgQlNEIGxpY2Vuc2VzIG1vcmUgY29tbW9ubHkgdXNlZCB3aXRoIFJ1YnkgZ2VtcywgdGhpcyBsaWNlbnNlIHJlcXVpcmVzIHRoYXQgaWYgeW91IG1vZGlmeSBTY29ycGlvIGFuZCBwcm9wYWdhdGUgeW91ciBjaGFuZ2VzLCBlLmcuIGJ5IGluY2x1ZGluZyBpdCBpbiBhIHdlYiBhcHBsaWNhdGlvbiwgeW91ciBtb2RpZmllZCB2ZXJzaW9uIG11c3QgYmUgcHVibGljbHkgYXZhaWxhYmxlLiBUaGUgY29tbW9uIHBhdGggb2YgZm9ya2luZyBvbiBHaXRodWIgc2hvdWxkIHNhdGlzZnkgdGhpcyByZXF1aXJlbWVudC4K readmeEtag: '"519bf7dee47656ac88fa65e1d1dc5105840f42b0"' readmeLastModified: Mon, 01 Jul 2024 20:54:51 GMT repositoryId: 69611598 description: Resource-based Web API Client built on OpenAPI created: '2016-09-29T22:03:37Z' updated: '2024-07-01T21:09:43Z' language: Ruby archived: false stars: 12 watchers: 2 forks: 1 owner: notEthan logo: https://avatars.githubusercontent.com/u/133719?v=4 license: NOASSERTION repoEtag: '"3c20f777e913fe58383ad78b1e4a10de84f813e15fe4ada1ac04aef7b6ad6028"' repoLastModified: Mon, 01 Jul 2024 21:09:43 GMT foundInMaster: true name: Scorpio homepage: https://github.com/notEthan/Scorpio language: Ruby source_description: OpenAPI 2 and 3 implementation offering a HTTP client library category: - Client Implementations - Parsers id: f5eaaee9b2fb544cef330dcd2c4f0546 - source: openapi3 tags repository: https://github.com/vaclavnovotny/nswag.examples v3: true repositoryMetadata: base64Readme: >- IVtCdWlsZCBhbmQgUHVibGlzaF0oaHR0cHM6Ly9naXRodWIuY29tL3ZhY2xhdm5vdm90bnkvTlN3YWcuRXhhbXBsZXMvd29ya2Zsb3dzL0J1aWxkJTIwYW5kJTIwUHVibGlzaC9iYWRnZS5zdmcpICFbTnVnZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9OU3dhZy5FeGFtcGxlcz9jb2xvcj1ibHVlKQojIFJlc3BvbnNlIGFuZCBSZXF1ZXN0IEV4YW1wbGVzIGZvciBOU3dhZzwhLS0gb21pdCBmcm9tIHRvYyAtLT4KVGhpcyBsaWJyYXJ5IGFsbG93cyB5b3UgdG8gcHJvZ3JhbW1hdGljYWxseSBkZWZpbmUgc3dhZ2dlciBleGFtcGxlcyBpbiB5b3VyIE5TV2FnIGFwcGxpY2F0aW9uLiBFeGFtcGxlIGRpc2NvdmVyeSBvY2N1cnMgYXQgc3RhcnQgb2YgYXBwbGljYXRpb24gYW5kIHVzZXMgcmVmbGVjdGlvbi4gCgojIyMgT3ZlcnZpZXc6PCEtLSBvbWl0IGZyb20gdG9jIC0tPgotIFtTZXR1cF0oI3NldHVwKQogIC0gW0luc3RhbGwgcGFja2FnZV0oI2luc3RhbGwtcGFja2FnZSkKICAtIFtTZXR1cCBTdGFydHVwLmNzXSgjc2V0dXAtc3RhcnR1cGNzKQotIFtEZWZpbmUgZXhhbXBsZXMgZm9yIHlvdXIgdHlwZXNdKCNkZWZpbmUtZXhhbXBsZXMtZm9yLXlvdXItdHlwZXMpCiAgLSBbUmVxdWVzdCBQYXJhbWV0ZXJzXSgjcmVxdWVzdC1wYXJhbWV0ZXJzKQogIC0gW1JlcXVlc3QgQm9keSBQYXJhbWV0ZXJzXSgjcmVxdWVzdC1ib2R5LXBhcmFtZXRlcnMpCiAgLSBbUmVzcG9uc2UgQm9keV0oI3Jlc3BvbnNlLWJvZHkpCi0gW1VzZSBkZXBlbmRlbmN5IGluamVjdGlvbl0oI3VzZS1kZXBlbmRlbmN5LWluamVjdGlvbikKLSBbTXVsdGlwbGUgZXhhbXBsZXNdKCNtdWx0aXBsZS1leGFtcGxlcykKLSBbTmFtaW5nIHRoZSBleGFtcGxlc10oI25hbWluZy10aGUtZXhhbXBsZXMpCi0gW1NldCBleGFtcGxlIGZvciBzcGVjaWZpYyBlbmRwb2ludF0oI3NldC1leGFtcGxlLWZvci1zcGVjaWZpYy1lbmRwb2ludCkKLSBbUG9seW1vcnBoaXNtXSgjcG9seW1vcnBoaXNtKQotIFtTdXBwb3J0XSgjc3VwcG9ydCkKCgojIFNldHVwCgojIyBJbnN0YWxsIHBhY2thZ2UKCmBgYGNzaGFycApJbnN0YWxsLVBhY2thZ2UgTlN3YWcuRXhhbXBsZXMKYGBgCgojIyBTZXR1cCBTdGFydHVwLmNzCgpBZGQgc2VydmljZXMgbmVlZGVkIGZvciBleGFtcGxlIGRlZmluaXRpb24gdXNpbmcgYEFkZEV4YW1wbGVQcm92aWRlcnMoKWAgYW5kIHByb3ZpZGUgYXNzZW1ibGllcyB3aGVyZSBhcmUgeW91ciBleGFtcGxlcyBsb2NhdGVkLgpgYGBjc2hhcnAKcHVibGljIHZvaWQgQ29uZmlndXJlU2VydmljZXMoSVNlcnZpY2VDb2xsZWN0aW9uIHNlcnZpY2VzKQp7CiAgICBzZXJ2aWNlcy5BZGRDb250cm9sbGVycygpOwoKICAgIHNlcnZpY2VzLkFkZEV4YW1wbGVQcm92aWRlcnModHlwZW9mKENpdHlFeGFtcGxlKS5Bc3NlbWJseSk7CiAgICBzZXJ2aWNlcy5BZGRPcGVuQXBpRG9jdW1lbnQoKHNldHRpbmdzLCBwcm92aWRlcikgPT4KICAgIHsKICAgICAgICBzZXR0aW5ncy5BZGRFeGFtcGxlcyhwcm92aWRlcik7CiAgICB9KTsKfQpgYGAKCiMgRGVmaW5lIGV4YW1wbGVzIGZvciB5b3VyIHR5cGVzCgpDcmVhdGUgY2xhc3MgYW5kIGltcGxlbWVudCBpbnRlcmZhY2UgSUV4YW1wbGVQcm92aWRlcjxUPiB3aGVyZSBUIGlzIHRoZSB0eXBlIHlvdSB3YW50IHRvIGRlZmluZSBleGFtcGxlIGZvci4KYGBgY3NoYXJwCnB1YmxpYyBjbGFzcyBDaXR5RXhhbXBsZSA6IElFeGFtcGxlUHJvdmlkZXI8Q2l0eT4KewogICAgcHVibGljIENpdHkgR2V0RXhhbXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBDaXR5KCkKICAgICAgICB7CiAgICAgICAgICAgIElkID0gNSwKICAgICAgICAgICAgTmFtZSA9ICJCcm5vIiwKICAgICAgICAgICAgUGVvcGxlID0gbmV3IExpc3Q8UGVyc29uPigpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5ldyBQZXJzb24oKSB7SWQgPSAxLCBGaXJzdE5hbWUgPSAiSGVucnkiLCBMYXN0TmFtZSA9ICJDYXZpbGwifSwKICAgICAgICAgICAgICAgIG5ldyBQZXJzb24oKSB7SWQgPSAyLCBGaXJzdE5hbWUgPSAiSm9obiIsIExhc3ROYW1lID0gIkRvZSJ9CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQp9CgpgYGAKIyMgUmVxdWVzdCBQYXJhbWV0ZXJzCkZvciByZXF1ZXN0IG90aGVyIHRoYW4gYm9keSBwYXJhbWV0ZXJzIGxpa2UgcXVlcnksIHJvdXRlIG9yIGhlYWRlciBwYXJhbWV0ZXJzLCBzaW1wbHkgZGVmaW5lIHRoZSBleGFtcGxlIHVzaW5nIGBFeGFtcGxlQW5ub3RhdGlvbmAgYXRyaWJ1dGUgYW5kIHNldCBgRXhhbXBsZVR5cGVgIHRvIGBSZXF1ZXN0YCBvciBgQm90aGAuIApgYGBjc2hhcnAKW0V4YW1wbGVBbm5vdGF0aW9uKE5hbWUgPSAiU2VhcmNoIHRleHQgJ2luc3Bla3RvciciLCBFeGFtcGxlVHlwZSA9IEV4YW1wbGVUeXBlLlJlcXVlc3QpXQpwdWJsaWMgY2xhc3MgUGVyc29uVGV4dEV4YW1wbGUxIDogSUV4YW1wbGVQcm92aWRlcjxzdHJpbmc+CnsKICAgIHB1YmxpYyBzdHJpbmcgR2V0RXhhbXBsZSgpID0+ICJpbnNwZWt0b3IiOwp9CmBgYApBZnRlciB0aGF0LCB5b3UgYWxzbyBuZWVkIGRlY29yYXRlIGVuZHBvaW50IHdoaWNoIGV4YW1wbGVzIHlvdSB3aXNoIHRvIGJlIHNob3dlZAoKYGBgY3NoYXJwCltIdHRwR2V0XQpbRW5kcG9pbnRTcGVjaWZpY0V4YW1wbGUodHlwZW9mKFBlcnNvblRleHRFeGFtcGxlMSksIFBhcmFtZXRlck5hbWUgPSAic2VhcmNoVGV4dCIsIEV4YW1wbGVUeXBlID0gRXhhbXBsZVR5cGUuUmVxdWVzdCldCnB1YmxpYyBJQWN0aW9uUmVzdWx0IEdldFBlb3BsZShbRnJvbVF1ZXJ5XSBpbnQ/IG1pbkFnZSA9IG51bGwsIFtGcm9tUXVlcnldIHN0cmluZyBzZWFyY2hUZXh0ID0gbnVsbCkKewogICAgLi4uCn0KYGBgCgojIyBSZXF1ZXN0IEJvZHkgUGFyYW1ldGVycwoKRm9yIHJlcXVlc3QgYm9keSBwYXJhbWV0ZXJzIHRoZXJlIGlzIG5vdGhpbmcgeW91IG5lZWQgdG8gd29ycnkgYWJvdXQsIGp1c3QgbWFyayB5b3VyIHBhcmFtZXRlciBgW0Zyb21Cb2R5XWAuCmBgYGNzaGFycApbSHR0cFBvc3RdCnB1YmxpYyBhc3luYyBUYXNrPElBY3Rpb25SZXN1bHQ+IENyZWF0ZVBlcnNvbihbRnJvbUJvZHksIEJpbmRSZXF1aXJlZF0gUGVyc29uIHBlcnNvbikKewogICAgLy8gY3JlYXRlIHBlcnNvbiBsb2dpYwogICAgcmV0dXJuIE9rKCk7Cn0KYGBgClJlc3VsdCBpbiBzd2FnZ2VyOgohW0ltYWdlIG9mIHJlcXVlc3QgYm9keV0oaHR0cHM6Ly9naXRodWIuY29tL3ZhY2xhdm5vdm90bnkvaW1hZ2VzL2Jsb2IvbWFpbi9yZXF1ZXN0RXhhbXBsZS5KUEcpCgojIyBSZXNwb25zZSBCb2R5CgpGb3IgcmVzcG9uc2UgYm9keSB0eXBlcyB5b3UgbmVlZCB0byBkZWNvcmF0ZSB5b3VyIG1ldGhvZCB3aXRoIGBbUHJvZHVjZXNSZXNwb25zZVR5cGVdYApgYGBjc2hhcnAKW0h0dHBHZXQoIntpZH0iKV0KW1Byb2R1Y2VzUmVzcG9uc2VUeXBlKFN0YXR1c0NvZGVzLlN0YXR1czIwME9LLCBUeXBlID0gdHlwZW9mKFBlcnNvbikpXQpwdWJsaWMgYXN5bmMgVGFzazxJQWN0aW9uUmVzdWx0PiBHZXRQZXJzb24oW0Zyb21Sb3V0ZV1pbnQgaWQpCnsKICAgIHJldHVybiBPayhuZXcgUGVyc29uKCkpOwp9CmBgYAoKUmVzdWx0IGluIHN3YWdnZXI6CiFbSW1hZ2Ugb2YgcmVxdWVzdCBib2R5XShodHRwczovL2dpdGh1Yi5jb20vdmFjbGF2bm92b3RueS9pbWFnZXMvYmxvYi9tYWluL3Jlc3BvbnNlRXhhbXBsZVNpbmdsZS5KUEcpCgojIFVzZSBkZXBlbmRlbmN5IGluamVjdGlvbgoKWW91IGNhbiBhbHNvIHVzZSBkZXBlbmRlbmN5IGluamVjdGlvbiBpbiBjb25zdHJ1Y3RvciBvZiB5b3VyIGV4YW1wbGUgcHJvdmlkZXIgY2xhc3MuCgpDb25zdHJ1Y3RvciBhbmQgYEdldEV4YW1wbGVgIG1ldGhvZCBnZXRzIGNhbGxlZCB3aGVuIG9wZXJhdGlvbiBwcm9jZXNzb3JzIGFyZSBleGVjdXRlZCAtIHdoZW4gc3dhZ2dlciBzcGVjaWZpY2F0aW9uIGlzIGJlaW5nIGdlbmVyYXRlZCB3aGljaCBpcyBkdXJpbmcgZmlyc3QgcmVxdWVzdCBvbiBzd2FnZ2VyLgpgYGBjc2hhcnAKcHVibGljIGNsYXNzIFBlcnNvbkV4YW1wbGUgOiBJRXhhbXBsZVByb3ZpZGVyPFBlcnNvbj4KewogICAgcHJpdmF0ZSByZWFkb25seSBJUGVyc29uTmFtZUdlbmVyYXRvciBfbmFtZUdlbmVyYXRvcjsKICAgIHByaXZhdGUgcmVhZG9ubHkgUmFuZG9tIF9yYW5kb207CgogICAgcHVibGljIFBlcnNvbkV4YW1wbGUoSVBlcnNvbk5hbWVHZW5lcmF0b3IgbmFtZUdlbmVyYXRvcikKICAgIHsKICAgICAgICBfbmFtZUdlbmVyYXRvciA9IG5hbWVHZW5lcmF0b3I7CiAgICAgICAgX3JhbmRvbSA9IG5ldyBSYW5kb20oKTsgCiAgICB9CgogICAgcHVibGljIFBlcnNvbiBHZXRFeGFtcGxlKCkKICAgIHsKICAgICAgICByZXR1cm4gbmV3IFBlcnNvbigpCiAgICAgICAgewogICAgICAgICAgICBJZCA9IF9yYW5kb20uTmV4dCgxLCAxMDApLAogICAgICAgICAgICBGaXJzdE5hbWUgPSBfbmFtZUdlbmVyYXRvci5HZW5lcmF0ZVJhbmRvbUZpcnN0TmFtZSgpLAogICAgICAgICAgICBMYXN0TmFtZSA9IF9uYW1lR2VuZXJhdG9yLkdlbmVyYXRlUmFuZG9tTGFzdE5hbWUoKQogICAgICAgIH07CiAgICB9Cn0KYGBgCgpZb3UgY2FuIGFsc28gY29tYmluZSBleGFtcGxlcyBieSByZXVzaW5nIGBJRXhhbXBsZVByb3ZpZGVyPFQ+YC4gWW91IGNhbiBkaXJlY3RseSBpbmplY3QgZGVzaXJlZCBleGFtcGxlIHByb3ZpZGVycyBpbnRvIGNvbnN0cnVjdG9yIGFuZCB1c2UgdGhlbSB3aXRoaW4geW91ciBleGFtcGxlIHByb3ZpZGVyLgpgYGBjc2hhcnAKcHVibGljIGNsYXNzIFByYWd1ZUV4YW1wbGUgOiBJRXhhbXBsZVByb3ZpZGVyPENpdHk+CnsKICAgIHByaXZhdGUgcmVhZG9ubHkgSUVudW1lcmFibGU8SUV4YW1wbGVQcm92aWRlcjxQZXJzb24+PiBfcGVvcGxlRXhhbXBsZXM7CgogICAgcHVibGljIFByYWd1ZUV4YW1wbGUoSUVudW1lcmFibGU8SUV4YW1wbGVQcm92aWRlcjxQZXJzb24+PiBwZW9wbGVFeGFtcGxlcykgewogICAgICAgIF9wZW9wbGVFeGFtcGxlcyA9IHBlb3BsZUV4YW1wbGVzOwogICAgfQogICAgCiAgICBwdWJsaWMgQ2l0eSBHZXRFeGFtcGxlKCkgewogICAgICAgIHJldHVybiBuZXcgQ2l0eSB7CiAgICAgICAgICAgIElkID0gNDIwLAogICAgICAgICAgICBOYW1lID0gIlByYWd1ZSIsCiAgICAgICAgICAgIFBlb3BsZSA9IF9wZW9wbGVFeGFtcGxlcy5TZWxlY3QoeCA9PiB4LkdldEV4YW1wbGUoKSkuVG9MaXN0KCkKICAgICAgICB9OwogICAgfQp9CmBgYAoKIyBNdWx0aXBsZSBleGFtcGxlcwpUbyBkZWZpbmUgbXVsdGlwbGUgZXhhbXBsZXMgZm9yIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSwgc2ltcGx5IGNyZWF0ZSBtb3JlIGNsYXNzZXMgaW1wbGVtZW50aW5nIGBJRXhhbXBsZVByb3ZpZGVyPFQ+YCBtdWx0aXBsZSB0aW1lcy4KSGVyZSwgdG8gZGVmaW5lIG11bHRpcGxlIGV4YW1wbGVzIG9mIHR5cGUgYENpdHlgLCB3ZSBjcmVhdGUgdHdvIGNsYXNzZXMgdGhhdCBpbXBsZW1lbnQgaW50ZXJmYWNlIGBJRXhhbXBsZVByb3ZpZGVyPENpdHk+YC4KYGBgY3NoYXJwCnB1YmxpYyBjbGFzcyBCcm5vRXhhbXBsZSA6IElFeGFtcGxlUHJvdmlkZXI8Q2l0eT4KewogICAgcHVibGljIENpdHkgR2V0RXhhbXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBDaXR5IHsKICAgICAgICAgICAgSWQgPSA1LAogICAgICAgICAgICBOYW1lID0gIkJybm8iLAogICAgICAgICAgICBQZW9wbGUgPSBuZXcgTGlzdDxQZXJzb24+IHsKICAgICAgICAgICAgICAgIG5ldyBQZXJzb24ge0lkID0gMSwgRmlyc3ROYW1lID0gIkhlbnJ5IiwgTGFzdE5hbWUgPSAiQ2F2aWxsIn0sCiAgICAgICAgICAgICAgICBuZXcgUGVyc29uIHtJZCA9IDIsIEZpcnN0TmFtZSA9ICJKb2huIiwgTGFzdE5hbWUgPSAiRG9lIn0KICAgICAgICAgICAgfQogICAgICAgIH07CiAgICB9Cn0KCnB1YmxpYyBjbGFzcyBQcmFndWVFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxDaXR5Pgp7CiAgICBwdWJsaWMgQ2l0eSBHZXRFeGFtcGxlKCkgewogICAgICAgIHJldHVybiBuZXcgQ2l0eSB7CiAgICAgICAgICAgIElkID0gNDIwLAogICAgICAgICAgICBOYW1lID0gIlByYWd1ZSIsCiAgICAgICAgICAgIFBlb3BsZSA9IG5ldyBMaXN0PFBlcnNvbj4gewogICAgICAgICAgICAgICAgbmV3IFBlcnNvbiB7SWQgPSAxLCBGaXJzdE5hbWUgPSAiSGVucnkiLCBMYXN0TmFtZSA9ICJDYXZpbGwifSwKICAgICAgICAgICAgICAgIG5ldyBQZXJzb24ge0lkID0gMiwgRmlyc3ROYW1lID0gIkpvaG4iLCBMYXN0TmFtZSA9ICJEb2UifQogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgIH0KfQpgYGAKU3dhZ2dlciB0aGVuIGNvbnRhaW5zIGRyb3Bkb3duIHdpdGggdGhlc2Ugb3B0aW9uczoKIVtNdWx0aXBsZSBleGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL3ZhY2xhdm5vdm90bnkvaW1hZ2VzL2Jsb2IvbWFpbi9tdWx0aXBsZWV4YW1wbGVzLmpwZykKCiMgTmFtaW5nIHRoZSBleGFtcGxlcwpZb3UgY2FuIG5hbWUgZXhhbXBsZXMgc28gdGhleSBkbyBub3Qgc2hvdyB1cCBpbiBTd2FnZ2VyIGFzIEV4YW1wbGUgMSwgRXhhbXBsZSAyLCBldGMuClNpbXBseSBhbm5vdGF0ZSB5b3VyIGV4YW1wbGUgd2l0aCBgRXhhbXBsZUFubm90YXRpb25gIGF0dHJpYnV0ZSBhbmQgc2V0IGBOYW1lYCBwcm9wZXJ0eS4KCmBgYGNzaGFycApbRXhhbXBsZUFubm90YXRpb24oTmFtZSA9ICJCcm5vIildCnB1YmxpYyBjbGFzcyBCcm5vRXhhbXBsZSA6IElFeGFtcGxlUHJvdmlkZXI8Q2l0eT4KYGBgClN3YWdnZXIgdGhlbiBzaG93cyB0aGVzZSBuYW1lcyBpbiBkcm9wZG93bjoKIVtOYW1lZCBleGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL3ZhY2xhdm5vdm90bnkvaW1hZ2VzL2Jsb2IvbWFpbi9uYW1pbmdleGFtcGxlcy5qcGcpCgojIFJlc3RyaWN0aW5nIGV4YW1wbGVzIHRvIHJlcXVlc3Qgb3IgcmVzcG9uc2UgY29udGVudApFeGFtcGxlcyBjYW4gYmUgYW5ub3RhdGVkIHRvIHJlc3RyaWN0IHRoZWlyIHVzYWdlIHRvIGVpdGhlciBhIHJlcXVlc3Qgb3IgYSByZXNwb25zZSBib2R5LiAgVGhpcyBpcyB1c2VmdWwgd2hlbiB0aGUgc2FtZSB0eXBlIG1heSBiZSB1c2VkIG9uIGJvdGggcmVxdWVzdHMgYW5kIHJlc3BvbnNlcywgYW5kIHlvdSB3YW50IHRvIHJlc3RyaWN0IGV4YW1wbGVzIHdpdGhvdXQgc3BlY2lmeWluZyBzcGVjaWZpYyBleGFtcGxlcy4KYGBgY3NoYXJwCltFeGFtcGxlQW5ub3RhdGlvbihFeGFtcGxlVHlwZSA9IEV4YW1wbGVUeXBlLlJlcXVlc3QpXQpwdWJsaWMgY2xhc3MgUmVxdWVzdEV4YW1wbGUgOiBJRXhhbXBsZVByb3ZpZGVyPENpdHk+IHsuLi59CgpbRXhhbXBsZUFubm90YXRpb24oRXhhbXBsZVR5cGUgPSBFeGFtcGxlVHlwZS5SZXNwb25zZSldCnB1YmxpYyBjbGFzcyBSZXNwb25zZUV4YW1wbGUgOiBJRXhhbXBsZVByb3ZpZGVyPENpdHk+IHsuLi59CmBgYAoKIyBTZXQgZXhhbXBsZSBmb3Igc3BlY2lmaWMgZW5kcG9pbnQKSXQgaXMgcG9zc2libGUgdG8gc2V0IHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIGBJRXhhbXBsZVByb3ZpZGVyPFQ+YCB0byBkZXNpcmVkIEFQSSBlbmRwb2ludC4gVGhpcyBtYXkgYmUgaGFuZHkgd2hlbiBtdWx0aXBsZSBlbmRwb2ludHMgcmV0dXJuIHNhbWUgdHlwZSBvciBpZiBwcmltaXRpdmUgdHlwZSBpcyByZXR1cm5lZCBidXQgeW91IG5lZWQgdG8gc3BlY2lmeSBzcGVjaWZpYyB2YWx1ZS4KVG8gc2V0IHNwZWNpZmljIGV4YW1wbGUsIHNpbXBseSBhbm5vdGF0ZSBjb250cm9sbGVycyBtZXRob2Qgd2l0aCBgRW5kcG9pbnRTcGVjaWZpY0V4YW1wbGVgIGF0dHJpYnV0ZSBhbmQgcHJvdmlkZSB0eXBlIG9mIHRoZSBleGFtcGxlIGNsYXNzLgoKYGBgY3NoYXJwCltIdHRwR2V0KCJ7aWR9L2FnZSIpXQpbUHJvZHVjZXNSZXNwb25zZVR5cGUoU3RhdHVzQ29kZXMuU3RhdHVzMjAwT0ssIFR5cGUgPSB0eXBlb2YoaW50KSldCltFbmRwb2ludFNwZWNpZmljRXhhbXBsZSh0eXBlb2YoUGVyc29uU3BlY2lmaWNBZ2VFeGFtcGxlKSldIC8vIDwtLS0tLQpwdWJsaWMgSUFjdGlvblJlc3VsdCBHZXRQZXJzb25BZ2UoW0Zyb21Sb3V0ZV0gaW50IGlkKSB7Li4ufQoKcHVibGljIGNsYXNzIFBlcnNvblNwZWNpZmljQWdlRXhhbXBsZSA6IElFeGFtcGxlUHJvdmlkZXI8aW50Pgp7CiAgICBwdWJsaWMgaW50IEdldEV4YW1wbGUoKSA9PiA2OTsKfQpgYGAKCiMgU3BlY2lmeSB0aGF0IGFuIGV4YW1wbGUgaXMgc3BlY2lmaWNhbGx5IGZvciBhIHJlcXVlc3Qgb3IgcmVzcG9uc2UKV2hlbiBzZXR0aW5nIGEgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgYElFeGFtcGxlUHJvdmlkZXI8VD5gIGZvciBhIGRlc2lyZWQgQVBJIGVuZHBvaW50LCBpdCBtYXkgYmUgZGVzaXJlZCB0byBzcGVjaWZ5IHNwZWNpZmljYWxseSB3aGV0aGVyIHRoaXMgZXhhbXBsZSBhcHBsaWVzIHRvIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlLgoKYGBgY3NoYXJwCltIdHRwUG9zdCgiYWdlIildCltQcm9kdWNlc1Jlc3BvbnNlVHlwZShTdGF0dXNDb2Rlcy5TdGF0dXMyMDBPSywgVHlwZSA9IHR5cGVvZihpbnQpKV0KW0VuZHBvaW50U3BlY2lmaWNFeGFtcGxlKHR5cGVvZihQZXJzb25TcGVjaWZpY0FnZTY5RXhhbXBsZSksIEV4YW1wbGVUeXBlID0gRXhhbXBsZVR5cGUuUmVzcG9uc2UpXSAvLyA8LS0tLS0gUHJldmVudHMgZXhhbXBsZSBmcm9tIGJlaW5nIHVzZWQgaW4gdGhlIHJlcXVlc3QKW0VuZHBvaW50U3BlY2lmaWNFeGFtcGxlKHR5cGVvZihQZXJzb25TcGVjaWZpY0FnZTUwRXhhbXBsZSksIEV4YW1wbGVUeXBlID0gRXhhbXBsZVR5cGUuUmVxdWVzdCldIC8vIDwtLS0tLSBQcmV2ZW50cyBleGFtcGxlIGZyb20gYmVpbmcgdXNlZCBpbiB0aGUgcmVzcG9uc2UKcHVibGljIElBY3Rpb25SZXN1bHQgR2V0UGVyc29uQWdlKFtGcm9tQm9keV0gaW50IGlkKSB7Li4ufQoKLy8gSW5jbHVkZWQgb24gcmVzcG9uc2UKcHVibGljIGNsYXNzIFBlcnNvblNwZWNpZmljQWdlNjlFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxpbnQ+CnsKICAgIHB1YmxpYyBpbnQgR2V0RXhhbXBsZSgpID0+IDY5Owp9CgovLyBJbmNsdWRlZCBvbiByZXF1ZXN0CnB1YmxpYyBjbGFzcyBQZXJzb25TcGVjaWZpY0FnZTUwRXhhbXBsZSA6IElFeGFtcGxlUHJvdmlkZXI8aW50Pgp7CiAgICBwdWJsaWMgaW50IEdldEV4YW1wbGUoKSA9PiA1MDsKfQpgYGAKCiMgU3BlY2lmeSB0aGF0IGFuIGV4YW1wbGUgaXMgc3BlY2lmaWNhbGx5IGZvciBhIHNwZWNpZmljIHJlc3BvbnNlIGNvZGUKV2hlbiBzZXR0aW5nIGEgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgYElFeGFtcGxlUHJvdmlkZXI8VD5gIGZvciBhIGRlc2lyZWQgQVBJIGVuZHBvaW50LCBpdCBtYXkgYmUgZGVzaXJlZCB0byBzcGVjaWZ5IHNwZWNpZmljYWxseSB3aGV0aGVyIHRoaXMgZXhhbXBsZSBhcHBsaWVzIHRvIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlLgoKYGBgY3NoYXJwCltIdHRwR2V0KCJ7aWR9L2FnZSIpXQpbUHJvZHVjZXNSZXNwb25zZVR5cGUoU3RhdHVzQ29kZXMuU3RhdHVzMjAwT0ssIFR5cGUgPSB0eXBlb2YoaW50KSldCltFbmRwb2ludFNwZWNpZmljRXhhbXBsZSh0eXBlb2YoUGVyc29uU3BlY2lmaWNBZ2VFeGFtcGxlKSwgRXhhbXBsZVR5cGUgPSBFeGFtcGxlVHlwZS5SZXNwb25zZSwgUmVzcG9uc2VTdGF0dXNDb2RlID0gU3RhdHVzQ29kZXMuU3RhdHVzMjAwT0spXSAvLyA8LS0tLS0gT25seSBzaG93biBmb3IgMjAwIHJlc3BvbnNlcwpbRW5kcG9pbnRTcGVjaWZpY0V4YW1wbGUodHlwZW9mKEJhZFJlcXVlc3RFeGFtcGxlKSwgRXhhbXBsZVR5cGUgPSBFeGFtcGxlVHlwZS5SZXNwb25zZSwgUmVzcG9uc2VTdGF0dXNDb2RlID0gU3RhdHVzQ29kZXMuU3RhdHVzNDAwQmFkUmVxdWVzdCldIC8vIDwtLS0tLSBPbmx5IHNob3duIGZvciA0MDAgcmVzcG9uc2VzCnB1YmxpYyBJQWN0aW9uUmVzdWx0IEdldFBlcnNvbkFnZShbRnJvbVJvdXRlXSBpbnQgaWQpIHsuLi59CgpwdWJsaWMgY2xhc3MgUGVyc29uU3BlY2lmaWNBZ2VFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxpbnQ+CnsKICAgIHB1YmxpYyBpbnQgR2V0RXhhbXBsZSgpID0+IDY5Owp9CgpwdWJsaWMgY2xhc3MgQmFkUmVxdWVzdEV4YW1wbGUgOiBJRXhhbXBsZVByb3ZpZGVyPHN0cmluZz4KewogICAgcHVibGljIGludCBHZXRFeGFtcGxlKCkgPT4gIk9vcHMhIEludmFsaWQgaWQgZm9ybWF0IGVycm9yLiI7Cn0KYGBgCgojIFNldCBtdWx0aXBsZSBleGFtcGxlcyBmb3Igc3BlY2lmaWMgZW5kcG9pbnQKSXQgaXMgcG9zc2libGUgdG8gc2V0IG11bHRpcGxlIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBgSUV4YW1wbGVQcm92aWRlcjxUPmAgdG8gZGVzaXJlZCBBUEkgZW5kcG9pbnQuIFRoaXMgbWF5IGJlIGhhbmR5IHdoZW4gbXVsdGlwbGUgZW5kcG9pbnRzIHJldHVybiBzYW1lIHR5cGUgb3IgaWYgcHJpbWl0aXZlIHR5cGUgaXMgcmV0dXJuZWQgYnV0IHlvdSBuZWVkIHRvIHNwZWNpZnkgc3BlY2lmaWMgdmFsdWUuClRvIHNldCBzcGVjaWZpYyBleGFtcGxlLCBzaW1wbHkgYW5ub3RhdGUgY29udHJvbGxlcnMgbWV0aG9kIHdpdGggYEVuZHBvaW50U3BlY2lmaWNFeGFtcGxlYCBhdHRyaWJ1dGUgYW5kIHByb3ZpZGUgdHlwZSBvZiB0aGUgZXhhbXBsZSBjbGFzcy4KCmBgYGNzaGFycApbSHR0cEdldCgie2lkfS9hZ2UiKV0KW1Byb2R1Y2VzUmVzcG9uc2VUeXBlKFN0YXR1c0NvZGVzLlN0YXR1czIwME9LLCBUeXBlID0gdHlwZW9mKGludCkpXQpbRW5kcG9pbnRTcGVjaWZpY0V4YW1wbGUodHlwZW9mKFBlcnNvblNwZWNpZmljQWdlNjlFeGFtcGxlKSwgdHlwZW9mKFBlcnNvblNwZWNpZmljQWdlNTBFeGFtcGxlKSldIC8vIDwtLS0tLQpwdWJsaWMgSUFjdGlvblJlc3VsdCBHZXRQZXJzb25BZ2UoW0Zyb21Sb3V0ZV0gaW50IGlkKSB7Li4ufQoKLy8gSW5jbHVkZWQKcHVibGljIGNsYXNzIFBlcnNvblNwZWNpZmljQWdlNjlFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxpbnQ+CnsKICAgIHB1YmxpYyBpbnQgR2V0RXhhbXBsZSgpID0+IDY5Owp9CgovLyBJbmNsdWRlZApwdWJsaWMgY2xhc3MgUGVyc29uU3BlY2lmaWNBZ2U1MEV4YW1wbGUgOiBJRXhhbXBsZVByb3ZpZGVyPGludD4KewogICAgcHVibGljIGludCBHZXRFeGFtcGxlKCkgPT4gNTA7Cn0KCi8vIEV4Y2x1ZGVkCnB1YmxpYyBjbGFzcyBQZXJzb25TcGVjaWZpY0FnZTM1RXhhbXBsZSA6IElFeGFtcGxlUHJvdmlkZXI8aW50Pgp7CiAgICBwdWJsaWMgaW50IEdldEV4YW1wbGUoKSA9PiAzNTsKfQpgYGAKCiMgUG9seW1vcnBoaXNtClRvIGRlZmluZSBzcGVjaWZpYyBleGFtcGxlcyBvZiBhYnN0cmFjdCBjbGFzc2VzIHRoYXQgYXJlIHJldHVybmVkIG9yIHJlY2VpdmVkIGluIGNvbnRyb2xsZXIsIHNpbXBseSBpbXBsZW1lbnQgYElFeGFtcGxlUHJvdmlkZXI8VD5gIHdoZXJlIGBUYCBpcyB0aGUgdHlwZSBvZiBhYnN0cmFjdCBjbGFzcy4gCkluIGV4YW1wbGUgYmVsb3csIHdlIGhhdmUgYWJzdHJhY3QgY2xhc3MgYEFuaW1hbGAgd2hpY2ggaXMgcmV0dXJuZWQgYXMgY29sbGVjdGlvbiBmcm9tIGBHZXRBbmltYWxzYCBlbmRwb2ludC4gVG8gc3BlY2lmeSBleGFtcGxlcyBmb3IgZWFjaCBpbXBsZW1lbnRhdGlvbiBvZiBgQW5pbWFsYCB0eXBlLCB3ZSBjcmVhdGUgY2xhc3NlcyB0aGF0IGltcGxlbWVudCBgSUV4YW1wbGVQcm92aWRlcjxBbmltYWw+YC4KYGBgY3NoYXJwCltIdHRwR2V0XQpbUHJvZHVjZXNSZXNwb25zZVR5cGUoU3RhdHVzQ29kZXMuU3RhdHVzMjAwT0ssIFR5cGUgPSB0eXBlb2YoSUVudW1lcmFibGU8QW5pbWFsPikpXQpwdWJsaWMgSUFjdGlvblJlc3VsdCBHZXRBbmltYWxzKCkgey4uLn0KCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBbmltYWwgey4uLn0KCnB1YmxpYyBjbGFzcyBNb25rZXkgOiBBbmltYWwKewogICAgcHVibGljIGludCBQb29wc1Rocm93biB7IGdldDsgc2V0OyB9Cn0KCnB1YmxpYyBjbGFzcyBTbG90aCA6IEFuaW1hbAp7CiAgICBwdWJsaWMgdWludCBZYXduc0NvdW50IHsgZ2V0OyBzZXQ7IH0KfQoKW0V4YW1wbGVBbm5vdGF0aW9uKE5hbWUgPSAiTW9ua2V5IildCnB1YmxpYyBjbGFzcyBNb25rZXlFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxBbmltYWw+CnsKICAgIHB1YmxpYyBBbmltYWwgR2V0RXhhbXBsZSgpID0+IG5ldyBNb25rZXkgeyBBZ2UgPSA1LCBOYW1lID0gIkhhcmFtYmUiLCBQYXduQ291bnQgPSA0LCBQb29wc1Rocm93biA9IDE4IH07Cn0KCltFeGFtcGxlQW5ub3RhdGlvbihOYW1lID0gIlNsb3RoIildCnB1YmxpYyBjbGFzcyBTbG90aEV4YW1wbGUgOiBJRXhhbXBsZVByb3ZpZGVyPEFuaW1hbD4KewogICAgcHVibGljIEFuaW1hbCBHZXRFeGFtcGxlKCkgPT4gbmV3IFNsb3RoIHsgQWdlID0gMTgsIE5hbWUgPSAiVmVuY2UiLCBQYXduQ291bnQgPSA0LCBZYXduc0NvdW50ID0gMTU4IH07Cn0KYGBgClN3YWdnZXIgdGhlbiBzaG93cyBhbGwgZXhhbXBsZXMgaW4gcmVzcG9uc2UgYm9keSB3aXRoIGRyb3Bkb3duOgohW1BvbHltb3JwaGlzbSBzaW5nbGUgaXRlbSByZXNwb25zZSBib2R5XShodHRwczovL2dpdGh1Yi5jb20vdmFjbGF2bm92b3RueS9pbWFnZXMvYmxvYi9tYWluL3BvbHltb3JwaGlzbTMuanBnKQoKT3IgaW4gY2FzZSBvZiBlbnVtZXJhYmxlIGluIHJlc3BvbnNlIGJvZHk6CiFbUG9seW1vcnBoaXNtIGluIHJlc3BvbnNlIGJvZHldKGh0dHBzOi8vZ2l0aHViLmNvbS92YWNsYXZub3ZvdG55L2ltYWdlcy9ibG9iL21haW4vcG9seW1vcnBoaXNtLmpwZykKCk9yIGluIGNhc2Ugb2YgcmVxdWVzdCBib2R5LCBTd2FnZ2VyIHNob3dzIGRyb3Bkb3duIG9mIGFsbCBkZWZpbmVkIGV4YW1wbGVzOgohW1BvbHltb3JwaGlzbSBpbiByZXF1ZXN0IGJvZHldKGh0dHBzOi8vZ2l0aHViLmNvbS92YWNsYXZub3ZvdG55L2ltYWdlcy9ibG9iL21haW4vcG9seW1vcnBoaXNtMi5qcGcpCgpfTm90ZTpfIFNldCB5b3VyIEpzb25TZXJpYWxpemVyIHNldHRpbmdzIFtUeXBlTmFtZUhhbmRsaW5nXShodHRwczovL3d3dy5uZXd0b25zb2Z0LmNvbS9qc29uL2hlbHAvaHRtbC9zZXJpYWxpemV0eXBlbmFtZWhhbmRsaW5nLmh0bSkgdG8gc2VlIGRpc2NyaW1pbmF0b3IuIEZvciBleGFtcGxlOgoKYGBgY3NoYXJwCnNlcnZpY2VzLkFkZE9wZW5BcGlEb2N1bWVudCgKICAgIChzZXR0aW5ncywgcHJvdmlkZXIpID0+CiAgICB7CiAgICAgICAgc2V0dGluZ3MuU2VyaWFsaXplclNldHRpbmdzID0gbmV3IEpzb25TZXJpYWxpemVyU2V0dGluZ3MoKSB7IFR5cGVOYW1lSGFuZGxpbmcgPSBUeXBlTmFtZUhhbmRsaW5nLkF1dG8gfTsKICAgICAgICBzZXR0aW5ncy5BZGRFeGFtcGxlcyhwcm92aWRlcik7CiAgICB9KTsKYGBgCgoKIyBTdXBwb3J0CkkgcGVyc29uYWxseSB1c2UgdGhpcyBOdUdldCBpbiBteSBwcm9qZWN0cywgc28gSSB3aWxsIGtlZXAgdGhpcyByZXBvc2l0b3J5IHVwLXRvLWRhdGUuIEFueSBpZGVhcyBmb3IgZXh0ZW5kaW5nIGZ1bmN0aW9uYWxpdGllcyBhcmUgd2VsY29tZSwgc28gY3JlYXRlIGFuIGlzc3VlIHdpdGggcHJvcG9zYWwuIAoKIyMjIERpZCBJIHNhdmUgeW91IHNvbWUgaG91cnM/PCEtLSBvbWl0IGZyb20gdG9jIC0tPgpbIVtrby1maV0oaHR0cHM6Ly93d3cua28tZmkuY29tL2ltZy9naXRodWJidXR0b25fc20uc3ZnKV0oaHR0cHM6Ly9rby1maS5jb20vVTdVNzJHMUEyKQo= readmeEtag: '"8cba263a77f9875a5583d6efad6f978de2162493"' readmeLastModified: Sat, 18 May 2024 11:11:36 GMT repositoryId: 303455072 description: >- NSwag processor to programmatically define strongly-typed examples for response and request parameters. created: '2020-10-12T16:48:05Z' updated: '2024-06-19T10:42:56Z' language: C# archived: false stars: 11 watchers: 2 forks: 11 owner: vaclavnovotny logo: https://avatars.githubusercontent.com/u/17833494?v=4 license: MIT repoEtag: '"008d7e99b9b0a2b55ce6be4aaf7f012b286d2899f64e05425b5b3bb3e83426a3"' repoLastModified: Wed, 19 Jun 2024 10:42:56 GMT foundInMaster: true id: 2baf0af965838620471c5542f55d29e8 - source: openapi3 tags repository: https://github.com/avanov/openapi-type v3: true repositoryMetadata: base64Readme: >- Li4gX2JhZGdlczoKCi4uIGltYWdlOjogaHR0cHM6Ly9naXRodWIuY29tL2F2YW5vdi9vcGVuYXBpLXR5cGUvd29ya2Zsb3dzL0NJL2JhZGdlLnN2Zz9icmFuY2g9ZGV2ZWxvcAogICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2F2YW5vdi9vcGVuYXBpLXR5cGUvYWN0aW9ucz9xdWVyeT1icmFuY2glM0FkZXZlbG9wCgouLiBpbWFnZTo6IGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9hdmFub3Yvb3BlbmFwaS10eXBlL2JhZGdlLnN2Zz9icmFuY2g9ZGV2ZWxvcAogICAgOnRhcmdldDogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2F2YW5vdi9vcGVuYXBpLXR5cGU/YnJhbmNoPWRldmVsb3AKCi4uIGltYWdlOjogaHR0cHM6Ly9yZXF1aXJlcy5pby9naXRodWIvYXZhbm92L29wZW5hcGktdHlwZS9yZXF1aXJlbWVudHMuc3ZnP2JyYW5jaD1tYXN0ZXIKICAgIDp0YXJnZXQ6IGh0dHBzOi8vcmVxdWlyZXMuaW8vZ2l0aHViL2F2YW5vdi9vcGVuYXBpLXR5cGUvcmVxdWlyZW1lbnRzLz9icmFuY2g9bWFzdGVyCiAgICA6YWx0OiBSZXF1aXJlbWVudHMgU3RhdHVzCgouLiBpbWFnZTo6IGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL29wZW5hcGktdHlwZS9iYWRnZS8/dmVyc2lvbj1sYXRlc3QKICAgIDp0YXJnZXQ6IGh0dHBzOi8vb3BlbmFwaS10eXBlLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8KICAgIDphbHQ6IERvY3VtZW50YXRpb24gU3RhdHVzCgouLiBpbWFnZTo6IGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaS10eXBlLnN2ZwogICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9vcGVuYXBpLXR5cGUKICAgIDphbHQ6IExhdGVzdCBQeVBJIFJlbGVhc2UKCgpPcGVuQVBJIFR5cGUKPT09PT09PT09PT09CgpPcGVuQVBJIHNwZWNpZmljYXRpb24gcmVwcmVzZW50ZWQgYXMgYSBQeXRob24gdHlwZS4gVXNlIGl0IHRvIHBhcnNlIHNwZWNpZmljYXRpb25zIHdyaXR0ZW4gaW4gSlNPTiBhbmQgWUFNTCBmb3JtYXRzLgoKLi4gY29kZTo6IGJhc2gKCiAgICBwaXAgaW5zdGFsbCBvcGVuYXBpLXR5cGUKCgouLiBjb2RlOjogcHl0aG9uCgogICAgZnJvbSBvcGVuYXBpX3R5cGUgaW1wb3J0IE9wZW5BUEksIHBhcnNlX3NwZWMsIHNlcmlhbGl6ZV9zcGVjCgoKICAgIHNwZWM6IE9wZW5BUEkgPSBwYXJzZV9zcGVjKHsKICAgICAgICAieW91ciBPcGVuQVBJIFNwZWMgYXMgUHl0aG9uIGRpY3Rpb25hcnkiOiAid2lsbCBiZSBwYXJzZWQgaW50byBhIHByb3BlciBQeXRob24gdHlwZSIKICAgIH0pCiAgICBhc3NlcnQgcGFyc2Vfc3BlYyhzZXJpYWxpemVfc3BlYyhzcGVjKSkgPT0gc3BlYwoKLi4gY29kZTo6IGJhc2gKCiAgICAkIGN1cmwgLXMgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIHwgb3BlbmFwaS10eXBlIGNoZWNrCiAgICBTdWNjZXNzZnVsbHkgcGFyc2VkLgoKCkNvZGVnZW4KLS0tLS0tLQoKSWYgeW91IGFyZSBsb29raW5nIGZvciBhIGNvbXBsZXRlIGNsaWVudCBjb2RlIGdlbmVyYXRvciwgY29uc2lkZXIgYG9wZW5hcGktY2xpZW50LWdlbmVyYXRvciA8aHR0cHM6Ly9naXRodWIuY29tL2F2YW5vdi9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3I+YF8KdGhhdCB1c2VzIHRoaXMgbGlicmFyeSB1bmRlciB0aGUgaG9vZC4KCkNsb25pbmcgdGhpcyByZXBvCi0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgcHJvcGVyIHdheSB0byBjbG9uZSB0aGlzIHJlcG8gaXM6CgouLiBjb2RlLWJsb2NrOjogYmFzaAoKICAgIGdpdCBjbG9uZSAtLXJlY3Vyc2Utc3VibW9kdWxlcyA8cmVwby11cmw+IDxsb2NhbC1wcm9qZWN0LXJvb3Q+CiAgICBjZCA8bG9jYWwtcHJvamVjdC1yb290PgoKICAgICMgZm9yIHNob3dpbmcgc3VibW9kdWxlIHN0YXR1cyB3aXRoIGBnaXQgc3RhdHVzYAogICAgZ2l0IGNvbmZpZyBzdGF0dXMuc3VibW9kdWxlc3VtbWFyeSAxCgogICAgIyBmb3IgbG9nZ2luZyBzdWJtb2R1bGUgZGlmZiB3aXRoIGBnaXQgZGlmZmAKICAgIGdpdCBjb25maWcgZGlmZi5zdWJtb2R1bGUgbG9nCgoKRG9jdW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tCgpEb2N1bWVudGF0aW9uIGlzIGhvc3RlZCBvbiBSZWFkVGhlRG9jczogaHR0cHM6Ly9vcGVuYXBpLXR5cGUucmVhZHRoZWRvY3MuaW8vZW4vZGV2ZWxvcC8KCgpUZXN0IGZyYW1ld29yawotLS0tLS0tLS0tLS0tLQoKVGhlIHByb2plY3QgdXNlcyBgTml4IDxodHRwczovL25peG9zLm9yZy8+YF8gZm9yIGJvb3RzdHJhcHBpbmcgaXRzIGRldiBlbnZpcm9ubWVudC4KCllvdSBjYW4gcnVuIGV4aXN0aW5nIHRlc3Qgc3VpdGUgd2l0aAoKLi4gY29kZTo6IGJhc2gKCiAgIG5peC1zaGVsbCAtLXJ1biAibWFrZSB0ZXN0IgoKCkNoYW5nZWxvZwotLS0tLS0tLS0KClNlZSBgQ0hBTkdFTE9HIDxodHRwczovL2dpdGh1Yi5jb20vYXZhbm92L29wZW5hcGktdHlwZS9ibG9iL21hc3Rlci9DSEFOR0VMT0cucnN0PmBfLgo= readmeEtag: '"0fb8f518fd543da507fe9cca940d4537689e1dc4"' readmeLastModified: Sun, 19 Jun 2022 15:47:24 GMT repositoryId: 324717113 description: >- OpenAPI represented as a Python type. Use it to parse specifications written in JSON and YAML formats. created: '2020-12-27T08:19:27Z' updated: '2024-01-08T03:17:19Z' language: Python archived: false stars: 11 watchers: 3 forks: 3 owner: avanov logo: https://avatars.githubusercontent.com/u/601955?v=4 license: MIT repoEtag: '"1661aa6a16fbbc6375b3ff6975001881f30d5a9982bdff92858e98413ef2a067"' repoLastModified: Mon, 08 Jan 2024 03:17:19 GMT foundInMaster: true category: - Description Validators - Server Implementations id: f7745a6b6f7d618239019b87dd2cd1b1 - source: openapi3 tags repository: https://github.com/asseco-voice/laravel-open-api v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9zZWUuYXNzZWNvLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vYXNzZWNvLXZvaWNlL2FydC9ibG9iL21haW4vZXZpbF9sb2dvLnBuZyIgd2lkdGg9IjUwMCI+PC9hPjwvcD4KCiMgTGFyYXZlbCBPcGVuQXBpIGdlbmVyYXRvcgoKVGhpcyBwYWNrYWdlIHByb3ZpZGVzIHBhaW5sZXNzIE9wZW5BcGkgWU1MIGdlbmVyYXRpb24gZnJvbSBleGlzdGluZyByb3V0ZXMuIAoKVGhlIGlkZWEgaXMgdG8gaGF2ZSBhcyBsaXR0bGUgd29yayB0byBkbyBhcyBwb3NzaWJsZSBpbiBvcmRlciB0byBnZW5lcmF0ZSB0aGUgCkFQSSBkb2N1bWVudGF0aW9uLCBzbyB0aGUgcGFja2FnZSB3aWxsIHRyeSB0byBhc3N1bWUgYSBsb3Qgb2YgdGhpbmdzIHN1Y2ggYXMKbW9kZWxzIGZyb20gY29udHJvbGxlciBuYW1lcywgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcGFyYW1ldGVyIGJhc2VkIG9uIGFjdHVhbAp0YWJsZXMgZXRjLiAKCkZvciBjdXN0b20gaW5wdXRzL291dHB1dHMsIG9wdGlvbnMgd2lsbCBiZSBwcm92aWRlZC4KCiMjIEluc3RhbGxhdGlvbgoKSW5zdGFsbCB0aGUgcGFja2FnZSB0aHJvdWdoIGNvbXBvc2VyLiBJdCBpcyBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVyZWQKYXMgYSBMYXJhdmVsIHNlcnZpY2UgcHJvdmlkZXIuCgpgYGNvbXBvc2VyIHJlcXVpcmUgYXNzZWNvLXZvaWNlL2xhcmF2ZWwtb3Blbi1hcGlgYAoKIyMgVXNhZ2UKClJ1bm5pbmcgdGhlIGNvbW1hbmQgYGBwaHAgYXJ0aXNhbiBhc3NlY286b3Blbi1hcGlgYCB3aWxsIGdlbmVyYXRlIGEgbmV3IGAueW1sYApmaWxlIGF0IGBgcHJvamVjdF9yb290L29wZW4tYXBpLnltbGBgLgoKV2hhdCBpcyBjb3ZlcmVkIG91dC1vZi10aGUtYm94OgoKLSByZWFkIGFsbCByb3V0ZXMKLSBpbmZlcnJpbmcgbW9kZWwgbmFtZSBmcm9tIGNvbnRyb2xsZXIgbmFtZQotIGdyb3VwICh0YWcpIHRoZW0gYXV0b21hdGljYWxseQotIGdldCB0aXRsZSBhbmQgZGVzY3JpcHRpb24gZnJvbSAKLSBnZW5lcmF0ZSByZXF1ZXN0IGFuZCByZXNwb25zZSBwYXJhbWV0ZXJzCgpGb3IgY2FzZXMgbm90IGNvdmVyZWQgYnkgdGhpcyBjb252ZW50aW9uLCByZWZlciB0byBbb3ZlcnJpZGluZyBkZWZhdWx0cyBzZWN0aW9uXSgjb3ZlcnJpZGluZy1kZWZhdWx0cykuCgpGb3IgYWRkaXRpb25hbCB0d2Vha2luZywgcmVmZXIgdG8gW2NvbmZpZ10oI2NvbmZpZykuCgpEZXBlbmRpbmcgb24gbnVtYmVyIG9mIHJvdXRlcywgZmlyc3QgcnVuIG1heSB0YWtlIGEgZmV3IHNlY29uZHMgYXMgaXQgaXMgcmVxdWVzdGluZyBhIERCIHNjaGVtYSBmb3IKZWFjaCBtb2RlbCBpdCBjYW4gZmluZC4gVGhpcyBpcyBjYWNoZWQsIHNvIGV2ZXJ5IHN1YnNlcXVlbnQgcnVuIHdpbGwgcnVuIG11Y2ggZmFzdGVyLiAKCiMjIyBTaW1wbGUgb3V0LW9mLXRoZS1ib3ggZXhhbXBsZQoKR2l2ZW4gdGhlIGNvbnRyb2xsZXI6CgpgYGAKY2xhc3MgVXNlckNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyCnsKICAgIC8qKgogICAgICogU3RvcmUgYSBuZXdseSBjcmVhdGVkIHJlc291cmNlIGluIHN0b3JhZ2UuICAgIAogICAgICoKICAgICAqIENyZWF0ZSBuZXcgVXNlciBvYmplY3QgYW5kIHN0b3JlIGl0IGluIERCLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc3RvcmUoUmVxdWVzdCAkcmVxdWVzdCk6IEpzb25SZXNwb25zZQogICAgewogICAgICAgICR1c2VyID0gVXNlcjo6cXVlcnkoKS0+Y3JlYXRlKCRyZXF1ZXN0LT5hbGwoKSk7CgogICAgICAgIHJldHVybiByZXNwb25zZSgpLT5qc29uKCR1c2VyKTsKICAgIH0KCiAgICAuLi4KYGBgCgotIGNvbW1hbmQgd2lsbCBpbmZlciBgYFVzZXJgYCBhcyBiZWluZyB0aGUgbWFpbiBtb2RlbCBmb3IgdGhlIGNvbnRyb2xsZXIKLSB0aXRsZTogYGBTdG9yZSBhIG5ld2x5IGNyZWF0ZWQgcmVzb3VyY2UgaW4gc3RvcmFnZS5gYCAKLSBkZXNjcmlwdGlvbjogYGBDcmVhdGUgbmV3IFVzZXIgb2JqZWN0IGFuZCBzdG9yZSBpdCBpbiBEQi5gYAotIHJlcXVlc3QgZGF0YTogYGBVc2VyYGAgbW9kZWwgdGFibGUgYXR0cmlidXRlcyB3aXRob3V0IGBpZGAsIGBjcmVhdGVkX2F0YCwgYHVwZGF0ZWRfYXRgIGF0dHJpYnV0ZXMKLSByZXNwb25zZSBkYXRhOiBjb21wbGV0ZSBgYFVzZXJgYCBtb2RlbCB0YWJsZSBhdHRyaWJ1dGVzCgojIyBPdmVycmlkaW5nIGRlZmF1bHRzCgpDdXN0b20gY2FzZXMgYXJlIGhhbmRsZWQgdGhyb3VnaCBjb250cm9sbGVyIGFuZCBtZXRob2QgYW5ub3RhdGlvbnMgaW4gZG9jIGJsb2NrczoKCmBgYAovKioKICogTXkgY29udHJvbGxlciBkb2MgYmxvY2sKICoKICogQGFubm90YXRpb24gcmFuZG9tIGFubm90YXRpb24KICovCmNsYXNzIE15Q29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIKewogICAgLyoqCiAgICAgKiBNeSBtZXRob2QgZG9jIGJsb2NrCiAgICAgKgogICAgICogQGFubm90YXRpb24gYW5vdGhlciByYW5kb20gYW5ub3RhdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5kZXgoKQogICAgewogICAgICAgIC4uLgogICAgfQoKICAgLi4uCn0KYGBgCgojIyMgR3JvdXBzICh0YWdzKQoKV2hlbiB0YWxraW5nIGFib3V0ICdncm91cHMnLCB3ZSBhcmUgYWN0dWFsbHkgdGFsa2luZyBhYm91dCBPcGVuQXBpICd0YWdzJy4gCgpCeSBkZWZhdWx0LCBjb21tYW5kIHdpbGwgdGFrZSB0aGUgY29udHJvbGxlciBuYW1lLCByZW1vdmUgYGBDb250cm9sbGVyYGAgZnJvbSBpdAphbmQgc3BsaXQgYFBhc2NhbENhc2VgIHdpdGggc3BhY2VzIChpLmUuIGBTeXNVc2VyQ29udHJvbGxlcmAgcmVzdWx0cyBpbiBgU3lzIFVzZXJgIGdyb3VwIG5hbWUpLgoKLSBgYEBncm91cGBgIHdpdGhpbiBhIGNvbnRyb2xsZXIgZG9jIGJsb2NrIHdpbGwgb3ZlcnJpZGUgZGVmYXVsdCBncm91cC4gCi0gYGBAZ3JvdXBgYCB3aXRoaW4gYSBtZXRob2QgZG9jIGJsb2NrIHdpbGwgb3ZlcnJpZGUgZGVmYXVsdCBncm91cCBhbmQgY29udHJvbGxlciBncm91cAptYWtpbmcgaXQgYW4gb3BlcmF0b3Igd2l0aCB0aGUgaGlnaGVzdCBwcmVjZWRlbmNlLgoKSXQgaXMgcG9zc2libGUgdG8gc3RhY2sgbXVsdGlwbGUgZ3JvdXAgYW5ub3RhdGlvbnMuCgojIyMgTW9kZWxzCgpNb2RlbCBpcyB1c2VkIHRvIHRyeSB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGlucHV0cyBhbmQgb3V0cHV0cyBmb3Igc3RhbmRhcmQgTGFyYXZlbApDUlVEIGZ1bmN0aW9ucy4KCioqSW5wdXQgKHJlcXVlc3QpOioqIG1vZGVsIERCIHNjaGVtYSB3aXRoIGVpdGhlciBvbmx5IGZpbGxhYmxlIHByb3BlcnRpZXMgb3IgZXhjZXB0IGd1YXJkZWQuCkZpbGxhYmxlIHByb3BlcnRpZXMgaGF2ZSBwcmVjZWRlbmNlLCBndWFyZGVkIHdpbGwgYmUgaWdub3JlZCBpZiBmaWxsYWJsZSBleGlzdHMuCgoqKk91dHB1dCAocmVzcG9uc2UpOioqIGNvbXBsZXRlIG1vZGVsIERCIHNjaGVtYSB3aXRob3V0IGhpZGRlbiBmaWVsZHMuIAoKSXQgaXMgY29tcGxldGVseSB2YWxpZCB0byBoYXZlIG5vIG1vZGVsIGFzc29jaWF0ZWQuIEluIHRoaXMgY2FzZSwgbm8gYXV0b21hdGljIGFjdGlvbnMKd2lsbCBiZSBwZXJmb3JtZWQgd2hpY2ggcmVxdWlyZSBhbiBleGlzdGluZyBtb2RlbCBjbGFzcy4KCkJ5IGRlZmF1bHQsIG1vZGVsIG5hbWUgaXMgZXh0cmFjdGVkIGZyb20gY29udHJvbGxlciBuYW1lLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwKeW91IGhhdmUgZmV3IG9wdGlvbnM6CgotIE1hcCBhIHNwZWNpZmljIGNvbnRyb2xsZXIgdG8gYSBzcGVjaWZpYyBtb2RlbC4gU2VlIFtjb25maWddKCNjb25maWcpIGZvciBkZXRhaWxzLgotIEluY2x1ZGUgYGBAbW9kZWxgYCB0YWcgd2l0aGluIGEgY29udHJvbGxlcjoKICAgLSBTcGVjaWZ5aW5nIG5hbWVzcGFjZWQgbW9kZWwgd2lsbCB1c2UgdGhhdCBtb2RlbCBgYEBtb2RlbCBNeVxOYW1lc3BhY2VkXE1vZGVsYGAgCiAgIC0gTm90IHNwZWNpZnlpbmcgdGhlIG5hbWVzcGFjZSB3aWxsIHVzZSBjb250cm9sbGVyJ3MgbmFtZXNwYWNlIGBgQG1vZGVsIE1vZGVsYGAKICAgCkNvbnRyb2xsZXIgdGFnIGhhcyBoaWdoZXIgcHJlY2VkZW5jZSBvdmVyIGNvbmZpZ3VyYXRpb24gbWFwcGluZy4gSWYgYm90aCBleGlzdCwgYW5kCmNvbnRyb2xsZXIgdGFnIGZhaWxzLCBjb25maWd1cmF0aW9uIHdpbGwgdHJ5IHRvIGZldGNoIHRoZSBtb2RlbCBhcyB3ZWxsLiBGYWlsaW5nIG9uCmJvdGggZnJvbnRzIHdpbGwgcmVzdWx0IGluIG1vZGVsIGJlaW5nIGBgbnVsbGBgLgoKSXQgaXMgcG9zc2libGUgdG8gZXhjbHVkZSBwYXJ0IG9mIHRoZSBtb2RlbCBmb3IgdGhlIHJlcXVlc3Q6CgotIGBgQGV4Y2x1ZGUgYXR0cmlidXRlMSBhdHRyaWJ1dGUyYGAgaXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBzcGVjaWZpZWQgbW9kZWwgYXR0cmlidXRlcwp3aGljaCB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiByZXF1ZXN0IGRhdGEuICAKCiMjIyBQYXRoIHBhcmFtZXRlcnMKCkJ5IGRlZmF1bHQsIHBhdGggcGFyYW1ldGVyKHMpIHdpbGwgYmUgc2V0IGFzIGludGVnZXIgKGFzc3VtaW5nIG1vc3Qgb2YgdGhlIHBhdGggcGFyYW1ldGVycyBhcmUgbW9kZWwgSURzKS4KSW4gY2FzZSB5b3Ugd2FudCB0byB1c2UgVVVJRHMsIHRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gYGBhc3NlY28tb3Blbi1hcGlgYCBjb25maWcgZmlsZSBieQpzZXR0aW5nIGBgc2VydmljZV91c2VzX3V1aWRgYCB0byB0cnVlLgoKT3ZlcnJpZGUgdGhlbSBieSBpbmNsdWRpbmcgdGhlIGZvbGxvd2luZyBpbiB0aGUgbWV0aG9kIGRvYyBibG9jazoKCi0gYGBAcGF0aGBgIHdpbGwgb3ZlcnJpZGUgd2hhdCBpcyBmZXRjaGVkIGJ5IGRlZmF1bHQuIFlvdSBtdXN0IHByb3ZpZGUgaXQgaW4gdGhlIGZvbGxvd2luZwpjb252ZW50aW9uIGBgQHBhdGggbmFtZSB0eXBlIGRlc2NyaXB0aW9uYGAgd2hlcmU6CiAgIC0gYGBuYW1lYGAgLSBwYXJhbWV0ZXIgbmFtZS4KICAgLSBgYHR5cGVgYCAtIFtPcGVuQXBpIGRhdGEgdHlwZV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kYXRhLW1vZGVscy9kYXRhLXR5cGVzLykuCiAgIC0gYGBkZXNjcmlwdGlvbmBgIC0gdGV4dCB3aGljaCB3aWxsIGJlIHNldCBhcyBwYXJhbWV0ZXIgZGVzY3JpcHRpb24gKG5vdCByZXF1aXJlZCwgCiAgIGVtcHR5IGJ5IGRlZmF1bHQsIHNvIGl0IGNhbiBiZSBvbWl0dGVkKS4gCiAgIApFeGFtcGxlczoKCmBgYApAcGF0aCBuYW1lIHR5cGUKQHBhdGggbmFtZSB0eXBlIFNvbWUgZGVzY3JpcHRpb24KYGBgCgpJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0IHBhdGggcGFyYW1ldGVyIGBgcmVxdWlyZWRgYCBwcm9wZXJ0eS4gSXQgaXMgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZSBiZWNhdXNlCk9wZW5BcGkgZG9lc24ndCBzdXBwb3J0IG9wdGlvbmFsIHBhdGggcGFyYW1ldGVycyAoZXZlbiB0aG91Z2ggTGFyYXZlbCBkb2VzKS4KCiMjIyBPcGVyYXRpb24gSUQKCkJ5IGRlZmF1bHQsIGBgb3BlcmF0aW9uSWRgYCB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgZWFjaCByb3V0ZSwgYmFzZWQgb24gdGhlIGNvbnRyb2xsZXIvSFRUUCBtZXRob2QKbWFwcGluZyBhbmQgdGhlIG5hbWUgb2YgdGhlIG1vZGVsLiBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgeW91IGNhbiB1c2UgYGBAb3BlcmF0aW9uSWRgYAp0byBwcm92aWRlIGEgZGlmZmVyZW50IHN1ZmZpeCB0byB0aGUgb3BlcmF0aW9uIElEICh3aGljaCB3aWxsIHJlcGxhY2Ugd2hhdCB3b3VsZCBiZSBhbiBhdXRvLWdlbmVyYXRlZCBtb2RlbCkuCgpQcmVwZW5kZWQgY29udHJvbGxlci9IVFRQIG1ldGhvZCB3aWxsIHN0YXkgaW50YWN0IGJlY2F1c2Ugb2YgcG9zc2libGUgY29uZmxpY3RzIHdoZW4gdXNpbmcgdXBkYXRlIHJvdXRlcwp3aGljaCBtYXAgdG8gYm90aCBQVVQgYW5kIFBBVENIIHZlcmJzLiAKCkV4YW1wbGU6CgpgYGAKLy8gUHJvdmlkZWQgZm9yIGFuIHNob3coKSBtZXRob2Q6CkBvcGVyYXRpb25JZCBzdWZmaXgKLy8gdGhpcyB3aWxsIG91dHB1dCBnZXRTdWZmaXgKCi8vIFByb3ZpZGVkIGZvciBhbiB1cGRhdGUoKSBtZXRob2Q6CkBvcGVyYXRpb25JZCBzdWZmaXgKLy8gdGhpcyB3aWxsIG91dHB1dCBwdXRTdWZmaXggYW5kIHBhdGNoU3VmZml4CmBgYAoKIyMjIFJlcXVlc3QvcmVzcG9uc2UgcGFyYW1ldGVycwoKQnkgZGVmYXVsdCwgcmVxdWVzdC9yZXNwb25zZSBwYXJhbWV0ZXIocykgd2lsbCBiZSBbZXh0cmFjdGVkIGZyb20gbW9kZWxdKCNtb2RlbHMpLgoKT3ZlcnJpZGUgdGhlbSBieSBpbmNsdWRpbmcgYGBAcmVxdWVzdGBgIG9yL2FuZCBgQHJlc3BvbnNlYCBpbiB0aGUgbWV0aG9kIGRvYyBibG9jay4KCkV4YW1wbGUgZm9yIGBgQHJlcXVlc3RgYCwgd29ya2luZyB0aGUgc2FtZSBmb3IgYEByZXNwb25zZWA6CgotIGBgQHJlcXVlc3RgYCB3aWxsIG92ZXJyaWRlIHdoYXQgaXMgZmV0Y2hlZCBieSBkZWZhdWx0LiBZb3UgbXVzdCBwcm92aWRlIGl0IGluIHRoZSBmb2xsb3dpbmcKY29udmVudGlvbiBgYEByZXF1ZXN0IG5hbWUgdHlwZSByZXF1aXJlZCBkZXNjcmlwdGlvbmBgIHdoZXJlOgogICAtIGBgbmFtZWBgIC0gcGFyYW1ldGVyIG5hbWUuCiAgIC0gYGB0eXBlYGAgLSBbT3BlbkFwaSBkYXRhIHR5cGVdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGF0YS1tb2RlbHMvZGF0YS10eXBlcy8pLgogICAtIGBgcmVxdWlyZWRgYCAtIGJvb2xlYW4gYHRydWUvZmFsc2VgIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIAogICAoaWYgb21pdHRlZCwgd2lsbCBiZSBzZXQgdG8gYHRydWVgKQogICAtIGBgZGVzY3JpcHRpb25gYCAtIHRleHQgd2hpY2ggd2lsbCBiZSBzZXQgYXMgcGFyYW1ldGVyIGRlc2NyaXB0aW9uIChpZiBvbWl0dGVkLCB3aWxsIGJlIHNldCB0bwogICAgZW1wdHkgc3RyaW5nKQogICAKRXhhbXBsZXM6CgpgYGAKQHJlcXVlc3QgbmFtZSB0eXBlCkByZXF1ZXN0IG5hbWUgdHlwZSB0cnVlCkByZXF1ZXN0IG5hbWUgdHlwZSBmYWxzZSBTb21lIGRlc2NyaXB0aW9uCmBgYAoKRm9yIG11bHRpcGxlIHBhcmFtZXRlcnMgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBhZG9wdCBhIGRpZmZlcmVudCBjb252ZW50aW9uOgoKYGBgCkByZXF1ZXN0Cm5hbWUgdHlwZSByZXF1aXJlZCBkZXNjcmlwdGlvbgpuYW1lIHR5cGUgcmVxdWlyZWQgZGVzY3JpcHRpb24KbmFtZSB0eXBlIHJlcXVpcmVkIGRlc2NyaXB0aW9uCmBgYAoKSW4gY2FzZSB5b3Ugd2FudCBhbiBhcmJpdHJhcnkgc3RyaW5nIGFzIGEgcmVxdWVzdC9yZXNwb25zZSwgaXQgY2FuIGJlIGFjaGlldmVkIApieSB1c2luZyBkb3VibGUgcXVvdGVzIHdoZW4gc2V0dGluZyByZXF1ZXN0L3Jlc3BvbnNlIHBhcmFtZXRlcnMuIFRoaXMgd2F5LCBhbGwgCm90aGVyIHBhcmFtZXRlcnMgd2lsbCBiZSBpZ25vcmVkIGFuZCBvbmx5IHRoZSBzdHJpbmcgaW5zaWRlIGRvdWJsZSBxdW90ZXMgd2lsbCAKYmUgcmV0dXJuZWQuCgpFeGFtcGxlOgoKYGBgCkByZXNwb25zZSAiZXhhbXBsZSIKYGBgCgpZb3UgY2FuIGluY2x1ZGUgYWRkaXRpb25hbCBpbnB1dC9vdXRwdXQgbW9kZWxzIGFsb25nc2lkZSBvcmlnaW5hbCBtb2RlbCB3aXRoIGBAcmVxdWVzdEFwcGVuZCBrZXkgQ2xhc3NgIG9yIApgQHJlc3BvbnNlQXBwZW5kIGtleSBDbGFzc2AgaW4geW91ciBtZXRob2QgZG9jIGJsb2NrLiBUaGlzIHdpbGwgYXBwZW5kIGdpdmVuIGBgQ2xhc3NgYCBwcm9wZXJ0aWVzIG9uIGFscmVhZHkgZXhpc3RpbmcgbW9kZWwgdXNpbmcgdGhlIGBrZXlgIGFzIGEga2V5LgoKSS5lLiBoYXZpbmcgb3JpZ2luYWwgbW9kZWwgYGBVc2VyYGAgKHdpdGggcHJvcGVydGllcyBuYW1lLCBlbWFpbCkgeW91IHdhbnQgdG8gYXBwZW5kIGBQb3N0YCBtb2RlbCAod2l0aCBwcm9wZXJ0aWVzCnRpdGxlLCBkZXNjcmlwdGlvbikgdG8gaXQgYXMgYSBsaXN0IG9mIGlucHV0cy4KCmBgYApAbW9kZWwgVXNlciAvLyA8LS0gbm90IG5lZWRlZCBpZiBpdCBpcyBVc2VyQ29udHJvbGxlciBvciB5b3UgYWxyZWFkeSBzcGVjaWZpZWQgbW9kZWwgb24gdGhlIGNvbnRyb2xsZXIKCkByZXF1ZXN0QXBwZW5kIHBvc3RzIFBvc3QKYGBgIAoKVGhpcyB3aWxsIHJlc3VsdCBpbiBmb2xsb3dpbmcgcmVxdWVzdDoKCmBgYAp7CiAgICAibmFtZSI6ICJzdHJpbmciCiAgICAiZW1haWwiOiAic3RyaW5nIgogICAgInBvc3RzIjogewogICAgICAgICJ0aXRsZSI6ICJzdHJpbmciCiAgICAgICAgImRlc2NyaXB0aW9uIjogInN0cmluZyIKICAgIH0KfQpgYGAKCiMjIyMgUmVzcG9uc2Ugc3BlY2lmaWMKClJlc3BvbnNlcyB3aWxsIGJ5IGRlZmF1bHQgYmUgbWFya2VkIGFzIG11bHRpcGxlIChpbmRpY2F0aW5nIGNvbGxlY3Rpb24gb3V0cHV0LCBub3QgYSBzaW5nbGUgbW9kZWwpCndoZW4gbG9va2luZyBhdCBgYEdFVGBgIHJlcXVlc3Qgd2l0aG91dCBwYXRoIHBhcmFtZXRlcnMuCgotIGluY2x1ZGluZyBgYEBtdWx0aXBsZSB0cnVlL2ZhbHNlYGAgaW4gdGhlIG1ldGhvZCBkb2MgYmxvY2sgd2lsbCBvdmVycmlkZSB0aG9zZSBkZWZhdWx0cyAKCklmIHRoZSB2YXJpYWJsZSB0eXBlIGlzIGBgYXJyYXlgYCwgeW91IGNhbiBwcm92aWRlIGFkZGl0aW9uYWwgcHJvcGVydHkgd2l0aGluIHRoZSBwYXJlbnRoZXNpcyAoYmUKc3VyZSBub3QgdG8gbGVhdmUgYmxhbmsgc3BhY2UgYmV0d2VlbiB0eXBlIGFuZCBwYXJlbnRoZXNpcykgdG8gaW5kaWNhdGUKb2Ygd2hhdCB0eXBlIGFyZSB0aGUgYXJyYXkgdmFsdWVzOiAKCmBgYApAcmVzcG9uc2UgYXR0cmlidXRlIGFycmF5W3N0cmluZ10gdHJ1ZSBTb21lIGRlc2NyaXB0aW9uCmBgYAoKSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBkaXJlY3RseSBhcHBlbmQgYSBwaXZvdCB0YWJsZSB0byB0aGUgcmVzcG9uc2UsIGV2ZW4gaWYgaXQgCmhhcyBubyBtb2RlbCBhc3NvY2lhdGVkIHdpdGggaXQuCgpgYGAKQHBpdm90IHRhYmxlX25hbWUKYGBgCgpGb3IgZXhhbXBsZSwgaWYgdGhlIHRhYmxlIHdhcyBhcHBlbmRlZCB0byB0aGUgYGBVc2VyYGAgbW9kZWwsIHRoZSBmb2xsb3dpbmcgCnJlc3BvbnNlIHdpbGwgYmUgcmV0dXJuZWQ6CgpgYGAKewogICAgIm5hbWUiOiAic3RyaW5nIgogICAgImVtYWlsIjogInN0cmluZyIKICAgICJwaXZvdCI6IHsKICAgICAgInVzZXJfaWQiOiAwCiAgICAgICJleGFtcGxlX2lkIjogMAogICAgfQp9CmBgYAoKIyMgQ2FjaGUKCk1vZGVscyBkYXRhYmFzZSBzY2hlbWEgaXMgYmVpbmcgY2FjaGVkIGZvciBwZXJmb3JtYW5jZSAoMWQgVFRMKSwgCmlmIHlvdSBtb2RpZnkgYSBtaWdyYXRpb24gYmUgc3VyZSB0byBydW4gYGBwaHAgYXJ0aXNhbiBhc3NlY286b3Blbi1hcGkgLS1idXN0LWNhY2hlYGAKd2hpY2ggd2lsbCBmb3JjZSByZS1jYWNoaW5nLiAKCiMjIENvbmZpZwoKUHVibGlzaCB0aGUgY29uZmlndXJhdGlvbiB3aXRoIApgYHBocCBhcnRpc2FuIHZlbmRvcjpwdWJsaXNoIC0tcHJvdmlkZXI9IkFzc2Vjb1xPcGVuQXBpXE9wZW5BcGlTZXJ2aWNlUHJvdmlkZXIiYGAuCgpDb25maWd1cmF0aW9uIHJlcXVpcmVzIHlvdXIgbWluaW1hbCBlbmdhZ2VtZW50LCBob3dldmVyIHRoZXJlIGFyZSBzb21lIHRoaW5ncyB3aGljaApwYWNrYWdlIGNhbid0IGFzc3VtZS4gCgotIEZvciBtb2RlbHMgb3V0c2lkZSBvZiBgYEFwcGBgIG5hbWVzcGFjZSwgYmUgc3VyZSB0byBpbmNsdWRlIGZ1bGwgbmFtZXNwYWNlCnRvIGBgbmFtZXNwYWNlc2BgIGNvbmZpZyBrZXkgYXMgd2VsbCBzbyB0aGF0IHBhY2thZ2UgY2FuIGF1dG9tYXRpY2FsbHkgZ2V0IHRoZSAKbW9kZWwgYXR0cmlidXRlcy4gCi0gRm9yIGNvbnRyb2xsZXJzIG5vdCBuYW1lZCBhZnRlciB0aGVpciBtb2RlbHMgKGluIGBgTW9kZWxDb250cm9sbGVyYGAgZm9ybWF0KQpyZW1hcCBpbiBgYGNvbnRyb2xsZXJfbW9kZWxfbWFwcGluZ2BgIGNvbmZpZyBrZXkuCg== readmeEtag: '"81e6662caa368de507e8192c6c8cf7d3049f803e"' readmeLastModified: Tue, 08 Aug 2023 08:15:58 GMT repositoryId: 299838936 description: OpenAPI 3.0. generator for Laravel 8 created: '2020-09-30T07:16:22Z' updated: '2024-06-25T15:23:31Z' language: PHP archived: false stars: 11 watchers: 7 forks: 2 owner: asseco-voice logo: https://avatars.githubusercontent.com/u/66362883?v=4 license: MIT repoEtag: '"73a6ef0a9f0fbf1dc0e12126ad84bc938044dd34b8a27ad2c703acfe0bbe759a"' repoLastModified: Tue, 25 Jun 2024 15:23:31 GMT foundInMaster: true category: - Server Implementations - Parsers id: 5c0da8cc4801fde67fbfe19cf237d93a - source: openapi3 tags repository: https://github.com/dzoukr/openapiparser v3: true repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9Eem91a3IvT3BlbkFQSVR5cGVQcm92aWRlci9yYXcvbWFzdGVyL2xvZ28uanBnIiBhbHQ9ImRyYXdpbmciIHdpZHRoPSIxMDBweCIvPgoKIyBPcGVuIEFQSSBGIyBQYXJzZXIKClNpbXBsZSBsaWJyYXJ5IGZvciBwYXJzaW5nIFlBTUwvSlNPTiBPcGVuIEFQSSAocHJldmlvdXNseSBjYWxsZWQgYXMgU3dhZ2dlcikgc3BlY2lmaWNhdGlvbiAodmVyc2lvbiAzLjAuMSkuIE9yaWdpbmFsbHkgcGFydCBvZiBteSB0eXBlIHByb3ZpZGVyLCBidXQgSSB3aWxsIHByb2JhYmx5IG5ldmVyIGZpbmlzaCBpdCwgc28gYXQgbGVhc3QgY29tbXVuaXR5IGNhbiB1c2UgcGFydCBvZiBpdCBmb3Igb3duIHByb2plY3RzLiA6KQoKIyMgSW5zdGFsbGF0aW9uCkZpcnN0IGluc3RhbGwgTnVHZXQgcGFja2FnZQoKICAgIEluc3RhbGwtUGFja2FnZSBPcGVuQVBJUGFyc2VyCgpvciB1c2luZyBbUGFrZXRdKGh0dHA6Ly9mc3Byb2plY3RzLmdpdGh1Yi5pby9QYWtldC9nZXR0aW5nLXN0YXJ0ZWQuaHRtbCkKCiAgICBudWdldCBPcGVuQVBJUGFyc2VyCgojIyBIb3cgdG8gdXNlCgpUeXBpY2FsbHksIHlvdSB3b3VsZCB1c2Ugc29tZSBleGlzdGluZyBzcGVjaWZpY2F0aW9uIChzZWUgW29mZmljaWFsIGV4YW1wbGVzIGZvciB2ZXJzaW9uIDNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL3RyZWUvbWFzdGVyL2V4YW1wbGVzL3YzLjApKToKCmBgYGZzaGFycApvcGVuIE9wZW5BUElQYXJzZXIuVmVyc2lvbjMuUGFyc2VyCmxldCBvcGVuQVBJID0gRG9jdW1lbnQubG9hZEZyb21ZYW1sRmlsZSAibXlTcGVjLnlhbWwiIApgYGAKClRoZW4geW91IGhhdmUgYmFzaWMgRiMgcmVjb3JkIGZpbGxlZAoKYGBgZnNoYXJwCmxldCB2ZXJzaW9uID0gb3BlbkFQSS5JbmZvLlZlcnNpb24KbGV0IHRpdGxlID0gb3BlbkFQSS5JbmZvLlRpdGxlCmxldCBwYXRocyA9IG9wZW5BUEkuUGF0aHMKLi4uCmBgYAoKUGxlYXNlIGNoZWNrIFt0ZXN0IHByb2plY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9Eem91a3IvT3BlbkFQSVBhcnNlci90cmVlL21hc3Rlci90ZXN0cy9PcGVuQVBJUGFyc2VyLlRlc3RzKSBmb3IgbW9yZSBleGFtcGxlcy4KCiMjIExpbWl0YXRpb25zCgpOb3QgYWxsIHByb3BlcnRpZXMgZnJvbSBbMy4wLjEgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjEubWQpIGFyZSBpbXBsZW1lbnRlZC4gRXNwZWNpYWxseSBgYW55T2ZgIGFuZCBgb25lT2ZgIFNjaGVtYSBvYmplY3RzLCB3aGljaCB3aWxsIGJlIHByb2JhYmx5IGltcGxlbWVudGVkIGluIGZ1dHVyZSB2ZXJzaW9ucy4gUGxlYXNlIGNoZWNrIFtTcGVjaWZpY2F0aW9uIHJlY29yZCBkZWZpbml0aW9uXShodHRwczovL2dpdGh1Yi5jb20vRHpvdWtyL09wZW5BUElQYXJzZXIvYmxvYi9tYXN0ZXIvc3JjL09wZW5BUElQYXJzZXIvVmVyc2lvbjMvU3BlY2lmaWNhdGlvbi5mcykgZm9yIGFscmVhZHkgaW1wbGVtZW50ZWQgcHJvcGVydGllcy4KCiMjIENvbnRyaWJ1dGlvbgoKWW91IGtub3cgdGhlIGRyaWxsLiBDb2RlICsgVGVzdHMgPSBHb29kIFBSLiBBbnkgY29udHJpYnV0aW9uIG1vcmUgdGhhbiB3ZWxjb21lIQ== readmeEtag: '"55d043ec4becc96e42b52774ffe9db94053d91fb"' readmeLastModified: Tue, 16 Oct 2018 12:57:05 GMT repositoryId: 136714502 description: Simple Open API F# Parser created: '2018-06-09T10:43:53Z' updated: '2020-11-12T16:00:37Z' language: F# archived: false stars: 11 watchers: 6 forks: 2 owner: Dzoukr logo: https://avatars.githubusercontent.com/u/851307?v=4 license: MIT repoEtag: '"abc5debb537e22a332a5ec109a8aaa026b7aa819245762b87a30de37d0928a27"' repoLastModified: Thu, 12 Nov 2020 16:00:37 GMT foundInMaster: true category: Parsers id: bb5f2819cf8a06099262d0b9aac90a9b - source: openapi3 tags repository: https://github.com/rahul-ghadge/spring-boot-cassandra-crud v3: true repositoryMetadata: base64Readme: >- IyBzcHJpbmctYm9vdC1jYXNzYW5kcmEtY3J1ZApTcHJpbmcgYm9vdCBDUlVEIChDcmVhdGUsIFJlYWQsIFVwZGF0ZSwgRGVsZXRlKSBkZW1vIGFwcGxpY2F0aW9uIHdpdGggY2Fzc2FuZHJhIERCIC0gCkluIHRoaXMgYXBwbGljYXRpb24sIHdlIGhhdmUgaW1wbGVtZW50ZWQgQ1JVRCAoQ3JlYXRlLCBSZWFkLCBVcGRhdGUsIERlbGV0ZSkgb3BlcmF0aW9ucyB1c2luZyBzcHJpbmcgZGF0YSBhbmQgY2Fzc2FuZHJhIERCLiAgCgoKIyMgUHJlcmVxdWlzaXRlcyAKLSBKYXZhCi0gW1NwcmluZyBCb290XShodHRwczovL3NwcmluZy5pby9wcm9qZWN0cy9zcHJpbmctYm9vdCkKLSBbTWF2ZW5dKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvaW5kZXguaHRtbCkKLSBbQ2Fzc2FuZHJhXShodHRwczovL2Nhc3NhbmRyYS5hcGFjaGUub3JnLykKCgojIyBUb29scwotIEVjbGlwc2Ugb3IgSW50ZWxsaUogSURFQSAob3IgYW55IHByZWZlcnJlZCBJREUpIHdpdGggZW1iZWRkZWQgR3JhZGxlCi0gTWF2ZW4gKHZlcnNpb24gPj0gMy42LjApCi0gUG9zdG1hbiAob3IgYW55IFJFU1RmdWwgQVBJIHRlc3RpbmcgdG9vbCkKLSBjcWxzaCAoY2Fzc2FuZHJhIHF1ZXJ5IGxhbmd1YWdlIHNoZWxsKSAtIGZvciBtb25pdG9yaW5nIHN0b3JlZCBkYXRhCgoKCiMjIyAgQnVpbGQgYW5kIFJ1biBhcHBsaWNhdGlvbgpfR09UTyA+XyAqKn4vYWJzb2x1dGUtcGF0aC10by1kaXJlY3Rvcnkvc3ByaW5nLWJvb3QtY2Fzc2FuZHJhLWNydWQqKiAgCmFuZCB0cnkgYmVsb3cgY29tbWFuZCBpbiB0ZXJtaW5hbAo+ICoqYGBgbXZuIHNwcmluZy1ib290OnJ1bmBgYCoqIGl0IHdpbGwgcnVuIGFwcGxpY2F0aW9uIGFzIHNwcmluZyBib290IGFwcGxpY2F0aW9uCgpvcgo+ICoqYGBgbXZuIGNsZWFuIGluc3RhbGxgYGAqKiBpdCB3aWxsIGJ1aWxkIGFwcGxpY2F0aW9uIGFuZCBjcmVhdGUgKipqYXIqKiBmaWxlIHVuZGVyIHRhcmdldCBkaXJlY3RvcnkgCgpSdW4gamFyIGZpbGUgZnJvbSBiZWxvdyBwYXRoIHdpdGggZ2l2ZW4gY29tbWFuZAo+ICoqYGBgamF2YSAtamFyIH4vcGF0aC10by1zcHJpbmctYm9vdC1jYXNzYW5kcmEtY3J1ZC90YXJnZXQvc3ByaW5nLWJvb3QtY2Fzc2FuZHJhLWNydWQtMC4wLjEtU05BUFNIT1QuamFyYGBgKioKCk9yCj4gcnVuIG1haW4gbWV0aG9kIGZyb20gYFNwcmluZ0Jvb3RDYXNzYW5kcmFDcnVkQXBwbGljYXRpb24uamF2YWAgYXMgc3ByaW5nIGJvb3QgYXBwbGljYXRpb24uICAKCgp8fAp8ICAtLS0tLS0tLS0gICAgfAp8ICoqX05vdGVfKiogOiBJbiBgU3ByaW5nQm9vdENhc3NhbmRyYUNydWRBcHBsaWNhdGlvbi5qYXZhYCBjbGFzcyB3ZSBoYXZlIGF1dG93aXJlZCBTdXBlckhlcm8gcmVwb3NpdG9yeS4gPGJyLz5JZiB0aGVyZSBpcyBubyByZWNvcmQgcHJlc2VudCBpbiBEQiBmb3IgU3VwZXJIZXJvIG1vZGVsIGNsYXNzLCBzdGF0aWMgZGF0YSBpcyBnZXR0aW5nIGluc2VydGVkIGluIERCIGZyb20gYEhlbHBlclV0aWwuamF2YWAgY2xhc3Mgd2hlbiB3ZSBhcmUgc3RhcnRpbmcgdGhlIGFwcCBmb3IgdGhlIGZpcnN0IHRpbWUufCAKCgotLS0KIyMjIEZvciBBUEkgZG9jdW1lbnQgdXNpbmcgT3BlbkFQSSBVSSAKCj4gKipodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS1jdXN0b20uaHRtbCoqCgohW1N3YWdnZXIgRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3JhaHVsLWdoYWRnZS9zcHJpbmctYm9vdC1jYXNzYW5kcmEtY3J1ZC9ibG9iL21hc3Rlci9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL3NwcmluZy1ib290LWNhc3NhbmRyYS1jcnVkLVN3YWdnZXIuUE5HP3Jhdz10cnVlICJTcHJpbmcgRGF0YSBDYXNzYW5kcmEgU3dhZ2dlciIpCgotLS0KCiMjIyBJbnN0YWxsIEpESzgKU3RlcCAxOiBEb3dubG9hZCBKREs4IGZyb20gW0pESyBzaXRlXShodHRwczovL3d3dy5vcmFjbGUuY29tL2phdmEvdGVjaG5vbG9naWVzL2phdmFzZS9qYXZhc2UtamRrOC1kb3dubG9hZHMuaHRtbCkuICAKU3RlcCAyOiBJbnN0YWxsIGRvd25sb2FkZWQgYW4gZXhlY3V0YWJsZSBmaWxlLiAgClN0ZXAgMzogQWRkIEpESzggcGF0aCBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZS4gIAoKCgojIyMgU2V0dXAgY3Fsc2ggKGNhc3NhbmRyYSBxdWVyeSBsYW5ndWFnZSBzaGVsbCkgLSBmb3IgbW9uaXRvcmluZyBzdG9yZWQgZGF0YQpTdGVwIDE6ICoqUHl0aG9uMi43KiogaXMgbWFuZGF0b3J5IGZvciBjcWxzaCB0byBoYW5kbGUgdXNlciByZXF1ZXN0cy4gRG93bmxvYWQgUHl0aG9uMi43IGZyb20gW1B5dGhvbiBzaXRlXShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy9yZWxlYXNlL3B5dGhvbi0yNzE4LykuICAKU3RlcCAyOiBJbnN0YWxsIGRvd25sb2FkZWQgYW4gZXhlY3V0YWJsZSBmaWxlLiAgClN0ZXAgMzogQWRkIFB5dGhvbjIuNyBwYXRoIGFzIGVudmlyb25tZW50IHZhcmlhYmxlLiAgCgoKCgojIyMgU2V0dXAgQ2Fzc2FuZHJhClN0ZXAgMTogRG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGFwYWNoZS1jYXNzYW5kcmEteC54eC54IGZyb20gW0Nhc3NhbmRyYSBzaXRlXShodHRwczovL2Nhc3NhbmRyYS5hcGFjaGUub3JnL2Rvd25sb2FkLykuICAKU3RlcCAyOiBVbnppcCB0aGUgY29tcHJlc3NlZCB6aXAgZmlsZSB1c2luZyBhIGNvbXByZXNzaW9uIHRvb2wgdG8gYW55IGxvY2F0aW9uLiBFeC4gYzpcYXBhY2hlLWNhc3NhbmRyYS14Lnh4LnggIApTdGVwIDM6IEFkZCBjOlxhcGFjaGUtY2Fzc2FuZHJhLXgueHgueFxiaW4gcGF0aCBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZS4gIAoKCi0tLQoKIyMjIyBTdGFydCB0aGUgQ2Fzc2FuZHJhIGFuZCBjcWxzaCAKCiMjIyMjIFN0YXJ0IENhc3NhbmRyYQpNYWtlIHN1cmUgYmluIHBhdGggaXMgc2V0IGZvciBjYXNzYW5kcmEgaW4gZW52aXJvbm1lbnQgdmFyaWFibGUuICAKPiBgY2Fzc2FuZHJhYAoKSWYgbm8gZXJyb3Igb24gdGhlIGNvbnNvbGUgbWVhbnMgY2Fzc2FuZHJhIGlzIHN0YXJ0ZWQgYW5kIHJ1bm5pbmcuCgoKIyMjIyMgU3RhcnQgY3Fsc2ggCk1ha2Ugc3VyZSBwYXRoIGlzIHNldCBmb3IgdGhlIHB5dGhvbiBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4gIAo+IGBjcWxzaGAKCklmIG5vIGVycm9yIG9uIHRoZSBjb25zb2xlIG1lYW5zICoqY3Fsc2gqKiBpcyBjb25uZWN0ZWQuCgoKIyMjIENvZGUgU25pcHBldHMKMS4gIyMjIyBNYXZlbiBEZXBlbmRlbmNpZXMKICAgIE5lZWQgdG8gYWRkIGJlbG93IGRlcGVuZGVuY3kgdG8gZW5hYmxlIGNhc3NhbmRyYSBpbiAqKnBvbS54bWwqKi4gICAgCiAgICBgYGAKCTxkZXBlbmRlbmN5PgoJICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCQk8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtY2Fzc2FuZHJhPC9hcnRpZmFjdElkPgoJPC9kZXBlbmRlbmN5PgogICAJCQogICA8IS0tIEZvciBCb2lsZXJwbGF0ZSBjb2RlIChHZXR0ZXJzL1NldHRlcnMvQ29uc3RydWN0b3JzKSAtLT4KICAgPGRlcGVuZGVuY3k+CiAgIAkJPGdyb3VwSWQ+b3JnLnByb2plY3Rsb21ib2s8L2dyb3VwSWQ+CiAgIAkJPGFydGlmYWN0SWQ+bG9tYm9rPC9hcnRpZmFjdElkPgogICAJCTxvcHRpb25hbD50cnVlPC9vcHRpb25hbD4KICAgPC9kZXBlbmRlbmN5PgogICAgYGBgCiAgICAKICAgIEZvciBBUEkgZG9jdW1lbnRhdGlvbiB1c2luZyBzd2FnZ2VyIGFuZCBPcGVuQXBpIFVJIGFkZCBiZWxvdyBkZXBlbmRlbmN5LgoJYGBgCgk8ZGVwZW5kZW5jeT4KCSAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZG9jPC9ncm91cElkPgoJCTxhcnRpZmFjdElkPnNwcmluZ2RvYy1vcGVuYXBpLXVpPC9hcnRpZmFjdElkPgoJCTx2ZXJzaW9uPjEuNC40PC92ZXJzaW9uPgoJPC9kZXBlbmRlbmN5PgoJYGBgCiAgIAoyLiAjIyMjIFByb3BlcnRpZXMgZmlsZQogICAgIFBsYWNlZCBwcm9wZXJ0aWVzIGluICoqYXBwbGljYXRpb24ueW1sKiogZmlsZSByZWxhdGVkIHRvIGNhc3NhbmRyYSB3aGljaCB3ZSBhcmUgcmVhZGluZyBpbiAqKkNhc3NhbmRyYUNvbmZpZy5qYXZhKiogY2xhc3MKICAgICBhbmQgY29uZmlndXJpbmcgY2Fzc2FuZHJhIGNvbm5lY3Rpb24gZm9yIENhc3NhbmRyYS4gIAogICAgIEFQSSBkb2N1bWVudGF0aW9uIHJlbGF0ZWQgc3dhZ2dlciBVSSBwYXRoIGlzIGFsc28gcGxhY2VkIGhlcmUgd2hpY2ggd2lsbCBlbmFibGUgU3dhZ2dlciBBUEkgRG9jIG9uIHNhbWUgcGF0aC4gIAogICAgICoqc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbCoqICAgICAKICAgICBgYGAKICAgICBzcHJpbmc6CiAgICAgICBkYXRhOgogICAgICAgICBjYXNzYW5kcmE6CiAgICAgICAgICAgY29udGFjdC1wb2ludHM6IGxvY2FsaG9zdAogICAgICAgICAgIHBvcnQ6IDkwNDIKICAgICAgICAgICBrZXlzcGFjZS1uYW1lOiBzaW1wbGVfY3J1ZAogICAgICAgICAgICN1c2VybmFtZTogY2Fzc2FuZHJhCiAgICAgICAgICAgI3Bhc3N3b3JkOiBjYXNzYW5kcmEKICAgICAgICAgICAjc2NoZW1hLWFjdDogY3JlYXRlX2lmX25vdF9leGlzdHMKICAgICAKICAgICBzcHJpbmdkb2M6CiAgICAgICB2ZXJzaW9uOiAxLjAuMAogICAgICAgc3dhZ2dlci11aToKICAgICAgICAgcGF0aDogL3N3YWdnZXItdWktY3VzdG9tLmh0bWwKICAgICBgYGAKCgozLiAjIyMjIE1vZGVsIGNsYXNzCiAgICBCZWxvdyBhcmUgdGhlIG1vZGVsIGNsYXNzZXMgd2hpY2ggd2Ugd2lsbCBzdG9yZSBpbiBjYXNzYW5kcmEgYW5kIHBlcmZvcm0gQ1JVRCBvcGVyYXRpb25zLiAgCiAgICAqKmNvbS5hcnlhLmNhc3NhbmRyYS5tb2RlbC5TdXBlckhlcm8uamF2YSoqICAKICAgICoqY29tLmFyeWEuY2Fzc2FuZHJhLm1vZGVsLlN1cGVyUG93ZXJzLmphdmEqKiAgCiAgICBgYGAKICAgIEBEYXRhCiAgICBAQnVpbGRlcgogICAgQFRhYmxlKCJzdXBlcl9oZXJvIikKICAgIHB1YmxpYyBjbGFzcyBTdXBlckhlcm8gaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeyAgICAKICAgICAgICBAUHJpbWFyeUtleQogICAgICAgIHByaXZhdGUgTG9uZyBpZDsgICAgCiAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsgICAgCiAgICAgICAgQENvbHVtbigic3VwZXJfbmFtZSIpCiAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc3VwZXJOYW1lOyAgICAKICAgICAgICBwcml2YXRlIFN0cmluZyBwcm9mZXNzaW9uOyAgICAKICAgICAgICBwcml2YXRlIGludCBhZ2U7ICAgIAogICAgICAgIEBDb2x1bW4oInN1cGVyX3Bvd2VycyIpCiAgICAgICAgcHJpdmF0ZSBTdXBlclBvd2VycyBzdXBlclBvd2VyczsgICAgCiAgICB9CiAgIAogICAKICAgQERhdGEKICAgQEJ1aWxkZXIKICAgQFVzZXJEZWZpbmVkVHlwZSgic3VwZXJfcG93ZXJzIikKICAgcHVibGljIGNsYXNzIFN1cGVyUG93ZXJzIGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsgICAKICAgICAgIHByaXZhdGUgU3RyaW5nIHN0cmVuZ3RoOyAgIAogICAgICAgcHJpdmF0ZSBTdHJpbmcgZHVyYWJpbGl0eTsgICAKICAgICAgIHByaXZhdGUgYm9vbGVhbiBjYW5GbHk7CiAgIH0KICAgIGBgYAoKCjQuICMjIyMgQ2Fzc2FuZHJhIENvbmZpZ3VyYXRpb24KICAgVGhpcyBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY2xhc3MgaW4gdGhpcyBhcHBsaWNhdGlvbiwgd2hlcmUgYWxsIGNhc3NhbmRyYSByZWxhdGVkIGNvbmZpZ3VyYXRpb24gaXMgcGxhY2VkIAogICBhbmQgdXNpbmcgdGhpcyBjbGFzcyB3ZSBhcmUgY29ubmVjdGluZyB0byBjYXNzYW5kcmEgYW5kIGNyZWF0aW5nICoqS0VZU1BBQ0UqKiBhbmQgKipUQUJMRVMqKiBhbHNvIHdoaWxlIHN0YXJ0aW5nIHRoZSBhcHBsaWNhdGlvbi4KCiAgIGBgYAogICBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uVmFsdWU7CiAgIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmNvbnRleHQuYW5ub3RhdGlvbi5Db25maWd1cmF0aW9uOwogICBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5kYXRhLmNhc3NhbmRyYS5jb25maWcuQWJzdHJhY3RDYXNzYW5kcmFDb25maWd1cmF0aW9uOwogICBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5kYXRhLmNhc3NhbmRyYS5jb25maWcuU2NoZW1hQWN0aW9uOwogICBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5kYXRhLmNhc3NhbmRyYS5jb3JlLmNxbC5rZXlzcGFjZS5DcmVhdGVLZXlzcGFjZVNwZWNpZmljYXRpb247CiAgIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuY2Fzc2FuZHJhLmNvcmUuY3FsLmtleXNwYWNlLkRyb3BLZXlzcGFjZVNwZWNpZmljYXRpb247CiAgIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuY2Fzc2FuZHJhLmNvcmUuY3FsLmtleXNwYWNlLktleXNwYWNlT3B0aW9uOwogICAKICAgaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKICAgaW1wb3J0IGphdmEudXRpbC5MaXN0OwogICAKICAgQENvbmZpZ3VyYXRpb24KICAgcHVibGljIGNsYXNzIENhc3NhbmRyYUNvbmZpZyBleHRlbmRzIEFic3RyYWN0Q2Fzc2FuZHJhQ29uZmlndXJhdGlvbiB7CiAgIAogICAgICAgQFZhbHVlKCIke3NwcmluZy5kYXRhLmNhc3NhbmRyYS5rZXlzcGFjZS1uYW1lOiBzaW1wbGVfY3J1ZH0iKQogICAgICAgcHJpdmF0ZSBTdHJpbmcgS0VZU1BBQ0U7CiAgIAogICAgICAgQFZhbHVlKCIke3NwcmluZy5kYXRhLmNhc3NhbmRyYS5jb250YWN0LXBvaW50czogbG9jYWxob3N0fSIpCiAgICAgICBwcml2YXRlIFN0cmluZyBDT05UQUNUX1BPSU5UOwogICAKICAgICAgIEBWYWx1ZSgiJHtzcHJpbmcuZGF0YS5jYXNzYW5kcmEucG9ydDogOTA0Mn0iKQogICAgICAgcHJpdmF0ZSBpbnQgUE9SVDsKICAgCiAgIAogICAgICAgQE92ZXJyaWRlCiAgICAgICBwdWJsaWMgU3RyaW5nIGdldENvbnRhY3RQb2ludHMoKSB7CiAgICAgICAgICAgcmV0dXJuIENPTlRBQ1RfUE9JTlQ7CiAgICAgICB9CiAgIAogICAgICAgQE92ZXJyaWRlCiAgICAgICBwcm90ZWN0ZWQgaW50IGdldFBvcnQoKSB7CiAgICAgICAgICAgcmV0dXJuIFBPUlQ7CiAgICAgICB9CiAgIAogICAgICAgQE92ZXJyaWRlCiAgICAgICBwdWJsaWMgU2NoZW1hQWN0aW9uIGdldFNjaGVtYUFjdGlvbigpIHsKICAgICAgICAgICByZXR1cm4gU2NoZW1hQWN0aW9uLkNSRUFURV9JRl9OT1RfRVhJU1RTOwogICAgICAgfQogICAKICAgICAgIEBPdmVycmlkZQogICAgICAgcHJvdGVjdGVkIExpc3Q8Q3JlYXRlS2V5c3BhY2VTcGVjaWZpY2F0aW9uPiBnZXRLZXlzcGFjZUNyZWF0aW9ucygpIHsKICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuc2luZ2xldG9uTGlzdChDcmVhdGVLZXlzcGFjZVNwZWNpZmljYXRpb24uY3JlYXRlS2V5c3BhY2UoS0VZU1BBQ0UpCiAgICAgICAgICAgICAgICAgICAuaWZOb3RFeGlzdHMoKQogICAgICAgICAgICAgICAgICAgLndpdGgoS2V5c3BhY2VPcHRpb24uRFVSQUJMRV9XUklURVMsIHRydWUpCiAgICAgICAgICAgICAgICAgICAud2l0aFNpbXBsZVJlcGxpY2F0aW9uKDNMKSk7CiAgICAgICB9CiAgIAogICAgICAgQE92ZXJyaWRlCiAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsRGF0YUNlbnRlcigpIHsKICAgICAgICAgICByZXR1cm4gImRhdGFjZW50ZXIxIjsKICAgICAgIH0KICAgCiAgICAgICAvL0BPdmVycmlkZQogICAgICAgLy9wcm90ZWN0ZWQgTGlzdDxEcm9wS2V5c3BhY2VTcGVjaWZpY2F0aW9uPiBnZXRLZXlzcGFjZURyb3BzKCkgewogICAgICAgLy8gICAgcmV0dXJuIENvbGxlY3Rpb25zLnNpbmdsZXRvbkxpc3QoRHJvcEtleXNwYWNlU3BlY2lmaWNhdGlvbi5kcm9wS2V5c3BhY2UoS0VZU1BBQ0UpKTsKICAgICAgIC8vfQogICAKICAgICAgIEBPdmVycmlkZQogICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRLZXlzcGFjZU5hbWUoKSB7CiAgICAgICAgICAgcmV0dXJuIEtFWVNQQUNFOwogICAgICAgfQogICAgICAKICAgICAgIEBPdmVycmlkZQogICAgICAgcHVibGljIFN0cmluZ1tdIGdldEVudGl0eUJhc2VQYWNrYWdlcygpIHsKICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1tdIHsiY29tLmFyeWEuY2Fzc2FuZHJhLm1vZGVsIn07CiAgICAgICB9ICAgCiAgIH0KICAgYGBgCiAgIAogICAKICAgCjUuICMjIyMgQ1JVRCBvcGVyYXRpb24gZm9yIFN1cGVyIEhlcm9lcwoKICAgIEluICoqY29tLmFyeWEuY2Fzc2FuZHJhLmNvbnRyb2xsZXIuU3VwZXJIZXJvQ29udHJvbGxlci5qYXZhKiogY2xhc3MsIAogICAgd2UgaGF2ZSBleHBvc2VkIDUgZW5kcG9pbnRzIGZvciBiYXNpYyBDUlVEIG9wZXJhdGlvbnMKICAgIC0gR0VUIEFsbCBTdXBlciBIZXJvZXMKICAgIC0gR0VUIGJ5IElECiAgICAtIFBPU1QgdG8gc3RvcmUgU3VwZXIgSGVybyBpbiBEQgogICAgLSBQVVQgdG8gdXBkYXRlIFN1cGVyIEhlcm8KICAgIC0gREVMRVRFIGJ5IElECiAgICAKICAgIGBgYAogICAgQFJlc3RDb250cm9sbGVyCiAgICBAUmVxdWVzdE1hcHBpbmcoIi9zdXBlci1oZXJvZXMiKQogICAgcHVibGljIGNsYXNzIFN1cGVySGVyb0NvbnRyb2xsZXIgewogICAgICAgIAogICAgICAgIEBHZXRNYXBwaW5nKCIvc2F2ZSIpCiAgICAgICAgcHVibGljIFJlc3BvbnNlRW50aXR5PExpc3Q8U3VwZXJIZXJvPj4gc2F2ZSgpOwogICAKICAgICAgICBAR2V0TWFwcGluZwogICAgICAgIHB1YmxpYyBSZXNwb25zZUVudGl0eTxMaXN0PFN1cGVySGVybz4+IGZpbmRBbGwoKTsKICAgIAogICAgICAgIEBHZXRNYXBwaW5nKCIve2lkfSIpCiAgICAgICAgcHVibGljIFJlc3BvbnNlRW50aXR5PFN1cGVySGVybz4gZmluZEJ5SWQoQFBhdGhWYXJpYWJsZSBTdHJpbmcgaWQpOwogICAgCiAgICAgICAgQFBvc3RNYXBwaW5nCiAgICAgICAgcHVibGljIFJlc3BvbnNlRW50aXR5PFN1cGVySGVybz4gc2F2ZShAUmVxdWVzdEJvZHkgU3VwZXJIZXJvIHN1cGVySGVybyk7CiAgICAKICAgICAgICBAUHV0TWFwcGluZwogICAgICAgIHB1YmxpYyBSZXNwb25zZUVudGl0eTxTdXBlckhlcm8+IHVwZGF0ZShAUmVxdWVzdEJvZHkgU3VwZXJIZXJvIHN1cGVySGVybyk7CiAgICAKICAgICAgICBARGVsZXRlTWFwcGluZygiL3tpZH0iKQogICAgICAgIHB1YmxpYyBSZXNwb25zZUVudGl0eTxTdXBlckhlcm8+IGRlbGV0ZShAUGF0aFZhcmlhYmxlIFN0cmluZyBpZCk7CiAgICB9CiAgICBgYGAKICAgCiAgICBJbiAqKmNvbS5hcnlhLmNhc3NhbmRyYS5yZXBvc2l0b3J5LlN1cGVySGVyb1JlcG9zaXRvcnkuamF2YSoqLCB3ZSBhcmUgZXh0ZW5kaW5nIGBDYXNzYW5kcmFSZXBvc2l0b3J5PENsYXNzLCBJRD5gIGludGVyZmFjZSB3aGljaCBlbmFibGVzIENSVUQgcmVsYXRlZCBtZXRob2RzLgogICAgYGBgCiAgICBAUmVwb3NpdG9yeQogICAgcHVibGljIGludGVyZmFjZSBTdXBlckhlcm9SZXBvc2l0b3J5IGV4dGVuZHMgQ2Fzc2FuZHJhUmVwb3NpdG9yeTxTdXBlckhlcm8sIExvbmc+IHsKICAgIH0KICAgIGBgYAogICAKICAgSW4gKipjb20uYXJ5YS5jYXNzYW5kcmEuc2VydmljZS5pbXBsLlN1cGVySGVyb1NlcnZpY2VJbXBsLmphdmEqKiwgd2UgYXJlIGF1dG93aXJpbmcgYWJvdmUgaW50ZXJmYWNlIHVzaW5nIGBAQXV0b3dpcmVkYCBhbm5vdGF0aW9uIGFuZCBkb2luZyBDUlVEIG9wZXJhdGlvbi4KCgo2LiAjIyMjIFF1ZXJ5IG9wZXJhdGlvbiBmb3IgU3VwZXJIZXJvCiAgIEluICoqY29tLmFyeWEuY2Fzc2FuZHJhLmNvbnRyb2xsZXIuU3VwZXJIZXJvUXVlcnlDb250cm9sbGVyLmphdmEqKiBjbGFzcyBDYXNzYW5kcmEgcXVlcmllcyBBUEkgRW5kcG9pbnRzIGFyZSBwbGFjZWQuCiAgIHdlIGFyZSBhdXRvd2lyaW5nIFN1cGVySGVyb1F1ZXJ5U2VydmljZSBpbnRlcmZhY2UgdXNpbmcgYEBBdXRvd2lyZWRgIGFubm90YXRpb24gYW5kIHJlYWNoaW5nIHRvIFNlcnZpY2UgbGF5ZXIuICAKICAgSW4gKipjb20uYXJ5YS5jYXNzYW5kcmEuc2VydmljZS5pbXBsLlN1cGVySGVyb1F1ZXJ5U2VydmljZUltcGwuamF2YSoqLCAKICAgd2UgYXJlIGF1dG93aXJpbmcgU3VwZXJIZXJvUXVlcnlSZXBvc2l0b3J5IGludGVyZmFjZSB1c2luZyBgQEF1dG93aXJlZGAgYW5ub3RhdGlvbiBhbmQgcmVhY2hpbmcgdG8gREFPIGxheWVyLgogICBJbiAqKmNvbS5hcnlhLmNhc3NhbmRyYS5yZXBvc2l0b3J5LmltcGwuU3VwZXJIZXJvUXVlcnlSZXBvc2l0b3J5SW1wbC5qYXZhKiosIAogICB3ZSBhcmUgYXV0b3dpcmluZyBgQ2Fzc2FuZHJhT3BlcmF0aW9uc2AgaW50ZXJmYWNlIHdoaWNoIGVuYWJsZXMgQ1JVRCByZWxhdGVkIG1ldGhvZHMuCiAgIGBgYAogICBAQXV0b3dpcmVkCiAgIHByaXZhdGUgQ2Fzc2FuZHJhT3BlcmF0aW9ucyBjYXNzYW5kcmFUZW1wbGF0ZTsKICAgYGBgIAogICAgCgoKPGJyLz4KCiMjIyBBUEkgRW5kcG9pbnRzCgotICMjIyMgU3VwZXIgSGVybyBDUlVEIE9wZXJhdGlvbnMKICAgID4gKipHRVQgTWFwcGluZyoqIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zdXBlci1oZXJvZXMgIC0gR2V0IGFsbCBTdXBlciBIZXJvZXMKICAgIAogICAgPiAqKkdFVCBNYXBwaW5nKiogaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N1cGVyLWhlcm9lcy8xICAtIEdldCBTdXBlciBIZXJvIGJ5IElECiAgICAgICAKICAgID4gKipQT1NUIE1hcHBpbmcqKiBodHRwOi8vbG9jYWxob3N0OjgwODAvc3VwZXItaGVyb2VzICAtIEFkZCBuZXcgU3VwZXIgSGVybyBpbiBEQiAgCiAgICAKICAgICBSZXF1ZXN0IEJvZHkgIAogICAgIGBgYAogICAgIHsKICAgICAgICAgImlkIjogMSwKICAgICAgICAgIm5hbWUiOiAiVG9ueSIsCiAgICAgICAgICJzdXBlck5hbWUiOiAiSXJvbiBNYW4iLAogICAgICAgICAicHJvZmVzc2lvbiI6ICJCdXNpbmVzcyIsCiAgICAgICAgICJhZ2UiOiA1MCwgICAgICAgICAgICAKICAgICAgICAgInN1cGVyUG93ZXJzIjogewogICAgICAgICAgICAgInN0cmVuZ3RoIjogIlN1aXQiLAogICAgICAgICAgICAgImR1cmFiaWxpdHkiOiAiTW9udGgiLAogICAgICAgICAgICAgImNhbkZseSI6IHRydWUKICAgICAgICAgfQogICAgIH0KICAgICBgYGAKICAgIAogICAgPiAqKlBVVCBNYXBwaW5nKiogaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N1cGVyLWhlcm9lcyAgLSBVcGRhdGUgZXhpc3RpbmcgU3VwZXIgSGVybyBmb3IgZ2l2ZW4gSUQgCiAgICAKICAgICBSZXF1ZXN0IEJvZHkgICAgCiAgICAgYGBgCiAgICAgewogICAgICAgICAiaWQiOiAxLAogICAgICAgICAibmFtZSI6ICJUb255IiwKICAgICAgICAgInN1cGVyTmFtZSI6ICJJcm9uIE1hbiIsCiAgICAgICAgICJwcm9mZXNzaW9uIjogIkJ1c2luZXNzIiwKICAgICAgICAgImFnZSI6IDUwLCAgICAgICAgIAogICAgICAgICAic3VwZXJQb3dlcnMiOiB7CiAgICAgICAgICAgICAic3RyZW5ndGgiOiAiT25seSBpZiBoZSBpcyBpbiBhIHN1aXQiLAogICAgICAgICAgICAgImR1cmFiaWxpdHkiOiAiTW9udGgiLAogICAgICAgICAgICAgImNhbkZseSI6IHRydWUKICAgICAgICAgfQogICAgIH0KICAgICBgYGAKICAgIAogICAgPiAqKkRFTEVURSBNYXBwaW5nKiogaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N1cGVyLWhlcm9lcy8xICAtIERlbGV0ZSBTdXBlciBIZXJvIGJ5IElECgoKCiMjIyBPdXRwdXQKCiFbQWx0IHRleHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9yYWh1bC1naGFkZ2Uvc3ByaW5nLWJvb3QtY2Fzc2FuZHJhLWNydWQvYmxvYi9tYXN0ZXIvc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9zcHJpbmctZGF0YS1jYXNzYW5kcmEtb3V0cHV0LlBORz9yYXc9dHJ1ZSAiU3ByaW5nIERhdGEgQ2Fzc2FuZHJhIG91dHB1dCIpCg== readmeEtag: '"093c47bc7c2169b6144bafdd6fe939dd42f133d5"' readmeLastModified: Thu, 03 Sep 2020 15:30:51 GMT repositoryId: 288662036 description: >- Spring boot CRUD (Create, Read, Update, Delete) demo application with cassandra DB and API documentation using Swaager and OpenAPI UI created: '2020-08-19T07:18:27Z' updated: '2024-06-11T00:46:01Z' language: Java archived: false stars: 11 watchers: 1 forks: 15 owner: rahul-ghadge logo: https://avatars.githubusercontent.com/u/54259667?v=4 repoEtag: '"ad6a959ab069fdb6b36174a7d292648d4ac2b4d1b86e768eaa5db66cb7260723"' repoLastModified: Tue, 11 Jun 2024 00:46:01 GMT foundInMaster: true category: Low-level Tooling id: 09cb31f38ecae6d0bbbeeddd376b3966 - source: openapi3 tags repository: https://github.com/prince-chrismc/user-management v3: true repositoryMetadata: base64Readme: >- IyBVc2VyIE1hbmFnZW1lbnQgWyFbRG9jc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9BUEklMjBEb2N1bWVudGF0aW9uLW1haW4tYmx1ZSldKGh0dHBzOi8vcHJpbmNlLWNocmlzbWMuZ2l0aHViLmlvL3VzZXItbWFuYWdlbWVudC8pCgpBbiBvcGVuLXNvdXJjZSBhcHBsaWNhdGlvbiBkZWxpdmVyaW5nIGEgcmVzcG9uc2l2ZSB1c2VyIG1hbmFnZW1lbnQgZXhwZXJpZW5jZS4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcHJpbmNlLWNocmlzbWMvdXNlci1tYW5hZ2VtZW50L21haW4vZG9jcy9TY3JlZW5jYXN0LTIwMjAtMDctMTgtMjMwNzU0LmdpZiI+CjwvcD4KCiMjIDptaWNyb3Njb3BlOiBUZWNobmljYWwgT3ZlcnZpZXcKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBhIGRpc3RyaWJ1dGVkIGNsb3VkIG5hdGl2ZSBhcHBsaWNhdGlvbiBjb21wcmlzZWQgb2YgdHdvIGNvbXBvbmVudHM6CgoqIFtGcm9udC1lbmRdKGZyb250ZW5kLykgLSBQcmltYXJ5IHBvaW50IG9mIGludGVyYWN0aW9uIHdpdGggdXNlcnMuIEl0IGlzIGEgW1JlYWN0XShodHRwczovL3JlYWN0anMub3JnLykgY2xpZW50IHNpZGUgYXBwbGljYXRpb24gYnVpbGQgdXNpbmcgW3dlYnBhY2tdKGh0dHBzOi8vd2VicGFjay5qcy5vcmcpIGZvciBfZmFzdF8gc3VyZmluZy4KKiBbQmFjay1lbmRdKGJhY2tlbmQvKSAtIENlbnRyYWxpemVkIGluLW1lbW9yeSBkYXRhIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gb2YgYWxsIGtub3duIHVzZXJzLiBXcml0dGVuIGluIFtDKytdKGh0dHBzOi8vaXNvY3BwLm9yZy8pIGZvciBmbGV4aWJpbGl0eSBhbmQgc2NhbGFiaWxpdHkgaXQgbGV2ZXJhZ2VzIG1hbnkgT3Blbi1Tb3VyY2UgdGVjaG5vbG9naWVzIFtsaXN0ZWQgaGVyZV0oYmFja2VuZC9jb25hbi5sb2NrKS4KCiMjIDpyb2NrZXQ6IENsb3VkIERlcGxveW1lbnRzCgo+IDppbmZvcm1hdGlvbl9zb3VyY2U6IFRoZSBnb2FsIGZvciB0aGlzIHByb2plY3QgaXMgdG8gc3BhbiBtdWx0aXBsZSBwdWJsaWMgOmNsb3VkOiBjbG91ZHMgYWxsIHRoZSB3aGlsZSBjb3N0aW5nIHRoZSBsZWFzdCBhbW91bnQgcG9zc2libGUKCjpub19lbnRyeV9zaWduOiBDdXJyZW50bHkgb2ZmbGluZSEKCiMjIDptYW5fc2NpZW50aXN0OiBEZXZlbG9wbWVudCBTdW1tYXJ5Cgp8IENvbXBvbmVudCB8IEJ1aWxkIHwgQ292ZXJhZ2UgfAp8IC0tLSB8IC0tLSB8IC0tLSB8CnwgQmFjay1lbmQgfCBbIVtDKysgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmluY2UtY2hyaXNtYy91c2VyLW1hbmFnZW1lbnQvd29ya2Zsb3dzL0MrKyUyMENJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmluY2UtY2hyaXNtYy91c2VyLW1hbmFnZW1lbnQvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQSUyMkMlMkIlMkIrQ0klMjIpfCBbIVtjb2RlY292XShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvcHJpbmNlLWNocmlzbWMvdXNlci1tYW5hZ2VtZW50KV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3ByaW5jZS1jaHJpc21jL3VzZXItbWFuYWdlbWVudCkgfAp8IEZyb250LWVuZCB8IFshW05vZGUuanMgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmluY2UtY2hyaXNtYy91c2VyLW1hbmFnZW1lbnQvd29ya2Zsb3dzL05vZGUuanMlMjBDSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vcHJpbmNlLWNocmlzbWMvdXNlci1tYW5hZ2VtZW50L2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0ElMjJOb2RlLmpzK0NJJTIyKSB8IFshW2NvZGVjb3ZdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY29kZWNvdi9jL2dpdGh1Yi9wcmluY2UtY2hyaXNtYy91c2VyLW1hbmFnZW1lbnQpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvcHJpbmNlLWNocmlzbWMvdXNlci1tYW5hZ2VtZW50KSB8Cg== readmeEtag: '"83f9102bdf5aa0ca38fbea1ecab79f6dd9118655"' readmeLastModified: Wed, 06 Sep 2023 18:52:51 GMT repositoryId: 245055601 description: >- An open-source application delivering a responsive user management experience. created: '2020-03-05T03:00:58Z' updated: '2024-07-29T17:19:08Z' language: C++ archived: false stars: 11 watchers: 4 forks: 1 owner: prince-chrismc logo: https://avatars.githubusercontent.com/u/16867443?v=4 license: MIT repoEtag: '"80d797ab817d32b7a68529bea89e760f29ea6bfc757ec4543863d81f6af3bd95"' repoLastModified: Mon, 29 Jul 2024 17:19:08 GMT foundInMaster: true category: Server id: becccc9cc767bca2f946cf466bd59707 - source: openapi3 tags repository: https://github.com/entrepreneur-interet-general/open_api_schemas_to_markdown v3: true repositoryMetadata: base64Readme: >- WyFbU29mdHdhcmUgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLU1JVC1vcmFuZ2Uuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL2VudHJlcHJlbmV1ci1pbnRlcmV0LWdlbmVyYWwvb3Blbl9hcGlfc2NoZW1hc190b19tYXJrZG93bi9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKQohW0NpcmNsZUNJXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NpcmNsZWNpL3Byb2plY3QvZ2l0aHViL2VudHJlcHJlbmV1ci1pbnRlcmV0LWdlbmVyYWwvb3Blbl9hcGlfc2NoZW1hc190b19tYXJrZG93bi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpCiFbUHlQSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL29wZW5fYXBpX3NjaGVtYXNfdG9fbWFya2Rvd24uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKQoKCiMgT3BlbkFQSSBDb21wb25lbnRzIFNjaGVtYXMgdG8gTWFya2Rvd24KVGhlIGdvYWwgb2YgdGhpcyBwYWNrYWdlIGlzIHRvIGdlbmVyYXRlIFtHaXRodWIgRmxhdm9yZWQgTWFya2Rvd25dKGh0dHBzOi8vZ2l0aHViLmdpdGh1Yi5jb20vZ2ZtLykgZG9jdW1lbnRhdGlvbiBvZiBDb21wb25lbnRzIFNjaGVtYXMgZnJvbSB0aGUgW09wZW5BUEkgMyBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikuCgpTYXkgeW91J3ZlIGdvdCBhIFlBTUwgZmlsZToKYGBgeW1sCm9wZW5hcGk6ICIzLjAuMCIKaW5mbzoKICB2ZXJzaW9uOiAiMCIKICB0aXRsZTogRGVtbwpwYXRoczoKICAvZGVtbzoKICAgIGdldDoKICAgICAgc3VtbWFyeTogRGVtbwogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgUmVzdWx0YXRIdW1haW46CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgb3BlcmF0aW9uX2lkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZm9ybWF0OiBpbnQ2NAogICAgICAgICAgZGVzY3JpcHRpb246IExlIG51bcOpcm8gdW5pcXVlIGRlIGwnb3DDqXJhdGlvbgogICAgICAgICAgZXhhbXBsZTogMTExOTkyMDM3MQogICAgICAgIGNhdGVnb3JpZV9wZXJzb25uZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVzY3JpcHRpb246IEluZGlxdWUgbGEgY2F0w6lnb3JpZSBkZSBwZXJzb25uZSBpbXBsaXF1w6llIGRhbnMgbGUgYmlsYW4gaHVtYWluCiAgICAgICAgICBleGFtcGxlOiBQw6pjaGV1ciBmcmFuw6dhaXMKICAgICAgICByZXN1bHRhdF9odW1haW46CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBEZXNjcmlwdGlvbiBkdSBiaWxhbiBodW1haW4KICAgICAgICAgIGV4YW1wbGU6IFBlcnNvbm5lIHNlY291cnVlCiAgICAgICAgbm9tYnJlOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBmb3JtYXQ6IGludDMyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBkZXNjcmlwdGlvbjogTm9tYnJlIGRlIHBlcnNvbm5lcyBpbXBsaXF1w6llcyBkYW5zIGNlIGJpbGFuCiAgICAgICAgICBleGFtcGxlOiAzCiAgICAgICAgZG9udF9ub21icmVfYmxlc3NlOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBmb3JtYXQ6IGludDMyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5kaXF1ZSBsZSBub21icmUgZGUgcGVyc29ubmVzIGJsZXNzw6llcyBkYW5zIGxlIGJpbGFuCiAgICAgICAgICBleGFtcGxlOiAxCgpgYGAKClRoZSBwYWNrYWdlIHdpbGwgcHJvZHVjZSBhIE1hcmtkb3duIGZpbGUgZnJvbSB0aGUgWUFNTCBzcGVjaWZpY2F0aW9uIGZpbGUgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnQ6CmBgYG1hcmtkb3duCiMjIFJlc3VsdGF0SHVtYWluCnxGaWVsZHxUeXBlfERlc2NyaXB0aW9ufEV4YW1wbGV8UHJvcGVydGllc3wKfC0tLXwtLS18LS0tfC0tLXwtLS18CnxvcGVyYXRpb25faWR8aW50ZWdlcigkaW50NjQpfExlIG51bcOpcm8gdW5pcXVlIGRlIGwnb3DDqXJhdGlvbnwxMTE5OTIwMzcxfHwKfGNhdGVnb3JpZV9wZXJzb25uZXxzdHJpbmd8SW5kaXF1ZSBsYSBjYXTDqWdvcmllIGRlIHBlcnNvbm5lIGltcGxpcXXDqWUgZGFucyBsZSBiaWxhbiBodW1haW58UMOqY2hldXIgZnJhbsOnYWlzfHwKfHJlc3VsdGF0X2h1bWFpbnxzdHJpbmd8RGVzY3JpcHRpb24gZHUgYmlsYW4gaHVtYWlufFBlcnNvbm5lIHNlY291cnVlfHwKfG5vbWJyZXxudW1iZXIoJGludDMyKXxOb21icmUgZGUgcGVyc29ubmVzIGltcGxpcXXDqWVzIGRhbnMgY2UgYmlsYW58M3xtaW5pbXVtOiAwfAp8ZG9udF9ub21icmVfYmxlc3NlfG51bWJlcigkaW50MzIpfEluZGlxdWUgbGUgbm9tYnJlIGRlIHBlcnNvbm5lcyBibGVzc8OpZXMgZGFucyBsZSBiaWxhbnwxfG1pbmltdW06IDB8CmBgYAoKQW5kIGlmIHlvdSByZW5kZXIgaXQ6CiMjIFJlc3VsdGF0SHVtYWluCnxGaWVsZHxUeXBlfERlc2NyaXB0aW9ufEV4YW1wbGV8UHJvcGVydGllc3wKfC0tLXwtLS18LS0tfC0tLXwtLS18CnxvcGVyYXRpb25faWR8aW50ZWdlcigkaW50NjQpfExlIG51bcOpcm8gdW5pcXVlIGRlIGwnb3DDqXJhdGlvbnwxMTE5OTIwMzcxfHwKfGNhdGVnb3JpZV9wZXJzb25uZXxzdHJpbmd8SW5kaXF1ZSBsYSBjYXTDqWdvcmllIGRlIHBlcnNvbm5lIGltcGxpcXXDqWUgZGFucyBsZSBiaWxhbiBodW1haW58UMOqY2hldXIgZnJhbsOnYWlzfHwKfHJlc3VsdGF0X2h1bWFpbnxzdHJpbmd8RGVzY3JpcHRpb24gZHUgYmlsYW4gaHVtYWlufFBlcnNvbm5lIHNlY291cnVlfHwKfG5vbWJyZXxudW1iZXIoJGludDMyKXxOb21icmUgZGUgcGVyc29ubmVzIGltcGxpcXXDqWVzIGRhbnMgY2UgYmlsYW58M3xtaW5pbXVtOiAwfAp8ZG9udF9ub21icmVfYmxlc3NlfG51bWJlcigkaW50MzIpfEluZGlxdWUgbGUgbm9tYnJlIGRlIHBlcnNvbm5lcyBibGVzc8OpZXMgZGFucyBsZSBiaWxhbnwxfG1pbmltdW06IDB8CgojIyBJbnN0YWxsYXRpb24KYGBgCnBpcCBpbnN0YWxsIG9wZW4tYXBpLXNjaGVtYXMtdG8tbWFya2Rvd24KYGBgCgojIyBVc2FnZQpUaGUgcGFja2FnZSBwcm92aWRlcyBhIGNvbW1hbmQgbGluZSB0b29sLgpgYGAKJCBvYS10by1tZCAtaAp1c2FnZTogb2EtdG8tbWQgWy1oXSBpbnB1dF9maWxlcGF0aCBvdXRwdXRfZmlsZXBhdGggW2xvY2FsZV0KCnBvc2l0aW9uYWwgYXJndW1lbnRzOgogIGlucHV0X2ZpbGVwYXRoICAgVGhlIE9wZW5BUEkgMyBZQU1MIGZpbGVwYXRoCiAgb3V0cHV0X2ZpbGVwYXRoICBUaGUgZGVzaXJlZCBvdXRwdXQgZmlsZXBhdGggb2YgdGhlIE1hcmtkb3duIGZpbGUKICBsb2NhbGUgICAgICAgICAgIExvY2FsZSB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIHRoZSBNYXJrZG93biBmaWxlLiBBdmFpbGFibGU6CiAgICAgICAgICAgICAgICAgICBlbiwgZnIKCm9wdGlvbmFsIGFyZ3VtZW50czoKICAtaCwgLS1oZWxwICAgICAgIHNob3cgdGhpcyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKYGBgCgpFeGFtcGxlOgpgYGAKb2EtdG8tbWQgb3Blbl9hcGkueW1sIGRvY3VtZW50YXRpb24ubWQKYGBgCgojIyBOb3RpY2UKVGhpcyBzb2Z0d2FyZSBpcyBhdmFpbGFibGUgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGFuZCB3YXMgZGV2ZWxvcGVkIGFzIHBhcnQgb2YgdGhlIFtFbnRyZXByZW5ldXIgZCdJbnTDqXLDqnQgR8OpbsOpcmFsIHByb2dyYW1dKGh0dHBzOi8vZW50cmVwcmVuZXVyLWludGVyZXQtZ2VuZXJhbC5ldGFsYWIuZ291di5mcikgYnkgdGhlIEZyZW5jaCBnb3Zlcm5tZW50LgoKUHJvamV0IGTDqXZlbG9wcMOpIGRhbnMgbGUgY2FkcmUgZHUgcHJvZ3JhbW1lIMKrIFtFbnRyZXByZW5ldXIgZOKAmWludMOpcsOqdCBnw6luw6lyYWxdKGh0dHBzOi8vZW50cmVwcmVuZXVyLWludGVyZXQtZ2VuZXJhbC5ldGFsYWIuZ291di5mcikgwrsuCg== readmeEtag: '"481c87507a13293778520645ced4918c19cd0a36"' readmeLastModified: Wed, 03 Oct 2018 11:27:27 GMT repositoryId: 130189009 description: Generate Markdown documentation from OpenAPI 3 Components Schemas created: '2018-04-19T09:07:13Z' updated: '2024-04-25T00:48:03Z' language: Python archived: false stars: 11 watchers: 14 forks: 1 owner: entrepreneur-interet-general logo: https://avatars.githubusercontent.com/u/25084749?v=4 license: MIT repoEtag: '"501d0c743bc16e61c213dfd473de05fbbe962e713c4f5ed47b9c9dcfb3e35f78"' repoLastModified: Thu, 25 Apr 2024 00:48:03 GMT foundInMaster: true category: Parsers id: 7cdbea5c957437085535437b028e8fa2 - source: openapi3 tags repository: https://github.com/responsibleapi/responsible v3: true id: b5dd9396be5b2f2cc6eb74770ebd2970 repositoryMetadata: base64Readme: >- IyBSZXNwb25zaWJsZUFQSQoKQSBzbWFsbCBsYW5ndWFnZSB0aGF0IGNvbXBpbGVzIHRvIE9wZW5BUEkKCiMjIFF1aWNrIGxhbmd1YWdlIHR1dG9yaWFsCgpSZXNwb25zaWJsZSBEU0wgaXMgYmFzZWQgb24gS0RMIGxhbmd1YWdlLiBWaXNpdCBodHRwczovL2tkbC5kZXYgdG8gbGVhcm4gbW9yZQoKW0Jyb3dzZSBleGFtcGxlc10oZXhhbXBsZXMvKS4KCkluIHRoaXMgcXVpY2sgdHV0b3JpYWwsIHdlJ2xsIHNob3cgeW91IGhvdyB0byBjcmVhdGUgYSBzaW1wbGUgUmVzcG9uc2libGUgQVBJIGRvY3VtZW50IGZvciBhIGJhc2ljIHVzZXIgbWFuYWdlbWVudApzeXN0ZW0uIFJlc3BvbnNpYmxlIEFQSSBkb2N1bWVudHMgY29uc2lzdCBvZiB2YXJpb3VzIGVsZW1lbnRzIHN1Y2ggYXMgdHlwZXMsIHN0cnVjdHMsIGFuZCBlbmRwb2ludHMuCgpgYGBrZGwKcmVzcG9uc2libGUgc3ludGF4PTEKCmluZm8gewogICAgdGl0bGUgIlVzZXIgTWFuYWdlbWVudCBBUEkiCiAgICB2ZXJzaW9uICIxLjAuMCIKfQoKdHlwZSAiVXNlcklEIiAic3RyaW5nIiBtaW5MZW5ndGg9MQoKc3RydWN0ICJVc2VyIiB7CiAgICBpZCAiVXNlcklEIgogICAgbmFtZSAic3RyaW5nIiBtaW5MZW5ndGg9MQp9CgpzdHJ1Y3QgIlVzZXJMaXN0IiB7CiAgICB1c2VycyAiYXJyYXkiICJVc2VyIgp9CgoqIHsKICAgIHJlcSB7CiAgICAgICAgbWltZSAiYXBwbGljYXRpb24vanNvbiIKICAgIH0KCiAgICByZXMgewogICAgICAgIG1pbWUgImFwcGxpY2F0aW9uL2pzb24iCiAgICB9Cn0KCnNjb3BlICIvdXNlcnMiIHsKCiAgICBHRVQgewogICAgICAgIHJlcyB7CiAgICAgICAgICAgICIyMDAiICJVc2VyTGlzdCIKICAgICAgICB9CiAgICB9CgogICAgUE9TVCB7CiAgICAgICAgcmVxICJVc2VyIgoKICAgICAgICByZXMgewogICAgICAgICAgICAiMjAxIiAiVXNlciIKICAgICAgICB9CiAgICB9CgogICAgc2NvcGUgIi86aWQoVXNlcklEKSIgewoKICAgICAgICAqIHsKICAgICAgICAgICAgcmVzIHsKICAgICAgICAgICAgICAgICI0MDQiICJ1bmtub3duIgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBHRVQgewogICAgICAgICAgICByZXMgewogICAgICAgICAgICAgICAgIjIwMCIgIlVzZXIiCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFBVVCB7CiAgICAgICAgICAgIHJlcSAiVXNlciIKICAgICAgICAgICAgcmVzIHsKICAgICAgICAgICAgICAgICIyMDAiICJVc2VyIgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBERUxFVEUgewogICAgICAgICAgICByZXMgewogICAgICAgICAgICAgICAgIjIwNCIgInVua25vd24iCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KYGBgCgoxLiBTdGFydCBieSBkZWZpbmluZyB0aGUgZG9jdW1lbnQncyBtZXRhZGF0YSB3aXRoIHRoZSBgaW5mb2AgYmxvY2suCjIuIENyZWF0ZSBjdXN0b20gdHlwZXMgYW5kIHN0cnVjdHVyZXMgZm9yIHRoZSBBUEkgdXNpbmcgdGhlIGB0eXBlYCBhbmQgYHN0cnVjdGAga2V5d29yZHMuCjMuIFRoZSBgKmAgYmxvY2sgc2V0cyB1cCBjb21tb24gcmVxdWVzdCBhbmQgcmVzcG9uc2UgYXR0cmlidXRlcyBhcHBsaWVkIHRvIGFsbCBlbmRwb2ludHMuCjQuIERlZmluZSB5b3VyIEFQSSBlbmRwb2ludHMgdXNpbmcgSFRUUCBtZXRob2RzIGxpa2UgYEdFVGAsIGBQT1NUYCwgYFBVVGAsIGFuZCBgREVMRVRFYC4KNS4gSW5zaWRlIGVhY2ggZW5kcG9pbnQsIHNwZWNpZnkgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb3BlcnRpZXMsIHN1Y2ggYXMgcGF0aCBwYXJhbWV0ZXJzLCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQKICAgcmVzcG9uc2Ugc3RhdHVzIGNvZGVzLgoKT25jZSB5b3UndmUgd3JpdHRlbiB0aGUgUmVzcG9uc2libGUgQVBJIGRvY3VtZW50LCB5b3UgY2FuIGNvbXBpbGUgaXQgaW50byBhbiBPcGVuQVBJIEpTT04gZmlsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yCmdlbmVyYXRpbmcgZG9jdW1lbnRhdGlvbiwgY2xpZW50IGxpYnJhcmllcywgYW5kIHNlcnZlciBzdHVicywgYXMgd2VsbCBhcyBwZXJmb3JtaW5nIENvbnRyYWN0IFRlc3RzLgoKPGRldGFpbHM+CjxzdW1tYXJ5PkNvbXBpbGVkIE9wZW5BUEkgSlNPTjwvc3VtbWFyeT4KCmBgYGpzb24KewogICJvcGVuYXBpIjogIjMuMC4xIiwKICAiaW5mbyI6IHsKICAgICJ0aXRsZSI6ICJVc2VyIE1hbmFnZW1lbnQgQVBJIiwKICAgICJ2ZXJzaW9uIjogIjEuMC4wIgogIH0sCiAgImNvbXBvbmVudHMiOiB7CiAgICAic2NoZW1hcyI6IHsKICAgICAgIlVzZXJJRCI6IHsKICAgICAgICAibWluTGVuZ3RoIjogMSwKICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgIH0sCiAgICAgICJVc2VyIjogewogICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAiaWQiOiB7CiAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXJJRCIKICAgICAgICAgIH0sCiAgICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEsCiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJyZXF1aXJlZCI6IFsiaWQiLCAibmFtZSJdCiAgICAgIH0sCiAgICAgICJVc2VyTGlzdCI6IHsKICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgInVzZXJzIjogewogICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiOiBbInVzZXJzIl0KICAgICAgfQogICAgfQogIH0sCiAgInBhdGhzIjogewogICAgIi91c2VycyI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAicGFyYW1ldGVycyI6IFtdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiMjAwIiwKICAgICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOiB7CiAgICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyTGlzdCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJwYXJhbWV0ZXJzIjogW10sCiAgICAgICAgInJlcXVlc3RCb2R5IjogewogICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICB9LAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiMjAxIiwKICAgICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOiB7CiAgICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvdXNlcnMve2lkfSI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlcklEIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIjIwMCIsCiAgICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlciIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiNDA0IgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInB1dCI6IHsKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlcklEIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVxdWVzdEJvZHkiOiB7CiAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOiB7CiAgICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXIiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICIyMDAiLAogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXIiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwNCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIjQwNCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXJJRCIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDQiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICIyMDQiCiAgICAgICAgICB9LAogICAgICAgICAgIjQwNCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIjQwNCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgo8L2RldGFpbHM+CgojIyBMYW5ndWFnZSBSZWZlcmVuY2UKCiMjIyBTZWN1cml0eQoKaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hdXRoZW50aWNhdGlvbi8KCmBgYGtkbAovKiogcmVxdWlyZWQgQXV0aG9yaXphdGlvbiBoZWFkZXIgKi8Kc2VjdXJpdHkgewogICAgaGVhZGVyICJBdXRob3JpemF0aW9uIgp9CgovKiogb3B0aW9uYWwgQXV0aG9yaXphdGlvbiBoZWFkZXIgKi8Kc2VjdXJpdHkgewogICAgKD8paGVhZGVyICJBdXRob3JpemF0aW9uIgp9CgovKioKICogbXVsdGlwbGUgc2VjdXJpdHkgb3B0aW9ucyAoQU5EL09SIGxvZ2ljKQogKgogKiBodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2F1dGhlbnRpY2F0aW9uLyNtdWx0aXBsZQogKi8Kc2VjdXJpdHkgewogICAgT1IgewogICAgICAgIGhlYWRlciAiQXV0aG9yaXphdGlvbiIKICAgICAgICBjb29raWUgIkpTRVNTSU9OSUQiCiAgICB9Cn0KYGBgCgojIyBHZW5lcmF0aW5nIGEgY2xpZW50OgoKIyMjIEluc3RhbGwKCmBgYHNoCmJyZXcgaW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvcgpgYGAKCiMjIyBUeXBlc2NyaXB0CgpgYGBzaApidW54IEByZXNwb25zaWJsZWFwaS9jbGkgZmlsZS5rZGwgLW8gL3RtcC9vcGVuYXBpLmpzb24Kb3BlbmFwaS1nZW5lcmF0b3IgZ2VuZXJhdGUgLWcgdHlwZXNjcmlwdC1mZXRjaCAtaSAvdG1wL29wZW5hcGkuanNvbiAtbyBnZW4vIC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzPXR5cGVzY3JpcHRUaHJlZVBsdXM9dHJ1ZSxtb2RlbFByb3BlcnR5TmFtaW5nPW9yaWdpbmFsLG51bGxTYWZlQWRkaXRpb25hbFByb3BzPXRydWUsZW51bVByb3BlcnR5TmFtaW5nPW9yaWdpbmFsLHN1cHBvcnRzRVM2PXRydWUsdXNlU2luZ2xlUmVxdWVzdFBhcmFtZXRlcj1mYWxzZQpgYGAKCiMjIyBLb3RsaW4KCmBgYHNoCmJ1bnggQHJlc3BvbnNpYmxlYXBpL2NsaSBmaWxlLmtkbCAtbyAvdG1wL29wZW5hcGkuanNvbgpvcGVuYXBpLWdlbmVyYXRvciBnZW5lcmF0ZSAtZyBrb3RsaW4gLWkgL3RtcC9vcGVuYXBpLmpzb24gLW8gZ2VuLyAtLWFkZGl0aW9uYWwtcHJvcGVydGllcz1saWJyYXJ5PWp2bS12ZXJ0eApgYGAKCiMjIFRlc3RpbmcKClRoZSBpZGVhIGJlaGluZCB0ZXN0aW5nIHdpdGggT3BlbkFQSSBpcyB2YWxpZGF0aW5nIHNlcnZlciByZXNwb25zZXMgYWdhaW5zdCB0aGUgY29udHJhY3QuCgojIyMgS290bGluCgpTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Jlc3BvbnNpYmxlYXBpL3Rlc3Qta290bGluLXZlcnR4CgojIyMgUHl0aG9uCgpUbyBiZSBwdWJsaXNoZWQsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbGlzdGVuYm94L3lhbmljL2Jsb2IvbWFzdGVyL3Rlc3RzL3Jlc3BvbnNpYmxlLnB5CgojIyMgSmF2YXNjcmlwdAoKVG8gYmUgcHVibGlzaGVkCgojIyBGdXp6aW5nCgpVc2UgaHR0cHM6Ly9zY2hlbWF0aGVzaXMuaW8gZm9yIG5vdwoKYGBgc2gKcGlweCBpbnN0YWxsIHNjaGVtYXRoZXNpcwpzdCBydW4gLS1jaGVja3MgYWxsIC0tYmFzZS11cmwgaHR0cDovL2xvY2FsaG9zdDo4MDgwIC0td29ya2VycyA0MCBzcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaS5qc29uCmBgYAoKVWx0aW1hdGVseSB0aGUgcGxhbiBpcyB0byBpbnRlZ3JhdGUgZnV6emluZyBpbnRvIHRoZSB0ZXN0aW5nIGxpYnJhcmllcy4KCiMjIFNlZSBhbHNvCgotIFtPcGVuQVBJXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2Fib3V0LykKLSBbQVdTIFNtaXRoeV0oaHR0cHM6Ly9zbWl0aHkuaW8vMi4wL2luZGV4Lmh0bWwpCi0gW0FQSSBCbHVlcHJpbnRdKGh0dHBzOi8vYXBpYmx1ZXByaW50Lm9yZy8pCi0gW1dTRExdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dlYl9TZXJ2aWNlc19EZXNjcmlwdGlvbl9MYW5ndWFnZS8pCi0gW1Byb3RvZm9yY2VdKGh0dHBzOi8vd3d3LnByb3RvZm9yY2UuaW8vKQotIFtTdG9wbGlnaHRdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvLykKLSBbUkFNTF0oaHR0cHM6Ly9yYW1sLm9yZy8pCg== readmeEtag: '"770804ccedec806ba6ec12e218cd61eb598d00a8"' readmeLastModified: Sun, 09 Jun 2024 13:05:53 GMT repositoryId: 451072524 description: A compact language that compiles to OpenAPI created: '2022-01-23T10:39:17Z' updated: '2024-07-11T05:40:44Z' language: TypeScript archived: false stars: 11 watchers: 2 forks: 0 owner: responsibleapi logo: https://avatars.githubusercontent.com/u/119290467?v=4 repoEtag: '"54abc23f68c74b05c647d8ca82c58760678cbc58693820aec6a10ef39308cafe"' repoLastModified: Thu, 11 Jul 2024 05:40:44 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/meoyawn/responsible - source: openapi3 tags repository: https://github.com/stefanbratanov/sofia-supermarkets-api v3: true repositoryMetadata: base64Readme: >- IyBzb2ZpYS1zdXBlcm1hcmtldHMtYXBpCgpbIVtidWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL1N0ZWZhbkJyYXRhbm92L3NvZmlhLXN1cGVybWFya2V0cy1hcGkvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9TdGVmYW5CcmF0YW5vdi9zb2ZpYS1zdXBlcm1hcmtldHMtYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbCkKWyFbUXVhbGl0eSBHYXRlIFN0YXR1c10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9U3RlZmFuQnJhdGFub3Zfc29maWEtc3VwZXJtYXJrZXRzLWFwaSZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9U3RlZmFuQnJhdGFub3Zfc29maWEtc3VwZXJtYXJrZXRzLWFwaSkKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL1N0ZWZhbkJyYXRhbm92L3NvZmlhLXN1cGVybWFya2V0cy1hcGkvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmc/dG9rZW49M1YzVEhJWTZBWCldKGh0dHBzOi8vY29kZWNvdi5pby9naC9TdGVmYW5CcmF0YW5vdi9zb2ZpYS1zdXBlcm1hcmtldHMtYXBpKQoKQVBJINC30LAg0LjQt9Cy0LvQuNGH0LDQvdC1INC90LAg0LjQvdGE0L7RgNC80LDRhtC40Y8g0LfQsCDQv9GA0L7QtNGD0LrRgtC4INC+0YIg0YHRg9C/0LXRgNC80LDRgNC60LXRgtC4INCyINCh0L7RhNC40Y8uCgpbIVtTd2FnZ2VyIFVJXShodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvcj91cmw9aHR0cHM6Ly9hcGkubmFvZmVydGEubmV0L3YzL2FwaS1kb2NzKV0oaHR0cHM6Ly9hcGkubmFvZmVydGEubmV0L3N3YWdnZXItdWkuaHRtbCkKCiMjINCh0LDQudGC0L7QstC1LCDQuNC30L/QvtC70LfQstCw0YnQuCDRgtC+0LLQsCBBUEkKCi0gW9CQ0LvQutC+0YXQvtC7INC90LAg0L7RhNC10YDRgtCwXShodHRwczovL25hb2ZlcnRhLm5ldC8pCgojIyDQn9C+0LTQtNGK0YDQttCw0L3QuCDRgdGD0L/QtdGA0LzQsNGA0LrQtdGC0LgKCi0gW3hdIEJpbGxhCgo+INCf0L7Qu9GD0YfQsNCy0LAg0LjQvdGE0L7RgNC80LDRhtC40Y8g0LfQsCDQv9GA0L7QtNGD0LrRgtC40YLQtSDQvtGCIGh0dHBzOi8vc3NiYmlsbGEuc2l0ZS8uINCY0LfQvtCx0YDQsNC20LXQvdC40Y/RgtCwINGB0LUg0LjQt9Cy0LvQuNGH0LDRgiDQstGK0Lcg0L7RgdC90L7QstCwCj4g0L3QsAo+INC/0YrRgNCy0LjRjyDRgNC10LfRg9C70YLQsNGCINCyINGC0YrRgNGB0LXQvdC10YLQviDQvdCwINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LIgR29vZ2xlCgotIFt4XSBGYW50YXN0aWNvCgo+INCY0LfRgtC10LPQu9GPIFBERiDQsdGA0L7RiNGD0YDQuNGC0LUg0L7RgiBodHRwczovL3d3dy5mYW50YXN0aWNvLmJnL3NwZWNpYWwtb2ZmZXJzINC4INCw0L3QsNC70LjQt9C40YDQsCDQuNC90YTQvtGA0LzQsNGG0LjRj9GC0LAg0LfQsAo+INC/0YDQvtC00YPQutGC0LjRgtC1INCyINGC0Y/RhS4g0JjQt9C+0LHRgNCw0LbQtdC90LjRj9GC0LAg0YHQtSDQuNC30LLQu9C40YfQsNGCINCy0YrQtyDQvtGB0L3QvtCy0LAg0L3QsCDQv9GK0YDQstC40Y8g0YDQtdC30YPQu9GC0LDRgiDQsiDRgtGK0YDRgdC10L3QtdGC0L4g0L3QsAo+INC40LfQvtCx0YDQsNC20LXQvdC40Y8KPiDQsiBHb29nbGUuCgotIFt4XSBLYXVmbGFuZAoKPiDQn9C+0LvRg9GH0LDQstCwINC40L3RhNC+0YDQvNCw0YbQuNGPINC30LAg0L/RgNC+0LTRg9C60YLQuNGC0LUg0L7RgiBodHRwczovL3d3dy5rYXVmbGFuZC5iZy8uCgotIFt4XSBMaWRsCgo+INCf0L7Qu9GD0YfQsNCy0LAg0LjQvdGE0L7RgNC80LDRhtC40Y8g0LfQsCDQv9GA0L7QtNGD0LrRgtC40YLQtSDQvtGCIGh0dHBzOi8vd3d3LmxpZGwuYmcvLgoKLSBbeF0gVC1NYXJrZXQKCj4g0J/QvtC70YPRh9Cw0LLQsCDQuNC90YTQvtGA0LzQsNGG0LjRjyDQt9CwINC/0YDQvtC00YPQutGC0LjRgtC1INC+0YIgaHR0cHM6Ly90bWFya2V0b25saW5lLmJnLy4KCi0gWyBdIE1FVFJPCi0gWyBdIEthbSBNYXJrZXQKLSBbIF0gQ0JBCi0gWyBdIFByb01hcmtldAotIFsgXSBIaXQgTWF4CgojIyBUZWNoIFN0YWNrCgoqIEtvdGxpbgoqIEdyYWRsZQoqIFNwcmluZyBCb290CgojIyBDb2RlIFN0eWxlCgpLb3RsaW4gY29kZSBjb252ZW50aW9ucywgYmFzZWQgb24gW2t0Zm10XShodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2sva3RmbXQpCmFuZCBbZ29vZ2xlLWphdmEtZm9ybWF0XShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZS1qYXZhLWZvcm1hdCkgYXJlIHVzZWQgaW4gdGhpcyBwcm9qZWN0LiBUbwpyZWZvcm1hdCBjb2RlLCBydW46CgpgYGAKLi9ncmFkbGV3IHNwb3RsZXNzQXBwbHkKYGBgCgojIyBSdW5uaW5nIExvY2FsbHkKCkluc3RhbGwgSkRLIDE3IG9yIGFib3ZlIGZyb20gW2hlcmVdKGh0dHBzOi8vamRrLmphdmEubmV0LykuCgoqICoqVW5peCoqCgpgYGAKLi9ncmFkbGV3IGJvb3RSdW4KYGBgCgoqICoqV2luZG93cyoqCgpgYGAKZ3JhZGxldy5iYXQgYm9vdFJ1bgpgYGAKClRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIG5lZWQgdG8gYmUgc2V0IHByaW9yIHRvIHJ1bm5pbmc6CgoqIERCX1VSTAoqIERCX1VTRVJOQU1FCiogREJfUEFTU1dPUkQKKiBHT09HTEVfQVBJX0tFWQoqIENMT1VESU5BUllfQVBJX1NFQ1JFVAoKTmF2aWdhdGUgdG8gPGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpLmh0bWw+IHRvIGNoZWNrIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBhbmQKdGVzdCB0aGUgZW5kcG9pbnRzLgoKIVtBUEkgRG9jdW1lbnRhdGlvbl0oaW1hZ2VzL3N3YWdnZXItdWkucG5nKQo= readmeEtag: '"008584ea68aebd1b1f7673db8853862c70c939a5"' readmeLastModified: Thu, 01 Aug 2024 20:36:54 GMT repositoryId: 346132785 description: API за извличане на информация за продукти от супермаркети в София created: '2021-03-09T20:16:47Z' updated: '2024-09-03T06:32:52Z' language: Kotlin archived: false stars: 11 watchers: 3 forks: 2 owner: StefanBratanov logo: https://avatars.githubusercontent.com/u/14827647?v=4 license: Apache-2.0 repoEtag: '"a042b94e4f8ef6f1412665fbe52b377668bbe4750e1f4e5670b1766c6bc3c38f"' repoLastModified: Tue, 03 Sep 2024 06:32:52 GMT foundInMaster: true category: SDK id: 04dc35e7b9c33ef61294aaf0e176d771 - source: openapi3 tags repository: https://github.com/javachinna/spring-boot-oauth2-jwt v3: true id: 78669f0233dab87b399d7de324a72dd0 repositoryMetadata: base64Readme: >- I1NlY3VyZSBSRVNUIEFQSSB3aXRoIE9BdXRoMiBKV1QgQXV0aGVudGljYXRpb24KCjEuIFtTcHJpbmcgQm9vdCBSRVNUIEFQSSBmb3IgVXNlciByZWdpc3RyYXRpb24gYW5kIGF1dGhlbnRpY2F0aW9uIHdpdGggT0F1dGggMi4wIFJlc291cmNlIHNlcnZlciB1c2luZyBKV1QgYXMgYmVhcmVyIHRva2VuXShodHRwczovL3d3dy5qYXZhY2hpbm5hLmNvbS9zZWN1cmUtc3ByaW5nLXJlc3QtYXBpLW9hdXRoMi1qd3QtYXV0aGVudGljYXRpb24vKQoKMi4gW0NvbmZpZ3VyZSBPcGVuQVBJIDMgU3BlYyB3aXRoIEJhc2ljICYgSldUIEF1dGhlbnRpY2F0aW9uXShodHRwczovL3d3dy5qYXZhY2hpbm5hLmNvbS9jb25maWd1cmUtb3BlbmFwaS1zcGVjLWJhc2ljLWp3dC1hdXRoZW50aWNhdGlvbi8pCjMuIFtDb25maWd1cmUgU3ByaW5nIFNlY3VyaXR5IOKAkyBTZWN1cmUgRGlmZmVyZW50IFVSTHMgRGlmZmVyZW50bHldKGh0dHBzOi8vd3d3LmphdmFjaGlubmEuY29tL3NwcmluZy1zZWN1cml0eS1zZWN1cmUtZGlmZmVyZW50LXVybHMtZGlmZmVyZW50bHkvKQo0LiBbUG9wdWxhdGUgRGF0YWJhc2UgZnJvbSBDU1YgZmlsZSBpbiAyIFNpbXBsZSBTdGVwc10oaHR0cHM6Ly93d3cuamF2YWNoaW5uYS5jb20vc3ByaW5nLWJvb3QtcmVhZC1jc3YtZmlsZS1wb3B1bGF0ZS1kYXRhYmFzZS8pCg== readmeEtag: '"bd56d9cf3f724bf5d64cc4293a5446d846090291"' readmeLastModified: Tue, 14 Feb 2023 23:41:03 GMT repositoryId: 599821532 description: Secure REST API with OAuth2 JWT Authentication created: '2023-02-10T00:20:30Z' updated: '2024-06-12T22:04:16Z' language: Java archived: false stars: 11 watchers: 1 forks: 13 owner: JavaChinna logo: https://avatars.githubusercontent.com/u/23244086?v=4 license: MIT repoEtag: '"850c451e4f86deeeff179ebef486e8707a7f253f75db06dedffe7f53c6937033"' repoLastModified: Wed, 12 Jun 2024 22:04:16 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/apiaddicts/openapi2postman v3: true v3_1: true id: 582d0c64ef558eda3703792449bdfa30 repositoryMetadata: base64Readme: >- IyDwn5ug77iPIE9wZW5hcGkyUG9zdG1hbiAhW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS0yLjAueC1wdXJwbGUpICFbT3BlbkFwaV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tb3BlbmFwaS0lMjNDbG9qdXJlP3N0eWxlPWZsYXQmbG9nbz1vcGVuYXBpaW5pdGlhdGl2ZSZsb2dvQ29sb3I9d2hpdGUpICAhW1Bvc3RtYW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcG9zdG1hbi1GRjZDMzc/c3R5bGU9ZmxhdCZsb2dvPXBvc3RtYW4mbG9nb0NvbG9yPXdoaXRlKSBbIVtOUE1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbnBtLSUyM0NCMzgzNy5zdmc/c3R5bGU9ZmxhdCZsb2dvPW5wbSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpMnBvc3RtYW4pIFshW0xpY2Vuc2U6IExHUEwgdjNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1MR1BMX3YzLWJsdWUuc3ZnKV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLTMuMCkgIAoKKipPcGVuYXBpMlBvc3RtYW4qKiBjcmVhdGVzIGF1dG9tYXRpYyB0ZXN0cyBmcm9tIE9wZW5hcGkgMy4wIHVzaW5nIHBvc3RtYW4gZm9ybWF0LiBBbHNvLCBpdCBjcmVhdGVzIGVudmlyb25tZW50cyBmaWxlcywgZGVwZW5kaW5nIG9mIGNvbmZpZ3VyYXRpb24uClRob3NlIGNvbGxlY3Rpb25zIGNhbiBiZSBpbXBvcnRlbmQgaW4gcG9zdGFuIGFwcGxpY2F0aW9uLiAgVGhlIHRlc3RzIGluY2x1ZGVzIHRlc3RzIGZvciAyeHgsIDR4eC4uLiBhbmQgdGVzdHMgdG8gdmFsaWRhdGUgb3V0cHV0IGZvcm1hdHMuCgo8cCBhbGlnbj0iY2VudGVyIj4KCTxhIGhyZWY9Imh0dHBzOi8vYXBpYWRkaWN0cy5vcmcvIj4KCSAgPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9hcGlhZGRpY3RzL29wZW5hcGkycG9zdG1hbi9yYXcvbWFzdGVyL2ltZ3Mvb3BlbmFwaTJwb3N0bWFuLnN2ZyIgaGVpZ2h0ID0gJzEwMCc+Cgk8L2E+CjwvcD4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqT3BlbmFwaTJwb3N0bWFuKiogQWRvcHRlcnMgbGlzdCAK8J+ToiBJZiBPcGVuYXBpMnBvc3RtYW4gaXMgcGFydCBvZiB5b3VyIG9yZ2FuaXphdGlvbidzIHRvb2xraXQsIHdlIGtpbmRseSBlbmNvdXJhZ2UgeW91IHRvIGluY2x1ZGUgeW91ciBjb21wYW55J3MgbmFtZSBpbiBvdXIgQWRvcHRlcnMgbGlzdC4g8J+ZjyBUaGlzIG5vdCBvbmx5IHNpZ25pZmljYW50bHkgYm9vc3RzIHRoZSBwcm9qZWN0J3MgdmlzaWJpbGl0eSBhbmQgcmVwdXRhdGlvbiBidXQgYWxzbyByZXByZXNlbnRzIGEgc21hbGwgeWV0IGltcGFjdGZ1bCB3YXkgdG8gZ2l2ZSBiYWNrIHRvIHRoZSBwcm9qZWN0LgoKfCBPcmdhbml6YXRpb24gIHwgRGVzY3JpcHRpb24gb2YgVXNlIC8gUmVmZXJlbmMgfAp8LS0tfC0tLXwKfCAgW0Nsb3VkQXBwaV0oaHR0cHM6Ly9jbG91ZGFwcGkubmV0LykgIHwgQXBpZmljYXRpb24gYW5kIGdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyB8CnwgW01hZHJpZCBEaWdpdGFsXShodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NlcnZpY2lvcy9zZWRlLWVsZWN0cm9uaWNhL21hZHJpZC1kaWdpdGFsLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzICB8CgojIPCfkanwn4+94oCN8J+SuyAgQ29udHJpYnV0ZSB0byBBcGlBZGRpY3RzIAoKV2UncmUgYW4gaW5jbHVzaXZlIGFuZCBvcGVuIGNvbW11bml0eSwgd2VsY29taW5nIHlvdSB0byBqb2luIG91ciBlZmZvcnQgdG8gZW5oYW5jZSBBcGlBZGRpY3RzLCBhbmQgd2UncmUgZXhjaXRlZCB0byBwcmlvcml0aXplIHRhc2tzIGJhc2VkIG9uIGNvbW11bml0eSBpbnB1dCwgaW52aXRpbmcgeW91IHRvIHJldmlldyBhbmQgY29sbGFib3JhdGUgdGhyb3VnaCBvdXIgR2l0SHViIGlzc3VlIHRyYWNrZXIuCgpGZWVsIGZyZWUgdG8gZHJvcCBieSBhbmQgZ3JlZXQgdXMgb24gb3VyIEdpdEh1YiBkaXNjdXNzaW9uIG9yIERpc2NvcmQgY2hhdC4gWW91IGNhbiBhbHNvIHNob3cgeW91ciBzdXBwb3J0IGJ5IGdpdmluZyB1cyBzb21lIEdpdEh1YiBzdGFycyDirZDvuI8sIG9yIGJ5IGZvbGxvd2luZyB1cyBvbiBUd2l0dGVyLCBMaW5rZWRJbiwgYW5kIHN1YnNjcmliaW5nIHRvIG91ciBZb3VUdWJlIGNoYW5uZWwhIPCfmoAKClshWyJCdXkgTWUgQSBDb2ZmZWUiXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2Fzc2V0cy9pbWcvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyldKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXBpYWRkaWN0cykKCgojIPCfk5EgR2V0dGluZyBzdGFydGVkIAoKWyFbTlBNXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL29wZW5hcGkycG9zdG1hbi0lMjNDQjM4Mzcuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1ucG0mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaTJwb3N0bWFuKQoKIyMjIEluc3RhbGwgcGFja2FnZQpgYGAKbnBtIGkgb3BlbmFwaTJwb3N0bWFuIC1nCmBgYAoKIyMjIEZpcnN0IHN0ZXBzCgojIyMjIGBBcmd1bWVudHNgCnwgYXJndiAgfCBhIHxkZXNjcmlwdGlvbiB8CnwtLS18LS0tfC0tLXwKfCAtLWZpbGUgfCAtZiB8IHBhdGggb3BlbmFwaSBmaWxlIHwKfCAtLWNvbmZpZ3VyYXRpb24gfCAtYyB8IHBhdGggY29uZmlnIGZpbGUgfAoKIyMjIyBgTm9ybWFsYCB1c2FnZQoKCmBgYApvMnAgLWMgLlxleGFtcGxlXG8ycF9jb25maWdfZmlsZS5qc29uIC1mIC5cZXhhbXBsZVxwZXRzdG9yZS55YW1sCmBgYAoKIyMjIyBgRGVmYXVsdGAgY29uZmlnIAoKYGBgCm8ycCAgLWYgLlxleGFtcGxlXHBldHN0b3JlLnlhbWwKYGBgCklmIHlvdSBkbyBub3QgdXNlIHRoZSAtYyBhcmd1bWVudCwgdGhlIGZvbGxvd2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gd2lsbCBiZSB1c2VkLiBUaGUgb3V0cHV0IHBhdGggYHRhcmdldF9mb2xkZXJgIGlzIGAuL291dGAuCmBgYAogIGFwaV9uYW1lOiBmaWxlbmFtZSwKICBpc19pbmxpbmU6IGZhbHNlLAogIHNjaGVtYV9pc19pbmxpbmU6IGZhbHNlLAogIHNjaGVtYV9wcmV0dHlfcHJpbnQ6IHRydWUsCiAgZW52aXJvbm1lbnRzOlsKICAgIHsKICAgICAgbmFtZSA6ICJERVYiLAogICAgICBwb3N0bWFuX2NvbGxlY3Rpb25fbmFtZTogIiVhcGlfbmFtZSVfREVWIiwKICAgICAgcG9zdG1hbl9lbnZpcm9ubWVudF9uYW1lOiAiJWFwaV9uYW1lJV9ERVYiLAogICAgICB0YXJnZXRfZm9sZGVyOiAiLi9vdXQiLAogICAgICBoYXNfc2NvcGVzOiBmYWxzZSwKICAgICAgYXBwbGljYXRpb25fdG9rZW46IGZhbHNlLAogICAgICBudW1iZXJfb2Zfc2NvcGVzOiAwCiAgICB9CiAgXQpgYGAKCgojIyBUYWJsZSBvZiBjb250ZW50CgoqIFtTdHJ1Y3R1cmUgYW5kIHN1Ym1vZHVsZXNdKCNzdHJ1Y3R1cmUtYW5kLXN1Ym1vZHVsZXMpCiogW0J1aWxkIGFuZCBydW5dKCNidWlsZC1hbmQtcnVuKQogICogW1ByZXJlcXVpc2l0ZXNdKCNwcmVyZXF1aXNpdGVzKQogICogW0dldCB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBmaXJzdCB0aW1lXSgjZ2V0LXRoZS1zb3VyY2UtY29kZS1mb3ItdGhlLWZpcnN0LXRpbWUpCiAgKiBbUnVuXSgjcnVuKQogICogW0dldCB0aGUgbGF0ZXN0IGNoYW5nZXNdKCNnZXQtdGhlLWxhdGVzdC1jaGFuZ2VzKQoqIFtDb250cmlidXRlXSgjY29udHJpYnV0ZSkKICAqIFtJREUgc3VwcG9ydF0oI2lkZS1zdXBwb3J0KQogICAgKiBbSW50ZWxsaUogSURFQV0oI2ludGVsbGlqLWlkZWEpCiAgICAqIFtFY2xpcHNlXSgjZWNsaXBzZSkKKiBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCiogW0FkdmFuY2VkIEZ1bmN0aW9uYWxpdHldKCNhZHZhbmNlZC1mdW5jdGlvbmFsaXR5KQoqIFtBZGRpdGlvbmFsIHJlc291cmNlc10oI2FkZGl0aW9uYWwtcmVzb3VyY2VzKQoKCiMjIFN0cnVjdHVyZSBhbmQgc3VibW9kdWxlcwoKKiAqW2RvY3NdKGRvY3MpKiAtIFRoaXMgbW9kdWxlIGNvbnRlbnRzIHRoZSBndWlkZXMgdG8gY29uZmlndXJhdGUgYW5kIHJ1biB0aGUgcHJvZHVjdC4gRG9jdW1lbnRzIFBkZnMgYnkgQ2xvdWRBcHBpLgoqICpbZXhhbXBsZV0oZXhhbXBsZSkqIC0gSW50ZWdyYXRpb24gYW5kIHN5c3RlbSB0ZXN0cyBmb3IgU29hcFVJLgoqICpbc3JjXShzcmMpKiDigJMgU291cmNlIGNvZGUKKiAqW3Rlc3RdKHNvYXB1aS1tYXZlbi1wbHVnaW4tdGVzdGVyKSogLSBUZXN0aW5nIGZvbGRlcgoKIyMgQnVpbGQgYW5kIHJ1bgojIyMgUHJlcmVxdWlzaXRlcwpZb3UgbmVlZCBub2RlIHYxMCBvciBsYXRlci4KCgojIyMgcnVuCgpQbGVhc2UgcmV2aWV3IHRoZSBvMnBfY29uZmlnX2ZpbGUuanNvbiBiZWZvcmUgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZApFeGVjdXRlIApub2RlIGluZGV4LmpzIC0tY29uZmlndXJhdGlvbiBvMnBfY29uZmlnX2ZpbGUuanNvbiAtLWZpbGUgZXhhbXBsZS9zd2FnZ2VyX3Byb3ZpbmNpYXMueW1sCgpUaGUgb3V0cHV0IGZpbGVzIGFyZSB0aGUgZm9sbG93aW5nIChpbiBleGFtcGxlIGZvbGRlcik6IAoqIFNXQUdHRVJfQVBJX1Rlc3RTdWl0ZV9ERVYucG9zdG1hbl9jb2xsZWN0aW9uLmpzb24KKiBTV0FHR0VSX0FQSV9UZXN0U3VpdGVFbnZfREVWLnBvc3RtYW5fZW52aXJvbm1lbnQuanNvbgoqIFNXQUdHRVJfQVBJX1Rlc3RTdWl0ZV9QUk9ELnBvc3RtYW5fY29sbGVjdGlvbi5qc29uCiogU1dBR0dFUl9BUElfVGVzdFN1aXRlRW52X1BST0QucG9zdG1hbl9lbnZpcm9ubWVudC5qc29uCgoKSW4gcG9zdG1hbjoKCiogaW1wb3J0IGdlbmVyYXRlZCBwb3N0bWFuIGNvbGxlY3Rpb24gZmlsZSBpbiBwb3N0bWFuIAoqIGltcG9ydCBnZW5lcmF0ZWQgcG9zdG1hbiBlbnZpcm9ubWVudCBmaWxlIGluIHBvc3RtYW4KKiB1cGRhdGUgdmFyaWFibGVzIGluIHRoZSBlbnZpcm5vbWVudCB0byB0ZXN0IGFsbCBjYXNlcwoKCiMjIyBDb25maWd1cmF0aW9uIGZpbGUKCkNvbGxlY3Rpb25zIGFuZCBlbnZpcm9ubWVudHMgdG8gZ2VuZXJhdGUgY2FuIGJlIGNvbmZpZ3VyZWQgdXNpbmcgYSBKU09OIGNvbmZpZ3VyYXRpb24gZmlsZS4gQ29sbGVjdGlvbiBhbmQgZW52aXJvbm1lbnQgbmFtZSBjYW4gYmUgc3BlY2lmaWVkLCBhcyB3ZWxsIGFzIHRoZSB0YXJnZXQgZm9sZGVyIGZvciByZXN1bHRpbmcgZmlsZXMsIHRoZSBhdXRob3JpemF0aW9ucyBjb2xsZWN0aW9uIHRvIGJlIHVzZWQgYW5kIHNvbWUgb3RoZXIgY2hhcmFjdGVyaXN0aWNzLiBUaGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBoYXMgYW4gc3BlY2lmaWNhdGlvbiBhbmQgZXhhbXBsZXMgdGhhdCBjYW4gYmUgcmVhZCBvbiB0aGUgZm9sbG93aW5nIGRvY3VtZW50OiAgCltDb25maWd1cmF0aW9uIGZpbGUgb3BlbmFwaTJwb3N0bWFuXSguL2RvY3Mvb3BlbmFwaTJwb3N0bWFuLWd1aWEucGRmKS4gVGhpcyBkb2N1bWVudCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBzcGFuaXNoIGJ5IG5vdy4gaXQgd2lsbCBiZSBzb29uIHRyYW5zbGF0ZWQgdG8gZW5nbGlzaC4KCmFuIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGluY2x1ZGVkIGluIGZpbGUgc3RydWN0dXJlLgoKIyMjIFdvcmtzcGFjZSBjb25maWd1cmF0aW9uCgpOb2RlLmpzIGFuZCBucG0gcGFja2FnZSBtYW5hZ2VyIGFyZSByZXF1aXJlZCB0byBydW4gdGhlIHRvb2wuIEl0cyBhZHZpY2VkIHRvIHVzZSBwcmVjb25maWd1cmVkIGluc3RhbGxhdGlvbiB0b29scyBwcm92aWRlZCBieSB0aGUgbWFudWZhY3R1cmVyOgpbaHR0cHM6Ly9ub2RlanMub3JnL2VzL2Rvd25sb2FkL10oaHR0cHM6Ly9ub2RlanMub3JnL2VzL2Rvd25sb2FkLykKCiMjIPCfkpsgU3BvbnNvcnMKPHAgYWxpZ249ImNlbnRlciI+Cgk8YSBocmVmPSJodHRwczovL2FwaWFkZGljdHMub3JnLyI+CiAgICAJPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy5jbG91ZGFwcGkubmV0L3dlYi9pbWFnZS80MjQ4L0xPR09DbG91ZGFwcGkyMDIwVmVyc2lvbmVzLTAxLnBuZyIgYWx0PSJjbG91ZGFwcGkiIHdpZHRoPSIxNTAiLz4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly93d3cuY29tdW5pZGFkLm1hZHJpZC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3N0eWxlcy9ibG9ja190ZWFzZXJfaW1hZ2UvcHVibGljL2ltZy9sb2dvcy1zaW1ib2xvcy9sb2dvX2NlbnRyYWRvX21kLnBuZz9pdG9rPTRyVFVobWNqIiBhbHQ9Im1kIiB3aWR0aD0iMTUwIi8+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPgoJPC9hPgo8L3A+Cgo= readmeEtag: '"b4ad39e2d7aceb82dfdaf717091567c3b2d4c638"' readmeLastModified: Wed, 22 May 2024 06:52:37 GMT repositoryId: 259690576 description: >- Project open source financed by Madrid Digital (Spain) and CloudAPPi S.L and promoted by APIAddicts. With this project, you can generate all tests automatically using a Swagger document, and you can add it to CI using newman. created: '2020-04-28T16:21:37Z' updated: '2024-08-28T06:35:08Z' language: JavaScript archived: false stars: 11 watchers: 9 forks: 7 owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: NOASSERTION repoEtag: '"71d451661f22eb91a2f88eeef895c4865340a09a5d0e7fadc2028150edacf2ad"' repoLastModified: Wed, 28 Aug 2024 06:35:08 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mokkapps/openapi-angular-spring-demo v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWFuZ3VsYXItc3ByaW5nLWRlbW8KQSBkZW1vIGFwcGxpY2F0aW9uIHdoaWNoIGRlbW9uc3RyYXRlcyBPcGVuQVBJIGdlbmVyYXRvciBpbiBhIEFuZ3VsYXIgKyBTcHJpbmcgQm9vdCBhcHBsaWNhdGlvbgo= readmeEtag: '"3052e99afe77461677d14ac17f8d0413278b41ee"' readmeLastModified: Sun, 23 Feb 2020 14:05:05 GMT repositoryId: 242348703 description: >- A demo application which demonstrates OpenAPI generator in a Angular + Spring Boot application created: '2020-02-22T13:44:36Z' updated: '2023-11-05T10:51:03Z' language: Java archived: false stars: 10 watchers: 3 forks: 4 owner: Mokkapps logo: https://avatars.githubusercontent.com/u/3127210?v=4 license: MIT repoEtag: '"ae4001a520b4f70eb4d318ea53ab85602ad37a081e26f7ca9f5e3641286e5d8a"' repoLastModified: Sun, 05 Nov 2023 10:51:03 GMT foundInMaster: true category: - Low-level Tooling - SDK - Server Implementations id: c0b59bc62c52bcac0736a7fc32b70d86 - source: openapi3 tags repository: https://github.com/kevinmmartins/python-flask-connexion-example-openapi3 v3: true repositoryMetadata: base64Readme: >- IyBCYXNpYyBwcm9qZWN0IHdpdGggRmxhc2sgLCBDb25uZXhpb24gYW5kIE9wZW5BcGkgMwoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcva2V2aW5tbWFydGlucy9weXRob24tZmxhc2stY29ubmV4aW9uLWV4YW1wbGUtb3BlbmFwaTMuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcva2V2aW5tbWFydGlucy9weXRob24tZmxhc2stY29ubmV4aW9uLWV4YW1wbGUtb3BlbmFwaTMpCgpCYXNpYyBQeXRob24gcHJvamVjdCB1c2luZyBGbGFzayBhbmQgQ29ubmV4aW9uIGJ5IFphbGFuZG8KCmBgYGh0dHAKaHR0cHM6Ly9naXRodWIuY29tL3phbGFuZG8vY29ubmV4aW9uCmBgYAoKIyMgUmVxdWlyZW1lbnRzCgoqIERvY2tlciBDb21wb3NlIDEuMjEuMisKKiBQeXRob24gMy42ICsKCiMjIFJ1biB3aXRoIERvY2tlciBDb21wb3NlCgpgYGBiYXNoCiMgYnVpbGRpbmcgdGhlIGNvbnRhaW5lcgpzdWRvIGRvY2tlci1jb21wb3NlIGJ1aWxkCgojIHN0YXJ0aW5nIHVwIGEgY29udGFpbmVyCnN1ZG8gZG9ja2VyLWNvbXBvc2UgdXAKYGBgCgojIyBCdWlsZCB0aGUgdmlydHVhbCBlbnZpcm9ubWVudAoKYGBgYmFzaAp2aXJ0dWFsZW52IC1wIC91c3IvYmluL3B5dGhvbjMuNiB2ZW52CnNvdXJjZSB2ZW52L2Jpbi9hY3RpdmF0ZQpwaXAzIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dApwaXAzIGluc3RhbGwgLXIgdGVzdC1yZXF1aXJlbWVudHMudHh0CmBgYAoKIyMgU3dhZ2dlciBkZWZpbml0aW9uCgpgYGBodHRwCmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MS92MS9zd2FnZ2VyLmpzb24KYGBgCgojIyBIZWFsdGggQ2hlY2sKCmBgYGh0dHAKaHR0cDovL2xvY2FsaG9zdDo4MDgxL3YxL2Jhc2ljL3BpbmcKYGBgCgojIyBMYXVuY2ggdGVzdHMKCmBgYGJhc2gKc291cmNlIHZlbnYvYmluL2FjdGl2YXRlCnRveApgYGAK readmeEtag: '"61f03a7c540650dd4bd83c2a1b290f00b457a6d6"' readmeLastModified: Sun, 09 Jun 2024 22:42:20 GMT repositoryId: 181561736 description: >- Basic REST project with Flask , Connexion by Zalando , OpenApi3, Docker and tox created: '2019-04-15T20:35:56Z' updated: '2024-06-09T22:42:24Z' language: Python archived: false stars: 10 watchers: 2 forks: 5 owner: kevinmmartins logo: https://avatars.githubusercontent.com/u/20428703?v=4 license: Apache-2.0 repoEtag: '"f594b2091d7407c7ec499dd82529bfa04124756a2a90250c154aabbd2b76417c"' repoLastModified: Sun, 09 Jun 2024 22:42:24 GMT foundInMaster: true category: - Mock - Server Implementations id: c3515799d051759b497d216efbf7d671 - source: openapi3 tags repository: https://github.com/networknt/openapi-bundler v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWJ1bmRsZXIKQSB1dGlsaXR5IHRoYXQgbWVyZ2VzIG11bHRpcGxlIE9wZW5BUEkgZmlsZXMgaW50byBhIHNpbmdsZSBmaWxlIHdpdGggYWxsIGV4dGVybmFsCnJlZmVyZW5jZXMgcmVzb2x2ZWQgdG8gbG9jYWwgY29tcG9uZW50IHJlZmVyZW5jZXMuCgojIyBXaHkgdGhpcyBPcGVuQVBJIEJ1bmRsZXIKCk9wZW5BUEkgaXMgYmVjb21pbmcgdGhlIGRlLWZhY3RvIFJFU1QgQVBJIHNwZWNpZmljYXRpb24sIGFuZCBhIGxvdCBwZW9wbGUgaGF2ZSBhZG9wdGVkIGl0CnRvIHdyaXRlIHRoZWlyIFJFU1RmdWwgQVBJIHNwZWMuCgpGb3Igc21hbGwgQVBJcywgaXQgaXMgYWNjZXB0YWJsZSB0byBoYXZlIGEgc2luZ2xlIE9wZW5BUEkgZGVmaW5pdGlvbiBmaWxlLCBob3dldmVyIGZvciBhIGxhcmdlIHNjYWxlIEFQSQpwcm9qZWN0LCBpdCBpcyBoYXJkIHRvIG1hbmFnZSBtdWx0aXBsZSBBUEkgc3BlY2lmaWNhdGlvbnMgdG9nZXRoZXIuCgpGb3IgYW4gb3JnYW5pemF0aW9uIHdpdGggdG9vCm1hbnkgQVBJcywgaXQgaXMgdmVyeSBuYXR1cmFsIHRvIGRlZmluZSBzaGFyYWJsZSBvYmplY3QgZGVmaW5pdGlvbnMgaW4gc2VwYXJhdGUgZmlsZXMKaW4gb3JkZXIgdG8gYXZvaWQgZHVwbGljYXRpb25zIGFuZCBmb3N0ZXIgY29uc2lzdGVuY3kgYWNyb3NzIGFuIG9yZ2FuaXphdGlvbi4gV2l0aCBtdWx0aXBsZSBmaWxlcyBpbnRlci1jb25uZWN0ZWQgdG9nZXRoZXIgdG8gZm9ybQpvbmUgQVBJIHNwZWNpZmljYXRpb24sIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIGFuZCBleHRlcm5hbCByZWZlcmVuY2VzIGFyZSB0b28gY29tcGxpY2F0ZWQKdG8gbWFuYWdlLgoKTHVja2lseSwgdGhlcmUgYXJlIGEgbG90IG9mIHRvb2xzIGxpa2UgZWRpdG9ycywgcGFyc2VycyBhbmQgYnVuZGxlcnMgaW4gdGhlIG1hcmtldCB0aGF0CnN1cHBvcnQgbXVsdGlwbGUgZmlsZXMuIFRoZXNlIHRvb2xzIGNhbiBidW5kbGUgbXVsdGlwbGUgWUFNTCBmaWxlcyB0b2dldGhlciB0byBjcmVhdGUKYSBmaW5hbCB2ZXJzaW9uIGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYW5kIGRlLXJlZmVyZW5jZSBleHRlcm5hbCBkZXBlbmRlbmNpZXMuCgpBcyBvdXIgbGlnaHQtcmVzdC00aiBmcmFtZXdvcmsgZW5jb3VyYWdlcyBhIGNvbnRyYWN0IGRyaXZlbiBkZXNpZ24gYXBwcm9hY2gsIHRoZSBzcGVjaWZpY2F0aW9uCnNob3VsZCBiZSBjcmVhdGVkIGJlZm9yZSBjb2Rpbmcgc3RhcnRzLiBBY3R1YWxseSwgaWYgdGhlIHNwZWMgaXMgcmVhZHksIHlvdSBjYW4gdXNlCltsaWdodC1jb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vbmV0d29ya250L2xpZ2h0LWNvZGVnZW4pIHRvIGdlbmVyYXRlIHRoZSBwcm9qZWN0LgoKVGhlIGdlbmVyYXRvciBmb3IgW2xpZ2h0LXJlc3QtNGpdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZXR3b3JrbnQvbGlnaHQtcmVzdC00aikKZ2VuZXJhdGVzIGFsc28gdGhlIG9iamVjdCBtb2RlbCAoUE9KTykgZnJvbSB0aGUgb3BlbmFwaS5qc29uIHdoZXJlIG9iamVjdHMgYXJlIGRlZmluZWQgaW4gdGhlIHNwZWNpZmljYXRpb24uIEluCmFkZGl0aW9uLCBsaWdodC1yZXN0LTRqIHJlcXVpcmVzIHRoZSBmaW5hbCB2ZXJzaW9uIG9mIHRoZSBvcGVuYXBpLmpzb24gdG8gYmUgaW5jbHVkZWQKaW50byB0aGUgc2VydmljZSBjb2RlIHRvIGRvIHJ1bnRpbWUgc2NoZW1hIHZhbGlkYXRpb24gYXMgd2VsbCBhcyBPQXV0aCAyLjAgc2NvcGUKdmVyaWZpY2F0aW9uIGF0IHJ1bnRpbWUuCgpUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIGZpbmFsIHZlcnNpb24gb2Ygb3BlbmFwaS5qc29uIGlzIHNlbGYtY29udGFpbmVkIGFuZCBhbGwgbW9kZWxzCnNob3VsZCBiZSBkZWZpbmVkIGluIHRoZSBjb21wb25lbnRzIHNlY3Rpb24gaW5zdGVhZCBvZiBiZWluZyBkZS1yZWZlcmVuY2VkIGlubGluZS4KCkV4aXN0aW5nIGJ1bmRsZXJzIHN1Y2ggYXMgW3N3YWdnZXItY2xpXShodHRwczovL2dpdGh1Yi5jb20vQmlnc3RpY2tDYXJwZXQvc3dhZ2dlci1jbGkpCmNhbm5vdCBoYW5kbGUgb3VyIHNwZWNpZmljYXRpb24gZmlsZXMgY29ycmVjdGx5LCB0aGVyZWZvcmUgdGhlIG5lZWQgYXJpc2VzIHRvIGNyZWF0ZSBhIGdlbmVyYWxseSByZS11c2FibGUgYnVuZGxlciBmb3IgT3BlbkFQSSBkZWZpbml0aW9ucy4KClRoZSB0b29sIHZhbGlkYXRlcyBidW5kbGVkIEFQSSBzcGVjaWZpY2F0aW9ucyBhbmQgb2ZmZXJzIGFsc28gaW5kZXBlbmRlbnQgdmFsaWRhdGlvbiBmdW5jdGlvbmFsaXR5LgoKIyMgRmVhdHVyZXMKCiMjIyBSZW1vdGUgUmVmZXJlbmNlCgpUaGlzIGJ1bmRsZXIgY2FuIHJlc29sdmUgYWxsIHJlbW90ZSByZWZlcmVuY2VzIGluIG9wZW5hcGkueWFtbCB3aGljaCBpcyB0aGUgbWFpbiBmaWxlCnRvIGJlIHByb2Nlc3NlZC4gSWYgdGhlIHJlZmVyZW5jZSBpcyBhbiBvYmplY3QsIGl0IHdpbGwgcmVzb2x2ZSBpdHMgaW50ZXJuYWwgcmVmZXJlbmNlcwpmaXJzdCBhbmQgdGhlbiBtb3ZlIGl0IGludG8gY29tcG9uZW50cyBpbiB0aGUgZ2VuZXJhdGVkIG9wZW5hcGkuanNvbi4gQXQgdGhlIHNhbWUgdGltZQp0aGUgZXh0ZXJuYWwgcmVmZXJlbmNlIGluIG9wZW5hcGkueWFtbCB3aWxsIGJlIGNoYW5nZWQgdG8gbG9jYWwgcmVmZXJlbmNlIHdpdGggIy9jb21wb25lbnRzL3trZXl9CgpJZiB0aGUgcmVtb3RlIHJlZmVyZW5jZSBpcyBub3QgYW4gb2JqZWN0LCBpdCB3aWxsIGJlIHJlc29sdmVkIGlubGluZSBpbiB0aGUgZ2VuZXJhdGVkCm9wZW5hcGkuanNvbiBmaWxlLgoKSWYgeW91IGhhdmUgc2VwYXJhdGUgcmVmZXJlbmNlIGZpbGVzLCB5b3UgbXVzdCBwbGFjZSB0aGVzZSBmaWxlcyBpbnRvIHRoZSBzYW1lIGZvbGRlciB5b3VyIG9wZW5hcGkueWFtbCwgb3IgcmVsYXRpdmUgdG8gdGhhdCBmb2xkZXIuIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBjb21tb24KZm9sZGVyIHRoYXQgY29udGFpbnMgYWxsIHRoZSBjb21tb24gT3BlbkFQSSBmaWxlcywgeW91IG1pZ2h0IG5lZWQgdG8gY29weSB0aGUgY29tbW9uCmZvbGRlciBpbnRvIHlvdXIgZm9sZGVyIHRoYXQgY29udGFpbnMgb3BlbmFwaS55YW1sIGZvciB5b3VyIEFQSS4KCiMjIyBMb2NhbCBSZWZlcmVuY2UKCklmIHRoZSByZWZlcmVuY2UgaXMgYW4gb2JqZWN0IGluIGNvbXBvbmVudHMsIGl0IHdpbGwgcmVzb2x2ZSBhbGwgdGhlIHJlbW90ZSByZWZlcmVuY2VzCmluIGRlZmluaXRpb25zLgoKSWYgdGhlIHJlZmVyZW5jZSBpcyBub3QgYW4gb2JqZWN0LCBhbiBlcnJvciB3aWxsIG9jY3VyIGFuZCB0aGUgcHJvY2VzcyB3aWxsIGV4aXQuCgojIyBVc2FnZQoKVGhlIGJ1bmRsZXIgYXNzdW1lcyB0aGF0IHRoZSBpbnB1dCBmaWxlIGlzIG9wZW5hcGkueWFtbCBhbmQgYWxsIHRoZSByZW1vdGUgcmVmZXJlbmNlIGZpbGVzCmFyZSBpbiB0aGUgcmlnaHQgcGF0aC4KCiMjIyBVc2UgaXQgYXMgSmF2YSB1dGlsaXR5CgpgYGAKamF2YSAtamFyIHRhcmdldC9vcGVuYXBpLWJ1bmRsZXIuamFyIDxvcGVyYXRpb24+IDxhcmd1bWVudHMuLi4uPgoKT3BlcmF0aW9ucyBhcmU6CiAgYnVuZGxlCiAgdmFsaWRhdGUKCkFyZ3VtZW50cyBhcmU6CiAgLS1kaXIsIC1kIDogVGhlIGlucHV0IGRpcmVjdG9yeSB3aGVyZSB0aGUgWUFNTCBmaWxlcyBjYW4gYmUgZm91bmQgZm9yIGJ1bmRsaW5nIHwgdmFsaWRhdGlvbi4gTWFuZGF0b3J5IHBhcmFtZXRlcgogIC0tZmlsZSwgLWYgOiBUaGUgbmFtZSBvZiB0aGUgWUFNTCBmaWxlIHRvIGJlIGJ1bmRsZWQgb3IgdmFsaWRhdGVkLiBEZWZhdWx0OiBvcGVuYXBpLnlhbWwKCiAgLS1vdXRwdXRGaWxlLCAtb2Y6IFRoZSBuYW1lIG9mIHRoZSBidW5kbGVkIGFuZCB2YWxpZGF0ZWQgT3BlbkFQSSBmaWxlLiBEZWZhdWx0OiBvcGVuYXBpLmJ1bmRsZWQKICAtLW91dHB1dERpciwgLW9kIDogVGhlIG91dHB1dCBkaXJlY3Rvcnkgb2YgdGhlIGJ1bmRsZWQgYW5kIHZhbGlkYXRlZCBmaWxlLiBEZWZhdWx0OiBzYW1lIGFzIGlucHV0IGRpcmVjdG9yeSBzcGVjaWZpZWQgaW4gPGRpcj4KICAtLW91dHB1dEZvcm1hdCwgLW8gOiBUVGhlIG91dHB1dCBmb3JtYXQgZm9yIHRoZSBidW5kbGVkIGZpbGU6IFlBTUwgfCBKU09OIHwgYm90aC4gRGVmYXVsdDogWUFNTAoKICAtZGVidWcgOiB0byB2aWV3IGRlYnVnIG91dHB1dAoKIyBHZW5lcmFsIHVzYWdlOgogIEJ1bmRsZTogCiAgICBqYXZhIC1qYXIgb3BlbmFwaS1idW5kbGVyLmphciBidW5kbGUgLWQgPG15Rm9sZGVyPiAtZiA8aW5wdXQgZmlsZT4gLW8gPGpzb258eWFtbHxib3RoPiAtb2YgPG91dHB1dCBmaWxlIG5hbWU+IC1vZCA8b3V0cHV0IGZvbGRlcj4KCiAgVmFsaWRhdGU6CiAgICBqYXZhIC1qYXIgb3BlbmFwaS1idW5kbGVyLmphciBidW5kbGUgLWQgPG15Rm9sZGVyPiAtZiA8aW5wdXQgZmlsZT4KCiMgVG8gdmlldyBkZWJ1ZyBtZXNzYWdlcyBkdXJpbmcgdGhlIGJ1bmRsaW5nIG9yIHZhbGRpYXRpb24gcHJvY2VzcywgdXNlIHRoZSB1dGlsaXR5IHdpdGggLWRlYnVnCiAgamF2YSAtZGVidWcgLWphciBvcGVuYXBpLWJ1bmRsZXIuamFyIGJ1bmRsZSAtZCA8bXlGb2xkZXI+IC1mIDxpbnB1dCBmaWxlPiAtbyA8anNvbnx5YW1sfGJvdGg+IAoKIyBUbyB2aWV3IGRlYnVnIG1lc3NhZ2VzIGR1cmluZyB0aGUgYnVuZGxpbmcgb3IgdmFsZGlhdGlvbiBwcm9jZXNzLCB1c2UgdGhlIHV0aWxpdHkgd2l0aCAtZGVidWcKICBqYXZhIC1kZWJ1ZyAtamFyIG9wZW5hcGktYnVuZGxlci5qYXIgdmFsaWRhdGUgLWQgPG15Rm9sZGVyPiAtZiA8aW5wdXQgZmlsZT4gCgojIFNpbXBsaWZpZWQgYnVuZGxlciBjYWxsLCB3aXRoIGRlZmF1bHQgdmFsdWVzLCB1c2VzIG9wZW5hcGkueWFtbCBhcyBpbnB1dCBhbmQganNvbiBhcyBvdXRwdXQgZm9ybWF0CmphdmEgLWphciBvcGVuYXBpLWJ1bmRsZXIuamFyICBidW5kbGUgLWQgPG15Rm9sZGVyPgoKCmBgYAoKVG8gdmlldyB1c2FnZSBoZWxwIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKYGBgCkNvbW1hbmQ6CmphdmEgLWphciBvcGVuYXBpLWJ1bmRsZXIuamFyICAtaAoKVXNhZ2U6IFtvcHRpb25zXSBvcGVyYXRpb246IFRoZSBvcGVyYXRpb24gdG8gYmUgcGVyZm9ybWVkLiAKICAgICAgIFN1cHBvcnRlZCBvcGVyYXRpb25zOiBidW5kbGUgfHZhbGlkYXRlLiBNdXN0IGJlIHNwZWNpZmllZAoKICBPcHRpb25zOgogICAgLS1kaXIsIC1kCiAgICAgIFRoZSBpbnB1dCBkaXJlY3Rvcnkgd2hlcmUgdGhlIFlBTUwgZmlsZXMgY2FuIGJlIGZvdW5kLiBNdXN0IGJlIHNwZWNpZmllZAogICAgLS1maWxlLCAtZgogICAgICBUaGUgbmFtZSBvZiB0aGUgWUFNTCBmaWxlIHRvIGJlIGJ1bmRsZWQuIERlZmF1bHQgPSBvcGVuYXBpLnlhbWwKICAgIC0tb3V0cHV0LCAtbwogICAgICBUaGUgb3V0cHV0IGZvcm1hdCBmb3IgdGhlIGJ1bmRsZWQgZmlsZTogeWFtbCB8IGpzb24gfCBib3RoLiBEZWZhdWx0ID0ganNvbgogICAgICBEZWZhdWx0OiBqc29uCiAgICAtLWhlbHAsIC1oICAgICAgCiAgICAtZGVidWcKICAgICAgRGVidWcgbW9kZQogICAgICBEZWZhdWx0OiBmYWxzZQpgYGAKIyMjIFNhbXBsZSBmaWxlcwpvcGVuYXBpLnlhbWwKYGBgCm9wZW5hcGk6IDMuMC4wCgpwYXRoczogCiAgL3Rlc3Q6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiB0ZXN0CiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAkcmVmOiAnY29tbW9uLnlhbWwjL015T2JqJwpgYGAKCmNvbW1vbi55YW1sCmBgYApNeU9iajoKICB0eXBlOiBvYmplY3QKICBwcm9wZXJ0aWVzOgogICAgdGVzdENvZGU6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICByZWFkT25seTogdHJ1ZQogICAgbmFtZToKICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlYWRPbmx5OiB0cnVlCmBgYAojIyMgVXNlIGl0IGluIGFuIElERQoKQW5vdGhlciB3YXkgdG8gcnVuIHRoZSBidW5kbGVyIGlzIGZyb20gYW4gSURFLiBKdXN0IHNldCB0aGUgZm9sZGVyIG9mIHRoZSBvcGVuYXBpLnlhbWwgZmlsZSBhcyBhIHByb2dyYW0gYXJndW1lbnQgYW5kIHlvdSBjYW4gZWFzaWx5IGRlYnVnIGludG8gaXQuCgojIyMgVXNlIERvY2tlcgoKVGhlcmUgaXMgYSBEb2NrZXIgW2ltYWdlXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbmV0d29ya250L29wZW5hcGktYnVuZGxlci8pIHRoYXQgaXMKcHVibGlzaGVkIHRvIERvY2tlciBIdWIuCgpIZXJlIGlzIHRoZSBjb21tYW5kIGxpbmUgdG8gY2FsbCBpdC4KCmBgYApUQkQKYGBgCgoKV2l0aCBhYm92ZSBjb21tYW5kIGxpbmUsIHlvdSBjYW4gZWFzaWx5IGJ1aWxkIGEgc2NyaXB0IHRvIGNhbGwgaXQgYXMgcGFydCBvZiB5b3VyIERldk9wcwpmbG93Lgo= readmeEtag: '"61f411de5c7e566d9c7922477d174ecb6a947bea"' readmeLastModified: Thu, 13 Jun 2024 13:02:01 GMT repositoryId: 153839607 description: >- A utility that merges multiple OpenAPI specification files into a single file with all external references resolved to local reference. created: '2018-10-19T20:42:58Z' updated: '2024-09-04T18:31:19Z' language: Java archived: false stars: 10 watchers: 20 forks: 6 owner: networknt logo: https://avatars.githubusercontent.com/u/8740739?v=4 license: Apache-2.0 repoEtag: '"69f6d476308dca5314f06f78b6e885c1c91bba4d887138c27c8334bb26115b85"' repoLastModified: Wed, 04 Sep 2024 18:31:19 GMT foundInMaster: true category: Parsers id: 9e7d370d54bfa85bddd37c511827340b - source: openapi3 tags repository: https://github.com/systangotechnologies/swagger-generator-koa v3: true repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyLWdlbmVyYXRvci1rb2EKCk5QTSBtb2R1bGUgdG8gZ2VuZXJhdGUgc3dhZ2dlciBkb2N1bWVudGF0aW9uIGZvciBLT0EgQVBJcyB3aXRoIG1pbmltdW0gYWRkaXRpb25hbCBlZmZvcnQuCgo+WyFbRG93bmxvYWRzXShodHRwczovL2JhZGdlbi5uZXQvbnBtL2R0L3N3YWdnZXItZ2VuZXJhdG9yLWtvYSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXItZ2VuZXJhdG9yLWtvYSkgWyFbbnBtIGRlcGVuZGVudHNdKGh0dHBzOi8vYmFkZ2VuLm5ldC9ucG0vZGVwZW5kZW50cy9zd2FnZ2VyLWdlbmVyYXRvci1rb2EpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FnZ2VyLWdlbmVyYXRvci1rb2E/YWN0aXZlVGFiPWRlcGVuZGVudHMpCgojIyBEZXNjcmlwdGlvbgpUaGlzIE5QTSBtb2R1bGUgbGV0J3MgeW91IHZhbGlkYXRlIGFuZCBnZW5lcmF0ZSBzd2FnZ2VyIChPcGVuQVBJKSBkb2N1bWVudGF0aW9uIGZvciB5b3VyIEtPQSBBUElzIHdpdGhvdXQgcHV0dGluZyBpbiBtdWNoIGV4dHJhIGVmZm9ydHMuIFlvdSBqdXN0IG5lZWQgdG8gZm9sbG93IHRoZSBjb252ZW50aW9uIGZvciB5b3VyIHJlcXVlc3QgYW5kIHJlc3BvbnNlIG9iamVjdHMsIGFuZCB0aGUgbW9kdWxlIHdpbGwgdGFrZSBjYXJlIG9mIHRoZSByZXN0LiBUaGlzIG1vZHVsZSB3aWxsIGNvdmVyIHlvdXIgY29udHJvbGxlcnMsIEFQSSBzcGVjcyBhbG9uZyB3aXRoIHJlcXVlc3QgYW5kIHJlc3BvbnNlIG9iamVjdCBzdHJ1Y3R1cmVzLgoKCiMjIFVzYWdlICMjCgpJbnN0YWxsIHVzaW5nIG5wbToKCmBgYGJhc2gKJCBucG0gaW5zdGFsbCAtLXNhdmUgc3dhZ2dlci1nZW5lcmF0b3Ita29hCmBgYAoKIyMjIEtvYSBzZXR1cCBgaW5kZXguanNgICMjIwoKYGBgamF2YXNjcmlwdApjb25zdCBLb2EgPSByZXF1aXJlKCdrb2EnKTsKY29uc3QgYXBwID0gbmV3IEtvYSgpOwpjb25zdCBzd2FnZ2VyID0gcmVxdWlyZSgic3dhZ2dlci1nZW5lcmF0b3Ita29hIik7CgovLyBEZWZpbmUgeW91ciByb3V0ZXIgaGVyZQoKY29uc3Qgb3B0aW9ucyA9IHsKCXRpdGxlOiAic3dhZ2dlci1nZW5lcmF0b3Ita29hIiwKCXZlcnNpb246ICIxLjAuMCIsCglob3N0OiAibG9jYWxob3N0OjUwMDAiLAoJYmFzZVBhdGg6ICIvIiwKCXNjaGVtZXM6IFsiaHR0cCIsICJodHRwcyJdLAoJc2VjdXJpdHlEZWZpbml0aW9uczogewoJCUJlYXJlcjogewoJCQlkZXNjcmlwdGlvbjogJ0V4YW1wbGUgdmFsdWU6LSBCZWFyZXIgZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SnBaQ0k2SWpVNU1tUXdNR0poTlRKallqSmpNJywKCQkJdHlwZTogJ2FwaUtleScsCgkJCW5hbWU6ICdBdXRob3JpemF0aW9uJywKCQkJaW46ICdoZWFkZXInCgkJfQoJfSwKCXNlY3VyaXR5OiBbe0JlYXJlcjogW119XSwKCWRlZmF1bHRTZWN1cml0eTogJ0JlYXJlcicKfTsKCgovKioKICogc2VydmVTd2FnZ2VyIG11c3QgYmUgY2FsbGVkIGFmdGVyIGRlZmluaW5nIHlvdXIgcm91dGVyLgogKiBAcGFyYW0gYXBwIEtvYSBvYmplY3QKICogQHBhcmFtIGVuZFBvaW50IFN3YWdnZXIgcGF0aCBvbiB3aGljaCBzd2FnZ2VyIFVJIGRpc3BsYXkKICogQHBhcmFtIG9wdGlvbnMgU3dhZ2dldCBPcHRpb25zLgogKiBAcGFyYW0gcGF0aC5yb3V0ZVBhdGggcGF0aCB0byBmb2xkZXIgaW4gd2hpY2ggcm91dGVzIGZpbGVzIGRlZmluZWQuCiAqIEBwYXJhbSBwYXRoLnJlcXVlc3RNb2RlbFBhdGggT3B0aW9uYWwgcGFyYW1ldGVyIHdoaWNoIGlzIHBhdGggdG8gZm9sZGVyIGluIHdoaWNoIHJlcXVlc3RNb2RlbCBkZWZpbmVkLCBpZiBub3QgZ2l2ZW4gcmVxdWVzdCBwYXJhbXMgd2lsbCBub3QgZGlzcGxheSBvbiBzd2FnZ2VyIGRvY3VtZW50YXRpb24uCiAqIEBwYXJhbSBwYXRoLnJlc3BvbnNlTW9kZWxQYXRoIE9wdGlvbmFsIHBhcmFtZXRlciB3aGljaCBpcyBwYXRoIHRvIGZvbGRlciBpbiB3aGljaCByZXNwb25zZU1vZGVsIGRlZmluZWQsIGlmIG5vdCBnaXZlbiByZXNwb25zZSBvYmplY3RzIHdpbGwgbm90IGRpc3BsYXkgb24gc3dhZ2dlciBkb2N1bWVudGF0aW9uLgogKi8Kc3dhZ2dlci5zZXJ2ZVN3YWdnZXIoYXBwLCAiL3N3YWdnZXIiLCBvcHRpb25zLCB7cm91dGVQYXRoIDogJy4vc3JjL3JvdXRlcy8nLCByZXF1ZXN0TW9kZWxQYXRoOiAnLi9zcmMvcmVxdWVzdE1vZGVsJywgcmVzcG9uc2VNb2RlbFBhdGg6ICcuL3NyYy9yZXNwb25zZU1vZGVsJ30pOwoKYGBgCgojIyMgS29hIHJvdXRlciBgdXNlci5qc2AgIyMjCgpgYGBqYXZhc2NyaXB0Cgpjb25zdCBSb3V0ZXIgPSByZXF1aXJlKCdrb2Etcm91dGVyJyk7CmNvbnN0IHJvdXRlciA9IG5ldyBSb3V0ZXIoKTsKY29uc3QgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVyL3VzZXInKTsKY29uc3Qge3ZhbGlkYXRpb259ID0gcmVxdWlyZSgnc3dhZ2dlci1nZW5lcmF0b3Ita29hJyk7CnZhciByZXF1ZXN0TW9kZWwgPSByZXF1aXJlKCcuLi9yZXF1ZXN0TW9kZWwvdXNlcnMnKTsKY29uc3QgQkFTRV9VUkwgPSBgL3VzZXJzYDsKCnJvdXRlci5wb3N0KGAke0JBU0VfVVJMfS9gLCB2YWxpZGF0aW9uKHJlcXVlc3RNb2RlbFswXSksIHVzZXJDb250cm9sbGVyLmNyZWF0ZVVzZXIpOwoKcm91dGVyLmdldChgJHtCQVNFX1VSTH0vYCwgdXNlckNvbnRyb2xsZXIuZ2V0VXNlcnMpOwoKcm91dGVyLnB1dChgJHtCQVNFX1VSTH0vOnVzZXJJZGAsIHVzZXJDb250cm9sbGVyLnVwZGF0ZVVzZXIpOwoKcm91dGVyLmdldChgJHtCQVNFX1VSTH0vOnVzZXJJZGAsIHVzZXJDb250cm9sbGVyLmdldFVzZXJEZXRhaWxzKTsKCnJvdXRlci5kZWxldGUoYCR7QkFTRV9VUkx9Lzp1c2VySWRgLCB1c2VyQ29udHJvbGxlci5kZWxldGVVc2VyKTsKCm1vZHVsZS5leHBvcnRzID0gcm91dGVyOwoKYGBgCgojIyBSZXF1ZXN0IE1vZGVsIGAvcmVxdWVzdE1vZGVsL3VzZXIuanNgCiAgLSBGaWxlIG5hbWUgZm9yIHJlcXVlc3QgbW9kZWwgc2hvdWxkIGJlIHNhbWUgYXMgcm91dGVyIGZpbGUuCiAgLSBEZWZpbmUgcmVxdWVzdCBtb2RlbCB3aXRoIHRoZWlyIG9yZGVyIG9mIGFwaXMgaW4gcm91dGVyIGpzIGZpbGUuIEZvciBleGFtcGxlIGZpcnN0IGFwaSBpbiB1c2VyIHJvdXRlciBpcyBjcmVhdGUgdXNlciBzbyB5b3UgbmVlZCB0byBkZWZpbmUgY3JlYXRlVXNlciBzY2hlbWEgd2l0aCBrZXkgMC4KICAtIEFkZCBib29sZWFuIGZsYWcgImV4Y2x1ZGVGcm9tU3dhZ2dlciIgaW5zaWRlIHJlcXVlc3Rtb2RlbCBpZiB5b3Ugd2FudCB0byBleGNsdWRlIGFueSBwYXJ0aWN1bGFyIGFwaSBmcm9tIHN3YWdnZXIgZG9jdW1lbnRhdGlvbi4KICAtIFRoaXMgUmVxdWVzdCBtb2RlbCBmb2xsb3dzIEpvaSBtb2R1bGUgY29udmVudGlvbnMsIHNvIGl0IGNhbiBhbHNvIGJlIHVzZWQgZm9yIHJlcXVlc3QgcGFyYW1ldGVycyB2YWxpZGF0aW9uLgoKYGBgamF2YXNjcmlwdApjb25zdCBKb2kgPSByZXF1aXJlKCJAaGFwaS9qb2kiKTsKLyoqCiAqIEZpbGUgbmFtZSBmb3IgcmVxdWVzdCBhbmQgcmVzcG9uc2UgbW9kZWwgc2hvdWxkIGJlIHNhbWUgYXMgcm91dGVyIGZpbGUuCiAqIERlZmluZSByZXF1ZXN0IG1vZGVsIHdpdGggdGhlaXIgb3JkZXIgaW4gcm91dGVyIGpzIGZpbGUuCiAqIEZvciBleGFtcGxlIGZpcnN0IGFwaSBpbiB1c2VyIHJvdXRlciBpcyBjcmVhdGUgdXNlciBzbyB3ZSBkZWZpbmUgY3JlYXRlVXNlciBzY2hlbWEgd2l0aCBrZXkgMC4KICovCm1vZHVsZS5leHBvcnRzID0gewogICAgLy8gSGVyZSAwIGlzIHRoZSBvcmRlciBvZiBhcGkgaW4gcm91dGUgZmlsZS4KICAgIDA6IHsKICAgICAgICBib2R5OiB7CiAgICAgICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksCiAgICAgICAgICAgIGxhc3ROYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSwKICAgICAgICAgICAgYWRkcmVzczogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksCiAgICAgICAgICAgIGNvbnRhY3Q6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpCiAgICAgICAgfSwKICAgICAgICBtb2RlbDogImNyZWF0ZVVzZXIiLCAvLyBOYW1lIG9mIHRoZSBtb2RlbAogICAgICAgIGdyb3VwOiAiVXNlciIsIC8vIFN3YWdnZXIgdGFnIGZvciBhcGlzLgogICAgICAgIGRlc2NyaXB0aW9uOiAiQ3JlYXRlIHVzZXIgYW5kIHNhdmUgZGV0YWlscyBpbiBkYXRhYmFzZSIKICAgIH0sCiAgICAxOiB7CiAgICAgICAgcXVlcnk6IHt9LAogICAgICAgIHBhdGg6IHt9LCAvLyBEZWZpbmUgZm9yIGFwaSBwYXRoIHBhcmFtIGhlcmUuCiAgICAgICAgaGVhZGVyOiB7fSwgLy8gRGVmaW5lIGlmIGhlYWRlciByZXF1aXJlZC4KICAgICAgICBncm91cDogIlVzZXIiLAogICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IEFsbCBVc2VyIgogICAgfSwKICAgIDI6IHsKICAgICAgICBib2R5OiB7CiAgICAgICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksCiAgICAgICAgICAgIGxhc3ROYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSwKICAgICAgICAgICAgYWRkcmVzczogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksCiAgICAgICAgICAgIGNvbnRhY3Q6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpCiAgICAgICAgfSwKICAgICAgICBtb2RlbDogInVwZGF0ZVVzZXIiLAogICAgICAgIGdyb3VwOiAiVXNlciIsCiAgICAgICAgZGVzY3JpcHRpb246ICJVcGRhdGUgVXNlciIKICAgIH0sCiAgICAzOiB7CiAgICAgICAgcXVlcnk6IHt9LAogICAgICAgIHBhdGg6IHsKICAgICAgICAgICAgdXNlcklkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKQogICAgICAgIH0sIC8vIERlZmluZSBmb3IgYXBpIHBhdGggcGFyYW0gaGVyZS4KICAgICAgICBoZWFkZXI6IHt9LCAvLyBEZWZpbmUgaWYgaGVhZGVyIHJlcXVpcmVkLgogICAgICAgIG1vZGVsOiAnZ2V0VXNlckRldGFpbHMnLAogICAgICAgIGdyb3VwOiAiVXNlciIsCiAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdXNlciBkZXRhaWxzIgogICAgfSwKICAgIDQ6IHsKICAgICAgICBleGNsdWRlRnJvbVN3YWdnZXI6IGZhbHNlIC8vIE1ha2UgaXQgdHJ1ZSBpZiBuZWVkIHRvIGV4Y2x1ZGUgYXBpcyBmcm9tIHN3YWdnZXIuCiAgICB9Cn07CmBgYAoKIyMgUmVzcG9uc2UgTW9kZWwgYC9yZXNwb25zZU1vZGVsL3VzZXIuanNgCgogLSBGaWxlIG5hbWUgZm9yIHJlc3BvbnNlIG1vZGVsIHNob3VsZCBiZSBzYW1lIGFzIHJvdXRlciBmaWxlLgogLSBSZXNwb25zZSBuYW1lIHNob3VsZCBiZSBzYW1lIGFzIG1vZGVsIG5hbWUgZnJvbSByZXF1ZXN0bW9kZWwuIEZvciBleGFtcGxlIG1vZGVsIG5hbWUgb2YgY3JlYXRlIHVzZXIgYXBpIGlzICJjcmVhdGVVc2VyIiBzbyBrZXkgZm9yIHJlc3BvbnNlIG9iamVjdCB3aWxsIGJlICJjcmVhdGVVc2VyIi4KIC0gSW5zaWRlIHJlc3BvbnNlIG1vZGVsIGRlZmluZSByZXNwb25zZXMgd2l0aCByZXNwZWN0IHRvIHRoZWlyIHN0YXR1cyBjb2RlIHJldHVybmVkIGZyb20gYXBpcy4KCmBgYGphdmFzY3JpcHQKCi8vIFRoZSBuYW1lIG9mIGVhY2ggcmVzcG9uc2UgcGF5bG9hZCBzaG91bGQgYmUgbW9kZWwgbmFtZSBkZWZpbmVkIGluIFJlcXVlc3QgbW9kZWwgc2NoZW1hLgoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgICBjcmVhdGVVc2VyOiB7IC8vIFRoaXMgbmFtZSBzaG91bGQgYmUgbW9kZWwgbmFtZSBkZWZpbmVkIGluIHJlcXVlc3QgbW9kZWwuCiAgICAgICAgMjAxOiB7CiAgICAgICAgICAgIG1lc3NhZ2U6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnCiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIDUwMDogewogICAgICAgICAgICBpbnRlcm5hbDogewogICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0sCiAgICBnZXRVc2VyczogewogICAgICAgIDIwMDogW3sKICAgICAgICAgICAgaWQ6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZpcnN0TmFtZTogewogICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbGFzdE5hbWU6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGFkZHJlc3M6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNvbnRhY3Q6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNyZWF0ZWRBdDogewogICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICAgICAgICBmb3JtYXQ6ICdkYXRlLXRpbWUnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHVwZGF0ZWRBdDogewogICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICAgICAgICBmb3JtYXQ6ICdkYXRlLXRpbWUnCiAgICAgICAgICAgIH0KICAgICAgICB9XSwKICAgICAgICA1MDA6IHsKICAgICAgICAgICAgaW50ZXJuYWw6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9LAogICAgdXBkYXRlVXNlcjogewogICAgICAgIDIwMTogewogICAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICA1MDA6IHsKICAgICAgICAgICAgaW50ZXJuYWw6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9LAogICAgZ2V0VXNlckRldGFpbHM6IHsKICAgICAgICAyMDA6IHsKICAgICAgICAgICAgaWQ6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZpcnN0TmFtZTogewogICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbGFzdE5hbWU6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGFkZHJlc3M6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNvbnRhY3Q6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNyZWF0ZWRBdDogewogICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICAgICAgICBmb3JtYXQ6ICdkYXRlLXRpbWUnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHVwZGF0ZWRBdDogewogICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICAgICAgICBmb3JtYXQ6ICdkYXRlLXRpbWUnCiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIDUwMDogewogICAgICAgICAgICBpbnRlcm5hbDogewogICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0sCn07CmBgYAoKT3BlbiBgaHR0cDovL2A8YXBwX2hvc3Q+YDpgPGFwcF9wb3J0PmAvc3dhZ2dlcmAgaW4geW91ciBicm93c2VyIHRvIHZpZXcgdGhlIGRvY3VtZW50YXRpb24uCgojIFZlcnNpb24gY2hhbmdlcwoKIyMgdjIuMC4wCgojIyMjIEFkZGVkIFJlcXVlc3QgUGFyYW1ldGVyIFZhbGlkYXRpb24gRnVuY3Rpb24KCi0gVXNlIGB2YWxpZGF0aW9uYCBmdW5jdGlvbiBleHBvcnRlZCBmcm9tIHRoaXMgbW9kdWxlIHRvIHZhbGlkYXRlIHJlcXVlc3QgcGFyYW1zLgoKYGBgamF2YXNjcmlwdAondXNlIHN0cmljdCc7CmNvbnN0IFJvdXRlciA9IHJlcXVpcmUoJ2tvYS1yb3V0ZXInKTsKY29uc3Qgcm91dGVyID0gbmV3IFJvdXRlcigpOwpjb25zdCB1c2VyQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXIvdXNlcicpOwpjb25zdCB7dmFsaWRhdGlvbn0gPSByZXF1aXJlKCdzd2FnZ2VyLWdlbmVyYXRvci1rb2EnKTsKdmFyIHJlcXVlc3RNb2RlbCA9IHJlcXVpcmUoJy4uL3JlcXVlc3RNb2RlbC91c2VycycpOwpjb25zdCBCQVNFX1VSTCA9IGAvdXNlcnNgOwoKcm91dGVyLnBvc3QoYCR7QkFTRV9VUkx9L2AsIHZhbGlkYXRpb24ocmVxdWVzdE1vZGVsWzBdKSwgdXNlckNvbnRyb2xsZXIuY3JlYXRlVXNlcik7Cgptb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjsKCmBgYAoKIyMgUmVxdWlyZW1lbnRzCgotIE5vZGUgdjEwIG9yIGFib3ZlCi0gS09BIDIgb3IgYWJvdmUKCiMjIENvbnRyaWJ1dG9ycwoKW1Zpa2FzIFBhdGlkYXJdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi92aWthcy1wYXRpZGFyLTAxMDYvKQo= readmeEtag: '"55dcea9b3ce1e6c0bb35087ded7c7786c9e2ea3a"' readmeLastModified: Fri, 06 Mar 2020 13:53:57 GMT repositoryId: 201899371 description: >- Allows you to programatically annotate your koa models with swagger info and then generate and validate your json spec file created: '2019-08-12T09:28:50Z' updated: '2024-01-30T16:14:31Z' language: TypeScript archived: false stars: 10 watchers: 5 forks: 4 owner: SystangoTechnologies logo: https://avatars.githubusercontent.com/u/24825108?v=4 license: MIT repoEtag: '"d4eb9dca5f6fd10e5627e51a78b8ac0815c618fd713277fb7b125400144d64cf"' repoLastModified: Tue, 30 Jan 2024 16:14:31 GMT foundInMaster: true category: - Data Validators - Parsers id: b33cb0aa622983134244f762ccab16c6 - source: openapi3 tags repository: https://github.com/privacyengineering/tira v3: true repositoryMetadata: base64Readme: >- IyBUSVJBOiBBbiBPcGVuQVBJIEV4dGVuc2lvbiBhbmQgVG9vbGJveCBmb3IgR0RQUiBUcmFuc3BhcmVuY3kgaW4gUkVTVGZ1bCBBcmNoaXRlY3R1cmVzCgoKPHAgZmxvYXQ9ImxlZnQiIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSIvZG9jcy9pbWcvYXBwbGljYXRpb25fZmluYWwucG5nIiB3aWR0aD0iNjYlIiAvPiAKPC9wPgoKClRyYW5zcGFyZW5jeSDigJMgdGhlIHByb3Zpc2lvbiBvZiBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHBlcnNvbmFsIGRhdGEgaXMgY29sbGVjdGVkIGZvciB3aGljaCBwdXJwb3NlcywgaG93IGxvbmcgaXQgaXMgc3RvcmVkLCBvciB0byB3aGljaCBwYXJ0aWVzIGl0IGlzIHRyYW5zZmVycmVkIOKAkyBpcyBvbmUgb2YgdGhlIGNvcmUgcHJpdmFjeSBwcmluY2lwbGVzIHVuZGVybHlpbmcgcmVndWxhdGlvbnMgc3VjaCBhcyB0aGUgR0RQUi4gVGVjaG5pY2FsIGFwcHJvYWNoZXMgZm9yIGltcGxlbWVudGluZyB0cmFuc3BhcmVuY3kgaW4gcHJhY3RpY2UgYXJlLCBob3dldmVyLCBvbmx5IHJhcmVseSBjb25zaWRlcmVkLiBJbiB0aGlzIHBhcGVyLCB3ZSBwcmVzZW50IGEgbm92ZWwgYXBwcm9hY2ggZm9yIGRvaW5nIHNvIGluIGN1cnJlbnQsIFJFU1RmdWwgYXBwbGljYXRpb24gYXJjaGl0ZWN0dXJlcyBhbmQgaW4gbGluZSB3aXRoIHByZXZhaWxpbmcgYWdpbGUgYW5kIERldk9wcy1kcml2ZW4gcHJhY3RpY2VzLiBGb3IgdGhpcyBwdXJwb3NlLCB3ZSBpbnRyb2R1Y2UgMSkgYSB0cmFuc3BhcmVuY3ktZm9jdXNlZCBleHRlbnNpb24gb2YgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyB0aGF0IGFsbG93cyBpbmRpdmlkdWFsIHNlcnZpY2UgZGVzY3JpcHRpb25zIHRvIGJlIGVucmljaGVkIHdpdGggdHJhbnNwYXJlbmN5LXJlbGF0ZWQgYW5ub3RhdGlvbnMgaW4gYSBib3R0b20tdXAgZmFzaGlvbiBhbmQgMikgYSBzZXQgb2YgaGlnaGVyLW9yZGVyIHRvb2xzIGZvciBhZ2dyZWdhdGluZyByZXNwZWN0aXZlIGluZm9ybWF0aW9uIGFjcm9zcyBtdWx0aXBsZSwgaW50ZXJkZXBlbmRlbnQgc2VydmljZXMgYW5kIGZvciBjb2hlcmVudGx5IGludGVncmF0aW5nIG91ciBhcHByb2FjaCBpbnRvIGF1dG9tYXRlZCBDSS9DRC1waXBlbGluZXMuIFRvZ2V0aGVyLCB0aGVzZSBidWlsZGluZyBibG9ja3MgcGF2ZSB0aGUgd2F5IGZvciBwcm92aWRpbmcgdHJhbnNwYXJlbmN5IGluZm9ybWF0aW9uIHRoYXQgaXMgbW9yZSBzcGVjaWZpYyBhbmQgYXQgdGhlIHNhbWUgdGltZSBiZXR0ZXIgcmVmbGVjdHMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBnaXZlbnMgd2l0aGluIGNvbXBsZXggc2VydmljZSBhcmNoaXRlY3R1cmVzIHRoYW4gY3VycmVudCwgb3Zlcmx5IGJyb2FkIHByaXZhY3kgc3RhdGVtZW50cy4KCgojIyDwn5OaIFJlYWQgb3VyIHBhcGVyIHZpYSBbR2l0aHViXShodHRwczovL2dpdGh1Yi5jb20vUHJpdmFjeUVuZ2luZWVyaW5nL3RpcmEvcmF3L21haW4vVHJhbnNwYXJlbmN5X2luX1JFU1RmdWxfQXJjaGl0ZWN0dXJlc19JV1BFMjFfcHJlcHJpbnQucGRmKSwgW2FyWGl2XShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjEwNi4wNjAwMSkgb3IgW0lFRUVYcGxvcmVdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85NTgzNjg1KS4KCgpgYGAKQGlucHJvY2VlZGluZ3N7Z3J1ZW5ld2FsZDIwMjF0aXJhLAogIHRpdGxlID0ge1RJUkE6IEFuIE9wZW5BUEkgRXh0ZW5zaW9uIGFuZCBUb29sYm94IGZvciBHRFBSIFRyYW5zcGFyZW5jeSBpbiBSRVNUZnVsIEFyY2hpdGVjdHVyZXN9LAogIGF1dGhvciA9IHtFbGlhcyBHcsO8bmV3YWxkIGFuZCBQYXVsIFdpbGxlIGFuZCBGcmFuayBQYWxsYXMgYW5kIE1hcmlhIEMuIEJvcmdlcyBhbmQgTWF4LVIuIFVsYnJpY2h0fSwKICBib29rdGl0bGU9ezIwMjEgSUVFRSBFdXJvcGVhbiBTeW1wb3NpdW0gb24gU2VjdXJpdHkgYW5kIFByaXZhY3kgV29ya3Nob3BzIChFdXJvU1wmUFcpfSwKICBwdWJsaXNoZXIgPSB7SUVFRSBDb21wdXRlciBTb2NpZXR5fSwKICBkb2kgPSB7MTAuMTEwOS9FdXJvU1BXNTQ1NzYuMjAyMS4wMDAzOX0sCiAgeWVhciA9IHsyMDIxfQp9CmBgYAoKCgpQbGVhc2UgZ2V0IGluIHRvdWNoIHdpdGggdXMgdmlhIFtodHRwczovL3R1LmJlcmxpbi9pc2UvZWddKGh0dHBzOi8vdHUuYmVybGluL2lzZS9lZykuIAoKIyMgUGVyc29uYWwgZGF0YSBpbmRpY2F0b3JzClRvIGxlYXJuIG1vcmUgYWJvdXQgd2hlcmUgcGVyc29uYWwgZGF0YSBpbmRpY2F0b3JzIGluIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgbWF5IHJlc2lkZSwgc2VlICoqW2hlcmVdKGRvY3MvUERfSU5ESUNBVE9SUy5tZCkqKi4KCiMjIFZvY2FidWxhcnkKVG8gbGVhcm4gbW9yZSBhYm91dCBvdXIgdm9jYWJ1bGFyeSB1c2VkIGZvciB0aGUgcHJvcG9zZWQgT3BlbkFQSSBleHRlbnNpb24sIHNlZSAqKltoZXJlXShkb2NzL1ZPQ0FCVUxBUlkubWQpKiouCgo8cCBmbG9hdD0ibGVmdCIgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9Ii9kb2NzL2ltZy94LXRpcmEtcGQucG5nIiB3aWR0aD0iNDUlIiAvPgogIDxpbWcgc3JjPSIvZG9jcy9pbWcvdGh1Yl9zdGVwY291bnRfc2NoZW1hLnBuZyIgd2lkdGg9IjQ1JSIgLz4KPC9wPgoKCiMjIEluc3RhbGxhdGlvbgoKTWFrZSBzdXJlIFJ1YnkgaXMgaW5zdGFsbGVkLgoKYGBgYmFzaApydWJ5IC0tdmVyc2lvbgpgYGAKClRJUkEgd2FzIGJ1aWx0IHVzaW5nIFJ1YnkgdmVyc2lvbiBgMi42LjNgLCBvdGhlci9uZXdlciB2ZXJzaW9ucyBzaG91bGQgd29yayBmaW5lLCBidXQgd2VyZSBub3QgdGVzdGVkIGFnYWluc3QuClVzZSBbcnZtXShodHRwczovL3J2bS5pby8pIG9yIGByYmVudiBpbnN0YWxsIC0tdmVyYm9zZSAyLjYuM2AuCgoKSW5zdGFsbCBidW5kbGVyCgpgYGBiYXNoCmdlbSBpbnN0YWxsIGJ1bmRsZXIKYGBgCgpDbG9uZSB0aGUgcmVwbwoKYGBgYmFzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL1ByaXZhY3lFbmdpbmVlcmluZy90aXJhLmdpdApjZCB0aXJhLwpgYGAKCkluc3RhbGwgYWxsIGdlbXMgdmlhIGJ1bmRsZXIKCmBgYGJhc2gKYnVuZGxlIGluc3RhbGwKYGBgCgpDb25maWd1cmUgc2VjcmV0cyBhbmQgY3JlZGVudGlscyAKCmBgYGJhc2gKYmluL3JhaWxzIGNyZWRlbnRpYWxzOmVkaXQKYGBgCgpSYWlscyB0cmllcyB0byBvcGVuIHRoZSBjcmVuZGVudGlhbHMgd2l0aCBgJEVESVRPUmAuCllvdSBjYW4gZGVmaW5lIGFuIGVkaXRvciBieSBzZXR0aW5nIHRoZSBgRURJVE9SYCB2YXJpYWJsZSBleHBsaWNpdGVseSwgZS5nLgoKYGBgYmFzaApFRElUT1I9Im5hbm8iIHJhaWxzIGNyZWRlbnRpYWxzOmVkaXQKYGBgCgoKVGhpcyB3aWxsIGNyZWF0ZSBhbiBlbmNyeXB0ZWQgY29uZmlnIGZpbGUgYW5kIGEgbWFzdGVyIGtleSwgZm9yIGRldGFpbHMgdmlzaXQgW3RoaXMgZ3VpZGVdKGh0dHBzOi8vZWRnZWd1aWRlcy5ydWJ5b25yYWlscy5vcmcvc2VjdXJpdHkuaHRtbCNjdXN0b20tY3JlZGVudGlhbHMpLgpUaGUgY29uZmlndXJhdGlvbiBmb3JtYXQgdXNlZCBjYW4gYmUgZm91bmQgaW4gdGhlIHNhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgaW4gYGNvbmZpZy9jcmVkZW50aWFsc19leGFtcGxlLnltbGAuCgpEYXRhYmFzZSBuYW1lIGFuZCBjcmVkZW50aWFscyBuZWVkIHRvIGJlIGNvbmZpZ3VyZWQuCklmIGEgZGlmZmVyZW50IGRhdGFiYXNlIGFkYXB0ZXIgdGhhbiBwb3N0Z3JlcyBpcyB1c2VkLCB0aGlzIG11c3QgYmUgY29uZmlndXJlZCBpbjoKCmBgYApjb25maWcvZGF0YWJhc2UueW1sCmBgYAoKClNldCB1cCBhIHBvc3RncmVzIGRhdGFiYXNlIChpZiB5b3UgY2hvc2UgdG8gbm90IHVzZSBwb3N0Z3Jlcywgc2V0IHVwIGEgZGF0YWJhc2UgYWNjb3JkaW5nIHRvIHlvdXIgY29uZmlndXJhdGlvbikuCgpZb3UgY2FuIHVzZSB0aGUgb2ZmaWNhbCBkb2NrZXIgaW1hZ2UKCmBgYGJhc2gKZG9ja2VyIHJ1biAtLW5hbWUgc29tZS1wb3N0Z3JlcyAtZSBQT1NUR1JFU19QQVNTV09SRD1teXNlY3JldHBhc3N3b3JkIC1kIHBvc3RncmVzCmBgYAoKb3Igc2V0IHVwIGEgcG9zdGdyZXMgZGF0YWJhc2UgbG9jYWxseQoKYGBgcHNxbApjcmVhdGUgZGF0YWJhc2UgJGRiX25hbWU7CgpjcmVhdGUgcm9sZSAkdXNlcl9uYW1lIHdpdGggY3JlYXRlZGIgbG9naW4gcGFzc3dvcmQgJ3Bhc3N3b3JkJzsKCmdyYW50IGFsbCBwcml2aWxlZ2VzIG9uIGRhdGFiYXNlICRkYl9uYW1lIHRvICR1c2VyX25hbWU7CgpgYGAKCk5vdyBydW4gdGhlIG1pZ3JhdGlvbnMgdG8gc2V0IHVwIHRoZSBkYXRhYmFzZQoKYGBgYmFzaApiaW4vcmFpbHMgZGI6bWlncmF0ZSBSQUlMU19FTlY9ZGV2ZWxvcG1lbnQKYGBgCgoKVHJhbnNwYXJlbmN5SHViIGlzIG5vdyBzZXQgdXAgYW5kIHlvdSBjYW4gc3RhcnQgdGhlIGFwcGxpY2F0aW9uCgpgYGBiYXNoCnJhaWxzIHMKYGBgCgpUaGUgYXBwIGlzIG5vdyBhY2Nlc3NpYmxlIHZpYSBgaHR0cDovL2xvY2FsaG9zdDozMDAwYAoKCiMjIEV4YW1wbGUgb2YgKngtdGlyYSogaW4gYW4gT3BlbkFQSSBkb2N1bWVudApXZSBkZXNjcmliZSBhIGBUb290aGJydXNoRXZlbnRgIHRoYXQgY2FuIGJlIHNoYXJlZCB3aXRoIG90aGVyIHV0aWxpemVycyB2aWEgdGhlIGV4YW1wbGUgc2VydmljZSBmcm9tIG91ciBwYXBlci4gCgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMCIKeC10aXJhOiAKICB1dGlsaXplcjoKICAgIC0gbmFtZTogIkFXUyIKICAgICAgbm9uX2V1X2NvdW50cnk6IHRydWUKICAgICAgY291bnRyeTogIlVLIgppbmZvOgogIHZlcnNpb246ICIxLjAuMiIKICBkZXNjcmlwdGlvbjogIlRoaXMgc2VydmljZSBjYW4gc2hhcmUgaGVhbHRoIGRhdGEgd2l0aCBvdGhlciBoZWFsdGggZGF0YSBzZXJ2aWNlcyBhbmQgaW5zdXJhbmNlcyIKICB0aXRsZTogIkhlYWx0aCBEYXRhIFNoYXJpbmcgU2VydmljZSIKc2VydmVyczogCiAgLSB1cmw6ICJodHRwczovL2hlYWx0aC5kb21haW4udGxkIgpwYXRoczoKICAiL3t1c2VyX2lkfS90b290aGJydXNoL3NoYXJlIjoKICAgIHBhcmFtZXRlcnM6CiAgICAgIC0gbmFtZTogdXNlcl9pZAogICAgICAgIGluOiAicGF0aCIKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGRlc2NyaXB0aW9uOiAiVXNlciBJRCBvZiBhIEhlYWx0aCBEYXRhIEh1YiBVc2VyIgogICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZSA6IGludGVnZXIKICAgIGdldDogCiAgICAgIGRlc2NyaXB0aW9uOiBHZXQgYW4gYXJyYXkgb2YgVG9vdGhicnVzaCBFdmVudHMgZm9yIGEgZ2l2ZW4gdGltZSBpbnRlcnZhbC4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIG5hbWU6IHN0YXJ0ZGF5CiAgICAgICAgICBpbjogInF1ZXJ5IgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlIDogc3RyaW5nCiAgICAgICAgICAgIGZvcm1hdDogZGF0ZS10aW1lCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICJTdGFydCBkYXRlIG9mIHJlcXVlc3RlZCBpbnRlcnZhbC4iCiAgICAgICAgLSBuYW1lOiBlbmRkYXkKICAgICAgICAgIGluOiAicXVlcnkiCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGUgOiBzdHJpbmcKICAgICAgICAgICAgZm9ybWF0OiBkYXRlLXRpbWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5kIGRhdGUgb2YgcmVxdWVzdGVkIGludGVydmFsLiIKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUmVxdWVzdCBzdWNjZXNzZnVsLiIKICAgICAgICAgIGNvbnRlbnQ6IAogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Ub290aGJydXNoRXZlbnQnCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFRvb3RoYnJ1c2hFdmVudDoKICAgICAgdHlwZTogIm9iamVjdCIKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSB1c2VyX2lkCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgc2Vjb25kczoKICAgICAgICAgIHR5cGU6ICJpbnRlZ2VyIgogICAgICAgIGRhdGV0aW1lOgogICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICB1c2VyX2lkOgogICAgICAgICAgdHlwZTogImludGVnZXIiCiAgICAgIHgtdGlyYTogCiAgICAgICAgcmV0ZW50aW9uLXRpbWU6CiAgICAgICAgICB2b2xhdGlsZTogdHJ1ZQogICAgICAgIHNwZWNpYWxfY2F0ZWdvcnk6CiAgICAgICAgICBjYXRlZ29yeTogIkhlYWx0aCBEYXRhIgogICAgICAgIHB1cnBvc2VzOgogICAgICAgICAgeWFwcGw6CiAgICAgICAgICAgICd7CiAgICAgICAgICAgICAgICJpZCI6MTIzLAogICAgICAgICAgICAgICAicHJlZmVyZW5jZSI6WwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJydWxlIjp7CiAgICAgICAgICAgICAgICAgICAgICAgICJwdXJwb3NlIjp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJwZXJtaXR0ZWQiOiBbICJGaXRuZXNzRGF0YSBTaGFyaW5nIiwgIkhlYWx0aCBJbnN1cmFuY2UgQm9udXMgUHJvZ3JhbSIgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2x1ZGVkIjogWyAuLi4gXQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidXRpbGl6ZXIiOnsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInBlcm1pdHRlZCI6IFsgLi4uIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGNsdWRlZCI6IFsgLi4uIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zZm9ybWF0aW9uIjogWyAuLi4gXSwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbGlkX2Zyb20iOiIyMDIxLTA2LTA5VDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhwX2RhdGUiOiIwMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0nCiAgICAgICAgcHJvZmlsaW5nOgogICAgICAgICAgcmVhc29uOiAiSGVhbHRoIHByb2ZpbGUgYmFzZWQgb24gc2VyaWVzIG9mIGhlYWx0aCByZWxhdGVkIGJlaGF2aW91ci4iCiAgICAgICAgdXRpbGl6ZXI6CiAgICAgICAgICAtIG5hbWU6ICJNeUZpdG5lc3NQYWwiCiAgICAgICAgICAgIG5vbl9ldV9jb3VudHJ5OiBmYWxzZQogICAgICAgICAgLSBuYW1lOiAiU3RyYXZhIgogICAgICAgICAgICBub25fZXVfY291bnRyeTogdHJ1ZQogICAgICAgICAgICBjb3VudHJ5OiAiVVNBIgogICAgICAgIHV0aWxpemVyX2NhdGVnb3J5OgogICAgICAgICAgLSBuYW1lOiAiSGVhbHRoIEluc3VyYW5jZSBDb21wYW55IgogICAgICAgICAgICBjb3VudHJ5OiAiR2VybWFueSIKICAgICAgICAgICAgbm9uX2V1X2NvdW50cnk6IGZhbHNlCiAgICAgICAgICAgIHR5cGU6ICJJbnN1cmFuY2UgQ29tcGFueSIKICAgICAgICAgICAgc2VjdG9yOiAiSW5zdXJhbmNlIgogICAgICAgICAgICBzdWJfc2VjdG9yOiAKICAgICAgICAgICAgICAtICJIZWFsdGggSW5zdXJhbmNlIgogICAgICAgICAgICAgIC0gIkhlYWx0aCBUYXgiCmBgYAo= readmeEtag: '"125ae8b28d26a405ac0308cd0506292fc2c53603"' readmeLastModified: Mon, 18 Jul 2022 20:28:40 GMT repositoryId: 364238719 description: >- TIRA: An OpenAPI Extension and Toolbox for GDPR Transparency in RESTful Architectures created: '2021-05-04T11:50:35Z' updated: '2023-11-28T11:28:47Z' language: Ruby archived: false stars: 10 watchers: 4 forks: 2 owner: PrivacyEngineering logo: https://avatars.githubusercontent.com/u/38961961?v=4 license: MIT repoEtag: '"5aeb1e0ab54514f4b9382600c0f9a54b9bc1ab7c741490252d34c74c494cf4b3"' repoLastModified: Tue, 28 Nov 2023 11:28:47 GMT foundInMaster: true category: - Server - Server Implementations id: 9ea99a70abf57321f866ed8393822337 - source: openapi3 tags repository: https://github.com/codewithpraveen/openapi-specification v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWNpZmljYXRpb24gQ291cnNlIFJlcG8KT3BlbkFQSSAoU3dhZ2dlcikgU3BlY2lmaWNhdGlvbiBmb3IgU29mdHdhcmUgRGV2ZWxvcGVycywgYSBndWlkZSB0byBsZWFybmluZyBPcGVuQVBJIFNwZWNpZmljYXRpb24gZm9yIGhpZ2hseSBwcm9kdWN0aXZlIEFQSSBkZXNpZ24sIGRvY3VtZW50YXRpb24sIGRldmVsb3BtZW50LCAmYW1wOyB0ZXN0aW5nLiAKCiMjIFJlcG9zaXRvcnkgZm9yIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gQ291cnNlClRoaXMgcmVwbyBjb3ZlcnMgdGhlIGZvbGxvd2luZzoKKiBDb21wbGV0ZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gZm9yIENvbGxlZ2UgTWFuYWdlbWVudCBTeXN0ZW0gKENNUykgdXNlZCBpbiB0aGUgY291cnNlIHZpZGVvcy4KKiBBc3NpZ25tZW50IChyZWFkeS1tYWRlIHByb2plY3RzIHRvIHN0YXJ0IHdvcmtpbmcpCiogQXNzaWdubWVudCBTb2x1dGlvbnMKCiMjIENoZWNrIG91dCB0aGlzIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBpbiBQb3N0bWFuClshW1J1biBpbiBQb3N0bWFuXShodHRwczovL3J1bi5wc3Rtbi5pby9idXR0b24uc3ZnKV0oaHR0cHM6Ly9hcHAuZ2V0cG9zdG1hbi5jb20vcnVuLWNvbGxlY3Rpb24vMjU2ODQ5NS04N2FkMGQ2My1jMDNhLTQ5YTAtOTNlMy1mOGQ4NzIzMmJhZWI/YWN0aW9uPWNvbGxlY3Rpb24lMkZmb3JrJmNvbGxlY3Rpb24tdXJsPWVudGl0eUlkJTNEMjU2ODQ5NS04N2FkMGQ2My1jMDNhLTQ5YTAtOTNlMy1mOGQ4NzIzMmJhZWIlMjZlbnRpdHlUeXBlJTNEY29sbGVjdGlvbiUyNndvcmtzcGFjZUlkJTNEOTdiMjRiYjItNjI3Yi00ODhjLTk3OTYtOTU0YThiM2FhOTE0KQoKIyMgRW5yb2xsIGluIHRoaXMgY291cnNlIHdpdGggOTAlIGRpc2NvdW50CkNsaWNrIHRoaXMgbGluayB0byBlbnJvbGwgaW4gdGhpcyBjb3Vyc2U6Cmh0dHBzOi8vY29kZXdpdGhwcmF2ZWVuLmNvbS9vcGVuYXBpLWNvdXJzZQo= readmeEtag: '"94928c291cc14801f09f09798a5aaf74cdf689eb"' readmeLastModified: Wed, 02 Nov 2022 22:57:19 GMT repositoryId: 312802042 description: >- OpenAPI (Swagger) Specification for Software Developers, a guide to learning OpenAPI Specification for highly productive API design, documentation, development, & testing. created: '2020-11-14T11:21:51Z' updated: '2024-09-05T21:12:52Z' language: null archived: false stars: 11 watchers: 2 forks: 6 owner: CodeWithPraveen logo: https://avatars.githubusercontent.com/u/62539682?v=4 repoEtag: '"6a2b348ceb267f543da8e07afc9cf3872cca86be899a1c3ec2dc11b397de1652"' repoLastModified: Thu, 05 Sep 2024 21:12:52 GMT foundInMaster: true category: Testing id: 59826edff234d7fdd1f71a260e01f5d2 - source: openapi3 tags repository: https://github.com/elasticemail/elasticemail-python v3: true id: 04c0888f3dcc21c80cfe5e2ae425417f repositoryMetadata: base64Readme: >- IyBFbGFzdGljRW1haWwKVGhpcyBBUEkgaXMgYmFzZWQgb24gdGhlIFJFU1QgQVBJIGFyY2hpdGVjdHVyZSwgYWxsb3dpbmcgdGhlIHVzZXIgdG8gZWFzaWx5IG1hbmFnZSB0aGVpciBkYXRhIHdpdGggdGhpcyByZXNvdXJjZS1iYXNlZCBhcHByb2FjaC4KCkV2ZXJ5IEFQSSBjYWxsIGlzIGVzdGFibGlzaGVkIG9uIHdoaWNoIHNwZWNpZmljIHJlcXVlc3QgdHlwZSAoR0VULCBQT1NULCBQVVQsIERFTEVURSkgd2lsbCBiZSB1c2VkLgoKVGhlIEFQSSBoYXMgYSBsaW1pdCBvZiAyMCBjb25jdXJyZW50IGNvbm5lY3Rpb25zIGFuZCBhIGhhcmQgdGltZW91dCBvZiA2MDAgc2Vjb25kcyBwZXIgcmVxdWVzdC4KClRvIHN0YXJ0IHVzaW5nIHRoaXMgQVBJLCB5b3Ugd2lsbCBuZWVkIHlvdXIgQWNjZXNzIFRva2VuIChhdmFpbGFibGUgW2hlcmVdKGh0dHBzOi8vYXBwLmVsYXN0aWNlbWFpbC5jb20vbWFya2V0aW5nL3NldHRpbmdzL25ldy9tYW5hZ2UtYXBpKSkuIFJlbWVtYmVyIHRvIGtlZXAgaXQgc2FmZS4gUmVxdWlyZWQgYWNjZXNzIGxldmVscyBhcmUgbGlzdGVkIGluIHRoZSBnaXZlbiByZXF1ZXN04oCZcyBkZXNjcmlwdGlvbi4KCkRvd25sb2FkYWJsZSBsaWJyYXJ5IGNsaWVudHMgY2FuIGJlIGZvdW5kIGluIG91ciBHaXRodWIgcmVwb3NpdG9yeSBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0VsYXN0aWNFbWFpbC9lbGFzdGljZW1haWwtcHl0aG9uKQoKVGhpcyBQeXRob24gcGFja2FnZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUgW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpIHByb2plY3Q6CgotIEFQSSB2ZXJzaW9uOiA0LjAuMAotIFBhY2thZ2UgdmVyc2lvbjogNC4xLjIKLSBCdWlsZCBwYWNrYWdlOiBvcmcub3BlbmFwaXRvb2xzLmNvZGVnZW4ubGFuZ3VhZ2VzLlB5dGhvbkNsaWVudENvZGVnZW4KCiMjIFJlcXVpcmVtZW50cy4KClB5dGhvbiAmZ3Q7JiN4M0Q7My43CgojIyBNaWdyYXRpb24gZnJvbSBvdGhlciBnZW5lcmF0b3JzIGxpa2UgcHl0aG9uIGFuZCBweXRob24tbGVnYWN5CgojIyMgQ2hhbmdlcwoxLiBUaGlzIGdlbmVyYXRvciB1c2VzIHNwZWMgY2FzZSBmb3IgYWxsIChvYmplY3QpIHByb3BlcnR5IG5hbWVzIGFuZCBwYXJhbWV0ZXIgbmFtZXMuCiAgICAtIFNvIGlmIHRoZSBzcGVjIGhhcyBhIHByb3BlcnR5IG5hbWUgbGlrZSBjYW1lbENhc2UsIGl0IHdpbGwgdXNlIGNhbWVsQ2FzZSByYXRoZXIgdGhhbiBjYW1lbF9jYXNlCiAgICAtIFNvIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIGhvdyB5b3UgaW5wdXQgYW5kIHJlYWQgcHJvcGVydGllcyB0byB1c2Ugc3BlYyBjYXNlCjIuIEVuZHBvaW50IHBhcmFtZXRlcnMgYXJlIHN0b3JlZCBpbiBkaWN0aW9uYXJpZXMgdG8gcHJldmVudCBjb2xsaXNpb25zIChleHBsYW5hdGlvbiBiZWxvdykKICAgIC0gU28geW91IHdpbGwgbmVlZCB0byB1cGRhdGUgaG93IHlvdSBwYXNzIGRhdGEgaW4gdG8gZW5kcG9pbnRzCjMuIEVuZHBvaW50IHJlc3BvbnNlcyBub3cgaW5jbHVkZSB0aGUgb3JpZ2luYWwgcmVzcG9uc2UsIHRoZSBkZXNlcmlhbGl6ZWQgcmVzcG9uc2UgYm9keSwgYW5kICh0b2RvKXRoZSBkZXNlcmlhbGl6ZWQgaGVhZGVycwogICAgLSBTbyB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB5b3VyIGNvZGUgdG8gdXNlIHJlc3BvbnNlLmJvZHkgdG8gYWNjZXNzIGRlc2VyaWFsaXplZCBkYXRhCjQuIEFsbCB2YWxpZGF0ZWQgZGF0YSBpcyBpbnN0YW50aWF0ZWQgaW4gYW4gaW5zdGFuY2UgdGhhdCBzdWJjbGFzc2VzIGFsbCB2YWxpZGF0ZWQgU2NoZW1hIGNsYXNzZXMgYW5kIERlY2ltYWwvc3RyL2xpc3QvdHVwbGUvZnJvemVuZGljdC9Ob25lQ2xhc3MvQm9vbENsYXNzL2J5dGVzL2lvLkZpbGVJTwogICAgLSBUaGlzIG1lYW5zIHRoYXQgeW91IGNhbiB1c2UgaXNpbnN0YW5jZSB0byBjaGVjayBpZiBhIHBheWxvYWQgdmFsaWRhdGVkIGFnYWluc3QgYSBzY2hlbWEgY2xhc3MKICAgIC0gVGhpcyBtZWFucyB0aGF0IG5vIGRhdGEgd2lsbCBiZSBvZiB0eXBlIE5vbmUvVHJ1ZS9GYWxzZQogICAgICAgIC0gaW5nZXN0ZWQgTm9uZSB3aWxsIHN1YmNsYXNzIE5vbmVDbGFzcwogICAgICAgIC0gaW5nZXN0ZWQgVHJ1ZSB3aWxsIHN1YmNsYXNzIEJvb2xDbGFzcwogICAgICAgIC0gaW5nZXN0ZWQgRmFsc2Ugd2lsbCBzdWJjbGFzcyBCb29sQ2xhc3MKICAgICAgICAtIFNvIGlmIHlvdSBuZWVkIHRvIGNoZWNrIGlzIFRydWUvRmFsc2UvTm9uZSwgaW5zdGVhZCB1c2UgaW5zdGFuY2UuaXNfdHJ1ZV9vYXBnKCkvLmlzX2ZhbHNlX29hcGcoKS8uaXNfbm9uZV9vYXBnKCkKNS4gQWxsIHZhbGlkYXRlZCBjbGFzcyBpbnN0YW5jZXMgYXJlIGltbXV0YWJsZSBleGNlcHQgZm9yIG9uZXMgYmFzZWQgb24gaW8uRmlsZQogICAgLSBUaGlzIGlzIGJlY2F1c2UgaWYgcHJvcGVydGllcyB3ZXJlIGNoYW5nZWQgYWZ0ZXIgdmFsaWRhdGlvbiwgdGhhdCB2YWxpZGF0aW9uIHdvdWxkIG5vIGxvbmdlciBhcHBseQogICAgLSBTbyBubyBjaGFuZ2luZyB2YWx1ZXMgb3IgcHJvcGVydHkgdmFsdWVzIGFmdGVyIGEgY2xhc3MgaGFzIGJlZW4gaW5zdGFudGlhdGVkCjYuIFN0cmluZyArIE51bWJlciB0eXBlcyB3aXRoIGZvcm1hdHMKICAgIC0gU3RyaW5nIHR5cGUgZGF0YSBpcyBzdG9yZWQgYXMgYSBzdHJpbmcgYW5kIGlmIHlvdSBuZWVkIHRvIGFjY2VzcyB0eXBlcyBiYXNlZCBvbiBpdHMgZm9ybWF0IGxpa2UgZGF0ZSwKICAgIGRhdGUtdGltZSwgdXVpZCwgbnVtYmVyIGV0YyB0aGVuIHlvdSB3aWxsIG5lZWQgdG8gdXNlIGFjY2Vzc29yIGZ1bmN0aW9ucyBvbiB0aGUgaW5zdGFuY2UKICAgIC0gdHlwZSBzdHJpbmcgKyBmb3JtYXQ6IFNlZSAuYXNfZGF0ZV9vYXBnLCAuYXNfZGF0ZXRpbWVfb2FwZywgLmFzX2RlY2ltYWxfb2FwZywgLmFzX3V1aWRfb2FwZwogICAgLSB0eXBlIG51bWJlciArIGZvcm1hdDogU2VlIC5hc19mbG9hdF9vYXBnLCAuYXNfaW50X29hcGcKICAgIC0gdGhpcyB3YXMgZG9uZSBiZWNhdXNlIG9wZW5hcGkvanNvbi1zY2hlbWEgZGVmaW5lcyBjb25zdHJhaW50cy4gc3RyaW5nIGRhdGEgbWF5IGJlIHR5cGUgc3RyaW5nIHdpdGggbm8gZm9ybWF0CiAgICBrZXl3b3JkIGluIG9uZSBzY2hlbWEsIGFuZCBpbmNsdWRlIGEgZm9ybWF0IGNvbnN0cmFpbnQgaW4gYW5vdGhlciBzY2hlbWEKICAgIC0gU28gaWYgeW91IG5lZWQgdG8gYWNjZXNzIGEgc3RyaW5nIGZvcm1hdCBiYXNlZCB0eXBlLCB1c2UgYXNfZGF0ZV9vYXBnL2FzX2RhdGV0aW1lX29hcGcvYXNfZGVjaW1hbF9vYXBnL2FzX3V1aWRfb2FwZwogICAgLSBTbyBpZiB5b3UgbmVlZCB0byBhY2Nlc3MgYSBudW1iZXIgZm9ybWF0IGJhc2VkIHR5cGUsIHVzZSBhc19pbnRfb2FwZy9hc19mbG9hdF9vYXBnCjcuIFByb3BlcnR5IGFjY2VzcyBvbiBBbnlUeXBlKHR5cGUgdW5zZXQpIG9yIG9iamVjdChkaWN0KSBzY2hlbWFzCiAgICAtIE9ubHkgcmVxdWlyZWQga2V5cyB3aXRoIHZhbGlkIHB5dGhvbiBuYW1lcyBhcmUgcHJvcGVydGllcyBsaWtlIC5zb21lUHJvcCBhbmQgaGF2ZSB0eXBlIGhpbnRzCiAgICAtIEFsbCBvcHRpb25hbCBrZXlzIG1heSBub3QgZXhpc3QsIHNvIHByb3BlcnRpZXMgYXJlIG5vdCBkZWZpbmVkIGZvciB0aGVtCiAgICAtIE9uZSBjYW4gYWNjZXNzIG9wdGlvbmFsIHZhbHVlcyB3aXRoIGRpY3RfaW5zdGFuY2VbJ29wdGlvbmFsUHJvcCddIGFuZCBLZXlFcnJvciB3aWxsIGJlIHJhaXNlZCBpZiBpdCBkb2VzIG5vdCBleGlzdAogICAgLSBVc2UgZ2V0X2l0ZW1fb2FwZyBpZiB5b3UgbmVlZCBhIHdheSB0byBhbHdheXMgZ2V0IGEgdmFsdWUgd2hldGhlciBvciBub3QgdGhlIGtleSBleGlzdHMKICAgICAgICAtIElmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QsIHNjaGVtYXMudW5zZXQgaXMgcmV0dXJuZWQgZnJvbSBjYWxsaW5nIGRpY3RfaW5zdGFuY2UuZ2V0X2l0ZW1fb2FwZygnb3B0aW9uYWxQcm9wJykKICAgICAgICAtIEFsbCByZXF1aXJlZCBhbmQgb3B0aW9uYWwga2V5cyBoYXZlIHR5cGUgaGludHMgZm9yIHRoaXMgbWV0aG9kLCBhbmQgQHR5cGluZy5vdmVybG9hZCBpcyB1c2VkCiAgICAgICAgLSBBIHR5cGUgaGludCBpcyBhbHNvIGdlbmVyYXRlZCBmb3IgYWRkaXRpb25hbFByb3BlcnRpZXMgYWNjZXNzZWQgdXNpbmcgdGhpcyBtZXRob2QKICAgIC0gU28geW91IHdpbGwgbmVlZCB0byB1cGRhdGUgeW91IGNvZGUgdG8gdXNlIHNvbWVfaW5zdGFuY2VbJ29wdGlvbmFsUHJvcCddIHRvIGFjY2VzcyBvcHRpb25hbCBwcm9wZXJ0eQogICAgYW5kIGFkZGl0aW9uYWxQcm9wZXJ0eSB2YWx1ZXMKOC4gVGhlIGxvY2F0aW9uIG9mIHRoZSBhcGkgY2xhc3NlcyBoYXMgY2hhbmdlZAogICAgLSBBcGkgY2xhc3NlcyBhcmUgbG9jYXRlZCBpbiB5b3VyX3BhY2thZ2UuYXBpcy50YWdzLnNvbWVfYXBpCiAgICAtIFRoaXMgY2hhbmdlIHdhcyBtYWRlIHRvIGVsaW1pbmF0ZSByZWR1bmRhbnQgY29kZSBnZW5lcmF0aW9uCiAgICAtIExlZ2FjeSBnZW5lcmF0b3JzIGdlbmVyYXRlZCB0aGUgc2FtZSBlbmRwb2ludCB0d2ljZSBpZiBpdCBoYWQgPiAxIHRhZyBvbiBpdAogICAgLSBUaGlzIGdlbmVyYXRvciBkZWZpbmVzIGFuIGVuZHBvaW50IGluIG9uZSBjbGFzcywgdGhlbiBpbmhlcml0cyB0aGF0IGNsYXNzIHRvIGdlbmVyYXRlCiAgICAgIGFwaXMgYnkgdGFncyBhbmQgYnkgcGF0aHMKICAgIC0gVGhpcyBjaGFuZ2UgcmVkdWNlcyBjb2RlIGFuZCBhbGxvd3MgcXVpY2tlciBydW4gdGltZSBpZiB5b3UgdXNlIHRoZSBwYXRoIGFwaXMKICAgICAgICAtIHBhdGggYXBpcyBhcmUgYXQgeW91cl9wYWNrYWdlLmFwaXMucGF0aHMuc29tZV9wYXRoCiAgICAtIFRob3NlIGFwaXMgd2lsbCBvbmx5IGxvYWQgdGhlaXIgbmVlZGVkIG1vZGVscywgd2hpY2ggaXMgbGVzcyB0byBsb2FkIHRoYW4gYWxsIG9mIHRoZSByZXNvdXJjZXMgbmVlZGVkIGluIGEgdGFnIGFwaQogICAgLSBTbyB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB5b3VyIGltcG9ydCBwYXRocyB0byB0aGUgYXBpIGNsYXNzZXMKCiMjIyBXaHkgYXJlIE9hcGcgYW5kIF9vYXBnIHVzZWQgaW4gY2xhc3MgYW5kIG1ldGhvZCBuYW1lcz8KQ2xhc3NlcyBjYW4gaGF2ZSBhcmJpdHJhcmlseSBuYW1lZCBwcm9wZXJ0aWVzIHNldCBvbiB0aGVtCkVuZHBvaW50cyBjYW4gaGF2ZSBhcmJpdHJhcnkgb3BlcmF0aW9uSWQgbWV0aG9kIG5hbWVzIHNldApGb3IgdGhvc2UgcmVhc29ucywgSSB1c2UgdGhlIHByZWZpeCBPYXBnIGFuZCBfb2FwZyB0byBncmVhdGx5IHJlZHVjZSB0aGUgbGlrZWxpaG9vZCBvZiBjb2xsaXNpb25zCm9uIHByb3RlY3RlZCArIHB1YmxpYyBjbGFzc2VzL21ldGhvZHMuCm9hcGcgc3RhbmRzIGZvciBPcGVuQXBpIFB5dGhvbiBHZW5lcmF0b3IuCgojIyMgT2JqZWN0IHByb3BlcnR5IHNwZWMgY2FzZQpUaGlzIHdhcyBkb25lIGJlY2F1c2Ugd2hlbiBwYXlsb2FkcyBhcmUgaW5nZXN0ZWQsIHRoZXkgY2FuIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IE4gbnVtYmVyIG9mIHNjaGVtYXMuCklmIHRoZSBpbnB1dCBzaWduYXR1cmUgdXNlZCBhIGRpZmZlcmVudCBwcm9wZXJ0eSBuYW1lIHRoZW4gdGhhdCBoYXMgbXV0YXRlZCB0aGUgcGF5bG9hZC4KU28gU2NoZW1hQSBhbmQgU2NoZW1hQiBtdXN0IGJvdGggc2VlIHRoZSBjYW1lbENhc2Ugc3BlYyBuYW1lZCB2YXJpYWJsZS4KQWxzbyBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGluIHR3byBwcm9wZXJ0aWVzLCBuYW1lZCBjYW1lbENhc2UgYW5kIGNhbWVsX2Nhc2UgaW4gdGhlIHNhbWUgcGF5bG9hZC4KVGhhdCB1c2UgY2FzZSBzaG91bGQgYmUgc3VwcG9ydCBzbyBzcGVjIGNhc2UgaXMgdXNlZC4KCiMjIyBQYXJhbWV0ZXIgc3BlYyBjYXNlClBhcmFtZXRlcnMgY2FuIGJlIGluY2x1ZGVkIGluIGRpZmZlcmVudCBsb2NhdGlvbnMgaW5jbHVkaW5nOgotIHF1ZXJ5Ci0gcGF0aAotIGhlYWRlcgotIGNvb2tpZQoKQW55IG9mIHRob3NlIHBhcmFtZXRlcnMgY291bGQgdXNlIHRoZSBzYW1lIHBhcmFtZXRlciBuYW1lcywgc28gaWYgZXZlcnkgcGFyYW1ldGVyCndhcyBpbmNsdWRlZCBhcyBhbiBlbmRwb2ludCBwYXJhbWV0ZXIgaW4gYSBmdW5jdGlvbiBzaWduYXR1cmUsIHRoZXkgd291bGQgY29sbGlkZS4KRm9yIHRoYXQgcmVhc29uLCBlYWNoIG9mIHRob3NlIGlucHV0cyBoYXZlIGJlZW4gc2VwYXJhdGVkIG91dCBpbnRvIHNlcGFyYXRlIHR5cGVkIGRpY3Rpb25hcmllczoKLSBxdWVyeV9wYXJhbXMKLSBwYXRoX3BhcmFtcwotIGhlYWRlcl9wYXJhbXMKLSBjb29raWVfcGFyYW1zCgpTbyB3aGVuIHVwZGF0aW5nIHlvdXIgY29kZSwgeW91IHdpbGwgbmVlZCB0byBwYXNzIGVuZHBvaW50IHBhcmFtZXRlcnMgaW4gdXNpbmcgdGhvc2UKZGljdGlvbmFyaWVzLgoKIyMjIEVuZHBvaW50IHJlc3BvbnNlcwpFbmRwb2ludCByZXNwb25zZXMgaGF2ZSBiZWVuIGVucmljaGVkIHRvIG5vdyBpbmNsdWRlIG1vcmUgaW5mb3JtYXRpb24uCkFueSByZXNwb25zZSByZW9tIGFuIGVuZHBvaW50IHdpbGwgbm93IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgpyZXNwb25zZTogdXJsbGliMy5IVFRQUmVzcG9uc2UKYm9keTogdHlwaW5nLlVuaW9uW1Vuc2V0LCBTY2hlbWFdCmhlYWRlcnM6IHR5cGluZy5VbmlvbltVbnNldCwgVE9ET10KTm90ZTogcmVzcG9uc2UgaGVhZGVyIGRlc2VyaWFsaXphdGlvbiBoYXMgbm90IHlldCBiZWVuIGFkZGVkCgoKIyMgSW5zdGFsbGF0aW9uICYgVXNhZ2UKIyMjIHBpcCBpbnN0YWxsCgpJZiB0aGUgcHl0aG9uIHBhY2thZ2UgaXMgaG9zdGVkIG9uIGEgcmVwb3NpdG9yeSwgeW91IGNhbiBpbnN0YWxsIGRpcmVjdGx5IHVzaW5nOgoKYGBgc2gKcGlwIGluc3RhbGwgZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9lbGFzdGljZW1haWwvZWxhc3RpY2VtYWlsLXB5dGhvbi5naXQKYGBgCih5b3UgbWF5IG5lZWQgdG8gcnVuIGBwaXBgIHdpdGggcm9vdCBwZXJtaXNzaW9uOiBgc3VkbyBwaXAgaW5zdGFsbCBnaXQraHR0cHM6Ly9naXRodWIuY29tL2VsYXN0aWNlbWFpbC9lbGFzdGljZW1haWwtcHl0aG9uLmdpdGApCgpUaGVuIGltcG9ydCB0aGUgcGFja2FnZToKYGBgcHl0aG9uCmltcG9ydCBFbGFzdGljRW1haWwKYGBgCgojIyMgU2V0dXB0b29scwoKSW5zdGFsbCB2aWEgW1NldHVwdG9vbHNdKGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zZXR1cHRvb2xzKS4KCmBgYHNoCnB5dGhvbiBzZXR1cC5weSBpbnN0YWxsIC0tdXNlcgpgYGAKKG9yIGBzdWRvIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsYCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIGZvciBhbGwgdXNlcnMpCgpUaGVuIGltcG9ydCB0aGUgcGFja2FnZToKYGBgcHl0aG9uCmltcG9ydCBFbGFzdGljRW1haWwKYGBgCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClBsZWFzZSBmb2xsb3cgdGhlIFtpbnN0YWxsYXRpb24gcHJvY2VkdXJlXSgjaW5zdGFsbGF0aW9uLS11c2FnZSkgYW5kIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmc6CgpgYGBweXRob24KCmltcG9ydCB0aW1lCmltcG9ydCBFbGFzdGljRW1haWwKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludApmcm9tIEVsYXN0aWNFbWFpbC5hcGlzLnRhZ3MgaW1wb3J0IGNhbXBhaWduc19hcGkKZnJvbSBFbGFzdGljRW1haWwubW9kZWwuY2FtcGFpZ24gaW1wb3J0IENhbXBhaWduCiMgRGVmaW5pbmcgdGhlIGhvc3QgaXMgb3B0aW9uYWwgYW5kIGRlZmF1bHRzIHRvIGh0dHBzOi8vYXBpLmVsYXN0aWNlbWFpbC5jb20vdjQKIyBTZWUgY29uZmlndXJhdGlvbi5weSBmb3IgYSBsaXN0IG9mIGFsbCBzdXBwb3J0ZWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgpjb25maWd1cmF0aW9uID0gRWxhc3RpY0VtYWlsLkNvbmZpZ3VyYXRpb24oCiAgICBob3N0ID0gImh0dHBzOi8vYXBpLmVsYXN0aWNlbWFpbC5jb20vdjQiCikKCiMgVGhlIGNsaWVudCBtdXN0IGNvbmZpZ3VyZSB0aGUgYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gcGFyYW1ldGVycwojIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQVBJIHNlcnZlciBzZWN1cml0eSBwb2xpY3kuCiMgRXhhbXBsZXMgZm9yIGVhY2ggYXV0aCBtZXRob2QgYXJlIHByb3ZpZGVkIGJlbG93LCB1c2UgdGhlIGV4YW1wbGUgdGhhdAojIHNhdGlzZmllcyB5b3VyIGF1dGggdXNlIGNhc2UuCgojIENvbmZpZ3VyZSBBUEkga2V5IGF1dGhvcml6YXRpb246IGFwaWtleQpjb25maWd1cmF0aW9uLmFwaV9rZXlbJ2FwaWtleSddID0gJ1lPVVJfQVBJX0tFWScKCiMgVW5jb21tZW50IGJlbG93IHRvIHNldHVwIHByZWZpeCAoZS5nLiBCZWFyZXIpIGZvciBBUEkga2V5LCBpZiBuZWVkZWQKIyBjb25maWd1cmF0aW9uLmFwaV9rZXlfcHJlZml4WydhcGlrZXknXSA9ICdCZWFyZXInCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRWxhc3RpY0VtYWlsLkFwaUNsaWVudChjb25maWd1cmF0aW9uKSBhcyBhcGlfY2xpZW50OgogICAgIyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGFzcwogICAgYXBpX2luc3RhbmNlID0gY2FtcGFpZ25zX2FwaS5DYW1wYWlnbnNBcGkoYXBpX2NsaWVudCkKICAgIG5hbWUgPSAibmFtZV9leGFtcGxlIiAjIHN0ciB8IE5hbWUgb2YgQ2FtcGFpZ24gdG8gZGVsZXRlCgogICAgdHJ5OgogICAgICAgICMgRGVsZXRlIENhbXBhaWduCiAgICAgICAgYXBpX2luc3RhbmNlLmNhbXBhaWduc19ieV9uYW1lX2RlbGV0ZShuYW1lKQogICAgZXhjZXB0IEVsYXN0aWNFbWFpbC5BcGlFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDYW1wYWlnbnNBcGktPmNhbXBhaWduc19ieV9uYW1lX2RlbGV0ZTogJXNcbiIgJSBlKQpgYGAKCgojIyBFeGFtcGxlcwoKRnVuY3Rpb24gfHwKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSAKW2FkZENhbXBhaWduXShleGFtcGxlcy9mdW5jdGlvbnMvYWRkQ2FtcGFpZ24ucHkpIHwgW3JlYWRtZV0oZXhhbXBsZXMvZnVuY3Rpb25zL2FkZENhbXBhaWduLm1kKQpbYWRkQ29udGFjdHNdKGV4YW1wbGVzL2Z1bmN0aW9ucy9hZGRDb250YWN0cy5weSkgfCBbcmVhZG1lXShleGFtcGxlcy9mdW5jdGlvbnMvYWRkQ29udGFjdHMubWQpClthZGRMaXN0XShleGFtcGxlcy9mdW5jdGlvbnMvYWRkTGlzdC5weSkgfCBbcmVhZG1lXShleGFtcGxlcy9mdW5jdGlvbnMvYWRkTGlzdC5tZCkKW2FkZFRlbXBsYXRlXShleGFtcGxlcy9mdW5jdGlvbnMvYWRkVGVtcGxhdGUucHkpIHwgW3JlYWRtZV0oZXhhbXBsZXMvZnVuY3Rpb25zL2FkZFRlbXBsYXRlLm1kKQpbZGVsZXRlQ2FtcGFpZ25dKGV4YW1wbGVzL2Z1bmN0aW9ucy9kZWxldGVDYW1wYWlnbi5weSkgfCBbcmVhZG1lXShleGFtcGxlcy9mdW5jdGlvbnMvZGVsZXRlQ2FtcGFpZ24ubWQpCltkZWxldGVDb250YWN0c10oZXhhbXBsZXMvZnVuY3Rpb25zL2RlbGV0ZUNvbnRhY3RzLnB5KSB8IFtyZWFkbWVdKGV4YW1wbGVzL2Z1bmN0aW9ucy9kZWxldGVDb250YWN0cy5tZCkKW2RlbGV0ZUxpc3RdKGV4YW1wbGVzL2Z1bmN0aW9ucy9kZWxldGVMaXN0LnB5KSB8IFtyZWFkbWVdKGV4YW1wbGVzL2Z1bmN0aW9ucy9kZWxldGVMaXN0Lm1kKQpbZGVsZXRlVGVtcGxhdGVdKGV4YW1wbGVzL2Z1bmN0aW9ucy9kZWxldGVUZW1wbGF0ZS5weSkgfCBbcmVhZG1lXShleGFtcGxlcy9mdW5jdGlvbnMvZGVsZXRlVGVtcGxhdGUubWQpCltleHBvcnRDb250YWN0c10oZXhhbXBsZXMvZnVuY3Rpb25zL2V4cG9ydENvbnRhY3RzLnB5KSB8IFtyZWFkbWVdKGV4YW1wbGVzL2Z1bmN0aW9ucy9leHBvcnRDb250YWN0cy5tZCkKW2xvYWRDYW1wYWlnbl0oZXhhbXBsZXMvZnVuY3Rpb25zL2xvYWRDYW1wYWlnbi5weSkgfCBbcmVhZG1lXShleGFtcGxlcy9mdW5jdGlvbnMvbG9hZENhbXBhaWduLm1kKQpbbG9hZENhbXBhaWduc1N0YXRzXShleGFtcGxlcy9mdW5jdGlvbnMvbG9hZENhbXBhaWduc1N0YXRzLnB5KSB8IFtyZWFkbWVdKGV4YW1wbGVzL2Z1bmN0aW9ucy9sb2FkQ2FtcGFpZ25zU3RhdHMubWQpCltsb2FkQ2hhbm5lbHNTdGF0c10oZXhhbXBsZXMvZnVuY3Rpb25zL2xvYWRDaGFubmVsc1N0YXRzLnB5KSB8IFtyZWFkbWVdKGV4YW1wbGVzL2Z1bmN0aW9ucy9sb2FkQ2hhbm5lbHNTdGF0cy5tZCkKW2xvYWRMaXN0XShleGFtcGxlcy9mdW5jdGlvbnMvbG9hZExpc3QucHkpIHwgW3JlYWRtZV0oZXhhbXBsZXMvZnVuY3Rpb25zL2xvYWRMaXN0Lm1kKQpbbG9hZFN0YXRpc3RpY3NdKGV4YW1wbGVzL2Z1bmN0aW9ucy9sb2FkU3RhdGlzdGljcy5weSkgfCBbcmVhZG1lXShleGFtcGxlcy9mdW5jdGlvbnMvbG9hZFN0YXRpc3RpY3MubWQpCltsb2FkVGVtcGxhdGVdKGV4YW1wbGVzL2Z1bmN0aW9ucy9sb2FkVGVtcGxhdGUucHkpIHwgW3JlYWRtZV0oZXhhbXBsZXMvZnVuY3Rpb25zL2xvYWRUZW1wbGF0ZS5tZCkKW3NlbmRCdWxrRW1haWxzXShleGFtcGxlcy9mdW5jdGlvbnMvc2VuZEJ1bGtFbWFpbHMucHkpIHwgW3JlYWRtZV0oZXhhbXBsZXMvZnVuY3Rpb25zL3NlbmRCdWxrRW1haWxzLm1kKQpbc2VuZFRyYW5zYWN0aW9uYWxFbWFpbHNdKGV4YW1wbGVzL2Z1bmN0aW9ucy9zZW5kVHJhbnNhY3Rpb25hbEVtYWlscy5weSkgfCBbcmVhZG1lXShleGFtcGxlcy9mdW5jdGlvbnMvc2VuZFRyYW5zYWN0aW9uYWxFbWFpbHMubWQpClt1cGRhdGVDYW1wYWlnbl0oZXhhbXBsZXMvZnVuY3Rpb25zL3VwZGF0ZUNhbXBhaWduLnB5KSB8IFtyZWFkbWVdKGV4YW1wbGVzL2Z1bmN0aW9ucy91cGRhdGVDYW1wYWlnbi5tZCkKW3VwbG9hZENvbnRhY3RzXShleGFtcGxlcy9mdW5jdGlvbnMvdXBsb2FkQ29udGFjdHMucHkpIHwgW3JlYWRtZV0oZXhhbXBsZXMvZnVuY3Rpb25zL3VwbG9hZENvbnRhY3RzLm1kKQoKIyMgRG9jdW1lbnRhdGlvbiBmb3IgQVBJIEVuZHBvaW50cwoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5lbGFzdGljZW1haWwuY29tL3Y0KgoKQ2xhc3MgfCBNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKkNhbXBhaWduc0FwaSogfCBbKipjYW1wYWlnbnNfYnlfbmFtZV9kZWxldGUqKl0oZG9jcy9hcGlzL3RhZ3MvQ2FtcGFpZ25zQXBpLm1kI2NhbXBhaWduc19ieV9uYW1lX2RlbGV0ZSkgfCAqKmRlbGV0ZSoqIC9jYW1wYWlnbnMve25hbWV9IHwgRGVsZXRlIENhbXBhaWduCipDYW1wYWlnbnNBcGkqIHwgWyoqY2FtcGFpZ25zX2J5X25hbWVfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0NhbXBhaWduc0FwaS5tZCNjYW1wYWlnbnNfYnlfbmFtZV9nZXQpIHwgKipnZXQqKiAvY2FtcGFpZ25zL3tuYW1lfSB8IExvYWQgQ2FtcGFpZ24KKkNhbXBhaWduc0FwaSogfCBbKipjYW1wYWlnbnNfYnlfbmFtZV9wdXQqKl0oZG9jcy9hcGlzL3RhZ3MvQ2FtcGFpZ25zQXBpLm1kI2NhbXBhaWduc19ieV9uYW1lX3B1dCkgfCAqKnB1dCoqIC9jYW1wYWlnbnMve25hbWV9IHwgVXBkYXRlIENhbXBhaWduCipDYW1wYWlnbnNBcGkqIHwgWyoqY2FtcGFpZ25zX2dldCoqXShkb2NzL2FwaXMvdGFncy9DYW1wYWlnbnNBcGkubWQjY2FtcGFpZ25zX2dldCkgfCAqKmdldCoqIC9jYW1wYWlnbnMgfCBMb2FkIENhbXBhaWducwoqQ2FtcGFpZ25zQXBpKiB8IFsqKmNhbXBhaWduc19wb3N0KipdKGRvY3MvYXBpcy90YWdzL0NhbXBhaWduc0FwaS5tZCNjYW1wYWlnbnNfcG9zdCkgfCAqKnBvc3QqKiAvY2FtcGFpZ25zIHwgQWRkIENhbXBhaWduCipDb250YWN0c0FwaSogfCBbKipjb250YWN0c19ieV9lbWFpbF9kZWxldGUqKl0oZG9jcy9hcGlzL3RhZ3MvQ29udGFjdHNBcGkubWQjY29udGFjdHNfYnlfZW1haWxfZGVsZXRlKSB8ICoqZGVsZXRlKiogL2NvbnRhY3RzL3tlbWFpbH0gfCBEZWxldGUgQ29udGFjdAoqQ29udGFjdHNBcGkqIHwgWyoqY29udGFjdHNfYnlfZW1haWxfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0NvbnRhY3RzQXBpLm1kI2NvbnRhY3RzX2J5X2VtYWlsX2dldCkgfCAqKmdldCoqIC9jb250YWN0cy97ZW1haWx9IHwgTG9hZCBDb250YWN0CipDb250YWN0c0FwaSogfCBbKipjb250YWN0c19ieV9lbWFpbF9wdXQqKl0oZG9jcy9hcGlzL3RhZ3MvQ29udGFjdHNBcGkubWQjY29udGFjdHNfYnlfZW1haWxfcHV0KSB8ICoqcHV0KiogL2NvbnRhY3RzL3tlbWFpbH0gfCBVcGRhdGUgQ29udGFjdAoqQ29udGFjdHNBcGkqIHwgWyoqY29udGFjdHNfZGVsZXRlX3Bvc3QqKl0oZG9jcy9hcGlzL3RhZ3MvQ29udGFjdHNBcGkubWQjY29udGFjdHNfZGVsZXRlX3Bvc3QpIHwgKipwb3N0KiogL2NvbnRhY3RzL2RlbGV0ZSB8IERlbGV0ZSBDb250YWN0cyBCdWxrCipDb250YWN0c0FwaSogfCBbKipjb250YWN0c19leHBvcnRfYnlfaWRfc3RhdHVzX2dldCoqXShkb2NzL2FwaXMvdGFncy9Db250YWN0c0FwaS5tZCNjb250YWN0c19leHBvcnRfYnlfaWRfc3RhdHVzX2dldCkgfCAqKmdldCoqIC9jb250YWN0cy9leHBvcnQve2lkfS9zdGF0dXMgfCBDaGVjayBFeHBvcnQgU3RhdHVzCipDb250YWN0c0FwaSogfCBbKipjb250YWN0c19leHBvcnRfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9Db250YWN0c0FwaS5tZCNjb250YWN0c19leHBvcnRfcG9zdCkgfCAqKnBvc3QqKiAvY29udGFjdHMvZXhwb3J0IHwgRXhwb3J0IENvbnRhY3RzCipDb250YWN0c0FwaSogfCBbKipjb250YWN0c19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvQ29udGFjdHNBcGkubWQjY29udGFjdHNfZ2V0KSB8ICoqZ2V0KiogL2NvbnRhY3RzIHwgTG9hZCBDb250YWN0cwoqQ29udGFjdHNBcGkqIHwgWyoqY29udGFjdHNfaW1wb3J0X3Bvc3QqKl0oZG9jcy9hcGlzL3RhZ3MvQ29udGFjdHNBcGkubWQjY29udGFjdHNfaW1wb3J0X3Bvc3QpIHwgKipwb3N0KiogL2NvbnRhY3RzL2ltcG9ydCB8IFVwbG9hZCBDb250YWN0cwoqQ29udGFjdHNBcGkqIHwgWyoqY29udGFjdHNfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9Db250YWN0c0FwaS5tZCNjb250YWN0c19wb3N0KSB8ICoqcG9zdCoqIC9jb250YWN0cyB8IEFkZCBDb250YWN0CipFbWFpbHNBcGkqIHwgWyoqZW1haWxzX2J5X21zZ2lkX3ZpZXdfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0VtYWlsc0FwaS5tZCNlbWFpbHNfYnlfbXNnaWRfdmlld19nZXQpIHwgKipnZXQqKiAvZW1haWxzL3ttc2dpZH0vdmlldyB8IFZpZXcgRW1haWwKKkVtYWlsc0FwaSogfCBbKiplbWFpbHNfYnlfdHJhbnNhY3Rpb25pZF9zdGF0dXNfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0VtYWlsc0FwaS5tZCNlbWFpbHNfYnlfdHJhbnNhY3Rpb25pZF9zdGF0dXNfZ2V0KSB8ICoqZ2V0KiogL2VtYWlscy97dHJhbnNhY3Rpb25pZH0vc3RhdHVzIHwgR2V0IFN0YXR1cwoqRW1haWxzQXBpKiB8IFsqKmVtYWlsc19tZXJnZWZpbGVfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9FbWFpbHNBcGkubWQjZW1haWxzX21lcmdlZmlsZV9wb3N0KSB8ICoqcG9zdCoqIC9lbWFpbHMvbWVyZ2VmaWxlIHwgU2VuZCBCdWxrIEVtYWlscyBDU1YKKkVtYWlsc0FwaSogfCBbKiplbWFpbHNfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9FbWFpbHNBcGkubWQjZW1haWxzX3Bvc3QpIHwgKipwb3N0KiogL2VtYWlscyB8IFNlbmQgQnVsayBFbWFpbHMKKkVtYWlsc0FwaSogfCBbKiplbWFpbHNfdHJhbnNhY3Rpb25hbF9wb3N0KipdKGRvY3MvYXBpcy90YWdzL0VtYWlsc0FwaS5tZCNlbWFpbHNfdHJhbnNhY3Rpb25hbF9wb3N0KSB8ICoqcG9zdCoqIC9lbWFpbHMvdHJhbnNhY3Rpb25hbCB8IFNlbmQgVHJhbnNhY3Rpb25hbCBFbWFpbAoqRXZlbnRzQXBpKiB8IFsqKmV2ZW50c19ieV90cmFuc2FjdGlvbmlkX2dldCoqXShkb2NzL2FwaXMvdGFncy9FdmVudHNBcGkubWQjZXZlbnRzX2J5X3RyYW5zYWN0aW9uaWRfZ2V0KSB8ICoqZ2V0KiogL2V2ZW50cy97dHJhbnNhY3Rpb25pZH0gfCBMb2FkIEVtYWlsIEV2ZW50cwoqRXZlbnRzQXBpKiB8IFsqKmV2ZW50c19jaGFubmVsc19ieV9uYW1lX2V4cG9ydF9wb3N0KipdKGRvY3MvYXBpcy90YWdzL0V2ZW50c0FwaS5tZCNldmVudHNfY2hhbm5lbHNfYnlfbmFtZV9leHBvcnRfcG9zdCkgfCAqKnBvc3QqKiAvZXZlbnRzL2NoYW5uZWxzL3tuYW1lfS9leHBvcnQgfCBFeHBvcnQgQ2hhbm5lbCBFdmVudHMKKkV2ZW50c0FwaSogfCBbKipldmVudHNfY2hhbm5lbHNfYnlfbmFtZV9nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvRXZlbnRzQXBpLm1kI2V2ZW50c19jaGFubmVsc19ieV9uYW1lX2dldCkgfCAqKmdldCoqIC9ldmVudHMvY2hhbm5lbHMve25hbWV9IHwgTG9hZCBDaGFubmVsIEV2ZW50cwoqRXZlbnRzQXBpKiB8IFsqKmV2ZW50c19jaGFubmVsc19leHBvcnRfYnlfaWRfc3RhdHVzX2dldCoqXShkb2NzL2FwaXMvdGFncy9FdmVudHNBcGkubWQjZXZlbnRzX2NoYW5uZWxzX2V4cG9ydF9ieV9pZF9zdGF0dXNfZ2V0KSB8ICoqZ2V0KiogL2V2ZW50cy9jaGFubmVscy9leHBvcnQve2lkfS9zdGF0dXMgfCBDaGVjayBDaGFubmVsIEV4cG9ydCBTdGF0dXMKKkV2ZW50c0FwaSogfCBbKipldmVudHNfZXhwb3J0X2J5X2lkX3N0YXR1c19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvRXZlbnRzQXBpLm1kI2V2ZW50c19leHBvcnRfYnlfaWRfc3RhdHVzX2dldCkgfCAqKmdldCoqIC9ldmVudHMvZXhwb3J0L3tpZH0vc3RhdHVzIHwgQ2hlY2sgRXhwb3J0IFN0YXR1cwoqRXZlbnRzQXBpKiB8IFsqKmV2ZW50c19leHBvcnRfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9FdmVudHNBcGkubWQjZXZlbnRzX2V4cG9ydF9wb3N0KSB8ICoqcG9zdCoqIC9ldmVudHMvZXhwb3J0IHwgRXhwb3J0IEV2ZW50cwoqRXZlbnRzQXBpKiB8IFsqKmV2ZW50c19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvRXZlbnRzQXBpLm1kI2V2ZW50c19nZXQpIHwgKipnZXQqKiAvZXZlbnRzIHwgTG9hZCBFdmVudHMKKkZpbGVzQXBpKiB8IFsqKmZpbGVzX2J5X25hbWVfZGVsZXRlKipdKGRvY3MvYXBpcy90YWdzL0ZpbGVzQXBpLm1kI2ZpbGVzX2J5X25hbWVfZGVsZXRlKSB8ICoqZGVsZXRlKiogL2ZpbGVzL3tuYW1lfSB8IERlbGV0ZSBGaWxlCipGaWxlc0FwaSogfCBbKipmaWxlc19ieV9uYW1lX2dldCoqXShkb2NzL2FwaXMvdGFncy9GaWxlc0FwaS5tZCNmaWxlc19ieV9uYW1lX2dldCkgfCAqKmdldCoqIC9maWxlcy97bmFtZX0gfCBEb3dubG9hZCBGaWxlCipGaWxlc0FwaSogfCBbKipmaWxlc19ieV9uYW1lX2luZm9fZ2V0KipdKGRvY3MvYXBpcy90YWdzL0ZpbGVzQXBpLm1kI2ZpbGVzX2J5X25hbWVfaW5mb19nZXQpIHwgKipnZXQqKiAvZmlsZXMve25hbWV9L2luZm8gfCBMb2FkIEZpbGUgRGV0YWlscwoqRmlsZXNBcGkqIHwgWyoqZmlsZXNfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0ZpbGVzQXBpLm1kI2ZpbGVzX2dldCkgfCAqKmdldCoqIC9maWxlcyB8IExpc3QgRmlsZXMKKkZpbGVzQXBpKiB8IFsqKmZpbGVzX3Bvc3QqKl0oZG9jcy9hcGlzL3RhZ3MvRmlsZXNBcGkubWQjZmlsZXNfcG9zdCkgfCAqKnBvc3QqKiAvZmlsZXMgfCBVcGxvYWQgRmlsZQoqSW5ib3VuZFJvdXRlQXBpKiB8IFsqKmluYm91bmRyb3V0ZV9ieV9pZF9kZWxldGUqKl0oZG9jcy9hcGlzL3RhZ3MvSW5ib3VuZFJvdXRlQXBpLm1kI2luYm91bmRyb3V0ZV9ieV9pZF9kZWxldGUpIHwgKipkZWxldGUqKiAvaW5ib3VuZHJvdXRlL3tpZH0gfCBEZWxldGUgUm91dGUKKkluYm91bmRSb3V0ZUFwaSogfCBbKippbmJvdW5kcm91dGVfYnlfaWRfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0luYm91bmRSb3V0ZUFwaS5tZCNpbmJvdW5kcm91dGVfYnlfaWRfZ2V0KSB8ICoqZ2V0KiogL2luYm91bmRyb3V0ZS97aWR9IHwgR2V0IFJvdXRlCipJbmJvdW5kUm91dGVBcGkqIHwgWyoqaW5ib3VuZHJvdXRlX2J5X2lkX3B1dCoqXShkb2NzL2FwaXMvdGFncy9JbmJvdW5kUm91dGVBcGkubWQjaW5ib3VuZHJvdXRlX2J5X2lkX3B1dCkgfCAqKnB1dCoqIC9pbmJvdW5kcm91dGUve2lkfSB8IFVwZGF0ZSBSb3V0ZQoqSW5ib3VuZFJvdXRlQXBpKiB8IFsqKmluYm91bmRyb3V0ZV9nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvSW5ib3VuZFJvdXRlQXBpLm1kI2luYm91bmRyb3V0ZV9nZXQpIHwgKipnZXQqKiAvaW5ib3VuZHJvdXRlIHwgR2V0IFJvdXRlcwoqSW5ib3VuZFJvdXRlQXBpKiB8IFsqKmluYm91bmRyb3V0ZV9vcmRlcl9wdXQqKl0oZG9jcy9hcGlzL3RhZ3MvSW5ib3VuZFJvdXRlQXBpLm1kI2luYm91bmRyb3V0ZV9vcmRlcl9wdXQpIHwgKipwdXQqKiAvaW5ib3VuZHJvdXRlL29yZGVyIHwgVXBkYXRlIFNvcnRpbmcKKkluYm91bmRSb3V0ZUFwaSogfCBbKippbmJvdW5kcm91dGVfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9JbmJvdW5kUm91dGVBcGkubWQjaW5ib3VuZHJvdXRlX3Bvc3QpIHwgKipwb3N0KiogL2luYm91bmRyb3V0ZSB8IENyZWF0ZSBSb3V0ZQoqTGlzdHNBcGkqIHwgWyoqbGlzdHNfYnlfbGlzdG5hbWVfY29udGFjdHNfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0xpc3RzQXBpLm1kI2xpc3RzX2J5X2xpc3RuYW1lX2NvbnRhY3RzX2dldCkgfCAqKmdldCoqIC9saXN0cy97bGlzdG5hbWV9L2NvbnRhY3RzIHwgTG9hZCBDb250YWN0cyBpbiBMaXN0CipMaXN0c0FwaSogfCBbKipsaXN0c19ieV9uYW1lX2NvbnRhY3RzX3Bvc3QqKl0oZG9jcy9hcGlzL3RhZ3MvTGlzdHNBcGkubWQjbGlzdHNfYnlfbmFtZV9jb250YWN0c19wb3N0KSB8ICoqcG9zdCoqIC9saXN0cy97bmFtZX0vY29udGFjdHMgfCBBZGQgQ29udGFjdHMgdG8gTGlzdAoqTGlzdHNBcGkqIHwgWyoqbGlzdHNfYnlfbmFtZV9jb250YWN0c19yZW1vdmVfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9MaXN0c0FwaS5tZCNsaXN0c19ieV9uYW1lX2NvbnRhY3RzX3JlbW92ZV9wb3N0KSB8ICoqcG9zdCoqIC9saXN0cy97bmFtZX0vY29udGFjdHMvcmVtb3ZlIHwgUmVtb3ZlIENvbnRhY3RzIGZyb20gTGlzdAoqTGlzdHNBcGkqIHwgWyoqbGlzdHNfYnlfbmFtZV9kZWxldGUqKl0oZG9jcy9hcGlzL3RhZ3MvTGlzdHNBcGkubWQjbGlzdHNfYnlfbmFtZV9kZWxldGUpIHwgKipkZWxldGUqKiAvbGlzdHMve25hbWV9IHwgRGVsZXRlIExpc3QKKkxpc3RzQXBpKiB8IFsqKmxpc3RzX2J5X25hbWVfZ2V0KipdKGRvY3MvYXBpcy90YWdzL0xpc3RzQXBpLm1kI2xpc3RzX2J5X25hbWVfZ2V0KSB8ICoqZ2V0KiogL2xpc3RzL3tuYW1lfSB8IExvYWQgTGlzdAoqTGlzdHNBcGkqIHwgWyoqbGlzdHNfYnlfbmFtZV9wdXQqKl0oZG9jcy9hcGlzL3RhZ3MvTGlzdHNBcGkubWQjbGlzdHNfYnlfbmFtZV9wdXQpIHwgKipwdXQqKiAvbGlzdHMve25hbWV9IHwgVXBkYXRlIExpc3QKKkxpc3RzQXBpKiB8IFsqKmxpc3RzX2dldCoqXShkb2NzL2FwaXMvdGFncy9MaXN0c0FwaS5tZCNsaXN0c19nZXQpIHwgKipnZXQqKiAvbGlzdHMgfCBMb2FkIExpc3RzCipMaXN0c0FwaSogfCBbKipsaXN0c19wb3N0KipdKGRvY3MvYXBpcy90YWdzL0xpc3RzQXBpLm1kI2xpc3RzX3Bvc3QpIHwgKipwb3N0KiogL2xpc3RzIHwgQWRkIExpc3QKKlNlY3VyaXR5QXBpKiB8IFsqKnNlY3VyaXR5X2FwaWtleXNfYnlfbmFtZV9kZWxldGUqKl0oZG9jcy9hcGlzL3RhZ3MvU2VjdXJpdHlBcGkubWQjc2VjdXJpdHlfYXBpa2V5c19ieV9uYW1lX2RlbGV0ZSkgfCAqKmRlbGV0ZSoqIC9zZWN1cml0eS9hcGlrZXlzL3tuYW1lfSB8IERlbGV0ZSBBcGlLZXkKKlNlY3VyaXR5QXBpKiB8IFsqKnNlY3VyaXR5X2FwaWtleXNfYnlfbmFtZV9nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvU2VjdXJpdHlBcGkubWQjc2VjdXJpdHlfYXBpa2V5c19ieV9uYW1lX2dldCkgfCAqKmdldCoqIC9zZWN1cml0eS9hcGlrZXlzL3tuYW1lfSB8IExvYWQgQXBpS2V5CipTZWN1cml0eUFwaSogfCBbKipzZWN1cml0eV9hcGlrZXlzX2J5X25hbWVfcHV0KipdKGRvY3MvYXBpcy90YWdzL1NlY3VyaXR5QXBpLm1kI3NlY3VyaXR5X2FwaWtleXNfYnlfbmFtZV9wdXQpIHwgKipwdXQqKiAvc2VjdXJpdHkvYXBpa2V5cy97bmFtZX0gfCBVcGRhdGUgQXBpS2V5CipTZWN1cml0eUFwaSogfCBbKipzZWN1cml0eV9hcGlrZXlzX2dldCoqXShkb2NzL2FwaXMvdGFncy9TZWN1cml0eUFwaS5tZCNzZWN1cml0eV9hcGlrZXlzX2dldCkgfCAqKmdldCoqIC9zZWN1cml0eS9hcGlrZXlzIHwgTGlzdCBBcGlLZXlzCipTZWN1cml0eUFwaSogfCBbKipzZWN1cml0eV9hcGlrZXlzX3Bvc3QqKl0oZG9jcy9hcGlzL3RhZ3MvU2VjdXJpdHlBcGkubWQjc2VjdXJpdHlfYXBpa2V5c19wb3N0KSB8ICoqcG9zdCoqIC9zZWN1cml0eS9hcGlrZXlzIHwgQWRkIEFwaUtleQoqU2VjdXJpdHlBcGkqIHwgWyoqc2VjdXJpdHlfc210cF9ieV9uYW1lX2RlbGV0ZSoqXShkb2NzL2FwaXMvdGFncy9TZWN1cml0eUFwaS5tZCNzZWN1cml0eV9zbXRwX2J5X25hbWVfZGVsZXRlKSB8ICoqZGVsZXRlKiogL3NlY3VyaXR5L3NtdHAve25hbWV9IHwgRGVsZXRlIFNNVFAgQ3JlZGVudGlhbAoqU2VjdXJpdHlBcGkqIHwgWyoqc2VjdXJpdHlfc210cF9ieV9uYW1lX2dldCoqXShkb2NzL2FwaXMvdGFncy9TZWN1cml0eUFwaS5tZCNzZWN1cml0eV9zbXRwX2J5X25hbWVfZ2V0KSB8ICoqZ2V0KiogL3NlY3VyaXR5L3NtdHAve25hbWV9IHwgTG9hZCBTTVRQIENyZWRlbnRpYWwKKlNlY3VyaXR5QXBpKiB8IFsqKnNlY3VyaXR5X3NtdHBfYnlfbmFtZV9wdXQqKl0oZG9jcy9hcGlzL3RhZ3MvU2VjdXJpdHlBcGkubWQjc2VjdXJpdHlfc210cF9ieV9uYW1lX3B1dCkgfCAqKnB1dCoqIC9zZWN1cml0eS9zbXRwL3tuYW1lfSB8IFVwZGF0ZSBTTVRQIENyZWRlbnRpYWwKKlNlY3VyaXR5QXBpKiB8IFsqKnNlY3VyaXR5X3NtdHBfZ2V0KipdKGRvY3MvYXBpcy90YWdzL1NlY3VyaXR5QXBpLm1kI3NlY3VyaXR5X3NtdHBfZ2V0KSB8ICoqZ2V0KiogL3NlY3VyaXR5L3NtdHAgfCBMaXN0IFNNVFAgQ3JlZGVudGlhbHMKKlNlY3VyaXR5QXBpKiB8IFsqKnNlY3VyaXR5X3NtdHBfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9TZWN1cml0eUFwaS5tZCNzZWN1cml0eV9zbXRwX3Bvc3QpIHwgKipwb3N0KiogL3NlY3VyaXR5L3NtdHAgfCBBZGQgU01UUCBDcmVkZW50aWFsCipTZWdtZW50c0FwaSogfCBbKipzZWdtZW50c19ieV9uYW1lX2RlbGV0ZSoqXShkb2NzL2FwaXMvdGFncy9TZWdtZW50c0FwaS5tZCNzZWdtZW50c19ieV9uYW1lX2RlbGV0ZSkgfCAqKmRlbGV0ZSoqIC9zZWdtZW50cy97bmFtZX0gfCBEZWxldGUgU2VnbWVudAoqU2VnbWVudHNBcGkqIHwgWyoqc2VnbWVudHNfYnlfbmFtZV9nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvU2VnbWVudHNBcGkubWQjc2VnbWVudHNfYnlfbmFtZV9nZXQpIHwgKipnZXQqKiAvc2VnbWVudHMve25hbWV9IHwgTG9hZCBTZWdtZW50CipTZWdtZW50c0FwaSogfCBbKipzZWdtZW50c19ieV9uYW1lX3B1dCoqXShkb2NzL2FwaXMvdGFncy9TZWdtZW50c0FwaS5tZCNzZWdtZW50c19ieV9uYW1lX3B1dCkgfCAqKnB1dCoqIC9zZWdtZW50cy97bmFtZX0gfCBVcGRhdGUgU2VnbWVudAoqU2VnbWVudHNBcGkqIHwgWyoqc2VnbWVudHNfZ2V0KipdKGRvY3MvYXBpcy90YWdzL1NlZ21lbnRzQXBpLm1kI3NlZ21lbnRzX2dldCkgfCAqKmdldCoqIC9zZWdtZW50cyB8IExvYWQgU2VnbWVudHMKKlNlZ21lbnRzQXBpKiB8IFsqKnNlZ21lbnRzX3Bvc3QqKl0oZG9jcy9hcGlzL3RhZ3MvU2VnbWVudHNBcGkubWQjc2VnbWVudHNfcG9zdCkgfCAqKnBvc3QqKiAvc2VnbWVudHMgfCBBZGQgU2VnbWVudAoqU3RhdGlzdGljc0FwaSogfCBbKipzdGF0aXN0aWNzX2NhbXBhaWduc19ieV9uYW1lX2dldCoqXShkb2NzL2FwaXMvdGFncy9TdGF0aXN0aWNzQXBpLm1kI3N0YXRpc3RpY3NfY2FtcGFpZ25zX2J5X25hbWVfZ2V0KSB8ICoqZ2V0KiogL3N0YXRpc3RpY3MvY2FtcGFpZ25zL3tuYW1lfSB8IExvYWQgQ2FtcGFpZ24gU3RhdHMKKlN0YXRpc3RpY3NBcGkqIHwgWyoqc3RhdGlzdGljc19jYW1wYWlnbnNfZ2V0KipdKGRvY3MvYXBpcy90YWdzL1N0YXRpc3RpY3NBcGkubWQjc3RhdGlzdGljc19jYW1wYWlnbnNfZ2V0KSB8ICoqZ2V0KiogL3N0YXRpc3RpY3MvY2FtcGFpZ25zIHwgTG9hZCBDYW1wYWlnbnMgU3RhdHMKKlN0YXRpc3RpY3NBcGkqIHwgWyoqc3RhdGlzdGljc19jaGFubmVsc19ieV9uYW1lX2dldCoqXShkb2NzL2FwaXMvdGFncy9TdGF0aXN0aWNzQXBpLm1kI3N0YXRpc3RpY3NfY2hhbm5lbHNfYnlfbmFtZV9nZXQpIHwgKipnZXQqKiAvc3RhdGlzdGljcy9jaGFubmVscy97bmFtZX0gfCBMb2FkIENoYW5uZWwgU3RhdHMKKlN0YXRpc3RpY3NBcGkqIHwgWyoqc3RhdGlzdGljc19jaGFubmVsc19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvU3RhdGlzdGljc0FwaS5tZCNzdGF0aXN0aWNzX2NoYW5uZWxzX2dldCkgfCAqKmdldCoqIC9zdGF0aXN0aWNzL2NoYW5uZWxzIHwgTG9hZCBDaGFubmVscyBTdGF0cwoqU3RhdGlzdGljc0FwaSogfCBbKipzdGF0aXN0aWNzX2dldCoqXShkb2NzL2FwaXMvdGFncy9TdGF0aXN0aWNzQXBpLm1kI3N0YXRpc3RpY3NfZ2V0KSB8ICoqZ2V0KiogL3N0YXRpc3RpY3MgfCBMb2FkIFN0YXRpc3RpY3MKKlN1YkFjY291bnRzQXBpKiB8IFsqKnN1YmFjY291bnRzX2J5X2VtYWlsX2NyZWRpdHNfcGF0Y2gqKl0oZG9jcy9hcGlzL3RhZ3MvU3ViQWNjb3VudHNBcGkubWQjc3ViYWNjb3VudHNfYnlfZW1haWxfY3JlZGl0c19wYXRjaCkgfCAqKnBhdGNoKiogL3N1YmFjY291bnRzL3tlbWFpbH0vY3JlZGl0cyB8IEFkZCwgU3VidHJhY3QgRW1haWwgQ3JlZGl0cwoqU3ViQWNjb3VudHNBcGkqIHwgWyoqc3ViYWNjb3VudHNfYnlfZW1haWxfZGVsZXRlKipdKGRvY3MvYXBpcy90YWdzL1N1YkFjY291bnRzQXBpLm1kI3N1YmFjY291bnRzX2J5X2VtYWlsX2RlbGV0ZSkgfCAqKmRlbGV0ZSoqIC9zdWJhY2NvdW50cy97ZW1haWx9IHwgRGVsZXRlIFN1YkFjY291bnQKKlN1YkFjY291bnRzQXBpKiB8IFsqKnN1YmFjY291bnRzX2J5X2VtYWlsX2dldCoqXShkb2NzL2FwaXMvdGFncy9TdWJBY2NvdW50c0FwaS5tZCNzdWJhY2NvdW50c19ieV9lbWFpbF9nZXQpIHwgKipnZXQqKiAvc3ViYWNjb3VudHMve2VtYWlsfSB8IExvYWQgU3ViQWNjb3VudAoqU3ViQWNjb3VudHNBcGkqIHwgWyoqc3ViYWNjb3VudHNfYnlfZW1haWxfc2V0dGluZ3NfZW1haWxfcHV0KipdKGRvY3MvYXBpcy90YWdzL1N1YkFjY291bnRzQXBpLm1kI3N1YmFjY291bnRzX2J5X2VtYWlsX3NldHRpbmdzX2VtYWlsX3B1dCkgfCAqKnB1dCoqIC9zdWJhY2NvdW50cy97ZW1haWx9L3NldHRpbmdzL2VtYWlsIHwgVXBkYXRlIFN1YkFjY291bnQgRW1haWwgU2V0dGluZ3MKKlN1YkFjY291bnRzQXBpKiB8IFsqKnN1YmFjY291bnRzX2dldCoqXShkb2NzL2FwaXMvdGFncy9TdWJBY2NvdW50c0FwaS5tZCNzdWJhY2NvdW50c19nZXQpIHwgKipnZXQqKiAvc3ViYWNjb3VudHMgfCBMb2FkIFN1YkFjY291bnRzCipTdWJBY2NvdW50c0FwaSogfCBbKipzdWJhY2NvdW50c19wb3N0KipdKGRvY3MvYXBpcy90YWdzL1N1YkFjY291bnRzQXBpLm1kI3N1YmFjY291bnRzX3Bvc3QpIHwgKipwb3N0KiogL3N1YmFjY291bnRzIHwgQWRkIFN1YkFjY291bnQKKlN1cHByZXNzaW9uc0FwaSogfCBbKipzdXBwcmVzc2lvbnNfYm91bmNlc19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvU3VwcHJlc3Npb25zQXBpLm1kI3N1cHByZXNzaW9uc19ib3VuY2VzX2dldCkgfCAqKmdldCoqIC9zdXBwcmVzc2lvbnMvYm91bmNlcyB8IEdldCBCb3VuY2UgTGlzdAoqU3VwcHJlc3Npb25zQXBpKiB8IFsqKnN1cHByZXNzaW9uc19ib3VuY2VzX2ltcG9ydF9wb3N0KipdKGRvY3MvYXBpcy90YWdzL1N1cHByZXNzaW9uc0FwaS5tZCNzdXBwcmVzc2lvbnNfYm91bmNlc19pbXBvcnRfcG9zdCkgfCAqKnBvc3QqKiAvc3VwcHJlc3Npb25zL2JvdW5jZXMvaW1wb3J0IHwgQWRkIEJvdW5jZXMgQXN5bmMKKlN1cHByZXNzaW9uc0FwaSogfCBbKipzdXBwcmVzc2lvbnNfYm91bmNlc19wb3N0KipdKGRvY3MvYXBpcy90YWdzL1N1cHByZXNzaW9uc0FwaS5tZCNzdXBwcmVzc2lvbnNfYm91bmNlc19wb3N0KSB8ICoqcG9zdCoqIC9zdXBwcmVzc2lvbnMvYm91bmNlcyB8IEFkZCBCb3VuY2VzCipTdXBwcmVzc2lvbnNBcGkqIHwgWyoqc3VwcHJlc3Npb25zX2J5X2VtYWlsX2RlbGV0ZSoqXShkb2NzL2FwaXMvdGFncy9TdXBwcmVzc2lvbnNBcGkubWQjc3VwcHJlc3Npb25zX2J5X2VtYWlsX2RlbGV0ZSkgfCAqKmRlbGV0ZSoqIC9zdXBwcmVzc2lvbnMve2VtYWlsfSB8IERlbGV0ZSBTdXBwcmVzc2lvbgoqU3VwcHJlc3Npb25zQXBpKiB8IFsqKnN1cHByZXNzaW9uc19ieV9lbWFpbF9nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvU3VwcHJlc3Npb25zQXBpLm1kI3N1cHByZXNzaW9uc19ieV9lbWFpbF9nZXQpIHwgKipnZXQqKiAvc3VwcHJlc3Npb25zL3tlbWFpbH0gfCBHZXQgU3VwcHJlc3Npb24KKlN1cHByZXNzaW9uc0FwaSogfCBbKipzdXBwcmVzc2lvbnNfY29tcGxhaW50c19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvU3VwcHJlc3Npb25zQXBpLm1kI3N1cHByZXNzaW9uc19jb21wbGFpbnRzX2dldCkgfCAqKmdldCoqIC9zdXBwcmVzc2lvbnMvY29tcGxhaW50cyB8IEdldCBDb21wbGFpbnRzIExpc3QKKlN1cHByZXNzaW9uc0FwaSogfCBbKipzdXBwcmVzc2lvbnNfY29tcGxhaW50c19pbXBvcnRfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9TdXBwcmVzc2lvbnNBcGkubWQjc3VwcHJlc3Npb25zX2NvbXBsYWludHNfaW1wb3J0X3Bvc3QpIHwgKipwb3N0KiogL3N1cHByZXNzaW9ucy9jb21wbGFpbnRzL2ltcG9ydCB8IEFkZCBDb21wbGFpbnRzIEFzeW5jCipTdXBwcmVzc2lvbnNBcGkqIHwgWyoqc3VwcHJlc3Npb25zX2NvbXBsYWludHNfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9TdXBwcmVzc2lvbnNBcGkubWQjc3VwcHJlc3Npb25zX2NvbXBsYWludHNfcG9zdCkgfCAqKnBvc3QqKiAvc3VwcHJlc3Npb25zL2NvbXBsYWludHMgfCBBZGQgQ29tcGxhaW50cwoqU3VwcHJlc3Npb25zQXBpKiB8IFsqKnN1cHByZXNzaW9uc19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvU3VwcHJlc3Npb25zQXBpLm1kI3N1cHByZXNzaW9uc19nZXQpIHwgKipnZXQqKiAvc3VwcHJlc3Npb25zIHwgR2V0IFN1cHByZXNzaW9ucwoqU3VwcHJlc3Npb25zQXBpKiB8IFsqKnN1cHByZXNzaW9uc191bnN1YnNjcmliZXNfZ2V0KipdKGRvY3MvYXBpcy90YWdzL1N1cHByZXNzaW9uc0FwaS5tZCNzdXBwcmVzc2lvbnNfdW5zdWJzY3JpYmVzX2dldCkgfCAqKmdldCoqIC9zdXBwcmVzc2lvbnMvdW5zdWJzY3JpYmVzIHwgR2V0IFVuc3Vic2NyaWJlcyBMaXN0CipTdXBwcmVzc2lvbnNBcGkqIHwgWyoqc3VwcHJlc3Npb25zX3Vuc3Vic2NyaWJlc19pbXBvcnRfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9TdXBwcmVzc2lvbnNBcGkubWQjc3VwcHJlc3Npb25zX3Vuc3Vic2NyaWJlc19pbXBvcnRfcG9zdCkgfCAqKnBvc3QqKiAvc3VwcHJlc3Npb25zL3Vuc3Vic2NyaWJlcy9pbXBvcnQgfCBBZGQgVW5zdWJzY3JpYmVzIEFzeW5jCipTdXBwcmVzc2lvbnNBcGkqIHwgWyoqc3VwcHJlc3Npb25zX3Vuc3Vic2NyaWJlc19wb3N0KipdKGRvY3MvYXBpcy90YWdzL1N1cHByZXNzaW9uc0FwaS5tZCNzdXBwcmVzc2lvbnNfdW5zdWJzY3JpYmVzX3Bvc3QpIHwgKipwb3N0KiogL3N1cHByZXNzaW9ucy91bnN1YnNjcmliZXMgfCBBZGQgVW5zdWJzY3JpYmVzCipUZW1wbGF0ZXNBcGkqIHwgWyoqdGVtcGxhdGVzX2J5X25hbWVfZGVsZXRlKipdKGRvY3MvYXBpcy90YWdzL1RlbXBsYXRlc0FwaS5tZCN0ZW1wbGF0ZXNfYnlfbmFtZV9kZWxldGUpIHwgKipkZWxldGUqKiAvdGVtcGxhdGVzL3tuYW1lfSB8IERlbGV0ZSBUZW1wbGF0ZQoqVGVtcGxhdGVzQXBpKiB8IFsqKnRlbXBsYXRlc19ieV9uYW1lX2dldCoqXShkb2NzL2FwaXMvdGFncy9UZW1wbGF0ZXNBcGkubWQjdGVtcGxhdGVzX2J5X25hbWVfZ2V0KSB8ICoqZ2V0KiogL3RlbXBsYXRlcy97bmFtZX0gfCBMb2FkIFRlbXBsYXRlCipUZW1wbGF0ZXNBcGkqIHwgWyoqdGVtcGxhdGVzX2J5X25hbWVfcHV0KipdKGRvY3MvYXBpcy90YWdzL1RlbXBsYXRlc0FwaS5tZCN0ZW1wbGF0ZXNfYnlfbmFtZV9wdXQpIHwgKipwdXQqKiAvdGVtcGxhdGVzL3tuYW1lfSB8IFVwZGF0ZSBUZW1wbGF0ZQoqVGVtcGxhdGVzQXBpKiB8IFsqKnRlbXBsYXRlc19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvVGVtcGxhdGVzQXBpLm1kI3RlbXBsYXRlc19nZXQpIHwgKipnZXQqKiAvdGVtcGxhdGVzIHwgTG9hZCBUZW1wbGF0ZXMKKlRlbXBsYXRlc0FwaSogfCBbKip0ZW1wbGF0ZXNfcG9zdCoqXShkb2NzL2FwaXMvdGFncy9UZW1wbGF0ZXNBcGkubWQjdGVtcGxhdGVzX3Bvc3QpIHwgKipwb3N0KiogL3RlbXBsYXRlcyB8IEFkZCBUZW1wbGF0ZQoqVmVyaWZpY2F0aW9uc0FwaSogfCBbKip2ZXJpZmljYXRpb25zX2J5X2VtYWlsX2RlbGV0ZSoqXShkb2NzL2FwaXMvdGFncy9WZXJpZmljYXRpb25zQXBpLm1kI3ZlcmlmaWNhdGlvbnNfYnlfZW1haWxfZGVsZXRlKSB8ICoqZGVsZXRlKiogL3ZlcmlmaWNhdGlvbnMve2VtYWlsfSB8IERlbGV0ZSBFbWFpbCBWZXJpZmljYXRpb24gUmVzdWx0CipWZXJpZmljYXRpb25zQXBpKiB8IFsqKnZlcmlmaWNhdGlvbnNfYnlfZW1haWxfZ2V0KipdKGRvY3MvYXBpcy90YWdzL1ZlcmlmaWNhdGlvbnNBcGkubWQjdmVyaWZpY2F0aW9uc19ieV9lbWFpbF9nZXQpIHwgKipnZXQqKiAvdmVyaWZpY2F0aW9ucy97ZW1haWx9IHwgR2V0IEVtYWlsIFZlcmlmaWNhdGlvbiBSZXN1bHQKKlZlcmlmaWNhdGlvbnNBcGkqIHwgWyoqdmVyaWZpY2F0aW9uc19ieV9lbWFpbF9wb3N0KipdKGRvY3MvYXBpcy90YWdzL1ZlcmlmaWNhdGlvbnNBcGkubWQjdmVyaWZpY2F0aW9uc19ieV9lbWFpbF9wb3N0KSB8ICoqcG9zdCoqIC92ZXJpZmljYXRpb25zL3tlbWFpbH0gfCBWZXJpZnkgRW1haWwKKlZlcmlmaWNhdGlvbnNBcGkqIHwgWyoqdmVyaWZpY2F0aW9uc19maWxlc19ieV9pZF9kZWxldGUqKl0oZG9jcy9hcGlzL3RhZ3MvVmVyaWZpY2F0aW9uc0FwaS5tZCN2ZXJpZmljYXRpb25zX2ZpbGVzX2J5X2lkX2RlbGV0ZSkgfCAqKmRlbGV0ZSoqIC92ZXJpZmljYXRpb25zL2ZpbGVzL3tpZH0gfCBEZWxldGUgRmlsZSBWZXJpZmljYXRpb24gUmVzdWx0CipWZXJpZmljYXRpb25zQXBpKiB8IFsqKnZlcmlmaWNhdGlvbnNfZmlsZXNfYnlfaWRfcmVzdWx0X2Rvd25sb2FkX2dldCoqXShkb2NzL2FwaXMvdGFncy9WZXJpZmljYXRpb25zQXBpLm1kI3ZlcmlmaWNhdGlvbnNfZmlsZXNfYnlfaWRfcmVzdWx0X2Rvd25sb2FkX2dldCkgfCAqKmdldCoqIC92ZXJpZmljYXRpb25zL2ZpbGVzL3tpZH0vcmVzdWx0L2Rvd25sb2FkIHwgRG93bmxvYWQgRmlsZSBWZXJpZmljYXRpb24gUmVzdWx0CipWZXJpZmljYXRpb25zQXBpKiB8IFsqKnZlcmlmaWNhdGlvbnNfZmlsZXNfYnlfaWRfcmVzdWx0X2dldCoqXShkb2NzL2FwaXMvdGFncy9WZXJpZmljYXRpb25zQXBpLm1kI3ZlcmlmaWNhdGlvbnNfZmlsZXNfYnlfaWRfcmVzdWx0X2dldCkgfCAqKmdldCoqIC92ZXJpZmljYXRpb25zL2ZpbGVzL3tpZH0vcmVzdWx0IHwgR2V0IERldGFpbGVkIEZpbGUgVmVyaWZpY2F0aW9uIFJlc3VsdAoqVmVyaWZpY2F0aW9uc0FwaSogfCBbKip2ZXJpZmljYXRpb25zX2ZpbGVzX2J5X2lkX3ZlcmlmaWNhdGlvbl9wb3N0KipdKGRvY3MvYXBpcy90YWdzL1ZlcmlmaWNhdGlvbnNBcGkubWQjdmVyaWZpY2F0aW9uc19maWxlc19ieV9pZF92ZXJpZmljYXRpb25fcG9zdCkgfCAqKnBvc3QqKiAvdmVyaWZpY2F0aW9ucy9maWxlcy97aWR9L3ZlcmlmaWNhdGlvbiB8IFN0YXJ0IHZlcmlmaWNhdGlvbgoqVmVyaWZpY2F0aW9uc0FwaSogfCBbKip2ZXJpZmljYXRpb25zX2ZpbGVzX3Bvc3QqKl0oZG9jcy9hcGlzL3RhZ3MvVmVyaWZpY2F0aW9uc0FwaS5tZCN2ZXJpZmljYXRpb25zX2ZpbGVzX3Bvc3QpIHwgKipwb3N0KiogL3ZlcmlmaWNhdGlvbnMvZmlsZXMgfCBVcGxvYWQgRmlsZSB3aXRoIEVtYWlscwoqVmVyaWZpY2F0aW9uc0FwaSogfCBbKip2ZXJpZmljYXRpb25zX2ZpbGVzX3Jlc3VsdF9nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvVmVyaWZpY2F0aW9uc0FwaS5tZCN2ZXJpZmljYXRpb25zX2ZpbGVzX3Jlc3VsdF9nZXQpIHwgKipnZXQqKiAvdmVyaWZpY2F0aW9ucy9maWxlcy9yZXN1bHQgfCBHZXQgRmlsZXMgVmVyaWZpY2F0aW9uIFJlc3VsdHMKKlZlcmlmaWNhdGlvbnNBcGkqIHwgWyoqdmVyaWZpY2F0aW9uc19nZXQqKl0oZG9jcy9hcGlzL3RhZ3MvVmVyaWZpY2F0aW9uc0FwaS5tZCN2ZXJpZmljYXRpb25zX2dldCkgfCAqKmdldCoqIC92ZXJpZmljYXRpb25zIHwgR2V0IEVtYWlscyBWZXJpZmljYXRpb24gUmVzdWx0cwoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgTW9kZWxzCgogLSBbQWNjZXNzTGV2ZWxdKGRvY3MvbW9kZWxzL0FjY2Vzc0xldmVsLm1kKQogLSBbQWNjb3VudFN0YXR1c0VudW1dKGRvY3MvbW9kZWxzL0FjY291bnRTdGF0dXNFbnVtLm1kKQogLSBbQXBpS2V5XShkb2NzL21vZGVscy9BcGlLZXkubWQpCiAtIFtBcGlLZXlQYXlsb2FkXShkb2NzL21vZGVscy9BcGlLZXlQYXlsb2FkLm1kKQogLSBbQm9keUNvbnRlbnRUeXBlXShkb2NzL21vZGVscy9Cb2R5Q29udGVudFR5cGUubWQpCiAtIFtCb2R5UGFydF0oZG9jcy9tb2RlbHMvQm9keVBhcnQubWQpCiAtIFtDYW1wYWlnbl0oZG9jcy9tb2RlbHMvQ2FtcGFpZ24ubWQpCiAtIFtDYW1wYWlnbk9wdGlvbnNdKGRvY3MvbW9kZWxzL0NhbXBhaWduT3B0aW9ucy5tZCkKIC0gW0NhbXBhaWduUmVjaXBpZW50XShkb2NzL21vZGVscy9DYW1wYWlnblJlY2lwaWVudC5tZCkKIC0gW0NhbXBhaWduU3RhdHVzXShkb2NzL21vZGVscy9DYW1wYWlnblN0YXR1cy5tZCkKIC0gW0NhbXBhaWduVGVtcGxhdGVdKGRvY3MvbW9kZWxzL0NhbXBhaWduVGVtcGxhdGUubWQpCiAtIFtDaGFubmVsTG9nU3RhdHVzU3VtbWFyeV0oZG9jcy9tb2RlbHMvQ2hhbm5lbExvZ1N0YXR1c1N1bW1hcnkubWQpCiAtIFtDb21wcmVzc2lvbkZvcm1hdF0oZG9jcy9tb2RlbHMvQ29tcHJlc3Npb25Gb3JtYXQubWQpCiAtIFtDb25zZW50RGF0YV0oZG9jcy9tb2RlbHMvQ29uc2VudERhdGEubWQpCiAtIFtDb25zZW50VHJhY2tpbmddKGRvY3MvbW9kZWxzL0NvbnNlbnRUcmFja2luZy5tZCkKIC0gW0NvbnRhY3RdKGRvY3MvbW9kZWxzL0NvbnRhY3QubWQpCiAtIFtDb250YWN0QWN0aXZpdHldKGRvY3MvbW9kZWxzL0NvbnRhY3RBY3Rpdml0eS5tZCkKIC0gW0NvbnRhY3RQYXlsb2FkXShkb2NzL21vZGVscy9Db250YWN0UGF5bG9hZC5tZCkKIC0gW0NvbnRhY3RTb3VyY2VdKGRvY3MvbW9kZWxzL0NvbnRhY3RTb3VyY2UubWQpCiAtIFtDb250YWN0U3RhdHVzXShkb2NzL21vZGVscy9Db250YWN0U3RhdHVzLm1kKQogLSBbQ29udGFjdFVwZGF0ZVBheWxvYWRdKGRvY3MvbW9kZWxzL0NvbnRhY3RVcGRhdGVQYXlsb2FkLm1kKQogLSBbQ29udGFjdHNMaXN0XShkb2NzL21vZGVscy9Db250YWN0c0xpc3QubWQpCiAtIFtEZWxpdmVyeU9wdGltaXphdGlvblR5cGVdKGRvY3MvbW9kZWxzL0RlbGl2ZXJ5T3B0aW1pemF0aW9uVHlwZS5tZCkKIC0gW0VtYWlsQ29udGVudF0oZG9jcy9tb2RlbHMvRW1haWxDb250ZW50Lm1kKQogLSBbRW1haWxEYXRhXShkb2NzL21vZGVscy9FbWFpbERhdGEubWQpCiAtIFtFbWFpbEpvYkZhaWxlZFN0YXR1c10oZG9jcy9tb2RlbHMvRW1haWxKb2JGYWlsZWRTdGF0dXMubWQpCiAtIFtFbWFpbEpvYlN0YXR1c10oZG9jcy9tb2RlbHMvRW1haWxKb2JTdGF0dXMubWQpCiAtIFtFbWFpbE1lc3NhZ2VEYXRhXShkb2NzL21vZGVscy9FbWFpbE1lc3NhZ2VEYXRhLm1kKQogLSBbRW1haWxQcmVkaWN0ZWRWYWxpZGF0aW9uU3RhdHVzXShkb2NzL21vZGVscy9FbWFpbFByZWRpY3RlZFZhbGlkYXRpb25TdGF0dXMubWQpCiAtIFtFbWFpbFJlY2lwaWVudF0oZG9jcy9tb2RlbHMvRW1haWxSZWNpcGllbnQubWQpCiAtIFtFbWFpbFNlbmRdKGRvY3MvbW9kZWxzL0VtYWlsU2VuZC5tZCkKIC0gW0VtYWlsU3RhdHVzXShkb2NzL21vZGVscy9FbWFpbFN0YXR1cy5tZCkKIC0gW0VtYWlsVHJhbnNhY3Rpb25hbE1lc3NhZ2VEYXRhXShkb2NzL21vZGVscy9FbWFpbFRyYW5zYWN0aW9uYWxNZXNzYWdlRGF0YS5tZCkKIC0gW0VtYWlsVmFsaWRhdGlvblJlc3VsdF0oZG9jcy9tb2RlbHMvRW1haWxWYWxpZGF0aW9uUmVzdWx0Lm1kKQogLSBbRW1haWxWYWxpZGF0aW9uU3RhdHVzXShkb2NzL21vZGVscy9FbWFpbFZhbGlkYXRpb25TdGF0dXMubWQpCiAtIFtFbWFpbFZpZXddKGRvY3MvbW9kZWxzL0VtYWlsVmlldy5tZCkKIC0gW0VtYWlsc1BheWxvYWRdKGRvY3MvbW9kZWxzL0VtYWlsc1BheWxvYWQubWQpCiAtIFtFbmNvZGluZ1R5cGVdKGRvY3MvbW9kZWxzL0VuY29kaW5nVHlwZS5tZCkKIC0gW0V2ZW50VHlwZV0oZG9jcy9tb2RlbHMvRXZlbnRUeXBlLm1kKQogLSBbRXZlbnRzT3JkZXJCeV0oZG9jcy9tb2RlbHMvRXZlbnRzT3JkZXJCeS5tZCkKIC0gW0V4cG9ydEZpbGVGb3JtYXRzXShkb2NzL21vZGVscy9FeHBvcnRGaWxlRm9ybWF0cy5tZCkKIC0gW0V4cG9ydExpbmtdKGRvY3MvbW9kZWxzL0V4cG9ydExpbmsubWQpCiAtIFtFeHBvcnRTdGF0dXNdKGRvY3MvbW9kZWxzL0V4cG9ydFN0YXR1cy5tZCkKIC0gW0ZpbGVJbmZvXShkb2NzL21vZGVscy9GaWxlSW5mby5tZCkKIC0gW0ZpbGVQYXlsb2FkXShkb2NzL21vZGVscy9GaWxlUGF5bG9hZC5tZCkKIC0gW0ZpbGVVcGxvYWRSZXN1bHRdKGRvY3MvbW9kZWxzL0ZpbGVVcGxvYWRSZXN1bHQubWQpCiAtIFtJbmJvdW5kUGF5bG9hZF0oZG9jcy9tb2RlbHMvSW5ib3VuZFBheWxvYWQubWQpCiAtIFtJbmJvdW5kUm91dGVdKGRvY3MvbW9kZWxzL0luYm91bmRSb3V0ZS5tZCkKIC0gW0luYm91bmRSb3V0ZUFjdGlvblR5cGVdKGRvY3MvbW9kZWxzL0luYm91bmRSb3V0ZUFjdGlvblR5cGUubWQpCiAtIFtJbmJvdW5kUm91dGVGaWx0ZXJUeXBlXShkb2NzL21vZGVscy9JbmJvdW5kUm91dGVGaWx0ZXJUeXBlLm1kKQogLSBbTGlzdFBheWxvYWRdKGRvY3MvbW9kZWxzL0xpc3RQYXlsb2FkLm1kKQogLSBbTGlzdFVwZGF0ZVBheWxvYWRdKGRvY3MvbW9kZWxzL0xpc3RVcGRhdGVQYXlsb2FkLm1kKQogLSBbTG9nSm9iU3RhdHVzXShkb2NzL21vZGVscy9Mb2dKb2JTdGF0dXMubWQpCiAtIFtMb2dTdGF0dXNTdW1tYXJ5XShkb2NzL21vZGVscy9Mb2dTdGF0dXNTdW1tYXJ5Lm1kKQogLSBbTWVyZ2VFbWFpbFBheWxvYWRdKGRvY3MvbW9kZWxzL01lcmdlRW1haWxQYXlsb2FkLm1kKQogLSBbTWVzc2FnZUF0dGFjaG1lbnRdKGRvY3MvbW9kZWxzL01lc3NhZ2VBdHRhY2htZW50Lm1kKQogLSBbTWVzc2FnZUNhdGVnb3J5XShkb2NzL21vZGVscy9NZXNzYWdlQ2F0ZWdvcnkubWQpCiAtIFtOZXdBcGlLZXldKGRvY3MvbW9kZWxzL05ld0FwaUtleS5tZCkKIC0gW05ld1NtdHBDcmVkZW50aWFsc10oZG9jcy9tb2RlbHMvTmV3U210cENyZWRlbnRpYWxzLm1kKQogLSBbT3B0aW9uc10oZG9jcy9tb2RlbHMvT3B0aW9ucy5tZCkKIC0gW1JlY2lwaWVudEV2ZW50XShkb2NzL21vZGVscy9SZWNpcGllbnRFdmVudC5tZCkKIC0gW1NlZ21lbnRdKGRvY3MvbW9kZWxzL1NlZ21lbnQubWQpCiAtIFtTZWdtZW50UGF5bG9hZF0oZG9jcy9tb2RlbHMvU2VnbWVudFBheWxvYWQubWQpCiAtIFtTbXRwQ3JlZGVudGlhbHNdKGRvY3MvbW9kZWxzL1NtdHBDcmVkZW50aWFscy5tZCkKIC0gW1NtdHBDcmVkZW50aWFsc1BheWxvYWRdKGRvY3MvbW9kZWxzL1NtdHBDcmVkZW50aWFsc1BheWxvYWQubWQpCiAtIFtTb3J0T3JkZXJJdGVtXShkb2NzL21vZGVscy9Tb3J0T3JkZXJJdGVtLm1kKQogLSBbU3BsaXRPcHRpbWl6YXRpb25UeXBlXShkb2NzL21vZGVscy9TcGxpdE9wdGltaXphdGlvblR5cGUubWQpCiAtIFtTcGxpdE9wdGlvbnNdKGRvY3MvbW9kZWxzL1NwbGl0T3B0aW9ucy5tZCkKIC0gW1N1YkFjY291bnRJbmZvXShkb2NzL21vZGVscy9TdWJBY2NvdW50SW5mby5tZCkKIC0gW1N1YmFjY291bnRFbWFpbENyZWRpdHNQYXlsb2FkXShkb2NzL21vZGVscy9TdWJhY2NvdW50RW1haWxDcmVkaXRzUGF5bG9hZC5tZCkKIC0gW1N1YmFjY291bnRFbWFpbFNldHRpbmdzXShkb2NzL21vZGVscy9TdWJhY2NvdW50RW1haWxTZXR0aW5ncy5tZCkKIC0gW1N1YmFjY291bnRFbWFpbFNldHRpbmdzUGF5bG9hZF0oZG9jcy9tb2RlbHMvU3ViYWNjb3VudEVtYWlsU2V0dGluZ3NQYXlsb2FkLm1kKQogLSBbU3ViYWNjb3VudFBheWxvYWRdKGRvY3MvbW9kZWxzL1N1YmFjY291bnRQYXlsb2FkLm1kKQogLSBbU3ViYWNjb3VudFNldHRpbmdzSW5mb10oZG9jcy9tb2RlbHMvU3ViYWNjb3VudFNldHRpbmdzSW5mby5tZCkKIC0gW1N1YmFjY291bnRTZXR0aW5nc0luZm9QYXlsb2FkXShkb2NzL21vZGVscy9TdWJhY2NvdW50U2V0dGluZ3NJbmZvUGF5bG9hZC5tZCkKIC0gW1N1cHByZXNzaW9uXShkb2NzL21vZGVscy9TdXBwcmVzc2lvbi5tZCkKIC0gW1RlbXBsYXRlXShkb2NzL21vZGVscy9UZW1wbGF0ZS5tZCkKIC0gW1RlbXBsYXRlUGF5bG9hZF0oZG9jcy9tb2RlbHMvVGVtcGxhdGVQYXlsb2FkLm1kKQogLSBbVGVtcGxhdGVTY29wZV0oZG9jcy9tb2RlbHMvVGVtcGxhdGVTY29wZS5tZCkKIC0gW1RlbXBsYXRlVHlwZV0oZG9jcy9tb2RlbHMvVGVtcGxhdGVUeXBlLm1kKQogLSBbVHJhbnNhY3Rpb25hbFJlY2lwaWVudF0oZG9jcy9tb2RlbHMvVHJhbnNhY3Rpb25hbFJlY2lwaWVudC5tZCkKIC0gW1V0bV0oZG9jcy9tb2RlbHMvVXRtLm1kKQogLSBbVmVyaWZpY2F0aW9uRmlsZVJlc3VsdF0oZG9jcy9tb2RlbHMvVmVyaWZpY2F0aW9uRmlsZVJlc3VsdC5tZCkKIC0gW1ZlcmlmaWNhdGlvbkZpbGVSZXN1bHREZXRhaWxzXShkb2NzL21vZGVscy9WZXJpZmljYXRpb25GaWxlUmVzdWx0RGV0YWlscy5tZCkKIC0gW1ZlcmlmaWNhdGlvblN0YXR1c10oZG9jcy9tb2RlbHMvVmVyaWZpY2F0aW9uU3RhdHVzLm1kKQoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgQXV0aG9yaXphdGlvbgoKIEF1dGhlbnRpY2F0aW9uIHNjaGVtZXMgZGVmaW5lZCBmb3IgdGhlIEFQSToKIyMgYXBpa2V5CgotICoqVHlwZSoqOiBBUEkga2V5Ci0gKipBUEkga2V5IHBhcmFtZXRlciBuYW1lKio6IFgtRWxhc3RpY0VtYWlsLUFwaUtleQotICoqTG9jYXRpb24qKjogSFRUUCBoZWFkZXIKCgojIyBBdXRob3IKCnN1cHBvcnRAZWxhc3RpY2VtYWlsLmNvbQpzdXBwb3J0QGVsYXN0aWNlbWFpbC5jb20Kc3VwcG9ydEBlbGFzdGljZW1haWwuY29tCnN1cHBvcnRAZWxhc3RpY2VtYWlsLmNvbQpzdXBwb3J0QGVsYXN0aWNlbWFpbC5jb20Kc3VwcG9ydEBlbGFzdGljZW1haWwuY29tCnN1cHBvcnRAZWxhc3RpY2VtYWlsLmNvbQpzdXBwb3J0QGVsYXN0aWNlbWFpbC5jb20Kc3VwcG9ydEBlbGFzdGljZW1haWwuY29tCnN1cHBvcnRAZWxhc3RpY2VtYWlsLmNvbQpzdXBwb3J0QGVsYXN0aWNlbWFpbC5jb20Kc3VwcG9ydEBlbGFzdGljZW1haWwuY29tCnN1cHBvcnRAZWxhc3RpY2VtYWlsLmNvbQpzdXBwb3J0QGVsYXN0aWNlbWFpbC5jb20KCiMjIE5vdGVzIGZvciBMYXJnZSBPcGVuQVBJIGRvY3VtZW50cwpJZiB0aGUgT3BlbkFQSSBkb2N1bWVudCBpcyBsYXJnZSwgaW1wb3J0cyBpbiBFbGFzdGljRW1haWwuYXBpcyBhbmQgRWxhc3RpY0VtYWlsLm1vZGVscyBtYXkgZmFpbCB3aXRoIGEKUmVjdXJzaW9uRXJyb3IgaW5kaWNhdGluZyB0aGUgbWF4aW11bSByZWN1cnNpb24gbGltaXQgaGFzIGJlZW4gZXhjZWVkZWQuIEluIHRoYXQgY2FzZSwgdGhlcmUgYXJlIGEgY291cGxlIG9mIHNvbHV0aW9uczoKClNvbHV0aW9uIDE6ClVzZSBzcGVjaWZpYyBpbXBvcnRzIGZvciBhcGlzIGFuZCBtb2RlbHMgbGlrZToKLSBgZnJvbSBFbGFzdGljRW1haWwuYXBpcy5kZWZhdWx0X2FwaSBpbXBvcnQgRGVmYXVsdEFwaWAKLSBgZnJvbSBFbGFzdGljRW1haWwubW9kZWwucGV0IGltcG9ydCBQZXRgCgpTb2x1dGlvbiAxOgpCZWZvcmUgaW1wb3J0aW5nIHRoZSBwYWNrYWdlLCBhZGp1c3QgdGhlIG1heGltdW0gcmVjdXJzaW9uIGxpbWl0IGFzIHNob3duIGJlbG93OgpgYGAKaW1wb3J0IHN5cwpzeXMuc2V0cmVjdXJzaW9ubGltaXQoMTUwMCkKaW1wb3J0IEVsYXN0aWNFbWFpbApmcm9tIEVsYXN0aWNFbWFpbC5hcGlzIGltcG9ydCAqCmZyb20gRWxhc3RpY0VtYWlsLm1vZGVscyBpbXBvcnQgKgpgYGAK readmeEtag: '"37bb8d011e4bf5212faeeb2fe1101cff30cd503b"' readmeLastModified: Wed, 03 Jul 2024 10:44:02 GMT repositoryId: 366327599 description: ElasticEmail - the Python library for the Elastic Email REST API created: '2021-05-11T09:30:41Z' updated: '2024-07-03T10:44:16Z' language: Python archived: false stars: 10 watchers: 1 forks: 3 owner: ElasticEmail logo: https://avatars.githubusercontent.com/u/26925596?v=4 repoEtag: '"d42ef82b13f63d9e5c61c95e2e5400326e0e84f0f7169490782f292410c5d743"' repoLastModified: Wed, 03 Jul 2024 10:44:16 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/openmobilityfoundation/mds-openapi v3: true id: 56fb933212775b9d92e503c946ed7a88 repositoryMetadata: base64Readme: >- IyBNb2JpbGl0eSBEYXRhIFNwZWNpZmljYXRpb24gT3BlbkFQSQoKVGhlIFtNb2JpbGl0eSBEYXRhIFNwZWNpZmljYXRpb24gKE1EUyldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVubW9iaWxpdHlmb3VuZGF0aW9uL21vYmlsaXR5LWRhdGEtc3BlY2lmaWNhdGlvbiksIGEgcHJvamVjdCBvZiB0aGUgT3BlbiBNb2JpbGl0eSBGb3VuZGF0aW9uIChPTUYpLCBpcyBhIGRhdGEgc3RhbmRhcmQgdG8gZW5hYmxlIHJpZ2h0LW9mLXdheSByZWd1bGF0aW9uIGFuZCB0d28td2F5IGNvbW11bmljYXRpb24gYmV0d2VlbiBtb2JpbGl0eSBjb21wYW5pZXMgYW5kIGxvY2FsIGdvdmVybm1lbnRzLgoKVGhpcyBpcyB0aGUgT3BlbkFQSSBkZXNjcmlwdGlvbiBmb3IgTURTIGRhdGEgZmVlZHMsIG1hbmFnZWQgYnkgdGhlIFtPcGVuIE1vYmlsaXR5IEZvdW5kYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVubW9iaWxpdHlmb3VuZGF0aW9uKS4KCk9ubGluZSBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBvbiBbU3RvcGxpZ2h0XShodHRwczovL29wZW5tb2JpbGl0eWZuZC5zdG9wbGlnaHQuaW8vZG9jcy9tZHMtb3BlbmFwaSkuCgpNRFMgdmVyc2lvbnMgYXJlIG9yZ2FuaXplZCBieSBicmFuY2hlcyBzdGFydGluZyB3aXRoIGEgYnJhbmNoIGZvciBgdjIuMGAuCgojIyBQeXRob24gcHJvamVjdAoKQSBzbWFsbCBQeXRob24gcHJvamVjdCBkZWZpbmVkIGluIFtgcHlwcm9qZWN0LnRvbWxgXSguL3B5cHJvamVjdC50b21sKSBzdXBwb3J0cyB0aGUgc2NoZW1hIGRldmVsb3BtZW50IHByb2Nlc3MuCgpgYGBiYXNoCiMgaW5zdGFsbCB0aGUgcHJvamVjdCBhbmQgaXRzIGRlcGVuZGVuY2llcwpwaXAgaW5zdGFsbCAtZSAuCmBgYAoKIyMjIFNjaGVtYSB2YWxpZGF0aW9uCgpUZXN0cyB3cml0dGVuIGluIFtgcHl0ZXN0YF0oaHR0cHM6Ly9weXRlc3Qub3JnKSBjaGVjayB2YXJpb3VzIGNvbXBvbmVudHMgb2YgdGhlIHNjaGVtYXMuIFRoZXNlIHRlc3RzIGNhbiBiZSBydW4gbG9jYWxseSwgYW5kCmFsc28gcnVuIGluIEdpdEh1YiBBY3Rpb25zIG9uIGNvbW1pdHMgdG8gdGhpcyByZXBvc2l0b3J5LgoKYGBgYmFzaAojIHJ1biB0aGUgdGVzdHMgd2l0aCBweXRlc3QgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcmVwbwpweXRlc3QKYGBgCgojIyMgTm90ZWJvb2tzCgpbSnVweXRlciBOb3RlYm9va3NdKGh0dHBzOi8vanVweXRlci5vcmcvKSB0byBoZWxwIHdpdGggb25lLXRpbWUgZGF0YSBjbGVhbnVwcyBhbmQgaXNzdWUgY2hlY2tpbmcuCgpgYGBiYXNoCiMgaW5zdGFsbCB0aGUgJ25vdGVib29rcycgZXh0cmFzCnBpcCBpbnN0YWxsIC1lIC5bbm90ZWJvb2tzXQpgYGAKCiMjIExpY2Vuc2UKClRoZSBNRFMgT3BlbkFQSSwgbGlrZSBNRFMgaXRzZWxmLCBpcyBsaWNlbnNlZCB1bmRlciBbQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiA0LjAgSW50ZXJuYXRpb25hbCBQdWJsaWMgTGljZW5zZV0oLi4vTElDRU5TRSkK readmeEtag: '"73083afd08f874b78c4740e3fb1de2e4ee7ce1bc"' readmeLastModified: Tue, 23 May 2023 13:07:06 GMT repositoryId: 597157509 description: >- OpenAPI description for MDS data feeds, managed by the Open Mobility Foundation. created: '2023-02-03T18:55:31Z' updated: '2024-08-06T14:59:46Z' language: Python archived: false stars: 10 watchers: 2 forks: 2 owner: openmobilityfoundation logo: https://avatars.githubusercontent.com/u/52187191?v=4 license: NOASSERTION repoEtag: '"0f62f33e1ea5090079c2e2368ed6259d2d97e7f40c93d32f4e941e77ba52c355"' repoLastModified: Tue, 06 Aug 2024 14:59:46 GMT category: - Parsers - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/karatelabs/intellij-plugin v3: true id: 35c019960e3f4a93899b4502d156c101 repositoryMetadata: base64Readme: >- PHRhYmxlPgogICAgPHRyPgogICAgICAgIDx0ZD4KICAgICAgICAgICAgPGJyLz48YSBocmVmPSJodHRwczovL2thcmF0ZWxhYnMuaW8iPjxpbWcgc3JjPSJyZXNvdXJjZXMva2FyYXRlLWxvZ28uc3ZnIiBoZWlnaHQ9IjQ1cHgiLz48L2E+CiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICAgIDxoMj5JbnRlbGxpSiBQbHVnaW48L2gyPiAgICAgICAgICAgCiAgICAgICAgPC90ZD4KICAgICAgICA8dGg+CiAgICAgICAgICAgIDxoMz48YSBocmVmPSJodHRwczovL3lvdXR1LmJlL2hrSFFrcmxIOXhRP3NpPWMxNERKZkk2WV9LOVE0MTQiPjp0djogPGJyLz4mbmJzcDsmbmJzcDtWaWRlbyZuYnNwOyZuYnNwOzwvYT48L2gzPgogICAgICAgIDwvdGg+ICAgICAgICAKICAgICAgICA8dGg+CiAgICAgICAgICAgIDxoMz48YSBocmVmPSJodHRwczovL3d3dy5rYXJhdGVsYWJzLmlvL3ByaWNpbmciPjpoZWF2eV9kb2xsYXJfc2lnbjogPGJyLz4mbmJzcDsmbmJzcDtQcmljaW5nJm5ic3A7Jm5ic3A7PC9hPjwvaDM+CiAgICAgICAgPC90aD4gICAgICAgCiAgICAgICAgPHRoPgogICAgICAgICAgICA8aDM+PGEgaHJlZj0iaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzE5MjMyLWthcmF0ZSI+PGJyLz46emFwOiA8YnIvPiZuYnNwO01hcmtldCZuYnNwOzxici8+cGxhY2U8L2E+PC9oMz4KICAgICAgICA8L3RoPgogICAgICAgIDx0aD4KICAgICAgICAgICAgPGgzPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rYXJhdGVsYWJzL2ludGVsbGlqLXBsdWdpbi9pc3N1ZXMiPjpvY3RvY2F0OiA8YnIvPiZuYnNwOyZuYnNwO0lzc3VlcyZuYnNwOyZuYnNwOzwvYT48L2gzPgogICAgICAgIDwvdGg+ICAgICAgICAKICAgIDwvdHI+CjwvdGFibGU+Cgo8dGFibGU+CiAgICA8dHI+CiAgICAgICAgPHRoPlBMVVM8L3RoPgogICAgICAgIDx0aD5QUk88L3RoPgogICAgICAgIDx0aD5VTFRJTUFURTwvdGg+CiAgICAgICAgPHRoPkVudGVycHJpc2U8L3RoPgogICAgPC90cj4gICAgCiAgICA8dHI+CiAgICAgICAgPHRkPiAgICAgICAgICAgIAogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+U3ludGF4IGNvbG9yaW5nPC9saT4gICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8bGk+UnVuIEZlYXR1cmUgZnJvbSBlZGl0b3I8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNydW4tZnJvbS1lZGl0b3IiPlJ1biBzaW5nbGUgU2NlbmFyaW8gLyBFeGFtcGxlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3J1bi1jb25maWd1cmF0aW9ucyI+UnVuIENvbmZpZ3VyYXRpb25zPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0cnVjdHVyZS12aWV3Ij5TdHJ1Y3R1cmUgdmlldzwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb2RlLWZvcm1hdHRpbmciPkNvZGUgZm9ybWF0dGluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0ZXN0LXJlc3VsdHMiPkluLUlERSB0ZXN0IHJlc3VsdHM8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgICAgPGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KGluY2x1ZGVzIGFsbCBpbiBQTFVTKTwvaT4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNhdXRvLWNvbXBsZXRlIj5BdXRvIGNvbXBsZXRlPC9hPjwvbGk+ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb2RlLWZvbGRpbmciPkNvZGUgZm9sZGluZzwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNyZWZlcmVuY2VzIj5KdW1wIHRvIHJlZmVyZW5jZXM8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjanNvbi1yZS1mb3JtYXR0aW5nIj5KU09OIHJlLWZvcm1hdHRpbmc8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjcnVuLWZvbGRlciI+UnVuIGFsbCB0ZXN0cyBpbiBmb2xkZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT5SdW4gS2FyYXRlIExhYnMgYWRkLW9ucyAoZS5nLiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va2FyYXRlbGFicy9rYXJhdGUtYWRkb25zL2Jsb2IvbWFpbi9rYXJhdGUta2Fma2EvUkVBRE1FLm1kIj5LYWZrYTwvYT4pPC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjZGVidWciPkRlYnVnIEthcmF0ZSB0ZXN0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+RGVidWcgSmF2YSAmYW1wOyBLYXJhdGUgaW4gc2FtZSBzZXNzaW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT5KYXZhIGRlYnVnIHNlc3Npb24gc3RvcHMgYXQgS2FyYXRlIGJyZWFrcG9pbnRzPC9saT4KICAgICAgICAgICAgICAgIDxsaT5jVVJMIGltcG9ydCAqPC9saT4KICAgICAgICAgICAgICAgIDxsaT5PcGVuQVBJIHN1cHBvcnQgKjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxpPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1sqXSBjb21pbmcgc29vbjwvaT4gICAgICAgICAgICAKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgICAgPGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KGluY2x1ZGVzIGFsbCBpbiBQUk8pPC9pPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI29wZW5hcGktaW1wb3J0Ij5JbXBvcnQgT3BlbkFQSSAob3IgU3dhZ2dlcikgZGVmaW5pdGlvbnM8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjY3JlYXRlLXRlc3RzLWZyb20tc3BlYyI+Q29udmVydCBBUEkgc3BlY2lmaWNhdGlvbnMgdG8gS2FyYXRlIHRlc3RzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3NwZWMtcGF5bG9hZC1jaG9vc2VyIj5DaG9vc2UgcGF5bG9hZCBzdWItc2V0cyBmcm9tIHNwZWMgc2NoZW1hczwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNleHBsb3JlLWFwaS1mcm9tLXNwZWMiPkV4cGxvcmUgQVBJIGRpcmVjdGx5IGZyb20gT3BlbkFQSSBvciBTd2FnZ2VyIHNwZWNzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NyZWF0ZS1tb2NrLWZyb20tc3BlYyI+Q29udmVydCBBUEkgc3BlY2lmaWNhdGlvbnMgdG8gS2FyYXRlIG1vY2tzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3NwZWMtaW1wYWN0LWFuYWx5c2lzIj5JbXBhY3QgYW5hbHlpcyBvZiBBUEkgY2hhbmdlczwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+UHJpb3JpdHkgc3VwcG9ydDwvbGk+CiAgICAgICAgICAgICAgICA8bGk+U1NPIC8gU0FNTCBzdXBwb3J0PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjb2ZmbGluZS1saWNlbnNlIj5PZmZsaW5lIGxpY2Vuc2U8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5rYXJhdGVsYWJzLmlvL2NvbnRhY3QtdXMiPkNvbnRhY3QgdXM8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4gICAgICAgIAogICAgICAgIDwvdGQ+ICAgICAgICAKICAgIDwvdHI+CjwvdGFibGU+CgpUaGlzIHBsdWdpbiB3b3JrcyBmdWxseS1mZWF0dXJlZCBvbiBbSW50ZWxsaUogQ29tbXVuaXR5IEVkaXRpb25dKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vcHJvZHVjdHMvY29tcGFyZS8/cHJvZHVjdD1pZGVhJnByb2R1Y3Q9aWRlYS1jZSkuIEpTIHN1cHBvcnQgaXMgYnVpbHQtaW4gYW5kICoqZG9lcyBub3QqKiByZXF1aXJlIHlvdSB0byBiZSBydW5uaW5nIFtJbnRlbGxpSiBJREVBIFVsdGltYXRlXShodHRwczovL3d3dy5qZXRicmFpbnMuY29tL2lkZWEvZmVhdHVyZXMvKS4KCj4gQnkgdXNpbmcgdGhpcyBwbHVnaW4sIHlvdSBhZ3JlZSB0byB0aGUgS2FyYXRlIExhYnMgW0VVTEFdKGh0dHBzOi8va2FyYXRlbGFicy5pby9ldWxhKS4gRGF0YSBvbiBhIGZldyB1c2VyIGFjdGlvbnMgaXMgY29sbGVjdGVkIGFuZCBzdWJqZWN0IHRvIG91ciBbUHJpdmFjeSBQb2xpY3ldKGh0dHBzOi8va2FyYXRlbGFicy5pby9wcml2YWN5LXBvbGljeSkuIEhUTUwgcmVwb3J0cyBnZW5lcmF0ZWQgYnkgdGhlIEthcmF0ZSBvcGVuLXNvdXJjZSBsaWJyYXJ5IGhhcyBbYWRkaXRpb25hbCBhbmFseXRpY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJhdGVsYWJzL2thcmF0ZS9ibG9iL21hc3Rlci9rYXJhdGUtY29yZS9zcmMvdGVzdC9yZXNvdXJjZXMvYW5hbHl0aWNzLm1kKS4KCiMjIExpY2Vuc2UgQWN0aXZhdGlvbgpMaWNlbnNlIGFjdGl2YXRpb24gYW5kIHN0YXR1cyBpcyB1bmlmaWVkIHdpdGhpbiB0aGUgSW50ZWxsaUogc2V0dGluZ3MgVUkuIEdvIHRvIGBTZXR0aW5ncyAtPiBMYW5ndWFnZXMgJiBGcmFtZXdvcmtzIC0+IEthcmF0ZWAgYW5kIHlvdSBzaG91bGQgc2VlIHNvbWV0aGluZyBsaWtlIHRoaXMuCgo8aW1nIHNyYz0icmVzb3VyY2VzL3NpZ24taW4uanBnIiBoZWlnaHQ9IjMwMHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpDbGljayB0aGUgYFNpZ24gSW5gIGxpbmsgYW5kIHlvdSB3aWxsIGJlIHRha2VuIHRocm91Z2ggdGhlIHVzdWFsIGZsb3cgbGlua2VkIHRvIHlvdXIgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIGRldGFpbHMuCgpPbmNlIHlvdSBoYXZlIGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5LCBjb3B5IHRoZSBzZXNzaW9uIElEIGZyb20gdGhlIGJyb3dzZXIgYW5kIHBhc3RlIGl0IGludG8gdGhlIGlucHV0LWJveCBub3cgc2hvd2luZyBpbiB0aGUgSW50ZWxsaUogc2V0dGluZ3Mgdmlldy4gQ2xpY2sgYEFwcGx5YCB0byBjb21wbGV0ZSB0aGUgc2lnbi1pbi4KCk9uY2Ugc2lnbmVkLWluIHlvdSBjYW4gd29yayBvZmZsaW5lLiBZb3UgY2FuIGFsd2F5cyBvcGVuIHRoaXMgc2V0dGluZ3MgcGFnZSB0byBzZWUgaG93IG1hbnkgZGF5cyBhcmUgbGVmdCBpbiB5b3VyIHNlc3Npb24uCgpJZiB5b3UgbmVlZCBhbiBbb2ZmbGluZSBsaWNlbnNlXSgjb2ZmbGluZS1saWNlbnNlKSBiZWNhdXNlIG9mIHN0cmljdCBzZWN1cml0eSBvciBzaW1pbGFyIHJlc3RyaWN0aW9ucyBpbiB5b3VyIGVudmlyb25tZW50LCBwbGVhc2UgW2NvbnRhY3QgdXNdKGh0dHBzOi8vd3d3LmthcmF0ZWxhYnMuaW8vY29udGFjdC11cykuIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBvcHRpb24gaXMgYXZhaWxhYmxlIG9ubHkgZm9yIGVudGVycHJpc2UgY3VzdG9tZXJzIG9mIEthcmF0ZSBMYWJzLgoKIyMgUnVuIEZyb20gRWRpdG9yCllvdSBjYW4gcmlnaHQtY2xpY2sgYSBgKi5mZWF0dXJlYCBmaWxlIGluIHRoZSBleHBsb3JlciBvciB3aXRoaW4gdGhlIGVkaXRvciBhbmQgcnVuIGl0LiBBbiBJbnRlbGxpSiBbcnVuLWNvbmZpZ3VyYXRpb25dKCNydW4tY29uZmlndXJhdGlvbnMpIHdpbGwgYmUgY3JlYXRlZCB3aGljaCB5b3UgY2FuIGN1c3RvbWl6ZSBsYXRlciBpZiBuZWVkZWQuCgpZb3UgY2FuIGFsc28gcnVuIGEgc2luZ2xlIGBTY2VuYXJpb2AgYnkgcmlnaHQtY2xpY2tpbmcgb24gaXQgb3IgdXNpbmcgdGhlICJndXR0ZXIiIGljb24uIFJpZ2h0LWNsaWNraW5nIG9uIHRoZSBndXR0ZXItaWNvbiBhbHNvIGJyaW5ncyB1cCB0aGUgb3B0aW9uIHRvIGRlYnVnIGluc3RlYWQgb2YgcnVuLgoKPGltZyBzcmM9InJlc291cmNlcy9ydW4tc2NlbmFyaW8uanBnIiBoZWlnaHQ9IjMwMHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpZb3UgY2FuIGV2ZW4gcnVuIGEgc2luZ2xlICJleGFtcGxlIiBpbiBhIGBTY2VuYXJpbyBPdXRsaW5lYCBieSByaWdodC1jbGlja2luZyBvbiBvbmUgb2YgdGhlIGRhdGEtcm93cyB3aXRoaW4gYW4gYEV4YW1wbGVzYCB0YWJsZS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvcnVuLWV4YW1wbGUuanBnIiBoZWlnaHQ9IjI1MHB4Ii8+CgojIyBUcm91Ymxlc2hvb3RpbmcKCklmIHlvdSBkb24ndCBzZWUgdGhlIG9wdGlvbnMgdG8gcnVuIGEgdGVzdCAoZGVzY3JpYmVkIGFib3ZlKSBtYWtlIHN1cmUgdGhhdCB0aGUgS2FyYXRlIGljb24gc2hvd3MgZm9yIG9wZW4gYCouZmVhdHVyZWAgZmlsZXMgaW4gdGhlIGVkaXRvciBhbmQgaW4gdGhlIHByb2plY3QtZXhwbG9yZXIuIElmIHRoZSAiQ3VjdW1iZXIgZm9yIEphdmEiIHBsdWdpbiBpcyBpbnN0YWxsZWQsIGl0IGNhbiBjb25mbGljdCB3aXRoIEthcmF0ZS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvZmlsZS1pY29uLmpwZyIgaGVpZ2h0PSIyNTBweCIvPgoKPHA+Jm5ic3A7PC9wPgoKVG8gbWFrZSBzdXJlIHRoYXQgdGhlIEthcmF0ZSBwbHVnaW4gY2FuIHJ1biBgKi5mZWF0dXJlYCBmaWxlcywgeW91IGNhbiBnbyB0byBgU2V0dGluZ3MgLT4gRWRpdG9yIC0+IEZpbGUgVHlwZXMgLT4gUmVjb2duaXplZCBGaWxlIFR5cGVzYC4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvZmlsZS10eXBlcy5qcGciIGhlaWdodD0iMjUwcHgiLz4KCklmIHlvdSByZWFsbHkgbmVlZCB0byBtaXggQ3VjdW1iZXIgdGVzdHMgYW5kIEthcmF0ZSB0ZXN0cyBpbiB0aGUgc2FtZSB3b3Jrc3BhY2UsIHJlZmVyIHRvIFt0aGlzIHBvc3Qgb24gU3RhY2sgT3ZlcmZsb3ddKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83NjQ2MjI3Ny8xNDM0NzUpLgoKIyMgUnVuIENvbmZpZ3VyYXRpb25zCkludGVsbGlKIFtydW4tY29uZmlndXJhdGlvbnNdKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vaGVscC9pZGVhL3J1bi1kZWJ1Zy1jb25maWd1cmF0aW9uLmh0bWwpIGFyZSB1c2VmdWwgZm9yIGJlaW5nIGFibGUgdG8gcmUtcnVuIHRlc3RzIHdpdGggc3BlY2lmaWMgcGFyYW1ldGVycy4gQWxsIHRoZSB0eXBpY2FsIEthcmF0ZSBvcHRpb25zIHlvdSBuZWVkIGFyZSBzdXBwb3J0ZWQsIGluY2x1ZGluZyBjb250cm9sIG92ZXIgdGhlIEpWTSBwYXJhbWV0ZXJzIGFuZCB3b3JraW5nIGRpcmVjdG9yeS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvcnVuLWNvbmZpZy5qcGciIGhlaWdodD0iNDUwcHgiLz4KCiMjIFN0cnVjdHVyZSBWaWV3ClRoZSBJbnRlbGxpSiBbc3RydWN0dXJlIHZpZXddKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vaGVscC9pZGVhL3ZpZXdpbmctc3RydWN0dXJlLW9mLWEtc291cmNlLWZpbGUuaHRtbCkgaXMgc3VwcG9ydGVkIHNvIHlvdSBjYW4gbmF2aWdhdGUgbGFyZ2UgZmlsZXMgd2l0aCBlYXNlLgoKPGltZyBzcmM9InJlc291cmNlcy9zdHJ1Y3R1cmUuanBnIiBoZWlnaHQ9IjQ1MHB4Ii8+CgojIyBDb2RlIEZvcm1hdHRpbmcKSW50ZWxsaWogW2NvZGUtZm9ybWF0dGluZ10oaHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS9oZWxwL2lkZWEvcmVmb3JtYXQtYW5kLXJlYXJyYW5nZS1jb2RlLmh0bWwpIHNob3J0Y3V0cyB3b3JrIGFuZCBldmVuIEpTT04gd2l0aGluIGRvYy1zdHJpbmcgYmxvY2tzIHdpbGwgYmUgZm9ybWF0dGVkIGNvcnJlY3RseS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvcmVmb3JtYXQuanBnIiBoZWlnaHQ9IjI1MHB4Ii8+CgojIyBUZXN0IFJlc3VsdHMKVGVzdCByZXN1bHRzIGludGVncmF0ZSBpbnRvIHRoZSBJbnRlbGxpSiB0ZXN0LXJlc3VsdHMgdmlldy4gVGhlIEhUTUwgcmVwb3J0IGlzIG9uZS1jbGljayBhd2F5LgoKPGltZyBzcmM9InJlc291cmNlcy90ZXN0LXJlc3VsdHMuanBnIiBoZWlnaHQ9IjMwMHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpXaGVuIHRoZXJlIGFyZSB0ZXN0IGVycm9ycyAtIHlvdSBjYW4gbmF2aWdhdGUgZGlyZWN0bHkgdG8gdGhlIGZlYXR1cmUgZmlsZSBhbmQgbGluZSB0aGF0IGZhaWxlZCBieSBjbGlja2luZyBvbiBoeXBlcmxpbmtzIGluIHRoZSBsb2cuCgo8aW1nIHNyYz0icmVzb3VyY2VzL3Rlc3QtZXJyb3ItbGluay5qcGciIGhlaWdodD0iMzAwcHgiLz4KCiMjIEF1dG8gQ29tcGxldGUKQmVzaWRlcyB0aGUgc3ludGF4IHZhbGlkYXRpb24sIHlvdSBoYXZlIGF1dG8tY29tcGxldGUgZm9yIHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQga2V5d29yZHMuCgo8aW1nIHNyYz0icmVzb3VyY2VzL2F1dG9jb21wbGV0ZS5qcGciIGhlaWdodD0iMjUwcHgiLz4KCiMjIENvZGUgRm9sZGluZwpZb3UgY2FuIGNvbGxhcHNlIHNlY3Rpb25zIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYWwgd2l0aCBsb25nIHRlc3RzLgoKPGltZyBzcmM9InJlc291cmNlcy9jb2RlLWZvbGRpbmcuanBnIiBoZWlnaHQ9IjMwMHB4Ii8+CgojIyBSZWZlcmVuY2VzCllvdSBjYW4gY2xpY2sgdG8gbmF2aWdhdGUgdG8gY2FsbGVkIGZpbGVzLiBPciBob3ZlciB0byBzZWUgY29udGV4dC4gQ3VycmVudGx5IHRoaXMgaXMgc3VwcG9ydGVkIGZvciB0aGUgYHJlYWQoKWAgYW5kIGBKYXZhLnR5cGUoKWAgc3ludGF4LiBNb3JlIGNvbWluZyBzb29uLCBpbmNsdWRpbmcgYXV0by1jb21wbGV0ZS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLWphdmEuanBnIiBoZWlnaHQ9IjI1MHB4Ii8+CgojIyBKU09OIFJlLWZvcm1hdHRpbmcKUGxhY2UgdGhlIGN1cnNvciB3aXRoaW4gSlNPTiB0byBzZWUgb3B0aW9ucyB0byByZS1mb3JtYXQgaXQsIHlvdSB3aWxsIHNlZSBhICJidWxiIiBpY29uLgoKPGltZyBzcmM9InJlc291cmNlcy9qc29uLWJ1bGIuanBnIiBoZWlnaHQ9IjIwMHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIHBvc3NpYmxlIChkZXBlbmRpbmcgb24gY29udGV4dCk6CgoqIExlbmllbnQgLSBqdXN0IGxpa2UgSlMsIHdoZXJlIHNpbmdsZS1xdW90ZXMgYXJlIHVzZWQgYW5kIG5vIHF1b3RlcyBhcmUgbmVlZGVkIGZvciBwcm9wZXJ0eSBrZXlzCiogU3RyaWN0IC0gU3RyaWN0IEpTT04sIHVzaW5nIGRvdWJsZS1xdW90ZXMKKiBNYWtlIHNpbmdsZSBMaW5lIC0gY29udmVydCBtdWx0aS1saW5lIEpTT04gdG8gYSBzaW5nbGUgbGluZQoqIE1ha2UgbXVsdGktbGluZSAtIGNvbnZlcnQgYSBzaW5nbGUgbGluZSBvZiBKU09OIHRvIG11bHRpLWxpbmUsIGluY2x1ZGluZyB0cmlwbGUtcXVvdGVzCgojIyBSdW4gRm9sZGVyCgpBcyBhIGNvbnZlbmllbmNlLCB5b3UgY2FuIHJpZ2h0LWNsaWNrIGFuZCBydW4gYSBmb2xkZXIgZnJvbSB0aGUgZXhwbG9yZXIgdmlldy4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvcnVuLWZvbGRlci5qcGciIGhlaWdodD0iMjAwcHgiLz4KCiMjIERlYnVnCgpZb3UgY2FuIHNldCBicmVhay1wb2ludHMgb24gS2FyYXRlIGZlYXR1cmUgZmlsZXMgaW4gZGVidWcgbW9kZS4gVGhlIEthcmF0ZSBkZWJ1Z2dlciBjYW4gZXZlbiBzdGVwLWJhY2sgYW5kIGhvdC1yZWxvYWQgc2ltcGxlIGVkaXRzIHRvIHlvdXIgdGVzdC4gTm90ZSB0aGF0IHRoZSBvcHRpb25zIGZvciAiSG90IFJlbG9hZCIgYW5kICJTdGVwIEJhY2siIG1heSBiZSBoaWRkZW4gYXdheSBpbiBzb21lIHZlcnNpb25zIG9mIHRoZSBJbnRlbGxpSiBVSS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvZGVidWcuanBnIiBoZWlnaHQ9IjYwMHB4Ii8+CgojIyMgRGVidWcgSmF2YSBmcm9tIEthcmF0ZQoKQSBLYXJhdGUgZGVidWcgc2Vzc2lvbiB3aWxsIGV2ZW4gc3RvcCBhdCBKYXZhIGJyZWFrcG9pbnRzLgoKIyMjIERlYnVnIEthcmF0ZSBmcm9tIEphdmEKCllvdSBjYW4gYWxzbyBzdGFydCBhIG5vcm1hbCBKYXZhIGRlYnVnIHNlc3Npb24gdGhhdCB1c2VzIHRoZSBLYXJhdGUgYFJ1bm5lcmAgSmF2YSBBUEkgYnV0IHN0aWxsIHN0b3AgYXQgS2FyYXRlIGJyZWFrcG9pbnRzLiBUaGlzIHJlcXVpcmVzIHlvdSB0byBiZSB1c2luZyBLYXJhdGUgdmVyc2lvbiAxLjUuMC5SQzMgb3IgZ3JlYXRlci4KCiMjIE9mZmxpbmUgTGljZW5zZQoKPiBbIUlNUE9SVEFOVF0gIAo+IFRoZSBPZmZsaW5lIExpY2Vuc2UgaXMgYSBbcGFpZCBmZWF0dXJlIGZvciBlbnRlcnByaXNlc10oaHR0cHM6Ly93d3cua2FyYXRlbGFicy5pby9wcmljaW5nKS4gUGxlYXNlIG1ha2Ugc3VyZSB5b3Uga25vdyB3aG8geW91ciBkZXNpZ25hdGVkIGFkbWluIGlzIGJlZm9yZSB5b3UgcGVyZm9ybSB0aGlzIHN0ZXAuCgpPbiB0aGUgW0xpY2Vuc2UgQWN0aXZhdGlvbl0oI2xpY2Vuc2UtYWN0aXZhdGlvbikgc2V0dGluZ3MgcGFnZSwgeW91IHNob3VsZCBzZWUgYSBsaW5rIGNhbGxlZCBgT2ZmbGluZSBMaWNlbnNlYC4gV2hlbiB5b3UgY2xpY2sgaXQgeW91IHNob3VsZCBzZWUgc29tZXRoaW5nIGxpa2UgdGhpcy4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvb2ZmbGluZS1saWNlbnNlLmpwZyIgaGVpZ2h0PSIyMDBweCIvPgoKQSB1bmlxdWUgY29kZSBmb3IgeW91ciBzeXN0ZW0gd2lsbCBiZSBzaG93biB3aGljaCB5b3UgY2FuIGN1dCBhbmQgcGFzdGUuIEluIHRoZSBleGFtcGxlIGFib3ZlLCBpdCBpczogYERoSE9GS0h2ZDdYWVRpK3JRbk5USlE9PWAKClNlbmQgdGhhdCB1bmlxdWUgY29kZSB0byB5b3VyIGRlc2lnbmF0ZWQgYWRtaW4uIFlvdSB3aWxsIGJlIGlzc3VlZCBhIGxpY2Vuc2UgdGhhdCBpcyB0aWVkIHRvIHRoaXMgdW5pcXVlIGNvZGUuIFRvIGFwcGx5IHRoZSBsaWNlbnNlLCBjb3B5IGFsbCB0aGUgdGV4dCBmcm9tIHRoZSBsaWNlbnNlIGZpbGUgKHdoaWNoIHNob3VsZCBzdGFydCB3aXRoOiBgLS0tLS1CRUdJTiBMSUNFTlNFIEZJTEUtLS0tLWApIGFuZCBwYXN0ZSBpdCBpbnRvIHRoZSB0ZXh0LWFyZWEgcHJvdmlkZWQuIE5vdyB5b3Ugc2hvdWxkIHNlZSBzb21ldGhpbmcgbGlrZSB0aGlzLgoKPGltZyBzcmM9InJlc291cmNlcy9vZmZsaW5lLWxpY2Vuc2UtcGFzdGUuanBnIiBoZWlnaHQ9IjUwMHB4Ii8+CgpDbGljayBbQXBwbHldIGFuZCB5b3Ugc2hvdWxkIGEgY29uZmlybWF0aW9uIG1lc3NhZ2UgYW5kIHlvdXIgbGljZW5zZSBkZXRhaWxzLgoKIyMgT3BlbkFQSSBJbXBvcnQKClJpZ2h0LWNsaWNraW5nIG9uIGFueSBmaWxlIGluIHRoZSBQcm9qZWN0IEV4cGxvcmVyIGJyaW5ncyB1cCBhIG1lbnUgY2FsbGVkIGBLYXJhdGUgSW1wb3J0YCBhcyBzaG93biBiZWxvdy4gT3BlbkFQSSBvciBTd2FnZ2VyIGZpbGVzIG9mIGFueSB2ZXJzaW9uIGFyZSBzdXBwb3J0ZWQuCgo8aW1nIHNyYz0icmVzb3VyY2VzL3NwZWMtaW1wb3J0LmpwZyIgaGVpZ2h0PSIzMDBweCIvPgoKV2hlbiBzdWNjZXNzZnVsLCB5b3Ugd2lsbCBzZWUgYSBLYXJhdGUgdG9vbC13aW5kb3cgdHlwaWNhbGx5IG9uIHRoZSB0b3AtcmlnaHQgb2YgeW91ciBJbnRlbGxpSiBsYXlvdXQsIHNob3duIGJlbG93LiBZb3UgY2FuIGV4YW5kIHRvIHRoZSBsZXZlbCBvZiBIVFRQIG1ldGhvZHMgcGVyIEFQSSBwYXRoIHN1Y2ggYXMgYEdFVGAsIGBQT1NUYCBldGMuCgpXaGVuIHlvdSBjbGljayBvbiBhbiBIVFRQIG1ldGhvZCwgeW91IGNhbiBwcmV2aWV3IHRoZSBlcXVpdmFsZW50IEthcmF0ZSBzbmlwcGV0LgoKPGltZyBzcmM9InJlc291cmNlcy9zcGVjLXRvb2wtd2luZG93LmpwZyIgaGVpZ2h0PSI0NTBweCIvPgoKIyMgQ3JlYXRlIFRlc3RzIEZyb20gU3BlYwoKQ3JlYXRpbmcgYSBLYXJhdGUgdGVzdCBmcm9tIGFuIE9wZW4gQVBJIG9yIFN3YWdnZXIgZmlsZSBpcyBtdWNoIHF1aWNrZXIgbm93LiBKdXN0IGNsaWNrIGFuZCBkcmFnIGZyb20gdGhlIHRyZWUgaW50byB0aGUgZWRpdG9yIHdpbmRvdy4gCgo8aW1nIHNyYz0icmVzb3VyY2VzL3NwZWMtdG8tdGVzdC5naWYiIGhlaWdodD0iNDUwcHgiLz4KClRoaXMgd2F5IHlvdSBoYXZlIGZ1bGwgY29udHJvbCBvdmVyIHRoZSBzZXF1ZW5jZSBvZiBBUEkgY2FsbHMgeW91IG1ha2Ugd2l0aGluIGEgS2FyYXRlIHRlc3QuCgojIyBTcGVjIFBheWxvYWQgQ2hvb3NlcgoKQSBjaGFsbGVuZ2Ugd2l0aCBjb21wbGV4IEFQSXMgaXMgdGhhdCB0aGUgc2NoZW1hcyBpbmNsdWRlIGFsbCBwb3NzaWJsZSB2YXJpYXRpb25zIGFuZCBwZXJtdXRhdGlvbnMgZXZlbiB0aG91Z2ggb25seSBzb21lIGZpZWxkcyBhcmUgY29tbW9ubHkgdXNlZC4gVG8gc29sdmUgdGhpcyBwcm9ibGVtLCB5b3UgY2FuIHJpZ2h0LWNsaWNrIG9uIGFuIEhUVFAgbWV0aG9kIGluIHRoZSB0cmVlLiBUaGlzIGdpdmVzIHlvdSBhIG1lbnUgdG8gdmlldyB0aGUgUmVxdWVzdCBvciBSZXNwb25zZSB3aGVuIGF2YWlsYWJsZS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvc3BlYy1tZXRob2QtcGF5bG9hZC5qcGciIGhlaWdodD0iMzAwcHgiLz4KClRoaXMgYnJpbmdzIHVwIGEgZGlhbG9nIHdoZXJlIHlvdSBjYW4gdW4tc2VsZWN0IHRoZSBKU09OIGtleXMgeW91IG5lZWQuIEl0IGlzIHZlcnkgZWFzeSB0byBjaG9vc2UgcGF5bG9hZCBzdWItc2V0cyB1c2luZyB0aGlzIFVJLgoKPGltZyBzcmM9InJlc291cmNlcy9zcGVjLXNlbGVjdC1qc29uLmdpZiIgaGVpZ2h0PSI1MDBweCIgd2lkdGg9IjYwMCIvPgoKT25jZSBzYXRpc2ZpZWQgeW91IGNhbiBjdXQgYW5kIHBhc3RlIGludG8gYSB0ZXN0IG9yIHdoZXJldmVyIHlvdSBuZWVkIHRoZSBwYXlsb2FkLgoKIyMgRXhwbG9yZSBBUEkgRnJvbSBTcGVjCgpDb21pbmcgc29vbi4KCiMjIENyZWF0ZSBNb2NrIEZyb20gU3BlYwoKWW91IGNhbiBleHBvcnQgYWxsIGRhdGEgd2l0aGluIGFuIGltcG9ydGVkIHNjaGVtYSBpbnRvIGEgcGxhaW4tdmFuaWxsYSBKUyBmaWxlIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBLYXJhdGUgbW9jay4gQSBkZXRhaWxlZCBleHBsYW5hdGlvbiBhbmQgc2FtcGxlIGNhbiBiZSBmb3VuZCBhdCB0aGlzIEdpdEh1YiBwcm9qZWN0OiBba2FyYXRlLW9hcy1kZW1vXShodHRwczovL2dpdGh1Yi5jb20vcHRydGhvbWFzL2thcmF0ZS1vYXMtZGVtbykuCgpVc2UgdGhlIGBTYXZlIE1vY2tgIGJ1dHRvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSB0b29sLXdpbmRvdy4KCiMjIFNwZWMgSW1wYWN0IEFuYWx5c2lzCgpZb3UgY2FuIGFsc28gZXhwb3J0IGEgcGxhaW4tdmFuaWxsYSBKUyBmaWxlIHRoYXQgZHVtcHMgYWxsIEFQSSBhbmQgc2NoZW1hIGluZm9ybWF0aW9uIGluIGEgZm9ybWF0IGRlc2lnbmVkIHRvIG1ha2UgaW1wYWN0IGFuYWx5c2lzIGVhc2llciB1c2luZyB5b3VyIGV4aXN0aW5nIElERSBkaWZmIGZlYXR1cmVzLiBUaGUgZm9ybWF0IGlzIGRlc2lnbmVkIHRvIGZsYXR0ZW4gYWxsIG1ldGRhdGEgaW50byBzaW5nbGUgbGluZXMgaW4gYSB0ZXh0IGZpbGUuCgpPbmNlIHlvdSBoYXZlIGV4cG9ydGVkIHRoaXMgZmlsZSwgeW91IGNhbiBjb21wYXJlIHR3byBvZiB0aGVzZSB1c2luZyB0aGUgSW50ZWxsaUogYENvbXBhcmUgV2l0aGAgbWVudSBhbmQgdmlldyB0aGUgZGlmZiBpbiBhbiBpbnR1aXRpdmUgbWFubmVyLgoKPGltZyBzcmM9InJlc291cmNlcy9zcGVjLWRpZmYuanBnIiBoZWlnaHQ9IjQwMHB4Ii8+CgpZb3UgY2FuIHNjcm9sbC1yaWdodCBhbmQgdmlldyB0aGUgZGlmZmVyZW5jZXMgZXZlbiBmb3IgdmVyeSBsYXJnZSBBUEkgc2NoZW1hcy4KCiMjIyBUZXN0IEltcGFjdCBBbmFseXNpcwoKQ29taW5nIHNvb24gLSB0aGUgY2FwYWJpbGl0eSB0byBzaG93IHdoaWNoIHRlc3RzIGFuZCBtb2NrcyBhcmUgaW1wYWN0ZWQgZHVlIHRvIGNoYW5nZXMgaW4gdGhlIEFQSSBzcGVjLg== readmeEtag: '"1df9cfbd398f6eef2c466a4ad40df2dc54c8bde2"' readmeLastModified: Tue, 30 Jul 2024 15:03:23 GMT repositoryId: 496290531 description: Karate IntelliJ Plugin created: '2022-05-25T15:33:28Z' updated: '2024-08-08T09:48:46Z' language: null archived: false stars: 10 watchers: 4 forks: 4 owner: karatelabs logo: https://avatars.githubusercontent.com/u/91312095?v=4 repoEtag: '"5f209fcaa93db1a5f3fda08a0f43a6c510e3f0e6420aefd17b659cc16c8053de"' repoLastModified: Thu, 08 Aug 2024 09:48:46 GMT category: Testing foundInMaster: true oldLocations: - https://github.com/karatelabs/karate-intellij-plugin - source: openapi3 tags repository: https://github.com/stackql/openapi-doc-util v3: true id: 710b832515e1727207dc366b13b09709 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWRvYy11dGlsCj4gQ29tbWFuZCBsaW5lIHV0aWxpdHkgdG8gc3BsaXQgT3BlbkFQSSBkb2N1bWVudHMgaW50byBzbWFsbGVyLCBzZWxmIGNvbnRhaW5lZCwgc2VydmljZSBvcmllbnRlZCBkb2N1bWVudHMgYW5kIHByZXBhcmUgU3RhY2tRTCBwcm92aWRlciBpbnRlcmZhY2VzCj4gQ29tbWFuZCBsaW5lIHV0aWxpdHkgdG8gaGVscCBkZXZlbG9wZXJzIHByZXBhcmUgYW5kIHN1Ym1pdCBTdGFja1FMIHByb3ZpZGVyIHNwZWNzLCBzZWUgW1N0YWNrUUwgUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsL2Jsb2IvbWFpbi9SRUFETUUubWQpCgojIyBJbnN0YWxsYXRpb24KCjxkZXRhaWxzPgo8c3VtbWFyeT5OUE08L3N1bW1hcnk+CjxwPgoKYGBgYmFzaApucG0gaSBAc3RhY2txbC9vcGVuYXBpLWRvYy11dGlsCmBgYAoKPC9wPgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KPHN1bW1hcnk+WUFSTjwvc3VtbWFyeT4KPHA+CgpgYGBiYXNoCnlhcm4gYWRkIEBzdGFja3FsL29wZW5hcGktZG9jLXV0aWwKYGBgCgo8L3A+CjwvZGV0YWlscz4KCiMjIFNldHVwCgpmcm9tIHRoZSBwYWNrYWdlIGRpcmVjdG9yeSwgcnVuOgoKYGBgYmFzaApucG0gbGluawpgYGAKCiMjIEJhY2tncm91bmQKCjxkZXRhaWxzPgo8c3VtbWFyeT5SZWFkIHRoaXMgc2VjdGlvbiBmb3IgYmFja2dyb3VuZCBvbiB0aGUgU3RhY2tRTCBwcm9kdWN0PC9zdW1tYXJ5Pgo8cD4KVGhlIFN0YWNrUUwgdXRpbGl0eSBwcm92aWRlcyBhIFNRTCBpbnRlcmZhY2UgdG8gY2xvdWQgYW5kIFNhYVMgcHJvdmlkZXJzLCBtYXBwaW5nIGEgcHJvdmlkZXIgdG8gYW4gT1JNLCB0cmFuc3BpbGluZyBpbnB1dCBTUUwgdG8gcHJvdmlkZXIgQVBJIHJlcXVlc3RzLCBhbmQgYnJpbmdpbmcgYmFjayByZXNwb25zZSBkYXRhIGFzIGEgU1FMIGJhc2VkIHJlc3VsdCBzZXQuICBTdGFja1FMIGlzIGNhcGFibGUgb2YgRE1MIG9wZXJhdGlvbnMgc3VjaCBhcyBgSU5TRVJUYCBhbmQgYERFTEVURWAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcHJvdmlzaW9uIG9yIGRlLXByb3Zpc2lvbiBjbG91ZCByZXNvdXJjZXMsIHF1ZXJ5IG9wZXJhdGlvbnMgdXNpbmcgYFNFTEVDVGAgdG8gY29sbGVjdCwgYW5hbHl6ZSwgcmVwb3J0IG9uIGFzc2V0IG9yIGNvbmZpZ3VyYXRpb24gZGF0YSwgYW5kIGxpZmVjeWNsZSBvcGVyYXRpb25zIHN1Y2ggYXMgc3RhcnRpbmcgYSBWTSBpbnN0YW5jZSB1c2luZyB0aGUgYEVYRUNgIGNvbW1hbmQgaW4gU3RhY2tRTC4gIAoKVGhlIFN0YWNrUUwgT1JNIHByb3ZpZGVzIGEgbG9naWNhbCBtb2RlbCB0byB3b3JrIHdpdGggY2xvdWQgcmVzb3VyY2VzIHNpbWlsYXIgdG8gdGhlIHdheSBkYXRhYmFzZXMgYXJlIG9yZ2FuaXplZCBpbnRvIHNjaGVtYXMuICBUaGlzIG9iamVjdC9yZXNvdXJjZSBoaWVyYXJjaHkgaXMgc3VtbWFyaXplZCBiZWxvdzogIAoKYGBgCnByb3ZpZGVyLwrilJzilIAgc2VydmljZS8K4pSCICDilJzilIAgcmVzb3VyY2UvCuKUgiAg4pSCICDilJzilIAgZmllbGRzCuKUgiAg4pSCICDilJzilIAgbWV0aG9kcwpgYGAKCmFuIGV4YW1wbGUgd291bGQgYmU6CgpgYGAKZ29vZ2xlLwrilJzilIAgY29tcHV0ZS8K4pSCICDilJzilIAgaW5zdGFuY2VzLwrilIIgIOKUgiAg4pSc4pSAIGlkLCBuYW1lLCBzdGF0dXMsIC4uLgrilIIgIOKUgiAg4pSc4pSAIHNlbGVjdCwgaW5zZXJ0LCBkZWxldGUsIHN0YXJ0LCBzdG9wLCAuLi4KYGBgCgpFbmFibGluZyBTdGFja1FMIHRvIGludGVyYWN0IHdpdGggdGhlIGBnb29nbGVgIHByb3ZpZGVyIHVzaW5nIFNRTCBzZW1hbnRpY3MsIGZvciBleGFtcGxlOgoKUHJvdmlkZXIgZGlzY292ZXJ5IG9wZXJhdGlvbnMgc3VjaCBhcy4uCgpgYGBzcWwKU0hPVyBSRVNPVVJDRVMgSU4gZ29vZ2xlLmNvbXB1dGU7CkRFU0NSSUJFIGdvb2dsZS5jb21wdXRlLmluc3RhbmNlczsKYGBgCgpRdWVyeSBvcGVyYXRpb25zIHN1Y2ggYXMuLiAgCgpgYGBzcWwKU0VMRUNUIHN0YXR1cywgQ09VTlQoKikgYXMgbnVtX2luc3RhbmNlcyAKRlJPTSBnb29nbGUuY29tcHV0ZS5pbnN0YW5jZXMKV0hFUkUgcHJvamVjdCA9ICdteXByb2plY3QnIGFuZCB6b25lID0gJ3VzLXdlc3QtMWEnCkdST1VQIEJZIHN0YXR1czsKYGBgCgpQcm92aXNpb25pbmcgb3BlcmF0aW9ucyBzdWNoIGFzIGNyZWF0aW5nIGEgQ29tcHV0ZSBFbmdpbmUgaW5zdGFuY2UgdXNpbmcgYW4gYElOU0VSVGAgc3RhdGVtZW50IG9yIGRlcHJvdmlzaW9uaW5nIGFuIGluc3RhbmNlIHVzaW5nIGEgYERFTEVURWAgc3RhdGVtZW50LiAgCjwvcD4KPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5PlJlYWQgdGhpcyBzZWN0aW9uIGZvciBiYWNrZ3JvdW5kIG9uIHRoZSBTdGFja1FMIFByb3ZpZGVyIFJlZ2lzdHJ5PC9zdW1tYXJ5Pgo8cD4KU3RhY2tRTCBwcm92aWRlciBpbnRlcmZhY2VzIChzdWNoIGFzIEdDUCwgT2t0YSwgR2l0SHViLCBBV1MsIEF6dXJlLCBldGMpIGFyZSBkZWZpbmVkIHVzaW5nIGFubm90YXRpb25zIHRvIHRoZSBwcm92aWRlciBBUEkgKE9wZW5BUEkpIHNwZWNpZmljYXRpb24sIHRoZXNlIGFubm90YXRpb25zIG9yIGV4dGVuc2lvbnMgYWxsb3cgU3RhY2tRTCB0byBtYXAgdGhlIHByb3ZpZGVycyByZXNvdXJjZSB0byB0aGUgZGVzaXJlZCBPUk0gYW5kIGRlZmluZSByb3V0ZXMgZm9yIFNRTCB2ZXJicyBzdWNoIGFzIGBTRUxFQ1RgLCBgSU5TRVJUYCwgYERFTEVURWAsIGFuZCBgRVhFQ2AuICAKPC9wPgo8L2RldGFpbHM+CgojIyBVc2FnZQoKYGBgYmFzaApvcGVuYXBpLWRvYy11dGlsIDxjb21tYW5kPiBbPGFyZ3VtZW50cyhzKT5dIFs8ZmxhZyhzKT5dCmBgYAoKIyMjIENvbW1hbmRzCgpfX2B2YWxpZGF0ZWBfXyAgCgpWYWxpZGF0ZXMgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGRvY3VtZW50LiAgIAoKX19gc3BsaXRgX18gIAoKU3BsaXRzIGFuIE9wZW4gQVBJIGRvY3VtZW50IGludG8gc21hbGxlciwgc2VsZiBjb250YWluZWQsIHNlcnZpY2Ugc2NvcGVkIGRvY3VtZW50cyBiYXNlZCB1cG9uIGEgc3BlY2lmaWVkIHNlcnZpY2UgZGlzY3JpbWluYXRvciAoSlNPTlBhdGggZXhwcmVzc2lvbiByZWxhdGl2ZSB0byBlYWNoIG9wZXJhdGlvbikuICBUYWtlcyBhbiBPcGVuQVBJIGRvY3VtZW50IGFzIGlucHV0IGFuZCBvdXRwdXRzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOiAgCgpgYGAKe291dHB1dF9kaXJ9LwrilJzilIAge3Byb3ZpZGVyX25hbWV9LwrilIIgIOKUnOKUgCB7cHJvdmlkZXJfdmVyc2lvbn0vCuKUgiAg4pSCICDilJzilIAgc2VydmljZXMvCuKUgiAg4pSCICDilIIgIOKUnOKUgCB7c2VydmljZV9uYW1lfS8K4pSCICDilIIgIOKUgiAg4pSCICDilJzilIAge3NlcnZpY2VfbmFtZX0ueWFtbArilIIgIOKUgiAg4pSCICDilJzilIAgLi4uLwpgYGAKVGhlIGB7c2VydmljZV9uYW1lfS55YW1sYCBmaWxlIGlzIGEgc2VsZiBjb250YWluZWQsIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBkb2N1bWVudCwgY29udGFpbmluZyBvbmx5IG9wZXJhdGlvbnMgYW5kIGNvbXBvbmVudHMgZm9yIHRoZSBzcGVjaWZpZWQgc2VydmljZS4gIAoKX19gcHJvdmlkZXItZGV2YF9fICAKCkl0ZXJhdGVzIHRocm91Z2ggYSBkaXJlY3Rvcnkgb2Ygc2VydmljZXMgKGNyZWF0ZWQgdXNpbmcgdGhlIGBzcGxpdGAgZnVuY3Rpb24pLCBnZW5lcmF0ZXMgYW4gYWRkaXRpb25hbCBkb2N1bWVudCBmb3IgZWFjaCBzZXJ2aWNlIGB7c2VydmljZV9uYW1lfS1yZXNvdXJjZXMueWFtbGAgYW5kIGFuIGluZGV4IGRvY3VtZW50IGZvciBhbGwgc2VydmljZXMgbmFtZWQgYHByb3ZpZGVyLnlhbWxgLCB0aGlzIGlzIHVzZWZ1bCBmb3IgZGV2ZWxvcGluZyBuZXcgU3RhY2tRTCBwcm92aWRlcnMuICBUaGUgb3V0cHV0IHN0cnVjdHVyZSBpcyBhcyBmb2xsb3dzOiAgCgpgYGAKe2FwaV9kb2NfZGlyfS8K4pSc4pSAIHtwcm92aWRlcl9uYW1lfS8K4pSCICDilJzilIAge3Byb3ZpZGVyX3ZlcnNpb259LwrilIIgIOKUgiAg4pSc4pSAIHNlcnZpY2VzLwrilIIgIOKUgiAg4pSCICDilJzilIAge3NlcnZpY2VfbmFtZX0vCuKUgiAg4pSCICDilIIgIOKUgiAg4pSc4pSAIHtzZXJ2aWNlX25hbWV9LnlhbWwK4pSCICDilIIgIOKUgiAg4pSCICDilJzilIAge3NlcnZpY2VfbmFtZX0tcmVzb3VyY2VzLnlhbWwK4pSCICDilIIgIOKUgiAg4pSc4pSAIC4uLi8K4pSCICDilIIgIOKUnOKUgCBwcm92aWRlci55YW1sCmBgYApUaGUgb3JpZ2luYWwgT3BlbkFQSSBkb2N1bWVudHMgYXJlIG5vdCBtb2RpZmllZC4gIAoKVGhlIGBwcm92aWRlci1kZXZgIGZ1bmN0aW9uIHdpbGwgaW5mZXIgU1FMIHJvdXRlcyBmb3Igb3BlcmF0aW9ucyB1bmRlciBlYWNoIHJlc291cmNlcyB1bmRlciB0aGUgYHNxbFZlcmJzYCBrZXksIHRoaXMgc2hvdWxkIGJlIHJldmlld2VkIGJ5IHRoZSBkZXZlbG9wZXIsIHJlbW92aW5nIGFueSBkdXBsaWNhdGUgb3IgZXJyb25lb3VzIHJvdXRlcy4KCl9fYHByb3ZpZGVyLWJ1aWxkYF9fICAKCk9wZXJhdGVzIG9uIHRoZSBkZXYgZGlyZWN0b3J5IHN0cnVjdHVyZSBnZW5lcmF0ZWQgdXNpbmcgdGhlIGBwcm92aWRlci1kZXZgIGNvbW1hbmQsIGFzc2VtYmxlcyBhIGNvbXBsZXRlIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gcGVyIHNlcnZpY2UgaW5jbHVkaW5nIHRoZSBTdGFja1FMIHJlc291cmNlcyBmb3IgZWFjaCBzZXJ2aWNlIGluIGVhY2ggZG9jdW1lbnQgdW5kZXIgYGNvbXBvbmVudHMveC1zdGFja1FMLXJlc291cmNlc2AsIGFuZCBvdXRwdXRzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIHRvIGEgbmV3IGRpcmVjdG9yeTogIAoKYGBgCntvdXRwdXRfZGlyfS8K4pSc4pSAIHtwcm92aWRlcl9uYW1lfS8K4pSCICDilJzilIAge3Byb3ZpZGVyX3ZlcnNpb259LwrilIIgIOKUgiAg4pSc4pSAIHNlcnZpY2VzLwrilIIgIOKUgiAg4pSCICDilJzilIAge3NlcnZpY2VfbmFtZX0vCuKUgiAg4pSCICDilIIgIOKUgiAg4pSc4pSAIHtzZXJ2aWNlX25hbWV9LnlhbWwK4pSCICDilIIgIOKUgiAg4pSc4pSAIC4uLi8K4pSCICDilIIgIOKUnOKUgCBwcm92aWRlci55YW1sCmBgYAoKVGhlIG91dHB1dCBmcm9tIHRoZSBgcHJvdmlkZXItYnVpbGRgIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gdGVzdCBsb2NhbGx5IChzZWUgW1Rlc3QgVXNpbmcgYSBMb2NhbCBSZWdpc3RyeV0oI3Rlc3QtdXNpbmctYS1sb2NhbC1yZWdpc3RyeSkpLiBPbmNlIHlvdSBoYXZlIHRlc3RlZCBsb2NhbGx5IHlvdSBjYW4gcmFpc2UgYSBwdWxsIHJlcXVlc3QgdG8gW3N0YWNrcWwvc3RhY2txbC1wcm92aWRlci1yZWdpc3RyeV0oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1wcm92aWRlci1yZWdpc3RyeSkuICAgIAoKCiMjIyBPcHRpb25zCgpfX2AtLXN2Y0Rpc2NyaW1pbmF0b3JgLCBgLXNgX18gICpKU09OUGF0aCBleHByZXNzaW9uKiBPUiAqc3ZjTmFtZTpzZXJ2aWNlbmFtZSoKClRoZSBfXypzZXJ2aWNlIGRpc2NyaW1pbmF0b3IqX18gb3B0aW9uIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGhvdyB0byBzcGxpdCBhIGxhcmdlIHByb3ZpZGVyIGRvY3VtZW50IGludG8gc21hbGxlciwgc2VydmljZSBzY29wZWQgZG9jdW1lbnRzLiAgVGhlIG9wdGlvbiBpcyByZXF1aXJlZCBmb3IgdGhlIF9fYHNwbGl0YF9fIGNvbW1hbmQgYW5kIGlnbm9yZWQgb3RoZXJ3aXNlLiAgSWYgeW91IGRvIG5vdCB3aXNoIHRvIHNwaWx0IHRoZSBwcm92aWRlciBBUEkgc3BlYywgc3BlY2lmeSBgc3ZjTmFtZTo8c2VydmljZW5hbWU+YCBmb3IgdGhpcyBvcHRpb24gd2hpY2ggd2lsbCBkZWZpbmUgb25lIHNlcnZpY2UgaW4gdGhlIFN0YWNrUUwgcHJvdmlkZXIgd2l0aCB0aGUgbmFtZSBwcm92aWRlZCBpbiAqc2VydmljZW5hbWUqLiAgCgo+IEV4YW1wbGU6IGAtcyAiJFsneC1naXRodWInXS5jYXRlZ29yeSJgIHdvdWxkIHNwbGl0IHRoZSBnaXZlbiBwcm92aWRlciBBUEkgc3BlYyBpbnRvIHNlcnZpY2UgZG9jdW1lbnRzIGJ5IG1hdGNoaW5nIHRoZSBgeC1naXRodWIuY2F0ZWdvcnlgIHZhbHVlIGluIGVhY2ggdW5pcXVlIG9wZXJhdGlvbiAoY29tYmluYXRpb24gb2YgYSBwYXRoIGFuZCBhbiBIVFRQIG1ldGhvZCkgaW4gQVBJIGRvYy4KCl9fYC0tcmVzRGlzY3JpbWluYXRvcmAsIGAtcmBfXyAgKkpTT05QYXRoIGV4cHJlc3Npb24qICBPUiAqcGF0aF90b2tlbnMqCgpUaGUgX18qcmVzb3VyY2UgZGlzY3JpbWluYXRvcipfXyBvcHRpb24gaXMgdXNlZCB0byBkZXRlcm1pbmUgaG93IHRvIGlkZW50aWZ5IFN0YWNrUUwgcmVzb3VyY2VzIGluIGEgZ2l2ZW4gcHJvdmlkZXIgQVBJIHNwZWMuICBUaGlzIG9wdGlvbiBpcyB1c2VkIGZvciB0aGUgX19gcHJvdmlkZXItZGV2YF9fIGNvbW1hbmQgYW5kIGlnbm9yZWQgb3RoZXJ3aXNlLgoKPiBFeGFtcGxlOiBgLXIgIiRbJ3gtZ2l0aHViJ10uc3ViY2F0ZWdvcnkiYCAgd291bGQgaWRlbnRpZnkgcmVzb3VyY2VzIGluIHRoZSBnaXZlbiBwcm92aWRlciBBUEkgc3BlYyBieSBtYXRjaGluZyB0aGUgYHgtZ2l0aHViLnN1YmNhdGVnb3J5YCB2YWx1ZSBpbiBlYWNoIHVuaXF1ZSBvcGVyYXRpb24gKGNvbWJpbmF0aW9uIG9mIGEgcGF0aCBhbmQgYW4gSFRUUCBtZXRob2QpIGluIEFQSSBkb2MuCgppZiAqcGF0aF90b2tlbnMqIGlzIHNwZWNpZmllZCBmb3IgdGhlIF9fYC0tcmVzRGlzY3JpbWluYXRvcmBfXyBvcHRpb24sIHRoZSByZXNvdXJjZSBuYW1lIHdpbGwgYmUgZGVyaXZlZCBieSBqb2luaW5nIHRoZSAnbWVhbmluZ2Z1bCcgcGF0aCB0b2tlbnMgKG5vdCBlcXVpdmFsZW50IHRvIHRoZSBzZXJ2aWNlIG5hbWUpIHdpdGggYW4gJ18nLiAgRm9yIGluc3RhbmNlIGEgcGF0aCBvZiBgL3NpdGVzL3tzaXRlX2lkfS9zZXJ2aWNlLWluc3RhbmNlc2Agd291bGQgcmVzdWx0IGluIGEgcmVzb3VyY2UgbmFtZSBvZiBgc2l0ZXNfc2VydmljZV9pbnN0YW5jZXNgIGFzc3VtaW5nIHRoZSBzZXJ2aWNlIG5hbWUgd2FzIG5vdCBgc2l0ZXNgLiAgCgpfX2AtLW1ldGhvZGtleWAsIGAtbWBfXyAgKkpTT05QYXRoIGV4cHJlc3Npb24qICAKClRoZSBfXyptZXRob2Qga2V5Kl9fIG9wdGlvbiBkZXRlcm1pbmVzIHVuaXF1ZWx5IG5hbWVkIG9wZXJhdGlvbnMgd2hpY2ggYXJlIG1hcHBlZCB0byBTUUwgbWV0aG9kcyBpbiB0aGUgU3RhY2tRTCBPUk0uICBUaGVzZSBtZXRob2RzIGFyZSB0aGVuIG1hcHBlZCB0byBkZWZhdWx0IHJvdXRlcyAoU1FMIHF1ZXJ5IGFuZCBETUwgbWV0aG9kcykgaW4gU3RhY2tRTCwgdGhlIGRldmVsb3BlciBjYW4gb3ZlcnJpZGUgb3IgdXBkYXRlIHRoZXNlIG1hcHBpbmdzIGluIHRoZSBkZXZlbG9wbWVudCBkb2NzIHdoaWNoIGFyZSBvdXRwdXR0ZWQgZnJvbSB0aGUgX19gcHJvdmlkZXItZGV2YF9fICBjb21tYW5kLiAgVGhpcyBvcHRpb24gaXMgdXNlZCBmb3IgdGhlIF9fYHByb3ZpZGVyLWRldmBfXyBjb21tYW5kIGFuZCBpZ25vcmVkIG90aGVyd2lzZS4gIAoKPiBJZiBzdXBwbGllZCBpdCBtdXN0IGJlIGEgSlNPTlBhdGggZXhwcmVzc2lvbiByZWxhdGl2ZSB0byB0aGUgb3BlcmF0aW9uIChodHRwIHBhdGggYW5kIHZlcmIpLCBpZiBub3Qgc3VwcGxpZWQgaXQgd2lsbCBkZWZhdWx0IHRvIGBvcGVyYXRpb25JZGAgaW4gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmb3IgZWFjaCBvcGVyYXRpb24uICAKCl9fYC0tb3V0cHV0YCwgYC1vYF9fICAqZGlyZWN0b3J5KiAgCgpUaGUgX18qb3V0cHV0IGRpcmVjdG9yeSpfXyBvcHRpb24gc3BlY2lmaWVzIHRoZSByb290IGRpcmVjdG9yeSB0byBvdXRwdXQgZmlsZXMgZnJvbSB0aGUgIF9fYHNwbGl0YF9fLCBvciB0aGUgcm9vdCBkaXJlY3RvcnkgdG8gb3V0cHV0IGFzc2VtYmxlZCBwcm92aWRlciBzcGVjcyBmcm9tIHRoZSBfX2Bwcm92aWRlci1idWlsZGBfXyBjb21tYW5kLiAgVGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuICBJZiB0aGUgZGlyZWN0b3J5IGV4aXN0cyBpbiBlaXRoZXIgY2FzZSB0aGUgcHJvZ3JhbSB3aWxsIGV4aXQgd2l0aCBhbiBlcnJvciB1bmxlc3MgdGhlIGAtLW92ZXJ3cml0ZWAgb3B0aW9uIGlzIHNldC4KCj4gSWYgbm90IHN1cHBsaWVkIGl0IHdpbGwgZGVmYXVsdCB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeQoKX19gLS1vdmVyd3JpdGVgX18KClRoZSBfXypvdmVyd3JpdGUqX18gb3B0aW9uIHNwZWNpZmllcyB3aGV0aGVyIHRvIG92ZXJ3cml0ZSBmaWxlcyBpbiB0aGUgb3V0cHV0IGRpcmVjdG9yeS4gIFRoZSBkZWZhdWx0IGlzIGBmYWxzZWAuCgpfX2AtLWRlYnVnYCwgYC1kYF9fICAKCl9fKmRlYnVnIGZsYWcqX18gd2hpY2ggY2FuIGJlIHNldCBmb3IgYWRkaXRpb25hbCBwcmludCBzdGF0ZW1lbnRzLiAgCgoKIyMgRXhhbXBsZQoKVGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyBjcmVhdGluZyBhIFN0YWNrUUwgcHJvdmlkZXIgZm9yIGBnaXRodWJgIGFuZCB0ZXN0aW5nIHRoaXMgcHJvdmlkZXIgbG9jYWxseSB1c2luZyBgc3RhY2txbGAKCiMjIyBFeGFtcGxlIFByb2plY3QgU3RydWN0dXJlCgpUaGUgZm9sbG93aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgcmVwcmVzZW50cyB0aGUgdGFyZ2V0IGFmdGVyIGFuIEFQSSBkZXYgd29ya3NwYWNlIGlzIHNldCB1cCBhbmQgdGhlIFN0YWNrUUwgcHJvdmlkZXIgZm9yIGBnaXRodWJgIGlzIGJ1aWx0LgoKYGBgCmxvY2FsLXJlZ2lzdHJ5LwrilJzilIAgcmVmLwrilIIgIOKUnOKUgCBnaXRodWIvCuKUgiAg4pSCICDilJzilIAgYXBpLmdpdGh1Yi5jb20ueWFtbArilJzilIAgZGV2LwrilIIgIOKUnOKUgCBnaXRodWIvCuKUgiAg4pSCICDilJzilIAgdjAuMS4wLwrilIIgIOKUgiAg4pSCICDilJzilIAgcHJvdmlkZXIueWFtbArilIIgIOKUgiAg4pSCICDilJzilIAgc2VydmljZXMvCuKUgiAg4pSCICDilIIgIOKUgiAg4pSc4pSAIHJlcG9zLwrilIIgIOKUgiAg4pSCICDilIIgIOKUgiAg4pSc4pSAIHJlcG9zLnlhbWwK4pSCICDilIIgIOKUgiAg4pSCICDilIIgIOKUnOKUgCByZXBvcy1yZXNvdXJjZXMueWFtbArilIIgIOKUgiAg4pSCICDilIIgIOKUnOKUgCAuLi4vCuKUnOKUgCBzcmMvCuKUgiAg4pSc4pSAIGdpdGh1Yi8K4pSCICDilIIgIOKUnOKUgCB2MC4xLjAvCuKUgiAg4pSCICDilIIgIOKUnOKUgCBwcm92aWRlci5qc29uCuKUgiAg4pSCICDilIIgIOKUnOKUgCBzZXJ2aWNlcy8K4pSCICDilIIgIOKUgiAg4pSCICDilJzilIAgcmVwb3MvCuKUgiAg4pSCICDilIIgIOKUgiAg4pSCICDilJzilIAgcmVwb3MtdjAuMS4wLmpzb24KYGBgCgpgbG9jYWwtcmVnaXN0cnkvcmVmL2dpdGh1Yi9hcGkuZ2l0aHViLmNvbS55YW1sYCBpcyB0aGUgc291cmNlIE9wZW5BUEkgMyBzcGVjaWZpY2F0aW9uIGZvciB0aGUgYGdpdGh1YmAgYXBpLCB0aGlzIHdhcyBzb3VyY2VkIGZyb20gW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9yZXN0LWFwaS1kZXNjcmlwdGlvbi9ibG9iL21haW4vZGVzY3JpcHRpb25zL2FwaS5naXRodWIuY29tL2FwaS5naXRodWIuY29tLnlhbWwpLiAgCgpUaGUgYGRldmAgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBvdXRwdXQgb2YgdGhlIGRldiBkb2NzIGdlbmVyYXRlZCBieSB0aGUgYG9wZW5hcGktZG9jLXV0aWwgc3BsaXRgIGNvbW1hbmQsIHdoaWNoIHdpbGwgdGhlbiBzZXJ2ZSBhcyBpbnB1dCB0byB0aGUgYG9wZW5hcGktZG9jLXV0aWwgcHJvdmlkZXItZGV2YCBjb21tYW5kLiAgICAKClRoZSBgc3JjYCBkaXJlY3RvcnkgY29udGFpbnMgdGhlIG91dHB1dCBvZiB0aGUgU3RhY2tRTCBwcm92aWRlciBpbnRlcmZhY2UgZ2VuZXJhdGVkIGZyb20gdGhlIGRldiBkb2NzIHVzaW5nIGBvcGVuYXBpLWRvYy11dGlsIHByb3ZpZGVyLWJ1aWxkYC4gIAoKCiMjIyAxLiBTcGxpdCBsYXJnZSBzcGVjIGludG8gc2VydmljZSBzcGVjcwoKUG93ZXJTaGVsbDogIAoKYGBgUG93ZXJTaGVsbApjZCBsb2NhbC1yZWdpc3RyeQpvcGVuYXBpLWRvYy11dGlsIHNwbGl0IGAKLW4gZ2l0aHViIGAKLXYgdjAuMS4wIGAKLXMgIiRbJ3gtZ2l0aHViJ10uY2F0ZWdvcnkiIGAKLW8gLlxkZXYgYAouL3JlZi9naXRodWIvYXBpLmdpdGh1Yi5jb20ueWFtbApgYGAKCkJhc2g6ICAKCmBgYGJhc2gKY2QgbG9jYWwtcmVnaXN0cnkKb3BlbmFwaS1kb2MtdXRpbCBzcGxpdCBcCi1uIGdpdGh1YiBcCi12IHYwLjEuMCBcCi1zICckWyJ4LWdpdGh1YiJdLmNhdGVnb3J5JyBcCi1vIC4vZGV2IFwKcmVmL2dpdGh1Yi9hcGkuZ2l0aHViLmNvbS55YW1sCmBgYAoKIyMjIDIuIENyZWF0ZSBkZXYgcHJvdmlkZXIgZG9jcwoKUG93ZXJTaGVsbDogIAoKYGBgUG93ZXJTaGVsbApjZCBsb2NhbC1yZWdpc3RyeQpvcGVuYXBpLWRvYy11dGlsIHByb3ZpZGVyLWRldiBgCi1uIGdpdGh1YiBgCi12IHYwLjEuMCBgCi1yICIkWyd4LWdpdGh1YiddLnN1YmNhdGVnb3J5IiBgCi5cZGV2CmBgYAoKQmFzaDogIAoKYGBgYmFzaApjZCBsb2NhbC1yZWdpc3RyeQpvcGVuYXBpLWRvYy11dGlsIHByb3ZpZGVyLWRldiBcCi1uIGdpdGh1YiBcCi12IHYwLjEuMCBcCi1yICckWyJ4LWdpdGh1YiJdLnN1YmNhdGVnb3J5JyBcCi4vZGV2CmBgYAoKIyMjIEFzc2VtYmxlIGZpbmFsIHByb3ZpZGVyIGRvY3MKClBvd2VyU2hlbGw6ICAKCmBgYFBvd2VyU2hlbGwKY2QgbG9jYWwtcmVnaXN0cnkKb3BlbmFwaS1kb2MtdXRpbCBwcm92aWRlci1idWlsZCBgCi1uIGdpdGh1YiBgCi12IHYwLjEuMCBgCi1vIC5cc3JjIGAKLlxkZXYKYGBgCgpCYXNoOiAgCgpgYGBiYXNoCmNkIGxvY2FsLXJlZ2lzdHJ5Cm9wZW5hcGktZG9jLXV0aWwgcHJvdmlkZXItYnVpbGQgXAotbiBnaXRodWIgXAotdiB2MC4xLjAgXAotbyAuL3NyYyBcCi4vZGV2CmBgYAoKIyMjIFRlc3QgVXNpbmcgYSBMb2NhbCBSZWdpc3RyeQoKYGBgYmFzaApjZCBsb2NhbC1yZWdpc3RyeQpQUk9WSURFUl9SRUdJU1RSWV9ST09UX0RJUj0iJChwd2QpIgpSRUdfU1RSPSd7InVybCI6ICJmaWxlOi8vJyR7UFJPVklERVJfUkVHSVNUUllfUk9PVF9ESVJ9JyIsICJsb2NhbERvY1Jvb3QiOiAiJyR7UFJPVklERVJfUkVHSVNUUllfUk9PVF9ESVJ9JyIsICJ2ZXJpZnlDb25maWciOiB7Im5vcFZlcmlmeSI6IHRydWV9fScKQVVUSF9TVFI9J3siZ2l0aHViIjogeyAidHlwZSI6ICJudWxsX2F1dGgiIH19JwouL3N0YWNrcWwgc2hlbGwgLS1hdXRoPSIke0FVVEhfU1RSfSIgLS1yZWdpc3RyeT0iJHtSRUdfU1RSfSIKYGBg readmeEtag: '"ff4b3b99098da6030eed2df57bf5d3112c287d11"' readmeLastModified: Thu, 05 Jan 2023 19:01:12 GMT repositoryId: 487689765 description: 'DEPRECATED: Replaced by https://github.com/stackql/openapisaurus' created: '2022-05-02T02:01:26Z' updated: '2024-08-12T20:22:54Z' language: JavaScript archived: true stars: 10 watchers: 2 forks: 1 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 license: MIT repoEtag: '"fcdd17fd85bfee45cc67e8367e2cf59031fb55d0852a45bd0743cdb836ff048a"' repoLastModified: Mon, 12 Aug 2024 20:22:54 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/awtkns/openapi-perf v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9Ii4vZG9jcy9lbi9kb2NzL2Fzc2V0cy9sb2dvLWxpZ2h0LnBuZyIgYWx0PSJPcGVuQVBJIFBlcmYgTG9nbyIgLz4KPC9wPgo8aDMgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDA7IGNvbG9yOiBibGFjayI+PHN0cm9uZz5PcGVuQVBJIFBlcmY8L3N0cm9uZz48L2gzPgo8cCBhbGlnbj0iY2VudGVyIj4KICDwn6SWPGVtPiBBdXRvbWF0aWMgT3BlbkFQSSBQZXJmb3JtYW5jZSBUZXN0aW5nIDwvZW0+8J+kljwvYnI+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CjxpbWcgYWx0PSJUZXN0cyIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vYXd0a25zL29wZW5hcGktcGVyZi93b3JrZmxvd3MvVGVzdHMvYmFkZ2Uuc3ZnIiAvPgo8aW1nIGFsdD0iRG9jcyIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vYXd0a25zL2Zhc3RhcGktY3J1ZHJvdXRlci93b3JrZmxvd3MvZG9jcy9iYWRnZS5zdmciIC8+CjxhIGhyZWY9Imh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9vcGVuYXBpLXBlcmYiIHRhcmdldD0iX2JsYW5rIj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaS1wZXJmP2NvbG9yPSUyMzM0RDA1OCZsYWJlbD1weXBpJTIwcGFja2FnZSIgYWx0PSJQYWNrYWdlIHZlcnNpb24iPgo8L2E+CjxpbWcgYWx0PVB5dGhvbiBWZXJzaW9uIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL29wZW5hcGktcGVyZj9jb2xvcj0lMjMzNEQwNTgiIC8+CjwvcD4KCi0tLQoKKipEb2N1bWVudGF0aW9uKio6IDxhIGhyZWY9Imh0dHBzOi8vb3BlbmFwaS1wZXJmLmF3dGtucy5jb20iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL29wZW5hcGktcGVyZi5hd3RrbnMuY29tPC9hPgoKKipTb3VyY2UgQ29kZSoqOiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXd0a25zL29wZW5hcGktcGVyZiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS9hd3RrbnMvb3BlbmFwaS1wZXJmPC9hPgoKKipDb250aW5vdXMgSW50ZWdyYXRpb24qKjogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2F3dGtucy9vcGVuYXBpLXBlcmYtYWN0aW9uIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL2F3dGtucy9vcGVuYXBpLXBlcmYtYWN0aW9uPC9hPgoKLS0tCgoKVGhpcyBwcm9qZWN0IHdpbGwgbWFrZSB1c2Ugb2YgdGhlIE9wZW5BUEkgc2NoZW1hIHRvIGJ1aWxkIGFuIGF1dG9tYXRlZCBSRVNUIEFQSSBwZXJmb3JtYW5jZSB0ZXN0aW5nIGFuZCBiZW5jaG1hcmtpbmcgdG9vbC4gT3BlbkFQSSBkZWZpbmVzIGFuIGludGVyZmFjZSBmb3IgUkVTVCBBUElzIGFsbG93aW5nIGF1dG9tYXRlZCBnZW5lcmF0aW9uIG9mIGFuIEFQSSBzY2hlbWEgd2hpY2ggcHJvdmlkZXMgaW5zaWdodHMgb24gdGhlIEFQSSdzIHVzYWdlIGFuZCBleHBlY3RlZCBpbnB1dCBhbmQgcmVzcG9uc2UgdmFsdWVzLiBVc2luZyB0aGUgT3BlbkFQSSBzY2hlbWEgd2UgaG9wZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRlc3RzIGNvdmVyaW5nIGFsbCBlbmRwb2ludHMuIFdlIHdpbGwgdXNlIHRoZXNlIGdlbmVyYXRlZCB0ZXN0cyB0byBib3RoIHRlc3QgZm9yIGVuZHBvaW50IGNvcnJlY3RuZXNzIGFuZCB0byBnYXRoZXIgcmVsZXZhbnQgcGVyZm9ybWFuY2UgbWV0cmljcyBzdWNoIGFzIHJlc3BvbnNlIHRpbWUuIFdlIHdpbGwgZmluYWxseSBnZW5lcmF0ZSBhbiBpbmZvcm1hdGl2ZSByZXBvcnQgb24gZW5kcG9pbnQgcGVyZm9ybWFuY2UgYW5kIGNvcnJlY3RuZXNzLCBhbGxvd2luZyBkZXZlbG9wZXJzIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHBvdGVudGlhbGx5IHByb2JsZW1hdGljIGVuZHBvaW50cyBhbmQgZW5kcG9pbnRzIHRoYXQgd291bGQgYmVuZWZpdCBtb3N0IGZyb20gb3B0aW1pemF0aW9uLgoKIyMgSW5zdGFsbGF0aW9uCmBgYHB5dGhvbgpwaXAgaW5zdGFsbCBvcGVuYXBpLXBlcmYKYGBgCgojIyBVc2FnZQojIyMgVGVzdCBHZW5lcmF0aW9uClRoaXMgd2lsbCBjcmVhdGUgZ2VuZXJhdGUgcHJvcGVydHktYmFzZWQgcGVyZm9ybWFuY2UgdGVzdHMgZm9yIGFuIGVuZHBvaW50IGFuZCBzYXZlIHRoZSB0ZXN0IHNjaGVtYSB0byB5b3VyIHJlc3VsdHMgZGlyZWN0b3J5LgpgYGBweXRob24KZnJvbSBvcGVuYXBpX3BlcmYgaW1wb3J0IE9wZW5BUElQZXJmCgpvcCA9IE9wZW5BUElQZXJmKAogIGVuZHBvaW50X3VybCA9ICJodHRwOi8vbG9jYWxob3N0OjUwMDAiLAogIHJlc3VsdHNfZGlyID0gIi9wYXRoL3RvL3Jlc3VsdHMvZGlyZWN0b3J5IgopCmBgYAoKWW91IGNhbiBhbHNvIGxvYWQgZXhpc3RpbmcgdGVzdHMgZnJvbSBhIHRlc3Qgc2NoZW1hIGZpbGUgbGlrZSB0aGlzOgpgYGBweXRob24Kb3AgPSBPcGVuQVBJUGVyZigKICB0ZXN0X3NjaGVtYV9wYXRoID0gInBhdGgvdG8vdGVzdF9zY2hlbWEuanNvbiIKKQpgYGAKU2NoZW1hIGZpbGVzIGNhbiBiZSBtb2RpZmllZCB0byBjb25maWd1cmUgdGVzdCBleGVjdXRpb24uCgojIyMgVGVzdCBFeGVjdXRpb24KClRvIHJ1biB0aGVzZSB0ZXN0cywgdXNlCmBgYHB5dGhvbgpvcC5ydW4oKQpgYGAKClRoaXMgd2lsbCBnZW5lcmF0ZSBhIHJlcG9ydCBwZGYgZmlsZSBpbiB5b3VyIHJlc3VsdHMgZGlyZWN0b3J5CgpGb3IgZGV0YWlsZWQgdXNhZ2UsIHJlZmVyIHRvIG91ciBbZG9jc10oaHR0cHM6Ly9vcGVuYXBpLXBlcmYuYXd0a25zLmNvbSkK readmeEtag: '"ecb6d9116981c3bb46c63a8d76fa012749a11840"' readmeLastModified: Mon, 19 Apr 2021 05:17:15 GMT repositoryId: 342141821 description: Automatic OpenAPI Endpoint Performance Testing created: '2021-02-25T06:10:54Z' updated: '2024-01-17T19:49:28Z' language: Python archived: true stars: 10 watchers: 2 forks: 1 owner: awtkns logo: https://avatars.githubusercontent.com/u/32209255?v=4 license: MIT repoEtag: '"b17aca551a7fcd7c5633fd0e4254b847d21b36e57534b4ad0239043ca6a50149"' repoLastModified: Wed, 17 Jan 2024 19:49:28 GMT foundInMaster: true category: Testing id: 5334723886325cf3863cf349634cd804 - source: openapi3 tags repository: https://github.com/mtamas7/spring-boot-3.2-authentication-openapi-archetype v3: true id: bb08e69a042c27bd064906e04e4824d5 repositoryMetadata: base64Readme: >- IyBTcHJpbmcgQm9vdCBBcmNoZXR5cGUgd2l0aCBwcmVjb25maWd1cmVkIE9wZW5BcGkgYW5kIFNwcmluZyBTZWN1cml0eQoKVGhpcyBpcyBhIG1hdmVuIGFyY2hldHlwZSBwcm9qZWN0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHN0YXJ0IGEgbmV3IHByb2plY3Qgd2l0aCBwcmVjb25maWd1cmVkIFNwcmluZyBTZWN1cml0eSAoYmFzZWQgb24gSldUIHRva2VuKSBhbmQgT3BlbkFwaSB3aGljaCBpcyBmcmVlbHkgbW9kaWZpYWJsZQoKIyMgVGVjaG5vbG9neSBzdGFjawotIFNwcmluZyBCb290IDMuMi40IChodHRwOi8vc3RhcnQuc3ByaW5nLmlvKQotIEhpYmVybmF0ZSwgU3ByaW5nIERhdGEgSlBBCi0gTGlxdWliYXNlCi0gTWFwc3RydWN0Ci0gTG9tYm9rCi0gU3dhZ2dlcgotIE1hdmVuCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyBQcmVyZXF1aXNpdGVzCgpNdXN0IGhhdmUgTWF2ZW4gMysgYW5kIEphdmEgMTcgaW5zdGFsbGVkCgpUbyBjcmVhdGUgYSBwcm9qZWN0IGZyb20gdGhlIGFyY2hldHlwZSBtdXN0IGZpcnN0IGJlIGluc3RhbGxlZCBpbiB0aGUgbG9jYWwgcmVwb3NpdG9yeS4KCkNoZWNrb3V0IHRoZSByZXBvc2l0b3J5IGFuZCBydW4KCmBgYAptdm4gY2xlYW4gaW5zdGFsbApgYGAKCiMjIyBDcmVhdGUgYSBuZXcgcHJvamVjdCBmcm9tIHRoZSBhcmNoZXR5cGUKYGBgCm12biBhcmNoZXR5cGU6Z2VuZXJhdGUgLURhcmNoZXR5cGVHcm91cElkPWNvbS5kaXZpZGUuYnkuemVyby5hcmNoZXR5cGUgLURhcmNoZXR5cGVBcnRpZmFjdElkPXNwcmluZ2Jvb3QzLjItYXV0aGVudGljYXRpb24tb3BlbmFwaS1hcmNoZXR5cGUgLURhcmNoZXR5cGVWZXJzaW9uPTEuMC4wLVNOQVBTSE9UIC1EZ3JvdXBJZD08WU9VUiBHUk9VUCBJRCBIRVJFPiAtRGFydGlmYWN0SWQ9PFlPVVIgQVJUSUZBQ1QgSUQgSEVSRT4gLUR2ZXJzaW9uPTEuMC4wLVNOQVBTSE9UIC1EYXJ0aWZhY3RJZENhbWVsQ2FzZT08WW91ckNhbWVsQ2FzZUFydGlmYWN0SWRIZXJlPgpgYGAKClRoZSBnZW5lcmF0ZWQgcHJvamVjdCBjb250YWlucyB0aHJlZSBkaWZmZXJlbnQgbW9kdWxlcyBhbmQgb25lIGRpcmVjdG9yeToKCmBgYGFwaWBgYAoKYGBgYXBwYGBgCgpgYGBzZWN1cml0eWBgYAoKYGBgZG9ja2VyYGBgCiMjIyMgQVBJCgpUaGUgQVBJIG1vZHVsZSBjb250YWlucyB0aGUgT3BlbkFwaSB5YW1sIGZpbGUgaW4gdGhlIGBgYHNyYy9tYWluL3Jlc291cmNlc2BgYCBmb2xkZXIuIENvbnRhaW5zIGV2ZXJ5dGhpbmcgbmVlZGVkIGZvciBhdXRoZW50aWNhdGlvbiAoY29udHJvbGxlciwgcmVxdWVzdHMsIHJlc3BvbnNlcykuCgojIyMjIEFQUAoKVGhpcyBBUFAgbW9kdWxlIGlzIGEgc2tlbGV0b24gZm9yIHRoZSBzcHJpbmcgYm9vdCBhcHBsaWNhdGlvbi4gVGhlIGFwcCB1c2VzIGEgcG9zdGdyZXMgZGF0YWJhc2UgdG8gc3RvcmUgdGhlIG5lY2Vzc2FyeSB1c2VyIGluZm9ybWF0aW9uIGFuZCBsaXF1aWJhc2UgdG8gbWFuYWdlIGRhdGFiYXNlIGNoYW5nZXMuIChpbmNsdWRlcyB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdXNlciBhbmQgdG9rZW4gdGFibGUpCgpEb2NrZXIgZmlsZToKClRoZSBkb2NrZXIgZGlyZWN0b3J5IGNvbnRhaW5zIGEgYGRvY2tlci1jb21wb3NlLnltbGAuIEJlZm9yZSBzdGFydCB1c2luZyB5b3UgaGF2ZSB0byBjaGFuZ2UgdGhlIGltYWdlIG5hbWUgdG8geW91ciBvd24uIAoKUmVxdWlyZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzOgoKYGBgREJfVVJMYGBgIFRoaXMgaXMgdGhlIHVybCBvZiB0aGUgcG9zdGdyZXMgc2VydmVyLiBEZWZhdWx0IHZhbHVlOiBgYGBqZGJjOnBvc3RncmVzcWw6Ly9sb2NhbGhvc3Q6NTQzMi9wb3N0Z3Jlc0RCYGBgIAoKYGBgREJfVVNFUk5BTUVgYGAgVGhpcyBpcyB0aGUgdXNlcm5hbWUgb2YgdGhlIHBvc3RncmVzIHNlcnZlci4gRGVmYXVsdCB2YWx1ZTogYGBgdXNlcm5hbWVgYGAgCgpgYGBEQl9QQVNTV09SRGBgYCBUaGlzIGlzIHRoZSBwYXNzd29yZCBvZiB0aGUgcG9zdGdyZXMgc2VydmVyLiBEZWZhdWx0IHZhbHVlOiBgYGBwYXNzd29yZGBgYCAKCiMjIyMgU0VDVVJJVFkKVGhpcyBTRUNVUklUWSBtb2R1bGUgY29udGFpbnMgYWxsIHRoZSBuZWNlc3NhcnkgcHJlY29uZmlndXJlZCBjbGFzcyB0byBtYWtlIHRoZSBhcHBsaWNhdGlvbiBzZWN1cmVkIHdpdGggSldUIHRva2VuLgoKIyMgQXV0aG9ycwoKKiAqKlRhbWFzIE1lc3phcm9zKioK readmeEtag: '"a690129629a224751957ad16206666af59947c94"' readmeLastModified: Wed, 03 Apr 2024 18:28:49 GMT repositoryId: 781624892 description: Preconfigured archetype for Spring Boot 3.2.4 with Spring Security and JWT created: '2024-04-03T18:28:37Z' updated: '2024-04-26T21:54:00Z' language: Java archived: false stars: 10 watchers: 1 forks: 0 owner: mtamas7 logo: https://avatars.githubusercontent.com/u/7900458?v=4 repoEtag: '"90b6db960e72c7ccc0c27787e33a46c3509c04cf99ce7a3489d3570b076432ae"' repoLastModified: Fri, 26 Apr 2024 21:54:00 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/apiaryio/dredd-transactions v3: true repositoryMetadata: base64Readme: >- IyBEcmVkZCBUcmFuc2FjdGlvbnMKClshW25wbSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvZHJlZGQtdHJhbnNhY3Rpb25zLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9kcmVkZC10cmFuc2FjdGlvbnMpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2FwaWFyeWlvL2RyZWRkLXRyYW5zYWN0aW9ucy5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9hcGlhcnlpby9kcmVkZC10cmFuc2FjdGlvbnMpClshW0J1aWxkIHN0YXR1c10oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vYXBpL3Byb2plY3RzL3N0YXR1cy9oaDhsNTBzc2FpM3A0ZDNmL2JyYW5jaC9tYXN0ZXI/c3ZnPXRydWUpXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L0FwaWFyeS9kcmVkZC10cmFuc2FjdGlvbnMvYnJhbmNoL21hc3RlcikKWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9ucG0vZHJlZGQtdHJhbnNhY3Rpb25zL2JhZGdlLnN2ZyldKGh0dHBzOi8vc255ay5pby90ZXN0L25wbS9kcmVkZC10cmFuc2FjdGlvbnMpCgoKRHJlZGQgVHJhbnNhY3Rpb25zIGxpYnJhcnkgY29tcGlsZXMgKkhUVFAgVHJhbnNhY3Rpb25zKiAoc2ltcGxlIFJlcXVlc3QtUmVzcG9uc2UgcGFpcnMpIGZyb20gQVBJIGRlc2NyaXB0aW9uIGRvY3VtZW50LgoKPiAqKk5vdGU6KiogVG8gYmV0dGVyIHVuZGVyc3RhbmQgKmVtcGhhc2l6ZWQqIHRlcm1zIGluIHRoaXMgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbR2xvc3Nhcnkgb2YgVGVybXNdW2FwaS1ibHVlcHJpbnQtZ2xvc3NhcnldLiBBbGwgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBkZXNjcmliZWQgdXNpbmcgdGhlIFtNU09OXVttc29uLXNwZWNdIGZvcm1hdC4KClRoaXMgcHJvamVjdCBzdXBlcnNlZGVzIFtCbHVlcHJpbnQgVHJhbnNhY3Rpb25zXVtibHVlcHJpbnQtdHJhbnNhY3Rpb25zXSBsaWJyYXJ5LgoKCiMjIEZlYXR1cmVzCgoqIEluaGVyaXRzIHBhcmFtZXRlcnMgZnJvbSBwYXJlbnQgKlJlc291cmNlKiBhbmQgKkFjdGlvbiogc2VjdGlvbnMuCiogRXhwYW5kcyAqVVJJIFRlbXBsYXRlcyouCiogV2FybnMgb24gdW5kZWZpbmVkIHBsYWNlaG9sZGVycyBpbiAqVVJJIFRlbXBsYXRlcyogKGJvdGggcXVlcnkgYW5kIHBhdGgpLgoqIFZhbGlkYXRlcyBVUkkgcGFyYW1ldGVyIHR5cGVzLgoqIFNlbGVjdHMgZmlyc3QgKlJlcXVlc3QqIGFuZCBmaXJzdCAqUmVzcG9uc2UqIGlmIG11bHRpcGxlIGFyZSBzcGVjaWZpZWQgaW4gdGhlIEFQSSBkZXNjcmlwdGlvbiBkb2N1bWVudC4KCgojIyMgRGVwcmVjYXRlZCBGZWF0dXJlcwoKKiBDb21waWxlcyBbVHJhbnNhY3Rpb24gTmFtZV1bdHJhbnNhY3Rpb24tb2JqZWN0LXNwZWNdIHN0cmluZyAodmFndWUgaWRlbnRpZmllcikgZm9yIGVhY2ggKlRyYW5zYWN0aW9uKi4KKiBQcm92aWRlcyBbVHJhbnNhY3Rpb24gT3JpZ2luXVt0cmFuc2FjdGlvbi1vYmplY3Qtc3BlY10gd2l0aCBwb2ludGVycyB0byBbQVBJIEVsZW1lbnRzXVthcGktZWxlbWVudHNdIGRlcml2ZWQgZnJvbSB0aGUgb3JpZ2luYWwgQVBJIGRlc2NyaXB0aW9uIGRvY3VtZW50LgoKPiAqKk5vdGU6KiogVGhlc2UgZmVhdHVyZXMgYXJlIHRvIGJlIHN1cGVyc2VkZWQgYnkgd2hhdGV2ZXIgY29tZXMgb3V0IG9mIHRoZSBwcm9wb3NhbCBpbiBbYXBpYXJ5aW8vZHJlZGQjMjI3XShodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vZHJlZGQvaXNzdWVzLzIyNykuCgoKIyMgSW5zdGFsbGF0aW9uCgpgYGAKbnBtIGluc3RhbGwgZHJlZGQtdHJhbnNhY3Rpb25zCmBgYAoKCiMjIERldmVsb3BtZW50CgpEcmVkZCBUcmFuc2FjdGlvbnMgbGlicmFyeSBpcyB3cml0dGVuIGluIEphdmFTY3JpcHQgKEVTMjAxNSspLgoKCiMjIFVzYWdlCgojIyMgYHBhcnNlYAoKUGFyc2VzIGdpdmVuIEFQSSBkZXNjcmlwdGlvbiBkb2N1bWVudCBpbnRvIEFQSSBFbGVtZW50cyB3aXRoIG9wdGlvbnMgc3BlY2lmaWMKdG8gRHJlZGQuIEFzc3VtZXMgdGhhdCBkb2N1bWVudHMgd2l0aCB1bnJlY29nbml6YWJsZSBmb3JtYXQgYXJlCltBUEkgQmx1ZXByaW50XVthcGktYmx1ZXByaW50XS4gVHVybnMgYW55IHBhcnNlciBmYWlsdXJlcywgaW5jbHVkaW5nCnRoZSB1bmV4cGVjdGVkIG9uZXMsIGludG8gW0FQSSBFbGVtZW50c11bYXBpLWVsZW1lbnRzXSBhbm5vdGF0aW9ucy4KCmBgYGphdmFzY3JpcHQKY29uc3QgcGFyc2UgPSByZXF1aXJlKCdkcmVkZC10cmFuc2FjdGlvbnMvcGFyc2UnKTsKLy8gY29uc3QgeyBwYXJzZSB9ID0gcmVxdWlyZSgnZHJlZGQtdHJhbnNhY3Rpb25zJyk7CgpwYXJzZSgnIyBNeSBBUElcbi4uLicsIChlcnJvciwgcGFyc2VSZXN1bHQpID0+IHsKICAvLyAuLi4KfSk7CmBgYAoKIyMjIGBjb21waWxlYAoKQ29tcGlsZXMgKkhUVFAgVHJhbnNhY3Rpb25zKiBmcm9tIGdpdmVuIFtBUEkgRWxlbWVudHNdW2FwaS1lbGVtZW50c10uICpIVFRQIFRyYW5zYWN0aW9ucyogYXJlIGEgYmFja2JvbmUgZGF0YSBzdHJ1Y3R1cmUgdG8gRHJlZGQuCgpgYGBqYXZhc2NyaXB0CmNvbnN0IGNvbXBpbGUgPSByZXF1aXJlKCdkcmVkZC10cmFuc2FjdGlvbnMvY29tcGlsZScpOwovLyBjb25zdCB7IGNvbXBpbGUgfSA9IHJlcXVpcmUoJ2RyZWRkLXRyYW5zYWN0aW9ucycpOwoKY29uc3QgY29tcGlsZVJlc3VsdCA9IGNvbXBpbGUobWVkaWFUeXBlLCBhcGlFbGVtZW50cywgZmlsZW5hbWUpOwpgYGAKCj4gKipOb3RlOioqIFRoZSBgZmlsZW5hbWVgIGFyZ3VtZW50IGlzIG9wdGlvbmFsIGFuZCBhYm91dCB0byBnZXQgZGVwcmVjYXRlZCwgc2VlIFsjNl1bZmlsZW5hbWUtZGVwcmVjYXRpb25dCgoKIyMgRGF0YSBTdHJ1Y3R1cmVzCgo8YSBuYW1lPSJwYXJzZS1yZXN1bHQtb2JqZWN0Ij48L2E+CiMjIyBQYXJzZSBSZXN1bHQgKG9iamVjdCkKClJlc3VsdCBvZiBwYXJzaW5nLgoKLSBgbWVkaWFUeXBlYDogYHRleHQvdm5kLmFwaWJsdWVwcmludGAgKHN0cmluZywgZGVmYXVsdCwgbnVsbGFibGUpIC0gTWVkaWEgdHlwZSBvZiB0aGUgaW5wdXQgZm9ybWF0LCBjYW4gYmUgZW1wdHkgaW4gY2FzZSBvZiBzb21lIGZhdGFsIGVycm9ycwotIGBhcGlFbGVtZW50c2AgKFtBUEkgRWxlbWVudHNdW2FwaS1lbGVtZW50c10pIC0gQVBJIEVsZW1lbnRzIHBhcnNlIHJlc3VsdAoKPGEgbmFtZT0iY29tcGlsZS1yZXN1bHQtb2JqZWN0Ij48L2E+CiMjIyBDb21waWxlIFJlc3VsdCAob2JqZWN0KQoKUmVzdWx0IG9mIGNvbXBpbGF0aW9uLiBBbG9uZ3NpZGUgY29tcGlsZWQgW1RyYW5zYWN0aW9uXVt0cmFuc2FjdGlvbi1vYmplY3Qtc3BlY10gb2JqZWN0cyBjb250YWlucyBhbHNvIGVycm9ycyBhbmQgd2FybmluZ3MsIG1haW5seSBmcm9tIEFQSSBkZXNjcmlwdGlvbiBwYXJzZXIuCgotIGBtZWRpYVR5cGVgOiBgdGV4dC92bmQuYXBpYmx1ZXByaW50YCAoc3RyaW5nLCBkZWZhdWx0LCBudWxsYWJsZSkgLSBNZWRpYSB0eXBlIG9mIHRoZSBpbnB1dCBmb3JtYXQsIGRlZmF1bHRzIHRvIEFQSSBCbHVlcHJpbnQgZm9ybWF0LiBDYW4gYmUgZW1wdHkgaW4gY2FzZSBvZiBzb21lIGZhdGFsIGVycm9ycy4KLSBgdHJhbnNhY3Rpb25zYCAoYXJyYXlbW1RyYW5zYWN0aW9uXVt0cmFuc2FjdGlvbi1vYmplY3Qtc3BlY11dKSAtIENvbXBpbGVkIF9IVFRQIFRyYW5zYWN0aW9uc18uCi0gYGFubm90YXRpb25zYCAoYXJyYXlbW0Fubm90YXRpb25dW2Fubm90YXRpb24tb2JqZWN0LXNwZWNdXSkgLSBFcnJvcnMgYW5kIHdhcm5pbmdzIHdoaWNoIG9jY3VycmVkIGR1cmluZyBwYXJzaW5nIG9mIHRoZSBBUEkgZGVzY3JpcHRpb24gb3IgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIHRyYW5zYWN0aW9ucy4KCjxhIG5hbWU9InRyYW5zYWN0aW9uLW9iamVjdCI+PC9hPgojIyMgVHJhbnNhY3Rpb24gKG9iamVjdCkKClJlcHJlc2VudHMgYSBzaW5nbGUgKkhUVFAgVHJhbnNhY3Rpb24qIChSZXF1ZXN0LVJlc3BvbnNlIHBhaXIpIGFuZCBpdHMgbG9jYXRpb24gaW4gdGhlIEFQSSBkZXNjcmlwdGlvbiBkb2N1bWVudC4gVGhlIGxvY2F0aW9uIGlzIHByb3ZpZGVkIGluIHR3byBmb3JtcywgYm90aCAqKmRlcHJlY2F0ZWQqKiBhcyBvZiBub3c6CgotIGBuYW1lYCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiwgYm90aCBodW1hbi0gYW5kIG1hY2hpbmUtcmVhZGFibGUuCi0gYG9yaWdpbmAgLSBPYmplY3Qgb2YgcmVmZXJlbmNlcyB0byBub2RlcyBvZiBbQVBJIEVsZW1lbnRzXVthcGktZWxlbWVudHNdIGRlcml2ZWQgZnJvbSB0aGUgb3JpZ2luYWwgQVBJIGRlc2NyaXB0aW9uIGRvY3VtZW50LgoKPiAqKk5vdGU6KiogVGhlc2UgdHdvIGZvcm1zIG9mIGxvY2F0aW5nIEhUVFAgVHJhbnNhY3Rpb25zIGFyZSB0byBiZSBzdXBlcnNlZGVkIGJ5IHdoYXRldmVyIGNvbWVzIG91dCBvZiB0aGUgcHJvcG9zYWwgaW4gW2FwaWFyeWlvL2RyZWRkIzIyN10oaHR0cHM6Ly9naXRodWIuY29tL2FwaWFyeWlvL2RyZWRkL2lzc3Vlcy8yMjcpLgoKCiMjIyBQcm9wZXJ0aWVzCgotIHJlcXVlc3QgKG9iamVjdCkgLSBIVFRQIFJlcXVlc3QgYXMgZGVzY3JpYmVkIGluIEFQSSBkZXNjcmlwdGlvbiBkb2N1bWVudC4KICAgIC0gbWV0aG9kCiAgICAtIHVyaTogYC9tZXNzYWdlYCAoc3RyaW5nKSAtIEluZm9ybWF0aXZlIFVSSSBvZiB0aGUgUmVxdWVzdC4KICAgIC0gaGVhZGVycyAoYXJyYXkpIC0gTGlzdCBvZiBIVFRQIGhlYWRlcnMgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIsIHdpdGggdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUgaGVhZGVyIG5hbWUsIGluY2x1ZGluZyBtdWx0aXBsZSBoZWFkZXJzIG9mIHRoZSBzYW1lIG5hbWUuCiAgICAgICAgLSAob2JqZWN0KQogICAgICAgICAgICAtIG5hbWU6IGBDb250ZW50LVR5cGVgIChzdHJpbmcpCiAgICAgICAgICAgIC0gdmFsdWU6IGB0ZXh0L3BsYWluYCAoc3RyaW5nKQogICAgLSBib2R5OiBgSGVsbG8gd29ybGQhXG5gIChzdHJpbmcpCi0gcmVzcG9uc2UgKG9iamVjdCkgLSBFeHBlY3RlZCBIVFRQIFJlc3BvbnNlIGFzIGRlc2NyaWJlZCBpbiBBUEkgZGVzY3JpcHRpb24gZG9jdW1lbnQuCiAgICAtIHN0YXR1czogYDIwMGAgKHN0cmluZykKICAgIC0gaGVhZGVycyAoYXJyYXkpIC0gTGlzdCBvZiBIVFRQIGhlYWRlcnMgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIsIHdpdGggdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUgaGVhZGVyIG5hbWUsIGluY2x1ZGluZyBtdWx0aXBsZSBoZWFkZXJzIG9mIHRoZSBzYW1lIG5hbWUuCiAgICAgICAgLSAob2JqZWN0KQogICAgICAgICAgICAtIG5hbWU6IGBDb250ZW50LVR5cGVgIChzdHJpbmcpCiAgICAgICAgICAgIC0gdmFsdWU6IGB0ZXh0L3BsYWluYCAoc3RyaW5nKQogICAgLSBib2R5IChzdHJpbmcsIG9wdGlvbmFsKQogICAgLSBzY2hlbWEgKHN0cmluZywgb3B0aW9uYWwpCgoKIyMjIERlcHJlY2F0ZWQgUHJvcGVydGllcwoKLSBuYW1lOiBgSGVsbG8gd29ybGQhID4gUmV0cmlldmUgTWVzc2FnZWAgKHN0cmluZykgLSBUcmFuc2FjdGlvbiBOYW1lLCBub24tZGV0ZXJtaW5pc3RpYyBicmVhZGNydW1iIGxvY2F0aW9uIG9mIHRoZSBIVFRQIFRyYW5zYWN0aW9uIHdpdGhpbiB0aGUgQVBJIGRlc2NyaXB0aW9uIGRvY3VtZW50LgotIG9yaWdpbiAob2JqZWN0KSAtIE9iamVjdCBvZiByZWZlcmVuY2VzIHRvIG5vZGVzIG9mIFtBUEkgRWxlbWVudHNdW2FwaS1lbGVtZW50c10gZGVyaXZlZCBmcm9tIHRoZSBvcmlnaW5hbCBBUEkgZGVzY3JpcHRpb24gZG9jdW1lbnQuCiAgICAtIGZpbGVuYW1lOiBgLi9hcGktZGVzY3JpcHRpb24uYXBpYmAgKHN0cmluZykKICAgIC0gYXBpTmFtZTogYE15IEFwaWAgKHN0cmluZykKICAgIC0gcmVzb3VyY2VHcm91cE5hbWU6IGBHcmVldGluZ3NgIChzdHJpbmcpCiAgICAtIHJlc291cmNlTmFtZTogYEhlbGxvLCB3b3JsZCFgIChzdHJpbmcpCiAgICAtIGFjdGlvbk5hbWU6IGBSZXRyaWV2ZSBNZXNzYWdlYCAoc3RyaW5nKQogICAgLSBleGFtcGxlTmFtZTogYEZpcnN0IGV4YW1wbGVgIChzdHJpbmcpCgo+ICoqTm90ZToqKiBUaGVzZSBwcm9wZXJ0aWVzIGFyZSB0byBiZSBzdXBlcnNlZGVkIGJ5IHdoYXRldmVyIGNvbWVzIG91dCBvZiB0aGUgcHJvcG9zYWwgaW4gW2FwaWFyeWlvL2RyZWRkIzIyN10oaHR0cHM6Ly9naXRodWIuY29tL2FwaWFyeWlvL2RyZWRkL2lzc3Vlcy8yMjcpLgoKCjxhIG5hbWU9ImFubm90YXRpb24tb2JqZWN0Ij48L2E+CiMjIyBBbm5vdGF0aW9uIChvYmplY3QpCgpEZXNjcmlwdGlvbiBvZiBhbiBlcnJvciBvciB3YXJuaW5nIHdoaWNoIG9jY3VycmVkIGR1cmluZyBwYXJzaW5nIG9mIHRoZSBBUEkgZGVzY3JpcHRpb24gb3IgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIHRyYW5zYWN0aW9ucy4KCiMjIyMgUHJvcGVydGllcwoKLSB0eXBlIChlbnVtW3N0cmluZ10pCiAgICAtIGBlcnJvcmAKICAgIC0gYHdhcm5pbmdgCi0gY29tcG9uZW50IChlbnVtW3N0cmluZ10pIC0gSW4gd2hpY2ggY29tcG9uZW50IG9mIHRoZSBjb21waWxhdGlvbiBwcm9jZXNzIHRoZSBhbm5vdGF0aW9uIG9jY3VycmVkCiAgICAtIGBhcGlEZXNjcmlwdGlvblBhcnNlcmAKICAgIC0gYHBhcmFtZXRlcnNWYWxpZGF0aW9uYAogICAgLSBgdXJpVGVtcGxhdGVFeHBhbnNpb25gCi0gbWVzc2FnZSAoc3RyaW5nKSAtIFRleHR1YWwgYW5ub3RhdGlvbi4gVGhpcyBpcyDigJMgaW4gbW9zdCBjYXNlcyDigJMgYSBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCB0byB1c2VyCi0gbG9jYXRpb24gKGFycmF5LCBmaXhlZCwgbnVsbGFibGUpIC0gTG9jYXRpb24gb2YgdGhlIGFubm90YXRpb24gaW4gdGhlIHNvdXJjZSBmaWxlLCByZXByZXNlbnRlZCBieSBhIHNpbmdsZSByYW5nZSBvZiBsaW5lIGFuZCBjb2x1bW4gbnVtYmVyIHBhaXJzIGlmIGF2YWlsYWJsZSwgb3IgYnkgYG51bGxgIG90aGVyd2lzZQogICAgLSAoYXJyYXkpIC0gU3RhcnQgbG9jYXRpb24KICAgICAgICAtIChudW1iZXIpIC0gTGluZSBudW1iZXIKICAgICAgICAtIChudW1iZXIpIC0gQ29sdW1uIG51bWJlcgogICAgLSAoYXJyYXkpIC0gRW5kIGxvY2F0aW9uCiAgICAgICAgLSAobnVtYmVyKSAtIExpbmUgbnVtYmVyCiAgICAgICAgLSAobnVtYmVyKSAtIENvbHVtbiBudW1iZXIKCiMjIyBEZXByZWNhdGVkIFByb3BlcnRpZXMKCi0gbmFtZTogYEhlbGxvIHdvcmxkISA+IFJldHJpZXZlIE1lc3NhZ2VgIChzdHJpbmcpIC0gVHJhbnNhY3Rpb24gTmFtZSwgbm9uLWRldGVybWluaXN0aWMgYnJlYWRjcnVtYiBsb2NhdGlvbiBvZiB0aGUgcmVsZXZhbnQgSFRUUCBUcmFuc2FjdGlvbiB3aXRoaW4gdGhlIEFQSSBkZXNjcmlwdGlvbiBkb2N1bWVudC4KLSBvcmlnaW4gKG9iamVjdCkgLSBPYmplY3Qgb2YgcmVmZXJlbmNlcyB0byBub2RlcyBvZiBbQVBJIEVsZW1lbnRzXVthcGktZWxlbWVudHNdIGRlcml2ZWQgZnJvbSB0aGUgb3JpZ2luYWwgQVBJIGRlc2NyaXB0aW9uIGRvY3VtZW50LgogICAgLSBmaWxlbmFtZTogYC4vYXBpLWRlc2NyaXB0aW9uLmFwaWJgIChzdHJpbmcpCiAgICAtIGFwaU5hbWU6IGBNeSBBcGlgIChzdHJpbmcpCiAgICAtIHJlc291cmNlR3JvdXBOYW1lOiBgR3JlZXRpbmdzYCAoc3RyaW5nKQogICAgLSByZXNvdXJjZU5hbWU6IGBIZWxsbywgd29ybGQhYCAoc3RyaW5nKQogICAgLSBhY3Rpb25OYW1lOiBgUmV0cmlldmUgTWVzc2FnZWAgKHN0cmluZykKICAgIC0gZXhhbXBsZU5hbWU6IGBGaXJzdCBleGFtcGxlYCAoc3RyaW5nKQoKPiAqKk5vdGU6KiogVGhlc2UgcHJvcGVydGllcyBhcmUgdG8gYmUgc3VwZXJzZWRlZCBieSB3aGF0ZXZlciBjb21lcyBvdXQgb2YgdGhlIHByb3Bvc2FsIGluIFthcGlhcnlpby9kcmVkZCMyMjddKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlhcnlpby9kcmVkZC9pc3N1ZXMvMjI3KS4KCgpbZHJlZGRdOiBodHRwczovL2RyZWRkLm9yZwpbbXNvbi1zcGVjXTogaHR0cHM6Ly9naXRodWIuY29tL2FwaWFyeWlvL21zb24KW2FwaS1lbGVtZW50c106IGh0dHA6Ly9hcGktZWxlbWVudHMucmVhZHRoZWRvY3Mub3JnLwpbYXBpLWJsdWVwcmludF06IGh0dHBzOi8vYXBpYmx1ZXByaW50Lm9yZy8KW2FwaS1ibHVlcHJpbnQtZ2xvc3NhcnldOiBodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vYXBpLWJsdWVwcmludC9ibG9iL21hc3Rlci9HbG9zc2FyeSUyMG9mJTIwVGVybXMubWQKW2JsdWVwcmludC10cmFuc2FjdGlvbnNdOiBodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vYmx1ZXByaW50LXRyYW5zYWN0aW9ucy8KCgpbZmlsZW5hbWUtZGVwcmVjYXRpb25dOiBodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vZHJlZGQtdHJhbnNhY3Rpb25zL2lzc3Vlcy82Cltjb21waWxlLXJlc3VsdC1vYmplY3Qtc3BlY106ICNjb21waWxlLXJlc3VsdC1vYmplY3QKW3RyYW5zYWN0aW9uLW9iamVjdC1zcGVjXTogI3RyYW5zYWN0aW9uLW9iamVjdApbYW5ub3RhdGlvbi1vYmplY3Qtc3BlY106ICNhbm5vdGF0aW9uLW9iamVjdApbc291cmNlLW1hcF06IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWZyYWN0cHJvamVjdC9yZWZyYWN0LXNwZWMvYmxvYi9tYXN0ZXIvbmFtZXNwYWNlcy9wYXJzZS1yZXN1bHQtbmFtZXNwYWNlLm1kI3NvdXJjZS1tYXAtZWxlbWVudAo= readmeEtag: '"87add22e0b40b26bddb1a4f6454442e6d920ae51"' readmeLastModified: Tue, 01 Oct 2019 14:31:56 GMT repositoryId: 54039079 description: >- Compiles a list of HTTP transactions (request-response pairs) from an API description document created: '2016-03-16T14:30:38Z' updated: '2021-10-01T06:35:22Z' language: JavaScript archived: false stars: 10 watchers: 6 forks: 9 owner: apiaryio logo: https://avatars.githubusercontent.com/u/765943?v=4 license: MIT repoEtag: '"e03e5e2f96b15e8431be9910ba07937ab8cf405a2fea7fcd038cd946014edc4f"' repoLastModified: Fri, 01 Oct 2021 06:35:22 GMT foundInMaster: true category: Testing id: 180ad77913c096145acf085c2f8a0be8 - source: openapi3 tags repository: https://github.com/lornajane/openapi-blockly-representation v3: true id: c97dc48c739fd02596e7521df5111ca3 repositoryMetadata: base64Readme: >- IyBCbG9ja2x5IHJlcHJlc2VudGF0aW9uIG9mIE9wZW5BUEkKClRoaXMgZG9lc24ndCBjb21waWxlIHRvIE9wZW5BUEkgKHB1bGwgcmVxdWVzdHMgd2VsY29tZSksIGJ1dCBJIHVzZSB0aGVzZSBibG9ja3MgYXMgYSB0ZWFjaGluZyBhaWQuIFlvdSdyZSB3ZWxjb21lIHRvIHVzZSB0aGVtIHRvby4KCiFbQSBzaW5nbGUgZW5kcG9pbnQgcmVwcmVzZW50ZWQgYnkgYmxvY2tzXSguL2ltYWdlcy9vcGVuYXBpLXNjaGVtYS1yZWYtYmxvY2tzLnBuZykKCiMjIEdldCBzdGFydGVkCgpSdW4gYG5wbSBpbnN0YWxsYC4KClRoZW4gc2VydmUgYGluZGV4Lmh0bWxgIGxvY2FsbHkuIEl0J3MgdXNlZnVsIHRvIGhhdmUgaXQgcmVsb2FkLCBzbyBJIHVzZSB0aGlzOgoKYGBgCm5weCBicm93c2VyLXN5bmMgc3RhcnQgLS1zZXJ2ZXIgLS1maWxlcyBpbmRleC5odG1sCmBgYAoKIyMjIEV4YW1wbGUgYmxvY2tzCgpUcnkgYGV4YW1wbGUuanNvbmAuCgojIyMgVGVjaG5pY2FsIG5vdGVzCgpUaGUgInNhdmUiIGZ1bmN0aW9uYWxpdHkgdXNlcyBsb2NhbCBzdG9yYWdlIHNvIHlvdSBjYW4gZW5naW5lZXIgdGhlIGJsb2NrcyB3aXRob3V0IGxvc2luZyB3aGF0IHlvdSBidWlsdCBvbiByZWxvYWQuCgojIyBVc2VkIGJ5CgpTZW5kIGEgcHVsbCByZXF1ZXN0IGlmIHlvdSB1c2UgdGhpcyBwcm9qZWN0PyBMZXQncyBzaGFyZSEKCi0gTG9ybmEgKCBbbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb3JuYWphbmUvKSApIGluIG15IHRhbGsgW09wZW5BUEkgZm9yIERvY3VtZW50YXJpYW5zXShodHRwczovL25vdGkuc3QvbG9ybmFqYW5lLzRPamVtMi9vcGVuYXBpLWZvci1kb2N1bWVudGFyaWFucykK readmeEtag: '"824b101a611d17694bc05c076a3f012459386d2e"' readmeLastModified: Sat, 10 Jun 2023 19:00:45 GMT repositoryId: 637387454 description: Demo repo uses blockly to visualise structure of OpenAPI created: '2023-05-07T12:05:23Z' updated: '2024-05-22T20:01:55Z' language: HTML archived: false stars: 10 watchers: 1 forks: 0 owner: lornajane logo: https://avatars.githubusercontent.com/u/172607?v=4 license: Apache-2.0 repoEtag: '"e74950d8968ef6c7f4a1a84fa46d0b46f0c3be327337bb9a1fdd321aab3ea596"' repoLastModified: Wed, 22 May 2024 20:01:55 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/metamug/r2 v3: true id: 6a1c275d56f9cea18e372366b6f469f3 repositoryMetadata: base64Readme: >- IyBSMgpSMiBpcyBhbiBvcGVuIHNvdXJjZSBSRVNUIFJlc291cmNlIHNlcnZlci4gSXQgY29tZXMgd2l0aCBhIHJlYWR5IHRvIHVzZSBSRVNUIEFQSS4gRGV2ZWxvcGVyIGNhbiBhZGQvZWRpdCByZXNvdXJjZXMgdG8gdGhlIHNlcnZlcgp1c2luZyBSMiBDb25zb2xlCgohW01ldGFtdWcgUmVzb3VyY2UgU2NyZWVuXShodHRwczovL21ldGFtdWcuY29tL2ltZy9yZXMtc2NyZWVuLnBuZykKCiMjIFIyIENvbnNvbGUKUjIgY29uc29sZSBjb21lcyB3aXRoIGZvbGxvd2luZyBmZWF0dXJlcy4KCiogUkVTVCBSZXNvdXJjZSBNYW5hZ2VtZW50IAoqIEhvdCBkZXBsb3ltZW50IGZvciBSRVNUIFJlc291cmNlcwoqIFJlc291cmNlIGVkaXRvciB3aXRoIGF1dG9jb21wbGV0ZSBhbmQgcXVlcnkgdGVzdGluZyAodXNpbmcgb3BlbiBzb3VyY2UgcHJvamVjdCkKKiBPcGVuIEFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZC4KCiMjIEFQSSBJbnRlZ3JhdGlvbiB3aXRoIFhSZXF1ZXN0CgpBUEkgSW50ZWdyYXRpb24gd2l0aCB0aGlyZCBwYXJ0eSBzZXJ2aWNlcyBsaWtlIEFXUywgRmFjZWJvb2ssIFR3aXR0ZXIsIEZpcmViYXNlLCBQYXlQYWwsIE1haWxjaGltcCBhbmQgbW9yZS4KQ29tbXVuaWNhdGlvbiB3aXRoIG11bHRpcGxlIHNlcnZpY2VzIGluIGEgc2luZ2xlIHJlcXVlc3QgdXNpbmcgQVBJIEdhdGV3YXlzLgoKIVtNZXRhbXVnIEFQSSBJbnRlZ3JhdGlvbl0oaHR0cHM6Ly9tZXRhbXVnLmNvbS9pbWcvYXBpLWludGVncmF0aW9uMS5zdmcpCgoKIyMgb3BlbmFwaS1yZXN0LW1vZGVsCgohW10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL21ldGFtdWcvb3BlbmFwaS1yZXN0LW1vZGVsLnN2Zz9icmFuY2g9b3Blbi1hcGkpIFshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9tZXRhbXVnL29wZW5hcGktcmVzdC1tb2RlbC9icmFuY2gvb3Blbi1hcGkvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL21ldGFtdWcvb3BlbmFwaS1yZXN0LW1vZGVsKQoKIVtNZXRhbXVnIE9wZW4gQVBJIEludGVncmF0aW9uXShodHRwczovL21ldGFtdWcuY29tL2ltZy9vcGVuYXBpLXNwZWNpZmljYXRpb24uc3ZnKQoKCkNvbnZlcnQgW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIFNwZWMgZmlsZSBpbnRvIFtSZXNvdXJjZSBSZXNvdXJjZSBYTUxdKGh0dHBzOi8vbWV0YW11Zy5jb20vZG9jcy9yZXNvdXJjZS1maWxlKSBmaWxlcy4KVGhpcyBwcm9qZWN0IGFpbXMgdG8gZ2VuZXJhdGUgY29tcGF0aWJsZSByZXNvdXJjZSB4bWxzIGZvciBhIGdpdmVuIHNwZWMgZmlsZSBqc29uL3ltbC4KClRoZSBzYW1wbGUgcGV0c3RvcmUgeW1sIGZpbGUgd2lsbCBjb252ZXJ0IHRvIGEgbnVtYmVyIG9mIHJlc291cmNlIHhtbHMuCmh0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vCgojIyMgUkVTVCBSZXNvdXJjZSBGaWxlcwoKUkVTVCBSZXNvdXJjZSBmaWxlcyBhcmUgZGVzaWduZWQgdG8gYWRkcmVzcyBhIFJFU1QgcmVzb3VyY2VzIGluZGl2aWR1YWxseS4gRWFjaCBSZXNvdXJjZSBmaWxlCm1hcHMgdG8gaXRzIG93biBVUkkuIFRoaXMgbWFrZXMgcmVzb3VyY2VzIGVhc2lseSBpZGVudGlmaWFibGUgYW5kIG1hbmFnYWJsZS4KCmh0dHBzOi8vbWV0YW11Zy5jb20vZG9jcy9yZXNvdXJjZS1maWxlCgojIyMgRGF0YXNvdXJjZXMKCltSZWFkIHRoaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhbXVnL1IyL2Jsb2IvZGV2ZWxvcC9kb2NzL2RhdGFzb3VyY2VzLm1kKQoKIyMjIE9wZW4gQVBJIAoKaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24KCiMjIERlcGVuZGVuY2llcwoKW01hc29uXShodHRwczovL2dpdGh1Yi5jb20vbWV0YW11Zy9tYXNvbikgdjMuNCBhdmFpbGFibGUgb24gTWF2ZW4gY2VudHJhbAo= readmeEtag: '"53382c632678bb35baba33a0a86dd5730360631c"' readmeLastModified: Sun, 27 Nov 2022 08:58:45 GMT repositoryId: 213134305 description: >- R2 is your REST API Server that can connect with your database and other APIs using simple resource configurations created: '2019-10-06T08:37:57Z' updated: '2023-06-27T02:44:45Z' language: Java archived: false stars: 10 watchers: 3 forks: 3 owner: metamug logo: https://avatars.githubusercontent.com/u/21278398?v=4 repoEtag: '"d2b96637fe026a43bb11414b3042446a407e9522e11cc57573ba391b73269d5f"' repoLastModified: Tue, 27 Jun 2023 02:44:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/evilmint/aws-openapi-lint v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEFXUyBBUEkgR2F0ZXdheSBsaW50ZXIKClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9ldmlsbWludC9hd3Mtb3BlbmFwaS1saW50L2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2V2aWxtaW50L2F3cy1vcGVuYXBpLWxpbnQpIFshW2xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvZXZpbG1pbnQvYXdzLW9wZW5hcGktbGludCldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldmlsbWludC9hd3Mtb3BlbmFwaS1saW50KQoKQVdTLU9wZW5BUEktTGludCBpcyBhIHNpbXBsZSBPcGVuQVBJIDMgeWFtbCAvIGpzb24gc3BlYyBsaW50ZXIgZGVzaWduZWQgZm9yIGNoZWNraW5nIEFQSSBHYXRld2F5IGludGVncmF0aW9uLgoKIyMgUnVsZXMKCkl0IGNvbnRhaW5zIHJ1bGVzIGZvciBjaGVja2luZyB3aGV0aGVyOgoKLSB5b3UgaGF2ZSBhbiBhdXRob3JpemVyIG9uIE9QVElPTlMKLSBhdXRob3JpemVyIGlzIG1lbnRpb25lZCBpbiBgcmVxdWVzdFBhcmFtZXRlcnNgIGJ1dCBpcyBub3QgcHJlc2VudCBpbiBgc2VjdXJpdHlgCi0gaHR0cCB2ZXJicyBhcmUgY29uc2lzdGVudCBpbiB0aGUgcGF0aCBhbmQgaW50ZWdyYXRpb24KLSBhbGwgdXNlZCBoZWFkZXJzIGluIHBhdGggZnJvbSBhbGwgdmVyYnMgYXJlIG1lbnRpb25lZCBpbiBDT1JTIHJ1bGVzIGFuZCB2aWNlLXZlcnNhCi0gQ09SUyBydWxlcyBhbGxvdyBhbGwgdmVyYnMgbWVudGlvbmVkIGluIHRoZSBwYXRoCi0gQ09SUyBydWxlcyBhcmUgcHJlc2VudAotIGFtYXpvbiBpbnRlZ3JhdGlvbiBpcyBwcmVzZW50Ci0gcGF0aCBwYXJhbWV0ZXJzIHByZXNlbnQgaW4gYHJlcXVlc3RQYXJhbWV0ZXJzYCBhcmUgbm90IHVzZWQgaW4gdGhlIGRpcmVjdCBwYXRoIHBhcmFtZXRlcnMgYW5kIHZpY2UtdmVyc2EKCiMjIFJvYWRtYXAKCi0gWyBdIFVwZGF0ZSBSRUFETUUgd2l0aCBydWxlIG5hbWVzIGFuZCBiZWhhdmlvcgotIFtYXSBTdXBwb3J0IGpzb24gc3BlY3MKLSBbWF0gQWRkIG9wdGlvbmFsIHJ1bGUgZm9yIGNoZWNraW5nIGJhc2UgdXJsIGVxdWFsaXR5Ci0gWyBdIEFkZCBzdXBwb3J0IGZvciBjb25maWd1cmF0aW9uIHlhbWwgZmlsZQotIFsgXSBBZGQgcG9zc2liaWxpdHkgdG8gZGlzYWJsZSBydWxlIGNoZWNraW5nIG9uIHNwZWNpZmljIHBhdGhzCi0gWyBdIEFkZCBwb3NzaWJpbGl0eSB0byBkaXNhYmxlIHJ1bGVzIHBlciBwYXRoCi0gWyBdIElnbm9yZSBwYXRoLXBhcmFtcyBpZiBgaHR0cF9wcm94eWAgaW50ZWdyYXRpb24gdHlwZSB1c2VkCi0gW1hdIEFkZCBvcHRpb24gdG8gZGlzYWJsZSBydWxlcyB2aWEgQ0xJCi0gW1hdIEFkZCB3YXJuaW5nIHRocmVzaG9sZCB0byByZXR1cm4gd2l0aCBzdGF0dXMgY29kZSAwIGlmIGxpbWl0IG5vdCBleGNlZWRlZAotIFtYXSBGaXggZmxha2U4IHZpb2xhdGlvbnMKLSBbWF0gQWRkIGEgbGljZW5zZQotIFtYXSBQdWJsaXNoIHRvIFB5UEkgb3IgYWxpa2UKLSBbWF0gQ29uZmlndXJlIHByb3Blcmx5IHVwIEdpdEh1YiBhY3Rpb25zIHRvIHJ1biB0ZXN0cyBvbiBwdXNoCgojIyBJbnN0YWxsYXRpb24KCmBgYApwaXAgaW5zdGFsbCBhd3Mtb3BlbmFwaS1saW50CmBgYAoKIyMgVXNhZ2UKCmAkIGF3cy1vcGVuYXBpLWxpbnQgcGF0aC90by9zcGVjLnltbGAKCmBgYAp1c2FnZTogbWFpbi5weSBbLWhdIFstLXRyZWF0LWVycm9ycy1hcy13YXJuaW5nc10KICAgICAgICAgICAgICAgWy0td2FybmluZy10aHJlc2hvbGQgV0FSTklOR19USFJFU0hPTERdCiAgICAgICAgICAgICAgIFstLWV4Y2x1ZGUtcnVsZXMgRVhDTFVERV9SVUxFU10KICAgICAgICAgICAgICAgbGludF9maWxlCgpMaW50IE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgYmFzZWQgb24gQVdTIEFQSSBHYXRld2F5LgoKcG9zaXRpb25hbCBhcmd1bWVudHM6CiAgbGludF9maWxlICAgICAgICAgICAgIFNwZWNpZnkgcGF0aCB0byB0aGUgb3BlbmFwaSBzY2hlbWEgZmlsZS4KCm9wdGlvbmFsIGFyZ3VtZW50czoKICAtaCwgLS1oZWxwICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdAogIC0tdHJlYXQtZXJyb3JzLWFzLXdhcm5pbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIFRyZWF0cyBlcnJvcnMgYXMgd2FybmluZ3MgKGV4aXQgY29kZSB3aWxsIGJlIDAgdW5sZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgdGhyZXNob2xkIGlzIHNwZWNpZmllZAogIC0td2FybmluZy10aHJlc2hvbGQgV0FSTklOR19USFJFU0hPTEQKICAgICAgICAgICAgICAgICAgICAgICAgV2FybmluZyB0aHJlc2hvbGQgd2hpY2ggd2hlbiBzdXJwYXNzZWQgcmVuZGVycyBleGl0CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgdG8gYmVjb21lIDEpCiAgLS1leGNsdWRlLXJ1bGVzIEVYQ0xVREVfUlVMRVMKICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWQgcnVsZXMgc2VwYXJhdGVkIGJ5IGNvbW1hLgoKYGBgCg== readmeEtag: '"1237c8cca93439cf194c3812e78bff8f53a67a55"' readmeLastModified: Sun, 20 Mar 2022 15:58:07 GMT repositoryId: 224503318 description: AWS Gateway Integration linter for OpenAPI 3.0.x specs created: '2019-11-27T19:31:56Z' updated: '2023-03-24T02:31:23Z' language: Python archived: false stars: 10 watchers: 1 forks: 1 owner: evilmint logo: https://avatars.githubusercontent.com/u/9850720?v=4 license: MIT repoEtag: '"d86c18e5d899569295d02a763292840130d2e02cd50dfc35d1a8540a82845af6"' repoLastModified: Fri, 24 Mar 2023 02:31:23 GMT foundInMaster: true category: - Description Validators - Parsers id: 40f844dd3ee203b666df2860c6b92afb - source: openapi3 tags repository: https://github.com/matchid-project/deces-backend v3: true repositoryMetadata: base64Readme: >- IyBBUEkgUGVyc29ubmVzIETDqWPDqWTDqWVzIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vbWF0Y2hJRC1wcm9qZWN0L2RlY2VzLXVpL3Jhdy9kZXYvcHVibGljL2Zhdmljb24uc3ZnIiB3aWR0aD0iMTgwIiBhbGlnbj0icmlnaHQiIC8+CgohW0J1aWxkIHN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvbWF0Y2hpZC1wcm9qZWN0L2RlY2VzLWJhY2tlbmQvZG9ja2VyaW1hZ2UueW1sKSBbIVtMaWNlbnNlOiBMR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtTEdQTCUyMHYzLWJsdWUuc3ZnKV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLTMuMCkgIVtEb2NrZXIgUHVsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL3B1bGxzL21hdGNoaWQvZGVjZXMtYmFja2VuZD9sYWJlbD1Eb2NrZXIlMjBwdWxscykKCkFQSSBmb3IgcGVvcGxlIHdobyBkaWVkIGluIEZyYW5jZSBmcm9tIDE5NzAuCgojIyBGZWF0dXJlcwoKKiBNdWx0aXBsZSBmaWVsZHMgY2FuIGJlIHVzZWQgYXMgYSBmaWx0ZXI6CiAgKiBGaXJzdC9MYXN0IG5hbWUKICAqIEJpcnRoL0RlYXRoIGRhdGUKICAqIEJpcnRoL0RlYXRoIGxvY2F0aW9uIChjb3VudHJ5LCBkZXBhcnRtZW50LCBjaXR5LCBncHMgY29vcmRpbmF0ZSkKICAqIEFnZQogICogU2V4CiogVGhlIEFQSSBjYW4gaGFuZGxlIGNvbW1vbiBtaXN0YWtlcyBpbiBmaWVsZHMgdGhhbmtzIHRvIGZ1enp5IG1hdGNoaW5nCiogQnVsayBwcm9jZXNzIChDU1Ygb3IgYnVsayBKU09OKSBmb3IgbXVsdGlwbGUgaWRlbnRpdGllcwoqIEV4cHJlc3MgZnJhbWV3b3JrIGZvciBSRVNUIEFQSQoqIE9wZW5BUEl2MyBkb2N1bWVudGF0aW9uIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHVzaW5nCiAgW1RTT0FdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlYXV0cnkvdHNvYSkKKiBEb2NrZXIgaW1hZ2UgaXMgcHVibGlzaGVkIGF0IFtkb2NrZXIKICBodWJdKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9tYXRjaGlkL2RlY2VzLWJhY2tlbmQpIHVzaW5nIEdpdEh1YiBBY3Rpb25zLgoKRGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgYXQgW3RoaXMgc3dhZ2dlciBwYWdlXShodHRwczovL2RlY2VzLm1hdGNoaWQuaW8vZGVjZXMvYXBpL3YxL2RvY3MpCgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdXNpbmcgZG9ja2VyIGNvbXBvc2U6CgpgYGBiYXNoCm1ha2UgdXAKYGBgCgpCZWZvcmUgc3RhcnRpbmcgYSBkYXRhYmFzZSBoYXMgdG8gYmUgY2hhcmdlZCBpbiBlbGFzdGljc2VhcmNoLiBQbGVhc2UgcmVmZXIgdG8KW2RhdGFwcmVwIHJlcG9zaXRvcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRjaElELXByb2plY3QvZGVjZXMtZGF0YXByZXApLgoKIyMgUHJvamVjdCByZXNvdXJjZXMKCiogW1NvdXJjZSBjb2RlXShodHRwczovL2dpdGh1Yi5jb20vbWF0Y2hpZC1wcm9qZWN0L2RlY2VzLWJhY2tlbmQpCiogW0lzc3VlIHRyYWNrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRjaGlkLXByb2plY3QvZGVjZXMtYmFja2VuZC9pc3N1ZXMpCgojIyBMaWNlbnNlCgpTb3VyY2UgY29kZSBoYXMgYmVlbiBwdWJsaXNoZWQgdXNpbmcgW0xHUEwgMy4wXShodHRwczovL2dpdGh1Yi5jb20vbWF0Y2hJRC1wcm9qZWN0L2RlY2VzLWJhY2tlbmQvYmxvYi9kZXYvTElDRU5DRSkuCgrCqSAyMDIwIENyaXN0aWFuIEJyb2thdGUsIEROVU0gLSBTRElUCg== readmeEtag: '"67769a9cac5f62dfc06148707df79f4a7c0dbb84"' readmeLastModified: Tue, 28 May 2024 05:57:15 GMT repositoryId: 242171506 description: 'API Personnes décédées ' created: '2020-02-21T15:33:05Z' updated: '2024-09-04T05:11:05Z' language: TypeScript archived: false stars: 9 watchers: 3 forks: 4 owner: matchID-project logo: https://avatars.githubusercontent.com/u/32673019?v=4 license: LGPL-3.0 repoEtag: '"599233509ed30cd75790417a0eccd063189f102ffce62a6872add2020b111019"' repoLastModified: Wed, 04 Sep 2024 05:11:05 GMT foundInMaster: true category: Server id: a1b78d0ba8dd46d8098f77bf077b6cac - source: openapi3 tags repository: https://github.com/ckaratzas/vertx-openapi-spec-generator v3: true repositoryMetadata: base64Readme: >- IyBWZXJ0eC1PcGVuQXBpLVNwZWMtR2VuZXJhdG9yClRoZSBwdXJwb3NlIG9mIHRoaXMgcmVwb3NpdG9yeSBpcyB0byBmYWNpbGl0YXRlIHRoZSBhdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiBPcGVuQVBJIDMgc3BlYyBmcm9tICJyZXN0LWxpa2UiIHZlcnR4IHJvdXRlcy4gVGhlIGZ1bmN0aW9uYWwgbmF0dXJlIG9mIHZlcnR4Cm1ha2VzIHRoaXMgam9iIGRpZmZpY3VsdCB0aHVzIG5vIHNlcmlvdXMgb2ZmaWNpYWwgdG9vbCBleGlzdHMgYXQgdGhlIG1vbWVudC4gSW4gb3JkZXIgdG8gbWl0aWdhdGUgdGhlIHByb2JsZW0gd2UgdHJ5IHRvIGRlc2NyaWJlIHRoZSAKZ2VuZXJhbCBhbGdvcml0aG0gYW5kIGFzc3VtcHRpb25zIG1hZGU6CgoxLiBHZW5lcmF0aW9uIG9mIE9wZW5BUEkgMyBTcGVjIGlzIGdlbmVyYXRlZCBhdCBydW50aW1lIGJ5IGludHJvc3BlY3Rpb24gb2YgdGhlIHZlcnR4IFJvdXRlciBPYmplY3Qgd2hpY2ggY29udGFpbnMgdGhlIHJvdXRlcy4gSWYgc29tZW9uZSB3aXNoZXMKdG8gcGVyZm9ybSBnZW5lcmF0aW9uIGF0IGJ1aWxkIHRpbWUsIGEgcG9zc2libGUgc29sdXRpb24gaXMgdG8gZ2VuZXJhdGUgdGhlIHJvdXRlIGluIGEgdW5pdCB0ZXN0IGFuZCBjcmVhdGUgdGhlIHNwZWMgZHVyaW5nIHRlc3QgZXhlY3V0aW9uLgoyLiBFYWNoIHZlcnR4IHJvdXRlIHRoYXQgbmVlZHMgdG8gdGFrZSBwYXJ0IGluIHRoZSBzcGVjIG11c3QgY29udGFpbiBhdCBtb3N0IG9uZSBoYW5kbGVyIHRoYXQgZGVsZWdhdGVzIHRvIGEgbWV0aG9kIHRoYXQgaXMgZGVjb3JhdGVkIHdpdGgKYW4gJ2lvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLk9wZXJhdGlvbicgYW5ub3RhdGlvbi4gVGhlIGhhbmRsZXIgaXRzZWxmIG11c3Qgbm90IGNsb3NlIGluIG5vdGhpbmcgYnV0IHRoZSByb3V0aW5nIGNvbnRleHQuIFRoaXMgd2lsbCBhaWQKdGhlIGludHJvc3BlY3Rpb24gb2YgdGhlIGFjdHVhbCB0eXBlIGxvY2F0ZWQgaW4gdGhlIEpWTSBzeW50aGV0aWMgY2xhc3Mgb2YgdGhlIGhhbmRsZXIgd2hpY2ggYWN0dWFsbHkgY29udGFpbnMgdGhlIGFubm90YXRlZCBtZXRob2QuClRoYXQgaW1wbGllcyB0aGF0IGEgcm91dGUgY2FuIGhhdmUgbWFueSBpbnRlcm1lZGlhdGUgaGFuZGxlcnMgZGVwZW5kaW5nIG9uIHRoZSB1c2UgY2FzZSBhbmQgc3RpbGwgZXhwcmVzcyB0aGUgb3ZlcmFsbCByZXN1bHQgdGhyb3VnaCBhbgonaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMuT3BlcmF0aW9uJyBhbm5vdGF0aW9uIGZyb20gdGhlIHNlbGVjdGVkIGhhbmRsZXIuCjMuIEFsbCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5PcGVyYXRpb24nIGFubm90YXRpb25zIG11c3QgY29udGFpbiB0aGUgJ21ldGhvZCcgYXR0cmlidXRlIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gYmUgY3Jvc3MtbWF0Y2hlZCB3aXRoIHRoZSByb3V0ZQpkZWZpbml0aW9uIChlLmcgcm91dGUuaGVhZCguLi4uKSAtPiBhbm5vdGF0aW9uIGluIG1ldGhvZCBtdXN0IGhhdmUgdGhlICdIRUFEJyB2YWx1ZSkKNC4gVGhlIGdlbmVyYXRvciBhdCB0aGUgbW9tZW50IHRyaWVzIHRvIGZvY3VzIG9uIE9wZXJhdGlvbnMgYW5kIGp1c3QgcHJvdmlkZSB0aGUgYmFzaWNzIGZvciBvdGhlciBwYXJ0cyBvZiB0aGUgc3BlYyAoSW5mbywgQ29udGFjdHMsIFNlcnZlcykgc2luY2UKbW9zdCBvZiB0aGVtIGFyZSBjb25maWd1cmF0aW9uIHNwZWNpZmljLgo1LiBNYXBwaW5ncyBiZXR3ZWVuIGFubm90YXRpb25zIGFuZCBPcGVuQVBJIDMgbW9kZWwgYXJlIG1pc3NpbmcgYnV0IHRoZSBvdmVyYWxsIGNvbmNlcHQgbWFrZXMgZXh0ZW5zaW9ucyBlYXNpbHkgYWRqdXN0ZWQuCjYuIE5PIEpBWC1SUyBhbm5vdGF0aW9ucyBtdXN0IGJlIHVzZWQuCgojIEV4YW1wbGUgQ2FzZQpBbiBhY3R1YWwgYXBwbGljYXRpb24gb2YgdGhlc2UgZnVuY3Rpb25zIGNhbiBiZSBmb3VuZCBhdDoKCmh0dHBzOi8vZ2l0aHViLmNvbS9ja2FyYXR6YXMvdHVzLXNlcnZlci1pbXBsZW1lbnRhdGlvbi9ibG9iL21hc3Rlci9zcmMvbWFpbi9qYXZhL2NvbS90dXMvb3NzL3NlcnZlci9jb3JlL1NlcnZlclZlcnRpY2xlLmphdmEgZm9yIGdlbmVyYXRpbmcgdGhlIHNwZWMKYW5kCmh0dHBzOi8vZ2l0aHViLmNvbS9ja2FyYXR6YXMvdHVzLXNlcnZlci1pbXBsZW1lbnRhdGlvbi9ibG9iL21hc3Rlci9zcmMvbWFpbi9qYXZhL2NvbS90dXMvb3NzL3NlcnZlci9jb3JlLypIYW5kbGVyLmphdmEgZm9yIHRoZSB1c2FnZSBvZiBhbm5vdGF0aW9ucyBpbiBoYW5kbGVycy4KCiMgQ3VycmVudCBTdGF0dXMKQnkgbm8gbWVhbnMgdGhlIHdob2xlIE9wZW5BUEkgMyBzcGVjIGlzIGNvdmVyZWQuIFRoZSBjdXJyZW50IGNvZGViYXNlIGNhbiBiZSBleHRlbmRlZCBiYXNlZCBvbiB0aGUgYWN0dWFsIHVzZSBjYXNlcyBhbmQgc3VwcG9ydCBtb3JlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KVGhpcyByZXBvc2l0b3J5IGNhbiBiZSB1c2VkIGFzIGEgYmFzaXMgdG8gaW5zcGlyZSB0aGUgZGVzaWduIG9mIG9mZmljaWFsIHZlcnR4ICJvcGVuYXBpLWVuYWJsZWQiIHZlcnR4IHJvdXRlcyBpbiBvcmRlciB0byBtYWtlIHRoZSBpbnRyb3NwZWN0aW9uIGVhc2llciBhbmQKbW9yZSBlZmZlY3RpdmUuIAogCgo= readmeEtag: '"1e9c971aabf2a134539bc135ce13e7c0bc062014"' readmeLastModified: Fri, 16 Feb 2018 14:55:56 GMT repositoryId: 120278582 description: Runtime Generation of OpenApi 3 specification from vertx routes. created: '2018-02-05T08:50:42Z' updated: '2022-08-17T07:26:26Z' language: Java archived: false stars: 9 watchers: 1 forks: 5 owner: ckaratzas logo: https://avatars.githubusercontent.com/u/35725079?v=4 license: MIT repoEtag: '"5e81ba04ffbe930cd5580e74e038c3bc7534236aa0e1fac399d0c46d13361db2"' repoLastModified: Wed, 17 Aug 2022 07:26:26 GMT foundInMaster: true category: - Server - Parsers id: a791ae1cc5890604063158dd13b67264 - source: openapi3 tags repository: https://github.com/shpoont/openapi-jsonapi-definition v3: true id: dec8a69f6989a95f7dc07c1775cb67b6 repositoryMetadata: base64Readme: >- W09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIGRlZmluaXRpb25zIG9mIFtKU09OOkFQSV0oaHR0cHM6Ly9qc29uYXBpLm9yZy8pCgojIE9wZW5BcGkgdjMuMC4wCi0gW0pTT046QVBJIHYxLjFdKGRlZmluaXRpb25zL2RyYWZ0Lm9wZW5hcGktMy4wLjAtanNvbmFwaS0xLjEueWFtbCkgKGRyYWZ0KQo= readmeEtag: '"84a95ad97ea20769698662439971465469ee01c6"' readmeLastModified: Sat, 26 Nov 2022 12:06:52 GMT repositoryId: 560845522 description: OpenAPI definitions of JSON:API created: '2022-11-02T11:57:00Z' updated: '2024-05-23T19:51:45Z' language: null archived: false stars: 9 watchers: 2 forks: 0 owner: shpoont logo: https://avatars.githubusercontent.com/u/1372784?v=4 repoEtag: '"a8534a899ea1e945083d7b0baeeca8829acce98f954d3947464ab080046410e3"' repoLastModified: Thu, 23 May 2024 19:51:45 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/brreg/openapi v3: true repositoryMetadata: base64Readme: >- UmVwb3NpdG9yeSBmb3IgT3BlbkFQSSBzcGVzaWZpa2Fzam9uZXIgZnJhIEJyw7hubsO4eXN1bmRyZWdpc3RyZW5lCg== readmeEtag: '"db76a039c35ee8ba3e02f5735518045a2ac6e30f"' readmeLastModified: Mon, 20 Nov 2023 12:05:42 GMT repositoryId: 145829476 description: Reposository holding the API specifications of Brønnøysundregistrene created: '2018-08-23T09:10:50Z' updated: '2023-09-22T09:12:23Z' language: null archived: false stars: 9 watchers: 9 forks: 5 owner: brreg logo: https://avatars.githubusercontent.com/u/37073025?v=4 repoEtag: '"b337370a8a86c32975d116176cf49295c0410b26ccd360d050ce0b7a819ea6c4"' repoLastModified: Fri, 22 Sep 2023 09:12:23 GMT foundInMaster: true category: Documentation id: 2c7899a38f9d43d529cf65be2bd07bd6 - source: openapi3 tags repository: https://github.com/postman-open-technologies/openapi-linter v3: true repositoryMetadata: base64Readme: >- IyBzcGVjLWxpbnRlcgoKWyFbRGVwbG95XShodHRwczovL3d3dy5oZXJva3VjZG4uY29tL2RlcGxveS9idXR0b24uc3ZnKV0oaHR0cHM6Ly9oZXJva3UuY29tL2RlcGxveSkKWyFbRGVwbG95IHRvIEF6dXJlXShodHRwczovL2FrYS5tcy9kZXBsb3l0b2F6dXJlYnV0dG9uKV0oaHR0cHM6Ly9wb3J0YWwuYXp1cmUuY29tLyNjcmVhdGUvTWljcm9zb2Z0LlRlbXBsYXRlL3VyaS9odHRwcyUzQSUyRiUyRnJhdy5naXRodWJ1c2VyY29udGVudC5jb20lMkZwb3N0bWFuLW9wZW4tdGVjaG5vbG9naWVzJTJGb3BlbmFwaS1saW50ZXIlMkZtYWluJTJGZGVwbG95bWVudHMlMkZhenVyZS1mdW5jdGlvbnMlMkZ0ZW1wbGF0ZS5qc29uKQoKW0RlcGxveSB0byBBV1NdKGh0dHBzOi8vdXMtZWFzdC0yLmNvbnNvbGUuYXdzLmFtYXpvbi5jb20vY2xvdWRmb3JtYXRpb24vaG9tZT9yZWdpb249dXMtZWFzdC0yIy9zdGFja3MvY3JlYXRlL3RlbXBsYXRlP3N0YWNrTmFtZT1zcGVjLWxpbnRlci1hcGkmdGVtcGxhdGVVUkw9aHR0cHM6Ly9wdWJsaWMtc3BlYy1saW50ZXItYXBpLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL3RlbXBsYXRlLmpzb24pCgpBbiBBUEkgZm9yIGxpbnRpbmcgT3BlbkFQSSwgQXN5bmNBUEksIGFuZCBvdGhlciBKU09OL1lBTUwgZG9jdW1lbnRzLCBidWlsdCBvbiB0b3Agb2YgW1NwZWN0cmFsXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vc3BlY3RyYWwpLgoKIyMg8J+boCBVc2FnZQoKU2VlIHRoZSBwdWJsaXNoZWQgW1Bvc3RtYW4gQ29sbGVjdGlvbl0oaHR0cHM6Ly93d3cucG9zdG1hbi5jb20vcG9zdG1hbi93b3Jrc3BhY2Uvb3BlbmFwaS1saW50aW5nL2RvY3VtZW50YXRpb24vMTI5NTk1NDItOTNjZDkwZGUtOWYzYy00ZWQwLTljNTctY2M1YTc3MTJjZjE5KSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBpbnRlcmFjdGluZyB3aXRoIHRoZSBzcGVjLWxpbnRlciBBUEkuCgpTcGVjdHJhbCBjb25maWcgbXVzdCBiZSBob3N0ZWQgYXQgYSBVUkwuIFRoaXMgQVBJIHN1cHBvcnRzIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGZvbGxvd2luZyBmb3JtczoKCi0gSlNPTi9ZQU1MIGZpbGUKLSBTcGVjdHJhbCBKYXZhU2NyaXB0IGNvbmZpZ3VyYXRpb24gKGFscGhhLCB0eXBpY2FsbHkgYC5zcGVjdHJhbC5qc2ApCi0gU3BlY3RyYWwgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIChhbHBoYSwgdHlwaWNhbGx5IGAuc3BlY3RyYWwudHNgKQoKIyMg8J+ZjyBUaGFua3MKClRoaXMgcHJvamVjdCB3b3VsZG4ndCBiZSBwb3NzaWJsZSB3aXRob3V0IHRoZSBlZmZvcnRzIG9mIFtTdG9wbGlnaHRdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL29wZW4tc291cmNlL3NwZWN0cmFsLykgYW5kIHRoZSBbU3BlY3RyYWwgY29udHJpYnV0b3JzXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vc3BlY3RyYWwvZ3JhcGhzL2NvbnRyaWJ1dG9ycykuCgojIyDwn5OEIExpY2Vuc2UKCkFwYWNoZS0yLjAK readmeEtag: '"f65e477337af57cb6ced3ff4fd8476a5b4235024"' readmeLastModified: Mon, 07 Feb 2022 18:18:16 GMT repositoryId: 431253781 description: >- An open source implementation of Spectral for applying linting rules to an OpenAPI which can be deployed to AWS, Azure, and Heroku. created: '2021-11-23T21:07:39Z' updated: '2023-09-12T06:33:43Z' language: TypeScript archived: false stars: 9 watchers: 2 forks: 3 owner: postman-open-technologies logo: https://avatars.githubusercontent.com/u/79494470?v=4 license: Apache-2.0 repoEtag: '"72abe213d82b20d40a19313818be6b9a935b2fd5cacf93269de5e63491e2e8ca"' repoLastModified: Tue, 12 Sep 2023 06:33:43 GMT foundInMaster: true category: Description Validators id: 651ef44cefb0498286e46666d0f496cf - source: openapi3 tags repository: https://github.com/nguyensjsu/fa19-281-kohara-hi-kohara v3: true repositoryMetadata: base64Readme: >- IyBQcm9qZWN0IFRpdGxlOiBJbnN0YWdyYW0gQXBwCgojIyBUZWFtIG1lbWJlcnM6IAoKLSBbQXJraWwgVGhha2thcl0oaHR0cHM6Ly9naXRodWIuY29tL2Fya2lsKSAoMDEzODI1MjkyKSA8YnIgLz4KLSBbU2FrZXQgVGhha2FyZV0oaHR0cHM6Ly9naXRodWIuY29tL3Nha2V0dGhha2FyZSkgKDAxMjQ0MDk3NCkgPGJyIC8+Ci0gW1ZhcnVuIEphaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS90aGV2YXJ1bmphaW4pICgwMTM3MTkxMDgpICA8YnIgLz4KLSBbVmFydW4gU2hyaXZhc3Rhdl0oaHR0cHM6Ly9naXRodWIuY29tL3N2YXJ1bjEzMDcpICgwMTE0Mzg1MzEpICA8YnIgLz4KLSBbVmlzaHdhbmF0aCBNYW52aV0oaHR0cHM6Ly9naXRodWIuY29tL3Zpc2h1bWFudmkpICgwMTM3NzYyMDQpICA8YnIgLz4KCiMjIFByb2plY3QgU3VtbWFyeToKVGhlIHByb2plY3QgaW1wbGVtZW50cyBhIHByb3RvdHlwZSBvZiBJbnN0cmFncmFtIGFwcC4gSW5zdGFncmFtIGlzIGEgcG9wdWxhciBwaG90byBzaGFyaW5nIHNvY2lhbCBuZXR3b3JraW5nIHNpdGUgd2hlcmUgdXNlcnMgY2FuIHBvc3QgcGljdHVyZXMgYW5kIGxpa2Ugb3IgY29tbWVudCBvbiB0aGVtLiAKCkJlbG93IGFyZSB0aGUgY29yZSBmdW5jdGlvbmFsaXRpZXMgb2Ygb3VyIGltcGxlbWVudGF0aW9uIG9mIEluc3RhZ3JhbSA8YnIvPgoKMS4gTmV3IHVzZXJzIGNhbiBzaWdudXAgPGJyLz4KMi4gTG9naW4gPGJyLz4KMy4gU3VibWl0IGEgcGljdHVyZSBhcyBhIHBvc3QgPGJyLz4KNC4gTGlrZSBhIHBvc3QgPGJyLz4KNS4gQ29tbWVudCBhIHBvc3QgPGJyLz4KNi4gRm9sbG93IGEgdXNlciA8YnIvPgo3LiBWaWV3IHRpbWVsaW5lIHdpdGggYWxsIHBvc3RzIG9mIHBlb3BsZSB5b3UgZm9sbG93IDxici8+CjguIE5vdGlmaWNhdGlvbiA8YnIvPgoKCiMjIyBQcm9qZWN0IEFyY2hpdGVjdHVyZTogPGJyLz4KQmVsb3cgaXMgdGhlIGhpZ2ggbGV2ZWwgYXJjaGl0ZWN0dXJlIG9mIG91ciBpbXBsZW1lbnRhdGlvbiBvZiBJbnN0YWdyYW0gYXBwLgoKIVtBcmNoaXRlY3R1cmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvYmxvYi9tYXN0ZXIvU2NyZWVuc2hvdHMvQXJjaGl0ZWN0dXJlJTIwRElhZ3JhbS5wbmcpCgpVc2VycyBjb25uZWN0IHRvIGFwcCB1c2luZyBhIGJyb3dzZXIuIFRoZSBicm93c2VyIGNvbm5lY3RzIHRvIHRoZSBSZWFjdCBmcm9udGVuZCBhcHAgd2hpY2ggaXMgcnVubmluZyBvbiBHQ1AgdGhyb3VnaCBhIGxvYWQgYmFsYW5jZXIuIFRoZSByZWFjdCBhcHAgcnVucyBvbiBhIDMgbm9kZSBHS0UgS3ViZXJuZXRlcyBjbHVzdGVyIHRoYXQgY2FuIGJlIGF1dG8gc2NhbGVkLgoKVGhlIFJlYWN0IGZyb250ZW5kIGFwcCBjb25uZWN0cyB0byBiYWNrZW5kIGRlcGxveWVkIG9uIEFXUyB0aHJvdWdoIEFQSSBnYXRld2F5LiBUaGUgQVBJIGdhdGV3YXkgaGFzIDUgcm91dGVzLCBvbmUgZm9yIGVhY2ggb2YgdGhlIG1pY3Jvc2VydmljZXMgZGVwbG95ZWQgb24gaW5kaXZpZHVhbCBWUENzIHBlciByZXF1aXJlbWVudC4gUm91dGUgNTMgaXMgdXNlZCB0byByZXNvbHZlIHRoZSBsb2FkIGJhbGFuY2VycyBmcm9udGluZyB0aGUgbWljcm9zZXJ2aWNlcyB0byBrZWVwIGl0IHN0YXRpYyBhbmQgYXZvaWQgbXVsdGlwbGUgY29uZmlnIGNoYW5nZXMuCgpFYWNoIG9mIHRoZSBtaWNyb3NlcnZpY2VzIGlzIGRlcGxveWVkIGluIGEgc2VwZXJhdGUgS3ViZXJuZXRlcyBjbHVzdGVyIG1hbmFnZWQgdGhyb3VnaCBFS1MuIFRoZXkgYWxzbyBoYXZlIHRoZWlyIG93biBOb1NRTCBjbHVzdGVyIHByZXNlbnQgaW4gdGhlaXIgVlBDLiBBbGwgc2VydmljZXMgZXhjZXB0IFRpbWVsaW5lIHVzZSBNb25nb0RCIGNsdXN0ZXIuIFRpbWVsaW5lIHNlcnZpY2UgdXNlcyBSaWFrIGNsdXN0ZXIgZm9yIGl0cyBjYWNoaW5nIG5lZWRzLiBNb25nb0RCIGlzIHNoYXJkZWQgaW50byAyIHNoYXJkcyBiYXNlZCBvbiB1c2VybmFtZSBoYXNoLiAKCkFsbCBWUENzIGFyZSBjb25uZWN0ZWQgdGhyb3VnaCBWUEMgcGVlcmluZyB0byBjb21tdW5pY2F0ZSB3aXRoIGVhY2ggb3RoZXIgd2l0aG91dCBoYXZpbmcgdG8gcm91dGUgdGhyb3VnaCBBUEkgZ2F0ZXdheSBhbmQgdGhlcmVieSByZWR1Y2luZyBsYXRlbmNpZXMuIAoKIyMgS2V5IENsb3VkIEZlYXR1cmVzIGltcGxlbWVudGVkCjEuIFtNaWNyb3NlcnZpY2VzIHdpdGggYXV0by1zY2FsaW5nIGRlcGxveWVkIHVzaW5nIEt1YmVybmV0ZXMgb24gRUtTIGNsdXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvYmxvYi9tYXN0ZXIvZWtzL1JFQURNRS5tZCkKICBFYWNoIG9mIHRoZSBtaWNyb3NlcnZpY2VzIGRlcGxveWVkIGluIEVLUyBjbHVzdGVycyBvZiBzcGVjaWZpYyBWUENzIHdpdGggYXV0by1zY2FsaW5nIGVuYWJsZWQgdG8gcHJvdmlkZSBoaWdoIGF2YWlsYWJpbGl0eSBhbmQgcmVsaWFibGUgc2VydmljZXMgdGhhdCBjYW4gc2NhbGUgcGVyIGRlbWFuZAogIAoyLiBbTW9uZ29EQiBzaGFyZGluZ10oaHR0cHM6Ly9naXRodWIuY29tL25ndXllbnNqc3UvZmExOS0yODEta29oYXJhLWhpLWtvaGFyYS9ibG9iL21hc3Rlci9Nb25nby1TaGFyZGluZy9TaGFyZGluZyUyMEluc3RydWN0aW9ucy5tZCkKICAgIFNoYXJkaW5nIGltcGxlbWVudGVkIG9uIE1vbmdvREIgdGhhdCdzIHRoZSBwcmltYXJ5IGRhdGFzdG9yZSBmb3IgbW9zdCBzZXJ2aWNlcy4gU2hhcmRpbmcgZW5hYmxlcyBkYXRhYmFzZSBjbHVzdGVycyB0byBzY2FsZSBpbiB0aGUgei1heGlzIG9mIEFGSyBzY2FsZS4gV2UgaW1wbGVtZW50ZWQgNyBtb25nbyBEQiBub2RlcyAoMiBjb25maWcgbm9kZSBjbHVzdGVyLCAyIHNoYXJkIGNsdXN0ZXJzIHdpdGggYSByZXBsaWNhIHNldCBpbiBlYWNoIGFsb25nIHdpdGggYSBxdWVyeSBzZXJ2ZXIgZm9yIGNsaWVudHMgdG8gY29ubmVjdCkuCiAgICAKMy4gW1ZQQyBQZWVyaW5nIHRvIGNyZWF0ZSBzZXJ2aWNlIG1lc2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvYmxvYi9tYXN0ZXIvZG9jcy8xLiUyMFZQTiUyMFBlZXJpbmclMjBJbnN0cnVjdGlvbnMubWQpCiAgVlBDIHBlZXJpbmcgdXNlZCB0byBjb25uZWN0IGluZGl2aWR1YWwgVlBDcyBpbnRvIGEgY29tbW9uIG1lc2ggZm9yIGJhY2tlbmQgc2VydmljZXMgdG8gaW50ZWdyYXRlIHNlYW1sZXNseSB3aXRob3V0IGdvaW5nIHRocm91Z2ggZXh0ZXJuYWwgbG9hZCBiYWxhbmNlcnMgb3IgQVBJIGdhdGV3YXkuIFRoaXMgYWxzbyBlbnN1cmUgaGlnaGVyIHRocm91Z2hwdXQgYW5kIGxvd2VyIGxhdGVuY2llcy4KICAKNC4gW0FXUyBBUEkgZ2F0ZXdheSBmb3IgY2xpZW50IGF1dGhdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvYmxvYi9tYXN0ZXIvU2NyZWVuc2hvdHMvQVBJJTIwR2F0ZXdheS5wbmcpIDxici8+CiAgQ2xpZW50cyAoZS5nOiBSZWFjdCBBcHApIGNvbm5lY3QgdG8gYmFja2VuZCBzZXJ2aWNlcyB0aHJvdWdoIEFXUyBBUEkgZ2F0ZXdheS4gQSByb3V0ZSBpcyBjcmVhdGVkIGZvciBlYWNoIG9mIHRoZSBtaWNyb3NlcnZpY2UgdGhhdCBjbGllbnQgY2FuIHVzZSB0byB3b3JrIHdpdGguCiAgCjUuIFtFdmVudCBzb3VyY2luZyB1c2luZyBBV1MgU1FTIGZvciBDUVJTXShodHRwczovL2dpdGh1Yi5jb20vbmd1eWVuc2pzdS9mYTE5LTI4MS1rb2hhcmEtaGkta29oYXJhL3RyZWUvbWFzdGVyL1NRUykgPGJyLz4KICBDcmVhdGVkIFJlYWQgYW5kIFdyaXRlIGRpZmZyZW50IHNlcnZpY2VzLCB3b3JrZXIgdGhyZWFkIGhhdmluZyBpbnRlZ3JhdGlvbiB3aXRoIHNxcyBxdWV1ZSBwdWxscyB0aGUgbWVzc2FnZSB3cml0dGVuIHRvIHdyaXRlIHNlcnZpY2VzIAoKNi4gW0Nsb3VkRnJvbnQgQ0ROIGZvciBpbWFnZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvYmxvYi9tYXN0ZXIvU2NyZWVuc2hvdHMvY2xvdWRmcm9udC5wbmcpIDxici8+CiBTdG9yZSBwb3N0ZWQgaW1hZ2VzIG9uIFMzIGFuZCB1c2VkIENsb3VkZnJvbnQgIENETiB0byByZXRyaWV2ZSBpbWFnZXMgZmFzdGVyIAoKNy4gW0ludGVyY2xvdWQgaW50ZXJhY3Rpb24gKEdDUCArIEFXUyldKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvdHJlZS9tYXN0ZXIva3ViZXJuZXRlcyk8YnIvPgpEZXBsb3llZCBGcm9udGVuZCBvbiBHQ1AgdXNpbmcgR0tFIGFuZCBCYWNrZW5kIG9uIEFXUyB1c2luZyBFS1MKCjguIFtDb250aW5vdXMgSW50ZWdyYXRpb24gYW5kIENvbnRpbm91cyBEZWxpdmVyeSBmb3IgRnJvbnRlbmQgYXBwIGluIEdDUF0oaHR0cHM6Ly9naXRodWIuY29tL25ndXllbnNqc3UvZmExOS0yODEta29oYXJhLWhpLWtvaGFyYS9ibG9iL21hc3Rlci9TY3JlZW5zaG90cy9HQ1AlMjBDSTpDRC5wbmcpIAogIFVzZWQgR2l0aHViIGFjdGlvbnMgdG8gc2V0dXAgQ0kvQ0Qgc28gdGhhdCBvbmNlIGZyb250ZW5kIGNvZGUgaXMgcHVzaGVkIHRvIGdpdCwgYSBjb250YWluZXIgYnVpbGQgaXMgY3JlYXRlZCBhbmQgZGVwbG95ZWQgdG8gR0tFIGNsdXN0ZXIgaW1tZWRpYXRlbHkgCgo5LiBbQ29udGludW91cyBJbnRlZ3JhdGlvbiBmb3IgTWljcm9zZXJ2aWNlcyB1c2luZyBHaXRodWIgQWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL25ndXllbnNqc3UvZmExOS0yODEta29oYXJhLWhpLWtvaGFyYS9ibG9iL21hc3Rlci9TY3JlZW5zaG90cy9BY3Rpb25zLnBuZykgPGJyLz4KICBVc2VkIEdpdGh1YiBhY3Rpb25zIHRvIHNldHVwIENJIHNvIHRoYXQgb25jZSBtaWNyb3NlcnZpY2VzIGNvZGUgaXMgcHVzaGVkIHRvIGdpdCwgYSBjb250YWluZXIgYnVpbGQgaXMgY3JlYXRlZCBhbmQgZGVwbG95ZWQgdG8gZG9ja2VyaHViIGltbWVkaWF0ZWx5LgogIAoxMC4gW0ZpcmViYXNlIGF1dGhlbnRpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbmd1eWVuc2pzdS9mYTE5LTI4MS1rb2hhcmEtaGkta29oYXJhL2Jsb2IvbWFzdGVyL0ZpcmViYXNlL1JlYWRtZS5tZCkgPGJyLz4KICAgIFdoZW4gYSB1c2VyIGxvZ2luIGludG8gYXBwIGhpcyBjcmVkZW50aWFscyBhcmUgYXV0aGVudGljYXRlZCB1c2luZyBmaXJlYmFzZSBzZXJ2aWNlCiAgICAKMTEuIFtSb3V0ZSA1M10oaHR0cHM6Ly9naXRodWIuY29tL25ndXllbnNqc3UvZmExOS0yODEta29oYXJhLWhpLWtvaGFyYS90cmVlL21hc3Rlci9Sb3V0ZTUzKSBwb2ludGluZyB0byBLdWJlcm5ldGVzIExvYWQgYmFsYW5jZXJzIDxici8+CiAgICBVc2VkIFJvdXRlNTMgdG8gcmVzb2x2ZSB0aGUgbG9hZCBiYWxhbmNlcnMgZnJvbnRpbmcgdGhlIG1pY3Jvc2VydmljZXMgdG8ga2VlcCBpdCBzdGF0aWMgYW5kIGF2b2lkIG11bHRpcGxlIGNvbmZpZyBjaGFuZ2VzLgoKMTIuIFtTd2FnZ2VyIE1vY2t1cHMgZHVyaW5nIGRldmVsb3BtZW50XShodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzLWRvY3Mvc2FrZXR0aGFrYXJlL2luc3RhZ3JhbS1jbXBlMjgxLzEpCiAgICBVc2VkIFN3YWdnZXIgYmVmb3JlIGRldiBzdGFydGVkIHRvIGVzdGFibGlzaCBBUEkgY29udHJhY3RzIGFuZCBzZXR1cCB0aGUgbW9ja3MgdG8gdW5ibG9jayBkZXZlbG9wbWVudC4KCjEzLiBbT25lU2lnbmFsIFB1c2ggTm90aWZpY2F0aW9uIHNlcnZpY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvYmxvYi9tYXN0ZXIvU2NyZWVuc2hvdHMvT25lU2lnbmFsLnBuZykgOiBVc2luZyB0aGUgT25lU2lnbmFsU0RLLCB3ZSB0cmlnZ2VyIHdlYiBwdXNoIG5vdGlmaWNhdGlvbnMgd2hlbiBhIHVzZXIgcG9zdHMgYSBuZXcgaW1hZ2UuCgoKIyMgUHJvamVjdCBNYW5hZ2VtZW50OgoKVXNlZCBHaXQgUHJvamVjdCBEYXNoYm9hcmQgdG8gbWFuYWdlIHRhc2tzLgoKIVthbHQgdGV4dF0oaHR0cHM6Ly9naXRodWIuY29tL25ndXllbnNqc3UvZmExOS0yODEta29oYXJhLWhpLWtvaGFyYS9ibG9iL21hc3Rlci9kb2NzL2dpdHByb2plY3QucG5nICJQcm9qZWN0IERhc2hib2FyZCIpCgpGb2xsb3dlZCBBZ2lsZSBwcmFjdGlzZSB1c2luZyBHaXRIdWIgSXNzdWUgYm9hcmQgCgohW0lzc3VlXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS80MjU5NzQ2MC82OTQ4MTk5NC1lMjU1MDkwMC0wZGNhLTExZWEtOTZlYy1iMzg1NTBkMGE5MjcucG5nKQoKIyMgVUkgU2NyZWVuc2hvdHM6CgojIyMgU2lnbmluOgoKIVthbHQgdGV4dF0oaHR0cHM6Ly9naXRodWIuY29tL25ndXllbnNqc3UvZmExOS0yODEta29oYXJhLWhpLWtvaGFyYS9ibG9iL21hc3Rlci9TY3JlZW5zaG90cy9TaWduaW4ucG5nICJTaWduaW4iKQoKCiMjIyBTaWdudXA6CgohW2FsdCB0ZXh0XShodHRwczovL2dpdGh1Yi5jb20vbmd1eWVuc2pzdS9mYTE5LTI4MS1rb2hhcmEtaGkta29oYXJhL2Jsb2IvbWFzdGVyL1NjcmVlbnNob3RzL1NpZ251cDIucG5nICJTaWdudXAiKQoKIyMjIFZpZXcgdGltZWxpbmU6CgohW2FsdCB0ZXh0XShodHRwczovL2dpdGh1Yi5jb20vbmd1eWVuc2pzdS9mYTE5LTI4MS1rb2hhcmEtaGkta29oYXJhL2Jsb2IvbWFzdGVyL1NjcmVlbnNob3RzL1NpZ251cC5wbmcgIlRpbWVsaW5lIikKClZpZXcgUHJvZmlsZToKCiFbYWx0IHRleHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3V5ZW5zanN1L2ZhMTktMjgxLWtvaGFyYS1oaS1rb2hhcmEvYmxvYi9tYXN0ZXIvU2NyZWVuc2hvdHMvUHJvZmlsZS5wbmcgIlByb2ZpbGUiKQoKIyMjIFN1Ym1pdCBhIFBvc3Q6CgohW2FsdCB0ZXh0XShodHRwczovL2dpdGh1Yi5jb20vbmd1eWVuc2pzdS9mYTE5LTI4MS1rb2hhcmEtaGkta29oYXJhL2Jsb2IvbWFzdGVyL1NjcmVlbnNob3RzL1N1Ym1pdFBvc3QucG5nICJQb3N0IikKCiMjIyBGb2xsb3cgYSBmcmllbmQ6CgohW2FsdCB0ZXh0XShodHRwczovL2dpdGh1Yi5jb20vbmd1eWVuc2pzdS9mYTE5LTI4MS1rb2hhcmEtaGkta29oYXJhL2Jsb2IvbWFzdGVyL1NjcmVlbnNob3RzL0ZvbGxvdy5wbmcgIkZvbGxvdyIpCgoKIyMgVHJ5IHRoZSBhcHAgYXQ6CgpodHRwOi8vbGFuZGthcmFkZS50ZWFtLwoKCg== readmeEtag: '"71909b4d824d1cf5c1348e82c8ec6537c8bb3903"' readmeLastModified: Sun, 24 Nov 2019 07:04:10 GMT repositoryId: 219447083 description: >- Multi-tier Instagram application deployed on hybrid cloud with CQRS architecture. created: '2019-11-04T07:58:44Z' updated: '2023-06-07T21:40:23Z' language: Shell archived: false stars: 9 watchers: 4 forks: 6 owner: nguyensjsu logo: https://avatars.githubusercontent.com/u/30351660?v=4 repoEtag: '"1f4dbb2af45beef8800b13151a3defe296a8e1d5b3188140c3c7527b719a39b0"' repoLastModified: Wed, 07 Jun 2023 21:40:23 GMT foundInMaster: true category: Server Implementations id: d6589eedbbff12c647b6f30428c94f7a - source: openapi3 tags repository: https://github.com/ben-jamin-chen/springboot-swagger-rest-api v3: true id: a9df75197b7dc50eefc61eead6539c2b repositoryMetadata: base64Readme: >- IyBTYW1wbGUgU3ByaW5nIEJvb3QgKDIuMy4yKSBSRVNUZnVsIEFQSSB3aXRoIFN3YWdnZXIgKE9wZW5BUEkgMykKCldoaWxlIHNlYXJjaGluZyB0aHJvdWdoIEdpdEh1YiBmb3Igc29tZSBib2lsZXJwbGF0ZSBjb2RlIG9uIGhvdyB0byBzZXR1cCBhIFNwcmluZyBCb290IHByb2plY3Qgd2l0aCBTd2FnZ2VyLCBJIGZvdW5kIGl0IHF1aXRlIGRpZmZpY3VsdCB0byBmaW5kIGEgd29ya2luZyBleGFtcGxlIHdpdGggYSBtb3JlIHJlY2VudCB2ZXJzaW9uIG9mIFNwcmluZyBCb290IGFuZCBKYXZhIChpLmUuIDE0KS4gQW55d2F5cywgSSB0aG91Z2h0IEnigJlkIGNyZWF0ZSBteSBvd24gYW5kIHNoYXJlIHdpdGggZXZlcnlvbmUuIFRoaXMgaXMgZm9yIGFueW9uZSB0aGF0IG5lZWRzIHNvbWUgcXVpY2sgYm9pbGVycGxhdGUgY29kZSB0byBzZXR1cCB0aGVpciBuZXcgQVBJIHByb2plY3QuCgojIyBXaGF0IFlvdSBOZWVkCgoqIEphdmEgMTQKKiBNYXZlbiAzLjYuMCsKCiMjIEJ1aWxkIGFuZCBSdW4gdGhlIFNhbXBsZQoKWW91IGNhbiBpbXBvcnQgdGhlIGNvZGUgc3RyYWlnaHQgaW50byB5b3VyIHByZWZlcnJlZCBJREUgb3IgcnVuIHRoZSBzYW1wbGUgdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIChpbiB0aGUgcm9vdCBwcm9qZWN0IGZvbGRlcikuCgpgYGB6c2gKJCAgbXZuIHNwcmluZy1ib290OnJ1bgpgYGAKQWZ0ZXIgdGhlIGFwcGxpY2F0aW9uIHJ1bnMsIG5hdmlnYXRlIHRvIGBodHRwOi8vbG9jYWxob3N0OjcwMDEvc3dhZ2dlci11aS9pbmRleC5odG1sP2NvbmZpZ1VybD0vYXBpLWRvY3Mvc3dhZ2dlci1jb25maWdgIGluIHlvdXIgd2ViIGJyb3dzZXIgdG8gYWNjZXNzIHRoZSBTd2FnZ2VyIFVJIHBvcnRhbC4K readmeEtag: '"9a2b56a24abaa949af685f5503ecdcc4da8a4654"' readmeLastModified: Tue, 28 Jul 2020 00:13:07 GMT repositoryId: 281525992 description: >- A sample RESTful API using Spring Boot (2.3.2) and Java 14 with Swagger enabled. created: '2020-07-21T23:28:43Z' updated: '2024-08-29T06:57:42Z' language: Java archived: false stars: 9 watchers: 1 forks: 7 owner: ben-jamin-chen logo: https://avatars.githubusercontent.com/u/41641688?v=4 license: MIT repoEtag: '"b730f86b0f565a1ce56a86d15349c18a34dec7ac530a7f97ec72da4d9f33c0fb"' repoLastModified: Thu, 29 Aug 2024 06:57:42 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/buzzingben/springboot-swagger-rest-api - https://github.com/bchen04/springboot-swagger-rest-api - source: openapi3 tags repository: https://github.com/mattpolzin/jsonapi-openapi v3: true repositoryMetadata: base64Readme: >- IyBKU09OQVBJK09wZW5BUEkKWyFbTUlUIGxpY2Vuc2VdKGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1saWdodGdyZXkuc3ZnKV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkgWyFbU3dpZnQgNS45XShodHRwOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU3dpZnQtNS45LWJsdWUuc3ZnKV0oaHR0cHM6Ly9zd2lmdC5vcmcpIFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9hcHAuYml0cmlzZS5pby9hcHAvMmFlMGI1NTc4ZTE5MDViOC9zdGF0dXMuc3ZnP3Rva2VuPVQ4VUFVTjA4ZTFfR25ZazF6M1A5OGcmYnJhbmNoPW1haW4pXShodHRwczovL2FwcC5iaXRyaXNlLmlvL2FwcC8yYWUwYjU1NzhlMTkwNWI4KQoKU2VlIHBhcmVudCBwcm9qZWN0OiBodHRwczovL2dpdGh1Yi5jb20vbWF0dHBvbHppbi9KU09OQVBJCgpUaGUgYEpTT05BUElPcGVuQVBJYCBmcmFtZXdvcmsgYWRkcyB0aGUgYWJpbGl0eSB0byBnZW5lcmF0ZSBPcGVuQVBJIGNvbXBsaWFudCBKU09OIFNjaGVtYSBkb2N1bWVudGF0aW9uIG9mIGEgSlNPTkFQSSBEb2N1bWVudC4KClRoZXJlIGlzIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIGBKU09OQVBJYCBTd2lmdCBjb2RlIGZyb20gT3BlbkFQSSBkb2N1bWVudGF0aW9uIGluIHRoZSBKU09OQVBJU3dpZnRHZW4gbW9kdWxlLiBUaGVyZSBpcyBubyBmb3JtYWwgZG9jdW1lbnRhdGlvbiBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5LCBidXQgaXQgaXMgYW4gYXJlYSBvZiBpbnRlcmVzdCBvZiBtaW5lLiBSZWFjaCBvdXQgdG8gbWUgZGlyZWN0bHkgaWYgeW91IHdvdWxkIGxpa2UgdG8ga25vdyBtb3JlLgoKU2VlIHRoZSBPcGVuIEFQSSBTcGVjIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4zLm1kCgoqVGhpcyBsaWJyYXJ5IGhhcyBtYW55IGxvb3NlIGVuZHMgYW5kIHZlcnkgbGl0dGxlIGRvY3VtZW50YXRpb24uIFRoZSBkb2N1bWVudGF0aW9uIHdpbGwgZ3JvdyBhcyB0aGUgZnJhbWV3b3JrIGJlY29tZXMgbW9yZSBjb21wbGV0ZS4qCgojIyBSdW5uaW5nIGFuZCBUZXN0aW5nCkFzIG9mIHRoaXMgd3JpdGluZywgeW91IG5lZWQgdG8gcnVuIGBzd2lmdCBwYWNrYWdlIGdlbmVyYXRlLXhjb2RlcHJvamAgYW5kIHRoZW4gb3BlbiB0aGF0IHByb2plY3QgaW4gWGNvZGUuIFVzaW5nIFhjb2RlJ3MgYnVpbHQtaW4gU3dpZnQgUGFja2FnZSBNYW5hZ2VyIHN1cHBvcnQgaXMgY3VycmVudGx5IGJyb2tlbiBmb3IgbGlicmFyaWVzIGxpa2Ugc3dpZnQtc3ludGF4IHRoYXQgcmVxdWlyZSBkeW5hbWljIGxpYnJhcmllcyBmcm9tIHRoZSBTd2lmdCB0b29sY2hhaW4uIGBzd2lmdCBidWlsZGAsIGBzd2lmdCB0ZXN0YCwgZXRjLiBmcm9tIHRoZSBjb21tYW5kIGxpbmUgd2lsbCB3b3JrIGZpbmUsIHRob3VnaC4KCiMjIF9FeHBlcmltZW50YWxfIFN3aWZ0IENvZGUgR2VuZXJhdGlvbgoKVGhlIEpTT05BUElTd2lmdEdlbiBtb2R1bGUgaGFzIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIFN3aWZ0IGNvZGUgZm9yIGBKU09OQVBJYCBtb2RlbHMuIFlvdSBjYW4gZGlnIGludG8gdGhlIHNvdXJjZSBjb2RlIG9yIHJlYWNoIG91dCB0byBtZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gVGhpcyBtb2R1bGUgaXMgdXNlZCBieSB0aGUgQVBJIFRlc3Qgc2VydmVyIHByb2plY3QgYXQgW21hdHRwb2x6aW4vanNvbmFwaS1vcGVuYXBpLXRlc3Qtc2VydmVyXShodHRwczovL2dpdGh1Yi5jb20vbWF0dHBvbHppbi9qc29uYXBpLW9wZW5hcGktdGVzdC1zZXJ2ZXIpIHRvIGdlbmVyYXRlIG1vZGVscyBhbmQgdGVzdHMuCgojIyBfRXhwZXJpbWVudGFsXyBHcmFwaHZpeiAoRE9UKSBHZW5lcmF0aW9uCgpUaGUgSlNPTkFQSVZpekdlbiBtb2R1bGUgaGFzIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIEdyYXBodml6IERPVCBmaWxlcyB0aGF0IGdyYXBoIG91dCB0aGUgbW9kZWxzIGFuZCByZWxhdGlvbnNoaXBzIHJlcHJlc2VudGVkIGJ5IHRoZSBKU09OOkFQSS9PcGVuQVBJIGlucHV0LiBZb3UgY2FuIGRpZyBpbnRvIHRoZSBzb3VyY2UgY29kZSBvciByZWFjaCBvdXQgdG8gbWUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyBPcGVuQVBJIEpTT04gU2NoZW1hIEdlbmVyYXRpb24KIyMjIFNpbXBsZSBFeGFtcGxlCllvdSBjYW4gdHJ5IHRoaXMgb3V0IGluIHRoZSBpbmNsdWRlZCBQbGF5Z3JvdW5kLgoKYGBgc3dpZnQKaW1wb3J0IEZvdW5kYXRpb24KaW1wb3J0IEpTT05BUEkKaW1wb3J0IE9wZW5BUElLaXQKaW1wb3J0IEpTT05BUElPcGVuQVBJCmltcG9ydCBTYW1wbGVhYmxlCgpsZXQgZW5jb2RlciA9IEpTT05FbmNvZGVyKCkKZW5jb2Rlci5vdXRwdXRGb3JtYXR0aW5nID0gLnByZXR0eVByaW50ZWQKCi8vCi8vIEZpcnN0IGRlc2NyaWJlIHRoZSByZXNvdXJjZSBvYmplY3QKLy8Kc3RydWN0IFdpZGdldERlc2NyaXB0aW9uOiBKU09OQVBJLlJlc291cmNlT2JqZWN0RGVzY3JpcHRpb24gewogICAgc3RhdGljIHZhciBqc29uVHlwZTogU3RyaW5nIHsgcmV0dXJuICJ3aWRnZXRzIiB9CgogICAgc3RydWN0IEF0dHJpYnV0ZXM6IEpTT05BUEkuQXR0cmlidXRlcyB7CiAgICAgICAgbGV0IHByb2R1Y3ROYW1lOiBBdHRyaWJ1dGU8U3RyaW5nPgogICAgfQoKICAgIHN0cnVjdCBSZWxhdGlvbnNoaXBzOiBKU09OQVBJLlJlbGF0aW9uc2hpcHMgewogICAgICAgIGxldCBzdWJjb21wb25lbnRzOiBUb01hbnlSZWxhdGlvbnNoaXA8V2lkZ2V0LCBOb01ldGFkYXRhLCBOb0xpbmtzPgogICAgfQp9Cgp0eXBlYWxpYXMgV2lkZ2V0ID0gSlNPTkFQSS5SZXNvdXJjZU9iamVjdDxXaWRnZXREZXNjcmlwdGlvbiwgTm9NZXRhZGF0YSwgTm9MaW5rcywgU3RyaW5nPgoKLy8KLy8gVGhlbiBtYWtlIHRoaW5ncyBzYW1wbGVhYmxlCi8vIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIG9ubHkgd2F5IHRvIHVzZSByZWZsZWN0aW9uIG9uCi8vIHlvdXIgYXR0cmlidXRlcyBhbmQgcmVsYXRpb25zaGlwcyBzdHJ1Y3RzIGlzIHRvIGNyZWF0ZQovLyBpbnN0YW5jZXMgb2YgdGhlbS4KLy8KZXh0ZW5zaW9uIFdpZGdldERlc2NyaXB0aW9uLkF0dHJpYnV0ZXM6IFNhbXBsZWFibGUgewogICAgc3RhdGljIHZhciBzYW1wbGU6IFdpZGdldERlc2NyaXB0aW9uLkF0dHJpYnV0ZXMgewogICAgICAgIHJldHVybiAuaW5pdChwcm9kdWN0TmFtZTogLmluaXQodmFsdWU6ICJGaWxsaWhpenplciBOb2IgSHViIikpCiAgICB9Cn0KCmV4dGVuc2lvbiBXaWRnZXREZXNjcmlwdGlvbi5SZWxhdGlvbnNoaXBzOiBTYW1wbGVhYmxlIHsKICAgIHN0YXRpYyB2YXIgc2FtcGxlOiBXaWRnZXREZXNjcmlwdGlvbi5SZWxhdGlvbnNoaXBzIHsKICAgICAgICByZXR1cm4gLmluaXQoc3ViY29tcG9uZW50czogLmluaXQoaWRzOiBbLmluaXQocmF3VmFsdWU6ICIxIildKSkKICAgIH0KfQoKLy8KLy8gV2UgY2FuIGNyZWF0ZSBhIEpTT04gU2NoZW1hIGZvciB0aGUgV2lkZ2V0IGF0IHRoaXMgcG9pbnQKLy8KbGV0IHdpZGdldEpTT05TY2hlbWEgPSBXaWRnZXQub3BlbkFQSVNjaGVtYSh1c2luZzogZW5jb2RlcikKCi8vCi8vIERlc2NyaWJlIGEgSlNPTjpBUEkgcmVzcG9uc2UgYm9keSB3aXRoIDEgd2lkZ2V0IGFuZAovLyBhbnkgbnVtYmVyIG9mIHJlbGF0ZWQgd2lkZ2V0cyBpbmNsdWRlZC4KLy8KdHlwZWFsaWFzIFNpbmdsZVdpZGdldERvY3VtZW50V2l0aEluY2x1ZGVzID0gRG9jdW1lbnQ8U2luZ2xlUmVzb3VyY2VCb2R5PFdpZGdldD4sIE5vTWV0YWRhdGEsIE5vTGlua3MsIEluY2x1ZGUxPFdpZGdldD4sIE5vQVBJRGVzY3JpcHRpb24sIEJhc2ljSlNPTkFQSUVycm9yPFN0cmluZz4+CgovLwovLyBGaW5hbGx5IHdlIGNhbiBjcmVhdGUgYSBKU09OIFNjaGVtYSBmb3IgdGhlIHJlc3BvbnNlIGJvZHkgb2YgYSBzdWNjZXNzZnVsIHJlcXVlc3QKLy8KbGV0IGpzb25BUElSZXNwb25zZVNjaGVtYSA9IFNpbmdsZVdpZGdldERvY3VtZW50V2l0aEluY2x1ZGVzLlN1Y2Nlc3NEb2N1bWVudC5vcGVuQVBJU2NoZW1hKHVzaW5nOiBlbmNvZGVyKQoKcHJpbnQoU3RyaW5nKGRhdGE6IHRyeSEgZW5jb2Rlci5lbmNvZGUoanNvbkFQSVJlc3BvbnNlU2NoZW1hKSwgZW5jb2Rpbmc6IC51dGY4KSEpCgovLwovLyBPciBhIGZhaWxlZCByZXF1ZXN0Ci8vCmxldCBqc29uQVBJUmVzcG9uc2VFcnJvclNjaGVtYSA9IFNpbmdsZVdpZGdldERvY3VtZW50V2l0aEluY2x1ZGVzLkVycm9yRG9jdW1lbnQub3BlbkFQSVNjaGVtYSh1c2luZzogZW5jb2RlcikKCi8vCi8vIE9yIGEgc2NoZW1hIGRlc2NyaWJpbmcgdGhlIHJlc3BvbnNlIGFzIGBvbmVPZmAgdGhlIHN1Y2Nlc3Mgb3IgZXJyb3IgcmVzcG9uZXMKLy8KbGV0IGpzb25BUElSZXNwb25zZUZ1bGxTY2hlbWEgPSBTaW5nbGVXaWRnZXREb2N1bWVudFdpdGhJbmNsdWRlcy5vcGVuQVBJU2NoZW1hKHVzaW5nOiBlbmNvZGVyKQpgYGAKClRoZSBhYm92ZSBjb2RlIHByb2R1Y2VzOgpgYGBqc29uCnsKICAidHlwZSIgOiAib2JqZWN0IiwKICAicHJvcGVydGllcyIgOiB7CiAgICAiZGF0YSIgOiB7CiAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgInJlbGF0aW9uc2hpcHMiIDogewogICAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAgICJzdWJjb21wb25lbnRzIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwKICAgICAgICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAgICAgICAiZGF0YSIgOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJhcnJheSIsCiAgICAgICAgICAgICAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogewogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgImVudW0iIDogWwogICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRnZXRzIgogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgImlkIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCIgOiBbCiAgICAgICAgICAgICAgICAgICAgICAiaWQiLAogICAgICAgICAgICAgICAgICAgICAgInR5cGUiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICAgICAgICAgImRhdGEiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgInJlcXVpcmVkIiA6IFsKICAgICAgICAgICAgInN1YmNvbXBvbmVudHMiCiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAiaWQiIDogewogICAgICAgICAgInR5cGUiIDogInN0cmluZyIKICAgICAgICB9LAogICAgICAgICJ0eXBlIiA6IHsKICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLAogICAgICAgICAgImVudW0iIDogWwogICAgICAgICAgICAid2lkZ2V0cyIKICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJhdHRyaWJ1dGVzIiA6IHsKICAgICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgICAicHJvZHVjdE5hbWUiIDogewogICAgICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICAgICAicHJvZHVjdE5hbWUiCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9LAogICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICJhdHRyaWJ1dGVzIiwKICAgICAgICAiaWQiLAogICAgICAgICJyZWxhdGlvbnNoaXBzIiwKICAgICAgICAidHlwZSIKICAgICAgXQogICAgfSwKICAgICJpbmNsdWRlZCIgOiB7CiAgICAgICJ0eXBlIiA6ICJhcnJheSIsCiAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgInJlbGF0aW9uc2hpcHMiIDogewogICAgICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwKICAgICAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgICAgICJzdWJjb21wb25lbnRzIiA6IHsKICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgICAgICAgICAiZGF0YSIgOiB7CiAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogImFycmF5IiwKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiIDogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiZW51bSIgOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZ2V0cyIKICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJpZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCIgOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgImlkIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJyZXF1aXJlZCIgOiBbCiAgICAgICAgICAgICAgICAgICJkYXRhIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlcXVpcmVkIiA6IFsKICAgICAgICAgICAgICAic3ViY29tcG9uZW50cyIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgICJpZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgInR5cGUiIDogewogICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwKICAgICAgICAgICAgImVudW0iIDogWwogICAgICAgICAgICAgICJ3aWRnZXRzIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiIDogewogICAgICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwKICAgICAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgICAgICJwcm9kdWN0TmFtZSIgOiB7CiAgICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlcXVpcmVkIiA6IFsKICAgICAgICAgICAgICAicHJvZHVjdE5hbWUiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJyZXF1aXJlZCIgOiBbCiAgICAgICAgICAiYXR0cmlidXRlcyIsCiAgICAgICAgICAiaWQiLAogICAgICAgICAgInJlbGF0aW9uc2hpcHMiLAogICAgICAgICAgInR5cGUiCiAgICAgICAgXQogICAgICB9LAogICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQogICAgfQogIH0sCiAgInJlcXVpcmVkIiA6IFsKICAgICJpbmNsdWRlZCIsCiAgICAiZGF0YSIKICBdCn0KYGBgCg== readmeEtag: '"bd8adcc002594612e73978a4105b50246ddb59f0"' readmeLastModified: Thu, 15 Feb 2024 18:27:10 GMT repositoryId: 168446016 description: >- A library that adds support for generating OpenAPI compliant documentation from JSON API compliant models. created: '2019-01-31T01:58:58Z' updated: '2023-12-27T16:31:47Z' language: Swift archived: false stars: 9 watchers: 3 forks: 2 owner: mattpolzin logo: https://avatars.githubusercontent.com/u/2075353?v=4 license: MIT repoEtag: '"43cb8ac7609c22ce6e17b8c817bb2d9bf460ac12f38a647d550284605ad273a9"' repoLastModified: Wed, 27 Dec 2023 16:31:47 GMT foundInMaster: true category: Parsers id: 7e5ab9bd4ed0a9dd5317056ec3612287 - source: openapi3 tags repository: https://github.com/shavo007/k6-demo v3: true repositoryMetadata: base64Readme: >- IyBUeXBlU2NyaXB0IHdpdGggazYKCiFbYmFubmVyXShhc3NldHMvdHMtanMtazYucG5nKQoKaHR0cHM6Ly9ibG9nLnNoYW5lbGVlLm5hbWUvMjAyMS8xMi8xNS9wZXJmb3JtYW5jZS10ZXN0aW5nLXdpdGgtazYvCgpUaGlzIHJlcG9zaXRvcnkgc2hvd2Nhc2VzIGs2IHdpdGggdHlwZXNjcmlwdCBhbmQgZ2VuZXJhdGluZyBib2lsZXJwbGF0ZSBzY3JpcHRzIGZyb20geW91ciBPQVMgKE9wZW4gQVBJIFNwZWMpLiBrNiByZWNlbnRseSBvdXRsaW5lZCBpbiB0aG91Z2h0d29ya3MgW3RlY2ggcmFkYXJdKGh0dHBzOi8vd3d3LnRob3VnaHR3b3Jrcy5jb20vcmFkYXIvdG9vbHM/YmxpcGlkPTIwMjAxMDA3OCkgdG9vbHMgcXVhZHJhbnQuCgohWy5naXRodWIvd29ya2Zsb3dzL3B1c2gueW1sXShodHRwczovL2dpdGh1Yi5jb20vc2hhdm8wMDcvazYtZGVtby93b3JrZmxvd3MvLmdpdGh1Yi93b3JrZmxvd3MvcHVzaC55bWwvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKQohW0dpdEh1YiB0b3AgbGFuZ3VhZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhbmd1YWdlcy90b3Avc2hhdm8wMDcvazYtZGVtbykKCi0gW1R5cGVTY3JpcHQgd2l0aCBrNl0oI3R5cGVzY3JpcHQtd2l0aC1rNikKICAtIFtQcmVyZXF1aXNpdGVzXSgjcHJlcmVxdWlzaXRlcykKICAtIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgICAtIFtJbnN0YWxsIGRlcGVuZGVuY2llc10oI2luc3RhbGwtZGVwZW5kZW5jaWVzKQogIC0gW1VzYWdlL0V4YW1wbGVzXSgjdXNhZ2VleGFtcGxlcykKICAgIC0gW1J1bm5pbmcgdGhlIHRlc3RdKCNydW5uaW5nLXRoZS10ZXN0KQogICAgLSBbT0FTIGludGVncmF0aW9uXSgjb2FzLWludGVncmF0aW9uKQogICAgICAtIFtUZXN0IHJ1bm5pbmcgYWdhaW5zdCB0aGUgQVBJXSgjdGVzdC1ydW5uaW5nLWFnYWluc3QtdGhlLWFwaSkKICAgIC0gW09BdXRoMiBpbnRlZ3JhdGlvbl0oI29hdXRoMi1pbnRlZ3JhdGlvbikKICAgIC0gW0xvYWQgdGVzdGluZyB3aXRoIGluZmx1eGRiIGFuZCBncmFmYW5hXSgjbG9hZC10ZXN0aW5nLXdpdGgtaW5mbHV4ZGItYW5kLWdyYWZhbmEpCiAgLSBbUmVzb3VyY2VzXSgjcmVzb3VyY2VzKQogIC0gW1RPRE9dKCN0b2RvKQoKIyMgUHJlcmVxdWlzaXRlcwoKLSBbazZdKGh0dHBzOi8vazYuaW8vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvaW5zdGFsbGF0aW9uKQotIFtOb2RlSlNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9kb3dubG9hZC8pCi0gW1lhcm5dKGh0dHBzOi8veWFybnBrZy5jb20vZ2V0dGluZy1zdGFydGVkL2luc3RhbGwpCi0gW0RvY2tlcl0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZ2V0LWRvY2tlci8pCgojIyBJbnN0YWxsYXRpb24KCiMjIyBJbnN0YWxsIGRlcGVuZGVuY2llcwoKQ2xvbmUgdGhlIGdlbmVyYXRlZCByZXBvc2l0b3J5IG9uIHlvdXIgbG9jYWwgbWFjaGluZSwgbW92ZSB0byB0aGUgcHJvamVjdCByb290IGZvbGRlciBhbmQgaW5zdGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gW2BwYWNrYWdlLmpzb25gXSguL3BhY2thZ2UuanNvbikKCmBgYGJhc2gKeWFybgpgYGAKCiMjIFVzYWdlL0V4YW1wbGVzCgojIyMgUnVubmluZyB0aGUgdGVzdAoKVG8gcnVuIGEgdGVzdCB3cml0dGVuIGluIFR5cGVTY3JpcHQsIHdlIGZpcnN0IGhhdmUgdG8gdHJhbnNwaWxlIHRoZSBUeXBlU2NyaXB0IGNvZGUgaW50byBKYXZhU2NyaXB0IGFuZCBidW5kbGUgdGhlIHByb2plY3QKCmBgYGJhc2gKeWFybiBidW5kbGUKYGBgCgpUaGlzIGNvbW1hbmQgY3JlYXRlcyB0aGUgZmluYWwgdGVzdCBmaWxlcyB0byB0aGUgYC4vZGlzdGAgZm9sZGVyLgoKT25jZSB0aGF0IGlzIGRvbmUsIHdlIGNhbiBydW4gb3VyIHNjcmlwdCB0aGUgc2FtZSB3YXkgd2UgdXN1YWxseSBkbywgZm9yIGluc3RhbmNlOgoKYGBgYmFzaAprNiBydW4gZGlzdC90ZXN0MS5qcwpgYGAKCiMjIyBPQVMgaW50ZWdyYXRpb24KCj4gU2hvd2Nhc2UgZ2VuIGs2IHNjcmlwdCBmcm9tIE9BUyAoT3BlbiBBUEkgU3BlYykKCkdlbmVyYXRlIGs2cyBzY3JpcHRzIHZpYSBbb3BlbiBhcGkgZ2VuZXJhdG9yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvZG9jcy9nZW5lcmF0b3JzLyNjbGllbnQtZ2VuZXJhdG9ycykgYW5kIHRoZSBbb2FzIGZpbGVdKG9hczMueWFtbCkuIENhbiBydW4gdGhlIENMSSB2aWEgdGhlIGRvY2tlciBpbWFnZS4KCmBgYGJhc2gKZG9ja2VyIHB1bGwgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQoKZG9ja2VyIHJ1biAtLXJtIC12ICR7UFdEfTovbG9jYWwgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSAvbG9jYWwvb2FzMy55YW1sIFwKICAgIC1nIGs2IFwKICAgIC1vIC9sb2NhbC9rNi1vYXMzLyBcCiAgICAtLXNraXAtdmFsaWRhdGUtc3BlYwoKYGBgCgpUaGlzIGdlbmVyYXRlcyBbc2NyaXB0LmpzXSguL2s2LW9hczMvc2NyaXB0LmpzKSBhbmQgaXMgYSBncmVhdCBzdGFydCB0byBoZWxwIHN1cHBvcnQgZGVmaW5pbmcgeW91ciBwZXJmIHRlc3QgY2FzZXMuCgoqKk5CKiogSXQgaXMgYm9pbGVycGxhdGUgc28gd2lsbCBuZWVkIHRvIGJlIHJlZmluZWQgYWZ0ZXIgZm9yIHJlLXVzZQoKVGhpcyBhdXRvLWdlbmVyYXRpb24gb2YgdGhlIGxvYWQgdGVzdCBzY3JpcHQgd2lsbCBoZWxwIHN0cmVhbWxpbmUgdGhlIEFQSSB0ZXN0aW5nIHByb2Nlc3MsIGtlZXBpbmcgb24gcGFyIHdpdGggdGhlIGxhdGVzdCBjaGFuZ2VzIHRvIHRoZWlyIEFQSXMgYW5kIHNwZWNpZmljYXRpb25zLgoKIyMjIyBUZXN0IHJ1bm5pbmcgYWdhaW5zdCB0aGUgQVBJCgpgYGBiYXNoCmRvY2tlciBydW4gLWQgLXA4MDkwOjgwODEgc2hhbmVsZWUwMDcvZ3JlZXRpbmdzLWFwaTpsYXRlc3QgI3J1biBncmVldGluZ3MgQVBJCnlhcm4gYnVuZGxlCms2IHJ1biAtZSBFTlY9bG9jYWwgZGlzdC9ncmVldGluZ3MuanMKeWFybiBodG1sICNnZW5lcmF0ZSBhIGh0bWwgcmVwb3J0CmBgYAoKIyMjIE9BdXRoMiBpbnRlZ3JhdGlvbgoKPiBTaG93Y2FzZSBnZW4gdHlwZXMgZnJvbSBvcGVuIGFwaSBnZW5lcmF0b3IgYW5kIGs2IHNjcmlwdHMgZm9yIFticGF5IEFQSV0oLi9icGF5L29hczMueWFtbCkKCi0gR2VuZXJhdGUgdHlwZXNjcmlwdCBjbGllbnQgc2RrIChmb3IgdHlwZXMpCi0gR2VuZXJhdGUgazYgc2NyaXB0cyBmcm9tIE9BUwoKYGBgYmFzaAojIGdlbiBjbGllbnQgc2RrIGZyb20gT0FTIHVzaW5nIGdlbmVyYXRvciB0eXBlc2NyaXB0CmRvY2tlciBydW4gLS1ybSAtdiAke1BXRH06L2xvY2FsIG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgXAogICAgLWkgL2xvY2FsL2JwYXkvb2FzMy55YW1sIFwKICAgIC1nIHR5cGVzY3JpcHQgXAogICAgLW8gL2xvY2FsL2JwYXkvYnBheS1jbGllbnQvIFwKICAgIC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzPXN1cHBvcnRzRVM2PXRydWUscGxhdGZvcm09bm9kZSBcCiAgICAtLXNraXAtdmFsaWRhdGUtc3BlYwoKIyBPUiBnZW5lcmF0ZSB0eXBlcyBmcm9tIE9BUyB2aWEgb3BlbmFwaS10eXBlc2NyaXB0Cm5weCBvcGVuYXBpLXR5cGVzY3JpcHQgYnBheS9vYXMzLnlhbWwgLS1vdXRwdXQgYnBheS90eXBlcy9zY2hlbWEudHMKbnB4IG9wZW5hcGktdHlwZXNjcmlwdCBicGF5L29hczMueWFtbCAtLW91dHB1dCBzcmMvYnBheS9zY2hlbWEudHMKCiMgZ2VuIGs2IHNjcmlwdHMKZG9ja2VyIHJ1biAtLXJtIC12ICR7UFdEfTovbG9jYWwgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSAvbG9jYWwvYnBheS9vYXMzLnlhbWwgXAogICAgLWcgazYgXAogICAgLW8gL2xvY2FsL2JwYXkvazYvIFwKICAgIC0tc2tpcC12YWxpZGF0ZS1zcGVjCgojcnVuIGxvYWQgdGVzdCBhZ2FpbnN0IGJwYXkgYXBpCnlhcm4gYnVuZGxlCkNMSUVOVF9JRD1SRURBQ1RFRCBDTElFTlRfU0VDUkVUPVJFREFDVEVEIGs2IHJ1biBkaXN0L2JwYXkuanMKYGBgCgojIyMgTG9hZCB0ZXN0aW5nIHdpdGggaW5mbHV4ZGIgYW5kIGdyYWZhbmEKCmBgYGJhc2gKZG9ja2VyIGNvbXBvc2UgdXAgLWQgI3J1biB0aGUgc2VydmljZXMgaW4gdGhlIGJhY2tncm91bmQKZG9ja2VyLWNvbXBvc2UgcnVuIC12IFwKICAgICRQV0QvZGlzdDovc2NyaXB0cyBcCiAgICBrNiBydW4gLWUgRU5WPWRvY2tlciAgL3NjcmlwdHMvZ3JlZXRpbmdzLmpzCgpgYGAKCkFjY2VzcyBncmFmYW5hOiBgb3BlbiBodHRwOi8vbG9jYWxob3N0OjMwMDBgIGFuZCB2ZXJpZnkgY29ubmVjdGlvbiB0byBpbmZsdXhkYiBkYXRhc291cmNlLiBBY2Nlc3MgdGhlIHByZS1kZWZpbmVkIGRhc2hib2FyZCBhbmQgc2V0IGludGVydmFsIHRvIHRoZSBwYXN0IDUgbWlucy4gWW91IHNob3VsZCBzZWUgc2ltaWxhciBvdXRsaW5lIHRvIGJlbG93CgohW0dyYWZhbmEgZGFzaGJvYXJkXSguL2Fzc2V0cy9ncmFmYW5hLnBuZykKCiMjIFJlc291cmNlcwoKLSBbazYgYW5kIG9hc10oaHR0cHM6Ly9rNi5pby9ibG9nL2xvYWQtdGVzdGluZy15b3VyLWFwaS13aXRoLXN3YWdnZXItb3BlbmFwaS1hbmQtazYvKQotIFtrNiB2cyBqbWV0ZXJdKGh0dHBzOi8vazYuaW8vYmxvZy9rNi12cy1qbWV0ZXIvKQotIFtwcmV0dGllciBwcmUtY29tbWl0XShodHRwczovL3ByZXR0aWVyLmlvL2RvY3MvZW4vcHJlY29tbWl0Lmh0bWwpCgojIyBUT0RPCgotIHJhaXNlIGlzc3VlIG9uIHN0ZG91dCBjaGFycwotIHNob3djYXNlIGJyb3dzZXIgcmVjb3JkZXIK readmeEtag: '"66be7b89fd66b5b28af9b5bf3e10f01be38221c0"' readmeLastModified: Fri, 23 Jun 2023 07:00:22 GMT repositoryId: 360389583 description: demo perf tests using k6 and OAS (open api spec) created: '2021-04-22T04:16:45Z' updated: '2024-08-10T13:06:28Z' language: TypeScript archived: false stars: 9 watchers: 4 forks: 0 owner: shavo007 logo: https://avatars.githubusercontent.com/u/5466825?v=4 license: MIT repoEtag: '"05c9f1669b048d88fa0ad4b688352003f0bfec573c9a7423872b3a346a0cc6e0"' repoLastModified: Sat, 10 Aug 2024 13:06:28 GMT foundInMaster: true category: Code Generators id: 4d586216eabc1d69aa1fe6cb703eee26 - source: openapi3 tags repository: https://github.com/python-lapidary/lapidary v3: true id: 6c315a3d79c2bbf8ff1d1567f057f64b repositoryMetadata: base64Readme: >- IyBMYXBpZGFyeQoKWyFbdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1sYXBpZGFyeS9sYXBpZGFyeS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0X3B1Ymxpc2gueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWxhcGlkYXJ5L2xhcGlkYXJ5L2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3RfcHVibHNoLnlhbWwpCgpQeXRob24gRFNMIGZvciBXZWIgQVBJIGNsaWVudHMuCgpodHRwOi8vbGFwaWRhcnkuZGV2LwoKQWxzbyBjaGVjayBbbGFwaWRhcnktcmVuZGVyXShodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWxhcGlkYXJ5L2xhcGlkYXJ5LXJlbmRlci8pLAphIGNvbW1hbmQgbGluZSBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIExhcGlkYXJ5IGNsaWVudHMgZnJvbSBPcGVuQVBJLgoKIyMgVXNhZ2U6CgpgYGBweXRob24KY2xhc3MgQ2F0Q2xpZW50KENsaWVudEJhc2UpOgogICAgIiIiVGhpcyBjbGFzcyBpcyBhIHdvcmtpbmcgQVBJIGNsaWVudCIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKAogICAgICAgICAgICBiYXNlX3VybD0naHR0cHM6Ly9leGFtcGxlLmNvbS9hcGknLAogICAgICAgICkKCiAgICBAZ2V0KCcvY2F0JykKICAgIGFzeW5jIGRlZiBsaXN0X2NhdHMoc2VsZjogU2VsZikgLT4gQW5ub3RhdGVkWwogICAgICAgIHR1cGxlW2xpc3RbQ2F0XSwgQ2F0TGlzdE1ldGFdLAogICAgICAgIFJlc3BvbnNlcyh7CiAgICAgICAgICAgICcyWFgnOiBSZXNwb25zZSgKICAgICAgICAgICAgICAgIEJvZHkoewogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzogbGlzdFtDYXRdLAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICBDYXRMaXN0TWV0YQogICAgICAgICAgICApLAogICAgICAgIH0pCiAgICBdOgogICAgICAgcGFzcwoKY2xpZW50ID0gQ2F0Q2xpZW50KCkKY2F0c19ib2R5LCBjYXRzX21ldGEgPSBhd2FpdCBjbGllbnQubGlzdF9jYXRzKCkKYGBgCg== readmeEtag: '"808f100295c34b86ceabc97b44e80dab46f4ca4f"' readmeLastModified: Fri, 16 Aug 2024 13:09:45 GMT repositoryId: 530807671 description: Write Web API clients using annotations in python created: '2022-08-30T19:50:12Z' updated: '2024-09-01T09:13:28Z' language: Python archived: false stars: 9 watchers: 1 forks: 0 owner: python-lapidary logo: https://avatars.githubusercontent.com/u/111730600?v=4 license: MIT repoEtag: '"a9e7efc3212b94a32f15a0086a172639611554fc397fb9b085e976787e977363"' repoLastModified: Sun, 01 Sep 2024 09:13:28 GMT category: - Parsers - SDK foundInMaster: true oldLocations: - https://github.com/lapis-project/lapis - source: openapi3 tags repository: https://github.com/overflowdigital/flask-openapi v3: true id: 51e114e3aa9b01b264af35e38341edcd repositoryMetadata: base64Readme: >- IyBGbGFzay1PcGVuQVBJCgoqKkZsYXNrLU9wZW5BUEkgaXMgbm93IGluIG1haW50ZW5hbmNlIG1vZGUuKioKClshW1B5dGhvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9weXRob24tMy44LjAtYmx1ZS5zdmcpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi0zLjguLjAtYmx1ZS5zdmcpClshW1B5UGldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L0ZsYXNrLU9wZW5BUEkzLVVJLnN2ZyldKGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvRmxhc2stT3BlbkFQSTMtVUkpClshW1B5UGldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9kbS9GbGFzay1PcGVuQVBJMy1VSS5zdmcpXShodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL0ZsYXNrLU9wZW5BUEkzLVVJKQpbIVtGbGFzay1PcGVuQVBJMy1VSV0oaHR0cHM6Ly9zbnlrLmlvL2Fkdmlzb3IvcHl0aG9uL0ZsYXNrLU9wZW5BUEkzLVVJL2JhZGdlLnN2ZyldKGh0dHBzOi8vc255ay5pby9hZHZpc29yL3B5dGhvbi9GbGFzay1PcGVuQVBJMy1VSSkKCkZsYXNrLU9wZW5BUEkgaXMgYSBGbGFzayBleHRlbnNpb24gdGhhdCBwcm92aWRlcyBpbnRlZ3JhdGlvbiB3aXRoIE9wZW5BUEkgdjIsIHYzLCBhbmQgdjMuMSBzcGVjaWZpY2F0aW9ucyBlYXNpbHkuCgojIyBGZWF0dXJlcwotIEVhc3kgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGRlZmluaXRpb25zIHdpdGggdGhlIGBvcGVuYXBpX3NwZWNgIGRlY29yYXRvcgotIEN1c3RvbWlzYWJsZSBTd2FnZ2VyIFVJCi0gU3VwcG9ydHMgT3BlbkFQSSB2Mi4wLCB2My4wLCBhbmQgdjMuMQotIFN1cHBvcnRzIFN3YWdnZXIgVUkgdjIsIHYzLCB2NCwgYW5kIHY1LgoKIyMgR2V0dGluZyBTdGFydGVkClRvIHF1aWNrbHkgaW5zdGFsbDoKYHBpcCBpbnN0YWxsIEZsYXNrLU9wZW5BUEkzLVVJYAoKU2VlIHRoZSBbR2V0dGluZyBTdGFydGVkXShodHRwczovL2dpdGh1Yi5jb20vb3ZlcmZsb3dkaWdpdGFsL0ZsYXNrLU9wZW5BUEkvd2lraSkgZG9jdW1lbnRhdGlvbiB0byBnZXQgaW5zdGFsbGVkIGFuZCBzZXR1cCB3aXRoIHlvdXIgRmxhc2sgYXBwbGljYXRpb24uCgojIyBDb250cmlidXRpbmcKU2VlIHRoZSBbQ29udHJpYnV0aW5nIEd1aWRlXShodHRwczovL2dpdGh1Yi5jb20vb3ZlcmZsb3dkaWdpdGFsL0ZsYXNrLU9wZW5BUEkvYmxvYi9tYWluL0NPTlRSSUJVVElORy5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY29udHJpYnV0aW5nIHRvIHRoZSBwcm9qZWN0LgoKIyMgU2VjdXJpdHkKV2UgdGFrZSBzZWN1cml0eSBzZXJpb3VzbHksIHBsZWFzZSByZWFkIHRoZSBbU2VjdXJpdHkgQWR2aXNvcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9vdmVyZmxvd2RpZ2l0YWwvRmxhc2stT3BlbkFQSS9ibG9iL21haW4vU0VDVVJJVFkubWQpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMgQ29kZSBvZiBDb25kdWN0CldlIHRha2UgemVybyB0b2xlcmFuY2Ugb24gYXR0YWNrcyBvbiBvdXIgT1NTIGNvbW11bml0eSwgcGxlYXNlIHNlZSB0aGUgW0NvZGUgb2YgQ29uZHVjdF0oaHR0cHM6Ly9naXRodWIuY29tL292ZXJmbG93ZGlnaXRhbC9GbGFzay1PcGVuQVBJL2Jsb2IvbWFpbi9DT0RFX09GX0NPTkRVQ1QubWQpIGZvciBtb3JlIGluZm9ybWF0aW9uCg== readmeEtag: '"756a6b04738a3a3b572b63ba0e94b60a5de63d18"' readmeLastModified: Wed, 14 Feb 2024 09:50:39 GMT repositoryId: 526292250 description: >- Flask-OpenAPI is a Flask extension that provides integration with OpenAPI v2, v3, and v3.1 specifications easily. created: '2022-08-18T16:35:43Z' updated: '2023-10-03T10:36:08Z' language: JavaScript archived: false stars: 9 watchers: 2 forks: 1 owner: overflowdigital logo: https://avatars.githubusercontent.com/u/93914478?v=4 license: MIT repoEtag: '"3d807fdef80d4e923222a9559fac6ca90af9c0998f8c1004030b41c4a52cd212"' repoLastModified: Tue, 03 Oct 2023 10:36:08 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/vymalo/keycloak-phone-number v3: true id: cdc1a6a78dba21b420011984b42b5d12 repositoryMetadata: base64Readme: >- IyBMb2dpbiBCeSBQaG9uZU51bWJlcgoKVGhpcyBwbHVnaW4gaGVscHMgeW91IGxvZ2luIHVzaW5nIHBob24gbnVtYmVyIHRhbi4gRm9yIHRoYXQsIHdlIGNyZWF0ZSBhbmQgbWFuYWdlIGEgdXNlciBhdHRyaWJ1dGUgYHBob25lTnVtYmVyYC4KCkFmdGVyIHlvdSBpbnN0YWxsIGl0LCB5b3UgY2FuIGNvbmZpZ3VyZSBlYWNoIHN0ZXAgaW5kZXBlbmRlbnRseQo= readmeEtag: '"44cd297d139de5152e16ec8ef861bd351c34a7fa"' readmeLastModified: Sat, 11 Nov 2023 09:09:53 GMT repositoryId: 290233843 description: Keycloak plugin for logins using phone number created: '2020-08-25T14:13:59Z' updated: '2024-04-15T05:17:15Z' language: Java archived: false stars: 9 watchers: 3 forks: 3 owner: vymalo logo: https://avatars.githubusercontent.com/u/128943481?v=4 repoEtag: '"a2eb6222c58fa5553dba3ffff121dc4935b2ba94394aab6ac98a087c65466f3c"' repoLastModified: Mon, 15 Apr 2024 05:17:15 GMT category: Server Implementations oldLocations: - https://github.com/bayamsell/keycloak-phone-number foundInMaster: true - source: openapi3 tags repository: https://github.com/danicc097/openapi-go-gin-postgres-sqlc v3: true id: 3b62bf7982213c373ce1fded4ae53279 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWdvLWdpbi1wb3N0Z3Jlcy1zcWxjCgpbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZGFuaWNjMDk3L29wZW5hcGktZ28tZ2luLXBvc3RncmVzLXNxbGMpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZGFuaWNjMDk3L29wZW5hcGktZ28tZ2luLXBvc3RncmVzLXNxbGMpClshW0dvRG9jXShodHRwczovL3BrZy5nby5kZXYvYmFkZ2UvZ2l0aHViLmNvbS9kYW5pY2MwOTcvb3BlbmFwaS1nby1naW4tcG9zdGdyZXMtc3FsYyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmljYzA5Ny9vcGVuYXBpLWdvLWdpbi1wb3N0Z3Jlcy1zcWxjKQpbIVt0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2RhbmljYzA5Ny9vcGVuYXBpLWdvLWdpbi1wb3N0Z3Jlcy1zcWxjL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3RzLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmljYzA5Ny9vcGVuYXBpLWdvLWdpbi1wb3N0Z3Jlcy1zcWxjL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3RzLnlhbWwpCgpFeGFtcGxlIGZ1bGwgc3RhY2sgYXBwIHdpdGggYW4gQVBJLWZpcnN0IGFuZCBEYXRhYmFzZS1maXJzdCBhcHByb2FjaCB3aXRoIE9wZW5BUEkgdjMsIHNxbGMreG8gY29kZWdlbiwKZ2VuZXJhdGVkIGJhY2tlbmQsIGZyb250ZW5kIGNsaWVudCBhbmQgdmFsaWRhdG9ycyBhbmQgYW4gdW5pbWFnaW5hdGl2ZSB0aXRsZS4KCiMjIFdoYXQncyB0aGlzIGZvcj8KCkFuIGV4YW1wbGUgZnVsbHkgZmVhdHVyZWQgYXBwIHRvIHNob3djYXNlIGhvdyBhbiBPcGVuQVBJIHYzIHNwZWMgYW5kIGRhdGFiYXNlCnNjaGVtYSBiZWNvbWUgYSByZWFsIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggYXQgb25jZS4gQW55CmNoYW5nZSB0byBpdCBpcyB2YWxpZGF0ZWQgYW5kIGNhc2NhZGVzIGRvd24gdG86CgotICoqZnJvbnRlbmQqKjogYXV0b2dlbmVyYXRlZCBjb21wbGV4LCBjdXN0b21pemFibGUgYW5kIGZ1bGx5IHR5cGUtc2FmZSBVSSBmb3JtcwogIGJhc2VkIG9uIHRoZSBPcGVuQVBJIHNwZWMgY29udmVydGVkIHRvIEpTT04KICBzY2hlbWEuIEdlbmVyYXRlZCBBUEkgcXVlcmllcyAoYG9ydmFsYCkuIFVzZXItZnJpZW5kbHkgZ2VuZXJhdGVkIGNsaWVudC1zaWRlCiAgdmFsaWRhdGlvbgogICh2aWEgYHJlYWN0LWhvb2stZm9ybWAgYW5kIGBhanZgIHBsdXMgY3VzdG9taXplZCBga2luLW9wZW5hcGlgIGVycm9yCiAgbWVzc2FnZXMgZm9yIGJhY2tlbmQgZXJyb3JzKS4gQ2hlY2sgb3V0IHRoZSBmcm9udGVuZCBob21lIHBhZ2UgZm9yIGF2YWlsYWJsZSBsaW5rcy4KLSAqKmJhY2tlbmQqKjogZ2VuZXJhdGVkIEdpbiBzZXJ2ZXIgKGN1c3RvbSBgb2FwaS1jb2RlZ2VuYCBhbmQgcG9zdC1nZW5lcmF0aW9uKS4KICBSZXF1ZXN0IGFuZCByZXNwb25zZSB2YWxpZGF0aW9uIChga2luLW9wZW5hcGlgKS4gR2VuZXJhdGVkIENSVUQgYW5kIGluZGV4IHF1ZXJpZXMgdmlhIGB4b2AKICBhbmQgY3VzdG9tIHF1ZXJpZXMgdmlhIGBzcWxjYCBieSBsZXZlcmFnaW5nIGN1c3RvbSBgeG9gIHRlbXBsYXRlIGdlbmVyYXRpb24KICB0aGF0IGVuc3VyZXMgY29tcGF0aWJpbGl0eS4gSW50ZWdyYXRlZCBPcGVuSUQgQ29ubmVjdCBjbGllbnQgdmlhCiAgYHppdGFkZWwvb2lkY2AgKGFuZCBkb2NrZXJpemVkIGF1dGhvcml6YXRpb24gc2VydmVyIGZvciBkZXZlbG9wbWVudCBpbgogIGBjbWQvb2lkYy1zZXJ2ZXJgIGJhc2VkIG9uIHJldXNhYmxlIG1vY2sgc2VydmVyIHdpdGggZ2VuZXJpY3MgaW4KICBbb2lkYy1zZXJ2ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pY2MwOTcvb2lkYy1zZXJ2ZXIpKS4gQXBwIGV2ZW50cyBwcm9jZXNzaW5nCiAgdmlhIFNlcnZlciBTZW50IEV2ZW50cy4KCiAgUXVlcmllcyBnZW5lcmF0ZWQgYnkgYHhvYCB1c2UgYHBneGAgZXhjbHVzaXZlbHkgYW5kIGluY2x1ZGVzCiAgcGFnaW5hdGlvbiwgaW5kZXhlcywgc29mdCBkZWxldGUgaGFuZGxpbmcsIGV4dGVuc2libGUgcXVlcmllcyAocGFyYW1ldGVyaXplZCBgd2hlcmVgLCBgaGF2aW5nYCBjbGF1c2VzKSwgam9pbnMgYW5kCiAgbXVjaCBtb3JlIChzZWUgW3hvIGludGVncmF0aW9uCiAgdGVzdHNdKC4vaW50ZXJuYWwvcmVwb3MvcG9zdGdyZXNxbC94by10ZW1wbGF0ZXMvdGVzdHMvKSkgdGhhdCB3aWxsIGdldCB5b3UKICAqKjk1JSoqIHRoZXJlIHdpdGhvdXQgcmVzb3J0aW5nIHRvIGFkLWhvYyBxdWVyaWVzLiBGb3VuZCBhbiBlZGdlIGNhc2Ugb3Igd2FudCBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkganVzdCBmb3IKICB5b3VyIERCIG5lZWRzPyBKdXN0IGVkaXQgYHhvLXRlbXBsYXRlcy9gLCBzaW5jZSBjb2RlZ2VuIGlzIGludGVycHJldGVkIGJ5CiAgYHlhZWdpYC4gQWRkaXRpb25hbGx5LCBieQogIHVzaW5nIGBwZ3hgLCBtb2RlbHMgY2FuIGJlIGVhc2lseSByZS1leHBvcnRlZCBhcyB1c2FibGUgT3BlbkFQSSBzY2hlbWFzIHZpYQogIGBvcGVuYXBpLWdvYCBhbmQgc29tZSBtYWdpYyBCYXNoIGFuZCBHbyB1dGlsaXR5IHByb2dyYW1zIHRoYXQga2VlcCBnZW5lcmF0ZWQKICBjb2RlIGluIG9yZGVyLgoKICBTaW5jZSB1c2luZyBEQiBtb2RlbHMgaW4gYWxsIGJhY2tlbmQgbGF5ZXJzIGlzIGNvbnNpZGVyZWQgYW4gYW50aS1wYXR0ZXJuIGF0CiAgc29tZSBsZXZlbCBvZiBtb2RlbCBjb21wbGV4aXR5LCB5b3UncmUgbm90IHRpZWQgdG8gZ2VuZXJhdGVkIHNjaGVtYXMgZnJvbSBEQgogIG1vZGVscy4KICBBbnkgc3RydWN0IGNhbiBiZWNvbWUgYSBzcGVjIHNjaGVtYSB2aWEgYG9wZW5hcGktZ29gIHN0cnVjdCB0YWdzIGFuZCBzb21lCiAgc2ltcGxlIGJhc2ggY29kZSBiZWhpbmQgdG8gZ3JhYiB0aGVtLCB3aXRoIG1pbmltYWwgY2F2ZWF0cy4gU2VlIGByZXN0YAogIHBhY2thZ2UuIEl0IGlzIGV2ZW4gcG9zc2libGUgdG8gcmVmZXJlbmNlIG9wZW5hcGkgc3BlYyBtb2RlbHMgaW4geW91ciBgeG9gCiAgZ2VuZXJhdGVkIG1vZGVscywgYXMgbG9uZyBhcyB0aGV5IGRvbid0IGNyZWF0ZSBhbnkgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLgogIFNpbmNlIGF0IHRoZSBsYXN0IGdlbmVyYXRpb24gc3RlcCB3ZSBnZW5lcmF0ZSBhbGwgc3BlYyBzY2hlbWFzIGJhY2sgdG8gR28gbW9kZWxzIHdpdGggYG9hcGktY29kZWdlbmAgdG8KICBhIHNoYXJlZCBgbW9kZWxzYCBwYWNrYWdlLCB0aGlzIGlzIG5vdCBhbiBpc3N1ZSAoYWx0aG91Z2ggeW91J2QgaGF2ZSB0bwogIGNob29zZSB3aGF0IG1vZGVscyB0byB1c2UsIHNpbmNlIHRoZXJlJ2xsIGR1cGxpY2F0aW9uIGZvciB0aGUgbW9kZWxzCiAgdGhhdCB3ZXJlIGFscmVhZHkgZ2VuZXJhdGVkIGJ5IGBvcGVuYXBpLWdvYCBpbiB0aGUgZmlyc3QgcGxhY2UgLSBpZGVhbGx5LCB1c2UgdGhlCiAgb3JpZ2luYWxzKS4KCkFkZGl0aW9uYWxseSwgaXQgZmVhdHVyZXMgT3BlblRlbGVtZXRyeSBpbiBib3RoIGJyb3dzZXIgKGF1dG9tYXRpYyBhbmQKbWFudWFsIGluc3RydW1lbnRhdGlvbikgYW5kIGJhY2tlbmQgc2VydmljZXMgKG1hbnVhbCBpbnN0cnVtZW50YXRpb24pIHZpYQpKYWVnZXIsIFRpbWVzY2FsZURCIGFuZCB+flByb21zY2FsZX5+IChkaXNjb250aW51ZWQsIHNob3VsZCBsb29rIGF0IG9wdGlvbnMgbGlrZQpgbWltaXJgKS4KCiMjIE1ha2VmaWxlIGFsdGVybmF0aXZlCgpZb3UgZ2V0IGR5bmFtaWMgYHhgIGZ1bmN0aW9uIGFuZCBgeGAgb3B0aW9ucyBwYXJhbWV0ZXJzIGRvY3VtZW50YXRpb24gX2FuZF8KYXV0b2NvbXBsZXRpb24gKGBjb21wbGV0ZSAtQyBwcm9qZWN0IHByb2plY3RgKSBmb3IKZnJlZSAoZnJvbSB5b3VyIG93biBzb3VyY2UgaXRzZWxmIGFuZCBjb21tZW50cykKc28gdGhleSdyZSBhbHdheXMgdXAgdG8gZGF0ZSB3aXRob3V0IGFueSByZXBldGl0aXZlIHdvcms6IGFkZC9yZW1vdmUgZnVuY3Rpb25zCmFuZCBmbGFncyBhdCB3aWxsLgpDdXN0b20gaW50ZXJuYWwgYXV0b2NvbXBsZXRpb24gZnVuY3Rpb25zIGZvciBlYWNoIGB4YCBmdW5jdGlvbiBvciBgeGAgb3B0aW9uIGNhbiBiZQplYXNpbHkgc2V0dXAuCgohW10oLmdpdGh1Yi9hdXRvZG9jcy5wbmcpCgpBbGwgY2FsbHMgdG8gYHhgIGZ1bmN0aW9ucyBhcmUgbG9nZ2VkIChkaXN0aW5ndWlzaGluZyBzdGRvdXQgYW5kIHN0ZGVycikgZm9yIGVhc2llciBwYXJhbGxlbCBleGVjdXRpb24gYW5kIG5lc3RlZApjYWxscyB0cmFja2luZzoKCiFbXSguZ2l0aHViL2xvZ2dpbmcucG5nKQoKQW5kIGhlbHAgZm9yIGFueSBgeGAgZnVuY3Rpb24gaXMgZWFzaWx5IHNlYXJjaGFibGUgd2hlbiB0aGUgYXBwIGluZXZpdGFibHkgZ3Jvd3MKd2l0aCBgLS14LWhlbHBgOgoKIVtdKC5naXRodWIvaGVscC14LWZ1bmN0aW9uLnBuZykKCiMjIFNldHVwCgojIyMgQ29uZmlndXJhdGlvbiBhbmQgbG9jYWwgZGV2ZWxvcG1lbnQKCkZpbGwgaW4gYC5lbnYudGVtcGxhdGVgJ3M6CgpgYGBiYXNoCmZpbmQgLiAtbmFtZSAiLmVudioudGVtcGxhdGUiCmBgYAoKRm9yIGBkZXZgIGVudmlyb25tZW50LCB5b3UgbWF5IHVzZSBgZW52LmNpYCBhcyBhIHN0YXJ0aW5nIHBvaW50LApyZXBsYWNpbmcgYGNpYCB3aXRoIGBkZXZgIGFuZCB1c2luZyBgUkVWRVJTRV9QUk9YWV9BUElfUFJFRklYPSIiYCBzaW5jZSBpdCB3aWxsIHJ1bgp0aGUgYmFja2VuZCB3aXRob3V0IGRvY2tlciBjb250YWluZXJzLgoKQXNzdW1pbmcgYSByZWNlbnQgVWJ1bnR1IHJlbGVhc2U6CgpgYGBiYXNoCgpzdWRvIGFwdCBpbnN0YWxsIGRpcmVudiAteQpkaXJlbnYgYWxsb3cgIyB5b3UgY2FuIGFsc28gY3VzdG9taXplIGRpcmVudiB3aXRoIC5lbnZyYy5sb2NhbCBhcyB5b3Ugd291bGQgYSByZWd1bGFyIC5lbnZyYywgc2VlIGV4YW1wbGUKCmNwIG9wZW5hcGktZ28uY29kZS13b3Jrc3BhY2UuZXhhbXBsZSBvcGVuYXBpLWdvLmNvZGUtd29ya3NwYWNlICMgZWRpdCBhcyBkZXNpcmVkCgpwcm9qZWN0IGJvb3RzdHJhcCAjIGRlcGVuZGVuY3kgYW5kIHRvb2xzIGludGVyYWN0aXZlIGluc3RhbGxhdGlvbgpwcm9qZWN0IGdlbgpwcm9qZWN0IHJlY3JlYXRlLXNoYXJlZC1zZXJ2aWNlcwpwcm9qZWN0IHJ1bi5hbGwKYGBgCgpGb3IgZmlyc3QgdGVzdCBydW46CgpgYGBiYXNoCnByb2plY3QgdGVzdC5iYWNrZW5kLnNldHVwCnByb2plY3QgdGVzdC5iYWNrZW5kCnByb2plY3QgdGVzdC5mcm9udGVuZApgYGAKCiMjIyBUcmFjaW5nLCBtb25pdG9yaW5nLi4uCgpgYGBiYXNoCmJpbi9kZXBsb3ktaW5zdHJ1bWVudGF0aW9uCmBgYAoKIyMgTm90ZXMgb24gY29kZSBnZW5lcmF0aW9uCgojIyMgYHhvYAoKRGIgc3RydWN0IG1hcHBpbmdzIGNhbiBiZSBleHRlbmRlZCB3aXRoIFNRTCBjb2x1bW4gY29tbWVudHMsIGpvaW5lZCB3aXRoIGAgJiYgYDoKLSBgcHJvcGVydGllc2A6YDxwMT4sPHAyPiwuLi5gCiAgLSBgcHJpdmF0ZWA6IGV4Y2x1ZGUgYSBmaWVsZCBmcm9tIEpTT04uCiAgLSBgbm90LXJlcXVpcmVkYDogbWFrZSBhIHNjaGVtYSBmaWVsZCBub3QgcmVxdWlyZWQuCiAgLSBgaGlkZGVuYDogZXhjbHVkZSBmaWVsZCBmcm9tIE9wZW5BUEkgZ2VuZXJhdGlvbi4KICAtIGByZWZzLWlnbm9yZWA6IGdlbmVyYXRlIGEgZmllbGQgd2hvc2UgY29uc3RyYWludHMgYXJlIGlnbm9yZWQgYnkgdGhlIHJlZmVyZW5jZWQgdGFibGUsCiAgaS5lLiBubyBqb2lucyB3aWxsIGJlIGdlbmVyYXRlZC4KICAtIGBzaGFyZS1yZWYtY29uc3RyYWludHNgOiBmb3IgYSBGSyBjb2x1bW4sIGl0IHdpbGwgZ2VuZXJhdGUgdGhlIHNhbWUgTTJPIGFuZCBNMk0gam9pbiBmaWVsZHMgdGhlIHJlZiBjb2x1bW4gaGFzLgotIGB0eXBlYDogb3ZlcnJpZGUgdGhlIHR5cGUgYW5ub3RhdGlvbiB3aXRoIGFuIGV4aXN0aW5nIHNwZWMgc2NoZW1hLiBBbHNvIGFsbG93cwogIGNvbXBsZXggSlNPTiBjb2x1bW5zIHRvIGJlIGVuY29kZWQgYW5kIGRlY29kZWQgdGhhbmtzIHRvIGBwZ3hgLgotIGBjYXJkaW5hbGl0eWA6YDxPMk98TTJPfE0yTT5gIHRvIGdlbmVyYXRlL292ZXJyaWRlIGpvaW5zIGV4cGxpY2l0bHkuIE9ubHkgTzJPIGlzIGluZmVycmVkLgotIGB0YWdzYDogYXBwZW5kIGxpdGVyYWwgc3RydWN0IHRhZyBzdHJpbmdzLgoKIyMjIGByZXN0YCBwYWNrYWdlCgpTdHJ1Y3RzIGluIGBtb2RlbHMuc3BlYy5nb2Agd2lsbCBiZSBnZW5lcmF0ZWQgdmlhIGBvcGVuYXBpLWdvYCBhbmQgcmVwbGFjZWQgaW4KdGhlIHNwZWMuIE1ha2Ugc3VyZSB0aGV5IGRvbid0IGNsYXNoIHdpdGggZXhpc3RpbmcgYG1vZGVsc2AgbmFtZXMgb3IgZGIgdGFibGVzLgoKIyMjIGBtb2RlbHNgIHBhY2thZ2UKCkNvbWJpbmVzIGRiIGNvZGVnZW4gdmlhIGEgY3VzdG9tIGB4b2AgYWxvbmdzaWRlIHNwZWMgc2NoZW1hcyBjb2RlZ2VuIGZvciBlYXNlIG9mIHVzZS4KCiMjIyBDUlVEICsgdGVzdHMgZ2VuZXJhdGlvbgoKU2VlIGBwcm9qZWN0IHRlc3QuY3JlYXRlLWNydWQtZ2VuYCdzIGltcGxlbWVudGF0aW9uIGZvciBhbiBleGFtcGxlIHdvcmtmbG93IHRvIGNyZWF0ZSBhCnZhcmlldHkgb2YgaW1wbGVtZW50ZWQgQ1JVRCBlbmRwb2ludHMgYW5kIHJlbGV2YW50IHRlc3RzIGZvciBhIGdpdmVuIGRhdGFiYXNlCnRhYmxlLgpUaGlzIGlzIGEgb25lLW9mZiBzY3JpcHQgcGVyIHRhYmxlLgoKIyMjIE9wZW5BUEkgc3BlYwoKIyMjIyBQYXRocwoKRW5kcG9pbnRzIGFyZSBleGNsdXNpdmVseSBtYW5hZ2VkIHRocm91Z2ggdGhlIHNwZWMgYW5kIGNyZWF0ZWQva2VwdCB1cCB0byBkYXRlCmluIHRoZWlyIHJlc3BlY3RpdmUgZmlsZXMgYWdncmVnYXRlZCBieSBgdGFnc2AgKGxpbWl0ZWQgdG8gb25lKQp2aWEgY29kZWdlbiBhbmQgQVNUIG1vZGlmaWNhdGlvbnMuIFRoaXMgZW5zdXJlcyB0aGUgc2VydmVyIGFsd2F5cyBpbXBsZW1lbnRzIHRoZQpzcGVjLgoKRm9yIGVuZHBvaW50IGltcGxlbWVudGF0aW9uLCBvbmx5IG1ldGhvZCBib2RpZXMgYXJlIHRvIGJlIG1vZGlmaWVkLgoKIyMjIyBWZW5kb3IgZXh0ZW5zaW9ucwoKQ29tcG9uZW50IHNjaGVtYXM6CiAgLSBgeC1nZW4tc3RydWN0YCBnZW5lcmF0ZXMgYSBzY2hlbWEgZnJvbSBhIHN0cnVjdCBhbmQga2VlcHMgaXQgdXAgdG8gZGF0ZSwKICAgIHdoaWNoIGNhbiBiZSB0YWdnZWQgd2l0aCBPcGVuQVBJIGZpZWxkcyAodmlhIG9wZW5hcGktZ28pLgogICAgUG9zc2libGUgc3RydWN0cyB0byBnZW5lcmF0ZSBmcm9tIGFyZSBsaXN0ZWQgaW4gYGludGVybmFsL2NvZGVnZW4vc3RydWN0cy5nZW4uZ29gCiAgICBpbmRleGVkIGJ5IGB4LWdlbi1zdHJ1Y3RgLgogICAgUGFja2FnZXMgdG8gZ2VuZXJhdGUgc3RydWN0cyBmcm9tIGFyZSBhZGRlZCBhZGhvYyAoY3VycmVudGx5IHJlc3QgYW5kIG1vZGVscyBwYWNrYWdlcyBvbmx5KQogICAgTm90ZSB0aGF0IHJlc3QgcGFja2FnZSBzdHJ1Y3RzIGFyZSBnZW5lcmF0ZWQgd2l0aG91dCBwcmVmaXggc2luY2UgdGhleQogICAgYXJlIHRoZSBiYXNlIG9mIHRoZSBzcGVjIC0gZWxzZSBwcmVmaXggaXMgdGhlIHBhc2NhbCBjYXNlZCBwYWNrYWdlIG5hbWUuCiAgICBUaGUgdmFsdWUgb2YgYHgtZ2VuLXN0cnVjdGAgbXVzdCBtYXRjaCB0aGUgc2NoZW1hIG5hbWUsIHRvIHByZXZlbnQgZHVwbGljYXRlcyBhbmQKICAgIGNvbmZ1c2luZyBkZWZpbml0aW9ucy4KICAgIFRvIHVzZSBhIHlldCB0byBiZSBnZW5lcmF0ZWQgYHJlc3RgIHBhY2thZ2Ugc3RydWN0IGluIHNwZWMgYHBhdGhzYCwgc2ltcGx5IHVzZSB0aGUgYCRyZWZgCiAgICB3aXRob3V0IGNyZWF0aW5nIGFueSBzY2hlbWEgYW5kIGl0IHdpbGwgYmUgYXV0b2dlbmVyYXRlZCBsYXRlciBpZiBpdCBkb2Vzbid0IGV4aXN0CiAgICAob25seSBmb3IgYHJlc3RgIHBhY2thZ2Ugc3RydWN0cywgc2luY2UgYW55IG90aGVyIHNob3VsZCBub3QgYmUgdXNlZCBhcyByZXF1ZXN0L3Jlc3BvbnNlIGluIHRoZQogICAgZmlyc3QgcGxhY2UpLgogIC0gYHgtc3BlYy1yZXN0LXR5cGVgOiBzZXQgdG8gdHJ1ZSB0byBtYXJrIHJlc3QgdHlwZXMgKGkuZS4gcmVxdWVzdCwgcmVzcG9uc2VzLCBxdWVyeSBwYXJhbXMuLi4pIHRoYXQgYXJlIG1hbnVhbGx5IGRlZmluZWQgaW4gdGhlIHNwZWMgaW5zdGVhZCBvZiBzdHJ1Y3RzIGluIGBtb2RlbHMuc3BlYy5nb2AuClBhdGggb3BlcmF0aW9uczoKICAtIGB4LXJlcXVpcmVkLXNjb3Blc2AgZGVmaW5lcyByZXF1aXJlZCBzY29wZXMgZm9yIGEgcmVxdWVzdC4KICAtIGB4LXJlcXVpcmVkLXJvbGVgIGRlZmluZXMgdGhlIG1pbmltdW0gcmVxdWlyZWQgcm9sZSBmb3IgYSByZXF1ZXN0LgoKCjwhLS0geG8gY3VzdG9tIHRlbXBsYXRlcyB3aXRoIGNhcmRpbmFsaXR5LCBwcm9wZXJ0eSBjb21tZW50cyBmb3Igam9pbiBhbmQgcHVibGljIG1vZGVsIGdlbmVyYXRpb24gZm9yIGVtYmVkZGluZywgc2NoZW1hIGZyb20gc3RydWN0cywgc3BlYyBzeW5jIC0tPgoKIyMgQXJjaGl0ZWN0dXJlCgpTaW1wbGlmaWVkOgoKIVtdKC5naXRodWIvc3lzdGVtLWRpYWdyYW0ucG5nKQoKIyMgS25vd24gaXNzdWVzCgotIE5lc3RlZCBmdW5jdGlvbnMgaW4gYHByb2plY3RgJ3MgYHhgIGZ1bmN0aW9ucyB3aWxsIGJyZWFrIGF1dG9tYXRpYwogIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgcGFydGljdWxhciBmdW5jdGlvbiBkdWUgdG8gYSBidWcgaW4gYGRlY2xhcmVgIHdoZXJlIHRoZSBsYXN0IG5lc3RlZCBmdW5jdGlvbiBsaW5lCiAgbnVtYmVyIGlzIHJldHVybmVkIGluc3RlYWQgb2YgdGhlIHBhcmVudC4KCiMjIFRPRE9zCgotIE1lYW5pbmdmdWwgcHJvamVjdCBuYW1lLgoKLSBTeXN0ZW0gZGVzaWduIGRvY3MvZGlhZ3JhbXMuCgoK readmeEtag: '"e56e79cdb0d314bf129b39af016bc9a87756c3c5"' readmeLastModified: Tue, 11 Jun 2024 14:31:57 GMT repositoryId: 516988488 description: >- Go API-first and Database-first demo app with OpenAPI v3 and sqlc/xo codegen, OIDC auth, React TypeScript frontend, end to end tracing with OpenTelemetry and a smart Bash repo task manager. created: '2022-07-23T07:25:51Z' updated: '2024-08-28T18:04:25Z' language: TypeScript archived: false stars: 9 watchers: 0 forks: 5 owner: danicc097 logo: https://avatars.githubusercontent.com/u/71724149?v=4 license: Apache-2.0 repoEtag: '"37cb196a39cd67f82fffaa37e9ffefdf1bd80e55e6600f374e11e8c2addcde8c"' repoLastModified: Wed, 28 Aug 2024 18:04:25 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/m3-moretv/smogger v3: true repositoryMetadata: base64Readme: >- IyMg0KfRgtC+INGN0YLQvj8K0JjQvdGB0YLRgNGD0LzQtdC90YIg0LTQu9GPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LPQviDRgdC+0LfQtNCw0L3QuNGPINC80L7Qui3RgdC10YDQstC10YDQsDog0LjQvNC40YLQsNGG0LjQuCDRgNC10LDQu9GM0L3QvtCz0L4gQVBJLArQvtC/0LjRgdCw0L3QvdC+0LPQviDQv9C+INGB0L/QtdGG0LjRhNC40LrQsNGG0LjQuCBbT3BlbiBBUEkgdjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKS4KCiMjINCX0LDQstC40YHQuNC80L7RgdGC0LgKLSBub2RlLmpzID49IDkKLSBPcGVuIEFQSSDRgdC/0LXRhtC40YTQuNC60LDRhtC40Y8gKHlhbWwvanNvbikKCiMjINCj0YHRgtCw0L3QvtCy0LrQsCDQuCDQt9Cw0L/Rg9GB0LoKLSBgbnBtIGkgQG0zLW1vcmV0di9zbW9nZ2VyYAotIGBucHggQG0zLW1vcmV0di9zbW9nZ2VyIC1zIC4vc3BlYy55YW1sYAotIGBucHggQG0zLW1vcmV0di9zbW9nZ2VyIC0taGVscGAg0L/QvtC60LDQttC10YIg0YHQv9C40YHQvtC6INC+0L/RhtC40LkKCtCd0LAg0L/QvtGA0YLRgyBgOjMwMDBgINC30LDQv9GD0YHRgtC40YLRgdGPIGh0dHAg0YHQtdGA0LLQtdGALCDQutC+0YLQvtGA0YvQuSDQsdGD0LTQtdGCINC/0L7Qu9C90L7RgdGC0YzRjiDRjdC80YPQu9C40YDQvtCy0LDRgtGMCtC+0L/QuNGB0LDQvdC90L7QtSDQsiDRgdC/0LXQutC1IEFQSS4g0JLRgdC1IGVuZHBvaW50cyDQsdGD0LTRg9GCINCy0L7Qt9Cy0YDQsNGJ0LDRgtGMINC80L7QtNC10LvQuCwg0L7Qv9C40YHQsNC90L3Ri9C1INCyIArRgdC/0LXRhtC40YTQuNC60LDRhtC40Lgg0YEg0YDQsNC90LTQvtC80L3Ri9C80Lgg0LfQvdCw0YfQtdC90LjRj9C80LgsINGB0LPQtdC90LXRgNC10L3QvdGL0LzQuCDRgSDQv9C+0LzQvtGJ0YzRjiBbRmFrZXIuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJhay9GYWtlci5qcy8pCgoqKtCd0LDQv9GA0LjQvNC10YAg0Y3RgtCwINGB0YXQtdC80LA6KioKYGBgeWFtbAp0eXBlOiBvYmplY3QKcmVxdWlyZWQ6CiAgICAtIGlkCiAgICAtIG5hbWUKcHJvcGVydGllczoKICBpZDoKICAgIHR5cGU6IGludGVnZXIKICAgIGZvcm1hdDogaW50NjQKICBuYW1lOgogICAgdHlwZTogc3RyaW5nCiAgICBmb3JtYXQ6IG5hbWUuZmlyc3ROYW1lCiAgdGFnOgogICAgdHlwZTogc3RyaW5nCiAgICBmb3JtYXQ6IHJhbmRvbS53b3JkCmBgYAoqKtCS0LXRgNC90LXRgiDRgtCw0LrQuNC1INC00LDQvdC90YvQtToqKgpgYGBqc29uCnsKICAiaWQiOiAyMzEyMzEyMzEyMywKICAibmFtZSI6ICJQZXRyYSIsCiAgInRhZyI6ICJGb3Jlc3QiCn0KYGBgCgojIyDQmNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtQoKIyMjINCk0L7RgNC80LDRgiDQtNCw0L3QvdGL0YUK0JTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0LTQsNC90L3Ri9GFINC/0YDQuNCx0LvQuNC20LDQvdC90YvRhSDQuiDRgNC10LDQu9GM0L3QvtC80YMgQVBJINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyBbRmFrZXIuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJhay9GYWtlci5qcy8pLArQutC+0YLQvtGA0YvQuSDQs9C10L3QtdGA0LjRgiDRgdC70YPRh9Cw0LnQvdGL0LUg0LTQsNC90L3Ri9C1INC90LAg0L7RgdC90L7QstC1INC/0L7Qu9GPIGBmb3JtYXRgLiDQndCw0L/RgNC40LzQtdGAINC00LvRjyDRgtC+0LPQviDRh9GC0L4K0LHRiyDQsiDRgdGC0YDQvtC60LUg0LHRi9C7IGVtYWlsINC90LXQvtCx0YXQvtC00LjQvNC+INCyINC/0L7Qu9C1IGB0eXBlYCDRg9C60LDQt9Cw0YLRjCBgc3RyaW5nYCwK0LAg0LIg0L/QvtC70LUgYGZvcm1hdGAg0YPQutCw0LfQsNGC0YwgYGludGVybmV0LmVtYWlsYC4KCtCf0L7Qu9C90YvQuSDRgdC/0LjRgdC+0Log0YTQvtGA0LzQsNGC0L7QsiDQvNC+0LbQvdC+INC90LDQudGC0LggW9GC0YPRgl0oaHR0cHM6Ly9yYXdnaXQuY29tL01hcmFrL2Zha2VyLmpzL21hc3Rlci9leGFtcGxlcy9icm93c2VyL2luZGV4Lmh0bWwpLgoKIyMjINCb0LjQvNC40YLRiwrQotCw0Log0LbQtSDQv9C+0LTQtNC10YDQttC40LLQsNGO0YLRgdGPINCy0YHQtSDQvtCz0YDQsNC90LjRh9C10L3QuNGPIE9wZW4gQVBJINGB0L/QtdGG0LjRhNC40LrQsNGG0LjQuDoKLSBtaW5MZW5ndGgKLSBtYXhMZW5ndGgKLSBtaW5pbXVtCi0gbWF4aW11bQotIC4uLiBlLnQuYy4KCtCd0LDQv9GA0LjQvNC10YAg0LTQu9GPINGC0L7Qs9C+INGH0YLQviDQsdGLIEFQSSDQstC+0LfQstGA0LDRidCw0LvQviDQstC+0LfRgNCw0YHRgiDQvtGCIDEwINC00L4gMTgg0LzRiyDQvNC+0LbQtdC8INC+0L/QuNGB0LDRgtGMINGC0LDQutGD0Y4g0YHRhdC10LzRgzoKYGBgeWFtbAp0eXBlOiBudW1iZXIKbWluaW11bTogMTAKbWF4aW11bTogMTgKYGBgCgrQotC+INC20LUg0YHQsNC80L7QtSDQvNC+0LbQvdC+INGB0LTQtdC70LDRgtGMINGBINC00LvQuNC90L3QvtC5INGB0YLRgNC+0LrQuCwg0LrQvtC70LvQuNGH0LXRgdGC0LLQvtC8INGN0LvQtdC80LXQvdGC0L7QsiDQsiDQvNCw0YHRgdC40LLQtQrQuNC70Lgg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIFtlbnVtXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL2VudW1zLykKCtCn0YPRgtGMINCx0L7Qu9GM0YjQtSDQviDRgtC40L/QsNGFINC4INC40YUg0L7Qs9GA0LDQvdC40YfQtdC90LjRj9GFINC80L7QttC90L4g0L/RgNC+0YfQuNGC0LDRgtGMINCyINGB0L/QtdC60LUgW09wZW4gQVBJXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL2RhdGEtdHlwZXMvKQoKIyMg0JjQt9C+0LHRgNCw0LbQtdC90LjRjwpTbW9nZ2VyINGD0LzQtdC10YIg0LPQtdC90LXRgNC40YLRjCDRgdGB0YvQu9C60Lgg0L3QsCDRgNCw0L3QtNC+0LzQvdGL0LUg0LjQt9C+0LHRgNCw0LbQtdC90LjRjywg0LjRgdC/0L7Qu9GM0LfRg9GPINC60LDQutC+0Lkg0LvQuNCx0L4K0LjQtyDQvtGC0LrRgNGL0YLRi9GFINGB0LXRgNCy0LjRgdC+0LIg0YDQsNC90LTQvtC80L3Ri9GFINC60LDRgNGC0LjQvdC+0LogKNC/0L4g0LTQtdGE0L7Qu9GC0YMgaHR0cHM6Ly9waWNzdW0ucGhvdG9zKS4KCtCh0LXRgNCy0LjRgSDQvNC+0LbQvdC+INC30LDQvNC10L3QuNGC0Ywg0YfQtdGA0LXQtyDQutC+0L3RhNC40LMsINC/0LXRgNC10LTQsNCyINCyINC/0LDRgNCw0LzQtdGC0YDQtSBgLWlgINGB0YHRi9C70LrRgyDRgdC10YDQstC40YEuCtCV0YHQu9C4INGB0LXRgNCy0LjRgSDQv9C+0LTQtNC10YDQttC40LLQsNC10YIg0YPQutCw0LfQsNC90LjQtSDQsiB1cmwg0YDQsNC30LXQvNC10YDRiyDQutCw0YDRgtC40L3QvtC6INC80L7QttC90L4K0YPQutCw0LfQsNGC0Ywg0Y3RgtC+INCyINGE0L7RgNC80LDRgtC1IGBodHRwczovL3BpY3N1bS5waG90b3MvPHdpZHRoPi88aGVpZ2h0Pi8/cmFuZG9tYC4KCiMjIEFUVEVOVElPTgrQodC10LnRh9Cw0YEg0LPQtdC90LXRgNGP0YLRgdGPINGC0L7Qu9GM0LrQviDQvtGC0LLQtdGC0YsgYXBwbGljYXRpb24vanNvbiDRgSDQutC+0LTQvtC8IDIwMC4g0JIg0LTQsNC70YzQvdC10LnRiNC10LwgCtGN0YLQviDQsdGD0LTQtdGCINC00L7RgNCw0LHQvtGC0LDQvdC+LgoK0KLQsNC6INC20LUg0L3QsCDQtNCw0L3QvdGL0Lkg0LzQvtC80LXQvdGCIEFQSSDQvdC1INGD0LzQtdC10YIg0YDQsNCx0L7RgtCw0YLRjCDRgSBmbG9hdC4KCiMjIENvbnRyaWJ1dG9ycwrQkiDQv9GA0L7QtdC60YLQtSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8geWFybiDQuCBmbG93LgoKX1N1cHBvcnRlZCBieSBNb3JlVFYgd2l0aCDinaTvuI9fCg== readmeEtag: '"8d63019c9f0bced89b13af820eb7084ccd9275bf"' readmeLastModified: Tue, 26 Mar 2019 15:20:23 GMT repositoryId: 161340825 description: Simple mock server for Swagger (Open API v3) specification created: '2018-12-11T13:49:02Z' updated: '2019-03-26T15:20:26Z' language: TypeScript archived: false stars: 9 watchers: 4 forks: 1 owner: m3-moretv logo: https://avatars.githubusercontent.com/u/45791851?v=4 repoEtag: '"6e39c6f7be73873dd213043fe2a1c808321182318973908db3f869f5851f84b4"' repoLastModified: Tue, 26 Mar 2019 15:20:26 GMT foundInMaster: true category: Mock id: 3dffde367a70e8d59e69bc8be4e07f27 - source: openapi3 tags repository: https://github.com/technocreatives/openapi-mock-eller v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHYzIE1vY2sgU2VydmVyCgpBIHZlcnkgYWxwaGEgc2VydmVyIGZvciBnZW5lcmF0aW5nIG1vY2sgZGF0YSBmcm9tIGFuIE9wZW5BUEkgdjMgc3BlYy4KClRoZSBjb2RlYmFzZSBpcyB2ZXJ5IHNtYWxsLCBjb250cmlidXRpb25zIGFyZSB2ZXJ5IHdlbGNvbWUuIDpzbWlsZToKCiMjIFVzYWdlCgpObyBucG0gbW9kdWxlIHlldCwgc29ycnkuIFlvdSBjYW4gY2xvbmUgdGhpcyByZXBvIHRob3VnaCBhbmQgZXhlY3V0ZSBpdCBmcm9tIHdoZXJldmVyIHlvdSBsaWtlOgoKYGBgCm5vZGUgc2VydmVyLmpzIDxzcGVjLnlhbWw+IFstLXBvcnQ9ODAwMV0gWy0taG9zdD1sb2NhbGhvc3RdCmBgYAoKWW91ciBzZXJ2ZXIgaXMgbm93IHJ1bm5pbmcgb24gPGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMT4uCllvdSBjYW4gZmluZCB0aGUgcmVuZGVyZWQgZG9jdW1lbnRhdGlvbiBmb3IgeW91ciBzcGVjIGF0IDxodHRwOi8vbG9jYWxob3N0OjgwMDEvZG9jcz4sCmFuZCwgaWYgeW91IGV2ZXIgbmVlZCBpdCwgdGhlIEpTT04gc291cmNlIG9mIHlvdXIgc3BlYyBhdCA8aHR0cDovL2xvY2FsaG9zdDo4MDAxL2RvY3Mvc2NoZW1hLmpzb24+LgoKIyMgTGljZW5zZQoKSVNDIGxpY2Vuc2UgLSBzZWUgTElDRU5TRSBmaWxlLgo= readmeEtag: '"64b9ad1d887283eca5fbad3356cefec0523bc908"' readmeLastModified: Tue, 24 Jul 2018 21:32:34 GMT repositoryId: 130576221 description: From OpenAPI v3 spec to running mock server in one command created: '2018-04-22T14:39:26Z' updated: '2020-01-19T12:49:24Z' language: JavaScript archived: false stars: 8 watchers: 8 forks: 2 owner: technocreatives logo: https://avatars.githubusercontent.com/u/4668783?v=4 license: ISC repoEtag: '"6fdce7c6357478bb622460ef3fffed3fb8189c5b7154f5425120a8c3dbedcb38"' repoLastModified: Sun, 19 Jan 2020 12:49:24 GMT foundInMaster: true category: - Server - Server Implementations id: 602cb19c468b36fcb1ce63095660ee4f - source: openapi3 tags repository: https://github.com/theirish81/mockambo v3: true id: b458e9f0c5b8281b2d751d143f34ba29 repositoryMetadata: base64Readme: >- IyBNb2NrYW1ibwojIyBBUEkgTW9ja2luZywgcmVjb3JkaW5nIGFuZCBWYWxpZGF0aW9uCk1vY2thbWJvIGlzIGFuIEFQSSBtb2NraW5nIHNlcnZlciB0aGF0IHBhY2tzIGEgbG90IG9mIHVzZWZ1bCBmZWF0dXJlcyB0bzoKKiBnZW5lcmF0ZSBtb2NrZWQgQVBJcyBvbiB0aGUgZmx5IGJhc2VkIG9uICoqT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyoqIHdpdGhvdXQgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uCiogVmFsaWRhdGUgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcyBhZ2FpbnN0IHRoZSBjb250cmFjdAoqIEZha2UgZGF0YSBjb2hlcmVudGx5CiogU2NyaXB0IHRoZSBiZWhhdmlvciBvZiB0aGUgbW9ja3MgdXNpbmcgSmF2YVNjcmlwdAoqIExvYWQgZHluYW1pYyB0ZW1wbGF0ZXMgdG8gbWFrZSB0aGUgbW9ja3MgKipldmVuIG1vcmUgKmFsaXZlKioqCiogV29yayBhcyBhICoqcmV2ZXJzZSBwcm94eSoqIHJlcXVlc3QvcmVzcG9uc2UgKipyZWNvcmRlciBhbmQgcGxheWJhY2sqKgoKQWxsIHRoaXMgYnkgc2ltcGx5IGFsdGVyaW5nIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIGFkZGluZyB0aGUgYHgtbW9ja2FtYm9gIGV4dGVuc2lvbiBzZWN0aW9ucyB3aGVyZSBuZWNlc3NhcnkuCgpNb2NrYW1ibyBpcyBhIHBvd2VyZnVsICpTd2lzcyBBcm15IGtuaWZlKiBmb3IgdGhlIGZvbGxvd2luZyBhY3Rpdml0aWVzOgoqIERlc2lnbiBmaXJzdCBBUEkgZGV2ZWxvcG1lbnQKKiAzcmQgcGFydHkgQVBJIGV4cGxvcmF0aW9uIGFuZCBjbGllbnQgZGV2ZWxvcG1lbnQKKiBTZXJ2aWNlIGlzb2xhdGlvbiBkdXJpbmcgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcKKiBDb250cmFjdCB0ZXN0aW5nIG9mIGJvdGggY2xpZW50cyBhbmQgc2VydmVycwoqIE9mZmxpbmUgZGV2ZWxvcG1lbnQKKiBDSS9DRCBwaXBlbGluZSB0ZXN0aW5nCgojIyBEb2N1bWVudGF0aW9uCkZvciBmdXJ0aGVyIGluZm9ybWF0aW9uLCBkb2N1bWVudGF0aW9uIGFuZCBIb3dUb3MsIFtwbGVhc2UgcmVmZXIgdG8gdGhlIHByb2plY3Qgd2lraV0oaHR0cHM6Ly9naXRodWIuY29tL3RoZWlyaXNoODEvbW9ja2FtYm8vd2lraSku readmeEtag: '"bfe5206f90a294b18da059d8331619a243cd2e1c"' readmeLastModified: Sat, 27 Jul 2024 13:06:09 GMT repositoryId: 827215202 description: Dynamic API Mocking, recording and Validation created: '2024-07-11T08:07:25Z' updated: '2024-08-26T10:59:16Z' language: Go archived: false stars: 8 watchers: 4 forks: 0 owner: theirish81 logo: https://avatars.githubusercontent.com/u/10628601?v=4 license: MIT repoEtag: '"0a7fe89130840f0d93b6856bdf14941219340c3837085d1ed019682e8f2619d5"' repoLastModified: Mon, 26 Aug 2024 10:59:16 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/hslatman/caddy-openapi-validator v3: true repositoryMetadata: base64Readme: >- IyBDYWRkeSBPcGVuQVBJIFZhbGlkYXRvciAoV0lQKQoKQSBbQ2FkZHldKGh0dHBzOi8vY2FkZHlzZXJ2ZXIuY29tLykgbW9kdWxlIHRoYXQgdmFsaWRhdGVzIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgYWdhaW5zdCBhbiBbT3BlbkFQSV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgc3BlY2lmaWNhdGlvbi4KCiMjIERlc2NyaXB0aW9uCgpUaGUgT3BlbkFQSSBWYWxpZGF0b3IgbW9kdWxlIGlzIGEgW0NhZGR5XShodHRwczovL2NhZGR5c2VydmVyLmNvbS8pIEhUVFAgaGFuZGxlciB0aGF0IHZhbGlkYXRlcyByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzIGFnYWluc3QgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgpUaGUgW2tpbi1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpKSBgb3BlbmFwaTNmaWx0ZXJgIGxpYnJhcnkgcGVyZm9ybXMgdGhlIGFjdHVhbCB2YWxpZGF0aW9uLgpUaGUgaGFuZGxlciBpbiB0aGlzIHJlcG9zaXRvcnkgaXMgYSBzbWFsbCB3cmFwcGVyIGZvciB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSBgb3BlbmFwaTNmaWx0ZXJgLCB3aXRoIGJhc2ljIGNvbmZpZ3VyYXRpb24gYW5kIGludGVncmF0aW9ucyBvcHRpb25zIGZvciBDYWRkeS4gClRoZSBwcm9qZWN0IGlzIGN1cnJlbnRseSBpbiBQT0Mgc3RhZ2UsIG1lYW5pbmcgdGhhdCBtdWNoIG9mIGl0IGNhbiwgYW5kIGxpa2VseSB3aWxsLCBjaGFuZ2UuCgpUaGUgcmVxdWVzdC9yZXNwb25zZSBmbG93IGlzIGFzIGZvbGxvd3M6CgoqIFdoZW4gYSByZXF1ZXN0IGFycml2ZXMsIHRoZSBWYWxpZGF0b3Igd2lsbCBsb29rIGZvciBhIHZhbGlkIHJvdXRlIGluIHRoZSBwcm92aWRlZCBPcGVuQVBJIHNwZWNpZmljYXRpb24gYW5kIHZhbGlkYXRlIHRoZSByZXF1ZXN0IGFnYWluc3QgdGhlIHNjaGVtYS4KKiBUaGUgcmVxdWVzdCBpcyB0aGVuIHBhc3NlZCBvbiB0byB0aGUgbmV4dCBIVFRQIGhhbmRsZXIgaW4gdGhlIGNoYWluIGFuZCB0aGUgVmFsaWRhdG9yIHdpbGwgd2FpdCBmb3IgaXRzIHJlc3BvbnNlLgoqIEFmdGVyIGNhcHR1cmluZyB0aGUgcmVzcG9uc2UsIHRoZSBWYWxpZGF0b3Igd2lsbCB2YWxpZGF0ZSB0aGUgcmVzcG9uc2UgdG8gYmUgdmFsaWQuCiogSWYgbm8gZXJyb3JzIG9jY3VycmVkIGR1cmluZyB0aGUgdmFsaWRhdGlvbiwgdGhlIHJlc3BvbnNlIHdpbGwgYmUgcmV0dXJuZWQuCgojIyBVc2FnZQoKVGhlIHNpbXBsZXN0IHdheSB0byB1c2UgdGhlIE9wZW5BUEkgVmFsaWRhdG9yIEhUVFAgaGFuZGxlciBpcyBieSB1c2luZyBbeGNhZGR5XShodHRwczovL2dpdGh1Yi5jb20vY2FkZHlzZXJ2ZXIveGNhZGR5KToKCmBgYGJhc2gKJCB4Y2FkZHkgYnVpbGQgdjIuMS4xIC0td2l0aCBnaXRodWIuY29tL2hzbGF0bWFuL2NhZGR5LW9wZW5hcGktdmFsaWRhdG9yCmBgYAoKQWx0ZXJuYXRpdmVseSwgdGhlIEhUVFAgaGFuZGxlciBjYW4gYmUgaW5jbHVkZWQgYXMgYSBDYWRkeSBtb2R1bGUgYXMgZm9sbG93czoKCmBgYGdvbGFuZwppbXBvcnQgKAoJXyAiZ2l0aHViLmNvbS9oc2xhdG1hbi9jYWRkeS1vcGVuYXBpLXZhbGlkYXRvciIKKQpgYGAKCkNvbmZpZ3VyZSB0aGUgT3BlbkFQSSBWYWxpZGF0b3IgaGFuZGxlciBhcyBvbmUgb2YgdGhlIGhhbmRsZXJzIHRvIGJlIGV4ZWN1dGVkIGJ5IENhZGR5IChpbiBbSlNPTiBjb25maWddKGh0dHBzOi8vY2FkZHlzZXJ2ZXIuY29tL2RvY3MvanNvbi8pIGZvcm1hdCk6CgpgYGBqc29uCiAgICAuLi4KICAgICAgICAiaGFuZGxlIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJvcGVuYXBpX3ZhbGlkYXRvciIsCiAgICAgICAgICAgICAgICAiZmlsZXBhdGgiOiAiZXhhbXBsZXMvcGV0c3RvcmUueWFtbCIsCiAgICAgICAgICAgICAgICAidmFsaWRhdGVfcm91dGVzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICJ2YWxpZGF0ZV9yZXF1ZXN0cyI6IHRydWUsCiAgICAgICAgICAgICAgICAidmFsaWRhdGVfcmVzcG9uc2VzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICJ2YWxpZGF0ZV9zZXJ2ZXJzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICJ2YWxpZGF0ZV9zZWN1cml0eSI6IHRydWUsCiAgICAgICAgICAgICAgICAicGF0aF9wcmVmaXhfdG9fYmVfdHJpbW1lZCI6ICIiLAogICAgICAgICAgICAgICAgImFkZGl0aW9uYWxfc2VydmVycyI6IFsiIl0sCiAgICAgICAgICAgICAgICAiZW5mb3JjZSI6IHRydWUsCiAgICAgICAgICAgICAgICAibG9nIjogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgXQogICAgLi4uCmBgYAoKVGhlIE9wZW5BUEkgVmFsaWRhdG9yIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYW4gYWN0dWFsIEFQSSBpcyBjYWxsZWQuClRoZSBjb25maWd1cmF0aW9uIHNob3duIGFib3ZlIHNob3dzIHRoZSBkZWZhdWx0IHNldHRpbmdzLgpUaGUgYGZpbGVwYXRoYCBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkOyB3aXRob3V0IGl0LCBvciB3aGVuIHBvaW50aW5nIHRvIGEgbm9uLWV4aXN0aW5nIGZpbGUsIHRoZSBtb2R1bGUgd29uJ3QgYmUgbG9hZGVkLgoKIyMgRXhhbXBsZQoKQW4gZXhhbXBsZSBvZiB0aGUgT3BlbkFQSSBWYWxpZGF0b3J5IEhUVFAgaGFuZGxlciBpbiB1c2UgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vaHNsYXRtYW4vY2FkZHktb3BlbmFwaS12YWxpZGF0b3ItZXhhbXBsZSkuCgojIyBOb3RlcwoKVGhpcyBwcm9qZWN0IGlzIGN1cnJlbnRseSBhIHNtYWxsIFBPQyB3aXRoIHRoZSBpbnRlbnRpb24gdG8gZ3JvdyBpdCBhbG9uZyB3aXRoIG15IG90aGVyIHByb2plY3RzIHVzaW5nIEdvLCBPcGVuQVBJIGFuZCBDYWRkeS4KSSBvbmx5IHJlY2VudGx5IHN0YXJ0ZWQgdXNpbmcgQ2FkZHksIHNvIHRoZXJlIG1heSBiZSBzb21lIHJvdWdoIGVkZ2VzIHRvIGlyb24gb3V0IHdoZW4gbW9yZSB1c2UgY2FzZXMgcHJlc2VudCB0aGVtc2VsdmVzLgoKIyMgVE9ETwoKQSBzbWFsbCBhbmQgaW5jb21wbGV0ZSBsaXN0IG9mIHBvdGVudGlhbCB0aGluZ3MgdG8gaW1wbGVtZW50LCBpbXByb3ZlIGFuZCB0aGluayBhYm91dDoKCiogQWRkIG1vcmUgdGVzdHMgZm9yIHRoZSBPcGVuQVBJIFZhbGlkYXRvciBmdW5jdGlvbmFsaXR5IGFuZCBjb25maWd1cmF0aW9uLgoqIEltcHJvdmUgQ2FkZHlmaWxlIGhhbmRsaW5nIChlLmcuIGFkZCBtb3JlIHN1YmRpcmVjdGl2ZXMpLgoqIEFkZCBhbiBleGFtcGxlIHRoYXQgdXNlcyBhbiBIVFRQIHByb3h5L2ZjZ2kgY29uZmlndXJhdGlvbi4KKiBMb29rIGludG8gd2F5cyB0byBzcGVjaWZ5IHRoZSBlcnJvciBuaWNlbHksIGluc3RlYWQgb2YganVzdCBsb2dnaW5nIGl0IChlLmcuIHJldHVybiBlcnJvciBtZXNzYWdlKHMpIGluIHNwZWNpZmljIGZvcm1hdCkgYW5kL29yIGludGVncmF0ZSBwcm9wZXJseSB3aXRoIGhvdyBDYWRkeSBoYW5kbGVycyBlcnJvcnMuCiogTG9vayBpbnRvIGlmIChhbmQgaG93KSB0aGUgVmFsaWRhdG9yIGNhbiBiZSB1c2VkIG91dHNpZGUgb2YgQ2FkZHkgYXMgYW4gYWx0ZXJuYXRpdmUgKGkuZS4gYSBtb3JlIGdlbmVyaWMgbWlkZGxld2FyZSkuCg== readmeEtag: '"2bd32d69864d68d5dac1de7f81b2e492e7738bc2"' readmeLastModified: Fri, 18 Aug 2023 22:04:50 GMT repositoryId: 286259419 description: >- A Caddy HTTP handler for validating requests and responses against an OpenAPI specification created: '2020-08-09T15:02:31Z' updated: '2024-08-28T06:43:30Z' language: Go archived: false stars: 8 watchers: 3 forks: 0 owner: hslatman logo: https://avatars.githubusercontent.com/u/1219780?v=4 license: Apache-2.0 repoEtag: '"89e52b216d62aebc290bde576483446e6450888a4d1b82f697f9e266ee827359"' repoLastModified: Wed, 28 Aug 2024 06:43:30 GMT foundInMaster: true category: - Data Validators - Parsers id: 1816046ae5bbe57e73f76829ba004031 - source: openapi3 tags repository: https://github.com/tandfgroup/schema-oas v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWNpZmljYXRpb25zIGZvciBTY2hlbWEub3JnCgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbQWJvdXQgdGhlIFNlcnZpY2VdKCNhYm91dCkKICAtIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQotIFtVc2FnZV0oI3VzYWdlKQotIFtDb250cmlidXRpbmddKENPTlRSSUJVVElORy5tZCkKLSBbTGljZW5zZV0oI2xpY2Vuc2UpCgotLS0KCiMjIEFib3V0IHRoZSBTZXJ2aWNlIDxhIGlkPSJhYm91dCI+PC9hPgoKVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgT3BlbkFQSSBTcGVjcyBmb3IgYWxsIHRoZSBTY2hlbWEub3JnIGVudGl0aWVzLgoKIyMgVXNhZ2UgPGEgaWQ9InVzYWdlIj48L2E+CgpUQkQuLi4KCj4gOnBvaW50X3VwOiBfbW9yZSBpbnN0cnVjdGlvbnMgY29taW5nIHNvb24uXwoKLS0tCgojIyBMaWNlbnNlIDxhIGlkPSJsaWNlbnNlIj48L2E+CgpDb3B5cmlnaHQgMjAxOCBUYXlsb3IgJiBGcmFuY2lzIEdyb3VwCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgpZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCjxodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+CgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo= readmeEtag: '"d40afee260fb44f2ee3fae4af26fa3f221547e96"' readmeLastModified: Mon, 07 Jan 2019 10:27:55 GMT repositoryId: 141512249 description: OpenAPI Specifications for Schema.org created: '2018-07-19T02:08:11Z' updated: '2021-05-10T14:39:16Z' language: Shell archived: false stars: 8 watchers: 16 forks: 2 owner: tandfgroup logo: https://avatars.githubusercontent.com/u/25971760?v=4 license: Apache-2.0 repoEtag: '"505c0ffd8ddfb9577c7be11c4ee8e91fa6bb444c3796ca98e2bf9114c8f119b8"' repoLastModified: Mon, 10 May 2021 14:39:16 GMT foundInMaster: true category: - Server - Parsers id: 9a1c25a32b069417c7b68e6d9b305bbb - source: openapi3 tags repository: https://github.com/arno-di-loreto/supercharged-openapi v3: true repositoryMetadata: base64Readme: >- IyBTdXBlcmNoYXJnZWQgT3BlbkFQSSBTZXNzaW9uIFJlcG9zaXRvcnkgIwoKVGhpcyByZXBvc2l0b3J5IHdhcyB0aGUgb25lIEkgdXNlZCBkdXJpbmcgbXkgU3VwZXJjaGFyZ2VkIE9wZW5BUEkgc2Vzc2lvbiBkb25lIGR1cmluZyB0aGUgW01hbm5pbmcgTGl2ZSBBUEkgQ29uZmVyZW5jZV0oaHR0cHM6Ly9mcmVlY29udGVudC5tYW5uaW5nLmNvbS9saXZlbWFubmluZy1jb25mZXJlbmNlcy1hcGlzLykuCgojIFRvb2xzIHVzZWQvc2hvd24gZHVyaW5nIHRoZSBzZXNzaW9uCgotIFRoZSBzZXNzaW9uIHdhcyByZWNvcmRlZCB1c2luZyBbT0JTIFN0dWRpb10oaHR0cHM6Ly9vYnNwcm9qZWN0LmNvbSkgYW5kIGV2ZXJ5dGhpbmcgd2FzIGRvbmUgaW4gW1ZTIENvZGVdKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tKSAoc2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMpCi0gQXQgdGhlIGJlZ2lubmluZyBJIGRyYXcgcmFpbmJvdyBsaWtlIHJlY3RhbmdsZXMgb24gdGhlIHNjcmVlbiB1c2luZyBbU2NyZWVuQnJ1c2hdKGh0dHBzOi8vYXBwcy5hcHBsZS5jb20vdXMvYXBwL3NjcmVlbmJydXNoL2lkMTIzMzk2NTg3MT9tdD0xMikKLSBUaGUgW1JlZG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykgYW5kIFtTd2FnZ2VyIFVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkgcmVuZGVyaW5nIG9mIE9wZW5BUEkgZG9jdW1lbnQgd2VyZSBkb25lIHRoYW5rcyB0byB0aGUgW09wZW5BUEkgKDQyIENydW5jaCkgVlMgQ29kZSBFeHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT00MkNydW5jaC52c2NvZGUtb3BlbmFwaSkKLSBUaGUgbW9jayBBUEkgd2FzIGdlbmVyYXRlZCB3aXRoIFtTdG9wbGlnaHQgUHJpc21dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9wcmlzbS8pIGJhc2VkIG9uIHRoZSBPcGVuQVBJIGRvY3VtZW50IGNvZGVkIGFsb25nIHRoZSBzZXNzaW9uCi0gVGhlICJ0cmVlIGxpa2UgT3BlbkFQSSBkb2N1bWVudGF0aW9uIiBzaG93biBpbiB0aGUgZW5kIGlzIG15IFtPcGVuQVBJIE1hcF0oaHR0cHM6Ly9vcGVuYXBpLW1hcC5hcGloYW5keW1hbi5pby8pCi0gVGhlIEdVSSBhbGxvd2luZyB0byBub3Qgd3JpdGUgT3BlbkFQSSBjb2RlIGJyaWVmbHkgc2hvd24gaW4gdGhlIGVuZCBpcyBbU3RvcGxpZ2h0IFN0dWRpb10oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vc3R1ZGlvLykKCiMgVGhlIG1hZ2ljIGJlaGluZCB3aGF0IHlvdSd2ZSBzZWVuCgpCZWZvcmUgc3RhcnRpbmcgdG8gdGFsaywgSToKCi0gT3BlbiB0aGlzIHJlcG8gd2l0aCAgVlMgQ29kZQotIFN0YXJ0IGEgbGl2ZSBzZXJ2ZXIgbGlzdGVuaW5nIHRvIGNoYW5nZSAoaXQgcnVucyBvbiBodHRwOi8vbG9jYWxob3N0OjU1MDApCi0gUnVuIHRoZSB0YXNrICJSZXNldCBTdGVwIgotIFN0YXJ0IE9CUwoKVGhlbiB3aGlsZSBJJ20gdGFsa2luZyBhbmQgbW9kaWZ5aW5nIHRoZSBgbW90dS55YW1sYCBmaWxlLCBJIHJlZ3VsYXJseSBoaXQgPGtiZD5jdHJsPC9rYmQ+PGtiZD5tPC9rYmQ+IHRvOgoKLSBMb2FkIGEgbmV3IHZlcnNpb24gb2YgdGhlIGBtb3R1LnlhbWxgIGZpbGUKLSBDaGFuZ2UgdGhlIHRpdGxlIChPQlMgYnJvd3NlciBzb3VyY2Ugc2hvd2luZyBodHRwOi8vbG9jYWxob3N0OjU1MDAvKSBvbiB0b3Agb2YgdGhlIFZTIENvZGUgKE9CUyBkaXNwbGF5IGNhcHR1cmUgc291cmNlKQotIFVwZGF0ZSBteSB0b2RvIGxpc3QgKFNhZmFyaSBzaG93aW5nIGh0dHA6Ly9sb2NhbGhvc3Q6NTUwMC90b2RvLmh0bWwsIG5vdCBzaG93biB0byBhdHRlbmRlZXMpLgoKQWxsIHRoZSBmaWxlcyBhcmUgbG9hZGVkIGZyb20gdGhlIGBzdGVwc2Agc3ViLWZvbGRlcnMgdGhhdCBjb250YWlucyBgaW5kZXguaHRtbGAsIGB0b2RvLmh0bWxgIGFuZCBgbW90dS55YW1sYCBmaWxlcyBmb3IgZWFjaCBzdGVwLgoKQW5kIEkgaGVhdmlseSB1c2UgY29kZSBzbmlwcGV0cyB0byBhdm9pZCBsb29zaW5nIHRpbWUgdHlwaW5nIHRvbyBtdWNoLgoKIVtdKHJlYWRtZS9tYWdpYy5qcGcpCgojIFZTIENvZGUgQ29uZmlndXJhdGlvbgoKIyMgV2FybmluZwoKTm90ZSB0aGF0IGFsbCB0aGlzIGhhcyBiZWVuIGRvbmUgaW4gYSBydXNoLCBpdCBjb3VsZCBjZXJ0YWlubHkgYmUgYmV0dGVyIGRvbmUgYW5kIG9wdGltaXplZCwgYnV0IGl0IHdvcmtlZCDwn5iFLiBUaGUgaGFyZCBjb2RlZCBzdGVwcyBmb2xkZXIgYW5kIGh0bWwgZmlsZXMgd2VyZSBhIHBhaW4gdG8gbW9kaWZ5IChJIGhhZCB0byByZW1vdmUgc29tZSBzdGVwcyB0byBzaG9ydGVuIHRoZSBzZXNzaW9uJ3MgbGVuZ3RoKSBhbmQgdGhlIGJhc2ggc2NyaXB0aW5nIGluIGZ1bGwgb2YgY29weS9wYXN0ZS4KCiMjIFZTIENvZGUgRXh0ZW5zaW9ucwoKLSBbTGl2ZSBTZXJ2ZXJdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1yaXR3aWNrZGV5LkxpdmVTZXJ2ZXIpOiBUbyBzZXJ2ZSB0aGUgaW5kZXggYW5kIHRvZG8gZmlsZSBhbmQgbWFnaWNhbGx5IHJlbG9hZCB0aGVtIHdoZW4gdGhleSBhcmUgbW9kaWZpZWQgYnkgbmV4dCwgcHJldmlvdXMsIHJlc2V0IG91IHJlbG9hZCBzY3JpcHRzCi0gW1N5bnRod2F2ZSB4IEZsdW9yb21hY2hpbmVdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT13ZWJyZW5kZXIuc3ludGh3YXZlLXgtZmx1b3JvbWFjaGluZSk6IFRoZSBzaGlueS1uZW9uIFZTIENvZGUgdGhlbWUgdXNlZCBkdXJpbmcgdGhlIHNlc3Npb24gKEkgYWxzbyByZXVzZWQgdGhpcyB0aGVtZSdzIENTUyBmb3IgdGhlIEhUTUwgaW5kZXggYW5kIHRvZG8gZmlsZXMpLiBUaGlzIHRoZW1lIGlzIHN1cHBvc2VkIHRvIGJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5IHRoYW5rcyB0byB0aGUgYC52c2NvZGUvc2V0dGluZ3MuanNvbmAgY29uZmlndXJhdGlvbiBmaWxlLgotIFtDdXN0b20gQ1NTIGFuZCBKUyBMb2FkZXJdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1iZTVpbnZpcy52c2NvZGUtY3VzdG9tLWNzcyk6IE5lZWRlZCBieSBTeW50aHdhdmUgeCBGbHVvcm9tYWNoaW5lIHRoZW1lCgojIyBTaGVsbCBzY3JpcHRzIGFuZCBWUyBDb2RlIFRhc2tzCgpUaGUgYC52c2NvZGUvdGFza3MuanNvbmAgZmlsZSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgYWN0aW9ucyAoYWxsIHJlbHlpbmcgYW5kIHNoZWxsIHNjcmlwdHMgbG9jYXRlZCBpbiBgc3RlcHNgKToKCnwgVGFzayAgICAgICAgICB8IFNjcmlwdCB0cmlnZ2VyZWQgICAgfCBEZXNjcmlwdGlvbgp8IC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tCnwgR28gdG8gc3RlcCAgICB8IGBzdGVwcy9nby5zaCAkc3RlcGAgfCBDb3B5IGBzdGVwcy9zdGVwLXskc3RlcH1gIGNvbnRlbnQgdG8gcm9vdCBsZXZlbCAoZG9lcyBub3RoaW5nIGlmIHN0ZXAgZG9lc24ndCBleGlzdCkuIFRoZSBgJHN0ZXBgIGNhbiBiZSBlaXRoZXIgYSBudW1iZXIgb3IgdGhlIHN0ZXAncyBuYW1lIGNvbWluZyBmcm9tIHRoZSB0b2RvLmh0bWwgZmlsZXMsIGAiTW9yZSBhY2N1cmF0ZSBkYXRhIGRlc2NyaXB0aW9uICg0LzE1KSJgIGZvciBpbnN0YW5jZS4gVGhlIHRhc2tzIHNob3dzIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBzdGVwcyAoaGFyZGNvZGVkIGluIGB0YXNrcy5qc29uYCBmaWxlKQp8IE5leHQgc3RlcCAgICAgfCBgc3RlcHMvbmV4dC5zaGAgICAgIHwgQ29weSBgc3RlcHMvc3RlcC17Y3VycmVudCBzdGVwICsgMX1gIGNvbnRlbnQgdG8gcm9vdCBsZXZlbCAoZG9lcyBub3RoaW5nIGlmIHN0ZXAgZG9lc24ndCBleGlzdCkKfCBQcmV2aW91cyBzdGVwIHwgYHN0ZXBzL3ByZXZpb3VzLnNoYCB8IENvcHkgYHN0ZXBzL3N0ZXAte2N1cnJlbnQgc3RlcCAtIDF9YCBjb250ZW50IHRvIHJvb3QgbGV2ZWwgKGRvZXMgbm90aGluZyBpZiBzdGVwIGRvZXNuJ3QgZXhpc3QpCnwgUmVsb2FkIHN0ZXAgICB8IGBzdGVwcy9yZWxvYWQuc2hgICAgfCBDb3B5IGBzdGVwcy9zdGVwLXtjdXJyZW50IHN0ZXB9YCBjb250ZW50IHRvIHJvb3QgbGV2ZWwgKHVzZWZ1bCB0byBjaGVjayBtb2RpZmljYXRpb25zIGRvbmUgb24gY3VycmVudCBzdGVwKQp8IFJlc2V0IHN0ZXAgICAgfCBgc3RlcHMvcmVzZXQuc2hgICAgIHwgQ29weSBgc3RlcHMvcmVzZXRgIGNvbnRlbnQgdG8gcm9vdCBsZXZlbCAodG8gcmVzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcpCnwgQ2xlYW4gYmVmb3JlIGNvbW1pdCB8IGBzdGVwcy9jbGVhbi5zaGAgfCBSZW1vdmUgYGluZGV4LmNzc2AsIGBpbmRleC5odG1sYCwgYHRvZG8uaHRtbGAsIGBtb3R1LnlhbWxgIGZpbGVzIGZyb20gcm9vdCBmb2xkZXIKClRoZSAiY3VycmVudCBzdGVwIiBpcyB0cmFja2VkIGluIHRoZSBgc3RlcHMvY3VycmVudC50eHRgIGZpbGUgKGl0IGlzIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdCkuCgpPcGVuIFZTIGNvbW1hbmQgcGFsZXR0ZSB3aXRoIDxrYmQ+4oyYPC9rYmQ+PGtiZD7ih6c8L2tiZD48a2JkPlA8L2tiZD4gKE1hY09zKSBvciA8a2JkPmN0cmw8L2tiZD48a2JkPuKHpzwva2JkPjxrYmQ+UDwva2JkPiAoV2luZG93cykgYW5kIGNob29zZSBgVGFza3M6IFJ1biB0YXNrYCwgdGhlbiBjaG9vc2UgdGhlIG9uZSB5b3UgbmVlZC4KCiMjIFZTIENvZGUgS2V5Ym9hcmQgc2hvcnRjdXRzCgpUYXNrcyBjYW4gYmUgYmluZCB0byBrZXlib2FyZCBzaG9ydGN1dHMuCk5vdGUgdGhhdCBhcyBpbiBWUyBDb2RlLCBrZXlib2FyZCBzaG9ydGN1dHMgY2FuIG9ubHkgYmUgZGVmaW5lZCBnbG9iYWxseSwgdGhlIGAudnNjb2RlL2tleWJpbmRpbmdzLmpzb25gIGZpbGUgY29udGVudCBzaG91bGQgYmUgY29waWVkIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvbiAoc2hvdyBpdCB3aXRoICkuClRvIHNob3cgc2hvcnRjdXRzIGNvbmZpZ3VyYXRpb24gdXNlIDxrYmQ+4oyYPC9rYmQ+PGtiZD5LPC9rYmQ+PGtiZD7ijJg8L2tiZD48a2JkPlM8L2tiZD4gKE1hY09zKSBvciA8a2JkPmN0cmw8L2tiZD48a2JkPks8L2tiZD48a2JkPmN0cmw8L2tiZD48a2JkPlM8L2tiZD4gKFdpbmRvd3MpLCB0aGVuIGNsaWNrIG9uIHRoZSBmaWxlIGljb24gb24gdG9wIHJpZ2h0IGNvcm5lciB0byBzZWUgdGhlIGpzb24gY29udGVudCBvZiB0aGlzIGNvbmZpZ3VyYXRpb24uCgp8IEtleSBiaW5kaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGFzayB0cmlnZ2VyZWQgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfAp8IDxrYmQ+Y3RybDwva2JkPjxrYmQ+bTwva2JkPiAgICAgICAgICAgICAgIHwgTmV4dCBzdGVwICAgICAgfAp8IDxrYmQ+Y3RybDwva2JkPjxrYmQ+YWx0PC9rYmQ+PGtiZD5tPC9rYmQ+IHwgUHJldmlvdXMgc3RlcCAgfAoKIyMgVlMgQ29kZSBTbmlwcGV0cwoKSW4gb3JkZXIgdG8gYXZvaWQgbG9vc2luZyB0aW1lIHR5cGluZyB0b28gbXVjaCwgSSB1c2VkIGN1c3RvbSBtYWRlIHNuaXBwZXRzLgpUaGV5J3JlIGRlZmluZWQgaW4gYC52c2NvZGUvc3VwZXJjaGFyZ2VkLW9wZW5hcGkuY29kZS1zbmlwcGV0c2AuCgojIyBWUyBDb2RlIFdpbmRvdyBUaXRsZQoKVGhlIGAudnNjb2RlL3NldHRpbmdzLmpzb25gIHNldHMgdGhlIFZTIENvZGUgd2luZG93IHRpdGxlIHRvICJTdXBlcmNoYXJnZWQgT3BlbkFQSSIuCkkgZGlkIHRoYXQgdG8ga2VlcCBPQlMgZGlzcGxheSBjYXB0dXJlIGNyb3AgY29uZmlndXJhdGlvbiBzaW1wbGUgKGZvY3VzIG9uIGEgc3BlY2lmaWMgd2luZG93IGJhc2VkIG9uIGl0cyB0aXRsZSk= readmeEtag: '"699c51bd1d886e2b4a49e0a981a75b55b7d47fad"' readmeLastModified: Sat, 31 Jul 2021 15:03:00 GMT repositoryId: 388798843 description: >- This repository was the one I used during my Supercharged OpenAPI session done during the Manning Live API Conference. created: '2021-07-23T12:45:37Z' updated: '2022-12-09T23:32:32Z' language: HTML archived: false stars: 8 watchers: 2 forks: 0 owner: arno-di-loreto logo: https://avatars.githubusercontent.com/u/10104551?v=4 repoEtag: '"f01314c3205493631b47817d5ab25c6eda05370b86ee5b138e90bf677c43f6cf"' repoLastModified: Fri, 09 Dec 2022 23:32:32 GMT foundInMaster: true category: Documentation id: 86a4db4ff05d1111bb32af59b722ef15 - source: openapi3 tags repository: https://github.com/hiromaily/go-goa v3: true id: 938d96a1d5b7e8bfa831a0217cf4c914 repositoryMetadata: base64Readme: >- IyBnby1nb2EKClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9oaXJvbWFpbHkvZ28tZ29hKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2hpcm9tYWlseS9nby1nb2EpClshW2NvZGViZWF0IGJhZGdlXShodHRwczovL2NvZGViZWF0LmNvL2JhZGdlcy9mMmVlMmVkMC01NTg4LTQ2ZjktYTQ3ZS1kNTA2MzNhMDY3MzkpXShodHRwczovL2NvZGViZWF0LmNvL3Byb2plY3RzL2dpdGh1Yi1jb20taGlyb21haWx5LWdvLWdvYS1tYXN0ZXIpClshW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlL2YyMDdjYTU3ZTQ4ZTQ1NjM4OTM0MWZjNDFiYjA2OTUxKV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9hcHAvaGlyb21haWx5Mi9nby1nb2E/dXRtX3NvdXJjZT1naXRodWIuY29tJmFtcDt1dG1fbWVkaXVtPXJlZmVycmFsJmFtcDt1dG1fY29udGVudD1oaXJvbWFpbHkvZ28tZ29hJmFtcDt1dG1fY2FtcGFpZ249QmFkZ2VfR3JhZGUpClshW01JVCBMaWNlbnNlXShodHRwOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtYmx1ZS5zdmc/c3R5bGU9ZmxhdCldKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9oaXJvbWFpbHkvZ28tZ29hL21hc3Rlci9MSUNFTlNFKQoKYGdvLWdvYWAgaXMgZXhhbXBsZSBvZiBbZ29hXShodHRwczovL2dpdGh1Yi5jb20vZ29hZGVzaWduL2dvYSkgZnJhbWV3b3JrIGZvciB2MyB3aXRoIEpXVCBpbXBsZW1lbnRhdGlvbi4gIApUaGUgZXhhbXBsZSBzaXRlIGNvbnNpc3RzIG9mIGZpbGUgc2VydmVyIGFuZCBBUEkgc2VydmVyLgoKIVtFeGFtcGxlIFJlc3VtZSBTaXRlXShyZXN1bWUucG5nICJleGFtcGxlIHJlc3VtZSBzaXRlIikKCgojIyBSZWZhY3RvcmluZwotIFsgXSBDbGVhbiB1cCBldmVyeXRoaW5nCi0gWyBdIEludGVncmF0ZSB0byBGaXJlYmFzZSB1c2luZyBOZXh0SlMgU1NHCi0gWyBdIFN3aXRjaCBDSSBmcm9tIFRyYXZpc0NJIHRvIEdpdGh1YiBBY3Rpb24KLSBbIF0gUmVidWlsZCBmcm9udC1lbmQgYnkgbGF0ZXN0IE5leHQuanMoUmVhY3QpIG9yIFN2ZWx0ZQotIFsgXSBSZXBsYWNlIEUyRSB0ZXN0IGJ5IFtIdXJsXShodHRwczovL2h1cmwuZGV2LykKCiMjIERpcmVjdG9yeSBTdHJ1Y3R1cmUKfCBEaXJlY3RvcnkgTmFtZSB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBkb2NzKGFzc2V0cykgICB8IGFzc2V0cyBmb3IgZnJvbnQtZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBidWlsZCAgICAgICAgICB8IGRvY2tlci9nY3AgY29uZmlndXJhdGlvbiBmaWxlcyAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBjbWQgICAgICAgICAgICB8IG1haW4uZ28gZm9yIGNsaS9zZXJ2ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBjb25maWcgICAgICAgICB8IHRvbWwgY29uZmlndXJhdGlvbiBmaWxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbnRlcm5hbCAgICAgICB8IGdvYSBkZXNpZ24gZmlsZXMsIGdlbmVyYXRlZCBmaWxlcyBhcyBzZXBhcmF0ZWQgbW9kdWxlIHwKfCBwa2cgICAgICAgICAgICB8IGdvIGZpbGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBzY3JpcHRzICAgICAgICB8IHNoZWxsIHNjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB3ZWIgICAgICAgICAgICB8IGRldmVsb3BtZW50YWwgZW52aXJvbm1lbnQgZm9yIGZyb250LWVuZCAgICAgICAgICAgICAgIHwKCiMjIyBwa2cgZGlyZWN0b3J5CnwgRGlyZWN0b3J5IE5hbWUgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IGNvbmZpZyAgICAgICAgIHwgY29uZmlnIHBrZyB0byByZWFkIHRvbWwgZmlsZSAgICAgICAgICAgICAgICAgICB8CnwgZW5jcnlwdGlvbiAgICAgfCBlbmNyeXB0aW9uIGZvciBoYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBnb2EgICAgICAgICAgICB8IGdvYSBsb2dpYyBiYXNlZCBvbiBnZW5lcmF0ZWQgZmlsZSBieSBgZ29hIGdlbmAgfAp8IGp3dHMgICAgICAgICAgIHwgand0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgbG9nZ2VyICAgICAgICAgfCBsb2dnZXIgdXNpbmcgYHJzL3plcm9sb2dgICAgICAgICAgICAgICAgICAgICAgIHwKfCBtb2RlbCAgICAgICAgICB8IGF1dG8gZ2VuZXJhdGVkIGJ5IGBzcWxib2lsZXJgICAgICAgICAgICAgICAgICAgfAp8IG15c3FsICAgICAgICAgIHwgbXlzcWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgcmVwb3NpdG9yeSAgICAgfCBkYXRhYmFzZSBvcGVyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCgojIyBJbnN0YWxsIGdvYQpgYGAKZ28gaW5zdGFsbCBnb2EuZGVzaWduL2dvYS92My9jbWQvZ29hQHYzCmdvIGluc3RhbGwgZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvY21kL3Byb3RvYy1nZW4tZ29AbGF0ZXN0CmdvIGluc3RhbGwgZ29vZ2xlLmdvbGFuZy5vcmcvZ3JwYy9jbWQvcHJvdG9jLWdlbi1nby1ncnBjQGxhdGVzdApgYGAKCgojIyBEZXZlbG9wbWVudCBwcm9jZXNzCi0gYGNkIGludGVybmFsL2dvYS9zZXJ2aWNlL3Jlc3VtZWAKLSBtb2RpZnkgYGRlc2lnbmAgZmlsZXMKLSBnZW5lcmF0ZSBmaWxlcyBieSBgZ29hIGdlbmAKCgojIyBTZXJ2ZXIKIyMjIERhdGFiYXNlCi0gcnVuIE15U1FMIGZpcnN0CmBgYApkb2NrZXIgY29tcG9zZSBteXNxbCAtZApgYGAKCiMjIyBGaWxlIFNlcnZlcgpgYGAKZ28gYnVpbGQgLXYgLW8gJHtHT1BBVEh9L2Jpbi9nb2EtZmlsZS1zZXJ2ZXIgLi9jbWQvZmlsZXNlcnZlci9zZXJ2ZXIvLi4uCmdvYS1maWxlLXNlcnZlcgpgYGAKLSBhY2Nlc3MKICAtIGBodHRwOi8vbG9jYWxob3N0OjgwODAvYAogIC0gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9sb2dpbi5odG1sYCAoaGlyb2tpQGdvYS5jb20gLyBwYXNzd29yZCkKCiMjIyBSZXN1bWUgQVBJIFNlcnZlcgpgYGAKZ28gYnVpbGQgLXYgLW8gJHtHT1BBVEh9L2Jpbi9nb2Etc2VydmVyIC4vY21kL3Jlc3VtZS9zZXJ2ZXIvLi4uCmdvYS1zZXJ2ZXIgLWNvbmYgLi9jb25maWdzL3NldHRpbmdzLnRvbWwKYGBgCgojIyMgUmVzdW1lIEFQSSBMaXN0Ci0gaGVhbHRoCiAgLSBgaHR0cDovL2xvY2FsaG9zdDo4MDkwL2FwaS9oZWFsdGhgCi0gYXV0aAogIC0gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA5MC9hcGkvYXV0aC9sb2dpbmAKLSB0ZWNoCiAgLSBgaHR0cDovL2xvY2FsaG9zdDo4MDkwL2FwaS90ZWNoYAogIC0gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA5MC9hcGkvdGVjaC8xYAotIGNvbXBhbnkKICAtIGBodHRwOi8vbG9jYWxob3N0OjgwOTAvYXBpL2NvbXBhbnlgCiAgLSBgaHR0cDovL2xvY2FsaG9zdDo4MDkwL2FwaS9jb21wYW55LzFgCi0gdXNlcgogIC0gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA5MC9hcGkvdXNlcmAKICAtIGBodHRwOi8vbG9jYWxob3N0OjgwOTAvYXBpL3VzZXIvMWAKLSB1c2VyIHRlY2gKICAtIGBodHRwOi8vbG9jYWxob3N0OjgwOTAvYXBpL3VzZXIvMS9saWtldGVjaGAKICAtIGBodHRwOi8vbG9jYWxob3N0OjgwOTAvYXBpL3VzZXIvMS9kaXNsaWtldGVjaGAKLSB1c2VyIHdvcmsgaGlzdG9yeQogIC0gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA5MC9hcGkvdXNlci8xL3dvcmtoaXN0b3J5YAoKCiMjIFBlcmZvcm1hbmNlClRvIGV2ZWx1YXRlIHBlcmZvcm1hbmNlLCBbaGV5XShodHRwczovL2dpdGh1Yi5jb20vcmFreWxsL2hleSkgaGFzIGJlZW4gdXNlZC4KRXhlY3V0ZSBgTWFrZSBiZW5jaGAKCmBgYAojIE1hcmNoIDEyIDIwMTcKaGV5IC1uIDIwMDAwIC1jIDUwIC1tIEdFVCBodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3VzZXIKClN1bW1hcnk6CiAgVG90YWw6CTQuMTA5MiBzZWNzCiAgU2xvd2VzdDoJMC4wOTM5IHNlY3MKICBGYXN0ZXN0OgkwLjAwMDIgc2VjcwogIEF2ZXJhZ2U6CTAuMDEwMSBzZWNzCiAgUmVxdWVzdHMvc2VjOgk0ODY3LjEyMjEKICBUb3RhbCBkYXRhOgk2MDAwMCBieXRlcwogIFNpemUvcmVxdWVzdDoJMyBieXRlcwoKU3RhdHVzIGNvZGUgZGlzdHJpYnV0aW9uOgogIFsyMDBdCTIwMDAwIHJlc3BvbnNlcwpgYGAKCiMjIExpY2VuY2UKW01JVF0oaHR0cHM6Ly9naXRodWIuY29tL2hpcm9tYWlseS9nby1nb2EvYmxvYi9tYXN0ZXIvTElDRU5TRSkKCiMjIEF1dGhvcgpbaGlyb21haWx5XShodHRwczovL2dpdGh1Yi5jb20vaGlyb21haWx5KQo= readmeEtag: '"457b8f913f33a69bf3c03de27ae41af5cdcea25c"' readmeLastModified: Sat, 11 Feb 2023 01:45:22 GMT repositoryId: 84661950 description: goa framework example created: '2017-03-11T16:01:20Z' updated: '2024-08-06T16:59:54Z' language: Go archived: false stars: 8 watchers: 3 forks: 2 owner: hiromaily logo: https://avatars.githubusercontent.com/u/301692?v=4 license: MIT repoEtag: '"504c458a865d9295fb556a039022bc38e209c978e4e50e5ebeafc0b810fc5c3b"' repoLastModified: Tue, 06 Aug 2024 16:59:54 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/stepci/plugin-openapi v3: true id: 0dc97fe6dc74ed788122f89831c17861 repositoryMetadata: repositoryId: 546665834 description: Step CI OpenAPI support created: '2022-10-06T12:56:04Z' updated: '2023-05-25T16:49:05Z' language: JavaScript archived: false stars: 8 watchers: 3 forks: 4 owner: stepci logo: https://avatars.githubusercontent.com/u/61350067?v=4 license: MPL-2.0 repoEtag: '"08f71cb08fc527c4ccc799e80b6e131838b654a7f188e32e2fcf579b0e526a1d"' repoLastModified: Thu, 25 May 2023 16:49:05 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/networknt/openapi-parser v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXBhcnNlcgoKQSBsaWdodC13ZWlnaHQsIGZhc3QgT3BlbkFQSSAzLjAgcGFyc2VyIGFuZCB2YWxpZGF0b3Igd2l0aCBtaW5pbXVtIHRoaXJkIHBhcnR5IGRlcGVuZGVuY2llcy4KCltTdGFjayBPdmVyZmxvd10oaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvdGFnZ2VkL2xpZ2h0LTRqKSB8CltHb29nbGUgR3JvdXBdKGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vIyFmb3J1bS9saWdodC00aikgfApbR2l0dGVyIENoYXRdKGh0dHBzOi8vZ2l0dGVyLmltL25ldHdvcmtudC9saWdodC1yZXN0LTRqKSB8CltTdWJyZWRkaXRdKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9saWdodGFwaS8pIHwKW1lvdXR1YmUgQ2hhbm5lbF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0hDUk1XSlZYdzhpQjd6S3hGNTVCeXcpIHwKW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jLm5ldHdvcmtudC5jb20vbGlicmFyeS9vcGVuYXBpLXBhcnNlci8pIHwKW0NvbnRyaWJ1dGlvbiBHdWlkZV0oaHR0cHM6Ly9kb2MubmV0d29ya250LmNvbS9jb250cmlidXRlLykgfAoKSXQgaXMgYmFzZWQgb24gdGhlIGdlbmVyYXRlZCBjb2RlIGZyb20gW0thaVplbiBPcGVuQVBJIFBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL0thaVplbi1PcGVuQXBpLVBhcnNlcikgd2l0aG91dApkZXBlbmRlbmN5IG9uIGphdmFwYXJzZXItY29yZSwgZ3VhdmEsIGNvbW1vbnMtY2xpLCBjb21tb25zLWlvLCBqYXZheC5tYWlsIGFuZCBndWljZS4KCiMjIyBMaWNlbnNlCgpUaGUgT3BlbkFQSSBQYXJzZXIgaXMgcHJvdmlkZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMS4wIGZvbGxvd2luZyB0aGUgcGFyZW50IFtLYWlaZW4gT3BlbkFQSSBQYXJzZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZXByZVplbi9LYWlaZW4tT3BlbkFwaS1QYXJzZXIpCg== readmeEtag: '"c7e1dadd4187bd1056766b58e21ac7c57571fb43"' readmeLastModified: Thu, 18 Jul 2024 12:46:15 GMT repositoryId: 110491962 description: >- A light-weight, fast OpenAPI 3.0 parser and validator with minimum third party dependencies created: '2017-11-13T02:47:14Z' updated: '2024-09-04T18:31:02Z' language: Java archived: false stars: 8 watchers: 18 forks: 7 owner: networknt logo: https://avatars.githubusercontent.com/u/8740739?v=4 license: EPL-1.0 repoEtag: '"c3de69687c20fb6a1813edaa9f0e591b7efc64579620ae926184dce32f1b1d9f"' repoLastModified: Wed, 04 Sep 2024 18:31:02 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 326240eecd7b3028ddf9a6cfb4273a0d - source: openapi3 tags repository: https://github.com/unionj-cloud/unionj-generator v3: true repositoryMetadata: base64Readme: >- IyB1bmlvbmotZ2VuZXJhdG9yClVuaW9uai1nZW5lcmF0b3IgaXMgYSBjb2xsZWN0aW9uIG9mIGNvZGUgZ2VuZXJhdG9ycyBmb3Igc3ByaW5nIGJvb3QgYXBwbGljYXRpb25zIHdpdGggYSBidWlsdC1pbiBSRVNUZnVsIGFwaSBkZXNpZ24gdG9vbChEU0wpIGNvbXBhdGlibGUgd2l0aApbT3BlbkFQSSAzLjAuMCBzcGVjaWZpY2F0aW9uXShodHRwOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMykuCgpJbmNsdWRpbmfvvJoKLSBiYWNrZW5kOiBVc2luZyBkc2wgb3IgT3BlbkFQSSAzLjAganNvbiBkb2MgdG8gZ2VuZXJhdGUgdm8sIHByb3RvLCBjb250cm9sbGVyLCBzZXJ2aWNlIGFuZCBmZWlnbiBtb2R1bGVzIGZvciBzcHJpbmcgYm9vdCBiYWNrZW5kCi0gb3BlbmFwaTogZHNsIGltcGxlbWVudGluZyBbT3BlbkFQSSAzLjAuMCBzcGVjaWZpY2F0aW9uXShodHRwOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMykKLSB1aTogT3BlbkFQSTMgZG9jdW1lbnRhdGlvbiB3ZWIgVUkKLSBtYXZlbiBwbHVnaW46IG1hdmVuIGNvbW1hbmQgbGluZSBjb21tYW5kIHRvIGdlbmVyYXRlIGJhY2tlbmQgY29kZQoKPCEtLSBTVEFSVCBkb2N0b2MgZ2VuZXJhdGVkIFRPQyBwbGVhc2Uga2VlcCBjb21tZW50IGhlcmUgdG8gYWxsb3cgYXV0byB1cGRhdGUgLS0+CjwhLS0gRE9OJ1QgRURJVCBUSElTIFNFQ1RJT04sIElOU1RFQUQgUkUtUlVOIGRvY3RvYyBUTyBVUERBVEUgLS0+CiMjIyBUT0MKCi0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKLSBbT3BlbkFQSTMgV2ViIFVJIFNjcmVlbnNob3RdKCNvcGVuYXBpMy13ZWItdWktc2NyZWVuc2hvdCkKLSBbVXNhZ2VdKCN1c2FnZSkKICAtIFtEZW1vIHByb2plY3RdKCNkZW1vLXByb2plY3QpCiAgLSBbUmVjb21tZW5kIHByb2plY3Qgc3RydWN0dXJlXSgjcmVjb21tZW5kLXByb2plY3Qtc3RydWN0dXJlKQogIC0gW0RTTF0oI2RzbCkKICAgIC0gW1NjaGVtYV0oI3NjaGVtYSkKICAgICAgLSBbRXhhbXBsZV0oI2V4YW1wbGUpCiAgICAgIC0gW1NjaGVtYUhlbHBlcl0oI3NjaGVtYWhlbHBlcikKICAgICAgLSBbR2VuZXJpY10oI2dlbmVyaWMpCiAgICAgICAgLSBbU3ludGF4XSgjc3ludGF4KQogICAgLSBbUGF0aF0oI3BhdGgpCiAgICAgIC0gW0V4YW1wbGVdKCNleGFtcGxlLTEpCiAgLSBbQmFja2VuZF0oI2JhY2tlbmQpCiAgICAtIFtFeGFtcGxlXSgjZXhhbXBsZS0yKQotIFtNdXN0IEtub3ddKCNtdXN0LWtub3cpCi0gW1R1dG9yaWFsc10oI3R1dG9yaWFscykKLSBbVE9ET10oI3RvZG8pCi0gW1Npc3RlciBQcm9qZWN0XSgjc2lzdGVyLXByb2plY3QpCi0gW0NvbW11bml0eV0oI2NvbW11bml0eSkKCjwhLS0gRU5EIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KCiMgSW5zdGFsbGF0aW9uCgpgYGB4bWwKPGRlcGVuZGVuY2llcz4KICA8ZGVwZW5kZW5jeT4KICAgICA8Z3JvdXBJZD5pby5naXRodWIudW5pb25qLWNsb3VkPC9ncm91cElkPgogICAgIDxhcnRpZmFjdElkPnVuaW9uai1nZW5lcmF0b3ItYmFja2VuZDwvYXJ0aWZhY3RJZD4KICAgICA8dmVyc2lvbj4xLjYuNzwvdmVyc2lvbj4KICA8L2RlcGVuZGVuY3k+CiAgPGRlcGVuZGVuY3k+CiAgICAgPGdyb3VwSWQ+aW8uZ2l0aHViLnVuaW9uai1jbG91ZDwvZ3JvdXBJZD4KICAgICA8YXJ0aWZhY3RJZD51bmlvbmotZ2VuZXJhdG9yLW9wZW5hcGk8L2FydGlmYWN0SWQ+CiAgICAgPHZlcnNpb24+MS42Ljc8L3ZlcnNpb24+CiAgPC9kZXBlbmRlbmN5PgogIDxkZXBlbmRlbmN5PgogICAgIDxncm91cElkPmlvLmdpdGh1Yi51bmlvbmotY2xvdWQ8L2dyb3VwSWQ+CiAgICAgPGFydGlmYWN0SWQ+dW5pb25qLWdlbmVyYXRvci11aTwvYXJ0aWZhY3RJZD4KICAgICA8dmVyc2lvbj4xLjYuNzwvdmVyc2lvbj4KICA8L2RlcGVuZGVuY3k+CjwvZGVwZW5kZW5jaWVzPgpgYGAKCmBgYHhtbAo8YnVpbGQ+CiAgPHBsdWdpbnM+CiAgICA8cGx1Z2luPgogICAgICA8Z3JvdXBJZD5pby5naXRodWIudW5pb25qLWNsb3VkPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD51bmlvbmotZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MS42Ljc8L3ZlcnNpb24+CiAgICAgIDxpbmhlcml0ZWQ+ZmFsc2U8L2luaGVyaXRlZD4KICAgICAgPGV4ZWN1dGlvbnM+CiAgICAgICAgPGV4ZWN1dGlvbj4KICAgICAgICAgIDxpZD5wZXRTdG9yZTwvaWQ+CiAgICAgICAgICA8Z29hbHM+CiAgICAgICAgICAgIDxnb2FsPmNvZGVnZW48L2dvYWw+CiAgICAgICAgICA8L2dvYWxzPgogICAgICAgICAgPGluaGVyaXRlZD5mYWxzZTwvaW5oZXJpdGVkPgogICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CiAgICAgICAgICAgIDxkb2NVcmw+aHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uPC9kb2NVcmw+CiAgICAgICAgICAgIDxmZWlnblBrZz5pby5naXRodWIudW5pb25qLWNsb3VkLmZlaWduPC9mZWlnblBrZz4KICAgICAgICAgICAgPGZlaWduRGlyPiR7cHJvamVjdC5iYXNlZGlyfS9jbG91ZC1wZXRTdG9yZS1mZWlnbjwvZmVpZ25EaXI+CiAgICAgICAgICAgIDx2b1BrZz5pby5naXRodWIudW5pb25qLWNsb3VkLnZvPC92b1BrZz4KICAgICAgICAgICAgPHZvRGlyPiR7cHJvamVjdC5iYXNlZGlyfS9jbG91ZC1wZXRTdG9yZS12bzwvdm9EaXI+CiAgICAgICAgICAgIDxwYWNrYWdlcz4KICAgICAgICAgICAgICA8cGFja2FnZT5GRUlHTjwvcGFja2FnZT4KICAgICAgICAgICAgICA8cGFja2FnZT5WTzwvcGFja2FnZT4KICAgICAgICAgICAgPC9wYWNrYWdlcz4KICAgICAgICAgICAgPHNlcnZpY2VJZD5jbG91ZC1wZXRTdG9yZTwvc2VydmljZUlkPgogICAgICAgICAgICA8c2VydmljZUJhc2VVcmxLZXk+cGV0U3RvcmUuYmFzZVVybDwvc2VydmljZUJhc2VVcmxLZXk+CiAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICAgICAgPC9leGVjdXRpb24+CiAgICAgIDwvZXhlY3V0aW9ucz4KICAgICAgPGNvbmZpZ3VyYXRpb24+CiAgICAgICAgPHBhcmVudEdyb3VwSWQ+aW8uZ2l0aHViLnVuaW9uai1jbG91ZDwvcGFyZW50R3JvdXBJZD4KICAgICAgICA8cGFyZW50QXJ0aWZhY3RJZD5jbG91ZC11bmlvbmo8L3BhcmVudEFydGlmYWN0SWQ+CiAgICAgICAgPHBhcmVudFZlcnNpb24+MS4wLjAtU05BUFNIT1Q8L3BhcmVudFZlcnNpb24+CiAgICAgIDwvY29uZmlndXJhdGlvbj4KICAgIDwvcGx1Z2luPgogIDwvcGx1Z2lucz4KPC9idWlsZD4KYGBgCgojIE9wZW5BUEkzIFdlYiBVSSBTY3JlZW5zaG90CiFbd2ViLXVpLnBuZ10od2ViLXVpLnBuZykKCiMgVXNhZ2UKCiMjIERlbW8gcHJvamVjdAoKSXQncyBhIHNpbXBsZSB0eXBlc2NyaXB0IGh0dHAgY2xpZW50IGNvZGUgZG93bmxvYWQgcmVzdGZ1bCBzZXJ2aWNlIHByb2plY3QuIFVwbG9hZCBPcGVuQVBJMyBzcGVjIGpzb24gZmlsZSwgZG93bmxvYWQgdHMgY29kZS4KSXQncyB1c2VkIGluIG91ciBjb21wYW55IHByb2plY3QuCgpSZXBvOiBodHRwczovL2dpdGh1Yi5jb20vdW5pb25qLWNsb3VkL29wZW5hcGktc3ZjCgpTY3JlZW5zaG90OgohW3NjcmVlbnNob3QucG5nXShzY3JlZW5zaG90LnBuZykKCiMjIFJlY29tbWVuZCBwcm9qZWN0IHN0cnVjdHVyZQoKUmVwbzogaHR0cHM6Ly9naXRodWIuY29tL3VuaW9uai1jbG91ZC91bmlvbmotZ2VuZXJhdG9yLWd1aWRlCgohW2RlbW9dKC4vZGVtby5wbmcpCgojIyBEU0wKCiMjIyBTY2hlbWEKCiMjIyMgRXhhbXBsZQoKYGBgamF2YQppbXBvcnQgc3RhdGljIGNsb3VkLnVuaW9uai5nZW5lcmF0b3IuT3BlbkFQSTMuZHNsLlNjaGVtYS5zY2hlbWE7CmltcG9ydCBzdGF0aWMgY2xvdWQudW5pb25qLmdlbmVyYXRvci5PcGVuQVBJMy5kc2wuU2NoZW1hSGVscGVyLio7CgpwdWJsaWMgY2xhc3MgQ29tcG9uZW50cyB7CgogIHByaXZhdGUgc3RhdGljIFNjaGVtYSBzaXplUHJvcGVydHkgPSBpbnQzMigi5q+P6aG15p2h5pWw77yM6buY6K6kMTDvvIzkvKAtMeafpeWHuuWFqOmDqOaVsOaNriIpOwoKICBwcml2YXRlIHN0YXRpYyBTY2hlbWEgY3VycmVudFByb3BlcnR5ID0gaW50MzIoIuW9k+WJjemhte+8jOS7jjHlvIDlp4siKTsKCiAgcHJpdmF0ZSBzdGF0aWMgU2NoZW1hIG9mZnNldFByb3BlcnR5ID0gaW50MzIoIuWBj+enu+mHjyIpOwoKICBwcml2YXRlIHN0YXRpYyBTY2hlbWEgc29ydFByb3BlcnR5ID0gc3RyaW5nKCLmjpLluo/mnaHku7blrZfnrKbkuLLvvJrmjpLluo/lrZfmrrXliY3kvb/nlKgnLSco6ZmN5bqPKeWSjCcrJyjljYfluo8p5Y+36KGo56S65o6S5bqP6KeE5YiZ77yM5aSa5Liq5o6S5bqP5a2X5q6155SoJywn6ZqU5byAIiwKICAgICAgIitpZCwtY3JlYXRlX2F0Iik7CgogIHByaXZhdGUgc3RhdGljIFNjaGVtYSBwYWdlUHJvcGVydHkgPSBpbnQzMigi5b2T5YmN6aG177yM5LuOMeW8gOWniyIpOwoKICBwcml2YXRlIHN0YXRpYyBTY2hlbWEgbGltaXRQcm9wZXJ0eSA9IGludDMyKCLmr4/pobXmnaHmlbDvvIzpu5jorqQxMCwg5LygLTHmn6Xlh7rlhajpg6jmlbDmja4iLCAxMCk7CgogIHByaXZhdGUgc3RhdGljIFNjaGVtYSBtYXhQYWdlUHJvcGVydHkgPSBpbnQzMigi5a+85Ye657uT5p2f6aG1Iik7CgogIHByaXZhdGUgc3RhdGljIFNjaGVtYSB0b3RhbFByb3BlcnR5ID0gaW50NjQoIuaAu+aVsO+8jOWFpeWPguS8oOWFpeatpOWPguaVsOWImeS4jeWGjeafpeivomNvdW5077yM5Lul5q2kdG90YWzkuLrlh4YiKTsKCiAgcHJpdmF0ZSBzdGF0aWMgU2NoZW1hIHRvcFN0YXR1c1Byb3BlcnR5ID0gaW50MzIoIumcgOimgeaOkuWcqOWJjeeahOeKtuaAgSIpOwogIAogIHB1YmxpYyBzdGF0aWMgU2NoZW1hIFBhZ2VSZXN1bHRWTyA9IHNjaGVtYShzYiAtPiB7CiAgICAvLyBTY2hlbWEgdHlwZS4gUmVxdWlyZWQuCiAgICBzYi50eXBlKCJvYmplY3QiKTsKICAgIC8vIFNjaGVtYSB0aXRsZS4gUmVxdWlyZWQuIE90aGVyd2lzZSB0aGUgZ2VuZXJhdG9yIHRvb2wgd29uJ3Qga25vdyBpdC4KICAgIHNiLnRpdGxlKCJQYWdlUmVzdWx0Vk8iKTsKICAgIC8vIEdlbmVyaWMgYXMgTGlzdDxUPgogICAgc2IucHJvcGVydGllcygiaXRlbXMiLCBMaXN0VCk7CiAgICBzYi5wcm9wZXJ0aWVzKCJ0b3RhbCIsIHRvdGFsUHJvcGVydHkpOwogICAgc2IucHJvcGVydGllcygic2l6ZSIsIHNpemVQcm9wZXJ0eSk7CiAgICBzYi5wcm9wZXJ0aWVzKCJjdXJyZW50IiwgY3VycmVudFByb3BlcnR5KTsKICAgIHNiLnByb3BlcnRpZXMoInNlYXJjaENvdW50IiwgYm9vbCk7CiAgICBzYi5wcm9wZXJ0aWVzKCJwYWdlcyIsIGludDMyKCLlvZPliY3liIbpobXmgLvpobXmlbAiKSk7CiAgICBzYi5wcm9wZXJ0aWVzKCJvZmZzZXQiLCBvZmZzZXRQcm9wZXJ0eSk7CiAgfSk7CiAgCiAgcHVibGljIHN0YXRpYyBTY2hlbWEgUmFua1ZPID0gc2NoZW1hKHNiIC0+IHsKICAgIHNiLnR5cGUoIm9iamVjdCIpOwogICAgc2IudGl0bGUoIlJhbmtWTyIpOwogICAgc2IuZGVzY3JpcHRpb24oIuaOkuihjOamnCIpOwogICAgc2IucHJvcGVydGllcygic2VyaWFsTm8iLCBpbnQzMik7CiAgICBzYi5wcm9wZXJ0aWVzKCJuYW1lIiwgc3RyaW5nKTsKICAgIHNiLnByb3BlcnRpZXMoImluY29tZSIsIGRvdWJsZU51bWVyKCLntK/orqHmlLblhaUiKSk7CiAgICBzYi5wcm9wZXJ0aWVzKCJxdWFudGl0eSIsIGludDMyKCLlrozmiJDku7vliqHmlbDph48iKSk7CiAgfSk7CiAgCiAgcHVibGljIHN0YXRpYyBTY2hlbWEgUGFnZVJlc3VsdFZPSm9iVk8gPSBnZW5lcmljKGdiIC0+IHsKICAgIGdiLmdlbmVyaWMoUGFnZVJlc3VsdFZPLCByZWYoUmFua1ZPLmdldFRpdGxlKCkpKTsKICB9KTsKfQoKYGBgCgoKCiMjIyMgU2NoZW1hSGVscGVyCgpUaGVyZSBhcmUgc29tZSBidWlsdC1pbiBzY2hlbWFzIGluIGNsb3VkLnVuaW9uai5nZW5lcmF0b3IuT3BlbkFQSTMuZHNsLlNjaGVtYUhlbHBlci4KCnwgVHlwZSAgICAgICAgICB8IEphdmEgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGludDMyICAgICAgICAgfCBJbnRlZ2VyICAgICAgICAgICAgICB8CnwgaW50NjQgICAgICAgICB8IExvbmcgICAgICAgICAgICAgICAgIHwKfCBzdHJpbmcgICAgICAgIHwgU3RyaW5nICAgICAgICAgICAgICAgfAp8IGJvb2wgICAgICAgICAgfCBCb29sZWFuICAgICAgICAgICAgICB8CnwgZmxvYXROdW1iZXIgICB8IEZsb2F0ICAgICAgICAgICAgICAgIHwKfCBkb3VibGVOdW1lciAgIHwgRG91YmxlICAgICAgICAgICAgICAgfAp8IGRhdGVUaW1lICAgICAgfCBqYXZhLnV0aWwuRGF0ZSAgICAgICB8CnwgVCAgICAgICAgICAgICB8IDxUPiAgICAgICAgICAgICAgICAgIHwKfCBMaXN0VCAgICAgICAgIHwgTGlzdDxUPiAgICAgICAgICAgICAgfAp8IFNldFQgICAgICAgICAgfCBTZXQ8VD4gICAgICAgICAgICAgICB8Cnwgc3RyaW5nQXJyYXkgICB8IExpc3Q8U3RyaW5nPiAgICAgICAgIHwKfCBpbnQzMkFycmF5ICAgIHwgTGlzdDxJbnRlZ2VyPiAgICAgICAgfAp8IGludDY0QXJyYXkgICAgfCBMaXN0PExvbmc+ICAgICAgICAgICB8CnwgZmxvYXRBcnJheSAgICB8IExpc3Q8RmxvYXQ+ICAgICAgICAgIHwKfCBkb3VibGVBcnJheSAgIHwgTGlzdDxEb3VibGU+ICAgICAgICAgfAp8IGJvb2xBcnJheSAgICAgfCBMaXN0PEJvb2xlYW4+ICAgICAgICB8CnwgZGF0ZVRpbWVBcnJheSB8IExpc3Q8amF2YS51dGlsLkRhdGU+IHwKfCBlbnVtcyAgICAgICAgIHwgZW51bSAgICAgICAgICAgICAgICAgfAp8IHJlZiAgICAgICAgICAgfCBPYmplY3QgICAgICAgICAgICAgICB8CnwgcmVmQXJyYXkgICAgICB8IExpc3Q8T2JqZWN0PiAgICAgICAgIHwKCgoKIyMjIyBHZW5lcmljCgojIyMjIyBTeW50YXgKCmBgYGphdmEKLy8gUGFnZVJlc3VsdFZPIG11c3QgaGFzIGFuZCBvbmx5IGhhcyBvbmUgVCBsaWtlIGZpZWxkLCBlLmcuIFQsIExpc3Q8VD4sIFNldDxUPgovLyBJdCB3aWxsIGJlIHJlcHJlc2VudGVkIGFzIFBhZ2VSZXN1bHRWTzxSYW5rVk8+CnB1YmxpYyBzdGF0aWMgU2NoZW1hIFBhZ2VSZXN1bHRWT0pvYlZPID0gZ2VuZXJpYyhnYiAtPiB7CiAgZ2IuZ2VuZXJpYyhQYWdlUmVzdWx0Vk8sIHJlZihSYW5rVk8uZ2V0VGl0bGUoKSkpOwp9KTsKYGBgCgoKCiMjIyBQYXRoCgojIyMjIEV4YW1wbGUKCmBgYGphdmEKaW1wb3J0IHN0YXRpYyBjbG91ZC51bmlvbmouZ2VuZXJhdG9yLk9wZW5BUEkzLlBhdGhIZWxwZXIuKjsKCkBUZXN0CnB1YmxpYyB2b2lkIFRlc3RQYXRoKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKICBPcGVuQVBJMyBPcGVuQVBJMyA9IE9wZW5BUEkzKG9iIC0+IHsKICAgIGluZm8oaWIgLT4gewogICAgICBpYi50aXRsZSgidGl0bGUiKTsKICAgICAgaWIudmVyc2lvbigidjEuMC4wIik7CiAgICB9KTsKCiAgICBzZXJ2ZXIoc2IgLT4gewogICAgICBzYi51cmwoImh0dHA6Ly91bmlvbmouY2xvdWQiKTsKICAgIH0pOwoKICAgIC8vIFN1cHBvcnQgR0VULCBQT1NULCBQVVQsIERFTEVURSBvbmx5LgogICAgcG9zdCgiL2hhbGwvb25saW5lU3VydmV5L2xpc3QiLCBQYXRoQ29uZmlnLmJ1aWxkZXIoKQogICAgICAgICAuc3VtbWFyeSgic3VtbWFyeSIpCiAgICAgICAgIC50YWdzKG5ldyBTdHJpbmdbXXsidGFnMSIsICJ0YWcyIn0pCiAgICAgICAgIC5yZXFTY2hlbWEoU2VhcmNoSm9iUGFnZVJlc3VsdCkKICAgICAgICAgLnJlc3BTY2hlbWEoU2VhcmNoSm9iUGFnZVJlc3VsdCkKICAgICAgICAgLmJ1aWxkKCkpOwoKICAgIHBvc3QoIi9oYWxsL29mZmxpbmVTdXJ2ZXkvdXBkYXRlIiwgUGF0aENvbmZpZy5idWlsZGVyKCkKICAgICAgICAgLnN1bW1hcnkoInN1bW1hcnkiKQogICAgICAgICAvLyBTZWNvbmQgdGFnIHdpbGwgYmUgdXNlZCBhcyBQcm90byBvciB0eXBlc2NyaXB0IFNlcnZpY2UgbmFtZQogICAgICAgICAvLyBJZiB0aGVyZSB3YXMgb25seSBvbmUgdGFnLCB0aGUgUHJvdG8gb3IgdHlwZXNjcmlwdCBTZXJ2aWNlIG5hbWUgd2lsbCBiZSBmaXJzdCBwYXJ0IG9mIGVuZHBvaW50CiAgICAgICAgIC8vIGUuZy4gSGFsbFByb3RvLCBIYWxsU2VydmljZQogICAgICAgICAudGFncyhuZXcgU3RyaW5nW117InRhZzEiLCAiSGFsbE9mZmxpbmVzdXJ2ZXkifSkKICAgICAgICAgLnJlcVNjaGVtYShTZWFyY2hKb2JQYWdlUmVzdWx0KQogICAgICAgICAucmVzcFNjaGVtYShTZWFyY2hKb2JQYWdlUmVzdWx0KQogICAgICAgICAuYnVpbGQoKSk7CgogICAgcG9zdCgiL2FkbWluL29ubGluZVN1cnZleS90b3AvdXBkYXRlIiwgUGF0aENvbmZpZy5idWlsZGVyKCkKICAgICAgICAgLnN1bW1hcnkoInN1bW1hcnkiKQogICAgICAgICAudGFncyhuZXcgU3RyaW5nW117InRhZzEifSkKICAgICAgICAgLnBhcmFtZXRlcnMobmV3IFBhcmFtZXRlcltdewogICAgICAgICAgIFBhcmFtZXRlckJ1aWxkZXIuYnVpbGRlcigpLm5hbWUoImlkIikuaW4oUGFyYW1ldGVyLkluRW51bS5RVUVSWSkucmVxdWlyZWQodHJ1ZSkuc2NoZW1hKHN0cmluZykuYnVpbGQoKSwKICAgICAgICAgICBQYXJhbWV0ZXJCdWlsZGVyLmJ1aWxkZXIoKS5uYW1lKCJ0b3AiKS5pbihQYXJhbWV0ZXIuSW5FbnVtLlFVRVJZKS5yZXF1aXJlZCh0cnVlKS5zY2hlbWEoaW50MzIpLmJ1aWxkKCksCiAgICAgICAgIH0pCiAgICAgICAgIC5yZXNwU2NoZW1hKFNlYXJjaEpvYlBhZ2VSZXN1bHQpCiAgICAgICAgIC5idWlsZCgpKTsKICB9KTsKICBCYWNrZW5kIGJhY2tlbmQgPSBCYWNrZW5kRG9jUGFyc2VyLnBhcnNlKE9wZW5BUEkzKTsKICBTcHJpbmdib290Rm9sZGVyR2VuZXJhdG9yIHNwcmluZ2Jvb3RGb2xkZXJHZW5lcmF0b3IgPSBuZXcgU3ByaW5nYm9vdEZvbGRlckdlbmVyYXRvci5CdWlsZGVyKGJhY2tlbmQpLmJ1aWxkKCk7CiAgc3ByaW5nYm9vdEZvbGRlckdlbmVyYXRvci5nZW5lcmF0ZSgpOwp9CmBgYAoKCgojIyBCYWNrZW5kCgojIyMgRXhhbXBsZQoKYGBgamF2YQpwYWNrYWdlIGNsb3VkLnVuaW9uai5leGFtcGxlLnByb3RvOwoKaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5SZXNwb25zZUVudGl0eTsKaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi4qOwppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIubXVsdGlwYXJ0Lk11bHRpcGFydEZpbGU7CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGNsb3VkLnVuaW9uai5leGFtcGxlLnZvLio7CmltcG9ydCBjbG91ZC51bmlvbmouZXhhbXBsZS5lcy5wYWdlLlBhZ2VSZXN1bHQ7CgpwdWJsaWMgaW50ZXJmYWNlIEFkbWluUHJvdG8gewoKICAgIEBQb3N0TWFwcGluZygiL2FkbWluL25ld3MvbGlzdCIpCiAgICBSZXN1bHREVE88UGFnZVJlc3VsdFZPPE5ld3NWTz4+IHBvc3RBZG1pbk5ld3NMaXN0KAogICAgICAgIEBSZXF1ZXN0Qm9keSBCYXNlU2VhcmNoQ29uZGl0aW9uIGJvZHkKICAgICk7Cgp9CmBgYAoKCiMgTXVzdCBLbm93Ci0gU291cmNlIGNvZGUgaW4gcHJvdG8gcGFja2FnZSwgdm8gcGFja2FnZSBhbmQgY29udHJvbGxlciBwYWNrYWdlIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBuZXcgY29kZSBjb21wbGV0ZWx5LCAKc28gZG9uJ3QgZWRpdCBhbnkgc291cmNlIGNvZGUgaW4gdGhlc2UgcGFja2FnZXMuCi0gRXhpc3Rpbmcgc291cmNlIGNvZGUgaW4gc2VydmljZSBwYWNrYWdlIHdpbGwgYmUgc2tpcHBlZCBhbmQgbm90IGJlIGNoYW5nZWQsIHNvIHlvdSBjYW4gZWRpdCBvciBhZGQgeW91ciBjdXN0b20gY29kZS4KCiMgVHV0b3JpYWxzCi0gW3VuaW9uai1nZW5lcmF0b3Llv6vpgJ/kuIrmiYst5ZCO56uv56+HXShodHRwczovL3d3dy5qaWFuc2h1LmNvbS9wLzIxYzY3MGJhOTBmMSkKCiMgVE9ETwpQbGVhc2UgcmVmZXJlbmNlIFt1bmlvbmotZ2VuZXJhdG9yIGthbmJhbl0oaHR0cHM6Ly9naXRodWIuY29tL3VuaW9uai1jbG91ZC91bmlvbmotZ2VuZXJhdG9yL3Byb2plY3RzLzEpCgojIFNpc3RlciBQcm9qZWN0CgotIFtnby1kb3Vkb3VdKGh0dHBzOi8vZ2l0aHViLmNvbS91bmlvbmotY2xvdWQvZ28tZG91ZG91KTogT3BlbkFQSSAzLjAgc3BlYyBiYXNlZCBsaWdodHdlaWdodCBtaWNyb3NlcnZpY2UgZnJhbWV3b3JrIGZvciBHbwotIFtwdWxsY29kZV0oaHR0cHM6Ly9naXRodWIuY29tL3d1YmluMTk4OS9wdWxsY29kZSk6IGEgdHlwZXNjcmlwdCBodHRwIGNsaWVudCBjb2RlIGdlbmVyYXRpb24gY2xpIGNvbXBhdGlibGUgd2l0aCBTd2FnZ2VyIDIgYW5kIE9wZW5BUEkgMwoKIyBDb21tdW5pdHkKCldlbGNvbWUgdG8gY29udHJpYnV0ZSB0byB1bmlvbmotZ2VuZXJhdG9yIGJ5IGZvcmtpbmcgaXQgYW5kIHN1Ym1pdHRpbmcgcHIgb3IgaXNzdWVzLiBJZiB5b3UgbGlrZSB1bmlvbmotZ2VuZXJhdG9yLCBwbGVhc2UgZ2l2ZSBpdCBhIHN0YXIhCgpXZWxjb21lIHRvIGNvbnRhY3QgbWUgZnJvbSAKLSBmYWNlYm9vazogW2h0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9iaW4ud3UuOTQ2MTc5OTkvXShodHRwczovL3d3dy5mYWNlYm9vay5jb20vYmluLnd1Ljk0NjE3OTk5LykgCi0gdHdpdHRlcjogW2h0dHBzOi8vdHdpdHRlci5jb20vQklOV1U0OTIwNTUxM10oaHR0cHM6Ly90d2l0dGVyLmNvbS9CSU5XVTQ5MjA1NTEzKSAKLSBlbWFpbDogMzI4NDU0NTA1QHFxLmNvbQotIHdlY2hhdDogIAohW3FyY29kZS5wbmddKHFyY29kZS5wbmcpIAoK readmeEtag: '"c7b72b4ec2b1303b006507a91865720c2a6b2370"' readmeLastModified: Thu, 16 Nov 2023 08:08:54 GMT repositoryId: 316134895 description: OpenAPI 3.0 specification Dsl and a collection of code generators created: '2020-11-26T05:47:34Z' updated: '2023-05-08T08:29:23Z' language: Java archived: false stars: 8 watchers: 2 forks: 2 owner: unionj-cloud logo: https://avatars.githubusercontent.com/u/79033021?v=4 license: MIT repoEtag: '"e6daca0ef3a9f6bb8c9c608e092f641244fda8e490746b00adb7299613381e3e"' repoLastModified: Mon, 08 May 2023 08:29:23 GMT foundInMaster: true category: SDK id: 47459de27ac678ba9515f1a0dbd1fe1c - source: openapi3 tags repository: https://github.com/szasza/express-gateway-plugin-openapi3-mock-server v3: true repositoryMetadata: base64Readme: >- IyBFeHByZXNzIEdhdGV3YXkgT3BlbkFQSSAzIE1vY2sgU2VydmVyIFBsdWdpbgoKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyKQoKPiAqKkRFUFJFQ0FUSU9OIE5PVElDRSoqIEZvbGxvd2luZyB0aGUgbWFpbiBFeHByZXNzIEdhdGV3YXkncyBkZXByZWNhdGlvbiwgdGhpcyBwcm9qZWN0IGlzIG5vIGxvbmdlciBtYWludGFpbmVkLgoKIyMgUHJlcmVxdWlzaXRlcwoKUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIEV4cHJlc3MgR2F0ZXdheSdzIFtHZXR0aW5nIHN0YXJ0ZWRdKGh0dHA6Ly93d3cuZXhwcmVzcy1nYXRld2F5LmlvL2dldHRpbmctc3RhcnRlZC8pIHBhZ2UuCgpBbHNvIHBsZWFzZSB0YWtlIGEgbG9vayBhdCBob3cgcGx1Z2lucyBhcmUgW2luc3RhbGxlZCBhbmQgZW5hYmxlZF0oaHR0cDovL3d3dy5leHByZXNzLWdhdGV3YXkuaW8vZG9jcy9wbHVnaW5zLykuCgojIyBJbnN0YWxsYXRpb24KCmBlZyBwbHVnaW4gaW5zdGFsbCBleHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyYAoKIyMgQ29uZmlndXJhdGlvbgoKWW91IGNhbiB1c2UgYHNhbXBsZXMvYmFzZS1wYXRocy55bWxgIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBJZiBzbywgcGxlYXNlIGNyZWF0ZSBhIGBkZWZpbml0aW9uc2AgZm9sZGVyCmluIHRoZSBwcm9qZWN0IHJvb3QgYW5kIGNvcHkgdGhlIHNhbXBsZSBZQU1MIHRoZXJlLgoKX3N5c3RlbS5jb25maWcueW1sXwoKYGBgeWFtbAojIHNvbWUgY29uZmlnIGluIGZyb250IG9mIHRoZSBwbHVnaW5zIHNlY3Rpb24KCnBsdWdpbnM6CiAgZXhwcmVzcy1nYXRld2F5LXBsdWdpbi1vcGVuYXBpMy1tb2NrLXNlcnZlcjoKICAgIGRlZmluaXRpb25GaWxlOiAnZGVmaW5pdGlvbnMveW91cmRlZmluaXRpb24ueW1sJyAjIFRoZSBmaWxlIGNvbnRhaW5pbmcgeW91ciBBUEkncyBzcGVjaWZpY2F0aW9uCgojIHNvbWUgY29uZmlnIGFmdGVyIHRoZSBwbHVnaW5zIHNlY3Rpb24KYGBgCgpfZ2F0ZXdheS5jb25maWcueW1sXyAoQSBiYXJlYm9uZSBleGFtcGxlLCBpZiBub3RoaW5nIGVsc2UgaXMgdXNlZC4pCgpgYGB5YW1sCmh0dHA6CiAgcG9ydDogODAKYXBpRW5kcG9pbnRzOgogIGFwaToKICAgIGhvc3Q6ICcqJwpwb2xpY2llczoKICAtIG1vY2sKcGlwZWxpbmVzOgogIGFwaToKICAgIGFwaUVuZHBvaW50czoKICAgICAgICAtIGFwaQogICAgcG9saWNpZXM6CiAgICAgICAgLSBtb2NrOgogICAgICAgICAgLSBhY3Rpb24KYGBgClRoZSBhYm92ZSBjb25maWd1cmF0aW9uIGRpc2FibGVzIHRoZSBBZG1pbiBDTEkgYW5kIHdpbGwgZG8gbm90aGluZyBidXQgcHJvdmlkZSBhIGR1bW15IHJlc3BvbmRlciBiYXNlZCBvbiB5b3VyIApPcGVuQVBJIHNwZWNpZmljYXRpb24uCgojIyBGZWF0dXJlcwoKKiBFbmRwb2ludHMgd2l0aCBhcHByb3ByaWF0ZSByZXF1ZXN0IHR5cGVzIGFyZSBwYXJzZWQgYW5kIHRoZSBmaXJzdCByZXNwb25zZSBleGFtcGxlIGlzIHVzZWQgYXMgYSByZXNwb25zZSBib2R5LgoqIEhUVFAgYW5kIGFwaUtleSBhdXRoIGhlYWRlciBjaGVjayBzdXBwb3J0CgojIyMgVG8gZG8KCiogQWNjZXB0IGhlYWRlciBjaGVja3MgdG8gcmV0dXJuIGFwcHJvcHJpYXRlIHJlc3BvbnNlIGV4YW1wbGUKKiBYLSogaGVhZGVycyBmb3IgdGVzdGluZyBlcnJvciByZXNwb25zZXMKKiBYLSogaGVhZGVycyBmb3IgcmVzcG9uc2UgZXhhbXBsZSBzZWxlY3Rpb24KKiBJbnB1dCBwYXJhbWV0ZXIgdmFsaWRhdGlvbgoqIEdlbmVyYXRvcnMgZm9yIHJhbmRvbSByZXNwb25zZSBkYXRhIGJhc2VkIG9uIHByb3ZpZGVkIHNjaGVtYQo= readmeEtag: '"cde0d3406ecb9946e27261944e39d5df9bd706f7"' readmeLastModified: Fri, 29 Dec 2023 11:38:45 GMT repositoryId: 106981465 description: An OpenAPI 3 mock server plugin for Express Gateway created: '2017-10-15T03:42:06Z' updated: '2023-12-29T11:39:42Z' language: JavaScript archived: true stars: 8 watchers: 2 forks: 1 owner: Szasza logo: https://avatars.githubusercontent.com/u/911466?v=4 license: NOASSERTION repoEtag: '"d74892a11df235a942d3191067f6059ce05d87fd75169cd2327916a11f0470af"' repoLastModified: Fri, 29 Dec 2023 11:39:42 GMT foundInMaster: true category: - Server - Server Implementations id: aa3aa0d74f315ede19ef0315444b9571 - source: openapi3 tags repository: https://github.com/nicolastakashi/todoapp-openapidocuments v3: true repositoryMetadata: base64Readme: >- IyBUb2RvIEFwcCAtIE9wZW5BUEkgRG9jdW1lbnRzCgohW0NJXShodHRwczovL2dpdGh1Yi5jb20vbmljb2xhc3Rha2FzaGkvdG9kb2FwcC1vcGVuYXBpZG9jdW1lbnRzL3dvcmtmbG93cy9DSS9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcikKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBleGFtcGxlcyB0aGF0IHdlcmUgdXNlZCBpbiB0aGUgcG9zdCBJIG1hZGUgb24gbXkgTWVkaXVtIGFjY291bnQsIHNob3dpbmcgaG93IHRvIGRlc2lnbiBhbiBBUEkgdXNpbmcgYW4gQVBJLUZpcnN0IHN0cmF0ZWd5LgoKIyMjIFBvc3RzCiogRW5nbGlzaAogICogW0Rlc2lnbmluZyBSZXN0ZnVsIEFQSXMgdXNpbmcgYW4gQVBJLUZpcnN0IEFwcHJvYWNoXShodHRwczovL25pY29sYXN0YWthc2hpLm1lZGl1bS5jb20vcmVzdGZ1bC11c2luZy1hcGktZmlyc3QtY2QzMDVlNTkzMDVkKQogICogW0Rlc2lnbmluZyBSZXN0ZnVsIEFQSXMgdXNpbmcgYW4gQVBJLUZpcnN0IEFwcHJvYWNoIOKAlCBNb2NraW5nXShodHRwczovL25pY29sYXN0YWthc2hpLm1lZGl1bS5jb20vZGVzaWduaW5nLWFwaXMtdXNpbmctYW4tYXBpLWZpcnN0LWFwcHJvYWNoLW1vY2stc2VydmVyLTc4ZGRiZDk5OTNmNSkKICAqIFtEZXNpZ25pbmcgUmVzdGZ1bCBBUElzIHVzaW5nIGFuIEFQSS1GaXJzdCBBcHByb2FjaCDigJQgQ29udHJhY3QgVGVzdF0oaHR0cHM6Ly9uaWNvbGFzdGFrYXNoaS5tZWRpdW0uY29tL2Rlc2lnbmluZy1yZXN0ZnVsLWFwaXMtdXNpbmctYW4tYXBpLWZpcnN0LWFwcHJvYWNoLWNvbnRyYWN0LXRlc3QtMzRiZGU3OTYwM2RkKQoKIyMgUnVuaW5nCgpJZiB5b3Ugd2FudCB0byBsaW50IGFuZCBydW4gYSBtb2NrIHNlcnZlciwgeW91IG11c3QgdG8gaW5zdGFsbCB0aGUgZGVwZW5kZW5jaWVzIGJlZm9yZSwgYXMgeW91IGNhbiBzZWUgYmVsb3cuCgpgYGAKeWFybiAKYGBgCgojIyBMaW50aW5nIE9wZW5BUEkgRG9jdW1lbnRzCgpDaGVjayBpZiB5b3VyIEFQSXMgYXJlIGJlaW5nIGRlc2lnbmVkIGZvbGxvd2luZyB0aGUgcHJvcG9zZWQgZ3VpZGVsaW5lcyBieSB5b3VyIGNvbXBhbnksIHdoaWNoIGNvdWxkIGJlIGEgZGlmZmljdWx0IGpvYiB0byBkbyBtYW51YWxseS4KVGhlcmVieSB3ZSBjYW4gYXNrIGZvciBhIHRvb2wgbGlrZSBTcGVjdHJhbCB0byBoZWxwIHVzIGFuZCBjcmVhdGUgYW4gYXV0b25vbW91cyBwcm9jZXNzLCB0byBkbyB0aGlzIGpvYi4KClNwZWN0cmFsIGlzIGFuIG9wZW4tc291cmNlIHByb2plY3QgdGhhdCB3b3JrcyBsaWtlIGEgbGludGVyIHRvIE9wZW5BUEkgZG9jdW1lbnRzIGFuZCBoYXMgYSBsb3Qgb2YgcnVsZXMgdG8gZW5zdXJlIHZlcnkgY29tbW9uIGd1aWRlbGluZXMgaW4gdGhlIHNvZnR3YXJlIGluZHVzdHJ5IHRvIGRldmVsb3AgUkVTVEZ1bCBBUElzLgoKVG8gcnVuIFNwZWN0cmFsIHlvdSBjYW4ganVzdCBydW4gdGhlIGNvbW1hbmQgYmVsb3cuIAoKYGBgCnlhcm4gbGludApgYGAKCiMjIFJ1bm5pbmcgTW9jayBTZXJ2ZXIKCkdpdmUgYSBNb2NrIFNlcnZlciB3aXRoIGR5bmFtaWMgZGF0YSB0byB5b3VyIGNsaWVudHMgdGFzdGUgeW91ciBBUEkgRGVzaWduIGFuZCBwcm92aWRlIGZhc3QgZmVlZGJhY2sgYWJvdXQgdGhlIERldmVsb3BlciBFeHBlcmllbmNlLgoKUHJpc20gaXMgYW4gb3Blbi1zb3VyY2UgcHJvamVjdCB0aGF0IHByb3ZpZGVzIHVzIGEgbW9jayBzZXJ2ZXIgYmFzZWQgb24gdGhlIE9wZW5BUEkgZG9jdW1lbnRzIGFuZCBpdHMgc3RydWN0dXJlLgoKVG8gcnVuIFByaXNtIHlvdSBjYW4ganVzdCBydW4gdGhlIGNvbW1hbmQgYmVsb3cuCgpgYGAKeWFybiBtb2NrCmBgYAoKIyMgQ29udHJhY3QgVGVzdGluZwpFdmVuIGFmdGVyIHRoZSBBUEkgd2FzIG1hZGUgYXZhaWxhYmxlLCBpdCBrZWVwcyBldm9sdmluZywgYW5kIG9uZSBvZiB0aGUgYmlnZ2VzdCBjaGFsbGVuZ2VzIGR1cmluZyBhbiBBUEkgTGlmZS1jeWNsZSBpcyB0aGUgQVBJIGV2b2x1dGlvbiwgaW4gb3JkZXIgdG8gZGV0ZWN0IGJyZWFraW5nIGNoYW5nZXMgYW5kIGF2b2lkIGEgY29udHJhY3QgYnJlYWssIHdlIG11c3QgaGF2ZSBhIHN0cmF0ZWd5IHRvIGJlIG5vdGlmaWVkIGFzIHNvb24gYXMgcG9zc2libGUuCgpCZWZvcmUgeW91IHN0YXJ0IHRvIHRlc3QgdGhlIGNvbnRyYWN0cyB5b3UgbXVzdCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSB0aGUgZG90bmV0IGluc3RhbGxlZCwgc2luY2UgdGhlIEFQSSB1c2VkIGluIHRoaXMgcmVwb3NpdG9yeSBpcyBhbiBBU1AuTkVUIFByb2plY3QuCkFmdGVyIHlvdSBpbnN0YWxsIERvdG5ldCBpbiB5b3VyIGNvbXB1dGVyLCB5b3UgY2FuIGluc3RhbGwgU3dhc2hidWNsbGUgQ0xJLCBydW5uaW5nIHRoZSBjb21tYW5kIGJlbG93LgoKYGBgYmFzaApkb3RuZXQgdG9vbCBpbnN0YWxsIFN3YXNoYnVja2xlLkFzcE5ldENvcmUuQ2xpIC1nCmBgYApPcGVuQVBJIERpZmYgaXMgYW4gb3Blbi1zb3VyY2UgcHJvamVjdCB0aGF0IGNvbXBhcmVzIHR3byBPcGVuQVBJIGRvY3VtZW50cyBhbmQgc2hvd3MgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aG9zZSBmaWxlcywgYW5kIHlvdSBjYW4gc3RhcnQgdG8gdGVzdCB5b3VyIGNvbnRyYWN0cyBydW5uaW5nIHRoZSBjb21tYW5kcyBiZWxvdy4KCmBgYGJhc2gKZG90bmV0IGJ1aWxkIC4vYXBpL1RvZG9BcHAuQXBpL1RvZG9BcHAuQXBpLmNzcHJvaiAtLWNvbmZpZ3VyYXRpb24gUmVsZWFzZQpzd2FnZ2VyIHRvZmlsZSAtLXlhbWwgLS1vdXRwdXQgLi9iaW4vc3dhZ2dlci55YW1sIC4vYXBpL1RvZG9BcHAuQXBpL2Jpbi9SZWxlYXNlL25ldGNvcmVhcHAzLjEvVG9kb0FwcC5BcGkuZGxsIHYxCnlhcm4gY29udHJhY3QtdGVzdApgYGAKCg== readmeEtag: '"17ebb2ebf1125e2314608a468469a8e477f6ea38"' readmeLastModified: Sun, 25 Jul 2021 13:00:11 GMT repositoryId: 285396496 description: Examples used in the post published on Medium. created: '2020-08-05T20:25:43Z' updated: '2023-03-28T14:52:40Z' language: C# archived: false stars: 8 watchers: 2 forks: 1 owner: nicolastakashi logo: https://avatars.githubusercontent.com/u/8205546?v=4 license: MIT repoEtag: '"43f639edd4d4294a0c794672b73e8f5e2b15e32822aa790da6e9701d1162622b"' repoLastModified: Tue, 28 Mar 2023 14:52:40 GMT foundInMaster: true category: - Testing - Server Implementations id: 99c2b0a2ca7404d1f8fad9edb1c72c06 - source: openapi3 tags repository: https://github.com/simitgroup/openapigenerator v3: true id: 4d6b006ead52fd9f048f446604ba6382 repositoryMetadata: base64Readme: >- IyBPcGVuYXBpIEdlbmVyYXRvcgpBbiBvcGVuYXBpdjMgZ2VuZXJhdG9yIHdoaWNoIGNhbiBnZW5lcmF0ZSBtaWNyby1zZXJ2aWNlcyBmb3IgR08gTGFuZ3VhZ2UKCiMjIENvbnRlbnQKLSBbT3BlbmFwaSBHZW5lcmF0b3JdKCNvcGVuYXBpLWdlbmVyYXRvcikKICAtIFtDb250ZW50c10oI2NvbnRlbnRzKQogIC0gW0ludHJvZHVjdGlvbl0oI2ludHJvZHVjdGlvbikKICAtIFtRdWlja3N0YXJ0XSgjcXVpY2tzdGFydCkKICAtIFtEb2NrZXJpemluZ10oI2RvY2tlcml6aW5nKQotIFtPcGVuYXBpIERvY3VtZW50XSgjb3BlbmFwaS1kb2N1bWVudCkKICAgIC0gW1JlcXVpcmVtZW50c10oI3JlcXVpcmVtZW50cykKICAgIC0gW0RlZmluZSBFbnZpcm9ubWVudCBWYXJpYWJsZXNdKCNkZWZpbmUtZW52aXJvbm1lbnQtdmFyaWFibGVzKQogICAgLSBbRGVmaW5lIEVycm9yIFNjaGVtYV0oI2RlZmluZS1lcnJvci1zY2hlbWEpCiAgICAtIFtSZXF1aXJlIDJYWCBhbmQgNFhYIEluIEV2ZXJ5IFJlc3BvbnNlIF0oI3JlcXVpcmUtMlhYLWFuZC00WFgtaW4tZXZlcnktcmVzcG9uc2UpICAgIAogICAgLSBbTm90IFN1cHBvcnRlZCBGZWF0dXJlc10oI25vdC1zdXBwb3J0ZWQtZmVhdHVyZXMpCi0gW0RldmVsb3AgSW4gR2VuZXJhdGVkIFByb2plY3RdKCNkZXZlbG9wLWluLWdlbmVyYXRlZC1wcm9qZWN0KSAgICAgCiAgICAtIFtQcm9qZWN0IE92ZXJ2aWV3XSgjcHJvamVjdC1vdmVydmlldykgCiAgICAgICAgLSBbRGV2ZWxvcG1lbnQgQ29uY2VwdF0oI2RldmVsb3BtZW50LWNvbmNlcHQpICAKICAgICAgICAtIFtGaWxlIFN0cnVjdHVyZV0oI2ZpbGUtc3RydWN0dXJlKSAKICAgICAgICAtIFtTY2hlbWFzIE9yIE1vZGVsc10oI1NjaGVtYXMtb3ItbW9kZWxzKSAKICAgICAgICAtIFtSb3V0ZXNdKCNyb3V0ZXMpIAogICAgICAgIC0gW1JvdXRlIEhhbmRsZXNdKCNyb3V0ZS1oYW5kbGVzKSAKICAgIC0gW0RldmVsb3AgUmVhbCBSb3V0ZSBIYW5kbGVdKCNkZXZlbG9wLXJlYWwtcm91dGUtaGFuZGxlKQogICAgICAgIC0gW1RyYW5zZmVyIFJvdXRlIEhhbmRsZSBJbnRvIE5ldyBGaWxlXSh0cmFuc2Zlci1yb3V0ZS1oYW5kbGUtaW50by1uZXctZmlsZSkKICAgICAgICAtIFtEZWZpbmUgSGFuZGxlIEV4aXN0cyBJbiBEb2N1bWVudF0oZGVmaW5lLWhhbmRsZS1leGlzdHMtaW4tZG9jdW1lbnQpCiAgICAgICAgLSBbQ3JlYXRlIEVudmlyb25tZW50IFZhcmlhYmxlc10oI2NyZWF0ZS1lbnZpcm9ubWVudC12YXJpYWJsZXMpCiAgICAtIFtCdWlsZCBQcm9qZWN0XSgjYnVpbGQtcHJvamVjdCkgCiAgICAgICAgLSBbU2ltcGxlIEJ1aWxkXSgjc2ltcGxlLWJ1aWxkKSAKICAgICAgICAtIFtCdWlsZCBGb3IgRGlzdHJpYnV0aW9uXSgjYnVpbGQtZm9yLWRpc3RyaWJ1dGlvbikgCiAgICAgICAgLSBbQnVpbGQgRm9yIERvY2tlcl0oI2J1aWxkLWZvci1kb2NrZXIpIAogICAgLSBbVW5pdCBUZXN0XSgjdW5pdC10ZXN0KQogICAgICAgIC0gW0RlZmluZSBSZWFsIFRlc3RdKCNkZWZpbmUtcmVhbC10ZXN0KSAKICAgICAgICAtIFtFeGVjdXRlIFVuaXQgVGVzdF0oI2V4ZWN1dGUtdW5pdC10ZXN0KSAgIAogICAgLSBbU2VjdXJlIE1pY3Jvc2VydmljZV0oI3NlY3VyZS1taWNyb3NlcnZpY2UpIAogICAgICAgIC0gW1NlY3VyZSB3aXRoIEFwaUtleV0oI3NlY3VyZS13aXRoLWFwaWtleSkgCi0gW1RvZG9dKCN0b2RvKQoKCiMjIEludHJvZHVjdGlvbgpXZSBrbm93IG9wZW5hcGkgaXMgY29vbCwgdXN1YWxseSB3ZSB1c2Ugc3dhZ2dlciBvciBwb3N0bWFuIGZvciBhcGkgdGVzdGluZywgZG9jdW1lbnRhdGlvbiBhbmQgZGVzaWduLiBIb3dldmVyLCBkZXNpZ24sIGRldmVsb3AsIHRlc3RpbmcgYW5kIGRvY3VtZW50YXRpb24gaXMgcmVkdW5kYW50IHdvcmsgYW5kIHNwZW5kIHVzIGxvdCBvZiB0aW1lLgoKVGhpcyBnZW5lcmF0b3IgYWJsZSB0byBnZW5lcmF0ZSBtaWNyby1zZXJ2aWNlcyB3aXRoIGJlbG93IGNhcGFiaWxpdHk6CjEuIHdvcmtpbmcgZ2luIG1vY2sgc2VydmVyLCB5b3UgY2FuIG1vZGlmaWVkIGl0IHRvIGJlY29tZSByZWFsIG1pY3Jvc2VydmljZQoyLiB1bml0IHRlc3QgZm9yIGFsbCByZXN0YXBpCjMuIGJ1aWxkIGluIHN3YWdnZXItdWkgdG8gYWxsb3cgeW91IHRlc3QgYXBpIGVhc2lseQo0LiBlYXNpbHkgZ2VuZXJhdGUgZG9ja2VyIGltYWdlCjUuIGJ1aWxkIGluIHN1cHBvcnQgc2VjdXJpdHkgc2NoZW1lCgoKIyMgUXVpY2tzdGFydApNYWtlIHN1cmUgeW91IGFwaSBkb2N1bWVudCBjb21wbHkgdG8gW1JlcXVpcmVtZW50c10oI3JlcXVpcmVtZW50cyksIHRoZW4geW91IGNhbiBnZW5lcmF0ZSBtaWNyby1zZXJ2aWNlIHNvdXJjZSBjb2RlOgoxLiBbRG93bmxvYWQgb3BlbmFwaWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL1NJTUlUR1JPVVAvb3BlbmFwaWdlbmVyYXRvci9yZWxlYXNlcykKMi4gcHJlcGFyZSBvcGVuYXBpLXYzIHNwZWMgZmlsZSwgKHRlc3RlZCBpbiAueWFtbCBvbmx5KQozLiBFeGVjdXRlIGJlbG93IGNvbW1hbmQgOgpgYGBiYXNoCi4vb3BlbmFwaWdlbmVyYXRvci1tYWMuYmluIC0tYXBpZmlsZT0ic2ltcGxlYXBpLnlhbWwiICAtLXRhcmdldGZvbGRlcj1teXByb2plY3QgLS1wcm9qZWN0bmFtZT0icHJvamVjdDEiIC0tcG9ydD0iOTAwMCIgIC0tbGFuZz0iZ28iCmBgYAo0LiBZb3UgY2FuIHVzZSBWaXN1YWwgU3R1ZGlvIENvZGUgb3Igb3RoZXJzIElERSB0byBvcGVuIGB+L215cHJvamVjdGA6CmBgYGJhc2gKY2QgbXlwcm9qZWN0CmNvZGUgLgpgYGAKCjUuIENvcHkgLmVudi5kZWZhdWx0IHRvIC5lbnYsIGRlZmluZSBhcHByb3ByaWF0ZSB2YWx1ZSwgbGlrZSBBUEkga2V5cyBhbmQgZXRjCjYuIFJ1biBiZWxvdyBjb21tYW5kIGFuZCBkb25lOgpgYGBiYXNoCm1ha2UgJiYgLi9wcm9qZWN0MSAKYGBgCjcuIFRyeSBhY2Nlc3MgcmVzdCBhcGkgaW50ZXJmYWNlOgogICAgIGh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC9kb2Mvc3dhZ2dlci11aS9pbmRleC5odG1sCgoKCiMjIERvY2tlcml6aW5nClByb2plY3QgY29tZSB3aXRoIGZldyBjb21tYW5kIGhlbHAgeW91IHJ1biBtaWNyb3NlcnZpY2UgaW4gZG9ja2VyIGVudmlyb25tZW50LiBDaGVjayBgTWFrZWZpbGVgIHRvIGtub3cgbW9yZSBkZXRhaWwKCjEuIGNyZWF0ZSBkb2NrZXIgY29udGFpbmVyIGluIGRldm5ldHdvcmsuCmBgYApjZCBteXByb2plY3QKbWFrZSBkb2NrZXJyZW1vdmUgOyBtYWtlIGRvY2tlciAmJiAgbWFrZSBkb2NrZXJydW4KbWFrZSBkb2NrZXJzaGVsbCAjIGFjY2VzcyBkb2NrZXIgc2hlbGwgCmBgYAoyIFlvdSBtYXkgZWRpdCBgTWFrZWZpbGVgIGlmIHlvdSB3aXNoIHRvIHBhc3MgY3JlYXRlIGRvY2tlciBjb250YWluZXIgd2l0aCBtb3JlIHVzZWZ1bCBzZXR0aW5nCgoKIyBPcGVuYXBpIERvY3VtZW50ClB1cmUgb3BlbmFwaSBub3QgZ29vZCBlbm91Z2ggZm9yIHByZXBhcmUgY29tcGxldGUgbWljcm9zZXJ2aWNlcywgdGhlcmUgaXMgYWRkaXRpb25hbCBndWlkZSBsaW5lIHNoYWxsIGZvbGxvdyBhdCBiZWxvdyBzZWN0aW9uLiAKCiMjIFJlcXVpcmVtZW50cwpUaGlzIHByb2plY3QgaGFzIGJlbG93IHJlcXVpcmVtZW50OgoxLiBhcGkgZG9jdW1lbnQgd3JpdHRlbiBpbiBvcGVuYXBpIHYzCjIuIGFwaSBkb2N1bWVudCBzaGFsbCBzYXZlIGluIC55YW1sIGZvcm1hdAozLiBkZWZpbmUgb3BlcmF0aW9uSWQgaW4gZXZlcnkgYXBpIGluIHBhdGgsIHdpdGggdmFsdWU6CiAgICAqIEFscGhhYmV0IHZhbHVlIHdoaWNoIGNhbiB1c2UgdG8gZGVmaW5lIGFzIHByb2dyYW1taW5nIGZ1bmN0aW9uIHRpdGxlCiAgICAqIE5vIHNwZWNpYWwgY2hhcmFjdGVycyBhbGxvd2VkLCBleGNlcHQgcHJlZml4IHdpdGggJy0nIChhdm9pZCBnZW5lcmF0ZSByb3V0ZSBoYW5kbGUpCiAgICAqIGV4YW1wbGU6IGBHZXREYXRhYCwgYFNhdmVEYXRhYCwgYC1TYXZlRGF0YWAKNC4gQWxsIGVsZW1lbnQgc2hhbGwgcmVmZXJlIGZyb20gI2NvbXBvbmVudHMvc2NoZW1hLCBleGFtcGxlOgogICAgKiBwYXJhbWV0ZXJzCiAgICAqIHJlcXVlc3QgYm9keQogICAgKiByZXNwb25zZSBjb250ZW50CiMjIE5vdCBTdXBwb3J0ZWQgRmVhdHVyZXMKMS4gb3BlbmNvbm5lY3Qgc2VjdXJpdHkgc2NoZW1lcwoyLiBhcGlLZXkgb25seSBzdXBwb3J0ZWQgYXQgaGVhZGVyLCBvdGhlcnMgYXJlYSBpcyBub3Qgc3VwcG9ydGVkIChjb29raWUsIHF1ZXJ5Li4uKQoKIyMgRGVmaW5lIEVudmlyb25tZW50IFZhcmlhYmxlcwpXZSBjYW4gdXNlIFtTcGVjaWZpY2F0aW9uIEV4dGVuc2lvbnNdKCNodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMjc3BlY2lmaWNhdGlvbkV4dGVuc2lvbnMpIHRvIGRlY2xhcmUgZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIG1pY3Jvc2VydmljZXMsIGl0IHdpbGwgYWRkIGludG8gYC5lbnYuZGVmYXVsdGAuCgpFeGFtcGxlOgpgYGB5YW1sCngtZW52LXZhcnM6CiAgTU9OR09fU0VSVkVSOiBtb25nb2Ric2VydmVyCiAgTU9OR09fREI6IGRiMQogIE1PTkdPX1VTRVI6IAogIE1PTkdPX1BBU1M6IApgYGAKIyBEZWZpbmUgRXJyb3IgU2NoZW1hCllvdSBjYW4gZGVmaW5lIHNwZWNpYWwgc2NoZW1hICJFcnJvciIsIHdoaWNoIHNoYWxsIGluY2x1ZGUgMiBmaWVsZDogYGVycl9jb2RlYCBhbmQgYGVycl9tc2dgIGFzIGJlbG93IGV4YW1wbGUuCiBodHRwIHJlcXVlc3QgZm9yIGBwb3N0YCxgcHV0YCB3aGljaCB5b3UgbWF5IHN1Ym1pdCByZXF1ZXN0Ym9keS4KYGBgeWFtbAogICAgRXJyb3I6CiAgICAgIHR5cGU6IG9iamVjdCAgICAgIAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGVycl9jb2RlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiRVItTUctMDAxIgogICAgICAgIGVycl9tc2c6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQSBodW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdlCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6ICJNb25nb2RiIG5vdCBjb25uZWN0ZWQiCiAgICAgICAgdmVyc2lvbjoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogdjEKYGBgCkhvdyBpdCB3b3JrOgoxLiBUaGlzIHNjaGVtYSBjYW4gZGVmaW5lIGFzIGVycm9yIDR4eCByZXNwb25zZSBmb3IgaHR0cCByZXF1ZXN0IHdpdGggcmVxdWVzdGJvZHkgKHBvc3QsIHB1dCwgcGF0Y2gpCjIuIHdoZW4gdGhlIGFjdHVhbCByZXF1ZXN0IGJvZHkgbm90IGNvbXBhdGlibGUgd2l0aCBzY2hlbWEgZGVmaW5hdGlvbiwgdGhlIGBlcnJfbXNnYCB3aWxsIGRpc3BsYXkgZXJyb3IgbGlrZSBiZWxvdzoKYGBganNvbgp7CiAgImVycl9jb2RlIjogIkVSUl9JTlBVVF9WQUxJREFUSU9OIiwKICAiZXJyX21zZyI6ICJLZXk6ICdNb2RlbF9Cb29rLkJvb2tpZCcgRXJyb3I6RmllbGQgdmFsaWRhdGlvbiBmb3IgJ0Jvb2tpZCcgZmFpbGVkIG9uIHRoZSAncmVxdWlyZWQnIHRhZyIsCiAgInZlcnNpb24iOiAidjEiCn0KYGBgCgojIFJlcXVpcmUgMlhYIGFuZCA0WFggSW4gRXZlcnkgUmVzcG9uc2UKRm9yIGdvb2QgcHJhY3Rpc2UsIGV2ZXJ5IGh0dHAgcmVxdWVzdCBzaGFsbCBkZWZpbmUgYXQgbGVhc3QgMSByZXNwb25zZSBmb3IgMnh4IGFuZCA0eHguIFRoZXJlIGlzIGhhcmRjb2RlZCBiZWhhdmlvdXIgd2hpY2ggd2lsbCBpZGVudGl0eSAyeHggYXMgIHN1Y2Nlc3MgcmVzcG9uc2UsIGFuZCA0eHggaXMgZmFpbGVkIHJlc3BvbnNlLgoKCgojIERldmVsb3AgSW4gR2VuZXJhdGVkIFByb2plY3QKQWZ0ZXIgY29kZSBnZW5lcmF0ZWQsIHdlIGNhbiBzdGFydCBvdmVyIGRldmVsb3BtZW50IGJ5IGNoYW5nZSB0aGUgZ2VuZXJhdGVkIGNvZGUuIFlvdSBzaGFsbCBwcmVwYXJlIGJlbG93IGRldiBlbnZpcm9ubWVudDoKMS4gVmlzdWFsIFN0dWRpbyBDb2RlCjIuIEdvIFNkawozLiBEb2NrZXIgKG9wdGlvbmFsIGlmIHlvdSBwbGF5IHdpdGggZG9ja2VyKQoKIyMgUHJvamVjdCBPdmVydmlldwpUaGUgZ2VuZXJhdGVkIHByb2plY3QgcHJlcGFyZSB1bmRlciBiZWxvdyBzdHJ1Y3R1cmU6CjEuIHdyaXR0ZW4gaW4gZ28gbGFuZ3VhZ2UKMi4gUnVubmluZyBvbiB0b3Agb2YgW2dpbl0oI2h0dHBzOi8vZ2l0aHViLmNvbS9naW4tZ29uaWMvZ2luKSB3ZWIgc2VydmljZQozLiBJdCB3b3JrIGFzIGNvbXBsZXRlIG1vY2sgc2VydmVyIHRvIHNlcnZpY2UgbWljcm8tc2VydmljZSBhcyBzdGF0ZWQgaW4gb3BlbmFwaSBkb2N1bWVudC4KCiMjIyBEZXZlbG9wbWVudCBDb25jZXB0ClRvIG1ha2UgdGhlIG1pY3JvLXNlcnZpY2UgcGVyZm9ybSByZWFsIHRhc2ssIHdlIHNoYWxsIHBlcmZvcm0gZGV2ZWxvcG1lbnQsIHdoaWNoIGludm9sdmUgYmVsb3cgc2NvcGU6CjEuIE1vZGlmeSByb3V0ZSBoYW5kbGUgdG8gcGVyZm9ybSByZWFsIHRhc2s6CiAgICAqIGByb3V0ZWAgaXMgcmVzdGFwaSByZXF1ZXN0IGxpa2UgYEdFVCAvbXlhcGlgLCBgUE9TVCAvbXlhcGkvcmVzMWAKICAgICogYHJvdXRlIGhhbmRsZWAgaXMgcHJvZ3JhbW1pbmcgZnVuY3Rpb24sIHdoaWNoIHdpbGwgdHJpZ2dlciB3aGVuIGNsaWVudCBhY2Nlc3Mgc3BlY2lmaWMgYHJvdXRlYC4gCiAgICAqIEV2ZXJ5IGByb3V0ZWAgY29ubmVjdCB0byBvd24gYHJvdXRlIGhhbmRsZWAKICAgICogYHJvdXRlYCBpcyB0ZXJtaW5vbG9neSBmcm9tIGBnaW5gLCBpdCBoYXZlIHNpbWlsYXIgbWVhbmluZyB3aXRoIG9wZW5hcGkgYHBhdGhgCgoyLiBVbml0IHRlc3QgKG9wdGlvbmFsKQozLiBQcmVwYXJlIGVudmlyb25tZW50IGZvciBkZXBsb3ltZW50IGxpa2U6CiAgICAqIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBgLmVudmAgb3IgYC5lbnYuZG9ja2VyYAogICAgKiBwcmVwcmUgZG9ja2VycyBpbWFnZXMKICAgICogcHJlcGFyZSBkYXRhYmFzZSBmb3IgaGFuZGxlCgpPbiBhbmQgb2ZmLCBkZXBlbmRzIG9uIHByb2plY3QgcmVxdWlyZW1lbnQgeW91IG5lZWQgdG8gcGVyZm9ybSBtb2RpZmljYXRpb24gYXQgb3BlbmFwaSBkb2N1bWVudCwgYW5kIHJlZ2VuZXJhdGUgdGhlIGNvZGUgYWdhaW4sIGFuZCBhZ2Fpbi4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgaG93IHRvIHJlZ2VuZXJhdGUgdGhlIGNvZGUgd2l0aG91dCBvdmVyd3JpdGUgeW91ciBtb2RpZmljYXRpb24uIAoKVGVjaG5pY2FsbHkgaXQgaGFzIGZldyBydWxlczoKMS4gUmVtYWluIGFsbCBmaWxlIHdpdGggcHJlZml4IFoqLmdvIHJlbWFpbiB1bmNoYW5nZSAob3BlbmFwaS9aKi5nbyB0ZXN0L1oqLmdvKQoyLiBEdXJpbmcgZGV2ZWxvcG1lbnQsIGNyZWF0ZSBuZXcgYC5nb2AgZmlsZSBpbiBmb2xkZXIgYG9wZW5hcGkvYAozLiBDcmVhdGVkIGZpbGUgc2hvdWxkIG5vdCBzdGFydCB3aXRoIGBaYCwgdG8gYXZvaWQgaXQgbWl4ZWQgd2l0aCBnZW5lcmF0ZWQgZmlsZSAKNC4gUm9vdCBsZXZlbCBmaWxlIGFzIGJlbG93IGd1aWRlbGluZToKICAgICogYGdvLm1haW5gOiBhbHdheXMgb3ZlcndyaXRlIGJ5IGdlbmVyYXRvcgogICAgKiBgZ28ubW9kYDogIGFsd2F5cyBvdmVyd3JpdGUgYnkgZ2VuZXJhdG9yCiAgICAqIGBNYWtlZmlsZWA6ICBhbHdheXMgb3ZlcndyaXRlIGJ5IGdlbmVyYXRvcgogICAgKiBgLmVudi5kZWZhdWx0YDogYWx3YXlzIG92ZXJ3cml0ZSBieSBnZW5lcmF0b3IKICAgICogYC5lbnZgOiBmcmVlIHRvIGNoYW5nZSAgICAKICAgICogYC5lbnYuZG9ja2VyYDogZnJlZSB0byBjaGFuZ2UKICAgIAojIyMgRmlsZSBTdHJ1Y3R1cmUKQmVsb3cgaXMgc29tZSBleHBsYW5hdGlvbiBnZW5lcmF0ZWQgY29kZQoqIGBtYWluLmdvYDogZW50cnkgcG9pbnQKKiBgZ28ubW9kYDogZ28gcHJvamVjdCBzZXR0aW5nCiogYC5lbnYuZGVmYXVsdGA6IHRlbXBsYXRlIGZvciBgLmVudmAKKiBgTWFrZWZpa2VgOiBzdG9yZSBjb21tYW5kIGZvciBidWlsZCBwcm9qZWN0LCB5b3UgbWF5IGNoYW5nZSBpZiB5b3UgaGF2ZSBjb21wbGV4IHJlcXVpcmVtZW50CiogYERvY2tlcmZpbGVgOiB0ZW1wbGF0ZSBmb3IgZ2VuZXJhdGUgZG9ja2VyIGltYWdlLCBjaGFuZ2UgaXQgaWYgeW91IGhhdmUgc3BlY2lhbCBuZWVkIG9uIGRvY2tlcgoqIGBvcGVuYXBpL2A6IHN0b3JlIGFsbCBnbyBwcm9ncmFtLCB5b3Ugc2hhbGwgcGVyZm9ybSBkZXZlbG9wIGluIHRoaXMgZm9sZGVyIG9ubHkKKiBgb3BlbmFwaS9aTW9kZWxfKi5nb2A6IEFsbCBvcGVuYXBpIHNjaGVtYSB3aWxsIGdlbmVyYXRlIGFzIGdvIGBNb2RlbGAgaGVyZSAoc3RydWN0cykKKiBgb3BlbmFwaS9aUm91dGVyUmVnaXN0cnkuZ29gOiBMaXN0IGFsbCB0aGUgcm91dGUvcGF0aCBpbiB0aGlzIG1pY3Jvc2VydmljZSwgYW5kIGNvbm5lY3QgdG8gd2hpY2ggcm91dGUgaGFuZGxlCiogYG9wZW5hcGkvWlJvdXRlckhhbmRsZS5nb2A6IEtlZXAgYWxsIGRlZmF1bHQgYXV0byBnZW5lcmF0ZSBgcm91dGUgaGFuZGxlYCwgYmFzZSBvbiBuYW1lIGRlZmluZWQgaW4gb3BlbmFwaSdzIHBhdGgncyBvcGVyYXRpb25JZC4gCiogYG9wZW5hcGkvWlNlY3VyaXR5Ki5nb2A6IHNlY3VyaXR5IHNjaGVtZXMgc2V0dGluZyBhY2NvcmRpbmcgb3BlbmFwaSBkb2N1bWVudAoqIGBvcGVuYXBpL1pTZXJ2ZXIuZ29gOiBzdG9yZSBjb2RlIHRvIHJ1biBnaW4gc2VydmVyCiogYGFwaS9hcGkueWFtbGA6IHN0b3JlIG9wZW5hcGkgZG9jdW1lbnQsIHVzZWQgYnkgc3dhZ2dlci11aQoqIGBkaXN0LypgOiBwcm9qZWN0IGJpbmFyeSBidWlsZCBpbnRvIHRoaXMgZm9sZGVyCgojIyMgU2NoZW1hcyBPciBNb2RlbHMKT3BlbmFwaSdzIHNjaGVtYSBlcXVpdmFsZW50IHRvIGBtb2RlbGAgaW4gdGhpcyBwcm9qZWN0LCBhbmQgYWxsIG1vZGVsIHN0b3JlIGFzIGBvcGVuYXBpL1pNb2RlbF8qLmdvYC4gSW4gZ28sIGBNb2RlbGAgaXMga2luZCBvZiBzdHJ1Y3QsIHN1aXRhYmxlIGludGVyZmFjZSwgZ2V0dGVyL3NldHRlci92YWxpZGF0b3Igd2FzIHByZXBhcmVkLgoKVGhlIG1vZGVsIGlzIGltcG9ydGFudCBjYXVzZSBpdCBhY3QgYXMgcGF0dGVybiBvZiBhcGkgb3V0cHV0LiBSb3V0ZSBoYW5kbGUgY29tcGx5IG91dHB1dCBwYXR0ZXJuIHVzaW5nIHNwZWNpZmljIGBtb2RlbGAuCgojIyMgUm91dGVzCmBSb3V0ZWAgZXF1aXZhbGVudCB0byByZXN0IGFwaSBgcmVxdWVzdCBtZXRob2RgICsgYHBhdGhgLCBleGFtcGxlCiogR2V0IC9hcGkvc2VydmljZTEKKiBQb3N0IC9hcGkvdjEvc2VydmljZTIKKiBQdXQgL2FwaQoqIERlbGV0ZSAvYXBpL2NydWQKCiMjIyBSb3V0ZSBIYW5kbGVzCjEuIGBSb3V0ZSBoYW5kbGVgIGlzIHByb2dyYW1taW5nIGBmdW5jdGlvbmAgbGlrZSBgR2V0U3R1ZGVudHMoKWAgd2hpY2ggaXMgdHJpZ2dlciBieSBgcm91dGVgCjIuIG9wZW5hcGkgZG9jdW1lbnQgYG9wZXJhdGlvbklkYCBkZWNsYXJlIG5hbWUgb2YgYHJvdXRlIGhhbmRsZWAsIGFuZCBnZW5lcmF0b3Igd2lsbCBoZWxwIHlvdSBwcmVwYXJlIGR1bW15IHJvdXRlIGhhbmRsZS4gCgojIyBEZXZlbG9wIFJlYWwgUm91dGUgSGFuZGxlClRvIHByb3ZpZGUgcmVhbCBkYXRhIGluIG1pY3JvLXNlcnZpY2UsIHdlIHBlcmZvcm0gMyBzdGVwIGJlbG93OgoxLiBbVHJhbnNmZXIgUm91dGUgSGFuZGxlIEludG8gTmV3IEZpbGVdKHRyYW5zZmVyLXJvdXRlLWhhbmRsZS1pbnRvLW5ldy1maWxlKQoyLiBbRGVmaW5lIEhhbmRsZSBFeGlzdHMgSW4gRG9jdW1lbnRdKGRlZmluZS1oYW5kbGUtZXhpc3RzLWluLWRvY3VtZW50KQozLiBbQ3JlYXRlIEVudmlyb25tZW50IFZhcmlhYmxlc10oI2NyZWF0ZS1lbnZpcm9ubWVudC12YXJpYWJsZXMpCgojIyMgVHJhbnNmZXIgUm91dGUgSGFuZGxlIEludG8gTmV3IEZpbGUKMS4gQ3JlYXRlIG5ldyBmaWxlIGBvcGVuYXBpL3JvdXRlaGFuZGxlcy5nb2AgKG9yIG90aGVycyBuYW1lIHlvdSBsaWtlKQoyLiBgQ3V0IGFuZCBwYXN0ZWAgc3BlY2lmaWMgZnVuY3Rpb24gZnJvbSBgb3BlbmFwaS9aUm91dGVIYW5kbGUuZ29gIGludG8gYG9wZW5hcGkvcm91dGVoYW5kbGVzLmdvYC4gTGV0J3MgYXNzdW1lIGBnZXRNZW1vcnlJbmZvKGMgKmdpbi5Db250ZXh0KXt9YAogICAgKiByZW1haW4gYGdldE1lbW9yeUluZm8oKWAgaW4gYFpSb3V0ZUhhbmRsZS5nb2Agd2lsbCBjYXVzZSBkdXBsaWNhdGUgZnVuY3Rpb24gYW5kIGNhdXNlIGVycm9yCjMuIEVkaXQgY29udGVudCBvZiBgb3BlbmFwaS9yb3V0ZWhhbmRsZXMuZ29gIHRvIHNlcnZlIHJlYWwgZGF0YToKYGBgZ28KLy8gYXV0byBnZW5lcmF0ZSBieSBnZW5lcmF0b3IKcGFja2FnZSBvcGVuYXBpCgppbXBvcnQgKAoJImZtdCIKCSJydW50aW1lIgoKCSJnaXRodWIuY29tL2dpbi1nb25pYy9naW4iCgkvLyAibmV0L2h0dHAiCikKCgpmdW5jIGdldE1lbW9yeUluZm8oYyAqZ2luLkNvbnRleHQpIHsKCgl2YXIgbSBydW50aW1lLk1lbVN0YXRzCglydW50aW1lLlJlYWRNZW1TdGF0cygmbSkKCS8vIEZvciBpbmZvIG9uIGVhY2gsIHNlZTogaHR0cHM6Ly9nb2xhbmcub3JnL3BrZy9ydW50aW1lLyNNZW1TdGF0cwoJYWxsb2NhdGVkIDo9IGJUb01iKG0uVG90YWxBbGxvYykKCWF2YWlsYWJsZSA6PSBiVG9NYihtLlN5cykKCXBlcmNlbnQgOj0gaW50KChhbGxvY2F0ZWQvYXZhaWxhYmxlKSoxMDApIC8gMTAwCglhbGxvY2F0ZWRzdHIgOj0gZm10LlNwcmludGYoIiV2IE1CIiwgYWxsb2NhdGVkKQoJYXZhaWxhYmxlc3RyIDo9IGZtdC5TcHJpbnRmKCIldiBNQiIsIGF2YWlsYWJsZSkKCXBlcmNlbnRzdHIgOj0gZm10LlNwcmludGYoIiV2IHBlcmNlbnQiLCBwZXJjZW50KQoJYy5IZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qc29uIikKCS8vIAoJLy8gdHlwZSBNb2RlbF9NZW1vcmllc0luZm8gc3RydWN0ewoJLy8gCVBlcmNlbnQgc3RyaW5nIGBqc29uOiJwZXJjZW50IiBiaW5kaW5nOiIiYCAvLwoJLy8gCVRvdGFsIHN0cmluZyBganNvbjoidG90YWwiIGJpbmRpbmc6IiJgIC8vCgkvLyAJVXNlZCBzdHJpbmcgYGpzb246InVzZWQiIGJpbmRpbmc6IiJgIC8vCiAgICAvLyAgVmVyc2lvbiBzdHJpbmcgYGpzb246InZlcnNpb24iYAoJLy8gfQoKCWRhdGEgOj0gTW9kZWxfTWVtb3JpZXNJbmZve30gLy9Nb2RlbF9NZW1vcmllc0luZm8gZGVmaW5lZCBhdCBvcGVuYXBpL1pNb2RlbF9NZW1vcmllc0luZm8uZ28KCWRhdGEuU2V0VG90YWwocGVyY2VudHN0cikKCWRhdGEuU2V0UGVyY2VudChhdmFpbGFibGVzdHIpCglkYXRhLlNldFVzZWQoYWxsb2NhdGVkc3RyKQogICAgZGF0YS5TZXRWZXJzaW9uKCJ2MSIpCgljLkpTT04oMjAwLCBkYXRhKQp9CgpmdW5jIGJUb01iKGIgdWludDY0KSB1aW50NjQgewoJcmV0dXJuIGIgLyAxMDI0IC8gMTAyNAp9CgpgYGAKIyMjIERlZmluZSBIYW5kbGUgRXhpc3RzIEluIERvY3VtZW50CjEuIEVkaXQgdGhlIG9yaWdpbmFsIG9wZW5hcGkgZG9jdW1lbnQsIGFkZCBlbnRyeSBgeC1vcGVyYXRpb25JZC1leGlzdHNgOgpgYGB5YW1sCiMgYm90dG9tIG9mIGZpbGUKeC1vcGVyYXRpb25JZC1leGlzdHM6CiAgZ2V0TWVtb3J5SW5mbzogdHJ1ZQpgYGAKMi4gVHJ5IHJlZ2VuZXJhdGUgdGhlIHNvdXJjZSBjb2RlLCBgZ2V0TWVtb3J5SW5mbygpYCBubyBsb25nZXIgZ2VuZXJhdGUgaW4gYFpSb3V0ZUhhbmRsZS5nb2AKCiMjIyBDcmVhdGUgRW52aXJvbm1lbnQgVmFyaWFibGVzCkxvdCBvZiB0aW1lLCB3ZSB3aXNoIHRvIHVzZSBjb25maWd1cmUgbWljcm9zZXJ2aWNlIGFjY29yZGluZyBkZXBsb3ltZW50IHJlcXVpcmVtZW50LCBzdWNoIGFzOgoxLiBEZWZpbmUgZGF0YWJhc2Ugc2VydmVyIGxvY2F0aW9uIGFuZCBjcmVkZW50aWFscwoyLiBPbi9PZmYgc3BlY2lmaWMgZnVuY3Rpb25zCjMuIERlZmluZSBhcGlrZXkgYW5kIGV0YwoKCjEuIERlZmluZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiBvcGVuYXBpIGRvY3VtZW50IHVzaW5nIGB4LWVudi12YXJzYCBhbmQgcmVnZW5lcmF0ZSB0aGUgc291cmNlIGNvZGUuIApFeGFtcGxlIGluIG9wZW5hcGkgZG9jdW1lbnQ6CmBgYHlhbWwKIyBib3R0b20gb2YgZmlsZQp4LW9wZXJhdGlvbklkLWV4aXN0czoKICBnZXRNZW1vcnlJbmZvOiB0cnVlCngtZW52LXZhcnM6CiAgQVBJVkVSU0lPTjogdjEuMQpgYGAKR2VuZXJhdGVkIGAuZW52LmRlZmF1bHRgIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYmVsb3cgZW50cnkKYGBgZW52CkFQSVZFUlNJT049djEuMQpgYGAKMi4gbG9hZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiByb3V0ZSBoYW5kbGUgdXNpbmcgYGdvZG90ZW52LmxvYWQoKWAgYW5kIGBvcy5HZXRlbnYoIkFQSVZFUlNJT04iKWAuIEV4YW1wbGUgb2YgdXBkYXRlZCBjb2RlOgpgYGBnbwoKcGFja2FnZSBvcGVuYXBpCgppbXBvcnQgKAoJImZtdCIKCSJvcyIKCSJydW50aW1lIgoKCSJnaXRodWIuY29tL2dpbi1nb25pYy9naW4iCgkiZ2l0aHViLmNvbS9qb2hvL2dvZG90ZW52IgoJbG9nICJnaXRodWIuY29tL3NpcnVwc2VuL2xvZ3J1cyIKCS8vICJuZXQvaHR0cCIKKQoKZnVuYyBnZXRNZW1vcnlJbmZvKGMgKmdpbi5Db250ZXh0KSB7CgllcnIgOj0gZ29kb3RlbnYuTG9hZCgpCglpZiBlcnIgIT0gbmlsIHsKCQlsb2cuRmF0YWwoIkVycm9yIGxvYWRpbmcgLmVudiBmaWxlIikKCX0KCXZlcmlvbm5vIDo9IG9zLkdldGVudigiQVBJVkVSU0lPTiIpCgl2YXIgbSBydW50aW1lLk1lbVN0YXRzCglydW50aW1lLlJlYWRNZW1TdGF0cygmbSkKCS8vIEZvciBpbmZvIG9uIGVhY2gsIHNlZTogaHR0cHM6Ly9nb2xhbmcub3JnL3BrZy9ydW50aW1lLyNNZW1TdGF0cwoJYWxsb2NhdGVkIDo9IGJUb01iKG0uVG90YWxBbGxvYykKCWF2YWlsYWJsZSA6PSBiVG9NYihtLlN5cykKCXBlcmNlbnQgOj0gaW50KChhbGxvY2F0ZWQvYXZhaWxhYmxlKSoxMDApIC8gMTAwCglhbGxvY2F0ZWRzdHIgOj0gZm10LlNwcmludGYoIiV2IE1CIiwgYWxsb2NhdGVkKQoJYXZhaWxhYmxlc3RyIDo9IGZtdC5TcHJpbnRmKCIldiBNQiIsIGF2YWlsYWJsZSkKCXBlcmNlbnRzdHIgOj0gZm10LlNwcmludGYoIiV2IHBlcmNlbnQiLCBwZXJjZW50KQoJYy5IZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qc29uIikKCS8vCgkvLyB0eXBlIE1vZGVsX01lbW9yaWVzSW5mbyBzdHJ1Y3R7CgkvLyAJUGVyY2VudCBzdHJpbmcgYGpzb246InBlcmNlbnQiIGJpbmRpbmc6IiJgIC8vCgkvLyAJVG90YWwgc3RyaW5nIGBqc29uOiJ0b3RhbCIgYmluZGluZzoiImAgLy8KCS8vIAlVc2VkIHN0cmluZyBganNvbjoidXNlZCIgYmluZGluZzoiImAgLy8KCS8vIH0KCglkYXRhIDo9IE1vZGVsX01lbW9yaWVzSW5mb3t9IC8vTW9kZWxfTWVtb3JpZXNJbmZvIGRlZmluZWQgYXQgb3BlbmFwaS9aTW9kZWxfTWVtb3JpZXNJbmZvLmdvCglkYXRhLlNldFRvdGFsKHBlcmNlbnRzdHIpCglkYXRhLlNldFBlcmNlbnQoYXZhaWxhYmxlc3RyKQoJZGF0YS5TZXRVc2VkKGFsbG9jYXRlZHN0cikKCWRhdGEuU2V0VmVyc2lvbih2ZXJpb25ubykKCWMuSlNPTigyMDAsIGRhdGEpCn0KCmZ1bmMgYlRvTWIoYiB1aW50NjQpIHVpbnQ2NCB7CglyZXR1cm4gYiAvIDEwMjQgLyAxMDI0Cn0KCmBgYAoKMy4gZGVmaW5lIGVudmlyb25tZW50IHZhcmlhYmxlIHZpYToKICAgICogZWRpdCBgLmVudmAgaW4gbm9uLWRvY2tlciBidWlsZAogICAgKiBlZGl0IGAuZW52LmRvY2tlcmAgaW4gZG9ja2VyIGJ1aWxkCiAgICAqIG9yLCBtb2RpZnkgaXQgaW4gY29tbWFuZCBsaW5lLCBgZXhwb3J0IFhfQVBJX0tleT0xMjM0NWAgCgojIyBCdWlsZCBQcm9qZWN0CldlIHNoYWxsIGJ1aWxkIHRoZSBwcm9qZWN0IHRvIHJ1biB0aGUgbWljcm8tc2VydmljZSwgZm9sbG93IGJlbG93IGluc3RydWN0aW9uLgoKIyMjIFNpbXBsZSBCdWlsZAoxLiBydW4gYmVsb3cgY29tbWFuZDoKYGBgYmFzaAptYWtlCmBgYAoyLiBUbyBydW4gdGhlIHNlcnZpY2U6CkxpbnV4L01hYzoKYGBgYmFzaAouLzx5b3VyLXByb2plY3QtbmFtZT4KYGBgCldpbmRvd3M6IGRvdWJsZSBjbGljayB0aGUgZmlsZW5hbWUgYDx5b3VyLXByb2plY3QtbmFtZT5gCiMjIyBCdWlsZCBGb3IgRGlzdHJpYnV0aW9uCklmIHlvdSB3aXNoIHRvIGJ1aWxkIGJpbmFyeSBmb3Igc3BlY2lmaWMgT1MgYW5kIGRpc3RyaWJ1dGUgbWFudWFsbHkuIEZvbG93IHN0ZXAKMS4gUnVuIGJlbG93IGNvbW1hbmQ6CmBgYGJhc2gKbWFrZSB3aW5kb3dzICNidWlsZCBmb3Igd2luZG93cwptYWtlIGxpbnV4ICNidWlsZCBmb3IgbGludXgKbWFrZSBtYWMgI2J1aWxkIGZvciBtYWMKbWFrZSBtYWMtYXJtICNidWlsZCBmb3IgbWFjIG0xIHR5cGUgcHJvY2Vzc29yCgpgYGAKMi4gRGlzdHJ1YnV0ZSBmaWxlIGluIGBkaXN0L2AsIGFsb25nIHdpdGggc3VpdGFibGUgYC5lbnZgIGZpbGUKCiMjIyBCdWlsZCBGb3IgRG9ja2VyCldlIGNhbiBidWlsZCBhbmQgcnVuIGRvY2tlciBpbWFnZSB2aWEgYmVsb3cgc3RlcDoKMS4gQ29weSBgLmVudi5kZWZhdWx0YCB0byBgLmVudi5kb2NrZXJgLCBhbmQgZGVmaW5lIGFwcHJvcHJpYXRlIGNvbnRlbnQKMi4gcnVuIGNvbW1hbmQ6CmBgYGJhc2gKbWFrZSBkb2NrZXJyZW1vdmUgI3JlbW92ZSBleGlzdGluZyBkb2NrZXIgCm1ha2UgZG9ja2VyICMgY3JlYXRlIGRvY2tlciBpbWFnZSBvbmx5Cm1ha2UgZG9ja2VycnVuICMgY3JlYXRlIGRvY2tlciBjb250YWluZXIKYGBgCm9yIHdlIGNhbiBzaW1wbGlmaWVkIGFzIHNpbmdsZSByb3cgY29tbWFuZDoKYGBgYmFzaAptYWtlIGRvY2tlcnJlbW92ZTsgbWFrZSBkb2NrZXIgJiYgbWFrZSBkb2NrZXJydW4KYGBgCjMuIFdlIGNhbiBjaGFuZ2UgRG9ja2VyIGltYWdlIGJ1aWxkIGZyb20gZGlmZmVyZW50IHNvdXJjZSBieSBlZGl0IGBEb2NrZXJmaWxlYC4gTGlrZSByZXBsYWNlIGBhbHBpbmVgIHRvIGB1YnVudHVgCjQuIFdlIGNhbiBjaGFuZ2UgZG9ja2VyIGltYWdlL2NvbnRhaW5lci9uZXR3b3JrIGJ5IGVkaXQgYE1ha2VmaWxlYAoKIyMgVW5pdCBUZXN0CkdlbmVyYXRvciBoZWxwIHlvdSBwcmVwYXJlIHJlYXNvbmFibGUgc3RydWN0dXJlIGZvciB1bml0IHRlc3QsIGhvd2V2ZXIgeW91IG5lZWQgdG8gY29weSBjb250ZW50IGludG8gc3VpdGFibGUgZmlsZSB0byBwcmV2ZW50IGVmZm9ydCBvdmVyd3JpdHRlbiB3aGVuIHJlZ2VuZXJhdGUgY29kZS4KWW91IG5lZWQgdG8gaW5zdGFsbCBgZ3JjYCBwYWNrYWdlIGZvciB1bml0IHRlc3QKaHR0cHM6Ly9qYWtlaG9sbXF1aXN0Lm1lZGl1bS5jb20vYWRkLXNvbWUtZnVuLXRvLXlvdXItY2xpLXdpdGgtZ3JjLWVhODY4ZGY5ODViNgoKCiMjIyBEZWZpbmUgUmVhbCBUZXN0CjEuIGV4cGFuZCBmb2xkZXIgLi90ZXN0LCBvcGVuIGFueSBmaWxlIChhc3N1bWUgWkdldF9NZW1vcnlfdGVzdC5nbykKMi4gc2Nyb2xsIGRvd24gYW5kIGZvbGxvdyBjb21tZW50LCBjb3B5IGNvbnRlbnQgaW50byB0ZXN0L0dldF9NZW1vcnkuZ28gKEZpbGUgbmFtZSBzaGFsbCBmb2xsb3cgY29tbWVudCkKYGBgZ28KLy8gY29weSBhbmQgbW9kaWZ5IGJlbG93IGNvbnRlbnQgYW5kIHB1dCBpbnRvIG5ldyBmaWxlIEdldF9NZW1vcnkuZ28gKGluIHRoaXMgdGVzdCBmb2xkZXIpCi8qCnBhY2thZ2UgdGVzdAppbXBvcnQgKAoJImlvIgouLi4KYGBgCjMuIGFmdGVyIHN0ZXAgMiwgZXJyb3IgaW4gWkdldF9NZW1vcnlfdGVzdC5nbyBzaG91bGQgZGlzYXBwZWFyCjQuIE1vZGlmeSBgR2V0X01lbW9yeS5nb2AgaWYgbmVjY2Vzc2FyeSB0byBzZXJ2ZSByZWFsIGNvbnRlbnQKNS4gcmVwZWF0IHNhbWUgc3RlcCAxLTQgZm9yIG90aGVycyBmaWxlIHVudGlsIGFsbCBlcnJvciBkaXNhcHBlYXI6CiAgICAqIGlmIHJlcXVlc3QgYm9keSBpcyByZXF1aXJlZCwgYEZ1bmN0aW9uTmFtZV9SZXF1ZXN0Qm9keSgpYCB3aWxsIGZpbGwgaW4gc2FtcGxlIGRhdGEgd2hpY2ggZGVmaW5lZCBpbiBvcGVuYXBpIGRvY3VtZW50CiAgICAqIFlvdSBjYW4gY2hhbmdlIHdob2xlIHN0cnVjdHVyZSBvZiB1bml0IHRlc3QgYXMgbG9uZyBhcyB0aGUgb3JpZ2luYWwgZnVuY3Rpb24gbmFtZSByZW1haW4KICAgICogRG9uJ3QgY2hhbmdlIGFueSBmaWxlIHN0YXJ0IHdpdGggWiouZ28sIGNhdXNlIGl0IHdpbGwgb3ZlcndyaXR0ZW4gYnkgZ2VuZXJhdG9yCgojIyMgRXhlY3V0ZSBVbml0IFRlc3QKRW5zdXJlIG1pY3Jvc2VydmljZSBpcyBhY3RpdmF0ZWQsIHJ1biBiZWxvdyBjb21tYW5kIGFuZCBzZWUgdGhlIHJlc3VsdDoKYGBgYmFzaAptYWtlIGFwaXRlc3QKYGBgCgojIyBTZWN1cmUgTWljcm9zZXJ2aWNlCldlIGNhbiBzZWN1cmUgcmVzdGFwaSB2aWEgZGVmaW5lIHNlY3J1aXR5U2NoZW1lIGluIG9wZW5hcGkgZG9jdW1lbnQuIAoKIyMjIFNlY3VyZSBXaXRoIEFwaWtleQoxLiBBZGQgc2VjdXJpdHkgU2NoZW1lcy4gQmVsb3cgaXMgYXBpS2V5IGV4YW1wbGU6CmBgYHlhbWwKY29tcG9uZW50czoKICBzZWN1cml0eVNjaGVtZXM6CiAgICBCYXNpY0FwaUtleToKICAgICAgdHlwZTogYXBpS2V5CiAgICAgIGluOiBoZWFkZXIKICAgICAgbmFtZTogWC1BcGktS2V5ICNlbnZpcm9ubWVudCB2YXJpYWJsZSBYX0FwaV9LZXkgd2lsbCBwcmVwYXJlIGF1dG9tYXRpY2FsbHkKYGBgCjIuIERlZmluZSB3aGljaCBhcGkgdXNlIGl0OgpgYGB5YW1sCnBhdGhzOgogIC9hcGkxOgogICAgZ2V0OgogICAgICBzdW1tYXJ5OiB3ZWxjb21lCiAgICAgIGRlc2NyaXB0aW9uOiBzaG93IG1zZyB1bmRlZmluZSByZXNvdXJjZQogICAgICBvcGVyYXRpb25JZDogIndlbGNvbWUiCiAgICAgIHNlY3VyaXR5OgogICAgICAgIC0gQmFzaWNBcGlLZXk6IFtdICAjIEdldCAvYXBpMSByZXF1aXJlIFgtQXBpLUtleSBkZWZpbmVkIGluIGhlYWRlcgpgYGAKCjMuIFJlLWdlbmVyYXRlIHRoZSBzb3VyY2UgY29kZToKICAgICogYFhfQXBpX0tleWAgd2lsbCBhdXRvbWF0aWNhbGx5IHByZXBhcmUgaW4gYC5lbnYuZGVmYXVsdGAKICAgICogYG9wZW5hcGkvWlNlY3VyaXR5X0Jhc2ljQXBpS2V5eS5nb2AgZ2VuZXJhdGVkCiAgICAqIHVuaXQgdGVzdCB0ZW1wbGF0ZSB1c2UgZW52IHZhciBYX0FwaV9LZXkgaW4gaGVhZGVyCjQuIFVwZGF0ZSBgLmVudmAgYW5kIGAuZW52LmRvY2tlcmAgaWYgYm90aCBmaWxlIGV4aXN0cywgYW5kIHJlc3RhcnQgdGhlIG1pY3JvLXNlcnZpY2UKNS4gVHJ5IHRoZSBgR2V0IC9hcGlgIGFnYWluIHdpdGggaGVhZGVyIGBYLUFwaS1LZXlgIGFzOgpgYGBiYXNoCmh0dHAgZ2V0IGxvY2FsaG9zdDo8cG9ydG5vPi9hcGkxIFgtQXBpLUtleTo8eW91LWtleS1jb2RlPgpgYGAKCiMgVG9kbwoxLiBBZGQgYHgtZ2VuZXJhdG9yLXNldHRpbmdgIHRvIGRpcmVjdCBzZXQgcHJvamVjdCBuYW1lLCBwb3J0IG51bWJlciBhbmQgZXRjIHN1aXRhYmxlIGNvbmZpZ3VyYXRpb24KMi4gcmVuYW1lIHRoaXMgcHJvamVjdCB0byBwcmV2ZW50IGNyYXNoIG5hbWUgd2l0aCBvZmZpY2lhbCBvcGVuYXBpLWdlbmVyYXRvcgozLiBzdXBwb3J0IG1vcmUgY29tcG9uZW50IHR5cGUKNC4gY2xpZW50IGdlbmVyYXRvcnMgZm9yIGRpZmZlcmVudCBraW5kIG9mIGxhbmd1YWdlcwo1LiBhZGQgc29tZSBjb21tb24gdGVtcGxhdGUgZm9yCiAgICogY3J1ZCBmb3IgZGlmZmVyZW50IGtpbmQgb2YgZGF0YWJhc2UKICAgKiBtZXNzYWdpbmcgdGVtcGxhdGUgZm9yIHNtcywgZW1haWwsIHB1c2ggbm90aWZpY2F0aW9ucwo2LiBvcGVuYXBpIDMuMQo3LiBtb3JlIHNlY3VyaXR5c2NoZW1lcwo4LiBtb3JlIGNvbXBsZXRlIGRhdGEgdmFsaWRhdGlvbgoK readmeEtag: '"4edb2a5baffc244679f5881a9fb93723099c2f96"' readmeLastModified: Fri, 09 Dec 2022 13:48:50 GMT repositoryId: 537831519 description: Openapi v3 microservices generator created: '2022-09-17T14:21:57Z' updated: '2024-01-12T18:38:11Z' language: Go archived: false stars: 8 watchers: 2 forks: 1 owner: SIMITGROUP logo: https://avatars.githubusercontent.com/u/5270141?v=4 license: MIT repoEtag: '"482b5760c8b092bd59bccec84123be5c1ac5f820b8ca92bb0df30c035c7522f9"' repoLastModified: Fri, 12 Jan 2024 18:38:11 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/scalar/sandbox v3: true id: 638257589df790fa77577129e5bdb83d repositoryMetadata: base64Readme: >- IyBTY2FsYXIgU2FuZGJveAoKQW4gZWFzeSB3YXkgdG8gc2hhcmUgT3BlbkFQSSBmaWxlcy4KCiMjIERldmVsb3BtZW50CgpgYGAKcG5wbSBpbnN0YWxsCnBucG0gZGI6bWlncmF0ZQpwbnBtIGRldgpgYGAKCiMjIFVwZGF0ZSB0aGUgc2NoZW1hCgoxLiBDaGFuZ2UgdGhlIHNjaGVtYTogZGIvc2NoZW1hLnRzCjIuIENyZWF0ZSBhIG1pZ3JhdGlvbjogYHBucG0gZGI6Z2VuZXJhdGVgCjMuIEFwcGx5IG1pZ3JhdGlvbnM6IGBwbnBtIGRiOm1pZ3JhdGVgCg== readmeEtag: '"1f42178be3a3b42e3811a2768270fb78005b13f2"' readmeLastModified: Fri, 16 Aug 2024 15:14:45 GMT repositoryId: 740729887 description: The easiest way to share OpenAPI files created: '2024-01-09T00:11:59Z' updated: '2024-09-03T15:52:05Z' language: Vue archived: false stars: 8 watchers: 2 forks: 4 owner: scalar logo: https://avatars.githubusercontent.com/u/301879?v=4 repoEtag: '"0f10a28e7dbdf690b8fce57ff5837f990fc02c628f3bd6116354f2d6e9459381"' repoLastModified: Tue, 03 Sep 2024 15:52:05 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/restful-ma/rest-ruler v3: true id: b948369127981444200364f6a085ca8d repositoryMetadata: base64Readme: >- IyBSRVNUUnVsZXIKClRoZSBSRVNUUnVsZXIgQ0xJIGlzIGEgdG9vbCB0aGF0IGNhbiBldmFsdWF0ZSBSRVNUZnVsIEFQSXMgb24gdGhlIGJhc2lzIG9mIGRlc2lnbiBydWxlIHZpb2xhdGlvbnMuIFRoZXNlIHZpb2xhdGlvbnMgYXJlIGJhc2VkIG9uIHRoZSBkZXNpZ24gcnVsZXMgZnJvbSBNYXJrIE1hc3PDqSdzIGJvb2sgW1JFU1QgQVBJIERlc2lnbiBSdWxlYm9va10oaHR0cHM6Ly93d3cub3JlaWxseS5jb20vbGlicmFyeS92aWV3L3Jlc3QtYXBpLWRlc2lnbi85NzgxNDQ5MzE3OTA0LykuCkN1cnJlbnRseSwgUkVTVFJ1bGVyIGNhbiBwYXJzZSB0aGUgZm9sbG93aW5nIFdlYiBBUEkgZGVzY3JpcHRpb24gbGFuZ3VhZ2VzOgoKKiBbT3BlbkFQSSB2Ml0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vdjIvKQoqIFtPcGVuQVBJIHYzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikKClJFU1RSdWxlciBoYXMgYmVlbiBkZXZlbG9wZWQgaW4gdGhlIFtFbXBpcmljYWwgU29mdHdhcmUgRW5naW5lZXJpbmcgR3JvdXBdKGh0dHBzOi8vd3d3LmlzdGUudW5pLXN0dXR0Z2FydC5kZS9lc2UpIGF0IHRoZSBVbml2ZXJzaXR5IG9mIFN0dXR0Z2FydCwgR2VybWFueSwgYXMgYSByZXNlYXJjaCBwcm90b3R5cGUgd3JpdHRlbiBpbiBKYXZhICh2ZXJzaW9uID49MTggbmVlZGVkKS4KSXQgaXMgYSBjb21tYW5kLWxpbmUgdG9vbCB0aGF0IHRha2VzIHRoZSBwYXRoIG9yIFVSTCB0byBhbiBPcGVuQVBJIGRlZmluaXRpb24gZmlsZSBhcyBpbnB1dCBhbmQgZGlzcGxheXMgYSBsaXN0IG9mIGRlc2lnbiBydWxlIHZpb2xhdGlvbnMgYXMgb3V0cHV0LgpPcHRpb25hbGx5LCBhIE1hcmtkb3duIHJlcG9ydCBmaWxlIGNhbiBiZSBnZW5lcmF0ZWQgd2l0aCBhZGRpdGlvbmFsIGRldGFpbHMgYW5kIGltcHJvdmVtZW50IHN1Z2dlc3Rpb25zLgoKIyMgRGVzaWduIFJ1bGVzCgpEZXNjcmlwdGlvbnMgb2YgdGhlIGltcGxlbWVudGVkIGRlc2lnbiBydWxlcyBjYW4gYmUgZm91bmQgaW4gb3VyIFtydWxlIGRvY3VtZW50YXRpb25dKC4vZG9jcy9ydWxlcy9SRUFETUUubWQpLgoKIyMgUHJvamVjdCBBcmNoaXRlY3R1cmUKCkEgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIHByb2plY3QgYW5kIGltcGxlbWVudGVkIGNvbXBvbmVudHMgY2FuIGJlIGZvdW5kIGluIHRoZSBbYXJjaGl0ZWN0dXJlIGRvY3VtZW50YXRpb25dKC4vZG9jcy9hcmNoaXRlY3R1cmUubWQpLgoKIyMgRXZhbHVhdGlvbgoKWW91IHdpbGwgZmluZCB0aGUgYXJ0aWZhY3RzIHJlbGF0ZWQgdG8gdGhlIGVtcGlyaWNhbCBldmFsdWF0aW9uIG9mIFJFU1RSdWxlciBpbiBbdGhpcyByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vcmVzdGZ1bC1tYS9yZXN0LXJ1bGVyLWV2YWx1YXRpb24pLgoKIyMgR2VuZXJhbCBVc2FnZSBJbnN0cnVjdGlvbnMKCkZvciBhIHF1aWNrIHN0YXJ0LCB5b3UgY2FuIHNpbXBseSBkb3dubG9hZCBgcmVzdC1ydWxlci5qYXJgIGZvciBhIGNlcnRhaW4gW3JlbGVhc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZXN0ZnVsLW1hL3Jlc3QtcnVsZXIvcmVsZWFzZXMpLgpUaGVuIGV4ZWN1dGUgdGhlc2UgY29tbWFuZHMgaW4gdGhlIHNhbWUgZm9sZGVyIGFzIHRoZSBKQVIgZmlsZSAoSmF2YSB2ZXJzaW9uID49MTggbmVlZGVkKToKCmBgYGJhc2gKIyBleGVjdXRlIEpBUiBmaWxlIHRvIGRpc3BsYXkgQ0xJIHBhcmFtZXRlcnMKamF2YSAtamFyIHJlc3QtcnVsZXIuamFyIC1oCgojIHJ1biB3aXRoIGFuIGV4YW1wbGUgQVBJIGZyb20gaHR0cHM6Ly9hcGlzLmd1cnUKamF2YSAtamFyIHJlc3QtcnVsZXIuamFyIC1wIGh0dHBzOi8vYXBpLmFwaXMuZ3VydS92Mi9zcGVjcy9jaXJjbGVjaS5jb20vdjEvb3BlbmFwaS55YW1sCmBgYAoKSWYgeW91IHdhbnQgdG8gZG93bmxvYWQgb3IgY2xvbmUgdGhlIGZ1bGwgcmVwb3NpdG9yeSwgcnVuIHRoZXNlIGNvbW1hbmRzIGluIHRoZSByb290IGZvbGRlciBvZiB0aGUgcmVwb3NpdG9yeSB0byBidWlsZCBhbmQgc3RhcnQgdGhlIHRvb2wgKEphdmEgdmVyc2lvbiA+PTE4IG5lZWRlZCk6CgpgYGBiYXNoCiMgY3JlYXRlIEpBUiBmaWxlCi4vZ3JhZGxldyBhc3NlbWJsZQojIGV4ZWN1dGUgSkFSIGZpbGUgdG8gZGlzcGxheSBDTEkgcGFyYW1ldGVycwpqYXZhIC1qYXIgYnVpbGQvbGlicy9yZXN0LXJ1bGVyLmphciAtaAojIHJ1biB0ZXN0cwouL2dyYWRsZXcgdGVzdAojIHRlc3QgY292ZXJhZ2UgKG91dHB1dDogLi9idWlsZC9yZXBvcnRzL2phY29jby90ZXN0L2h0bWwvaW5kZXguaHRtbCkKLi9ncmFkbGV3IGphY29jb1Rlc3RSZXBvcnQKYGBgCgojIyBVc2FnZSBFeGFtcGxlCgpgYGBiYXNoCiMgcnVuIHdpdGggYW4gZXhhbXBsZSBBUEkgZnJvbSBodHRwczovL2FwaXMuZ3VydQpqYXZhIC1qYXIgYnVpbGQvbGlicy9yZXN0LXJ1bGVyLmphciAtcCBodHRwczovL2FwaS5hcGlzLmd1cnUvdjIvc3BlY3MvY2lyY2xlY2kuY29tL3YxL29wZW5hcGkueWFtbApgYGAKClRoaXMgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBvdXRwdXQ6CgpgYGBjbGkKamF2YSAtamFyIGJ1aWxkL2xpYnMvcmVzdC1ydWxlci5qYXIgLXAgaHR0cHM6Ly9hcGkuYXBpcy5ndXJ1L3YyL3NwZWNzL2NpcmNsZWNpLmNvbS92MS9vcGVuYXBpLnlhbWwKCi0tLS0tLS0tLS0tLS0tLS1TVEFSVCBBTkFMWVNJUy0tLS0tLS0tLS0tLS0tLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkJlZ2luIHdpdGggdGhlIGFuYWx5c2lzIG9mIHRoZSBmaWxlIGZyb206IGh0dHBzOi8vYXBpLmFwaXMuZ3VydS92Mi9zcGVjcy9jaXJjbGVjaS5jb20vdjEvb3BlbmFwaS55YW1sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkF1ZyAxMSwgMjAyMyAzOjQ1OjAxIFBNIGNsaS5hbmFseXplci5SZXN0QW5hbHl6ZXIgcnVuUnVsZVZpb2xhdGlvbkNoZWNrcwpJTkZPOiBSdWxlIDEgb2YgMTUgaXMgbm93IGNoZWNrZWQ6CkNSVUQgZnVuY3Rpb24gbmFtZXMgc2hvdWxkIG5vdCBiZSB1c2VkIGluIFVSSXMKWz09PT09PT09PT1dIDEwMCUKQXVnIDExLCAyMDIzIDM6NDU6MDEgUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgMiBvZiAxNSBpcyBub3cgY2hlY2tlZDoKR0VUIG11c3QgYmUgdXNlZCB0byByZXRyaWV2ZSBhIHJlcHJlc2VudGF0aW9uIG9mIGEgcmVzb3VyY2UKWz09PT09PT09PT1dIDEwMCUKQXVnIDExLCAyMDIzIDM6NDU6MDEgUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgMyBvZiAxNSBpcyBub3cgY2hlY2tlZDoKRm9yd2FyZCBzbGFzaCBzZXBhcmF0b3IgKC8pIG11c3QgYmUgdXNlZCB0byBpbmRpY2F0ZSBhIGhpZXJhcmNoaWNhbCByZWxhdGlvbnNoaXAKWz09PT09PT09PT1dIDEwMCUKQXVnIDExLCAyMDIzIDM6NDU6MDEgUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgNCBvZiAxNSBpcyBub3cgY2hlY2tlZDoKQSB2ZXJiIG9yIHZlcmIgcGhyYXNlIHNob3VsZCBiZSB1c2VkIGZvciBjb250cm9sbGVyIG5hbWVzCls9PT09PT09PT09XSAxMDAlCkF1ZyAxMSwgMjAyMyAzOjQ1OjAzIFBNIGNsaS5hbmFseXplci5SZXN0QW5hbHl6ZXIgcnVuUnVsZVZpb2xhdGlvbkNoZWNrcwpJTkZPOiBSdWxlIDUgb2YgMTUgaXMgbm93IGNoZWNrZWQ6Ckh5cGhlbnMgKC0pIHNob3VsZCBiZSB1c2VkIHRvIGltcHJvdmUgdGhlIHJlYWRhYmlsaXR5IG9mIFVSSXMKWz09PT09PT09PT1dIDEwMCUKQXVnIDExLCAyMDIzIDM6NDU6MDQgUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgNiBvZiAxNSBpcyBub3cgY2hlY2tlZDoKRmlsZSBleHRlbnNpb25zIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gVVJJcwpbPT09PT09PT09PV0gMTAwJQpBdWcgMTEsIDIwMjMgMzo0NTowNCBQTSBjbGkuYW5hbHl6ZXIuUmVzdEFuYWx5emVyIHJ1blJ1bGVWaW9sYXRpb25DaGVja3MKSU5GTzogUnVsZSA3IG9mIDE1IGlzIG5vdyBjaGVja2VkOgpHRVQgYW5kIFBPU1QgbXVzdCBub3QgYmUgdXNlZCB0byB0dW5uZWwgb3RoZXIgcmVxdWVzdCBtZXRob2RzCls9PT09PT09PT09XSAxMDAlCkF1ZyAxMSwgMjAyMyAzOjQ1OjA0IFBNIGNsaS5hbmFseXplci5SZXN0QW5hbHl6ZXIgcnVuUnVsZVZpb2xhdGlvbkNoZWNrcwpJTkZPOiBSdWxlIDggb2YgMTUgaXMgbm93IGNoZWNrZWQ6CkEgc2luZ3VsYXIgbm91biBzaG91bGQgYmUgdXNlZCBmb3IgZG9jdW1lbnQgbmFtZXMKWz09PT09PT09PT1dIDEwMCUKQXVnIDExLCAyMDIzIDM6NDU6MDggUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgOSBvZiAxNSBpcyBub3cgY2hlY2tlZDoKRGVzY3JpcHRpb24gb2YgcmVxdWVzdCBzaG91bGQgbWF0Y2ggd2l0aCB0aGUgdHlwZSBvZiB0aGUgcmVxdWVzdC4KQXVnIDExLCAyMDIzIDM6NDU6MDggUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgMTAgb2YgMTUgaXMgbm93IGNoZWNrZWQ6CjQwMSAoIlVuYXV0aG9yaXplZCIpIG11c3QgYmUgdXNlZCB3aGVuIHRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBjbGllbnQncyBjcmVkZW50aWFscwpbPT09PT09PT09PV0gMTAwJQpBdWcgMTEsIDIwMjMgMzo0NTowOCBQTSBjbGkuYW5hbHl6ZXIuUmVzdEFuYWx5emVyIHJ1blJ1bGVWaW9sYXRpb25DaGVja3MKSU5GTzogUnVsZSAxMSBvZiAxNSBpcyBub3cgY2hlY2tlZDoKVW5kZXJzY29yZXMgKF8pIHNob3VsZCBub3QgYmUgdXNlZCBpbiBVUkkKWz09PT09PT09PT1dIDEwMCUKQXVnIDExLCAyMDIzIDM6NDU6MDggUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgMTIgb2YgMTUgaXMgbm93IGNoZWNrZWQ6CkNvbnRlbnQtVHlwZSBtdXN0IGJlIHVzZWQKWz09PT09PT09PT1dIDEwMCUKQXVnIDExLCAyMDIzIDM6NDU6MDggUE0gY2xpLmFuYWx5emVyLlJlc3RBbmFseXplciBydW5SdWxlVmlvbGF0aW9uQ2hlY2tzCklORk86IFJ1bGUgMTMgb2YgMTUgaXMgbm93IGNoZWNrZWQ6Ckxvd2VyY2FzZSBsZXR0ZXJzIHNob3VsZCBiZSBwcmVmZXJyZWQgaW4gVVJJIHBhdGhzCls9PT09PT09PT09XSAxMDAlCkF1ZyAxMSwgMjAyMyAzOjQ1OjA4IFBNIGNsaS5hbmFseXplci5SZXN0QW5hbHl6ZXIgcnVuUnVsZVZpb2xhdGlvbkNoZWNrcwpJTkZPOiBSdWxlIDE0IG9mIDE1IGlzIG5vdyBjaGVja2VkOgpBIHRyYWlsaW5nIGZvcndhcmQgc2xhc2ggKC8pIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gVVJJcwpbPT09PT09PT09PV0gMTAwJQpBdWcgMTEsIDIwMjMgMzo0NTowOCBQTSBjbGkuYW5hbHl6ZXIuUmVzdEFuYWx5emVyIHJ1blJ1bGVWaW9sYXRpb25DaGVja3MKSU5GTzogUnVsZSAxNSBvZiAxNSBpcyBub3cgY2hlY2tlZDoKQSBwbHVyYWwgbm91biBzaG91bGQgYmUgdXNlZCBmb3IgY29sbGVjdGlvbiBvciBzdG9yZSBuYW1lcwpbPT09PT09PT09PV0gMTAwJQpSRVNUIEFQSSBTcGVjaWZpY2F0aW9uIFJlcG9ydAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp8IExpbmUgTm8uIHwgTGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSdWxlIFZpb2xhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IDI3ICAgICAgIHwgL21lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDM4ICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDM4ICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDM4ICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDgwICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vYnVpbGQtY2FjaGUgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDgwICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vYnVpbGQtY2FjaGUgICAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDgwICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vYnVpbGQtY2FjaGUgICAgICAgICAgICAgICAgfCBBIHZlcmIgb3IgdmVyYiBwaHJhc2Ugc2hvdWxkIGJlIHVzZWQgZm9yIGNvbnRyb2xsZXIgbmFtZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDk3ICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vY2hlY2tvdXQta2V5ICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDk3ICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vY2hlY2tvdXQta2V5ICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDk3ICAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vY2hlY2tvdXQta2V5ICAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDEyOCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vY2hlY2tvdXQta2V5L3tmaW5nZXJwcmludH0gfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDEyOCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vY2hlY2tvdXQta2V5L3tmaW5nZXJwcmludH0gfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDEyOCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vY2hlY2tvdXQta2V5L3tmaW5nZXJwcmludH0gfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDE1NCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vZW52dmFyICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDE1NCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vZW52dmFyICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDE1NCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vZW52dmFyICAgICAgICAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDE1NCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vZW52dmFyICAgICAgICAgICAgICAgICAgICAgfCBIeXBoZW5zICgtKSBzaG91bGQgYmUgdXNlZCB0byBpbXByb3ZlIHRoZSByZWFkYWJpbGl0eSBvZiBVUklzICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDE3MCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vZW52dmFyL3tuYW1lfSAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDE3MCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vZW52dmFyL3tuYW1lfSAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDE3MCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vZW52dmFyL3tuYW1lfSAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDE5NyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vc3NoLWtleSAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDE5NyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vc3NoLWtleSAgICAgICAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDIzNyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vdHJlZS97YnJhbmNofSAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDIzNyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0vdHJlZS97YnJhbmNofSAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDI3MiAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0gICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDI3MiAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0gICAgICAgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDI4OCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vYXJ0aWZhY3RzICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDI4OCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vYXJ0aWZhY3RzICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDMwMyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vY2FuY2VsICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDMwMyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vY2FuY2VsICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDMwMyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vY2FuY2VsICAgICAgICAgfCBEZXNjcmlwdGlvbiBvZiByZXF1ZXN0IHNob3VsZCBtYXRjaCB3aXRoIHRoZSB0eXBlIG9mIHRoZSByZXF1ZXN0LiAgICAgICAgICAgICAgICAgICAgICAgfAp8IDMxOCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vcmV0cnkgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDMxOCAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vcmV0cnkgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDMzMyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vdGVzdHMgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDMzMyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vdGVzdHMgICAgICAgICAgfCBBIHBsdXJhbCBub3VuIHNob3VsZCBiZSB1c2VkIGZvciBjb2xsZWN0aW9uIG9yIHN0b3JlIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDMzMyAgICAgIHwgL3Byb2plY3Qve3VzZXJuYW1lfS97cHJvamVjdH0ve2J1aWxkX251bX0vdGVzdHMgICAgICAgICAgfCBEZXNjcmlwdGlvbiBvZiByZXF1ZXN0IHNob3VsZCBtYXRjaCB3aXRoIHRoZSB0eXBlIG9mIHRoZSByZXF1ZXN0LiAgICAgICAgICAgICAgICAgICAgICAgfAp8IDM1MCAgICAgIHwgL3Byb2plY3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDM2MiAgICAgIHwgL3JlY2VudC1idWlsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDM3NiAgICAgIHwgL3VzZXIvaGVyb2t1LWtleSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MDEgKCJVbmF1dGhvcml6ZWQiKSBtdXN0IGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgY2xpZW50J3MgY3JlZGVudGlhbHMgfAp8IDM3NiAgICAgIHwgL3VzZXIvaGVyb2t1LWtleSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBIeXBoZW5zICgtKSBzaG91bGQgYmUgdXNlZCB0byBpbXByb3ZlIHRoZSByZWFkYWJpbGl0eSBvZiBVUklzICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJbiB0b3RhbCA0MCBydWxlIHZpb2xhdGlvbnMgd2VyZSBmb3VuZApgYGAKCiMjIENvbW1hbmQgTGluZSBPcHRpb25zCnwgT3B0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVxdWlyZWQgfAp8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IDotLS0tLS0tIHwKfCBgLXAgJFVSSV9QQVRIYCw8YnI+YC0tcGF0aCAkVVJJX1BBVEhgICAgICAgICB8IExvY2FsIHBhdGggb3IgcHVibGljIFVSTCB0byBPcGVuQVBJIGRlZmluaXRpb24gKDIuMCBvciBoaWdoZXI7IEpTT04gb3IgWUFNTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBZRVMgICAgICB8CnwgYC1lYCw8YnI+YC0tZXhwZXJ0TW9kZWAgICAgICAgICAgICAgICAgICAgICAgfCBJbnRlcmFjdGl2ZWx5IHNlbGVjdCB0aGUgcnVsZXMgZm9yIHRoZSBhbmFseXNpcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTk8gICAgICAgfAp8IGAtcmAsPGJyPmAtLXJlcG9ydGAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR2VuZXJhdGUgYSBNYXJrZG93biByZXBvcnQgZmlsZSB3aXRoIHRoZSBhbmFseXNpcyByZXN1bHRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5PKiAgICAgIHwKfCBgLXJuICRGSUxFTkFNRWAsPGJyPmAtLXJlcG9ydE5hbWUgJEZJTEVOQU1FYCB8IFNwZWNpZnkgYSBjdXN0b20gZmlsZW5hbWUgZm9yIHRoZSBNYXJrZG93biByZXBvcnQuIElmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aGUgYWJvdmUgb3B0aW9uIGZvciBvdXRwdXQgaXMgbm90IG5lZWRlZC4gfCBOTyogICAgICB8CgoqSWYgbm8gYWRkaXRpb25hbCBvdXRwdXQgd2FzIHNwZWNpZmllZCwgdGhlIHJlc3VsdHMgd2lsbCBvbmx5IGJlIHByaW50ZWQgdG8gdGhlIGNvbnNvbGUuCgpgYGBiYXNoCiMgUnVuIHdpdGggbG9jYWwgZmlsZSBhbmQgbm8gb3V0cHV0IGZpbGUKamF2YSAtamFyIGJ1aWxkL2xpYnMvcmVzdC1ydWxlci5qYXIgLXAgcGF0aC90by9vcGVuYXBpL2RlZmluaXRvbi5qc29uCgojIFJ1biB3aXRoIHB1YmxpYyBVUkwgYW5kIG5vIG91dHB1dCBmaWxlCmphdmEgLWphciBidWlsZC9saWJzL3Jlc3QtcnVsZXIuamFyIC1wIGh0dHBzOi8vd3d3LmN1c3RvbS5kb21haW4uY29tL3BhdGgvdG8vb3BlbmFwaS1kZWZpbml0b24ueWFtbAoKIyBSdW4gd2l0aCBjdXN0b20gZmlsZW5hbWUgZm9yIE1hcmtkb3duIHJlcG9ydApqYXZhIC1qYXIgYnVpbGQvbGlicy9yZXN0LXJ1bGVyLmphciAtcCBwYXRoL3RvL29wZW5hcGkvZGVmaW5pdG9uLnlhbWwgLXJuIGN1c3RvbS1maWxlLW5hbWUKCiMgUnVuIHdpdGggZ2VuZXJhdGVkIGZpbGVuYW1lIGZvciBNYXJrZG93biByZXBvcnQKamF2YSAtamFyIGJ1aWxkL2xpYnMvcmVzdC1ydWxlci5qYXIgLXAgcGF0aC90by9vcGVuYXBpL2RlZmluaXRvbi55YW1sIC1yCgojIFJ1biBpbiBleHBlcnQgbW9kZQpqYXZhIC1qYXIgYnVpbGQvbGlicy9yZXN0LXJ1bGVyLmphciAtcCBwYXRoL3RvL29wZW5hcGkvZGVmaW5pdG9uLmpzb24gLWUKYGBgCg== readmeEtag: '"98b3fab0c1b8341b37b2ef0515f5353096d78941"' readmeLastModified: Thu, 14 Mar 2024 13:17:12 GMT repositoryId: 490623497 description: >- The RESTRuler is a tool that evaluates OpenAPI definitions (version>=2.0) using design rule violations. created: '2022-05-10T09:13:14Z' updated: '2024-06-07T09:37:06Z' language: Java archived: false stars: 8 watchers: 3 forks: 2 owner: restful-ma logo: https://avatars.githubusercontent.com/u/57215045?v=4 license: Apache-2.0 repoEtag: '"dfeb13e7d4304879ba26428c7dbdd7a80b2d57c358ce5107d1510f57e29fef22"' repoLastModified: Fri, 07 Jun 2024 09:37:06 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mchangrh/sb-openapi v3: true repositoryMetadata: base64Readme: >- IyBTcG9uc29yQmxvY2sgQVBJIERvY3VtZW50YXRpb24gaW4gT3BlbkFQSQoKQVBJIEZvbGxvd3MgW0NDIEJZLU5DLVNBIDQuMF0oaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC8pIGFzIHBlciBbR2l0SHViIFdpa2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9hamF5eXkvU3BvbnNvckJsb2NrL3dpa2kvRGF0YWJhc2UtYW5kLUFQSS1MaWNlbnNlKS4KCkRvY3VtZW50YXRpb24gaW4gTWVkaWFXaWtpIGZvcm0gY2FuIGJlIGZvdW5kIFtvbiB0aGUgU0Igd2lraV0oaHR0cHM6Ly93aWtpLnNwb25zb3IuYWpheS5hcHAvaW5kZXgucGhwL0FQSV9Eb2NzKQoKWW91IGNhbiBzZWUgaG93IHVwIHRvIGRhdGUgdGhlIGRvY3VtZW50YXRpb24gaXMgYnkgY2hlY2tpbmcgdGhlIFtzdXBwb3J0IG1hdHJpeF0oaHR0cHM6Ly9tY2hhbmcuaWN1L3NiLW1hdHJpeCk= readmeEtag: '"b05c62b6ff64d7ac2bafe329217a8af2f9aba997"' readmeLastModified: Sat, 28 Oct 2023 05:18:44 GMT repositoryId: 402975679 description: SponsorBlock API in Swagger/ OpenAPI created: '2021-09-04T05:49:13Z' updated: '2023-10-28T05:14:45Z' language: HTML archived: false stars: 8 watchers: 2 forks: 0 owner: mchangrh logo: https://avatars.githubusercontent.com/u/15132783?v=4 license: GPL-3.0 repoEtag: '"db687f5b21d68c562fbf1a1b3ed548e1c56d5bc20d2b5e1076520cb7efa6e37f"' repoLastModified: Sat, 28 Oct 2023 05:14:45 GMT foundInMaster: true category: - Documentation - Server Implementations id: 328ab8ea3691a6875fdc576eff130d15 - source: openapi3 tags repository: https://github.com/karatelabs/vscode-extension v3: true id: 48cbff2a15a37b74a0aec052425666f7 repositoryMetadata: base64Readme: >- PHRhYmxlPgogICAgPHRyPgogICAgICAgIDx0ZD4KICAgICAgICAgICAgPGJyLz48YSBocmVmPSJodHRwczovL2thcmF0ZWxhYnMuaW8iPjxpbWcgc3JjPSJyZXNvdXJjZXMva2FyYXRlLWxvZ28uc3ZnIiBoZWlnaHQ9IjQ1cHgiLz48L2E+CiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICAgIDxoMj48YnIvPlZTIENvZGU8YnIvPkV4dGVuc2lvbjwvaDI+ICAgICAgICAgICAKICAgICAgICA8L3RkPgogICAgICAgIDx0aD4KICAgICAgICAgICAgPGgzPjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvblhVU254Y2RsalE/c2k9d0NoLW0xcUw1UmoxcVFJUyI+OnR2OiA8YnIvPiZuYnNwO1ZpZGVvJm5ic3A7PC9hPjwvaDM+CiAgICAgICAgPC90aD4gICAgICAgIAogICAgICAgIDx0aD4KICAgICAgICAgICAgPGgzPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmthcmF0ZWxhYnMuaW8vcHJpY2luZyI+OmhlYXZ5X2RvbGxhcl9zaWduOiA8YnIvPlByaWNpbmc8L2E+PC9oMz4KICAgICAgICA8L3RoPiAgICAgICAKICAgICAgICA8dGg+CiAgICAgICAgICAgIDxoMz48YSBocmVmPSJodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9a2FyYXRlbGFicy5rYXJhdGUiPjxici8+OnphcDogPGJyLz4gTWFya2V0PGJyLz5wbGFjZTwvYT48L2gzPgogICAgICAgIDwvdGg+CiAgICAgICAgPHRoPgogICAgICAgICAgICA8aDM+PGEgaHJlZj0iaHR0cHM6Ly9vcGVuLXZzeC5vcmcvZXh0ZW5zaW9uL2thcmF0ZWxhYnMva2FyYXRlIj48YnIvPjpidWxiOiA8YnIvPiZuYnNwO09wZW4mbmJzcDs8YnIvPlZTWDwvYT48L2gzPgogICAgICAgIDwvdGg+ICAgICAgICAgCiAgICAgICAgPHRoPgogICAgICAgICAgICA8aDM+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2thcmF0ZWxhYnMvdnNjb2RlLWV4dGVuc2lvbi9pc3N1ZXMiPjpvY3RvY2F0OiA8YnIvPklzc3VlczwvYT48L2gzPgogICAgICAgIDwvdGg+ICAgICAgICAKICAgIDwvdHI+CjwvdGFibGU+Cgo8dGFibGU+CiAgICA8dHI+CiAgICAgICAgPHRoPlBMVVM8L3RoPgogICAgICAgIDx0aD5QUk88L3RoPgogICAgICAgIDx0aD5FbnRlcnByaXNlPC90aD4KICAgIDwvdHI+ICAgIAogICAgPHRyPgogICAgICAgIDx0ZD4gICAgICAgICAgICAKICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvblhVU254Y2RsalE/c2k9ay1NNUFZejluR1p5bHpEOCZ0PTM4Ij5TeW50YXggY29sb3Jpbmc8L2xpPiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxsaT5SdW4gRmVhdHVyZSBmcm9tIGVkaXRvcjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3J1bi1mcm9tLWVkaXRvciI+UnVuIHNpbmdsZSBTY2VuYXJpbyAvIEV4YW1wbGU8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3lvdXR1LmJlL25YVVNueGNkbGpRP3NpPVAybVZnNDdkTUpBc1FFRTEmdD0xOTIiPkxhdW5jaCBDb25maWd1cmF0aW9uczwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvblhVU254Y2RsalE/c2k9VEhROTdTZmhuemt2TFYwdyZ0PTMzMSI+T3V0bGluZSB2aWV3PC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly95b3V0dS5iZS9uWFVTbnhjZGxqUT9zaT1wRDdManRGN2hTNDNRODEzJnQ9MzYzIj5Db2RlIGZvcm1hdHRpbmc8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3lvdXR1LmJlL25YVVNueGNkbGpRP3NpPWl5Sk1FZEwxOUk1QmtHeGYmdD00MjEiPlRlc3QgUmVzdWx0cyBpbiBJREU8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgICAgPGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KGluY2x1ZGVzIGFsbCBpbiBQTFVTKTwvaT4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvSVlTTmpYNWRQWkE/c2k9M3N4SXpZYkpqLTdObFlOUyZ0PTMwIj5BdXRvIGNvbXBsZXRlPC9hPjwvbGk+ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvSVlTTmpYNWRQWkE/c2k9YmpKaUZieVlfYjZuRktKXyZ0PTEwNCI+Q29kZSBmb2xkaW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3JlZmVyZW5jZXMiPkp1bXAgdG8gcmVmZXJlbmNlczwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvSVlTTmpYNWRQWkE/c2k9X2tXellFVnF2RXVYSHNRbyZ0PTEzNCI+SlNPTiByZS1mb3JtYXR0aW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly95b3V0dS5iZS9JWVNOalg1ZFBaQT9zaT1DZ3JxR0UwLVhWVWFoNExsJnQ9MjMzIj5SdW4gYWxsIHRlc3RzIGluIGZvbGRlcjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPlJ1biBLYXJhdGUgTGFicyBhZGQtb25zIChlLmcuIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rYXJhdGVsYWJzL2thcmF0ZS1hZGRvbnMvYmxvYi9tYWluL2thcmF0ZS1rYWZrYS9SRUFETUUubWQiPkthZmthPC9hPik8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8veW91dHUuYmUvSVlTTmpYNWRQWkE/c2k9cUtZbURydFg0RFp4WEtNWiZ0PTI2MiI+RGVidWcgS2FyYXRlIHRlc3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT5EZWJ1ZyBKYXZhICZhbXA7IEthcmF0ZSBpbiBzYW1lIHNlc3Npb248L2xpPgogICAgICAgICAgICAgICAgPGxpPkphdmEgZGVidWcgc2Vzc2lvbiBzdG9wcyBhdCBLYXJhdGUgYnJlYWtwb2ludHM8L2xpPgogICAgICAgICAgICAgICAgPGxpPmNVUkwgaW1wb3J0ICo8L2xpPgogICAgICAgICAgICAgICAgPGxpPk9wZW5BUEkgc3VwcG9ydCAqPC9saT4KICAgICAgICAgICAgPC91bD48aT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtbKl0gY29taW5nIHNvb248L2k+CiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5Qcmlvcml0eSBzdXBwb3J0PC9saT4KICAgICAgICAgICAgICAgIDxsaT5TU08gLyBTQU1MIHN1cHBvcnQ8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNvZmZsaW5lLWxpY2Vuc2UiPk9mZmxpbmUgbGljZW5zZTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmthcmF0ZWxhYnMuaW8vY29udGFjdC11cyI+Q29udGFjdCB1czwvYT48L2xpPgogICAgICAgICAgICA8L3VsPiAgICAgICAgCiAgICAgICAgPC90ZD4gICAgICAgIAogICAgPC90cj4KPC90YWJsZT4KCj4gQnkgdXNpbmcgdGhpcyBwbHVnaW4sIHlvdSBhZ3JlZSB0byB0aGUgS2FyYXRlIExhYnMgW0VVTEFdKGh0dHBzOi8va2FyYXRlbGFicy5pby9ldWxhKS4gRGF0YSBvbiBhIGZldyB1c2VyIGFjdGlvbnMgaXMgY29sbGVjdGVkIGFuZCBzdWJqZWN0IHRvIG91ciBbUHJpdmFjeSBQb2xpY3ldKGh0dHBzOi8va2FyYXRlbGFicy5pby9wcml2YWN5LXBvbGljeSkuIEhUTUwgcmVwb3J0cyBnZW5lcmF0ZWQgYnkgdGhlIEthcmF0ZSBvcGVuLXNvdXJjZSBsaWJyYXJ5IGhhcyBbYWRkaXRpb25hbCBhbmFseXRpY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJhdGVsYWJzL2thcmF0ZS9ibG9iL21hc3Rlci9rYXJhdGUtY29yZS9zcmMvdGVzdC9yZXNvdXJjZXMvYW5hbHl0aWNzLm1kKS4KCiMjIExpY2Vuc2UgQWN0aXZhdGlvbgpMaWNlbnNlIGFjdGl2YXRpb24gYW5kIHN0YXR1cyBpcyBhdmFpbGFibGUgdmlhIGEgY29tbWFuZC4gR28gdG8gYFZpZXcgLT4gQ29tbWFuZCBQYWxldHRlYCwgdHlwZSBgS2FyYXRlYCBhbmQgeW91IHNob3VsZCBzZWUgc29tZXRoaW5nIGxpa2UgdGhpcy4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvc2lnbi1pbi5qcGciIGhlaWdodD0iMjAwcHgiLz4KCjxwPiZuYnNwOzwvcD4KCkNob29zZSB0aGUgb3B0aW9uIHRvIGBTaWduIEluIC8gTWFuYWdlIExpY2Vuc2VgIGFuZCB5b3Ugd2lsbCBiZSBzaG93biBhIFtkaWFsb2ddKCNvZmZsaW5lLWxpY2Vuc2UpLiBDbGljayBgU2lnbiBJbmAgdG8gYmUgdGFrZW4gdGhyb3VnaCB0aGUgdXN1YWwgZmxvdyBsaW5rZWQgdG8geW91ciBleGlzdGluZyBzdWJzY3JpcHRpb24gZGV0YWlscy4KCk9uY2UgeW91IGhhdmUgYXV0aGVudGljYXRlZCBzdWNjZXNzZnVsbHksIGNvcHkgdGhlIHNlc3Npb24gSUQgZnJvbSB0aGUgYnJvd3NlciBhbmQgcGFzdGUgaXQgaW50byB0aGUgaW5wdXQtYm94IG5vdyBzaG93aW5nIGluIFZTIENvZGUuIEhpdCBgRU5URVJgIHRvIGNvbXBsZXRlIHRoZSBzaWduLWluLgoKPGltZyBzcmM9InJlc291cmNlcy9zaWduLWluLXNlc3Npb25pZC5qcGciIGhlaWdodD0iMTUwcHgiLz4KCjxwPiZuYnNwOzwvcD4KCk9uY2Ugc2lnbmVkLWluIHlvdSBjYW4gd29yayBvZmZsaW5lLiBZb3UgY2FuIGFsd2F5cyBydW4gdGhlIGBTaWduIEluIC8gTWFuYWdlIExpY2Vuc2VgIGNvbW1hbmQgdG8gc2VlIGhvdyBtYW55IGRheXMgYXJlIGxlZnQgaW4geW91ciBzZXNzaW9uLgoKSWYgeW91IG5lZWQgYW4gW29mZmxpbmUgbGljZW5zZV0oI29mZmxpbmUtbGljZW5zZSkgYmVjYXVzZSBvZiBzdHJpY3Qgc2VjdXJpdHkgb3Igc2ltaWxhciByZXN0cmljdGlvbnMgaW4geW91ciBlbnZpcm9ubWVudCwgcGxlYXNlIFtjb250YWN0IHVzXShodHRwczovL3d3dy5rYXJhdGVsYWJzLmlvL2NvbnRhY3QtdXMpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgb3B0aW9uIGlzIGF2YWlsYWJsZSBvbmx5IGZvciBlbnRlcnByaXNlIGN1c3RvbWVycyBvZiBLYXJhdGUgTGFicy4KCiMjIFNldHRpbmdzCgpZb3UgY2FuIGFjY2VzcyB0aGUgZXh0ZW5zaW9uIHNldHRpbmdzIGJ5IGNsaWNraW5nIG9uIHRoZSAiZ2VhciIgaWNvbiBhZnRlciBnb2luZyB0byAiRXh0ZW5zaW9ucyIgb24gdGhlIG5hdi1iYXIuCgo8aW1nIHNyYz0icmVzb3VyY2VzL3NldHRpbmdzLW9wZW4uanBnIiBoZWlnaHQ9IjMwMHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpFc3BlY2lhbGx5IGlmIHlvdSBhcmUgd29ya2luZyB3aXRoIEphdmEgTWF2ZW4gb3IgR3JhZGxlIHByb2plY3RzLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBoYXZlIHRoZSBbTGFuZ3VhZ2UgU3VwcG9ydCBmb3IgSmF2YV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXJlZGhhdC5qYXZhKSBWUyBDb2RlIGV4dGVuc2lvbiBpbnN0YWxsZWQuCgpUaGVuIGtlZXAgdGhlIGBrYXJhdGVsYWJzLmthcmF0ZS5ydW4ubW9kZWAgc2V0dGluZyBhcyBgdnNjb2RlLWphdmFgICh0aGUgZGVmYXVsdCkuCgo8aW1nIHNyYz0icmVzb3VyY2VzL3NldHRpbmdzLW5ldy5qcGciIGhlaWdodD0iNjUwcHgiLz4KCiMjIyBTdGFuZGFsb25lCllvdSBjYW4gY2hhbmdlIHRoZSBga2FyYXRlbGFicy5rYXJhdGUucnVuLm1vZGVgIHNldHRpbmcgdG8gYHN0YW5kYWxvbmVgIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgW0thcmF0ZSBzdGFuZGFsb25lIEpBUl0oaHR0cHM6Ly9naXRodWIuY29tL2thcmF0ZWxhYnMva2FyYXRlL3dpa2kvR2V0LVN0YXJ0ZWQ6LU90aGVyLVJ1bnRpbWUtT3B0aW9ucyNzdGFuZGFsb25lLWphcikuIERvd25sb2FkIGl0IGFuZCBjaG9vc2UgYSBsb2NhbCBmb2xkZXIgdG8ga2VlcCBKQVIgZmlsZXMgaW4uIENoYW5nZSB0aGUgYGthcmF0ZWxhYnMua2FyYXRlLnJ1bi5tb2RlSmFyc2Agc2V0dGluZyB0byBwb2ludCB0byB0aGF0IGZvbGRlciwgYW5kIGZvciBjb252ZW5pZW5jZSwgYWxsIEpBUnMgd2l0aGluIHRoYXQgZm9sZGVyIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHJ1bnRpbWUgY2xhc3NwYXRoLgoKTm90ZSB0aGF0IHRoZSBgTW9kZSBKYXJzYCBzZXR0aW5nIHNob3VsZCBiZSBhIGZvbGRlciBuYW1lLiBEbyBub3QgaW5jbHVkZSB0aGUgYC5qYXJgIHBhcnQuIE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBvZiBgLmAgd2lsbCB3b3JrIGZpbmUgZm9yIHRoZSBjb21tb24gcHJhY3RpY2Ugb2Yga2VlcGluZyB0aGUgS2FyYXRlIEpBUiBpbiB0aGUgInJvb3QiIG9mIHlvdXIgcHJvamVjdCBmb2xkZXIuCgpUaGUgYGthcmF0ZWxhYnMua2FyYXRlLnJ1bi5jbGFzc3BhdGhQcmVmaXhgIHNldHRpbmcgZGVmYXVsdHMgdG8gYC5gIHdoaWNoIHNob3VsZCBzdWZmaWNlIGZvciBwaWNraW5nIHVwIGBrYXJhdGUtY29uZmlnLmpzYCBmcm9tIHRoZSB3b3Jrc3BhY2Ugcm9vdC4gWW91IGNhbiBhZGQgbW9yZSBjbGFzc3BhdGggZW50cmllcyAoY29tbWEtZGVsaW1pdGVkKSBhbmQgZXZlbiBKQVIgZmlsZXMgaWYgeW91IHdpc2guIEZvciBleGFtcGxlIGAuLHNyYy90ZXN0L2phdmFgIHdvdWxkIGFsc28gc2VhcmNoIGluIGBzcmMvdGVzdC9qYXZhYCBmb3IgYGthcmF0ZS1jb25maWcuanNgLgoKTm90ZSB0aGF0IFZTIENvZGUgaGFzIGEgbWVjaGFuaXNtIHRvIFtjdXN0b21pemUgc2V0dGluZ3MgcGVyIFdvcmtzcGFjZV0oaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vZG9jcy9nZXRzdGFydGVkL3NldHRpbmdzI193b3Jrc3BhY2Utc2V0dGluZ3MpIChvciBwcm9qZWN0IGZvbGRlcikgd2hpY2ggY2FuIGVuc3VyZSB5b3VyIHdob2xlIHRlYW0gdXNlcyB0aGUgc2FtZSBzZXR0aW5ncy4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGhvdyB0aGUgdmFsdWVzIG9mIHRoZSBgcnVuLm1vZGVgIGFuZCBgY2xhc3NwYXRoUHJlZml4YCBjYW4gYmUgd3JpdHRlbiB0byBhIGZpbGUgaW4gYC52c2NvZGUvc2V0dGluZ3MuanNvbmAuIE5vdyB0aGlzIGZpbGUgY2FuIGJlIGFkZGVkIHRvIHlvdXIgR2l0IHJlcG9zaXRvcnkgb3IgdmVyc2lvbiBjb250cm9sLgoKPGltZyBzcmM9InJlc291cmNlcy9zZXR0aW5ncy13b3Jrc3BhY2UuanBnIiBoZWlnaHQ9IjM1MHB4Ii8+CgojIyMgQ3VzdG9tCgpZb3UgY2FuIGFsc28gb3B0IHRvIHJ1biBjb21tYW5kcyBzdWNoIGFzIGBqYXZhYCBvciBgbXZuYCBkaXJlY3RseSB3aXRoIGBrYXJhdGVsYWJzLmthcmF0ZS5ydW4ubW9kZWAgc2V0IHRvIGBjdXN0b21gLiBJbiB0aGlzIGNhc2UgYGphdmFgIG9yIGBtdm5gIGlzIGV4cGVjdGVkIHRvIGJlIGluc3RhbGxlZCBhbmQgaW4gdGhlIHN5c3RlbSBgUEFUSGAuCgpGb3IgY29udmVuaWVuY2UgdGhlIHN0cmluZyBgJHtrYXJhdGVBcmdzfWAgd2lsbCBiZSByZXBsYWNlZCB3aXRoIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZ2VuZXJhdGVkIGJ5IHRoZSBleHRlbnNpb24gd2hlbiBwZXJmb3JtaW5nIGFjdGlvbnMgc3VjaCBhcyBgUnVuYCBldGMuCgojIyBUcm91Ymxlc2hvb3RpbmcKCklmIHRoZSBbTGFuZ3VhZ2UgU3VwcG9ydCBmb3IgSmF2YV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXJlZGhhdC5qYXZhKSBleHRlbnNpb24gaXMgbm90IGluc3RhbGxlZCwgeW91IHdpbGwgbmVlZCBhIEphdmEgcnVudGltZSBpbnN0YWxsZWQgYW5kIFtgSkFWQV9IT01FYCBzZXQgaW4geW91ciBlbnZpcm9ubWVudF0oaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL2phdmEtaG9tZS1vbi13aW5kb3dzLW1hYy1vcy14LWxpbnV4KS4gSGF2aW5nIHRoZSBgamF2YWAgY29tbWFuZCBpbiB5b3VyIFtzeXN0ZW0gYFBBVEhgXShodHRwczovL3d3dy5qYXZhLmNvbS9lbi9kb3dubG9hZC9oZWxwL3BhdGguaHRtbCkgc2hvdWxkIGFsc28gYmUgc3VmZmljaWVudC4gSmF2YSAxMSBvciBoaWdoZXIgaXMgbmVlZGVkIGZvciBLYXJhdGUgMS40LlggYW5kIEphdmEgMTcgaXMgbmVlZGVkIGZvciBLYXJhdGUgMS41LjAgYW5kIGFib3ZlLgoKVGhlcmUgaXMgYSBgS2FyYXRlIExvZ2Agd2l0aGluIHRoZSAiT3V0cHV0IiB0YWIgKG5leHQgdG8gIlRlcm1pbmFsIikgdHlwaWNhbGx5IGF0IHRoZSBib3R0b20gb2YgeW91ciBWUyBDb2RlIHdpbmRvdy4gWW91IGNhbiBsb29rIGF0IGl0IHRvIGZpbmQgdGhlIHJlYXNvbnMgZm9yIGZhaWx1cmUuCgo8aW1nIHNyYz0icmVzb3VyY2VzL2thcmF0ZS1sb2cuanBnIiBoZWlnaHQ9IjIwMHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpUbyBjaGFuZ2UgdGhlIGxvZyBsZXZlbCB5b3UgY2FuIHVzZSB0aGUgVlMgQ29kZSBDb21tYW5kIGBEZXZlbG9wZXI6IFNldCBMb2cgTGV2ZWxgIChgVmlldyAtLT4gQ29tbWFuZCBQYWxldHRlYCBhbmQgdHlwZSAiTG9nIikgYW5kIHRoZW4gc2VsZWN0IGBLYXJhdGUgTG9nYC4gQ2hhbmdpbmcgdGhlIGxvZyBsZXZlbCB0byBgRGVidWdgIGdpdmVzIHlvdSBtb3JlIGluZm9ybWF0aW9uLgoKPGltZyBzcmM9InJlc291cmNlcy9sb2ctbGV2ZWwuanBnIiBoZWlnaHQ9IjIwMHB4Ii8+CgojIyBSdW4gRnJvbSBFZGl0b3IKWW91IGNhbiBydW4gYSBmZWF0dXJlIGZpbGUgb3BlbiBpbiB0aGUgZWRpdG9yIGJ5IHVzaW5nIHRoZSBDb2RlTGVucy4gVGhlIGtleWJvYXJkIHNob3J0Y3V0IGBbQ1RSTF1gIGBbRjVdYCBhbHNvIHdvcmtzLgoKPGltZyBzcmM9InJlc291cmNlcy9ydW4tZmVhdHVyZS5qcGciIGhlaWdodD0iMzUwcHgiLz4KCjxwPiZuYnNwOzwvcD4KCllvdSBjYW4gcnVuIGEgc2luZ2xlIGBTY2VuYXJpb2AgYnkgdXNpbmcgdGhlIENvZGVMZW5zIHRoYXQgYXBwZWFycyBhYm92ZSBpdC4KCllvdSBjYW4gZXZlbiBydW4gYSBzaW5nbGUgImV4YW1wbGUiIGluIGEgYFNjZW5hcmlvIE91dGxpbmVgIGJ5IHJpZ2h0LWNsaWNraW5nIG9uIG9uZSBvZiB0aGUgZGF0YS1yb3dzIHdpdGhpbiBhbiBgRXhhbXBsZXNgIHRhYmxlLgoKPGltZyBzcmM9InJlc291cmNlcy9ydW4tZXhhbXBsZS5qcGciIGhlaWdodD0iMTgwcHgiLz4KCiMjIExhdW5jaCBDb25maWd1cmF0aW9ucwpWUyBDb2RlIFtsYXVuY2gtY29uZmlndXJhdGlvbnNdKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tL2RvY3MvZWRpdG9yL2RlYnVnZ2luZykgYXJlIHVzZWZ1bCBmb3IgYmVpbmcgYWJsZSB0byByZS1ydW4gdGVzdHMgd2l0aCBzcGVjaWZpYyBwYXJhbWV0ZXJzLiBBbGwgdGhlIHR5cGljYWwgS2FyYXRlIG9wdGlvbnMgeW91IG5lZWQgYXJlIHN1cHBvcnRlZCwgaW5jbHVkaW5nIGNvbnRyb2wgb3ZlciB0aGUgSlZNIHBhcmFtZXRlcnMgYW5kIHdvcmtpbmcgZGlyZWN0b3J5LiBUaGUgZmVhdHVyZSBmaWxlIChvciBwYXRoIHRvIHNlYXJjaCBmb3IgZmVhdHVyZSBmaWxlcykgc2hvdWxkIGJlIHRoZSBsYXN0IGFyZ3VtZW50LgoKSGVyZSBpcyBhbiBleGFtcGxlIGAudnNjb2RlL2xhdW5jaC5qc29uYCBmaWxlOgoKYGBganNvbgp7CiAgICAidmVyc2lvbiI6ICIwLjIuMCIsCiAgICAiY29uZmlndXJhdGlvbnMiOiBbCiAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJrYXJhdGUiLAogICAgICAgICAgICAibmFtZSI6ICJlbnYtdGVzdCIsCiAgICAgICAgICAgICJyZXF1ZXN0IjogImxhdW5jaCIsCiAgICAgICAgICAgICJrYXJhdGVBcmdzIjogWwogICAgICAgICAgICAgICAgIi1lIiwKICAgICAgICAgICAgICAgICJ0ZXN0IiwKICAgICAgICAgICAgICAgICIke2ZpbGV9IgogICAgICAgICAgICBdCiAgICAgICAgfQogICAgXQp9CmBgYAoKVGhlIGFkdmFudGFnZSBpcyB0aGF0IHlvdSBjYW4gc2V0IHVwIGFueSBjb21iaW5hdGlvbiBvZiBbS2FyYXRlIHJ1bnRpbWUgb3B0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL2thcmF0ZWxhYnMva2FyYXRlI2thcmF0ZW9wdGlvbnMpIHZpYSBga2FyYXRlQXJnc2AuIEZvciBleGFtcGxlIHlvdSBjYW46CiogW3J1biB0ZXN0cyBpbiBwYXJhbGxlbF0oaHR0cHM6Ly9naXRodWIuY29tL2thcmF0ZWxhYnMva2FyYXRlL3RyZWUvbWFzdGVyL2thcmF0ZS1uZXR0eSNwYXJhbGxlbC1leGVjdXRpb24pCiogW3NldCB0aGUgZW52aXJvbm1lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJhdGVsYWJzL2thcmF0ZS90cmVlL21hc3Rlci9rYXJhdGUtbmV0dHkja2FyYXRlZW52KQoqIG9yIFtjaG9vc2UgdGFnc10oaHR0cHM6Ly9naXRodWIuY29tL2thcmF0ZWxhYnMva2FyYXRlL3RyZWUvbWFzdGVyL2thcmF0ZS1uZXR0eSN0YWdzKSB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUuCgpOb3cgeW91IGNhbiBydW4gdGVzdHMgZnJvbSB0aGUgW1J1biBhbmQgRGVidWddKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tL2RvY3MvZWRpdG9yL2RlYnVnZ2luZyNfbGF1bmNoLWNvbmZpZ3VyYXRpb25zKSB2aWV3IGluIFZTIENvZGUgYW5kIGtleWJvYXJkIHNob3J0LWN1dHMgc3VjaCBhcyBgRjVgIHdpbGwgd29yayBmb3IgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGZpbGUgaW4gdGhlIGVkaXRvci4gTm90ZSB0aGF0IHlvdSBjYW4gZXZlbiBSdW4gd2l0aG91dCBEZWJ1Z2dpbmc6IGBDdHJsICsgRjVgLgoKPGltZyBzcmM9InJlc291cmNlcy9sYXVuY2gtY29uZmlnLmpwZyIgaGVpZ2h0PSI0MDBweCIvPgoKPHA+Jm5ic3A7PC9wPgoKWW91IGNhbiBoYXZlIG11bHRpcGxlIGNvbmZpZ3VyYXRpb25zIGFuZCBlYXNpbHkgc3dpdGNoIGJldHdlZW4gdGhlbS4KCllvdSBjYW4gYWRkIGAibm9EZWJ1ZyI6IHRydWVgIHRvIHRoZSBydW4tY29uZmlndXJhdGlvbiBKU09OIHRvIGZvcmNlICJSdW4gd2l0aG91dCBEZWJ1Z2dpbmciIGZvciBjb252ZW5pZW5jZS4KCkluc3RlYWQgb2YgYCR7ZmlsZX1gIGFzIHRoZSB2YWx1ZSBmb3IgYGZlYXR1cmVgLCB5b3UgY2FuIHVzZSBhbnkgdmFsaWQgZm9sZGVyIHBhdGggb3IgZXZlbiBtdWx0aXBsZSBmZWF0dXJlIGZpbGVzLgoKIyMgT3V0bGluZSBWaWV3ClRoZSBWUyBDb2RlIFtvdXRsaW5lIHZpZXddKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tL2RvY3MvZ2V0c3RhcnRlZC91c2VyaW50ZXJmYWNlI19vdXRsaW5lLXZpZXcpIGlzIHN1cHBvcnRlZCBzbyB5b3UgY2FuIG5hdmlnYXRlIGxhcmdlIGZpbGVzIHdpdGggZWFzZS4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvb3V0bGluZS12aWV3LmpwZyIgaGVpZ2h0PSI0MDBweCIvPgoKIyMgQ29kZSBGb3JtYXR0aW5nClZTIENvZGUgW2NvZGUtZm9ybWF0dGluZ10oaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vZG9jcy9lZGl0b3IvY29kZWJhc2ljcyNfZm9ybWF0dGluZykgc2hvcnRjdXRzIHdvcmsgdG8gZm9ybWF0IGluZGVudGluZyBvZiBmZWF0dXJlIGZpbGUgZWxlbWVudHMuCgojIyBUZXN0IFJlc3VsdHMKVGhlIEhUTUwgcmVwb3J0IGlzIG9uZS1jbGljayBhd2F5LgoKPGltZyBzcmM9InJlc291cmNlcy90ZXN0LXJlcG9ydC1saW5rLmpwZyIgaGVpZ2h0PSIyMDBweCIvPgoKIyMgQXV0byBDb21wbGV0ZQpCZXNpZGVzIHRoZSBzeW50YXggdmFsaWRhdGlvbiwgeW91IGhhdmUgYXV0by1jb21wbGV0ZSBmb3IgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBrZXl3b3Jkcy4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvYXV0b2NvbXBsZXRlLmpwZyIgaGVpZ2h0PSIyMDBweCIvPgoKIyMgQ29kZSBGb2xkaW5nCllvdSBjYW4gY29sbGFwc2Ugc2VjdGlvbnMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVhbCB3aXRoIGxvbmcgdGVzdHMuCgo8aW1nIHNyYz0icmVzb3VyY2VzL2NvZGUtZm9sZGluZy5qcGciIGhlaWdodD0iMjAwcHgiLz4KCiMjIFJlZmVyZW5jZXMKQ29taW5nIFNvb24uCgojIyBKU09OIFJlLWZvcm1hdHRpbmcKUGxhY2UgdGhlIGN1cnNvciB3aXRoaW4gSlNPTiB0byBzZWUgb3B0aW9ucyB0byByZS1mb3JtYXQgaXQsIHlvdSB3aWxsIHNlZSBhICJidWxiIiBpY29uLgoKPGltZyBzcmM9InJlc291cmNlcy9qc29uLWJ1bGIuanBnIiBoZWlnaHQ9IjI1MHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIHBvc3NpYmxlIChkZXBlbmRpbmcgb24gY29udGV4dCk6CgoqIExlbmllbnQgLSBqdXN0IGxpa2UgSlMsIHdoZXJlIHNpbmdsZS1xdW90ZXMgYXJlIHVzZWQgYW5kIG5vIHF1b3RlcyBhcmUgbmVlZGVkIGZvciBwcm9wZXJ0eSBrZXlzCiogU3RyaWN0IC0gU3RyaWN0IEpTT04sIHVzaW5nIGRvdWJsZS1xdW90ZXMKKiBNYWtlIHNpbmdsZSBMaW5lIC0gY29udmVydCBtdWx0aS1saW5lIEpTT04gdG8gYSBzaW5nbGUgbGluZQoqIE1ha2UgbXVsdGktbGluZSAtIGNvbnZlcnQgYSBzaW5nbGUgbGluZSBvZiBKU09OIHRvIG11bHRpLWxpbmUsIGluY2x1ZGluZyB0cmlwbGUtcXVvdGVzCgojIyBSdW4gRm9sZGVyCgpBcyBhIGNvbnZlbmllbmNlLCB5b3UgY2FuIHJpZ2h0LWNsaWNrIGFuZCBydW4gYSBmb2xkZXIgZnJvbSB0aGUgZXhwbG9yZXIgdmlldy4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvcnVuLWZvbGRlci5qcGciIGhlaWdodD0iNDUwcHgiLz4KCiMjIERlYnVnCgpZb3UgY2FuIHNldCBicmVhay1wb2ludHMgb24gS2FyYXRlIGZlYXR1cmUgZmlsZXMgaW4gZGVidWcgbW9kZS4gVGhlIEthcmF0ZSBkZWJ1Z2dlciBjYW4gZXZlbiBzdGVwLWJhY2sgYW5kIGhvdC1yZWxvYWQgc2ltcGxlIGVkaXRzIHRvIHlvdXIgdGVzdC4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvZGVidWcuanBnIiBoZWlnaHQ9IjYwMHB4Ii8+CgojIyMgRGVidWcgSmF2YSBmcm9tIEthcmF0ZQoKQSBLYXJhdGUgZGVidWcgc2Vzc2lvbiB3aWxsIGV2ZW4gc3RvcCBhdCBKYXZhIGJyZWFrcG9pbnRzLgoKIyMjIERlYnVnIEthcmF0ZSBmcm9tIEphdmEKCllvdSBjYW4gYWxzbyBzdGFydCBhIG5vcm1hbCBKYXZhIGRlYnVnIHNlc3Npb24gdGhhdCB1c2VzIHRoZSBLYXJhdGUgYFJ1bm5lcmAgSmF2YSBBUEkgYnV0IHN0aWxsIHN0b3AgYXQgS2FyYXRlIGJyZWFrcG9pbnRzLiBUaGlzIHJlcXVpcmVzIHlvdSB0byBiZSB1c2luZyBLYXJhdGUgdmVyc2lvbiAxLjUuMC5SQzMgb3IgZ3JlYXRlci4KCiMjIE9mZmxpbmUgTGljZW5zZQoKPiBbIUlNUE9SVEFOVF0gIAo+IFRoZSBPZmZsaW5lIExpY2Vuc2UgaXMgYSBbcGFpZCBmZWF0dXJlIGZvciBlbnRlcnByaXNlc10oaHR0cHM6Ly93d3cua2FyYXRlbGFicy5pby9wcmljaW5nKS4gUGxlYXNlIG1ha2Ugc3VyZSB5b3Uga25vdyB3aG8geW91ciBkZXNpZ25hdGVkIGFkbWluIGlzIGJlZm9yZSB5b3UgcGVyZm9ybSB0aGlzIHN0ZXAuCgoKVGhlIGRpYWxvZyB5b3Ugc2VlIHdoZW4geW91IGludm9rZSB0aGUgW2BTaWduIEluIC8gTWFuYWdlIExpY2Vuc2VgXSgjbGljZW5zZS1hY3RpdmF0aW9uKSBjb21tYW5kIGxvb2tzIGxpa2UgdGhpcy4KCjxpbWcgc3JjPSJyZXNvdXJjZXMvbGljZW5zZS1kaWFsb2cuanBnIiBoZWlnaHQ9IjEwMHB4Ii8+Cgo8cD4mbmJzcDs8L3A+CgpDbGljayB0aGUgYE9mZmxpbmUgTGljZW5zZWAgYnV0dG9uLiBBIHVuaXF1ZSBjb2RlIGZvciB5b3VyIHN5c3RlbSB3aWxsIGJlIHNob3duIHdoaWNoIHlvdSBjYW4gY3V0IGFuZCBwYXN0ZS4gSW4gdGhlIGV4YW1wbGUgYmVsb3csIGl0IGlzOiBgRGhIT0ZLSHZkN1hZVGkrclFuTlRKUT09YAoKPGltZyBzcmM9InJlc291cmNlcy9vZmZsaW5lLWxpY2Vuc2UtY29kZS5qcGciIGhlaWdodD0iMTUwcHgiLz4KCjxwPiZuYnNwOzwvcD4KClNlbmQgdGhhdCB1bmlxdWUgY29kZSB0byB5b3VyIGRlc2lnbmF0ZWQgYWRtaW4uIFlvdSB3aWxsIGJlIGlzc3VlZCBhIGxpY2Vuc2UgdGhhdCBpcyB0aWVkIHRvIHRoaXMgdW5pcXVlIGNvZGUuIFRvIGFwcGx5IHRoZSBsaWNlbnNlLCBjb3B5ICphbGwqIHRoZSB0ZXh0IGZyb20gdGhlIGxpY2Vuc2UgZmlsZSAod2hpY2ggc2hvdWxkIHN0YXJ0IHdpdGg6IGAtLS0tLUJFR0lOIExJQ0VOU0UgRklMRS0tLS0tYCkgYW5kIHBhc3RlIGl0IGludG8gdGhlIHRleHQtZmllbGQgc2hvd24gYWJvdmUuIE1ha2Ugc3VyZSB5b3UgKmNsZWFyKiB0aGUgdGV4dC1ib3ggYmVmb3JlIHBhc3RpbmcgdGhlIGxpY2Vuc2UgZmlsZSB0ZXh0IG9yIGp1c3QgcmVwbGFjZSB0aGUgaW5pdGlhbCBjb250ZW50cy4gTm93IHlvdSBzaG91bGQgc2VlIHNvbWV0aGluZyBsaWtlIHRoaXMuCgo8aW1nIHNyYz0icmVzb3VyY2VzL29mZmxpbmUtbGljZW5zZS1wYXN0ZS5qcGciIGhlaWdodD0iMTUwcHgiLz4KCjxwPiZuYnNwOzwvcD4KCkNsaWNrIFtFTlRFUl0gYW5kIHNob3VsZCBzZWUgYSBjb25maXJtYXRpb24gbWVzc2FnZSB3aXRoIHlvdXIgbGljZW5zZSBkZXRhaWxzLgoKCgoKCg== readmeEtag: '"b307671745bb325eae969a8ebb3fabf32402f171"' readmeLastModified: Tue, 13 Aug 2024 14:54:29 GMT repositoryId: 528727790 description: Karate Visual Studio Code Extension created: '2022-08-25T06:43:13Z' updated: '2024-08-13T14:54:35Z' language: null archived: false stars: 8 watchers: 2 forks: 1 owner: karatelabs logo: https://avatars.githubusercontent.com/u/91312095?v=4 repoEtag: '"4c2a8b2917bc10d01203a73df5cdbfbbe5a2792a1d5b77688e14f1b66ecb4f51"' repoLastModified: Tue, 13 Aug 2024 14:54:35 GMT category: Testing foundInMaster: true oldLocations: - https://github.com/karatelabs/karate-vscode-extension - source: openapi3 tags repository: https://github.com/lrstanley/entrest v3: true id: 71bac1f375dfb3f22aec8de61c4aab9f repositoryMetadata: base64Readme: >- PCEtLSB0ZW1wbGF0ZTpkZWZpbmU6b3B0aW9ucwp7CiAgIm5vZGVzY3JpcHRpb24iOiB0cnVlCn0KLS0+CiFbbG9nb10oaHR0cHM6Ly9saWFtLnNoLy0vZ2gvc3ZnL2xyc3RhbmxleS9lbnRyZXN0P2xheW91dD1sZWZ0Jmljb249bG9nb3MlM0FvcGVuYXBpJmljb24uaGVpZ2h0PTYwJmJnPWdlb21ldHJpYyZiZ2NvbG9yPXJnYmElMjgxMCUyQysxMCUyQysxMCUyQysxJTI5KQoKPCEtLSB0ZW1wbGF0ZTpiZWdpbjpoZWFkZXIgLS0+CjwhLS0gZG8gbm90IGVkaXQgYW55dGhpbmcgaW4gdGhpcyAidGVtcGxhdGUiIGJsb2NrLCBpdHMgYXV0by1nZW5lcmF0ZWQgLS0+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbHJzdGFubGV5L2VudHJlc3QvdGFncyI+CiAgICA8aW1nIHRpdGxlPSJMYXRlc3QgU2VtdmVyIFRhZyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3RhZy9scnN0YW5sZXkvZW50cmVzdD9zdHlsZT1mbGF0LXNxdWFyZSI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9scnN0YW5sZXkvZW50cmVzdC9jb21taXRzL21hc3RlciI+CiAgICA8aW1nIHRpdGxlPSJMYXN0IGNvbW1pdCIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC9scnN0YW5sZXkvZW50cmVzdD9zdHlsZT1mbGF0LXNxdWFyZSI+CiAgPC9hPgoKCgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9scnN0YW5sZXkvZW50cmVzdC9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBdGVzdCtldmVudCUzQXB1c2giPgogICAgPGltZyB0aXRsZT0iR2l0SHViIFdvcmtmbG93IFN0YXR1cyAodGVzdCBAIG1hc3RlcikiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvbHJzdGFubGV5L2VudHJlc3QvdGVzdC55bWw/YnJhbmNoPW1hc3RlciZsYWJlbD10ZXN0JnN0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+CgoKCiAgPGEgaHJlZj0iaHR0cHM6Ly9jb2RlY292LmlvL2doL2xyc3RhbmxleS9lbnRyZXN0Ij4KICAgIDxpbWcgdGl0bGU9IkNvZGUgQ292ZXJhZ2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2l0aHViL2xyc3RhbmxleS9lbnRyZXN0L21hc3Rlcj9zdHlsZT1mbGF0LXNxdWFyZSI+CiAgPC9hPgoKICA8YSBocmVmPSJodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9scnN0YW5sZXkvZW50cmVzdCI+CiAgICA8aW1nIHRpdGxlPSJHbyBEb2N1bWVudGF0aW9uIiBzcmM9Imh0dHBzOi8vcGtnLmdvLmRldi9iYWRnZS9naXRodWIuY29tL2xyc3RhbmxleS9lbnRyZXN0P3N0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2xyc3RhbmxleS9lbnRyZXN0Ij4KICAgIDxpbWcgdGl0bGU9IkdvIFJlcG9ydCBDYXJkIiBzcmM9Imh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2xyc3RhbmxleS9lbnRyZXN0P3N0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2xyc3RhbmxleS9lbnRyZXN0L2lzc3Vlcz9xPWlzOm9wZW4raXM6aXNzdWUrbGFiZWw6YnVnIj4KICAgIDxpbWcgdGl0bGU9IkJ1ZyByZXBvcnRzIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9scnN0YW5sZXkvZW50cmVzdC9idWc/bGFiZWw9aXNzdWVzJnN0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2xyc3RhbmxleS9lbnRyZXN0L2lzc3Vlcz9xPWlzOm9wZW4raXM6aXNzdWUrbGFiZWw6ZW5oYW5jZW1lbnQiPgogICAgPGltZyB0aXRsZT0iRmVhdHVyZSByZXF1ZXN0cyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMvbHJzdGFubGV5L2VudHJlc3QvZW5oYW5jZW1lbnQ/bGFiZWw9ZmVhdHVyZSUyMHJlcXVlc3RzJnN0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2xyc3RhbmxleS9lbnRyZXN0L3B1bGxzIj4KICAgIDxpbWcgdGl0bGU9Ik9wZW4gUHVsbCBSZXF1ZXN0cyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcHIvbHJzdGFubGV5L2VudHJlc3Q/bGFiZWw9cHJzJnN0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2xyc3RhbmxleS9lbnRyZXN0L2Rpc2N1c3Npb25zL25ldz9jYXRlZ29yeT1xLWEiPgogICAgPGltZyB0aXRsZT0iQXNrIGEgUXVlc3Rpb24iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zdXBwb3J0LWFza19hX3F1ZXN0aW9uIS1ibHVlP3N0eWxlPWZsYXQtc3F1YXJlIj4KICA8L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9saWFtLnNoL2NoYXQiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2Rpc2NvcmQtYnl0ZWNvcmQtYmx1ZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUiIHRpdGxlPSJEaXNjb3JkIENoYXQiPjwvYT4KPC9wPgo8IS0tIHRlbXBsYXRlOmVuZDpoZWFkZXIgLS0+Cgo8IS0tIHRlbXBsYXRlOmJlZ2luOnRvYyAtLT4KPCEtLSBkbyBub3QgZWRpdCBhbnl0aGluZyBpbiB0aGlzICJ0ZW1wbGF0ZSIgYmxvY2ssIGl0cyBhdXRvLWdlbmVyYXRlZCAtLT4KIyMgOmxpbms6IFRhYmxlIG9mIENvbnRlbnRzCgogIC0gW0ZlYXR1cmVzXSgjc3BhcmtsZXMtZmVhdHVyZXMpCiAgLSBbVXNhZ2VdKCNnZWFyLXVzYWdlKQogIC0gW1N1cHBvcnQgJmFtcDsgQXNzaXN0YW5jZV0oI3JhaXNpbmdfaGFuZF9tYW4tc3VwcG9ydC0tYXNzaXN0YW5jZSkKICAtIFtDb250cmlidXRpbmddKCNoYW5kc2hha2UtY29udHJpYnV0aW5nKQogIC0gW0xpY2Vuc2VdKCNiYWxhbmNlX3NjYWxlLWxpY2Vuc2UpCjwhLS0gdGVtcGxhdGU6ZW5kOnRvYyAtLT4KCiMjIDpzcGFya2xlczogRmVhdHVyZXMKCj4gWyFXQVJOSU5HXQo+IGVudHJlc3QgaXMgc3RpbGwgYSB3b3JrIGluIHByb2dyZXNzLiB3ZSBtYXkgbWFrZSBicmVha2luZyBjaGFuZ2VzIHRvIHRoZSBBUEkKPiB3aXRob3V0IG5vdGljZS4KCioqZW50cmVzdCoqIGlzIGFuIFtFbnRHb10oaHR0cHM6Ly9lbnRnby5pby8pIGV4dGVuc2lvbiBmb3IgZ2VuZXJhdGluZyBjb21wbGlhbnQgT3BlbkFQSQpzcGVjcyBhbmQgYW4gSFRUUCBoYW5kbGVyIGltcGxlbWVudGF0aW9uIHRoYXQgbWF0Y2hlcyB0aGF0IHNwZWMuIEl0IGV4cGFuZHMgdXBvbiB0aGUKYXBwcm9hY2ggdXNlZCBieSBbZW50b2FzXShodHRwczovL2dpdGh1Yi5jb20vZW50L2NvbnRyaWIvdHJlZS9tYXN0ZXIvZW50b2FzI2VudG9hcyksCndpdGggYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LCBhbmQgcGFpcnMgdGhlIGdlbmVyYXRlZCBzcGVjaWZpY2F0aW9uIHdpdGggYQpmdWxseS1mdW5jdGlvbmFsIEhUVFAgaGFuZGxlciBpbXBsZW1lbnRhdGlvbi4KCi0gOnNwYXJrbGVzOiBHZW5lcmF0ZXMgT3BlbkFQSSBzcGVjcyBmb3IgeW91ciBFbnRHbyBzY2hlbWEuCi0gOnNwYXJrbGVzOiBHZW5lcmF0ZXMgYSBmdWxseSBmdW5jdGlvbmFsIEhUVFAgaGFuZGxlciBpbXBsZW1lbnRhdGlvbiB0aGF0IG1hdGNoZXMgdGhlIE9wZW5BUEkgc3BlYy4KLSA6c3BhcmtsZXM6IFN1cHBvcnRzIGF1dG9tYXRpYyBwYWdpbmF0aW9uICh3aGVyZSBhcHBsaWNhYmxlKS4KLSA6c3BhcmtsZXM6IFN1cHBvcnRzIGFkdmFuY2VkIGZpbHRlcmluZyAodXNpbmcgcXVlcnkgcGFyYW1ldGVycywgYEFORGAvYE9SYCBwcmVkaWNhdGVzLCBldGMpLgotIDpzcGFya2xlczogU3VwcG9ydHMgZWFnZXItbG9hZGluZyBlZGdlcywgc28geW91IGRvbid0IGhhdmUgdG8gbWFrZSBhZGRpdGlvbmFsIGNhbGxzIHVubmVjZXNzYXJpbHkuCi0gOnNwYXJrbGVzOiBTdXBwb3J0cyB2YXJpb3VzIGZvcm1zIG9mIHNvcnRpbmcuCi0gOnNwYXJrbGVzOiBBbmQgbW9yZSEKCi0tLQoKIyMgOmdlYXI6IFVzYWdlCgpUYWtlIGEgbG9vayBhdCB0aGUgW29mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbHJzdGFubGV5LmdpdGh1Yi5pby9lbnRyZXN0LykgZm9yIGd1aWRlcywgZXhhbXBsZXMsIGFuZCBtb3JlLgoKPCEtLSB0ZW1wbGF0ZTpiZWdpbjpnb2dldCAtLT4KPCEtLSBkbyBub3QgZWRpdCBhbnl0aGluZyBpbiB0aGlzICJ0ZW1wbGF0ZSIgYmxvY2ssIGl0cyBhdXRvLWdlbmVyYXRlZCAtLT4KYGBgY29uc29sZQpnbyBnZXQgLXUgZ2l0aHViLmNvbS9scnN0YW5sZXkvZW50cmVzdEBsYXRlc3QKYGBgCjwhLS0gdGVtcGxhdGU6ZW5kOmdvZ2V0IC0tPgoKLS0tCgo8IS0tIHRlbXBsYXRlOmJlZ2luOnN1cHBvcnQgLS0+CjwhLS0gZG8gbm90IGVkaXQgYW55dGhpbmcgaW4gdGhpcyAidGVtcGxhdGUiIGJsb2NrLCBpdHMgYXV0by1nZW5lcmF0ZWQgLS0+CiMjIDpyYWlzaW5nX2hhbmRfbWFuOiBTdXBwb3J0ICYgQXNzaXN0YW5jZQoKKiA6aGVhcnQ6IFBsZWFzZSByZXZpZXcgdGhlIFtDb2RlIG9mIENvbmR1Y3RdKC5naXRodWIvQ09ERV9PRl9DT05EVUNULm1kKSBmb3IKICAgICBndWlkZWxpbmVzIG9uIGVuc3VyaW5nIGV2ZXJ5b25lIGhhcyB0aGUgYmVzdCBleHBlcmllbmNlIGludGVyYWN0aW5nIHdpdGgKICAgICB0aGUgY29tbXVuaXR5LgoqIDpyYWlzaW5nX2hhbmRfbWFuOiBUYWtlIGEgbG9vayBhdCB0aGUgW3N1cHBvcnRdKC5naXRodWIvU1VQUE9SVC5tZCkgZG9jdW1lbnQgb24KICAgICBndWlkZWxpbmVzIGZvciB0aXBzIG9uIGhvdyB0byBhc2sgdGhlIHJpZ2h0IHF1ZXN0aW9ucy4KKiA6bGFkeV9iZWV0bGU6IEZvciBhbGwgZmVhdHVyZXMvYnVncy9pc3N1ZXMvcXVlc3Rpb25zL2V0YywgW2hlYWQgb3ZlciBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vbHJzdGFubGV5L2VudHJlc3QvaXNzdWVzL25ldy9jaG9vc2UpLgo8IS0tIHRlbXBsYXRlOmVuZDpzdXBwb3J0IC0tPgoKPCEtLSB0ZW1wbGF0ZTpiZWdpbjpjb250cmlidXRpbmcgLS0+CjwhLS0gZG8gbm90IGVkaXQgYW55dGhpbmcgaW4gdGhpcyAidGVtcGxhdGUiIGJsb2NrLCBpdHMgYXV0by1nZW5lcmF0ZWQgLS0+CiMjIDpoYW5kc2hha2U6IENvbnRyaWJ1dGluZwoKKiA6aGVhcnQ6IFBsZWFzZSByZXZpZXcgdGhlIFtDb2RlIG9mIENvbmR1Y3RdKC5naXRodWIvQ09ERV9PRl9DT05EVUNULm1kKSBmb3IgZ3VpZGVsaW5lcwogICAgIG9uIGVuc3VyaW5nIGV2ZXJ5b25lIGhhcyB0aGUgYmVzdCBleHBlcmllbmNlIGludGVyYWN0aW5nIHdpdGggdGhlCiAgICBjb21tdW5pdHkuCiogOmNsaXBib2FyZDogUGxlYXNlIHJldmlldyB0aGUgW2NvbnRyaWJ1dGluZ10oLmdpdGh1Yi9DT05UUklCVVRJTkcubWQpIGRvYyBmb3Igc3VibWl0dGluZwogICAgIGlzc3Vlcy9hIGd1aWRlIG9uIHN1Ym1pdHRpbmcgcHVsbCByZXF1ZXN0cyBhbmQgaGVscGluZyBvdXQuCiogOm9sZF9rZXk6IEZvciBhbnl0aGluZyBzZWN1cml0eSByZWxhdGVkLCBwbGVhc2UgcmV2aWV3IHRoaXMgcmVwb3NpdG9yaWVzIFtzZWN1cml0eSBwb2xpY3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9scnN0YW5sZXkvZW50cmVzdC9zZWN1cml0eS9wb2xpY3kpLgo8IS0tIHRlbXBsYXRlOmVuZDpjb250cmlidXRpbmcgLS0+Cgo8IS0tIHRlbXBsYXRlOmJlZ2luOmxpY2Vuc2UgLS0+CjwhLS0gZG8gbm90IGVkaXQgYW55dGhpbmcgaW4gdGhpcyAidGVtcGxhdGUiIGJsb2NrLCBpdHMgYXV0by1nZW5lcmF0ZWQgLS0+CiMjIDpiYWxhbmNlX3NjYWxlOiBMaWNlbnNlCgpgYGAKTUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyNCBMaWFtIFN0YW5sZXkgPGxpYW1AbGlhbS5zaD4KClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCmBgYAoKX0Fsc28gbG9jYXRlZCBbaGVyZV0oTElDRU5TRSlfCjwhLS0gdGVtcGxhdGU6ZW5kOmxpY2Vuc2UgLS0+Cg== readmeEtag: '"4eee2e7fc483c49617429f2efbc27b07bf39eb6f"' readmeLastModified: Sat, 17 Aug 2024 03:24:40 GMT repositoryId: 809436745 description: >- Extension that generates a compliant OpenAPI spec and server implementation created: '2024-06-02T17:24:14Z' updated: '2024-09-05T03:58:46Z' language: Go archived: false stars: 8 watchers: 2 forks: 0 owner: lrstanley logo: https://avatars.githubusercontent.com/u/1847365?v=4 license: MIT repoEtag: '"605be663a8111c5f1f5247d568c0e77bbd2132728142bc4773f84ef89e4af395"' repoLastModified: Thu, 05 Sep 2024 03:58:46 GMT category: Documentation foundInMaster: true - source: openapi3 tags repository: https://github.com/ldej/go-openapi-example v3: true id: 50961b8a85a4eb26a25b492151b8b365 repositoryMetadata: base64Readme: >- IyBnby1vcGVuYXBpLWV4YW1wbGUKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyB0aGUgd29ya2luZyBleGFtcGxlcyBvZiBzZXJ2ZXIgKHN0dWJzKSBnZW5lcmF0ZWQgYnkgZm91ciBkaWZmZXJlbnQgZ2VuZXJhdG9ycywgYW5kIGltcGxlbWVudGVkIHdpdGggYmFzaWMgZnVuY3Rpb25hbGl0eSB0byBkZW1vbnN0cmF0ZSBob3cgdG8gdXNlIHRoZSBnZW5lcmF0ZWQgY29kZS4gW1JlYWQgdGhlIGJsb2cgcG9zdF0oaHR0cHM6Ly9sZGVqLm5sL3Bvc3QvZ2VuZXJhdGluZy1nby1mcm9tLW9wZW5hcGktMy8pIGZvciBtb3JlIGRldGFpbHMgYW5kIHJlc3VsdHMuCg== readmeEtag: '"890046f8e7c4050420ee3e70c3525aa8f09cf7ca"' readmeLastModified: Fri, 23 Jun 2023 05:45:53 GMT repositoryId: 647720230 description: >- Example implementations of Go servers based on generated code from OpenAPI 3 definitions created: '2023-05-31T11:34:44Z' updated: '2024-07-22T23:10:36Z' language: Go archived: false stars: 8 watchers: 2 forks: 2 owner: ldej logo: https://avatars.githubusercontent.com/u/18293312?v=4 repoEtag: '"1b950dbc9b5c540de2b5ade7e9fd1fba1ce65e5a7f9ea127e4c2641266abf8e9"' repoLastModified: Mon, 22 Jul 2024 23:10:36 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/pierre-emmanuelj/open-alldebrid v3: true repositoryMetadata: base64Readme: >- IyBPcGVuIEFsbGRlYnJpZAoKQWxsZGVicmlkIE9wZW5BUEkgR29sYW5nIHdyYXBwZXIKClRoZSBHb2xhbmcgd3JhcHBlciBpcyBnZW5lcmF0ZWQgZnJvbSBhbiBbT3BlbkFQSTMgc3BlY10oLi9hbGxkZWJyaWQueWFtbCkgYmFzZWQgb24gdGhlIG9mZmljaWFsIEFsbGRlYnJpZC5jb20gW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5hbGxkZWJyaWQuY29tLyNnZW5lcmFsLWluZm9ybWF0aW9ucykKCk9wZW4gQWxsZGVicmlkIFN3YWdnZXItdWkgW1Zpc2l0IGhlcmVdKGh0dHBzOi8vcGllcnJlLWVtbWFudWVsai5naXRodWIuaW8vb3Blbi1hbGxkZWJyaWQvKQoKVGhpcyBbT3BlbkFQSSBzcGVjXSguL2FsbGRlYnJpZC55YW1sKSBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBjbGllbnQgbGlicmFyeSBpbiBvdGhlciBsYW5ndWFnZXMhCgojIyBPdmVydmlldwoKVGhpcyBBUEkgY2xpZW50IHdhcyBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSBwcm9qZWN0LgoKLSBBUEkgdmVyc2lvbjogNC4wLjAKLSBQYWNrYWdlIHZlcnNpb246IDEuMC4wCgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXM6CgpgYGBzaGVsbApnbyBnZXQgImdpdGh1Yi5jb20vcGllcnJlLWVtbWFudWVsSi9vcGVuLWFsbGRlYnJpZCIKYGBgCgpBZGQgdGhlIGZvbGxvd2luZyBpbXBvcnQ6CgpgYGBnb2xhbmcKaW1wb3J0ICJnaXRodWIuY29tL3BpZXJyZS1lbW1hbnVlbEovb3Blbi1hbGxkZWJyaWQvY2xpZW50IgpgYGAKCiMjIEV4YW1wbGVzCgpgYGBHb2xhbmcKcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImNvbnRleHQiCgkiZm10IgoJIm9zIgoKCSJnaXRodWIuY29tL3BpZXJyZS1lbW1hbnVlbEovb3Blbi1hbGxkZWJyaWQvY2xpZW50IgopCgpmdW5jIG1haW4oKSB7CglhZ2VudCA6PSAiYWdlbnRfZXhhbXBsZSIgLy8gWW91ciBzb2Z0d2FyZSB1c2VyLWFnZW50LiAoZGVmYXVsdCB0byAib3Blbi1hbGxkZWJyaWQiKQoKCWNvbmZpZ3VyYXRpb24gOj0gY2xpZW50Lk5ld0NvbmZpZ3VyYXRpb24oKQoJY29uZmlndXJhdGlvbi5BZGREZWZhdWx0SGVhZGVyKCJBdXRob3JpemF0aW9uIiwgIkJlYXJlciBBcGlLZXlGcm9tQWxsZGVicmlkIikKCWFwaV9jbGllbnQgOj0gY2xpZW50Lk5ld0FQSUNsaWVudChjb25maWd1cmF0aW9uKQoKCXJlc3AsIHIsIGVyciA6PSBhcGlfY2xpZW50LkRlZmF1bHRBcGkuVXNlckdldChjb250ZXh0LkJhY2tncm91bmQoKSkuQWdlbnQoYWdlbnQpLkV4ZWN1dGUoKQoJaWYgZXJyICE9IG5pbCB7CgkJZm10LkZwcmludGYob3MuU3RkZXJyLCAiRXJyb3Igd2hlbiBjYWxsaW5nIGBEZWZhdWx0QXBpLlVzZXJHZXRgYDogJXZcbiIsIGVycikKCQlmbXQuRnByaW50Zihvcy5TdGRlcnIsICJGdWxsIEhUVFAgcmVzcG9uc2U6ICV2XG4iLCByKQoJfQoKCWZtdC5QcmludGYoIiUjdlxuIiwgcmVzcCkKfQpgYGAKClBvc3NpYmxlIHRvIGFkZCBCZWFyZXIgVG9rZW4gZnJvbSBjb250ZXh0CmBgYEdvbGFuZwpwYWNrYWdlIG1haW4KCmltcG9ydCAoCgkiY29udGV4dCIKCSJmbXQiCgkib3MiCgoJImdpdGh1Yi5jb20vcGllcnJlLWVtbWFudWVsSi9vcGVuLWFsbGRlYnJpZC9jbGllbnQiCikKCmZ1bmMgbWFpbigpIHsKCWFnZW50IDo9ICJhZ2VudF9leGFtcGxlIiAvLyBZb3VyIHNvZnR3YXJlIHVzZXItYWdlbnQuIChkZWZhdWx0IHRvICJvcGVuLWFsbGRlYnJpZCIpCglhdXRoIDo9IGNvbnRleHQuV2l0aFZhbHVlKAoJCWNvbnRleHQuQmFja2dyb3VuZCgpLAoJCW9wZW5hcGljbGllbnQuQ29udGV4dEFjY2Vzc1Rva2VuLCAiQXBpS2V5RnJvbUFsbGRlYnJpZCIsCgkpCgoJY29uZmlndXJhdGlvbiA6PSBjbGllbnQuTmV3Q29uZmlndXJhdGlvbigpCglhcGlfY2xpZW50IDo9IGNsaWVudC5OZXdBUElDbGllbnQoY29uZmlndXJhdGlvbikKCglyZXNwLCByLCBlcnIgOj0gYXBpX2NsaWVudC5EZWZhdWx0QXBpLlVzZXJHZXQoYXV0aCkuQWdlbnQoYWdlbnQpLkV4ZWN1dGUoKQoJaWYgZXJyICE9IG5pbCB7CgkJZm10LkZwcmludGYob3MuU3RkZXJyLCAiRXJyb3Igd2hlbiBjYWxsaW5nIGBEZWZhdWx0QXBpLlVzZXJHZXRgYDogJXZcbiIsIGVycikKCQlmbXQuRnByaW50Zihvcy5TdGRlcnIsICJGdWxsIEhUVFAgcmVzcG9uc2U6ICV2XG4iLCByKQoJfQoKCWZtdC5QcmludGYoIiUjdlxuIiwgcmVzcCkKfQpgYGAKCiMjIERvY3VtZW50YXRpb24gZm9yIEFQSSBFbmRwb2ludHMKCkZpbmQgYWxsIHRoZSBBUEkgRG9jdW1lbnRhdGlvbiBbaGVyZV0oLi9kb2NzL0RlZmF1bHRBcGkubWQpCgpTd2FnZ2VyIFVJIFtoZXJlXShodHRwczovL3BpZXJyZS1lbW1hbnVlbGouZ2l0aHViLmlvL29wZW4tYWxsZGVicmlkLykKCllvdSBjYW4gZXhlY3V0ZSBIVFRQIHJlcXVlc3QgZnJvbSB0aGUgVUkgd2l0aCB5b3VyIFtBbGxkZWJyaWQgQXBpS2V5XShodHRwczovL2FsbGRlYnJpZC5jb20vYXBpa2V5cy8pCgojIyBEb2N1bWVudGF0aW9uIEZvciBBdXRob3JpemF0aW9uCgojIyMgYmVhcmVyQXV0aAoKLSAqKlR5cGUqKjogSFRUUCBCZWFyZXIgdG9rZW4gYXV0aGVudGljYXRpb24KCkV4YW1wbGUKCmBgYGdvbGFuZwphdXRoIDo9IGNvbnRleHQuV2l0aFZhbHVlKGNvbnRleHQuQmFja2dyb3VuZCgpLCBzdy5Db250ZXh0QWNjZXNzVG9rZW4sICJBcGlLZXlGcm9tQWxsZGVicmlkIikKCmNvbmZpZ3VyYXRpb24gOj0gY2xpZW50Lk5ld0NvbmZpZ3VyYXRpb24oKQphcGlfY2xpZW50IDo9IGNsaWVudC5OZXdBUElDbGllbnQoY29uZmlndXJhdGlvbikKCnJlc3AsIHIsIGVyciA6PSBhcGlfY2xpZW50LkRlZmF1bHRBcGkuVXNlckdldChhdXRoKS5BZ2VudChhZ2VudCkuRXhlY3V0ZSgpCmBgYAoKIyMgUG93ZXJlZCBieQoKKiBbb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpCg== readmeEtag: '"5b7ab51e71903f90a406d8669782747211e67aa1"' readmeLastModified: Wed, 19 Jan 2022 16:27:34 GMT repositoryId: 447968956 description: Alldebrid OpenAPI based Golang client wrapper created: '2022-01-14T13:00:45Z' updated: '2024-06-22T00:21:00Z' language: HTML archived: false stars: 8 watchers: 1 forks: 2 owner: pierre-emmanuelJ logo: https://avatars.githubusercontent.com/u/15922119?v=4 license: GPL-3.0 repoEtag: '"4cce9d2f29813e270bcef696dc624042fa5268a1d30429a2759d605a85e8a2b0"' repoLastModified: Sat, 22 Jun 2024 00:21:00 GMT foundInMaster: true category: Low-level Tooling id: 50de2f05b7baa8acd10b8749004070ed - source: openapi3 tags repository: https://github.com/avanov/openapi-client-generator v3: true repositoryMetadata: base64Readme: >- Li4gX2JhZGdlczoKCi4uIGltYWdlOjogaHR0cHM6Ly9naXRodWIuY29tL2F2YW5vdi9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3Ivd29ya2Zsb3dzL0NJL2JhZGdlLnN2Zz9icmFuY2g9ZGV2ZWxvcAogICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2F2YW5vdi9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3IvYWN0aW9ucz9xdWVyeT1icmFuY2glM0FkZXZlbG9wCgouLiBpbWFnZTo6IGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9hdmFub3Yvb3BlbmFwaS1jbGllbnQtZ2VuZXJhdG9yL2JhZGdlLnN2Zz9icmFuY2g9ZGV2ZWxvcAogICAgOnRhcmdldDogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2F2YW5vdi9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3I/YnJhbmNoPWRldmVsb3AKCi4uIGltYWdlOjogaHR0cHM6Ly9yZXF1aXJlcy5pby9naXRodWIvYXZhbm92L29wZW5hcGktY2xpZW50LWdlbmVyYXRvci9yZXF1aXJlbWVudHMuc3ZnP2JyYW5jaD1tYXN0ZXIKICAgIDp0YXJnZXQ6IGh0dHBzOi8vcmVxdWlyZXMuaW8vZ2l0aHViL2F2YW5vdi9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3IvcmVxdWlyZW1lbnRzLz9icmFuY2g9bWFzdGVyCiAgICA6YWx0OiBSZXF1aXJlbWVudHMgU3RhdHVzCgouLiBpbWFnZTo6IGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL29wZW5hcGktY2xpZW50LWdlbmVyYXRvci9iYWRnZS8/dmVyc2lvbj1sYXRlc3QKICAgIDp0YXJnZXQ6IGh0dHBzOi8vb3BlbmFwaS1jbGllbnQtZ2VuZXJhdG9yLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8KICAgIDphbHQ6IERvY3VtZW50YXRpb24gU3RhdHVzCgouLiBpbWFnZTo6IGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvb3BlbmFwaS1jbGllbnQtZ2VuZXJhdG9yLnN2ZwogICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3IKICAgIDphbHQ6IExhdGVzdCBQeVBJIFJlbGVhc2UKCgpPcGVuQVBJIENsaWVudCBHZW5lcmF0b3IKPT09PT09PT09PT09PT09PT09PT09PT09CgpUaGlzIENMSSB1dGlsaXR5IGFsbG93cyB5b3UgdG8gZ2VuZXJhdGUgUHl0aG9uIGNsaWVudCBwYWNrYWdlcyBmcm9tIE9wZW5BUEkgdjMgc3BlY2lmaWNhdGlvbnMuClRoZSBwcm9qZWN0IGFpbXMgYXQgc3VwcG9ydGluZyBhbnkgZ2VuZXJpYyB2YWxpZCBzcGVjaWZpY2F0aW9uLgoKRmVhdHVyZXMKLS0tLS0tLS0KCiogd29ya3Mgb24gUHl0aG9uIDMuOCBhbmQgYWJvdmU7CiogZ2VuZXJhdGVzIGNsaWVudHMgd2l0aCB0eXBlIGhpbnRzIHRvIGFpZCBzdGF0aWMgYW5hbHlzaXMgb2YgaGlnaGVyIGxldmVsIGludGVyZmFjZXMgdGhhdCB3b3VsZCB1c2UgdGhlIGNsaWVudHM7Ciogc3VwcG9ydHMgc3RyZWFtaW5nIGVuZHBvaW50cy4KCkluc3RhbGxhdGlvbgotLS0tLS0tLS0tLS0KCllvdSBjYW4gaW5zdGFsbCBpdCBmcm9tIFB5UEk6CgouLiBjb2RlLWJsb2NrOjogYmFzaAoKICAgIHBpcCBpbnN0YWxsIG9wZW5hcGktY2xpZW50LWdlbmVyYXRvcgoKQWZ0ZXJ3YXJkcywgdXNlIGEgQ0xJIHV0aWxpdHkgY2FsbGVkIGBgb3BlbmFwaS1jbGllbnQtZ2VuZXJhdG9yYGA6CgouLiBjb2RlLWJsb2NrOjogYmFzaAoKICAgICQgb3BlbmFwaS1jbGllbnQtZ2VuZXJhdG9yIC0taGVscAogICAgdXNhZ2U6IG9wZW5hcGktY2xpZW50LWdlbmVyYXRvciBbLWhdIFstVl0ge2dlbn0gLi4uCgogICAgT3BlbkFQSSBDbGllbnQgR2VuZXJhdG9yCgogICAgb3B0aW9uYWwgYXJndW1lbnRzOgogICAgICAtaCwgLS1oZWxwICAgICBzaG93IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBleGl0CiAgICAgIC1WLCAtLXZlcnNpb24gIHNob3cgcHJvZ3JhbSdzIHZlcnNpb24gbnVtYmVyIGFuZCBleGl0CgogICAgc3ViLWNvbW1hbmRzOgogICAgICB2YWxpZCBzdWItY29tbWFuZHMKCiAgICAgIHtnZW59ICAgICAgICAgIGFkZGl0aW9uYWwgaGVscAogICAgICAgIGdlbiAgICAgICAgICBHZW5lcmF0ZSBjbGllbnQgZm9yIGEgcHJvdmlkZWQgc2NoZW1hIChKU09OLCBZQU1MKS4KCgpDb250cmlidXRpbmcKPT09PT09PT09PT09CgpDbG9uaW5nIHRoaXMgcmVwbwotLS0tLS0tLS0tLS0tLS0tLQoKVGhlIHByb3BlciB3YXkgdG8gY2xvbmUgdGhpcyByZXBvIGlzOgoKLi4gY29kZS1ibG9jazo6IGJhc2gKCiAgICBnaXQgY2xvbmUgLS1yZWN1cnNlLXN1Ym1vZHVsZXMgPHJlcG8tdXJsPiA8bG9jYWwtcHJvamVjdC1yb290PgogICAgY2QgPGxvY2FsLXByb2plY3Qtcm9vdD4KCiAgICAjIGZvciBzaG93aW5nIHN1Ym1vZHVsZSBzdGF0dXMgd2l0aCBgZ2l0IHN0YXR1c2AKICAgIGdpdCBjb25maWcgc3RhdHVzLnN1Ym1vZHVsZXN1bW1hcnkgMQoKICAgICMgZm9yIGxvZ2dpbmcgc3VibW9kdWxlIGRpZmYgd2l0aCBgZ2l0IGRpZmZgCiAgICBnaXQgY29uZmlnIGRpZmYuc3VibW9kdWxlIGxvZwoKClRlc3QgZnJhbWV3b3JrCi0tLS0tLS0tLS0tLS0tCgpUaGUgcHJvamVjdCB1c2VzIGBOaXggPGh0dHBzOi8vbml4b3Mub3JnLz5gXyBmb3IgYm9vdHN0cmFwcGluZyBpdHMgZGV2IGVudmlyb25tZW50LgoKWW91IGNhbiBydW4gZXhpc3RpbmcgdGVzdCBzdWl0ZSB3aXRoCgouLiBjb2RlOjoKCiAgICQgbml4LXNoZWxsIC0tcnVuICJtYWtlIHRlc3QiCgoKRG9jdW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tCgpEb2N1bWVudGF0aW9uIGlzIGhvc3RlZCBvbiBSZWFkVGhlRG9jczogaHR0cHM6Ly9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3IucmVhZHRoZWRvY3MuaW8vZW4vZGV2ZWxvcC8KCgpDaGFuZ2Vsb2cKLS0tLS0tLS0tCgpTZWUgYENIQU5HRUxPRyA8aHR0cHM6Ly9naXRodWIuY29tL2F2YW5vdi9vcGVuYXBpLWNsaWVudC1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvQ0hBTkdFTE9HLnJzdD5gXy4KCkxJQ0VOU0UKLS0tLS0tLQoKTUlUCg== readmeEtag: '"3e9eece9b6a624b8f2da6308ee95ec7d48542d1e"' readmeLastModified: Sun, 19 Jun 2022 16:10:51 GMT repositoryId: 324674329 description: >- Generates Python client packages from OpenAPI v3 specifications. The project aims at supporting any generic valid specification. created: '2020-12-27T02:47:03Z' updated: '2024-06-05T00:32:20Z' language: Python archived: false stars: 8 watchers: 3 forks: 2 owner: avanov logo: https://avatars.githubusercontent.com/u/601955?v=4 license: MIT repoEtag: '"e9946991ccbb5a4119d3acd6d3de707819290bd80f3a40be271fb068c7d2f267"' repoLastModified: Wed, 05 Jun 2024 00:32:20 GMT foundInMaster: true category: - SDK - Server Implementations id: dd5e3ca78b17b6b7b556f603493bffa3 - source: openapi3 tags repository: https://github.com/playtikaoss/rapidoc-spring-boot v3: true id: 83ce1dc12859550644790d9d62b58766 repositoryMetadata: base64Readme: >- PSBSYXBpZG9jIFNwcmluZyBCb290IExpYnJhcnkKOnRvYzoKCipUTERSOiogTW9kZXJuIFN3YWdnZXIgVUkgZm9yIHlvdXIgT3BlbiBBcGkgc3BlY2lmaWNhdGlvbiBpbiBTcHJpbmcgQm9vdCBzZXJ2aWNlcy4KCj09IFdobyBpcyBleHBlY3RlZCB0byB1c2UgdGhpcyBsaWJyYXJ5PwoKLSB5b3UgaGF2ZSBPcGVuQXBpIFNwZWNpZmljYXRpb24gZmlsZSBmb3IgeW91ciBBUEk7Ci0geW91IHVzZSBodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3RyZWUvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luW09wZW5BcGkgQ29kZSBHZW5lcmF0b3IgcGx1Z2luXTsKLSB5b3Ugd2FudCBTd2FnZ2VyIFVJIHRvIGJlIGJhc2VkIG9uIG9yaWdpbmFsIE9wZW5BcGkgU3BlY2lmaWNhdGlvbiBmaWxlOwotIHlvdSBsaWtlIGhvdyBodHRwczovL3JhcGlkb2N3ZWIuY29tL2luZGV4Lmh0bWxbUmFwaURvY10gVUkgbG9va3MgbGlrZTsKLSB5b3UgaGF2ZSBTcHJpbmcgQm9vdCBhcHBsaWNhdGlvbi4KCj09IEhvdyBVSSBsb29rcyBsaWtlPwoKaW1hZ2U6OnJhcGlkb2MtdWkucG5nW3dpZHRoPTgwMF0KCk9yIGhhdmUgYSBsb29rIGhlcmU6IGh0dHBzOi8vcmFwaWRvY3dlYi5jb20vZXhhbXBsZXMvcGV0c3RvcmUtZXh0ZW5kZWQuaHRtbAoKPT0gSG93IHRvIGNvbmZpZ3VyZT8KCi4gKltJbXBvcnRhbnRdKiBSZW1vdmUgU3ByaW5nRG9jIGFuZCBTd2FnZ2VyIFVJIGRlcGVuZGVuY2llcworCk1ha2Ugc3VyZSB0aGF0IHRoZXJlIGlzIG5vIGBvcmcuc3ByaW5nZG9jIDogc3ByaW5nZG9jLW9wZW5hcGktdWlgIGFuZCBgb3JnLndlYmphcnMgOiBzd2FnZ2VyLXVpYCBkZXBlbmRlbmNpZXMgb24gY2xhc3NwYXRoLgoKLiBBZGQgZGVwZW5kZW5jeSBgY29tLnBsYXl0aWthIDogcmFwaWRvYy1zcHJpbmctYm9vdGAKKwotLQoKW3NvdXJjZSx4bWxdCi0tLS0KPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5jb20ucGxheXRpa2E8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5yYXBpZG9jLXNwcmluZy1ib290PC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+aW5zZXJ0X3ZlcnNpb25faGVyZTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgotLS0tCi0tCgouIENvbmZpZ3VyZSBwcm9wZXJ0aWVzCisKCnw9PT0KfFByb3BlcnR5IHxEZXNjcmlwdGlvbiB8RGVmYXVsdCB2YWx1ZQoKfGBvcGVuYXBpLnJhcGlkb2MuZW5hYmxlZGAKfEVuYWJsZXMvZGlzYWJsZXMgYXV0b2NvbmZpZ3VyYXRpb24gZm9yIFJhcGlkb2MuCnxgdHJ1ZWAKCnxgb3BlbmFwaS5yYXBpZG9jLm9wZW4tYXBpLXNwZWMuZmlsZS1uYW1lYAp8TmFtZSBvZiB0aGUgT3BlbiBBcGkgU3BlYyBmaWxlLgp8YG9wZW5hcGkueWFtbGAKCnxgb3BlbmFwaS5yYXBpZG9jLm9wZW4tYXBpLXNwZWMucGF0aGAKfFBhdGggdG8gdGhlIE9wZW4gQXBpIFNwZWMgZmlsZSBpbnNpZGUgYC9zcmMvbWFpbi9yZXNvdXJjZXNgIGZvbGRlci4KfGAvb3BlbmFwaS9gCgp8PT09CgoKPT0gQXZhaWxhYmxlIGVuZHBvaW50cwoKTGlicmFyeSBleHBvc2VzIHRoZSBmb2xsb3dpbmcgZW5kcG9pbnRzOgoKLSBgL3YzL2FwaS1kb2NzYCAtLSBwcm92aWRlcyBPcGVuIEFwaSBTcGVjaWZpY2F0aW9uIGZpbGU7Ci0gYC9zd2FnZ2VyLXVpLmh0bWxgIC0tIHByb3ZpZGVzIFJhcGlEb2MgVUkgZm9yIHRoZSBPcGVuIEFwaSBTcGVjaWZpY2F0aW9uLgoKPT0gRGVtbyBwcm9qZWN0CgpEZW1vIHByb2plY3QgaXMgbG9jYXRlZCBpbiBtb2R1bGUgYHJhcGlkb2Mtc3ByaW5nLWJvb3QtZGVtb2AuIFN0YXJ0IGFwcGxpY2F0aW9uIGFuZCBoaXQgYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpLmh0bWxgIGluIGJyb3dzZXIuCgoK readmeEtag: '"4c1217a2a12897a74f822b0211303c5095ef3ff6"' readmeLastModified: Tue, 07 Jun 2022 14:18:00 GMT repositoryId: 499638084 description: Rapidoc Open Api UI for Spring Boot created: '2022-06-03T20:08:47Z' updated: '2023-04-21T05:42:15Z' language: Java archived: false stars: 7 watchers: 6 forks: 0 owner: PlaytikaOSS logo: https://avatars.githubusercontent.com/u/397334?v=4 license: MIT repoEtag: '"82bfe28ddba59c09ad38d17a543d8d76f280527c6ff833ac12635aea78628fb6"' repoLastModified: Fri, 21 Apr 2023 05:42:15 GMT category: SDK foundInMaster: true oldLocations: - https://github.com/playtika/rapidoc-spring-boot - source: openapi3 tags repository: https://github.com/welthee/dinonce v3: true repositoryMetadata: base64Readme: >- IVtkaW5vbmNlX2dvcGhlcl0oZ29waGVyLnBuZykKIyBkaW5vbmNlIC0gYSBkaXN0cmlidXRlZCBub25jZSB0cmFja2VyCgpbIVttYWluIGJyYW5jaF0oaHR0cHM6Ly9naXRodWIuY29tL3dlbHRoZWUvZGlub25jZS9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vd2VsdGhlZS9kaW5vbmNlL2FjdGlvbnMvd29ya2Zsb3dzL21haW4ueW1sKQoKRm9yIG1vc3QgYmxvY2tjaGFpbiBjbGllbnRzIGl0IGlzIGVzc2VudGlhbCB0byBrZWVwIHRyYWNrIG9mIHRyYW5zYWN0aW9uIG5vbmNlcyB0aGF0IHByb3RlY3QgYWdhaW5zdCBkdXBsaWNhdGUgCnRyYW5zYWN0aW9ucyBhbmQgcmVwbGF5IGF0dGFja3MuCgpZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCBub25jZXMgW2hlcmVdKGh0dHBzOi8vbWVkaXVtLmNvbS9zd2xoL2V0aGVyZXVtLXNlcmllcy11bmRlcnN0YW5kaW5nLW5vbmNlLTM4NTgxOTRiMzliZikuCgpOb3JtYWxseSwgYSBub24tcGFydGl0aW9uZWQgY2xpZW50IGFwcGxpY2F0aW9uLCBsaWtlIHlvdXIgbW9iaWxlIHdhbGxldCBhcHAgb3IgTWV0YU1hc2sgd2lsbCBlYXNpbHkgZG8gdGhpcyBmb3IgeW91LCAKYnV0IHRyYWNraW5nIG5vbmNlcyBnZXRzIHRyaWNraWVyIG9uY2UgeW91ciBhcHBsaWNhdGlvbiBuZWVkcyB0byBzcGxpdC1icmFpbiBhbmQgcnVuIGluIGEgZGlzdHJpYnV0ZWQgZmFzaGlvbi4KQ2hlY2sgTWV0YU1hc2sncyBub25jZS10cmFja2VyIGltcGxlbWVudGF0aW9uIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vTWV0YU1hc2svbm9uY2UtdHJhY2tlcikuCgpkaW5vbmNlIGlzIGEgbm9uY2UgdGlja2V0aW5nIHNlcnZpY2Ugd2hpY2ggd2UgdXNlIGF0IFt3ZWx0aGVlXShodHRwczovL3dlbHRoZWUuY29tKSB0byBwcm9jZXNzIHRyYW5zYWN0aW9ucyh0eCkgd2l0aCAKbXVsdGlwbGUgdHggZXhlY3V0b3JzLCBtYWtpbmcgc3VyZSB0aGF0IHdlIGF2b2lkOgoKKiBkb3VibGUgc3BlbmRpbmcKKiBmaWxsaW5nIGEgbmV0d29yaydzIHR4IHBvb2wgYnkgaGF2aW5nIGdhcHMgaW4gb3VyIG5vbmNlIHNlcXVlbmNlcwoKIyMgSG93IGl0IHdvcmtzPyBJbiBhIG51dHNoZWxsLgoqZGlub25jZSogaXMgZGVzaWduZWQgdG8gc3VwcG9ydCB0aWNrZXRpbmcgZm9yIG11bHRpcGxlIG5vbmNlIHNlcXVlbmNlcyBpbiBwYXJhbGxlbC4KCkFuIGlkZW50aXR5IG9uIGEgZ2l2ZW4gYmxvY2tjaGFpbiBzaG91bGQgaGF2ZSBpdCdzIG93biBzZXF1ZW5jZSBvZiBub25jZXMuCipkaW5vbmNlKiBkZWZpbmVzIHN1Y2ggYSBzZXF1ZW5jZSBhcyBhIGBsaW5lYWdlYC4KCkZvciBlYWNoIGxpbmVhZ2UgYSAqZGlub25jZSogY2xpZW50IGNhbiBnZXQgYSBsZWFzZWQgbm9uY2UgKnRpY2tldCogZm9yIGEgdHJhbnNjYXRpb24sIGFuZCBzaG91bGQgc3BlY2lmeSBhIHRpY2tldCAKKmV4dGVybmFsSWQqIHdoaWNoIHNob3VsZCBiZSB1bmlxdWUgZm9yIGEgdHJhbnNhY3Rpb24gZm9yIGEgZ2l2ZW4gbGluZWFnZS4gSW4gb3RoZXIgd29yZHMsIGl0IHNob3VsZCB1bmlxdWVseSBpZGVudGlmeSAKYSBuYXR1cmFsIHRyYW5zYWN0aW9uIGluIHRoZSBjYWxsaW5nIHN5c3RlbS4KCklmIHRoZSBvcGVyYXRpb24gc3VjY2VlZHMsICpkaW5vbmNlKiB3aWxsIHJlc2VydmUgaG9sZCBhIGxlYXNlIGZvciB0aGUgdHgncyBuZXdseSBhc3NvY2lhdGVkIG5vbmNlLgoKU2luY2UgbW9zdCB0eCBleGVjdXRvcnMgKCpkaW5vbmNlKidzIGNsaWVudHMpIG9wZXJhdGUgd2l0aCBhbiAqYXQtbGVhc3Qtb25jZSBzZW1hbnRpY3MqLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB0eCAKd2lsbDoKKiBjb21wbGV0ZSAoYS5rLmEgd2lsbCBiZSBtaW5lZCBvbiB0aGUgYmxvY2tjaGFpbikKKiB3aWxsIGZhaWwgZm9yIG5vbi10cmFuc2llbnQgcmVhc29ucwoKSWYgdGhlIHR4IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHksIHRoZW4gdGhlIGNsaWVudCBpcyBleHBlY3RlZCB0byAqY2xvc2UgdGhlIHRpY2tldCosIG1hcmtpbmcgaXQgdW5sZWFzZS1hYmxlIGZvcmV2ZXIuCklmIHRoZSB0eCBmYWlscywgdGhlIGNsaWVudCBpcyBleHBlY3RlZCB0byBub3RpZnkgKmRpbm9uY2UqIHRvICpyZWxlYXNlKiB0aGUgdGlja2V0LiBJbiB0aGlzIGNhc2UsIGl0IHNob3VsZCBiZSBhc3NpZ25lZAp0byB0aGUgbmV4dCBsZWFzZSByZXF1ZXN0LCBhbmQgYmUgcmUtdXNlZCBhcyBzb29uIGFzIHBvc3NpYmxlLCB0byBhdm9pZCBmaWxsaW5nIG5vZGUgdHggcG9vbHMgb24gdGhlIGJsb2NrY2hhaW4gbmV0d29yay4KCiMjIENsaWVudCBJbnRlZ3JhdGlvbnMKZGlub25jZSBpcyBidWlsdCB1c2luZyBhIGNvbnRyYWN0IGZpcnN0IGFwcHJvYWNoIHdpdGggT3BlbkFQSSAzLjAuClRoZSBBUEkgZGVmaW5pdGlvbiBjYW4gYmUgZm91bmQgW2hlcmVdKC4vYXBpL2FwaS55YW1sKS4KCllvdSBjYW4gZ2VuZXJhdGUgYSBjbGllbnQgbGlicmFyeSBmb3IgdGhlIGxhbmd1YWdlIG9mIHlvdXIgY2hvaWNlIHVzaW5nIHRoZSAKW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKS4KCiMjIERlcGxveW1lbnQKZGlub25jZSBpcyBwYWNrYWdlZCBhcyBhIERvY2tlciBjb250YWluZXIgYW5kIHB1c2hlZCBhdXRvbWF0aWNhbGx5IHRvIApbRG9ja2VyIEh1Yl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yZXBvc2l0b3J5L2RvY2tlci93ZWx0aGVlL2Rpbm9uY2UpLgpJZiB5b3UncmUgaW50ZXJlc3RlZCwgY2hlY2sgb3V0IHRoZSBEb2NrZXJmaWxlIHRoYXQgZ2VuZXJhdGVzIHRoZSBpbWFnZSBbaGVyZV0oLi9Eb2NrZXJmaWxlKS4KClNpbmNlIHdlIGFyZSBmYW5zIG9mIGJvdGggS3ViZXJuZXRlcyBhbmQgVGVycmFmb3JtIHdlIGhhdmUgY3JlYXRlZCBhIEhlbG0gQ2hhcnQgdG8gZWFzeSBkZXBsb3ltZW50IHRvIEt1YmVybmV0ZXMuCipUaGUgdXNlciBpcyByZXNwb25zaWJsZSB0byBjcmVhdGUgdGhlIENvbmZpZ01hcCBgZGlub25jZSBjb25maWdgKiwgd2hpY2ggc2hvdWxkIGNvbnRhaW4gYSBzaW5nbGUgYGNvbmZpZy55YW1sYCBkYXRhCmVudHJ5IGFuZCBoYXZlIHRoZSBzdHJ1Y3R1cmUgc2ltaWxhciB0byBbdGhpcyBleGFtcGxlXSguLy5jb25maWcvY29uZmlnLnlhbWwpLgoKV2UgbGlrZSB0byB0aGluZyBhYm91dCB0aGUgc2VydmljZXMgd2UgcnVuIGFzIHNlbGYtY29udGFpbmVkIFRlcnJhZm9ybSBwcm9qZWN0cyB3aXRoIGNsZWFyIGV4dGVybmFsIGRlcGVuZGVuY2llcywgCnNvIHdlJ3ZlIGNyZWF0ZWQgYSBoYW5keSBUZXJyYWZvcm0gbW9kdWxlIGRpcmVjdG9yeSB0byBoZWxwIHdpdGggZGVwbG95bWVudHMuCgpDdXJyZW50bHkgdGhlcmUgaXMganVzdCBvbmUgbW9kdWxlIHRoYXQgeW91IGNhbiB1c2UsIGNhbGxlZCBgaGVsbS1hd3MtcmRzLXBzcWxgLCB3aGljaCB3aWxsIGNyZWF0ZSBhIG1hbmFnZWQgCkFXUyBSRFMgQXVyb3JhIFBvc3RncmVTUUwgZGF0YWJhc2UsIGNyZWF0ZSBhIG5hbWVzcGFjZSBpbiBrdWJlcm5ldGVzIGFuZCBkZXBsb3kgdGhlIGFmb3JlbWVudGlvbmVkIEhlbG0gQ2hhcnQgdG8geW91ciAKY2x1c3Rlci4KClNlZSBhIHVzYWdlIFtleGFtcGxlIGhlcmVdKC4vZGVwbG95bWVudHMvdGVycmFmb3JtL2V4YW1wbGVzL2hlbG0tYXdzLXJkcy1wc3FsKS4KCiMjIEJhY2tlbmRzCipkaW5vbmNlKiBpcyBkZXNpZ25lZCB0byBzdXBwb3J0IG11bHRpcGxlIHN0b3JhZ2UgYmFja2VuZHMgYXMgbG9uZyBhcyB0aGV5IHJlc3BlY3QgdGhlIGFib3ZlIGRlc2NyaWJlZCBzZW1hbnRpY3MuCgpUaGUgaW5pdGlhbCBiYWNrZW5kIHdlIGFyZSBsYXVuY2hpbmcgaXMgUG9zdGdyZVNRTC4KSWYgeW91J2QgbGlrZSB0byBpbXBsZW1lbnQgYSBuZXcgYmFja2VuZCwgZmVlbCBmcmVlIHRvIGRvIHNvIGFuZCBvcGVuIGEgcHVsbCByZXF1ZXN0Lgo= readmeEtag: '"01dee5c171acaf189969c15b8dc8a9ab358eb2e9"' readmeLastModified: Wed, 02 Aug 2023 14:58:15 GMT repositoryId: 370347071 description: >- A blockchain nonce tracker to be used in distributed tx executors with at-least-once semantics. created: '2021-05-24T12:38:30Z' updated: '2023-07-14T18:34:39Z' language: Go archived: false stars: 7 watchers: 5 forks: 2 owner: welthee logo: https://avatars.githubusercontent.com/u/78427472?v=4 license: MIT repoEtag: '"3a6c742ed7b84fc5ef937559262a42c8833a95a7660103090dae6eeda48cd2d1"' repoLastModified: Fri, 14 Jul 2023 18:34:39 GMT foundInMaster: true category: - Server - Server Implementations id: 1ebe0fcaa1e438fa2065eeb5dcde45e9 - source: openapi3 tags repository: https://github.com/birddevelper/notebookmanager v3: true repositoryMetadata: base64Readme: >- CiMjIE5vdGVCb29rIE1hbmFnZXIKIyMjIFNwcmluZyBib290IFJlc3QgQXBpK3N3YWdnZXIrTXlTUUwrRG9ja2VyIHR1dG9yaWFsCgpOb3RlQm9vayBNYW5hZ2VyIGlzIGEgc2FtcGxlIHRpbnkgYXBwbGljYXRpb24gdGhhdCBwZXJmb3JtcyBDUlVEIGpvYnMgb24gTm90ZWJvb2sgRW50aXR5IHZpYSBSZXN0ZnVsIFdlYnNlcnZpY2VzLgoKSXQgZXhwb3NlcyA1IGVuZHBvaW50IGFzIGZvbGxvd2luZyBsaXN0IDoKCi0gR0VUIC9hcGkvbm90ZWJvb2tzIChnZXQgYSBsaXN0IG9mIG5vdGVib29rKQotIFBPU1QgL2FwaS9ub3RlYm9va3MgKGNyZWF0ZSBhIG5vdGVib29rKQotIEdFVCAvYXBpL25vdGVib29rcy8xIChnZXQgb25lIG5vdGVib29rIGZyb20gdGhlIGxpc3QpCi0gUEFUQ0ggL2FwaS9ub3RlYm9va3MvMSAodXBkYXRlIHRoZSBwcmljZSBvZiBhIHNpbmdsZSBub3RlYm9vaykKLSBERUxFVEUgL2FwaS9ub3RlYm9va3MvMSAoZGVsZXRlIGEgc2luZ2xlIG5vdGVib29rKQoKIyMgSG93IHRvIHNldHVwCkl0IGlzIGEgZG9ja2VyIGJhc2VkIGFwcGxpY2F0aW9uLiBSdW5uaW5nIGJlbG93IGNvbW1hbmQgaW4gcHJvamVjdCdzIGRpcmVjdG9yeSBidWlsZHMgMiBydW5uaW5nIGNvbnRhaW5lcnMsIE5vdGVib29rU2VydmljZSBhbmQgTXlzcWwgY29udGFpbmVycyB3aXRoIGluaXRpYWwgcmVjb3JkczoKCmBgYGJhc2gKZG9ja2VyLWNvbXBvc2UgdXAKYGBgCgoKIyMgSG93IHRvIHVzZQpUaGlzIGFwcGxpY2F0aW9uIGlzIFJlc3RmdWwgYW5kIGl0IGZvbGxvd3MgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIEFQSSBkb2N1bWVudGF0aW9uLiBUaGFua3MgdG8gU3dhZ2dlclVJLCB5b3UgY2FuIHNlZSBlbmRwb2ludHMgZG9jdW1lbnRhdGlvbiBpbiBhIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSBhbmQgdHJ5IHRoZWlyIGZ1bmN0aW9uYWxpdHkgYW5kIHNlZSB0aGUgcmVzcG9uc2UuIEFmdGVyIHJ1bm5pbmcgdGhlIGNvbnRhaW5lcnMsIHlvdSBjYW4gYWNjZXNzIHRoZSBhcHBsaWNhdGlvbiBsaW5rcyBhcyA6CgotIEFwcGxpY2F0aW9uIFJlc3Qgc2VydmljZXMgOiBodHRwOi8vbG9jYWxob3N0OjgwOTAvYXBpL25vdGVib29rcwotIFN3YWdnZXJVSSA6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA5MC9zd2FnZ2VyLXVpLmh0bWwKCgoKIyMgVGVzdAoKVGVzdHMgYXJlIHdyaXR0ZW4gd2l0aCBIMiBpbi1tZW1vcnkgZGF0YWJhc2Ugd2l0aCBpbml0aWFsIHJlY29yZHMuCgoKIyMgTGluawoKW1RoaXMgcmVwb3NpdG9yeSBiZWxvbmdzIHRvIFNwcmluZyBib290IFJlc3QgQXBpK3N3YWdnZXIrTXlTUUwrRG9ja2VyIHR1dG9yaWFsXShodHRwczovL21zaGFlcmkuY29tL2Jsb2cvcmVzdGZ1bC1zcHJpbmctYm9vdC1hcHBsaWNhdGlvbi1zd2FnZ2VyLW15c3FsLWRvY2tlci1hLXJlYWwtd29ybGQtZXhhbXBsZS8pCg== readmeEtag: '"fa55b0751218cb016b358f16a0c5e25c0d43ca27"' readmeLastModified: Tue, 14 Feb 2023 19:20:00 GMT repositoryId: 455494383 description: >- A Real World Example for Open API Restful Spring boot Application + Swagger + MySQL + Docker created: '2022-02-04T09:48:40Z' updated: '2023-09-22T03:37:18Z' language: Java archived: false stars: 7 watchers: 2 forks: 5 owner: birddevelper logo: https://avatars.githubusercontent.com/u/20352967?v=4 repoEtag: '"5e26b9dbec9d76a2f0f59a4f675839a5ebb898c08974599cff8cf00d0149711d"' repoLastModified: Fri, 22 Sep 2023 03:37:18 GMT foundInMaster: true category: Server Implementations id: 0ba2ea8447cfc632560b3b64c4551d19 - source: openapi3 tags repository: https://github.com/mockoon/commons-server v3: true repositoryMetadata: base64Readme: >- PiAjIPCfk6ZUaGlzIHJlcG9zaXRvcnkgaGFzIGJlZW4gYXJjaGl2ZWQuIFdlIGtlZXAgaXQgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gWW91IHdpbGwgZmluZCBNb2Nrb29uJ3MgbmV3IG1vbm9yZXBvIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uKS4KCjxkaXYgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbSIgYWx0PSJtb2Nrb29uIGxvZ28iPgogICAgPGltZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9sb2dvLXNxdWFyZS1hcHAucG5nIj4KICA8L2E+CiAgPGJyPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9XZWJzaXRlLUdvLWdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckI9MTk5N2M2Ii8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vbmV3c2xldHRlci8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL05ld3NsZXR0ZXItU3Vic2NyaWJlLWdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0dldE1vY2tvb24iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXJfQEdldE1vY2tvb24tZm9sbG93LWJsdWUuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQj0xZGExZjIiLz48L2E+CiAgPGEgaHJlZj0iW2h0dHBzOi8vZGlzY29yZC5nZy9GdEpqa2VqS0dwXShodHRwczovL21vY2tvb24uY29tL2Rpc2NvcmQvKSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC1nby1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckE9NmM4NGQ5JmNvbG9yQj0xZGExZjIiLz48L2E+ICAKICA8YnI+CiAgPGJyPgogIDxoMT5Nb2Nrb29uOiBhd2Vzb21lIEFQSSBtb2NraW5nPC9oMT4KPC9kaXY+CgojIyBNb2Nrb29uJ3MgZG9jdW1lbnRhdGlvbgoKWW91IHdpbGwgZmluZCBNb2Nrb29uJ3MgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vbW9ja29vbi5jb20vZG9jcy9sYXRlc3QvYWJvdXQvKSBvbiB0aGUgb2ZmaWNpYWwgd2Vic2l0ZS4gSXQgY292ZXJzIE1vY2tvb24ncyBtb3N0IGNvbXBsZXggZmVhdHVyZXMuIEZlZWwgZnJlZSB0byBjb250cmlidXRlIG9yIGFzayBmb3IgbmV3IHRvcGljcyB0byBiZSBjb3ZlcmVkLgoKIyMgQ2hhbmdlbG9ncwoKWW91IHdpbGwgZmluZCBNb2Nrb29uIGFwcGxpY2F0aW9ucyBbY2hhbmdlbG9nc10oaHR0cHM6Ly9tb2Nrb29uLmNvbS9yZWxlYXNlcy8pIG9uIHRoZSBvZmZpY2lhbCB3ZWJzaXRlLgoKIyMgU3VwcG9ydC9mZWVkYmFjawoKWW91IGNhbiBkaXNjdXNzIGFsbCB0aGluZ3MgcmVsYXRlZCB0byBNb2Nrb29uIGFuZCBhc2sgZm9yIGhlbHAgb24gdGhlIFtvZmZpY2lhbCBjb21tdW5pdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vZGlzY3Vzc2lvbnMpLiBJdCdzIGFsc28gYSBnb29kIHBsYWNlIHRvIGRpc2N1c3MgYnVncyBhbmQgZmVhdHVyZSByZXF1ZXN0cyBiZWZvcmUgb3BlbmluZyBhbiBpc3N1ZSBvbiB0aGlzIHJlcG9zaXRvcnkuIEZvciBtb3JlIGNoYXQtbGlrZSBkaXNjdXNzaW9ucywgeW91IGNhbiBhbHNvIGpvaW4gb3VyIFtEaXNjb3JkIHNlcnZlcl0oaHR0cHM6Ly9kaXNjb3JkLmdnL0Z0SmprZWpLR3ApLgoKIyMgQ29udHJpYnV0aW5nCgpJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHRvIE1vY2tvb24sIHBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZWxpbmVzXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uL2Jsb2IvbWFpbi9DT05UUklCVVRJTkcubWQpLgoKUGxlYXNlIGFsc28gdGFrZSBhIGxvb2sgYXQgb3VyIFtDb2RlIG9mIENvbmR1Y3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL0NPREVfT0ZfQ09ORFVDVC5tZCkuCgojIyBSb2FkbWFwCgpJZiB5b3Ugd2FudCB0byBrbm93IHdoYXQgd2lsbCBiZSBjb21pbmcgaW4gdGhlIG5leHQgcmVsZWFzZSB5b3UgY2FuIGNoZWNrIHRoZSBnbG9iYWwgW1JvYWRtYXBdKGh0dHBzOi8vbW9ja29vbi5jb20vcHVibGljLXJvYWRtYXAvKS4KCk5ldyByZWxlYXNlcyB3aWxsIGJlIGFubm91bmNlZCBvbiBNb2Nrb29uJ3MgW1R3aXR0ZXIgYWNjb3VudCBAR2V0TW9ja29vbl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9HZXRNb2Nrb29uKSBhbmQgdGhyb3VnaCB0aGUgbmV3c2xldHRlciB0byB3aGljaCB5b3UgY2FuIHN1YnNjcmliZSBbaGVyZV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9uZXdzbGV0dGVyLykuCg== readmeEtag: '"ac92fd7f721c6cffbabcfec4bae97460d2092795"' readmeLastModified: Fri, 12 Jul 2024 09:45:28 GMT repositoryId: 349472277 description: Mockoon's commons library. Used in Mockoon desktop application and CLI. created: '2021-03-19T15:36:31Z' updated: '2024-07-12T09:46:40Z' language: TypeScript archived: true stars: 7 watchers: 4 forks: 11 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: MIT repoEtag: '"e7d139be9423551efeaa057ec627715cd47a1a7f00c1d681a76bec0def225d1c"' repoLastModified: Fri, 12 Jul 2024 09:46:40 GMT foundInMaster: true category: Testing id: 3cf2cec48c6ea4aefaa8fc5d0db7b73c - source: openapi3 tags repository: https://github.com/soundsmagic/ableton-react-remote v3: true id: b2e1eed86888f15f04ddcd02598181fb repositoryMetadata: base64Readme: >- QkFDS0dST1VORAoKQSBzY2hvb2wgcHJvamVjdCBmb3IgbXkgdGhlc2lzIGFyb3VuZCB0aGUgcG9zc2liaWxpdGllcy9kaWZmaWN1bHRpZXMgb2YgaW50ZWdyYXRpbmcgdXNlci1kZXZlbG9wZWQgc29sdXRpb25zIGludG8gREFXcyAoRGlnaXRhbCBBdWRpbyBXb3Jrc3RhdGlvbnMpLgpJIHN0dWRpZWQgaW50byBlbGV2ZW4gb2YgdGhlIG1vc3QgY29tbW9uIERBV3MsIHRlbiBvZiB0aGVtIG9uIHRoZSBzdXJmYWNlIHRocm91Z2ggcmVndWxhciByZXNlYXJjaCBhbmQgb25lIG9mIHRoZW0gLSBBYmxldG9uIExpdmUgLSBtb3JlIHRob3JvdWdobHkgCmJ5IGRldmVsb3BpbmcgdGhpcyBhcHBsaWNhdGlvbi4gKElmIGFueW9uZSBpcyBpbnRlcmVzdGVkIGluIG15IHRoZXNpcyByZXBvcnQgSSBjYW4gc2VuZCBpdCAtIGFsdGhvdWdoIGl0J3MgaW4gc3dlZGlzaC4uLikKCkkndmUgdXNlZCBBYmxldG9uIGZvciBsaXZlIGtleWJvYXJkcyB0aGUgcGFzdCB5ZWFycywgYW5kIG9ubHkgZ290IHNvIGZhciB3aXRoIENseXBoWCBQcm8gKyBUb3VjaE9TQy4gVGhpcyBpZGVhIG9mIGNyZWF0aW5nIGEgZnVsbHkgY3VzdG9taXplZCBmcm9udCBlbmQgZm9yIG15Cm5lZWRzIGhhcyBiZWVuIHdpdGggbXkgZm9yIGEgZmV3IHllYXJzLCBzbyBJIGRlY2lkZWQgdG8gdGFrZSB0aGlzIG9wcG9ydHVuaXR5IHRvIG1ha2UgYSBmaXJzdCBzaW1wbGUgdmVyc2lvbiBvZiBpdC4KCkVYVEVORElORyBBQkxFVE9OIExJVkUKClRvIHVzZSBhbmQgdW5kZXJzdGFuZCB0aGlzIHByb2plY3QsIHlvdSBuZWVkIHRvIGJlIHNvbWV3aGF0IGZhbWlsaWFyIHdpdGggQWJsZXRvbiBMaXZlIGFuZCBpdHMgTUlESSBSZW1vdGUgU2NyaXB0cyBmZWF0dXJlcy4gU2luY2UgZGV2ZWxvcG1lbnQgb2YgeW91ciBvd24gc2NyaXB0cwppc24ndCBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBBYmxldG9uIChidXQgbm90IHByb2hpYml0ZWQpLCBpdCBjYW4gYmUgc29tZXdoYXQgdHJpY2t5IHRvIGZpbmQgaW5mb3JtYXRpb24gKGJ1dCBub3QgaGFyZGVyIHRoYW4gc3BlbmRpbmcgc29tZSBleHRyYSB0aW1lIGF0IHlvdXIKZmF2b3VyaXRlIHNlYXJjaCBlbmdpbmUpLiBUaGUgc2hvcnQgdmVyc2lvbiBpcyB0byBjcmVhdGUgYW4gYXJiaXRyYXJpbHkgbmFtZWQgZm9sZGVyIGluIEFibGV0b24ncyBNSURJIFJlbW90ZSBTY3JpcHRzIGRpcmVjdG9yeSwgdGhlbiBwbGFjZSB0aGUgY29udGVudHMgb2YgdGhlIAoiY3lvdy1iYWNrLWVuZCIgZm9sZGVyIGludG8gaXQsIGFsb25nIHdpdGggdGhlICJidWlsZCIgZm9sZGVyIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBidWlsZGluZyB0aGUgUmVhY3QgZnJvbnQgZW5kLiBXaGVuIHN0YXJ0aW5nIEFibGV0b24sIHRoZSBjcmVhdGVkIGZvbGRlciBzaG91bGQKYXBwZWFyIGluIHRoZSBDb250cm9sIFN1cmZhY2UgbGlzdCBvZiB0aGUgTUlESSB0YWIgaW4gUHJlZmVyZW5jZXMuCgpDSE9JQ0VTIC8gRlVUVVJFCgpPbmUgb2YgbXkgZ29hbHMgd2l0aCB0aGUgcHJvamVjdCB3YXMgdG8gbGVhcm4gUHl0aG9uIGJldHRlciwgc28gSSBjaG9zZSB0byBzdHVmZiBhbGwgYmFjayBlbmQgZnVuY3Rpb25hbGl0eSBpbnRvIHRoZSBNSURJIFJlbW90ZSBTY3JpcHQuIFRoaXMgZ29hbCBhbHNvIGhlbHBlZCBtZSB0bwpub3Qgc2h5IGF3YXkgZnJvbSB3cml0aW5nIGFsbCB0aGUgV1NHSSBzZXJ2ZXIvYXBwbGljYXRpb24gY29kZSBmcm9tIHNjcmF0Y2gsIHdoZW4gSSBmb3VuZCB0aGF0IHRoZSBQeXRob24gaW50ZXJwcmV0ZXIgdGhhdCdzIGJ1aWx0IGludG8gTGl2ZSBkb2Vzbid0IGNvbnRhaW4gdGhlIGZ1bGwgClB5dGhvbiBzdGFuZGFyZCBtb2R1bGUgbGlicmFyeSAoYW5kIGltcG9ydGluZyBtb2R1bGVzIGF0IHJ1bnRpbWUgcHJvdmVkIHRvIGJlIGEgZ3JlYXRlciBjaGFsbGVuZ2UgdGhhbiBJIGNvdWxkIGhhbmRsZSBhdCB0aGUgdGltZSksIHRoZXJlYnkgcHJldmVudGluZyBtZSBmcm9tIHVzaW5nCnJlYWR5IG1hZGUgZnJhbWV3b3Jrcy4gVGhpcyBibG9nIHNlcmllcyBoZWxwZWQgbWUgdHJlbWVuZG91c2x5IHRocm91Z2ggd3JpdGluZyB0aGUgV1NHSSBzdHVmZjogaHR0cHM6Ly9tbGV1ZS5jb20vcG9zdHMvbGV0cy1idWlsZC1vdXItb3duLWZhc3RhcGkvCgpJIHdhbnRlZCB0byB1c2UgUmVhY3Qgd2l0aCBSZWR1eCBhbmQgUlRLIFF1ZXJ5IGZvciB0aGUgZnJvbnQgZW5kLCBzaW5jZSBJIHN0YXJ0ZWQgbGVhcm5pbmcgdGhhdCBzaG9ydGx5IGJlZm9yZSB0aGlzIHByb2plY3QgYW5kIHdhbnRlZCB0aGUgcHJhY3RpY2UuCgpNeSB2aXNpb24gb2YgYSBjb21wbGV0ZSBhbmQgc3RhYmxlIHJlbW90ZSBhcHBsaWNhdGlvbiBmb3IgQWJsZXRvbiBMaXZlLCBmb2N1c2VkIG9uIGtleWJvYXJkcyBhbmQgYmFja2luZyB0cmFja3MgZm9yIGxpdmUgdXNlIGFuZCB0YWlsb3JlZCBmb3IgbXkgdXNlIGNhc2VzLCBpcyBzdGlsbApzb21ldGhpbmcgSSB3YW50IHRvIGFjaGlldmUuIEkga25ldyBlYXJseSBvbiB0aGF0IEkgd2FudGVkIHRoZSBmcm9udCBlbmQgdG8gcmVmbGVjdCBjaGFuZ2VzIGRvbmUgb24gbXkgbGFwdG9wLCB3aGljaCBJIGludGVuZGVkIHRvIGltcGxlbWVudCB3aXRoIFdlYnNvY2tldHMgaW4gYQpjb21pbmcgdmVyc2lvbi4gQWZ0ZXIgcmVzZWFyY2hpbmcgdGhlIHN1YmplY3QsIEkgcmVhbGl6ZWQgdGhhdCB0aGlzIHdhcyBzb21ldGhpbmcgSSBkaWRuJ3Qgd2FudCB0byBsZWFybiB0byB3cml0ZSBmcm9tIHNjcmF0Y2ggaW4gUHl0aG9uIGF0IHRoZSBtb21lbnQuIFRoZXJlZm9yZSwgSSdtCmNoYW5naW5nIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGUgb3RoZXIgcmVzb3VyY2UgdGhhdCBoZWxwZWQgbWUgYSBncmVhdCBkZWFsIGluIHRoaXMgcHJvamVjdCAtIEFibGV0b25KUzogaHR0cHM6Ly9naXRodWIuY29tL2xlb2xhYnMvYWJsZXRvbi1qcwoKVGhlIHdlYiBzZXJ2ZXIgd2lsbCBnb2luZyBmb3J3YXJkIGJlIGEgc2VwYXJhdGUgTm9kZSBhcHBsaWNhdGlvbiwgd2hpY2ggY2FuIHRhbGsgV2Vic29ja2V0cyB3aXRoIHRoZSBmcm9udCBlbmQgYW5kIGxldCBBYmxldG9uSlMgdGFrZSBjYXJlIG9mIHRoZSBjb21tdW5pY2F0aW9uIHdpdGgKQWJsZXRvbiBMaXZlIGFuZCB0aGUgTUlESSBSZW1vdGUgU2NyaXB0cy4gU2luY2UgdGhpcyB3aWxsIGNoYW5nZSB0aGUgYXBwbGljYXRpb24gcXVpdGUgYSBiaXQsIEkgZGVjaWRlZCB0byBsZWF2ZSB0aGlzIHJlcG9zaXRvcnkgYXMgaXQgaXMgYW5kIGNvbnRpbnVlIG15IGRldmVsb3BtZW50CmluIGEgbmV3IHJlcG8uIFRoYXQgd2F5IHRoaXMgcmVwbyBjYW4gc3RhbmQgYXMgYSBmdW5jdGlvbmluZyBleGFtcGxlIGZvciBvdGhlcnMgd2FudGluZyB0byBnbyB0aGlzIHdheSBvZiBhIG5vLWZyYW1ld29yayBXU0dJIHNlcnZlci9hcHBsaWNhdGlvbi4K readmeEtag: '"4287b0216ce35638bffb2ab0801c8e4e7f1ae921"' readmeLastModified: Sat, 30 Jul 2022 15:23:46 GMT repositoryId: 454422973 description: An application for remote controlling Ableton Live from a React front end created: '2022-02-01T14:38:30Z' updated: '2023-11-06T20:47:09Z' language: TypeScript archived: false stars: 7 watchers: 0 forks: 0 owner: soundsmagic logo: https://avatars.githubusercontent.com/u/76114226?v=4 repoEtag: '"b17c57a744c415f93449a3e5b56485ff0131a1b5937cd2e0fde536d2f8a1f137"' repoLastModified: Mon, 06 Nov 2023 20:47:09 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/rinold/steamer v3: true repositoryMetadata: base64Readme: >- IyBTdGVhbWVyCgpDb21tYW5kIGxpbmUgdG9vbCBmb3IgW1ZhcG9yXShodHRwczovL3ZhcG9yLmNvZGVzKSBzdHViICh0ZW1wbGF0ZSkgc2VydmVyIGdlbmVyYXRvciBmcm9tIHRoZSBbT3BlbkFQSV0oaHR0cHM6Ly9vcGVuYXBpcy5vcmcvKSAoU3dhZ2dlcikgc3BlY2lmaWNhdGlvbiB3cml0dGVuIGluIFN3aWZ0LgoKIyMjIFRhcmdldGVkIHN1cHBvcnRlZCB2ZXJzaW9uczoKLSBWYXBvciAzCi0gT3BlbkFQSSAzLjAuKiAoW0N1cnJlbnQgbGF0ZXN0IC0gMy4wLjEgU3BlY10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjEubWQpKQoKIyMjIENvbmNlcHQKVGhlIE9wZW5BUEkgZGVmaW5pdGlvbiBvZiBBUEkgZGVzaWduIGlzIGEgZ3JlYXQgYmFzZSB0aGF0IGNvdWxkIGFsbG93IHRvIGNyZWF0ZSBhdXRvZ2VuZXJhdGVkIGNvZGUgdGhhdDoKLSBXb3VsZCAqKmJlIHdlbGwtZG9jdW1lbnRlZCoqIC0gYXMgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbiBieSBpdHNlbGYgaWRlYWxseSBzaG91bGQgYmUgYSAnZG9jdW1lbnRhdGlvbicgZm9yIGNsaWVudCBkZXZlbG9wZXJzIGl0IGNvdWxkIGJlIGF1dG9tYXRpY2FsbHkgYnJvdWdodCB0byB0aGUgU3dpZnQgY29kZSBkZWZpbml0aW9ucy4KLSBXb3VsZCAqKnNoYXJlIHRoZSBnZW5lcmF0ZWQgTW9kZWxzIGFuZCBSZXF1ZXN0L1Jlc3BvbnNlIGNvZGUqKiAgYXMgbXVjaCBhcyBwb3NzaWJsZSAqKmJldHdlZW4qKiB0aGUgUkVTVGZ1bCAqKnNlcnZlciBhbmQgY2xpZW50KiogYXBwbGljYXRpb24gd2hpY2ggYXV0b21hdGljYWxseSB3b3VsZCBlbnN1cmUgc2VyaWFsaXNhdGlvbiBvZiBkYXRhIHBhc3NlZCBiZXR3ZWVuIHNlcnZlciBhbmQgY2xpZW50IGlzIFNBTUU6CiAgLSBObyBtb3JlIHR5cG9zLWVycm9yIGRlYnVnZ2luZyBvZiBmYWlsZWQgcmVxdWVzdHMgKGUuZy4gd2hlbiBvbmUgc2lkZSBzZW5kcyAnbGljZW5jZScgaW5zdGVhZCBvZiAnbGljZW5zZScpCiAgLSBObyBtb3JlIHRyaWNreSBlcnJvcnMgb2YgZGF0YSB0eXBlcyBjb252ZXJzaW9ucyAobGlrZSBJbnQ2NCB2cyBJbnQzMiwgdGhlIERhdGUgZm9ybWF0cywgZXRjLikKICAtIFNoYXJlZCBtb2RlbHMgd291bGQgYmUgYSBTSU5HTEUgcGxhY2UgeW91IG5lZWQgdG8gY2hhbmdlIGlmIHJlcXVpcmVkCi0gV291bGQgKipiZSBleHRlbnNpYmxlKiosIGlkZWFsbHkgYWxsb3dpbmcgaW5jcmVtZW50YWwgdXBkYXRlcyBvZiBjb2RlIGZyb20gdGhlIHVwZGF0ZWQgT3BlbkFQSSBkZWZpbml0aW9uIHdpdGggbWluaW1hbCBpbXBhY3Qgb24gbWFudWFsbHkgYWRkZWQgY29kZS4KLSBXb3VsZCAqKmJlIHNpbXBsZSBhbmQgU3dpZnR5KiosIGNyZWF0ZWQgc28gdGhhdCB0aG91Z2h0cyBsaWtlICdpdCB3b3VsZCBiZSBlYXNpZXIgdG8gZGVsZXRlIGFuZCByZXdyaXRlIGl0JyBzaG91bGQgbmV2ZXIgYXBwZWFyIGluIGRldmVsb3BlciBoZWFkIHdoZW4gaGUgc2VlcyBpdC4KCiMjIyBHb2FscwotIEVuY291cmFnZSB0aGUgW0FQSSBkZXNpZ24gZmlyc3RdKGh0dHBzOi8vc3dhZ2dlcmh1Yi5jb20vYmxvZy9hcGktZGVzaWduL2Rlc2lnbi1maXJzdC1vci1jb2RlLWZpcnN0LWFwaS1kZXZlbG9wbWVudC8pIGlmIGl0IHN1aXRzIHlvdXIgbmVlZHMhCi0gTWFrZSBpbXBsZW1lbnRhdGlvbiBhbmQgcHJvdG90eXBpbmcgb2YgUkVTVGZ1bCBzZXJ2ZXJzIHVzaW5nIFZhcG9yIGV2ZW50IG1vcmUgZWFzaWVyIGJ5IG1pbmltaXNpbmcgYm9pbGVycGxhdGUgY29kaW5nCi0gTWVldCBpbmNyZWRpYmxlIGFuZCBhbWF6aW5nIFN3aWZ0IHByb2Zlc3Npb25hbHMgd2hvIHdvdWxkIGxpa2UgdG8gam9pbiBhbmQgY29udHJpYnV0ZSB0byB0aGlzIHByb2plY3QhIDopCgojIyMgRmVhdHVyZXMgLSBUQkQsIHN0YXJ0aW5nIGxpc3QgdG8gdGhpbmsgb2YuLi4KLSBHZW5lcmF0aW9uIG9mIHN0dWJiZWQgQVBJIHNlcnZlciBmcm9tIE9wZW5BUEkgZG9jdW1lbnQ6CiAgLSBNb2RlbHMKICAtIENvbnRyb2xsZXJzCiAgLSBSb3V0aW5nCiAgLSBldmVyeXRoaW5nIGVsc2UgbmVlZGVkIHRvIHJ1bgotIFVzZSBTZWN1cml0eSBTY2hlbWUgZGVmaW5pdGlvbnMgZm9yIGF1dGhvcml6YXRpb24gYW5kIGF1dGhlbnRpZmljYXRpb24gc3VwcG9ydAotIE1vY2sgcmVzcG9uc2VzIHdpdGggZGF0YSBleGFtcGxlcyBpZiBwcm92aWRlZAotIENvbW1lbnRzIC8gZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uCi0gLi4uCgojIyMgQ29udHJpYnV0aW9uCklzIHdlbGNvbWUhIEpvaW4gYW5kIGJlIHRoZSBmaXJzdCBvbmUgY29tbWl0aW5nIHJlYWwgY29kZSEgIApZb3VyIGNhbiBjb250YWN0IG1lIHZpYSBlbWFpbDogW21paGFpbC5jaHVyYmFub3ZAZ21haWwuY29tXShtYWlsdG86bWloYWlsLmNodXJiYW5vdkBnbWFpbC5jb20pCgojIyMgRGVwZW5kZW5jaWVzIChQb3RlbnRpYWwpCi0gW1N3YWdnZXJQYXJzZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9BdHRpbGFUaGVGdW4vU3dhZ2dlclBhcnNlcikgLSBTd2lmdCBsaWJyYXJ5IGZvciBwYXJzaW5nIE9wZW5BUEkgMi4wIChmLmsuYS4gU3dhZ2dlcikgZG9jdW1lbnRzIGludG8gbmF0aXZlIHN0cnVjdHVyZXMgKE9wZW5BUEkgMy4wIHN1cHBvcnQgaXMgImFscGhhIi1yZWFkeSwgY3VycmVudGx5IG9uIFtmb3JrXShodHRwczovL2dpdGh1Yi5jb20vcmlub2xkL1N3YWdnZXJQYXJzZXIvdHJlZS9vcGVuYXBpLTMpKS4KLSBbP10gW1lhbXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9qcHNpbS9ZYW1zKSAtIEEgU3dlZXQgYW5kIFN3aWZ0eSBZQU1MIHBhcnNlci4KLSBbP10gW1N0ZW5jaWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9reWxlZi9TdGVuY2lsKSAvIFtMZWFmXShodHRwczovL2dpdGh1Yi5jb20vdmFwb3IvbGVhZikgb3IgLi4uIC0gbmVlZCB0byBjaG9vc2Ugc29tZXRoaW5nIGZvciB0ZW1wbGF0aW5nLgo= readmeEtag: '"5e38f17da8047fb317904041a4f70834be32d5ac"' readmeLastModified: Fri, 29 Jun 2018 15:23:04 GMT repositoryId: 115447708 description: Vapor simple CRUD-server generator created: '2017-12-26T19:01:47Z' updated: '2022-03-22T06:55:36Z' language: Swift archived: false stars: 7 watchers: 2 forks: 0 owner: rinold logo: https://avatars.githubusercontent.com/u/2253795?v=4 license: MIT repoEtag: '"43a4c6bc65a9971adeac65c3ee1a34251c61cea98a15afe2fd2a395211eab7f5"' repoLastModified: Tue, 22 Mar 2022 06:55:36 GMT foundInMaster: true category: - Server - Parsers id: 8ad741c3a7108e9b58b9bda5e3524ad2 - source: openapi3 tags repository: https://github.com/taskiq-python/aiohttp-deps v3: true id: 9930662c3938ea0a73abd4e4169f027f repositoryMetadata: base64Readme: >- WyFbUHlQSSAtIFB5dGhvbiBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9haW9odHRwLWRlcHM/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9haW9odHRwLWRlcHMvKQpbIVtQeVBJXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9haW9odHRwLWRlcHM/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9haW9odHRwLWRlcHMvKQpbIVtQeVBJIC0gRG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvZG0vYWlvaHR0cC1kZXBzP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL3B5cGlzdGF0cy5vcmcvcGFja2FnZXMvYWlvaHR0cC1kZXBzKQoKIyBBaW9IVFRQIGRlcHMKCgpUaGlzIHByb2plY3Qgd2FzIGluaXRpYWxseSBjcmVhdGVkIHRvIHNob3cgdGhlIGFiaWxsaXRpZXMgb2YgW3Rhc2tpcS1kZXBlbmRlbmNpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS90YXNraXEtcHl0aG9uL3Rhc2tpcS1kZXBlbmRlbmNpZXMpIHByb2plY3QsIHdoaWNoIGlzIHVzZWQgYnkgW3Rhc2tpcV0oaHR0cHM6Ly9naXRodWIuY29tL3Rhc2tpcS1weXRob24vdGFza2lxKSB0byBwcm92aWRlIHlvdSB3aXRoIHRoZSBiZXN0IGV4cGVyaWVuY2Ugb2Ygc2VuZGluZyBkaXN0cmlidXRlZCB0YXNrcy4KClRoaXMgcHJvamVjdCBhZGRzIFtGYXN0QVBJXShodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZmFzdGFwaSktbGlrZSBkZXBlbmRlbmN5IGluamVjdGlvbiB0byB5b3VyIFtBaW9IVFRQXShodHRwczovL2dpdGh1Yi5jb20vYWlvLWxpYnMvYWlvaHR0cCkgYXBwbGljYXRpb24gYW5kIHN3YWdnZXIgZG9jdW1lbnRhdGlvbiBiYXNlZCBvbiB0eXBlcy4KClRvIHN0YXJ0IHVzaW5nIGRlcGVuZGVuY3kgaW5qZWN0aW9uLCBqdXN0IGluaXRpYWxpemUgdGhlIGluamVjdG9yLgoKYGBgcHl0aG9uCmZyb20gYWlvaHR0cCBpbXBvcnQgd2ViCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBpbml0IGFzIGRlcHNfaW5pdAoKCmFwcCA9IHdlYi5BcHBsaWNhdGlvbigpCgoKYXBwLm9uX3N0YXJ0dXAuYXBwZW5kKGRlcHNfaW5pdCkKCndlYi5ydW5fYXBwKGFwcCkKCmBgYAoKCklmIHlvdSB1c2UgbXlweSwgdGhlbiB3ZSBoYXZlIGEgY3VzdG9tIHJvdXRlciB3aXRoIHByb3BwZXIgdHlwZXMuCgoKYGBgcHl0aG9uCmZyb20gYWlvaHR0cCBpbXBvcnQgd2ViCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBpbml0IGFzIGRlcHNfaW5pdApmcm9tIGFpb2h0dHBfZGVwcyBpbXBvcnQgUm91dGVyCgpyb3V0ZXIgPSBSb3V0ZXIoKQoKCkByb3V0ZXIuZ2V0KCIvIikKYXN5bmMgZGVmIGhhbmRsZXIoKToKICAgIHJldHVybiB3ZWIuanNvbl9yZXNwb25zZSh7fSkKCgphcHAgPSB3ZWIuQXBwbGljYXRpb24oKQoKYXBwLnJvdXRlci5hZGRfcm91dGVzKHJvdXRlcikKCmFwcC5vbl9zdGFydHVwLmFwcGVuZChkZXBzX2luaXQpCgp3ZWIucnVuX2FwcChhcHApCgpgYGAKCkFsc28sIHlvdSBjYW4gbmVzdCByb3V0ZXJzIHdpdGggcHJlZml4ZXMsCgpgYGBweXRob24KYXBpX3JvdXRlciA9IFJvdXRlcigpCgptZW1lc19yb3V0ZXIgPSBSb3V0ZXIoKQoKbWFpbl9yb3V0ZXIgPSBSb3V0ZXIoKQoKbWFpbl9yb3V0ZXIuYWRkX3JvdXRlcyhhcGlfcm91dGVyLCBwcmVmaXg9Ii9hcGkiKQptYWluX3JvdXRlci5hZGRfcm91dGVzKG1lbWVzX3JvdXRlciwgcHJlZml4PSIvbWVtZXMiKQpgYGAKCiMjIFN3YWdnZXIKCklmIHlvdSB1c2UgZGVwZW5kZW5jaWVzIGluIHlvdSBoYW5kbGVycywgd2UgY2FuIGVhc2lseSBnZW5lcmF0ZSBzd2FnZ2VyIGZvciB5b3UuCldlIGhhdmUgc29tZSBsaW1pdGF0aW9uczoKMS4gV2UgZG9uJ3Qgc3VwcG9ydCByZXNvbHZpbmcgdHlwZSBhbGlhc2VzIGlmIGhpbnQgaXMgYSBzdHJpbmcuCiAgICBJZiB5b3UgZGVmaW5lIHZhcmlhYmxlIGxpa2UgdGhpczogYG15dmFyID0gaW50IHwgTm9uZWAgYW5kIHRoZW4gaW4gaGFuZGxlcgogICAgeW91J2QgY3JlYXRlIGFubm90YXRpb24gbGlrZSB0aGlzOiBgcGFyYW06ICJzdHIgfCBteXZhciJgIGl0IHdpbGwgZmFpbC4KICAgIFlvdSBuZWVkIHRvIHVucXVvdGUgdHlwZSBoaW50IGluIG9yZGVyIHRvIGdldCBpdCB3b3JrLgoKV2Ugd2lsbCB0cnkgdG8gZml4IHRoZXNlIGxpbWl0YXRpb25zIGxhdGVyLgoKVG8gZW5hYmxlIHN3YWdnZXIsIGp1c3QgYWRkIGl0IHRvIHlvdXIgc3RhcnR1cC4KCmBgYHB5dGhvbgpmcm9tIGFpb2h0dHBfZGVwcyBpbXBvcnQgaW5pdCwgc2V0dXBfc3dhZ2dlcgoKYXBwID0gd2ViLkFwcGxpY2F0aW9uKCkKCmFwcC5vbl9zdGFydHVwLmV4dGVuZChbaW5pdCwgc2V0dXBfc3dhZ2dlcigpXSkKYGBgCgojIyMgUmVzcG9uc2VzCgpZb3UgY2FuIGRlZmluZSBzY2hlbWEgZm9yIHJlc3BvbnNlcyB1c2luZyBkYXRhY2xhc3NlcyBvcgpweWRhbnRpYyBtb2RlbHMuIFRoaXMgd291bGQgbm90IGFmZmVjdCBoYW5kbGVycyBpbiBhbnkgd2F5LAppdCdzIG9ubHkgZm9yIGRvY3VtZW50YXRpb24gcHVycG9zZXMsIGlmIHlvdSB3YW50IHRvIGFjdHVhbGx5CnZhbGlkYXRlIHZhbHVlcyB5b3VyIGhhbmRsZXIgcmV0dXJucywgcGxlYXNlIHdyaXRlIHlvdXIgb3duIHdyYXBwZXIuCgpgYGBweXRob24KZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzCgpmcm9tIGFpb2h0dHAgaW1wb3J0IHdlYgpmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwKCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBSb3V0ZXIsIG9wZW5hcGlfcmVzcG9uc2UKCnJvdXRlciA9IFJvdXRlcigpCgoKQGRhdGFjbGFzcwpjbGFzcyBTdWNjZXNzOgogICAgZGF0YTogc3RyCgoKY2xhc3MgVW5hdXRob3JpemVkKEJhc2VNb2RlbCk6CiAgICB3aHk6IHN0cgoKCkByb3V0ZXIuZ2V0KCIvIikKQG9wZW5hcGlfcmVzcG9uc2UoMjAwLCBTdWNjZXNzLCBjb250ZW50X3R5cGU9ImFwcGxpY2F0aW9uL3htbCIpCkBvcGVuYXBpX3Jlc3BvbnNlKDIwMCwgU3VjY2VzcykKQG9wZW5hcGlfcmVzcG9uc2UoNDAxLCBVbmF1dGhvcml6ZWQsIGRlc2NyaXB0aW9uPSJXaGVuIHRva2VuIGlzIG5vdCBjb3JyZWN0IikKYXN5bmMgZGVmIGhhbmRsZXIoKSAtPiB3ZWIuUmVzcG9uc2U6CiAgICAuLi4KYGBgCgpUaGlzIGV4YW1wbGUgaWxsdXN0cmF0ZXMgaG93IG11Y2ggeW91IGNhbiBkbyB3aXRoIHRoaXMgZGVjb3JhdG9yLiBZb3UKY2FuIGhhdmUgbXVsdGlwbGUgY29udGVudC10eXBlcyBmb3IgYSBzaW5nbGUgc3RhdHVzLCBvciB5b3UgY2FuIGhhdmUgZGlmZmVyZW50CnBvc3NibGUgc3RhdHVzZXMuIFRoaXMgZnVuY3Rpb24gaXMgcHJldHR5IHNpbXBsZSBhbmQgaWYgeW91IHdhbnQgdG8gbWFrZQp5b3VyIG93biBkZWNvcmF0b3IgZm9yIHlvdXIgcmVzcG9uc2VzLCBpdCB3b24ndCBiZSBoYXJkLgoKCiMjIERlZmF1bHQgZGVwZW5kZW5jaWVzCgpCeSBkZWZhdWx0IHRoaXMgbGlicmFyeSBwcm92aWRlcyBvbmx5IHR3byBpbmplY3RhYmxlcy4gYHdlYi5SZXF1ZXN0YCBhbmQgYHdlYi5BcHBsaWNhdGlvbmAuCgpgYGBweXRob24KCmFzeW5jIGRlZiBoYW5kbGVyKGFwcDogd2ViLkFwcGxpY2F0aW9uID0gRGVwZW5kcygpKTogLi4uCgphc3luYyBkZWYgaGFuZGxlcjIocmVxdWVzdDogd2ViLlJlcXVlc3QgPSBEZXBlbmRzKCkpOiAuLi4KCmBgYAoKSXQncyBzdXBlciB1c2VmdWwsIGJlY2F1c2UgeW91IGNhbiB1c2UgdGhlc2UgZGVwZW5kZW5jaWVzIGluCmFueSBvdGhlciBkZXBlbmRlbmN5LiBIZXJlJ3MgYSBtb3JlIGNvbXBsZXggZXhhbXBsZSBvZiBob3cgeW91IGNhbiB1c2UgdGhpcyBsaWJyYXJ5LgoKCmBgYHB5dGhvbgpmcm9tIGFpb2h0dHBfZGVwcyBpbXBvcnQgUm91dGVyLCBEZXBlbmRzCmZyb20gYWlvaHR0cCBpbXBvcnQgd2ViCgpyb3V0ZXIgPSBSb3V0ZXIoKQoKCmFzeW5jIGRlZiBnZXRfZGJfc2Vzc2lvbihhcHA6IHdlYi5BcHBsaWNhdGlvbiA9IERlcGVuZHMoKSk6CiAgICBhc3luYyB3aXRoIGFwcFt3ZWIuQXBwS2V5KCJkYiIpXSBhcyBzZXNzOgogICAgICAgIHlpZWxkIHNlc3MKCgpjbGFzcyBNeURBTzoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uPURlcGVuZHMoZ2V0X2RiX3Nlc3Npb24pKToKICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCgogICAgYXN5bmMgZGVmIGdldF9vYmplY3RzKHNlbGYpIC0+IGxpc3Rbb2JqZWN0XToKICAgICAgICByZXR1cm4gYXdhaXQgc2VsZi5zZXNzaW9uLmV4ZWN1dGUoIlNFTEVDVCAxIikKCgpAcm91dGVyLmdldCgiLyIpCmFzeW5jIGRlZiBoYW5kbGVyKGRiX3Nlc3Npb246IE15REFPID0gRGVwZW5kcygpKToKICAgIG9ianMgPSBhd2FpdCBkYl9zZXNzaW9uLmdldF9vYmplY3RzKCkKICAgIHJldHVybiB3ZWIuanNvbl9yZXNwb25zZSh7Im9iamVjdHMiOiBvYmpzfSkKCmBgYAoKSWYgeW91IGRvIHNvbWV0aGluZyBsaWtlIHRoaXMsIHlvdSB3b3VsZCBuZXZlciB0aGluayBhYm91dCBpbml0aWFsaXppbmcgeW91ciBEQU8uIFlvdSBjYW4ganVzdCBpbmplY3QgaXQgYW5kIHRoYXQncyBpdC4KCgojIEJ1aWx0LWluIGRlcGVuZGVuY2llcwoKVGhpcyBsaWJyYXJ5IGFsc28gcHJvdmlkZXMgeW91IHdpdGggc29tZSBkZWZhdWx0IGRlcGVuZGVuY2llcyB0aGF0IGNhbiBoZWxwIHlvdSBpbiBidWlsZGluZyB0aGUgYmVzdCB3ZWItc2VydmljZS4KCiMjIEpzb24KClRvIHBhcnNlIGpzb24sIGNyZWF0ZSBhIHB5ZGFudGljIG1vZGVsIGFuZCBhZGQgYSBkZXBlbmRlbmN5IHRvIHlvdXIgaGFuZGxlci4KCgpgYGBweXRob24KZnJvbSBhaW9odHRwIGltcG9ydCB3ZWIKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBSb3V0ZXIsIEpzb24sIERlcGVuZHMKCnJvdXRlciA9IFJvdXRlcigpCgoKY2xhc3MgVXNlckluZm8oQmFzZU1vZGVsKToKICAgIG5hbWU6IHN0cgoKCkByb3V0ZXIucG9zdCgiL3VzZXJzIikKYXN5bmMgZGVmIG5ld19kYXRhKHVzZXI6IFVzZXJJbmZvID0gRGVwZW5kcyhKc29uKCkpKToKICAgIHJldHVybiB3ZWIuanNvbl9yZXNwb25zZSh7InVzZXIiOiB1c2VyLm1vZGVsX2R1bXAoKX0pCgpgYGAKClRoaXMgZGVwZW5kZW5jeSBhdXRvbWF0aWNhbGx5IHZhbGlkYXRlcyBkYXRhIGFuZCBzZW5kCmVycm9ycyBpZiB0aGUgZGF0YSBkb2Vzbid0IG9ycmVsYXRlIHdpdGggc2NoZW1hIG9yIGJvZHkgaXMgbm90IGEgdmFsaWQganNvbi4KCklmIHlvdSB3YW50IHRvIG1ha2UgdGhpcyBkYXRhIG9wdGlvbmFsLCBqdXN0IG1hcmsgaXQgYXMgb3B0aW9uYWwuCgpgYGBweXRob24KQHJvdXRlci5wb3N0KCIvdXNlcnMiKQphc3luYyBkZWYgbmV3X2RhdGEodXNlcjogT3B0aW9uYWxbVXNlckluZm9dID0gRGVwZW5kcyhKc29uKCkpKToKICAgIGlmIHVzZXIgaXMgTm9uZToKICAgICAgICByZXR1cm4gd2ViLmpzb25fcmVzcG9uc2UoeyJ1c2VyIjogTm9uZX0pCiAgICByZXR1cm4gd2ViLmpzb25fcmVzcG9uc2UoeyJ1c2VyIjogdXNlci5tb2RlbF9kdW1wKCl9KQoKYGBgCgojIyBIZWFkZXJzCgpZb3UgY2FuIGdldCBhbmQgdmFsaWRhdGUgaGVhZGVycyB1c2luZyBgSGVhZGVyYCBkZXBlbmRlbmN5LgoKTGV0J3MgdHJ5IHRvIGJ1aWxkIHNpbXBsZSBleGFtcGxlIGZvciBhdXRob3JpemF0aW9uLgoKYGBgcHl0aG9uCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBSb3V0ZXIsIEhlYWRlciwgRGVwZW5kcwpmcm9tIGFpb2h0dHAgaW1wb3J0IHdlYgoKcm91dGVyID0gUm91dGVyKCkKCgpkZWYgZGVjb2RlX3Rva2VuKGF1dGhvcml6YXRpb246IHN0ciA9IERlcGVuZHMoSGVhZGVyKCkpKSAtPiBzdHI6CiAgICBpZiBhdXRob3JpemF0aW9uID09ICJzZWNyZXQiOgogICAgICAgICMgTGV0J3MgcHJldGVuZCB0aGF0IGhlcmUgd2UKICAgICAgICAjIGRlY29kZSBvdXIgdG9rZW4uCiAgICAgICAgcmV0dXJuIGF1dGhvcml6YXRpb24KICAgIHJhaXNlIHdlYi5IVFRQVW5hdXRob3JpemVkKCkKCgpAcm91dGVyLmdldCgiL3NlY3JldF9kYXRhIikKYXN5bmMgZGVmIG5ld19kYXRhKHRva2VuOiBzdHIgPSBEZXBlbmRzKGRlY29kZV90b2tlbikpIC0+IHdlYi5SZXNwb25zZToKICAgIHJldHVybiB3ZWIuanNvbl9yZXNwb25zZSh7InNlY3JldCI6ICJub3QgYSBzZWNyZXQifSkKCmBgYAoKQXMgeW91IGNhbiBzZWUsIGhlYWRlciBuYW1lIHRvIHBhcnNlIGlzIGVxdWFsIHRvIHRoZQpuYW1lIG9mIGEgcGFyYW1ldGVyIHRoYXQgaW50cm9kdWNlcyBIZWFkZXIgZGVwZW5kZW5jeS4KCklmIHlvdSB3YW50IHRvIHVzZSBzb21lIG5hbWUgdGhhdCBpcyBub3QgYWxsb3dlZCBpbiBweXRob24sIG9yIGp1c3Qgd2FudCB0byBoYXZlIGRpZmZlcmVudCBuYW1lcywgeW91IGNhbiB1c2UgYWxpYXMuIExpa2UgdGhpczoKCmBgYHB5dGhvbgpkZWYgZGVjb2RlX3Rva2VuKGF1dGg6IHN0ciA9IERlcGVuZHMoSGVhZGVyKGFsaWFzPSJBdXRob3JpemF0aW9uIikpKSAtPiBzdHI6CmBgYAoKSGVhZGVycyBjYW4gYWxzbyBiZSBwYXJzZWQgdG8gdHlwZXMuIElmIHlvdSB3YW50IGEgaGVhZGVyIHRvIGJlIHBhcnNlZCBhcyBpbnQsIGp1c3QgYWRkIHRoZSB0eXBlaGludC4KCmBgYHB5dGhvbgpkZWYgZGVjb2RlX3Rva2VuKG1lbWVfaWQ6IGludCA9IERlcGVuZHMoSGVhZGVyKCkpKSAtPiBzdHI6CmBgYAoKSWYgeW91IHdhbnQgdG8gZ2V0IGxpc3Qgb2YgdmFsdWVzIG9mIG9uZSBoZWFkZXIsIHVzZSBwYXJhbWV0ZXIgYG11bHRpcGxlPVRydWVgLgoKYGBgcHl0aG9uCmRlZiBkZWNvZGVfdG9rZW4obWVtZV9pZDogbGlzdFtpbnRdID0gRGVwZW5kcyhIZWFkZXIobXVsdGlwbGU9VHJ1ZSkpKSAtPiBzdHI6CgpgYGAKCkFuZCwgb2YgY291cnNlLCB5b3UgY2FuIHByb3ZpZGUgdGhpcyBkZXBlbmRlbmN5IHdpdGggZGVmYXVsdCB2YWx1ZSBpZiB0aGUgdmFsdWUgZnJvbSB1c2VyIGNhbm5vdCBiZSBwYXJzZWQgZm9yIHNvbWUgcmVhc29uLgoKYGBgcHl0aG9uCmRlZiBkZWNvZGVfdG9rZW4obWVtZV9pZDogc3RyID0gRGVwZW5kcyhIZWFkZXIoZGVmYXVsdD0ibm90LWEtc2VjcmV0IikpKSAtPiBzdHI6CmBgYAoKCiMjIFF1ZXJpZXMKCllvdSBjYW4gZGVwZW5kIG9uIGBRdWVyeWAgdG8gZ2V0IGFuZCBwYXJzZSBxdWVyeSBwYXJhbWV0ZXJzLgoKYGBgcHl0aG9uCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBSb3V0ZXIsIFF1ZXJ5LCBEZXBlbmRzCmZyb20gYWlvaHR0cCBpbXBvcnQgd2ViCgpyb3V0ZXIgPSBSb3V0ZXIoKQoKCkByb3V0ZXIuZ2V0KCIvc2hvcCIpCmFzeW5jIGRlZiBzaG9wKGl0ZW1faWQ6IHN0ciA9IERlcGVuZHMoUXVlcnkoKSkpIC0+IHdlYi5SZXNwb25zZToKICAgIHJldHVybiB3ZWIuanNvbl9yZXNwb25zZSh7ImlkIjogaXRlbV9pZH0pCgpgYGAKCnRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgaXMgdGhlIHNhbWUgYXMgdGhlIG5hbWUgb2YgZnVuY3Rpb24gcGFyYW1ldGVyLgoKVGhlIFF1ZXJ5IGRlcGVuZGVuY3kgaXMgYWN1YWxseSB0aGUgc2FtZSBhcyB0aGUgSGVhZGVyIGRlcGVuZGVuY3ksIHNvIGV2ZXJ5dGhpbmcgYWJvdXQgdGhlIGBIZWFkZXJgIGRlcGVuZGVuY3kgYWxzbyBhcHBsaWVzIHRvIGBRdWVyeWAuCgojIyBWaWV3cwoKSWYgeW91IHVzZSB2aWV3cyBhcyBoYW5kbGVycywgcGxlYXNlIHVzZSBWaWV3IGNsYXNzIGZyb20gYGFpb2h0dHBfZGVwc2AsIG90aGVyd2lzZSB0aGUgbWFnaWMgd29uJ3Qgd29yay4KCmBgYHB5dGhvbgpmcm9tIGFpb2h0dHBfZGVwcyBpbXBvcnQgUm91dGVyLCBWaWV3LCBEZXBlbmRzCmZyb20gYWlvaHR0cCBpbXBvcnQgd2ViCgpyb3V0ZXIgPSBSb3V0ZXIoKQoKCkByb3V0ZXIudmlldygiL3ZpZXciKQpjbGFzcyBNeVZpZXcoVmlldyk6CiAgICBhc3luYyBkZWYgZ2V0KHNlbGYsIGFwcDogd2ViLkFwcGxpY2F0aW9uID0gRGVwZW5kcygpKToKICAgICAgICByZXR1cm4gd2ViLmpzb25fcmVzcG9uc2UoeyJhcHAiOiBzdHIoYXBwKX0pCgpgYGAKCgojIyBGb3JtcwoKTm93IHlvdSBjYW4gZWFzaXkgZ2V0IGFuZCB2YWxpZGF0ZSBmb3JtIGRhdGEgZnJvbSB5b3VyIHJlcXVlc3QuClRvIG1ha2UgdGhlIG1hZ2ljIGhhcHBlbiwgcGxlYXNlIGFkZCBgYXJiaXRyYXJ5X3R5cGVzX2FsbG93ZWRgIHRvIHRoZSBjb25maWcgb2YgeW91ciBtb2RlbC4KCgpgYGBweXRob24KaW1wb3J0IHB5ZGFudGljCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBSb3V0ZXIsIERlcGVuZHMsIEZvcm0KZnJvbSBhaW9odHRwIGltcG9ydCB3ZWIKCnJvdXRlciA9IFJvdXRlcigpCgoKY2xhc3MgTXlGb3JtKHB5ZGFudGljLkJhc2VNb2RlbCk6CiAgICBpZDogaW50CiAgICBmaWxlOiB3ZWIuRmlsZUZpZWxkCgogICAgbW9kZWxfY29uZmlnID0gcHlkYW50aWMuQ29uZmlnRGljdChhcmJpdHJhcnlfdHlwZXNfYWxsb3dlZD1UcnVlKQoKCkByb3V0ZXIucG9zdCgiLyIpCmFzeW5jIGRlZiBoYW5kbGVyKG15X2Zvcm06IE15Rm9ybSA9IERlcGVuZHMoRm9ybSgpKSk6CiAgICB3aXRoIG9wZW4oIm15X2ZpbGUiLCAid2IiKSBhcyBmOgogICAgICAgIGYud3JpdGUobXlfZm9ybS5maWxlLmZpbGUucmVhZCgpKQogICAgcmV0dXJuIHdlYi5qc29uX3Jlc3BvbnNlKHsiaWQiOiBteV9mb3JtLmlkfSkKCmBgYAoKIyMgUGF0aAoKSWYgeW91IGhhdmUgcGF0aCB2YXJpYWJsZXMsIHlvdSBjYW4gYWxzbyBpbmplY3QgdGhlbSBpbiB5b3VyIGhhbmRsZXIuCgpgYGBweXRob24KZnJvbSBhaW9odHRwX2RlcHMgaW1wb3J0IFJvdXRlciwgUGF0aCwgRGVwZW5kcwpmcm9tIGFpb2h0dHAgaW1wb3J0IHdlYgoKcm91dGVyID0gUm91dGVyKCkKCgpAcm91dGVyLmdldCgiL3ZpZXcve3Zhcn0iKQphc3luYyBkZWYgbXlfaGFuZGxlcih2YXI6IHN0ciA9IERlcGVuZHMoUGF0aCgpKSk6CiAgICByZXR1cm4gd2ViLmpzb25fcmVzcG9uc2UoeyJ2YXIiOiB2YXJ9KQoKYGBgCgoKIyMgT3ZlcnJpZGlpbmcgZGVwZW5kZW5jaWVzCgpTb21ldGltZXMgZm9yIHRlc3RzIHlvdSBkb24ndCB3YW50IHRvIGNhbGN1bGF0ZSBhY3R1YWwgZnVuY3Rpb25zCmFuZCB5b3Ugd2FudCB0byBwYXNzIGFub3RoZXIgZnVuY3Rpb25zIGluc3RlYWQuCgpUbyBkbyBzbywgeW91IGNhbiBhZGQgImRlcGVuZGVuY3lfb3ZlcnJpZGVzIiBvciAidmFsdWVzX292ZXJyaWRlcyIgdG8gdGhlIGFwbGljYXRpb24ncyBzdGF0ZS4KVGhlc2UgdmFsdWVzIHNob3VsZCBiZSBkaWN0cy4gVGhlIGtleXMgZm9yIHRoZXNlIHZhbHVlcyBjYW4gYmUgZm91bmQgaW4gYGFpb2h0dHBfZGVwcy5rZXlzYCBtb2R1bGUuCgpIZXJlJ3MgYW4gZXhhbXBsZS4KCmBgYHB5dGhvbgpkZWYgb3JpZ2luYWxfZGVwKCkgLT4gaW50OgogICAgcmV0dXJuIDEKCmNsYXNzIE15VmlldyhWaWV3KToKICAgIGFzeW5jIGRlZiBnZXQoc2VsZiwgbnVtOiBpbnQgPSBEZXBlbmRzKG9yaWdpbmFsX2RlcCkpOgogICAgICAgICIiIk5vdGhpbmcuIiIiCiAgICAgICAgcmV0dXJuIHdlYi5qc29uX3Jlc3BvbnNlKHsicmVxdWVzdCI6IG51bX0pCmBgYAoKSW1hZ2luZSB5b3UgaGF2ZSBhIGhhbmRsZXIgdGhhdCBkZXBlbmRzIG9uIHNvbWUgZnVuY3Rpb24sCmJ1dCBpbnN0ZWFkIG9mIGAxYCB5b3Ugd2FudCB0byBoYXZlIGAyYCBpbiB5b3VyIHRlc3RzLgoKVG8gZG8gaXQsIGpzdXQgYWRkIGBkZXBlbmRlbmN5X292ZXJyaWRlc2Agc29tZXdoZXJlLAp3aGVyZSB5b3UgY3JlYXRlIHlvdXIgYXBwbGljYXRpb24uIEFuZCBtYWtlIHN1cmUgdGhhdCBrZXlzCm9mIHRoYXQgZGljdCBhcmUgYWN0dWFsIGZ1bmN0aW9uIHRoYXQgYXJlIGJlaW5nIHJlcGxhY2VkLgoKYGBgcHl0aG9uCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBWQUxVRVNfT1ZFUlJJREVTX0tFWQoKbXlfYXBwW1ZBTFVFU19PVkVSUklERVNfS0VZXSA9IHtvcmlnaW5hbF9kZXA6IDJ9CmBgYAoKQnV0IGB2YWx1ZXNfb3ZlcnJpZGVzYCBvbmx5IG92ZXJyaWRlcyByZXR1cm5lZCB2YWx1ZXMuIElmIHlvdSB3YW50IHRvCm92ZXJyaWRlIGZ1bmN0aW9ucywgeW91IGhhdmUgdG8gdXNlIGBkZXBlbmRlbmN5X292ZXJyaWRlc2AuIEhlcmUncyBhbiBleGFtcGxlOgoKYGBgcHl0aG9uCmZyb20gYWlvaHR0cF9kZXBzIGltcG9ydCBERVBFTkRFTkNZX09WRVJSSURFU19LRVkKCmRlZiByZXBsYWNpbmdfZnVuY3Rpb24oKSAtPiBpbnQ6CiAgICByZXR1cm4gMgoKCm15X2FwcFtERVBFTkRFTkNZX09WRVJSSURFU19LRVldID0ge29yaWdpbmFsX2RlcDogcmVwbGFjaW5nX2Z1bmN0aW9ufQpgYGAKClRoZSBjb29sIHBvaW50IGFib3V0IGBkZXBlbmRlbmN5X292ZXJyaWRlc2AsIGlzIHRoYXQgaXQgcmVjYWxjdWxhdGVzIGdyYXBoIGFuZAp5b3UgY2FuIHVzZSBkZXBlbmRlbmNpZXMgaW4gZnVuY3Rpb24gdGhhdCByZXBsYWNlcyB0aGUgb3JpZ2luYWwuCg== readmeEtag: '"a3c366fa9677f7597e342485c14bf2272ee200b0"' readmeLastModified: Mon, 05 Feb 2024 20:25:30 GMT repositoryId: 630692437 description: Dependency injection for AioHTTP created: '2023-04-21T00:08:54Z' updated: '2023-09-17T09:07:21Z' language: Python archived: false stars: 7 watchers: 1 forks: 0 owner: taskiq-python logo: https://avatars.githubusercontent.com/u/109470701?v=4 license: MIT repoEtag: '"24d2346a605856fb7e93c6f4e22c16626c8c02dfc08f4a086f0e26d771f45fb8"' repoLastModified: Sun, 17 Sep 2023 09:07:21 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/xiaoyao-ye/initapi v3: true id: 7000a61d32fa3dc7f559c8b49c9c6af7 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0iaHR0cHM6Ly94aWFveWFvLXllLmdpdGh1Yi5pby9ibG9nL2luaXRBcGkvbGlnaHQuc3ZnIiAvPjwvZGl2PgoKPGJyIC8+CjxiciAvPgoKPGRpdiBhbGlnbj0iY2VudGVyIj4gQSB0b29sIGZvciBnZW5lcmF0aW5nIEFQSXMgYW5kIHR5cGVzIDwvZGl2PgoKPGJyIC8+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20veGlhb3lhby1ZZS9pbml0YXBpL2Jsb2IvbWFpbi9SRUFETUUuemgtQ04ubWQiPuS4reaWhzwvYT4gfCBFbmdsaXNoCjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS94aWFveWFvLVllL2luaXRhcGkvc3RhcmdhemVycyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL3hpYW95YW8tWWUvaW5pdGFwaSIgLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvaW5pdGFwaSI+PGltZyBzcmM9Imh0dHBzOi8vYmFkZ2VuLm5ldC9ucG0vdi9pbml0YXBpIiAvPjwvYT4KPC9wPgoKPGJyIC8+CgojIyBGZWF0dXJlcwoKLSBDb2RlIGFzIERvY3VtZW50Ci0gU3RhbmRhcmRpemVkLCB1bmlmaWVkIHRlYW0gc3R5bGUsIGVhc3kgdG8gbWFpbnRhaW4KLSBUb29sIGdlbmVyYXRlcyBjb2RlIHRvIHJlZHVjZSBjb2RpbmcgYW5kIGltcHJvdmUgZWZmaWNpZW5jeQotIElmIHRoZSBiYWNrZW5kIHVzZXMgU3dhZ2dlciBvciBPcGVuYXBpMyBzcGVjaWZpY2F0aW9ucywgaXQgY2FuIGJlIGFjY2Vzc2VkIGF0IHplcm8gY29zdAoKIyMgSW5zdGFsbAoKYGBgYmFzaApwbnBtIGkgaW5pdGFwaSAtRApgYGAKCiMjIFVzYWdlCgo+IGNvbmZpZ3VyZSBgYXBpLmNvbmZpZy50c2Agb3IgYGFwaS5jb25maWcuanNgCgpgYGB0cwppbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICJpbml0YXBpIjsKLy8geW91IGNhbiB1c2UgdGhlIGBkZWZpbmVDb25maWdgIGhlbHBlciB3aGljaCBzaG91bGQgcHJvdmlkZSBpbnRlbGxpc2Vuc2Ugd2l0aG91dCB0aGUgbmVlZCBmb3IganNkb2MgYW5ub3RhdGlvbnM6CmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7CiAgLy8gUGF0aCByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIGFyZSBhbGwgYmFzZWQgb24gdGhlIHdvcmtpbmcgZGlyZWN0b3J5IG9mIHRoZSBub2RlanMgcHJvY2VzcwogIC8vIFN1cHBvcnRzIE9wZW5hcGkzIGFuZCBTd2FnZ2VyIHNwZWNpZmljYXRpb25zLCB3aXRoIGNvbnRlbnQgY3JlYXRlZCBiYXNlZCBvbiBzcGVjaWZpZWQgSlNPTgogIHNlcnZpY2U6IHsKICAgIHBldHM6IHsKICAgICAgdXJsOiAiaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiIsCiAgICB9LAogICAgcGxhdGZvcm06IHsKICAgICAgdXJsOiAiaHR0cDovLzEyNy4wLjAuMTozMDAwL2FwaS1qc29uIiwKICAgICAgY29tbW9uUHJlZml4OiAiL2FwaS92MSIsCiAgICB9LAogICAgLy8gQ2FuIGNvbnZlcnQgbG9jYWwgSlNPTgogICAgbG9jYWw6IHsKICAgICAgdXJsOiAiLi9hc3NldHMvb3BlbmFwaS5qc29uIiwKICAgICAgLy8gQVBJIGFkZHJlc3MgcHVibGljIHByZWZpeCwgdXNlZCB0byBnZW5lcmF0ZSBjbGFzcyBuYW1lcyBhbmQgZmlsZSBuYW1lcy4gV2hlbiBub3QgY29uZmlndXJlZCwgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gZmluZCB0aGUgcHVibGljIHByZWZpeAogICAgICBjb21tb25QcmVmaXg6ICIvbWcvYXBpIiwKICAgIH0sCiAgfSwKICBvdXRwdXREaXI6ICIuL3NyYy9hcGkiLAogIG91dHB1dFR5cGU6ICJUeXBlU2NyaXB0IiwKICAvLyAuLi4KfSk7CmBgYAoKYGBganNvbgovLyBwYWNrYWdlLmpzb24KInNjcmlwdHMiOiB7CiAgImFwaSI6ICJpbml0YXBpIGNyZWF0ZSIKfQpgYGAKCmBgYGJhc2gKcG5wbSBydW4gYXBpCmBgYAoKR2VuZXJhdGUgQVBJIFdvcmtmbG93cyBFeGFtcGxlCgohW0dlbmVyYXRlIEFQSSBXb3JrZmxvd3MgRXhhbXBsZV0oaHR0cHM6Ly94aWFveWFvLXllLmdpdGh1Yi5pby9ibG9nL2luaXRBcGkvd29ya2Zsb3ctZW4ucG5nKQoKR2VuZXJhdGUgQVBJIGNvbnRlbnQgZXhhbXBsZQoKIVtHZW5lcmF0ZSBBUEkgY29udGVudCBleGFtcGxlXShodHRwczovL3hpYW95YW8teWUuZ2l0aHViLmlvL2Jsb2cvaW5pdEFwaS9hcGlfbXVsLnBuZykKCkdlbmVyYXRlIFR5cGUgY29udGVudCBleGFtcGxlCgohW0dlbmVyYXRlIFR5cGUgY29udGVudCBleGFtcGxlXShodHRwczovL3hpYW95YW8teWUuZ2l0aHViLmlvL2Jsb2cvaW5pdEFwaS90eXBpbmdzLnBuZykKCiMjIENvbmZpZ3VyZQoKRGV0YWlsZWQgY29uZmlndXJhdGlvbiBpdGVtcyBmb3IgZGVmaW5lQ29uZmlnCgp8IE5hbWUgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVxdWlyZWQgfCBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgaW1wb3J0UmVxdWVzdCB8IEltcG9ydCBheGlvcyBvciBheGlvcyBlbmNhcHN1bGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBzdHJpbmdgICAgICAgICAgICAgICAgICAgICAgfCBObyAgICAgICB8ICdpbXBvcnQgYXhpb3MgZnJvbSAiYXhpb3MiOycgfAp8IHVzZVJlcXVlc3QgICAgfCBVc2luZyBheGlvcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgc3RyaW5nYCAgICAgICAgICAgICAgICAgICAgIHwgTm8gICAgICAgfCAnYXhpb3MucmVxdWVzdCcgICAgICAgICAgICAgIHwKfCBzZXJ2aWNlICAgICAgIHwgVGhlIEpTT04gKGBzd2FnZ2VyL29wZW5hcGkzYHNwZWNpZmljYXRpb24pIGZpbGUgYWRkcmVzcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBBUEkgc2VydmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYG9iamVjdGAgICAgICAgICAgICAgICAgICAgICB8IFllcyAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBvdXRwdXREaXIgICAgIHwgT3V0cHV0IGZpbGUgc3RvcmFnZSBsb2NhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHN0cmluZ2AgICAgICAgICAgICAgICAgICAgICB8IE5vICAgICAgIHwgJy4vYXBpJyAgICAgICAgICAgICAgICAgICAgICB8Cnwgb3V0cHV0VHlwZSAgICB8IE91dHB1dCBGaWxlIFR5cGUgLSBXaGVuIHRoZXJlIGlzIG5vIGNvbmZpZ3VyYXRpb24sIGEgY29tbWFuZCBsaW5lIGludGVyYWN0aW9uIHdpbGwgcG9wIHVwIGZvciBzZWxlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBUeXBlU2NyaXB0YCBvciBgSmF2YVNjcmlwdGAgfCBObyAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgZGVmaW5pdGlvbiAgICB8IEhvdyB0byBkZWZpbmUgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBjbGFzc2Agb3IgYGludGVyZmFjZWAgICAgICAgfCBObyAgICAgICB8IGludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgfAp8IGluZGV4YWJsZSAgICAgfCBUaGUgYWR2YW50YWdlIG9mIHVzaW5nIGluZGV4IHNpZ25hdHVyZSBpcyB0aGF0IGl0IGNhbiBhZGQgYW55IG51bWJlciBvZiBhdHRyaWJ1dGVzLCBtYWtpbmcgYGludGVyZmFjZWAgb3IgYGNsYXNzYCBtb3JlIGZsZXhpYmxlOyBUaGUgZGlzYWR2YW50YWdlIGlzIHRoYXQgaXQgbWF5IGNhdXNlIHVuY2VydGFpbnR5IGluIHRoZSB2YWx1ZSB0eXBlIG9mIHRoZSBhdHRyaWJ1dGUgfCBgYm9vbGVhbmAgICAgICAgICAgICAgICAgICAgIHwgTm8gICAgICAgfCBmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBlbnVtTW9kZSAgICAgIHwgSG93IHRvIGRlZmluZSBlbnVtZXJhdGlvbiAoZW51bTogZ2VuZXJhdGUgZW51bWVyYXRpb24gdHlwZS4gdHlwZTogZ2VuZXJhdGUgdHlwZSBhbGlhcy4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGVudW1gIG9yIGB0eXBlYCAgICAgICAgICAgICB8IE5vICAgICAgIHwgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgbXVsdGlwbGVGaWxlcyB8IEVuYWJsZSBtdWx0aSBmaWxlIG1vZGUgLSBzaW5nbGUgZmlsZSBvbmx5IGNyZWF0ZXMgQVBJIGZpbGVzLiBNdWx0aXBsZSBmaWxlcyB3aWxsIHNwbGl0IHRoZSBBUEkgaW50byBhbGwgY29udHJvbGxlcnMgYW5kIGdlbmVyYXRlIGNvcnJlc3BvbmRpbmcgZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBib29sZWFuYCAgICAgICAgICAgICAgICAgICAgfCBObyAgICAgICB8IHRydWUgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMgUHJldHRpZXIKCkJlZm9yZSBjcmVhdGluZyBhIGZpbGUsIGJ5IGRlZmF1bHQsIHRoZSBkYXRhIHdpbGwgYmUgZm9ybWF0dGVkIHVzaW5nIGEgcHJldHRpZXIKCldoZW4gdGhlIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkgaGFzIGEuIHByZXR0aWVyIGZpbGUsIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gd2lsbCBiZSB1c2VkIGZvciBmaWxlIGZvcm1hdHRpbmcuIElmIG9idGFpbmluZyB0aGUgZmlsZSBmYWlscywgdGhlIGJ1aWx0LWluIHByZXR0aWVyIHdpbGwgYmUgdXNlZCB0byBmb3JtYXQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbjoKCmBgYEphdmFTY3JpcHQKY29uc3QgZGVmYXVsdE9wdGlvbnM6IHByZXR0aWVyLk9wdGlvbnMgPSB7CiAgcGFyc2VyOiAidHlwZXNjcmlwdCIsCiAgcHJpbnRXaWR0aDogMTMwLAogIHRhYldpZHRoOiAyLAogIHVzZVRhYnM6IGZhbHNlLAogIHNlbWk6IHRydWUsCiAgc2luZ2xlUXVvdGU6IGZhbHNlLAogIHF1b3RlUHJvcHM6ICJhcy1uZWVkZWQiLAogIGpzeFNpbmdsZVF1b3RlOiBmYWxzZSwKICB0cmFpbGluZ0NvbW1hOiAiYWxsIiwKICBicmFja2V0U3BhY2luZzogdHJ1ZSwKICBicmFja2V0U2FtZUxpbmU6IHRydWUsCiAganN4QnJhY2tldFNhbWVMaW5lOiB0cnVlLAogIGFycm93UGFyZW5zOiAiYXZvaWQiLAogIHJhbmdlU3RhcnQ6IDAsCiAgcmFuZ2VFbmQ6IEluZmluaXR5LAogIHJlcXVpcmVQcmFnbWE6IGZhbHNlLAogIGluc2VydFByYWdtYTogZmFsc2UsCiAgcHJvc2VXcmFwOiAicHJlc2VydmUiLAogIGh0bWxXaGl0ZXNwYWNlU2Vuc2l0aXZpdHk6ICJpZ25vcmUiLAogIGVuZE9mTGluZTogImF1dG8iLAp9CmBgYAoKIyMgR2l0IGNvbW1pdAoKLSDwn5KNIHRlc3Q6IEFkZGluZyBtaXNzaW5nIHRlc3RzCi0g8J+OuCBmZWF0OiBBIG5ldyBmZWF0dXJlCi0g8J+QmyBmaXg6IEEgYnVnIGZpeAotIPCfpJYgY2hvcmU6IEJ1aWxkIHByb2Nlc3Mgb3IgYXV4aWxpYXJ5IHRvb2wgY2hhbmdlcwotIOKcj++4jyBkb2NzOiBEb2N1bWVudGF0aW9uIG9ubHkgY2hhbmdlcwotIPCfkqEgcmVmYWN0b3I6IEEgY29kZSBjaGFuZ2UgdGhhdCBuZWl0aGVyIGZpeGVzIGEgYnVnIG9yIGFkZHMgYSBmZWF0dXJlCi0g8J+ShCBzdHlsZTogTWFya3VwLCB3aGl0ZS1zcGFjZSwgZm9ybWF0dGluZywgbWlzc2luZyBzZW1pLWNvbG9ucy4uLgotIPCfjqEgY2k6IENJIHJlbGF0ZWQgY2hhbmdlcwotIOKaoe+4jyBwZXJmOiBBIGNvZGUgY2hhbmdlIHRoYXQgaW1wcm92ZXMgcGVyZm9ybWFuY2UKCiMjIExhc3QKCldlbGNvbWUgdG8gcHJvdmlkZSBmZWVkYmFjayBhbmQgY29udHJpYnV0ZSBjb2RlLgoKIyMgTGljZW5zZQoKTUlUCg== readmeEtag: '"5477b96f996ae38dbc88551e15939a3b01215940"' readmeLastModified: Thu, 04 Jan 2024 04:01:10 GMT repositoryId: 513418465 description: A tool for creating API and typings created: '2022-07-13T07:13:34Z' updated: '2023-07-10T08:52:12Z' language: JavaScript archived: false stars: 7 watchers: 1 forks: 0 owner: xiaoyao-Ye logo: https://avatars.githubusercontent.com/u/52575104?v=4 license: MIT repoEtag: '"375d73db6564891ace2c29ed93d122af1d098aa78b63dccec0003192f1f33223"' repoLastModified: Mon, 10 Jul 2023 08:52:12 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/cerberauth/openapi-oathkeeper v3: true id: ba2b06aa4f5864bd7545ae91e08c58a6 repositoryMetadata: base64Readme: >- IyBPcnkgT2F0aGtlZXBlciBydWxlcyBmcm9tIE9wZW5BUEkKCjxwIGFsaWduPSJsZWZ0Ij4KICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZXJiZXJhdXRoL29wZW5hcGktb2F0aGtlZXBlci9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY2VyYmVyYXV0aC9vcGVuYXBpLW9hdGhrZWVwZXIvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbiZldmVudD1wdXNoIiBhbHQ9IkNJIFRhc2tzIGZvciBPcnkgSHlkcmEiPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vY29kZWNvdi5pby9naC9jZXJiZXJhdXRoL29wZW5hcGktb2F0aGtlZXBlciI+PGltZyBzcmM9Imh0dHBzOi8vY29kZWNvdi5pby9naC9jZXJiZXJhdXRoL29wZW5hcGktb2F0aGtlZXBlci9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmc/dG9rZW49QkQxV1BYSkRBVyIvPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9jZXJiZXJhdXRoL29wZW5hcGktb2F0aGtlZXBlciI+PGltZyBzcmM9Imh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2NlcmJlcmF1dGgvb3BlbmFwaS1vYXRoa2VlcGVyIiBhbHQ9IkdvIFJlcG9ydCBDYXJkIj48L2E+CiAgICA8YSBocmVmPSJodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9jZXJiZXJhdXRoL29wZW5hcGktb2F0aGtlZXBlciI+PGltZyBzcmM9Imh0dHBzOi8vcGtnLmdvLmRldi9iYWRnZS93d3cuZ2l0aHViLmNvbS9jZXJiZXJhdXRoL29wZW5hcGktb2F0aGtlZXBlciIgYWx0PSJQa2dHb0RldiI+PC9hPgo8L3A+CgpUaGlzIENMSSBnZW5lcmF0ZXMgc2VjdXJlIGFuZCBjb25zaXN0ZW50IE9hdGhLZWVwZXIgcnVsZXMgdGhhdCBlbmZvcmNlIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHBvbGljaWVzIGZvciBlYWNoIEFQSSBlbmRwb2ludCBmcm9tIGFuIE9wZW5BUEkgY29udHJhdC4KClRoaXMgcHJvamVjdCBhdXRvbWF0ZSB0aGUgZ2VuZXJhdGlvbiBvZiBbT3J5IE9hdGhrZWVwZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcnkvb2F0aGtlZXBlcikgcnVsZXMgZnJvbSBhbiBPcGVuQVBJIGNvbnRyYWN0IGFuZCBzYXZlIGEgbG90IG9mIHRpbWUgZXNwZWNpYWxseSBmb3IgbGFyZ2VyIHByb2plY3RzIHdpdGggbWFueSBlbmRwb2ludHMgb3IgbWFueSBzZXJ2aWNlcyBieSB1c2luZyB0aGUgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiBwcm92aWRlZCBpbiBhbiBPcGVuQVBJIGNvbnRyYWN0LiBUaGlzIGNhbiBpbXByb3ZlIHRoZSBvdmVyYWxsIHNlY3VyaXR5IG9mIHRoZSBBUEkgYW5kIGVuc3VyZSB0aGF0IGFjY2VzcyBpcyBncmFudGVkIG9ubHkgdG8gYXV0aG9yaXplZCBwYXJ0aWVzLiBBZGRpdGlvbmFsbHksIHRoaXMgdG9vbCBjYW4gc2ltcGxpZnkgdGhlIGRldmVsb3BtZW50IHByb2Nlc3MgYnkgcmVkdWNpbmcgdGhlIGFtb3VudCBvZiBtYW51YWwgd29yayByZXF1aXJlZCB0byB3cml0ZSBhbmQgbWFpbnRhaW4gT2F0aEtlZXBlciBydWxlcy4KCiMjIE9yeSBPYXRoa2VlcGVyCgpJZiB5b3UncmUgbm90IHlldCBmYW1pbGlhciB3aXRoIE9yeSBPYXRoa2VlcGVyLCBPYXRoa2VlcGVyIGlzIGFuIElkZW50aXR5ICYgQWNjZXNzIFByb3h5IChJQVApIGFuZCBBY2Nlc3MgQ29udHJvbCBEZWNpc2lvbiBBUEkgdGhhdCBhdXRob3JpemVzIEhUVFAgcmVxdWVzdHMgYmFzZWQgb24gc2V0cyBvZiBBY2Nlc3MgUnVsZXMuIFlvdSBjYW4gZmluZCBtb3JlIGluZm9ybWF0aW9uIGFuZCBnZXQgc3RhcnRlZCB3aXRoIFtPcnkgT2F0aGtlZXBlcl0oaHR0cHM6Ly9naXRodWIuY29tL29yeS9vYXRoa2VlcGVyKS4KCj4gQW4gSWRlbnRpdHkgJiBBY2Nlc3MgUHJveHkgaXMgdHlwaWNhbGx5IGRlcGxveWVkIGluIGZyb250IG9mICh0aGluayBBUEkgR2F0ZXdheSBvciBTZXJ2aWNlIG1lc2gpIHdlYi1mYWNpbmcgYXBwbGljYXRpb25zIGFuZCBpcyBjYXBhYmxlIG9mIGF1dGhlbnRpY2F0aW5nIGFuZCBvcHRpb25hbGx5IGF1dGhvcml6aW5nIGFjY2VzcyByZXF1ZXN0cy4gVGhlIEFjY2VzcyBDb250cm9sIERlY2lzaW9uIEFQSSBjYW4gYmUgZGVwbG95ZWQgYWxvbmdzaWRlIGFuIGV4aXN0aW5nIEFQSSBHYXRld2F5IG9yIHJldmVyc2UgcHJveHkuCgojIyBHZXQgU3RhcnRlZAoKVG8gdXNlIHRoaXMgdG9vbCwgZm9sbG93IHRoZSBiZWxsb3cgaW5zdHJ1Y3Rpb25zOgoxLiBGaXJzdCB5b3UgaGF2ZSB0byBkb3dubG9hZCB0aGUgYmluYXJ5IGZyb20gdGhlIGxhdGVzdCBbcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL2NlcmJlcmF1dGgvb3BlbmFwaS1vYXRoa2VlcGVyL3JlbGVhc2VzKS4KMi4gUHJvdmlkZXMgdGhlIHBhdGggdG8geW91ciBPcGVuQVBJIGNvbnRyYWN0IGZpbGUuCgpgYGBzaAouL29wZW5hcGktb2F0aGtlZXBlciBnZW5lcmF0ZSAtZiAuL29wZW5hcGkuanNvbgpgYGAKCk9uY2UgeW91IGhhdmUgc3BlY2lmaWVkIHRoZXNlIG9wdGlvbnMsIHRoZSB0b29sIHdpbGwgYW5hbHl6ZSB5b3VyIGNvbnRyYWN0IGFuZCBnZW5lcmF0ZSBPYXRoS2VlcGVyIHJ1bGVzIHRoYXQgZW5mb3JjZSB0aGUgc3BlY2lmaWVkIGFjY2VzcyBwb2xpY2llcy4gWW91IGNhbiB0aGVuIHNhdmUgdGhlc2UgcnVsZXMgdG8gYSBmaWxlIHRvIG1ha2UgaXQgcmVhZCBieSBPYXRoa2VlcGVyLgoKSGVyZSBpcyBhbiBleGFtcGxlIE9hdGhrZWVwZXIgcnVsZXMgb3V0cHV0IGZyb20gdGhlIFtQZXRzdG9yZSBPcGVuQVBJXSguL3Rlc3Qvc3R1Yi9wZXRzdG9yZS5vcGVuYXBpLmpzb24pCgo8ZGV0YWlscz4KICAgIDxzdW1tYXJ5Pk9hdGhrZWVwZXIgcnVsZXMgb3V0cHV0PC9zdW1tYXJ5PgoKYGBganNvbgpbCiAgICB7CiAgICAgICAgImlkIjogImFkZFBldCIsCiAgICAgICAgInZlcnNpb24iOiAiIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUiLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiUE9TVCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInVybCI6ICI8KGh0dHBzOi8vY2VyYmVyYXV0aFxcLmNvbS9hcGkvdjN8aHR0cDovL3N3YWdnZXJcXC5pby9hcGkvdjMpPi9wZXQiCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogImp3dCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZF9zY29wZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIndyaXRlOnBldHMiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVhZDpwZXRzIgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9LAogICAgewogICAgICAgICJpZCI6ICJjcmVhdGVVc2VyIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLiIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJQT1NUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3VzZXIiCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogIm5vb3AiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9LAogICAgewogICAgICAgICJpZCI6ICJjcmVhdGVVc2Vyc1dpdGhMaXN0SW5wdXQiLAogICAgICAgICJ2ZXJzaW9uIjogIiIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgbGlzdCBvZiB1c2VycyB3aXRoIGdpdmVuIGlucHV0IGFycmF5IiwKICAgICAgICAibWF0Y2giOiB7CiAgICAgICAgICAgICJtZXRob2RzIjogWwogICAgICAgICAgICAgICAgIlBPU1QiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPChodHRwczovL2NlcmJlcmF1dGhcXC5jb20vYXBpL3YzfGh0dHA6Ly9zd2FnZ2VyXFwuaW8vYXBpL3YzKT4vdXNlci9jcmVhdGVXaXRoTGlzdCIKICAgICAgICB9LAogICAgICAgICJhdXRoZW50aWNhdG9ycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImhhbmRsZXIiOiAibm9vcCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiYXV0aG9yaXplciI6IHsKICAgICAgICAgICAgImhhbmRsZXIiOiAiYWxsb3ciLAogICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgIH0sCiAgICAgICAgIm11dGF0b3JzIjogbnVsbCwKICAgICAgICAiZXJyb3JzIjogbnVsbCwKICAgICAgICAidXBzdHJlYW0iOiB7CiAgICAgICAgICAgICJwcmVzZXJ2ZV9ob3N0IjogZmFsc2UsCiAgICAgICAgICAgICJzdHJpcF9wYXRoIjogIiIsCiAgICAgICAgICAgICJ1cmwiOiAiIgogICAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICAgImlkIjogImRlbGV0ZU9yZGVyIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3IgdmFsaWQgcmVzcG9uc2UgdHJ5IGludGVnZXIgSURzIHdpdGggdmFsdWUgPCAxMDAwLiBBbnl0aGluZyBhYm92ZSAxMDAwIG9yIG5vbmludGVnZXJzIHdpbGwgZ2VuZXJhdGUgQVBJIGVycm9ycyIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJERUxFVEUiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPChodHRwczovL2NlcmJlcmF1dGhcXC5jb20vYXBpL3YzfGh0dHA6Ly9zd2FnZ2VyXFwuaW8vYXBpL3YzKT4vc3RvcmUvb3JkZXIvPFxcZCs+IgogICAgICAgIH0sCiAgICAgICAgImF1dGhlbnRpY2F0b3JzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJub29wIiwKICAgICAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhdXRob3JpemVyIjogewogICAgICAgICAgICAiaGFuZGxlciI6ICJhbGxvdyIsCiAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgfSwKICAgICAgICAibXV0YXRvcnMiOiBudWxsLAogICAgICAgICJlcnJvcnMiOiBudWxsLAogICAgICAgICJ1cHN0cmVhbSI6IHsKICAgICAgICAgICAgInByZXNlcnZlX2hvc3QiOiBmYWxzZSwKICAgICAgICAgICAgInN0cmlwX3BhdGgiOiAiIiwKICAgICAgICAgICAgInVybCI6ICIiCiAgICAgICAgfQogICAgfSwKICAgIHsKICAgICAgICAiaWQiOiAiZGVsZXRlUGV0IiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiREVMRVRFIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3BldC88XFxkKz4iCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogImp3dCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZF9zY29wZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIndyaXRlOnBldHMiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVhZDpwZXRzIgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9LAogICAgewogICAgICAgICJpZCI6ICJkZWxldGVVc2VyIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLiIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJERUxFVEUiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPChodHRwczovL2NlcmJlcmF1dGhcXC5jb20vYXBpL3YzfGh0dHA6Ly9zd2FnZ2VyXFwuaW8vYXBpL3YzKT4vdXNlci88Lis+IgogICAgICAgIH0sCiAgICAgICAgImF1dGhlbnRpY2F0b3JzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJub29wIiwKICAgICAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhdXRob3JpemVyIjogewogICAgICAgICAgICAiaGFuZGxlciI6ICJhbGxvdyIsCiAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgfSwKICAgICAgICAibXV0YXRvcnMiOiBudWxsLAogICAgICAgICJlcnJvcnMiOiBudWxsLAogICAgICAgICJ1cHN0cmVhbSI6IHsKICAgICAgICAgICAgInByZXNlcnZlX2hvc3QiOiBmYWxzZSwKICAgICAgICAgICAgInN0cmlwX3BhdGgiOiAiIiwKICAgICAgICAgICAgInVybCI6ICIiCiAgICAgICAgfQogICAgfSwKICAgIHsKICAgICAgICAiaWQiOiAiZmluZFBldHNCeVN0YXR1cyIsCiAgICAgICAgInZlcnNpb24iOiAiIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiTXVsdGlwbGUgc3RhdHVzIHZhbHVlcyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncyIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJHRVQiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPChodHRwczovL2NlcmJlcmF1dGhcXC5jb20vYXBpL3YzfGh0dHA6Ly9zd2FnZ2VyXFwuaW8vYXBpL3YzKT4vcGV0L2ZpbmRCeVN0YXR1cyIKICAgICAgICB9LAogICAgICAgICJhdXRoZW50aWNhdG9ycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImhhbmRsZXIiOiAiand0IiwKICAgICAgICAgICAgICAgICJjb25maWciOiB7CiAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVkX3Njb3BlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAid3JpdGU6cGV0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkOnBldHMiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiYXV0aG9yaXplciI6IHsKICAgICAgICAgICAgImhhbmRsZXIiOiAiYWxsb3ciLAogICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgIH0sCiAgICAgICAgIm11dGF0b3JzIjogbnVsbCwKICAgICAgICAiZXJyb3JzIjogbnVsbCwKICAgICAgICAidXBzdHJlYW0iOiB7CiAgICAgICAgICAgICJwcmVzZXJ2ZV9ob3N0IjogZmFsc2UsCiAgICAgICAgICAgICJzdHJpcF9wYXRoIjogIiIsCiAgICAgICAgICAgICJ1cmwiOiAiIgogICAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICAgImlkIjogImZpbmRQZXRzQnlUYWdzIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJNdWx0aXBsZSB0YWdzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzLiBVc2UgdGFnMSwgdGFnMiwgdGFnMyBmb3IgdGVzdGluZy4iLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiR0VUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3BldC9maW5kQnlUYWdzIgogICAgICAgIH0sCiAgICAgICAgImF1dGhlbnRpY2F0b3JzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJqd3QiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IHsKICAgICAgICAgICAgICAgICAgICAicmVxdWlyZWRfc2NvcGUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJ3cml0ZTpwZXRzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQ6cGV0cyIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhdXRob3JpemVyIjogewogICAgICAgICAgICAiaGFuZGxlciI6ICJhbGxvdyIsCiAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgfSwKICAgICAgICAibXV0YXRvcnMiOiBudWxsLAogICAgICAgICJlcnJvcnMiOiBudWxsLAogICAgICAgICJ1cHN0cmVhbSI6IHsKICAgICAgICAgICAgInByZXNlcnZlX2hvc3QiOiBmYWxzZSwKICAgICAgICAgICAgInN0cmlwX3BhdGgiOiAiIiwKICAgICAgICAgICAgInVybCI6ICIiCiAgICAgICAgfQogICAgfSwKICAgIHsKICAgICAgICAiaWQiOiAiZ2V0SW52ZW50b3J5IiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgbWFwIG9mIHN0YXR1cyBjb2RlcyB0byBxdWFudGl0aWVzIiwKICAgICAgICAibWF0Y2giOiB7CiAgICAgICAgICAgICJtZXRob2RzIjogWwogICAgICAgICAgICAgICAgIkdFVCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInVybCI6ICI8KGh0dHBzOi8vY2VyYmVyYXV0aFxcLmNvbS9hcGkvdjN8aHR0cDovL3N3YWdnZXJcXC5pby9hcGkvdjMpPi9zdG9yZS9pbnZlbnRvcnkiCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogIm5vb3AiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9LAogICAgewogICAgICAgICJpZCI6ICJnZXRPcmRlckJ5SWQiLAogICAgICAgICJ2ZXJzaW9uIjogIiIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8PSA1IG9yID4gMTAuIE90aGVyIHZhbHVlcyB3aWxsIGdlbmVyYXRlIGV4Y2VwdGlvbnMuIiwKICAgICAgICAibWF0Y2giOiB7CiAgICAgICAgICAgICJtZXRob2RzIjogWwogICAgICAgICAgICAgICAgIkdFVCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInVybCI6ICI8KGh0dHBzOi8vY2VyYmVyYXV0aFxcLmNvbS9hcGkvdjN8aHR0cDovL3N3YWdnZXJcXC5pby9hcGkvdjMpPi9zdG9yZS9vcmRlci88XFxkKz4iCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogIm5vb3AiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9LAogICAgewogICAgICAgICJpZCI6ICJnZXRQZXRCeUlkIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgc2luZ2xlIHBldCIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJHRVQiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPChodHRwczovL2NlcmJlcmF1dGhcXC5jb20vYXBpL3YzfGh0dHA6Ly9zd2FnZ2VyXFwuaW8vYXBpL3YzKT4vcGV0LzxcXGQrPiIKICAgICAgICB9LAogICAgICAgICJhdXRoZW50aWNhdG9ycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImhhbmRsZXIiOiAiand0IiwKICAgICAgICAgICAgICAgICJjb25maWciOiB7CiAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVkX3Njb3BlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAid3JpdGU6cGV0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkOnBldHMiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiYXV0aG9yaXplciI6IHsKICAgICAgICAgICAgImhhbmRsZXIiOiAiYWxsb3ciLAogICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgIH0sCiAgICAgICAgIm11dGF0b3JzIjogbnVsbCwKICAgICAgICAiZXJyb3JzIjogbnVsbCwKICAgICAgICAidXBzdHJlYW0iOiB7CiAgICAgICAgICAgICJwcmVzZXJ2ZV9ob3N0IjogZmFsc2UsCiAgICAgICAgICAgICJzdHJpcF9wYXRoIjogIiIsCiAgICAgICAgICAgICJ1cmwiOiAiIgogICAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICAgImlkIjogImdldFVzZXJCeU5hbWUiLAogICAgICAgICJ2ZXJzaW9uIjogIiIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJHRVQiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPChodHRwczovL2NlcmJlcmF1dGhcXC5jb20vYXBpL3YzfGh0dHA6Ly9zd2FnZ2VyXFwuaW8vYXBpL3YzKT4vdXNlci88Lis+IgogICAgICAgIH0sCiAgICAgICAgImF1dGhlbnRpY2F0b3JzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJub29wIiwKICAgICAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhdXRob3JpemVyIjogewogICAgICAgICAgICAiaGFuZGxlciI6ICJhbGxvdyIsCiAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgfSwKICAgICAgICAibXV0YXRvcnMiOiBudWxsLAogICAgICAgICJlcnJvcnMiOiBudWxsLAogICAgICAgICJ1cHN0cmVhbSI6IHsKICAgICAgICAgICAgInByZXNlcnZlX2hvc3QiOiBmYWxzZSwKICAgICAgICAgICAgInN0cmlwX3BhdGgiOiAiIiwKICAgICAgICAgICAgInVybCI6ICIiCiAgICAgICAgfQogICAgfSwKICAgIHsKICAgICAgICAiaWQiOiAibG9naW5Vc2VyIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiR0VUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3VzZXIvbG9naW4iCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogIm5vb3AiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9LAogICAgewogICAgICAgICJpZCI6ICJsb2dvdXRVc2VyIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiR0VUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3VzZXIvbG9nb3V0IgogICAgICAgIH0sCiAgICAgICAgImF1dGhlbnRpY2F0b3JzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJub29wIiwKICAgICAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhdXRob3JpemVyIjogewogICAgICAgICAgICAiaGFuZGxlciI6ICJhbGxvdyIsCiAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgfSwKICAgICAgICAibXV0YXRvcnMiOiBudWxsLAogICAgICAgICJlcnJvcnMiOiBudWxsLAogICAgICAgICJ1cHN0cmVhbSI6IHsKICAgICAgICAgICAgInByZXNlcnZlX2hvc3QiOiBmYWxzZSwKICAgICAgICAgICAgInN0cmlwX3BhdGgiOiAiIiwKICAgICAgICAgICAgInVybCI6ICIiCiAgICAgICAgfQogICAgfSwKICAgIHsKICAgICAgICAiaWQiOiAicGxhY2VPcmRlciIsCiAgICAgICAgInZlcnNpb24iOiAiIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGxhY2UgYSBuZXcgb3JkZXIgaW4gdGhlIHN0b3JlIiwKICAgICAgICAibWF0Y2giOiB7CiAgICAgICAgICAgICJtZXRob2RzIjogWwogICAgICAgICAgICAgICAgIlBPU1QiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPChodHRwczovL2NlcmJlcmF1dGhcXC5jb20vYXBpL3YzfGh0dHA6Ly9zd2FnZ2VyXFwuaW8vYXBpL3YzKT4vc3RvcmUvb3JkZXIiCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogIm5vb3AiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9LAogICAgewogICAgICAgICJpZCI6ICJ1cGRhdGVQZXQiLAogICAgICAgICJ2ZXJzaW9uIjogIiIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBhbiBleGlzdGluZyBwZXQgYnkgSWQiLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiUFVUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3BldCIKICAgICAgICB9LAogICAgICAgICJhdXRoZW50aWNhdG9ycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImhhbmRsZXIiOiAiand0IiwKICAgICAgICAgICAgICAgICJjb25maWciOiB7CiAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVkX3Njb3BlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAid3JpdGU6cGV0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkOnBldHMiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiYXV0aG9yaXplciI6IHsKICAgICAgICAgICAgImhhbmRsZXIiOiAiYWxsb3ciLAogICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgIH0sCiAgICAgICAgIm11dGF0b3JzIjogbnVsbCwKICAgICAgICAiZXJyb3JzIjogbnVsbCwKICAgICAgICAidXBzdHJlYW0iOiB7CiAgICAgICAgICAgICJwcmVzZXJ2ZV9ob3N0IjogZmFsc2UsCiAgICAgICAgICAgICJzdHJpcF9wYXRoIjogIiIsCiAgICAgICAgICAgICJ1cmwiOiAiIgogICAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICAgImlkIjogInVwZGF0ZVBldFdpdGhGb3JtIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiUE9TVCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInVybCI6ICI8KGh0dHBzOi8vY2VyYmVyYXV0aFxcLmNvbS9hcGkvdjN8aHR0cDovL3N3YWdnZXJcXC5pby9hcGkvdjMpPi9wZXQvPFxcZCs+IgogICAgICAgIH0sCiAgICAgICAgImF1dGhlbnRpY2F0b3JzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJqd3QiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IHsKICAgICAgICAgICAgICAgICAgICAicmVxdWlyZWRfc2NvcGUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJ3cml0ZTpwZXRzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQ6cGV0cyIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhdXRob3JpemVyIjogewogICAgICAgICAgICAiaGFuZGxlciI6ICJhbGxvdyIsCiAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgfSwKICAgICAgICAibXV0YXRvcnMiOiBudWxsLAogICAgICAgICJlcnJvcnMiOiBudWxsLAogICAgICAgICJ1cHN0cmVhbSI6IHsKICAgICAgICAgICAgInByZXNlcnZlX2hvc3QiOiBmYWxzZSwKICAgICAgICAgICAgInN0cmlwX3BhdGgiOiAiIiwKICAgICAgICAgICAgInVybCI6ICIiCiAgICAgICAgfQogICAgfSwKICAgIHsKICAgICAgICAiaWQiOiAidXBkYXRlVXNlciIsCiAgICAgICAgInZlcnNpb24iOiAiIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4iLAogICAgICAgICJtYXRjaCI6IHsKICAgICAgICAgICAgIm1ldGhvZHMiOiBbCiAgICAgICAgICAgICAgICAiUFVUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3VzZXIvPC4rPiIKICAgICAgICB9LAogICAgICAgICJhdXRoZW50aWNhdG9ycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImhhbmRsZXIiOiAibm9vcCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiYXV0aG9yaXplciI6IHsKICAgICAgICAgICAgImhhbmRsZXIiOiAiYWxsb3ciLAogICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgIH0sCiAgICAgICAgIm11dGF0b3JzIjogbnVsbCwKICAgICAgICAiZXJyb3JzIjogbnVsbCwKICAgICAgICAidXBzdHJlYW0iOiB7CiAgICAgICAgICAgICJwcmVzZXJ2ZV9ob3N0IjogZmFsc2UsCiAgICAgICAgICAgICJzdHJpcF9wYXRoIjogIiIsCiAgICAgICAgICAgICJ1cmwiOiAiIgogICAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICAgImlkIjogInVwbG9hZEZpbGUiLAogICAgICAgICJ2ZXJzaW9uIjogIiIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJQT1NUIgogICAgICAgICAgICBdLAogICAgICAgICAgICAidXJsIjogIjwoaHR0cHM6Ly9jZXJiZXJhdXRoXFwuY29tL2FwaS92M3xodHRwOi8vc3dhZ2dlclxcLmlvL2FwaS92Myk+L3BldC88XFxkKz4vdXBsb2FkSW1hZ2UiCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogImp3dCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZF9zY29wZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIndyaXRlOnBldHMiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVhZDpwZXRzIgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IG51bGwsCiAgICAgICAgImVycm9ycyI6IG51bGwsCiAgICAgICAgInVwc3RyZWFtIjogewogICAgICAgICAgICAicHJlc2VydmVfaG9zdCI6IGZhbHNlLAogICAgICAgICAgICAic3RyaXBfcGF0aCI6ICIiLAogICAgICAgICAgICAidXJsIjogIiIKICAgICAgICB9CiAgICB9Cl0KYGBgCjwvZGV0YWlscz4KCiMjIENvbmZpZ3VyYXRpb24KCkFzIHRoZSBhdXRoZW50aWNhdG9yIHJ1bGUgbWF5IHJlcXVpcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiBvcmRlciB0byBtYWtlIGF1dGhvcml6YXRpb24gYW5kIGF1dGhlbnRpY2F0aW9uIHdvcmtpbmcgcHJvcGVybHksIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gY2FuIGJlIHBhc3NlZCBlaXRoZXIgYnkgT3BlbkFQSSBFeHRlbnNpb25zIG9yIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiMjIyBDb25maWd1cmF0aW9uIEZpbGUKClRoZSByZWNvbW1lbmRlZCBhcHByb2FjaCBpbnZvbHZlcyB1c2luZyBkZWRpY2F0ZWQgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgeW91ciBPYXRoa2VlcGVyIHJ1bGVzLiBUaGVzZSBjb25maWd1cmF0aW9uIGZpbGVzIHByb3ZpZGUgYSBtb3JlIGZsZXhpYmxlIGFuZCB1c2VyLWZyaWVuZGx5IHdheSBvZiBtYW5hZ2luZyB5b3VyIHNlY3VyaXR5IHNldHRpbmdzLgoKRXZlcnkgT2F0aGtlZXBlciBydWxlIHByb3BlcnR5IGNhbiBiZSBjb25maWd1cmVkIHRoaXMgd2F5LiBIZXJlIGFyZSB0aGUgYXZhaWxhYmxlIHByb3BlcnRpZXM6Cgp8IEZpZWxkICAgICAgICAgIHwgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEtleSAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAp8IFByZWZpeCAgICAgICAgIHwgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICJwcmVmaXgiICAgICAgICAgfAp8IFNlcnZlclVybHMgICAgIHwgW11zdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICJzZXJ2ZXJfdXJscyIgICAgfAp8IFVwc3RyZWFtICAgICAgIHwgW1Vwc3RyZWFtXShodHRwczovL3d3dy5vcnkuc2gvZG9jcy9vYXRoa2VlcGVyL2FwaS1hY2Nlc3MtcnVsZXMjYWNjZXNzLXJ1bGUtZm9ybWF0KSB8ICJ1cHN0cmVhbSIgICAgICAgfAp8IEF1dGhlbnRpY2F0b3JzIHwgTWFwIG9mIFtBdXRoZW50aWNhdG9yc10oaHR0cHM6Ly93d3cub3J5LnNoL2RvY3Mvb2F0aGtlZXBlci9waXBlbGluZS9hdXRobikgICAgICAgICB8ICJhdXRoZW50aWNhdG9ycyIgfAp8IEF1dGhvcml6ZXIgICAgIHwgW0F1dGhvcml6YXRpb24gSGFuZGxlcl0oaHR0cHM6Ly93d3cub3J5LnNoL2RvY3Mvb2F0aGtlZXBlci9waXBlbGluZS9hdXRoeikgICAgICAgICB8ICJhdXRob3JpemVyIiAgICAgfAp8IE11dGF0b3JzICAgICAgIHwgQXJyYXkgW29mIE11dGF0b3IgSGFuZGxlcnNdKGh0dHBzOi8vd3d3Lm9yeS5zaC9kb2NzL29hdGhrZWVwZXIvcGlwZWxpbmUvbXV0YXRvcikgICB8ICJtdXRhdG9ycyIgICAgICAgfAp8IEVycm9ycyAgICAgICAgIHwgQXJyYXkgb2YgW0Vycm9yIEhhbmRsZXJzXShodHRwczovL3d3dy5vcnkuc2gvZG9jcy9vYXRoa2VlcGVyL3BpcGVsaW5lL2Vycm9yKSAgICAgICB8ICJlcnJvcnMiICAgICAgICAgfAoKQmVsb3cgaXMgYW4gZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBZQU1MIGZvcm1hdDoKCmBgYHlhbWwKcHJlZml4OiBjZXJiZXJhdXRoCgpzZXJ2ZXJfdXJsczoKICAtIGh0dHBzOi8vd3d3LmNlcmJlcmF1dGguY29tL2FwaQogIC0gaHR0cHM6Ly9hcGkuY2VyYmVyYXV0aC5jb20vYXBpCgphdXRoZW50aWNhdG9yczoKICBvcGVuaWRjb25uZWN0OgogICAgaGFuZGxlcjogImp3dCIKICAgIGNvbmZpZzoKICAgICAgdGFyZ2V0X2F1ZGllbmNlOgogICAgICAtIGh0dHBzOi8vYXBpLmNlcmJlcmF1dGguY29tCmBgYAoKSW4gb3JkZXIgdG8gZ2VuZXJhdGUgcnVsZXMgdXNpbmcgdGhlIENMSSwgc2ltcGx5IHJ1biB0aGUgY29tbWFuZCBpbiB5b3VyIHRlcm1pbmFsIHdpdGggdGhlIGFwcHJvcHJpYXRlIGFyZ3VtZW50cy4KCmBgYHNoZWxsCi4vb3BlbmFwaS1vYXRoa2VlcGVyIGdlbmVyYXRlIC1jIC4vdGVzdC9jb25maWcvc2FtcGxlLnlhbWwgLWYgLi90ZXN0L3N0dWIvc2FtcGxlLm9wZW5hcGkuanNvbgpgYGAKCjxkZXRhaWxzPgogIDxzdW1tYXJ5Pk9hdGhrZWVwZXIgcnVsZXMgb3V0cHV0PC9zdW1tYXJ5PgoKYGBganNvbgpbCiAgICB7CiAgICAgICAgImlkIjogImNlcmJlcmF1dGg6Z2V0VXNlckJ5SWQiLAogICAgICAgICJ2ZXJzaW9uIjogIiIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJHRVQiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPF4oaHR0cHM6Ly93d3dcXC5jZXJiZXJhdXRoXFwuY29tL2FwaXxodHRwczovL2FwaVxcLmNlcmJlcmF1dGhcXC5jb20vYXBpKSgvdXNlcnMvKD86W1s6YWxudW06XV0/XFx4MkQ/PT9cXD8/Jj9fPykrLz8pJD4iCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogImp3dCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgICAgICAgICAgICJqd2tzX3VybHMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2NvbnNvbGUub3J5LnNoLy53ZWxsLWtub3duL2p3a3MuanNvbiIKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZF9zY29wZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgInVzZXI6cmVhZCIKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJ0YXJnZXRfYXVkaWVuY2UiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2FwaS5jZXJiZXJhdXRoLmNvbSIKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJ0cnVzdGVkX2lzc3VlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2NvbnNvbGUub3J5LnNoIgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImF1dGhvcml6ZXIiOiB7CiAgICAgICAgICAgICJoYW5kbGVyIjogImFsbG93IiwKICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICB9LAogICAgICAgICJtdXRhdG9ycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImhhbmRsZXIiOiAibm9vcCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiZXJyb3JzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJqc29uIiwKICAgICAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJ1cHN0cmVhbSI6IHsKICAgICAgICAgICAgInByZXNlcnZlX2hvc3QiOiBmYWxzZSwKICAgICAgICAgICAgInN0cmlwX3BhdGgiOiAiIiwKICAgICAgICAgICAgInVybCI6ICIiCiAgICAgICAgfQogICAgfSwKICAgIHsKICAgICAgICAiaWQiOiAiY2VyYmVyYXV0aDp1cGRhdGVVc2VyIiwKICAgICAgICAidmVyc2lvbiI6ICIiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLiIsCiAgICAgICAgIm1hdGNoIjogewogICAgICAgICAgICAibWV0aG9kcyI6IFsKICAgICAgICAgICAgICAgICJQVVQiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cmwiOiAiPF4oaHR0cHM6Ly93d3dcXC5jZXJiZXJhdXRoXFwuY29tL2FwaXxodHRwczovL2FwaVxcLmNlcmJlcmF1dGhcXC5jb20vYXBpKSgvdXNlcnMvKD86W1s6YWxudW06XV0/XFx4MkQ/PT9cXD8/Jj9fPykrLz8pJD4iCiAgICAgICAgfSwKICAgICAgICAiYXV0aGVudGljYXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogImp3dCIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgICAgICAgICAgICJqd2tzX3VybHMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2NvbnNvbGUub3J5LnNoLy53ZWxsLWtub3duL2p3a3MuanNvbiIKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJyZXF1aXJlZF9zY29wZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgInVzZXI6d3JpdGUiCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAidGFyZ2V0X2F1ZGllbmNlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9hcGkuY2VyYmVyYXV0aC5jb20iCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAidHJ1c3RlZF9pc3N1ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9jb25zb2xlLm9yeS5zaCIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhdXRob3JpemVyIjogewogICAgICAgICAgICAiaGFuZGxlciI6ICJhbGxvdyIsCiAgICAgICAgICAgICJjb25maWciOiBudWxsCiAgICAgICAgfSwKICAgICAgICAibXV0YXRvcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJoYW5kbGVyIjogIm5vb3AiLAogICAgICAgICAgICAgICAgImNvbmZpZyI6IG51bGwKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImVycm9ycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImhhbmRsZXIiOiAianNvbiIsCiAgICAgICAgICAgICAgICAiY29uZmlnIjogbnVsbAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAidXBzdHJlYW0iOiB7CiAgICAgICAgICAgICJwcmVzZXJ2ZV9ob3N0IjogZmFsc2UsCiAgICAgICAgICAgICJzdHJpcF9wYXRoIjogIiIsCiAgICAgICAgICAgICJ1cmwiOiAiIgogICAgICAgIH0KICAgIH0KXQpgYGAKPC9kZXRhaWxzPgoKIyMjIE9wZW5BUEkgRXh0ZW5zaW9uCgpPcGVuQVBJIEV4dGVuc2lvbnMgc2VydmUgYXMgYW4gZXh0ZW5zaW9uIG1lY2hhbmlzbSBmb3IgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAoT0FTKS4gV2hlbiB1c2luZyBPcGVuQVBJLU9hdGhrZWVwZXIgd2l0aCBPcGVuQVBJIEV4dGVuc2lvbnMsIHlvdSBjYW4gZW1iZWQgT2F0aGtlZXBlci1zcGVjaWZpYyBydWxlcyBkaXJlY3RseSB3aXRoaW4geW91ciBBUEkgZG9jdW1lbnRhdGlvbi4gVGhpcyBpbnRlZ3JhdGlvbiBjYW4gYmUgYmVuZWZpY2lhbCB3aGVuIHlvdSBkZXNpcmUgYSB1bmlmaWVkIHNvdXJjZSBvZiB0cnV0aCBmb3IgYm90aCBBUEkgc3BlY2lmaWNhdGlvbnMgYW5kIHNlY3VyaXR5IHJ1bGVzLgoKSGVyZSB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb25zOgoKfCBOYW1lICAgICB8IFNlY3VyaXR5IFNjaGVtZXMgICAgICAgICAgICAgICAgICB8IE9wZW5BUEkgRXh0ZW5zaW9uIE5hbWUgICAgIHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBKV0tTIFVSSSB8IGBvYXV0aDJgLCBgaHR0cGAgICAgICAgICAgICAgICAgICB8IGB4LWF1dGhlbnRpY2F0b3Itandrcy11cmlgIHwKfCBJc3N1ZXIgICB8IGBvYXV0aDJgLCBgaHR0cGAgICAgICAgICAgICAgICAgICB8IGB4LWF1dGhlbnRpY2F0b3ItaXNzdWVyYCAgIHwKfCBBdWRpZW5jZSB8IGBvcGVuSWRDb25uZWN0YCwgYG9hdXRoMmAsIGBodHRwYCB8IGB4LWF1dGhlbnRpY2F0b3ItYXVkaWVuY2VgIHwKCiMjIyBFeGFtcGxlCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiB0aGUgc2FtZSBPcGVuQVBJIGNvbnRyYWN0IGJ1dCBpbiBKU09OIGZvcm1hdAoKPGRldGFpbHM+CiAgPHN1bW1hcnk+T3BlbkFQSSBleGFtcGxlIHVzaW5nIE9wZW5BUEkgRXh0ZW5zaW9uczwvc3VtbWFyeT4KCmBgYGpzb24gc2FtcGxlLm9wZW5hcGkuanNvbgp7CiAgICAib3BlbmFwaSI6ICIzLjAuMCIsCiAgICAiaW5mbyI6IHsKICAgICAgICAidGl0bGUiOiAiTXkgQVBJIiwKICAgICAgICAidmVyc2lvbiI6ICIxLjAuMCIKICAgIH0sCiAgICAic2VydmVycyI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvZHVjdGlvbiBzZXJ2ZXIiCiAgICAgICAgfQogICAgXSwKICAgICJwYXRocyI6IHsKICAgICAgICAiL3VzZXJzL3tpZH0iOiB7CiAgICAgICAgICAgICJnZXQiOiB7CiAgICAgICAgICAgICAgICAic3VtbWFyeSI6ICJHZXQgdXNlciBieSBJRCIsCiAgICAgICAgICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0VXNlckJ5SWQiLAogICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB1c2VyIGlkLiAiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN1Y2Nlc3NmdWwgcmVzcG9uc2UiLAogICAgICAgICAgICAgICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlkIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAib3BlbmlkY29ubmVjdCI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2VyOnJlYWQiCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJwdXQiOiB7CiAgICAgICAgICAgICAgICAidGFncyI6IFsKICAgICAgICAgICAgICAgICAgICAidXNlciIKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic3VtbWFyeSI6ICJVcGRhdGUgdXNlciIsCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4iLAogICAgICAgICAgICAgICAgIm9wZXJhdGlvbklkIjogInVwZGF0ZVVzZXIiLAogICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInVzZXIgaWQgdGhhdCBuZWVkIHRvIGJlIHVwZGF0ZWQiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJyZXF1ZXN0Qm9keSI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlIGFuIGV4aXN0ZW50IHVzZXIgaW4gdGhlIHN0b3JlIiwKICAgICAgICAgICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInN1Y2Nlc3NmdWwgb3BlcmF0aW9uIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAib3BlbmlkY29ubmVjdCI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2VyOndyaXRlIgogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSwKICAgICJjb21wb25lbnRzIjogewogICAgICAgICJzY2hlbWFzIjogewogICAgICAgICAgICAiVXNlciI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiaWQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IjogImludDY0IiwKICAgICAgICAgICAgICAgICAgICAgICAgImV4YW1wbGUiOiAxMAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogewogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhhbXBsZSI6ICJqb2huQGVtYWlsLmNvbSIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZWN1cml0eVNjaGVtZXMiOiB7CiAgICAgICAgICAgICJvcGVuaWRjb25uZWN0IjogewogICAgICAgICAgICAgICAgInR5cGUiOiAib3BlbklkQ29ubmVjdCIsCiAgICAgICAgICAgICAgICAib3BlbklkQ29ubmVjdFVybCI6ICJodHRwczovL3Byb2plY3QuY29uc29sZS5vcnkuc2gvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24iCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KYGBgCjwvZGV0YWlscz4KCiMjIyBDb21tYW5kIGxpbmUgZG9jdW1lbnRhdGlvbgoKVGhlIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGFzIG1hcmtkb3duIGZpbGVzIGluIHRoZSBbZG9jc10oLi9kb2NzL29wZW5hcGktb2F0aGtlZXBlci5tZCkgZGlyZWN0b3J5IG9yIGJ5IHJ1bm5pbmcgYG9wZW5hcGktb2F0aGtlZXBlciBoZWxwYC4KCiMjIFJvYWRtYXAKClBsZWFzZSBub3RlIHRoYXQgdGhpcyB0b29sIGlzIGN1cnJlbnRseSBpbiBiZXRhIHN0YWdlIGFuZCB0aGVyZSBtYXkgYmUgbGltaXRhdGlvbnMgYW5kIGJ1Z3MuIEltcHJvdmVtZW50cyBhbmQgbmV3IGZlYXR1cmVzIHNob3VsZCBjb21lIHRvIG1ha2UgaXQgbW9yZSBwb3dlcmZ1bCBhbmQgdXNlZnVsIGZvciBkZXZlbG9wZXJzLiBBbnkgZmVlZGJhY2sgb3Igc3VnZ2VzdGlvbnMgYXJlIGdyZWF0bHkgYXBwcmVjaWF0ZWQhCgpZb3UgY2FuIGZpbmQgdGhlIG1pbGVzdG9uZXMgYW5kIGZ1dHVyZSBlbmhhbmNlbWVudHMgcGxhbm5lZCBmb3IgdGhpcyB0b29sIG9uIHRoZSBwcm9qZWN0J3MgW0dpdEh1YiBtaWxlc3RvbmVzIHBhZ2VdKChodHRwczovL2dpdGh1Yi5jb20vY2VyYmVyYXV0aC9vcGVuYXBpLW9hdGhrZWVwZXIvbWlsZXN0b25lcykpLgoKIyMgVXNlZnVsIExpbmtzCgotIFtPUlkgT2F0aGtlZXBlcl0oaHR0cHM6Ly9naXRodWIuY29tL29yeS9vYXRoa2VlcGVyKQotIFtPcGVuQVBJIDMueCBTcGVjaWZpY2F0aW9uXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pCgojIyBMaWNlbnNlCgpNSVQgwqkgW0NlcmJlckF1dGhdKGh0dHBzOi8vd3d3LmNlcmJlcmF1dGguY29tKQo= readmeEtag: '"e758de81d81274acbb8f9274c44ac62fafd06a77"' readmeLastModified: Sat, 10 Aug 2024 20:36:03 GMT repositoryId: 611484700 description: >- openapi-oathkeeper is a CLI for generating Ory Oathkeeper rules from an OpenAPI 3 contract and save a lot of time and effort, especially for larger projects with many endpoints or many services. created: '2023-03-08T23:18:03Z' updated: '2024-08-26T15:59:09Z' language: Go archived: false stars: 7 watchers: 2 forks: 2 owner: cerberauth logo: https://avatars.githubusercontent.com/u/127022998?v=4 license: MIT repoEtag: '"1bfd0b8523d8ded1f1e9b2270429cb6859f884f9d0b4be4e11750bab6fd79de0"' repoLastModified: Mon, 26 Aug 2024 15:59:09 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/koshevy/oapi3codegen v3: true repositoryMetadata: base64Readme: >- IyBDb2RlIGdlbmVyYXRpb24gZnJvbSBPcGVuQVBJIDMgdG8gVHlwZVNjcmlwdAoKTGlnaHR3ZWlnaHQgYW5kIHNpbXBsZS4gQ2FuIGJlIHVzZWQgZm9yICpicm93c2VyJ3MqIGFuZCBmb3IgTm9kZS5qcyBlY29zeXN0ZW1zLgpOb3cgc3VwcG9ydHMgY29udmVydGluZyBmcm9tICoqT3BlbkFQSSAzKiogdG8gKipUeXBlU2NyaXB0KiogdHlwZXMgKE9wZW5BUEkgMiBhbmQgYmVsb3cgYXJlIG5vdCBzdXBwb3J0ZWQpLgoKPGRldGFpbHM+CjxzdW1tYXJ5PkZvciBleGFtcGxlLCBjcmVhdGVzIGNvbnN0cnVjdGlvbnMgc3VjaCBhcyAoY2xpY2sgdG8gZXhwYW5kKTo8L3N1bW1hcnk+CgpgYGB0eXBlc2NyaXB0Ci8qKgogKiBUeXBpY2FsIDQwMSByZXNwb25zZQogKi8KZXhwb3J0IGludGVyZmFjZSBIdHRwRXJyb3JVbmF1dGhvcml6ZWQgewogIC8qKgogICAqIEVycm9yIG1lc3NhZ2UKICAgKi8KICBtZXNzYWdlOiBzdHJpbmc7CgogIC8qKgogICAqIERhdGEgYXBwcm9wcmlhdGUgdG8KICAgKiBbV1dXLUF1dGhlbnRpY2F0ZV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzUjc2VjdGlvbi0zLjEpLgogICAqLwogIHd3d0F1dGhlbnRpY2F0ZT86IHsKICAgIC8qKgogICAgICogUHJvbXB0IHRvIGF1dGhlbnRpY2F0ZQogICAgICovCiAgICB0aXRsZTogc3RyaW5nOwoKICAgIC8qKgogICAgICogS2luZCBvZiBhdXRob3JpemF0aW9uIHVzZXIgaGFzIHRvIHVzZQogICAgICovCiAgICB0eXBlOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBUeXBlIG9mIGF1dGhvcml0eSAoImJhcnJpZXIiIG9yIGV0Yy4pCiAgICAgKi8KICAgIHJlYWxtOiBzdHJpbmc7CiAgfTsKfQoKZXhwb3J0IGludGVyZmFjZSBHZXRQYXJhbWV0ZXJzTWV0YV9yZXNwb25zZTQwMQogIGV4dGVuZHMgSHR0cEVycm9yVW5hdXRob3JpemVkIHsKCiAgLyoqCiAgICogRXJyb3IgbWVzc2FnZQogICAqLwogIG1lc3NhZ2U6IHN0cmluZzsKCiAgLyoqCiAgICogRGF0YSBhcHByb3ByaWF0ZSB0bwogICAqIFtXV1ctQXV0aGVudGljYXRlXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzNSNzZWN0aW9uLTMuMSkuCiAgICovCiAgd3d3QXV0aGVudGljYXRlPzogewogICAgLyoqCiAgICAgKiBQcm9tcHQgdG8gYXV0aGVudGljYXRlCiAgICAgKi8KICAgIHRpdGxlOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBLaW5kIG9mIGF1dGhvcml6YXRpb24gdXNlciBoYXMgdG8gdXNlCiAgICAgKi8KICAgIHR5cGU6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFR5cGUgb2YgYXV0aG9yaXR5ICgiYmFycmllciIgb3IgZXRjLikKICAgICAqLwogICAgcmVhbG06IHN0cmluZzsKICB9Owp9CgovKioKICogS2luZCBvZiByZXF1ZXN0IGVycm9yOiBzeW50YXggb3Igc2VtYW50aWMuIFN5bnRheCBlcnJvciBtZWFucyB0aGUKICogYXBwbGljYXRpb24gbG9naWMgZXJyb3IsIHNlbWFudGljcyDigJQgZXJyb3Igb2YgZGF0YSwgdGhhdCBjb250cmFnZW50CiAqIGlucHV0cy4KICovCmV4cG9ydCBlbnVtIEh0dHBFcnJvckJhZFJlcXVlc3RUeXBlRW51bSB7CiAgU3ludGF4ID0gInN5bnRheCIsCiAgU2VtYW50aWMgPSAic2VtYW50aWMiCn0KCi8qKgogKiBUeXBpY2FsIHJlc3BvbnNlIG9uZSBCYWQgUmVxdWVzdCBFcnJvciAoNDAwKQogKi8KZXhwb3J0IGludGVyZmFjZSBIdHRwRXJyb3JCYWRSZXF1ZXN0IHsKICAvKioKICAgKiBDb21tb24gZXJyb3IgbWVzc2FnZQogICAqLwogIG1lc3NhZ2U6IHN0cmluZzsKCiAgLyoqCiAgICogS2luZCBvZiByZXF1ZXN0IGVycm9yOiBzeW50YXggb3Igc2VtYW50aWMuIFN5bnRheCBlcnJvciBtZWFucyB0aGUKICAgKiBhcHBsaWNhdGlvbiBsb2dpYyBlcnJvciwgc2VtYW50aWNzIOKAlCBlcnJvciBvZiBkYXRhLCB0aGF0IGNvbnRyYWdlbnQKICAgKiBpbnB1dHMuCiAgICovCiAgdHlwZT86IEh0dHBFcnJvckJhZFJlcXVlc3RUeXBlRW51bTsKCiAgLyoqCiAgICogRXhwbGFpbmVkIGRlc2NyaXB0aW9uIG9mIGVycm9yCiAgICovCiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7CgogIC8qKgogICAqIEFkZGl0aW9uYWwgbGlzdCBvZiBlcnJvcnMgd2l0aCBKU09OLXBvaW50ZXJzCiAgICovCiAgZXJyb3JzPzogQXJyYXk8ewogICAgb3JpZ2luYWxNZXNzYWdlOiBzdHJpbmc7CgogICAgbWVzc2FnZT86IHN0cmluZzsKCiAgICBqc29uUG9pbnRlcjogc3RyaW5nOwogIH0+Owp9CgovKioKICogIyMgTWV0YURhdGFWaWV3CiAqIE1ldGFEYXRhIGhlbHBzIGRlY2lkZSB3aGF0IHRoZSBtZXRob2QgaGFzIHRvIHVzZSB0bwogKiBpbnRlcnByZXQgYW5kIHJlbmRlciBwYXJhbWV0ZXIgb3IgY2F0ZWdvcnkgb2YgcGFyYW1ldGVycy4KICovCmV4cG9ydCB0eXBlIEdldFBhcmFtZXRlcnNNZXRhX3Jlc3BvbnNlMjAwID0gQXJyYXk8Q2F0ZWdvcnkgfCBQYXJhbWV0ZXI+OwoKYGBgCjwvZGV0YWlscz4KCi0tLS0tCgo+ICMjIyMg8J+apiBTdGF0dXMgb2YgcHJvamVjdAo+IC0gKipTdGFiaWxpemF0aW9uOioqIHJlYWR5IHRvIHVzZSBpbiBub24tcHJvZHVjdGlvbiBwcm9qZWN0cyAoc2VlIFJvYWQgTWFwKS4KPiAtICoqTm90IHN1cHBvcnRlZCBZTUwgKG9ubHkgSlNPTikqKi4gKldpbGwgYmUgc3VwcG9ydGVkIHNvb24uIE5vdywgeW91IGNhbiB1c2Ugc29tZXRoaW5nIGxpa2UgW2pzLXlhbWxdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2pzLXlhbWwpKgo+IC0gKioq8J+QniBVUERBVEU6KioqIEZpeGVkIHByb2JsZW0gd2l0aCBpbmZpbml0eSBsb29wIGluIHJlY3Vyc2l2ZSB0eXBlcyEKPgo+IFBsZWFzZSwgaWYgaXQgcG9zc2libGU6IHNlbmQgbWUgeW91ciBzY2hlbWFzIHRoYXQgbm90IGNvbnZlcnRzIHByb3Blcmx5LgoKIyMjIE9ubGluZSBkZW1vCgpXb3JrIGluIHByb2dyZXNzISBOb3csIHNlZSBob3cgdG8gdXNlLgoKIyMjIFJvYWQgbWFwCgpXb3JrIGlzIGp1c3Qgc3RhcnRlZCwgYW5kIGN1cnJlbnQgZnVuY3Rpb25hbGl0eSAoY3JlYXRpbmcgVHlwZVNjcmlwdCB0eXBlcykg4oCUCkl0J3MganVzdCBhIGZpcnN0IHBhcnQgb2YgdGhlIHN1cHBvc2VkIGZ1bmN0aW9uYWxpdHkuCldpdGggdGltZSwgaXQncyBzdXBwb3NlZCwgcG9zc2liaWxpdGllcyBvZiB0aGlzIHBsdWdpbiB3aWxsIGJlIGV4dGVuZGVkIGJ5OgoKLSAqTWFrZSBwcm9qZWN0IHdlbGwgZG9jdW1lbnRlZCBbaW4gcHJvZ3Jlc3NdKgotICpZQU1MIHN1cHBvcnQgW2luIHByb2dyZXNzXSoKLSAqU3RhYmlsaXphdGlvbiBbaW4gcHJvZ3Jlc3NdKgotICpQbGF5Z3JvdW5kIHNpdGUgW2luIHByb2dyZXNzXSoKLSBQbHVnaW5zIHN1cHBvcnQKLSBHZW5lcmF0aW9uIGNsYXNzZXMgKG5vdyBjcmVhdGVzIG9ubHkgaW50ZXJmYWNlcykgd2l0aCBpbnRlcm5hbCB2YWxpZGF0aW9uIFsgKmNvbmNlcHQgZGVzY3JpcHRpb24gaXMgY29taW5nIHNvb24qIF0KLSBHZW5lcmF0aW9uIEFQSSBDbGFzc2VzCiAgICAtIFNvbHV0aW9ucyBmb3IgQW5ndWxhclggYmFzZWQgb24gKkFzc3VyZWQgcmVxdWVzdHMgaWRlYSogd2l0aCBpbnRlcm5hbCB2YWxpZGF0aW9uIFsgKmNvbmNlcHQgZGVzY3JpcHRpb24gaXMgY29taW5nIHNvb24qIF0KICAgIC0gKk1heSBiZSwgc29tZXRoaW5nIGVsc2UuLi4qCi0gKipEREQtdG9vbHMqKiAoU3RhcnQga2l0IGZvciBPcGVuQVBJMy1wcm9qZWN0cyk6CiAgICAtIEJ1bmRsZXIgZm9yIGNvbXBsZXggZmlsZXMgc3RydWN0dXJlLiBOZWVkIGZvIG9yZ2FuaXphdGlvbiBjb21wbGV4IEFQSS1saWJyYXJpZXMuCiAgICAtIFtEcmVkZF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZHJlZGQpCiAgICAtIE1vc3QgcG9wdWxhcnMgZG9jLWdlbmVyYXRvcnMgKGF0IGxlYXN0LCBbUmVkb2NdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3JlZG9jKSBhbmQgW1N3YWdnZXJVSV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci11aSkpCiAgICAtIENvbnZlbnRpb24gZm9yIHdvcmtpbmcgd2l0aCBEREQgT3BlbkFQSTMKLSAqKk90aGVyIGxhbmd1YWdlcyoqIChpcyB0aGVyZSBhcmUgbmVlZCBmb3IgaXQ/KTogS290bGluLCBKYXZhLCBQSFAsIAoKIyMjIElkZW9sb2d5CgotICoqRGF0YSBmb3JtYXQgbG95YWx0eToqKiBpdCdzIHNob3VsZCBiZSBhcyB1c2VmdWwgYXMgaXQgcG9zc2libGUgcmVnYXJkbGVzcyB2YWxpZGl0eSBvZiBzb3VyY2UgZGF0YS4KLSAqKkludGVncmF0aW9uKio6IHNvbHV0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGJlIGludGVncmF0ZWQgdG8gYW55IHN5c3RlbSAoYXQgbGVhc3QsIGJhc2VkIG9uIE5QTSkuIEl0J3MgbWVhbiwgc2hvdWxkIGhhdmUgQ0xJIGFuZCBBUEkuCgojIyMgV2h5IG5vdCBzd2FnZ2VyLWNvZGVnZW4/CgotIFVzZXMgTlBNIGluc3RlYWQgSmF2YSAoaW5zdGFsbCB2aWEgbnBtIGFuZCBlYXN5LWludGVncmF0YWJsZSkKLSBMaWdodHdlaWdodCAoW3N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikgc29sdXRpb24g4oCUIGl0J3MgYWJvdXQgYSAxNG1iIGZvciByZWFkeSBKQVIpCi0gU3VwcG9ydHMgT3BlbkFQSTMKLSBBYm92ZSBhbGwsIGludGVuZGVkIGZvciBUeXBlU2NyaXB0IAoKIyMgSW5zdGFsbAoKIyMjIyMgMS4gSW5zdGFsbCBUeXBlU2NyaXB0CgpgYGBzaApucG0gaW5zdGFsbCB0eXBlc2NyaXB0QGxhdGVzdCAtZwpgYGAgCgojIyMjIyAyLiBJbnN0YWxsIG9hcGkzY29kZWdlbiBnbG9iYWwgKGZvciBDTEkgdXNpbmcpCgpgYGBzaApucG0gaW5zdGFsbCBvYXBpM2NvZGVnZW4gLWcKYGBgIAoKIyMjIyMgMy4gSW5zdGFsbCBvYXBpM2NvZGVnZW4gZm9yIGxvY2FsIHByb2plY3QKCmBgYHNoCm5wbSBpbnN0YWxsIG9hcGkzY29kZWdlbiAtLXNhdmUKYGBgIAoKIyMgVXNpbmcgdmlhIENMSQoKYGBgc2gKb2FwaTNjb2RlZ2VuIC0tc3JjUGF0aCAvUEFUSC9UTy9TUkMvb3Blbi1hcGktZmlsZS5qc29uIC0tZGVzdFBhdGggL1BBVEgvVE8vREVTVCAtLXNlcGFyYXRlZEZpbGVzIHRydWUKYGBgCgojIyMjIENMSSBhcmd1bWVudHMKCnwgQ0xJIEFyZ3VtZW50ICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCAqKnNyY1BhdGgqKiAgICAgICAgfCBQYXRoIG9mIHVybCBvZiBKU09OIGZpbGUgd2l0aCBPcGVuQVBJMyBzcGVjaWZpY2F0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipkZXN0UGF0aCoqICAgICAgIHwgUGF0aCBmb3IgZGVzdGluYXRpb24gZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqc2VwYXJhdGVkRmlsZXMqKiB8IFdoZXRoZXIgc2hvdWxkIGNvbnZlcnRlZCB0eXBlcyBiZSBzYXZlZCBpbiBzZXBhcmF0ZWQgZmlsZXMsIG9yIGluIHNpbmdsZSBmaWxlIHwKCkFsc28sIHlvdSBjYW4gc2V0IHNvbWUgb2Ygb3B0aW9ucyBmb3IgY29udmVydG9yJ3MgW2NvbmZpZ3VyYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9rb3NoZXZ5L29hcGkzY29kZWdlbi9ibG9iL21hc3Rlci9jb3JlL2NvbmZpZy50cyNMOTkpCmNvbmZpZyB2aWEgQ0xJOgoKfCBPcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgKipkZWZhdWx0Q29udGVudFR5cGUqKiAgICAgICAgICB8IERlZmF1bHQgY29udGVudC10eXBlIGNvbnRhaW5zIG5vIHByZWZpeGVzL3N1ZmZpeGVzIGluIHR5cGUgbmFtZXMuICAgICAgICAgICAgIHwKfCAqKmltcGxpY2l0VHlwZXNSZWZSZXBsYWNlbWVudCoqIHwgTW9kZSB3aGVuIG1vZGVscyB0aGF0IHJlZmVyIHRvIGFueSBtb2RlbHMgdmlhIGAkcmVmYCBhcmUgcmVwbGFjaW5nIGltcGxpY2l0bHkgZXZlbiBpZiBmaXJzdHMgaGF2ZSBuYW1lcyB8CgojIyBVc2luZyB2aWEgQVBJIChUeXBlU2NyaXB0KQoKWW91IGNhbiBjb252ZXJ0IHdob2xlIE9wZW5BUEkzLXNwZWNpZmljYXRpb246CgpgYGB0eXBlc2NyaXB0CmltcG9ydCB7IENvbnZlcnRvciB9IGZyb20gJ29hcGkzY29kZWdlbic7Cgpjb25zdCBjb252ZXJ0b3I6IENvbnZlcnRvciA9IG5ldyBDb252ZXJ0b3IoKTsKCi8qKgogKiBCYXNlIG1vZGVscyBvZiBzcGVjaWZpY2F0aW9uOgogKiAgLSBSZXF1ZXN0cyBib2RpZXMgbW9kZWxzCiAqICAtIFJlcXVlc3RzIHBhcmFtcyBzZXRzIG1vZGVscwogKiAgLSBSZXNwb25zZXMgbW9kZWxzCiAqCiAqIENvbnZlcnRpbmcgc3RhcnRzIGZyb20gZW50cnkgcG9pbnRzIGFuZCBleHRyYWN0cwogKiByZWZlcnJlZCB0eXBlcyBhbmQgZGVwZW5kZW5jaWVzLiBJdCBzIHdoeSB3ZSBuZWVkCiAqIHRvIGdldCAiZW50cnkgcG9pbnRzIi4gCiAqLwpjb25zdCBlbnRyeVBvaW50cyA9IGNvbnZlcnRvci5nZXRPQVBJM0VudHJ5UG9pbnRzKGNvbnRleHQpOwoKLyoqCiAqIFJlbmRlcmluZyBlYWNoIHR5cGU6IGV2ZXJ5IGVudHJ5IHBvaW50IGFuZCBlYWNoIG9mCiAqIHRoZWlycyByZWxhdGVkIHR5cGVzLgogKi8KQ29udmVydG9yLnJlbmRlclJlY3Vyc2l2ZSgKICAgIGVudHJ5UG9pbnRzLAogICAgKGRlc2NyaXB0b3I6IERhdGFUeXBlRGVzY3JpcHRvciwgdGV4dCkgPT4gewogICAgICAgIC8vIEhlcmUgeW91ciBjb2RlOiB5b3UgZ2V0IHRleHQgYW5kIHR5cGUgZGVzY3JpcHRvci4KICAgICAgICAvLyBZb3UgY2FuIHNlZSBob3cgb2FwaTNjb2RlZ2VuJ3MgQ0xJIHVzZXMgdGhpcyBjYWxiYWNrIGhlcmU6CiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2tvc2hldnkvb2FwaTNjb2RlZ2VuL2Jsb2IvbWFzdGVyL2NsaS50cyNMNzMKICAgIH0KKTsKYGBgCgpBbmQgYWxzbywgeW91IGNhbiBjb252ZXJ0IHN0YW5kLWFsb25lIEpTT04tc2NoZW1hIGludG8gdHlwZSBkZXNjcmlwdG9yLAp0aGF0IGNvdWxkIGJlIHJlbmRlcmVkOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBDb252ZXJ0b3IgfSBmcm9tICdvYXBpM2NvZGVnZW4nOwovLyB5b3UgbmVlZCBwcmV0dGllciB0byBiZWF1dGlmeSByZXN1bHQgb2YgcmVuZGVyaW5nCmltcG9ydCAqIGFzIHByZXR0aWVyIGZyb20gJ3ByZXR0aWVyJzsKLy8gcHJvdmlkZXMgYF8uZWFjaCguLi4pYCBmb3Igb3VyIGV4YW1wbGUKaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnOwoKY29uc3QgY29udmVydG9yOiBDb252ZXJ0b3IgPSBuZXcgQ29udmVydG9yKCk7Cgpjb25zdCBhbm90aGVySnNvblNjaGVtYU9iamVjdCA9IHsKICAgICJ0aXRsZSI6ICJQZXJzb24iLAogICAgImRlc2NyaXB0aW9uIjogIkluZm9ybWF0aW9uIGFib3V0IHBlcnNvbiB5b3UgaGF2ZSB0byByZWdpc3RlciBpbiB5b3VyIHN5c3RlbS4iLAogICAgInR5cGUiOiAib2JqZWN0IiwKICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJmaXJzdE5hbWUiOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICB9LAogICAgICAgICJsYXN0TmFtZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgImFnZSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFnZSBpbiB5ZWFycyIsCiAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9CiAgICB9LAogICAgInJlcXVpcmVkIjogWyJmaXJzdE5hbWUiLCAibGFzdE5hbWUiXQp9OwoKY29uc3QgY29udmVydFJlc3VsdCA9IGNvbnZlcnRvci5jb252ZXJ0KAogICAgYW5vdGhlckpzb25TY2hlbWFPYmplY3QsCiAgICB7fSwKICAgICdBbm90aGVyVHlwZScKKTsKCl8uZWFjaChjb252ZXJ0UmVzdWx0LCB0eXBlRGVzY3JpcHRvciA9PiB7CiAgICBjb25zdCB0eXBlQ29kZSA9IHByZXR0aWVyLmZvcm1hdCgKICAgICAgICB0eXBlRGVzY3JpcHRvci5yZW5kZXIoW10pLAogICAgICAgIHtwYXJzZXI6ICd0eXBlc2NyaXB0J30KICAgICk7CgogICAgY29uc29sZS5sb2codHlwZUNvZGUpOwp9KTsKCmBgYAoKQW5kIHRoaXMgY29kZSB3aWxsIHByaW50IHJlc3VsdDoKCmBgYHR5cGVzY3JpcHQKLyoqCiAqICMjIFBlcnNvbgogKiBJbmZvcm1hdGlvbiBhYm91dCBwZXJzb24geW91IGhhdmUgdG8gcmVnaXN0ZXIgaW4geW91ciBzeXN0ZW0uCiAqLwpleHBvcnQgaW50ZXJmYWNlIEFub3RoZXJUeXBlIHsKICBmaXJzdE5hbWU6IHN0cmluZzsKCiAgbGFzdE5hbWU6IHN0cmluZzsKCiAgLyoqCiAgICogQWdlIGluIHllYXJzCiAgICovCiAgYWdlPzogbnVtYmVyOwp9CmBgYAoKIyMgQVBJIChUeXBlU2NyaXB0KQoKQ29taW5nIHNvb24uLi4KCiMjIEhvdyB0byBleHRlbmQ/CgpDb21pbmcgc29vbi4uLg== readmeEtag: '"ff94db1290d21d23b6d798ee329fb71914334936"' readmeLastModified: Tue, 15 May 2018 07:24:08 GMT repositoryId: 131764821 description: Moved here — https://github.com/koshevy/codegena created: '2018-05-01T21:25:54Z' updated: '2023-01-28T14:51:04Z' language: TypeScript archived: true stars: 7 watchers: 2 forks: 3 owner: koshevy logo: https://avatars.githubusercontent.com/u/1203974?v=4 repoEtag: '"75ff7ba57a581fe864d0b0161a778055a4c9d44d04397f9f7b15823cd016e59b"' repoLastModified: Sat, 28 Jan 2023 14:51:04 GMT foundInMaster: true category: Parsers id: f3f5958dfb657fddca8ac61f63c3d588 - source: openapi3 tags repository: https://github.com/wubin1989/pullcode v3: true id: bc40e809ab84668bedebf55e3df56f1b repositoryMetadata: base64Readme: >- IyBwdWxsY29kZQogIApQdWxsY29kZSBpcyBPcGVuQVBJIChha2EgU3dhZ2dlcikgc3BlY2lmaWNhdGlvbiBjb21wYXRpYmxlIHR5cGVzY3JpcHQgaHR0cCBjbGllbnQgY29kZSBnZW5lcmF0aW9uIHRvb2wgcmVseWluZyBvbiBheGlvcy4gWW91IGNhbiBjb25maWd1cmUgaXQgdG8gbnBtIHNjcmlwdHMgdG8gZGlyZWN0bHkgZ2VuZXJhdGUgY2xpZW50IGNvZGUgdG8gc3BlY2lmaWVkIHBhdGggdG8gZWFzaWx5IHVzZS4gU3VwcG9ydCBTd2FnZ2VyIDIgYW5kIE9wZW5BUEkgMyAoYWthIFN3YWdnZXIgMykgaW4ganNvbiBmb3JtYXQuCgo8IS0tIFNUQVJUIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KPCEtLSBET04nVCBFRElUIFRISVMgU0VDVElPTiwgSU5TVEVBRCBSRS1SVU4gZG9jdG9jIFRPIFVQREFURSAtLT4KIyMjIFRPQwoKLSBbRmVhdHVyZXNdKCNmZWF0dXJlcykKLSBbQ3JlZGl0c10oI2NyZWRpdHMpCi0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKLSBbQ0xJIE9wdGlvbnNdKCNjbGktb3B0aW9ucykKLSBbR2VuZXJhdGlvbiBSdWxlXSgjZ2VuZXJhdGlvbi1ydWxlKQotIFtVc2FnZV0oI3VzYWdlKQotIFtRdWlja3N0YXJ0XSgjcXVpY2tzdGFydCkKLSBbTW9yZSBFeGFtcGxlc10oI21vcmUtZXhhbXBsZXMpCiAgLSBbUmVzcG9uc2UgRXJyb3IgSW50ZXJjZXB0b3JdKCNyZXNwb25zZS1lcnJvci1pbnRlcmNlcHRvcikKICAtIFtTZW5kIFJlcXVlc3RzXSgjc2VuZC1yZXF1ZXN0cykKLSBbU2lzdGVyIFByb2plY3RzXSgjc2lzdGVyLXByb2plY3RzKQotIFtMaWNlbnNlXSgjbGljZW5zZSkKCjwhLS0gRU5EIGRvY3RvYyBnZW5lcmF0ZWQgVE9DIHBsZWFzZSBrZWVwIGNvbW1lbnQgaGVyZSB0byBhbGxvdyBhdXRvIHVwZGF0ZSAtLT4KCiMjIEZlYXR1cmVzCgoxLiBUb3RhbGx5IHR5cGVzY3JpcHQgc3VwcG9ydC4gUHVsbGNvZGUgZ2VuZXJhdGVzIHNlcnZpY2UgY2xhc3MsIG1ldGhvZHMsIHJlcXVlc3QgYm9keSBhbmQgcmVzcG9uc2UgYm9keSBvYmplY3QgdHlwZXMgYmFzZWQgb24ganNvbiBmb3JtYXR0ZWQgU3dhZ2dlcjIvT3BlbkFQSTMgZG9jdW1lbnRhdGlvbi4KMi4gUmljaCBhbmQgdXNlZnVsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gUHVsbGNvZGUgd3JhcHBzIGF4aW9zIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgYWRkIG1vcmUgb3B0aW9ucyBmb3IgeW91IHRvIGVsZWdhbnRseSBjdXN0b21pemUgcmVxdWVzdHMuCjMuIEJ1aWx0LWluIGF4aW9zIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGludGVyY2VwdG9ycy4gUmVxdWVzdCBpbnRlcmNlcHRvciBoYW5kbGVzIHJlcXVlc3QgdXJsIHJld3JpdGUgYW5kIGFkZHMgQXV0aG9yaXphdGlvbiBoZWFkZXIuIFJlc3BvbnNlIGludGVyY2VwdG9yIGV4dHJhY3RzIGRhdGEgYXR0cmlidXRlIGZyb20gcmF3IHJlc3BvbnNlLiBVc2VycyBjYW4gY29uZmlndXJlIGFkZGl0aW9uYWwgY3VzdG9tIGludGVyY2VwdG9ycyB0byBkbyBmdXJ0aGVyIHByb2Nlc3MuIFRoZXJlIGlzIG5vIGJ1aWx0LWluIHJlcXVlc3QgZXJyb3IgYW5kIHJlc3BvbnNlIGVycm9yIGludGVyY2VwdG9ycywgdXNlcnMgc2hvdWxkIHBhc3MgdGhlaXIgb3duIGltcGxlbWVudGF0aW9ucyBpZiBuZWNlc3NhcnkuCjQuIEZyYW1ld29yay1hZ25vc3RpYy4gUHVsbGNvZGUgY2FuIGJlIHVzZWQgd2l0aCBhbnkgZnJvbnRlbmQgZnJhbWV3b3Jrcy4KCiMjIENyZWRpdHMKCiogW2NvbW1hbmRlci5qc10oaHR0cHM6Ly9naXRodWIuY29tL3RqL2NvbW1hbmRlci5qcynvvJpub2RlanMgY29tbWFuZCBsaW5lIHRvb2wgbGlicmFyeQoqIFtzd2FnZ2VyMm9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL29hcy1raXQvYmxvYi9tYWluL3BhY2thZ2VzL3N3YWdnZXIyb3BlbmFwaS9SRUFETUUubWQp77yaY29udmVydCBzd2FnZ2VyIDIgdG8gT3BlbkFQSSAzCiogW3Z1ZS12YmVuLWFkbWluXShodHRwczovL2dpdGh1Yi5jb20vdmJlbmpzL3Z1ZS12YmVuLWFkbWluKTogYSBtb2Rlcm4gdnVlMyBhZG1pbgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBzaGVsbApucG0gaW5zdGFsbCAtLXNhdmUgcHVsbGNvZGUKYGBgCgpOT1RFOiBnZW5lcmF0ZWQgY29kZSBpbXBvcnRzIGNvZGUgZnJvbSBwdWxsY29kZSwgc28gcHVsbGNvZGUgaXMgbm90IG9ubHkgYSBDTEksIGJ1dCBhbHNvIGEgbnBtIHBhY2thZ2UsIHlvdSBzaG91bGQgdXNlIGAtLXNhdmVgIGluc3RlYWQgb2YgYC0tc2F2ZS1kZXZgLgoKIyMgQ0xJIE9wdGlvbnMKCmBgYHNoZWxsCuKenCAgcHVsbGNvZGUgZ2l0OihtYXN0ZXIpIOKclyBwdWxsY29kZSAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKVXNhZ2U6IHB1bGxjb2RlIFtvcHRpb25zXQoKT3B0aW9uczoKICAtbywgLS1vdXRwdXQgPHZhbHVlPiAgY29kZSBvdXRwdXQgcGF0aAogIC11LCAtLXVybCA8dmFsdWU+ICAgICBzd2FnZ2VyIDIuMCBvciBvcGVuYXBpIDMuMCBqc29uIGFwaSBkb2N1bWVudCBkb3dubG9hZCB1cmwKICAtaCwgLS1oZWxwICAgICAgICAgICAgZGlzcGxheSBoZWxwIGZvciBjb21tYW5kCmBgYAoKKiBvdXRwdXQ6IGRpcmVjdG9yaWVzIHdpbGwgYmUgcmVjdXJzaXZlbHkgY3JlYXRlZCBpZiBub3QgZXhpc3RzLgoKIyMgR2VuZXJhdGlvbiBSdWxlCgpQdWxsY29kZSB3aWxsIGNoZWNrIGlmIGBCaXpTZXJ2aWNlLnRzYCBmaWxlIGV4aXN0cywgaWYgZXhpc3RzLCBza2lwLiBPdGhlciBmaWxlcyB3aWxsIGFsd2F5cyBiZSBvdmVyd3JpdHRlbi4KCiMjIFVzYWdlCgoxLiBDb25maWd1cmUgcHVsbGNvZGUgY29tbWFuZCBpbnRvIGBzY3JpcHRzYCBhdHRyaWJ1dGUgaW4gcGFja2FnZS5qc29uLiBGb3IgZXhhbXBsZToKCmBgYGphdmFzY3JpcHQKInNjcmlwdHMiOiB7CiAgInB1bGwiOiAicHVsbGNvZGUgLXUgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIC1vIHNyYy9hcGkiCn0sCmBgYAoKMi4gUnVuIGBucG0gcnVuIHB1bGxgCgozLiBPcGVuIGBCaXpTZXJ2aWNlLnRzYCBmaWxlLCBmaXggYGRlZmF1bHRPcHRpb25zYCBwYXJhbWV0ZXJzIHRvIGZpdCB5b3VyIG5lZWQuICAKCmBgYGphdmFzY3JpcHQKY29uc3QgZGVmYXVsdE9wdGlvbnM6IENyZWF0ZUF4aW9zT3B0aW9ucyA9IHsKICByZXF1ZXN0T3B0aW9uczogewogICAgYXBpVXJsOiAnJywgLy8gc2FtZSBhcyBiYXNlVXJsCiAgICB1cmxQcmVmaXg6ICcnLAogIH0gYXMgUmVxdWVzdE9wdGlvbnMsCn0KYGBgCgotIGBhcGlVcmxgOiBpZiBjb25maWd1cmVkIHByb3h5LCBgYXBpVXJsYCBzaG91bGQgYmUgc2V0IHRvIGEgcHJlZml4IGZvciBtYXRjaGluZyB0aGUgcHJveHkuCi0gYHVybFByZWZpeGA6IHNob3VsZCBiZSBjb25maXJtZWQgd2l0aCB5b3VyIGJhY2tlbmQgY29sbGVhZ3VlcyBpZiB0aGVyZSBpcyB1cmwgcHJlZml4IHRvIG1hdGNoIHNlcnZpY2UgbmFtZSAoaWYgdGhlIHNlcnZpY2UgaXMgYmVoaW5kIGEgZ2F0ZXdheSkgb3Igc2VydmxldCBjb250eHQgcGF0aCAoaWYgdGhlIHNlcnZpY2UgaXMgYmFzZWQgb24gc3ByaW5nIGJvb3QgZnJhbWV3b3JrKS4KLSBgdHJhbnNmb3JtYDogc2V0IHlvdXIgY3VzdG9tIGF4aW9zIGludGVyY2VwdG9ycy4gTm9ybWFsbHksIHlvdSBqdXN0IG5lZWQgdG8gY3VzdG9taXplIHJlc3BvbnNlIGVycm9yIGludGVyY2VwdG9yLgotIGB0b2tlbkdldHRlcmA6IHNldCBhdXRoIHRva2VuIGdldHRlciBmdW5jdGlvbi4gVGhlIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGluIGJ1aWx0LWluIHJlcXVlc3QgaW50ZXJjZXB0b3IgdG8gcHV0IHRva2VuIGludG8gaGVhZGVyLgoKRm9yIGV4YW1wbGU6IAoKYGBgamF2YXNjcmlwdAppbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7CmltcG9ydCB7IENyZWF0ZUF4aW9zT3B0aW9ucywgVkF4aW9zIH0gZnJvbSAnQC9odHRwdXRpbC9BeGlvcyc7CmltcG9ydCB7IHVzZUdsb2JTZXR0aW5nIH0gZnJvbSAnL0AvaG9va3Mvc2V0dGluZyc7CmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy9AL2FwaS9pbnRlcmNlcHRvcicKaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICcvQC91dGlscy9hdXRoJzsKaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAL3R5cGVzL2F4aW9zJzsKCmNvbnN0IGdsb2JTZXR0aW5nID0gdXNlR2xvYlNldHRpbmcoKTsKCmNvbnN0IGRlZmF1bHRPcHRpb25zOiBDcmVhdGVBeGlvc09wdGlvbnMgPSB7CiAgdHJhbnNmb3JtLAogIHJlcXVlc3RPcHRpb25zOiB7CiAgICBhcGlVcmw6IGdsb2JTZXR0aW5nLmFwaVVybCwgLy8gc2FtZSBhcyBiYXNlVXJsCiAgICB1cmxQcmVmaXg6ICcvbXlzZXJ2aWNlJywKICB9IGFzIFJlcXVlc3RPcHRpb25zLAogIHRva2VuR2V0dGVyOiBnZXRUb2tlbiBhcyAoKSA9PiBzdHJpbmcKfQoKZXhwb3J0IGNsYXNzIEJpelNlcnZpY2UgZXh0ZW5kcyBWQXhpb3MgewogIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBQYXJ0aWFsPENyZWF0ZUF4aW9zT3B0aW9ucz4pIHsKICAgIHN1cGVyKG1lcmdlKGRlZmF1bHRPcHRpb25zLCBvcHRpb25zIHx8IHt9KSk7CiAgfQp9CgpleHBvcnQgZGVmYXVsdCBCaXpTZXJ2aWNlOwpgYGAKCkZvciBvdGhlciBvcHRpb25zLCBwbGVhc2UgcmVhZCBgQ3JlYXRlQXhpb3NPcHRpb25zYCBkZWZpbml0aW9uIGZyb20gc291cmNlIGNvZGUuCgo0LiBBZnRlciBhYm92ZSBmaXgsIHlvdSBjYW4gaW1wb3J0IGRlZmF1bHQgc2luZ2xldG9uIHNlcnZpY2UgaW5zdGFuY2UgdG8gY29tcG9uZW50cyB0byBzZW5kIGh0dHAgcmVxdWVzdHMuCgojIyBRdWlja3N0YXJ0CgpQbGVhc2UgcmVmZXIgdG8gdGhpcyBleGFtcGxlIGFwcO+8mltwdWxsY29kZS1xdWlja3N0YXJ0XShodHRwczovL2dpdGh1Yi5jb20vd3ViaW4xOTg5L3B1bGxjb2RlL3RyZWUvbWFzdGVyL2V4YW1wbGVzL3B1bGxjb2RlLXF1aWNrc3RhcnQpCgohW3BldHN0b3JlXSguL3BldHN0b3JlLnBuZykKCiMjIE1vcmUgRXhhbXBsZXMKIyMjIFJlc3BvbnNlIEVycm9yIEludGVyY2VwdG9yCgpgYGBqYXZhc2NyaXB0CmltcG9ydCB0eXBlIHsgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJzsKaW1wb3J0IHR5cGUgeyBBeGlvc1RyYW5zZm9ybSB9IGZyb20gJ0AvaHR0cHV0aWwvYXhpb3NUcmFuc2Zvcm0nOwppbXBvcnQgeyBjaGVja1N0YXR1cyB9IGZyb20gJy4vY2hlY2tTdGF0dXMnOwppbXBvcnQgeyB1c2VNZXNzYWdlIH0gZnJvbSAnL0AvaG9va3Mvd2ViL3VzZU1lc3NhZ2UnOwppbXBvcnQgeyB1c2VFcnJvckxvZ1N0b3JlV2l0aE91dCB9IGZyb20gJy9AL3N0b3JlL21vZHVsZXMvZXJyb3JMb2cnOwppbXBvcnQgeyB1c2VJMThuIH0gZnJvbSAnL0AvaG9va3Mvd2ViL3VzZUkxOG4nOwoKY29uc3QgeyBjcmVhdGVNZXNzYWdlLCBjcmVhdGVFcnJvck1vZGFsIH0gPSB1c2VNZXNzYWdlKCk7CgpleHBvcnQgY29uc3QgdHJhbnNmb3JtOiBBeGlvc1RyYW5zZm9ybSA9IHsKICAvKioKICAgKiBAZGVzY3JpcHRpb246IFJlc3BvbnNlIEVycm9yIEludGVyY2VwdG9yCiAgICovCiAgcmVzcG9uc2VJbnRlcmNlcHRvcnNDYXRjaDogKF86IEF4aW9zUmVzcG9uc2UsIGVycm9yOiBhbnkpID0+IHsKICAgIGNvbnN0IHsgdCB9ID0gdXNlSTE4bigpOwogICAgY29uc3QgZXJyb3JMb2dTdG9yZSA9IHVzZUVycm9yTG9nU3RvcmVXaXRoT3V0KCk7CiAgICBlcnJvckxvZ1N0b3JlLmFkZEFqYXhFcnJvckluZm8oZXJyb3IpOwogICAgY29uc3QgeyByZXNwb25zZSwgY29kZSwgbWVzc2FnZSwgY29uZmlnIH0gPSBlcnJvciB8fCB7fTsKICAgIGNvbnN0IGVycm9yTWVzc2FnZU1vZGUgPSBjb25maWc/LnJlcXVlc3RPcHRpb25zPy5lcnJvck1lc3NhZ2VNb2RlIHx8ICdub25lJzsKICAgIGNvbnN0IG1zZzogc3RyaW5nID0gcmVzcG9uc2U/LmRhdGE/LmVycm9yPy5tZXNzYWdlID8/ICcnOwogICAgY29uc3QgZXJyOiBzdHJpbmcgPSBlcnJvcj8udG9TdHJpbmc/LigpID8/ICcnOwogICAgbGV0IGVyck1lc3NhZ2UgPSAnJzsKCiAgICB0cnkgewogICAgICBpZiAoY29kZSA9PT0gJ0VDT05OQUJPUlRFRCcgJiYgbWVzc2FnZS5pbmRleE9mKCd0aW1lb3V0JykgIT09IC0xKSB7CiAgICAgICAgZXJyTWVzc2FnZSA9IHQoJ3N5cy5hcGkuYXBpVGltZW91dE1lc3NhZ2UnKTsKICAgICAgfQogICAgICBpZiAoZXJyPy5pbmNsdWRlcygnTmV0d29yayBFcnJvcicpKSB7CiAgICAgICAgZXJyTWVzc2FnZSA9IHQoJ3N5cy5hcGkubmV0d29ya0V4Y2VwdGlvbk1zZycpOwogICAgICB9CgogICAgICBpZiAoZXJyTWVzc2FnZSkgewogICAgICAgIGlmIChlcnJvck1lc3NhZ2VNb2RlID09PSAnbW9kYWwnKSB7CiAgICAgICAgICBjcmVhdGVFcnJvck1vZGFsKHsgdGl0bGU6IHQoJ3N5cy5hcGkuZXJyb3JUaXAnKSwgY29udGVudDogZXJyTWVzc2FnZSB9KTsKICAgICAgICB9IGVsc2UgaWYgKGVycm9yTWVzc2FnZU1vZGUgPT09ICdtZXNzYWdlJykgewogICAgICAgICAgY3JlYXRlTWVzc2FnZS5lcnJvcihlcnJNZXNzYWdlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTsKICAgICAgfQogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yIGFzIHVua25vd24gYXMgc3RyaW5nKTsKICAgIH0KCiAgICBjaGVja1N0YXR1cyhlcnJvcj8ucmVzcG9uc2U/LnN0YXR1cywgbXNnLCBlcnJvck1lc3NhZ2VNb2RlKTsKICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7CiAgfSwKfTsKYGBgCgojIyMgU2VuZCBSZXF1ZXN0cwoKYGBgamF2YXNjcmlwdAo8c2NyaXB0IHNldHVwIGxhbmc9InRzIj4KaW1wb3J0IHsgcGV0U2VydmljZSB9IGZyb20gJ0AvYXBpL1BldFNlcnZpY2UnOwppbXBvcnQgeyBQZXQsIFBldFN0YXR1c0VudW0gfSBmcm9tICdAL2FwaS90eXBlcyc7CmltcG9ydCB7IHJlZiB9IGZyb20gJ3Z1ZSc7CgpsZXQgbG9hZGluZyA9IHJlZih0cnVlKTsKbGV0IGRhdGFTb3VyY2UgPSByZWYoW10gYXMgUGV0W10pOwoKcGV0U2VydmljZS5nZXRQZXRGaW5kQnlTdGF0dXMoewogIHN0YXR1czogUGV0U3RhdHVzRW51bS5BVkFJTEFCTEUsCn0pLnRoZW4oKHJlc3A6IFBldFtdKSA9PiB7CiAgZGF0YVNvdXJjZS52YWx1ZSA9IHJlc3AKICBsb2FkaW5nLnZhbHVlID0gZmFsc2UKfSkKPC9zY3JpcHQ+CmBgYAoKIyMgU2lzdGVyIFByb2plY3RzCgotIFtnby1kb3Vkb3VdKGh0dHBzOi8vZ2l0aHViLmNvbS91bmlvbmotY2xvdWQvZ28tZG91ZG91KTogT3BlbkFQSSAzLjAgc3BlYyBiYXNlZCBsaWdodHdlaWdodCBtaWNyb3NlcnZpY2UgZnJhbWV3b3JrIHdyaXR0ZW4gaW4gR28uIEl0IHN1cHBvcnRzIG1vbm9saXRoIHNlcnZpY2UgYXBwbGljYXRpb24gYXMgd2VsbC4gQ3VycmVudGx5LCBpdCBzdXBwb3J0cyBSRVNUZnVsIHNlcnZpY2Ugb25seS4KCiMjIExpY2Vuc2UKCk1JVA== readmeEtag: '"43d5b70ed509b8114b9fd4895334bf9babca2450"' readmeLastModified: Sun, 20 Aug 2023 17:15:06 GMT repositoryId: 509066883 description: >- pullcode is a typescript http client code generation cli compatible with Swagger 2 and OpenAPI 3 created: '2022-06-30T12:15:28Z' updated: '2024-02-13T15:05:27Z' language: TypeScript archived: false stars: 7 watchers: 3 forks: 2 owner: wubin1989 logo: https://avatars.githubusercontent.com/u/12456315?v=4 license: MIT repoEtag: '"c5a7cb390d188b1988b1bdcbf32813585dfbf80fd05bb4e6f299a645f3bf45d1"' repoLastModified: Tue, 13 Feb 2024 15:05:27 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/odoo-plus/odootools-openapi v3: true id: 5908c15dabba77657f3b02534b6eb759 repositoryMetadata: base64Readme: >- T2Rvb1Rvb2xzIE9wZW5BUEkKPT09PT09PT09PT09PT09PT0KClRoaXMgcGFja2FnZSBpcyBhIGxpYnJhcnkgYW5kIGFuIGEgcGx1Z2luIGZvciBbb2Rvby10b29sc10oaHR0cHM6Ly9naXRodWIuY29tL2xsYWNyb2l4L29kb28tdG9vbHMpLgoKV2hlbiB1c2VkIGFzIGEgbGlicmFyeSwgaXQgZGVmaW5lIGFuIG9ybSB0aGF0IGhlbHBzIHVud3JhcCBqc29uIGJvZHkgaW50byBweXRob24gb2JqZWN0cyBhbmQgT2RvbwpvYmplY3RzIGJhY2sgaW50byBKU09OLgoKV2hlbiB1c2VkIGFzIGEgY29tbWFuZCwgaXQgd2lsbCBnZW5lcmF0ZSBhbiBPZG9vIE1vZHVsZSB3aXRoIGFwaSBtb2RlbHMgYW5kIGNvbnRyb2xsZXJzIGFzIGRlZmluZWQKaW4gYW4gb3BlbmFwaTMgc3BlYyB3aXRoIGN1c3RvbSBleHRlbnNpb25zIGZvciBPZG9vLgoKVGhlIGNvbW1hbmQgY2FuIGJlIGludm9rZWQgYXMgc3VjaDoKCiAgICBvZG9vdG9vbHMgZ2VuIG9wZW5hcGkgLS1kZXN0aW5hdGlvbiBteV9tb2R1bGVfYXBpIC0tcGF0aCBwYXRoX3RvX3NwZWMKICAgIG9kb290b29scyBnZW4gb3BlbmFwaSAtLWRlc3RpbmF0aW9uIG15X21vZHVsZV9hcGkgLS11cmwgdXJsX3RvX3NwZWMKClRoZW4gdGhlIG1vZHVsZSB3aWxsIGJlIGNyZWF0ZWQgaW5zaWRlIHRoZSBkZXN0aW5hdGlvbiBwYXRoLiBJdCB3aWxsIHVzZQp0aGUgdGl0bGUvZGVzY3JpcHRpb24gb2YgdGhlIGFwaSB0byBkZWZpbmUgdGhlIG5hbWUvc3VtbWFyeSBvZiB0aGUgbW9kdWxlLgoKCkV4YW1wbGUgQVBJOgoKICAgIG9wZW5hcGk6IDMuMC4wCiAgICBpbmZvOgogICAgICBjb250YWN0OgogICAgICAgIGVtYWlsOiBpbmZvQG9kb28ucGx1cwogICAgICAgIG5hbWU6IExvw69jIEZhdXJlLUxhY3JvaXgKICAgICAgICB1cmw6IGh0dHBzOi8vd3d3Lm9kb28ucGx1cwogICAgICBkZXNjcmlwdGlvbjogJycKICAgICAgbGljZW5zZToKICAgICAgICBuYW1lOiBBcGFjaGUgMi4wCiAgICAgICAgdXJsOiBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLmh0bWwKICAgICAgdGl0bGU6ICcnCiAgICAgIHZlcnNpb246ICcxJwoKICAgIHRhZ3M6CiAgICAgIC0gbmFtZTogcHJvamVjdHMKICAgICAgICBkZXNjcmlwdGlvbjogU3VwZXIgcHJvamVjdHMKCiAgICBjb21wb25lbnRzOgogICAgICBzY2hlbWFzOgogICAgICAgIEFwaVJlc3VsdDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBcGkgUmVzdWx0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBpZDoKICAgICAgICAgICAgICB0aXRsZTogUmVzb3VyY2UgSWQKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICBQcm9qZWN0OgogICAgICAgICAgZGVzY3JpcHRpb246IFByb2plY3QKICAgICAgICAgIHgtbW9kZWw6IHByb2plY3QucHJvamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgaWQ6CiAgICAgICAgICAgICAgdGl0bGU6IElECiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBuYW1lOgogICAgICAgICAgICAgIHRpdGxlOiBOYW1lCiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCgogICAgcGF0aHM6CiAgICAgIC9wcm9qZWN0L3twcm9qZWN0fToKICAgICAgICBnZXQ6CiAgICAgICAgICB0YWdzOgogICAgICAgICAgICAtIHByb2plY3RzCiAgICAgICAgICBwYXJhbWV0ZXJzOgogICAgICAgICAgICAtIG5hbWU6IHByb2plY3QKICAgICAgICAgICAgICB4LW1vZGVsOgogICAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1Byb2plY3QiCiAgICAgICAgICAgICAgaW46IHBhdGgKICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlc2NyaXB0aW9uOiBHZXQgYSBwcm9qZWN0CiAgICAgICAgICBvcGVyYXRpb25JZDogZ2V0X3Byb2plY3QKICAgICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgICAgMjAwOgogICAgICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0FwaVJlc3VsdCcKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogUHJvamVjdAoKClJlc3VsdCBjb250cm9sbGVyOgoKICAgIGZyb20gb2Rvb3Rvb2xzX29wZW5hcGkub2Rvby5odHRwIGltcG9ydCByZXF1ZXN0LCByb3V0ZSwgQ29udHJvbGxlcgoKICAgIGZyb20gLi5hcGlfbW9kZWxzLmFwaXJlc3VsdCBpbXBvcnQgQXBpUmVzdWx0CgoKICAgIGNsYXNzIFByb2plY3RzKENvbnRyb2xsZXIpOgogICAgICAgICIiIgogICAgICAgIFN1cGVyIHByb2plY3RzCiAgICAgICAgIiIiCgogICAgICAgIEByb3V0ZSgKICAgICAgICAgICAgcm91dGU9WyIvcHJvamVjdC88bW9kZWwoJ3Byb2plY3QucHJvamVjdCcpOnByb2plY3Q+Il0sCiAgICAgICAgICAgIG1ldGhvZHM9WydHRVQnXSwKICAgICAgICAgICAgY3NyZj1GYWxzZSwKICAgICAgICAgICAgdHlwZT0ncGxhaW5qc29uJywKICAgICAgICAgICAgYXV0aD0nbm9uZScsCiAgICAgICAgKQogICAgICAgIGRlZiBnZXRfcHJvamVjdChzZWxmLCBwcm9qZWN0KToKICAgICAgICAgICAgIiIiCiAgICAgICAgICAgIEdldCBhIHByb2plY3QKICAgICAgICAgICAgIiIiCiAgICAgICAgICAgIHBhc3MKICAgICAgICAK readmeEtag: '"1a748b58abea4e5ce09fb2961286198d80c7ec4c"' readmeLastModified: Tue, 07 Mar 2023 17:23:39 GMT repositoryId: 563113258 description: Odoo Tools OpenAPI created: '2022-11-07T23:43:36Z' updated: '2024-07-10T16:40:02Z' language: Python archived: false stars: 7 watchers: 2 forks: 3 owner: odoo-plus logo: https://avatars.githubusercontent.com/u/112507593?v=4 license: GPL-3.0 repoEtag: '"5a1046e986410ece70f52739715c51f2e30c4dcdaabd6448f3cabe9d6a2075fe"' repoLastModified: Wed, 10 Jul 2024 16:40:02 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/llacroix/odoo-tools-openapi - source: openapi3 tags repository: https://github.com/endava/endava-hl7fhir-openapi v3: true repositoryMetadata: base64Readme: >- IVtFbmRhdmEgTG9nb10ocmVzL2VuZGF2YV9sb2dvXzMyOXgxMjguanBnKQoKCiMgRW5kYXZhIEhMNyBGSElSIE9wZW5BUEkgRGVtbwpNYXRqYXogQnJhdmMsIFNlbmlvciBEZXZlbG9wZXIKCgoKIyBJbnRyb2R1Y3Rpb24KClRoaXMgcmVwbyBjb250YWlucyBkZW1vbnN0cmF0aW9uIGNvZGUgdG8gaWxsdXN0cmF0ZSB0aGUgdXNlIG9mIHRoZSBGSUhSIHN0YW5kYXJkIGZvciBoZWFsdGhjYXJlIGRhdGEsIGRldmVsb3BlZCBieSB0aGUgSEw3IG9yZ2FuaXNhdGlvbi4gIFRoZSBkZW1vbnN0cmF0aW9uIHNob3dzIGhvdyB0byBidWlsZCBhbiBPcGVuQVBJIHRvIEZISVIgZGF0YSB1c2luZyAuTkVULiAgVGhlIGRlbW9uc3RyYXRpb24gYWNjb21wYW5pZXMgYSBzZXJpZXMgb2YgYmxvZyBwb3N0cyBvbiB0aGUgW0VuZGF2YSBFbmdpbmVlcmluZyBCbG9nXShodHRwczovL3d3dy5lbmRhdmEuY29tL2VuL2Jsb2cvRW5naW5lZXJpbmcpIGJ5IE1hdGpheiwgZW50aXRsZWQgIkNyZWF0aW5nIEVIUiB0byBITDcgRkhJUiBJbnRlZ3JhdGlvbiAtIFRoZSBTb2Z0d2FyZSBEZXZlbG9wZXIncyBHdWlkZSIuCgpUYWJsZSBvZiBDb250ZW50cwo9PT09PT09PT09PT09PT09PQoKICAgKiBbT3ZlcnZpZXcgb2YgdGhlIFByb2plY3RdKCNvdmVydmlldy1vZi10aGUtcHJvamVjdCkKICAgKiBbV2hhdCBpcyBGSElSP10oI3doYXQtaXMtZmhpcikKICAgICAqIFtXaHkgRkhJUj9dKCN3aHktZmhpcikKICAgICAqIFtTdW1tYXJ5XSgjc3VtbWFyaXNpbmctZmhpcikKICAgKiBbVXNpbmcgdGhlIERlbW9uc3RyYXRpb24gQ29kZV0oI3VzaW5nLXRoZS1kZW1vbnN0cmF0aW9uLWNvZGUpCgojIE92ZXJ2aWV3IG9mIHRoZSBQcm9qZWN0CgohW0hMNyBMb2dvXShyZXMvaGw3LWZoaXItMzQweDEzMi5wbmcpCgpXaGVuIGFkb3B0aW5nIEZISVIsIGEgY29tbW9uIHNjZW5hcmlvIGlzIG5lZWRpbmcgdG8gY29udmVydCB5b3VyIGV4aXN0aW5nIGRhdGEgaW50byB0aGUgRkhJUiBtb2RlbC4gRm9yIHRoaXMgZGVtbywgd2Ugd2lsbCBiZSBidWlsZGluZyBhIE9wZW5BUEkgd2hpY2ggbWFwcyBjdXN0b20gRUhScyBpbnRvIEZISVIgUGF0aWVudCBhbmQgT2JzZXJ2YXRpb24gcmVzb3VyY2VzLiBPdGhlciByZXNvdXJjZXMgd2VyZSBub3QgaW1wbGVtZW50ZWQgKHlldCkuCkZvciB0aGlzIHB1cnBvc2Ugd2Ugd2lsbCB1c2UgdGhlIFsuTkVUIDVdKGh0dHBzOi8vZG90bmV0Lm1pY3Jvc29mdC5jb20vZG93bmxvYWQvZG90bmV0LzUuMCksICBbRmlyZWx5IC5ORVQgU0RLXShodHRwczovL2ZpcmUubHkvcHJvZHVjdHMvZmlyZWx5LW5ldC1zZGsvKSBhbmQgcHVibGljIEZISVIgc2VydmVyIFtVSE5fSEFQSSBTZXJ2ZXJdKGh0dHA6Ly9oYXBpLmZoaXIub3JnKSAoUjQpIHdoaWNoIGlzIHJlZ3VsYXJseSBwdXJnZWQgYW5kIHJlbG9hZGVkIHdpdGggZml4ZWQgdGVzdCBkYXRhLgoKICAgIAojIFdoYXQgaXMgRkhJUj8KIVtdKHJlcy9oYXBpLWZoaXIucG5nKQoKCioqRkhJUioqICgqKkYqKmFzdCAqKkgqKmVhbHRoY2FyZSAqKkkqKm50ZXJvcGVyYWJpbGl0eSAqKlIqKmVzb3VyY2VzKSBpcyBhIG5ldyBhbmQgZW1lcmdpbmcgc3RhbmRhcmQgYmVpbmcgZGV2ZWxvcGVkIHVuZGVyIHRoZSBhdXNwaWNlcyBvZiB0aGUgSGVhbHRoIExldmVsIFNldmVuIChITDcpIG9yZ2FuaXphdGlvbi4gUHJvbm91bmNlZCBhcyAnRmlyZSwnIGl0IHdhcyBpbml0aWFsbHkgZGV2ZWxvcGVkIGJ5IEdyYWhhbSBHcmlldmUsIHdobyBpbnNpc3RlZCBGSElSIGJlICoqb3BlbiBzb3VyY2VkKiouIEF0IGl0cyBjb3JlLCBGSElSIGlzIGludGVuZGVkIHRvIGJlIHRoZSBuZXh0IGdlbmVyYXRpb24gb2YgaGVhbHRoY2FyZSBpbnRlcm9wZXJhYmlsaXR5LiBJdCB0cmllcyB0byBjb21iaW5lIHRoZSBiZXN0IGZlYXR1cmVzIG9mIEhMNyBWZXJzaW9uIDIgYW5kIFZlcnNpb24gMywgaW4gd2hpY2ggR3JpZXZlIHdhcyBzaWduaWZpY2FudGx5IGludm9sdmVkLgoKIyMgV2h5IEZISVI/ClRoZSBjdXJyZW50IHByZWRvbWluYW50IG1ldGhvZCBmb3IgZXhjaGFuZ2luZyBjbGluaWNhbCBkYXRhIGJldHdlZW4gaGVhbHRoY2FyZSBhcHBsaWNhdGlvbnMgaXMga25vd24gYXMgSEw3djIgYW5kIGl0IHByZXNlbnRzIHNlcmlvdXMgY2hhbGxlbmdlcy4gT3JnYW5pemF0aW9ucyB0b2RheSBzcGVuZCBodWdlIGFtb3VudCBvZiBtb25leSBwZXIgSEw3djIgaW50ZXJmYWNlLCBub3QgdG8gbWVudGlvbiBsaWNlbnNpbmcgZmVlcyB0byBpbXBsZW1lbnQgYW5kIHVzZSBpbnRlZ3JhdGlvbiBlbmdpbmVzLiBXaHkgdGhlbiB3ZSBuZWVkIGFuIGludGVncmF0aW9uIGVuZ2luZT8gVGhhdCdzIHdoeToKCioqSEw3djIgaXMgYSBzdGFuZGFyZCBidXQgaXQgaXMgTk9UIGFuIG9wZW4gc3RhbmRhcmQqKi4gWW91IG5lZWQgdG8gYmUgYSBtZW1iZXIgb2YgdGhlIEhMNyBvcmdhbml6YXRpb24gYW5kIHBheSBmZWVzIGJlZm9yZSB1c2luZyB0aGUgY29udGVudCBpbiBhbnkgY29tbWVyY2lhbCBmYXNoaW9uLCBhbmQgSEw3djIgaXMgYW4gYW5jaWVudCBzdGFuZGFyZC4gSXQgd2FzIGRldmVsb3BlZCBpbiB0aGUgbGF0ZSA4MHMgd2hlbiBhIGxvdCBvZiB0aGluZ3Mgd2UgdGFrZSBmb3IgZ3JhbnRlZCBub3cgZGlkbid0IGV4aXN0IC0gbW9iaWxlIG51bWJlcnMsIGVtYWlscywgQVBJcywgQ2xvdWQsIGV0Yy4KCldoYXQgcmVzdWx0ZWQgd2FzIGEgbG90IG9mICJJJ2xsIGp1c3QgZG8gaXQgbXkgd2F5LCIgY2F1c2luZyBhbiBleHBsb3Npb24gb2YgSEw3djIgdmFyaWFudHMuIFdpdGggb3RoZXIgd29yZHM6ICJXZWxjb21lIHRvIHRoZSBqdW5nbGUhIgoKR2l2ZW4gdGhlIGFib3ZlLCAqKkZISVIqKiBkb2VzIG9mZmVyIG1hbnkgaW1wcm92ZW1lbnRzIG92ZXIgZXhpc3Rpbmcgc3RhbmRhcmRzOgoKLSBJdCdzIG9wZW4gc291cmNlOiBUaGlzIGlzIGEgYmlnIGRlYWwgYW5kIHRoZSBmaXJzdCBlZmZvcnQgaW4gbWFraW5nIGhlYWx0aGNhcmUgaW50ZWdyYXRpb24gbW9yZSB0cmFuc3BhcmVudCBhbmQgYWNjZXNzaWJsZS4gUHV0dGluZyBpdCBvdXQgaW4gdGhlIG9wZW4gaGFzIGNyZWF0ZWQgYSBzaWduaWZpY2FudCBjb21tdW5pdHkgaW5jbHVkaW5nIGRldmVsb3BlcnMsIHZlbmRvcnMgYW5kIGVudGVycHJpc2VzLgotIFJFU1RmdWw6IFJFU1QtYmFzZWQgZGVzaWduIGJyaW5ncyBhIHNpZ25pZmljYW50IGFtb3VudCBvZiBiZW5lZml0LCBuYW1lbHkgdGhhdCBhbiBBUEkgdGhhdCBhZGhlcmVzIHRvIHRoZSBwcmluY2lwbGVzIG9mIFJFU1QgZG9lcyBub3QgcmVxdWlyZSB0aGUgY2xpZW50IHRvIGtub3cgYW55dGhpbmcgYWJvdXQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgQVBJLiBSYXRoZXIsIHRoZSBzZXJ2ZXIgbmVlZHMgdG8gcHJvdmlkZSB3aGF0ZXZlciBpbmZvcm1hdGlvbiB0aGUgY2xpZW50IG5lZWRzIHRvIGludGVyYWN0IHdpdGggdGhlIHNlcnZpY2UuCi0gRXh0ZW5zaWJsZTogRXh0ZW5zaWJpbGl0eSB1bmRlciB0aGUgUkVTVGZ1bCBjb250ZXh0IGVuc3VyZXMgdGhhdCBhZGRpdGlvbnMgY2FuIGJlIGVhc2lseSB0YWNrZWQgb24gdG8gY292ZXIgc3BlY2lmaWMgdXNlIGNhc2VzIHdpdGhvdXQgaW1wYWN0aW5nIHRoZSBjb3JlIG1vZGVscy4KLSBDb21wb3NhYmxlOiBDb21wb3NhYmlsaXR5IGVuc3VyZXMgdGhhdCBhbG1vc3QgYW55IHJlcXVlc3QgY2FuIGJlIGNvYmJsZWQgdG9nZXRoZXIgdXNpbmcgY29yZSBtb2RlbHMgb3IgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIGV4dGVuc2lvbnMuCi0gR29vZCBkb2N1bWVudGF0aW9uOiBVbmlxdWVseSBkcml2ZW4gYnkgdGhlIFJFU1RmdWwgQVBJIGFwcHJvYWNoLCB3aGljaCBlbmZvcmNlcyBnb29kIGRvY3VtZW50YXRpb24gYXMgYSBieXByb2R1Y3QuCi0gU3VwcG9ydCBmb3IgbW9kZXJuIHdlYiBzdGFuZGFyZHM6IFhNTCwgSlNPTiwgSFRUUCwgQXRvbSwgT0F1dGgsIFJFU1QgLSB0aGVzZSBhcmUgdGhlIHVuZGVybHlpbmcgdGVjaG5vbG9naWVzIHRoYXQgRkhJUiBsZXZlcmFnZXMuIFRoZXNlIGFyZSBiYXR0bGUgdGVzdGVkIGFuZCBoYXZlIGJlZW4gcHJvdmVuIGF0IHNjYWxlIGFuZCB1bmRlciBzaWduaWZpY2FudCBzZWN1cml0eSByZXF1aXJlbWVudHMuCi0gSHVtYW4gcmVhZGFiaWxpdHk6IEhMNyAzLjAgaGFkIGEgY29uY2VwdCBvZiBhIGh1bWFuIHJlYWRhYmxlIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IG9yIGRhdGEgYmVpbmcgc2hhcmVkIHRvIGVuc3VyZSB0aGF0IGRldmVsb3BlcnMgb3IgY2xpbmljaWFucyBjb3VsZCBzdGlsbCByZWFkIHRoZSBzb3VyY2UgZGF0YSB0byBlbGltaW5hdGUgYW55IHBvdGVudGlhbCBvZiBtaXNjb25maWd1cmF0aW9uIG9yIGNvZGluZyBlcnJvcnMuIEZISVIgYm9ycm93cyB0aGlzIGNvbmNlcHQgYXMgd2VsbC4gRXZlcnkgcmVzb3VyY2UgY2FycmllcyBhIGh1bWFuLXJlYWRhYmxlIHRleHQgcmVwcmVzZW50YXRpb24gdXNpbmcgaHRtbCBhcyBhIGZhbGxiYWNrIGRpc3BsYXkgb3B0aW9uLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgZm9yIGNvbXBsZXggY2xpbmljYWwgaW5mb3JtYXRpb24gd2hlcmUgbWFueSBzeXN0ZW1zIHRha2UgYSBzaW1wbGUgdGV4dHVhbCBvciBkb2N1bWVudC1iYXNlZCBhcHByb2FjaC4KCiMjIFN1bW1hcmlzaW5nIEZISVIKRkhJUiBpcyBzdGlsbCBhIHdvcmsgaW4gcHJvZ3Jlc3MsIGJ1dCBpdCBpcyBtYXR1cmluZyBxdWlja2x5LiBJdCBpcyBub3QgYW4gZXZlbnQtYmFzZWQgKHRyaWdnZXJlZCkgcHJvdG9jb2wuIEluIGNvbnRyYXN0LCBITDd2MiBwdXNoZXMgZGF0YSBiYXNlZCBvbiBzb21lIGV2ZW50IG9yIGFjdGl2aXR5IGluIHRoZSBzb3VyY2Ugc3lzdGVtLiBJZiBzb21lb25lIHdhcyBhZG1pdHRlZCB0byB0aGUgaG9zcGl0YWwsIHRoZSBzb3VyY2Ugc3lzdGVtIGNvdWxkIGJlIGNvbmZpZ3VyZWQgdG8gcHVzaCBhbiBBRFQgbWVzc2FnZSBiYXNlZCBvbiB0aGUgYWRtaXNzaW9uLiBGSElSIGlzIGN1cnJlbnRseSBzdGlsbCBhIHJlcXVlc3QgYmFzZWQgcHJvdG9jb2wuCgpGSElSIGhhcyBjZW1lbnRlZCBpdHMgcGxhY2UgYXMgdGhlIG5leHQgaW50ZXJvcGVyYWJpbGl0eSBzdGFuZGFyZCBmb3IgY2xpbmljYWwgZGF0YSBleGNoYW5nZS4gQW55IHN0YW5kYXJkIGhhcyBnYXBzLCBidXQgdGhleSBhcmUgbmVpdGhlciB1bmV4cGVjdGVkIG5vciBpbnN1cm1vdW50YWJsZS4gVGhlIFN0YW5kYXJkLCB0aGUgb2ZmaWNpYWwgYmxvZyBvZiB0aGUgSEw3IG9yZ2FuaXphdGlvbiwgaGFzIGZyZXF1ZW50IHVwZGF0ZXMgYW5kIG5ld3MgYXMgdGhlIEZISVIgc3RhbmRhcmQgZXZvbHZlcy4gIAoKRkhJUiBSNCwgcmVsZWFzZWQgaW4gMjAxOSwgaW5jbHVkZXMgYSBub3JtYXRpdmUgYmFzZSB3aXRoIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3aGljaCBhaW1zIHRvIGdpdmUgZGV2ZWxvcGVycyBhbmQgb3JnYW5pemF0aW9ucyBjb25maWRlbmNlIHRoYXQgRkhJUiBpbXBsZW1lbnRhdGlvbnMgdGhleSB1bmRlcnRha2Ugd2lsbCBiZSBzdXBwb3J0ZWQgZm9yIHRoZSBmb3Jlc2VlYWJsZSBmdXR1cmUgYW5kIGFsbG93IGRldmVsb3BlcnMgdG8gaW1wbGVtZW50IEZISVIgbW9yZSBjb25zaXN0ZW50bHkgYW5kIHVuaWZvcm1seS4gV2hpbGUgRkhJUiBSZWxlYXNlIDQgaXMgdGhlIGN1cnJlbnQgcHVibGlzaGVkIHZlcnNpb24sIGRldmVsb3BtZW50IG9uIFJlbGVhc2UgNSBpcyB1bmRlcndheSB3aXRoIHRoZSBob3BlIG9mIGdldHRpbmcgZXZlbiBjbG9zZXIgdG8gaW50ZXJvcGVyYWJpbGl0eS4KCiMgVXNpbmcgdGhlIERlbW9uc3RyYXRpb24gQ29kZQoKVGhlIGRlbW9uc3RyYXRpb24gY29kZSBpcyBhIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHByb2plY3QsIHdoaWNoIHlvdSBjYW4gc2ltcGx5IG9wZW4gd2l0aCBWUyBhbmQgdXNlIGRpcmVjdGx5LgoKRW5qb3khCgojIyBQcmVyZXF1aXNpdGVzCi0gW1Zpc3VhbCBTdHVkaW9dKGh0dHBzOi8vd3d3LnZpc3VhbHN0dWRpby5jb20vdnMvY29tbXVuaXR5KSAyMDE5IDE2LjguMSBvciBncmVhdGVyIAotIFsuTkVUIDUueF0oaHR0cHM6Ly9kb3RuZXQubWljcm9zb2Z0LmNvbS9kb3dubG9hZC9kb3RuZXQvNS4wKQoKIyMgQVBJIGRvY3VtZW50YXRpb24KIVtdKHJlcy9hcGktZG9jcy5qcGcpCgojIyBTd2FnZ2VyIFVJCiFbXShyZXMvc3dhZ2dlci5qcGcpCgojIyBUYWdzLCB0ZWNobm9sb2dpZXMgYW5kIHNvdXJjZXMKLSBbU3dhZ2dlcl0oaHR0cHM6Ly9zd2FnZ2VyLmlvLykgLSBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbgotIFtBUEktRG9jc10oaHR0cHM6Ly9hcGktZG9jcy5pby8pIC0gZnJpZW5kbHkgQVBJIGRvY3VtZW50YXRpb24KLSBbU2VyaWxvZ10oaHR0cHM6Ly9zZXJpbG9nLm5ldC8pIC0gZmxleGlibGUsIHN0cnVjdHVyZWQgbG9nZ2VyCi0gW0ZsdWVudFZhbGlkYXRpb25dKGh0dHBzOi8vZmx1ZW50dmFsaWRhdGlvbi5uZXQvKSAtIGEgcG9wdWxhciAuTkVUIGxpYnJhcnkgZm9yIGJ1aWxkaW5nIHN0cm9uZ2x5LXR5cGVkIHZhbGlkYXRpb24gcnVsZXMKLSBbRmlyZWx5IC5ORVQgU0RLXShodHRwczovL2ZpcmUubHkvcHJvZHVjdHMvZmlyZWx5LW5ldC1zZGsvKSAtIHRoZSBvZmZpY2lhbCBITDcgRkhJUiBTREsgaW4gLk5FVAoKIyMgRnVydGhlciBpbmZvcm1hdGlvbgotIFtFeHRyYSBkb2N1bWVudGF0aW9uIGZvciBGaGlyQ2xpZW50XShodHRwczovL2RvY3MuZmlyZS5seS9maXJlbHluZXRzZGsvY2xpZW50Lmh0bWwpICAKLSBbSEw3IEZISVIgUmVzdGZ1bCBBUEkgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cuaGw3Lm9yZy9maGlyL2h0dHAuaHRtbCkKLSBbRmlyZWx5IC5ORVQgU0RLIEZISVIgQ29tbXVuaXR5XShodHRwczovL2NoYXQuZmhpci5vcmcvI25hcnJvdy9zdHJlYW0vMTc5MTcxLWRvdG5ldCkKLSBbTGlzdCBvZiBGSElSIFRlc3Qgc2VydmVyc10oaHR0cHM6Ly9jb25mbHVlbmNlLmhsNy5vcmcvZGlzcGxheS9GSElSL1B1YmxpYytUZXN0K1NlcnZlcnMpCgojIyBDb250cmlidXRpbmcKUGxlYXNlIHJlZmVyIHRvIFtDT05UUklCVVRJTkcubWRdKENPTlRSSUJVVElORy5tZCkuCgojIyBUcmFkZW1hcmtzCkhMN8KuLCBGSElSwq4gYW5kIHRoZSBmbGFtZSBEZXNpZ24gbWFyayBhcmUgdGhlIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiBIZWFsdGggTGV2ZWwgU2V2ZW4gSW50ZXJuYXRpb25hbC4K readmeEtag: '"6bfcd4258a0feb2da1f5f09acbab6aaf9c3b5963"' readmeLastModified: Fri, 12 Jan 2024 09:57:46 GMT repositoryId: 375084335 description: >- This repo contains demonstration code to illustrate the use of the FIHR standard for healthcare data, developed by the HL7 organisation. created: '2021-06-08T16:59:18Z' updated: '2024-02-08T22:39:05Z' language: C# archived: false stars: 7 watchers: 3 forks: 5 owner: Endava logo: https://avatars.githubusercontent.com/u/19396140?v=4 license: Apache-2.0 repoEtag: '"e294d18e2d4c06d16279c06ed2426a9c18dcbc2b371a47f60be2bd65b2ba3806"' repoLastModified: Thu, 08 Feb 2024 22:39:05 GMT foundInMaster: true category: Server Implementations id: 33de045bdbfe9b67453c38a60b903a2e - source: openapi3 tags repository: https://github.com/0xsirsaif/frappe-api v3: true id: 5236d3cd66d4217b20b78ce5142a773e repositoryMetadata: base64Readme: >- IyBGcmFwcGVBUEkKCkJ1aWxkIEFQSXMgZm9yIEZyYXBwZSB3aXRoIHRoZSBzaW1wbGljaXR5IG9mIEZhc3RBUEkhCgrimqDvuI8gKipBbGVydDogQmV0YSBWZXJzaW9uKioKClRoaXMgcHJvamVjdCBpcyBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbm90IHlldCByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2UuIEV4cGVjdCBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMgYXMgd2Ugd29yayB0b3dhcmRzIGEgc3RhYmxlIHJlbGVhc2UuCgojIyBXaHk/CgpEZXNwaXRlIEZyYXBwZSA+PSAxNS4wLjAgcHVzaGluZyB0b3dhcmRzIHVzaW5nIHR5cGUgaGludHMgZm9yIEFQSSBkZXZlbG9wbWVudCBhbmQgZW5oYW5jaW5nIGBmcmFwcGUud2hpdGVsaXN0KClgLCBJJ2QgbGlrZSB0byB0YWtlIGl0IGEgc3RlcCBmdXJ0aGVyLiBUaGlzIHByb2plY3QgYWltcyB0bzoKCi0gQmV0dGVyIEFQSSBkZXNpZ24KLSBBdXRvbWF0aWMgQVBJIGRvY3VtZW50YXRpb24KLSBJbXBsZW1lbnQgcmVzcG9uc2UtbW9kZWwtYmFzZWQgc2VyaWFsaXphdGlvbgoKQW5kIGhvbmVzdGx5PyBXaHkgbm90PyBTb21ldGltZXMgeW91IGp1c3Qgd2FudCB0byBidWlsZCBzb21ldGhpbmcgY29vbCwgZXZlbiBpZiBpdCBtaWdodCBiZSBhIGJpdCB1bm5lY2Vzc2FyeS4gV2hvIGtub3dzLCBpdCBtaWdodCBqdXN0IG1ha2UgRnJhcHBlIGRldmVsb3BlcnMnIGxpdmVzIGEgbGl0dGxlIGVhc2llciAob3IgYXQgbGVhc3QgbW9yZSBGYXN0QVBJLWlzaCkuIEknbSBkb2luZyBpdCBmb3IgdGhlIGxvdmUgb2YgY29kaW5nLCBhbmQgb2YgY291cnNlLCBmb3IgbGVhcm5pbmcuIElmIGl0IGhlbHBzIHNvbWVvbmUgYWxvbmcgdGhlIHdheSwgdGhhdCdzIGEgYm9udXMhCgojIyBSb2FkbWFwCgojIyMgRnJhcHBlCgotIFsgXSBGcmFwcGUgVjE0IHN1cHBvcnQKLSBbIF0gRnJhcHBlIFYxNSBzdXBwb3J0CgojIyMgTWV0aG9kcwoKLSBbeF0gSW1wbGVtZW50IGBhcHAuZ2V0KC4uLilgIG1ldGhvZAotIFsgXSBJbXBsZW1lbnQgYGFwcC5wb3N0KC4uLilgIG1ldGhvZAotIFsgXSBJbXBsZW1lbnQgYGFwcC5wdXQoLi4uKWAgbWV0aG9kCi0gWyBdIEltcGxlbWVudCBgYXBwLnBhdGNoKC4uLilgIG1ldGhvZAotIFsgXSBJbXBsZW1lbnQgYGFwcC5kZWxldGUoLi4uKWAgbWV0aG9kCgojIyMgUXVlcnkgUGFyYW1ldGVyIEZlYXR1cmVzCgotIFsgXSBBdXRvbWF0aWMgcXVlcnkgcGFyYW1ldGVyIHBhcnNpbmcvY29udmVyc2lvbiBiYXNlZCBvbiB0eXBlIGhpbnRzCi0gWyBdIFJlcXVpcmVkIHF1ZXJ5IHBhcmFtZXRlcnMgYG5lZWR5OiBzdHJgCi0gWyBdIE9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnMgd2l0aCBkZWZhdWx0IHZhbHVlcyBgc2tpcDogaW50ID0gMGAKLSBbIF0gT3B0aW9uYWwgcXVlcnkgcGFyYW1ldGVycyB3aXRob3V0IGRlZmF1bHQgdmFsdWVzIGBsaW1pdDogVW5pb25baW50LCBOb25lXSA9IE5vbmVgCi0gWyBdIEF1dG9tYXRpYyBEb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gZm9yIHF1ZXJ5IHBhcmFtZXRlcnMKLSBbIF0gRW51bSBzdXBwb3J0IGZvciBxdWVyeSBwYXJhbWV0ZXJzIFtwYXRoIHBhcmFtZXRlcnMgLSBwcmVkZWZpbmVkIHZhbHVlc10oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS90dXRvcmlhbC9wYXRoLXBhcmFtcy8jcHJlZGVmaW5lZC12YWx1ZXMpCi0gWyBdIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYW5kIHZhbGlkYXRpb24gZm9yIHF1ZXJ5IHBhcmFtZXRlcnMKCiAgLSBbIF0gU3RyaW5nIHZhbGlkYXRpb25zCiAgICAtIFsgXSBgbWluX2xlbmd0aGAKICAgIC0gWyBdIGBtYXhfbGVuZ3RoYAogICAgLSBbIF0gYHJlZ2V4IHBhdHRlcm5gCiAgLSBbIF0gTnVtZXJpYyB2YWxpZGF0aW9ucwogICAgLSBbIF0gYGd0YAogICAgLSBbIF0gYGdlYAogICAgLSBbIF0gYGx0YAogICAgLSBbIF0gYGxlYAogIC0gWyBdIE1ldGFkYXRhCiAgICAtIFsgXSBgdGl0bGVgCiAgICAtIFsgXSBgZGVzY3JpcHRpb25gCiAgICAtIFsgXSBgZGVwcmVjYXRlZGAKCi0gWyBdIHRvIGJlIGNvbnRpbnVlZC4uLgoKIyMgUmVsYXRlZCBGcmFwcGUgUFJzIGFuZCBJc3N1ZXMKCi0gW1BSICMyMzEzNV0oaHR0cHM6Ly9naXRodWIuY29tL2ZyYXBwZS9mcmFwcGUvcHVsbC8yMzEzNSk6IEludHJvZHVjaW5nIHR5cGUgaGludHMgZm9yIEFQSSBmdW5jdGlvbnMKLSBbUFIgIzIyMzAwXShodHRwczovL2dpdGh1Yi5jb20vZnJhcHBlL2ZyYXBwZS9wdWxsLzIyMzAwKTogRW5oYW5jaW5nIGBmcmFwcGUud2hpdGVsaXN0KClgIGZ1bmN0aW9uYWxpdHkKLSBbUFIgIzE5MDI5XShodHRwczovL2dpdGh1Yi5jb20vZnJhcHBlL2ZyYXBwZS9wdWxsLzE5MDI5KTogRWZmb3J0cyB0byBpbXByb3ZlIHR5cGUgc2FmZXR5IGluIEZyYXBwZQotIFtJc3N1ZSAjMTQ5MDVdKGh0dHBzOi8vZ2l0aHViLmNvbS9mcmFwcGUvZnJhcHBlL2lzc3Vlcy8xNDkwNSk6IERpc2N1c3Npb24gb24gaW1wcm92aW5nIEFQSSBkb2N1bWVudGF0aW9uCg== readmeEtag: '"1355cf1ea98cedd72f23132ffe54d7123f40dec0"' readmeLastModified: Fri, 30 Aug 2024 16:36:27 GMT repositoryId: 825093329 description: FastAPI for Frappe created: '2024-07-06T18:48:18Z' updated: '2024-08-31T16:24:28Z' language: Python archived: false stars: 7 watchers: 2 forks: 0 owner: 0xsirsaif logo: https://avatars.githubusercontent.com/u/55336614?v=4 repoEtag: '"087c03d6a8524d72acc6c81a6a1d966e37ef28211bb8b59760e0dbd7c938e1c0"' repoLastModified: Sat, 31 Aug 2024 16:24:28 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/laura-rodriguez/dotnetconf22 v3: true id: 3eb48a23918165d7000be240cf49d8a6 repositoryMetadata: base64Readme: >- IyBHcm9jZXJ5IEl0ZW1zIE1hbmFnZW1lbnQgU0RLCiAKIFRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBhbGwgdGhlIHByb2plY3RzIGJ1aWx0IGR1cmluZyBteSB0YWxrICJCdWlsZCBhbiBTREsgd2l0aCBPcGVuQVBJIGFuZCBOU3dhZyIgYXQgLk5FVENvbmYgMjAyMiAKCiAqIEdyb2NlcnkgQVBJOiBUaGlzIHByb2plY3QgY29udGFpbnMgdGhlIEFQSSBpbXBsZW1lbnRhdGlvbiBwbHVzIHRoZSBEQUwgbG9naWMgKFdlYiBBUEkvLk5FVCA3KQogKiBHcm9jZXJ5IFNESzogVGhpcyBwcm9qZWN0IGNvbnRhaW5zIHRoZSBjbGllbnQgaW1wbGVtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IE5Td2FnIChDbGFzcyBMaWJyYXJ5Ly5ORVQgU3RhbmRhcmQgMi4wKQogKiBTYW1wbGUgQXBwOiBUaGlzIHByb2plY3QgdXRpbGl6ZXMgdGhlIFNESyAoQ29uc29sZSBBcHAvLk5FVCBDb3JlIDMuMSkKCiAjIyBHZXR0aW5nIFN0YXJ0ZWQKCjEuIE1ha2Ugc3VyZSB5b3UgaGF2ZSBhbGwgdGhlIC5ORVQgcnVudGltZXMgdXNlZCBieSB0aGlzIHNvbHV0aW9uIGluc3RhbGxlZAoyLiBDb25maWd1cmUgdGhlIEdyb2NlcnkgQVBJIHByb2plY3QgdG8gdXNlIFVzZXIgSldUcyBieSBydW5uaW5nIGBkb3RuZXQgdXNlci1qd3RzIGNyZWF0ZWAgCjMuIFVwZGF0ZSB0aGUgUHJvZ3JhbSBmaWxlIHdpdGggeW91ciB0b2tlbiBpbiB0aGUgQ29uc29sZSBBcHAKNC4gQ29uZmlndXJlIHlvdXIgc29sdXRpb24gdG8gcnVuIHRoZSBBUEkgYW5kIHRoZSBDb25zb2xlIEFwcCBzaW11bHRhbmVvdXNseSAKCiMjIFJlc291cmNlcwoKSGVyZSdzIGEgbGlzdCB3aXRoIGFsbCB0aGUgcmVzb3VyY2VzIHRvIGxlYXJuIG1vcmUgYWJvdXQgYWxsIHRoZSB0b3BpY3MhCgoqIFtNaW5pbWFsIEFQSXNdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9hc3BuZXQvY29yZS90dXRvcmlhbHMvbWluLXdlYi1hcGk/dmlldz1hc3BuZXRjb3JlLTcuMCZ0YWJzPXZpc3VhbC1zdHVkaW8pCiogW1VzZXIgSldUc10oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2FzcG5ldC9jb3JlL3NlY3VyaXR5L2F1dGhlbnRpY2F0aW9uL2p3dC1hdXRobj9wcmVzZXJ2ZS12aWV3PXRydWUmdmlldz1hc3BuZXRjb3JlLTcuMCZ0YWJzPXdpbmRvd3MpCiogW09wZW5BUEldKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9hc3BuZXQvY29yZS9mdW5kYW1lbnRhbHMvbWluaW1hbC1hcGlzL29wZW5hcGk/dmlldz1hc3BuZXRjb3JlLTcuMCkKKiBbTlN3YWddKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9hc3BuZXQvY29yZS90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLXdpdGgtbnN3YWc/dmlldz1hc3BuZXRjb3JlLTcuMCZ0YWJzPXZpc3VhbC1zdHVkaW8pCiogWy5ORVQgU3RhbmRhcmRdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9kb3RuZXQvc3RhbmRhcmQvbmV0LXN0YW5kYXJkP3RhYnM9bmV0LXN0YW5kYXJkLTItMCkKCg== readmeEtag: '"53da0b6829eff853567645f10be503bb9989a391"' readmeLastModified: Wed, 09 Nov 2022 19:04:42 GMT repositoryId: 555555610 description: Minimal API + OpenAPI Sample created: '2022-10-21T20:24:18Z' updated: '2024-08-21T07:52:52Z' language: C# archived: false stars: 7 watchers: 1 forks: 1 owner: laura-rodriguez logo: https://avatars.githubusercontent.com/u/16751130?v=4 license: GPL-3.0 repoEtag: '"095b8433aa50360acce7255cde53487a710f25793e8f629cfbc2dbe95e5c6a5f"' repoLastModified: Wed, 21 Aug 2024 07:52:52 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/hirako2000/hirako-starter-kit v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iIyI+PGltZyBzcmM9Imh0dHBzOi8vaS5pYmIuY28vcVk3QmRrRC9iYW5uZXIucG5nIiAvPjwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgQSBzbGlnaHRseSA8ZW0+b3BpbmlvbmF0ZWQ8L2VtPiBzdGFydGVyIGtpdCA8YnIvPgogIGZvciBidWlsZGluZyBOb2RlLmpzIHNlcnZlci4KPC9wPgo8YnIvPgo8YnIvPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iI2xhdW5jaCI+TGF1bmNoPC9hPiDigKIKICA8YSBocmVmPSIjdGVjaCI+VGVjaDwvYT4g4oCiCiAgPGEgaHJlZj0iI3JvYWRtYXAiPlJvYWRtYXA8L2E+IOKAogo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL3RyYXZpcy1jaS5vcmcvaGlyYWtvMjAwMC9oaXJha28tc3RhcnRlci1raXQiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vdHJhdmlzLWNpLm9yZy9oaXJha28yMDAwL2hpcmFrby1zdGFydGVyLWtpdC5zdmc/YnJhbmNoPW1hc3RlciI+CiAgPC9hPgogIDxhIGhyZWY9Ii4vTGljZW5zZS5tZCI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9zbGF0ZS5zdmc/bWF4QWdlPTMwMCI+CiAgPC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvZGFjeS5jb20vbWFudWFsL2hpcmFrbzIwMDAvaGlyYWtvLXN0YXJ0ZXIta2l0Ij4KICAgIDxpbWcgc3JjPSJodHRwczovL2FwaS5jb2RhY3kuY29tL3Byb2plY3QvYmFkZ2UvR3JhZGUvMWNjYTU5N2NjNjRmNGQ5ZDk3YjJhMTY4MmVjNjVmN2EiPgogIDwvYT4KPC9wPgoKPGJyLz4KPGJyLz4KCkEgc3RhcnQga2l0IGZvciBidWlsZGluZyB3ZWIgYXBwcyB1c2luZyBleHByZXNzLCBtYXJrbywgbW9uZ29vc2UgYW5kIHBhc3Nwb3J0LgoKIyMgTGF1bmNoCgpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2hpcmFrbzIwMDAvaGlyYWtvLXN0YXJ0ZXIta2l0LmdpdApjZCBoaXJha28tc3RhcnRlci1raXQKbnBtIGluc3RhbGwgIyB0aGlzIHdpbGwgdGFrZSBhIHdoaWxlIGRlcGVuZGluZyBvbiB5b3VyIGludGVybmV0IGJhbmR3aXRoCmNwIC5lbnYuZXhhbXBsZSAuZW52Cm5wbSBzdGFydCAjIFlvdXIgZGVmYXVsdCBicm93c2VyIHdpbGwgb3BlbiBhbmQgbG9hZCB0aGUgcm9vdCBwYWdlCm5wbSBydW4gc3RhcnQ6ZGV2ICMgU2FtZSwgYnV0IGZvciBkZXYsIGF1dG8gcmVmcmVzaCBvbiBzYXZpbmcgY29kZSBjaGFuZ2UKYGBgCgojIyBEZXNpZ24gUGhpbG9zb3BoeQoKLSBNYXhpbWl6ZSBwcm9kdWN0aXZpdHkgYW5kIGVhc2UgaW4gZGV2ZWxvcG1lbnQKLSBHdWFyYW50ZWUgZWFzZSBvZiBkZXBsb3ltZW50IGFuZCBwZXJmb3JtYW5jZSBpbiBwcm9kdWN0aW9uCi0gTXVzdCBiZSBlYXN5IHRvIGFkb3B0IGFuZCBub3QgZm9yY2UgeW91IHRvIGNoYW5nZSB0aGUgd2F5IHlvdSB3cml0ZSB5b3VyIGNvZGUKCiMjIEFub3RoZXIgRXhwcmVzcyBib2lsZXJwbGF0ZQoKTWF5YmUuIEkgY2hlY2tlZCBvdXQgYSBudW1iZXIgb2Ygc3VwcG9zZWRseSByb2NrIHNvbGlkIGV4cHJlc3MgYm9pbGVycGxhdGUsIG1hbnkgb2YgdGhlbSBkb24ndCBldmVuIGJ1aWxkIG9yIHN0YXJ0LCBpc3N1ZXMgcmFpc2VkIHdpdGggbm8gYWN0aXZpdHkuIEl0IGhhcHBlbnMgd2l0aCBvcGVuIHNvdXJjZS4uIEkgY2FuIG9mdGVuIGZpeCB0aGUgaXNzdWVzLCBidXQsIG9uZSBvciBtb3JlIG9mIHRob3NlIGRpc3NhcG9pbnRpbmcgc3VycHJpc2UgZm9sbG93OgoKLSBMYWNrIG9mIGRlY2VudCBzZXJ2ZXIgcmVuZGVyaW5nIHNldCB1cCwganVzdCBBUEkuIEkgd2FudCBhbiBBUEkgYW5kIHRoZSBhYmxpdHkgdG8gcmVuZGVyIHN0cnVjdHVlZCBwYWdlcyBhbHJlYWR5LCBBUEkgYm9pbGVycGxhdGUgYXJlIGZpbmUsIGJ1dCBJIGRvbid0IHdhbnQgdHdvIHByb2plY3RzLCBlc3BlY2lhbGx5IHdoZW4gcHJvdG90eWluZwotIEJsb2F0ZWQgd2l0aCBoZWF2eSBmcm9udCBlbmQgbGlicmFyaWVzLCBJIG5lZWQgcGVyZm9ybWFuY2UKLSBCb2F0ZWQgd2l0aCBwb29ybHkgY29uZmlndXJlZCB3ZWJwYWNrIGJ1bmRsZXIsIEkgbmVlZCBwZXJmb3JtYW5jZQotIE5vIHByb3BlciBwcm9kdWN0aW9uIHN0cnVjdHVyZSBhbmQgY29uZmlnLCBnb29kIGZvciBkZXZlbG9wZW1lbnQsIGJ1dCBJIG5lZWQgYSBwcm9kdWN0aW9uIHJlYWR5IGZvdW5kYXRpb24sIG9yIGF0IGxlYXN0IHJlYXNvbmFibHkgY29uZmlndXJhYmxlIGFuZCBub3QgaGF2aW5nIHRvIHJlLXdyaXRlIG15IG93biBwcm9kdWN0aW9uIGJ1aWxkIHBpcGVsaW5lCi0gTGFjayBvZiB1bml0IHRlc3RzLCBsYWNrIG9mIG1lYW5zIHRvIHVuaXQgdGVzdCBhbnl0aGluZyBpbiB0aGVyZSBvciBteSBvd24gY29kZQotIEhhcmQgdG8gcmVtb3ZlIGRlcGVuZGVuY2llcyBzdWNoIGFzIG91dGRhdGVkIG9yIGV2ZW4gdW5tYWludGFpbmVkIGxpYnJhcmllcwoKU28geWVhLCBJIGJ1aWx0IG15IG93bi4gT3BlbiBzb3VyY2luZyBpdCBmb3IgdGhlIHBvb3IgYmVhcnMgaW4gbmVlZCBvZiBhIHNvbHV0aW9uLgoKIyMgT3BpbmlvbnMKClRoZSBib2lsZXJwbGF0ZSBpcyBub3Qgd2hhdCBvbmUgd291bGQgY2FsbCBvcGluaW9uYXRlZC4gU29tZSBkZWNpc2lvbnMgaGFkIHRvIGJlIG1hZGUgdGhvdWdoLiBBIHRvdGFsbHkgb3Bpbmlvbmxlc3Mgc3RhcnRlciBraXQgbGVhZHMgdG8gc29tZSBnYXBzIHRvIGZpbGwuCgpXaGVuIGluY29ycG9yYXRpbmcgYSBkZXNpZ24gcGF0dGVybiwgbGlicmFyeSBvciBmcmFtZXdvcmssIHRoZSBxdWVzdGlvbiBpcyBob3cgZGlmZmljdWx0IHdvdWxkIGl0IGJlIHRvIGRyb3AgaXQgb3IgcmVwbGFjZSB3aXRoIGJldHRlciBzdWl0ZWQgYWx0ZXJuYXRpdmUuIElmIHRoZSBhbnN3ZXIgaXMgYHdheSB0b28gZGlmZmljdWx0YCwgdGhlbiBpdCdzIGxlZnQgb2ZmLiBDaG9pY2VzIG1hZGUgc28gZmFyIGNhbiBiZSBmb3JtdWxhdGVkIGFzIGJlbG93OgoKLSBTZXJ2ZXIgc2lkZSByZW5kZXJpbmcgaXMganVzdCBwbGFpbiBtb3JlIHBlcmZvcm1hbnQgdGhhbiBTUEEuIENhbid0IGJlYXQgdGV4dCBmb3IgdGVtcGxhdGluZywgY2FuJ3QgYmVhdCBhIHNlcnZlciBwcm9jZXNzaW5nIHBvd2VyIChpZiB3ZWxsIHByb3Zpc2lvbmVkKSwgYW5kIGl0J3MgU0VPIHJlYWR5IHdpdGggbm8gaGVhZGFjaGUuCi0gUkVTVGZ1bCBBUEkuIEl0IGlzIG5lZWRlZCwgcmVhbGx5LiBFeHByZXNzIG1heSBub3QgYmUgdGhlICdiZXN0JyBmcmFtZXdvcmsgZm9yIEFQSSBkZXZlbG9wbWVudCwgYnV0IGl0IGlzIGEgdmVyeSB3ZWxsIHJvdW5kZWQsIGJhY2tlZCBieSB0aGUgbGFyZ2VzdCBjb21tdW5pdHkgYW5kIG51bWJlciBvZiBzb2xpZCBsaWJyYXJpZXMuIEFuZCwgbW9zdCBub2RlLmpzIGRldmVsb3BlcnMgYXJlIGZhbWlsaWFyIHdpdGggaXQuCi0gTGVzc0NTUy4gU2FzcyBpcyBzdXBlcmlvciwgSSBrbm93IHNhc3N5LiBCdXQgaXQgcmVxdWlyZXMgY29tcGxpZWQgYmluYXJpZXMgdG8gZXhlY3V0ZS4gSXQncyBPSyBmb3IgZGV2ICh0byBzb21lIGRlZ3JlZSkgYnV0IGl0IGlzIE5PVCBvayBmb3IgZGV2b3BzLiBBbnkgT1MgZGlzdHJpYnV0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGJ1aWxkIHRoZSBwcm9qZWN0LiBTb21lIG5hdGl2ZSBmcm9tIHNvdXJjZSBjb21waWxhdGlvbiBvbiBzb21lIGRpc3RyaWJzIGlzIGEgbmlnaHRtYXJlLiBCZWVuIHRoZXJlLiB0aGUgTGVzc0NTUyBwcm9jZXNzb3IgaXMgd3JpdHRlbiBpbiBKYXZhU2NyaXB0LiB0aGF0J3MgY3Jvc3MgcGxhdGZvcm0gYXMgaXQgb25seSBuZWVkcyBub2RlLmpzLiBJZiB5b3Ugd2FudCBTYXNzLCBwdWxsIGl0IHlvdXJzZWYuCi0gTWFya29KUy4gV2hpbGUgdGhlIGNvbW11bml0eSBiYWNraW5nIHRoaXMgZnJhbWV3b3JrIGlzbid0IG1hc3NpdmUsIGl0IGlzIHByb2R1Y3Rpb24gcmVhZHkuIE90aGVyIHRlbXBsYXRpbmcgc29sdXRpb25zIG9uIG5vZGUuanMgZG9uJ3Qgc3VwcG9ydCBzdHJlYW1pbmcsIGFuZCB1c3VhbGx5IGFkcHB0IHNwZWNpZmljIHN5bnRheCB0byBnZXQgZmFtaWxpYXIgd2l0aC4gTWFya28ncyBzeW5zdGF4IGZvbGxvdyBKUywgYW5kIGV2ZW4gc3VwcG9ydCBpbmxpbmUgSmF2YVNjcmlwdC4KLSBPcGVuQVBJIGlzIHRoZSBtb3N0IGV2b2x2ZWQgc3RhbmRhcmQuIEFuZCwgbGV0J3MgZ2V0IHNlcmlvdXMgYWJvdXQgZG9jLCBBUElzIG5lZWQgZG9jdW1lbnRhdGlvbiwgaWRlYWxseSBnZW5lcmF0ZWQgZnJvbSBzb3VyY2UuIFN3YWdnZXJVSSBhbmQgUmVkb2MgYXJlIGJlYXV0aWZ1bCBkb2MgdGVtcGxhdGVzCi0gTGludGluZy4gR2V0IGEgbGlmZS4gSnVzdCBmb2xsb3cgc29tZSBzdGFuZGFyZCBhbmQgZG9uJ3Qgd2FzdGUgdGltZSBhcmd1aW5nLiBJZiB5b3UgZG9uJ3QgbGlrZSB0aGUgc3RhbmRhcmQgZm9sbG93ZWQgaW4gdGhpcyBwcm9qZWN0LCBqc3V0IGNoYW5nZSB0aGUgbGluaXRpbmcgYW5kIHJ1biAtLWZpeC4KLSBUZXN0aW5nLiBJIGhhdmUgdG8gYWRtaXQgSSBkb24ndCBrbm93IGVub3VnaCBhYm91dCBmcm9udCBlbmQgdGVzdGluZyB0byBkZWZlbmQgd2hhdCBJIGRpZCBoZXJlLiBNeSB2aWV3IGlzLCB0ZXN0aW5nIGlzIHZpdGFsLCBidXQgY2FuIGJlIHZlcnkgZXhwZW5zaXZlIHdoZW4gYm9vdHN0cmFpbmcgYW5kIGFzc2VydGluZyB0aGUgc3VyZmFjZS9VSSBvZiBhcHBsaWNhdGlvbnMuIEZyaWdpbGUgc2xvdyB0ZXN0cyBkb2Vzbid0IGNvbnRyaWJ1dGUgdG8gdGRkZC4gU28gSSBmYXZvdXIgdW5pdCB0ZXN0IGNvdmVyaW5nIGJ1c2luZXNzIGxvZ2ljLiBJZiB5b3UgbmVlZCB0byB0ZXN0IHRoZSBkb20sIGdvIGFoZWFkLgotIHBtMi4gVGhlIGxpY2Vuc2UgaXMgYSBiaXQgb2JzY3VyZSwgYnV0IGFmYWlrIGlmIG5vIG1vZGlmaWNhdGlvbiBpcyBtYWRlIHRvIGl0cyBzb3VyY2UgdGhlbiBpdCdzIGZpbmUuIEl0IGlzIHN1cGVyaW9yIHRvIGBmb3JldmVyYCBhbmQgb3RoZXJzLiBKdXN0IHNlZSBmb3IgeW91cnNlbGYuCgojIyBQcmVyZXF1aXNpdGVzCgotIE5vZGUuanMgKHYxMCspCi0gTW9uZ29EQgoKIyMgVGVjaAoKLSBTZXJ2ZXIgZnJhbWV3b3JrIHdpdGggW0V4cHJlc3NdKGh0dHBzOi8vZXhwcmVzc2pzLmNvbS8pCi0gU2VydmVyIHNpZGUgdGVtcGxhdGluZyBhbmQgc3RyZWFtaW5nIHJlbmRlcmluZyB3aXRoIFtNYXJrb10oaHR0cHM6Ly9tYXJrb2pzLmNvbS8pCi0gUm91dGUgc3RydWN0dXJpbmcgd2l0aCBbTHVtaWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BbGV4LUxldmFjaGVyL0x1bWllKQotIExvY2FsIEF1dGhlbnRpY2F0aW9uIHdpdGggW1Bhc3Nwb3J0LmpzXShodHRwOi8vd3d3LnBhc3Nwb3J0anMub3JnLykKLSBTZWN1cml0eSB3aXRoIFtIZWxtZXRdKGh0dHBzOi8vaGVsbWV0anMuZ2l0aHViLmlvLykKLSBDU1MgZm91bmRhdGlvbiB3aXRoIFtCYXNzY3NzXShodHRwczovL2Jhc3Njc3MuY29tLykKLSBbTGVzc0NTU10oaHR0cDovL2xlc3Njc3Mub3JnLykgc3VwcG9ydAotIEZyb250IGVuZCBhc3NldCBidW5kbGluZyBhbmQgc2VydmluZyB3aXRoIFtMYXNzb10oaHR0cHM6Ly9naXRodWIuY29tL2xhc3NvLWpzL2xhc3NvKQotIEF1dG8gcmVjb21waWxlIGFuZCBicm93c2VyIGF1dG9yZWZyZXNoIHdpdGggW2Jyb3dzZXItcmVmcmVzaF0oaHR0cHM6Ly9naXRodWIuY29tL3BhdHJpY2stc3RlZWxlLWlkZW0vYnJvd3Nlci1yZWZyZXNoKQotIExpbnRpbmcgd2l0aCBbRVNMaW50XShodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludCkKLSBIVFRQIExvZ2dpbmcgd2l0aCBbTW9yZ2FuXShodHRwczovL2dpdGh1Yi5jb20vZXhwcmVzc2pzL21vcmdhbikKLSBBdXRvIGdlbmVyYXRlZCBbT3BlbiBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSBhbmQgW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykvW1N3YWdnZXIgVUldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKSBkb2N1bWVudGF0aW9uCi0gVW5pdCB0ZXN0IGNvbnRleHQgd2l0aCBbU3VwZXJUZXN0XShodHRwczovL2dpdGh1Yi5jb20vdmlzaW9ubWVkaWEvc3VwZXJ0ZXN0KSBhbmQgY2FzZXMgd2l0aCBbSmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2plc3QpCi0gQ29udGludW91cyBpbnRlZ3JhdGlvbiB3aXRoIFtUcmF2aXMgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS90cmF2aXMtY2kvdHJhdmlzLWNpKQotIFByb2R1Y3Rpb24gaW5zdGFuY2UgbWd0IHdpdGggW3BtMl0oaHR0cHM6Ly9naXRodWIuY29tL1VuaXRlY2gvcG0yKQotIERldm9wcyBkZXBsb3ltZW50IHdpdGggW0RvY2tlciBDb21wb3NlXShodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2NvbXBvc2UpCgojIyBSb2FkbWFwCgotIFt4XSBFeHByZXNzIGFuZCBzZXJ2ZXIgc2lkZSBUZW1wbGF0aW5nL1JlbmRlcmluZwotIFt4XSBNb25nb29zZQotIFt4XSBzdXBlcnRlc3QgYW5kIEplc3QKLSBbeF0gTGludGluZwotIFt4XSBMaXZlIGJyb3dzZXIgcmVmcmVzaCBvbiBqcy9jc3MgYW5kIHRlbXBsYXRlIGNoYW5nZXMKLSBbIF0gU3RhbmQgdXAgbXVsdGlwbGUgcm91dGVzCi0gW3hdIExpZ2h0d2VpZ2h0IENTUyBsaWJyYXJ5IGJ1bmRsZWQgaW4KLSBbeF0gTGVzc0NTUyBzdXBwb3J0Ci0gWyBdIFN0eWxlIHRoZW1lcwotIFt4XSBBUEkgd2l0aCBzdHJ1Y3R1cmVkIHJvdXRpbmcKLSBbeF0gQVBJIGRvYwotIFt4XSBMb2NhbCBhdXRoL2xvZ2luL3NpZ251cAotIFt4XSBBdXRvLWdlbmVyYXRlIE9QRU5BUEkgc3BlYyAod2l0aCBTd2FnZ2VyLXVpKSBhbmQgUmVkb2MKLSBbIF0gQ1NSRgotIFsgXSBpMThuCi0gWyBdIHNvY2tldC5pbwotIFt4XSBEb2NrZXIgaW1hZ2UKCiMgSE9XVE8KCiMjIEFkZCBhIGRlcGVuZGVuY3kKCkl0J3MgYWxsIG5wbSBtYW5hZ2VkLiBZb3UgY2FuIGFkZCBhIHNlcnZlciBvciBicm93c2VyIChmcm9udCBlbmQpIGRlcGVuZGVuY3kgYXMgYmVsb3cuCgojIyMgU2VydmVyCgpgYGBzaApucG0gaW5zdGFsbCAtLXNhdmUgbG9kYXNoCiMgb3IKbnBtIGluc3RhbGwgLS1zYXZlLWRldiB0eXBlc2NyaXB0CmBgYAoKYGBgamF2YXNjcmlwdApjb25zdCBsb2Rhc2ggPSByZXF1aXJlKCJsb2Rhc2giKTsKLy8gb3IKaW1wb3J0IGxvZGFzaCBmcm9tICJsb2Rhc2giOwpgYGAKCiMjIyBCcm93c2VyCgpgYGBzaApucG0gaW5zdGFsbCAtLXNhdmUgbG9kYXNoCmBgYAoKVGhlbiBlZGl0IGBicm93c2VyLmpzb25gCgpgYGBqc29uCnsKICAiZGVwZW5kZW5jaWVzIjogWwogICAgImJhc3Njc3MvY3NzL2Jhc3Njc3MuY3NzIiwKICAgICJiYXNzY3NzLWJ0bi9jc3MvYnRuLmNzcyIsCiAgICAicHVibGljL2Nzcy9zdHlsZXMubGVzcyIsCiAgICAianF1ZXJ5L2Rpc3QvanF1ZXJ5LnNsaW0ubWluLmpzIiwKICAgICJsb2Rhc2gvcGF0aC90by9sb2Rhc2guanMiCiAgXQp9CmBgYAoKIyMgRG9ja2VyCgpZb3UgY2FuIGFsc28gdXNlIGRvY2tlciBmb3IgZGV2ZWxvcG1lbnQuIE1ha2Ugc3VyZSB5b3UgcnVuIG5wbSBpbnN0YWxsIG9uIHlvdXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgZm9yIGxpbnRpbmcgYW5kIGV2ZXJ5dGhpbmcgdG8gd29yayBmaW5lLgoKYGBgc2gKbnBtIGkKY3AgLmVudi5leGFtcGxlIC5lbnYKYGBgCgpTdGFydCB0aGUgc2VydmljZXMKCmBgYHNoCmRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAoKVmlldyB0aGUgbG9ncwoKYGBgc2gKZG9ja2VyLWNvbXBvc2UgbG9ncyAtZgpgYGAKCkluIGNhc2UgeW91IGluc3RhbGwgYSBucG0gbW9kdWxlIHdoaWxlIGRldmVsb3BpbmcsIGl0IHNob3VsZCBhbHNvIGJlIGluc3RhbGxlZCB3aXRoaW4gZG9ja2VyIGNvbnRhaW5lciwgdG8gZG8gdGhpcyBmaXJzdCBpbnN0YWxsIHRoZSBtb2R1bGUgeW91IHdhbnQgd2l0aCBzaW1wbGUgYG5wbSBpIG1vZHVsZSBuYW1lYCwgdGhlbiBydW4gaXQgd2l0aGluIGRvY2tlciBjb250YWluZXIKCmBgYHNoCmRvY2tlci1jb21wb3NlIGV4ZWMgbm9kZSBucG0gaQpgYGAKCklmIHlvdSBtYWtlIGFueSBjaGFuZ2VzIHRvIGEgcHJvamVjdCBmaWxlLCBicm93c2VyLXJlZnJlc2ggc2hvdWxkIGF1dG9tYXRpY2FsbHkgcGljayB1cCBhbmQgcmVzdGFydCB3aXRoaW4gZG9ja2VyICh5b3UgY2FuIHNlZSB0aGlzIGluIHRoZSBsb2dzKQoKVG8gcnVuIHRlc3RzCgpgYGBzaApkb2NrZXItY29tcG9zZSBleGVjIC1lIE1PTkdPREJfVVJMPW1vbmdvZGI6Ly9tb25nbzoyNzAxNy9ub29ianNfdGVzdCBub2RlIG5wbSB0ZXN0CmBgYAoKTm90ZTogRGlmZmVyZW5jZSBiZXR3ZWVuIGV4ZWMgYW5kIHJ1biwgZXhlYyBleGVjdXRlcyB0aGUgY29tbWFuZCB3aXRoaW4gdGhlIHJ1bm5pbmcgY29udGFpbmVyIGFuZCBydW4gd2lsbCBzcGluIHVwIGEgbmV3IGNvbnRhaW5lciB0byBydW4gdGhhdCBjb21tYW5kLiBTbyBpZiB5b3Ugb25seSB3YW50IHRvIHJ1biB0aGUgdGVzdHMgd2l0aG91dCBkb2NrZXItY29tcG9zZSB1cCwgeW91IG1heSBydW4gYGRvY2tlci1jb21wb3NlIHJ1biAtZSBNT05HT0RCX1VSTD1tb25nb2RiOi8vbW9uZ286MjcwMTcvbXlfYXBwX3Rlc3Qgbm9kZSBucG0gdGVzdGAKCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"dc06e87d81da1770f2c0ba8890f457c7a385ea04"' readmeLastModified: Wed, 17 Feb 2021 12:08:10 GMT repositoryId: 229742217 description: >- Hirako Starter Kit - Node.js server with Express, Marko, Mongoose, auto generated API doc created: '2019-12-23T11:49:50Z' updated: '2023-10-29T18:45:13Z' language: Marko archived: false stars: 7 watchers: 3 forks: 1 owner: hirako2000 logo: https://avatars.githubusercontent.com/u/1500712?v=4 license: MIT repoEtag: '"6a8c4d4c007480b31b032fe94fdb11e247559970b1d5adf963509c25946f860e"' repoLastModified: Sun, 29 Oct 2023 18:45:13 GMT foundInMaster: true category: - Server - Server Implementations id: 53483f9bdb3947465e28a8eed1aeab92 - source: openapi3 tags repository: https://github.com/phogolabs/stride v3: true repositoryMetadata: base64Readme: >- IyBzdHJpZGUKQSBjb2RlIGdlbmVyYXRvciBmb3IgT3BlbkFQSSB2My54IEJFVEEuCgoqKlRoZSB0b29sIGlzIGRlcHJhY3RlZC4gSSBhbSByZWNvbW1lbmRpbmcgdXNpbmcgR1JQQyArIFBMRVguKioKCgpbIVtEb2N1bWVudGF0aW9uXVtnb2RvYy1pbWddXVtnb2RvYy11cmxdClshW0xpY2Vuc2VdW2xpY2Vuc2UtaW1nXV1bbGljZW5zZS11cmxdClshW0J1aWxkIFN0YXR1c11bYWN0aW9uLWltZ11dW2FjdGlvbi11cmxdClshW0NvdmVyYWdlXVtjb2RlY292LWltZ11dW2NvZGVjb3YtdXJsXQpbIVtHbyBSZXBvcnQgQ2FyZF1bcmVwb3J0LWltZ11dW3JlcG9ydC11cmxdCgojIyBPdmVydmlldwoKU3RyaWRlIGlzIGEgY29tbWFuZCBsaW5lIHRvb2wgZm9yIHJhcGlkIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IHdpdGggT3BlbkFQSSB2MwpzcGVjaWZpY2F0aW9uLgoKIyMgTW90aXZhdGlvbgoKVGhlcmUgYXJlIGEgbG90IG9mIHRvb2xzIGFyb3VuZCB0aGUgT3BlbkFQSSBpbml0aWF0aXZlLiBIb3dldmVyIG5laXRoZXIgb2YgdGhlbQpnaXZlcyBjb21wcmVoZW5zaXZlIHNvbHV0aW9uIGZvciByYXBpZCBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudC4gVGhlIGdvYWwgaXMKdG8gcHJvdmlkZSBhIHRvb2wgdGhhdCB5b3UgY2FuIHVzZSB0byBnZW5lcmF0ZSBwcm9kdWN0aW9uIHJlYWR5IHNlcnZlcgphcHBsaWNhdGlvbnMuCgpEb2Vzbid0IG1hdHRlciB3aGV0aGVyIHlvdSBhcmUgc3RhcnRpbmcgZnJvbSBqdXN0IGNvbmNlcHQsIHByb3RvdHlwZSBvcgpidWlsZGluZyB5b3VyIHYxIHByb2R1Y3QuIFRoZSB0b29sIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIGVkaXRpbmcgYW5kCnZpZXdpbmcgb2YgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLiBJdCBnZW5lcmF0ZXMgYSBwcm9kdWN0aW9uIHJlYWR5IHNjYWZmb2xkCnByb2plY3RzLiBBbHNvIGl0IGNhbiBzdGFydCBhIG1vY2sgc2VydmVyLiBTbyB5b3UgY2FuIHF1aWNrbHkgc3RhcnQgYnVpbGRpbmcKeW91ciBmcm9udC1lbmQgYXBwIHdpdGhvdXQgd2FpdGluZyBmb3IgeW91ciBhY3R1YWwgYmFjay1lbmQuCgpUaGFua3MgdG8gdGhlIGNvbnRyaWJ1dG9ycyBvZiB0aGUgZm9sbG93aW5nIHByb2plY3RzIHRoYXQgZW1wb3dlciBgc3RyaWRlYDoKLSBba2luLW9wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkpCi0gW3N3YWdnZXItZWRpdG9yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IpCi0gW3N3YWdnZXItdWldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKQoKIyMgSW50cm9kdWN0aW9uCgpJdCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIHN1YmNvbW1hbmRzOgoKYGBgYmFzaApOQU1FOgogICBzdHJpZGUgLSBPcGVuQVBJIHZpZXdlciwgZWRpdG9yLCBnZW5lcmF0b3IsIHZhbGlkYXRvciBhbmQgbW9ja2VyClVTQUdFOgogICBzdHJpZGUgW2dsb2JhbCBvcHRpb25zXQpDT01NQU5EUzoKICAgICBlZGl0ICAgICAgRWRpdCBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gaW4gdGhlIGJyb3dzZXIKICAgICB2aWV3ICAgICAgU2hvd3MgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIHRoZSBicm93c2VyCiAgICAgbW9jayAgICAgIFJ1bnMgYSBtb2NrIHNlcnZlciBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbgogICAgIGdlbmVyYXRlICBHZW5lcmF0ZXMgYSBwcm9qZWN0IGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uCiAgICAgdmFsaWRhdGUgIFZhbGlkYXRlcyBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24KICAgICBoZWxwLCBoICAgU2hvd3MgYSBsaXN0IG9mIGNvbW1hbmRzIG9yIGhlbHAgZm9yIG9uZSBjb21tYW5kCgpPUFRJT05TOgogICAtLXZlcnNpb24sIC12ICBwcmludHMgdGhlIHZlcnNpb24KICAgLS1oZWxwLCAtaCAgICAgc2hvd3MgaGVscApgYGAKClJpZ2h0IG5vdyBgc3RyaWRlYCBzdXBwb3J0cyBvbmx5IGBnb2xhbmdgLiBUaGVyZSBhcmUgYSBmZXcgbGltaXRhdGlvbnMgdGhhdCB0aGUKZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnQgZm9yIG5vdy4gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgbm90IHN1cHBvcnRlZDoKCi0gSW5oZXJpdGFuY2UgYW5kIFBvbHltb3JwaGlzbQotIE9uZU9mLCBBbnlPZiwgQWxsT2YgYW5kIE5vdCAodGhlcmUgYXJlIHNvbWUgbGltaXRhdGlvbnMgZHVlIHRvIHRoZSBsYW5ndWFnZSBjb25zdHJhaW50cykKLSBMaW5rcwotIENhbGxiYWNrcwotIEF1dGhlbnRpY2F0aW9uCgpOb3RlIHRoYXQgdGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IHRoZSBgZ29sYW5nYCBnZW5lcmF0b3IgY29tcGlsZXMgYW5kIHJ1biBvdXQgb2YKdGhlIGJveC4gSG93ZXZlciwgdGhlIHBhY2thZ2UKW3Jlc3RpZnldKGh0dHBzOi8vZ2l0aHViLmNvbS9waG9nb2xhYnMvcmVzdGlmeSkgdGhhdCB3aWxsIHN1cHBvcnQgdGhlCmdlbmVyYXRlZCBjb2RlIGlzIHN0aWxsIGluIGRldmVsb3BtZW50IHBoYXNlLgoKIyMgUm9hZCBtYXAKCi0gW3hdIEdvbGFuZyBnZW5lcmF0b3IgKGluIHRlc3RpbmcgcGhhc2UpCi0gWyBdIEVuYWJsZSBhIG1vY2sgc2VydmVyIGZvciBnaXZlbiBPcGVuQVBJIHNwZWNpZmljYXRpb24KLSBbeF0gRG93bmxvYWQgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmcm9tIGRpZmZlcmVudCBzb3VyY2VzIChsb2NhbCwgczMsIGdpdCBhbmQgZXRjLikKLSBbeF0gU3VwcG9ydCBmb3IgRGljdGlvbmFyaWVzLCBIYXNoIE1hcHMgYW5kIEFzc29jaWF0aXZlIEFycmF5cyBpbiBHb2xhbmcKLSBbeF0gU3VwcG9ydCBmb3IgYGFwcGxpY2F0aW9uL3htbGAgYW5kIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgCi0gW3hdIEltcHJvdmUgdGhlIE9wZW5BUEkgdmFsaWRhdGlvbiByZXBvcnRzCi0gWyBdIEFsbG93IGltcGxlbWVudGF0aW9uIG9mIDNyZCBwYXJ0eSBnZW5lcmF0b3JzIGluIG90aGVyIGxhbmd1YWdlcyAodmlhIEdSUEMpCgojIyBJbnN0YWxsYXRpb24KClRoZXJlIGFyZSBhIGZldyB3YXlzIHRvIGluc3RhbGwgaXQ6CgojIyMjIEdpdEh1YgoKYGBgY29uc29sZQokIGdvIGdldCAtdSBnaXRodWIuY29tL3Bob2dvbGFicy9zdHJpZGUKJCBnbyBpbnN0YWxsIGdpdGh1Yi5jb20vcGhvZ29sYWJzL3N0cmlkZS9jbWQvc3RyaWRlCmBgYAoKIyMjIyBIb21lYnJldyAoZm9yIE1hYyBPUyBYKQoKYGBgY29uc29sZQokIGJyZXcgdGFwIHBob2dvbGFicy90YXAKJCBicmV3IGluc3RhbGwgc3RyaWRlCmBgYAoKIyMgQ29udHJpYnV0aW5nCgpXZSBhcmUgb3BlbiBmb3IgYW55IGNvbnRyaWJ1dGlvbnMuIEp1c3QgZm9yayB0aGUKW3Byb2plY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9waG9nb2xhYnMvc3RyaWRlKS4KCltyZXBvcnQtaW1nXTogaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vcGhvZ29sYWJzL3N0cmlkZQpbcmVwb3J0LXVybF06IGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9waG9nb2xhYnMvc3RyaWRlCltsb2dvLWF1dGhvci11cmxdOiBodHRwczovL3d3dy5mcmVlcGlrLmNvbS9mcmVlLXZlY3Rvci9hYnN0cmFjdC1jcm9zcy1sb2dvLXRlbXBsYXRlXzExODU5MTkuaHRtCltsb2dvLWxpY2Vuc2VdOiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvCltjb2RlY292LXVybF06IGh0dHBzOi8vY29kZWNvdi5pby9naC9waG9nb2xhYnMvc3RyaWRlCltjb2RlY292LWltZ106IGh0dHBzOi8vY29kZWNvdi5pby9naC9waG9nb2xhYnMvc3RyaWRlL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnClthY3Rpb24taW1nXTogaHR0cHM6Ly9naXRodWIuY29tL3Bob2dvbGFicy9zdHJpZGUvd29ya2Zsb3dzL21haW4vYmFkZ2Uuc3ZnClthY3Rpb24tdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL3Bob2dvbGFicy9zdHJpZGUvYWN0aW9ucwpbZ29kb2MtdXJsXTogaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9waG9nb2xhYnMvc3RyaWRlCltnb2RvYy1pbWddOiBodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL3Bob2dvbGFicy9zdHJpZGU/c3RhdHVzLnN2ZwpbbGljZW5zZS1pbWddOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJsdWUuc3ZnCltsaWNlbnNlLXVybF06IExJQ0VOU0UK readmeEtag: '"bc31c41068e345d5a0a949c54d888a9474c66d12"' readmeLastModified: Fri, 30 Apr 2021 13:10:03 GMT repositoryId: 181135924 description: A code generator for OpenAPI v3.x created: '2019-04-13T07:22:39Z' updated: '2023-01-28T09:14:39Z' language: Go archived: true stars: 7 watchers: 3 forks: 1 owner: phogolabs logo: https://avatars.githubusercontent.com/u/15003293?v=4 license: MIT repoEtag: '"305f78e5e882ee1d6b08dd252da9895f559a9b9aebfbffcbcd81cbd3f85dd5d1"' repoLastModified: Sat, 28 Jan 2023 09:14:39 GMT foundInMaster: true category: Server id: fc3e66dec06633cdd45ad847e80ab5c6 - source: openapi3 tags repository: https://github.com/ikemtz/openapi-ts-generator v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgU3RhdHVzXShodHRwczovL2lrZW10ei52aXN1YWxzdHVkaW8uY29tL0NJJTIwQ0QvX2FwaXMvYnVpbGQvc3RhdHVzL29wZW5hcGktdHMtZ2VuZXJhdG9yP2JyYW5jaE5hbWU9bWFzdGVyKV0oaHR0cHM6Ly9pa2VtdHoudmlzdWFsc3R1ZGlvLmNvbS9DSSUyMENEL19idWlsZC9sYXRlc3Q/ZGVmaW5pdGlvbklkPTIwJmJyYW5jaE5hbWU9bWFzdGVyKSBbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW5hcGktdHMtZ2VuZXJhdG9yLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdHMtZ2VuZXJhdG9yKSBbIVtucG0gZG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kdC9vcGVuYXBpLXRzLWdlbmVyYXRvcildKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdHMtZ2VuZXJhdG9yKSBbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1pa2VtdHpfb3BlbmFwaS10cy1nZW5lcmF0b3ImbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9aWtlbXR6X29wZW5hcGktdHMtZ2VuZXJhdG9yKSBbIVtJc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy1yYXcvaWtlbXR6L09wZW5BcGktVFMtR2VuZXJhdG9yKV0oaHR0cHM6Ly9naXRodWIuY29tL2lrZW10ei9vcGVuYXBpLXRzLWdlbmVyYXRvci9pc3N1ZXMpIFshW0NvdmVyYWdlXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1pa2VtdHpfb3BlbmFwaS10cy1nZW5lcmF0b3ImbWV0cmljPWNvdmVyYWdlKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1pa2VtdHpfb3BlbmFwaS10cy1nZW5lcmF0b3IpIFshW0xpbmVzIG9mIENvZGVdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWlrZW10el9vcGVuYXBpLXRzLWdlbmVyYXRvciZtZXRyaWM9bmNsb2MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWlrZW10el9vcGVuYXBpLXRzLWdlbmVyYXRvcikgWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1pa2VtdHpfb3BlbmFwaS10cy1nZW5lcmF0b3ImbWV0cmljPXNlY3VyaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9aWtlbXR6X29wZW5hcGktdHMtZ2VuZXJhdG9yKSBbIVtDb2RlUUxdKGh0dHBzOi8vZ2l0aHViLmNvbS9pa2VtdHovb3BlbmFwaS10cy1nZW5lcmF0b3IvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLWFuYWx5c2lzLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vaWtlbXR6L29wZW5hcGktdHMtZ2VuZXJhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL2NvZGVxbC1hbmFseXNpcy55bWwpCgojIE9wZW5BcGktVFMtR2VuZXJhdG9yCgpOUE0gcGFja2FnZSBiYXNlZCBvbiBbc3dhZ2dlci10cy1nZW5lcmF0b3JdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXItdHMtZ2VuZXJhdG9yKSB0byBnZW5lcmF0ZSB0eXBlc2NyaXB0IG1vZGVscyBmb3IgZW5kcG9pbnRzIGRvY3VtZW50ZWQgYnkgc3dhZ2dlciB1c2luZyB0aGUgcmVsYXRpdmVseSBuZXcgW09wZW5BUEkgc3BlY10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8pLgoKIyMgVHlwZVNjcmlwdCB1c2FnZSB3aXRoIGEgaG9zdGVkIE9wZW5BcGkgU3BlYyBkb2N1bWVudC4KCmBgYGphdmFzY3JpcHQKaW1wb3J0IHsgZ2VuZXJhdGVUc01vZGVscyB9IGZyb20gJ29wZW5hcGktdHMtZ2VuZXJhdG9yJzsKCmdlbmVyYXRlVHNNb2RlbHMoewogIG9wZW5BcGlKc29uVXJsOiAne1lvdXIgU3dhZ2dlciBFbnBvaW50IFVSTCBoZXJlfScsCiAgb3V0cHV0UGF0aDogJy4ve291dHB1dEZvbGRlcn0vJywKfSk7CmBgYAoKIyMgVHlwZVNjcmlwdCB1c2FnZSB3aXRoIGFuIE9wZW5BcGkgU3BlYyBkb2N1bWVudCBzdG9yZWQgb24geW91ciBsb2NhbCBjb21wdXRlci4KCmBgYGphdmFzY3JpcHQKaW1wb3J0IHsgZ2VuZXJhdGVUc01vZGVscyB9IGZyb20gJ29wZW5hcGktdHMtZ2VuZXJhdG9yJzsKCmdlbmVyYXRlVHNNb2RlbHMoewogIG9wZW5BcGlKc29uRmlsZU5hbWU6ICd7bG9jYXRpb24gYW5kIGZpbGUgbmFtZSBvZiB5b3VyIE9wZW5BcGkgZG9jdW1lbnR9JywKICBvdXRwdXRQYXRoOiAnLi97b3V0cHV0Rm9sZGVyfS8nLAp9KTsKYGBgCgojIyBKYXZhc2NyaXB0IHVzYWdlIHdpdGggYSBob3N0ZWQgT3BlbkFwaSBTcGVjIGRvY3VtZW50LgoKYGBgamF2YXNjcmlwdApjb25zdCBnZW5lcmF0b3IgPSByZXF1aXJlKCdvcGVuYXBpLXRzLWdlbmVyYXRvcicpOwoKZ2VuZXJhdG9yLmdlbmVyYXRlVHNNb2RlbHMoewogIG9wZW5BcGlKc29uVXJsOiAne1lvdXIgU3dhZ2dlciBFbnBvaW50IFVSTCBoZXJlfScsCiAgb3V0cHV0UGF0aDogJy4ve291dHB1dEZvbGRlcn0vJywKICBnZW5Bbmd1bGFyRm9ybUdyb3VwczogdHJ1ZSAvKiBTZXQgdGhpcyB0byB0cnVlIGlmIG9ubHkgaWYgeW91J3JlIGluIGFuIEFuZ3VsYXIgcHJvamVjdCovCn0pOwpgYGAKCiMjIEphdmFzY3JpcHQgdXNhZ2Ugd2l0aCBhbiBPcGVuQXBpIFNwZWMgZG9jdW1lbnQgc3RvcmVkIG9uIHlvdXIgbG9jYWwgY29tcHV0ZXIuCgpgYGBqYXZhc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IHJlcXVpcmUoJ29wZW5hcGktdHMtZ2VuZXJhdG9yJyk7CgpnZW5lcmF0b3IuZ2VuZXJhdGVUc01vZGVscyh7CiAgb3BlbkFwaUpzb25GaWxlTmFtZTogJ3tsb2NhdGlvbiBhbmQgZmlsZSBuYW1lIG9mIHlvdXIgT3BlbkFwaSBkb2N1bWVudH0nLAogIG91dHB1dFBhdGg6ICcuL3tvdXRwdXRGb2xkZXJ9LycsCn0pOwpgYGAKCiMjIFdhbnQgdG8gaW5jbHVkZSBBbmd1bGFyIEZvcm1Hcm91cCBGYWN0b3JpZXM/CgpgYGBqYXZhc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IHJlcXVpcmUoJ29wZW5hcGktdHMtZ2VuZXJhdG9yJyk7CgpnZW5lcmF0b3IuZ2VuZXJhdGVUc01vZGVscyh7CiAgb3BlbkFwaUpzb25GaWxlTmFtZTogJ3tsb2NhdGlvbiBhbmQgZmlsZSBuYW1lIG9mIHlvdXIgT3BlbkFwaSBkb2N1bWVudH0nLAogIG91dHB1dFBhdGg6ICcuL3tvdXRwdXRGb2xkZXJ9LycsCiAgZ2VuQW5ndWxhckZvcm1Hcm91cHM6IHRydWUKfSk7CmBgYAoKIyMgV29ya2luZyBleGFtcGxlIHdpdGggTlJTUnggYmFzZWQgc2VydmljZQoKYGBgamF2YXNjcmlwdAppbXBvcnQgeyBnZW5lcmF0ZVRzTW9kZWxzIH0gZnJvbSAnb3BlbmFwaS10cy1nZW5lcmF0b3InOwoKZ2VuZXJhdGVUc01vZGVscyh7CiAgb3BlbkFwaUpzb25Vcmw6ICdodHRwczovL2ltLXdhLWNtcG8tbnJzci5henVyZXdlYnNpdGVzLm5ldC9zd2FnZ2VyL3YxL3N3YWdnZXIuanNvbicsCiAgb3V0cHV0UGF0aDogJy4vbW9kZWxzLycsCiAgdHlwZUZpbHRlckNhbGxCYWNrOiAodmFsLCBpLCBhcnIpID0+ICF2YWwubmFtZS5lbmRzV2l0aCgnT0RhdGFFbnZlbG9wZScpLAogIHZhbHVlUHJvcGVydHlUeXBlRmlsdGVyQ2FsbEJhY2s6ICh2YWwsIGksIGFycikgPT4gIXZhbC5uYW1lLnN0YXJ0c1dpdGgoJ2NyZWF0ZWQnKSAmJiAhdmFsLm5hbWUuc3RhcnRzV2l0aCgndXBkYXRlZCcpLAp9KTsKYGBgCgpDaGVjayBvdXQgW29wZW5hcGktbWVybWFpZF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS1tZXJtYWlkKSwgaXQgd2lsbCBhdXRvLWdlbmVyYXRlIG1lcm1haWQgZW50aXR5IGRpYWdyYW1zIHVzaW5nIHlvdXIgc3dhZ2dlciBkb2NzLgo= readmeEtag: '"9d868013c8ad2230384eb0a0e72d077033d6c9c0"' readmeLastModified: Wed, 28 Feb 2024 06:22:26 GMT repositoryId: 231400862 description: >- NPM package based on swagger-ts-generator to generate typescript models for endpoints documented by swagger using the relatively new OpenAPI spec. created: '2020-01-02T14:43:45Z' updated: '2023-08-19T14:54:40Z' language: TypeScript archived: false stars: 7 watchers: 2 forks: 2 owner: ikemtz logo: https://avatars.githubusercontent.com/u/6444182?v=4 license: MIT repoEtag: '"2835190777bd8be735f0ea98b29beb976d9e0485be833f31d806abb27c21439d"' repoLastModified: Sat, 19 Aug 2023 14:54:40 GMT foundInMaster: true category: SDK id: 6dae950c0e9f5ec81c345d076f76834e - source: openapi3 tags repository: https://github.com/yasuflatland-lf/spring-boot-webflux-kotlin-coroutine v3: true id: 6654b73e4bbebeac7741bb5090d17536 repositoryMetadata: base64Readme: >- IyBzcHJpbmctYm9vdC13ZWJmbHV4LWtvdGxpbi1jb3JvdXRpbmUKIVtHaXRIdWIgV29ya2Zsb3cgU3RhdHVzICh3aXRoIGJyYW5jaCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3lhc3VmbGF0bGFuZC1sZi9zcHJpbmctYm9vdC13ZWJmbHV4LWtvdGxpbi1jb3JvdXRpbmUvc3ByaW5nLWJvb3Qtd2ViZmx1eC1rb3RsaW4tY29yb3V0aW5lLnltbD9icmFuY2g9ZGV2ZWxvcCkKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2dpdGh1Yi95YXN1ZmxhdGxhbmQtbGYvc3ByaW5nLWJvb3Qtd2ViZmx1eC1rb3RsaW4tY29yb3V0aW5lL2JyYW5jaC9kZXZlbG9wL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj1LajliMEJRWmNWKV0oaHR0cHM6Ly9jb2RlY292LmlvL2dpdGh1Yi95YXN1ZmxhdGxhbmQtbGYvc3ByaW5nLWJvb3Qtd2ViZmx1eC1rb3RsaW4tY29yb3V0aW5lKQoKQSBzYW1wbGUgb2YgU3ByaW5nIGJvb3QgV2ViRmx1eCBhbmQgS290bGluIENvcm91dGluZSB3aXRoIEhhbmRsZXIgYW5kIFJvdXRlci4gSW4gdGhpcyBzYW1wbGUsIGltcGxlbWVudGluZyBUb2RvIG1vZGVsLCBoYW5kbGVyIGFuZCByb3V0ZXIgd2l0aCBkYXRhYmFzZSAoTXlTUUwpIHRlc3RpbmcuCgojIFJlcWlyZW1lbnRzCi0gSmF2YSAxNwotIERvY2tlciA0LjI2LjEgPj0KLSBncmFkbGUgOC4xLjEgPj0KCiMgR2V0dGluZyBTdGFydGVkClBsZWFzZSBtYWtlIHN1cmUgRG9ja2VyIGlzIHVwIGFuZCBydW5uaW5nLgoKIyMgUHJvZHVjdGlvbgpgYGBiYXNoCiQgbWFrZSBydW4KYGBgCmBhcHBsaWNhdGlvbi55bWxgIHdpbGwgYmUgcmVmZXJyZWQgZm9yIHRoZSBjb25maWd1cmF0aW9uLiBUaGlzIGNvbW1hbmQgZG9lcwotIEJ1aWxkIERvY2tlciBpbWFnZSB3aXRoIHRoZSBpbXBsZW1lbnRhdGlvbgotIFNwaW4gdXAgTXlTUUwgYW5kIFNwcmluZ2Jvb3QgYXBwbGljYXRpb24gKHRoaXMgYXBwbGljYXRpb24pIGJ5IGBkb2NrZXItY29tcG9zZWAKCiMjIERldmVsb3BtZW50CmBgYGJhc2gKJCBtYWtlIGRldkRCCiQgbWFrZSBkZXZCb290CmBgYApgYXBwbGljYXRpb24tbG9jYWwueW1sYCB3aWxsIGJlIHJlZmVycmVkIGZvciB0aGUgY29uZmlndXJhdGlvbi4KCmBtYWtlIGRldkRCYCBvbmx5IHNwaW5zIHVwIE15U1FMLCBhbmQgYG1ha2UgZGV2Qm9vdGAgcnVuIHRoaXMgYXBwbGljYXRpb24gYnkgZGV2ZWxvcG1lbnQgbW9kZSB2aWEgYGdyYWRsZWAuCgojIyMgSG93IHRvIHJ1biB0ZXN0CmBgYGJhc2gKJCBncmFkbGUgdGVzdCAtLWluZm8KYGBgCiMjIENsZWFuIHVwIGVudmlyb25tZW50CmBgYGJhc2gKJCBtYWtlIGNsZWFuCmBgYAoKVGhpcyBjb21tYW5kIGNsZWFucyB1cCBkYXRhYmFzZS4KCiMgT3BlbkFQSQojIyBIb3cgdG8gYWNjZXNzIFN3YWdnZXIgVUkKYGBgYmFzaApodHRwOi8vbG9jYWxob3N0OjgwODAvd2ViamFycy9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKYGBgCgojIFRpcHMKCiMjIE1ha2VmaWxlIGNvbW1hbmRzCllvdSBjYW4gcnVuIGFsbCBjb21tYW5kcyBieSB1c2luZyBNYWtlZmlsZS4gQWxsIGF2YWlsYWJsZSBjb21tYW5kcyBpcyBkaXNwbGF5ZWQgYnkgdHlwaW5nLApgYGBiYXNoCiQgbWFrZSBoZWxwCmBgYAo= readmeEtag: '"064a0a16a019cc5db9947ad0eab199c8bbe3afb6"' readmeLastModified: Sun, 28 Jan 2024 09:29:18 GMT repositoryId: 476884435 description: >- 🛠️ A sample of Spring boot WebFlux and Kotlin Coroutine with Handler and Router created: '2022-04-01T22:24:52Z' updated: '2024-07-02T06:24:02Z' language: Kotlin archived: false stars: 7 watchers: 2 forks: 0 owner: yasuflatland-lf logo: https://avatars.githubusercontent.com/u/2855663?v=4 repoEtag: '"798b42f38ecf0437748c270addc4624ee8e3732e72367969b151f3c7c20c0f06"' repoLastModified: Tue, 02 Jul 2024 06:24:02 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/meabed/swagger-to-typescript-client v3: true repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyLXRvLXR5cGVzY3JpcHQtY2xpZW50ClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL21lYWJlZC9zd2FnZ2VyLXRvLXR5cGVzY3JpcHQtY2xpZW50L2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbWVhYmVkL3N3YWdnZXItdG8tdHlwZXNjcmlwdC1jbGllbnQvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sKQpbIVtOUE0gdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9zd2FnZ2VyLXRvLXR5cGVzY3JpcHQtY2xpZW50LnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXItdG8tdHlwZXNjcmlwdC1jbGllbnQpClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vc3dhZ2dlci10by10eXBlc2NyaXB0LWNsaWVudC5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FnZ2VyLXRvLXR5cGVzY3JpcHQtY2xpZW50KQpbIVtVTlBLR10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9VTlBLRy1PSy0xNzlCRDcuc3ZnKV0oaHR0cHM6Ly91bnBrZy5jb20vYnJvd3NlL3N3YWdnZXItdG8tdHlwZXNjcmlwdC1jbGllbnRAbGF0ZXN0LykKCgojIyMgQSBDTEkgdG8gR2VuZXJhdGUgdHlwZXNjcmlwdCBheGlvcyBjbGllbnQgZnJvbSBzd2FnZ2VyICYgb3BlbmFwaSBmaWxlCgojIyBJbnN0YWxsYXRpb24KTlBNIApgYGBucG0KbnBtIGluc3RhbGwgLS1zYXZlIHN3YWdnZXItdG8tdHlwZXNjcmlwdC1jbGllbnQKYGBgCllhcm4KYGBgeWFybgp5YXJuIGFkZCBzd2FnZ2VyLXRvLXR5cGVzY3JpcHQtY2xpZW50CmBgYAoKCgojIyBVc2FnZQpgYGAKbm9kZSAuL25vZGVfbW9kdWxlcy9zd2FnZ2VyLXRvLXR5cGVzY3JpcHQtY2xpZW50L2Rpc3QvaW5kZXguanMgLS1wa2cgY2xpZW50LW5hbWUgLS1vdXRwdXQgLi9zZGsgLS1zd2FnZ2VyIC4vc3dhZ2dlci5qc29uCmBgYAoKT3IgdXNlIE5QWCAKYGBgCm5weCBzd2FnZ2VyLXRvLXR5cGVzY3JpcHQtY2xpZW50IC0tcGtnIGNsaWVudC1uYW1lIC0tb3V0cHV0IC4vc2RrIC0tc3dhZ2dlciAuL3N3YWdnZXIuanNvbgpgYGAKCiMjIEV4YW1wbGUKVEJBCg== readmeEtag: '"ab535ba3dc0fda805be6793e7c98c8c4788e1dcc"' readmeLastModified: Wed, 26 Apr 2023 12:59:24 GMT repositoryId: 412679955 description: A CLI to Generate typescript axios client from swagger & openapi file created: '2021-10-02T03:30:44Z' updated: '2024-01-12T18:23:08Z' language: TypeScript archived: false stars: 7 watchers: 3 forks: 0 owner: meabed logo: https://avatars.githubusercontent.com/u/45731?v=4 license: MIT repoEtag: '"ee7fe42dbdaff75682241668f12e97d818369965601ac468b8e66bce097d650d"' repoLastModified: Fri, 12 Jan 2024 18:23:08 GMT foundInMaster: true category: - SDK - Parsers id: 0b0bcf6834af8b5ba21743dc059e389d - source: openapi3 tags repository: https://github.com/bump-sh/bump-ruby-cli v3: true repositoryMetadata: base64Readme: >- IyBCdW1wOjpDTEkKCioq4pqg77iPIERFUFJFQ0FUSU9OIFdBUk5JTkc6KiogVGhpcyByZXBvc2l0b3J5IGlzIG5vdyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIG91ciBbbmV3IE5vZGUgYmFzZWQgQnVtcCBDTEldKGh0dHBzOi8vZ2l0aHViLmNvbS9idW1wLXNoL2NsaSkuIFBsZWFzZSBtaWdyYXRlIHRvIHYyLngrIHZlcnNpb24gb2Ygb3VyIENMSSB0byBlbmpveSBhbGwgZmVhdHVyZXMgb2YgQnVtcC5zaC4g4pqg77iPCgotIFsqKlJlYWQgdGhlIG5ldyBDTEkgYW5ub3VuY2VtZW50KipdKGh0dHBzOi8vaGVhZHdheWFwcC5jby9idW1wLWNoYW5nZWxvZy9uZXctY29tbWFuZC1saW5lLWludGVyZmFjZS1lcmEtMTk2MjI2KQotIFsqKlJlYWQgb3VyIEJ1bXAgQ0xJIGhlbHAgc2VjdGlvbioqXShodHRwczovL2hlbHAuYnVtcC5zaC9idW1wLWNsaSkKCl9JZiB5b3Ugc3RpbGwgd2FudCB0byB1c2UgdGhpcyBydWJ5IGdlbSwgcGxlYXNlIFtjb250YWN0IHVzXShtYWlsdG86aGVsbG9AYnVtcC5zaCkgdG8gZGlzY3VzcyBhbHRlcm5hdGl2ZXMgYW5kIHNoYXJlIHlvdXIgdXNlIGNhc2UuIFRoYW5rIHlvdSFfCgpUaGUgYGJ1bXAtY2xpYCBnZW0gcHJvdmlkZXMgYSBzaW1wbGUgY29tbWFuZCBsaW5lIGFjY2VzcyB0byB0aGUgQnVtcCAoaHR0cHM6Ly9idW1wLnNoKSBBUEkuCgojIyBJbnN0YWxsYXRpb24KCkFkZCB0aGlzIGxpbmUgdG8geW91ciBhcHBsaWNhdGlvbidzIEdlbWZpbGU6CgpgYGBydWJ5CmdlbSAnYnVtcC1jbGknCmBgYAoKQW5kIHRoZW4gZXhlY3V0ZToKCiAgICAkIGJ1bmRsZQoKT3IgaW5zdGFsbCBpdCB5b3Vyc2VsZiBhczoKCiAgICAkIGdlbSBpbnN0YWxsIGJ1bXAtY2xpCgojIyBVc2FnZQoKQnVtcCB0cmllcyB0byBpZGVudGlmeSB5b3VyIGZpbGUgc3BlY2lmaWNhdGlvbiBhbmQgZm9ybWF0IGF1dG9tYXRpY2FsbHkuIFlvdSBjYW4gZm9yY2UgaXQgYnkgdXNpbmcgdGhlIGAtLXNwZWNpZmljYXRpb25gIG9wdGlvbi4gSGVyZSBhcmUgdGhlIHN1cHBvcnRlZCB2YWx1ZXM6CgoqIGBvcGVuYXBpL3YyL2pzb25gCiogYG9wZW5hcGkvdjIveWFtbGAKKiBgb3BlbmFwaS92My9qc29uYAoqIGBvcGVuYXBpL3YzL3lhbWxgCiogYGFzeW5jYXBpL3YyL2pzb25gCiogYGFzeW5jYXBpL3YyL3lhbWxgCgpCb3RoIHRoZSBgLS1kb2NgIGFuZCBgLS10b2tlbmAgb3B0aW9ucyB1c2VkIGJlbG93IGNhbiBiZSBmb3VuZCBpbiB5b3VyIGRvY3VtZW50YXRpb24gc2V0dGluZ3MgcGFnZSBvbiBodHRwczovL2J1bXAuc2guIE5vdGUgdGhhdCB5b3UgY2FuIHJlcGxhY2UgYm90aCB0aGUgYC0tZG9jYCBhbmQgYC0tdG9rZW5gIG9wdGlvbiBieSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4gVGhpcyB3aWxsIGhlbHAgdG8ga2VlcCB0aG9zZSB2YWx1ZXMgc2VjcmV0OgoKLSBgLS1kb2NgIGNhbiBieSByZXBsYWNlZCBieSBgQlVNUF9JRGAuCi0gYC0tdG9rZW5gIGNhbiBieSByZXBsYWNlZCBieSBgQlVNUF9UT0tFTmAuCgojIyMgUHJldmlldwoKWW91IGNhbiBwcmV2aWV3IHlvdXIgZG9jdW1lbnRhdGlvbiBieSBjYWxsaW5nIHRoZSBgcHJldmlld2AgY29tbWFuZC4gQSB0ZW1wb3JhcnkgcHJldmlldyB3aWxsIGJlIGNyZWF0ZWQsIHdpdGggYSB1bmlxdWUgVVJMLiBUaGlzIHByZXZpZXcgd2lsbCBiZSBhdmFpbGFibGUgZm9yIDMwIG1pbnV0ZXMuIFlvdSBkb24ndCBuZWVkIGFueSBjcmVkZW50aWFscyB0byB1c2UgdGhpcyBjb21tYW5kLgoKUHJldmlldyBhIGRvY3VtZW50YXRpb246CgogICAgJCBidW5kbGUgZXhlYyBidW1wIHByZXZpZXcgcGF0aC90by95b3VyL2ZpbGUueW1sCgojIyMgVmFsaWRhdGUKClZhbGlkYXRlIHlvdXIgZmlsZSBhZ2FpbnN0IGl0cyBzcGVjaWZpY2F0aW9uOgoKICAgICQgYnVuZGxlIGV4ZWMgYnVtcCB2YWxpZGF0ZSBwYXRoL3RvL3lvdXIvZmlsZS55bWwgLS1kb2MgRE9DX0lEX09SX1NMVUcgLS10b2tlbiBET0NfVE9LRU4KCiMjIyBEZXBsb3kKCkRlcGxveSB0aGUgZmlsZSBhcyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uOgoKICAgICQgYnVuZGxlIGV4ZWMgYnVtcCBkZXBsb3kgcGF0aC90by95b3VyL2ZpbGUueW1sIC0tZG9jIERPQ19JRF9PUl9TTFVHIC0tdG9rZW4gRE9DX1RPS0VOCgpBdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGRvY3VtZW50YXRpb24gaW5zaWRlIGEgaHViIGFuZCBkZXBsb3kgaXQ6CgogICAgJCBidW5kbGUgZXhlYyBidW1wIGRlcGxveSBwYXRoL3RvL3lvdXIvZmlsZS55bWwgLS1hdXRvLWNyZWF0ZSAtLWRvYyBET0NfU0xVRyAtLWh1YiBIVUJfSURfT1JfU0xVRyAtLXRva2VuIEhVQl9UT0tFTgoKIyMgRGV2ZWxvcG1lbnQKCkFmdGVyIGNoZWNraW5nIG91dCB0aGUgcmVwbywgcnVuIGBiaW4vc2V0dXBgIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzLiBUaGVuLCBydW4gYHJha2Ugc3BlY2AgdG8gcnVuIHRoZSB0ZXN0cy4gWW91IGNhbiBhbHNvIHJ1biBgYmluL2NvbnNvbGVgIGZvciBhbiBpbnRlcmFjdGl2ZSBwcm9tcHQgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBleHBlcmltZW50LgoKIyMgQ29udHJpYnV0aW5nCgpCdWcgcmVwb3J0cyBhbmQgcHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZSBvbiBHaXRIdWIgYXQgaHR0cHM6Ly9naXRodWIuY29tL2J1bXAtc2gvYnVtcC1jbGkuIFRoaXMgcHJvamVjdCBpcyBpbnRlbmRlZCB0byBiZSBhIHNhZmUsIHdlbGNvbWluZyBzcGFjZSBmb3IgY29sbGFib3JhdGlvbiwgYW5kIGNvbnRyaWJ1dG9ycyBhcmUgZXhwZWN0ZWQgdG8gYWRoZXJlIHRvIHRoZSBbQ29udHJpYnV0b3IgQ292ZW5hbnRdKGh0dHA6Ly9jb250cmlidXRvci1jb3ZlbmFudC5vcmcpIGNvZGUgb2YgY29uZHVjdC4KCiMjIExpY2Vuc2UKClRoZSBnZW0gaXMgYXZhaWxhYmxlIGFzIG9wZW4gc291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgW01JVCBMaWNlbnNlXShodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKS4KCiMjIENvZGUgb2YgQ29uZHVjdAoKRXZlcnlvbmUgaW50ZXJhY3RpbmcgaW4gdGhlIEJ1bXA6OkNMSSBwcm9qZWN04oCZcyBjb2RlYmFzZXMsIGlzc3VlIHRyYWNrZXJzLCBjaGF0IHJvb21zIGFuZCBtYWlsaW5nIGxpc3RzIGlzIGV4cGVjdGVkIHRvIGZvbGxvdyB0aGUgW2NvZGUgb2YgY29uZHVjdF0oaHR0cHM6Ly9naXRodWIuY29tL2J1bXAtc2gvYnVtcC1jbGkvYmxvYi9tYXN0ZXIvQ09ERV9PRl9DT05EVUNULm1kKS4K readmeEtag: '"0af8faf032d816a1f99226bc75094cd719933f86"' readmeLastModified: Wed, 07 Jul 2021 08:40:21 GMT repositoryId: 108739848 description: >- Old bump.sh ruby CLI - Please head to our new CLI https://github.com/bump-sh/cli created: '2017-10-29T14:10:45Z' updated: '2023-01-28T07:46:06Z' language: Ruby archived: true stars: 6 watchers: 2 forks: 3 owner: bump-sh logo: https://avatars.githubusercontent.com/u/33217836?v=4 license: MIT repoEtag: '"b4cc9c6d7c3b62068f78877e083aaa2a412b850e5d52f1033210ec393f0369ab"' repoLastModified: Sat, 28 Jan 2023 07:46:06 GMT foundInMaster: true category: Server Implementations id: 36740d58dd6e9e8806db6ebe24f79fc3 - source: openapi3 tags repository: https://github.com/friskes/drf-spectacular-websocket v3: true id: 1a1dd69dc7629c186e776da3f959fd4d repositoryMetadata: base64Readme: >- IyBFeHRlbmQgd2Vic29ja2V0IHNjaGVtYSBkZWNvcmF0b3IgZm9yIERqYW5nbyBDaGFubmVscwoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCnwgUHJvamVjdCAgIHwgICAgIHwgU3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS18Oi0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBDSS9DRCAgICAgfCAgICAgfCBbIVtMYXRlc3QgUmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL0ZyaXNrZXMvZHJmLXNwZWN0YWN1bGFyLXdlYnNvY2tldC9hY3Rpb25zL3dvcmtmbG93cy9wdWJsaXNoLXRvLXB5cGkueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9Gcmlza2VzL2RyZi1zcGVjdGFjdWxhci13ZWJzb2NrZXQvYWN0aW9ucy93b3JrZmxvd3MvcHVibGlzaC10by1weXBpLnltbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUXVhbGl0eSAgIHwgICAgIHwgWyFbQ292ZXJhZ2VdKGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvRnJpc2tlcy9kcmYtc3BlY3RhY3VsYXItd2Vic29ja2V0L2dyYXBoL2JhZGdlLnN2Zz90b2tlbj12S2V6NFB5Y3JjKV0oaHR0cHM6Ly9jb2RlY292LmlvL2dpdGh1Yi9Gcmlza2VzL2RyZi1zcGVjdGFjdWxhci13ZWJzb2NrZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQYWNrYWdlICAgfCAgICAgfCBbIVtQeVBJIC0gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvZHJmLXNwZWN0YWN1bGFyLXdlYnNvY2tldD9sYWJlbENvbG9yPTIwMjIzNSZjb2xvcj1lZGI2NDEmbG9nbz1weXRob24mbG9nb0NvbG9yPWVkYjY0MSldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9weS9kcmYtc3BlY3RhY3VsYXItd2Vic29ja2V0KSAhW1B5UEkgLSBTdXBwb3J0IFB5dGhvbiBWZXJzaW9uc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvZHJmLXNwZWN0YWN1bGFyLXdlYnNvY2tldD9sYWJlbENvbG9yPTIwMjIzNSZjb2xvcj1lZGI2NDEmbG9nbz1weXRob24mbG9nb0NvbG9yPWVkYjY0MSkgIVtQcm9qZWN0IFB5UEkgLSBEb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9kbS9kcmYtc3BlY3RhY3VsYXItd2Vic29ja2V0P2xvZ289cHl0aG9uJmxhYmVsPWRvd25sb2FkcyZsYWJlbENvbG9yPTIwMjIzNSZjb2xvcj1lZGI2NDEmbG9nb0NvbG9yPWVkYjY0MSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBNZXRhICAgICAgfCAgICAgfCBbIVt0eXBlcyAtIE15cHldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdHlwZXMtTXlweS0yMDIyMzUuc3ZnP2xvZ289cHl0aG9uJmxhYmVsQ29sb3I9MjAyMjM1JmNvbG9yPWVkYjY0MSZsb2dvQ29sb3I9ZWRiNjQxKV0oaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9teXB5KSBbIVtMaWNlbnNlIC0gTUlUXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULTIwMjIzNS5zdmc/bG9nbz1weXRob24mbGFiZWxDb2xvcj0yMDIyMzUmY29sb3I9ZWRiNjQxJmxvZ29Db2xvcj1lZGI2NDEpXShodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLykgWyFbY29kZSBzdHlsZSAtIFJ1ZmZdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hc3RyYWwtc2gvcnVmZi9tYWluL2Fzc2V0cy9iYWRnZS9mb3JtYXQuanNvbiZsYWJlbENvbG9yPTIwMjIzNSldKGh0dHBzOi8vZ2l0aHViLmNvbS9hc3RyYWwtc2gvcnVmZikgfAoKPC9kaXY+Cgo+IFByb3ZpZGVzIFtleHRlbmRfd3Nfc2NoZW1hXSgjQWJvdXQtZGVjb3JhdG9yKSBkZWNvcmF0b3IgdG8gZG9jdW1lbnRhdGlvbiBbQ3Vuc3VtZXJdKGh0dHBzOi8vY2hhbm5lbHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3RvcGljcy9jb25zdW1lcnMuaHRtbCkgbWV0aG9kcyBmcm9tIFtjaGFubmVsc10oaHR0cHM6Ly9naXRodWIuY29tL2RqYW5nby9jaGFubmVscykganVzdCBsaWtlIGl0IGRvZXMgW2RyZi1zcGVjdGFjdWxhcl0oaHR0cHM6Ly9naXRodWIuY29tL3RmcmFuemVsL2RyZi1zcGVjdGFjdWxhcikKCgojIyBJbnN0YWxsCjEuIEluc3RhbGwgcGFja2FnZQogICAgYGBgYmFzaAogICAgcGlwIGluc3RhbGwgZHJmLXNwZWN0YWN1bGFyLXdlYnNvY2tldAogICAgYGBgCgoyLiBDcmVhdGUgc2lkZWNhciBzdGF0aWMKICAgIGBgYGJhc2gKICAgIHB5dGhvbiBtYW5hZ2UucHkgY29sbGVjdHN0YXRpYwogICAgYGBgCgozLiBBZGQgYXBwIG5hbWUgdG8gYElOU1RBTExFRF9BUFBTYAogICAgPiBgZHJmX3NwZWN0YWN1bGFyX3dlYnNvY2tldGAgbXVzdCBiZSBoaWdoZXIgdGhhbiBgZHJmX3NwZWN0YWN1bGFyYAogICAgYGBgcHl0aG9uCiAgICBJTlNUQUxMRURfQVBQUyA9IFsKICAgICAgICAnZHJmX3NwZWN0YWN1bGFyX3dlYnNvY2tldCcsCiAgICAgICAgJ2RyZl9zcGVjdGFjdWxhcicsCiAgICAgICAgJ2RyZl9zcGVjdGFjdWxhcl9zaWRlY2FyJywKICAgIF0KICAgIGBgYAoKCiMjIENvbmZpZ3VyZSBzZXR0aW5ncwpgYGBweXRob24KQVNHSV9BUFBMSUNBVElPTiA9ICdwYXRoLnRvLnlvdXIuYXBwbGljYXRpb24nCgojIChPcHRpb25hbCkgdGhpcyBpcyBkZWZhdWx0IHNldHRpbmdzIGFyZSBhdXRvbWF0aWNhbGx5IHNldCBieSB0aGUgZHJmX3NwZWN0YWN1bGFyX3dlYnNvY2tldC4KIyBZb3UgY2FuIG92ZXJyaWRlIHRoZW0gaW4geW91ciBhcHBsaWNhdGlvbiBpZiBuZWNlc3NhcnkuClNQRUNUQUNVTEFSX1NFVFRJTkdTID0gewogICAgJ0RFRkFVTFRfR0VORVJBVE9SX0NMQVNTJzogJ2RyZl9zcGVjdGFjdWxhcl93ZWJzb2NrZXQuc2NoZW1hcy5Xc1NjaGVtYUdlbmVyYXRvcicsCiAgICAnU1dBR0dFUl9VSV9ESVNUJzogJ1NJREVDQVInLAogICAgJ1NXQUdHRVJfVUlfRkFWSUNPTl9IUkVGJzogJ1NJREVDQVInLAogICAgJ1JFRE9DX0RJU1QnOiAnU0lERUNBUicsCiAgICAnU1dBR0dFUl9VSV9TRVRUSU5HUyc6IHsKICAgICAgICAnY29ubmVjdFNvY2tldCc6IFRydWUsICAjIEF1dG9tYXRpY2FsbHkgZXN0YWJsaXNoIGEgV1MgY29ubmVjdGlvbiB3aGVuIG9wZW5pbmcgc3dhZ2dlcgogICAgICAgICdzb2NrZXRNYXhNZXNzYWdlcyc6IDgsICAjIE1heCBudW1iZXIgb2YgbWVzc2FnZXMgZGlzcGxheWVkIGluIHRoZSBsb2cgd2luZG93IGluIHN3YWdnZXIKICAgICAgICAnc29ja2V0TWVzc2FnZXNJbml0aWFsT3BlbmVkJzogRmFsc2UsICAjIEF1dG9tYXRpY2FsbHkgb3BlbiB0aGUgbG9nIHdpbmRvdyB3aGVuIG9wZW5pbmcgc3dhZ2dlcgogICAgfSwKfQpgYGAKCj4gZHJmX3NwZWN0YWN1bGFyX3dlYnNvY2tldCBhdXRvbWF0aWNhbGx5IGZpbmRzIHdlYnNvY2tldCB1cmxzIGFuZCByZWxhdGVkIGNvbnN1bWVyIHVzaW5nIGBBU0dJX0FQUExJQ0FUSU9OYCBzZXR0aW5nLgoKIyMgQWJvdXQgZGVjb3JhdG9yCmBleHRlbmRfd3Nfc2NoZW1hYCBkZWNvcmF0b3IgYWNjZXB0cyBvbmUgbmV3IGB0eXBlYCBwYXJhbWV0ZXIgcmVsYXRpdmUgdG8gZHJmX3NwZWN0YWN1bGFyIGBleHRlbmRfc2NoZW1hYC4KLSBwb3NzaWJsZSB2YWx1ZXM6CiAgICAtIGBzZW5kYCAtIFR5cGUgb2YgaW50ZXJhY3Rpb24sIFtyZXF1ZXN0IC0+IHJlc3BvbnNlXQogICAgLSBgcmVjZWl2ZWAgLSBUeXBlIG9mIGludGVyYWN0aW9uLCBbcmVzcG9uc2Ugd2l0aG91dCByZXF1ZXN0XQoKIyMgVXNhZ2UgZXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gY2hhbm5lbHMuZ2VuZXJpYy53ZWJzb2NrZXQgaW1wb3J0IEFzeW5jSnNvbldlYnNvY2tldENvbnN1bWVyCmZyb20gcmVzdF9mcmFtZXdvcmsuc2VyaWFsaXplcnMgaW1wb3J0IFNlcmlhbGl6ZXIsIENoYXJGaWVsZApmcm9tIGRyZl9zcGVjdGFjdWxhcl93ZWJzb2NrZXQuZGVjb3JhdG9ycyBpbXBvcnQgZXh0ZW5kX3dzX3NjaGVtYQoKCmNsYXNzIFNvbWVNZXRob2RJbnB1dFNlcmlhbGl6ZXIoU2VyaWFsaXplcik6CiAgICBzb21lX2ZpZWxkID0gQ2hhckZpZWxkKCkKCgpjbGFzcyBTb21lTWV0aG9kT3V0cHV0U2VyaWFsaXplcihTZXJpYWxpemVyKToKICAgIHNvbWVfZmllbGQgPSBDaGFyRmllbGQoKQoKCmNsYXNzIFNlbmRNZXNzYWdlT3V0cHV0U2VyaWFsaXplcihTZXJpYWxpemVyKToKICAgIHNvbWVfZmllbGQgPSBDaGFyRmllbGQoKQoKCmNsYXNzIFNvbWVDb25zdW1lcihBc3luY0pzb25XZWJzb2NrZXRDb25zdW1lcik6CgogICAgYXN5bmMgZGVmIHJlY2VpdmVfanNvbihzZWxmLCBjb250ZW50LCAqKmt3YXJncyk6CiAgICAgICAgc29tZV92YWx1ZSA9IGNvbnRlbnQuZ2V0KCdzb21lX2tleScpCiAgICAgICAgaWYgc29tZV92YWx1ZToKICAgICAgICAgICAgYXdhaXQgc2VsZi5zb21lX21ldGhvZChzb21lX3ZhbHVlKQoKICAgIEBleHRlbmRfd3Nfc2NoZW1hKAogICAgICAgIHR5cGU9J3NlbmQnLAogICAgICAgIHN1bW1hcnk9J3NvbWVfbWV0aG9kX3N1bW1hcnknLAogICAgICAgIGRlc2NyaXB0aW9uPSdzb21lX21ldGhvZF9kZXNjcmlwdGlvbicsCiAgICAgICAgcmVxdWVzdD1Tb21lTWV0aG9kSW5wdXRTZXJpYWxpemVyLAogICAgICAgIHJlc3BvbnNlcz1Tb21lTWV0aG9kT3V0cHV0U2VyaWFsaXplciwKICAgICkKICAgIGFzeW5jIGRlZiBzb21lX21ldGhvZChzZWxmLCBzb21lX3ZhbHVlKToKICAgICAgICBpbnB1dF9zZXJpYWxpemVyID0gU29tZU1ldGhvZElucHV0U2VyaWFsaXplcihkYXRhPXNvbWVfdmFsdWUpCiAgICAgICAgaW5wdXRfc2VyaWFsaXplci5pc192YWxpZChyYWlzZV9leGNlcHRpb249VHJ1ZSkKCiAgICAgICAgcmV0dXJuX3ZhbHVlID0gYXdhaXQgc29tZV9idXNpbmVzc19sb2dpYyhpbnB1dF9zZXJpYWxpemVyLnZhbGlkYXRlZF9kYXRhKQoKICAgICAgICBvdXRwdXRfc2VyaWFsaXplciA9IFNvbWVNZXRob2RPdXRwdXRTZXJpYWxpemVyKGRhdGE9cmV0dXJuX3ZhbHVlKQogICAgICAgIG91dHB1dF9zZXJpYWxpemVyLmlzX3ZhbGlkKHJhaXNlX2V4Y2VwdGlvbj1UcnVlKQoKICAgICAgICBhd2FpdCBzZWxmLnNlbmRfanNvbihvdXRwdXRfc2VyaWFsaXplci52YWxpZGF0ZWRfZGF0YSkKCiAgICBAZXh0ZW5kX3dzX3NjaGVtYSgKICAgICAgICB0eXBlPSdyZWNlaXZlJywKICAgICAgICBzdW1tYXJ5PSdzZW5kX21lc3NhZ2Vfc3VtbWFyeScsCiAgICAgICAgZGVzY3JpcHRpb249J3NlbmRfbWVzc2FnZV9kZXNjcmlwdGlvbicsCiAgICAgICAgcmVxdWVzdD1Ob25lLAogICAgICAgIHJlc3BvbnNlcz1TZW5kTWVzc2FnZU91dHB1dFNlcmlhbGl6ZXIsCiAgICApCiAgICBhc3luYyBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgogICAgICAgIGF3YWl0IHNlbGYuc2VuZF9qc29uKG1lc3NhZ2UpCmBgYAoKIyMgQ29udHJpYnV0aW5nCldlIHdvdWxkIGxvdmUgeW91IHRvIGNvbnRyaWJ1dGUgdG8gYGRyZi1zcGVjdGFjdWxhci13ZWJzb2NrZXRgLCBwdWxsIHJlcXVlc3RzIGFyZSB2ZXJ5IHdlbGNvbWUhIFBsZWFzZSBzZWUgW0NPTlRSSUJVVElORy5tZF0oaHR0cHM6Ly9naXRodWIuY29tL0ZyaXNrZXMvZHJmLXNwZWN0YWN1bGFyLXdlYnNvY2tldC9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIFN3YWdnZXIgRXhhbXBsZXMKCiMjIyBTZW5kCiFbXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vRnJpc2tlcy9kcmYtc3BlY3RhY3VsYXItd2Vic29ja2V0L21haW4vaW1hZ2VzL2V4YW1wbGVfc2VuZC5wbmcpCgojIyMgUmVjZWl2ZQohW10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZyaXNrZXMvZHJmLXNwZWN0YWN1bGFyLXdlYnNvY2tldC9tYWluL2ltYWdlcy9leGFtcGxlX3JlY2VpdmUucG5nKQo= readmeEtag: '"10ac7c491ecba05706d0f84baf56dfc2d4e3a4bb"' readmeLastModified: Tue, 25 Jun 2024 20:05:21 GMT repositoryId: 789855166 description: Extend websocket schema decorator for Django Channels created: '2024-04-21T18:27:01Z' updated: '2024-08-25T01:59:21Z' language: Python archived: false stars: 6 watchers: 1 forks: 2 owner: Friskes logo: https://avatars.githubusercontent.com/u/78731609?v=4 license: MIT repoEtag: '"fc8184839f02c02020ea091ea0e26e21595915f637bde651af84612f73f89122"' repoLastModified: Sun, 25 Aug 2024 01:59:21 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/yndlingsfar/serverless-openapi-integration-helper v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9ucG1qcy5jb20vcGFja2FnZS9zZXJ2ZXJsZXNzLW9wZW5hcGktaW50ZWdyYXRpb24taGVscGVyIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2ZsYXQuYmFkZ2VuLm5ldC9ucG0vdi9zZXJ2ZXJsZXNzLW9wZW5hcGktaW50ZWdyYXRpb24taGVscGVyP2ljb249bnBtJmxhYmVsPW5wbUBsYXRlc3QiPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc2VydmVybGVzcy1vcGVuYXBpLWludGVncmF0aW9uLWhlbHBlciI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9mbGF0LmJhZGdlbi5uZXQvbnBtL2R0L3NlcnZlcmxlc3Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi1oZWxwZXI/aWNvbj1ucG0iPjwvYT4KICA8YSBocmVmPSJodHRwczovL3BhY2thZ2VwaG9iaWEubm93LnNoL3Jlc3VsdD9wPXNlcnZlcmxlc3Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi1oZWxwZXIiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vZmxhdC5iYWRnZW4ubmV0L3BhY2thZ2VwaG9iaWEvaW5zdGFsbC9zZXJ2ZXJsZXNzLW9wZW5hcGktaW50ZWdyYXRpb24taGVscGVyIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc2VydmVybGVzcy1vcGVuYXBpLWludGVncmF0aW9uLWhlbHBlciI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9mbGF0LmJhZGdlbi5uZXQvbnBtL2xpY2Vuc2Uvc2VydmVybGVzcy1vcGVuYXBpLWludGVncmF0aW9uLWhlbHBlciI+PC9hPgogIDxici8+CjwvcD4KCl9GZWVkYmFjayBpcyBhcHByZWNpYXRlZCEgSWYgeW91IGhhdmUgYW4gaWRlYSBmb3IgaG93IHRoaXMgcGx1Z2luL2xpYnJhcnkgY2FuIGJlIGltcHJvdmVkIChvciBldmVuIGp1c3QgYSBjb21wbGFpbnQvY3JpdGljaXNtKSB0aGVuIHBsZWFzZSBvcGVuIGFuIGlzc3VlLl8KCiMgU2VydmVybGVzcyBQbHVnaW46IEFXUyBBcGkgR2F0ZXdheSBpbnRlZ3JhdGlvbiBoZWxwZXIKCjEuIFtPdmVydmlld10oI292ZXJ2aWV3KQoxLiBbSW5zdGFsbGF0aW9uICYgU2V0dXBdKCNpbnN0YWxsYXRpb24tLXNldHVwKQoxLiBbUGx1Z2luIGNvbmZpZ3VyYXRpb25dKCNwbHVnaW4tY29uZmlndXJhdGlvbikgIAoxLiBbVXNhZ2VdKCN1c2FnZSkKMS4gW0NvbW1hbmRdKCNjb21tYW5kcykKMS4gW0NPUlMgR2VuZXJhdG9yXSgjY29ycy1nZW5lcmF0b3IpCjEuIFtBVVRPLU1PQ0sgR2VuZXJhdG9yXSgjYXV0by1tb2NrLWdlbmVyYXRvcikKMS4gW1ZBTElEQVRJT04gR2VuZXJhdG9yXSgjdmFsaWRhdGlvbi1nZW5lcmF0b3IpCjEuIFtQUk9YWSBNYW5hZ2VyXSgjcHJveHktbWFuYWdlcikKMS4gW0NvbmZpZ3VyYXRpb24gUmVmZXJlbmNlXSgjY29uZmlndXJhdGlvbi1yZWZlcmVuY2UpCjEuIFtLbm93biBJc3N1ZXNdKCNrbm93bi1pc3N1ZXMpCiAgIDEuIFtTdGFnZSBEZXBsb3ltZW50XSgjc3RhZ2UtZGVwbG95bWVudCkKICAgMS4gW1ZhcmlhYmxlIFJlc29sdmluZ10oI3ZhcmlhYmxlLXJlc29sdmluZykKMS4gW0V4YW1wbGVdKCNleGFtcGxlKQoxLiBbQXBwcm9hY2ggdG8gYSBmdW5jdGlvbmFsIHRlc3Qgb2Ygc2NoZW1hIHZhbGlkYXRpb25dKCNhcHByb2FjaC10by1hLWZ1bmN0aW9uYWwtdGVzdC1vZi1zY2hlbWEtdmFsaWRhdGlvbikKCiMgT3ZlcnZpZXcgClRoZSBwbHVnaW4gcHJvdmlkZXMgdGhlIGZ1bmN0aW9uYWxpdHkgdG8gbWVyZ2UgW09wZW5BcGlTcGVjaWZpY2F0aW9uIGZpbGVzXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIChmb3JtZXJseSBrbm93biBhcyBzd2FnZ2VyKSB3aXRoIG9uZSBvciBtdWx0aXBsZSBZTUwgZmlsZXMgY29udGFpbmluZyB0aGUgdGhlIHgtYW1hem9uLWFwaWdhdGV3YXkgZXh0ZW5zaW9ucy4KVGhlcmUgYXJlIHNldmVyYWwgdXNlLWNhc2VzIHRvIGtlZXAgYm90aCBpbmZvcm1hdGlvbiBzZXBhcmF0ZWQsIGUuZy4gaXQgaXMgbmVlZGVkIHRvIGRlcGxveSBkaWZmZXJlbnQgYXBpIGdhdGV3YXkgaW50ZWdyYXRpb25zIGRlcGVuZGluZyBvbiBhIHN0YWdlIGVudmlyb25tZW50LgoKV2hlbiBkZWFsaW5nIHdpdGggZnVuY3Rpb25hbCB0ZXN0cyB5b3UgZG8gbm90IHdhbnQgdG8gdGVzdCB0aGUgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCwgYnV0IG9ubHkgYSBtb2NraW5nIHJlc3BvbnNlLgoKKipUaGUgcGx1Z2luIHN1cHBvcnRzIFlNTCBiYXNlZCBPcGVuQXBpMyBzcGVjaWZpY2F0aW9uIGZpbGVzIG9ubHkqKgoKIyMgRmVhdHVyZXMKLSBTZXJ2ZXJsZXNzIDMueCBTdXBwb3J0Ci0gZGVwbG95IHN0YWdlIGRlcGVuZGVudCB4LWFtYXpvbi1hcGlnYXRld2F5IGludGVncmF0aW9ucwotIHNlcGFyYXRlIGluZnJhc3RydWN0dXJlIChhd3MpIGZyb20gb3BlbmFwaSBzcGVjaWZpY2F0aW9uCi0gdXNlIG1vY2sgaW50ZWdyYXRpb25zIGZvciBmdW5jdGlvbmFsIHRlc3RpbmcKLSBhdXRvLWdlbmVyYXRpbmcgQ09SUyBtZXRob2RzLCBoZWFkZXJzIGFuZCBhcGkgZ2F0ZXdheSBtb2NraW5nIHJlc3BvbnNlCi0gaG9vayBpbnRvIHBhY2thZ2UgJiBkZXBsb3kgbGlmZUN5Y2xlIGFuZCBnZW5lcmF0ZSBjb21iaW5lZCBvcGVuQXBpIGZpbGVzIG9uIHRoZSBmbHkgZHVyaW5nIGRlcGxveW1lbnQKLSBhdXRvLWluamVjdCBnZW5lcmF0ZWQgb3BlbkFwaSBmaWxlIGludG8gdGhlIEJvZHkgcHJvcGVydHkgb2Ygc3BlY2lmaWVkIEFQSSBHYXRld2F5Ci0gZ2VuZXJhdGUgbW9ja2luZyByZXNwb25zZXMgd2l0aG91dCBzcGVjaWZ5aW5nIHgtYW1hem9uLWFwaWdhdGV3YXktaW50ZWdyYXRpb24gb2JqZWN0cwotIGdlbmVyYXRlIHJlcXVlc3QtdmFsaWRhdGlvbiBibG9ja3MKLSBnZW5lcmF0ZSBhbGwgcmVxdWlyZWQgeC1hbWF6b24tYXBpZ2F0ZXdheS1pbnRlZ3JhdGlvbiBvYmplY3RzIGF1dG9tYXRpY2FsbHkKLSBmdWxsIHByb3h5IGdlbmVyYXRpb24gc3VwcG9ydCB3aXRoICoqW05FV106KiogZmVhdHVyZTogW1BST1hZIE1hbmFnZXJdKCNwcm94eS1tYW5hZ2VyKQoKU2VlIHRoZSAqKmV4YW1wbGVzKiogZm9sZGVyIGZvciBhIGZ1bGwgd29ya2luZyBbZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL3luZGxpbmdzZmFyL3NlcnZlcmxlc3Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi1oZWxwZXIvdHJlZS9tYWluL2V4YW1wbGVzKQoKIyBJbnN0YWxsYXRpb24gJiBTZXR1cAoKUnVuIGBucG0gaW5zdGFsbGAgaW4geW91ciBTZXJ2ZXJsZXNzIHByb2plY3QuCgpgJCBucG0gaW5zdGFsbCAtLXNhdmUtZGV2IHNlcnZlcmxlc3Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi1oZWxwZXJgCgpBZGQgdGhlIHBsdWdpbiB0byB5b3VyIHNlcnZlcmxlc3MueW1sIGZpbGUKCmBgYHltbApwbHVnaW5zOgogIC0gc2VydmVybGVzcy1vcGVuYXBpLWludGVncmF0aW9uLWhlbHBlcgpgYGAKIyBQbHVnaW4gY29uZmlndXJhdGlvbgpZb3UgY2FuIGNvbmZpZ3VyZSB0aGUgcGx1Z2luIHVuZGVyIHRoZSBrZXkgKipvcGVuQXBpSW50ZWdyYXRpb24qKi4gU2VlClNlZSBbQ29uZmlndXJhdGlvbiBSZWZlcmVuY2VdKCNjb25maWd1cmF0aW9uLXJlZmVyZW5jZSkgZm9yIGEgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucwoKVGhlIHZhbHVlIGZvciBgb3BlbkFwaUludGVncmF0aW9uYCBtdXN0IGJlIGVpdGhlciBhIHNpbmdsZSBvYmplY3Qgb3IgYW4gYXJyYXkgb2Ygb2JqZWN0cy4KRm9yIGFuIGFycmF5IG9mIG9iamVjdHMsIHRoZSBgYXBpUmVzb3VyY2VOYW1lYCBwcm9wZXJ0eSBtdXN0IGJlIHNwZWNpZmllZCBpbiBlYWNoIG9iamVjdCB0byBkZXRlcm1pbmUKd2hpY2ggYEF3czo6QXBpR2F0ZXdheTo6UmVzdEFwaWAgcmVzb3VyY2UgdG8gaW5zZXJ0IHRoZSBtZXJnZWQgQVBJIHNwZWNpZmljYXRpb24gaW50bywKd2hpbGUgZm9yIGEgc2luZ2xlIG9iamVjdCBpdCdzIG9wdGlvbmFsIGFuZCB3aWxsIGRlZmF1bHQgdG8gdGhlIGZpcnN0IGZvdW5kCmBBd3M6OkFwaUdhdGV3YXk6OlJlc3RBcGlgIHJlc291cmNlLgoKVGhlIG1hcHBpbmcgYXJyYXkgbXVzdCBiZSB1c2VkIHRvIGNvbmZpZ3VyZSB3aGVyZSB0aGUgZmlsZXMgY29udGFpbmluZyB0aGUgKip4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uKiogYmxvY2tzIGFyZSBsb2NhdGVkLgoKYGBgeW1sCm9wZW5BcGlJbnRlZ3JhdGlvbjoKICAgIHBhY2thZ2U6IHRydWUgI05ldyBmZWF0dXJlISBIb29rIGludG8gdGhlIHBhY2thZ2UgJiBkZXBsb3kgcHJvY2VzcwogICAgaW5wdXRGaWxlOiBzY2hlbWEueW1sCiAgICBtYXBwaW5nOgogICAgICAgLSBzdGFnZTogW2RldiwgcHJvZF0gI211bHRpcGxlIHN0YWdlcwogICAgICAgICBwYXRoOiBpbnRlZ3JhdGlvbnMKICAgICAgIC0gc3RhZ2U6IHRlc3QgI3NpbmdsZSBzdGFnZQogICAgICAgICBwYXRoOiBtb2NrcwpgYGAKCkluIHRoZSBhYm92ZSBleGFtcGxlIGFsbCBZTUwgZmlsZXMgaW5zaWRlIHRoZSBfaW50ZWdyYXRpb25zXyBkaXJlY3Rvcnkgd2lsbCBiZSBwcm9jZXNzZWQgYW5kIG1lcmdlZCB3aXRoIHRoZSBzY2hlbWEueW1sIGZpbGUgd2hlbiBkZXBsb3lpbmcgdGhlIGRldiBzdGFnZQpgYGBzaGVsbApzZXJ2ZXJsZXNzIGRlcGxveSAtLXN0YWdlPWRldgpgYGAKClRvIHVzZSBhIGRpZmZlcmVudCB4LWFtYXpvbi1hcGlnYXRld2F5IHRvIHBlcmZvcm0gZnVuY3Rpb25hbCB0ZXN0cyAod2l0aCBtb2NraW5nIHJlc3BvbnNlcyBlLmcpIHRoZSBkaXJlY3RvcnkgbW9jayBpcyBwcm9jZXNzZWQgYW5kIG1lcmdlZCB3aXRoIHRoZSBzY2hlbWEueW1sIGZpbGUgd2hlbiBkZXBsb3lpbmcgdGhlIHRlc3Qgc3RhZ2UKYGBgc2hlbGwKc2VydmVybGVzcyBkZXBsb3kgLS1zdGFnZT10ZXN0CmBgYAoKIyMgTXVsdGlwbGUgQVBJcwoKVG8gaGFuZGxlIG11bHRpcGxlIEFQSXMsIHN1cHBseSBhbiBhcnJheSBhcyB0aGUgdmFsdWUgb2YgYG9wZW5BcGlJbnRlZ3JhdGlvbnNgCmluc3RlYWQgb2YgYSBzaW5nbGUgb2JqZWN0LCBhbmQgc3BlY2lmeSB0aGUgdGFyZ2V0IGBBd3M6OkFwaUdhdGV3YXk6OlJlc3RBcGlgCnJlc291cmNlIGZvciBlYWNoIGl0ZW0gdXNpbmcgdGhlIGBhcGlSZXNvdXJjZU5hbWVgIHByb3BlcnR5LCBhbmQgbWFrZSBzdXJlIHRvIHNwZWNpZnkKdW5pcXVlIG91dHB1dCBmaWxlcyBieSBzZXR0aW5nIGBvdXRwdXREaXJlY3RvcnlgIGFuZC9vciBgb3V0cHV0RmlsZWAgdW5pcXVlbHk6CgpgYGB5bWwKb3BlbkFwaUludGVncmF0aW9uOgogIC0gcGFja2FnZTogdHJ1ZQogICAgaW5wdXRGaWxlOiBzY2hlbWEtMS55bWwKICAgIGFwaVJlc291cmNlTmFtZTogQXBpMQogICAgb3V0cHV0RmlsZTogYXBpLTEueW1sCiAgICBtYXBwaW5nOgogICAgICAtIHN0YWdlOiBbZGV2LCBwcm9kXQogICAgICAgIHBhdGg6IGludGVncmF0aW9ucy9hcGktMQogIC0gcGFja2FnZTogdHJ1ZQogICAgaW5wdXRGaWxlOiBzY2hlbWEtMi55bWwKICAgIGFwaVJlc291cmNlTmFtZTogQXBpMgogICAgb3V0cHV0RmlsZTogYXBpLTIueW1sCiAgICBtYXBwaW5nOgogICAgICAgLSBzdGFnZTogW2RldiwgcHJvZF0KICAgICAgICAgcGF0aDogaW50ZWdyYXRpb25zL2FwaS0yCgouLi4KCnJlc291cmNlczoKICBSZXNvdXJjZXM6CiAgICBBcGkxOgogICAgICBUeXBlOiBBV1M6OkFwaUdhdGV3YXk6OlJlc3RBcGkKICAgICAgUHJvcGVydGllczoKICAgICAgICBCb2R5OiB+ICMgYXV0by1nZW5lcmF0ZWQgYnkgcGx1Z2luIGZyb20gc2NoZW1hLTEKCiAgICAgICAgLi4uCgogICAgQXBpMjoKICAgICAgIFR5cGU6IEFXUzo6QXBpR2F0ZXdheTo6UmVzdEFwaQogICAgICAgUHJvcGVydGllczoKICAgICAgICAgIEJvZHk6IH4gIyBhdXRvLWdlbmVyYXRlZCBieSBwbHVnaW4gZnJvbSBzY2hlbWEtMgoKICAgICAgICAgIC4uLgpgYGAKCiMgVXNhZ2UKWW91IGNhbiBzZXR1cCBhIGZ1bGx5IHdvcmtpbmcgQVBJIEdBVEVXQVkgd2l0aCBhbnkgb3BlbkFwaSAzLjAgc3BlY2lmaWNhdGlvbiBmaWxlCkZpcnN0IGNyZWF0ZSB0aGUgaW5wdXQgZmlsZSBjb250YWluaW5nIHRoZSBbT3BlbkFwaVNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykKYGBgeW1sCiMgLi9zY2hlbWEueW1sCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgZGVzY3JpcHRpb246IFVzZXIgUmVnaXN0cmF0aW9uCiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogVXNlclJlZ2lzdHJhdGlvbgpwYXRoczoKICAvYXBpL3YxL3VzZXI6CiAgICBwb3N0OgogICAgICBzdW1tYXJ5OiBhZGRzIGEgdXNlcgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DdXN0b21lcicKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDEnOgogICAgICAgICAgZGVzY3JpcHRpb246IHVzZXIgY3JlYXRlZApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBDdXN0b21lcjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gZW1haWxfYWRkcmVzcwogICAgICAgIC0gcGFzc3dvcmQKICAgICAgcHJvcGVydGllczoKICAgICAgICBlbWFpbF9hZGRyZXNzOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiB0ZXN0QGV4YW1wbGUuY29tCiAgICAgICAgcGFzc3dvcmQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGZvcm1hdDogcGFzc3dvcmQKICAgICAgICAgIGV4YW1wbGU6IHNvbWVTdHJvbmdQYXNzd29yZCMKYGBgCgpUaGUgcGx1Z2luIHdpbGwgZ2VuZXJhdGUgdGhlICoqeC1hbWF6b24tYXBpZ2F0ZXdheSBpbnRlZ3JhdGlvbnMqKiBvYmplY3RzIGZvciBhbGwgbWV0aG9kcyB0aGF0IGRvIG5vdCBoYXZlIGFuIGludGVncmF0aW9uLgoKYGBgeW1sCiNnZW5lcmF0ZSBhIGZpbGUgY29udGFpbmluZyBhIGdhdGV3YXkgbW9jayBpbnRlZ3JhdGlvbiBpbiB0aGUgZGlyZWN0b3J5IC9tb2NrcwpzZXJ2ZXJsZXNzIGludGVncmF0aW9uIGNyZWF0ZSAtLW91dHB1dCBtb2NrcyAtLXR5cGUgbW9jayAtLXN0YWdlPXRlc3QKCiNnZW5lcmF0ZSBhIGZpbGUgY29udGFpbmluZyB0aGUgcHJvZHVjdGlvbiBpbnRlZ3JhdGlvbiBpbiB0aGUgZGlyZWN0b3J5IGludGVncmF0aW9ucy8Kc2VydmVybGVzcyBpbnRlZ3JhdGlvbiBjcmVhdGUgLS1vdXRwdXQgaW50ZWdyYXRpb25zIC0tdHlwZSBodHRwIC0tc3RhZ2U9cHJvZApgYGAKClN1cHBvcnRlZCB0eXBlcyBhcmUKLSBodHRwX3Byb3h5Ci0gaHR0cAotIGF3cwotIGF3c19wcm94eQotIG1vY2sKCgpUaGUgcGx1Z2luIG5vdyBnZW5lcmF0ZXMgYSBtZXJnZWQgZmlsZSBkdXJpbmcgZGVwbG95bWVudCB0aGF0IGlzIGF1dG9tYXRpY2FsbHkgaW5qZWN0ZWQgaW4geW91ciBzZXJ2ZXJsZXNzIHJlc291cmNlcwoKYGBgc2hlbGwKI0NyZWF0ZSBPcGVuQXBpIEZpbGUgY29udGFpbmluZyBtb2NraW5nIHJlc3BvbnNlcyAodXNhYmxlIGluIGZ1bmN0aW9uYWwgdGVzdHMpIGFuZCBkZXBsb3kgdG8gQXBpR2F0ZXdheQpzZXJ2ZXJsZXNzIGRlcGxveSAtLXN0YWdlPT10ZXN0CmBgYAoKYGBgc2hlbGwKI0NyZWF0ZSBPcGVuQXBpIEZpbGUgY29udGFpbmluZyB0aGUgcHJvZHVjdGlvbiBpbnRlZ3JhdGlvbiBhbmQgZGVwbG95IHRvIEFwaUdhdGV3YXkKc2VydmVybGVzcyBkZXBsb3kgLS1zdGFnZT1wcm9kCmBgYAoKVGhlIGdlbmVyYXRlZCBvdXRwdXQgaXMgYXV0b21hdGljYWxseSBpbmplY3RlZCBpbiB0aGUgKipyZXNvdXJjZXMuUmVzb3VyY2VzLllPVVJfQVBJX0dBVEVXQVkuUHJvcGVydGllcy5Cb2R5KiogcHJvcGVydHkKYGBgeW1sCnJlc291cmNlczoKICBSZXNvdXJjZXM6CiAgICBBcGlHYXRld2F5UmVzdEFwaToKICAgICAgVHlwZTogQVdTOjpBcGlHYXRld2F5OjpSZXN0QXBpCiAgICAgIFByb3BlcnRpZXM6CiAgICAgICAgQXBpS2V5U291cmNlVHlwZTogSEVBREVSCiAgICAgICAgQm9keTogfiAjYXV0b2dlbmVyYXRlZCBieSBwbHVnaW4KICAgICAgICBEZXNjcmlwdGlvbjogIlNvbWUgRGVzY3JpcHRpb24iCiAgICAgICAgRmFpbE9uV2FybmluZ3M6IGZhbHNlCiAgICAgICAgTmFtZTogJHtvcHQ6c3RhZ2UsIHNlbGY6cHJvdmlkZXIuc3RhZ2V9LXNvbWUtbmFtZQogICAgICAgIEVuZHBvaW50Q29uZmlndXJhdGlvbjoKICAgICAgICAgIFR5cGVzOgogICAgICAgICAgICAtIFJFR0lPTkFMCiAgICBBcGlHYXRld2F5RGVwbG95bWVudDoKICAgICAgVHlwZTogQVdTOjpBcGlHYXRld2F5OjpEZXBsb3ltZW50CiAgICAgIFByb3BlcnRpZXM6CiAgICAgICAgUmVzdEFwaUlkOgogICAgICAgICAgUmVmOiBBcGlHYXRld2F5UmVzdEFwaQogICAgICAgIFN0YWdlTmFtZTogJHtvcHQ6c3RhZ2UsIHNlbGY6cHJvdmlkZXIuc3RhZ2V9CmBgYAoKIyBDb21tYW5kcwoKIyMgTWFudWFsIG1lcmdlClRoZSBnZW5lcmF0ZSBjb21tYW5kIGNhbiBiZSB1c2VkIGluZGVwZW5kZW50bHkgd2l0aApgYGB5bWwKc2VydmVybGVzcyBpbnRlZ3JhdGlvbiBtZXJnZSAtLXN0YWdlPWRldgpgYGAKT2YgY291cnNlIHRoZW4gdGhlIEFQSSBHYXRld2F5IEJvZHkgcHJvcGVydHkgaGFzIHRvIGJlIHNwZWNpZmllZCBtYW51YWxseQoKYGBgeW1sCnJlc291cmNlczoKICBSZXNvdXJjZXM6CiAgICBBcGlHYXRld2F5UmVzdEFwaToKICAgICAgVHlwZTogQVdTOjpBcGlHYXRld2F5OjpSZXN0QXBpCiAgICAgIFByb3BlcnRpZXM6CiAgICAgICAgQXBpS2V5U291cmNlVHlwZTogSEVBREVSCiAgICAgICAgQm9keTogJHtmaWxlKG9wZW5hcGktaW50ZWdyYXRpb24vYXBpLnltbCl9CmBgYAoKIyBDT1JTIGdlbmVyYXRvcgoKVGhlIHBsdWdpbiBjYW4gZ2VuZXJhdGUgZnVsbCBDT1JTIHN1cHBvcnQgb3V0IG9mIHRoZSBib3guIApgYGB5bWwKb3BlbkFwaUludGVncmF0aW9uOgogIGNvcnM6IHRydWUKICAuLi4KYGBgCgpJZiBlbmFibGVkLCB0aGUgcGx1Z2luIGdlbmVyYXRlcyBhbGwgcmVxdWlyZWQgT1BUSU9OUyBtZXRob2RzIGFzIHdlbGwgYXMgdGhlIHJlcXVpcmVkIGhlYWRlciBpbmZvcm1hdGlvbnMgYW5kIGFkZHMgYSBtb2NraW5nIHJlc3BvbnNlIHRvIEFQSSBHYXRld2F5LiAKWW91IGNhbiBjdXN0b21pemUgdGhlIENPUlMgdGVtcGxhdGVzIGJ5IHBsYWNpbmcgeW91ciBvd24gZmlsZXMgaW5zaWRlIGEgZGlyZWN0b3J5ICoqb3BlbmFwaS1pbnRlZ3JhdGlvbioqIChpbiB5b3VyIHByb2plY3Qgcm9vdCkuIFRoZSBmb2xsb3dpbmcgZmlsZXMgY2FuIGJlIG92ZXJ3cml0dGVuOgoKfCBGaWxlbmFtZSAgICAgICAgfCBEZXNjcmlwdGlvbiB8CnwgLS0tLS0tLS0tLS0tLSB8Oi0tLS0tLS0tLS0tLS06fCAKfCBoZWFkZXJzLnltbCAgICB8IEFsbCBoZWFkZXJzIHJlcXVpcmVkIGZvciBDT1JTIHN1cHBvcnQgfAp8IGludGVncmF0aW9uLnltbCAgICAgIHwgQ29udGFpbnMgdGhlIHgtYW1hem9uLWFwaWdhdGV3YXktaW50ZWdyYXRpb24gYmxvY2sgIHwKfCBwYXRoLnltbHwgT3BlbkFwaSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgT1BUSU9OUyBtZXRob2QgICAgICAgfAp8IHJlc3BvbnNlLXBhcmFtZXRlcnMueW1sfCBUaGUgcmVzcG9uc2UgUGFyYW1ldGVycyBvZiB0aGUgeC1hbWF6b24tYXBpZ2F0ZXdheS1pbnRlZ3JhdGlvbiByZXNwb25zZXMgICAgICB8CgpTZWUgdGhlIFtFWEFNUExFU10oaHR0cHM6Ly9naXRodWIuY29tL3luZGxpbmdzZmFyL3NlcnZlcmxlc3Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi1oZWxwZXIvdHJlZS9tYWluL2V4YW1wbGVzKSBkaXJlY3RvcnkgZm9yIGRldGFpbGVkIGluc3RydWN0aW9ucy4KCiMgQXV0byBNb2NrIEdlbmVyYXRvcgpJZiBlbmFibGVkLCB0aGUgcGx1Z2luIGdlbmVyYXRlcyBtb2NraW5nIHJlc3BvbnNlcyBmb3IgYWxsIG1ldGhvZHMgdGhhdCBkbyBub3QgaGF2ZSBhbiB4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uIGJsb2NrIGRlZmluZWQuCkl0IHRha2VzIHRoZSBmaXJzdCAyeHggcmVzcG9uc2UgZGVmaW5lZCBpbiB0aGUgb3BlbkFwaSBzcGVjaWZpY2F0aW9uIGFuZCBnZW5lcmF0ZXMgYSBzaW1wbGUgbW9ja2luZyByZXNwb25zZSBvbiB0aGUgZmx5CmBgYHltbApvcGVuQXBpSW50ZWdyYXRpb246CiAgYXV0b01vY2s6IHRydWUKICAuLi4KYGBgCgpXaGVuIHVzaW5nIHRoZSBhdXRvTW9jayBmZWF0dXJlLCB5b3UgZG8gbm90IG5lZWQgdG8gc3BlY2lmeSBpbnB1dFBhdGggbWFwcGluZ3MsIHNpbmNlIGFsbCBlbmRwb2ludHMgYXJlIG1vY2tlZCBhdXRvbWF0aWNhbGx5CgpgYGB5bWwKb3BlbkFwaUludGVncmF0aW9uOgogICAgcGFja2FnZTogdHJ1ZQogICAgaW5wdXRGaWxlOiBzY2hlbWEueW1sCiAgICBtYXBwaW5nOiB+CmBgYAoKIyBWQUxJREFUSU9OIGdlbmVyYXRvcgoKVGhlIHBsdWdpbiBzdXBwb3J0cyBmdWxsIHJlcXVlc3QgdmFsaWRhdGlvbiBvdXQgb2YgdGhlIGJveApgYGB5bWwKb3BlbkFwaUludGVncmF0aW9uOgogIHZhbGlkYXRpb246IHRydWUKICAuLi4KYGBgCgpJZiBlbmFibGVkLCB0aGUgcGx1Z2luIGdlbmVyYXRlcyB0aGUgeC1hbWF6b24tYXBpZ2F0ZXdheS1yZXF1ZXN0LXZhbGlkYXRvcnMgYmxvY2tzIGFuZCBhZGRzIGEgYmFzaWMgcmVxdWVzdCB2YWxpZGF0aW9uIHRvIGFsbCBtZXRob2RzLgpZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgVkFMSURBVElPTiB0ZW1wbGF0ZSBieSBwbGFjaW5nIHlvdXIgb3duIGZpbGVzIGluc2lkZSBhIGRpcmVjdG9yeSAqKm9wZW5hcGktaW50ZWdyYXRpb24qKiAoaW4geW91ciBwcm9qZWN0IHJvb3QpLiBUaGUgZm9sbG93aW5nIGZpbGVzIGNhbiBiZSBvdmVyd3JpdHRlbjoKCnwgRmlsZW5hbWUgICAgICAgIHwgRGVzY3JpcHRpb24gfAp8IC0tLS0tLS0tLS0tLS0gfDotLS0tLS0tLS0tLS0tOnwgCnwgcmVxdWVzdC12YWxpZGF0b3IueW1sICAgIHwgVGhlIHgtYW1hem9uLWFwaWdhdGV3YXktcmVxdWVzdC12YWxpZGF0b3JzIGJsb2NrIHwKClNlZSB0aGUgW0VYQU1QTEVTXShodHRwczovL2dpdGh1Yi5jb20veW5kbGluZ3NmYXIvc2VydmVybGVzcy1vcGVuYXBpLWludGVncmF0aW9uLWhlbHBlci90cmVlL21haW4vZXhhbXBsZXMpIGRpcmVjdG9yeSBmb3IgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zLgoKIyBQcm94eSBNYW5hZ2VyCgpUaGUgcHJveHltYW5hZ2VyIGZlYXR1cmUgYXV0b21hdGVzIHRoZSBjb21wbGV0ZSBnZW5lcmF0aW9uIG9mIGFuIEhUVFAgcHJveHkgaW50ZWdyYXRpb24uCllvdSBvbmx5IGhhdmUgdG8gZGVmaW5lIHRoZSB0YXJnZXQgVVJMIGFuZCBhbGwgbmVjZXNzYXJ5IEFXUyBpbnRlZ3JhdGlvbiBibG9ja3MgYXJlIGdlbmVyYXRlZCBvbi10aGUtZmx5IGR1cmluZyBkZXBsb3ltZW50LgoKCmBgYHltbApvcGVuQXBpSW50ZWdyYXRpb246CiAgIGNvcnM6IHRydWUKICAgdmFsaWRhdGlvbjogdHJ1ZQogICBtYXBwaW5nOgogICAgICAtIHN0YWdlOiBbZGV2LCBwcm9kXQogICAgICAgIHByb3h5TWFuYWdlcjoKICAgICAgICAgICB0eXBlOiBodHRwX3Byb3h5CiAgICAgICAgICAgYmFzZVVybDogaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20KICAgICAgICAgICBwYXR0ZXJuOiAiKD88PWFwaVwvdjEpXC8uKyIKICAuLi4KYGBgCgoqKldpdGggdGhpcyBzZXR0aW5nLCBubyBzZXBhcmF0ZSBpbnRlZ3JhdGlvbiBmaWxlcyBuZWVkIHRvIGJlIGNyZWF0ZWQqKgoKQSBjb21iaW5hdGlvbiBvZiB5b3VyIG93biBhbmQgYXV0by1nZW5lcmF0ZWQgZmlsZXMgaXMgc3RpbGwgcG9zc2libGUgd2l0aG91dCBhbnkgcHJvYmxlbXMKCiMjIFByb3h5IE1hbmFnZXIgY29uZmlndXJhdGlvbgojIyMgdHlwZQphdCB0aGUgbW9tZW50IG9ubHkgaHR0cF9wcm94eSBzdXBwb3J0ZWQKCiMjIyBiYXNlVXJsClRoZSBiYXNlIHVybCBpcyByZXF1aXJlZCB0byBtYXAgdGhlIHBhdGggdmFyaWFibGUgZnJvbSB0aGUgb3BlbmFwaSBzcGVjaWZpY2F0aW9uIHRvIHRoZSBVUkkgZnJvbSB0aGUgYXdzIGludGVncmF0aW9uLgoKRXhhbXBsZToKCmBgYHltbAojb3JpZ2luYWwgb3BlbmFwaSBzcGVjaWZpY2F0aW9uCnBhdGhzOgogICAvYXBpL3YxL3VzZXI6CiAgICBwb3N0OgogICAgICAuLi4gCmBgYAoKd2lsbCBiZSB0cmFuc2xhdGVkIHRvCgpgYGB5bWwKI2dlbmVyYXRlZCBvcGVuYXBpIHNwZWNpZmljYXRpb24gb3V0cHV0CnBhdGhzOgogICAvYXBpL3YxL3VzZXI6CiAgICAgIHBvc3Q6CiAgICAgICAgIC4uLgogICAgICAgICB4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uOgogICAgICAgICAgICB0eXBlOiBodHRwX3Byb3h5CiAgICAgICAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6IHdoZW5fbm9fbWF0Y2gKICAgICAgICAgICAgaHR0cE1ldGhvZDogUE9TVAogICAgICAgICAgICB1cmk6IGh0dHBzOi8vd3d3LmV4YW1wbGUuY29tL2FwaS92MS91c2VyCmBgYAoKIyMjIHBhdHRlcm4KClRoZSBwYXR0ZXJuIGNhbiBiZSB1c2VkIHRvIGFkYXB0IHRoZSBtYXBwaW5nIG9mIHRoZSBiYXNlIHVybCB1c2luZyByZWdleHAsIHRvIHJlbW92ZSBhIHByZWZpeCwgb3IgYSB2ZXJzaW9uIHN0cmluZwoKRXhhbXBsZToKCmBgYHltbApiYXNlVXJsOiBodHRwczovL3d3dy5leGFtcGxlLmNvbQpwYXR0ZXJuOiAiKD88PWFwaVwvdjEpXC8uKyIKYGBgCgp3aWxsIHRyYW5zbGF0ZSB0aGUgcm91dGUgKiovYXBpL3YxL3VzZXIqKiB0byBodHRwczovL3d3dy5leGFtcGxlLmNvbS91c2VyCgojIENvbmZpZ3VyYXRpb24gUmVmZXJlbmNlCgpjb25maWd1cmUgdGhlIHBsdWdpbiB1bmRlciB0aGUga2V5ICoqb3BlbkFwaUludGVncmF0aW9uKioKCmBgYHltbApvcGVuQXBpSW50ZWdyYXRpb246CiAgaW5wdXRGaWxlOiBzY2hlbWEueW1sICNyZXF1aXJlZAogIHBhY2thZ2U6IHRydWUgI29wdGlvbmFsLCBkZWZhdWx0cyB0byBmYWxzZSAKICBpbnB1dERpcmVjdG9yeTogLi8gI29wdGlvbmFsLCBkZWZhdWx0cyB0byAuLwogIGNvcnM6IHRydWUgI29wdGlvbmFsLCBkZWZhdWx0cyB0byBmYWxzZQogIGF1dG9Nb2NrOiB0cnVlICNvcHRpb25hbCwgZGVmYXVsdHMgdG8gZmFsc2UKICB2YWxpZGF0aW9uOiB0cnVlICNvcHRpb25hbCwgZGVmYXVsdHMgdG8gZmFsc2UKICBtYXBwaW5nOiAjb3B0aW9uYWwsIGNhbiBiZSBjb21wbGV0ZWx5IGJsYW5rIGlmIGF1dG9Nb2NrIG9wdGlvbiBpcyBlbmFibGVkCiAgICAtIHN0YWdlOiBbZGV2LCBwcm9kXSAjbXVsdGlwbGUgc3RhZ2VzCiAgICAgIHBhdGg6IGludGVncmF0aW9ucwogICAgICBwcm94eU1hbmFnZXI6ICNvcHRpb25hbAogICAgICAgICB0eXBlOiBodHRwX3Byb3h5CiAgICAgICAgIGJhc2VVcmw6IGh0dHBzOi8vZXhhbXBsZS5jb20KICAgICAgICAgcGF0dGVybjogIig/PD12MSlcLy4rIgogICAgLSBzdGFnZTogdGVzdCAjc2luZ2xlIHN0YWdlCiAgICAgIHBhdGg6IG1vY2tzL2N1c3RvbWVyLnltbAogIG91dHB1dEZpbGU6IGFwaS55bWwgI29wdGlvbmFsLCBkZWZhdWx0cyB0byBhcGkueW1sCiAgb3V0cHV0RGlyZWN0b3J5OiBvcGVuYXBpLWludGVncmF0aW9uICNvcHRpb25hbCwgZGVmYXVsdHMgdG8gLi9vcGVuYXBpLWludGVncmF0aW9uCmBgYAoKIyBLbm93biBJc3N1ZXMKCiMjIFN0YWdlIGRlcGxveW1lbnQKV2hlbiB1c2luZyBzZXJ2ZXJsZXNzIGZyYW1ld29yayBvbmx5IHRvIGRlcGxveSB5b3VyIGF3cyByZXNvdXJjZXMgKip3aXRob3V0IGhhdmluZyBhbnkgbGFtYmRhIGZ1bmN0aW9ucyBvciB0cmlnZ2VycyoqLCB0aGUgQVdTIEdhdGV3YXkgZGVwbG95bWVtdCBkb2VzIG5vdCBiZWhhdmUgYXMgZXhwZWN0ZWQuCkFueSBkZXBsb3ltZW50IHRvIGFuIGV4aXN0aW5nIHN0YWdlIHdpbGwgYmUgaWdub3JlZCwgc2luY2UgQ2xvdWRGb3JtYXRpb24gZG9lcyBub3QgcmVkZXBsb3kgYSBzdGFnZSBpZiB0aGUgRGVwbG95bWVudElkZW50aWZpZXIgaGFzIG5vdCBjaGFuZ2VkLgoKVGhlIHBsdWdpbiBbc2VydmVybGVzcy1yYW5kb20tZ2F0ZXdheS1kZXBsb3ltZW50LWlkXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zZXJ2ZXJsZXNzLXJhbmRvbS1nYXRld2F5LWRlcGxveW1lbnQtaWQpIHNvbHZlcyB0aGlzIHByb2JsZW0gYnkgYWRkaW5nIGEgcmFuZG9tIGlkIHRvIHRoZSBkZXBsb3ltZW50LW5hbWUgYW5kIGFsbCByZWZlcmVuY2VzIHRvIGl0IG9uIGV2ZXJ5IGRlcGxveQoKU2VlIHRoZSAqKmV4YW1wbGVzKiogZm9sZGVyIGZvciBhIGZ1bGwgd29ya2luZyBbZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL3luZGxpbmdzZmFyL3NlcnZlcmxlc3Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi1oZWxwZXIvdHJlZS9tYWluL2V4YW1wbGVzKQoKIyMgVmFyaWFibGUgUmVzb2x2aW5nClNlcnZlcmxlc3MgdmFyaWFibGVzIGluc2lkZSB0aGUgb3BlbmFwaSBpbnRlZ3JhdGlvbiBmaWxlcyBhcmUgbm90IHJlc29sdmVkIGNvcnJlY3RseSB3aGVuIHVzaW5nIHRoZSBwYWNrYWdlICYgZGVwbG95IGhvb2tzLiBUaGlzIHByb2JsZW0gY2FuIGJlIHNvbHZlZCBieSB1c2luZyB0aGUgYXBpIGdhdGV3YXkgU1RBR0UgVkFSSUFCTEVTLgoKU2VlIHRoZSAqKmV4YW1wbGVzKiogZm9sZGVyIGZvciBhIGZ1bGwgd29ya2luZyBbZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL3luZGxpbmdzZmFyL3NlcnZlcmxlc3Mtb3BlbmFwaS1pbnRlZ3JhdGlvbi1oZWxwZXIvdHJlZS9tYWluL2V4YW1wbGVzKQoKIyBFeGFtcGxlCmBgYHltbApzZXJ2aWNlOgogIG5hbWU6IHVzZXItcmVnaXN0cmF0aW9uCgpwcm92aWRlcjoKICBuYW1lOiBhd3MKICBzdGFnZTogZGV2CiAgcmVnaW9uOiBldS1jZW50cmFsLTEKCnBsdWdpbnM6CiAgLSBzZXJ2ZXJsZXNzLW9wZW5hcGktaW50ZWdyYXRpb24taGVscGVyCiAgCm9wZW5BcGlJbnRlZ3JhdGlvbjoKICBpbnB1dEZpbGU6IHNjaGVtYS55bWwKICBwYWNrYWdlOiB0cnVlCiAgbWFwcGluZzoKICAgIC0gcGF0aDogaW50ZWdyYXRpb25zCiAgICAgIHN0YWdlOiBbZGV2LCBwcm9kXQogICAgLSBwYXRoOiBtb2Nrcy9jdXN0b21lci55bWwKICAgICAgc3RhZ2U6IHRlc3QKCmZ1bmN0aW9uczoKCnJlc291cmNlczoKICBSZXNvdXJjZXM6CiAgICBBcGlHYXRld2F5UmVzdEFwaToKICAgICAgVHlwZTogQVdTOjpBcGlHYXRld2F5OjpSZXN0QXBpCiAgICAgIFByb3BlcnRpZXM6CiAgICAgICAgQXBpS2V5U291cmNlVHlwZTogSEVBREVSCiAgICAgICAgQm9keTogfgogICAgICAgIERlc2NyaXB0aW9uOiAiU29tZSBEZXNjcmlwdGlvbiIKICAgICAgICBGYWlsT25XYXJuaW5nczogZmFsc2UKICAgICAgICBOYW1lOiAke29wdDpzdGFnZSwgc2VsZjpwcm92aWRlci5zdGFnZX0tc29tZS1uYW1lCiAgICAgICAgRW5kcG9pbnRDb25maWd1cmF0aW9uOgogICAgICAgICAgVHlwZXM6CiAgICAgICAgICAgIC0gUkVHSU9OQUwKICAgIEFwaUdhdGV3YXlEZXBsb3ltZW50OgogICAgICBUeXBlOiBBV1M6OkFwaUdhdGV3YXk6OkRlcGxveW1lbnQKICAgICAgUHJvcGVydGllczoKICAgICAgICBSZXN0QXBpSWQ6CiAgICAgICAgICBSZWY6IEFwaUdhdGV3YXlSZXN0QXBpCiAgICAgICAgU3RhZ2VOYW1lOiAke29wdDpzdGFnZSwgc2VsZjpwcm92aWRlci5zdGFnZX0KYGBgCgpgYGAKc2VydmVybGVzcyBkZXBsb3kgLS1zdGFnZT10ZXN0CmBgYAoKYGBgCnNlcnZlcmxlc3MgZGVwbG95IC0tc3RhZ2U9cHJvZApgYGAKCiMgQXBwcm9hY2ggdG8gYSBmdW5jdGlvbmFsIHRlc3Qgb2Ygc2NoZW1hIHZhbGlkYXRpb24KVGhlIHBsdWdpbiB3b3JrcyB3ZWxsIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIFtzZXJ2ZXJsZXNzLXBsdWdpbi10ZXN0LWhlbHBlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc2VydmVybGVzcy1wbHVnaW4tdGVzdC1oZWxwZXIpIHRvIGF1dG9tYXRlIHRlc3RzIGFnYWluc3QgdGhlIGRlcGxveWVkIGFwaSBnYXRld2F5CgojIyBJbnN0YWxsIFRoZSBwbHVnaW4gdGVzdCBoZWxwZXIgcGFja2FnZQoKYGBgc2hlbGwKbnBtIGluc3RhbGwgLS1zYXZlLWRldiBzZXJ2ZXJsZXNzLXBsdWdpbi10ZXN0LWhlbHBlcgpgYGAKCmFkZCB0aGUgcGx1Z2luIGFzIGEgcGx1Z2luIGRlcGVuZGVuY3kgaW4geW91ciBzZXJ2ZXJsZXNzIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgY29uZmlndXJlIHRoZSBwbHVnaW4gYWNjb3JkaW5nIHRvIHRoZSBbUmVhZG1lXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zZXJ2ZXJsZXNzLXBsdWdpbi10ZXN0LWhlbHBlcikKYGBgeW1sCiMuL3NlcnZlbGVzcy55bWwKcGx1Z2luczoKICAtIHNlcnZlcmxlc3MtcGx1Z2luLXRlc3QtaGVscGVyCiAgLSBzZXJ2ZXJsZXNzLW9wZW5hcGktaW50ZWdyYXRpb24taGVscGVyCgpbLi4uXQoKcmVzb3VyY2VzOgogICBPdXRwdXRzOgogICAgICBHYXRld2F5VXJsOiAjIFRoaXMgaXMgdGhlIGtleSB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dHMgZmlsZQogICAgICAgICBEZXNjcmlwdGlvbjogVGhpcyBpcyBhIGhlbHBlciBmb3IgZnVuY3Rpb25hbCB0ZXN0cwogICAgICAgICBWYWx1ZTogIUpvaW4KICAgICAgICAgICAgLSAnJwogICAgICAgICAgICAtIC0gJ2h0dHBzOi8vJwogICAgICAgICAgICAgIC0gIVJlZiBBcGlHYXRld2F5UmVzdEFwaQogICAgICAgICAgICAgIC0gJy5leGVjdXRlLWFwaS4nCiAgICAgICAgICAgICAgLSAke29wdDpyZWdpb24sIHNlbGY6cHJvdmlkZXIucmVnaW9ufQogICAgICAgICAgICAgIC0gJy5hbWF6b25hd3MuY29tLycKICAgICAgICAgICAgICAtICR7b3B0OnN0YWdlLCBzZWxmOnByb3ZpZGVyLnN0YWdlfQoKICAgUmVzb3VyY2VzOgogICAgQXBpR2F0ZXdheVJlc3RBcGk6CiAgICAgIFR5cGU6IEFXUzo6QXBpR2F0ZXdheTo6UmVzdEFwaQogICAgICBQcm9wZXJ0aWVzOgogICAgICAgIEFwaUtleVNvdXJjZVR5cGU6IEhFQURFUgogICAgICAgIEJvZHk6IH4KICAgICAgICBEZXNjcmlwdGlvbjogVXNlciBSZWdpc3RyYXRpb24gKCR7b3B0OnN0YWdlLCBzZWxmOnByb3ZpZGVyLnN0YWdlfSkKICAgICAgICBGYWlsT25XYXJuaW5nczogZmFsc2UKICAgICAgICBOYW1lOiAke29wdDpzdGFnZSwgc2VsZjpwcm92aWRlci5zdGFnZX0tZ2F0ZXdheQogICAgICAgIEVuZHBvaW50Q29uZmlndXJhdGlvbjoKICAgICAgICAgIFR5cGVzOgogICAgICAgICAgICAtIFJFR0lPTkFMCiAgICBBcGlHYXRld2F5RGVwbG95bWVudDoKICAgICAgVHlwZTogQVdTOjpBcGlHYXRld2F5OjpEZXBsb3ltZW50CiAgICAgIFByb3BlcnRpZXM6CiAgICAgICAgUmVzdEFwaUlkOgogICAgICAgICAgUmVmOiBBcGlHYXRld2F5UmVzdEFwaQogICAgICAgIFN0YWdlTmFtZTogJHtvcHQ6c3RhZ2UsIHNlbGY6cHJvdmlkZXIuc3RhZ2V9CmBgYAoKIyMgVGVzdGluZyB0aGUgc2NoZW1hIHZhbGlkYXRpb24KQWRkIGEgZnVuY3Rpb25hbCB0ZXN0IChlLmcuIHdpdGggamVzdCkKCmBgYGphdmFzY3JpcHQKLy90ZXN0cy9yZWdpc3RyYXRpb24uanMKaW1wb3J0IHtnZXRPdXRwdXR9IGZyb20gJ3NlcnZlcmxlc3MtcGx1Z2luLXRlc3QtaGVscGVyJzsKaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJzsKCmF4aW9zLmRlZmF1bHRzLmFkYXB0ZXIgPSByZXF1aXJlKCdheGlvcy9saWIvYWRhcHRlcnMvaHR0cCcpOyAvL1RvZG8KCmNvbnN0IFVSTCA9IGdldE91dHB1dCgnR2F0ZXdheVVybCcpOwp0ZXN0KCdyZXF1ZXN0IHZhbGlkYXRpb24gb24gcmVnaXN0cmF0aW9uJywgYXN5bmMgKCkgPT4gewogICAgZXhwZWN0LmFzc2VydGlvbnMoMSk7CiAgICBjb25zdCB7c3RhdHVzfSA9IGF3YWl0IGF4aW9zLnBvc3QoVVJMICsgJy9hcGkvdjEvdXNlcicsCiAgICAgICAgewogICAgICAgICAgICAiZW1haWxfYWRkcmVzcyI6ICJ0ZXN0QGV4YW1wbGUuY29tIiwKICAgICAgICAgICAgInBhc3N3b3JkIjogInNvbWVTdHJvbmdQYXNzd29yZCMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsCiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIGV4cGVjdChzdGF0dXMpLnRvRXF1YWwoMjAxKTsKfSk7Cgp0ZXN0KCdyZXF1ZXN0IHZhbGlkYXRpb24gb24gcmVnaXN0cmF0aW9uIChpbnZhbGlkIHJlcXVlc3QpJywgYXN5bmMgKCkgPT4gewogICAgZXhwZWN0LmFzc2VydGlvbnMoMSk7CiAgICB0cnkgewogICAgICAgIGF3YWl0IGF4aW9zLnBvc3QoVVJMICsgJy9hcGkvdjEvdXNlcicsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbWFpbCI6ICJ0ZXN0QGV4YW1wbGUuY29tIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgZXhwZWN0KGUucmVzcG9uc2UpLnRvTWF0Y2hPYmplY3QoewogICAgICAgICAgICBzdGF0dXNUZXh0OiAnQmFkIFJlcXVlc3QnLAogICAgICAgICAgICBzdGF0dXM6IDQwMAogICAgICAgIH0pOwogICAgfQp9KTsKYGBgClRoZW4gcGVyZm9ybSB0aGUgZnVuY3Rpb25hbCB0ZXN0CmBgYHNoZWxsCnNlcnZlcmxlc3MgZGVwbG95IC0tc3RhZ2U9dGVzdApucG0gdGVzdApzZXJ2ZXJsZXNzIHJlbW92ZSAtLXN0YWdlPXRlc3QKYGBgCgpUaGUgY29tbWFuZCB3aWxsCi0gbWVyZ2UgdGhlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbiBmaWxlIHdpdGggdGhlIE1PQ0sgaW50ZWdyYXRpb24gY29uZmlndXJlZCBiZWZvcmUKLSBkZXBsb3kgdG8gQVBJIEdhdGV3YXkgaW4gYW4gaXNvbGF0ZWQgVEVTVCBpbmZyYXN0cnVjdHVyZSBlbnZpcm9ubWVudCAoeW91ciBvdGhlciBlbnZpcm9ubWVudHMgd2lsbCBub3QgYmUgYWZmZWN0ZWQgc2luY2Ugd2UgYXJlIGRlcGxveWluZyB0byBhIHNlcGFyYXRlZCBnYXRld2F5KQotIHBlcmZvcm0gdGhlIHRlc3QgYW5kIHZlcmlmeSB0aGF0IHNjaGVtYSB2YWxpZGF0aW9uIGlzIGNvcnJlY3QKLSByZW1vdmUgYWxsIFRFU1QgcmVzb3VyY2VzIGlmIHRlc3Qgc3VjY2VlZGVkCgpTZWUgdGhlICoqZXhhbXBsZXMqKiBmb2xkZXIgZm9yIGEgZnVsbCB3b3JraW5nIFtleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20veW5kbGluZ3NmYXIvc2VydmVybGVzcy1vcGVuYXBpLWludGVncmF0aW9uLWhlbHBlci90cmVlL21haW4vZXhhbXBsZXMpCg== readmeEtag: '"27c3a79bf8c3dde4733c71aebb44de2891ea8e7c"' readmeLastModified: Sat, 15 Apr 2023 06:50:31 GMT repositoryId: 354271536 description: >- The plugin separates x-amazon-apigateway extension syntax from your openapi3 files created: '2021-04-03T11:15:21Z' updated: '2023-12-05T09:28:34Z' language: JavaScript archived: false stars: 6 watchers: 1 forks: 5 owner: yndlingsfar logo: https://avatars.githubusercontent.com/u/8264387?v=4 license: MIT repoEtag: '"55e9815553841114ac94d251d3af043fb9610ff6dd79b125116049dfa08dc7d0"' repoLastModified: Tue, 05 Dec 2023 09:28:34 GMT foundInMaster: true category: Testing id: 3fde089ee2ce97b7e54b375ff3c66db4 - source: openapi3 tags repository: https://github.com/mimicry-tech/openapi_validator v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJdjNWYWxpZGF0b3IKCkEgc21hbGwgbGlicmFyeSBmb3IgdmFsaWRhdGluZyBPcGVuQVBJIHNwZWNzIGluZGVwZW5kZW50bHkgb2YgdGhlIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pbykgLSBhbmQgaW5kZXBlbmRlbnRseSBvZiBKYXZhU2NyaXB0LgoKT3JpZ2luYWxseSBleHRyYWN0ZWQgZnJvbSBhIGJyYW5jaCBvZiBbbWltaWNyeV0oaHR0cHM6Ly9naXRodWIuY29tL21pbWljcnktdGVjaC9taW1pY3J5KSBhcyB0aGlzIG1pZ2h0IGJlIHVzZWZ1bCB0byBvdGhlcnMuCgojIyBJbnN0YWxsYXRpb24KClRoZSBwYWNrYWdlIGNhbiBiZSBpbnN0YWxsZWRieSBhZGRpbmcgYG9wZW5hcGl2M192YWxpZGF0b3JgIHRvIHlvdXIgbGlzdCBvZmRlcGVuZGVuY2llcyBpbiBgbWl4LmV4c2A6CgpgYGBlbGl4aXIKZGVmIGRlcHMgZG8KICBbCiAgICB7Om9wZW5hcGl2M192YWxpZGF0b3IsICJ+PiAwLjEuMCJ9CiAgXQplbmQKYGBgCgpEb2N1bWVudGF0aW9uIGNhbiBiZSBnZW5lcmF0ZWQgd2l0aCBbRXhEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9lbGl4aXItbGFuZy9leF9kb2MpCmFuZCBwdWJsaXNoZWQgb24gW0hleERvY3NdKGh0dHBzOi8vaGV4ZG9jcy5wbSkuIE9uY2UgcHVibGlzaGVkLCB0aGUgZG9jcyBjYW4KYmUgZm91bmQgYXQgW2h0dHBzOi8vaGV4ZG9jcy5wbS9vcGVuYXBpX3ZhbGlkYXRvcl0oaHR0cHM6Ly9oZXhkb2NzLnBtL29wZW5hcGl2M192YWxpZGF0b3IpLgoKIyMgVXNhZ2UKClRoZSBwYWNrYWdlIHByb3ZpZGVzIHRoZSBvcGVuYXBpIHYzIHNjaGVtYSBhcyBhIHBsYWluIGVsaXhpciBzdHJ1Y3QsIHNvIHlvdSBjYW4gZWl0aGVyOgoKYGBgZWxpeGlyCm15X3NwZWNpZmljYXRpb24gPSAle30KCm15X3NwZWNpZmljYXRpb24gfD4gT3BlbkFQSXYzVmFsaWRhdG9yLnZhbGlkPygpCiMgdHJ1ZSAvIGZhbHNlCgpteV9zcGVjaWZpY2F0aW9uIHw+IE9wZW5BUEl2M1ZhbGlkYXRvci52YWxpZGF0ZSgpCiMgOm9rIHwgezplcnJvciwgW119CmBgYAoKVGhpcyB1c2VzIHRoZSBtb3N0IGV4Y2VsbGVudCBbYGV4X2pzb25fc2NoZW1hYF0oaHR0cHM6Ly9oZXgucG0vcGFja2FnZXMvZXhfanNvbl9zY2hlbWEpLCB5b3UgY2FuIGFsc28gZ3JhYiB0aGUgc2NoZW1hIGRpcmVjdGx5IGFuZCB1c2UgaXQgd2l0aCBgZXhfanNvbl9zY2hlbWFgcyBgVmFsaWRhdG9yYDoKCmBgYGVsaXhpcgphbGlhcyBPcGVuQVBJdjNWYWxpZGF0b3IuU2NoZW1hcy5PcGVuQVBJLlYzLCBhczogVjMKYWxpYXMgRXhKc29uLlNjaGVtYQphbGlhcyBFeEpzb25TY2hlbWEuVmFsaWRhdG9yCgpteV9zcGVjaWZpY2F0aW9uID0gJXsKICAib3BlbmFwaSIgPT4gIjMuMC4wIiwKICAjIC4uLgp9CgpWMy5zY2hlbWEoKSB8PiBTY2hlbWEucmVzb2x2ZSB8PiBWYWxpZGF0b3IudmFsaWQ/KG15X3NwZWNpZmljYXRpb24pCmBgYAoKCg== readmeEtag: '"b61daad631ed9b35074cb65a5a931d73228240b9"' readmeLastModified: Thu, 07 Sep 2023 22:19:04 GMT repositoryId: 385714891 description: A small wrapper for validating OpenAPIv3 schemata in plain elixir created: '2021-07-13T19:30:25Z' updated: '2023-12-18T14:58:12Z' language: Elixir archived: false stars: 6 watchers: 1 forks: 0 owner: mimicry-tech logo: https://avatars.githubusercontent.com/u/85833773?v=4 license: Apache-2.0 repoEtag: '"cb8f17cb61967683f94a0f8141182d91e6dae63f33e1087ebd94ab4c6bde841d"' repoLastModified: Mon, 18 Dec 2023 14:58:12 GMT foundInMaster: true category: Parsers id: fab14465507a3232925341d0ad4443d4 - source: openapi3 tags repository: https://github.com/eliezerjg/business-system-shell v3: true id: a01fa8f0aa51c0bb3b49a8a356095c88 repositoryMetadata: base64Readme: >- IyMgSW4gRmlyc3QgUGxhY2UKQ29mZmVlIGlzIGdvb2QgYW5kIGkgbGlrZSBpdCwgaWYgaSBoZWxwZWQgeW91IGJ5IHNvbWUgd2F5Ojxici8+PGJyLz4KPGEgaHJlZj0iaHR0cHM6Ly9idXltZWFjb2ZmZWUuY29tL2VsaWV6ZXJqZyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLy1idXlfbWVfYSVDMiVBMGNvZmZlZS1ncmF5P2xvZ289YnV5LW1lLWEtY29mZmVlIiAvPjwvYT4KCgojIyBCdXNpbmVzcyBTeXN0ZW0gU2hlbGwgLSBNdWx0aXBsYXRmb3JtIE1vbm9saXRoIEJhY2tlbmQKCgo8cD4KVGhpcyBwcm9qZWN0IGluY2x1ZGVzOgo8L3A+Cgo8aDQ+UHJvcGVydGllczo8L2g0Pgo8bGk+UHJvZHVjdGlvbiBhbmQgRGV2ZWxvcG1lbnQgcHJvZmlsZTwvbGk+CjxCUj4KIAoKPGg0PlNwcmluZyBTZWN1cml0eSBFbmRwb2ludHMgUHJvdGVjdGlvbjo8L2g0Pgo8bGk+UHVibGljIFJlZ2lzdHJhdGlvbiBhbmQgbG9naW48L2xpPgo8bGk+Q3VzdG9tZXIgcHJvdGVjdGVkIGVuZHBvaW50IGJ5IGF1dGhlbnRpY2F0aW9uPC9saT4KPGxpPkNsb3VkZmxhcmUgRE5TIHByb3RlY3Rpb24gZmlsdGVyPC9saT4KCjxCUj4KCgo8aDQ+VGVzdHM6PC9oND4KPGxpPkp1bml0IDQgVW5pdCBUZXN0czwvbGk+CjxsaT5Nb2NraXRvIGZvciBtb2NraW5nPC9saT4KPEJSPgoKPGg0PkF1dGhlbnRpY2F0aW9uOjwvaDQ+CjxsaT5KV1QgQmVhcmVyIFRva2VuPC9saT4KPEJSPgoKPGg0PkV4Y2VwdGlvbiBIYW5kbGluZzo8L2g0Pgo8bGk+RGVmYXVsdCB0cmVhdG1lbnRzIGZvciBleGNlcHRpb24gaGFuZGxpbmcgKHdpdGggaHR0cCBzdGF0dXMgY29kZXMpPC9saT4KPEJSPgoKPGg0PkRvY3VtZW50YXRpb246PC9oND4KPGxpPiBTd2FnZ2VyIFVJIC8gU3ByaW5nIERPQy4gPC9saT4KPEJSPgoKPGg0PlN0ZXBzIHRvIGdldCBzdGFydGVkOjwvaDQ+CjxsaT4xIC0gQ2hhbmdlIHRoZSBkZWZhdWx0IHByaXZhdGUgdG9rZW4gaW4gQXV0aCBmb3IgbXVsdGlwbGUgaW5zdGFuY2VzLjwvbGk+CjxsaT4yIC0gUHJvdGVjdCB5b3VyIEZyb250RW5kIHdpdGggQ2xvdWRmbGFyZSBETlMuPC9saT4KPGxpPjMgLSBGb2xsb3cgdGhlIFN0cnVjdHVyZXMgZm9sZGVyIGFuZCBhZGQgeW91ciBidXNpbmVzcyBsb2dpYy48L2xpPgo8bGk+NCAtIEZlZWwgZnJlZSB0byB1c2UgdGhpcyB2ZXJzaW9uIGZvciBwZXJzb25hbCB1c2Ugb3Igb3BlbiBzb3VyY2UgcHJvamVjdHMgYW5kIGNvbnRyaWJ1dGUgZm9yIHRoaXMgcHJvamVjdC48L2xpPgo8bGk+NSAtIFJlbWVtYmVyIHRvIHNldCB1cCB0aGUgdXNlcnMgUm9sZSBmb3IgeW91ciBidXNpbmVzcyBsb2dpYy48L2xpPgo8QlI+Cgo8aDQ+Rm9yIChGcm9udEVuZCAvIE1vYmlsZSkgRGV2ZWxvcGVyczo8L2g0Pgo8cD4gU28gd2UgaGF2ZSB0aGlzIGZsdXggdG8gaW1wbGVtZW50YXRpb246PC9wPgo8cD4xIC0gQ3VzdG9tZXIgKFJlZ2lzdGVyIC8gTG9naW4pID09PiBHZXQgSldUIFRPS0VOPC9wPgo8cD4yIC0gU2ltdWxhdGUgdGhlIHNlc3Npb25zIHN0b3JpbmcgdGhpcyB0b2tlbiB1bnRpbCByZWNlaXZlIHVuYXV0aG9yaXplZDwvcD4KPHA+MyAtIElmIHVuYXV0aG9yaXplZCA9PiBGT1JDRSBMT0dJTiBBR0FJTiA9PiBTQVZFIFRIRSBKV1Q8L3A+CjxCUj4KCjxoND5Gb3IgYmV0dGVyIHVzZTo8L2g0Pgo8bGk+MSAtIFJ1biB0aGUgdGVzdHMgYW5kIGdpdmUgYSBsb29rIGF0IFBvc3RtYW4gQ29sbGVjdGlvbi48L2xpPgo8bGk+MiAtIFNXQUdHRVIgRE9DVU1FTlRBVElPTiAocnVuIHRoZSBwcm9qZWN0KTogaHR0cHM6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwgIC48L2xpPgoKCgoKCgo= readmeEtag: '"15b87745fd4f459cd3d49867e2016d329ff4bd9e"' readmeLastModified: Sun, 21 Apr 2024 14:26:23 GMT repositoryId: 649377523 description: >- An entire Java / Spring start for your project with User, Login, Spring Security, OpenAPI documentation and Cloudflare Protection. created: '2023-06-04T16:53:47Z' updated: '2024-04-21T14:26:26Z' language: Java archived: false stars: 6 watchers: 1 forks: 0 owner: eliezerjg logo: https://avatars.githubusercontent.com/u/71297177?v=4 license: MIT repoEtag: '"f8641f014dd352f8131ae6922d3d0f190c47cd1c1232010197e38b5e34150c9b"' repoLastModified: Sun, 21 Apr 2024 14:26:26 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/apiboard/php-openapi v3: true id: b7ee0faa773471470fa4444a50560ed0 repositoryMetadata: base64Readme: >- IyBQSFAgT3BlbkFQSQoKT3BlbkFQSSBTcGVjaWZpY2F0aW9uIHBhcnNlciBmb3IgUEhQIDguIFN1cHBvcnRzIGJvdGggT0FTIDMuMCBhbmQgMy4xLgoKWyFbTGF0ZXN0IFZlcnNpb24gb24gUGFja2FnaXN0XShodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC92cHJlL2FwaWJvYXJkL3BocC1vcGVuYXBpLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9hcGlib2FyZC9waHAtb3BlbmFwaSkKIVtQSFAgZnJvbSBQYWNrYWdpc3RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3BocC12L2FwaWJvYXJkL3BocC1vcGVuYXBpP3N0eWxlPWZsYXQtc3F1YXJlKQohW0NJXShodHRwczovL2dpdGh1Yi5jb20vYXBpYm9hcmQvcGhwLW9wZW5hcGkvd29ya2Zsb3dzL0NJL2JhZGdlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSkKCiMjIEZlYXR1cmVzCgotIFBhcnNlIE9wZW5BUEkgZmlsZXMgaW50byBhIFBIUCBvYmplY3QgdG8gaW50ZXJhY3Qgd2l0aCBpbiBjb2RlCi0gVmFsaWRhdGUgT3BlbkFQSSBmaWxlcyBhZ2FpbnN0IHRoZSBvZmZpY2lhbCBKU09OLXNjaGVtYSBkZXNjcmlwdGlvbnMKLSBSZXNvbHZlIGV4dGVybmFsIGFuZCBpbnRlcm5hbCByZWZlcmVuY2VzCgojIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKY29tcG9zZXIgcmVxdWlyZSBhcGlib2FyZC9waHAtb3BlbmFwaQpgYGAKCiMjIFVzYWdlCgpZb3UgY2FuIGludGVyYWN0IHdpdGggdGhpcyBsaWJyYXJ5IHRocm91Z2ggdGhlIGBPcGVuQVBJOjpjbGFzc2AgZGlyZWN0bHkuCgpgYGBwaHAKJG9wZW5BUEkgPSBuZXcgT3BlbkFQSSgpOwpgYGAKVGhpcyBjbGFzcyBvcHRpb25hbGx5IGFjY2VwdHMgYW4gaW1wbGVtZW50YXRpb24gb2YgYEFwaWJvYXJkXE9wZW5BUElcQ29udGVudHNcUmV0cmlldmVyOjpjbGFzc2Agd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBmaWxlIGNvbnRlbnRzLiBCeSBkZWZhdWx0IHRoZSBsb2NhbCBmaWxlc3lzdGVtIHdpbGwgYmUgdXNlZCB0byByZXRyaWV2ZSBmaWxlIGNvbnRlbnRzLgoKIyMjIFBhcnNlCgpZb3UgY2FuIHBhcnNlIHRoZSBjb250ZW50cyBvZiBhIGZpbGUgYnkgcGFzc2luZyBpdHMgcGF0aCB0byBgcGFyc2UoKWAuIFRoaXMgd2lsbCBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBmaWxlJ3MgY29udGVudHMgYW5kIHJlc29sdmUgYW55IGV4dGVybmFsIHJlZmVyZW5jZXMuCgpJdCByZXR1cm5zIGEgUEhQIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIE9BUyBkb2N1bWVudCBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZCBpbiBjb2RlLgpgYGBwaHAKJGRvY3VtZW50ID0gJG9wZW5BUEktPnBhcnNlKCcvcGF0aC90by9teS1vYXMuanNvbicpOwoKJGRvY3VtZW50LT5vcGVuYXBpKCk7IC8vIDMuMS4wCmBgYAoKIyMjIFZhbGlkYXRlCllvdSBjYW4gZGlyZWN0bHkgdmFsaWRhdGUgdGhlIGNvbnRlbnRzIG9mIGEgZmlsZSBhZ2FpbnN0IHRoZSBvZmZpY2lhbCBPcGVuQVBJIEpTT04tc2NoZW1hIGRlc2NyaXB0aW9ucy4gSXQgcmV0dXJucyBhbiBhcnJheSBvZiBwb3NzaWJsZSBlcnJvcnMgdGhhdCBvY2N1cmVkIGR1cmluZyB0aGUgdmFsaWRhdGlvbi4KCmBgYHBocAokZXJyb3JzID0gJG9wZW5BUEktPnZhbGlkYXRlKCcvcGF0aC90by9teS1vYXMueWFtbCcpOwpgYGAKCj4g4pqg77iPIFZhbGlkYXRpb24gZm9yIE9BUyAzLjEgZG9lcyBub3QgY2hlY2sgYW55IEpTT04gU2NoZW1hcyBpbiB5b3VyIE9wZW5BUEkgZG9jdW1lbnQgYmVjYXVzZSBpdCBhbGxvd3MgeW91IHRvIHVzZSBhbnkgSlNPTiBTY2hlbWEgZGlhbGVjdCB5b3UgY2hvb3NlIQoKIyMjIFJlc29sdmUKCllvdSBjYW4gcmVzb2x2ZSBleHRlcm5hbCBhbmQgaW50ZXJuYWwgcmVmZXJlbmNlcy4gSXQgcmV0dXJucyBhIFBIUCBvYmplY3Qgd2l0aCB0aGUgcmVzb2x2ZWQgY29udGVudHMuCgpgYGBwaHAKJGNvbnRlbnRzID0gJG9wZW5BUEktPnJlc29sdmUoJy9wYXRoL3RvL215LW9hcy5qc29uJyk7CgokZG9jdW1lbnQgPSBuZXcgQXBpYm9hcmRcT3BlbkFQSVxTdHJ1Y3R1cmVcRG9jdW1lbnQoJGNvbnRlbnRzKTsKYGBgCldoZW4gcmVzb2x2aW5nIHJlZmVyZW5jZXMgdGhlIGNvbnRlbnRzIHdpbGwgYmUgcmV0cmlldmVkIGZyb20gdGhlIGxvY2FsIGZpbGV5c3RlbSBieSBkZWZhdWx0LiBZb3UgY2FuIG92ZXJyaWRlIHRoZSB3YXkgZmlsZSBjb250ZW50cyBpcyByZXRyaWV2ZWQgYnkgcGFzc2luZyBhIGN1c3RvbSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGBBcGlib2FyZFxPcGVuQVBJXENvbnRlbnRzXFJldHJpZXZlcmAgaW50ZXJmYWNlLgoKYGBgcGhwCgokY3VzdG9tUmV0cmlldmVyID0gbmV3IE15Q3VzdG9tUmV0cmlldmVyKCk7CiRvcGVuQVBJID0gbmV3IE9wZW5BUEkoJGN1c3RvbVJldHJpZXZlcik7Cgokb3BlbkFQSS0+cmVzb2x2ZSgnL3BhdGgvdG8vbXktb2FzLmpzb24nKTsKYGBgCgpDaXJjdWxhciByZWZlcmVuY2VzIGFyZSByZXNvbHZlZCBhcyBhbiBpbnRlcm5hbCByZWZlcmVuY2UgYWZ0ZXIgcmVjdXJzaW5nIHR3aWNlLCB0aGlzIGlzIHRvIHByZXZlbnQgaW5maW5pdGUgcmVjdXJzaW9uLgoKIyMgTGljZW5zZQoKVGhlIE1JVCBMaWNlbnNlIChNSVQpLiBQbGVhc2Ugc2VlIFtMaWNlbnNlIEZpbGVdKExJQ0VOU0UpIGZvciBtb3JlIGluZm9ybWF0aW9uLgo= readmeEtag: '"f9c6a4d0ec68939a474e83dcf9f743f8f6ef2062"' readmeLastModified: Wed, 21 Feb 2024 20:55:11 GMT repositoryId: 553826449 description: OpenAPI Specification parser for PHP 8. Supports both OAS 3.0 and 3.1. created: '2022-10-18T20:46:53Z' updated: '2024-07-23T13:49:26Z' language: PHP archived: false stars: 6 watchers: 2 forks: 1 owner: Apiboard logo: https://avatars.githubusercontent.com/u/110201247?v=4 license: MIT repoEtag: '"7ad2705e4a7312a806329920db21ad3fcc650f9f4437f35aa8d5b9033f5fafe7"' repoLastModified: Tue, 23 Jul 2024 13:49:26 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/technicallyjosh/protoc-gen-openapi v3: true id: b6143b49f7ece144265f0933e514d757 repositoryMetadata: base64Readme: >- IyBwcm90b2MtZ2VuLW9wZW5hcGkKCiFbR2l0SHViIHJlbGVhc2UgKGxhdGVzdCBieSBkYXRlKV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi9yZWxlYXNlL3RlY2huaWNhbGx5am9zaC9wcm90b2MtZ2VuLW9wZW5hcGk/c3R5bGU9ZmxhdC1zcXVhcmUpClshW2xpbnQgc3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9hY3Rpb25zL3dvcmtmbG93L3N0YXR1cy90ZWNobmljYWxseWpvc2gvcHJvdG9jLWdlbi1vcGVuYXBpL3J1bi1saW50LnlhbWw/c3R5bGU9ZmxhdC1zcXVhcmUmbGFiZWw9bGludCldKGh0dHBzOi8vZ2l0aHViLmNvbS90ZWNobmljYWxseWpvc2gvcHJvdG9jLWdlbi1vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL3J1bi1saW50LnlhbWwpClshW2dvIHJlcG9ydCBjYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS90ZWNobmljYWxseWpvc2gvcHJvdG9jLWdlbi1vcGVuYXBpP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL3RlY2huaWNhbGx5am9zaC9wcm90b2MtZ2VuLW9wZW5hcGkpCgoqKlllcyoqLCB0aGlzIGlzIF9hbm90aGVyXyBwcm90b2MgZ2VuZXJhdG9yIGZvciBPcGVuQVBJLiBJIGNyZWF0ZWQgdGhpcyBmb3IgYQpjb3VwbGUKcmVhc29ucy4uLgoKLSBJIHdhbnRlZCB0byBsZWFybiBwcm90b2MgZ2VuZXJhdGlvbiB3aXRoIGEgcmVhbC13b3JsZCBwcm9ibGVtLgotIFRoZSBvZmZpY2lhbCBnb29nbGUgb25lIHN0aWNrcyB0byBnUlBDIGFuZCBlbnZveSBzdGFuZGFyZHMuIE15IHRlYW0gYW5kIEkgdXNlCiAgVHdpcnAgYW5kIG90aGVyIFJFU1QgZnJhbWV3b3Jrcy4gX1NvbWV0aW1lcyB5b3UganVzdCB3YW50IHRvIGRlZmluZSBtb2RlbHMgYW5kCiAgYW4gQVBJIGZvciBkb2NzLl8KLSBPdGhlcnMgdHJ5IHRvIGRvIHRvbyBtdWNoIHBlciB0aGUgc3BlYyBhbmQgZmFpbCB0byBkbyB0aGUgbW9zdCBjb21tb24gdGhpbmdzCiAgd2VsbC4KCl8qKkRJU0NMQUlNRVI6IFRoaXMgd2lsbCBiZSBhIGxpbWl0ZWQgc3Vic2V0IG9mIHRoZSBPQVBJMyBzcGVjaWZpY2F0aW9uLiBOb3QKZXZlcnl0aGluZyB3aWxsIG1ha2UgaXQgaW4gaGVyZS4gV2h5PyBSZWFkIHRoZSBsYXN0IGJ1bGxldCBwb2ludCBhYm92ZS4gOikqKl8KCl9Tb21lIHBhdHRlcm5zIHdlcmUgaGVhdmlseSBpbnNwaXJlZApieSBbZ25vc3RpY10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nbm9zdGljKS5fCgojIyBJbnN0YWxsYXRpb24KCmBgYHRlcm1pbmFsCmdvIGluc3RhbGwgZ2l0aHViLmNvbS90ZWNobmljYWxseWpvc2gvcHJvdG9jLWdlbi1vcGVuYXBpQGxhdGVzdApgYGAKCiMjIE9wdGlvbnMKCnwgT3B0aW9uICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVmYXVsdCAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CnwgYHZlcnNpb25gICAgICAgICAgIHwgVGhlIHZlcnNpb24gb2YgdGhlIEFQSS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMC4wLjEgICAgICAgICAgICB8CnwgYHRpdGxlYCAgICAgICAgICAgIHwgVGhlIHRpdGxlIG9mIHRoZSBBUEkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CnwgYGRlc2NyaXB0aW9uYCAgICAgIHwgQSBkZXNjcmlwdGlvbiBvZiB0aGUgQVBJLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CnwgYGluY2x1ZGVgICAgICAgICAgIHwgQSBsaXN0IG9mIHByb3RvIHBhY2thZ2UgbmFtZXMgdG8gaW5jbHVkZSBvbmx5LiBgaWdub3JlYCBpcyByYW4gYWZ0ZXIgdGhpcyAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CnwgYGlnbm9yZWAgICAgICAgICAgIHwgQSBsaXN0IG9mIHByb3RvIHBhY2thZ2UgbmFtZXMgdG8gaWdub3JlIGRlbGltaXRlZCBieSBwaXBlcy4gICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CnwgYGRlZmF1bHRfcmVzcG9uc2VgIHwgVGhlIGRlZmF1bHQgcmVzcG9uc2UgdG8gYmUgdXNlZC48c3VwPjE8L3N1cD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CnwgYGNvbnRlbnRfdHlwZWAgICAgIHwgVGhlIGNvbnRlbnQgdHlwZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggYWxsIG9wZXJhdGlvbnMuPHN1cD4xPC9zdXA+ICAgICAgICAgICAgICAgIHwgYXBwbGljYXRpb24vanNvbiB8CnwgYGpzb25fbmFtZXNgICAgICAgIHwgVXNlIHRoZSBKU09OIG5hbWVzIHRoYXQgUHJvdG9idWYgcHJvdmlkZXMuIE90aGVyd2lzZSwgcHJvdG8gZmllbGQgbmFtZXMgYXJlIHVzZWQuIHwgZmFsc2UgICAgICAgICAgICB8CnwgYGpzb25fb3V0YCAgICAgICAgIHwgQ3JlYXRlIGEgSlNPTiBmaWxlIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgWUFNTC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZmFsc2UgICAgICAgICAgICB8CnwgYGhvc3RgICAgICAgICAgICAgIHwgVGhlIGhvc3QgdG8gYmUgdXNlZCBmb3IgYWxsIG9wZXJhdGlvbnMuPHN1cD4xPC9zdXA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CnwgYGZpbGVuYW1lYCAgICAgICAgIHwgU3BlY2lmeSB0aGUgZmlsZW5hbWUgdG8gb3V0cHV0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3BlbmFwaS55YW1sICAgICB8Cgo8c3VwPjE8L3N1cD4gX0NhbiBiZSBvdmVycmlkZGVuIG9uIGEgZmlsZSwgc2VydmljZSwgb3IgbWV0aG9kLl8KCiMjIEJ1aWxkIEV4YW1wbGVzCgpCZWxvdyBhcmUgc29tZSBiYXNpYyBleGFtcGxlcyBvbiBob3cgdG8gdXNlIHRoaXMgZ2VuZXJhdG9yLgoKIyMjIFByb3RvYwoKYGBgYmFzaApwcm90b2MgXAogIC0tb3BlbmFwaV9vdXQ9LiBcCiAgLS1vcGVuYXBpX29wdD12ZXJzaW9uPTEuMC4wIFwKICAtLW9wZW5hcGlfb3B0PXRpdGxlPSJNeSBBd2Vzb21lIEFQSSIgXAogIGFwaS9zb21lX3NlcnZpY2UucHJvdG8KYGBgCgojIyMgQnVmCgoqKmJ1Zi55YW1sKioKCmBgYHlhbWwKIyAuLi4gb3RoZXIgdGhpbmdzCmRlcHM6CiAgLSBidWYuYnVpbGQvdGVjaG5pY2FsbHlqb3NoL3Byb3RvYy1nZW4tb3BlbmFwaQpgYGAKCioqYnVmLmdlbi55YW1sKioKCmBgYHlhbWwKcGx1Z2luczoKICAtIG5hbWU6IGdvCiAgICBvdXQ6IGFwaQogICAgb3B0OgogICAgICAtIHBhdGhzPXNvdXJjZV9yZWxhdGl2ZQogIC0gbmFtZTogb3BlbmFwaQogICAgc3RyYXRlZ3k6IGFsbCAjIGltcG9ydGFudCBzbyBhbGwgZmlsZXMgYXJlIHJhbiBpbiB0aGUgc2FtZSBnZW5lcmF0aW9uLgogICAgb3V0OiBhcGkKICAgIG9wdDoKICAgICAgLSB0aXRsZT1NeSBBd2Vzb21lIEFQSQogICAgICAtIGRlc2NyaXB0aW9uPUxvb2sgaG93IGF3ZXNvbWUgbXkgQVBJIGlzIQogICAgICAtIGlnbm9yZT1tb2R1bGUudjF8bW9kdWxlLnYyCiAgICAgIC0gZGVmYXVsdF9yZXNwb25zZT1Tb21lRXJyb3JPYmplY3QKYGBgCgojIyBCYXNpYyBVc2FnZSBFeGFtcGxlCgpgYGBwcm90b2J1ZgpzeW50YXggPSAicHJvdG8zIjsKCmltcG9ydCAib2FwaS92MS9maWVsZC5wcm90byI7CmltcG9ydCAib2FwaS92MS9maWxlLnByb3RvIjsKaW1wb3J0ICJvYXBpL3YxL21ldGhvZC5wcm90byI7CmltcG9ydCAib2FwaS92MS9zZXJ2aWNlLnByb3RvIjsKCm9wdGlvbiAob2FwaS52MS5maWxlKSA9IHsKICBzZXJ2ZXJzIHsKICAgIHVybDogIm15YXdlc29tZWFwaS5jb20iCiAgfQoKICBzZWN1cml0eV9zY2hlbWVzOiB7CiAgICBuYW1lOiAiYmVhcmVyX2F1dGgiCiAgICBzY2hlbWU6IHsKICAgICAgdHlwZTogImh0dHAiCiAgICAgIHNjaGVtZTogImJlYXJlciIKICAgICAgYmVhcmVyX2Zvcm1hdDogIkpXVCIKICAgIH0KICB9CgogIC8vIFNpbmNlIHRoaXMgaXMgYXQgdGhlIGZpbGUgbGV2ZWwsIGl0J3MgYXBwbGllZCB0byBhbGwuCiAgc2VjdXJpdHk6IHsKICAgIG5hbWU6ICJiZWFyZXJfYXV0aCIKICAgIHNjb3BlczogWyJyZWFkOnJlc291cmNlIl0KICB9Cn07CgpzZXJ2aWNlIE15U2VydmljZSB7CiAgb3B0aW9uIChvYXBpLnYxLnNlcnZpY2UpID0gewogICAgcHJlZml4OiAiL3YxIgogICAgeF9kaXNwbGF5X25hbWU6ICJNeSBTZXJ2aWNlIgogIH07CgogIHJwYyBDcmVhdGVTb21ldGhpbmcgKENyZWF0ZVNvbWV0aGluZ1JlcXVlc3QpIHJldHVybnMgKENyZWF0ZVNvbWV0aGluZ1Jlc3BvbnNlKSB7CiAgICBvcHRpb24gKG9hcGkudjEubWV0aG9kKSA9IHsKICAgICAgcG9zdDogImNyZWF0ZS1zb21ldGhpbmciCiAgICAgIHN1bW1hcnk6ICJDcmVhdGUgU29tZXRoaW5nIgogICAgICBzdGF0dXM6IDIwMQogICAgfTsKICB9Cn0KCm1lc3NhZ2UgQ3JlYXRlU29tZXRoaW5nUmVxdWVzdCB7CiAgLy8gVGhlIG5hbWUgb2Ygc29tZXRoaW5nLgogIC8vIEV4YW1wbGU6IHNvbWV0aGluZy1hd2Vzb21lCiAgc3RyaW5nIG5hbWUgPSAxIFsob2FwaS52MS5yZXF1aXJlZCkgPSB0cnVlXTsKfQoKbWVzc2FnZSBDcmVhdGVTb21ldGhpbmdSZXNwb25zZSB7CiAgLy8gVGhlIElEIG9mIHNvbWV0aGluZy4KICBzdHJpbmcgaWQgPSAxOwogIHN0cmluZyBuYW1lID0gMjsKfQpgYGAKCiMjIEZlYXR1cmVzCgo+ICoqTm90ZSoqCj4KPiBEZWZpbmluZyBmZWF0dXJlcyBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEkgYWltIHRvIGV4cGxhaW4gYWxsIHRoYXQncyBwb3NzaWJsZQo+IHRoZSBiZXN0IEkgY2FuLgoKPGRldGFpbHM+CjxzdW1tYXJ5PjxoMz5TZXJ2ZXIgZGVmaW5pdGlvbnM8L2gzPjwvc3VtbWFyeT4KCllvdSBjYW4gZGVmaW5lIHNlcnZlcnMgYXQgdGhlIGZpbGUsIHNlcnZpY2UsIG9yIG1ldGhvZCBsZXZlbC4gRWFjaCBvbmUgb3ZlcnJpZGVzCnRoZSBwcmV2aW91cy4gVGhpcyBhbGxvd3MgZm9yIG1vcmUgYWR2YW5jZWQgY29tcG9zaXRpb24uCgoqKkV4YW1wbGU6KioKCmBgYHByb3RvYnVmCnN5bnRheCA9ICJwcm90bzMiOwoKaW1wb3J0ICJnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8iOwppbXBvcnQgIm9hcGkvdjEvZmlsZS5wcm90byI7CmltcG9ydCAib2FwaS92MS9tZXRob2QucHJvdG8iOwppbXBvcnQgIm9hcGkvdjEvc2VydmljZS5wcm90byI7CgoKb3B0aW9uIChvYXBpLnYxLmZpbGUpID0gewogIHNlcnZlcnMgewogICAgdXJsOiAibXlhd2Vzb21lYXBpLmNvbSIgLy8gZmlsZS1kZWZpbmVkIGZvciBhbGwgc2VydmljZXMgYW5kIG1ldGhvZHMKICB9Cn07CgpzZXJ2aWNlIE15U2VydmljZSB7CiAgb3B0aW9uIChvYXBpLnYxLnNlcnZpY2UpID0gewogICAgc2VydmVycyB7CiAgICAgIHVybDogIm15YXdlc29tZWFwaTIuY29tIiAvLyBvdmVycmlkZXMgZmlsZS1kZWZpbmVkCiAgICB9CiAgfTsKCiAgcnBjIENyZWF0ZVNvbWV0aGluZyAoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpIHsKICAgIG9wdGlvbiAob2FwaS52MS5tZXRob2QpID0gewogICAgICBzZXJ2ZXJzIHsKICAgICAgICB1cmw6ICJteWF3ZXNlb21lYXBpMy5jb20iIC8vIG92ZXJyaWRlcyBzZXJ2aWNlLWRlZmluZWQKICAgICAgfQogICAgfTsKICB9Cn0KYGBgCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KPHN1bW1hcnk+PGgzPlNlcnZpY2UgUHJlZml4ZXM8L2gzPjwvc3VtbWFyeT4KCkVhY2ggc2VydmljZSBjYW4gaGF2ZSBhIHBhdGggcHJlZml4IHNldCBmb3IgYWxsIG1ldGhvZHMgdG8gaW5oZXJpdC4gVGhpcyBpcwp1c2VmdWwgd2hlbiB2ZXJzaW9uaW5nIHlvdXIgQVBJIG9yIGlmIHlvdSBoYXZlIGEgcGFyYW1ldGVyIHRoYXQgaXMgZGVmaW5lZCBmb3IKZWFjaCBtZXRob2Qgcm91dGUuCgpfKipZb3UgY2FuIG92ZXJyaWRlIHRoZSBlbnRpcmUgcGF0aCBpbiB0aGUgbWV0aG9kIGJ5IHN0YXJ0aW5nIHRoZSBwYXRoIG91dCB3aXRoCmEgYC9gLioqXwoKKipFeGFtcGxlOioqCgpgYGBwcm90b2J1ZgpzeW50YXggPSAicHJvdG8zIjsKCmltcG9ydCAiZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvIjsKaW1wb3J0ICJvYXBpL3YxL2ZpbGUucHJvdG8iOwppbXBvcnQgIm9hcGkvdjEvbWV0aG9kLnByb3RvIjsKaW1wb3J0ICJvYXBpL3YxL3NlcnZpY2UucHJvdG8iOwoKb3B0aW9uIChvYXBpLnYxLmZpbGUpID0gewogIHNlcnZlcnMgewogICAgdXJsOiAibXlhd2Vzb21lYXBpLmNvbSIKICB9Cn07CgpzZXJ2aWNlIE15U2VydmljZSB7CiAgb3B0aW9uIChvYXBpLnYxLnNlcnZpY2UpID0gewogICAgcHJlZml4OiAiL3YxIgogIH07CgogIHJwYyBDcmVhdGVTb21ldGhpbmcgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSkgcmV0dXJucyAoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSB7CiAgICBvcHRpb24gKG9hcGkudjEubWV0aG9kKSA9IHsKICAgICAgcG9zdDogImNyZWF0ZSIgLy8gYmVjb21lcyAvdjEvY3JlYXRlCiAgICB9OwogIH0KCiAgcnBjIE92ZXJyaWRlU29tZXRoaW5nIChnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSkgewogICAgb3B0aW9uIChvYXBpLnYxLm1ldGhvZCkgPSB7CiAgICAgIGdldDogIi9jcmVhdGUiIC8vIGJlY29tZXMgL2NyZWF0ZQogICAgfTsKICB9Cn0KYGBgCgo8L2RldGFpbHM+CgojIyBGZWF0dXJlcyBJbiBQcm9ncmVzcwoKLSBbRW51bV0oaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvdW5kZXJzdGFuZGluZy1qc29uLXNjaGVtYS9yZWZlcmVuY2UvZ2VuZXJpYy5odG1sI2VudW1lcmF0ZWQtdmFsdWVzKQogIHJlcXVpcmVtZW50cyBvbiBmaWVsZHMKCiMjIENvbnRyaWJ1dGluZwoKQ29taW5nLi4uIFJpZ2h0IG5vdyBJIHByZWZlciB0aGF0IGl0J3MganVzdCBtZSB1bnRpbCBJIGdldCBhIHNvbGlkIGhvbGQgb24KZ2VuZXJhdG9yIHBhdHRlcm5zIGFuZCB0aGUgcGFja2FnZSBpcyBzdGFibGUuIEknbSBmdWxseSBvcGVuIHRvIGFueSBzdWdnZXN0aW9ucwp0aG91Z2ghCg== readmeEtag: '"faaac637ad209ec4e8099ce21780e9257288cb8d"' readmeLastModified: Tue, 30 Apr 2024 21:36:05 GMT repositoryId: 580132646 description: OpenAPI generation from Protobuf created: '2022-12-19T19:57:16Z' updated: '2024-04-30T21:36:12Z' language: Go archived: false stars: 6 watchers: 2 forks: 3 owner: technicallyjosh logo: https://avatars.githubusercontent.com/u/8335467?v=4 repoEtag: '"5e585e87de21ee317f7985ca277b6c553860a583ee1084920c7f6d0deb16d554"' repoLastModified: Tue, 30 Apr 2024 21:36:12 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/stackql/stackql-registry-docs v3: true id: 9f3eecc809978e3f45543f2ae1e80852 repositoryMetadata: base64Readme: >- IyBzdGFja3FsLXJlZ2lzdHJ5LWRvY3MKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBkb2N1bWVudGF0aW9uIGZvciBTdGFja1FMIHByb3ZpZGVycywgd2hpY2ggaXMgcHVibGlzaGVkIHRvIFtyZWdpc3RyeS5zdGFja3FsLmlvXShodHRwczovL3JlZ2lzdHJ5LnN0YWNrcWwuaW8pLiAgVGhpcyB3ZWJzaXRlIGlzIGJ1aWx0IHVzaW5nIFtEb2N1c2F1cnVzIDJdKGh0dHBzOi8vZG9jdXNhdXJ1cy5pby8pLCBhIG1vZGVybiBzdGF0aWMgd2Vic2l0ZSBnZW5lcmF0b3IuICAKCiMjIEJ1aWxkIGFuZCBEZXBsb3kgU3RhdHVzCgp8IFR5cGUgfCBTdGF0dXMgfCBMaW5rIHwKfCAtLS0gfCAtLS0gfCAtLSB8CnwgR2l0SHViIEFjdGlvbnMgQnVpbGQgfCBbIVtHaXRIdWIgQWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1yZWdpc3RyeS1kb2NzL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLWRvY3MueWFtbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsLXJlZ2lzdHJ5LWRvY3MvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQtZG9jcy55YW1sKSB8IFtzdGFja3FsLXJlZ2lzdHJ5LWRvY3MvYWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1yZWdpc3RyeS1kb2NzL2FjdGlvbnMpIHwKfCBOZXRsaWZ5IERlcGxveSBCYXNlIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNzVmODM4YTktNzllYS00MWRjLTk2ZjktYTQwZGZmNTBjZmNhL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLXJlZ2lzdHJ5LWRvY3MvZGVwbG95cykgfCBbcmVnaXN0cnkuc3RhY2txbC5pb10oaHR0cHM6Ly9yZWdpc3RyeS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgQVdTIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvZWYxNjFjNGEtNjNlYS00YmNjLWE1Y2ItNWVhZWQzMGVkNTVmL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWF3cy1kb2NzL2RlcGxveXMpIHwgW2F3cy1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vYXdzLWRvY3Muc3RhY2txbC5pbyk8YnIvPlthd3Muc3RhY2txbC5pb10oaHR0cHM6Ly9hd3Muc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEF6dXJlIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNWUyY2NlMmQtM2M1MS00NGRmLWJiMTQtNGVlOWM2MjZjYTAyL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWF6dXJlLWRvY3MvZGVwbG95cykgfCBbYXp1cmUtZG9jcy5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLWRvY3Muc3RhY2txbC5pbyk8YnIvPlthenVyZS5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBBenVyZSBFeHRyYXMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy8yMThkZmM1MC1lMWVmLTQ3NDItYmQ5NS0xOTljNjdmNGVhOTUvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtYXp1cmUtZXh0cmFzLWRvY3MvZGVwbG95cykgfCBbYXp1cmUtZXh0cmFzLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9henVyZS1leHRyYXMtZG9jcy5zdGFja3FsLmlvKTxici8+W2F6dXJlLWV4dHJhcy5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLWV4dHJhcy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgRmlyZWJhc2UgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy82ZDhmZWM0Mi1mYmEyLTRkNjItYWZlZi0zMGE4MjE4NjMzMTQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZmlyZWJhc2UtZG9jcy9kZXBsb3lzKSB8IFtmaXJlYmFzZS1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vZmlyZWJhc2UtZG9jcy5zdGFja3FsLmlvKTxici8+W2ZpcmViYXNlLnN0YWNrcWwuaW9dKGh0dHBzOi8vZmlyZWJhc2Uuc3RhY2txbC5pbykgfCAgCnwgTmV0bGlmeSBEZXBsb3kgR2l0SHViIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNjI1ZDdkMzgtMzdhOS00MjI0LWE5YzgtNmVlNTgxNDFiMTA5L2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWdpdGh1Yi1kb2NzL2RlcGxveXMpIHwgW2dpdGh1Yi1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vZ2l0aHViLWRvY3Muc3RhY2txbC5pbyk8YnIvPltnaXRodWIuc3RhY2txbC5pb10oaHR0cHM6Ly9naXRodWIuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEdvb2dsZSB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzLzAyOGUwZDMxLTYwNGItNDg1Mi04YjliLTc3YTcxZWFkNmI5My9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1nb29nbGUtZG9jcy9kZXBsb3lzKSB8IFtnb29nbGUtZG9jcy5zdGFja3FsLmlvXShodHRwczovL2dvb2dsZS1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bZ29vZ2xlLnN0YWNrcWwuaW9dKGh0dHBzOi8vZ29vZ2xlLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBLOFMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy9kMTFlYTZjNS03YTQzLTQyZDUtYWM3Ni01NTUxMTIyOTViOWIvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtazhzLWRvY3MvZGVwbG95cykgfCBbazhzLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9rOHMtZG9jcy5zdGFja3FsLmlvKTxici8+W2s4cy5zdGFja3FsLmlvXShodHRwczovL2s4cy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgTmV0bGlmeSB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzLzdkODFlNTlmLWUxZGUtNDgwZi1hNmQ1LTVhNTJmODNkZWI0MC9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1uZXRsaWZ5LWRvY3MvZGVwbG95cykgfCBbbmV0bGlmeS1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vbmV0bGlmeS1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bbmV0bGlmeS5zdGFja3FsLmlvXShodHRwczovL25ldGxpZnkuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IE9rdGEgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy84M2QzNzg4ZC1iYmNmLTQwNjMtYTJlNy02NTU3N2UzZjEzZjUvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtb2t0YS1kb2NzL2RlcGxveXMpIHwgW29rdGEtZG9jcy5zdGFja3FsLmlvXShodHRwczovL29rdGEtZG9jcy5zdGFja3FsLmlvKTxici8+W29rdGEuc3RhY2txbC5pb10oaHR0cHM6Ly9va3RhLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBTdW1vbG9naWMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy82Yzg2NDc3NC04NDk0LTQxYmUtOGUyYy00NDFiNmQxZTM2OGMvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtc3Vtb2xvZ2ljLWRvY3MvZGVwbG95cykgfCBbc3Vtb2xvZ2ljLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9zdW1vbG9naWMtZG9jcy5zdGFja3FsLmlvKTxici8+W3N1bW9sb2dpYy5zdGFja3FsLmlvXShodHRwczovL3N1bW9sb2dpYy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgRGlnaXRhbCBPY2VhbiB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzL2ViY2FiNGVmLWQ2MTAtNDg4OC1hNDJmLTMxNDk0MmQ2OGMzMi9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1kaWdpdGFsb2NlYW4tZG9jcy9kZXBsb3lzKSB8IFtkaWdpdGFsb2NlYW4tZG9jcy5zdGFja3FsLmlvXShodHRwczovL2RpZ2l0YWxvY2Vhbi1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bZGlnaXRhbG9jZWFuLnN0YWNrcWwuaW9dKGh0dHBzOi8vZGlnaXRhbG9jZWFuLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBMaW5vZGUgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy9kMGI1NzNiZS0zZGZiLTQ5NWMtYTBjZS00NzhlYzdhY2VjZDgvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtbGlub2RlLWRvY3MvZGVwbG95cykgfCBbbGlub2RlLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9saW5vZGUtZG9jcy5zdGFja3FsLmlvKTxici8+W2xpbm9kZS5zdGFja3FsLmlvXShodHRwczovL2xpbm9kZS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgVmVyY2VsIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvOTFjYzMxYjctMGMyNS00NDNmLWJiMmYtNzE5MjFlZjcwODRlL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLXZlcmNlbC1kb2NzL2RlcGxveXMpIHwgW3ZlcmNlbC1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vdmVyY2VsLWRvY3Muc3RhY2txbC5pbyk8YnIvPlt2ZXJjZWwuc3RhY2txbC5pb10oaHR0cHM6Ly92ZXJjZWwuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEdvZGFkZHkgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy84MjMyNDU4ZS04ZTRmLTQ3ZjItODFiZi1iZDRhYWQ4YjI1ZDYvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZ29kYWRkeS1kb2NzL2RlcGxveXMpIHwgW2dvZGFkZHktZG9jcy5zdGFja3FsLmlvXShodHRwczovL2dvZGFkZHktZG9jcy5zdGFja3FsLmlvKTxici8+W2dvZGFkZHkuc3RhY2txbC5pb10oaHR0cHM6Ly9nb2RhZGR5LnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBQYWdlckR1dHkgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy83NmM4NzUyYS0zMmQ4LTQ4ZTItODFhZC0yOWI5ZThmNTNlZGQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtcGFnZXJkdXR5LWRvY3MvZGVwbG95cykgfCBbcGFnZXJkdXR5LWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9wYWdlcmR1dHktZG9jcy5zdGFja3FsLmlvKTxici8+W3BhZ2VyZHV0eS5zdGFja3FsLmlvXShodHRwczovL3BhZ2VyZHV0eS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgSG9tZWJyZXcgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy8yMzQzZDM0ZC01MDYxLTRkODMtOThlNi00NzVmYjIxNTBjOTQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtaG9tZWJyZXctZG9jcy9kZXBsb3lzKSB8IFtob21lYnJldy1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vaG9tZWJyZXctZG9jcy5zdGFja3FsLmlvKTxici8+W2hvbWVicmV3LnN0YWNrcWwuaW9dKGh0dHBzOi8vaG9tZWJyZXcuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IERhdGFkb2cgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy85ZTc2MTIyZC0wOWJkLTQ5MzgtYTUwZi0zYjQxOTZlOTRmMGMvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZGF0YWRvZy1kb2NzL2RlcGxveXMpIHwgW2RhdGFkb2ctZG9jcy5zdGFja3FsLmlvXShodHRwczovL2RhdGFkb2ctZG9jcy5zdGFja3FsLmlvKTxici8+W2RhdGFkb2cuc3RhY2txbC5pb10oaHR0cHM6Ly9kYXRhZG9nLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBBenVyZSBJU1YgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy8zNWZjODQwYy0wNDk0LTQ2MmYtOWIzZi1jYmQzNDE4YTNjNzgvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtYXp1cmUtaXN2LWRvY3MvZGVwbG95cykgfCBbYXp1cmUtaXN2LWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9henVyZS1pc3YtZG9jcy5zdGFja3FsLmlvKTxici8+W2F6dXJlLWlzdi5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLWlzdi5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgQXp1cmUgU3RhY2sgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy81M2FiY2IyMC0wMTk0LTQxZGQtYjQ2Ni00ZDkzM2NmZmZjYWQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtYXp1cmUtc3RhY2stZG9jcy9kZXBsb3lzKSB8IFthenVyZS1zdGFjay1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vYXp1cmUtc3RhY2stZG9jcy5zdGFja3FsLmlvKTxici8+W2F6dXJlLXN0YWNrLnN0YWNrcWwuaW9dKGh0dHBzOi8vYXp1cmUtc3RhY2suc3RhY2txbC5pbykgfAoKCiMjIEFkZGluZyBEb2NzIGZvciBhIE5ldyBQcm92aWRlcgoKQWRkaW5nIGRvY3MgZm9yIGEgbmV3IHByb3ZpZGVyIHJlcXVpcmVzIGNyZWF0aW5nIGEgbmV3IHdlYiBwcm9wZXJ0eSAoc3ViZG9tYWluKSBhbmQgd2lsbCBmb3JjZSBhbiB1cGRhdGUgdG8gdGhlIHJvb3QvYmFzZSBzaXRlIGFuZCBhbGwgb3RoZXIgcHJvdmlkZXJzLiAgVGhlIHN0ZXBzIGFyZTogIAoKLSBbIF0gdXBkYXRlIGBzY3JpcHRzL2RvY2dlbi9wcm92aWRlcl9kYXRhLnB5YCB3aXRoIG1ldGFkYXRhIGZvciBuZXcgcHJvdmlkZXIKLSBbIF0gZ2VuZXJhdGUgZG9jcyBmb3IgcHJvdmlkZXIgdXNpbmcgYGNkIHNjcmlwdHM7IHNoIGRvY2dlbi5zaCB7cHJvdmlkZXJ9YAotIFsgXSBwdWJsaXNoIGRvY3MgZm9yIHByb3ZpZGVyIHVzaW5nIGBjZCBzY3JpcHRzOyBzaCBwdWJsaXNoLnNoIHtwcm92aWRlcn1gCi0gW3hdIGFkZCB0aGUgbmV3IHByb3ZpZGVyIGRvY3MgdG8gYGRvY3Mve3Byb3ZpZGVyfS1kb2NzYCAoZm9sbG93aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgb2YgZXhpc3RpbmcgcHJvdmlkZXJzKSAoZG9uZSBhdXRvbWF0aWNhbGx5IGJ5IGBzY3JpcHRzL3B1Ymxpc2guc2hgKQotIFt4XSB1cGRhdGUgZnJvbnRtYXR0ZXIgaW4gdGhlIGBpbmRleC5tZGAgYXQgdGhlIHJvb3Qgb2YgdGhlIG5ldyBwcm92aWRlcnMgZG9jcywgc2V0IGBzbHVnYCB0byBgL3Byb3ZpZGVycy97cHJvdmlkZXJ9YCBhbmQgYGlkYCB0byBge3Byb3ZpZGVyfS1kb2NgIChkb25lIGF1dG9tYXRpY2FsbHkgYnkgYHNjcmlwdHMvZG9jZ2VuLnNoYCkKLSBbeF0gdXBkYXRlIGBzdGFja3FsLXByb3ZpZGVyLXJlZ2lzdHJ5Lm1keGAgaW4gdGhlIHJvb3Qgb2YgdGhlIG5ldyBwcm92aWRlciB0byBhZGQgdGhlIGBjdXJyZW50UHJvdmlkZXJgIHByb3AsIGUuZy4gYDxSZWdpc3RyeVBhZ2UgY3VycmVudFByb3ZpZGVyPSJva3RhIiAvPmAgKGRvbmUgYXV0b21hdGljYWxseSBieSBgc2NyaXB0cy9kb2NnZW4uc2hgKQotIFsgXSBjcmVhdGUgYSBuZXcgbmV0bGlmeSBzaXRlIChgc3RhY2txbC17cHJvdmlkZXJ9LWRvY3NgKSAtIHVzZSBgeWFybiBidWlsZDp7cHJvdmlkZXJ9YCBhcyB0aGUgYGJ1aWxkIGNvbW1hbmRgCi0gWyBdIHN0b3AgYXV0b21hdGljIGJ1aWxkcyBmb3Igc2l0ZSBpbiBOZXRsaWZ5Ci0gWyBdIGFkZCBgTkVUTElGWWAgcmVjb3JkIGluIE5ldGxpZnkgRE5TIChtYXBwaW5nIGB7cHJvdmlkZXJ9LWRvY3Muc3RhY2txbC5pb2AgKFByaW1hcnkgRG9tYWluKSBhbmQgYHtwcm92aWRlcn0uc3RhY2txbC5pb2AgKERvbWFpbiBBbGlhcykgdG8gYHN0YWNrcWwte3Byb3ZpZGVyfS1kb2NzLm5ldGxpZnkuYXBwYCksIHNlbGVjdCBgRm9yY2UgSFRUUFNgCi0gWyBdIGFkZCBHaXRIdWIgQWN0aW9ucyBzZWNyZXQgZm9yIG5ldGxpZnkgc2l0ZSBpZCAtIGBORVRMSUZZX1NJVEVfSURfe1BST1ZJREVSfWAKLSBbIF0gYWRkIHRoZSBOZXRsaWZ5IGRlcGxveSBzdGF0dXMgYmFkZ2UgdG8gdGhlIHRhYmxlIGluIHRoaXMgYFJFQURNRWAgKHNlZSBhYm92ZSkKLSBbIF0gdXBkYXRlIHRoZSBgcHJvdmlkZXJzYCBhcnJheSBpbiBgc2lkZWJhcnMuanNgIHdpdGggdGhlIG5ldyBwcm92aWRlcgotIFsgXSB1cGRhdGUgdGhlIGBwcm92aWRlcnNgIGFycmF5IGBzcmMvY29uZmlncy9wcm92aWRlcnMudHNgIHdpdGggdGhlIG5ldyBwcm92aWRlcgotIFsgXSB1cGRhdGUgYHBhY2thZ2UuanNvbmAgd2l0aCBuZXcgYHN0YXJ0YCBhbmQgYGJ1aWxkYCBzY3JpcHRzCi0gWyBdIHVwZGF0ZSBgYWxsUHJvdmlkZXJzYCBpbiBgY2ktc2NyaXB0cy9nZXQtcHJvdmlkZXJzLXRvLWRlcGxveS5qc2Agd2l0aCB0aGUgbmV3IHByb3ZpZGVyCi0gWyBdIGFkZCB0aGUgcm9vdCBzaXRlIHJlZGlyZWN0cyBmb3IgcHJvdmlkZXIgdmFuaXR5IHVybHMgdG8gYC5naXRodWIvd29ya2Zsb3dzL2J1aWxkLWRvY3MueWFtbGAgdG8gdGhlIGBhZGQgcmVkaXJlY3RzIHRvIHJvb3Qgc2l0ZWAgc3RlcCBvZiB0aGUgYGRlcGxveS10by1uZXRsaWZ5YCBqb2IKCiMjIFVwZGF0aW5nIEV4aXN0aW5nIFByb3ZpZGVyIERvY3MKClRvIHVwZGF0ZSB0aGUgZG9jcyBmb3IgYW4gZXhpc3RpbmcgcHJvdmlkZXIsIGVkaXQgdGhlIGNvcnJlc3BvbmRpbmcgbWFya2Rvd24gZmlsZSBvciBmaWxlcyBpbiB0aGUgYHtwcm92aWRlcn0tZG9jc2AgZGlyZWN0b3J5LiAgUmFpc2UgYSBwdWxsIHJlcXVlc3QgaW50byB0aGUgYG1haW5gIGJyYW5jaC4gIE9uY2UgbWVyZ2VkLCB0aGUgdXBkYXRlZCBkb2NzIHdpbGwgYmUgYXV0b21hdGljYWxseSBwdWJsaXNoZWQuICAKCiMjIyBSdW5uaW5nIExvY2FsbHkKCkluc3RhbGwgcGFja2FnZXM6ICAKCmBgYGJhc2gKeWFybgpgYGAKClRvIGJ1aWxkIGEgbWljcm9zaXRlIGxvY2FsbHksIHVzZSBgeWFybiBidWlsZDp7cHJvdmlkZXJ9YC4gIEZvciBleGFtcGxlLCB0byBidWlsZCB0aGUgQVdTIG1pY3Jvc2l0ZSBsb2NhbGx5LCBydW46CgpgYGAKZXhwb3J0IE5PREVfT1BUSU9OUz0tLW1heF9vbGRfc3BhY2Vfc2l6ZT00MDk2Cnlhcm4gcnVuIGJ1aWxkOmF3cwpgYGAKClRvIHJ1biBhIG1pY3Jvc2l0ZSBsb2NhbGx5LCB1c2UgYHlhcm4gc3RhcnQ6e3Byb3ZpZGVyfWAuICBGb3IgZXhhbXBsZSwgdG8gcnVuIHRoZSBBV1MgbWljcm9zaXRlIGxvY2FsbHksIHJ1bjogIAoKYGBgYmFzaAp5YXJuIHN0YXJ0OmF3cwpgYGA= readmeEtag: '"b59adab2d98e10a9f2223ad3564f22b566ec0fe1"' readmeLastModified: Fri, 05 Jul 2024 11:32:47 GMT repositoryId: 566164202 description: >- StackQL provider documentation for cloud and SaaS providers available in the StackQL Provider Registry, built with Docusaurus. created: '2022-11-15T04:58:21Z' updated: '2024-07-05T11:32:50Z' language: CSS archived: false stars: 6 watchers: 4 forks: 0 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 repoEtag: '"f5a6de50875e04d12613b8a95084c4e55e0e1ef5c0482089929b19d9d6606267"' repoLastModified: Fri, 05 Jul 2024 11:32:50 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/criteria-labs/criteria-api-tools v3: true id: 73352c1e6b52001db4a01daf9eb0c83e repositoryMetadata: repositoryId: 585077559 description: Tools for working with the JSON Schema and OpenAPI specifications. created: '2023-01-04T09:03:35Z' updated: '2024-08-14T04:49:09Z' language: TypeScript archived: false stars: 6 watchers: 1 forks: 2 owner: criteria-labs logo: https://avatars.githubusercontent.com/u/88253836?v=4 license: MIT repoEtag: '"4b8a67a2442b76a4eb4dba56d1b6666128ba41853cb37da73c4e03ee10b8c19e"' repoLastModified: Wed, 14 Aug 2024 04:49:09 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/mermade/swaggerplusplus v3: true repositoryMetadata: base64Readme: >- IyBzd2FnZ2VycGx1c3BsdXMKCiMjIyBBIHByb3Bvc2FsIGZvciB0cmFuc2l0aW9uaW5nIGJldHdlZW4gU3dhZ2dlciAyLjAgYW5kIE9wZW5BUEkgMy4wLngKCiMjIyMgVmVyc2lvbiAxLjAuMC1yYzQKClRoZSBrZXkgd29yZHMgIk1VU1QiLCAiTVVTVCBOT1QiLCAiUkVRVUlSRUQiLCAiU0hBTEwiLCAiU0hBTEwgTk9UIiwgIlNIT1VMRCIsICJTSE9VTEQgTk9UIiwgIlJFQ09NTUVOREVEIiwgIk5PVCBSRUNPTU1FTkRFRCIsICJNQVkiLCBhbmQgIk9QVElPTkFMIiBpbiB0aGlzIGRvY3VtZW50IGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBkZXNjcmliZWQgaW4gW0JDUCAxNF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2JjcDE0KSBbUkZDMjExOV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzIxMTkpIFtSRkM4MTc0XShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODE3NCkgd2hlbiwgYW5kIG9ubHkgd2hlbiwgdGhleSBhcHBlYXIgaW4gYWxsIGNhcGl0YWxzLCBhcyBzaG93biBoZXJlLgoKVG8gYWlkIHRoZSB0cmFuc2l0aW9uIGJldHdlZW4gU3dhZ2dlciAyLjAgYW5kIE9wZW5BUEkgMy4wLngsIGl0IGlzIHByb3Bvc2VkIHRvIGJhY2stcG9ydCB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIGZyb20gdGhlIE9wZW5BUEkgMy4wLjAgc3BlY2lmaWNhdGlvbiAoY3VycmVudGx5IHZlcnNpb24gMy4wLjApIGFzIFtzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCN2ZW5kb3JFeHRlbnNpb25zKSAoZm9ybWVybHkga25vd24gYXMgdmVuZG9yIGV4dGVuc2lvbnMpLgoKVG9vbGluZyBNQVkgbWFrZSB1c2Ugb2YgdGhlc2UgZmVhdHVyZXMgbm93LCB3aXRoIG1pbmltYWwgd29yayByZXF1aXJlZCB0byBzdXBwb3J0IHRoZW0gaW4gT3BlbkFQSSAzLjAueCwgZGVmaW5pdGlvbiBhdXRob3JzIE1BWSBhbHNvIHVzZSB0aGVzZSBmZWF0dXJlcywga25vd2luZyB0aGVpciBBUEkgZGVmaW5pdGlvbiBjYW4gYmUgbG9zc2xlc3NseSBjb252ZXJ0ZWQgZnJvbSAqKnN3YWdnZXJwbHVzcGx1cyoqIHRvIE9wZW5BUEkgMy4wLnggYnkgYW55ICoqc3dhZ2dlcnBsdXNwbHVzKiotY29tcGF0aWJsZSBjb252ZXJ0ZXIuCgojIyBGZWF0dXJlcwoKUGF0aHxWZXJzaW9uIDMuMC54IE9iamVjdHxOZXcgRXh0ZW5zaW9ufFR5cGV8RGVzY3JpcHRpb24KLS0tfC0tLXwtLS18LS0tfC0tLXwKIy98c2VydmVyc3x4LXNlcnZlcnN8W1tTZXJ2ZXIgT2JqZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjc2VydmVyLW9iamVjdCldfFdoZW4gY29udmVydGluZyB0byBPcGVuQVBJIDMuMC54LCB0aGlzIGFycmF5IGlzIHVzZWQgaW4gcGxhY2Ugb2YgYW55IGBzZXJ2ZXJzYCBhcnJheSBjb252ZXJ0ZWQgZnJvbSBTd2FnZ2VyIDIuMCBtZXRhZGF0YQojL3BhdGhzL3tbUGF0aCBJdGVtXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQjcGF0aC1pdGVtLW9iamVjdCl9fHNlcnZlcnN8eC1zZXJ2ZXJzfFtbU2VydmVyIE9iamVjdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI3NlcnZlci1vYmplY3QpXXwKIy9wYXRocy97W1BhdGggSXRlbV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI3BhdGgtaXRlbS1vYmplY3QpfS97W29wZXJhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI29wZXJhdGlvbi1vYmplY3QpfXxzZXJ2ZXJzfHgtc2VydmVyc3xbW1NlcnZlciBPYmplY3RzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCNzZXJ2ZXItb2JqZWN0KV18CiMvcGF0aHMve1tQYXRoIEl0ZW1dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNwYXRoLWl0ZW0tb2JqZWN0KX0ve1tPcGVyYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNvcGVyYXRpb24tb2JqZWN0KX18dHJhY2V8eC10cmFjZXxbVjIgT3BlcmF0aW9uIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI29wZXJhdGlvbi1vYmplY3QpfFRoaXMgTVVTVCBiZSBhIFN3YWdnZXIgMi4wIE9wZXJhdGlvbiBPYmplY3QsIGl0IE1VU1QgYmUgdHJlYXRlZCBhcyBwZXIgYW55IG90aGVyIE9wZXJhdGlvbiBPYmplY3QsIGZvciB0aGUgYFRSQUNFYCBIVFRQIG1ldGhvZAojL3BhdGhzL3tbUGF0aCBJdGVtXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQjcGF0aC1pdGVtLW9iamVjdCl9fHN1bW1hcnl8eC1zdW1tYXJ5fFN0cmluZ3xBbHNvIGFzIHBlciBbQXBpYXJ5IGV4dGVuc2lvbl0oaHR0cHM6Ly9oZWxwLmFwaWFyeS5pby9hcGlfMTAxL3N3YWdnZXItZXh0ZW5zaW9ucy8jeC1zdW1tYXJ5LWFuZC14LWRlc2NyaXB0aW9uKQojL3BhdGhzL3tbUGF0aCBJdGVtXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQjcGF0aC1pdGVtLW9iamVjdCl9fGRlc2NyaXB0aW9ufHgtZGVzY3JpcHRpb258U3RyaW5nfEFsc28gYXMgcGVyIFtBcGlhcnkgZXh0ZW5zaW9uXShodHRwczovL2hlbHAuYXBpYXJ5LmlvL2FwaV8xMDEvc3dhZ2dlci1leHRlbnNpb25zLyN4LXN1bW1hcnktYW5kLXgtZGVzY3JpcHRpb24pCiMvW3BhcmFtZXRlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNwYXJhbWV0ZXJzLWRlZmluaXRpb25zLW9iamVjdCkgKipPUioqICMvcGF0aHMve1tQYXRoIEl0ZW1dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNwYXRoLWl0ZW0tb2JqZWN0KX0vcGFyYW1ldGVycyAqKk9SKiogIy9wYXRocy97W1BhdGggSXRlbV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI3BhdGgtaXRlbS1vYmplY3QpfS97W09wZXJhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI29wZXJhdGlvbi1vYmplY3QpfS9wYXJhbWV0ZXJzfGRlcHJlY2F0ZWR8eC1kZXByZWNhdGVkfEJvb2xlYW58SW5kaWNhdGVzIHRoZSBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBhbmQgU0hPVUxEIGJlIHRyYW5zaXRpb25lZCBvdXQgb2YgdXNlCiMvcGF0aHMve1tQYXRoIEl0ZW1dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNwYXRoLWl0ZW0tb2JqZWN0KX0vW3tPcGVyYXRpb259XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQjb3BlcmF0aW9uLW9iamVjdCl8Y2FsbGJhY2tzfHgtY2FsbGJhY2tzfFtbQ2FsbGJhY2sgT2JqZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjc2VydmVyLW9iamVjdCldfApcKiB3aXRoaW4gW1NjaGVtYSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNzY2hlbWEtb2JqZWN0KXxhbnlPZnx4LWFueU9mfFtbU2NoZW1hIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjc2NoZW1hT2JqZWN0KV18U2NoZW1hIE1VU1QgYmUgZXh0cmFjdGVkIGFuZCBwb3N0LXByb2Nlc3NlZCBiZWZvcmUgYmVpbmcgdXNlZCBmb3IgdmFsaWRhdGlvbgpcKiB3aXRoaW4gW1NjaGVtYSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNzY2hlbWEtb2JqZWN0KXxvbmVPZnx4LW9uZU9mfFtbU2NoZW1hIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjc2NoZW1hT2JqZWN0KV18U2NoZW1hIE1VU1QgYmUgZXh0cmFjdGVkIGFuZCBwb3N0LXByb2Nlc3NlZCBiZWZvcmUgYmVpbmcgdXNlZCBmb3IgdmFsaWRhdGlvbgpcKiB3aXRoaW4gW1NjaGVtYSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNzY2hlbWEtb2JqZWN0KXxub3R8eC1ub3R8W1NjaGVtYSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI3NjaGVtYU9iamVjdCl8U2NoZW1hIE1VU1QgYmUgZXh0cmFjdGVkIGFuZCBwb3N0LXByb2Nlc3NlZCBiZWZvcmUgYmVpbmcgdXNlZCBmb3IgdmFsaWRhdGlvbgpcKiB3aXRoaW4gW1NjaGVtYSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNzY2hlbWEtb2JqZWN0KXxyZXF1aXJlZHx4LXJlcXVpcmVkfEFycmF5fFdoZXJlIGEgcHJvcGVydHkgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIGByZXF1aXJlZGAgZHVlIHRvIHVzZSBvZiBgeC1hbnlPZmAsIGB4LW9uZU9mYCBvciBgeC1ub3RgLCBjb252ZXJ0ZXJzIE1VU1QgbWVyZ2UgdGhlc2UgYXJyYXlzIHdoZW4gY29udmVydGluZyBmcm9tICoqc3dhZ2dlcnBsdXNwbHVzKiogdG8gT3BlbkFQSSAzLjAueC4gV2hlbiBhIGNvbnZlcnRlciBjb252ZXJ0cyBmcm9tIDMuMC54IHRvICoqc3dhZ2dlcnBsdXNwbHVzKiogaXQgTVVTVCByZW1vdmUgYW55IGByZXF1aXJlZGAgcHJvcGVydGllcyBoaWRkZW4gYnkgYHgtYW55T2ZgLCBgeC1vbmVPZmAgb3IgYHgtbm90YCBhbmQgbW92ZSB0aGVtIGludG8gdGhpcyBhcnJheS4KXCogd2l0aGluIFtTY2hlbWEgT2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQjc2NoZW1hLW9iamVjdCl8bnVsbGFibGV8eC1udWxsYWJsZXxCb29sZWFufEluZGljYXRlcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBudWxsYWJsZSBvciBub3QuClwqIHdpdGhpbiBbU2NoZW1hIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI3NjaGVtYS1vYmplY3QpfGRpc2NyaW1pbmF0b3J8eC1kaXNjcmltaW5hdG9yfFtEaXNjcmltaW5hdG9yIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjZGlzY3JpbWluYXRvci1vYmplY3QpfEEgdmVyc2lvbiAzLjAueCBgZGlzY3JpbWluYXRvciBvYmplY3RgIHRvIHJlcGxhY2UgdGhlIHZlcnNpb24gMi4wIGBkaXNjcmltaW5hdG9yYCBwcm9wZXJ0eS4KXCogd2l0aGluIFtSZXNwb25zZSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCNyZXNwb25zZS1vYmplY3QpfGxpbmtzfHgtbGlua3N8TWFwIHtbTGluayBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI2xpbmstb2JqZWN0KX18TGlua3Mgb3IgcmVmZXJlbmNlcyB0byByZXVzYWJsZSBMaW5rIE9iamVjdHMKIy98Y29tcG9uZW50cy9saW5rc3x4LWxpbmtzfE1hcCB7W0xpbmsgT2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCNsaW5rLW9iamVjdCl9fENvbnRhaW5zIHJldXNhYmxlIExpbmsgT2JqZWN0cwojL3xjb21wb25lbnRzL2NhbGxiYWNrc3x4LWNhbGxiYWNrc3xNYXAge1tDYWxsYmFjayBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI2NhbGxiYWNrLW9iamVjdCl9fENvbnRhaW5zIHJldXNhYmxlIENhbGxiYWNrIE9iamVjdHMKCiMjIENvbnZlcnNpb24KCkNvbnZlcnRlcnMgTVVTVCB2YWxpZGF0ZSB0aGUgc3BlY2lmaWNhdGlvbiBleHRlbnNpb25zIGFyZSBvZiB0aGUgZXhwZWN0ZWQgdHlwZSwgYW5kIHRoYXQgbWFuZGF0b3J5IHByb3BlcnRpZXMgKGlmIGFueSkgYXJlIHByZXNlbnQuIEZhaWxpbmcgdGhhdCwgdGhleSBNVVNUIGxlYXZlIHRoZSBzcGVjaWZpY2F0aW9uIGV4dGVuc2lvbiB1bmNoYW5nZWQuCgojIyBzd2FnZ2VycGx1c3BsdXMgVG9vbHMKCiogW0NvbnZlcnRlci92YWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXJtYWRlL3N3YWdnZXIyb3BlbmFwaSkKKiBbUmViaWxseSBSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL1JlYmlsbHkvUmVEb2MpIC0gc3VwcG9ydHMgYSBbc3Vic2V0XShodHRwczovL2dpdGh1Yi5jb20vUmViaWxseS9SZURvYy9ibG9iL21hc3Rlci9kb2NzL3JlZG9jLXZlbmRvci1leHRlbnNpb25zLm1kKSBvZiAqKnN3YWdnZXJwbHVzcGx1cyoqCgojIyBzd2FnZ2VycGx1c3BsdXMgaW4gdGhlIHdpbGQKCltaYXBwaXRpIEFQSV0oaHR0cDovL3phcHBpdGkuY29tL2FwaS96YXBwaXRpLXBsYXllci00ay9zd2FnZ2VyLykK readmeEtag: '"a48c89f8924eb0e30ee63330a6f8d4185889f09c"' readmeLastModified: Thu, 28 Jun 2018 12:29:25 GMT repositoryId: 86082996 description: A proposal for transitioning between Swagger 2.0 and OpenAPI 3.0.x created: '2017-03-24T15:28:57Z' updated: '2024-03-14T14:21:42Z' language: null archived: false stars: 6 watchers: 5 forks: 1 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: Unlicense repoEtag: '"b2f5ab43a00c547ebc647cfbb63b9110b12b32a0bc82ca7ed1d9ce7586071507"' repoLastModified: Thu, 14 Mar 2024 14:21:42 GMT foundInMaster: true category: Parsers id: 0cf881514386d8ff2c26cf09e3967184 - source: - openapi3 tags - openapi31 tags repository: https://github.com/apiaddicts/openapi2soapui v3: true v3_1: true id: 9d4c1981e20f0c421731b1a708ab85cd repositoryMetadata: base64Readme: >- CiMg8J+boO+4jyBPcGVuQVBJMlNvYXBVSSAhW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS0wLjEuMC1wdXJwbGUpICFbU3dhZ2dlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tc29hcC0lMjNDbG9qdXJlP3N0eWxlPWZsYXQmbG9nbz1zd2FnZ2VyJmxvZ29Db2xvcj13aGl0ZSkgIVtKYXZhXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmEtJTIzRUQ4QjAwLnN2Zz9zdHlsZT1mbGF0JmxvZ289b3BlbmpkayZsb2dvQ29sb3I9d2hpdGUpICBbIVtMaWNlbnNlOiBMR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTEdQTF92My1ibHVlLnN2ZyldKGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC0zLjApIAoKW0FQSV0oLi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2FwaS55YW1sKSB0byBnZW5lcmF0ZSBhIFNvYXBVSSBwcm9qZWN0IGZyb20gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChma2EgU3dhZ2dlciBTcGVjaWZpY2F0aW9uKQoKR2l2ZW4gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uLCBlaXRoZXIgdjIgb3IgdjMsIGEgU29hcFVJIHByb2plY3QgaXMgZ2VuZXJhdGVkIHdpdGggdGhlIF9yZXF1ZXN0c18gZm9yIGVhY2ggcmVzb3VyY2Ugb3BlcmF0aW9uIGFuZCBhIF90ZXN0IHN1aXRlXy4gVGhlIHJlc3BvbnNlIGlzIHRoZSBjb250ZW50IG9mIHRoZSBTb2FwVUkgcHJvamVjdCBpbiBYTUwgZm9ybWF0IHRvIHNhdmUgYXMgZmlsZSBhbmQgaW1wb3J0IGludG8gdGhlIFNvYXBVSSBhcHBsaWNhdGlvbi4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqT3BlbkFQSTJTb2FwVUkqKiBBZG9wdGVycyBsaXN0IArwn5OiIElmIE9wZW5BUEkyU29hcFVJIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtSU0ldKGh0dHBzOi8vd3d3LnJ1cmFsc2VydmljaW9zaW5mb3JtYXRpY29zLmNvbS8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAoKIyDwn5Gp8J+PveKAjfCfkrsgIENvbnRyaWJ1dGUgdG8gQXBpQWRkaWN0cyAKCldlJ3JlIGFuIGluY2x1c2l2ZSBhbmQgb3BlbiBjb21tdW5pdHksIHdlbGNvbWluZyB5b3UgdG8gam9pbiBvdXIgZWZmb3J0IHRvIGVuaGFuY2UgQXBpQWRkaWN0cywgYW5kIHdlJ3JlIGV4Y2l0ZWQgdG8gcHJpb3JpdGl6ZSB0YXNrcyBiYXNlZCBvbiBjb21tdW5pdHkgaW5wdXQsIGludml0aW5nIHlvdSB0byByZXZpZXcgYW5kIGNvbGxhYm9yYXRlIHRocm91Z2ggb3VyIEdpdEh1YiBpc3N1ZSB0cmFja2VyLgoKRmVlbCBmcmVlIHRvIGRyb3AgYnkgYW5kIGdyZWV0IHVzIG9uIG91ciBHaXRIdWIgZGlzY3Vzc2lvbiBvciBEaXNjb3JkIGNoYXQuIFlvdSBjYW4gYWxzbyBzaG93IHlvdXIgc3VwcG9ydCBieSBnaXZpbmcgdXMgc29tZSBHaXRIdWIgc3RhcnMg4q2Q77iPLCBvciBieSBmb2xsb3dpbmcgdXMgb24gVHdpdHRlciwgTGlua2VkSW4sIGFuZCBzdWJzY3JpYmluZyB0byBvdXIgWW91VHViZSBjaGFubmVsISDwn5qACgpbIVsiQnV5IE1lIEEgQ29mZmVlIl0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hc3NldHMvaW1nL2N1c3RvbV9pbWFnZXMvb3JhbmdlX2ltZy5wbmcpXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2FwaWFkZGljdHMpCgojIOKame+4jyBGdW5jdGlvbmFsaXRpZXMKCltIZXJlXSguL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvYXBpLnlhbWwpIHlvdSBjYW4gY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgdGhlIEFQSSBTd2FnZ2VyIHRvIFNvYXBVSQoKLSBCYXNlNjQgRGVjb2Rpbmcgb2YgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBDb250ZW50Ci0gUGFyc2UgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBDb250ZW50IGludG8gc3dhZ2dlci1jb3JlIHJlcHJlc2VudGF0aW9uIGFzIEphdmEgUE9KTwotIENyZWF0ZSBTb2FwVUkgUHJvamVjdAogIC0gQWRkIE9BdXRoIDIuMCBQcm9maWxlcyB0byBTb2FwVUkgUHJvamVjdAogIC0gQWRkIG5ldyBSRVNUIFNlcnZpY2UgdG8gU29hcFVJIFByb2plY3QKICAgIC0gQWRkIEVuZHBvaW50cyB0byBSRVNUIFNlcnZpY2UKICAgIC0gU2V0IGJhc2VQYXRoIHRvIFJFU1QgU2VydmljZQogICAgLSBBZGQgUmVzb3VyY2VzIChQYXRocykgdG8gUkVTVCBTZXJ2aWNlCiAgICAgIC0gQWRkIE1ldGhvZHMgKFZlcmJzIC8gT3BlcmF0aW9ucykgdG8gZWFjaCBSZXNvdXJjZQogICAgICAgIC0gU2V0IFJFU1QgUmVxdWVzdCB0byBlYWNoIE1ldGhvZAogICAgICAgICAgLSBTZXQgQ3JlZGVudGlhbHMgKE9BdXRoIDIuMCBQcm9maWxlKQogICAgICAgICAgLSBTZXQgUGFyYW1ldGVycyBleGFtcGxlcyB0byBSRVNUIFJlcXVlc3QKICAgICAgICAgIC0gU2V0IFJlcXVlc3QgQm9keSBleGFtcGxlIHRvIFJFU1QgUmVxdWVzdAogICAgICAgICAgLSBTZXQgQ3VzdG9tIEhlYWRlcnMgdG8gUkVTVCBSZXF1ZXN0CiAgLSBBZGQgbmV3IFRlc3RTdWl0ZXMgdG8gU29hcFVJIFByb2plY3QgZm9yIGVhY2ggTWV0aG9kCiAgICAtIEFkZCBUZXN0Q2FzZXMgdG8gVGVzdFN1aXRlCiAgICAgIC0gQWRkIEV4ZWN1dGlvbiBUZXN0IFN0ZXAgKFJFU1QgUmVxdWVzdCkKCk5vbWVuY2xhdHVyZSB1c2VkOgotIFNvYXBVSSBQcm9qZWN0OiB7YXBpTmFtZX1cX3thcGlWZXJzaW9ufQotIFJFU1QgU2VydmljZToge2FwaU5hbWV9Ci0gUmVzb3VyY2U6IHtwYXRofQotIE1ldGhvZDoge2h0dHBNZXRob2RJblVwcGVyY2FzZX0KLSBSZXF1ZXN0OiB7ZGVmYXVsdFJlcXVlc3ROYW1lfQotIFRlc3QgU3VpdGU6IHtwYXRofVxfe2h0dHBNZXRob2RJblVwcGVyY2FzZX1cX1Rlc3RTdWl0ZQotIFRlc3QgQ2FzZSAoRGVmYXVsdCk6IFN1Y2Nlc3NcX1Rlc3RDYXNlCi0gVGVzdCBDYXNlOiB7dGVzdENhc2VOYW1lfVxfVGVzdENhc2UKLSBUZXN0IFN0ZXA6IEV4ZWN1dGlvblxfe2h0dHBNZXRob2RJblVwcGVyY2FzZX1cX1Rlc3RTdGVwCgpUaGUgdmFyaWFibGVzIGFyZSBvYnRhaW5lZCBmcm9tOgotIGFwaU5hbWU6IHByb3BlcnR5IGFwaU5hbWUgb2YgcmVxdWVzdCBib2R5Ci0gYXBpVmVyc2lvbjogdmVyc2lvbiBkZWZpbmVkIGluIHRoZSAnaW5mbycgc2VjdGlvbiBvZiB0aGUgT3BlbkFQSSBTcGVjCi0gcGF0aDogZWFjaCBwYXRoIGRlZmluZWQgaW4gdGhlIE9wZW5BUEkgU3BlYwotIGh0dHBNZXRob2RJblVwcGVyY2FzZTogZWFjaCBIVFRQIG1ldGhvZHMgb2YgcGF0aHMgZGVmaW5lZCBpbiBPcGVuQVBJIFNwZWMKLSB0ZXN0Q2FzZU5hbWU6IGVhY2ggdGVzdCBjYXNlIG5hbWUgZGVmaW5lZCBpbiB0aGUgcHJvcGVydHkgdGVzdENhc2VOYW1lcyBvZiByZXF1ZXN0IGJvZHkKCiMjIFRlY2hub2xvZ3kgc3RhY2sKIyMjIE92ZXJ2aWV3Cgp8VGVjaG5vbG9neSAgICAgICAgICAgICAgfERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfENvcmUgRnJhbWV3b3JrICAgICAgICAgIHxTcHJpbmcgQm9vdCAyICAgICAgICAgICAgICAgfAoKIyMjIFNlcnZlciAtIEJhY2tlbmQKCnxUZWNobm9sb2d5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8RGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfFtKREsgMTFdKGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2VuL2phdmEvamF2YXNlLzExLykgICAgICAgICAgICAgICAgICAgICAgIHxKYXZhIERldmVsb3BtZW50IEtpdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnxbU3ByaW5nIEJvb3QgMl0oaHR0cHM6Ly9zcHJpbmcuaW8vcHJvamVjdHMvc3ByaW5nLWJvb3QpICB8RnJhbWV3b3JrIHRvIGVhc2UgdGhlIGJvb3RzdHJhcHBpbmcgYW5kIGRldmVsb3BtZW50IG9mIG5ldyBTcHJpbmcgQXBwbGljYXRpb25zfAp8W01hdmVuIDNdKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZykgICAgICAgICAgICAgICAgICAgICAgfERlcGVuZGVuY3kgTWFuYWdlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfFtUb21jYXQgOV0oaHR0cHM6Ly90b21jYXQuYXBhY2hlLm9yZykgICAgICAgICAgICAgICAgICAgIHxTZXJ2ZXIgZGVwbG95IFdBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyMgIExpYnJhcmllcyBhbmQgUGx1Z2lucwp8VGVjaG5vbG9neSAgICAgICAgICAgICAgfERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfFtMb21ib2tdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvKSB8TmV2ZXIgd3JpdGUgYW5vdGhlciBnZXR0ZXIgb3IgZXF1YWxzIG1ldGhvZCBhZ2Fpbiwgd2l0aCBvbmUgYW5ub3RhdGlvbiB5b3VyIGNsYXNzIGhhcyBhIGZ1bGx5IGZlYXR1cmVkIGJ1aWxkZXIsIEF1dG9tYXRlIHlvdXIgbG9nZ2luZyB2YXJpYWJsZXMsIGFuZCBtdWNoIG1vcmUuICAgICAgICAgICAgICB8CnxbSGliZXJuYXRlIFZhbGlkYXRvcl0oaHR0cHM6Ly9oaWJlcm5hdGUub3JnL3ZhbGlkYXRvci8pfEV4cHJlc3MgdmFsaWRhdGlvbiBydWxlcyBpbiBhIHN0YW5kYXJkaXplZCB3YXkgdXNpbmcgYW5ub3RhdGlvbi1iYXNlZCBjb25zdHJhaW50cyBhbmQgYmVuZWZpdCBmcm9tIHRyYW5zcGFyZW50IGludGVncmF0aW9uIHdpdGggYSB3aWRlIHZhcmlldHkgb2YgZnJhbWV3b3Jrcy58CnxbU3ByaW5nZG9jIE9wZW5BUEkgVUldKGh0dHBzOi8vc3ByaW5nZG9jLm9yZy8pfE9wZW5BUEkgMyBMaWJyYXJ5IGZvciBzcHJpbmcgYm9vdCBwcm9qZWN0cy4gSXMgYmFzZWQgb24gc3dhZ2dlci11aSwgdG8gZGlzcGxheSB0aGUgT3BlbkFQSSBkZXNjcmlwdGlvbi58CnxbU29hcFVJIGNvcmUgbW9kdWxlXShodHRwczovL3d3dy5zb2FwdWkub3JnL29wZW4tc291cmNlLyl8U29hcFVJIGlzIHRoZSB3b3JsZCdzIGxlYWRpbmcgRnVuY3Rpb25hbCBUZXN0aW5nIHRvb2wgZm9yIFNPQVAgYW5kIFJFU1QgdGVzdGluZy58CnxbU3dhZ2dlciBQYXJzZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXBhcnNlcil8UGFyc2VzIE9wZW5BUEkgZGVmaW5pdGlvbnMgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBpbnRvIHN3YWdnZXItY29yZSByZXByZXNlbnRhdGlvbiBhcyBKYXZhIFBPSk8sIHJldHVybmluZyBhbnkgdmFsaWRhdGlvbiB3YXJuaW5ncy9lcnJvcnMufAoKIyDwn5ORIEdldHRpbmcgc3RhcnRlZCAKClRoZXNlIGluc3RydWN0aW9ucyB3aWxsIGdldCB5b3UgYSBjb3B5IG9mIHRoZSBwcm9qZWN0IHVwIGFuZCBydW5uaW5nIG9uIHlvdXIgbG9jYWwgbWFjaGluZSBmb3IgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcgcHVycG9zZXMuCgojIyMgUHJlcmVxdWlzaXRlcwoKKiBbSkRLIEluc3RhbGxhdGlvbl0oaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vZW4vamF2YS9qYXZhc2UvMTEvaW5zdGFsbC9vdmVydmlldy1qZGstaW5zdGFsbGF0aW9uLmh0bWwjR1VJRC04Njc3QTc3Ri0yMzFBLTQwRjctOThCOS0xRkQwQjQ4QzM0NkEpCiogW0FwYWNoZSBNYXZlbiBJbnN0YWxsYXRpb25dKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9pbnN0YWxsLmh0bWwpCiogW1NldHRpbmcgdXAgTG9tYm9rXShodHRwczovL3Byb2plY3Rsb21ib2sub3JnL3NldHVwL292ZXJ2aWV3KQogICogW0VjbGlwc2UgYW5kIGl0cyBvZmZzaG9vdHNdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvc2V0dXAvZWNsaXBzZSkKICAqIFtJbnRlbGxpaiBJREVBXShodHRwczovL3Byb2plY3Rsb21ib2sub3JnL3NldHVwL2ludGVsbGlqKQogICogW05ldGJlYW5zXShodHRwczovL3Byb2plY3Rsb21ib2sub3JnL3NldHVwL25ldGJlYW5zKQogICogW01pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIENvZGVdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvc2V0dXAvdnNjb2RlKQoKIyMjIEV4dGVybmFsIGRlcGVuZGVuY2llcwoKVGhlIHByb2plY3QgdXNlIF9fIlNvYXBVSSBDb3JlIE1vZHVsZSJfXyBkZXBlbmRlbmN5LCB3aGljaCBpcyBub3QgbWF2ZW4gZGVwZW5kZW5jeSwgc28geW91IG11c3QgaGF2ZSBpbnRlcm5ldCBhY2Nlc3MgdG8gZG93bmxvYWQgdGhlIGRlcGVuZGVuY3kgZnJvbSB0aGUgZXh0ZXJuYWwgcmVwb3NpdG9yeSwgYmVsb3cgaXMgdGhlIHJlcG9zaXRvcnkgY29uZmlndXJhdGlvbiBpbnNpZGUgdGhlIHBvbS54bWwgZmlsZS4KCmBgYHhtbAogIC4uLgoKICA8cmVwb3NpdG9yaWVzPgogICAgPHJlcG9zaXRvcnk+CiAgICAgIDxpZD5TbWFydEJlYXJQbHVnaW5SZXBvc2l0b3J5PC9pZD4KICAgICAgPHVybD5odHRwczovL3JhcGkudG9vbHMub3BzLnNtYXJ0YmVhci5pby9uZXh1cy9jb250ZW50L2dyb3Vwcy9wdWJsaWMvPC91cmw+CQkJCiAgICA8L3JlcG9zaXRvcnk+CiAgPC9yZXBvc2l0b3JpZXM+CiAgCiAgLi4uCmBgYAojIyMgUnVubmluZyB0aGUgYXBwbGljYXRpb24gd2l0aCBJREUKClRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdG8gcnVuIGEgU3ByaW5nIEJvb3QgYXBwbGljYXRpb24gb24geW91ciBsb2NhbCBtYWNoaW5lLiBPbmUgd2F5IGlzIHRvIGV4ZWN1dGUgdGhlIGBtYWluYCBtZXRob2QgaW4gdGhlIGBPcGVuYXBpMlNvYXBVSUFwcGxpY2F0aW9uYCBjbGFzcyBmcm9tIHlvdXIgSURFLgoKIyMjIyBFeGFtcGxlIChFY2xpcHNlIGFuZCBpdHMgb2Zmc2hvb3RzKSA6CiogRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogVW56aXAgdGhlIHppcCBmaWxlIChpZiB5b3UgZG93bmxvYWRlZCBvbmUpCiogT3BlbiBJREUKCSogRmlsZSAtPiBJbXBvcnQgLT4gRXhpc3RpbmcgTWF2ZW4gUHJvamVjdCAtPiBOYXZpZ2F0ZSB0byB0aGUgZm9sZGVyIHByb2plY3QgCgkqIFNlbGVjdCB0aGUgcHJvamVjdAoqIENob29zZSB0aGUgU3ByaW5nIEJvb3QgQXBwbGljYXRpb24gZmlsZSAoc2VhcmNoIGZvciBAU3ByaW5nQm9vdEFwcGxpY2F0aW9uKQoqIFJpZ2h0IENsaWNrIG9uIHRoZSBmaWxlIGFuZCBSdW4gYXMgSmF2YSBBcHBsaWNhdGlvbgoqIFVSTCB0byBhY2Nlc3M6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKCiMjIyBSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiBsb2NhbGx5IHdpdGggTWF2ZW4KCkFsdGVybmF0aXZlbHkgeW91IGNhbiB1c2UgdGhlIFtTcHJpbmcgQm9vdCBNYXZlbiBwbHVnaW5dKGh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWJvb3QvZG9jcy9jdXJyZW50L3JlZmVyZW5jZS9odG1sL2J1aWxkLXRvb2wtcGx1Z2lucy1tYXZlbi1wbHVnaW4uaHRtbCkgbGlrZSBzbzoKCiogRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogVW56aXAgdGhlIHppcCBmaWxlIChpZiB5b3UgZG93bmxvYWRlZCBvbmUpCiogT3BlbiBDb21tYW5kIFByb21wdCBhbmQgQ2hhbmdlIGRpcmVjdG9yeSAoY2QpIHRvIGZvbGRlciBjb250YWluaW5nIHBvbS54bWwKKiBUbyBidWlsZCBhbmQgc3RhcnQgdGhlIHNlcnZlciB0eXBlCgpgYGBzaGVsbAokIG12biBzcHJpbmctYm9vdDpydW4KYGBgCgoqIFVSTCB0byBhY2Nlc3M6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKCiMjIyBSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiBpbiBEb2NrZXIKCiogRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogVW56aXAgdGhlIHppcCBmaWxlIChpZiB5b3UgZG93bmxvYWRlZCBvbmUpCiogT3BlbiBDb21tYW5kIFByb21wdCBhbmQgQ2hhbmdlIGRpcmVjdG9yeSAoY2QpIHRvIGZvbGRlciBjb250YWluaW5nIHBvbS54bWwKKiBUbyBidWlsZCBhbmQgc3RhcnQgdGhlIGRvY2tlciBjb250YWluZXIgdHlwZQoKYGBgc2hlbGwKJCBtdm4gY2xlYW4gcGFja2FnZSAtUGphcgokIGRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAoKKiBVUkwgdG8gYWNjZXNzOiAqKmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGktb3BlbmFwaS10by1zb2FwdWkvdjEvc29hcC11aS1wcm9qZWN0cyoqCgojIyMgUnVubmluZyB0aGUgYXBwbGljYXRpb24gZGVwbG95aW5nIFdBUiBvbiBUb21jYXQKClRoZSBjb2RlIGNhbiBhbHNvIGJlIGJ1aWx0IGludG8gYSB3YXIgYW5kIHRoZW4gZGVwbG95ZWQgb24gYSBUb21jYXQgc2VydmVyLgoKKiAJRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogCVVuemlwIHRoZSB6aXAgZmlsZSAoaWYgeW91IGRvd25sb2FkZWQgb25lKQoqIAlPcGVuIENvbW1hbmQgUHJvbXB0IGFuZCBDaGFuZ2UgZGlyZWN0b3J5IChjZCkgdG8gZm9sZGVyIGNvbnRhaW5pbmcgcG9tLnhtbAoqIAlUbyBidWlsZCB0aGUgd2FyIHR5cGUKCmBgYHNoCiQgbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgoqIAlPbmNlIHRoZSB3YXIgaXMgYnVpbHQsIGNvcHkgdGhlIG91dHB1dCBXQVIgdG8gVG9tY2F0J3Mgd2ViYXBwcyBkaXJlY3RvcnkuCgpgYGBzaAokQ0FUQUxJTkFfSE9NRS93ZWJhcHBzL29wZW5hcGkyc29hcHVpLTx2ZXJzaW9uPi53YXIKYGBgCgoqIFJlc3RhcnQgVG9tY2F0IFNlcnZlcgoqIFVSTCB0byBhY2Nlc3M6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL29wZW5hcGkyc29hcHVpL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKIyMgRmlsZXMgYW5kIERpcmVjdG9yaWVzIFN0cnVjdHVyZQoKVGhlIHByb2plY3QgZGlyZWN0b3J5IGhhcyBhIHBhcnRpY3VsYXIgZGlyZWN0b3J5IHN0cnVjdHVyZS4gQSByZXByZXNlbnRhdGl2ZSBwcm9qZWN0IGlzIHNob3duIGJlbG93OgoKIyMjIFByb2plY3QgU3RydWN0dXJlCgpgYGB0ZXh0Ci4K4pSc4pSA4pSAIHNyYwrilIIgICDilJTilIDilIAgbWFpbgrilIIgICAgICAg4pSU4pSA4pSAIGphdmEK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkK4pSCICAgICAgICAgICDilIIgCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLmNvbmZpZwrilIIgICAgICAgICAgIOKUgiAgCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLmNvbnN0YW50cwrilIIgICAgICAgICAgIOKUgiAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuY29udHJvbGxlcgrilIIgICAgICAgICAgIOKUgiAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuZXJyb3IK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuZXJyb3IuZXhjZXB0aW9ucwrilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5lcnJvci52YWxpZGF0b3JzCuKUgiAgICAgICAgICAg4pSCICAgICAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkubW9kZWwK4pSCICAgICAgICAgICDilIIK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkucmVxdWVzdArilIIgICAgICAgICAgIOKUggrilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5zZXJ2aWNlCuKUgiAgICAgICAgICAg4pSCCuKUgiAgICAgICAgICAg4pSU4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLnV0aWwK4pSc4pSA4pSAIHNyYwrilIIgICDilJTilIDilIAgbWFpbgrilIIgICAgICAg4pSU4pSA4pSAIHJlc291cmNlcwrilIIgICAgICAgICAgIOKUnOKUgOKUgCBzdGF0aWMK4pSCICAgICAgICAgICDilIIgICDilJTilIDilIAgYXBpLnlhbWwK4pSCICAgICAgICAgICDilIIgICAK4pSCICAgICAgICAgICDilJzilIDilIAgYXBwbGljYXRpb24ucHJvcGVydGllcwrilIIgICAgICAgICAgIOKUnOKUgOKUgCBsb2c0ai5wcm9wZXJ0aWVzCuKUgiAgICAgICAgICAg4pSU4pSA4pSAIG1lc3NhZ2VzLnByb3BlcnRpZXMK4pSc4pSA4pSAIEpSRSBTeXN0ZW0gTGlicmFyeQrilJzilIDilIAgTWF2ZW4gRGVwZW5kZW5jaWVzCuKUnOKUgOKUgCBzcmMK4pSc4pSA4pSAIHRhcmdldArilIIgICDilJTilIDilIBvcGVuYXBpMnNvYXB1aS0xLjAuMgrilJzilIDilIAgLmdpdGxhYi1jaS55YW1sCuKUnOKUgOKUgCBsb21ib2suY29uZmlnCuKUnOKUgOKUgCBtdm53CuKUnOKUgOKUgCBtdm53LmNtZArilJzilIDilIAgcG9tLnhtbArilJTilIDilIAgUkVBRE1FLm1kCmBgYAoKIyMjIFBhY2thZ2VzCgoqIAlgY29uZmlnYCAtIGFwcCBjb25maWd1cmF0aW9uczsKKiAJYGNvbnN0YW50c2AgLSBhcHAgY29udGFudHM7CiogCWBjb250cm9sbGVyYCAtIGxpc3RlbiB0byB0aGUgY2xpZW50OwoqIAlgZXJyb3JgIC0gbWFuYWdlIGVycm9yczsKKiAJYGV4Y2VwdGlvbnNgIC0gY3VzdG9tIGV4Y2VwdGlvbiBoYW5kbGluZzsKKiAJYHZhbGlkYXRvcnNgIC0gY3VzdG9tIHZhbGlkYXRpb25zOwoqIAlgbW9kZWxgIC0gZW50aXRpZXM7CiogCWByZXF1ZXN0YCAtIGJvZHkgcmVxdWVzdCBtb2RlbC9lbnRpdGllczsKKiAJYHNlcnZpY2VgIC0gYnVzaW5lc3MgbG9naWM7CiogCWB1dGlsYCAtIHV0aWxpdHkgY2xhc3NlczsKCgojIyMgUmVzb3VyY2VzCiogCWByZXNvdXJjZXMvYCAtIGNvbnRhaW5zIGFsbCB0aGUgc3RhdGljIHJlc291cmNlcywgdGVtcGxhdGVzIGFuZCBwcm9wZXJ0eSBmaWxlcy4KKiAJYHJlc291cmNlcy9zdGF0aWNgIC0gY29udGFpbnMgc3RhdGljIHJlc291cmNlcy4KKiAJYHJlc291cmNlcy9zdGF0aWMvYXBpLnlhbWxgIC0gY29udGFpbnMgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbi4KKiAJYHJlc291cmNlcy9hcHBsaWNhdGlvbi5wcm9wZXJ0aWVzYCAtIGNvbnRhaW5zIGFwcGxpY2F0aW9uLXdpZGUgcHJvcGVydGllcy4gU3ByaW5nIHJlYWRzIHRoZSBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gdGhpcyBmaWxlIHRvIGNvbmZpZ3VyZSB5b3VyIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGRlZmluZSBzZXJ2ZXLigJlzIGRlZmF1bHQgcG9ydCwgc2VydmVy4oCZcyBjb250ZXh0IHBhdGgsIGRhdGFiYXNlIFVSTHMgZXRjLCBpbiB0aGlzIGZpbGUuCiogCWByZXNvdXJjZXMvbG9nNGoucHJvcGVydGllc2AgLSBjb250YWlucyBjb250YWlucyB0aGUgZW50aXJlIHJ1bnRpbWUgY29uZmlndXJhdGlvbiB1c2VkIGJ5IGxvZzRqLiBUaGlzIGZpbGUgd2lsbCBjb250YWluIGxvZzRqIGFwcGVuZGVycyBpbmZvcm1hdGlvbiwgbG9nIGxldmVsIGluZm9ybWF0aW9uIGFuZCBvdXRwdXQgZmlsZSBuYW1lcyBmb3IgZmlsZSBhcHBlbmRlcnMuCiogCWByZXNvdXJjZXMvbWVzc2FnZXMucHJvcGVydGllc2AgLSBjb250YWlucyB0aGUgZXJyb3IgbWVzc2FnZXMgdXNlZCBpbiB0aGUgYXBwbGljYXRpb24uCiogbXZudyAvIG12bncuY21kIC0gVGhpcyBhbGxvd3MgeW91IHRvIHJ1biB0aGUgTWF2ZW4gcHJvamVjdCB3aXRob3V0IGhhdmluZyBNYXZlbiBpbnN0YWxsZWQgYW5kIHByZXNlbnQgaW4gdGhlIHBhdGguIERvd25sb2FkIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgTWF2ZW4gaWYgaXQgY2FuJ3QgYmUgZm91bmQgKGFzIGZhciBhcyBJIGtub3cgYnkgZGVmYXVsdCBpbiB5b3VyIHVzZXIgaG9tZSBkaXJlY3RvcnkpLiBUaGUgbXZudyBmaWxlIGlzIGZvciBMaW51eCAoYmFzaCkgYW5kIG12bncuY21kIGlzIGZvciB0aGUgV2luZG93cyBlbnZpcm9ubWVudC4KKiAJYHBvbS54bWxgIC0gY29udGFpbnMgYWxsIHRoZSBwcm9qZWN0IGRlcGVuZGVuY2llcwoKIyMgRGVwbG95CgoqIAlCdWlsZCB0aGUgd2FyIHR5cGUKCmBgYHNoCiQgbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgoqIAlPbmNlIHRoZSB3YXIgaXMgYnVpbHQsIGNvcHkgdGhlIG91dHB1dCBXQVIgdG8gVG9tY2F0J3Mgd2ViYXBwcyBkaXJlY3RvcnkuCgpgYGBzaAokQ0FUQUxJTkFfSE9NRS93ZWJhcHBzL29wZW5hcGkyc29hcHVpLndhcgpgYGAKCiogUmVzdGFydCBUb21jYXQgU2VydmVyCiogVVJMIHRvIGFjY2VzczogKipcPHByb3RvY29sXD46Ly9cPGhvc3RcPjpcPHBvcnRcPi9vcGVuYXBpMnNvYXB1aS9hcGktb3BlbmFwaS10by1zb2FwdWkvdjEvc29hcC11aS1wcm9qZWN0cyoqCgojIyBEb2N1bWVudGF0aW9uCgotIFtjVVJMIEV4YW1wbGVdKGV4YW1wbGUuc2gpCi0gW09wZW4gQVBJIFNwZWNpZmljYXRpb25dKC4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9hcGkueWFtbCkKLSBbU3dhZ2dlciBVSV0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbCkgLSBgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbGAKLSBGaW5kIEphdmEgRG9jIGluICoqamF2YWRvYyoqIGZvbGRlcgotIEphdmEgRG9jIGlzIGdlbmVyYXRlZCBpbiAuL3RhcmdldC9zaXRlL2FwaWRvY3NgIGZvbGRlciB1c2luZyB0aGUgTWF2ZW4gY29tbWFuZCAKCmBgYHNoCm12biBqYXZhZG9jOmphdmFkb2MKYGBgCgojIyDwn5KbIFNwb25zb3JzCjxwIGFsaWduPSJjZW50ZXIiPgoJPGEgaHJlZj0iaHR0cHM6Ly9hcGlhZGRpY3RzLm9yZy8iPgogICAgCTxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMuY2xvdWRhcHBpLm5ldC93ZWIvaW1hZ2UvNDI0OC9MT0dPQ2xvdWRhcHBpMjAyMFZlcnNpb25lcy0wMS5wbmciIGFsdD0iY2xvdWRhcHBpIiB3aWR0aD0iMTUwIi8+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPgoJPC9hPgo8L3A+Cgo= readmeEtag: '"b7b5d345a985edce7396b3549da001259abf4c15"' readmeLastModified: Tue, 12 Sep 2023 10:57:37 GMT repositoryId: 352716389 description: >- API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application. created: '2021-03-29T16:47:42Z' updated: '2024-03-28T20:24:23Z' language: Java archived: false stars: 6 watchers: 3 forks: 4 owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 repoEtag: '"dbb35bc46862dc08d98fd3ec0e1b3ea8d2badcd6ffbaf8adab4e71df1b4903f5"' repoLastModified: Thu, 28 Mar 2024 20:24:23 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/vanshg/weatherkit-openapi v3: true id: f84b7766e6993b11295307959969204a repositoryMetadata: base64Readme: >- IyBXZWF0aGVyS2l0LU9wZW5BUEkKT3BlbkFQSSBzcGVjIGZvciBBcHBsZSdzIFdlYXRoZXJLaXQKCiMjIFJlc291cmNlcwotIFRoZSAoY3VycmVudGx5LWluLUJldGEpIHNwZWM6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3dlYXRoZXJraXRyZXN0YXBpCi0gUHJpY2luZyBkZXRhaWxzOiBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vd2VhdGhlcmtpdC9nZXQtc3RhcnRlZAotIFdXREMgd2Fsa3Rocm91Z2ggdmlkZW86IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS92aWRlb3MvcGxheS93d2RjMjAyMi8xMDAwMy8K readmeEtag: '"a34e288746a3a0fec5d92058e556662317dd2eb4"' readmeLastModified: Tue, 07 Jun 2022 23:53:05 GMT repositoryId: 500687327 description: OpenAPI spec for Apple's WeatherKit created: '2022-06-07T04:22:39Z' updated: '2024-07-16T09:38:31Z' language: null archived: false stars: 6 watchers: 2 forks: 2 owner: vanshg logo: https://avatars.githubusercontent.com/u/6133201?v=4 repoEtag: '"5b05cd6308ae352a9f4647254b7b9c0c8730dcb39ec61ace0c9ee086b04cc735"' repoLastModified: Tue, 16 Jul 2024 09:38:31 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/jshmrtn/openapi-compiler v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJQ29tcGlsZXIKClshW0hleCBkb2NzXShodHRwOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvaGV4LnBtLWRvY3MtZ3JlZW4uc3ZnP3N0eWxlPWZsYXQpXShodHRwczovL2hleGRvY3MucG0vb3BlbmFwaV9jb21waWxlcikKIVsuZ2l0aHViL3dvcmtmbG93cy9lbGl4aXIueW1sXShodHRwczovL2dpdGh1Yi5jb20vanNobXJ0bi9vcGVuYXBpLWNvbXBpbGVyL3dvcmtmbG93cy8uZ2l0aHViL3dvcmtmbG93cy9lbGl4aXIueW1sL2JhZGdlLnN2ZykKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvanNobXJ0bi9vcGVuYXBpLWNvbXBpbGVyL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2pzaG1ydG4vb3BlbmFwaS1jb21waWxlcj9icmFuY2g9bWFzdGVyKQpbIVtIZXgucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vaGV4cG0vZHQvb3BlbmFwaV9jb21waWxlci5zdmcpXShodHRwczovL2hleC5wbS9wYWNrYWdlcy9vcGVuYXBpX2NvbXBpbGVyKQoKOndhcm5pbmc6IDp3YXJuaW5nOiBUaGlzIGxpYnJhcnkgaXMgaW5jb21wbGV0ZSBhbmQgZXhwZXJpbWVudGFsISA6d2FybmluZzogOndhcm5pbmc6CgpDb21waWxlIE9wZW5BcGkgMy4wIEVsaXhpciBDbGllbnQgZnJvbSBKU09OIC8gWWFtbC4KCkhlbHAgdG8gbWFrZSB0aGlzIGxpYnJhcnkgbW9yZSBzcGVjIGNvbXBsaWFudCBpcyB3ZWxjb21lIGluIGZvcm0gb2YgaXNzdWVzIC8gUFIncy4KCiMjIEluc3RhbGxhdGlvbgoKVGhlIHBhY2thZ2UgY2FuIGJlIGluc3RhbGxlZCBieSBhZGRpbmcgYG9wZW5hcGlfY29tcGlsZXJgIHRvIHlvdXIgbGlzdCBvZiBkZXBlbmRlbmNpZXMKaW4gYG1peC5leHNgOgoKYGBgZWxpeGlyCmRlZiBkZXBzIGRvCiAgWwogICAgezpvcGVuYXBpX2NvbXBpbGVyLCAifj4gMS4wLWJldGEifQogIF0KZW5kCmBgYAoKRG9jdW1lbnRhdGlvbiBjYW4gYmUgZ2VuZXJhdGVkIHdpdGggW0V4RG9jXShodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWxhbmcvZXhfZG9jKQphbmQgcHVibGlzaGVkIG9uIFtIZXhEb2NzXShodHRwczovL2hleGRvY3MucG0pLiBUaGUgZG9jcyBjYW4gYmUgZm91bmQgYXQKW2h0dHBzOi8vaGV4ZG9jcy5wbS9vcGVuYXBpX2NvbXBpbGVyXShodHRwczovL2hleGRvY3MucG0vb3BlbmFwaV9jb21waWxlcikuCg== readmeEtag: '"bf382aafe1fb1d55ab387b51cb4735e682323308"' readmeLastModified: Tue, 05 Jul 2022 16:13:18 GMT repositoryId: 251401867 description: ':gear: Eixir OpenAPI Compiler' created: '2020-03-30T19:03:24Z' updated: '2022-07-07T18:58:33Z' language: Elixir archived: false stars: 6 watchers: 4 forks: 1 owner: jshmrtn logo: https://avatars.githubusercontent.com/u/10851004?v=4 license: MIT repoEtag: '"ff4494a3b0fce4958b04935c91aeae9c463cdc0063c2a7b7c8454eaf4069de17"' repoLastModified: Thu, 07 Jul 2022 18:58:33 GMT foundInMaster: true category: - Description Validators - Parsers id: 9b75226dafbc6d1d3410ef685b780166 - source: openapi3 tags repository: https://github.com/vinitshahdeo/openapi-url-resolver v3: true id: cc77996f9fb62a8bfdb6d8216191e7c3 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KCjxpbWcgc3JjPSIuL2Fzc2V0cy9vcGVuYXBpLXVybC1yZXNvbHZlci1sb2dvLnBuZyIgaGVpZ2h0PSczMCUnIHdpZHRoPSczMCUnLz4KCjxoMT5PcGVuQVBJIFVSTCBSZXNvbHZlcjwvaDE+Cgo8cD4KPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS11cmwtcmVzb2x2ZXIiPjxpbWcgYWx0PSJucG0gb3BlbmFwaS11cmwtcmVzb2x2ZXIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vcGVuYXBpLXVybC1yZXNvbHZlcj9sYWJlbD1vcGVuYXBpLXVybC1yZXNvbHZlciZsb2dvPW5wbSI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLXVybC1yZXNvbHZlciI+PGltZyBhbHQ9Im5wbSBidW5kbGUgc2l6ZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2J1bmRsZXBob2JpYS9taW4vb3BlbmFwaS11cmwtcmVzb2x2ZXI/bG9nbz1ucG0iPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS11cmwtcmVzb2x2ZXIiPjxpbWcgYWx0PSJucG0gb3BlbmFwaS11cmwtcmVzb2x2ZXIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vb3BlbmFwaS11cmwtcmVzb2x2ZXI/bG9nbz1ucG0mY29sb3I9eWVsbG93Z3JlZW4iPjwvYT4KPC9wPgoKPHA+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS92aW5pdHNoYWhkZW8vb3BlbmFwaS11cmwtcmVzb2x2ZXIvYWN0aW9ucy93b3JrZmxvd3Mvbm9kZS5qcy55bWwiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vdmluaXRzaGFoZGVvL29wZW5hcGktdXJsLXJlc29sdmVyL2FjdGlvbnMvd29ya2Zsb3dzL25vZGUuanMueW1sL2JhZGdlLnN2ZyIgYWx0PSJHaXRIdWIgQWN0aW9ucyBmb3IgT3BlbkFQSSBVUkwgUmVzb2x2ZXIiPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9WaW5pdF9TaGFoZGVvIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9WaW5pdF9TaGFoZGVvP3N0eWxlPXNvY2lhbCIgYWx0PSJUd2l0dGVyIEZvbGxvdyI+PC9hPgo8YSBocmVmPScuL0xJQ0VOU0UnPjxpbWcgYWx0PSJHaXRIdWIgTGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL3Zpbml0c2hhaGRlby9jZWxlYi1kaXdhbGk/bGFiZWw9TGljZW5zZSZsb2dvPWdpdGh1YiI+PC9hPgo8L3A+Cgo8YnIvPgoKPC9kaXY+CgoKKipvcGVuYXBpLXVybC1yZXNvbHZlcioqIGlzIGEgKipsaWdodHdlaWdodCoqIE5QTSBwYWNrYWdlIHRoYXQgcHJvdmlkZXMgYSBzaW1wbGUgYW5kIGVmZmljaWVudCB3YXkgdG8gcmVzb2x2ZSBzZXJ2ZXIgVVJMcyBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMuIEl0IGFsc28gcmVtb3ZlcyBwcm90b2NvbHMgZnJvbSB0aGUgcmVzb2x2ZWQgVVJMcyBhbmQgYWxsb3dzIHlvdSB0byAqKmVhc2lseSBleHRyYWN0IGhvc3QgaW5mb3JtYXRpb24gZnJvbSBPcGVuQVBJIGRlZmluaXRpb25zKiouIFRoaXMgcGFja2FnZSBpcyBpZGVhbCBmb3IgZGV2ZWxvcGVycyB3b3JraW5nIHdpdGggQVBJcyB0aGF0IGNvbmZvcm0gdG8gdGhlIFtPcGVuQVBJIDMueCBzcGVjaWZpY2F0aW9uXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIGFuZCBuZWVkIHRvIGV4dHJhY3QgW3NlcnZlciBpbmZvcm1hdGlvbl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wI3NlcnZlci1vYmplY3QpIHRvIG1ha2UgQVBJIGNhbGxzLiBDaGVjayBvdXQgdGhlIGJsb2cgcG9zdCBmb3IgbW9yZSBkZXRhaWxz4oCUW0hvdyB0byByZXNvbHZlIHNlcnZlciBVUkxzIGNvbnRhaW5pbmcgdmFyaWFibGVzIGluIE9wZW5BUEkgMy54IGRlZmluaXRpb25zP10oaHR0cHM6Ly9kZXYudG8vdmluaXRzaGFoZGVvL2hvdy10by1yZXNvbHZlLXNlcnZlci11cmxzLWNvbnRhaW5pbmctdmFyaWFibGVzLWluLW9wZW5hcGktM3gtZGVmaW5pdGlvbnMta2FqKQoKIyMjIEZlYXR1cmVzOgoKLSDwn5qAICoqTGlnaHR3ZWlnaHQqKiBtb2R1bGUgd2l0aCBvbmx5IDk2NSBieXRlcyBpbiBzaXplCi0g8J+OiSAqKlplcm8gZGVwZW5kZW5jaWVzKiosIG1ha2luZyBpdCBlYXN5IHRvIGluc3RhbGwgYW5kIHVzZSBpbiB5b3VyIHByb2plY3RzCi0g8J+UjSBFZmZpY2llbnQgYW5kIHNpbXBsZSB3YXkgdG8gcmVzb2x2ZSBbc2VydmVyIFVSTHNdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCNzZXJ2ZXItb2JqZWN0KSBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMKCiMjIPCfk6YgSW5zdGFsbGF0aW9uCgpZb3UgY2FuIGluc3RhbGwgYG9wZW5hcGktdXJsLXJlc29sdmVyYCB2aWEgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS11cmwtcmVzb2x2ZXIpOgoKYGBgYmFzaApucG0gaW5zdGFsbCBvcGVuYXBpLXVybC1yZXNvbHZlcgpgYGAKClshW29wZW5hcGktdXJsLXJlc29sdmVyIG9uIE5QTV0oaHR0cHM6Ly9ub2RlaS5jby9ucG0vb3BlbmFwaS11cmwtcmVzb2x2ZXIucG5nKV0oaHR0cHM6Ly9ub2RlaS5jby9ucG0vb3BlbmFwaS11cmwtcmVzb2x2ZXIvKQoKIyMg8J+SuyBVc2FnZQoKVG8gdXNlIGBvcGVuYXBpLXVybC1yZXNvbHZlcmAsIHlvdSBuZWVkIHRvIHBhc3MgYW4gW09wZW5BUEkgMy54IHNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykgb2JqZWN0IHRvIHRoZSBgcmVzb2x2ZSgpYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBhbiBhcnJheSBvZiByZXNvbHZlZCBzZXJ2ZXIgVVJMczoKCmBgYGphdmFzY3JpcHQKY29uc3Qgb3BlbmFwaVVybFJlc29sdmVyID0gcmVxdWlyZSgnb3BlbmFwaS11cmwtcmVzb2x2ZXInKQoKY29uc3Qgc3BlYyA9IHsKICBvcGVuYXBpOiAnMy4wLjAnLAogIHNlcnZlcnM6IFsKICAgIHsKICAgICAgdXJsOiAnaHR0cHM6Ly97dXNlcm5hbWV9LmdpZ2FudGljLXNlcnZlci5jb206e3BvcnR9L3tiYXNlUGF0aH0nLAogICAgICBkZXNjcmlwdGlvbjogJ1RoZSBwcm9kdWN0aW9uIEFQSSBzZXJ2ZXInLAogICAgICB2YXJpYWJsZXM6IHsKICAgICAgICB1c2VybmFtZTogewogICAgICAgICAgZGVmYXVsdDogJ2RlbW8nLAogICAgICAgICAgZGVzY3JpcHRpb246ICd0aGlzIHZhbHVlIGlzIGFzc2lnbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyLCBpbiB0aGlzIGV4YW1wbGUgYGdpZ2FudGljLXNlcnZlci5jb21gJwogICAgICAgIH0sCiAgICAgICAgcG9ydDogewogICAgICAgICAgZW51bTogWyc4NDQzJywgJzQ0MyddLAogICAgICAgICAgZGVmYXVsdDogJzg0NDMnCiAgICAgICAgfSwKICAgICAgICBiYXNlUGF0aDogewogICAgICAgICAgZGVmYXVsdDogJ3YyJwogICAgICAgIH0KICAgICAgfQogICAgfQogIF0KfQoKY29uc3QgaG9zdHMgPSBvcGVuYXBpVXJsUmVzb2x2ZXIucmVzb2x2ZShzcGVjKQoKLyoKClsKICAnZGVtby5naWdhbnRpYy1zZXJ2ZXIuY29tOjg0NDMvdjInLAogICdkZW1vLmdpZ2FudGljLXNlcnZlci5jb206NDQzL3YyJwpdCgoqLwpjb25zb2xlLmxvZyhob3N0cykKCmBgYAoKUGFzcyBgZmFsc2VgIGFzIHNlY29uZCBwYXJhbWV0ZXIgdG8gZ2V0IHRoZSBzZXJ2ZXIgVVJMcyB3aXRoIHByb3RvY29scy4KCmBgYGphdmFzY3JpcHQKY29uc3Qgc2VydmVyVXJscyA9IG9wZW5hcGlVcmxSZXNvbHZlci5yZXNvbHZlKHNwZWMsIGZhbHNlKQoKLyoKClsKICAnaHR0cHM6Ly9kZW1vLmdpZ2FudGljLXNlcnZlci5jb206ODQ0My92MicsCiAgJ2h0dHBzOi8vZGVtby5naWdhbnRpYy1zZXJ2ZXIuY29tOjQ0My92MicKXQoKKi8KY29uc29sZS5sb2coc2VydmVyVXJscykKCmBgYAoKIyMg8J+nqiBUZXN0aW5nCgpZb3UgY2FuIHRlc3QgdXNpbmcgdGhlIGJlbG93IGNvbW1hbmQgb3Igd3JpdGUgeW91ciBvd24gdGVzdHMgdXNpbmcgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgW2V4YW1wbGVzXSguL2RlZmluaXRpb25zLykuCgpgYGBiYXNoCm5wbSB0ZXN0CmBgYAoKIyMg8J+aqyBMaW1pdGF0aW9ucwoKVGhlIGJlbG93IGFyZSB0aGUga25vd24gbGltaXRhdGlvbnMsIGFuZCB0aGV5IGFyZSBub3QgaGFuZGxlZCB0byBrZWVwIGl0IGEgKipsaWdodHdlaWdodCoqIGFuZCAqKmZvY3VzZWQqKiBtb2R1bGUgdG8ganVzdCBleHRyYWN0IHRoZSBbc2VydmVyIGluZm9ybWF0aW9uXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjc2VydmVyLW9iamVjdCkuCgotIEl0IGRvZXMgbm90IHZhbGlkYXRlIHRoZSBPcGVuQVBJIGRlZmluaXRpb24uIFlvdSBjYW4gdXNlIFtvcGVuYXBpLXNjaGVtYS12YWxpZGF0b3JdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktc2NoZW1hLXZhbGlkYXRvcikgZm9yIHZhbGlkYXRpbmcgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbi4KLSBJdCBvbmx5IHdvcmtzIHdpdGggSlNPTiBmb3JtYXQuCiAgLSBVc2UgW3lhbWwtdG8tanNvbi1zY2hlbWFdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3lhbWwtdG8tanNvbi1zY2hlbWEpIHRvIGNvbnZlcnQgWUFNTCB0byBKU09OLgogIC0gVXNlIFtwb3N0bWFuLXRvLW9wZW5hcGldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3Bvc3RtYW4tdG8tb3BlbmFwaSkgdG8gY29udmVydCBQb3N0bWFuIGNvbGxlY3Rpb24gdG8gT3BlbkFQSSAzLngKCiMjIPCfpJ0gQ29udHJpYnV0aW5nCgoqKkNvbnRyaWJ1dGlvbnMgdG8gYG9wZW5hcGktdXJsLXJlc29sdmVyYCBhcmUgbW9zdCB3ZWxjb21lISoqIAoKSWYgeW91IGZpbmQgYSBidWcgb3Igd2FudCB0byBzdWdnZXN0IGEgbmV3IGZlYXR1cmUsIHBsZWFzZSBbb3BlbiBhbiBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL3Zpbml0c2hhaGRlby9vcGVuYXBpLXVybC1yZXNvbHZlci9pc3N1ZXMvbmV3KSBvbiB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIElmIHlvdSB3YW50IHRvIGNvbnRyaWJ1dGUgY29kZSwgcGxlYXNlIFtmb3JrIHRoZSByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vdmluaXRzaGFoZGVvL29wZW5hcGktdXJsLXJlc29sdmVyL2ZvcmspLCBtYWtlIHlvdXIgY2hhbmdlcywgYW5kICoqc3VibWl0IGEgcHVsbCByZXF1ZXN0KiouIFlvdXIgY29udHJpYnV0aW9ucyBhbmQgZmVlZGJhY2sgYXJlIG1vc3Qgd2VsY29tZSEKCiMjIPCfk50gTGljZW5zZQoKW29wZW5hcGktdXJsLXJlc29sdmVyXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLXVybC1yZXNvbHZlcikgaXMgYXV0aG9yZWQgYnkgQFt2aW5pdHNoYWhkZW9dKGh0dHBzOi8vZ2l0aHViLmNvbS92aW5pdHNoYWhkZW8pIGFuZCByZWxlYXNlZCB1bmRlciB0aGUgW01JVCBMaWNlbnNlXSguL0xJQ0VOU0UpLgoKIyMg4p2k77iPIFN1cHBvcnQKCklmIHlvdSBmaW5kIHRoaXMgcGFja2FnZSB1c2VmdWwsIHBsZWFzZSBjb25zaWRlciBbc3RhcnJpbmcgdGhpcyByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vdmluaXRzaGFoZGVvL29wZW5hcGktdXJsLXJlc29sdmVyKSBvbiBHaXRIdWIgdG8gc2hvdyB5b3VyIGFwcHJlY2lhdGlvbi4gWW91IGNhbiBzdGF5IGNvbm5lY3RlZCB3aXRoIG1lIG9uIFR3aXR0ZXLigJRbQHZpbml0X3NoYWhkZW9dKGh0dHBzOi8vdHdpdHRlci5jb20vVmluaXRfU2hhaGRlbykuCgo8YSBocmVmPSJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL3Zpbml0c2hhaGRlbyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2Nkbi5idXltZWFjb2ZmZWUuY29tL2J1dHRvbnMvdjIvZGVmYXVsdC15ZWxsb3cucG5nIiBhbHQ9IkJ1eSBNZSBBIENvZmZlZSIgaGVpZ2h0PSI0MHB4IiB3aWR0aD0iMTUwcHgiID48L2E+CgpUaGFuayB5b3UgZm9yIHlvdXIgc3VwcG9ydCEg8J+Zjwo= readmeEtag: '"d32f42d9c1c80df640aafda2af1bcc7e4579b025"' readmeLastModified: Thu, 27 Apr 2023 05:37:54 GMT repositoryId: 630161086 description: >- Resolve server URLs and extract hosts from OpenAPI 3.x and Swagger specifications. created: '2023-04-19T19:50:39Z' updated: '2024-04-06T04:30:51Z' language: JavaScript archived: false stars: 6 watchers: 3 forks: 0 owner: vinitshahdeo logo: https://avatars.githubusercontent.com/u/20594326?v=4 license: MIT repoEtag: '"5f501361108012a90259168a9514438b991e559347c33e5003e440610f3d23b1"' repoLastModified: Sat, 06 Apr 2024 04:30:51 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/googee/openapi-builder v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQXBpIEdVSSBCdWlsZGVyCgpbZGVtb10oaHR0cHM6Ly9nb29nZWUuZ2l0aHViLmlvL09wZW5BUEktUGFnZS9idWlsZDEwMC8pCgojIyBQcm9qZWN0IHNldHVwCmBgYApucG0gaW5zdGFsbApgYGAKCiMjIyBDb21waWxlcyBhbmQgaG90LXJlbG9hZHMgZm9yIGRldmVsb3BtZW50CmBgYApucG0gcnVuIHNlcnZlCmBgYAoKIyMjIENvbXBpbGVzIGFuZCBtaW5pZmllcyBmb3IgcHJvZHVjdGlvbgpgYGAKbnBtIHJ1biBidWlsZApgYGAKCiMjIyBMaW50cyBhbmQgZml4ZXMgZmlsZXMKYGBgCm5wbSBydW4gbGludApgYGAKCiMjIyBDdXN0b21pemUgY29uZmlndXJhdGlvbgpTZWUgW0NvbmZpZ3VyYXRpb24gUmVmZXJlbmNlXShodHRwczovL2NsaS52dWVqcy5vcmcvY29uZmlnLykuCg== readmeEtag: '"2ae7b28459e5053f49ff08805c8788ee5029dcfc"' readmeLastModified: Sun, 07 Aug 2022 09:45:28 GMT repositoryId: 264067554 description: ':herb: OpenAPI GUI Builder' created: '2020-05-15T01:38:24Z' updated: '2024-05-03T14:54:03Z' language: TypeScript archived: false stars: 6 watchers: 1 forks: 2 owner: GooGee logo: https://avatars.githubusercontent.com/u/13238516?v=4 license: MIT repoEtag: '"1e35891afe659ae4c0f726e2142fdc57a046a58c7f316fdec9a36a9448227aac"' repoLastModified: Fri, 03 May 2024 14:54:03 GMT foundInMaster: true category: - Description Validators - Testing - Server Implementations id: 760db624d3fd67681974029110114e07 - source: openapi3 tags repository: https://github.com/misl/openapi-validator-maven-plugin v3: true repositoryMetadata: base64Readme: >- b3BlbmFwaS12YWxpZGF0b3ItbWF2ZW4tcGx1Z2luCj09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkEgTWF2ZW4gcGx1Z2luIHRvIHN1cHBvcnQgdmFsaWRhdGlvbiBvZiBhbmQgY29udmVyc2lvbiAoWUFNTCB2cyBKU09OKSB0byBPcGVuQVBJIChzd2FnZ2VyKSBmaWxlcyAgdXNpbmcgdGhlIFtTd2FnZ2VyIFBhcnNlciBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wYXJzZXIpLgoKSXQgbm90IG9ubHkgdmVyaWZpZXMgd2hldGhlciB0aGUgQVBJIHNwZWNpZmljYXRpb24gZmlsZXMgYXJlIHZhbGlkLCBidXQgYWxzbyBtZXJnZXMgc3BsaXR0ZWQgZmlsZXMgaW50byBhIHNpbmdsZSBZQU1MIG9yIEpTT04gZmlsZS4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bGwgd2hlcmUgdG9vbHMgY2FuIG5vdCBjb3BlIHdpdGggSlNPTiBgJHJlZmAgcmVmZXJlbmNlcyB0byBleHRlcm5hbCBmaWxlcy4KCk1vcmUgaW5mbyBvbiBzcGxpdHRlZCBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZXMgcmVhZCBbRGVzaWduIFdlYiBBUElzXShodHRwczovL2FwaWhhbmR5bWFuLmlvL3dyaXRpbmctb3BlbmFwaS1zd2FnZ2VyLXNwZWNpZmljYXRpb24tdHV0b3JpYWwtcGFydC04LXNwbGl0dGluZy1zcGVjaWZpY2F0aW9uLWZpbGUvKQoKVXNhZ2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKQWRkIHRvIHlvdXIgYGJ1aWxkLT5wbHVnaW5zYCBzZWN0aW9uIChkZWZhdWx0IHBoYXNlIGlzIGBnZW5lcmF0ZS1zb3VyY2VzYCBwaGFzZSkKYGBgeG1sCjxwbHVnaW4+CiAgPGdyb3VwSWQ+aXQudHJhZWNrLnRvb2xzLm9wZW5hcGk8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+b3BlbmFwaS12YWxpZGF0b3ItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPjEuMC4yPC92ZXJzaW9uPgogIDxleGVjdXRpb25zPgogICAgPGV4ZWN1dGlvbj4KICAgICAgPGdvYWxzPgogICAgICAgIDxnb2FsPmdlbmVyYXRlPC9nb2FsPgogICAgICA8L2dvYWxzPgogICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICA8aW5wdXRTcGVjPiR7cHJvamVjdC5iYXNlZGlyfS9zcmMvbWFpbi9yZXNvdXJjZXMvYXBpLnlhbWw8L2lucHV0U3BlYz4KICAgICAgICA8b3V0cHV0UGF0aD4ke3Byb2plY3QuYnVpbGQuZGlyZWN0b3J5fS9nZW5lcmF0ZWQtc3BlY2lmaWNhdGlvbjwvb3V0cHV0UGF0aD4KICAgICAgICA8b3V0cHV0RmlsZW5hbWU+b3BlbmFwaTwvb3V0cHV0RmlsZW5hbWU+CiAgICAgICAgPG91dHB1dEZvcm1hdD5KU09OQU5EWUFNTDwvb3V0cHV0Rm9ybWF0PgogICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICA8L2V4ZWN1dGlvbj4KICA8L2V4ZWN1dGlvbnM+CjwvcGx1Z2luPgpgYGAKCkZvbGxvd2VkIGJ5OgoKYGBgCm12biBjbGVhbiBjb21waWxlCmBgYAoKIyMjIEdlbmVyYWwgQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCgpQYXJhbWV0ZXIgfCBEZXNjcmlwdGlvbiB8IFJlcXVpcmVkIHwgRGVmYXVsdAotLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0KYGlucHV0U3BlY2AgfCBPcGVuQVBJIFNwZWMgZmlsZSBwYXRoIHwgdHJ1ZSB8CmBvdXRwdXRQYXRoYCB8IHRhcmdldCBvdXRwdXQgcGF0aCB8IGZhbHNlIHwgYCR7cHJvamVjdC5idWlsZC5kaXJlY3Rvcnl9L2dlbmVyYXRlZC1zcGVjaWZpY2F0aW9uYApgb3V0cHV0RmlsZW5hbWVgIHwgT3V0cHV0IGZpbGVuYW1lICh3aXRob3V0IGV4dGVuc2lvbikgfCBmYWxzZSB8IG9wZW5hcGkKYG91dHB1dEZvcm1hdGAgfCBPdXRwdXQgZmlsZSBmb3JtYXQgKGBKU09OYCwgYFlBTUxgLCBgSlNPTkFORFlBTUxgKSB8IGZhbHNlIHwgSlNPTgpgZW5jb2RpbmdgIHwgZW5jb2RpbmcgdG8gdXNlIGZvciBvdXRwdXQgZmlsZXMgfCBmYWxzZSB8ICR7cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZ30KYHByZXR0eVByaW50YCB8IHdoZXRoZXIgdG8gcHJldHR5IHByaW50ICh0cnVlKSBvdXRwdXQgb3Igbm90IHwgZmFsc2UgfCB0cnVlCgojIyMgU2FtcGxlIGNvbmZpZ3VyYXRpb25zCgpQbGVhc2Ugc2VlIFtleGFtcGxlIGNvbmZpZ3VyYXRpb25zXShleGFtcGxlcykgZm9yIGhvdyB0byB1c2UgdGhpcyBtYXZlbiBwbHVnaW4uCg== readmeEtag: '"72475f2d5220fa2950adcd11ddee93c7942fe953"' readmeLastModified: Sat, 19 Feb 2022 11:28:15 GMT repositoryId: 208227598 description: Plugin to validate and merge splitted OpenAPI specification files. created: '2019-09-13T08:46:19Z' updated: '2023-07-24T17:42:50Z' language: Java archived: false stars: 6 watchers: 2 forks: 1 owner: misl logo: https://avatars.githubusercontent.com/u/2040396?v=4 repoEtag: '"ffc4d34da7b733bce41789cc02fbd6494fad87d11e601e799e4133ba00b63723"' repoLastModified: Mon, 24 Jul 2023 17:42:50 GMT foundInMaster: true category: - Description Validators - Parsers id: 36cc2908099c7f4919d0f26f95932d7f - source: openapi3 tags repository: https://github.com/jean85/symfony-openapi-example v3: true repositoryMetadata: base64Readme: >- IyBTeW1mb255IE9wZW5BUEkgZXhhbXBsZQpBbiBleGFtcGxlIG9mIHVzaW5nIGFuIE9wZW5BUEkgc3BlYyBpbiBhIFN5bWZvbnkgYXBwbGljYXRpb24uCgpUaGlzIHJlcG9zaXRvcnkgc2VydmVzIGFzIGNvZGUgZXhhbXBsZSBmb3IgW2EgdGFsa10oaHR0cHM6Ly9hbGVzc2FuZHJvbGFpLmRldi90YWxrcy8yMDIxLXNmZGF5LWFwaS1jb250cmFjdHMtb3BlbmFwaS1kdXJpbmctZGV2ZWxvcG1lbnQvKSB0aGF0IEkgcHJlc2VudGVkIGF0IFtzZmRheSBAIGxvY2FsaG9zdCAyMDIxXShodHRwczovLzIwMjEuc2ZkYXkuaXQpCg== readmeEtag: '"82269e6d705dc1b1fd45e154549ce1e2edd4c0c1"' readmeLastModified: Thu, 13 May 2021 07:37:34 GMT repositoryId: 349101796 description: An example of using an OpenAPI spec in a Symfony application created: '2021-03-18T14:21:00Z' updated: '2022-05-05T07:55:22Z' language: PHP archived: false stars: 6 watchers: 2 forks: 1 owner: Jean85 logo: https://avatars.githubusercontent.com/u/6729988?v=4 license: MIT repoEtag: '"5286e13fa33f0ad82c6041b0b379cc52db8ff8b0a2442c24e695b37e52e49259"' repoLastModified: Thu, 05 May 2022 07:55:22 GMT foundInMaster: true category: - SDK - Server Implementations id: a4f86eaf0c9614329dcf62e5b3118e0c - source: openapi3 tags repository: https://github.com/lzehrung/zod-express-openapi-routes v3: true id: 86218aaea66f6e330ef4798b47533734 repositoryMetadata: base64Readme: >- IyMgT3ZlcnZpZXcKCi0gRmluZCBhbiBlcmdvbm9taWMgd2F5IChtaW5pbWl6ZSBib2lsZXJwbGF0ZSBhbmQgY29kZSBkdXBsaWNhdGlvbikgdG8gZ2V0IHR5cGVkLCB6b2QtdmFsaWRhdGVkIGV4cHJlc3Mgcm91dGVzIGFuZCBhbiBPcGVuQVBJCiAgc2NoZW1hIGF0IHRoZSBzYW1lIHRpbWUKLSBNaW5pbWl6ZSBjb2RlIGR1cGxpY2F0aW9uIGFuZCBib2lsZXJwbGF0ZSBiZXR3ZWVuIGV4cHJlc3Mgcm91dGVzLCByZXF1ZXN0IHBhcmFtZXRlciB2YWxpZGF0aW9uLCBhbmQgT3BlbkFQSSBkZWZpbml0aW9ucwoKIyMgSGlnaGxpZ2h0cwoKLSBiYXNlIGBDb250cm9sbGVyYCBjbGFzcyB0aGF0IGNvbnNvbGlkYXRlcyBjcmVhdGlvbiBvZiBleHByZXNzIHJvdXRlLCB6b2QtdmFsaWRhdGVkIHJlcXVlc3QgcGFyYW1ldGVycywgT3BlbkFQSSBkZWZpbml0aW9uLCBhbmQgZ2V0dGluZyBhIHR5cGVkIGBleHByZXNzLlJvdXRlSGFuZGxlcmA6IFtzcmMvem9kLW9wZW5hcGktZXhwcmVzcy1yb3V0ZXMvem9kLWFwaS5jb250cm9sbGVyLnRzXShzcmMvem9kLW9wZW5hcGktZXhwcmVzcy1yb3V0ZXMvem9kLWFwaS5jb250cm9sbGVyLnRzKQotIGV4YW1wbGUgY29udHJvbGxlciBpbnN0YW5jZTogW3NyYy9wcm9kdWN0cy9wcm9kdWN0cy5jb250cm9sbGVyLnRzXShzcmMvcHJvZHVjdHMvcHJvZHVjdHMuY29udHJvbGxlci50cykKLSBleGFtcGxlIHJlcXVlc3QgcGFyYW1ldGVyIHpvZCBzY2hlbWFzOiBbc3JjL3Byb2R1Y3RzL2FwaS1zY2hlbWFzLnRzXShzcmMvcHJvZHVjdHMvYXBpLXNjaGVtYXMudHMpCi0gZXhhbXBsZSBtYW51YWxseS1kZWZpbmVkIGZpbGUgdXBsb2FkIHJvdXRlIHVzaW5nIFttdWx0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9leHByZXNzanMvbXVsdGVyKSBmb3IgdXBsb2FkczogW3NyYy9wcm9kdWN0cy9wcm9kdWN0cy5jb250cm9sbGVyLnRzI0wxNDhdKHNyYy9wcm9kdWN0cy9wcm9kdWN0cy5jb250cm9sbGVyLnRzI0wxNDgpCgojIyBSdW4gdGhlIGV4YW1wbGUKCi0gY2xvbmUgdGhlIHJlcG9zaXRvcnkKLSBgbnBtIGluc3RhbGxgCi0gYG5wbSBydW4gZGV2YAotIG9wZW4gdGhlIGdlbmVyYXRlZCBPcGVuQVBJIGRvY3MgaHR0cDovL2xvY2FsaG9zdDozMjUwL2FwaS9yZWZlcmVuY2UKLSBvcGVuIHRoZSBnZW5lcmF0ZWQgYHN3YWdnZXIuanNvbmAgaHR0cDovL2xvY2FsaG9zdDozMjUwL2FwaS9zd2FnZ2VyLmpzb24KLSBnZXQgYSBzaW5nbGUgcmVzb3VyY2UgaHR0cDovL2xvY2FsaG9zdDozMjUwL2FwaS9wcm9kdWN0cy8xCi0gYW4gaW52YWxpZCBwYXRoIHBhcmFtZXRlciByZXN1bHRzIGluIHZhbGlkYXRpb24gZXJyb3JzIGh0dHA6Ly9sb2NhbGhvc3Q6MzI1MC9hcGkvcHJvZHVjdHMvYWJjCgojIyBEZXBlbmRlbmNpZXMKCi0gYEBhbmF0aW5lL3pvZC1vcGVuYXBpYDogZ2VuZXJhdGVzIHJlcXVlc3QgcGFyYW1ldGVyIE9wZW5BUEkgZGVmaW5pdGlvbnMgZnJvbSB6b2Qgc2NoZW1hcwotIGBvcGVuYXBpMy10c2A6IHVzZWQgdG8gZGVmaW5lIE9wZW5BUEkgc2NoZW1hIGluIFR5cGVTY3JpcHQKLSBgc3dhZ2dlci11aS1leHByZXNzYDogc2VydmVzIHRoZSBPcGVuQVBJIGRvY3VtZW50YXRpb24KLSBgem9kYDogdXNlZCB0byBkZWZpbmUgcmVxdWVzdCBwYXJhbWV0ZXIgdmFsaWRhdGlvbiBzY2hlbWFzCgojIyBMaW1pdGF0aW9ucwoKLSBmaWxlIHVwbG9hZCByb3V0ZXMgbXVzdCBiZSBkb2N1bWVudGVkIG1hbnVhbGx5Ci0gaGF2ZW4ndCB0ZXN0ZWQgbmVzdGVkIHJvdXRlcnMgLyByb3V0ZXMKLSBub3QgZXh0ZW5zaXZlbHkgdGVzdGVkCg== readmeEtag: '"0bd31b6e9696fb8a5820a4bcb9181fe61851f364"' readmeLastModified: Sun, 21 Apr 2024 22:36:31 GMT repositoryId: 577179642 description: >- POC for cozy API validation, typing, and OpenAPI/swagger schema generation with Zod and Express created: '2022-12-12T06:37:15Z' updated: '2024-06-30T04:50:22Z' language: TypeScript archived: false stars: 6 watchers: 1 forks: 1 owner: lzehrung logo: https://avatars.githubusercontent.com/u/924226?v=4 repoEtag: '"2f0405e423b035c39952d691549b241379350d5ffff64d53390c5553cabebdcf"' repoLastModified: Sun, 30 Jun 2024 04:50:22 GMT category: Parsers foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/aptori-dev/sift-action v3: true v3_1: true id: 81a95e8d4e1634da0b6c0ea11d40c674 repositoryMetadata: base64Readme: >- WyFbQXB0b3JpXShodHRwczovL2FwcC5hcHRvcmkuZGV2L3Byb2plY3RNZXJjdXJ5UHVycGxlLnN2ZyldKGh0dHBzOi8vYXB0b3JpLmRldi8pCgojIEFwdG9yaSBTaWZ0IEFjdGlvbgoKCkFwdG9yaSBpcyBhbiBBSS1FbmFibGVkIFtkZXZlbG9wZXIgdG9vbCBmb3IgQVBJIFRlc3RpbmddKGh0dHBzOi8vYXB0b3JpLmRldi8pCmFuZCBBcHBsaWNhdGlvbiBTZWN1cml0eSBUZXN0aW5nLgoKQXB0b3JpIGxldmVyYWdlcyBBSSB0byBhc3Npc3QgaW4gdGhlIGRldmVsb3BtZW50IG9mIHNlY3VyZSwgaGlnaC1xdWFsaXR5CnNvZnR3YXJlLiBPdXIgU2VtYW50aWMgUmVhc29uaW5nIFRlY2hub2xvZ3kgY29tcHJlaGVuZHMgdGhlIHN0cnVjdHVyZSBvZiB5b3VyCmFwcGxpY2F0aW9uLCBhbGxvd2luZyBmb3IgYXV0b25vbW91cyBhcHBsaWNhdGlvbiB0ZXN0aW5nLiBUaGlzIGVmZmljaWVuY3kgZnJlZXMKZGV2ZWxvcGVycyBmcm9tIHRpbWUtY29uc3VtaW5nIHRlc3RpbmcgdGFza3Mgd2hpbGUgZW5zdXJpbmcgdGhlIHNvZnR3YXJlIGlzCnNlY3VyZSBhbmQgZnVuY3Rpb25zIGFzIGludGVuZGVkLgoKU2lmdCB1c2VzIEFJIHRvIHVuZGVyc3RhbmQgdGhlIGFwcGxpY2F0aW9uJ3MgQVBJIHNlbWFudGljYWxseSwgaWRlbnRpZnlpbmcgaG93CmRpZmZlcmVudCBvcGVyYXRpb25zIGNvbm5lY3QgYW5kIGNyZWF0aW5nIGEgbG9naWNhbCBmbG93Y2hhcnQgb2YgdGhlc2UKd29ya2Zsb3dzLiBJdCB0aGVuIHRlc3RzIHRoZXNlIHdvcmtmbG93cyBieSBwcm92aWRpbmcgYXBwcm9wcmlhdGUgaW5wdXQgdmFsdWVzLApjaGVja2luZyB0aGF0IHRoZSBhcHBsaWNhdGlvbidzIGJ1c2luZXNzIGxvZ2ljIGlzIGFjY3VyYXRlIGF0IGVhY2ggc3RhZ2UuCgpJbnRlZ3JhdGUgU2lmdCBpbiB5b3VyIENJIHRvIGlkZW50aWZ5IGJ1c2luZXNzIGxvZ2ljIGJ1Z3MgYW5kIHNlY3VyaXR5CnZ1bG5lcmFiaWxpdGllcyBpbiB5b3VyIGFwcGxpY2F0aW9ucyB3aXRoIEFwdG9yaSBBdXRvbm9tb3VzIFtBcHBsaWNhdGlvbgpTZWN1cml0eSBUZXN0aW5nXShodHRwczovL2FwdG9yaS5kZXYvYXBwc2VjL3NlY3VyaXR5LXRlc3RpbmcpLiBTaWZ0IEFjdGlvbiBpcyBhCltHaXRIdWIgQWN0aW9uXShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9hY3Rpb25zKSB0aGF0IHJ1bnMgQXB0b3JpJ3MgU2lmdCBDTEkKdG9vbCBpbiBhIGNvbnRpbm91cyBpbnRlZ3JhdGlvbiAoQ0kpIHdvcmtmbG93LgoKCiMjIEFkZGl0aW9uYWwgSW5mb3JtYXRpb24KCiogV2F0Y2ggW0hvdyBBcHRvcmkgV29ya3NdKGh0dHBzOi8vYXB0b3JpLmRldi9wcm9kdWN0L3doeS1hcHRvcmkpIGZvciBhIGxvb2sgYXQgdGhlCiAgdGVjaG5vbG9neSB0aGF0IG1ha2VzIFNpZnQgdW5pcXVlLgoqIFtBcHRvcmkgRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmFwdG9yaS5kZXYvKSBoYXMgZnVydGhlciBkZXRhaWxzIG9uIHRoZQogIFNpZnQgQ0xJIHRvb2wgYW5kIHRoZSBBcHRvcmkgUGxhdGZvcm0uCiogW0dpdEh1YgogIFdvcmtmbG93c10oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vYWN0aW9ucy91c2luZy13b3JrZmxvd3MvYWJvdXQtd29ya2Zsb3dzKQogIGhhcyBmdXJ0aGVyIGRldGFpbHMgYWJvdXQgY29uZmlndXJpbmcgam9icyBpbiBHaXRIdWIgQWN0aW9ucy4KCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyAxLiBHZXQgeW91ciBBcHRvcmkgYWNjb3VudApUbyBydW4gU2lmdCwgeW91IG5lZWQgdG8gaGF2ZSBhbiBhY2NvdW50IG9uIEFwdG9yaS4gR2V0IGluIHRvdWNoIHdpdGggb3VyCmV4cGVydCB0ZWFtIHRvIHNldCB1cCBhIFt0cmlhbAphY2NvdW50XShodHRwczovL2FwdG9yaS5kZXYvZ2V0LWFwdG9yaS1ib29rLWEtZGVtbykuIEFmdGVyIGFjdGl2YXRpbmcgeW91cgphY2NvdW50LCB5b3UgY2FuIGVtcGxveSBgc2lmdC1hY3Rpb25gIHRvIGV2YWx1YXRlIHlvdXIgYXBwbGljYXRpb27igJlzIEFQSSwgYW5kCmF1dG9tYXRpY2FsbHkgdXBsb2FkIHRoZSBmaW5kaW5ncyB0byB0aGUgQXB0b3JpIFBsYXRmb3JtLgoKIyMjIDIuIEFkZCBTaWZ0IHRvIHlvdXIgd29ya2Zsb3cKR28gdG8gdGhlIEdpdEh1YiBSZXBvc2l0b3J5IG9uIHdoaWNoIHlvdSB3YW50IHRvIHJ1biBTaWZ0LiBBZGQgdGhlCmBzaWZ0LWFjdGlvbmAgdG8gYW4gZXhpc3RpbmcgR2l0SHViIHdvcmtmbG93IG9yIGNyZWF0ZSBhIG5ldyB3b3JrZmxvdy4KQSBzYW1wbGUgd29ya2Zsb3cgZmlsZSBpcyBwcm92aWRlZCBiZWxvdyB1bmRlciBbRXhhbXBsZSBXb3JrZmxvd10oI2V4YW1wbGUtd29ya2Zsb3cpLgoKSW4geW91ciBHaXRIdWIgcmVwb3NpdG9yeSBzZXR0aW5ncywgYWRkIHZhbHVlcyBpbiBzZWNyZXRzIGFuZCB2YXJpYWJsZXMgdGhhdAphcmUgdXNlZCBmb3IgaW5wdXQgdmFsdWVzIG9mIHRoZSBBY3Rpb24uCgoqIERlZmluZSBhCiAgW3NlY3JldF0oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vYWN0aW9ucy9zZWN1cml0eS1ndWlkZXMvZW5jcnlwdGVkLXNlY3JldHMpCiAgbmFtZWQgYFNJRlRfUExBVEZPUk1fS0VZYCB0aGF0IGNvbnRhaW5zIHRoZSB2YWx1ZSBvZiBhbiBBcHRvcmkgUGxhdGZvcm0gS2V5LgogIFRoaXMgc2VjcmV0IGlzIHVzZWQgZm9yIHRoZSByZXF1aXJlZCBpbnB1dCBgcGxhdGZvcm1LZXlgIGluIHRoZSB3b3JrZmxvdwogIGV4YW1wbGUgYmVsb3cuCiogRGVmaW5lIGEKICBbdmFyaWFibGVdKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvbGVhcm4tZ2l0aHViLWFjdGlvbnMvdmFyaWFibGVzI2NyZWF0aW5nLWNvbmZpZ3VyYXRpb24tdmFyaWFibGVzLWZvci1hLXJlcG9zaXRvcnkpCiAgbmFtZWQgYFNJRlRfQ09ORklHVVJBVElPTl9JRGAgdGhhdCBjb250YWlucyB0aGUgSUQgb2YgYSBjb25maWd1cmF0aW9uIGNyZWF0ZWQKICBpbiB0aGUgQXB0b3JpIFBsYXRmb3JtLiAgVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGZvciB0aGUgcmVxdWlyZWQgaW5wdXQKICBgY29uZmlndXJhdGlvbklkYCBpbiB0aGUgd29ya2Zsb3cKICBleGFtcGxlIGJlbG93LgoKCiMjIEFjdGlvbiBJbnB1dHMKCiMjIyBgcGxhdGZvcm1LZXlgCioqUmVxdWlyZWQqKiBcCkFwdG9yaSBQbGF0Zm9ybSBrZXkuCgojIyMgYGNvbmZpZ3VyYXRpb25JZGAKKipSZXF1aXJlZCoqIFwKSUQgb2YgY29uZmlndXJhdGlvbiB0byBmZXRjaCBmcm9tIEFwdG9yaSBQbGF0Zm9ybS4KCiMjIyBgdGFyZ2V0VXJsYAoqKk9wdGlvbmFsKiogXApVUkwgd2hlcmUgYXBwbGljYXRpb24gQVBJIGNhbiBiZSBhY2Nlc3NlZC4gVGhpcyBvdmVycmlkZXMgdGhlIFVSTCBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCgojIyMgYGxhYmVsc2AKKipPcHRpb25hbCoqICBcClNwYWNlLXNlcGFyYXRlZCBsaXN0IGxhYmVscyBpbiBrZXk9dmFsdWUgZm9ybSB0byBhcHBlbmQgdG8gdGhlIG1ldGRhdGEgZm9yIGEgdGVzdCBydW4uCgojIyMgYG5ldHdvcmtgCioqT3B0aW9uYWwqKiBcCkRvY2tlciBuZXR3b3JrIGJyaWRnZSBuYW1lLiBNYWtlIHN1cmUgeW91ciBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0IHJ1bnMgaW4gdGhlIHNhbWUgbmV0d29yay4KCgojIyBBY3Rpb24gT3V0cHV0cwoKU2lmdCBvdXRwdXRzIHRlc3QgcmVzdWx0cyBpbiBTQVJJRiBmb3JtYXQgaW4gZmlsZSBgc2lmdC5zYXJpZmAgaW4gdGhlIHdvcmtzcGFjZQp3aGVyZSB0aGUgQWN0aW9uIGlzIHJ1bi4KCgojIyBFeGFtcGxlIFdvcmtmbG93CgpCZWxvdyBpcyBhIHNhbXBsZSB3b3JrZmxvdyB0aGF0IHVzZXMgU2lmdCBBY3Rpb24uICBUaGlzIHdvcmtmbG93IHVzZXMgYSBzZWNyZXQKKGBTSUZUX1BMQVRGT1JNX0tFWWApIGFuZCB2YXJpYWJsZSAoYFNJRlRfQ09ORklHVVJBVElPTl9JRGApIHRoYXQgYXJlIGRlZmluZWQgaW4KdGhlIHJlcG9zaXRvcnkgc2V0dGluZ3MuCgpgYGB5YW1sCiMgQW4gZXhhbXBsZSB3b3JrZmxvdyBmaWxlIHRvIGhlbHAgeW91IGdldCBzdGFydGVkCm5hbWU6IFJ1biBTaWZ0CgojIENvbnRyb2xzIHdoZW4gdGhlIHdvcmtmbG93IHdpbGwgcnVuCm9uOgogIHB1c2g6CiAgICBicmFuY2hlczogWyBtYWluIF0KICBwdWxsX3JlcXVlc3Q6CiAgICBicmFuY2hlczogWyBtYWluIF0KCmpvYnM6CiAgYXB0b3JpLXNpZnQ6CiAgICBuYW1lOiBBcHRvcmkgU2lmdAogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAoKICAgICMKICAgICMgUGVybWlzc2lvbnMgdG8gdXBsb2FkIHRoZSBDb2RlIFNjYW5uaW5nIHJlc3VsdAogICAgIyAob25seSBuZWNlc3NhcnkgaWYgdXNpbmcgR2l0SHViIEFkdmFuY2VkIFNlY3VyaXR5IGFuZCBTQVJJRiB1cGxvYWQgYmVsb3cpCiAgICAjCiAgICBwZXJtaXNzaW9uczoKICAgICAgYWN0aW9uczogcmVhZAogICAgICBjb250ZW50czogcmVhZAogICAgICBzZWN1cml0eS1ldmVudHM6IHdyaXRlCgogICAgc3RlcHM6CiAgICAtIG5hbWU6IENoZWNrIG91dCByZXBvCiAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjQKCiAgICAjCiAgICAjIEV4YW1wbGUgb2YgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gd2l0aCBEb2NrZXIuCiAgICAjCiAgICAjIE5vdGUsIHRoaXMgaXMgYW4gZXhhbXBsZS4gIEFkZCB3b3JrZmxvdyBzdGVwKHMpIHRvIGRlcGxveSBvciBydW4gYW4KICAgICMgaW5zdGFuY2Ugb2YgeW91ciBhcHBsaWNhdGlvbi4KICAgICMKICAgIC0gbmFtZTogQnVpbGQgYW5kIHJ1biB0aGUgYXBwbGljYXRpb24KICAgICAgcnVuOiB8CiAgICAgICAgZG9ja2VyIGJ1aWxkIC10IG15YXBwOmxhdGVzdCAuCiAgICAgICAgZG9ja2VyIG5ldHdvcmsgY3JlYXRlIG5ldHdvcmsxCiAgICAgICAgZG9ja2VyIHJ1biAtZCAtcCA1MDAwOjUwMDAgLS1uZXR3b3JrIG5ldHdvcmsxIC0tbmFtZSBteWFwcCBteWFwcDpsYXRlc3QKCiAgICAjCiAgICAjIFJ1biBTaWZ0IHVzaW5nIHBsYXRmb3JtIGtleSBhbmQgY29uZmlndXJhdGlvbiBJRCBzdG9yZWQgaW4geW91ciByZXBvc2l0b3J5IHNlY3JldHMKICAgICMKICAgIC0gbmFtZTogUnVuIFNpZnQKICAgICAgdXNlczogQXB0b3JpLWRldi9zaWZ0LWFjdGlvbkB2MQogICAgICB3aXRoOgogICAgICAgIHBsYXRmb3JtS2V5OiAke3sgc2VjcmV0cy5TSUZUX1BMQVRGT1JNX0tFWSB9fQogICAgICAgIGNvbmZpZ3VyYXRpb25JZDogJHt7IHZhcnMuU0lGVF9DT05GSUdVUkFUSU9OX0lEIH19CiAgICAgICAgdGFyZ2V0VXJsOiBodHRwOi8vbXlhcHA6NTAwMAogICAgICAgIG5ldHdvcms6IG5ldHdvcmsxCiAgICAgICAgIyBVc2VyLWRlZmluZWQgbGFiZWxzIGNhbiBiZSB1c2VkIHRvIGhlbHAgZGlzdGluZ3Vpc2ggYSBwYXJ0aWN1bGFyIHJ1bgogICAgICAgIGxhYmVsczogfAogICAgICAgICAgR0lUSFVCX1JVTl9JRD0ke3tnaXRodWIucnVuX2lkfX0KICAgICAgICAgIEdJVEhVQl9SVU5fTlVNQkVSPSR7e2dpdGh1Yi5ydW5fbnVtYmVyfX0KICAgICAgICAgIGNvbW1pdD0ke3tnaXRodWIuc2hhfX0KCiAgICAjCiAgICAjIE9wdGlvbmFsOiBVcGxvYWQgU0FSSUYgZmlsZSB0byBHaXRIdWIgQ29kZSBTY2FubmluZwogICAgIyAocmVxdWlyZXMgR2l0SHViIEFkdmFuY2VkIFNlY3VyaXR5KQogICAgIwogICAgLSBuYW1lOiBVcGxvYWQgU0FSSUYgZmlsZQogICAgICB1c2VzOiBnaXRodWIvY29kZXFsLWFjdGlvbi91cGxvYWQtc2FyaWZAdjIKICAgICAgd2l0aDoKICAgICAgICAjIFBhdGggdG8gU0FSSUYgZmlsZSByZWxhdGl2ZSB0byB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeQogICAgICAgIHNhcmlmX2ZpbGU6IHNpZnQuc2FyaWYKICAgICAgICAjIENhdGVnb3J5IGZvciB0aGUgcmVzdWx0cyAtIHRvIGRpZmZlcmVudGlhdGUgbXVsdGlwbGUgcmVzdWx0cyBmb3Igb25lIGNvbW1pdAogICAgICAgIGNhdGVnb3J5OiBhcHRvcmktc2lmdApgYGAK readmeEtag: '"ad932a263f9789126ae17cfa2f97ed109ff0fbd0"' readmeLastModified: Mon, 15 Jul 2024 21:46:43 GMT repositoryId: 681837537 description: Run Aptori Sift in GitHub Actions created: '2023-08-22T21:43:03Z' updated: '2024-07-15T21:46:47Z' language: JavaScript archived: false stars: 6 watchers: 2 forks: 0 owner: Aptori-dev logo: https://avatars.githubusercontent.com/u/140379261?v=4 license: MIT repoEtag: '"3bbda8149fb728451ec393419e35c924680c8d3c02550003dfbce3533009e94b"' repoLastModified: Mon, 15 Jul 2024 21:46:47 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/simplesolutiondev/spring-boot-api-doc v3: true repositoryMetadata: base64Readme: IyBzcHJpbmctYm9vdC1hcGktZG9jCmh0dHBzOi8vc2ltcGxlc29sdXRpb24uZGV2Lwo= readmeEtag: '"e479106ea25158730654b2bbeff2599cbe923fd0"' readmeLastModified: Wed, 03 Feb 2021 17:10:49 GMT repositoryId: 335696724 description: >- Spring Boot RESTful API Documentation with OpenAPI 3.0 and Swagger-UI using springdoc-openapi created: '2021-02-03T17:06:17Z' updated: '2023-03-05T00:36:40Z' language: Java archived: false stars: 6 watchers: 2 forks: 1 owner: simplesolutiondev logo: https://avatars.githubusercontent.com/u/48798703?v=4 repoEtag: '"6200854603a18883b6de03b7a765fac144c536df464ac40d676d0b73f911923f"' repoLastModified: Sun, 05 Mar 2023 00:36:40 GMT foundInMaster: true category: - Low-level Tooling - Server - Server Implementations id: 58570b657a0d147e81d5a480138f034d - source: openapi3 tags repository: https://github.com/zchee/protoc-gen-openapi v3: true repositoryMetadata: base64Readme: >- IyBwcm90b2MtZ2VuLW9wZW5hcGkKClRoaXMgcGFja2FnZSBjb3B5IGZyb20gW2lzdGlvLmlvL3Rvb2xzL29wZW5hcGkvcHJvdG9jLWdlbi1vcGVuYXBpQDU5M2E0MWM3NmM1Y10oaHR0cHM6Ly9naXRodWIuY29tL2lzdGlvL3Rvb2xzL3RyZWUvNTkzYTQxYzc2YzVjODRhNGNkNTFhNGFiMGMzNDU2MzBjNWVkMzBiYS9vcGVuYXBpL3Byb3RvYy1nZW4tb3BlbmFwaSkuCgojIyBXaGF0J3MgdGhpcyBmb3I/CgpgcHJvdG9jLWdlbi1vcGVuYXBpYCBpcyBhIHBsdWdpbiBmb3IgdGhlIEdvb2dsZSBwcm90b2NvbCBidWZmZXIgY29tcGlsZXIgdG8gZ2VuZXJhdGUKb3BlbkFQSSBWMyBzcGVjIGZvciBhbnkgZ2l2ZW4gaW5wdXQgcHJvdG9idWYuIEl0IHJ1bnMgYXMgYSBgcHJvdG9jLWdlbi1gIGJpbmFyeSB0aGF0IHRoZQpwcm90b2J1ZiBjb21waWxlciBpbmZlcnMgZnJvbSB0aGUgYG9wZW5hcGlfb3V0YCBmbGFnLgoKIyMgQnVpbGQgYHByb3RvYy1nZW4tb3BlbmFwaWAKCmBwcm90b2MtZ2VuLW9wZW5hcGlgIGlzIHdyaXR0ZW4gaW4gR28sIHNvIGVuc3VyZSB0aGF0IGlzIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gWW91CmNhbiBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgW2dvbGFuZyB3ZWJzaXRlXShodHRwczovL2dvbGFuZy5vcmcvZG9jL2luc3RhbGwpIG9yCm9uIERlYmlhbiBvciBVYnVudHUsIHlvdSBjYW4gaW5zdGFsbCBpdCBmcm9tIHRoZSBwYWNrYWdlIG1hbmFnZXI6CgpgYGBiYXNoCnN1ZG8gYXB0LWdldCBpbnN0YWxsIC15IGdvbGFuZwpgYGAKClRvIGJ1aWxkLCBmaXJzdCBlbnN1cmUgeW91IGhhdmUgdGhlIHByb3RvY29sIGNvbXBpbGVyIChwcm90b2MpOgoKYGBgYmFzaApnbyBnZXQgZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG8KYGBgClRvIGJ1aWxkLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIGZyb20gdGhpcyBwcm9qZWN0IGRpcmVjdG9yeToKCmBgYGJhc2gKZ28gYnVpbGQKYGBgCgpUaGVuIGVuc3VyZSB0aGUgcmVzdWx0aW5nIGBwcm90b2MtZ2VuLW9wZW5hcGlgIGJpbmFyeSBpcyBpbiB5b3VyIGBQQVRIYC4gQSByZWNvbW1lbmRlZCBsb2NhdGlvbgppcyBgJEhPTUUvYmluYDoKCmBgYGJhc2gKY3AgcHJvdG9jLWdlbi1vcGVuYXBpICRIT01FL2JpbgpgYGAKClNpbmNlIHRoZSBmb2xsb3dpbmcgaXMgb2Z0ZW4gaW4geW91ciBgJEhPTUUvLmJhc2hyY2AgZmlsZToKCmBgYGJhc2gKZXhwb3J0IFBBVEg9JEhPTUUvYmluOiRQQVRICmBgYAoKIyMgVXNpbmcgcHJvdG9jLWdlbi1vcGVuYXBpCgotLS0KKipUSVAqKgoKVGhlIC1JIG9wdGlvbiBpbiBwcm90b2MgaXMgdXNlZnVsIHdoZW4geW91IG5lZWQgdG8gc3BlY2lmeSBwcm90byBwYXRocyBmb3IgaW1wb3J0cy4KCi0tLQoKVGhlbiB0byBnZW5lcmF0ZSB0aGUgT3BlbkFQSSBzcGVjIG9mIHRoZSBwcm90b2J1ZiBkZWZpbmVkIGJ5IGZpbGUucHJvdG8sIHJ1bgoKYGBgYmFzaApwcm90b2MgLS1vcGVuYXBpX291dD1vdXRwdXRfZGlyZWN0b3J5IGlucHV0X2RpcmVjdG9yeS9maWxlLnByb3RvCmBgYAoKV2l0aCB0aGF0IGlucHV0LCB0aGUgb3V0cHV0IHdpbGwgYmUgd3JpdHRlbiB0bwoKCW91dHB1dF9kaXJlY3RvcnkvZmlsZS5qc29uCgpPdGhlciBzdXBwb3J0ZWQgb3B0aW9ucyBhcmU6CiogICBgcGVyX2ZpbGVgCiAgICAqICAgd2hlbiBzZXQgdG8gYHRydWVgLCB0aGUgb3V0cHV0IGlzIHBlciBwcm90byBmaWxlIGluc3RlYWQgb2YgcGVyIHBhY2thZ2UuCiogICBgc2luZ2xlX2ZpbGVgCiAgICAqICAgd2hlbiBzZXQgdG8gYHRydWVgLCB0aGUgb3V0cHV0IGlzIGEgc2luZ2xlIGZpbGUgb2YgYWxsIHRoZSBpbnB1dCBwcm90b3Mgc3BlY2lmaWVkLgoqICAgYHVzZV9yZWZgCiAgICAqICAgd2hlbiBzZXQgdG8gYHRydWVgLCB0aGUgb3V0cHV0IHVzZXMgdGhlIGAkcmVmYCBmaWVsZCBpbiBPcGVuQVBJIHNwZWMgdG8gcmVmZXJlbmNlIG90aGVyIHNjaGVtYXMuCiogICBgeWFtbGAKICAgICogICB3aGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBvdXRwdXQgaXMgaW4geWFtbCBmaWxlLgo= readmeEtag: '"f31ced1b88dfdc36857ffb7531a5422beb32eb21"' readmeLastModified: Sat, 07 Sep 2019 17:43:11 GMT repositoryId: 207004447 description: >- protoc-gen-openapi is a plugin for the Google protocol buffer compiler to generate openAPI V3 spec for any given input protobuf. created: '2019-09-07T17:43:22Z' updated: '2023-04-17T23:58:47Z' language: Go archived: false stars: 6 watchers: 3 forks: 3 owner: zchee logo: https://avatars.githubusercontent.com/u/6366270?v=4 license: Apache-2.0 repoEtag: '"3bd2dd2189da3006681fb469fed73312d2859b951e7ec5b772e6a88a7c2a04fc"' repoLastModified: Mon, 17 Apr 2023 23:58:47 GMT foundInMaster: true category: - Converters - Parsers id: 3c9503e39e26f0a16d4a9d0dd134824a - source: openapi3 tags repository: https://github.com/codecentric/reedelk-module-rest v3: true repositoryMetadata: base64Readme: >- IyBSZWVkZWxrIE1vZHVsZSBSRVNUCgpSRVNUIGNvbXBvbmVudHMgYW5kIGNvbm5lY3RvcnMgZm9yIFJlZWRlbGsgSW50ZWdyYXRpb24gUGxhdGZvcm06IGh0dHBzOi8vd3d3LnJlZWRlbGsuY29tL2RvY3VtZW50YXRpb24KCiMjIyBDcmVhdGluZyBhIHRlc3Qgb25seSBTU0wgQ2VydGlmaWNhdGUKCiogQ3JlYXRlIGEgY2VydGlmaWNhdGUgd2l0aCBTZWxmU2lnbmVkQ2VydGlmaWNhdGVCdWlsZGVyCiogY2FjZXJ0cyBmaWxlIChzdG9yZXMgdGhlIGNlcnRpZmljYXRlcykgaXMgaW4gdGhlIEphdmEgSG9tZSAoZS5nIC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjguMF82Ni5qZGsvQ29udGVudHMvSG9tZS9qcmUvbGliL3NlY3VyaXR5KQoqIExpc3QgY2VydGlmaWNhdGVzOiBrZXl0b29sIC1saXN0IC1rZXlzdG9yZSBjYWNlcnRzCiogRGVsZXRlIGNlcnRpZmljYXRlIChieSBnaXZlbiBhbGlhcyk6IHN1ZG8ga2V5dG9vbCAtZGVsZXRlIC1hbGlhcyByZWVkZWxrdGVzdCAta2V5c3RvcmUgY2FjZXJ0cwoqIEFkZCBjZXJ0aWZpY2F0ZSAod2l0aCBhbGlhcyk6IHN1ZG8ga2V5dG9vbCAtaW1wb3J0IC10cnVzdGNhY2VydHMgLWZpbGUgL1VzZXJzL3VzZXJuYW1lL0Rlc2t0b3AvbXljZXJ0LmNydCAtYWxpYXMgbG9jYWxob3N0IC1rZXlzdG9yZSBjYWNlcnRzIAo= readmeEtag: '"961767867872af867b86f065cd6e0e2522cf344f"' readmeLastModified: Fri, 23 Apr 2021 22:59:16 GMT repositoryId: 256693326 description: Reedelk REST module created: '2020-04-18T07:21:44Z' updated: '2021-04-23T22:59:19Z' language: Java archived: false stars: 6 watchers: 2 forks: 2 owner: codecentric logo: https://avatars.githubusercontent.com/u/1009716?v=4 license: Apache-2.0 repoEtag: '"dc9948d0797b2b4b210cfc4eff661c206cb808327d6a5d2ac42bbc640c8c0119"' repoLastModified: Fri, 23 Apr 2021 22:59:19 GMT foundInMaster: true category: Parsers id: 4e253326e6db56c587fbb0c78c612baf - source: openapi3 tags repository: https://github.com/numberfour/openapi-scala v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNjYWxhCgpUaGlzIHByb2plY3QgY29udGFpbnMgYW4gb3BpbmlvbmF0ZWQgbGlicmFyeSBhbmQgU0JUIFBsdWdpbiBmb3IgU2NhbGEgY29kZSBnZW5lcmF0aW9uIGZyb20gW09wZW5BUEkgMy4wXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIGNvbXBsaWFudCBZQU1MLiAKClRoaXMgd2lsbCBnZW5lcmF0ZSBkYXRhIHN0cnVjdHVyZXMoaS5lLiwgc2NoZW1hcyBvciB0eXBlcyksIENpcmNlIEpTT04gc2VyaWFsaXplcnMsIGFuZCBQYXRocyAoaS5lLiwgcm91dGUgZGVmaW5pdGlvbnMpIGZvciBSRVNUIEFQSXMuCgpXZSBkbyBub3Qgc3VwcG9ydCBhbGwgT3BlbkFQSSAzLjAgZmVhdHVyZXMuIEZvciBtb3JlIGRldGFpbHMgb24gd2hhdCBpcyBzdXBwb3J0ZWQsIGxvb2sgYXQgdGhlIFtMaW1pdGF0aW9uc10oI2xpbWl0YXRpb25zKSBzZWN0aW9uLgoKIyMgTW9kdWxlcwoKIyMjIHNidC1vcGVuYXBpClRoZSBTQlQgbW9kdWxlIGBzYnQtb3BlbmFwaWAgaXMgdGhlIGludGVyZmFjZSBmb3IgdGhlIGdlbmVyYXRvciB0b29sY2hhaW4gYW5kIGNvbnRhaW5zOgphKSBhbiBpbnRlcmZhY2UgdG8gZWFzaWx5IGFkZCB0aGUgb3BlbkFQSSBnZW5lcmF0b3IgdG8gYSBwcm9qZWN0CmIpIFB1dCBleHRlcm5hbCBvcGVuQVBJIHJlc291cmNlcy9kZWZpbml0aW9ucy95YW1sLWZpbGVzIG5leHQgdG8gaW50ZXJuYWwgZGVmaW5pdGlvbnMgdG8gbWFrZSB0aGVtIHJlZmVyYWJsZS4gVGhpcyBlbmFibGVzCnNoYXJpbmcgYXJ0aWZhY3QgYWNyb3NzIG11bHRpcGxlIG9wZW5BUEkgcHJvamVjdHMgKGxpa2Ugc2hhcmVkIGVycm9yIG1lc3NhZ2VzLyBkYXRhIHN0cnVjdHVyZXMpLgpjKSBsb2dpYyB0byBsb2FkLCByZXNvbHZlIGFuZCBhZ2dyZWdhdGUgb3BlbkFQSSBkZWZpbml0aW9ucyB1c2luZyB0aGUgaW8uc3dhZ2dlci5wYXJzZXIgYW5kIGdlbmVyYXRlZCBhIHNpbmdsZSBjb21iaW5lZAogb3BlbmFwaS5qc29uIGRlZmluaXRpb24gYXMgb3V0cHV0CmQpIHRyaWdnZXIgY29kZSBnZW5lcmF0aW9uLiAoYG9wZW5hcGktc2NhbGFgKSAKCiMjIyBvcGVuYXBpLXNjYWxhCmBvcGVuYXBpLXNjYWxhYHMgbWFpbiByZXNwb25zaWJpbGl0eSBpcyB0byBwYXJzZSBhIHNpbmdsZSBvcGVuQVBJLmpzb24gZmlsZSBpbnRvIG1lbW9yeSAoYGFzdGApLCB0cmFuc2Zvcm0gaXQgaW50byBhCmdlbmVyYXRvciBmcmllbmRseSBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gKGByZXByYCkgYW5kIGdlbmVyYXRlIHNjYWxhIGNvZGUgKGBnZW5lcmF0b3JgKS4KCiMjIyBvcGVuYXBpLWxpYiAmIG9wZW5hcGktaHR0NHMtbGliCkxpYnJhcmllcyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZS4KCiMjIyMgUm91dGVzCgpXZSBzdXBwb3J0IGRpZmZlcmVudCB0eXBlcyBvZiBSb3V0ZSBnZW5lcmF0aW9uLCBkZXBlbmRpbmcgb24gdGhlIGJhY2tlbmQgeW91IG5lZWQgaXQgZm9yLiAgLy9UT0RPIHdoaWNoIGJhY2tlbmRzIGRvIHdlIGhhdmUgYW5kIGhvdyBkbyB3ZSBjb25maWd1cmUgaXQ/CgotIFRoZSBnZW5lcmljIFJvdXRlcyBhcmUgZWFjaCB0cmFuc2xhdGVkIHRvIGEgU2NhbGEgYHRyYWl0YCBkZWNsYXJpbmcgaW50ZXJmYWNlcyBmb3IgdGhhdCBwYXJ0aWN1bGFyIEhUVFAgcm91dGUuCi0gVGhlIGh0dHA0cyBSb3V0ZXMgdHJhbnNsYXRlIGludG8gdHdvIGZpbGVzLCBvbmUgZmlsZSB3aXRoIGEgdHJhaXQgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiB5b3UnbGwgbmVlZCB0byBwcm92aWRlIGFuZCAKb25lIGZpbGUgd2l0aCBhbiBvYmplY3QgYXBwbHkgZnVuY3Rpb24gb2Ygd2hpY2ggYWNjZXB0cyBtZW50aW9uZWQgaW1wbGVtZW50YXRpb24gdHJhaXQuIAoKVGhlIG5hbWVzIG9mIHRoZSBmdW5jdGlvbnMgaW1wbGVtZW50aW5nIHRoZSByb3V0ZSBhcmUgZWl0aGVyCiBhKSB0aGUgY29uY2F0ZW5hdGlvbiBvZiBodHRwIG1ldGhvZCBhbmQgcGF0aCBvcgogYikgdGhlIG9wdGlvbmFsbHkgbW9yZSBkZXNjcmlwdGl2ZSBjb250ZW50IG9mIHRoZSBgb3BlcmF0aW9uSWRgIGZpZWxkIChhcyBzcGVjaWZpZWQgaW4gT0FTIDMuMCkgCiAKIyMgQ29tcG9uZW50cwoKQ29tcG9uZW50cyBpbiBPcGVuQVBJIGFyZSB0aGUgdHlwZXMgdGhhdCBjYW4gYmUgcmVmZXJyZWQgdG8gYXMgaW5wdXRzL291dHB1dHMgZm9yIHJvdXRlcy4gQSBjb21tb24gdXNlIG9mIGNvbXBvbmVudHMgaXMgCnRvIGRlZmluZSBwcm9kdWN0IHR5cGVzLiBXZSB0YWtlIHRoZXNlIGNvbXBvbmVudHMgYW5kIHRyYW5zbGF0ZSB0aGVtIHRvIFNjYWxhIGNhc2UgY2xhc3Nlcy4gQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBleGFtcGxlOgoKYGBgeWFtbApjb21wb25lbnRzOgogICAgc2NoZW1hczoKICAgICAgICBQZXJzb246CiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBNeSB0ZXN0IGRlc2NyaXB0aW9uCiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICBuYW1lOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgd2VpZ2h0OgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgpgYGAKClRoZSBjb2RlIGFib3ZlIHdpbGwgYmUgdHJhbnNsYXRlZCB0byBmb2xsb3dpbmcgU2NhbGEgY29kZToKCmBgYHNjYWxhCi8qKgogKiBNeSB0ZXN0IGRlc2NyaXB0aW9uCioqLwpmaW5hbCBjYXNlIGNsYXNzIFBlcnNvbihuYW1lOiBTdHJpbmcsIHdlaWdodDogRG91YmxlKQoKb2JqZWN0IFBlcnNvbiB7CiAgICBpbXBsaWNpdCB2YWwgY3VzdG9tRGVjb2RlcnMgPSBkZXJpdmVEZWNvZGVyW1BlcnNvbl0ocmVuYW1pbmcuc25ha2VDYXNlLCBOb25lKQogICAgaW1wbGljaXQgdmFsIGN1c3RvbUVuY29kZXJzID0gZGVyaXZlRW5jb2RlcltQZXJzb25dKHJlbmFtaW5nLnNuYWtlQ2FzZSwgdHJ1ZSwgTm9uZSkKCn0KYGBgCgojIyMgc2J0LW9wZW5hcGkKClNCVCBzdWItcHJvamVjdCBgc2J0LW9wZW5hcGlgIGNvbnRhaW5zIGFuIFNCVCBwbHVnaW4gdGhhdCBhbGxvd3MgdGhlIHVzZSBvZiBgb3BlbmFwaS1zY2FsYWAgbGlicmFyeSB0byBhIGdpdmVuIFlBTUwgZmlsZSB0aGF0IHdpbGwgYmUgbG9hZGVkCmFuZCB1c2VkIHRvIGdlbmVyYXRlIG1hbmFnZWQgU2NhbGEgc291cmNlcy4KCiMjIFF1aWNrc3RhcnQKCkEgcmVsZWFzZSBsb2cgb2YgdGhlIHBsdWdpbiBhbmQgdGhlIGxpYnJhcnkgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2dpdGh1Yi5udW1iZXJmb3VyLmV1L1NlcnZlci9vcGVuYXBpLXNjYWxhL3JlbGVhc2VzKS4KClRvIHVzZSB0aGUgcGx1Z2luLCB5b3UgZmlyc3QgbmVlZCB0byBtYWtlIGl0IGF2YWlsYWJsZSBpbiB5b3VyIFNCVC4KCmBgYHNjYWxhCi8vIHByb2plY3QvcGx1Z2lucy5zYnQKYWRkU2J0UGx1Z2luKCJjb20uZW5mb3JlIiAlICJzYnQtb3BlbmFwaSIgJSAiPG9wZW5hcGktc2NhbGEtdmVyc2lvbj4iKQpgYGAKCllvdSB3aWxsIGFsc28gbmVlZCB0byBtYWtlIHRoZSBsaWJyYXJ5IGF2YWlsYWJsZSB0byBiZSBhYmxlIHRvIHVzZSB0aGUgZ2VuZXJhdGVkIGNvZGUuCgpgYGBzY2FsYQpsaWJyYXJ5RGVwZW5kZW5jaWVzICs9ICJjb20uZW5mb3JlIiAlJSAib3BlbmFwaS1saWIiICUgIjxvcGVuYXBpLXNjYWxhLXZlcnNpb24+IgpgYGAKCkFkZGl0aW9uYWxseSwgeW91IHdpbGwgbmVlZCB0byBzYXRpc2Z5IHRoZXNlIGxpYnJhcnkgZGVwZW5kZW5jaWVzIGZvciBgb3BlbmFwaS1saWJgLiBUaGUgcHJvdmlkZWQgdmVyc2lvbnMgYXJlIHRlc3RlZCBhbmQgbWFkZSBzdXJlIHRvIHdvcmsuIFlvdSBzaG91bGQgYmUgYWJsZSB0byB1c2UgYW55IHZlcnNpb24gY29tcGF0aWJsZSB3aXRoIHlvdXIgcHJvamVjdCB0aG91Z2guCgovLyBUT0RPIHNob3VsZG4ndCB3ZSBhdXRvbWF0aWNhbGx5IGFkZCB0aGVzZSBkZXBlbmRlbmNpZXMgdmlhIHRoZSBTQlQgYXV0byBwbHVnaW4gdmlhIGZsYWc/CmBgYHNjYWxhCiJjb20uYmVhY2hhcGUiICUlICJlbnVtZXJhdHVtIiAgICAgICAlICIxLjUuMTMiLAoiY29tLmJlYWNoYXBlIiAlJSAiZW51bWVyYXR1bS1jaXJjZSIgJSAiMS41LjIwIiwKImlvLmNpcmNlIiAgICAgJSUgImNpcmNlLWRlcml2YXRpb24iICUgIjAuMTEuMC1NMSIsCiJjb20uY2h1dXNhaSIgICUlICJzaGFwZWxlc3MiICAgICAgICAlICIyLjMuMyIKYGBgCgpGb3IgaHR0cDRzIFJvdXRlcyB5b3Ugd2lsbCBhbHNvIG5lZWQ6IAoKYGBgc2NhbGEKIm9yZy5odHRwNHMiICUlIHMiaHR0cDRzLWRzbCIgJSAiMC4yMC4wLU03IiwKIm9yZy5odHRwNHMiICUlIHMiaHR0cDRzLWNpcmNlIiAlICIwLjIwLjAtTTciCmBgYAoKT25jZSB0aGUgcGx1Z2luIGlzIGF2YWlsYWJsZSBpbiB5b3VyIHByb2plY3QgeW91IGNhbiBlbmFibGUgaXQgb24gYSBnaXZlbiBhbiBTQlQgc3ViLXByb2plY3QgYW5kIHVzZSB0aGUgc2V0dGluZyBgb3BlbkFQSU91dHB1dFBhY2thZ2VgIHRvIHNwZWNpZnkKdGhlIHBhY2thZ2UgbmFtZSBmb3IgeW91ciBjb21wb25lbnRzLiAKCmBgYHNjYWxhCi8vIGJ1aWxkLnNidApsYXp5IHZhbCByb290ID0gKHByb2plY3QgaW4gKCIuIikpCiAgICAuc2V0dGluZ3MoCiAgICAgICAgb3BlbkFQSU91dHB1dFBhY2thZ2UgOj0gImNvbS5lbmZvcmUubW9kZWwiLAogICAgICAgIGxpYnJhcnlEZXBlbmRlbmNpZXMgKz0gImNvbS5lbmZvcmUiICUlICJvcGVuYXBpLWxpYiIgJSAiPG9wZW5hcGktc2NhbGEtdmVyc2lvbj4iCiAgICApCiAgICAuZW5hYmxlUGx1Z2lucyhPcGVuYXBpUGx1Z2luKQpgYGAKCiMjIyBTQlQgU2V0dGluZ3MKCkZvbGxvd2luZyBhcmUgdGhlIHNldHRpbmdzIGF2YWlsYWJsZSBmb3IgeW91ciBTQlQgcHJvamVjdC4KCioqb3BlbkFQSVNvdXJjZSoqOiBTb3VyY2UgZGlyZWN0b3J5IGZvciBPcGVuQVBJLiBEZWZhdWx0cyB0byBgc3JjL21haW4vb3BlbmFwaWAgb2YgdGhlIHByb2plY3QuCgoqKm9wZW5BUElPdXRwdXQqKjogT3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIE9wZW5BUEkuIERlZmF1bHRzIHRvIG1hbmFnZWQgc291cmNlcyDigJQgYG9wZW5hcGlgLgoKKipvcGVuQVBJT3V0cHV0UGFjYWtnZSoqOiBOYW1lIG9mIHRoZSBwYWNrYWdlIHRvIGJlIHVzZWQgZm9yIE9wZW5BUEkgY29tcG9uZW50cy4KCioqcm91dGVJbXBsZW1lbnRhdGlvbnMqKjogQSBMaXN0IG9mIGBjb20uZW5mb3JlLmFwaXMuZ2VuZXJhdG9yLlJvdXRlSW1wbGVtZW50YXRpb25gLCB3aGljaCBjb250cm9scyB3aGljaCBraW5kIG9mIHJvdXRlcyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBGaW5kIG91dCBtb3JlIGFib3V0IFtyb3V0ZXNdKCNSb3V0ZXMpCgojIyBSZWZpbmVtZW50cwoKT0FTIDMuMCBhbGxvd3Mgb25lIHRvIHNldCBjb25zdHJhaW50cyBvbiB0aGUgcHJpbWl0aXZlIGlucHV0IHR5cGVzLiBXZSB1c2UgdGhlIFtSZWZpbmVkXShodHRwczovL2dpdGh1Yi5jb20vZnRob21hcy9yZWZpbmVkKSBsaWJyYXJ5IGZvciBTY2FsYSB0byByZXByb2R1Y2UgdGhlc2UgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLiBUaGlzIG1lYW5zIHRoYXQgeW91IGRvIG5vdCBuZWVkIHRvIG1hbnVhbGx5IHNldHVwIHZhbGlkYXRpb25zIGZvciBhbnkgcmVmaW5lbWVudHMgYW5kIGNvbnN0cmFpbnRzIGluIHRoZSBpbnB1dHMgZm9yIHlvdXIgQVBJLiBUaGlzLCBob3dldmVyLCBhbHNvIG1lYW5zIHRoYXQgeW91IHdpbGwgaGF2ZSB0byByZXR1cm4gdmFsdWVzIHdpdGggcmVmaW5lbWVudHMgaWYgdGhlcmUgYXJlIGFueSBpbiB0aGUgcmV0dXJuIHR5cGVzLgoKSW4gdGhlIGV4YW1wbGUgY29kZSBiZWxvdywgd2UgYWxzbyBnZW5lcmF0ZSBhIGNvbnN0cnVjdG9yIGZvciBhIHZhbHVlIG92ZXIgd2hpY2ggcmVmaW5lbWVudHMgZXhpc3QuIFRoZXNlIHJlZmluZW1lbnRzIGV4aXN0IGluc2lkZSBhbiBvYmplY3QgY2FsbGVkIGBSZWZpbmVtZW50Q29uc3RydWN0b3JzYCB0aGF0IGlzIGZ1cnRoZXIgbmVzdGVkIGluIHRoZSBjb21wYW5pb24gb2JqZWN0IGZvciB0aGUgZ2VuZXJhdGVkIGNhc2UgY2xhc3MuIFRoZSBuYW1lcyBvZiB0aGUgY29uc3RydWN0b3JzIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHZhbHVlcyBmb3Igd2hpY2ggdGhlIHJlZmluZW1lbnRzIGV4aXN0LgoKYGBgc2NhbGEKaW1wb3J0IHNoYXBlbGVzcy5fCgpmaW5hbCBjYXNlIGNsYXNzIE15VGVzdE91dHB1dChuYW1lOiBTdHJpbmcgUmVmaW5lZCBBbGxPZltNaW5TaXplW1cuYDFgLlRdIDo6IE1heFNpemVbVy5gMjU2YC5UXSA6OiBITmlsXSkKCm9iamVjdCBNeVRlc3RPdXRwdXQgewogICAgb2JqZWN0IFJlZmluZW1lbnRDb25zdHJ1Y3RvcnMgewogICAgICAgIHZhbCBuYW1lID0gU3RyaW5nIFJlZmluZWQgQWxsT2ZbTWluU2l6ZVtXLmAxYC5UXSA6OiBNYXhTaXplW1cuYDI1NmAuVF0gOjogSE5pbF0KCiAgICB9Cn0KYGBgCgojIyBSZWFkIE9ubHkgUHJvcGVydGllcwoKT3BlbkFQSSAzLjAgc3VwcG9ydHMgbWFya2luZyBwcm9wZXJ0aWVzIGluIG9iamVjdHMgYXMgcmVhZC1vbmx5LiBUaGlzIGNoZWNrcyB0aGF0IHRoZSBwcm9wZXJ0eSBpcyBhdmFpbGFibGUgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0aGUgb3V0cHV0IG9mIGEgcm91dGUsIGJ1dCBub3QgZm9yIGlucHV0cy4KCldlIG1vZGVsIHRoaXMgaW4gU2NhbGEgYnkgZ2VuZXJhdGluZyB0d28gdHlwZXMgaW4gY2FzZSBhIGZpZWxkIGlzIG1hcmtlZCByZWFkLW9ubHkuIFRoZSBnZW5lcmF0b3Igd2lsbCB0aGVuIGF1dG9tYXRpY2FsbHkgdXNlIHRoZSByaWdodCB0eXBlIGRlcGVuZGluZyBvbiB3ZWF0aGVyIHRoZSBvYmplY3QgaXMgdXNlZCBhcyBpbnB1dCBvciBvdXRwdXQuCgpgYGB5YW1sCk15T2JqZWN0OgogICAgdHlwZTogb2JqZWN0CiAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUKICAgICAgICBib2R5OgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKYGBgCgpUaGlzIHdpbGwgZ2VuZXJhdGUgdHdvIFNjYWxhIGNsYXNzZXMgdGhhdCBhcmUgYXMgZm9sbG93czoKCmBgYHNjYWxhCmZpbmFsIGNhc2UgY2xhc3MgTXlPYmplY3RSZXF1ZXN0KGJvZHk6IFN0cmluZykKCmZpbmFsIGNhc2UgY2xhc3MgTXlPYmplY3QoaWQ6IFN0cmluZywgYm9keTogU3RyaW5nKQpgYGAKCiMjIFVuaW9ucyAmIEVudW1zCgpPcGVuQVBJIDMuMCB1c2VzIGBvbmVPZmAgdHlwZXMgdG8gcmVwcmVzZW50IHVuaW9ucyBvciBlbnVtZXJhdGlvbnMuIEluIFNjYWxhLCB0aGVyZSBpcyBubyB3YXkgdG8gaGF2ZSBwcm9wZXIgQWxnZWJyYWljIERhdGEgVHlwZXMgKEFEVHMpLiBXaGlsZSBwcm9kdWN0cyBjYW4gYmUgcmVwcmVzZW50ZWQgdXNpbmcgY2FzZSBjbGFzc2VzLCB0aGUgb25seSB3YXkgdG8gcmVwcmVzZW50IHVuaW9ucyBpcyB0byBjcmVhdGUgY2xhc3NlcyB0aGF0IGV4dGVuZCBhIGdpdmVuIHRyYWl0LgoKVGhpcywgaG93ZXZlciwgbWFrZXMgZGVmaW5pbmcgYXJiaXRyYXJ5IHVuaW9ucyB2ZXJ5IGRpZmZpY3VsdC4gVGhlcmVmb3JlLCB3ZSB1c2UgW1NoYXBlbGVzcycgZGlzY3JpbWluYXRlZCB1bmlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWxlc3NhYmluL3NoYXBlbGVzcy93aWtpL0ZlYXR1cmUtb3ZlcnZpZXc6LXNoYXBlbGVzcy0yLjAuMCNjb3Byb2R1Y3RzLWFuZC1kaXNjcmltaW5hdGVkLXVuaW9ucykgdG8gcmVwcmVzZW50IGBhbnlPZmAgdHlwZXMgaW4gU2NhbGEuCgpgYGBzY2FsYQpmaW5hbCBjYXNlIGNsYXNzIE15VW5pb25XcmFwcGVyKHZhbHVlOiBVbmlvbikKCm9iamVjdCBNeVVuaW9uV3JhcHBlciB7CiAgICB0eXBlIFVuaW9uID0gSXRlbTEgOis6IEl0ZW0yIDorOiBDTmlsCgogICAgb2JqZWN0IGpzb25Db252ZXJzaW9ucyBleHRlbmRzIFBvbHkxIHsKICAgICAgICBpbXBsaWNpdCBkZWYgY2FzZUl0ZW0xID0gYXRbU2luZ2xlVGFyZ2V0Q29udmVyc2lvbl0oXy5hc0pzb24uZGVlcE1lcmdlKEpzb24ub2JqKCJAdHlwZSIgLT4gSnNvbi5mcm9tU3RyaW5nKCJJdGVtMSIpKSkpCiAgICAgICAgaW1wbGljaXQgZGVmIGNhc2VJdGVtMiA9IGF0W011bHRpVGFyZ2V0Q29udmVyc2lvbl0oXy5hc0pzb24uZGVlcE1lcmdlKEpzb24ub2JqKCJAdHlwZSIgLT4gSnNvbi5mcm9tU3RyaW5nKCJJdGVtMiIpKSkpCgogICAgfQoKICAgIGltcGxpY2l0IHZhbCBjdXN0b21lckVuY29kZXJzID0gbmV3IEVuY29kZXJbTXlVbmlvbldyYXBwZXJdIHsKICAgICAgZGVmIGFwcGx5KGE6IENvbnZlcnNpb24pOiBKc29uID0gewogICAgICAgIChhLnZhbHVlIG1hcCBqc29uQ29udmVyc2lvbnMpLnVuaWZ5CiAgICAgIH0KICAgIH0KCiAgaW1wbGljaXQgdmFsIGN1c3RvbURlY29kZXI6IERlY29kZXJbTXlVbmlvbldyYXBwZXJdID0gbmV3IERlY29kZXJbQ29udmVyc2lvbl0gewogICAgZGVmIGFwcGx5KGM6IEhDdXJzb3IpOiBEZWNvZGVyLlJlc3VsdFtNeVVuaW9uV3JhcHBlcl0gPSB7CiAgICAgIHZhbCBvdXRwdXQgPSBjLmRvd25GaWVsZCgiQHR5cGUiKS5hc1tTdHJpbmddIG1hdGNoIHsKICAgICAgICBjYXNlIFJpZ2h0KCJJdGVtMSIpID0+IGMudmFsdWUuYXNbSXRlbTFdLm1hcChDb3Byb2R1Y3RbVW5pb25dKF8pKQogICAgICAgIGNhc2UgUmlnaHQoIkl0ZW0yIikgPT4gYy52YWx1ZS5hc1tJdGVtMl0ubWFwKENvcHJvZHVjdFtVbmlvbl0oXykpCiAgICAgICAgY2FzZSBfID0+IExlZnQoRGVjb2RpbmdGYWlsdXJlLmFwcGx5KCJUeXBlIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGUiLCBMaXN0KEN1cnNvck9wLkRvd25GaWVsZCgiQHR5cGUiKSkpKQogICAgICB9CiAgICAgIG91dHB1dC5tYXAoTXlVbmlvbldyYXBwZXIuYXBwbHkpCiAgICB9CiAgfQoKfQpgYGAKClVzaW5nIHRoZXNlIGFyYml0cmFyeSB1bmlvbnMgaXMgZWFzaWVyIHRoYW4gaXQgZmlyc3QgYXBwZWFycy4gVG8gY3JlYXRlIGEgdmFsdWUgb2YgdHlwZSBgTXlVbmlvbldyYXBwZXJgLCB3aGljaCBpcyBkZWZpbmVkIHVzaW5nIGBvbmVPZmAgaW4gT3BlbkFQSSwgd2UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGNvZGU6CgpgYGBzY2FsYQppbXBvcnQgc2hhcGVsZXNzLl8KdmFsIGl0ZW0xVW5pb24gPSBNeVVuaW9uV3JhcHBlcihDb3Byb2R1Y3RbTXlVbmlvbldyYXBwZXIuVW5pb25dKGl0ZW0xKSkKdmFsIGl0ZW0yVW5pb24gPSBNeVVuaW9uV3JhcHBlcihDb3Byb2R1Y3RbTXlVbmlvbldyYXBwZXIuVW5pb25dKGl0ZW0yKSkKYGBgCgpIYW5kbGluZyB0aGUgdmFsdWVzIG9mIHRoYXQgYXJlIGFscmVhZHkgd3JhcHBlZCBhbmQgbWFwcGluZyB0aGVtIHRvIHNvbWV0aGluZyBpcyBzbGlnaHRseSBtb3JlIHdvcmsuIFdlIHVzZSB0aGUgYFBvbHkxYCAgZnJvbSBTaGFwZWxlc3MgdG8gY3JlYXRlIGZ1bmN0aW9ucyB0aGF0IGNhbiBtYXAgb3ZlciBhIGNvLXByb2R1Y3QuCgpgYGBzY2FsYQpvYmplY3QgY29udmVydFRvVCBleHRlbmRzIFBvbHkxIHsKICAgIGltcGxpY2l0IHZhbCBvbmVUb1QgPSBhdFtJdGVtMV0oeCA9PiBvbmVUb1QoeCkpCiAgICBpbXBsaWNpdCB2YWwgdHdvVG9UID0gYXRbSXRlbTJdKHggPT4gdHdvVG9UKHgpKQp9Cgp2YWwgY29udmVydGVkSXRlbTogVCA9IGl0ZW0xVW5pb24uZm9sZChjb252ZXJ0VG9UKQpgYGAKCk91ciBgY29udmVydFRvVGAgZnVuY3Rpb24gY29udmVydHMgZXZlcnkgcG9zc2libGUgdmFsdWUgdG8gYSB0eXBlIGBUYCBhbmQgdGhlbiB3ZSB1bmlmeSB0aGVtLiBTaW5jZSB3ZSBrbm93IHRoYXQgb3VyIGNvLXByb2R1Y3Qgd2lsbCBjb250YWluIGV4YWN0bHkgb25lIHZhbHVlIG9mIHRoZSBwb3NzaWJsZSBnaXZlbiB0eXBlcywgd2UgY2FuIGJlIGNlcnRhaW4gdGhhdCB3ZSB3aWxsIGVuZCB1cCB3aXRoIGF0IGxlYXN0IG9uZSB2YWx1ZSBvZiB0eXBlIGBUYC4KCiMjIExpbWl0YXRpb25zCgpUaGlzIGdlbmVyYXRvciBpcyBoaWdobHkgb3BpbmlvbmF0ZWQgYW5kIHNraXBzIG92ZXIgY2VydGFpbiBmZWF0dXJlcyBkZWZpbmVkIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gZm9yIHRoZSBzYWtlIG9mIEFQSSBjb25zaXN0ZW5jeSBhbmQgY29tcGF0aWJpbGl0eSB3aXRoIG1vZGVybiB0eXBlZCBsYW5ndWFnZXMuCgojIyMgTGltaXRhdGlvbnMKCi0gV2UgZG8gbm90IHN1cHBvcnQgYW55IGFub255bW91cyB0eXBlcyBmb3IgcmVwcmVzZW50aW5nIEhUVFAgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4KLSBXZSBkbyBub3Qgc3VwcG9ydCBuZXN0ZWQgdHlwZSBkZWZpbml0aW9ucy4gVGhlcmVmb3JlLCBhbnkgb2JqZWN0cyB0aGF0IGFyZSB1c2VkIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgY29tcG9uZW50cyBhbmQgbXVzdCBub3QgY29udGFpbgogIGFueSBvdGhlciBuZXN0ZWQgb2JqZWN0cy4gTmVzdGVkIGFycmF5cywgaG93ZXZlciwgYXJlIHN1cHBvcnRlZC4KLSBXZSBkbyBub3Qgc3VwcG9ydCBtb3JlIHRoYW4gb25lIHR5cGUgZm9yIENvbnRlbnQtVHlwZSBoZWFkZXIgZm9yIGluY29taW5nIHJlcXVlc3RzLiBNdWx0aXBsZSB0eXBlcyBjb3JyZXNwb25kaW5nIHRvIHRoZWlyIGVuY29kaW5ncyBhcmUsIGhvd2V2ZXIsIGF2YWlsYWJsZSB3aXRoIGFuIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIgb24gYSByZXF1ZXN0LgotIFdlIGRvIG5vdCBzdXBwb3J0IGBhbnlPZmAgdHlwZXMgZnJvbSBPcGVuQVBJIDMuMC4gU3VnZ2VzdGlvbnMgYXMgdG8gaG93IHRoZSBiZWhhdmlvdXIgZm9yIHRoZSBzYW1lIHNob3VsZCBiZSByZXByZXNlbnRlZCBpbiBnZW5lcmF0ZWQgU2NhbGEgY29kZSBhcmUgd2VsY29tZS4KLSBXZSBkbyBub3Qgc3VwcG9ydCBpbmxpbmVkIHNjaGVtYSBkZWZpbml0aW9uIGZvciBpbnB1dCBhbmQgb3V0cHV0IG9iamVjdCB0eXBlcyBpbiByb3V0ZSBkZWZpbml0aW9ucyBpbiBPcGVuQVBJIGlucHV0IGZpbGVzLiBUaGVyZWZvcmUsIHRoZXNlIG11c3QgYmUgZGVmaW5lZCBhcyBjb21wb25lbnRzIGFuZCByZWZlcnJlZC4KLSBXZSBkbyBub3Qgc3VwcG9ydCB0eXBlIGFsaWFzaW5nIG9yIHJpY2ggdHlwaW5nLiBGb3IgaW5zdGFuY2UsIGlmIHlvdSBoYXZlIGEgcHJpbWl0aXZlIHR5cGUgd2l0aCBhIHBhcnRpY3VsYXIgc2V0IG9mIHJlZmluZW1lbnRzLCB5b3Ugd291bGQgaGF2ZSB0byBwb2ludCBvdXQgdGhvc2UgcmVmaW5lbWVudHMgZXZlcnl3aGVyZSB3aXRoIHRob3NlIHJlZmluZW1lbnRzIGluc3RlYWQgb2YgcmVmZXJyaW5nIHRoZW0gZnJvbSBhIGRlZmluaXRpb24uCg== readmeEtag: '"c70fd0cbc59430cfe21cb54d59302cbb69f78e9d"' readmeLastModified: Tue, 18 Aug 2020 13:29:31 GMT repositoryId: 259959923 description: >- An opinionated library and SBT plugin for generating Scala code from OpenAPI 3. created: '2020-04-29T15:08:59Z' updated: '2023-08-25T08:39:34Z' language: Scala archived: false stars: 6 watchers: 5 forks: 4 owner: NumberFour logo: https://avatars.githubusercontent.com/u/319804?v=4 license: MIT repoEtag: '"bcaf0638c6fd44fbca9b0dd56692bb2b41969f073a9c451ec6b1aef5da91bafb"' repoLastModified: Fri, 25 Aug 2023 08:39:34 GMT foundInMaster: true id: 59ff09178d2859e3ebe7eea756af30b7 - source: openapi3 tags repository: https://github.com/dsietz/actix-web-openapi v3: true repositoryMetadata: base64Readme: >- IyBBY3RpeCBXZWIgT3BlbkFQSQohW1ZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdmVyc2lvbi0wLjAuMS1ibHVlLnN2ZykKIVtNSVQvQXBhY2hlLTIuMF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVCUyRkFwYWNoZS0tMi4wLWJsdWUuc3ZnKQoKLS0tCgojIyBVc2FnZQpgYGAKZXh0ZXJuIGNyYXRlIGFjdGl4X3dlYl9vcGVuYXBpOwoKZm4gbWFpbigpIHsKICAgIG1hdGNoIGFjdGl4X3dlYl9vcGVuYXBpOjpmcm9tX3BhdGgoIi4vZGF0YS92My4wL3BldHN0b3JlLnlhbWwiKSB7CiAgICAgICAgT2soc3BlYykgPT4gewogICAgICAgICAgICBsZXQgc2VydmVycyA9IHNwZWMuc2VydmVycy51bndyYXAoKTsKCiAgICAgICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVycy5pdGVyKCkgewogICAgICAgICAgICAgICAgbWF0Y2ggc2VydmVyLnRvX2NsaWVudF9yZXF1ZXN0KCkuZmluaXNoKCkgewogICAgICAgICAgICAgICAgICAgIE9rKGNsaWVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGNsaWVudC51cmkoKS5zY2hlbWVfc3RyKCksIFNvbWUoImh0dHAiKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoY2xpZW50LnVyaSgpLmhvc3QoKSwgU29tZSgicGV0c3RvcmUuc3dhZ2dlci5pbyIpKTsKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShjbGllbnQudXJpKCkucG9ydF91MTYoKSwgTm9uZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoY2xpZW50LnVyaSgpLnBhdGgoKSwgIi92MSIpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgRXJyKF9lcnIpID0+IGFzc2VydCEoZmFsc2UpLAogICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgRXJyKF9lcnIpID0+IGFzc2VydCEoZmFsc2UpLAogICAgfQp9CmBgYAoKIyMgTGljZW5zZQpUaGlzIHNvbHR1aW9uIHVzZXMgb3BlbiBzb3VyY2UgcHJvZHVjdHMgYW5kIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBpbmhlcml0ZWQgbGljZW5zZSBhZ3JlZW1lbnRzLgoKLSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsIChMSUNFTlNFLUFQQUNIRSBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCi0gTUlUIExpY2Vuc2UgKExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpCg== readmeEtag: '"5bf6053932aeaec58b5fefa6105ae156711ffe40"' readmeLastModified: Mon, 22 Apr 2019 16:27:58 GMT repositoryId: 182823521 description: >- Contract testing of an OpenAPI document for REST service running on Actix Web created: '2019-04-22T16:13:04Z' updated: '2023-12-27T14:43:02Z' language: Rust archived: false stars: 6 watchers: 2 forks: 1 owner: dsietz logo: https://avatars.githubusercontent.com/u/21245551?v=4 license: Apache-2.0 repoEtag: '"78ab780039387d29a03abd66b45424f696012f2c000f2640cec03ed4a4246b2f"' repoLastModified: Wed, 27 Dec 2023 14:43:02 GMT foundInMaster: true category: - Documentation - Parsers id: d1ef4b9f79b9d5f5499d73404fd347cd - source: openapi3 tags repository: https://github.com/seipan/bulma v3: true id: 5a221309bc76af6ae48f51f2e5f6c5a3 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KCiFbTGFzdCBjb21taXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L3NlaXBhbi9ibHVtYT9zdHlsZT1mbGF0LXNxdWFyZSkKIVtSZXBvc2l0b3J5IFN0YXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zdGFycy9zZWlwYW4vYmx1bWE/c3R5bGU9ZmxhdC1zcXVhcmUpCiFbSXNzdWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMvc2VpcGFuL2JsdW1hP3N0eWxlPWZsYXQtc3F1YXJlKQohW09wZW4gSXNzdWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcmF3L3NlaXBhbi9ibHVtYT9zdHlsZT1mbGF0LXNxdWFyZSkKWyFbZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9zZWlwYW4vbG9naG9vay9hY3Rpb25zL3dvcmtmbG93cy9nby55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3NlaXBhbi9sb2dob29rL2FjdGlvbnMvd29ya2Zsb3dzL2dvLnltbCkKCjxpbWcgc3JjPSJodHRwczovL2kucGluaW1nLmNvbS83MzZ4LzdkLzVlLzBkLzdkNWUwZDhjZWE0NTJmZTkxOGUyNmYxZWIxNGVhODdiLmpwZyIgYWx0PSJleWVjYXRjaCIgaGVpZ2h0PSIyMDAiPgoKIyBidWxtYQoKIDpwdW5jaDogQ0xJIHRvb2wgdG8gcGFyc2UgT3BlbkFQSSBhbmQgc3RyZXNzIHRlc3QgZWFjaCBlbmRwb2ludC4gOnB1bmNoOgoKPGJyPgo8YnI+CgoKPC9kaXY+CgojIyBJbnN0YWxsCmBgYApnbyBpbnN0YWxsIGdpdGh1Yi5jb20vc2VpcGFuL2J1bG1hQGxhdGVzdApgYGAKCiMjIFVzYWdlCmBgYApVc2FnZToKICBibHVtYSBbZmxhZ3NdCgpGbGFnczoKICAtYiwgLS1iYXNlcGF0aCBzdHJpbmcgICAgIEJhc2VVUkwgZm9yIHN0cmVzcyB0ZXN0CiAgLWQsIC0tZHVyYXRpb24gZHVyYXRpb24gICBzdHJlc3MgdGVzdCBkdXJhdGlvbiAoZGVmYXVsdCAxbnMpCiAgLXAsIC0tZmlsZXBhdGggc3RyaW5nICAgICBGaWxlUGF0aCBmb3IgUGFyc2luZyBPcGVuQVBJCiAgLWYsIC0tZnJlcXVlbmN5IGludCAgICAgICBzdHJlc3MgdGVzdCBmcmVxdWVuY3kgKGRlZmF1bHQgMSkKICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIGhlbHAgZm9yIGJsdW1hCmBgYAoKIyMjIyBgLWJhc2VwYXRoYAoKVGhpcyBpcyB0aGUgYmFzZSBVUkwgd2hlcmUgeW91IHdhbnQgdG8gYXBwbHkgdGhlIGxvYWQuCgojIyMjIGAtZHVyYXRpb25gCgpUaGlzIGlzIHN0cmVzcyB0ZXN0IGR1cmF0aW9uLiAoZGVmYXVsdCAxbnMpCgojIyMjIGAtZmlsZXBhdGhgCgpUaGlzIGlzIEZpbGVQYXRoIGZvciBQYXJzaW5nIE9wZW5BUEkuCgojIyMjIGAtZnJlcXVlbmN5YAoKVGhpcyBpcyAgc3RyZXNzIHRlc3QgZnJlcXVlbmN5LiAoZGVmYXVsdCAxKQoKIyMgRXhhbXBsZQpgYGAKYnVsbWEgLS1wYXRoPXRlc3RkYXRhL2hlYWx0aC55YW1sIC0tYmFzZT1odHRwOi8vbG9jYWxob3N0OjgwODAKYGBgCgpgYGAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1idWxtYSBhdHRhY2sgc3RhcnQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tdmVnZXRhIGF0dGFjayB0byBodHRwOi8vbG9jYWxob3N0OjgwODAvaGVhbHRoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KdmVnZXRhIGF0dGFjayB0byBtZXRob2Q6IEdFVApwYXRoIFN0YXR1c0NvZGU6IG1hcFsyMDA6MV0KCm1heCBwZXJjZW50aWxlOiAzMzMuNjIwNG1zCm1lYW4gcGVyY2VudGlsZTogMzMzLjYyMDRtcwp0b3RhbCBwZXJjZW50aWxlOiAzMzMuNjIwNG1zCjk5dGggcGVyY2VudGlsZTogMzMzLjYyMDRtcwoKIGVhcmxpZXN0OiAyMDIzLTA5LTIzIDA1OjIzOjA1LjE4Mzk3ODQgKzA5MDAgSlNUIG09KzEuMDI5MzAxNTAxCiBsYXRlc3Q6IDIwMjMtMDktMjMgMDU6MjM6MDUuMTgzOTc4NCArMDkwMCBKU1QgbT0rMS4wMjkzMDE1MDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1idWxtYSBhdHRhY2sgZmluaXNoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpgYGAKCiMjIExpY2Vuc2UKQ29kZSBsaWNlbnNlZCB1bmRlciAKW3RoZSBNSVQgTGljZW5zZV0oaHR0cHM6Ly9naXRodWIuY29tL3NlaXBhbi9idWxtYS9ibG9iL21haW4vTElDRU5TRSkuCg== readmeEtag: '"9c5a23f1a6d55933976941fe9c6e0cf8889a5e63"' readmeLastModified: Tue, 06 Aug 2024 15:30:11 GMT repositoryId: 671336325 description: ':punch: CLI tool to parse OpenAPI and stress test each endpoint. :punch:' created: '2023-07-27T05:04:35Z' updated: '2024-08-06T15:30:15Z' language: Go archived: false stars: 6 watchers: 2 forks: 1 owner: seipan logo: https://avatars.githubusercontent.com/u/88176012?v=4 license: MIT repoEtag: '"6cd2a77ff55501fbfb9d259227880ec75ff674cd260d4adccbb00e5f81a7a360"' repoLastModified: Tue, 06 Aug 2024 15:30:15 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/stackql/stackql-azure-openapi v3: true id: f897f3b7f1828ef4e100d421cb3110a5 repositoryMetadata: base64Readme: >- IyBBenVyZSBPcGVuQVBJIERvYyBHZW5lcmF0b3IKCkdlbmVyYXRlcyBhIHNpbmdsZSBPcGVuQVBJIGRvY3VtZW50IGZvciBlYWNoIEF6dXJlIFJlc291cmNlIE1hbmFnZXIgc2VydmljZSBmcm9tIGEgc2V0IG9mIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgc291cmNlZCBmcm9tIFtfX2F6dXJlLXJlc3QtYXBpLXNwZWNzX19dKGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcykuICAKClRoaXMgcHJvamVjdCB1c2VzIFtfX2F1dG9yZXN0X19dKGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9hdXRvcmVzdCkgdmlhIEphdmFTY3JpcHQgdG8gZW1pdCB0aGUgbGF0ZXN0IHNldCBvZiBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGZvciBlYWNoIHNlcnZpY2UsICB0aGVuIGRlcmVmZXJlbmNlcyBhbmQgY29tYmluZXMgdGhlIGRvY3VtZW50cyBpbnRvIGEgc2luZ2xlIFlBTUwgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHVzaW5nIFtfX0FQSURldlRvb2xzL2pzb24tc2NoZW1hLXJlZi1wYXJzZXJfX10oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL2pzb24tc2NoZW1hLXJlZi1wYXJzZXIpLiAKCj4gYSBjb21wbGV0ZSBzZXQgb2Ygc3BlY3MgZm9yIGVhY2ggc2VydmljZSBpcyBhdmFpbGFibGUgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3FsL3N0YWNrcWwtYXp1cmUtb3BlbmFwaS90cmVlL21haW4vb3BlbmFwaS8zLWNvbWJpbmVkKQoKPiBhIHNldCBvZiBzcGVjcyBmb3IgZWFjaCBzZXJ2aWNlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBhenVyZWAgYW5kIGBhenVyZV9leHRyYXNgIGBzdGFja3FsYCBwcm92aWRlciBpcyBhdmFpbGFibGUgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3FsL3N0YWNrcWwtYXp1cmUtb3BlbmFwaS90cmVlL21haW4vb3BlbmFwaS80LXRhZ2dlZCkgIAoKIyMgVXNhZ2UKCj4gdXNlIHRoZSBgcHJlcmVxLnNoYCBzY3JpcHQgb3IgdGhlIGVxdWl2YWxlbnQgdG8gZG93bmxvYWQgdGhlIGxhdGVzdCBhcGkgZG9jdW1lbnRhdGlvbiBmcm9tIFtfX2F6dXJlLXJlc3QtYXBpLXNwZWNzX19dKGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcykKCj4gdXNlIGBydW4uc2hgIHNjcmlwdCBvciB0aGUgZXF1aXZhbGVudCB0byBydW4gYWxsIHRoZSBgc3RhY2txbC1henVyZS1vcGVuYXBpYCBjb21tYW5kcyBpbiBhIGJhdGNoCgpUaGUgbWFpbiBlbnRyeXBvaW50IHRvIHRoZSBwcm9ncmFtIGlzOiAgCgpgYGBiYXNoCmJpbi9zdGFja3FsLWF6dXJlLW9wZW5hcGkKYGBgCgpUaGlzIGNhbiBiZSBydW4gd2l0aG91dCBhbnkgYXJndW1lbnRzIHRvIGdldCBjb21tYW5kIGxpbmUgdXNhZ2UgYW5kIGhlbHAuICBUaGUgYHN0YWNrcWwtYXp1cmUtb3BlbmFwaWAgY29tbWFuZHMgaW5jbHVkZToKCi0gYGdlbmVyYXRlYCA6IHVzZXMgYGF1dG9yZXN0YCB0byBnZW5lcmF0ZSBpbml0aWFsIE9wZW5BUEkzIHNwZWNzIGZvciBvbmUgb3IgbWFueSBzZXJ2aWNlcwotIGBkZXJlZmVyZW5jZWAgOiBkZXJlZmVyZW5jZXMgYWxsIGV4dGVybmFsIEpTT04gcG9pbnRlcnMgaW4gdGhlIGdlbmVyYXRlZCBPcGVuQVBJIHNwZWNzCi0gYGNvbWJpbmVgIDogY29tYmluZXMgYWxsIHRoZSBnZW5lcmF0ZWQgT3BlbkFQSSBzcGVjcyBpbnRvIGEgc2luZ2xlIE9wZW5BUEkgc3BlYwotIGB0YWdgIDogcmVwbGFjZXMgZXhpc3RpbmcgdGFncyBmb3Igb3BlcmF0aW9ucyB3aXRoIHRoZSBzdGFja3FsIHJlc291cmNlIG5hbWUgKG9wdGlvbmFsKQoKVGhlc2UgY29tbWFuZHMgYXJlIGludGVuZGVkIHRvIGJlIHJ1biBpbiBzZXF1ZW5jZSB3aXRoIHRoZSBvdXRwdXQgb2YgZWFjaCBjb21tYW5kIGJlaW5nIHRoZSBpbnB1dCB0byB0aGUgbmV4dC4gIFRoZSBmbG93IGlzIHN1bW1hcml6ZWQgYmVsb3c6ICAKCiMjIyBJTUFHRQoKWyFbc3RhY2txbF9henVyZV9vcGVuYXBpXShpbWFnZXMvc3RhY2txbF9henVyZV9vcGVuYXBpLnBuZyldKGltYWdlcy9zdGFja3FsX2F6dXJlX29wZW5hcGkucG5nKQoKU3BlY2lmaWMgZGV0YWlscyBhYm91dCBlYWNoIGNvbW1hbmQgYXJlIHByb3ZpZGVkIGluIHRoZSBzZWN0aW9ucyBiZWxvdy4gIAoKIyMgYGdlbmVyYXRlYCBjb21tYW5kCgpVc2VzIGBhdXRvcmVzdGAgdG8gZ2VuZXJhdGUgaW5pdGlhbCBPcGVuQVBJMyBzcGVjcyBmb3Igb25lIG9yIG1hbnkgc2VydmljZXMgdXNpbmcgdGhlIGBhdXRvcmVzdGAgY29uZmlndXJhdGlvbiBkYXRhIGluIHRoZSBgcmVhZG1lLm1kYCBpbiBlYWNoIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBkaXJlY3RvcnkgZnJvbSB0aGUgYG1haW5gIGJyYW5jaCBvZiB0aGUgW2F6dXJlLXJlc3QtYXBpLXNwZWNzXShodHRwczovL2dpdGh1Yi5jb20vQXp1cmUvYXp1cmUtcmVzdC1hcGktc3BlY3MpIHJlcG8uICBDb25jZXB0dWFsbHkgdGhpcyB3b3VsZCBiZSBzaW1pbGFyIHRvIHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIGVhY2ggc3ViZGlyZWN0b3J5IG9mIHRoZSBgc3BlY2lmaWNhdGlvbmAgZm9sZGVyOiAgICAgIAoKYGBgYmFzaAphdXRvcmVzdCAuL3Jlc291cmNlLW1hbmFnZXIvcmVhZG1lLm1kIFwKLS1vcGVuYXBpLXR5cGU9YXJtIFwKLS1vdXRwdXQtY29udmVydGVkLW9haTMKYGBgCgpUaGUgb3V0cHV0IG9mIHRoaXMgY29tbWFuZCBpcyBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgKG4tbGV2ZWxzIGRlZXApIGNvbnRhaW5pbmcgT3BlbkFQSSBKU09OIGRvY3VtZW50cyB3aXRoIHJlZmVyZW5jZXMgdG8gZWFjaCBvdGhlciAodXNpbmcgSlNPTiBgJHJlZnNgKSwgdGhlIHVuaW9uIG9mIHdoaWNoIGZvcm1zIGEgY29tcGxldGUgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHNlcnZpY2UuICAKClRvIGdlbmVyYXRlIHNwZWNzIGZvciBhIHNpbmdsZSBzZXJ2aWNlICh0aGUgYGNvbXB1dGVgIHNlcnZpY2UgaW4gdGhpcyBleGFtcGxlKSwgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKYmluL3N0YWNrcWwtYXp1cmUtb3BlbmFwaSBnZW5lcmF0ZSBjb21wdXRlCmBgYAoKVG8gZ2VuZXJhdGUgc3BlY3MgZm9yIGFsbCBzZXJ2aWNlcywgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKYmluL3N0YWNrcWwtYXp1cmUtb3BlbmFwaSBnZW5lcmF0ZQpgYGAKCiMjIGBkZXJlZmVyZW5jZWAgY29tbWFuZAoKVGFrZXMgdGhlIG91dHB1dCBmcm9tIHRoZSBgZ2VuZXJhdGVkYCBjb21tYW5kLCBlbnVtZXJhdGVzIGFsbCBKU09OIGRvY3VtZW50cyBuZXN0ZWQgYXQgYW55IGxldmVsIGluIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlLCBhbmQgZGVyZWZlcmVuY2VzIGFsbCBKU09OIHBvaW50ZXJzIGluIGVhY2ggZG9jdW1lbnQsIG91dHB1dHRpbmcgYSBmbGF0IHN0cnVjdHVyZSBjb250YWluaW5nIGEgZG9jdW1lbnQgZm9yIGVhY2ggZ2VuZXJhdGVkIGRvY3VtZW50IGZvdW5kIGZvciBlYWNoIHNlcnZpY2Ugd2l0aCBubyBleHRlcm5hbCByZWZlcmVuY2VzLiAgCgpUbyBkZXJlZmVyZW5jZSBhIHNldCBvZiBgYXV0b3Jlc3RgIGdlbmVyYXRlZCBzcGVjcyBmb3IgYSBzaW5nbGUgc2VydmljZSAodGhlIGBjb21wdXRlYCBzZXJ2aWNlIGluIHRoaXMgZXhhbXBsZSksIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCmJpbi9zdGFja3FsLWF6dXJlLW9wZW5hcGkgZGVyZWZlcmVuY2UgY29tcHV0ZQpgYGAKClRvIGRlcmVmZXJlbmNlIHNwZWNzIGZvciBhbGwgc2VydmljZXMsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCmJpbi9zdGFja3FsLWF6dXJlLW9wZW5hcGkgZGVyZWZlcmVuY2UKYGBgCgojIyBgY29tYmluZWAgY29tbWFuZAoKVGFrZXMgdGhlIG91dHB1dCBmcm9tIHRoZSBgZGVyZWZlcmVuY2VgIGNvbW1hbmQsIGFuZCBjb21iaW5lcyBhbGwgdGhlIGdlbmVyYXRlZCBkb2N1bWVudHMgaW50byBhIHNpbmdsZSBPcGVuQVBJIHNwZWMsIG91dHB1dHRpbmcgYSBzaW5nbGUsIHNlbGYgY29udGFpbmVkIFlBTUwgZG9jdW1lbnQgKHJlbW92aW5nIHRoZSBgZXhhbXBsZXNgIGZvciBicmV2aXR5KS4gIAoKVG8gY3JlYXRlIGEgc2luZ2xlIE9wZW5BUEkgZG9jdW1lbnQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgKHRoZSBgY29tcHV0ZWAgc2VydmljZSBpbiB0aGlzIGV4YW1wbGUpLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYmFzaApiaW4vc3RhY2txbC1henVyZS1vcGVuYXBpIGNvbWJpbmUgY29tcHV0ZQpgYGAKClRvIGNyZWF0ZSBhIHNpbmdsZSBPcGVuQVBJIGRvY3VtZW50IGZvciBhbGwgc2VydmljZXMsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCmJpbi9zdGFja3FsLWF6dXJlLW9wZW5hcGkgY29tYmluZQpgYGAKCiMjIGB0YWdgIGNvbW1hbmQgKE9wdGlvbmFsKQoKVGFrZXMgdGhlIG91dHB1dCBmcm9tIHRoZSBgY29tYmluZWAgY29tbWFuZCwgZ2VuZXJhdGVzIHRoZSBzdGFja3FsIHJlc291cmNlIG5hbWUgZnJvbSBzdGVtbWluZyB0aGUgYG9wZXJhdGlvbklkYCBmb3IgZWFjaCBvcGVyYXRpb24sIHB1c2hlcyB0aGlzIHZhbHVlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGB0YWdzYCBhcnJheSBmb3IgZWFjaCBvcGVyYXRpb24sIGFuZCBvdXRwdXRzIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQuICAgIAoKVG8gdXBkYXRlIHRhZ3MgZm9yIGEgc2luZ2xlIE9wZW5BUEkgZG9jdW1lbnQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgKHRoZSBgY29tcHV0ZWAgc2VydmljZSBpbiB0aGlzIGV4YW1wbGUpLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiAgCgpgYGBiYXNoCmJpbi9zdGFja3FsLWF6dXJlLW9wZW5hcGkgdGFnIGNvbXB1dGUKYGBgCgpUbyB0YWdzIGZvIGFsbCBPcGVuQVBJIGRvY3VtZW50cyBmb3IgYWxsIHNlcnZpY2VzLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYmFzaApiaW4vc3RhY2txbC1henVyZS1vcGVuYXBpIHRhZwpgYGAKCiMjIFRlc3RpbmcgbG9jYWxseSB3aXRoIGBzdGFja3FsYAoxLiBkb3dubG9hZCB0aGUgbGF0ZXN0IGBzdGFja3FsYCBiaW5hcnksIGZvciBleGFtcGxlIGBjdXJsIC1MIGh0dHBzOi8vYml0Lmx5L3N0YWNrcWwtemlwIC1PICYmIHVuemlwIHN0YWNrcWwtemlwYCBmb3IgTGludXggc3lzdGVtcwoyLiBydW4gdGhlIGZvbGxvd2luZzoKYGBgClBST1ZJREVSX1JFR0lTVFJZX1JPT1RfRElSPSIkKHB3ZCkvb3BlbmFwaSIKUkVHX1NUUj0neyJ1cmwiOiAiZmlsZTovLycke1BST1ZJREVSX1JFR0lTVFJZX1JPT1RfRElSfSciLCAibG9jYWxEb2NSb290IjogIicke1BST1ZJREVSX1JFR0lTVFJZX1JPT1RfRElSfSciLCAidmVyaWZ5Q29uZmlnIjogeyJub3BWZXJpZnkiOiB0cnVlfX0nCi4vc3RhY2txbCBzaGVsbCAtLXJlZ2lzdHJ5PSIke1JFR19TVFJ9IgpgYGAKCiMjIyBSdW4gVGVzdCBTdWl0ZQoKZnJvbSB0aGUgYHN0YWNrcWwtcHJvdmlkZXItdGVzdHNgIGRpcmVjdG9yeToKCmBgYGJhc2gKY2QgLi4vLi4vc3RhY2txbC1wcm92aWRlci10ZXN0cwoKIyBhenVyZQpzaCB0ZXN0LXByb3ZpZGVyLnNoIFwKYXp1cmUgXApmYWxzZSBcCi9tbnQvYy9Mb2NhbEdpdFJlcG9zL3N0YWNrcWwvb3BlbmFwaS1jb252ZXJzaW9uL3N0YWNrcWwtYXp1cmUtb3BlbmFwaS9vcGVuYXBpIFwKdHJ1ZQoKIyBhenVyZV9leHRyYXMKc2ggdGVzdC1wcm92aWRlci5zaCBcCmF6dXJlX2V4dHJhcyBcCmZhbHNlIFwKL21udC9jL0xvY2FsR2l0UmVwb3Mvc3RhY2txbC9vcGVuYXBpLWNvbnZlcnNpb24vc3RhY2txbC1henVyZS1vcGVuYXBpL29wZW5hcGkgXAp0cnVlCgojIGF6dXJlX2lzdgpzaCB0ZXN0LXByb3ZpZGVyLnNoIFwKYXp1cmVfaXN2IFwKZmFsc2UgXAovbW50L2MvTG9jYWxHaXRSZXBvcy9zdGFja3FsL29wZW5hcGktY29udmVyc2lvbi9zdGFja3FsLWF6dXJlLW9wZW5hcGkvb3BlbmFwaSBcCnRydWUKCiMgYXp1cmVfc3RhY2sKc2ggdGVzdC1wcm92aWRlci5zaCBcCmF6dXJlX3N0YWNrIFwKZmFsc2UgXAovbW50L2MvTG9jYWxHaXRSZXBvcy9zdGFja3FsL29wZW5hcGktY29udmVyc2lvbi9zdGFja3FsLWF6dXJlLW9wZW5hcGkvb3BlbmFwaSBcCnRydWUKYGBgCg== readmeEtag: '"a05d4ffcc38b7db3cd1d11a33d21855161a7cafb"' readmeLastModified: Sat, 15 Jun 2024 05:40:20 GMT repositoryId: 522469749 description: >- Generates a single OpenAPI document for each Azure Resource Manager service from a set of OpenAPI specifications sourced from Azure REST API specs created: '2022-08-08T08:41:58Z' updated: '2024-06-15T05:40:46Z' language: JavaScript archived: false stars: 6 watchers: 3 forks: 0 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 repoEtag: '"7029a6dc677a01a69de1e9fff1fd4a545bc3180a8be19f8e0d11cbf1c2ce0209"' repoLastModified: Sat, 15 Jun 2024 05:40:46 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/cjp2600/cutos v3: true repositoryMetadata: base64Readme: >- IyBDdXRvcyAtIChDdXJsIHRvIFN3YWdnZXIpIAoKQ3V0b3MgcHJvdmlkZXMgYSB0ZXJtaW5hbCBVSSBmb3Igd3JpdGluZyBPcGVuQVBJMyBhbmQgZG9jdW1lbnRhdGlvbiB3aXRoIHRoZSBlYXN5IHdheSBieSBjb3B5aW5nINGBdXJsIHF1ZXJpZXMgYW5kIGpzb24gcmVzcG9uc2VzLgpUaGUgcHJvamVjdCBpcyBpbiB0aGUgZWFybHkgYWxwaGEgdmVyc2lvbiBhbmQgaXMgbm90IGEgY2FuZGlkYXRlIGZvciB0aGUgbWFpbiBkZXZlbG9wZXIgaW5zdGFsbGF0aW9uLgpUaGUgcHJvamVjdCBpcyBhIHdlZWtlbmQgcHJvamVjdCBhbmQgd2FzIGNyZWF0ZWQgZXhjbHVzaXZlbHkgdG8gbWVldCB0aGUgbmVlZHMgb2YgdGhlIGF1dGhvci4KCi0tLQoKCiMjIEluc3RhbGxhdGlvbgoKY3V0b3MgaXMgYXZhaWxhYmxlIG9uIExpbnV4LCBtYWNPUyBhbmQgV2luZG93cyBwbGF0Zm9ybXMuCgoqIEJpbmFyaWVzIGZvciBMaW51eCwgV2luZG93cyBhbmQgTWFjIGFyZSBhdmFpbGFibGUgYXMgdGFyYmFsbHMgaW4gdGhlIFtyZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vY2pwMjYwMC9jdXRvcy9yZWxlYXNlcykgcGFnZS4KKiBVc2UgYGdvIGdldGAgdG8gaW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHRvb2xzLiBUaGlzIGNvbW1hbmQgd2lsbCBpbnN0YWxsIHRoZSBjdXRvcyB3aXRoIGRlcGVuZGVuY2llczoKYGBgc2hlbGwKZ28gZ2V0IC11IGdpdGh1Yi5jb20vY2pwMjYwMC9jdXRvcwpgYGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0KCiMjIENyZWF0ZSBuZXcgc3dhZ2dlciBkb2N1bWVudApJZiBhIGZpbGUgd2l0aCBkb2N1bWVudGF0aW9uIGlzIG5vdCBjcmVhdGVkLCBpdCBzaG91bGQgYmUgY3JlYXRlZCB1c2luZyB0aGUgYGluaXRgIGNvbW1hbmQuIApgYGBzaGVsbApjYXRvcyBpbml0IHN3YWdnZXIuanNvbgpgYGAKPiBUaGUgdXRpbGl0eSB3aWxsIGFzayBmb3IgYmFzaWMgZGF0YSB0byBjcmVhdGUgYSBkb2N1bWVudGF0aW9uIGZpbGUKCiMjIEFwcGVuZCBuZXcgcGF0aCBmcm9tIGN1cmwKSWYgdGhlIGZpbGUgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkIG9yIHdhcyBhbHJlYWR5IGNyZWF0ZWQsIHlvdSBjYW4gYWRkIGEgbmV3IHBhdGggdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgpgYGBzaGVsbApjdXRvcyBhZGQgY3VybCBzd2FnZ2VyLmpzb24KYGBgCj4gVGhlIHV0aWxpdHkgd2lsbCBvcGVuIGEgbmV3IGxpc3RlbmVyIG9mIHlvdXIgY2xpcGJvYXJkIHRvIGNyZWF0ZSBhIHBhdGNoLgo+IFlvdSBjYW4gZWFzaWx5IHVzZSBwcm9ncmFtcyB0aGF0IGFsbG93IHlvdSB0byBleHBvcnQgdG8gdGhlIGN1cmwgZm9ybWF0LiBTdWNoIGFzIFtJbnNvbW5pYV0oaHR0cHM6Ly9pbnNvbW5pYS5yZXN0L2Rvd25sb2FkLyksIFtQb3N0bWFuXShodHRwczovL3d3dy5wb3N0bWFuLmNvbS8pIG9yIEJyb3dzZXIKCiMjIENvbmZpZ3VyYXRpb24KQnkgZGVmYXVsdCB0aGUgdXRpbGl0eSBsb29rcyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiB0aGlzIHBhdGggZGVmYXVsdCBpcyAqKiRIT01FLy5jdXRvcy55YW1sKioKQnV0IHlvdSBjYW4gYWx3YXlzIHJld3JpdGUgdGhlIHBhdGggdG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBleHBsaWNpdGx5IGluIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyICoqLS1jb25maWc9KioKYGBgc2hlbGwKY3V0b3MgYWRkIGN1cmwgc3dhZ2dlci5qc29uIC0tY29uZmlnPWNvbmZpZy55bWwKYGBgCiMjIEV4YW1wbGUgY29uZmlndXJhdGlvbjoKYGBgWUFNTAojCiMgQmFzaWMgYXBwbGljYXRpb24gc2V0dGluZ3MKIwphcHBsaWNhdGlvbl9zZXR0aW5nczoKCiAgIyBMaXN0IG9mIGhlYWRlcnMgcGFyYW1zIHRvIGJlIHNraXBwZWQKICBza2lwcGVkX2hlYWRlcnM6CiAgICAtIGFjY2VwdAogICAgLSBhdXRob3JpdHkKICAgIC0gdXNlci1hZ2VudAogICAgLSBjb250ZW50LXR5cGUKICAgIC0gb3JpZ2luCiAgICAtIHNlYy1mZXRjaC1zaXRlCiAgICAtIHNlYy1mZXRjaC1tb2RlCiAgICAtIHNlYy1mZXRjaC1kZXN0CiAgICAtIHJlZmVyZXIKYGBgCiAK readmeEtag: '"66f8e98928e5f99efbd5bc17255e903bb185b039"' readmeLastModified: Wed, 03 Aug 2022 11:04:47 GMT repositoryId: 309656196 description: The easiest way to write OpenAPI 3 documentation using curl copy created: '2020-11-03T10:52:31Z' updated: '2024-02-13T19:55:53Z' language: Go archived: false stars: 6 watchers: 2 forks: 0 owner: cjp2600 logo: https://avatars.githubusercontent.com/u/1980974?v=4 license: Apache-2.0 repoEtag: '"bdae5b0e3a32f6755bc43eab5a555e37758677d5530b2aa4e7dbb7320a5a7508"' repoLastModified: Tue, 13 Feb 2024 19:55:53 GMT foundInMaster: true category: - Testing - Server Implementations id: b7ea64a2b5378c448b9a74deb95fbde8 - source: openapi3 tags repository: https://github.com/0xtheprodev/nestjs-clean-example v3: true id: cd38c02141d5f9c5903ff75154a4f9aa repositoryMetadata: base64Readme: >- IyBuZXN0anMtY2xlYW4tZXhhbXBsZQoKWyFbVHlwZVNjcmlwdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90eXBlc2NyaXB0LSUyMzAwN0FDQy5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXR5cGVzY3JpcHQmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly90eXBlc2NyaXB0bGFuZy5vcmcvKQpbIVtOb2RlSlNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvbm9kZS5qcy02REE1NUY/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPW5vZGUuanMmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9ub2RlanMub3JnLykKWyFbTmVzdEpTXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL25lc3Rqcy0lMjNFMDIzNEUuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1uZXN0anMmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9uZXN0anMuY29tLykKWyFbRmFzdGlmeV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9mYXN0aWZ5LSUyMzAwMDAwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWZhc3RpZnkmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cuZmFzdGlmeS5pby8pClshW09wZW5BUEldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvb3BlbmFwaS02QkE1Mzk/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPW9wZW5hcGktaW5pdGlhdGl2ZSZsb2dvQ29sb3I9ZmZmKV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykKWyFbR3JhcGhRTF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tR3JhcGhRTC1FMTAwOTg/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWdyYXBocWwmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9ncmFwaHFsLm9yZy8pClshW0VTTGludF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9FU0xpbnQtNEIzMjYzP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1lc2xpbnQmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9lc2xpbnQub3JnKQpbIVtQcmV0dGllcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9QcmV0dGllci1ibGFjaz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289cHJldHRpZXImbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9wcmV0dGllci5pbykKWyFbT3BlbiBJc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy1yYXcvMHhUaGVQcm9EZXYvbmVzdGpzLWNsZWFuLWV4YW1wbGU/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS8weFRoZVByb0Rldi9uZXN0anMtY2xlYW4tZXhhbXBsZS9pc3N1ZXMpClshW0Nsb3NlZCBJc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy1jbG9zZWQtcmF3LzB4VGhlUHJvRGV2L25lc3Rqcy1jbGVhbi1leGFtcGxlP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vMHhUaGVQcm9EZXYvbmVzdGpzLWNsZWFuLWV4YW1wbGUvaXNzdWVzP3E9aXMlM0Fpc3N1ZStpcyUzQWNsb3NlZCkKWyFbT3BlbiBQdWxsc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzLXByLXJhdy8weFRoZVByb0Rldi9uZXN0anMtY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tLzB4VGhlUHJvRGV2L25lc3Rqcy1jbGVhbi1leGFtcGxlL3B1bGxzKQpbIVtDbG9zZWQgUHVsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy1wci1jbG9zZWQtcmF3LzB4VGhlUHJvRGV2L25lc3Rqcy1jbGVhbi1leGFtcGxlP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vMHhUaGVQcm9EZXYvbmVzdGpzLWNsZWFuLWV4YW1wbGUvcHVsbHM/cT1pcyUzQXByK2lzJTNBY2xvc2VkKQpbIVtDb250cmlidXRvcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2NvbnRyaWJ1dG9ycy8weFRoZVByb0Rldi9uZXN0anMtY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tLzB4VGhlUHJvRGV2L25lc3Rqcy1jbGVhbi1leGFtcGxlL2dyYXBocy9jb250cmlidXRvcnMpClshW0FjdGl2aXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC8weFRoZVByb0Rldi9uZXN0anMtY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsPW1vc3QlMjByZWNlbnQlMjBhY3Rpdml0eSldKGh0dHBzOi8vZ2l0aHViLmNvbS8weFRoZVByb0Rldi9uZXN0anMtY2xlYW4tZXhhbXBsZS9wdWxzZSkKCiMjIERlc2NyaXB0aW9uCgpfRXhhbXBsZSBBcHBsaWNhdGlvbiBJbnRlcmZhY2UgdXNpbmcgTmVzdEpTIGZyYW1ld29yayBpbiBUeXBlU2NyaXB0XwoKVGhpcyBleGFtcGxlIHNob3djYXNlcyBSZXBvc2l0b3J5IFBhdHRlcm4gaW4gSGV4YWdvbmFsIEFyY2hpdGVjdHVyZSBfKGFsc28ga25vd24gYXMgQ2xlYW4gQXJjaGl0ZWN0dXJlKV8uIEhlcmUgd2UgaGF2ZSB0d28gRW50aXRpZXMgLSBCb29rcyBhbmQgQXV0aG9ycywgd2hvc2UgcmVsYXRpb25zaGlwcyBoYXZlIGJlZW4gZXhwbG9pdGVkIHRvIGNyZWF0ZSBDUlVEIGVuZHBvaW50IGluIFJFU1QgdW5kZXIgT3BlbkFQSSBzdGFuZGFyZC4KCiMjIEluc3RhbGxhdGlvbgoKLSBJbnN0YWxsIGFsbCB0aGUgcHJvamVjdCBkZXBlbmRlbmN5IHVzaW5nIFtZYXJuXShodHRwczovL3lhcm5wa2cuY29tKToKCiAgYGBgc2gKICAkIHlhcm4KICBgYGAKCi0gUnVuIHRoZSBhcHBsaWNhdGlvbiBmcm9tIGNvbW1hbmQgcHJvbXB0OgoKICBgYGBzaAogICQgeWFybiBzdGFydAogIGBgYAoKIyMgVGVzdGluZwoKLSBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGluaXRpYXRlIFVuaXQgdGVzdDoKICBgYGBzaAogICQgeWFybiB0ZXN0CiAgYGBgCi0gUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBpbml0aWF0ZSBFMkUgdGVzdDoKICBgYGBzaAogICQgeWFybiB0ZXN0OmUyZQogIGBgYAoKIyMgTGljZW5zZQoKJmNvcHk7IE1JVCBMaWNlbnNlCg== readmeEtag: '"d0240b56c75e047dee78bd5095a42dacf38f37ff"' readmeLastModified: Fri, 12 May 2023 09:03:17 GMT repositoryId: 507814008 description: Clean Architecture Example using NestJS on Fastify created: '2022-06-27T07:53:29Z' updated: '2024-03-28T21:38:53Z' language: TypeScript archived: false stars: 6 watchers: 0 forks: 0 owner: 0xTheProDev logo: https://avatars.githubusercontent.com/u/14367736?v=4 license: MIT repoEtag: '"bc76d086a1f0d2ec8ee6cfc279254cd0bbfea6d2921343c755dc029bf5742663"' repoLastModified: Thu, 28 Mar 2024 21:38:53 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/progyan1997/nestjs-clean-example - source: openapi3 tags repository: https://github.com/apideck-libraries/openapi-specs v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXNwZWNzClRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGZvciB0aGUgQXBpZGVjayBBUElzLgoKPGltZyBzcmM9Imh0dHA6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3I/dXJsPWh0dHBzOi8vb3BlbmFwaS1zcGVjcy5hcGlkZWNrLmNvbS9jcm0ueW1sIj4K readmeEtag: '"6c4ceb2fb9ee6f6501b948c2c83a8c9bc08d9e3b"' readmeLastModified: Thu, 08 Aug 2024 20:39:54 GMT repositoryId: 318430456 description: The OpenAPI specifications for the Apideck APIs. created: '2020-12-04T06:55:12Z' updated: '2024-08-28T13:35:08Z' language: null archived: false stars: 6 watchers: 3 forks: 3 owner: apideck-libraries logo: https://avatars.githubusercontent.com/u/73573473?v=4 license: MIT repoEtag: '"de4edc48a395caab45337e8bc46a94542d6e2fdb830e6ad5a5e825f291ecd4ec"' repoLastModified: Wed, 28 Aug 2024 13:35:08 GMT foundInMaster: true category: Testing id: c977303d84eebe1aa3c23e0a1f6d548d - source: openapi3 tags repository: https://github.com/jordan-chalupka/ouraring v3: true repositoryMetadata: base64Readme: >- IyBPdXJhIFJpbmcgT3BlbkFQSXYzIFNjaGVtYSBEZWZpbml0aW9uICsgR28gQ2xpZW50ClRoaXMgcmVwbyBjb250YWlucyBhbiBPcGVuQVBJdjMgc2NoZW1hIGRlZmluaXRpb24gZm9yIFtPdXJhUmluZ10oaHR0cHM6Ly9vdXJhcmluZy5jb20vKQoKT3VyYVJpbmcgQVBJIGRvY3VtZW50YXRpb24gaHR0cHM6Ly9jbG91ZC5vdXJhcmluZy5jb20vZG9jcy8KCiMjIEdlbmVyYXRpbmcgdGhlIGNsaWVudApDbGllbnQgZ2VuZXJhdGlvbiBpcyBkb25lIHVzaW5nIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbgoKVG8gcmVnZW5lcmF0ZSB0aGUgY2xpZW50LCBydW4gdGhlIGNvbW1hbmQKYGBgCm9hcGktY29kZWdlbiAtLXBhY2thZ2Ugb3VyYXJpbmcgb3VyYXJpbmdfb3BlbmFwaS55YW1sID4gb3VyYXJpbmcuZ2VuLmdvCmBgYAoKIyMgRXh0ZW5kaW5nIHRoZSBzY2hlbWEgZGVmaW5pdGlvbgpBdCB0aGlzIHRpbWUsIHRoZSBzY2hlbWEgZGVmaW5pdGlvbiBpcyBub3QgY29tcGxldGUuIAoKSWYgdGhlcmUgaXMgZGF0YSB3aGljaCB5b3Ugd291bGQgbGlrZSB0byBmZXRjaCBidXQgaXQgaXMgbm90IGF2YWlsYWJsZSwgY29uc2lkZXIgYWRkaW5nIGl0IHRvIHRoZSBzY2hlbWEgZGVmaW5pdGlvbgphbmQgcmVnZW5lcmF0aW5nIHRoZSBjbGllbnQuCgojIyBFeGFtcGxlIHVzYWdlCkdldCB5b3VyIHBlcnNvbmFsIGFjY2VzcyB0b2tlbiBmcm9tIEF1cmFSaW5nCmh0dHBzOi8vY2xvdWQub3VyYXJpbmcuY29tL3BlcnNvbmFsLWFjY2Vzcy10b2tlbnMKCmBgYGJhc2gKZXhwb3J0IE9VUkFfQUNDRVNTX1RPS0VOPSJZT1VSX1BFUlNPTkFMX0FDQ0VTU19UT0tFTiIKZ28gcnVuIGV4YW1wbGUvbWFpbi5nbwpgYGAKClNob3VsZCBmZXRjaCB5b3VyIGFjdGl2aXR5IHNjb3JlIGZvciB0b2RheToKYGBgCkFjdGl2aXR5IFNjb3JlOiA4MQpgYGAK readmeEtag: '"d336657fbb93d93dc9140b4b8628bd639aabb926"' readmeLastModified: Sat, 18 Dec 2021 22:55:24 GMT repositoryId: 439717045 description: Go client + OpenAPI v3 spec for Oura-Ring created: '2021-12-18T21:20:08Z' updated: '2024-05-23T16:59:30Z' language: Go archived: false stars: 6 watchers: 1 forks: 0 owner: jordan-chalupka logo: https://avatars.githubusercontent.com/u/9794216?v=4 repoEtag: '"c23eeb5825564b671a3ae4afe7b5f109c7dcc3ef66d22434f534126f4e8158c5"' repoLastModified: Thu, 23 May 2024 16:59:30 GMT foundInMaster: true category: - Converters - Server Implementations id: c0a9a71da09e3f7ae91e9f6c7ee05c41 - source: openapi3 tags repository: https://github.com/mdpearce/lemmy-ts-openapi v3: true id: 110ea9d687cc4a4cebce44becb89c336 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNjaGVtYSBHZW5lcmF0b3IgZm9yIHRoZSBMZW1teSBKUyBDbGllbnQgTGlicmFyeQojIyBPdmVydmlldwpUaGlzIGlzIGEgc2ltcGxlIHNjcmlwdCB3aGljaCBjb252ZXJ0cyB0aGUgW0xlbW15IEpTIGNsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL0xlbW15TmV0L2xlbW15LWpzLWNsaWVudCkgc291cmNlIGZpbGVzIGludG8gYW4gT3BlbkFQSSAzLjAgSnNvbiBzcGVjaWZpY2F0aW9uLgoKVGhlIGdlbmVyYXRlZCBPcGVuQVBJIHNjaGVtYSBjYW4gYmUgdXNlZCBieSB0aGUgW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSB0byBnZW5lcmF0ZSBhIGNsaWVudCBTREsgaW4gYW55IHN1cHBvcnRlZCBsYW5ndWFnZS9mcmFtZXdvcmsuCgojIyBVc2FnZQoxLiBDbG9uZSB0aGUgW0xlbW15IEpTIGNsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL0xlbW15TmV0L2xlbW15LWpzLWNsaWVudCkgcmVwb3NpdG9yeSBzb21ld2hlcmUgb24gZGlzawoyLiBGcm9tIHRoZSBgbGVtbXktdHMtb3BlbmFwaWAgcm9vdCwgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBwYXJzZSB0aGUgSlMgbGlicmFyeSBhbmQgZ2VuZXJhdGUgYW4gT3BlbkFQSSBzY2hlbWEgZmlsZToKYGBgc2gKbnBtIHN0YXJ0IC0tIC1jIC9wYXRoL3RvL2xlbW15LWpzLWNsaWVudCAtbyAvcGF0aC90by9vdXRwdXQvZmlsZW5hbWUuanNvbgpgYGAKCiMjIENvbnRyaWJ1dGluZwpDb250cmlidXRpb25zIGFyZSB3ZWxjb21lISBJIGFtIG5vdCBhIFR5cGVzY3JpcHQgZGV2ZWxvcGVyIGJ5IHRyYWRlLCBhbmQgdGhlcmUgaXMgbGlrZWx5IGEgbG90IG9mIHJvb20gZm9yIGltcHJvdmVtZW50LgoK readmeEtag: '"288c66caee3e282e72df8b6539b1dd089cc2ba52"' readmeLastModified: Fri, 04 Aug 2023 11:36:51 GMT repositoryId: 658645576 description: OpenAPI schema generator for the Lemmy JS client created: '2023-06-26T08:05:16Z' updated: '2023-11-07T16:44:03Z' language: TypeScript archived: false stars: 5 watchers: 1 forks: 1 owner: mdpearce logo: https://avatars.githubusercontent.com/u/1551362?v=4 license: LGPL-2.1 repoEtag: '"f46e99c80bd8b5a6e0980cce194b64fdcb4a8054aab7b9475656f0088ca24153"' repoLastModified: Tue, 07 Nov 2023 16:44:03 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: >- https://github.com/sedatcagdas/itu-acm-19-20-contract-first-api-development-study-group v3: true repositoryMetadata: base64Readme: >- CiMjIyBJbnN0cnVjdG9ycwoKKipTZWRhdCBDYWdkYXMqKgoKKkNvbXB1dGVyIEVuZ2luZWVyaW5nICM0IEBJc3RhbmJ1bCBUZWNobmljYWwgVW5pdmVyc2l0eSoKClsqTGlua2VkSW4qXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vc2VkYXRjYWdkYXMpCgoKIyMjIFByZXJlcXVpc2l0aWVzCjEuIEJhc2ljIFB5dGhvbi9GbGFzayBrbm93bGVkZ2UuCjIuIEJhc2ljIGtub3dsZWRnZSBhYm91dCBIVFRQLCBSRVNUZnVsIEFwaSwgWUFNTAoKIyMjIEdvYWwKR2FpbmluZyBleHBlcnRpc2UgYWJvdXQgQ29udHJhY3QtRmlyc3QgQVBJIERlc2lnbiBwcmluY2lwbGUKCgojIyMgU3lsbGFidXMKCnwgICNEYXRlIHwgICNUb3BpYyAgfCAjRGVzY3JpcHRpb24gIHwKfCA6LS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLTogfAp8IFdlZWsgMSB8IEJhc2ljcyBvZiBIVFRQLCBSRVNUIGFuZCBGbGFzayB8IFNldHRpbmcgdXAgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgYW5kIHRvb2xzLiBRdWljayBvdmVydmlldyBvZiBIVFRQLCBSRVNUZnVsIEFQSSBhbmQgRmxhc2suIEludHJvZHVjdGlvbiB0byBDb250cmFjdC1GaXJzdCBBUEkgRGVzaWduIHwKfCBXZWVrIDIgIHwgQmFzaWNzIG9mIEFQSSBDb250cmFjdCwgT3BlbkFQSSAzLjAgYW5kIFlBTUwgfCBEaXNjdXNzaW9ucyBvbiBDb250cmFjdC1GaXJzdCBBUEkgRGVzaWduLCBSRVNUZnVsIHByaW5jaXBsZS4gSW50cm9kdWN0aW9uIHRvIFN3YWdnZXIsIE9wZW5BUEkgMy4wIGFuZCBZQU1MIGxhbmd1YWdlIHwKfCBXZWVrIDMgIHwgIE1vZGVsbGluZyBPdXIgRmlyc3QgQVBJIHwgRGlzY3Vzc2lvbnMgb24gSW52b2ljZS9QYXltZW50IGFwcGxpY2F0aW9ucywgY3JlYXRpbmcgZGF0YSBtb2RlbHMsIGRldGVybWluaW5nIGVuZHBvaW50cywgZGlzY3Vzc2lvbnMgb24gYnVzaW5lc3MgbG9naWMgfAp8IFdlZWsgNCAgfCAgQW5pbWF0ZSBPdXIgRmlyc3QgQVBJICB8IEltcGxlbWVudGluZyBidXNpbmVzcyBsb2dpYywgY29udHJvbGxlcnMsIHNlcnZpY2VzLiBEaXNjdXNzaW9ucyBvbiBiZXN0IHByYWN0aWNlcyBhbmQgbmV4dCBzdGVwcyB8Cgo8cCBhbGlnbj0iY2VudGVyIj48Yj5MZXNzb25zIHdpbGwgYmUgYXJvdW5kIDc1IG1pbnV0ZXM8L2I+PC9wPgoKQ2xhc3Nyb29tcyBhbmQgZGF0ZXMgd2lsbCBiZSBhbm5vdW5jZWQuCgojIEltcG9ydGFudCBMaW5rcwoKVEJBCgojIFN1Z2dlc3RlZCBSZWFkaW5ncwoKVEJBCgojIFByb2plY3QKVEJBCgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iLy9pdHVhY20uY29tIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pdHVhY20uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3LzA4L2l0dS1sb2dvLnBuZyI+CiAgPC9hPgo8L3A+Cg== readmeEtag: '"1924131911095da99ace05d7ae472f16a4d7a683"' readmeLastModified: Thu, 05 Sep 2019 22:34:40 GMT repositoryId: 206665949 description: >- This repository includes the source files about the topic that we have covered in the lecture. created: '2019-09-05T22:13:57Z' updated: '2019-09-20T19:03:11Z' language: null archived: false stars: 5 watchers: 2 forks: 1 owner: sedatcagdas logo: https://avatars.githubusercontent.com/u/23429534?v=4 repoEtag: '"4340ebd792cda300581cbd07578296ea9e6b45d6860e1110c8be0fcb066d634e"' repoLastModified: Fri, 20 Sep 2019 19:03:11 GMT foundInMaster: true category: Server Implementations id: 2caa7c11a5f9ac6a79606f4c0990257b - source: openapi3 tags repository: https://github.com/tomboyo/lily v3: true repositoryMetadata: base64Readme: >- PSBMaWx5IE9BUy1Uby1KYXZhIENvbXBpbGVyCgppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLW1ldGFkYXRhL3YvaHR0cHMvcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9pby9naXRodWIvdG9tYm95by9saWx5L2xpbHkvbWF2ZW4tbWV0YWRhdGEueG1sLnN2Z1t0aXRsZT0ibGF0ZXN0IHJlbGVhc2UgdmVyc2lvbiBiYWRnZSIgbGluaz0iaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9pby5naXRodWIudG9tYm95by5saWx5Il0KCkxpbHkgaXMgYSBjb21waWxlciB0aGF0IGNvbnN1bWVzIE9wZW5BUEkgKFN3YWdnZXIpIHNwZWNpZmljYXRpb25zIGFuZCBwcm9kdWNlcyBKYXZhIHNvdXJjZSBjb2RlLgpJdCBpcyBpbnRlbmRlZCB0byBiZSBhbiBhbHRlcm5hdGl2ZSB0byBodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yW09wZW5BUEkgR2VuZXJhdG9yXSwgd2hpY2ggYXQgdGltZSBvZiB3cml0aW5nIGlzIHRoZSBvbmx5IG9wdGlvbiwgYW5kIHN1YnN0YW50aWFsbHkgbW9yZSBjb21wbGV0ZSB0aGFuIExpbHkuCgo9PSBVc2FnZQoKUGxlYXNlIGJlIGF3YXJlIHRoYXQgTGlseSBpcyBpbiB0aGUgZWFybHkgc3RhZ2VzIG9mIGRldmVsb3BtZW50IGFuZCBtYXkgbm90IGJlIHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcy4gVXNlIExpbHkgYXQgeW91ciBvd24gcmlzay4KClRoYXQgc2FpZCwgYmV0YSB0ZXN0aW5nIGlzIHRoZSBiZXN0IHdheSB0byBsaW5rOkNPTlRSSUJVVElORy5hZG9jW2NvbnRyaWJ1dGVdIHRvIHRoaXMgcHJvamVjdC4KCj09PSBKYXZhIEFQSQoKR2VuZXJhdGVkIHNvdXJjZSBjb2RlIGxvb2tzIGxpa2UgdGhpczoKCltzb3VyY2UsamF2YV0KLS0tLQpMaXN0PFBldD4gZXhhbXBsZUhhcHB5UGF0aCgpIHsKICB2YXIgYXBpID0gQXBpLm5ld0J1aWxkZXIoKQogICAgICAudXJpKCJodHRwczovL2V4YW1wbGUuY29tLyIpCiAgICAgIC5idWlsZCgpOwoKICB0cnkgewogICAgdmFyIHJlc3BvbnNlID0gYXBpLnBldHNPcGVyYXRpb25zKCkKICAgICAgICAubGlzdFBldHMoKQogICAgICAgIC5xdWVyeShxdWVyeSAtPiBxdWVyeS5saW1pdCg1MCkpCiAgICAgICAgLnNlbmRTeW5jKCk7CgogICAgcmV0dXJuIHN3aXRjaCAocmVzcG9uc2UpIHsKICAgICAgY2FzZSBMaXN0UGV0czIwMCBvayAtPiBvay5ib2R5KCkudmFsdWUoKTsKICAgICAgY2FzZSBMaXN0UGV0c0RlZmF1bHQgb3RoZXIgLT4gdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24ob3RoZXIuYm9keSgpLm1lc3NhZ2UoKSk7CiAgICB9OwogIH0gY2F0Y2ggKElPRXhjZXB0aW9uIHwgSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgewogICAgLy8gVGhlIGphdmEubmV0Lmh0dHAgbGF5ZXIgZW5jb3VudGVyZWQgYW4gZXhjZXB0aW9uLgogICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlVuYWJsZSB0byBjb21wbGV0ZSBQZXRzIEFQSSByZXF1ZXN0IiwgZSk7CiAgfQp9Ci0tLS0KCkhlcmUgYXJlIHNvbWUgb2YgdGhlIExpbHkgZmVhdHVyZXMgd2UganVzdCBzYXc6CgoqIElmIGFuIG9wZXJhdGlvbiBoYXMgdGhlICdwZXRzJyB0YWcsIHRoZW4gd2UgY2FuIGFjY2VzcyBpdCB2aWEgdGhlIGBwZXRzT3BlcmF0aW9ucygpYCBfb3BlcmF0aW9uIGdyb3VwXy4gRXZlcnkgb3BlcmF0aW9uIGlzIGFsc28gcGFydCBvZiB0aGUgYGV2ZXJ5T3BlcmF0aW9uKClgIGdyb3VwLCBhbmQgb3BlcmF0aW9ucyB3aXRob3V0IHRhZ3MgYXJlIGFsc28gbWVtYmVycyBvZiB0aGUgYGV2ZXJ5VW50YWdnZWRPcGVyYXRpb24oKWAgZ3JvdXAuIFRoZXNlIGdyb3VwcyBhcmUgaW50ZW5kZWQgdG8gaGVscCB1cyBleHBsb3JlIHRoZSBBUEkgdXNpbmcgSURFIHR5cGUtYWhlYWQvYXV0by1jb21wbGV0ZSBoaW50cy4KCiogUmVzcG9uc2VzIGZvcm0gYSBzZWFsZWQgaW50ZXJmYWNlLiBJZiB3ZSBoYXZlIHRoZSBwYXR0ZXJuLW1hdGNoaW5nIGZvciBzd2l0Y2ggZXhwcmVzc2lvbnMgZmVhdHVyZSBlbmFibGVkLCB3ZSBjYW4gY3JlYXRlIGFuIGV4aGF1c3RpdmUgc3dpdGNoIGV4cHJlc3Npb24gdG8gaGFuZGxlIGFsbCBwb3NzaWJsZSByZXNwb25zZXMsIGluY2x1ZGluZyB1bmRvY3VtZW50ZWQgYW5kIHVuZXhwZWN0ZWQgb25lcy4gT3RoZXJ3aXNlLCB3ZSBjYW4gdXNlIHBhdHRlcm4tbWF0Y2hpbmcgaW4gYW4gaWYtZWxzZSBsYWRkZXIsIG9yIGV2ZW4gYWNjZXNzIHRoZSBzdGF0dXMgY29kZSB2aWEgYHJlc3BvbnNlLmh0dHBSZXNwb25zZSgpLnN0YXR1c0NvZGUoKWAgKHRoZSBuYXRpdmUgamF2YS5uZXQuaHR0cCBBUEkpLgoKSW4gdGhlIHJlYWwgd29ybGQsIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgaGF2ZSBlcnJvcnMgaW4gdGhlbSB0aGF0IGNvdWxkIHByZXZlbnQgYSBnZW5lcmF0ZWQgQVBJIGZyb20gc3VjY2Vzc2Z1bGx5IG1ha2luZyByZXF1ZXN0cy4gUmF0aGVyIHRoYW4gd2FpdCBmb3Igc2VydmljZSBvd25lcnMgdG8gdXBkYXRlIHRoZWlyIHNwZWNpZmljYXRpb25zIG9yIHRyeSB0byBmaXggdGhlbSBpbiBhIGxvY2FsIGNvcHkgb3Vyc2VsdmVzLCB3ZSBjYW4gdXNlIExpbHkncyBBUEkgdG8gZG8gYXMgbXVjaCBhcyBwb3NzaWJsZSwgdGhlbiBkaXAgZG93biBpbnRvIHRoZSB1bmRlcmx5aW5nIGphdmEubmV0Lmh0dHAgQVBJIGZvciBmdWxsIGN1c3RvbWl6YXRpb24gYW5kIGNvbnRyb2w6Cgpbc291cmNlLGphdmFdCi0tLS0KdmFyIG9wZXJhdGlvbiA9IGFwaS5wZXRzT3BlcmF0aW9ucygpCiAgICAgICAgLmxpc3RQZXRzKCkKICAgICAgICAucXVlcnkocXVlcnkgLT4gcXVlcnkubGltaXQoNTApKTsKdmFyIHJlcXVlc3QgPSBIdHRwUmVxdWVzdC5uZXdCdWlsZGVyKG9wZXJhdGlvbi5odHRwUmVxdWVzdCgpLCAoaywgdikgLT4gdHJ1ZSkKICAgICAgICAuaGVhZGVyKCJ4LXNvbWUtdW5kb2N1bWVudGVkLWhlYWRlciIsICJmb287YmFyO2JheiIpCiAgICAgICAgLmJ1aWxkKCk7CgovLyBJZiB0aGUgQVBJIGhhcyBjb3JyZWN0bHkgZG9jdW1lbnRlZCByZXNwb25zZXMsIGxpbHkgd2lsbCBoZWxwIHVzIGRlc2VyaWFsaXplCi8vIHRoZSByZXNwb25zZSBhbmQgd2UgY2FuIGhhbmRsZSBpdCBsaWtlIGJlZm9yZS4KdmFyIHJlc3BvbnNlID0gb3BlcmF0aW9uLnNlbmRTeW5jKHJlcXVlc3QpOwoKLy8gT3RoZXJ3aXNlLCB3ZSBjYW4gdXNlIHRoZSBodHRwQ2xpZW50IHRvIGdldCBhbiBIdHRwUmVxdWVzdCBvZiBhbiBJbnB1dFN0cmVhbQovLyBhbmQgZGVzZXJpYWxpemUgaXQgaG93ZXZlciB3ZSBzZWUgZml0LCBpbmNsdWRpbmcgbm90IGF0IGFsbC4KdmFyIHJlc3BvbnNlID0gYXBpLmh0dHBDbGllbnQoKS5zZW5kKHJlcXVlc3QsIEJvZHlIYW5kbGVycy5vZklucHV0U3RyZWFtKCkpOwotLS0tCgpIZXJlJ3Mgd2hhdCB3ZSBqdXN0IHNhdzoKCiogV2UgY2FuIHVzZSB0aGUgb3BlcmF0aW9uIHRvIGN1c3RvbWl6ZSBhbiBIdHRwUmVxdWVzdCwgdGhlbiB1c2UgdGhlIGphdmEubmV0Lmh0dHAgQVBJIHRvIGNvcHktYW5kLW1vZGlmeSB0aGF0IHJlcXVlc3QuIFdlIGNhbiB1c2UgTGlseSBmb3IgZXZlcnl0aGluZyB0aGF0IGlzIGRvY3VtZW50ZWQgYnkgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBjb3JyZWN0bHksIGJ1dCB0aGVuIGFyYml0cmFyaWx5IG1vZGlmeSB0aGUgcmVxdWVzdCB3aXRoIHRoZSBuYXRpdmUgQVBJLiBUaGlzIGxldHMgdXMgYWNjb21tb2RhdGUgbmVhcmx5IGFueSBzcGVjaWZpY2F0aW9uIGVycm9yLCBhbmQgZXZlbiBmbGF3cyBpbiBMaWx5LgoKKiBXZSBjYW4gdGhlbiBhc2sgdGhlIG9wZXJhdGlvbiB0byBzZW5kIHRoZSBjdXN0b21pemVkIHJlcXVlc3QsIHdoaWNoIHdpbGwgcmV0dXJuIGEgcmVzcG9uc2UgdGhhdCBsYXppbHkgZGVzZXJpYWxpemVzIHRoZSByZXNwb25zZSBib2R5IHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuIElmIHdlIGtub3cgdGhlIGRvY3VtZW50ZWQgdHlwZSBpcyB3cm9uZywgd2UgY2FuIGluc3RlYWQgc2VuZCB0aGUgcmVxdWVzdCB3aXRoIHRoZSBuYXRpdmUgQVBJIGFuZCBkZXNlcmlhbGl6ZSB0aGUgSW5wdXRTdHJlYW0gaG93ZXZlciBuZWNlc3NhcnksIG9yIG5vdCBhdCBhbGwuCgpJbiBvdGhlciB3b3JkcywgTGlseSBpcyBkZXNpZ25lZCB0byBmYWNpbGl0YXRlIEhUVFAgaW50ZXJhY3Rpb25zIHdoZW5ldmVyIHBvc3NpYmxlLCBidXQgZmFsbCBiYWNrIGdyYWNlZnVsbHkgdG8gdGhlIG5hdGl2ZSBqYXZhLm5ldC5odHRwIEFQSSBpbiB0aGUgcHJlc2VuY2Ugb2Ygc3BlY2lmaWNhdGlvbiBlcnJvcnMuIE5vdGFibHksIGFsbCBvZiB0aGVzZSB3b3JrYXJvdW5kcyBhcmUgX2ZvcndhcmRzLWNvbXBhdGlibGVfOiBPbmNlIHRoZSBzZXJ2aWNlIG93bmVycyB1cGRhdGUgdGhlaXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHRvIGNvcnJlY3Qgd2hhdGV2ZXIgZXJyb3JzIHdlcmUgcHJlc2VudCwgYWxsIG9mIG91ciBjb2RlIGNvbnRpbnVlcyB3b3JraW5nLiBXZSBjYW4gZ28gYmFjayBhbmQgdXBkYXRlIHRoZSBjb2RlIHRvIHVzZSB0aGUgZ2VuZXJhdGVkIEFQSSBhdCBvdXIgb3duIHBhY2UuCgo9PT0gTWF2ZW4gRGVwZW5kZW5jeQoKaW1hZ2U6aHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1tZXRhZGF0YS92L2h0dHBzL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvaW8vZ2l0aHViL3RvbWJveW8vbGlseS9saWx5L21hdmVuLW1ldGFkYXRhLnhtbC5zdmdbdGl0bGU9ImxhdGVzdCByZWxlYXNlIHZlcnNpb24gYmFkZ2UiIGxpbms9Imh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvaW8uZ2l0aHViLnRvbWJveW8ubGlseSJdCgpUbyBnZW5lcmF0ZSBzb3VyY2VzIGZyb20gYW4gT0FTIGRvY3VtZW50IGluIHlvdXIgbWF2ZW4gcHJvamVjdCwgYW5kIHRoZSBmb2xsb3dpbmcgbWF2ZW4gYnVpbGQgcGx1Z2luIGFuZCBkZXBlbmRlbmNpZXM6CgpgYGB4bWwKPGJ1aWxkPgogICAgPHBsdWdpbnM+CiAgICAgICAgPHBsdWdpbj4KICAgICAgICAgICAgPGdyb3VwSWQ+aW8uZ2l0aHViLnRvbWJveW8ubGlseTwvZ3JvdXBJZD4KICAgICAgICAgICAgPGFydGlmYWN0SWQ+bGlseS1jb21waWxlci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAgICAgICAgIDx2ZXJzaW9uPiR7bGlseVZlcnNpb259PC92ZXJzaW9uPgogICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgICAgIDwhLS0gQW55IFVSSSB0byBhbiBPQVMgZG9jdW1lbnQsIGJlIGl0IGh0dHBzOi8vIG9yIGZpbGU6Ly8uIC0tPgogICAgICAgICAgICAgICAgPHVyaT5odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9tYWluL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbDwvdXJpPgoKICAgICAgICAgICAgICAgIDwhLS0gVW5jb21tZW50IHRvIGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCBnZW5lcmF0ZWQgc291cmNlcyBkaXJlY3RvcnkuIC0tPgogICAgICAgICAgICAgICAgPCEtLSA8b3V0cHV0RGlyPnRhcmdldC9nZW5lcmF0ZWQtc291cmNlczwvb3V0cHV0RGlyPiAtLT4KCiAgICAgICAgICAgICAgICA8YmFzZVBhY2thZ2U+Y29tLmV4bWFwbGUubXkuYXBpPC9iYXNlUGFja2FnZT4KICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgogICAgICAgICAgICA8ZXhlY3V0aW9ucz4KICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICAgICAgICAgICAgPGdvYWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5jb21waWxlLWNsaWVudDwvZ29hbD4KICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPgogICAgICAgICAgICAgICAgICAgIDxwaGFzZT5nZW5lcmF0ZS1zb3VyY2VzPC9waGFzZT4KICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgogICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CiAgICAgICAgPC9wbHVnaW4+CiAgICA8L3BsdWdpbnM+CjwvYnVpbGQ+CgogPGRlcGVuZGVuY3lNYW5hZ2VtZW50PgogICAgPGRlcGVuZGVuY2llcz4KICAgICAgICA8IS0tIEJFR0lOIGdlbmVyYXRlZCBjb2RlIGRlcGVuZGVuY3kgbWFuYWdlbWVudCAtLT4KICAgICAgICA8ZGVwZW5kZW5jeT4KICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmZhc3RlcnhtbC5qYWNrc29uPC9ncm91cElkPgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWNrc29uLWJvbTwvYXJ0aWZhY3RJZD4KICAgICAgICAgICAgPHZlcnNpb24+Mi4xMy4wPC92ZXJzaW9uPgogICAgICAgICAgICA8c2NvcGU+aW1wb3J0PC9zY29wZT4KICAgICAgICAgICAgPHR5cGU+cG9tPC90eXBlPgogICAgICAgIDwvZGVwZW5kZW5jeT4KICAgICAgICA8IS0tIEVORCBnZW5lcmF0ZWQgY29kZSBkZXBlbmRlbmN5IG1hbmFnZW1lbnQgLS0+CiAgICA8L2RlcGVuZGVuY2llcz4KPC9kZXBlbmRlbmN5TWFuYWdlbWVudD4KCjxkZXBlbmRlbmNpZXM+CiAgICAgPCEtLSBCRUdJTiBHZW5lcmF0ZWQgY29kZSBkZXBlbmRlbmNpZXMgLS0+CiAgICA8ZGVwZW5kZW5jeT4KICAgICAgICA8Z3JvdXBJZD5pby5naXRodWIudG9tYm95by5saWx5PC9ncm91cElkPgogICAgICAgIDxhcnRpZmFjdElkPmxpbHktaHR0cDwvYXJ0aWZhY3RJZD4KICAgICAgICA8dmVyc2lvbj4ke2xpbHlWZXJzaW9ufTwvdmVyc2lvbj4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5PgogICAgICAgIDxncm91cElkPmNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5jb3JlPC9ncm91cElkPgogICAgICAgIDxhcnRpZmFjdElkPmphY2tzb24tZGF0YWJpbmQ8L2FydGlmYWN0SWQ+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeT4KICAgICAgICA8IS0tIFpvbmVkRGF0ZXRpbWUgc3VwcG9ydCAtLT4KICAgICAgICA8Z3JvdXBJZD5jb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YXR5cGU8L2dyb3VwSWQ+CiAgICAgICAgPGFydGlmYWN0SWQ+amFja3Nvbi1kYXRhdHlwZS1qc3IzMTA8L2FydGlmYWN0SWQ+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8IS0tIEVORCBHZW5lcmF0ZWQgY29kZSBkZXBlbmRlbmNpZXMgLS0+CjwvZGVwZW5kZW5jaWVzPgpgYGAKClRoZSBnZW5lcmF0ZWQgc291cmNlIGNvZGUgcmVsaWVzIG9uIGphY2tzb24gYW5kIHRoZSBsaWx5LWh0dHAgbGlicmFyeSBhdCBydW50aW1lLCB3aGljaCBpcyB3aHkgdGhlc2UgZGVwZW5kZW5jaWVzIGFyZSBuZWNlc3NhcnkuCgpUaGVzZSBjb25maWd1cmF0aW9ucyBjYW4gYmUgc3RhbmQtYWxvbmUgb3IgZW1iZWRkZWQgaW4gYSBsYXJnZXIgcHJvamVjdC4KCj09IEdvYWxzCgouIEdlbmVyYXRlIGphdmEgc291cmNlIGNvZGUgZGlyZWN0bHkgZnJvbSBhbiBPQVMgZG9jdW1lbnQgd2l0aGluIGEgamF2YSBidWlsZCBwaXBlbGluZSAoZS5nLiBpbnRlZ3JhdGVkIHdpdGggTWF2ZW4gb3IgR3JhZGxlKS4KLiBTdXBwb3J0IE9BUyB2My4KLiBUYXJnZXQgSmF2YSAxNyssIHdpdGggc3BlY2lhbCBhdHRlbnRpb24gcGFpZCB0byB1cGNvbWluZyBsYW5ndWFnZSBmZWF0dXJlcy4KLiBIZWxwIGVuZC11c2VycyB3b3JrIGFyb3VuZCBpbmNvcnJlY3Qgb3IgaW5jb21wbGV0ZSBzY2hlbWEgc3BlY2lmaWNhdGlvbnMgc28gdGhhdCB0aGV5IGNhbiBtYWtlIHByb2dyZXNzIHdoaWxlIGF3YWl0aW5nIHVwc3RyZWFtIGZpeGVzLgouIEV4cG9zZSBhIGhpZ2gtbGV2ZWwgQVBJIHRvIGd1aWRlIHRoZSB1c2VyIHRocm91Z2ggQVBJIGludGVyYWN0aW9ucy4KLiBFbnN1cmUgdGhhdCB3aGVuZXZlciBwb3NzaWJsZSwgZ2VuZXJhdGVkIHNvdXJjZSBjb2RlIGlzIGNvbXBhdGlibGUgd2l0aCB1c2VyIGNvZGUgYmV0d2VlbiBBUEkgc3BlY2lmaWNhdGlvbiByZXZpc2lvbnMuIEluIG90aGVyIHdvcmRzOiAiSWYgSSB1cGRhdGUgdG8gdGhlIGxhdGVzdCBBUEkgc3BlY2lmaWNhdGlvbiwgYW5kIHRoZXJlIGFyZSBub3QgYnJlYWtpbmcgY2hhbmdlcyB0byB0aGUgQVBJLCB0aGVuIExpbHkncyBnZW5lcmF0ZWQgc291cmNlIGNvZGUgZG9lc24ndCBicmVhayBteSBhcHBsaWNhdGlvbi4iCi4gU3VwcG9ydCBhbGwgT3BlbkFQSSBmZWF0dXJlcywgaW5jbHVkaW5nIHVudXN1YWwgdGhpbmdzIGxpa2UgbWF0cml4LXN0eWxlIHJlcXVlc3RzLgoKPT0gTm9uLUdvYWxzCgouIERvIG5vdCAoeWV0KSBzdXBwb3J0IG90aGVyIGxhbmd1YWdlcyB0aGFuIEphdmEuIEl0J3Mgbm90IGNsZWFyIHRoYXQgYSBKYXZhLW9yaWVudGVkIEFTVCB3aWxsIGNsZWFubHkgdHJhbnNsYXRlIHRvIGFub3RoZXIgbGFuZ3VhZ2UgdGFyZ2V0LgouIERvIG5vdCBzdXBwb3J0IHRvbyBtYW55IG9wdGlvbnMuIE9wdGlvbnMgYmVjb21lIGNvbmZ1c2luZyB0byBtYWludGFpbiAtLSBwcmVmZXIgb3BpbmlvbmF0ZWQgY29kZSB0aGF0IHdvcmtzIGZvciBtb3N0IHBlb3BsZSB3aG8gYXJlIGRvaW5nIHNlbnNpYmxlIHRoaW5ncy4KCj09IERlc2lnbgoKTGlseSBpcyBhIGxheWVyZWQgQVBJIHdpdGggImhpZ2gtbGV2ZWwiIGxheWVycyB0aGF0IG9yY2hlc3RyYXRlIGZ1bGwgcmVxdWVzdHMgdXNpbmcgZ2VuZXJhdGVkIGNvZGUgYW5kICJsb3ctbGV2ZWwiIGxheWVycyB0aGF0IGhlbHAgdGhlIGRldmVsb3BlciBpbXBsZW1lbnQgcmVxdWVzdHMgZnJvbSBzY3JhdGNoIGlmIG5lY2Vzc2FyeS4KCkhpZ2gtbGV2ZWwgbGF5ZXJzIGFsd2F5cyBhbGxvdyB0aGUgZGV2ZWxvcGVyIHRvIG1vdmUgaW50byBsb3dlciBsZXZlbHMuIFRoaXMgYWxsb3dzIHRoZSBkZXZlbG9wZXIgdG8gdXNlIHRoZSBjb252ZW5pZW50IGhpZ2gtbGV2ZWwgQVBJIF9hcyBtdWNoIGFzIHBvc3NpYmxlXywgdGhlbiByZXNvcnQgdG8gdGhlIGxvd2VyLWxldmVsIEFQSSAod2hpY2ggY291bGQgYmUgdGhlIGphdmEubmV0Lmh0dHAgQVBJIGl0c2VsZikgb25seSBhcyBuZWNlc3NhcnkgdG8gd29yayBhcm91bmQgbWlzc2luZyBmZWF0dXJlcyBvciB1bmRvY3VtZW50ZWQgQVBJIHBhcmFtZXRlcnMuCgpMaWx5IHNob3VsZCBtYWtlIHNpbXBsZSB0aGluZ3MgZWFzeSwgYW5kIGNvbXBsZXggdGhpbmdzIHBvc3NpYmxlLgoKPT0gUXVpY2sgVG91cgoKTGlseSBpcyBjb21wb3NlZCBvZiBmb3VyIG1vZHVsZXMgaW4gdGhlIGBtb2R1bGVzYCBkaXJlY3Rvcnk6CgotIGBleGFtcGxlYCBjb21waWxlcyB0aGUgdjMuMCBwZXRzdG9yZSBZQU1MIGFzIGFuIGV4YW1wbGUuIENoZWNrIG91dCB0aGUgZ2VuZXJhdGVkLXNvdXJjZXMgZGlyZWN0b3J5IGFmdGVyIGEgYnVpbGQgdG8gc2VlIHdoYXQgTGlseSBnZW5lcmF0ZXMsIGFuZCB0aGUgdGVzdCBkaXJlY3RvcnkgdG8gc2VlIGV4YW1wbGUgdXNhZ2Ugb2YgdGhlIGdlbmVyYXRlZCBjb2RlLgoKLSBgbGlseS1jb21waWxlci1tYXZlbi1wbHVnaW5gIGlzIGEgdGVlbnN5LXdlZW5zeSBNYXZlbiBwbHVnaW4gdGhhdCByZWFkcyBjb25maWd1cmF0aW9uIGZyb20gdGhlIHBvbSBhbmQgaGFuZHMgaXQgb2ZmIHRvIHRoZSBjb21waWxlciBwcm9qZWN0LiBUaGlzIGlzIHdoYXQgdGhlIHVzZXIgYWRkcyB0byB0aGVpciBwcm9qZWN0cyB0byBjb21waWxlIGNvZGUuCgotIGBsaWx5LWNvbXBpbGVyYCBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBhbiBPQVMgZG9jdW1lbnQsIHRyYW5zbGF0aW5nIGl0IHRvIGFuIGludGVybWVkaWFyeSBBU1QgKGFic3RyYWN0IHN5bnRheCB0cmVlKSwgcmVuZGVyaW5nIHRoZSBBU1QgYXMgc291cmNlIGNvZGUsIGFuZCBmaW5hbGx5IHNhdmluZyBzb3VyY2UgY29kZSB0byBkaXNjLgoKLSBgbGlseS1odHRwYCBkZWZpbmVzIGNsYXNzZXMgdG8gaGVscCBjcmVhdGUgYW5kIHJlY2VpdmUgSFRUUCByZXF1ZXN0cywgaW5jbHVkaW5nIFJGQzY1NzAgZW5jb2RlcnMsIGRlc2VyIGltcGxlbWVudGF0aW9ucywgYW5kIHRoZSBVcmlUZW1wbGF0ZS4gVGhpcyBpcyBhIGRlcGVuZGVuY3kgb2YgZ2VuZXJhdGVkIHNvdXJjZSBjb2RlIGFuZCBtYXkgYWxzbyBiZSB1c2VkIGRpcmVjdGx5IGJ5IHVzZXJzIHRvIHdvcmsgYXJvdW5kIExpbHkgb3IgT0FTIHNob3J0Y29taW5ncy4K readmeEtag: '"29f1b4ca08cf78d3bd2a2721afc8ed3d239fdf7e"' readmeLastModified: Thu, 01 Feb 2024 17:14:40 GMT repositoryId: 423275796 description: Java 17 native HTTP client code generator for OpenAPI v3 created: '2021-10-31T22:37:39Z' updated: '2023-06-05T14:50:02Z' language: Java archived: false stars: 5 watchers: 4 forks: 1 owner: Tomboyo logo: https://avatars.githubusercontent.com/u/3467385?v=4 license: GPL-3.0 repoEtag: '"60cf0330bf1ab6a4b112ea5c9b217866460efc49808cd6dd7d320e440766565d"' repoLastModified: Mon, 05 Jun 2023 14:50:02 GMT foundInMaster: true category: Testing id: e8988f3eb5b572da48b6533f5ee9b3bf - source: openapi3 tags repository: https://github.com/huogerac/cookiecutter-flask-openapi v3: true repositoryMetadata: base64Readme: >- IyBDb29raWVjdXR0ZXIgRmxhc2sgT3BlbkFQSSBib2lsZXJwbGF0ZQoKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2h1b2dlcmFjL2Nvb2tpZWN1dHRlci1mbGFzay1vcGVuYXBpP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vaHVvZ2VyYWMvY29va2llY3V0dGVyLWZsYXNrLW9wZW5hcGkvaXNzdWVzKSBbIVtHaXRIdWIgc3RhcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL2h1b2dlcmFjL2Nvb2tpZWN1dHRlci1mbGFzay1vcGVuYXBpP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vaHVvZ2VyYWMvY29va2llY3V0dGVyLWZsYXNrLW9wZW5hcGkvc3RhcmdhemVycykgWyFbR2l0SHViIGxpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvaHVvZ2VyYWMvY29va2llY3V0dGVyLWZsYXNrLW9wZW5hcGk/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9odW9nZXJhYy9jb29raWVjdXR0ZXItZmxhc2stb3BlbmFwaS9ibG9iL21hc3Rlci9MSUNFTlNFKSBbIVtjb2RlIHN0eWxlOiBibGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tL3BzZi9ibGFjaykKCj4g8J+SuyBBIGZ1bGwtZmVhdHVyZWQgRmxhc2sgKyBBUEkgKyBPQVMzICsgSldUICsgU3dhZ2dlclVJICsgT1JNICsgTWlncmF0aW9ucyArIEdyZWF0IGFuZCBTY2FsYWJsZSBzdHJ1Y3R1cmUgcHJvamVjdCB0ZW1wbGF0ZQoKPiDwn5GJIEl0J3MgdXNpbmcgbGF0ZXN0IEZsYXNrIDEuMgoKPiBGbGFzayAyIGlzIGNvbWluZyBzb29uIPCfmI4KCj4gSXQgdXNlcyBQb3N0Z3JlU1FMIGV2ZXJ5d2hlcmUsIHNvIERvY2tlciBpcyBuZWNlc3NhcnkgKFNRTGl0ZSB3aXRoIG5vIERvY2tlciBkZXBlbmRlbmN5IGlzIG9uIHRoZSByb2FkbWFwKSDwn5iOCgoKIyMgV2h5IHVzaW5nIHRoaXMgYm9pbGVycGxhdGUg4p2TCgotIEZvY3VzIG9uIHRoZSBidXNpbmVzcyBhbmQgY3JlYXRpbmcgdmFsdWUKLSBGYXN0ZXIgcHJvamVjdCBzZXR1cAotIFN0YW5kYXJkIHByb2plY3Qgc3RydWN0dXJlIG9yZ2FuaXphdGlvbiAoZWFzeSB0byBzY2FsZSkKLSBCZXR0ZXIgUUEKCgojIyBXaGF0J3MgSW5jbHVkZWQgKEZlYXR1cmVzKSDwn46JCgoKLSBBUEkgRGVzaWduIGZpcnN0IHVzaW5nIE9wZW5BUEkgJiBDb25uZXhpb24KLSBBUEkgZG9jdW1lbnRhdGlvbiB1c2luZyBzd2FnZ2VyIFVJCi0gTG9naW4gdXNpbmcgSldUCi0gRXZlcnkgbGF5ZXIgaXMgc2VwYXJhdGVkIGluIGNvbnRleHQvZG9tYWluCi0gU2VydmljZSBsYXllciBmb3IgYmV0dGVyIHRlc3RzIGFuZCByZXVzZQotIFVzaW5nIEZsYXNrIEZhY3RvcnkgdG8gaW50ZWdyYXRlIHdpdGggZXh0ZW5zaW9ucwotIE1pZ3JhdGlvbnMgdXNpbmcgQWxlbWJpYwotIE9STSB1c2luZyBTUUxBbGNoZW15Ci0gT3B0aW1pemVkIGRldmVsb3BtZW50IGFuZCBwcm9kdWN0aW9uIHNldHRpbmdzCi0gQ29tZXMgd2l0aCB1c2VyIG1vZGVsIHJlYWR5IHRvIGdvLCBzaWdudXAgJiBzaWduaW4KLSBQcm9jZmlsZSBmb3IgZGVwbG95aW5nIHRvIEhlcm9rdQotIEN1c3RvbWl6YWJsZSBQb3N0Z3JlU1FMIHZlcnNpb24KLSBUZXN0cyB1c2luZyBweXRlc3QKLSBVbml0IHRlc3RzIGZvciB0aGUgQVBJIGxheWVyCi0gVW5pdCB0ZXN0cyBmb3IgdGhlIHNlcnZpY2UgbGF5ZXIKCioqRGV2ZWxvcG1lbnQqKgotIENvZGUgbGludGVyCi0gQ29kZSBmb3JtYXR0ZXIgKEJsYWNrK2lTb3J0KQotIFVzaW5nIC5lbnYgZmlsZQotIERvY2tlciBzdXBwb3J0IHVzaW5nIGRvY2tlci1jb21wb3NlIGZvciBkZXZlbG9wbWVudAotIERvY2tlciB1c2luZyBtdWx0aXN0YWdlIChQcm9kdWN0aW9uIFJlYWR5IERvY2tlcmZpbGUpCi0gUG9zdGdyZXMgaW4gZGV2ZWxvcG1lbnQgKHVzaW5nIGRvY2tlci1jb21wb3NlKQotIENJIHVzaW5nIEdpdGh1YiBBY3Rpb25zCgojIyBTdHJ1Y3R1cmUKClRoaXMgcHJvamVjdCBpcyBvcmdhbml6ZWQgaW46Ci0gTGF5ZXJzIPCfp4UsIHdoaWNoIG1pZ2h0IG5vdCBjaGFuZ2UgaW4gdGhlIHByb2plY3QgbGlmZSBjeWNsZQotIE1vZHVsZXMg8J+TpiwgZm9yIGRvbWFpbiBjb250ZXh0cywgd2hpY2ggbWlnaHQgc2NhbGUgaW4gdGVybXMgb2YgbmV3IGZlYXR1cmVzCi0gQ29uZmlndXJhdGlvbiDimpnvuI8gc2VwYXJhdGVkIGJhc2VkIG9uIHRoZSBleHRlbnNpb25zCi0gVGhlIPCfjoIgQnVzaW5lc3MgbW9kdWxlcwoKYGBgCkhhY2tlcm5ld3MtQ2xvbmUKLgrilJzilIDilIAgaGFja2VybmV3cwrilIIgICDilJzilIDilIAgYXBwLnB5ICAgICAgICAgICAgICAgICAgICDwn5GJIEVudHJ5cG9pbnQgKGNyZWF0ZV9hcHApCuKUgiAgIOKUnOKUgOKUgCBleGNlcHRpb25zLnB5CuKUgiAgIOKUnOKUgOKUgCDwn6eFIGV4dCAgICAgICAgICAgICAgICAgICAg8J+RiSBTZXR0aW5ncwrilIIgICDilIIgICDilJzilIDilIAg4pqZ77iPIGNvbmZpZ3VyYXRpb24ucHkK4pSCICAg4pSCICAg4pSc4pSA4pSAIOKame+4jyBhcGkucHkK4pSCICAg4pSCICAg4pSU4pSA4pSAIOKame+4jyBkYXRhYmFzZS5weQrilIIgICDilIIgICAuLi4K4pSCICAg4pSc4pSA4pSAIPCfp4UgYXBpICAgICAgICAgICAgICAgICAgICDwn5GJIEFQSSBSb3V0ZXMK4pSCICAg4pSCICAg4pSc4pSA4pSAIPCfk6YgYXV0aC5weQrilIIgICDilIIgICDilJzilIDilIAg8J+TpiBuZXdzLnB5CuKUgiAgIOKUgiAgIOKUlOKUgOKUgCDwn5OmIG9wZW5hcGkueWFtbCAgICAgICDwn5GJIEFQSSBDb250cmFjdArilIIgICDilIIgICAuLi4K4pSCICAg4pSc4pSA4pSAIPCfp4Ugc2VydmljZXMgICAgICAgICAgICAgICDwn5GJIEJ1c2luZXNzIHJ1bGVzCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCDwn5OmIGF1dGgucHkg8J+OggrilIIgICDilIIgICDilJzilIDilIAg8J+TpiBuZXdzLnB5IPCfjoIK4pSCICAg4pSCICAg4pSU4pSA4pSAIPCfk6YgdG9rZW4ucHkg8J+OggrilIIgICDilIIgICAuLi4K4pSCICAg4pSU4pSA4pSAIPCfp4UgbW9kZWxzICAgICAgICAgICAgICAgICDwn5GJIE9STQrilIIgICAgICAg4pSc4pSA4pSAIPCfk6YgbmV3cy5weQrilIIgICAgICAg4pSU4pSA4pSAIPCfk6YgdXNlcnMucHkK4pSCICAgICAgIC4uLgrilJzilIDilIAg4pqZ77iPIG1pZ3JhdGlvbnMgICAgICAgICAgICAgICAgIPCfkYkgRGF0YWJhc2UgdmVyc2lvbnMK4pSCICAg4pSc4pSA4pSAIGFsZW1iaWMuaW5pCuKUgiAgIOKUnOKUgOKUgCBlbnYucHkK4pSCICAg4pSc4pSA4pSAIHNjcmlwdC5weS5tYWtvCuKUgiAgIOKUlOKUgOKUgCB2ZXJzaW9ucwrilJzilIDilIAgdGVzdHMK4pSCICAg4pSc4pSA4pSAIGNvbmZ0ZXN0LnB5CuKUgiAgIOKUnOKUgOKUgCBhcGkgICAgICAgICAgICAgICAgICAgICAg8J+RiSBFbmRwb2ludCB0ZXN0cywgaW5wdXQsIG91dHB1dCBhbmQgdmFsaWRhdGlvbiAK4pSCICAg4pSc4pSA4pSAIGRhdGFiYXNlICAgICAgICAgICAgICAgICDwn5GJIERhdGFiYXNlIGNvbm5lY3Rpb24gdGVzdHMK4pSCICAg4pSU4pSA4pSAIHNlcnZpY2VzICAgICAgICAgICAgICAgICDwn5GJIEJ1c2luZXNzIHJ1bGVzIHRlc3RzCuKUnOKUgOKUgCByZXF1aXJlbWVudHMudHh0CuKUnOKUgOKUgCBweXRlc3QuaW5pCuKUnOKUgOKUgCB1d3NnaS5pbmkgICAgICAgICAgICAgICAgICAgIPCfkYkgQXBwbGljYXRpb24gc2VydmVyIHNldHRpbmdzICAK4pSU4pSA4pSAIHdzZ2kucHkgICAgICAgICAgICAgICAgICAgICAg8J+RiSBXU0dJIERlcGxveSBmaWxlIChHdW5pY29ybi91V1NHSSkKYGBgCgojIyBSZXF1aXJlbWVudHMKCi0gUHl0aG9uIDMuOCBvciAzLjkgKEhlbHAgdXMgdGVzdCBpbiBvdGhlciB2ZXJzaW9ucykKCi0gRG9ja2VyIHRvIHJ1biBQb3N0Z3JlcyBsb2NhbGx5CgoKIyMgQ29udHJpYnV0ZSDwn5qACgpBbnkgaGVscCBpcyBtb3JlIHRoYW4gd2VsY29tZS4uLgoKLSDwn5GJIEl0IGNvdWxkIGJlIGFuIFtJc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2h1b2dlcmFjL2Nvb2tpZWN1dHRlci1mbGFzay1vcGVuYXBpL2lzc3VlcykKLSDwn5K7IEl0IGNvdWxkIGJlIHVzaW5nIGl0IGFuZCBnaXZlIGEgZmVlZGJhY2sKLSDwn4yfIEl0IGNvdWxkIGJlIGEgZ2l0aHViIHN0YXIKLSDwn6SUIEl0IGNvdWxkIGJlIGEgW1F1ZXN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vaHVvZ2VyYWMvY29va2llY3V0dGVyLWZsYXNrLW9wZW5hcGkvZGlzY3Vzc2lvbnMvKQotIPCfpJQgSWYgeW91IGRpc2xpa2UgdGhpcyBwcm9qZWN0LCBmZWVsIGZyZWUgdG8gdGVsbCB1cyB3aGF0IGlzIHdyb25nIHdpdGggaXQKCgojIyBHZXQgU3RhcnRlZCAoVXNhZ2UpIAoKTGV0J3MgcHJldGVuZCB5b3Ugd2FudCB0byBjcmVhdGUgYSBGbGFzayBwcm9qZWN0IGNhbGxlZCAiaGFja2VybmV3c2Nsb25lIi4gUmF0aGVyIHRoYW4gc3RhcnQgZnJvbSBzY3JhdGNoIGJ5IGEgYGBhcHAucHlgYCBhbmQgYWRkIGVhY2ggbGlicmFyeSwgRmxhc2sgZXh0ZXNpb24gYW5kIHZhcmlvdXMgb3RoZXIgY29uZmlndXJhdGlvbnMgdGhhdCBhbHdheXMgZ2V0IGZvcmdvdHRlbiB1bnRpbCB0aGUgd29yc3QgcG9zc2libGUgbW9tZW50LCBnZXQgdGhpcyBjb29raWVjdXR0ZXIgdGVtcGxhdGUgZG8gYWxsIHRoZSB3b3JrLgoKRmlyc3QsIGdldCBDb29raWVjdXR0ZXIuIFRydXN0IG1lLCBpdCdzIGF3ZXNvbWU6OgoKYGBgCiAgICAkIHBpcCBpbnN0YWxsICJjb29raWVjdXR0ZXI+PTEuNy4wIgpgYGAKCk5vdyBydW4gaXQgYWdhaW5zdCB0aGlzIHJlcG86OgoKYGBgCiAgICAkIGNvb2tpZWN1dHRlciBodHRwczovL2dpdGh1Yi5jb20vaHVvZ2VyYWMvY29va2llY3V0dGVyLWZsYXNrLW9wZW5hcGkvCmBgYAoKWW91J2xsIGJlIHByb21wdGVkIGZvciBzb21lIHZhbHVlcy4gUHJvdmlkZSB0aGVtLi4uCgpgYGAKcHJvamVjdF9uYW1lIFtIYWNrZXJuZXdzIENsb25lXTogCnByb2plY3Rfc2x1ZyBbaGFja2VybmV3c19jbG9uZV06IGhhY2tlcm5ld3MKZGVzY3JpcHRpb24gW1RoZSBVbHRpbWF0ZSBGbGFzayBUZW1wbGF0ZV06IAptYWluX21vZGVsIFtOZXdzXTogTmV3cwptYWluX21vZGVsX2xvd2VyIFtuZXdzXTogClNlbGVjdCBweXRob25fdmVyc2lvbjoKMSAtIDMuOC4xMAoyIC0gMy45LjUKQ2hvb3NlIGZyb20gMSwgMiBbMV06IDIKU2VsZWN0IHBhY2thZ2VfbWFuYWdlcjoKMSAtIHJlcXVpcmVtZW50cy50eHQKMiAtIFBpcGVudgpDaG9vc2UgZnJvbSAxLCAyIFsxXTogIApTZWxlY3QgcG9zdGdyZXNxbF92ZXJzaW9uOgoxIC0gMTMuMy1hbHBpbmUKMiAtIDEzLjUKMyAtIDE0LjEKQ2hvb3NlIGZyb20gMSwgMiwgMyBbMV06IAp1c2VfZG9ja2VyZmlsZSBbeWVzXTogCnVzZV9naXRodWJfYWN0aW9uc19DSSBbeWVzXTogCmRlcGxveV90b19oZXJva3UgW3llc106IAprZWVwX3ZzY29kZV9zZXR0aW5ncyBbeWVzXTogCmF1dGhvcl9uYW1lIFtSb2dlciBDYW1hcmdvXTogCmVtYWlsIFtyb2dlci1jYW1hcmdvQGV4YW1wbGUuY29tXTogaHVvZ2VyYWNAZ21haWwuY29tCnZlcnNpb24gWzAuMS4wXTogCiBbSU5GT106ICAgLSBVc2luZyByZXF1aXJlbWVudHMudHh0IGFuZCB2aXJ0dWFsZW52CiBbU1VDQ0VTU106IPCfkI0gWW91ciBwcm9qZWN0IGlzIGNyZWF0ZWQhIOKcqCDwn42wIOKcqAoKCldoYXQncyBuZXh0PwogICAgIGNkIGhhY2tlcm5ld3MKICAgICBDaGVjayB0aGUgUkVBRE1FX0RPQ0tFUiDwn5CzCiAgICAgQ2hlY2sgdGhlIFJFQURNRV9WSVJUVUFMRU5WIPCfkI0KIFtJTkZPXTog4pqg77iPIEZvciBtb3JlIGRldGFpbHMsIGNoZWNrIHRoZSBNYWtlZmlsZSBvciBydW46IG1ha2UgaGVscAoKYGBgCgpUaGVuIGFjY2VzcyDwn5qAIGh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC9hcGkKCgojIyBBcnRpY2xlcwoKLSDwn4en8J+HtyBbRXN0cnV0dXJhIGUgb3JnYW5pemHDp8OjbyBkZSBwYXN0YXMgZW0gcHJvamV0b3MgRmxhc2tdKGh0dHBzOi8vaHVvZ2VyYWMuaGFzaG5vZGUuZGV2L2VzdHJ1dHVyYS1lLW9yZ2FuaXphY2FvLWRlLXBhc3Rhcy1lbS1wcm9qZXRvcy1mbGFzaykKCi0g8J+Hp/Cfh7cgW0FQSSBEZXNpZ24gRmlyc3RdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2h1b2dlcmFjL2FwaS1kZXNpZ24tZmlyc3QtcHQtYnIpCgoKIyMgQVBJIERlc2lnbiBGaXJzdCBBcHByb2FjaAoKVGhlIGJpZyBkaWZmZXJlbmNlIGluIHRoaXMgdGVtcGxhdGUgaXMgdGhlIHdheSBBUElzIGFyZSBjcmVhdGVkLCBpdCB1c2VzIHRoZSBbY29ubmV4aW9uXShodHRwczovL2dpdGh1Yi5jb20vemFsYW5kby9jb25uZXhpb24pIHRvIGJ1aWxkIHVwIHRoZSBBUEkgQ29udHJhY3QgKFlBTUwpIGZpcnN0LiBTbyB0aGUgQVBJIGRvY3VtZW50YXRpb24gaXMgY3JlYXRlZCBmcm9tIHRoZSBjb250cmFjdCBhbmQgbm90IGZyb20gCmNvZGUuCgojIyMgVW5kZXJzdGFuZGluZyB0aGUgc3RydWN0dXJlIGZyb20gdGVzdHMKCldlIGNhbiBzdGFydCBuZXcgaW1wbGVtZW50YXRpb24gZnJvbSBidWlsZGluZyB0ZXN0cyAoVEREKQoKYGBgcHl0aG9uCgojIEFQSSB0ZXN0cwoKZGVmIHRlc3Rfc2hvdWxkX3JldHVybl90aXRsZV9pc19hX3JlcXVpcmVkX2ZpZWxkKHRva2VuX3ZhbGlkX21vY2ssIGNsaWVudCk6CiAgICAjIEdpdmVuIGEgcmVxdWVzdCB3aXRoIGEgbWlzc2luZyByZXF1aXJlZCBmaWVsZAogICAgcmVzcG9uc2UgPSBjbGllbnQucG9zdCgKICAgICAgICAiL2FwaS9uZXdzIiwKICAgICAgICBoZWFkZXJzPXsiYXV0aG9yaXphdGlvbiI6IGYiQmVhcmVyIHt0b2tlbl92YWxpZF9tb2NrfSJ9LAogICAgICAgIGpzb249e30sCiAgICApCgogICAgIyBUaGVuCiAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gNDAwCiAgICBhc3NlcnQgcmVzcG9uc2UuanNvblsiZGV0YWlsIl0gPT0gIid0aXRsZScgaXMgYSByZXF1aXJlZCBwcm9wZXJ0eSIKCgpkZWYgdGVzdF9zaG91bGRfcmVqZWN0X3RpdGxlX2xlc3NfdGhhbl9taW5fdGl0bGVfbGVuZ3RoKHRva2VuX3ZhbGlkX21vY2ssIGNsaWVudCk6CiAgICAjIEdpdmVuIGEgcmVxdWVzdCB3aXRoIGFuIGludmFsaWQgdGl0bGUKICAgIHJlc3BvbnNlID0gY2xpZW50LnBvc3QoCiAgICAgICAgIi9hcGkvbmV3cyIsCiAgICAgICAgaGVhZGVycz17ImF1dGhvcml6YXRpb24iOiBmIkJlYXJlciB7dG9rZW5fdmFsaWRfbW9ja30ifSwKICAgICAgICBqc29uPXsidGl0bGUiOiAidGlueS10aXRsZSJ9LAogICAgKQoKICAgICMgVGhlbgogICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2RlID09IDQwMAogICAgYXNzZXJ0IHJlc3BvbnNlLmpzb25bImRldGFpbCJdID09ICIndGlueS10aXRsZScgaXMgdG9vIHNob3J0IC0gJ3RpdGxlJyIKCgpAcGF0Y2goImhhY2tlcm5ld3Muc2VydmljZXMubmV3cy5jcmVhdGVfbmV3cyIpCmRlZiB0ZXN0X3Nob3VsZF9hY2NlcHRfbnVsbF9kZXNjcmlwdGlvbihuZXdzX21vY2ssIHRva2VuX3ZhbGlkX21vY2ssIGNsaWVudCk6CgogICAgbmV3c19tb2NrLnJldHVybl92YWx1ZSA9IHt9CgogICAgIyBHaXZlbiBhIHJlcXVlc3Qgd2l0aCBhbiBlbXB0eSBkZXNjcmlwdGlvbiAobm9uIHN0cmluZykKICAgIHJlc3BvbnNlID0gY2xpZW50LnBvc3QoCiAgICAgICAgIi9hcGkvbmV3cyIsCiAgICAgICAgaGVhZGVycz17ImF1dGhvcml6YXRpb24iOiBmIkJlYXJlciB7dG9rZW5fdmFsaWRfbW9ja30ifSwKICAgICAgICBqc29uPXsKICAgICAgICAgICAgInRpdGxlIjogIkEgdmFsaWQgYW5kIHNpbXBsZSB0aXRsZSIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IE5vbmUsCiAgICAgICAgfSwKICAgICkKCiAgICAjIFRoZW4KICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDEKICAgIG5ld3NfbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgiQSB2YWxpZCBhbmQgc2ltcGxlIHRpdGxlIiwgTm9uZSkKCmBgYAoKVGhlbiwgd2UganVtcCB1cCBkaXJlY3RseSB0byB0aGUgQVBJIENvbnRyYWN0LiBOb3RlIHRoYXQgdGhlIGNvbnRyYWN0IGhhcyBpbmZvcm1hdGlvbgp0byBkbyBpbnB1dCB2YWxpZGF0aW9ucwoKYGBgWUFNTAoKICAjIGhhY2tlcm5ld3MvYXBpL29wZW5hcGkueWFtbAogIC9hcGkvbmV3czoKICAgIHBvc3Q6CiAgICAgIG9wZXJhdGlvbklkOiBoYWNrZXJuZXdzLmFwaS5uZXdzLmNyZWF0ZV9uZXdzCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYSBuZXdzCiAgICAgIHRhZ3M6CiAgICAgICAgLSBOZXdzCiAgICAgIHNlY3VyaXR5OgogICAgICAgIC0gand0QXV0aDogW25ld3M6Y3JlYXRlXQogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgICAgICAtIHRpdGxlCiAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgIHRpdGxlOgogICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgZXhhbXBsZTogVGhpcyBpcyBhbiBhd2Vzb21lIG5ld3MKICAgICAgICAgICAgICAgICAgbWluTGVuZ3RoOiAxMgogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICBleGFtcGxlOiBTb21lIGV4dHJhIGluZm9ybWF0aW9uIGFib3V0IHRoZSBuZXdzCiAgICAgICAgICAgICAgICAgIG51bGxhYmxlOiB0cnVlCgogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAxOgogICAgICAgICAgZGVzY3JpcHRpb246IE5ld3MgY3JlYXRlZCBzdWNjZXNmdWxseQogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvTmV3cyIKICAgICAgICA0MDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW52YWxpZCBkYXRhCiAgICAgICAgNDAxOgogICAgICAgICAgZGVzY3JpcHRpb246IE5vIEF1dGhvcml6YXRpb24KCmNvbXBvbmVudHM6CgogIHNjaGVtYXM6CiAgICBOZXdzOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGV4YW1wbGU6IDQyCiAgICAgICAgdGl0bGU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IFB5dGhvbiBpcyBhIGdyZWF0IG9wdGlvbiBmb3IgYmFja2VuZCBhbmQgQVBJcwogICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBUaGlzIGlzIGFsb25nIHRleHQgd2l0aGluIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5ld3MKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgY3JlYXRlZF9hdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZm9ybWF0OiBkYXRlLXRpbWUKICAgICAgICAgIGV4YW1wbGU6IDIwMjEtMDEtMTFUMTE6MzI6MjhaCmBgYAoKCgoKIyMgVGhhbmtzIGFuZCBJbnNwaXJhdGlvbnMKCi0gVGhpcyB0ZW1wbGF0ZSBpcyBiYXNlZCBvbiBbY29va2llY3V0dGVyLWRqYW5nb10oaHR0cHM6Ly9naXRodWIuY29tL2Nvb2tpZWN1dHRlci9jb29raWVjdXR0ZXItZGphbmdvKS4gVGhhbmtzIFtQeURhbm55XShodHRwczovL2dpdGh1Yi5jb20vcHlkYW5ueSkgYW5kIHRoZSBDb29raWVjdXR0ZXIgbWFpbnRhaW5lcnMKCi0gVGhpcyBGbGFzayBzdHJ1Y3R1cmUgaXMgYmFzZWQgb24gWyJBcnF1aXRldHVyYSBEZWZpbml0aXZhIHBhcmEgbyBQcm9qZXRvIFdlYiBDb20gUHl0aG9uIGUgRmxhc2siXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PS1xV3lTbnVvYVRNKS4gVGhhbmtzIFtCcnVubyBSb2NoYV0oaHR0cHM6Ly9naXRodWIuY29tL3JvY2hhY2JydW5vKSBhbmQgYWxsIHlvdXJzIGF3ZXNvbWUgRmxhc2sgY29udGVudHMK readmeEtag: '"69745b628de1c3737d6543a0abdb666da516811e"' readmeLastModified: Sun, 26 Dec 2021 15:36:50 GMT repositoryId: 439192571 description: >- Cookiecutter Flask OpenAPI is a template for jumpstarting production-ready Flask projects quickly. It has a well organized and scalable structure. It uses API design first created: '2021-12-17T02:56:07Z' updated: '2024-03-08T00:06:17Z' language: Python archived: false stars: 5 watchers: 3 forks: 1 owner: huogerac logo: https://avatars.githubusercontent.com/u/962233?v=4 license: BSD-3-Clause repoEtag: '"dd515cec0ef498f88092b14942be79cc1f4365b765593382ba4ec9d9420dc0c3"' repoLastModified: Fri, 08 Mar 2024 00:06:17 GMT foundInMaster: true category: Server Implementations id: 611541e75d358f861d14f5bb4f06070e - source: openapi3 tags repository: https://github.com/storm-platform/storm-ws-spec v3: true id: 9210ed330a23ca0f14c79b9ac96af28b repositoryMetadata: base64Readme: >- Li4KICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFNwYXRpb1RlbXBvcmFsIE9wZW4gUmVzZWFyY2ggTWFuYWdlciBXZWIgU2VydmljZSBTcGVjaWZpY2F0aW9uLgogICAgQ29weXJpZ2h0IChDKSAyMDIxIElOUEUuCgogICAgU3BhdGlvVGVtcG9yYWwgT3BlbiBSZXNlYXJjaCBNYW5hZ2VyIFdlYiBTZXJ2aWNlIFNwZWNpZmljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAogICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLgoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KU3BhdGlvVGVtcG9yYWwgT3BlbiBSZXNlYXJjaCBNYW5hZ2VyIFdlYiBTZXJ2aWNlIC0gU3BlY2lmaWNhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcnVuLUluc29tbmlhLWJsdWV2aW9sZXQKICAgICAgICA6dGFyZ2V0OiBodHRwczovL2luc29tbmlhLnJlc3QvcnVuLz9sYWJlbD1TdG9ybSUyMFdTJTIwaW1wbGVtZW50YXRpb24lMjBleGFtcGxlJnVyaT1odHRwcyUzQSUyRiUyRnJhdy5naXRodWJ1c2VyY29udGVudC5jb20lMkZzdG9ybS1wbGF0Zm9ybSUyRnN0b3JtLXdzLXNwZWMlMkZtYXN0ZXIlMkZleGFtcGxlJTJGc3Rvcm0td3MtaW5zb21uaWEuanNvbgogICAgICAgIDphbHQ6IFJ1biBpbiBJbnNvbW5pYQoKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWdyZWVuCiAgICAgICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL3N0b3JtLXBsYXRmb3JtL3N0b3JtLXdzLXNwZWMvYmxvYi9tYXN0ZXIvTElDRU5TRQogICAgICAgIDphbHQ6IFNvZnR3YXJlIExpY2Vuc2UKCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWZlY3ljbGUtbWF0dXJpbmctYmx1ZS5zdmcKICAgICAgICA6dGFyZ2V0OiBodHRwczovL3d3dy50aWR5dmVyc2Uub3JnL2xpZmVjeWNsZS8jbWF0dXJpbmcKICAgICAgICA6YWx0OiBTb2Z0d2FyZSBMaWZlIEN5Y2xlCgouLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3RhZy9zdG9ybS1wbGF0Zm9ybS9zdG9ybS13cy1zcGVjLnN2ZwogICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9ybS1wbGF0Zm9ybS9zdG9ybS13cy1zcGVjL3JlbGVhc2VzCiAgICAgICAgOmFsdDogUmVsZWFzZQoKLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2Rpc2NvcmQvNjg5NTQxOTA3NjIxMDg1MTk4P2xvZ289ZGlzY29yZCZsb2dvQ29sb3I9ZmZmZmZmJmNvbG9yPTczODlEOAogICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vZGlzY29yZC5jb20vY2hhbm5lbHMvNjg5NTQxOTA3NjIxMDg1MTk4IwogICAgICAgIDphbHQ6IEpvaW4gdXMgYXQgRGlzY29yZAoKLi4gaW1hZ2U6OiBodHRwczovL2Nkbi5yYXdnaXQuY29tL3N5bDIwYm5yL3NwYWNlbWFjcy80NDJkMDI1Nzc5ZGEyZjYyZmM4NmMyMDgyNzAzNjk3NzE0ZGI2NTE0L2Fzc2V0cy9zcGFjZW1hY3MtYmFkZ2Uuc3ZnCiAgICAgICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL3N5bDIwYm5yL3NwYWNlbWFjcwogICAgICAgIDphbHQ6IE1hZGUgd2l0aCBTcGFjZW1hY3MKCkFib3V0Cj09PT09CgpTcGF0aW9UZW1wb3JhbCBPcGVuIFJlc2VhcmNoIE1hbmFnZXIgV2ViIFNlcnZpY2UgYE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uPmBfLgoKUmVwb3NpdG9yeSBPcmdhbml6YXRpb24KPT09PT09PT09PT09PT09PT09PT09PT0KCi0gYGFwaSA8Li9hcGk+YF86IFN0b3JtIFdTIFNwZWNpZmljYXRpb24gdXNpbmcgYE9wZW5BUEkgMy4wIDxodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbj5gXzsKCi0gYGV4YW1wbGUgPC4vZXhhbXBsZT5gXzogYEluc29tbmlhIDxodHRwczovL2luc29tbmlhLnJlc3QvPmBfLWJhc2VkIGV4YW1wbGUgb2YgdXNpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzcGVjaWZpY2F0aW9uIHByb3ZpZGVkIGJ5IHRoZSBgU3Rvcm0gV1MgPGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9ybS1wbGF0Zm9ybS9zdG9ybS13cz5gXyBwYWNrYWdlLgoKQnVpbGRpbmcgdGhlIERvY3VtZW50YXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT0KClJlcXVpcmVtZW50cwotLS0tLS0tLS0tLS0KClRoZSBidWlsZCBzeXN0ZW0gZm9yIHRoZSBSRVNUIEFQSSBkb2N1bWVudGF0aW9uIHJlbGllcyBvbiB0aGUgTm9kZS5qcyBydW4tdGltZSBlbnZpcm9ubWVudDoKCiAgLSBgTm9kZS5qcyA8aHR0cHM6Ly9ub2RlanMub3JnL2VuLz5gXyAoVmVyc2lvbiA4KykuCgogIC0gYFJlRG9jIDxodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYz5gXzogZ2VuZXJhdGVzIEhUTUwgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24gZnJvbSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZS4KCgpCdWlsZAotLS0tLQoKSWYgeW91IGhhdmUgTm9kZS5qcyBpbnN0YWxsZWQsIHBsZWFzZSwgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gaW5zdGFsbCB0aGUgUmVEb2MgZGVwZW5kZW5jeToKCi4uIGNvZGUtYmxvY2s6OiBzaGVsbAoKICAgICQgbnBtIGluc3RhbGwKCgpBZnRlciB0aGF0LCBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbjoKCi4uIGNvZGUtYmxvY2s6OiBzaGVsbAoKICAgICQgbnBtIHJ1biBidWlsZAoKClRoZSBhYm92ZSBjb21tYW5kIHdpbGwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkIGBgZGlzdGBgIHdpdGggdGhlIGJ1bmRsZWQgZmlsZSBpbmRleC5odG1sLiBZb3UgbWF5IG9wZW4gaXQgaW4geW91ciB3ZWIgYnJvd3NlciBvciBtYXkgc2VydmUgaXQgd2l0aCBhbiBIVFRQIFNlcnZlci4KCkZvciBQeXRob24gZGV2ZWxvcGVycywgeW91IGNhbiBzZXJ2ZSB0aGUgSFRNTCB3aXRoOgoKLi4gY29kZS1ibG9jazo6IHNoZWxsCgogICAgICAgIHB5dGhvbjMuOCAtbSBodHRwLnNlcnZlciA4MDgwIC0tZGlyZWN0b3J5IGRpc3QKCgpMaWNlbnNlCj09PT09PT0KCi4uIGFkbW9uaXRpb246OgogICAgQ29weXJpZ2h0IChDKSAyMDIxIElOUEUuCgogICAgU3BhdGlvVGVtcG9yYWwgT3BlbiBSZXNlYXJjaCBNYW5hZ2VyIFdlYiBTZXJ2aWNlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy4K readmeEtag: '"751dddacd0c0bdc199da722b7ddec11b390edf08"' readmeLastModified: Sat, 12 Nov 2022 16:23:23 GMT repositoryId: 431249435 description: SpatioTemporal Open Research Manager Web Service Specification created: '2021-11-23T20:49:59Z' updated: '2022-12-26T15:55:04Z' language: null archived: false stars: 5 watchers: 3 forks: 0 owner: storm-platform logo: https://avatars.githubusercontent.com/u/93740635?v=4 license: MIT repoEtag: '"fdf0322f8553da4d85cb59c207d37a1198e1be0e05ea0273efe0781621da470c"' repoLastModified: Mon, 26 Dec 2022 15:55:04 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mikeparcewski/aws-openapi v3: true repositoryMetadata: base64Readme: >- IyBBV1MgKyBPcGVuQVBJCgpBIGZhc3QsIG1hc3NpdmVseSBzY2FsYWJsZSBzYW1wbGUgQ1JVRCBhcHBsaWNhdGlvbiB3aXRoIHNpbXBsZSBldmVudGluZyB0aGF0IGhhcm5lc3NlcyB0aGUgcG93ZXIgb2YgQVdTIGFuZCBPcGVuQVBJLgoKIyMjIFRhYmxlIG9mIENvbnRlbnRzCgoqIFtXaGF0IFRoaXMgSXNdKCN3aGF0LXRoaXMtaXMpCiogW1doYXQgWW91J2xsIE5lZWRdKCN3aGF0LXlvdWxsLW5lZWQpCiogW1NldHRpbmcgSXQgVXBdKCNzZXR0aW5nLWl0LXVwKQoqIFtNYWtpbmcgU3VyZSBJdCBXb3Jrc10oI21ha2luZy1zdXJlLWl0LXdvcmtzKQoqIFtIb3cgSXQgV29ya3NdKCNob3ctaXQtd29ya3MpCiAgKiBbSG93IHRvIEN1c3RvbWl6ZV0oI3NyY21haW5yZXNvdXJjZXNvcGVuYXBpeWFtbCkKKiBbVGhlIFRlc3QgSGFybmVzc10oI3RoZS10ZXN0LWhhcm5lc3MpCiogW1Rha2luZyBJdCBGdXJ0aGVyXSgjdGFraW5nLWl0LWZ1cnRoZXIpCiogW0NsZWFuaW5nIFVwXSgjY2xlYW5pbmctdXApCgojIyMgV2hhdCBUaGlzIElzCgpMZXZlcmFnaW5nIEFXUywgT3BlbkFQSSBhbmQgQkREIHRlc3RpbmcgbWV0aG9kb2xvZ2llcyB0aGlzIGEgZmFzdCwgbWFzc2l2ZWx5IHNjYWxhYmxlIEFQSSBjcmVhdGVkIGVudGlyZWx5IHRocm91Z2ggY29uZmlndXJhdGlvbiwgbGV2ZXJhZ2luZyBlYWNoIG9mIHRoZSB0ZWNobm9sb2dpZXMgdG8gc2ltcGxpZnkgZGV2ZWxvcG1lbnQgYW5kIGRlcGxveW1lbnQuCgoqIEFtYXpvbiBXZWIgU2VydmljZXMKICAqIFtBUEkgR2F0ZXdheV0oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9hcGktZ2F0ZXdheS8pIC0gVG8gbWFuYWdlIHJlc291cmNlIHJlcXVlc3RzIHRvIEFXUyBMYW1iZGEgb3IgRHluYW1vREIKICAqIFtBV1MgTGFtYmRhXShodHRwczovL2F3cy5hbWF6b24uY29tL2xhbWJkYSkgLSBUbyBoYW5kbGUgdHJhbnNmb3JtYXRpb24gb2YgZGF0YQogICogW0R5bmFtb0RCXShodHRwczovL2F3cy5hbWF6b24uY29tL2R5bmFtb2RiLykgLSBBIG11bHRpLW1hc3RlciAoZS5nLiByZWFkL3dyaXRlKSwgcmVnaW9uYWxseSBzY2FsYWJsZQogICogW0FXUyBTTlNdKGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vc25zLykgLSBBbGVydGluZyB5b3UgaW4gcmVhbCB0aW1lIHRvIGNoYW5nZXMgaW4gZGF0YQoqIFtPcGVuQVBJIDMueF0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgd2l0aCBBV1MgZXh0ZW5zaW9ucyAoZm9yIGRlcGxveW1lbnQpCiogW0JERCBGb3IgQWxsXShodHRwczovL2dpdGh1Yi5jb20vYWNjZW50dXJlL2JkZC1mb3ItYWxsKSAtIEEgYmVoYXZvcmlhbCBkcml2ZW4gZGV2ZWxvcG1lbnQgZ3JhbW1hci90ZXN0IGhhcm5lc3MgZnJvbSBBY2NlbnR1cmUKCiFbQVdTIERpYWdyYW0gb2YgU29sdXRpb25dKGNvbnRlbnQvZGlhZ3JhbS5wbmcpCgo+IEFkZCBSb3V0ZSA1MyB0byByb3V0ZSB0cmFmZmljIGJhc2VkIG9uIGJlc3QgY29uc3VtZXIgcmVnaW9uIC0gaHR0cHM6Ly9tZWRpdW0uY29tL2ZpbnRlY2gtc3R1ZGlvcy1lbmdpbmVlcmluZy9hdXRvbWF0aWMtbXVsdGktcmVnaW9uLWFwaS1mYWlsb3Zlci1hbmQtZ2VvLXByb3hpbWl0eS1yb3V0aW5nLW9uLWF3cy0yNzFmNTc3NTJjMWIKCiMjIFdoYXQgWW91J2xsIE5lZWQKClRvIHJ1biB0aGlzIGFwcGxpY2F0aW9uIGFuZCBjcmVhdGUgb3RoZXIgQVBJJ3MgeW91J2xsIG5lZWQgdGhlIGZvbGxvd2luZyBpbnN0YWxsZWQuLi4KCiogTW9kZXJuIElERSAmIEVudmlyb25tZW50IC0gU3VwcG9ydHMgTWF2ZW4sIEphdmEgOCwgTm9kZUpTICYgUHl0aG9uCiogQVdTIENMSSAtIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vY2xpLwoqIEFXUyBDbG91ZEZvcm1hdGlvbiBUZW1wbGF0ZSBGbGlwIC0gaHR0cHM6Ly9naXRodWIuY29tL2F3c2xhYnMvYXdzLWNmbi10ZW1wbGF0ZS1mbGlwCgojIyBXaGF0IFlvdSdsbCBCZSBEb2luZwoKQ3JlYXRpbmcgYW5kIHRlc3RpbmcgYSBmYXN0LCBhbmQgbXVsdGktcmVnaW9uIENSVUQgd2l0aCBubyBjb2RlIHVzaW5nIGRvY3VtZW50YXRpb24gYW5kIGNvbmZpZ3VyYXRpb24uCgoqKkZlYXR1cmVzKioKKiBDUlVEIEFQSSBiYXNlZCBvbiBPcGVuQVBJIDMueCBzY2hlbWEgKGVpdGhlciBleGFtcGxlIG9uZSwgb3Igb25lIHlvdSB3cml0ZSkKKiBMYXVuY2hlcyBpbiB0d28gcmVnaW9ucywgYnV0IGNhbiBzY2FsZSB0byBhbGwgZWFzaWx5CiogRm9yIHJlZHVjZWQgbGF0ZW5jeSwgYWxsIHJlc291cmNlcyBmb3IgYW4gQVBJIGV4aXN0IHdpdGhpbiBzYW1lIHJlZ2lvbgogICogQWxsIGluLXJlZ2lvbiByZXNvdXJjZXMgcmVzb3VyY2VzIGNvbmZpZ3VyZWQgdG8gc2NhbGUgYXMgd2VsbAoqIEJhY2tlZCBieSBhIGdsb2JhbCBEeW5hbW9EQiBpbnN0YW5jZSB3aGljaCBtYWtlcyBlYWNoIHJlZ2lvbiBpbnN0YW5jZSBtdWx0aS1tYXN0ZXIgcmVhZC93cml0ZQoqIENoYW5nZSBub3RpZmljYXRpb25zIHNlbnQgdmlhIHJlYWwgdGltZSBWSUEgU01TCiogTm8gY29kZSwgb3RoZXIgdGhhbiByZXVzYWJsZSBsYW1iZGFzIHRoYXQgY291bGQgYmUgdXNlZCBmb3IgYW55IEFQSS4KCiMjIFNldHRpbmcgSXQgVXAKCkZpcnN0IHdlIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIGNvbmZpZ3VyYXRpb24uICBJbiBzcmMvbWFpbi9yZXNvdXJjZXMvIHdlIGhhdmUgMyBZQU1MIGZpbGVzLi4uCgoqICoqYXdzLXJlc291cmNlcy55YW1sKiogLSB0aGlzIG91dGxpbmVzIG1vc3Qgb2YgdGhlIGNvbXBvbmVudHMgb2YgdGhlIGNsb3VkIGZvcm1hdGlvbiBzdGFjawoqICoqb3BlbmFwaS55YW1sKiogLSB0aGlzIGlzIHRoZSBvcGVuYXBpIHNwZWMgZm9yIHRoZSBzZXJ2aWNlCiogKiphd3MtZXh0ZW5zaW9ucy55YW1sKiogLSB0aGVzZSBhcmUgb3BlbmFwaSBleHRlbnNpb25zIGZyb20gQVdTIHRoYXQgZGVzY3JpYmUgdGhlIEFQSSBHYXRld2F5IGRlcGxveW1lbnQKCllvdSBjYW4gbGVhcm4gbW9yZSBhYm91dCB0aGVzZSBpbiB0aGUgW0hvdyBUaGlzIGFsbCBXb3Jrc10oI2hvdy10aGlzLWFsbC13b3Jrcykgc2VjdGlvbi4gIEZvciBub3csIGxldCdzIGdldCBzdGFydGVkLgoKKiBHbyB0byB0aGUgcm9vdCBvZiB0aGlzIHByb2plY3RzIGRpcmVjdG9yeQoqIEZpcnN0IHdlIG5lZWQgdG8gY29udmVydCBvdXIgWUFNTCBjb25maWd1cmF0aW9ucyB0byBBV1MgSlNPTi4gIFdlJ2xsIHVzIHRoZSBjZm4tZmxpcCBsaWJyYXJ5IHRvIGRvIHRoaXMuCiAgYGBgc2J0c2hlbGwKICBjZm4tZmxpcCAtaiBzcmMvbWFpbi9yZXNvdXJjZXMvYXdzLXJlc291cmNlcy55YW1sIHNyYy9tYWluL3Jlc291cmNlcy9hd3MtcmVzb3VyY2VzLmpzb24KICBgYGAKICBBbmQuLi4KICBgYGBzYnRzaGVsbAogIGNmbi1mbGlwIC1qIHNyYy9tYWluL3Jlc291cmNlcy9hcGktZXh0ZW5zaW9ucy55YW1sIHNyYy9tYWluL3Jlc291cmNlcy9hcGktZXh0ZW5zaW9ucy5qc29uCiAgYGBgCiAgRmluYWxseS4uLgogIGBgYHNidHNoZWxsCiAgY2ZuLWZsaXAgLWogc3JjL21haW4vcmVzb3VyY2VzL29wZW5hcGkueWFtbCBzcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaS5qc29uCiAgYGBgCiogTmV4dCwgd2UnbGwgZ2VuZXJhdGUgdGhlIGZpbmFsIGNsb3VkZm9ybWF0aW9uIHRlbXBsYXRlIGZyb20gdGhlc2UuLi4KICBgYGBzYnRzaGVsbAogIG12biBjbGVhbiBnZW5lcmF0ZS10ZXN0LXJlc291cmNlcwogIGBgYAoKQW5kIG5vdyB3ZSBjYW4gc3RhcnQgbGF1bmNoaW5nIHRoZSBzdGFjay4uLgoKYGBgc2J0c2hlbGwKYXdzIGNsb3VkZm9ybWF0aW9uIGNyZWF0ZS1zdGFjayBcCiAgLS1zdGFjay1uYW1lIEl0ZW1zRXhhbXBsZSBcCiAgLS10ZW1wbGF0ZS1ib2R5IGZpbGU6Ly8vJFBXRC90YXJnZXQvYXdzLWNvbmZpZy5qc29uIFwKICAtLWNhcGFiaWxpdGllcyBDQVBBQklMSVRZX0lBTSBcCiAgLS1yZWdpb24gdXMtZWFzdC0xCmBgYAoKVGhpcyBjcmVhdGVzIHRoZSBkYXRhYmFzZSwgbGFtYmRhcywgYW5kIGFwaSBnYXRld2F5IGNvbmZpZ3VyYXRpb24gYW5kIHB1Ymxpc2hlcyBkZW1vIGVuZHBvaW50cyBpbiB0aGUgdXMtZWFzdC0xIHJlZ2lvbi4KCj4gWW91IHNob3VsZCBqdW1wIHRvIHRoZSBjb25zb2xlIGF0IHRoaXMgcG9pbnQgLSBodHRwczovL2NvbnNvbGUuYXdzLmFtYXpvbi5jb20vY2xvdWRmb3JtYXRpb24vaG9tZT9yZWdpb249dXMtZWFzdC0xIy9zdGFja3M/ZmlsdGVyPWFjdGl2ZSAtIGFuZCBtYWtlIHN1cmUgaXQgY29tcGxldGVzIHdpdGhvdXQgZXJyb3IuICBZb3UgY2FuIGFsc28gY2hlY2sgdmlhIHRoZSBjb21tYW5kIGxpbmUgdXNpbmcgYGF3cyBjbG91ZGZvcm1hdGlvbiBkZXNjcmliZS1zdGFja3MgLS1zdGFjay1uYW1lIEl0ZW1zRXhhbXBsZSAtLXJlZ2lvbiB1cy1lYXN0LTFgIHdoZXJlIHlvdSBzaG91bGQgc2VlIGAiU3RhY2tTdGF0dXMiOiAiQ1JFQVRFX0NPTVBMRVRFImAKCk5vdywgbGV0J3MgZG8gdGhlIHNhbWUgZm9yIHVzLXdlc3QtMS4uLgoKYGBgc2J0c2hlbGwKYXdzIGNsb3VkZm9ybWF0aW9uIGNyZWF0ZS1zdGFjayBcCiAgLS1zdGFjay1uYW1lIEl0ZW1zRXhhbXBsZSBcCiAgLS10ZW1wbGF0ZS1ib2R5IGZpbGU6Ly8vJFBXRC90YXJnZXQvYXdzLWNvbmZpZy5qc29uIFwKICAtLWNhcGFiaWxpdGllcyBDQVBBQklMSVRZX0lBTSBcCiAgLS1yZWdpb24gdXMtd2VzdC0xCmBgYAo+IEFnYWluIGp1bXAgdG8gdGhlIGNvbnNvbGUgYXQgdGhpcyBwb2ludCAtIGh0dHBzOi8vY29uc29sZS5hd3MuYW1hem9uLmNvbS9jbG91ZGZvcm1hdGlvbi9ob21lP3JlZ2lvbj11cy13ZXN0LTEjL3N0YWNrcz9maWx0ZXI9YWN0aXZlIC0gYW5kIG1ha2Ugc3VyZSBpdCBjb21wbGV0ZXMgd2l0aG91dCBlcnJvciBvciBjaGVjayB2aWEgdGhlIGNvbW1hbmQgbGluZSB1c2luZyB0aGUgYGF3cyBjbG91ZGZvcm1hdGlvbiBkZXNjcmliZS1zdGFja3MgLS1zdGFjay1uYW1lIEl0ZW1zRXhhbXBsZSAtLXJlZ2lvbiB1cy13ZXN0LTFgIGNvbW1hbmQuCgpPbmNlIGJvdGggc3RhY2tzIGhhdmUgYmVlbiBjcmVhdGVkLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSBhbnkgZGF0YWJhc2UgY2hhbmdlcyBhcmUgc3luY2hlZCBiZXR3ZWVuIHJlZ2lvbnMuICBTaW5jZSB3ZSBjYW4ndCBzcGVjaWZ5IGdsb2JhbCB0YWJsZXMgaW4gdGhlIGNsb3VkZm9ybWF0aW9uIHRlbXBsYXRlIChhcyBvZiBGZWIgJzE5KSwgd2UganVzdCBuZWVkIHRvIGlzc3VlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBicmluZyB0aGUgZWFzdC93ZXN0IGRhdGFiYXNlcyB0b2dldGhlci4uLgoKYGBgc2J0c2hlbGwKYXdzIGR5bmFtb2RiIGNyZWF0ZS1nbG9iYWwtdGFibGUgXAogIC0tcmVnaW9uIHVzLWVhc3QtMSBcCiAgLS1yZXBsaWNhdGlvbi1ncm91cCBSZWdpb25OYW1lPXVzLWVhc3QtMSBSZWdpb25OYW1lPXVzLXdlc3QtMSBcCiAgLS1nbG9iYWwtdGFibGUtbmFtZSBJdGVtc0V4YW1wbGVUYWJsZQpgYGAKClRvIHZhbGlkYXRlIGl0IHdvcmtlZCwgY2hlY2sgb3V0IGh0dHBzOi8vY29uc29sZS5hd3MuYW1hem9uLmNvbS9keW5hbW9kYi9ob21lP3JlZ2lvbj11cy1lYXN0LTEjdGFibGVzOnNlbGVjdGVkPUl0ZW1zRXhhbXBsZVRhYmxlO3RhYj1nbG9iYWx0YWJsZXMKClRoZXJlIHlvdSBzaG91bGQgc2VlIGxpbmVzIGZvciBVUyBFYXN0ICYgV2VzdCBpbiB0aGUgR2xvYmFsIFRhYmxlIHJlZ2lvbnMgbGlzdC4KCiMjIyBNYWtpbmcgU3VyZSBJdCBXb3JrcwoKSW4gYWRkaXRpb24gdG8gd3JpdGluZyBhbiBPcGVuQVBJIHNwZWMsIHdlIGFsc28gd3JpdGUgYWNjZXB0YW5jZSB0ZXN0cyAoQkREKS4gIExldCdzIHNlZSBpZiB0aGUgYXBwbGljYXRpb24gd29ya3MgYnkgZXhlY3V0aW5nIHRob3NlIHRlc3RzLi4uCgoqIEZpcnN0IGxldCdzIGdldCB0aGUgdXJsJ3MuICBUaGUgZWFzaWVzdCB3YXkuLi4gCiAgYGBgc2J0c2hlbGwKICB7IFwKICBhd3MgY2xvdWRmb3JtYXRpb24gZGVzY3JpYmUtc3RhY2stcmVzb3VyY2VzIFwKICAgIC0tc3RhY2stbmFtZSBJdGVtc0V4YW1wbGUgXAogICAgLS1yZWdpb24gdXMtZWFzdC0xIFwKICAgIHwgZ3JlcCAtQyA1ICJBcGlHYXRld2F5OjpSZXN0QXBpIiBcCiAgICB8IGdyZXAgUGh5c2ljYWxSZXNvdXJjZUlkIFwKICAgIHwgc2VkICdzL14uKjogLy87IHMvXCIvL2c7IHMvXi9ob3N0IC0gaHR0cHM6XC9cLy87IHMvLC9cLmV4ZWN1dGUtYXBpXC51cy1lYXN0LTFcLmFtYXpvbmF3c1wuY29tXC9kZW1vL2cnIFwKICA7IFwKICBhd3MgY2xvdWRmb3JtYXRpb24gZGVzY3JpYmUtc3RhY2stcmVzb3VyY2VzIFwKICAgIC0tc3RhY2stbmFtZSBJdGVtc0V4YW1wbGUgXAogICAgLS1yZWdpb24gdXMtd2VzdC0xIFwKICAgIHwgZ3JlcCAtQyA1ICJBcGlHYXRld2F5OjpSZXN0QXBpIiBcCiAgICB8IGdyZXAgUGh5c2ljYWxSZXNvdXJjZUlkIFwKICAgIHwgc2VkICdzL14uKjogLy87IHMvXCIvL2c7IHMvXi9hbHRlcm5hdGl2ZSAtIGh0dHBzOlwvXC8vOyBzLywvXC5leGVjdXRlLWFwaVwudXMtd2VzdC0xXC5hbWF6b25hd3NcLmNvbVwvZGVtby9nJyBcCiAgfSBcCiAgfCBjYXQKICBgYGAKICA+IFlvdXIgb3V0cHV0IHNob3VsZCBsb29rIHNvbWV0aGluZyBsaWtlLi4uCiAgYGBgc2J0c2hlbGwKICBob3N0IC0gaHR0cHM6Ly91b2E5ajg0dWZoLmV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2RlbW8vaXRlbXMKICBhbHRlcm5hdGl2ZSAtIGh0dHBzOi8vMzlnemZ5aGx2OS5leGVjdXRlLWFwaS51cy13ZXN0LTEuYW1hem9uYXdzLmNvbS9kZW1vL2l0ZW1zCiAgYGBgCiogTm93IG9wZW4gc3JjL3Rlc3QvcmVzb3VyY2VzL2FwcGxpY2F0aW9uLmNvbmYgYW5kIHRha2UgImhvc3QiIGZyb20gdGhlIGNvbW1hbmQgYWJvdmUgKGp1c3QgdGhlIFVSTCBwYXJ0KSBhbmQgcHV0IGl0IHdoZXJlIGl0IHNheXMgVVNFQVNUMSBiZWxvdy4gIFRoZW4gdGFrZSB0aGUgImFsdGVybmF0aXZlIiBvdXRwdXQgZnJvbSBhYm92ZSBhbmQgcmVwbGFjZSB0aGUgVVNXRVNUMSBsb2NhdGlvbiBhcyBzaG93biBiZWxvdy4KICBgYGBzY2FsYQogIGJkZGNvcmUgewogIAogICAgcmVxdWVzdCB7CiAgCiAgICAgIHNlcnZlciB7CiAgICAgICAgaG9zdCA9ICJVU0VBU1QxIgogICAgICB9CiAgCiAgICAgIHVzZXJBZ2VudCA9ICJBV1MtT1BFTkFQSS1TSE9XQ0FTRSIKICAKICAgIH0KICAKICAgIHZhcnMgewogIAogICAgICBBbHRlcm5hdGl2ZSB7CiAgCiAgICAgICAgUmVnaW9uID0gIlVTV0VTVDEiCiAgCiAgICAgIH0KICAKICAgIH0KICAKICB9CiAgYGBgCiogTm93IGZvciB0aGUgU01TIG5vdGlmaWNhdGlvbnMsIHdlJ2xsIGFkZCBvdXIgcGhvbmUuICBGaXJzdCwgd2UgbmVlZCB0byBrbm93IHRoZSBBUk4uLi4KICBgYGBzYnRzaGVsbAogIGF3cyBjbG91ZGZvcm1hdGlvbiBkZXNjcmliZS1zdGFjay1yZXNvdXJjZXMgXAogICAgLS1zdGFjay1uYW1lIEl0ZW1zRXhhbXBsZSBcCiAgICAtLXJlZ2lvbiB1cy1lYXN0LTEgXAogICAgfCBncmVwIC1DIDUgIkFXUzo6U05TOjpUb3BpYyIgXAogICAgfCBncmVwIFBoeXNpY2FsUmVzb3VyY2VJZCAgXAogICAgfCBzZWQgJ3MvXi4qOiAvLzsgcy9cIi8vZzsgcy8sLy9nOycgIAogIGBgYAogID4gWW91ciBvdXRwdXQgc2hvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2UuLi4KICBgYGBzYnRzaGVsbAogIGFybjphd3M6c25zOnVzLWVhc3QtMTpYWFhYWFhYWFhYWFg6SXRlbXNFeGFtcGxlLUNoYW5nZUV2ZW50VG9waWMtUTFXN0VEMUFFSFFLCiAgYGBgCiogTm93IHdlJ2xsIHJlZ2lzdGVyIHVzaW5nIHRoZSBhcm4gKHRoZSBvdXRwdXQgYWJvdmUpIGFuZCB5b3VyIGNlbGwgbnVtYmVyCiAgYGBgc2J0c2hlbGwKICBhd3Mgc25zIHN1YnNjcmliZSBcCiAgLS10b3BpYy1hcm4gPEFSTl9GUk9NX0FCT1ZFPiBcCiAgLS1yZWdpb24gdXMtZWFzdC0xIFwKICAtLXByb3RvY29sIHNtcyBcCiAgLS1ub3RpZmljYXRpb24tZW5kcG9pbnQgPFlPVVJfUEhPTkU+CiAgYGBgCiAgTk9URTogUGhvbmUgbmVlZHMgdG8gaW5jbHVkZSBhcmVhIGNvZGUgYW5kIHVzIGNvZGUgKGUuZy4gMTU1NTQ0NDQpCiogRmluYWxseSwgbGV0J3MgZXhlY3V0ZSB0aGUgdGVzdHMKICBgYGBzYnRzaGVsbAogIG12biB0ZXN0CiAgYGBgCiAgCklmIGV2ZXJ5dGhpbmcgbG9va3MgZ29vZCwgYWxsIHRoZSB0ZXN0cyB3aWxsIHBhc3QgYW5kIHlvdSBzaG91bGQgb2YgZ290IGEgYnVuY2ggb2YgdGV4dCBtZXNzYWdlcy4gIE5vdyB5b3UgY2FuIHNwaW4gdXAgcG9zdG1hbiBvciB5b3VyIGZhdm9yaXRlIHRvb2wgYW5kIHN0YXJ0IHBsYXlpbmcgd2l0aCB0aGUgYXZhaWxhYmxlIGVuZHBvaW50cy4KCj4gU2VlIFtUaGUgVGVzdCBIYXJuZXNzXSgjdGhlLXRlc3QtaGFybmVzcykgc2VjdGlvbiBmb3IgbW9yZSBvbiB3aGF0J3MgaGFwcGVuaW5nIGhlcmUgYW5kIGNoZWNrIG91dCB0aGUgY3VybC5sb2cgaW4gdGhlIGxvZ3MvIGRpcmVjdG9yeSB0byBncmFiIHNvbWUgdGVzdCBjdXJscyB0byBwbGF5IHdpdGguCgpZb3UgY2FuIGdldCBhIGh1bWFuIHJlYWRhYmxlIHZlcnNpb24gb2YgdGhlIHNwZWMsIHRvIGJldHRlciB1bmRlcnN0YW5kIHdoYXQgeW91IGhhdmUgdG8gd29yayB3aXRoLCBieS4uLgoKKiBHb2luZyB0byBodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLwoqIENsaWNrIGZpbGUgLT4gIkltcG9ydCBGaWxlIgoqIFNlbGVjdCAiL3BhdGgvdG8vdGhpcy9zcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaS55YW1sIgoKVGhpcyB3aWxsIGdpdmUgeW91IGFuZCBpZGVhIG9mIHRoZSBtb2RlbCBhbmQgZW5kcG9pbnRzLiAgSW4gYWRkaXRpb24sIGNoZWNrb3V0IHRoZSBsb2dzLyBkaXJlY3RvcnkuICBJZiB5b3UgcmFuIHRoZSB0ZXN0cywgdGhlcmUgc2hvdWxkIGJlIGEgY3VybC5sb2cuICBZb3UgY2FuIGNvcHkgdGhvc2UgaW50byB5b3VyIGZhdm9yaXRlIHRvb2wgYXMgd2VsbCB0byBiZWdpbiBwbGF5aW5nLgoKPiBUbyByZW1vdmUgYWxsIHRoZSByZXNvdXJjZXMsIHNlZSBbQ2xlYW5pbmcgVXBdKCNjbGVhbmluZy11cCkuCgpNb3JlIGZ1biwgY2hlY2tvdXQgdGhlIHZhcmlvdXMgY29uc29sZXMgZm9yIGVhY2ggb2YgdGhlIHNlcnZpY2VzIHdlJ3ZlIGxhdW5jaGVkLi4uCgoqIGh0dHBzOi8vY29uc29sZS5hd3MuYW1hem9uLmNvbS9jbG91ZGZvcm1hdGlvbi9ob21lP3JlZ2lvbj11cy1lYXN0LTEjL3N0YWNrcyAoeW91IGNvdWxkIGRvIHVzLXdlc3QtMSB0b28pIC0gZ2l2ZXMgeW91IGEgdmlldyBvZiBhbGwgdGhlIHJlc291cmNlcyB3ZSBqdXN0IGNyZWF0ZWQgYW5kIHNvbWUgbWFuYWdlbWVudCBvdmVyIHRoZW0uCiogaHR0cHM6Ly9jb25zb2xlLmF3cy5hbWF6b24uY29tL2R5bmFtb2RiL2hvbWU/cmVnaW9uPXVzLWVhc3QtMSAtIGNoZWNrb3V0IHRoZSBnbG9iYWwgdGFibGUgeW91IGNyZWF0ZWQgYW5kIHlvdXIgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMKKiBodHRwczovL2NvbnNvbGUuYXdzLmFtYXpvbi5jb20vaWFtL2hvbWU/cmVnaW9uPXVzLWVhc3QtMSMvaG9tZSAtIHRoZSByb2xlcyBhbmQgcG9saWNpZXMgeW91J3ZlIGNyZWF0ZWQKKiBodHRwczovL2NvbnNvbGUuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2hvbWU/cmVnaW9uPXVzLWVhc3QtMSMvZnVuY3Rpb25zIC0gdGhlIG5vZGVqcyBlbmRwb2ludHMgeW91J3ZlIGxhdW5jaGVkCiogaHR0cHM6Ly9jb25zb2xlLmF3cy5hbWF6b24uY29tL3Nucy92Mi9ob21lP3JlZ2lvbj11cy1lYXN0LTEjL2hvbWUgLSB0aGUgU05TIHRvcGljIHlvdSBjcmVhdGVkCiogaHR0cHM6Ly9jb25zb2xlLmF3cy5hbWF6b24uY29tL2Nsb3Vkd2F0Y2gvaG9tZT9yZWdpb249dXMtZWFzdC0xIyAtIFRoZSBsb2dzIGFsbCB0aGVzZSBuZXcgc2VydmljZXMgYXJlIHByb2R1Y2luZy4KCiMjIyBIb3cgSXQgV29ya3MKClRoZSBtYWdpYyBzdGFydHMgd2l0aCB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBtZW50aW9uZWQgd2F5IGJhY2sgaW4gdGhlIGJlZ2lubmluZy4gIExldCdzIGJlZ2luIHdpdGggdGhlc2UuLi4KCiMjIyMgc3JjL21haW4vcmVzb3VyY2VzL2F3cy1yZXNvdXJjZXMueWFtbAoKVGhpcyBmaWxlIGRlc2NyaWJlcyBhbmQgY29uZmlndXJlcyB0aGUgcmVzb3VyY2VzIG5lZWRlZCB0byBydW4geW91ciBuZXcgc2VydmljZSBpbiBBV1MgYW5kIGluY2x1ZGVzLi4uCgpgYGB5YW1sCiAgIyMgdGhlIGFjdHVhbCB0YWJsZQogIEl0ZW1zVGFibGU6CiAgICBUeXBlOiBBV1M6OkR5bmFtb0RCOjpUYWJsZQpgYGAKClRoZSBhYm92ZSBzdGFydHMgb2ZmIHRoZSBzZWN0aW9uIGZvciB0aGUgYXBwbGljYXRpb25zIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24uICBJdC4uLgoKKiBDcmVhdGVzIGEgdGFibGUgLSBUaGlzIGlzIHRoZSAiSXRlbXNUYWJsZSIgc2VjdGlvbiBhbmQgdG8gbWFrZSBpdCBlYXNpZXIgZm9yIHVzIHRvIGNyZWF0ZSBhIGdsb2JhbCB0YWJsZSwgd2UgcHJvdmlkZSBhIG5hbWUgKGUuZy4gIkl0ZW1zRXhhbXBsZVRhYmxlIikuICBJZiB5b3Ugd2FudGVkIHRvIHJlcGVhdCB0aGlzIHNldHVwIGZvciBhbm90aGVyIGFwcGxpY2F0aW9uLCB0aGUgIlRhYmxlTmFtZSIgYXR0cmlidXRlIGlzIGFjdHVhbGx5IHRoZSBvbmx5IHRoaW5nIHlvdSB3b3VsZCBuZWVkIHRvIGNoYW5nZS4KKiBDcmVhdGVzIGEgc2NhbGluZyByb2xlIGFuZCBwb2xpY3kgLSBUaGUgIlNjYWxpbmdSb2xlIiBzZWN0aW9uIGFsbG93cyB0aGlzIHRhYmxlIHRvIGJlIG1hbmFnZWQgYnkgQVdTIEF1dG8tU2NhbGluZyBzZXJ2aWNlcyBmb3IgYm90aCB0aGUgREIgaXRzZWxmIGFuZCBpdCdzIGxvZ3MgLSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hdXRvc2NhbGVfSUFNX3JvbGUuaHRtbAoqIENyZWF0ZXMgcmVhZCBhbmQgd3JpdGUgc2NhbGFibGUgdGFyZ2V0cyAtIFRoZSAiV3JpdGVDYXBhY2l0eVNjYWxhYmxlVGFyZ2V0IiwgIldyaXRlU2NhbGluZ1BvbGljeSIsICJSZWFkU2NhbGluZ1RhcmdldCIsIGFuZCAiUmVhZFNjYWxpbmdQb2xpY3kiIHNlY3Rpb25zIGFsbCB0ZWxsIEFXUyB0aGUgc2NhbGluZyBydWxlcyAoZS5nLiBob3cgYW5kIHdoZW4gdG8gc2NhbGUpIC0gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9BdXRvU2NhbGluZy5odG1sCiogQ3JlYXRlcyBhbiBldmVudCBzdHJlYW0gLSAiRGF0YVRhYmxlU3RyZWFtIiBjcmVhdGVzIGEgc3RyZWFtIGZvciB0YWJsZSBjaGFuZ2UgZXZlbnRzIGFuZCByZWdpc3RlcnMgb3VyIExhbWJkYSAiIiBhcyB0aGUgcmVjZWl2ZXIKCmBgYHlhbWwKICBMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGU6CiAgICBUeXBlOiBBV1M6OklBTTo6Um9sZQpgYGAKClRoZSBhYm92ZSBzdGFydHMgb2ZmIHRoZSBMYW1iZGEgY29uZmlndXJhdGlvbi4gIEhlcmUgd2UgY29uZmlndXJlIGFuZCBkZXBsb3kgdHdvIGxhbWJkYXMgdXNpbmcgaW5saW5lIE5vZGVKUyBjb2RlLiAgVGhpcyBzZWN0aW9uIGJyZWFrcyBkb3duIHRvLi4uCgoqIFRoZSBleGVjdXRpb24gcm9sZSAtICJMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUiIGdpdmVzIER5bmFtb0RCIGFjY2VzcyB0byB0aGUgbGFtYmRhcywgeW91IGNhbiB1c2UgdGhpcyB0byBjb25maWd1cmUgYWNjZXNzIHRvIGFueSBBV1Mgc2VydmljZSAtIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2ludHJvLXBlcm1pc3Npb24tbW9kZWwuaHRtbCNsYW1iZGEtaW50cm8tZXhlY3V0aW9uLXJvbGUKKiBBYmlsaXR5IHRvIHNhdmUgSlNPTiBhcyBhIHN0cnVjdHVyZWQgRHluYW1vREIgZG9jdW1lbnQgLSAiU2F2ZVRvRHluYW1vIiBpcyBhIGdlbmVyaWMgbGFtYmRhIHRoYXQgdGFrZXMgYW55IEpTT04gY29udmVydHMgaXQgdG8gYSBEeW5hbW9EQiBmcmllbmRseSBmb3JtYXQsIGFkZHMgYW4gSUQsIGFuZCB0aGVuIHNhdmVzIG9mZiB0byB0aGUgdGFibGUgY29uZmlndXJlZCBpbiB0aGUgIkl0ZW1zVGFibGUiIHNlY3Rpb24uCiogQWJpbGl0eSB0byBjb252ZXJ0IER5bmFtb0RCIEpTT04gdG8gbm9ybWFsaXplZCBKU09OIC0gIkR5bmFtb1RvSlNPTiIgaXMgYW5vdGhlciBnZW5lcmljIGxhbWJkYSwgdGhhdCBzaW1wbHkgY29udmVydHMgdGhlIER5bmFtb0RCIGZvcm1hdCBiYWNrIHRvIGEgSlNPTiBmb3JtYXQgaW4ga2VlcGluZyB3aXRoIHRoZSBBUEkgZGF0YSBtb2RlbC4KKiBBYmlsaXR5IHRvIHVwZGF0ZSBEeW5hbW9EQiAtICJEeW5hbW9KU09OVXBkYXRlIiwgdGhlIGxhc3Qgb2YgdGhlIGdlbmVyaWMgbGFtYmRhcywgY29udmVydHMgYSBKU09OIHJlcXVlc3QgaW50byBhbiB1cGRhdGUgc3RhdGVtZW50LgoqIEFiaWxpdHkgdG8gcmVjZWl2ZSBjaGFuZ2UgZXZlbnRzIGZyb20gZHluYW1vIC0gIkhhbmRsZUR5bmFtb0V2ZW50IiB0YWtlcyBEeW5hbW9EQiBjaGFuZ2UgZXZlbnRzIGFuZCBwdWJsaXNoZXMgbWVzc2FnZXMgdG8gU05TIGFib3V0IHdoYXQncyBoYXBwZW5lZC4KKiBGaW5hbGx5LCB0aGUgIkNoYW5nZUV2ZW50VG9waWMiIGlzIHRoZSB0b3BpYyB0aGF0IHRoZSAiSGFuZGxlRHluYW1vRXZlbnQiIHdpbGwgdXNlIHRvIHB1Ymxpc2ggaXQncyBtZXNzYWdlcy4KCmBgYHlhbWwKICBBUElHYXRld2F5Um9sZToKICAgIFR5cGU6IEFXUzo6SUFNOjpSb2xlCmBgYAoKVGhpcyBzZWN0aW9uIHNpbXBseSBwcm92aWRlcyB0aGUgQVBJIEdhdGV3YXkgcmlnaHRzIHRvIHVzZSBib3RoIER5bmFtb0RCIGFuZCBsYW1iZGEgZnVuY3Rpb25zIHNvIGl0IGNhbiBoYW5kbGUgcmVzcG9uc2VzIHRvIEFQSSByZXF1ZXN0cy4KCmBgYHlhbWwKICBSZXN0QVBJdjI6CiAgICBUeXBlOiBBV1M6OkFwaUdhdGV3YXk6OlJlc3RBcGkKYGBgCgpGaW5hbGx5LCB0aGUgYWJvdmUsIGlzIHRoZSBjb250YWluZXIgZm9yIHdoYXQgd2lsbCBiZSB0aGUgQVdTIEdhdGV3YXkgZGVwbG95bWVudC4gT3VyIE9wZW5BUEkgZG9jdW1lbnQgaXMgYXBwZW5kZWQgaGVyZSBhcyBwYXJ0IG9mIHRoZSBgbXZuIGNsZWFuIGNvbXBpbGUgZ2VuZXJhdGUtcmVzb3VyY2VzYCBjb21tYW5kLgoKIyMjIyBzcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaS55YW1sCgpOb3RoaW5nIHNwZWNpYWwgaGVyZS4gIElmIHlvdSBkb24ndCBrbm93IGFib3V0IE9wZW5BUEksIHdlIHJlY29tbWVuZCB5b3UgbGVhcm4gbW9yZSAtIGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8gLSBhbmQgY29tZSBiYWNrLgoKWW91IGNvdWxkIHJlcGxhY2UgdGhpcyBzcGVjaWZpY2F0aW9uIHdpdGggYW55LCBhcyBsb25nIGFzIGl0J3MgT3BlbkFQSSAzLnggYW5kIHlvdSBjb3VsZCBnZW5lcmF0ZSBhIENSVUQganVzdCBmb3IgaXQuIEJ5IGRlZmF1bHQsIHRoaXMgd2lsbCBoYW5kbGUgYW55IHZhbGlkYXRpb25zIHlvdSBkZXNjcmliZSB3aXRoIHRoZSBzcGVjLiAgSXQncyBwcmV0dHkgcG93ZXJmdWwgZm9yIG5vdCB3cml0aW5nIGFueSBjb2RlIQoKWW91IGNhbiBldmVuIHRha2UgdGhpcyBmdXJ0aGVyIGJ5IGVuYWJsaW5nIHRyYW5zYWN0aW9ucyBvbiBEeW5hbW9EQiAtIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vYmxvZ3MvYXdzL25ldy1hbWF6b24tZHluYW1vZGItdHJhbnNhY3Rpb25zLyAtIHdoZXJlIHlvdSBjYW4gY29uZmlndXJlIHRyYW5zYWN0aW9uYWwgdmFsaWRhdGlvbnMgbWFraW5nIGl0IGV2ZW4gbW9yZSBwb3dlcmZ1bCB3aXRob3V0IGEgbGluZSBvZiBjb2RlLgoKPiBOZWVkIHRvIGNhbGwgQVdTIHRvIGVuYWJsZSBmb3IgZ2xvYmFsIHRhYmxlcywgaWYgeW91IGRvbid0IGl0IHdvbid0IHdvcmsgOikKCiMjIyMgc3JjL21haW4vcmVzb3VyY2VzL2F3cy1leHRlbnNpb25zLnlhbWwKCk1vcmUgb2YgQVdTJyBzZWNyZXQgc2F1Y2UsIHRoaXMgbGV0J3MgdXMgZGVzY3JpYmUgaG93IHRoZSBlbmRwb2ludHMgaW50ZXJhY3Qgd2l0aCBBV1Mgb3Igb3RoZXIgc2VydmljZXMuICBUeXBpY2FsbHkgdGhpcyB3b3VsZCBiZSBpbiB0aGUgT3BlbkFQSSBzcGVjIGl0c2VsZiwgYnV0IGZvciByZWFkYWJpbGl0eSB3ZSBicm9rZSBpdCBvdXQgdG8gYSBzZXBhcmF0ZSBkb2N1bWVudCBhbmQgbWVyZ2UgaXQgd2l0aCB0aGUgc2FtZSBgbXZuIGNsZWFuIGNvbXBpbGUgZ2VuZXJhdGUtcmVzb3VyY2VzYCBjb21tYW5kIHRoYXQgbWVyZ2VzIHRoZSBPcGVuQVBJIHNwZWMgaW50byB0aGUgQVdTIFJlc291cmNlcyBkb2N1bWVudC4KCkluIHRoaXMgZG9jdW1lbnQgdGhlcmUgaXMgYSBtYXRjaGluZyBzZWN0aW9uIGZvciBlYWNoIGVuZHBvaW50LCB1c2luZyBzYW1lIGNhbm9uaWNhbCBzdHJ1Y3R1cmUsIGp1c3Qgd2l0aCBBV1Mgc3BlY2lmaWMgZXh0ZW5zaW9ucy4gIEZvciBlYWNoIG9wZXJhdGlvbiwgd2UgaGF2ZSBzb21lIGNvbmZpZ3VyYXRpb24uLi4KCioqR0VUIC9pdGVtL3tpZH0qKgoKYGBgeWFtbAogICAgICB4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uOgogICAgICAgIGNyZWRlbnRpYWxzOiAhR2V0QXR0IEFQSUdhdGV3YXlSb2xlLkFybgogICAgICAgIHVyaTogIVN1YiBhcm46YXdzOmFwaWdhdGV3YXk6JHtBV1M6OlJlZ2lvbn06bGFtYmRhOnBhdGgvMjAxNS0wMy0zMS9mdW5jdGlvbnMvJHtEeW5hbW9Ub0pTT04uQXJufS9pbnZvY2F0aW9ucwogICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHN0YXR1c0NvZGU6ICIyMDAiCiAgICAgICAgcGFzc3Rocm91Z2hCZWhhdmlvcjogIndoZW5fbm9fdGVtcGxhdGVzIgogICAgICAgIGh0dHBNZXRob2Q6ICJQT1NUIgogICAgICAgIHR5cGU6ICJhd3NfcHJveHkiCmBgYAoKVGhpcyBzZWN0aW9uIHRlbGxzIHRoYXQgYW55IGdldCByZXF1ZXN0IHNob3VsZCBiZSByb3V0ZWQgb3VyICJEeW5hbW9Ub0pTT04iIGRlc2NyaWJlZCBlYXJsaWVyLiAgQVBJIEdhdGV3YXkganVzdCBhY3RzIGFzIGEgcHJveHkgaGVyZSwgcGFzc2luZyB0aGUgcmVxdWVzdCB0byB0aGUgZnVuY3Rpb24gYW5kIHRoZSByZXNwb25zZSBiYWNrIHRvIHRoZSBjb25zdW1lci4KCioqREVMRVRFIC9pdGVtL3tpZH0qKgoKYGBgeWFtbAogICAgICB4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uOgogICAgICAgIGNyZWRlbnRpYWxzOiAhR2V0QXR0IEFQSUdhdGV3YXlSb2xlLkFybgogICAgICAgIHVyaTogIVN1YiAiYXJuOmF3czphcGlnYXRld2F5OiR7QVdTOjpSZWdpb259OmR5bmFtb2RiOmFjdGlvbi9EZWxldGVJdGVtIgogICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHN0YXR1c0NvZGU6ICIyMDAiCiAgICAgICAgICAgIHJlc3BvbnNlVGVtcGxhdGVzOgogICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246IHwtCiAgICAgICAgICAgICAgICB7ICJpZCI6ICIkbWV0aG9kLnJlcXVlc3QucGF0aC5pZCIgfQogICAgICAgIHJlcXVlc3RUZW1wbGF0ZXM6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOiAhU3ViIHwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJUYWJsZU5hbWUiOiAiJHtJdGVtc1RhYmxlfSIsCiAgICAgICAgICAgICAgIktleSI6IHsKICAgICAgICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgICAgICAgIlMiOiAiJGlucHV0LnBhcmFtcygnaWQnKSIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBwYXNzdGhyb3VnaEJlaGF2aW9yOiB3aGVuX25vX3RlbXBsYXRlcwogICAgICAgIGh0dHBNZXRob2Q6ICJQT1NUIgogICAgICAgIHR5cGU6IGF3cwpgYGAKClRoaXMgZW5kcG9pbnQgcHV0cyBhIGxpdHRsZSBtb3JlIG9udXMgb24gdGhlIEFQSSBHYXRld2F5LiAgSXQgdXNlcyBpdCdzIER5bmFtb0JEIHNlcnZpY2UgaW50ZWdyYXRpb24gdG8gc2VuZCBhIERFTEVURSByZXF1ZXN0IGRpcmVjdGx5IHRvIER5bmFtb0RCIHRoZW4gcmVzcG9uZCB3aXRoIElEIG9mIHRoZSBkZWxldGVkIGl0ZW0gYXMgY29uZmlybWF0aW9uLgoKKipQVVQgL2l0ZW0ve2lkfSoqCgpgYGB5YW1sCiAgICAgIHgtYW1hem9uLWFwaWdhdGV3YXktaW50ZWdyYXRpb246CiAgICAgICAgY3JlZGVudGlhbHM6ICFHZXRBdHQgQVBJR2F0ZXdheVJvbGUuQXJuCiAgICAgICAgdXJpOiAhU3ViIGFybjphd3M6YXBpZ2F0ZXdheToke0FXUzo6UmVnaW9ufTpsYW1iZGE6cGF0aC8yMDE1LTAzLTMxL2Z1bmN0aW9ucy8ke0R5bmFtb0pTT05VcGRhdGUuQXJufS9pbnZvY2F0aW9ucwogICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHN0YXR1c0NvZGU6ICIyMDAiCiAgICAgICAgcGFzc3Rocm91Z2hCZWhhdmlvcjogIndoZW5fbm9fdGVtcGxhdGVzIgogICAgICAgIGh0dHBNZXRob2Q6ICJQT1NUIgogICAgICAgIHR5cGU6ICJhd3NfcHJveHkiCmBgYAoKVGhlIGFib3ZlIHdvcmtzIGxpa2UgdGhlIEdFVCwgYnkgcHJveHlpbmcgdG8gIkR5bmFtb0pTT05VcGRhdGUiIGxhbWJkYSBhbmQgdGFraW5nIHRoZSBwYXRoIGFuZCB0aGUgYm9keSB0byBwZXJmb3JtIHRoZSB1cGRhdGUuCgoqKkdFVCAvaXRlbXMvKioKCmBgYHlhbWwKICAgICAgeC1hbWF6b24tYXBpZ2F0ZXdheS1pbnRlZ3JhdGlvbjoKICAgICAgICBjcmVkZW50aWFsczogIUdldEF0dCBBUElHYXRld2F5Um9sZS5Bcm4KICAgICAgICB1cmk6ICFTdWIgYXJuOmF3czphcGlnYXRld2F5OiR7QVdTOjpSZWdpb259OmxhbWJkYTpwYXRoLzIwMTUtMDMtMzEvZnVuY3Rpb25zLyR7RHluYW1vVG9KU09OLkFybn0vaW52b2NhdGlvbnMKICAgICAgICByZXNwb25zZXM6CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBzdGF0dXNDb2RlOiAiMjAwIgogICAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6ICJ3aGVuX25vX3RlbXBsYXRlcyIKICAgICAgICBodHRwTWV0aG9kOiAiUE9TVCIKICAgICAgICB0eXBlOiAiYXdzX3Byb3h5IgpgYGAKCkxpa2UgR0VUIC9pdGVtcy97aWR9LCB0aGlzIG1ldGhvZCB3b3JrcyBhcyBhIHByb3h5IHRvIHRoZSAiRHluYW1vVG9KU09OIiBsYW1iZGEgc28gaXQgY2FuIHJldHVybiBhIGxpc3Qgb2YgcmVxdWVzdHMuCgoqKlBPU1QgL2l0ZW1zLyoqCgpgYGB5YW1sCiAgICAgIHgtYW1hem9uLWFwaWdhdGV3YXktcmVxdWVzdC12YWxpZGF0b3I6ICJWYWxpZGF0ZSBib2R5IgogICAgICB4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uOgogICAgICAgIGNyZWRlbnRpYWxzOiAhR2V0QXR0IEFQSUdhdGV3YXlSb2xlLkFybgogICAgICAgIHVyaTogIVN1YiBhcm46YXdzOmFwaWdhdGV3YXk6JHtBV1M6OlJlZ2lvbn06bGFtYmRhOnBhdGgvMjAxNS0wMy0zMS9mdW5jdGlvbnMvJHtTYXZlVG9EeW5hbW8uQXJufS9pbnZvY2F0aW9ucwogICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHN0YXR1c0NvZGU6ICIyMDAiCiAgICAgICAgcGFzc3Rocm91Z2hCZWhhdmlvcjogIndoZW5fbm9fdGVtcGxhdGVzIgogICAgICAgIGh0dHBNZXRob2Q6ICJQT1NUIgogICAgICAgIHR5cGU6ICJhd3NfcHJveHkiCmBgYAoKTGlrZSB0aGUgb3RoZXIgZW5kcG9pbnRzIHRoYXQgd29yayBhcyBwcm94aWVzLCB0aGUgUE9TVCBlbmRwb2ludCBkb2VzIGFzIHdlbGwuIFlvdSB3aWxsIG5vdGljZSBvbmUgZGlmZmVyZW5jZSBoZXJlLi4uCgpgYGB5YW1sCiAgICAgIHgtYW1hem9uLWFwaWdhdGV3YXktcmVxdWVzdC12YWxpZGF0b3I6ICJWYWxpZGF0ZSBib2R5IgpgYGAKClRoZSBhYm92ZSBhY3R1YWxseSB0ZWxscyB0aGUgQVBJIEdhdGV3YXkgdG8gdmFsaWRhdGUgdGhlIHJlcXVlc3QgcGF5bG9hZCBiZWZvcmUgcHJveHlpbmcgaXQuICBBUEkgR2F0ZXdheSB1c2VzIHRoZSBPcGVuQVBJIHNwZWMgZGVzY3JpcHRvcnMgKHJlcXVpcmVkLG1pbi9tYXgsYWxsb3dlZCxldGMuLi4pIHRvIHZhbGlkYXRlIHRoZSBwYXlsb2FkIGF1dG9tYXRpY2FsbHkuICBUaGlzIGlzIGdyZWF0IGlmIHlvdSdyZSBhY3R1YWxseSBkZWZpbmluZyB5b3VyIGZpZWxkIGxldmVsIHJlcXVpcmVtZW50cyBpbiB0aGUgc3BlYyBhbmQgaXMgc3RhbmRhcmQgKGUuZy4gTk9UIEFXUyBzcGVjaWZpYykgc28gdGhlIGRvY3VtZW50YXRpb24sIGNsaWVudCBsaWJyYXJpZXMgYW5kIG90aGVyIGFydGlmYWN0cyBnZW5lcmF0ZWQgd2lsbCBhbHNvIGluY2x1ZGUgdGhpcyBpbmZvcm1hdGlvbi4KCj4gQW1hem9uIEFQSSBHYXRld2F5IFNwZWNzIHNheSB0aGluZ3MgbGlrZSBwYXR0ZXJucywgZXhjbHVzaXZlTWluaW11bSBhbmQgb3RoZXIgT0FTIHByb3BlcnRpZXMgZG9uJ3Qgd29yaywgYnV0IGlmIHlvdSBsb29rIGF0IHRoZSB0ZXN0cywgeW91J2xsIHNlZSB0aGV5IGFjdHVhbGx5IGRvIQoKKipCcmluZ2luZyBJdCBUb2dldGhlcioqCgpXZSB1c2UgWUFNTCBiZWNhdXNlIGl0J3MgZWFzaWVyIHRvIHJlYWQgYW5kIGhhcyBsZXNzIG1hcmt1cCB0aGVuIHRoZSBKU09OIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50cy4gIFRvIG1ha2UgbWVyZ2luZyBlYXNpZXIsIGhvd2V2ZXIsIHdlIGNvbnZlcnQgdG8gSlNPTi4gIFRoaXMgaXMgd2h5IHdlIGhhdmUgdGhvc2UgYGNmbi1mbGlwYCBzdGF0ZW1lbnRzLiAgVGhlcmUgaXMgc29tZSBzZWNyZXQgc2F1Y2UgdGhlcmUgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHRyeSB0byByZXBsaWNhdGUgb3Vyc2VsdmVzIHdoZW4gaXQgY29tZXMgdG8gSlNPTiA8LS0+IFlBTUwgY29udmVyc2lvbiBmb3IgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVzLgoKV2hlbiB3ZSBjb21iaW5lIHRoaXMsIHdpdGggb3VyIHNpbXBsZSBKQVZBIHByb2dyYW0gdGhhdCBtZXJnZXMgYWxsIHRoZSBkb2NzIGFzIG9uZSB3ZSBoYXZlIG91ciBmaW5hbCBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSB3aGljaCBkZXNjcmliZXMgYWxsIHJlc291cmNlcy4gIEFsbCB0aG9zZSBgYXdzIGNsb3VkZm9ybWF0aW9uIGNyZWF0ZS1zdGFja2AgY29tbWFuZHMgcmVhbGx5IGRvIGlzIHNlbmQgdGhhdCB0ZW1wbGF0ZSBvZmYgdG8gQVdTIGFuZCB0ZWxsbCBpdCB3aGF0IHJlZ2lvbiB0byBwdXNoIGl0IHRvby4KCiMjIyMgVGhlIFRlc3QgSGFybmVzcwoKVXNpbmcgdGhlIFtCREQgRm9yIEFsbF0oaHR0cHM6Ly9naXRodWIuY29tL0FjY2VudHVyZS9iZGQtZm9yLWFsbCkgdGVzdCBoYXJuZXNzIGZyb20gQWNjZW50dXJlLCAgd2UgY3JlYXRlZCBhIGZldyB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB3ZSB3ZXJlIHRydWx5IGNyb3NzLXJlZ2lvbiBhbmQgdGhhdCBzb21lIG9mIHRoZSBydWxlcyBhbmQgdmFsaWRhdGlvbnMgd2Ugc2V0IHVwIHRocm91Z2ggdGhlIE9BUyBTcGVjIHdlcmUgYWN0dWFsbHkgd29ya2luZy4gIAoKRm91bmQgaW4gW3NyYy90ZXN0L3Jlc291cmNlcy9mZWF0dXJlcy9dKHNyYy90ZXN0L3Jlc291cmNlcy9mZWF0dXJlcy8pLCB3ZSBoYXZlIHRlc3QgY2FzZXMgdGhhdCBjb3ZlciBpbnZhbGlkIHJlcXVlc3RzLCBjaGVja2luZyBmb3IgY3JlYXRlL3VwZGF0ZXMvZGVsZXRlcyBhdmFpbGFibGl0eSBjcm9zcyByZWdpb24gYW5kIG1vcmUuCgo+IFRyeSB3cml0aW5nIHlvdXIgb3duIHRlc3RzLCBsZWFybiB0aGUgZ3JhbW1hciBhbmQgb3RoZXIgZnVuY3Rpb25hbGl0eSBhdmFpbGFibGUgd2l0aCB0aGUgQkREIEZvciBBbGwgbGlicmFyeSBhdCAtIAoKSWYgeW91IGxvb2sgaW4gdGhlIGxvZ3MgZGlyZWN0b3J5IGFmdGVyIHRoZSB0ZXN0cyBhcmUgZXhlY3V0ZWQsIHlvdSdsbCBmaW5kIGEgImN1cmwubG9nIiwgd2hpY2ggaGFzIGFsbCB0aGUgdGVzdHMgbG9nZ2VkIGFzIGNVUkxzIHRoYXQgeW91IGNhbiBpbXBvcnQgaW50byB5b3VyIGZhdm9yaXRlIGFwcGxpY2F0aW9uIHRvIGRvIHNvbWUgZnVydGhlciB0ZXN0aW5nLgoKIyMjIFRha2luZyBpdCBGdXJ0aGVyCgpXaGF0IGlmIHdlIGRpZG4ndCB3YW50IGEgc2ltcGxlIE5vZGVKUyBsYW1iZGEgYmFja2luZyBvdXIgQVBJLCBidXQgaW5zdGVhZCB3YW50ZWQgYSBSZWFjdGl2ZSBKQVZBIGFwcGxpY2F0aW9uLiAgCgpUaGF0J3MgZWFzeSEgIEp1c3QgdHlwZS4uLgoKYGBgCm12biBjbGVhbiBzcHJpbmctYm9vdDpydW4gLVBvYXMKYGBgCgphbmQgd2hlbiB5b3Ugc2VlLi4uCgpgYGBzYnRzaGVsbAogIC4gICBfX19fICAgICAgICAgIF8gICAgICAgICAgICBfXyBfIF8KIC9cXCAvIF9fXydfIF9fIF8gXyhfKV8gX18gIF9fIF8gXCBcIFwgXAooICggKVxfX18gfCAnXyB8ICdffCB8ICdfIFwvIF9gIHwgXCBcIFwgXAogXFwvICBfX18pfCB8Xyl8IHwgfCB8IHwgfHwgKF98IHwgICkgKSApICkKICAnICB8X19fX3wgLl9ffF98IHxffF98IHxfXF9fLCB8IC8gLyAvIC8KID09PT09PT09PXxffD09PT09PT09PT09PT09fF9fXy89L18vXy9fLwogOjogU3ByaW5nIEJvb3QgOjogICAgICAgICh2Mi4xLjAuUkVMRUFTRSkKYGBgCgpHbyB0byBodHRwOi8vbG9jYWxob3N0OjgwODAgYW5kIGNoZWNrb3V0IHlvdXIgZG9jcyBhbmQgc29tZXdoYXQgZnVuY3Rpb25pbmcgbW9ja3MuCgojIyMjIFdoYXQgRGlkIFdlIEp1c3QgRG8/CgpUaGUgT3BlbkFQSVRvb2xzIHByb2plY3QgLSBodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzIC0gaGFzIGJ1aWx0IG9uIHdoYXQgdGhlIFNtYXJ0QmVhciAtIGh0dHBzOi8vc3dhZ2dlci5pby8gLSBkb25lIHRvIG1ha2Ugc29tZSBjb29sIHRvb2xzLiAgCgpUaGUgYC1Qb2FzYCBhdCB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBtdm4gY29tbWFuZCwgZXhlY3V0ZXMgYSBtYXZlbiBwbHVnaW4gdGhhdCBleHBvc2VzIHRoZSBPcGVuQVBJIEdlbmVyYXRvciBwcm9qZWN0IC0gaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvciAtIHdoaWNoIGFsbG93cyB5b3UgdG8gZ2VuZXJhdGUgY2xpZW50IGxpYnJhcmllcywgc2VydmVyIHN0dWJzLCBkb2N1bWVudGF0aW9uIGFuZCBtb3JlIGZvciBhIHZhcmlldHkgb2YgbGFuZ3VhZ2VzIGFuZCBwbGF0Zm9ybXMuCgpXZSBnZW5lcmF0ZWQgYSBTcHJpbmcgUmVhY3RvciBzaGVsbCwgdGhlIGNvZGUgZm9yIHdoaWNoIHlvdSBjYW4gZmluZCBhdCBbc3JjL21haW4vamF2YS9pby9naXRodWIvbWlrZXBhcmNld3NraS9kZW1vcy9hd3NvYXMvZ2VuZXJhdGVkXShzcmMvbWFpbi9qYXZhL2lvL2dpdGh1Yi9taWtlcGFyY2V3c2tpL2RlbW9zL2F3c29hcy9nZW5lcmF0ZWQpLiAgVGhlIHNoZWxsIHByZXR0eSBtdWNoIGNvbnRhaW5zIGFsbCB0aGUgcGx1bWJpbmcuICBBbGwgeW91IHJlYWxseSBuZWVkIHRvIGRvIGltcGxlbWVudCwgaXMuLi4KCiogQWRkIHNyYy9tYWluL2phdmEvaW8vZ2l0aHViL21pa2VwYXJjZXdza2kvZGVtb3MvYXdzb2FzL2dlbmVyYXRlZC9hcGkvSXRlbXNBcGlEZWxlZ2F0ZS5qYXZhIHRvIHRoZSAub3BlbmFwaS1nZW5lcmF0b3ItaWdub3JlIGZpbGUgKHRoaXMga2VlcHMgaXQgZnJvbSBnZXR0aW5nIG92ZXJ3cml0dGVuKQoqIFRoZW4gZWRpdCBJdGVtc0FwaURlbGVnYXRlIHRvIGltcGxlbWVudCB5b3VyIGJ1c2luZXNzIGxvZ2ljLgoKKipBc2lkZSoqCgpUaGVyZSBhcmUgYSBsb3Qgb2YgbGFuZ3VhZ2VzIHRvIGNob29zZSBmcm9tIC0gaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvciNPdmVydmlldyAtIGFuZCBieSBjaGFuZ2luZyB0aGUgZm9sbG93aW5nIGxpbmUgdG8gYmUgdGhlIGxhbmd1YWdlL2ZyYW1ld29yayBvZiB5b3VyIGNob2ljZS4uLgoKYGBgeG1sCjxnZW5lcmF0b3JOYW1lPnNwcmluZzwvZ2VuZXJhdG9yTmFtZT4KYGBgCgphbmQgdGhpcy4uLgoKYGBgeG1sCjxjb25maWdPcHRpb25zPgouLi4KPC9jb25maWdPcHRpb25zPgpgYGAKClRvIG1hdGNoIHRoZSBjb25maWcgZm9yIHlvdXIgbGFuZ3VhZ2UvZnJhbWV3b3JrIG9wdGlvbiwgeW91IGNvdWxkIGJ1aWxkIHRoZSBhcHAgaW4gYWxtb3N0IGFueSBsYW5ndWFnZSB5b3VyIHdhbnQuCiAgCiMjIENsZWFuaW5nIFVwCgpSZW1vdmUgdGhlIGdsb2JhbCB0YWJsZSBtYXBwaW5nLi4uCgpgYGBzYnRzaGVsbAphd3MgZHluYW1vZGIgdXBkYXRlLWdsb2JhbC10YWJsZSBcCiAgICAtLWdsb2JhbC10YWJsZS1uYW1lIEl0ZW1zRXhhbXBsZVRhYmxlIFwKICAgIC0tcmVwbGljYS11cGRhdGVzICdEZWxldGU9e1JlZ2lvbk5hbWU9dXMtZWFzdC0xLFJlZ2lvbk5hbWU9dXMtd2VzdC0xfScgXAogICAgLS1yZWdpb24gdXMtZWFzdC0xCmBgYAoKUmVtb3ZlIHRoZSBVUyBFYXN0IHN0YWNrLi4uCgpgYGBzYnRzaGVsbAphd3MgY2xvdWRmb3JtYXRpb24gZGVsZXRlLXN0YWNrIFwKICAtLXN0YWNrLW5hbWUgSXRlbXNFeGFtcGxlIFwKICAtLXJlZ2lvbiB1cy1lYXN0LTEKYGBgCgpSZW1vdmUgdGhlIFVTIFdlc3Qgc3RhY2suLi4KCmBgYHNidHNoZWxsCmF3cyBjbG91ZGZvcm1hdGlvbiBkZWxldGUtc3RhY2sgXAogIC0tc3RhY2stbmFtZSBJdGVtc0V4YW1wbGUgXAogIC0tcmVnaW9uIHVzLXdlc3QtMQpgYGA= readmeEtag: '"58f8c1b90f116c75f301810f526d21f0ce1dd0f1"' readmeLastModified: Tue, 24 Mar 2020 15:49:49 GMT repositoryId: 173618965 description: >- A massively scalable CRUD application built using AWS (CloudFormation) & OpenAPI 3.0 that focuses on configuration over code. created: '2019-03-03T19:17:31Z' updated: '2023-09-08T17:51:05Z' language: Gherkin archived: false stars: 5 watchers: 2 forks: 1 owner: mikeparcewski logo: https://avatars.githubusercontent.com/u/36518222?v=4 repoEtag: '"bb707e972df033a064b2b26c2440359d29e8f2604a7ecc8d031e1c0bcaf58d45"' repoLastModified: Fri, 08 Sep 2023 17:51:05 GMT foundInMaster: true category: Parsers id: e06d3b27ba90f952436feebcf0da6b60 - source: openapi3 tags repository: https://github.com/webpro/parse-openapi v3: true repositoryMetadata: base64Readme: >- IyBwYXJzZS1vcGVuYXBpCgpUaGUgT3BlbkFQaSB2MyBwYXJzZXIgZXh0cmFjdGVkIGZyb20KW29wZW5hcGktdHlwZXNjcmlwdC1jb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vZmVyZGlrb29tZW4vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGVnZW4pLgpTbyBmaXJzdCBvZiBhbGwsIGFsbCBjcmVkaXRzIGdvIHRvCltGZXJkaSBLb29tZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJkaWtvb21lbikgZm9yIGhpcyB3b3JrIG9uIHRoaXMgZ3JlYXQKbGlicmFyeS4gT25seSB0aGUgcGFyc2VyIGlzIG5lZWRlZCB0byByZW5kZXIgdGhlIG1vZGVscywgc2VydmljZXMgYW5kIGhvb2tzIHdpdGgKY3VzdG9tIHRlbXBsYXRlcywgaGVuY2UgdGhpcyBzdHJpcHBlZCBkb3duIHZlcnNpb24uCgojIyBJbnN0YWxsYXRpb24KCiAgICBucG0gaW5zdGFsbCAtRCBwYXJzZS1vcGVuYXBpIG9wZW5hcGktdHlwZXMKCiMjIEFQSQoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyByZWFkRmlsZSwgd3JpdGVGaWxlIH0gZnJvbSAnZnMvcHJvbWlzZXMnOwppbXBvcnQgeyBwYXJzZSB9IGZyb20gJ3BhcnNlLW9wZW5hcGknOwppbXBvcnQgeyByZW5kZXJNb2RlbCwgcmVuZGVyU2VydmljZSB9IGZyb20gJy4vdGVtcGxhdGVzJzsKaW1wb3J0IHR5cGUgeyBPcGVuQVBJVjMgfSBmcm9tICdvcGVuYXBpLXR5cGVzJzsKCmNvbnN0IHNwZWNzOiBPcGVuQVBJVjMgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKCdzd2FnZ2VyLmpzb24nLCAndXRmOCcpKTsKCmNvbnN0IHsgdmVyc2lvbiwgc2VydmVyLCBtb2RlbHMsIHNlcnZpY2VzIH0gPSBwYXJzZShzcGVjcyk7Cgptb2RlbHMuZm9yRWFjaChtb2RlbCA9PiB3cml0ZUZpbGUoYCR7bW9kZWwubmFtZX0udHNgLCByZW5kZXJNb2RlbChtb2RlbCkpKTsKc2VydmljZXMuZm9yRWFjaChzZXJ2aWNlID0+CiAgd3JpdGVGaWxlKGAke3NlcnZpY2UubmFtZX0udHNgLCByZW5kZXJTZXJ2aWNlKHNlcnZpY2UpKQopOwpgYGAKCiMjIEV4YW1wbGUgcmVuZGVyIGZ1bmN0aW9uCgpUaGlzIGNvdWxkIGJlIGFueXRoaW5nIGZyb20gSGFuZGxlYmFycyB0ZW1wbGF0ZXMgdG8gdGVtcGxhdGUgbGl0ZXJhbHMuIEhlcmUncyBhCm1pbmltYWwgZXhhbXBsZToKCmBgYHR5cGVzY3JpcHQKaW1wb3J0IHR5cGUgeyBPcGVyYXRpb24sIFNlcnZpY2UgfSBmcm9tICdwYXJzZS1vcGVuYXBpJzsKCmNvbnN0IHJlbmRlck9wZXJhdGlvbiA9IChvcGVyYXRpb246IE9wZXJhdGlvbik6IHN0cmluZyA9PiB7CiAgY29uc3QgW3Jlc3VsdF0gPSBvcGVyYXRpb24ucmVzdWx0czsKICByZXR1cm4gYAovKioKICogJHtvcGVyYXRpb24uc3VtbWFyeX0KICogJHtvcGVyYXRpb24uZGVzY3JpcHRpb259CiAqIEByZXR1cm5zICR7cmVzdWx0LnR5cGV9ICR7cmVzdWx0LmRlc2NyaXB0aW9ufQogJHtvcGVyYXRpb24uZGVwcmVjYXRlZCA/ICcqIEBkZXByZWNhdGVkJyA6ICcnfQogKi8KZXhwb3J0IGZ1bmN0aW9uICR7b3BlcmF0aW9uLm5hbWV9KFsuLi5dKTogUHJvbWlzZTwke3Jlc3VsdC50eXBlfT4gewogIHJldHVybiByZXF1ZXN0KHsKICAgIG1ldGhvZDogJyR7b3BlcmF0aW9uLm1ldGhvZH0nLAogICAgcGF0aDogXGAke29wZXJhdGlvbi5wYXRofVxgLAogICAgWy4uLl0KICB9KTsKfWA7Cn07CgpleHBvcnQgZGVmYXVsdCAoc2VydmljZTogU2VydmljZSkgPT4gewogIHJldHVybiBzZXJ2aWNlcy5vcGVyYXRpb25zLm1hcChyZW5kZXJPcGVyYXRpb24pLmpvaW4oJzsnKTsKfTsKYGBgCg== readmeEtag: '"02d1173e98535a6d16dc4936a6b82ded608a834e"' readmeLastModified: Thu, 31 Mar 2022 17:31:04 GMT repositoryId: 476396257 description: OpenAPI v3 parser created: '2022-03-31T16:48:53Z' updated: '2023-02-11T12:24:23Z' language: TypeScript archived: false stars: 5 watchers: 2 forks: 0 owner: webpro logo: https://avatars.githubusercontent.com/u/456426?v=4 license: MIT repoEtag: '"49854aa5c844c2119627e5eae0732d3d5bdf395941d6589b4342706dd57cc194"' repoLastModified: Sat, 11 Feb 2023 12:24:23 GMT foundInMaster: true category: Parsers id: d21709b143857d908bd5a8d8fb73c5be - source: - openapi3 tags - openapi31 tags repository: https://github.com/apiaddicts/sonar-openapi v3: true v3_1: true id: 514c0837da7b67edc46795a00a5e8da2 repositoryMetadata: base64Readme: >- CiMg8J+boO+4jyBTb25hciBPcGVuQXBpIChwbHVnaW4pICFbUmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9yZWxlYXNlLTEuMS4xLXB1cnBsZSkgIVtTd2FnZ2VyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLy1vcGVuYXBpLSUyM0Nsb2p1cmU/c3R5bGU9ZmxhdCZsb2dvPXN3YWdnZXImbG9nb0NvbG9yPXdoaXRlKSAhW0phdmFdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvamF2YS0lMjNFRDhCMDAuc3ZnP3N0eWxlPWZsYXQmbG9nbz1vcGVuamRrJmxvZ29Db2xvcj13aGl0ZSkgIFshW0xpY2Vuc2U6IExHUEwgdjNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1MR1BMX3YzLWJsdWUuc3ZnKV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLTMuMCkgCgpTb25hciBPcGVuQXBpIChwbHVnaW4pIGlzIGEgY29kZSBhbmFseXplciBmb3IgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucywgIGlzIHRoZSBzcGlyaXR1YWwgc3VjY2Vzc29yIG9mIFtTb25hck9wZW5BcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NpZXRlLWdlbmVyYWxlL3NvbmFyLW9wZW5hcGkpLCBjYXJyeWluZyBvbiBmcm9tIHRoZSBwb2ludCB3aGVyZSBpdCBsZWZ0IG9mZiB3aXRoIHN1cHBvcnQgb2YgQXBpYWRkaWN0cyBjb21tdW5pdHkuCgojIyMgVGhpcyByZXBvc2l0b3J5IGlzIGludGVuZGVkIGZvciA6b2N0b2NhdDogKipjb21tdW5pdHkqKiB1c2UsIGl0IGNhbiBiZSBtb2RpZmllZCBhbmQgYWRhcHRlZCB3aXRob3V0IGNvbW1lcmNpYWwgdXNlLiBJZiB5b3UgbmVlZCBhIHZlcnNpb24sIHN1cHBvcnQgb3IgaGVscCBmb3IgeW91ciAqKmVudGVycHJpc2UqKiBvciBwcm9qZWN0LCBwbGVhc2UgY29udGFjdCB1cyDwn5OnIGRldnJlbEBhcGlhZGRpY3RzLm9yZwojIyMg8J+SoSBJZiB5b3UgaGF2ZSBhbiBpZGVhIGZvciBhIHJ1bGUgYnV0IHlvdSBhcmUgbm90IHN1cmUgdGhhdCBldmVyeW9uZSBuZWVkcyBpdCB5b3UgY2FuIGltcGxlbWVudCBhIFtjdXN0b20gcnVsZV0oQ3VzdG9tUnVsZXMubWQpIGF2YWlsYWJsZSBvbmx5IGZvciB5b3UuCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqU29uYXIgT3BlbkFwaSAocGx1Z2luKSoqIEFkb3B0ZXJzIGxpc3QgCvCfk6IgSWYgU29uYXIgT3BlbkFwaSBpcyBwYXJ0IG9mIHlvdXIgb3JnYW5pemF0aW9uJ3MgdG9vbGtpdCwgd2Uga2luZGx5IGVuY291cmFnZSB5b3UgdG8gaW5jbHVkZSB5b3VyIGNvbXBhbnkncyBuYW1lIGluIG91ciBBZG9wdGVycyBsaXN0LiDwn5mPIFRoaXMgbm90IG9ubHkgc2lnbmlmaWNhbnRseSBib29zdHMgdGhlIHByb2plY3QncyB2aXNpYmlsaXR5IGFuZCByZXB1dGF0aW9uIGJ1dCBhbHNvIHJlcHJlc2VudHMgYSBzbWFsbCB5ZXQgaW1wYWN0ZnVsIHdheSB0byBnaXZlIGJhY2sgdG8gdGhlIHByb2plY3QuCgp8IE9yZ2FuaXphdGlvbiAgfCBEZXNjcmlwdGlvbiBvZiBVc2UgLyBSZWZlcmVuYyB8CnwtLS18LS0tfAp8ICBbQ2xvdWRBcHBpXShodHRwczovL2Nsb3VkYXBwaS5uZXQvKSAgfCBBcGlmaWNhdGlvbiBhbmQgZ2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzIHwKfCBbTWFkcmlkIERpZ2l0YWxdKGh0dHBzOi8vd3d3LmNvbXVuaWRhZC5tYWRyaWQvc2VydmljaW9zL3NlZGUtZWxlY3Ryb25pY2EvbWFkcmlkLWRpZ2l0YWwvKSAgfCBHZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgIHwKfCBbQXBpcXVhbGl0eV0oaHR0cHM6Ly9hcGlxdWFsaXR5LmlvLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzICB8CgojIPCfkanwn4+94oCN8J+SuyAgQ29udHJpYnV0ZSB0byBBcGlBZGRpY3RzIAoKV2UncmUgYW4gaW5jbHVzaXZlIGFuZCBvcGVuIGNvbW11bml0eSwgd2VsY29taW5nIHlvdSB0byBqb2luIG91ciBlZmZvcnQgdG8gZW5oYW5jZSBBcGlBZGRpY3RzLCBhbmQgd2UncmUgZXhjaXRlZCB0byBwcmlvcml0aXplIHRhc2tzIGJhc2VkIG9uIGNvbW11bml0eSBpbnB1dCwgaW52aXRpbmcgeW91IHRvIHJldmlldyBhbmQgY29sbGFib3JhdGUgdGhyb3VnaCBvdXIgR2l0SHViIGlzc3VlIHRyYWNrZXIuCgpGZWVsIGZyZWUgdG8gZHJvcCBieSBhbmQgZ3JlZXQgdXMgb24gb3VyIEdpdEh1YiBkaXNjdXNzaW9uIG9yIERpc2NvcmQgY2hhdC4gWW91IGNhbiBhbHNvIHNob3cgeW91ciBzdXBwb3J0IGJ5IGdpdmluZyB1cyBzb21lIEdpdEh1YiBzdGFycyDirZDvuI8sIG9yIGJ5IGZvbGxvd2luZyB1cyBvbiBUd2l0dGVyLCBMaW5rZWRJbiwgYW5kIHN1YnNjcmliaW5nIHRvIG91ciBZb3VUdWJlIGNoYW5uZWwhIPCfmoAKClshWyJCdXkgTWUgQSBDb2ZmZWUiXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2Fzc2V0cy9pbWcvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyldKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXBpYWRkaWN0cykKCgojIyDimpnvuI8gRmVhdHVyZXMKCiogRnVsbCBjb21wYXRpYmlsaXR5IHdpdGggT3BlbkFQSSB2Mi4wLCB2My4wLjAsIHYzLjAuMSwgdjMuMC4yLCB2My4wLjMgYW5kIHYzLjEuMAoKIVtTb25hck9wZW5BcGkgaW4gYWN0aW9uXShzb25hcnF1YmUuanBnKQoKPGEgbmFtZT0iaW5zdGFsbCI+PC9hPgojIyBJbnN0YWxsaW5nCgpUbyBpbnN0YWxsIHRoZSBwbHVnaW4sIHlvdSBuZWVkIHRvIGNvbXBpbGUgaXQsIHRoZW4gaW5zdGFsbCBpdCBpbiB5b3VyIFNvbmFyUXViZSBzZXJ2ZXIuCgoxLiBNYWtlIHN1cmUgeW91IGhhdmUgYXQgbGVhc3QgSkRLMS44IGluc3RhbGxlZCwgYXMgd2VsbCBhcyBNYXZlbiAzLjAuNSBvciBsYXRlci4gVGhleSBtdXN0IGJlIHByZXNlbnQgaW4geW91ciBQQVRILgoyLiBJbiB0aGUgbWFzdGVyIGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdCwgdHlwZSBgbXZuIGluc3RhbGxgLiBUaGlzIHdpbGwgY29tcGlsZSB0aGUgcHJvamVjdCBhbmQgZ2VuZXJhdGUgdGhlIGFydGlmYWN0cy4KMy4gQ29weSB0aGUgZmlsZSBgc29uYXItb3BlbmFwaS1wbHVnaW4vdGFyZ2V0L3NvbmFyLW9wZW5hcGktcGx1Z2luLTx2ZXJzaW9uPi5qYXJgIGludG8gZGlyZWN0b3J5IGBleHRlbnNpb25zL3BsdWdpbnMvYG9mCiAgIHlvdXIgU29uYXJRdWJlIGluc3RhbGxhdGlvbiAoeW91IGNhbiBpbnN0YWxsIGEgbG9jYWwgY29weSBbZnJvbSBoZXJlXShodHRwczovL3d3dy5zb25hcnF1YmUub3JnL2Rvd25sb2Fkcy8pIGZvciB0ZXN0aW5nKS4KNC4gUmVzdGFydCB5b3VyIFNvbmFyUXViZSBzZXJ2ZXIuCgojIyBBbmFseXppbmcgeW91ciBwcm9qZWN0cwoKVG8gYW5hbHl6ZSB5b3VyIHByb2plY3RzLCB5b3UgbXVzdCBmaXJzdCBbaW5zdGFsbF0oI2luc3RhbGwpIHRoZSBwbHVnaW4uCgojIyMgQ29uZmlndXJpbmcgc29uYXItc2Nhbm5lcgoKT25jZSBpbnN0YWxsZWQsIGNvbmZpZ3VyZSB0aGUgYW5hbHlzaXMgcHJvcGVydGllcyBieSBjcmVhdGluZyB0aGUgYHNvbmFyLXByb2plY3QucHJvcGVydGllc2AgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0LgpbU29uYXItc2Nhbm5lcl0oaHR0cHM6Ly9kb2NzLnNvbmFycXViZS5vcmcvbGF0ZXN0L2FuYWx5c2lzL3NjYW4vc29uYXJzY2FubmVyLykgd2lsbCBsb29rIGZvciB0aGlzIGZpbGUgd2hlbiAKbGF1bmNoaW5nIHRoZSBhbmFseXNpcy4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBkZWZpbmUgdGhlc2UgcHJvcGVydGllcyBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3IgdXNpbmcgdGhlIFNvbmFyIE1hdmVuIHBsdWdpbi4KCkFuIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIHByb3ZpZGVkIGJlbG93IGZvciByZWZlcmVuY2U6CgpgYGBwcm9wZXJ0aWVzCiMgbXVzdCBiZSB1bmlxdWUgaW4gYSBnaXZlbiBTb25hclF1YmUgaW5zdGFuY2UKc29uYXIucHJvamVjdEtleT10ZXN0Om9wZW5hcGkKIyB0aGlzIGlzIHRoZSBuYW1lIGFuZCB2ZXJzaW9uIGRpc3BsYXllZCBpbiB0aGUgU29uYXJRdWJlIFVJLiBXYXMgbWFuZGF0b3J5IHByaW9yIHRvIFNvbmFyUXViZSA2LjEuCnNvbmFyLnByb2plY3ROYW1lPU9wZW5BUEkgcGx1Z2luIHRlc3RzCnNvbmFyLnByb2plY3RWZXJzaW9uPTEuMAogCiMgUGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgc29uYXItcHJvamVjdC5wcm9wZXJ0aWVzIGZpbGUuIFJlcGxhY2UgIlwiIGJ5ICIvIiBvbiBXaW5kb3dzLgojIFRoaXMgcHJvcGVydHkgaXMgb3B0aW9uYWwgaWYgc29uYXIubW9kdWxlcyBpcyBzZXQuIApzb25hci5zb3VyY2VzPS4KICAKIyBFbmNvZGluZyBvZiB0aGUgc291cmNlIGNvZGUuIERlZmF1bHQgaXMgZGVmYXVsdCBzeXN0ZW0gZW5jb2RpbmcKc29uYXIuc291cmNlRW5jb2Rpbmc9VVRGLTgKIyBTZWxlY3QgdGhlIGxhbmd1YWdlIHRvIHVzZSBmb3IgYW5hbHlzaXMgCnNvbmFyLmxhbmd1YWdlPW9wZW5hcGkKYGBgCgpGb3IgZGV0YWlscyBhYm91dCBob3cgdG8gY29uZmlndXJlIFNvbmFyUXViZSBTY2FubmVyIHRvIGFuYWx5emUgeW91ciBwcm9qZWN0cywgc2VlIFt0aGUgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLnNvbmFycXViZS5vcmcvZGlzcGxheS9TQ0FOL0FuYWx5emluZyt3aXRoK1NvbmFyUXViZStTY2FubmVyKS4KCiMjIyBDb25maWd1cmluZyB0aGUgcGx1Z2luCgpUaGUgcGx1Z2luIGF1dG9tYXRpY2FsbHkgc2NhbnMgYWxsIGAueWFtbGAgYW5kIGAuanNvbmAgZmlsZXMgdGhhdCBhcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBPcGVuQVBJIHNwZWMuCgpJcyBjb25zaWRlcmVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBPcGVuQVBJIHYyIHNwZWMgaWYgdGhlIGZpbGUgY29udGFpbnMgdGhlIHJvb3Qga2V5IGBzd2FnZ2VyYCBhbmQgY29tcGF0aWJsZSB3aXRoIHRoZSB2MyBpZiBjb250YWlucyBgb3BlbmFwaWAuCgojIyMgUnVubmluZyB0aGUgYW5hbHlzaXMKCiogTWFrZSBzdXJlIHRoZSBTb25hclF1YmUgc2VydmVyIGlzIHJ1bm5pbmcKKiBbR2VuZXJhdGUgYSB0b2tlbl0oaHR0cHM6Ly9kb2NzLnNvbmFycXViZS5vcmcvbGF0ZXN0L3VzZXItZ3VpZGUvdXNlci10b2tlbi8pIHRvIGF1dGhlbnRpY2F0ZSB0byB0aGUgc2VydmVyLCBvciBhc2sgZm9yIG9uZSB0byB5b3VyIGFkbWluaXN0cmF0b3IKKiBXaXRoIGBzb25hci1zY2FubmVyYCBpbiB5b3UgcGF0aCwganVzdCBsYXVuY2ggdGhlIHRvb2wgZnJvbSB0aGUgZGlyZWN0b3J5IHdoZXJlIHlvdSBoYXZlIGNyZWF0ZWQgYHNvbmFyLXByb2plY3QucHJvcGVydGllc2AuCiogTWFrZSBzdXJlIHlvdSBzcGVjaWZ5IHRoZSBzb25hciBzZXJ2ZXIgYW5kIHRva2VuIHdoZW4gbGF1bmNoaW5nIHRoZSBhbmFseXNpcwoKWW91IHNob3VsZCBvYnRhaW4gYW4gb3V0cHV0IHNpbWlsYXIgdG8gdGhhdDoKCmBgYHRleHQKRDpcZ2l0XHRlc3RTb25hcj5zb25hci1zY2FubmVyIC1Ec29uYXIuaG9zdC51cmw9PHlvdXIgU29uYXIgc2VydmVyPiAtRHNvbmFyLmxvZ2luPTxhdXRob3JpemF0aW9uIHRva2VuPgpJTkZPOiAtLS0tLS0tLS0tLS0tICBTY2FuIE9wZW5BUEkgcGx1Z2luIHRlc3RzCklORk86IEJhc2UgZGlyOiBEOlxnaXRcdGVzdFNvbmFyCklORk86IFdvcmtpbmcgZGlyOiBkOlxnaXRcdGVzdFNvbmFyXC5zb25hcgpJTkZPOiBTb3VyY2UgcGF0aHM6IC4KSU5GTzogU291cmNlIGVuY29kaW5nOiBVVEYtOCwgZGVmYXVsdCBsb2NhbGU6IGVuX1VTCklORk86IExvYWQgc2VydmVyIHJ1bGVzCklORk86IExvYWQgc2VydmVyIHJ1bGVzIChkb25lKSB8IHRpbWU9MjI5bXMKSU5GTzogSW5kZXggZmlsZXMKSU5GTzogNCBmaWxlcyBpbmRleGVkCklORk86IFF1YWxpdHkgcHJvZmlsZSBmb3Igb3BlbmFwaTogU29uYXIgd2F5CklORk86IFNlbnNvciBTb25hckphdmFYbWxGaWxlU2Vuc29yIFtqYXZhXQpJTkZPOiBTZW5zb3IgU29uYXJKYXZhWG1sRmlsZVNlbnNvciBbamF2YV0gKGRvbmUpIHwgdGltZT0xbXMKSU5GTzogU2Vuc29yIE9wZW5BUEkgU2Nhbm5lciBTZW5zb3IgW29wZW5hcGldCklORk86IFNlbnNvciBPcGVuQVBJIFNjYW5uZXIgU2Vuc29yIFtvcGVuYXBpXSAoZG9uZSkgfCB0aW1lPTI3MG1zCklORk86IFNlbnNvciBaZXJvIENvdmVyYWdlIFNlbnNvcgpJTkZPOiBTZW5zb3IgWmVybyBDb3ZlcmFnZSBTZW5zb3IgKGRvbmUpIHwgdGltZT04bXMKSU5GTzogTm8gU0NNIHN5c3RlbSB3YXMgZGV0ZWN0ZWQuIFlvdSBjYW4gdXNlIHRoZSAnc29uYXIuc2NtLnByb3ZpZGVyJyBwcm9wZXJ0eSB0byBleHBsaWNpdGx5IHNwZWNpZnkgaXQuCklORk86IENhbGN1bGF0aW5nIENQRCBmb3IgNiBmaWxlcwpJTkZPOiBDUEQgY2FsY3VsYXRpb24gZmluaXNoZWQKSU5GTzogQW5hbHlzaXMgcmVwb3J0IGdlbmVyYXRlZCBpbiAyMTVtcywgZGlyIHNpemU9OTIgS0IKSU5GTzogQW5hbHlzaXMgcmVwb3J0cyBjb21wcmVzc2VkIGluIDM3bXMsIHppcCBzaXplPTE3IEtCCklORk86IEFuYWx5c2lzIHJlcG9ydCB1cGxvYWRlZCBpbiA3NW1zCklORk86IEFOQUxZU0lTIFNVQ0NFU1NGVUwsIHlvdSBjYW4gYnJvd3NlIDx5b3VyIFNvbmFyIHNlcnZlcj4vZGFzaGJvYXJkP2lkPXRlc3QlM0FvcGVuYXBpCklORk86IE5vdGUgdGhhdCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgdXBkYXRlZCBkYXNoYm9hcmQgb25jZSB0aGUgc2VydmVyIGhhcyBwcm9jZXNzZWQgdGhlIHN1Ym1pdHRlZCBhbmFseXNpcyByZXBvcnQKSU5GTzogTW9yZSBhYm91dCB0aGUgcmVwb3J0IHByb2Nlc3NpbmcgYXQgPHlvdXIgU29uYXIgc2VydmVyPi9hcGkvY2UvdGFzaz9pZD1BV1paRTVNZGVoRWFfQ1RNUUEzbQpJTkZPOiBUYXNrIHRvdGFsIHRpbWU6IDMuMzU2IHMKSU5GTzogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCklORk86IEVYRUNVVElPTiBTVUNDRVNTCklORk86IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpgYGAKClRoZW4sIGxvZyBpbnRvIHlvdXIgU29uYXJRdWJlIHNlcnZlciBhbmQgZ28gdG8geW91ciBwcm9qZWN0IHRvIHNlZSB0aGUgZm91bmQgdmlvbGF0aW9ucyAoaWYgYW55KS4KCiMjIyBTa2lwcGluZyBydWxlcwoKU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBkaXNhYmxlIGEgcnVsZSBhbHRvZ2V0aGVyLiBUaGUgcGx1Z2luIGNvbWVzIHdpdGggYSB3YXkgdG8gY29udHJvbCB3aGljaCBydWxlIGlzIGVuYWJsZWQgb24KYSBzcGVjaWZpYyBmaWxlLiBVc2UgaXQgd2l0aCBjYXV0aW9uIGFzIGl0IGlzIGdlbmVyYWxseSBhIGJhZCBwcmFjdGljZSB0byBkaXNhYmxlIGEgcnVsZSBmcm9tIGNvZGUhCgpUaGUgYHgtbm9zb25hcmAgT3BlbkFQSSBleHRlbnNpb24gY29tcGxldGVseSBkaXNhYmxlcyBhIHJ1bGUuIEFkZCBpdCB0byB0aGUgdG9wLWxldmVsIE9wZW5BUEkgZG9jdW1lbnQgdG8gZGlzYWJsZSBhIHJ1bGUKb3IgYSBzZXQgb2YgcnVsZXM6CgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMCIKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiBTd2FnZ2VyIFBldHN0b3JlCiAgbGljZW5zZToKICAgIG5hbWU6IE1JVApzZXJ2ZXJzOgogIC0gdXJsOiBodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92MQp4LW5vc29uYXI6IFsgUnVsZUlkMSwgUnVsZUlkMiBdCmBgYAoKWW91IGNhbiBwYXNzIGVpdGhlciBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmcgdG8gdGhlIGV4dGVuc2lvbi4KClRvIGRpc2FibGUgYSBydWxlIG9ubHkgaW4gYSBzcGVjaWZpYyBBUEkgZWxlbWVudCwgdXNlIHRoZSBgeC1zb25hci1kaXNhYmxlYCBleHRlbnNpb24uIFRvIGVuYWJsZSBhbiBvdGhlcndpc2UgZ2xvYmFsbHkKZGlzYWJsZSBydWxlLCB1c2UgdGhlIGB4LXNvbmFyLWVuYWJsZWAgZXh0ZW5zaW9uLiBUaGV5IGFyZSByZWNvZ25pemVkIGluIGFueSBBUEkgZWxlbWVudCB0aGF0IHN1cHBvcnRzIGV4dGVuc2lvbnMsIGV4Y2VwdApvbiB0aGUgdG9wLWxldmVsIGRvY3VtZW50LgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogU3dhZ2dlciBQZXRzdG9yZQogIGxpY2Vuc2U6CiAgICBuYW1lOiBNSVQKc2VydmVyczoKICAtIHVybDogaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjEKeC1ub3NvbmFyOiBbIFJ1bGVJZDEsIFJ1bGVJZDIgXQpwYXRoczoKICAvcGV0czoKICAgIGdldDoKICAgICAgIyBUaGlzIHJlLWVuYWJsZXMgUnVsZUlkMSBpbiB0aGlzIG9wZXJhdGlvbiBvbmx5IChpdCBpcyBub3QgaW5oZXJpdGVkIGJ5IGNoaWxkIGVsZW1lbnRzIGxpa2UgdGFncyBvciBwYXJhbWV0ZXJzKQogICAgICB4LXNvbmFyLWVuYWJsZTogUnVsZUlkMQogICAgICBzdW1tYXJ5OiBMaXN0IGFsbCBwZXRzCiAgICAgIG9wZXJhdGlvbklkOiBsaXN0UGV0cwogICAgICB0YWdzOgogICAgICAgIC0gcGV0cwogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogZmlsdGVyCiAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgIGRlc2NyaXB0aW9uOiBhdHRyaWJ1dGUgb24gd2hpY2ggdG8gZmlsdGVyCiAgICAgICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAjIFRoaXMgZGlzYWJsZXMgUnVsZUlkMyBsb2NhbGx5IGluIHRoaXMgcGFyYW1ldGVyIChpdCBpcyBub3QgaW5oZXJpdGVkIGJ5IGNoaWxkIGVsZW1lbnRzIGxpa2Ugc2NoZW1hKQogICAgICAgICAgeC1zb25hci1kaXNhYmxlOiBSdWxlSWQzCmBgYAoKQXMgZm9yIGB4LW5vc29uYXJgLCB0aGUgYHgtc29uYXItZGlzYWJsZWAgYW5kIGB4LXNvbmFyLWVuYWJsZWAgZXh0ZW5zaW9ucyBhY2NlcHQgYSBzaW5nbGUgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuCgo8YSBuYW1lPSJ0ZXN0aW5nIj48L2E+CiMjIFRlc3RpbmcKClRvIHJ1biB0ZXN0cyBsb2NhbGx5IGZvbGxvdyB0aGVzZSBpbnN0cnVjdGlvbnMuCgojIyMgQnVpbGQgdGhlIFByb2plY3QgYW5kIFJ1biBVbml0IFRlc3RzCgpUbyBidWlsZCB0aGUgcGx1Z2luIGFuZCBydW4gaXRzIHVuaXQgdGVzdHMsIGV4ZWN1dGUgdGhpcyBjb21tYW5kIGZyb20gdGhlIHByb2plY3QncyByb290IGRpcmVjdG9yeToKCiAgICBtdm4gY2xlYW4gaW5zdGFsbAoKIyMjIEludGVncmF0aW9uIFRlc3RzCgpJbnRlZ3JhdGlvbiB0ZXN0cyBhcmUgcHJvdmlkZWQgd2l0aCB0aGUgcGx1Z2luLiBUbyBpbmNsdWRlIHRoZW0sIHVzZSB0aGUgIml0cyIgcHJvZmlsZToKCiAgICBtdm4gLVBpdHMgY2xlYW4gaW5zdGFsbAoKSWYgeW91IGFyZSBydW5uaW5nIGJlaGluZCBhbiBlbnRlcnByaXNlIHByb3h5LCBzcGVjaWZ5IHRoZSBqYXZhIHByb3h5IG9wdGlvbnMgb24gdGhlIGNvbW1hbmQgbGluZToKCi0gaHR0cC5wcm94eUhvc3QKLSBodHRwLnByb3h5UG9ydAotIGh0dHAucHJveHlVc2VyCi0gaHR0cC5wcm94eVBhc3N3b3JkCi0gaHR0cHMucHJveHlIb3N0Ci0gaHR0cHMucHJveHlQb3J0Ci0gaHR0cHMucHJveHlVc2VyCi0gaHR0cHMucHJveHlQYXNzd29yZAoKIyMjIFBlcmZvcm1pbmcgYSBuZXcgcmVsZWFzZQoKVmFsaWRhdGUgdGhhdCBhbGwgaXMgY29ycmVjdDoKCmBtdm4gY2xlYW4gcGFja2FnZSAtUHJlbGVhc2VgCgpEZXBsb3k6CgpgbXZuIGNsZWFuIGRlcGxveSAtUHJlbGVhc2VgCgojIyDwn5KbIFNwb25zb3JzCjxwIGFsaWduPSJjZW50ZXIiPgoJPGEgaHJlZj0iaHR0cHM6Ly9hcGlhZGRpY3RzLm9yZy8iPgogICAgCTxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMuY2xvdWRhcHBpLm5ldC93ZWIvaW1hZ2UvNDI0OC9MT0dPQ2xvdWRhcHBpMjAyMFZlcnNpb25lcy0wMS5wbmciIGFsdD0iY2xvdWRhcHBpIiB3aWR0aD0iMTUwIi8+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vd3d3LmNvbXVuaWRhZC5tYWRyaWQvc2l0ZXMvZGVmYXVsdC9maWxlcy9zdHlsZXMvYmxvY2tfdGVhc2VyX2ltYWdlL3B1YmxpYy9pbWcvbG9nb3Mtc2ltYm9sb3MvbG9nb19jZW50cmFkb19tZC5wbmc/aXRvaz00clRVaG1jaiIgYWx0PSJtZCIgd2lkdGg9IjE1MCIvPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2FwaXF1YWxpdHkuaW8vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDkvY3JvcHBlZC1sb2dvLWFwaXF1YWxpdHktcHJpbmNpcGFsLTEtMTcweDcwLnBuZyIgaGVpZ2h0ID0gIjc1Ij4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hcGlhZGRpY3RzLXdlYi5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wMy8xNzE1NTczNi9jcm9wcGVkLUFQSUFkZGljdHMtbG9nb3RpcG9fcm9qby5wbmciIGhlaWdodCA9ICI3NSI+Cgk8L2E+CjwvcD4= readmeEtag: '"1a316dfa03327419380fcce3f9f7165795eb4cf7"' readmeLastModified: Thu, 05 Sep 2024 15:43:59 GMT repositoryId: 474063683 description: 'doSonarAPI: static analyzer for OpenAPI contracts' created: '2022-03-25T15:25:42Z' updated: '2024-09-05T15:44:08Z' language: Java archived: false stars: 5 watchers: 3 forks: 1 owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 repoEtag: '"a053f722a6bc20a2fe6f613d94750cb17927cfdc5794a49d3958afc1fd2f036b"' repoLastModified: Thu, 05 Sep 2024 15:44:08 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/tuxivinc/mock-api v3: true repositoryMetadata: base64Readme: >- IyBNb2NrLWFwaSAKQXBpIGZvciBNb2NrLCBwZXJmb3JtYW5jZXMgdGVzdGluZywgcmVzaWxpZW5jZSBhbmQgc2hvdyBmdW5jdGlvbmFsaXRpZXMgaW4gZGVtbyAoZG9ja2VyIGZvciBleGFtcGxlLCB3aXRoIGhlYWx0aGNoZWNrKQoKIyMgSW5mb3JtYXRpb24KKiBzb3VyY2VzIDogaHR0cHM6Ly9naXRodWIuY29tL1R1eGl2aW5jL21vY2stYXBpCgojIyBGdW5jdGlvbnMKKiBNb2NrIEpzb24gcmVzcG9uc2UgKHNldCBieSBQT1NUIG9yIG1vdW50IHZvbHVtZSkKKiBNb2NrIHJlc3BvbnNlIHNpemUgKGRvd25sb2FkIGZpbGUpIAoqIE1vY2sgcmVzcG9uc2UgSFRUUCBTdGF0dXMKKiBHZXQgSG9zdG5hbWUKKiBHZXQgSlZNIGFyZ3MKKiBHZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzCiogR2V0IHJlcXVlc3QgaW5mb3JtYXRpb24KICAqIGJvZHksIGhlYWRlcnMgYW5kIFVSTAoqIFNpbXVsYXRpb24gaGVhbHRoY2hlY2sKICAqIGdldCBodHRwIGNvZGUKICAqIHNldCBodHRwIGNvZGUgcmV0dXJuCiogU2xlZXAgcmVzcG9uc2UgdGltZQogICogU3RvcmFnZSBpbiBtZW1vcnkgb3IgcGFzcyBpbiByZXF1ZXN0IHBhdGgKKiBTaHV0ZG93biBhcHBsaWNhdGlvbiB3aXRoIGVycm9yIGNvZGUKKiBMYXRlbmN5IG9uIHN0YXJ0dXAKKiBEZW1vIHNlc3Npb24gc2hhcmluZyAoZm9yIGxvYWQgYmFsYW5jaW5nIGV4YW1wbGUpCiAgKiBTdG9yZSBzZXNzaW9uIGxvY2FsCiAgKiBNdWx0aWNhc3Qgc2Vzc2lvbgoKIyMgRm9yIHRlc3RpbmcKMS8gRGVwbG95IGNvbnRhaW5lciA6IGRvY2tlciBydW4gLWQgLXAgODA1MDo4MDUwIC0tbmFtZSBtb2NrLWFwaSB0dXhpdmluYy9tb2NrLWFwaQoKMi8gQ2FsbCBzd2FnZ2VyIGZvciBBUEkgaW5mb3MgOiBodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvc3dhZ2dlci11aS5odG1sCgojIyBNb3JlIGluZm9ybWF0aW9uCiMjIyBGdW5jdGlvbnMgbGlzdAojIyMjIExhdGVuY3kgb2Ygc3RhcnR1cAp8IHwgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfAp8ICoqV2hhdCoqIHwgYWRkIHRpbWUgYmVmb3JlIHNlcnZpY2Ugc3RhcnRpbmcgVXAgfAp8ICoqSG93KiogfCBhZGQgYC1lIFNUQVJUSU5HX0xBVEVOQ1lfTVM9W1hYWFhdYCBvbiBjb21tYW5kIGxpbmUgZG9ja2VyIHJ1biAoWFhYWCBpcyBhIHRpbWUgaW4gbXMpIHwgCnwgKipVc2FnZSoqIHwgR2F0bGluZyByZXNpbGllbmNlIHRlc3RpbmcsIERvY2tlciByZXN0YXJ0IHBvbGljeSB8CgojIyMjIEpWTSBpbmZvcm1hdGlvbgp8IHwgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfAp8ICoqV2hhdCoqIHwgR2V0IEp2bSBpbmZvcm1hdGlvbiB8CnwgKipIb3cqKiB8IGBjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4MDUwL21vY2stYXBpL2dldGluZm9zL2p2bSJgIHwKfCAqKlVzYWdlKiogfCBEZWJ1ZyB8CgojIyMjIEVudmlyb25tZW50IHZhcmlhYmxlcwp8IHwgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfAp8ICoqV2hhdCoqIHwgR2V0IEVudmlyb25tZW50IHZhcmlhYmxlcyB8CnwgKipIb3cqKiB8IGBjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4MDUwL21vY2stYXBpL2dldGluZm9zL3ZhcmVudiJgIHwKfCAqKlVzYWdlKiogfCBEZWJ1ZyB8CgojIyMjIEhvc3RuYW1lCnwgfCB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8CnwgKipXaGF0KiogfCBHZXQgSG9zdG5hbWUgb2YgY29udGFpbmVyIHwKfCAqKkhvdyoqIHwgYGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvZ2V0aW5mb3MvaG9zdG5hbWUiYCB8CnwgKipVc2FnZSoqIHwgRGVidWcgfAoKIyMjIyBTaHV0ZG93bgp8IHwgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfAp8ICoqV2hhdCoqIHwgS2lsbCBKVk0gd2l0aCBzcGVjaWZ5IGV4aXQgQ29kZSB8CnwgKipIb3cqKiB8ICB8CnwgfCBSdW4gY29udGFpbmVyIHdpdGggLS1yZXN0YXJ0IG9uLWZhaWx1cmUgfAp8IHwgQ2FsbCBgY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvc2h1dGRvd24vMTIiYCAtPiBUaGUgY29udGFpbmVyIHJlc3RhcnQgfAp8IHwgQ2FsbCBgY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvc2h1dGRvd24vMCJgIC0+IFRoZSBjb250YWluZXIgZG9uJ3QgcmVzdGFydCB8CnwgKipVc2FnZSoqIHwgRG9ja2VyIFJlc3RhcnQgcG9saWN5LCBHYXRsaW5nIFJlc2lsaWVuY2UgdGVzdCB8CgojIyMjIEhlYWx0aENoZWNrCnwgfCB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8CnwgKipXaGF0KiogfCBTZXQgcmV0dXJuIGNvZGUgb2YgRG9ja2VyIEhlYWx0aENoZWNrIHwKfCAqKkhvdyoqIHwgIHwKfCB8IENhbGwgYGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvaGVhbHRoY2hlY2siYCAtPiBSZXR1cm4gaGVhbHRoY2hlY2sgY29kZSAoYnkgZGVmYXVsdCAyMDApIHwKfCB8IENhbGwgYGN1cmwgLVggUE9TVCAiaHR0cDovL2xvY2FsaG9zdDo4MDUwL21vY2stYXBpL2hlYWx0aGNoZWNrL3NldGNvZGUvNTAwImAgLT4gU2V0IHJldHVybiBjb2RlIGF0IDUwMCB8CnwgKipVc2FnZSoqIHwgRG9ja2VyIFJlc3RhcnQgcG9saWN5LCBEb2NrZXIgSGVhbHRoQ2hlY2ssIEdhdGxpbmcgUmVzaWxpZW5jZSwgVHJhZWZpayBleHBvc2Ugc2VydmljZSB8CgojIyMjIFNuaWZmZXIKfCB8IHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tIHwKfCAqKldoYXQqKiB8IEdldCBpbmZvcm1hdGlvbiBvZiBjYWxsIChHRVQvUFVUL1BPU1QvREVMRVRFL09QVElPTlMvSEVBRC9QQVRDSCkgfAp8IHwgSG9zdG5hbWUgY29udGFpbmVyIHwKfCB8IEhvc3RJcCB8CnwgfCBVcmwgcmVjZWl2ZWQgfAp8IHwgVXJpIHJlY2VpdmVkIHwKfCB8IFF1ZXNyeSBTdHJpbmcgfAp8IHwgTGlzdCBoZWFkZXJzIHwKfCB8IEJvZHkgY29udGVudCB8CnwgKipIb3cqKiB8IGBjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4MDUwL21vY2stYXBpL3NuaWZmZXIvaGVhZGVycyJgIHwKfCAqKlVzYWdlKiogfCBEZW1vLCBEZWJ1ZyB8CgojIyMjIEVycm9yIGNvZGUKfCB8IHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tIHwKfCAqKldoYXQqKiB8IENob29zZSBIdHRwIHN0YXR1cyBvZiByZXNwb25zZSB8CnwgKipIb3cqKiB8ICB8CnwgfCByZXR1cm4gaHR0cCBzdGF0dXMgNDA0IDogYGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvc2ltdWxhdGlvbi9lcnJvci80MDQiYCB8CnwgfCByZXR1cm4gaHR0cCBzdGF0dXMgNTAwIDogYGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvc2ltdWxhdGlvbi9lcnJvci81MDAiYCB8CnwgKipVc2FnZSoqIHwgR2F0bGluZyBSZXNpbGllbmNlLCBEZW1vIHwKCiMjIyMgUmVzcG9uc2UgdGltZQp8IHwgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfAp8ICoqV2hhdCoqIHwgQ2hvb3NlIHJlc3BvbnNlIHRpbWUgKHZhbHVlIGluIHBhdGgpIHwKfCAqKkhvdyoqIHwgUmVzcG9uc2UgaW4gNXMgOiBgY3VybCAtWCBHRVQgImh0dHA6Ly9sb2NhbGhvc3Q6ODA1MC9tb2NrLWFwaS9zaW11bGF0aW9uL3RpbWVvdXQvNTAwMCJgIHwKfCAqKlVzYWdlKiogfCBHYXRsaW5nIFJlc2lsaWVuY2UgfAoKIyMjIyBSZXNwb25zZSB0aW1lIGluIG1lbW9yeQp8IHwgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfAp8ICoqV2hhdCoqIHwgQ2hvb3NlIHJlc3BvbnNlIHRpbWUgKHZhbHVlIHN0b3JlIGluIG1lbW9yeSBvZiBzZXJ2ZXIsIGJ5IGRlZmF1bHQ6IDBtcykgfAp8ICoqSG93KiogfCAgfAp8IHwgU2V0IHJlc3BvbnNlIHRpbWUgdG8gMTBzOiBgY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvc2ltdWxhdGlvbi90aW1lb3V0LW1lbW9yeS8xMDAwMCJgICB8CnwgfCBHZXQgcmVzcG9uc2UgaW4gMTBzOiBgY3VybCAtWCBHRVQgImh0dHA6Ly9sb2NhbGhvc3Q6ODA1MC9tb2NrLWFwaS9zaW11bGF0aW9uL3RpbWVvdXQtbWVtb3J5ImAgIHwKfCAqKlVzYWdlKiogfCBHYXRsaW5nIFJlc2lsaWVuY2UgfAoKIyMjIyBSZXNwb25zZSBzaXplCnwgfCB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8CnwgKipXaGF0KiogfCBHZXQgZmlsZSB3aXRoIHNwZWNpZnkgc2l6ZSBvbiByZXF1ZXN0IHwKfCAqKkhvdyoqIHwgIHwKfCB8IEdldCBGaWxlIDIwMEtvOiBgY3VybCAtWCBHRVQgImh0dHA6Ly9sb2NhbGhvc3Q6ODA1MC9tb2NrLWFwaS9zaW11bGF0aW9uL3Jlc3BvbnNlLXNpemUvMjAwIiAtLW91dHB1dCAvdG1wL2ZpbGUyMDBgIHwKfCB8IEdldCBGaWxlIDJNbzogYGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvc2ltdWxhdGlvbi9yZXNwb25zZS1zaXplLzIwMDAiIC0tb3V0cHV0IC90bXAvZmlsZTIwMDBgIHwKfCAqKlVzYWdlKiogfCBHYXRsaW5nIFJlc2lsaWVuY2UsIERlbW8sIFRlc3QgfAoKIyMjIyBTZXNzaW9uIG5vdCBzaGFyZWQKfCB8IHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tIHwKfCAqKldoYXQqKiB8IFN0b3JlIHNlc3Npb24gKGJ5IHRva2VuIGtleSkgaW4gc2VydmVyIHdpdGhvdXQgc2hhcmUgc2NhbGVzIGluc3RhbmNlcyB8CnwgKipIb3cqKiB8ICB8CnwgfCBSdW4gYSBzZWNvbmRhcnkgc2VydmVyIChyZXBsYWNlIGAtcCA4MDUwOjgwNTBgIGJ5IGAtcCA4MDYwOjgwNTBgKSB8CnwgfCBDYWxsIGZpcnN0IHNlcnZlciB3aXRoIHRva2VuICJ0ZXN0IiwgcmV0dXJuIHRpbWVzdGFtcCBvZiBjcmVhdGVkIHNlc3Npb246IGBjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4MDUwL21vY2stYXBpL3Nlc3Npb24vc2hhcmUvdGVzdCJgICB8CnwgfCBDYWxsIHNlY29uZGFyeSBzZXJ2ZXIgd2l0aCB0b2tlbiAidGVzdCIsIHJldHVybiBzYW1lIHRpbWVzdGFtcCBvZiBmaXJzdCBzZXJ2ZXI6IGBjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4MDYwL21vY2stYXBpL3Nlc3Npb24vc2hhcmUvdGVzdCJgICB8CnwgKipVc2FnZSoqIHwgRGVtbyBzZXJ2ZXJsZXNzIGNvbnN0cmFpbnRzIERvY2tlciB8CgojIyMjIFNoYXJlZCBTZXNzaW9uCnwgfCB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLSB8CnwgKipXaGF0KiogfCBTaGFyZSBzZXNzaW9uIChvbiBtdWx0aWNhc3QpIGJldHdlZW4gYWxsIHNlcnZlcnMgfAp8ICoqSG93KiogfCAgfAp8IHwgUnVuIGEgc2Vjb25kYXJ5IHNlcnZlciAocmVwbGFjZSBgLXAgODA1MDo4MDUwYCBieSBgLXAgODA2MDo4MDUwYCkgfAp8IHwgQ2FsbCBmaXJzdCBzZXJ2ZXIgd2l0aCB0b2tlbiAidGVzdCIsIHJldHVybiB0aW1lc3RhbXAgb2YgY3JlYXRlZCBzZXNzaW9uOiBgY3VybCAtWCBHRVQgImh0dHA6Ly9sb2NhbGhvc3Q6ODA1MC9tb2NrLWFwaS9zZXNzaW9uL25vdHNoYXJlL3Rlc3QiYCAgfAp8IHwgQ2FsbCBmaXNydCBzZXJ2ZXIgd2l0aCB0b2tlbiAidGVzdCIsIHJldHVybiBzYW1lIHRpbWVzdGFtcCB8CnwgfCBDYWxsIHNlY29uZGFyeSBzZXJ2ZXIgd2l0aCB0b2tlbiAidGVzdCIsIHJldHVybiB0aW1lc3RhbXAgb2YgY3JlYXRlZCBzZXNzaW9uLCBidXQgZGlmZmVyZW50IG9mIGZpcnN0IHNlcnZlcjogYGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwNjAvbW9jay1hcGkvc2Vzc2lvbi9ub3RzaGFyZS90ZXN0ImAgIHwKfCB8IENhbGwgc2Vjb25kYXJ5IHNlcnZlciB3aXRoIHRva2VuICJ0ZXN0IiwgcmV0dXJuIHNhbWUgdGltZXN0YW1wIHwKfCAqKlVzYWdlKiogfCBEZW1vIHNlcnZlcmxlc3MgY29uc3RyYWludHMgRG9ja2VyICB8CgojIyMjIE1vY2sgSnNvbiBSZXNwb25zZQp8IHwgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0gfAp8ICoqV2hhdCoqIHwgUmV0dXJuIEpzb24gZmlsZSBzdG9yZSBpbiBgL21vY2stcmVzcG9uc2VgIHwKfCAqKkhvdyoqIHwgIHwKfCB8IENyZWF0ZSBkaXJlY3RvcnkgYC94eHgvbW9ja2AgfAp8IHwgSW4gdGhpcyBkaXJlY3RvcnksIGNyZWF0ZSBqc29uIGZpbGUgKHNlZSBleGFtcGxlcyBhZnRlcikgfAp8IHwgUnVuIGNvbnRhaW5lciB3aXRoIC12IC94eHgvbW9jazovbW9jay1yZXNwb25zZSB8CnwgfCBDYWxsIGBjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4MDUwL21vY2stYXBpL21vY2svdGVzdCJgIC0+IFJldHVybiAyMDAgd2l0aCB0ZXN0IGZpbGUgY29udGVudCB8CnwgfCBDYWxsIGBjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4MDUwL21vY2stYXBpL21vY2svdGVzdDIiYCAtPiBSZXR1cm4gMjAwIHdpdGggdGVzdDIgZmlsZSBjb250ZW50IHwKfCB8IENhbGwgYGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwNTAvbW9jay1hcGkvbW9jay90ZXN0MyJgIC0+IFJldHVybiA0MDQsIG5vIGZpbGUgZm91bmQgfAp8ICoqVXNhZ2UqKiB8IE1vY2sgSnNvbiBjYWxsLCBHYXRsaW5nIFJlc2lsaWVuY2UgdGVzdCB8CgpFeGFtcGxlcyBvZiBGaWxlCiogRmlsZSB0ZXN0OiAKICAgIGBgYAogICAgewogICAgICAgICJ1c2VybmFtZSI6IkpvaG4iLAogICAgICAgICJpZCI6NTY0CiAgICB9CiAgICBgYGAgCiogRmlsZSB0ZXN0MjogCiAgICBgYGAKICAgIHsKICAgICAgICAidXNlcm5hbWUiOiJSb2JlcnQiLAogICAgICAgICJpZCI6Nzg5CiAgICB9CiAgICBgYGAKCiMjIyMgUE9TVCBNb2NrIEpzb24gUmVzcG9uc2UKfCB8IHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tIHwKfCAqKldoYXQqKiB8IEFkZCBKc29uIGZpbGUgc3RvcmUgaW4gYC9tb2NrLXJlc3BvbnNlYCB8CnwgKipIb3cqKiB8ICB8CnwgfCBjdXJsIC1YIFBPU1QgImh0dHA6Ly9sb2NhbGhvc3Q6ODA1MC9tb2NrLWFwaS9tb2NrL3Rlc3RyZXAiIC1IICAiYWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiAtSCAgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgLWQgIntcImtleVwiOlwiaGFoYVwifSIgLT4gY3LDqWVyIHVuIGZpY2hpZXIgdGVzdHJlcCB8CnwgKipVc2FnZSoqIHwgTW9jayBKc29uIGNhbGwsIEdhdGxpbmcgUmVzaWxpZW5jZSB0ZXN0IHw= readmeEtag: '"6268bf4ad56eccef518d070565379ffd54f7f72a"' readmeLastModified: Mon, 13 Sep 2021 11:48:35 GMT repositoryId: 216524928 description: >- SpringBoot app for mock API https://hub.docker.com/repository/docker/tuxivinc/mock-api created: '2019-10-21T09:09:03Z' updated: '2024-08-29T13:46:43Z' language: Java archived: false stars: 5 watchers: 1 forks: 2 owner: Tuxivinc logo: https://avatars.githubusercontent.com/u/29063459?v=4 repoEtag: '"9b7516c628c57c2b0502518f9677ed4cc22d64dabc7bb02bd467d604b00b82a5"' repoLastModified: Thu, 29 Aug 2024 13:46:43 GMT foundInMaster: true category: Server Implementations id: f3c2edded6ea75e1012182cbee4cd398 - source: openapi3 tags repository: https://github.com/cchacin/microgen v3: true repositoryMetadata: base64Readme: >- IVtFY2xpcHNlIE1pY3JvUHJvZmlsZSBsb2dvXShpbWFnZXMvbWljcm9wcm9maWxlLWxvZ28ucG5nKQohW0VjbGlwc2UgSmFrYXJ0YUVFIGxvZ29dKGltYWdlcy9qYWthcnRhZWUtbG9nby5wbmcpCgojIE1pY3JvR2VuCgogTWljcm9HZW4gaXMgYSB0b29sIHRvIGdlbmVyYXRlIGphdmEgY29kZSBiYXNlZCBvbiBhbiBbT3BlbkFQSV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpIFNwZWMgZmlsZS4KCiMjIEZlYXR1cmVzCgotIFNlcnZlciBBUEkgQ29udHJhY3QgKEpBWC1SUykKLSBSZXF1ZXN0IGFuZCBSZXNwb25zZSBqYXZhIG9iamVjdHMKICAtIElubmVyIHN0YXRpYyBgQnVpbGRlcmAgY2xhc3MgYW5kIHV0aWxpdHkgbWV0aG9kcwotIEVudW0gdmFsdWUgY2xhc3NlcwotIGBAQmVhblBhcmFtc2AgZm9yIHJlcXVlc3QgcGFyYW1ldGVycwotIE1hdmVuIEFyY2hldHlwZSB0byBxdWljayBzdGFydCBhIEpha2FydGFFRSArIE1pY3JvUHJvZmlsZSBhcHBsaWNhdGlvbgotIERvY2tlcmZpbGUocykgd2l0aCBhIEpha2FydGFFRSArIE1pY3JvUHJvZmlsZSBhcHBsaWNhdGlvbiBzZXJ2ZXIKCiMjIFVzZXIgR3VpZGUKCkdpdmVuIGFuIE9wZW5BUEkgU3BlYyBmaWxlOgoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogIGRlc2NyaXB0aW9uOiBUaGlzIGlzIGEgc2FtcGxlIHNlcnZlciBQZXRzdG9yZSBzZXJ2ZXIuCiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogU3dhZ2dlciBQZXRzdG9yZQp0YWdzOgogIC0gbmFtZTogcGV0CiAgICBkZXNjcmlwdGlvbjogRXZlcnl0aGluZyBhYm91dCB5b3VyIFBldHMKcGF0aHM6CiAgL3BldDoKICAgIHBvc3Q6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBwZXQKICAgICAgc3VtbWFyeTogQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKICAgICAgZGVzY3JpcHRpb246ICcnCiAgICAgIG9wZXJhdGlvbklkOiBhZGRQZXQKICAgICAgcmVzcG9uc2VzOgogICAgICAgICc0MDUnOgogICAgICAgICAgZGVzY3JpcHRpb246IEludmFsaWQgaW5wdXQKICAgICAgc2VjdXJpdHk6CiAgICAgICAgLSBwZXRzdG9yZV9hdXRoOgogICAgICAgICAgICAtICd3cml0ZTpwZXRzJwogICAgICAgICAgICAtICdyZWFkOnBldHMnCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvcmVxdWVzdEJvZGllcy9QZXQnCmNvbXBvbmVudHM6CiAgcmVxdWVzdEJvZGllczoKICAgIFBldDoKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwogICAgICAgIGFwcGxpY2F0aW9uL3htbDoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BldCcKICAgICAgZGVzY3JpcHRpb246IFBldCBvYmplY3QgdGhhdCBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUgc3RvcmUKICAgICAgcmVxdWlyZWQ6IHRydWUKICBzY2hlbWFzOgogICAgUGV0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBuYW1lCiAgICAgICAgLSBwaG90b1VybHMKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGZvcm1hdDogaW50NjQKICAgICAgICBjYXRlZ29yeToKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DYXRlZ29yeScKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBkb2dnaWUKICAgICAgICBwaG90b1VybHM6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHRhZ3M6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9UYWcnCiAgICAgICAgc3RhdHVzOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZXNjcmlwdGlvbjogcGV0IHN0YXR1cyBpbiB0aGUgc3RvcmUKICAgICAgICAgIGVudW06CiAgICAgICAgICAgIC0gYXZhaWxhYmxlCiAgICAgICAgICAgIC0gcGVuZGluZwogICAgICAgICAgICAtIHNvbGQKYGBgCgpNaWNyb0dlbiB3aWxsIGdlbmVyYXRlIHRoZSBmb2xsb3dpbmc6CgojIyMjIFNlcnZlciBBUEkgQ29udHJhY3QgKEpBWC1SUykKCkpBWC1SUyBpbnRlcmZhY2Ugd2l0aCBhbGwgdGhlIGFubm90YXRpb25zIG5lY2Vzc2FyeSBhbm5vdGF0aW9ucwoKYGBgamF2YQpAamF2YXguYW5ub3RhdGlvbi5HZW5lcmF0ZWQodmFsdWUgPSAib3JnLm9wZW5hcGl0b29scy5jb2RlZ2VuLmxhbmd1YWdlcy5NaWNyb0dlbiIpCnB1YmxpYyBpbnRlcmZhY2UgUGV0QXBpIHsKICAvKioKICAgKiBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogICAqCiAgICogQHBhcmFtIHBldCBQZXQgb2JqZWN0IHRoYXQgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIHN0b3JlIChyZXF1aXJlZCkKICAgKiBAcmV0dXJuIHtAY29kZSBqYXZhLnV0aWwuY29uY3VycmVudC5Db21wbGV0aW9uU3RhZ2U8amF2YXgud3MucnMuY29yZS5SZXNwb25zZT59CiAgICovCiAgQGphdmF4LndzLnJzLlBPU1QKICBAamF2YXgud3MucnMuUGF0aCgicGV0IikKICBAamF2YXgud3MucnMuQ29uc3VtZXMoeyJhcHBsaWNhdGlvbi9qc29uIiwgImFwcGxpY2F0aW9uL3htbCJ9KQogIGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRpb25TdGFnZTxqYXZheC53cy5ycy5jb3JlLlJlc3BvbnNlPiBhZGRQZXQoCiAgICAgICAgICBAamF2YXgudmFsaWRhdGlvbi5jb25zdHJhaW50cy5Ob3ROdWxsIEBqYXZheC52YWxpZGF0aW9uLlZhbGlkIFBldCBwZXQKICApIHRocm93cyBqYXZheC53cy5ycy5XZWJBcHBsaWNhdGlvbkV4Y2VwdGlvbjsKICAuCiAgLgogIC4KfQpgYGAKCiMjIyBgQEJlYW5QYXJhbXNgIGZvciByZXF1ZXN0IHBhcmFtZXRlcnMKCmBAQmVhblBhcmFtc2Agd3JhcHBlciBjbGFzcyB0byBtaW5pbWl6ZSB0aGUgYnJlYWtpbmcgY2hhbmdlcyBpbiB0aGUgSmF2YSBBUEkgY29udHJhY3QsIHRoaXMgaW5jbHVkZXM6CiAgLSBgQFBhdGhQYXJhbWAncwogIC0gYEBRdWVyeVBhcmFtYCdzCiAgLSBgQEZvcm1QYXJhbWAncwogIC0gYEBIZWFkZXJQYXJhbWAncwogIC0gYEBDb29raWVQYXJhbWAncwoKQnV0IGFsc28gdGhlIGFkZGl0aW9uYWw6CgogIC0gYEBDb250ZXh0IFVyaUluZm9gCiAgLSBgQENvbnRleHQgSHR0cEhlYWRlcnNgCgpgYGBqYXZhCnB1YmxpYyBjbGFzcyBBZGRQZXRQYXJhbXMgewogICAgQGphdmF4LndzLnJzLmNvcmUuQ29udGV4dAogICAgcHVibGljIGphdmF4LndzLnJzLmNvcmUuSHR0cEhlYWRlcnMgY29yZUh0dHBIZWFkZXJzOwoKICAgIHB1YmxpYyBBZGRQZXRQYXJhbXMgY29yZUh0dHBIZWFkZXJzKAogICAgICAgICAgICBmaW5hbCBqYXZheC53cy5ycy5jb3JlLkh0dHBIZWFkZXJzIGNvcmVIdHRwSGVhZGVycwogICAgKSB7CiAgICAgICAgdGhpcy5jb3JlSHR0cEhlYWRlcnMgPSBjb3JlSHR0cEhlYWRlcnM7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICB9CgogICAgQGphdmF4LndzLnJzLmNvcmUuQ29udGV4dAogICAgcHVibGljIGphdmF4LndzLnJzLmNvcmUuVXJpSW5mbyBjb3JlVXJpSW5mbzsKCiAgICBwdWJsaWMgQWRkUGV0UGFyYW1zIGNvcmVVcmlJbmZvKAogICAgICAgICAgICBmaW5hbCBqYXZheC53cy5ycy5jb3JlLlVyaUluZm8gY29yZVVyaUluZm8KICAgICkgewogICAgICAgIHRoaXMuY29yZVVyaUluZm8gPSBjb3JlVXJpSW5mbzsKICAgICAgICByZXR1cm4gdGhpczsKICAgIH0KfQpgYGAKCiMjIyBSZXF1ZXN0IGFuZCBSZXNwb25zZSBvYmplY3RzOgoKR2VuZXJhdGUgdGhlIFJlcXVlc3QgYW5kIFJlc3BvbnNlIGphdmEgb2JqZWN0cyB3aXRoIHRoZSBgSnNvbi1iYCBhbm5vdGF0aW9uczoKICAtIGBASnNvbmJQcm9wZXJ0eWAKICAtIGBASnNvbmJDcmVhdG9yYAogIC0gYEBKc29uYlByb3BlcnR5T3JkZXJgCiAgLSBgdG9TdHJpbmcoKWAKICAtIGBlcXVhbHNgCiAgLSBgaGFzaENvZGVgCiAgLSBJbm5lciBzdGF0aWMgYEJ1aWxkZXJgIGNsYXNzIGFuZCB1dGlsaXR5IG1ldGhvZHMKCiAgQ09NSU5HIFNPT046IFVzaW5nIGltbXV0YWJsZXMub3JnIGxpYnJhcnkKCiAgYGBgamF2YQogIC8qKgogICAqIFBldAogICAqLwogIEBqYXZheC5qc29uLmJpbmQuYW5ub3RhdGlvbi5Kc29uYlByb3BlcnR5T3JkZXIoewogICAgUGV0LkpTT05fUFJPUEVSVFlfSUQsCiAgICBQZXQuSlNPTl9QUk9QRVJUWV9DQVRFR09SWSwKICAgIFBldC5KU09OX1BST1BFUlRZX05BTUUsCiAgICBQZXQuSlNPTl9QUk9QRVJUWV9QSE9UT19VUkxTLAogICAgUGV0LkpTT05fUFJPUEVSVFlfVEFHUywKICAgIFBldC5KU09OX1BST1BFUlRZX1NUQVRVUwogIH0pCiAgQGphdmF4LmFubm90YXRpb24uR2VuZXJhdGVkKHZhbHVlID0gIm9yZy5vcGVuYXBpdG9vbHMuY29kZWdlbi5sYW5ndWFnZXMuTWljcm9HZW4iKQogIEBpby5xdWFya3VzLnJ1bnRpbWUuYW5ub3RhdGlvbnMuUmVnaXN0ZXJGb3JSZWZsZWN0aW9uCiAgcHVibGljIGZpbmFsIGNsYXNzIFBldCB7CiAgICAgIHByaXZhdGUgZmluYWwgamF2YS51dGlsLk9wdGlvbmFsTG9uZyBpZDsKICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSlNPTl9QUk9QRVJUWV9JRCA9ICJpZCI7CgogICAgICBAamF2YXgudmFsaWRhdGlvbi5WYWxpZAogICAgICBwcml2YXRlIGZpbmFsIGphdmEudXRpbC5PcHRpb25hbDxDYXRlZ29yeT4gY2F0ZWdvcnk7CiAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEpTT05fUFJPUEVSVFlfQ0FURUdPUlkgPSAiY2F0ZWdvcnkiOwoKICAgICAgQGphdmF4LnZhbGlkYXRpb24uY29uc3RyYWludHMuTm90TnVsbAogICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBuYW1lOwogICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBKU09OX1BST1BFUlRZX05BTUUgPSAibmFtZSI7CgogICAgICBAamF2YXgudmFsaWRhdGlvbi5jb25zdHJhaW50cy5Ob3ROdWxsCiAgICAgIHByaXZhdGUgZmluYWwgamF2YS51dGlsLkxpc3Q8U3RyaW5nPiBwaG90b1VybHM7CiAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEpTT05fUFJPUEVSVFlfUEhPVE9fVVJMUyA9ICJwaG90b1VybHMiOwoKICAgICAgQGphdmF4LnZhbGlkYXRpb24uVmFsaWQKICAgICAgcHJpdmF0ZSBmaW5hbCBqYXZhLnV0aWwuT3B0aW9uYWw8amF2YS51dGlsLkxpc3Q8VGFnPj4gdGFnczsKICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSlNPTl9QUk9QRVJUWV9UQUdTID0gInRhZ3MiOwoKICAgICAgcHJpdmF0ZSBmaW5hbCBTdGF0dXNFbnVtIHN0YXR1czsKICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSlNPTl9QUk9QRVJUWV9TVEFUVVMgPSAic3RhdHVzIjsKCiAgICAgIEBqYXZheC5qc29uLmJpbmQuYW5ub3RhdGlvbi5Kc29uYkNyZWF0b3IKICAgICAgcHVibGljIFBldCgKICAgICAgICAgIEBqYXZheC5qc29uLmJpbmQuYW5ub3RhdGlvbi5Kc29uYlByb3BlcnR5KCJpZCIpCiAgICAgICAgICBmaW5hbCBqYXZhLnV0aWwuT3B0aW9uYWxMb25nIGlkLAogICAgICAgICAgQGphdmF4Lmpzb24uYmluZC5hbm5vdGF0aW9uLkpzb25iUHJvcGVydHkoImNhdGVnb3J5IikKICAgICAgICAgIGZpbmFsIGphdmEudXRpbC5PcHRpb25hbDxDYXRlZ29yeT4gY2F0ZWdvcnksCiAgICAgICAgICBAamF2YXguanNvbi5iaW5kLmFubm90YXRpb24uSnNvbmJQcm9wZXJ0eSgibmFtZSIpCiAgICAgICAgICBmaW5hbCBTdHJpbmcgbmFtZSwKICAgICAgICAgIEBqYXZheC5qc29uLmJpbmQuYW5ub3RhdGlvbi5Kc29uYlByb3BlcnR5KCJwaG90b1VybHMiKQogICAgICAgICAgZmluYWwgamF2YS51dGlsLkxpc3Q8U3RyaW5nPiBwaG90b1VybHMsCiAgICAgICAgICBAamF2YXguanNvbi5iaW5kLmFubm90YXRpb24uSnNvbmJQcm9wZXJ0eSgidGFncyIpCiAgICAgICAgICBmaW5hbCBqYXZhLnV0aWwuT3B0aW9uYWw8amF2YS51dGlsLkxpc3Q8VGFnPj4gdGFncywKICAgICAgICAgIEBqYXZheC5qc29uLmJpbmQuYW5ub3RhdGlvbi5Kc29uYlByb3BlcnR5KCJzdGF0dXMiKQogICAgICAgICAgZmluYWwgU3RhdHVzRW51bSBzdGF0dXMKICAgICkgewogICAgICAgIHRoaXMuaWQgPSBpZDsKICAgICAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnk7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLnBob3RvVXJscyA9IHBob3RvVXJsczsKICAgICAgICB0aGlzLnRhZ3MgPSB0YWdzOwogICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzOwogICAgfQoKICAgIC8vIGdldHRlciBvbWl0dGVkCiAgICAvLyBtb3JlIGRldGFpbHMgZXhwbGFpbmVkIGJlbG93CiAgfQogIGBgYAoKIyMjIyBJbm5lciBzdGF0aWMgZmFjdG9yeSBidWlsZGVyIHRvIG1ha2UgZWFzaWVyIHRoZSBpbnN0YW50aWF0aW9uOgoKICBgYGBqYXZhCiAgcHVibGljIHN0YXRpYyBCdWlsZGVyIGJ1aWxkZXIoKSB7CiAgICAgIHJldHVybiBCdWlsZGVyLmNyZWF0ZSgpOwogIH0KCiAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBCdWlsZGVyIHsKICAgICAgcHJpdmF0ZSBqYXZhLnV0aWwuT3B0aW9uYWxMb25nICAgICAgICAgICAgICAgICAgaWQ7CiAgICAgIHByaXZhdGUgamF2YS51dGlsLk9wdGlvbmFsPENhdGVnb3J5PiAgICAgICAgICAgIGNhdGVnb3J5OwogICAgICBwcml2YXRlIFN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOwogICAgICBwcml2YXRlIGphdmEudXRpbC5MaXN0PFN0cmluZz4gICAgICAgICAgICAgICAgICBwaG90b1VybHM7CiAgICAgIHByaXZhdGUgamF2YS51dGlsLk9wdGlvbmFsPGphdmEudXRpbC5MaXN0PFRhZz4+IHRhZ3M7CiAgICAgIHByaXZhdGUgU3RhdHVzRW51bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKCiAgICAgIHByaXZhdGUgQnVpbGRlcigpIHsKICAgICAgfQoKICAgICAgcHVibGljIHN0YXRpYyBCdWlsZGVyIGNyZWF0ZSgpIHsKICAgICAgICAgIHJldHVybiBuZXcgQnVpbGRlcigpOwogICAgICB9CgogICAgICBwdWJsaWMgQnVpbGRlciBzZXRJZChmaW5hbCBqYXZhLnV0aWwuT3B0aW9uYWxMb25nIGlkKSB7CiAgICAgICAgICB0aGlzLmlkID0gaWQ7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBtb3JlIGluZm8gb21pdHRlZAogICAgfQogIGBgYAoKIyMjIEVudW0gdmFsdWVzCgpHZW5lcmF0aW5nIGFsbCB0aGUgZW51bSB2YWx1ZXMgd2l0aCB0aGUgYEBKc29uYlNlcmlhbGl6ZXJgJ3MgYW5kIGBASnNvbmJEZXNlcmlhbGl6ZXJgJ3MKCiAgYGBgamF2YQogIEBqYXZheC5qc29uLmJpbmQuYW5ub3RhdGlvbi5Kc29uYlR5cGVTZXJpYWxpemVyKFBldC5TdGF0dXNFbnVtU2VyaWFsaXplci5jbGFzcykKICBAamF2YXguanNvbi5iaW5kLmFubm90YXRpb24uSnNvbmJUeXBlRGVzZXJpYWxpemVyKFBldC5TdGF0dXNFbnVtRGVzZXJpYWxpemVyLmNsYXNzKQogIHB1YmxpYyBzdGF0aWMgZW51bSBTdGF0dXNFbnVtIHsKCiAgICAgIEFWQUlMQUJMRSgiYXZhaWxhYmxlIiksCiAgICAgIFBFTkRJTkcoInBlbmRpbmciKSwKICAgICAgU09MRCgic29sZCIpOwoKICAgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgdmFsdWU7CgogICAgICBTdGF0dXNFbnVtKGZpbmFsIFN0cmluZyB2YWx1ZSkgewogICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOwogICAgICB9CgogICAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7CiAgICAgIH0KCiAgICAgIEBPdmVycmlkZQogICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgICAgICAgcmV0dXJuIFN0cmluZy52YWx1ZU9mKHRoaXMudmFsdWUpOwogICAgICB9CgogICAgICBAamF2YXguanNvbi5iaW5kLmFubm90YXRpb24uSnNvbmJDcmVhdG9yCiAgICAgIHB1YmxpYyBzdGF0aWMgU3RhdHVzRW51bSBmcm9tVmFsdWUoZmluYWwgU3RyaW5nIHRleHQpIHsKICAgICAgICAgIHJldHVybiBqYXZhLnV0aWwuQXJyYXlzLnN0cmVhbShTdGF0dXNFbnVtLnZhbHVlcygpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGIgLT4gamF2YS51dGlsLk9iamVjdHMuZXF1YWxzKFN0cmluZy52YWx1ZU9mKGIudmFsdWUpLCB0ZXh0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmRGaXJzdCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vckVsc2UobnVsbCk7CiAgICAgIH0KICB9CiAgYGBgCgojIyMjIEVudW0ncyBgSnNvbmJgIFNlcmlhbGl6ZXJzL0Rlc2VyaWFsaXplcgoKICBgYGBqYXZhCiAgcHVibGljIHN0YXRpYyBjbGFzcyBTdGF0dXNFbnVtU2VyaWFsaXplciBpbXBsZW1lbnRzIGphdmF4Lmpzb24uYmluZC5zZXJpYWxpemVyLkpzb25iU2VyaWFsaXplcjxTdGF0dXNFbnVtPiB7CgogICAgICBwdWJsaWMgU3RhdHVzRW51bVNlcmlhbGl6ZXIoKSB7IH0KCiAgICAgIEBPdmVycmlkZQogICAgICBwdWJsaWMgdm9pZCBzZXJpYWxpemUoCiAgICAgICAgICAgICAgU3RhdHVzRW51bSBhRW51bSwKICAgICAgICAgICAgICBqYXZheC5qc29uLnN0cmVhbS5Kc29uR2VuZXJhdG9yIGpzb25HZW5lcmF0b3IsCiAgICAgICAgICAgICAgamF2YXguanNvbi5iaW5kLnNlcmlhbGl6ZXIuU2VyaWFsaXphdGlvbkNvbnRleHQgc2VyaWFsaXphdGlvbkNvbnRleHQpIHsKICAgICAgICAgIGpzb25HZW5lcmF0b3Iud3JpdGUoYUVudW0udmFsdWUpOwogICAgICB9CiAgfQoKICBwdWJsaWMgc3RhdGljIGNsYXNzIFN0YXR1c0VudW1EZXNlcmlhbGl6ZXIgaW1wbGVtZW50cyBqYXZheC5qc29uLmJpbmQuc2VyaWFsaXplci5Kc29uYkRlc2VyaWFsaXplcjxTdGF0dXNFbnVtPiB7CgogICAgICBwdWJsaWMgU3RhdHVzRW51bURlc2VyaWFsaXplcigpIHt9CgogICAgICBAT3ZlcnJpZGUKICAgICAgcHVibGljIFN0YXR1c0VudW0gZGVzZXJpYWxpemUoCiAgICAgICAgICAgICAgamF2YXguanNvbi5zdHJlYW0uSnNvblBhcnNlciBqc29uUGFyc2VyLAogICAgICAgICAgICAgIGphdmF4Lmpzb24uYmluZC5zZXJpYWxpemVyLkRlc2VyaWFsaXphdGlvbkNvbnRleHQgZGVzZXJpYWxpemF0aW9uQ29udGV4dCwKICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5UeXBlIHR5cGUpIHsKICAgICAgICAgIHJldHVybiBTdGF0dXNFbnVtLmZyb21WYWx1ZShqc29uUGFyc2VyLmdldFN0cmluZygpKTsKICAgICAgfQogIH0KICBgYGAKCiMjIyBVc2luZyBNaWNyb0dlbiB3aXRoIHRoZSBNYXZlbiBBcmNoZXR5cGUKCkV4ZWN1dGUgdGhpcyBjb21tYW5kCgpgYGBiYXNoCiQgbXZuIGFyY2hldHlwZTpnZW5lcmF0ZSBcCiAgICAtRGdyb3VwSWQ9Y29tLmV4YW1wbGUgXAogICAgLURhcnRpZmFjdElkPWV4YW1wbGUgXAogICAgLURhcmNoZXR5cGVHcm91cElkPWlvLm1pY3JvZ2VuIFwKICAgIC1EYXJjaGV0eXBlQXJ0aWZhY3RJZD1taWNyb2dlbi1hcmNoZXR5cGUKYGBgCgpDaGVjayB3aGF0IGlzIGNyZWF0ZWQKCmBgYGJhc2gKJCBjZCBleGFtcGxlICYmIHRyZWUgLiAtLWRpcnNmaXJzdApleGFtcGxlCuKUnOKUgOKUgCBzcmMK4pSCwqDCoCDilJTilIDilIAgbWFpbgrilILCoMKgICAgICDilJzilIDilIAgamF2YQrilILCoMKgICAgICDilILCoMKgIOKUlOKUgOKUgCBjb20K4pSCwqDCoCAgICAg4pSCwqDCoCAgICAg4pSU4pSA4pSAIGV4YW1wbGUK4pSCwqDCoCAgICAg4pSCwqDCoCAgICAgICAgIOKUlOKUgOKUgCBKQVhSU0NvbmZpZ3VyYXRpb24uamF2YQrilILCoMKgICAgICDilJzilIDilIAgcmVzb3VyY2VzCuKUgsKgwqAgICAgIOKUgsKgwqAg4pSU4pSA4pSAIE1FVEEtSU5GCuKUgsKgwqAgICAgIOKUgsKgwqAgICAgIOKUnOKUgOKUgCBtaWNyb3Byb2ZpbGUtY29uZmlnLnByb3BlcnRpZXMK4pSCwqDCoCAgICAg4pSCwqDCoCAgICAg4pSU4pSA4pSAIG9wZW5hcGkueW1sCuKUgsKgwqAgICAgIOKUlOKUgOKUgCB3ZWJhcHAK4pSCwqDCoCAgICAgICAgIOKUlOKUgOKUgCBXRUItSU5GCuKUgsKgwqAgICAgICAgICAgICAg4pSU4pSA4pSAIGJlYW5zLnhtbArilJzilIDilIAgRG9ja2VyZmlsZQrilJzilIDilIAgUkVBRE1FLm1kCuKUnOKUgOKUgCBtdm53CuKUnOKUgOKUgCBtdm53LmNtZArilJTilIDilIAgcG9tLnhtbAoKOSBkaXJlY3RvcmllcywgOSBmaWxlcwpgYGAKCkltcGxlbWVudCB0aGUgSkFYLVJTIEFQSSBjb250cmFjdAoKYGBgamF2YQpAUGF0aCgidjEiKQpAQXBwbGljYXRpb25TY29wZWQKcHVibGljIGNsYXNzIFBldFJlc291cmNlIGltcGxlbWVudHMgUGV0QXBpIHsKCiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyBDb21wbGV0aW9uU3RhZ2U8UmVzcG9uc2U+IGFkZFBldChQZXQgcGV0KSB0aHJvd3MgV2ViQXBwbGljYXRpb25FeGNlcHRpb24gewogICAgICAgIHJldHVybiBDb21wbGV0YWJsZUZ1dHVyZS5jb21wbGV0ZWRGdXR1cmUoCiAgICAgICAgICAgICAgICBSZXNwb25zZS5ub0NvbnRlbnQoKS5idWlsZCgpCiAgICAgICAgKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyBDb21wbGV0aW9uU3RhZ2U8UmVzcG9uc2U+IGdldFBldEJ5SWQoR2V0UGV0QnlJZFBhcmFtcyBwYXJhbXMpIHRocm93cyBXZWJBcHBsaWNhdGlvbkV4Y2VwdGlvbiB7CiAgICAgICAgcmV0dXJuIENvbXBsZXRhYmxlRnV0dXJlLmNvbXBsZXRlZEZ1dHVyZSgKICAgICAgICAgICAgICAgIFJlc3BvbnNlLm9rKAogICAgICAgICAgICAgICAgICAgICAgICBQZXQuYnVpbGRlcigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRJZChPcHRpb25hbExvbmcub2YoMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXROYW1lKCJwZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAuYnVpbGQoKQogICAgICAgICAgICAgICAgKS5idWlsZCgpCiAgICAgICAgKTsKICAgIH0KYGBgCgpSdW4gYW5kIGVuam95CgpgYGBiYXNoCiQgLi9tdm53IGNsZWFuIGluc3RhbGwKYGBgCgpgYGBiYXNoCiQgZG9ja2VyIHJtIC1mIGV4YW1wbGUgfHwgdHJ1ZSAmJiBkb2NrZXIgcnVuIC1kIC1wIDkwODA6OTA4MCAtLW5hbWUgZXhhbXBsZSBjb20uZXhhbXBsZS9leGFtcGxlOjEuMC1TTkFQU0hPVApgYGAKCmBgYGJhc2gKJCBjdXJsIC1zIC1YIEdFVCAtSCAiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiBodHRwOi8vbG9jYWxob3N0OjkwODAvYXBpL3YxL3BldC8xIHwganEgLgp7CiAgImNhdGVnb3J5IjogewogICAgImlkIjogMSwKICAgICJuYW1lIjogIiIKICB9LAogICJpZCI6IDEsCiAgIm5hbWUiOiAibmFtZSIsCiAgInN0YXR1cyI6ICJhdmFpbGFibGUiCn0KYGBgCgojIyMgQWR2YW5jZSBGZWF0dXJlcwoKIyMjIERlcGVuZGVuY2llcwoKfCBMaWJyYXJ5ICAgICAgICAgICAgICB8IFZlcnNpb24gfCBMaWNlbnNlIHwKfDotLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tfDotLS0tLS0tLXwKfCBFY2xpcHNlIEpha2FydGFFRSAgICB8IDguMC4wICAgfCAgICAgICAgIHwKfCBFY2xpcHNlIE1pY3JvUHJvZmlsZSB8IDMuMCAgICAgfCAgICAgICAgIHwKfCBPcGVuQVBJIFRvb2xzICAgICAgICB8IDQuMS4xICAgfCAgICAgICAgIHwKfCBJbW11dGFibGVzICAgICAgICAgICB8IDIuNy41ICAgfCAgICAgICAgIHwKClshW2ZvcnRoZWJhZGdlXShodHRwczovL2ZvcnRoZWJhZGdlLmNvbS9pbWFnZXMvYmFkZ2VzL21hZGUtd2l0aC1qYXZhLnN2ZyldKGh0dHBzOi8vZm9ydGhlYmFkZ2UuY29tKSBbIVtmb3J0aGViYWRnZV0oaHR0cHM6Ly9mb3J0aGViYWRnZS5jb20vaW1hZ2VzL2JhZGdlcy9idWlsdC13aXRoLWxvdmUuc3ZnKV0oaHR0cHM6Ly9mb3J0aGViYWRnZS5jb20pCgpbIVtmb3J0aGViYWRnZV0oaHR0cHM6Ly9mb3J0aGViYWRnZS5jb20vaW1hZ2VzL2JhZGdlcy9hcHByb3ZlZC1ieS1nZW9yZ2UtY29zdGFuemEuc3ZnKV0oaHR0cHM6Ly9mb3J0aGViYWRnZS5jb20pIFshW2ZvcnRoZWJhZGdlXShodHRwczovL2ZvcnRoZWJhZGdlLmNvbS9pbWFnZXMvYmFkZ2VzL2NvbnRhaW5zLXRlY2huaWNhbC1kZWJ0LnN2ZyldKGh0dHBzOi8vZm9ydGhlYmFkZ2UuY29tKQoKIVtDb2RlUUxdKGh0dHBzOi8vZ2l0aHViLmNvbS9jY2hhY2luL01pY3JvR2VuL3dvcmtmbG93cy9Db2RlJTIwc2Nhbm5pbmclMjAtJTIwYWN0aW9uL2JhZGdlLnN2ZykKIVtKYXZhIENJXShodHRwczovL2dpdGh1Yi5jb20vY2NoYWNpbi9NaWNyb0dlbi93b3JrZmxvd3MvSmF2YSUyMENJL2JhZGdlLnN2ZykKIVtHcmVldGluZ3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9jY2hhY2luL01pY3JvR2VuL3dvcmtmbG93cy9HcmVldGluZ3MvYmFkZ2Uuc3ZnKQohW1JlbGVhc2UgRHJhZnRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2NjaGFjaW4vTWljcm9HZW4vd29ya2Zsb3dzL1JlbGVhc2UlMjBNYW5hZ2VtZW50L2JhZGdlLnN2ZykKWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2lvLm1pY3JvZ2VuL21pY3JvZ2VuLXBhcmVudC9iYWRnZS5zdmcpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvaW8ubWljcm9nZW4vTWljcm9HZW4pClshW1BScyBXZWxjb21lXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BScy13ZWxjb21lLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1zcXVhcmUpXShodHRwOi8vbWFrZWFwdWxscmVxdWVzdC5jb20pIFshW0RlcGVuZGFib3QgU3RhdHVzXShodHRwczovL2FwaS5kZXBlbmRhYm90LmNvbS9iYWRnZXMvc3RhdHVzP2hvc3Q9Z2l0aHViJnJlcG89Y2NoYWNpbi9NaWNyb0dlbildKGh0dHBzOi8vZGVwZW5kYWJvdC5jb20pCg== readmeEtag: '"94f3ac84cace64ec43634908a17e33d1c951fae7"' readmeLastModified: Sun, 02 May 2021 03:12:19 GMT repositoryId: 144823441 description: An OpenAPI Spec Generator for Eclipse JakartaEE + Eclipse MicroProfile created: '2018-08-15T07:56:22Z' updated: '2023-06-22T11:58:48Z' language: Java archived: false stars: 5 watchers: 2 forks: 6 owner: cchacin logo: https://avatars.githubusercontent.com/u/292938?v=4 license: Apache-2.0 repoEtag: '"aa0f63cb4b28a9b3abcd7e40107873e02475ff4f819ae8bd81fadc1d9f9ccebc"' repoLastModified: Thu, 22 Jun 2023 11:58:48 GMT foundInMaster: true category: Parsers id: ef50340f0e36fe66a7057fb768ecd29e - source: openapi3 tags repository: https://github.com/istreamlabs/rest-api-lint v3: true repositoryMetadata: base64Readme: >- IyBSRVNUIEFQSSBMaW50aW5nIEFjdGlvbgoKWyFbLmdpdGh1Yi93b3JrZmxvd3MvY2kueWFtbF0oaHR0cHM6Ly9naXRodWIuY29tL2lzdHJlYW1sYWJzL3Jlc3QtYXBpLWxpbnQvd29ya2Zsb3dzLy5naXRodWIvd29ya2Zsb3dzL2NpLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2lzdHJlYW1sYWJzL3Jlc3QtYXBpLWxpbnQvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQS5naXRodWIlMkZ3b3JrZmxvd3MlMkZjaS55YW1sKSBbIVtEb2NrZXIgQ2xvdWQgQnVpbGQgU3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2RvY2tlci9jbG91ZC9idWlsZC9pc3RyZWFtbGFicy9yZXN0LWFwaS1saW50KV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2lzdHJlYW1sYWJzL3Jlc3QtYXBpLWxpbnQpIFshW0RvY2tlciBQdWxsc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvcHVsbHMvaXN0cmVhbWxhYnMvcmVzdC1hcGktbGludCldKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9pc3RyZWFtbGFicy9yZXN0LWFwaS1saW50KQoKQSBEb2NrZXIgaW1hZ2Ugd2l0aCBvcGluaW9uYXRlZCBSRVNUIEFQSSBsaW50aW5nIGZvciBpU3RyZWFtUGxhbmV0LiBTdXBwb3J0cyBHaXRIdWIgQWN0aW9ucy4KClRoaXMgaXMgYnVpbHQgdXNpbmcgW1N0b3BsaWdodCdzIFNwZWN0cmFsXShodHRwczovL3N0b3BsaWdodC5pby9vcGVuLXNvdXJjZS9zcGVjdHJhbCkuIFRoZSBjdXN0b20gcnVsZXNldCBpcyBkZWZpbmVkIGluIFtpc3AtcnVsZXMueWFtbF0oaHR0cHM6Ly9naXRodWIuY29tL2lzdHJlYW1sYWJzL3Jlc3QtYXBpLWxpbnQvYmxvYi9tYXN0ZXIvaXNwLXJ1bGVzLnlhbWwpLCB3aGVyZSB5b3UgY2FuIGZpbmQgdGhlIGRlc2NyaXB0aW9ucyBhbmQgcnVsZSBuYW1lcyAoaWYgeW91IHdhbnQgdG8gZGlzYWJsZSBpbmRpdmlkdWFsIHJ1bGVzKS4KCiMjIFVzYWdlCgpUaGVyZSBhcmUgdHdvIHJlY29tbWVuZGVkIHdheXMgdG8gdXNlIHRoaXM6CgoxLiBHaXRIdWIgQWN0aW9ucwoyLiBBbnkgc3lzdGVtIHRoYXQgc3VwcG9ydHMgRG9ja2VyIGltYWdlcwoKIyMjIEdpdEh1YiBBY3Rpb25zIEV4YW1wbGUKClNldCB1cCBhIHdvcmtmbG93IHRoYXQgdXNlcyB0aGlzIGltYWdlIHRvIGRvIEFQSSBsaW50aW5nIGFuZCB5b3UgYXJlIGRvbmU6CgpgYGB5YW1sCm9uOiBbcHVzaF0KCmpvYnM6CiAgYnVpbGQ6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBuYW1lOiBCdWlsZCAmIFRlc3QKICAgIHN0ZXBzOgogICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjEKICAgICAgLSBuYW1lOiBBUEkgTGludAogICAgICAgIHVzZXM6IGlzdHJlYW1sYWJzL3Jlc3QtYXBpLWxpbnRAbWFzdGVyCiAgICAgICAgd2l0aDoKICAgICAgICAgIGZpbGVuYW1lOiBwYXRoL3RvL29wZW5hcGkueWFtbApgYGAKClRoZSBwYXRoIHlvdSBwYXNzIHNob3VsZCBiZSByZWxhdGl2ZSB0byB0aGUgY2hlY2tvdXQgZGlyZWN0b3J5LCB3aGljaCBpcyBhdXRvbWF0aWNhbGx5IG1vdW50ZWQgaW4gdGhlIGNvbnRhaW5lciBhbmQgYmVjb21lcyB0aGUgd29ya2luZyBkaXJlY3RvcnkuCgojIyMgRG9ja2VyIEV4YW1wbGUKCldoaWxlIHNpbWlsYXIgdG8gdGhlIGFib3ZlLCB5b3Ugd2lsbCBuZWVkIHRvIGRvIGFuIGV4dHJhIHN0ZXAgd2hlbiB1c2luZyBEb2NrZXIgZGlyZWN0bHkuIFlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoZSB3b3JraW5nIGRpcmVjdG9yeSBnZXRzIG1vdW50ZWQgcHJvcGVybHkgaW50byB0aGUgY29udGFpbmVyLgoKWW91IGNhbiBlaXRoZXIgdXNlIHRoZSBwdWJsaXNoZWQgW2Bpc3RyZWFtbGFicy9yZXN0LWFwaS1saW50YF0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2lzdHJlYW1sYWJzL3Jlc3QtYXBpLWxpbnQpIGNvbnRhaW5lciBvciBidWlsZCBpdCB5b3Vyc2VsZiBsb2NhbGx5LgoKYGBgc2gKIyBDcmVhdGUgdGhlIGltYWdlLgokIGRvY2tlciBidWlsZCAtdCByZXN0LWFwaS1saW50IC4KCiMgTW91bnQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdG8gYC90bXBgIGluIHRoZSBjb250YWluZXIgYW5kIHJ1biBsaW50aW5nLgokIGRvY2tlciBydW4gLWl0IC12ICQocHdkKTovdG1wIHJlc3QtYXBpLWxpbnQ6bGF0ZXN0IC90bXAvbXktb3BlbmFwaS55YW1sCgojIElmIHlvdSBoYXZlIGEgY3VzdG9tIGAuc3BlY3RyYWwueWFtbGAgd2l0aCBvdmVycmlkZXM6CiQgZG9ja2VyIHJ1biAtaXQgLXcgL3dvcmtzcGFjZSAtdiAkKHB3ZCk6L3dvcmtzcGFjZSByZXN0LWFwaS1saW50OmxhdGVzdCBvcGVuYXBpLnlhbWwKYGBgCgpUaGUgY29tbWFuZCB3aWxsIHJldHVybiBhIGAwYCBvbiBzdWNjZXNzIGFuZCBhIGAxYCBpZiBhbnkgZXJyb3JzIGFyZSBmb3VuZC4gV2FybmluZ3MgZG8gbm90IHRyaWdnZXIgYSBmYWlsdXJlLgoKIyMjIEV4Y2VwdGlvbnMgJiBPdmVycmlkZXMKCldoZW4gW3N0b3BsaWdodGlvL3NwZWN0cmFsIzc0N10oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL3NwZWN0cmFsL2lzc3Vlcy83NDcpIGdldHMgZml4ZWQgeW91IHdpbGwgYmUgYWJsZSB0byBwcm92aWRlIGluZGl2aWR1YWwgZXhjZXB0aW9ucyBvbiBhIGNhc2UtYnktY2FzZSBiYXNpcy4KClRvIGRpc2FibGUgYW4gZW50aXJlIHJ1bGUsIGUuZy4gdG8gc3VwcG9ydCBhIGxlZ2FjeSBBUEksIHlvdSBjYW4gcHJvdmlkZSB5b3VyIG93biBgLnNwZWN0cmFsLnlhbWxgIGZpbGUgaW4gdGhlIHJvb3Qgb2YgeW91ciByZXBvIHdoaWNoIHNldHMgc29tZSBydWxlcyB0byBgZmFsc2VgLiBOb3RlIHRoYXQgdGhpcyBkaXNhYmxlcyB0aGUgcnVsZSBmb3IgdGhlIF9lbnRpcmUgZmlsZV86CgpgYGB5YW1sCnJ1bGVzOgogIGlzbzg2MDE6IGZhbHNlCiAgc2VydmVyLXZlcnNpb246IGZhbHNlCmBgYAoKSXQncyBhbHNvIHBvc3NpYmxlIHRvIHNldCBpdCB0byBgd2FybmAgb3IgYGluZm9gLgoKVGhlIGBleHRlbmRzYCBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIChvciBhcHBlbmRlZCB0bykgYnkgdGhlIGxpbnRlciBzY3JpcHQgdG8gaW5qZWN0IHRoZSBpU1AgcnVsZXNldCBpbnRvIHlvdXIgY29uZmlnLgoKIyMjIExvY2FsIERldmVsb3BtZW50CgoxLiBJbnN0YWxsIGBub2RlIDEzLjE0LjBgIGxvY2FsbHkuCjIuIFJ1biBgbnBtIHJ1biBidWlsZGAgdG8gY29tcGlsZSB0aGUgYGlzcC1mdW5jdGlvbnNgLgozLiBSdW4gYG5vZGUgLi9lbnRyeXBvaW50LmpzIDxQQVRIX1RPX09QRU5BUElfU1BFQz5gIHRvIHJ1biB0aGUgbGludGVyLgoKVGhlIGBidWlsZGAgY29tbWFuZCBtYXkgbmVlZCB0byBiZSByZS1ydW4gdG8gcGljayB1cCBjaGFuZ2VzIG1hZGUgdG8gc29tZSBvZiB0aGUgYGlzcC1mdW5jdGlvbnNgLgoKIyMjIyBUZXN0cwoKYGBgc2gKIyBDb21waWxlIHRoZSBpc3AtZnVuY3Rpb25zCm5wbSBydW4gYnVpbGQKCiMgUnVuIHRlc3QKbnBtIHJ1biB0ZXN0CmBgYAoKIyMgTGljZW5zZQoKQ29weXJpZ2h0IMKpIDIwMjAgaVN0cmVhbVBsYW5ldCBDby4sIExMQwoKTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4K readmeEtag: '"2558795008088634d324e2464f3dc23c9adfd971"' readmeLastModified: Tue, 27 Jun 2023 17:23:32 GMT repositoryId: 237052565 description: REST API linting using OpenAPI and Spectral created: '2020-01-29T18:23:40Z' updated: '2023-02-16T19:31:59Z' language: JavaScript archived: false stars: 5 watchers: 7 forks: 2 owner: istreamlabs logo: https://avatars.githubusercontent.com/u/30184888?v=4 license: Apache-2.0 repoEtag: '"1c2b4e404233a1066c93654c159d16ca0795d0296ff651efab704218132238d2"' repoLastModified: Thu, 16 Feb 2023 19:31:59 GMT foundInMaster: true category: - Description Validators - Server Implementations id: 1794143fa313ceb332ca759e0105bde5 - source: openapi3 tags repository: https://github.com/danielgtaylor/apibin v3: true repositoryMetadata: base64Readme: >- IyBBUEkgQmluCgpbIVtIVU1BIFBvd2VyZWRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUG93ZXJlZCUyMEJ5LUh1bWEtZmY1Zjg3KV0oaHR0cHM6Ly9odW1hLnJvY2tzLykgWyFbV29ya3MgV2l0aCBSZXN0aXNoXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1dvcmtzJTIwV2l0aC1SZXN0aXNoLWZmNWY4NyldKGh0dHBzOi8vcmVzdC5zaC8pIFshW0dpdEh1Yl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9kYW5pZWxndGF5bG9yL2FwaWJpbildKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2FwaWJpbikKClByb3ZpZGVzIGEgc2ltcGxlLCBtb2Rlcm4sIGV4YW1wbGUgQVBJIGZvciBkZW1vaW5nIG9yIGRlYnVnZ2luZyB2YXJpb3VzIGZlYXR1cmVzLCBpbmNsdWRpbmc6CgotIEhUVFAsIEhUVFBTIChUTFMpLCBhbmQgW0hUVFAvMl0oaHR0cHM6Ly9odHRwMi5naXRodWIuaW8vKQotIFtPcGVuQVBJIDNdKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pICYgW0pTT04gU2NoZW1hXShodHRwczovL2pzb24tc2NoZW1hLm9yZy8pCi0gQ2xpZW50LWRyaXZlbiBjb250ZW50IG5lZ290aWF0aW9uCiAgLSBgZ3ppcGAgJiBgYnJgIGNvbnRlbnQgZW5jb2RpbmcgZm9yIGxhcmdlIHJlc3BvbnNlcwogIC0gYEpTT05gLCBgWUFNTGAsICYgYENCT1JgIGZvcm1hdHMKLSBDb25kaXRpb25hbCByZXF1ZXN0cyB2aWEgYEVUYWdgIG9yIGBMYXN0TW9kaWZpZWRgCi0gRWNobyBiYWNrIHJlcXVlc3QgaW5mbyB0byBoZWxwIGRlYnVnZ2luZwotIENhY2hlZCByZXNwb25zZXMgdG8gdGVzdCBwcm94eSAmIGNsaWVudC1zaWRlIGNhY2hpbmcKLSBFeGFtcGxlIHN0cnVjdHVyZWQgZGF0YQogIC0gU2hvd3Mgb2ZmIGBvYmplY3RgLCBgYXJyYXlgLCBgc3RyaW5nYCwgYGRhdGVgLCBgYmluYXJ5YCwgYGludGVnZXJgLCBgbnVtYmVyYCwgYGJvb2xlYW5gLCBldGMuCi0gQSBzYW1wbGUgQ1JVRCBBUEkgZm9yIGJvb2tzICYgcmV2aWV3cyB3aXRoIHNpbXVsYXRlZCBzZXJ2ZXItc2lkZSB1cGRhdGVzCi0gSW1hZ2UgcmVzcG9uc2VzIGBKUEVHYCwgYFdFQlBgLCBgR0lGYCwgYFBOR2AgJiBgSEVJQ2AKLSBbUkZDNzgwN10oaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3ODA3KSBzdHJ1Y3R1cmVkIGVycm9ycwoKVGhpcyBwcm9qZWN0IGlzIG9wZW4gc291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9hcGliaW4KCllvdSBjYW4gcnVuIGl0IGxvY2FseSB2aWEgRG9ja2VyOgoKYGBgc2gKIyBTdGFydCB0aGUgc2VydmVyCiQgZG9ja2VyIHJ1biAtcCA4ODg4Ojg4ODggZ2hjci5pby9kYW5pZWxndGF5bG9yL2FwaWJpbjpsYXRlc3QKCiMgTWFrZSBhIHJlcXVlc3QKJCByZXN0aXNoIDo4ODg4L3R5cGVzCmBgYAo= readmeEtag: '"e0501c1769bc643849d54d79c1d29b1cf8e4730b"' readmeLastModified: Sun, 04 Feb 2024 17:41:03 GMT repositoryId: 484840594 description: Example API with modern features created: '2022-04-23T19:39:15Z' updated: '2024-06-29T17:28:40Z' language: Go archived: false stars: 5 watchers: 3 forks: 1 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT repoEtag: '"41de39fb6ab0965273b062ef84fc55b8fcec8694f24f5c39bf267b8f34d0d1ec"' repoLastModified: Sat, 29 Jun 2024 17:28:40 GMT foundInMaster: true category: - Documentation - Server Implementations id: c41c5a3a517f2769a0b3c04fad395fbd - source: openapi3 tags repository: https://github.com/skaffolder/skaffolder-vscode-extension v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9za2FmZm9sZGVyLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vc2thZmZvbGRlci5jb20vaW1nL2xvZ28vc2thZmZvbGRlcl9sb2dvLXdoaXRlX2JnLnBuZyIgd2lkdGg9IjcwJSI+PC9hPjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbi9hY3Rpb25zIj4KCSAgPGltZyBhbHQ9IkdpdEh1YiBXb3JrZmxvdyBTdGF0dXMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvd29ya2Zsb3cvc3RhdHVzL3NrYWZmb2xkZXIvc2thZmZvbGRlci12c2NvZGUtZXh0ZW5zaW9uL21haW4iPgogIDwvYT4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2thZmZvbGRlci9za2FmZm9sZGVyLXZzY29kZS1leHRlbnNpb24vYmxvYi9tYXN0ZXIvTElDRU5TRSI+CiAgICA8aW1nIGFsdD0iR2l0SHViIExpY2Vuc2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbiI+CiAgPC9hPgo8L3A+CgohW0V4dGVuc2lvbiBHaWZdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbi9hc3NldHMvZ2lmL3ZzY29kZV9zYW1wbGUuZ2lmKQoKIyBTa2FmZm9sZGVyIEdlbmVyYXRvcgoKVGhpcyBleHRlbnNpb24gYWxsb3dzIHRvIGNyZWF0ZSwgZWRpdCBhbmQgbWFuYWdlIGEgW1NrYWZmb2xkZXJdKGh0dHBzOi8vd3d3LnNrYWZmb2xkZXIuY29tKSBwcm9qZWN0LgoKSXQgYWxsb3dzIHRvIGNyZWF0ZSB3ZWIgYW5kIG1vYmlsZSBhcHBsaWNhdGlvbnMgc3RhcnRpbmcgZnJvbSB0aGUgdGVjaG5pY2FsIGRvY3VtZW50YXRpb24gb2YgZGF0YWJhc2UgbW9kZWxzLCBBUElzIGFuZCBwYWdlcy4KClRoZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBkZWZpbmVkIGZyb20gdGhlIFtTa2FmZm9sZGVyIHdlYiBpbnRlcmZhY2VdKGh0dHBzOi8vYXBwLnNrYWZmb2xkZXIuY29tKSBoYXZpbmcgYSBmcmVlIFNrYWZmb2xkZXIgYWNjb3VudCBvciBmcm9tIHRoZSBvcGVuYXBpLnlhbWwgZmlsZSB0aGF0IGV4dGVuZHMgdGhlIE9wZW5BUEkgMy4wIHN0YW5kYXJkcy4gVGhpcyBleGVuc2lvbiBhbGxvd3MgdG8gZWRpdCB0aGUgb3BlbmFwaSBmaWxlIGZyb20gYSB2aXN1YWwgaW50ZXJmYWNlIGFjY29yZGluZyB0byB0aGUgU2thZmZvbGRlcidzIHN0YW5kYXJkcy4KCiMjIEZlYXR1cmVzCgotIENyZWF0ZSBGZWF0dXJlcwogIC0gW0NyZWF0ZSBwcm9qZWN0XSgjY3JlYXRlLXByb2plY3QpCiAgLSBbQ3JlYXRlIG1vZGVsXSgjY3JlYXRlLW1vZGVsKQogIC0gW0NyZWF0ZSBhcGldKCNjcmVhdGUtYXBpKQogIC0gW0NyZWF0ZSBwYWdlXSgjY3JlYXRlLXBhZ2UpCiAgLSBbQ3JlYXRlIGNydWRdKCNjcmVhdGUtY3J1ZCkKLSBbT3BlbiByZWFsZWF0aXZlIGZpbGVzXSgjb3Blbi1maWxlcykKLSBbR2VuZXJhdGUgcHJvamVjdF0oI2dlbmVyYXRlLWNvZGUpCi0gW0VkaXRpbmcgY29tcG9uZXRuc10oI2VkaXRpbmctY29tcG9uZW50cykKLSBTa2FmZm9sZGVyIEFjY291bnQgZmVhdHVyZXMKICAtIFNrYWZmb2xkZXIgTG9naW4vTG9nb3V0CiAgLSBbRXhwb3J0IHByb2plY3QgdG8gU2thZmZvbGRlciBQbGF0Zm9ybV0oI2V4cG9ydC1wcm9qZWN0KQotIFtTZXR0aW5nIGZvciBvbi1wcmVtaXNlXSgjZXh0ZW5zaW9uLXNldHRpbmdzLWZvci1vbi1wcmVtaXNlKQoKLS0tCgojIyMgQ3JlYXRlIFByb2plY3QKCkNyZWF0ZSBhIG5ldyBsb2NhbCBTa2FmZm9sZGVyIHByb2plY3QgYnkgY2xpY2tpbmcgb24gX0NyZWF0ZSBwcm9qZWN0c18uIFRoZSBidXR0b24gd2lsbCBvbmx5IGFwcGVhciBpZiB0aGUgZXh0ZW5zaW9uIGNhbid0IGZpbmQgYW4gb3BlbmFwaS55YW1sIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLgoKIVtDcmVhdGUgcHJvamVjdCBHaWZdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbi9hc3NldHMvZ2lmL2NyZWF0ZV9wcm9qZWN0LmdpZikKCiMjIyBHZW5lcmF0ZSBjb2RlCgpHZW5lcmF0ZSB0aGUgc291cmNlIGNvZGUgb2YgeW91ciBwcm9qZWN0IGZyb20gdGhlIG9wZW5hcGkueWFtbCBmaWxlLgoKIVtHZW5lcmF0ZSBjb2RlIEdpZl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWZmb2xkZXIvc2thZmZvbGRlci12c2NvZGUtZXh0ZW5zaW9uL2Fzc2V0cy9naWYvZ2VuZXJhdGVfY29kZS5naWYpCgojIyMgRXhwb3J0IHByb2plY3QKCkV4cG9ydCB5b3VyIGxvY2FsIHByb2plY3QgdG8gU2thZmZvbGRlciBQbGF0Zm9ybS4KQmVmb3JlIGV4cG9ydGluZyB5b3VyIHByb2plY3QgeW91IG5lZWQgdG8gbG9naW4gd2l0aCB5b3VyIFNrYWZmb2xkZXIgW2FjY291bnRdKCNyZXF1aXJlbWVudHMpLgoKIVtFeHBvcnQgcHJvamVjdCBHaWZdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbi9hc3NldHMvZ2lmL2V4cG9ydF9wcm9qZWN0LmdpZikKCiMjIyBDcmVhdGUgbW9kZWwKCkNyZWF0ZSBhIG5ldyBtb2RlbCBpbiB0aGUgU2thZmZvbGRlciBwcm9qZWN0IGJ5IGNsaWNraW5nIG9uIHRoZSBzeW1ib2wgYCtgIG9mIGEgZGF0YWJhc2UgZnJvbSB0aGUgVHJlZVZpZXcgb2YgeW91ciBwcm9qZWN0OgoKIVtDcmVhdGUgbW9kZWwgZ2lmXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc2thZmZvbGRlci9za2FmZm9sZGVyLXZzY29kZS1leHRlbnNpb24vYXNzZXRzL2dpZi9jcmVhdGVfbW9kZWwuZ2lmKQoKT3IgYnkgdHlwaW5nIGBzayBtb2RlbGAgaW4gdGhlIENvbW1hbmQgUGFsZXR0ZToKCiFbQ3JlYXRlIG1vZGVsIGdpZl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWZmb2xkZXIvc2thZmZvbGRlci12c2NvZGUtZXh0ZW5zaW9uL2Fzc2V0cy9naWYvcGFsZXR0ZV9jcmVhdGVfbW9kZWwuZ2lmKQoKIyMjIENyZWF0ZSBhcGkKCkNyZWF0ZSBhIG5ldyBhcGkgaW50IHRoZSBTa2FmZm9sZGVyIHByb2plY3QgYnkgY2xpY2tpbmcgb24gdGhlIHN5bWJvbCBgK2Agb2YgYSBtb2RlbCBmcm9tIHRoZSBUcmVlVmlldyBvZiB5b3VyIHByb2plY3Q6CgohW0NyZWF0ZSBhcGkgZ2lmXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc2thZmZvbGRlci9za2FmZm9sZGVyLXZzY29kZS1leHRlbnNpb24vYXNzZXRzL2dpZi9jcmVhdGVfYXBpLmdpZikKCk9yIGJ5IHR5cGluZyBgc2sgYXBpYCBpbiB0aGUgQ29tbWFuZCBQYWxldHRlOgoKIVtDcmVhdGUgYXBpIGdpZl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWZmb2xkZXIvc2thZmZvbGRlci12c2NvZGUtZXh0ZW5zaW9uL2Fzc2V0cy9naWYvcGFsZXR0ZV9jcmVhdGVfYXBpLmdpZikKCiMjIyBDcmVhdGUgcGFnZQoKQ3JlYXRlIGEgbmV3IHBhZ2UgaW4gdGhlIFNrYWZmb2xkZXIgcHJvamVjdCBieSBjbGlja2luZyBvbiB0aGUgc3ltYm9sIGArYCBvbiB0aGUgX1BBR0VTXyBwYW5lbCBvZiB5b3VyIHByb2plY3Q6CgohW0NyZWF0ZSBwYWdlIGdpZl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWZmb2xkZXIvc2thZmZvbGRlci12c2NvZGUtZXh0ZW5zaW9uL2Fzc2V0cy9naWYvY3JlYXRlX3BhZ2UuZ2lmKQoKT3IgYnkgdHlwaW5nIGBzayBwYWdlYCBpbiB0aGUgQ29tbWFuZCBQYWxldHRlOgoKIVtDcmVhdGUgcGFnZSBnaWZdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbi9hc3NldHMvZ2lmL3BhbGV0dGVfY3JlYXRlX3BhZ2UuZ2lmKQoKIyMjIENyZWF0ZSBDUlVECgpDcmVhdGUgYSBDUlVEIGludGVyZmFjZSBmb3IgYSBtb2RlbCBieSBjbGlja2luZyBieSBfQ3JlYXRlIENSVURfIG9mIGEgdGhlIG1vZGVsIGVkaXRpbmcgcGFuZWw6CgohW0NyZWF0ZSBjcnVkIGdpZl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWZmb2xkZXIvc2thZmZvbGRlci12c2NvZGUtZXh0ZW5zaW9uL2Fzc2V0cy9naWYvY3JlYXRlX2NydWQuZ2lmKQoKIyMjIE9wZW4gRmlsZXMKCk9wZW4gZmlsZXMgcmVsYXRlZCB0byBhIG1vZGVsLCBhcGkgb3IgYSBwYWdlIGJ5IGNsaWNraW5nIG9uIHRoZSBpY29uIG5leHQgdGhlIGVkaXQgaWNvbiBvciBieSBfT3BlbiByZWxhdGVkIGZpbGVzXyBpbiB0aGUgY29tcG9uZW50J3MgZWRpdGluZyBwYW5lbDoKCiFbT3BlbiBmaWxlcyBHaWZdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbi9hc3NldHMvZ2lmL29wZW5fZmlsZXMuZ2lmKQoKIyMjIEVkaXRpbmcgY29tcG9uZW50cwoKRWRpdCBhIGNvbXBvbmVudCBieSBjbGlja2luZyB0aGUgZWRpdCBpY29uIGFuZCBhIG5ldyBlZGl0aW5nIHBhbmVsIHdpbGwgb3Blbi4gV2hlbiBzYXZpbmcsIGFueSBtb2RpZmljYXRpb24gd2lsbCBiZSB3cml0dGVuIGluIHRoZSBvcGVuYXBpLnlhbWwgZmlsZS4KCiFbQWRkIGF0dHJpYnV0ZSBmcm9tIHBhbmVsIGdpZl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWZmb2xkZXIvc2thZmZvbGRlci12c2NvZGUtZXh0ZW5zaW9uL2Fzc2V0cy9naWYvYWRkX2F0dHJpYnV0ZS5naWYpCgpPciB5b3UgY2FuIGVkaXQgZGlyZWN0bHkgZnJvbSB0aGUgb3BlbmFwaS55YW1sIGZpbGU6CgohW0VkaXQgYXR0cmlidXRlIGZyb20gZmlsZSBnaWZdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9za2FmZm9sZGVyL3NrYWZmb2xkZXItdnNjb2RlLWV4dGVuc2lvbi9hc3NldHMvZ2lmL2VkaXRfYXR0cmlidXRlX2ZpbGUuZ2lmKQoKIyMgUmVxdWlyZW1lbnRzCgpPcHRpb25hbCBmcmVlIFNrYWZmb2xkZXIgYWNjb3VudDoKaHR0cHM6Ly9za2FmZm9sZGVyLmNvbS9yZWdpc3RlcgoKLS0tCgojIyBFeHRlbnNpb24gU2V0dGluZ3MgZm9yIG9uLXByZW1pc2UKCi0gYHNrYWZmb2xkZXIuZW5kcG9pbnRgOiBjb25maWd1cmUgbGluayB3aXRoIG9uLXByZW1pc2UgU2thZmZvbGRlciBwbGF0Zm9ybQotIGBza2FmZm9sZGVyLmVuZHBvaW50RG9jc2A6IGNvbmZpZ3VyZSBsaW5rIHdpdGggb24tcHJlbWlzZSBTa2FmZm9sZGVyIHBsYXRmb3JtIGZvciBkaXNwbGF5aW5nIGRvY3VtZW50YXRpb24KCk1vcmUgaW5mbyBvbiBTa2FmZm9sZGVyIG9uLXByZW1pc2UgZm9yIGVudGVycHJpc2VzIFtoZXJlXShodHRwczovL3NrYWZmb2xkZXIuY29tL2VudGVycHJpc2Uvb3ZlcnZpZXcpLgoKR2V0IFNrYWZmb2xkZXIgb24tcHJlbWlzZSBmcm9tOgoKLSBbRG9ja2VyIEh1Yl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL3NrYWZmb2xkZXItZW50ZXJwcmlzZSkKLSBbR29vZ2xlIE1hcmtldHBsYWNlXShodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9tYXJrZXRwbGFjZS9kZXRhaWxzL3NrYWZmb2xkZXItcHVibGljL3NrYWZmb2xkZXItZW50ZXJwcmlzZSkKLSBbQVdTIE1hcmtldHBsYWNlXShodHRwczovL2F3cy5hbWF6b24uY29tL21hcmtldHBsYWNlL3BwL0IwN1NXNEdQRlkpCi0gW0RpZ2l0YWxPY2VhbiBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS5kaWdpdGFsb2NlYW4uY29tL2FwcHMvc2thZmZvbGRlci1lbnRlcnByaXNlKQoKLS0tCgojIyBDb250cmlidXRpbmcKClNrYWZmb2xkZXItZ2VuZXJhdG9yIGlzIGFuIG9wZW4tc291cmNlIHByb2plY3QuIEZlZWwgZnJlZSB0byBwcm9wb3NlIGVuaGFuY2VtZW50cyBzdWdnZXN0aW9ucywgcmVwb3J0IGJ1Z3MgYW5kIHRvIHN1Ym1pdCBwdWxsIHJlcXVlc3RzLgo= readmeEtag: '"d51ce444776820d34b678f0886b8179d40404f57"' readmeLastModified: Sat, 18 Jul 2020 18:17:07 GMT repositoryId: 237040227 description: >- This VSCode Extension allows to generate web app from documentation in your IDE. You can import APIs from a OpenAPI 3.0 file or define it by yourself. created: '2020-01-29T17:18:35Z' updated: '2024-03-26T08:58:48Z' language: TypeScript archived: false stars: 5 watchers: 3 forks: 4 owner: skaffolder logo: https://avatars.githubusercontent.com/u/35335745?v=4 license: GPL-3.0 repoEtag: '"de6fcc8f2e1cc5b9c3ee22ab4e4ceb21d696bfbc6bf81f616448841022552c9e"' repoLastModified: Tue, 26 Mar 2024 08:58:48 GMT foundInMaster: true category: SDK id: 4e921d6ee7f9e5bec7ded491eb1b25ba - source: openapi3 tags repository: https://github.com/correl/tornado-openapi3 v3: true repositoryMetadata: base64Readme: >- PT09PT09PT09PT09PT09PT09PQogVG9ybmFkbyBPcGVuQVBJIDMKPT09PT09PT09PT09PT09PT09PQoKLi4gaW1hZ2U6OiBodHRwczovL3RyYXZpcy1jaS5jb20vY29ycmVsL3Rvcm5hZG8tb3BlbmFwaTMuc3ZnP2JyYW5jaD1tYXN0ZXIKICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9jb3JyZWwvdG9ybmFkby1vcGVuYXBpMwouLiBpbWFnZTo6IGh0dHBzOi8vY29kZWNvdi5pby9naC9jb3JyZWwvdG9ybmFkby1vcGVuYXBpMy9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj1DVFlXV0RYVEw5CiAgICA6dGFyZ2V0OiBodHRwczovL2NvZGVjb3YuaW8vZ2gvY29ycmVsL3Rvcm5hZG8tb3BlbmFwaTMKLi4gaW1hZ2U6OiBodHRwczovL3JlYWR0aGVkb2NzLm9yZy9wcm9qZWN0cy90b3JuYWRvLW9wZW5hcGkzL2JhZGdlLwogICAgOnRhcmdldDogaHR0cHM6Ly90b3JuYWRvLW9wZW5hcGkzLnJlYWR0aGVkb2NzLmlvCi4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2ZwogICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL3BzZi9ibGFjawoKClRvcm5hZG8gT3BlbkFQSSAzIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHZhbGlkYXRpb24gbGlicmFyeS4KClByb3ZpZGVzIGludGVncmF0aW9uIGJldHdlZW4gdGhlIGBUb3JuYWRvYF8gd2ViIGZyYW1ld29yayBhbmQgYE9wZW5hcGktY29yZWBfCmxpYnJhcnkgZm9yIHZhbGlkYXRpbmcgcmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0cyBhZ2FpbnN0IGFuIGBPcGVuQVBJIDNgXwpzcGVjaWZpY2F0aW9uLgoKRnVsbCBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3Rvcm5hZG8tb3BlbmFwaTMucmVhZHRoZWRvY3MuaW8KClVzYWdlCj09PT09CgpBZGRpbmcgdmFsaWRhdGlvbiB0byByZXF1ZXN0IGhhbmRsZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi4uIGNvZGU6OiBweXRob24KCiAgIGltcG9ydCB0b3JuYWRvLmlvbG9vcAogICBpbXBvcnQgdG9ybmFkby53ZWIKICAgZnJvbSB0b3JuYWRvX29wZW5hcGkzLmhhbmRsZXIgaW1wb3J0IE9wZW5BUElSZXF1ZXN0SGFuZGxlcgoKCiAgIGNsYXNzIE15UmVxdWVzdEhhbmRsZXIoT3BlbkFQSVJlcXVlc3RIYW5kbGVyKToKICAgICAgIHNwZWNfZGljdCA9IHsKICAgICAgICAgICAib3BlbmFwaSI6ICIzLjAuMCIsCiAgICAgICAgICAgImluZm8iOiB7CiAgICAgICAgICAgICAgICJ0aXRsZSI6ICJTaW1wbGUgRXhhbXBsZSIsCiAgICAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgICAgICB9LAogICAgICAgICAgICJwYXRocyI6IHsKICAgICAgICAgICAgICAgIi8iOiB7CiAgICAgICAgICAgICAgICAgICAiZ2V0IjogewogICAgICAgICAgICAgICAgICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSW5kZXgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRlbnQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQvaHRtbCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjaGVtYSI6IHsidHlwZSI6ICJzdHJpbmcifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgfSwKICAgICAgIH0KCgogICBjbGFzcyBSb290SGFuZGxlcihNeVJlcXVlc3RIYW5kbGVyKToKICAgICAgIGFzeW5jIGRlZiBnZXQoc2VsZik6CiAgICAgICAgICAgc2VsZi5maW5pc2goIkhlbGxvLCBXb3JsZCEiKQoKCiAgIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgICBhcHAgPSB0b3JuYWRvLndlYi5BcHBsaWNhdGlvbihbKHIiLyIsIFJvb3RIYW5kbGVyKV0pCiAgICAgICBhcHAubGlzdGVuKDg4ODgpCiAgICAgICB0b3JuYWRvLmlvbG9vcC5JT0xvb3AuY3VycmVudCgpLnN0YXJ0KCkKClZhbGlkYXRpbmcgcmVzcG9uc2VzIGluIHRlc3RzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgouLiBjb2RlOjogcHl0aG9uCgogICBpbXBvcnQgdW5pdHRlc3QKCiAgIGltcG9ydCB0b3JuYWRvLndlYgogICBmcm9tIHRvcm5hZG9fb3BlbmFwaTMudGVzdGluZyBpbXBvcnQgQXN5bmNPcGVuQVBJVGVzdENhc2UKCgogICBjbGFzcyBSb290SGFuZGxlcih0b3JuYWRvLndlYi5SZXF1ZXN0SGFuZGxlcik6CiAgICAgICBhc3luYyBkZWYgZ2V0KHNlbGYpOgogICAgICAgICAgIHNlbGYuZmluaXNoKCJIZWxsbywgV29ybGQhIikKCgogICBjbGFzcyBCYXNlVGVzdENhc2UoQXN5bmNPcGVuQVBJVGVzdENhc2UpOgogICAgICAgc3BlY19kaWN0ID0gewogICAgICAgICAgICJvcGVuYXBpIjogIjMuMC4wIiwKICAgICAgICAgICAiaW5mbyI6IHsKICAgICAgICAgICAgICAgInRpdGxlIjogIlNpbXBsZSBFeGFtcGxlIiwKICAgICAgICAgICAgICAgInZlcnNpb24iOiAiMS4wLjAiLAogICAgICAgICAgIH0sCiAgICAgICAgICAgInBhdGhzIjogewogICAgICAgICAgICAgICAiLyI6IHsKICAgICAgICAgICAgICAgICAgICJnZXQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJbmRleCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC9odG1sIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogeyJ0eXBlIjogInN0cmluZyJ9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICB9LAogICAgICAgfQoKICAgICAgIGRlZiBnZXRfYXBwKHNlbGYpOgogICAgICAgICAgIHJldHVybiB0b3JuYWRvLndlYi5BcHBsaWNhdGlvbihbKHIiLyIsIFJvb3RIYW5kbGVyKV0pCgogICAgICAgZGVmIHRlc3Rfcm9vdF9lbmRwb2ludChzZWxmKToKICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZmV0Y2goIi8iKQogICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwb25zZS5jb2RlKQogICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJIZWxsbywgV29ybGQhIiwgcmVzcG9uc2UuYm9keSkKCgogICBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgICAgdW5pdHRlc3QubWFpbigpCgpDb250cmlidXRpbmcKPT09PT09PT09PT09CgpHZXR0aW5nIFN0YXJ0ZWQKLS0tLS0tLS0tLS0tLS0tCgpUaGlzIHByb2plY3QgdXNlcyBgUG9ldHJ5YF8gdG8gbWFuYWdlIGl0cyBkZXBlbmRlbmNpZXMuIFRvIHNldCB1cCBhIGxvY2FsCmRldmVsb3BtZW50IGVudmlyb25tZW50LCBqdXN0IHJ1bjoKCi4uIGNvZGU6OiBzaAoKICAgIHBvZXRyeSBpbnN0YWxsCgpGb3JtYXR0aW5nIENvZGUKLS0tLS0tLS0tLS0tLS0tCgpUaGUgYEJsYWNrYF8gdG9vbCBpcyB1c2VkIGJ5IHRoaXMgcHJvamVjdCB0byBmb3JtYXQgUHl0aG9uIGNvZGUuIEl0IGlzIGluY2x1ZGVkCmFzIGEgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jeSwgYW5kIHNob3VsZCBiZSBydW4gb24gYWxsIGNvbW1pdHRlZCBjb2RlLiBUbyBmb3JtYXQKY29kZSBwcmlvciB0byBjb21taXR0aW5nIGl0IGFuZCBzdWJtaXR0aW5nIGEgUFIsIHJ1bjoKCi4uIGNvZGU6OiBzaAoKICAgIHBvZXRyeSBydW4gYmxhY2sgLgoKUnVubmluZyBUZXN0cwotLS0tLS0tLS0tLS0tCgpgcHl0ZXN0YF8gaXMgdGhlIHByZWZlcnJlZCB0ZXN0IHJ1bm5lciBmb3IgdGhpcyBwcm9qZWN0LiBJdCBpcyBpbmNsdWRlZCBhcyBhCmRldmVsb3BtZW50IGRlcGVuZGVuY3ksIGFuZCBpcyBjb25maWd1cmVkIHRvIHRyYWNrIGNvZGUgY292ZXJhZ2UsIGBGbGFrZThgXwpzdHlsZSBjb21wbGlhbmNlLCBhbmQgYEJsYWNrYF8gY29kZSBmb3JtYXR0aW5nLiBUZXN0cyBjYW4gYmUgcnVuIGluIHlvdXIKZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgYnkgcnVubmluZzoKCi4uIGNvZGU6OiBzaAoKICAgIHBvZXRyeSBydW4gcHl0ZXN0CgpBZGRpdGlvbmFsbHksIHRlc3RzIGNhbiBiZSBydW4gdXNpbmcgYHRveGBfLCB3aGljaCB3aWxsIHJ1biB0aGUgdGVzdHMgdXNpbmcKbXVsdGlwbGUgdmVyc2lvbnMgb2YgYm90aCBQeXRob24gYW5kIFRvcm5hZG8gdG8gZW5zdXJlIGJyb2FkIGNvbXBhdGliaWxpdHkuCgpDb25maWd1cmluZyBIeXBvdGhlc2lzCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KCk1hbnkgb2YgdGhlIHRlc3RzIG1ha2UgdXNlIG9mIGBIeXBvdGhlc2lzYF8gdG8gc3BlY2lmeSB0aGVpciBleHBlY3RhdGlvbnMgYW5kCmdlbmVyYXRlIGEgbGFyZ2Ugdm9sdW1lIG9mIHJhbmRvbWl6ZWQgdGVzdCBpbnB1dC4gQmVjYXVzZSBvZiB0aGlzLCB0aGUgdGVzdHMgbWF5CnRha2UgYSBsb25nIHRpbWUgdG8gcnVuIG9uIHNsb3dlciBjb21wdXRlcnMuIFR3byBwcm9maWxlcyBhcmUgZGVmaW5lZCBmb3IKSHlwb3RoZXNpcyB0byB1c2Ugd2hpY2ggY2FuIGJlIHNlbGVjdGVkIGJ5IHNldHRpbmcgdGhlIGBgSFlQT1RIRVNJU19QUk9GSUxFYGAKZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgoKYGBjaWBgCiAgUnVucyB0ZXN0cyB1c2luZyB0aGUgZGVmYXVsdCBIeXBvdGhlc2lzIHNldHRpbmdzICgxMDAgZXhhbXBsZXMgcGVyIHRlc3QpIGFuZAogIG5vIGNvbXBsZXRpb24gZGVhZGxpbmUuCgpgYGRldmBgCiAgVGhlIGZhc3Rlc3QgcHJvZmlsZSwgbWVhbnQgZm9yIGxvY2FsIGRldmVsb3BtZW50IG9ubHkuIFVzZXMgb25seSAxMCBleGFtcGxlcwogIHBlciB0ZXN0IHdpdGggbm8gY29tcGxldGlvbiBkZWFkbGluZS4KCgouLiBfQmxhY2s6IGh0dHBzOi8vZ2l0aHViLmNvbS9wc2YvYmxhY2sKLi4gX0ZsYWtlODogaHR0cHM6Ly9mbGFrZTgucHljcWEub3JnLwouLiBfSHlwb3RoZXNpczogaHR0cHM6Ly9oeXBvdGhlc2lzLnJlYWR0aGVkb2NzLmlvLwouLiBfT3BlbkFQSSAzOiBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8KLi4gX09wZW5hcGktY29yZTogaHR0cHM6Ly9naXRodWIuY29tL3AxYzJ1L29wZW5hcGktY29yZQouLiBfUG9ldHJ5OiBodHRwczovL3B5dGhvbi1wb2V0cnkub3JnLwouLiBfVG9ybmFkbzogaHR0cHM6Ly93d3cudG9ybmFkb3dlYi5vcmcvCi4uIF9weXRlc3Q6IGh0dHBzOi8vcHl0ZXN0Lm9yZy8KLi4gX3RveDogaHR0cHM6Ly90b3gucmVhZHRoZWRvY3MuaW8vCg== readmeEtag: '"9ad1fb7d35a6f62acd49ec10a80c036345f5e4be"' readmeLastModified: Mon, 05 Aug 2024 15:09:10 GMT repositoryId: 296513121 description: Tornado OpenAPI 3 request and response validation library. created: '2020-09-18T04:27:02Z' updated: '2024-08-05T15:09:28Z' language: Python archived: false stars: 5 watchers: 3 forks: 4 owner: correl logo: https://avatars.githubusercontent.com/u/289305?v=4 license: MIT repoEtag: '"7a1a90fda31c8812631858e22a0046e2c5d532a65a2e9c8275ddfa4f2a025563"' repoLastModified: Mon, 05 Aug 2024 15:09:28 GMT foundInMaster: true category: - Data Validators - Server Implementations id: 12f81e818f4c0355eff255ec1102d959 - source: openapi3 tags repository: https://github.com/ralphbaer/spec2go v3: true id: bc8dff79cc50f188ccbfcc1bf788789d repositoryMetadata: base64Readme: >- IyBTcGVjMkdvIC0g8J+apyBXb3JrIGluIFByb2dyZXNzIChXSVApIPCfmqcKCioqc3BlYzJnbyBpcyBjdXJyZW50bHkgdW5kZXIgZGV2ZWxvcG1lbnQuIEZlYXR1cmVzIG1heSBiZSBpbmNvbXBsZXRlIGFuZCBkb2N1bWVudGF0aW9uIGlzIHN1YmplY3QgdG8gY2hhbmdlLiBVc2UgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMgaXMgbm90IHJlY29tbWVuZGVkIHVudGlsIHRoZSBvZmZpY2lhbCByZWxlYXNlLioqCgojIyBXaGF0IGlzIFNwZWMyR28/CgoqKlNwZWMyR28qKiBpcyBwb3dlcmZ1bCBjb21tYW5kLWxpbmUgdG9vbCBhdXRvbWF0ZXMgdGhlIGNyZWF0aW9uIG9mIEdvbGFuZyBhcHBsaWNhdGlvbnMgZGlyZWN0bHkgZnJvbSBPcGVuQVBJIDMuMCBhbmQgR28gcGtnLmdvLmRldi90ZXh0L3RlbXBsYXRlIHNwZWNpZmljYXRpb25zLiBXaXRoIGl0cyBkZWZhdWx0IHNldHRpbmcgdG8gZ2VuZXJhdGUgY29kZSBmb2xsb3dpbmcgdGhlIHByaW5jaXBsZXMgb2YgSGV4YWdvbmFsIEFyY2hpdGVjdHVyZSwgU3BlYzJHbyBlbnN1cmVzIGhpZ2ggbW9kdWxhcml0eSBhbmQgZWFzZSBvZiB0ZXN0aW5nLCBvZmZlcmluZyBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIGJ1aWxkaW5nIHJvYnVzdCBhcHBsaWNhdGlvbnMuCgojIyBLZXkgRmVhdHVyZXMKCi0gKipEaXJlY3QgSW50ZWdyYXRpb24gd2l0aCBPcGVuQVBJIDMuMCoqOiBDb252ZXJ0IHlvdXIgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbnMgaW50byB3ZWxsLXN0cnVjdHVyZWQgR29sYW5nIGNvZGUgc2VhbWxlc3NseS4KLSAqKkhleGFnb25hbCBBcmNoaXRlY3R1cmUqKjogQmVnaW4geW91ciBwcm9qZWN0cyB3aXRoIGFuIGFyY2hpdGVjdHVyZSB0aGF0IHN1cHBvcnRzIGFuZCBlbmhhbmNlcyBtYWludGFpbmFiaWxpdHkgYW5kIHNjYWxhYmlsaXR5LgotICoqQ3VzdG9taXphYmxlIENvZGUgR2VuZXJhdGlvbioqOiBVdGlsaXplIEdvIHBrZy5nby5kZXYvdGV4dC90ZW1wbGF0ZSB0ZW1wbGF0ZXMgdG8gc2hhcGUgdGhlIG91dHB1dCBjb2RlIHRvIGJldHRlciBmaXQgeW91ciBwcm9qZWN0IHJlcXVpcmVtZW50cy4KLSAqKkNMSS1CYXNlZCBVdGlsaXR5Kio6IFJ1biBhcyBhIHN0YW5kYWxvbmUgY29tbWFuZC1saW5lIHRvb2wsIGFsbG93aW5nIGludGVncmF0aW9uIGludG8gYW55IHBhcnQgb2YgeW91ciBkZXZlbG9wbWVudCBwaXBlbGluZS4KCiMjIEluc3RhbGxhdGlvbgoKU3BlYzJHbyBpcyBlYXN5IHRvIGluc3RhbGwgd2l0aCBHby4gRW5zdXJlIHlvdSBoYXZlIEdvIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAodmVyc2lvbiAxLjE2IG9yIGxhdGVyIGlzIHJlY29tbWVuZGVkKS4gWW91IGNhbiBpbnN0YWxsIFNwZWMyR28gZ2xvYmFsbHkgdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2gKZ28gaW5zdGFsbCBnaXRodWIuY29tL1JhbHBoYmFlci9zcGVjMmdvQGxhdGVzdApgYGAKClRoaXMgY29tbWFuZCB3aWxsIGluc3RhbGwgc3BlYzJnbyBnbG9iYWxseSBvbiB5b3VyIG1hY2hpbmUsIGFsbG93aW5nIHlvdSB0byBydW4gaXQgZnJvbSBhbnl3aGVyZSB3aXRoaW4geW91ciB0ZXJtaW5hbC4KCiMjIFF1aWNrIFN0YXJ0IEd1aWRlCgojIyMgU2V0dGluZyBVcCBZb3VyIFByb2plY3QKRW5zdXJlIHlvdXIgT3BlbkFQSSAzLjAgWUFNTCBmaWxlcyBhcmUgcmVhZHkuIEZvciBpbnN0YW5jZSwgeW91IG1pZ2h0IGhhdmUgYW4gQVBJIHNwZWNpZmljYXRpb24gZm9yIGEgbGVkZ2VyIGNvbXBvbmVudCB3aXRoaW4gYSBmaW5hbmNpYWwgYXBwbGljYXRpb24gbG9jYXRlZCBhdCAuL3BhdGgvdG8veW91ci9vcGVuYWkvZmlsZS55bWwuCgojIyMgR2VuZXJhdGluZyBDb2RlClRvIGdlbmVyYXRlIEdvbGFuZyBjb2RlIHVzaW5nIFNwZWMyR28sIHVzZSB0aGUgZm9sbG93aW5nIHN5bnRheDoKCmBgYHNoCnNwZWMyZ28gZ2VuZXJhdGUgLWkgLi9wYXRoL3RvL3lvdXIvb3BlbmFpL2ZpbGUueW1sIC1vIC4KYGBgCgpUaGlzIGNvbW1hbmQgd2lsbCBpbnN0cnVjdCBTcGVjMkdvIHRvOgoKLSAtaSAoLS1pbnB1dCk6IFBhdGggdG8geW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZS4KLSAtbyAoLS1vdXRwdXQpOiBPdXRwdXQgZGlyZWN0b3J5IHdoZXJlIHRoZSBnZW5lcmF0ZWQgR29sYW5nIGNvZGUgd2lsbCBiZSBwbGFjZWQuCgojIyMgQ3VzdG9taXppbmcgT3V0cHV0IHdpdGggVGVtcGxhdGVzClRvIGN1c3RvbWl6ZSB0aGUgb3V0cHV0LCB5b3UgY2FuIG1vZGlmeSBvciBjcmVhdGUgbmV3IEdvIHRtcGwgdGVtcGxhdGVzLgoKQSBzaW1wbGUgR28gdG1wbCB0ZW1wbGF0ZSBtaWdodCBsb29rIGxpa2UgdGhpczoKCmBgYAp7e2RlZmluZSAibWFpbiJ9fQpwYWNrYWdlIG1haW4KCmltcG9ydCAoCgkibG9nIgoJIm5ldC9odHRwIgoJLy8gV0FSTklORyEKCS8vIENoYW5nZSB0aGlzIHRvIGEgZnVsbHktcXVhbGlmaWVkIGltcG9ydCBwYXRoCgkvLyBvbmNlIHlvdSBwbGFjZSB0aGlzIGZpbGUgaW50byB5b3VyIHByb2plY3QuCgkvLyBGb3IgZXhhbXBsZSwKCS8vCgkvLyAgICBzdyAiZ2l0aHViLmNvbS9teW5hbWUvbXlyZXBvL3t7LlNvdXJjZUZvbGRlcn19IgoJLy8KCXt7LlBhY2thZ2VOYW1lfX0gIi4ve3suU291cmNlRm9sZGVyfX0iCikKCmZ1bmMgbWFpbigpIHsKCWxvZy5QcmludGxuKCJTZXJ2ZXIgc3RhcnRlZCBvbiA6MzAwMCIpCglodHRwLkhhbmRsZUZ1bmMoIi8iLCBmdW5jKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7CgkJdy5Xcml0ZShbXWJ5dGUoIkhlbGxvLCBXb3JsZCEiKSkKCX0pCglsb2cuRmF0YWwoaHR0cC5MaXN0ZW5BbmRTZXJ2ZSgiOjMwMDAiLCBuaWwpKQp9Cnt7ZW5kfX0KYGBgCgpBZGp1c3QgdGhlIHRlbXBsYXRlIHRvIGluY2x1ZGUgYW55IHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIG9yIGNvZGluZyBzdGFuZGFyZHMgeW91ciBwcm9qZWN0IHJlcXVpcmVzLgoKIyMgQWR2YW5jZWQgQ29uZmlndXJhdGlvbgpZb3UgY2FuIGZ1cnRoZXIgY29uZmlndXJlIFNwZWMyR28gdGhyb3VnaCB2YXJpb3VzIGNvbW1hbmQtbGluZSBmbGFncyB0byBhZGFwdCB0aGUgdG9vbCB0byB5b3VyIHNwZWNpZmljIHdvcmtmbG93cyBhbmQgcHJlZmVyZW5jZXMuIEZvciBleGFtcGxlLCBhZGRpbmcgdmVyYm9zZSBvdXRwdXQsIGNvbmZpZ3VyaW5nIEFQSSB2ZXJzaW9uaW5nLCBvciBzcGVjaWZ5aW5nIGRpZmZlcmVudCB0ZW1wbGF0ZSBwYXRocy4KCiMjIENvbnRyaWJ1dGluZwpXZSB3ZWxjb21lIGNvbnRyaWJ1dGlvbnMgZnJvbSB0aGUgY29tbXVuaXR5ISBJZiB5b3UgaGF2ZSBpbXByb3ZlbWVudHMgb3IgYnVnIGZpeGVzLCBwbGVhc2UgZm9yayB0aGUgcmVwb3NpdG9yeSBhbmQgc3VibWl0IGEgcHVsbCByZXF1ZXN0LiBGb3IgbWFqb3IgY2hhbmdlcywgcGxlYXNlIG9wZW4gYW4gaXNzdWUgZmlyc3QgdG8gZGlzY3VzcyB3aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGNoYW5nZS4KCiMjIExpY2Vuc2UKVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAtIHNlZSB0aGUgTElDRU5TRSBmaWxlIGZvciBkZXRhaWxzLgoKIyMgQWNrbm93bGVkZ21lbnRzClRoYW5rcyB0byB0aGUgT3BlbkFQSSBJbml0aWF0aXZlIGZvciBtYWludGFpbmluZyB0aGUgc3BlY2lmaWNhdGlvbi4KQ29udHJpYnV0b3JzIHdobyBoYXZlIGhlbHBlZCBzaGFwZSBTcGVjMkdvIGludG8gYSByZWxpYWJsZSB0b29sIGZvciBkZXZlbG9wZXJzLgpXZSBob3BlIFNwZWMyR28gd2lsbCBtYWtlIHlvdXIgZGV2ZWxvcG1lbnQgcHJvY2VzcyBtb3JlIGVmZmljaWVudCBhbmQgZW5qb3lhYmxlIQoK readmeEtag: '"e10f80190da2dd2596ad46fe16db3f93db8015b3"' readmeLastModified: Fri, 26 Apr 2024 01:21:04 GMT repositoryId: 792058462 description: >- Streamline Go code generation from OpenAPI 3.0 specs and Go templates using this CLI tool. It implements the Hexagonal Architecture pattern and supports dependency injection through google/wire. created: '2024-04-25T22:33:14Z' updated: '2024-08-09T14:46:49Z' language: Shell archived: false stars: 5 watchers: 1 forks: 0 owner: Ralphbaer logo: https://avatars.githubusercontent.com/u/10503123?v=4 license: MIT repoEtag: '"e9fd4583780c01aba6c471966e34fd724f652aac3cad8f4784ccb566d5cc1ce1"' repoLastModified: Fri, 09 Aug 2024 14:46:49 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/elazar/phanua v3: true repositoryMetadata: base64Readme: >- IyBQaGFudWEKClshW1BIUCBWZXJzaW9uIFN1cHBvcnRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPXBocCZtZXNzYWdlPSUzRT0lMjA3LjQuMCZjb2xvcj1ibHVlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2VsYXphci9waGFudWEpClshW1BhY2thZ2lzdCBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1wYWNrYWdpc3QmbWVzc2FnZT0wLjEuMCZjb2xvcj1ibHVlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2VsYXphci9waGFudWEpClshW1NvZnR3YXJlIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtYmx1ZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShMSUNFTlNFLm1kKQpbIVtCdXkgTWUgYSBDb2ZlZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9idXklMjBtZSUyMGElMjBjb2ZmZWUtZG9uYXRlLWJsdWUuc3ZnKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9ESWttMXFlKQpbIVtQYXRyZW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3BhdHJlb24tZG9uYXRlLWJsdWUuc3ZnKV0oaHR0cHM6Ly9wYXRyZW9uLmNvbS9tYXR0aGV3dHVybGFuZCkKCltPcGVuQVBJIDNdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykgKyBbSmFuZV0oaHR0cHM6Ly9qYW5lLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8pICsgW0N5Y2xlIE9STV0oaHR0cHM6Ly9jeWNsZS1vcm0uZGV2KSA9IPCflKUKClBoYW51YSBidWlsZHMgQ3ljbGUgT1JNIHNjaGVtYXMgZnJvbSBPcGVuQVBJIDMgY29tcG9uZW50IHNjaGVtYXMuCgpSZWxlYXNlZCB1bmRlciB0aGUgW01JVCBMaWNlbnNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZSkuCgoqKldBUk5JTkc6IFRoaXMgcHJvamVjdCBpcyBpbiBhbiBhbHBoYSBzdGF0ZSBvZiBkZXZlbG9wbWVudCBhbmQgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlcyB0aGF0IGJyZWFrIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIEl0IG1heSBjb250YWluIGJ1Z3MsIGxhY2sgZmVhdHVyZXMgb3IgZXh0ZW5zaW9uIHBvaW50cywgb3IgYmUgb3RoZXJ3aXNlIHVuc3VpdGFibGUgZm9yIHByb2R1Y3Rpb24gdXNlLiBVc2VyIGRpc2NyZXRpb24gaXMgYWR2aXNlZC4qKgoKIyMgUmVxdWlyZW1lbnRzCgoqIFBIUCA3LjQrCiogW1BET10oaHR0cHM6Ly93d3cucGhwLm5ldC9wZG8pIGFuZCBbZHJpdmVyXShodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9wZG8uZHJpdmVycy5waHApIGZvciBkZXNpcmVkIGRhdGFiYXNlCgojIyBJbnN0YWxsYXRpb24KClVzZSBbQ29tcG9zZXJdKGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnLykuCgpgYGBzaApjb21wb3NlciByZXF1aXJlIGVsYXphci9waGFudWEKYGBgCgojIyBVc2FnZQoKYGBgcGhwCjw/cGhwCgovKioKICogMS4gQ29uZmlndXJlIHRoZSBQaGFudWEgc2VydmljZSBwcm92aWRlci4KICoKICogVGhlIG5leHQgc2VjdGlvbiBjb3ZlcnMgdGhpcyBzdGVwIGluIG1vcmUgZGV0YWlsLgogKi8KCiRwcm92aWRlciA9IG5ldyBcRWxhemFyXFBoYW51YVxTZXJ2aWNlXFByb3ZpZGVyOwoKLy8gQ29uZmlndXJlICRwcm92aWRlciBhcyBuZWVkZWQgaGVyZS4KCi8qKgogKiAyLiBVc2UgdGhlIFBoYW51YSBzZXJ2aWNlIHByb3ZpZGVyIHRvIGNyZWF0ZSBhIFBoYW51YSBzY2hlbWEgYnVpbGRlci4KICovCgokc2NoZW1hQnVpbGRlciA9ICRwcm92aWRlci0+Z2V0U2NoZW1hQnVpbGRlcigpOwoKLyoqCiAqIDMuIFVzZSB0aGUgUGhhbnVhIHNjaGVtYSBidWlsZGVyIHRvIGdlbmVyYXRlIGEgQ3ljbGUgc2NoZW1hIG9yIE9STSBpbnN0YW5jZS4KICovCgovLyBUbyBjb25maWd1cmUgYW4gZXhpc3RpbmcgT1JNIGluc3RhbmNlIHRvIHVzZSB0aGUgZ2VuZXJhdGVkIHNjaGVtYToKJG9ybSA9IG5ldyBcQ3ljbGVcT1JNXE9STSgvKiAuLi4gKi8pOwovLyAuLi4KJHNjaGVtYSA9ICRzY2hlbWFCdWlsZGVyLT5idWlsZFNjaGVtYSgpOwokb3JtID0gJG9ybS0+d2l0aFNjaGVtYSgkc2NoZW1hKTsKCi8vIFRvIGhhdmUgUGhhbnVhIGNyZWF0ZSBhIG5ldyBPUk0gaW5zdGFuY2Ugd2l0aCB0aGUgZ2VuZXJhdGVkIHNjaGVtYToKJG9ybSA9ICRzY2hlbWFCdWlsZGVyLT5idWlsZE9ybSgpOwpgYGAKCiMjIENvbmZpZ3VyYXRpb24KCkZvciBpdHMgbW9zdCBiYXNpYyB1c2UsIFBoYW51YSBuZWVkcyB0aHJlZSBwYXJhbWV0ZXJzOgoKMS4gdGhlIHBhdGggdG8gYW4gT3BlbkFQSSAzIHNwZWNpZmljYXRpb24gZmlsZSBpbiBKU09OIG9yIFlBTUwgZm9ybWF0OwoyLiBhIFBIUCBuYW1lc3BhY2UgdXNlZCBieSBbZ2VuZXJhdGVkXShodHRwczovL2phbmUucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2RvY3VtZW50YXRpb24vT3BlbkFQSS5odG1sI2dlbmVyYXRpbmcpIFtKYW5lIG1vZGVsIGNsYXNzIGZpbGVzXShodHRwczovL2phbmUucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2RvY3VtZW50YXRpb24vT3BlbkFQSS5odG1sI3VzaW5nKSAod2l0aG91dCB0aGUgYE1vZGVsYCBzdWJuYW1lc3BhY2UgYWRkZWQgYnkgSmFuZSk7IGFuZAozLiBhIEN5Y2xlIE9STSBkYXRhYmFzZSBjb25maWd1cmF0aW9uLgoKWW91IGNhbiBwYXNzIHRoZXNlIHBhcmFtZXRlcnMgdG8gUGhhbnVhIGJ5IHVzaW5nIGFuIGluc3RhbmNlIG9mIHRoZSBQaGFudWEgc2VydmljZSBwcm92aWRlciBjbGFzcyBgRWxhemFyXFBoYW51YVxTZXJ2aWNlXFByb3ZpZGVyYC4KCllvdSBjYW4gcHJvdmlkZSB0aGUgcGF0aCBhbmQgbmFtZXNwYWNlIHByb3ZpZGVkIHVzaW5nIHlvdXIgW0phbmUgY29uZmlndXJhdGlvbiBmaWxlXShodHRwczovL2phbmUucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2RvY3VtZW50YXRpb24vT3BlbkFQSS5odG1sI2NvbmZpZ3VyYXRpb24tZmlsZSkgb3IgYnkgcGFzc2luZyB0aGVtIGRpcmVjdGx5IHRvIHRoZSBzZXJ2aWNlIHByb3ZpZGVyIGluc3RhbmNlLgoKYGBgcGhwCjw/cGhwCgp1c2UgRWxhemFyXFBoYW51YVxTZXJ2aWNlXFByb3ZpZGVyOwoKLy8gVG8gbG9hZCB0aGUgSmFuZSBjb25maWd1cmF0aW9uIGZpbGUsIHByb3ZpZGUgdGhlIHBhdGgKJHByb3ZpZGVyID0gKG5ldyBQcm92aWRlcikKICAgIC0+d2l0aEphbmVDb25maWd1cmF0aW9uKCcvcGF0aC90by8uamFuZS1vcGVuYXBpLnBocCcpOwoKLy8gSWYgZmlsZSBpcyBhbHJlYWR5IGxvYWRlZCwgcHJvdmlkZSB0aGUgY29udGFpbmVkIGFycmF5CiRqYW5lQ29uZmlnID0gcmVxdWlyZSAnLmphbmUtb3BlbmFwaS5waHAnOwokcHJvdmlkZXIgPSAobmV3IFByb3ZpZGVyKQogICAgLT53aXRoSmFuZUNvbmZpZ3VyYXRpb24oJGphbmVDb25maWcpOwoKLy8gVG8gcGFzcyB0aGUgc2FtZSB2YWx1ZXMgZGlyZWN0bHk6CiRwcm92aWRlciA9IChuZXcgUHJvdmlkZXIpCiAgICAtPndpdGhPcGVuQXBpU3BlY1BhdGgoJ3BhdGgvdG8vb3BlbmFwaS5qc29uJykKICAgIC0+d2l0aE5hbWVzcGFjZSgnXFxGb29cXEdlbmVyYXRlZCcpOwpgYGAKCllvdSBjYW4gcHJvdmlkZSB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbiBieSBzcGVjaWZ5aW5nIHRoZSBzYW1lIGFycmF5IHBhc3NlZCB0byBgU3BpcmFsXERhdGFiYXNlXENvbmZpZ1xEYXRhYmFzZUNvbmZpZ2AuIFNlZSBbcmVsYXRlZCBDeWNsZSBkb2N1bWVudGF0aW9uXShodHRwczovL2N5Y2xlLW9ybS5kZXYvZG9jcy9iYXNpYy1jb25uZWN0I2luc3RhbnRpYXRlLWRiYWwpIGZvciBhbiBleGFtcGxlIG9mIHRoaXMgYXJyYXkuCgpgYGBwaHAKPD9waHAKCiRkYXRhYmFzZUNvbmZpZyA9IFsgLyogLi4uICovIF07CiRwcm92aWRlciA9IChuZXcgXEVsYXphclxQaGFudWFcU2VydmljZVxQcm92aWRlcikKICAgIC0+d2l0aERhdGFiYXNlQ29uZmlnKCRkYXRhYmFzZUNvbmZpZyk7CmBgYAoKUHJvdmlkaW5nIHRoZSBkYXRhYmFzZSBjb25maWd1cmF0aW9uIGluIG90aGVyIHdheXMgcmVxdWlyZXMgYW4gZXhwbGFuYXRpb24gb2YgaG93IFBoYW51YSBoYW5kbGVzIGl0cyBkZXBlbmRlbmNpZXMuCgojIyMgT3ZlcnJpZGluZyBEZXBlbmRlbmNpZXMKClRvIG92ZXJyaWRpbmcgYSBkZXBlbmRlbmN5IG9mIFBoYW51YSwgeW91IG11c3QgcHJvdmlkZSBhIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGNvbnRhaW5lciB0aGF0IGluY2x1ZGVzIHRoYXQgZGVwZW5kZW5jeS4KClBoYW51YSBjYW4gdXNlIGFueSBjb250YWluZXIgdGhhdCBpbXBsZW1lbnRzIHRoZSBbUFNSLTExXShodHRwczovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTExLykgc3RhbmRhcmQuIEFuIGV4YW1wbGUgb2Ygc3VjaCBhIGNvbnRhaW5lciBpcyBbUGltcGxlXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvcGltcGxlL3BpbXBsZSksIHdoaWNoIFBoYW51YSB1c2VzIGludGVybmFsbHkuIFBpbXBsZSBpcyB0aGUgcmVjb21tZW5kZWQgY29udGFpbmVyIHRvIHVzZSBpZiB5b3UgYXJlbid0IGFscmVhZHkgdXNpbmcgYSBkaWZmZXJlbnQgb25lLgoKYGBgcGhwCjw/cGhwCgovLyBDcmVhdGUgYSBQaW1wbGUgb3IgUFNSLTExIGNvbnRhaW5lciBpbnN0YW5jZQokY29udGFpbmVyID0gbmV3IFxQaW1wbGVcQ29udGFpbmVyOwoKLy8gVGhlbiBjb25maWd1cmUgUGhhbnVhIHRvIHVzZSBpdAokcHJvdmlkZXIgPSAobmV3IFxFbGF6YXJcUGhhbnVhXFNlcnZpY2VcUHJvdmlkZXIpCiAgICAtPndpdGhEZWxlZ2F0ZUNvbnRhaW5lcigkY29udGFpbmVyKTsKYGBgCgpQaGFudWEgZXhwZWN0cyB0aGlzIGNvbnRhaW5lciB0byB1c2UgW2Z1bGx5LXF1YWxpZmllZCBjbGFzcyBuYW1lc10oaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vbGFuZ3VhZ2UubmFtZXNwYWNlcy5ydWxlcy5waHApIGFzIGVudHJ5IGlkZW50aWZpZXJzLiBCZWxvdyBhcmUgZXhhbXBsZXMgb2YgYWx0ZXJuYXRlIG1ldGhvZHMgb2YgY29uZmlndXJpbmcgUGltcGxlIHRvIHN1cHBseSB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbi4KCmBgYHBocAo8P3BocAoKJGNvbnRhaW5lciA9IG5ldyBcUGltcGxlXENvbnRhaW5lcjsKCi8vIENvbXBhcmVkIHRvIHRoZSBlYXJsaWVyIGV4YW1wbGUgb2YgcGFzc2luZyB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbiB0bwovLyBQaGFudWEgYXMgYW4gYXJyYXksIHRoaXMgaXMgdGhlIG5leHQgZWFzaWVzdCAvIG1vc3QgbG93LWxldmVsIG1ldGhvZCBvZiBkb2luZwovLyBzbyBpZiB5b3UncmUgbm90IGFscmVhZHkgdXNpbmcgYSBjb250YWluZXIgaW4geW91ciBhcHBsaWNhdGlvbi4KdXNlIFNwaXJhbFxEYXRhYmFzZVxDb25maWdcRGF0YWJhc2VDb25maWc7CiRjb250YWluZXJbRGF0YWJhc2VDb25maWc6OmNsYXNzXSA9IGZuKCkgPT4gbmV3IERhdGFiYXNlQ29uZmlnKAogICAgLy8gUGFzcyB0aGUgc2FtZSBhcnJheSBwYXNzZWQgdG8gUHJvdmlkZXItPndpdGhEYXRhYmFzZUNvbmZpZygpIGluIHRoZSBlYXJsaWVyCiAgICAvLyBleGFtcGxlIGhlcmUuCik7CgovLyBJZiB5b3UncmUgYWxyZWFkeSB1c2luZyBhIGNvbnRhaW5lciBhbmQgaXQgaW5jbHVkZXMgYSBjb25maWd1cmVkIGluc3RhbmNlIG9mCi8vIHRoZSBEYXRhYmFzZU1hbmFnZXIgY2xhc3MgdXNlZCBieSBDeWNsZSBPUk0sIHlvdSBjYW4gc3BlY2lmeSB0aGF0IGluc3RlYWQuCnVzZSBTcGlyYWxcRGF0YWJhc2VcQ29uZmlnXERhdGFiYXNlTWFuYWdlcjsKJGNvbnRhaW5lcltEYXRhYmFzZU1hbmFnZXI6OmNsYXNzXSA9IGZuKCkgPT4gbmV3IERhdGFiYXNlTWFuYWdlcigKICAgIG5ldyBEYXRhYmFzZUNvbmZpZygvKiAuLi4gKi8pCik7CgovLyBPciB5b3UgY2FuIHNwZWNpZnkgYW4gaW1wbGVtZW50YXRpb24gb2YgQ3ljbGVcT1JNXEZhY3RvcnlJbnRlcmZhY2UsIHN1Y2ggYXMKLy8gdGhlIEN5Y2xlXE9STVxGYWN0b3J5IGNsYXNzLgp1c2UgU3BpcmFsXERhdGFiYXNlXENvbmZpZ1x7RmFjdG9yeSwgRmFjdG9yeUludGVyZmFjZX07CiRjb250YWluZXJbRmFjdG9yeUludGVyZmFjZTo6Y2xhc3NdID0gZm4oKSA9PiBuZXcgRmFjdG9yeSgKICAgIG5ldyBEYXRhYmFzZU1hbmFnZXIoLyogLi4uICovKQopOwoKLy8gT3IgeW91IGNhbiBzcGVjaWZ5IGFuIGluc3RhbmNlIG9mIEN5Y2xlXE9STVxPUk0uCnVzZSBDeWNsZVxPUk1cT1JNOwokY29udGFpbmVyW09STTo6Y2xhc3NdID0gZm4oKSA9PiBuZXcgT1JNKAogICAgbmV3IEZhY3RvcnkoLyogLi4uICovKQopOwpgYGAKCklmIHlvdSdyZSBhbHJlYWR5IHVzaW5nIFBpbXBsZSBhbmQgd2FudCBQaGFudWEgdG8gdXNlIGRlcGVuZGVuY2llcyB5b3UndmUgcmVnaXN0ZXJlZCBpbiB5b3VyIGNvbnRhaW5lciwgeW91IGNhbiByZWdpc3RlciB5b3VyIGNvbmZpZ3VyZWQgUGhhbnVhIHNlcnZpY2UgcHJvdmlkZXIgaW5zdGFuY2Ugd2l0aCB5b3VyIGNvbnRhaW5lciBhcyBhIFtwcm92aWRlcl0oaHR0cHM6Ly9naXRodWIuY29tL3NpbGV4cGhwL1BpbXBsZSNleHRlbmRpbmctYS1jb250YWluZXIpLgoKYGBgcGhwCjw/cGhwCgokcHJvdmlkZXIgPSBuZXcgXEVsYXphclxQaGFudWFcU2VydmljZVxQcm92aWRlcjsKCi8vIENvbmZpZ3VyZSAkcHJvdmlkZXIgYXMgbmVlZGVkIGhlcmUuCgokY29udGFpbmVyID0gbmV3IFxQaW1wbGVcQ29udGFpbmVyOwokY29udGFpbmVyLT5yZWdpc3RlcigkcHJvdmlkZXIpOwpgYGAKCk9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgdGhlIFBoYW51YSBzZXJ2aWNlIHByb3ZpZGVyIHdpdGggdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLCBpdCdzIHBvc3NpYmxlIHRvIHVzZSB0aGUgY29udGFpbmVyIGl0IGJ1aWxkcyBpbmRlcGVuZGVudGx5LgoKYGBgcGhwCjw/cGhwCgokcHJvdmlkZXIgPSBuZXcgXEVsYXphclxQaGFudWFcU2VydmljZVxQcm92aWRlcjsKCi8vIENvbmZpZ3VyZSAkcHJvdmlkZXIgYXMgbmVlZGVkIGhlcmUuCgovLyBQaW1wbGUKJGNvbnRhaW5lciA9ICRwcm92aWRlci0+Z2V0Q29udGFpbmVyKCk7CgovLyBQU1ItMTEKJHBzckNvbnRhaW5lciA9ICRwcm92aWRlci0+Z2V0UHNyQ29udGFpbmVyKCk7CgovLyBUbyBnZXQgdGhlIHNjaGVtYSBidWlsZGVyOgoKdXNlIEVsYXphclxQaGFudWFcU2NoZW1hXEJ1aWxkZXI7CgovLyBQaW1wbGUKJHNjaGVtYUJ1aWxkZXIgPSAkY29udGFpbmVyW0J1aWxkZXI6OmNsYXNzXTsKCi8vIFBTUi0xMQokc2NoZW1hQnVpbGRlciA9ICRjb250YWluZXItPmdldChCdWlsZGVyOjpjbGFzcyk7CmBgYAoKIyMjIFJvbGUgUmVzb2x2ZXIKCkN5Y2xlIE9STSB1c2VzIHRoZSB0ZXJtIFsicm9sZSJdKGh0dHBzOi8vY3ljbGUtb3JtLmRldi9kb2NzL2FkdmFuY2VkLXNjaGVtYSNzY2hlbWEtcHJvcGVydGllcykgdG8gcmVmZXIgdG8gYSB1bmlxdWUgbmFtZSBmb3IgYW4gZW50aXR5LgoKUGhhbnVhIGRlZmluZXMgdGhlIGludGVyZmFjZSBgRWxhemFyXFBoYW51YVxFbnRpdHlcUm9sZVJlc29sdmVySW50ZXJmYWNlYCBmb3IgY2xhc3NlcyB1c2VkIHRvIGRldGVybWluZSB0aGUgcm9sZSBmb3IgYSBnaXZlbiBlbnRpdHkuCgpUaGlzIGludGVyZmFjZSBjb250YWlucyBhIHNpbmdsZSBtZXRob2QgYGdldFJvbGUoKWAgd2hpY2ggcmVjZWl2ZXMgYSBzaW5nbGUgcGFyYW1ldGVyOiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIE9wZW5BUEkgY29tcG9uZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGl0eS4KCmBnZXRSb2xlKClgIG11c3QgcmV0dXJuIGEgYHN0cmluZ2AgY29udGFpbmluZyB0aGUgZGV0ZXJtaW5lZCByb2xlIGZvciB0aGUgZW50aXR5LgoKVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlIHRoYXQgUGhhbnVhIHVzZXMgYnkgZGVmYXVsdCBpcyBgRWxhemFyXFBoYW51YVxFbnRpdHlcUm9sZVJlc29sdmVyYC4gSXRzIGBnZXRSb2xlKClgIG1ldGhvZCByZXR1cm5zIHRoZSBPcGVuQVBJIGNvbXBvbmVudCBuYW1lIGl0IHJlY2VpdmVzIHNvIHRoYXQgdGhlIGNvbXBvbmVudCBuYW1lIGFuZCByb2xlIGFyZSB0aGUgc2FtZS4KClRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhZGQgYW4gZW50cnkgdG8geW91ciBjb250YWluZXIgdXNpbmcgdGhlIGtleSBgRWxhemFyXFBoYW51YVxFbnRpdHlcUm9sZVJlc29sdmVySW50ZXJmYWNlYCBhbmQgaGF2ZSBpdCByZXNvbHZlIHRvIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UuCgojIyMgQ2xhc3MgUmVzb2x2ZXIKCkVudGl0aWVzIGluIEN5Y2xlIE9STSBzY2hlbWFzIGhhdmUgY29ycmVzcG9uZGluZyBbY2xhc3Nlc10oaHR0cHM6Ly9jeWNsZS1vcm0uZGV2L2RvY3MvYmFzaWMtY3J1ZCNjcmVhdGUtZW50aXR5KS4KClBoYW51YSBkZWZpbmVzIHRoZSBpbnRlcmZhY2UgYEVsYXphclxQaGFudWFcRW50aXR5XENsYXNzUmVzb2x2ZXJJbnRlcmZhY2VgIGZvciBjbGFzc2VzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBjbGFzcyBmb3IgYSBnaXZlbiBlbnRpdHkuCgpUaGlzIGludGVyZmFjZSBjb250YWlucyBhIHNpbmdsZSBtZXRob2QsIGBnZXRDbGFzcygpYCwgd2hpY2ggcmVjZWl2ZXMgYSBzaW5nbGUgcGFyYW1ldGVyOiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIE9wZW5BUEkgY29tcG9uZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGl0eS4KCmBnZXRDbGFzcygpYCBtdXN0IHJldHVybiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIFtmdWxseS1xdWFsaWZpZWQgbmFtZV0oaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vbGFuZ3VhZ2UubmFtZXNwYWNlcy5ydWxlcy5waHApIG9mIHRoZSBjbGFzcyBmb3IgdGhlIGVudGl0eS4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZSB0aGF0IFBoYW51YSB1c2VzIGJ5IGRlZmF1bHQgaXMgYEVsYXphclxQaGFudWFcRW50aXR5XENsYXNzUmVzb2x2ZXJgLiBJdHMgYGdldENsYXNzKClgIG1ldGhvZCByZXR1cm5zIGEgY2xhc3MgbmFtZSBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBuYW1lc3BhY2UgdXNlZCBieSBKYW5lIGZyb20gdGhlIFBoYW51YSBzZXJ2aWNlIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gYW5kIHRoZSBPcGVuQVBJIGNvbXBvbmVudCBuYW1lIGl0IHJlY2VpdmVzLgoKVG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFkZCBhbiBlbnRyeSB0byB5b3VyIGNvbnRhaW5lciB1c2luZyB0aGUga2V5IGBFbGF6YXJcUGhhbnVhXEVudGl0eVxDbGFzc1Jlc29sdmVySW50ZXJmYWNlYCBhbmQgaGF2ZSBpdCByZXNvbHZlIHRvIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UuCgojIyMgVGFibGUgUmVzb2x2ZXIKCkVhY2ggQ3ljbGUgT1JNIGVudGl0eSBoYXMgYSBjb3JyZXNwb25kaW5nIFt0YWJsZV0oaHR0cHM6Ly9jeWNsZS1vcm0uZGV2L2RvY3MvYWR2YW5jZWQtZGVjbGFyYXRpb24jdG8tc3RhcnQpLgoKUGhhbnVhIGRlZmluZXMgdGhlIGludGVyZmFjZSBgRWxhemFyXFBoYW51YVxFbnRpdHlcVGFibGVSZXNvbHZlckludGVyZmFjZWAgZm9yIGNsYXNzZXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRhYmxlIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGVudGl0eS4KClRoaXMgaW50ZXJmYWNlIGNvbnRhaW5zIGEgc2luZ2xlIG1ldGhvZCwgYGdldFRhYmxlKClgLCB3aGljaCByZWNlaXZlcyB0aHJlZSBwYXJhbWV0ZXJzOgoKMS4gYSBgc3RyaW5nYCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBPcGVuQVBJIGNvbXBvbmVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBlbnRpdHk7CjIuIGFuIGluc3RhbmNlIG9mIGBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXFNjaGVtYWAgcmVwcmVzZW50aW5nIHRoZSBjb21wb25lbnQgc2NoZW1hOyBhbmQKMy4gYW4gaW5zdGFuY2Ugb2YgYEN5Y2xlXFNjaGVtYVxEZWZpbml0aW9uXEVudGl0eWAgcmVwcmVzZW50aW5nIHRoZSBlbnRpdHkuCgpgZ2V0VGFibGUoKWAgbXVzdCByZXR1cm4gYSBgc3RyaW5nYCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSB0YWJsZSBmb3IgdGhlIGVudGl0eS4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZSB0aGF0IFBoYW51YSB1c2VzIGJ5IGRlZmF1bHQgaXMgYEVsYXphclxQaGFudWFcRW50aXR5XFRhYmxlUmVzb2x2ZXJgLiBJdHMgYGdldFRhYmxlKClgIG1ldGhvZCByZXR1cm5zIHRoZSBlbnRpdHkgcm9sZSwgYXMgZGV0ZXJtaW5lZCBieSB0aGUgaW5zdGFuY2Ugb2YgYEVsYXphclxQaGFudWFcRW50aXR5XFJvbGVSZXNvbHZlckludGVyZmFjZWAgaW4gdXNlLCBzbyB0aGF0IHRoZSByb2xlIGFuZCB0YWJsZSBuYW1lIGFyZSB0aGUgc2FtZS4gU2VlIHRoZSBbIlJvbGUgUmVzb2x2ZXIiXSgjcm9sZS1yZXNvbHZlcikgc2VjdGlvbiBhYm92ZSBmb3IgZnVydGhlciBkZXRhaWxzLgoKVG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFkZCBhbiBlbnRyeSB0byB5b3VyIGNvbnRhaW5lciB1c2luZyB0aGUga2V5IGBFbGF6YXJcUGhhbnVhXEVudGl0eVxUYWJsZVJlc29sdmVySW50ZXJmYWNlYCBhbmQgaGF2ZSBpdCByZXNvbHZlIHRvIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UuCgojIyMgTmFtZSBSZXNvbHZlcgoKRW50aXRpZXMgaW4gQ3ljbGUgT1JNIGNvbnRhaW4gW2ZpZWxkc10oaHR0cHM6Ly9jeWNsZS1vcm0uZGV2L2RvY3MvYWR2YW5jZWQtZHluYW1pYy1zY2hlbWEjdXNpbmctc2NoZW1hLWJ1aWxkZXIpIHRoYXQgaGF2ZSBuYW1lcy4KClBoYW51YSBkZWZpbmVzIHRoZSBpbnRlcmZhY2UgYEVsYXphclxQaGFudWFcRmllbGRcTmFtZVJlc29sdmVySW50ZXJmYWNlYCBmb3IgY2xhc3NlcyB1c2VkIHRvIGRldGVybWluZSB0aGUgbmFtZSBvZiBhIGZpZWxkLgoKVGhpcyBpbnRlcmZhY2UgY29udGFpbnMgYSBzaW5nbGUgbWV0aG9kLCBgZ2V0TmFtZSgpYCwgd2hpY2ggcmVjZWl2ZXMgdGhyZWUgcGFyYW1ldGVyczoKCjEuIGEgYHN0cmluZ2AgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgT3BlbkFQSSBjb21wb25lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgZW50aXR5IGNvbnRhaW5pbmcgdGhlIGZpZWxkOwoyLiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBwcm9wZXJ0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaWVsZDsgYW5kCjMuIGFuIGluc3RhbmNlIG9mIGBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXFNjaGVtYWAgcmVwcmVzZW50aW5nIHRoZSBwcm9wZXJ0eSBzY2hlbWEuCgpgZ2V0TmFtZSgpYCBtdXN0IHJldHVybiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgdG8gYXNzaWduIHRvIHRoZSBmaWVsZC4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZSB0aGF0IFBoYW51YSB1c2VzIGJ5IGRlZmF1bHQgaXMgYEVsYXphclxQaGFudWFcRmllbGRcTmFtZVJlc29sdmVyYC4gSXRzIGBnZXROYW1lKClgIG1ldGhvZCByZXR1cm5zIHRoZSBPcGVuQVBJIHByb3BlcnR5IG5hbWUgaXQgcmVjZWl2ZXMgc28gdGhhdCB0aGUgcHJvcGVydHkgbmFtZSBhbmQgZmllbGQgbmFtZSBhcmUgdGhlIHNhbWUuCgpUbyBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYWRkIGFuIGVudHJ5IHRvIHlvdXIgY29udGFpbmVyIHVzaW5nIHRoZSBrZXkgYEVsYXphclxQaGFudWFcRmllbGRcTmFtZVJlc29sdmVySW50ZXJmYWNlYCBhbmQgaGF2ZSBpdCByZXNvbHZlIHRvIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UuCgojIyMgQ29sdW1uIFJlc29sdmVyCgpDeWNsZSBPUk0gZW50aXR5IGZpZWxkcyBoYXZlIGNvcnJlc3BvbmRpbmcgdGFibGUgW2NvbHVtbnNdKGh0dHBzOi8vY3ljbGUtb3JtLmRldi9kb2NzL2FkdmFuY2VkLWRlY2xhcmF0aW9uI2NvbHVtbnMtYW5kLWFic3RyYWN0LXR5cGVzKS4KClBoYW51YSBkZWZpbmVzIHRoZSBpbnRlcmZhY2UgYEVsYXphclxQaGFudWFcRmllbGRcQ29sdW1uUmVzb2x2ZXJJbnRlcmZhY2VgIGZvciBjbGFzc2VzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gZm9yIGEgZmllbGQuCgpUaGlzIGludGVyZmFjZSBjb250YWlucyBhIHNpbmdsZSBtZXRob2QsIGBnZXRDb2x1bW4oKWAsIHdoaWNoIHJlY2VpdmVzIHRocmVlIHBhcmFtZXRlcnM6CgoxLiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIE9wZW5BUEkgY29tcG9uZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGl0eSBjb250YWluaW5nIHRoZSBmaWVsZDsKMi4gYSBgc3RyaW5nYCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQgcHJvcGVydHkgY29ycmVzcG9uZGluZyB0byB0aGUgZmllbGQ7IGFuZAozLiBhbiBpbnN0YW5jZSBvZiBgSmFuZVxDb21wb25lbnRcT3BlbkFwaTNcSnNvblNjaGVtYVxNb2RlbFxTY2hlbWFgIHJlcHJlc2VudGluZyB0aGUgcHJvcGVydHkgc2NoZW1hLgoKYGdldENvbHVtbigpYCBtdXN0IHJldHVybiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgdG8gYXNzaWduIHRvIHRoZSBjb2x1bW4uCgpUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpbnRlcmZhY2UgdGhhdCBQaGFudWEgdXNlcyBieSBkZWZhdWx0IGlzIGBFbGF6YXJcUGhhbnVhXEZpZWxkXENvbHVtblJlc29sdmVyYC4gSXRzIGBnZXRDb2x1bW4oKWAgbWV0aG9kIHJldHVybnMgdGhlIE9wZW5BUEkgcHJvcGVydHkgbmFtZSBpdCByZWNlaXZlcyBzbyB0aGF0IHRoZSBwcm9wZXJ0eSBuYW1lIGFuZCBjb2x1bW4gbmFtZSBhcmUgdGhlIHNhbWUuCgpUbyBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYWRkIGFuIGVudHJ5IHRvIHlvdXIgY29udGFpbmVyIHVzaW5nIHRoZSBrZXkgYEVsYXphclxQaGFudWFcRmllbGRcQ29sdW1uUmVzb2x2ZXJJbnRlcmZhY2VgIGFuZCBoYXZlIGl0IHJlc29sdmUgdG8gYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZS4KCiMjIyBUeXBlIFJlc29sdmVyCgpFYWNoIEN5Y2xlIE9STSBlbnRpdHkgZmllbGQgaGFzIGEgY29ycmVzcG9uZGluZyBbYWJzdHJhY3QgdHlwZV0oaHR0cHM6Ly9jeWNsZS1vcm0uZGV2L2RvY3MvYWR2YW5jZWQtZGVjbGFyYXRpb24jY29sdW1ucy1hbmQtYWJzdHJhY3QtdHlwZXMtYWJzdHJhY3QtdHlwZXMpLgoKUGhhbnVhIGRlZmluZXMgdGhlIGludGVyZmFjZSBgRWxhemFyXFBoYW51YVxGaWVsZFxUeXBlUmVzb2x2ZXJJbnRlcmZhY2VgIGZvciBjbGFzc2VzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0eXBlIGZvciBhIGZpZWxkLgoKVGhpcyBpbnRlcmZhY2UgY29udGFpbnMgYSBzaW5nbGUgbWV0aG9kLCBgZ2V0VHlwZSgpYCwgd2hpY2ggcmVjZWl2ZXMgdGhyZWUgcGFyYW1ldGVyczoKCjEuIGEgYHN0cmluZ2AgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgT3BlbkFQSSBjb21wb25lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgZW50aXR5IGNvbnRhaW5pbmcgdGhlIGZpZWxkOwoyLiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBwcm9wZXJ0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaWVsZDsgYW5kCjMuIGFuIGluc3RhbmNlIG9mIGBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXFNjaGVtYWAgcmVwcmVzZW50aW5nIHRoZSBwcm9wZXJ0eSBzY2hlbWEuCgpgZ2V0VHlwZSgpYCBtYXkgcmV0dXJuIGEgYHN0cmluZ2AgY29udGFpbmluZyB0aGUgdHlwZSB0byBhc3NpZ24gdG8gdGhlIGNvbHVtbiBvciBgbnVsbGAgaWYgaXQncyB1bmFibGUgdG8gcmVzb2x2ZSB0aGUgY29sdW1uIHRvIGEgdHlwZS4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZSB0aGF0IFBoYW51YSB1c2VzIGJ5IGRlZmF1bHQgaXMgYEVsYXphclxQaGFudWFcRmllbGRcVHlwZVJlc29sdmVyYC4gSXRzIGBnZXRUeXBlKClgIG1ldGhvZCByZXR1cm5zIGEgdHlwZSBpdCBkZXJpdmVzIGZyb20gdGhlIFtwcm9wZXJ0eSB0eXBlIGFuZCBmb3JtYXRdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykgYXMgd2VsbCBhcyBbdmFsaWRhdGlvbiBjb25zdHJhaW50c10oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI3NjaGVtYU9iamVjdCkgb24gdGhlIHByb3BlcnR5IHZhbHVlIChlLmcuIGBtaW5pbXVtYCwgYGV4Y2x1c2l2ZU1pbmltdW1gLCBgbWF4aW11bWAsIG9yIGBleGNsdXNpdmVNYXhpbXVtYCBmb3IgbnVtZXJpYyB2YWx1ZXMsIGBtaW5MZW5ndGhgIGFuZCBgbWF4TGVuZ3RoYCBmb3Igc3RyaW5nIC8gdGV4dCB2YWx1ZXMpLiBMYWNraW5nIHRoZXNlIGNvbnN0cmFpbnRzLCBgZ2V0VHlwZSgpYCByZXR1cm5zIHRoZSBsYXJnZXN0IGF2YWlsYWJsZSB0eXBlIHRvIGFsbG93IGZvciBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlcy4KCioqTk9URTogVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBoYW5kbGUgbmVzdGVkIG9iamVjdHMsIGFycmF5cywgb3IgcmVmZXJlbmNlcyB0byBvdGhlciBjb21wb25lbnQgc2NoZW1hcy4gVGhpcyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuKioKCkluIHRoZSBldmVudCBvZiBiZWluZyB1bmFibGUgdG8gcmVzb2x2ZSB0byBhIG1vcmUgc3BlY2lmaWMgdHlwZSwgYGdldFR5cGUoKWAgc3VwcG9ydHMgZmFsbGluZyBiYWNrIHRvIGEgc3BlY2lmaWVkIHR5cGUuIFRvIHJlZHVjZSBjb25maWd1cmF0aW9uIG5lZWRlZCBmb3IgY29tbW9uIHVzZSBjYXNlcywgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgZmFsbGJhY2sgdHlwZSBpcyBgJ3N0cmluZydgLgoKWW91IG1heSB3YW50IGNoYW5nZSB0aGlzIGZhbGxiYWNrIHR5cGUgaWYsIGZvciBleGFtcGxlLCB5b3Ugd2FudCB0byBjb21wb3NlIGBUeXBlUmVzb2x2ZXJgIHdpdGggeW91ciBvd24gcmVzb2x2ZXIgaW1wbGVtZW50YXRpb24gdG8gcmVzb2x2ZSB0eXBlcyB0aGF0IGBUeXBlUmVzb2x2ZXJgIGRvZXNuJ3QgY292ZXIuIEluIHRoYXQgY2FzZSwgeW91IHdvdWxkIHNldCB0aGUgZmFsbGJhY2sgdHlwZSB0byBgbnVsbGAgc28gdGhhdCB5b3VyIHJlc29sdmVyIGtub3dzIHdoZW4gYFR5cGVSZXNvbHZlcmAgY2FuJ3QgcmVzb2x2ZSBhIGdpdmVuIHR5cGUuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2Ygb3ZlcnJpZGluZyB0aGUgZmFsbGJhY2sgdHlwZSB1c2luZyBhIFBpbXBsZSBjb250YWluZXIuCgpgYGBwaHAKPD9waHAKCnVzZSBFbGF6YXJcUGhhbnVhXEZpZWxkXFR5cGVSZXNvbHZlcjsKJGNvbnRhaW5lcltUeXBlUmVzb2x2ZXI6OmNsYXNzXSA9IG5ldyBUeXBlUmVzb2x2ZXIoCiAgICBudWxsIC8vIGZhbGxiYWNrIHZhbHVlIGdvZXMgaGVyZQopOwpgYGAKClRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHR5cGUgcmVzb2x2ZXIgaW1wbGVtZW50YXRpb24gd2l0aCB5b3VyIG93biwgYWRkIGFuIGVudHJ5IHRvIHlvdXIgY29udGFpbmVyIHVzaW5nIHRoZSBrZXkgYEVsYXphclxQaGFudWFcRmllbGRcVHlwZVJlc29sdmVySW50ZXJmYWNlYCBhbmQgaGF2ZSBpdCByZXNvbHZlIHRvIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UuCgpJZiB5b3Ugd2FudCB0byB1c2UgdGhlIGRlZmF1bHQgdHlwZSByZXNvbHZlciwgeW91ciBvd24gcmVzb2x2ZXIsIG9yIGFub3RoZXIgcmVzb2x2ZXIgdG9nZXRoZXIsIHlvdSBjYW4gY29tcG9zZSB0aGVtIHVzaW5nIGBFbGF6YXJcUGhhbnVhXEZpZWxkXENvbXBvc2l0ZUZpZWxkUmVzb2x2ZXJgLCB3aGljaCB3aWxsIHVzZSByZXNvbHZlcnMgaW4gdHVybiB1bnRpbCBvbmUgcmV0dXJucyBhIHR5cGUuCgpgYGBwaHAKPD9waHAKCnVzZSBFbGF6YXJcUGhhbnVhXEZpZWxkXENvbXBvc2l0ZVR5cGVSZXNvbHZlcjsKdXNlIEVsYXphclxQaGFudWFcRmllbGRcVHlwZVJlc29sdmVyOwp1c2UgRWxhemFyXFBoYW51YVxGaWVsZFxUeXBlUmVzb2x2ZXJJbnRlcmZhY2U7CnVzZSBNeVxDdXN0b21UeXBlUmVzb2x2ZXI7CgovLyBJZiB5b3Ugd2FudCB5b3VyIHJlc29sdmVyIHRvIGJlIHRyaWVkIGZpcnN0OgokY29udGFpbmVyW1R5cGVSZXNvbHZlckludGVyZmFjZTo6Y2xhc3NdID0gbmV3IENvbXBvc2l0ZVR5cGVSZXNvbHZlcigKICAgIG5ldyBDdXN0b21UeXBlUmVzb2x2ZXIoKSwKICAgIG5ldyBUeXBlUmVzb2x2ZXIoKSwKKTsKCi8vIElmIHlvdSB3YW50IHRoZSBkZWZhdWx0IHJlc29sdmVyIHRvIGJlIHRyaWVkIGZpcnN0OgokY29udGFpbmVyW1R5cGVSZXNvbHZlckludGVyZmFjZTo6Y2xhc3NdID0gbmV3IENvbXBvc2l0ZVR5cGVSZXNvbHZlcigKICAgIG5ldyBUeXBlUmVzb2x2ZXIoCiAgICAgICAgbnVsbCAvLyBSZXF1aXJlZCBmb3IgQ29tcG9zaXRlVHlwZVJlc29sdmVyIHRvIGZhbGwgYmFjayB0byB5b3VyIHJlc29sdmVyCiAgICApLAogICAgbmV3IEN1c3RvbVR5cGVSZXNvbHZlcigpLAopOwpgYGAKCiMjIyBQcmltYXJ5IFJlc29sdmVyCgpFYWNoIHRhYmxlIG11c3QgaGF2ZSBhIFtwcmltYXJ5IGluZGV4XShodHRwczovL2N5Y2xlLW9ybS5kZXYvZG9jcy9hZHZhbmNlZC1kZWNsYXJhdGlvbiNwcmltYXJ5LWluZGV4KSBvbiBvbmUgb3IgbW9yZSBjb2x1bW5zIGZvciBhIGNvbXBpbGVkIEN5Y2xlIE9STSBzY2hlbWEgdG8gaW5jbHVkZSBpdC4KClRoaXMgY2lyY3Vtc3RhbmNlIGlzIGEgbGltaXRhdGlvbiBvZiB0aGUgY29tcGlsZXIgdGhhdCBoYW5kbGVzIFtjb21waWxpbmcgZW50aXRpZXMgZnJvbSB0aGUgcmVnaXN0cnldKGh0dHBzOi8vY3ljbGUtb3JtLmRldi9kb2NzL2FkdmFuY2VkLXNjaGVtYS1idWlsZGVyI21hbnVhbGx5LWRlZmluZS1lbnRpdHkpIGludG8gYSBzY2hlbWE6IGl0IFtza2lwcyBlbnRpdGllcyB3aXRob3V0IGEgcHJpbWFyeSBpbmRleF0oaHR0cHM6Ly9naXRodWIuY29tL2N5Y2xlL3NjaGVtYS1idWlsZGVyL2Jsb2IvdjEuMi4wL3NyYy9Db21waWxlci5waHAjTDY4KS4KClRvIGRyYXcgYXR0ZW50aW9uIHRvIHRoaXMgYmVoYXZpb3IsIFBoYW51YSB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHByaW1hcnkgaW5kZXggcmVzb2x1dGlvbiBmYWlscyBmb3IgYSBnaXZlbiBlbnRpdHkuIFRvIGF2b2lkIHRoaXMsIHlvdSBtdXN0IGV4cGxpY2l0bHkgZXhjbHVkZSBhbnkgZW50aXRpZXMgaW4geW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24gdGhhdCB5b3UgZG8gbm90IHdhbnQgdG8gaW5jbHVkZSBpbiB0aGUgZ2VuZXJhdGVkIEN5Y2xlIE9STSBzY2hlbWEuIFRoZSBbbmV4dCBzZWN0aW9uXSgjZW50aXR5LXJlc29sdmVyKSBkaXNjdXNzZXMgdGhpcyBmdXJ0aGVyLgoKUGhhbnVhIGRlZmluZXMgdGhlIGludGVyZmFjZSBgRWxhemFyXFBoYW51YVxGaWVsZFxQcmltYXJ5UmVzb2x2ZXJJbnRlcmZhY2VgIGZvciBjbGFzc2VzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBnaXZlbiBmaWVsZCBzaG91bGQgYmUgcGFydCBvZiB0aGUgcHJpbWFyeSBpbmRleCBvZiB0aGUgdGFibGUgY29udGFpbmluZyBpdHMgcmVzcGVjdGl2ZSBjb2x1bW4uCgpUaGlzIGludGVyZmFjZSBjb250YWlucyBhIHNpbmdsZSBtZXRob2QsIGBpc1ByaW1hcnkoKWAsIHdoaWNoIHJlY2VpdmVzIHRocmVlIHBhcmFtZXRlcnM6CgoxLiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIE9wZW5BUEkgY29tcG9uZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGl0eSBjb250YWluaW5nIHRoZSBmaWVsZDsKMi4gYSBgc3RyaW5nYCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQgcHJvcGVydHkgY29ycmVzcG9uZGluZyB0byB0aGUgZmllbGQ7IGFuZAozLiBhbiBpbnN0YW5jZSBvZiBgSmFuZVxDb21wb25lbnRcT3BlbkFwaTNcSnNvblNjaGVtYVxNb2RlbFxTY2hlbWFgIHJlcHJlc2VudGluZyB0aGUgcHJvcGVydHkgc2NoZW1hLgoKYGlzUHJpbWFyeSgpYCBtdXN0IHJldHVybiBhIGBib29sZWFuYCB2YWx1ZSB3aGVyZSBhIHZhbHVlIG9mIGB0cnVlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgZ2l2ZW4gZmllbGQgaXMgcGFydCBvZiB0aGUgcHJpbWFyeSBpbmRleCBmb3IgdGhlIGFzc29jaWF0ZWQgdGFibGUgYW5kIGEgdmFsdWUgb2YgYGZhbHNlYCBpbmRpY2F0ZXMgdGhhdCBpdCdzIG5vdC4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZSB0aGF0IFBoYW51YSB1c2VzIGJ5IGRlZmF1bHQgaXMgYEVsYXphclxQaGFudWFcRmllbGRcUHJpbWFyeVJlc29sdmVyYC4gSXRzIGBpc1ByaW1hcnkoKWAgbWV0aG9kIHJldHVybnMgYHRydWVgIGlmIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGlzIGBpZGAgb3IgYGZhbHNlYCBvdGhlcndpc2UuIFRoaXMgY2xhc3MgYXNzdW1lcyB0aGF0IHRoZSBwcm9wZXJ0eSBhbmQgY29sdW1uIG5hbWVzIGFyZSB0aGUgc2FtZSwgd2hpY2ggaXMgdGhlIGNhc2Ugd2hlbiB1c2luZyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBgRWxhemFyXFBoYW51YVxGaWVsZFxDb2x1bW5SZXNvbHZlckludGVyZmFjZWAgZGV0YWlsZWQgaW4gdGhlIFsiQ29sdW1uIFJlc29sdmVyIl0oI2NvbHVtbi1yZXNvbHZlcikgc2VjdGlvbiBhYm92ZS4KCklmIHlvdXIgcHJvcGVydHkgYW5kIGNvbHVtbiBuYW1lcyBhcmUgbm90IGNvbnNpc3RlbnQgd2l0aCBlYWNoIG90aGVyLCBvciBpZiBhbnkgb2YgeW91ciB0YWJsZXMgaGF2ZSBhIHByaW1hcnkgaW5kZXggdGhhdCBpbmNsdWRlcyBtb3JlIHRoYW4gb25lIGNvbHVtbiwgY3JlYXRlIHlvdXIgb3duIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlIHRvIHN1aXQgdGhlIG5lZWRzIG9mIHlvdXIgZGF0YWJhc2UuCgpUbyBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYWRkIGFuIGVudHJ5IHRvIHlvdXIgY29udGFpbmVyIHVzaW5nIHRoZSBrZXkgYEVsYXphclxQaGFudWFcRmllbGRcUHJpbWFyeVJlc29sdmVySW50ZXJmYWNlYCBhbmQgaGF2ZSBpdCByZXNvbHZlIHRvIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UuCgojIyMgRW50aXR5IFJlc29sdmVyCgpQaGFudWEgcmVwcmVzZW50cyB0aGUgcHJvY2VzcyBvZiBjb252ZXJ0aW5nIGFuIE9wZW5BUEkgY29tcG9uZW50IHRvIGEgQ3ljbGUgT1JNIGVudGl0eSB3aXRoIHRoZSBpbnRlcmZhY2UgYEVsYXphclxQaGFudWFcRW50aXR5XEVudGl0eVJlc29sdmVySW50ZXJmYWNlYC4KClRoaXMgaW50ZXJmYWNlIGNvbnRhaW5zIGEgc2luZ2xlIG1ldGhvZCwgYGdldEVudGl0eSgpYCwgd2hpY2ggcmVjZWl2ZXMgdHdvIHBhcmFtZXRlcnM6CgoxLiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIE9wZW5BUEkgY29tcG9uZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGl0eTsgYW5kCjIuIGFuIGluc3RhbmNlIG9mIGBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXFNjaGVtYWAgcmVwcmVzZW50aW5nIHRoZSBjb21wb25lbnQgc2NoZW1hLgoKYGdldEVudGl0eSgpYCBtdXN0IHJldHVybiBhIHBvcHVsYXRlZCBpbnN0YW5jZSBvZiBgQ3ljbGVcU2NoZW1hXERlZmluaXRpb25cRW50aXR5YCByZXByZXNlbnRpbmcgdGhlIGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBjb21wb25lbnQgb3IgYG51bGxgIGlmIGl0IGZhaWxzIHRvIHJlc29sdmUgdGhlIGNvbXBvbmVudCB0byBhbiBlbnRpdHkuCgpUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpbnRlcmZhY2UgdGhhdCBQaGFudWEgdXNlcyBieSBkZWZhdWx0IGlzIGBFbGF6YXJcUGhhbnVhXEVudGl0eVxFbnRpdHlSZXNvbHZlcmAuIEl0IGNvbXBvc2VzIGFuIGltcGxlbWVudGF0aW9uIG9mIGVhY2ggb2YgYEVsYXphclxQaGFudWFcRW50aXR5XFJvbGVSZXNvbHZlckludGVyZmFjZWAgYW5kIGBFbGF6YXJcUGhhbnVhXEVudGl0eVxDbGFzc1Jlc29sdmVySW50ZXJmYWNlYCwgd2hpY2ggaXQgdXNlcyB0byBkZXRlcm1pbmUgdGhlIGVudGl0eSBbcm9sZV0oI3JvbGUtcmVzb2x2ZXIpIGFuZCBbY2xhc3NdKCNjbGFzcy1yZXNvbHZlcikgcmVzcGVjdGl2ZWx5LgoKSXQgYWxzbyBwcm92aWRlcyBmb3IgdGhlIGV4Y2x1c2lvbiBvZiBzcGVjaWZpYyBjb21wb25lbnRzIGZyb20gaGF2aW5nIGFuIGVudGl0eSBpbiB0aGUgZ2VuZXJhdGVkIHNjaGVtYSwgc3VjaCBhcyB0aG9zZSBjb21wb25lbnRzIHdoZXJlIHRoZSBjb3JyZXNwb25kaW5nIGVudGl0eSB3b3VsZCBub3QgaGF2ZSBhIFtwcmltYXJ5IGluZGV4XSgjcHJpbWFyeS1yZXNvbHZlcikuIFRoZSBlYXNpZXN0IHdheSB0byBleGNsdWRlIG9uZSBvciBtb3JlIGNvbXBvbmVudHMgaXMgYnkgdXNpbmcgdGhlIHNlcnZpY2UgcHJvdmlkZXI6IGJ5IGRlZmF1bHQsIGl0IGhhbmRsZXMgaW5qZWN0aW5nIGEgY2FsbGJhY2sgdG8gZmlsdGVyIGNvbXBvbmVudHMgaW50byBgRW50aXR5UmVzb2x2ZXJgLgoKYGBgcGhwCjw/cGhwCgp1c2UgSmFuZVxDb21wb25lbnRcT3BlbkFwaTNcSnNvblNjaGVtYVxNb2RlbFxTY2hlbWE7CgokY29tcG9uZW50RmlsdGVyID0gZm4gKAogICAgc3RyaW5nICRjb21wb25lbnROYW1lLAogICAgU2NoZW1hICRjb21wb25lbnRTY2hlbWEKKTogYm9vbCA9PgogICAgIWluX2FycmF5KCRjb21wb25lbnROYW1lLCBbCiAgICAgICAgLy8gVGhlc2UgY29tcG9uZW50cyBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgc2NoZW1hCiAgICAgICAgJ2NvbXBvbmVudDEnLAogICAgICAgICdjb21wb25lbnQyJywKICAgICAgICAvLyAuLi4KICAgIF0pOwoKJHByb3ZpZGVyID0gKG5ldyBcRWxhemFyXFBoYW51YVxTZXJ2aWNlXFByb3ZpZGVyKQogICAgLT53aXRoQ29tcG9uZW50RmlsdGVyKCRjb21wb25lbnRGaWx0ZXIpOwpgYGAKCllvdSBjYW4gYWxzbyBleGNsdWRlIGNvbXBvbmVudHMgYnkgW292ZXJyaWRpbmddKCNvdmVycmlkaW5nLWRlcGVuZGVuY2llcykgdGhlIGBFbnRpdHlSZXNvbHZlcmAgaW5zdGFuY2UgdXNlZCBieSBkZWZhdWx0IHdpdGggb25lIHRoYXQgaW5jbHVkZXMgYSBjYWxsYmFjayB0byBmaWx0ZXIgZW50aXRpZXMgaW4gdGhlIGAkZmlsdGVyQ2FsbGJhY2tgIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBvZiBgRW50aXR5UmVzb2x2ZXJgIG9yIGRvZXMgc29tZXRoaW5nIHNpbWlsYXIgZm9yIHlvdXIgb3duIGVudGl0eSByZXNvbHZlciBpbXBsZW1lbnRhdGlvbi4gVGhlIGV4YW1wbGUgYmVsb3cgZG9lcyB0aGlzIHVzaW5nIGEgUGltcGxlIGNvbnRhaW5lci4KCmBgYHBocAo8P3BocAoKdXNlIEVsYXphclxQaGFudWFcewogICAgRW50aXR5XENsYXNzUmVzb2x2ZXJJbnRlcmZhY2UsCiAgICBFbnRpdHlcRW50aXR5UmVzb2x2ZXIsCiAgICBFbnRpdHlcRW50aXR5UmVzb2x2ZXJJbnRlcmZhY2UsCiAgICBFbnRpdHlcUm9sZVJlc29sdmVySW50ZXJmYWNlLAogICAgU2VydmljZVxQcm92aWRlcgp9Owp1c2UgSmFuZVxDb21wb25lbnRcT3BlbkFwaTNcSnNvblNjaGVtYVxNb2RlbFxTY2hlbWE7CgokcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXI7CgovKioKICogMS4gR2V0IGEgY29udGFpbmVyIGZyb20gdGhlIFBoYW51YSBzZXJ2aWNlIHByb3ZpZGVyIHRvIG92ZXJyaWRlIHNvbWUgb2YgdGhlCiAqICAgIGRlZmF1bHQgZGVwZW5kZW5jaWVzIGl0IGRlZmluZXMuCiAqLwoKLy8gUGltcGxlCiRwaGFudWFDb250YWluZXIgPSAkcHJvdmlkZXItPmdldENvbnRhaW5lcigpOwoKLy8gUFNSLTExCiRwaGFudWFDb250YWluZXIgPSAkcHJvdmlkZXItPmdldFBzckNvbnRhaW5lcigpOwoKLyoqCiAqIDIuIEluIHlvdXIgb3duIGNvbnRhaW5lciwgdXNlIHRoZSBrZXkgRW50aXR5UmVzb2x2ZXJJbnRlcmZhY2U6OmNsYXNzIGFuZAogKiAgICBhc3NpZ24gaXQgYW4gaW5zdGFuY2Ugb2YgRW50aXR5UmVzb2x2ZXIgb3IgeW91ciBvd24gZW50aXR5IHJlc29sdmVyCiAqICAgIGltcGxlbWVudGF0aW9uLCBpbmplY3RpbmcgYW55IGRlZmF1bHQgUGhhbnVhIGRlcGVuZGVuY2llcyB0aGF0IHlvdSBuZWVkLgogKiAgICBCZWxvdyBpcyBhbiBleGFtcGxlIG9mIGRvaW5nIHRoaXMgdXNpbmcgUGltcGxlIGNvbnRhaW5lcnMuCiAqLwoKJHlvdXJDb250YWluZXIgPSBuZXcgXFBpbXBsZVxDb250YWluZXI7CiR5b3VyQ29udGFpbmVyW0VudGl0eVJlc29sdmVySW50ZXJmYWNlOjpjbGFzc10gPSBmbigpID0+IG5ldyBFbnRpdHlSZXNvbHZlcigKICAgICRwaGFudWFDb250YWluZXJbUm9sZVJlc29sdmVySW50ZXJmYWNlOjpjbGFzc10sCiAgICAkcGhhbnVhQ29udGFpbmVyW0NsYXNzUmVzb2x2ZXJJbnRlcmZhY2U6OmNsYXNzXSwKICAgIGZ1bmN0aW9uICgKICAgICAgICBzdHJpbmcgJGNvbXBvbmVudE5hbWUsCiAgICAgICAgc3RyaW5nICRwcm9wZXJ0eU5hbWUsCiAgICAgICAgU2NoZW1hICRwcm9wZXJ0eVNjaGVtYQogICAgKTogYm9vbCB7CiAgICAgICAgLyogcmV0dXJuIFRSVUUgdG8gaW5jbHVkZSBvciBGQUxTRSB0byBleGNsdWRlIGNvbXBvbmVudCAqLwogICAgfQopOwoKLyoqCiAqIDMuIFNldCB5b3VyIGNvbnRhaW5lciBhcyB0aGUgZGVsZWdhdGUgY29udGFpbmVyIGluIHRoZSBQaGFudWEgc2VydmljZQogKiAgICBwcm92aWRlci4KICovCgokcHJvdmlkZXIgPSAkcHJvdmlkZXItPndpdGhEZWxlZ2F0ZUNvbnRhaW5lcigkeW91ckNvbnRhaW5lcik7CgovKioKICogNC4gR2V0IHRoZSBzY2hlbWEgYnVpbGRlciBhcyBub3JtYWwuIEl0IHdpbGwgdXNlIHRoZSBjdXN0b20gZGVwZW5kZW5jaWVzCiAqICAgIHlvdSd2ZSBkZWZpbmVkLgogKi8KCiRzY2hlbWFCdWlsZGVyID0gJHByb3ZpZGVyLT5nZXRTY2hlbWFCdWlsZGVyKCk7CmBgYAoKSXQncyBlbnRpcmVseSBvcHRpb25hbCB0byBoYXZlIHlvdXIgZW50aXR5IHJlc29sdmVyIHVzZSBvdGhlciBQaGFudWEgZGVwZW5kZW5jaWVzLCBhcyB0aGUgZGVmYXVsdCBQaGFudWEgaW1wbGVtZW50YXRpb24gZG9lczsgeW91ciBlbnRpdHkgcmVzb2x2ZXIgY2FuIGZ1bmN0aW9uIGluIHdoYXRldmVyIHdheSB5b3UgbGlrZS4KCkFub3RoZXIgYXBwcm9hY2ggdG8gY29uc2lkZXIgaXMgaGF2aW5nIHlvdXIgZW50aXR5IHJlc29sdmVyIGltcGxlbWVudGF0aW9uIGNvbXBvc2UgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gdGhhdCBQaGFudWEgdXNlcy4gQnkgZG9pbmcgc28sIHlvdSBjYW4gdXNlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBlbnRpdGllcyB0aGF0IGFyZSBjb21wYXRpYmxlIHdpdGggaXQgYW5kIHlvdXIgb3duIGltcGxlbWVudGF0aW9uIGZvciB0aG9zZSB0aGF0IGFyZSBub3QuIFNlZSB0aGUgZXhhbXBsZSBvZiB0aGlzIGJlbG93LgoKYGBgcGhwCjw/cGhwCgovKioKICogMS4gRGVmaW5lIHlvdXIgZW50aXR5IHJlc29sdmVyIGltcGxlbWVudGF0aW9uLgogKi8KCnVzZSBDeWNsZVxTY2hlbWFcRGVmaW5pdGlvblxFbnRpdHk7CnVzZSBFbGF6YXJcUGhhbnVhXEVudGl0eVxFbnRpdHlSZXNvbHZlckludGVyZmFjZTsKdXNlIEphbmVcQ29tcG9uZW50XE9wZW5BcGkzXEpzb25TY2hlbWFcTW9kZWxcU2NoZW1hOwoKY2xhc3MgWW91ckVudGl0eVJlc29sdmVyIGltcGxlbWVudHMgRW50aXR5UmVzb2x2ZXJJbnRlcmZhY2UKewogICAgcHJpdmF0ZSBFbnRpdHlSZXNvbHZlckludGVyZmFjZSAkZW50aXR5UmVzb2x2ZXI7CgogICAgLy8gSGF2ZSB0aGUgY29uc3RydWN0b3IgYWNjZXB0IGFub3RoZXIgcmVzb2x2ZXIgaW1wbGVtZW50YXRpb24gYXMgYQogICAgLy8gcGFyYW1ldGVyLgoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKICAgICAgICBFbnRpdHlSZXNvbHZlckludGVyZmFjZSAkZW50aXR5UmVzb2x2ZXIsCiAgICAgICAgLyogLi4uICovCiAgICApIHsKICAgICAgICAkdGhpcy0+ZW50aXR5UmVzb2x2ZXIgPSAkZW50aXR5UmVzb2x2ZXI7CiAgICAgICAgLyogLi4uICovCiAgICB9CgogICAgLy8gVGhlbiwgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBpbnRlcmZhY2UgbWV0aG9kLi4uCgogICAgcHVibGljIGZ1bmN0aW9uIGdldEVudGl0eSgKICAgICAgICBzdHJpbmcgJGNvbXBvbmVudE5hbWUsCiAgICAgICAgU2NoZW1hICRjb21wb25lbnRTY2hlbWEKICAgICk6ID9FbnRpdHkKICAgIHsKICAgICAgICAvLyAkZW50aXR5ID0gLi4uCgogICAgICAgIC8vIC4uLiBpZiB5b3VyIGltcGxlbWVudGF0aW9uIGNhbid0IHJlc29sdmUgYW4gZW50aXR5Li4uCiAgICAgICAgaWYgKCRlbnRpdHkgPT09IG51bGwpIHsKCiAgICAgICAgICAgIC8vIC4uLiB0aGVuIGhhdmUgaXQgZGVmZXIgdG8gdGhlIGluamVjdGVkIHJlc29sdmVyLgogICAgICAgICAgICAkZW50aXR5ID0gJHRoaXMtPmVudGl0eVJlc29sdmVyLT5nZXRFbnRpdHkoCiAgICAgICAgICAgICAgICAkY29tcG9uZW50TmFtZSwKICAgICAgICAgICAgICAgICRjb21wb25lbnRTY2hlbWEKICAgICAgICAgICAgKTsKCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGVudGl0eTsKICAgIH0KfQoKLyoqCiAqIDIuIEluamVjdCB5b3VyIGltcGxlbWVudGF0aW9uIHRvIGhhdmUgUGhhbnVhIHVzZSBpdC4KICovCgovLyBHZXQgdGhlIFBoYW51YSBjb250YWluZXIgYW5kIGNvbmZpZ3VyZSB5b3VyIGNvbnRhaW5lciBhcyBub3JtYWwuLi4KJHBoYW51YUNvbnRhaW5lciA9ICRwcm92aWRlci0+Z2V0Q29udGFpbmVyKCk7CiR5b3VyQ29udGFpbmVyID0gbmV3IFxQaW1wbGVcQ29udGFpbmVyOwokeW91ckNvbnRhaW5lcltFbnRpdHlSZXNvbHZlckludGVyZmFjZTo6Y2xhc3NdID0gZm4oKSA9PiBuZXcgWW91ckVudGl0eVJlc29sdmVyKAoKICAgIC8vIC4uLiB0aGVuIGluamVjdCB0aGUgZW50aXR5IHJlc29sdmVyIGltcGxlbWVudGF0aW9uIGZyb20gdGhlIFBoYW51YQogICAgLy8gY29udGFpbmVyIGludG8geW91ciBvd24gaW1wbGVtZW50YXRpb24uCiAgICAkcGhhbnVhQ29udGFpbmVyW0VudGl0eVJlc29sdmVySW50ZXJmYWNlOjpjbGFzc10KCik7CmBgYAoKIyMjIEZpZWxkIFJlc29sdmVyCgpQaGFudWEgaW5jbHVkZXMgYSByZXNvbHZlciBmb3IgZmllbGRzIGFzIGl0IGRvZXMgZm9yIGVudGl0aWVzLCByZXByZXNlbnRlZCBieSB0aGUgYEVsYXphclxQaGFudWFcRmllbGRcRmllbGRSZXNvbHZlckludGVyZmFjZWAuCgpUaGlzIGludGVyZmFjZSBjb250YWlucyBhIHNpbmdsZSBtZXRob2QsIGBnZXRGaWVsZCgpYCwgd2hpY2ggcmVjZWl2ZXMgdGhyZWUgcGFyYW1ldGVyczoKCjEuIGEgYHN0cmluZ2AgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgT3BlbkFQSSBjb21wb25lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgZW50aXR5IGNvbnRhaW5pbmcgdGhlIGZpZWxkOwoyLiBhIGBzdHJpbmdgIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBwcm9wZXJ0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaWVsZDsgYW5kCjMuIGFuIGluc3RhbmNlIG9mIGBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXFNjaGVtYWAgcmVwcmVzZW50aW5nIHRoZSBwcm9wZXJ0eSBzY2hlbWEuCgpgZ2V0RmllbGQoKWAgbXVzdCByZXR1cm4gYSBwb3B1bGF0ZWQgaW5zdGFuY2Ugb2YgYEN5Y2xlXFNjaGVtYVxEZWZpbml0aW9uXEZpZWxkYCByZXByZXNlbnRpbmcgdGhlIGZpZWxkIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIHByb3BlcnR5IG9yIGBudWxsYCBpZiBpdCBmYWlscyB0byByZXNvbHZlIHRoZSBjb21wb25lbnQgdG8gYSBmaWVsZC4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZSB0aGF0IFBoYW51YSB1c2VzIGJ5IGRlZmF1bHQgaXMgYEVsYXphclxQaGFudWFcRmllbGRcRmllbGRSZXNvbHZlcmAuIEl0IGNvbXBvc2VzIGFuIGltcGxlbWVudGF0aW9uIG9mIGVhY2ggb2YgYEVsYXphclxQaGFudWFcRmllbGRcQ29sdW1uUmVzb2x2ZXJJbnRlcmZhY2VgLCBgRWxhemFyXFBoYW51YVxGaWVsZFxUeXBlUmVzb2x2ZXJJbnRlcmZhY2VgLCBhbmQgYEVsYXphclxQaGFudWFcRmllbGRcUHJpbWFyeVJlc29sdmVySW50ZXJmYWNlYCwgd2hpY2ggaXQgdXNlcyB0byBkZXRlcm1pbmUgdGhlIGZpZWxkIFtjb2x1bW5dKCNjb2x1bW4tcmVzb2x2ZXIpLCBbdHlwZV0oI3R5cGUtcmVzb2x2ZXIpLCBhbmQgcHJlc2VuY2UgaW4gdGhlIFtwcmltYXJ5IGluZGV4XSgjcHJpbWFyeS1yZXNvbHZlcikgcmVzcGVjdGl2ZWx5LgoKSXQgYWxzbyBoYW5kbGVzIHNldHRpbmcgb3RoZXIgb3B0aW9ucyBmb3IgdGhlIGZpZWxkLCBzdWNoIGFzIGl0cyBkZWZhdWx0IHZhbHVlIGFuZCB3aGV0aGVyIGl0J3MgbnVsbGFibGUgYmFzZWQgb24gY29ycmVzcG9uZGluZyBbYGRlZmF1bHRgXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jcHJvcGVydGllcykgYW5kIFtgbnVsbGFibGVgXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jZml4ZWQtZmllbGRzLTIwKSB2YWx1ZXMgZnJvbSB0aGUgZ2l2ZW4gcHJvcGVydHkgc2NoZW1hLgoKYEZpZWxkUmVzb2x2ZXJgIGFsc28gcHJvdmlkZXMgZm9yIHRoZSBleGNsdXNpb24gb2Ygc3BlY2lmaWMgcHJvcGVydGllcyBmcm9tIGhhdmluZyBhIGZpZWxkIGluIHRoZSBnZW5lcmF0ZWQgc2NoZW1hLiBUaGUgZWFzaWVzdCB3YXkgdG8gZXhjbHVkZSBvbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIGlzIGJ5IHVzaW5nIHRoZSBzZXJ2aWNlIHByb3ZpZGVyOiBieSBkZWZhdWx0LCBpdCBoYW5kbGVzIGluamVjdGluZyBhIGNhbGxiYWNrIHRvIGZpbHRlIHByb3BlcnRpZXMgaW50byBgRmllbGRSZXNvbHZlcmAuCgpgYGBwaHAKPD9waHAKCnVzZSBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXFNjaGVtYTsKCiRwcm9wZXJ0eUZpbHRlciA9IGZuICgKICAgIHN0cmluZyAkY29tcG9uZW50TmFtZSwKICAgIHN0cmluZyAkcHJvcGVydHlOYW1lLAogICAgU2NoZW1hICRwcm9wZXJ0eVNjaGVtYQopOiBib29sID0+CiAgICAvLyBFeGNsdWRlIGFsbCBwcm9wZXJ0aWVzIHdpdGggdGhpcyBuYW1lCiAgICAkcHJvcGVydHkgIT09ICdwcm9wZXJ0eU5hbWUnCgogICAgLy8gRXhjbHVkZSB0aGUgcHJvcGVydHkgb25seSBpbiB0aGUgc3BlY2lmaWVkIGNvbXBvbmVudAogICAgJiYgIiRjb21wb25lbnQuJHByb3BlcnR5IiAhPT0gJ2NvbXBvbmVudE5hbWUucHJvcGVydHlOYW1lJzsKCiRwcm92aWRlciA9IChuZXcgXEVsYXphclxQaGFudWFcU2VydmljZVxQcm92aWRlcikKICAgIC0+d2l0aFByb3BlcnR5RmlsdGVyKCRwcm9wZXJ0eUZpbHRlcik7CmBgYAoKWW91IGNhbiBhbHNvIGV4Y2x1ZGUgcHJvcGVydGllcyBieSBbb3ZlcnJpZGluZ10oI292ZXJyaWRpbmctZGVwZW5kZW5jaWVzKSB0aGUgYEZpZWxkUmVzb2x2ZXJgIGluc3RhbmNlIHVzZWQgYnkgZGVmYXVsdCB3aXRoIG9uZSB0aGF0IGluY2x1ZGVzIGEgY2FsbGJhY2sgdG8gZmlsdGVyIHByb3BlcnRpZXMgaW4gdGhlIGAkZmlsdGVyQ2FsbGJhY2tgIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBvZiBgRmllbGRSZXNvbHZlcmAuIFRoZSBleGFtcGxlIGJlbG93IGRvZXMgdGhpcyB1c2luZyBhIFBpbXBsZSBjb250YWluZXIuCgpgYGBwaHAKPD9waHAKCnVzZSBFbGF6YXJcUGhhbnVhXHsKICAgIEZpZWxkXENvbHVtblJlc29sdmVySW50ZXJmYWNlLAogICAgRmllbGRcRmllbGRSZXNvbHZlciwKICAgIEZpZWxkXEZpZWxkUmVzb2x2ZXJJbnRlcmZhY2UsCiAgICBGaWVsZFxQcmltYXJ5UmVzb2x2ZXJJbnRlcmZhY2UsCiAgICBGaWVsZFxUeXBlUmVzb2x2ZXJJbnRlcmZhY2UsCiAgICBTZXJ2aWNlXFByb3ZpZGVyCn07CnVzZSBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXFNjaGVtYTsKCiRwcm92aWRlciA9IG5ldyBQcm92aWRlcjsKCi8qKgogKiAxLiBHZXQgYSBjb250YWluZXIgZnJvbSB0aGUgUGhhbnVhIHNlcnZpY2UgcHJvdmlkZXIgdG8gb3ZlcnJpZGUgc29tZSBvZiB0aGUKICogICAgZGVmYXVsdCBkZXBlbmRlbmNpZXMgaXQgZGVmaW5lcy4KICovCgovLyBQaW1wbGUKJHBoYW51YUNvbnRhaW5lciA9ICRwcm92aWRlci0+Z2V0Q29udGFpbmVyKCk7CgovLyBQU1ItMTEKJHBoYW51YUNvbnRhaW5lciA9ICRwcm92aWRlci0+Z2V0UHNyQ29udGFpbmVyKCk7CgovKioKICogMi4gSW4geW91ciBvd24gY29udGFpbmVyLCB1c2UgdGhlIGtleSBGaWVsZFJlc29sdmVySW50ZXJmYWNlOjpjbGFzcyBhbmQKICogICAgYXNzaWduIGl0IGFuIGluc3RhbmNlIG9mIHlvdXIgZW50aXR5IHJlc29sdmVyIGltcGxlbWVudGF0aW9uLCBpbmplY3RpbmcKICogICAgYW55IGRlZmF1bHQgUGhhbnVhIGRlcGVuZGVuY2llcyB0aGF0IHlvdSBuZWVkLiBCZWxvdyBpcyBhbiBleGFtcGxlIG9mCiAqICAgIGRvaW5nIHRoaXMgdXNpbmcgUGltcGxlIGNvbnRhaW5lcnMuCiAqLwoKJHlvdXJDb250YWluZXIgPSBuZXcgXFBpbXBsZVxDb250YWluZXI7CiR5b3VyQ29udGFpbmVyW0ZpZWxkUmVzb2x2ZXJJbnRlcmZhY2U6OmNsYXNzXSA9IGZuKCkgPT4gbmV3IEZpZWxkUmVzb2x2ZXIoCiAgICAkcGhhbnVhQ29udGFpbmVyW0NvbHVtblJlc29sdmVySW50ZXJmYWNlOjpjbGFzc10sCiAgICAkcGhhbnVhQ29udGFpbmVyW1ByaW1hcnlSZXNvbHZlckludGVyZmFjZTo6Y2xhc3NdLAogICAgJHBoYW51YUNvbnRhaW5lcltUeXBlUmVzb2x2ZXJJbnRlcmZhY2U6OmNsYXNzXSwKICAgIGZ1bmN0aW9uICgKICAgICAgICBzdHJpbmcgJGNvbXBvbmVudE5hbWUsCiAgICAgICAgc3RyaW5nICRwcm9wZXJ0eU5hbWUsCiAgICAgICAgU2NoZW1hICRwcm9wZXJ0eVNjaGVtYQogICAgKTogYm9vbCB7CiAgICAgICAgLyogcmV0dXJuIFRSVUUgdG8gaW5jbHVkZSBvciBGQUxTRSB0byBleGNsdWRlIHByb3BlcnR5ICovCiAgICB9Cik7CgovKioKICogMy4gU2V0IHlvdXIgY29udGFpbmVyIGFzIHRoZSBkZWxlZ2F0ZSBjb250YWluZXIgaW4gdGhlIFBoYW51YSBzZXJ2aWNlCiAqICAgIHByb3ZpZGVyLgogKi8KCiRwcm92aWRlciA9ICRwcm92aWRlci0+d2l0aERlbGVnYXRlQ29udGFpbmVyKCR5b3VyQ29udGFpbmVyKTsKCi8qKgogKiA0LiBHZXQgdGhlIHNjaGVtYSBidWlsZGVyIGFzIG5vcm1hbC4gSXQgd2lsbCB1c2UgdGhlIGN1c3RvbSBkZXBlbmRlbmNpZXMKICogICAgeW91J3ZlIGRlZmluZWQuCiAqLwoKJHNjaGVtYUJ1aWxkZXIgPSAkcHJvdmlkZXItPmdldFNjaGVtYUJ1aWxkZXIoKTsKYGBgCgpJdCdzIGVudGlyZWx5IG9wdGlvbmFsIHRvIGhhdmUgeW91ciBmaWVsZCByZXNvbHZlciB1c2Ugb3RoZXIgUGhhbnVhIGRlcGVuZGVuY2llcywgYXMgdGhlIGRlZmF1bHQgUGhhbnVhIGltcGxlbWVudGF0aW9uIGRvZXM7IHlvdXIgZmllbGQgcmVzb2x2ZXIgY2FuIGZ1bmN0aW9uIGluIHdoYXRldmVyIHdheSB5b3UgbGlrZS4KCkFub3RoZXIgYXBwcm9hY2ggdG8gY29uc2lkZXIgaXMgaGF2aW5nIHlvdXIgZmllbGQgcmVzb2x2ZXIgaW1wbGVtZW50YXRpb24gY29tcG9zZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB0aGF0IFBoYW51YSB1c2VzLiBCeSBkb2luZyBzbywgeW91IGNhbiB1c2UgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIGZpZWxkcyB0aGF0IGFyZSBjb21wYXRpYmxlIHdpdGggaXQgYW5kIHlvdXIgb3duIGltcGxlbWVudGF0aW9uIGZvciB0aG9zZSB0aGF0IGFyZSBub3QuIFNlZSB0aGUgZXhhbXBsZSBvZiB0aGlzIGJlbG93LgoKYGBgcGhwCjw/cGhwCgovKioKICogMS4gRGVmaW5lIHlvdXIgZmllbGQgcmVzb2x2ZXIgaW1wbGVtZW50YXRpb24uCiAqLwoKdXNlIEN5Y2xlXFNjaGVtYVxEZWZpbml0aW9uXEZpZWxkOwp1c2UgRWxhemFyXFBoYW51YVxGaWVsZFxGaWVsZFJlc29sdmVySW50ZXJmYWNlOwp1c2UgSmFuZVxDb21wb25lbnRcT3BlbkFwaTNcSnNvblNjaGVtYVxNb2RlbFxTY2hlbWE7CgpjbGFzcyBZb3VyRmllbGRSZXNvbHZlciBpbXBsZW1lbnRzIEZpZWxkUmVzb2x2ZXJJbnRlcmZhY2UKewogICAgcHJpdmF0ZSBGaWVsZFJlc29sdmVySW50ZXJmYWNlICRmaWVsZFJlc29sdmVyOwoKICAgIC8vIEhhdmUgdGhlIGNvbnN0cnVjdG9yIGFjY2VwdCBhbm90aGVyIHJlc29sdmVyIGltcGxlbWVudGF0aW9uIGFzIGEKICAgIC8vIHBhcmFtZXRlci4KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCiAgICAgICAgRmllbGRSZXNvbHZlckludGVyZmFjZSAkZmllbGRSZXNvbHZlciwKICAgICAgICAvKiAuLi4gKi8KICAgICkgewogICAgICAgICR0aGlzLT5maWVsZFJlc29sdmVyID0gJGZpZWxkUmVzb2x2ZXI7CiAgICAgICAgLyogLi4uICovCiAgICB9CgogICAgLy8gVGhlbiwgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBpbnRlcmZhY2UgbWV0aG9kLi4uCgogICAgcHVibGljIGZ1bmN0aW9uIGdldEZpZWxkKAogICAgICAgIHN0cmluZyAkY29tcG9uZW50TmFtZSwKICAgICAgICBzdHJpbmcgJHByb3BlcnR5TmFtZSwKICAgICAgICBTY2hlbWEgJHByb3BlcnR5U2NoZW1hCiAgICApOiA/RmllbGQKICAgIHsKICAgICAgICAvLyAkZmllbGQgPSAuLi4KCiAgICAgICAgLy8gLi4uIGlmIHlvdXIgaW1wbGVtZW50YXRpb24gY2FuJ3QgcmVzb2x2ZSBhbiBlbnRpdHkuLi4KICAgICAgICBpZiAoJGZpZWxkID09PSBudWxsKSB7CgogICAgICAgICAgICAvLyAuLi4gdGhlbiBoYXZlIGl0IGRlZmVyIHRvIHRoZSBpbmplY3RlZCByZXNvbHZlci4KICAgICAgICAgICAgJGZpZWxkID0gJHRoaXMtPmZpZWxkUmVzb2x2ZXItPmdldEZpZWxkKAogICAgICAgICAgICAgICAgJGNvbXBvbmVudE5hbWUsCiAgICAgICAgICAgICAgICAkcHJvcGVydHlOYW1lLAogICAgICAgICAgICAgICAgJHByb3BlcnR5U2NoZW1hCiAgICAgICAgICAgICk7CgogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRmaWVsZDsKICAgIH0KfQoKLyoqCiAqIDIuIEluamVjdCB5b3VyIGltcGxlbWVudGF0aW9uIHRvIGhhdmUgUGhhbnVhIHVzZSBpdC4KICovCgovLyBHZXQgdGhlIFBoYW51YSBjb250YWluZXIgYW5kIGNvbmZpZ3VyZSB5b3VyIGNvbnRhaW5lciBhcyBub3JtYWwuLi4KJHBoYW51YUNvbnRhaW5lciA9ICRwcm92aWRlci0+Z2V0Q29udGFpbmVyKCk7CiR5b3VyQ29udGFpbmVyID0gbmV3IFxQaW1wbGVcQ29udGFpbmVyOwokeW91ckNvbnRhaW5lcltGaWVsZFJlc29sdmVySW50ZXJmYWNlOjpjbGFzc10gPSBmbigpID0+IG5ldyBZb3VyRmllbGRSZXNvbHZlcigKCiAgICAvLyAuLi4gdGhlbiBpbmplY3QgdGhlIGZpZWxkIHJlc29sdmVyIGltcGxlbWVudGF0aW9uIGZyb20gdGhlIFBoYW51YQogICAgLy8gY29udGFpbmVyIGludG8geW91ciBvd24gaW1wbGVtZW50YXRpb24uCiAgICAkcGhhbnVhQ29udGFpbmVyW0ZpZWxkUmVzb2x2ZXJJbnRlcmZhY2U6OmNsYXNzXQoKKTsKYGBgCgojIyMgTG9nZ2VyCgpQaGFudWEgc3VwcG9ydHMgYW55IFtQU1ItMyBsb2dnZXJdKGh0dHBzOi8vd3d3LnBocC1maWcub3JnL3Bzci9wc3ItMy8pLiBCeSBkZWZhdWx0LCBpdCB1c2VzIGBQc3JcTG9nZ2VyXE51bGxMb2dnZXJgLCB3aGljaCBkaXNjYXJkcyBhbnkgbG9nZ2VkIGVudHJpZXMuIFRvIHN0b3JlIHRoZXNlIGVudHJpZXMsIHlvdSBtdXN0IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGxvZ2dlciB3aXRoIG9uZSB0aGF0IGRvZXMgc29tZXRoaW5nIHdpdGggdGhlbS4gQmVsb3cgaXMgYW4gZXhhbXBsZSBvZiB1c2luZyB0aGUgUGltcGxlIGNvbnRhaW5lciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsb2dnZXIgd2l0aCBvbmUgZnJvbSB0aGUgW01vbm9sb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9TZWxkYWVrL21vbm9sb2cvKSBsaWJyYXJ5LgoKYGBgcGhwCjw/cGhwCgp1c2UgRWxhemFyXFBoYW51YVxTZXJ2aWNlXFByb3ZpZGVyOwp1c2UgTW9ub2xvZ1xMb2dnZXI7CnVzZSBQaW1wbGVcQ29udGFpbmVyOwp1c2UgUHNyXExvZ1xMb2dnZXJJbnRlcmZhY2U7CgokeW91ckNvbnRhaW5lciA9IG5ldyBDb250YWluZXI7CiR5b3VyQ29udGFpbmVyW0xvZ2dlckludGVyZmFjZTo6Y2xhc3NdID0gZnVuY3Rpb24gKCkgewogICAgJGxvZ2dlciA9IG5ldyBMb2dnZXI7CiAgICAvLyBDb25maWd1cmUgJGxvZ2dlciBhcyBuZWVkZWQgaGVyZQogICAgcmV0dXJuICRsb2dnZXI7Cn07CgokcHJvdmlkZXIgPSAobmV3IFByb3ZpZGVyKQogICAgLT53aXRoRGVsZWdhdGVDb250YWluZXIoJHlvdXJDb250YWluZXIpOwpgYGAKCiMjIyBTcGVjaWZpY2F0aW9uIExvYWRlcgoKVG8gY29udmVydCBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gdG8gYSBDeWNsZSBPUk0gc2NoZW1hLCBQaGFudWEgbXVzdCBmaXJzdCBsb2FkIGFuZCBwYXJzZSB0aGF0IHNwZWNpZmljYXRpb24uCgpQaGFudWEgZGVmaW5lcyB0aGUgaW50ZXJmYWNlIGBFbGF6YXJcUGhhbnVhXFNjaGVtYVxTcGVjTG9hZGVySW50ZXJmYWNlYCBmb3IgY2xhc3NlcyB1c2VkIHRvIGxvYWQgYW5kIHBhcnNlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmaWxlcy4KClRoaXMgaW50ZXJmYWNlIGNvbnRhaW5zIGEgc2luZ2xlIG1ldGhvZCBgbG9hZCgpYCB3aGljaCByZWNlaXZlcyBhIHNpbmdsZSBwYXJhbWV0ZXI6IGEgYHN0cmluZ2AgY29udGFpbmluZyB0aGUgcGF0aCB0byBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZS4KCmBsb2FkKClgIG11c3QgcmV0dXJuIGFuIGluc3RhbmNlIG9mIGBKYW5lXENvbXBvbmVudFxPcGVuQXBpM1xKc29uU2NoZW1hXE1vZGVsXE9wZW5BcGlgIGNvbnRhaW5pbmcgdGhlIHBhcnNlZCBzcGVjaWZpY2F0aW9uIG9yIHRocm93IGFuIGluc3RhbmNlIG9mIGBFbGF6YXJcUGhhbnVhXFNjaGVtYVxFeGNlcHRpb25gIGlmIGxvYWRpbmcgb3IgcGFyc2luZyB0aGUgc3BlY2lmaWNhdGlvbiBmYWlscy4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZSB0aGF0IFBoYW51YSB1c2VzIGJ5IGRlZmF1bHQgaXMgYEVsYXphclxQaGFudWFcU2NoZW1hXFNwZWNMb2FkZXJgLiBJdCBoYW5kbGVzIGxvZ2dpbmcgZXZlbnRzIHJlbGF0ZWQgdG8gbG9hZGluZyBhbmQgcGFyc2luZyB0aGUgc3BlY2lmaWNhdGlvbi4KClRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhZGQgYW4gZW50cnkgdG8geW91ciBjb250YWluZXIgdXNpbmcgdGhlIGtleSBgRWxhemFyXFBoYW51YVxTY2hlbWFcU3BlY0xvYWRlckludGVyZmFjZWAgYW5kIGhhdmUgaXQgcmVzb2x2ZSB0byBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzIHRoYXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlLgoKIyMjIFJlZ2lzdHJ5CgpBcyBQaGFudWEgY29udmVydHMgT3BlbkFQSSBjb21wb25lbnRzIHRvIEN5Y2xlIE9STSBlbnRpdGllcywgaXQgdXNlcyBhbiBpbnN0YW5jZSBvZiBgQ3ljbGVcU2NoZW1hXFJlZ2lzdHJ5YCB0byByZWdpc3RlciB0aGUgZW50aXRpZXMgYW5kIGxpbmsgdGhlbSB0byB0YWJsZXMuIFRoaXMgcmVnaXN0cnkgaXMgdWx0aW1hdGVseSB1c2VkIHRvIGNvbXBpbGUgdGhlIGVudGl0aWVzIGludG8gYW4gaW5zdGFuY2Ugb2YgYEN5Y2xlXE9STVxTY2hlbWFgLgoKQnkgZGVmYXVsdCwgUGhhbnVhIHVzZXMgYW4gZW1wdHkgYFJlZ2lzdHJ5YCBpbnN0YW5jZSBjb25maWd1cmVkIGZvciB5b3VyIGRhdGFiYXNlLiBZb3Ugd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgaW5zdGFuY2UgaWYsIGZvciBleGFtcGxlLCB5b3UncmUgY29tcGlsaW5nIGVudGl0aWVzIGdlbmVyYXRlZCBmcm9tIG90aGVyIHNvdXJjZXMgaW50byB0aGUgc2FtZSBzY2hlbWEgd2l0aCBlbnRpdGllcyBnZW5lcmF0ZWQgYnkgUGhhbnVhLgoKSW4gc3VjaCBzaXR1YXRpb25zLCBhZGQgYW4gZW50cnkgdG8geW91ciBjb250YWluZXIgdXNpbmcgdGhlIGtleSBgQ3ljbGVcU2NoZW1hXFJlZ2lzdHJ5YCBhbmQgaGF2ZSBpdCByZXNvbHZlIHRvIHlvdXIgZGVzaXJlZCBgUmVnaXN0cnlgIGluc3RhbmNlIHRvIGhhdmUgUGhhbnVhIHVzZSBpdC4gTm90ZSB0aGF0IHlvdSBjYW4gdXNlIHRoZSBQaGFudWEgY29udGFpbmVyIHRvIGVpdGhlciB1c2UgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGl0cyBkZWZhdWx0IHJlZ2lzdHJ5IGluc3RhbmNlIG9yIHRvIHN1cHBseSB5b3VyIHJlZ2lzdHJ5J3MgcmVxdWlyZWQgaW1wbGVtZW50YXRpb24gb2YgYFNwaXJhbFxEYXRhYmFzZVxEYXRhYmFzZVByb3ZpZGVySW50ZXJmYWNlYCB1c2luZyB0aGUgc2FtZSBpbnN0YW5jZSBvZiBgU3BpcmFsXERhdGFiYXNlXERhdGFiYXNlTWFuYWdlcmAgdGhhdCBQaGFudWEgZG9lcy4gQmVsb3cgaXMgYW4gZXhhbXBsZSBvZiBkb2luZyBlYWNoIHdpdGggYSBQaW1wbGUgY29udGFpbmVyLgoKYGBgcGhwCjw/cGhwCnVzZSBDeWNsZVxTY2hlbWFcUmVnaXN0cnk7CnVzZSBQaGFudWFcU2VydmljZVxQcm92aWRlcjsKdXNlIFBpbXBsZVxDb250YWluZXI7CnVzZSBTcGlyYWxcRGF0YWJhc2VcRGF0YWJhc2VQcm92aWRlckludGVyZmFjZTsKCiRwcm92aWRlciA9IG5ldyBQcm92aWRlcjsKCi8vIElmIHlvdSdyZSB1c2luZyBQaGFudWFcU2VydmljZVxQcm92aWRlciBhcyBhIFBpbXBsZSBwcm92aWRlcjoKJHlvdXJDb250YWluZXIgPSBuZXcgQ29udGFpbmVyOwokeW91ckNvbnRhaW5lci0+cmVnaXN0ZXIoJHByb3ZpZGVyKTsKJHlvdXJDb250YWluZXItPmV4dGVuZChSZWdpc3RyeTo6Y2xhc3MsIGZ1bmN0aW9uIChSZWdpc3RyeSAkcmVnaXN0cnkpIHsKICAgIC8vIENoYW5nZSAkcmVnaXN0cnkgYXMgbmVlZGVkIGhlcmUKfSk7CgovLyBJZiB5b3UncmUgbm90IHVzaW5nIFBoYW51YVxTZXJ2aWNlXFByb3ZpZGVyIGFzIGEgUGltcGxlIHByb3ZpZGVyOgokcGhhbnVhQ29udGFpbmVyID0gJHByb3ZpZGVyLT5nZXRDb250YWluZXIoKTsKJHlvdXJDb250YWluZXIgPSBuZXcgQ29udGFpbmVyOwokeW91ckNvbnRhaW5lcltSZWdpc3RyeTo6Y2xhc3NdID0gZnVuY3Rpb24gKCkgdXNlICgkcGhhbnVhQ29udGFpbmVyKSB7CiAgICAkZGF0YWJhc2VQcm92aWRlciA9ICRwaGFudWFDb250YWluZXJbRGF0YWJhc2VQcm92aWRlckludGVyZmFjZTo6Y2xhc3NdOwogICAgJHJlZ2lzdHJ5ID0gbmV3IFJlZ2lzdHJ5KCRkYXRhYmFzZVByb3ZpZGVyKTsKICAgIC8vIENvbmZpZ3VyZSAkcmVnaXN0cnkgaGVyZSBhcyBuZWVkZWQKICAgIHJldHVybiAkcmVnaXN0cnk7Cn07CiRwaGFudWFDb250YWluZXJbUmVnaXN0cnk6OmNsYXNzXSA9IGZuKCkgPT4gJHlvdXJDb250YWluZXJbUmVnaXN0cnk6OmNsYXNzXTsKYGBgCgojIyMgQ29tcGlsZXIgQ29uZmlndXJhdGlvbgoKUGhhbnVhIHVzZXMgYW4gaW5zdGFuY2Ugb2YgYEN5Y2xlXFNjaGVtYVxDb21waWxlcmAgdG8gY29tcGlsZSBhIHJlZ2lzdHJ5IG9mIGVudGl0aWVzIGludG8gYSBzY2hlbWEuIFRoaXMgY29tcGlsZXIgY2FuIHVzZSBbY3VzdG9tIGdlbmVyYXRvcnNdKGh0dHBzOi8vY3ljbGUtb3JtLmRldi9kb2NzL2FkdmFuY2VkLXNjaGVtYS1idWlsZGVyI2N1c3RvbS1nZW5lcmF0b3JzKSBhbmQgW2RlZmF1bHRzXShodHRwczovL2N5Y2xlLW9ybS5kZXYvZG9jcy9hZHZhbmNlZC1kZWZhdWx0LWNsYXNzZXMpLiBCeSBkZWZhdWx0LCBQaGFudWEgdXNlcyBkZWZhdWx0IHZhbHVlcyBmb3IgZWFjaCBvZiB0aGVzZSAoaS5lLiBlbXB0eSBhcnJheXMpLgoKSWYgeW91IHdhbnQgdG8gdXNlIGN1c3RvbSB2YWx1ZXMgZm9yIGVpdGhlciBvZiB0aGVzZSwgUGhhbnVhIHByb3ZpZGVzIGBFbGF6YXJcUGhhbnVhXFNjaGVtYVxDb21waWxlckNvbmZpZ3VyYXRpb25gIHRvIG92ZXJyaWRlIHRoZW0uIEFkZCBhbiBlbnRyeSBmb3IgdGhpcyBjbGFzcyB0byB5b3VyIGNvbnRhaW5lciB3aXRoIGEgY29uZmlndXJlZCBpbnN0YW5jZS4gQmVsb3cgaXMgYW4gZXhhbXBsZSBvZiBkb2luZyB0aGlzIHdpdGggYSBQaW1wbGUgY29udGFpbmVyLgoKYGBgcGhwCjw/cGhwCgp1c2UgRWxhemFyXFBoYW51YVxTY2hlbWFcQ29tcGlsZXJDb25maWd1cmF0aW9uOwp1c2UgRWxhemFyXFBoYW51YVxTZXJ2aWNlXFByb3ZpZGVyOwp1c2UgUGltcGxlXENvbnRhaW5lcjsKCiR5b3VyQ29udGFpbmVyID0gbmV3IENvbnRhaW5lcjsKJHlvdXJDb250YWluZXJbQ29tcGlsZXJDb25maWd1cmF0aW9uOjpjbGFzc10gPSBmbigpID0+IChuZXcgQ29tcGlsZXJDb25maWd1cmF0aW9uKQogICAgLT53aXRoR2VuZXJhdG9ycygvKiAuLi4gKi8pCiAgICAtPndpdGhEZWZhdWx0cygvKiAuLi4gKi8pOwoKJHByb3ZpZGVyID0gKG5ldyBQcm92aWRlcikKICAgIC0+d2l0aERlbGVnYXRlQ29udGFpbmVyKCR5b3VyQ29udGFpbmVyKTsKYGBgCgojIyBGQVEKCiMjIyBXaHkgZGlkIHlvdSBidWlsZCB0aGlzPwoKSSB3YXMgYWxyZWFkeSB1c2luZyBPcGVuQVBJIGFuZCBKYW5lIGluIHNvbWUgcHJvamVjdHMgYW5kIHdhbnRlZCB0byB1c2UgQ3ljbGUgT1JNIGFzIHdlbGwuIEkgd2FzIGFscmVhZHkgdXNpbmcgbW9kZWwgY2xhc3NlcyBnZW5lcmF0ZWQgYnkgSmFuZSBhbmQgZGlkbid0IHdhbnQgdG8gaGF2ZSB0byBtYW51YWxseSBhbm5vdGF0ZSBvciBvdGhlcndpc2UgY2hhbmdlIHRoZW0gdG8gYmUgdXNhYmxlIHdpdGggQ3ljbGUuIEkgYnVpbHQgdGhpcyBzbyBJIHdvdWxkbid0IGhhdmUgdG8uCgojIyMgV2h5IHRoZSBuYW1lICJQaGFudWE/IgoKSXQncyB0YWtlbiBmcm9tIHRoZSBsYXR0ZXIgaGFsZiBvZiB0aGUgU3dhaGlsaSB3b3JkICprdWZhZmFudWEqLCB3aGljaCBtZWFucyAidG8gZGVmaW5lLCIgYW5kIGFkYXB0ZWQgdG8gcmVwbGFjZSB0aGUgImYiIHdpdGggInBoIiBhcyBpcyBjb21tb24gd2l0aCBQSFAgcHJvamVjdCBuYW1lcy4KCiMjIyBIb3cgZG8geW91IHByb25vdW5jZSAiUGhhbnVhPyIKCkZhaC1OT08tYWguCg== readmeEtag: '"ac01a09cb96b5e6a046667396cf5bfe5ddf28755"' readmeLastModified: Sun, 01 Aug 2021 00:10:52 GMT repositoryId: 384845118 description: Builds Cycle ORM schemas from OpenAPI 3 component schemas created: '2021-07-11T02:35:08Z' updated: '2022-12-26T17:17:05Z' language: PHP archived: true stars: 5 watchers: 3 forks: 0 owner: elazar logo: https://avatars.githubusercontent.com/u/15487?v=4 license: MIT repoEtag: '"353e75b0426b8f06d5ada4dcedb86be45fa17226cd7a17eaece356fe5ad1482b"' repoLastModified: Mon, 26 Dec 2022 17:17:05 GMT foundInMaster: true id: d9fd84a229f29b78ac55c53e32cc1f38 - source: openapi3 tags repository: https://github.com/ja88a/openapi-nestjs-auth-mongo v3: true id: 454350ec4d744135cda5c2bccc834fb3 repositoryMetadata: base64Readme: >- PCEtLSAKWyFbQ29udHJpYnV0b3JzXVtzb3BlbmFwaS1jb250cmlidXRvcnMtc2hpZWxkXV1bc29wZW5hcGktY29udHJpYnV0b3JzXQpbIVtGb3Jrc11bc29wZW5hcGktZm9ya3Mtc2hpZWxkXV1bc29wZW5hcGktZm9ya3NdClshW1N0YXJnYXplcnNdW3NvcGVuYXBpLXN0YXJzLXNoaWVsZF1dW3NvcGVuYXBpLXN0YXJzXQpbIVtJc3N1ZXNdW3NvcGVuYXBpLWlzc3Vlcy1zaGllbGRdXVtzb3BlbmFwaS1pc3N1ZXNdClshW01JVCBMaWNlbnNlXVtzb3BlbmFwaS1saWNlbnNlLXNoaWVsZF1dW2xpY2Vuc2VdCi0tPgoKWyFbTmVzdEpzXVtuZXN0anMtc2hpZWxkXV1bcmVmLW5lc3Rqc10KWyFbTm9kZUpzXVtub2RlanMtc2hpZWxkXV1bcmVmLW5vZGVqc10KWyFbVHlwZXNjcmlwdF1bdHlwZXNjcmlwdC1zaGllbGRdXVtyZWYtdHlwZXNjcmlwdF0KWyFbTW9uZ29EQl1bbW9uZ29kYi1zaGllbGRdXVtyZWYtbW9uZ29kYl0KWyFbSldUXVtqd3Qtc2hpZWxkXV1bcmVmLWp3dF0KWyFbSmVzdF1bamVzdC1zaGllbGRdXVtyZWYtamVzdF0KWyFbWWFybl1beWFybi1zaGllbGRdXVtyZWYteWFybl0KWyFbRG9ja2VyXVtkb2NrZXItc2hpZWxkXV1bcmVmLWRvY2tlcl0KCiMgUypPcGVuQVBJCgojIyBQdXJwb3NlCgo+IEEgbW9ubyByZXBvIHRvIGRldmVsb3AgYSBzZXQgb2YgTmVzdEpzLWJhc2VkIE9wZW4gQVBJIFNlcnZpY2VzLCBSZXN0ZnVsIEFQSSBNaWNyb3NlcnZpY2VzIHdpdGggZnVsbCBhdXRoIHN1cHBvcnQKCk1hZGUgd2l0aCBmb2xsb3dpbmcgYmVzdCBwcmFjdGljZXM6Ci0gW25vZGVqcy1iZXN0LXByYWN0aWNlXShodHRwczovL2dpdGh1Yi5jb20vZ29sZGJlcmd5b25pL25vZGViZXN0cHJhY3RpY2VzKSAKLSBbVGhlIFR3ZWx2ZS1GYWN0b3IgQXBwXShodHRwczovLzEyZmFjdG9yLm5ldCkKLSBbTWljcm9zZXJ2aWNlIEFyY2hpdGVjdHVyZV0oaHR0cHM6Ly9taWNyb3NlcnZpY2VzLmlvKQoKIyMgTW9kdWxlcwotIFthY2NvdW50LWFwaV0ocGFja2FnZXMvYWNjb3VudC1hcGkvKTogVXNlciBhY2NvdW50cywgcGVybWlzc2lvbnMsIHNlcnZpY2Ugc2V0dGluZ3MgJiBBUEkga2V5cyBtYW5hZ2VtZW50Ci0gW2NvbW1vbi11dGlsc10ocGFja2FnZXMvY29tbW9uLXV0aWxzKTogQ29tbW9uIHNldCBvZiB1dGlsaXRpZXMgZm9yIHRoZSBNUyBBUElzOiBhdXRoZW50aWNhdGlvbiwgc2VjdXJpdHkgZ3VhcmRzLCBwYWdpbmF0aW9uLCBmaWx0ZXJzLCBldGMuCi0gW3NhbGVzLWFwaV0ocGFja2FnZXMvc2FsZXMtYXBpKTogc2V0IG9mIEFQSXMgdG8gcXVlcnkgc2FsZXMgaW5mbwoKIyMgSW1wb3J0YW50Cgo+IFdvcmsgaW4gcHJvZ3Jlc3MuIFVwZGF0ZXMsIGN1c3RvbWl6YXRpb25zIGFuZCBuZXcgZmVhdHVyZXMgYXJlIHN0aWxsIHJlcXVpcmVkLgoKIyMgQnVpbHQgV2l0aAoKRGVzY3JpYmVzIHdoaWNoIHZlcnNpb24gb2YgdGhlIG1haW4gcGFja2FnZXMgYW5kIG1haW4gdG9vbHMuCgp8IE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2lvbiAgfAp8IC0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgIHwgLS0tLS0tLS0gfAp8IFtOZXN0SnNdKHJlZi1uZXN0anMpICAgICAgICAgIHwgdjgueCAgICAgfAp8IFtOb2RlSnNdKHJlZi1ub2RlanMpICAgICAgICAgIHwgdjE3LnggICAgfAp8IFtUeXBlc2NyaXB0XShyZWYtdHlwZXNjcmlwdCkgIHwgdjQueCAgICAgfAp8IFtNb25nb29zZV0ocmVmLW1vbmdvb3NlKSAgICAgIHwgdjYueCAgICAgfAp8IFtNb25nb0RCXShyZWYtbW9uZ29kYikgICAgICAgIHwgdjUueCAgICAgfAp8IFtZYXJuXShyZWYteWFybikgICAgICAgICAgICAgIHwgdjEueCAgICAgfAp8IFtOUE1dKHJlZi1ucG0pICAgICAgICAgICAgICAgIHwgdjgueCAgICAgfAp8IFtEb2NrZXJdKHJlZi1kb2NrZXIpICAgICAgICAgIHwgdjIwLnggICAgfAp8IFtEb2NrZXIgQ29tcG9zZV0ocmVmLWRvY2tlci1jb21wb3NlKSB8IHYyLnggfAoKCiMjIERldiBJbnN0cnVjdGlvbnMKCiMjIyBJbml0IHlvdXIgZGV2IGVudmlyb25tZW50CgpgYGAKbGVybmEgYm9vdHN0cmFwIApsZXJuYSBsaW5rCmxlcm5hIHJ1biBidWlsZApgYGAKT1IKYGBgCm1ha2UgYm9vdHN0cmFwCmBgYAoKIyMjIFRlc3QKCmBgYApsZXJuYSBydW4gdGVzdApgYGAKCiMjIFByZXJlcXVpc2l0ZXMKCjEuIFVuZGVyc3RhbmQgW05lc3RKcyBGdW5kYW1lbnRhbF0oaHR0cDovL25lc3Rqcy5jb20pLCBNYWluIEZyYW1ld29yay4gTm9kZUpzIEZyYW1ld29yayB3aXRoIHN1cHBvcnQgZnVsbHkgVHlwZVNjcmlwdC4KMi4gVW5kZXJzdGFuZFtUeXBlc2NyaXB0IEZ1bmRhbWVudGFsXShodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcpLCBQcm9ncmFtbWluZyBMYW5ndWFnZS4gSXQgd2lsbCBoZWxwIHVzIHRvIHdyaXRlIGFuZCByZWFkIHRoZSBjb2RlLgozLiBVbmRlcnN0YW5kIFtFeHByZXNzSnMgRnVuZGFtZW50YWxdKGh0dHBzOi8vbm9kZWpzLm9yZyksIGEgTm9kZUpzIGJhc2VkIEZyYW1ld29yay4gSXQgaGVscHMgaW4gdW5kZXJzdGFuZGluZyBob3cgdGhlIE5lc3RKcyBGcmFtZXdvcmsgd29ya3MuCjQuIFVuZGVyc3RhbmQgd2hhdCBOb1NxbCBpcyBhbmQgaG93IGl0IHdvcmtzIGFzIGEgZGF0YWJhc2UsIGVzcGVjaWFsbHkgW01vbmdvREIuXShodHRwczovL2RvY3MubW9uZ29kYi5jb20pCgojIyBUT0RPcwoKTmV4dCBkZXZlbG9wbWVudHM6Ci0gWyBdIFByb2R1Y3Rpb246IE5lc3RqcyBjb21wb3NpdGlvbiBhbmQgRG9ja2VyIGltYWdlcyBnZW5lcmF0aW9uCi0gWyBdIENvbXBsZXRlIENJL0NEIG9mIG1vZHVsZXMgdXNpbmcgR2l0aHViIGFjdGlvbnMKLSBbIF0gSW50ZWdyYXRlIFRlcnJhZm9ybSBmb3IgZGVwbG95aW5nIHRoZSBjb250YWluZXJzIG9uIGs4cwotIFsgXSBEZXBsb3kgb24gQXp1cmUgS3ViZXJuZXRlcyBTZXJ2aWNlcwoKIyMgTGljZW5zZQoKRGlzdHJpYnV0ZWQgdW5kZXIgW01JVCBsaWNlbnNlZF1bbGljZW5zZV0uCgoKIyMgQ29udGFjdAoKW0phYmJhIDAxXVthdXRob3ItZW1haWxdCgpbIVtHaXRodWJdW2dpdGh1Yi1zaGllbGRdXVthdXRob3ItZ2l0aHViXQpbIVtMaW5rZWRJbl1bbGlua2VkaW4tc2hpZWxkXV1bYXV0aG9yLWxpbmtlZGluXQoKPCEtLSBCQURHRSBMSU5LUyAtLT4KW3NvcGVuYXBpLWNvbnRyaWJ1dG9ycy1zaGllbGRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9jb250cmlidXRvcnMvamE4OGEvb3BlbmFwaS1uZXN0anMtYXV0aC1tb25nbz9zdHlsZT1mb3ItdGhlLWJhZGdlCltzb3BlbmFwaS1mb3Jrcy1zaGllbGRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9mb3Jrcy9qYTg4YS9vcGVuYXBpLW5lc3Rqcy1hdXRoLW1vbmdvP3N0eWxlPWZvci10aGUtYmFkZ2UKW3NvcGVuYXBpLXN0YXJzLXNoaWVsZF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL2phODhhL29wZW5hcGktbmVzdGpzLWF1dGgtbW9uZ28/c3R5bGU9Zm9yLXRoZS1iYWRnZQpbc29wZW5hcGktaXNzdWVzLXNoaWVsZF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9qYTg4YS9vcGVuYXBpLW5lc3Rqcy1hdXRoLW1vbmdvP3N0eWxlPWZvci10aGUtYmFkZ2UKW3NvcGVuYXBpLWxpY2Vuc2Utc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9qYTg4YS9vcGVuYXBpLW5lc3Rqcy1hdXRoLW1vbmdvP3N0eWxlPWZvci10aGUtYmFkZ2UKCltuZXN0anMtc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9uZXN0anMtJTIzRTAyMzRFLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bmVzdGpzJmxvZ29Db2xvcj13aGl0ZQpbbm9kZWpzLXNoaWVsZF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTm9kZS5qcy0zMzk5MzM/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPW5vZGVkb3RqcyZsb2dvQ29sb3I9d2hpdGUKW3R5cGVzY3JpcHQtc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9UeXBlU2NyaXB0LTAwN0FDQz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289dHlwZXNjcmlwdCZsb2dvQ29sb3I9d2hpdGUKW21vbmdvZGItc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Nb25nb0RCLXdoaXRlP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1tb25nb2RiJmxvZ29Db2xvcj00RUE5NEIKW2p3dC1zaGllbGRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0pXVC0wMDAwMDA/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUpTT04lMjB3ZWIlMjB0b2tlbnMmbG9nb0NvbG9yPXdoaXRlCltqZXN0LXNoaWVsZF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLWplc3QtJTIzQzIxMzI1P3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1qZXN0JmxvZ29Db2xvcj13aGl0ZQpbeWFybi1zaGllbGRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3lhcm4tJTIzMkM4RUJCLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eWFybiZsb2dvQ29sb3I9d2hpdGUKW2RvY2tlci1zaGllbGRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RvY2tlci0lMjMwZGI3ZWQuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1kb2NrZXImbG9nb0NvbG9yPXdoaXRlCgpbZ2l0aHViLXNoaWVsZF06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvR2l0SHViLTEwMDAwMD9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289Z2l0aHViJmxvZ29Db2xvcj13aGl0ZQpbbGlua2VkaW4tc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaW5rZWRJbi0wMDc3QjU/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWxpbmtlZGluJmxvZ29Db2xvcj13aGl0ZQoKPCEtLSBDT05UQUNUUyAtLT4KW2F1dGhvci1saW5rZWRpbl06IGh0dHBzOi8vbGlua2VkaW4uY29tL2luL3NyZW5hdWx0ClthdXRob3ItZW1haWxdOiBtYWlsdG86cjBnM3JAdHV0YS5pbwpbYXV0aG9yLWdpdGh1Yl06IGh0dHBzOi8vZ2l0aHViLmNvbS9qYTg4YQoKPCEtLSBSZXBvIExJTktTIC0tPgpbc29wZW5hcGktZW5kcG9pbnRdOiAvZW5kcG9pbnRzL2VuZHBvaW50cy5qc29uCgo8IS0tIGxpY2Vuc2UgLS0+CltsaWNlbnNlXTogTElDRU5TRS5tZApbZW5kcG9pbnRzXTogZW5kcG9pbnRzLmpzb24KCjwhLS0gRG9jdW1lbnRzIC0tPgpbc29wZW5hcGktZG9jc106IGh0dHBzOi8vYW5kcmVjaHJpc3Rpa2FuLmdpdGh1Yi5pby9hY2stbmVzdGpzLWJvaWxlcnBsYXRlLWRvY3MvCltzb3BlbmFwaS1kb2NzLWZlYXR1cmVzXTogaHR0cHM6Ly9hbmRyZWNocmlzdGlrYW4uZ2l0aHViLmlvL2Fjay1uZXN0anMtYm9pbGVycGxhdGUtZG9jcy8jL2ZlYXR1cmVzL3JlYWRtZQpbc29wZW5hcGktZG9jcy1leGFtcGxlXTogaHR0cHM6Ly9hbmRyZWNocmlzdGlrYW4uZ2l0aHViLmlvL2Fjay1uZXN0anMtYm9pbGVycGxhdGUtZG9jcy8jL2V4YW1wbGUKW3NvcGVuYXBpLWRvY3MtdGlwc106IGh0dHBzOi8vYW5kcmVjaHJpc3Rpa2FuLmdpdGh1Yi5pby9hY2stbmVzdGpzLWJvaWxlcnBsYXRlLWRvY3MvIy90aXBzL3JlYWRtZQpbc29wZW5hcGktZG9jLWVudl06IGh0dHBzOi8vYW5kcmVjaHJpc3Rpa2FuLmdpdGh1Yi5pby9hY2stbmVzdGpzLWJvaWxlcnBsYXRlLWRvY3MvIy9mZWF0dXJlcy9yZWFkbWUKCjwhLS0gUmVmZXJlbmNlIC0tPgpbcmVmLW5lc3Rqc106IGh0dHA6Ly9uZXN0anMuY29tCltyZWYtbW9uZ29vc2VdOiBodHRwczovL21vbmdvb3NlanMuY29tLwpbcmVmLW1vbmdvZGJdOiBodHRwczovL2RvY3MubW9uZ29kYi5jb20vCltyZWYtbm9kZWpzLWJlc3QtcHJhY3RpY2VdOiBodHRwczovL2dpdGh1Yi5jb20vZ29sZGJlcmd5b25pL25vZGViZXN0cHJhY3RpY2VzCltyZWYtbm9kZWpzXTogaHR0cHM6Ly9ub2RlanMub3JnLwpbcmVmLXR5cGVzY3JpcHRdOiBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvCltyZWYtand0XTogaHR0cHM6Ly9qd3QuaW8KW3JlZi1qZXN0XTogaHR0cHM6Ly9qZXN0anMuaW8vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQKW3JlZi1kb2NrZXJdOiBodHRwczovL2RvY3MuZG9ja2VyLmNvbQpbcmVmLWRvY2tlci1jb21wb3NlXTogaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20KW3JlZi15YXJuXTogaHR0cHM6Ly95YXJucGtnLmNvbQpbcmVmLXBvc3RtYW4taW1wb3J0LWV4cG9ydF06IGh0dHBzOi8vbGVhcm5pbmcucG9zdG1hbi5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvaW1wb3J0aW5nLWFuZC1leHBvcnRpbmctZGF0YS8K readmeEtag: '"c6d8d3335be96045209443a85bbcb228b582f386"' readmeLastModified: Wed, 31 May 2023 09:24:27 GMT repositoryId: 504584334 description: >- Generic micro-services dev framework w/ user accounts, permissions and authentication management created: '2022-06-17T15:26:18Z' updated: '2023-11-05T11:35:55Z' language: TypeScript archived: false stars: 5 watchers: 2 forks: 0 owner: ja88a logo: https://avatars.githubusercontent.com/u/80005689?v=4 license: MIT repoEtag: '"da663b135cc5d2cff775a1f800f88df979c377bd341097582ef1eb3ae199ae9d"' repoLastModified: Sun, 05 Nov 2023 11:35:55 GMT category: Server foundInMaster: true - source: openapi3 tags repository: https://github.com/jayvynl/goctl-openapi v3: true id: cd58ead0537042867ae2097f082399d6 repositoryMetadata: base64Readme: >- Z29jdGwtb3BlbmFwaQo9PT0KClRoaXMgcHJvamVjdCBpcyBhIHBsdWdpbiBmb3IgW2dvY3RsXShodHRwczovL2dpdGh1Yi5jb20vemVyb21pY3JvL2dvLXplcm8vdHJlZS9tYXN0ZXIvdG9vbHMvZ29jdGwpLiBJdCdzIGFibGUgdG8gZ2VuZXJhdGUgW29wZW5hcGkgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uIDNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZCkgZmlsZSBmcm9tIFtnby1jdGwgYXBpXShodHRwczovL2dvLXplcm8uZGV2L2VuL2RvY3MvdHV0b3JpYWxzKSBmaWxlLgoKCiMjIyBGZWF0dXJlcwoKLSBnZW5lcmF0ZSBjb3JyZWN0IHNjaGVtYSBmb3IgYW55IGxldmVsIG9mIGVtYmVkZGVkIHN0cnVjdHVyZSB0eXBlLgotIGdlbmVyYXRlIGNvcnJlY3Qgc2NoZW1hIGZvciBjb21wbGljYXRlZCB0eXBlIGRlZmluaXRpb24gbGlrZSBgbWFwW3N0cmluZ11bXW1hcFtpbnRdW10qQXV0aG9yYC4KLSBwYXJzZSBwYXJhbWV0ZXIgY29uc3RyYWludHMgZnJvbSBbdmFsaWRhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1wbGF5Z3JvdW5kL3ZhbGlkYXRvcikgdGFnLgoKCiMjIyBJbnN0YWxsCgpUaGlzIHBsdWdpbidzIHZlcnNpb24gYW5kIGdvY3RsJ3MgdmVyc2lvbiBzaG91bGQgaGF2ZSB0aGUgc2FtZSBtYWpvciBhbmQgbWlub3IgdmVyc2lvbiwgaXQncyByZWNvbW1lbmRlZCB0byBpbnN0YWxsIHRoZSBtYXRjaGluZyB2ZXJzaW9uLiBJZiB2ZXJzaW9ucyBkb2Vzbid0IG1hdGNoLCBpdCBtYXkgbm90IHdvcmsgcHJvcGVybHkuCgpGb3IgZXhhbXBsZSwgaWYgeW91IHVzZSBnb2N0bCB2MS42LjMsIHRoZW4geW91IHNob3VsZCBpbnN0YWxsIHRoaXMgcGx1Z2luIHdpdGg6CgpgYGBzaGVsbApnbyBpbnN0YWxsIGdpdGh1Yi5jb20vamF5dnlubC9nb2N0bC1vcGVuYXBpQHYxLjYKYGBgCgojIyMgVXNhZ2UKCkhlbHAgbWVzc2FnZXMuCgpgYGBiYXNoClVzYWdlIGdvY3RsLW9wZW5hcGk6CiAgLWZpbGVuYW1lIHN0cmluZwogICAgICAgIG9wZW5hcGkgZmlsZSBuYW1lLCBkZWZhdWx0ICJvcGVuYXBpLmpzb24iLCAiLSIgd2lsbCBvdXRwdXQgdG8gc3Rkb3V0LgogIC1mb3JtYXQgc3RyaW5nCiAgICAgICAgc2VyaWFsaXphdGlvbiBmb3JtYXQsICJqc29uIiBvciAieWFtbCIsIGRlZmF1bHQgImpzb24iLgogIC1wcmV0dHkKICAgICAgICBwcmV0dHkgcHJpbnQgb2YganNvbi4KICAtdmVyc2lvbgogICAgICAgIHNob3cgdmVyc2lvbiBhbmQgZXhpdC4KYGBgCgpVc2FnZSBleGFtcGxlLgoKYGBgc2hlbGwKZ29jdGwgYXBpIHBsdWdpbiAtcGx1Z2luIGdvY3RsLW9wZW5hcGkgLWFwaSBleGFtcGxlLmFwaSAtZGlyIGV4YW1wbGUKYGBgCgpUYWtlIHRoZSBhcGkgZmlsZSBmcm9tIFtleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vamF5dnlubC9nb2N0bC1vcGVuYXBpL2Jsb2IvbWFpbi9leGFtcGxlL2V4YW1wbGUuYXBpKSwgW3RoZSBnZW5lcmF0ZWQgb3BlbmFwaSBmaWxlXShodHRwczovL2dpdGh1Yi5jb20vamF5dnlubC9nb2N0bC1vcGVuYXBpL2Jsb2IvbWFpbi9leGFtcGxlL29wZW5hcGkuanNvbikgY2FuIGJlIHZpc3VhbGl6ZWQgYnkgW3N3YWdnZXIgZWRpdG9yXShodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLz91cmw9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pheXZ5bmwvZ29jdGwtb3BlbmFwaS9tYWluL2V4YW1wbGUvb3BlbmFwaS5qc29uKS4K readmeEtag: '"adfc8248075e6dc3012076c4198e269fc8836157"' readmeLastModified: Thu, 28 Mar 2024 14:49:36 GMT repositoryId: 776884350 description: >- OpenAPI3 generator for [goctl](https://github.com/zeromicro/go-zero/tree/master/tools/goctl) created: '2024-03-24T17:56:45Z' updated: '2024-06-06T02:57:07Z' language: Go archived: false stars: 5 watchers: 1 forks: 1 owner: jayvynl logo: https://avatars.githubusercontent.com/u/34599950?v=4 license: MIT repoEtag: '"f0767545b2e3c609862703c119686d71d9c774b65abc50dcc467a197a473c154"' repoLastModified: Thu, 06 Jun 2024 02:57:07 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/phstudy/einvoice-api v3: true repositoryMetadata: repositoryId: 122307410 description: 財政部電子發票應用 API 規格 - OpenAPI 3.0 格式 created: '2018-02-21T08:00:03Z' updated: '2024-06-16T15:38:30Z' language: null archived: false stars: 5 watchers: 2 forks: 4 owner: phstudy logo: https://avatars.githubusercontent.com/u/2286805?v=4 license: MIT repoEtag: '"dc5527fef4901ca75a3119ddbf2e4a569617e826c4fd3130442122c7049d34ae"' repoLastModified: Sun, 16 Jun 2024 15:38:30 GMT foundInMaster: true id: c508d10b2d4a66d9a84dd2a08e25e125 - source: openapi3 tags repository: https://github.com/hardiksinghbehl/spring-boot-freemarker-java-mail-api v3: true repositoryMetadata: base64Readme: >- IyBIZWR3aWcKIyMjIyBQcm9vZi1vZi1jb25jZXB0IGFwcGxpY2F0aW9uIHRvIHNlbmQgZW1haWxzIHRvIHVzZXIgb24gZXZlbnQgb2NjdXJlbmNlCgpbQ2xpY2sgSGVyZSBUbyBVc2UgUnVubmluZyBBcHBsaWNhdGlvbl0oaHR0cHM6Ly9qYXZhLW1haWwtZnJlZW1hcmtlci1zcHJpbmcuaGVyb2t1YXBwLmNvbS9oZWR3aWcvc3dhZ2dlci11aS5odG1sKQoKIyMgVGVjaG5vbG9naWVzIFVzZWQKKiBKYXZhIFNwcmluZyBCb290CiogSmF2YU1haWwtQVBJCiogU3ByaW5nIEV2ZW50cwoqIEFwYWNoZSBGcmVlbWFya2VyCiogSlBBL0gyIGluLW1lbW9yeSBkYXRhYmFzZQoqIExvbWJvawoqIE9wZW4tQVBJIChzd2FnZ2VyLXVpKSAKKiBbQm9vdHN0cmFwLUVtYWlsIEVkaXRvcl0oaHR0cHM6Ly9hcHAuYm9vdHN0cmFwZW1haWwuY29tL2VkaXRvcikKCiMjIFNwcmluZyBFdmVudHMKKiBbUmVmZXJlbmNlIEFydGljbGVdKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS9zcHJpbmctZXZlbnRzKQoqIEV2ZW50IGNsYXNzZXMgd2lsbCByZXByZXNlbnQgYW4gZXZlbnQgZm9yIHdoaWNoIGEgbWFpbCBoYXMgdG8gYmUgc2VudCAoYWNjb3VudC1jcmVhdGlvbi1ldmVudCBpbiB0aGlzIGNvbnRleHQgY2FuIGJlIGFueXRoaW5nIGRlcGVuZGluZyBvbiBidXNpbmVzcyBsb2dpYykKKiBBIGxpc3RlbmVyIGNsYXNzIHRoYXQgbGlzdGVucyB0byB0aGUgYWJvdmUgY3JlYXRlZCBldmVudCBhbmQgZXhlY3V0ZXMgY29kZSB3aGVuZXZlciB0aGUgYWJvdmUgZXZlbnQgb2NjdXJlcwoqIEEgcHVibGlzaGVyIHdpbGwgcHVibGlzaCB0aGUgZXZlbnQgKG5vdGlmeSB0aGF0IGV2ZW50IGhhcyBvY2N1cnJlZCkgYW5kIGNhbiBiZSBpbmplY3RlZCBpbiB0aGUgc2VydmljZSBsYXllcgoqIExpc3RlbmVyIG1ldGhvZCB0byBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSAocmVjb21tZW5kZWQpCgojIyBNYWluIGNsYXNzZXMgKERyYWcgdG8gbmV3IHdpbmRvdykKKiBbRW1haWwtU2VydmljZV0oaHR0cHM6Ly9naXRodWIuY29tL2hhcmRpa1NpbmdoQmVobC9zcHJpbmctYm9vdC1mcmVlbWFya2VyLWphdmEtbWFpbC1hcGkvYmxvYi9tYWluL3NyYy9tYWluL2phdmEvY29tL2hhcmRpay9oZWR3aWcvbWFpbC9zZXJ2aWNlL0VtYWlsU2VydmljZS5qYXZhKSAodG8gc2VuZCBlbWFpbHMgdG8gcHJvdmlkZWQgZW1haWwtaWQgd2l0aCBwcm92aWRlZCB0ZW1wbGF0ZSBhbmQgc3ViamVjdCkKKiBbQWNjb3VudCBDcmVhdGlvbiBFdmVudF0oaHR0cHM6Ly9naXRodWIuY29tL2hhcmRpa1NpbmdoQmVobC9zcHJpbmctYm9vdC1mcmVlbWFya2VyLWphdmEtbWFpbC1hcGkvYmxvYi9tYWluL3NyYy9tYWluL2phdmEvY29tL2hhcmRpay9oZWR3aWcvbWFpbC9ldmVudC9Vc2VyQWNjb3VudENyZWF0aW9uRXZlbnQuamF2YSkKKiBbQWNjb3VudCBDcmVhdGlvbiBFdmVudCBMaXN0ZW5lcl0oaHR0cHM6Ly9naXRodWIuY29tL2hhcmRpa1NpbmdoQmVobC9zcHJpbmctYm9vdC1mcmVlbWFya2VyLWphdmEtbWFpbC1hcGkvYmxvYi9tYWluL3NyYy9tYWluL2phdmEvY29tL2hhcmRpay9oZWR3aWcvbWFpbC9saXN0ZW5lci9Vc2VyQWNjb3VudENyZWF0aW9uTGlzdGVuZXIuamF2YSkgKHJlY2VpdmVzIHVzZXJDcmVhdGlvblJlcXVlc3REdG8gYXMgaW5wdXQgYW5kIHNlbmRzIG1haWwgdG8gcHJvdmlkZWQgZW1haWwtaWQgYXN5bmNocm9ub3VzbHkpCiogW1VzZXIgU2VydmljZV0oaHR0cHM6Ly9naXRodWIuY29tL2hhcmRpa1NpbmdoQmVobC9zcHJpbmctYm9vdC1mcmVlbWFya2VyLWphdmEtbWFpbC1hcGkvYmxvYi9tYWluL3NyYy9tYWluL2phdmEvY29tL2hhcmRpay9oZWR3aWcvc2VydmljZS9Vc2VyU2VydmljZS5qYXZhKSAoY2xhc3MgdGhhdCBjcmVhdGVzIHVzZXIgYWNjb3VudCBpbiB0aGUgc3lzdGVtIGFuZCBwdWJsaXNoZXMgdGhhdCBBY2NvdW50Q3JlYXRpb25FdmVudCBoYXMgb2NjdXJyZWQpCgojIyBCb290c3RyYXAgRW1haWwKCiogSFRNTCBmb3IgZW1haWxzIGlzIHNsaWdodGx5IGRpZmZlcmVudCBmcm9tIEhUTUwgZm9yIHdlYgoqIENvcHkgdGhlIEhUTUwgZ2VuZXJhdGVkIGZyb20gYm9vdHN0cmFwIGVtYWlsIGVkaXRvciAocmlnaHQgcGFydCBvZiBzY3JlZW4pIHRvIGEgLmZ0bCBmaWxlIHVuZGVyICoqc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlcyoqIChjb25maWd1cmVkIGluIEZyZWVtYXJrZXJDb25maWd1cmF0aW9uLmNsYXNzKQoqICoqYWNjb3VudC1jcmVhdGlvbi1zdWNjZXNzLmZ0bCoqIGluIHRlbXBsYXRlcyBmb2xkZXIgd2lsbCBiZSBnZW5lcmF0ZWQgdG8gdGhlIGJlbG93IGltYWdlCiogJHtlbWFpbElkfSBhbmQgJHtmdWxsTmFtZX0gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gcHJvdmlkZWQgZW1haWxJZCBhbmQgZnVsbG5hbWUgd2l0aCB0aGUgaGVscCBvZiBhcGFjaGUgZnJlZW1hcmtlcgoKIVttYWlsXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS82OTY5MzYyMS8xMjAyNDA4OTUtNGZjNmRkMDAtYzI3Zi0xMWViLTlmYzUtZWY3ZGE5MTQ0ZDVkLnBuZykKCiMjIExvY2FsIFNldHVwCgoqIEluc3RhbGwgSmF2YSAxNQoqIEluc3RhbGwgTWF2ZW4KClJlY29tbWVuZGVkIHdheSBpcyB0byB1c2UgW3Nka21hbl0oaHR0cHM6Ly9zZGttYW4uaW8vKSBmb3IgaW5zdGFsbGluZyBib3RoIG1hdmVuIGFuZCBqYXZhCgpHbyB0byBhcHBsaWNhdGlvbi5wcm9wZXJ0aWVzIGFuZCBjb25maWd1cmUgeW91ciBlbWFpbCBhbmQgW2FwcCBwYXNzd29yZF0oaHR0cHM6Ly9kZXZhbnN3ZXJzLmNvL2NyZWF0ZS1hcHBsaWNhdGlvbi1zcGVjaWZpYy1wYXNzd29yZC1nbWFpbC8pIChkaWZmcmVudCBmcm9tIHJlZ3VsYXIgcGFzc3dvcmRzKQoKYGBgCnNwcmluZy5tYWlsLnVzZXJuYW1lID0gPEVNQUlMLUlELUhFUkU+CnNwcmluZy5tYWlsLnBhc3N3b3JkID0gPFBBU1NXT1JELUhFUkU+CmBgYAoKUnVuIHRoZSBiZWxvdyBjb21tYW5kcyBpbiB0aGUgY29yZQoKYGBgCm12biBjbGVhbiBpbnN0YWxsCmBgYAoKYGBgCm12biBzcHJpbmctYm9vdDpydW4KYGBgCgpzZXJ2ZXIgcG9ydCBpcyBjb25maWd1cmVkIHRvIDkwOTAgYW5kIGJhc2UtdXJsIHRvIC9oZWR3aWcgd2hpY2ggY2FuIGJlIGNoYW5nZWQgaW4gYXBwbGljYXRpb24ucHJvcGVydGllcyBmaWxlCgpHbyB0byB0aGUgYmVsb3cgdXJsIHRvIHZpZXcgc3dhZ2dlci11aSAoQVBJIGRvY3MpCgpgYGAKaHR0cDovL2xvY2FsaG9zdDo5MDkwL2hlZHdpZy9zd2FnZ2VyLXVpLmh0bWwKYGBgCgpSdW4gVGVzdHMKCmBgYAptdm4gdGVzdApgYGA= readmeEtag: '"e5c50f99c61fbb8cebe0b2911499b1a6f0e2e0d3"' readmeLastModified: Sun, 13 Jun 2021 09:50:13 GMT repositoryId: 372554187 description: >- POC that sends emails to user on account creation event occurrence: made using java spring boot, apache freemarker, java-mail-API, bootstrap email editor and spring events. created: '2021-05-31T15:35:13Z' updated: '2023-10-25T11:34:47Z' language: Java archived: false stars: 5 watchers: 1 forks: 3 owner: hardikSinghBehl logo: https://avatars.githubusercontent.com/u/69693621?v=4 repoEtag: '"b719f5044843142a1548a4ad65daab76390d6f1382759f4d94f875725976dcc9"' repoLastModified: Wed, 25 Oct 2023 11:34:47 GMT foundInMaster: true category: Testing id: 9ca6ae8f94bc87c4e5521849e283ea42 - source: openapi3 tags repository: https://github.com/umarov-safar/laravel-openapi-codegen v3: true id: 3bb9c1a130e5239fe359c38168f61892 repositoryMetadata: base64Readme: >- IyBMYXJhdmVsIE9wZW5BUEkgQ29kZSBHZW5lcmF0aW9uCgojIyBJbnRyb2R1Y3Rpb24KVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gZ2VuZXJhdGUgTGFyYXZlbCByb3V0ZXMsIHJlcXVlc3RzLCBhbmQgY29udHJvbGxlcnMgYmFzZWQgb24gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBpbiBZQU1MIGZvcm1hdC4KCgojIyMgTW90aXZhdGlvbgoqKkZvciBleGFtcGxlLCB3ZSBoYXZlIHRoaXMgb3BlbmFwaS55YW1sKioKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogIHRpdGxlOiBVc2VyIEFQSQogIHZlcnNpb246IDEuMC4wCnBhdGhzOgogIC91c2VyczoKICAgIGdldDoKICAgICAgIy4uLgogICAgICB4LW9nLXJvdXRlLW5hbWU6IGxpc3RVc2VycwogICAgICB4LW9nLWNvbnRyb2xsZXI6IEFwcFxIdHRwXENvbnRyb2xsZXJzXFVzZXJzQ29udHJvbGxlckBpbmRleAogICAgICB4LW9nLXNraXAtcmVxdWVzdDogdHJ1ZQogICAgICB4LW9nLW1pZGRsZXdhcmVzOiBhdXRoCiAgICAgIHgtb2ctc2tpcC1yZXNvdXJjZTogZmFsc2UKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IEEgbGlzdCBvZiB1c2Vycy4KICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICBkYXRhOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlcicKICAgIHBvc3Q6CiAgICAgIC4uLgogICAgICB4LW9nLXJvdXRlLW5hbWU6IGNyZWF0ZVVzZXIKICAgICAgeC1vZy1jb250cm9sbGVyOiBBcHBcSHR0cFxDb250cm9sbGVyc1xVc2Vyc0NvbnRyb2xsZXJAc3RvcmUKICAgICAgeC1vZy1za2lwLXJlcXVlc3Q6IGZhbHNlCiAgICAgIHgtb2ctc2tpcC1yZXNvdXJjZTogZmFsc2UKICAgICAgeC1vZy1taWRkbGV3YXJlczogYXV0aCxhZG1pbgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAxJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBVc2VyIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIGRhdGE6CiAgICAgICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCiAgL3VzZXJzL3t1c2VySWR9OgogICAgcHV0OgogICAgICAuLi4KICAgICAgeC1vZy1nZW5lcmF0aW9uOiB0cnVlCiAgICAgIHgtb2ctcm91dGUtbmFtZTogdXBkYXRlVXNlcgogICAgICB4LW9nLWNvbnRyb2xsZXI6IEFwcFxIdHRwXENvbnRyb2xsZXJzXFVzZXJzQ29udHJvbGxlckB1cGRhdGUKICAgICAgeC1vZy1za2lwLXJlcXVlc3Q6IGZhbHNlCiAgICAgIHgtb2ctbWlkZGxld2FyZXM6IGF1dGgsYWRtaW4KICAgICAgeC1vZy1za2lwLXJlc291cmNlOiBmYWxzZQogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogdXNlcklkCiAgICAgICAgICBpbjogcGF0aAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiB0aGUgdXNlciB0byB1cGRhdGUuCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyJwogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVXNlciB1cGRhdGVkIHN1Y2Nlc3NmdWxseS4KICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXInCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFVzZXI6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZm9ybWF0OiBpbnQ2NAogICAgICAgIHVzZXJuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBwYXR0ZXJuOiAnXlthLXpBLVowLTlfLV17MywxNn0kJwogICAgICAgIGVtYWlsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IGVtYWlsCiAgICAgICAgICBtYXhMZW5ndGg6IDMwCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gdXNlcm5hbWUKICAgICAgICAtIGVtYWlsCmBgYApieSB1c2luZyBwYWNrYWdlIGFmdGVyIHJ1bm5pbmcgYHBocCBhcnRpc2FuIG9wZW5hcGk6Z2VuZXJhdGUtY29kZWAgcGFja2FnZSBnZW5lcmF0ZXMgZm9yIHlvdSBiZWxvdyBjb2RlLgoKYHJvdXRlcy9vcGVuYXBpLWNvZGVnZW4ucGhwYApgYGBwaHAKPD9waHAKCnVzZSBJbGx1bWluYXRlXFN1cHBvcnRcRmFjYWRlc1xSb3V0ZTsKdXNlIEFwcFxIdHRwXENvbnRyb2xsZXJzXFVzZXJzQ29udHJvbGxlcjsKClJvdXRlOjpnZXQoJ3VzZXJzJywgW1VzZXJzQ29udHJvbGxlcjo6Y2xhc3MsICdpbmRleCddKS0+bmFtZSgnbGlzdFVzZXJzJyktPm1pZGRsZXdhcmUoWydhdXRoJ10pOwpSb3V0ZTo6cG9zdCgndXNlcnMnLCBbVXNlcnNDb250cm9sbGVyOjpjbGFzcywgJ3N0b3JlJ10pLT5uYW1lKCdjcmVhdGVVc2VyJyktPm1pZGRsZXdhcmUoWydhdXRoJywgJ2FkbWluJ10pOwpSb3V0ZTo6cHV0KCd1c2Vycy97dXNlcklkfScsIFtVc2Vyc0NvbnRyb2xsZXI6OmNsYXNzLCAndXBkYXRlJ10pLT5uYW1lKCd1cGRhdGVVc2VyJyktPm1pZGRsZXdhcmUoWydhdXRoJywgJ2FkbWluJ10pOwpgYGAKYGFwcC9IdHRwL0NvbnRyb2xsZXJzL1VzZXJzQ29udHJvbGxlci5waHBgCmBgYHBocAo8P3BocAoKbmFtZXNwYWNlIEFwcFxIdHRwXENvbnRyb2xsZXJzOwoKdXNlIElsbHVtaW5hdGVcSHR0cFxKc29uUmVzcG9uc2U7CnVzZSBJbGx1bWluYXRlXEh0dHBcUmVxdWVzdDsKdXNlIEFwcFxIdHRwXFJlc291cmNlc1xVc2Vyc1Jlc291cmNlOwp1c2UgQXBwXEh0dHBcUmVxdWVzdHNcU3RvcmVVc2Vyc1JlcXVlc3Q7CnVzZSBBcHBcSHR0cFxSZXF1ZXN0c1xVcGRhdGVVc2Vyc1JlcXVlc3Q7CgpjbGFzcyBVc2Vyc0NvbnRyb2xsZXIKewogICAgcHVibGljIGZ1bmN0aW9uIGluZGV4KCk6IEpzb25SZXNwb25zZQogICAgewogICAgICAgIC8vIHJldHVybiBVc2Vyc1Jlc291cmNlKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHN0b3JlKFN0b3JlVXNlcnNSZXF1ZXN0ICRyZXF1ZXN0KTogSnNvblJlc3BvbnNlCiAgICB7CiAgICAgICAgLy8gcmV0dXJuIFVzZXJzUmVzb3VyY2UoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlKGludCAkdXNlcklkLCBVcGRhdGVVc2Vyc1JlcXVlc3QgJHJlcXVlc3QpOiBKc29uUmVzcG9uc2UKICAgIHsKICAgICAgICAvLyByZXR1cm4gVXNlcnNSZXNvdXJjZSgpOwogICAgfQoKfQpgYGAKYGFwcC9IdHRwL1JlcXVlc3RzL1N0b3JlVXNlcnNSZXF1ZXN0LnBocGAKYGBgcGhwCjw/cGhwCgpuYW1lc3BhY2UgQXBwXEh0dHBcUmVxdWVzdHM7Cgp1c2UgSWxsdW1pbmF0ZVxIdHRwXFJlcXVlc3Q7CgpjbGFzcyBTdG9yZVVzZXJzUmVxdWVzdCBleHRlbmRzIFJlcXVlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHJ1bGVzKCk6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiBbJ3JlcXVpcmVkJywgJ3N0cmluZycsICdyZWdleDovXlthLXpBLVowLTlfLV17MywxNn0kLyddLAogICAgICAgICAgICAnZW1haWwnID0+IFsncmVxdWlyZWQnLCAnc3RyaW5nJywgJ2VtYWlsJywgJ21heDozMCddLAogICAgICAgIF07CiAgICB9Cn0KYGBgCmBhcHAvSHR0cC9SZXF1ZXN0cy9VcGRhdGVVc2Vyc1JlcXVlc3QucGhwYApgYGBwaHAKPD9waHAKCm5hbWVzcGFjZSBBcHBcSHR0cFxSZXF1ZXN0czsKCnVzZSBJbGx1bWluYXRlXEh0dHBcUmVxdWVzdDsKCmNsYXNzIFVwZGF0ZVVzZXJzUmVxdWVzdCBleHRlbmRzIFJlcXVlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHJ1bGVzKCk6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiBbJ3JlcXVpcmVkJywgJ3N0cmluZycsICdyZWdleDovXlthLXpBLVowLTlfLV17MywxNn0kLyddLAogICAgICAgICAgICAnZW1haWwnID0+IFsncmVxdWlyZWQnLCAnc3RyaW5nJywgJ2VtYWlsJywgJ21heDozMCddLAogICAgICAgIF07CiAgICB9Cn0KYGBgCmBhcHAvSHR0cC9SZXNvdXJjZXMvVXNlcnNSZXNvdXJjZS5waHBgCmBgYHBocAo8P3BocAoKbmFtZXNwYWNlIEFwcFxIdHRwXFJlc291cmNlczsKCnVzZSBJbGx1bWluYXRlXEh0dHBcUmVxdWVzdDsKdXNlIElsbHVtaW5hdGVcSHR0cFxSZXNvdXJjZXNcSnNvblxKc29uUmVzb3VyY2U7CgpjbGFzcyBVc2Vyc1Jlc291cmNlIGV4dGVuZHMgSnNvblJlc291cmNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0b0FycmF5KFJlcXVlc3QgJHJlcXVlc3QpOiBhcnJheQogICAgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICdpZCcgPT4gJHRoaXMtPmlkLAogICAgICAgICAgICAndXNlcm5hbWUnID0+ICR0aGlzLT51c2VybmFtZSwKICAgICAgICAgICAgJ2VtYWlsJyA9PiAkdGhpcy0+ZW1haWwsCiAgICAgICAgXTsKICAgIH0KfQpgYGAKIyMgSW5zdGFsbGF0aW9uClRvIGluc3RhbGwgdGhlIHBhY2thZ2UsIHlvdSBjYW4gdXNlIENvbXBvc2VyOgoKYGBgCmNvbXBvc2VyIHJlcXVpcmUgLS1kZXYgbGFyYXZlbC1vcGVuYXBpL2NvZGVnZW4KYGBgCgojIyMgQ29uZmlndXJhdGlvbgpBZnRlciBpbnN0YWxsaW5nIHRoZSBwYWNrYWdlLCB5b3UnbGwgbmVlZCB0byBjb25maWd1cmUgaXQgdG8gc3VpdCB5b3VyIHByb2plY3QncyBuZWVkcy4gVGhpcyBwYWNrYWdlIHByb3ZpZGVzIHZhcmlvdXMgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUgY29kZSBnZW5lcmF0aW9uIHByb2Nlc3MuCgojIyMjIFB1Ymxpc2hpbmcgQ29uZmlndXJhdGlvbgpgYGAKcGhwIGFydGlzYW4gdmVuZG9yOnB1Ymxpc2ggLS1wcm92aWRlcj0iTGFyYXZlbE9wZW5hcGlcQ29kZWdlblxMYXJhdmVsT3BlbmFwaUNvZGVnZW5Qcm92aWRlciIKYGBgClRoaXMgY29tbWFuZCB3aWxsIGNyZWF0ZSBhbiBgb3BlbmFwaS1jb2RlZ2VuLnBocGAgZmlsZSBpbiB5b3VyIExhcmF2ZWwgYXBwbGljYXRpb24ncyBgY29uZmlnYCBkaXJlY3RvcnkuCgojIyMgQ29uZmlndXJhdGlvbiBPcHRpb25zCgpJbiB0aGUgb3BlbmFwaS1jb2RlZ2VuLnBocCBjb25maWd1cmF0aW9uIGZpbGUsIHlvdSdsbCBmaW5kIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKiBgYXBpX2RvY3NfdXJsYDogU3BlY2lmaWVzIHRoZSBVUkwgd2hlcmUgdGhlIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiB3aWxsIGJlIGFjY2Vzc2libGUuIFRoaXMgVVJMIHNob3VsZCBwb2ludCB0byB0aGUgbG9jYXRpb24gb2YgeW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZS4KKiBgZW50aXRpZXNgOiBEZWZpbmVzIHRoZSBlbnRpdGllcyBmb3Igd2hpY2ggY29kZSBnZW5lcmF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkLiBZb3UgY2FuIHNwZWNpZnkgd2hpY2ggZW50aXRpZXMgc2hvdWxkIGJlIGdlbmVyYXRlZCBieSBhZGRpbmcgdGhlbSB0byB0aGlzIGFycmF5LiBTdXBwb3J0ZWQgZW50aXRpZXMgaW5jbHVkZToKICAqIGByb3V0ZWA6IEdlbmVyYXRlIExhcmF2ZWwgcm91dGVzIGJhc2VkIG9uIE9wZW5BUEkgcGF0aHMuCiAgKiBgcmVxdWVzdGA6IEdlbmVyYXRlIHJlcXVlc3QgY2xhc3NlcyBiYXNlZCBvbiBPcGVuQVBJIHJlcXVlc3QgYm9kaWVzLgogICogYHJlc291cmNlYDogR2VuZXJhdGUgcmVzb3VyY2UgY2xhc3NlcyBmb3IgQVBJIHJlc3BvbnNlcy4KICAqIGBjb250cm9sbGVyYDogR2VuZXJhdGUgY29udHJvbGxlcnMgZm9yIGhhbmRsaW5nIEFQSSByZXF1ZXN0cy4KICAKICAgIEJ5IGRlZmF1bHQsIGFsbCBzdXBwb3J0ZWQgZW50aXRpZXMgd2lsbCBiZSBnZW5lcmF0ZWQuIAogICAgVG8gZXhjbHVkZSBzcGVjaWZpYyBlbnRpdGllcywgc2ltcGx5IHJlbW92ZSB0aGVtIGZyb20gdGhpcyBhcnJheS4KKiBgcGF0aHNgOiBTcGVjaWZpZXMgYWRkaXRpb25hbCBwYXRocyB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi4gQ3VycmVudGx5LCBvbmx5IHRoZSByb3V0ZXNfZmlsZSBvcHRpb24gaXMgYXZhaWxhYmxlLCB3aGljaCBkZWZpbmVzIHRoZSBmaWxlIHBhdGggd2hlcmUgdGhlIE9wZW5BUEkgcm91dGVzIHdpbGwgYmUgZ2VuZXJhdGVkLgoKIyMjIFVzYWdlCiMjIyMgR2VuZXJhdGUgY29kZQpUbyBnZW5lcmF0ZSBMYXJhdmVsIGNvZGUgZnJvbSBhbiBPcGVuQVBJIFlBTUwgZmlsZSwgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBBcnRpc2FuIGNvbW1hbmQ6CgpgYGAKcGhwIGFydGlzYW4gb3BlbmFwaTpnZW5lcmF0ZS1jb2RlCmBgYAoKVGhpcyBjb21tYW5kIHdpbGwgZ2VuZXJhdGUgTGFyYXZlbCByb3V0ZXMsIHJlcXVlc3RzLCByZXNvdXJjZSBhbmQgY29udHJvbGxlcnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIE9wZW5BUEkgWUFNTCBmaWxlLgoKCiMjIyBDb250cmlidXRpbmcKSSB3ZWxjb21lIGNvbnRyaWJ1dGlvbnMgZnJvbSB0aGUgY29tbXVuaXR5ISBJZiB5b3UgaGF2ZSBhbnkgaWRlYXMgZm9yIGltcHJvdmVtZW50cyBvciBmaW5kIGFueSBpc3N1ZXMsIHBsZWFzZSBmZWVsIGZyZWUgdG8gb3BlbiBhbiBpc3N1ZSBvciBzdWJtaXQgYSBwdWxsIHJlcXVlc3Qgb24gR2l0SHViLgoKIyMjIExpY2Vuc2UKVGhpcyBwYWNrYWdlIGlzIG9wZW4tc291cmNlIHNvZnR3YXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KCiMjIyBTdXBwb3J0CklmIHlvdSBlbmNvdW50ZXIgYW55IHByb2JsZW1zIG9yIGhhdmUgcXVlc3Rpb25zIGFib3V0IHVzaW5nIHRoZSBwYWNrYWdlLCBwbGVhc2UgZG9uJ3QgaGVzaXRhdGUgdG8gcmVhY2ggb3V0IHRvIHVzIHZpYSBlbWFpbCAoc2FmYXJ1bWFyb3ZAZ21haWwuY29tKSBvciBHaXRIdWIgaXNzdWVzLgo= readmeEtag: '"aae2352e8094f6dc0dc9580267cd8adc8d0dee73"' readmeLastModified: Tue, 06 Aug 2024 14:38:39 GMT repositoryId: 766410829 description: Laravel OpenAPI Code Generation created: '2024-03-03T07:23:26Z' updated: '2024-08-06T14:38:42Z' language: PHP archived: false stars: 5 watchers: 1 forks: 0 owner: umarov-safar logo: https://avatars.githubusercontent.com/u/68920816?v=4 repoEtag: '"d2dc4cb69701b25601129b4785fe6ff366a8e83786e0190a41816813efaf895d"' repoLastModified: Tue, 06 Aug 2024 14:38:42 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/progremir/django-swagger-render v3: true repositoryMetadata: base64Readme: >- IyBEamFuZ28gU3dhZ2dlciBSZW5kZXIKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIFByZXJlcXVpc2l0ZXMKCi0gcHl0aG9uID49IDMuNQotIERqYW5nbyA+PSAyLjAKCiMjIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdXNpbmcgcGlwCgpgYGAKcGlwIGluc3RhbGwgZGphbmdvLXN3YWdnZXItcmVuZGVyCmBgYAoKQWRkICdzd2FnZ2VyX3JlbmRlcicgdG8geW91ciBJTlNUQUxMRURfQVBQUyBzZXR0aW5nLgoKYGBgCklOU1RBTExFRF9BUFBTID0gWwogICAgLi4uCiAgICAnc3dhZ2dlcl9yZW5kZXInLApdCmBgYAoKQ3JlYXRlIHRoZSBmb2xkZXIgd2hlcmUgeW91IHdpbGwgc3RvcmUgeW91ciBkb2N1bWVudGF0aW9uCgpgYGAKbWtkaXIgZG9jcwpgYGAKCkNyZWF0ZSB0aGUgYGluZGV4LnltbGAgZmlsZSB3aXRoIHNvbWUgYE9QRU5BUElgIG9yIGBTd2FnZ2VyYCBzcGVjaWZpY2F0aW9ucwoKYGBgCnRvdWNoIGRvY3MvaW5kZXgueW1sCmBgYAoKU2VydmUgeW91ciBkb2N1bWVudGF0aW9uIGZpbGVzCmBgYAp1cmxwYXR0ZXJucyArPSBzdGF0aWMoJy9kb2NzLycsIGRvY3VtZW50X3Jvb3Q9J2RvY3MnKQpgYGAKCkFkZCBgU1dBR0dFUl9ZQU1MX0ZJTEVOQU1FYCBzZXR0aW5nIHRvIHlvdXIgYHNldHRpbmdzLnB5YAoKYGBgClNXQUdHRVJfWUFNTF9GSUxFTkFNRSA9ICcvZG9jcy9pbmRleC55bWwnCmBgYAoKQWRkIHRoZSBgU3dhZ2dlclVJVmlld2AgdG8geW91ciB1cmxzCgpgYGAKZnJvbSBzd2FnZ2VyX3JlbmRlci52aWV3cyBpbXBvcnQgU3dhZ2dlclVJVmlldwoKCnVybHBhdHRlcm5zID0gWwogICAgLi4uCiAgICBwYXRoKCdzd2FnZ2VyLycsIFN3YWdnZXJVSVZpZXcuYXNfdmlldygpKSwKXQpgYGAKClZvaWxhIQo= readmeEtag: '"880cca32dd57b1eb6398cdcd4c9d9d75e3e3982d"' readmeLastModified: Sat, 27 Jun 2020 11:25:49 GMT repositoryId: 200704843 description: Swagger documentation in Django created: '2019-08-05T18:04:35Z' updated: '2023-07-21T06:43:55Z' language: HTML archived: false stars: 5 watchers: 3 forks: 2 owner: progremir logo: https://avatars.githubusercontent.com/u/17231674?v=4 license: MIT repoEtag: '"9762294ab2ac0ffb13acb08585fd75763243f978a1d8ef23fa4a19817a5c8207"' repoLastModified: Fri, 21 Jul 2023 06:43:55 GMT foundInMaster: true category: - Description Validators - Server Implementations id: e98db438e3bce57985e796d2d2a012e2 - source: openapi3 tags repository: https://github.com/shakibmostahid/writing-swagger v3: true id: bff913362ef7940f3409c2d9e378af3a repositoryMetadata: base64Readme: >- IyBXaGF0IGlzIFN3YWdnZXIgRG9jdW1lbnRhdGlvbj8gCgpTd2FnZ2VyIGlzIHRoZSBzdGFuZGFyZCB3YXkgb2YgZG9jdW1lbnRpbmcgUkVTVCBBUElzLiAqU3dhZ2dlciBpcyBhIHNldCBvZiBvcGVuLXNvdXJjZSB0b29scyBidWlsdCBhcm91bmQgdGhlICoqT3BlbkFQSSBTcGVjaWZpY2F0aW9uKiogdGhhdCBjYW4gaGVscCB0byBkZXNpZ24sIGJ1aWxkLCBkb2N1bWVudCBhbmQgY29uc3VtZSBSRVNUIEFQSXMuKiBUaGlzIGlzIGEgcG9wdWxhciBmcmFtZXdvcmsgd2hpY2ggdXNlZCBmb3IgZG9jdW1lbnRpbmcgdGhlIEFQSXMgaW4gYSBjb21tb24gZm9ybWF0LgoKVG8gbGVhcm4gbW9yZSBhYm91dCBTd2FnZ2VyLCBwbGVhc2UgZm9sbG93IHRoZSBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8gImRvY3VtZW50YXRpb24iKS4KCiMgV2h5IGlzIFN3YWdnZXIgaXMgaGVscGZ1bD8gCgpXZSBjYW4gdGhpbmsgc3dhZ2dlciBkb2N1bWVudGF0aW9uIGFzIGEgYmx1ZXByaW50IG9mIHRoZSBBUElzLiBCeSBjaGVja2luZyB0aGUgYmx1ZXByaW50IGRldmVsb3BlciBjYW4gZ2V0IGFuIGlkZWEgb2YgdGhlIHRhc2sgb2YgYW4gQVBJLiBTd2FnZ2VyIGdpdmVzIGEgdmlzdWFsIGlkZWEgb2YgdGhlIEFQSXMsIHdoZXJlIHVzZXIgZG9lc27igJl0IG5lZWQgdG8ga25vdyB3aGF0IHRlY2hub2xvZ2llcyBpcyBiZWluZyB1c2VkIHRvIGRldmVsb3AgdGhlIEFQSXMuIEFQSSBpcyBkb2N1bWVudGVkIGluIGEgY29tbW9uIGZvcm1hdCBpbiBzd2FnZ2VyIHdoZXJlIEhUVFAgVmVyYiwgcmVzb3Buc2Ugc2FtcGxlcywgcmVxdWVzdCBzYW1wbGVzLCBkZXNjcmlwdGlvbiwgZXRjIGlzIHByZXNlbnQuIHNvIGFueW9uZSBjYW4gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgQVBJIGp1c3QgYnkgY2hlY2tpbmcgaXQuIAoKIyBIb3cgdG8gV3JpdGUgU3dhZ2dlciBEb2N1bWVudGF0aW9uPwoKU3dhZ2dlciBjYW4gYmUgd3JpdHRlbiBpbiB5bWwgYW5kIGpzb24uIFdlIHdpbGwgdXNlIHltbCBoZXJlLiBBbmQsIHdlIHdpbGwgdXNlIFtTd2FnZ2VyIEVkaXRvciB0b29sXShodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLyAiU3dhZ2dlciBFZGl0b3IgdG9vbCIpIHRvIHdyaXRlIHRoZSBkb2N1bWVudGF0aW9uLiBIZXJlLCB3ZSB3aWxsIHVzZSBhbiBleGFtcGxlIG9mIFVzZXIgTWFuYWdlbWVudCBBUElzLCB3aGVyZSB1c2VyIGRldGFpbHMgY2FuIGJlIFJldHJpZXZlZCwgVXBkYXRlZCBhbmQgRGVsZXRlZC4KCiMjIyMgTGV04oCZcyBTdGFydDoKLSBGaXJzdCB3ZSBuZWVkIHRvIGRlZmluZSB0aGUgT3BlbkFQSSB2ZXJzaW9uLCBoZXJlIHdlIHdpbGwgdXNlIHZlcnNpb24gMy4KCmBgYHlhbWwKb3BlbmFwaTogMy4wLjAKYGBgCi0gVGhlbiB3ZSBuZWVkIHRvIGFkZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdHMuCgpgYGB5YW1sCmluZm86CiAgdGl0bGU6IFVzZXIgTWFuYWdlbWVudCBBUElzCiAgZGVzY3JpcHRpb246IFRoaXMgaXMgYSBzYW1wbGUgcHJvamVjdCBmb3IgbWFuYWdpbmcgdXNlcnMuCiAgY29udGFjdDoKICAgIG5hbWU6IEpvaG4gRG9lCiAgICBlbWFpbDogam9obkBleGFtcGxlLmNvbQogIHZlcnNpb246ICIxLjAiCmBgYApIZXJlLCBgaW5mb2AgYXR0cmlidXRlIGhvbGRzIHRoZSBwcm9qZWN0cyBpbmZvcm1hdGlvbi4gYHRpdGxlYCByZXByZXNlbnRzIHByb2plY3QgdGl0bGUuIGB2ZXJzaW9uYCByZXByZXNudHMgdGhlIEFQSSB2ZXJzaW9uLgoKLS0tLS0tLS0tLS0tCgotIE5vdywgd2Ugd2lsbCBhZGQgdGhlIHByb3RvY29sIGFuZCBkb21haW4gb2Ygb3VyIEFQSSwgYWxzbyB3ZSB3aWxsIGFkZCBvdGhlciBmaXhlZCByZW91cmNlc2VzIHdoaWNoIGlzIGZpeGVkIGZvciBhbGwgdGhlIEFQSXMgbGlrZSBBUEkgdmVyc2lvbi4gQWxsIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGJlIHVuZGVyIGBzZXJ2ZXJzYCBhdHRyaWJ1dGUuCgogYGBgeWFtbAogc2VydmVyczoKIC0gdXJsOiBodHRwczovL2V4YW1wbGUuY29tL3YxCiBgYGAKSGVyZSwgd2UgaGF2ZSBzZXQgb3VyIEFQSSBkb21haW4gVVJMIGZvciBIVFRQUyBwcm90b2NvbC4gU28sIHdoYXQgd2lsbCBoYXBwZW4gaWYgb3VyIEFQSSBzdXBwb3J0cyBib3RoIEhUVFAgYW5kIEhUVFBTLiBIb3cgd2lsbCB3ZSBhZGQgSFRUUCBwcm90b2NvbCBoZXJlPwpXZSBjYW4gc2ltcGx5IGFkZCBhbm90aGVyIHZhbHVlIGhlcmUgaW4gdGhlIGFycmF5LgoKIGBgYHlhbWwKIHNlcnZlcnM6CiAtIHVybDogaHR0cHM6Ly9leGFtcGxlLmNvbS92MQogLSB1cmw6IGh0dHA6Ly9leGFtcGxlLmNvbS92MQogYGBgCm5vdywgc3dhZ2dlciB3aWxsIHNob3cgdXMgYm90aCBvZiB0aGUgc2VydmVycyBpbmZvcm1hdGlvbiBpbiBhIGRyb3Bkb3duLgoKLSB3aGF0IGhhcHBlbnMgaWYgd2UgaGF2ZSBtdWx0aXBsZSBkb21haW4gbmFtZXM/IFdlIGNhbiBhZGQgbW9yZSB2YWx1ZXMgaW50byB0aGUgYXJyYXkuIEJ1dCB0aGVyZeKAmXMgYW5vdGhlciB3YXkuIFdlIGNhbiB1c2UgdmFyaWFibGVzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IG1vcmUgZHluYW1pYy4KCmBgYHlhbWwKc2VydmVyczoKLSB1cmw6ICJ7cHJvdG9jb2x9Oi8ve2Jhc2VfdXJsfS92MSIKICB2YXJpYWJsZXM6CiAgICBwcm90b2NvbDoKICAgICAgZGVmYXVsdDogaHR0cHMKICAgICAgZW51bToKICAgICAgICAtIGh0dHBzCiAgICAgICAgLSBodHRwCiAgICBiYXNlX3VybDoKICAgICAgZGVmYXVsdDogZXhhbXBsZS5jb20KICAgICAgZW51bToKICAgICAgICAtIGV4YW1wbGUuY29tCiAgICAgICAgLSBiZC5leGFtcGxlLmNvbQpgYGAKCmhlcmUsIHdlIGRlZmluZWQgYHByb3RvY29sYCBhbmQgYGJhc2VfdXJsYCBhcyB2YXJpYWJsZSBpbnRvIGN1cmx5IGJyYWNlcywgdGhlc2UgdmFyaWFibGUgbmFtZSBjYW4gYmUgYW55dGhpbmcuIFRoZW4gd2Ugc2V0IHRoZSB2YWx1ZSBvZiB0aGVzZSB1bmRlciBgdmFyaWFibGVzYCBhdHRyaWJ1dGUuCkFmdGVyIHNldHRpbmcgdGhlIHZhbHVlcyB3ZSBjYW4gc2VlIG11bHRpcGxlIGRyb3Bkb3ducyBmb3IgZWFjaCB2YXJpYWJsZS4KCi0tLS0tLS0tLS0tLQoKIyMjIyBOb3cgYWZ0ZXIgYWRkaW5nIHRoZXNlIGxpbmVzIGludG8gc3dhZ2dlciBlZGl0b3IsIHRoZSBvdXRwdXQgd2lsbCBiZSBhcyBiZWxvdzoKCiFbc3dhZ2dlcl9zZXJ2ZXJzX291dHB1dF0oaHR0cHM6Ly9naXRodWIuY29tL3NoYWtpYm1vc3RhaGlkL3dyaXRpbmctc3dhZ2dlci9ibG9iL21haW4vaW1hZ2VzL3N3YWdnZXJfMS5wbmc/cmF3PXRydWUpCgotLS0tLS0tLS0tLS0KCiMjIyMgV2UgbmVlZCB0byBhZGQgdGhlIHBhdGhzIGluZm9ybWF0aW9uLgoKLSBOb3csIHdlIHdpbGwgYWRkIHRoZSBBUEkgZGV0YWlscyB1bmRlciBgcGF0aHNgIGF0dHJpYnV0ZS4gV2Ugd2lsbCBhZGQgdGhlIEFQSSBzdW1tYXJ5IGFuZCByZXBvbnNlIHNhbXBsZSBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gRm9yIGV4YW1wbGUgd2UgaGF2ZSBhbiBBUEkgZm9yIGdldHRpbmcgY3VzdG9tZXIgaW5mb3JtYXRpb24gZm9yIGdpdmVuIElELCB3ZSB3aWxsIGFkZCBpbmZvcm1hdGlvbiBmb3IgaXQ6CgpgYGB5YW1sCnBhdGhzOgogIC91c2Vycy8xOgogICAgZ2V0OgogICAgICBzdW1tYXJ5OiBHZXQgVXNlciBkZXRhaWxzCiAgICAgIG9wZXJhdGlvbklkOiBnZXRVc2VyCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQVBJIHRvIGZldGNoIHRoZSB1c2VyIGluZm9ybWF0aW9uIGJ5IHVzZXIgaWQuCiAgICAgICAgICBoZWFkZXJzOgogICAgICAgICAgICBDYWNoZS1Db250cm9sOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgZXhhbXBsZTogbm8tY2FjaGUsIHByaXZhdGUKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICBpZDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogMQogICAgICAgICAgICAgICAgICBmaXJzdF9uYW1lOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IEphbGlsCiAgICAgICAgICAgICAgICAgIGxhc3RfbmFtZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiBVZGRpbgogICAgICAgICAgICAgICAgICBhZGRyZXNzOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgICAgICBhcmVhOgogICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogTWlycHVyCiAgICAgICAgICAgICAgICAgICAgICBjaXR5OgogICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZTogRGhha2EKICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk6CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiBCYW5nbGFkZXNoCmBgYAoKaGVyZSwgd2UgaGF2ZSBzZXQgb3VyIEFQSSBwYXRoIGBjdXN0b21lcnMvMWAgdW5kZXIgYHBhdGhzYCBhdHRyaWJ1dGUuIFRoZW4gd2UgaGF2ZSBkZWZpbmUgdGhlIHJlcXVlc3QgdHlwZS4gVGhpcyBpcyBhIEdFVCByZXF1ZXN0IHNvLCB3ZSBoYXZlIGRlZmluZSBpdCBhcyBgZ2V0YC4KVGhlbiB3ZSBoYXZlIHNldCBhIHNob3J0IHN1bW1hcnkgZm9yIHRoaXMgQVBJIGluIGBzdW1tYXJ5YCBhdHRyaWJ1dGUuIGBvcGVyYXRpb25JZGAgcmVwcmVzZW50cyB0aGUgaWRlbnRpdHkgb2YgdGhlIG9wZXJhdGlvbiwgdGhpcyBzaG91bGQgYmUgdW5pcXVlLgpUaGVuIHdlIGhhdmUgYWRkZWQgcmVzcG9uc2UgZGV0YWlscyB1bmRlciBgcmVzcG9uc2VzYCBhdHRyaWJ1dGUuCkZpcnN0IHdlIG5lZWQgdG8gZGVmaW5lIHRoZSBzdGF0dXMgY29kZXMsIHRoZXJlIGNhbiBiZSBtdWx0aXBsZSByZXNwb25zZXMgd2l0aCBkaWZmZXJlbnQgc3RhdHVzIGNvZGUuIEhlcmUgd2UgaGF2ZSBzZXQgb25seSBvbmUgZm9yIGAyMDBgIHN0YXR1cywgd2Ugd2lsbCBhZGQgb25lIGVycm9yIHJlc3BvbnNlIGxhdGVyLgpUaGUgcmVzcG9uc2UgYm9keSBuZWVkcyB0byBkZWZpbmUgdW5kZXIgYGNvbnRlbnRgIGF0dHJpYnV0ZS4KV2UgbmVlZCB0byBhZGQgdGhlIGNvbnRlbnQgdHlwZSBoZXJlOyB3ZSBoYXZlIGFkZGVkIGBhcHBsaWNhdGlvbi9qc29uYCBhcyBjb250ZW50IHR5cGUuClRoZW4sIHJlc3BvbnNlIHNjaGVtYSBuZWVkcyB0byBkZWZpbmUgdW5kZXIgYHNjaGVtYWAgYXR0cmlidXRlLgpvdXIgcmVzcG9uc2UgaXMgYSBKU09OIG9iamVjdCwgdGhhdOKAmXMgd2h5IHdlIGhhdmUgc2V0IGB0eXBlOiBvYmplY3RgLiBBcyB3ZSBoYXZlIHNldCB0eXBlID0gb2JqZWN0IHNvLCB3ZSBuZWVkIHRvIGRlZmluZSB0aGUgb2JqZWN0IGRldGFpbHMgdW5kZXIgYHByb3BlcnRpZXNgIGF0dHJpYnV0ZS4KCi0tLS0tLS0tLS0tLQoKLSBOb3csIHdlIHdpbGwgYWRkIHRoZSBoZWFkZXJzIGluZm8gZm9yIHRoZSBzdWNjZXNzIHJlc3BvbnNlLiBXZSBoYXZlIHNldCB0aGUgcmVzcG9uc2UgZXhhbXBsZSB1bmRlciBgY29udGVudGAgYXR0cmlidXRlIG9mIGAyMDBgIHN0YXR1cywgd2Ugd2lsbCBhZGQgdGhlIGhlYWRlcnMgaW5mb3JtYXRpb25zIHVuZGVyIGBoZWFkZXJzYCBhdHRyaWJ1dGUgb2YgYDIwMGAgc3RhdHVzOgoKYGBgeWFtbApoZWFkZXJzOgogIENhY2hlLUNvbnRyb2w6CiAgICBzY2hlbWE6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBleGFtcGxlOiBuby1jYWNoZSwgcHJpdmF0ZQogIERhdGU6CiAgICBzY2hlbWE6CiAgICAgIHR5cGU6IHN0cmluZwogICAgICBleGFtcGxlOiBUaHUsIDE3IE5vdiAyMDIyIDA5OjUyOjEwIEdNVApgYGAKV2UgaGF2ZSBhZGRlZCBvbmx5IHR3byBoZWFkZXJzLCB3ZSBjYW4gYWRkIGFzIG1hbnkgaGVhZGVycyBhcyB3ZSB3YW50LgoKIyMjIyBOb3cgYWZ0ZXIgYWRkaW5nIHRoZSByZXNwb25zZSBleGFtcGxlIGxpbmVzIGludG8gc3dhZ2dlciBlZGl0b3IsIHRoZSBvdXRwdXQgd2lsbCBiZSBhcyBiZWxvdzoKCiFbc3dhZ2dlcl9yZXNwb25zZV9vdXRwdXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaGFraWJtb3N0YWhpZC93cml0aW5nLXN3YWdnZXIvYmxvYi9tYWluL2ltYWdlcy9zd2FnZ2VyXzIucG5nP3Jhdz10cnVlKQoKLS0tLS0tLS0tLS0tCgotIFdlIG1pZ2h0IG5lZWQgdGhlIGV4YW1wbGUgb2YgYHVzZXJgIG9iamVjdCBvbiBvdGhlcnMgQVBJLiBGb3IgZXhhbXBsZSwgd2Ugd2lsbCByZXR1cm4gdGhlIHNhbWUgdXNlciBvYmplY3QgYWZ0ZXIgY3JlYXRpbmcgYW4gdXNlci4gVGhlbiB3aGF0IHdlIGNhbiBkbyBpcyBjb3B5IHBhc3RpbmcgdGhlIHJlc3BvbnNlIGNvbnRlbnQuIFRoYXQgd291bGQgZGVmaW5pdGVseSB3b3JrLCBidXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIGtlZXBzIGluY3JlYXNpbmcuIEl0IHdvdWxkIGJlIGJldHRlciBpZiB3ZSBjYW4gYXZvaWQgdGhlIGR1cGxpY2F0aW9uLgpUaGUgc29sdXRpb24gZm9yIHRoaXMgcHJvYmxlbSBpcyB0byBhZGQgY29tbW9uIGRlZmluaXRpb25zIGluIHRoZSBnbG9iYWwgYGNvbXBvbmVudHNgIGF0dHJpYnV0ZSBhbmQgYWRkIHRoZSByZWZlcmVuY2VzIHVzaW5nIGAkcmVmYCBvZiB0aGUgZGVmaW5pdGlvbnMgd2hlcmV2ZXIgd2UgbmVlZC4gCkxldCdzIHdyaXRlIHRoZSB1c2VyIHNjaGVtYSB1bmRlciBgY29tcG9uZW50c2AgYXR0cmlidXRlOgoKYGBgeWFtbApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBVc2VyOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICBmaXJzdF9uYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBKYWxpbAogICAgICAgIGxhc3RfbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogVWRkaW4KICAgICAgICBhZGRyZXNzOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBhcmVhOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGV4YW1wbGU6IE1pcnB1cgogICAgICAgICAgICBjaXR5OgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGV4YW1wbGU6IERoYWthCiAgICAgICAgICAgIGNvdW50cnk6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZXhhbXBsZTogQmFuZ2xhZGVzaApgYGAKCkhlcmUgd2UgaGF2ZSBhZGRlZCB0aGUgdXNlciBkZXRhaWxzIHVuZGVyIGBzY2hlbWFzYCBhdHJyaWJ1dGUgd2hpY2ggcGFyZW50IGVsZW1lbnQgaXMgYGNvbXBvbmVudHNgLiBXZSBoYXZlIG5hbWVkIG91ciBzY2hlbWEgd2l0aCBgVXNlcmAuIFRoZW4gd2UgaGF2ZSBhZGRlZCB0aGUgc2NoZW1hIGRldGFpbHMuIAoKTm93LCBvdXIgbmV4dCB0YXNrIGlzIHRvIGFkZCB0aGUgcmVmZXJlbmNlcyBpbiB0aGUgc3VjY2VzcyByZXNwb25zZSBjb250ZW50LiBXZSBuZWVkIHRvIHJlbW92ZSB0aGUgdXNlciBzY2hlbWEgZnJvbSB0aGVyZSwgYW5kIG5lZWQgdG8gYWRkIG9ubHkgb25lIGxpbmUgdG8gcmVmZXIgdGhlIG9iamVjdC4gU28gdGhlIGNoYW5nZXMgd291bGQgYmUgbGlrZTogCgpgYGB5YW1sCmNvbnRlbnQ6CiAgYXBwbGljYXRpb24vanNvbjoKICAgIHNjaGVtYToKICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlciIKYGBgCgpXZSBoYXZlIGp1c3Qgc2V0IHRoZSByZWZlcmVuY2UgdW5kZXIgYHNjaGVtYWAgYnkgc2V0dGluZyB0aGUgdmFsdWUgb2YgYCRyZWZgIGF0dHJpYnV0ZS4gVGhlIGZvcm1hdCBpcyBgIy9jb21wb25lbnRzLzx0eXBlPi88T2piZWN0TmFtZT5gLiBPdXIgdHlwZSBpcyBgc2NoZW1hc2AgYW5kIG91ciBvYmplY3QgbmFtZSBpcyBgVXNlcmAuIFRoYXQncyB3aHkgd2UgaGF2ZSBzZXQgdGhlIHZhbHVlIGAjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyYC4KCkFmdGVyIGFkZGluZyB0aGVzZSBjaGFuZ2VzLCB0aGUgcmVzcG9uc2Ugb2JqZWN0IHdvdWxkIGJlIGFzIHByZXZpb3VzLiBCdXQgdGhlcmUgd2lsbCBiZSBzaG93biBhIG5ldyBjb21wb25lbnQgbmFtZWQgYFNjaGVtYXNgLgpUaGF0IHdvdWxkIGxvb2sgbGlrZToKCiFbc3dhZ2dlcl9zY2hlbWFfb3V0cHV0XShodHRwczovL2dpdGh1Yi5jb20vc2hha2libW9zdGFoaWQvd3JpdGluZy1zd2FnZ2VyL2Jsb2IvbWFpbi9pbWFnZXMvc3dhZ2dlcl8zLnBuZz9yYXc9dHJ1ZSkKCi0tLS0tLS0tLS0tLQoKLSBJbiB0aGUgZXhhbXBsZSwgd2UgaGF2ZSB1c2VkIHVzZXIncyBgaWRgIGluIHBhdGggd2l0aCB0aGUgdmFsdWUgMS4gU28sIHRoZSBwYXRoIGJlY29tZSwgYC91c2Vycy8xYCwgd2hpY2ggbG9va3MgbGlrZSBhIHN0YXRpYyByb3V0ZS4gQnV0IG91ciByb3V0ZSBpcyBkeW5hbWljIGFuZCBpdCBpcyBiYXNlZCBvbiB0aGUgdXNlcidzIHVuaXF1ZSBpZC4gU3dhZ2dlciBnaXZlIHVzIHRoZSBhYmlsaXR5IHRvIG1ha2UgdGhlIHBhdGggZHluYW1pYy4gV2UgbmVlZCB0byBhZGQgcGxhY2Vob2xkZXIgaW4gdGhlIGBpZGAgcG9ydGlvbi4gVG8gYWRkIHBsYWNlIGhvbGRlciB3ZSB1c2UgY3VybHkgYnJhY2VzIGB7fWAsIGFuZCBpbnNpZGUgdGhlIGN1cmx5IGJyYWNlcyB3ZSBhZGQgdGhlIHZhcmlhYmxlIG5hbWUuIE5vdywgd2Ugd2lsbCBtYWtlIGNoYW5nZXMgaW4gdGhlIGBwYXRoYCBzZWN0aW9uIGxpa2UgdGhpczoKCmBgYHlhbWwKcGF0aDoKICB1c2Vycy97aWR9OgogICAgZ2V0OgpgYGAKCk5vdyBhZnRlciBhZGRpbmcgdGhpcywgd2Ugd2lsbCBzZWUgYW4gc2VtYW50aWMgZXJyb3Igc2F5aW5nIGBEZWNsYXJlZCBwYXRoIHBhcmFtZXRlciAiaWQiIG5lZWRzIHRvIGJlIGRlZmluZWQgYXMgYSBwYXRoIHBhcmFtZXRlciBhdCBlaXRoZXIgdGhlIHBhdGggb3Igb3BlcmF0aW9uIGxldmVsYC4KClRvIGZpeCB0aGUgZXJyb3IsIHdlIG5lZWQgdG8gYWRkIHNldCB0aGUgaW5mb3JtYXRpb24gZm9yIHRoZSBge2lkfWAgaW4gdGhlIGBwYXJhbWV0ZXJzYCBhdHRyaWJ1dGUuIFdlIGNhbiBoYXZlIG11bHRpcGxlIHZhcmlhYmxlcyBmb3IgYSBzaW5nbGUgcm91dGUsIGFsbCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGFkZGVkIHVuZGVyIGBwYXJhbWV0ZXJzYC4gV2UgY2FuIHVzZSB2YXJpYWJsZSBpbiBxdWVyeSBwYXJhbXMsIGJvZHksIGhlYWRlciBhcyB3ZWxsLgoKSGVyZSB3ZSBoYXZlIG9ubHkgb25lIHZhcmlhYmxlIGBpZGAsIHNvIHdlIHdpbGwgYWRkIHRoZSBpbmZvcm1hdGlvbiBmb3IgaXQgb25seS4KCmBgYHlhbWwKcGF0aHM6CiAgL3VzZXJzL3tpZH06CiAgICBnZXQ6CiAgICAgIHN1bW1hcnk6IEdldCBVc2VyIGRldGFpbHMKICAgICAgb3BlcmF0aW9uSWQ6IGdldFVzZXIKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBpZAogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCmBgYAoKSGVyZSwgYXMgb3VyIHZhcmlhYmxlIGxvY2F0aW9uIGlzIGluIHBhdGgsIHRoYXQncyB3aHkgd2UgaGF2ZSBzZXQgYHBhdGhgIHZhbHVlIGZvciBgaW5gIGF0dHJpYnV0ZS4gVGhlbiwgd2UgaGF2ZSBlbnRlcmVkIHRoZSBzY2hlbWEgZGV0YWlscyBmb3IgYGlkYCB2YXJpYWJsZS4gV2UgaGF2ZSBzZXQgZXhhbXBsZSBgMWAgYXMgdXNlcidzIGlkLiAKCkFmdGVyIG1ha2luZyB0aGVzZSBjaGFuZ2VzLCB0aGVyZSB3aWxsIGJlIGEgbmV3IHJvdyB3aXRoIHBhcmFtZXRlcnMgaW5mb3JtYXRpb24gaW4gdGhlIG91dHB1dCBzZWN0aW9uLiBJdCB3aWxsIGxvb2sgbGlrZToKCgohW3N3YWdnZXJfcGFyYW1ldGVyc10oaHR0cHM6Ly9naXRodWIuY29tL3NoYWtpYm1vc3RhaGlkL3dyaXRpbmctc3dhZ2dlci9ibG9iL21haW4vaW1hZ2VzL3N3YWdnZXJfNC5wbmc/cmF3PXRydWUpCgotLS0tLS0tLS0tLS0KCi0gTGV0J3MgYWRkIGFuIGBQT1NUYCBBUEkgZGV0YWlscyBpbiB0aGUgc3dhZ2dlciBkb2MuIE5vdywgd2Ugd2lsbCBhZGQgYW4gQVBJIHNwZWNpZmljYXRpb24gZm9yIGNyZWF0aW5nIGFuIHVzZXIgdG8gb3VyIHN5c3RlbS4gRmlyc3Qgd2Ugd2lsbCBhZGQgdGhlIHJvdXRlIGFuZCBvdGhlciBkZXRhaWxzIGxpa2Ugd2UgZGlkIGluIHRoZSBgR0VUYCBBUEkuIFdlIG5lZWQgdG8gY3JlYXRlIGFuIGtleSB3aXRoIHRoZSByb3V0ZSBuYW1lIHVuZGVyIGBwYXRoc2AgYXR0cmlidXRlLiBBbmQgdGhlIGtleSBtdXN0IGJlIHNpYmxpbmdzIG9mIG90aGVyIHJvdXRlcy4gRm9yIGV4YW1wbGUsIHdlIGFyZSBzZXR0aW5nIHRoaXMgcm91dGUgYXMgYC91c2Vyc2AuIFNvLCBpdCB3aWxsIGJlIHNpYmxpbmdzIG9mIGAvdXNlcnMve2lkfWAuCgpgYGB5YW1sCnBhdGhzOgogIC91c2Vycy97aWR9OgogIC4uLi4uLi4uLi4uLi4uCiAgL3VzZXJzOgogICAgcG9zdDoKICAgICAgc3VtbWFyeTogQ3JlYXRlIE5ldyBVc2VyCiAgICAgIG9wZXJhdGlvbklkOiBjcmVhdGVVc2VyCmBgYAoKVGhlbiwgd2Ugd2lsbCBhZGQgdGhlIHJlcXVlc3QgcGF5bG9hZCBkZXRhaWxzIHdoaWNoIGNvbnRhaW5zIHRoZSB1c2VycyBkZXRhaWxzLiBUbyBhZGQgdGhlIHJlcXVlc3QgcGF5bG9hZCwgd2UgbmVlZCB0byBkZWZpbmUgaXQgdW5kZXIgYHJlcXVlc3RCb2R5YCBhdHRyaWJ1dGUuIExldCdzIGFkZCB0aGUgaW5mb3JtYXRpb246CgpgYGB5YW1sCi91c2VyczoKICBwb3N0OgogICAgc3VtbWFyeTogQ3JlYXRlIE5ldyBVc2VyCiAgICBvcGVyYXRpb25JZDogY3JlYXRlVXNlcgogICAgcmVxdWVzdEJvZHk6CiAgICAgIGRlc2NyaXB0aW9uOiBSZXF1ZXN0IHBheWxvYWQgZm9yIGNyZWF0aW5nIG5ldyB1c2VyIAogICAgICByZXF1aXJlZDogdHJ1ZQogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Vc2VyUGF5bG9hZCcKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgVXNlclBheWxvYWQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGZpcnN0X25hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6IEhhbWlkCiAgICAgICAgbGFzdF9uYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBBaG1lZAogICAgICAgIGFkZHJlc3M6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGFyZWE6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZXhhbXBsZTogTWlycHVyCiAgICAgICAgICAgIGNpdHk6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZXhhbXBsZTogRGhha2EKICAgICAgICAgICAgY291bnRyeToKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICBleGFtcGxlOiBCYW5nbGFkZXNoCmBgYApIZXJlLCBgZGVzY3JpcHRpb25gIHVuZGVyIGByZXF1ZXN0Qm9keWAgcmVwcmVzZW50cyB0aGUgc3VtbWFyeSBvZiB0aGUgcmVxdWVzdCBib2R5LiBUaGVuIHdlIGhhdmUgc2V0IHRoZSBwYXlsb2FkIGNvbnRlbnQgdHlwZSB1bmRlciBgY29udGVudGAgYXR0cmlidXRlLiBBcyBvdXIgcmVxdWVzdCB3aWxsIGNvbnRhaW4gSlNPTiBkYXRhLCB3ZSBoYXZlIHNldCBvdXIgc2NoZW1hIGRldGFpbHMgdW5kZXIgYGFwcGxpY2F0aW9uL2pzb25gLiBXZSBoYXZlIGNyZWF0ZSBhIG5ldyBzY2hlbWEgZm9yIHRoZSByZXF1ZXN0IHBheWxvYWQsIGFuZCBzZXQgdGhlIHJlZmVyZW5jZXMgb24gdGhlIGBzY2hlbWFgIGF0dHJpYnV0ZS4KCldlIGNhbiBhZGQgdGhlIGZ1bGwgcmVxdWVzdCBib2R5IGFzIHJlZmVyZW5jZSwgdGhlbiB3ZSBjYW4gdXNlIHRoZSByZWZlcmVuY2UgZGlyZWN0bHkgaWYgd2UgbmVlZCB0aGUgcmVxdWVzdCBib2R5IGFueXdoZXJlLiBUbyBhY2hpZXZlIHRoaXMsIHdlIG5lZWQgdG8gYWRkIGByZXF1ZXN0Qm9kaWVzYCBrZXkgdW5kZXIgYGNvbXBvbmVudHNgIGF0dHJpYnV0ZSwgdGhlbiB3ZSBuZWVkIHRvIGFkZCB0aGUgZGV0YWlscyB0aGVyZSB3aXRoIGEgY3VzdG9tIGtleSBuYW1lLiBMZXQncyBhZGQgaXQ6CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgcmVxdWVzdEJvZGllczoKICAgIFVzZXJSZXF1ZXN0UGF5bG9hZDoKICAgICAgZGVzY3JpcHRpb246IFJlcXVlc3QgcGF5bG9hZCBmb3IgY3JlYXRpbmcgbmV3IHVzZXIgCiAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgIGNvbnRlbnQ6CiAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXJQYXlsb2FkJwpgYGAKClRoZW4sIHdlIGNhbiB1c2UgYFVzZXJSZXF1ZXN0UGF5bG9hZGAgcmVmZXJlbmNlIGluIHRoZSBBUEkgc3BlY2lmaWNhdGlvbnMuIFNvLCB3ZSB3aWxsIG1ha2UgdGhlIGNoYW5nZXMgbm93OiAKCmBgYHlhbWwKL3VzZXJzOgogIHBvc3Q6CiAgICBzdW1tYXJ5OiBDcmVhdGUgTmV3IFVzZXIKICAgIG9wZXJhdGlvbklkOiBjcmVhdGVVc2VyCiAgICByZXF1ZXN0Qm9keToKICAgICAgICAiJHJlZiI6ICcjL2NvbXBvbmVudHMvcmVxdWVzdEJvZGllcy9Vc2VyUmVxdWVzdFBheWxvYWQnCmBgYAoKTm93LCB0aGUgb25seSBwYXJ0IGxlZnQgaGVyZSBpcyBhZGRpbmcgdGhlIHJlc3BvbnNlIGluZm9ybWF0aW9uLiBUaGUgcmVzcG9uc2Ugd2lsbCBiZSBzYW1lIGFzIG91ciBgR0VUYCByZXF1ZXN0LiBTbywgb3VyIGNvbXBsZXRlIGNvZGUgd2lsbCBiZSBsb29raW5nIGxpa2UgYmVsb3c6CgpgYGB5YW1sCi91c2VyczoKICBwb3N0OgogICAgc3VtbWFyeTogQ3JlYXRlIE5ldyBVc2VyCiAgICBvcGVyYXRpb25JZDogY3JlYXRlVXNlcgogICAgcmVxdWVzdEJvZHk6CiAgICAgICIkcmVmIjogJyMvY29tcG9uZW50cy9yZXF1ZXN0Qm9kaWVzL1VzZXJSZXF1ZXN0UGF5bG9hZCcKICAgIHJlc3BvbnNlczoKICAgICAgMjAxOgogICAgICAgIGRlc2NyaXB0aW9uOiBBUEkgdG8gQ3JlYXRlIHRoZSB1c2VyIGluZm9ybWF0aW9uIGFuZCBnZXQgY3JlYXRlZCB1c2VyJ3MgZGV0YWlscy4KICAgICAgICBoZWFkZXJzOgogICAgICAgICAgQ2FjaGUtQ29udHJvbDoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGV4YW1wbGU6IG5vLWNhY2hlLCBwcml2YXRlCiAgICAgICAgICBEYXRlOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZXhhbXBsZTogVGh1LCAxNyBOb3YgMjAyMiAwOTo1MjoxMCBHTVQKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXIiCmBgYAoKQWZ0ZXIgYWRkaW5nIHRoZSBgUE9TVGAgQVBJIHNwZWNpZmljYXRpb24sIHRoZXJlIHdpbGwgYmUgYSBuZXcgYmxvY2sgZm9yIHRoZSB1c2VyIGNyZWF0ZSBBUEkuIEFmdGVyIGV4cGFuZGluZyB0aGUgYmxvY2ssIEl0IHdpbGwgbG9vayBsaWtlOgoKIVtzd2FnZ2VyX3BhcmFtZXRlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaGFraWJtb3N0YWhpZC93cml0aW5nLXN3YWdnZXIvYmxvYi9tYWluL2ltYWdlcy9zd2FnZ2VyXzUucG5nP3Jhdz10cnVlKQoKLS0tLS0tLS0tLS0tCgotIEFsbCB0aGUgQVBJIGRldGFpbHMgYXJlIHNob3duIHVuZGVyICpkZWZhdWx0KiBncm91cCwgSXQgaXMgY2FsbGVkIGB0YWdzYC4gSWYgd2UgZG9uJ3Qgc2V0IGFueSB0YWdzIGZvciB0aGUgcm91dGUgb3IgQVBJIGl0IHdpbGwgYmUgc2V0IHRvICpkZWZhdWx0Ki4gTGV0J3MgY3JlYXRlIGEgdGFnIGhlcmUgYW5kIHNldCB0byB0aGUgcm91dGVzLgoKVG8gY3JlYXRlIGEgdGFnLCB3ZSBuZWVkIHRvIGRlZmluZSB0aGUgZGV0YWlscyB1bmRlciBgdGFnc2AgYXR0cmlidXRlLiBUaGlzIGF0dHJpYnV0ZSB3aWxsIGJlIHNpYmxpbmdzIG9mIGBwYXRoc2AgYXR0cmlidXRlLiBJdCBoYXMgbm8gcGFyZW50IGVsZW1lbnQuCgpgYGB5bWwKcGF0aHM6Ci4uLi4uLi4uLi4uLi4uLi4uLi4KCnRhZ3M6CiAgLSBuYW1lOiBVc2VycwogICAgZGVzY3JpcHRpb246IFVzZXJzIEFQSSBzcGVjaWZpY2F0aW9ucwpgYGAKClRoZW4sIHdlIG5lZWQgdG8gYWRkIHRoZSB0YWcgbmFtZSBpbiB0aGUgcm91dGVzIGRldGFpbHMgdG8gZ3JvdXAgaXQgdG9nZXRoZXIgdW5kZXIgYHRhZ3NgIGF0dHJpYnV0ZSBhcyBhcnJheSB2YWx1ZS4gTm93IHRoZSBjaGFuZ2VzIHdpbGwgYmU6CgpgYGB5bWwKcGF0aHM6CiAgL3VzZXJzL3tpZH06CiAgICBnZXQ6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBVc2VycwogICAgICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgogIC91c2VyczoKICAgIHBvc3Q6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBVc2VycwogICAgICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgpgYGAKCk5vdyBib3RoIG9mIHRoZSByb3V0ZXMgZ3JvdXAgbmFtZSBpcyBjaGFuZ2VkIHRvIGBVc2Vyc2AuIAoKIVtzd2FnZ2VyX3BhcmFtZXRlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaGFraWJtb3N0YWhpZC93cml0aW5nLXN3YWdnZXIvYmxvYi9tYWluL2ltYWdlcy9zd2FnZ2VyXzYucG5nP3Jhdz10cnVlKQoKLS0tLS0tLS0tLS0t readmeEtag: '"f7b25084169d09619ab2693aca19851df8355026"' readmeLastModified: Mon, 30 Oct 2023 05:02:48 GMT repositoryId: 568020156 description: This is a guideline for beginner who wants to learn swagger with examples. created: '2022-11-19T07:32:30Z' updated: '2023-10-30T04:52:56Z' language: null archived: false stars: 4 watchers: 1 forks: 0 owner: shakibmostahid logo: https://avatars.githubusercontent.com/u/36795674?v=4 license: Unlicense repoEtag: '"b91384f5553674024cb43531cf02af72fe260c0f0a463b15efd124020c67e6bf"' repoLastModified: Mon, 30 Oct 2023 04:52:56 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/zhangmazi/json2swagger3-php v3: true repositoryMetadata: base64Readme: >- IyBKc29uMnN3YWdnZXIzLXBocAojIyBKc29uMnN3YWdnZXIzLXBocOaYr+S4gOS4quWFjei0ueW8gOa6kOW3peWFt++8jOS4u+imgeaKilBvc3RtYW7nmoRSZXF1ZXN05ZKMUmVzcG9uc2Xnu5PmnoTovaxTd2FnZ2VyMy1QSFAoT3BlbkFQSTMpCgojIyDlnKjnur/kvb/nlKgKW+eCueaIkeWcqOe6v+ebtOaOpeeUqF0oaHR0cHM6Ly96aGFuZ21hemkuZ2l0aHViLmlvL2pzb24yc3dhZ2dlcjMtcGhwL2luZGV4Lmh0bWwpCgojIyDliJ3oobcK5pa55L6/5YWs5Y+45ZCM5LqL5oqKUG9zdG1hbumHjOeahOivt+axguWSjOi/lOWbnkpzb27ku6PnoIHlv6vmjbfnmoTlhpnlhaVQSFDku6PnoIHph4zvvIzpgJrov4dzd2FnZ2VyLXVp5bGV546w5omA5pyJ5o6l5Y+j77yM5omA5Lul5q2k5bel5YW36K+e55Sf5LqGLgoKIyMjIOacrOW3peWFt+WfuuS6jltTd2FnRGVmR2VuXShodHRwczovL2dpdGh1Yi5jb20vUm9nZXIxMy9Td2FnRGVmR2VuKSwg5bqU6K+l5pWw5Lit5Zu95Y2H57qn54mI5ZCn77yM5pSv5oyBU3dhZ2dlclBIUC1VSSxPcGVuQXBpMy54CgojIyMg5aaC5p6c5Zac5qyi77yM5Y+v5Lul5pSv5LuY5a6d5omT6LWP5LiA5LiL77yM6LCi6LCi77yBCiFb5oSf6LCi5aSn5L2sXShodHRwOi8vd3d3Lm5pbmphOTExLmNvbS9pbWFnZXMvcGF5Mm1lL2FsaXBheS5wbmcpCgo= readmeEtag: '"4c43fabacef97a6b8ed4de08f3528ed5897035a6"' readmeLastModified: Sat, 30 Mar 2019 05:06:02 GMT repositoryId: 177393777 description: Postman的Request和Response结构转Swagger3-PHP(OPENAPI3)工具 created: '2019-03-24T09:22:37Z' updated: '2021-06-28T10:08:26Z' language: JavaScript archived: false stars: 4 watchers: 2 forks: 0 owner: zhangmazi logo: https://avatars.githubusercontent.com/u/1011088?v=4 license: MIT repoEtag: '"878b2365af89268e0f70f01d18940277a424ba689b0fd64c6a26cd854c0badd2"' repoLastModified: Mon, 28 Jun 2021 10:08:26 GMT foundInMaster: true category: SDK id: c5fdb5a7e261ee9e90b0ab53e2537c0f - source: openapi3 tags repository: https://github.com/martingrambow/openisbt v3: true repositoryMetadata: base64Readme: >- IyBvcGVuSVNCVAoKT3BlbklTQlQgaXMgYW4gSW50ZWxsaWdlbnQgU2VydmljZSBCZW5jaG1hcmsgVG9vbCB0byBiZW5jaG1hcmsgbWljcm9zZXJ2aWNlLWJhc2VkIGFwcGxpY2F0aW9ucyBiYXNlZCBvbiB0aGVpciBPcGVuQVBJMy4wIGludGVyZmFjZSBkZXNjcmlwdGlvbiBmaWxlcy4gIApbQmVuY2htYXJraW5nIE1pY3Jvc2VydmljZSBQZXJmb3JtYW5jZTogQSBQYXR0ZXJuLWJhc2VkIEFwcHJvYWNoXShodHRwczovL2RiZXJtYmFjaC5naXRodWIuaW8vcHVibGljYXRpb25zLzIwMjAtc2FjLWRhZHMtbWljcm9zZXJ2aWNlcy5wZGYpIAoKSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlIGluIGEgcHVibGljYXRpb24sIHBsZWFzZSBjaXRlIGl0IGFzOgoKIyMjIFRleHQKTWFydGluIEdyYW1ib3csIEx1a2FzIE1ldXNlbCwgRXJpayBXaXR0ZXJuLCBEYXZpZCBCZXJtYmFjaC4gKipCZW5jaG1hcmtpbmcgTWljcm9zZXJ2aWNlIFBlcmZvcm1hbmNlOiBBIFBhdHRlcm4tYmFzZWQgQXBwcm9hY2gqKi4gSW46IFByb2NlZWRpbmdzIG9mIHRoZSAzNXRoIEFDTSBTeW1wb3NpdW0gb24gQXBwbGllZCBDb21wdXRpbmcgKFNBQyAyMDIwKS4gQUNNIDIwMjAuCgojIyMgQmliVGVYCmBgYFRlWApAaW5wcm9jZWVkaW5nc3twYXBlcl9ncmFtYm93X2JlbmNobWFya2luZ19taWNyb3NlcnZpY2VzLAoJdGl0bGUgPSB7e0JlbmNobWFya2luZyBNaWNyb3NlcnZpY2UgUGVyZm9ybWFuY2U6IEEgUGF0dGVybi1iYXNlZCBBcHByb2FjaH19LAoJYm9va3RpdGxlID0ge1Byb2NlZWRpbmdzIG9mIHRoZSAzNXRoIEFDTSBTeW1wb3NpdW0gb24gQXBwbGllZCBDb21wdXRpbmcgKFNBQyAyMDIwKX0sCglwdWJsaXNoZXIgPSB7QUNNfSwKCWF1dGhvciA9IHtNYXJ0aW4gR3JhbWJvdyBhbmQgTHVrYXMgTWV1c2VsIGFuZCBFcmlrIFdpdHRlcm4gYW5kIERhdmlkIEJlcm1iYWNofSwKCXllYXIgPSB7MjAyMH0KfQpgYGAKCkEgZnVsbCBsaXN0IG9mIG91ciBbcHVibGljYXRpb25zXShodHRwczovL3d3dy5tY2MudHUtYmVybGluLmRlL21lbnVlL2ZvcnNjaHVuZy9wdWJsaWthdGlvbmVuL3BhcmFtZXRlci9lbi8pIGFuZCBbcHJvdG90eXBlc10oaHR0cHM6Ly93d3cubWNjLnR1LWJlcmxpbi5kZS9tZW51ZS9mb3JzY2h1bmcvcHJvdG90eXBlcy9wYXJhbWV0ZXIvZW4vKSBpcyBhdmFpbGFibGUgb24gb3VyIGdyb3VwIHdlYnNpdGUuCgojIyBSZWxlYXNlcwoqIHZlcnNpb24gMC4xIChkMWI2YzRmKSB3YXMgdXNlZCBpbiBwdWJsaWNhdGlvbiAiQmVuY2htYXJraW5nIE1pY3Jvc2VydmljZSBQZXJmb3JtYW5jZTogQSBQYXR0ZXJuLWJhc2VkIEFwcHJvYWNoIgoqIHZlcnNpb24gMC4yIChmZDllNTA2KSBpbnRyb2R1Y2VzIGEgYmF0Y2ggYmVuY2htYXJrIHZpYSB0ZXJtaW5hbAoqIHZlcnNpb24gMC4zIChhMTA3MzdiKSBhcHBsaWNhdGlvbi13aWRlIGJlbmNobWFya2luZyB1c2luZyBtYW51YWwgc2VydmljZSBsaW5rcwoqIHZlcnNpb24gMC40ICh0YmQpIENsZWFuIHVwIGRlcHJlY2F0ZWQgY29tcG9uZW50cywgYmV0dGVyIGRvY3VtZW50YXRpb24KCiMjIExpY2Vuc2UKClRoZSBjb2RlIGluIHRoaXMgcmVwb3NpdG9yeSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtNSVRdKC4vTElDRU5TRSkgbGljZW5zZS4KCiMgVXNhZ2UKKiBbQmVuY2htYXJrXShvcGVuSVNCVEJhdGNoLm1kKQoKIyMgRnV0aGVyIEluZm9ybWF0aW9uIChmb3IgZGV2ZWxvcGVycykKKiBbQWJzdHJhY3Qgb3BlcmF0aW9ucyBhbmQgbWF0Y2hpbmcgdW5pdHNdKGFic3RyYWN0T3BlcmF0aW9ucy5tZCkKKiBbTGlua2luZyh1bml0cyldKGxpbmtpbmdVbml0cy5tZCkK readmeEtag: '"aa8703ff965e7666323692f1aba40f16937070ec"' readmeLastModified: Thu, 03 Sep 2020 21:50:12 GMT repositoryId: 196092022 description: >- OpenISBT is an Intelligent Service Benchmark Tool to benchmark microservice-based applications based on their OpenAPI3.0 interface description files. created: '2019-07-09T22:25:59Z' updated: '2024-08-12T09:05:41Z' language: Kotlin archived: false stars: 4 watchers: 1 forks: 1 owner: martingrambow logo: https://avatars.githubusercontent.com/u/18425060?v=4 license: MIT repoEtag: '"69bdcd59801aaa319036f95d221594f480150309692e4e2e55796dc87ab1b706"' repoLastModified: Mon, 12 Aug 2024 09:05:41 GMT foundInMaster: true category: Server id: 75a45f8b179099c1bdb9fd6966eb5657 - source: openapi3 tags repository: https://github.com/ipranjal/openapi-spec v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9PU1NOQVBJL1N1Ym1pc3Npb24tSW1hZ2VzL2Jsb2IvbWFpbi9sb2dvLnBuZz9yYXc9dHJ1ZSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPjwvcD4KCiMgT3BlbkFQSS1zcGVjCk9wZW4gQVBJIDMuMCBzcGVjIGZvciBjcmVhdGluZyBzb2NpYWwgbmV0d29ya2luZyBBUEkKClRoaXMgc3BlY2lmaWNhdGlvbiB3YXMgY3JlYXRlZCBhcyBwYXJ0IG9mICoqVGhlIFBvc3RtYW4gQVBJIEhhY2sqKiBhbmQgcHJvdmlkZXMgYSAqKk9wZW5BUEkgMy4wKiogc3BlY2lmaWNhdGlvbiBmb3IgY3JlYXRpbmcgU29jaWFsIE5ldHdvcmtpbmcgQVBJLCB1c2luZyB0aGVzZSBBUEkncyB5b3UgY2FuIGNyZWF0ZSBhIHNvY2lhbCBuZXR3b3JraW5nIHdlYnNpdGUgbGlrZSBGYWNlYm9vaywgVHdpdHRlcgoKWW91IGNhbiBnb3RvICB0byBmaW5kIHRoZSB3b3Jrc3BhY2Ugd2l0aCBBUEkgY29sbGVjdGlvbiAsIFRlc3RzIGFuZCBNb2NrIFNlcnZlciBmb3IgZGV2ZWxvcGluZyB1c2luZyB0aGlzIEFQSSBzcGVjaWZpY2F0aW9uLiAKCgojIyBVc2VmdWwgTGlua3MKLSBCbG9nIFBvc3RzIGFib3V0IHRoZSBwcm9qZWN0IGFuZCBoYWNrYXRob24gLSBodHRwczovL3BoeXNjb2NvZGUuY29tL2NhdGVnb3J5L3Bvc3RtYW4vCi0gRG9jdW1lbnQgZXhwbGFpbmluZyB0aGUgQVBJJ3MgY2FuIGJlIGZvdW5kIGhlcmUgLSBodHRwczovL2RvY3VtZW50ZXIuZ2V0cG9zdG1hbi5jb20vdmlldy8xNzIyMTExL1RXNnRMcTUzCi0gWW91IGNhbiBmaW5kIHRoZSBwdWJsaWMgd29ya3NwYWNlIGhlcmUgLSBodHRwczovL3d3dy5wb3N0bWFuLmNvbS9wcmFuamFsc2hvcC93b3Jrc3BhY2UvdGhlLXNvY2lhbC1uZXR3b3JrLWFwaS1zL292ZXJ2aWV3Ci0gQVBJIGRlc2lnbiBjb25jZXB0IC0gaHR0cHM6Ly9waHlzY29jb2RlLmNvbS9vc3NuLWFwaS1vcGVuLXNvdXJjZS1zb2NpYWwtbmV0d29ya2luZy1hcGktZGVzaWduLWNvbmNlcHQvCi0gU2VydmVyIHNpZGUgaW1wbGVtZW50YXRpb24gb2Ygc3BlY2lmaWNhdGlvbiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9PU1NOQVBJL09TU04tc2VydmVyLXBocAoKIyMgVGhpcyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgaW1wbGVtZW50YWlvbiBvZiBmb2xsb3dpbmcgQVBJOgoxKSAqKlVzZXIgQVBJIGNvbGxlY3Rpb24qKiAtIENvbGxlY3Rpb24gb2YgQVBJJ3MgdG8gbWFuYWdlIHVzZXJzCjIpICoqUG9zdHMgQVBJIGNvbGxlY3Rpb24qKiAtIENvbGxlY3Rpb24gb2YgQVBJIHRvIG1hbmFnZSBwb3N0cyB0aGF0IGNhbiByYW5nZSBmcm9tIHNtYWxsIHR3ZWV0cyB0byBhIGZ1bGwgaW1hZ2UgcG9zdCBvciBldmVuIGEgc2xpZGUgb2YgaW1hZ2VzCjMpICoqTGlrZSBhbmQgQ29tbWVudCBBUEkgY29sbGVjdGlvbioqIC0gQVBJIHRvIG1hbmFnZSBsaWtlcyBhbmQgY29tbWVudHMgYXR0YWNoZWQgdG8gcG9zdHMKNCkgKipVc2VyIFJlbGF0aW9uIEFQSSBjb2xsZWN0aW9uKiogLSBDb2xsZWN0aW9uIG9mIGFwaSB0byBtYW5nZSByZWxhdGlvbiBiZXR3ZWVuIHVzZXJzIChmcmllbmRzLGZvbGxvdyxjaXJlY2xlcyBldGMpCjUpICoqTWVzc2FnaW5nIEFQSSBjb2xsZWN0aW9uKiogLSBDb2xsZWN0aW9uIG9mIGFwaSBmb3IgYnVpbGRpbmcgMS0xIG9yIGdyb3VwCjYpICoqRmVlZCBBUEkgY29sbGVjdGlvbioqIC0gQ29sbGVjdGlvbiBvZCBhcGkgdG8gbWFuYWdlIGFjdGl2aXR5IGZlZWQKCiMjIFRoaXMgc3BlY2lmaWNhdGlvbiBkZWZpbmVzIGZvbGxvd2luZyBtb2RlbDoKMSkgKipVc2VyKiogLSB0byBzdG9yZSBhbmQgcmV0cmlldmUgdXNlciBkYXRhCjIpICoqUG9zdCoqIC0gdGhpcyBpcyB0aGUgYmFzaWMgYmFja2JvbmUgb2Ygc29jaWFsIGZlYXR1cmUsIGEgcG9zdCBjYW4gYmUgYW55dGhpbmcgZnJvbSBzaG9ydCB0d2VldHMsIHRvIGltYWdlIGJhc2VkIHBvc3QgCjMpICoqRmVlZCoqIC0gdGhpcyBpcyB1c2VkIHRvIHN0b3JlIGludGVyYWN0aW9uIGJldHdlZW4gdXNlcnMgLCB1c2VyIGFuZCBwb3N0IGFuZCBvdGhlciBhY3Rpdml0eSBvZiB1c2Vycy4gRWcgOiBYIGxpa2VzIGEgcG9zdCAsIFggaXMgbm93IGZyaWVuZHMgd2l0aCBZIGV0Yy4gVGhlc2UgYWN0aXZpdGllcyBjYW4gdGhlbiBiZSBkaXNwbGF5ZWQgb24gZmVlZAo0KSAqKkxpa2UqKiAtIHN0b3JlIGxpc3Qgb2YgYWxsIHVzZXIgd2hvIGxpa2VzIGEgcGFydGljdWxhciBwb3N0CjUpICoqQ29tbWVudHMqKiAtIHN0b3JlIGFsbCB0aGUgY29tbWVudHMgZm9yIGEgcG9zdAo2KSAqKlVzZXJSZWxhdGlvbioqIC0gdGhpcyBzdG9yZXMgcmVsYXRpb24gYmV0d2VlbiB0d28gdXNlcnMgLCB0aGlzIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCByZWxhdGlvbnMgbGlrZSAnZnJpZW5kcycsICdmb2xsb3cnIG9yIHNvbWV0aGluZyBhcyBjb21wbGV4IGFzICdjaXJjbGVzJyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGJ5IEdvb2dsZSArCjcpICoqTWVzc2FnZSoqIC0gdGhpcyBzdG9yZXMgbWVzc2VnZXMgc2VudCBpbiBncm91cHMgb3IgMS0xIGludGVyYWN0aW9uCjgpICoqTWVzc2FnZVJvb20qKiAtIHRoaXMgc3RvcmVzIHRoZSBtZXNzYWdpbmcgcm9vbXMgLCByb29tcyBjYW4gYmUgMS0xIG1lc3NhZ2luZyByb29tcyBvciBncm91cCBtZXNzYWdlIHJvb21zLiBNZXNzYWdlIHJvb21zIGFyZSB3aGVyZSBtZXNzYWdlcyBhcmUgZXhjaGFuZ2VkCgojIyBMaWNlbnNlClRoaXMgcHJvamVjdCBpcyBjcmVhdGVkIGJ5IFtQcmFuamFsIFBhbmRleV0oaHR0cHM6Ly9naXRodWIuY29tL3BoeXNjb2NvZGUpIGFuZCBpcyBhdmFpbGFibGUgdW5kZXIgTUlUIGxpY2Vuc2UK readmeEtag: '"b133ee07521830b044ea3b5505ae41045863b6cc"' readmeLastModified: Sun, 31 Jan 2021 19:59:57 GMT repositoryId: 331009814 description: Open API 3.0 spec for creating social networking API created: '2021-01-19T14:37:48Z' updated: '2023-12-11T22:37:01Z' language: null archived: false stars: 4 watchers: 2 forks: 0 owner: ipranjal logo: https://avatars.githubusercontent.com/u/7591484?v=4 license: MIT repoEtag: '"7cbb2f04d525276411ced2b98fbe858a56d04b625f6ab1602f11e3751537bf9c"' repoLastModified: Mon, 11 Dec 2023 22:37:01 GMT foundInMaster: true category: Server Implementations id: ad45934ff23eea424cd904c63c539912 oldLocations: - https://github.com/scrawler-archive/openapi-spec - source: openapi3 tags repository: https://github.com/salesforce/anypoint-automation-client-generator v3: true repositoryMetadata: base64Readme: >- IyBDbG91ZGh1YiBBUEkgQ2xpZW50IEdlbmVyYXRvcgoKIyMgSW5zdGFsbAoKTWFrZSBzdXJlIHRvIGluc3RhbGwgbm9kZWpzIGFuZCBucG0gYW5kIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBpbiB0aGUgcm9vdCBwcm9qZWN0CgpgYGBiYXNoCm5wbSBpbnN0YWxsCmBgYAoKIyMgRXhlY3V0ZSBnZW5lcmF0b3IKCk1ha2Ugc3VyZSB0byBhZGQgYEFOWVBPSU5UX0dFTkVSQVRPUl9HT19ERVNUYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGF0IHNob3VsZCBwb2ludCB0byB0aGUgZGVzdGluYXRpb24gZ28gZm9sZGVyLiBZb3UgY2FuIHVzZSB0aGUgYGRpc3RgIGZvbGRlciBvZiB0aGUgcHJvamVjdCB3aGljaCBpcyBpZ25vcmVkIGluIGdpdCBieSBleGVjdXRpbmcgdGhlIGZvbGxvd2luZyBpbnNpZGUgdGhlIHByb2plY3QncyBmb2xkZXI6CgpgYGBiYXNoCmV4cG9ydCBBTllQT0lOVF9HRU5FUkFUT1JfR09fREVTVD1gcHdkYC9kaXN0CmBgYAoKVXNlIHRoZSBmb2xsb3dpbmcgdG8gZ2V0IHRoZSBtYW51YWwKCmBgYGJhc2gKbnB4IG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBoZWxwCmBgYAoKVXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBnZW5lcmF0ZSB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzdG9yZWQgaW4gYG9wZW5hcGl0b29scy5qc29uYAoKYGBgYmFzaApucHggb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlCmBgYAoKIyMgSG93IHRvIHdyaXRlIHlvdXIgc3BlYyA/CgpIZXJlJ3Mgc29tZSBydWxlcyB0byBrZWVwIGluIG1pbmQgd2hlbiB5b3Ugd3JpdGUgeW91ciBzcGVjOgoKKiBVc2UgT0FTIDMuMC4wCiogRGVmaW5lIHlvdXIgb2JqZWN0cyBzY2hlbWFzIGluIGAjL2NvbXBvbmVudHMvc2NoZW1hYCBhbmQgcmVmZXJlbmNlIHRoZW0gaW4geW91ciBwYXRoIGRlZmluaXRpb25zLgoqIFVzZSBlbmhlcml0YW5jZSBhbmQgcG9seW1vcnBoaXNtIHdoZW4geW91IGRlZmluZSB5b3VyIHNjaGVtYXMgdG8gYXZvaWQgcmVkZWZpbmluZyB0aGUgc2FtZSBhdHRyaWJ1dGVzIG11bHRpcGxlIHRpbWVzLiBbcmVmXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL2luaGVyaXRhbmNlLWFuZC1wb2x5bW9ycGhpc20vKS4KKiBGb3IgZWFjaCBhdHRyaWJ1dGUgb2YgeW91ciBzY2hlbWFzIG1ha2Ugc3VyZSB0byBwcm92aWRlIGEgYHRpdGxlYC4gVGhlIGB0aXRsZWAgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgc3RydWN0dXJlIG5hbWUgZm9yIHRoYXQgYXR0cmlidXRlLCB0aGVyZWZvcmUgdXNlIGEgc2hvcnQgYW5kIGNvbnNpdGVudCBuYW1lLiBsb29rIGluIHRoZSBleGlzdGVudCBzcGVjcyBmb3IgZXhhbXBsZXMuCiogVXNlICoqY2FtbCBjYXNlKiogaW4gYHRpdGxlYCB0byBuYW1lIHlvdXIgc2NoZW1hcyBhdHRyaWJ1dGVzLgoqIFdoZW4gdXNpbmcgYHRpdGxlYCB0byBkZXNjcmliZSBhbiBvYmplY3Qgb3IgYXJyYXksIGl0cyBuYW1lIHNob3VsZCBiZSB1bmlxdWUgYWNjcm9zcyB0aGUgc2FtZSBzcGVjaWZpY2F0aW9uLgoqIEZvciBlYWNoIG9mIHlvdXIgYXBpIHJlc291cmNlLCByZXR1cm4gYSBkZXRlcm1pbmlzdGljIHJlc3VsdCBhbmQgbmV2ZXIgdXNlciBPbmVPZiBmb3IgZXhhbXBsZS4gVGhlIGdlbmVyYXRvciB3aWxsIG5vdCBiZSBhYmxlIHRvIGNyZWF0ZSB0aGUgYXBwcm9wcmlhdGUgVHlwZS4KKiBGb3IgYWxsIHNpbXBsZSB0eXBlcyAoZS5nIGludGVnZXIsIHN0cmluZyAuLi4pIERvbid0IHVzZSBgJHJlZmAgdG8gcmVmZXIgdG8gdGhlIGRlZmluaXRpb24uCiogTWFrZSBzdXJlIHRvIHJlbW92ZSBhbnkgdW5uZWNlc3NhcnkgYHJlcXVpcmVkYCBhdHRyaWJ1dGVzLgoqIFRob3VnaCB0aGUgdXNlIG9mIGJvZHkgcGFyYW1ldGVyIGlzIGRpc2NvdXJhZ2VkIGZvciBgREVMRVRFYCBvcGVyYXRpb25zLCBzb21lIEFQSXMgbWF5IHJlcXVpcmUgaXQgKHRvIGRlbGV0ZSBtdWx0aXBsZSBzcGVjaWZpYyBpdGVtcyBmb3IgZXhhbXBsZS4uLikuIEluIHRoYXQgY2FzZSBzb21lIGVkaXRvcnMgbGlrZSBTd2FnZ2VyIG1heSBzaG93IGFuIGVycm9yIHdoZW4geW91IGFkZCBhIGByZXF1ZXN0Qm9keWAgb24gYSBgREVMRVRFYCByZXNvdXJjZSBvcGVyYXRpb24uIERvbid0IHBheSBhdHRlbnRpb24gdG8gdGhhdCBlcnJvciBzaW5jZSBvdXIgY29kZSBnZW5lcmF0b3Igc3VwcG9ydHMgaXQuIElmIHlvdSBhcmUgYW5ub3llZCBieSB0aGF0LCB0cnkgdXNpbmcgeW91ciBmYXZvcml0ZSBlZGl0b3IncyBwbHVnaW4gZm9yIG9wZW5hcGkgKGV4YW1wbGUgb24gdnNjb2RlIG9wZW5hcGkgW3BsdWdpbl0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPTQyQ3J1bmNoLnZzY29kZS1vcGVuYXBpKSkuCiogSWYgYSBnaXZlbiBmaWVsZCBzdXBwb3J0cyBtdWx0aXBsZSB0eXBlcywgZG9uJ3QgdXNlIGBvbmVPZmAgb3IgYGFueU9mYC4gSW5zdGVhZCwgbGVhdmUgdGhlIHR5cGUgZW1wdHkgKGFkZCB0aXRsZSBmaWVsZCBvciBkZXNjcmlwdGlvbiBvbmx5IGZvciBleGFtcGxlKS4KKiBVc2UgYG9wZXJhdGlvbklkYCB0byBuYW1lIHJlc291cmNlcy4uCgojIyBSZWZlcmVuY2UKCiogW29wZW4gYXBpIGdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoLykKKiBbb3BlbmFwaSBwbGFjZWhvbGRlcnMgbWF2ZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kKQoqIFtvcGVuYXBpIGNsaSBwbGFjZWhvbGRlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RyZWUvbWFzdGVyL2FwcHMvZ2VuZXJhdG9yLWNsaS9zcmMjYXZhaWxhYmxlLXBsYWNlaG9sZGVycykKKiBbSlNPTiB0byBKU09OU2NoZW1hIENvbnZlcnRlciBUb29sXShodHRwczovL3d3dy5qc29uc2NoZW1hLm5ldC9ob21lKQoKIyMgRGlzY2xhaW1lcgoKKipUaGlzIGlzIGFuIFtvcGVuIHNvdXJjZSBzb2Z0d2FyZSwgcGxlYXNlIHJldmlldyB0aGUgY29uc2lkZXJhdGlvbnNdKExJQ0VOU0UubWQpLioqClRoaXMgaXMgYW4gb3BlbiBzb3VyY2UgcHJvamVjdCwgaXQgZG9lcyBub3QgZm9ybSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBNdWxlU29mdCBwcm9kdWN0IHN0YWNrLCBhbmQgaXMgdGhlcmVmb3JlIG5vdCBpbmNsdWRlZCBpbiBNdWxlU29mdCBzdXBwb3J0IFNMQXMuIElzc3VlcyBzaG91bGQgYmUgZGlyZWN0ZWQgdG8gdGhlIGNvbW11bml0eSwgd2hvIHdpbGwgdHJ5IHRvIGFzc2lzdCBvbiBhIGJlc3QgZW5kZWF2b3VycyBiYXNpcy4gVGhpcyBhcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCAqKmFzIGlzKiouCg== readmeEtag: '"f49fb3502a8d0b47b5875c31f2e595f790aa972c"' readmeLastModified: Tue, 06 Feb 2024 14:37:39 GMT repositoryId: 350462203 description: OAS specifications for Anypoint Platform Resources created: '2021-03-22T19:19:01Z' updated: '2024-01-31T07:04:10Z' language: null archived: false stars: 4 watchers: 6 forks: 12 owner: salesforce logo: https://avatars.githubusercontent.com/u/453694?v=4 license: MIT repoEtag: '"c91e48e85638848d69234ccfda7734279ad560c09cd20ff51f95fc0e95c62cae"' repoLastModified: Wed, 31 Jan 2024 07:04:10 GMT foundInMaster: true category: Parsers id: 5169bc3ad6bc176c4877e87d5d4d22c3 oldLocations: - >- https://github.com/mulesoft-consulting/anypoint-automation-client-generator - source: openapi3 tags repository: https://github.com/onrik/gaws v3: true id: 26ff5e96931349992339526fe9eab9cb repositoryMetadata: base64Readme: >- IyBHYXdzCgpPcGVuQVBJIChzd2FnZ2VyKSBkb2NzIGdlbmVyYXRvciBmb3IgR29sYW5nLgoKIyMgRXhhbXBsZXMKCmBgYGdvbGFuZwpwYWNrYWdlIHVzZXJzCgppbXBvcnQgKAoJIm5ldC9odHRwIgoJInRpbWUiCikKCnR5cGUgR3JvdXAgc3RydWN0IHsKCU5hbWUgc3RyaW5nIGBqc29uOiJuYW1lImAKfQoKdHlwZSBVc2VyIHN0cnVjdCB7CglfICAgICAgICAgc3RydWN0e30gIGBqc29uOiItIiBvcGVuYXBpRGVzYzoiVXNlciJgIC8vIERlc2NyaXB0aW9uIGZvciBlbml0cmUgc3RydWN0CglJRCAgICAgICAgdWludCAgICAgIGBqc29uOiJpZCJgCglOYW1lICAgICAgc3RyaW5nICAgIGBqc29uOiJuYW1lIiBvcGVuYXBpRXh0OiJ4LWV4dC1rZXk6ZXh0LXZhbHVlImAgLy8gIFBhc3Npbmcgb3BlbmFwaSBleHRlbnNpb25zIHRvIHNwZWMgYXMgaXMKCUVtYWlsICAgICBzdHJpbmcgICAgYGpzb246ImVtYWlsIiBvcGVuYXBpRGVzYzoiVXNlcidzIGVtYWlsImAgLy8gRGVzY3JpcHRpb24gZm9yIGN1cnJlbnQgZmllbGQKCUlzQWRtaW4gICBib29sICAgICAgYGpzb246ImlzX2FkbWluImAKCUdyb3VwcyAgICBbXUdyb3VwICAgYGpzb246Imdyb3VwcyJgCglDcmVhdGVkQXQgdGltZS5UaW1lIGBqc29uOiJjcmVhdGVkX2F0ImAKCVN0YXR1cyAgICBzdHJpbmcgICAgYGpzb246InN0YXR1cyIgb3BlbmFwaUVudW06Im5ldyxjb25maXJtZWQsZGVsZXRlZCJgIC8vIEVudW0gZm9yIGN1cnJlbnQgZmllbGQgdmFsdWVzCQp9Cgp0eXBlIGNyZWF0ZVVzZXJSZXF1ZXN0IHN0cnVjdCB7CglFbWFpbCAgICAgc3RyaW5nICAgYGpzb246ImVtYWlsImAKCU5hbWUgICAgICBzdHJpbmcgICBganNvbjoibmFtZSJgCglQYXNzd29yZDEgc3RyaW5nICAgYGpzb246InBhc3N3b3JkMSJgCglQYXNzd29yZDIgc3RyaW5nICAgYGpzb246InBhc3N3b3JkMiJgCglJc0FkbWluICAgYm9vbCAgICAgYGpzb246ImlzX2FkbWluImAKCUdyb3VwcyAgICBbXXN0cmluZyBganNvbjoiZ3JvdXBzImAKfQoKdHlwZSB1cGRhdGVVc2VyUmVxdWVzdCBzdHJ1Y3QgewoJRW1haWwgICAgKnN0cmluZyAgIGBqc29uOiJlbWFpbCxvbWl0ZW1wdHkiYAoJTmFtZSAgICAgKnN0cmluZyAgIGBqc29uOiJuYW1lLG9taXRlbXB0eSJgCglQYXNzd29yZCAqc3RyaW5nICAgYGpzb246InBhc3N3b3JkLG9taXRlbXB0eSJgCglJc0FkbWluICAqYm9vbCAgICAgYGpzb246ImlzX2FkbWluLG9taXRlbXB0eSJgCglHcm91cHMgICAqW11zdHJpbmcgYGpzb246Imdyb3VwcyxvbWl0ZW1wdHkiYAp9CgovKgpVc2VycyByZXR1cm5zIHVzZXJzIGxpc3QKQG9wZW5hcGkgR0VUIC9hcGkvdjEvdXNlcnMKQG9wZW5hcGlQYXJhbSBxIGluPXF1ZXJ5LCB0eXBlPXN0cmluZywgZXhhbXBsZT1Kb2huCkBvcGVuYXBpUmVzcG9uc2UgMjAwIGFwcGxpY2F0aW9uL2pzb24geyJ1c2VycyI6IFtdVXNlcn0KKi8KZnVuYyBVc2Vycyh3IGh0dHAuUmVzcG9uc2VXcml0ZXIsIHIgKmh0dHAuUmVxdWVzdCkgewp9CgovKgpDcmVhdGVVc2VyIGNyZWF0ZXMgdXNlcgpAb3BlbmFwaSBQT1NUIC9hcGkvdjEvdXNlcnMKQG9wZW5hcGlSZXF1ZXN0IGFwcGxpY2F0aW9uL2pzb24gY3JlYXRlVXNlclJlcXVlc3QKQG9wZW5hcGlSZXNwb25zZSA0MDAgYXBwbGljYXRpb24vanNvbiB7Im1lc3NhZ2UiOiAiZW1haWw9ZW1haWw7bmFtZT1yZXF1aXJlZCJ9CkBvcGVuYXBpUmVzcG9uc2UgMjAwIGFwcGxpY2F0aW9uL2pzb24geyJ1c2VyIjogVXNlcn0KKi8KZnVuYyBDcmVhdGVVc2VyKHcgaHR0cC5SZXNwb25zZVdyaXRlciwgciAqaHR0cC5SZXF1ZXN0KSB7Cn0KCi8qClVwZGF0ZVVzZXIgdXBkYXRlcyB1c2VyCkBvcGVuYXBpIFBPU1QgL2FwaS92MS91c2Vycy97aWR9CkBvcGVuYXBpUGFyYW0gaWQgaW49cGF0aCwgdHlwZT1pbnQsIGV4YW1wbGU9NTYKQG9wZW5hcGlSZXF1ZXN0IGFwcGxpY2F0aW9uL2pzb24gdXBkYXRlVXNlclJlcXVlc3QKQG9wZW5hcGlSZXNwb25zZSA0MDQgYXBwbGljYXRpb24vanNvbiB7Im1lc3NhZ2UiOiAiTm90IEZvdW5kIn0KQG9wZW5hcGlSZXNwb25zZSAyMDAgYXBwbGljYXRpb24vanNvbiB7InVzZXIiOiBVc2VyfQoqLwpmdW5jIFVwZGF0ZVVzZXIodyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHsKfQoKLyoKRGVsZXRlVXNlciBkZWxldGUgdXNlcgpAb3BlbmFwaSBERUxFVEUgL2FwaS92MS91c2Vycy97aWR9CkBvcGVuYXBpUGFyYW0gaWQgaW49cGF0aCwgdHlwZT1pbnQsIGV4YW1wbGU9NTYKQG9wZW5hcGlSZXNwb25zZSA0MDQgYXBwbGljYXRpb24vanNvbiB7Im1lc3NhZ2UiOiAiTm90IEZvdW5kIn0KQG9wZW5hcGlSZXNwb25zZSAyMDAgYXBwbGljYXRpb24vanNvbiB7fQoqLwpmdW5jIERlbGV0ZVVzZXIodyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHsKfQoKYGBgCg== readmeEtag: '"150b2a4f9a3e3eec503db50501996759055b440e"' readmeLastModified: Mon, 08 Apr 2024 05:16:18 GMT repositoryId: 515461559 description: OpenAPI doc generator for Golang created: '2022-07-19T06:25:23Z' updated: '2024-03-04T11:54:46Z' language: Go archived: false stars: 4 watchers: 2 forks: 3 owner: onrik logo: https://avatars.githubusercontent.com/u/4413900?v=4 license: MIT repoEtag: '"5c9a1326da655fdc6d5677d7a03e39fd18fd543a2b15734eb314a7e83a00e81a"' repoLastModified: Mon, 04 Mar 2024 11:54:46 GMT foundInMaster: true category: Parsers - source: openapi3 tags repository: https://github.com/d-yoshi/redmine-openapi v3: true id: 0304cdf06000047bbe0a8072d0785b11 repositoryMetadata: base64Readme: >- IyBVbm9mZmljaWFsIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIFJlZG1pbmUgQVBJCgpbIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL2QteW9zaGkvcmVkbWluZS1vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZC15b3NoaS9yZWRtaW5lLW9wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sKQoKIyMgT3ZlcnZpZXcKClRoaXMgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGUgd2FzIGNyZWF0ZWQgYnkgbWFudWFsIHNjcmFwaW5nIHRoZSBvZmZpY2lhbCBhcGkgZG9jcyBhbmQgZXhwZXJpbWVudGF0aW9uLgoKIyMgRG9jcwoKYGBgClJlZG1pbmU6IDUuMC54Ck9wZW5BUEk6IDMuMC4zCmBgYAoKaHR0cHM6Ly9kLXlvc2hpLmdpdGh1Yi5pby9yZWRtaW5lLW9wZW5hcGkvCgojIyBSZWZlcmVuY2UKCltSZWRtaW5lIEFQSSBPZmZpY2lhbCBEZXZlbG9wZXIgR3VpZGVdKGh0dHBzOi8vd3d3LnJlZG1pbmUub3JnL3Byb2plY3RzL3JlZG1pbmUvd2lraS9SZXN0X2FwaSkK readmeEtag: '"63703a7edc35369c81185297dd3bd2e4b61f0ee5"' readmeLastModified: Wed, 12 Jun 2024 04:15:44 GMT repositoryId: 490070672 description: Unofficial OpenAPI specification for the Redmine API created: '2022-05-08T22:36:30Z' updated: '2024-06-12T04:16:55Z' language: null archived: false stars: 4 watchers: 1 forks: 0 owner: d-yoshi logo: https://avatars.githubusercontent.com/u/22128066?v=4 license: MIT repoEtag: '"89daff9a6cd124c5695dd31721144249775fa1f0bc49c444d45a30a52cd78dc5"' repoLastModified: Wed, 12 Jun 2024 04:16:55 GMT category: - Description Validators - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/llcfreedom-space/fs-itunes-search-client v3: true id: 8e18353fd2f762ba3c4be5a9e22f89d9 repositoryMetadata: base64Readme: >- IyBGU0lUdW5lc1NlYXJjaENsaWVudAoKWyFbU3dpZnQgVmVyc2lvbl1bc3dpZnQtaW1hZ2VdXVtzd2lmdC11cmxdClshW0xpY2Vuc2VdW2xpY2Vuc2UtaW1hZ2VdXVtsaWNlbnNlLXVybF0KIVtHaXRIdWIgcmVsZWFzZSAod2l0aCBmaWx0ZXIpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3JlbGVhc2UvTExDRnJlZWRvbS1TcGFjZS9mcy1pdHVuZXMtc2VhcmNoLWNsaWVudCkKIFshW1JlYWQgdGhlIERvY3NdKGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL2RvY3MvYmFkZ2UvP3ZlcnNpb249bGF0ZXN0KV0oaHR0cHM6Ly9sbGNmcmVlZG9tLXNwYWNlLmdpdGh1Yi5pby9mcy1pdHVuZXMtc2VhcmNoLWNsaWVudC8pCiFbZXhhbXBsZSB3b3JrZmxvd10oaHR0cHM6Ly9naXRodWIuY29tL0xMQ0ZyZWVkb20tU3BhY2UvZnMtaXR1bmVzLXNlYXJjaC1jbGllbnQvYWN0aW9ucy93b3JrZmxvd3MvZG9jYy55bWwvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKQohW2V4YW1wbGUgd29ya2Zsb3ddKGh0dHBzOi8vZ2l0aHViLmNvbS9MTENGcmVlZG9tLVNwYWNlL2ZzLWl0dW5lcy1zZWFyY2gtY2xpZW50L2FjdGlvbnMvd29ya2Zsb3dzL2xpbnQueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbikKIVtleGFtcGxlIHdvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20vTExDRnJlZWRvbS1TcGFjZS9mcy1pdHVuZXMtc2VhcmNoLWNsaWVudC9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pCiBbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL0xMQ0ZyZWVkb20tU3BhY2UvZnMtaXR1bmVzLXNlYXJjaC1jbGllbnQvZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPTJFVUlBNE9HUzkpXShodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL0xMQ0ZyZWVkb20tU3BhY2UvZnMtaXR1bmVzLXNlYXJjaC1jbGllbnQpCgpUaGlzIFN3aWZ0IHBhY2thZ2UgcHJvdmlkZXMgYSBjbGllbnQgbGlicmFyeSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgaVR1bmVzIFNlYXJjaCBBUEkuIEl0IGxldmVyYWdlcyB0aGUgcG93ZXIgb2YgW1N3aWZ0IE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vYXBwbGUvc3dpZnQtb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYWluKSB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGNvZGUgZnJvbSB0aGUgcHJvdmlkZWQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGUgKG9wZW5hcGkueWFtbCkuCgojIyBGZWF0dXJlcwoKKiBGZXRjaCBhcHAgaW5mb3JtYXRpb24gYnkgYnVuZGxlIElEIGFuZCBvcHRpb25hbCBjb3VudHJ5IGNvZGUuCiogSGFuZGxlcyBkaWZmZXJlbnQgcmVzcG9uc2UgZm9ybWF0cyAoSlNPTiBhbmQgSlNPTlApLgoqIFRocm93cyBpbmZvcm1hdGl2ZSBlcnJvcnMgZm9yIHNlcnZlciBlcnJvcnMgYW5kIG5vdCBmb3VuZCBjYXNlcy4KCiMjIEluc3RhbGxhdGlvbgoKMS4gQWRkIHRoZSBwYWNrYWdlIGRlcGVuZGVuY3kgdG8geW91ciBQYWNrYWdlLnN3aWZ0IGZpbGU6CgpgYGBzd2lmdApkZXBlbmRlbmNpZXM6IFsKLnBhY2thZ2UodXJsOiAiaHR0cHM6Ly9naXRodWIuY29tL0xMQ0ZyZWVkb20tU3BhY2UvZnMtaXR1bmVzLXNlYXJjaC1jbGllbnQiLCBmcm9tOiAiMS4wLjAiKQpdCmBgYAoKMi4gSW1wb3J0IHRoZSBsaWJyYXJ5IGluIHlvdXIgU3dpZnQgY29kZToKCmBgYHN3aWZ0CmltcG9ydCBJVHVuZXNTZWFyY2hDbGllbnQKYGBgCgojIyBVc2FnZQoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHVzZSB0aGUgSVR1bmVzU2VhcmNoQ2xpZW50IHRvIGZldGNoIGluZm9ybWF0aW9uIGFib3V0IGFuIGFwcDoKCmBgYHN3aWZ0CmxldCBjbGllbnQgPSB0cnkgSVR1bmVzU2VhcmNoQ2xpZW50KCkKCmRvIHsKbGV0IGFwcEluZm8gPSB0cnkgYXdhaXQgY2xpZW50LmZldGNoQXBwSW5mbyhieTogImNvbS5leGFtcGxlLk15QXBwIikKcHJpbnQoIkFwcCBWZXJzaW9uOiBcKGFwcEluZm8udmVyc2lvbiA/PyAiTm90IGF2YWlsYWJsZSIpIikKcHJpbnQoIkJ1bmRsZSBJRDogXChhcHBJbmZvLmJ1bmRsZUlkISkiKQovLyAuLi4gYWNjZXNzIG90aGVyIHByb3BlcnRpZXMgb2YgQXBwSW5mbwp9IGNhdGNoIHsKcHJpbnQoIkVycm9yIGZldGNoaW5nIGFwcCBpbmZvOiBcKGVycm9yKSIpCn0KYGBgCgojIyBDb250cmlidXRpb25zCgpXZSB3ZWxjb21lIGNvbnRyaWJ1dGlvbnMgdG8gdGhpcyBwcm9qZWN0ISBQbGVhc2UgZmVlbCBmcmVlIHRvIG9wZW4gaXNzdWVzIG9yIHB1bGwgcmVxdWVzdHMgdG8gaGVscCBpbXByb3ZlIHRoZSBwYWNrYWdlLgoKIyMgTGlua3MKCkxMQyBGcmVlZG9tIFNwYWNlIOKAkyBbQExMQ0ZyZWVkb21TcGFjZV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9sbGNmcmVlZG9tc3BhY2UpIOKAkyBbc3VwcG9ydEBmcmVlZG9tc3BhY2UuY29tcGFueV0obWFpbHRvOnN1cHBvcnRAZnJlZWRvbXNwYWNlLmNvbXBhbnkpCgpEaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEFGRkVSTyBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFIFZlcnNpb24gMy4gU2VlIFtMSUNFTlNFLm1kXVtsaWNlbnNlLXVybF0gZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL0xMQ0ZyZWVkb20tU3BhY2UpCgpbc3dpZnQtaW1hZ2VdOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3dpZnQtNS44LW9yYW5nZS5zdmcKW3N3aWZ0LXVybF06IGh0dHBzOi8vc3dpZnQub3JnLwpbbGljZW5zZS1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1HUEx2My1ibHVlLnN2ZwpbbGljZW5zZS11cmxdOiBMSUNFTlNFCg== readmeEtag: '"3238de09b1e741b1364b00851754bc8ca20bd693"' readmeLastModified: Wed, 17 Apr 2024 08:55:29 GMT repositoryId: 782396471 description: >- This Swift package provides a client library for interacting with the iTunes Search API. It leverages the power of Swift OpenAPI Generator to automatically generate code from the provided OpenAPI specification file (openapi.yaml). created: '2024-04-05T08:09:57Z' updated: '2024-07-30T14:45:17Z' language: Swift archived: false stars: 4 watchers: 1 forks: 0 owner: LLCFreedom-Space logo: https://avatars.githubusercontent.com/u/144135921?v=4 license: AGPL-3.0 repoEtag: '"83d88193930074015910026ef9cff46398d0a1be21de32e3a249245d7f94d380"' repoLastModified: Tue, 30 Jul 2024 14:45:17 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/ondata/taskforse.it v3: true repositoryMetadata: base64Readme: >- IyBUYXNrIEZvcnNlCgo+IE5lbCBkdWJiaW8uLi4gdGFzayBmb3JzZSEKCiJUYXNrIEZvcnNlIiBpcyBhbiBpbmRlcGVuZGVudCBwcm9qZWN0IGZvciBtb25pdG9yaW5nIG9mIHB1YmxpYyB0YXNrIGZvcmNlcycgYWN0aXZpdHkgZHVyaW5nIENPVklELTE5IGVtZXJnZW5jeSBpbiAyMDIwIGluIEl0YWx5OiBodHRwczovL3d3dy50YXNrZm9yc2UuaXQvLgoKSXQncyBhIG5vLXByb2ZpdCBhbmQgY29tbXVuaXR5LWRyaXZlbiBpbml0aWF0aXZlIHN1cHBvcnRlZCBieSBbT25kYXRhXShodHRwczovL29uZGF0YS5pdCkgYW5kIGJhc2VkIG9uIGEgc2hhcmVkIGRhdGFiYXNlIGhvc3RlZCBieSBbR29vZ2xlIFNoZWV0c10oaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2l0L3NoZWV0cy9hYm91dC8pIGFuZCBbR29vZ2xlIEZvcm1dKGh0dHBzOi8vd3d3Lmdvb2dsZS5pdC9pbnRsL2l0L2Zvcm1zL2Fib3V0LykgYW5kIGEgd2ViIGFwcGxpY2F0aW9uIGJ1aWx0IG9uIHRvcCBvZiBbTmV4dEpTXShodHRwczovL25leHRqcy5vcmcvKS4KClRoZSBuYW1lICJUYXNrIEZvcnNlIiBpcyBhIGpva2UgaW4gSXRhbGlhbiBsYW5ndWFnZTogX2ZvcmNlXyBpbiBFbmdsaXNoIGFuZCBfZm9yc2VfIGluIEl0YWxpYW4gKF9tYXliZV8gaW4gRW5nbGlzaCkgc291bmQgc2ltaWxhciwgc28gaW4gSXRhbHkgdGhlIHdvcmQgX3Rhc2sgZm9yc2VfIHN1Z2dlc3RzIHNvbWUgYW1vdW50IG9mIHVuY2VydGFpbnR5IGluIHRoZSBtYW5hZ2VtZW50IG9mIGVtZXJnZW5jeSB1c2luZyB0YXNrIGZvcmNlcyBhcHBvaW50ZWQgYnkgdGhlIGdvdmVybm1lbnQgYW5kIGxvY2FsIHB1YmxpYyBpbnN0aXR1dGlvbnMuCgojIyBEYXRhYmFzZQoKU2hhcmVkIGRhdGFiYXNlOiBbMTVMbUNpWUtnMmNXem92QWlxcXVocF9sWXNhQlN1R05hdTdzdVVrUWRkbDhdKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzE1TG1DaVlLZzJjV3pvdkFpcXF1aHBfbFlzYUJTdUdOYXU3c3VVa1FkZGw4L2VkaXQ/dXNwPXNoYXJpbmcpLgoKU2hlZXRzOgotIFtNZXRhXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xNUxtQ2lZS2cyY1d6b3ZBaXFxdWhwX2xZc2FCU3VHTmF1N3N1VWtRZGRsOC9lZGl0I2dpZD0wKTogZGF0YWJhc2UgbWV0YWRhdGEgd2l0aCB0YWJsZXMgYW5kIGZpZWxkcyBkZXNjcmlwdGlvbnMuCi0gW1Rhc2sgZm9yc2VzXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xNUxtQ2lZS2cyY1d6b3ZBaXFxdWhwX2xZc2FCU3VHTmF1N3N1VWtRZGRsOC9lZGl0I2dpZD0xNDI4MTQ0NDQwKSAodGFzayBmb3JjZXMpOiB0YWJsZSB3aXRoIGFsbCBtb25pdG9yZWQgdGFzayBmb3JjZXMKLSBbTWVtYnJpXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xNUxtQ2lZS2cyY1d6b3ZBaXFxdWhwX2xZc2FCU3VHTmF1N3N1VWtRZGRsOC9lZGl0I2dpZD04ODY1MTk2MTYpIChtZW1iZXJzKTogdGFibGUgd2l0aCBhbGwga25vd24gbWVtYmVycyB3aGljaCBhcmUgcGFydCBvZiBhdCBsZWFzdCBvbmUgdGFzayBmb3JjZQotIFtWZXJiYWxpXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xNUxtQ2lZS2cyY1d6b3ZBaXFxdWhwX2xZc2FCU3VHTmF1N3N1VWtRZGRsOC9lZGl0I2dpZD05Mzk0Nzg3ODQpIChtaW51dGVzKTogdGFibGUgd2l0aCBhbGwgb2ZmaWNpYWwgbWludXRlcyBwcm9kdWNlZCBhbmQgcHlibGlzaGVkIGJ5IHRhc2sgZm9yY2VzCi0gW1Jpc29yc2VdKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzE1TG1DaVlLZzJjV3pvdkFpcXF1aHBfbFlzYUJTdUdOYXU3c3VVa1FkZGw4L2VkaXQjZ2lkPTM2OTc2ODY4NykgKHJlc291cmNlcyk6IHRhYmxlIHdpdGggYWxsIHNvcnQgb2YgZXh0ZXJuYWwgcmVzb3VyY2VzIHJlbGF0ZWQgdG8gdGFzayBmb3JjZXMnIGFjdGl2aXR5CgpZb3UgY2FuIGZyZWVseSBhY2Nlc3MgdGhlIHNoYXJlZCBkYXRhYmFzZSwgZG93bmxvYWQgaXQgaW4gYWxsIGZvcm1hdHMgc3VwcG9ydGVkIGJ5IEdvb2dsZSBTaGVldCBhbmQgcmV1c2UgaXQgaW4gYWdyZWVtZW50IHdpdGggYSBbQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAoQ0MtQlkpXShodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvNC4wL2RlZWQuaXQpIGxpY2Vuc2UuCgojIyBXZWIgYXBwbGljYXRpb24KClJ1bm5pbmcgaW5zdGFuY2U6IGh0dHBzOi8vd3d3LnRhc2tmb3JzZS5pdC8uCgojIyMgU291cmNlIGNvZGUKClB1YmxpYyByZXBvc2l0b3J5OiBodHRwczovL2dpdGh1Yi5jb20vb25kYXRhL3Rhc2tmb3JzZS5pdC4KClNvdXJjZSBjb2RlIGlzIHJlbGVhc2VkIHVuZGVyIGEgW01JVF0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpIGxpY2Vuc2Ugb24gR2l0aHViLiBDb250cmlidXRpb25zIGFyZSB3ZWxjb21lLiBGZWVsIGZyZWUgdG8gb3BlbiBpc3N1ZXMgYW5kIHN1Ym1pdCBhIHB1bGwgcmVxdWVzdCBhdCBhbnkgdGltZSEKCiMjIyBTb2Z0d2FyZSBhcmNoaXRlY3R1cmUKClRoaXMgYXBwbGljYXRpb24gaXMgY29tcG9zZWQgYnkgdGhyZWUgc2VydmljZXM6Ci0gYSByZXZlcnNlIHByb3h5IHdpdGggY2FjaGluZyBhcyBhIG1pZGRsZXdhcmUgYmV0d2VlbiBjbGllbnQgYW5kIG5leHRqcyBhcHBsaWNhdGlvbiBhbmQgYmV0d2VlbiBuZXh0anMgYXBwbGljYXRpb24gYW5kIHJlbW90ZSBnb29nbGUgc2hlZXQKLSBhIG5leHRqcyBhcHBsaWNhdGlvbiB3aXRoIFNTUiBlbmFibGVkCi0gYW4gaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24KClRoZSByZW1vdGUgZGF0YWJhc2UgaXMgYSBzaW1wbGUgR29vZ2xlIFNoZWV0IHdpdGggcHVibGljIHZpc2liaWxpdHkgYWNjZXNzZWQgYnkgbmV4dGpzIGFwcGxpY2F0aW9uIG9ubHkgb24gc2VydmVyLXNpZGUuCgojIyMgUHJvZHVjdGlvbgoKWW91IGNhbiBkZXBsb3kgYW5kIHJ1biB0aGUgYXBwbGljYXRpb24gaW4gYSBwcm9kdWN0aW9uIGVudmlyb25tZW50IHVzaW5nIFtEb2NrZXJdKGh0dHBzOi8vd3d3LmRvY2tlci5jb20vKS4gQSBgZG9ja2VyLWNvbXBvc2UueW1sYCBpcyBwcm92aWRlZCB0byBzaW1wbGlmeSBkZXBsb3kgdXNpbmcgW0RvY2tlciBDb21wb3NlXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9jb21wb3NlLykgdXRpbGl0eS4KClRoZSBhcHBsaWNhdGlvbiBpcyBjb21wb3NlZCBieSAzIGNvbnRhaW5lcnMgYmFzZWQgb24gaW1hZ2VzIGhvc3RlZCBieSBbR2l0aHViIFBhY2thZ2VzXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMvcGFja2FnZXMpOiBodHRwczovL2dpdGh1Yi5jb20vb25kYXRhL3Rhc2tmb3JzZS5pdC9wYWNrYWdlcy4KLSBbYXBwOmxhdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL29uZGF0YS90YXNrZm9yc2UuaXQvcGFja2FnZXMvMjMzMTcxKTogbmV4dGpzIGFwcGxpY2F0aW9uCi0gW3Byb3h5OmxhdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL29uZGF0YS90YXNrZm9yc2UuaXQvcGFja2FnZXMvMjMzMTY5KTogbmdpbnggcmV2ZXJzZSBwcm94eSB3aXRoIGNhY2hpbmcKLSBbb3NhOmxhdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL29uZGF0YS90YXNrZm9yc2UuaXQvcGFja2FnZXMvMjMzOTE4KTogc3dhZ2dlciB1aSBmb3IgQVBJIGRvY3VtZW50YXRpb24KCllvdSBjYW4gc2ltcGx5IGNvcHkgYW5kIHBhc3RlIHRoZSBbZG9ja2VyLWNvbXBvc2UueW1sIGZpbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vbmRhdGEvdGFza2ZvcnNlLml0L2Jsb2IvbWFzdGVyL2RvY2tlci1jb21wb3NlLnltbCkgcHJvdmlkZWQgYW5kIHJ1biBgZG9ja2VyLWNvbXBvc2UgdXBgLiBUaGVuIHlvdSBjYW4gb3BlbiBgaHR0cDovL2xvY2FsaG9zdDo4MDgwYCB1c2luZyB5b3VyIGZhdm91cml0ZSBicm93c2VyLgoKWW91IGNhbiBzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHVzaW5nIGEgYC5lbnZgIGZpbGU6Ci0gUFJPWFlfVVJMIC0gVVJMIG9mIG5naW54IHNlcnZlciB3aXRoIHBhdGggZm9yIHByb3hpZWQgR29vZ2xlIFNoZWV0LCBkZWZhdWx0OiBodHRwOi8vcHJveHkvZGIKLSBBUFBfVVJMIC0gVVJMIG9mIG5leHRqcyBhcHBsaWNhdGlvbiwgZGVmYXVsdDogaHR0cDovL2FwcDozMDAwCi0gT0FTX1VSTCAtIFVSTCBvZiBzd2FnZ2VyIHVpIHNlcnZpY2UsIGRlZmF1bHQ6IGh0dHA6Ly9vYXMtdWk6ODA4MAotIFBST0RfUE9SVCAtIFBvcnQgZXhwb3NlZCBvbiBob3N0LCBkZWZhdWx0OiA4MDgwCgojIyMgRGV2ZWxvcG1lbnQKCklmIHlvdSB3YW50IHRvIGNvbnRyaWJ1dGUgdG8gdGhlIGRldmVsb3BtZW50LCB5b3UgY2FuIGZvcmsgYW5kIGNsb25lIHRoaXMgcmVwb3NpdG9yeSwgbWFrZSB5b3VyIGNoYW5nZXMgYW5kIGZpbmFsbHkgc2VuZCBhIHB1bGwgcmVxdWVzdC4KCk5leHRKUyBpcyBhIG5vZGUgYXBwbGljYXRpb24sIHNvIGFmdGVyIGNsb25pbmcgeW91IG11c3QgaW5zdGFsbCBkZXBlbmRlbmNpZXMgcnVubmluZyBgbnBtIGluc3RhbGxgLgoKTWFpbiBkZXBlbmRlbmNpZXM6Ci0gW0ZvbnQgQWF3ZXNvbWUgaWNvbnMgZm9yIHJlYWN0XShodHRwczovL2ZvcnRhd2Vzb21lLmNvbS8pCi0gW01hdGVyaWFsLVVJXShodHRwczovL21hdGVyaWFsLXVpLmNvbS8pCi0gW0F4aW9zXShodHRwczovL2dpdGh1Yi5jb20vYXhpb3MvYXhpb3MpCi0gW0xvZGFzaF0oaHR0cHM6Ly9sb2Rhc2guY29tLykKLSBbTmV4dEpTXShodHRwczovL25leHRqcy5vcmcvKQotIFtSZWFjdF0oaHR0cHM6Ly9yZWFjdGpzLm9yZy8pCgpZb3UgY2FuIHN0YXJ0IGRldmVsb3BtZW50IHNlcnZlciB3aXRoIGhvdCByZWxvYWRpbmcgcnVubmluZyBgbnBtIHJ1biBkZXZgLiBZb3UgY2FuIGFsc28gdGVzdCB0aGUgcHJvZHVjdGlvbiBpbnN0YW5jZSBydW5uaW5nIGBucG0gcnVuIHN0YXJ0YC4gVGhlbiB5b3UgY2FuIG9wZW4gYGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMGAgdXNpbmcgeW91ciBmYXZvdXJpdGUgYnJvd3Nlci4gTm90ZSB0aGF0IHJldmVyc2UgcHJveHkgYW5kIGNhY2hpbmcgYXJlIHVuYXZhaWxhYmxlIG91dHNpZGUgZG9ja2VyIGNvbnRhaW5lcnMuCgojIyMgQVBJCgpBbGwgZGF0YSBhcmUgYXZhaWxhYmxlIG9uIGEgUkVTVCBBUEkgKG9ubHkgR0VUIHZlcmIgaXMgc3VwcG9ydGVkKTogaHR0cHM6Ly93d3cudGFza2ZvcnNlLml0L2FwaS92MS4gVGhlcmUgaXMgYWxzbyBhbiBpbnRlcmFjdGl2ZSBkb2N1bWVudGF0aW9uIHBvd2VyZWQgYnkgW1N3YWdnZXIgVUldKGh0dHBzOi8vc3dhZ2dlci5pby90b29scy9zd2FnZ2VyLXVpLykgYW5kIGNvbXBsaWFudCB0byBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uIHYzXShodHRwOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMyk6IGh0dHBzOi8vd3d3LnRhc2tmb3JzZS5pdC9vYXMvLgoKSWYgeW91IHdhbnQgdG8gY29udHJpYnV0ZSB0byB0aGUgQVBJIGRvY3VtZW50YXRpb24sIHlvdSBjYW4gcnVuIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Rvb2xzL3N3YWdnZXItZWRpdG9yLykgdXNpbmcgdGhlIGRvY2tlci1jb21wb3NlLnltbCBmaWxlIGluIGBvYXMvYCBmb2xkZXIuCgo+IFdhcm5pbmc6IFtDT1JTXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9pdC9kb2NzL1dlYi9IVFRQL0NPUlMpIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgZm9yIGFsbCBvcmlnaW5zLCBpZiB5b3UgbmVlZCB0byBhY2Nlc3MgQVBJIGZyb20gYSBjbGllbnQtc2lkZSBhcHBsaWNhdGlvbiBmZWVsIGZyZWUgdG8gb3BlbiBhbiBpc3N1ZS4KCiMjIExpY2Vuc2UKClRoZSBzb3VyY2UgY29kZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgW01JVCBMaWNlbnNlXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuCgpUaGUgZGF0YWJhc2UgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFtDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uIExpY2Vuc2VdKGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS80LjAvZGVlZC5pdCkuCg== readmeEtag: '"6eb1c6af6a1ec993f84a535e8a9c172bd7d380a0"' readmeLastModified: Fri, 07 Aug 2020 13:21:20 GMT repositoryId: 257328202 description: Nel dubbio... task forse! created: '2020-04-20T15:43:25Z' updated: '2021-11-01T15:42:59Z' language: JavaScript archived: false stars: 4 watchers: 8 forks: 0 owner: ondata logo: https://avatars.githubusercontent.com/u/10263296?v=4 license: MIT repoEtag: '"d17ba0004272ed19dec70a86eeb87c9e5e568b43fd562c9d8f1ef7e41aafdc10"' repoLastModified: Mon, 01 Nov 2021 15:42:59 GMT foundInMaster: true category: Server Implementations id: d262bd466cd5b168d2d9100464ef3822 - source: openapi3 tags repository: https://github.com/opensourcewebsite-org/apidocs-opensourcewebsite-org v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5Tb3VyY2VXZWJzaXRlIEFQSSBEb2N1bWVudGF0aW9uPC9oMT4KCkxpdmU6IFthcGlkb2NzLm9wZW5zb3VyY2V3ZWJzaXRlLm9yZ10oaHR0cHM6Ly9hcGlkb2NzLm9wZW5zb3VyY2V3ZWJzaXRlLm9yZykKClNwZWNpZmljYXRpb246IFtvcGVuYXBpLnlhbWxdKGh0dHBzOi8vYXBpZG9jcy5vcGVuc291cmNld2Vic2l0ZS5vcmcvb3BlbmFwaS55YW1sKQoKVGhlIHJlcG9zaXRvcnkgaXMgYSBwYXJ0IG9mIHRoZSBbT3BlblNvdXJjZVdlYnNpdGUgT3JnYW5pemF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vb3BlbnNvdXJjZXdlYnNpdGUtb3JnKS4gVGhpcyBwcm9qZWN0IGFuZCBldmVyeW9uZSBwYXJ0aWNpcGF0aW5nIGluIGl0IGlzIGdvdmVybmVkIGJ5IHRoZSBbQ29kZSBvZiBDb25kdWN0XShDT0RFX09GX0NPTkRVQ1QubWQpLgoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2UgcmVhZCB0aHJvdWdoIG91ciBbQ29udHJpYnV0aW5nIEd1aWRlbGluZXNdKENPTlRSSUJVVElORy5tZCkuCgojIyBPcGVuQVBJIFNwZWNpZmljYXRpb24KCmh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZwoKaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24KCmh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYWJvdXQvCgojIyMgUmVzb2x2aW5nIGxvY2FsIGVycm9ycwoKaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy93aWtpL0hvdy10by1ydW4tdGhpbmdzLWxvY2FsbHkKCiMjIEZlZWRiYWNrCgpUbyByZXF1ZXN0IGEgbmV3IGZlYXR1cmUsIHN1Ym1pdCBhIGJ1ZyByZXBvcnQsIGdpdmUgdXMgZmVlZGJhY2ssIHN0YXJ0IGEgZGVzaWduIGRpc2N1c3Npb24gb3IgaGF2ZSBhbiBpZGVhIHRvIG1ha2UgdGhpcyBjb2RlIGJldHRlciBmZWVsIGZyZWUgdG8gW29wZW4gYW4gaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc291cmNld2Vic2l0ZS1vcmcvYXBpZG9jcy1vcGVuc291cmNld2Vic2l0ZS1vcmcvaXNzdWVzKSwgb3IgW2NyZWF0ZSBhIHB1bGwgcmVxdWVzdF0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5zb3VyY2V3ZWJzaXRlLW9yZy9hcGlkb2NzLW9wZW5zb3VyY2V3ZWJzaXRlLW9yZy9wdWxscykuCgpQbGVhc2Ugc2VuZCBhbGwgc2VjdXJpdHkgaXNzdWVzIHRvIFtzZWN1cml0eUBvcGVuc291cmNld2Vic2l0ZS5vcmddKG1haWx0bzpzZWN1cml0eUBvcGVuc291cmNld2Vic2l0ZS5vcmcpLgoKIyMgTGljZW5zZQoKVGhpcyBwcm9qZWN0IGlzIG9wZW4gc291cmNlIGFuZCBhdmFpbGFibGUgZnJlZWx5IHVuZGVyIHRoZSBbTUlUIGxpY2Vuc2VdKExJQ0VOU0UubWQpLgo= readmeEtag: '"ad7d1612469f9e76006bb9e187fa5b1ec68675ea"' readmeLastModified: Tue, 18 Jun 2024 05:46:49 GMT repositoryId: 210095533 description: OpenSourceWebsite API Documentation created: '2019-09-22T05:29:15Z' updated: '2024-06-18T05:46:54Z' language: HTML archived: false stars: 4 watchers: 3 forks: 1 owner: opensourcewebsite-org logo: https://avatars.githubusercontent.com/u/42433667?v=4 license: MIT repoEtag: '"5805856e766b0be1ec452bd13d6bdda8b20dc3f60f27b0d51331bdb9e75e34cb"' repoLastModified: Tue, 18 Jun 2024 05:46:54 GMT foundInMaster: true category: Server id: 724ad1bbafd532e3bc9d7f8b208672cd - source: openapi3 tags repository: https://github.com/forter/oktabeat v3: true repositoryMetadata: base64Readme: >- IyBPa3RhYmVhdAoKV2VsY29tZSB0byBPa3RhYmVhdC4KCkVuc3VyZSB0aGF0IHRoaXMgZm9sZGVyIGlzIGF0IHRoZSBmb2xsb3dpbmcgbG9jYXRpb246CmAke0dPUEFUSH0vc3JjL2dpdGh1Yi5jb20vZm9ydGVyL29rdGFiZWF0YAoKIyMgR2V0dGluZyBTdGFydGVkIHdpdGggT2t0YWJlYXQKCiMjIyBSZXF1aXJlbWVudHMKCiogW0dvbGFuZ10oaHR0cHM6Ly9nb2xhbmcub3JnL2RsLykgMS43CgojIyMgSW5pdCBQcm9qZWN0ClRvIGdldCBydW5uaW5nIHdpdGggT2t0YWJlYXQgYW5kIGFsc28gaW5zdGFsbCB0aGUKZGVwZW5kZW5jaWVzLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgCm1ha2Ugc2V0dXAKYGBgCgpJdCB3aWxsIGNyZWF0ZSBhIGNsZWFuIGdpdCBoaXN0b3J5IGZvciBlYWNoIG1ham9yIHN0ZXAuIE5vdGUgdGhhdCB5b3UgY2FuIGFsd2F5cyByZXdyaXRlIHRoZSBoaXN0b3J5IGlmIHlvdSB3aXNoIGJlZm9yZSBwdXNoaW5nIHlvdXIgY2hhbmdlcy4KClRvIHB1c2ggT2t0YWJlYXQgaW4gdGhlIGdpdCByZXBvc2l0b3J5LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kczoKCmBgYApnaXQgcmVtb3RlIHNldC11cmwgb3JpZ2luIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3J0ZXIvb2t0YWJlYXQKZ2l0IHB1c2ggb3JpZ2luIG1hc3RlcgpgYGAKCkZvciBmdXJ0aGVyIGRldmVsb3BtZW50LCBjaGVjayBvdXQgdGhlIFtiZWF0IGRldmVsb3BlciBndWlkZV0oaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9iZWF0cy9saWJiZWF0L2N1cnJlbnQvbmV3LWJlYXQuaHRtbCkuCgojIyMgQnVpbGQKClRvIGJ1aWxkIHRoZSBiaW5hcnkgZm9yIE9rdGFiZWF0IHJ1biB0aGUgY29tbWFuZCBiZWxvdy4gVGhpcyB3aWxsIGdlbmVyYXRlIGEgYmluYXJ5CmluIHRoZSBzYW1lIGRpcmVjdG9yeSB3aXRoIHRoZSBuYW1lIG9rdGFiZWF0LgoKYGBgCm1ha2UKYGBgCgoKIyMjIFJ1bgoKVG8gcnVuIE9rdGFiZWF0IHdpdGggZGVidWdnaW5nIG91dHB1dCBlbmFibGVkLCBydW46CgpgYGAKLi9va3RhYmVhdCAtYyBva3RhYmVhdC55bWwgLWUgLWQgIioiCmBgYAoKCiMjIyBUZXN0CgpUbyB0ZXN0IE9rdGFiZWF0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgCm1ha2UgdGVzdHN1aXRlCmBgYAoKYWx0ZXJuYXRpdmVseToKYGBgCm1ha2UgdW5pdC10ZXN0cwptYWtlIHN5c3RlbS10ZXN0cwptYWtlIGludGVncmF0aW9uLXRlc3RzCm1ha2UgY292ZXJhZ2UtcmVwb3J0CmBgYAoKVGhlIHRlc3QgY292ZXJhZ2UgaXMgcmVwb3J0ZWQgaW4gdGhlIGZvbGRlciBgLi9idWlsZC9jb3ZlcmFnZS9gCgojIyMgVXBkYXRlCgpFYWNoIGJlYXQgaGFzIGEgdGVtcGxhdGUgZm9yIHRoZSBtYXBwaW5nIGluIGVsYXN0aWNzZWFyY2ggYW5kIGEgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZpZWxkcwp3aGljaCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBiYXNlZCBvbiBgZmllbGRzLnltbGAgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQuCgpgYGAKbWFrZSB1cGRhdGUKYGBgCgoKIyMjIENsZWFudXAKClRvIGNsZWFuICBPa3RhYmVhdCBzb3VyY2UgY29kZSwgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYAptYWtlIGZtdApgYGAKClRvIGNsZWFuIHVwIHRoZSBidWlsZCBkaXJlY3RvcnkgYW5kIGdlbmVyYXRlZCBhcnRpZmFjdHMsIHJ1bjoKCmBgYAptYWtlIGNsZWFuCmBgYAoKCiMjIyBDbG9uZQoKVG8gY2xvbmUgT2t0YWJlYXQgZnJvbSB0aGUgZ2l0IHJlcG9zaXRvcnksIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgoKYGBgCm1rZGlyIC1wICR7R09QQVRIfS9zcmMvZ2l0aHViLmNvbS9mb3J0ZXIvb2t0YWJlYXQKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3J0ZXIvb2t0YWJlYXQgJHtHT1BBVEh9L3NyYy9naXRodWIuY29tL2ZvcnRlci9va3RhYmVhdApgYGAKCgpGb3IgZnVydGhlciBkZXZlbG9wbWVudCwgY2hlY2sgb3V0IHRoZSBbYmVhdCBkZXZlbG9wZXIgZ3VpZGVdKGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vZ3VpZGUvZW4vYmVhdHMvbGliYmVhdC9jdXJyZW50L25ldy1iZWF0Lmh0bWwpLgoKCiMjIFBhY2thZ2luZwoKVGhlIGJlYXQgZnJhbWV3b3JrcyBwcm92aWRlcyB0b29scyB0byBjcm9zc2NvbXBpbGUgYW5kIHBhY2thZ2UgeW91ciBiZWF0IGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zLiBUaGlzIHJlcXVpcmVzIFtkb2NrZXJdKGh0dHBzOi8vd3d3LmRvY2tlci5jb20vKSBhbmQgdmVuZG9yaW5nIGFzIGRlc2NyaWJlZCBhYm92ZS4gVG8gYnVpbGQgcGFja2FnZXMgb2YgeW91ciBiZWF0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgCm1ha2UgcmVsZWFzZQpgYGAKClRoaXMgd2lsbCBmZXRjaCBhbmQgY3JlYXRlIGFsbCBpbWFnZXMgcmVxdWlyZWQgZm9yIHRoZSBidWlsZCBwcm9jZXNzLiBUaGUgd2hvbGUgcHJvY2VzcyB0byBmaW5pc2ggY2FuIHRha2Ugc2V2ZXJhbCBtaW51dGVzLgo= readmeEtag: '"5b82c112e8ab01564167814309b7dda4fd8994f3"' readmeLastModified: Mon, 13 May 2019 16:32:11 GMT repositoryId: 186449834 description: >- An elasticbeat that polls the Okta System Log https://developer.okta.com/docs/api/resources/system_log/#getting-started created: '2019-05-13T15:43:27Z' updated: '2024-05-24T01:52:15Z' language: Go archived: false stars: 4 watchers: 5 forks: 5 owner: forter logo: https://avatars.githubusercontent.com/u/6420463?v=4 license: NOASSERTION repoEtag: '"b50fd70166dbaa53104d35efea70aa8240773a1634a44261ab7af1620cdfb8dd"' repoLastModified: Fri, 24 May 2024 01:52:15 GMT foundInMaster: true category: - Testing - Server Implementations id: 3e376160f047267d96a9ead763511c1b - source: openapi3 tags repository: https://github.com/noahehall/nodeproto v3: true repositoryMetadata: base64Readme: >- IyBAbm9kZXByb3RvCgotIHByb2R1Y3QgZGV2ZWxvcG1lbnQgc3RhcnRlcmtpdAogIC0gZm9jdXNlcyBvbiBmdWxsIHN0YWNrIG5vZGUrcmVhY3QgYXBwcyBydW5uaW5nIG9uIEFXUwogIC0gdmFncmFudCArIGRvY2tlciBpbiBkZXYgKHRvZG8pCiAgLSBkb2NrZXIgaW4gcHJvZCAodG9kbykKICAtIHRoaXMgcHJvamVjdCB3aWxsIGJlY29tZSB0aGUgYmFzZSBmb3IgdGhlIGNvcmUgbmlydmFpIHdlYiBhcHAKCi0gaGFyZCByZXF1aXJlbWVudHMgZm9yIGRldmVsb3AgYnJhbmNoCiAgLSBkZXBlbmRlbmN5IHJlcXVpcmVtZW50cwogICAgLSBhbGwgaW1hZ2VzIHB1c2hlZCB0byBbQG5vZGVwcm90byByZWdpc3RyeSBvbiBhd3NdKGh0dHBzOi8vZ2FsbGVyeS5lY3IuYXdzL3owYzNuNGg1L25vZGVwcm90by9hcHBzKQogICAgLSBBcmFuZ29kYiAodG9kbykKICAgIC0gQ2xpY2tIb3VzZSAodG9kbykKICAgIC0gQ29uc3VsICh0b2RvKQogICAgLSBmbG93dHlwZSA+PSAwLjE3MS4wCiAgICAtIGhhcHJveHkgKG5lZWRzIHZpcnR1YWxpemF0aW9uKQogICAgLSBrb2EgPT4gMgogICAgLSBub2RlICsgY29yZXBhY2sgPj0gMTcuNSAoMTcuNiBpcyBvdXQhKQogICAgLSBPcGVuU1NMID49IDEuMS4xIGZvciBUTFN2MS4zIHN1cHBvcnQKICAgIC0gcG5wbSA+PSA2LjMwLjEKICAgIC0gcmVhY3QgKyByZWFjdC1kb20gQHJjIChvciBAbmV4dCkKICAgIC0gU2lnbm96IEFQTSAodG9kbykKICAtIHByb2Nlc3MgcmVxdWlyZW1lbnRzCiAgICAtIHBhY2thZ2UuanNvbi5jb25maWcgaXMgY29udHJvbGxlZCAgYnkgcm9vdC9wYWNrYWdlLmpzb24gYW5kIHN5bmNlZCB0byBjaGlsZCBwYWNrYWdlcyB2aWEgdG9vbHMvanN5bmMKICAgIC0gYWxsIHBhY2thZ2VzIGV4cG9ydCByZXVzYWJsZSB0eXBlIGRlZmluaXRpb25zIGFzIGBAbm9kZXByb3RvL3BhY2thZ2VuYW1lL3NyYy9saWJkZWZzYAogIC0gY3VsdHVyYWwgYm91bmRhcmllcwogICAgLSBiZXN0IGluIGNsYXNzID4gbW9zdCBwb3B1bGFyCiAgICAtIGJsZWVkaW5nIGVkZ2UgYWx3YXlzCiAgICAtIG1vbm9yZXBvIG1pY3Jvc2VydmljZXMgPiBtdWx0aXJlcG8gbWljcm9zZXJ2aWNlcwogICAgLSByZWFkIHRoZSBjb2RlID4gcmVhZCB0aGUgY29tbWVudHMKICAgIC0gc3BlY2lmaWNhdGlvbiA+IGtpdGNoZW4gc2lua3MKICAgIC0gdGVyc2UgY2xhcml0eSA+IHZlcmJvc2UgZXhwcmVzc2l2ZW5lc3MKICAgIC0gdGVzdHMgYXJlIGZpcnN0IGNsYXNzIGNpdGl6ZW5zCiAgICAtIHRydW5rID4gYnJhbmNoCgojIyBUTERSCgoKLSBzZXJ2aWNlcwogIC0gW0Bub2RlcHJvdG8vY2xpZW50IC0gUmVhY3RAbmV4dCBmcm9udGVuZF0ocGFja2FnZXMvYXBwcy9jbGllbnQvUkVBRE1FLm1kKQogIC0gW0Bub2RlcHJvdG8vYXV0aG56IC0ga29hL29wZW5hcGkgYmFja2VuZF0ocGFja2FnZXMvYXBwcy9hdXRobnovUkVBRE1FLm1kKQotIGxpYnJhcmllcwogIC0gW0Bub2RlcHJvdG8vY29uZmlncHJvdG8gLSBTdGF0aWMgY29uZmlndXJhdGlvbnNdKHBhY2thZ2VzL2xpYnJhcmllcy9jb25maWdwcm90by9SRUFETUUubWQpCiAgLSBbQG5vZGVwcm90by9zaGFyZWQgLSB1dGlsaXR5IGZuc10ocGFja2FnZXMvbGlicmFyaWVzL3NoYXJlZC9SRUFETUUubWQpCiAgLSBbQG5vZGVwcm90by90ZXN0cHJvdG8gLSBIaWdoIFZlbG9jaXR5IHRlc3Qgc3VpdGVdKHBhY2thZ2VzL2xpYnJhcmllcy90ZXN0cHJvdG8vUkVBRE1FLm1kKQogIC0gW0Bub2RlcHJvdG8vZW52cHJvdG8gLSBlbnYvU1NMIG1hbmFnZW1lbnRdKHBhY2thZ2VzL2xpYnJhcmllcy9lbnZwcm90by9SRUFETUUubWQpCiAgLSBbQG5vZGVwcm90by9idWlsZHByb3RvIC0gZXNidWlsZC93ZWJwYWNrOiBidWlsZCBhbnl0aGluZyBydW4gZXZlcnl3aGVyZV0ocGFja2FnZXMvbGlicmFyaWVzL2J1aWxkcHJvdG8vUkVBRE1FLm1kKQogIC0gW0Bub2RlcHJvdG8vd3RmIC0gV2hlcmUgdGhlIGZpbGU/IHN5c3RlbSBsb2NhdGlvbnMgJiBmaWxlIG1hbmFnZW1lbnRdKHBhY2thZ2VzL2xpYnJhcmllcy93dGYvUkVBRE1FLm1kKQotIHRvb2xzCiAgLSBbQG5vZGVwcm90by9qc3luYyAtIHN5bmNocm9uaXplIHBhY2thZ2UuanNvbltjXSBmaWxlc10ocGFja2FnZXMvdG9vbHMvanN5bmMvUkVBRE1FLm1kKQoKIyMjIG5wbSBzY3JpcHRzCgotIHlvdSBjYW4gcHJlcGVuZCBiZWZvcmUgYW55IG5wbSBzY3JpcHQKICAtIGBwcm90b2Agb3IgYHByb3RvOnNjcmlwdGAgY21kIHRvIHJ1biBpbiBhbGwgcGFja2FnZXMKICAgIC0gcHJvdG8gcnVucyBjbWRzIGluIGVhY2ggcGtnIHZpYSB1bHRyYQogICAgLSBwcm90bzpzY3JpcHQgcnVucyBjbWRzIGluIGVhY2ggcGtnIHZpYSBwbnBtCiAgLSBgdWx0cmFgIHRvIHJ1biB2aWEgdWx0cmEtcnVubmVyCgojIyMgdW5pbnN0YWxsCgotIHRvIHJlbW92ZSB0aGlzIHJlcG9zaXRvcnkgY29tcGxldGVseSBmcm9tIHlvdXIgc3lzdGVtCi0gZGVsZXRlIHRoZSBgL3Zhci8ubm9kZXByb3RvYCBkaXJlY3RvcnksIGFuZCB0aGlzIHJlcG9zaXRvcnkKCiMjIyBpbnN0YWxsYXRpb24gKGNvbnRyaWJ1dGluZykKCi0gdmFncmFudCAocmVjb21tZW5kZWQpLCByZXF1aXJlcyA+PSB2Mi4yCgpgYGBzaAogIHZhZ3JhbnQgdXAKICB2YWdyYW50IHNzaAogIGNkIC9vcHQvbm9kZXByb3RvCmBgYAoKLSBiYXJlIG1ldGFsCmBgYHNoCiAgIyBkZXBlbmRlbmN5ICsgcG5wbSBtZXRhZGF0YQogIHN1ZG8gbWtkaXIgL3Zhci8ubm9kZXByb3RvCiAgc3VkbyBjaG93biAtUiAkKHdob2FtaSk6JCh3aG9hbWkpIC92YXIvLm5vZGVwcm90bwogIHBucG0gaW5zdGFsbC1jb21wbGV0aW9uCiAgcG5wbSBpbnN0YWxsCiAgcG5wbSBwcm90bzpzY3JpcHQgYnVpbGQKICBwbnBtIHByb3RvOnNjcmlwdCByZXBvOnRlc3QKYGBgCgotIG90aGVyIGhlbGxwZnVsIGNtZHMKCmBgYHNoCiAgIyBkZXBlbmRlbmNpZXMKICBwbnBtIHByb3RvIHJlcG86Zmxvd3R5cGVkOmluc3RhbGwgIyBpbnN0YWxsIGZsb3d0eXBlIGRlZnMKICBwbnBtIHByb3RvIHJlcG86anN5bmMgIyBzeW5jaHJvbml6ZSByb290L3BhY2thZ2UuanNvbiBpbnRvIGVhY2ggcGFja2FnZS9wYWNrYWdlLmpzb24KCiAgIyB2YWxpZGF0aW9uCiAgcG5wbSBwcm90byByZXBvOmxpbnQKCiAgIyBpbnRyb3NwZWN0aW9uCiAgcG5wbSByZXBvOmRlcHM6Z3JhcGgKICBwbnBtIHJlcG86c2NyaXB0czp2CmBgYAoKCiMjIyB1cGRhdGluZwoKYGBgc2gKICBwbnBtIHByb3RvIHJlcG86dXBkYXRlICMgdXBkYXRlcyBhbGwgZGVwcyB0byBsYXRlc3QKYGBgCgojIyMgcnVubmluZyB0ZXN0cyAmIGxpbnRzCgpgYGBzaAogIHBucG0gcmVwbzpsaW50ICMgcnVucyBlc2xpbnQgKGZpeCBtb2RlKSwgcHJldHRpZXIsIGZsb3cgKyB0eXBlIGNvdmVyYWdlCiAgcG5wbSByZXBvOmVzbGludCAjIHJ1bnMgZXNsaW50IGZsb3cgJiBwcmV0dGllciwgZmFpbHMgb24gZmlyc3QgcGFja2FnZSB3aXRoIGxpbnQgZXJycwogIHBucG0gcmVwbzplc2xpbnQ6Zml4ICMgc2FtZSBhcyBhYm92ZSwgYnV0IGRvZXNudCBmYWlsCiAgcG5wbSByZXBvOmZsb3c6Y292ZXJhZ2UgIyBydW5zIGZsb3cgd2l0aCB0eXBlIGRlZiBjb3ZlcmFnZQogIHBucG0gZmxvdyAjIGRldGFpbGVkIGZsb3d0eXBlIGFuYWx5c2lzCiAgcG5wbSBmbG93IHN0b3B8c3RhcnQgIyByZXN0YXJ0IGZsb3cgc2VydmVyLCBzb21ldGltZXMgaXQgZmFpbHMgdG8gcGljayB1cCBjaGFuZ2VzIHRvIGRlZXAgZXh0ZXJuYWwgbGliZGVmcwogIHBucG0gcmVwbzp0ZXN0ICMgcnVuIHRlc3RzCiAgcG5wbSByZXBvOnRlc3RpbmcgIyB3YXRjaCAmIHJlcnVuIHRlc3RzIGluIGEgc2luZ2xlIHBhY2thZ2UKICBwbnBtIHJlcG86dGVzdDpmaWxlIHNvbWVmaWxlICMgcnVuIGEgc3BlY2lmaWMgdGVzdCBmaWxlCgpgYGAK readmeEtag: '"442171f34684c5a02b29465f4b5dd66ec5748f54"' readmeLastModified: Fri, 15 Apr 2022 00:02:03 GMT repositoryId: 369644109 description: build prototypes, fast! created: '2021-05-21T20:12:07Z' updated: '2023-10-17T15:24:24Z' language: HTML archived: true stars: 4 watchers: 3 forks: 0 owner: noahehall logo: https://avatars.githubusercontent.com/u/10324554?v=4 license: NOASSERTION repoEtag: '"b72caf231f8487a3eaf768fe42b47e1684fb86c54804c112be4933a3c30361f5"' repoLastModified: Tue, 17 Oct 2023 15:24:24 GMT foundInMaster: true category: Testing id: 37b213c383b786f80ef2ad7961c30558 - source: openapi3 tags repository: https://github.com/snehalkaranje/springboot-blog-rest-api v3: true repositoryMetadata: base64Readme: >- IyBzcHJpbmdib290LWJsb2ctcmVzdC1hcGkKPGEgaHJlZj0iaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLyI+PGltZyBhbHQ9Im1hdmVuIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbWF2ZW4tJTIwLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vc3ByaW5nLmlvL3Byb2plY3RzL3NwcmluZy1ib290LyI+PGltZyBhbHQ9IlNwcmluZyBCb290IiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU3ByaW5nQm9vdC0yLjYuMy1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2RvY3Mub3JhY2xlLmNvbS9lbi9qYXZhL2phdmFzZS8xMS8iPjxpbWcgYWx0PSJKYXZhIDExIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvSmF2YS0xMS1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2Rldi5teXNxbC5jb20vIj48aW1nIGFsdD0iTXlTUUwiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9NeVNRTC04LjAuMjgtYmx1ZSIvPjwvYT4KCgojIyBEZXBlbmRlbmNpZXMKRGVwZW5kZW5jaWVzIHVzZWQgYXJlIGFzIGZvbGxvd3M6Cgo8YSBocmVmPSJodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLXdlYiI+PGltZyBhbHQ9InNwcmluZy1ib290LXN0YXJ0ZXItd2ViIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGVwZW5kZW5jeS1TcHJpbmdCb290U3RhcnRlcldlYi1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtanBhIj48aW1nIGFsdD0ic3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLWpwYSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RlcGVuZGVuY3ktU3ByaW5nQm9vdFN0YXJ0ZXJEYXRhSlBBLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvbXlzcWwvbXlzcWwtY29ubmVjdG9yLWphdmEiPjxpbWcgYWx0PSJteXNxbC1jb25uZWN0b3ItamF2YSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RlcGVuZGVuY3ktTXlTUUxDb25uZWN0b3JKYXZhLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnByb2plY3Rsb21ib2svbG9tYm9rIj48aW1nIGFsdD0ibG9tYm9rIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGVwZW5kZW5jeS1Mb21ib2stYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3QtZGV2dG9vbHMiPjxpbWcgYWx0PSJzcHJpbmctYm9vdC1kZXZ0b29scyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RlcGVuZGVuY3ktU3ByaW5nQm9vdERldlRvb2xzLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNwcmluZ2ZyYW1ld29yay5ib290L3NwcmluZy1ib290LXN0YXJ0ZXItdGVzdCI+PGltZyBhbHQ9InNwcmluZy1ib290LXN0YXJ0ZXItdGVzdCIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RlcGVuZGVuY3ktU3ByaW5nQm9vdFN0YXJ0ZXJUZXN0LWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLm1vZGVsbWFwcGVyL21vZGVsbWFwcGVyLzMuMC4wIj48aW1nIGFsdD0ibW9kZWwtbWFwcGVyIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGVwZW5kZW5jeS1Nb2RlbE1hcHBlci1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLXZhbGlkYXRpb24iPjxpbWcgYWx0PSJzcHJpbmctYm9vdC1zdGFydGVyLXZhbGlkYXRpb24iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kZXBlbmRlbmN5LVNwcmluZ0Jvb3RTdGFydGVyVmFsaWRhdGlvbi1ibHVlIi8+PC9hPiAKCgojIyBQcm9qZWN0IEFyY2hpdGVjdHVyZQpgYGAKMyBsYXllciBBcmNoaXRlY3R1cmUgOiBDbGllbnQgPC0tPiBDb250cm9sbGVyIDwtLT4gU2VydmljZSA8LS0+IERBTyA8LS0+IERCCgotIENvbnRyb2xsZXIKICAtIEtlZXBzIGFsbCBzcHJpbmcgUkVTVCBjb250cm9sbGVycwogIC0gRGVmaW5lIGVuZCBwb2ludHMKLSBTZXJ2aWNlCiAgLSBhbGwgc2VydmljZSBjbGFzc2VzIHRoYXQgaG9sZCBidXNpbmVzcyBsb2dpYwotIERBTwogIC0gUmVwb3NpdG9yeSBsYXllcgogIC0ga2VlcCBhbGwgc3ByaW5nIEpQQSBkYXRhIHJlcG9zaXRvcnkKICAtIENvbW11bmljYXRlcyB3aXRoIGRhdGFiYXNlCmBgYAoKIyMgUHJvamVjdCBTdHJ1Y3R1cmUgRXhwbGFpbmVkCmBgYAotIGNvbnRyb2xsZXIKICAtIENvbnRhaW5zIGFsbCBTcHJpbmcgTVZDIGNvbnRyb2xsZXJzCi0gZW50aXR5CiAgLSBDb250YWlucyBhbGwgSlBBIGVudGl0aWVzCi0gc2VydmljZQogIC0gQ29udGFpbnMgc2VydmljZSBpbnRlcmZhY2VzCi0gc2VydmljZS5pbXBsCiAgLSBDb250YWlucyBzZXJ2aWUgY2xhc3NlcwotIHV0aWxzCiAgLSBDb250YWlucyB1dGlsaXRpZXMgYW5kIGNsYXNzZXMKLSByZXBvc2l0b3J5CiAgLSBDb250YWlucyBTcHJpbmcgRGF0YSBKUEEgcmVwb3NpdG9yaWVzLiAoSlBBIHJlcG9zaXRvcmllcyBhcmUgYnkgZGVmYXVsdCBUcmFuc2FjdGlvbmFsLiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGNsYXNzIG9mIHRoZSBKcGFSZXBvc2l0b3J5IGludGVyZmFjZSBpcyBTaW1wbGVKcGFSZXBvc2l0b3J5IGNsYXNzKQotIGV4Y2VwdGlvbgogIC0gQ29udGFpbnMgYWxsIGN1c3RvbSBleGNlcHRpb25zCi0gcGF5bG9hZAogIC0gQ29udGFpbnMgRFRPcyAoRGF0YSBUcmFuc2ZlciBPYmplY3RzKSB0aGF0IGFjdCBhcyBhIHBheWxvYWQgYmV0d2VlbiBjbGllbnQgYW5kIHNlcnZlcgpgYGAKCiMjIEFQSSBkb2N1bWVudCBnZW5lcmF0aW9uCk9wZW5BUEkgMyBzcGVjaWZpY2F0aW9uIGRvY3VtZW50IGZvciBBUEkgaXMgYXV0byBnZW5lcmF0ZWQgdXNpbmcgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZ2RvYy9zcHJpbmdkb2Mtb3BlbmFwaSI+c3ByaW5nZG9jLW9wZW5hcGktdWk8L2E+CgpBcyBwZXIgY3VzdG9tIHBhdGggcHJvdmlkZWQgaW4gYXBwbGljYXRpb24ucHJvcGVydGllcywgYXV0byBnZW5lcmF0ZWQgQVBJIGRvYyBpcyBnZW5lcmF0ZWQgYXQgY3VzdG9tIHBhdGg6IApgYGAKaHR0cDovL2xvY2FsaG9zdDo8cG9ydD4vYXBpLWRvY3MvIApgYGAKCkRvYyBjYW4gYWxzbyBiZSBhY2Nlc3NlZCBpbiB0aGUgU3dhZ2dlciBVSSBhdCBwYXRoOgpgYGAKaHR0cDovL2xvY2FsaG9zdDo8cG9ydD4vc3dhZ2dlci11aS5odG1sCmBgYAoKCiMjIEFubm90YXRpb25zCiMjIyBTcHJpbmcgQm9vdCBBbm5vdGF0aW9ucwo8YSBocmVmPSJodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1ib290L2RvY3MvMi4wLngvcmVmZXJlbmNlL2h0bWwvdXNpbmctYm9vdC11c2luZy1zcHJpbmdib290YXBwbGljYXRpb24tYW5ub3RhdGlvbi5odG1sIj48aW1nIGFsdD0iU3ByaW5nQm9vdEFwcGxpY2F0aW9uIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQFNwcmluZ0Jvb3RBcHBsaWNhdGlvbi1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1mcmFtZXdvcmsvZG9jcy9jdXJyZW50L2phdmFkb2MtYXBpL29yZy9zcHJpbmdmcmFtZXdvcmsvd2ViL2JpbmQvYW5ub3RhdGlvbi9SZXNwb25zZVN0YXR1cy5odG1sIj48aW1nIGFsdD0iUmVzcG9uc2VTdGF0dXMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9AUmVzcG9uc2VTdGF0dXMtYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctZnJhbWV3b3JrL2RvY3MvY3VycmVudC9qYXZhZG9jLWFwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL3N0ZXJlb3R5cGUvU2VydmljZS5odG1sIj48aW1nIGFsdD0iU2VydmljZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BTZXJ2aWNlLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWZyYW1ld29yay9kb2NzL2N1cnJlbnQvamF2YWRvYy1hcGkvb3JnL3NwcmluZ2ZyYW1ld29yay93ZWIvYmluZC9hbm5vdGF0aW9uL1Jlc3RDb250cm9sbGVyLmh0bWwiPjxpbWcgYWx0PSJSZXN0Q29udHJvbGxlciIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BSZXN0Q29udHJvbGxlci1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1mcmFtZXdvcmsvZG9jcy9jdXJyZW50L2phdmFkb2MtYXBpL29yZy9zcHJpbmdmcmFtZXdvcmsvc3RlcmVvdHlwZS9Db250cm9sbGVyLmh0bWwiPjxpbWcgYWx0PSJDb250cm9sbGVyIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQENvbnRyb2xsZXItYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctZnJhbWV3b3JrL2RvY3MvY3VycmVudC9qYXZhZG9jLWFwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL3dlYi9iaW5kL2Fubm90YXRpb24vUmVzcG9uc2VCb2R5Lmh0bWwiPjxpbWcgYWx0PSJSZXNwb25zZUJvZHkiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9AUmVzcG9uc2VCb2R5LWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWZyYW1ld29yay9kb2NzL2N1cnJlbnQvamF2YWRvYy1hcGkvb3JnL3NwcmluZ2ZyYW1ld29yay93ZWIvYmluZC9hbm5vdGF0aW9uL1JlcXVlc3RNYXBwaW5nLmh0bWwiPjxpbWcgYWx0PSJSZXF1ZXN0TWFwcGluZyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BSZXF1ZXN0TWFwcGluZy1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1mcmFtZXdvcmsvZG9jcy9jdXJyZW50L2phdmFkb2MtYXBpL29yZy9zcHJpbmdmcmFtZXdvcmsvd2ViL2JpbmQvYW5ub3RhdGlvbi9Qb3N0TWFwcGluZy5odG1sIj48aW1nIGFsdD0iUG9zdE1hcHBpbmciIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9AUG9zdE1hcHBpbmctYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctZnJhbWV3b3JrL2RvY3MvY3VycmVudC9qYXZhZG9jLWFwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL3dlYi9iaW5kL2Fubm90YXRpb24vR2V0TWFwcGluZy5odG1sIj48aW1nIGFsdD0iR2V0TWFwcGluZyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BHZXRNYXBwaW5nLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWZyYW1ld29yay9kb2NzL2N1cnJlbnQvamF2YWRvYy1hcGkvb3JnL3NwcmluZ2ZyYW1ld29yay93ZWIvYmluZC9hbm5vdGF0aW9uL1BhdGhWYXJpYWJsZS5odG1sIj48aW1nIGFsdD0iUGF0aFZhcmlhYmxlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQFBhdGhWYXJpYWJsZS1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1mcmFtZXdvcmsvZG9jcy9jdXJyZW50L2phdmFkb2MtYXBpL29yZy9zcHJpbmdmcmFtZXdvcmsvd2ViL2JpbmQvYW5ub3RhdGlvbi9QdXRNYXBwaW5nLmh0bWwiPjxpbWcgYWx0PSJQdXRNYXBwaW5nIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQFB1dE1hcHBpbmctYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctZnJhbWV3b3JrL2RvY3MvY3VycmVudC9qYXZhZG9jLWFwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL3dlYi9iaW5kL2Fubm90YXRpb24vRGVsZXRlTWFwcGluZy5odG1sIj48aW1nIGFsdD0iRGVsZXRlTWFwcGluZyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BEZWxldGVNYXBwaW5nLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWZyYW1ld29yay9kb2NzL2N1cnJlbnQvamF2YWRvYy1hcGkvb3JnL3NwcmluZ2ZyYW1ld29yay93ZWIvYmluZC9hbm5vdGF0aW9uL1JlcXVlc3RQYXJhbS5odG1sIj48aW1nIGFsdD0iUmVxdWVzdFBhcmFtIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQFJlcXVlc3RQYXJhbS1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1qYXZhY29uZmlnL2RvY3MvMS4wLjAuTTQvcmVmZXJlbmNlL2h0bWwvY2gwMnMiPjxpbWcgYWx0PSJCZWFuIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQEJlYW4tYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctZnJhbWV3b3JrL2RvY3MvY3VycmVudC9qYXZhZG9jLWFwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL3dlYi9iaW5kL2Fubm90YXRpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIj48aW1nIGFsdD0iRXhjZXB0aW9uSGFuZGxlciIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BFeGNlcHRpb25IYW5kbGVyLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWZyYW1ld29yay9kb2NzL2N1cnJlbnQvamF2YWRvYy1hcGkvb3JnL3NwcmluZ2ZyYW1ld29yay93ZWIvYmluZC9hbm5vdGF0aW9uL0NvbnRyb2xsZXJBZHZpY2UuaHRtbCI+PGltZyBhbHQ9IkNvbnRyb2xsZXJBZHZpY2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9AQ29udHJvbGxlckFkdmljZS1ibHVlIi8+PC9hPgoKIyMjIExvbWJvayBhbm5vdGF0aW9ucwo8YSBocmVmPSJodHRwczovL3Byb2plY3Rsb21ib2sub3JnL2FwaS9sb21ib2svRGF0YS5odG1sIj48aW1nIGFsdD0iRGF0YSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BEYXRhLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvYXBpL2xvbWJvay9BbGxBcmdzQ29uc3RydWN0b3IuaHRtbCI+PGltZyBhbHQ9IkFsbEFyZ3NDb25zdHJ1Y3RvciIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BBbGxBcmdzQ29uc3RydWN0b3ItYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9wcm9qZWN0bG9tYm9rLm9yZy9hcGkvbG9tYm9rL05vQXJnc0NvbnN0cnVjdG9yLmh0bWwiPjxpbWcgYWx0PSJOb0FyZ3NDb25zdHJ1Y3RvciIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BOb0FyZ3NDb25zdHJ1Y3Rvci1ibHVlIi8+PC9hPgoKIyMjIEpQQSBhbm5vdGF0aW9ucwo8YSBocmVmPSJodHRwczovL3d3dy50ZWNoZmVycnkuY29tL2FydGljbGVzL2hpYmVybmF0ZS1qcGEtYW5ub3RhdGlvbnMuaHRtbCNFbnRpdHkiPjxpbWcgYWx0PSJFbnRpdHkiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9ARW50aXR5LWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnRlY2hmZXJyeS5jb20vYXJ0aWNsZXMvaGliZXJuYXRlLWpwYS1hbm5vdGF0aW9ucy5odG1sI1RhYmxlIj48aW1nIGFsdD0iVGFibGUiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9AVGFibGUtYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cudGVjaGZlcnJ5LmNvbS9hcnRpY2xlcy9oaWJlcm5hdGUtanBhLWFubm90YXRpb25zLmh0bWwjSWQiPjxpbWcgYWx0PSJJZCIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BJZC1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy50ZWNoZmVycnkuY29tL2FydGljbGVzL2hpYmVybmF0ZS1qcGEtYW5ub3RhdGlvbnMuaHRtbCNHZW5lcmF0ZWRWYWx1ZSI+PGltZyBhbHQ9IkdlbmVyYXRlZFZhbHVlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQEdlbmVyYXRlZFZhbHVlLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnRlY2hmZXJyeS5jb20vYXJ0aWNsZXMvaGliZXJuYXRlLWpwYS1hbm5vdGF0aW9ucy5odG1sI0NvbHVtbiI+PGltZyBhbHQ9IkNvbHVtbiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BDb2x1bW4tYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cudGVjaGZlcnJ5LmNvbS9hcnRpY2xlcy9oaWJlcm5hdGUtanBhLWFubm90YXRpb25zLmh0bWwjTWFueVRvT25lIj48aW1nIGFsdD0iTWFueVRvT25lIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQE1hbnlUb09uZS1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy50ZWNoZmVycnkuY29tL2FydGljbGVzL2hpYmVybmF0ZS1qcGEtYW5ub3RhdGlvbnMuaHRtbCNKb2luQ29sdW1uIj48aW1nIGFsdD0iSm9pbkNvbHVtbiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BKb2luQ29sdW1uLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnRlY2hmZXJyeS5jb20vYXJ0aWNsZXMvaGliZXJuYXRlLWpwYS1hbm5vdGF0aW9ucy5odG1sI09uZVRvTWFueSI+PGltZyBhbHQ9Ik9uZVRvTWFueSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BPbmVUb01hbnktYmx1ZSIvPjwvYT4KCiMjIyBTcHJpbmcgQm9vdCBzdGFydGVyIHZhbGlkYXRpb24gKEhpYmVybmF0ZSBWYWxpZGF0b3IpCjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFlZS83L2FwaS9qYXZheC92YWxpZGF0aW9uL2NvbnN0cmFpbnRzL05vdE51bGwuaHRtbCI+PGltZyBhbHQ9Ik5vdE51bGwiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9ATm90TnVsbC1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhZWUvNy9hcGkvamF2YXgvdmFsaWRhdGlvbi9jb25zdHJhaW50cy9TaXplLmh0bWwiPjxpbWcgYWx0PSJTaXplIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQFNpemUtYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YWVlLzcvYXBpL2phdmF4L3ZhbGlkYXRpb24vY29uc3RyYWludHMvTWluLmh0bWwiPjxpbWcgYWx0PSJNaW4iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9ATWluLWJsdWUiLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFlZS83L2FwaS9qYXZheC92YWxpZGF0aW9uL2NvbnN0cmFpbnRzL01heC5odG1sIj48aW1nIGFsdD0iTWF4IiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQE1heC1ibHVlIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2phdmFlZS5naXRodWIuaW8vamF2YWVlLXNwZWMvamF2YWRvY3MvamF2YXgvdmFsaWRhdGlvbi9jb25zdHJhaW50cy9FbWFpbC5odG1sIj48aW1nIGFsdD0iRW1haWwiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9ARW1haWwtYmx1ZSIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9qYXZhZWUuZ2l0aHViLmlvL2phdmFlZS1zcGVjL2phdmFkb2NzL2phdmF4L3ZhbGlkYXRpb24vY29uc3RyYWludHMvTm90RW1wdHkuaHRtbCI+PGltZyBhbHQ9Ik5vdEVtcHR5IiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQE5vdEVtcHR5LWJsdWUiLz48L2E+IAo8YSBocmVmPSJodHRwczovL2phdmFlZS5naXRodWIuaW8vamF2YWVlLXNwZWMvamF2YWRvY3MvamF2YXgvdmFsaWRhdGlvbi9jb25zdHJhaW50cy9Ob3RCbGFuay5odG1sIj48aW1nIGFsdD0iTm90QmxhbmsiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9ATm90QmxhbmstYmx1ZSIvPjwvYT4gCjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFlZS83L2FwaS9qYXZheC92YWxpZGF0aW9uL1ZhbGlkLmh0bWwiPjxpbWcgYWx0PSJWYWxpZCIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0BWYWxpZC1ibHVlIi8+PC9hPgo= readmeEtag: '"ffec71145aca75f6f0feee527c8e309247fce13f"' readmeLastModified: Tue, 25 Jun 2024 09:30:27 GMT repositoryId: 453950856 description: 'Spring boot REST API application ' created: '2022-01-31T09:49:29Z' updated: '2024-06-25T09:30:30Z' language: Java archived: false stars: 4 watchers: 1 forks: 0 owner: SnehalKaranje logo: https://avatars.githubusercontent.com/u/58742622?v=4 repoEtag: '"c1d4f5869e2e7c6a5eaf66d11fb69d66acf1fb5e3a88918cfe297bb3d212ec6b"' repoLastModified: Tue, 25 Jun 2024 09:30:30 GMT foundInMaster: true category: Server id: 92461140252d2f808a6e413eb747f965 - source: openapi3 tags repository: https://github.com/edavis25/plex-api-spec v3: true repositoryMetadata: base64Readme: >- IyBQbGV4IEFQSSBEb2N1bWVudGF0aW9uDQpPcGVuQVBJIHNwZWNpZmljYXRpb24gZm9yIHRoZSBQbGV4IHdlYiBBUEkuDQoNCiMjIyA6bGluazogW1ZpZXcgdGhlIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZWRhdmlzMjUuZ2l0aHViLmlvL3BsZXgtYXBpLXNwZWMvKQ0KDQoNCiMjIyMgRHNlY3JpcHRpb24NClRoaXMgcHJvamVjdCBpcyBhbiBhdHRlbXB0IGF0IGRvY3VtZW50aW5nIHNvbWUgb2YgdGhlIG1hbnkgQVBJIGVuZHBvaW50cyB1c2VkIGJ5IHRoZSBQbGV4IHdlYiBhcHBsaWNhdGlvbi4gU2luY2UgUGxleCBpcyBjbG9zZWQtc291cmNlIGFuZCBkb2VzIG5vdCBwdWJsaWNseSBleHBvc2UgZG9jdW1lbnRhdGlvbiBmb3IgdGhlaXIgQVBJLCB0aGlzIHByb2plY3QgYXR0ZW1wdHMgdG8gZG9jdW1lbnQgdGhlIEFQSSdzIGZ1bmN0aW9uYWxpdHkgdXNpbmcgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4NCg0KVGhpcyBwcm9qZWN0IHdhcyBpbnNwaXJlZCBieSBNYXJjIFN0ZXBoZW5zb24ncyBbVW5vZmZpY2lhbCBQbGV4IEFQSSBEb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vQXJjYW5lbWFndXMvcGxleC1hcGkpLiBIaXMgZG9jdW1lbnRhdGlvbiBpcyBhbm90aGVyIGV4Y2VsbGVudA0KcmVzb3VyY2UgdGhhdCBJIGhpZ2hseSByZWNvbW1lbmQgd2hlbiBsZWFybmluZyBob3cgdG8gY29uc3VtZSB0aGUgUGxleCBBUEkuDQo= readmeEtag: '"3d6c96c9541543a939381186a8aff62e29652b19"' readmeLastModified: Thu, 10 Mar 2022 22:50:22 GMT repositoryId: 443420796 description: Documentation for the Plex Media Server web API. created: '2021-12-31T20:28:10Z' updated: '2023-09-08T18:30:12Z' language: null archived: false stars: 4 watchers: 3 forks: 2 owner: edavis25 logo: https://avatars.githubusercontent.com/u/14096584?v=4 repoEtag: '"d095023b58191fb4570a92fc6ef36393d2440b0b44c948f51869fc5291a1dbed"' repoLastModified: Fri, 08 Sep 2023 18:30:12 GMT foundInMaster: true category: - Server - Server Implementations id: 09854d87bfafe437e01abb6fa83211b5 - source: openapi3 tags repository: https://github.com/data-studio/data-studio v3: true repositoryMetadata: base64Readme: >- IyBEYXRhIFN0dWRpbyBieSBFdmlyYXRlYwoKV1AgZXhwb3J0IGluOiBgLi9kb2MvZGIvZGF0YXN0dWRpb2J5ZXZpcmF0ZWMuLi54bWxgCgojIyBTcGVjaWFsIG5vdGVzLCBmdXJ0aGVyIHJlYWRpbmcsIGFuZCB0aGFua3MgdG8gLi4uCgpQbGVhc2Ugbm90ZSAqKnRoaXMgcHJvamVjdCBpcyBpbiBOTyBXQVkgYWZmaWxpYXRlZCB3aXRoOyBvciBzdXBwb3J0ZWQsIG9yIGVuZG9yc2VkIGJ5OyBhbnkgb2YgdGhlIGZvbGxvd2luZyBwZW9wbGUgb3Igb3JnYW5pc2F0aW9ucy4qKgoKVGhleSBoYXZlIHNwZWNpYWwgbWVudGlvbiBoZXJlIGFzIEkgZmVlbCB0aGV5IGRlc2VydmUgaXQgOikKCiMjIyBDUVJTCgpDb21tYW5kIFF1ZXJ5IFJlc3BvbnNpYmlsaXR5IFNlZ3JlZ2F0aW9uCgotIFtNYXJ0aW4gRm93bGVyXShodHRwczovL21hcnRpbmZvd2xlci5jb20pIGZvciB0aGlzIGd1aWRlIG9uIFtDUVJTXShodHRwczovL21hcnRpbmZvd2xlci5jb20vYmxpa2kvQ1FSUy5odG1sKQotIFtHcmVnIFlvdW5nXShodHRwczovL3R3aXR0ZXIuY29tL2dyZWd5b3VuZykgYXMgaGUgaXMgbWVudGlvbmVkIG9uIGh0dHBzOi8vbWFydGluZm93bGVyLmNvbS9ibGlraS9DUVJTLmh0bWwKLSBbRG91Z2xhcyBSZWl0aF0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL2RvdWdsYXMtcmVpdGgvKSBmb3IgaW50cm9kdWNpbmcgbWUgdG8gQ1FSUyBhbmQgZXhwbGFpbmluZyBpdCBpbiBhIHdheSBJIGNvdWxkIHVuZGVyc3RhbmQKCiMjIyBPcGVuQVBJCgotIFtPcGVuQVBJIEluaXRpYXRpdmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkpOiBodHRwczovL29wZW5hcGlzLm9yZyBhbmQgaXQncyBjb250cmlidXRvcnMuCgojIyMgTWlzc2luZyBzb21lb25lL3NvbWV0aGluZz8KCkxldCBtZSBrbm93IDopCgojIyBNb2RlbHMKCmBgYAphcHAgICAgICAgICAgIEFwcCAgICAgICAgICAgQXBwcyAgICAgICAgICAgYXBwICAgICAgICAgICBhcHBzCmxvZ2ljX2dyb3VwICAgTG9naWNHcm91cCAgICBMb2dpYyBHcm91cHMgICBsb2dpYyBncm91cCAgIGxvZ2ljIGdyb3Vwcwptb2RlbCAgICAgICAgIE1vZGVsICAgICAgICAgTW9kZWxzICAgICAgICAgbW9kZWwgICAgICAgICBtb2RlbHMKYXR0cmlidXRlICAgICBBdHRyaWJ1dGUgICAgIEF0dHJpYnV0ZXMgICAgIGF0dHJpYnV0ZSAgICAgYXR0cmlidXRlcwpjb21tYW5kICAgICAgIENvbW1hbmQgICAgICAgQ29tbWFuZHMgICAgICAgY29tbWFuZCAgICAgICBjb21tYW5kcwpxdWVyeSAgICAgICAgIFF1ZXJ5ICAgICAgICAgUXVlcmllcyAgICAgICAgcXVlcnkgICAgICAgICBxdWVyaWVzCmBgYAoKIyMgUXVlcnkKCmBgYApnZXRBcHAKZ2V0TG9naWNHcm91cApnZXRNb2RlbApnZXRBdHRyaWJ1dGUKZ2V0Q29tbWFuZApnZXRRdWVyeQoKZ2V0QXBwcwpnZXRMb2dpY0dyb3Vwc0J5QXBwCmdldE1vZGVsc0J5TG9naWNHcm91cApnZXRBdHRyaWJ1dGVzQnlNb2RlbApnZXRDb21tYW5kc0J5TG9naWNHcm91cApnZXRRdWVyaWVzQnlMb2dpY0dyb3VwCmBgYAoKIyMgQ01ECgpgYGAKY3JlYXRlQXBwCmNyZWF0ZUxvZ2ljR3JvdXAKY3JlYXRlTW9kZWwKY3JlYXRlQXR0cmlidXRlCmNyZWF0ZUNvbW1hbmQKY3JlYXRlUXVlcnkKCmRlbGV0ZUFwcApkZWxldGVMb2dpY0dyb3VwCmRlbGV0ZU1vZGVsCmRlbGV0ZUF0dHJpYnV0ZQpkZWxldGVDb21tYW5kCmRlbGV0ZVF1ZXJ5Cgp1cGRhdGVBcHBOYW1lCnVwZGF0ZUxvZ2ljR3JvdXBOYW1lCnVwZGF0ZU1vZGVsTmFtZQp1cGRhdGVBdHRyaWJ1dGVOYW1lCnVwZGF0ZUNvbW1hbmROYW1lCnVwZGF0ZVF1ZXJ5TmFtZQpgYGAKCiMjIyBSZXF1aXJlcyBXb3JkUHJlc3MgUGx1Z2lucwotIEFkdmFuY2VkIEN1c3RvbSBGaWVsZHMKLSBQcm9maWxlIEJ1aWxkZXIKCiMjIEJhc2VkIG9uIFtIVE1MNSBCbGFua10oaHR0cDovL2h0bWw1YmxhbmsuY29tKQoKSFRNTDUgQmxhbmsgaXMgYSBwb3dlcmZ1bCBzaGVsbCBmb3IgcmFwaWRseSBkZXBsb3lpbmcgeW91ciBXb3JkUHJlc3MgcHJvamVjdHMuCgoqIFByb2plY3Q6IFtnaXRodWIuY29tL3RvZGRtb3R0by9odG1sNWJsYW5rXShodHRwczovL2dpdGh1Yi5jb20vdG9kZG1vdHRvL2h0bWw1YmxhbmspCiogV2Vic2l0ZTogW2h0bWw1YmxhbmsuY29tXShodHRwOi8vaHRtbDVibGFuay5jb20pCiogVHdpdHRlcjogW0BodG1sNWJsYW5rXShodHRwOi8vdHdpdHRlci5jb20vaHRtbDVibGFuaykKKiBBdXRob3IgOiBbVG9kZCBNb3R0b10oaHR0cDovL3RvZGRtb3R0by5jb20pIC8vIFtAdG9kZG1vdHRvXShodHRwOi8vdHdpdHRlci5jb20vdG9kZG1vdHRvKQoKIyMjIENvbnRyaWJ1dG9ycyAoaW4gb3JkZXIgb2YgcHVsbCByZXF1ZXN0KQpbRGF2aWQgTXVubl0oaHR0cHM6Ly9naXRodWIuY29tL011bm5kYXkpLCBbUGF0cmljayBaZWluZXJ0XShodHRwczovL2dpdGh1Yi5jb20vQ29ldXNDQyksIFtKLVJhYmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9KLVJhYmUpLCBbU3RldmUgU3RlaW5lcl0oaHR0cHM6Ly9naXRodWIuY29tL3NzdGVpbmVyeCksIFtLeWxlIEh1ZHNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2Rpc2todWIpLCBbY2hyaXNkbF0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzZGwpLCBbTWFyY2VsIE1pcmFuZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFrdGl2byksIFtGeCBCw6luYXJkXShodHRwczovL2dpdGh1Yi5jb20vZnhiZW5hcmQpLCBJb2FuIFZpcmFnLCBbTW9oYW1lZCBFbGtlYmlyXShodHRwczovL2dpdGh1Yi5jb20vZWxrZWJpcm1lZCksIFtscmVnbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9scmVnbGEpLCBDYXJsb3MgUGluYXIsIFtKb3NodWEgTHltYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9qbHltYW4pLCBbS2V2aW4gUGxhdHRyZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9rZXZpbnBsYXR0cmV0KSwgW1dlc2xsZWkgSGVucmlxdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS93ZXNsbGVpKSwgW1N0YWNleSBDb3Jkb25pXShodHRwczovL2dpdGh1Yi5jb20vc3RhY2V5Y29yZG9uaSkuCgojIyBNb3JlIGluZm8gYWJvdXQgSFRNTDUgQmxhbmsKCkRvd25sb2FkIHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tIFtodG1sNWJsYW5rLmNvbV0oaHR0cDovL2h0bWw1YmxhbmsuY29tKSwgb3IgW2dpdGh1Yi5jb20vdG9kZG1vdHRvL2h0bWw1YmxhbmtdKGh0dHBzOi8vZ2l0aHViLmNvbS90b2RkbW90dG8vaHRtbDVibGFuaykuCgojIyBNSVQgTGljZW5zZQoKQ29weXJpZ2h0ICZjb3B5OyAyMDE4IENhbGxhbiBQZXRlciBNaWxuZQoKQnVpbHQgYnkgQ2FsbGFuIE1pbG5lIC8vIEBldmlyYXRlYwpCYXNlZCBvbiB3b3JrIChbSFRNTDUgQmxhbmtdKGh0dHA6Ly9odG1sNWJsYW5rLmNvbSkpIGJ5IFRvZGQgTW90dG8gLy8gQHRvZGRtb3R0bwoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K readmeEtag: '"67ddde20d93ef634c55bec672ecb3e66f354da75"' readmeLastModified: Wed, 24 Oct 2018 00:11:46 GMT repositoryId: 133067860 description: DataStudio by Eviratec (datastudio.xyz) as a WordPress Theme created: '2018-05-11T17:13:28Z' updated: '2024-05-03T14:59:12Z' language: PHP archived: false stars: 4 watchers: 2 forks: 1 owner: data-studio logo: https://avatars.githubusercontent.com/u/28729308?v=4 license: NOASSERTION repoEtag: '"fc86eafe8b9f536c9956ce9f12b1c4eaf3fec8befd85cb996b55ac2c5f7db9d0"' repoLastModified: Fri, 03 May 2024 14:59:12 GMT foundInMaster: true category: Server id: 565b3259a85c277be27ca7225a6355cf - source: - openapi3 tags - openapi31 tags repository: https://github.com/apiaddicts/sonaropenapi-rules v3: true id: 2be35a610f6c92cf6cbb96985485bb4b repositoryMetadata: base64Readme: >- CgojIPCfm6DvuI8gc29uYXJvcGVuYXBpLXJ1bGVzICAhW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS0xLjAuMy1wdXJwbGUpICFbSmF2YV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhLSUyM0VEOEIwMC5zdmc/c3R5bGU9ZmxhdCZsb2dvPW9wZW5qZGsmbG9nb0NvbG9yPXdoaXRlKSAgWyFbTGljZW5zZTogTEdQTCB2M10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUxHUExfdjMtYmx1ZS5zdmcpXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMy4wKSAKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBhIHNldCBvZiBjdXN0b20gU29uYXJRdWJlIHJ1bGVzIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byBhbmFseXplIGFuZCBpbXByb3ZlIHRoZSBxdWFsaXR5IG9mIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMuIEJ5IGludGVncmF0aW5nIHRoZXNlIHJ1bGVzLCB0ZWFtcyBjYW4gZW5zdXJlIGJlc3QgcHJhY3RpY2VzLCBtYWludGFpbmFiaWxpdHksIGFuZCBjb25zaXN0ZW5jeSBpbiB0aGVpciBBUEkgZGVmaW5pdGlvbnMuCgojIyMgVGhpcyByZXBvc2l0b3J5IGlzIGludGVuZGVkIGZvciA6b2N0b2NhdDogKipjb21tdW5pdHkqKiB1c2UsIGl0IGNhbiBiZSBtb2RpZmllZCBhbmQgYWRhcHRlZCB3aXRob3V0IGNvbW1lcmNpYWwgdXNlLiBJZiB5b3UgbmVlZCBhIHZlcnNpb24sIHN1cHBvcnQgb3IgaGVscCBmb3IgeW91ciAqKmVudGVycHJpc2UqKiBvciBwcm9qZWN0LCBwbGVhc2UgY29udGFjdCB1cyDwn5OnIGRldnJlbEBhcGlhZGRpY3RzLm9yZwojIyMg8J+SoSBJZiB5b3UgaGF2ZSBhbiBpZGVhIGZvciBhIHJ1bGUgYnV0IHlvdSBhcmUgbm90IHN1cmUgdGhhdCBldmVyeW9uZSBuZWVkcyBpdCB5b3UgY2FuIGltcGxlbWVudCBhIFtjdXN0b20gcnVsZV0oQ3VzdG9tUnVsZXMubWQpIGF2YWlsYWJsZSBvbmx5IGZvciB5b3UuCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqZG9Tb25hckFwaSoqIEFkb3B0ZXJzIGxpc3QgCvCfk6IgSWYgZG9Tb25hckFwaSBpcyBwYXJ0IG9mIHlvdXIgb3JnYW5pemF0aW9uJ3MgdG9vbGtpdCwgd2Uga2luZGx5IGVuY291cmFnZSB5b3UgdG8gaW5jbHVkZSB5b3VyIGNvbXBhbnkncyBuYW1lIGluIG91ciBBZG9wdGVycyBsaXN0LiDwn5mPIFRoaXMgbm90IG9ubHkgc2lnbmlmaWNhbnRseSBib29zdHMgdGhlIHByb2plY3QncyB2aXNpYmlsaXR5IGFuZCByZXB1dGF0aW9uIGJ1dCBhbHNvIHJlcHJlc2VudHMgYSBzbWFsbCB5ZXQgaW1wYWN0ZnVsIHdheSB0byBnaXZlIGJhY2sgdG8gdGhlIHByb2plY3QuCgp8IE9yZ2FuaXphdGlvbiAgfCBEZXNjcmlwdGlvbiBvZiBVc2UgLyBSZWZlcmVuYyB8CnwtLS18LS0tfAp8ICBbQ2xvdWRBcHBpXShodHRwczovL2Nsb3VkYXBwaS5uZXQvKSAgfCBBcGlmaWNhdGlvbiBhbmQgZ2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzIHwKfCBbTWFkcmlkIERpZ2l0YWxdKGh0dHBzOi8vd3d3LmNvbXVuaWRhZC5tYWRyaWQvc2VydmljaW9zL3NlZGUtZWxlY3Ryb25pY2EvbWFkcmlkLWRpZ2l0YWwvKSAgfCBHZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgIHwKfCBbQXBpcXVhbGl0eV0oaHR0cHM6Ly9hcGlxdWFsaXR5LmlvLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzICB8CgojIPCfkanwn4+94oCN8J+SuyAgQ29udHJpYnV0ZSB0byBBcGlBZGRpY3RzIAoKV2UncmUgYW4gaW5jbHVzaXZlIGFuZCBvcGVuIGNvbW11bml0eSwgd2VsY29taW5nIHlvdSB0byBqb2luIG91ciBlZmZvcnQgdG8gZW5oYW5jZSBBcGlBZGRpY3RzLCBhbmQgd2UncmUgZXhjaXRlZCB0byBwcmlvcml0aXplIHRhc2tzIGJhc2VkIG9uIGNvbW11bml0eSBpbnB1dCwgaW52aXRpbmcgeW91IHRvIHJldmlldyBhbmQgY29sbGFib3JhdGUgdGhyb3VnaCBvdXIgR2l0SHViIGlzc3VlIHRyYWNrZXIuCgpGZWVsIGZyZWUgdG8gZHJvcCBieSBhbmQgZ3JlZXQgdXMgb24gb3VyIEdpdEh1YiBkaXNjdXNzaW9uIG9yIERpc2NvcmQgY2hhdC4gWW91IGNhbiBhbHNvIHNob3cgeW91ciBzdXBwb3J0IGJ5IGdpdmluZyB1cyBzb21lIEdpdEh1YiBzdGFycyDirZDvuI8sIG9yIGJ5IGZvbGxvd2luZyB1cyBvbiBUd2l0dGVyLCBMaW5rZWRJbiwgYW5kIHN1YnNjcmliaW5nIHRvIG91ciBZb3VUdWJlIGNoYW5uZWwhIPCfmoAKClshWyJCdXkgTWUgQSBDb2ZmZWUiXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2Fzc2V0cy9pbWcvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyldKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXBpYWRkaWN0cykKCgojIPCfk5EgR2V0dGluZyBzdGFydGVkIAoKIyMg8J+UjSBDb25maWd1cmUgc2Nhbm5lcgoKIyMjIE1hdmVuIHBsdWdpbgoKIyMjIyBDb25maWd1cmUgcHJvcGVydGllcwoKSW4gYHBvbS54bWxgIGNvbmZpZ3VyZToKCmBgYGB4bWwKICAgIDxwcm9wZXJ0aWVzPgogICAgICAgIDwhLS0gT3B0aW9uYWwsIFdoZW4gaXMgc2V0IG9ubHkgdGhlIGxhbmd1YWdlIHNwZWNpZmllZCBpcyBhbmFseXplZCAtLT4KICAgICAgICA8c29uYXIubGFuZ3VhZ2U+b3BlbmFwaTwvc29uYXIubGFuZ3VhZ2U+CiAgICAgICAgPCEtLSBPcHRpb25hbCwgRGVmYXVsdCB2YWx1ZSBpcyBzcmMvbWFpbixwb20ueG1sIC0tPgogICAgICAgIDxzb25hci5zb3VyY2VzPi48L3NvbmFyLnNvdXJjZXM+CiAgICA8L3Byb3BlcnRpZXM+CmBgYGAKCiMjIyMgUnVuIHNjYW5uZXIKCmBtdm4gc29uYXI6c29uYXIgLURzb25hci5ob3N0LnVybD08SE9TVD4gLURzb25hci5sb2dpbj08S0VZPmAKCiMjIyBFeHRlcm5hbCBgc29uYXItc2Nhbm5lcmAKCiMjIyMgSW5zdGFsbCBgc29uYXItc2Nhbm5lcmAKCkRvd25sb2FkIHRoZSBgc29uYXItc2Nhbm5lcmAgZnJvbSBodHRwczovL2RvY3Muc29uYXJxdWJlLm9yZy9sYXRlc3QvYW5hbHlzaXMvc2Nhbi9zb25hcnNjYW5uZXIvIGFuZCBtYWtlIGl0IGFjY2Vzc2libGUuCgojIyMjIENvbmZpZ3VyZSBwcm9wZXJ0aWVzCgpJbiBgc29uYXItcHJvamVjdC5wcm9wZXJ0aWVzYCAoZmlsZSBpbiByb290IHByb2plY3QgZm9sZGVyKSBjb25maWd1cmU6CgpgYGBgcHJvcGVydGllcwojIG11c3QgYmUgdW5pcXVlIGluIGEgZ2l2ZW4gU29uYXJRdWJlIGluc3RhbmNlCnNvbmFyLnByb2plY3RLZXk9dGVzdDp0ZXN0CiMgdGhpcyBpcyB0aGUgbmFtZSBhbmQgdmVyc2lvbiBkaXNwbGF5ZWQgaW4gdGhlIFNvbmFyUXViZSBVSS4gV2FzIG1hbmRhdG9yeSBwcmlvciB0byBTb25hclF1YmUgNi4xLgpzb25hci5wcm9qZWN0TmFtZT1PcGVuQVBJIHBsdWdpbiB0ZXN0cwpzb25hci5wcm9qZWN0VmVyc2lvbj0xLjAtU05BUFNIT1QKCiMgUGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgc29uYXItcHJvamVjdC5wcm9wZXJ0aWVzIGZpbGUuIFJlcGxhY2UgIlwiIGJ5ICIvIiBvbiBXaW5kb3dzLgojIFRoaXMgcHJvcGVydHkgaXMgb3B0aW9uYWwgaWYgc29uYXIubW9kdWxlcyBpcyBzZXQuCnNvbmFyLnNvdXJjZXM9LgoKIyBFbmNvZGluZyBvZiB0aGUgc291cmNlIGNvZGUuIERlZmF1bHQgaXMgZGVmYXVsdCBzeXN0ZW0gZW5jb2RpbmcKc29uYXIuc291cmNlRW5jb2Rpbmc9VVRGLTgKIyBTZWxlY3QgdGhlIGxhbmd1YWdlIHRvIHVzZSBmb3IgYW5hbHlzaXMKc29uYXIubGFuZ3VhZ2U9b3BlbmFwaQpgYGBgCgojIyMjIOKWtu+4jyBSdW4gc2Nhbm5lcgoKYHNvbmFyLXNjYW5uZXIgLURzb25hci5ob3N0LnVybD08SE9TVD4gLURzb25hci5sb2dpbj08S0VZPmAKCiMjIOKchSBDb21wYXRpYmlsaXR5CgpUaGlzIHBsdWdpbiBpcyBzdXBwb3J0ZWQgYnkgU29uYXJRdWJlIHZlcnNpb25zIGdyZWF0ZXIgb3IgZXF1YWwgdG8gYDYuNy40YAoKIyMjIEV4cGxpY2l0IGNvbXBhdGliaWxpdHkgdmVyc2lvbnMgdGVzdGVkCgp8IFZlcnNpb24gfAp8LS0tLS0tLS0tfAp8IGA2LjcuNGAgfAp8IGA3LjktY29tbXVuaXR5YCB8CnwgYDguMy1jb21tdW5pdHlgIHwKCiMjIPCfkpsgU3BvbnNvcnMKPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy5jbG91ZGFwcGkubmV0L3dlYi9pbWFnZS80MjQ4L0xPR09DbG91ZGFwcGkyMDIwVmVyc2lvbmVzLTAxLnBuZyIgYWx0PSJjbG91ZGFwcGkiIHdpZHRoPSIxNTAiLz4KPGltZyBzcmM9Imh0dHBzOi8vd3d3LmNvbXVuaWRhZC5tYWRyaWQvc2l0ZXMvZGVmYXVsdC9maWxlcy9zdHlsZXMvYmxvY2tfdGVhc2VyX2ltYWdlL3B1YmxpYy9pbWcvbG9nb3Mtc2ltYm9sb3MvbG9nb19jZW50cmFkb19tZC5wbmc/aXRvaz00clRVaG1jaiIgYWx0PSJtZCIgd2lkdGg9IjE1MCIvPgo8aW1nIHNyYz0iaHR0cHM6Ly9hcGlxdWFsaXR5LmlvL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA5L2Nyb3BwZWQtbG9nby1hcGlxdWFsaXR5LXByaW5jaXBhbC0xLTE3MHg3MC5wbmciIGhlaWdodCA9ICI3NSI+CjxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMtd2ViLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzAzLzE3MTU1NzM2L2Nyb3BwZWQtQVBJQWRkaWN0cy1sb2dvdGlwb19yb2pvLnBuZyIgaGVpZ2h0ID0gIjc1Ij4K readmeEtag: '"cb59dc07901a74b3759525696e4250a2e57b1c13"' readmeLastModified: Thu, 05 Sep 2024 15:02:03 GMT repositoryId: 317901907 description: >- SonarOpenAPI-Rules is a set of rules to validate OpenAPI / Swagger api definitions in SonarQube, you also need to install the evaluation engine. created: '2020-12-02T15:15:59Z' updated: '2024-09-05T15:02:15Z' language: HTML archived: false stars: 4 watchers: 2 forks: 0 owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 repoEtag: '"0f4e129069972f13acf71b0e79eac749897d7af4966282134740213d45e24bed"' repoLastModified: Thu, 05 Sep 2024 15:02:15 GMT category: - Code Generators - Server Implementations foundInMaster: true v3_1: true oldLocations: - https://github.com/apiaddicts/dosonarapi - source: openapi3 tags repository: https://github.com/apiportal/abyss-spec-transformer v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvYXBpcG9ydGFsL2FieXNzLXNwZWMtdHJhbnNmb3JtZXIuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvYXBpcG9ydGFsL2FieXNzLXNwZWMtdHJhbnNmb3JtZXIpCgojIEFCWVNTIFNQRUMgVFJBTlNGT1JNRVIKClRoaXMgYXBwbGljYXRpb24gdHJhbnNmb3JtcyBwcm92aWRlZCBgV1NETGAgaW50byBhbiBgT3BlbkFQSSB2M2Agc3BlYyB5YW1sIGZpbGUuIFdTREwgc2hvdWxkIGJlIHByb3ZpZGVkIHZpYSBwYXRoLCBVUkkgb3IgU3RyaW5nICAKCkFuIGV4YW1wbGUgaXMgYmVsb3cKCioqSW5wdXQqKgoKYGBgeG1sCjw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KPHdzZGw6ZGVmaW5pdGlvbnMgeG1sbnM6d3NkbD0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3NkbC8iCiAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93c2RsLyIKICAgICAgICAgICAgICAgICAgeG1sbnM6d3Nhdz0iaHR0cDovL3d3dy53My5vcmcvMjAwNi8wNS9hZGRyZXNzaW5nL3dzZGwiCiAgICAgICAgICAgICAgICAgIHhtbG5zOmh0dHA9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzZGwvaHR0cC8iCiAgICAgICAgICAgICAgICAgIHhtbG5zOnRucz0iaHR0cDovL3Rob21hcy1iYXllci5jb20vYmx6LyIKICAgICAgICAgICAgICAgICAgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKICAgICAgICAgICAgICAgICAgeG1sbnM6bWltZT0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3NkbC9taW1lLyIKICAgICAgICAgICAgICAgICAgeG1sbnM6c29hcD0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3NkbC9zb2FwLyIKICAgICAgICAgICAgICAgICAgeG1sbnM6c29hcDEyPSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93c2RsL3NvYXAxMi8iCiAgICAgICAgICAgICAgICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL3Rob21hcy1iYXllci5jb20vYmx6LyI+CiAgICA8d3NkbDpkb2N1bWVudGF0aW9uPkJMWlNlcnZpY2U8L3dzZGw6ZG9jdW1lbnRhdGlvbj4KICAgIDx3c2RsOnR5cGVzPgogICAgICAgIDx4c2Q6c2NoZW1hIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCIgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL3Rob21hcy1iYXllci5jb20vYmx6LyI+CiAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJnZXRCYW5rIiB0eXBlPSJ0bnM6Z2V0QmFua1R5cGUiPjwveHNkOmVsZW1lbnQ+CiAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJnZXRCYW5rUmVzcG9uc2UiIHR5cGU9InRuczpnZXRCYW5rUmVzcG9uc2VUeXBlIj48L3hzZDplbGVtZW50PgogICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlIG5hbWU9ImdldEJhbmtUeXBlIj4KICAgICAgICAgICAgICAgIDx4c2Q6c2VxdWVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImJseiIgdHlwZT0ieHNkOnN0cmluZyI+PC94c2Q6ZWxlbWVudD4KICAgICAgICAgICAgICAgIDwveHNkOnNlcXVlbmNlPgogICAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KICAgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJnZXRCYW5rUmVzcG9uc2VUeXBlIj4KICAgICAgICAgICAgICAgIDx4c2Q6c2VxdWVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImRldGFpbHMiIHR5cGU9InRuczpkZXRhaWxzVHlwZSI+PC94c2Q6ZWxlbWVudD4KICAgICAgICAgICAgICAgIDwveHNkOnNlcXVlbmNlPgogICAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KICAgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJkZXRhaWxzVHlwZSI+CiAgICAgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBtaW5PY2N1cnM9IjAiIG5hbWU9ImJlemVpY2hudW5nIiB0eXBlPSJ4c2Q6c3RyaW5nIj48L3hzZDplbGVtZW50PgogICAgICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBtaW5PY2N1cnM9IjAiIG5hbWU9ImJpYyIgdHlwZT0ieHNkOnN0cmluZyI+PC94c2Q6ZWxlbWVudD4KICAgICAgICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbWluT2NjdXJzPSIwIiBuYW1lPSJvcnQiIHR5cGU9InhzZDpzdHJpbmciPjwveHNkOmVsZW1lbnQ+CiAgICAgICAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG1pbk9jY3Vycz0iMCIgbmFtZT0icGx6IiB0eXBlPSJ4c2Q6c3RyaW5nIj48L3hzZDplbGVtZW50PgogICAgICAgICAgICAgICAgPC94c2Q6c2VxdWVuY2U+CiAgICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgogICAgICAgIDwveHNkOnNjaGVtYT4KICAgIDwvd3NkbDp0eXBlcz4KICAgIDx3c2RsOm1lc3NhZ2UgbmFtZT0iZ2V0QmFuayI+CiAgICAgICAgPHdzZGw6cGFydCBuYW1lPSJwYXJhbWV0ZXJzIiBlbGVtZW50PSJ0bnM6Z2V0QmFuayI+PC93c2RsOnBhcnQ+CiAgICA8L3dzZGw6bWVzc2FnZT4KICAgIDx3c2RsOm1lc3NhZ2UgbmFtZT0iZ2V0QmFua1Jlc3BvbnNlIj4KICAgICAgICA8d3NkbDpwYXJ0IG5hbWU9InBhcmFtZXRlcnMiIGVsZW1lbnQ9InRuczpnZXRCYW5rUmVzcG9uc2UiPjwvd3NkbDpwYXJ0PgogICAgPC93c2RsOm1lc3NhZ2U+CiAgICA8d3NkbDpwb3J0VHlwZSBuYW1lPSJCTFpTZXJ2aWNlUG9ydFR5cGUiPgogICAgICAgIDx3c2RsOm9wZXJhdGlvbiBuYW1lPSJnZXRCYW5rIj4KICAgICAgICAgICAgPHdzZGw6aW5wdXQgbWVzc2FnZT0idG5zOmdldEJhbmsiPjwvd3NkbDppbnB1dD4KICAgICAgICAgICAgPHdzZGw6b3V0cHV0IG1lc3NhZ2U9InRuczpnZXRCYW5rUmVzcG9uc2UiIHdzYXc6QWN0aW9uPSJodHRwOi8vdGhvbWFzLWJheWVyLmNvbS9ibHovQkxaU2VydmljZS9nZXRCYW5rUmVzcG9uc2UiPjwvd3NkbDpvdXRwdXQ+CiAgICAgICAgPC93c2RsOm9wZXJhdGlvbj4KICAgIDwvd3NkbDpwb3J0VHlwZT4KICAgIDx3c2RsOmJpbmRpbmcgbmFtZT0iQkxaU2VydmljZVNPQVAxMUJpbmRpbmciIHR5cGU9InRuczpCTFpTZXJ2aWNlUG9ydFR5cGUiPgogICAgICAgIDxzb2FwOmJpbmRpbmcgc3R5bGU9ImRvY3VtZW50IiB0cmFuc3BvcnQ9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvaHR0cCI+PC9zb2FwOmJpbmRpbmc+CiAgICAgICAgPHdzZGw6b3BlcmF0aW9uIG5hbWU9ImdldEJhbmsiPgogICAgICAgICAgICA8c29hcDpvcGVyYXRpb24gc3R5bGU9ImRvY3VtZW50IiBzb2FwQWN0aW9uPSIiPjwvc29hcDpvcGVyYXRpb24+CiAgICAgICAgICAgIDx3c2RsOmlucHV0PgogICAgICAgICAgICAgICAgPHNvYXA6Ym9keSB1c2U9ImxpdGVyYWwiPjwvc29hcDpib2R5PgogICAgICAgICAgICA8L3dzZGw6aW5wdXQ+CiAgICAgICAgICAgIDx3c2RsOm91dHB1dD4KICAgICAgICAgICAgICAgIDxzb2FwOmJvZHkgdXNlPSJsaXRlcmFsIj48L3NvYXA6Ym9keT4KICAgICAgICAgICAgPC93c2RsOm91dHB1dD4KICAgICAgICA8L3dzZGw6b3BlcmF0aW9uPgogICAgPC93c2RsOmJpbmRpbmc+CiAgICA8d3NkbDpiaW5kaW5nIG5hbWU9IkJMWlNlcnZpY2VTT0FQMTJCaW5kaW5nIiB0eXBlPSJ0bnM6QkxaU2VydmljZVBvcnRUeXBlIj4KICAgICAgICA8c29hcDEyOmJpbmRpbmcgc3R5bGU9ImRvY3VtZW50IiB0cmFuc3BvcnQ9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvaHR0cCI+PC9zb2FwMTI6YmluZGluZz4KICAgICAgICA8d3NkbDpvcGVyYXRpb24gbmFtZT0iZ2V0QmFuayI+CiAgICAgICAgICAgIDxzb2FwMTI6b3BlcmF0aW9uIHN0eWxlPSJkb2N1bWVudCIgc29hcEFjdGlvbj0iIj48L3NvYXAxMjpvcGVyYXRpb24+CiAgICAgICAgICAgIDx3c2RsOmlucHV0PgogICAgICAgICAgICAgICAgPHNvYXAxMjpib2R5IHVzZT0ibGl0ZXJhbCI+PC9zb2FwMTI6Ym9keT4KICAgICAgICAgICAgPC93c2RsOmlucHV0PgogICAgICAgICAgICA8d3NkbDpvdXRwdXQ+CiAgICAgICAgICAgICAgICA8c29hcDEyOmJvZHkgdXNlPSJsaXRlcmFsIj48L3NvYXAxMjpib2R5PgogICAgICAgICAgICA8L3dzZGw6b3V0cHV0PgogICAgICAgIDwvd3NkbDpvcGVyYXRpb24+CiAgICA8L3dzZGw6YmluZGluZz4KICAgIDx3c2RsOmJpbmRpbmcgbmFtZT0iQkxaU2VydmljZUh0dHBCaW5kaW5nIiB0eXBlPSJ0bnM6QkxaU2VydmljZVBvcnRUeXBlIj4KICAgICAgICA8aHR0cDpiaW5kaW5nIHZlcmI9IlBPU1QiPjwvaHR0cDpiaW5kaW5nPgogICAgICAgIDx3c2RsOm9wZXJhdGlvbiBuYW1lPSJnZXRCYW5rIj4KICAgICAgICAgICAgPGh0dHA6b3BlcmF0aW9uIGxvY2F0aW9uPSJCTFpTZXJ2aWNlL2dldEJhbmsiPjwvaHR0cDpvcGVyYXRpb24+CiAgICAgICAgICAgIDx3c2RsOmlucHV0PgogICAgICAgICAgICAgICAgPG1pbWU6Y29udGVudCBwYXJ0PSJnZXRCYW5rIiB0eXBlPSJ0ZXh0L3htbCI+PC9taW1lOmNvbnRlbnQ+CiAgICAgICAgICAgIDwvd3NkbDppbnB1dD4KICAgICAgICAgICAgPHdzZGw6b3V0cHV0PgogICAgICAgICAgICAgICAgPG1pbWU6Y29udGVudCBwYXJ0PSJnZXRCYW5rIiB0eXBlPSJ0ZXh0L3htbCI+PC9taW1lOmNvbnRlbnQ+CiAgICAgICAgICAgIDwvd3NkbDpvdXRwdXQ+CiAgICAgICAgPC93c2RsOm9wZXJhdGlvbj4KICAgIDwvd3NkbDpiaW5kaW5nPgogICAgPHdzZGw6c2VydmljZSBuYW1lPSJCTFpTZXJ2aWNlIj4KICAgICAgICA8d3NkbDpwb3J0IG5hbWU9IkJMWlNlcnZpY2VTT0FQMTFwb3J0X2h0dHAiIGJpbmRpbmc9InRuczpCTFpTZXJ2aWNlU09BUDExQmluZGluZyI+CiAgICAgICAgICAgIDxzb2FwOmFkZHJlc3MgbG9jYXRpb249Imh0dHA6Ly93d3cudGhvbWFzLWJheWVyLmNvbS9heGlzMi9zZXJ2aWNlcy9CTFpTZXJ2aWNlIj48L3NvYXA6YWRkcmVzcz4KICAgICAgICA8L3dzZGw6cG9ydD4KICAgICAgICA8d3NkbDpwb3J0IG5hbWU9IkJMWlNlcnZpY2VTT0FQMTJwb3J0X2h0dHAiIGJpbmRpbmc9InRuczpCTFpTZXJ2aWNlU09BUDEyQmluZGluZyI+CiAgICAgICAgICAgIDxzb2FwMTI6YWRkcmVzcyBsb2NhdGlvbj0iaHR0cDovL3d3dy50aG9tYXMtYmF5ZXIuY29tL2F4aXMyL3NlcnZpY2VzL0JMWlNlcnZpY2UiPjwvc29hcDEyOmFkZHJlc3M+CiAgICAgICAgPC93c2RsOnBvcnQ+CiAgICAgICAgPHdzZGw6cG9ydCBuYW1lPSJCTFpTZXJ2aWNlSHR0cHBvcnQiIGJpbmRpbmc9InRuczpCTFpTZXJ2aWNlSHR0cEJpbmRpbmciPgogICAgICAgICAgICA8aHR0cDphZGRyZXNzIGxvY2F0aW9uPSJodHRwOi8vd3d3LnRob21hcy1iYXllci5jb20vYXhpczIvc2VydmljZXMvQkxaU2VydmljZSI+PC9odHRwOmFkZHJlc3M+CiAgICAgICAgPC93c2RsOnBvcnQ+CiAgICA8L3dzZGw6c2VydmljZT4KPC93c2RsOmRlZmluaXRpb25zPgpgYGAKCj5jcmVkaXQgdG8gaHR0cDovL3d3dy50aG9tYXMtYmF5ZXIuY29tLwoKCioqVXNhZ2UqKgoKYGBgamF2YQpTdHJpbmcgc291cmNlUGF0aCA9ICJodHRwOi8vdGhvbWFzLWJheWVyLmNvbS9heGlzMi9zZXJ2aWNlcy9CTFpTZXJ2aWNlP3dzZGwiOwpyZXR1cm4gbmV3IE9wZW5BUElUcmFuc2Zvcm1lcigpLnRyYW5zZm9ybShzb3VyY2VQYXRoKTsgICAgICAgIApgYGAKCioqT3V0cHV0KioKCmBgYHlhbWwKb3BlbmFwaTogMy4wLjEKaW5mbzoKICB0aXRsZTogQkxaU2VydmljZQogIHZlcnNpb246ICIxLjAiCnNlcnZlcnM6Ci0gdXJsOiBodHRwOi8vd3d3LnRob21hcy1iYXllci5jb20vYXhpczIvc2VydmljZXMvQkxaU2VydmljZQp0YWdzOgotIG5hbWU6IEJMWlNlcnZpY2VTT0FQMTFCaW5kaW5nCiAgZXh0ZXJuYWxEb2NzOgogICAgZGVzY3JpcHRpb246IFNvYXAgMS4xIFNlcnZpY2UKICAgIHVybDogaHR0cDovL3d3dy50aG9tYXMtYmF5ZXIuY29tL2F4aXMyL3NlcnZpY2VzL0JMWlNlcnZpY2UKLSBuYW1lOiBCTFpTZXJ2aWNlSHR0cEJpbmRpbmcKICBleHRlcm5hbERvY3M6CiAgICBkZXNjcmlwdGlvbjogSFRUUCBTZXJ2aWNlCiAgICB1cmw6IGh0dHA6Ly93d3cudGhvbWFzLWJheWVyLmNvbS9heGlzMi9zZXJ2aWNlcy9CTFpTZXJ2aWNlCi0gbmFtZTogQkxaU2VydmljZVNPQVAxMkJpbmRpbmcKICBleHRlcm5hbERvY3M6CiAgICBkZXNjcmlwdGlvbjogU29hcCAxLjIgU2VydmljZQogICAgdXJsOiBodHRwOi8vd3d3LnRob21hcy1iYXllci5jb20vYXhpczIvc2VydmljZXMvQkxaU2VydmljZQpwYXRoczoKICAvQkxaU2VydmljZS9nZXRCYW5rOgogICAgcG9zdDoKICAgICAgdGFnczoKICAgICAgLSBCTFpTZXJ2aWNlSHR0cEJpbmRpbmcKICAgICAgb3BlcmF0aW9uSWQ6IGdldEJhbmtfSHR0cFNlcnZpY2UKICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9yZXF1ZXN0Qm9kaWVzL2dldEJhbmsnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3Jlc3BvbnNlcy8yMDBfZ2V0QmFua1Jlc3BvbnNlJwogIC9nZXRCYW5rOgogICAgcG9zdDoKICAgICAgdGFnczoKICAgICAgLSBCTFpTZXJ2aWNlU09BUDEyQmluZGluZwogICAgICAtIEJMWlNlcnZpY2VTT0FQMTFCaW5kaW5nCiAgICAgIG9wZXJhdGlvbklkOiBnZXRCYW5rX1NvYXBTZXJ2aWNlCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvcmVxdWVzdEJvZGllcy9nZXRCYW5rJwogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9yZXNwb25zZXMvMjAwX2dldEJhbmtSZXNwb25zZScKY29tcG9uZW50czoKICBzY2hlbWFzOgogICAgZ2V0QmFua1Jlc3BvbnNlVHlwZToKICAgICAgdGl0bGU6IGdldEJhbmtSZXNwb25zZVR5cGUKICAgICAgcmVxdWlyZWQ6CiAgICAgIC0gZGV0YWlscwogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBkZXRhaWxzOgogICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL2RldGFpbHNUeXBlJwogICAgZ2V0QmFua1Jlc3BvbnNlOgogICAgICB0aXRsZTogZ2V0QmFua1Jlc3BvbnNlCiAgICAgIHJlcXVpcmVkOgogICAgICAtIGdldEJhbmtSZXNwb25zZVR5cGUKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgZ2V0QmFua1Jlc3BvbnNlVHlwZToKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9nZXRCYW5rUmVzcG9uc2VUeXBlJwogICAgZ2V0QmFua1R5cGU6CiAgICAgIHRpdGxlOiBnZXRCYW5rVHlwZQogICAgICByZXF1aXJlZDoKICAgICAgLSBibHoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgYmx6OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICBkZXRhaWxzVHlwZToKICAgICAgdGl0bGU6IGRldGFpbHNUeXBlCiAgICAgIHJlcXVpcmVkOgogICAgICAtIGJlemVpY2hudW5nCiAgICAgIC0gYmljCiAgICAgIC0gb3J0CiAgICAgIC0gcGx6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGJlemVpY2hudW5nOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgYmljOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgb3J0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgcGx6OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICBnZXRCYW5rOgogICAgICB0aXRsZTogZ2V0QmFuawogICAgICByZXF1aXJlZDoKICAgICAgLSBnZXRCYW5rVHlwZQogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBnZXRCYW5rVHlwZToKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9nZXRCYW5rVHlwZScKICByZXNwb25zZXM6CiAgICAyMDBfZ2V0QmFua1Jlc3BvbnNlOgogICAgICBkZXNjcmlwdGlvbjogU3VjY2Vzc2Z1bCBvcGVyYXRpb24KICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi94bWw6CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMveC1tZXNzYWdlcy9nZXRCYW5rUmVzcG9uc2UnCiAgcmVxdWVzdEJvZGllczoKICAgIGdldEJhbms6CiAgICAgIGRlc2NyaXB0aW9uOiBnZXRCYW5rIG1lc3NhZ2Ugb2JqZWN0IGFzIHJlcXVlc3QgYm9keQogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL3htbDoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy94LW1lc3NhZ2VzL2dldEJhbmsnCiAgICAgIHJlcXVpcmVkOiB0cnVlCiAgeC1tZXNzYWdlczoKICAgIGdldEJhbmtSZXNwb25zZToKICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL2dldEJhbmtSZXNwb25zZScKICAgIGdldEJhbms6CiAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9nZXRCYW5rJwpgYGA= readmeEtag: '"55c05ba0aa538774c6ccee25f0a5436d9cecd18e"' readmeLastModified: Wed, 08 May 2019 16:25:42 GMT repositoryId: 182996886 description: Abyss Spec Transformer Project https://apiportal.com created: '2019-04-23T11:04:16Z' updated: '2019-10-08T20:22:59Z' language: Java archived: false stars: 4 watchers: 4 forks: 2 owner: apiportal logo: https://avatars.githubusercontent.com/u/49755495?v=4 license: Apache-2.0 repoEtag: '"1ae3f2db56194ef20342c81d246abf29ff7208c19899f626e6821a0126c76efa"' repoLastModified: Tue, 08 Oct 2019 20:22:59 GMT foundInMaster: true category: Parsers id: 8f099ab923615e467822d1db90695ec1 - source: openapi3 tags repository: https://github.com/mohitkumarsahni/todo-api v3: true id: bc0238674e6a94f258aeca89c30ea2af repositoryMetadata: base64Readme: >- IyMgVG9Eby1BUEkKQW4gQVBJIGZvciBjcmVhdGluZyBhbmQgbWFuYWdpbmcgdGFza3MuCgojIyMgVGhlIEFQSSBjYW4gcGVyZm9ybSBmb2xsb3dpbmcgb3BlcmF0aW9uczoKCi0gW3hdIENyZWF0ZSBhIG5ldyB0YXNrLWxpc3QuCi0gW3hdIFVwZGF0ZSBhIHRhc2stbGlzdC4KLSBbeF0gRmV0Y2ggYSB0YXNrLWxpc3QuCi0gW3hdIERlbGV0ZSBhIHRhc2stbGlzdC4KLSBbeF0gQ3JlYXRlIGEgbmV3IHRhc2sgaW4gYSB0YXNrLWxpc3QuCi0gW3hdIFVwZGF0ZSBhIHRhc2sgaW4gYSB0YXNrLWxpc3QuCi0gW3hdIEZldGNoIGEgdGFzay4KLSBbeF0gRmV0Y2ggYWxsIHRhc2tzIGluIGEgdGFzay1saXN0LgotIFt4XSBEZWxldGUgYSB0YXNrIGluIGEgdGFzay1saXN0LgoKUGxlYXNlIHNlZSB0aGUgW29wZW5hcGkgY29udHJhY3RdKC4vZG9jcy9hcGktY29udHJhY3QueWFtbCkgZm9yIEFQSSBlbmRwb2ludHMgYW5kIGRldGFpbHMuCgojIyMgUHJlcmVxdWlzaXRlcwoKIyMjIyBJbnN0YWxsIEphdmEgMTEKLSBUaGlzIGFwcGxpY2F0aW9uIHJlcXVpcmVzIEphdmEgMTEuCi0gUGxlYXNlIHJlZmVyIHRvIHRoZSBmb2xsb3dpbmcgbGluayB0byBkb3dubG9hZCBhbmQgaW5zdGFsbCBKYXZhLTExOiBbSmF2YS0xMV0oaHR0cHM6Ly93d3cub3JhY2xlLmNvbS9pbi9qYXZhL3RlY2hub2xvZ2llcy9qYXZhc2UvamRrMTEtYXJjaGl2ZS1kb3dubG9hZHMuaHRtbCkKCiMjIyMgSW5zdGFsbCAmIFNldHVwIERhdGFiYXNlCi0gVGhpcyBhcHBsaWNhdGlvbiByZXF1aXJlcyBNeVNRTCA4LgotIFBsZWFzZSByZWZlciB0byB0aGUgZm9sbG93aW5nIGxpbmsgdG8gZG93bmxvYWQgYW5kIGluc3RhbGwgTXlTUUwtODogW015U1FMLThdKGh0dHBzOi8vZGV2Lm15c3FsLmNvbS9kb2MvcmVmbWFuLzguMC9lbi9pbnN0YWxsaW5nLmh0bWwpCi0gVG8gY3JlYXRlIGRhdGFiYXNlIGFuZCB1c2VyIHlvdSBjYW4gcnVuIGZvbGxvd2luZyBzY3JpcHQ6IFtkYl9zZXR1cC5zcWxdKC4vZG9jcy9kYXRhYmFzZS9kYl9zZXR1cC5zcWwpCgojIyMgUnVubmluZyB0aGUgYXBwbGljYXRpb24KLSBDbG9uZSB0aGUgcmVwb3NpdG9yeS4KLSBPcGVuIHRoZSBwcm9qZWN0IGluIEludGVsbGlKIElERUEgb3IgYW55IHN1aXRhYmxlIElERSBvZiB5b3VyIGNob2ljZS4KLSBBZGQgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBjb25maWd1cmF0aW9uczoKICAtIERCX0hPU1QKICAtIERCX05BTUUKICAtIERCX1BBU1NXT1JECiAgLSBEQl9QT1JUCiAgLSBEQl9VU0VSTkFNRQotIEluIEludGVsbGlKIElERUEsIGVudmlyb25tZW50IHZhcmlhYmxlcyBjYW4gYmUgYWRkZWQgZnJvbSBSdW4gLT4gRWRpdCBDb25maWd1cmF0aW9ucyAtPiBFbnZpcm9ubWVudCBWYXJpYWJsZXMKLSBSdW4gdGhlIHByb2plY3QuCgojIyMgQnVpbGQgJiBydW4gd2l0aCBEb2NrZXIgb24gVWJ1bnR1Ci0gSW5zdGFsbCBEb2NrZXIgZnJvbTogW0RvY2tlcl0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL2luc3RhbGwvdWJ1bnR1LykKLSBJbiB0ZXJtaW5hbCBzd2l0Y2ggdG8gcHJvamVjdCBkaXJlY3RvcnkuCi0gVXNlIGZvbGxvd2luZyBjb21tYW5kOiBgZG9ja2VyIGJ1aWxkIC10IHRvZG8tYXBpOjEuMC4wIC5gCi0gQWJvdmUgY29tbWFuZCB3aWxsIGJ1aWxkIHRoZSBpbWFnZS4KLSBOb3cgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCiAgYHN1ZG8gZG9ja2VyIHJ1biB0b2RvLWFwaToxLjAuMCAtZSAiREJfSE9TVD08REJfSE9TVD4iIC1lICJEQl9QT1JUPTxEQl9QT1JUPiIgLWUgIkRCX05BTUU9PERCX05BTUU+IiAtZSAiREJfVVNFUk5BTUU9PERCX1VTRVJOQU1FPiIgLWUgIkRCX1BBU1NXT1JEPTxEQl9QQVNTV09SRD4iIC1wIDgwODA6ODA4MCAtZCBgCi0gQ2hhbmdlIHRoZSBhY3R1YWwgdmFyaWFibGUgdmFsdWUgaW4gYW5nbGUgYnJhY2tldHMuCi0gSXQgd2lsbCBzcGluIHVwIGEgY29udGFpbmVyIHdoaWNoIGNhbiBiZSBhY2Nlc3NlZCBvbiBgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2AKCiMjIyBQZW5kaW5nIFdvcmsKLSBVbml0IFRlc3RpbmcKLSBIb3cgdG8gZGVwbG95IHdpdGggZG9ja2VyIG9uIHVidW50dQotIEhvdyB0byBkZXBsb3kgd2l0aCBBenVyZSBXZWIgQXBwIFNlcnZpY2UKLSBBdXRob3JpemF0aW9uICYgQXV0aGVudGljYXRpb24= readmeEtag: '"69a5e4e83f78d2b01ffab98173faa2b10bfc2845"' readmeLastModified: Sat, 07 Jan 2023 17:43:59 GMT repositoryId: 581242250 description: An API for creating and managing tasks. created: '2022-12-22T16:43:37Z' updated: '2023-12-31T03:17:39Z' language: Java archived: false stars: 4 watchers: 1 forks: 13 owner: mohitkumarsahni logo: https://avatars.githubusercontent.com/u/25563097?v=4 license: MIT repoEtag: '"71e36fe88e3d448b93e229606dcc480918328e161a6456525a64c7663fe19e4b"' repoLastModified: Sun, 31 Dec 2023 03:17:39 GMT category: - Parsers - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/aereal/go-openapi3-validation-middleware v3: true repositoryMetadata: base64Readme: >- IVtDSV1bY2ktc3RhdHVzXQpbIVtQa2dHb0Rldl1bcGtnLWdvLWRldi1iYWRnZV1dW3BrZy1nby1kZXZdCgojIGdvLW9wZW5hcGkzLXZhbGlkYXRpb24tbWlkZGxld2FyZQoKbmV0L2h0dHAgbWlkZGxld2FyZSB0byB2YWxpZGF0ZSBIVFRQIHJlcXVlc3RzL3Jlc3BvbnNlcyBhZ2FpbnN0IE9wZW5BUEkgMyBzY2hlbWEgdXNpbmcgW2tpbi1vcGVuYXBpXVtdLgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBzaApnbyBnZXQgZ2l0aHViLmNvbS9hZXJlYWwvZ28tb3BlbmFwaTMtdmFsaWRhdGlvbi1taWRkbGV3YXJlCmBgYAoKIyMgU3lub3BzaXMKCmBgYGdvCmltcG9ydCAoCgkibmV0L2h0dHAiCgoJImdpdGh1Yi5jb20vYWVyZWFsL2dvLW9wZW5hcGkzLXZhbGlkYXRpb24tbWlkZGxld2FyZSIKCSJnaXRodWIuY29tL2dldGtpbi9raW4tb3BlbmFwaS9yb3V0ZXJzIgopCgpmdW5jIG1haW4oKSB7Cgl2YXIgcm91dGVyIHJvdXRlcnMuUm91dGVyIC8vIG11c3QgYmUgYnVpbHQgd2l0aCBjZXJ0YWluIHdheQoJbXcgOj0gb3BlbmFwaTNtaWRkbGV3YXJlLldpdGhWYWxpZGF0aW9uKG9wZW5hcGkzbWlkZGxld2FyZS5NaWRkbGV3YXJlT3B0aW9uc3tSb3V0ZXI6IHJvdXRlcn0pCglodHRwLkhhbmRsZSgiLyIsIG13KGh0dHAuSGFuZGxlckZ1bmMoZnVuYyAodyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QpIHsKCQkvLyB0aGlzIGhhbmRsZXIgaXMgY2FsbGVkIGlmIHZhbGlkYXRpb24gc3VjY2VlZHMKCX0pKSkKfQpgYGAKCiMjIExpY2Vuc2UKClNlZSBMSUNFTlNFIGZpbGUuCgpbcGtnLWdvLWRldl06IGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2FlcmVhbC9nby1vcGVuYXBpMy12YWxpZGF0aW9uLW1pZGRsZXdhcmUKW3BrZy1nby1kZXYtYmFkZ2VdOiBodHRwczovL3BrZy5nby5kZXYvYmFkZ2UvYWVyZWFsL2dvLW9wZW5hcGkzLXZhbGlkYXRpb24tbWlkZGxld2FyZQpbY2ktc3RhdHVzXTogaHR0cHM6Ly9naXRodWIuY29tL2FlcmVhbC9nby1vcGVuYXBpMy12YWxpZGF0aW9uLW1pZGRsZXdhcmUvd29ya2Zsb3dzL0NJL2JhZGdlLnN2Zz9icmFuY2g9bWFpbgpba2luLW9wZW5hcGldOiBodHRwczovL2dpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpCg== readmeEtag: '"8579a1a295d819d4ee0ec05621b7e4e6a136729f"' readmeLastModified: Wed, 13 Dec 2023 12:23:59 GMT repositoryId: 375605593 description: >- net/http middleware to validate HTTP requests/responses against OpenAPI 3 schema using kin-openapi. created: '2021-06-10T07:13:33Z' updated: '2023-08-01T19:43:43Z' language: Go archived: false stars: 4 watchers: 3 forks: 1 owner: aereal logo: https://avatars.githubusercontent.com/u/87649?v=4 license: MIT repoEtag: '"e9b9bbb76987fbd5ffd3f226e5be2df8944eecebeb4943adaa6070c97bc987af"' repoLastModified: Tue, 01 Aug 2023 19:43:43 GMT foundInMaster: true category: Data Validators id: 8f5fa1fe1b8d8d7bed2b2dc8007802e9 - source: openapi3 tags repository: https://github.com/dna-evolutions/angular-demo-application-source v3: true repositoryMetadata: base64Readme: >- IyBUb3VyT3B0aW1pemVyIEFuZ3VsYXIgRGVtbyBBcHBsaWNhdGlvbiAtIFNvdXJjZQoKPGEgaHJlZj0iaHR0cHM6Ly9kbmEtZXZvbHV0aW9ucy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vZG9jcy5kbmEtZXZvbHV0aW9ucy5jb20vaW5kZXhyZXMvZG5hLXRlbXAtbG9nby5wbmciIHdpZHRoPSIxMTAiCnRpdGxlPSJETkEtRXZvbHV0aW9ucyIgYWx0PSJETkEtRXZvbHV0aW9ucyI+PC9hPgoKVG8gdXRpbGl6ZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRE5BLUV2b2x1dGlvbnMvRG9ja2VyLVJFU1QtVG91ck9wdGltaXplci9ibG9iL21haW4vUkVBRE1FLm1kI2hvdy10by1zdGFydC1qb3B0dG91cm9wdGltaXplci1kb2NrZXIiIHRhcmdldD0iX2JsYW5rIj5KT3B0VG91ck9wdGltaXplci1Eb2NrZXI8L2E+LCB3ZSBjcmVhdGVkIGFuIEFuZ3VsYXItRGVtbyBhcHBsaWNhdGlvbi4gVGhpcyBkZW1vIGFwcGxpY2F0aW9uIGlzIGhvc3RlZCBvbiA8YSBocmVmPSJodHRwczovL2F6dXJlLm1pY3Jvc29mdC5jb20vIiB0YXJnZXQ9Il9ibGFuayI+TWljcm9zb2Z0IEF6dXJlPC9hPiBhbmQgaXMgbWFkZSBhdmFpbGFibGUgdmlhIDxhIGhyZWY9Imh0dHBzOi8vZGVtby5kbmEtZXZvbHV0aW9ucy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9kZW1vLmRuYS1ldm9sdXRpb25zLmNvbTwvYT4uIEhlcmUgd2Ugd291bGQgbGlrZSB0byBzaGFyZSB0aGUgbGF0ZXN0IHNvdXJjZS1jb2RlIG9mIHRoaXMgcHJvamVjdC4gVGhpcyBpcyBub3QgYSBjbGFzc2ljYWwgIkhlbGxvIFdvcmxkIiBwcm9qZWN0LCBhcyBpdCBpcyB1c2luZyBtdWx0aXBsZSBkZXBlbmRlbmNpZXMgYW5kIGFkdmFuY2VkIGNvbmNlcHRzLiBIb3dldmVyLCBmZWVsIGZyZWUgdG8gZXhwbG9yZSB0aGUgcHJvamVjdCBhbmQgZXh0cmFjdCB3aGF0ZXZlciB5b3UgbmVlZCB0byBnZXQgc3RhcnRlZCB3aXRoIEpPcHQuCgoqKlVwZGF0ZSBKdWx5IDEydGggMjAyNDoqKgoKRnJvbSBub3cgb24sIHRoZSBBbmd1bGFyIERlbW8gdXNlcyBBbmd1bGFyIDE4LiBXZSBhbHNvIHVwZGF0ZWQvdXBncmFkZWQgbXVsdGlwbGUgb3RoZXIgZGVwZW5kZW5jaWVzLiBUaGUgZ2VuZXJhdGVkIG1vZGVscyBhcmUgdXNpbmcgSk9wdC5Ub3VyT3B0aW1pemVyIHdpdGggKip2ZXJzaW9uIDEuMi43IG9yIGhpZ2hlcioqLgoKKipVcGRhdGUgSmFudWFyeSA3dGggMjAyNDoqKgoKRnJvbSBub3cgb24sIHRoZSBBbmd1bGFyIERlbW8gdXNlcyBBbmd1bGFyIDE3LiBXZSBhbHNvIHVwZGF0ZWQvdXBncmFkZWQgbXVsdGlwbGUgb3RoZXIgZGVwZW5kZW5jaWVzLiBUaGUgZ2VuZXJhdGVkIG1vZGVscyBhcmUgdXNpbmcgSk9wdC5Ub3VyT3B0aW1pemVyIHdpdGggKip2ZXJzaW9uIDEuMi42IG9yIGhpZ2hlcioqLiBJbiBhZGRpdGlvbiwgYSAiZnJlZSBtb3ZpbmcgZXhhbXBsZSIgd2FzIGFkZGVkLiBOb2RlcyBhbmQgUmVzb3VyY2VzIGNhbiBiZSBmcmVlbHkgcG9zaXRpb25lZCB2aWEgZHJhZyBhbmQgZHJvcC4KCioqVXBkYXRlIEp1bmUgOHRoIDIwMjE6KioKCkZyb20gbm93IG9uLCB0aGUgQW5ndWxhciBEZW1vIHVzZXMgb3VyIG5ldyBzd2FnZ2VyIGRlZmluaXRpb24gKHNlZSAKPGEgaHJlZj0iaHR0cHM6Ly9zd2FnZ2VyLmRuYS1ldm9sdXRpb25zLmNvbS92My9hcGktZG9jcy9PcHRpbWl6ZSIgdGFyZ2V0PSJfYmxhbmsiPnN3YWdnZXIuZG5hLWV2b2x1dGlvbnMuY29tL3YzL2FwaS1kb2NzL09wdGltaXplPC9hPikuIFRoaXMgcmVxdWlyZXMgdXNpbmcgSk9wdC5Ub3VyT3B0aW1pemVyIHdpdGggKip2ZXJzaW9uIDEuMC4zIG9yIGhpZ2hlcioqLiBUaGlzIHN3YWdnZXIgZGVmaW5pdGlvbiBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IGl0IGVuYWJsZXMgYWxtb3N0IGFsbCBmZWF0dXJlcyBvZiBKT3B0IGF0IHRoZSBSRVNULWVuZHBvaW50LgoKKipVcGRhdGUgMjFzdCBTZXB0ZW1iZXIgMjAyMToqKgpUaGUgcmVwbGFjZW1lbnQgZGVzY3JpYmVkIGluICpVcGRhdGUgSnVuZSAyMDIxKiBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LiBIb3dldmVyLCBtb2RlbHMgYWxyZWFkeSBjcmVhdGVkIG5lZWQgdG8gYmUgcmVjcmVhdGVkLiBGdXJ0aGVyLCB0aGUgbGVnYWN5IGVuZHBvaW50IGlzIGRyb3BwZWQsIGFuZCB0aGUgbWFpbi1lbmRwb2ludCBjaGFuZ2VkIHRvIDxhIGhyZWY9Imh0dHBzOi8vc3dhZ2dlci5kbmEtZXZvbHV0aW9ucy5jb20vdjMvYXBpLWRvY3MvT3B0aW1pemUiIHRhcmdldD0iX2JsYW5rIj5zd2FnZ2VyLmRuYS1ldm9sdXRpb25zLmNvbS92My9hcGktZG9jcy9PcHRpbWl6ZTwvYT4uCgotLS0KCiMgQ29udGFjdAoKSWYgeW91IG5lZWQgYW55IGhlbHAsIHBsZWFzZSBjb250YWN0IHVzIHZpYSBvdXIgY29tcGFueSB3ZWJzaXRlIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmRuYS1ldm9sdXRpb25zLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnd3dy5kbmEtZXZvbHV0aW9ucy5jb208L2E+IG9yIHdyaXRlIGFuIGVtYWlsIHRvIDxhIGhyZWY9Im1haWx0bzppbmZvQGRuYS1ldm9sdXRpb25zLmNvbSI+aW5mb0BkbmEtZXZvbHV0aW9ucy5jb208L2E+LgoKLS0tCgojIyBGdXJ0aGVyIERvY3VtZW50YXRpb24gYW5kIGhlbHBmdWwgTGlua3MKCk91ciBjb250ZW50OgotIEZ1cnRoZXIgZG9jdW1lbnRhdGlvbiAtIDxhIGhyZWY9Imh0dHBzOi8vZG9jcy5kbmEtZXZvbHV0aW9ucy5jb20iIHRhcmdldD0iX2JsYW5rIj5kb2NzLmRuYS1ldm9sdXRpb25zLmNvbTwvYT4KLSBTcGVjaWFsIGZlYXR1cmVzCS0gPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmRuYS1ldm9sdXRpb25zLmNvbS9vdmVydmlld19kb2NzL3NwZWNpYWxfZmVhdHVyZXMvU3BlY2lhbF9GZWF0dXJlcy5odG1sIiB0YXJnZXQ9Il9ibGFuayI+T3ZlcnZpZXcgb2Ygc3BlY2lhbCBmZWF0dXJlczwvYT4KLSBPdXIgY29tcGFueSB3ZWJzaXRlIC0gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZG5hLWV2b2x1dGlvbnMuY29tIiB0YXJnZXQ9Il9ibGFuayI+d3d3LmRuYS1ldm9sdXRpb25zLmNvbTwvYT4KLSBPdXIgb2ZmaWNpYWwgcmVwb3NpdG9yeSAtIDxhIGhyZWY9Imh0dHBzOi8vcHVibGljLnJlcG8uZG5hLWV2b2x1dGlvbnMuY29tIiB0YXJnZXQ9Il9ibGFuayI+cHVibGljLnJlcG8uZG5hLWV2b2x1dGlvbnMuY29tPC9hPgotIE91ciBvZmZpY2lhbCBKYXZhRG9jcyAtIDxhIGhyZWY9Imh0dHBzOi8vcHVibGljLmphdmFkb2MuZG5hLWV2b2x1dGlvbnMuY29tIiB0YXJnZXQ9Il9ibGFuayI+cHVibGljLmphdmFkb2MuZG5hLWV2b2x1dGlvbnMuY29tPC9hPgotIE91ciBZb3VUdWJlIGNoYW5uZWwgLSA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDemZaakpMcDVScms3VTJVS3NPZjhGdyIgdGFyZ2V0PSJfYmxhbmsiPkROQSBUdXRvcmlhbHM8L2E+Ci0gT3VyIERvY2tlckh1YiBjaGFubmVsIC0gPGEgaHJlZj0iaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS91L2RuYWV2b2x1dGlvbnMiIHRhcmdldD0iX2JsYW5rIj5ETkEgRG9ja2VySHViPC9hPgotIE91ciBMaW5rZWRJbiBjaGFubmVsIC0gPGEgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvZG5hLWV2b2x1dGlvbnMvIiB0YXJnZXQ9Il9ibGFuayI+RE5BIExpbmtlZEluPC9hPgoKVGhpcmQtcGFydHk6Ci0gPGEgaHJlZj0iaHR0cHM6Ly9hbmd1bGFyLmlvL2NsaSIgdGFyZ2V0PSJfYmxhbmsiPkFuZ3VsYXIgQ0xJPC9hPgotIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpIiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBBcGkgR2VuZXJhdG9yPC9hPgotIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm1va2thcHBzLmRlL2Jsb2cvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItYW5kLXNwcmluZy1jb2RlLWZyb20tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi8iIHRhcmdldD0iX2JsYW5rIj5HZW5lcmF0ZSBBbmd1bGFyIGFuZCBTcHJpbmcgY29kZSBmcm9tIE9wZW5BcGk8L2E+Ci0gPGEgaHJlZj0iaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvLyIgdGFyZ2V0PSJfYmxhbmsiPkFuZ3VsYXIgTWF0ZXJpYWw8L2E+CgotLS0KCiMjIE92ZXJ2aWV3CgoqIFtHZW5lcmFsIC0gRE5BIERlbW8gQXBwbGljYXRpb25dKCNnZW5lcmFsLWRuYS1kZW1vLWFwcGxpY2F0aW9uKQoqIFtTZXJ2ZSB3aXRoIERvY2tlciAocmVjb21tZW5kZWQpXSgjc2VydmUtd2l0aC1kb2NrZXItcmVjb21tZW5kZWQpCiogW1NlcnZlIHdpdGhvdXQgRG9ja2VyXSgjc2VydmUtd2l0aG91dC1kb2NrZXIpCiogW1VwZGF0ZS9HZW5lcmF0ZSB0aGUgdHlwZXNjcmlwdCBtb2RlbHMgdXNpbmcgT3BlbkFwaSBHZW5lcmF0b3JdKCN1cGRhdGUtZ2VuZXJhdGUtdGhlLXR5cGVzY3JpcHQtbW9kZWxzLXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yKQoqIFtWaWRlbyAtIEhvdyB0byB1c2UgdGhlIERlbW8tQXBwbGljYXRpb25dKCN2aWRlby1ob3ctdG8tdXNlLXRoZS1kZW1vLWFwcGxpY2F0aW9uKQoqIFtXaGF0J3MgbmV4dD9dKCN3aGF0LXMtbmV4dCkKCi0tLQoKIyMgR2VuZXJhbCAtIEROQSBEZW1vIEFwcGxpY2F0aW9uCgpUaGUgYW5ndWxhci1kZW1vIGFwcGxpY2F0aW9uIHdhcyBnZW5lcmF0ZWQgd2l0aCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaSIgdGFyZ2V0PSJfYmxhbmsiPkFuZ3VsYXIgQ0xJPC9hPi4gRnVydGhlciwgd2UgdXRpbGl6ZWQgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvciIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5BcGkgR2VuZXJhdG9yPC9hPiB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aGUgcmVxdWlyZWQgVHlwZVNjcmlwdCBtb2RlbHMgZnJvbSB0aGUgT3BlbkFwaSBkZWZpbml0aW9uIHByb3ZpZGVkIGZyb20gb3VyIFN3YWdnZXIgZW5kcG9pbnQgb2YgSk9wdFRvdXJPcHRpbWl6ZXIuCgo8aW1nIHNyYz0iaHR0cHM6Ly9kbmEtZXZvbHV0aW9ucy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjAvMTEvaG93LXRvLXZpZGVvLXByZXYuZ2lmIiB3aWR0aD0iNDUwIgp0aXRsZT0iRE5BLUV2b2x1dGlvbnMgRGVtbyBBcHBsaWNhdGlvbiBQcmV2aWV3IiBhbHQ9IkROQS1Fdm9sdXRpb25zIERlbW8gQXBwbGljYXRpb24gUHJldmlldyI+CgpbIVtPcGVuIGluIFN0YWNrQmxpdHpdKGh0dHBzOi8vZGV2ZWxvcGVyLnN0YWNrYmxpdHouY29tL2ltZy9vcGVuX2luX3N0YWNrYmxpdHouc3ZnKV0oaHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9naXRodWIvRE5BLUV2b2x1dGlvbnMvQW5ndWxhci1EZW1vLUFwcGxpY2F0aW9uLVNvdXJjZSkKCi0tLQoKIyMgU2VydmUgd2l0aCBEb2NrZXIgKHJlY29tbWVuZGVkKQoKV2UgcmVjb21tZW5kIHNlcnZpbmcgdGhlIERlbW8gQXBwbGljYXRpb24gd2l0aCBkb2NrZXIsIGVzcGVjaWFsbHkgd2hlbiB5b3UgYXJlIG5ldyB0byBBbmd1bGFyLiBUaGUgZG9ja2VyIGJ1aWxkIHdpbGwgaW5zdGFsbCBhbGwgdGhlIHJlcXVpcmVkIGRlcGVuZGVuY2llcyBmb3IgeW91LiBZb3UgY2FuIG1vZGlmeSB0aGUgY29kZSBpbiB5b3VyIGRlc2lyZWQgSURFIGFuZCBidWlsZCB5b3VyIGN1c3RvbSBpbWFnZS4KCiMjIyBQcmVyZXF1aXNpdGVzCgoxKSBJbnN0YWxsIGEgRG9ja2VyIGVudmlyb25tZW50IGFuZCBtYWtlIHN1cmUgYGBkb2NrZXJgYCBpcyBhdmFpbGFibGUgaW4geW91ciBjb21tYW5kIGxpbmUuCgoyKSBFdmVuIHRob3VnaCB0aGUgRGVtby1BcHBsaWNhdGlvbiBuZWVkcyBubyBUb3VyT3B0aW1pemVyIHRvIHN0YXJ0LCB5b3UgbmVlZCB0byBwcm92aWRlIGEgcnVubmluZyBUb3VyT3B0aW1pemVyIGluc3RhbmNlIHRvIHRlc3QgdGhlIGZ1bGwgZnVuY3Rpb25hbGl0eSBvZiB0aGUgRGVtby1BcHBsaWNhdGlvbi4gUGxlYXNlIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gb24gaG93IHRvIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ETkEtRXZvbHV0aW9ucy9Eb2NrZXItUkVTVC1Ub3VyT3B0aW1pemVyL2Jsb2IvbWFpbi9SRUFETUUubWQjaG93LXRvLXN0YXJ0LWpvcHR0b3Vyb3B0aW1pemVyLWRvY2tlciIgdGFyZ2V0PSJfYmxhbmsiPnN0YXJ0IHRoZSBUb3VyT3B0aW1pemVyPC9hPi4KCgojIyMgU3RhcnQgdGhlIGltYWdlCgpQbGVhc2UgdmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yZXBvc2l0b3J5L2RvY2tlci9kbmFldm9sdXRpb25zL2pvcHRfZGVtb2FwcGxpY2F0aW9uL2dlbmVyYWwiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2h1Yi5kb2NrZXIuY29tL3JlcG9zaXRvcnkvZG9ja2VyL2RuYWV2b2x1dGlvbnMvam9wdF9kZW1vYXBwbGljYXRpb24vZ2VuZXJhbDwvYT4gYW5kIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGlmIHlvdSB3YW50IHRvIHN0YXJ0IHRoZSBwcmUtYnVpbHQgaW1hZ2Ugd2l0aG91dCB1c2luZyB0aGUgc291cmNlcy4gCgojIyMgQnVpbGQgdGhlIGltYWdlIGZyb20gc2NyYXRjaAoKMSkgQ2xvbmUgdGhpcyByZXBvc2l0b3J5IGFuZCBvcGVuIGl0IGluIHlvdXIgZGVzaXJlZCBJREUgKGUuZy4gPGEgaHJlZj0iaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vIiB0YXJnZXQ9Il9ibGFuayI+VmlzdWFsIFN0dWRpbyBDb2RlPC9hPikgYW5kIG1vZGlmeSB0aGUgY29kZSBpZiB5b3UgbGlrZS4KMikgPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8iIHRhcmdldD0iX2JsYW5rIj5CdWlsZDwvYT4gdGhlIGRvY2tlciBpbWFnZSB1c2luZyB0aGUgYGBEb2NrZXJmaWxlYGAgaW4gdGhlIG1haW4gcHJvamVjdCBwYXRoLCBieSBydW5uaW5nOgoKQVRURU5USU9OOiBOb2RlLmpzIGR1cmluZyB0aGUgYnVpbGQgcHJvY2VzcyBjYW4gYmUgcXVpdGUgbWVtb3J5IGNvbnN1bWluZy4gU28gbWFrZSBzdXJlIHlvdXIgZG9ja2VyIGVudmlyb25tZW50IGhhcyBhdCBsZWFzdCA0IEdCIG9mIFJhbS4gCgpgYGB4bWwKZG9ja2VyIGJ1aWxkIC10IGRuYV9jdXN0b21fZGVtb19pbWFnZSAuCmBgYAoKIyMjIFJ1biBhIGNvbnRhaW5lcgoKMSkgUnVuIHRoZSBpbWFnZSBiYXNlZCBvbiB5b3VyIGZyZXNobHkgY3JlYXRlZCBpbWFnZToKCmBgYHhtbApkb2NrZXIgcnVuIC1kIC0tcm0gXAoJLS1uYW1lIG15Sk9wdFRvdXJPcHRpbWl6ZXJEZW1vIFwKCS1wIDMwMDA6ODAgXAoJLXYgJHtQV0R9Oi91c3Ivc3JjL2FwcCBcCgktZSBKT1BUX1NXQUdHRVJfSE9TVD0iaHR0cDovL2xvY2FsaG9zdCIgXAoJLWUgSk9QVF9TV0FHR0VSX1BPUlQ9IjgwODEiIFwKCWRuYV9jdXN0b21fZGVtb19pbWFnZQpgYGAKClNhbWUgY29tbWFuZCBhcyBhIHNpbmdsZSBsaW5lOgoKYGBgeG1sCmRvY2tlciBydW4gLWQgLS1ybSAtLW5hbWUgbXlKT3B0VG91ck9wdGltaXplckRlbW8gLXAgMzAwMDo4MCAtdiAke1BXRH06L3Vzci9zcmMvYXBwIC1lIEpPUFRfU1dBR0dFUl9IT1NUPSJodHRwOi8vbG9jYWxob3N0IiAtZSBKT1BUX1NXQUdHRVJfUE9SVD0iODA4MSIgZG5hX2N1c3RvbV9kZW1vX2ltYWdlCmBgYAoKT3BlbiA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjMwMDAiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vbG9jYWxob3N0OjMwMDA8L2E+LCBhbmQgeW91IHNob3VsZCBzZWUgdGhlIERlbW8gQXBwbGljYXRpb24uIElmIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ETkEtRXZvbHV0aW9ucy9Eb2NrZXItUkVTVC1Ub3VyT3B0aW1pemVyL2Jsb2IvbWFpbi9SRUFETUUubWQjaG93LXRvLXN0YXJ0LWpvcHR0b3Vyb3B0aW1pemVyLWRvY2tlciIgdGFyZ2V0PSJfYmxhbmsiPkpPcHRUb3VyT3B0aW1pemVyPC9hPiBpcyBub3QgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZCwgeW91IGNhbiAqKk5PVCoqIHN0YXJ0IGFueSBPcHRpbWl6YXRpb24uIEhvd2V2ZXIsIHlvdSBzaG91bGQgc2VlIHRoZSBzdGFydGluZyBwYWdlIG9mIHRoZSBEZW1vIEFwcGxpY2F0aW9uLiBCeSBkZWZhdWx0LCB0aGUgVG91ck9wdGltaXplciBpcyBhc3N1bWVkIHRvIGJlIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwODEiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vbG9jYWxob3N0OjgwODE8L2E+IGFuZCBpcyBzdGFydGVkIHdpdGggdGhlICJjb3JzIiBwcm9maWxlLiBZb3UgY2FuIGFkanVzdCB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgaG9zdCBhbmQgcG9ydCBpbiB0aGUgYGBlbnZpcm9ubWVudC50c2BgIGZpbGUuCgpZb3UgY2FuIHByb3ZpZGUgdGhyZWUgZW52aXJvbm1lbnQgdmFyaWFibGVzOgoqIGBgSk9QVF9TV0FHR0VSX0hPU1RgYDogVGhlIGFkZHJlc3Mgb2YgeW91ciBydW5uaW5nIFRvdXJPcHRpbWl6ZXIuIElmIHlvdSBydW4gdGhlIGRvY2tlciBpbWFnZSBvZiB0aGUgVG91ck9wdGltaXplciBsb2NhbGx5LCB0aGlzIGlzIGBgaHR0cDovL2xvY2FsaG9zdGBgLgoqIGBgSk9QVF9TV0FHR0VSX1BPUlRgYDogVGhlIHBvcnQgb2YgeW91ciBydW5uaW5nIFRvdXJPcHRpbWl6ZXIuIElmIHlvdSBydW4gdGhlIGRvY2tlciBpbWFnZSBvZiB0aGUgVG91ck9wdGltaXplciBsb2NhbGx5LCB0aGlzIGlzIGBgODA4MWBgLgoqIGBgSU5QUk9EVUNUSU9OYGA6IFRoaXMgdmFsdWUgaXMgYGBmYWxzZWBgIGJ5IGRlZmF1bHQuIElmIHlvdSBhcmUgY2hhbmdpbmcgaXQgdG8gYGB0cnVlYGAsIG91ciBvZmZpY2lhbCBUb3VyT3B0aW1pemVyIGVuZHBvaW50IGlzIHVzZWQgYnkgZGVmYXVsdC4gSG93ZXZlciwgKip0cnkgdG8gYXZvaWQgdGhpcyoqLCBhcyB3ZSBhcmUgZ29pbmcgdG8gYmxvY2sgSVBzIHdpdGggdG9vIG1hbnkgcmVxdWVzdHMuIEZ1cnRoZXIsIG91ciBvZmZpY2lhbCBlbmRwb2ludCBoYXMgYSBsaW1pdGF0aW9uIG9mIDIwIGVsZW1lbnRzIHRvIGJlIG9wdGltaXplZCwgcmVnYXJkbGVzcyBvZiB5b3VyIGxpY2Vuc2UuIFlvdSBjYW4gY2hhbmdlIHRoZSBwcm9kdWN0aW9uIGVudmlyb25tZW50IHNldHRpbmdzIGJ5IGVkaXRpbmcgdGhlIGZpbGU6IGBgZW52aXJvbm1lbnQucHJvZC50c2BgLgoKCi0tLQoKIyMgU2VydmUgd2l0aG91dCBEb2NrZXIKCk9mIGNvdXJzZSwgeW91IGNhbiBob3N0IHRoZSBEZW1vLUFwcGxpY2F0aW9uIEFuZ3VsYXIgUHJvamVjdCBsb2NhbGx5IHdpdGhvdXQgdXNpbmcgZG9ja2VyLiBIb3dldmVyLCB5b3UgaGF2ZSB0byBtYWtlIHN1cmUgeW91ciBlbnZpcm9ubWVudCBpcyBzZXQgdXAgY29ycmVjdGx5LgoKIyMjIFByZXJlcXVpc2l0ZXMgKGZvciB1c2luZyBgYG5wbWBgIGFuZCBgYG5nYGApCgoxKSBGaXJzdCwgeW91IG5lZWQgdG8gbWFrZSBzdXJlIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9nZXQtbnBtIiB0YXJnZXQ9Il9ibGFuayI+bnBtIChOb2RlIFBhY2thZ2UgTWFuYWdlcik8L2E+IGlzIGluc3RhbGxlZC4gICAKCjIpIEZ1cnRoZXIsIHlvdSBuZWVkIHRvIGluc3RhbGwgPGEgaHJlZj0iaHR0cHM6Ly9hbmd1bGFyLmlvL2NsaSIgdGFyZ2V0PSJfYmxhbmsiPm5nIChBbmd1bGFyIENMSSk8L2E+CgozKSBFdmVuIHRob3VnaCB0aGUgRGVtby1BcHBsaWNhdGlvbiBuZWVkcyBubyBUb3VyT3B0aW1pemVyIHRvIHN0YXJ0LCB5b3UgbmVlZCB0byBwcm92aWRlIGEgcnVubmluZyBUb3VyT3B0aW1pemVyIGluc3RhbmNlIHRvIHRlc3QgdGhlIGZ1bGwgZnVuY3Rpb25hbGl0eSBvZiB0aGUgRGVtby1BcHBsaWNhdGlvbi4gUGxlYXNlIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gb24gaG93IHRvIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ETkEtRXZvbHV0aW9ucy9Eb2NrZXItUkVTVC1Ub3VyT3B0aW1pemVyL2Jsb2IvbWFpbi9SRUFETUUubWQjaG93LXRvLXN0YXJ0LWpvcHR0b3Vyb3B0aW1pemVyLWRvY2tlciIgdGFyZ2V0PSJfYmxhbmsiPnN0YXJ0IHRoZSBUb3VyT3B0aW1pemVyPC9hPi4KCgojIyMgU2VydmUgdGhlIERlbW8gQXBwbGljYXRpb24KCjEuIENsb25lIHRoaXMgcmVwb3NpdG9yeSBhbmQgb3BlbiBpdCBpbiB5b3VyIGRlc2lyZWQgSURFIChlLmcuIDxhIGhyZWY9Imh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tLyIgdGFyZ2V0PSJfYmxhbmsiPlZpc3VhbCBTdHVkaW8gQ29kZTwvYT4pIGlmIHlvdSBsaWtlIHRvIG1vZGlmeSB0aGUgY29kZS4KCjIuIFlvdSBjYW4gc2VydmUgdGhlIHByb2plY3QgYnkgdXNpbmcgYGBuZyBzZXJ2ZWBgIGZyb20gd2l0aGluIHRoZSBwcm9qZWN0IHBhdGguCgozLiBPcGVuIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTAwMCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9sb2NhbGhvc3Q6NTAwMDwvYT4sIGFuZCB5b3Ugc2hvdWxkIHNlZSB0aGUgRGVtbyBBcHBsaWNhdGlvbi4gSWYgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0ROQS1Fdm9sdXRpb25zL0RvY2tlci1SRVNULVRvdXJPcHRpbWl6ZXIvYmxvYi9tYWluL1JFQURNRS5tZCNob3ctdG8tc3RhcnQtam9wdHRvdXJvcHRpbWl6ZXItZG9ja2VyIiB0YXJnZXQ9Il9ibGFuayI+Sk9wdFRvdXJPcHRpbWl6ZXI8L2E+IGlzIG5vdCBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kLCB5b3UgY2FuICoqTk9UKiogc3RhcnQgYW55IE9wdGltaXphdGlvbi4gSG93ZXZlciwgeW91IHNob3VsZCBzZWUgdGhlIHN0YXJ0aW5nIHBhZ2Ugb2YgdGhlIERlbW8gQXBwbGljYXRpb24uIEJ5IGRlZmF1bHQsIHRoZSBUb3VyT3B0aW1pemVyIGlzIGFzc3VtZWQgdG8gYmUgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MTwvYT4gYW5kIGlzIHN0YXJ0ZWQgd2l0aCB0aGUgImNvcnMiIHByb2ZpbGUuIFlvdSBjYW4gYWRqdXN0IHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciBob3N0IGFuZCBwb3J0IGluIHRoZSBgYGVudmlyb25tZW50LnRzYGAgZmlsZS4gVGhlIGRlZmF1bHQgcG9ydCwgdGhlIERlbW8gQXBwbGljYXRpb24gaXMgaG9zdGVkLCBpcyBwb3J0IDUwMDAsIHlvdSBjYW4gY2hhbmdlIHRoaXMgYmVoYXZpb3IgaW4gdGhlIGBgYW5ndWxhci5qc29uYGAuCgooUGxlYXNlIGFsc28gcmVhZCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9hbmd1bGFyLmlvL2NsaS9idWlsZCIgdGFyZ2V0PSJfYmxhbmsiPkFuZ3VsYXIgRG9jdW1lbnRhdGlvbjwvYT4gdG8gZ2V0IGZ1cnRoZXIgaGVscCBvbiBob3cgdG8gYnVpbGQgcHJvamVjdHMuKQoKCi0tLQojIyBVcGRhdGUvR2VuZXJhdGUgdGhlIFR5cGVTY3JpcHQgbW9kZWxzIHVzaW5nIE9wZW5BcGkgR2VuZXJhdG9yCgpJZiB5b3Ugd291bGQgbGlrZSB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoZSBtb2RlbHMgYmFzZWQgb24gdGhlIDxhIGhyZWY9Imh0dHBzOi8vc3dhZ2dlci5kbmEtZXZvbHV0aW9ucy5jb20vdjMvYXBpLWRvY3MiIHRhcmdldD0iX2JsYW5rIj5sYXRlc3QgU3dhZ2dlciBBUEktRG9jczwvYT4gb2YgdGhlCjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ETkEtRXZvbHV0aW9ucy9Eb2NrZXItUkVTVC1Ub3VyT3B0aW1pemVyIiB0YXJnZXQ9Il9ibGFuayI+VG91ck9wdGltaXplcjwvYT4sIHlvdSB3aWxsIGhhdmUgdG8gaW5zdGFsbCA8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5hcGktR2VuZXJhdG9yLUNMSTwvYT4uCgpOb3RlOiBPcGVuQXBpR2VuZXJhdG9yIGNhbiBhbHNvIGJlIHJ1biBhcyBEb2NrZXIgY29udGFpbmVyIG9yIE1hdmVuIGRlcGVkZW5jeS4KCiMjIyBDcmVhdGUgYSB0b3Vyb3B0aW1pemVyX3NwZWMuanNvbiBmaWxlClRoZSBgYHRvdXJvcHRpbWl6ZXJfc3BlYy5qc29uYGAgY29udGFpbmluZyB0aGUgQVBJLURvY3MgaXMgbm90IHBhcnQgb2YgdGhpcyByZXBvc2l0b3J5LiBDb3B5IGFuZCBwYXN0ZSB0aGUgU3dhZ2dlciBkZWZpbml0aW9uIHVuZGVyIDxhIGhyZWY9Imh0dHBzOi8vc3dhZ2dlci5kbmEtZXZvbHV0aW9ucy5jb20vdjMvYXBpLWRvY3MiIHRhcmdldD0iX2JsYW5rIj5zd2FnZ2VyLmRuYS1ldm9sdXRpb25zLmNvbS92My9hcGktZG9jczwvYT4gKG9yIGZyb20gPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDgxL3YzL2FwaS1kb2NzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2xvY2FsaG9zdDo4MDgxL3YzL2FwaS1kb2NzPC9hPiBvciA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRE5BLUV2b2x1dGlvbnMvSmF2YS1SRVNULUNsaWVudC1FeGFtcGxlcy90cmVlL21hc3Rlci9zcmMvbWFpbi9yZXNvdXJjZXMvc3dhZ2dlci90b3Vyb3B0aW1pemVyL3NwZWMvdG91cm9wdGltaXplcl9zcGVjLmpzb24iIHRhcmdldD0iX2JsYW5rIj5HaXRIdWI8L2E+KSBpbnRvIGEgbmV3IGZpbGUgY2FsbGVkIGBgdG91cm9wdGltaXplcl9zcGVjLmpzb25gYC4KCioqVXBkYXRlIEp1bmUgMjAyMToqKgoKTmF0aXZlIEpTT04gaXMgYWxzbyBzdXBwb3J0ZWQgZnJvbSBub3cgb24uCgojIyMgTWFrZSB0aGUgdG91cm9wdGltaXplcl9zcGVjLmpzb24gYXZhaWxhYmxlCgpXaXRoaW4gdGhlIGZpbGUgYGBwYWNrYWdlLmpzb25gYCBvZiB0aGUgRGVtby1BcHBsaWNhdGlvbiBwcm9qZWN0LCB0aGUgc2NyaXB0IGBgbnBtIHJ1biBnZW5lcmF0ZTphcGlgYCBpcyBkZWZpbmVkLiBJdCBleHBlY3RzIHRoZSBgYHRvdXJvcHRpbWl6ZXJfc3BlYy5qc29uYGAgdG8gYmUgc2F2ZWQgYXQgYGAuLi9vcGVuYXBpL3RvdXJvcHRpbWl6ZXJfc3BlYy5qc29uYGAuIE1lYW5pbmcsIHlvdSB3aWxsIGhhdmUgdG8gY3JlYXRlIGEgbmV3IGZvbGRlciBjYWxsZWQgYGBvcGVuYXBpYGAgbmV4dCB0byB5b3VyIHByb2plY3QgZm9sZGVyIChOT1QgaW5zaWRlIHRoZSBwcm9qZWN0IGZvbGRlciBpdHNlbGYpIGFuZCBzYXZlIHlvdXIgYGB0b3Vyb3B0aW1pemVyX3NwZWMuanNvbmBgIGluc2lkZSB0aGUgYGBvcGVuYXBpYGAgZm9sZGVyLgoKSWYgdGhpcyBpcyBkb25lLCB5b3UgY2FuIGNhbGw6CgpgYGB4bWwKbnBtIHJ1biBnZW5lcmF0ZTphcGkKYGBgCgp0byB1cGRhdGUvZ2VuZXJhdGUgdGhlIFR5cGVTY3JpcHQgbW9kZWxzLgoKLS0tCgojIyBWaWRlbyAtIEhvdyB0byB1c2UgdGhlIERlbW8tQXBwbGljYXRpb24KCkNsaWNrIHRvIG9wZW4gdmlkZW86Cgo8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTJxN2NZWUFyS204ICIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS8ycTdjWVlBckttOC9tYXhyZXNkZWZhdWx0LmpwZyIgd2lkdGg9IjUwMCIKdGl0bGU9IlR1dG9yaWFsIC0gSG93IHRvIHVzZSB0aGUgRGVtby1BcHBsaWNhdGlvbiIgYWx0PSJUdXRvcmlhbCAtIEhvdyB0byB1c2UgdGhlIERlbW8tQXBwbGljYXRpb24iPjwvYT4KLS0tCgojIyBXaGF0J3MgbmV4dD8KCldlIGFyZSBnb2luZyB0byBwdWJsaXNoIHNvbWUgdHV0b3JpYWxzIG9uICJob3cgdG8gY3JlYXRlIHlvdXIgb3duIGV4YW1wbGVzIi4gRnVydGhlciwgd2UgYXJlIGdvaW5nIHRvIGdpdmUgc29tZSBtb3JlIGluc2lkZXMgb24gdGhlIHN0cnVjdHVyZSBvZiB0aGUgRGVtby1BcHBsaWNhdGlvbi4KCi0tLQoKIyMgVE9ETydzCgoqIEltcHJvdmUgaW4tY29kZSBkb2N1bWVudGF0aW9uLgoKLS0tCgojIyBBZ3JlZW1lbnQKRm9yIHJlYWRpbmcgb3VyIGxpY2Vuc2UgYWdyZWVtZW50IGFuZCBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBsaWNlbnNlIHBsYW5zLCBwbGVhc2UgdmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZG5hLWV2b2x1dGlvbnMuY29tIiB0YXJnZXQ9Il9ibGFuayI+d3d3LmRuYS1ldm9sdXRpb25zLmNvbTwvYT4uCgotLS0gCgojIyBBdXRob3JzCkEgcHJvZHVjdCBieSBbZG5hLWV2b2x1dGlvbnMgXShodHRwczovL3d3dy5kbmEtZXZvbHV0aW9ucy5jb20pJmNvcHk7Cgo= readmeEtag: '"b9882c45218afe3d9d2a74d4a655b17a77916e2c"' readmeLastModified: Tue, 20 Aug 2024 13:36:19 GMT repositoryId: 340891355 description: The latest source code of our Angular-Demo Application. created: '2021-02-21T12:03:16Z' updated: '2024-08-20T13:36:33Z' language: TypeScript archived: false stars: 4 watchers: 1 forks: 2 owner: DNA-Evolutions logo: https://avatars.githubusercontent.com/u/62150493?v=4 repoEtag: '"8d7631e966cdd2906dc07729ad20f0d703b9162d5fac3c92037ecdf03e8b68ae"' repoLastModified: Tue, 20 Aug 2024 13:36:33 GMT foundInMaster: true category: Server Implementations id: 32f0648c116dcc86eaec5b5beec2a428 - source: openapi3 tags repository: https://github.com/danielgtaylor/sdt v3: true repositoryMetadata: base64Readme: >- IyBTdHJ1Y3R1cmVkIERhdGEgVGVtcGxhdGVzCgpbIVtHbyBSZWZlcmVuY2VdKGh0dHBzOi8vcGtnLmdvLmRldi9iYWRnZS9naXRodWIuY29tL2RhbmllbGd0YXlsb3Ivc2R0LnN2ZyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmllbGd0YXlsb3Ivc2R0KSBbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9zZHQpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9zZHQpICFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9zZHQvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55YW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbikgWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbGd0YXlsb3Ivc2R0L2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj1LQjBRRDBINkhQKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbGd0YXlsb3Ivc2R0KSBbIVtWUyBDb2RlIEV4dGVuc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS92c2NvZGUtZXh0ZW5zaW9uLWJsdWUpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9ZGFuaWVsZ3RheWxvci5zdHJ1Y3R1cmVkLWRhdGEtdGVtcGxhdGVzKQoKU3RydWN0dXJlZCBkYXRhIHRlbXBsYXRlcyBhcmUgYSB0ZW1wbGF0aW5nIGVuZ2luZSB0aGF0IHRha2VzIGEgc2ltcGxpZmllZCBzZXQgb2YgaW5wdXQgcGFyYW1ldGVycyBhbmQgdHJhbnNmb3JtcyB0aGVtIGludG8gYSBjb21wbGV4IHN0cnVjdHVyZWQgZGF0YSBvdXRwdXQuIEJvdGggdGhlIGlucHV0cyBhbmQgb3V0cHV0cyBjYW4gYmUgdmFsaWRhdGVkIGFnYWluc3QgYSBzY2hlbWEuCgpCZSBzdXJlIHRvIGNoZWNrIG91dCB0aGUgW1Zpc3VhbCBTdHVkaW8gQ29kZSBleHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1kYW5pZWxndGF5bG9yLnN0cnVjdHVyZWQtZGF0YS10ZW1wbGF0ZXMpIGZvciBzeW50YXggaGlnaGxpZ2h0aW5nIGFuZCBzY2hlbWEgdmFsaWRhdGlvbiBhcyB5b3UgdHlwZS4KClRoZSBnb2FscyBvZiB0aGlzIHByb2plY3QgYXJlIHRvOgoKMS4gUHJvdmlkZSBhIHNpbXBsZSBmb3JtYXQ6IGl0J3MganVzdCBKU09OL1lBTUwhCjIuIEdpdmUgZW5vdWdoIHRvb2xzIHRvIGJlIHVzZWZ1bDoKICAgLSBJbnRlcnBvbGF0aW9uIGAke215X3ZhbHVlfWAgJiBgJHtudW0gLyAyID49IDV9YAogICAtIEJyYW5jaGluZyAoaWYvdGhlbi9lbHNlKQogICAtIExvb3BpbmcgKGZvci9lYWNoKQozLiBHdWFyYW50ZWUgc3RydWN0dXJhbCBjb3JyZWN0bmVzcwogICAtIFRoZSBzdHJ1Y3R1cmVkIGRhdGEgdGVtcGxhdGUgaXMgdmFsaWQgSlNPTiAvIFlBTUwKICAgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyBhcmUgdmFsaWQgSlNPTiAvIFlBTUwKICAgLSBUaGUgb3V0cHV0IG9mIHRoZSB0ZW1wbGF0ZSBpcyBndWFyYW50ZWVkIHRvIHByb2R1Y2UgdmFsaWQgSlNPTgo0LiBQcm92aWRlIHRvb2xzIGZvciBzZW1hbnRpYyBjb3JyZWN0bmVzcyB2aWEgc2NoZW1hcwogICAtIFRoZSBpbnB1dCB0eXBlcyBhbmQgdmFsdWVzIHBhc3MgdGhlIHNjaGVtYQogICAtIFRoZSB0ZW1wbGF0ZSB3aWxsIHByb2R1Y2Ugb3V0cHV0IHRoYXQgc2hvdWxkIHBhc3MgdGhlIHNjaGVtYQogICAtIFRoZSBvdXRwdXQgb2YgdGhlIHRlbXBsYXRlIGFmdGVyIHJlbmRlcmluZyBwYXNzZXMgdGhlIHNjaGVtYQoKIyMgU3RydWN0dXJlCgpBIHN0cnVjdHVyZWQgZGF0YSB0ZW1wbGF0ZSBkb2N1bWVudCBpcyBtYWRlIG9mIHR3byBwYXJ0czogc2NoZW1hcyBhbmQgYSB0ZW1wbGF0ZS4gVGhlIHNjaGVtYXMgZGVmaW5lIHRoZSBhbGxvd2FibGUgaW5wdXQvb3V0cHV0IHN0cnVjdHVyZSB3aGlsZSB0aGUgdGVtcGxhdGUgZGVmaW5lcyB0aGUgYWN0dWFsIHJlbmRlcmVkIG91dHB1dC4gQW4gZXhhbXBsZSBkb2N1bWVudCBtaWdodCBsb29rIGxpa2U6CgpgYGB5YW1sCnNjaGVtYXM6CiAgIyBEaWFsZWN0IHNlbGVjdHMgdGhlIGRlZmF1bHQgSlNPTiBTY2hlbWEgdmVyc2lvbgogIGRpYWxlY3Q6IG9wZW5hcGktMy4xCiAgaW5wdXQ6CiAgICAjIElucHV0IHNjaGVtYSBnb2VzIGhlcmUKICAgIHR5cGU6IG9iamVjdAogICAgcHJvcGVydGllczoKICAgICAgbmFtZToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBkZWZhdWx0OiB3b3JsZAogIG91dHB1dDoKICAgICMgT3V0cHV0IHNjaGVtYSBnb2VzIGhlcmUsIGFsc28gc3VwcG9ydHMgcmVmczoKICAgICRyZWY6IGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL29wZW5hcGkuanNvbiNjb21wb25lbnRzL3NjaGVtYXMvR3JlZXRpbmcKdGVtcGxhdGU6CiAgIyBUZW1wbGF0ZWQgb3V0cHV0IHN0cnVjdHVyZSBnb2VzIGhlcmUKICBncmVldGluZzogSGVsbG8sICR7bmFtZX0hCmBgYAoKIyMgSW5zdGFsbGF0aW9uCgpZb3UgY2FuIGluc3RhbGwgdmlhOgoKYGBgc2gKIyBHZXQgdGhlIGBzZHRgIGNvbW1hbmQKJCBnbyBnZXQgLXUgZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL3NkdC9jbWQvLi4uCgojIEluc3RhbGwgYXMgYSBsaWJyYXJ5CiQgZ28gZ2V0IC11IGdpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9zZHQKYGBgCgojIyBFeGFtcGxlCgpZb3UgY2FuIHJ1biB0aGUgZXhhbXBsZSBsaWtlIHNvOgoKYGBgc2gKIyBWYWxpZGF0ZSB0aGUgdGVtcGxhdGUKJCBzZHQgdmFsaWRhdGUgLi9zYW1wbGVzL2dyZWV0aW5nLnlhbWwKCiMgR2VuZXJhdGUgYW4gZXhhbXBsZSBwYXJhbXMgZmlsZQokIHNkdCBleGFtcGxlIC1mIHlhbWwgLi9zYW1wbGVzL2hlbGxvL2hlbGxvLnlhbWwgPnBhcmFtcy55YW1sCgojIFJlbmRlciBieSBwYXNzaW5nIGluIGEgZmlsZQokIHNkdCByZW5kZXIgLi9zYW1wbGVzL2hlbGxvL2hlbGxvLnlhbWwgPHBhcmFtcy55YW1sCnsKICAiZ3JlZXRpbmciOiAiSGVsbG8sIFNEVCEiCn0KCiMgUmVuZGVyIGJ5IHVzaW5nIENMSSBzaG9ydGhhbmQgc3ludGF4CiQgc2R0IHJlbmRlciAuL3NhbXBsZXMvZ3JlZXRpbmcueWFtbCBuYW1lOiBBbGljZQp7CiAgImdyZWV0aW5nIjogIkhlbGxvLCBBbGljZSEiCn0KYGBgCgpJbnB1dCBwYXJhbXMgZm9yIHJlbmRlcmluZyBjYW4gYmUgcGFzc2VkIHZpYSBzdGRpbiBhcyBKU09OL1lBTUwgYW5kL29yIHZpYSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFzIFtDTEkgc2hvcnRoYW5kIHN5bnRheF0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3Ivc2hvcnRoYW5kI3JlYWRtZSkuCgojIyBTY2hlbWFzCgpKU09OIFNjaGVtYSBpcyB1c2VkIGZvciBhbGwgc2NoZW1hcy4gSXQgZGVmYXVsdHMgdG8gSlNPTiBTY2hlbWEgMjAyMC0xMiBidXQgY2FuIGJlIG92ZXJyaWRkZW4gdmlhIHRoZSBgJHNjaGVtYWAga2V5IG9yIHVzaW5nIGBkaWFsZWN0YCBpbiB0aGUgc3RydWN0dXJlZCBkYXRhIHRlbXBsYXRlIGRvY3VtZW50IGxpa2UgYWJvdmUuIEF2YWlsYWJsZSBkaWFsZWN0czoKCi0gYG9wZW5hcGktMy4wYAotIGBvcGVuYXBpLTMuMWAKLSBgaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFgCi0gYGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvc2NoZW1hYAotIGBodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWFgCi0gYGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA2L3NjaGVtYWAKLSBgaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hYAoKVGhlIGlucHV0IHNjaGVtYSBkZXNjcmliZXMgdGhlIGlucHV0IHBhcmFtZXRlcnMgYW5kIHRoZSB0ZW1wbGF0ZSB3aWxsIG5vdCByZW5kZXIgdW5sZXNzIHRoZSBwYXNzZWQgcGFyYW1ldGVycyB2YWxpZGF0ZSB1c2luZyB0aGUgaW5wdXQgc2NoZW1hLiBJdCBhbHNvIGxldHMgeW91IHNldCBkZWZhdWx0cyBmb3IgdGhlIGlucHV0IHBhcmFtZXRlcnMsIHdoaWNoIGRlZmF1bHQgdG8gYG5pbGAgaWYgbm90IHBhc3NlZC4KClRoZSBvdXRwdXQgc2NoZW1hIGRlc2NyaWJlcyB0aGUgdGVtcGxhdGUncyBvdXRwdXQgc3RydWN0dXJlLiBUaGUgdmFsaWRhdG9yIGlzIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyBicmFuY2hlcyAmIGxvb3BzIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaXMgc2VtYW50aWNhbGx5IHZhbGlkIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggcGF0aCBpcyB0YWtlbiBkdXJpbmcgcmVuZGVyaW5nLgoKIyMgVGVtcGxhdGUgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbgoKQSB0ZW1wbGF0ZSBpcyBqdXN0IEpTT04vWUFNTC4gRm9yIGV4YW1wbGU6CgpgYGB5YW1sCmhlbGxvOiB3b3JsZApgYGAKClRoYXQgaXMgYSB2YWxpZCBzdGF0aWMgdGVtcGxhdGUuIE5vdGhpbmcgd2lsbCBjaGFuZ2Ugd2hlbiByZW5kZXJlZCwgd2hpY2ggaXMgbm90IHZlcnkgdXNlZnVsLiBOb3JtYWxseSwgd2hlbiBhIHRlbXBsYXRlIGlzIHJlbmRlcmVkLCBpdCBpcyBwYXNzZWQgcGFyYW1ldGVycywgYW5kIHRoZXNlIGFyZSB1c2VkIGZvciBpbnRlcnBvbGF0aW9uLCBicmFuY2hpbmcsIGFuZCBsb29waW5nLCB3aGljaCBhcmUgc3BlY2lmaWVkIHVzaW5nIHNwZWNpYWwgc3ludGF4IGluIHN0cmluZ3Mgb3Iga2V5d29yZHMgYXMgb2JqZWN0IHByb3BlcnR5IG5hbWVzOgoKLSBJbnRlcnBvbGF0aW9uOiBgJHsuLi59YAotIEJyYW5jaGluZzogYCRpZmAsIGAkdGhlbmAsIGAkZWxzZWAKLSBMb29waW5nOiBgJGZvcmAsIGAkYXNgLCBgJGVhY2hgCi0gU3BlY2lhbCBvcGVyYXRpb25zOiBgJGZsYXR0ZW5gCgpUaGVzZSBmZWF0dXJlcyBtYWtlIHVzZSBvZiBhIGJhc2ljIGV4cHJlc3Npb24gbGFuZ3VhZ2UuCgojIyMgRXhwcmVzc2lvbnMKClN0cmluZyBpbnRlcnBvbGF0aW9uLCBicmFuY2hpbmcgY29uZGl0aW9ucywgYW5kIGxvb3AgdmFyaWFibGUgc2VsZWN0aW9uIGFsbCB1c2UgYW4gZXhwcmVzc2lvbiBsYW5ndWFnZS4gVGhpcyBhbGxvd3MgeW91IHRvIG1ha2Ugc2ltcGxlIGNvbXBhcmlzb25zIG9mIHRoZSBwYXJhbWV0ZXIgY29udGV4dCBkYXRhLiBFeGFtcGxlczoKCi0gYGZvbyA+IDUwYAotIGBpdGVtLmJhcnMubGVuZ3RoIDw9IDUgb3IgbXlfb3ZlcnJpZGVgCi0gYCJzZHQiIGluIG5hbWVgCi0gYG5hbWUgc3RhcnRzV2l0aCAic2R0ImAKLSBgImZvbyIgaW4gbXlfYXJyYXlgCi0gYGxvb3AuaW5kZXggKyAxYAoKU2VlIFtkYW5pZWxndGF5bG9yL21leHByIHN5bnRheF0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvbWV4cHIjc3ludGF4KSBmb3IgZGV0YWlscy4KCiMjIyBTdHJpbmcgSW50ZXJwb2xhdGlvbgoKU3RyaW5nIGludGVycG9sYXRpb24gaXMgdGhlIGFjdCBvZiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGAkey4uLn1gIHdpdGhpbiBzdHJpbmdzLCB3aGVyZSBgLi4uYCBjb3JyZXNwb25kcyB0byBhbiBleHByZXNzaW9uIHRoYXQgbWFrZXMgdXNlIG9mIGlucHV0IHBhcmFtZXRlcnMuIEZvciBleGFtcGxlOgoKYGBgeWFtbApoZWxsbzogJHtuYW1lfQpgYGAKCklmIHBhc3NlZCBgeyJuYW1lIjogIkFsaWNlIn1gIGFzIHBhcmFtZXRlcnMgdGhpcyB3b3VsZCByZW5kZXI6CgpgYGBqc29uCnsKICAiaGVsbG8iOiAiQWxpY2UiCn0KYGBgCgpXaGVuZXZlciB0aGUgc3RyaW5nIGlzIGp1c3Qgb25lIGAkey4uLn1gIHN0YXRlbWVudCBpdCB3aWxsIHVzZSB3aGF0ZXZlciB0eXBlIGl0IGV2YWx1YXRlcyB0byBpbiB0aGUgcmVzdWx0LCBzbyB5b3UgYXJlIG5vdCBsaW1pdGVkIHRvIGp1c3Qgc3RyaW5ncy4gSWYgdGhlIGV4cHJlc3Npb24gcmVzdWx0IGlzIGBuaWxgLCB0aGVuIHRoZSBwcm9wZXJ0eS9pdGVtIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgcmVuZGVyZWQgb3V0cHV0LgoKSXQncyBhbHNvIHBvc3NpYmxlIHRvIGFkZCBzdGF0aWMgdGV4dCBvciBtdWx0aXBsZSBpbnRlcnBvbGF0aW9uIGV4cHJlc3Npb25zIGluIGEgc2luZ2xlIHZhbHVlOgoKYGBgeWFtbApoZWxsbzogR3JlZXRpbmdzLCAke25hbWV9IQpgYGAKCkdpdmVuIHRoZSBzYW1lIGlucHV0IHRoYXQgd291bGQgcmVzdWx0IGluOgoKYGBganNvbgp7CiAgImhlbGxvIjogIkdyZWV0aW5ncywgQWxpY2UhIgp9CmBgYAoKIyMjIyBUcmlja3MKCi0gRm9yY2UgYSBzdHJpbmcgb3V0cHV0IGJ5IHVzaW5nIG1vcmUgdGhhbiBvbmUgZXhwcmVzc2lvbjogYCR7bXlfbnVtYmVyfSR7IiJ9YAoKIyMjIEJyYW5jaGluZwoKQnJhbmNoaW5nIGFsbG93cyBvbmUgb2YgbXVsdGlwbGUgcGF0aHMgdG8gYmUgZm9sbG93ZWQgaW4gdGhlIHRlbXBsYXRlIGF0IHJlbmRlcmluZyB0aW1lIGJhc2VkIG9uIHRoZSByZXN1bHQgb2YgYW4gZXhwcmVzc2lvbi4gVGhlIHNwZWNpYWwgcHJvcGVydGllcyBgJGlmYCwgYCR0aGVuYCwgYW5kIGAkZWxzZWAgYXJlIHVzZWQgZm9yIHRoaXMuIEZvciBleGFtcGxlOgoKYGBgeWFtbApmb286CiAgJGlmOiAke3ZhbHVlID4gNX0KICAkdGhlbjogSSBhbSBiaWcKICAkZWxzZTogSSBhbSBzbWFsbApgYGAKCklmIHJlbmRlcmVkIHdpdGggYHsidmFsdWUiOiAxfWAgdGhlIHJlc3VsdCB3aWxsIGJlOgoKYGBganNvbgp7CiAgImZvbyI6ICJJIGFtIHNtYWxsIgp9CmBgYAoKTm90aWNlIHRoYXQgdGhlIHNwZWNpYWwgcHJvcGVydGllcyBhcmUgY29tcGxldGVseSByZW1vdmVkIGFuZCByZXBsYWNlZCB3aXRoIHRoZSBjb250ZW50cyBvZiBlaXRoZXIgdGhlIGAkdGhlbmAgb3IgYCRlbHNlYCBjbGF1c2VzLiBTbyB3aGlsZSBpbiB0aGUgX3RlbXBsYXRlXyBgZm9vYCBpcyBhbiBvYmplY3QsIHRoZSBlbmQgcmVzdWx0IGlzIHRoYXQgYGZvb2AgaXMgYSBzdHJpbmcgYW5kIHdvdWxkIHBhc3MgdGhlIG91dHB1dCBzY2hlbWEuCgpJZiB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZSBhbmQgbm8gYCR0aGVuYCBpcyBnaXZlbiwgdGhlbiB0aGUgcHJvcGVydHkgaXMgcmVtb3ZlZCBmcm9tIHRoZSByZXN1bHQuCgojIyMgTG9vcGluZwoKTG9vcGluZyBhbGxvd3MgYW4gYXJyYXkgb2YgaW5wdXRzIHRvIGJlIGV4cGFuZGVkIGludG8gdGhlIHJlbmRlcmVkIG91dHB1dCB1c2luZyBhIHBlci1pdGVtIHRlbXBsYXRlLiBUaGUgYCRmb3JgLCBgJGFzYCwgYW5kIGAkZWFjaGAgc3BlY2lhbCBwcm9wZXJ0aWVzIGFyZSB1c2VkIGZvciB0aGlzLiBGb3IgZXhhbXBsZToKCmBgYHlhbWwKc3F1YXJlczoKICAkZm9yOiAke251bWJlcnN9CiAgJGVhY2g6ICR7aXRlbSAqIGl0ZW19CmBgYAoKSWYgcmVuZGVyZWQgd2l0aCBgeyJudW1iZXJzIjogWzEsIDIsIDNdfWAgdGhlIHJlc3VsdCB3aWxsIGJlOgoKYGBganNvbgp7CiAgInNxdWFyZXMiOiBbMiwgNCwgOV0KfQpgYGAKClRoZSBgJGFzYCBwcm9wZXJ0eSBjb250cm9scyB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgaG9sZGluZyB0aGUgY3VycmVudCBpdGVtLCB3aGljaCBkZWZhdWx0cyB0byBgaXRlbWAuIEEgbG9jYWwgdmFyaWFibGUgYGxvb3BgIGlzIGFsc28gc2V0LCB3aGljaCBpbmNsdWRlcyBhbiBgaW5kZXhgLCBhbmQgd2hldGhlciB0aGUgaXRlbSBpcyB0aGUgYGZpcnN0YCBvciBgbGFzdGAgaW4gdGhlIGFycmF5LiBJZiB1c2luZyBgJGFzYCB0aGVuIHRoZSBgbG9vcGAgdmFyaWFibGUgaXMgbmFtZWQgYGxvb3BfYCArIHRoZSBgJGFzYCB2YWx1ZS4gVGhpcyBhbGxvd3MgbmVzdGVkIGxvb3BzIHRvIGFjY2VzcyBib3RoIHRoZWlyIG93biBhbmQgb3V0ZXIgc2NvcGUncyBsb29wIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGU6CgpgYGB5YW1sCnRoaW5nczoKICAkZm9yOiAke3RoaW5nc30KICAkYXM6IHRoaW5nCiAgJGVhY2g6CiAgICBpZDogJHtsb29wX3RoaW5nLmluZGV4fS0ke3RoaW5nLm5hbWV9CiAgICB0YWdzOgogICAgICAkZm9yOiAke3RhZ3N9CiAgICAgICRhczogdGFnCiAgICAgICRlYWNoOiAke2xvb3BfdGhpbmcuaW5kZXh9LSR7bG9vcF90YWcuaW5kZXh9LSR7dGFnfQpgYGAKCkdpdmVuOgoKYGBganNvbgp7CiAgInRoaW5ncyI6IFt7ICJuYW1lIjogIkFsaWNlIiB9LCB7ICJuYW1lIjogIkJvYiIgfV0sCiAgInRhZ3MiOiBbImJpZyIsICJzbWFsbCJdCn0KYGBgCgpZb3Ugd291bGQgZ2V0IGFzIG91dHB1dDoKCmBgYGpzb24KewogICJ0aGluZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6ICIwLUFsaWNlIiwKICAgICAgInRhZ3MiOiBbIjAtMC1iaWciLCAiMC0xLXNtYWxsIl0KICAgIH0sCiAgICB7CiAgICAgICJpZCI6ICIxLUJvYiIsCiAgICAgICJ0YWdzIjogWyIxLTAtYmlnIiwgIjEtMS1zbWFsbCJdCiAgICB9CiAgXQp9CmBgYAoKIyMjIEZsYXR0ZW4KClRoZSBgJGZsYXR0ZW5gIHNwZWNpYWwgb3BlcmF0b3IgdGFrZXMgYW4gYXJyYXkgb2YgYXJyYXlzIGFuZCBmbGF0dGVucyB0aGVtIG9uZSBsZXZlbCBpbnRvIGEgc2luZ2xlIGFycmF5LiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGEgbnVtYmVyIG9mIHNjZW5hcmlvcyBsaWtlOgoKLSBBZGRpbmcgZGVmYXVsdCBpdGVtcyB0byBhIGAkZm9yYCBsb29wIG91dHB1dAotIEhhdmluZyBvbmUgaXRlbSBvZiBhIGAkZm9yYCBjbGF1c2UgZ2VuZXJhdGUgbXVsdGlwbGUgb3V0cHV0cwoKRm9yIGEgc2ltcGxlIGV4YW1wbGU6CgpgYGB5YW1sCm15X2FycmF5OgogICRmbGF0dGVuOgogICAgLSBbMCwgMSwgMl0KICAgIC0gWzMsIDQsIDVdCiAgICAtIFs2LCA3LCA4XQpgYGAKClRoaXMgd291bGQgcmVzdWx0IGluOgoKYGBganNvbgp7CiAgIm15X2FycmF5IjogWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdCn0KYGBgCgpNb3JlIGNvbXBsZXggc2NlbmFyaW9zIGFyZSBwb3NzaWJsZSB3aGVuIGNvbWJpbmVkIHdpdGggYCRmb3JgIGNsYXVzZXM6CgpgYGB5YW1sCiMgTG9vcCB0aHJvdWdoIHRoZSBpdGVtcyB0d2ljZSwgZ2VuZXJhdGluZyBvbmUgaXRlbSBhdCBhIHRpbWUuCmFwcGVuZGVkX2FycmF5OgogICRmbGF0dGVuOgogICAgLSAkZm9yOiAke2l0ZW1zfQogICAgICAkZWFjaDogJHtpdGVtfQogICAgLSAkZm9yOiAke2l0ZW1zfQogICAgICAkZWFjaDogJHtpdGVtICogaXRlbX0KIyBMb29wIHRocm91Z2ggdGhlIGl0ZW1zIG9uY2UsIGdlbmVyYXRpbmcgYSBsaXN0IGZvciBlYWNoIGl0ZW0uCm1lcmdlZF9hcnJheToKICAkZmxhdHRlbjoKICAgICRmb3I6ICR7aXRlbXN9CiAgICAkZWFjaDoKICAgICAgLSAke2l0ZW19CiAgICAgIC0gJHtpdGVtICogaXRlbX0KYGBgCgpJZiBnaXZlbjoKCmBgYGpzb24KewogICJpdGVtcyI6IFsyLCAzLCA0XQp9CmBgYAoKWW91IHdvdWxkIGdldDoKCmBgYGpzb24KewogICJhcHBlbmRlZF9hcnJheSI6IFsyLCAzLCA0LCA0LCA5LCAxNl0sCiAgIm1lcmdlZF9hcnJheSI6IFsyLCA0LCAzLCA5LCA0LCAxNl0KfQpgYGAKCiMjIE9wZW4gUXVlc3Rpb25zCgoxLiBTaG91bGQgd2Ugc3VwcG9ydCBtYWNyb3M/IENvdWxkIGJlIGRvbmUgd2l0aCBgJHJlZmAgaW4gdGhlIHRlbXBsYXRlLCBhbmQgd2UgY291bGQgYWRkIGEgdG9wLWxldmVsIGBtYWNyb3NgIG9yIGBkZWZpbml0aW9uc2AgZm9yIGRvY3VtZW50LWxvY2FsIHJlZnMuIFRoZXkgd291bGQgYmUgZHJvcC1pbiBvbmx5LCBubyBjYWxsaW5nIHdpdGggYXJndW1lbnRzLCBidXQgd291bGQgcmVuZGVyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBhcmFtcyBjb250ZXh0LgoKMi4gU2hvdWxkIGBuaWxgIHJlc3VsdHMgZnJvbSBpbnRlcnBvbGF0aW9uIGJlIHJlbmRlcmVkIGluIHRoZSBmaW5hbCBvdXRwdXQ/IEV4YW1wbGU6IGBuYW1lOiAke25hbWV9YCBhbmQgd2hhdCBpZiBgbmFtZWAgaXMgYG5pbGA/CgozLiBTdXBwb3J0IGZvciBjb25zdGFudHM/IFZhbHVlcyB0aGF0IHNob3VsZCBhbHdheXMgYmUgcHJlc2VudCBpbiB0aGUgcGFyYW1zIHRoYXQgY2FuIGNvbnRhaW4gY29tcGxleCBhbmQgcmV1c2FibGUgZGF0YSBmb3IgdGhlIHRlbXBsYXRlPwoKNC4gQWJpbGl0eSB0byBzb3J0IGAkZm9yYCBsb29wIG91dHB1dCBiYXNlZCBvbiBzb21lIGV4cHI/Cg== readmeEtag: '"8ffd0423b33657c111a60b76c8896c991707fbbd"' readmeLastModified: Thu, 16 Dec 2021 17:31:33 GMT repositoryId: 418250995 description: Structured Data Templates created: '2021-10-17T20:42:58Z' updated: '2022-05-12T09:36:48Z' language: Go archived: false stars: 4 watchers: 3 forks: 1 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT repoEtag: '"484cfd8262ae5e5b46b66a6d870b30c2661ff719b659f1da0868eb3b770f940d"' repoLastModified: Thu, 12 May 2022 09:36:48 GMT foundInMaster: true category: Parsers id: 47cf5346c9ca65f18c438755c3812912 - source: openapi3 tags repository: https://github.com/guillaumedeconinck/todos-fastify v3: true repositoryMetadata: base64Readme: >- IyBUb2RvcyBBUEkKCiMjIFdoYXQgaXMgdGhpcyByZXBvc2l0b3J5ID8KClRoaXMgcmVwb3NpdG9yeSwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgVG9kb3MgQVBJLiBUaGUgbWFpbiBnb2FsIG9mIHRoaXMgQVBJIGlzIHRvIHNlcnZlIGFzIGEgInByb29mIiAob3IgInBvcnRmb2xpbyIpIG9mIG15IG93biBza2lsbHMuIFRoaXMgQVBJIGlzIGltcGxlbWVudGVkIGluICoqVHlwZXNjcmlwdCoqIGFuZCB1c2VzICoqTm9kZUpTIDE2KiouCgpXaGlsZSBidWlsZGluZyB0aGlzIEFQSSwgSSdtIGFsc28gc29tZXRpbWVzIGxlYXJuaW5nIG5ldyBzdHVmZiBhbmQgYXBwbHlpbmcgbmV3IGNvbmNlcHRzIHRoYXQgSSBoYXZlbid0IGhhZCB0aGUgb2NjYXNpb24gdG8gdXNlIGJlZm9yZS4KCklkZWFsbHksIEkgd291bGQgbGlrZSB0aGlzIEFQSSB0byBmb2xsb3cgYSBmZXcgcHJpbmNpcGxlczoKCi0gWzEyLWZhY3RvciBhcHBdKGh0dHBzOi8vMTJmYWN0b3IubmV0LykKLSBESSAoRGVwZW5kZW5jeSBJbmplY3Rpb24pIHdpdGggaW50ZXJmYWNlcywgdGhhbmtzIHRvIFt0c3lyaW5nZV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90c3lyaW5nZSkKLSBNaWNyb3NlcnZpY2VzIHBhdHRlcm5zCiAgLSBNb3JlIHNwZWNpZmljYWxseSBlbnN1cmUgdGhhdCBldmVudHMgYXJlIGVtaXR0ZWQgYXQgbGVhc3Qgb25jZSAobm90IHlldCBpbXBsZW1lbnRlZCwgc2VlIFsjMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HdWlsbGF1bWVEZWNvbmluY2svdG9kb3MtZmFzdGlmeS9pc3N1ZXMvMTUpKQogIC0gTW9yZSBEREQgbWF5YmUgKEkgaGF2ZSB0byAocmUpcmVhZCBtb3JlIGFydGljbGVzL2Jvb2tzIG9uIHRoaXMpCi0gUHJvcGVybHkgZG9jdW1lbnRlZAotIEdvb2QgZXJyb3IgbWVzc2FnZXMsIGFzIHRoZSBoYXBweSBmbG93IGlzIG5vdCB0aGUgb25seSBmbG93CgojIyBTdHJ1Y3R1cmUgb2YgdGhlIHByb2plY3QKCnwgRm9sZGVyIG9yIGZpbGUgICAgICAgICB8IEV4cGxhbmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYF9fdGVzdHNfX2AgICAgICAgICAgICB8IFVuaXQgYW5kIGUyZSB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYC5naXRodWJgICAgICAgICAgICAgICB8IEdpdGh1YiB3b3JrZmxvdyBmb2xkZXIgKENJL0NEKSAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHNyY2AgICAgICAgICAgICAgICAgICB8IFNvdXJjZSBjb2RlLCBhcyBleHBlY3RlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGRvY2tlci1jb21wb3NlKi55YW1sYCB8IEFsbCB0aGUgZG9ja2VyLWNvbXBvc2UgZmlsZXMsIHVzZWQgZm9yIGRldiAmIGUyZSB0ZXN0cyB8CnwgYG9wZW5hcGkueWFtbGAgICAgICAgICB8ICoqT3BlbkFQSSBkZWZpbml0aW9uKiogb2YgdGhlIEFQSSAgICAgICAgICAgICAgICAgICAgICB8CgpNb3Jlb3ZlciwgdGhlIGBzcmNgIGZvbGRlciBpcyBkaXZpZGVkIGFzIGZvbGxvd3MgKG5vdCBpbiBhbHBoYWJldGljYWwgb3JkZXIpOgoKfCBGb2xkZXIgb3IgZmlsZSAgIHwgRXhwbGFuYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYHJlc3RgICAgICAgICAgICB8IFJFU1QsIHNvIHJvdXRlIGhhbmRsZXJzLCBtaWRkbGV3YXJlcywgZXRjLiBObyBsb2dpYyBoZXJlICEgICAgICAgICAgICAgICAgICAgIHwKfCBgYXBwbGljYXRpb25gICAgIHwgU2VydmljZXMgZG9pbmcgdGhlIGxpbmsgYmV0d2VlbiBSRVNUIGFuZCBkb21haW4gKG5vdCByZWFsbHkgdXNlZnVsIHJpZ2h0IG5vdykgfAp8IGBkb21haW5gICAgICAgICAgfCBUaGUgbW9kZWxzIGFuZCByZXBvc2l0b3JpZXMnIGludGVyZmFjZXMsIHRoYXQncyB3aGVyZSB0aGUgbG9naWMgc2hvdWxkIGJlICAgICB8CnwgYGluZnJhc3RydWN0dXJlYCB8IEFsbCB0aGUgcmVwb3NpdG9yaWVzIGltcGxlbWVudGF0aW9ucywgZS5nLiBQb3N0Z3JlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgdG9vbHNgICAgICAgICAgIHwgVXRpbGl0aWVzIGZpbGVzIHN1Y2ggYXMgZW52IHZhcnMsIGxvZ2dlciAmIG1haW50ZW5hbmNlIHN0dWZmICAgICAgICAgICAgICAgICAgfAoKPiBUZWNobmljYWxseSBgcmVzdGAgY291bGQgYmUgaW4gYGluZnJhc3RydWN0dXJlYAoKPiAqKlRoaXMgc3RydWN0dXJlIGNhbiBiZSBzZWVuIGFzIG92ZXJraWxsIGZvciB0aGUgc2l6ZSBvZiB0aGlzIEFQSSAoYXMgdGhlcmUgaXMgb25seSBvbmUgcmVzb3VyY2UgZm9yIG5vdykqKgoKIyMgSG93IHRvIHVzZQoKIyMjIFByZXJlcXVpc2l0ZXMKCkZvciBydW5uaW5nIHRoaXMgcHJvamVjdCwgaXQncyBleHBlY3RlZCB0aGF0IHlvdSBoYXZlIGFscmVhZHkgb24geW91ciBtYWNoaW5lCgotIE5vZGUgMTYgJiBucG0gOAotIERvY2tlcgoKIyMjIFJ1bm5pbmcgdGhlIEFQSQoKVGhlIHByb2plY3QgaXMgcXVpdGUgc2ltcGxlIHRvIHVzZSwgZmlyc3QgY2xvbmUgdGhlIHJlcG9zaXRvcnkgYW55d2hlcmUgb24geW91ciBtYWNoaW5lOgoKYGBgc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9HdWlsbGF1bWVEZWNvbmluY2svdG9kb3MtZmFzdGlmeS5naXQKYGBgCgpUaGVuLCBpbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXM6CgpgYGBzaApucG0gY2kKYGBgCgo+IGBucG1gIGlzIHVzZWQgaGVyZSwgYnV0IHlvdSBjYW4gdXNlIGB5YXJuYCBvciBgcG5wbWAuCgpBcyB0aGUgQVBJIGlzIGV4cGVjdGVkIHRvIHJ1biBpbiBhIGNvbnRhaW5lciAoZS5nLiBpbiBhIEt1YmVybmV0ZXMgY2x1c3RlciksIEkgcmVseSBoZWF2aWx5IG9uIERvY2tlciwgZXZlbiBmb3IgZGV2ZWxvcG1lbnQgYW5kIHRlc3RzLiBGb3IgcnVubmluZyB0aGUgYXBpLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2gKbnBtIHJ1biBkZXYKYGBgCgpBZnRlciBhIH5+c2hvcnR+fiB0aW1lLCB5b3Ugc2hvdWxkIGhhdmUgYSBydW5uaW5nIEFQSSBvbiBwb3J0IGA5MDAyYCAoZGVmYXVsdCkKCiMjIyBNb25pdG9yaW5nCgpUaGUgQVBJIGNhbiBwcm92aWRlIHRyYWNlcyBvZiB3aGF0IGlzIGhhcHBlbmluZyB0byB0aGUgZW52IHZhciBgT1RMUF9HUlBDX0VORFBPSU5UYC4KClRoZSBzcGFucyBhcmUgZ2VuZXJhdGVkIHdpdGggW09wZW5UZWxlbWV0cnldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzKSBhbmQgaGF2ZSBiZWVuIHRlc3RlZCB3aXRoIFtTaWdOb3pdKGh0dHBzOi8vZ2l0aHViLmNvbS9TaWdOb3ovc2lnbm96KS4KCjxkZXRhaWxzPgogIDxzdW1tYXJ5PlNjcmVlbnNob3RzIGluIFNpZ05vejwvc3VtbWFyeT4KICAKICAhW0xpc3Qgb2YgZW5kcG9pbnRzIHdpdGggdGhlaXIgbWV0cmljc10oZG9jcy9pbWFnZXMvVG9kb3NUcmFjZXNFbmRwb2ludHMucG5nKQogICFbU3BhbnMgb2YgYSBQVVQgcmVxdWVzdF0oZG9jcy9pbWFnZXMvVG9kb3NUcmFjZXNQVVQucG5nKQo8L2RldGFpbHM+CgojIyMgTWlncmF0aW9ucwoKPiBPdXRkYXRlZCwgdG8gYmUgcmV3cml0dGVuIHNvb24KCkFzIHlvdSBtYXkgaGF2ZSBub3RpY2VkLCBtaWdyYXRpb25zIHdlcmVuJ3QgbWVudGlvbmVkIGF0IGFsbCBpbiB0aGUgcHJldmlvdXMgc2VjdGlvbi4gKipUaGUgbWlncmF0aW9ucyBhcmUgaW4gZmFjdCBydW4gZHVyaW5nIHRoZSBzdGFydHVwIG9mIHRoZSBBUEkuKiogVGhpcyBpcyBub3QgYWx3YXlzIHRoZSBiZXN0IHRoaW5nIHRvIGRvIChlLmcuIGEgaGlnaGx5IHNlbnNpdGl2ZSBtaWdyYXRpb24gdGhhdCBjYW5ub3QgYmUgYXZvaWRlZCksIGJ1dCBmb3IgdGhpcyBzaW1wbGUgQVBJLCBpdCdzIG9rYXkuCgpUbyBjcmVhdGUgYSBuZXcgbWlncmF0aW9uLCBzaW1wbHkgcnVuCgpgYGBzaApucHggZGItbWlncmF0ZSBjcmVhdGUgdGhlLW5hbWUtb2YtdGhlLW1pZ3JhdGlvbgpgYGAKCkl0IHdpbGwgY3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlIGBtaWdyYXRpb25zYCBmb2xkZXIsIHdpdGggYSB0aW1lc3RhbXAgYW5kIHRoZSBuYW1lIHByb3ZpZGVkLgoKIyMgVGVzdGluZyB0aGUgQVBJCgojIyMgVW5pdCB0ZXN0cwoKU2ltcGx5IHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQKCmBgYHNoCm5wbSBydW4gdGVzdApgYGAKCiMjIyBFMkUgdGVzdHMKClJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQKCmBgYHNoCm5wbSBydW4gZG9ja2VyOmUyZQpgYGAKClRoaXMgd2lsbCBsYXVuY2ggYSBmZXcgY29udGFpbmVyczoKCi0gVGhlIGN1cnJlbnQgQVBJCi0gQSBQb3N0Z3JlcyBkYXRhYmFzZSwgdXNlZCBieSB0aGUgQVBJCi0gQSB0ZXN0IHJ1bm5lciAtPiBleGVjdXRlcyBKZXN0CgpUaGUgQVBJIGhhcyBhIHZvbHVtZSBtYXBwZWQgdG8gYHNyY2Agd2l0aCBgbm9kZW1vbmAgcnVubmluZy4gU28gYW55IGNoYW5nZSB0byB0aGUgc291cmNlIGNvZGUgd2lsbCB0cmlnZ2VyIGEgcmVzdGFydCBvZiB0aGUgQVBJLgoKVGhlIHRlc3QgcnVubmVyIGhhcyBhIHZvbHVtZSBtYXBwZWQgdG8gYF9fdGVzdHNfX2Agd2l0aCBgbm9kZW1vbmAgcnVubmluZyBhcyB3ZWxsLiBBbnkgY2hhbmdlIHRvIGEgdGVzdCB3aWxsIHJlLWxhdW5jaCB0aGUgd2hvbGUgRTJFIHN1aXRlLgoKPiBZb3UgY2FuIHRlc3QvZm9jdXMgb25seSBvbiBvbmUgdGVzdCBmaWxlIGJ5IGNoYW5naW5nIHRoZSBgY29tbWFuZDpgIG9wdGlvbiBpbiB0aGUgZmlsZSBgZG9ja2VyLWNvbXBvc2UuZTJlLmxvY2FsLnlhbWxgLgoKIyMgQ29udmVudGlvbnMKCkEgYC5lZGl0b3Jjb25maWdgIGZpbGUgd2lsbCBzb29uIGJlIGFkZGVkLiBJbiB0aGUgbWVhbiB0aW1lLCB0aGlzIHByb2plY3QgdXNlcyBgcHJldHRpZXJgIHdpdGggYGVzbGludGAgdG8gZW5zdXJlIHRoYXQgdGhlIGNvZGViYXNlIGZvbGxvd3MgdGhlIGNvbnZlbnRpb25zIHByb3Blcmx5LgoKIyMgUm9hZG1hcAoKVGhlIHJvYWRtYXAgaXMga2luZGEgZGVzY3JpYmVkIGluIHRoZSBpc3N1ZXMgb2YgdGhpcyByZXBvc2l0b3J5LCBidXQgaW4gInNob3J0IiBhbmQgbm90IGluIG9yZGVyOgoKLSBGaW5pc2ggdGhlIENSVUQgb2YgVG9kb3MKLSBBZGQgQ1JVRCBvZiBUYWdzLCBhbmQgbGluayB0aGVzZSB0byBUb2RvcwotIE1pZ3JhdGUgY3VycmVudCBtYW51YWwgdXNhZ2Ugb2YgYHBnYCB0byBhbiBPUk0gbWF5YmUgPwotIEV2ZW50IGVtaXNzaW9uIHRvIFJhYmJpdE1RIHdoZW4gc29tZXRoaW5nIGlzIGNyZWF0ZWQvY2hhbmdlZC9kZWxldGVkCi0gSGFuZGxlIGVycm9ycyBtb3JlIGdyYWNlZnVsbHkKLSBIYW5kbGUgc2h1dGRvd24gc2lnbmFsIGdyYWNlZnVsbHkgKGUuZy4gZG8gbm90IGtpbGwgYWxsIG9uZ29pbmcgcmVxdWVzdHMpCi0gUHJvbWV0aGV1cyBtZXRyaWNzCi0gUHJvcGVyIGxvZ2dpbmcgaW4gSlNPTiB3aXRoIGdvb2QgbWV0YWRhdGEvZXJyb3IgaGFuZGxpbmcKLSBIZWFsdGhjaGVjay9yZWFkaW5lc3Mgcm91dGVzCi0gQXV0aCB3aXRoIEpXVAotIEF1dG9tYXRlZCBjbGVhbnVwICh0byBhdm9pZCB0aGUgZnJlZSBIZXJva3UgREIgdG8gZ28gZnVsbCkKLSBSYXRlIGxpbWl0aW5nIChnbG9iYWwgYW5kIHBlciB1c2VyID8pCi0gSW1wbGVtZW50IGUyZS9pbnRlZ3JhdGlvbiB0ZXN0cyB3aXRoIHN1cGVydGVzdCBvciBzb21ldGhpbmcgc2ltaWxhciA/Ci0gQWRkIHVuaXQgdGVzdHMuLi4gQnV0IHJpZ2h0IG5vdyB0aGVyZSdzIGxpdGVyYWxseSBubyBsb2dpYyB0byB0ZXN0IDopCg== readmeEtag: '"b0e4e597ac4e8587bd04b2a7531f2e2e89b824c4"' readmeLastModified: Sat, 09 Jul 2022 13:04:51 GMT repositoryId: 389616942 description: Todos API written in Typescript, trying to implement the best practices. created: '2021-07-26T11:59:04Z' updated: '2022-12-03T08:30:52Z' language: TypeScript archived: false stars: 4 watchers: 1 forks: 0 owner: GuillaumeDeconinck logo: https://avatars.githubusercontent.com/u/8962903?v=4 repoEtag: '"733bdb739fe72f331476e5aec399e8be2d66f01279661e00cbf830f356f0cbd7"' repoLastModified: Sat, 03 Dec 2022 08:30:52 GMT foundInMaster: true category: Server Implementations id: dcbaa2bec964bbacbd35706dd3d03fe9 - source: openapi3 tags repository: https://github.com/swaggest/php-swagger2-schema v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIDMuMCBhbmQgU3dhZ2dlciAyLjAgc2NoZW1hIFBIUCBtYXBwaW5ncwoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvc3dhZ2dlc3QvcGhwLXN3YWdnZXIyLXNjaGVtYS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9zd2FnZ2VzdC9waHAtc3dhZ2dlcjItc2NoZW1hKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvc3dhZ2dlc3QvcGhwLXN3YWdnZXIyLXNjaGVtYS9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9zd2FnZ2VzdC9waHAtc3dhZ2dlcjItc2NoZW1hKQoKQWNjZXNzIGFuZCB2YWxpZGF0ZSBgT3BlbkFQSSAzLjBgIGFuZCBgU3dhZ2dlciAyLjBgIHNjaGVtYXMgZnJvbSBQSFAuCgojIyBJbnN0YWxsYXRpb24KCmBgYApjb21wb3NlciByZXF1aXJlIHN3YWdnZXN0L3N3YWdnZXIyLXNjaGVtYQpgYGAKCiMjIFVzYWdlCgojIyMgT3BlbkFQSSAzLjAKCmBgYHBocAovLyBMb2FkIHNjaGVtYQokanNvbiA9IGpzb25fZGVjb2RlKGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnLy4uLy4uLy4uL3NwZWMvcGV0c3RvcmUtb3BlbmFwaTMuanNvbicpKTsKCi8vIEltcG9ydCBhbmQgdmFsaWRhdGUKJHNjaGVtYSA9IE9wZW5BUEkzU2NoZW1hOjppbXBvcnQoJGpzb24pOwoKLy8gQWNjZXNzIGRhdGEgdGhyb3VnaCBQSFAgY2xhc3NlcwokdGhpcy0+YXNzZXJ0U2FtZSgnU3dhZ2dlciBQZXRzdG9yZScsICRzY2hlbWEtPmluZm8tPnRpdGxlKTsKJG9wcyA9ICRzY2hlbWEtPnBhdGhzWycvcGV0cyddLT5nZXRHZXRQdXRQb3N0RGVsZXRlT3B0aW9uc0hlYWRQYXRjaFRyYWNlVmFsdWVzKCk7CiR0aGlzLT5hc3NlcnRTYW1lKCdMaXN0IGFsbCBwZXRzJywgJG9wc1snZ2V0J10tPnN1bW1hcnkpOwoKJHJlc3BvbnNlU2NoZW1hID0gJG9wc1snZ2V0J10tPnJlc3BvbnNlc1syMDBdLT5jb250ZW50WydhcHBsaWNhdGlvbi9qc29uJ10tPnNjaGVtYTsKJHRoaXMtPmFzc2VydFNhbWUoJ2FycmF5JywgJHJlc3BvbnNlU2NoZW1hLT50eXBlKTsKYGBgCgojIyMgU3dhZ2dlciAyLjAKCmBgYHBocAovLyBMb2FkIHNjaGVtYQokanNvbiA9IGpzb25fZGVjb2RlKGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnLy4uLy4uL3NwZWMvcGV0c3RvcmUtc3dhZ2dlci5qc29uJykpOwoKLy8gSW1wb3J0IGFuZCB2YWxpZGF0ZQokc2NoZW1hID0gU3dhZ2dlclNjaGVtYTo6aW1wb3J0KCRqc29uKTsKCi8vIEFjY2VzcyBkYXRhIHRocm91Z2ggUEhQIGNsYXNzZXMKJHRoaXMtPmFzc2VydFNhbWUoJ1N3YWdnZXIgUGV0c3RvcmUnLCAkc2NoZW1hLT5pbmZvLT50aXRsZSk7CmBgYAo= readmeEtag: '"8e722603a21649933772da39d0b264692af2891e"' readmeLastModified: Thu, 17 Jun 2021 22:37:53 GMT repositoryId: 116000397 description: OpenAPI 3.0 / Swagger 2.0 schema PHP mappings created: '2018-01-02T09:52:55Z' updated: '2024-05-20T08:29:43Z' language: PHP archived: false stars: 4 watchers: 2 forks: 0 owner: swaggest logo: https://avatars.githubusercontent.com/u/19609628?v=4 repoEtag: '"5ad4bee96d313e006108f98b1033628ccd464f5920902b0ad7afe7a98d645370"' repoLastModified: Mon, 20 May 2024 08:29:43 GMT foundInMaster: true category: Parsers id: 891b1d19c1d5b9398f4b4df84df90b50 - source: openapi3 tags repository: https://github.com/futuristicoder/nomad.oas v3: true repositoryMetadata: base64Readme: >- IyBOb21hZC5PQVMKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9kZXYuYXp1cmUuY29tL0Z1dHVyaXN0aUNvZGVyL05vbWFkLk9BUy9fYXBpcy9idWlsZC9zdGF0dXMvRnV0dXJpc3RpQ29kZXIuTm9tYWQuT0FTP2JyYW5jaE5hbWU9bWFzdGVyKV0oaHR0cHM6Ly9kZXYuYXp1cmUuY29tL0Z1dHVyaXN0aUNvZGVyL05vbWFkLk9BUy9fYnVpbGQvbGF0ZXN0P2RlZmluaXRpb25JZD0xMiZicmFuY2hOYW1lPW1hc3RlcikKCi0tLQoKSGFzaGlDb3JwIE5vbWFkIG9wZW4gYXBpIHNwZWNpZmljYXRpb24KCiMjIENsaWVudCBsaWJyYXJpZXMgKGdlbmVyYXRlZCkKCiMjIyAuTmV0CgotIE5vbWFkLkNsaWVudCBbIVtOdUdldCBTdGF0dXNdKGh0dHBzOi8vYmFkZ2VuLm5ldC9udWdldC92L25vbWFkLmNsaWVudCldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Ob21hZC5DbGllbnQpCgpjbGllbnQgbGlicmFyeSBpbiBvdGhlciBsYW5ndWFnZXMgY2FuIGJlIGdlbmVyYXRlZAoKIyMgZW5kcG9pbnRzCgp8IEFwaSAgICAgICAgICAgICAgIHwgSW1wbGVtZW50IHwgQ29tbWVudCAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfAp8IEFDTCBQb2xpY2llcyAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAp8IEFDTCBUb2tlbnMgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAp8IEFnZW50ICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgQWxsb2NhdGlvbnMgICAgICAgfCDinJMgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKfCBDbGllbnQgICAgICAgICAgICB8IOKckyAgICAgICAgIHwgICAgICAgICAgICAgICAgfAp8IERlcGxveW1lbnRzICAgICAgIHwg4pyTICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgRXZhbHVhdGlvbnMgICAgICAgfCDinJMgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKfCBKb2JzICAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwgICAgICAgICAgICAgICAgfAp8IE5hbWVzcGFjZXMgICAgICAgIHwgICAgICAgICAgIHwgZW50ZXJwcmlzZSBhcGkgfAp8IE5vZGVzICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgTWV0cmljcyAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgT3BlcmF0b3IgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgUGx1Z2lucyAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgUXVvdGFzICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgUmVnaW9ucyAgICAgICAgICAgfCDinJMgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKfCBTY2FsaW5nIFBvbGljaWVzICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKfCBTZWFyY2ggICAgICAgICAgICB8IOKckyAgICAgICAgIHwgICAgICAgICAgICAgICAgfAp8IFNlbnRpbmVsIFBvbGljaWVzIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAp8IFN0YXR1cyAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCAgICAgICAgICAgICAgICB8CnwgU3lzdGVtICAgICAgICAgICAgfCDinJMgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKfCBWYWxpZGF0ZSAgICAgICAgICB8IOKckyAgICAgICAgIHwgICAgICAgICAgICAgICAgfAp8IFZvbHVtZXMgICAgICAgICAgIHwg4pyTICAgICAgICAgfCAgICAgICAgICAgICAgICB8Cg== readmeEtag: '"d52ddab7c48aaeb4702014b5c3fb3f6bdc34693c"' readmeLastModified: Thu, 19 Nov 2020 16:55:36 GMT repositoryId: 249948663 description: Nomad OpenApi Specification created: '2020-03-25T10:27:46Z' updated: '2023-09-08T18:05:01Z' language: C# archived: false stars: 4 watchers: 0 forks: 3 owner: FuturistiCoder logo: https://avatars.githubusercontent.com/u/46922135?v=4 license: MIT repoEtag: '"a41a2981aa198a414cc096a17535c1133c9fca26f18d9578ccb1430b7ca6fd3f"' repoLastModified: Fri, 08 Sep 2023 18:05:01 GMT foundInMaster: true category: Description Validators id: a08f0fbe1cd600070fd4afe4ee90dbb0 - source: openapi3 tags repository: https://github.com/deiteris/api-contractor v3: true repositoryMetadata: base64Readme: >- IyBWaXN1YWwgU3R1ZGlvIENvZGUgZXh0ZW5zaW9uIGZvciBSRVNUIEFQSXMgZGVzaWduaW5nIGFuZCB2YWxpZGF0aW9uCgpTZWUgYGV4dGVuc2lvbi9SRUFETUUubWRgIGZvciBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGV4dGVuc2lvbi4KClNlZSBgYXBpLWNvbnNvbGUvUkVBRE1FLm1kYCBmb3IgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBBUEkgY29uc29sZSB0aGF0IGlzIHVzZWQgZm9yIHByZXZpZXdpbmcuCg== readmeEtag: '"6eed0bda5116e956daadfd9391c322d2667dced3"' readmeLastModified: Sat, 04 Nov 2023 14:11:20 GMT repositoryId: 359785542 description: >- A Visual Studio Code extension for working with the API contracts in OpenAPI and RAML formats. created: '2021-04-20T11:09:09Z' updated: '2024-05-23T08:53:02Z' language: TypeScript archived: false stars: 4 watchers: 1 forks: 0 owner: deiteris logo: https://avatars.githubusercontent.com/u/6103913?v=4 license: MIT repoEtag: '"946e0ddc63f2045fe22ccf579a2f1a927bb8b88fa0191cbb1cf010b5e0c1a3b8"' repoLastModified: Thu, 23 May 2024 08:53:02 GMT foundInMaster: true category: - Testing - Server Implementations id: 64a794fc3fcfdaebd6e5e5d1374ee8ac - source: openapi3 tags repository: https://github.com/elevup/mogen v3: true repositoryMetadata: base64Readme: >- IVtNb2dlbiBsb2dvXShsb2dvLnN2ZyAiTW9nZW4gbG9nbyIpCgpNb2dlbiBpcyBhIHNtYWxsIGxpYnJhcnkgdGhhdCBjb252ZXJ0cyBLb3RsaW4ncyBtb2RlbHMgdG8gb3RoZXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzOgoKLSBEYXJ0IDIuMTIrLAotIE9wZW5BcGkgMy4wIFlNTCAoZ2VuZXJhdGVzIGBzY2hlbWFzYCBub2RlKSwKLSBTd2lmdCwKLSBUeXBlU2NyaXB0LgoKIyMjIE1vdGl2YXRpb24KCkluIGVsZXZ1cCB3ZSB1c3VhbGx5IHdyaXRlIGJhY2tlbmRzIGluIEtvdGxpbi4gVW5mb3J0dW5hdGVseSwgZnJvbnRlbmRzIGFyZSB3aG9sZSBvdGhlciBzdG9yeS4gU28gdGhlIG1haW4gZ29hbCB3YXMgdG8KZmluZCBhIHdheSB0byB0cmFuc2ZlciB0aGUga25vd2xlZGdlIGVmZmljaWVudGx5LCBhbmQgd2Ugd2VudCBmb3IgT3BlbkFwaS4gQnV0IHJld3JpdGluZyBlYWNoIGRpZmYgaW4gbW9kZWxzIHRvIE9wZW5BcGkKd2FzIG1vcmUtbGVzcyBwYWluIGFuZCBsaXRlcmFsbHkgbm8gb25lIHdhbnRlZCB0byBkbyBpdC4KClRoYW5rcyB0byBNb2dlbiB3ZSB3ZXJlIGFibGUgdG8gdGFrZSBhbGwgS290bGluIG1vZGVscyBhbmQgY29udmVydCB0aGVtIHRvIE9wZW5BcGkgZm9ybWF0LiBXZSBmZWx0IHRoYXQgaXQgd2FzIG5vdCAKZW5vdWdoIGNhdXNlIGFsbCBmcm9udGVuZCBkZXZzIGhhZCB0byByZXdyaXRlIHRoZW0gb25jZSBhZ2Fpbi4gU28gZXZlbnR1YWxseSB3ZSBhZGRlZCBjb252ZXJ0b3JzIHRvIG1vcmUgbGFuZ3VhZ2VzLgoKQXQgdGhpcyBtb21lbnQgd2UgZ2VuZXJhdGUgZnJvbnRlbmQgQVBJIG1vZGVscyBmcm9tIGJhY2tlbmQgbW9kZWxzLgoKIyMjIEZlYXR1cmVzClN1cHBvcnRlZCBmZWF0dXJlczoKIC0gcHJpbWl0aXZlcyAtIGNvbnZlcnNpb24gZnJvbSBLb3RsaW4gdG8gdGFyZ2V0IGxhbmd1YWdlLAogLSBob21vZ2Vub3VzIGl0ZXJhYmxlcyAtIHNlbGVjdCBjb2xsZWN0aW9ucyBhbmQgYXJyYXlzIGFyZSBjb252ZXJ0ZWQsCiAtIG51bGwtc2FmZXR5LAogLSBlbnVtcyAtIGluY2x1ZGluZyBjdXN0b20gc2VyaWFsaXNhdGlvbiBuYW1lLAogLSBjbGFzc2VzIC0gYWxsIHB1YmxpYyBwcm9wZXJ0aWVzIGFyZSB0cmFuc2Zvcm1lZCwKIC0gbmVzdGVkIGNsYXNzZXMsCiAtIHR5cGUgYWxpYXNlcyAtIG9ubHkgdHJpdmlhbCBjYXNlcywgZm9yIGV4YW1wbGUgYHR5cGVhbGlhcyBVc2VySWQgPSBMb25nYC4KClVuc3VwcG9ydGVkIGZlYXR1cmVzOgogLSBtYXBzLAogLSBnZW5lcmljcywKIC0gaW5oZXJpdGFuY2UsCiAtIGFic3RyYWN0IGNsYXNzZXMsCiAtIHBhY2thZ2VzICg9IG91dHB1dCBpcyBzdXBwb3NlZCB0byBiZSBwcmludGVkIGludG8gb25lIGZpbGUpLgoKSGF2ZSBhIGxvb2sgYXQgYHNhbXBsZS9zcmMvbWFpbmAgd2hlcmUgaW4gYGtvdGxpbmAgZm9sZGVyIGFyZSBzb3VyY2UgZmlsZXMgYW5kIGluIGByZXNvdXJjZXNgIGZvbGRlciAKeW91IGNhbiBmaW5kIGdlbmVyYXRlZCBvdXRwdXQuCgojIyBMYXRlc3QgdmVyc2lvbgoKTGlicmFyeSBpcyBhdmFpbGFibGUgb24gTWF2ZW4gQ2VudHJhbC4KCiFbTGF0ZXN0IHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tY2VudHJhbC92L2NvbS5lbGV2dXAvbW9nZW4gIkxhdGVzdCBsaWIgdmVyc2lvbiIpCmBgYGdyb292eQppbXBsZW1lbnRhdGlvbiAnY29tLmVsZXZ1cDptb2dlbjokdmVyc2lvbicKYGBgCgojIyBIb3cgdG8gdXNlCkZpcnN0IHlvdSBuZWVkIHRvIGdhdGhlciBhbGwgY2xhc3NlcyB0aGF0IG5lZWQgdG8gYmUgdHJhbnNmb3JtZWQuIFNpbXBsZSBjcmVhdGUgbGlzdCBvZiB0aGVtLgoKYGBga290bGluCnZhbCBjbGFzc2VzOiBMaXN0PEtDbGFzczwqPj4gPSBsaXN0T2YoRm9vOjpjbGFzcywgQmFyOjpjbGFzcykKYGBgCgojIyMgR2VuZXJhdGUgZGVmaW5pdGlvbnMKRGVwZW5kaW5nIG9uIGRlc2lyZWQgb3V0cHV0IHBpY2sgYSBnZW5lcmF0b3I6CgotIGBEYXJ0R2VuZXJhdG9yYCAuLi4gRGFydCAyLjEyKwotIGBPcGVuQXBpR2VuZXJhdG9yYCAuLi4gT3BlbkFwaSAzLjAKLSBgU3dpZnRHZW5lcmF0b3JgIC4uLiBTd2lmdAotIGBUeXBlU2NyaXB0R2VuZXJhdG9yYCAuLi4gVHlwZVNjcmlwdAoKYGBga290bGluCnZhbCBnZW5lcmF0b3I6IENhY2hlZEdlbmVyYXRvciA9IFR5cGVTY3JpcHRHZW5lcmF0b3IoKQogICAgLmFwcGVuZENsYXNzKFNvbWVDbGFzczo6Y2xhc3MpCiAgICAuYXBwZW5kQ2xhc3NlcyhsaXN0T2YoRm9vOjpjbGFzcywgQmFyOjpjbGFzcykpCgovLyBBY2Nlc3MgZ2VuZXJhdGVkIGRlZmluaXRpb25zCnZhbCBjbGFzc2VzID0gZ2VuZXJhdG9yLmdlbmVyYXRlZENsYXNzZXMKdmFsIGVudW1zID0gZ2VuZXJhdG9yLmdlbmVyYXRlZEVudW1zCnZhbCB0eXBlcyA9IGdlbmVyYXRvci5nZW5lcmF0ZWRUeXBlQWxpYXNlcwpgYGAKCiMjIyBUeXBlIGFsaWFzZXMKV2hlbiBhZGRpbmcgY2xhc3NlcyBNb2dlbiBhdXRvbWF0aWNhbGx5IGRldGVjdHMgcHJlc2VuY2Ugb2YgdHlwZSBhbGlhc2VzLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzCmFkZGl0aW9uYWwgbWFwcGluZyBpcyByZXF1aXJlZC4gSW1hZ2luZSB5b3Ugd2FudCB0byBzZXJpYWxpc2UgYExvY2FsRGF0ZVRpbWVgLiBJbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCB3aWxsIGJlY29tZQpgU3RyaW5nYCAoSVNPIHJlcHJlc2VudGF0aW9uKSwgaW4gc29tZSBgTG9uZ2AgKFVOSVggdGltZXN0YW1wKS4gVGhpcyBjb252ZXJzaW9uIGlzIG91dCBvZiB0aGUgc2NvcGUgb2YgdGhpcwpsaWJyYXJ5IGJ1dCB5b3VyIGZyb250ZW5kIG1vZGVscyBtdXN0IGJlIGNvbXBhdGlibGUuIEluIG9yZGVyIHRvIGRvIHNvLCB5b3UgbXVzdCBkZWZpbmUgdGFyZ2V0IGxhbmd1YWdlIHR5cGUuCgpGb3IgZXhhbXBsZSBpbiBgVHlwZVNjcmlwdGAgZGF0ZSBpcyByZXByZXNlbnRlZCBieSBgRGF0ZWAuIFRvIG1hcCBpdCBjb3JyZWN0bHksIHVzZSBgYXBwZW5kVHlwZWFsaWFzYCBtZXRob2Q6CgpgYGBrb3RsaW4KVHlwZVNjcmlwdEdlbmVyYXRvcigpCiAgICAuYXBwZW5kQ2xhc3MoVXNlcjo6Y2xhc3MpCiAgICAuYXBwZW5kVHlwZWFsaWFzKFR5cGVhbGlhcyhsb2NhbENsYXNzID0gTG9jYWxEYXRlVGltZTo6Y2xhc3MsIG5hbWUgPSAiRGF0ZSIpKQpgYGAKCklucHV0IChLb3RsaW4pOgpgYGBrb3RsaW4KdHlwZWFsaWFzIFVzZXJJZCA9IExvbmcKCmRhdGEgY2xhc3MgVXNlcigKICAgIHZhbCBpZDogVXNlcklkLAogICAgdmFsIGJpcnRoZGF5OiBMb2NhbERhdGVUaW1lLAopCmBgYApPdXRwdXQgKFR5cGVTY3JpcHQpOgpgYGB0eXBlc2NyaXB0CmV4cG9ydCB0eXBlIExvY2FsRGF0ZVRpbWUgPSBEYXRlCmV4cG9ydCB0eXBlIFVzZXJJZCA9IG51bWJlciAvLyBjb3BpZWQgYXV0b21hdGljYWxseQoKZXhwb3J0IGludGVyZmFjZSBVc2VyIHsKICAgIGJpcnRoZGF5OiBMb2NhbERhdGVUaW1lOyAvLyBLb3RsaW4ncyBjbGFzcyBuYW1lIGlzIGtlcHQsIHR5cGUgaXMgY3JlYXRlZAogICAgaWQ6IFVzZXJJZDsKfQpgYGAKCiMjIyBJbmRlbnRzCkV2ZXJ5b25lIHVzZXMgZGlmZmVyZW50IGluZGVudGF0aW9uIHJ1bGVzLiBUbyBtYWtlIGl0IGVhc2llciBmb3IgeW91IE1vZ2VuIGxldHMgeW91IGNvbmZpZ3VyZSBiYXNpYyBpbmRlbnRhdGlvbiB1bml0LgpUbyBhZGp1c3QgZGVmYXVsdCBpbmRlbnRhdGlvbiBwYXNzIHlvdXIgb3duIGBJbmRlbnRhdGlvbmAgaW4gZ2VuZXJhdG9yJ3MgY29uc3RydWN0b3IuIFlvdSBjYW4gY3JlYXRlIHlvdXIgb3duIGluc3RhbmNlIG9yCnVzZSBvbmUgb2YgcHJlLWRlZmluZWQgaW5kZW50czoKLSBgR2VuZXJpY0luZGVudHNgIC0gZGVzaWduZWQgZm9yIERhcnQsIFN3aWZ0IGFuZCBUeXBlU2NyaXB0LAotIGBPcGVuQXBpSW5kZW50c2AgLSBkZXNpZ25lZCBmb3IgT3BlbkFwaS4KCmBgYGtvdGxpbgpUeXBlU2NyaXB0R2VuZXJhdG9yKGluZGVudHMgPSBHZW5lcmljSW5kZW50cyhpbmRlbnQgPSAiXHQiKSkgLy8gRm9yICd0YWJzJyBjcmV3Ck9wZW5BcGlHZW5lcmF0b3IoaW5kZW50cyA9IE9wZW5BcGlJbmRlbnRzKGluZGVudCA9ICIgICIpKSAvLyBGb3JlICdzcGFjZXMnIGNyZXcKYGBgCgojIyMgUHJldHR5IHByaW50CkluIGNhc2UgeW91IGRvIG5vdCB3YW50IHRvIGRlYWwgd2l0aCBmb3JtYXR0aW5nIHVzZSBgUHJpbnRlcmAgdG8gY29udmVydCBnZW5lcmF0ZWQgZGVmaW5pdGlvbnMgdG8gc2luZ2xlIGBTdHJpbmdgCkxpYnJhcnkgY29tZXMgd2l0aCBidW5kbGVkOgogLSBgR2VuZXJpY1ByaW50ZXJgIHRoYXQgZGVhbHMgd2VsbCB3aXRoIERhcnQsIFN3aWZ0IGFuZCBUeXBlU2NyaXB0LAogLSBgT3BlbkFwaVByaW50ZXJgIHRoYXQgaXMgZGVzaWduZWQgZm9yIE9wZW5BcGkuCgpgYGBrb3RsaW4KdmFsIGFsbERlZmluaXRpb25zOiBTdHJpbmcgPSBnZW5lcmF0b3IucHJpbnQoR2VuZXJpY1ByaW50ZXIpCmBgYAoKIyMjIEFubm90YXRpb24gcHJvY2Vzc29ycwpTb21ldGltZXMgaXQncyB1c2VmdWwgdG8ga2VlcCBzb21lIG1ldGFkYXRhLiBJbWFnaW5lIHlvdSBoYXZlIGp1c3QgZGVwcmVjYXRlZCBzb21lIHByb3BlcnR5IGluIGJhY2tlZCwgYW5kIHlvdSAKd2FudCB0byBsZXQgb3RoZXJzIGtub3cgdGhhdCB0aGV5IHNob3VsZCBtaWdyYXRlIHRoZWlyIGNvZGUuIEluIHRoYXQgY2FzZSB5b3Ugd2FudCB0bwp1c2UgYERlcHJlY2F0ZWRBbm5vdGF0aW9uUHJvY2Vzc29yYCEgQW5ub3RhdGlvbiBwcm9jZXNzb3JzIGFyZSBwYXNzZWQgaW4gZ2VuZXJhdG9yJ3MgY29uc3RydWN0b3IuCgojIyMjIERlcHJlY2F0aW9uCmBgYGtvdGxpbgpUeXBlU2NyaXB0R2VuZXJhdG9yKGFubm90YXRpb25Qcm9jZXNzb3JzID0gbGlzdE9mKERlcHJlY2F0ZWRBbm5vdGF0aW9uUHJvY2Vzc29yKCkpKSAvLyA8LSBwYXNzIHRoZW0gaGVyZQogICAgICAgLmFwcGVuZENsYXNzKFVzZXI6OmNsYXNzKQogICAgICAgLmFwcGVuZFR5cGVBbGlhcyhUeXBlYWxpYXMobG9jYWxDbGFzcyA9IExvY2FsRGF0ZVRpbWU6OmNsYXNzLCBuYW1lID0gIkRhdGUiKSkKICAgICAgIC5wcmludChHZW5lcmljUHJpbnRlcikKICAgICAgIC5sZXQgeyBwcmludGxuKGl0KSB9CmBgYAoKSW5wdXQgKEtvdGxpbik6CmBgYGtvdGxpbgpkYXRhIGNsYXNzIFVzZXIoCiAgICB2YWwgaWQ6IExvbmcsCiAgICBARGVwcmVjYXRlZCgiTm90IHRpbWUtem9uZSBidWxsZXRwcm9vZiwgY2FsY3VsYXRlIGl0IG9uIHlvdXIgb3duIikKICAgIHZhbCBhZ2U6IEludCwKICAgIHZhbCBiaXJ0aGRheTogTG9jYWxEYXRlVGltZSwKKQpgYGAKCk91dHB1dCAoVHlwZVNjcmlwdCk6CmBgYHR5cGVzY3JpcHQKZXhwb3J0IHR5cGUgTG9jYWxEYXRlVGltZSA9IERhdGUKCmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7CiAgLyoqCiAgICogQGRlcHJlY2F0ZWQgTm90IHRpbWUtem9uZSBidWxsZXRwcm9vZiwgY2FsY3VsYXRlIGl0IG9uIHlvdXIgb3duCiAgICovCiAgYWdlOiBudW1iZXI7CiAgYmlydGhkYXk6IExvY2FsRGF0ZVRpbWU7CiAgaWQ6IG51bWJlcjsKfQoKYGBgCgojIyMjIEphdmFYIGFubm90YXRpb25zCkZvciB2YWxpZGF0aW9ucyBsaWtlIG1pbiwgbWF4LCBldGMuIG9uIHNlcnZlcjsgZHVyaW5nIGNvbnZlcnNpb24gaXQgd2lsbCBhcHBlbmQgY29tbWVudCB3aGVyZSB2YWxpZGF0aW9uIGNvbnN0cmFpbnRzIAphcmUgbGlzdGVkLgoKSW5wdXQgKEtvdGxpbik6CmBgYGtvdGxpbgpkYXRhIGNsYXNzIFVzZXIoCiAgICB2YWwgaWQ6IExvbmcsCiAgICBAZmllbGQ6U2l6ZShtaW4gPSAxLCBtYXggPSAxMDApCiAgICB2YWwgZmlyc3ROYW1lOiBTdHJpbmcsCikKYGBgCgpPdXRwdXQgKFR5cGVTY3JpcHQpOgpgYGB0eXBlc2NyaXB0CmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7CiAgLyoqCiAgICogbWluOiAxCiAgICogbWF4OiAxMDAKICAgKi8KICBmaXJzdE5hbWU6IHN0cmluZzsKICBpZDogbnVtYmVyOwp9CmBgYAoKIyMjIyBKYWNrc29uIGFubm90YXRpb25zCkhhbmRsZXMgYEBKc29uUHJvcGVydHlgIGFuZCBgQEpzb25WYWx1ZWAgYW5ub3RhdGlvbnMgdGhhdCBjYW4gbW9kaWZ5IG5hbWUgb2Ygc2VyaWFsaXNlZCBwcm9wZXJ0eS4KCklucHV0IChLb3RsaW4pOgpgYGBrb3RsaW4KZGF0YSBjbGFzcyBVc2VyKAogICAgQEpzb25Qcm9wZXJ0eSgidXNlcl9pZCIpCiAgICB2YWwgaWQ6IExvbmcsCiAgICBASnNvblByb3BlcnR5KCJ0ZWEiKQogICAgdmFsIGZhdm91cml0ZVRlYTogVGVhPyA9IG51bGwsCikgewogICAgZW51bSBjbGFzcyBUZWEgewogICAgICAgIEBKc29uUHJvcGVydHkoImciKSBHUkVFTiwgCiAgICAgICAgQEpzb25Qcm9wZXJ0eSgiYiIpIEJMQUNLLAogICAgfQp9CmBgYAoKT3V0cHV0IChUeXBlU2NyaXB0KToKYGBgdHlwZXNjcmlwdApleHBvcnQgZW51bSBVc2VyVGVhIHsKICBHUkVFTiA9ICdnJywKICBCTEFDSyA9ICdiJywKfQoKZXhwb3J0IGludGVyZmFjZSBVc2VyIHsKICAgIHRlYTogVXNlclRlYSB8IG51bGw7CiAgICB1c2VyX2lkOiBudW1iZXI7Cn0KYGBgCgojIyMgSG93IHRvIGNvbGxlY3QgYWxsIG1vZGVscwpJZiBhbGwgbW9kZWxzIGFyZSBpbiBvbmUgcGFja2FnZSB0aGVuIFtSZWZsZWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3Jvbm1hbW8vcmVmbGVjdGlvbnMpIGxpYnJhcnkgY2FuIGJlIGhlbHBmdWwhIFRoZW4geW91IGNhbiB1c2UgdGhpcyBjb2RlIHRvCmdldCBhbGwgY2xhc3NlczoKCmBgYGtvdGxpbgp2YWwgc291cmNlUGFja2FnZSA9ICJjb20uZm9vLmJhciIgLy8gRW50ZXIgY29ycmVjdCB2YWx1ZQp2YWwgcmVmbGVjdGlvbnMgPSBSZWZsZWN0aW9ucygKICAgIENvbmZpZ3VyYXRpb25CdWlsZGVyKCkKICAgICAgICAuZmlsdGVySW5wdXRzQnkoRmlsdGVyQnVpbGRlcigpLmluY2x1ZGVQYWNrYWdlKHNvdXJjZVBhY2thZ2UpKQogICAgICAgIC5zZXRVcmxzKENsYXNzcGF0aEhlbHBlci5mb3JQYWNrYWdlKHNvdXJjZVBhY2thZ2UpKQogICAgICAgIC5zZXRTY2FubmVycyhTdWJUeXBlc1NjYW5uZXIoZmFsc2UpKQopCgp2YWwgdHlwZUxpc3QgPSByZWZsZWN0aW9ucy5nZXRTdWJUeXBlc09mKE9iamVjdDo6Y2xhc3MuamF2YSkgKyByZWZsZWN0aW9ucy5nZXRTdWJUeXBlc09mKEVudW06OmNsYXNzLmphdmEpCnZhbCBjbGFzc2VzID0gdHlwZUxpc3QubWFwIHsgYyAtPiBjLmtvdGxpbiB9LmRpc3RpbmN0KCkKYGBgCgojIyBMaWNlbnNlCgogICAgQ29weXJpZ2h0IDIwMjEgZWxldnVwCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCg== readmeEtag: '"8df68b06f4727560ecf498a05838d7c6ce321d65"' readmeLastModified: Thu, 31 Mar 2022 08:47:39 GMT repositoryId: 455560085 description: Converts Kotlin models to other languages created: '2022-02-04T13:36:46Z' updated: '2024-07-27T19:27:43Z' language: Kotlin archived: false stars: 4 watchers: 1 forks: 0 owner: elevup logo: https://avatars.githubusercontent.com/u/79261866?v=4 license: Apache-2.0 repoEtag: '"9bbe9f09902608a79a1474d2247a7510b45b22c68731aa392554f06802edf8b5"' repoLastModified: Sat, 27 Jul 2024 19:27:43 GMT foundInMaster: true id: fe9ef951386e259cd49cdddcbd37f572 - source: openapi3 tags repository: https://github.com/xseman/superfaktura.openapi v3: true id: 13977644151f7e71ecab9beace0017dc repositoryMetadata: base64Readme: >- IyBTdXBlcmZha3R1cmEgT3BlbkFQSQoKIVtBbHQgdGV4dF0oZG9jcy9zd2FnZ2VyLXVpLnBuZykKClRoaXMgc3BlY2lmaWNhdGlvbiBoYXMgYmVlbiBtYW51YWxseSBjcmVhdGVkIHVzaW5nIGF2YWlsYWJsZSBbZG9jdW1lbnRhdGlvbl0sCmJ1dCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlcmUgYXJlIGVycm9ycyBvciBtaXNzaW5nIG5ldyBmZWF0dXJlcyBhcyB0aGUgQVBJCmV2b2x2ZXMgb3ZlciB0aW1lLiBJJ20gbWFraW5nIGFuIGVmZm9ydCB0byBrZWVwIGl0IHVwIHRvIGRhdGUuCgpbZG9jdW1lbnRhdGlvbl06IGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBlcmZha3R1cmEvZG9jcwoKSSB3b3VsZCBncmVhdGx5IGFwcHJlY2lhdGUgYW55IGNvbnRyaWJ1dGlvbnMgb3IgdXBkYXRlcyB0byB0aGUgT3BlbkFQSSBmaWxlIHRvCmFkZHJlc3MgYW55IGlzc3Vlcy4KCiMgQXV0aAoKU2VlIFtkb2N1bWVudGF0aW9uXVthdXRoLWRvY3VtZW50YXRpb25dIHdpdGggZXhhbXBsZXMuCgpbYXV0aC1kb2N1bWVudGF0aW9uXTogaHR0cHM6Ly9naXRodWIuY29tL3N1cGVyZmFrdHVyYS9kb2NzL2Jsb2IvbWFzdGVyL2ludHJvLm1kI2F1dGhlbnRpY2F0aW9uCg== readmeEtag: '"5846138d0c1b8a7e15d146b5fe0bbe6f2cfe2c46"' readmeLastModified: Sat, 10 Aug 2024 09:07:44 GMT repositoryId: 736693265 description: SuperFaktura OpenAPI created: '2023-12-28T15:49:58Z' updated: '2024-08-10T09:07:57Z' language: null archived: false stars: 4 watchers: 1 forks: 0 owner: xseman logo: https://avatars.githubusercontent.com/u/9111485?v=4 license: Apache-2.0 repoEtag: '"cbff94aaf777ea9931c74b12cc9e7c0107c6fd178af38bec127a19cf292835a1"' repoLastModified: Sat, 10 Aug 2024 09:07:57 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/goodforgod/micronaut-management-openapi v3: true repositoryMetadata: base64Readme: >- IyBNaWNyb25hdXQgTWFuYWdlbWVudCBPcGVuQVBJCgpbIVtNaW5pbXVtIHJlcXVpcmVkIEphdmEgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9KYXZhLTE3JTJCLWJsdWU/bG9nbz1vcGVuamRrKV0oaHR0cHM6Ly9vcGVuamRrLm9yZy9wcm9qZWN0cy9qZGsvMTcvKQpbIVtNYXZlbiBDZW50cmFsXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvaW8uZ29vZGZvcmdvZC9taWNyb25hdXQtbWFuYWdlbWVudC1vcGVuYXBpL2JhZGdlLnN2ZyldKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9pby5nb29kZm9yZ29kL21pY3JvbmF1dC1tYW5hZ2VtZW50LW9wZW5hcGkpCiFbSmF2YSBDSV0oaHR0cHM6Ly9naXRodWIuY29tL0dvb2Rmb3JHb2QvbWljcm9uYXV0LW1hbmFnZW1lbnQtb3BlbmFwaS93b3JrZmxvd3MvQ0klMjBNYXN0ZXIvYmFkZ2Uuc3ZnKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1Hb29kZm9yR29kX21pY3JvbmF1dC1tYW5hZ2VtZW50LW9wZW5hcGkmbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9R29vZGZvckdvZF9taWNyb25hdXQtbWFuYWdlbWVudC1vcGVuYXBpKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9R29vZGZvckdvZF9taWNyb25hdXQtbWFuYWdlbWVudC1vcGVuYXBpJm1ldHJpYz1jb3ZlcmFnZSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9R29vZGZvckdvZF9taWNyb25hdXQtbWFuYWdlbWVudC1vcGVuYXBpKQpbIVtNYWludGFpbmFiaWxpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1Hb29kZm9yR29kX21pY3JvbmF1dC1tYW5hZ2VtZW50LW9wZW5hcGkmbWV0cmljPXNxYWxlX3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9R29vZGZvckdvZF9taWNyb25hdXQtbWFuYWdlbWVudC1vcGVuYXBpKQoKTGlicmFyeSBwcm92aWRlcyBNaWNyb25hdXQgKmNsb3VkLWZyaWVuZGx5KiBPcGVuQVBJL1N3YWdnZXItVUkvUmFwaWRvYyBtYW5hZ2VtZW50IGVuZHBvaW50cy4KCkZlYXR1cmVzOgotIENsb3VkLWZyaWVuZGx5LCAqb3B0aW1pemVkIGZvciBmaWxlIHN0cmVhbWluZyogT3BlbkFQSS9Td2FnZ2VyLVVJL1JhcGlkb2MgZW5kcG9pbnRzCi0gTWVyZ2luZyBtdWx0aXBsZSBPcGVuQVBJIGZpbGVzIGludG8gb25lCi0gT3BlbkFQSSBleHBvc3VyZSBlbmRwb2ludAotIFN3YWdnZXIgVUkgZXhwb3N1cmUgZW5kcG9pbnQKLSAqU3dhZ2dlciBVSSBEYXJrXExpZ2h0IHRoZW1lKgotIFJhcGlkb2MgZXhwb3N1cmUgZW5kcG9pbnQKCiMjIERlcGVuZGVuY3kgOnJvY2tldDoKCioqR3JhZGxlKioKYGBgZ3Jvb3Z5CmltcGxlbWVudGF0aW9uICJpby5nb29kZm9yZ29kOm1pY3JvbmF1dC1tYW5hZ2VtZW50LW9wZW5hcGk6Mi4wLjAiCmBgYAoKKipNYXZlbioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmlvLmdvb2Rmb3Jnb2Q8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5taWNyb25hdXQtbWFuYWdlbWVudC1vcGVuYXBpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+Mi4wLjA8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyBFeGFtcGxlCgpIZXJlIGlzIFtzaW1wbGUgTWljcm9uYXV0IEhUVFAgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9Hb29kZm9yR29kL21pY3JvbmF1dC1qYXZhLWh0dHAtdGVtcGxhdGUpCndpdGggY29uZmlndXJlZCBsaWJyYXJ5IGFuZCBPcGVuQVBJLCB5b3UgcGxheSB3aXRoIGl0LgoKIyMgT3BlbkFQSSBHZW5lcmF0aW9uCgpMaWJyYXJ5IG9ubHkgZXhwb3NlcyAqT3BlbkFQSSosIGxpYnJhcnkgKipET0VTTidUKiogZ2VuZXJhdGUgaXQsIHRoaXMgaXMgeW91ciByZXNwb25zaWJpbGl0eSB0byBnZW5lcmF0ZSBPcGVuQVBJIGZpbGVzLgoKVGhlcmUgaXMgTWljcm9uYXV0IE9wZW5BUEkgZ2VuZXJhdG9yLCBbR3JhZGxlIGNvbmZpZ10oaHR0cHM6Ly9naXRodWIuY29tL0dvb2Rmb3JHb2QvbWljcm9uYXV0LWh0dHAtdGVtcGxhdGUvYmxvYi9tYXN0ZXIvYnVpbGQuZ3JhZGxlI0w0MCk6CgpgYGB5YW1sCmRlcGVuZGVuY2llcyB7CiAgICBhbm5vdGF0aW9uUHJvY2Vzc29yKCJpby5taWNyb25hdXQub3BlbmFwaTptaWNyb25hdXQtb3BlbmFwaSIpCiAgICBjb21waWxlT25seSgiaW8uc3dhZ2dlci5jb3JlLnYzOnN3YWdnZXItYW5ub3RhdGlvbnM6Mi4yLjE1IikKfQpgYGAKCk1vcmUgaW5mbyBhYm91dCBNaWNyb25hdXQgT3BlbkFQSSBnZW5lcmF0b3IgW2luIG9mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbWljcm9uYXV0LXByb2plY3RzLmdpdGh1Yi5pby9taWNyb25hdXQtb3BlbmFwaS9sYXRlc3QvZ3VpZGUvaW5kZXguaHRtbCkuCgojIyBFbmRwb2ludHMKCkxpYnJhcnkgYXV0b21hdGljYWxseSAqc2NhbiogZm9yIE9wZW5BUEkgZmlsZXMgaW5zaWRlIEpBUiBpbiAqZGVmYXVsdC1kaXJlY3RvcnkqIGFuZCBleHBvc2UgdGhlbSB2aWEgT3BlbkFQSSBlbmRwb2ludC4KCkVuZHBvaW50czoKLSAqKi9vcGVuYXBpKiogLSBbT3BlbkFQSV0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wKSBlbmRwb2ludC4KLSAqKi9zd2FnZ2VyLXVpKiogLSBbU3dhZ2dlciBVSV0oaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvLykgZW5kcG9pbnQuCi0gKiovcmFwaWRvYyoqIC0gW1JhcGlkb2NdKGh0dHBzOi8vbXJpbjkuZ2l0aHViLmlvL1JhcGlEb2MvZXhhbXBsZXMvZXhhbXBsZTIuaHRtbCkgZW5kcG9pbnQuCgpTd2FnZ2VyIFVJIGhhdmUgKipMaWdodFxEYXJrKiogdGhlbWUgc3dpdGNoISEhCgojIyBDb25maWd1cmF0aW9uCgpNb3N0IG9mIHRoZSBzZXR0aW5ncyBhcmUgKmNsb3VkLWZyaWVuZGx5KiBieSBkZWZhdWx0LgoKYGBgeWFtbApvcGVuYXBpOgogIHBhdGg6IC9vcGVuYXBpICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGF0aCBmb3IgT3BlbkFQSSBlbmRwb2ludCAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgLSAvb3BlbmFwaSkKICBlbmFibGVkOiB0cnVlICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBPcGVuQVBJIGV4cG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0IC0gdHJ1ZSkKICBtZXJnZTogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBtZXJnaW5nIE9wZW5BUEkgZm91bmQgaW4gZGVmYXVsdC1kaXJlY3RvcnkgIChkZWZhdWx0IC0gZmFsc2UpCiAgZGVmYXVsdC1kaXJlY3Rvcnk6IE1FVEEtSU5GL3N3YWdnZXIgICAvLyBQYXRoIGluc2lkZSBKQVIgd2hlcmUgdG8gc2VhcmNoIE9wZW5BUEkgICAgICAgICAgICAoZGVmYXVsdCAtIE1FVEEtSU5GL3N3YWdnZXIpCiAgZXhjbHVkZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPcGVuQVBJIGZpbGVzIHRvIGV4Y2x1ZGUgZnJvbSBleHBvc3VyZSAgICAgICAgICAgICAocGF0aCBvciBmaWxlbmFtZSkKICAgIC0gb3BlbmFwaS0xLnltbCAgICAgICAgICAgICAgICAgICAgIC8vIFBhdGggb3IgZmlsZW5hbWUgKGRlZmF1bHQtZGlyZWN0b3J5KQogICAgLSBNRVRBLUlORi9zd2FnZ2VyL29wZW5hcGktMi55bWwgICAgLy8gUGF0aCBvciBmaWxlbmFtZSAoZGVmYXVsdC1kaXJlY3RvcnkpCiAgaW5jbHVkZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmNsdWRlIE9OTFkgc3BlY2lmaWVkIE9wZW5BUEkgZmlsZXMgZm9yIGV4cG9zdXJlICAocGF0aCBvbmx5KQogICAgLSBNRVRBLUlORi9zd2FnZ2VyL29wZW5hcGktMy55bWwgICAgLy8gUGF0aCB0byBmaWxlIGluc2lkZSBKQVIKICAgIC0gZXh0ZXJuYWwtc3dhZ2dlci9vcGVuYXBpLTQueW1sICAgIC8vIFBhdGggdG8gZmlsZSBpbnNpZGUgSkFSCiAgCiAgc3dhZ2dlci11aToKICAgIHBhdGg6IC9zd2FnZ2VyLXVpICAgICAgICAgICAgICAgICAgIC8vIFBhdGggZm9yIFN3YWdnZXItVUkgZW5kcG9pbnQgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0IC0gL3N3YWdnZXItdWkpCiAgICBlbmFsYmVkOiBmYWxzZSAgICAgICAgICAgICAgICAgICAgICAvLyBFbmFibGUgU3dhZ2dlci1VSSBleHBvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCAtIGZhbHNlKQogIAogIHJhcGlkb2M6CiAgICBwYXRoOiAvcmFwaWRvYyAgICAgICAgICAgICAgICAgICAgICAvLyBQYXRoIGZvciBSYXBpZG9jIGVuZHBvaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCAtIC9yYXBpZG9jKQogICAgZW5hbGJlZDogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIFJhcGlkb2MgZXhwb3N1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgLSBmYWxzZSkgCmBgYAoKIyMjIE1lcmdlCgotICptZXJnZSogaXMgZGlzYWJsZWQgdGhlbiBhbnkgZmlyc3QgT3BlbkFQSSBmaWxlIHdpbGwgYmUgZXhwb3NlZCAoYWNjb3JkaW5nIHRvICpleGNsdWRlKiBhbmQgKmluY2x1ZGUqIGNvbmZpZ3VyYXRpb24pLgotICptZXJnZSogaXMgZW5hYmxlZCB0aGVuIGFsbCBzdWl0YWJsZSAoYWNjb3JkaW5nIHRvICpleGNsdWRlKiBhbmQgKmluY2x1ZGUqIGNvbmZpZ3VyYXRpb24pIE9wZW5BUEkgZmlsZXMgd2lsbCBiZSBtZXJnZWQgaW50byBvbmUgYW5kIGV4cG9zZWQuCgojIyMgU2VjdXJpdHkKCldoZW4geW91IGhhdmUgc2VjdXJpdHkgZW5hYmxlZCBhbmQgd2FudCB0byBwcm92aWRlICpub24tYXV0aCogYWNjZXNzIGZvciB5b3VyIE9wZW5BUEkvU3dhZ2dlci1VSS9SYXBvZGljIGVuZHBvaW50cyBoZXJlIGlzIGNvbmZpZ3VyYXRpb24gZm9yIHN1Y2ggY2FzZToKCmBgYHlhbWwKbWljcm9uYXV0OgogIHNlY3VyaXR5OgogICAgaW50ZXJjZXB0LXVybC1tYXA6CiAgICAgIC0KICAgICAgICBwYXR0ZXJuOiAvb3BlbmFwaXwvc3dhZ2dlci11aQogICAgICAgIGh0dHAtbWV0aG9kOiBHRVQKICAgICAgICBhY2Nlc3M6CiAgICAgICAgICAtIGlzQW5vbnltb3VzKCkKYGBgCgoKIyMgTWljcm9uYXV0IENvbXBhdGFiaWxpdHkKClN0YXJ0aW5nIGZyb20gdmVyc2lvbiAqMi4wLjAqIGxpYnJhcnkgc2hpcHMgZm9yICpNaWNyb25hdXQgNCogJiBKYXZhIDE3IGlzIHJlcXVpcmVkLgoKU3RhcnRpbmcgZnJvbSB2ZXJzaW9uICoxLjAuMCogbGlicmFyeSBzaGlwcyBmb3IgKk1pY3JvbmF1dCAzKiAmIEphdmEgMS44KyBpcyByZXF1aXJlZC4KCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgMi4wIC0gc2VlIHRoZSBbTElDRU5TRV0oTElDRU5TRSkgZmlsZSBmb3IgZGV0YWlscy4K readmeEtag: '"ef10a48b4778e7a3753774d234cfbe9e2e637607"' readmeLastModified: Thu, 10 Aug 2023 05:55:15 GMT repositoryId: 297153893 description: ⚙️ Micronaut cloud-friendly OpenAPI/Swagger-UI/Rapidoc management. created: '2020-09-20T20:02:27Z' updated: '2024-02-20T06:46:27Z' language: Java archived: false stars: 4 watchers: 3 forks: 1 owner: GoodforGod logo: https://avatars.githubusercontent.com/u/9437175?v=4 license: Apache-2.0 repoEtag: '"7227fced71ffdf3551aa8223d0bb42bbb7d9bdbec22ae05d1777ffdeb03ddbbf"' repoLastModified: Tue, 20 Feb 2024 06:46:27 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: f9d87f105e5a35d535b3f7c801437b29 - source: openapi3 tags repository: https://github.com/rabestro/pig-latin-rest v3: true id: a28256e662d8b3f9b919787f4b645788 repositoryMetadata: base64Readme: >- WyFbUXVhbGl0eSBHYXRlIFN0YXR1c10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9bHYuaWQuamMlM0FwaWctbGF0aW4tcmVzdCZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9bHYuaWQuamMlM0FwaWctbGF0aW4tcmVzdCkKWyFbQVBJIGRvY3NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQVBJLWRvY3MtaW5mb3JtYXRpb25hbCldKGh0dHBzOi8vcGlnbGF0aW4uYXp1cmV3ZWJzaXRlcy5uZXQvc3dhZ2dlci11aS9pbmRleC5odG1sKQpbIVtEZXBsb3llZCBvbiBBenVyZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EZXBsb3llZCUyMG9uLUF6dXJlLWJsdWUpXShodHRwczovL3BpZ2xhdGluLmF6dXJld2Vic2l0ZXMubmV0KQoKIyBQaWcgTGF0aW4gVHJhbnNsYXRvcgoKVGhpcyBpcyBhIFJFU1QgYXBwbGljYXRpb24gdGhhdCB0cmFuc2xhdGVzIEVuZ2xpc2ggc2VudGVuY2VzIGludG8gUGlnIExhdGluLiBUaGUgcnVsZXMgYW5kIGluc3RydWN0aW9ucyBmb3IgdGhlIFBpZyBMYXRpbiB0cmFuc2xhdGlvbiB3ZXJlIG9idGFpbmVkIGZyb20gdGhlIFtQaWcgTGF0aW4gZXhlcmNpc2Ugb24gdGhlIEV4ZXJjaXNtIEphdmEgVHJhY2tdKGh0dHBzOi8vZXhlcmNpc20ub3JnL3RyYWNrcy9qYXZhL2V4ZXJjaXNlcy9waWctbGF0aW4pLgoKVGhlIGFwcGxpY2F0aW9uIHdhcyBjcmVhdGVkIHRvIGV4cGVyaW1lbnQgd2l0aCB0aGUgQVBJLWZpcnN0IGFwcHJvYWNoOiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHdhcyBjcmVhdGVkIGZpcnN0LCB0aGVuIHRoZSBjb2RlIHdhcyBnZW5lcmF0ZWQgZm9yIFNwcmluZywgYW5kIGZpbmFsbHksIGN1c3RvbSBjb2RlIHdhcyBhZGRlZCB0aGF0IGRlcGVuZHMgb24gdGhlIGdlbmVyYXRlZCBjb2RlLgoKIyMgR2V0dGluZyBTdGFydGVkCgpCZWZvcmUgb3BlbmluZyB0aGUgY29kZSBmb3IgZWRpdGluZywgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBnZW5lcmF0ZSB0aGUgbmVjZXNzYXJ5IGNvZGU6CgpgYGBiYXNoCm12biBjbGVhbiBjb21waWxlCmBgYAoKVGhpcyBjb21tYW5kIGNsZWFucyB0aGUgcHJvamVjdCwgY29tcGlsZXMgdGhlIHNvdXJjZSBjb2RlLCBhbmQgZ2VuZXJhdGVzIHRoZSBjb2RlIHRoYXQgdGhlIGN1c3RvbSBjb2RlIGRlcGVuZHMgb24uIEFmdGVyIHJ1bm5pbmcgdGhpcyBjb21tYW5kLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gb3BlbiB0aGUgY29kZSB3aXRob3V0IGdldHRpbmcgYW55IGVycm9yIG1lc3NhZ2VzLgoKIyMgUnVubmluZyB0aGUgQXBwbGljYXRpb24gTG9jYWxseQoKVG8gcnVuIHRoZSBhcHBsaWNhdGlvbiBsb2NhbGx5LCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYmFzaAptdm4gY2xlYW4gY29tcGlsZSBzcHJpbmctYm9vdDpydW4KYGBgClRoaXMgd2lsbCBzdGFydCB0aGUgYXBwbGljYXRpb24gb24gbG9jYWxob3N0OjgwODAuIFlvdSBjYW4gYWNjZXNzIHRoZSBTd2FnZ2VyIFVJIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpLyBhbmQgdGhlIGFwcGxpY2F0aW9uIGVuZHBvaW50IGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9waWctbGF0aW4uCgojIyBEZXBsb3llZCBBcHBsaWNhdGlvbgoKVGhlIGFwcGxpY2F0aW9uIGlzIGRlcGxveWVkIG9uIEF6dXJlIGF0IGh0dHBzOi8vcGlnbGF0aW4uYXp1cmV3ZWJzaXRlcy5uZXQuCgpZb3UgY2FuIHVzZSB0aGUgc2ltcGxlIFt3ZWIgaW50ZXJmYWNlXShodHRwczovL3BpZ2xhdGluLmF6dXJld2Vic2l0ZXMubmV0KSBhbmQgdGhlIFtTd2FnZ2VyIFVJXShodHRwczovL3BpZ2xhdGluLmF6dXJld2Vic2l0ZXMubmV0L3N3YWdnZXItdWkvaW5kZXguaHRtbCkuCgpQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZCBvbiB0aGUgZnJlZS10aWVyIEYxIHBsYW4uIFRoaXMgbWVhbnMgdGhhdCBpZiB0aGUgYXBwbGljYXRpb24gaXMgaW4gc2xlZXAgbW9kZSwgaXQgbWF5IHRha2UgYWJvdXQgYSBtaW51dGUgZm9yIHRoZSBmaXJzdCBBUEkgY2FsbCB0byB3YWtlIGl0IHVwLiBTdWJzZXF1ZW50IEFQSSBjYWxscyBzaG91bGQgYmUgZmFzdGVyLgoKIyMgQVBJIFRlc3RpbmcKClRoZSBhcHBsaWNhdGlvbiBpbmNsdWRlcyBBUEkgdGVzdHMgd3JpdHRlbiB3aXRoIGZyYW1ld29ya3M6Ci0gW0thcmF0ZV0oaHR0cHM6Ly93d3cua2FyYXRlbGFicy5pby8pCi0gW0JydW5vXShodHRwczovL3d3dy51c2VicnVuby5jb20vKQotIFtIdXJsXShodHRwczovL2h1cmwuZGV2LykKLSBbaHR0cFlhY10oaHR0cHM6Ly9odHRweWFjLmdpdGh1Yi5pby8pCi0gW0pldEJyYWlucyBIVFRQIENsaWVudF0oaHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS9oZWxwL2lkZWEvaHR0cC1jbGllbnQtaW4tcHJvZHVjdC1jb2RlLWVkaXRvci5odG1sKQotIFtBcGFjaGUgak1ldGVyXShodHRwczovL2ptZXRlci5hcGFjaGUub3JnLykKCiMjIyBCcnVubwoKVG8gcnVuIHRoZSBCcnVubyBBUEkgdGVzdHMsIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgoKYGBgYmFzaApjZCBicnVuby10ZXN0Cm5wbSBydW4gdGVzdApgYGAKClN1Y2Nlc3NmdWwgdGVzdCByZXBvcnQ6Cmh0dHBzOi8vZ2l0aHViLmNvbS9yYWJlc3Ryby9waWctbGF0aW4tcmVzdC9ydW5zLzIwMzU3NjY5ODEyCgpGYWlsZWQgdGVzdCByZXBvcnQ6Cmh0dHBzOi8vZ2l0aHViLmNvbS9yYWJlc3Ryby9waWctbGF0aW4tcmVzdC9ydW5zLzIwNzA2MTY3MTQ0I3IwczEKCj4gWyFOT1RFXQo+IE5vdGUgLSBCcnVubydzIHNjcmlwdCBzdXBwb3J0IG1pZ2h0IGFsc28gYmUgdXNlZCBmb3IgbGlnaHQgdGVzdCBhdXRvbWF0aW9uIGJhc2VkIG9uIHByb2plY3Qgc3BlY2lmaWNzLgoKIyMjIEpldEJyYWlucyBIVFRQIENsaWVudAoKWyFbSFRUUCBDbGllbnQgLSBTZWNyZXQgV2VhcG9uIGZvciBXZWIgU2VydmljZSBUZXN0aW5nXShodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS9WTVVhT1o2a3ZKMC9kZWZhdWx0LmpwZyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Vk1VYU9aNmt2SjApCgpbIVtIVFRQIENsaWVudCBDTEldKGh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpL213aUhBdWtiV2pNL2RlZmF1bHQuanBnKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1td2lIQXVrYldqTSkKCgpTdWNjZXNzZnVsIHRlc3QgcmVwb3J0OgpodHRwczovL2dpdGh1Yi5jb20vcmFiZXN0cm8vcGlnLWxhdGluLXJlc3QvcnVucy8yMDI0MDcxODM3MwoKRmFpbGVkIHRlc3QgcmVwb3J0OgpodHRwczovL2dpdGh1Yi5jb20vcmFiZXN0cm8vcGlnLWxhdGluLXJlc3QvcnVucy8yMDI0MTcyNDk4NwoKIyMjIGh0dHBZYWMgLSB0aGUgRnJlZSBhbHRlcm5hdGl2ZSBvZiBKZXRCcmFpbnMgSFRUUCBDbGllbnQKCmh0dHBzOi8vaHR0cHlhYy5naXRodWIuaW8vCgojIyMgS2FyYXRlCgpUbyBydW4gdGhlIEthcmF0ZSBBUEkgdGVzdHMsIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCm12biBjbGVhbiB0ZXN0IC1EdGVzdD1UZXN0UnVubmVyCmBgYAoKIyMjIFBlcmZvcm1hbmNlIFRlc3RpbmcgYnkgQXBhY2hlIGpNZXRlcgoKTG9hZCBUZXN0IFtEZXNjcmlwdGl2ZSBTdW1tYXJ5L0NvbmNsdXNpb25zXShodHRwczovL2EuYmxhemVtZXRlci5jb20vYXBwL2V4ZWN1dGl2ZS1zdW1tYXJ5L2luZGV4Lmh0bWw/bWFzdGVyX2lkPTcxNzU4MTk4JnNlbGVjdGVkVGltZU1lYXN1cmU9bWlsbGlzZWNvbmRzIy8pIGFuZCBbRnVsbCBSZXBvcnRdKGh0dHBzOi8vYS5ibGF6ZW1ldGVyLmNvbS9hcHAvP3B1YmxpYy10b2tlbj1OOEVBeWdSYWN6Z1ZyRzVkVmZ6YWlXMDhLRVR0RUNYdnBoM1g2QkRrWFY2Q29JaTJwTSMvYWNjb3VudHMvMTg4Njg0MC93b3Jrc3BhY2VzLzE5NTgxODYvcHJvamVjdHMvMjMxMTQzMC9tYXN0ZXJzLzcxNzU4MTk4L3N1bW1hcnkpCg== readmeEtag: '"4edb803c82dedf62bdbf89bf33c2706405e5b699"' readmeLastModified: Tue, 30 Jul 2024 05:49:45 GMT repositoryId: 735633231 description: A project for experimenting with OpenAPI specification and API testing. created: '2023-12-25T16:10:39Z' updated: '2024-07-30T05:49:49Z' language: Groovy archived: false stars: 4 watchers: 3 forks: 1 owner: rabestro logo: https://avatars.githubusercontent.com/u/52966251?v=4 license: MIT repoEtag: '"4c1b3a4ad7dc8e489380bae1911401b40349bc92c355abdac29bc71a1d20a3a0"' repoLastModified: Tue, 30 Jul 2024 05:49:49 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/keisuke6065/openapi-combine v3: true repositoryMetadata: base64Readme: >- b3BlbmFwaS1jb21iaW5lCj09PT09PT09PT09PT09PQoKCiFbdGVzdCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL2tlaXN1a2U2MDY1L29wZW5hcGktY29tYmluZS93b3JrZmxvd3MvdGVzdCUyMENJL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKQpbIVtvY2xpZl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jbGktb2NsaWYtYnJpZ2h0Z3JlZW4uc3ZnKV0oaHR0cHM6Ly9vY2xpZi5pbykKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vcGVuYXBpLWNvbWJpbmUuc3ZnKV0oaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9vcGVuYXBpLWNvbWJpbmUpClshW0Rvd25sb2Fkcy93ZWVrXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kdy9vcGVuYXBpLWNvbWJpbmUuc3ZnKV0oaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9vcGVuYXBpLWNvbWJpbmUpClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvb3BlbmFwaS1jb21iaW5lLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9rZWlzdWtlNjA2NS9vcGVuYXBpLWNvbWJpbmUvYmxvYi9tYXN0ZXIvcGFja2FnZS5qc29uKQpbIVtEb2NrZXIgSHViIHBhY2thZ2VdKGh0dHBzOi8vZG9ja2VyaS5jby9pbWFnZS9rZWlzdWtlNjA2NS9vcGVuYXBpLWNvbWJpbmUpXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Iva2Vpc3VrZTYwNjUvb3BlbmFwaS1jb21iaW5lKQoKPCEtLSB0b2MgLS0+CiogW0ZlYXR1cmVzXSgjZmVhdHVyZXMpCiogW1VzYWdlXSgjdXNhZ2UpCiogW0NvbW1hbmRzXSgjY29tbWFuZHMpCjwhLS0gdG9jc3RvcCAtLT4KIyBGZWF0dXJlcwpTdXBwb3J0cyBgJHJlZmAgU3ludGF4IGFuZCBgJHJlZnNgIEV4dGVuZGVkIHN5bnRheCAgCmAkcmVmYCBzdXBwb3J0cyBiYXNlZCBvbiBbcmZjMzk4Nl0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYpICAgIApUaGUgZXh0ZW5kZWQgc3ludGF4IG9mIGAkcmVmc2AgaXMgYSBzeW50YXggdGhhdCBjYW4gaGF2ZSBgJHJlZmAgYXMgYW4gYXJyYXkgIAoKIyMgRXh0ZW5kZWQgc3ludGF4IHVzYWdlIGV4YW1wbGVzCkRlZmluZSBtdWx0aXBsZSBgJHJlZmAgcmVmZXJlbmNlcyB1c2luZyBgJHJlZnNgIGFzIHNob3duIGJlbG93CihDdXJyZW50bHkgb25seSBMb2NhbCBSZWZlcmVuY2Ugc3VwcG9ydCkKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IGV4YW1wbGVzCnNlcnZlcnM6CiAgLSB1cmw6IGh0dHA6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YxCnBhdGhzOgogIC9wZXRzL3twZXRJZH06CiAgICAkcmVmOiAuL3BhdGhzL3BldHMvaWQvaW5kZXgueWFtbApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICAkcmVmczoKICAgICAgLSAuL2NvbXBvbmVudHMvc2NoZW1hcy9wZXQueWFtbAogICAgICAtIC4vY29tcG9uZW50cy9zY2hlbWFzL3BldHMueWFtbAogICAgRXJyb3I6CiAgICAgICRyZWY6IC4vY29tcG9uZW50cy9zY2hlbWFzL2Vycm9yLnlhbWwKYGBgCnNlZSBjb252ZXJ0IGV4YW1wbGUgW2V4YW1wbGUvb3BlbmFwaS55YW1sXShleGFtcGxlL29wZW5hcGkueWFtbCkgLT4gW2V4YW1wbGUvb3BlbmFwaS55YW1sXShleGFtcGxlL3Jlc3VsdC55YW1sKQoKCiMgVXNhZ2UKPCEtLSB1c2FnZSAtLT4KYGBgc2gtc2Vzc2lvbgokIG5wbSBpbnN0YWxsIC1nIG9wZW5hcGktY29tYmluZQokIG9wZW5hcGktY29tYmluZSBDT01NQU5ECnJ1bm5pbmcgY29tbWFuZC4uLgokIG9wZW5hcGktY29tYmluZSAoLXZ8LS12ZXJzaW9ufHZlcnNpb24pCm9wZW5hcGktY29tYmluZS8wLjMuMSBsaW51eC14NjQgbm9kZS12MTYuMTUuMAokIG9wZW5hcGktY29tYmluZSAtLWhlbHAgW0NPTU1BTkRdClVTQUdFCiAgJCBvcGVuYXBpLWNvbWJpbmUgQ09NTUFORAouLi4KYGBgCjwhLS0gdXNhZ2VzdG9wIC0tPgojIENvbW1hbmRzCjwhLS0gY29tbWFuZHMgLS0+CiogW2BvcGVuYXBpLWNvbWJpbmUgaGVscCBbQ09NTUFORF1gXSgjb3BlbmFwaS1jb21iaW5lLWhlbHAtY29tbWFuZCkKKiBbYG9wZW5hcGktY29tYmluZSBtZXJnZWBdKCNvcGVuYXBpLWNvbWJpbmUtbWVyZ2UpCgojIyBgb3BlbmFwaS1jb21iaW5lIGhlbHAgW0NPTU1BTkRdYAoKRGlzcGxheSBoZWxwIGZvciBvcGVuYXBpLWNvbWJpbmUuCgpgYGAKVVNBR0UKICAkIG9wZW5hcGktY29tYmluZSBoZWxwIFtDT01NQU5EXQoKQVJHVU1FTlRTCiAgQ09NTUFORCAgQ29tbWFuZCB0byBzaG93IGhlbHAgZm9yLgoKT1BUSU9OUwogIC1uLCAtLW5lc3RlZC1jb21tYW5kcyAgSW5jbHVkZSBhbGwgbmVzdGVkIGNvbW1hbmRzIGluIHRoZSBvdXRwdXQuCmBgYAoKX1NlZSBjb2RlOiBbQG9jbGlmL3BsdWdpbi1oZWxwXShodHRwczovL2dpdGh1Yi5jb20vb2NsaWYvcGx1Z2luLWhlbHAvYmxvYi92NS4xLjEyL3NyYy9jb21tYW5kcy9oZWxwLnRzKV8KCiMjIGBvcGVuYXBpLWNvbWJpbmUgbWVyZ2VgCgpkZXNjcmliZSB0aGUgY29tbWFuZCBoZXJlCgpgYGAKVVNBR0UKICAkIG9wZW5hcGktY29tYmluZSBtZXJnZQoKT1BUSU9OUwogIC1pLCAtLWlucHV0PWlucHV0ICAgICAocmVxdWlyZWQpIGlucHV0IHRhcmdldCB5YW1sIGZpbGUKICAtbywgLS1vdXRwdXQ9b3V0cHV0ICAgW2RlZmF1bHQ6IC4vb3V0cHV0L29wZW5hcGkueWFtbF0gb3V0cHV0IHRhcmdldCB5YW1sIGZpbGUKICAtdCwgLS10eXBlPXlhbWx8anNvbiAgW2RlZmF1bHQ6IHlhbWxdIG91dHB1dCBmb3JtYXQgeWFtbCBvciBqc29uCgpFWEFNUExFCiAgJCBvcGVuYXBpLWNvbWJpbmUgbWVyZ2UgLWkgLi9leGFtcGxlL29wZW5hcGkueWFtbCAtbyAuL2J1aWxkL29wZW5hcGkueWFtbApgYGAKPCEtLSBjb21tYW5kc3N0b3AgLS0+Cg== readmeEtag: '"25fa7a46e17d3466f564b6c137a1207301c0c096"' readmeLastModified: Thu, 09 Jun 2022 03:09:18 GMT repositoryId: 290097194 description: openapi combine tools Extended syntax `$refs` created: '2020-08-25T02:57:22Z' updated: '2022-12-15T07:21:32Z' language: TypeScript archived: false stars: 4 watchers: 3 forks: 0 owner: keisuke6065 logo: https://avatars.githubusercontent.com/u/6197330?v=4 license: MIT repoEtag: '"c8ff83d6d3c7cd5d11826db320de6bf5dcd9cffe01af79fe590f00cd37caef82"' repoLastModified: Thu, 15 Dec 2022 07:21:32 GMT foundInMaster: true category: Parsers id: 54556e5124d461a37adbe50e3129138b - source: openapi3 tags repository: https://github.com/eliezio/simple-pki v3: true repositoryMetadata: base64Readme: >- aWZuZGVmOjplbnYtZ2l0aHViW10KOmRvY3R5cGU6IGJvb2sKOmljb25zOiBmb250Cjpzb3VyY2UtaGlnaGxpZ2h0ZXI6IGhpZ2hsaWdodGpzCjp0b2M6IGxlZnQKOnRvY2xldmVsczogMwo6c2VjdGxpbmtzOgoKKysrKwo8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTttaW4td2lkdGg6OTYwcHgiPgo8YSBocmVmPSIgaHR0cHM6Ly9naXRodWIuY29tL2VsaWV6aW8vc2ltcGxlLXBraSI+PGltZyB3aWR0aD0iMTQ5IiBoZWlnaHQ9IjE0OSIgc3JjPSJodHRwczovL2dpdGh1Yi5ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzEyL2ZvcmttZV9yaWdodF9kYXJrYmx1ZV8xMjE2MjEucG5nP3Jlc2l6ZT0xNDklMkMxNDkiIGNsYXNzPSJhdHRhY2htZW50LWZ1bGwgc2l6ZS1mdWxsIiBhbHQ9IkZvcmsgbWUgb24gR2l0SHViIiBkYXRhLXJlY2FsYy1kaW1zPSIxIiBzdHlsZT0iIHBvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDowO3RvcDowIj48L2E+CjwvZGl2PgorKysrCmVuZGlmOjpbXQoKPSBTaW1wbGUgUEtJCkVsacOpemlvIE9saXZlaXJhIDxlbGllemlvQHBtLm1lPgp2e3Byb2plY3QtdmVyc2lvbn0KCmltYWdlOmh0dHBzOi8vdHJhdmlzLWNpLm9yZy9lbGllemlvL3NpbXBsZS1wa2kuc3ZnP2JyYW5jaD1tYXN0ZXJbQnVpbGQsIGxpbms9Imh0dHBzOi8vdHJhdmlzLWNpLm9yZy9lbGllemlvL3NpbXBsZS1wa2kiXQppbWFnZTpodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1lbGllemlvX3NpbXBsZS1wa2kmbWV0cmljPWFsZXJ0X3N0YXR1c1tTb25hclF1YmUgUXVhbGl0eSBHYXRlLCBsaW5rPSJodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWVsaWV6aW9fc2ltcGxlLXBraSJdCmltYWdlOmh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWVsaWV6aW9fc2ltcGxlLXBraSZtZXRyaWM9Y292ZXJhZ2VbQ292ZXJhZ2UsIGxpbms9Imh0dHBzOi8vc29uYXJjbG91ZC5pby9wcm9qZWN0L2FjdGl2aXR5P2N1c3RvbV9tZXRyaWNzPWNvdmVyYWdlJmdyYXBoPWN1c3RvbSZpZD1lbGllemlvX3NpbXBsZS1wa2kiXQppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL2VuZHBvaW50LnN2Zz91cmw9aHR0cHM6Ly9lbGllemlvLmdpdGh1Yi5pby9zaW1wbGUtcGtpL3BpdGVzdC9zaGllbGRzLmpzb25bUGl0ZXN0LCBsaW5rPSJodHRwczovL2VsaWV6aW8uZ2l0aHViLmlvL3NpbXBsZS1wa2kvcGl0ZXN0LyJdCgo9PSBPdmVydmlldwoKVGhpcyBhcHBsaWNhdGlvbiBwcm92aWRlcyB0aGUgYmFzaWMgc2VydmljZXMgdHlwaWNhbGx5IGZvdW5kIG9uIGFueSBQS0k6CgotIEdlbmVyYXRlcyBYLjUwOSBjZXJ0aWZpY2F0ZXM7Ci0gQWxsb3cgcHJlZW1wdGl2ZSByZXZvY2F0aW9uIG9mIGlzc3VlZCBjZXJ0aWZpY2F0ZXM7Ci0gR2VuZXJhdGVzIGFuIHVwZGF0ZWQgQ1JMIChDZXJ0aWZpY2F0ZSBSZXZvY2F0aW9uIExpc3QpOwotIFN1cHBseSB0aGUgQ0EgY2VydGlmaWNhdGUuCgpUaGUgUEtJIGltcGxlbWVudGVkIGlzIGNvbXByaXNlZCBvZiBhIHNpbmdsZSBDQSB3aXRoIF9ub18gaW50ZXJtZWRpYXRlIENBcy4KCj09IENvZGUgQ292ZXJhZ2UKCmltYWdlOmh0dHBzOi8vY29kZWNvdi5pby9naC9lbGllemlvL3NpbXBsZS1wa2kvYnJhbmNoL21hc3Rlci9ncmFwaHMvdHJlZS5zdmdbbGluaz0iaHR0cHM6Ly9jb2RlY292LmlvL2doL2VsaWV6aW8vc2ltcGxlLXBraS9icmFuY2gvbWFzdGVyL2dyYXBocy90cmVlLnN2ZyJdCgo9PSBCdWlsZGluZyB0aGUgYXBwbGljYXRpb24KClRvIGJ1aWxkIHRoZSBhcHBsaWNhdGlvbiBmcm9tIHRoZSBzb3VyY2VzIGp1c3QgcnVuOgoKYGBgCi4vZ3JhZGxldyBidWlsZApgYGAKCj09IERvY2tlciBJbWFnZQoKWW91IGNhbiBhbHNvIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGZyb20gdGhlIHNvdXJjZSBjb2RlIHVzaW5nIHRoZQpbSmliIHBsdWdpbl0oaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNvbnRhaW5lclRvb2xzL2ppYi90cmVlL21hc3Rlci9qaWItZ3JhZGxlLXBsdWdpbiNidWlsZC15b3VyLWltYWdlKSBsaWtlLCBmb3IgZXhhbXBsZToKCmBgYAouL2dyYWRsZXcgamliRG9ja2VyQnVpbGQKYGBgCgo9PSBJbnN0YWxsYXRpb24KClRoZSBmaXJzdCBzdGVwIGlzIGNyZWF0ZSB0aGUga2V5c3RvcmUgd2l0aCB0aGUgQ0EgZW50aXR5LgpBcyBhbiBleGFtcGxlLCB5b3UgY2FuIHJ1biB0aGUgYHNyYy9tYWluL3NjcmlwdHMvY3JlYXRlLWNhLnNoYCB0aGF0IHdpbGwgY3JlYXRlIGEgYC4vZGF0YS9jYS5wMTJgIGtleXN0b3JlIHdpdGggZGVmYXVsdCBwYXNzd29yZHMgc2V0IHRvIGBjaGFuZ2VpdGAuCgo9PSBSdW5uaW5nIHdpdGggJ2RlYnVnJyBwcm9maWxlIGFjdGl2YXRlZAoKSWYgdXNpbmcgR3JhZGxlLCBydW46CgpgYGAKLi9ncmFkbGV3IGJvb3RSdW4gLS1hcmdzPSctLXNwcmluZy5wcm9maWxlcy5hY3RpdmU9ZGVidWcnCmBgYAoKPT0gTGljZW5zZQoKQ29weXJpZ2h0IChDKSAyMDE5LTIwMjIgTm9yZGl4IEZvdW5kYXRpb24uCg== readmeEtag: '"640141e2f03f828adbd519c342f339e3e55076fb"' readmeLastModified: Tue, 02 Jan 2024 17:59:53 GMT repositoryId: 193696687 description: A Simple PKI created: '2019-06-25T11:42:04Z' updated: '2022-11-02T15:22:40Z' language: Kotlin archived: false stars: 4 watchers: 1 forks: 1 owner: eliezio logo: https://avatars.githubusercontent.com/u/1125375?v=4 license: NOASSERTION repoEtag: '"f2f9a3cc83676afb39bfbf950e929a28acb2e23e30f07a6bcab0077017eba526"' repoLastModified: Wed, 02 Nov 2022 15:22:40 GMT foundInMaster: true category: Server id: 001f83813b19f87d61e5fffe2bc21055 - source: openapi3 tags repository: https://github.com/input-output-hk/cardano-governance v3: true repositoryMetadata: base64Readme: >- IyBjYXJkYW5vLWdvdmVybmFuY2UKIVtDYXJkYW5vLUdvdmVybmFuY2UtcmVwb3NpdG9yeS01MDBdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzE3MDIxMjQ5LzE1MDA0NzI4OC1kMjE5NWI4MS02NGE2LTRkMGYtYTdlZi01OTBjZDZkMTdiMGEucG5nKQoK readmeEtag: '"a189815df425364a844146b0cf398a5f65d2aed3"' readmeLastModified: Wed, 19 Jan 2022 01:38:27 GMT repositoryId: 449402368 description: >- A public open governance github repository containing governance documentation, examples and Open APIs. created: '2022-01-18T18:32:22Z' updated: '2023-01-24T18:29:16Z' language: null archived: false stars: 4 watchers: 9 forks: 0 owner: input-output-hk logo: https://avatars.githubusercontent.com/u/12909177?v=4 repoEtag: '"67559b33c732e0f148a2b7335cb18787ad3a2fee29c7fddc0520d7a004a77fe4"' repoLastModified: Tue, 24 Jan 2023 18:29:16 GMT foundInMaster: true category: Low-level Tooling id: def1d8b02e3343ae5fb306289fd9c5ce - source: openapi3 tags repository: https://github.com/trellix-opensource/intelligent-sandbox-api v3: true id: cfc5cc1c72af92b4d8b81459311749fc repositoryMetadata: base64Readme: >- IyBUcmVsbGl4IEludGVsbGlnZW50IFNhbmRib3ggKEZvcm1lcjogQVREKQpUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZvciBpbnRlcmFjdGluZyB3aXRoIFJFU1QgQVBJcyB0aGF0IFtUcmVsbGl4IEludGVsbGlnZW50IFNhbmRib3hdKGh0dHBzOi8vZG9jcy50cmVsbGl4LmNvbS9lbi9idW5kbGU/bGFiZWxrZXk9cHJvZC1hZHZhbmNlZC10aHJlYXQtZGVmZW5zZSkgKGZvcm1lcjogQVREKSBvZmZlcnMuIDxici8+CiMjIEhvdyB0byBnZW5lcmF0ZSBTREtzPwoKIyMjIFNldHRpbmcgdXAgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIGluIHlvdXIgZW52aXJvbm1lbnQgKG9uZSB0aW1lIHN0ZXApCjEuIE5hdmlnYXRlIHRvOiBbT3BlbkFQSSBHZW5lcmF0b3IgaW5zdGFsbGF0aW9uXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvZG9jcy9pbnN0YWxsYXRpb24vKQoyLiBDaG9vc2UgdGhlIENMSSBjbGllbnQgdGhhdCBzdWl0cyB5b3VyIG5lZWQvaW50ZWdyYXRlcyB3aXRoIHlvdXIgcGxhdGZvcm0gYmV0dGVyLiAoKipSZWNvbW1lbmRlZCB0byB1c2UgdjUuMC4xKykqKiAgRm9yIG1vcmUgaW5mbyBwbGVhc2UgdmlzaXQ6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCA8YnIvPgozLiBUaGUgT3BlbkFQSSBHZW5lcmF0b3Igc3VwcG9ydHMgbWFueSBkaWZmZXJlbnQgaW50ZWdyYXRpb25zIGFuZCB1c2UgY2FzZXMsIGluY2x1ZGluZyAoYnV0IG5vdCBsaW1pdGVkIHRvKToKICAgIC0gTWF2ZW4gUGx1Z2luCiAgICAtIEdyYWRsZSBQbHVnaW4KICAgIC0gQmF6ZWwgUGx1Z2luCiAgICAtIFNCVCBQbHVnaW4KICAgIC0gQ2FrZSBQbHVnaW4KICAgIC0gQ0xJIHZpYSBIb21lYnJldwogICAgLSBDTEkgdmlhIERvY2tlcgogICAgLSBDTEkgdmlhIG5wbQogICAgLSBHZW5lcmF0b3IgU2FhUzxicj4KICBGb3IgZGV0YWlscywgc2VlIFtXb3JrZmxvdyBJbnRlZ3JhdGlvbnNdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9kb2NzL2ludGVncmF0aW9ucy8pCgoqKk5PVEU6KiogCjxici8+CkluIHNvbWUgY2FzZXMgdGhlIGNsaSBnZW5lcmF0b3IgbWlnaHQgYmUgbmFtZWQgYXMgPGNvZGU+b3BlbmFwaS1nZW5lcmF0b3ItY2xpPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPm9wZW5hcGktZ2VuZXJhdG9yPC9jb2RlPiwgcGxlYXNlIGJlIGNhdXRpb3VzLgoKIyMjIEdlbmVyYXRpbmcgdGhlIFNESyAKMS4gUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhbmQgbWFrZSBzdXJlIHlvdSBhcmUgKipydW5uaW5nIHZlcnNpb24gNS4wKy4qKiBbRmluZCB0aGUgbGF0ZXN0IHZlcnNpb24gaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcykgPGJyPgogICAgPGNvZGU+b3BlbmFwaS1nZW5lcmF0b3IgdmVyc2lvbjwvY29kZT4KMi4gRm9yIGxpc3Rpbmcgb3V0IHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2VzIHlvdSBjYW4gdXNlOjxici8+CiAgPGNvZGU+b3BlbmFwaS1nZW5lcmF0b3IgbGlzdDwvY29kZT48YnI+CiAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB2aXNpdDogW0xpc3Qgb2YgY2xpZW50IGdlbmVyYXRvcnNdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9kb2NzL2dlbmVyYXRvcnMvI2NsaWVudC1nZW5lcmF0b3JzKSBmb3IgbGlzdCBvZiBzdXBwb3J0ZWQgY2xpZW50IFNES3MuCjMuIEZvciBnZW5lcmF0aW5nIHRoZSBjbGllbnQgaW4gdGhlIGxhbmd1YWdlIG9mIHlvdXIgY2hvaWNlLCBydW4gdGhlIGZvbGxvd2luZzogPGJyLz4KIDxjb2RlPm9wZW5hcGktZ2VuZXJhdG9yIGdlbmVyYXRlIC1pIGlucHV0X2ZpbGVfbmFtZS55YW1sIC1nIGFfbGFuZ3VhZ2VfbmFtZV9mcm9tX2xpc3QgLW8gL3BhdGgvdG8vb3V0cHV0X2ZvbGRlcjwvY29kZT4gPGJyLz4KIDxici8+CjxiPk5PVEU6PC9iPgo8YnIvPgogMS4gSWYgZHVyaW5nIGV4ZWN1dGlvbiB5b3UgZW5jb3VudGVyIGFuIGVycm9yIHNheWluZyAiYW55IG1vZHVsZS9tb2RlbCBuYW1lIiBub3QgZm91bmQsIGtpbmRseSBnZW5lcmF0ZSB0aGUgY2xpZW50IHVzaW5nIHRoZSBmb2xsb3dpbmcgZ2xvYmFsIHByb3BlcnR5Ojxici8+CiA8Y29kZT5vcGVuYXBpLWdlbmVyYXRvciBnZW5lcmF0ZSAtaSBmaWxlX25hbWUueWFtbCAtZyBhX2xhbmd1YWdlX25hbWVfZnJvbV9saXN0IC1vIC9wYXRoL3RvL291dHB1dF9mb2xkZXIgLS1nbG9iYWwtcHJvcGVydHkgc2tpcEZvcm1Nb2RlbD1mYWxzZTwvY29kZT48YnIvPgoKIyMgSW1wb3J0aW5nIG9wZW5hcGkgc3BlYyBpbiBQb3N0bWFuCkluIG9yZGVyIHRvIGltcG9ydCB0aGUgW09wZW5BUEldKG9wZW5hcGkueWFtbCkgZmlsZSBpbiBwb3N0bWFuLCBwbGVhc2UgcmVmZXIgdG8gOiBbd29ya2luZyB3aXRoIG9wZW5BUEldKGh0dHBzOi8vbGVhcm5pbmcucG9zdG1hbi5jb20vZG9jcy9pbnRlZ3JhdGlvbnMvYXZhaWxhYmxlLWludGVncmF0aW9ucy93b3JraW5nLXdpdGgtb3BlbkFQSS8pCgojIyBDb250cmlidXRpbmcgYW5kIENvZGUgb2YgY29uZHVjdAogRm9yIENvZGUgb2YgY29uZHVjdCBhbmQgY29udHJpYnV0aW9uIGd1aWRlbGluZXMgcGxlYXNlIHJlZmVyIHRvIFtDT0RFX09GX0NPTkRVQ1RdKENPREVfT0ZfQ09ORFVDVC5tZCkgYW5kIFtDT05UUklCVVRJTkddKENPTlRSSUJVVElORy5tZCkgcmVzcGVjdGl2ZWx5LgogCgo= readmeEtag: '"adf909021b8a1a8dfe64cd5973d9ef02a05fb6f8"' readmeLastModified: Tue, 16 Aug 2022 05:22:33 GMT repositoryId: 521001395 description: >- The repository contains OpenAPI specification for interacting with REST APIs that Trellix Intelligent Sandbox (former: ATD) offers. created: '2022-08-03T19:05:34Z' updated: '2024-04-30T12:31:11Z' language: HTML archived: false stars: 4 watchers: 2 forks: 0 owner: trellix-opensource logo: https://avatars.githubusercontent.com/u/106668524?v=4 license: Apache-2.0 repoEtag: '"217df4c4eba2612e85db415d8b3a973bb3926526c524d4809e7ec38dbdc77f3d"' repoLastModified: Tue, 30 Apr 2024 12:31:11 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/cossteam/cossim-server v3: true id: 33aedab32d669fdd29a2a08114f19cba repositoryMetadata: base64Readme: >- Y29zcy1zZXJ2ZXIKPT09PT09PT09PT09PT0KYGNvc3NpbS9jb3NzLXNlcnZlcmAg5piv55So5LqO5pSv5oyBY29zcy1jbGllbnTnmoRBUEnmnI3liqHjgIIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqIFvnibnmgKddKCPnibnmgKcpCiogW+acjeWKoV0oI+acjeWKoSkKKiBb57uT5p6EXSgj57uT5p6EKQoqIFvlv6vpgJ/lkK/liqhdKCPlv6vpgJ/lkK/liqgpCiogW+mFjee9rl0oI+mFjee9rikKKiBb5paH5qGjXSgj5paH5qGjKQoqIFvmm7TlpJpdKCPmm7TlpJopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMjIOeJueaApwoqIOmrmOaAp+iDvQoqIOe6r0dvbGFuZ+WunueOsAoqIOWIhuW4g+W8j+acjeWKoeaetuaehO+8iOacjeWKoemXtOmAmuS/oeS9v+eUqGdycGPvvIkKKiBERETpobnnm67mnrbmnoQKKiDmlK/mjIHliqjmgIHmiannvKnmnI3liqHlrp7kvovkuI7otJ/ovb3lnYfooaEKKiDmnI3liqHlrp7kvovmlK/mjIFwcHJvZuiwg+ivleWSjHByb21ldGhldXMgbWV0cmljcyjlj6/mjqXlhaVwcm9tZXRoZXVz5ZKMZ3JhZmFuYeWunueOsOWPr+inhuWMlueahOacjeWKoeebkeaOpykKKiDmlK/mjIHmnI3liqHliqjmgIHms6jlhozlj5HnjrDlkozphY3nva7kuK3lv4PvvIjln7rkuo5jb25zdWzvvIkKKiDlrp7ml7Yr56a757q/5o6o6YCB5pSv5oyB77yIU29ja2V0SU8rUmFiYml0TVHvvIkKKiDph4fnlKjpq5jmgKfog71BUEnnvZHlhbPvvIhhcGlzaXjvvIkKKiDmnI3liqHnlJ/lkb3lkajmnJ/lrp7njrDvvIhtYW5hZ2XvvIkKKiBPU1Plr7nosaHlrZjlgqjvvIhtaW5pb++8iQoqIOS8oOi+k+WKoOWvhu+8iG9wZW5wZ3DvvIkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIyDmnI3liqEKPiBjb3NzLXNlcnZlciDljIXlkKvku6XkuIvmnI3liqHvvJoKCiogdXNlcjog8J+RpOeUqOaIt+acjeWKoe+8jOWkhOeQhueUqOaIt+azqOWGjOOAgeeZu+W9leetieWKn+iDveOAggoqIGdyb3VwOiDwn5Gs576k57uE5pyN5Yqh77yM566h55CG55So5oi35LmL6Ze055qE576k57uE5YWz57O744CCCiogcHVzaDog4pyI77iP5raI5oGv5o6o6YCB5pyN5Yqh77yM6LSf6LSj5a6e5pe25raI5oGv5o6o6YCB5Yqf6IO944CCCiogbXNnOiDwn5Op5raI5oGv5pyN5Yqh77yM5aSE55CG55So5oi36Ze05raI5oGv55qE5pS25Y+R5Yqf6IO944CCCiogbGl2ZTog4piO77iP6YCa6K+d5pyN5Yqh77yM5pSv5oyB6K+t6Z+z6YCa6K+d5ZKM6KeG6aKR6YCa6K+d5Yqf6IO944CCCiogc3RvcmFnZTog8J+Xg+WtmOWCqOacjeWKoe+8jOi0n+i0o+aWh+S7tuWtmOWCqOWSjOeuoeeQhuOAggoqIHJlbGF0aW9uOiDwn6ea4oCN5YWz57O75pyN5Yqh77yM566h55CG55So5oi35LmL6Ze055qE56S+5Lqk5YWz57O744CCCiogYWRtaW46IPCfkbfigI3nrqHnkIblkZjmnI3liqHvvIznlKjkuo7nrqHnkIbns7vnu5/nlKjmiLflkozmnYPpmZDjgIIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIyDnu5PmnoQKPumhueebruebuOWFs+ebruW9leS7i+e7jeWmguS4i++8mgpgYGAK4pSc4pSA4pSAIGJ1aWxkICPnlJ/miJBwZ3Dlhaznp4HpkqUK4pSc4pSA4pSAIGNtZCAj5ZCv5Yqo5paH5Lu2CuKUnOKUgOKUgCBkZXBsb3kgI+mFjee9rgrilJzilIDilIAgZG9jcyAj5o6l5Y+j5paH5qGjCuKUnOKUgOKUgCBpbnRlcm5hbCAj5pyN5Yqh5Luj56CBCuKUlOKUgOKUgCBwa2cgI+acjeWKoemcgOimgeeUqOWIsOeahOWFrOWFseW3peWFt+WMhQpgYGAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIyDlv6vpgJ/lkK/liqgKPiDku6XkuIvkuKTnp43mlrnlvI/pg73pnIDopoHlronoo4Vkb2NrZXItY29tcG9zZeS4jmRvY2tlcgo+IAo+IOKaoO+4j+ivt+WFiOWuieijhVtjb3NzLWNsaeW3peWFt10oaHR0cHM6Ly9naXRodWIuY29tL2Nvc3NpbS9jb3NzLWNsaS9yZWxlYXNlcykKPiAKPiDmnInlhbNjbGnlt6Xlhbfmm7TlpJrnmoTkv6Hmga/or7db5Y+C6ZiFXShodHRwczovL2dpdGh1Yi5jb20vY29zc2ltL2Nvc3MtY2xpKQojIyMg5rqQ56CB5ZCv5YqoCmBgYAoxLuaLieWPluacgOaWsOS7o+eggQpnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2Nvc3NpbS9jb3NzLXNlcnZlcgptdiAuL2Nvc3MtY2xpLXh4eCBjb3NzLXNlcnZlci9jb3NzLWNsaQpjZCBjb3NzLXNlcnZlcgoKMi7nlJ/miJDphY3nva7mlofku7YKY2htb2QgYSt4IGNvc3MtY2xpCmNvc3MtY2xpIGdlbiAtLXBhdGggLi9kZXBsb3kvZG9ja2VyLwoKMy7lkK/liqjlv4XpnIDkuK3pl7Tku7YKZG9ja2VyLWNvbXBvc2UgLWYgZGVwbG95L2RvY2tlci9kb2NrZXItY29tcG9zZS5iYXNlLnlhbWwgdXAgLWQKCjQu5ZCv5Yqo5pyN5YqhCui/memHjOWPquaLv3VzZXLkuL7kvosKZ28gcnVuIC4vY21kL3VzZXIvbWFpbi5nbyAtY29uZmlnIGRlcGxveS9kb2NrZXIvY29uZmlnL3NlcnZpY2UvdXNlci55YW1sCmBgYAojIyMgY2xp5bel5YW35ZCv5YqoCj4g4pqg77iP6K+35YWI5a6J6KOFW2Nvc3MtY2xp5bel5YW3XShodHRwczovL2dpdGh1Yi5jb20vY29zc2ltL2Nvc3MtY2xpL3JlbGVhc2VzKQo+IAo+IOKaoO+4j+ivt+azqOaEj++8mmNsaeW3peWFt+WQr+WKqOaXtu+8jOS8muiHquWKqOeUn+aIkOmFjee9ruaWh+S7tuWcqOW9k+WJjeebruW9leS4i++8jOWmguaciemcgOimgeivt+WIm+W7uuaWh+S7tuWkuQpgYGAKbWtkaXIgY29zcy1zZXJ2ZXIKY2QgY29zcy1zZXJ2ZXIKY29zcy1jbGkgc3RhcnQKYGBgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyMg6YWN572uCioqY29uZmlnL2NvbW1vbioqCj4g5a2Y5pS+5YWs5YWx5Lit6Ze05Lu26YWN572u5paH5Lu2CgoqKmNvbmZpZy9wZ3AqKgo+IOWtmOaUvnBncOWFrOengemSpQoKKipjb25maWcvc2VydmljZSoqCj4g5a2Y5pS+5omA5pyJ5pyN5Yqh6YWN572u5paH5Lu2CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyMg5paH5qGjClRPRE8KCiMjIOabtOWkmgpUT0RPCg== readmeEtag: '"2f523e7e0c8bb0d85b63a230e9014752bcfabe59"' readmeLastModified: Tue, 04 Jun 2024 09:01:56 GMT repositoryId: 736890548 description: coss-im-server created: '2023-12-29T07:07:13Z' updated: '2024-06-05T07:36:12Z' language: Go archived: false stars: 4 watchers: 0 forks: 4 owner: cossteam logo: https://avatars.githubusercontent.com/u/171768939?v=4 repoEtag: '"f518edc230e2338c0b33df10cf9d97c4c8fd90447b4094b68f05d2d3bc38c404"' repoLastModified: Wed, 05 Jun 2024 07:36:12 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/crazyoptimist/nest-starter v3: true id: e635e2fce4b0fcdb8d54a80a818fa0d1 repositoryMetadata: base64Readme: >- IyBOZXN0SlMgU3RhcnRlcgoKWyFbYnVpbGQgJiB0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vY3JhenlvcHRpbWlzdC9uZXN0LXN0YXJ0ZXIvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jcmF6eW9wdGltaXN0L25lc3Qtc3RhcnRlci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwpCgpCdWlsZCBhIG1vZHVsYXIgUkVTVCBBUEkgd2l0aCBOZXN0SlMgZnJhbWV3b3JrLgoKIyMgVGFibGUgb2YgQ29udGVudHMKCi0gW1doYXQgSXMgVGhpcz9dKCN3aGF0LWlzLXRoaXMpCi0gW0dldHRpbmcgU3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKLSBbRGF0YWJhc2UgTWlncmF0aW9uc10oI2RhdGFiYXNlLW1pZ3JhdGlvbnMpCiAgLSBbR2VuZXJhdGUgYSBOZXcgTWlncmF0aW9uXSgjZ2VuZXJhdGUtYS1uZXctbWlncmF0aW9uKQogIC0gW1J1biBQZW5kaW5nIE1pZ3JhdGlvbnNdKCNydW4tcGVuZGluZy1taWdyYXRpb25zKQogIC0gW1JldmVydCBNaWdyYXRpb25zXSgjcmV2ZXJ0LW1pZ3JhdGlvbnMpCi0gW1Rlc3RzXSgjdGVzdHMpCi0gW0Vudmlyb25tZW50IENvbmZpZ3VyYXRpb25dKCNlbnZpcm9ubWVudC1jb25maWd1cmF0aW9uKQotIFtBUEkgRG9jdW1lbnRhdGlvbl0oI2FwaS1kb2N1bWVudGF0aW9uKQotIFtBdXRoZW50aWNhdGlvbl0oI2F1dGhlbnRpY2F0aW9uKQotIFtMaWNlbnNlXSgjbGljZW5zZSkKLSBbTWFpbnRhaW5lcnNdKCNtYWludGFpbmVycykKCiMjIFdoYXQgSXMgVGhpcz8KClRoaXMgaXMgYSBOZXN0SlMgUkVTVGZ1bCBBUEkgc3RhcnRlciB0aGF0IGluY2x1ZGVzIEpXVCBhdXRoZW50aWNhdGlvbiwgT3BlbkFQSSAzIGRvY3VtZW50YXRpb24sIGFuZCBUeXBlT1JNIGludGVncmF0aW9uLgoKVGhlIHJlYXNvbiBJIG1haW50YWluIGl0IGlzIGJlY2F1c2UgdXNpbmcgdGhpcyB0ZW1wbGF0ZSBhbGxvd3MgeW91IHRvIHF1aWNrbHkgc2V0IHVwIGEgcHJvZHVjdGlvbi1yZWFkeSBSRVNUZnVsIEFQSSB3aXRoIG1pbmltYWwgYm9pbGVycGxhdGUgY29kZS4KCiMjIEdldHRpbmcgU3RhcnRlZAoKQ3JlYXRlIGEgZG90ZW52IGZpbGUgYW5kIGZpbGwgaXQgb3V0IHdpdGggdGhlIGFwcHJvcHJpYXRlIHZhbHVlcy4KCmBgYGJhc2gKY3AgLmVudi5leGFtcGxlIC5lbnYKYGBgCgpJbnN0YWxsIGRlcGVuZGVuY2llcwoKYGBgYmFzaApucG0gaW5zdGFsbApgYGAKClJ1biB0aGUgYXBwbGljYXRpb24KCmBgYGJhc2gKbnBtIHJ1biBkZXYKYGBgCgpITVIoSG90IE1vZHVsZSBSZWxvYWQpIGlzIGNvbmZpZ3VyZWQgd2l0aCB3ZWJwYWNrLgoKIyMgRGF0YWJhc2UgTWlncmF0aW9ucwoKSWYgeW91IGRvbid0IHJlcXVpcmUgaW5jcmVtZW50YWwgZGF0YWJhc2UgbWlncmF0aW9ucywgc2V0IHRoZSBEQl9TWU5DIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRydWUuIFRoaXMgd2lsbCBjb250aW51b3VzbHkgc3luY2hyb25pemUgdGhlIGRhdGFiYXNlIHN0cnVjdHVyZSB3aXRoIHRoZSBzY2hlbWEgZGVmaW5lZCBpbiB0aGUgY29kZWJhc2UuCgpfX0hvd2V2ZXIsIERPIE5PVCBzZXQgREJfU1lOQyB0byB0cnVlIGluIGEgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCwgYXMgZG9pbmcgc28gbWF5IHJlc3VsdCBpbiBkYXRhIGxvc3MhX18KCiMjIyMgR2VuZXJhdGUgYSBOZXcgTWlncmF0aW9uCgpNYWtlIHN1cmUgdG8gdXNlIG5wbSBmb3IgdGhlIGZvbGxvd2luZyBjb21tYW5kcywgYXMgeWFybiBkb2VzIG5vdCBzdXBwb3J0IGAkbnBtX2NvbmZpZ19uYW1lYC4KCmBgYGJhc2gKbnBtIHJ1biBtaWdyYXRpb246Z2VuZXJhdGUgLS1uYW1lPUFkZEFnZUNvbHVtblRvVXNlcgpgYGAKCk1pZ3JhdGlvbiBmaWxlcyBhcmUgbG9jYXRlZCBpbiB0aGUgYHNyYy9taWdyYXRpb25zYCBkaXJlY3RvcnkuCgojIyMjIFJ1biBQZW5kaW5nIE1pZ3JhdGlvbnMKCmBgYGJhc2gKbnBtIHJ1biBtaWdyYXRpb246cnVuCmBgYAoKVXNpbmcgRG9ja2VyOgoKYGBgYmFzaApkb2NrZXIgZXhlYyBuZXN0IG5wbSBydW4gbWlncmF0aW9uOnJ1bgpgYGAKCiMjIyMgUmV2ZXJ0IE1pZ3JhdGlvbnMKClJldmVydCB0aGUgbGFzdCBtaWdyYXRpb24KCmBgYGJhc2gKbnBtIHJ1biBtaWdyYXRpb246cmV2ZXJ0CmBgYAoKIyMgVGVzdHMKCmBgYGJhc2gKIyB1bml0IHRlc3RzCm5wbSBydW4gdGVzdAoKIyBlMmUgdGVzdHMKbnBtIHJ1biB0ZXN0OmUyZQoKIyB0ZXN0IGNvdmVyYWdlCm5wbSBydW4gdGVzdDpjb3YKYGBgCgojIyBFbnZpcm9ubWVudCBDb25maWd1cmF0aW9uCgpgQG5lc3Rqcy9jb25maWdgIGhhcyBiZWVuIHVzZWQsIHNvIHlvdSBjYW4ganVzdCBpbmplY3QgYENvbmZpZ1NlcnZpY2VgIHRvIHJlYWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gdGhlIGRvdGVudiBmaWxlLgoKIyMgQVBJIERvY3VtZW50YXRpb24KCk9wZW5BUEkgMy4wIGhhcyBiZWVuIGNvbmZpZ3VyZWQsIGFuZCB0aGUgQVBJIGRvY3VtZW50YXRpb24gaXMgaG9zdGVkIGF0IGBCQVNFX1VSTC9hcGkvZG9jc2AuCgojIyBBdXRoZW50aWNhdGlvbgoKSldUIGF1dGhlbnRpY2F0aW9uIGhhcyBiZWVuIGNvbmZpZ3VyZWQuCgojIyBMaWNlbnNlCgpNSVQKCiMjIE1haW50YWluZXJzCgpbY3JhenlvcHRpbWlzdF0oaHR0cHM6Ly9jcmF6eW9wdGltaXN0Lm5ldCkK readmeEtag: '"aa067beb2e72ff105e5ee7485f97fa18ad10f79d"' readmeLastModified: Thu, 27 Jun 2024 21:11:20 GMT repositoryId: 360806446 description: NestJS RESTful API starter for minimalists created: '2021-04-23T07:53:38Z' updated: '2024-09-03T16:13:15Z' language: TypeScript archived: false stars: 4 watchers: 2 forks: 5 owner: crazyoptimist logo: https://avatars.githubusercontent.com/u/55074937?v=4 license: MIT repoEtag: '"ab3a0d02655edd2e7eae5465ce91098637763a8ea56cc2b93581bca0c6032a86"' repoLastModified: Tue, 03 Sep 2024 16:13:15 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/fazzani/synker v3: true repositoryMetadata: base64Readme: >- IyAhW1N5bmtlciBBUEldKGxvZ28ucG5nKQoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2Rldi5henVyZS5jb20vaGVuaWZhenphbmkvU3lua2VyQVBJL19hcGlzL2J1aWxkL3N0YXR1cy9TeW5rZXJBUEktQ0k/YnJhbmNoTmFtZT1tYXN0ZXIpXShodHRwczovL2Rldi5henVyZS5jb20vaGVuaWZhenphbmkvU3lua2VyQVBJL19idWlsZC9sYXRlc3Q/ZGVmaW5pdGlvbklkPTEyJmJyYW5jaE5hbWU9bWFzdGVyKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9oZW5pZmF6emFuaS9TeW5rZXJBUEkvX2FwaXMvYnVpbGQvc3RhdHVzL1N5bmtlckFQSS1Eb2NrZXIlMjBDST9icmFuY2hOYW1lPW1hc3RlcildKGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9oZW5pZmF6emFuaS9TeW5rZXJBUEkvX2J1aWxkL2xhdGVzdD9kZWZpbml0aW9uSWQ9MTQmYnJhbmNoTmFtZT1tYXN0ZXIpCgpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1GYXp6YW5pX1N5bmtlciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1GYXp6YW5pX1N5bmtlcikKWyFbQ292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PUZhenphbmlfU3lua2VyJm1ldHJpYz1jb3ZlcmFnZSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9RmF6emFuaV9TeW5rZXIpClshW1JlbGlhYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9RmF6emFuaV9TeW5rZXImbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9RmF6emFuaV9TeW5rZXIpClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9RmF6emFuaV9TeW5rZXImbWV0cmljPXZ1bG5lcmFiaWxpdGllcyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9RmF6emFuaV9TeW5rZXIpClshW0NvZGUgU21lbGxzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1GYXp6YW5pX1N5bmtlciZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPUZhenphbmlfU3lua2VyKQoKIyMgQXJjaGl0ZWN0dXJlIChDbGVhbiBhcmNoaXRlY3R1cmUpCgpJbnNwaXJlZCBmcm9tIFtOb3J0aHdpbmRUcmFkZXJzXVtOb3J0aHdpbmRUcmFkZXJzXQpbU2xpZGVzXShodHRwczovL2dpdGh1Yi5jb20vRmF6emFuaS9TeW5rZXIvcmF3L21hc3Rlci9kb2NzL1NsaWRlcy5wZGYpCgojIyMgU2NoZW1hCgohW2FyY2hpX2NsZWFuX2RpYWdyYW1dKGh0dHBzOi8vZnVsbHN0YWNrbWFyay5jb20vaW1nL3Bvc3RzLzExL2NsZWFuLWFyY2hpdGVjdHVyZS1jaXJjbGUtZGlhZ3JhbS5qcGcpCgojIyMgTWljcm8tc2VydmljZXMgc2V0CgotIFBsYXlsaXN0cyBzZXJ2aWNlCiAgLSBDUlVECiAgLSBTeW5jaHJvIChieSBwbGF5bGlzdCAmJiBieSBncm91cCkKICAtIERlY29yYXRvcnMKICAgIC0gQ2xlYW5pbmcgbmFtZXMKICAgIC0gQXV0byBncm91cGluZwogICAgLSBTaGlmdCB0aW1lCiAgICAtIEN1c3RvbSAmJiBkeW5hbWljCi0gRGF0YVNvdXJjZXMKLSBFUEcgc2VydmljZQotIFBpY29ucyBzZXJ2aWNlCi0gQXV0aGVudGljYXRpb24gU2VydmljZSAoSURQKQotIE5vdGlmaWNhdGlvbiBTZXJ2aWNlCgojIyBIb3cgaXQgd29ya3MKClRoaXMgaXMgdXNpbmcgQVNQLk5FVCBDb3JlIHdpdGg6CgotIEVudGl0eSBGcmFtZXdvcmsgQ29yZSBvbiBQb3N0Z3JlU1FMIGFuZCBJbk1lbW9yeSBmb3IgdGVzdGluZwotIE9QRU4gQVBJIDMgd2l0aCBbTlN3YWddW25zd2FnX3JlcG9dCi0gRXZlbnQgc291cmNpbmcKLSBbTWVkaWF0Ul0oaHR0cHM6Ly9naXRodWIuY29tL2pib2dhcmQvTWVkaWF0Ui93aWtpKQotIFRERDoKICAtIFh1bml0LCAKICAtIFthbmdsZXNoYXJwXVthbmdsZXNoYXJwXSAKICAtIFtNb3FdW21vcV9yZXBvXQogIC0gZTJlIHdpdGggW0N5cHJlc3NdW2N5cHJlc3NdCi0gUHJvbWV0aGV1cyBtZXRyaWNzCi0gW0JlYXQgUHVsc2VdW2JlYXRfcHVsc2VfZ2l0aHViXSBmb3IgbGl2ZW5lc3MgYW5kIHJlYWRpbmVzcyBjaGVjawogIC0gQmVhdFB1bHNlLklkU3ZyCiAgLSBCZWF0UHVsc2UuRWxhc3RpY3NlYXJjaAogIC0gQmVhdFB1bHNlLk5wZ3NxbAotIFNlcmlsb2cgZm9yIGxvZ2dpbmcKLSBbQXV0b01hcHBlcl0oaHR0cHM6Ly9hdXRvbWFwcGVyLm9yZy8pCi0gW0ZsdWVudHZhbGlkYXRpb25dKGh0dHBzOi8vZmx1ZW50dmFsaWRhdGlvbi5uZXQvc3RhcnQpCi0gW0NvbW1hbmQgQ1FSUyB2YWxpZGF0aW9uXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vcHVsc2UvdmFsaWRhdGlvbi1kZGQtY3Fycy1sdWNhLWJyaWd1Z2xpYS8pCi0gW0RERCBBZ2dyZWdhdGUgcGF0dGVybl0oaHR0cHM6Ly9tYXJ0aW5mb3dsZXIuY29tL2JsaWtpL0RERF9BZ2dyZWdhdGUuaHRtbCkKCiMjIENsZWFuIEFyY2hpdGVjdHVyZQoKIyMjIERlc2lnbmluZyBEb21haW4gTW9kZWwgTGF5ZXIKCjEuICoqUGVyc2lzdGVuY2UgSWdub3JhbmNlIChQSSkgcHJpbmNpcGxlKiogc2F5cyB0aGF0IHRoZSBEb21haW4gTW9kZWwgc2hvdWxkIGJlIGlnbm9yYW50IG9mIGhvdyBpdHMgZGF0YSBpcyBzYXZlZCBvciByZXRyaWV2ZWQ6CiAgIC0gTm8gZGF0YSBhY2Nlc3MgY29kZQogICAtIE5vIGRhdGEgYW5ub3RhdGlvbnMgZm9yIG91ciBlbnRpdGllcwogICAtIE5vIGluaGVyaXRhbmNlIGZyb20gYW55IGZyYW1ld29yayBjbGFzc2VzLCBlbnRpdGllcyBzaG91bGQgYmUgUGxhaW4gT2xkIENMUiBPYmplY3QKMi4gUHV0dGluZyBhbGwgZGF0YSBhY2Nlc3MgY29kZSBvdXRzaWRlIG91ciBkb21haW4gbW9kZWwgaW1wbGVtZW50YXRpb24KMy4gVXNpbmcgRW50aXR5IEZyYW1ld29yayBDb3JlIGZlYXR1cmVzOiAKICAgLSBTaGFkb3cgUHJvcGVydGllcwogICAtIE93bmVkIEVudGl0eSBUeXBlcwogICAtIFByaXZhdGUgZmllbGRzIG1hcHBpbmcKICAgLSBWYWx1ZSBDb252ZXJzaW9ucwoKIyMgR28gZnVydGhlciAmIHJlZmVyZW5jZXMKCi0gW0NsZWFuIEFyY2hpdGVjdHVyZV1bY2xlYW5fYXJjaGldCi0gW09uaW9uIEFyY2hpdGVjdHVyZV1bb25pb25fYXJjaGldCi0gW1BvcnRzIEFuZCBBZGFwdGVycyAvIEhleGFnb25hbCBBcmNoaXRlY3R1cmVdW3BvcnRfYWRhcHRlcl9oZXhhXQotIFtFeGFtcGxlIENsZWFuIEFyY2hpIDFdW2V4YW1wbGVfYXJjaGlfMV0KLSBbRXhhbXBsZSBDbGVhbiBBcmNoaSAyXVtleGFtcGxlX2FyY2hpXzJdCgpbYmVhdF9wdWxzZV9naXRodWJdOmh0dHBzOi8vZ2l0aHViLmNvbS9YYWJhcmlsL0JlYXRQdWxzZQpbTm9ydGh3aW5kVHJhZGVyc106aHR0cHM6Ly9naXRodWIuY29tL0phc29uR1QvTm9ydGh3aW5kVHJhZGVycwpbUGVyc2lzdGVuY2UgSWdub3JhbmNlXTpodHRwOi8vd3d3LmthbWlsZ3J6eWJlay5jb20vZGVzaWduL2RvbWFpbi1tb2RlbC1lbmNhcHN1bGF0aW9uLWFuZC1waS13aXRoLWVudGl0eS1mcmFtZXdvcmstMi0yLwpbbnN3YWdfcmVwb106aHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZwpbbW9xX3JlcG9dOmh0dHBzOi8vZ2l0aHViLmNvbS9tb3EvbW9xNApbYW5nbGVzaGFycF06aHR0cHM6Ly9hbmdsZXNoYXJwLmdpdGh1Yi5pby8KW2NsZWFuX2FyY2hpXTpodHRwOi8vYmxvZy5jbGVhbmNvZGVyLmNvbS91bmNsZS1ib2IvMjAxMi8wOC8xMy90aGUtY2xlYW4tYXJjaGl0ZWN0dXJlLmh0bWwKW29uaW9uX2FyY2hpXTpodHRwczovL2plZmZyZXlwYWxlcm1vLmNvbS8yMDA4LzA3L3RoZS1vbmlvbi1hcmNoaXRlY3R1cmUtcGFydC0xCltwb3J0X2FkYXB0ZXJfaGV4YV06aHR0cHM6Ly9oZXJiZXJ0b2dyYWNhLmNvbS8yMDE3LzA5LzE0L3BvcnRzLWFkYXB0ZXJzLWFyY2hpdGVjdHVyZS8KW2V4YW1wbGVfYXJjaGlfMV06aHR0cHM6Ly9mdWxsc3RhY2ttYXJrLmNvbS9wb3N0LzExL2JldHRlci1zb2Z0d2FyZS1kZXNpZ24td2l0aC1jbGVhbi1hcmNoaXRlY3R1cmUKW2V4YW1wbGVfYXJjaGlfMl06aHR0cHM6Ly9mdWxsc3RhY2ttYXJrLmNvbS9wb3N0LzE4L2J1aWxkaW5nLWFzcG5ldC1jb3JlLXdlYi1hcGlzLXdpdGgtY2xlYW4tYXJjaGl0ZWN0dXJlCltjeXByZXNzXTpodHRwczovL3d3dy5jeXByZXNzLmlvLw== readmeEtag: '"6d5ad0ca66b9a3cc96d05b217ae03df4c2e7e4b9"' readmeLastModified: Wed, 28 Oct 2020 15:47:24 GMT repositoryId: 185035728 description: Synker Clean architecture created: '2019-05-05T13:34:51Z' updated: '2020-10-28T15:47:27Z' language: C# archived: false stars: 4 watchers: 2 forks: 0 owner: Fazzani logo: https://avatars.githubusercontent.com/u/2669070?v=4 repoEtag: '"15f4d0ea88b57ffdd5416b8e302b115001359718b60ebf9084b6909e9f6a996d"' repoLastModified: Wed, 28 Oct 2020 15:47:27 GMT foundInMaster: true category: Server id: 24f3174a585318a2e0fc37f0502c0de9 - source: openapi3 tags repository: https://github.com/alma-cfao/pyapifirstdemo v3: true repositoryMetadata: base64Readme: >- IyBQeUFwaUZpcnN0RGVtbwpUaGlzIHByb2plY3QgY29udGFpbnMgZGVtbyBjb2RlIG9mIDEyLzEyLzIwMTkgcHl0aG9uIG1lZXR1cCBpbiBncmVub2JsZSBjYWxsZWQ6CgpUb29scyB0byB3cml0ZSBjbGVhbiBtaWNyb3NlcnZpY2VzIGluIHB5dGhvbiB3aXRob3V0IGhlYWRhY2hlcy4gKGRlbW8gcHJvamVjdCkKCgpZb3UgY2FuIGZpbmQgc2xpZGVzIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vQWxtYS1DRkFPL1B5QXBpRmlyc3REZW1vL2Jsb2IvbWFzdGVyL01lZXR1cCUyMFB5dGhvbiUyMG1pY3Jvc2VydmljZXMlMjBkZWNlbWJyZSUyMDIwMTkucGRmKS4KClRoaXMgcHJvamVjdCBpcyBhIGRlbW8gcHJvamVjdCB5b3UgY2FuIHVzZSBhcyBtaWNyb3NlcnZpY2UgcHJvamVjdCB0ZW1wbGF0ZS4KSXQgY29uYmluZXMgZGphbmdvIE9STSBhbmQgY29ubmV4aW9uIChmbGFzaykgZnJhbWV3b3JrIHRvZ2V0aGVyLgpZb3UgY2FuIGZpbmQgYmVsb3cgYWxsIHRoZSB0aGluZ3MgeW91IGNhbiBkbyB3aXRoIHRoaXMgcHJvamVjdCB0ZW1wbGF0ZS4KCiMjIFByb2plY3Qgc2NydWN0dXJlCiAgICAuCiAgICDilJzilIDilIAgYXBwcwogICAg4pSCICAg4pSc4pSA4pSAIGJvaWxlcnBsYWNlCiAgICDilIIgICDilIIgICDilJzilIDilIAgbWlncmF0aW9ucwogICAg4pSCICAg4pSc4pSA4pSAIGRiCiAgICDilIIgICDilIIgICDilJzilIDilIAgbWlncmF0aW9ucwogICAg4pSc4pSA4pSAIGNvZGVnZW5fdGVtcGxhdGUKICAgIOKUnOKUgOKUgCBkb2NzCiAgICDilJzilIDilIAgbG9jYWxlCiAgICDilJzilIDilIAgcmVxdWlyZW1lbnRzCiAgICDilJzilIDilIAgc2NyaXB0cwogICAg4pSc4pSA4pSAIHNldHRpbmdzCiAgICDilJTilIDilIAgc3dhZ2dlcl9zZXJ2ZXIKICAgICAgICDilJzilIDilIAgY29udHJvbGxlcnMKICAgICAgICDilJzilIDilIAgZnVuY3Rpb25zCiAgICAgICAg4pSc4pSA4pSAIG1vZGVscwogICAgICAgIOKUnOKUgOKUgCBvcGVuYXBpCiAgICAgICAg4pSc4pSA4pSAIHJlcG9zaXRvcmllcwogICAgICAgIOKUnOKUgOKUgCBzZXJpYWxpemVycwogICAgICAgIOKUnOKUgOKUgCBzdG9yaWVzCiAgICAgICAg4pSU4pSA4pSAIHRlc3RzCgoqKmFwcHMqKiBpcyBhIGRpcmVjdG9yeSBjb250YWluaW5nIG91ciBkamFuZ28gYXBwcwoKKiphcHBzL2JvaWxlcnBsYWNlKiogYSBkamFuZ28gYXBwIGNvbnRhaW5pbmcgb3VyIGN1c3RvbSB1c2VyIG1vZGVsCgoqKmFwcHMvZGIqKiBhcyB3ZSBhcmUgdXNpbmcgZGphbmdvIE9STSB3aXRoIGNvbm5leGlvbiB0aGlzIGFwcCBjb250YWlucyBhbGwgcHJvamVjdCByZWxhdGVkIGRiIG1vZGVscwoKKipjb2RlZ2VuX3RlbXBsYXRlKiogdGhlIHRlbXBsYXRlIHdlIGFyZSB1c2luZyBmb3IgY29kZSBnZW5lcmF0aW9uCgoqKmRvY3MqKiB0aGUgcGxhY2Ugd2hlcmUgb3VyIGFwaSBmaXJzdCBzcGVjaWZpY2F0aW9uIGlzCgoqKmxvY2FsZSoqIHRoZSBpMThuIHBvIGFuZCBtbyBmaWxlcyBmb2xkZXIKCioqcmVxdWlyZW1lbnRzKiogb3VyIHByb2plY3QgcHl0aG9uIHJlcXVpcmVtZW50cyBmaWxlcwoKKipzY3JpcHRzKiogdGhpcyBkaXJlY3RvcnkgY29udGFpbnMgY3Vyc3RvbSBzY3JpcHRzIGZvciBjb252ZW5pZW5jZQoKKipzd2FnZ2VyX3NlcnZlcioqIHRoZSByb290IGRpcmVjdG9yeSBvZiBjb25uZXhpb24gZnJhbWV3b3JrCgoqKnN3YWdnZXJfc2VydmVyL2NvbnRyb2xsZXJzKiogd2hlcmUgY29ubmV4aW9uIChmbGFzaykgY29udHJvbGxlciBiZWxvbmdzCgoqKnN3YWdnZXJfc2VydmVyL2Z1bmN0aW9ucyoqIFdoZXJlIGFsbCB1dGlscyBmdW5jdGlvbnMgYmVsb25ncwoKKipzd2FnZ2VyX3NlcnZlci9tb2RlbHMqKiBXaGVyZSBnZW5lcmF0ZWQgdmlldyBtb2RlbHMgKGFwaSByZWxhdGVkIG1vZGVscywgbm90IGRiIG1vZGVscykgYmVsb25ncwoKKipzd2FnZ2VyX3NlcnZlci9vcGVuYXBpKiogV2hlcmUgZ2VuZXJhdGVkIHZlcnNpb24gb2Ygc3BlY2lmaWNhdGlvbiBiZWxvbmcgKHdpdGggdmFyaW91cyB0aGluZ3MgYWRkZWQgbGlrZSBvcGVyYXRpb25JZC4uLiBldGMuKQoKKipzd2FnZ2VyX3NlcnZlci9yZXBvc2l0b3JpZXMqKiBBIGxheWVyIGJldHdlZW4gZGphbmdvIG1vZGVscyBhbmQgb3VyIGJ1c2luZXNzIGNvZGUgdG8gaGVscCB1cyBzd2l0Y2hpbmcgZnJvbSBkamFuZ28gT1JNIHRvIGFueXRoaW5nIGVsc2UgbGF0ZXIuCgoqKnN3YWdnZXJfc2VydmVyL3NlcmlhbGl6ZXJzKiogVGhpcyBpcyBhIGNvbnZlbmllbnQgbGF5ZXIgdG8gZ2VuZXJhdGUgYSB2aWV3IG1vZGVsIGZyb20gYSBkamFuZ28gbW9kZWwgd2hlbiBmaWVsZHMgYXJlIHRoZSBzYW1lIGluIGJvdGggb2YgdGhlbS4KCioqc3dhZ2dlcl9zZXJ2ZXIvc3RvcmllcyoqIFdoZXJlIGJ1c2luZXNzIHRyYW5zYWN0aW9uIGJlbG9uZ3MgKHVzaW5nIGRyeS1weXRob24vc3RvcmllcyBodHRwczovL2dpdGh1Yi5jb20vZHJ5LXB5dGhvbi9zdG9yaWVzKQoKKipzd2FnZ2VyX3NlcnZlci90ZXN0cyoqIFdoZXJlIHRlc3RzIGFuZCB0ZXN0IGZyYW1ld29yayBmaXh0dXJlcyBjb25maWd1cmF0aW9uIGJlbG9uZ3MKCkFsbCBvZiB0aG9zZSBsYXllcnMgYXJlIGluamVjdGVkIGluc2lkZSBhICJjb250YWluZXIiIGNsYXNzIHVzaW5nIGRlcGVuZGVuY2llcyBweXRob24gbGlicmFyeSAoaHR0cHM6Ly9naXRodWIuY29tL2RyeS1weXRob24vZGVwZW5kZW5jaWVzKQoKVGhvc2UgY29udGFpbmVycyBhcmUgZGVmaW5lZCBpbnNpZGUgdGhlIGltcGxlbWVudGVkLnB5IGZpbGUuClRoZW4sIHRob3NlIGNvbnRhaW5lciBjbGFzc2VzIGNhbiBiZSB1c2VkIGluc2lkZSBjb250cm9sbGVycy4KCiMjIFdoYXQgaXMgaW5jbHVkZWQgPwoqIEZ1bGwgZmVhdHVyZXMgcHl0aG9uIHRlc3QgZnJhbWV3b3JrICh3aXRoIGNvdmVyYWdlLCBodG1sIHJlcG9ydCBhbmQgdGVzdGluZyBvbiB2YXJpb3VzIHB5dGhvbiB2ZXJpb25zKQoqIExpbnQgdG9vbHMgKGZsYWtlOCBhbmQgaXNvcnQpCiogUGVyZm9ybWFuY2UgYW5hbHlzaXMgdG9vbCAocHktc3B5IHJ1bm5pbmcgb24gdG9wIG9mIHRoZSB0ZXN0IGZyYW1ld29yaykKKiBpMThuCiogQ29kZSBkdXBsaWNhdGlvbiBhbmFseXNlcgoqIERlcGVuZGVuY3kgaW5qZWN0aW9uIGFuZCBidXNpbmVzcyB0cmFuc2FjdGlvbiB0aGUgYXdlc29tZSBkcnktcHl0aG9uJ3Mgc3RvcmllcyBhbmQgZGVwZW5kZW5jaWVzIHB5dGhvbiBsaWJyYXJpZXMKKiBTd2FnZ2VyIHVpCiogR2VuZXJhdGUgZGIgZXItZGlhZ3JhbQoqIE90aGVyIGNvbnZpbmllbnQgc2NyaXB0cy4uLgoKIyMgUmVxdWlyZW1lbnRzCiogeWFybgoqIHB5dGhvbjMuNisKKiBzcWxpdGUKKiBwZXcKKiBwbWQgKGh0dHBzOi8vcG1kLmdpdGh1Yi5pby8pCgojIyMgQmVmb3JlIGZpcnN0IHJ1biwgZXhlY3V0ZSB0aG9zZSBjb21tYW5kcwoqIENyZWF0ZSBuZXcgcHl0aG9uIHZpcnR1YWxlbnYgZm9yIHByb2plY3QgZGVwcwpgYGBiYXNoCnBldyBuZXcgLS1weXRob249cHl0aG9uMy43IG1lZXR1cDEyMTIxOQpgYGAKKiBJbnN0YWxsIHB5dGhvbiBkZXBlbmRlbmNpZXMgaW4gdmlydHVhbGVudgpgYGAKICAgIHBldyBpbiBtZWV0dXAxMjEyMTkgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzL3JlcXVpcmVtZW50cy50eHQKYGBgCiogSW5zdGFsbCBub2RlIGRlcGVuZGVuY2llcyAoZm9yIGNvZGVnZW0pCmBgYGJhc2gKeWFybgpgYGAKKiBNaWdyYXRlIGRhdGFiYXNlCmBgYGJhc2gKbnBtIHJ1biBkYjptaWdyYXRlCmBgYAoKIyMgVXNlIHRoaXMgcHJvamVjdCB3aXRob3V0IGp3dCBrZXkgZm9yIHRlc3QgcHVycG9zZQpJZiB5b3VyIGNvZGUgaXMgcnVubmluZyBpbiBkZWJ1ZyB3ZSBoYXZlIGltcGxlbWVudGVkIGZha2UgdXNlcnMgaW4gZmFrZV91c2VyX2lmX2Zha2Vfand0X3Rva2VuIGZ1bmN0aW9uIGluIHN3YWdnZXJfc2VydmVyL2Z1bmN0aW9ucy9hdXRoLnB5IGZpbGUuCgpFeGFtcGxlcyBvZiB0b2tlbiBwYXlsb2FkIGNhbiBiZSBmb3VuZCBpbnNpZGUgdGhpcyBtZXRob2QuCgpJbiBzd2FnZ2VyIHVpIG9yIHVzaW5nIGFuIGh0dHAgY2xpZW50IHRob3NlIHZhbHVlcyBjYW4gYmUgdXNlZCBhcyBmYWtlIHVzZXJzIDoKLSBzdXBlcl91c2VyCi0gc3RhZmZfdXNlcgotIHN0YW5kYXJkX3VzZXIKLSB1bnZlcmlmaWVkX3N0YW5kYXJkX3VzZXIKLSBibG9ja2VkX3N0YW5kYXJkX3VzZXIKCiMjIEhvdyB0by4uLiA/CgpBcyB5b3Ugd2lsbCBzZWUgdGhpcyBwcm9qZWN0IHVzZSBucG0gYXMgYSB0YXNrIHJ1bm5lciB0byBtYWtlIHZhcmlvdXMgdGFza3MgYXZhaWxhYmxlLgoKIyMjIFN0YXJ0IHNlcnZlcgpgYGBucG0gcnVuIGRldmBgYAoKIyMjIExpbnQgY29kZQpgYGBucG0gcnVuIGZsYWtlOGBgYApGaW5kIHBlcDggdmlvbGF0aW9ucyAmIG90aGVyIHRoaW5ncy4KCiMjIyBSZWZvcm1hdCBpbXBvcnRzIGF1dG9tYXRpY2FsbHkKYGBgbnBtIHJ1biBpc29ydGBgYAoKIyMjIEFkZCBweXRob24gY29kaW5nIHV0ZjggZXZlcnl3aGVyZSBpdCBpcyBtaXNzaW5nCmBgYG5wbSBydW4gZml4OmNvZGluZ2BgYAoKIyMjIEZpeCBlbmRsIGV2ZXJ5d2hlcmUgaXQgaXMgbmVlZGVkCmBgYG5wbSBydW4gZml4OmVuZGxgYGAKCiMjIyBGaW5kIGR1cGxpY2F0ZWQgY29kZQpgYGBucG0gcnVuIGNwZGBgYApOZWVkcyAkUE1EX0JJTiB0byBiZSBzZXQgY29ycmVjdGx5IChiaW4gZGlyZWN0b3J5IG9mIHBtZCB3aGVyZSBydW4uc2ggc2NyaXB0IGlzKS4KR2VuZXJhdGVzIHJlcG9ydCBjYWxsZWQgY3BkX3JlcG9ydC5odG1sCgojIyMgR2VuZXJhdGUgdmlldyBtb2RlbHMsIGR1bW15IGNvbnRyb2xsZXJzICYgc3BlYyB0byBiZSB1c2VkIHRvIHJ1biB0aGUgc2VydmVyICh0aGUgc2FtZSBzcGVjIGJ1dCB3aXRoIG9wZXJhdGlvbklkICYgdGhpbmdzIGxpa2UgdGhpcy4uLikKYGBgbnBtIHJ1biBnZW5lcmF0ZWBgYApUaGVuOgogIC0gQ29weSBnZW5lcmF0ZWQvc3dhZ2dlcl9zZXJ2ZXIvbW9kZWxzLyoucHkgdG8gc3dhZ2dlcl9zZXJ2ZXIvbW9kZWxzLwogIC0gQ29weSBuZXcgY29udHJvbGxlciBmdW5jdGlvbnMgdG8gdGhlIHJpZ2h0IGNvcnJlc3BvbmRpbmcgZmlsZQogIC0gRm9yZ2V0IGV2ZXJ5dGhpbmcgZWxzZS4gKGl0IGlzIG1vc3RseSB1c2VsZXNzKQoKUmVtYXJrOgogIFdlIGhhdmUgY3VzdG9taXplIHRoZSBjb2RlLWdlbmVyYXRpb24gdGVtcGxhdGUgdG8gd3JhcCBjb250cm9sbGVycyB3aXRoIGEgbG9naW5fcmVxdWlyZWQgd3JhcHBlci4KICBUaGlzIHdyYXBwZXIgZXh0cmFjdCB1c2VyIGluZm8gZnJvbSB0aGUgdG9rZW4gdG8gY3JlYXRlIGEgdXNlciBvYmplY3QKICB0byBiZSB1c2VkIGJ5IGRqYW5nbyBndWFyZGlhbiBvciBvdGhlciBkamFuZ28gYXBwcy4KCiMjIyBVc2Ugc3dhZ2dlciB1aQpHbyB0byAxMjcuMC4wLjE6NTAwMC92MS91aQoKIyMjIFJ1biB0ZXN0cwpgYGBucG0gcnVuIHRlc3RgYGAKV2lsbCBydW4gb25seSBsYXN0IGZhaWxlZCB0ZXN0IGJ5IGRlZmF1bHQuCgpgYGBucG0gcnVuIHRlc3Q6YWxsYGBgCldpbGwgcnVuIGFsbCBleGlzdGluZyB0ZXN0cyBmcm9tIHRlc3RzIGRpcmVjdG9yeSAoc3dhZ2dlcl9zZXJ2ZXIvdGVzdHMpCgpgYGBucG0gcnVuIHRlc3Q6dG94YGBgCldpbGwgcnVuIGFsbCB0ZXN0cyBvbiBweXRob24zLjYgYW5kIHB5dGhvbjMuNwoKYGBgbnBtIHJ1biB0ZXN0OmNkYmBgYAonY2RwJyBtZWFucyBjcmVhdGUgZGIuCldpbGwgcmUtY3JlYXRlIHRlc3QgZGIgYmVmb3JlIHJ1bm5pbmcgdGVzdHMuCgpgYGBucG0gcnVuIHRlc3Q6dnZgYGAKUnVuIHB5dGVzdCBpbiB2ZXJ5IHZlcmJvc2UgbW9kZS4KCmBgYG5wbSBydW4gdGVzdDp3aXRocHJvZmBgYApSdW4gcHl0ZXN0IHdpdGggcHktc3B5IHRvIGdlbmVyYXRlIGEgZmxhbWVncmFwaAoKYGBgbnBtIHJ1biB0ZXN0Om5vY292YGBgClJ1biBweXRlc3QgYW5kIGRvIG5vdCBnZW5lcmF0IGEgY292ZXJhZ2UgcmVwb3J0LgoKIyMjIEZpbmQgY292ZXJhZ2UgaW5mbwpBZnRlciBydW5uaW5nIGBucG0gcnVuIHRlc3Q6YWxsYCwgY292ZXJhZ2UgcmVwb3J0IGNhbiBiZSBmb3VuZCBpbiAqaHRtbGNvdiogZGlyZWN0b3J5IChmaXJlZm94IGluZGV4Lmh0bWwpLgoKIyMjIEV4dHJhY3QgaTE4biBzdHJpbmdzIGZyb20gY29kZQpgYGBucG0gcnVuIGkxOG46ZXh0cmFjdGBgYApFeHRyYWN0IHN0cmluZ3MgdG8gKmxvY2FsZSogZGlyZWN0b3J5LgoKIyMjIFRyYW5zbGF0ZSBzdHJpbmdzCk9wZW4gZGphbmdvLnBvIGZpbGVzIGZyb20gbG9jYWxlIGRpcmVjdG9yeSB3aXRoIHBvZWRpdCAoaHR0cHM6Ly9wb2VkaXQubmV0LykKCiMjIyBNYWtlIGRqYW5nbyBvciBmbGFzayB1c2luZyB0cmFuc2xhdGVkIHN0cmluZ3MKYGBgbnBtIHJ1biBpMThuOmJ1aWxkYGBgCkdlbmVyYXRlcyAqLm1vIGZpbGVzIHRvIGJlIHVzZWQgYnkgZGphbmdvIGZvciB0cmFuc2xhdGlvbnMuCgojIyMgR3JlbmVyYXRlIGRiIGVyLWRpYWdyYW0KYGBgbnBtIHJ1biBkYjplcmRpYWdyYW1gYGAKR2VuZXJhdGVzIGVyX2RpYWdyYW0ucG5nIGZpbGUuCgo= readmeEtag: '"a05856d353953a5f9d21ff4fe26118cd59b0b6aa"' readmeLastModified: Wed, 21 Apr 2021 18:41:49 GMT repositoryId: 227149750 description: >- Tools to write clean microservices in python without headaches. (demo project) created: '2019-12-10T15:07:35Z' updated: '2023-01-28T09:25:59Z' language: Python archived: true stars: 4 watchers: 2 forks: 0 owner: Alma-CFAO logo: https://avatars.githubusercontent.com/u/54944051?v=4 license: MIT repoEtag: '"1626ea4f7faa17717f60a373839961fe6e32f9923c9ebf4f9d34f7e3b79270e1"' repoLastModified: Sat, 28 Jan 2023 09:25:59 GMT foundInMaster: true category: Server Implementations id: b136a8f4c9ec91fb8287c2b81073bdc1 - source: openapi3 tags repository: https://github.com/medly/apifi v3: true repositoryMetadata: base64Readme: >- IyBBcGlmaSAKClNwZWMgZHJpdmVuIFJFU1QgQVBJcwoKIVtCdWlsZCB0aGUgRGlzdHJpYnV0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbWVkbHkvYXBpZmkvd29ya2Zsb3dzL0J1aWxkJTIwdGhlJTIwRGlzdHJpYnV0aW9uL2JhZGdlLnN2ZykKCiMjIEluY2x1ZGUgaW4gZ3JhZGxlIHByb2plY3QKMVwuIEFkZCBqaXRwYWNrIHJlcG9zaXRvcnkgaW4gc2V0dGluZ3MuZ3JhZGxlOgpgYGAKcGx1Z2luTWFuYWdlbWVudCB7CiAgICByZXBvc2l0b3JpZXMgewogICAgICAgIGdyYWRsZVBsdWdpblBvcnRhbCgpCiAgICAgICAgbWF2ZW4gewogICAgICAgICAgICB1cmwgJ2h0dHBzOi8vaml0cGFjay5pbycKICAgICAgICAgICAgY29udGVudCB7CiAgICAgICAgICAgICAgICBpbmNsdWRlR3JvdXAgJ2NvbS5tZWRseS5hcGlmaScKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJlc29sdXRpb25TdHJhdGVneSB7CiAgICAgICAgZWFjaFBsdWdpbiB7CiAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQuaWQubmFtZXNwYWNlID09ICdjb20ubWVkbHknKSB7CiAgICAgICAgICAgICAgICB1c2VNb2R1bGUoIiR7cmVxdWVzdGVkLmlkfToke3JlcXVlc3RlZC5pZH0uZ3JhZGxlLnBsdWdpbjphYjgxNmQxYTg0IikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpgYGAKMlwuIEFkZCBwbHVnaW4gaW4gYnVpbGQuZ3JhZGxlOgpgYGAKcGx1Z2lucyB7CiAgICAuLi4uCiAgICBpZCAiY29tLm1lZGx5LmFwaWZpIgogICAgLi4uCn0KYGBgCgozXC4gQWRkIGdyYWRsZSB0YXNrIHRvIGdlbmVyYXRlIGNvZGU6CmBgYAphcGlmaSB7CiAgICBvcGVuQXBpU3BlYyBmaWxlKCJwYXRoL3RvL3NwZWMtZmlsZSIpCiAgICBnZW5lcmF0ZWRTb3VyY2VEaXIgZmlsZSgicGF0aC90by9nZW4iKQogICAgYmFzZVBhY2thZ2VOYW1lICJjb20ueW91ci5wYWNrYWdlLm5hbWUiCn0KYGBgCgojIyBHZW5lcmF0ZSBBUElzCgpgYGAKLi9ncmFkbGV3IGFwaWZpCmBgYA== readmeEtag: '"46f042d44f4f7166b67848685ee99b7ad3f4735f"' readmeLastModified: Fri, 18 Sep 2020 12:25:39 GMT repositoryId: 259544047 description: Open API spec driven HTTP APIs created: '2020-04-28T05:50:27Z' updated: '2021-10-01T11:34:56Z' language: Kotlin archived: false stars: 4 watchers: 5 forks: 5 owner: medly logo: https://avatars.githubusercontent.com/u/54950577?v=4 repoEtag: '"e9076166a41494b0aea268a4804d9794cef5aecd258fffaec192ce344b78410c"' repoLastModified: Fri, 01 Oct 2021 11:34:56 GMT foundInMaster: true category: SDK id: 5f1612e5badbd0eab91bebe51e68ae1b - source: openapi3 tags repository: https://github.com/alexferl/echo-openapi v3: true id: ce1a77b9cc878c17a7dde009e1eecfdd repositoryMetadata: base64Readme: >- IyBlY2hvLW9wZW5hcGkgWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2FsZXhmZXJsL2VjaG8tb3BlbmFwaSldKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9hbGV4ZmVybC9lY2hvLW9wZW5hcGkpIFshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9hbGV4ZmVybC9lY2hvLW9wZW5hcGkvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvYWxleGZlcmwvZWNoby1vcGVuYXBpKQoKQW4gW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIG1pZGRsZXdhcmUgZm9yIHRoZSBbRWNob10oaHR0cHM6Ly9naXRodWIuY29tL2xhYnN0YWNrL2VjaG8pIGZyYW1ld29yayB1c2luZwpbZ2V0a2luL2tpbi1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpKSB0byB2YWxpZGF0ZSBIVFRQIHJlcXVlc3RzIGFuZCByZXNwb25zZXMuCgojIyBJbnN0YWxsaW5nCmBgYHNoZWxsCmdvIGdldCBnaXRodWIuY29tL2FsZXhmZXJsL2VjaG8tb3BlbmFwaQpgYGAKCiMjIFVzaW5nCgojIyMgQ29kZSBleGFtcGxlCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKICAgICJuZXQvaHR0cCIKCiAgICBtdyAiZ2l0aHViLmNvbS9hbGV4ZmVybC9lY2hvLW9wZW5hcGkiCiAgICAiZ2l0aHViLmNvbS9sYWJzdGFjay9lY2hvL3Y0IgogICAgImdpdGh1Yi5jb20vbGFic3RhY2svZWNoby92NC9taWRkbGV3YXJlIgopCgovKgojIG9wZW5hcGkueWFtbApvcGVuYXBpOiAzLjAuNAppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IFRlc3QgQVBJCiAgZGVzY3JpcHRpb246IEEgdGVzdCBBUEkKcGF0aHM6CiAgL2hlbGxvOgogICAgcG9zdDoKICAgICAgZGVzY3JpcHRpb246IEhlbGxvCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBuYW1lOiBtZXNzYWdlCiAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBtaW5MZW5ndGg6IDEKICAgICAgICAgICAgbWF4TGVuZ3RoOiAxMDAKICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDAnOgogICAgICAgICAgZGVzY3JpcHRpb246IFN1Y2Nlc3NmdWwgcmVzcG9uc2UKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgICAgICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAgICAgICAtIG1lc3NhZ2UKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFdlbGNvbWUgbWVzc2FnZQogICAgICAgICAgICAgICAgICAgIG1pbkxlbmd0aDogNAoqLwoKdHlwZSBIYW5kbGVyIHN0cnVjdCB7CiAgICAqbXcuSGFuZGxlcgp9CgpmdW5jIChoICpIYW5kbGVyKSBIZWxsbyhjIGVjaG8uQ29udGV4dCkgZXJyb3IgewogICAgbXNnIDo9IGMuUXVlcnlQYXJhbSgibWVzc2FnZSIpCiAgICByZXR1cm4gaC5WYWxpZGF0ZShjLCBodHRwLlN0YXR1c09LLCBlY2hvLk1hcHsibWVzc2FnZSI6IG1zZ30pCn0KCmZ1bmMgbWFpbigpIHsKICAgIGUgOj0gZWNoby5OZXcoKQoKICAgIGggOj0gJkhhbmRsZXJ7bXcuTmV3SGFuZGxlcigpfQogICAgZS5BZGQoaHR0cC5NZXRob2RQb3N0LCAiL2hlbGxvIiwgaC5IZWxsbykKCiAgICBlLlVzZShtaWRkbGV3YXJlLkxvZ2dlcigpKQogICAgZS5Vc2UobXcuT3BlbkFQSSgiLi9vcGVuYXBpLnlhbWwiKSkKCiAgICBlLkxvZ2dlci5GYXRhbChlLlN0YXJ0KCJsb2NhbGhvc3Q6MTMyMyIpKQp9CmBgYApTZW5kIGFuIGludmFsaWQgcmVxdWVzdCB0byB0ZXN0IHJlcXVlc3QgdmFsaWRhdGlvbjoKYGBgc2hlbGwKY3VybCAtaSAtWCBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6MTMyMy9oZWxsbwpIVFRQLzEuMSA0MjIgVW5wcm9jZXNzYWJsZSBFbnRpdHkKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04CkRhdGU6IFNhdCwgMTIgTm92IDIwMjIgMTc6MzE6MjQgR01UCkNvbnRlbnQtTGVuZ3RoOiAxMTcKCnsibWVzc2FnZSI6IlZhbGlkYXRpb24gZXJyb3IiLCJlcnJvcnMiOlsicGFyYW1ldGVyICdtZXNzYWdlJyBpbiBxdWVyeSBoYXMgYW4gZXJyb3I6IHZhbHVlIGlzIHJlcXVpcmVkIGJ1dCBtaXNzaW5nIl19CmBgYAoKU2VuZCBhIHZhbGlkIHJlcXVlc3Q6CmBgYHNoZWxsCmN1cmwgLWkgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OjEzMjMvaGVsbG9cP21lc3NhZ2VcPWhlbGxvCkhUVFAvMS4xIDIwMCBPSwpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24KRGF0ZTogU2F0LCAxMiBOb3YgMjAyMiAxNzozMTo0NyBHTVQKQ29udGVudC1MZW5ndGg6IDE5Cgp7Im1lc3NhZ2UiOiJoZWxsbyJ9CmBgYAoKU2VuZCBhIHZhbGlkIHJlcXVlc3Qgd2l0aCBhbiBpbnZhbGlkIHJlc3BvbnNlOgpgYGBzaGVsbApjdXJsIC1pIC1YIFBPU1QgaHR0cDovL2xvY2FsaG9zdDoxMzIzL2hlbGxvXD9tZXNzYWdlXD1hCkhUVFAvMS4xIDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCkRhdGU6IFNhdCwgMTIgTm92IDIwMjIgMTc6MzE6MDEgR01UCkNvbnRlbnQtTGVuZ3RoOiAzNgoKeyJtZXNzYWdlIjoiSW50ZXJuYWwgU2VydmVyIEVycm9yIn0KYGBgCllvdSBzaG91bGQgYWxzbyBoYXZlIHRoZSBmb2xsb3dpbmcgaW4gdGhlIHNlcnZlcidzIGxvZyB0byBoZWxwIHlvdSBkZWJ1ZyB5b3VyIHNjaGVtYToKYGBgc2hlbGwKeyJlcnJvciI6ImZhaWxlZCB2YWxpZGF0aW5nIHJlc3BvbnNlOiBtZXNzYWdlOiBtaW5pbXVtIHN0cmluZyBsZW5ndGggaXMgNCJ9CmBgYAoKIyMjIENvbmZpZ3VyYXRpb24KYGBgZ28KdHlwZSBDb25maWcgc3RydWN0IHsKICAgIC8vIFNraXBwZXIgZGVmaW5lcyBhIGZ1bmN0aW9uIHRvIHNraXAgbWlkZGxld2FyZS4KICAgIFNraXBwZXIgbWlkZGxld2FyZS5Ta2lwcGVyCgogICAgLy8gU2NoZW1hIGRlZmluZXMgdGhlIE9wZW5BUEkgdGhhdCB3aWxsIGJlIGxvYWRlZCBhbmQKICAgIC8vIHRoYXQgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlcyB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0LgogICAgLy8gUmVxdWlyZWQuCiAgICBTY2hlbWEgc3RyaW5nCgogICAgLy8gQ29udGV4dEtleSBkZWZpbmVzIHRoZSBrZXkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc3RvcmUgdGhlIHZhbGlkYXRvcgogICAgLy8gb24gdGhlIGVjaG8uQ29udGV4dCB3aGVuIHRoZSByZXF1ZXN0IGlzIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWQuCiAgICAvLyBPcHRpb25hbC4gRGVmYXVsdHMgdG8gInZhbGlkYXRvciIuCiAgICBDb250ZXh0S2V5IHN0cmluZwoKICAgIC8vIEV4ZW1wdFJvdXRlcyBkZWZpbmVzIHJvdXRlcyBhbmQgbWV0aG9kcyB0aGF0IGRvbid0IHJlcXVpcmUgdG9rZW5zLgogICAgLy8gT3B0aW9uYWwuCiAgICBFeGVtcHRSb3V0ZXMgbWFwW3N0cmluZ11bXXN0cmluZwp9Cgp0eXBlIEhhbmRsZXJDb25maWcgc3RydWN0IHsKICAgIC8vIENvbnRlbnRUeXBlIHNldHMgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgb2YgdGhlIHJlc3BvbnNlLgogICAgLy8gT3B0aW9uYWwuIERlZmF1bHRzIHRvICJhcHBsaWNhdGlvbi9qc29uIi4KICAgIENvbnRlbnRUeXBlIHN0cmluZwoKICAgIC8vIFZhbGlkYXRvcktleSBkZWZpbmVzIHRoZSBrZXkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmVhZCB0aGUKICAgIC8vICpvcGVuYXBpM2ZpbHRlci5SZXF1ZXN0VmFsaWRhdGlvbklucHV0IGZyb20gdGhlIGVjaG8uQ29udGV4dAogICAgLy8gc2V0IGJ5IHRoZSBtaWRkbGV3YXJlLgogICAgLy8gT3B0aW9uYWwuIERlZmF1bHRzIHRvICJ2YWxpZGF0b3IiLgogICAgVmFsaWRhdG9yS2V5IHN0cmluZwoKICAgIC8vIEV4Y2x1ZGVSZXF1ZXN0Qm9keSBtYWtlcyBWYWxpZGF0ZSBza2lwcyByZXF1ZXN0IGJvZHkgdmFsaWRhdGlvbi4KICAgIC8vIE9wdGlvbmFsLiBEZWZhdWx0cyB0byBmYWxzZS4KICAgIEV4Y2x1ZGVSZXF1ZXN0Qm9keSBib29sCgogICAgLy8gRXhjbHVkZVJlc3BvbnNlQm9keSBtYWtlcyBWYWxpZGF0ZSBza2lwcyByZXNwb25zZSBib2R5IHZhbGlkYXRpb24uCiAgICAvLyBPcHRpb25hbC4gRGVmYXVsdHMgdG8gZmFsc2UuCiAgICBFeGNsdWRlUmVzcG9uc2VCb2R5IGJvb2wKCiAgICAvLyBJbmNsdWRlUmVzcG9uc2VTdGF0dXMgbWFrZXMgVmFsaWRhdGUgZmFpbCBvbiByZXNwb25zZQogICAgLy8gc3RhdHVzZXMgbm90IGRlZmluZWQgaW4gdGhlIE9wZW5BUEkgc3BlYy4KICAgIC8vIE9wdGlvbmFsLiBEZWZhdWx0cyB0byB0cnVlLgogICAgSW5jbHVkZVJlc3BvbnNlU3RhdHVzIGJvb2wKfQpgYGAK readmeEtag: '"31ac2ac48f8c5aa9e948876a85de3bfa94d8b608"' readmeLastModified: Tue, 06 Feb 2024 20:18:00 GMT repositoryId: 557002965 description: OpenAPI middleware for the Echo framework created: '2022-10-24T23:08:22Z' updated: '2024-07-20T08:01:04Z' language: Go archived: false stars: 4 watchers: 2 forks: 1 owner: alexferl logo: https://avatars.githubusercontent.com/u/3533424?v=4 license: MIT repoEtag: '"9116673324862d9bd3060bc7f3a4ff3ed859bdacb3ebb50668547dcc7c6e9af5"' repoLastModified: Sat, 20 Jul 2024 08:01:04 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/namsor/namsor-java-sdk2 v3: true repositoryMetadata: base64Readme: >- IyBuYW1zb3Itc2RrMgoKTmFtU29yIEFQSSB2MgotIEFQSSB2ZXJzaW9uOiAyLjAuMzAKICAtIEJ1aWxkIGRhdGU6IDIwMjQtMDQtMTFUMTA6NTY6NDcuNTE5NjI1KzAyOjAwW0V1cm9wZS9CZXJsaW5dCgpOYW1Tb3IgQVBJIHYyIDogZW5wb2ludHMgdG8gcHJvY2VzcyBwZXJzb25hbCBuYW1lcyAoZ2VuZGVyLCBjdWx0dXJhbCBvcmlnaW4gb3IgZXRobmljaXR5KSBpbiBhbGwgYWxwaGFiZXRzIG9yIGxhbmd1YWdlcy4gQnkgZGVmYXVsdCwgZW5wb2ludHMgdXNlIDEgdW5pdCBwZXIgbmFtZSAoZXguIEdlbmRlciksIGJ1dCBFdGhuaWNpdHkgY2xhc3NpZmljYXRpb24gdXNlcyAxMCB0byAyMCB1bml0cyBwZXIgbmFtZSBkZXBlbmRpbmcgb24gdGF4b25vbXkuIFVzZSBHRVQgbWV0aG9kcyBmb3Igc21hbGwgdGVzdHMsIGJ1dCBwcmVmZXIgUE9TVCBtZXRob2RzIGZvciBoaWdoZXIgdGhyb3VnaHB1dCAoYmF0Y2ggcHJvY2Vzc2luZyBvZiB1cCB0byAxMDAgbmFtZXMgYXQgYSB0aW1lKS4gTmVlZCBzb21ldGhpbmcgeW91IGNhbid0IGZpbmQgaGVyZT8gV2UgaGF2ZSBtYW55IG1vcmUgZmVhdHVyZXMgY29taW5nIHNvb24uIExldCB1cyBrbm93LCB3ZSdsbCBkbyBvdXIgYmVzdCB0byBhZGQgaXQhIAoKICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0IFtodHRwOi8vd3d3Lm5hbXNvci5jb20vXShodHRwOi8vd3d3Lm5hbXNvci5jb20vKQoKKkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkqCgoKIyMgUmVxdWlyZW1lbnRzCgpCdWlsZGluZyB0aGUgQVBJIGNsaWVudCBsaWJyYXJ5IHJlcXVpcmVzOgoxLiBKYXZhIDEuNysKMi4gTWF2ZW4vR3JhZGxlCgojIyBJbnN0YWxsYXRpb24KClRvIGluc3RhbGwgdGhlIEFQSSBjbGllbnQgbGlicmFyeSB0byB5b3VyIGxvY2FsIE1hdmVuIHJlcG9zaXRvcnksIHNpbXBseSBleGVjdXRlOgoKYGBgc2hlbGwKbXZuIGNsZWFuIGluc3RhbGwKYGBgCgpUbyBkZXBsb3kgaXQgdG8gYSByZW1vdGUgTWF2ZW4gcmVwb3NpdG9yeSBpbnN0ZWFkLCBjb25maWd1cmUgdGhlIHNldHRpbmdzIG9mIHRoZSByZXBvc2l0b3J5IGFuZCBleGVjdXRlOgoKYGBgc2hlbGwKbXZuIGNsZWFuIGRlcGxveQpgYGAKClJlZmVyIHRvIHRoZSBbT1NTUkggR3VpZGVdKGh0dHA6Ly9jZW50cmFsLnNvbmF0eXBlLm9yZy9wYWdlcy9vc3NyaC1ndWlkZS5odG1sKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIyBNYXZlbiB1c2VycwoKQWRkIHRoaXMgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QncyBQT006CgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgPGdyb3VwSWQ+Y29tLm5hbXNvcjwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5uYW1zb3Itc2RrMjwvYXJ0aWZhY3RJZD4KICA8dmVyc2lvbj4yLjAuMzA8L3ZlcnNpb24+CiAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgo8L2RlcGVuZGVuY3k+CmBgYAoKIyMjIEdyYWRsZSB1c2VycwoKQWRkIHRoaXMgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QncyBidWlsZCBmaWxlOgoKYGBgZ3Jvb3Z5CmNvbXBpbGUgImNvbS5uYW1zb3I6bmFtc29yLXNkazI6Mi4wLjMwIgpgYGAKCiMjIyBPdGhlcnMKCkF0IGZpcnN0IGdlbmVyYXRlIHRoZSBKQVIgYnkgZXhlY3V0aW5nOgoKYGBgc2hlbGwKbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgpUaGVuIG1hbnVhbGx5IGluc3RhbGwgdGhlIGZvbGxvd2luZyBKQVJzOgoKKiBgdGFyZ2V0L25hbXNvci1zZGsyLTIuMC4zMC5qYXJgCiogYHRhcmdldC9saWIvKi5qYXJgCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClBsZWFzZSBmb2xsb3cgdGhlIFtpbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pIGluc3RydWN0aW9uIGFuZCBleGVjdXRlIHRoZSBmb2xsb3dpbmcgSmF2YSBjb2RlOgoKYGBgamF2YQoKaW1wb3J0IGNvbS5uYW1zb3Iuc2RrMi5pbnZva2UuKjsKaW1wb3J0IGNvbS5uYW1zb3Iuc2RrMi5pbnZva2UuYXV0aC4qOwppbXBvcnQgY29tLm5hbXNvci5zZGsyLm1vZGVsLio7CmltcG9ydCBjb20ubmFtc29yLnNkazIuYXBpLkFkbWluQXBpOwoKaW1wb3J0IGphdmEuaW8uRmlsZTsKaW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIEFkbWluQXBpRXhhbXBsZSB7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIEFwaUNsaWVudCBkZWZhdWx0Q2xpZW50ID0gQ29uZmlndXJhdGlvbi5nZXREZWZhdWx0QXBpQ2xpZW50KCk7CiAgICAgICAgCiAgICAgICAgLy8gQ29uZmlndXJlIEFQSSBrZXkgYXV0aG9yaXphdGlvbjogYXBpX2tleQogICAgICAgIEFwaUtleUF1dGggYXBpX2tleSA9IChBcGlLZXlBdXRoKSBkZWZhdWx0Q2xpZW50LmdldEF1dGhlbnRpY2F0aW9uKCJhcGlfa2V5Iik7CiAgICAgICAgYXBpX2tleS5zZXRBcGlLZXkoIllPVVIgQVBJIEtFWSIpOwogICAgICAgIC8vIFVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gc2V0IGEgcHJlZml4IGZvciB0aGUgQVBJIGtleSwgZS5nLiAiVG9rZW4iIChkZWZhdWx0cyB0byBudWxsKQogICAgICAgIC8vYXBpX2tleS5zZXRBcGlLZXlQcmVmaXgoIlRva2VuIik7CgogICAgICAgIEFkbWluQXBpIGFwaUluc3RhbmNlID0gbmV3IEFkbWluQXBpKCk7CiAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICJzb3VyY2VfZXhhbXBsZSI7IC8vIFN0cmluZyB8IAogICAgICAgIEJvb2xlYW4gYW5vbnltaXplZCA9IHRydWU7IC8vIEJvb2xlYW4gfCAKICAgICAgICB0cnkgewogICAgICAgICAgICBhcGlJbnN0YW5jZS5hbm9ueW1pemUoc291cmNlLCBhbm9ueW1pemVkKTsKICAgICAgICB9IGNhdGNoIChBcGlFeGNlcHRpb24gZSkgewogICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQWRtaW5BcGkjYW5vbnltaXplIik7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQogICAgfQp9CgpgYGAKCiMjIERvY3VtZW50YXRpb24gZm9yIEFQSSBFbmRwb2ludHMKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly92Mi5uYW1zb3IuY29tL05hbVNvckFQSXYyKgoKQ2xhc3MgfCBNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKkFkbWluQXBpKiB8IFsqKmFub255bWl6ZSoqXShkb2NzL0FkbWluQXBpLm1kI2Fub255bWl6ZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vYW5vbnltaXplL3tzb3VyY2V9L3thbm9ueW1pemVkfSB8IEFjdGl2YXRlL2RlYWN0aXZhdGUgYW5vbnltaXphdGlvbiBmb3IgYSBzb3VyY2UuCipBZG1pbkFwaSogfCBbKiphbm9ueW1pemUxKipdKGRvY3MvQWRtaW5BcGkubWQjYW5vbnltaXplMSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vYW5vbnltaXplL3tzb3VyY2V9L3thbm9ueW1pemVkfS97dG9rZW59IHwgQWN0aXZhdGUvZGVhY3RpdmF0ZSBhbm9ueW1pemF0aW9uIGZvciBhIHNvdXJjZS4KKkFkbWluQXBpKiB8IFsqKmFwaUtleUluZm8qKl0oZG9jcy9BZG1pbkFwaS5tZCNhcGlLZXlJbmZvKSB8ICoqR0VUKiogL2FwaTIvanNvbi9hcGlLZXlJbmZvIHwgUmVhZCBBUEkgS2V5IGluZm8uCipBZG1pbkFwaSogfCBbKiphcGlTdGF0dXMqKl0oZG9jcy9BZG1pbkFwaS5tZCNhcGlTdGF0dXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVN0YXR1cyB8IFByaW50cyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGNsYXNzaWZpZXJzLiBBIGNsYXNzaWZpZXIgbmFtZSBpbiBhcGlTdGF0dXMgY29ycmVzcG9uZHMgdG8gYSBzZXJ2aWNlIG5hbWUgaW4gYXBpU2VydmljZXMuCipBZG1pbkFwaSogfCBbKiphcGlVc2FnZSoqXShkb2NzL0FkbWluQXBpLm1kI2FwaVVzYWdlKSB8ICoqR0VUKiogL2FwaTIvanNvbi9hcGlVc2FnZSB8IFByaW50IGN1cnJlbnQgQVBJIHVzYWdlLgoqQWRtaW5BcGkqIHwgWyoqYXBpVXNhZ2VIaXN0b3J5KipdKGRvY3MvQWRtaW5BcGkubWQjYXBpVXNhZ2VIaXN0b3J5KSB8ICoqR0VUKiogL2FwaTIvanNvbi9hcGlVc2FnZUhpc3RvcnkgfCBQcmludCBoaXN0b3JpY2FsIEFQSSB1c2FnZS4KKkFkbWluQXBpKiB8IFsqKmFwaVVzYWdlSGlzdG9yeUFnZ3JlZ2F0ZSoqXShkb2NzL0FkbWluQXBpLm1kI2FwaVVzYWdlSGlzdG9yeUFnZ3JlZ2F0ZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vYXBpVXNhZ2VIaXN0b3J5QWdncmVnYXRlIHwgUHJpbnQgaGlzdG9yaWNhbCBBUEkgdXNhZ2UgKGluIGFuIGFnZ3JlZ2F0ZWQgdmlldywgYnkgc2VydmljZSwgYnkgZGF5L2hvdXIvbWluKS4KKkFkbWluQXBpKiB8IFsqKmF2YWlsYWJsZVNlcnZpY2VzKipdKGRvY3MvQWRtaW5BcGkubWQjYXZhaWxhYmxlU2VydmljZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVNlcnZpY2VzIHwgTGlzdCBvZiBjbGFzc2lmaWNhdGlvbiBzZXJ2aWNlcyBhbmQgdXNhZ2UgY29zdCBpbiBVbml0cyBwZXIgY2xhc3NpZmljYXRpb24gKGRlZmF1bHQgaXMgMSYjeDNEO09ORSBVbml0KS4gU29tZSBBUEkgZW5kcG9pbnRzIChleC4gQ29ycmlkb3IpIGNvbWJpbmUgbXVsdGlwbGUgY2xhc3NpZmllcnMuCipBZG1pbkFwaSogfCBbKipkaXNhYmxlKipdKGRvY3MvQWRtaW5BcGkubWQjZGlzYWJsZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vZGlzYWJsZS97c291cmNlfS97ZGlzYWJsZWR9IHwgQWN0aXZhdGUvZGVhY3RpdmF0ZSBhbiBBUEkgS2V5LgoqQWRtaW5BcGkqIHwgWyoqbGVhcm5hYmxlKipdKGRvY3MvQWRtaW5BcGkubWQjbGVhcm5hYmxlKSB8ICoqR0VUKiogL2FwaTIvanNvbi9sZWFybmFibGUve3NvdXJjZX0ve2xlYXJuYWJsZX0ve3Rva2VufSB8IEFjdGl2YXRlL2RlYWN0aXZhdGUgbGVhcm5pbmcgZnJvbSBhIHNvdXJjZS4KKkFkbWluQXBpKiB8IFsqKmxlYXJuYWJsZTEqKl0oZG9jcy9BZG1pbkFwaS5tZCNsZWFybmFibGUxKSB8ICoqR0VUKiogL2FwaTIvanNvbi9sZWFybmFibGUve3NvdXJjZX0ve2xlYXJuYWJsZX0gfCBBY3RpdmF0ZS9kZWFjdGl2YXRlIGxlYXJuaW5nIGZyb20gYSBzb3VyY2UuCipBZG1pbkFwaSogfCBbKipyZWdpb25zKipdKGRvY3MvQWRtaW5BcGkubWQjcmVnaW9ucykgfCAqKkdFVCoqIC9hcGkyL2pzb24vcmVnaW9ucyB8IFByaW50IGJhc2ljIHNvdXJjZSBzdGF0aXN0aWNzLgoqQWRtaW5BcGkqIHwgWyoqc29mdHdhcmVWZXJzaW9uKipdKGRvY3MvQWRtaW5BcGkubWQjc29mdHdhcmVWZXJzaW9uKSB8ICoqR0VUKiogL2FwaTIvanNvbi9zb2Z0d2FyZVZlcnNpb24gfCBHZXQgdGhlIGN1cnJlbnQgc29mdHdhcmUgdmVyc2lvbgoqQWRtaW5BcGkqIHwgWyoqdGF4b25vbXlDbGFzc2VzKipdKGRvY3MvQWRtaW5BcGkubWQjdGF4b25vbXlDbGFzc2VzKSB8ICoqR0VUKiogL2FwaTIvanNvbi90YXhvbm9teUNsYXNzZXMve2NsYXNzaWZpZXJOYW1lfSB8IFByaW50IHRoZSB0YXhvbm9teSBjbGFzc2VzIHZhbGlkIGZvciB0aGUgZ2l2ZW4gY2xhc3NpZmllci4KKkNoaW5lc2VBcGkqIHwgWyoqY2hpbmVzZU5hbWVDYW5kaWRhdGVzKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNjaGluZXNlTmFtZUNhbmRpZGF0ZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlcy97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0gfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBXYW5nIFhpYW9taW5nCipDaGluZXNlQXBpKiB8IFsqKmNoaW5lc2VOYW1lQ2FuZGlkYXRlc0JhdGNoKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNjaGluZXNlTmFtZUNhbmRpZGF0ZXNCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlc0JhdGNoIHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSAoZmlyc3ROYW1lICYjeDNEOyBjaGluZXNlR2l2ZW5OYW1lOyBsYXN0TmFtZSYjeDNEO2NoaW5lc2VTdXJuYW1lKSwgZXguIFdhbmcgWGlhb21pbmcKKkNoaW5lc2VBcGkqIHwgWyoqY2hpbmVzZU5hbWVDYW5kaWRhdGVzR2VuZGVyQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2NoaW5lc2VOYW1lQ2FuZGlkYXRlc0dlbmRlckJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vY2hpbmVzZU5hbWVDYW5kaWRhdGVzR2VuZGVyQmF0Y2ggfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGNoaW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lJiN4M0Q7Y2hpbmVzZVN1cm5hbWUpIGV4LiBXYW5nIFhpYW9taW5nLgoqQ2hpbmVzZUFwaSogfCBbKipjaGluZXNlTmFtZUdlbmRlckNhbmRpZGF0ZXMqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2NoaW5lc2VOYW1lR2VuZGVyQ2FuZGlkYXRlcykgfCAqKkdFVCoqIC9hcGkyL2pzb24vY2hpbmVzZU5hbWVHZW5kZXJDYW5kaWRhdGVzL3tjaGluZXNlU3VybmFtZUxhdGlufS97Y2hpbmVzZUdpdmVuTmFtZUxhdGlufS97a25vd25HZW5kZXJ9IHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSBleC4gV2FuZyBYaWFvbWluZyAtIGhhdmluZyBhIGtub3duIGdlbmRlciAoJiMzOTttYWxlJiMzOTsgb3IgJiMzOTtmZW1hbGUmIzM5OykKKkNoaW5lc2VBcGkqIHwgWyoqY2hpbmVzZU5hbWVNYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjY2hpbmVzZU5hbWVNYXRjaCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vY2hpbmVzZU5hbWVNYXRjaC97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0ve2NoaW5lc2VOYW1lfSB8IFJldHVybiBhIHNjb3JlIGZvciBtYXRjaGluZyBDaGluZXNlIG5hbWUgZXguIOeOi+aZk+aYjiB3aXRoIGEgcm9tYW5pemVkIG5hbWUgZXguIFdhbmcgWGlhb21pbmcKKkNoaW5lc2VBcGkqIHwgWyoqY2hpbmVzZU5hbWVNYXRjaEJhdGNoKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNjaGluZXNlTmFtZU1hdGNoQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9jaGluZXNlTmFtZU1hdGNoQmF0Y2ggfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGNoaW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lJiN4M0Q7Y2hpbmVzZVN1cm5hbWUpLCBleC4gV2FuZyBYaWFvbWluZwoqQ2hpbmVzZUFwaSogfCBbKipnZW5kZXJDaGluZXNlTmFtZSoqXShkb2NzL0NoaW5lc2VBcGkubWQjZ2VuZGVyQ2hpbmVzZU5hbWUpIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlckNoaW5lc2VOYW1lL3tjaGluZXNlTmFtZX0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIENoaW5lc2UgZnVsbCBuYW1lIGV4LiDnjovmmZPmmI4KKkNoaW5lc2VBcGkqIHwgWyoqZ2VuZGVyQ2hpbmVzZU5hbWVCYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjZ2VuZGVyQ2hpbmVzZU5hbWVCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckNoaW5lc2VOYW1lQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgZnVsbCBuYW1lcyBleC4g546L5pmT5piOCipDaGluZXNlQXBpKiB8IFsqKmdlbmRlckNoaW5lc2VOYW1lUGlueWluKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNnZW5kZXJDaGluZXNlTmFtZVBpbnlpbikgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVyQ2hpbmVzZU5hbWVQaW55aW4ve2NoaW5lc2VTdXJuYW1lTGF0aW59L3tjaGluZXNlR2l2ZW5OYW1lTGF0aW59IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBDaGluZXNlIG5hbWUgaW4gTEFUSU4gKFBpbnlpbikuCipDaGluZXNlQXBpKiB8IFsqKmdlbmRlckNoaW5lc2VOYW1lUGlueWluQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2dlbmRlckNoaW5lc2VOYW1lUGlueWluQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9nZW5kZXJDaGluZXNlTmFtZVBpbnlpbkJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIENoaW5lc2UgbmFtZXMgaW4gTEFUSU4gKFBpbnlpbikuCipDaGluZXNlQXBpKiB8IFsqKnBhcnNlQ2hpbmVzZU5hbWUqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BhcnNlQ2hpbmVzZU5hbWUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3BhcnNlQ2hpbmVzZU5hbWUve2NoaW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDnjovmmZPmmI4gLSZndDsg546LKHN1cm5hbWUpIOaZk+aYjihnaXZlbiBuYW1lKQoqQ2hpbmVzZUFwaSogfCBbKipwYXJzZUNoaW5lc2VOYW1lQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BhcnNlQ2hpbmVzZU5hbWVCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3BhcnNlQ2hpbmVzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDnjovmmZPmmI4gLSZndDsg546LKHN1cm5hbWUpIOaZk+aYjihnaXZlbiBuYW1lKS4KKkNoaW5lc2VBcGkqIHwgWyoqcGlueWluQ2hpbmVzZU5hbWUqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BpbnlpbkNoaW5lc2VOYW1lKSB8ICoqR0VUKiogL2FwaTIvanNvbi9waW55aW5DaGluZXNlTmFtZS97Y2hpbmVzZU5hbWV9IHwgUm9tYW5pemUgdGhlIENoaW5lc2UgbmFtZSB0byBQaW55aW4sIGV4LiDnjovmmZPmmI4gLSZndDsgV2FuZyAoc3VybmFtZSkgWGlhb21pbmcgKGdpdmVuIG5hbWUpCipDaGluZXNlQXBpKiB8IFsqKnBpbnlpbkNoaW5lc2VOYW1lQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BpbnlpbkNoaW5lc2VOYW1lQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9waW55aW5DaGluZXNlTmFtZUJhdGNoIHwgUm9tYW5pemUgYSBsaXN0IG9mIENoaW5lc2UgbmFtZSB0byBQaW55aW4sIGV4LiDnjovmmZPmmI4gLSZndDsgV2FuZyAoc3VybmFtZSkgWGlhb21pbmcgKGdpdmVuIG5hbWUpLgoqR2VuZXJhbEFwaSogfCBbKipuYW1lVHlwZSoqXShkb2NzL0dlbmVyYWxBcGkubWQjbmFtZVR5cGUpIHwgKipHRVQqKiAvYXBpMi9qc29uL25hbWVUeXBlL3twcm9wZXJOb3VufSB8IEluZmVyIHRoZSBsaWtlbHkgdHlwZSBvZiBhIHByb3BlciBub3VuIChwZXJzb25hbCBuYW1lLCBicmFuZCBuYW1lLCBwbGFjZSBuYW1lIGV0Yy4pCipHZW5lcmFsQXBpKiB8IFsqKm5hbWVUeXBlQmF0Y2gqKl0oZG9jcy9HZW5lcmFsQXBpLm1kI25hbWVUeXBlQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9uYW1lVHlwZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBjb21tb24gdHlwZSBvZiB1cCB0byAxMDAgcHJvcGVyIG5vdW5zIChwZXJzb25hbCBuYW1lLCBicmFuZCBuYW1lLCBwbGFjZSBuYW1lIGV0Yy4pCipHZW5lcmFsQXBpKiB8IFsqKm5hbWVUeXBlR2VvKipdKGRvY3MvR2VuZXJhbEFwaS5tZCNuYW1lVHlwZUdlbykgfCAqKkdFVCoqIC9hcGkyL2pzb24vbmFtZVR5cGVHZW8ve3Byb3Blck5vdW59L3tjb3VudHJ5SXNvMn0gfCBJbmZlciB0aGUgbGlrZWx5IHR5cGUgb2YgYSBwcm9wZXIgbm91biAocGVyc29uYWwgbmFtZSwgYnJhbmQgbmFtZSwgcGxhY2UgbmFtZSBldGMuKQoqR2VuZXJhbEFwaSogfCBbKipuYW1lVHlwZUdlb0JhdGNoKipdKGRvY3MvR2VuZXJhbEFwaS5tZCNuYW1lVHlwZUdlb0JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vbmFtZVR5cGVHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgY29tbW9uIHR5cGUgb2YgdXAgdG8gMTAwIHByb3BlciBub3VucyAocGVyc29uYWwgbmFtZSwgYnJhbmQgbmFtZSwgcGxhY2UgbmFtZSBldGMuKQoqSW5kaWFuQXBpKiB8IFsqKmNhc3RlSW5kaWFuQmF0Y2gqKl0oZG9jcy9JbmRpYW5BcGkubWQjY2FzdGVJbmRpYW5CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2Nhc3RlSW5kaWFuQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gbmFtZSBjYXN0ZSBvZiB1cCB0byAxMDAgcGVyc29uYWwgSW5kaWFuIEhpbmR1IG5hbWVzLiAKKkluZGlhbkFwaSogfCBbKipjYXN0ZWdyb3VwSW5kaWFuKipdKGRvY3MvSW5kaWFuQXBpLm1kI2Nhc3RlZ3JvdXBJbmRpYW4pIHwgKipHRVQqKiAvYXBpMi9qc29uL2Nhc3RlZ3JvdXBJbmRpYW4ve3N1YkRpdmlzaW9uSXNvMzE2NjJ9L3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gbmFtZSBjYXN0ZWdyb3VwIG9mIGEgZmlyc3QgLyBsYXN0IG5hbWUuCipJbmRpYW5BcGkqIHwgWyoqY2FzdGVncm91cEluZGlhbkJhdGNoKipdKGRvY3MvSW5kaWFuQXBpLm1kI2Nhc3RlZ3JvdXBJbmRpYW5CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2Nhc3RlZ3JvdXBJbmRpYW5CYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IEluZGlhbiBuYW1lIGNhc3RlZ3JvdXAgb2YgdXAgdG8gMTAwIHBlcnNvbmFsIGZpcnN0IC8gbGFzdCBuYW1lcy4gCipJbmRpYW5BcGkqIHwgWyoqY2FzdGVncm91cEluZGlhbkZ1bGwqKl0oZG9jcy9JbmRpYW5BcGkubWQjY2FzdGVncm91cEluZGlhbkZ1bGwpIHwgKipHRVQqKiAvYXBpMi9qc29uL2Nhc3RlZ3JvdXBJbmRpYW5GdWxsL3tzdWJEaXZpc2lvbklzbzMxNjYyfS97cGVyc29uYWxOYW1lRnVsbH0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gbmFtZSBjYXN0ZWdyb3VwIG9mIGEgcGVyc29uYWwgZnVsbCBuYW1lLgoqSW5kaWFuQXBpKiB8IFsqKmNhc3RlZ3JvdXBJbmRpYW5GdWxsQmF0Y2gqKl0oZG9jcy9JbmRpYW5BcGkubWQjY2FzdGVncm91cEluZGlhbkZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2Nhc3RlZ3JvdXBJbmRpYW5GdWxsQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gbmFtZSBjYXN0ZWdyb3VwIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBmdWxsIG5hbWVzLiAKKkluZGlhbkFwaSogfCBbKipjYXN0ZWdyb3VwSW5kaWFuSGluZHUqKl0oZG9jcy9JbmRpYW5BcGkubWQjY2FzdGVncm91cEluZGlhbkhpbmR1KSB8ICoqR0VUKiogL2FwaTIvanNvbi9jYXN0ZUluZGlhbi97c3ViRGl2aXNpb25Jc28zMTY2Mn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IEluZGlhbiBuYW1lIGNhc3RlIG9mIGEgcGVyc29uYWwgSGluZHUgbmFtZS4KKkluZGlhbkFwaSogfCBbKipyZWxpZ2lvbioqXShkb2NzL0luZGlhbkFwaS5tZCNyZWxpZ2lvbikgfCAqKkdFVCoqIC9hcGkyL2pzb24vcmVsaWdpb25JbmRpYW5GdWxsL3tzdWJEaXZpc2lvbklzbzMxNjYyfS97cGVyc29uYWxOYW1lRnVsbH0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSByZWxpZ2lvbiBvZiBhIHBlcnNvbmFsIEluZGlhbiBmdWxsIG5hbWUsIHByb3ZpZGVkIHRoZSBJbmRpYW4gc3RhdGUgb3IgVW5pb24gdGVycml0b3J5IChOQi8gdGhpcyBjYW4gYmUgaW5mZXJyZWQgdXNpbmcgdGhlIHN1YmNsYXNzaWZpY2F0aW9uIGVuZHBvaW50KS4KKkluZGlhbkFwaSogfCBbKipyZWxpZ2lvbjEqKl0oZG9jcy9JbmRpYW5BcGkubWQjcmVsaWdpb24xKSB8ICoqR0VUKiogL2FwaTIvanNvbi9yZWxpZ2lvbkluZGlhbi97c3ViRGl2aXNpb25Jc28zMTY2Mn0ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IHJlbGlnaW9uIG9mIGEgcGVyc29uYWwgSW5kaWFuIGZpcnN0L2xhc3QgbmFtZSwgcHJvdmlkZWQgdGhlIEluZGlhbiBzdGF0ZSBvciBVbmlvbiB0ZXJyaXRvcnkgKE5CLyB0aGlzIGNhbiBiZSBpbmZlcnJlZCB1c2luZyB0aGUgc3ViY2xhc3NpZmljYXRpb24gZW5kcG9pbnQpLgoqSW5kaWFuQXBpKiB8IFsqKnJlbGlnaW9uSW5kaWFuQmF0Y2gqKl0oZG9jcy9JbmRpYW5BcGkubWQjcmVsaWdpb25JbmRpYW5CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3JlbGlnaW9uSW5kaWFuQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSByZWxpZ2lvbiBvZiB1cCB0byAxMDAgcGVyc29uYWwgZmlyc3QvbGFzdCBJbmRpYW4gbmFtZXMsIHByb3ZpZGVkIHRoZSBzdWJjbGFzc2lmaWNhdGlvbiBhdCBTdGF0ZSBvciBVbmlvbiB0ZXJyaXRvcnkgbGV2ZWwgKE5CLyBjYW4gYmUgaW5mZXJyZWQgdXNpbmcgdGhlIHN1YmNsYXNzaWZpY2F0aW9uIGVuZHBvaW50KS4KKkluZGlhbkFwaSogfCBbKipyZWxpZ2lvbkluZGlhbkZ1bGxCYXRjaCoqXShkb2NzL0luZGlhbkFwaS5tZCNyZWxpZ2lvbkluZGlhbkZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3JlbGlnaW9uSW5kaWFuRnVsbEJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgcmVsaWdpb24gb2YgdXAgdG8gMTAwIHBlcnNvbmFsIGZ1bGwgSW5kaWFuIG5hbWVzLCBwcm92aWRlZCB0aGUgc3ViY2xhc3NpZmljYXRpb24gYXQgU3RhdGUgb3IgVW5pb24gdGVycml0b3J5IGxldmVsIChOQi8gY2FuIGJlIGluZmVycmVkIHVzaW5nIHRoZSBzdWJjbGFzc2lmaWNhdGlvbiBlbmRwb2ludCkuCipJbmRpYW5BcGkqIHwgWyoqc3ViY2xhc3NpZmljYXRpb25JbmRpYW4qKl0oZG9jcy9JbmRpYW5BcGkubWQjc3ViY2xhc3NpZmljYXRpb25JbmRpYW4pIHwgKipHRVQqKiAvYXBpMi9qc29uL3N1YmNsYXNzaWZpY2F0aW9uSW5kaWFuL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gc3RhdGUgb2YgVW5pb24gdGVycml0b3J5IGFjY29yZGluZyB0byBJU08gMzE2Ni0yOklOIGJhc2VkIG9uIHRoZSBuYW1lLgoqSW5kaWFuQXBpKiB8IFsqKnN1YmNsYXNzaWZpY2F0aW9uSW5kaWFuQmF0Y2gqKl0oZG9jcy9JbmRpYW5BcGkubWQjc3ViY2xhc3NpZmljYXRpb25JbmRpYW5CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3N1YmNsYXNzaWZpY2F0aW9uSW5kaWFuQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gc3RhdGUgb2YgVW5pb24gdGVycml0b3J5IGFjY29yZGluZyB0byBJU08gMzE2Ni0yOklOIGJhc2VkIG9uIGEgbGlzdCBvZiB1cCB0byAxMDAgbmFtZXMuCipJbmRpYW5BcGkqIHwgWyoqc3ViY2xhc3NpZmljYXRpb25JbmRpYW5GdWxsKipdKGRvY3MvSW5kaWFuQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uSW5kaWFuRnVsbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vc3ViY2xhc3NpZmljYXRpb25JbmRpYW5GdWxsL3tmdWxsTmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gc3RhdGUgb2YgVW5pb24gdGVycml0b3J5IGFjY29yZGluZyB0byBJU08gMzE2Ni0yOklOIGJhc2VkIG9uIHRoZSBuYW1lLgoqSW5kaWFuQXBpKiB8IFsqKnN1YmNsYXNzaWZpY2F0aW9uSW5kaWFuRnVsbEJhdGNoKipdKGRvY3MvSW5kaWFuQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uSW5kaWFuRnVsbEJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vc3ViY2xhc3NpZmljYXRpb25JbmRpYW5GdWxsQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBJbmRpYW4gc3RhdGUgb2YgVW5pb24gdGVycml0b3J5IGFjY29yZGluZyB0byBJU08gMzE2Ni0yOklOIGJhc2VkIG9uIGEgbGlzdCBvZiB1cCB0byAxMDAgbmFtZXMuCipKYXBhbmVzZUFwaSogfCBbKipnZW5kZXJKYXBhbmVzZU5hbWVGdWxsKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjZ2VuZGVySmFwYW5lc2VOYW1lRnVsbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVySmFwYW5lc2VOYW1lRnVsbC97amFwYW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgSmFwYW5lc2UgZnVsbCBuYW1lIGV4LiDnjovmmZPmmI4KKkphcGFuZXNlQXBpKiB8IFsqKmdlbmRlckphcGFuZXNlTmFtZUZ1bGxCYXRjaCoqXShkb2NzL0phcGFuZXNlQXBpLm1kI2dlbmRlckphcGFuZXNlTmFtZUZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZUZ1bGxCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxsIG5hbWVzCipKYXBhbmVzZUFwaSogfCBbKipnZW5kZXJKYXBhbmVzZU5hbWVQaW55aW4qKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNnZW5kZXJKYXBhbmVzZU5hbWVQaW55aW4pIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZS97amFwYW5lc2VTdXJuYW1lfS97amFwYW5lc2VHaXZlbk5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBKYXBhbmVzZSBuYW1lIGluIExBVElOIChQaW55aW4pLgoqSmFwYW5lc2VBcGkqIHwgWyoqZ2VuZGVySmFwYW5lc2VOYW1lUGlueWluQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNnZW5kZXJKYXBhbmVzZU5hbWVQaW55aW5CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIEphcGFuZXNlIG5hbWVzIGluIExBVElOIChQaW55aW4pLgoqSmFwYW5lc2VBcGkqIHwgWyoqamFwYW5lc2VOYW1lR2VuZGVyS2FuamlDYW5kaWRhdGVzQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZU5hbWVHZW5kZXJLYW5qaUNhbmRpZGF0ZXNCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUdlbmRlckthbmppQ2FuZGlkYXRlc0JhdGNoIHwgSWRlbnRpZnkgamFwYW5lc2UgbmFtZSBjYW5kaWRhdGVzIGluIEtBTkpJLCBiYXNlZCBvbiB0aGUgcm9tYW5pemVkIG5hbWUgKGZpcnN0TmFtZSAmI3gzRDsgamFwYW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lJiN4M0Q7amFwYW5lc2VTdXJuYW1lKSB3aXRoIEtOT1dOIGdlbmRlciwgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipqYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXMqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlcy97amFwYW5lc2VTdXJuYW1lTGF0aW59L3tqYXBhbmVzZUdpdmVuTmFtZUxhdGlufSB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBZYW1hbW90byBTYW5hZQoqSmFwYW5lc2VBcGkqIHwgWyoqamFwYW5lc2VOYW1lS2FuamlDYW5kaWRhdGVzMSoqXShkb2NzL0phcGFuZXNlQXBpLm1kI2phcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlczEpIHwgKipHRVQqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlcy97amFwYW5lc2VTdXJuYW1lTGF0aW59L3tqYXBhbmVzZUdpdmVuTmFtZUxhdGlufS97a25vd25HZW5kZXJ9IHwgSWRlbnRpZnkgamFwYW5lc2UgbmFtZSBjYW5kaWRhdGVzIGluIEtBTkpJLCBiYXNlZCBvbiB0aGUgcm9tYW5pemVkIG5hbWUgZXguIFlhbWFtb3RvIFNhbmFlIC0gYW5kIGEga25vd24gZ2VuZGVyLgoqSmFwYW5lc2VBcGkqIHwgWyoqamFwYW5lc2VOYW1lS2FuamlDYW5kaWRhdGVzQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXNCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlc0JhdGNoIHwgSWRlbnRpZnkgamFwYW5lc2UgbmFtZSBjYW5kaWRhdGVzIGluIEtBTkpJLCBiYXNlZCBvbiB0aGUgcm9tYW5pemVkIG5hbWUgKGZpcnN0TmFtZSAmI3gzRDsgamFwYW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lJiN4M0Q7amFwYW5lc2VTdXJuYW1lKSwgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipqYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXMqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUxhdGluQ2FuZGlkYXRlcy97amFwYW5lc2VTdXJuYW1lS2Fuaml9L3tqYXBhbmVzZUdpdmVuTmFtZUthbmppfSB8IFJvbWFuaXplIGphcGFuZXNlIG5hbWUsIGJhc2VkIG9uIHRoZSBuYW1lIGluIEthbmppLgoqSmFwYW5lc2VBcGkqIHwgWyoqamFwYW5lc2VOYW1lTGF0aW5DYW5kaWRhdGVzQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXNCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZUxhdGluQ2FuZGlkYXRlc0JhdGNoIHwgUm9tYW5pemUgamFwYW5lc2UgbmFtZXMsIGJhc2VkIG9uIHRoZSBuYW1lIGluIEtBTkpJCipKYXBhbmVzZUFwaSogfCBbKipqYXBhbmVzZU5hbWVNYXRjaCoqXShkb2NzL0phcGFuZXNlQXBpLm1kI2phcGFuZXNlTmFtZU1hdGNoKSB8ICoqR0VUKiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVNYXRjaC97amFwYW5lc2VTdXJuYW1lTGF0aW59L3tqYXBhbmVzZUdpdmVuTmFtZUxhdGlufS97amFwYW5lc2VOYW1lfSB8IFJldHVybiBhIHNjb3JlIGZvciBtYXRjaGluZyBKYXBhbmVzZSBuYW1lIGluIEtBTkpJIGV4LiDlsbHmnKwg5pep6IuXIHdpdGggYSByb21hbml6ZWQgbmFtZSBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKmphcGFuZXNlTmFtZU1hdGNoQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZU5hbWVNYXRjaEJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lTWF0Y2hCYXRjaCB8IFJldHVybiBhIHNjb3JlIGZvciBtYXRjaGluZyBhIGxpc3Qgb2YgSmFwYW5lc2UgbmFtZXMgaW4gS0FOSkkgZXguIOWxseacrCDml6noi5cgd2l0aCByb21hbml6ZWQgbmFtZXMgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipqYXBhbmVzZU5hbWVNYXRjaEZlZWRiYWNrTG9vcCoqXShkb2NzL0phcGFuZXNlQXBpLm1kI2phcGFuZXNlTmFtZU1hdGNoRmVlZGJhY2tMb29wKSB8ICoqR0VUKiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVNYXRjaEZlZWRiYWNrTG9vcC97amFwYW5lc2VTdXJuYW1lTGF0aW59L3tqYXBhbmVzZUdpdmVuTmFtZUxhdGlufS97amFwYW5lc2VOYW1lfSB8IFtDUkVESVRTIDEgVU5JVF0gRmVlZGJhY2sgbG9vcCB0byBiZXR0ZXIgcGVyZm9ybSBtYXRjaGluZyBKYXBhbmVzZSBuYW1lIGluIEtBTkpJIGV4LiDlsbHmnKwg5pep6IuXIHdpdGggYSByb21hbml6ZWQgbmFtZSBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKnBhcnNlSmFwYW5lc2VOYW1lKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjcGFyc2VKYXBhbmVzZU5hbWUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3BhcnNlSmFwYW5lc2VOYW1lL3tqYXBhbmVzZU5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIOWxseacrCDml6noi5cgb3IgWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKnBhcnNlSmFwYW5lc2VOYW1lQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNwYXJzZUphcGFuZXNlTmFtZUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vcGFyc2VKYXBhbmVzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDlsbHmnKwg5pep6IuXIG9yIFlhbWFtb3RvIFNhbmFlIAoqUGVyc29uYWxBcGkqIHwgWyoqY29tbXVuaXR5RW5nYWdlKipdKGRvY3MvUGVyc29uYWxBcGkubWQjY29tbXVuaXR5RW5nYWdlKSB8ICoqR0VUKiogL2FwaTIvanNvbi9jb21tdW5pdHlFbmdhZ2Uve2NvdW50cnlJc28yfS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMjAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgZXRobmljaXR5L2RpYXNwb3JhLCBjb3VudHJ5LCBnZW5kZXIgb2YgYSBwZXJzb25hbCBuYW1lLCBnaXZlbiBhIGNvdW50cnkgb2YgcmVzaWRlbmNlIElTTzIgY29kZSAoZXguIFVTLCBDQSwgQVUsIE5aIGV0Yy4pIGZvciBjb21tdW5pdHkgZW5nYWdlbWVudCAocmVxdWlyZSBzcGVjaWFsIG1vZHVsZS9wcmljaW5nKQoqUGVyc29uYWxBcGkqIHwgWyoqY29tbXVuaXR5RW5nYWdlQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNjb21tdW5pdHlFbmdhZ2VCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2NvbW11bml0eUVuZ2FnZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBldGhuaWNpdHkvZGlhc3BvcmEsIGNvdW50cnksIGdlbmRlciBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIGdpdmVuIGEgY291bnRyeSBvZiByZXNpZGVuY2UgSVNPMiBjb2RlIChleC4gVVMsIENBLCBBVSwgTlogZXRjLikgZm9yIGNvbW11bml0eSBlbmdhZ2VtZW50IChyZXF1aXJlIHNwZWNpYWwgbW9kdWxlL3ByaWNpbmcpCipQZXJzb25hbEFwaSogfCBbKipjb21tdW5pdHlFbmdhZ2VGdWxsKipdKGRvY3MvUGVyc29uYWxBcGkubWQjY29tbXVuaXR5RW5nYWdlRnVsbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vY29tbXVuaXR5RW5nYWdlRnVsbC97Y291bnRyeUlzbzJ9L3twZXJzb25hbE5hbWVGdWxsfSB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSwgY291bnRyeSwgZ2VuZGVyIG9mIGEgcGVyc29uYWwgbmFtZSwgZ2l2ZW4gYSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBJU08yIGNvZGUgKGV4LiBVUywgQ0EsIEFVLCBOWiBldGMuKSBmb3IgY29tbXVuaXR5IGVuZ2FnZW1lbnQgKHJlcXVpcmUgc3BlY2lhbCBtb2R1bGUvcHJpY2luZykKKlBlcnNvbmFsQXBpKiB8IFsqKmNvbW11bml0eUVuZ2FnZUZ1bGxCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2NvbW11bml0eUVuZ2FnZUZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2NvbW11bml0eUVuZ2FnZUZ1bGxCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZXRobmljaXR5L2RpYXNwb3JhLCBjb3VudHJ5LCBnZW5kZXIgb2YgdXAgdG8gMTAwIHBlcnNvbmFsIG5hbWVzLCBnaXZlbiBhIGNvdW50cnkgb2YgcmVzaWRlbmNlIElTTzIgY29kZSAoZXguIFVTLCBDQSwgQVUsIE5aIGV0Yy4pIGZvciBjb21tdW5pdHkgZW5nYWdlbWVudCAocmVxdWlyZSBzcGVjaWFsIG1vZHVsZS9wcmljaW5nKQoqUGVyc29uYWxBcGkqIHwgWyoqY29ycmlkb3IqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNjb3JyaWRvcikgfCAqKkdFVCoqIC9hcGkyL2pzb24vY29ycmlkb3Ive2NvdW50cnlJc28yRnJvbX0ve2ZpcnN0TmFtZUZyb219L3tsYXN0TmFtZUZyb219L3tjb3VudHJ5SXNvMlRvfS97Zmlyc3ROYW1lVG99L3tsYXN0TmFtZVRvfSB8IFtVU0VTIDUwIFVOSVRTIFBFUiBOQU1FIENPVVBMRV0gSW5mZXIgc2V2ZXJhbCBjbGFzc2lmaWNhdGlvbnMgZm9yIGEgY3Jvc3MgYm9yZGVyIGludGVyYWN0aW9uIGJldHdlZW4gbmFtZXMgKGV4LiByZW1pdCwgdHJhdmVsLCBpbnRsIGNvbSkKKlBlcnNvbmFsQXBpKiB8IFsqKmNvcnJpZG9yQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNjb3JyaWRvckJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vY29ycmlkb3JCYXRjaCB8IFtVU0VTIDUwIFVOSVRTIFBFUiBOQU1FIFBBSVJdIEluZmVyIHNldmVyYWwgY2xhc3NpZmljYXRpb25zIGZvciB1cCB0byAxMDAgY3Jvc3MgYm9yZGVyIGludGVyYWN0aW9uIGJldHdlZW4gbmFtZXMgKGV4LiByZW1pdCwgdHJhdmVsLCBpbnRsIGNvbSkKKlBlcnNvbmFsQXBpKiB8IFsqKmNvcnJpZG9yRnVsbCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2NvcnJpZG9yRnVsbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vY29ycmlkb3JGdWxsL3tjb3VudHJ5SXNvMkZyb219L3twZXJzb25hbE5hbWVGcm9tfS97Y291bnRyeUlzbzJUb30ve3BlcnNvbmFsTmFtZVRvfSB8IFtVU0VTIDUwIFVOSVRTIFBFUiBOQU1FIENPVVBMRV0gSW5mZXIgc2V2ZXJhbCBjbGFzc2lmaWNhdGlvbnMgZm9yIGEgY3Jvc3MgYm9yZGVyIGludGVyYWN0aW9uIGJldHdlZW4gbmFtZXMgKGV4LiByZW1pdCwgdHJhdmVsLCBpbnRsIGNvbSkKKlBlcnNvbmFsQXBpKiB8IFsqKmNvcnJpZG9yRnVsbEJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjY29ycmlkb3JGdWxsQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9jb3JyaWRvckZ1bGxCYXRjaCB8IFtVU0VTIDUwIFVOSVRTIFBFUiBOQU1FIFBBSVJdIEluZmVyIHNldmVyYWwgY2xhc3NpZmljYXRpb25zIGZvciB1cCB0byAxMDAgY3Jvc3MgYm9yZGVyIGludGVyYWN0aW9uIGJldHdlZW4gbmFtZXMgKGV4LiByZW1pdCwgdHJhdmVsLCBpbnRsIGNvbSkKKlBlcnNvbmFsQXBpKiB8IFsqKmNvdW50cnkqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNjb3VudHJ5KSB8ICoqR0VUKiogL2FwaTIvanNvbi9jb3VudHJ5L3twZXJzb25hbE5hbWVGdWxsfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2YgcmVzaWRlbmNlIG9mIGEgcGVyc29uYWwgZnVsbCBuYW1lLCBvciBvbmUgc3VybmFtZS4gQXNzdW1lcyBuYW1lcyBhcyB0aGV5IGFyZSBpbiB0aGUgY291bnRyeSBvZiByZXNpZGVuY2UgT1IgdGhlIGNvdW50cnkgb2Ygb3JpZ2luLgoqUGVyc29uYWxBcGkqIHwgWyoqY291bnRyeUJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjY291bnRyeUJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vY291bnRyeUJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBvZiByZXNpZGVuY2Ugb2YgdXAgdG8gMTAwIHBlcnNvbmFsIGZ1bGwgbmFtZXMsIG9yIHN1cm5hbWVzLiBBc3N1bWVzIG5hbWVzIGFzIHRoZXkgYXJlIGluIHRoZSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBPUiB0aGUgY291bnRyeSBvZiBvcmlnaW4uCipQZXJzb25hbEFwaSogfCBbKipjb3VudHJ5Rm5MbioqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2NvdW50cnlGbkxuKSB8ICoqR0VUKiogL2FwaTIvanNvbi9jb3VudHJ5Rm5Mbi97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBvZiByZXNpZGVuY2Ugb2YgYSBwZXJzb25hbCBmaXJzdCAvIGxhc3QgbmFtZSwgb3Igb25lIHN1cm5hbWUuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2YgcmVzaWRlbmNlIE9SIHRoZSBjb3VudHJ5IG9mIG9yaWdpbi4KKlBlcnNvbmFsQXBpKiB8IFsqKmNvdW50cnlGbkxuQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNjb3VudHJ5Rm5MbkJhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vY291bnRyeUZuTG5CYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2YgcmVzaWRlbmNlIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBmaXJzdCAvIGxhc3QgbmFtZXMsIG9yIHN1cm5hbWVzLiBBc3N1bWVzIG5hbWVzIGFzIHRoZXkgYXJlIGluIHRoZSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBPUiB0aGUgY291bnRyeSBvZiBvcmlnaW4uCipQZXJzb25hbEFwaSogfCBbKipkaWFzcG9yYSoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2RpYXNwb3JhKSB8ICoqR0VUKiogL2FwaTIvanNvbi9kaWFzcG9yYS97Y291bnRyeUlzbzJ9L3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAyMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBldGhuaWNpdHkvZGlhc3BvcmEgb2YgYSBwZXJzb25hbCBuYW1lLCBnaXZlbiBhIGNvdW50cnkgb2YgcmVzaWRlbmNlIElTTzIgY29kZSAoZXguIFVTLCBDQSwgQVUsIE5aIGV0Yy4pCipQZXJzb25hbEFwaSogfCBbKipkaWFzcG9yYUJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZGlhc3BvcmFCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2RpYXNwb3JhQmF0Y2ggfCBbVVNFUyAyMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBldGhuaWNpdHkvZGlhc3BvcmEgb2YgdXAgdG8gMTAwIHBlcnNvbmFsIG5hbWVzLCBnaXZlbiBhIGNvdW50cnkgb2YgcmVzaWRlbmNlIElTTzIgY29kZSAoZXguIFVTLCBDQSwgQVUsIE5aIGV0Yy4pCipQZXJzb25hbEFwaSogfCBbKipkaWFzcG9yYUZ1bGwqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNkaWFzcG9yYUZ1bGwpIHwgKipHRVQqKiAvYXBpMi9qc29uL2RpYXNwb3JhRnVsbC97Y291bnRyeUlzbzJ9L3twZXJzb25hbE5hbWVGdWxsfSB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSBvZiBhIHBlcnNvbmFsIG5hbWUsIGdpdmVuIGEgY291bnRyeSBvZiByZXNpZGVuY2UgSVNPMiBjb2RlIChleC4gVVMsIENBLCBBVSwgTlogZXRjLikKKlBlcnNvbmFsQXBpKiB8IFsqKmRpYXNwb3JhRnVsbEJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZGlhc3BvcmFGdWxsQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9kaWFzcG9yYUZ1bGxCYXRjaCB8IFtVU0VTIDIwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIGdpdmVuIGEgY291bnRyeSBvZiByZXNpZGVuY2UgSVNPMiBjb2RlIChleC4gVVMsIENBLCBBVSwgTlogZXRjLikKKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcioqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcikgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVyL3tmaXJzdE5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBqdXN0IGEgZml2ZW4gbmFtZSwgYXNzdW1pbmcgZGVmYXVsdCAmIzM5O1VTJiMzOTsgbG9jYWwgY29udGV4dC4gUGxlYXNlIHVzZSBwcmVmZXJhYmx5IGZ1bGwgbmFtZXMgYW5kIGxvY2FsIGdlb2dyYXBoaWMgY29udGV4dCBmb3IgYmV0dGVyIGFjY3VyYWN5LgoqUGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyMSoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcjEpIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlci97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBuYW1lLgoqUGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNnZW5kZXJCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgY3VsdHVyYWwgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlckZ1bGwqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNnZW5kZXJGdWxsKSB8ICoqR0VUKiogL2FwaTIvanNvbi9nZW5kZXJGdWxsL3tmdWxsTmFtZX0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIGZ1bGwgbmFtZSwgZXguIEpvaG4gSC4gU21pdGgKKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlckZ1bGxCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlckZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGxCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxsIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgY3VsdHVyYWwgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlckZ1bGxHZW8qKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNnZW5kZXJGdWxsR2VvKSB8ICoqR0VUKiogL2FwaTIvanNvbi9nZW5kZXJGdWxsR2VvL3tmdWxsTmFtZX0ve2NvdW50cnlJc28yfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgZnVsbCBuYW1lLCBnaXZlbiBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBjb2RlKS4KKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlckZ1bGxHZW9CYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlckZ1bGxHZW9CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGxHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBmdWxsIG5hbWVzLCB3aXRoIGEgZ2l2ZW4gY3VsdHVyYWwgY29udGV4dCAoY291bnRyeSBJU08yIGNvZGUpLgoqUGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyR2VvKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyR2VvKSB8ICoqR0VUKiogL2FwaTIvanNvbi9nZW5kZXJHZW8ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97Y291bnRyeUlzbzJ9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBuYW1lLCBnaXZlbiBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBjb2RlKS4KKlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlckdlb0JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyR2VvQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9nZW5kZXJHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBuYW1lcywgZWFjaCBnaXZlbiBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBjb2RlKS4KKlBlcnNvbmFsQXBpKiB8IFsqKm9yaWdpbioqXShkb2NzL1BlcnNvbmFsQXBpLm1kI29yaWdpbikgfCAqKkdFVCoqIC9hcGkyL2pzb24vb3JpZ2luL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IG9mIG9yaWdpbiBvZiBhIHBlcnNvbmFsIG5hbWUuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2Ygb3JpZ2luLiBGb3IgVVMsIENBLCBBVSwgTlogYW5kIG90aGVyIG1lbHRpbmctcG90cyA6IHVzZSAmIzM5O2RpYXNwb3JhJiMzOTsgaW5zdGVhZC4KKlBlcnNvbmFsQXBpKiB8IFsqKm9yaWdpbkJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjb3JpZ2luQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9vcmlnaW5CYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2Ygb3JpZ2luIG9mIHVwIHRvIDEwMCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipQZXJzb25hbEFwaSogfCBbKipvcmlnaW5GdWxsKipdKGRvY3MvUGVyc29uYWxBcGkubWQjb3JpZ2luRnVsbCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vb3JpZ2luRnVsbC97cGVyc29uYWxOYW1lRnVsbH0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IG9mIG9yaWdpbiBvZiBhIHBlcnNvbmFsIG5hbWUuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2Ygb3JpZ2luLiBGb3IgVVMsIENBLCBBVSwgTlogYW5kIG90aGVyIG1lbHRpbmctcG90cyA6IHVzZSAmIzM5O2RpYXNwb3JhJiMzOTsgaW5zdGVhZC4KKlBlcnNvbmFsQXBpKiB8IFsqKm9yaWdpbkZ1bGxCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI29yaWdpbkZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL29yaWdpbkZ1bGxCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2Ygb3JpZ2luIG9mIHVwIHRvIDEwMCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipQZXJzb25hbEFwaSogfCBbKipwYXJzZU5hbWUqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNwYXJzZU5hbWUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3BhcnNlTmFtZS97bmFtZUZ1bGx9IHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIEpvaG4gU21pdGggb3IgU01JVEgsIEpvaG4gb3IgU01JVEg7IEpvaG4uIAoqUGVyc29uYWxBcGkqIHwgWyoqcGFyc2VOYW1lQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNwYXJzZU5hbWVCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3BhcnNlTmFtZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIEpvaG4gU21pdGggb3IgU01JVEgsIEpvaG4gb3IgU01JVEg7IEpvaG4uCipQZXJzb25hbEFwaSogfCBbKipwYXJzZU5hbWVHZW8qKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNwYXJzZU5hbWVHZW8pIHwgKipHRVQqKiAvYXBpMi9qc29uL3BhcnNlTmFtZS97bmFtZUZ1bGx9L3tjb3VudHJ5SXNvMn0gfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gRm9yIGJldHRlciBhY2N1cmFjeSwgcHJvdmlkZSBhIGdlb2dyYXBoaWMgY29udGV4dC4KKlBlcnNvbmFsQXBpKiB8IFsqKnBhcnNlTmFtZUdlb0JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjcGFyc2VOYW1lR2VvQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9wYXJzZU5hbWVHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiBKb2huIFNtaXRoIG9yIFNNSVRILCBKb2huIG9yIFNNSVRIOyBKb2huLiBHaXZpbmcgYSBsb2NhbCBjb250ZXh0IGltcHJvdmVzIHByZWNpc2lvbi4gCipQZXJzb25hbEFwaSogfCBbKipyZWxpZ2lvbjIqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNyZWxpZ2lvbjIpIHwgKipHRVQqKiAvYXBpMi9qc29uL3JlbGlnaW9uL3tjb3VudHJ5SXNvMn0ve3N1YkRpdmlzaW9uSXNvMzE2NjJ9L3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSByZWxpZ2lvbiBvZiBhIHBlcnNvbmFsIGZpcnN0L2xhc3QgbmFtZS4gTkI6IG9ubHkgZm9yIElORElBIChhcyBvZiBjdXJyZW50IHZlcnNpb24pLgoqUGVyc29uYWxBcGkqIHwgWyoqcmVsaWdpb25CYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3JlbGlnaW9uQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9yZWxpZ2lvbkJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgcmVsaWdpb24gb2YgdXAgdG8gMTAwIHBlcnNvbmFsIGZpcnN0L2xhc3QgbmFtZXMuIE5COiBvbmx5IGZvciBJbmRpYSBhcyBvZiBjdXJyZW50bHkuCipQZXJzb25hbEFwaSogfCBbKipyZWxpZ2lvbkZ1bGwqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNyZWxpZ2lvbkZ1bGwpIHwgKipHRVQqKiAvYXBpMi9qc29uL3JlbGlnaW9uRnVsbC97Y291bnRyeUlzbzJ9L3tzdWJEaXZpc2lvbklzbzMxNjYyfS97cGVyc29uYWxOYW1lRnVsbH0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSByZWxpZ2lvbiBvZiBhIHBlcnNvbmFsIGZ1bGwgbmFtZS4gTkI6IG9ubHkgZm9yIElORElBIChhcyBvZiBjdXJyZW50IHZlcnNpb24pLgoqUGVyc29uYWxBcGkqIHwgWyoqcmVsaWdpb25GdWxsQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNyZWxpZ2lvbkZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3JlbGlnaW9uRnVsbEJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgcmVsaWdpb24gb2YgdXAgdG8gMTAwIHBlcnNvbmFsIGZ1bGwgbmFtZXMuIE5COiBvbmx5IGZvciBJbmRpYSBhcyBvZiBjdXJyZW50bHkuCipQZXJzb25hbEFwaSogfCBbKipzdWJjbGFzc2lmaWNhdGlvbioqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uKSB8ICoqR0VUKiogL2FwaTIvanNvbi9zdWJjbGFzc2lmaWNhdGlvbi97Y291bnRyeUlzbzJ9L3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBvcmlnaW4gb2YgYSBuYW1lIGF0IGEgY291bnRyeSBzdWJjbGFzc2lmaWNhdGlvbiBsZXZlbCAoc3RhdGUgb3IgcmVnZWlvbikuIEluaXRpYWxseSwgdGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgSW5kaWEgKElTTzIgY29kZSAmIzM5O0lOJiMzOTspLgoqUGVyc29uYWxBcGkqIHwgWyoqc3ViY2xhc3NpZmljYXRpb25CYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3N1YmNsYXNzaWZpY2F0aW9uQmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9zdWJjbGFzc2lmaWNhdGlvbkJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgb3JpZ2luIG9mIGEgbGlzdCBvZiB1cCB0byAxMDAgbmFtZXMgYXQgYSBjb3VudHJ5IHN1YmNsYXNzaWZpY2F0aW9uIGxldmVsIChzdGF0ZSBvciByZWdlaW9uKS4gSW5pdGlhbGx5LCB0aGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBJbmRpYSAoSVNPMiBjb2RlICYjMzk7SU4mIzM5OykuCipQZXJzb25hbEFwaSogfCBbKipzdWJjbGFzc2lmaWNhdGlvbkZ1bGwqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNzdWJjbGFzc2lmaWNhdGlvbkZ1bGwpIHwgKipHRVQqKiAvYXBpMi9qc29uL3N1YmNsYXNzaWZpY2F0aW9uRnVsbC97Y291bnRyeUlzbzJ9L3tmdWxsTmFtZX0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBvcmlnaW4gb2YgYSBuYW1lIGF0IGEgY291bnRyeSBzdWJjbGFzc2lmaWNhdGlvbiBsZXZlbCAoc3RhdGUgb3IgcmVnZWlvbikuIEluaXRpYWxseSwgdGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgSW5kaWEgKElTTzIgY29kZSAmIzM5O0lOJiMzOTspLgoqUGVyc29uYWxBcGkqIHwgWyoqc3ViY2xhc3NpZmljYXRpb25GdWxsQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNzdWJjbGFzc2lmaWNhdGlvbkZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3N1YmNsYXNzaWZpY2F0aW9uRnVsbEJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgb3JpZ2luIG9mIGEgbGlzdCBvZiB1cCB0byAxMDAgbmFtZXMgYXQgYSBjb3VudHJ5IHN1YmNsYXNzaWZpY2F0aW9uIGxldmVsIChzdGF0ZSBvciByZWdlaW9uKS4gSW5pdGlhbGx5LCB0aGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBJbmRpYSAoSVNPMiBjb2RlICYjMzk7SU4mIzM5OykuCipQZXJzb25hbEFwaSogfCBbKip1c1JhY2VFdGhuaWNpdHkqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCN1c1JhY2VFdGhuaWNpdHkpIHwgKipHRVQqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIGEgVVMgcmVzaWRlbnQmIzM5O3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXkgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuIE9wdGlvbmFsbHkgYWRkIGhlYWRlciBYLU9QVElPTi1VU1JBQ0VFVEhOSUNJVFktVEFYT05PTVk6IFVTUkFDRUVUSE5JQ0lUWS02Q0xBU1NFUyBmb3IgdHdvIGFkZGl0aW9uYWwgY2xhc3NlcywgQUlfQU4gKEFtZXJpY2FuIEluZGlhbiBvciBBbGFza2FuIE5hdGl2ZSkgYW5kIFBJIChQYWNpZmljIElzbGFuZGVyKS4KKlBlcnNvbmFsQXBpKiB8IFsqKnVzUmFjZUV0aG5pY2l0eUJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjdXNSYWNlRXRobmljaXR5QmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi91c1JhY2VFdGhuaWNpdHlCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB1cC10byAxMDAgVVMgcmVzaWRlbnQmIzM5O3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXkuIE91dHB1dCBpcyBXX05MICh3aGl0ZSwgbm9uIGxhdGlubyksIEhMIChoaXNwYW5vIGxhdGlubyksICBBIChhc2lhbiwgbm9uIGxhdGlubyksIEJfTkwgKGJsYWNrLCBub24gbGF0aW5vKS4gT3B0aW9uYWxseSBhZGQgaGVhZGVyIFgtT1BUSU9OLVVTUkFDRUVUSE5JQ0lUWS1UQVhPTk9NWTogVVNSQUNFRVRITklDSVRZLTZDTEFTU0VTIGZvciB0d28gYWRkaXRpb25hbCBjbGFzc2VzLCBBSV9BTiAoQW1lcmljYW4gSW5kaWFuIG9yIEFsYXNrYW4gTmF0aXZlKSBhbmQgUEkgKFBhY2lmaWMgSXNsYW5kZXIpLgoqUGVyc29uYWxBcGkqIHwgWyoqdXNSYWNlRXRobmljaXR5RnVsbCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3VzUmFjZUV0aG5pY2l0eUZ1bGwpIHwgKipHRVQqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eUZ1bGwve3BlcnNvbmFsTmFtZUZ1bGx9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIGEgVVMgcmVzaWRlbnQmIzM5O3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXkgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuIE9wdGlvbmFsbHkgYWRkIGhlYWRlciBYLU9QVElPTi1VU1JBQ0VFVEhOSUNJVFktVEFYT05PTVk6IFVTUkFDRUVUSE5JQ0lUWS02Q0xBU1NFUyBmb3IgdHdvIGFkZGl0aW9uYWwgY2xhc3NlcywgQUlfQU4gKEFtZXJpY2FuIEluZGlhbiBvciBBbGFza2FuIE5hdGl2ZSkgYW5kIFBJIChQYWNpZmljIElzbGFuZGVyKS4KKlBlcnNvbmFsQXBpKiB8IFsqKnVzUmFjZUV0aG5pY2l0eUZ1bGxCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3VzUmFjZUV0aG5pY2l0eUZ1bGxCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eUZ1bGxCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB1cC10byAxMDAgVVMgcmVzaWRlbnQmIzM5O3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXkuIE91dHB1dCBpcyBXX05MICh3aGl0ZSwgbm9uIGxhdGlubyksIEhMIChoaXNwYW5vIGxhdGlubyksICBBIChhc2lhbiwgbm9uIGxhdGlubyksIEJfTkwgKGJsYWNrLCBub24gbGF0aW5vKS4gT3B0aW9uYWxseSBhZGQgaGVhZGVyIFgtT1BUSU9OLVVTUkFDRUVUSE5JQ0lUWS1UQVhPTk9NWTogVVNSQUNFRVRITklDSVRZLTZDTEFTU0VTIGZvciB0d28gYWRkaXRpb25hbCBjbGFzc2VzLCBBSV9BTiAoQW1lcmljYW4gSW5kaWFuIG9yIEFsYXNrYW4gTmF0aXZlKSBhbmQgUEkgKFBhY2lmaWMgSXNsYW5kZXIpLgoqUGVyc29uYWxBcGkqIHwgWyoqdXNSYWNlRXRobmljaXR5WklQNSoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3VzUmFjZUV0aG5pY2l0eVpJUDUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eVpJUDUve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97emlwNUNvZGV9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIGEgVVMgcmVzaWRlbnQmIzM5O3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXksIHVzaW5nIChvcHRpb25hbCkgWklQNSBjb2RlIGluZm8uIE91dHB1dCBpcyBXX05MICh3aGl0ZSwgbm9uIGxhdGlubyksIEhMIChoaXNwYW5vIGxhdGlubyksICBBIChhc2lhbiwgbm9uIGxhdGlubyksIEJfTkwgKGJsYWNrLCBub24gbGF0aW5vKS4gT3B0aW9uYWxseSBhZGQgaGVhZGVyIFgtT1BUSU9OLVVTUkFDRUVUSE5JQ0lUWS1UQVhPTk9NWTogVVNSQUNFRVRITklDSVRZLTZDTEFTU0VTIGZvciB0d28gYWRkaXRpb25hbCBjbGFzc2VzLCBBSV9BTiAoQW1lcmljYW4gSW5kaWFuIG9yIEFsYXNrYW4gTmF0aXZlKSBhbmQgUEkgKFBhY2lmaWMgSXNsYW5kZXIpLgoqUGVyc29uYWxBcGkqIHwgWyoqdXNaaXBSYWNlRXRobmljaXR5QmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCN1c1ppcFJhY2VFdGhuaWNpdHlCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3VzWmlwUmFjZUV0aG5pY2l0eUJhdGNoIHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHVwLXRvIDEwMCBVUyByZXNpZGVudCYjMzk7cyBsaWtlbHkgcmFjZS9ldGhuaWNpdHkgYWNjb3JkaW5nIHRvIFVTIENlbnN1cyB0YXhvbm9teSwgd2l0aCAob3B0aW9uYWwpIFpJUCBjb2RlLiBPdXRwdXQgaXMgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuIE9wdGlvbmFsbHkgYWRkIGhlYWRlciBYLU9QVElPTi1VU1JBQ0VFVEhOSUNJVFktVEFYT05PTVk6IFVTUkFDRUVUSE5JQ0lUWS02Q0xBU1NFUyBmb3IgdHdvIGFkZGl0aW9uYWwgY2xhc3NlcywgQUlfQU4gKEFtZXJpY2FuIEluZGlhbiBvciBBbGFza2FuIE5hdGl2ZSkgYW5kIFBJIChQYWNpZmljIElzbGFuZGVyKS4KKlNvY2lhbEFwaSogfCBbKipwaG9uZUNvZGUqKl0oZG9jcy9Tb2NpYWxBcGkubWQjcGhvbmVDb2RlKSB8ICoqR0VUKiogL2FwaTIvanNvbi9waG9uZUNvZGUve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97cGhvbmVOdW1iZXJ9IHwgW1VTRVMgMTEgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBhbmQgcGhvbmUgcHJlZml4LCBnaXZlbiBhIHBlcnNvbmFsIG5hbWUgYW5kIGZvcm1hdHRlZCAvIHVuZm9ybWF0dGVkIHBob25lIG51bWJlci4KKlNvY2lhbEFwaSogfCBbKipwaG9uZUNvZGVCYXRjaCoqXShkb2NzL1NvY2lhbEFwaS5tZCNwaG9uZUNvZGVCYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3Bob25lQ29kZUJhdGNoIHwgW1VTRVMgMTEgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBhbmQgcGhvbmUgcHJlZml4LCBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBsb2NhbCBjb250ZXh0IGdpdmVuIGEgbmFtZSBhbmQgZm9ybWF0dGVkIC8gdW5mb3JtYXR0ZWQgcGhvbmUgbnVtYmVyLgoqU29jaWFsQXBpKiB8IFsqKnBob25lQ29kZUdlbyoqXShkb2NzL1NvY2lhbEFwaS5tZCNwaG9uZUNvZGVHZW8pIHwgKipHRVQqKiAvYXBpMi9qc29uL3Bob25lQ29kZUdlby97Zmlyc3ROYW1lfS97bGFzdE5hbWV9L3twaG9uZU51bWJlcn0ve2NvdW50cnlJc28yfSB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IHBob25lIHByZWZpeCwgZ2l2ZW4gYSBwZXJzb25hbCBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIsIHdpdGggYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgb2YgcmVzaWRlbmNlKS4KKlNvY2lhbEFwaSogfCBbKipwaG9uZUNvZGVHZW9CYXRjaCoqXShkb2NzL1NvY2lhbEFwaS5tZCNwaG9uZUNvZGVHZW9CYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3Bob25lQ29kZUdlb0JhdGNoIHwgW1VTRVMgMTEgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBhbmQgcGhvbmUgcHJlZml4LCBvZiB1cCB0byAxMDAgcGVyc29uYWwgbmFtZXMsIHdpdGggYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgb2YgcmVzaWRlbmNlKS4KKlNvY2lhbEFwaSogfCBbKipwaG9uZUNvZGVHZW9GZWVkYmFja0xvb3AqKl0oZG9jcy9Tb2NpYWxBcGkubWQjcGhvbmVDb2RlR2VvRmVlZGJhY2tMb29wKSB8ICoqR0VUKiogL2FwaTIvanNvbi9waG9uZUNvZGVHZW9GZWVkYmFja0xvb3Ave2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97cGhvbmVOdW1iZXJ9L3twaG9uZU51bWJlckUxNjR9L3tjb3VudHJ5SXNvMn0gfCBbQ1JFRElUUyAxIFVOSVRdIEZlZWRiYWNrIGxvb3AgdG8gYmV0dGVyIGluZmVyIHRoZSBsaWtlbHkgcGhvbmUgcHJlZml4LCBnaXZlbiBhIHBlcnNvbmFsIG5hbWUgYW5kIGZvcm1hdHRlZCAvIHVuZm9ybWF0dGVkIHBob25lIG51bWJlciwgd2l0aCBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBvZiByZXNpZGVuY2UpLgoKCiMjIERvY3VtZW50YXRpb24gZm9yIE1vZGVscwoKIC0gW0FQSUJpbGxpbmdQZXJpb2RVc2FnZU91dF0oZG9jcy9BUElCaWxsaW5nUGVyaW9kVXNhZ2VPdXQubWQpCiAtIFtBUElDbGFzc2lmaWVyT3V0XShkb2NzL0FQSUNsYXNzaWZpZXJPdXQubWQpCiAtIFtBUElDbGFzc2lmaWVyVGF4b25vbXlPdXRdKGRvY3MvQVBJQ2xhc3NpZmllclRheG9ub215T3V0Lm1kKQogLSBbQVBJQ2xhc3NpZmllcnNTdGF0dXNPdXRdKGRvY3MvQVBJQ2xhc3NpZmllcnNTdGF0dXNPdXQubWQpCiAtIFtBUElDb3VudGVyVjJPdXRdKGRvY3MvQVBJQ291bnRlclYyT3V0Lm1kKQogLSBbQVBJS2V5T3V0XShkb2NzL0FQSUtleU91dC5tZCkKIC0gW0FQSVBlcmlvZFVzYWdlT3V0XShkb2NzL0FQSVBlcmlvZFVzYWdlT3V0Lm1kKQogLSBbQVBJUGxhblN1YnNjcmlwdGlvbk91dF0oZG9jcy9BUElQbGFuU3Vic2NyaXB0aW9uT3V0Lm1kKQogLSBbQVBJU2VydmljZU91dF0oZG9jcy9BUElTZXJ2aWNlT3V0Lm1kKQogLSBbQVBJU2VydmljZXNPdXRdKGRvY3MvQVBJU2VydmljZXNPdXQubWQpCiAtIFtBUElVc2FnZUFnZ3JlZ2F0ZWRPdXRdKGRvY3MvQVBJVXNhZ2VBZ2dyZWdhdGVkT3V0Lm1kKQogLSBbQVBJVXNhZ2VIaXN0b3J5T3V0XShkb2NzL0FQSVVzYWdlSGlzdG9yeU91dC5tZCkKIC0gW0JhdGNoQ29tbXVuaXR5RW5nYWdlRnVsbE91dF0oZG9jcy9CYXRjaENvbW11bml0eUVuZ2FnZUZ1bGxPdXQubWQpCiAtIFtCYXRjaENvbW11bml0eUVuZ2FnZU91dF0oZG9jcy9CYXRjaENvbW11bml0eUVuZ2FnZU91dC5tZCkKIC0gW0JhdGNoQ29ycmlkb3JGdWxsSW5dKGRvY3MvQmF0Y2hDb3JyaWRvckZ1bGxJbi5tZCkKIC0gW0JhdGNoQ29ycmlkb3JGdWxsT3V0XShkb2NzL0JhdGNoQ29ycmlkb3JGdWxsT3V0Lm1kKQogLSBbQmF0Y2hDb3JyaWRvckluXShkb2NzL0JhdGNoQ29ycmlkb3JJbi5tZCkKIC0gW0JhdGNoQ29ycmlkb3JPdXRdKGRvY3MvQmF0Y2hDb3JyaWRvck91dC5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUNhc3RlT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUNhc3RlT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lQ2FzdGVncm91cE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVDYXN0ZWdyb3VwT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lRGlhc3BvcmFlZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVySW5dKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVySW4ubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUdlb0luXShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUdlb0luLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUdlb091dC5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvU3ViZGl2aXNpb25Jbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVHZW9TdWJkaXZpc2lvbkluLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvWmlwcGVkSW5dKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lR2VvWmlwcGVkSW4ubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVJbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVDb2RlZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZUNvZGVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJHZW9Jbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckluLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUmVsaWdpb25lZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVSZWxpZ2lvbmVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lU3ViZGl2aXNpb25Jbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVTdWJkaXZpc2lvbkluLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lVVNSYWNlRXRobmljaXR5T3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZVVTUmFjZUV0aG5pY2l0eU91dC5tZCkKIC0gW0JhdGNoTWF0Y2hQZXJzb25hbEZpcnN0TGFzdE5hbWVJbl0oZG9jcy9CYXRjaE1hdGNoUGVyc29uYWxGaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtCYXRjaE5hbWVHZW9Jbl0oZG9jcy9CYXRjaE5hbWVHZW9Jbi5tZCkKIC0gW0JhdGNoTmFtZUluXShkb2NzL0JhdGNoTmFtZUluLm1kKQogLSBbQmF0Y2hOYW1lTWF0Y2hDYW5kaWRhdGVzT3V0XShkb2NzL0JhdGNoTmFtZU1hdGNoQ2FuZGlkYXRlc091dC5tZCkKIC0gW0JhdGNoTmFtZU1hdGNoZWRPdXRdKGRvY3MvQmF0Y2hOYW1lTWF0Y2hlZE91dC5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lQ2FzdGVncm91cE91dF0oZG9jcy9CYXRjaFBlcnNvbmFsTmFtZUNhc3RlZ3JvdXBPdXQubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZURpYXNwb3JhZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVEaWFzcG9yYWVkT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVHZW5kZXJlZE91dF0oZG9jcy9CYXRjaFBlcnNvbmFsTmFtZUdlbmRlcmVkT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVHZW9Jbl0oZG9jcy9CYXRjaFBlcnNvbmFsTmFtZUdlb0luLm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVHZW9PdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW9PdXQubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZUdlb1N1YmNsYXNzaWZpY2F0aW9uT3V0XShkb2NzL0JhdGNoUGVyc29uYWxOYW1lR2VvU3ViY2xhc3NpZmljYXRpb25PdXQubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZUdlb1N1YmRpdmlzaW9uSW5dKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW9TdWJkaXZpc2lvbkluLm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVJbl0oZG9jcy9CYXRjaFBlcnNvbmFsTmFtZUluLm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVPcmlnaW5lZE91dF0oZG9jcy9CYXRjaFBlcnNvbmFsTmFtZU9yaWdpbmVkT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXQubWQpCiAtIFtCYXRjaFBlcnNvbmFsTmFtZVJlbGlnaW9uZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVSZWxpZ2lvbmVkT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVTdWJkaXZpc2lvbkluXShkb2NzL0JhdGNoUGVyc29uYWxOYW1lU3ViZGl2aXNpb25Jbi5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lVVNSYWNlRXRobmljaXR5T3V0XShkb2NzL0JhdGNoUGVyc29uYWxOYW1lVVNSYWNlRXRobmljaXR5T3V0Lm1kKQogLSBbQmF0Y2hQcm9wZXJOb3VuQ2F0ZWdvcml6ZWRPdXRdKGRvY3MvQmF0Y2hQcm9wZXJOb3VuQ2F0ZWdvcml6ZWRPdXQubWQpCiAtIFtDb21tdW5pdHlFbmdhZ2VPcHRpb25PdXRdKGRvY3MvQ29tbXVuaXR5RW5nYWdlT3B0aW9uT3V0Lm1kKQogLSBbQ29tbXVuaXR5RW5nYWdlT3V0XShkb2NzL0NvbW11bml0eUVuZ2FnZU91dC5tZCkKIC0gW0NvcnJpZG9yRnVsbE91dF0oZG9jcy9Db3JyaWRvckZ1bGxPdXQubWQpCiAtIFtDb3JyaWRvckluXShkb2NzL0NvcnJpZG9ySW4ubWQpCiAtIFtDb3JyaWRvck91dF0oZG9jcy9Db3JyaWRvck91dC5tZCkKIC0gW0ZlZWRiYWNrTG9vcE91dF0oZG9jcy9GZWVkYmFja0xvb3BPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lQ2FzdGVPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZUNhc3RlT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZUNhc3RlZ3JvdXBPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZUNhc3RlZ3JvdXBPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lRGlhc3BvcmFlZE91dF0oZG9jcy9GaXJzdExhc3ROYW1lRGlhc3BvcmFlZE91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVHZW5kZXJJbl0oZG9jcy9GaXJzdExhc3ROYW1lR2VuZGVySW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VuZGVyZWRPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZUdlbmRlcmVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZUdlb0luXShkb2NzL0ZpcnN0TGFzdE5hbWVHZW9Jbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVHZW9PdXRdKGRvY3MvRmlyc3RMYXN0TmFtZUdlb091dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVHZW9TdWJjbGFzc2lmaWNhdGlvbk91dF0oZG9jcy9GaXJzdExhc3ROYW1lR2VvU3ViY2xhc3NpZmljYXRpb25PdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VvU3ViZGl2aXNpb25Jbl0oZG9jcy9GaXJzdExhc3ROYW1lR2VvU3ViZGl2aXNpb25Jbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbl0oZG9jcy9GaXJzdExhc3ROYW1lR2VvWmlwcGVkSW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lSW5dKGRvY3MvRmlyc3RMYXN0TmFtZUluLm1kKQogLSBbRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVPcmlnaW5lZE91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZU91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVQaG9uZUNvZGVkT3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVQaG9uZUNvZGVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZVBob25lTnVtYmVyR2VvSW5dKGRvY3MvRmlyc3RMYXN0TmFtZVBob25lTnVtYmVyR2VvSW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbl0oZG9jcy9GaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVSZWxpZ2lvbmVkT3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVSZWxpZ2lvbmVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZVN1YmRpdmlzaW9uSW5dKGRvY3MvRmlyc3RMYXN0TmFtZVN1YmRpdmlzaW9uSW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lVVNSYWNlRXRobmljaXR5T3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVVU1JhY2VFdGhuaWNpdHlPdXQubWQpCiAtIFtNYXRjaFBlcnNvbmFsRmlyc3RMYXN0TmFtZUluXShkb2NzL01hdGNoUGVyc29uYWxGaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtOYW1lR2VvSW5dKGRvY3MvTmFtZUdlb0luLm1kKQogLSBbTmFtZUluXShkb2NzL05hbWVJbi5tZCkKIC0gW05hbWVNYXRjaENhbmRpZGF0ZU91dF0oZG9jcy9OYW1lTWF0Y2hDYW5kaWRhdGVPdXQubWQpCiAtIFtOYW1lTWF0Y2hDYW5kaWRhdGVzT3V0XShkb2NzL05hbWVNYXRjaENhbmRpZGF0ZXNPdXQubWQpCiAtIFtOYW1lTWF0Y2hlZE91dF0oZG9jcy9OYW1lTWF0Y2hlZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUNhc3RlZ3JvdXBPdXRdKGRvY3MvUGVyc29uYWxOYW1lQ2FzdGVncm91cE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZURpYXNwb3JhZWRPdXRdKGRvY3MvUGVyc29uYWxOYW1lRGlhc3BvcmFlZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUdlbmRlcmVkT3V0XShkb2NzL1BlcnNvbmFsTmFtZUdlbmRlcmVkT3V0Lm1kKQogLSBbUGVyc29uYWxOYW1lR2VvSW5dKGRvY3MvUGVyc29uYWxOYW1lR2VvSW4ubWQpCiAtIFtQZXJzb25hbE5hbWVHZW9PdXRdKGRvY3MvUGVyc29uYWxOYW1lR2VvT3V0Lm1kKQogLSBbUGVyc29uYWxOYW1lR2VvU3ViY2xhc3NpZmljYXRpb25PdXRdKGRvY3MvUGVyc29uYWxOYW1lR2VvU3ViY2xhc3NpZmljYXRpb25PdXQubWQpCiAtIFtQZXJzb25hbE5hbWVHZW9TdWJkaXZpc2lvbkluXShkb2NzL1BlcnNvbmFsTmFtZUdlb1N1YmRpdmlzaW9uSW4ubWQpCiAtIFtQZXJzb25hbE5hbWVJbl0oZG9jcy9QZXJzb25hbE5hbWVJbi5tZCkKIC0gW1BlcnNvbmFsTmFtZU9yaWdpbmVkT3V0XShkb2NzL1BlcnNvbmFsTmFtZU9yaWdpbmVkT3V0Lm1kKQogLSBbUGVyc29uYWxOYW1lUGFyc2VkT3V0XShkb2NzL1BlcnNvbmFsTmFtZVBhcnNlZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZVJlbGlnaW9uZWRPdXRdKGRvY3MvUGVyc29uYWxOYW1lUmVsaWdpb25lZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZVN1YmRpdmlzaW9uSW5dKGRvY3MvUGVyc29uYWxOYW1lU3ViZGl2aXNpb25Jbi5tZCkKIC0gW1BlcnNvbmFsTmFtZVVTUmFjZUV0aG5pY2l0eU91dF0oZG9jcy9QZXJzb25hbE5hbWVVU1JhY2VFdGhuaWNpdHlPdXQubWQpCiAtIFtQcm9wZXJOb3VuQ2F0ZWdvcml6ZWRPdXRdKGRvY3MvUHJvcGVyTm91bkNhdGVnb3JpemVkT3V0Lm1kKQogLSBbUmVnaW9uSVNPXShkb2NzL1JlZ2lvbklTTy5tZCkKIC0gW1JlZ2lvbk91dF0oZG9jcy9SZWdpb25PdXQubWQpCiAtIFtSZWxpZ2lvblN0YXRPdXRdKGRvY3MvUmVsaWdpb25TdGF0T3V0Lm1kKQogLSBbU29mdHdhcmVWZXJzaW9uT3V0XShkb2NzL1NvZnR3YXJlVmVyc2lvbk91dC5tZCkKCgojIyBEb2N1bWVudGF0aW9uIGZvciBBdXRob3JpemF0aW9uCgpBdXRoZW50aWNhdGlvbiBzY2hlbWVzIGRlZmluZWQgZm9yIHRoZSBBUEk6CiMjIyBhcGlfa2V5CgotICoqVHlwZSoqOiBBUEkga2V5Ci0gKipBUEkga2V5IHBhcmFtZXRlciBuYW1lKio6IFgtQVBJLUtFWQotICoqTG9jYXRpb24qKjogSFRUUCBoZWFkZXIKCgojIyBSZWNvbW1lbmRhdGlvbgoKSXQncyByZWNvbW1lbmRlZCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFwaUNsaWVudGAgcGVyIHRocmVhZCBpbiBhIG11bHRpdGhyZWFkZWQgZW52aXJvbm1lbnQgdG8gYXZvaWQgYW55IHBvdGVudGlhbCBpc3N1ZXMuCgojIyBBdXRob3IKCmNvbnRhY3RAbmFtc29yLmNvbQoK readmeEtag: '"7b2d272c7a87dd96811652eab9221dbc3e47c903"' readmeLastModified: Thu, 11 Apr 2024 09:05:05 GMT repositoryId: 165628241 description: >- NamSor API v2 Java SDK - classify personal names accurately by gender, country of origin, or ethnicity. created: '2019-01-14T08:57:20Z' updated: '2024-05-14T14:50:24Z' language: Java archived: false stars: 4 watchers: 3 forks: 0 owner: namsor logo: https://avatars.githubusercontent.com/u/6951565?v=4 license: AGPL-3.0 repoEtag: '"75523799cc437d1507c020568201d33c08b3ae70da5687b00552e2f45cb8777e"' repoLastModified: Tue, 14 May 2024 14:50:24 GMT foundInMaster: true category: Description Validators id: 13d0d90ebabd4eb9f1a420d9c3406807 - source: openapi3 tags repository: https://github.com/ioggstream/openapi-resolver v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFJlc29sdmVyCgpbIVtDaXJjbGVDSV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvaW9nZ3N0cmVhbS9vcGVuYXBpLXJlc29sdmVyLnN2Zz9zdHlsZT1zdmcpXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9pb2dnc3RyZWFtL29wZW5hcGktcmVzb2x2ZXIpClshW0NvZGVDb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9pb2dnc3RyZWFtL29wZW5hcGktcmVzb2x2ZXIvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvaW9nZ3N0cmVhbS9vcGVuYXBpLXJlc29sdmVyKQoKVGhpcyBtb2R1bGUgcmVjdXJzaXZlbHkgcGFyc2VzIG9wZW5hcGkgc3BlY3MgcmVzb2x2aW5nIHJlZmVyZW5jZXMuCgojIyBUZXN0CgpUZXN0cyBydW4gbG9jYWxseSB2aWEgCgogICAgICAgIHRveAoKT3IgdmlhIFtjaXJjbGVjaS1sb2NhbF0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZG9jcy8yLjAvbG9jYWwtY2xpLykKCiAgICAgICAgY2lyY2xlY2kgYnVpbGQgCgoKIyMgVXNhZ2UKClRoZSBtb2R1bGUgaGFzIGFuIGVtYmVkZGVkIHNjcmlwdCB0aGF0IGNhbiBiZSBydW4gdmlhCgogICAgICAgICQgcHl0aG9uIC1tIG9wZW5hcGlfcmVzb2x2ZXIgLS1oZWxwCgogICAgICAgIHVzYWdlOiBfX21haW5fXy5weSBbLWhdIHNyY19maWxlIFtkc3RfZmlsZV0KCiAgICAgICAgUmVjdXJzaXZlbHkgcmVzb2x2ZXMgYW5kIGJ1bmRsZXMgT3BlbkFQSSB2MyBmaWxlcy4KCiAgICAgICAgcG9zaXRpb25hbCBhcmd1bWVudHM6CiAgICAgICAgICBzcmNfZmlsZSAgICBBbiBPcGVuQVBJIHYzIHlhbWwgZmlsZS4KICAgICAgICAgIGRzdF9maWxlICAgIERlc3RpbmF0aW9uIGZpbGUsIGRlZmF1bHQgaXMgc3Rkb3V0LgoKICAgICAgICBvcHRpb25hbCBhcmd1bWVudHM6CiAgICAgICAgICAtaCwgLS1oZWxwICBzaG93IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBleGl0CgpUbyBjcmVhdGUgYW4gb3BlbmFwaSBidW5kbGUgZnJvbSBhIHNwZWMgZmlsZSBqdXN0IHJ1bgoKICAgICAgICAkIHB5dGhvbiAtbSBvcGVuYXBpX3Jlc29sdmVyIHNhbXBsZS55YW1sCgpZb3UgY2FuIHVzZSB0aGlzIG1vZHVsZSB0byBub3JtYWxpemUgdHdvIHNwZWNzIGJlZm9yZSBkaWZmaW5nLCBlZzoKCiAgICAgICAgJCBweXRob24gLW0gb3BlbmFwaV9yZXNvbHZlciBvbmUueWFtbCBub3JtYWwtb25lLnlhbWwKICAgICAgICAkIHB5dGhvbiAtbSBvcGVuYXBpX3Jlc29sdmVyIHR3by55YW1sIG5vcm1hbC10d28ueWFtbAogICAgICAgICQgZGlmZiBub3JtYWwtb25lLnlhbWwgbm9ybWFsLXR3by55YW1sCgojIyBVc2Ugd2l0aCBkb2NrZXIKCkJ1aWxkIHRoZSBpbWFnZSB3aXRoOgoKYGBgCiQgZG9ja2VyIGJ1aWxkIC0tdGFnIG9wZW5hcGktcmVzb2x2ZXIgLiAKYGBgCgp0aGVuIHJ1biBkb2NrZXIgbWFwcGluZyB0aGUgb3BlbmFwaS55YW1sIGRpcmVjdG9yeQp0byB0aGUgYC9jb2RlYCB2b2x1bWUuCgpgYGAKZG9ja2VyIHJ1biAtaXQgLS1ybSAtdiAkKGRpcm5hbWUgcGF0aC10by1vcGVuYXBpLnlhbWwpOi9jb2RlIFwKICAgIG9wZW5hcGktcmVzb2x2ZXIgL2NvZGUvb3BlbmFwaS55YW1sIC9jb2RlL2J1bmRsZS55YW1sCmBgYAo= readmeEtag: '"15ddc680312dda7420a034eae0633cac8314fe4a"' readmeLastModified: Wed, 09 Oct 2019 14:05:38 GMT repositoryId: 145992506 description: A python 3 module for resolving $refs in OpenAPI specs and create bundles. created: '2018-08-24T13:05:35Z' updated: '2023-06-12T14:04:52Z' language: Python archived: false stars: 4 watchers: 3 forks: 6 owner: ioggstream logo: https://avatars.githubusercontent.com/u/1140844?v=4 license: MIT repoEtag: '"bbbe2bce0ca4148eaefe5cb22cc9b821f95dd183c3002d28ec2db0a220e5c746"' repoLastModified: Mon, 12 Jun 2023 14:04:52 GMT foundInMaster: true category: - Description Validators - Parsers id: 40ab6688a0f4a02b4e8ac406853b4013 - source: openapi3 tags repository: https://github.com/kulgan/flaskdoc v3: true repositoryMetadata: base64Readme: >- Zmxhc2tkb2MKPT09PT09PT0KCnxQeVBpIHZlcnNpb258IHxQeXRob24gdmVyc2lvbnwgfGNpfCB8ZG9jc3wgfGxpY2Vuc2V8IHxjb3ZlcmFnZXwgfGNvZGUgcXVhbGl0eXwKCkZsYXNrRG9jIGFsbG93cyBkZXZlbG9wZXJzIHRvIHByb2dyYW1tYXRpY2FsbHkgY29tcG9zZSBvcGVuYXBpIHNwZWNpZmljYXRpb25zIGZvciBmbGFzayBlbmRwb2ludHMgYXMgYSBwYXJ0IG9mIGNvZGUKd2l0aG91dCBuZWVkaW5nIHRvIHdyaXRlIGEgc2VwYXJhdGUgeWFtbCBmaWxlLCBhbmQgaXQgY29tZXMgd2l0aCBTd2FnZ2VyVUkgZW1iZWRkZWQuIEl0cyBtYWluIGZvY3VzIGlzIG9uIGRvY3VtZW50YXRpb24Kd2hpY2ggZnJlZXMgZGV2ZWxvcGVycyB0byBmb2N1cyBvbiBnZXR0aW5nIHRoZWlyIHNlcnZpY2VzIGNvZGVkLgoKV2h5IGZsYXNrZG9jCi0tLS0tLS0tLS0tLQoKKiBGb2N1cyBvbmx5IG9uIGRvY3VtZW50YXRpb24gYW5kIG5vdCBpbnRyb2R1Y2Ugc29tZSBmYW5jeSBuZXcgd2F5IG9mIHVzaW5nIGZsYXNrLgoqIEVhc2lseSBhZGQgdG8gZXhpc3RpbmcgY29kZSB3aXRob3V0IG5lZWRpbmcgdG8gcmVmYWN0b3Igb2YgY2hhbmdlIHRoZSB3YXkgdGhlIGNvZGUgaGFzIGJlZW4gd3JpdHRlbgoqIExpdHRsZSBvciBubyBsZWFybmluZyBjdXJ2ZSwgYXMgbG9uZyBhcyBhIGRldmVsb3BlciBpcyBjb21mb3JhdGJsZSB1c2luZyBmbGFzayBkZXZlbG9wZXJzLCB0aGV5IGNhbiB1c2UgZmxhc2tkb2MuCiAgdG8gbGVhcm4gcXVpY2tseSBhbmQgbm90IGRpc3RyYWN0IFNvIGRldmVsb3BlcnMgZm9jdXMgb24gd3JpdGluZyBjb2RlCiogU3dhZ2dlclVJIGludGVncmF0aW9uIGZvciBxdWlja2x5IHRlc3RpbmcgYW5kIGl0ZXJhdGluZyB0aHJvdWdoIHZlcnNpb25zCiogQXV0b21hdGljIGRhdGEgbW9kZWwgdG8gSlNPTiBTY2hlbWEgdHJhbnNmb3JtYXRpb24gdGhhdCBhbGxvd3MgZm9yIGZpbmVyIGdyYWluIGNvbmZpZ3VyYXRpb24KCgpHZXR0aW5nIFN0YXJ0ZWQKLS0tLS0tLS0tLS0tLS0tClZpc2l0IGBkb2N1bWVudGF0aW9uIDxodHRwczovL2ZsYXNrZG9jLnJlYWR0aGVkb2NzLmlvPmBfIHBhZ2UgZm9yIG1vcmUgZGV0YWlscy4KCkluc3RhbGwKIiIiIiIiIgpmcm9tIHB5cGkKCi4uIGNvZGUtYmxvY2s6OgoKICAgICQgcGlwIGluc3RhbGwgZmxhc2tkb2MKCmZyb20gZ2l0aHViCgouLiBjb2RlLWJsb2NrOjoKCiAgICAkIHBpcCBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWxnYW4vZmxhc2tkb2MvdGFyYmFsbC9tYXN0ZXIKClRvIHJ1biBleGFtcGxlcyB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgdGhlIGRldiBleHRlbnNpb24KCi4uIGNvZGUtYmxvY2s6OgoKICAgICQgcGlwIGluc3RhbGwgZmxhc2tkb2NbZGV2XQoKUmVnaXN0ZXIgT3BlbkFQSQoiIiIiIiIiIiIiIiIiIiIiCkFkZCB0b3AgbGV2ZWwgb3BlbmFwaSBvYmplY3RzIGxpa2UgYEluZm8gPGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNpbmZvLW9iamVjdD5gXywKYENvbnRhY3QgPGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNjb250YWN0LW9iamVjdD5gXywgYExpY2Vuc2UgPGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNsaWNlbnNlLW9iamVjdD5gXyBldGMKCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBpbXBvcnQgZmxhc2sKICAgIGZyb20gZmxhc2tkb2MgaW1wb3J0IHJlZ2lzdGVyX29wZW5hcGksIHN3YWdnZXIKCiAgICBhcHAgPSBmbGFzay5GbGFzaygpCiAgICAjIGluaXRpYWxpemUgYXBwLCBhZGQgYWxsIHRoZSBibHVlcHJpbnRzIHlvdSBjYXJlIGFib3V0CgogICAgIyBDcmVhdGUgdG9wIGxldmVsIE9wZW5BUEkgb2JqZWN0cwogICAgIyB0aGUgaW5mbyBvYmplY3QKICAgIGluZm8gPSBzd2FnZ2VyLkluZm8oCiAgICAgICAgdGl0bGU9IlRlc3QiLAogICAgICAgIHZlcnNpb249IjEuMi4yIiwKICAgICAgICBjb250YWN0PXN3YWdnZXIuQ29udGFjdCgKICAgICAgICAgICAgbmFtZT0iUm93bGFuZCIsIGVtYWlsPSJyLm9nd2FyYUBnbWFpbC5jb20iLCB1cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9rdWxnYW4iCiAgICAgICAgKSwKICAgICAgICBsaWNlbnNlPXN3YWdnZXIuTGljZW5zZShuYW1lPSJBcGFjaGUgMi4wIiwgdXJsPSJodHRwczovL3d3dy5leGFtcGxlLmNvbS9saWNlbnNlIiksCiAgICApCgogICAgIyBzZXJ2ZXJzIG5hbWVzIGFuZCB2YXJpYWJsZXMgaWYgbmVjZXNzYXJ5CiAgICBzZXJ2ZXJzID0gW3N3YWdnZXIuU2VydmVyKHVybD0iaHR0cDovL2xvY2FsaG9zdDoxNTE3MiIpXQoKICAgICMgdG9wIGxldmVsIHRhZ3MKICAgIHRhZ3MgPSBbCiAgICAgICAgc3dhZ2dlci5UYWcobmFtZT0iYWRtaW4iLCBkZXNjcmlwdGlvbj0iU2VjdXJlZCBBZG1pbi1Pbmx5IGNhbGxzIiksCiAgICAgICAgc3dhZ2dlci5UYWcobmFtZT0iZGV2ZWxvcGVycyIsIGRlc2NyaXB0aW9uPSJPcGVyYXRpb25zIGF2YWlsYWJsZSB0byByZWd1bGFyIGRldmVsb3BlcnMiKSwKICAgIF0KCiAgICBzZWN1cml0eV9zY2hlbWVzID0gewogICAgICAgICJhcGlfa2V5Ijogc3dhZ2dlci5BcGlLZXlTZWN1cml0eVNjaGVtZShuYW1lPSJhcGlfa2V5IiksCiAgICB9CgogICAgIyByZWdpc3RlciBzcGVjCiAgICByZWdpc3Rlcl9vcGVuYXBpKGFwcCwgaW5mbz1pbmZvLCBzZXJ2ZXJzPXNlcnZlcnMsIHRhZ3M9dGFncywgc2VjdXJpdHk9c2VjdXJpdHlfc2NoZW1lcykKClRoaXMgYWRkcyB0aGUgZm9sbG93aW5nIGVuZHBvaW50cyB0byB5b3VyIGxpc3QKCiogL2RvY3MKKiAvZG9jcy9vcGVuYXBpLnlhbWwKKiAvZG9jcy9vcGVuYXBpLmpzb24KClN0YXJ0IERvY3VtZW50aW5nCiIiIiIiIiIiIiIiIiIiIiIiCk5vdyBzdGFydCBkb2N1bWVudGluZyB5b3UgZmxhc2sgcm91dGVzCgpBIHNpbXBsZSBwb3N0IGV4YW1wbGUKCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBibHAgPSBmbGFzay5CbHVlcHJpbnQoIkR1bW15IiwgX19uYW1lX18sIHVybF9wcmVmaXg9Ii92MSIpCiAgICBAc3dhZ2dlci5QT1NUKAogICAgICAgIHRhZ3M9WyJhZG1pbmlzdHJhdG9yIl0sCiAgICAgICAgZGVzY3JpcHRpb249IlBvc3RzIGFuIEVjaG8iLAogICAgICAgIHJlc3BvbnNlcz17IjIwMSI6IHN3YWdnZXIuUmVzcG9uc2VPYmplY3QoZGVzY3JpcHRpb249Ik9LIil9LAogICAgKQogICAgQGJscC5yb3V0ZSgiL2VjaG8iLCBtZXRob2RzPVsiUE9TVCJdKQogICAgZGVmIHBvc3QoKToKICAgICAgICByZXEgPSBmbGFzay5yZXF1ZXN0LmdldF9qc29uKGZvcmNlPVRydWUpCiAgICAgICAgcmV0dXJuIGZsYXNrLmpzb25pZnkocmVxKSwgMjAwCgpBIEdFVCBleGFtcGxlIHdpdGggcGF0aCBwYXJhbWV0ZXIKCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBibHAgPSBmbGFzay5CbHVlcHJpbnQoIkR1bW15IiwgX19uYW1lX18sIHVybF9wcmVmaXg9Ii92MSIpCgogICAgQHN3YWdnZXIuR0VUKAogICAgICAgIHRhZ3M9WyJnZXRFY2hvIl0sCiAgICAgICAgb3BlcmF0aW9uX2lkPSJnZXRFY2hvIiwKICAgICAgICBwYXJhbWV0ZXJzPVtzd2FnZ2VyLlBhdGhQYXJhbWV0ZXIobmFtZT0ic2FtcGxlIiwgc2NoZW1hPXN0cildLAogICAgICAgIGRlc2NyaXB0aW9uPSJSZXRyaWV2ZSBlY2hvcyB3aXQgR2V0IiwKICAgICAgICByZXNwb25zZXM9ewogICAgICAgICAgICAiMjAwIjogc3dhZ2dlci5SZXNwb25zZU9iamVjdCgKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdWNjZXNzIiwgY29udGVudD1qby5QbGFpblRleHQoc2NoZW1hPWpvLkVtYWlsKCkpLAogICAgICAgICAgICApCiAgICAgICAgfSwKICAgICkKICAgIEBibHAucm91dGUoIi9lY2hvLzxzdHJpbmc6c2FtcGxlPiIsIG1ldGhvZHM9WyJHRVQiXSkKICAgIGRlZiBlY2hvKHNhbXBsZTogc3RyKToKICAgICAgICAiIiIKICAgICAgICBTYW1wbGUgR0VUIHJlcXVlc3QKICAgICAgICBSZXR1cm5zOiBFY2hvcyBiYWNrIHdoYXRldmVyIHdhcyBzZW50CgogICAgICAgICIiIgogICAgICAgIHJldHVybiBzYW1wbGUKClJ1biB5b3VyIGFwcCBhbmQgdmlzaXQgYC9kb2NzYCB0byBzZWUgdGhlIGdlbmVyYXRlZCBvcGVuYXBpIHNwZWNzCgpSdW5uaW5nIEV4YW1wbGVzCj09PT09PT09PT09PT09PT0KClR3byBleGFtcGxlIHByb2plY3RzIGFyZSBjdXJyZW50bHkgcHJvdmlkZWQKCiogYGludmVudG9yeSA8c3JjL2ZsYXNrZG9jL2V4YW1wbGVzL2ludmVudG9yeS5weT5gXwoqIGBwZXRzdG9yZSA8c3JjL2ZsYXNrZG9jL2V4YW1wbGVzL3BldHN0b3JlLnB5PmBfIHNvdXJjZSBgT3BlbkFQSSBQZXRzdG9yZSA8aHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvPmBfCiogYGxpbmstZXhhbXBsZSA8c3JjL2ZsYXNrZG9jL2V4YW1wbGVzL2xpbmtfZXhhbXBsZS92MC5weT5gXyAtIHNvdXJjZSBgT3BlbkFQSSBsaW5rIGV4YW1wbGUgPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL2V4YW1wbGVzL3YzLjAvbGluay1leGFtcGxlLmpzb24+YF8KKiBgYXBpLXdpdGgtZXhhbXBsZSA8c3JjL2ZsYXNrZG9jL2V4YW1wbGVzL2FwaV93aXRoX2V4YW1wbGUucHk+YF8gLSBzb3VyY2UgYE9wZW5BUEkgYXBpX3dpdGhfZXhhbXBsZXMgPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL2V4YW1wbGVzL3YzLjAvYXBpLXdpdGgtZXhhbXBsZXMuanNvbj5gXwoKVG8gcnVuCgouLiBjb2RlLWJsb2NrOjogYmFzaAoKICAgICQgcGlwIGluc3RhbGwgZmxhc2tkb2NbZGV2XQogICAgJCBmbGFza2RvYyBzdGFydCAtbiBwZXRzdG9yZQoKQ29udHJpYnV0aW5nCi0tLS0tLS0tLS0tLQoKRG9uJ3QgaGVzaXRhdGUgdG8gY3JlYXRlIGEgYEdpdGh1YiBpc3N1ZSA8aHR0cHM6Ly9naXRodWIuY29tL2t1bGdhbi9mbGFza2RvYy9pc3N1ZXM+YF9fIGZvciBhbnkgYnVncyBvciBzdWdnZXN0aW9ucwoKLi4gfGNpfCBpbWFnZTo6IGh0dHBzOi8vZ2l0aHViLmNvbS9rdWxnYW4vZmxhc2tkb2Mvd29ya2Zsb3dzL2NpL2JhZGdlLnN2ZwogICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2t1bGdhbi9mbGFza2RvYy8KICAgIDphbHQ6IGJ1aWxkCgouLiB8UHlQaSB2ZXJzaW9ufCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L2ZsYXNrZG9jLnN2ZwogICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2ZsYXNrZG9jLwogICAgOmFsdDogUHlQaSBkb3dubG9hZHMKCi4uIHxQeXRob24gdmVyc2lvbnwgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9mbGFza2RvYy5zdmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9mbGFza2RvYy8KICAgIDphbHQ6IFB5dGhvbiB2ZXJzaW9ucwoKLi4gfGxpY2Vuc2V8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wvZmxhc2tkb2Muc3ZnCiAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvZmxhc2tkb2MvCiAgICA6YWx0OiBsaWNlbnNlCi4uIHxkb2NzfCBpbWFnZTo6IGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL2ZsYXNrZG9jL2JhZGdlLz92ZXJzaW9uPWxhdGVzdAogICAgOnRhcmdldDogaHR0cHM6Ly9mbGFza2RvYy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvP2JhZGdlPWxhdGVzdAogICAgOmFsdDogRG9jdW1lbnRhdGlvbiBTdGF0dXMKCi4uIHxjb2RlIHF1YWxpdHl8IGltYWdlOjogaHR0cHM6Ly9hcHAuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlLzJkYWZlYmYwMjEzNTRhNDJhYTYyYjExZDZhYjQyNjU0CiAgICA6dGFyZ2V0OiBodHRwczovL3d3dy5jb2RhY3kuY29tL21hbnVhbC9rdWxnYW4vZmxhc2tkb2M/dXRtX3NvdXJjZT1naXRodWIuY29tJmFtcDt1dG1fbWVkaXVtPXJlZmVycmFsJmFtcDt1dG1fY29udGVudD1rdWxnYW4vZmxhc2tkb2MmYW1wO3V0bV9jYW1wYWlnbj1CYWRnZV9HcmFkZQogICAgOmFsdDogQ29kZSBRdWFsaXR5CgouLiB8Y292ZXJhZ2V8IGltYWdlOjogaHR0cHM6Ly9hcHAuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0NvdmVyYWdlLzJkYWZlYmYwMjEzNTRhNDJhYTYyYjExZDZhYjQyNjU0CiAgICA6dGFyZ2V0OiBodHRwczovL3d3dy5jb2RhY3kuY29tL21hbnVhbC9rdWxnYW4vZmxhc2tkb2M/dXRtX3NvdXJjZT1naXRodWIuY29tJmFtcDt1dG1fbWVkaXVtPXJlZmVycmFsJmFtcDt1dG1fY29udGVudD1rdWxnYW4vZmxhc2tkb2MmYW1wO3V0bV9jYW1wYWlnbj1CYWRnZV9Db3ZlcmFnZQogICAgOmFsdDogQ292ZXJhZ2UK readmeEtag: '"b59128c6ef4fa4d4bada6b3a06403e52075d5ba8"' readmeLastModified: Thu, 10 Jun 2021 22:19:38 GMT repositoryId: 208150427 description: Flask OpenAPI annotations created: '2019-09-12T21:35:27Z' updated: '2022-06-21T18:40:09Z' language: Python archived: false stars: 4 watchers: 1 forks: 1 owner: kulgan logo: https://avatars.githubusercontent.com/u/892017?v=4 license: Apache-2.0 repoEtag: '"c636055347abc7193fbd9175d967464e689b054da78c1538cb00250c9ef66839"' repoLastModified: Tue, 21 Jun 2022 18:40:09 GMT foundInMaster: true category: Server Implementations id: db4ac60d7f3ef260b6df2e06d75adb79 - source: openapi3 tags repository: https://github.com/budwk/budwk-openapi-viewer v3: true repositoryMetadata: base64Readme: >- CiMgU3dhZ2dlciBPcGVuQXBpIFYzIFZpZXdlcgpBbiBPcGVuQVBJIDMuMCBhbmQgMi4wIFNwZWMgdmlld2VyCgojIOivtOaYjgoKKiDmnKzpobnnm67lnKggT3BlbkFQSS1WaWV3ZXIg55qE5Z+656GA5LiKLCDkv67lpI3kuIDkupsgT3BlbkFQSSBWMyDlhbzlrrnmgKdidWcg5Li65LqG5pu05aW955qE5bqU55So5LqOIEJ1ZFdrIOmhueebruS4igoqIOWOn+Wni+S7o+eggTogW2h0dHBzOi8vZ2l0aHViLmNvbS9tcmluOS9PcGVuQVBJLVZpZXdlcl0oaHR0cHM6Ly9naXRodWIuY29tL21yaW45L09wZW5BUEktVmlld2VyKQoqIOa8lOekuuWcsOWdgDogW2h0dHBzOi8vZGVtby5idWR3ay5jb20vc3dhZ2dlcl0oaHR0cHM6Ly9kZW1vLmJ1ZHdrLmNvbS9zd2FnZ2VyKQoKIyMg5a6J6KOFCmBgYAp5YXJuIGluc3RhbGwKYGBgCiMjIOiwg+ivlQpgYGAKeWFybiBzZXJ2ZQpgYGAKIyMg55Sf5oiQCmBgYAp5YXJuIHJ1biBidWlsZCAKYGBg readmeEtag: '"fe6ceb67be156b006a274bf0daa37e4366018d91"' readmeLastModified: Wed, 09 Jun 2021 07:15:30 GMT repositoryId: 240551610 description: 基于Vue 的 Swagger OpenApi V3 API文档查看器 created: '2020-02-14T16:26:37Z' updated: '2023-08-18T15:44:16Z' language: Vue archived: false stars: 4 watchers: 2 forks: 0 owner: budwk logo: https://avatars.githubusercontent.com/u/58797370?v=4 license: Apache-2.0 repoEtag: '"ebf7c5c82512df8a9c514dc4fec87209da1404ae679ada2695421c979ad5a6a4"' repoLastModified: Fri, 18 Aug 2023 15:44:16 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 8646e719f1e82252200279911158be75 - source: openapi3 tags repository: https://github.com/sohoffice/swagger-down v3: true repositoryMetadata: base64Readme: >- c3dhZ2dlci1kb3duIGlzIGEgT3BlbkFQSSAzIChTd2FnZ2VyIDMuMCkgc3BlYyB0byBtYXJrZG93biAvIGh0bWwgcmVuZGVyZXIuCgpJdCBpcyBhIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbiB0aGF0IHRha2UgdGhlIHN3YWdnZXIgc3BlYyBmaWxlIGFzIGlucHV0IGFuZCByZW5kZXIgdG8gc3Rkb3V0LgpUeXBpY2FsIHVzYWdlIHdpbGwgcmVkaXJlY3QgdGhlIG91dHB1dCBkaXJlY3RseSB0byBhIGZpbGUgZm9yIGxhdGVyIHByb2Nlc3NpbmcuCgpFeGFtcGxlOgoKYGBgCmphdmEgLWphciBzd2FnZ2VyLWRvd24tYWxsLmphciBmb28ueW1sID4gZm9vLm1kCmBgYAoKc3dhZ2dlci1kb3duIGRvZXNuJ3Qgc3VwcG9ydCBzd2FnZ2VyIDIuMCwgdGhlcmUncyBhIG51bWJlciBvZiBvcHRpb25zIHN1cHBvcnRpbmcgaXQuClNvIHdlIGp1c3QgZGVjaWRlZCBub3QgdG8gcmUtaW52ZW50IHRoZSB3aGVlbC4KCkl0IGlzIGFsc28gbW9yZSB1c2VmdWwgd2hlbiBwcm9jZXNzaW5nIFlBTUwgc3BlYyBmaWxlLiBUaGUgYXBwbGljYXRpb24gb3V0cHV0cyBtYXJrZG93bgphbmQgaXQncyBhIGxvdCBuYXR1cmFsIHRvIHdyaXRlIG1hcmtkb3duIGluIFlBTUwgdGhhbiBpdCBpcyBpbiBKU09OLiBUaGUgMiBhcmUgcGVyZmVjdCBtYXRjaC4KSG93ZXZlciwgSlNPTiBzcGVjIGZpbGUgaXMgc3RpbGwgc3VwcG9ydGVkLCBqdXN0IHRoZSBvdXRwdXQgbWF5IGJlIGxlc3MgcHJldHR5LgoKT3V0cHV0IERvY3VtZW50Ci0tLS0tLS0tLS0tLS0tLQoKUGV0c3RvcmUgZXhhbXBsZTogaHR0cHM6Ly9naXRodWIuY29tL3NvaG9mZmljZS9zd2FnZ2VyLWRvd24vYmxvYi9tYXN0ZXIvc3JjL3Rlc3QvcmVzb3VyY2VzL3BldHN0b3JlLm1kCgpUaGUgYmFzaWMgaWRlYSBhcm91bmQgdGhlIGRlc2lnbiBvZiBnZW5lcmF0ZWQgZG9jdW1lbnQgaXMgYGZsYXR0ZW5gLgoKU3dhZ2dlciBzcGVjIHByb21vdGVzIHJlLXVzYWJpbGl0eSwgc28gdGhlIHNjaGVtYSBjYW4gYmUgZGVmaW5lZCBhcyBhIGNvbXBvbmVudCBhbmQgcmVmZXJlbmNlZCB3aGVuIG5lY2Vzc2FyeS4KU3dhZ2dlciBVSSBwcmVzZXJ2ZXMgdGhlIGNvbW1vbiBjb21wb25lbnQgc2VjdGlvbiwgYnV0IGFsc28gc2hvdyBzY2hlbWEgZGlyZWN0bHkgd2hlcmUgaXQgaXMgbmVlZGVkLgoKQSBtYXJrZG93biBkb2N1bWVudCBpcyBsZXNzIGludGVyYWN0aXZlLgoKSWYgdGhlIHJlYWRlciBoYXMgdG8ganVtcCBiYWNrIGFuZCBmb3J0aCB0byBsb29rdXAgc2NoZW1hIGRlZmluaXRpb24sIGl0IHdpbGwgc29vbiBtYWtlcyByZWFkaW5nIGV4cGVyaWVuY2UgbGVzcyBqb3lmdWwuClNvIGEgc3dhZ2dlci1kb3duIGdlbmVyYXRlZCBkb2N1bWVudCBiYXNpY2FsbHkgZmxhdHRlbnMgYWxsIHNjaGVtYSBhbmQgbWFrZSB0aGVtIGF2YWlsYWJsZSB3aGVyZSB0aGV5IGFyZSBuZWVkZWQuCkZvciBleGFtcGxlOiBpZiB0aGUgc2NoZW1hIGlzIHJlZmVyZW5jZWQgaW4gcmVxdWVzdCBib2R5LCB0aGUgZGV0YWlscyB3aWxsIGJlIGFkZGVkIHJpZ2h0IGluIHRoZSByZWxldmFudCBzZWN0aW9uLgpUaGUgc2FtZSBydWxlIGFwcGxpZXMgdG8gcmVzcG9uc2VzLgoKQWxzbywgdGhlIHN3YWdnZXIgc3BlYyBncm91cHMgZGlmZmVyZW50IG1ldGhvZHMgdW5kZXIgdGhlIHNhbWUgcGF0aC4gVGhpcyBtYWtlcyBwZXJmZWN0IHNlbnNlIHdpdGggU3dhZ2dlciBVSSwKYnV0IGFsc28gbWFrZSB0aGUgbWFya2Rvd24gZG9jdW1lbnQgbW9yZSB2ZXJib3NlIGFuZCBjcmVhdGVzIG1vcmUgaGllcmFyY2h5LgpBcyBhIHJlc3VsdCwgYWxsIEFQSXMgYXJlIGZsYXR0ZW5lZCBpbnRvIGEgbGlzdCwgYnV0IHRob3NlIHdpdGggdGhlIHNhbWUgcGF0aCBhcmUgcGxhY2VkIG5leHQgdG8gZWFjaCBvdGhlciB0byBtYWtlIApyZWFkaW5nIGV4cGVyaWVuY2UgbW9yZSBzbW9vdGhseS4gVGhpcyBhbHNvIGFwcGxpZXMgdG8gZGlmZmVyZW50IHJlcXVlc3QgY29udGVudCB0eXBlcyBvciBkaWZmZXJlbnQgcmVzcG9uc2Ugc3RhdHVzIApjb2RlICsgY29udGVudCB0eXBlcy4KCiMjIyMgSlNPTiBzY2hlbWEKCkpTT04gaXMgdGhlIGRlLWZhY3RvIGZvcm1hdCBvZiBBUEkgaW4gdGhlIG1vZGVybiBhZ2UsIGJ1dCBkb2N1bWVudGluZyBKU09OIGlzIG5vdCBhcyBzdHJhaWdodCBmb3J3YXJkIGFzIGl0IHNlZW1zLgoKc3dhZ2dlci1kb3duIHRha2VzIHRoZSBmbGF0dGVuaW5nIGFwcHJvYWNoIGFuZCBjb252ZXJ0cyB0aGUgZW50aXJlIHNjaGVtYSBpbnRvIGEgdGFibGUsIHdpdGgga2V5IHJlcHJlc2VudGVkIGluIEpTT04gcGF0aC4KClRha2UgdGhpcyBKU09OIGZvciBleGFtcGxlOgoKYGBganNvbgp7CiAgImNvZGUiOiAiRk9PIiwKICAibWVzc2FnZSI6ICJGb28gbWVzc2FnZSIsCiAgInBhcmFtZXRlcnMiOiBbCiAgICB7CiAgICAgICJuYW1lIjogInBhcmFtMSIsCiAgICAgICJ2YWx1ZSI6ICJ2YWx1ZSIKICAgIH0KICBdCn0KYGBgCgpUaGUgc2NoZW1hIHdpbGwgYmUgZG9jdW1lbnRlZCBpbiBiZWxvdyBmb3JtYXQuCgp8IEtleSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tLSB8IC0tLS0tLS0tLS0tIHwKfCAkLmNvZGUgfCBzdHJpbmcgfCBFcnJvciBjb2RlIHwKfCAkLm1lc3NhZ2UgfCBzdHJpbmcgfCBIdW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdlIHwKfCAkLnBhcmFtZXRlcnNbXS5uYW1lIHwgc3RyaW5nIHwgUGFyYW1ldGVyIG5hbWUgfAp8ICQucGFyYW1ldGVyc1tdLnZhbHVlIHwgc3RyaW5nIHwgUGFyYW1ldGVyIHZhbHVlIHwKCldlIGhvcGUgdGhlIHRhYnVsYXIgZGlzcGxheSBoZWxwcyB0byBleHByZXNzIHRoZSBzY2hlbWEgZWxlbWVudCBpbiBhIG1vcmUgb3JnYW5pemVkIG1hbm5lci4KCiMjIyMgRG9jdW1lbnQgb3JnYW5pemF0aW9uCgpXaXRoIHRoZSBhYm92ZSBjb25jZXB0cyBpbiBtaW5kLCB0aGUgb3V0cHV0IGRvY3VtZW50IGlzIG9yZ2FuaXplZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgoKMS4gSW5mbwoyLiBTZXJ2ZXJzCjMuIEFQSSBmbGF0dGVuZWQgaW50byBgbWV0aG9kIHBhdGhgIChleDogR0VUIC9mb28vYmFyKQoKV2l0aGluIGVhY2ggQVBJIGVuZHBvaW50LCB0aGUgc2VjdGlvbnMgYXJlIHJlbmRlcmVkIGFzIHRoZSBiZWxvdwoKMS4gU3VtbWFyeQoyLiBEZXNjcmlwdGlvbgozLiBQYXJhbWV0ZXJzCjQuIFJlcXVlc3QgYm9keQo1LiBSZXNwb25zZXMgZmxhdHRlbmVkIGludG8gYHN0YXR1cyBjb250ZW50LXR5cGVgIChleDogMjAwIGFwcGxpY2F0aW9uL2pzb24pCgojIyMjIE91dHB1dCBmb3JtYXQKCi0gbWFya2Rvd24KLSBodG1sCgpUaGUgSFRNTCBpcyB1bnN0eWxlZCBhbmQgaXMgbW9yZSBzdWl0YWJsZSB3aGVuIGFueSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWUKCi0gWW91IGhhdmUgSFRNTCBtYXJrdXAgaW4geW91ciBzcGVjIGZpbGUuIFlvdSdsbCBuZWVkIHRvIHN0eWxlIHRoZSBvdXRwdXQgeW91cnNlbGYuCi0gWW91IGhhdmUgYSB3YXkgdG8gc3R5bGUgeW91ciBIVE1MLiBGb3IgZXhhbXBsZSwgaXQgY2FuIGJlIHBhc3RlZCBpbnRvIENvbmZsdWVuY2Ugd2lraS4KCktub3duIExpbWl0YXRpb25zCi0tLS0tLS0tLS0tLS0tLS0tCgotIFN3YWdnZXIgMyBvbmx5Ci0gQWR2YW5jZWQgc3dhZ2dlciBmZWF0dXJlIGxpa2Ugb25lT2YsIGFueU9mIGFyZSBub3Qgc3VwcG9ydGVkLiBXZSdyZSBsb29raW5nIHRvIGFkZCB0aGVtIGlmIHJlcXVlc3RlZC4KLSBPcGVuIElEIHNlY3VyaXR5IHN0cnVjdHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQKCk1haW50ZW5hbmNlCi0tLS0tLS0tLS0tCgpTZWUgW0RFVi5tZF0oREVWLm1kKSBmb3IgcmVmZXJlbmNlCgpQcmUtcmVxdWlzaXRlCi0tLS0tLS0tLS0tLS0KCllvdSBuZWVkIEphdmEgOCsgdG8gcnVuLgoKUnVubmluZwotLS0tLS0tCgpEb3dubG9hZCB0aGUgbGF0ZXN0IGJpbmFyeSBmcm9tIFtyZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vc29ob2ZmaWNlL3N3YWdnZXItZG93bi9yZWxlYXNlcykgCmFuZCBleGVjdXRlIGluIGNvbW1hbmQgcHJvbXB0IHdpdGg6CgpgYGAKamF2YSAtamFyIHN3YWdnZXItZG93bi1hbGwuamFyIFtvcHRpb25zXSA8c3BlY19maWxlbmFtZT4KYGBgCgpUaGUgZG93bmxvYWRlZCBqYXIgaXMgYSBgZmF0IGphcmAsIGl0IGNhbiBiZSBleGVjdXRlZCB3aXRob3V0IGZ1cnRoZXIgZGVwZW5kZW5jaWVzLgoKIyMgVXNhZ2UKCmBgYApqYXZhIC1qYXIgYnVpbGQvbGlicy9zd2FnZ2VyLWRvd24tYWxsLmphciAtaGVscApVc2FnZTogPG1haW4gY2xhc3M+IFstaF0gWy1mPTxmb3JtYXQ+XSBbLXI9PGZsYXZvcj5dIEZJTEUKICAgICAgRklMRSAgICAgICAgICAgICAgICBTd2FnZ2VyIFlBTUwgZmlsZXMgdG8gY29udmVydAogIC1mLCAtLWZvcm1hdD08Zm9ybWF0PiAgIFRoZSBvdXRwdXQgZm9ybWF0LiBWYWx1ZXM6IE1ELCBIVE1MCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgZGlzcGxheSBhIGhlbHAgbWVzc2FnZQogIC1yLCAtLWZsYXZvcj08Zmxhdm9yPiAgIFRoZSBnZW5lcmF0aW9uIGZsYXZvci4gVmFsdWVzOiBTVEFOREFSRApgYGAK readmeEtag: '"6b45a5fd8c3b91be9a2fde89dcac42e6d386edc1"' readmeLastModified: Sun, 28 Mar 2021 02:54:00 GMT repositoryId: 340091372 description: >- A CLI application to render OpenAPI 3 (swagger 3.0) spec to markdown / html created: '2021-02-18T15:23:24Z' updated: '2023-09-01T09:00:30Z' language: Kotlin archived: false stars: 4 watchers: 2 forks: 0 owner: sohoffice logo: https://avatars.githubusercontent.com/u/3193955?v=4 repoEtag: '"662505319d7fa33f46267c5beb78999a1bd736c508da496aded80b23c6509977"' repoLastModified: Fri, 01 Sep 2023 09:00:30 GMT foundInMaster: true category: Parsers id: 970de5664bcc609366a6f02d1e11252f - source: openapi3 tags repository: https://github.com/rodnansol/openapi-extender v3: true id: 653701984139345acce908cfa00bd535 repositoryMetadata: base64Readme: >- PSBPcGVuQVBJIEV4dGVuZGVyCmlmbmRlZjo6ZW52LWdpdGh1YltdCjppY29uczogZm9udAplbmRpZjo6W10KaWZkZWY6OmVudi1naXRodWJbXQo6Y2F1dGlvbi1jYXB0aW9uOiA6ZmlyZToKOmltcG9ydGFudC1jYXB0aW9uOiA6ZXhjbGFtYXRpb246Cjpub3RlLWNhcHRpb246IDpwYXBlcmNsaXA6Cjp0aXAtY2FwdGlvbjogOmJ1bGI6Cjp3YXJuaW5nLWNhcHRpb246IDp3YXJuaW5nOgplbmRpZjo6W10KOnRvYzoKOnRvYy1wbGFjZW1lbnQhOgo6dG9jbGV2ZWxzOiA0CgppbWFnZTo6YmFubmVyLnBuZ1tiYW5uZXIucG5nXQpbLnRleHQtY2VudGVyXQppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9vcmcucm9kbmFuc29sL29wZW5hcGktZXh0ZW5kZXItcGFyZW50LnN2Z1tNYXZlbiBDZW50cmFsXQppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtQXBhY2hlXzIuMC1ibHVlLnN2Z1tBcGFjaGUgMi4wXQppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvdXJsL2h0dHBzL3R3aXR0ZXIuY29tL3JvZG5hbnNvbC5zdmc/c3R5bGU9c29jaWFsJmxhYmVsPUZvbGxvdyUyMCU0MFJvZG5hblNvbFtdCmltYWdlOmh0dHBzOi8vZGNiYWRnZS52ZXJjZWwuYXBwL2FwaS9zZXJ2ZXIvVVN5aDZYVWp2UFtEaXNjb3JkXQoKdG9jOjpbXQoKPT0gTW90aXZhdGlvbgoKV3JpdGluZyBwcm9wZXIgT3BlbkFQSSBkb2N1bWVudGF0aW9ucyBhcmUgdGltZS1jb25zdW1pbmcsIGlmIHlvdSByZWFsbHkKd2FudCB0byBtYWtlIHN1cmUgeW91ciBjbGllbnRzIGFyZSB1bmRlcnN0YW5kaW5nIHRoZSBBUEkgaXRzZWxmLCBtYXNzaXZlCmFtb3VudCBvZiBzdW1tYXJpZXMgYW5kIGV4YW1wbGVzIHNob3VsZCBiZSBwcm92aWRlZCwgbm90IG1hbmRhdG9yeSwgYnV0CmlmIHlvdSBhcmUgb24gdGhlIG90aGVyIHNpZGUgb2YgdGhlIEFQSSwgeW91IG1pZ2h0IGJlIGFsc28gaGFwcGllciBpZiBhbgpBUEkgZG9jdW1lbnRhdGlvbiBpcyB2ZXJib3NlIGFzIHBvc3NpYmxlLgoKPT0gR29hbHMKClRoZSBnb2FsIG9mIHRoaXMgcHJvamVjdCB0byBtYWtlIHN1cmUgdGhhdCB5b3VyIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBpcwpoYXZpbmcgZW5vdWdoIGV4dHJhIGRldGFpbHMsIHRoYXQgeW91IG1pZ2h0IG5vdCB3YW50IHRvIHdyaXRlIGJ5CnlvdXJzZWxmIGluIHRoZSBkb2N1bWVudGF0aW9uLCBidXQgeW91IHdvdWxkIGxpa2UgdG8gdXNlIG90aGVyLCBlYXJsaWVyCndyaXR0ZW4gcmVzb3VyY2VzIHRvIGZ1bGZpbCB0aGVzZSByZXF1aXJlbWVudHMvbmVlZHMvZ2FwcyBpbiB5b3VyCmRvY3VtZW50YXRpb24uCgpEZXZlbG9wZXJzIGFyZSB3cml0aW5nIHVuaXQgYW5kIGludGVncmF0aW9uIHRlc3RzIG9uIHRoZWlyIHByb2plY3RzLCBhbmQKYSBnb29kIHRlc3QgY291bGQgYmUgcHJvdmlkaW5nIHRoZSBkaWZmZXJlbnQgaW5wdXQgYW5kIG91dHB1dCB2YWx1ZXMgZm9yCmEgY29tcG9uZW50LiBBUEkgZGV2ZWxvcGVycyBhcmUgd3JpdGluZyB0b25zIG9mIGludGVncmF0aW9uIHRlc3RzIGZvcgp0aGUgZGlmZmVyZW50IHVzZSBjYXNlcyBhbmQgaXQgaGFwcGVucyBzb21ldGltZXMgdGhhdCB0aGV5IGFyZSBub3QKZ2l2aW5nIG91dCB0aGVzZSB0ZXN0cywgYmVjYXVzZSBvZiBjb3Vyc2Ugc2VjdXJpdHkgYW5kIHByaXZhY3kgcnVsZXMsCmJ1dCBzb21lIG91dHB1dCBvZiB0aGVzZSB0ZXN0cyBjb3VsZCBiZSB1c2VkIHRvIGV4dGVuZCB0aGUgYWxyZWFkeQpleGlzdGluZyBBUEkuCgo9PSBBbHRlcm5hdGl2ZXMKCiogaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZy1wcm9qZWN0cy9zcHJpbmctcmVzdGRvY3NbU3ByaW5n4oCZcyBSRVNUIERvY3NdCmRvZXMgc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCBpdCBpcyBub3QgaGVhdmlseSBpbnZvbHZlZCBpbiB0aGUgT3BlbkFQSQppbml0aWF0aXZlLgoqIGh0dHBzOi8vZ2l0aHViLmNvbS9lUGFnZXMtZGUvcmVzdGRvY3MtYXBpLXNwZWNbU3ByaW5nIFJFU1QgRG9jcyBBUEkKc3BlY2lmaWNhdGlvbiBJbnRlZ3JhdGlvbl0ga2luZGEgdGhlIHdhbnRlZCBmZWF0dXJlcywgYnV0IGl0IGlzIHRvdGFsbHkKdGVzdCBkcml2ZW4uCgo9PSBJbXBsZW1lbnRhdGlvbgoKVGhlIHByb2plY3QgaXMgc3BsaXQgdXAgaW50byBtdWx0aXBsZSBtb2R1bGVzIHRvIG1ha2Ugc3VyZSB0aGUgZW5kIHVzZXJzCmFyZSBub3QgZGVwZW5kaW5nIG9uIHNvbWUgdW5uZWNlc3NhcnkgZGVwZW5kZW5jaWVzOgoKKiBvcGVuYXBpLWV4dGVuZGVyIC0gQ29yZSBwYXJ0LCB0aGF0IGRvZXMgdGhlIGBgaGVhdnktbGlmdGluZycnIHRoYXQKd29ya3Mgd2l0aCB0aGUgT3BlbkFQSSBtb2RlbCBjbGFzc2VzCiogb3BlbmFwaS1leHRlbmRlci1yZXNvdXJjZS1nZW5lcmF0b3IgLSBSZXNvdXJjZSBnZW5lcmF0b3IgbW9kdWxlIHRoYXQKaXMgZ2VuZXJhdGluZyB0aGUgcmVzb3VyY2UgZmlsZXMgYmFzZWQgb24gZGlmZmVyZW50IGNvbnRlbnQKKiBvcGVuYXBpLWV4dGVuZGVyLXNwcmluZy10ZXN0IC0gU3ByaW5nIFRlc3QgZXh0ZW5zaW9uCiogb3BlbmFwaS1leHRlbmRlci1zcHJpbmdkb2MgLSBTcHJpbmdEb2MgZXh0ZW5zaW9uCgo9PSBVc2FnZQoKUGxlYXNlIGNoZWNrIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnRhdGlvbiBzZWN0aW9ucyBmb3IgeW91ciByZXF1ZXN0ZWQgZmVhdHVyZXMKCj09PSA8PGRvY3MvZ2VuZXJhdGVkLWV4YW1wbGVzLmFkb2MjZ2VuZXJhdGVkLWV4YW1wbGVzLCBHZW5lcmF0ZWQgZXhhbXBsZXMgd2l0aCB0ZXN0cz4+CgppZm5kZWY6OmVudi1naXRodWJbXQppbmNsdWRlOjpkb2NzL2dlbmVyYXRlZC1leGFtcGxlcy5hZG9jW10KZW5kaWY6OltdCgo9PT0gPDxkb2NzL2V4dHJhLXN1bW1hcmllcy5hZG9jI2V4dHJhLXN1bW1hcmllcywgRXh0cmEgc3VtbWFyeSBhbmQgZGVzY3JpcHRpb24gZm9yIG9wZXJhdGlvbnMgPj4KCmlmbmRlZjo6ZW52LWdpdGh1YltdCmluY2x1ZGU6OmRvY3MvZXh0cmEtc3VtbWFyaWVzLmFkb2NbXQplbmRpZjo6W10K readmeEtag: '"84aaf4cfeb2ad6551317d8996642f9efcad24007"' readmeLastModified: Mon, 23 Jan 2023 08:16:03 GMT repositoryId: 534821652 description: >- OpenAPI Extender that will help you to move faster with your API documentation. created: '2022-09-09T22:14:58Z' updated: '2023-01-20T23:54:13Z' language: Java archived: false stars: 4 watchers: 1 forks: 0 owner: rodnansol logo: https://avatars.githubusercontent.com/u/107804610?v=4 license: Apache-2.0 repoEtag: '"f0c994373f8a3acf784decb422860d38a53427bb59173df86480f8eda5dd8179"' repoLastModified: Fri, 20 Jan 2023 23:54:13 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/louiscavalcante/ts-node-boilerplate-2024 v3: true id: 51a3ee3d0ec902f994c8cc1da04f2258 repositoryMetadata: base64Readme: >- IyMgVXNhZ2UKCkluc3RhbGwgdGhlIHBhY2thZ2VzLgoKYGBgYmFzaAokIG5wbSBpCmBgYAoKSW5zdGFsbCB0aGUgcmVxdWlyZW1lbnRzLgoKYGBgYmFzaAokIG5wbSBydW4gZGV2OnJlcXVpcmVtZW50cwpgYGAKCiMjIFRpcHM6CgotICAgVGhpcyBwcm9qZWN0IHNlcGFyYXRlcyBgcHJldHRpZXJgIGp1c3QgZm9yIGZvcm1hdHRpbmcgYW5kIGBlc2xpbnRgIGp1c3QgZm9yIGxpbnRpbmcsIGFzIGl0J3MgYWR2aXNlZCBieSB0aGUgZGV2ZWxvcGVycy4gVGhhdCdzIHdoeSBJIGRvbid0IHVzZSBgZXNsaW50LXBsdWdpbi1wcmV0dGllcmAKCi0gICBXaGVuIHlvdSBjb21taXQgc29tZXRoaW5nLCBgaHVza3lgLCBgbXJtYCBhbmQgYGxpbnQtc3RhZ2VgIGFyZSBzZXQgdG8gcnVuIGBwcmV0dGllcmAsIGBlc2xpbnRgIGFuZCBgamVzdGAuPGJyPgogICAgVGhpcyB3aWxsIGZpeCBldmVyeXRoaW5nIGFuZCBsZXQgeW91IGtub3cgaWYgeW91IGZvcmdvdCBhYm91dCBhbnkgZXJyb3IuPGJyPgogICAgSXQgd2lsbCBhbHNvIHJ1biB0ZXN0cyB0aGF0IHdlcmUgY3JlYXRlZCBvciBtb2RpZmllZC4KCi0gICBFdmVyeSB0aW1lIHlvdSB1cGRhdGUgdGhlIGBvcGVuYXBpLnlhbWxgIGZpbGUsIHlvdSBuZWVkIHRvIHJ1biB0aGUgYG5wbSBydW4gdXBkYXRlOm9wZW5hcGlgIHNjcmlwdCwgdG8ga2VlcCBgb3BlbmFwaS1zY2hlbWEuZC50c2AgdXBkYXRlZCwgc28geW91IGNhbiB1c2UgdGhlIG9wZW5hcGkncyBzY2hlbWFzIGFzIHR5cGVzIGZvciB0aGlzIGFwcGxpY2F0aW9uLgoKLSAgIFRoZSBgZXJyb3ItaGFuZGxlci5taWRkbGV3YXJlYCB3aWxsIGhhbmRsZSBhbGwgZXJyb3JzLCB0aGlzIGFsc28gaW5jbHVkZXMgYW55IHVua25vd24gcm91dGVzIGJ5IHRoZSBgb3BlbmFwaS55YW1sYCBhbmQgdGhlIGVycm9ycyB0aHJvd24gYnkgdGhlIGNsYXNzZXMgYERvbWFpbkVycm9yYCBhbmQgYEF4aW9zUmVxdWVzdEVycm9yYC48YnI+CiAgICBXaGVuIGBOT0RFX0VOVmAgaXMgc2V0IHRvIGBwcm9kdWN0aW9uYC4gSXQgd2lsbCBOT1QgaW50ZXJmZXJlIHdpdGggdGhlIGxvZ3MsIGJ1dCB3aWxsIGNoYW5nZSB0aGUgZXJyb3IgcmVzcG9uc2UgdG86PGJyPgogICAgYGh0dHAgc3RhdHVzIDUwMGAgYW5kIHRoZSBib2R5IHJlc3BvbnNlIHRvOiBgU29tZXRoaW5nIGJhZCBoYXBwZW5lZGA8YnI+CiAgICBVbmxlc3MgaXQncyBhIGBEb21haW5FcnJvcmAgdGhhdCB0aGUgY2xpZW50IG11c3Qga25vdyBhYm91dCEKCi0gICBVbmtub3duIGV4Y2VwdGlvbnMgYnkgdGhlIGFwcGxpY2F0aW9uLCB3aWxsIHVzZSB0aGUgRXJsYW5nJ3MgbGV0IGl0IGNyYXNoIHBoaWxvc29waHkuPGJyPgogICAgQmFzaWNhbGx5IGl0IGxldHMgdGhlIGFwcCBjcmFzaCBzbyB0aGUgb3JjaGVzdHJhdG9yIGNhbiByZXN0YXJ0IHRoZSBhcHBsaWNhdGlvbi48YnI+CiAgICBCdXQgaG93IHRoaXMgcmVhbGx5IHdvcmtzPzxicj4KICAgIEZpcnN0IHRoZSBhcHAgd2lsbCBzdG9wIHJlY2VpdmluZyByZXF1ZXN0LCB0aGVuIGZpbmlzaCB0aGUgcmVxdWVzdHMgdGhhdCB3ZXJlIGFscmVhZHkgaW4gcHJvZ3Jlc3MgYW5kIGdyYWNlZnVsbHkgc2h1dHMgZG93biBldmVyeXRoaW5nLjxicj4KICAgIFRoaXMgYXBwcm9hY2ggaW1wcm92ZXMgc3lzdGVtIHJlbGlhYmlsaXR5Ljxicj4KICAgIElmIHlvdSdyZSBvbiBLdWJlcm5ldGVzLCB5b3UgY2FuIHVzZSBJbmdyZXNzIG9yIG90aGVyIGxvYWQgYmFsYW5jZXIgc3RyYXRlZ2llcyBmb3IgeW91ciBhcHBsaWNhdGlvbi4KCi0gICBUaGVyZSdzIGEgYHJhdGVMaW1pdGVyYCBtZXRob2QgY29uZmlndXJlZCB0byBsaW1pdCByZXF1ZXN0IHBlciB1c2VyJ3MgaXAuPGJyPgogICAgWW91IGNhbiBkZWxldGUgaXQgaWYgeW91IGRlY2lkZSB0byB1c2UgdGhpcyBwcm9qZWN0IGFzIGEgcHJpdmF0ZSBBUEkuCgotICAgZG90ZW52IGlzIHNldCBqdXN0IGZvciBKZXN0Ljxicj4KICAgIEZvciBkZXZlbG9wbWVudCBpdCB1c2VzIGAtLWVudi1maWxlIC4vZW52aXJvbm1lbnRzLy5lbnZgCgotICAgSW5zaWRlIHRoZSBgdHNjb25maWcuanNvbmAgdW5kZXIgYHBhdGhzOiB7fWAgeW91IGNhbiBzZXQgY3VzdG9tIHBhdGhzLjxicj4KICAgIFlvdSBkb24ndCBuZWVkIHRvIHNldCB0aGVtIGFueXdoZXJlIGVsc2UsIHRoaXMgcHJvamVjdCBhbHJlYWR5IGRvZXMgdGhhdCBmb3IgeW91LgoKLSAgIFRoZXJlIGFyZSB0d28gZGVidWdnZXJzIGNvbmZpZ3VyZWQgd2l0aCBhdXRvIHJlbG9hZCB0byBmYWNpbGl0YXRlIHlvdXIgd29ya2Zsb3cuPGJyPgogICAgU28geW91IGRvbid0IG5lZWQgdG8ga2VlcCByZXN0YXJ0aW5nIHlvdXIgZGVidWdnZXIgbWFudWFsbHkuPGJyPgogICAgT25lIGZvciBOb2RlIGFuZCB0aGUgb3RoZXIgZm9yIEplc3QuCgotICAgWW91IGNhbiBydW4vZGVidWcganVzdCBvbmUgdGVzdCBhdCBhIHRpbWUgd2l0aCB0aGUgZXh0ZW5zaW9uIGBKZXN0IFJ1bm5lcmAgZnJvbSB0aGUgYXV0aG9yIGBmaXJzdHRyaXMgYDxicj4KICAgIFRoZSBwcm9qZWN0IGlzIGFscmVhZHkgc2V0IHRvIHJ1biBpdCB3aXRob3V0IGFueSBwcm9ibGVtcy48YnI+CiAgICBQUzogSSd2ZSBmb3VuZCBhIGJ1ZyBpbiB0aGlzIGV4dGVuc2lvbiBvbiBsaW51eCwgYnV0IHRoZSBidWcganVzdCBvY2N1cnMgaWYgeW91IHNldCB5b3VyIGBpdChgYCwgKCkgPT4ge30pYCB3aXRoIHRlbXBsYXRlIHN0cmluZ3MgdGhhdCBoYXMgbXVsdGlwbGUgbGluZXMuIFRoZSBidWcgaGFwcGVucyB3aGVuIHRoZSBmaXJzdCBsaW5lIGhhcyBhIHNpbWlsYXIgZGVzY3JpcHRpb24gd2l0aCBhbm90aGVyIHRlc3QgYmVmb3JlIHRoZSBsaW5lIGJyZWFrcy48YnI+CiAgICBCZXNpZGVzIHRoYXQgaXQgd29ya3MgZ3JlYXQhCgojIyBXWVAKCi0gICBVbml0IHRlc3RzCg== readmeEtag: '"f9e7803c7ba79f90e84ed371ec969fd46ef4188e"' readmeLastModified: Tue, 23 Jan 2024 13:47:23 GMT repositoryId: 739321785 description: null created: '2024-01-05T09:37:17Z' updated: '2024-07-28T18:16:38Z' language: TypeScript archived: false stars: 4 watchers: 1 forks: 0 owner: louiscavalcante logo: https://avatars.githubusercontent.com/u/32718388?v=4 license: MIT repoEtag: '"95e04d702287743da8bd1b0a313a8723171c72132cdff746339e1a0453811f4e"' repoLastModified: Sun, 28 Jul 2024 18:16:38 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/clowre/docserver v3: true repositoryMetadata: base64Readme: >- IyBDbG93cmUgT3BlbkFQSSBEb2N1bWVudCBTZXJ2ZXIKCkEgc2ltcGxlIHByb2dyYW0gdGhhdCBtZXJnZXMgbXVsdGlwbGUgT3BlbkFQSS9Td2FnZ2VyIHNjaGVtYSBmaWxlcywgYW5kIHNlcnZlcyB0aGUgbWVyZ2VkIHJlc3VsdC4gVGhpcyBwcm9qZWN0IHdhcyBib3JuCnRvIHNvbHZlIGEgdmVyeSBzcGVjaWZpYyB1c2UtY2FzZSB3aGVyZSB3ZSBhdCBDbG93cmUgbmVlZGVkIHRvIHNlZSB0aGUgQVBJIGRvY3Mgb2YgYWxsIG91ciBtaWNyb3NlcnZpY2VzIGF0IG9uZSBwbGFjZS4KCkhvd2V2ZXIsIHRoaXMgcHJvamVjdCBhbHNvIGFpbXMgdG8gYmUgYSBnZW5lcmljIHNvbHV0aW9uIGZvciBPcGVuQVBJIFNjaGVtYSBtZXJnaW5nLgoKIyMgUnVubmluZwoKQnkgZGVmYXVsdCwgdGhlIHNlcnZlciB0cmllcyB0byByZXNvbHZlIGNvbmZpZ3VyYXRpb24gZnJvbSBhIFNwcmluZyBDbG91ZCBDb25maWcgU2VydmVyLCBzbyBldmVyeSBleHRlcm5hbCBjb25maWd1cmF0aW9uCm11c3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5IGV4cGxpY2l0bHk6CgpgYGB5YW1sCm1pY3JvbmF1dDoKICBjb25maWctY2xpZW50OgogICAgZW5hYmxlZDogZmFsc2UKYGBgCgpUaGUgcmVjb21tZW5kZWQgd2F5IHRvIHJ1biB0aGlzIHNlcnZlciBpcyB0aHJvdWdoIERvY2tlci4gVGhpcyBzZXJ2ZXIgc2VydmVzIG1lcmdlZCBPcGVuQVBJIFNjaGVtYXMgYXQKYGh0dHA6Ly9ob3N0OnBvcnQvZG9jcy5qc29uYC4KCiMjIyBXaXRoIGV4dGVybmFsIGNvbmZpZ3VyYXRpb24KCmBgYHNoZWxsCmRvY2tlciBydW4gLS1ybSAtaXQgLS1uYW1lPWRvY3NlcnZlciAtcCA4MDgwOjgwODAgXAogIC12ICIkKHB3ZCkvX2V4YW1wbGVzL2V4dGVybmFsLWNvbmZpZ3VyYXRpb24ueWFtbDovY29uZmlnLnlhbWwiIFwKICAtZSBNSUNST05BVVRfQ09ORklHX0ZJTEVTPS9jb25maWcueWFtbCBcCiAgY2xvd3JlL2RvY3NlcnZlcjpsYXRlc3QKYGBgCgojIyMgVXNpbmcgU3ByaW5nIENsb3VkIENvbmZpZyBTZXJ2ZXIKCklmIHlvdSB3aXNoIHRvIGNvbmZpZ3VyZSB0aGUgZG9jc2VydmVyIHVzaW5nIGEgQ2xvdWQgQ29uZmlnIGluc3RhbmNlLCBpdCBpcyByZXF1aXJlZCB0aGF0IGBDT05GSUdfU0VSVkVSX1VSSWAgcG9pbnRzIHRvCnlvdXIgY29uZmlndXJhdGlvbiBzZXJ2ZXIuIFRoZSBkb2NzZXJ2ZXIncyBhcHBsaWNhdGlvbiBJRCBpcyBgY2xvd3JlLWRvY3NlcnZlcmAsIHNvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIGNhbgpiZSByZXNvbHZlZCBieSB0aGlzIG5hbWUuCgpgYGBzaGVsbApkb2NrZXIgcnVuIC0tcm0gLWl0IC0tbmFtZT1kb2NzZXJ2ZXIgLXAgODA4MDo4MDgwIFwKICAtZSBDT05GSUdfU0VSVkVSX1VSST1odHRwOi8veW91ci1jb25maWctc2VydmVyOjg4ODggXAogIC1lIE1JQ1JPTkFVVF9FTlZJUk9OTUVOVFM9Y2xvdWQgXAogIGNsb3dyZS9kb2NzZXJ2ZXI6bGF0ZXN0CmBgYAoKIyMgQ29uZmlndXJhdGlvbgoKIyMjIFN3YWdnZXIgU291cmNlcwoKVGhpcyBpcyB0aGUgb25seSBjb25maWd1cmF0aW9uIHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgcHJlc2VudCB0byBydW4gYSBiYXJlLW1pbmltdW0gdmVyc2lvbiBvZiB0aGlzIHNlcnZlci4gVGhpcwpjb25maWd1cmF0aW9uIGlzIHNwZWNpZmllZCBieSB0aGUgYHN3YWdnZXI6YCBrZXkgaW4gdGhlIGNvbmZpZ3VyYXRpb24gWUFNTC4gSGVyZSdzIGEgc2FtcGxlIGNvbmZpZ3VyYXRpb24gdGhhdCBtZXJnZXMgYQpjb3VwbGUgb2Ygc2NoZW1hcy4KCmBgYHlhbWwKc3dhZ2dlcjoKICAjIyBXaWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIG1lcmdlZCBPcGVuQVBJIGZpbGUncyAnc2VydmVycycgc2VjdGlvbiAtIG9wdGlvbmFsLgogIHNlcnZlcnM6CiAgICAtIHVybDogaHR0cDovL215c2VydmVyLmxvY2FsCiAgICAgIGRlc2NyaXB0aW9uOiBBIHJlYWxseSBjb29sIHNlcnZlciB0aGF0IGRvZXMgc3R1ZmYuCiAgIyMgV2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBtZXJnZWQgT3BlbkFQSSBmaWxlJ3MgJ2luZm8nIHNlY3Rpb24uCiAgaW5mbzoKICAgICMjIFRpdGxlIG9mIHRoZSBtZXJnZWQgT3BlbkFQSSBzY2hlbWEuIFJlcXVpcmVkLgogICAgdGl0bGU6IEEgYmFzaWMgY29tYmluZWQgQVBJIFlBTUwKICAgIGRlc2NyaXB0aW9uOiB8LQogICAgICAjIyBXaGF0IGl0IGlzCiAgICAgIEFuIGV4YW1wbGUgb2YgY2xvd3JlL2RvY3NlcnZlcidzIHNjaGVtYSBtZXJnZSBmdW5jdGlvbmFsaXR5LgoKICAgICAgIyMgV2hhdCBpdCBtZXJnZXMKICAgICAgVGhlIHN3YWdnZXIgUGV0IFN0b3JlIGFuZCBCb3hLbmlnaHQgQVBJIHNjaGVtYXMuCgogICMjIExpc3Qgb2YgT3BlbkFQSSBzY2hlbWFzIHRvIGJlIG1lcmdlZC4KICBzb3VyY2VzOgogICAgIyMgQSBmcmllbmRseSBuYW1lIG9mIHRoaXMgcmVzb3VyY2UgdG8gYmUgdXNlZCBpbiBsb2dnaW5nIC0gcmVxdWlyZWQuCiAgICAtIG5hbWU6IFBldCBTdG9yZQoKICAgICAgIyMgU3RyaW5nIHRvIGJlIHVzZWQgYXMgYSBwcmVmaXggb2YgQVBJIHBhdGhzIC0gcmVxdWlyZWQKICAgICAgcGF0aC1wcmVmaXg6IHBldC1zdG9yZQoKICAgICAgIyMgTG9jYXRpb24gb2YgT3BlbkFQSSBzY2hlbWEgSlNPTi9ZQU1MIC0gcmVxdWlyZWQKICAgICAgYWRkcmVzczogaHR0cHM6Ly9yZWRvY2x5LmdpdGh1Yi5pby9yZWRvYy9vcGVuYXBpLnlhbWwKCiAgICAgICMjIFZlcnNpb24gb2Ygc2NoZW1hIC0gVjIgb3IgVjMgLSByZXF1aXJlZAogICAgICB2ZXJzaW9uOiBWMwpgYGAKCk1vcmUgY29uZmlndXJhdGlvbiBleGFtcGxlcyBjYW4gYmUgZm91bmQgaW4gYF9leGFtcGxlc2AgZGlyZWN0b3J5IG9mIHRoaXMgcmVwb3NpdG9yeS4KCiMjIyBWaWV3cwoKVGhlIGRvY3NlcnZlciBjYW4gYWxzbyBzZXJ2ZSBvZmYgU3dhZ2dlciBhbmQgUmVEb2Mgdmlld3Mgb3V0IG9mIHRoZSBib3guIFRoaXMgZnVuY3Rpb25hbGl0eSBjYW4gYmUgZW5hYmxlZCBieSBwdXR0aW5nCnRoZSBmb2xsb3dpbmcgaW4geW91ciBjb25maWd1cmF0aW9uOgoKYGBgeWFtbAp2aWV3czoKICBlbmFibGUtcmVkb2M6IHRydWUKICBlbmFibGUtc3dhZ2dlcjogdHJ1ZQpgYGAKCk9uY2UgZW5hYmxlZCwgdGhlIHZpZXdzIGNhbiBiZSBhY2Nlc3NlZCBhdCBgaHR0cDovL2hvc3Q6cG9ydC92aWV3cy9yZWRvY2AgYW5kIGBodHRwOi8vaG9zdDpwb3J0L3ZpZXdzL3N3YWdnZXJgLgoKLS0tCgojIyBQcm9qZWN0IHVzYWJpbGl0eSBzdGF0dXMKClRoaXMgcHJvamVjdCBpcyBpbiAqKmFscGhhKiogc3RhdGUgcmlnaHQgbm93LCBhbmQgaXMgbm90IG1lYW50IHRvIGJlIHVzZWQgaW4gcHJvZHVjdGlvbi4gSG93ZXZlciwgdGhpcyB3aWxsIGtlZXAgb24KZXZvbHZpbmcgYW5kIHdpbGwgc2VlIGEgcHJvZHVjdGlvbiByZWxlYXNlIGFzIHdlIGF0IENsb3dyZSBlbmhhbmNlIGl0LgoKIyMgQ29udHJpYnV0aW9ucyB3ZWxjb21lCgpXZSdyZSBoYXBweSB0byB0YWtlIGNvbnRyaWJ1dGlvbnMgaW4gZm9ybSBvZiBpc3N1ZXMsIGZlYXR1cmUgcmVxdWVzdHMsIGRvY3VtZW50YXRpb24sIGFuZCBjb2RlIQ== readmeEtag: '"90210a8acbb2facb5140253546fc47a7d85af4d5"' readmeLastModified: Fri, 08 Apr 2022 17:54:18 GMT repositoryId: 469345400 description: Merge and Serve OpenAPI/Swagger Documents created: '2022-03-13T11:03:23Z' updated: '2024-08-20T08:02:50Z' language: Java archived: false stars: 4 watchers: 1 forks: 0 owner: clowre logo: https://avatars.githubusercontent.com/u/91081481?v=4 license: MIT repoEtag: '"f10e026bd3d8d8039dd87893620d26950ce1db6a54ffdc86068a6bf70f299c1a"' repoLastModified: Tue, 20 Aug 2024 08:02:50 GMT foundInMaster: true category: Parsers id: a0183f83fb00660e796a6fd36906afc6 - source: openapi3 tags repository: https://github.com/methodus/homematic_openapi v3: true repositoryMetadata: base64Readme: >- IyBob21lbWF0aWNfb3BlbmFwaQpPcGVuQVBJIDMuMCBzcGVjIGJhc2VkIEhvbWVtYXRpYyBBUEkK readmeEtag: '"0981c8bbbd52f0de41671bde0a9a84c15dc02937"' readmeLastModified: Sat, 16 Mar 2019 20:41:03 GMT repositoryId: 170865647 description: OpenAPI 3.0 spec based Homematic API created: '2019-02-15T13:01:53Z' updated: '2022-09-15T06:37:47Z' language: Tcl archived: false stars: 4 watchers: 3 forks: 0 owner: methodus logo: https://avatars.githubusercontent.com/u/4979595?v=4 license: Apache-2.0 repoEtag: '"9425a59022c985901a61c22f63ebc2ffe5fd0f9f3cc2353e892d7ed61cbdfc56"' repoLastModified: Thu, 15 Sep 2022 06:37:47 GMT foundInMaster: true category: Parsers id: 4f9c3ac7e771ac85e88ed15e1140c97e - source: openapi3 tags repository: https://github.com/vect0rpro/dropwizard-swagger v3: true repositoryMetadata: base64Readme: >- RHJvcHdpemFyZCBTd2FnZ2VyIEludGVncmF0aW9uCj09PT09PT09PT09PT09PT09PQoKWyFbQXBhY2hlIExpY2Vuc2UgVjIuMF0oaHR0cDovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtQXBhY2hlJTIwVjItNTBjYTIyLnN2ZyldKC8vZ2l0aHViLmNvbS9WZWN0MHJQcm8vZHJvcHdpemFyZC1zd2FnZ2VyL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpClshW01hdmVuIENlbnRyYWxdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9pbi52ZWN0b3Jwcm8uZHJvcHdpemFyZC9kcm9wd2l6YXJkLXN3YWdnZXIvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2luLnZlY3RvcnByby5kcm9wd2l6YXJkL2Ryb3B3aXphcmQtc3dhZ2dlcikKCkEgRHJvcHdpemFyZCBidW5kbGUgdGhhdCBzZXJ2ZXMgU3dhZ2dlciBVSSBzdGF0aWMgY29udGVudCBhbmQgbG9hZHMgU3dhZ2dlciBlbmRwb2ludHMuCgpDdXJyZW50IHZlcnNpb24gaGFzIGJlZW4gdGVzdGVkIHdpdGggRHJvcHdpemFyZCAyLjAuMjggYW5kIFN3YWdnZXIgMi4xLjEzIHdoaWNoIHN1cHBvcnRzIE9wZW5BcGkgMy4wIHNwZWNpZmljYXRpb25zCgpSZXF1aXJlbWVudHMKLS0tLS0tLS0tLS0tLS0KKiBEcm9wd2l6YXJkIDIuMC4yOAoqIFN3YWdnZXIgQVBJIDIuMS4xMwoqIFN3YWdnZXIgVUkgNC42LjIKClVzYWdlCi0tLS0tLS0tLS0tLS0KCiogQWRkIHRoZSBNYXZlbiBkZXBlbmRlbmN5IChhdmFpbGFibGUgaW4gTWF2ZW4gQ2VudHJhbCkKCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmluLnZlY3RvcnByby5kcm9wd2l6YXJkPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+ZHJvcHdpemFyZC1zd2FnZ2VyPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+Mi4wLjI4LTI8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgoKKiBBZGQgdGhlIGZvbGxvd2luZyB0byB5b3VyIENvbmZpZ3VyYXRpb24gY2xhc3M6CgpgYGBqYXZhCnB1YmxpYyBjbGFzcyBZb3VyQ29uZmlndXJhdGlvbiBleHRlbmRzIENvbmZpZ3VyYXRpb24gewoKICAgIEBKc29uUHJvcGVydHkoInN3YWdnZXIiKQogICAgcHVibGljIFN3YWdnZXJCdW5kbGVDb25maWd1cmF0aW9uIHN3YWdnZXJCdW5kbGVDb25maWd1cmF0aW9uOwpgYGAKCiogQWRkIHRoZSBmb2xsb3dpbmcgeW91ciBjb25maWd1cmF0aW9uIHlhbWwgKHRoaXMgaXMgdGhlIG1pbmltYWwgY29uZmlndXJhdGlvbiB5b3UgbmVlZCk6CgpgYGB5YW1sCnByb3AxOiB2YWx1ZTEKcHJvcDI6IHZhbHVlMgoKIyB0aGUgb25seSByZXF1aXJlZCBwcm9wZXJ0eSBpcyByZXNvdXJjZVBhY2thZ2UsIGZvciBtb3JlIGNvbmZpZyBvcHRpb25zIHNlZSBiZWxvdwpzd2FnZ2VyOgogIHJlc291cmNlUGFja2FnZTogPGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiB0aGUgcGFja2FnZXMgdGhhdCBjb250YWluIHlvdXIgQE9wZW5BUElEZWZpbml0aW9uIGFubm90YXRlZCByZXNvdXJjZXM+CmBgYAoKKiBJbiB5b3VyIEFwcGxpY2F0aW9uIGNsYXNzOgoKYGBgamF2YQpAT3ZlcnJpZGUKcHVibGljIHZvaWQgaW5pdGlhbGl6ZShCb290c3RyYXA8WW91ckNvbmZpZ3VyYXRpb24+IGJvb3RzdHJhcCkgewogICAgYm9vdHN0cmFwLmFkZEJ1bmRsZShuZXcgU3dhZ2dlckJ1bmRsZTxZb3VyQ29uZmlndXJhdGlvbj4oKSB7CiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgcHJvdGVjdGVkIFN3YWdnZXJCdW5kbGVDb25maWd1cmF0aW9uIGdldFN3YWdnZXJCdW5kbGVDb25maWd1cmF0aW9uKFlvdXJDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIHsKICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24uc3dhZ2dlckJ1bmRsZUNvbmZpZ3VyYXRpb247CiAgICAgICAgfQogICAgfSk7Cn0KYGBgCgoqIEFzIHVzdWFsLCBhZGQgU3dhZ2dlciBhbm5vdGF0aW9ucyB0byB5b3VyIHJlc291cmNlIGNsYXNzZXMgYW5kIG1ldGhvZHMKCiogT3BlbiBhIGJyb3dzZXIgYW5kIGhpdCBgaHR0cDovL2xvY2FsaG9zdDo8eW91cl9wb3J0Pi9zd2FnZ2VyYAoKKiBUbyBzZWUgYWxsIHRoZSBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIFN3YWdnZXIgVUkgc2VlIFtTd2FnZ2VyQnVuZGxlQ29uZmlndXJhdGlvbi5qYXZhXShzcmMvbWFpbi9qYXZhL2luL3ZlY3RvcnByby9kcm9wd2l6YXJkL3N3YWdnZXIvU3dhZ2dlckJ1bmRsZUNvbmZpZ3VyYXRpb24uamF2YSkK readmeEtag: '"9786540f7a98662edae727d7ff0fb7d78f8d55d0"' readmeLastModified: Mon, 28 Aug 2023 19:33:28 GMT repositoryId: 384696629 description: Dropwizard Swagger 2.x and OpenAPI 3.x Integration created: '2021-07-10T12:49:31Z' updated: '2023-07-06T10:34:44Z' language: Java archived: false stars: 4 watchers: 3 forks: 4 owner: Vect0rPro logo: https://avatars.githubusercontent.com/u/87179257?v=4 license: Apache-2.0 repoEtag: '"619e59862cc120622a58e577cea69272ca48ad226f2084a89a7069c8cf51b6fd"' repoLastModified: Thu, 06 Jul 2023 10:34:44 GMT foundInMaster: true category: SDK id: 9d2d990aafc59b92f9c7c2b92c20f519 - source: openapi3 tags repository: https://github.com/felixthec/openapi-fastapi-client v3: true id: 4c04f44b7d6d0aba1b972175daf2fd27 repositoryMetadata: base64Readme: >- WyFbUHl0aG9uIDMuMTBdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcHl0aG9uLTMuMTAtYmx1ZS5zdmcpXShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy9yZWxlYXNlL3B5dGhvbi0zMTAwLykKIVtQeXRob24gYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9GZWxpeFRoZUMvb3BlbmFwaS1mYXN0YXBpLWNsaWVudC93b3JrZmxvd3MvUHl0aG9uJTIwYXBwbGljYXRpb24vYmFkZ2Uuc3ZnKQpbIVtDb2RlIHN0eWxlOiBibGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9wc2YvYmxhY2spClshW0ltcG9ydHM6IGlzb3J0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLyUyMGltcG9ydHMtaXNvcnQtJTIzMTY3NGIxP3N0eWxlPWZsYXQmbGFiZWxDb2xvcj1lZjgzMzYpXShodHRwczovL3B5Y3FhLmdpdGh1Yi5pby9pc29ydC8pCgoKIyBPcGVuYXBpIHlhbWwgZmlsZSB0byBGYXN0QXBpIENsaWVudApBIGNvbW1hbmRsaW5lIHRvb2wgdG8gZ2VuZXJhdGUgQXBpIGBmdW5jdGlvbnNgIGFuZCB0aGVpciByZXF1aXJlZCBgcHlkYW50aWMgTW9kZWxgIFNjaGVtYSBmcm9tIGFuIGBvcGVuYXBpLnlhbWxgIG9mIHZlcnNpb24gMwoKIyMgSW5zdGFsbGF0aW9uCmBgYHNoZWxsCnBpcCBpbnN0YWxsIG9wZW5hcGktZmFzdGFwaS1jbGllbnQKYGBgCgojIyBVc2FnZQpgYGBzaGVsbApvcGVuYXBpLWZhc3RhcGktY2xpZW50IC4vb3BlbmFwaS55YW1sIC4vbXktY2xpZW50CmBgYApgYGBzaGVsbApvcGVuYXBpLWZhc3RhcGktY2xpZW50IC4vb3BlbmFwaS55YW1sIC4vbXktY2xpZW50IC0tYXN5bmMKYGBgCi0gdGhpcyB3aWxsIGdlbmVyYXRlIHVuZGVyIHRoZSBmb2xkZXIgYG15LWNsaWVudGAgZm9sbG93aW5nIGZpbGVzCiAgLSBgX19pbml0X18ucHlgIGlmIG5vdCBleGlzdHMKICAtIGBhcGkucHlgIGhlcmUgYXJlIGFsbCBmdW5jdGlvbiBjYWxscyB0byB0aGUgZXh0ZXJuYWwgYXBpCiAgLSBgc2NoZW1hLnB5YCBoZXJlIGFyZSBhbGwgcHlkYW50aWMgTW9kZWxzCiAgCgojIyBBcmd1bWVudHMKLSBgT1BFTkFQSV9GSUxFICBbcmVxdWlyZWRdYAotIGBPVVRQVVRfUEFUSCAgIFtyZXF1aXJlZF1gCgojIyBPcHRpb25zCi0gYC0tc3luY2AgIEFsbCByZXF1ZXN0cyB0byB0aGUgY2xpZW50IGFyZSBzeW5jaHJvbm91cy4gIF9kZWZhdWx0XwotIGAtLWFzeW5jYCBBbGwgcmVxdWVzdHMgdG8gdGhlIGNsaWVudCBhcmUgYXN5bmNocm9ub3VzIHdpdGggX19haW9odHRwX18uCgojIyBIZWxwCmBgYHNoZWxsCm9wZW5hcGktZmFzdGFwaS1jbGllbnQgLS1oZWxwCmBgYAoKIVtdKG9wZW5hcGktZmFzdGFwaS1jbGllbnRfbG9uZy5naWYpCg== readmeEtag: '"1a0cd96f4b2b1ce9a055f572f6f62050b5275e64"' readmeLastModified: Sat, 19 Nov 2022 13:52:19 GMT repositoryId: 564465979 description: A tool to autogenerate FastApi Clients from given openapi.yaml. created: '2022-11-10T19:27:40Z' updated: '2024-02-03T04:24:59Z' language: Python archived: false stars: 4 watchers: 2 forks: 1 owner: FelixTheC logo: https://avatars.githubusercontent.com/u/15969581?v=4 license: MIT repoEtag: '"6eda9e1bb579989389891bec507a2995fc7c3c0cafc66017bffd21a3808a689c"' repoLastModified: Sat, 03 Feb 2024 04:24:59 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/stefh/ramltoopenapiconverter v3: true repositoryMetadata: base64Readme: >- IyBSYW1sVG9PcGVuQXBpQ29udmVydGVyDQpDb252ZXJ0cyBhIFJBTUwgdG8gT3BlbiBBUEkgU3BlY2lmaWNhdGlvbg0KDQpbIVtOdUdldDogUmFtbFRvT3BlbkFwaUNvbnZlcnRlcl0oaHR0cHM6Ly9idWlsZHN0YXRzLmluZm8vbnVnZXQvUmFtbFRvT3BlbkFwaUNvbnZlcnRlcildKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SYW1sVG9PcGVuQXBpQ29udmVydGVyKQ0KDQojIyBVc2FnZQ0KDQojIyMgSW5zdGFsbCB0aGUgTnVHZXQNCg0KYGBgDQpQTT4gSW5zdGFsbC1QYWNrYWdlIFJhbWxUb09wZW5BcGlDb252ZXJ0ZXINCmBgYA0KDQojIyMgQ29udmVydCBhIFJBTUwgZmlsZQ0KYGBgIGMjDQpuZXcgUmFtbENvbnZlcnRlcigpDQogIC5Db252ZXJ0VG9GaWxlKCJNZWRpYVdpa2kucmFtbCIsICJNZWRpYVdpa2kuanNvbiIsIE9wZW5BcGlTcGVjVmVyc2lvbi5PcGVuQXBpM18wLCBPcGVuQXBpRm9ybWF0Lkpzb24pOw0KICAgICAgICANCmBgYA0KDQojIyMgTGltaXRzDQotIC4uLg0KDQojIyBEZXRhaWxzDQpUaGlzIHByb2plY3QgdXNlcyB0aGUgZm9sbG93aW5nIHRvb2xzOg0KLSBTaGFycFlhbWwgLS0+IHRvIHJlYWQgdGhlIFJBTUwgKGFzIFlBTUwpDQotIFlhbWxEb3ROZXQgLS0+IHRvIHJlYWQgdGhlIFJBTUwgKGFzIFlBTUwgb3IgSlNPTikNCi0gTWljcm9zb2Z0Lk9wZW5BcGkgLS0+IHRvIHByb2Nlc3MgdGhlIE9wZW4gQVBJIE1vZGVsIGFuZCBjb252ZXJ0IHRoZSBtb2RlbCB0byB0aGUgb3V0cHV0IGZpbGUNCg0K readmeEtag: '"0a421af6e0544d9add5cc0f51a48f2b58a0b6e4c"' readmeLastModified: Fri, 04 Feb 2022 20:12:57 GMT repositoryId: 237777850 description: Converts a RAML to Open API Specification (native C# dotnet) created: '2020-02-02T13:47:59Z' updated: '2021-12-11T16:53:50Z' language: C# archived: false stars: 4 watchers: 4 forks: 3 owner: StefH logo: https://avatars.githubusercontent.com/u/249938?v=4 license: MIT repoEtag: '"98cb30a78e2a871218447392cadfd787da3ae7837e1d29994b600b172e906356"' repoLastModified: Sat, 11 Dec 2021 16:53:50 GMT foundInMaster: true category: Parsers id: fc6d82a523fbcf983a51caa78aa81344 - source: openapi3 tags repository: https://github.com/leo-lem/studentscrollapi v3: true id: 9d85e4b5c6f3f2586fc775819a7ac60f repositoryMetadata: base64Readme: >- IyBTdHVkZW50U2Nyb2xsIEFQSQoKWyFbQ0kvQ0RdKGh0dHBzOi8vZ2l0aHViLmNvbS9MZW8tTGVtL1N0dWRlbnRTY3JvbGxBUEkvYWN0aW9ucy93b3JrZmxvd3MvY2ljZC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL0xlby1MZW0vU3R1ZGVudFNjcm9sbEFQSS9hY3Rpb25zL3dvcmtmbG93cy9jaWNkLnltbCkKClRoaXMgaXMgdGhlIFJFU1QgQVBJIGJlaGluZCB0aGUgU3R1ZGVudFNjcm9sbCBhcHAgKFtPcGVuQVBJIHNwZWNzXShodHRwczovL3N0dWRlbnRzY3JvbGwubmV0L2FwaS92MS9kb2NzL3N3YWdnZXIpKS4KCkhlcmUgd2UgcHJvdmlkZSBvdXIgW1N0dWRlbnRTY3JvbGwgd2ViIGFwcF0oaHR0cHM6Ly9naXRodWIuY29tL2xlby1sZW0vc3R1ZGVudHNjcm9sbGFwcCkgd2l0aCBpdHMgZnVuY3Rpb25hbGl0eS4KClsvYXBpL3YyXShodHRwczovL3N0dWRlbnRzY3JvbGwubmV0L2FwaS92Mi9kb2NzL3N3YWdnZXItdWkvaW5kZXguaHRtbCkgVGhlIFJFU1QgQVBJICh2MikgaXMgZGVzaWduZWQgdG8gYmUgYXMgc2ltcGxlIGFuZCBpbnR1aXRpdmUgYXMgcG9zc2libGUsIHdoaWxzdCBwcm92aWRpbmcgYWxsIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHk6CgotIFsvYWNjb3VudF0oaHR0cHM6Ly9zdHVkZW50c2Nyb2xsLm5ldC9hcGkvdjIvZG9jcy9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwjL2FjY291bnQpIFRoaXMgZW5kcG9pbnQgZGVzY3JpYmVzIG91ciBhY2NvdW50IGZlYXR1cmUuIEhlcmUgd2UgaGFuZGxlIGV2ZXJ5dGhpbmcgZnJvbSBzaWduIHVwLCB0aHJvdWdoIHNpZ24gaW4sIHRvIHVwZGF0aW5nIGNyZWRlbnRpYWxzIChmb3Jnb3R0ZW4gcGFzc3dvcmQsIGV0Yy4pIGFuZCBkZWxldGluZyB5b3VyIGFjY291bnQuCgogIC0gWy9zZXR0aW5nc10oaHR0cHM6Ly9zdHVkZW50c2Nyb2xsLm5ldC9hcGkvdjIvZG9jcy9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwjL3NldHRpbmdzKSBGdXJ0aGVybW9yZSwgeW91IGNhbiBpbmRpdmlkdWFsaXNlIHlvdXIgYWNjb3VudCBieSB1cGRhdGluZyB5b3VyIHNldHRpbmdzLgoKLSBbL3N0dWRlbnRzXShodHRwczovL3N0dWRlbnRzY3JvbGwubmV0L2FwaS92Mi9kb2NzL3N3YWdnZXItdWkvaW5kZXguaHRtbCMvc3R1ZGVudHMpIFRoaXMgbWFqb3IgZW5kcG9pbnQgZGVzY3JpYmVzIG91ciBwcm9maWxlIGZlYXR1cmUuIEhlcmUgeW91IGNhbiB1cGRhdGUgeW91ciBpbmRpdmlkdWFsIHByb2ZpbGUsIHNlYXJjaCBmb3Igb3RoZXIgc3R1ZGVudCdzIHByb2ZpbGVzLgoKICAtIFsvZm9sbG93ZXJzXShodHRwczovL3N0dWRlbnRzY3JvbGwubmV0L2FwaS92Mi9kb2NzL3N3YWdnZXItdWkvaW5kZXguaHRtbCMvc3R1ZGVudHMpIFdlIGhhdmUgYWxzbyBlbWJlZGRlZCB0aGUgZm9sbG93aW5nIG1lY2hhbmljIGJlbmVhdGggdGhpcyBlbmRwb2ludC4gSGVyZSB5b3UgY2FuIGZvbGxvdyBhbmQgdW5mb2xsb3cgb3RoZXIgc3R1ZGVudHMuCgotIFsvcG9zdHNdKGh0dHBzOi8vc3R1ZGVudHNjcm9sbC5uZXQvYXBpL3YyL2RvY3Mvc3dhZ2dlci11aS9pbmRleC5odG1sIy9wb3N0cykgT24gdGhlIHBvc3RzIGVuZHBvaW50LCB5b3UgY2FuLCB3ZWxsLCBwb3N0IHdoYXQncyBvbiB5b3VyIG1pbmQuIEFMc28sIHlvdSBjYW4gc2VhcmNoIGZvciBwb3N0cyBhbmQgdXBkYXRlLCBvciBkZWxldGUsIHlvdXIgcG9zdHMuCgotIFsvY2hhdHNdKGh0dHBzOi8vc3R1ZGVudHNjcm9sbC5uZXQvYXBpL3YyL2RvY3Mvc3dhZ2dlci11aS9pbmRleC5odG1sIy9jaGF0cykgT3VyIGNoYXRzIGZlYXR1cmUgZW5hYmxlcyB5b3UgdG8gY3JlYXRlLCBmaW5kLCBhbmQgZGVsZXRlIGNoYXRzLgoKICAtIFsvbWVzc2FnZXNdKGh0dHBzOi8vc3R1ZGVudHNjcm9sbC5uZXQvYXBpL3YyL2RvY3Mvc3dhZ2dlci11aS9pbmRleC5odG1sIy9tZXNzYWdlcykgVGhlIGVtYmVkZGVkIG1lc3NhZ2VzIGVuZHBvaW50IGNvbnRhaW5zIHRoZSBtZXNzYWdlcyBpbiBhIGdpdmVuIGNoYXQuIEhlcmUgeW91IGNhbiBzZW5kIG1lc3NhZ2VzLCB1cGRhdGUgb3IgZGVsZXRlIHRoZW0sIGFzIHdlbGwgYXMgZmluZCBhIGdpdmVuIG1lc3NhZ2UuCgotIFsvbWFwc10oaHR0cHM6Ly9zdHVkZW50c2Nyb2xsLm5ldC9hcGkvdjIvZG9jcy9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwjL21hcHMpIFRoaXMgbWlub3IgZW5kcG9pbnQgcmV0cmlldmVzIHRoZSBHb29nbGUgTWFwcyBBUEkga2V5IGZyb20gb3VyIGJhY2tlbmQuCgojIEJ1aWxkaW5nLCB0ZXN0aW5nLCBhbmQgcnVubmluZyB0aGUgU3R1ZGVudFNjcm9sbEFQSQoKVGhlIFN0dWRlbnRTY3JvbGxBUEkgdXNlcyBNYXZlbiBhcyBkZXBlbmRlbmN5IG1hbmFnZXIgYW5kIGJ1aWxkIHRvb2wuCgpTaW5jZSB0aGUgYmVnaW5uaW5nLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB3ZSBydW4gdGhpbmdzLiBXZSBub3cgaW5jbHVkZSBhIE1hdmVuIHdyYXBwZXIuIFdpdGggdGhpcyB5b3UgY2FuIHRyaWdnZXIgYW55IG9mIHRoZSBbTWF2ZW4gbGlmZWN5Y2xlIHBoYXNlc10oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9pbnRyb2R1Y3Rpb24vaW50cm9kdWN0aW9uLXRvLXRoZS1saWZlY3ljbGUuaHRtbCkgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGZyb20gdGhlIHJlcG9zaXRvcnkgcm9vdDoKCmBgYGJhc2gKPiAlIC4vbXZudyBbY29tcGlsZSB8IHRlc3QgfCBwYWNrYWdlIHwgaW5zdGFsbCB8IC4uLl0gIyBVbml4CiMgb3IKPiAlIC4vbXZudy5jbWQgW2NvbXBpbGUgfCB0ZXN0IHwgcGFja2FnZSB8IGluc3RhbGwgfCAuLi5dICMgV2luZG93cwpgYGAKCkFkZGl0aW9uYWxseSwgU3ByaW5nIEJvb3QgcHJvdmlkZXMgYSBjdXN0b20gcnVuIGNvbW1hbmQgZm9yIHRyeWluZyB0aGUgcHJvamVjdCBvdXQgb24geW91ciBsb2NhbCBtYWNoaW5lOgoKYGBgYmFzaAo+ICUgLi9tdm53IHNwcmluZy1ib290OnJ1biAjIFVuaXgKIyBvcgo+ICUgLi9tdm53LmNtZCBzcHJpbmctYm9vdDpydW4gIyBXaW5kb3dzCmBgYAo= readmeEtag: '"883d57535f65fcde1a97f6fce6bdaac3b5b9d6ae"' readmeLastModified: Sat, 03 Jun 2023 23:20:48 GMT repositoryId: 613641216 description: This is the REST API behind StudentScroll. created: '2023-03-14T01:14:36Z' updated: '2024-04-21T06:42:20Z' language: Java archived: true stars: 4 watchers: 3 forks: 0 owner: Leo-Lem logo: https://avatars.githubusercontent.com/u/81310398?v=4 license: MIT repoEtag: '"720acf6f518610eb26ad87b532534015e132ba03e9ad368166492f7c4427a0b7"' repoLastModified: Sun, 21 Apr 2024 06:42:20 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/matthewtrask/disapi v3: true repositoryMetadata: base64Readme: >- IyMgRGlzQVBJCgojIyMgVGhpcyBpcyBhIFdJUCwgdXNlIGF0IHlvdXIgb3duIHJpc2suCgpBIFJFU1RmdWwgT3BlbkFQSSBzcGVjIEFQSSBhcm91bmQgdGhlIFdhbHQgRGlzbmV5IFdvcmxkIFJlc29ydCAKCiMjIyMgVG8gc2VlIFJlRG9jOiAKYGBgCnlhcm4gcnVuIHNwZWNjeSBzZXJ2ZSBzcGVjcy9vcGVuYXBpLnltbApgYGAKCkFuZCB0aGVuIGdvIHRvIGxvY2FsaG9zdDo1MDAwIHRvIHNlZSB0aGUgZG9jdW1lbnRhdGlvbgoKIyMjIyBFbmRwb2ludHMKCldvcmsgd2l0aCB0aGUgUGFya3MgUmVzb3VyY2UgQ29sbGVjdGlvbgpgYGBwaHAKICAgIEdFVC9QT1NUIC9wYXJrcwpgYGAKYGBgcGhwCiAgICBHRVQvUFVUL0RFTEVURSAvcGFya3Mve2lkfQpgYGAKCldvcmsgd2l0aCB0aGUgUmlkZXMgUmVzb3VyY2UgQ29sbGVjdGlvbgpgYGBwaHAKICAgIEdFVC9QT1NUIC9yaWRlcwpgYGAKYGBgcGhwCiAgICBHRVQvUFVUL0RFTEVURSByaWRlcy97aWR9CmBgYAoKV29yayB3aXRoIHRoZSBSZXN0YXVyYW50cyBSZXNvdXJjZSBDb2xsZWN0aW9uCmBgYHBocAogICAgR0VUL1BPU1QgL3Jlc3RhdXJhbnRzCmBgYApgYGBwaHAKICAgIEdFVC9QVVQvREVMRVRFIC9yZXN0YXVyYW50cwpgYGAKCldvcmsgd2l0aCB0aGUgUmVzb3J0cyBSZXNvdXJjZSBDb2xsZWN0aW9uCmBgYHBocAogICAgR0VUL1BPU1QgL3Jlc29ydHMKYGBgCmBgYHBocAogICAgR0VUL1BVVC9ERUxFVEUgL3Jlc3RhdXJhbnRzL3tpZH0KYGBgCgojIyMjIFJlcXVpcmVtZW50cwoKKiBDb21wb3NlcgoqIFlhcm4KCiMjIyMgSW5zdGFsbGF0aW9uCgpJZiB5b3Ugd2FudCB0byBpbnN0YWxsIGEgbG9jYWwgY29weSBvZiB0aGlzIHByb2plY3QKCiogQ2xvbmUgdG8geW91ciBsb2NhbAoqIENkIHRvIHByb2plY3QsIGFuZCBjb21wb3NlciBpbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMKKiBUbyB1c2UgSG9tZXN0ZWFkLCBlZGl0IHRoZSBwYXRoIGluIEhvbWVzdGVhZC55YW1sIHRvIHJlZmxlY3QgeW91ciBsb2NhbCBhbmQ6IApgYGBwaHAKJCAuL3ZlbmRvci9iaW4vaG9tZXN0ZWFkIG1ha2UgJiYgdmFncmFudCB1cApgYGAKKiBFZGl0IHlvdXIgL2V0Yy9ob3N0cyAobm90IHN1cmUgYWJvdXQgd2luZG93cykgYW5kIGFkZCBgYGAxOTIuMTY4LjEwLjEwIGhvbWVzdGVhZC50ZXN0YGBgIG9yIHdoYXRldmVyIHlvdSB3YW50IGl0IHRvIGJlLgoqIGBgYHZhZ3JhbnQgc3NoYGBgIGFuZCBjZCB0byByb290IG9mIHByb2plY3QKKiBJbnN0YWxsIEpTIGRlcGVuZGVuY2llcyB3aXRoIFlhcm4gKG5lZWRlZCBmb3IgU3BlY2N5KQoqIE1pZ3JhdGUgYW5kIFNlZWQgdGhlIERhdGFiYXNlIHdpdGggYGBgcGhwIGFydGlzYW4gbWlncmF0ZSAmJiBwaHAgYXJ0aXNhbiBkYjpzZWVkYGBgCiogQWx0ZXJuYXRpdmVseSwgeW91IGNvdWxkIGltcG9ydCB0aGUgZGF0YS5zcWwgZmlsZSBpbnRvIHlvdXIgbG9jYWwgbXlzcWwgaW5zdGFuY2UKKiBPcGVuIFBvc3RtYW4gYW5kIGhpdCB0aGUgZW5kcG9pbnRzIGFib3ZlIHRvIGVuc3VyZSBpdCB3b3Jrcy4gCgpJZiB5b3Ugc2VlIGFuIGlzc3VlLCBoaXQgbWUgdXAgb24gdHdpdHRlciBAbWF0dGhld3RyYXNr readmeEtag: '"bfc1c5ddebf302bf594543e315688fb420a70997"' readmeLastModified: Thu, 28 Mar 2019 02:05:42 GMT repositoryId: 144517308 description: An API around Walt Disney World Resort. created: '2018-08-13T02:02:16Z' updated: '2019-03-28T02:05:45Z' language: PHP archived: false stars: 4 watchers: 2 forks: 1 owner: matthewtrask logo: https://avatars.githubusercontent.com/u/4731244?v=4 repoEtag: '"3650cf2f5961876da5d5b5c82932d1dfbd264ec2ef7049a1d86174fa2df121b0"' repoLastModified: Thu, 28 Mar 2019 02:05:45 GMT foundInMaster: true category: - Testing - Server Implementations id: 95241dd18a6bfddc4e65c4c7becfc3bf - source: openapi3 tags repository: https://github.com/arno-di-loreto/api-specifications-documentation-as-data v3: true id: 944858e36a88377fd62fd15e2e48e808 repositoryMetadata: base64Readme: >- IyBBUEkgU3BlY2lmaWNhdGlvbiBEb2N1bWVudGF0aW9uIGFzIERhdGEgUHJvamVjdAoKUmVzZWFyY2gsIHRlc3RzIGFuZCBQT0NzIHRvIFtleHRyYWN0XShodHRwczovL2dpdGh1Yi5jb20vYXJuby1kaS1sb3JldG8vb3BlbmFwaS1zcGVjaWZpY2F0aW9uLWRvY3VtZW50YXRpb24tYXMtZGF0YS90cmVlL21haW4vb2FzLW1kLXBhcnNlci1weXRob24pIHNvbWUgW2RhdGFdKHNwZWNpZmljYXRpb25zLWRhdGEpIGZyb20gdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBhbmQgQXN5bmNBUEkgU3BlY2lmaWNhdGlvbiBbZG9jdW1lbnRhdGlvbl0oc3BlY2lmaWNhdGlvbnMpIGFuZCBbdmlzdWFsaXplXShvYXMtZGF0YS12aWV3ZXItd2ViLWNvbXBvbmVudC8pIGl0LgpfV2FybmluZzogQWxsIHRoaXMgaXMgZXhwZXJpbWVudGFsLl8KCkNoZWNrIHRoZSBbc2NyaXB0c10oc2NyaXB0cykgZm9sZGVyIHRvIGluc3RhbGwgYW5kIHJ1biBlbGVtZW50cy4= readmeEtag: '"84bcee5a8d76a2e524f8985fd4d92b51ccba82a6"' readmeLastModified: Thu, 20 Apr 2023 15:44:52 GMT repositoryId: 544376926 description: >- Extracting and visualizing data from OpenAPI and AsyncAPI Specifications documentation (warning: experimental) created: '2022-10-02T10:21:52Z' updated: '2024-08-02T16:44:33Z' language: Mermaid archived: false stars: 4 watchers: 2 forks: 1 owner: arno-di-loreto logo: https://avatars.githubusercontent.com/u/10104551?v=4 repoEtag: '"a344926702021accd3da43d3570921881918ce173b2fb1d8c3c3d28ffd07c0cf"' repoLastModified: Fri, 02 Aug 2024 16:44:33 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/quetz-al/quetzal v3: true repositoryMetadata: base64Readme: >- Li4gY2xhc3M6OiBjZW50ZXIKCiAgICAuLiBpbWFnZTo6IGRvY3Mvc291cmNlL19zdGF0aWMvbG9nb19oLnBuZwogICAgICAgOmhlaWdodDogMTAwcHgKICAgICAgIDphbHQ6IFF1ZXR6YWwgbG9nbwoKICAgIFF1ZXR6YWwg4oCUIEEgUkVTVGZ1bCBBUEkgZm9yIGRhdGEgYW5kIG1ldGFkYXRhIG1hbmFnZW1lbnQuCgouLiBiYWRnZXMgd2lsbCBnbyBoZXJlCgoKUXVldHphbAo9PT09PT09CgouLiBhYnN0cmFjdF9zdGFydAoKUXVldHphbCAoc2hvcnQgZm9yIFF1ZXR6YWxjw7NhdGwsIHRoZSBmZWF0aGVyZWQgc25ha2UpLCBhIFJFU1RmdWwgQVBJIGRlc2lnbmVkCnRvIHN0b3JlIGRhdGEgZmlsZXMgYW5kIG1hbmFnZSB0aGVpciBhc3NvY2lhdGVkIG1ldGFkYXRhLgoKUXVldHphbCBpcyBhbiBhcHBsaWNhdGlvbiB0aGF0IHVzZXMgQ2xvdWQgc3RvcmFnZSBwcm92aWRlcnMgYW5kIG5vbi1zdHJ1Y3R1cmVkCmRhdGFiYXNlcyB0byBoZWxwIHJlc2VhcmNoZXJzIG9yZ2FuaXplIHRoZWlyIGRhdGEgYW5kIG1ldGFkYXRhIGZpbGVzLgpJdHMgbWFpbiBmZWF0dXJlIGlzIHRvIHByb3ZpZGUgYSByZW1vdGUsIHZpcnR1YWxseSBpbmZpbml0ZSwgc3RvcmFnZSBsb2NhdGlvbgpmb3IgcmVzZWFyY2hlcnMnIGRhdGEsIHdoaWxlIHByb3ZpZGluZyBhbiBBUEkgdG8gZW5jYXBzdWxhdGUgZGF0YS9tZXRhZGF0YQpvcGVyYXRpb25zLiBJbiBvdGhlciB3b3JkcywgcmVzZWFyY2hlcnMgYW5kIHRlYW1zIGNhbiB3b3JrIHdpdGggbGFyZ2UgYW1vdW50cwpvZiBkYXRhIHRoYXQgd291bGQgYmUgdG9vIGxhcmdlIGZvciBsb2NhbCBhbmFseXNlcywgdXNpbmcgUXVldHphbCB0byBzaW1wbGlmeQp0aGUgY29tcGxleGl0eSBvZiBDbG91ZCByZXNvdXJjZSBtYW5hZ2VtZW50LgoKUXVldHphbCdzIG1pZC10ZXJtIHJvYWRtYXAgaXMgdG8gaW50ZWdyYXRlIHdpdGggbGFyZ2UgcHVibGljIHBoeXNpb2xvZ2ljYWwKc2lnbmFsIGRhdGFiYXNlcyBsaWtlIFBoeXNpb05ldF8sIE1JUERCXywgVFVIXywgYW1vbmcgb3RoZXJzLiBUaGEgbWFpbiBvYmplY3RpdmUKaXMgdG8gcHJvdmlkZSByZXNlYXJjaGVycyBhbmQgZGF0YSBzY2llbnRpc3RzIGEgdW5pcXVlIGJhbmsgb2YgZmlsZSBkYXRhc2V0cwp3aXRoIGEgdW5pZmllZCBBUEkgdG8gYWNjZXNzIHRoZSBkYXRhIGFuZCB0byBlbmNhcHN1bGF0ZSB0aGUgaGV0ZXJvbmVnZWl0eSBvZgp0aGVzZSBkYXRhc2V0cy4KCi4uIF9QaHlzaW9OZXQ6IGh0dHBzOi8vcGh5c2lvbmV0Lm9yZy8KLi4gX01JUERCOiBodHRwOi8vZmNvbl8xMDAwLnByb2plY3RzLm5pdHJjLm9yZy9pbmRpL2NtaV9lZWcvCi4uIF9UVUg6IGh0dHBzOi8vd3d3LmlzaXAucGljb25lcHJlc3MuY29tL3Byb2plY3RzL3R1aF9lZWcvaHRtbC9vdmVydmlldy5zaHRtbAoKRmVhdHVyZXMKLS0tLS0tLS0KClRoZXJlIGFyZSB0d28gc2NlbmFyaW9zIHdoZXJlIFF1ZXR6YWwgd2FzIGRlc2lnbmVkIHRvIGhlbHA6CgoqIEltYWdpbmUgeW91IHdhbnQgdG8gYXBwbHkgYSBkYXRhIHByb2Nlc3NpbmcgcGlwZWxpbmUgdG8gYSBsYXJnZSBkYXRhc2V0LgogIFRoZXJlIGFyZSBzZXZlcmFsIHNvbHV0aW9ucyBvbiBob3cgdG8gZXhlY3V0ZSBhbmQgcGFyYWxsZWxpemUgeW91ciBjb2RlLCBidXQKICAqd2hlcmUgaXMgdGhlIGRhdGE/KiBNb3Jlb3ZlciwgaW1hZ2luZSB0aGF0IHlvdSB3YW50IHRvIGRvIGEgdHJhbnN2ZXJzZSBzdHVkeToKICBIb3cgZG8geW91IG1hbmFnZSB0aGUgZGlmZmVyZW50IHNvdXJjZXM/IEhvdyB0byBkb3dubG9hZCB0aGVtPwoKICBRdWV0emFsIHByb3ZpZGVzIGEgc2luZ2xlIGRhdGEgc291cmNlIHdpdGggYSBzaW1wbGUgQVBJIHRoYXQgd2lsbCBsZXQgeW91CiAgZGVmaW5lIGVhc2lseSB0aGUgc2NvcGUgb2YgeW91ciBzdHVkeSBhbmQsIHdpdGggYSBicmllZiBQeXRob24gY29kZSB0aGF0CiAgdXNlcyBgUXVldHphbCBjbGllbnQgPGh0dHBzOi8vZ2l0aHViLmNvbS9xdWV0ei1hbC9xdWV0emFsLWNsaWVudD5gXywgeW91IHdpbGwKICBiZSBhYmxlIHRvIGRvd25sb2FkIHlvdXIgZGF0YXNldC4KCiogTGV0J3Mgc2F5IHRoYXQgeW91IGFyZSBwcmVwYXJpbmcgYSBuZXcgc3R1ZHkgaW1wbHlpbmcgc29tZSBkYXRhIGNvbGxlY3Rpb24KICBwcm90b2NvbC4gWW91IGNvdWxkIGRlZmluZSBhIHByb2NlZHVyZSB3aGVyZSB0aGUgZGF0YSBvcGVyYXRvcnMgb3IgdGVjaG5pY2lhbnMKICB0YWtlIGNhcmUgdG8gY29weSB0aGUgZGF0YSBmaWxlcyBpbiBhIGRpc2ssIEdvb2dsZSBEcml2ZSBvciBEcm9wYm94LCBhbG9uZwogIHdpdGggdGhlIG5vdGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHNlc3Npb24sIGxpa2Ugc3ViamVjdCBzdHVkeSBpZGVudGlmaWVyLAogIGRhdGUsIGFnZSwgdGVtcGVyYXR1cmUsIGV0Yy4gRG9pbmcgdGhpcyBtYW51YWxseSB3b3VsZCBiZSBlcnJvci1wcm9uZS4KICBNb3Jlb3ZlciwgdGhlIHN0cnVjdHVyZSBvZiB0aGVzZSBub3RlcyAoaS5lLiB0aGUgbWV0YWRhdGEpIG1heSBldm9sdmUgcXVpY2tseSwKICBzbyB5b3UgZWl0aGVyIHNhdmUgdGhlbSBhcyBtYW51YWwgbm90ZXMsIHRleHQgZmlsZXMsIG9yIHNvbWUgZGF0YWJhc2UgdGhhdAogIGdpdmVzIHlvdSB0aGUgZmxleGliaWxpdHkgdG8gcXVpY2tseSBhZGFwdCBpdHMgc3RydWN0cmUuCgogIFVzaW5nIHRoZSBRdWV0emFsIEFQSSwgeW91IGF1dG9tYXRlIHRoZSB1cGxvYWQgYW5kIHNhZmUgc3RvcmFnZSBvZiB0aGUgc3R1ZHkKICBmaWxlcywgYXNzb2NpYXRlIHRoZSBtZXRhZGF0YSBvZiB0aGVzZSBmaWxlcyB3aGlsZSBoYXZpbmcgdGhlIGxpYmVydHkgdG8gc2V0CiAgYW5kIG1vZGlmeSB0aGUgbWV0YWRhdGEgc3RydWN0dXJlIGFzIHlvdSBzZWUgZml0LgoKCkluIGJyaWVmLCBRdWV0emFsIG9mZmVycyB0aGUgZm9sbG93aW5nIG1haW4gZmVhdHVyZXM6CgoqICoqU3RvcmFnZSoqIG9mIGRhdGEgZmlsZXMsIGJhc2VkIG9uIGNsb3VkIHN0b3JhZ2UgcHJvdmlkZXJzLCB3aGljaCBiZW5lZml0cwogIGZyb20gYWxsIG9mIHRoZSBmZWF0dXJlcyBmcm9tIHRoZSBwcm92aWRlciwgc3VjaCBhcyB2aXJ0dWFsbHkgaW5maW5pdGUKICBzdG9yYWdlIHNpemUuCiogKipVbnN0cnVjdHVyZWQgbWV0YWRhdGEqKiBhc3NvY2lhdGVkIHRvIGVhY2ggZmlsZSouIFF1ZXR6YWwgZG9lcyBub3QgZm9yY2UKICB0aGUgdXNlciB0byBvcmdhbml6ZSB5b3VyIG1ldGFkYXRhIGluIGEgcGFydGljdWxhciB3YXksIGl0IGxldHMgdGhlIHVzZXIga2VlcAogIHdoYXRldmVyIHN0cnVjdHVyZSB0aGV5IHByZWZlci4KKiAqKlN0cnVjdHVyZWQgbWV0YWRhdGEgdmlld3MqKiBmb3IgbWV0YWRhdGEgZXhwbG9yYXRpb24gb3IgZGF0YXNldCBkZWZpbml0aW9uLgogIEJ5IGxldmVyYWdpbmcgUG9zdGdyZXMgU1FMLCB1bnN0cnVjdHVyZWQgbWV0YWRhdGEgY2FuIGJlIHF1ZXJpZWQgYXMgSlNPTgogIG9iamVjdHMsIGxldHRpbmcgdGhlIHVzZXIgZXhwcmVzcyB3aGF0IHN1YnNldCBvZiB0aGUgZGF0YSB0aGV5IHdhbnQgdG8gdXNlLgoqICoqTWV0YWRhdGEgdmVyc2lvbmluZyoqLiBDaGFuZ2VzIG9uIG1ldGFkYXRhIGFyZSB2ZXJzaW9uZWQsIHdoaWNoIGlzCiAgcGFydGljdWxhcmx5IHVzZWZ1bCB0byBlbnN1cmUgdGhhdCBhIGRhdGFzZXQgYXJlIHJlcHJvZHVjaWJsZS4KKiBFbmRwb2ludHMgYW5kIG9wZXJhdGlvbnMgZGVmaW5lZCB1c2luZyB0aGUKICBgT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uIDxodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbj5gXy4KCi4uIGFic3RyYWN0X2VuZAoKRG9jdW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tCgpRdWV0emFsJ3MgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgb24KYHJlYWR0aGVkb2NzIDxodHRwczovL3F1ZXR6YWwtYXBpLnJlYWR0aGVkb2NzLm9yZz5gXy4gVGhlIEFQSSBkb2N1bWVudGF0aW9uIGlzCmVtYmVkZGVkIGludG8gaXRzIHNwZWNpZmljYXRpb247IHRoZSBiZXN0IHdheSB0byB2aXN1YWxpemUgaXQgaXMgdGhyb3VnaCB0aGUKaXMgYWxzbyBhCmBSZURvYyBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24gc2l0ZSA8aHR0cHM6Ly9zdGFnZS5xdWV0ei5hbC9yZWRvYz5gXy4KCgoKQ29udHJpYnV0ZQotLS0tLS0tLS0tCgotIElzc3VlIFRyYWNrZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9xdWV0ei1hbC9xdWV0emFsL2lzc3VlcwotIFNvdXJjZSBDb2RlOiBodHRwczovL2dpdGh1Yi5jb20vcXVldHotYWwvcXVldHphbAoKU3VwcG9ydAotLS0tLS0tCgpJZiB5b3UgYXJlIGhhdmluZyBpc3N1ZXMsIHBsZWFzZSBsZXQgdXMga25vdyBieSBvcGVuaW5nIGFuIGlzc3VlIG9yIGJ5IHNlbmRpbmcKYW4gZW1haWwgdG8gc3VwcG9ydEBxdWV0ei5hbC4KCkxpY2Vuc2UKLS0tLS0tLQoKVGhlIHByb2plY3QgaXMgdW5kZXIgdGhlIEJTRCAzLWNsYXVzZSBsaWNlbnNlLgoKU2VlIHRoZSBgYXV0aG9ycyA8Li9BVVRIT1JTLnJzdD5gXyBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBhdXRob3JzIGFuZApjb3B5cmlnaHQgaG9sZGVycy4K readmeEtag: '"3c831224d83f4aa0c17bc8b49a787f06b1ad0002"' readmeLastModified: Tue, 24 Mar 2020 16:17:35 GMT repositoryId: 173719463 description: >- Quetzal API (short for Quetzalcoatl): a data and metadata management application created: '2019-03-04T10:00:31Z' updated: '2022-08-05T03:40:39Z' language: Python archived: false stars: 3 watchers: 1 forks: 2 owner: quetz-al logo: https://avatars.githubusercontent.com/u/47522179?v=4 license: BSD-3-Clause repoEtag: '"5ad314a8464907515927f0690e0cadabe2fe36594da1ede06ff51ce34534066d"' repoLastModified: Fri, 05 Aug 2022 03:40:39 GMT foundInMaster: true category: - Testing - Server Implementations id: 76a2a1bb0a23b588699359bf97edbc48 - source: openapi3 tags repository: https://github.com/jorgebsa/spring-demo v3: true repositoryMetadata: base64Readme: >- IyMgU3ByaW5nIGRlbW8gbWljcm9zZXJ2aWNlClshW0dpdEh1YiBXb3JrZmxvdyBTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3dvcmtmbG93L3N0YXR1cy9qb3JnZWJzYS9zcHJpbmctZGVtby9KYXZhJTIwQ0klMjB3aXRoJTIwR3JhZGxlP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vam9yZ2Vic2Evc3ByaW5nLWRlbW8vYWN0aW9ucy93b3JrZmxvd3MvZ3JhZGxlLnltbCkgClshW0NvZGVjb3ZdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY29kZWNvdi9jL2dpdGh1Yi9qb3JnZWJzYS9zcHJpbmctZGVtbz9zdHlsZT1mb3ItdGhlLWJhZGdlJnRva2VuPTU1RjNGWURWVU4pXShodHRwczovL2NvZGVjb3YuaW8vZ2gvam9yZ2Vic2Evc3ByaW5nLWRlbW8pIApbIVtHaXRIdWIgbGFzdCBjb21taXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L2pvcmdlYnNhL3NwcmluZy1kZW1vP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vam9yZ2Vic2Evc3ByaW5nLWRlbW8vY29tbWl0cy9tYWluKSAKClshW0phdmEgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9KYXZhJTIwdmVyc2lvbi0xNy1icmlnaHRncmVlbj9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9vcGVuamRrLmphdmEubmV0L3Byb2plY3RzL2pkay8xNy8pClshW1NwcmluZyBCb290IHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU3ByaW5nJTIwQm9vdCUyMHZlcnNpb24tMi42LjItYnJpZ2h0Z3JlZW4/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWJvb3QvZG9jcy8yLjYuMi9yZWZlcmVuY2UvaHRtbC9nZXR0aW5nLXN0YXJ0ZWQuaHRtbCNnZXR0aW5nLXN0YXJ0ZWQpClshW0dyYWRsZSB3cmFwcGVyIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvR3JhZGxlJTIwdmVyc2lvbi03LjMuMy1icmlnaHRncmVlbj9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvNy4zLjMvcmVsZWFzZS1ub3Rlcy5odG1sKQpbIVtNb25nb0RCIGNvbnRhaW5lciB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL01vbmdvREIlMjB2ZXJzaW9uLTUuMC40LWJyaWdodGdyZWVuP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2RvY3MubW9uZ29kYi5jb20vbWFudWFsL3JlbGVhc2Utbm90ZXMvNS4wLWNoYW5nZWxvZy8jc3RkLWxhYmVsLTUuMC40LWNoYW5nZWxvZykKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgoxLiBbSW50cm9kdWN0aW9uXSgjaW50cm9kdWN0aW9uKQoyLiBbQWJvdXQgdGhlIEFQSV0oI2Fib3V0LXRoZS1hcGkpCjMuIFtMYW5ndWFnZSBWZXJzaW9uXSgjbGFuZ3VhZ2UtdmVyc2lvbikKICAgMS4gW0pESyAxN10oI2pkay0xNykKICAgMi4gW01hbmFnaW5nIEpES3Mgd2l0aCBTREtNQU4hXSgjbWFuYWdpbmctamRrcy13aXRoLXNka21hbikKICAgMy4gW0F2YWlsYWJsZSBUb29sY2hhaW5zXSgjYXZhaWxhYmxlLXRvb2xjaGFpbnMpCjQuIFtIb3cgdG8gQnVpbGRdKCNob3ctdG8tYnVpbGQpCjUuIFtUZXN0aW5nXSgjdGVzdGluZykKICAgMS4gW1doeSBKVW5pdCA1P10oI3doeS1qdW5pdC01KQogICAyLiBbV2h5IEFzc2VydEo/XSgjd2h5LWFzc2VydGopCiAgIDMuIFtXaHkgVGVzdGNvbnRhaW5lcnM/XSgjd2h5LXRlc3Rjb250YWluZXJzKQogICA0LiBbV2hhdCBpcyBKYUNvQ28/XSgjd2hhdC1pcy1qYWNvY28pCiAgICAgIDEuIFtKYUNvQ28gbG9nZ2luZ10oI2phY29jby1sb2dnaW5nKQogICA1LiBbTXV0YXRpb24gVGVzdGluZ10oI211dGF0aW9uLXRlc3RpbmcpCiAgIDYuIFtGdXR1cmUtcHJvb2ZpbmddKCNmdXR1cmUtcHJvb2ZpbmcpCjYuIFtSZXF1aXJlZCBzZXJ2aWNlc10oI3JlcXVpcmVkLXNlcnZpY2VzKQogICAxLiBbRG9ja2VyIENvbXBvc2VdKCNkb2NrZXItY29tcG9zZSkKICAgMi4gW0tleWNsb2FrXSgja2V5Y2xvYWspCjcuIFtSdW5uaW5nIHRoZSBtaWNyb3NlcnZpY2VdKCNydW5uaW5nLXRoZS1taWNyb3NlcnZpY2UpCiAgIDEuIFtSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiB3aXRoIEdyYWRsZV0oI3J1bm5pbmctdGhlLWFwcGxpY2F0aW9uLXdpdGgtZ3JhZGxlKQogICAyLiBbQ29uc3VtaW5nIHRoZSBBUEldKCNjb25zdW1pbmctdGhlLWFwaSkKOC4gW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKCiMjIEludHJvZHVjdGlvbgoKVGhpcyBwcm9qZWN0IGlzIGFib3V0IHNob3djYXNpbmcgc29tZSBvZiB0aGUgYmVzdCBwcmFjdGljZXMgYW5kIHRlY2hub2xvZ2llcyB0aGF0IGNhbiBiZSAKdXNlZCB0byBlbnN1cmUgY29kZSBxdWFsaXR5IHdoaWxlIGRldmVsb3BpbmcgYSBtaWNyb3NlcnZpY2UgaW4gSmF2YSB3aXRoIFNwcmluZyBCb290LiAKVGhlcmVmb3JlLCB0aGUgZm9jdXMgaXNuJ3Qgb24gY3JlYXRpbmcgYSBjb21wbGV4IEFQSSBidXQgcmF0aGVyIG9uIGhvdyB0byBhY2hpZXZlIGEgaGlnaCAKY29kZSBxdWFsaXR5IHN0YW5kYXJkLCB1c2luZyBhIHZhcmlldHkgb2YgbWF0dXJlIGFuZCBmcmVlIGxpYnJhcmllcyBhbmQgdGVjaG5vbG9naWVzLgoKVGhlIHByb2plY3QgaGFzIGJlZW4gaW1wbGVtZW50ZWQgd2l0aDoKKiBMYW5ndWFnZTogSmF2YSAxNwoqIEZyYW1ld29yazogU3ByaW5nIEJvb3QgCiogRGF0YWJhc2U6IE1vbmdvREIKKiBCdWlsZCB0b29sOiBHcmFkbGUKKiBTZWN1cml0eTogU3ByaW5nIFNlY3VyaXR5ICsgS2V5Y2xvYWsKClJlbGV2YW50IHRlc3RpbmcgaW5mb3JtYXRpb24gYW5kIGxpYnJhcmllcyB3aWxsIGJlIGRlc2NyaWJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbgpvZiB0aGlzIGRvY3VtZW50LgoKSWYgeW91IGFyZSBub3QgZmFtaWxpYXIgd2l0aCBHcmFkbGUsIHRoZSBtb3N0IHJlbGV2YW50IGNvbW1hbmRzIGFuZCB0YXNrcyB3aWxsIGJlIGV4cGxhaW5lZAppbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLiBJZiB5b3UgbmVlZCBmdXJ0aGVyIGhlbHAsIGNoZWNrIGl0cyBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvNy4zLjMvdXNlcmd1aWRlL3VzZXJndWlkZS5odG1sKQpvciBleGVjdXRlIHRoZSBoZWxwIHRhc2s6CgpgYGBzaGVsbAouL2dyYWRsZXcgaGVscApgYGAKCiMjIEFib3V0IHRoZSBBUEkKClRoZSBBUEkgaXMgcmF0aGVyIHNpbXBsZTogdGhpcyBtaWNyb3NlcnZpY2UgYWxsb3dzIHVzZXJzIHRvIGtlZXAgdHJhY2sgb2YgdGhlaXIgIm5vdGVzIiwgCmFuZCBvZmZlcnMgZW5kcG9pbnRzIGZvciB0aGUgYmFzaWMgW0NSVURdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NyZWF0ZSxfcmVhZCxfdXBkYXRlX2FuZF9kZWxldGUpIApvcGVyYXRpb25zLiAKCkVuZHBvaW50cyBhcmUgc2VjdXJlZCBieSBPQXV0aDIsIHNvIGVhY2ggcmVxdWVzdCBtdXN0IGluY2x1ZGUgYSB2YWxpZCBhY2Nlc3MgdG9rZW4gdG8gYmUKcHJvY2Vzc2VkLiBUaGVzZSB0b2tlbnMgYXJlIGlzc3VlZCBieSBLZXljbG9haywgYW5kIHRoZSBpbnN0cnVjdGlvbnMgb24gaG93IHRvIG9idGFpbiB0aGVtCndpbGwgYmUgZGV0YWlsZWQgaW4gYSBmb2xsb3dpbmcgc2VjdGlvbiBvZiB0aGlzIGRvY3VtZW50LgoKTm8gZnJvbnRlbmQgYXBwbGljYXRpb24gd2FzIGRldmVsb3BlZCwgYnV0IGEgU3dhZ2dlciBVSSBpcyBhdmFpbGFibGUgaW4gb3JkZXIgdG8gZXhwbG9yZQphbmQgY29uc3VtZSB0aGUgQVBJLgoKIyMgTGFuZ3VhZ2UgVmVyc2lvbgoKR3JhZGxlJ3MgW3Rvb2xjaGFpbl0oaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvNy4zLjMvdXNlcmd1aWRlL3Rvb2xjaGFpbnMuaHRtbCkgY29uY2VwdCBpcyAKdXNlZCBpbiBvcmRlciB0byBkZWZpbmUgd2hpY2ggamF2YSB2ZXJzaW9uIHdpbGwgYmUgdXNlZCB0byBidWlsZCB0aGUgcHJvamVjdC4gVGhpcyBpcyAKZGVjbGFyZWQgaW4gdGhlIFtidWlsZC5ncmFkbGUua3RzXShidWlsZC5ncmFkbGUua3RzKSBmaWxlOgoKYGBgCmphdmEgewogICAgdG9vbGNoYWluIHsKICAgICAgICBsYW5ndWFnZVZlcnNpb24uc2V0KEphdmFMYW5ndWFnZVZlcnNpb24ub2YoMTcpKQogICAgfQp9CmBgYAoKIyMjIEpESyAxNwoKU2luY2UgdGhlIHByb2plY3QgaXMgaW1wbGVtZW50ZWQgd2l0aCBKYXZhIDE3LCBhIEpESyBmb3IgSmF2YSAxNyBtdXN0IGJlIGF2YWlsYWJsZSBvbiB5b3VyIAptYWNoaW5lIGluIG9yZGVyIHRvIGJ1aWxkIHRoaXMgcHJvamVjdC4KCkRvbid0IHdvcnJ5ISBJZiBhIG1hdGNoaW5nIEpESyBpcyBub3QgZm91bmQgYnkgR3JhZGxlIG9uIHlvdXIgbWFjaGluZSwgaXQgd2lsbCBhdXRvbWF0aWNhbGx5CmRvd25sb2FkIGl0IGJlZm9yZSBidWlsZGluZyB0aGUgcHJvamVjdC4gSWYgeW91IHdhbnQgR3JhZGxlIHRvIGRvd25sb2FkIGEgZGlzdHJpYnV0aW9uIEpESyAKZnJvbSBhIHNwZWNpZmljIHZlbmRvciwgeW91IGNhbiBkbyBzbyBieSBzZXR0aW5nIHRoZSBbdmVuZG9yIHByb3BlcnR5XShodHRwczovL2RvY3MuZ3JhZGxlLm9yZy83LjMuMy91c2VyZ3VpZGUvdG9vbGNoYWlucy5odG1sI3NlYzp2ZW5kb3JzKQppbiB0aGUgW2J1aWxkLmdyYWRsZS5rdHNdKGJ1aWxkLmdyYWRsZS5rdHMpIGZpbGU6CgpgYGAKamF2YSB7CiAgICB0b29sY2hhaW4gewogICAgICAgIGxhbmd1YWdlVmVyc2lvbi5zZXQoSmF2YUxhbmd1YWdlVmVyc2lvbi5vZigxNykpCiAgICAgICAgdmVuZG9yLnNldChKdm1WZW5kb3JTcGVjLkdSQUFMX1ZNKQogICAgfQp9CmBgYAoKIyMjIE1hbmFnaW5nIEpES3Mgd2l0aCBTREtNQU4hCgpNb3N0IGRldmVsb3BlcnMgd2FudCB0byBjb250cm9sIHdoaWNoIEpES3MgYXJlIGluc3RhbGxlZCBvbiB0aGVpciBtYWNoaW5lcy4gSWYgeW91IHdvdWxkCmxpa2UgdG8gbWFuYWdlIEpES3MgYnkgeW91cnNlbGYsIHlvdSBjYW4gdXNlIHRvb2xzIHN1Y2ggYXMgW1NES01BTiFdKGh0dHBzOi8vc2RrbWFuLmlvLykgCnRvIHNpbXBsaWZ5IHRoYXQgdGFzay4gVGhpcyBpcyBub3QgbWVhbnQgdG8gY29tcGFyZSBTREtNQU4hIHdpdGggYW55IG90aGVyIHRvb2wsIGJ1dCByYXRoZXIKZXhwbGFpbiBob3cgeW91IGNhbiBlYXNpbHkgbWFuYWdlIFNES3Mgd2l0aCBhIG1hdHVyZSB0b29sLgoKVGhlIFtpbnN0YWxsYXRpb25dKGh0dHBzOi8vc2RrbWFuLmlvL2luc3RhbGwpIGlzIHZlcnkgc3RyYWlnaHRmb3J3YXJkLCBhbmQgeW91IGNhbiBlYXNpbHkKaW5zdGFsbCBhbnkgSkRLIHdpdGggYSBzaW5nbGUgY29tbWFuZC4gRm9yIGV4YW1wbGUsIGluIG9yZGVyIHRvIGluc3RhbGwgR3JhYWxWTSAyMS4zLjAgCndpdGggSmF2YSAxNyB5b3UgY2FuIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2hlbGwKc2RrIGluc3RhbGwgamF2YSAyMS4zLjAucjE3LWdybCAKYGBgCgpBZnRlciBpbnN0YWxsaW5nIGl0LCBTREtNQU4hIHdpbGwgYXNrIGlmIHlvdSB3YW50IHRvIHNldCBpdCBhcyB0aGUgZGVmYXVsdCBKREsgb24geW91ciAKbWFjaGluZS4gSWYgeW91IGNob3NlIHRvIG5vdCBzZXQgaXQgYXMgdGhlIGRlZmF1bHQgSkRLLCB5b3UgY2FuIGxhdGVyIHNldCBpdCBhcyB0aGUgCmFjdGl2ZSBKREsgaW4geW91ciB0ZXJtaW5hbCB3aW5kb3cgYnkgcnVubmluZyB0aGUgYHVzZWAgY29tbWFuZDoKCmBgYHNoZWxsCnNkayB1c2UgamF2YSAyMS4zLjAucjE3LWdybApgYGAKCk1vcmUgaW5mbyBvbiBTREtNQU4gdXNhZ2UgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL3Nka21hbi5pby91c2FnZSkKCiMjIyBBdmFpbGFibGUgVG9vbGNoYWlucwoKSW4gb3JkZXIgdG8gY2hlY2sgd2hpY2ggdG9vbGNoYWlucyBhcmUgYXZhaWxhYmxlIHRvIEdyYWRsZSwgeW91IGNhbiBleGVjdXRlIHRoZSAKYGphdmFUb29sY2hhaW5zYCB0YXNrOgoKYGBgc2hlbGwKLi9ncmFkbGV3IGphdmFUb29sY2hhaW5zCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgdGhlIG91dHB1dCB5b3Ugc2hvdWxkIGV4cGVjdCBmcm9tIHRoZSB0YXNrIHdoZW4gbXVsdGlwbGUgCnRvb2xjaGFpbnMgYXJlIGF2YWlsYWJsZToKCmBgYAo+IFRhc2sgOmphdmFUb29sY2hhaW5zCgogKyBHcmFhbFZNIENvbW11bml0eSBKREsgMTEuMC4xMys3LWp2bWNpLTIxLjMtYjA1CiAgICAgfCBMb2NhdGlvbjogICAgICAgICAgIC9Vc2Vycy91c2VybmFtZS8uc2RrbWFuL2NhbmRpZGF0ZXMvamF2YS8yMS4zLjAucjExLWdybAogICAgIHwgTGFuZ3VhZ2UgVmVyc2lvbjogICAxMQogICAgIHwgVmVuZG9yOiAgICAgICAgICAgICBHcmFhbFZNIENvbW11bml0eQogICAgIHwgSXMgSkRLOiAgICAgICAgICAgICB0cnVlCiAgICAgfCBEZXRlY3RlZCBieTogICAgICAgIEN1cnJlbnQgSlZNCgogKyBHcmFhbFZNIENvbW11bml0eSBKREsgMTcuMC4xKzEyLWp2bWNpLTIxLjMtYjA1CiAgICAgfCBMb2NhdGlvbjogICAgICAgICAgIC9Vc2Vycy91c2VybmFtZS8uc2RrbWFuL2NhbmRpZGF0ZXMvamF2YS8yMS4zLjAucjE3LWdybAogICAgIHwgTGFuZ3VhZ2UgVmVyc2lvbjogICAxNwogICAgIHwgVmVuZG9yOiAgICAgICAgICAgICBHcmFhbFZNIENvbW11bml0eQogICAgIHwgSXMgSkRLOiAgICAgICAgICAgICB0cnVlCiAgICAgfCBEZXRlY3RlZCBieTogICAgICAgIFNES01BTiEKCiArIE9wZW5KREsgMTgtZWErMjQtMTYwOAogICAgIHwgTG9jYXRpb246ICAgICAgICAgICAvVXNlcnMvdXNlcm5hbWUvLnNka21hbi9jYW5kaWRhdGVzL2phdmEvMTguZWEuMjQtb3BlbgogICAgIHwgTGFuZ3VhZ2UgVmVyc2lvbjogICAxOAogICAgIHwgVmVuZG9yOiAgICAgICAgICAgICBPcmFjbGUKICAgICB8IElzIEpESzogICAgICAgICAgICAgdHJ1ZQogICAgIHwgRGV0ZWN0ZWQgYnk6ICAgICAgICBTREtNQU4hCgogKyBPcmFjbGUgSkRLIDEuOC4wXzE2Mi1iMTIKICAgICB8IExvY2F0aW9uOiAgICAgICAgICAgL0xpYnJhcnkvSmF2YS9KYXZhVmlydHVhbE1hY2hpbmVzL2pkazEuOC4wXzE2Mi5qZGsvQ29udGVudHMvSG9tZQogICAgIHwgTGFuZ3VhZ2UgVmVyc2lvbjogICA4CiAgICAgfCBWZW5kb3I6ICAgICAgICAgICAgIE9yYWNsZQogICAgIHwgSXMgSkRLOiAgICAgICAgICAgICB0cnVlCiAgICAgfCBEZXRlY3RlZCBieTogICAgICAgIG1hY09TIGphdmFfaG9tZQpgYGAKCiMjIEhvdyB0byBCdWlsZAoKR3JhZGxlIHdhcyBjaG9zZW4gYXMgdGhlIGJ1aWxkIHRvb2wgZm9yIHRoaXMgcHJvamVjdCBhbmQgaXRzIHdyYXBwZXIgaGFzIGJlZW4gaW5jbHVkZWQgCmluIHRoZSByZXBvc2l0b3J5LiBUaGVyZSBhcmUgYXQgbGVhc3QgdHdvIHZlcnkgZ29vZCByZWFzb25zIHRvIGFkdm9jYXRlIGZvciB3cmFwcGVyCmluY2x1c2lvbiBhbmQgdXNhZ2U6CgoqIFByb2plY3QgY2FuIGJlIGltbWVkaWF0ZWx5IGJ1aWx0IGFmdGVyIGNsb25pbmcgaXMgZmluaXNoZWQsIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgCnRoZSBkZXZlbG9wZXIgdG8gaW5zdGFsbCBHcmFkbGUgYmVmb3JlaGFuZC4KKiBUaGUgd3JhcHBlciB3aWxsIGFsd2F5cyBtYXRjaCB0aGUgZXhwZWN0ZWQgR3JhZGxlIHZlcnNpb24gdGhhdCBpcyBtZWFudCB0byBiZSB1c2VkCndoZW4gYnVpbGRpbmcgdGhlIHByb2plY3QuIAoKSW4gb3JkZXIgdG8gYnVpbGQgdGhlIHByb2plY3QsIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2hlbGwKLi9ncmFkbGV3IGJ1aWxkCmBgYAoKUGxlYXNlIG5vdGUgdGhhdCB0aGUgYGJ1aWxkYCB0YXNrIHdpbGwgYWxzbyBleGVjdXRlIHRoZSB0ZXN0cy4gSWYgeW91IHNpbXBseSB3YW50IHRvIApjb21waWxlIHRoZSBzb3VyY2UgY29kZSBhbmQgcmVzb3VyY2VzLCB5b3UgY2FuIGRvIHNvIGJ5IGV4ZWN1dGluZyB0aGUgYGFzc2VtYmxlYCB0YXNrOgoKYGBgc2hlbGwKLi9ncmFkbGV3IGFzc2VtYmxlCmBgYAoKIyMgVGVzdGluZwoKVGVzdGluZyBpcyBjcnVjaWFsIHRvIGVuc3VyZSBjb2RlIGlzIHJlbGlhYmxlLCBtYWludGFpbmFibGUsIHJldXNhYmxlLCBleHRlbnNpYmxlLiBBbGwKb2YgdGhlc2UgZmFjdG9ycyBpbmZsdWVuY2UgdGhlIGNvZGUncyBxdWFsaXR5IHN0YW5kYXJkLgoKTWFueSBsaWJyYXJpZXMgY2FuIGJlIHVzZWQgdG8gaW1wcm92ZSB0aGUgdGVzdGluZyBleHBlcmllbmNlLiBJbiB0aGlzIHByb2plY3Qgc29tZSBncmVhdApsaWJyYXJpZXMgYW5kIHRvb2xzIGFyZSBzaG93Y2FzZWQsIHN1Y2ggYXM6CgoqIFtKVW5pdCA1XShodHRwczovL2p1bml0Lm9yZy9qdW5pdDUvKSB0byBjcmVhdGUgYW5kIHJ1biBvdXIgdGVzdHMKKiBbQXNzZXJ0Sl0oaHR0cHM6Ly9qb2VsLWNvc3RpZ2xpb2xhLmdpdGh1Yi5pby9hc3NlcnRqLykgdG8gd3JpdGUgYW1hemluZyBhc3NlcnRpb25zIGluIApvdXIgdGVzdCBjYXNlcwoqIFtUZXN0Y29udGFpbmVyc10oaHR0cHM6Ly93d3cudGVzdGNvbnRhaW5lcnMub3JnLykgdG8gcmVwcm9kdWNlIGEgcmVhbCBlbnZpcm9ubWVudCBmb3IKb3VyIHRlc3RzCiogW0phQ29Db10oaHR0cHM6Ly93d3cuamFjb2NvLm9yZy9qYWNvY28vdHJ1bmsvaW5kZXguaHRtbCkgdG8gZ2VuZXJhdGUgdGhlIGNvdmVyYWdlIApyZXBvcnQgb2Ygb3VyIHByb2plY3QKKiBbUGl0ZXN0XShodHRwczovL3BpdGVzdC5vcmcvKSB0byBleGVjdXRlIG11dGF0aW9uIHRlc3RpbmcKKiBbQ29kZWNvdl0oaHR0cHM6Ly9hYm91dC5jb2RlY292LmlvLykgdG8ga2VlcCB0cmFjayBvZiBvdXIgcmVwb3NpdG9yeSdzIGNvdmVyYWdlCgpJbnRlZ3JhdGlvbiBhbmQgVW5pdCB0ZXN0cyBjYW4gYmUgZm91bmQgaW4gdGhlIGBzcmMvdGVzdGAgZGlyZWN0b3J5LiBVc3VhbGx5LCB0aGV5CmNvdWxkJ3ZlIGJlZW4gc3BsaXQgaW50byBkaWZmZXJlbnQgc291cmNlIHNldHMsIHN1Y2ggYXMgYHNyYy90ZXN0YCBmb3IgdW5pdCB0ZXN0cyBhbmQgCmBzcmMvaXRgIGZvciBpbnRlZ3JhdGlvbiB0ZXN0cywgYnV0IHRoYXQgd2FzIG5vdCBkZWVtZWQgbmVjZXNzYXJ5IGZvciB0aGlzIHByb2plY3QncyAKcHVycG9zZSwgZ2l2ZW4gaXRzIHNpemUsIGNvbXBsZXhpdHkgYW5kIHNjb3BlLiBIb3dldmVyLCB0aGlzIG1pZ2h0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgoKSW4gb3JkZXIgdG8gcnVuIHRoZSB0ZXN0cyBpbiB0aGlzIHByb2plY3QsIGV4ZWN1dGUgdGhlIGB0ZXN0YCB0YXNrOgoKYGBgc2hlbGwKLi9ncmFkbGV3IHRlc3QKYGBgCgpXaGVuIGV4ZWN1dGlvbiBlbmRzLCByZXBvcnRzIHdpbGwgYmUgYXZhaWxhYmxlIGF0OgoKKiBgYnVpbGQvcmVwb3J0cy90ZXN0cy90ZXN0YCBmb3IgSlVuaXQgcmVwb3J0cwoqIGBidWlsZC9yZXBvcnRzL2phY29jby90ZXN0YCBmb3IgSmFDb0NvIHJlcG9ydHMKCiMjIyBXaHkgSlVuaXQgNT8KCkpVbml0IGlzIHRoZSBtb3N0IHVzZWQgdGVzdGluZyBwbGF0Zm9ybSBmb3IgSmF2YSwgd2l0aCB2ZXJzaW9uIDUgYmVpbmcgaXRzIG1vc3QgCnJlY2VudCBtYWpvciB2ZXJzaW9uLiBJdCBoYXMgbWFueSBmZWF0dXJlcyBhbmQgYWR2YW50YWdlcyBvdmVyIEpVbml0IDQsIHNvbWUKb2Ygd2hpY2ggd2lsbCBiZSB1c2VkIGluIG91ciB0ZXN0cywgc3VjaCBhczoKCiogYEBQYXJhbWV0ZXJpemVkVGVzdGA6IHRoaXMgYWxsb3dzIHRoZSBleGVjdXRpb24gb2YgdGhlIHNhbWUgdGVzdCBjYXNlIHdpdGggYW55IApudW1iZXIgb2YgdmFyeWluZyBpbnB1dHMgKGV4YW1wbGU6IHRlc3RpbmcgdGhlIHNhbWUgZW5kcG9pbnQgd2l0aCBkaWZmZXJlbnQgcGF5bG9hZHMpCiogYEFzc2VydGlvbnMuYXNzZXJ0QWxsKC4uLilgOiBleGVjdXRlcyBhbGwgYXNzZXJ0aW9ucyBpbiBhIGJsb2NrIHdpdGhvdXQgZmFpbGluZwp0aGUgdGVzdCBhcyBzb29uIGFzIHRoZSBmaXJzdCBhc3NlcnRpb24gZmFpbHMsIGFsbG93aW5nIGZvciBhbGwgZmFpbGVkIGFzc2VydGlvbnMgCnRvIGJlIGdyb3VwZWQgYW5kIGRpc3BsYXllZCB0b2dldGhlcgoqIGBBc3NlcnRpb25zLmFzc2VydFRocm93cyguLi4pYDogd2hpY2ggaGVscHMgdGhlIGFzc2VydGlvbiBvZiBhbiBleGNlcHRpb24gYW5kIAppdHMgcHJvcGVydGllcyAKCiMjIyBXaHkgQXNzZXJ0Sj8KClRoZSBwdXJwb3NlIG9mIHRoaXMgcHJvamVjdCBpcyBub3QgdG8gY29tcGFyZSBhc3NlcnRpb24gbGlicmFyaWVzLCBzdWNoIGFzIEFzc2VydEosClRydXRoLCBIYW1jcmVzdCBhbmQgb3RoZXJzLiAKCkFzc2VydEogaXMgYW4gYW1hemluZyBsaWJyYXJ5LCBhbmQgaXMgYWxyZWFkeSBpbmNsdWRlZCB3aGVuIGltcG9ydGluZyB0aGUgU3ByaW5nIApCb290J3MgdGVzdGluZyBkZXBlbmRlbmN5LCBzbyB0aGF0J3Mgd2h5IGl0IHdhcyB1c2VkIGluIHRoaXMgcHJvamVjdC4gCgpXcml0aW5nIG1lYW5pbmdmdWwgYW5kIGhlbHBmdWwgYXNzZXJ0aW9ucyB3aXRoIGVhc2UgaXMgdGhlIGdvYWwsIGFuZCBBc3NlcnRKIGRvZXMgYSAKZ3JlYXQgam9iIGF0IGl0LgoKIyMjIFdoeSBUZXN0Y29udGFpbmVycz8KCllvdSB3YW50IHlvdXIgQVBJIHRvIGJlIHJlbGlhYmxlLCBleHRlbnNpYmxlLCBtYWludGFpbmFibGUsIHJldXNhYmxlLCBhbmQgdGhhdCAKYXNzdW1wdGlvbiBoYXMgbWFueSBjb25zZXF1ZW5jZXMuIAoKT25lIHdheSB0byBlbnN1cmUgdGhhdCB5b3UgZG9uJ3QgYnJlYWsgYW55dGhpbmcgd2hlbiBkZXZlbG9waW5nIG5ldyBmZWF0dXJlcyBvciBmaXhpbmcKYnVncyBpcyB0byBoYXZlIGEgdmVyeSB0aG9yb3VnaCB0ZXN0IHN1aXRlLCBhbmQgaGF2aW5nIGEgY29udGludW91cyBpbnRlZ3JhdGlvbiBwaXBlbGluZQp0aGF0IGF1dG9tYXRpY2FsbHkgcnVucyB0aG9zZSB0ZXN0cyBhbmQgbGV0cyB5b3Uga25vdyB3aGVuIHRoaW5ncyBnbyB3cm9uZy4KCkhvd2V2ZXIsIHdoYXQgaWYgeW91ciB0ZXN0cyBkbyBub3QgcmVwcm9kdWNlIHRoZSByZWFsIGVudmlyb25tZW50PyBUaGUgZXhlY3V0aW9uIG9mIHRoZQp0ZXN0IHN1aXRlIGNhbiBiZSBzdWNjZXNzZnVsIGFuZCBvbmNlIHlvdSBkZXBsb3kgdGhlIG5ldyB2ZXJzaW9uIHRvIHlvdXIgcmVhbCB3b3JsZCAKcHJvZHVjdGlvbiBlbnZpcm9ubWVudCwgdGhpbmdzIHRoYXQgeW91IHdlcmUgbGVhZCB0byBhc3N1bWUgd2VyZSBmaW5lIHN0aWxsIHJ1biB0aGUgcmlzawpvZiBicmVha2luZyBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCB0aGV5IHdlcmUgZGVwbG95ZWQgdG8gd2FzIG5vdGhpbmcgbGlrZSB3aGF0IHlvdSAKdGVzdGVkIGFnYWluc3QuCgpPbmUgb2YgdGhlIHdheXMgdG8gcmVkdWNlIHRoaXMga2luZCBvZiBwcm9ibGVtIGlzIHRvIHVzZSByZWFsIGluc3RhbmNlcyBvZiB0aGUgc2VydmljZXMgdGhhdAp0aGUgYXBwbGljYXRpb24gcmVsaWVzIG9uLCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gYXMgdGhlIG9uZXMgaW4geW91ciBwcm9kdWN0aW9uIGVudmlyb25tZW50LgpGb3IgZXhhbXBsZSwgaW5zdGVhZCBvZiB0ZXN0aW5nIGFuIGFwcGxpY2F0aW9uIGFnYWluc3QgYW4gZW1iZWRkZWQgZGF0YWJhc2UsIGhhdmUgaXQgY29ubmVjdAp0byBhIHJlYWwgZGF0YWJhc2Ugc2VydmVyLiAKClRoaXMgaXMgd2hlcmUgVGVzdGNvbnRhaW5lcnMgY29tZXMgaW4gaGFuZHksIGFsbG93aW5nIHlvdSB0byBzcGluIHVwIGRpc3Bvc2FibGUgRG9ja2VyIApjb250YWluZXJzIHRoYXQgd2lsbCBsaXZlIG9ubHkgZHVyaW5nIHRoZSBleGVjdXRpb24gb2YgeW91ciB0ZXN0IHN1aXRlLiAKCkluIHRoaXMgY2FzZSwgdGhlIGV4aXN0aW5nIGBvcmcudGVzdGNvbnRhaW5lcnM6bW9uZ29kYmAgZGVwZW5kZW5jeSB3YXMgdXNlZCB0byBpbXBvcnQgaXRzIApgTW9uZ29EQkNvbnRhaW5lcmAgY2xhc3Mgd2hpY2ggd2FzIGV4dGVuZGVkIGluIHRoZSBgRXh0ZW5kZWRNb25nb0RCQ29udGFpbmVyYCBjbGFzcyBpbiAKb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGFwcHJvcHJpYXRlIGBVUkxgIGNvbm5lY3Rpb24gdmFsdWUgd2FzIG1hZGUgYXZhaWxhYmxlIHRvIFNwcmluZwpEYXRhIG9uY2UgdGhlIGNvbnRhaW5lciB3YXMgcmVhZHkgdG8gYWNjZXB0IGNvbm5lY3Rpb25zLgoKRm9yIHRoZSBLZXljbG9hayBhdXRob3JpemF0aW9uIHNlcnZlciwgdGhlIGBjb20uZ2l0aHViLmRhc25pa286dGVzdGNvbnRhaW5lcnMta2V5Y2xvYWtgIApkZXBlbmRlbmN5IHdhcyB1c2VkLiBTaW1pbGFybHkgdG8gdGhlIE1vbmdvREIgY2FzZSwgdGhlIGBLZXljbG9ha0NvbnRhaW5lcmAgd2FzIGV4dGVuZGVkIApieSB0aGUgYEV4dGVuZGVkS2V5Y2xvYWtDb250YWluZXJgIGNsYXNzLCB3aGljaCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSBLZXljbG9haydzIHRlc3QgcmVhbG0gCmFzIHdlbGwgYXMgbWFraW5nIGl0cyBhdXRoIFVSTCBhdmFpbGFibGUgdG8gU3ByaW5nIFNlY3VyaXR5LgoKIyMjIyBJTVBPUlRBTlQhCgpVc2luZyBgdGVzdGNvbnRhaW5lcnNgIG1lYW5zIHRoYXQgbW9zdCBvZiB0aGUgcHJvamVjdCdzIHRlc3RzIFJFUVVJUkUgZG9ja2VyIHRvIGJlIGF2YWlsYWJsZSAKaW4gdGhlIGhvc3QgbWFjaGluZSBpbiBvcmRlciB0byBydW4gYXQgYWxsLgoKVGhlIERvY2tlciBpbWFnZXMgYmVpbmcgdXNlZCBpbiB0aGUgdGVzdHMgYXJlOgoKKiBgbW9uZ286NS4wLjRgCiogYHF1YXkuaW8va2V5Y2xvYWsva2V5Y2xvYWs6MTUuMC4yYAoKSWYgdGhleSBhcmUgbm90IGZvdW5kIGluIHRoZSBob3N0IG1hY2hpbmUsIGB0ZXN0Y29udGFpbmVyc2Agd2lsbCBhdXRvbWF0aWNhbGx5IGRvd25sb2FkIAp0aGVtLiBUaGlzIGNhbiBnaXZlIHRoZSBpbXByZXNzaW9uIHRoYXQgdGhlIHRhc2tzIGFyZSB0YWtpbmcgdG9vIGxvbmcgdG8gc3RhcnQgb3IgZmluaXNoLApzbyBpZiB5b3Ugd2lzaCB0byBtYW51YWxseSBkb3dubG9hZCB0aGUgaW1hZ2VzIGJlZm9yZSBleGVjdXRpbmcgdGhlIHRlc3RzLCB5b3UgY2FuIGJ5CmV4ZWN1dGluZyB0aGUgYHB1bGxgIGNvbW1hbmQ6CgpgYGBzaGVsbApkb2NrZXIgcHVsbCBtb25nbzo1LjAuNApkb2NrZXIgcHVsbCBxdWF5LmlvL2tleWNsb2FrL2tleWNsb2FrOjE1LjAuMgpgYGAKCiMjIyBXaGF0IGlzIEphQ29Dbz8KCkphQ29DbyBpcyBhbiBhbWF6aW5nIHRvb2wgdGhhdCBnZW5lcmF0ZXMgY29kZSBjb3ZlcmFnZSByZXBvcnRzIGZvciBqYXZhLiBJbiBvcmRlciB0byAKZ2VuZXJhdGUgdGhlc2UgcmVwb3J0cywgdGhlIFtKYUNvQ28gR3JhZGxlIHBsdWdpbl0oaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvNy4zLjMvdXNlcmd1aWRlL2phY29jb19wbHVnaW4uaHRtbCkgCmlzIHVzZWQsIGFuZCBpcyBkZWNsYXJlZCBpbiB0aGUgW2J1aWxkLmdyYWRsZS5rdHNdKGJ1aWxkLmdyYWRsZS5rdHMpIHBsdWdpbnMgYmxvY2suIAoKVGhlIHBsdWdpbiBwcm92aWRlcyB0d28gdXNlZnVsIHRhc2tzOiAKCiogYGphY29jb1Rlc3RSZXBvcnRgOiAgR2VuZXJhdGVzIHRoZSByZXBvcnQgYW5kIGRlcGVuZHMgb24gdGhlIG91dHB1dCBvZiB0ZXN0cy4gSW4gdGhpcwpwcm9qZWN0LCB0aGUgZ3JhZGxldyBgdGVzdGAgdGFzayBpcyBmaW5hbGl6ZWQgYnkgdGhpcyB0YXNrLCBzbyB0aGF0IHRoZSBjb3ZlcmFnZSByZXBvcnQKaXMgYWx3YXlzIGdlbmVyYXRlZCBhZnRlciB0ZXN0IGV4ZWN1dGlvbgoqIGBqYWNvY29UZXN0Q292ZXJhZ2VWZXJpZmljYXRpb25gOiB2ZXJpZmllcyBpZiB0aGUgY292ZXJhZ2UgcnVsZXMgYXJlIG1ldC4gSWYgYSBwcm9qZWN0CmRlY2xhcmVzIG1pbiA5OSUgY292ZXJhZ2UsIHRoZSB0YXNrIHdpbGwgZmFpbCBpZiB0aGUgY292ZXJhZ2UgaXMgYmVsb3cgdGhhdCB0aHJlc2hvbGQKCkluIHRoaXMgcHJvamVjdCwgdGhlIHBsdWdpbiBpcyBjb25maWd1cmVkIHRvIGdlbmVyYXRlIGJvdGggSFRNTCBhbmQgWE1MIHJlcG9ydHMuIAogKiBIVE1MIHByb3ZpZGVzIHRoZSBiZXN0IHZpc3VhbCBleHBlcmllbmNlLCBhcyBpdCBhbGxvd3MgYSBkZXZlbG9wZXIgdG8gbmF2aWdhdGUgdGhyb3VnaAp0aGUgcGFja2FnZXMgYW5kIGNsYXNzZXMsIGNoZWNraW5nIGFsbCB0aGUgY292ZXJhZ2UgZGV0YWlscy4KICogVGhlIFhNTCByZXBvcnQgaXMgY3JlYXRlZCBzbyB0aGF0IGlzIGV4cG9ydGVkIHRvIFtDb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vKSB3aGVuIAp0aGUgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3cgaXMgZXhlY3V0ZWQKClRoZXNlIHJlcG9ydHMgY2FuIGJlIGZvdW5kIGluIGBidWlsZC9yZXBvcnRzL2phY29jb2AsIGFuZCB0aGV5IGluY2x1ZGUgaW5mb3JtYXRpb24gYWJvdXQ6CgoqIENsYXNzIGNvdmVyYWdlIAoqIE1ldGhvZCBjb3ZlcmFnZSAKKiBCcmFuY2ggY292ZXJhZ2UgCiogTGluZSBjb3ZlcmFnZQoqIEluc3RydWN0aW9uIGNvdmVyYWdlIAoqIENvbXBsZXhpdHkgY292ZXJhZ2UgCgpNb3JlIGluZm9ybWF0aW9uIG9uIHdoYXQgdGhvc2UgY291bnRlcnMgbWVhbiBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vd3d3LmphY29jby5vcmcvamFjb2NvL3RydW5rL2RvYy9jb3VudGVycy5odG1sKS4KCiMjIyMgSmFDb0NvIGxvZ2dpbmcKCkFub3RoZXIgbmVhdCBwbHVnaW4gdXNlZCBpcyBbamFjb2NvbG9nXShodHRwczovL2dpdGxhYi5jb20vYmFyZnVpbi9ncmFkbGUtamFjb2NvLWxvZyksCndoaWNoIHByb3ZpZGVzIHRoZWBqYWNvY29Mb2dUZXN0Q292ZXJhZ2VgIHRhc2sgd2hpY2ggcHJpbnRzIGFsbCB0aG9zZSBtZXRyaWNzIAppbiB0aGUgY29uc29sZSBpbiBjYXNlIHlvdSBhcmUgb25seSBsb29raW5nIGZvciB0aGUgY29uc29saWRhdGVkIGNvdmVyYWdlIG51bWJlcnMKCkhhdmluZyBuZWFyIDEwMCUgY29kZSBjb3ZlcmFnZSBkb2VzIG5vdCBtZWFuIHRoYXQgYSBzb2Z0d2FyZSBpcyBidWctZnJlZSBvciBmbGF3bGVzcy4KQnV0IGl0IHVzdWFsbHkgbWVhbnMgdGhhdCBhIHRlYW0gaXMgaW52ZXN0ZWQgaW50byBtYWtpbmcgaXQgcmVsaWFibGUsIGFuZCB0aGF0IHR5cGUKb2YgY29uZmlkZW5jZSBpbiB0aGUgY29kZSBiYXNlIHByb3ZpZGVzIGEgbG90IG9mIGNvbWZvcnQgd2hlbiBwbGFubmluZyBhbmQgYnVpbGRpbmcKbmV3IGZlYXR1cmVzIG9yIHNpbXBseSBmaXhpbmcgYnVncy4gCgojIyMgTXV0YXRpb24gVGVzdGluZwoKVGhpcyBpcyBub3QgYSB2ZXJ5IHdpZGVzcHJlYWQgY29uY2VwdCwgYnV0IGlzIGEgcmF0aGVyIHBvd2VyZnVsIG9uZS4gQmVsb3cgaXMgdGhlIApleHBsYW5hdGlvbiBvZiB3aHkgeW91IHNob3VsZCBjYXJlIGFib3V0IGl0LCBmcm9tIHRoZSBmb2xrcyBhdCBbUGl0ZXN0XShodHRwczovL3BpdGVzdC5vcmcpOgoKPiBUcmFkaXRpb25hbCB0ZXN0IGNvdmVyYWdlIChpLmUgbGluZSwgc3RhdGVtZW50LCBicmFuY2gsIGV0Yy4pIG1lYXN1cmVzIG9ubHkgd2hpY2ggCj4gY29kZSBpcyBleGVjdXRlZCBieSB5b3VyIHRlc3RzLiBJdCBkb2VzIG5vdCBjaGVjayB0aGF0IHlvdXIgdGVzdHMgYXJlIGFjdHVhbGx5IGFibGUKPiB0byBkZXRlY3QgZmF1bHRzIGluIHRoZSBleGVjdXRlZCBjb2RlLiBJdCBpcyB0aGVyZWZvcmUgb25seSBhYmxlIHRvIGlkZW50aWZ5IGNvZGUKPiB0aGF0IGlzIGRlZmluaXRlbHkgbm90IHRlc3RlZC4KPgo+IFRoZSBtb3N0IGV4dHJlbWUgZXhhbXBsZXMgb2YgdGhlIHByb2JsZW0gYXJlIHRlc3RzIHdpdGggbm8gYXNzZXJ0aW9ucy4gRm9ydHVuYXRlbHkgCj4gdGhlc2UgYXJlIHVuY29tbW9uIGluIG1vc3QgY29kZSBiYXNlcy4gTXVjaCBtb3JlIGNvbW1vbiBpcyBjb2RlIHRoYXQgaXMgb25seSAKPiBwYXJ0aWFsbHkgdGVzdGVkIGJ5IGl0cyBzdWl0ZS4gQSBzdWl0ZSB0aGF0IG9ubHkgcGFydGlhbGx5IHRlc3RzIGNvZGUgY2FuIHN0aWxsIAo+IGV4ZWN1dGUgYWxsIGl0cyBicmFuY2hlcyAoZXhhbXBsZXMpLgo+IAo+IEFzIGl0IGlzIGFjdHVhbGx5IGFibGUgdG8gZGV0ZWN0IHdoZXRoZXIgZWFjaCBzdGF0ZW1lbnQgaXMgbWVhbmluZ2Z1bGx5IHRlc3RlZCwgCj4gbXV0YXRpb24gdGVzdGluZyBpcyB0aGUgZ29sZCBzdGFuZGFyZCBhZ2FpbnN0IHdoaWNoIGFsbCBvdGhlciB0eXBlcyBvZiBjb3ZlcmFnZQo+IGFyZSBtZWFzdXJlZC4KCkluIG9yZGVyIHRvIHJ1biBtdXRhdGlvbiB0ZXN0aW5nLCB0aGUgW1BpdGVzdF0oaHR0cHM6Ly9ncmFkbGUtcGl0ZXN0LXBsdWdpbi5zb2xpZHNvZnQuaW5mby8pCkdyYWRsZSBwbHVnaW4gaXMgdXNlZC4gSXQgcHJvdmlkZXMgdGhlIGBwaXRlc3RgIGdyYWRsZSB0YXNrLCB3aGljaCBydW5zIHRoZSBtdXRhdGVkIAp0ZXN0cywgYW5kIHRoZSBnZW5lcmF0ZWQgcmVwb3J0IGNhbiBiZSBmb3VuZCBpbmBidWlsZC9yZXBvcnRzL3BpdGVzdC9pbmRleC5odG1sYAoKIyMjIyBJTVBPUlRBTlQhCgpHaXZlbiBtYW55IG11dGF0aW9ucyBhcmUgZ2VuZXJhdGVkIGZvciBlYWNoIHRlc3QgY2FzZSwgdGhlIGV4ZWN1dGlvbiB0aW1lIG9mIHRoZSAKYHBpdGVzdGAgdGFzayBpcyBtdWNoIGxvbmdlciB0aGFuIHRoZSB0aW1lIGZyb20gdGhlIGB0ZXN0YCB0YXNrLiBTaW5jZSB0aGlzIG1heSB0YWtlCnNldmVyYWwgbWludXRlcywgdGhlcmUncyBubyBHaXRIdWIgYWN0aW9uIGNvbmZpZ3VyZWQgZm9yIGl0LgoKVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgUGl0ZXN0IEdyYWRsZSBwbHVnaW4gaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgR3JhZGxlIApUb29sY2hhaW4gY29uY2VwdC4gVGhlcmVmb3JlLCBpZiB0aGUgSlZNIHVzZWQgYnkgR3JhZGxlIHRvIHJ1biBkb2VzIG5vdCBtYXRjaCB0aGUgCmxhbmd1YWdlIHZlcnNpb24gZGVjbGFyZWQgYnkgdGhlIHRvb2xjaGFpbiwgdGhlIGV4ZWN1dGlvbiBvZiBgcGl0ZXN0YCB0YXNrIHdpbGwKZmFpbC4gSW4gb3JkZXIgdG8gYXZvaWQgdGhpcywgbWFrZSBzdXJlIHlvdSBzZXQgdGhlIEpESyB1c2VkIGJ5IEdyYWRsZSB0byBiZQpjb21wYXRpYmxlIHdpdGggdGhlIHRvb2xjaGFpbiB2ZXJzaW9uLiBJZiB5b3UgYXJlIHVzaW5nIFNES01BTiEgdGhpcyBjYW4gYmUgZWFzaWx5CmRvbmUgYnkgZXhlY3V0aW5nIHRoZSBgc2RrIHVzZSBqYXZhYCBjb21tYW5kIGJlZm9yZSB5b3UgaW52b2tlIHRoZSBgcGl0ZXN0YCB0YXNrLgoKIyMjIEZ1dHVyZS1wcm9vZmluZwoKT25lIHdheSB0byBmdXR1cmUtcHJvb2YgeW91ciBhcHBsaWNhdGlvbiBpcyB0byB0ZXN0IGl0IGFnYWluc3QgZWFybHkgYWNjZXNzIGJ1aWxkcyBvZgpmdXR1cmUgSkRLcy4gVGhpcyBjYW4gc2F2ZSB5b3UgYSBsb3Qgb2YgdGltZSB3aGVuIG1pZ3JhdGluZyB0byBuZXdlciB2ZXJzaW9ucyBvZiB0aGUKSkRLLCBhcyBpdCB3aWxsIG1ha2UgaXQgY2xlYXIgaWYgeW91ciBjdXJyZW50IGNvZGUgYW5kIGRlcGVuZGVuY2llcyBhcmUgY29tcGF0aWJsZQp3aXRoIHRoZSBuZXh0IHJlbGVhc2UuCgpTaW5jZSB0aGlzIHByb2plY3QgaXMgd3JpdHRlbiBpbiBKYXZhIDE3LCB0aGUgb25seSBlYXJseSBhY2Nlc3MgYnVpbGRzIGl0IGNhbiBiZSB0ZXN0ZWQKYWdhaW5zdCBhcmUgZnJvbSBKREsgMTggKGF0IHRoZSB0aW1lIG9mIHdyaXRpbmcgdGhpcykuIFRoZXJlZm9yZSwgYSBHcmFkbGUgdGFzayBjYWxsZWQgCmB0ZXN0c09uMThgIGhhcyBiZWVuIGNyZWF0ZWQgYW5kIGRlY2xhcmVkIGluIHRoZSBbYnVpbGQuZ3JhZGxlLmt0c10oYnVpbGQuZ3JhZGxlLmt0cykgCmZpbGUuIFRoaXMgdGFzayBzZXRzIHRoZSBKYXZhIFRvb2xjaGFpbiB0byB1c2UgSmF2YSBMYW5ndWFnZSBWZXJzaW9uIDE4IGFuZCBleGVjdXRlcyB0aGUKcHJvamVjdCdzIHRlc3RzLgoKVG8gcnVuIHRoZSB0ZXN0cyBvbiBKREsgMTgsIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYHNoZWxsCi4vZ3JhZGxldyB0ZXN0c09uMTgKYGBgYAoKT25jZSB0aGUgdGVzdHMgZmluaXNoLCB5b3UgY2FuIGFjY2VzcyB0aGUgcmVwb3J0cyBhdCBgYnVpbGQvcmVwb3J0cy90ZXN0cy90ZXN0c09uMThgCgpQbGVhc2Ugbm90ZSB0aGF0IHNpbmNlIGFuIGVhcmx5IGFjY2VzcyBidWlsZCBvZiB0aGUgSkRLIGlzIHJlcXVpcmVkIHRvIHRlc3QgYWdhaW5zdCBhCmZ1dHVyZSB2ZXJzaW9uIG9mIHRoZSBKREssIHlvdSBtdXN0IGluc3RhbGwgaXQgbWFudWFsbHksIGFzIEdyYWRsZSdzIHRvb2xjaGFpbiBpc24ndCAKY2FwYWJsZSBvZiBkb3dubG9hZGluZyBvbmUuIFRoaXMgbWlnaHQgY2hhbmdlIGluIHRoZSBmdXR1cmUsIGFzIEdyYWRsZSBoYXMgYW4gb3BlbiAKW2lzc3VlXShodHRwczovL2dpdGh1Yi5jb20vZ3JhZGxlL2dyYWRsZS9pc3N1ZXMvMTQ4MTQpIGZvciB0aGlzIGZlYXR1cmUuIAoKSWYgeW91IGFyZSB1c2luZyBTREtNQU4hIGFzIHN1Z2dlc3RlZCBpbiB0aGUgcHJldmlvdXMgc2VjdGlvbnMsIHlvdSBjYW4gZWFzaWx5CmRvd25sb2FkIGFuIGVhcmx5IGFjY2VzcyBidWlsZCBvZiB0aGUgSkRLLiBBdCB0aGUgdGltZSBvZiB3cml0aW5nLCB0aGUgbGF0ZXN0IGJ1aWxkCndhcyBgMTguZWEuMjVgIHdoaWNoIGNhbiBiZSBpbnN0YWxsZWQgYnkgZXhlY3V0aW5nOgoKYGBgc2hlbGwKc2RrIGluc3RhbGwgamF2YSAxOC5lYS4yNS1vcGVuCmBgYAoKT25jZSBpbnN0YWxsZWQsIEdyYWRsZSdzIFRvb2xjaGFpbiBpcyBjYXBhYmxlIG9mIGF1dG9tYXRpY2FsbHkgbG9jYXRpbmcgdGhlIGVhcmx5CmFjY2VzcyBidWlsZCBvZiB0aGUgSkRLIGFuZCB1c2UgaXQgd2hlbiByZXF1aXJlZC4KCiMjIyMgSU1QT1JUQU5UCgpUaGUgY3VycmVudCB2ZXJzaW9uIG9mIEphQ29DbyBpcyBgMC44LjdgIGFuZCBpdCBpc24ndCBjb21wYXRpYmxlIHdpdGggSmF2YSAxOCwgCnRoZXJlZm9yZSBhbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gd2hlbiBydW5uaW5nIHRoZSB0ZXN0cyBvbiAxOC4gSG93ZXZlciwgdGhpcyAKZG9lc24ndCBtZWFuIHRoYXQgdGhlIHRlc3RzIGhhdmUgZmFpbGVkIG9yIHdvbid0IGJlIGV4ZWN1dGVkLCBqdXN0IHRoYXQgSmFDb0NvIHdvbid0CmJlIGFibGUgdG8gZ2VuZXJhdGUgaXRzIHJlcG9ydHMgZnJvbSB0aGUgdGVzdCBvdXRwdXQuIFRoaXMgc2hvdWxkIGJlIGZpeGVkIHdoZW4gCkphQ29DbyB2ZXJzaW9uIGAwLjguOGAgaXMgcmVsZWFzZWQuCgojIyBSZXF1aXJlZCBzZXJ2aWNlcwoKVGhpcyBtaWNyb3NlcnZpY2UgcmVxdWlyZXMgYm90aCBNb25nb0RCIGFuZCBLZXljbG9hayBzZXJ2ZXJzIHRvIGJlIGF2YWlsYWJsZSBpbiBvcmRlcgp0byBmdW5jdGlvbi4gSWYgeW91IGhhdmUgYm90aCBzZXJ2ZXJzIGluc3RhbGxlZCBvciBhdmFpbGFibGUgb24gYSByZW1vdGUgVVJMLCB5b3UgY2FuIAp1c2Ugc3VjaCBpbnN0YW5jZXMsIGp1c3QgZG9uJ3QgZm9yZ2V0IHRvIHVwZGF0ZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb24gCmBzcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sYCAob3IgYW5vdGhlciBwcm9maWxlJ3MgZmlsZSkgd2l0aCB0aGUgYXBwcm9wcmlhdGUKY29ubmVjdGlvbiBVUkxzLgoKSWYgeW91IGRvbid0IHdhbnQgdG8gYWx0ZXIgdGhlIHByb3BlcnRpZXMgZmlsZSwgeW91IGNhbiBhbHNvIHByb3ZpZGUgdGhlIFVSSXMgYXMgCkpWTSBwcm9wZXJ0aWVzCgpgYGAKLURrZXljbG9hay5hdXRoLXNlcnZlci11cmw9aHR0cDovL3NvbWUuaG9zdDo4MDgwL2F1dGgKLURzcHJpbmcuZGF0YS5tb25nb2RiLnVyaT1tb25nb2RiOi8vdXNlcjpwYXNzd29yZEBzb21lLmhvc3Q6MjcwMTcvc3ByaW5nLWRlbW8KYGBgCgpvciBldmVuIGFzIGFwcGxpY2F0aW9uIGFyZ3VtZW50cy4KCmBgYAotLWtleWNsb2FrLmF1dGgtc2VydmVyLXVybD1odHRwOi8vc29tZS5ob3N0OjgwODAvYXV0aAotLXNwcmluZy5kYXRhLm1vbmdvZGIudXJpPW1vbmdvZGI6Ly91c2VyOnBhc3N3b3JkQHNvbWUuaG9zdDoyNzAxNy9zcHJpbmctZGVtbwpgYGAKCiMjIyBEb2NrZXIgQ29tcG9zZQoKSG93ZXZlciwgeW91IGNhbiBhbHNvIGVhc2lseSBzcGluIHVwIGJvdGggTW9uZ29EQiBhbmQgS2V5Y2xvYWsgYXMgZG9ja2VyIGNvbnRhaW5lcnMuIApBIGZpbGUgY2FsbGVkIGBkb2NrZXItY29tcG9zZS55bWxgIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBwcm9qZWN0LCBhbmQgeW91IGNhbiB1c2UgCltEb2NrZXIgQ29tcG9zZV0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vY29tcG9zZS8pIGluIG9yZGVyIHRvIHRha2UgYWR2YW50YWdlIG9mIGl0LgoKVG8gc3RhcnQgdGhlIGNvbnRhaW5lcnMgd2l0aCBEb2NrZXIgQ29tcG9zZSwgZXhlY3V0ZToKCmBgYHNoZWxsCmRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAoKVG8gc3RvcCB0aGVtLCBleGVjdXRlOgoKYGBgc2hlbGwKZG9ja2VyLWNvbXBvc2UgZG93bgpgYGAKClBsZWFzZSBub3RlIHRoYXQgdGhlIHNlcnZpY2VzIGRlc2NyaWJlZCBpbiB0aGUgYGRvY2tlci1jb21wb3NlLnltbGAgZmlsZSBkbyBub3QgCmhhdmUgcGVyc2lzdGVudCBzdG9yYWdlIGNvbmZpZ3VyZWQsIHdoaWNoIHdpbGwgY2F1c2UgbW9kaWZpY2F0aW9ucyB0byB0aGUgCmRhdGFiYXNlcyB0byBiZSBsb3N0IG9uY2UgdGhlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQuIFRoaXMgaXMgaW50ZW50aW9uYWwgCmJlaGF2aW91ci4gCgpJZiB5b3UnZCBsaWtlIGRhdGEgdG8gYmUgcGVyc2lzdGVkIHdoZW4gdGhlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQsIHlvdSBjYW4gdXNlCnRoZSBgZG9ja2VyLWNvbXBvc2UtcGVyc2lzdGVudC55bWxgIGZpbGUgaW5zdGVhZC4gVG8gZG8gc28sIGV4ZWN1dGUgdGhlIGNvbW1hbmRzCmFib3ZlIHdpdGggdGhlIGAtZmAgZmxhZzoKCmBgYHNoZWxsCmRvY2tlci1jb21wb3NlIC1mIGRvY2tlci1jb21wb3NlLXBlcnNpc3RlbnQueW1sIHVwIC1kCmRvY2tlci1jb21wb3NlIC1mIGRvY2tlci1jb21wb3NlLXBlcnNpc3RlbnQueW1sIGRvd24KYGBgCgpUaGUgbWFpbiBkaWZmZXJlbmNlIGluIHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBQb3N0Z3JlU1FMIGlzIHVzZWQgYXMgdGhlIGJhY2tpbmcKZGF0YWJhc2UgZm9yIEtleWNsb2FrLCBydW5uaW5nIG9uIGl0cyBvd24gY29udGFpbmVyLCBhbmQgdGhhdCBib3RoIE1vbmdvREIgYW5kIApQb3N0Z3JlU1FMIGNvbnRhaW5lcnMgYXJlIG1vdW50aW5nIGRhdGEgW3ZvbHVtZXNdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL3N0b3JhZ2Uvdm9sdW1lcy8pLAp3aGljaCBhcmUgbWFuYWdlZCBieSB0aGUgRG9ja2VyIEVuZ2luZSwgaW4gdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBkaXJlY3RvcmllcyAKCiMjIyBLZXljbG9hawoKS2V5Y2xvYWsgdXNlcyB0aGUgY29uY2VwdCBvZiBbcmVhbG1dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS9vdmVydmlldy1hYm91dC1yZWFsbS1pbi1rZXljbG9hay5odG1sKSAKdG8gbWFuYWdlIFVzZXJzLCBDbGllbnRzLCBSb2xlcyBhbmQgb3RoZXIgc2VjdXJpdHkgZGV0YWlscy4gVGhlcmUgYXJlIG1hbnkgd2F5cwp0byBjb25maWd1cmUgYSByZWFsbToKCiogWW91IGNhbiBkbyBpdCBbbWFudWFsbHldKGh0dHBzOi8vd3d3LmtleWNsb2FrLm9yZy9kb2NzL2xhdGVzdC9zZXJ2ZXJfYWRtaW4vI19jcmVhdGUtcmVhbG0pCiogWW91IGNhbiB1c2UgS2V5Y2xvYWsncyBbUkVTVCBBUEldKGh0dHBzOi8vd3d3LmtleWNsb2FrLm9yZy9kb2NzLWFwaS8xNS4wL3Jlc3QtYXBpL2luZGV4Lmh0bWwpIAoob3Igb25lIGlmIGl0cyBleGlzdGluZyBjbGllbnRzKQoqIFlvdSBjYW4gaW1wb3J0IGFuIGV4aXN0aW5nIGByZWFsbWAgY29uZmlndXJhdGlvbi4KCkluIHRoZSBbcmVhbG0uanNvbl0ocmVhbG0uanNvbikgZmlsZSwgeW91IGNhbiBpbnNwZWN0IHRoZSBiYXNpYyBLZXljbG9hayByZWFsbSAKY29uZmlndXJhdGlvbiBuZWVkZWQgaW4gb3JkZXIgZm9yIHRoZSBtaWNyb3NlcnZpY2UgdG8gd29yayBhcyBleHBlY3RlZC4gVGhpcyBmaWxlCmlzIGF1dG9tYXRpY2FsbHkgaW1wb3J0ZWQgYnkgS2V5Y2xvYWsgd2hlbiBpdCBzdGFydHMgaWYgeW91IHVzZSB0aGUgcHJvamVjdCdzIApwcm92aWRlZCBkb2NrZXIgY29tcG9zZSBmaWxlcy4KCkR1cmluZyB0ZXN0cywgaW5zdGVhZCBvZiBpbXBvcnRpbmcgdGhlIHJlYWxtLCBpdCBpcyBjcmVhdGVkIHByb2dyYW1tYXRpY2FsbHkuIApUaGlzIGlzIGRvbmUgaW4gdGhlIGBjb20uZ2l0aHViLmpvcmdlYnNhLnNwcmluZy5kZW1vLnV0aWwuRXh0ZW5kZWRLZXljbG9ha0NvbnRhaW5lcmAgCmNsYXNzLiBUbyBhY2hpZXZlIHRoaXMsIHRoZSBgS2V5Y2xvYWtgIFJFU1QgY2xpZW50IGZyb20gdGhlIApgb3JnLmtleWNsb2FrOmtleWNsb2FrLWFkbWluLWNsaWVudGAgZGVwZW5kZW5jeSBpcyB1c2VkLiAKCiMjIFJ1bm5pbmcgdGhlIG1pY3Jvc2VydmljZQoKT25jZSB5b3VyIE1vbmdvREIgYW5kIEtleWNsb2FrIGluc3RhbmNlcyBhcmUgcmVhY2hhYmxlLCB0aGVyZSBhcmUgYSBmZXcgd2F5cwp0byBsYXVuY2ggdGhlIGFwcGxpY2F0aW9uOiAKCiogWW91IGNhbiBydW4gaXQgZGlyZWN0bHkgZnJvbSB5b3VyIElERSwgYnkgaW52b2tpbmcgdGhlIG1haW4gbWV0aG9kIG9mCmBjb20uZ2l0aHViLmpvcmdlYnNhLnNwcmluZy5kZW1vLkFwcGxpY2F0aW9uYAoqIFlvdSBjYW4gcnVuIGl0IHVzaW5nIHRoZSBbU3ByaW5nIEJvb3QgR3JhZGxlIHBsdWdpbl0oaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctYm9vdC9kb2NzLzIuNi4yL2dyYWRsZS1wbHVnaW4vcmVmZXJlbmNlL2h0bWxzaW5nbGUvI3J1bm5pbmcteW91ci1hcHBsaWNhdGlvbikKCiMjIyBSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiB3aXRoIEdyYWRsZQogCklzIGFzIGVhc3kgYXMgaW52b2tpbmcgYSBzaW1wbGUgW3Rhc2tdKGh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWJvb3QvZG9jcy8yLjYuMi9ncmFkbGUtcGx1Z2luL3JlZmVyZW5jZS9odG1sc2luZ2xlLyNydW5uaW5nLXlvdXItYXBwbGljYXRpb24pCmZyb20gdGhlIFNwcmluZyBCb290IEdyYWRsZSBQbHVnaW46CgpgYGBzaGVsbAouL2dyYWRsZXcgYm9vdFJ1bgpgYGAKCiMjIyBDb25zdW1pbmcgdGhlIEFQSQoKQWZ0ZXIgdGhlIGFwcGxpY2F0aW9uIHN0YXJ0cywgeW91IGNhbiBzZW5kIEhUVFAgcmVxdWVzdHMgZGlyZWN0bHkgdG8gaXQgb3IgCmFjY2VzcyB0aGUgU3dhZ2dlciBVSSBhdmFpbGFibGUgYXQgYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpLmh0bWxgLgoKUmVtZW1iZXIgdGhhdCB0aGUgZW5kcG9pbnRzIGFyZSBzZWN1cmVkLCB0aGVyZWZvcmUgZWFjaCByZXF1ZXN0IG11c3QgaW5jbHVkZQphbiBhY2Nlc3MgdG9rZW4gaW4gaXRzIGBBdXRob3JpemF0aW9uYCBoZWFkZXIuIFRvIG9idGFpbiBhbiBhY2Nlc3MgdG9rZW4sIHlvdQptdXN0IHJlcXVlc3Qgb25lIGZyb20gS2V5Y2xvYWsgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGF5bG9hZCwgZm9yIGV4YW1wbGU6CgpgYGBodHRwIHJlcXVlc3QKUE9TVCBodHRwOi8vbG9jYWxob3N0OjgwODEvYXV0aC9yZWFsbXMvdGVzdHMvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4KQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uCkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkCgpjbGllbnRfaWQ9c3ByaW5nLWRlbW8mY2xpZW50X3NlY3JldD10aGUtc2VjcmV0JnVzZXJuYW1lPXRoZS1hZG1pbiZwYXNzd29yZD0xMjNBZG1pbiZncmFudF90eXBlPXBhc3N3b3JkCmBgYAoKWW91IGFyZSBsb29raW5nIGZvciB0aGUgYGFjY2Vzc190b2tlbmAgdmFsdWUgZnJvbSB0aGUgcmVzcG9uc2UgYm9keSwgd2hpY2ggd2lsbApiZSBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDoKCmBgYGpzb24KewogICJhY2Nlc3NfdG9rZW4iOiAiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJZ09pQWlTbGRVSWl3aWEybGtJaUE2SUNKMldFTnhlSHBXVDI1YU5XOTJhMlk1TjB4MFVFZFpYMEpYVWtOdVNXVlJiVVl3TlU1blVVVnpiMmhSSW4wLmV5SmxlSEFpT2pFMk16YzVPREUzTmpFc0ltbGhkQ0k2TVRZek56azBOVGMyTWl3aWFuUnBJam9pTW1VMFpEZ3hNMkV0TTJFd01TMDBNVGcxTFdJME5UVXRZMkV6TnpZNFpEbGpZVE5oSWl3aWFYTnpJam9pYUhSMGNEb3ZMMnh2WTJGc2FHOXpkRG80TURneEwyRjFkR2d2Y21WaGJHMXpMM1JsYzNSeklpd2ljM1ZpSWpvaU5EQXhaVFZqWkdFdE56RXpPUzAwWXpsakxXRmpNalV0WVdJeFlURTVNall6WkRNNUlpd2lkSGx3SWpvaVFtVmhjbVZ5SWl3aVlYcHdJam9pYzNCeWFXNW5MV1JsYlc4aUxDSnpaWE56YVc5dVgzTjBZWFJsSWpvaU9XWmxZelU0TXprdE1qTmlaUzAwWTJSaUxUaGlPV1F0TVRRNE9UZzVOak16Tm1KaUlpd2lZV055SWpvaU1TSXNJbUZzYkc5M1pXUXRiM0pwWjJsdWN5STZXeUpvZEhSd09pOHZiRzlqWVd4b2IzTjBPamd3T0RBaVhTd2ljbVZ6YjNWeVkyVmZZV05qWlhOeklqcDdJbk53Y21sdVp5MWtaVzF2SWpwN0luSnZiR1Z6SWpwYkltNXZkR1Z6TFdGa2JXbHVJaXdpYm05MFpYTXRkWE5sY2lKZGZYMHNJbk5qYjNCbElqb2ljSEp2Wm1sc1pTQmxiV0ZwYkNJc0luTnBaQ0k2SWpsbVpXTTFPRE01TFRJelltVXROR05rWWkwNFlqbGtMVEUwT0RrNE9UWXpNelppWWlJc0ltVnRZV2xzWDNabGNtbG1hV1ZrSWpwbVlXeHpaU3dpY0hKbFptVnljbVZrWDNWelpYSnVZVzFsSWpvaWRHaGxMV0ZrYldsdUluMC5DSUk2MkZzT2RDZmU5cUl5ZjlCZnpCSlViZldqT0RnUDYtQnVocUZqUUFlcXQxMnlJWEdjR1hjeXk0WkQ1NXVZYUJ5d01vdk9vZk1sbWhJVF9JR3g2YlJBSEx3allxNnNILVRXXzV3Q180MnJyWjQtLS1VV2tRbjF6bjhhdGRZSm5ETkhhZ0VQUnFNbnp2RTBSMzhOazJvdEZpVnBpWUdvZFBfSy1MdW9PUlBLdHFwYjRMZGJpUjlrTS11aEl1WW5xeHZfNGNKdWhIXzMtd0JGQnVoSTJ1dUFpMTJhSHdyZ2ZnV0tEa0FnYzBJNHV3TmFROGpJS0c3TWtlSmhQT3U4MXAxa1lNOTlDSzJtRFlGaGpnZ3JvUl93ZHdsdklHMzNaX1YydFZ2SHh1TmRVQ2VnN0pYVHdHTVQ2dDJ4UkdBcFcwSTBJcWVFUV9BZEJpdHhCRWVUYUEiLAogICJleHBpcmVzX2luIjogMzU5OTksCiAgInJlZnJlc2hfZXhwaXJlc19pbiI6IDE4MDAsCiAgInJlZnJlc2hfdG9rZW4iOiAiZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJZ09pQWlTbGRVSWl3aWEybGtJaUE2SUNKbU1HVmpNelUzT0Mxa1pUQTFMVFJrWm1JdE9XRmpNQzFrWldFd01UWXpZMkV6WWpnaWZRLmV5SmxlSEFpT2pFMk16YzVORGMxTmpJc0ltbGhkQ0k2TVRZek56azBOVGMyTWl3aWFuUnBJam9pWmpJek9XTTFOelV0WXpsaFpDMDBPV05tTFRobVpHRXRNRGd3TnpjNE1EWTBZMlExSWl3aWFYTnpJam9pYUhSMGNEb3ZMMnh2WTJGc2FHOXpkRG80TURneEwyRjFkR2d2Y21WaGJHMXpMM1JsYzNSeklpd2lZWFZrSWpvaWFIUjBjRG92TDJ4dlkyRnNhRzl6ZERvNE1EZ3hMMkYxZEdndmNtVmhiRzF6TDNSbGMzUnpJaXdpYzNWaUlqb2lOREF4WlRWalpHRXROekV6T1MwMFl6bGpMV0ZqTWpVdFlXSXhZVEU1TWpZelpETTVJaXdpZEhsd0lqb2lVbVZtY21WemFDSXNJbUY2Y0NJNkluTndjbWx1Wnkxa1pXMXZJaXdpYzJWemMybHZibDl6ZEdGMFpTSTZJamxtWldNMU9ETTVMVEl6WW1VdE5HTmtZaTA0WWpsa0xURTBPRGs0T1RZek16WmlZaUlzSW5OamIzQmxJam9pY0hKdlptbHNaU0JsYldGcGJDSXNJbk5wWkNJNklqbG1aV00xT0RNNUxUSXpZbVV0TkdOa1lpMDRZamxrTFRFME9EazRPVFl6TXpaaVlpSjkuUkNpVmNGbGtLM2hrSHRGaFZKSEt6ZTFvQmZfdXBtQjZ2eFZ1WnlDV1l4ayIsCiAgInRva2VuX3R5cGUiOiAiQmVhcmVyIiwKICAibm90LWJlZm9yZS1wb2xpY3kiOiAwLAogICJzZXNzaW9uX3N0YXRlIjogIjlmZWM1ODM5LTIzYmUtNGNkYi04YjlkLTE0ODk4OTYzMzZiYiIsCiAgInNjb3BlIjogInByb2ZpbGUgZW1haWwiCn0KYGBgCgpPbmNlIHlvdSBoYXZlIHRoZSBhY2Nlc3MgdG9rZW4sIHlvdSBjYW4gdXNlIGl0IHRvIEF1dGhvcml6ZSBTd2FnZ2VyIFVJJ3MgcmVxdWVzdHMgYnkgCmNsaWNraW5nIG9uIHRoZSBgQXV0aG9yaXplYCBidXR0b24gYW5kIHBhc3RpbmcgdGhlIHZhbHVlIGludG8gdGhlIGZpZWxkLiBJZiB5b3Ugb3B0CnRvIHdvcmsgd2l0aCB0cmFkaXRpb25hbCBIVFRQIHJlcXVlc3RzLCBtYWtlIHN1cmUgdG8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgYEF1dGhvcml6YXRpb25gCmhlYWRlciB0byBiZSBvZiB0eXBlIGBCZWFyZXJgLCBoZXJlJ3MgYW4gZXhhbXBsZSB3aXRoIHRoZSBhY2Nlc3MgdG9rZW4gZnJvbSBhYm92ZToKCmBgYGh0dHAgcmVxdWVzdApHRVQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL25vdGVzCkFjY2VwdDogYXBwbGljYXRpb24vanNvbgpBdXRob3JpemF0aW9uOiBCZWFyZXIgZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJZ09pQWlTbGRVSWl3aWEybGtJaUE2SUNKbU1HVmpNelUzT0Mxa1pUQTFMVFJrWm1JdE9XRmpNQzFrWldFd01UWXpZMkV6WWpnaWZRLmV5SmxlSEFpT2pFMk16YzVORGMxTmpJc0ltbGhkQ0k2TVRZek56azBOVGMyTWl3aWFuUnBJam9pWmpJek9XTTFOelV0WXpsaFpDMDBPV05tTFRobVpHRXRNRGd3TnpjNE1EWTBZMlExSWl3aWFYTnpJam9pYUhSMGNEb3ZMMnh2WTJGc2FHOXpkRG80TURneEwyRjFkR2d2Y21WaGJHMXpMM1JsYzNSeklpd2lZWFZrSWpvaWFIUjBjRG92TDJ4dlkyRnNhRzl6ZERvNE1EZ3hMMkYxZEdndmNtVmhiRzF6TDNSbGMzUnpJaXdpYzNWaUlqb2lOREF4WlRWalpHRXROekV6T1MwMFl6bGpMV0ZqTWpVdFlXSXhZVEU1TWpZelpETTVJaXdpZEhsd0lqb2lVbVZtY21WemFDSXNJbUY2Y0NJNkluTndjbWx1Wnkxa1pXMXZJaXdpYzJWemMybHZibDl6ZEdGMFpTSTZJamxtWldNMU9ETTVMVEl6WW1VdE5HTmtZaTA0WWpsa0xURTBPRGs0T1RZek16WmlZaUlzSW5OamIzQmxJam9pY0hKdlptbHNaU0JsYldGcGJDSXNJbk5wWkNJNklqbG1aV00xT0RNNUxUSXpZbVV0TkdOa1lpMDRZamxrTFRFME9EazRPVFl6TXpaaVlpSjkuUkNpVmNGbGtLM2hrSHRGaFZKSEt6ZTFvQmZfdXBtQjZ2eFZ1WnlDV1l4awpgYGAKCiMjIENvbnRyaWJ1dGluZwoKVGhpcyBwcm9qZWN0IGlzIG1lYW50IHRvIGJlIGEgd2F5IG9mIHNob3djYXNpbmcgc29tZSBvZiB0aGUgYmVzdCBwcmFjdGljZXMgYW5kIAp0ZWNobm9sb2dpZXMgSSd2ZSBjb21lIGFjcm9zcyBpbiB0aGUgcGFzdCBmZXcgeWVhcnMuIEknbSBhbHdheXMgaW50ZXJlc3RlZCBpbgpsZWFybmluZyBtb3JlLCBkaXNjdXNzaW5nIGRpZmZlcmVudCBwb2ludHMgb2Ygdmlld3MgYW5kIGFwcHJvYWNoZXMuIElmIHlvdSBjYW4KY29udHJpYnV0ZSB0byB0aGlzIHJlcG9zaXRvcnkgaW4gYW55IG1lYW5pbmdmdWwgd2F5LCBiZSBpdCBieSBzaG93Y2FzaW5nIHNvbWV0aGluZwpuZXcgb3IgaW1wcm92aW5nIHdoYXQgaGFzIGJlZW4gaW1wbGVtZW50ZWQgYWxyZWFkeSwgeW91IGFyZSBtb3JlIHRoYW4gd2VsY29tZSB0bwpvcGVuIGEgcHVsbCByZXF1ZXN0IGFuZCBzdGFydCBhIGRpc2N1c3Npb24h readmeEtag: '"1fac9e76a587c109e41ac069da91cece9f5f2569"' readmeLastModified: Wed, 22 Dec 2021 23:31:44 GMT repositoryId: 424862094 description: >- Demo microservice implemented with Spring Boot, showcasing tools such as Gradle, JaCoCo, Testcontainers and others created: '2021-11-05T07:27:48Z' updated: '2023-08-03T18:29:25Z' language: Java archived: true stars: 3 watchers: 1 forks: 0 owner: jorgebsa logo: https://avatars.githubusercontent.com/u/7410139?v=4 repoEtag: '"70282506b3ace4542d4b35136f861b57be6829b14ec9bd01c7b46b4e23ceaf60"' repoLastModified: Thu, 03 Aug 2023 18:29:25 GMT foundInMaster: true category: - Testing - Server Implementations id: 8caced4e5b7df4143e574e47313418d4 - source: openapi3 tags repository: https://github.com/ninjanas/forteapi v3: true id: b3809529738bd1da943a65032673b5ae repositoryMetadata: base64Readme: >- IyBGb3J0ZUFQSQo8ZGl2IGFsaWduPSJjZW50ZXIiPgo8aDM+PC9oMz4KPGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgc3JjPSJodHRwczovL2ltZy5pY29uczguY29tL2lvcy1maWxsZWQvMTAwL2N1cmx5LWJyYWNrZXRzLnBuZyIgYWx0PSJjdXJseS1icmFja2V0cyIvPgo8aDM+PC9oMz4KPC9kaXY+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgo8aW1nIGFsdD0iR2l0SHViIGxhc3QgY29tbWl0IChicmFuY2gpIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L05pbmphTmFzL0ZvcnRlQVBJL21haW4iPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTmluamFOYXMvRm9ydGVBUEkvaXNzdWVzIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL05pbmphTmFzL0ZvcnRlQVBJIiBhbHQ9Imlzc3VlcyAtIEZvcnRlQVBJIj48L2E+CjxpbWcgYWx0PSJHaXRIdWIgUmVwbyBzdGFycyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zdGFycy9OaW5qYU5hcy9Gb3J0ZUFQSSI+CjxhIGhyZWY9Imh0dHBzOi8vdHlwZXNjcmlwdGxhbmcub3JnIiB0aXRsZT0iR28gdG8gVHlwZVNjcmlwdCBob21lcGFnZSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvVHlwZVNjcmlwdC01LWJsdWU/bG9nbz10eXBlc2NyaXB0JmxvZ29Db2xvcj13aGl0ZSIgYWx0PSJNYWRlIHdpdGggVHlwZVNjcmlwdCI+PC9hPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTmluamFOYXMvRm9ydGVBUEkvYmxvYi9tYWluL0xJQ0VOU0UiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtTUlULWJsdWUiIGFsdD0iTGljZW5zZSI+PC9hPgoKRm9ydGUgQVBJIGlzIGEgbXVzaWMgdGhlb3J5IEFQSSB0aGF0IHByb3ZpZGVzIGEgd2F5IHRvIHF1ZXJ5IHNldCBjbGFzc2VzIGluIDEyIHRvbmUgZXF1YWwgdGVtcGVyYW1lbnQuIEl0IHVzZXMgZGF0YSBzY3JhcGVkIGZyb20gdGhpcyA8YSBocmVmPSJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX3NldF9jbGFzc2VzIj53aWtpcGVkaWEgcGFnZTwvYT4gdG8gcHJvdmlkZSBGb3J0ZSBudW1iZXJzLCBwcmltZSBmb3JtcywgaW50ZXJ2YWwgdmVjdG9ycywgenlnb3RpYyBvciB0d2lubmVkIHNldHMsIGFuZCBjb21wbGVtZW50cyBvZiBzZXRzLgoKIyMKCioqQ3VycmVudGx5IHRoaXMgQVBJIGlzIGxpdmUgW2hlcmVdKGh0dHBzOi8vaGNkYThmOGR0ay5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9wcm9kL2FwaS9kYXRhLykgdXNpbmcgQVdTIEFQSSBHYXRld2F5ICsgQVdTIExhbWJkYSEqKgoqKkNoZWNrIG91dCB0aGUgT3BlbkFQSSBkb2NzIG9uIFN3YWdnZXJIdWIgW2hlcmVdKGh0dHBzOi8vYXBwLnN3YWdnZXJodWIuY29tL2FwaXMtZG9jcy9OaW5qYU5hcy9Gb3J0ZUFQSS8xLjMuMSkhKioKCioqVGhlIEFQSSBpcyByYXRlLWxpbWl0ZWQgYXQgNTAwIHJlcXVlc3RzIHBlciBkYXkuIE1ha2UgYW4gaXNzdWUgaWYgeW91IG5lZWQgbW9yZSByZXF1ZXN0cy4qKgoKKipQbGVhc2UgbWFrZSBhbiBpc3N1ZSBmb3IgYW55IGJ1Z3MgYW5kIHR5cG9zIHlvdSBtYXkgZmluZCEqKgoKPC9kaXY+CgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbQXBwIEV4YW1wbGVdKCNhcHAtZXhhbXBsZSkKLSBbV2hhdCBhcmUgRm9ydGUgTnVtYmVycz8gYW5kIE1vcmUhXSgjd2hhdC1hcmUtZm9ydGUtbnVtYmVycy1hbmQtbW9yZSkKICAtIFtTZXQgVGhlb3J5XSgjc2V0LXRoZW9yeSkKICAtIFtQcmltZSBGb3JtXSgjcHJpbWUtZm9ybSkKICAtIFtJbnRlcnZhbCBWZWN0b3JdKCNpbnRlcnZhbC12ZWN0b3IpCiAgLSBbRm9ydGUgTnVtYmVyc10oI2ZvcnRlLW51bWJlcnMpCiAgLSBbQ29tcGxlbWVudHNdKCNjb21wbGVtZW50cykKLSBbU2hvdWxkIEkgdXNlIHRoaXMgQVBJP10oI3Nob3VsZC1pLXVzZS10aGlzLWFwaSkKLSBbRGF0YVNldCBUeXBlXSgjZGF0YXNldC10eXBlKQotIFtTdGF0dXMgQ29kZXNdKCNzdGF0dXMtY29kZXMpCi0gW0VuZHBvaW50c10oI2VuZHBvaW50cykKICAtIFtHRVQgL2FwaS9kYXRhL10oI2dldC1hcGlkYXRhKQogIC0gW0dFVCAvYXBpL2RhdGEvOnF1ZXJ5UHJvcC9dKCNnZXQtYXBpZGF0YXF1ZXJ5cHJvcCkKICAtIFtHRVQgL2FwaS9mbGF0ZGF0YS86cXVlcnlwcm9wL10oI2dldC1hcGlmbGF0ZGF0YXF1ZXJ5cHJvcCkKICAgIC0gW251bWJlcl0oI251bWJlcikKICAgIC0gW3ByaW1lRm9ybV0oI3ByaW1lZm9ybSkKICAgIC0gW3ZlY10oI3ZlYykKICAgIC0gW3pdKCN6KQogICAgLSBbY29tcGxlbWVudF0oI2NvbXBsZW1lbnQpCiAgICAtIFtpbnZlcnNpb25dKCNpbnZlcnNpb24pCiAgLSBbR0VUIC9hcGkvaGFzaGRhdGEvOnF1ZXJ5UHJvcEtleS86cXVlcnlQcm9wVmFsdWUvXSgjZ2V0LWFwaWhhc2hkYXRhcXVlcnlwcm9wa2V5cXVlcnlwcm9wdmFsdWUpCiAgLSBbR0VUIC9hcGkvZGF0YS9udW1iZXIvOnF1ZXJ5U2VhcmNoL10oI2dldC1hcGlkYXRhbnVtYmVycXVlcnlzZWFyY2gpCiAgICAtIFtFeGFjdCBTZWFyY2hdKCNleGFjdC1zZWFyY2gpCiAgICAtIFtTdGFydHMgV2l0aCBTZWFyY2hdKCNzdGFydHMtd2l0aC1zZWFyY2gpCiAgICAtIFtFbmRzIFdpdGggU2VhcmNoXSgjZW5kcy13aXRoLXNlYXJjaCkKICAgIC0gW0NvbnRhaW5zIFNlYXJjaF0oI2NvbnRhaW5zLXNlYXJjaCkKICAgIC0gW1N1YnN0cmluZyBTZWFyY2hdKCNzdWJzdHJpbmctc2VhcmNoKQogICAgLSBbTm90IFNlYXJjaF0oI25vdC1zZWFyY2gpCiAgICAtIFtFeGNsdWRlIFNlYXJjaF0oI2V4Y2x1ZGUtc2VhcmNoKQogICAgLSBbQ2hhaW5pbmcgTWV0aG9kc10oI2NoYWluaW5nLW1ldGhvZHMtbm8tZHVwbGljYXRlcykKICAtIFtHRVQgL2FwaS9kYXRhL3ByaW1lRm9ybS86cXVlcnlTZWFyY2gvXSgjZ2V0LWFwaWRhdGFwcmltZWZvcm1xdWVyeXNlYXJjaCkKICAgIC0gW0V4YWN0IFNlYXJjaF0oI2V4YWN0LXNlYXJjaC0xKQogICAgLSBbU3RhcnRzIFdpdGggU2VhcmNoXSgjc3RhcnRzLXdpdGgtc2VhcmNoLTEpCiAgICAtIFtFbmRzIFdpdGggU2VhcmNoXSgjZW5kcy13aXRoLXNlYXJjaC0xKQogICAgLSBbQ29udGFpbnMgU2VhcmNoXSgjY29udGFpbnMtc2VhcmNoLTEpCiAgICAtIFtTdWJzdHJpbmcgU2VhcmNoXSgjc3Vic3RyaW5nLXNlYXJjaC0xKQogICAgLSBbTm90IFNlYXJjaF0oI25vdC1zZWFyY2gtMSkKICAgIC0gW0V4Y2x1ZGUgU2VhcmNoXSgjZXhjbHVkZS1zZWFyY2gtMSkKICAgIC0gW0NoYWluaW5nIE1ldGhvZHNdKCNjaGFpbmluZy1tZXRob2RzLW5vLWR1cGxpY2F0ZXMtMSkKICAtIFtHRVQgL2FwaS9kYXRhL3ZlYy86cXVlcnlTZWFyY2gvXSgjZ2V0LWFwaWRhdGF2ZWNxdWVyeXNlYXJjaCkKICAgIC0gW0V4YWN0IFNlYXJjaF0oI2V4YWN0LXNlYXJjaC0yKQogICAgLSBbU3RhcnRzIFdpdGggU2VhcmNoXSgjc3RhcnRzLXdpdGgtc2VhcmNoLTIpCiAgICAtIFtFbmRzIFdpdGggU2VhcmNoXSgjZW5kcy13aXRoLXNlYXJjaC0yKQogICAgLSBbQ29udGFpbnMgU2VhcmNoXSgjY29udGFpbnMtc2VhcmNoLTIpCiAgICAtIFtTdWJzdHJpbmcgU2VhcmNoXSgjc3Vic3RyaW5nLXNlYXJjaC0yKQogICAgLSBbTm90IFNlYXJjaF0oI25vdC1zZWFyY2gtMikKICAgIC0gW0V4Y2x1ZGUgU2VhcmNoXSgjZXhjbHVkZS1zZWFyY2gtMikKICAgIC0gW0NoYWluaW5nIE1ldGhvZHNdKCNjaGFpbmluZy1tZXRob2RzLW5vLWR1cGxpY2F0ZXMtMikKICAtIFtHRVQgL2FwaS9kYXRhL3ZlYy86cXVlcnlTZWFyY2gvOnF1ZXJ5SW5lcXVhbGl0eV0oI2dldC1hcGlkYXRhdmVjcXVlcnlzZWFyY2hxdWVyeWluZXF1YWxpdHkpCiAgICAtIFtFcXVhbCBTZWFyY2hdKCNlcXVhbC1zZWFyY2gpCiAgICAtIFtMZXNzIFRoYW4gU2VhcmNoXSgjbGVzcy10aGFuLXNlYXJjaCkKICAgIC0gW0xlc3MgVGhhbiBPciBFcXVhbCBUbyBTZWFyY2hdKCNsZXNzLXRoYW4tb3ItZXF1YWwtdG8tc2VhcmNoKQogICAgLSBbR3JlYXRlciBUaGFuIFNlYXJjaF0oI2dyZWF0ZXItdGhhbi1zZWFyY2gpCiAgICAtIFtHcmVhdGVyIFRoYW4gT3IgRXF1YWwgVG8gU2VhcmNoXSgjZ3JlYXRlci10aGFuLW9yLWVxdWFsLXRvLXNlYXJjaCkKICAtIFtHRVQgL2FwaS9kYXRhL3ovOnF1ZXJ5U2VhcmNoL10oI2dldC1hcGlkYXRhenF1ZXJ5c2VhcmNoKQogICAgLSBbRXhhY3QgU2VhcmNoXSgjZXhhY3Qtc2VhcmNoLTMpCiAgICAtIFtTdGFydHMgV2l0aCBTZWFyY2hdKCNzdGFydHMtd2l0aC1zZWFyY2gtMykKICAgIC0gW0VuZHMgV2l0aCBTZWFyY2hdKCNlbmRzLXdpdGgtc2VhcmNoLTMpCiAgICAtIFtDb250YWlucyBTZWFyY2hdKCNjb250YWlucy1zZWFyY2gtMykKICAgIC0gW1N1YnN0cmluZyBTZWFyY2hdKCNzdWJzdHJpbmctc2VhcmNoLTMpCiAgICAtIFtOb3QgU2VhcmNoXSgjbm90LXNlYXJjaC0zKQogICAgLSBbRXhjbHVkZSBTZWFyY2hdKCNleGNsdWRlLXNlYXJjaC0zKQogICAgLSBbQ2hhaW5pbmcgTWV0aG9kc10oI2NoYWluaW5nLW1ldGhvZHMtbm8tZHVwbGljYXRlcy0zKQogIC0gW0dFVCAvYXBpL2RhdGEvY29tcGxlbWVudC86cXVlcnlTZWFyY2gvXSgjZ2V0LWFwaWRhdGFjb21wbGVtZW50cXVlcnlzZWFyY2gpCiAgICAtIFtFeGFjdCBTZWFyY2hdKCNleGFjdC1zZWFyY2gtNCkKICAgIC0gW1N0YXJ0cyBXaXRoIFNlYXJjaF0oI3N0YXJ0cy13aXRoLXNlYXJjaC00KQogICAgLSBbRW5kcyBXaXRoIFNlYXJjaF0oI2VuZHMtd2l0aC1zZWFyY2gtNCkKICAgIC0gW0NvbnRhaW5zIFNlYXJjaF0oI2NvbnRhaW5zLXNlYXJjaC00KQogICAgLSBbU3Vic3RyaW5nIFNlYXJjaF0oI3N1YnN0cmluZy1zZWFyY2gtNCkKICAgIC0gW05vdCBTZWFyY2hdKCNub3Qtc2VhcmNoLTQpCiAgICAtIFtFeGNsdWRlIFNlYXJjaF0oI2V4Y2x1ZGUtc2VhcmNoLTQpCiAgICAtIFtDaGFpbmluZyBNZXRob2RzXSgjY2hhaW5pbmctbWV0aG9kcy1uby1kdXBsaWNhdGVzLTQpCiAgLSBbR0VUIC9hcGkvZGF0YS9pbnZlcnNpb24vOnF1ZXJ5U2VhcmNoL10oI2dldC1hcGlkYXRhaW52ZXJzaW9ucXVlcnlzZWFyY2gpCiAgICAtIFtFeGFjdCBTZWFyY2hdKCNleGFjdC1zZWFyY2gtNSkKICAgIC0gW1N0YXJ0cyBXaXRoIFNlYXJjaF0oI3N0YXJ0cy13aXRoLXNlYXJjaC01KQogICAgLSBbRW5kcyBXaXRoIFNlYXJjaF0oI2VuZHMtd2l0aC1zZWFyY2gtNSkKICAgIC0gW0NvbnRhaW5zIFNlYXJjaF0oI2NvbnRhaW5zLXNlYXJjaC01KQogICAgLSBbU3Vic3RyaW5nIFNlYXJjaF0oI3N1YnN0cmluZy1zZWFyY2gtNSkKICAgIC0gW05vdCBTZWFyY2hdKCNub3Qtc2VhcmNoLTUpCiAgICAtIFtFeGNsdWRlIFNlYXJjaF0oI2V4Y2x1ZGUtc2VhcmNoLTUpCiAgICAtIFtDaGFpbmluZyBNZXRob2RzXSgjY2hhaW5pbmctbWV0aG9kcy1uby1kdXBsaWNhdGVzLTUpCiAgLSBbR0VUIC9hcGkvZGF0YS86cXVlcnlQcm9wL1BST1BFUlRZL3F1ZXJ5U2VhcmNoXSgjZ2V0LWFwaWRhdGFxdWVyeXByb3Bwcm9wZXJ0eXF1ZXJ5c2VhcmNoKQogICAgLSBbRW5kcG9pbnRzXSgjZW5kcG9pbnRzLTEpIAogIC0gW0dFVCAvYXBpL2RhdGEvZDMvOnF1ZXJ5U2VhcmNoL10oI2dldC1hcGlkYXRhZDNxdWVyeXNlYXJjaCkKICAgIC0gW1R5cGVzXSgjdHlwZXMpCiAgICAtIFtDYXJkaW5hbGl0eS1JbmNyZWFzaW5nIHZzIFN0cmljdC1JbmNyZWFzaW5nXSgjY2FyZGluYWxpdHktaW5jcmVhc2luZy12cy1zdHJpY3QtaW5jcmVhc2luZykKICAgIC0gW1ZlY3Rvci1TaW1pbGFyaXR5XSgjdmVjdG9yLXNpbWlsYXJpdHkpCiAgICAtIFtPcmlnaW5hbCB2cyBJbnZlcnNpb25dKCNvcmlnaW5hbC12cy1pbnZlcnNpb24pCiAgICAtIFtNYW51YWwgQ29uc3RydWN0aW9uXSgjbWFudWFsLWNvbnN0cnVjdGlvbikKICAgICAgICAtIFtGZXRjaF0oI2ZldGNoKQogICAgCS0gW0xpbmtzXSgjbGlua3MpCiAgICAgCS0gW0RhZ10oI2RhZykKICAgIC0gW0hvdyB0byBVc2UgSlNPTiBpbiBEM0RhZ10oI2hvdy10by11c2UtanNvbi1pbi1kM2RhZykKICAgIC0gW0VuZHBvaW50c10oI2VuZHBvaW50cykKLSBbQVBJIERldmVsb3BtZW50XSgjYXBpLWRldmVsb3BtZW50KQogIC0gW0FkZCAuZW52IEZpbGVdKCNhZGQtZW52LWZpbGUpCi0gW1N0YXIgVGhpcyBSZXBvXSgjc3Rhci10aGlzLXJlcG8pCgojIyBBcHAgRXhhbXBsZQoKQ2hlY2sgb3V0IG15IGFwcCBbc2V0LWNsYXNzLXZpc3VhbGl6ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9OaW5qYU5hcy9zZXQtY2xhc3MtdmlzdWFsaXplcikgdXNpbmcgRm9ydGVBUEkgdG8gc2VydmUgaXRzIGRhdGEgYW5kIGRhZ3MhCgojIyBXaGF0IGFyZSBGb3J0ZSBOdW1iZXJzPyBhbmQgTW9yZSEKCklmIHlvdSBoYXZlIHRoZSB0aW1lIHdhdGNoIHRoaXMgZ3JlYXQgcGxheWxpc3Qgb2YgdmlkZW9zIGJ5IEpheSBCZWFyZCBvbiBbbXVzaWNhbCBzZXQgdGhlb3J5XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTNmZV9OYXRFNXc4Jmxpc3Q9UExLV0lSTFFuZmF3MUtVTVRHM2I5bUZydDBEM01GSHZQRikhCgpCZWZvcmUgZ2V0dGluZyBpbnRvIEZvcnRlIG51bWJlcnMgd2Ugc2hvdWxkIGxlYXJuIGJhc2ljIHNldCB0aGVvcnksIHByaW1lIGZvcm0sIGFuZCBpbnRlcnZhbCB2ZWN0b3JzLgoKIyMjIFNldCBUaGVvcnkKClRoZXJlIGFyZSAxMiBub3RlcyBvciAxMiBwaXRjaCBjbGFzc2VzIGluIDEyIHRvbmUgZXF1YWwgdGVtcGVyYW1lbnQuCgpXZSBjYW4gbGFiZWwgdGhlbSBhcyBzbzoKClNldCBUaGVvcnkgTGFiZWxzOiAqKjAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIFQsIEUgKDAgdG8gMTEpKioKCk5vdGUgTmFtZXM6ICoqQywgQyMvRGIsIEQsIEQjL0ViLCBFLCBGLCBGIy9HYiwgRywgRyMvQWIsIEEsIEEjL0JiLCBCKioKCiMjIyBQcmltZSBGb3JtCgpQcmltZSBmb3JtcyBhcmUgYSB3YXkgdG8gc3RhbmRhcmRpemUgc2V0cyBzbyB0aGV5IGNhbiBiZSBjb21wYXJlZC4gUHJpbWUgZm9ybSByZXF1aXJlcyB1cyB0byBhbHdheSB0byBoYXZlIDAgZmlyc3QgYnkgdHJhbnNwb3NpdGlvbiwgdW5sZXNzIGl0IGlzIHRoZSBlbXB0eSBzZXQsIGFuZCBoYXZlIHRoZSBzbWFsbGVzdCBpbnRlcnZhbHMgYXMgcG9zc2libGUgKGNvbXBhY3RuZXNzKSBnb2luZyBmcm9tIGxlZnQgdG8gcmlnaHQgYXMgdGhlcmUgYXJlIGRpZmZlcmVudCB3YXlzIHRvIG9yZGVyIHRoZSBzYW1lIHNldAoKLSBFeDogezAsMSwyLDR9IC0gTm90ZSB0aGF0IHsxLDIsMyw1fSBpcyBub3QgaW4gcHJpbWUgZm9ybSBhbiBpcyBhIHRyYW5zcG9zaXRpb24gb2YgezAsMSwyLDR9IGFzIHdlIGNhbiBzdWJ0cmFjdCAxIGZyb20gYWxsIG9mIHRoZSBlbGVtZW50cyB0byBtYWtlIHswLDEsMiw0fQoKIyMjIEludGVydmFsIFZlY3RvcgoKQW4gaW50ZXJ2YWwgdmVjdG9yIGlzIGEgc2l4LW51bWJlciBzZXF1ZW5jZSB0aGF0IHJlcHJlc2VudHMgdGhlIGRpc3RyaWJ1dGlvbiBvZiBpbnRlcnZhbHMgd2l0aGluIGEgcGl0Y2gtY2xhc3Mgc2V0LiBFYWNoIG51bWJlciBpbiB0aGUgdmVjdG9yIGluZGljYXRlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIGEgc3BlY2lmaWMgaW50ZXJ2YWwgKGZyb20gMSB0byA2IHNlbWl0b25lcykgYXBwZWFycyBiZXR3ZWVuIGFueSB0d28gcGl0Y2hlcyBpbiB0aGUgc2V0LgoKLSBFeDogPDYsNCw1LDYsNSwyPgotIEV4OiA8QyxDLEMsQyxDLDY+IChDIHN0YW5kcyBmb3IgMTIgaGVyZSkKCiMjIyBGb3J0ZSBOdW1iZXJzCgpGb3J0ZSBudW1iZXJzIGFyZSBhIHN5c3RlbSBvZiBsYWJlbGluZyBwaXRjaC1jbGFzcyBzZXRzIGluIHRoZSBtdXNpY2FsIHNldCB0aGVvcnksIG5hbWVkIGFmdGVyIHRoZSBtdXNpY29sb2dpc3QgQWxsZW4gRm9ydGUgd2hvIGRldmlzZWQgdGhpcyBjbGFzc2lmaWNhdGlvbiBzeXN0ZW0uIFRoZXkgb2ZmZXIgYSBzeXN0ZW1hdGljIHdheSB0byBjYXRhbG9nIGFuZCBzdHVkeSB0aGUgdmFyaW91cyBwaXRjaC1jbGFzcyBzZXRzIGluIHR3ZWx2ZS10b25lIG11c2ljLgoKVGhlIGxhYmVscyBhcmUgc3RydWN0dXJlZCBieSBjYXJkaW5hbGl0eS1vcmRpbmFsIG51bWJlci4KCi0gRXguIDMtNiBtZWFuaW5nIHRoZSA2dGggc2V0IGluIG9yZGVyIG9mIHNldHMgY29udGFpbmluZyAzIHBpdGNoIGNsYXNzZXMvbm90ZXMuCi0gSW4gZ2VuZXJhbCB0aGUgc21hbGxlciB0aGUgb3JkaW5hbCBudW1iZXIgdGhlIG1vcmUgY29tcGFjdCB0aGUgc2V0IGlzLgoKQWxsZW4gRm9ydGUgZGlkIG5vdCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gaW52ZXJzaW9ucyBpbiBoaXMgYm9vayBzbyAzLTExQSBhbmQgMy0xMUIgd291bGQganVzdCBiZSAzLTExIHVzaW5nIDMtMTFBIGFzIGl0cyBtb3N0IGNvbXBhY3QgZm9ybS4gTGF0ZXIgb24sIG5vdGF0aW9uIHdhcyBtYWRlIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBpbnZlcnNpb25zLiBJZiB0aGVyZSBpcyBBIG9yIEIgYXBwZW5kZWQgdG8gdGhlIGVuZCBpdCBtZWFucyB0aGF0IHNldCBoYXMgYSBkaXN0aW5jdCBpbnZlcnNpb24sIHdoZXJlIEEgaXMgZ2l2ZW4gdG8gdGhlIG1vc3QgY29tcGFjdCB2ZXJzaW9uLiBCb3RoIEEgYW5kIEIgc2V0cyBzaGFyZSB0aGUgc2FtZSBpbnRlcnZhbCB2ZWN0b3IuCgotIEV4LiAzLTExQSBhbmQgMy0xMUIKLSAzLTExQSBoYXMgYSBwcmltZSBmb3JtIG9mIHswLDMsN30gYW5kIDMtMTFCIGhhcyBhIHByaW1lIGZvcm0gb2YgezAsMyw3fQotIExldCdzIGludmVydCB7MCwzLDd9IGluIHRoaXMgc3lzdGVtIHdlIGFyZSB1c2luZyBtb2QgMTIgYmVjYXVzZSB3ZSBoYXZlIDEyIHBpdGNoIGNsYXNzZXMKLSB7MTItMCBtb2QgMTIsIDEyLTMgbW9kIDEyLCAxMi03IG1vZCAxMn0gPSB7MCwgOSwgNX0KLSBPcmRlciBmb3IgY29tcGFjdG5lc3M6IHs1LCA5LCAwfSBoYXMgdGhlIHNtYWxsZXN0IGludGVydmFscyBnb2luZyBmcm9tIGxlZnQgdG8gcmlnaHQKLSBUcmFuc3Bvc2Ugc28gZmlyc3QgZWxlbWVudCBpcyAwOiB7NS01LCA5LTUsIDEyKDApLTUpID0gezAsNCw3fQoKSWYgdGhlcmUgaXMgYSBaIGluIHRoZSBGb3J0ZSBudW1iZXIgdGhpcyBtZWFucyBpdCBpcyBhIHp5Z290aWMvdHdpbm5lZCBzZXQgdGhhdCBoYXMgYSB0d2luIHNldCB3aXRoIHRoZSBzYW1lIGludGVydmFsIHZlY3RvciBhbmQgaXMgbm90IGFuIGludmVyc2lvbiBvZiB0aGUgc2V0LiBJbiB0aGlzIEFQSSwgdGhlIFogcHJvcGVydHkgaXMgbGlua2VkIG9ubHkgQSB3aGVuIGFwcGxpY2FibGUgZm9yIGNvbnNpc3RlbmN5LgoKLSBFeDogNC16MTVBIGFuZCA0LXoyOUEKLSBFeDogNi16NCBhbmQgNi16MzcKCiMjIyBDb21wbGVtZW50cwoKQ29tcGxlbWVudHMgYXJlIHBhaXJzIG9mIHNldHMgdGhhdCBhZGQgdXAgdG8gc2V0IHdpdGggYWxsIHBpdGNoIGNsYXNzZXMgezAsMSwyLDMsNCw1LDYsNyw4LDksVCxFfS4gSWYgYSBzZXQgZG9lcyBub3QgaGF2ZSBhIGNvbXBsZW1lbnQgdGhhdCBtZWFucyB0aGV5IGFyZSBhIGNvbXBsZW1lbnQgb2YgdGhlbXNlbHZlcwoKLSBFeDogUHJpbWUgZm9ybSBvZiB7fSBpcyBhIGNvbXBsZW1lbnQgb2YgezAsMSwyLDMsNCw1LDYsNyw4LDksVCxFfQotIEV4OiB7MCwxLDMsNH0gaXMgYSBjb21wbGVtZW50IG9mIHswLDEsMiwzLDQsNSw2LDl9IGFmdGVyIHNvbWUgdHJhbnNwb3NpdGlvbgoKIyMgU2hvdWxkIEkgdXNlIHRoaXMgQVBJPwoKWW91IHNob3VsZCBvbmx5IHVzZSB0aGlzIEFQSSBlaXRoZXIgaWYgeW91IGNhcmUgYWJvdXQgeW91ciBpbnRpdGFsIGxvYWQgdGltZXMgYXMgdGhlIGZ1bGwgZGF0YSBzaXplIGlzIH40MktCIG9yIGlmIHlvdSB3YW50IGEgcHJlYnVpbHQgc29sdXRpb24gdG8gcXVlcnkgc2V0IGNsYXNzZXMuIFlvdSBjYW4gdXNlIHRoaXMgQVBJIHRvIGdldCBhbmQgc2VydmUgcHJlYnVpbHQgZDNkYWcgZ3JhcGhzIGZvciB2aXN1YWxpemF0aW9uIG9yIHRoZSBqdXN0IHRoZSBsaW5rcyBmb3IgeW91IHRvIGNyZWF0ZSB5b3VyIG93biBjdXN0b20gZ3JhcGhzLiAKCklmIHlvdSBkbyBub3QgbmVlZCB0byB1c2UgdGhpcyBBUEksIHlvdSBzaG91bGQganVzdCBkb3dubG9hZCB0aGUganNvbiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL05pbmphTmFzL0ZvcnRlQVBJL2Jsb2IvbWFpbi9kYXRhL3NldF9jbGFzc2VzLmpzb24pLiBSZXBvcnQgYW55IHR5cG9zIHlvdSBtYXkgZmluZCBvciBzdWdnZXN0IG5ldyBwcm9wZXJ0aWVzLgoKVGhlcmUgYXJlIGFsc28gZDNkYWcgZ3JhcGhzIGFuZCBsaW5rcyBhdmFsaWFibGUgaW4gSlNPTiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL05pbmphTmFzL0ZvcnRlQVBJL2Jsb2IvbWFpbi9kYXRhL2QzKS4KCiMjIERhdGFTZXQgVHlwZQoKKipOb3RlOiBQcm9wZXJ0aWVzIGFyZSBjYXNlLXNlbnNpdGl2ZSEqKgoKYGBgdHMKdHlwZSBEYXRhU2V0ID0gewoJbnVtYmVyOiBzdHJpbmc7CglwcmltZUZvcm06IHN0cmluZzsgLy8gY2FuIGJlIGVhc2lseSBmb3JtYXR0ZWQgdG8gYSBzdHJpbmdbXSBieSBKU09OLnBhcnNlKHByaW1lRm9ybVN0cmluZykKCXZlYzogc3RyaW5nOwoJejogbnVsbCB8IHN0cmluZzsKCWNvbXBsZW1lbnQ6IG51bGwgfCBzdHJpbmc7CglpbnZlcnNpb246IG51bGwgfCBzdHJpbmc7Cn1bXTsKYGBgCgojIyBTdGF0dXMgQ29kZXMKCjUwMCAtIEludGVybmFsIFNlcnZlciBFcnJvcgo0MTQgLSBVUkkgb3IgU3VicXVlcnkgVG9vIExvbmcKNDAwIC0gQmFkIFByb3BlcnR5IC8gUmVxdWVzdCBSZXR1cm5lZCBOb3RoaW5nCjIwMCAtIFN1Y2Nlc3MKCiMjIEVuZHBvaW50cwoKIyMjIEdFVCAvYXBpL2RhdGEvCgpUaGUgZW5kcG9pbnQgcmV0dXJucyBhbGwgb2YgdGhlIGRhdGEgZnJvbSBbL2RhdGEvc2V0LWNsYXNzZXMuanNvbl0oaHR0cHM6Ly9naXRodWIuY29tL05pbmphTmFzL0ZvcnRlQVBJL2Jsb2IvbWFpbi9kYXRhL3NldF9jbGFzc2VzLmpzb24pCgpgYGB0cwpbCiAgewogICAgIm51bWJlciI6ICIwLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCJcIl0iLAogICAgInZlYyI6ICI8MCwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjEyLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogICAgLi4uCiAgewogICAgIm51bWJlciI6ICIxMi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiVFwiLFwiRVwiXSIsCiAgICAidmVjIjogIjxDLEMsQyxDLEMsNj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMC0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyBHRVQgL2FwaS9kYXRhLzpxdWVyeVByb3AvCgpUaGUgZW5kcG9pbnQgcmV0dXJucyB0aGUgZnVsbCBkYXRhIGdpdmVuIHRoZSBwcm9wZXJ0aWVzIHByb3ZpZGVkIGluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QgKG51bWJlciwgcHJpbWVGb3JtLCB2ZWMsIHosIGNvbXBsZW1lbnQsIGludmVyc2lvbikKCi0gTWF4IFVSSSBsZW5ndGg6IE5vIG1vcmUgdGhhbiA0MyBjaGFyYWN0ZXJzCi0gU3VicXVlcnkgbGVuZ3RoOiAxLTEwIGNoYXJhY3RlcnMKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvbnVtYmVyClsKICB7CiAgICAibnVtYmVyIjogIjAtMSIKICB9LAogICAgLi4uCiAgewogICAgIm51bWJlciI6ICIxMi0xIgogIH0sCl07CgovLyBHRVQgL2FwaS9kYXRhL251bWJlcixwcmltZUZvcm0KWwogIHsKICAgICJudW1iZXIiOiAiMC0xIgogICAgInByaW1lRm9ybSI6ICJbXCJcIl0iLAogIH0sCiAgICAuLi4KICB7CiAgICAibnVtYmVyIjogIjEyLTEiCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIlRcIixcIkVcIl0iCiAgfSwKXTsKYGBgCgojIyMgR0VUIC9hcGkvZmxhdGRhdGEvOnF1ZXJ5UHJvcC8KClRoZSBlbmRwb2ludCByZXR1cm5zIGEgZmxhdG1hcCBvZiB0aGUgdmFsaWQgcHJvcGVydGllcyAobnVtYmVyLCBwcmltZUZvcm0sIHZlYywgeiwgY29tcGxlbWVudCwgaW52ZXJzaW9uKQoKLSBNYXggVVJJIGxlbmd0aDogTm8gbW9yZSB0aGFuIDEwIGNoYXJhY3RlcnMKCiMjIyMgbnVtYmVyCgpgYGB0cwovLyBHRVQgL2FwaS9mbGF0ZGF0YS9udW1iZXIKWyIwLTEiLCAuLi4sICI0LXoxNUEiLCAuLi4sICIxMi0xIl07CmBgYAoKIyMjIyBwcmltZUZvcm0KCmBgYHRzCi8vIEdFVCAvYXBpL2ZsYXRkYXRhL3ByaW1lRm9ybQpbIltcIlwiXSIsIC4uLiwgIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIlRcIixcIkVcIl0iXTsKYGBgCgojIyMjIHZlYwoKYGBgdHMKLy8gR0VUIC9hcGkvZmxhdGRhdGEvdmVjClsiPDAsMCwwLDAsMCwwPiIsIC4uLiwgIjxDLEMsQyxDLEMsNj4iXTsKYGBgCgojIyMjIHoKCmBgYHRzCi8vIEdFVCAvYXBpL2ZsYXRkYXRhL3oKW251bGwsIC4uLiwgIjQtejE1QSIsIC4uLiwgbnVsbF07CmBgYAoKIyMjIyBjb21wbGVtZW50CgpgYGB0cwovLyBHRVQgL2FwaS9mbGF0ZGF0YS9jb21wbGVtZW50ClsiMTItMSIsIC4uLiwgIjAtMSJdOwpgYGAKIyMjIyBpbnZlcnNpb24KCmBgYHRzCi8vIEdFVCAvYXBpL2ZsYXRkYXRhL2ludmVyc2lvbgpbIm51bGwiLCAuLi4sICJbXCIwXCIsXCIyXCIsXCI1XCIsXCI2XCJdIiwgLi4uLCAibnVsbCJdOwpgYGAKCgojIyMgR0VUIC9hcGkvaGFzaGRhdGEvOnF1ZXJ5UHJvcEtleS86cXVlcnlQcm9wVmFsdWUvCgpUaGUgZW5kcG9pbnQgcmV0dXJucyBhIGhhc2htYXAgd2l0aCB0d28gdGhlIHZhbGlkIHByb3BlcnRpZXMgKG51bWJlciwgcHJpbWVGb3JtLCB2ZWMsIHosIGNvbXBsZW1lbnQsIGludmVyc2lvbikKCi0gTWF4IFVSSSBsZW5ndGggRm9yIEJvdGggUXVlcmllczogTm8gbW9yZSB0aGFuIDEwIGNoYXJhY3RlcnMKCmBgYHRzCi8vIEdFVCAvYXBpL2hhc2hkYXRhL251bWJlci9wcmltZUZvcm0KewogICIwLTEiOiAiW1wiXCJdIiwKICAgIC4uLgogICIxMi0xIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIlRcIixcIkVcIl0iCn07CmBgYAoKCiMjIyBHRVQgL2FwaS9kYXRhL251bWJlci86cXVlcnlTZWFyY2gvCgpUaGUgZW5kcG9pbnQgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzIGJhc2VkIG9uIHRoZSBxdWVyeSBvbiB0aGUgbnVtYmVyIHByb3BlcnR5CgotIE1heCBVUkkgbGVuZ3RoOiBObyBtb3JlIHRoYW4gMTAwIGNoYXJhY3RlcnMKLSBTdWJxdWVyeSBsZW5ndGg6IDItMTUgY2hhcmFjdGVycwoJLSBFeC4gXjEgb3IgIWA2LXoyNUF+Ni16MjVCCgojIyMjIEV4YWN0IFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9udW1iZXIvMS0xClsKICB7CiAgICAibnVtYmVyIjogIjEtMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIl0iLAogICAgInZlYyI6ICI8MCwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjExLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBTdGFydHMgV2l0aCBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvbnVtYmVyL140LXoxNQpbCiAgewogICAgIm51bWJlciI6ICI0LXoxNUEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCI0XCIsXCI2XCJdIiwKICAgICJ2ZWMiOiAiPDEsMSwxLDEsMSwxPiIsCiAgICAieiI6ICI0LXoyOUEiLAogICAgImNvbXBsZW1lbnQiOiAiOC16MTVCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiNVwiLFwiNlwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNC16MTVCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiNVwiLFwiNlwiXSIsCiAgICAidmVjIjogIjwxLDEsMSwxLDEsMT4iLAogICAgInoiOiAiNC16MjlBIiwKICAgICJjb21wbGVtZW50IjogIjgtejE1QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjRcIixcIjZcIl0iCiAgfQpdOwpgYGAKCiMjIyMgRW5kcyBXaXRoIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9udW1iZXIvLXo1MCQKWwogIHsKICAgICJudW1iZXIiOiAiNi16NTAiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCI0XCIsXCI2XCIsXCI3XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDIsMiw0LDIsMywyPiIsCiAgICAieiI6ICI2LXoyOSIsCiAgICAiY29tcGxlbWVudCI6ICI2LXoyOSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKYGBgCgojIyMjIENvbnRhaW5zIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9udW1iZXIvQDEyQSBvciBHRVQgL2FwaS9kYXRhL251bWJlci9AMjFBClsKICB7CiAgICAibnVtYmVyIjogIjQtMTJBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNlwiXSIsCiAgICAidmVjIjogIjwxLDEsMiwxLDAsMT4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOC0xMkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIzXCIsXCI0XCIsXCI2XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI1LTIxQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjRcIixcIjVcIixcIjhcIl0iLAogICAgInZlYyI6ICI8MiwwLDIsNCwyLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjctMjFCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiM1wiLFwiNFwiLFwiN1wiLFwiOFwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNi16MTJBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiNFwiLFwiNlwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwzLDMsMiwyLDMsMj4iLAogICAgInoiOiAiNi16NDFBIiwKICAgICJjb21wbGVtZW50IjogIjYtejQxQiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjYtMjFBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiOFwiXSIsCiAgICAidmVjIjogIjwyLDQsMiw0LDEsMj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiBudWxsLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIyXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI4XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI3LTIxQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjRcIixcIjVcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8NCwyLDQsNiw0LDE+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjUtMjFCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiOFwiLFwiOVwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiOC0xMkEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDUsNSw2LDUsNCwzPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI0LTEyQSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjhcIixcIjlcIl0iCiAgfQpdOwpgYGAKCiMjIyMgU3Vic3RyaW5nIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9udW1iZXIvKjEyQQpbCiAgewogICAgIm51bWJlciI6ICI0LTEyQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjJcIixcIjNcIixcIjZcIl0iLAogICAgInZlYyI6ICI8MSwxLDIsMSwwLDE+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjgtMTJBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiM1wiLFwiNFwiLFwiNlwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNi16MTJBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiNFwiLFwiNlwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwzLDMsMiwyLDMsMj4iLAogICAgInoiOiAiNi16NDFBIiwKICAgICJjb21wbGVtZW50IjogIjYtejQxQiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjgtMTJBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOVwiXSIsCiAgICAidmVjIjogIjw1LDUsNiw1LDQsMz4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiNC0xMkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI4XCIsXCI5XCJdIgogIH0KXTsKYGBgCgojIyMjIFJhbmdlIFNlYXJjaCAoaW5jbHVzaXZlKQoKVGhlIG9ubHkgZmlsdGVyaW5nIG1ldGhvZHMgdGhhdCB5b3UgY2FuIHVzZSB3aXRoIHJhbmdlIHNlYXJjaCBhcmUgXGAgYW5kICEgKHdoaWNoIGlzIGFsc28gIVxgKS4KICAtIEV4OiBcYDEtMVx+Mi0xLCAhMS0xXH4yLTEsICFcYDEtMVx+Mi0xCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL251bWJlci8xLTF+Mi0xCi8vIFdBUk5JTkc6IDEtMX4xLTEgaXMgaW52YWxpZCBhbmQgd2lsbCBzZW5kIGEgNDAwIHN0YXR1cyBjb2RlLCB1c2UgMS0xIGluc3RlYWQKWwogIHsKICAgICJudW1iZXIiOiAiMS0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiXSIsCiAgICAidmVjIjogIjwwLDAsMCwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMTEtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgewogICAgIm51bWJlciI6ICIyLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCJdIiwKICAgICJ2ZWMiOiAiPDEsMCwwLDAsMCwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIxMC0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgTm90IFNlYXJjaAoKLSBXb3JrcyB3aXRoICExLTEsICFeMS0xLCAhMS0xJCwgIUBBLCAhKkEsICExLTF+Mi0yCiAgLSAhIGlzIGVxdWl2YWxlbnQgdG8gIWAgCiAgLSBgISBpcyBub3QgYSB2YWxpZCBzZWFyY2ggbWV0aG9kCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL251bWJlci8hMS0xClsKICB7CiAgICAibnVtYmVyIjogIjEtMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIl0iLAogICAgInZlYyI6ICI8MCwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjExLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogICAgLi4uLAogIHsKICAgICJudW1iZXIiOiAiMTItMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIlRcIixcIkVcIl0iLAogICAgInZlYyI6ICI8QyxDLEMsQyxDLDY+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjAtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKYGBgCgojIyMjIEV4Y2x1ZGUgU2VhcmNoCgotIFdvcmtzIHdpdGggXGAxLTEsIFxgXjEtMSwgXGAxLTEkLCBcYEBBLCBcYCpBLCBcYDEtMX4yLTIKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvbnVtYmVyLzEtMX4yLTQsYDEtMX4yLTIKWwogIHsKICAgICJudW1iZXIiOiAiMi0zIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiM1wiXSIsCiAgICAidmVjIjogIjwwLDAsMSwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMTAtMyIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgewogICAgIm51bWJlciI6ICIyLTQiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCI0XCJdIiwKICAgICJ2ZWMiOiAiPDAsMCwwLDEsMCwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIxMC00IiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgQ2hhaW5pbmcgTWV0aG9kcyAobm8gZHVwbGljYXRlcykKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvbnVtYmVyLzEtMSxeNC16MTUsLXo1MCQsMS0xfjItMSxgNC16MTVCClsKICB7CiAgICAibnVtYmVyIjogIjEtMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIl0iLAogICAgInZlYyI6ICI8MCwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjExLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogIHsKICAgICJudW1iZXIiOiAiNC16MTVBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiNFwiLFwiNlwiXSIsCiAgICAidmVjIjogIjwxLDEsMSwxLDEsMT4iLAogICAgInoiOiAiNC16MjlBIiwKICAgICJjb21wbGVtZW50IjogIjgtejE1QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjVcIixcIjZcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjYtejUwIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOVwiXSIsCiAgICAidmVjIjogIjwyLDIsNCwyLDMsMj4iLAogICAgInoiOiAiNi16MjkiLAogICAgImNvbXBsZW1lbnQiOiAiNi16MjkiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogIHsKICAgICJudW1iZXIiOiAiMi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiXSIsCiAgICAidmVjIjogIjwxLDAsMCwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMTAtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKYGBgCgojIyMgR0VUIC9hcGkvZGF0YS9wcmltZUZvcm0vOnF1ZXJ5U2VhcmNoLwoKVGhlIGVuZHBvaW50IHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBiYXNlZCBvbiB0aGUgcXVlcnkgb24gdGhlIHByaW1lRm9ybSBwcm9wZXJ0eQoKVXNlIFQgZm9yIDEwLCBFIGZvciAxMSwgYW5kIEMgZm9yIDEyLgoKLSBNYXggVVJJIGxlbmd0aDogTm8gbW9yZSB0aGFuIDEwMCBjaGFyYWN0ZXJzCi0gU3VicXVlcnkgbGVuZ3RoOiAyLTE0IGNoYXJhY3RlcnMKCS0gRXguIF4wIG9yICFgMDEyMzQ1Njc4OVRFCgojIyMjIEV4YWN0IFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9wcmltZUZvcm0vMDEyMwpbCiAgewogICAgIm51bWJlciI6ICI0LTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCJdIiwKICAgICJ2ZWMiOiAiPDMsMiwxLDAsMCwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI4LTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBTdGFydHMgV2l0aCBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvcHJpbWVGb3JtL14wMzU2ClsKICB7CiAgICAibnVtYmVyIjogIjQtMTNCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiM1wiLFwiNVwiLFwiNlwiXSIsCiAgICAidmVjIjogIjwxLDEsMiwwLDEsMT4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOC0xM0EiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIzXCIsXCI2XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI1LTI1QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjNcIixcIjVcIixcIjZcIixcIjhcIl0iLAogICAgInZlYyI6ICI8MSwyLDMsMSwyLDE+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjctMjVBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiOFwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNS16MzZCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwyLDIsMiwxLDIsMT4iLAogICAgInoiOiAiNS16MTIiLAogICAgImNvbXBsZW1lbnQiOiAiNy16MzZBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiNFwiLFwiN1wiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNi16NDBCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiXSIsCiAgICAidmVjIjogIjwzLDMsMywyLDMsMT4iLAogICAgInoiOiAiNi16MTFBIiwKICAgICJjb21wbGVtZW50IjogIjYtejExQSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjVcIixcIjhcIl0iCiAgfQpdOwpgYGAKCiMjIyMgRW5kcyBXaXRoIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9wcmltZUZvcm0vMiQKWwogIHsKICAgICJudW1iZXIiOiAiMi0yIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiXSIsCiAgICAidmVjIjogIjwwLDEsMCwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMTAtMiIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgewogICAgIm51bWJlciI6ICIzLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCJdIiwKICAgICJ2ZWMiOiAiPDIsMSwwLDAsMCwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI5LTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBDb250YWlucyBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvcHJpbWVGb3JtL0AxMjM0Njc4OQpbCiAgewogICAgIm51bWJlciI6ICI5LTVBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjw3LDYsNiw2LDcsND4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMy01QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjEwLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDksOCw4LDgsOCw0PiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIyLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogIHsKICAgICJudW1iZXIiOiAiMTAtNiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIlRcIl0iLAogICAgInZlYyI6ICI8OCw4LDgsOCw4LDU+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjItNiIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgewogICAgIm51bWJlciI6ICIxMS0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiVFwiXSIsCiAgICAidmVjIjogIjxULFQsVCxULFQsNT4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMS0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjEyLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCJUXCIsXCJFXCJdIiwKICAgICJ2ZWMiOiAiPEMsQyxDLEMsQyw2PiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIwLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBTdWJzdHJpbmcgU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL3ByaW1lRm9ybS8qMTIzNDY3ODkKWwogIHsKICAgICJudW1iZXIiOiAiOS01QSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8Nyw2LDYsNiw3LDQ+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjMtNUIiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICIxMC02IiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiVFwiXSIsCiAgICAidmVjIjogIjw4LDgsOCw4LDgsNT4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMi02IiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgTm90IFNlYXJjaAoKLSBXb3JrcyB3aXRoICEwLCAhXjAsICEwJCwgIUAwLCAhKjAsCiAgLSAhIGlzIGVxdWl2YWxlbnQgdG8gIWAgCiAgLSBgISBpcyBub3QgYSB2YWxpZCBzZWFyY2ggbWV0aG9kCi0gVXNlICUyMCBmb3Igd2hpdGVzcGFjZSBlcXVpdmFsZW50IHRvIHRoZSBlbXB0eSBhcnJheSBmb3IgMC0xICAKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvcHJpbWVGb3JtLyElMjAKWwogIHsKICAgICJudW1iZXIiOiAiMS0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiXSIsCiAgICAidmVjIjogIjwwLDAsMCwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMTEtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgICAuLi4sCiAgewogICAgIm51bWJlciI6ICIxMi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiVFwiLFwiRVwiXSIsCiAgICAidmVjIjogIjxDLEMsQyxDLEMsNj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMC0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgRXhjbHVkZSBTZWFyY2gKCi0gV29ya3Mgd2l0aCBcYDAsIFxgXjAsIFxgMCQsIFxgQDAsIFxgKjAKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvcHJpbWVGb3JtLzAxLDAxMixgMDEyClsKICB7CiAgICAibnVtYmVyIjogIjItMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIl0iLAogICAgInZlYyI6ICI8MSwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjEwLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBDaGFpbmluZyBNZXRob2RzIChubyBkdXBsaWNhdGVzKQoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9wcmltZUZvcm0vJTIwLF4wMTI1NjcsMDEyNDUkLGBAOQpbCiAgewogICAgIm51bWJlciI6ICIwLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCJcIl0iLAogICAgInZlYyI6ICI8MCwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjEyLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogIHsKICAgICJudW1iZXIiOiAiNi16NiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjVcIixcIjZcIixcIjdcIl0iLAogICAgInZlYyI6ICI8NCwyLDEsMiw0LDI+IiwKICAgICJ6IjogIjYtejM4IiwKICAgICJjb21wbGVtZW50IjogIjYtejM4IiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjctN0IiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCJdIiwKICAgICJ2ZWMiOiAiPDUsMywyLDMsNSwzPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI1LTdBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNlwiLFwiN1wiLFwiOFwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNS0zQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjRcIixcIjVcIl0iLAogICAgInZlYyI6ICI8MywyLDIsMiwxLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjctM0IiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIzXCIsXCI0XCIsXCI1XCJdIgogIH0KXTsKYGBgCgojIyMgR0VUIC9hcGkvZGF0YS92ZWMvOnF1ZXJ5U2VhcmNoLwoKVGhlIGVuZHBvaW50IHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBiYXNlZCBvbiB0aGUgcXVlcnkgb24gdGhlIHZlYyBwcm9wZXJ0eQoKVXNlIFQgZm9yIDEwLCBFIGZvciAxMSwgYW5kIEMgZm9yIDEyLgoKLSBNYXggVVJJIGxlbmd0aDogTm8gbW9yZSB0aGFuIDEwMCBjaGFyYWN0ZXJzCi0gU3VicXVlcnkgbGVuZ3RoOiAyLTggY2hhcmFjdGVycwoJLSBFeC4gXjEgb3IgIWAwMDAwMDAKIAojIyMjIEV4YWN0IFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS92ZWMvMzIxMDAwClsKICB7CiAgICAibnVtYmVyIjogIjQtMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIl0iLAogICAgInZlYyI6ICI8MywyLDEsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjgtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKYGBgCgojIyMjIFdpbGRjYXJkIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS92ZWMvMTEyMVgxCi8vIGNhcGl0YWwgWCBtdXN0IGJlIHVzZWQgYXMgdGhlIHdpbGRjYXJkClsKICB7CiAgICAibnVtYmVyIjogIjQtMTJBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNlwiXSIsCiAgICAidmVjIjogIjwxLDEsMiwxLDAsMT4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOC0xMkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIzXCIsXCI0XCIsXCI2XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI0LTEyQiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjNcIixcIjRcIixcIjZcIl0iLAogICAgInZlYyI6ICI8MSwxLDIsMSwwLDE+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjgtMTJCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNlwiXSIKICB9Cl07CmBgYAoKIyMjIyBTdGFydHMgV2l0aCBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvdmVjL14zMjEKWwogIHsKICAgICJudW1iZXIiOiAiNC0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiXSIsCiAgICAidmVjIjogIjwzLDIsMSwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOC0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjUtNUEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI3XCJdIiwKICAgICJ2ZWMiOiAiPDMsMiwxLDEsMiwxPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI3LTVCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNS01QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIl0iLAogICAgInZlYyI6ICI8MywyLDEsMSwyLDE+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjctNUEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI3XCJdIgogIH0KXTsKYGBgCgojIyMjIEVuZHMgV2l0aCBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvdmVjLzAxMTEkClsKICB7CiAgICAibnVtYmVyIjogIjQtNUEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI2XCJdIiwKICAgICJ2ZWMiOiAiPDIsMSwwLDEsMSwxPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI4LTVCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiNFwiLFwiNVwiLFwiNlwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNC01QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjRcIixcIjVcIixcIjZcIl0iLAogICAgInZlYyI6ICI8MiwxLDAsMSwxLDE+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjgtNUEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI2XCJdIgogIH0KXTsKYGBgCgojIyMjIENvbnRhaW5zIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS92ZWMvQDMyNTAKWwogIHsKICAgICJudW1iZXIiOiAiNi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiXSIsCiAgICAidmVjIjogIjw1LDQsMywyLDEsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiBudWxsLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogIHsKICAgICJudW1iZXIiOiAiNi0zMiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjJcIixcIjRcIixcIjVcIixcIjdcIixcIjlcIl0iLAogICAgInZlYyI6ICI8MSw0LDMsMiw1LDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogbnVsbCwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgU3Vic3RyaW5nIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS92ZWMvKjMyNTAgb3IgLy8gR0VUIC9hcGkvZGF0YS92ZWMvKjMyNQpbCiAgewogICAgIm51bWJlciI6ICI2LTMyIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiNFwiLFwiNVwiLFwiN1wiLFwiOVwiXSIsCiAgICAidmVjIjogIjwxLDQsMywyLDUsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiBudWxsLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBOb3QgU2VhcmNoCgotIFdvcmtzIHdpdGggITAsICFeMCwgITAkLCAhQDAsICEqMCwKICAtICEgaXMgZXF1aXZhbGVudCB0byAhYCAKICAtIGAhIGlzIG5vdCBhIHZhbGlkIHNlYXJjaCBtZXRob2QKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvcHJpbWVGb3JtLyEwMDAwMDAKWwogIHsKICAgICJudW1iZXIiOiAiMi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiXSIsCiAgICAidmVjIjogIjwxLDAsMCwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMTAtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgICAuLi4sCiAgewogICAgIm51bWJlciI6ICIxMi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiVFwiLFwiRVwiXSIsCiAgICAidmVjIjogIjxDLEMsQyxDLEMsNj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMC0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgRXhjbHVkZSBTZWFyY2gKCi0gV29ya3Mgd2l0aCBcYDAsIFxgXjAsIFxgMCQsIFxgQDAsIFxgKjAKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvdmVjLyEwMDAwMDAsYEAwLGBAMSxgQDIsYF44LGBeNixgQDUsYEA0LGBANwpbCiAgewogICAgIm51bWJlciI6ICI3LTMxQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjZcIixcIjdcIixcIjlcIl0iLAogICAgInZlYyI6ICI8MywzLDYsMywzLDM+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjUtMzFCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiOFwiLFwiOVwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNy0zMUIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI4XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDMsMyw2LDMsMywzPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI1LTMxQSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjZcIixcIjdcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjEyLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCJUXCIsXCJFXCJdIiwKICAgICJ2ZWMiOiAiPEMsQyxDLEMsQyw2PiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIwLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBDaGFpbmluZyBNZXRob2RzIChubyBkdXBsaWNhdGVzKQoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS92ZWMvMzIxMDAwLF4zNTMsNDQxJApbCiAgewogICAgIm51bWJlciI6ICI0LTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCJdIiwKICAgICJ2ZWMiOiAiPDMsMiwxLDAsMCwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI4LTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogIHsKICAgICJudW1iZXIiOiAiNy0yNEEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI3XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDMsNSwzLDQsNCwyPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI1LTI0QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjRcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjctMjRCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjwzLDUsMyw0LDQsMj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiNS0yNEEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI3XCIsXCI5XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI3LTExQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjhcIl0iLAogICAgInZlYyI6ICI8NCw0LDQsNCw0LDE+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjUtMTFCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiN1wiLFwiOFwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNy0xMUIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI3XCIsXCI4XCJdIiwKICAgICJ2ZWMiOiAiPDQsNCw0LDQsNCwxPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI1LTExQSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjhcIl0iCiAgfQpdOwpgYGAKCiMjIyBHRVQgL2FwaS9kYXRhL3ZlYy86cXVlcnlTZWFyY2gvOnF1ZXJ5SW5lcXVhbGl0eS8KClRoZSBlbmRwb2ludCByZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMgYmFzZWQgb24gdGhlIHF1ZXJ5IG9uIHRoZSB2ZWMgcHJvcGVydHkgdXNpbmcgaW5lcXVhbGl0aWVzLiBJdCBjaGVja3MgdGhlIHRydXRoaW5lc3Mgb2YgdGhlIGNob3NlbiBpbmVxdWFsaXR5IGZvciBldmVyeSBwb3NpdGlvbi4KClRoZSBlbmRwb2ludCBvbmx5IHdvcmtzIHdpdGggdGhlIGV4YWN0IHNlYXJjaCBtZXRob2QgYXMgaW4gdGhlIC9hcGkvZGF0YS92ZWMvOnF1ZXJ5U2VhcmNoIGVuZHBvaW50LCB5b3UgY2FuIHN0aWxsIHVzZSAhIGFuZCBcYCB0byBmaWx0ZXIgb3V0IHdoYXQgeW91IGRvIG5vdCBuZWVkLiBPdGhlciBpbmNsdXNpb24gbWV0aG9kcyAoXF5cJFxAXCopIHdvcmsgYnV0IGRvIG5vdCBnZXQgZWZmZWN0ZWQgYnkgOnF1ZXJ5SW5lcXVhbGl0eS4KCS0gL2FwaS9kYXRhL3ZlYy86cXVlcnlTZWFyY2gvZSBpcyBlcXVpdmFsZW50IHRvIC9hcGkvZGF0YS92ZWMvOnF1ZXJ5U2VhcmNoLwoKLSBNYXggVVJJIGxlbmd0aDogTm8gbW9yZSB0aGFuIDEwMCBjaGFyYWN0ZXJzCi0gU3VicXVlcnkgbGVuZ3RoOiAyLTggY2hhcmFjdGVycwoJLSBFeC4gXjEgb3IgIWAwMDAwMDAKLSBTdWJxdWVyeSBsZW5ndGggZm9yIEluZXF1YWxpdHk6IDEtMiBjaGFyYWN0ZXJzCgktIEV4LiBlIG9yIGxlCgojIyMjIEVxdWFsIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS92ZWMvNTU1NTUzL2UKWwogIHsKICAgICJudW1iZXIiOiAiOC16MTVBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjw1LDUsNSw1LDUsMz4iLAogICAgInoiOiAiOC16MjlBIiwKICAgICJjb21wbGVtZW50IjogIjQtejE1QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjgtejE1QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8NSw1LDUsNSw1LDM+IiwKICAgICJ6IjogIjgtejI5QSIsCiAgICAiY29tcGxlbWVudCI6ICI0LXoxNUEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI4XCIsXCI5XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI4LXoyOUEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDUsNSw1LDUsNSwzPiIsCiAgICAieiI6ICI4LXoxNUEiLAogICAgImNvbXBsZW1lbnQiOiAiNC16MjlCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiOC16MjlCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjw1LDUsNSw1LDUsMz4iLAogICAgInoiOiAiOC16MTVBIiwKICAgICJjb21wbGVtZW50IjogIjQtejI5QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjlcIl0iCiAgfQpdOwpgYGAKCgojIyMjIExlc3MgVGhhbiBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvdmVjLzU1NTU1My9sClsKICB7CiAgICAibnVtYmVyIjogIjAtMSIsCiAgICAicHJpbWVGb3JtIjogIltcIlwiXSIsCiAgICAidmVjIjogIjwwLDAsMCwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMTItMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgICAuLi4KICB7CiAgICAibnVtYmVyIjogIjctejM4QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjZcIixcIjdcIixcIjhcIl0iLAogICAgInZlYyI6ICI8NCwzLDQsNCw0LDI+IiwKICAgICJ6IjogIjctejE4QSIsCiAgICAiY29tcGxlbWVudCI6ICI1LXozOEEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCIsXCI1XCIsXCI3XCIsXCI4XCJdIgogIH0KXTsKYGBgCgojIyMjIExlc3MgVGhhbiBPciBFcXVhbCBUbyBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvdmVjLzU1NTU1My9sZQpbCiAgewogICAgIm51bWJlciI6ICIwLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCJcIl0iLAogICAgInZlYyI6ICI8MCwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjEyLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogICAgLi4uCiAgewogICAgIm51bWJlciI6ICI4LXoyOUIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDUsNSw1LDUsNSwzPiIsCiAgICAieiI6ICI4LXoxNUEiLAogICAgImNvbXBsZW1lbnQiOiAiNC16MjlBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOVwiXSIKICB9Cl07CmBgYAoKIyMjIyBHcmVhdGVyIFRoYW4gU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL3ZlYy81NTU1NTMvZwpbCiAgewogICAgIm51bWJlciI6ICI5LTVBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjw3LDYsNiw2LDcsND4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMy01QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICAgIC4uLgogIHsKICAgICJudW1iZXIiOiAiMTItMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIlRcIixcIkVcIl0iLAogICAgInZlYyI6ICI8QyxDLEMsQyxDLDY+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjAtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKYGBgCgojIyMjIEdyZWF0ZXIgVGhhbiBPciBFcXVhbCBUbyBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvdmVjLzU1NTU1My9nZQpbCiAgewogICAgIm51bWJlciI6ICI4LXoxNUEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI4XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDUsNSw1LDUsNSwzPiIsCiAgICAieiI6ICI4LXoyOUEiLAogICAgImNvbXBsZW1lbnQiOiAiNC16MTVCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiXSIKICB9LAogICAgLi4uCiAgewogICAgIm51bWJlciI6ICIxMi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiVFwiLFwiRVwiXSIsCiAgICAidmVjIjogIjxDLEMsQyxDLEMsNj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMC0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyBHRVQgL2FwaS9kYXRhL3ovOnF1ZXJ5U2VhcmNoLwoKVGhlIGVuZHBvaW50IHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBiYXNlZCBvbiB0aGUgcXVlcnkgb24gdGhlIHogcHJvcGVydHkKCi0gTWF4IFVSSSBsZW5ndGg6IE5vIG1vcmUgdGhhbiAxMDAgY2hhcmFjdGVycwotIFN1YnF1ZXJ5IGxlbmd0aDogMi04IGNoYXJhY3RlcnMKCS0gRXguIF4wIG9yICFgNi16MjVBCgojIyMjIEV4YWN0IFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS96L251bGwKWwogIHsKICAgICJudW1iZXIiOiAiMC0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiXCJdIiwKICAgICJ2ZWMiOiAiPDAsMCwwLDAsMCwwPiIsCiAgICAieiI6IG51bGwKICAgICJjb21wbGVtZW50IjogIjEyLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogICAuLi4KICB7CiAgICAibnVtYmVyIjogIjEyLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCJUXCIsXCJFXCJdIiwKICAgICJ2ZWMiOiAiPEMsQyxDLEMsQyw2PiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIwLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CgovLyBHRVQgL2FwaS9kYXRhL3ovNS16MzcKWwogIHsKICAgICJudW1iZXIiOiAiNS16MTciLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI4XCJdIiwKICAgICJ2ZWMiOiAiPDIsMSwyLDMsMiwwPiIsCiAgICAieiI6ICI1LXozNyIsCiAgICAiY29tcGxlbWVudCI6ICI3LXoxNyIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKYGBgCgojIyMjIFN0YXJ0cyBXaXRoIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS96L141LXozClsKICB7CiAgICAibnVtYmVyIjogIjUtejEyIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNVwiLFwiNlwiXSIsCiAgICAidmVjIjogIjwyLDIsMiwxLDIsMT4iLAogICAgInoiOiAiNS16MzZBIiwKICAgICJjb21wbGVtZW50IjogIjctejEyIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjUtejE3IiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNFwiLFwiOFwiXSIsCiAgICAidmVjIjogIjwyLDEsMiwzLDIsMD4iLAogICAgInoiOiAiNS16MzciLAogICAgImNvbXBsZW1lbnQiOiAiNy16MTciLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogIHsKICAgICJudW1iZXIiOiAiNS16MThBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiNFwiLFwiNVwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwyLDEsMiwyLDIsMT4iLAogICAgInoiOiAiNS16MzhBIiwKICAgICJjb21wbGVtZW50IjogIjctejE4QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjNcIixcIjZcIixcIjdcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjUtejE4QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjJcIixcIjNcIixcIjZcIixcIjdcIl0iLAogICAgInZlYyI6ICI8MiwxLDIsMiwyLDE+IiwKICAgICJ6IjogIjUtejM4QSIsCiAgICAiY29tcGxlbWVudCI6ICI3LXoxOEIiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCI0XCIsXCI1XCIsXCI3XCJdIgogIH0KXTsKYGBgCgojIyMjIEVuZHMgV2l0aCBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvei8yMyQKWwogIHsKICAgICJudW1iZXIiOiAiNi16NDUiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDIsMyw0LDIsMiwyPiIsCiAgICAieiI6ICI2LXoyMyIsCiAgICAiY29tcGxlbWVudCI6ICI2LXoyMyIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKYGBgCgojIyMjIENvbnRhaW5zIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS96L0A0NQpbCiAgewogICAgIm51bWJlciI6ICI0LXoyOUEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIzXCIsXCI3XCJdIiwKICAgICJ2ZWMiOiAiPDEsMSwxLDEsMSwxPiIsCiAgICAieiI6ICI0LXoxNUEiLAogICAgImNvbXBsZW1lbnQiOiAiOC16MjlCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiNFwiLFwiNlwiLFwiN1wiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNC16MjlCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiNFwiLFwiNlwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwxLDEsMSwxLDEsMT4iLAogICAgInoiOiAiNC16MTVBIiwKICAgICJjb21wbGVtZW50IjogIjgtejI5QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjdcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjYtejIzIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiOFwiXSIsCiAgICAidmVjIjogIjwyLDMsNCwyLDIsMj4iLAogICAgInoiOiAiNi16NDUiLAogICAgImNvbXBsZW1lbnQiOiAiNi16NDUiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBTdWJzdHJpbmcgU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL3ovKjQ1ClsKICB7CiAgICAibnVtYmVyIjogIjYtejIzIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiOFwiXSIsCiAgICAidmVjIjogIjwyLDMsNCwyLDIsMj4iLAogICAgInoiOiAiNi16NDUiLAogICAgImNvbXBsZW1lbnQiOiAiNi16NDUiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBOb3QgU2VhcmNoCgotIFdvcmtzIHdpdGggITEtMSwgIV4xLTEsICExLTEkLCAhQEEsICEqQSwKICAtICEgaXMgZXF1aXZhbGVudCB0byAhYCAKICAtIGAhIGlzIG5vdCBhIHZhbGlkIHNlYXJjaCBtZXRob2QKLSBVc2UgJTIwIGZvciB3aGl0ZXNwYWNlIGVxdWl2YWxlbnQgdG8gdGhlIGVtcHR5IGFycmF5IGZvciAwLTEgIAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS96LyFudWxsClsKICB7CiAgICAibnVtYmVyIjogIjQtejE1QSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjRcIixcIjZcIl0iLAogICAgInZlYyI6ICI8MSwxLDEsMSwxLDE+IiwKICAgICJ6IjogIjQtejI5QSIsCiAgICAiY29tcGxlbWVudCI6ICI4LXoxNUIiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIyXCIsXCI1XCIsXCI2XCJdIgogIH0sCiAgICAuLi4sCiAgewogICAgIm51bWJlciI6ICI4LXoyOUIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDUsNSw1LDUsNSwzPiIsCiAgICAieiI6ICI4LXoxNUEiLAogICAgImNvbXBsZW1lbnQiOiAiNC16MjlBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOVwiXSIKICB9Cl07CmBgYAoKIyMjIyBFeGNsdWRlIFNlYXJjaAoKLSBXb3JrcyB3aXRoIFxgMS0xLCBcYF4xLTEsIFxgMS0xJCwgXGBAQSwgXGAqQQoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS96LzctejEyLDgtejI5QSxgNy16MTIKWwogIHsKICAgICJudW1iZXIiOiAiOC16MTVBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjw1LDUsNSw1LDUsMz4iLAogICAgInoiOiAiOC16MjlBIiwKICAgICJjb21wbGVtZW50IjogIjQtejE1QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjgtejE1QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8NSw1LDUsNSw1LDM+IiwKICAgICJ6IjogIjgtejI5QSIsCiAgICAiY29tcGxlbWVudCI6ICI0LXoxNUEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI4XCIsXCI5XCJdIgogIH0KXTsKYGBgCgojIyMjIENoYWluaW5nIE1ldGhvZHMgKG5vIGR1cGxpY2F0ZXMpCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL3ovOC16MjlBLF43LXoxLC16MjlBLGA3LXoxOEEKWwogIHsKICAgICJudW1iZXIiOiAiOC16MTVBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNlwiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjw1LDUsNSw1LDUsMz4iLAogICAgInoiOiAiOC16MjlBIiwKICAgICJjb21wbGVtZW50IjogIjQtejE1QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjgtejE1QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8NSw1LDUsNSw1LDM+IiwKICAgICJ6IjogIjgtejI5QSIsCiAgICAiY29tcGxlbWVudCI6ICI0LXoxNUEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI4XCIsXCI5XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI3LXozNkEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI4XCJdIiwKICAgICJ2ZWMiOiAiPDQsNCw0LDMsNCwyPiIsCiAgICAieiI6ICI3LXoxMiIsCiAgICAiY29tcGxlbWVudCI6ICI1LXozNkIiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI3LXozNkIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCJdIiwKICAgICJ2ZWMiOiAiPDQsNCw0LDMsNCwyPiIsCiAgICAieiI6ICI3LXoxMiIsCiAgICAiY29tcGxlbWVudCI6ICI1LXozNkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI4XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI3LXozNyIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjVcIixcIjdcIixcIjhcIl0iLAogICAgInZlYyI6ICI8NCwzLDQsNSw0LDE+IiwKICAgICJ6IjogIjctejE3IiwKICAgICJjb21wbGVtZW50IjogIjUtejM3IiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyBHRVQgL2FwaS9kYXRhL2NvbXBsZW1lbnQvOnF1ZXJ5U2VhcmNoLwoKVGhlIGVuZHBvaW50IHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBiYXNlZCBvbiB0aGUgcXVlcnkgb24gdGhlIGNvbXBsZW1lbnQgcHJvcGVydHkKCi0gTWF4IFVSSSBsZW5ndGg6IE5vIG1vcmUgdGhhbiAxMDAgY2hhcmFjdGVycwotIFN1YnF1ZXJ5IGxlbmd0aDogMi04IGNoYXJhY3RlcnMKCS0gRXguIF4wIG9yICFgNi16MjVBCgojIyMjIEV4YWN0IFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9jb21wbGVtZW50L251bGwKWwogIHsKICAgICJudW1iZXIiOiAiNi0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiXSIsCiAgICAidmVjIjogIjw1LDQsMywyLDEsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiBudWxsLAogICAgImludmVyc2lvbiI6IG51bGwKICB9LAogICAuLi4KICB7CiAgICAibnVtYmVyIjogIjYtMzUiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCI0XCIsXCI2XCIsXCI4XCIsXCJUXCJdIiwKICAgICJ2ZWMiOiAiPDAsNiwwLDYsMCwzPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6IG51bGwsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKCi8vIEdFVCAvYXBpL2RhdGEvY29tcGxlbWVudC81LXozNwpbCiAgewogICAgIm51bWJlciI6ICI3LXozNyIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjVcIixcIjdcIixcIjhcIl0iLAogICAgInZlYyI6ICI8NCwzLDQsNSw0LDE+IiwKICAgICJ6IjogIjctejE3IiwKICAgICJjb21wbGVtZW50IjogIjUtejM3IiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgU3RhcnRzIFdpdGggU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2NvbXBsZW1lbnQvXjUtejM2ClsKICB7CiAgICAibnVtYmVyIjogIjctejM2QSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjVcIixcIjZcIixcIjhcIl0iLAogICAgInZlYyI6ICI8NCw0LDQsMyw0LDI+IiwKICAgICJ6IjogIjctejEyIiwKICAgICJjb21wbGVtZW50IjogIjUtejM2QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjctejM2QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjJcIixcIjNcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIl0iLAogICAgInZlYyI6ICI8NCw0LDQsMyw0LDI+IiwKICAgICJ6IjogIjctejEyIiwKICAgICJjb21wbGVtZW50IjogIjUtejM2QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjVcIixcIjZcIixcIjhcIl0iCiAgfQpdOwpgYGAKCiMjIyMgRW5kcyBXaXRoIFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9jb21wbGVtZW50LzIzJApbCiAgewogICAgIm51bWJlciI6ICI0LTIzIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiNVwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwwLDIsMSwwLDMsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOC0yMyIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgewogICAgIm51bWJlciI6ICI2LXo0NSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjJcIixcIjNcIixcIjRcIixcIjZcIixcIjlcIl0iLAogICAgInZlYyI6ICI8MiwzLDQsMiwyLDI+IiwKICAgICJ6IjogIjYtejIzIiwKICAgICJjb21wbGVtZW50IjogIjYtejIzIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjgtMjMiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI3XCIsXCI4XCIsXCJUXCJdIiwKICAgICJ2ZWMiOiAiPDQsNiw1LDQsNywyPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI0LTIzIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgQ29udGFpbnMgU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2NvbXBsZW1lbnQvQDM2QQpbCiAgewogICAgIm51bWJlciI6ICI1LXozNkIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCJdIiwKICAgICJ2ZWMiOiAiPDIsMiwyLDEsMiwxPiIsCiAgICAieiI6ICI1LXoxMiIsCiAgICAiY29tcGxlbWVudCI6ICI3LXozNkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCIsXCI3XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI2LXozQiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIl0iLAogICAgInZlYyI6ICI8NCwzLDMsMiwyLDE+IiwKICAgICJ6IjogIjYtejM2QSIsCiAgICAiY29tcGxlbWVudCI6ICI2LXozNkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI2LXoxMEIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI2XCIsXCI3XCJdIiwKICAgICJ2ZWMiOiAiPDMsMywzLDMsMiwxPiIsCiAgICAieiI6ICI2LXozOUEiLAogICAgImNvbXBsZW1lbnQiOiAiNi16MzlBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiN1wiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNi16MTdCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiNFwiLFwiNlwiLFwiN1wiLFwiOFwiXSIsCiAgICAidmVjIjogIjwzLDIsMiwzLDMsMj4iLAogICAgInoiOiAiNi16NDNBIiwKICAgICJjb21wbGVtZW50IjogIjYtejQzQSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjRcIixcIjdcIixcIjhcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjYtejM2QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIl0iLAogICAgInZlYyI6ICI8NCwzLDMsMiwyLDE+IiwKICAgICJ6IjogIjYtejNBIiwKICAgICJjb21wbGVtZW50IjogIjYtejNBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiN1wiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiNy16MzZCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiXSIsCiAgICAidmVjIjogIjw0LDQsNCwzLDQsMj4iLAogICAgInoiOiAiNy16MTIiLAogICAgImNvbXBsZW1lbnQiOiAiNS16MzZBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNVwiLFwiNlwiLFwiOFwiXSIKICB9Cl07CmBgYAoKIyMjIyBTdWJzdHJpbmcgU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2NvbXBsZW1lbnQvKjM2QQpbCiAgewogICAgIm51bWJlciI6ICI1LXozNkIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCJdIiwKICAgICJ2ZWMiOiAiPDIsMiwyLDEsMiwxPiIsCiAgICAieiI6ICI1LXoxMiIsCiAgICAiY29tcGxlbWVudCI6ICI3LXozNkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCIsXCI3XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI2LXozQiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIl0iLAogICAgInZlYyI6ICI8NCwzLDMsMiwyLDE+IiwKICAgICJ6IjogIjYtejM2QSIsCiAgICAiY29tcGxlbWVudCI6ICI2LXozNkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI3LXozNkIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCJdIiwKICAgICJ2ZWMiOiAiPDQsNCw0LDMsNCwyPiIsCiAgICAieiI6ICI3LXoxMiIsCiAgICAiY29tcGxlbWVudCI6ICI1LXozNkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI4XCJdIgogIH0KXTsKYGBgCgojIyMjIE5vdCBTZWFyY2gKCi0gV29ya3Mgd2l0aCAhMS0xLCAhXjEtMSwgITEtMSQsICFAQSwgISpBLAogIC0gISBpcyBlcXVpdmFsZW50IHRvICFgIAogIC0gYCEgaXMgbm90IGEgdmFsaWQgc2VhcmNoIG1ldGhvZAotIFVzZSAlMjAgZm9yIHdoaXRlc3BhY2UgZXF1aXZhbGVudCB0byB0aGUgZW1wdHkgYXJyYXkgZm9yIDAtMSAgCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2NvbXBsZW1lbnQvIW51bGwKWwogIHsKICAgICJudW1iZXIiOiAiMC0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiXCJdIiwKICAgICJ2ZWMiOiAiPDAsMCwwLDAsMCwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIxMi0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfSwKICAgIC4uLiwKICB7CiAgICAibnVtYmVyIjogIjEyLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCJUXCIsXCJFXCJdIiwKICAgICJ2ZWMiOiAiPEMsQyxDLEMsQyw2PiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIwLTEiLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAoKIyMjIyBFeGNsdWRlIFNlYXJjaAoKLSBXb3JrcyB3aXRoICExLTEsICFeMS0xLCAhMS0xJCwgIUBBLCAhKkEsCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2NvbXBsZW1lbnQvMS0xLDExLTEsYDEtMQpbCiAgewogICAgIm51bWJlciI6ICIxLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCJdIiwKICAgICJ2ZWMiOiAiPDAsMCwwLDAsMCwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIxMS0xIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfQpdOwpgYGAKCiMjIyMgQ2hhaW5pbmcgTWV0aG9kcyAobm8gZHVwbGljYXRlcykKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvY29tcGxlbWVudC84LXoyOUEsXjctejEsLXoyOUEsYDctejE4QSxgQiQKWwogIHsKICAgICJudW1iZXIiOiAiNC16MjlCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiNFwiLFwiNlwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwxLDEsMSwxLDEsMT4iLAogICAgInoiOiAiNC16MTVBIiwKICAgICJjb21wbGVtZW50IjogIjgtejI5QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjdcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjUtejEyIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNVwiLFwiNlwiXSIsCiAgICAidmVjIjogIjwyLDIsMiwxLDIsMT4iLAogICAgInoiOiAiNS16MzZBIiwKICAgICJjb21wbGVtZW50IjogIjctejEyIiwKICAgICJpbnZlcnNpb24iOiBudWxsCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjUtejE3IiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNFwiLFwiOFwiXSIsCiAgICAidmVjIjogIjwyLDEsMiwzLDIsMD4iLAogICAgInoiOiAiNS16MzciLAogICAgImNvbXBsZW1lbnQiOiAiNy16MTciLAogICAgImludmVyc2lvbiI6IG51bGwKICB9Cl07CmBgYAojIyMgR0VUIC9hcGkvZGF0YS9pbnZlcnNpb24vOnF1ZXJ5U2VhcmNoLwoKVGhlIGVuZHBvaW50IHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBiYXNlZCBvbiB0aGUgcXVlcnkgb24gdGhlIGludmVyc2lvbiBwcm9wZXJ0eQoKVXNlIFQgZm9yIDEwLCBFIGZvciAxMSwgYW5kIEMgZm9yIDEyLgoKLSBNYXggVVJJIGxlbmd0aDogTm8gbW9yZSB0aGFuIDEwMCBjaGFyYWN0ZXJzCi0gU3VicXVlcnkgbGVuZ3RoOiAyLTE0IGNoYXJhY3RlcnMKCS0gRXguIF4wIG9yICFgMDEyMzQ1Njc4OVRFCgojIyMjIEV4YWN0IFNlYXJjaAoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9pbnZlcnNpb24vbnVsbApbCiAgewogICAgIm51bWJlciI6ICIwLTEiLAogICAgInByaW1lRm9ybSI6ICJbXCJcIl0iLAogICAgInZlYyI6ICI8MCwwLDAsMCwwLDA+IiwKICAgICJ6IjogbnVsbAogICAgImNvbXBsZW1lbnQiOiAiMTItMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0sCiAgIC4uLgogIHsKICAgICJudW1iZXIiOiAiMTItMSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIlRcIixcIkVcIl0iLAogICAgInZlYyI6ICI8QyxDLEMsQyxDLDY+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjAtMSIsCiAgICAiaW52ZXJzaW9uIjogbnVsbAogIH0KXTsKCi8vIEdFVCAvYXBpL2RhdGEvaW52ZXJzaW9uLzAyNgpbCiAgewogICAgIm51bWJlciI6ICIzLThCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiNFwiLFwiNlwiXSIsCiAgICAidmVjIjogIjwwLDEsMCwxLDAsMT4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOS04QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjZcIl0iCiAgfQpdOwpgYGAKCiMjIyMgU3RhcnRzIFdpdGggU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2ludmVyc2lvbi9eMDIzNjcKWwogIHsKICAgICJudW1iZXIiOiAiNS16MThBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiNFwiLFwiNVwiLFwiN1wiXSIsCiAgICAidmVjIjogIjwyLDEsMiwyLDIsMT4iLAogICAgInoiOiAiNS16MzhBIiwKICAgICJjb21wbGVtZW50IjogIjctejE4QSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjNcIixcIjZcIixcIjdcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjYtejQzQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjVcIixcIjZcIixcIjhcIl0iLAogICAgInZlYyI6ICI8MywyLDIsMywzLDI+IiwKICAgICJ6IjogIjYtejE3QSIsCiAgICAiY29tcGxlbWVudCI6ICI2LXoxN0IiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI2XCIsXCI3XCIsXCI4XCJdIgogIH0KXTsKYGBgCgojIyMjIEVuZHMgV2l0aCBTZWFyY2gKCmBgYHRzCi8vIEdFVCAvYXBpL2RhdGEvaW52ZXJzaW9uLzIzJApbCiAgewogICAgIm51bWJlciI6ICIzLTJBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiM1wiXSIsCiAgICAidmVjIjogIjwxLDEsMSwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOS0yQSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjNcIl0iCiAgfQpdOwpgYGAKCiMjIyMgQ29udGFpbnMgU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2ludmVyc2lvbi9ANDU3ODkKWwogIHsKICAgICJudW1iZXIiOiAiNy0yN0EiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCIsXCI1XCIsXCI3XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDMsNCw0LDQsNSwxPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI1LTI3QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjRcIixcIjVcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjgtMTFBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiN1wiLFwiOVwiXSIsCiAgICAidmVjIjogIjw1LDYsNSw1LDUsMj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiNC0xMUIiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIyXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI4LTE0QSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjlcIl0iLAogICAgInZlYyI6ICI8NSw1LDUsNSw2LDI+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjQtMTRBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiN1wiLFwiOFwiLFwiOVwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiOC0xOUEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI4XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDUsNCw1LDcsNSwyPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI0LTE5QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjNcIixcIjRcIixcIjVcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjktMkEiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDcsNyw3LDYsNiwzPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIzLTJBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiOS0zQSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8Nyw2LDcsNyw2LDM+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjMtM0IiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI5LTRBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiN1wiLFwiOFwiLFwiOVwiXSIsCiAgICAidmVjIjogIjw3LDYsNiw3LDcsMz4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMy00QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjktNEIiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDcsNiw2LDcsNywzPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICIzLTRBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiN1wiLFwiOFwiLFwiOVwiXSIKICB9Cl07CmBgYAoKIyMjIyBTdWJzdHJpbmcgU2VhcmNoCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2ludmVyc2lvbi8qNDU3ODkKWwogIHsKICAgICJudW1iZXIiOiAiNy0yN0EiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCIsXCI1XCIsXCI3XCIsXCI5XCJdIiwKICAgICJ2ZWMiOiAiPDMsNCw0LDQsNSwxPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI1LTI3QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjRcIixcIjVcIixcIjdcIixcIjhcIixcIjlcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjgtMTRBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOVwiXSIsCiAgICAidmVjIjogIjw1LDUsNSw1LDYsMj4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiNC0xNEEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI3XCIsXCI4XCIsXCI5XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI4LTE5QSIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjRcIixcIjVcIixcIjZcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8NSw0LDUsNyw1LDI+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjQtMTlCIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiN1wiLFwiOFwiLFwiOVwiXSIKICB9LAogIHsKICAgICJudW1iZXIiOiAiOS00QiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjFcIixcIjJcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIl0iLAogICAgInZlYyI6ICI8Nyw2LDYsNyw3LDM+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjMtNEEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI3XCIsXCI4XCIsXCI5XCJdIgogIH0KXTsKYGBgCgojIyMjIE5vdCBTZWFyY2gKCi0gV29ya3Mgd2l0aCAhMCwgIV4wLCAhMCQsICFAMCwgISowLAogIC0gISBpcyBlcXVpdmFsZW50IHRvICFgIAogIC0gYCEgaXMgbm90IGEgdmFsaWQgc2VhcmNoIG1ldGhvZAotIFVzZSAlMjAgZm9yIHdoaXRlc3BhY2UgZXF1aXZhbGVudCB0byB0aGUgZW1wdHkgYXJyYXkgZm9yIDAtMSAgCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2ludmVyc2lvbi8hbnVsbApbCiAgewogICAgIm51bWJlciI6ICIzLTJBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiM1wiXSIsCiAgICAidmVjIjogIjwxLDEsMSwwLDAsMD4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiOS0yQSIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjJcIixcIjNcIl0iCiAgfSwKICAgIC4uLiwKICB7CiAgICAibnVtYmVyIjogIjktMTFCIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOVwiLFwiVFwiXSIsCiAgICAidmVjIjogIjw2LDYsNyw3LDcsMz4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiMy0xMUEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI5XCIsXCJUXCJdIgogIH0KXTsKYGBgCgojIyMjIEV4Y2x1ZGUgU2VhcmNoCgotIFdvcmtzIHdpdGggXGAwLCBcYF4wLCBcYDAkLCBcYEAwLCBcYCowCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL2ludmVyc2lvbi8wMTI0LDAxMjQ1LGAwMTI0ClsKICB7CiAgICAibnVtYmVyIjogIjUtM0IiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIzXCIsXCI0XCIsXCI1XCJdIiwKICAgICJ2ZWMiOiAiPDMsMiwyLDIsMSwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI3LTNBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiNFwiLFwiNVwiXSIKICB9Cl07CmBgYAoKIyMjIyBDaGFpbmluZyBNZXRob2RzIChubyBkdXBsaWNhdGVzKQoKYGBgdHMKLy8gR0VUIC9hcGkvZGF0YS9pbnZlcnNpb24vMDEyNCxeMDEyNTY3LDAxMjQ1JCxgQDkKWwogIHsKICAgICJudW1iZXIiOiAiNC0yQiIsCiAgICAicHJpbWVGb3JtIjogIltcIjBcIixcIjJcIixcIjNcIixcIjRcIl0iLAogICAgInZlYyI6ICI8MiwyLDEsMSwwLDA+IiwKICAgICJ6IjogbnVsbCwKICAgICJjb21wbGVtZW50IjogIjgtMkEiLAogICAgImludmVyc2lvbiI6ICJbXCIwXCIsXCIxXCIsXCIyXCIsXCI0XCJdIgogIH0sCiAgewogICAgIm51bWJlciI6ICI3LTdBIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNlwiLFwiN1wiLFwiOFwiXSIsCiAgICAidmVjIjogIjw1LDMsMiwzLDUsMz4iLAogICAgInoiOiBudWxsLAogICAgImNvbXBsZW1lbnQiOiAiNS03QiIsCiAgICAiaW52ZXJzaW9uIjogIltcIjBcIixcIjFcIixcIjJcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIl0iCiAgfSwKICB7CiAgICAibnVtYmVyIjogIjUtM0IiLAogICAgInByaW1lRm9ybSI6ICJbXCIwXCIsXCIxXCIsXCIzXCIsXCI0XCIsXCI1XCJdIiwKICAgICJ2ZWMiOiAiPDMsMiwyLDIsMSwwPiIsCiAgICAieiI6IG51bGwsCiAgICAiY29tcGxlbWVudCI6ICI3LTNBIiwKICAgICJpbnZlcnNpb24iOiAiW1wiMFwiLFwiMVwiLFwiMlwiLFwiNFwiLFwiNVwiXSIKICB9Cl07CmBgYAoKIyMjIEdFVCAvYXBpL2RhdGEvOnF1ZXJ5UHJvcC9QUk9QRVJUWS86cXVlcnlTZWFyY2gvCgpVc2luZyB0aGUgR0VUIC9hcGkvZGF0YS86cXVlcnlQcm9wIGVuZHBvaW50IHlvdSBjYW4gZmlsdGVyIG91dCB0aGUgcHJvcGVydGllcyB5b3Ugd2FudCBmcm9tIHRoZSByZXN1bHRpbmcgcXVlcnlTZWFyY2gKCkxlbmd0aHMgRm9yIDpxdWVyeVByb3BcOgotIE1heCBVUkkgbGVuZ3RoOiBObyBtb3JlIHRoYW4gNDMgY2hhcmFjdGVycwotIFN1YnF1ZXJ5IGxlbmd0aDogMS0xMCBjaGFyYWN0ZXJzCgojIyMjIyBFbmRwb2ludHM6Ci0gL2FwaS9kYXRhLzpxdWVyeVByb3AvbnVtYmVyLzpxdWVyeVNlYXJjaC8KLSAvYXBpL2RhdGEvOnF1ZXJ5UHJvcC9wcmltZUZvcm0vOnF1ZXJ5U2VhcmNoLwotIC9hcGkvZGF0YS86cXVlcnlQcm9wL3ZlYy86cXVlcnlTZWFyY2gvCi0gL2FwaS9kYXRhLzpxdWVyeVByb3AvdmVjLzpxdWVyeVNlYXJjaC86cXVlcnlJbmVxdWFsaXR5LwotIC9hcGkvZGF0YS86cXVlcnlQcm9wL3ovOnF1ZXJ5U2VhcmNoLwotIC9hcGkvZGF0YS86cXVlcnlQcm9wL2NvbXBsZW1lbnQvOnF1ZXJ5U2VhcmNoLwotIC9hcGkvZGF0YS86cXVlcnlQcm9wL2ludmVyc2lvbi86cXVlcnlTZWFyY2gvCgpgYGB0cwovLyBHRVQgL2FwaS9kYXRhL3ByaW1lRm9ybS9udW1iZXIvMS0xClsKICB7CiAgICAicHJpbWVGb3JtIjogIltcIjBcIl0iCiAgfQpdOwoKLy8gR0VUIC9hcGkvZGF0YS9udW1iZXIscHJpbWVGb3JtL251bWJlci8xLTEKWwogIHsKICAgICJudW1iZXIiOiAiMS0xIiwKICAgICJwcmltZUZvcm0iOiAiW1wiMFwiXSIKICB9Cl07CmBgYAoKIyMjIEdFVCAvYXBpL2RhdGEvZDMvOnF1ZXJ5U2VhcmNoLwoKVGhlIGVuZHBvaW50IHJldHVybnMgZWl0aGVyIGpzb24gZm9yIGEgdmFsaWQgZDNkYWcgZ3JhcGggb3IganNvbiBmb3IgdmFsaWQgZGFnIGxpbmtzCgpBIG9wdGlvbiBmb3IgZm9ydGUgbnVtYmVycywgZW5jb2RlZCBsaWtlIHRoaXMgIltcIjBcIl18MS0xfDAwMDAwMCIsIGlzIGFkZGVkIHRvIGFsbG93IHRoZSBhYmlsaXR5IHRvIHRvZ2dsZSBiZXR3ZWVuIHByaW1lRm9ybSwgbnVtYmVyLCBhbmQgdmVjIG9uIGEgZDNkYWcgYnkgc3BsaXR0aW5nIG9uICJ8IgoKLSBNYXggVVJJIGxlbmd0aDogTm8gbW9yZSB0aGFuIDIyIGNoYXJhY3RlcnMKCiMjIyMgVHlwZXMKYGBgdHMKdHlwZSBMaW5rcyA9IHsgc291cmNlOiBzdHJpbmc7IHRhcmdldDogc3RyaW5nIH1bXTsKdHlwZSBEYWdKU09OT2JqZWN0ID0gewoJc2l6ZTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9OwoJbm9kZXM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IGRhdGE6IHN0cmluZyB9W107CglsaW5rczogeyBzb3VyY2U6IHN0cmluZzsgdGFyZ2V0OiBzdHJpbmc7IHBvaW50czogbnVtYmVyW11bXTsgZGF0YTogTGlua3MgfTsKCXY6IG51bWJlcjsKfTsKYGBgCgojIyMjIENhcmRpbmFsaXR5LUluY3JlYXNpbmcgdnMgU3RyaWN0LUluY3JlYXNpbmcKClRoZSBvcGVyYXRpb25zIGhlcmUgYXJlIGRvbmUgb24gdGhlIHByaW1lRm9ybSBwcm9wZXJ0eS4KCkNhcmRpbmFsaXR5LWluY3JlYXNpbmcgaGVyZSBtZWFucyB0aGUgdGFyZ2V0IHNldCBpcyBhIHByb3BlciBzdXBlcnNldCBvZiB0aGUgc291cmNlIHNldCB3aGVyZSB0aGUgdGFyZ2V0IHNldCBpcyBncmVhdGVyIGluIGxlbmd0aCBieSAxCgpgYGB0cwogIHsKICAgICJzb3VyY2UiOiAiW1wiMFwiXSIsCiAgICAidGFyZ2V0IjogIltcIjBcIixcIjFcIl0iCiAgfQpgYGAKClN0cmljdC1pbmNyZWFzaW5nIGhlcmUgbWVhbnMgdGhlIHRhcmdldCBzZXQgaXMgYSBwcm9wZXIgc3VwZXJzZXQgb2YgdGhlIHNvdXJjZSBzZXQgd2hlcmUgdGhlIHRhcmdldCBzZXQgaXMgZ3JlYXRlciBpbiBsZW5ndGggYnkgMSBBTkQgdGhlIG5leHQgbnVtYmVyIG9mIHRoZSB0YXJnZXQgc2V0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSBsYXJnZXN0IG51bWJlciBpbiBzb3VyY2Ugc2V0IChsZXhpY29ncmFwaGljYWxseSBncmVhdGVyKS4KCldoZW4gY29tcGFyaW5nIFtcIjBcIixcIjJcIixcIjNcIixcIjRcIl0gPiBbXCIwXCIsXCIyXCIsXCIzXCJdLCBpdCByZXR1cm5zIHRydWUKV2hpbGUgY29tcGFyaW5nIFtcIjBcIixcIjFcIixcIjNcIixcIjRcIl0gPiBbXCIwXCIsXCIyXCIsXCIzXCJdLCBpdCByZXR1cm5zIGZhbHNlCmBgYHRzCiAgewogICAgInNvdXJjZSI6ICJbXCIwXCIsXCIyXCIsXCIzXCJdIiwKICAgICJ0YXJnZXQiOiAiW1wiMFwiLFwiMlwiLFwiM1wiLFwiNFwiXSIKICB9CmBgYAoKIyMjIyBWZWN0b3ItU2ltaWxhcml0eQoKVGhlIG9wZXJhdGlvbnMgaGVyZSBhcmUgZG9uZSBvbiB0aGUgdmVjIHByb3BlcnR5LgoKVmVjdG9ycyBhcmUgY29tcGFyZWQgdXNpbmcgY29zaW5lIHNpbWlsYXJpdHkgYW5kIGFyZSBsaW5rZWQgdG8gdGhlIHNldCB3aXRoIHRoZSBoaWdoZXN0IGNvc2luZSBzaW1pbGFyaXR5LgoKIyMjIyBPcmlnaW5hbCB2cyBJbnZlcnNpb24KCk9yaWdpbmFsIG1lYW5zIG5vIGludmVyc2lvbnMgKG5vIEIgc2V0cyksIGJ1dCBzZXRzIGFyZSBzdGlsbCBsYWJlbGxlZCAzLTExQSBpbnN0ZWFkIG9mIDMtMTEuCgpJbnZlcnNpb24gbWVhbnMgd2l0aCBpbnZlcnNpb25zIHNvIGl0IGluY2x1ZGVzIGJvdGggQSBhbmQgQiBzZXRzLgoKIyMjIyBNYW51YWwgQ29uc3RydWN0aW9uCgpUaGUganNvbiBmaWxlcyBoZXJlIGNhbiBiZSByZWNyZWF0ZWQgdXNpbmcgdGhlIHNldF9jbGFzc2VzLmpzb24gZmlsZS4KCiMjIyMjIEZldGNoCgpgYGB0cwp0eXBlIExpbmsgPSB7IHNvdXJjZTogc3RyaW5nOyB0YXJnZXQ6IHN0cmluZyB9CmNvbnN0IGxpbmtzID0gcmVmPG51bGwgfCBMaW5rW10+KG51bGwpCgpjb25zdCBmZXRjaERhdGEgPSBhc3luYyAoKSA9PiB7CiAgdHJ5IHsKICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKAogICAgICAnaHR0cHM6Ly9oY2RhOGY4ZHRrLmV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL3Byb2QvYXBpL2RhdGEvbnVtYmVyLHByaW1lRm9ybSx2ZWMvJywKICAgICAgeyBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwgfQogICAgKQogICAgaWYgKHJlcy5vaykgewogICAgICBjb25zdCBkYXRhOiB7IG51bWJlcjogc3RyaW5nOyBwcmltZUZvcm06IHN0cmluZzsgdmVjOiBzdHJpbmcgfVtdID0gYXdhaXQgcmVzLmpzb24oKQogICAgICBsaW5rcy52YWx1ZSA9IGxpbmtCdWlsZGVyKGRhdGEpCiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsaW5rcycsIEpTT04uc3RyaW5naWZ5KGxpbmtzLnZhbHVlKSkKICAgIH0gZWxzZSB7CiAgICAgIGNvbnNvbGUubG9nKCdOb3QgMjAwJykKICAgIH0KICB9IGNhdGNoIChlcnJvcikgewogICAgaWYgKChlcnJvciBhcyBFcnJvcikubmFtZSA9PSAnQWJvcnRFcnJvcicpIHsKICAgICAgY29uc29sZS5sb2coJ0Fib3J0RXJyb3InLCBlcnJvcikKICAgIH0KICAgIGNvbnNvbGUubG9nKGVycm9yKQogIH0KfQpgYGAKCiMjIyMjIExpbmtzCmBgYHRzCi8vIENhcmRpbmFsaXR5LUluY3JlYXNpbmcKY29uc3QgbGlua0J1aWxkZXIgPSAoCiAgZGF0YTogeyBudW1iZXI6IHN0cmluZzsgcHJpbWVGb3JtOiBzdHJpbmc7IHZlYzogc3RyaW5nIH1bXQopID0+IHsKICBjb25zdCBuZXdEYXRhOiB7IG51bWJlcjogc3RyaW5nOyBwcmltZUZvcm06IHN0cmluZ1tdOyB2ZWM6IHN0cmluZyB9W10gPSBkYXRhLm1hcCgocykgPT4gKHsKICAgIHByaW1lRm9ybTogcy5wcmltZUZvcm0uc2xpY2UoMSwgLTEpLnNwbGl0KCcsJyksCiAgICBudW1iZXI6IHMubnVtYmVyLAogICAgdmVjOiBzLnZlYwogIH0pKQogIGxldCBsaW5rczogTGlua1tdID0gW3sgc291cmNlOiAnWyIiXXwwLTF8MDAwMDAwJywgdGFyZ2V0OiAnWyIwIl18MS0xfDAwMDAwMCcgfV0KCiAgZm9yIChjb25zdCBzIG9mIG5ld0RhdGEpIHsKICAgIGZvciAoY29uc3QgdCBvZiBuZXdEYXRhKSB7CiAgICAgIGlmICgKICAgICAgICBzLnByaW1lRm9ybS5ldmVyeSgoZSkgPT4gdC5wcmltZUZvcm0uaW5jbHVkZXMoZSkpICYmCiAgICAgICAgcy5wcmltZUZvcm0ubGVuZ3RoID09PSB0LnByaW1lRm9ybS5sZW5ndGggLSAxCiAgICAgICkgewogICAgICAgIGxpbmtzLnB1c2goewogICAgICAgICAgc291cmNlOgogICAgICAgICAgICAnWycgKyBzLnByaW1lRm9ybS50b1N0cmluZygpICsgJ10nICsgJ3wnICsgcy5udW1iZXIgKyAnfCcgKyBzLnZlYy5yZXBsYWNlKC9cRC9nLCAnJyksCiAgICAgICAgICB0YXJnZXQ6CiAgICAgICAgICAgICdbJyArIHQucHJpbWVGb3JtLnRvU3RyaW5nKCkgKyAnXScgKyAnfCcgKyB0Lm51bWJlciArICd8JyArIHQudmVjLnJlcGxhY2UoL1xEL2csICcnKQogICAgICAgIH0pCiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIGxpbmtzCn0KCi8vIFN0cmljdGx5LUluY3JlYXNpbmcKY29uc3QgbGlua0J1aWxkZXIgPSAoCiAgZGF0YTogeyBudW1iZXI6IHN0cmluZzsgcHJpbWVGb3JtOiBzdHJpbmc7IHZlYzogc3RyaW5nIH1bXQopID0+IHsKICBjb25zdCBuZXdEYXRhOiB7IG51bWJlcjogc3RyaW5nOyBwcmltZUZvcm06IHN0cmluZ1tdOyB2ZWM6IHN0cmluZyB9W10gPSBkYXRhLm1hcCgocykgPT4gKHsKICAgIHByaW1lRm9ybTogcy5wcmltZUZvcm0uc2xpY2UoMSwgLTEpLnNwbGl0KCcsJyksCiAgICBudW1iZXI6IHMubnVtYmVyLAogICAgdmVjOiBzLnZlYwogIH0pKQogIGxldCBsaW5rczogTGlua1tdID0gW3sgc291cmNlOiAnWyIiXXwwLTF8MDAwMDAwJywgdGFyZ2V0OiAnWyIwIl18MS0xfDAwMDAwMCcgfV0KCiAgZm9yIChjb25zdCBzIG9mIG5ld0RhdGEpIHsKICAgIGZvciAoY29uc3QgdCBvZiBuZXdEYXRhKSB7CiAgICAgIGlmICgKICAgICAgICBzLnByaW1lRm9ybS5ldmVyeSgoZSkgPT4gdC5wcmltZUZvcm0uaW5jbHVkZXMoZSkpICYmCiAgICAgICAgcy5wcmltZUZvcm0ubGVuZ3RoID09PSB0LnByaW1lRm9ybS5sZW5ndGggLSAxICYmCiAgICAgICAgdC5wcmltZUZvcm0gPiBzLnByaW1lRm9ybQogICAgICApIHsKICAgICAgICBsaW5rcy5wdXNoKHsKICAgICAgICAgIHNvdXJjZToKICAgICAgICAgICAgJ1snICsgcy5wcmltZUZvcm0udG9TdHJpbmcoKSArICddJyArICd8JyArIHMubnVtYmVyICsgJ3wnICsgcy52ZWMucmVwbGFjZSgvXEQvZywgJycpLAogICAgICAgICAgdGFyZ2V0OgogICAgICAgICAgICAnWycgKyB0LnByaW1lRm9ybS50b1N0cmluZygpICsgJ10nICsgJ3wnICsgdC5udW1iZXIgKyAnfCcgKyB0LnZlYy5yZXBsYWNlKC9cRC9nLCAnJykKICAgICAgICB9KQogICAgICB9CiAgICB9CiAgfQogIHJldHVybiBsaW5rcwp9CgovLyBWZWN0b3ItU2ltaWxhcml0eQpjb25zdCBsaW5rQnVpbGRlciA9ICgKICBkYXRhOiB7IG51bWJlcjogc3RyaW5nOyBwcmltZUZvcm06IHN0cmluZzsgdmVjOiBzdHJpbmcgfVtdCikgPT4gewogIGNvbnN0IG5ld0RhdGE6IHsgbnVtYmVyOiBzdHJpbmc7IHByaW1lRm9ybTogc3RyaW5nW107IHZlYzogc3RyaW5nIH1bXSA9IGRhdGEubWFwKChzKSA9PiAoewogICAgcHJpbWVGb3JtOiBzLnByaW1lRm9ybS5zbGljZSgxLCAtMSkuc3BsaXQoJywnKSwKICAgIG51bWJlcjogcy5udW1iZXIsCiAgICB2ZWM6IHMudmVjCiAgfSkpCiAgbGV0IGxpbmtzOiBMaW5rW10gPSBbeyBzb3VyY2U6ICdbIiJdfDAtMXwwMDAwMDAnLCB0YXJnZXQ6ICdbIjAiXXwxLTF8MDAwMDAwJyB9XQoKICBmb3IgKGNvbnN0IFtpLCBzXSBvZiBuZXdEYXRhLmVudHJpZXMoKSkgewogICAgbGV0IG1heCA9IDAKICAgIGxldCBuZXdTID0gbnVsbAogICAgbGV0IG5ld1QgPSBudWxsCiAgICBmb3IgKGNvbnN0IFtqLCB0XSBvZiBuZXdEYXRhLmVudHJpZXMoKSkgewogICAgICBjb25zdCBzVmVjID0gcy52ZWMucmVwbGFjZSgvWzw+XS9nLCAnJykucmVwbGFjZSgvQy9nLCAnMTInKS5yZXBsYWNlKC9UL2csICcxMCcpLnNwbGl0KCcsJykKICAgICAgY29uc3QgdFZlYyA9IHQudmVjLnJlcGxhY2UoL1s8Pl0vZywgJycpLnJlcGxhY2UoL0MvZywgJzEyJykucmVwbGFjZSgvVC9nLCAnMTAnKS5zcGxpdCgnLCcpCgogICAgICBjb25zdCBkb3RQcm9kID0gdFZlYwogICAgICAgIC5tYXAoKGEsIGkpID0+IHBhcnNlSW50KGEpICogcGFyc2VJbnQoc1ZlY1tpXSkpCiAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2MgKyBjdXJyLCAwKQogICAgICBjb25zdCBjb3NTaW0gPQogICAgICAgIGRvdFByb2QgLwogICAgICAgIChNYXRoLnNxcnQoc1ZlYy5yZWR1Y2UoKHN1bSwgdmFsKSA9PiBzdW0gKyBwYXJzZUludCh2YWwpICogcGFyc2VJbnQodmFsKSwgMCkpICoKICAgICAgICAgIE1hdGguc3FydCh0VmVjLnJlZHVjZSgoc3VtLCB2YWwpID0+IHN1bSArIHBhcnNlSW50KHZhbCkgKiBwYXJzZUludCh2YWwpLCAwKSkpCgogICAgICBpZiAoaSA8IGogJiYgY29zU2ltID4gbWF4KSB7CiAgICAgICAgbWF4ID0gY29zU2ltCiAgICAgICAgbmV3UyA9IHMKICAgICAgICBuZXdUID0gdAogICAgICB9CiAgICB9CiAgICBpZiAobmV3UyAmJiBuZXdUKSB7CiAgICAgIGxpbmtzLnB1c2goewogICAgICAgIHNvdXJjZToKICAgICAgICAgICdbJyArCiAgICAgICAgICBuZXdTLnByaW1lRm9ybS50b1N0cmluZygpICsKICAgICAgICAgICddJyArCiAgICAgICAgICAnfCcgKwogICAgICAgICAgbmV3Uy5udW1iZXIgKwogICAgICAgICAgJ3wnICsKICAgICAgICAgIG5ld1MudmVjLnJlcGxhY2UoLyg/IVtURUNdKVxEL2csICcnKSwKICAgICAgICB0YXJnZXQ6CiAgICAgICAgICAnWycgKwogICAgICAgICAgbmV3VC5wcmltZUZvcm0udG9TdHJpbmcoKSArCiAgICAgICAgICAnXScgKwogICAgICAgICAgJ3wnICsKICAgICAgICAgIG5ld1QubnVtYmVyICsKICAgICAgICAgICd8JyArCiAgICAgICAgICBuZXdULnZlYy5yZXBsYWNlKC8oPyFbVEVDXSlcRC9nLCAnJykKICAgICAgfSkKICAgIH0KICB9CiAgcmV0dXJuIGxpbmtzCn0KCi8vIEZvciBvcmlnaW5hbCBkYWdzIGFkZCB0aGlzIHRvIHRoZSBjb25kaXRpb24KIXMubnVtYmVyLmVuZHNXaXRoKCdCJykgJiYKIXQubnVtYmVyLmVuZHNXaXRoKCdCJykKYGBgCgojIyMjIyBEYWcKCmBgYHRzCmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJwppbXBvcnQgKiBmcm9tICdkMy1kYWcnCmNvbnN0IGJ1aWxkZXIgPSBncmFwaENvbm5lY3QoKQogICAgLnNvdXJjZUlkKCh7IHNvdXJjZSB9OiB7IHNvdXJjZTogc3RyaW5nIH0pID0+IHNvdXJjZSkKICAgIC50YXJnZXRJZCgoeyB0YXJnZXQgfTogeyB0YXJnZXQ6IHN0cmluZyB9KSA9PiB0YXJnZXQpCmNvbnN0IGRhZ0J1aWxkID0gYnVpbGRlcihsaW5rcy52YWx1ZSkKY29uc3QgbGF5b3V0ID0gc3VnaXlhbWEoKQogICAgLmxheWVyaW5nKGxheWVyaW5nU2ltcGxleCgpKQogICAgLmRlY3Jvc3MoZGVjcm9zc1R3b0xheWVyKCkub3JkZXIodHdvbGF5ZXJHcmVlZHkoKS5iYXNlKHR3b2xheWVyQWdnKCkpKSkKICAgIC5jb29yZChjb29yZFNpbXBsZXgoKSkKICAgIC5ub2RlU2l6ZShbMiAqIE5PREVfUkFESVVTLCAyICogTk9ERV9SQURJVVNdKQogICAgLmdhcChbTk9ERV9SQURJVVMsIE5PREVfUkFESVVTXSkKICAgIC50d2Vha3MoW3R3ZWFrU2hhcGUoWzIgKiBOT0RFX1JBRElVUywgMiAqIE5PREVfUkFESVVTXSwgc2hhcGVFbGxpcHNlKV0pCgpjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGxheW91dChkYWdCdWlsZCBhcyBhbnkpCgpKU09OLnN0cmluZ2lmeShkYWdCdWlsZCkgLy8gTk9URTogSSBhZGRlZCBzaXplIHByb3BlcnR5IHdpdGggd2lkdGggYW5kIGhlaWdodCBkdXJpbmcgcG9zdC1wcm9jZXNzaW5nLCBpdCBpcyBub3QgYSBkZWZhdWx0IHByb3BlcnR5IHJldHVybmVkIGluIHRoZSBKU09OIGJ5IGQzZGFnCmBgYAoKIyMjIyBIb3cgdG8gVXNlIEpTT04gaW4gRDNEYWcKCmBgYHRzCnR5cGUgTGluayA9IHsgc291cmNlOiBzdHJpbmc7IHRhcmdldDogc3RyaW5nIH0KdHlwZSBEYWdKU09OT2JqZWN0ID0gewoJc2l6ZTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9OwoJbm9kZXM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IGRhdGE6IHN0cmluZyB9W107CglsaW5rczogeyBzb3VyY2U6IHN0cmluZzsgdGFyZ2V0OiBzdHJpbmc7IHBvaW50czogbnVtYmVyW11bXTsgZGF0YTogTGlua1tdIH07Cgl2OiBudW1iZXI7Cn07Cgpjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgnLi4uL2FwaS9kYXRhL2QzL3N0cmljdGRhZ3ByaW1lZm9ybS8nKQpjb25zdCBkYXRhOiBEYWdKU09OT2JqZWN0ID0gYXdhaXQgcmVzLmpzb24oKSAKY29uc3Qgc2l6ZToge3dpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyfSA9IGRhdGEuc2l6ZSAvLyB1c2UgdG8gYWRqdXN0IHRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgZ3JhcGggb3Igc2V0IHRoZSBncmFwaCBzaXplCgpjb25zdCBidWlsZGVyID0gZ3JhcGhKc29uKCkKICAgICAgLm5vZGVEYXR1bSgoZGF0YSkgPT4gZGF0YSBhcyBzdHJpbmcpCiAgICAgIC5saW5rRGF0dW0oKGRhdGEpID0+IGRhdGEgYXMgTGluaykKY29uc3QgZGFnID0gYnVpbGRlcihKU09OLnBhcnNlKGRhdGEpKQovLyBwZXJmb3JtIGQzIHZpc3VhbGl6YXRpb25zIHVzaW5nIGRhZy5ub2RlcygpIGFuZCBkYWcubGlua3MoKQpgYGAKCiMjIyMgRW5kcG9pbnRzCgpWYWxpZCBxdWVyaWVzIGFyZToKICAtIGNhcmRpbmFsaW52ZXJzaW9uZGFnCiAgLSBjYXJkaW5hbGludmVyc2lvbmxpbmtzCiAgLSBjYXJkaW5hbG9yaWdpbmFsZGFnCiAgLSBjYXJkaW5hbG9yaWdpbmFsbGlua3MKICAtIHN0cmljdGludmVyc2lvbmRhZwogIC0gc3RyaWN0aW52ZXJzaW9ubGlua3MKICAtIHN0cmljdG9yaWdpbmFsZGFnCiAgLSBzdHJpY3RvcmlnaW5hbGxpbmtzCiAgLSB2ZWN0b3JpbnZlcnNpb25kYWcKICAtIHZlY3RvcmludmVyc2lvbmxpbmtzCiAgLSB2ZWN0b3JvcmlnaW5hbGRhZwogIC0gdmVjdG9yb3JpZ2luYWxsaW5rcwoKIyMgQVBJIERldmVsb3BtZW50CgpSdW4gYGBgbnBtIGlgYGAKCiMjIyBBZGQgLmVudiBGaWxlCgpgYGBlbnYKTk9ERV9FTlY9ZGV2ZWxvcG1lbnQKUE9SVD1bY2hvb3NlIGFueSBwb3J0XQpgYGAKCiMjIFN0YXIgVGhpcyBSZXBvCgpJZiB5b3UgbGlrZSB0aGlzIEFQSSwgcGxlYXNlIGdpdmUgaXQgYSBzdGFyISBfXH4gQ3JlYXRlZCBieSBLaGFuZyBUcmFuXwo= readmeEtag: '"5977867a76a2944632a5773c48c1a067fc0336a1"' readmeLastModified: Mon, 20 Nov 2023 05:04:25 GMT repositoryId: 676712807 description: >- A music theory API that provides a way to query set classes using Express and TypeScript, Tested with Mocha-Chai created: '2023-08-09T20:46:55Z' updated: '2023-09-22T21:00:34Z' language: TypeScript archived: false stars: 3 watchers: 1 forks: 0 owner: NinjaNas logo: https://avatars.githubusercontent.com/u/54213302?v=4 license: MIT repoEtag: '"7591e37e535d45caafa6c628b16ec744ff8082e24a636e6e276bbb47c332f49f"' repoLastModified: Fri, 22 Sep 2023 21:00:34 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/lschlesinger/the-game v3: true repositoryMetadata: base64Readme: >- CjwhLS0gUFJPSkVDVCBMT0dPIC0tPgo8YnIgLz4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9sc2NobGVzaW5nZXIvdGhlLWdhbWUiPgogICAgPGltZyBzcmM9ImdhbWUtd2ViLXVpL3NyYy9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nIiBhbHQ9IkxvZ28iIHdpZHRoPSI1MDAiPgogIDwvYT4KICA8cCBhbGlnbj0iY2VudGVyIj4KICAgIFN3aWZ0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBjYXJkIGdhbWUgIlRoZSBHYW1lIiwgYnkgU3RlZmZlbiBCZW5uZG9yZiB1c2luZyB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0Fwb2RpbmkvQXBvZGluaSI+QXBvZGluaSBGcmFtZXdvcms8L2E+LgogICAgVGhlIEVuZGFuZ2VyZWQgTmF0dXJlIEVkaXRpb24gaXMgYmFzZWQgb24gYW4gZW52aXJvbm1lbnRhbCBlZHVjYXRpb24gY29uY2VwdCwgd2hpY2ggYWltcyB0byByYWlzZSBhd2FyZW5lc3Mgb2YgdGhlIGN1cnJlbnQgdGhyZWF0cyB0byBjZXJ0YWluIHNwZWNpZXMuCiAgICAgIDwvcD4KICAgIDxici8+CiAgPC9wPiAKPC9wPgoKPCEtLSBUQUJMRSBPRiBDT05URU5UUyAtLT4KCiMjIFRhYmxlIG9mIENvbnRlbnRzCgoqIFtBYm91dCB0aGUgUHJvamVjdF0oI2Fib3V0LXRoZS1wcm9qZWN0KQogICogW01vdGl2YXRpb25dKCNtb3RpdmF0aW9uKQogICogW1RlY2huaWNhbCBCYWNrZ3JvdW5kXSgjdGVjaG5pY2FsLWJhY2tncm91bmQpCiAgKiBbQnVpbHQgV2l0aF0oI2J1aWx0LXdpdGgpCiogW0dldHRpbmcgU3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKKiBbQ3JpdGljYWwgUmVmbGVjdGlvbiBvZiB0aGUgU29mdHdhcmVdKCNjcml0aWNhbC1yZWZsZWN0aW9uKQoqIFtMaWNlbnNlXSgjbGljZW5zZSkKCjwhLS0gQUJPVVQgVEhFIFBST0pFQ1QgLS0+CgojIyBBYm91dCB0aGUgUHJvamVjdAoKVGhlIGN1cnJlbnQgQ29yb25hIHNpdHVhdGlvbiBmb3JjZXMgdXMgaW4gbWFueSBjYXNlcyB0byBsaW1pdCBvdXJzZWx2ZXMgdG8gZGlnaXRhbCBjb250YWN0IGFuZCBkaWdpdGFsIGNvbW11bmljYXRpb24gYWxvbmUuIFVuZm9ydHVuYXRlbHksIGluIHRpbWVzIG9mIHBoeXNpY2FsIGRpc3RhbmNlIGFuZCBpc29sYXRpb24sIGludml0aW5nIGEgbGFyZ2UgZ3JvdXAgb2YgcGVvcGxlIG92ZXIgZm9yIGEgZnVuIGV2ZW5pbmcgd2l0aCBjYXJkIG9yIGJvYXJkIGdhbWVzIGlzIG1vcmUgYSBtZW1vcnkgb2YgYW4gZWFybGllciB0aW1lIHRoYW4gcGFydCBvZiBvdXIgY3VycmVudCB3ZWVrZW5kIHBsYW4gLSBhbmQgd2UgbWlzcyB0aGF0ISBUaGF0IGlzIHdoeSB3ZSBjYW1lIHVwIHdpdGggdGhlIGlkZWEgdG8gaW1wbGVtZW50IG91ciBmYXZvcml0ZSBjYXJkIGdhbWUgYXMgYW4gb25saW5lIGdhbWUuIFdlIGNhbiBub3cgcGxheSB0b2dldGhlciB3aXRoIGEgZ3JvdXAgb2YgZnJpZW5kcyBhbmQgb3VyIGZhbWlsaWVzLCBzcHJlYWQgYWxsIG92ZXIgdGhlIGNvdW50cnkuCgpGaW5kIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmFsIGdhbWUgW2hlcmVdKGh0dHA6Ly9taWRkeXMubnN2LmRlL21pZGR5cy90aGUtZ2FtZS8pLgpUaGlzIGlzIGhvdyBvdXIgZWRpdGlvbiBsb29rcyBsaWtlOgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0iZ2FtZS13ZWItdWkvc3JjL2Fzc2V0cy9pbWFnZXMvZ2FtZS1leGFtcGxlLnBuZyIgYWx0PSJMb2dvIiB3aWR0aD0iNzAwIj4KPC9wPgoKV2UgaG9wZSB5b3UgaGF2ZSBmdW4gcGxheWluZyBpdCEgUGxlYXNlIGZpbmQgYWNrbm93bGVkZ2VtZW50IGFzIHdlbGwgYXMgdGhlIHNvdXJjZSBvZiB0aGUgcGljdHVyZXMgdXNlZCBbaGVyZV0oRG9jdW1lbnRhdGlvbi9BY2tub3dsZWRnZW1lbnQubWQpLgoKIyMjIE1vdGl2YXRpb24KCkJpb2RpdmVyc2l0eSBpcyB0aGUgYmFzaXMgZm9yIGZ1bmN0aW9uaW5nIGVjb3N5c3RlbXMsIG9uIHdoaWNoIHdlIGh1bWFucyBvdXJzZWx2ZXMgdWx0aW1hdGVseSBkZXBlbmQuIEZvcnR1bmF0ZWx5LCB0aGUgY29udHJpYnV0aW9uIG9mIG5hdHVyZSB0byBhIGdvb2QgcXVhbGl0eSBvZiBsaWZlIGlzIG5vd2FkYXlzIGluY3JlYXNpbmdseSB2YWx1ZWQuIE5ldmVydGhlbGVzcywgYW50aHJvcG9nZW5pYyBhY3Rpdml0aWVzIGFyZSBkZXN0cm95aW5nIHNwZWNpZXMgaGFiaXRhdHMgYW5kIHRodXMgZnVlbGluZyBzcGVjaWVzIGV4dGluY3Rpb24gdW5hYmF0ZWQuCgpUaGUgaWRlYSBiZWhpbmQgdGhlIGNhcmQgZGVzaWduIGlzIHRvIHJhaXNlIGF3YXJlbmVzcyBmb3IgW05hdHVyZeKAmXMgUmVkIExpc3Qgb2YgVGhyZWF0ZW5lZCBTcGVjaWVzXShodHRwczovL3d3dy5pdWNucmVkbGlzdC5vcmcvYWJvdXQvYmFja2dyb3VuZC1oaXN0b3J5KS4gClRoZSBtZXJlIHNpZ2h0IG9mIHRoZSBjaGFybWluZyByZXByZXNlbnRhdGl2ZXMgb2YgdGhlIHZ1bG5lcmFibGUgYW5kIGVuZGFuZ2VyZWQgc3BlY2llcyBzaG91bGQgaWRlYWxseSBjb250cmlidXRlIHRvIGFkdm9jYXRpbmcgYSBtb3JlIG5hdHVyZS1mcmllbmRseSB3YXkgb2YgbGlmZS4KCiMjIyBUZWNobmljYWwgQmFja2dyb3VuZAoKQnkgdXNpbmcgdGhlIFtBcG9kaW5pIEZyYW1ld29ya10oaHR0cHM6Ly9naXRodWIuY29tL0Fwb2RpbmkvQXBvZGluaSksIHRoaXMgc2FtcGxlIHByb2plY3QgdGFja2xlcyB0aGUgZm9sbG93aW5nIHByb2JsZW06CjxwIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSIuL0RvY3VtZW50YXRpb24vaW5mby1tYXRlcmlhbC9BcG9kaW5pLVByb2JsZW0tU3RhdGVtZW50LnBuZyIgYWx0PSJMb2dvIiB3aWR0aD0iNjAwIj4KPC9wPgoKWW91IGNhbiBmaW5kIGEgc3RlcC1ieS1zdGVwIG1hbnVhbCBvbiBob3cgdG8gYWNjb21wbGlzaCBidWlsZGluZyBhIGBHYW1lV2ViU2VydmljZWAgd2l0aCBBcG9kaW5pIHVzaW5nIE9BUyBbaGVyZV0oRG9jdW1lbnRhdGlvbi9SRUFETUUubWQpLgoKIyMjIEJ1aWx0IFdpdGgKCiogW0Fwb2RpbmldKGh0dHBzOi8vZ2l0aHViLmNvbS9BcG9kaW5pL0Fwb2RpbmkpCiogW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikgdXNpbmcgW09wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAuM10oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKQoqIFtBbmd1bGFyXShodHRwczovL2FuZ3VsYXIuaW8vKQoqIFtBbnQgRGVzaWduXShodHRwczovL2FudC5kZXNpZ24vZG9jcy9yZWFjdC9pbnRyb2R1Y2UpCiogW0RvY2tlcl0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pCiogW05HSU5YXShodHRwczovL3d3dy5uZ2lueC5jb20vKQoKPCEtLSBHRVRUSU5HIFNUQVJURUQgLS0+CgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyBEb2NrZXIgU2V0dXAKCiMjIyMgUmVxdWlyZW1lbnRzCgoqIERvY2tlcgoqIERvY2tlciBDb21wb3NlCiogU3dhZ2dlciBjb2RlZ2VuCgojIyMjIFJ1bgoKVG8gZ2V0IGEgbG9jYWwgY29weSB1cCBhbmQgcnVubmluZyBmb2xsb3cgdGhlc2Ugc2ltcGxlIHN0ZXBzOgoKMS4gQ2xvbmUgdGhlIHJlcG8KCmBgYHNoCmdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTpsc2NobGVzaW5nZXIvdGhlLWdhbWUuZ2l0CmBgYAoyLiBTdGFydCBiYWNrZW5kIGFuZCBuZ2lueCB3aGljaCBzZXJ2ZXMgZnJvbnRlbmQKCmBgYHNoCmRvY2tlci1jb21wb3NlIHVwCmBgYAoKMy4gVmlzaXQgYGh0dHA6Ly9sb2NhbGhvc3Q6ODBgCgojIyMgRGV2ZWxvcG1lbnQgU2V0dXAKCiMjIyMgUmVxdWlyZW1lbnRzCgoqIE5vZGUuanMKKiBucG0KKiBTd2lmdAoKIyMjIyBSdW4KClRvIGdldCBhIGxvY2FsIGNvcHkgdXAgYW5kIHJ1bm5pbmcgZm9sbG93IHRoZXNlIHNpbXBsZSBzdGVwczoKCjEuIENsb25lIHRoZSByZXBvCgpgYGBzaApnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206bHNjaGxlc2luZ2VyL3RoZS1nYW1lLmdpdApgYGAKMi4gU3RhcnQgYmFja2VuZAoKYGBgc2gKc3dpZnQgcnVuCmBgYAozLiBTdGFydCBmcm9udGVuZCAoaW4gc2VwYXJhdGUgdGVybWluYWwpCgpgYGBzaApjZCBnYW1lLXdlYi11aQpucG0gaW5zdGFsbCAjIG9ubHkgdGhlIGZpcnN0IHRpbWUKbnBtIHJ1biBzdGFydApgYGAKCjQuIFZpc2l0IGBodHRwOi8vbG9jYWxob3N0OjQyMDBgIGZvciBmcm9udGVuZCAoYWxsIHJlcXVlc3RzIHRvIGJhY2tlbmQgd2lsbCBiZSBwcm94aWVkKQoJMS4gVmlzaXQgYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9kb2Mvb3BlbmFwaWAgKGlmIG5vdCBjb25maWd1cmVkIGRpZmZlcmVudGx5KSB0byBzZWUgdGhlIGdlbmVyYXRlZCBPcGVuQVBJIHNwZWNpZmljYXRpb24KCTIuIFZpc2l0IGBodHRwOi8vbG9jYWxob3N0OjgwODAvdWkvc3dhZ2dlcmAgKGlmIG5vdCBjb25maWd1cmVkIGRpZmZlcmVudGx5KSB0byBleHBsb3JlIHRoZSB3ZWIgYXBwIHdpdGggU3dhZ2dlci1VSQoKCjwhLS0gQ1JJVElDQUwgUkVGTEVDVElPTiAtLT4KCiMjIENyaXRpY2FsIFJlZmxlY3Rpb24gb2YgdGhlIFNvZnR3YXJlCgpCcm93c2luZyB0aGUgd2ViLCBwZW9wbGUgd2l0aCBkaXNhYmlsaXRpdGVzIG9mdGVuIHJlbHkgb24gYXNzaXN0aXZlIHRlY2hub2xvZ2llcywgc3VjaCBhcyBzY3JlZW4gcmVhZGVycywgbWFnbmlmaWNhdGlvbiBzb2Z0d2FyZSwgdGV4dCByZWFkZXJzLCBoZWFkIHBvaW50ZXJzLCBhbmQgbW90aW9uIG9yIGV5ZSB0cmFja2VycyB0byBhY2Nlc3MgY29udGVudC4gQXMgdGhpcyBwcm9qZWN0IGRvZXMgbm90IGluY2x1ZGUgZmVhdHVyZXMgdG8gc3VwcG9ydCB0aGVzZSBhc3Npc3RpdmUgdGVjaG5vbG9naWVzIHNvIGZhciwgdGhlIHNvZnR3YXJlIGlzIG5vdCBiYXJyaWVyLWZyZWUgZm9yIGFsbCB1c2Vycy4gCkluIHRoZSBmdXR1cmUsIHRoZSBhY2Nlc3NpYmlsaXR5IG9mIHRoZSBvbmxpbmUgZ2FtZSBzaG91bGQgYmUgZ3VhcmFudGVlZCBmb3IgYWxsIHBlb3BsZSwgbm8gbWF0dGVyIHdoZXJlIHRoZXNlIHBlb3BsZSBjb21lIGZyb20sIHdoYXQgbGFuZ3VhZ2UgdGhleSBzcGVhaywgd2hhdCB0ZWNobm9sb2d5IHRoZXkgdXNlIG9yIHdoYXQgc29jaWFsIGJhY2tncm91bmQgdGhleSBoYXZlLiBUaGF0IGlzIHdoeSB3ZSBhcmUgd29ya2luZyB0byBhY2hpZXZlIHRoZXNlIFtXZWIgQ29udGVudCBBY2Nlc3NpYmlsaXR5IEd1aWRlbGluZXMgKFdDQUcpIDIuMF0oaHR0cHM6Ly93d3cudzMub3JnL1RSL1dDQUcyMC8pIGluIHRoZSBsb25nIHRlcm0uIAoKTW9yZW92ZXIsIHRoZSBkdWUgdG8gdGhlIG1pc3Npb24gdGhhdCBzaG91bGQgYmUgdHJhbnNwb3J0ZWQgYnkgdGhlIHVzZSBvZiBwaWN0dXJlcywgdGhlIHBhZ2Ugd2VpZ2h0IGhhcyBwb3RlbnRpYWwgZm9yIG9wdGltaXphdGlvbi4gQSBnZW5lcmF0ZWQgW1BhZ2UgV2VpZ2h0XShodHRwczovL3BhZ2V3ZWlnaHQuaW1naXguY29tLykgcmVwb3J0IHN1Z2dlc3RzLCB0aGF0IHRoZXJlIGFyZSA4MyUgcG90ZW50aWFsIHNhdmluZ3MgaW4gcmVkdWNpbmcgaW1hZ2Ugc2l6ZXMuIFRoZSBjdXJyZW50IHBhZ2Ugd2VpZ2h0IG9mIHRoZSBvbmxpbmUgZ2FtZXMgZG9lcyBub3Qgb25seSBiZWFyIHRoZSByaXNrIG9mLCBzbG93IGxvYWQgdGltZXMsIGltcGVkZWQgcGVyZm9ybWFuY2UsIGFuZCBwb3RlbnRpYWxseSB3YXN0ZWQgZW5lcmd5LiBBY2NvcmRpbmcgdG8gdGhlIGRpZ2l0YWwgYWdlbmN5IFtNaWdodHlieXRlc10oaHR0cHM6Ly93d3cubWlnaHR5Ynl0ZXMuY29tL2Jsb2cvcGFnZS13ZWlnaHQtYnVkZ2V0LXRvLXNwZWVkLXVwLXlvdXItc2l0ZS8pICJ0aGlzIGNhbiBmcnVzdHJhdGUgbWFueSB1c2VycywgZXNwZWNpYWxseSB0aG9zZSBvbiBvbGRlciBtb2JpbGUgZGV2aWNlcyBvciBpbiBydXJhbCBhcmVhcyB3aXRoIHJlc3RyaWN0ZWQgYmFuZHdpZHRoIi4gSW4gdGhlIGZ1dHVyZSwgdGhlIG9ubGluZSBnYW1lIHNob3VsZCBicmluZyBpdCdzIHBhZ2Ugd2VpZ2h0IHRvIGEgbWluaW11bSBhbmQgdGhlcmVieSByZWR1Y2luZyB0aGUgZGlnaXRhbCBmb290cHJpbnQuCgpJbiB0aGVpciBibG9nIHBvc3Qgc2VyaWVzIFtTdXN0YWluYWJsZSBXZWIgRGVzaWduXShodHRwczovL3d3dy5taWdodHlieXRlcy5jb20vYmxvZy9zdXN0YWluYWJsZS13ZWItZGVzaWduLykgTWlnaHR5Ynl0ZXMgaW50cm9kdWNlIHN1c3RhaW5hYmxlIHdlYiBkZXNpZ24gcHJpbmNpcGxlcyB0aGF0IGdlbmVyYWxseSBmb2N1cyBvbiByZWR1Y2luZyBlbGVjdHJpY2l0eSB1c2UgYnV0IGFsc28gY292ZXIgdGhlIHVzZSBvZiDigJhncmVlbuKAmSBpbmdyZWRpZW50cywgc3VjaCBhcyBjbGVhbiBlbmVyZ3ktcG93ZXJlZCB3ZWIgaG9zdGluZywgZm9yIGV4YW1wbGUuCkhhdmluZyBpbiBtaW5kIHRoYXQgd2ViIGRlc2lnbmVycyBjYW4gbWFrZSBhIG1lYXN1cmFibGUgZGlmZmVyZW5jZSB0byBkZWNyZWFzZSB0aGUgY2FyYm9uIGZvb3RwcmludCBvZiB0aGUgSW50ZXJuZXQsIHdlIHNob3VsZCBmYWNlIHRoZSBjaGFsbGVuZ2Ugb2YgbWFraW5nIHRoZSBvbmxpbmUgZ2FtZSBhZGhlcmVpbmcgdG8gdGhlIHN1c3RhaW5ibGUgd2ViIGRlc2lnbiBwcmluY2lwbGVzIGFzIGZhciBhcyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlLgoKPCEtLSBMSUNFTlNFIC0tPgoKIyMgTGljZW5zZQoKRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdQTC0zLjAgTGljZW5zZS4gU2VlIGBMSUNFTlNFYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIENvbnRyaWJ1dG9ycwoKOnR3b193b21lbl9ob2xkaW5nX2hhbmRzOiBMJkwgU2NobGVzaW5nZXIK readmeEtag: '"279e9dc1d30dd22089cf807314b1dd9a6923e1c5"' readmeLastModified: Wed, 10 Mar 2021 19:38:47 GMT repositoryId: 332280786 description: >- Swift implementation of the card game "The Game", by Steffen Benndorf using the Apodini Framework, Angular, OAS3.0 and swagger-codegen created: '2021-01-23T18:30:16Z' updated: '2023-01-11T08:34:03Z' language: TypeScript archived: false stars: 3 watchers: 1 forks: 0 owner: lschlesinger logo: https://avatars.githubusercontent.com/u/41366522?v=4 license: GPL-3.0 repoEtag: '"2260638de8e5fe924f0f9ecd33e0c74f6d9e880a96f88d12611623c45cdd5f7e"' repoLastModified: Wed, 11 Jan 2023 08:34:03 GMT foundInMaster: true category: - Documentation - Server Implementations id: 429f4d721f8935dd2cdc97e743793b7f - source: openapi3 tags repository: https://github.com/berislavlopac/pyapi-server v3: true id: b5e0fb24b4b1c517abdf5cd50ec99acc repositoryMetadata: base64Readme: >- IyBQeUFQSSBTZXJ2ZXIKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9iMTFjLnNlbWFwaG9yZWNpLmNvbS9iYWRnZXMvcHlhcGktc2VydmVyL2JyYW5jaGVzL21haW4uc3ZnP3N0eWxlPXNoaWVsZHMma2V5PWU5ZWViOWQyLTY0ODctNGFiYS05MjA3LWU0NmM4NGY5YmM2ZildKGh0dHBzOi8vYjExYy5zZW1hcGhvcmVjaS5jb20vcHJvamVjdHMvcHlhcGktc2VydmVyKQpbIVtEb2N1bWVudGF0aW9uIFN0YXR1c10oaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvcHlhcGktc2VydmVyL2JhZGdlLz92ZXJzaW9uPWxhdGVzdCldKGh0dHBzOi8vcHlhcGktc2VydmVyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8/YmFkZ2U9bGF0ZXN0KQoKKipQeUFQSSBTZXJ2ZXIqKiBpcyBhIFB5dGhvbiBsaWJyYXJ5IGZvciBzZXJ2aW5nIFJFU1QgQVBJcyBiYXNlZCBvbgpbT3BlbkFQSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3Jlc291cmNlcy9vcGVuLWFwaS8pIHNwZWNpZmljYXRpb25zLiBJdCBpcyBiYXNlZCBvbiBbU3RhcmxldHRlXShodHRwczovL3d3dy5zdGFybGV0dGUuaW8pIGFuZCBpcyBmdW5jdGlvbmFsbHkgdmVyeSBzaW1pbGFyIHRvIFtjb25uZXhpb25dKGh0dHBzOi8vY29ubmV4aW9uLnJlYWR0aGVkb2NzLmlvKSwgZXhjZXB0IHRoYXQgaXQgYWltcyB0byBiZSBmdWxseSBbQVNHSV0oaHR0cHM6Ly9hc2dpLnJlYWR0aGVkb2NzLmlvKS1jb21wbGlhbnQuCgoqKldBUk5JTkc6KiogVGhpcyBpcyBzdGlsbCBhIHdvcmsgaW4gcHJvZ3Jlc3MgYW5kIG5vdCBxdWl0ZSByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2FnZS4gVW50aWwgdmVyc2lvbiAxLjAgaXMgcmVsZWFzZWQsIGFueSBuZXcgcmVsZWFzZSBjYW4gYmUgZXhwZWN0ZWQgdG8gYnJlYWsgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KCgojIyBRdWljayBTdGFydAoKYGBgcHl0aG9uCmZyb20gcHlhcGkuc2VydmVyIGltcG9ydCBBcHBsaWNhdGlvbgpmcm9tIHNvbWUucGF0aCBpbXBvcnQgZW5kcG9pbnRzCgphcHAgPSBBcHBsaWNhdGlvbi5mcm9tX2ZpbGUoInBhdGgvdG8vb3BlbmFwaS55YW1sIiwgbW9kdWxlPWVuZHBvaW50cykKYGBgCg== readmeEtag: '"e330bf28b91a7cd64bdb084322671787282f5380"' readmeLastModified: Thu, 25 Jul 2024 14:14:16 GMT repositoryId: 524173113 description: >- Lightweight API framework using an OpenAPI spec for routing and validation. created: '2022-08-12T17:32:43Z' updated: '2024-07-25T14:14:21Z' language: Python archived: false stars: 3 watchers: 2 forks: 0 owner: berislavlopac logo: https://avatars.githubusercontent.com/u/754090?v=4 repoEtag: '"8407ea963cb780e4c29fc8ab0e9d8a2534fec8b247aae36f64106fd50f0c00c0"' repoLastModified: Thu, 25 Jul 2024 14:14:21 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/cloudy-sky-software/pulumi-provider-template v3: true id: 5e5e71c5d4ff048e6be5da2103af3c92 repositoryMetadata: base64Readme: >- IyBQdWx1bWkgTmF0aXZlIFByb3ZpZGVyIFRlbXBsYXRlCgpUaGlzIHJlcG9zaXRvcnkgaXMgYSBib2lsZXJwbGF0ZSBzaG93aW5nIGhvdyB0byBjcmVhdGUgYSBuYXRpdmUgUHVsdW1pIHByb3ZpZGVyIHVzaW5nOgoKMS4gW2BwdWxzY2hlbWFgXShodHRwczovL2dpdGh1Yi5jb20vY2xvdWR5LXNreS1zb2Z0d2FyZS9wdWxzY2hlbWEpIHRvIGNvbnZlcnQgYW4gT3BlbkFQSSBzcGVjIHRvIFB1bHVtaSBzY2hlbWEKMi4gW2BwdWx1bWktcHJvdmlkZXItZnJhbWV3b3JrYF0oaHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkeS1za3ktc29mdHdhcmUvcHVsdW1pLXByb3ZpZGVyLWZyYW1ld29yaykgdG8gbWFrZSBIVFRQIHJlcXVlc3RzIGFnYWluc3QgdGhlIGNsb3VkIHByb3ZpZGVyIEFQSS4gSXQgdXNlcyB0aGUgbWV0YWRhdGEgcmV0dXJuZWQgYnkgYHB1bHNjaGVtYWAgYXMgb25lIG9mIHRoZSBvdXRwdXRzIGZyb20KICAgY29udmVydGluZyBhbiBPcGVuQVBJIHNwZWMuCgojIyBCYWNrZ3JvdW5kCgpGb2xsb3cgdGhpcyBsaW5rIHRvIHNlZSB3aGF0IGEgW1B1bHVtaSBuYXRpdmUgcHJvdmlkZXIgaXMgY29tcHJpc2VkIG9mXShodHRwczovL2dpdGh1Yi5jb20vY2xvdWR5LXNreS1zb2Z0d2FyZS9jbG91ZC1wcm92aWRlci1hcGktY29uZm9ybWFuY2UvYmxvYi9tYWluL3B1bHVtaS5tZCkuCgpBIFB1bHVtaSBSZXNvdXJjZSBQcm92aWRlcjoKCi0gaXMgYSBnUlBDIHNlcnZlciB3aGljaCBhbGxvd3MgZm9yIHRoZSBQdWx1bWkgZW5naW5lIHRvIGNyZWF0ZSByZXNvdXJjZXMgaW4gYSBzcGVjaWZpYyBjbG91ZAotIGhvbGRzIHRoZSBsaWZlY3ljbGUgbG9naWMgZm9yIHRoZXNlIGNsb3VkIHJlc291cmNlcwotIGhvbGRzIGEgcHVsdW1pIEpTT04gc2NoZW1hIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm92aWRlcgotIHByb3ZpZGVzIGxhbmd1YWdlLXNwZWNpZmljIFNES3Mgc28gcmVzb3VyY2VzIGNhbiBiZSBjcmVhdGVkIGluIHdoaWNoZXZlciBsYW5ndWFnZSB5b3UgcHJlZmVyCgpXaGVuIHdlIHNwZWFrIG9mIGEgIm5hdGl2ZSIgcHJvdmlkZXIsIHdlIG1lYW4gdGhhdCBhbGwgaW1wbGVtZW50YXRpb24gaXMgbmF0aXZlIHRvIFB1bHVtaSwgYXMgb3Bwb3NlZAp0byBbVGVycmFmb3JtLWJhc2VkIHByb3ZpZGVyc10oaHR0cHM6Ly9naXRodWIuY29tL3B1bHVtaS9wdWx1bWktdGYtcHJvdmlkZXItYm9pbGVycGxhdGUpLgoKIyMgQXV0aG9yaW5nIGEgUHVsdW1pIE5hdGl2ZSBQcm92aWRlcgoKVGhpcyBib2lsZXJwbGF0ZSBjcmVhdGVzIGEgd29ya2luZyBQdWx1bWktb3duZWQgcHJvdmlkZXIgbmFtZWQgYHh5emAuCgojIyMgUHJlcmVxdWlzaXRlcwoKRW5zdXJlIHRoZSBmb2xsb3dpbmcgdG9vbHMgYXJlIGluc3RhbGxlZCBhbmQgcHJlc2VudCBpbiB5b3VyIGAkUEFUSGA6CgotIFtgcHVsdW1pY3RsYF0oaHR0cHM6Ly9naXRodWIuY29tL3B1bHVtaS9wdWx1bWljdGwjaW5zdGFsbGF0aW9uKQotIFtHbyAxLjIxXShodHRwczovL2dvbGFuZy5vcmcvZGwvKSBvciAxLmxhdGVzdAotIFtOb2RlSlNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi8pIDE4LnguIFdlIHJlY29tbWVuZCB1c2luZyBbbnZtXShodHRwczovL2dpdGh1Yi5jb20vbnZtLXNoL252bSkgdG8gbWFuYWdlIE5vZGVKUyBpbnN0YWxsYXRpb25zLgotIFtZYXJuXShodHRwczovL3lhcm5wa2cuY29tLykKLSBbVHlwZVNjcmlwdF0oaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnLykKLSBbUHl0aG9uXShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy8pIChjYWxsZWQgYXMgYHB5dGhvbjNgKQotIFsuTkVUXShodHRwczovL2RvdG5ldC5taWNyb3NvZnQuY29tL2Rvd25sb2FkKQoKIyMjIENyZWF0aW5nIGFuZCBJbml0aWFsaXppbmcgdGhlIFJlcG9zaXRvcnkKClB1bHVtaSBvZmZlcnMgdGhpcyByZXBvc2l0b3J5IGFzIGEgW0dpdEh1YiB0ZW1wbGF0ZSByZXBvc2l0b3J5XShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9yZXBvc2l0b3JpZXMvY3JlYXRpbmctYW5kLW1hbmFnaW5nLXJlcG9zaXRvcmllcy9jcmVhdGluZy1hLXJlcG9zaXRvcnktZnJvbS1hLXRlbXBsYXRlKSBmb3IgY29udmVuaWVuY2UuIEZyb20gdGhpcyByZXBvc2l0b3J5OgoKMS4gQ2xpY2sgIlVzZSB0aGlzIHRlbXBsYXRlIi4KMS4gU2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKICAgLSBPd25lcjogYDx5b3VyIEdIIG9yZ2FuaXphdGlvbj5gCiAgIC0gUmVwb3NpdG9yeSBuYW1lOiBwdWx1bWkteHl6IChyZXBsYWNlICJ4eXoiIHdpdGggdGhlIG5hbWUgb2YgeW91ciBwcm92aWRlcikKICAgICAtIFByb3ZpZGVycyBidWlsdCBmcm9tIENsb3VkeSBTa3kgU29mdHdhcmUncyB0ZW1wbGF0ZXMgYXJlIF9hbHdheXNfIG5hdGl2ZSBwcm92aWRlcnMsIGJ5IGRlZmF1bHQuCiAgICAgLSBIb3dldmVyLCBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgVEYtYnJpZGdlZCBwcm92aWRlciB3aXRoIHRoYXQgbmFtZSwgeW91IHNob3VsZCBhZGQgdGhlIHN1ZmZpeCBgLW5hdGl2ZWAgc28gdGhhdCB0aGUgcGFja2FnZSBuYW1lIGluIHNvbWUgcGFja2FnZSByZWdpc3RyaWVzIGRvIG5vdCBjb25mbGljdCB3aXRoIHRoZSBvdGhlciBwcm92aWRlcnMuCiAgIC0gRGVzY3JpcHRpb246IFB1bHVtaSBwcm92aWRlciBmb3IgeHl6CiAgIC0gUmVwb3NpdG9yeSB0eXBlOiBQdWJsaWMKMS4gQ2xvbmUgdGhlIGdlbmVyYXRlZCByZXBvc2l0b3J5LgoKRnJvbSB0aGUgdGVtcGxhdGVkIHJlcG9zaXRvcnk6CgpTZWFyY2gtcmVwbGFjZSB0aGUgZm9sbG93aW5nIG9jY3VycmVuY2VzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgbmFtZXMuCgp8IFNlYXJjaCB8IFJlcGxhY2UgV2l0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCB4eXogICAgfCBMb3dlci1jYXNlZCBuYW1lIG9mIHRoZSBwcm92aWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFh5eiAgICB8IFBhc2NhbC1jYXNlIG5hbWUgb2YgdGhlIHByb3ZpZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgWFlaICAgIHwgVXBwZXItY2FzZWQgbmFtZSBvZiB0aGUgcHJvdmlkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB4X3lfeiAgfCBMb3dlciBzbmFrZS1jYXNlZCBuYW1lIG9mIHRoZSBwcm92aWRlciBpZiB0aGUgcHJvdmlkZXIgbmFtZSBoYXMgbXVsdGlwbGUgd29yZHMgfAoKIyMjIyBCdWlsZCB0aGUgcHJvdmlkZXIgYW5kIGluc3RhbGwgdGhlIHBsdWdpbgoKYGBgYmFzaAokIG1ha2UgYnVpbGQgaW5zdGFsbApgYGAKClRoaXMgd2lsbDoKCjEuIENyZWF0ZSB0aGUgU0RLIGNvZGVnZW4gYmluYXJ5IGFuZCBwbGFjZSBpdCBpbiBhIGAuL2JpbmAgZm9sZGVyIChnaXRpZ25vcmVkKQoyLiBDcmVhdGUgdGhlIHByb3ZpZGVyIGJpbmFyeSBhbmQgcGxhY2UgaXQgaW4gdGhlIGAuL2JpbmAgZm9sZGVyIChnaXRpZ25vcmVkKQozLiBHZW5lcmF0ZSB0aGUgZG90bmV0LCBHbywgTm9kZSwgYW5kIFB5dGhvbiBTREtzIGFuZCBwbGFjZSB0aGVtIGluIHRoZSBgLi9zZGtgIGZvbGRlcgo0LiBJbnN0YWxsIHRoZSBwcm92aWRlciBvbiB5b3VyIG1hY2hpbmUuCgojIyMjIFRlc3QgYWdhaW5zdCB0aGUgZXhhbXBsZQoKYGBgYmFzaAokIGNkIGV4YW1wbGVzL3NpbXBsZQokIHlhcm4gbGluayBAcHVsdW1pL3h5egokIHlhcm4gaW5zdGFsbAokIHB1bHVtaSBzdGFjayBpbml0IHRlc3QKJCBwdWx1bWkgdXAKYGBgCgpOb3cgdGhhdCB5b3UgaGF2ZSBjb21wbGV0ZWQgYWxsIG9mIHRoZSBhYm92ZSBzdGVwcywgeW91IGhhdmUgYSB3b3JraW5nIHByb3ZpZGVyIHRoYXQgZ2VuZXJhdGVzIGEgcmFuZG9tIHN0cmluZyBmb3IgeW91LgoKIyMjIyBBIGJyaWVmIHJlcG9zaXRvcnkgb3ZlcnZpZXcKCllvdSBub3cgaGF2ZToKCjEuIEEgYHByb3ZpZGVyL2AgZm9sZGVyIGNvbnRhaW5pbmcgdGhlIGJ1aWxkaW5nIGFuZCBpbXBsZW1lbnRhdGlvbiBsb2dpYwogICAxLiBgY21kL2AKICAgICAgMS4gYHB1bHVtaS1nZW4teHl6L2AgLSBnZW5lcmF0ZXMgbGFuZ3VhZ2UgU0RLcyBmcm9tIHRoZSBzY2hlbWEKICAgICAgMi4gYHB1bHVtaS1yZXNvdXJjZS14eXovYCAtIGhvbGRzIHRoZSBwYWNrYWdlIHNjaGVtYSwgaW5qZWN0cyB0aGUgcGFja2FnZSB2ZXJzaW9uLCBhbmQgc3RhcnRzIHRoZSBnUlBDIHNlcnZlcgogICAyLiBgcGtnYAogICAgICAxLiBgcHJvdmlkZXJgIC0gaG9sZHMgdGhlIGdSUEMgbWV0aG9kcyAoYW5kIGZvciBub3csIHRoZSBzYW1wbGUgaW1wbGVtZW50YXRpb24gbG9naWMpIHJlcXVpcmVkIGJ5IHRoZSBQdWx1bWkgZW5naW5lCiAgICAgIDIuIGB2ZXJzaW9uYCAtIHNlbXZlciBwYWNrYWdlIHRvIGJlIGNvbnN1bWVkIGJ5IGJ1aWxkIHByb2Nlc3NlcwoyLiBgZGVwbG95bWVudC10ZW1wbGF0ZXNgIC0gYSBzZXQgb2YgZmlsZXMgdG8gaGVscCB5b3UgYXJvdW5kIGRlcGxveW1lbnQgYW5kIHB1YmxpY2F0aW9uCjMuIGBzZGtgIC0gaG9sZHMgdGhlIGdlbmVyYXRlZCBjb2RlIGxpYnJhcmllcyBjcmVhdGVkIGJ5IGBwdWx1bWktZ2VuLXh5ei9tYWluLmdvYAo0LiBgZXhhbXBsZXNgIGEgZm9sZGVyIG9mIFB1bHVtaSBwcm9ncmFtcyB0byB0cnkgbG9jYWxseSBhbmQvb3IgdXNlIGluIENJLgo1LiBBIGBNYWtlZmlsZWAgYW5kIHRoaXMgYFJFQURNRWAuCgojIyMgSW1wbGVtZW50aW5nIHRoZSBwcm92aWRlciBjYWxsYmFjayBtZXRob2RzCgpZb3Ugd2lsbCBmaW5kIGEgbW9zdGx5IGJsYW5rIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGluIGBwa2cvcHJvdmlkZXIvcHJvdmlkZXIuZ29gLgpOb3RlIHRoYXQgdGhlc2UgbWV0aG9kcyBkbyBub3QgbGluayAxOjEgdG8gdGhlIFB1bHVtaSByZXNvdXJjZSBwcm92aWRlciBpbnRlcmZhY2UKYmVjYXVzZSBgcHVsdW1pLXByb3ZpZGVyLWZyYW1ld29ya2AgcHJvdmlkZXMgYSBjb252ZW5pZW50IGNhbGxiYWNrIG1lY2hhbmlzbQphbmQgaGFuZGxlcyBhbGwgb3RoZXIgcmVzcG9uc2liaWxpdGllcy4gWW91IHNob3VsZCB1c2UgdGhlIGNhbGxiYWNrIG1ldGhvZHMKdG8gYWx0ZXIgdGhlIEhUVFAgcmVxdWVzdCAoaW4gUHJlKiBtZXRob2RzKSBvciB0aGUgcmVzcG9uc2UgKGluIFBvc3QqKSBhcwpuZWVkZWQuIElmIHlvdSBkb24ndCBuZWVkIGFueSBjdXN0b21pemF0aW9uLCB0aGVuIHlvdSBkb24ndCBuZWVkIHRvIGRvCmFueXRoaW5nIGF0IGFsbC4gWWVwISBUaGUgZnJhbWV3b3JrIGhhbmRsZXMgaXQgYWxsLgoKIyMjIEJ1aWxkIEV4YW1wbGVzCgpDcmVhdGUgYW4gZXhhbXBsZSBwcm9ncmFtIHVzaW5nIHRoZSByZXNvdXJjZXMgZGVmaW5lZCBpbiB5b3VyIHByb3ZpZGVyLCBhbmQgcGxhY2UgaXQgaW4gdGhlIGBleGFtcGxlcy9gIGZvbGRlci4KCllvdSBjYW4gbm93IHJlcGVhdCB0aGUgc3RlcHMgZm9yIFtidWlsZCwgaW5zdGFsbCwgYW5kIHRlc3RdKCN0ZXN0LWFnYWluc3QtdGhlLWV4YW1wbGUpLgoKIyMgRG9jdW1lbnRhdGlvbgoKUGxlYXNlIFtmb2xsb3cgdGhpcyBndWlkZSB0byBhZGQgZG9jdW1lbnRhdGlvbiB0byB5b3VyIHByb3ZpZGVyXShodHRwczovL3d3dy5wdWx1bWkuY29tL2RvY3MvZ3VpZGVzL3B1bHVtaS1wYWNrYWdlcy9ob3ctdG8tYXV0aG9yLyN3cml0ZS1kb2N1bWVudGF0aW9uKS4KCiMjIENvbmZpZ3VyaW5nIENJIGFuZCByZWxlYXNlcwoKMS4gRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgbGFpZCBvdXQgaW4gdGhlIFtkZXBsb3ltZW50IHRlbXBsYXRlc10oLi9kZXBsb3ltZW50LXRlbXBsYXRlcy9SRUFETUUtREVQTE9ZTUVOVC5tZCkuCg== readmeEtag: '"f7e51e8a0eada1d26099e5cce314b4ec1702096d"' readmeLastModified: Mon, 12 Aug 2024 22:53:45 GMT repositoryId: 563307038 description: >- Template repo for creating Pulumi providers based on pulschema and pulumi-provider-framework created: '2022-11-08T10:44:25Z' updated: '2024-09-05T15:50:51Z' language: Go archived: false stars: 3 watchers: 2 forks: 0 owner: cloudy-sky-software logo: https://avatars.githubusercontent.com/u/97355959?v=4 license: Apache-2.0 repoEtag: '"4793a57e909492d6f9da0f9385c2401e105bd5fd0899c298206a4d040fd946e6"' repoLastModified: Thu, 05 Sep 2024 15:50:51 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/golangid/goruda v3: true repositoryMetadata: base64Readme: >- IyBHb3J1ZGEKCkdvcnVkYSBpcyBHb2xhbmcgQ0xJIEFwcCB0byBjb252ZXJ0IE9wZW5BUEkgMyBTcGVjaWZpY2F0aW9ucwppbnRvIHNpbXBsZSBib2lsZXJwbGF0ZSBjb2RlLiAKClRoaXMgYXBwIGlzIGNyZWF0ZWQgYmVjYXVzZSB0aGUgcHJvY2VzcyBvZiBjcmVhdGluZyBib2lsZXJwbGF0ZSAKSFRUUCBzZXJ2ZXIgaW4gR28gaXMgcmVwZXRpdGl2ZSwgc28gaW4gb3JkZXIgdG8gcmVkdWNlIHRoYXQga2luZCBvZiB3b3JrLCAKR29ydWRhIHdpbGwgcmVhZCBhbGwgeW91ciBPcGVuQVBJIDMgc3BlY2lmaWNhdGlvbnMgYW5kIGNvbnZlcnQgaXQKaW50byBzaW1wbGUgcnVubmluZyBIVFRQIFNlcnZlci4KCiMjIFJlcXVpcmVtZW50cwoKLSBHbyBhdCBsZWFzdCB2ZXIuIDEuMTEKLSBXb3JraW5nIE9wZW5BUEkgMyBGaWxlCgojIyBIb3cgdG8gUnVuCgpgYGBiYXNoCn4gbWFrZSBidWlsZAp+IC4vZ29ydWRhIGdlbmVyYXRlIFtwYXRoX3RvX29wZW5hcGlfZmlsZV0KYGBgCgo= readmeEtag: '"d5af7162b1282fd9326909034a59d325a120ae7f"' readmeLastModified: Mon, 22 Jun 2020 11:43:46 GMT repositoryId: 143961171 description: Open API 3 Specs to Golang HTTP Server created: '2018-08-08T04:30:14Z' updated: '2020-06-22T11:49:40Z' language: Go archived: false stars: 3 watchers: 3 forks: 2 owner: golangid logo: https://avatars.githubusercontent.com/u/42196748?v=4 license: MIT repoEtag: '"4dfc50d7ff6a5908ef17ea1a9c0d33b5951cb0f61cba797622296c6d93b55c95"' repoLastModified: Mon, 22 Jun 2020 11:49:40 GMT foundInMaster: true category: Parsers id: 076704721a0716ce327f2ced3ff53046 - source: openapi3 tags repository: https://github.com/u21/public-api-docs v3: true repositoryMetadata: base64Readme: >- IyBVbml0MjEncyBBUEkgZGVzY3JpcHRpb24gYW5kIFBvc3RtYW4gY29sbGVjdGlvbgoKUHVibGljIG1pcnJvciBvZiBVbml0MjEncyBBUEkgZG9jdW1lbnRhdGlvbi4KClVuaXQyMSdzIEFQSSBkb2N1bWVudGF0aW9uIHVzZXMgdGhlIG9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KVGhlIEFQSSByZWZlcmVuY2UgaXMgaG9zdGVkIG9uIFthbiBpbnRlcmFjdGl2ZSB3ZWJzaXRlXShodHRwczovL2RvY3MudW5pdDIxLmFpL2RldmVsb3BlcnMvcmVmZXJlbmNlKSwKd2hlcmUgeW91IGNhbiBleHBsb3JlIGNhbGxzIHRvIGRpZmZlcmVudCBlbmRwb2ludHMuIAoKQXMgdGhlIE9BUyBzcGVjIGlzIHZlcnkgcG9ydGFibGUsIFVuaXQyMSBoYXMgbWFkZSBhIGNvcHkgb2YgaXQgYXZhaWxhYmxlIGluIHRoaXMgcmVwby4KRm9yIG1vc3QgY3VzdG9tZXJzLCB0aGUgaW50ZXJhY3RpdmUgc2l0ZSBpcyB0aGUgYmVzdCB3YXkgdG8gZXhwbG9yZSB0aGUgZG9jdW1lbnRhdGlvbi4KSG93ZXZlciwgc29tZSBjdXN0b21lcnMgbWlnaHQgZmluZCBpdCB1c2VmdWwgdG8gaGF2ZSBhIHNwZWMgb24gaGFuZCwgdG8gZG8gdGhpbmdzIGxpa2UgY3JlYXRlIGEgbW9jayBzZXJ2ZXIsIG9yIHNpbXBseSBleHBsb3JlIHRoZSBBUEkgdXNpbmcgYSBkaWZmZXJlbnQgcGFyc2VyLgoKVGhlcmUgaXMgYSBQb3N0bWFuIGNvbGxlY3Rpb24gYXZhaWxhYmxlLCB3aGljaCBpbmNsdWRlcyBhIGNhbGxzIHRoYXQgY2Fubm90IGJlIHRlc3RlZCBvbiB0aGUgc2l0ZSAoZS5nLiBidWxrIGV2ZW50IGNyZWF0aW9uKS4KCiMjIEV4cGxvcmUgdGhlIEFQSSB1c2luZyBvcGVuYXBpLnlhbWwKCjEuIERvd25sb2FkIHRoZSBmaWxlIGF0IFtvcGVuYXBpLnlhbWxdKG9wZW5hcGkueWFtbCkuCgoyLiBSdW4gYG9wZW5hcGkgcHJldmlldy1kb2NzIG9wZW5hcGkueWFtbGAuCgozLiBPcGVuIHRoZSBsb2NhbCBzZXJ2ZXIgaW4geW91ciBicm93c2VyLgoKIyMgRXhwbG9yZSB0aGUgQVBJIHVzaW5nIHRoZSBQb3N0bWFuIGNvbGxlY3Rpb24KCjEuIERvd25sb2FkIFt0aGUgY29sbGVjdGlvbiBpbiB0aGlzIHJlcG9dKFVuaXQyMV9pbnRlcm5hbF9BUEkucG9zdG1hbl9jb2xsZWN0aW9uLmpzb24pLgoKMi4gSW4gUG9zdG1hbiwgc2VsZWN0ICoqSW1wb3J0KiogYW5kIGltcG9ydCB0aGUgY29sbGVjdGlvbiBKU09OIGZpbGUgKGluIHYyLjEgZm9ybWF0KS4KCjMuIENvbmZpZ3VyZSBbY29sbGVjdGlvbiB2YXJpYWJsZXNdKGh0dHBzOi8vbGVhcm5pbmcucG9zdG1hbi5jb20vZG9jcy9wb3N0bWFuL3ZhcmlhYmxlcy1hbmQtZW52aXJvbm1lbnRzL3ZhcmlhYmxlcy8jZGVmaW5pbmctdmFyaWFibGVzLWluLXNjcmlwdHMpLiBDbGljayBvbiBvcHRpb25zIGZvciB0aGUgaW1wb3J0ZWQgY29sbGVjdGlvbiBhbmQgc2VsZWN0ICJFZGl0Ii4KCiFbSW4gdGhlIHNpZGViYXIsIGNsaWNrIG9uIGVkaXRdKGVkaXQtdmFyaWFibGVzLnBuZykKCjQuIFBvcHVsYXRlIHRoZSBjb2xsZWN0aW9uIHZhcmlhYmxlczoKICAqIGBob3N0YCB3aXRoIHlvdXIgc2FuZGJveCBlbnZpcm9ubWVudCwgZm9yIGV4YW1wbGUgYHNhbmRib3gyLWFwaS51bml0MjEuY29tYCBvciBgc2FuZGJveDEtYXBpLnVuaXQyMS5jb21gLgogICogYHByb3RvY29sYCBzaG91bGQgYmUgYGh0dHBzYC4KICAqIGB1MjEta2V5YCB3aXRoIHRoZSBbQVBJIGRldmVsb3BlciBrZXldKGh0dHBzOi8vZG9jcy51bml0MjEuYWkvZGV2ZWxvcGVycy9kb2NzL2FwaS1rZXlzKS4KICAqIGBvcmdOYW1lYCB3aXRoIHlvdXIgb3JnYW5pemF0aW9uIG5hbWUgKHBhc3NlZCB0byB5b3UgYnkgYSBVbml0MjEgdGVhbSBtZW1iZXIpLCBmb3IgZXhhbXBsZSBgdW5pdF8yMWAuCgojIyMgTm90ZXM6CgotIFRvIHJ1biBhIG5ldyB0ZXN0IHRoYXQgYXZvaWRzIElEIGNvbGxpc2lvbnMsIGNoYW5nZSB0aGUgYHJhbmRJZGAgY29sbGVjdGlvbiB2YXJpYWJsZSB0byBhIG5ldyB2YWx1ZS4KICBGb3IgbW9yZSBjb252ZW5pZW5jZSwgeW91IGNvdWxkIGNyZWF0ZSBhIGNvbGxlY3Rpb24tbGV2ZWwgc2NyaXB0IHRoYXQgYXV0b21hdGljYWxseSBzZXRzIGByYW5kSWRgIHRvIGJlIGEgcmFuZG9tIHN0cmluZyB1cG9uIHJ1bm5pbmcgdGhlIGZpcnN0IHJlcXVlc3QgaW4gdGhlIGNvbGxlY3Rpb24gZS5nLgoKYGBganN4CmlmIChwbS5pbmZvLnJlcXVlc3ROYW1lID09ICdjcmVhdGUgdXNlckEnKSB7CiAgICB2YXIgdXVpZCA9IHJlcXVpcmUoJ3V1aWQnKQogICAgcmFuZElkID0gdXVpZCgpOwogICAgcG0uY29sbGVjdGlvblZhcmlhYmxlcy5zZXQoJ3JhbmRJZCcsIHJhbmRJZCk7Cn0KYGBgCgotIElmIHlvdSBlbmNvdW50ZXIgYDQyMyBMT0NLRURgIHJlc3BvbnNlcyBmcm9tIHRoZSBBUEkgb24gKip1cGRhdGUqKiBvciAqKmdldCoqIEFQSSByZXF1ZXN0cywKICB0aGUgcmVxdWVzdGVkIG9iamVjdCBpcyBzdGlsbCBiZWluZyBwcm9jZXNzZWQuIFJldHJ5aW5nIHRoZSByZXF1ZXN0IGFmdGVyIGEgZGVsYXkgc2hvdWxkIHJlc3VsdCBpbiBhIHN1Y2Nlc3NmdWwgcmVxdWVzdC4KLSBUaGUgYChPUFRJT05BTCkgU2xlZXAgMiBTYCByZXF1ZXN0cyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNvbGxlY3Rpb24KICB0byBhdm9pZCBgNDI0IExPQ0tFRGAgcmVzcG9uc2VzIHdoZW4gcnVubmluZyB0aGUgY29sbGVjdGlvbiByZXF1ZXN0cyBpbiBxdWljayBzdWNjZXNzaW9uIGkuZS4gdXNpbmcgUG9zdG1hbiBDb2xsZWN0aW9uIFJ1bm5lci4K readmeEtag: '"34e8f61984a44e1d7a4eda850c6b65cb1a5cdb1e"' readmeLastModified: Thu, 15 Aug 2024 17:14:46 GMT repositoryId: 380081816 description: A public mirror of U21's API documentation, with a Postman collection created: '2021-06-25T00:25:04Z' updated: '2024-08-30T21:10:21Z' language: HTML archived: false stars: 3 watchers: 2 forks: 9 owner: u21 logo: https://avatars.githubusercontent.com/u/40812212?v=4 repoEtag: '"9992726a3f8c14ad8c92a35e25ada06efa1a99c1843eabed60d431734acbd180"' repoLastModified: Fri, 30 Aug 2024 21:10:21 GMT foundInMaster: true category: Testing id: 7f6cec13dc45de3e3f0a64d53f0c22d4 - source: openapi3 tags repository: https://github.com/theogravity/immutable-x-openapi v3: true repositoryMetadata: base64Readme: >- IyBpbW11dGFibGUteC1vcGVuYXBpCgpUaGlzIGNvbnRhaW5zIGFuICp1bm9mZmljaWFsKiBPcGVuQVBJIDMuMCBkZWZpbml0aW9ucyBmb3IgCgotIHRoZSBbSW1tdXRhYmxlIFggQVBJc10oaHR0cHM6Ly9kb2NzLnguaW1tdXRhYmxlLmNvbS9yZWZlcmVuY2UpCi0gdGhlIFtHb2RzIFVuY2hhaW5lZCBBUElzXShodHRwczovL2dpdGh1Yi5jb20vaW1tdXRhYmxlL2dvZHMtdW5jaGFpbmVkLWFwaSkKClRoZSBkZWZpbml0aW9ucyB3ZXJlIGNyZWF0ZWQgdXNpbmcgW1N0b3BsaWdodCBTdHVkaW9dKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL3N0dWRpby8pLgoKWW91IGNhbiB1c2UgdGhlIGRlZmluaXRpb24gdG8gW2dlbmVyYXRlIHlvdXIgb3duIFNES10oaHR0cHM6Ly9vcGVuYXBpLnRvb2xzLyksIG9yIGltcG9ydCBpbnRvIHlvdXIgZmF2b3JpdGUKQVBJIGNsaWVudCBzdWNoIGFzIFtJbnNvbW5pYV0oaHR0cHM6Ly9pbnNvbW5pYS5yZXN0LykgYW5kIFtQb3N0bWFuXShodHRwczovL3d3dy5wb3N0bWFuLmNvbS8pLgoKIVtdKGFzc2V0cy9pbnNvbW5pYS5wbmcpCgojIyBVc2luZyBhIHJlYWR5LW1hZGUgU0RLCgpZb3UgY2FuIGZpbmQgZG9jdW1lbnRhdGlvbiBoZXJlIHRoYXQgaGFzIGJlZW4gZ2VuZXJhdGVkIHVzaW5nIHRoZSBkZWZpbml0aW9ucy4gU2VsZWN0IHRoZSAKbGFuZ3VhZ2Ugb3B0aW9uIG9uIHRoZSByaWdodCBzaWRlIGZvciB5b3VyIGNsaWVudC4gVGhlcmUgaXMgYSB2YW5pbGxhIEphdmFzY3JpcHQgb3B0aW9uIGlmIHlvdQpjbGljayBvbiB0aGUgdmVydGljYWwgdGhyZWUgZG90cyBuZXh0IHRvIHRoZSBsYW5ndWFnZXMsIHdoaWNoIHdpbGwgc2hvdyB5b3UKaG93IHRvIGNhbGwgdGhlIEFQSSBpbiB2YW5pbGxhIEpTLgoKaHR0cHM6Ly9pbXgucmVhZG1lLmlvL3JlZmVyZW5jZS9saXN0Y2FyZHMKCiMjIEJ1aWxkaW5nIGFuIFNESwoKIyMjIFR5cGVzY3JpcHQgKHZpYSBub2RlLmpzKQoKVXNlIHRoZSBbb3BlbmFwaS10eXBlc2NyaXB0LWNvZGVnZW5dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlZ2VuKSBwYWNrYWdlIHRvIApidWlsZCBhbiBTREsgY29tcGxldGUgd2l0aCBUeXBlc2NyaXB0IGRlZmluaXRpb25zLgoKSWYgeW91IGNvcHkgdGhlIGFwcHJvcHJpYXRlIGByZWZlcmVuY2UvKi55YW1sYCBmaWxlIHRvIHlvdXIgcHJvamVjdCBhbmQgaW5zdGFsbCBgb3BlbmFwaS10eXBlc2NyaXB0LWNvZGVnZW5gLAp5b3UgY2FuIGdlbmVyYXRlIHRoZSBTREsgdXNpbmcgYSBgc2NyaXB0YCBjb21tYW5kIGluIHlvdXIgYHBhY2thZ2UuanNvbmA6CgpgYGBqc29uCnsKICAic2NyaXB0cyI6IHsKICAgICJndS1jbGllbnQ6YnVpbGQiOiAib3BlbmFwaSAtLWlucHV0IEdvZHNVbmNoYWluZWQtQVBJLU9wZW5BUEkzLnlhbWwgLS11c2VPcHRpb25zIC0tb3V0cHV0IC4vc3JjL2d1LWFwaS1jbGllbnQiCiAgfQp9CmBgYAoKIyMgTm90ZXMKClRoZXNlIGRlZmluaXRpb25zIHdlcmUgY3JhZnRlZCBieSBoYW5kIHVzaW5nIHRoZSBhdmFpbGFibGUgZG9jdW1lbnRhdGlvbi4KCkFsdGhvdWdoIGEgYmVzdCBlZmZvcnQgd2FzIG1hZGUgdG8gZW5zdXJlIGFjY3VyYWN5IGluIHJlc3VsdHMsIHRoZXJlIG1heSBiZSBtaXN0YWtlcyBpbiB0aGUgZGVmaW5pdGlvbi4gSWYgeW91IGZpbmQKc3VjaCBhIG1pc3Rha2UsIHBsZWFzZSBvcGVuIGEgcHVsbCByZXF1ZXN0IHdpdGggdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzLgoKRm9yIG1hbnkgZW5kcG9pbnRzLCBtb2RlbCBkZWZpbml0aW9ucyBoYXZlIGJlZW4gY3JlYXRlZCBmb3IgcmVzcG9uc2VzLCB3aGljaCBhIGNvZGUgZ2VuZXJhdG9yIGNhbiB1c2UgdG8gY3JlYXRlCmNvcnJlc3BvbmRpbmcgY2xhc3Nlcywgb3IgdHlwZWQgaW50ZXJmYWNlcyBpZiB1c2luZyBhIFR5cGVzY3JpcHQgZ2VuZXJhdG9yLgoKIyMgVW5kb2N1bWVudGVkIEFQSXMKCiMjIyBJbW11dGFibGUgWAoKVGhlIGZvbGxvd2luZyBlbmRwb2ludHMgd2VyZSB1bmFibGUgdG8gYmUgZG9jdW1lbnRlZCBhdCB0aGUgdGltZSBkdWUgdG8gdW5hdmFpbGFiaWxpdHkgb2YgdGhlIGRvY3VtZW50YXRpb246CgotIGh0dHBzOi8vZG9jcy54LmltbXV0YWJsZS5jb20vcmVmZXJlbmNlL3Bvc3RfdjEtc2lnbmFibGUtZGVwb3NpdC1kZXRhaWxzLTEKLSBodHRwczovL2RvY3MueC5pbW11dGFibGUuY29tL3JlZmVyZW5jZS9wb3N0X3YxLXNpZ25hYmxlLW9yZGVyLWRldGFpbHMtMQotIGh0dHBzOi8vZG9jcy54LmltbXV0YWJsZS5jb20vcmVmZXJlbmNlL3Bvc3RfdjEtc2lnbmFibGUtdHJhbnNmZXItZGV0YWlscy0xCi0gaHR0cHM6Ly9kb2NzLnguaW1tdXRhYmxlLmNvbS9yZWZlcmVuY2UvcG9zdF92MS1zaWduYWJsZS13aXRoZHJhd2FsLWRldGFpbHMtMQoKIyMgQ29udHJpYnV0aW5nCgotIEZvcmsgdGhpcyByZXBvCi0gVXNlIFN0b3BsaWdodCBTdHVkaW8gdG8gb3BlbiB0aGUgcmVwbyBkaXJlY3RvcnksIGFuZCBtYWtlIHlvdXIgZWRpdHMKLSBNYWtlIHN1cmUgdGhlIGxpbnRlciBpbiBTdG9wbGlnaHQgU3R1ZGlvIGhhcyBubyBlcnJvcnMvd2FybmluZ3MKLSBNYWtlIGEgcHVsbCByZXF1ZXN0IHdpdGggeW91ciBjaGFuZ2VzCgojIyBEaXNjbGFpbWVyCgpUaGUgQVBJIGRlZmluaXRpb25zIGRlcGVuZCBvbiB0aGUgY29tbXVuaXR5IHRvIGtlZXAgdXAtdG8tZGF0ZSwgb3IgdW50aWwgdGhlIEltbXV0YWJsZSB0ZWFtCnByb3ZpZGVzIGFuIG9mZmljaWFsIGRlZmluaXRpb24uIFVzZSBhdCB5b3VyIG93biByaXNrLCBub3QgcmVzcG9uc2libGUgZm9yIGxvc3NlcyBpbmN1cnJlZCBmcm9tIGFuIGluY29ycmVjdApBUEkgZGVmaW5pdGlvbi4K readmeEtag: '"dffaecc96e8d51b6bc3ce4d59b72e19ac3342a6f"' readmeLastModified: Fri, 25 Feb 2022 05:11:50 GMT repositoryId: 443897863 description: Immutable X and Gods Unchained OpenAPI 3.0 definitions created: '2022-01-03T00:07:45Z' updated: '2023-04-13T17:11:33Z' language: null archived: false stars: 3 watchers: 2 forks: 1 owner: theogravity logo: https://avatars.githubusercontent.com/u/855434?v=4 license: MIT repoEtag: '"0e1aa5b8a1757a9190bf7a17292799426aba7250e5e34f816031d2ff71ad7a42"' repoLastModified: Thu, 13 Apr 2023 17:11:33 GMT foundInMaster: true category: Parsers id: df13bb01ef12259dd9da2e6209165294 - source: openapi3 tags repository: https://github.com/0x29a/web_template v3: true id: 7b4bda04c7ead8d5a5dc42a240ad7dc9 repositoryMetadata: base64Readme: >- IyBXZWJUZW1wbGF0ZQoKWyFbR2l0TGFiIENJIHBpcGVsaW5lIHN0YXR1cy5dW3BpcGVsaW5lLWltYWdlXV1bcGlwZWxpbmUtdXJsXQoKVGVtcGxhdGUgZm9yIGEgcXVpY2sgd2ViIHNlcnZpY2VzIHByb3RvdHlwaW5nLiBJdCdzIGludGVuZGVkIHRvIHNwZWVkIHVwIGJvb3RzdHJhcHBpbmcKb2YgcHJvZHVjdGlvbi1yZWFkeSBhcHBsaWNhdGlvbnMsIHdpdGggRGphbmdvLWJhc2VkIGJhY2tlbmQsIGFuZCBOZXh0LmpzLWJhc2VkIGZyb250ZW5kLgpJbiBhdHRlbXB0IHRvIHJlZHVjZSBib2lsZXJwbGF0ZSB0byB0aGUgYWJzb2x1dGUgcG9zc2libGUgbWluaW11bSwgaXQgdXRpbGl6ZXMgdGVjaG5vbG9naWVzIHN1Y2ggYXM6CgotIFtkcmYtc3BlY3RhY3VsYXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90ZnJhbnplbC9kcmYtc3BlY3RhY3VsYXIpIHRvIGdlbmVyYXRlIE9wZW5BUEkgMyBzY2hlbWEuCi0gW3JlZHV4LXRvb2xraXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWR1eGpzL3JlZHV4LXRvb2xraXQpIGFuZCBbQHJ0ay1xdWVyeS9jb2RlZ2VuLW9wZW5hcGldKGh0dHBzOi8vcmVkdXgtdG9vbGtpdC5qcy5vcmcvcnRrLXF1ZXJ5L3VzYWdlL2NvZGUtZ2VuZXJhdGlvbiNvcGVuYXBpKSB0byBnZW5lcmF0ZSBBUEkgY2xpZW50IGJhc2VkIG9uIFJUSyBRdWVyeS4KLSBbcGlwLXRvb2xzXShodHRwczovL2dpdGh1Yi5jb20vamF6emJhbmQvcGlwLXRvb2xzKSB0byBtYW5hZ2UgZGVwZW5kZW5jaWVzLgotIFtOZXh0LmpzXShodHRwczovL25leHRqcy5vcmcvKSBmb3IgaXRzIGZpbGUtYmFzZWQgcm91dGluZywgbmljZSBzdGF0aWMgcGFnZXMgaGFuZGxpbmcgYW5kIGRvemVucyBvZiBvdGhlciBvcHRpbWl6YXRpb25zLgotIFtUYWlsd2luZCBVSV0oaHR0cHM6Ly90YWlsd2luZHVpLmNvbSksIGFzIHV0aWxpdHkgY2xhc3NlcyBwbGF5IHJlYWxseSBuaWNlIHdpdGggcmV1c2FibGUgUmVhY3QgY29tcG9uZW50cy4KLSBbR2l0TGFiIENJXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS8pLCB3aGljaCwgaW4gYWRkaXRpb24gdG8gcXVhbGl0eSBjaGVja2luZywgaXMgdXNlZCB0byBidWlsZCBhbmQgaG9zdCBPQ0kgaW1hZ2VzLgotIC4uLmFuZCBtYW55IG90aGVyLgoKQnkgZGVmYXVsdCwgdGhlIHRlbXBsYXRlIGlzIGludGVuZGVkIGJlIGRlcGxveWVkIHRvIGEgRGlnaXRhbE9jZWFuIGRyb3BsZXQsIGJ1dCBzaW5jZSB0aGUgaW1hZ2VzIGFyZSBwcmUtYnVpbHQgY29udGludW91c2x5LCBpdCdzIHRyaXZpYWwgdG8gc3dpdGNoIHRvIGZseS5pbywgQVdTIEVDUyBvciBLdWJlcm5ldGVzLgoKSW4gYWRkaXRpb24gdG8gYWxsIHRoZSBjb29sIHRvb2xpbmcsIEkgdHJ5IHRvIGRvY3VtZW50IGFsbCB0ZWNobm9sb2dpY2FsIC8gYXJjaGl0ZWN0dXJhbCBkZWNpc2lvbnMgaW4gYGRvY3MvYCwgc28gaXQncyBlYXNpZXIKdG8gY29udGludWUgd29ya2luZyBvbiB0aGlzIHByb2plY3QgYWZ0ZXIgbGFyZ2UgYnJlYWtzLgoKIyMgR2V0dGluZyBzdGFydGVkCgoxLiBDcmVhdGUgYC5lbnZgOgoKICAgIGBgYGJhc2gKICAgIGNwIC5lbnYubG9jYWwgLmVudgogICAgYGBgCgoxLiBDcmVhdGUgYGRvY2tlci1jb21wb3NlLm92ZXJyaWRlLnltbGA6CgogICAgYGBgYmFzaAogICAgY3AgZG9ja2VyLWNvbXBvc2Uub3ZlcnJpZGUueW1sLmxvY2FsIGRvY2tlci1jb21wb3NlLm92ZXJyaWRlLnltbAogICAgYGBgCgoxLiBTdGFydCBjb250YWluZXJzOgoKICAgIGBgYGJhc2gKICAgIG1ha2UgdXAKICAgIGBgYAoKMS4gT3BlbiBgaHR0cDovL2xvY2FsaG9zdDo4MTI0L2AgaW4gYSBicm93c2VyLgoKPCEtLSBCYWRnZXMgLS0+CgpbcGlwZWxpbmUtaW1hZ2VdOiBodHRwczovL2dpdGxhYi5jb20vMHgyOWEvd2ViX3RlbXBsYXRlL2JhZGdlcy9tYXN0ZXIvcGlwZWxpbmUuc3ZnCltwaXBlbGluZS11cmxdOiBodHRwczovL2dpdGxhYi5jb20vMHgyOWEvd2ViX3RlbXBsYXRlLy0vcGlwZWxpbmVzCg== readmeEtag: '"2f7c1f91578222404a2a546b27d88f7e4b037769"' readmeLastModified: Tue, 13 Feb 2024 07:30:07 GMT repositoryId: 356602391 description: Next.js / Django template for quick prototyping. created: '2021-04-10T14:15:56Z' updated: '2024-03-07T06:27:17Z' language: TypeScript archived: false stars: 3 watchers: 1 forks: 0 owner: '0x29a' logo: https://avatars.githubusercontent.com/u/18251194?v=4 license: MIT repoEtag: '"5a18722cdb6780d0090cb902b8288c22b8db8f65b16861205e696f4cd1556b69"' repoLastModified: Thu, 07 Mar 2024 06:27:17 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/raghav2211/spring-web-flux-todo-app v3: true id: bc4cf2d2272ad2f80158393eb9d3da0f repositoryMetadata: base64Readme: >- IyBUT0RPIEFQUApbIVtHcmFkbGUgUGlwZWxpbmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9SYWdoYXYyMjExL3NwcmluZy13ZWItZmx1eC10b2RvLWFwcC9hY3Rpb25zL3dvcmtmbG93cy9ncmFkbGUtcGlwZWxpbmUueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9SYWdoYXYyMjExL3NwcmluZy13ZWItZmx1eC10b2RvLWFwcC9hY3Rpb25zL3dvcmtmbG93cy9ncmFkbGUtcGlwZWxpbmUueW1sKQpbIVtNYXZlbiBQaXBlbGluZV0oaHR0cHM6Ly9naXRodWIuY29tL1JhZ2hhdjIyMTEvc3ByaW5nLXdlYi1mbHV4LXRvZG8tYXBwL2FjdGlvbnMvd29ya2Zsb3dzL21hdmVuLXBpcGVsaW5lLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vUmFnaGF2MjIxMS9zcHJpbmctd2ViLWZsdXgtdG9kby1hcHAvYWN0aW9ucy93b3JrZmxvd3MvbWF2ZW4tcGlwZWxpbmUueW1sKQoKVGhpcyBhcHBsaWNhdGlvbiBpcyBhbiBzY2FmZm9sZCB3aGljaCBpcyBhIGJhc2ljIHNldHVwIG9mIHNwcmluZy1jbG91ZC1nYXRld2F5LCBjb25maWctc2VydmVyIGFuZCBhIHJlc291cmNlIHNlcnZlcihBIHRvZG8gYXBwbGljYXRpb24pLiBJdCBkZW1vbnN0cmF0ZSBob3cgZGF0YSBmbG93cyBiZXR3ZWVuIGdhdGV3YXkgJiByZXNvdXJjZS1zZXJ2ZXIgdXNpbmcgY29uZmlnLXNlcnZlciB3aGljaCBob2xkcyBzcGVjaWZpYyBlbnZpb3JubWVudCBjb25maWdzIGFuZCBzZWNyZXRzIAoKIyMgV29ya0Zsb3cKIVtXb3JrZmxvd10oZG9jdW1lbnRhdGlvbi93b3JrZmxvdy5wbmcpCgojIyBUZWNoClRPRE8gQXBwIHVzZXMgZm9sbG93aW5nIHRlY2hub2xvZ2llczoKCiogW0phdmEgMTFdIC0gSkRLCiogW01hdmVuLTMuNi4zXSAtIEJ1aWxkIHRvb2wKKiBbR3JhZGxlLTYuNy4xXSAtIEJ1aWxkIHRvb2wKKiBbU3ByaW5nYm9vdC0yLjcuMF0gLSBPcGVuIHNvdXJjZSBKYXZhLWJhc2VkIE1pY3JvLVNlcnZpY2UgZnJhbWV3b3JrCiogW09wZW5BcGktMS42LjldIC0gUmVzdCBBUEkgZG9jdW1lbnRhdGlvbgoqIFtKdW5pdC01LjcuMF0gLSBVbml0IHRlc3QKKiBbTW9uZ29EQi00LjIuMjFdIC0gQmFja2VuZCBkYXRhIHN0b3JlCiogW0RvY2tlci0xOS4wMy44XSAtIE9TIGxldmVsIHZpcnR1YWxpemF0aW9uCgojIyBCdWlsZCAjIwoxLiBUb2RvIEFwcAogICBbQnVpbGRdKC4vdG9kby1hcHAvUkVBRE1FLm1kKQoyLiBFZGdlIFNlcnZpY2UKICAgW0J1aWxkXSguL2VkZ2Utc2VydmljZS9SRUFETUUubWQpCjMuIENvbmZpZyBTZXJ2ZXIKICAgW0J1aWxkXSguL2NvbmZpZy1zZXJ2ZXIvUkVBRE1FLm1kKSAgIAogICAgCgoKIyMgRGVwbG95ICMjCiAKW1RvZG8gSW5mcmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9SYWdoYXYyMjExL3RvZG8tYXBwLWluZnJhKQo= readmeEtag: '"712a9e04ce44758e96cbdffac5cd8f4cfd93cef1"' readmeLastModified: Sun, 21 Aug 2022 14:41:13 GMT repositoryId: 500385093 description: Todo Application with Cloud gateway & Config server created: '2022-06-06T10:19:14Z' updated: '2024-04-26T08:54:03Z' language: Java archived: false stars: 3 watchers: 1 forks: 2 owner: Raghav2211 logo: https://avatars.githubusercontent.com/u/7526431?v=4 repoEtag: '"a36a97e4741de2d5df8d2d98ae8ac659849ad85e9b637eec7727280e570e06a5"' repoLastModified: Fri, 26 Apr 2024 08:54:03 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mhapach/swaggermodelgenerator v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyTW9kZWxHZW5lcmF0b3IKClshW0xhdGVzdCBWZXJzaW9uIG9uIFBhY2thZ2lzdF1baWNvLXZlcnNpb25dXVtsaW5rLXBhY2thZ2lzdF0KWyFbVG90YWwgRG93bmxvYWRzXVtpY28tZG93bmxvYWRzXV1bbGluay1kb3dubG9hZHNdClshW0J1aWxkIFN0YXR1c11baWNvLXRyYXZpc11dW2xpbmstdHJhdmlzXQpbIVtTdHlsZUNJXVtpY28tc3R5bGVjaV1dW2xpbmstc3R5bGVjaV0KClRoaXMgbGlicmFyeSBnZW5lcmF0ZXMgbW9kZWxzIGFuZCBzZXJ2aWNlIHdpdGggbWV0aG9kcyBiYXNlZCBvbiBTd2FnZ2VyIHNjaGVtZS4gCkN1cnJlbnQgcmVsZWFzZSBzdXBwb3J0cyBPcGVuQVBJIDIuMCAoQWthIE9BUykgYW5kIE9wZW5BcGkgMy4wCgojIyBJbnN0YWxsYXRpb24KClN0ZXAgMS4gQWRkIEVsb3F1ZW50IE1vZGVsIEdlbmVyYXRvciB0byB5b3VyIHByb2plY3QgdmlhIENvbXBvc2VyCgpgYGAgYmFzaAokIGNvbXBvc2VyIHJlcXVpcmUgbWhhcGFjaC9zd2FnZ2VybW9kZWxnZW5lcmF0b3IKYGBgClN0ZXAgMi4gUmVnaXN0ZXIgU3dhZ2dlck1vZGVsR2VuZXJhdG9yU2VydmljZVByb3ZpZGVyIGluIGNvbmZpZy9hcHAucGhwCmBgYCAgCidwcm92aWRlcnMnID0+IFsKICAgIC8vLi4uCiAgICBcbWhhcGFjaFxTd2FnZ2VyTW9kZWxHZW5lcmF0b3JcU3dhZ2dlck1vZGVsR2VuZXJhdG9yU2VydmljZVByb3ZpZGVyOjpjbGFzcywKXQpgYGAKCiMjIFVzYWdlCiMjIyBNb2RlbHMgYW5kIHNlcnZpY2UgZ2VuZXJhdGlvbgogICAgICAKICAgICRzZXJ2aWNlU2NoZW1lID0gImh0dHA6Ly95b3VyLXNlcnZpY2UuY29tL3NjaGVtZSI7CiAgICAkbW9kZWxzTmFtZXNwYWNlID0gJ0FwcFxTZXJ2aWNlc1xNb2RlbHMnOwogICAgJHNlcnZpY2VOYW1lc3BhY2UgPSAnQXBwXFNlcnZpY2VzJzsKICAgICRtb2RlbHNQYXRoID0gIi95b3VyLXByb2plY3QvYXBwL1NlcnZpY2VzL01vZGVscyI7CiAgICAkc2VydmljZVBhdGggPSAiL3lvdXItcHJvamVjdC9hcHAvU2VydmljZXMiOwoKICAgIC8qKiBAdmFyIFN3YWdnZXIgJGNvbnZlcnRlckluc3RhbmNlICovCiAgICAkY29udmVydGVySW5zdGFuY2UgPSAobmV3IFN3YWdnZXJNb2RlbEdlbmVyYXRvcigkc2VydmljZVNjaGVtZSwgdHJ1ZSkpLT5nZXRDb252ZXJ0ZXJJbnN0YW5jZSgkbW9kZWxzTmFtZXNwYWNlLCAkc2VydmljZU5hbWVzcGFjZSk7CiAgICAkY29udmVydGVySW5zdGFuY2UtPmdlbk1vZGVscygkbW9kZWxzUGF0aCk7ICAgICAgICAKICAgICRjb252ZXJ0ZXJJbnN0YW5jZS0+Z2VuU2VydmljZSgkc2VydmljZVBhdGgpOwogICAgCiMjIyBHZW5lcmF0ZWQgc2VydmljZSBhbmQgbW9kZWxzIHVzYWdlLiBFeGFtcGxlIDEKICAgICRzZXJ2aWNlQWRkcmVzcyA9ICJodHRwOi8veW91ci1zZXJ2aWNlLmNvbS9zb21lLW5hbWUiOwogICAgJHNlcnZpY2UgPSBuZXcgU2VydmljZSgkc2VydmljZUFkZHJlc3MpOwogICAgJGJjID0gJHNlcnZpY2UtPmJlbmVmaXRDYXRlZ29yaWVzVXNpbmdHRVQoWwogICAgICAgICdwYXRoJyA9PiBbJ2lkJyA9PiAxMTIyXSwKICAgICAgICAncXVlcnknID0+IFsnc29tZS1wYXJhbScgPT4gMV0sCiAgICBdKTsgICAKIyMjIEdlbmVyYXRlZCBzZXJ2aWNlIGFuZCBtb2RlbHMgdXNhZ2UuIEV4YW1wbGUgMgogICAgJHNlcnZpY2VBZGRyZXNzID0gImh0dHA6Ly95b3VyLXNlcnZpY2UuY29tL3NvbWUtbmFtZSI7CiAgICAkdG9rZW4gPSAnZGFrc2Rsa2Egc2hkbGtqYWhzbGtkaiBoPT0nOwogICAgJGhlYWRlcnMgPSBbCiAgICAgICAgJ0FjY2VwdCcgPT4gJyovKicsCiAgICAgICAgJ0NvbnRlbnQtVHlwZScgPT4gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsCiAgICAgICAgJ0NhY2hlLUNvbnRyb2wnID0+ICduby1jYWNoZScsCiAgICAgICAgIkF1dGhvcml6YXRpb24iID0+ICJCZWFyZXIgeyR0b2tlbn0iCiAgICBdOwogICAgJHNlcnZpY2UgPSBuZXcgU2VydmljZSgkc2VydmljZUFkZHJlc3MsICRoZWFkZXJzKTsKICAgICRiYyA9ICRzZXJ2aWNlLT5iZW5lZml0Q2F0ZWdvcmllc1VzaW5nR0VUKFsKICAgICAgICAncXVlcnknID0+IFsnc29tZS1wYXJhbScgPT4gMV0sCiAgICAgICAgJ2JvZHknID0+ICd7InBhcmFtMSI6MTAwLCAicGFyYW0yIjoyMDB9JwogICAgXSk7CiAgICAgICAKIyMjIERlYnVnIGxvZyBlbmFibGluZy4gRXhhbXBsZSAzCiAgICAkc2VydmljZUFkZHJlc3MgPSAiaHR0cDovL3lvdXItc2VydmljZS5jb20vc29tZS1uYW1lIjsKICAgICRjb25maWcgPSBjb25maWcoJ2xvZ2dpbmcuY2hhbm5lbHMuJy5jb25maWcoJ2xvZ2dpbmcuZGVmYXVsdCcpKTsKICAgICRjb25maWdbJ3BhdGgnXSA9IHN0b3JhZ2VfcGF0aCgibG9ncy9yZXN0LmxvZyIpOyAvLyBvcHRpb25hbAogICAgJGxvZ2dlciA9IFxMb2c6OmJ1aWxkKCRjb25maWcpOwogICAgJHNlcnZpY2UgPSBuZXcgU2VydmljZSgkc2VydmljZUFkZHJlc3MsIFsnQ29udGVudC1UeXBlJyA9PiAnYXBwbGljYXRpb24vanNvbiddLCAkbG9nZ2VyKTsKICAgIC8vRW5hYmxpbmcgbG9nICAgIAogICAgJHNlcnZpY2UtPmVuYWJsZUxvZygpOwogICAgLy8gY2FsbCBzZXJ2aWNlIG1ldGhvZCAgICAgICAgCiAgICAkYmMgPSAkc2VydmljZS0+YmVuZWZpdENhdGVnb3JpZXNVc2luZ0dFVChbCiAgICAgICAgJ3F1ZXJ5JyA9PiBbJ3NvbWUtcGFyYW0nID0+IDFdLAogICAgICAgICdib2R5JyA9PiAneyJwYXJhbTEiOjEwMCwgInBhcmFtMiI6MjAwfScKICAgIF0pOyAgIAogICAgCiMjIENoYW5nZSBsb2cKClBsZWFzZSBzZWUgdGhlIFtjaGFuZ2Vsb2ddKGNoYW5nZWxvZy5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gd2hhdCBoYXMgY2hhbmdlZCByZWNlbnRseS4KCiMjIFRlc3RpbmcKCmBgYCBiYXNoCiQgY29tcG9zZXIgdGVzdApgYGAKCiMjIENvbnRyaWJ1dGluZwoKUGxlYXNlIHNlZSBbY29udHJpYnV0aW5nLm1kXShjb250cmlidXRpbmcubWQpIGZvciBkZXRhaWxzIGFuZCBhIHRvZG9saXN0LgoKIyMgU2VjdXJpdHkKCklmIHlvdSBkaXNjb3ZlciBhbnkgc2VjdXJpdHkgcmVsYXRlZCBpc3N1ZXMsIHBsZWFzZSBlbWFpbCBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiB1c2luZyB0aGUgaXNzdWUgdHJhY2tlci4KCiMjIENyZWRpdHMKCi0gW2F1dGhvciBuYW1lXVtsaW5rLWF1dGhvcl0KLSBbQWxsIENvbnRyaWJ1dG9yc11bbGluay1jb250cmlidXRvcnNdCgojIyBMaWNlbnNlCgpsaWNlbnNlLiBQbGVhc2Ugc2VlIHRoZSBbbGljZW5zZSBmaWxlXShsaWNlbnNlLm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCltpY28tdmVyc2lvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3YvbWhhcGFjaC9zd2FnZ2VybW9kZWxnZW5lcmF0b3Iuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlCltpY28tZG93bmxvYWRzXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9wYWNrYWdpc3QvZHQvbWhhcGFjaC9zd2FnZ2VybW9kZWxnZW5lcmF0b3Iuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlCltpY28tdHJhdmlzXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvbWhhcGFjaC9zd2FnZ2VybW9kZWxnZW5lcmF0b3IvbWFzdGVyLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZQpbaWNvLXN0eWxlY2ldOiBodHRwczovL3N0eWxlY2kuaW8vcmVwb3MvMTIzNDU2Nzgvc2hpZWxkCgpbbGluay1wYWNrYWdpc3RdOiBodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvbWhhcGFjaC9zd2FnZ2VybW9kZWxnZW5lcmF0b3IKW2xpbmstZG93bmxvYWRzXTogaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL21oYXBhY2gvc3dhZ2dlcm1vZGVsZ2VuZXJhdG9yCltsaW5rLXRyYXZpc106IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9taGFwYWNoL3N3YWdnZXJtb2RlbGdlbmVyYXRvcgpbbGluay1zdHlsZWNpXTogaHR0cHM6Ly9zdHlsZWNpLmlvL3JlcG9zLzEyMzQ1Njc4CltsaW5rLWF1dGhvcl06IGh0dHBzOi8vZ2l0aHViLmNvbS9taGFwYWNoCltsaW5rLWNvbnRyaWJ1dG9yc106IC4uLy4uL2NvbnRyaWJ1dG9ycwo= readmeEtag: '"6d5573fd487cae3f0cfff219e63786cae1dd1c0d"' readmeLastModified: Tue, 14 May 2024 11:07:14 GMT repositoryId: 257096773 description: >- Laravel library that generates models and service with methods based on Swagger scheme. Current release supports OpenAPI 2.0 (Aka OAS) and OpenApi 3.0 created: '2020-04-19T20:34:51Z' updated: '2024-05-14T11:07:28Z' language: PHP archived: false stars: 3 watchers: 1 forks: 0 owner: mhapach logo: https://avatars.githubusercontent.com/u/6570258?v=4 license: NOASSERTION repoEtag: '"966cb3ac47047e033aefa68e055cc2c12a9bafcf0906a350a4f6d1698c46ae48"' repoLastModified: Tue, 14 May 2024 11:07:28 GMT foundInMaster: true category: Data Validators id: c60edd99eed7b5341001026b01957e0b - source: openapi3 tags repository: https://github.com/orisai/openapi v3: true id: a755d23d53fa42bbbac1908bcd25d285 repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgoJPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcmlzYWkvLmdpdGh1Yi9ibG9iL21haW4vaW1hZ2VzL3JlcG9fdGl0bGUucG5nP3Jhdz10cnVlIiBhbHQ9Ik9yaXNhaSIvPgoJPGJyLz4KCU9wZW5BUEkKPC9oMT4KCjxwIGFsaWduPSJjZW50ZXIiPgoJT3BlbkFQSSBidWlsZGVyLCBwYXJzZXIgYW5kIHNlcmlhbGl6ZXIKPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CglDb21wbGlhbnQgd2l0aCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMS4wIj52My4xLjAgc3BlY3M8L2E+CjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgoJ8J+ThCBDaGVjayBvdXQgb3VyIDxhIGhyZWY9ImRvY3MvUkVBRE1FLm1kIj5kb2N1bWVudGF0aW9uPC9hPi4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+Cgnwn5K4IElmIHlvdSBsaWtlIE9yaXNhaSwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vb3Jpc2FpLmRldi9zcG9uc29yIj5tYWtlIGEgZG9uYXRpb248L2E+LiBUaGFuayB5b3UhCjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgoJPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29yaXNhaS9vcGVuYXBpL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3c6Q0krYnJhbmNoOnYxLngiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vb3Jpc2FpL29wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvY2kueWFtbC9iYWRnZS5zdmc/YnJhbmNoPXYxLngiPjwvYT4KCTxhIGhyZWY9Imh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9vcmlzYWkvb3BlbmFwaT9icmFuY2g9djEueCI+PGltZyBzcmM9Imh0dHBzOi8vYmFkZ2VuLm5ldC9jb3ZlcmFsbHMvYy9naXRodWIvb3Jpc2FpL29wZW5hcGkvdjEueD9jYWNoZT0zMDAiPjwvYT4KCTxhIGhyZWY9Imh0dHBzOi8vZGFzaGJvYXJkLnN0cnlrZXItbXV0YXRvci5pby9yZXBvcnRzL2dpdGh1Yi5jb20vb3Jpc2FpL29wZW5hcGkvdjEueCI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/c3R5bGU9ZmxhdCZ1cmw9aHR0cHM6Ly9iYWRnZS1hcGkuc3RyeWtlci1tdXRhdG9yLmlvL2dpdGh1Yi5jb20vb3Jpc2FpL29wZW5hcGkvdjEueCI+PC9hPgoJPGEgaHJlZj0iaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL29yaXNhaS9vcGVuYXBpIj48aW1nIHNyYz0iaHR0cHM6Ly9iYWRnZW4ubmV0L3BhY2thZ2lzdC9kdC9vcmlzYWkvb3BlbmFwaT9jYWNoZT0zNjAwIj48L2E+Cgk8YSBocmVmPSJodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvb3Jpc2FpL29wZW5hcGkiPjxpbWcgc3JjPSJodHRwczovL2JhZGdlbi5uZXQvcGFja2FnaXN0L3Yvb3Jpc2FpL29wZW5hcGk/Y2FjaGU9MzYwMCI+PC9hPgoJPGEgaHJlZj0iaHR0cHM6Ly9jaG9vc2VhbGljZW5zZS5jb20vbGljZW5zZXMvbXBsLTIuMC8iPjxpbWcgc3JjPSJodHRwczovL2JhZGdlbi5uZXQvYmFkZ2UvbGljZW5zZS9NUEwtMi4wL2JsdWU/Y2FjaGU9MzYwMCI+PC9hPgo8cD4KCiMjCg== readmeEtag: '"9f1699f73d78f9ee72d7af92b3271eb6adbd6844"' readmeLastModified: Fri, 21 Jun 2024 22:26:58 GMT repositoryId: 547861622 description: '[WIP] OpenAPI builder, parser and serializer' created: '2022-10-08T12:47:28Z' updated: '2024-07-16T11:04:12Z' language: PHP archived: false stars: 3 watchers: 1 forks: 0 owner: orisai logo: https://avatars.githubusercontent.com/u/68913382?v=4 license: MPL-2.0 repoEtag: '"d06a7de43b3bdead5029536fca890e69369ae791577414a973677e5d971efdd1"' repoLastModified: Tue, 16 Jul 2024 11:04:12 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/cnsukidayo/wword v3: true id: 125190234ba25676da0af2c14d1e5e22 repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiID4KICAgIDxiPldXb3JkPC9iPgo8L2gxPgo8cCBhbGlnbj0iY2VudGVyIj4KICAgIDxhIGhyZWY9Imh0dHBzOi8vb3Blbmpkay5vcmcvcHJvamVjdHMvamRrLzE3LyI+PGltZyBhbHQ9IkdpdEh1YiBsYXN0IGNvbW1pdCIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0pESy0xNy1yZWQuc3ZnP3N0eWxlPWZsYXQmbG9nbz1PcmFjbGUmbGFiZWxDb2xvcj0yQjlDNEMmY29sb3I9REMyNTAwIiAvPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9DTlN1a2lkYXlvL1dXb3JkL2NvbW1pdHMiPjxpbWcgYWx0PSJHaXRIdWIgbGFzdCBjb21taXQiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFzdC1jb21taXQvQ05TdWtpZGF5by9XV29yZCIgLz48L2E+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQ05TdWtpZGF5by9XV29yZC9ibG9iL21hc3Rlci9MSUNFTlNFIj48aW1nIGFsdD0iR2l0SHViIGxhc3QgY29tbWl0IiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1HUEwgMy4wLTRFQjFCQSIgLz48L2E+CjwvcD4KCiMjIyDku4vnu40KCuS4h+ivreivjSzmraPlpoLlhbblkI3lroPoh7Tlipvkuo7mj5DkvpvkuIDlpZfnu5/kuIDnmoTpgLvovpHlrozmiJDku7vmhI/or63oqIDor43msYfnmoTlrabkuaAuCuW8leWFpeeLrOWIm+eahOWNleivjeagh+iusOaKgOacr+aWueS+v+eUqOaIt+abtOWlveWcsOWvuemBl+W/mOefpeivhui/m+ihjOafpea8j+ihpee8uiwK55So5oi35Y+v5Lul5Zyo6K+l5bmz5Y+w5Y+R5biDTWFya2Rvd27moLzlvI/nmoTluJblrZDliIbkuqvor63oqIDlrabkuaDkuK3nmoTlkITnp43lv4PlvpcuCumhueebruWfuuS6jlNwcmluZ0Jvb3QrTXliYXRpc+WunueOsCzph4fnlKhEb2NrZXLlrrnlmajljJbpg6jnvbIuCuWMheWQq+euoeeQhuWRmOaooeWdl+OAgeadg+mZkOaooeWdl+OAgeaguOW/g+WKn+iDveaooeWdl+OAgeaQnOe0ouaooeWdl+etiS4KCiMjIyDova/ku7bmnrbmnoQKCiFb6L2v5Lu25p625p6EXShpbWFnZXMvZGVzaWduLnBuZykKCiMjIyDmqKHlnZfliJLliIYKCiogKirms6jlhozkuK3lv4MqKjpuYWNvcwoqICoq572R5YWzZ2F0ZXdheSoqOkdhdGV3YXkg6IGa5ZCI5omA5pyJ55qE5o6l5Y+jLOe7n+S4gOaOpeWPl+WkhOeQhuWJjeerr+eahOivt+axgjvlubbkuJTlnKjovazlj5HliY3lvILmraXosIPnlKjmnYPpmZDmqKHlnZfov5vooYzpibTmnYMuCiogKirlhazlhbHmqKHlnZcqKjrlsIbmiYDmnInmnI3liqHmqKHlnZfpnIDopoHnmoTlip/og73ljZXni6zmir3nprso5YyF5ous5YWo5bGA5byC5bi45ZON5bqU5ZKM5byC5bi45aSE55CGLOi/h+a7pOWZqCkuCiogKirlrp7kvZPnsbvmqKHlnZcqKjrpgJrov4fmi4bliIbkuLrliY3nq6/jgIHlhazlhbHjgIHlkI7nq6/kuInkuKrpg6jliIbnmoTlrp7kvZPnsbvmqKHlnZcs5L2/5b6X57O757uf5ZCE5bGC5LmL6Ze055u45LqS54us56uL6Kej6ICmLgoqICoq6Ym05p2D5qih5Z2XKio655So5oi35rOo5YaM44CB6I635Y+W55So5oi35L+h5oGv44CB5Yik5pat55So5oi35piv5ZCm5pyJ55uu5qCH5o6l5Y+j5p2D6ZmQ44CB6KeS6Imy566h55CG44CB6KeS6Imy5YiG6YWN5o6l5Y+j5p2D6ZmQ562JLgoqICoq5qC45b+D5qih5Z2XKio65YyF5ous55So5oi35pS26JeP5aS55Yqf6IO9566h55CG44CBbWFya2Rvd27luJblrZDnrqHnkIYKKiAqKueuoeeQhuWRmOaooeWdlyoqOuWNleivjeWIkuWIhueuoeeQhuOAgeWvvOWFpeWNleivjeeuoeeQhgoqICoq5pCc57Si5qih5Z2XKio6RWxhc3RpY1NlYXJjaOWNleivjeaQnOe0ouOAgeabtOaWsEVT5YiX6KGoCgojIyMg55WM6Z2i5bGV56S6Clvku5PlupPlnLDlnYA6aHR0cHM6Ly9naXRodWIuY29tL0NOU3VraWRheW8vQW55TGFuZ3VhZ2VXb3JkXShodHRwczovL2dpdGh1Yi5jb20vQ05TdWtpZGF5by9BbnlMYW5ndWFnZVdvcmQpCjx0YWJsZSBib3JkZXI9IjBweCI+CiAgICA8dHI+CiAgICAgICAgPGltZyBzcmM9ImltYWdlcy9ob21lX3BhZ2VfMS5wbmciIGFsdD0i55m76ZmG55WM6Z2iIiAvPgogICAgPC90cj4gICAgICAgCiAgICA8dHI+CiAgICAgICAgPGltZyBzcmM9ImltYWdlcy9ob21lX3BhZ2VfMi5wbmciIGFsdD0i6IOM6K+N55WM6Z2iIiAvPgogICAgPC90cj4gICAgCiAgICA8dHI+CiAgICAgICAgPGltZyBzcmM9ImltYWdlcy9ob21lX3BhZ2VfMy5wbmciIGFsdD0i5pS26JeP5aS55ZKMbWFya2Rvd27mmL7npLoiIC8+CiAgICA8L3RyPiAgICAKPC90YWJsZT4= readmeEtag: '"ebdab30a16a3adbb63cb7b86fb3cdf522b82ffa7"' readmeLastModified: Sun, 25 Feb 2024 05:33:42 GMT repositoryId: 669420168 description: >- 万语词,正如其名它致力于提供一套统一的逻辑完成任意语言词汇的学习.引入独创的单词标记技术方便用户更 好地对遗忘知识进行查漏补缺,用户可以在该平台发布Markdown格式的帖子分享语言学习中的各种心得.项目基于SpringBoot+Mybatis实现,采用Docker容器化部署.包含管理员模块、权限模块、核心功能模块、搜索模块等. created: '2023-07-22T08:08:10Z' updated: '2024-08-23T12:18:09Z' language: Java archived: false stars: 3 watchers: 1 forks: 0 owner: CNSukidayo logo: https://avatars.githubusercontent.com/u/53049252?v=4 license: GPL-3.0 repoEtag: '"c7c6c0245cd33d9d2f935bb960d7522592d9c2afd0b0f6aba81d844ae68fc784"' repoLastModified: Fri, 23 Aug 2024 12:18:09 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/tsingsun/woocoo v3: true id: e194113fddfe7be854f117e3eadbe339 repositoryMetadata: base64Readme: >- IyBXb29Db28KClshW0xhbmd1YWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xhbmd1YWdlLUdvLWJsdWUuc3ZnKV0oaHR0cHM6Ly9nb2xhbmcub3JnLykKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3RzaW5nc3VuL3dvb2Nvby9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvdHNpbmdzdW4vd29vY29vKQpbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vdHNpbmdzdW4vd29vY29vKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL3RzaW5nc3VuL3dvb2NvbykKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vdHNpbmdzdW4vd29vY29vL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vdHNpbmdzdW4vd29vY29vL2FjdGlvbnM/cXVlcnk9YnJhbmNoJTNBbWFpbikKWyFbUmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvcmVsZWFzZS90c2luZ3N1bi93b29jb28uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL3RzaW5nc3VuL3dvb2Nvby9yZWxlYXNlcykKWyFbR29Eb2NdKGh0dHBzOi8vcGtnLmdvLmRldi9iYWRnZS9naXRodWIuY29tL3RzaW5nc3VuL3dvb2Nvbz9zdGF0dXMuc3ZnKV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vdHNpbmdzdW4vd29vY29vP3RhYj1kb2MpCgojIyBJbnRyb2R1Y3Rpb24KCmBXb29Db29gIGlzIGFuIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IGZyYW1ld29yayBhbmQgdG9vbGtpdCB3cml0dGVuIGluIEdPKEdvbGFuZykuIEl0IGlzIGVhc3kgdG8gZGV2ZWxvcCBXZWJBcGkgYXBwbGljYXRpb25zIG9yIFJQQyBzZXJ2aWNlcy4KCmBXb29Db29gIG1haW5seSBwbGF5cyBhIHJvbGUgb2YgYWRoZXNpdmUsIGFuZCBpdHMgY29yZSBjb21wb25lbnRzIGFyZSBmcm9tIG90aGVyIG9wZW4gc291cmNlIHByb2plY3RzLiAKVGhlIGN1cnJlbnQgZmVhdHVyZXMgYXJlIGFzIGZvbGxvd3M6CgojIEZlYXR1cmVzCi0gW3hdIGNvbXBvbmVudCBjb25maWd1cmFibGUsZWFzeSB0byBzcGxpdCBtdWx0aSBlbnZpcm9ubWVudHMKLSBbeF0gbG9nZ2VyIGFuZCByb3RhdGUgc3VwcG9ydC4gW0RldGFpbF0oZG9jcy9tZC9sb2dnZXIubWQpLAotIFt4XSBPcGVuVGVsZW1ldHJ5IHN1cHBvcnQuIFtEZXRhaWxdKGRvY3MvbWQvb3RlbC5tZCkKLSBbeF0gYnVpbHQtaW4gd2ViIHJvdXRlcixzdXBwb3J0cyBHcmFwaFFMLgotIFt4XSBidWlsdC1pbiBncnBjIHNlcnZlciBhbmQgZWFzeSB0byB1c2UgZ3JwYyBjbGllbnQuCi0gW3hdIEpXVC1iYXNlZCB2YWxpZGF0aW9uCi0gW3hdIG1pY3Jvc2VydmljZSByZWdpc3RyeSBhbmQgZGlzY292ZXJ5OiAKICAtIGV0Y2R2MzogcmVnaXN0ZXIgYW5kIGRpc2NvdmVyeSBzZXJ2aWNlcyAKICAtIFtQb2xhcmlzXShodHRwczovL2dpdGh1Yi5jb20vcG9sYXJpc21lc2gvcG9sYXJpcyk6IHNlcnZpY2UgZGlzY292ZXJ5IGFuZCBnb3Zlcm5hbmNlCgojIyBUb29scwoKLSB3b2NvLWNsaTogY29tbWFuZCBsaW5lIHRvb2wsIGluY2x1ZGUgZmVhdHVyZToKCiAgLSBbeF0gZ2VuZXJhdGUgY29kZSBzdXBwb3J0OiBgRW50YAogIC0gW3hdIHNlcnZlciBjb2RlIGdlbmVyYXRvciBmb3Igb3BlbmFwaSAzLjAgc3BlYy4gc2VlW09wZW5BcGkzIEdlbmVyYXRvcl0oZG9jcy9tZC9vYXNnZW4ubWQpCgojIyBXb3JrIFdpdGgKCi0gW2ZhY2Vib29rIGVudF0oaHR0cHM6Ly9naXRodWIuY29tL2VudC9lbnQpCi0gR3JhcGhxbDogYnkgZW50CgojIyBleGFtcGxlcwoKW3dvb2NvbyBleGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL3RzaW5nc3VuL3dvb2Nvby1leGFtcGxlKQoKIyMgb3RoZXJzOgoKY29udGFjdDoKLSBRUTogMjE5OTcyNzIKCiMjIFRoYW5rcwoKIVtpbWFnZV0oaHR0cHM6Ly9yZXNvdXJjZXMuamV0YnJhaW5zLmNvbS9zdG9yYWdlL3Byb2R1Y3RzL2NvbXBhbnkvYnJhbmQvbG9nb3MvamJfYmVhbS5zdmcp readmeEtag: '"a5a57ac9a75461312cf043b31c1a5171a33c6e8c"' readmeLastModified: Tue, 13 Aug 2024 08:15:25 GMT repositoryId: 129063014 description: an application development framework and toolkit created: '2018-04-11T08:44:52Z' updated: '2024-08-26T04:13:57Z' language: Go archived: false stars: 3 watchers: 2 forks: 0 owner: tsingsun logo: https://avatars.githubusercontent.com/u/5848549?v=4 license: Apache-2.0 repoEtag: '"4e540e540fc0bded72e380534db65c8d7b45c41da48860f1df420b34c245ac9f"' repoLastModified: Mon, 26 Aug 2024 04:13:57 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/swaggerexpert/openapi-server-url-templating v3: true v3_1: true id: 28ee2f640ed6f6fc55bfdae1fdd8fa96 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZwoKWyFbbnBtdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nKQpbIVtUZXN0IHdvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlcmV4cGVydC9vcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZy9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlcmV4cGVydC9vcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZy9hY3Rpb25zKQpbIVtEZXBlbmRhYm90IGVuYWJsZWRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGVwZW5kYWJvdC1lbmFibGVkLWJsdWUuc3ZnKV0oaHR0cHM6Ly9kZXBlbmRhYm90LmNvbS8pClshW3RyeSBvbiBSdW5LaXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdHJ5JTIwb24tUnVuS2l0LWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9ucG0ucnVua2l0LmNvbS9vcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZykKWyFbVGlkZWxpZnRdKGh0dHBzOi8vdGlkZWxpZnQuY29tL2JhZGdlcy9wYWNrYWdlL25wbS9vcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZyldKGh0dHBzOi8vdGlkZWxpZnQuY29tL3N1YnNjcmlwdGlvbi9wa2cvbnBtLW9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nP3V0bV9zb3VyY2U9bnBtLW9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPXJlYWRtZSkKCltTZXJ2ZXIgVVJMIFRlbXBsYXRpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNzZXJ2ZXItb2JqZWN0KSBzdXBwb3J0cyBbU2VydmVyIFZhcmlhYmxlc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3NlcnZlci12YXJpYWJsZS1vYmplY3QpLiBWYXJpYWJsZSBzdWJzdGl0dXRpb25zIHdpbGwgYmUgbWFkZSB3aGVuIGEgdmFyaWFibGUgaXMgbmFtZWQgaW4gYHtgYnJhY2tldHNgfWAuCgpUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGJ5IFtTZXJ2ZXIgT2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4xLjAubWQjc2VydmVyLW9iamVjdCkKb2YgW09wZW5BUEkgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pLgoKYG9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nYCBpcyBhICoqcGFyc2VyKiosICoqdmFsaWRhdG9yKiogYW5kICoqc3Vic3RpdHV0aW9uIG1lY2hhbmlzbSoqIGZvciBPcGVuQVBJIFNlcnZlciBVUkwgVGVtcGxhdGluZy4gSXQgc3VwcG9ydHMKU2VydmVyIE9iamVjdCBVUkwgVGVtcGxhdGluZyBkZWZpbmVkIGluIGZvbGxvd2luZyBPcGVuQVBJIHNwZWNpZmljYXRpb24gdmVyc2lvbnM6CgotIFtPcGVuQVBJIDMuMC4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4wLjAubWQjc2VydmVyLW9iamVjdCkKLSBbT3BlbkFQSSAzLjAuMV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4xLm1kI3NlcnZlci1vYmplY3QpCi0gW09wZW5BUEkgMy4wLjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMi5tZCNzZXJ2ZXItb2JqZWN0KQotIFtPcGVuQVBJIDMuMC4zXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4wLjMubWQjc2VydmVyLW9iamVjdCkKLSBbT3BlbkFQSSAzLjEuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3NlcnZlci1vYmplY3QpCgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2NkbjIuaHVic3BvdC5uZXQvaHViZnMvNDAwODgzOC93ZWJzaXRlL2xvZ29zL2xvZ29zX2Zvcl9kb3dubG9hZC9UaWRlbGlmdF9wcmltYXJ5LXNob3J0aGFuZC1sb2dvLnBuZyIgYWx0PSJUaWRlbGlmdCIgd2lkdGg9IjYwIiAvPgogICAgICA8L3RkPgogICAgICA8dGQgdmFsaWduPSJtaWRkbGUiPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGlkZWxpZnQuY29tL3N1YnNjcmlwdGlvbi9wa2cvbnBtLW9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nP3V0bV9zb3VyY2U9bnBtLW9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPXJlYWRtZSI+CiAgICAgICAgICAgIEdldCBwcm9mZXNzaW9uYWxseSBzdXBwb3J0ZWQgb3BlbmFwaS1zZXJ2ZXItdXJsLXRlbXBsYXRpbmcgd2l0aCBUaWRlbGlmdCBTdWJzY3JpcHRpb24uCiAgICAgICAgPC9hPgogICAgICA8L3RkPgogIDwvdHI+CjwvdGFibGU+CgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbR2V0dGluZyBzdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKQogIC0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKICAtIFtVc2FnZV0oI3VzYWdlKQogICAgLSBbRXh0cmFjdGlvbl0oI2V4dHJhY3Rpb24pCiAgICAtIFtQYXJzaW5nXSgjcGFyc2luZykKICAgIC0gW1ZhbGlkYXRpb25dKCN2YWxpZGF0aW9uKQogICAgLSBbU3Vic3RpdHV0aW9uXSgjc3Vic3RpdHV0aW9uKQogICAgLSBbR3JhbW1hcl0oI2dyYW1tYXIpCi0gW01vcmUgYWJvdXQgT3BlbkFQSSBTZXJ2ZXIgVVJMIFRlbXBsYXRpbmddKCNtb3JlLWFib3V0LW9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nKQotIFtMaWNlbnNlXSgjbGljZW5zZSkKCiMjIEdldHRpbmcgc3RhcnRlZAoKIyMjIEluc3RhbGxhdGlvbgoKWW91IGNhbiBpbnN0YWxsIGBvcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZ2AgdXNpbmcgYG5wbWA6CgpgYGBzaAogJCBucG0gaW5zdGFsbCBvcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZwpgYGAKCiMjIyBVc2FnZQoKYG9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nYCBjdXJyZW50bHkgc3VwcG9ydHMgKipwYXJzaW5nKiosICoqdmFsaWRhdGlvbioqIGFuZCAqKnN1YnN0aXR1dGlvbioqLgpCb3RoIHBhcnNlciBhbmQgdmFsaWRhdG9yIGFyZSBiYXNlZCBvbiBhIHN1cGVyc2V0IG9mIFtBQk5GXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNTIzNCkgKFtTQUJORl0oaHR0cHM6Ly9jcy5naXRodWIuY29tL2xkdGhvbWFzL2FwZy1qczIvYmxvYi9tYXN0ZXIvU0FCTkYubWQpKQphbmQgdXNlIFthcGctbGl0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2xkdGhvbWFzL2FwZy1saXRlKSBwYXJzZXIgZ2VuZXJhdG9yLgoKIyMjIyBQYXJzaW5nCgpQYXJzaW5nIGEgU2VydmVyIFVSTCBUZW1wbGF0aW5nIGlzIGFzIHNpbXBsZSBhcyBpbXBvcnRpbmcgdGhlICoqcGFyc2UqKiBmdW5jdGlvbgphbmQgY2FsbGluZyBpdC4KCmBgYGpzCmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnb3BlbmFwaS1zZXJ2ZXItdXJsLXRlbXBsYXRpbmcnOwoKY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZSgnaHR0cHM6Ly97dXNlcm5hbWV9LmdpZ2FudGljLXNlcnZlci5jb206e3BvcnR9L3tiYXNlUGF0aH0nKTsKcGFyc2VSZXN1bHQucmVzdWx0LnN1Y2Nlc3M7IC8vID0+IHRydWUKYGBgCgoqKnBhcnNlUmVzdWx0KiogdmFyaWFibGUgaGFzIHRoZSBmb2xsb3dpbmcgc2hhcGU6CgpgYGAKewogIHJlc3VsdDogewogICAgc3VjY2VzczogdHJ1ZSwKICAgIHN0YXRlOiAxMDEsCiAgICBzdGF0ZU5hbWU6ICdNQVRDSCcsCiAgICBsZW5ndGg6IDU2LAogICAgbWF0Y2hlZDogNTYsCiAgICBtYXhNYXRjaGVkOiA1NiwKICAgIG1heFRyZWVEZXB0aDogMTIsCiAgICBub2RlSGl0czogNzU4CiAgfSwKICBhc3Q6IGZuYXN0IHsKICAgIGNhbGxiYWNrczogWwogICAgICAnc2VydmVyLXVybC10ZW1wbGF0ZSc6IFtGdW5jdGlvbjogc2VydmVyVXJsVGVtcGxhdGVdLAogICAgICAnc2VydmVyLXZhcmlhYmxlJzogW0Z1bmN0aW9uOiBzZXJ2ZXJWYXJpYWJsZV0sCiAgICAgICdzZXJ2ZXItdmFyaWFibGUtbmFtZSc6IFtGdW5jdGlvbjogc2VydmVyVmFyaWFibGVOYW1lXSwKICAgICAgbGl0ZXJhbHM6IFtGdW5jdGlvbjogbGl0ZXJhbHNdCiAgICBdLAogICAgaW5pdDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHJ1bGVEZWZpbmVkOiBbRnVuY3Rpb24gKGFub255bW91cyldLAogICAgdWR0RGVmaW5lZDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIGRvd246IFtGdW5jdGlvbiAoYW5vbnltb3VzKV0sCiAgICB1cDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHRyYW5zbGF0ZTogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHNldExlbmd0aDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIGdldExlbmd0aDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHRvWG1sOiBbRnVuY3Rpb24gKGFub255bW91cyldCiAgfQp9CmBgYAoKIyMjIyMjIEludGVycHJldGluZyBBU1QgYXMgbGlzdCBvZiBlbnRyaWVzCgpgYGBqcwppbXBvcnQgeyBwYXJzZSB9IGZyb20gJ29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nJzsKCmNvbnN0IHBhcnNlUmVzdWx0ID0gcGFyc2UoJ2h0dHBzOi8ve3VzZXJuYW1lfS5naWdhbnRpYy1zZXJ2ZXIuY29tOntwb3J0fS97YmFzZVBhdGh9Jyk7CmNvbnN0IHBhcnRzID0gW107CgpwYXJzZVJlc3VsdC5hc3QudHJhbnNsYXRlKHBhcnRzKTsKYGBgCgpBZnRlciBydW5uaW5nIHRoZSBhYm92ZSBjb2RlLCAqKnBhcnRzKiogdmFyaWFibGUgaGFzIHRoZSBmb2xsb3dpbmcgc2hhcGU6CgpgYGBqcwpbCiAgWwogICAgJ3NlcnZlci11cmwtdGVtcGxhdGUnLAogICAgJ2h0dHBzOi8ve3VzZXJuYW1lfS5naWdhbnRpYy1zZXJ2ZXIuY29tOntwb3J0fS97YmFzZVBhdGh9JwogIF0sCiAgWyAnbGl0ZXJhbHMnLCAnaHR0cHM6Ly8nIF0sCiAgWyAnc2VydmVyLXZhcmlhYmxlJywgJ3t1c2VybmFtZX0nIF0sCiAgWyAnc2VydmVyLXZhcmlhYmxlLW5hbWUnLCAndXNlcm5hbWUnIF0sCiAgWyAnbGl0ZXJhbHMnLCAnLmdpZ2FudGljLXNlcnZlci5jb206JyBdLAogIFsgJ3NlcnZlci12YXJpYWJsZScsICd7cG9ydH0nIF0sCiAgWyAnc2VydmVyLXZhcmlhYmxlLW5hbWUnLCAncG9ydCcgXSwKICBbICdsaXRlcmFscycsICcvJyBdLAogIFsgJ3NlcnZlci12YXJpYWJsZScsICd7YmFzZVBhdGh9JyBdLAogIFsgJ3NlcnZlci12YXJpYWJsZS1uYW1lJywgJ2Jhc2VQYXRoJyBdCl0KYGBgCgojIyMjIyMgSW50ZXJwcmV0aW5nIEFTVCBhcyBYTUwKCmBgYGpzCmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnb3BlbmFwaS1zZXJ2ZXItdXJsLXRlbXBsYXRpbmcnOwoKY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZSgnaHR0cHM6Ly97dXNlcm5hbWV9LmdpZ2FudGljLXNlcnZlci5jb206e3BvcnR9L3tiYXNlUGF0aH0nKTsKY29uc3QgeG1sID0gcGFyc2VSZXN1bHQuYXN0LnRvWG1sKCk7CmBgYAoKQWZ0ZXIgcnVubmluZyB0aGUgYWJvdmUgY29kZSwgKip4bWwqKiB2YXJpYWJsZSBoYXMgdGhlIGZvbGxvd2luZyBjb250ZW50OgoKYGBgeG1sCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cjxyb290IG5vZGVzPSIxMCIgY2hhcmFjdGVycz0iNTYiPgogIDwhLS0gaW5wdXQgc3RyaW5nIC0tPgogIGh0dHBzOi8ve3VzZXJuYW1lfS5naWdhbnRpYy1zZXJ2ZXIuY29tOntwb3J0fS97YmFzZVBhdGh9CiAgPG5vZGUgbmFtZT0ic2VydmVyLXVybC10ZW1wbGF0ZSIgaW5kZXg9IjAiIGxlbmd0aD0iNTYiPgogICAgaHR0cHM6Ly97dXNlcm5hbWV9LmdpZ2FudGljLXNlcnZlci5jb206e3BvcnR9L3tiYXNlUGF0aH0KICAgIDxub2RlIG5hbWU9ImxpdGVyYWxzIiBpbmRleD0iMCIgbGVuZ3RoPSI4Ij4KICAgICAgaHR0cHM6Ly8KICAgIDwvbm9kZT48IS0tIG5hbWU9ImxpdGVyYWxzIiAtLT4KICAgIDxub2RlIG5hbWU9InNlcnZlci12YXJpYWJsZSIgaW5kZXg9IjgiIGxlbmd0aD0iMTAiPgogICAgICB7dXNlcm5hbWV9CiAgICAgIDxub2RlIG5hbWU9InNlcnZlci12YXJpYWJsZS1uYW1lIiBpbmRleD0iOSIgbGVuZ3RoPSI4Ij4KICAgICAgICB1c2VybmFtZQogICAgICA8L25vZGU+PCEtLSBuYW1lPSJzZXJ2ZXItdmFyaWFibGUtbmFtZSIgLS0+CiAgICA8L25vZGU+PCEtLSBuYW1lPSJzZXJ2ZXItdmFyaWFibGUiIC0tPgogICAgPG5vZGUgbmFtZT0ibGl0ZXJhbHMiIGluZGV4PSIxOCIgbGVuZ3RoPSIyMSI+CiAgICAgIC5naWdhbnRpYy1zZXJ2ZXIuY29tOgogICAgPC9ub2RlPjwhLS0gbmFtZT0ibGl0ZXJhbHMiIC0tPgogICAgPG5vZGUgbmFtZT0ic2VydmVyLXZhcmlhYmxlIiBpbmRleD0iMzkiIGxlbmd0aD0iNiI+CiAgICAgIHtwb3J0fQogICAgICA8bm9kZSBuYW1lPSJzZXJ2ZXItdmFyaWFibGUtbmFtZSIgaW5kZXg9IjQwIiBsZW5ndGg9IjQiPgogICAgICAgIHBvcnQKICAgICAgPC9ub2RlPjwhLS0gbmFtZT0ic2VydmVyLXZhcmlhYmxlLW5hbWUiIC0tPgogICAgPC9ub2RlPjwhLS0gbmFtZT0ic2VydmVyLXZhcmlhYmxlIiAtLT4KICAgIDxub2RlIG5hbWU9ImxpdGVyYWxzIiBpbmRleD0iNDUiIGxlbmd0aD0iMSI+CiAgICAgIC8KICAgIDwvbm9kZT48IS0tIG5hbWU9ImxpdGVyYWxzIiAtLT4KICAgIDxub2RlIG5hbWU9InNlcnZlci12YXJpYWJsZSIgaW5kZXg9IjQ2IiBsZW5ndGg9IjEwIj4KICAgICAge2Jhc2VQYXRofQogICAgICA8bm9kZSBuYW1lPSJzZXJ2ZXItdmFyaWFibGUtbmFtZSIgaW5kZXg9IjQ3IiBsZW5ndGg9IjgiPgogICAgICAgIGJhc2VQYXRoCiAgICAgIDwvbm9kZT48IS0tIG5hbWU9InNlcnZlci12YXJpYWJsZS1uYW1lIiAtLT4KICAgIDwvbm9kZT48IS0tIG5hbWU9InNlcnZlci12YXJpYWJsZSIgLS0+CiAgPC9ub2RlPjwhLS0gbmFtZT0ic2VydmVyLXVybC10ZW1wbGF0ZSIgLS0+Cjwvcm9vdD4KYGBgCgo+IE5PVEU6IEFTVCBjYW4gYWxzbyBiZSB0cmF2ZXJzZWQgaW4gY2xhc3NpY2FsIHdheSB1c2luZyBbZGVwdGggZmlyc3QgdHJhdmVyc2FsXShodHRwczovL3d3dy50dXRvcmlhbHNwb2ludC5jb20vZGF0YV9zdHJ1Y3R1cmVzX2FsZ29yaXRobXMvZGVwdGhfZmlyc3RfdHJhdmVyc2FsLmh0bSkuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgb3B0aW9uIHBsZWFzZSByZWZlciB0byBbYXBnLWpzXShodHRwczovL2dpdGh1Yi5jb20vbGR0aG9tYXMvYXBnLWpzKSBhbmQgW2FwZy1qcy1leGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL2xkdGhvbWFzL2FwZy1qcy1leGFtcGxlcykuCgojIyMjIFZhbGlkYXRpb24KClZhbGlkYXRpbmcgYSBTZXJ2ZXIgVVJMIFRlbXBsYXRpbmcgaXMgYXMgc2ltcGxlIGFzIGltcG9ydGluZyB0aGUgKip0ZXN0KiogZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQuCgoKYGBganMKaW1wb3J0IHsgdGVzdCB9IGZyb20gJ29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nJzsKCnRlc3QoJ2h0dHBzOi8ve3VzZXJuYW1lfS5naWdhbnRpYy1zZXJ2ZXIuY29tOntwb3J0fS97YmFzZVBhdGh9Jyk7IC8vID0+IHRydWUKdGVzdCgnaHR0cHM6Ly9naWdhbnRpYy1zZXJ2ZXIuY29tL2Jhc2UtcGF0aCcpOyAvLyA9PiB0cnVlCnRlc3QoJ2h0dHBzOi8vZ2lnYW50aWMtc2VydmVyLmNvbS9iYXNlLXBhdGgnLCB7IHN0cmljdDogdHJ1ZSB9KTsgLy8gPT4gZmFsc2UgKGRvZXNuJ3QgY29udGFpbiBhbnkgc2VydmVyLXZhcmlhYmxlKQpgYGAKCiMjIyMgU3Vic3RpdHV0aW9uCgpTdWJzdGl0dXRpbmcgYSBTZXJ2ZXIgVVJMIFRlbXBsYXRpbmcgaXMgYXMgc2ltcGxlIGFzIGltcG9ydGluZyB0aGUgKipzdWJzdGl0dXRlKiogZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQuCgpgYGBqcwppbXBvcnQgeyBzdWJzdGl0dXRlIH0gZnJvbSAnb3BlbmFwaS1zZXJ2ZXItdXJsLXRlbXBsYXRpbmcnOwoKc3VidGl0dXRlKCdodHRwczovL3t1c2VybmFtZX0uZ2lnYW50aWMtc2VydmVyLmNvbScsIHsgdXNlcm5hbWU6ICdjaGFyMG4nIH0pOyAvLyA9PiAiaHR0cHM6Ly9jaGFyMG4uZ2lnYW50aWMtc2VydmVyLmNvbSIKYGBgCgpTdWJzdGl0dXRlZCBTZXJ2ZXIgVVJMIFRlbXBsYXRpbmcgaXMgYXV0b21hdGljYWxseSBlbmNvZGVkIHVzaW5nIFtlbmNvZGVVUklDb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL2VuY29kZVVSSUNvbXBvbmVudCkgZnVuY3Rpb24uCkl0IGlzIHBvc3NpYmxlIHRvIHByb3ZpZGUgYSBjdXN0b20gZW5jb2Rlci4KCmBgYGpzCmltcG9ydCB7IHN1YnN0aXR1dGUgfSBmcm9tICdvcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZyc7CgpzdWJzdGl0dXRlKCdodHRwczovL3t1c2VybmFtZX0uZ2lnYW50aWMtc2VydmVyLmNvbScsIHsgdXNlcm5hbWU6ICcvPyMnIH0sIHsKICBlbmNvZGVyOiAoc2VydmVyVmFyaWFibGUpID0+IHNlcnZlclZhcmlhYmxlLCAvLyBubyBlbmNvZGluZwp9KTsgLy8gPT4gImh0dHBzOi8vLz8jLmdpZ2FudGljLXNlcnZlci5jb20iCmBgYAoKIyMjIyBHcmFtbWFyCgpOZXcgZ3JhbW1hciBpbnN0YW5jZSBjYW4gYmUgY3JlYXRlZCBpbiBmb2xsb3dpbmcgd2F5OgoKYGBganMKaW1wb3J0IHsgR3JhbW1hciB9IGZyb20gJ29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nJzsKCmNvbnN0IGdyYW1tYXIgPSBuZXcgR3JhbW1hcigpOwpgYGAKClRvIG9idGFpbiBvcmlnaW5hbCBBQk5GIChTQUJORikgZ3JhbW1hciBhcyBhIHN0cmluZzoKCmBgYGpzCmltcG9ydCB7IEdyYW1tYXIgfSBmcm9tICdvcGVuYXBpLXNlcnZlci11cmwtdGVtcGxhdGluZyc7Cgpjb25zdCBncmFtbWFyID0gbmV3IEdyYW1tYXIoKTsKCmdyYW1tYXIudG9TdHJpbmcoKTsKLy8gb3IKU3RyaW5nKGdyYW1tYXIpOwpgYGAKCiMjIE1vcmUgYWJvdXQgT3BlbkFQSSBTZXJ2ZXIgVVJMIFRlbXBsYXRpbmcKClRoZSBTZXJ2ZXIgVVJMIFRlbXBsYXRpbmcgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIFtBQk5GXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTIzNCkgc3ludGF4CgpgYGBhYm5mCjsgT3BlbkFQSSBTZXJ2ZXIgVVJMIHRlbXBsYXRpbmcgQUJORiBzeW50YXgKc2VydmVyLXVybC10ZW1wbGF0ZSAgICA9IDEqKCBsaXRlcmFscyAvIHNlcnZlci12YXJpYWJsZSApCnNlcnZlci12YXJpYWJsZSAgICAgICAgPSAieyIgc2VydmVyLXZhcmlhYmxlLW5hbWUgIn0iCnNlcnZlci12YXJpYWJsZS1uYW1lICAgPSAxKiggdW5yZXNlcnZlZCAvIHBjdC1lbmNvZGVkIC8gc3ViLWRlbGltcyAvICI6IiAvICJAIiApCmxpdGVyYWxzICAgICAgICAgICAgICAgPSAxKiggJXgyMSAvICV4MjMtMjQgLyAleDI2IC8gJXgyOC0zQiAvICV4M0QgLyAleDNGLTVCCiAgICAgICAgICAgICAgICAgICAgICAgLyAleDVEIC8gJXg1RiAvICV4NjEtN0EgLyAleDdFIC8gdWNzY2hhciAvIGlwcml2YXRlCiAgICAgICAgICAgICAgICAgICAgICAgLyBwY3QtZW5jb2RlZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBhbnkgVW5pY29kZSBjaGFyYWN0ZXIgZXhjZXB0OiBDVEwsIFNQLAogICAgICAgICAgICAgICAgICAgICAgICAgICA7ICBEUVVPVEUsICInIiwgIiUiIChhc2lkZSBmcm9tIHBjdC1lbmNvZGVkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgIjwiLCAiPiIsICJcIiwgIl4iLCAiYCIsICJ7IiwgInwiLCAifSIKCjsgQ2hhcmFjdGVycyBkZWZpbml0aW9ucyAoZnJvbSBSRkMgNjU3MCkKQUxQSEEgICAgICAgICAgPSAgJXg0MS01QSAvICV4NjEtN0EgICA7IEEtWiAvIGEtegpESUdJVCAgICAgICAgICA9ICAleDMwLTM5ICAgICAgICAgICAgIDsgMC05CkhFWERJRyAgICAgICAgID0gIERJR0lUIC8gIkEiIC8gIkIiIC8gIkMiIC8gIkQiIC8gIkUiIC8gIkYiCiAgICAgICAgICAgICAgICAgOyBjYXNlLWluc2Vuc2l0aXZlCgpwY3QtZW5jb2RlZCAgICA9ICAiJSIgSEVYRElHIEhFWERJRwp1bnJlc2VydmVkICAgICA9ICBBTFBIQSAvIERJR0lUIC8gIi0iIC8gIi4iIC8gIl8iIC8gIn4iCnN1Yi1kZWxpbXMgICAgID0gICIhIiAvICIkIiAvICImIiAvICInIiAvICIoIiAvICIpIgogICAgICAgICAgICAgICAvICAiKiIgLyAiKyIgLyAiLCIgLyAiOyIgLyAiPSIKCnVjc2NoYXIgICAgICAgID0gICV4QTAtRDdGRiAvICV4RjkwMC1GRENGIC8gJXhGREYwLUZGRUYKICAgICAgICAgICAgICAgLyAgJXgxMDAwMC0xRkZGRCAvICV4MjAwMDAtMkZGRkQgLyAleDMwMDAwLTNGRkZECiAgICAgICAgICAgICAgIC8gICV4NDAwMDAtNEZGRkQgLyAleDUwMDAwLTVGRkZEIC8gJXg2MDAwMC02RkZGRAogICAgICAgICAgICAgICAvICAleDcwMDAwLTdGRkZEIC8gJXg4MDAwMC04RkZGRCAvICV4OTAwMDAtOUZGRkQKICAgICAgICAgICAgICAgLyAgJXhBMDAwMC1BRkZGRCAvICV4QjAwMDAtQkZGRkQgLyAleEMwMDAwLUNGRkZECiAgICAgICAgICAgICAgIC8gICV4RDAwMDAtREZGRkQgLyAleEUxMDAwLUVGRkZECgppcHJpdmF0ZSAgICAgICA9ICAleEUwMDAtRjhGRiAvICV4RjAwMDAtRkZGRkQgLyAleDEwMDAwMC0xMEZGRkQKYGBgCgojIyBMaWNlbnNlCgpgb3BlbmFwaS1zZXJ2ZXItdXJsLXRlbXBsYXRpbmdgIGlzIGxpY2Vuc2VkIHVuZGVyIFtBcGFjaGUgMi4wIGxpY2Vuc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyZXhwZXJ0L29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nL2Jsb2IvbWFpbi9MSUNFTlNFKS4KYG9wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nYCBjb21lcyB3aXRoIGFuIGV4cGxpY2l0IFtOT1RJQ0VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyZXhwZXJ0L29wZW5hcGktc2VydmVyLXVybC10ZW1wbGF0aW5nL2Jsb2IvbWFpbi9OT1RJQ0UpIGZpbGUKY29udGFpbmluZyBhZGRpdGlvbmFsIGxlZ2FsIG5vdGljZXMgYW5kIGluZm9ybWF0aW9uLgo= readmeEtag: '"820c3a9d0afc76b758f8a5df4fdd5bf62d4d265d"' readmeLastModified: Fri, 09 Aug 2024 23:00:27 GMT repositoryId: 809665855 description: >- OpenAPI Server URL templating parser, validator and substitution mechanism. created: '2024-06-03T08:05:16Z' updated: '2024-08-29T22:55:53Z' language: JavaScript archived: false stars: 3 watchers: 1 forks: 0 owner: swaggerexpert logo: https://avatars.githubusercontent.com/u/172408630?v=4 license: Apache-2.0 repoEtag: '"f5d07ecb561e45ec432a444d0e5ccbba445d45a81798d8d028cb258d6adf5a2f"' repoLastModified: Thu, 29 Aug 2024 22:55:53 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/muskratjs/muskrat v3: true repositoryMetadata: base64Readme: IyBtdXNrcmF0CgpSdW50aW1lIEFQSSBzY2hlbWEgZ2VuZXJhdGlvbgo= readmeEtag: '"f079a4c9e4bd2bd72dc78013f795c4502fc7da02"' readmeLastModified: Tue, 29 Jan 2019 12:39:17 GMT repositoryId: 135346267 description: ':rat: Generate project metadata' created: '2018-05-29T19:55:40Z' updated: '2019-01-29T12:39:19Z' language: TypeScript archived: false stars: 3 watchers: 3 forks: 0 owner: muskratjs logo: https://avatars.githubusercontent.com/u/41447837?v=4 license: MIT repoEtag: '"bcfdf9943a8f2faad6213caf18b33a5e93f77804c6f349aae129cfc44ea61dd7"' repoLastModified: Tue, 29 Jan 2019 12:39:19 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: e426cf26d8718a6a03b77573b5f15664 - source: openapi3 tags repository: https://github.com/axiomsamarth/gita.io v3: true repositoryMetadata: base64Readme: >- IyBnaXRhLmlvCkdpdGEuaW8gaXMgYW4gQVBJIGFkaGVyaW5nIHRvIHN0YW5kYXJkcyBvZiBPcGVuQVBJIHYzLjAsIHRvIGxldmVyYWdlIHRoZSBHaXRhIHZlcnNlcyBwcm9ncmFtbWF0aWNhbGx5LiBUaGUgR2l0YS5pbyBBUEkgc2VydmVzIHRoZSB2ZXJzZXMgaW4gdGhlIG5hdGl2ZSBEZXZhbmFnYXJpIHNjcmlwdCBhbG9uZyB3aXRoIHRoZWlyIHRyYW5zbGl0ZXJhdGlvbiBhbmQgbWVhbmluZy4KClRoaXMgcmVzcG9zaXRvcnkgcHJvdmlkZXMgdGhlIHNvdXJjZSBjb2RlIG9mIHRoZSBBUEkgaW4gdGhlIGZvbGRlciBgL2dpdGEtYXBpYCBhbG9uZyB3aXRoIGFuIGV4YW1wbGUgUHl0aG9uLUZsYXNrIHdlYnNpdGUgYnVpbHQgZW1wbG95aW5nIHRoZSBnaXRhLmlvIEFQSSBpbiB0aGUgZm9sZGVyIGAvZ2l0YS1hcGktaW9gLgoKIyMgQVBJIERvY3VtZW50YXRpb24KClRoZSBvZmZpY2lhbCBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgZGV2ZWxvcGVyIHVzZSBjYW4gYmUgZm91bmQgYXQgW0dpdGEuaW8gU3dhZ2dlciBEb2N1bWVudGF0aW9uXShodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzLWRvY3MvQXhpb21TYW1hcnRoL2dpdGEuaW8vMS4wLjApCgojIyBQcmVyZXF1aXNpdGVzClRoZSBmb2xsb3dpbmcgYXJlIHRoZSBwcmVyZXF1aXNpdGVzIGZvciBhIHNlYW1sZXNzIGV4ZWN1dGlvbiBvZiB0aGUgQVBJLiAKCi0gUHJlZmVycmFibHkgbGF0ZXN0IE1TIFdpbmRvd3MvTGludXgvTWFjT1MgUGxhdGZvcm0KLSBQeXRob24gPj0gMy4wCi0gUHl0aG9uIEZsYXNrID49IDEuMS4yCi0gUHltb25nbyA+PSAzLjEwLjEKLSBNb25nb0RCIGFzIHRoZSBkYXRhYmFzZQoKIyMgU2V0dXAgaW5zdHJ1Y3Rpb25zCgotIFBsZWFzZSByZWFkIHRoZSBbUkVBRE1FLm1kXSgvZ2l0YS1hcGkvUkVBRE1FLm1kKSBmb3Igc2V0dGluZyB1cCB0aGUgZ2l0YS5pbyBBUEkKCi0gUGxlYXNlIHJlYWQgdGhlIFtSRUFETUUubWRdKC9naXRhLWFwaS1pby9SRUFETUUubWQpIGZvciBzZXR0aW5nIHVwIHRoZSBleGFtcGxlIGZsYXNrIHdlYiBhcHBsaWNhdGlvbiB0aGF0IGxldmVyYWdlcyB0aGUgZ2l0YS5pbyBBUEkuIAoKIyMgRGVtbyB2aWRlb3MKVGhlIGRlbW8gdmlkZW9zIG9mIHRoZSBnaXRhLmlvIGFuZCB0aGUgd2Vic2l0ZSBidWlsdCBlbXBsb3lpbmcgZ2l0YS5pbyBjYW4gYmUgc2VlbiBvbiBteSBZb3VUdWJlIGNoYW5uZWwgYXQ6CgotIFtnaXRhLmlvIEFQSSBpbiBhY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9eFF6UGJVMjdZdVEmbGlzdD1QTEdnemVfWFdZSW95cy1ldFhUQkw0NmN0ZEhkREF0RldrJmluZGV4PTEyJnQ9MHMpCgotIFtnaXRhLmlvIEFQSSBmb3IgZGV2ZWxvcGVycy4gRGVtbyBpbiBQb3N0bWFuXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUstZmJVNTU2LW5jJmxpc3Q9UExHZ3plX1hXWUlveXMtZXRYVEJMNDZjdGRIZERBdEZXayZpbmRleD0xMyZ0PTBzKQoKIyMgQ29udHJpYnV0aW9uIEd1aWRlbGluZXMKClRoYW5rIHlvdSBzbyBtdWNoIGZvciBsb29raW5nIGZvcndhcmQgdG8gY29udHJpYnV0ZS4gUGxlYXNlIHJlYWQgdGhlIFtjb250cmlidXRpb24gZ3VpZGVsaW5lc10oL0NvbnRyaWJ1dGlvbi5tZCkgYmVmb3JlIHByb2NlZWRpbmcuIFdlIHN0cmljdGx5IGFkaGVyZSB0byB0aGVtLg== readmeEtag: '"d6a1ade6de6f2968ffb917afac29fd3dde6c6c30"' readmeLastModified: Fri, 26 Mar 2021 13:13:27 GMT repositoryId: 275591455 description: >- Gita.io is an API adhering to standards of OpenAPI v3.0, to leverage the Gita verses programmatically. The Gita.io API serves the verses in the native Devanagari script along with their transliteration and meaning. created: '2020-06-28T13:32:32Z' updated: '2023-01-13T17:29:31Z' language: HTML archived: false stars: 3 watchers: 2 forks: 1 owner: AxiomSamarth logo: https://avatars.githubusercontent.com/u/32246441?v=4 repoEtag: '"faf7429e22acbf08fbac6de3b7c5105b9fa75ccf330a26be515159c6c3ca9d57"' repoLastModified: Fri, 13 Jan 2023 17:29:31 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 376287ab5e6f1dcd1912759578fee798 - source: openapi3 tags repository: https://github.com/cope-systems/bottle-openapi-3 v3: true repositoryMetadata: base64Readme: >- PT09PT09PT09PT09PT09PT09PT09PT09PT0KQm90dGxlIE9wZW5BUEkgMyBQbHVnaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQWJvdXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBCb3R0bGUgT3BlbkFQSSAzIFBsdWdpbiBpcyBhIHRvb2xraXQgZm9yIHBlcmZvcm1pbmcgdmFsaWRhdGlvbiBvZiByZXF1ZXN0cwphZ2FpbnN0IGFuIE9wZW5BUEkgZG9jdW1lbnQgZm9yIGBCb3R0bGUgPGh0dHBzOi8vYm90dGxlcHkub3JnL2RvY3MvMC4xMi8+YF8gYXBwbGljYXRpb25zLiBJdCBpcyBidWlsdCBvbiB0aGUgYG9wZW5hcGktY29yZSA8aHR0cHM6Ly9naXRodWIuY29tL3AxYzJ1L29wZW5hcGktY29yZT5gXwphbmQgYG9wZW5hcGktc3BlYy12YWxpZGF0b3IgPGh0dHBzOi8vZ2l0aHViLmNvbS9wMWMydS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yPmBfIGxpYnJhcmllcywgYW5kIHN1cHBvcnRzCnRoZSBgT3BlbkFQSSAzIHNwZWNpZmljYXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kPmBfLgoKLS0tLS0tLS0KTGljZW5zZQotLS0tLS0tLQoKVGhpcyBjb2RlYmFzZSBpcyBNSVQgbGljZW5zZWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpSZXF1aXJlbWVudHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkEgcmVsYXRpdmVseSByZWNlbnQgdmVyc2lvbiBvZiBQeXRob24gKDMuNSspIGlzIHJlcXVpcmVkLiBUaGlzIHBsdWdpbiBkZXBlbmRzIG9uIHRoZQphZm9yZW1lbnRpb25lZCBgYG9wZW5hcGktY29yZWBgIGFuZCBgYG9wZW5hcGktc3BlYy12YWxpZGF0b3JgYCBsaWJyYXJpZXMsIGFuZCBhbHNvIHJlcXVpcmVzCmEgcmVsYXRpdmVseSByZWNlbnQgdmVyc2lvbiBvZiBgYGJvdHRsZWBgICgwLjEyKykuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KUXVpY2tzdGFydAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIEJvdHRsZSBPcGVuQVBJIDMgcGx1Z2luIG1heSBlaXRoZXIgYmUgaW5zdGFsbGVkIGZyb20gYHB5cGkgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9ib3R0bGUtb3BlbmFwaS0zLz5gXyAgYXMgdGhlIGBgYm90dGxlLW9wZW5hcGktM2BgIHBhY2thZ2U6CgogICAgcGlwIGluc3RhbGwgYm90dGxlLW9wZW5hcGktMwoKb3IgbWF5IGJlIGluc3RhbGxlZCBmcm9tIHNvdXJjZSBmcm9tIHRoZSBgZ2l0IHJlcG9zaXRvcnkgPGh0dHBzOi8vZ2l0aHViLmNvbS9jb3BlLXN5c3RlbXMvYm90dGxlLW9wZW5hcGktMz5gXzoKCiAgICBweXRob24gc2V0dXAucHkgaW5zdGFsbAoKT25jZSB0aGUgcGx1Z2luIGlzIGluc3RhbGxlZCwgaXQgbWF5IGJlIHVzZWQgaW4gYSBCb3R0bGUgYXBwbGljYXRpb24gYnkgbG9hZGluZyB0aGUgT3BlbkFQSSBzY2hlbWEgYW5kIGluc3RhbGxpbmcgdGhlCnBsdWdpbi4gQW4gZXhhbXBsZToKCi4uIGNvZGUtYmxvY2s6OiBweXRob24KCiAgICBpbXBvcnQgYm90dGxlCiAgICBpbXBvcnQgeWFtbAogICAgZnJvbSBib3R0bGVfb3BlbmFwaV8zIGltcG9ydCBPcGVuQVBJUGx1Z2luCgogICAgYXBwID0gYm90dGxlLkJvdHRsZSgpCgogICAgd2l0aCBvcGVuKCJzd2FnZ2VyLnlhbWwiKSBhcyBmOgogICAgICAgIHNwZWMgPSB5YW1sLmxvYWQoZikKCiAgICBAYXBwLnJvdXRlKCIvYXBpL2ZvbyIpCiAgICBkZWYgZm9vX2hhbmRsZXIoKToKICAgICAgICByZXR1cm4geyJmb28iOiAiYmFyIn0KCiAgICBhcHAuaW5zdGFsbChPcGVuQVBJUGx1Z2luKHNwZWMpKQoKICAgIGFwcC5ydW4oKQoKVGhlIGV4YW1wbGUncyBzcGVjaWZpY2F0aW9uOgoKLi4gY29kZS1ibG9jazo6IHlhbWwKCiAgICBvcGVuYXBpOiAzLjAuMAogICAgaW5mbzoKICAgICAgdGl0bGU6IE15IEFQSQogICAgc2VydmVyczoKICAgICAgLSB1cmw6IC9hcGkKICAgIHBhdGhzOgogICAgICAvZm9vOgogICAgICAgIGdldDoKICAgICAgICAgICBzdW1tYXJ5OiBGZXRjaCBhbiBvYmplY3QKICAgICAgICAgICByZXNwb25zZXM6CiAgICAgICAgICAgICAiMjAwIjoKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQW4gb2JqZWN0IHdhcyBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkLiIKICAgICAgICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgICAgICAgc2NoZW1hOiB7InR5cGUiOiAib2JqZWN0In0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBZHZhbmNlZCBVc2FnZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVE9ETwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpDaGFuZ2Vsb2cKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCjAuMS4yIChNYXkgMjAyMSkKKioqKioqKioqKioqKioqKioKCkZpeGVkIGFuIGlzc3VlIGRlY29kaW5nIHRoZSByZXF1ZXN0IGJvZHkgZm9yIEhUVFAgbWV0aG9kcyBsaWtlClBPU1QsIFBVVCwgZXRjLgoKCjAuMS4wIChKYW4gMjAyMSkKKioqKioqKioqKioqKioqKioKCkluaXRpYWwgYWxwaGEgcmVsZWFzZSBvZiB0aGUgT3BlbkFQSSAzIHBsdWdpbiBmb3IKQm90dGxlLiBNb3N0IGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGJlIGltcGxlbWVudGVkLg== readmeEtag: '"0c1057831bb5620d6168385ada5a00d0b2570a31"' readmeLastModified: Sun, 03 Apr 2022 14:51:31 GMT repositoryId: 313789033 description: OpenAPI 3.0 Support for the Bottle Web Framework created: '2020-11-18T01:27:57Z' updated: '2023-10-25T10:49:15Z' language: Python archived: false stars: 3 watchers: 3 forks: 3 owner: cope-systems logo: https://avatars.githubusercontent.com/u/50466330?v=4 license: MIT repoEtag: '"d8de43250a7639b5c1a72ae0393f1a1e8b07b7cf6dc544c1ac8980e97b61c37c"' repoLastModified: Wed, 25 Oct 2023 10:49:15 GMT category: Parsers foundInMaster: true id: db2d64670d722bc3675c6b471ee74aa1 - source: openapi3 tags repository: https://github.com/enorganic/oapi v3: true id: 7c7acc9e926f31e4935a1e03abcc82ec repositoryMetadata: base64Readme: >- IyBvYXBpCgpbIVt0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vZW5vcmdhbmljL29hcGkvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2Vub3JnYW5pYy9vYXBpL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3QueW1sKQpbIVtkaXN0cmlidXRlXShodHRwczovL2dpdGh1Yi5jb20vZW5vcmdhbmljL29hcGkvYWN0aW9ucy93b3JrZmxvd3MvZGlzdHJpYnV0ZS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2Vub3JnYW5pYy9vYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2Rpc3RyaWJ1dGUueW1sKQoKYG9hcGlgIGlzIGEgbGlicmFyeSBhbmQgQ0xJIGZvciBhdXRob3JpbmcgcHl0aG9uIGRhdGEgbW9kZWxzIChmb3IgY2xpZW50cwoqb3IqIHNlcnZlcnMpLCBhbmQvb3IgY2xpZW50IGxpYnJhcmllcywgZm9yIHdlYiBBUElzLCBiYXNlZCBvbiBhbgpPcGVuQVBJIHNwZWNpZmljYXRpb24gKGJvdGggT3BlbkFQSS9Td2FnZ2VyIFt2ZXJzaW9uIDJdKGh0dHBzOi8vYml0Lmx5LzM2Vm5lRFUpCmFuZCBbdmVyc2lvbiAzXShodHRwczovL2JpdC5seS8zT0hHUlFWKSBhcmUgc3VwcG9ydGVkKS4KCmBvYXBpYC1nZW5lcmF0ZWQgcGFja2FnZXMvbW9kdWxlcyBkaWZmZXIgZnJvbSB0aG9zZSBnZW5lcmF0ZWQgYnkgb3RoZXIgdG9vbHMKKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KW3N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikpIGluIHRoYXQKYG9hcGlgIGdlbmVyYXRlcyBhIGRhdGEgbW9kZWwgd2hpY2ggZW5mb3JjZXMgdGhlIHNjaGVtYXMgZGVmaW5lZAppbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLiBUaGlzIG1lYW5zIHRoYXQgcmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0cwpjYW5ub3QgY29tcHJpc2UgZGF0YSB0eXBlcyB3aGljaCBkaWZmZXIgZnJvbSB0aG9zZSBzcGVjaWZpZWQgaW4gdGhlIHNwZWMsCmFuZCBvYmplY3RzIGNhbm5vdCBoYXZlIHByb3BlcnRpZXMgd2hpY2ggYXJlIG5vdCBkZWZpbmVkLiBJZiBhbiBBUEkKd2lsbCBhZGQgcHJvcGVydGllcyB0byBhbiBvYmplY3Qgd2hpY2ggYXJlIG5vdCBleHBsaWNpdGx5IGRlZmluZWQKaW4gdGhlIHNjaGVtYSBwcm9wZXJ0aWVzLCB0aGF0IG9iamVjdCBzaG91bGQgaGF2ZSBhbgpbImFkZGl0aW9uYWxQcm9wZXJ0aWVzIl0oaHR0cHM6Ly9iaXQubHkvM0x1VWx4bSkgYXR0cmlidXRlLCBpbiB3aGljaApjYXNlIGBvYXBpYCB3aWxsIHRyZWF0IHRoZXNlIG9iamVjdHMgYXMgZGljdGlvbmFyaWVzL21hcHBpbmdzLiBgb2FwaWAgYWxzbwpmdWxseSBzdXBwb3J0cyBwb2x5bW9ycGhpc20gd2hlbiBhIHNjaGVtYSBoYXMgYW4gImFueU9mIiwgImFsbE9mIiwgb3IKIm9uZU9mIiBhdHRyaWJ1dGUgKGFsdGhvdWdoIGBvYXBpYCBkb2VzIG5vdCAqcmVxdWlyZSogYQpbZGlzY3JpbWluYXRvcl0oaHR0cHM6Ly9iaXQubHkvM3ZQdk1FVykgdG8gYmUgZGVmaW5lZCkuIFRoaXMgZGVzaWduIGRlY2lzaW9uCmNvdWxkIHByb3ZlIHRvIGJlIGFuIGFubm95YW5jZSB0byBsYXp5IGRldmVsb3BlcnMgb2YgY2xpZW50IGFwcGxpY2F0aW9ucywgc2luY2UKaW5hY2N1cmF0ZSBPcGVuQVBJIHNjaGVtYXMgYXJlIGVuZGVtaWMgdG8gbWFueSBvcmdhbml6YXRpb25zLiBUaGUgYXV0aG9yCm9mIHRoaXMgbGlicmFyeSwgaG93ZXZlciwgYXNzZXJ0cyB0aGF0IGVuZC10by1lbmQgZGF0YSB2YWxpZGF0aW9uIGlzCmFic29sdXRlbHkgZXNzZW50aWFsIGZvciBhcHBsaWNhdGlvbnMgd2hpY2ggYXJlIHBhcnQgb2YgYSBjcml0aWNhbCBkYXRhCnBpcGVsaW5lLiBUaGUgYXV0aG9yIG9mIHRoaXMgbGlicmFyeSBpcyBhbHNvIG9mIHRoZSBvcGluaW9uIHRoYXQgd2hlbgplbmNvdW50ZXJpbmcgaW5hY2N1cmF0ZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zLCB5b3Ugc2hvdWxkIGZpeCB0aGUgc3BlYywgYW5kCmlmIHlvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGUgc3BlYyAoYW5kIGNhbid0IGNvbnZpbmNlIHRoZSBvd25lciB0byBmaXggaXQpLAp5b3Ugc2hvdWxkIHNjcmlwdCB5b3VyIGZpeCBpbiBvcmRlciB0byBhcHBseSB0aGF0IHNhbWUgZml4IHRvIGZ1dHVyZSB2ZXJzaW9ucwpvZiB0aGUgc3BlY2lmaWNhdGlvbi4KCk5vdGFibGUgZmVhdHVyZXMgb2YgYW4gYG9hcGlgIGdlbmVyYXRlZCBjbGllbnQvbW9kZWwgbGlicmFyeSBpbmNsdWRlOgoKLSBgb2FwaWAgZ2VuZXJhdGVkIGRhdGEgbW9kZWxzIGFuZCBjbGllbnRzIGFyZSBmdWxseSB0eXBlLWhpbnRlZCAodGhleQogICB3aWxsIHBhc3MgaW5zcGVjdGlvbiBieSBgbXlweWApLgotIGBvYXBpYCBnZW5lcmF0ZWQgZGF0YSBtb2RlbHMgYW5kIGNsaWVudHMgYWRoZXJlIHRvIFBFUC04IGZvcm1hdHRpbmcKICBzdGFuZGFyZHMsIGFuZCB3aWxsIHBhc3MgaW5zcGVjdGlvbiBieSBgZmxha2U4YCAod2l0aCB0aGUgZGVmYXVsdCBvcHRpb25zKS4KLSBgb2FwaWAgZ2VuZXJhdGVkIGRhdGEgbW9kZWxzIGFuZCBjbGllbnRzIGluY2x1ZGUgZG9jc3RyaW5ncyBmb3IgYWxsIG1vZGVscywKICBtb2RlbCBwcm9wZXJ0aWVzLCBjbGllbnQgbWV0aG9kcywgYW5kIGNsaWVudCBtZXRob2QgcGFyYW1ldGVycywgaW5mZXJyZWQKICBmcm9tICJkZXNjcmlwdGlvbiIgYW5kICJzdW1tYXJ5IiBhdHRyaWJ1dGVzIG9mIGVsZW1lbnRzIHdpdGhpbiB0aGUKICBzcGVjaWZpY2F0aW9uLgotIGBvYXBpYCBnZW5lcmF0ZWQgY2xpZW50cyB3aWxsIGhhbmRsZSB0aGUgbW9zdCBjb21tb24gc2VydmVyLXRvLXNlcnZlcgogIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgb3V0LW9mLWJveCwgaW5jbHVkaW5nIHRoZSBPQXV0aDIgYXV0aG9yaXphdGlvbgogIGNvZGUgZmxvdyAoY2xpZW50X2lkL2NsaWVudF9zZWNyZXQpLCBBUEkga2V5cywgYmVhcmVyIHRva2VucywgSFRUUCBiYXNpYwogIGF1dGgsIGFuZCBtb3N0IGNvb2tpZS1iYXNlZCBhdXRoZW50aWNhdGlvbiBwYXR0ZXJucy4gQ3VzdG9tIGF1dGhlbnRpY2F0aW9uIAogIG1ldGhvZHMgYXJlIGFsc28gZWFzaWx5IGFjY29tcGxpc2hlZCBieSBzcGVjaWZ5aW5nIGN1c3RvbSBiYXNlIGNsYXNzZXMKICBhbmQvb3IgcGFzc2luZyBpbml0aWFsaXphdGlvbiBkZWNvcmF0b3JzIHRvIHRoZSBgb2FwaSBjbGllbnRgIHNoZWxsCiAgY29tbWFuZCBvciB0byB0aGUgYG9hcGkuY2xpZW50LmNyZWF0ZSgpYCBmdW5jdGlvbi4KLSBgb2FwaWAgZ2VuZXJhdGVkIGNsaWVudHMgYW5kIG1vZGVscyBhcmUgZWFzaWx5IHVwZGF0ZWQuIEZvciBpbnN0YW5jZTogYG9hcGlgCiAgZ2VuZXJhdGVkIGRhdGEgbW9kZWwgY2xhc3NlcyBjYW4gYmUgcmVuYW1lZCB1c2luZyB5b3VyIGZhdm9yaXRlIElERSdzCiAgcmVmYWN0b3JpbmcgdG9vbHMsIGFuZCBzdWJzZXF1ZW50IHVwZGF0ZXMgdG8gdGhhdCBkYXRhIG1vZGVsIChzdWNoIGFzCiAgdG8gcmVmbGVjdCBtaW5vci12ZXJzaW9uIHVwZGF0ZXMgdG8gdGhlIHNwZWMgd2hpY2ggYWRkIGVuZHBvaW50cywgc2NoZW1hcywKICBwYXJhbWV0ZXJzLCBldGMuKSB3aWxsIHJldGFpbiB5b3VyIG5ldyBjbGFzcyBuYW1lcywgc28gbG9uZyBhcyB0aGUKICBzY2hlbWEgZnJvbSB3aGljaCB0aGUgY2xhc3Mgd2FzIGdlbmVyYXRlZCByZW1haW5zIGluIHRoZSBzYW1lIGxvY2F0aW9uCiAgd2l0aGluIHRoZSBzcGVjLiBDbGFzcyBuYW1pbmcgY2FuIGFsc28gYmUgY3VzdG9taXplZCBieSBwYXNzaW5nIGEgY3VzdG9tCiAgaG9vayB0byB0aGUgKmdldF9jbGFzc19uYW1lX2Zyb21fcG9pbnRlciogcGFyYW1ldGVyIGZvcgogIGBvYXBpLm1vZGVsLk1vZHVsZWAgb3IgYG9hcGkubW9kZWwuY3JlYXRlYC4KClRPRE86IEZpbmlzaCBSRUFETUUubWQK readmeEtag: '"2fa72d5babd6a5ad0723055e898820a39b9b6510"' readmeLastModified: Fri, 12 Jul 2024 16:22:12 GMT repositoryId: 190461316 description: >- A tool for creating type-validated client libraries from an OpenAPI document. created: '2019-06-05T20:09:55Z' updated: '2024-07-31T11:29:12Z' language: Python archived: false stars: 3 watchers: 1 forks: 2 owner: enorganic logo: https://avatars.githubusercontent.com/u/91716117?v=4 license: MIT repoEtag: '"dc5a2f8abcd4dddc57adf87788a3cfd1628006759ad8359a3fec02d641db5528"' repoLastModified: Wed, 31 Jul 2024 11:29:12 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/smallstep/smallstep-python v3: true id: d1bf3e75463bc83b0728b0f6a92967ca repositoryMetadata: base64Readme: >- IyBzbWFsbHN0ZXAtcHl0aG9uCgpzbWFsbHN0ZXAtcHl0aG9uIGlzIGEgUHl0aG9uIGxpYnJhcnkgYXQgYWxsb3dzIHlvdSB0byBpbnRlcmZhY2Ugd2l0aCB0aGUgU21hbGxzdGVwIEFQSS4KCldlIHVzZSBbb3BlbmFwaS1weXRob24tY2xpZW50XShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1nZW5lcmF0b3JzL29wZW5hcGktcHl0aG9uLWNsaWVudCkgdG8gZ2VuZXJhdGUgYSBsb3cgbGV2ZWwgUHl0aG9uIGNsaWVudCB0aGF0IGlzIGxvY2F0ZWQgaW4gYHNtYWxsc3RlcC9hcGlfY2xpZW50L2AuIFNlZSB0aGUgYHNtYWxsc3RlcC9SRUFETUUubWRgIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoaXMgZ2VuZXJhdGVkIGxpYnJhcnkuIFdlIGJ1aWx0IGEgd3JhcHBlciBsaWJyYXJ5IG9uIHRvcCBvZiBgc21hbGxzdGVwL2FwaV9jbGllbnRgIHRoYXQgaXMgbG9jYXRlZCBpbiBgYXBpLnB5YC4gVGhpcyBhZGRzIGEgaGFuZGZ1bCBvZiBoZWxwZXIgZmVhdHVyZXMuIEF0IHRoaXMgdGltZSBgc21hbGxzdGVwL2FwaS5weWAgb25seSBzdXBwb3J0cyBhIGZldyBBUEkgZW5kcG9pbnRzLiBTZWUgYHNtYWxsc3RlcC9hcGkucHlgIGZvciBkZXRhaWxzLgoKIyMgUmVxdWlyZW1lbnRzCgoqIFB5dGhvbiAzLjkKKiBbU21hbGxzdGVwIEFjY291bnRdKGh0dHBzOi8vc21hbGxzdGVwLmNvbS9zaWdudXApCiogQSB2ZXJ5IHN0cm9uZyBkZXNpcmUgdG8gYWxsb3cgYSBjdXRlIHNuYWtlIHRvIG1hbmFnZSB5b3VyIFNtYWxsc3RlcCBhY2NvdW50Cgo8aW1nIHNyYz0vaW1hZ2VzL3NtYWxsc3RlcC1zbmVrLnBuZyBhbHQ9IkEgY3V0ZSBzbmFrZSB0byBtYW5hZ2UgU21hbGxzdGVwIiB3aWR0aD0yNTA+CgojIyBJbnN0YWxsYXRpb24KCldlIHB1Ymxpc2ggdGhpcyBwYWNrYWdlIHRvIDxodHRwczovL3B5cGkub3JnL3Byb2plY3Qvc21hbGxzdGVwLXB5dGhvbi8+IGFuZCBpdCBjYW4gYmUgaW5zdGFsbGVkIHZpYSBwaXAuCgpgYGBiYXNoCnBpcCBpbnN0YWxsIHNtYWxsc3RlcC1weXRob24KYGBgCgojIyBEZXZlbG9wbWVudAoKIyMjIENvbmZpZ3VyYXRpb24KCkNyZWF0ZSBhIGAuZW52YCBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgYW5kIGFkZCB0aGUgZm9sbG93aW5nIGxpbmVzOgoKYGBgYmFzaAojIE5vdCBuZWVkZWQgdW5sZXNzIHlvdSBhcmUgdXNpbmcgb3VyIHJ1biBhbnl3aGVyZSBvZmZlcmluZwojIFNNQUxMU1RFUF9BUElfSE9TVD0iaHR0cHM6Ly9nYXRld2F5LnNtYWxsc3RlcC5jb20vYXBpIgpTTUFMTFNURVBfQVBJX1RPS0VOPSJ5b3VyX3NtYWxsc3RlcF9hcGlfdG9rZW4iCmBgYAoKQWRqdXN0IHRoZW0gdG8geW91ciBuZWVkcy4gU2VlIGBjb25maWcucHlgIGZvciBjb25maWd1cmF0aW9uIGRldGFpbHMuIFdlIHVzZSBbUHlkYW50aWMgU2V0dGluZ3NdKGh0dHBzOi8vZG9jcy5weWRhbnRpYy5kZXYvbGF0ZXN0L2NvbmNlcHRzL3B5ZGFudGljX3NldHRpbmdzLykgZm9yIGVhc3kgc2V0dGluZ3MgbWFuYWdlbWVudC4gQmVsb3cgaXMgdGhlIG9yZGVyIG9mIHByZWNlZGVuY2UgZm9yIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3M6CgoxLiBBcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBTZXR0aW5ncyBjbGFzcyBpbml0aWFsaXNlci4KMS4gRW52aXJvbm1lbnQgdmFyaWFibGVzLCBlLmcuIFNNQUxMU1RFUF9NWV9DT05GSUdfU0VUVElORyBhcyBkZXNjcmliZWQgYWJvdmUuCjEuIFZhcmlhYmxlcyBsb2FkZWQgZnJvbSBhIGRvdGVudiAoLmVudikgZmlsZS4KMS4gVmFyaWFibGVzIGxvYWRlZCBmcm9tIHRoZSBzZWNyZXRzIGRpcmVjdG9yeS4KMS4gVGhlIGRlZmF1bHQgZmllbGQgdmFsdWVzIGZvciB0aGUgU2V0dGluZ3MgbW9kZWwuCgpTZWUgdGhlIFB5ZGFudGljIFNldHRpbmdzIFtmaWVsZCB2YWx1ZSBwcmlvcml0eV0oaHR0cHM6Ly9kb2NzLnB5ZGFudGljLmRldi9sYXRlc3QvY29uY2VwdHMvcHlkYW50aWNfc2V0dGluZ3MvI2ZpZWxkLXZhbHVlLXByaW9yaXR5KSBzZWN0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMgV2l0aCBQb2V0cnkKCkluc3RhbGwgUG9ldHJ5IG9uIHlvdXIgc3lzdGVtIHdpdGggW3RoaXNdKGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvZG9jcy8jaW5zdGFsbGF0aW9uKS4KClJ1biB0aGlzIGZyb20gdGhlIHJlcG8gZGlyZWN0b3J5OgoKYGBgYmFzaApwb2V0cnkgaW5zdGFsbApgYGAKCkVudGVyIHRoZSBQb2V0cnkgc2hlbGwgd2l0aCB0aGlzOgoKYGBgYmFzaApwb2V0cnkgc2hlbGwKcHJlLWNvbW1pdCBpbnN0YWxsCmBgYAoKIyMjIFdpdGggdmVudgoKYGBgYmFzaApleHBvcnQgVklSVFVBTF9FTlY9JHtQV0R9Ly52ZW52CnB5dGhvbjMgLW0gdmVudiAkVklSVFVBTF9FTlYKZXhwb3J0IFBBVEg9IiRWSVJUVUFMX0VOVi9iaW46JFBBVEgiCnBpcCBpbnN0YWxsIHdoZWVsCnBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKLiAudmVudi9iaW4vYWN0aXZhdGUKcHJlLWNvbW1pdCBpbnN0YWxsCmBgYAoKIyMjIEFkZGluZyBwYWNrYWdlcwoKQWRkIHBhY2thZ2VzIHRvIFBvZXRyeSBhbmQgdGhlbiBydW4gcHJlLWNvbW1pdCB3aGljaCB3aWxsIGdlbmVyYXRlIGEgcmVxdWlyZW1lbnRzLnR4dCBmaWxlIGZvciB5b3UuCgpEZXZlbG9wbWVudDoKCmBgYGJhc2gKcG9ldHJ5IGFkZCAtLWdyb3VwPWRldiByaWNoCnByZS1jb21taXQKYGBgCgpQcm9kdWN0aW9uOgoKYGBgYmFzaApwb2V0cnkgYWRkIHJpY2gKcHJlLWNvbW1pdApgYGAKCiMjIExpY2Vuc2UKCltBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMF0oaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQoKQ29weXJpZ2h0IDIwMjMgU21hbGxzdGVwIExhYnMgSW5jLgo= readmeEtag: '"7b500e4c94187ccba1cbc2ea3bd3571ca40a3111"' readmeLastModified: Wed, 14 Aug 2024 18:10:28 GMT repositoryId: 703177207 description: 'A Python client library for the Smallstep API ' created: '2023-10-10T18:33:22Z' updated: '2024-08-26T15:06:58Z' language: Python archived: false stars: 3 watchers: 8 forks: 1 owner: smallstep logo: https://avatars.githubusercontent.com/u/23183426?v=4 license: Apache-2.0 repoEtag: '"5e75332d2af262cde390189ea9b37737943e6b811c5a71cc9be28c713d1f85e9"' repoLastModified: Mon, 26 Aug 2024 15:06:58 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/postman-solutions-eng/aippealing-companies-template v3: true id: dc22dd446e2db39aefb9053184a362f0 repositoryMetadata: base64Readme: >- IyBBKGkpcHBlYWxpbmcgQ29tcGFuaWVzIDpvZmZpY2U6IDphcnJvd19yaWdodDogOnJvYm90OiA6YXJyb3dfcmlnaHQ6IDpjaG9jb2xhdGVfYmFyOiA6Y2FyOiA6ZnJhbWVkX3BpY3R1cmU6IAoKW0FQSV0oaHR0cHM6Ly9hdXRvLWRlbW8ucG9zdG1hbnNvbHV0aW9ucy5jb20pIHRvIGNyZWF0ZSBhcHBlYWxpbmcgaW1hZ2VzIG9mIGNvbXBhbnkgcHJvZHVjdHMgbWFkZSBvZiBjaG9jb2xhdGUsIGdvbGQgb3IgbGVnby4KUmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIE9wZW5BSSAoREFMTC1FLCBHUFQtMykuCgpbIVtSdW4gaW4gUG9zdG1hbl0oaHR0cHM6Ly9ydW4ucHN0bW4uaW8vYnV0dG9uLnN2ZyldKGh0dHBzOi8vYXBwLmdldHBvc3RtYW4uY29tL3J1bi1jb2xsZWN0aW9uLzI0NDgzNzMzLWNjODA2ZDNhLTc1YmYtNDAyNS1iZmIxLWIzOTliMTBiYTAzZD9hY3Rpb249Y29sbGVjdGlvbiUyRmZvcmsmY29sbGVjdGlvbi11cmw9ZW50aXR5SWQlM0QyNDQ4MzczMy1jYzgwNmQzYS03NWJmLTQwMjUtYmZiMS1iMzk5YjEwYmEwM2QlMjZlbnRpdHlUeXBlJTNEY29sbGVjdGlvbiUyNndvcmtzcGFjZUlkJTNEMjEwZTc2MTUtZjY5Zi00MzIyLWE4N2YtMWQ4MTM1ZmUwNWJkIz9lbnYlNUJQdWJsaWNNb2NrJTVEPVczc2lhMlY1SWpvaVltRnpaVlZ5YkNJc0luWmhiSFZsSWpvaWFIUjBjSE02THk5bFlqSXdNbVJrWWkxa01UTm1MVFJpWmpjdFltRmpZUzFoWVdWaE1tRTNOV0V3TTJFdWJXOWpheTV3YzNSdGJpNXBieUlzSW1WdVlXSnNaV1FpT25SeWRXVXNJblI1Y0dVaU9pSmtaV1poZFd4MElpd2ljMlZ6YzJsdmJsWmhiSFZsSWpvaWFIUjBjSE02THk5bFlqSXdNbVJrWWkxa01UTm1MVFJpWmpjdFltRmpZUzFoWVdWaE1tRTNOV0V3TTJFdWJXOWpheTV3YzNSdGJpNXBieUlzSW5ObGMzTnBiMjVKYm1SbGVDSTZNSDBzZXlKclpYa2lPaUpQY0dWdVFVbFViMnRsYmlJc0luWmhiSFZsSWpvaVBIbHZkU0JrYjI0bmRDQnVaV1ZrSUdGdWVTQnlaV0ZzSUhSdmEyVnVJR1p2Y2lCMGFHVWdiVzlqYXlCelpYSjJaWEkrSWl3aVpXNWhZbXhsWkNJNmRISjFaU3dpZEhsd1pTSTZJbk5sWTNKbGRDSXNJbk5sYzNOcGIyNVdZV3gxWlNJNkltMXZZMnN0ZEc5clpXNGlMQ0p6WlhOemFXOXVTVzVrWlhnaU9qRjlYUT09KQoKWyFbUG9zdG1hbiBHb3Zlcm5hbmNlIGNoZWNrcyBvbiBicmFuY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9qb25pY28vYWlwcGVhbGluZy1jb21wYW5pZXMtaW1wbC1vcGVuYWkvYWN0aW9ucy93b3JrZmxvd3MvZ292ZXJuYW5jZS1jaGVja3MtYnJhbmNoLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vam9uaWNvL2FpcHBlYWxpbmctY29tcGFuaWVzLWltcGwtb3BlbmFpL2FjdGlvbnMvd29ya2Zsb3dzL2dvdmVybmFuY2UtY2hlY2tzLWJyYW5jaC55bWwpCgpbIVtJbnRlZ3JhdGlvbiBUZXN0cyBQcm9kdWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vam9uaWNvL2FpcHBlYWxpbmctY29tcGFuaWVzLWltcGwtb3BlbmFpL2FjdGlvbnMvd29ya2Zsb3dzL2ludGVncmF0aW9uLXRlc3RzLXByb2R1Y3Rpb24ueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9qb25pY28vYWlwcGVhbGluZy1jb21wYW5pZXMtaW1wbC1vcGVuYWkvYWN0aW9ucy93b3JrZmxvd3MvaW50ZWdyYXRpb24tdGVzdHMtcHJvZHVjdGlvbi55bWwpCgoKCiMjIE1vdGl2YXRpb24KClRoZXJlIGFyZSBzb21lIGFtYXppbmcsIHZpc3VhbGx5IGFwcGVhbGluZyBjb21wYW55IHByb2R1Y3RzIG1hZGUgb2YgY2hvY29sYXRlIG9yIGxlZ28KCjxpbWcgd2lkdGg9IjE5NyIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xODcyMzE0LzIwODMyMDk3Ny0wNmUxOGQyNy00OTM4LTRiZTMtYWI5ZC04YjJmZmMyYzg1ZTEucG5nIj4gPGltZyB3aWR0aD0iMjM5IiBhbHQ9ImltYWdlIiBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzE4NzIzMTQvMjA4MzIxMDU0LTEzMGFmYmFhLWY3ZGItNDUzZS04ZGIxLTExNGViY2U5N2Y0ZS5wbmciPjxpbWcgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xODcyMzE0LzIxMzk0MzQ3NS1hNzRjMWI0Ny0yMGJjLTQ3NjEtOGQ3My01ZTRkMDUyZmVmYzMucG5nIiBhbHQ9IlNvY2NlciUyMFN0YWRpdW0lMjBtYWRlJTIwb2YlMjBMZWdvIiB3aWR0aD0iMzUwIj4KCkluc3BpcmVkIGJ5IHRoZSBpbWFnZSBhbmQgdGV4dCBnZW5lcmF0aW9uIGNhcGFiaWxpdGllcyBvZiBbT3BlbkFJXShodHRwczovL3d3dy5wb3N0bWFuLmNvbS9kZXZyZWwvd29ya3NwYWNlL29wZW5haS9kb2N1bWVudGF0aW9uLzEzMTgzNDY0LTkwYWJiNzk4LWNiODUtNDNjYi1iYTNhLWFlNzk0MWU5NjhkYSksIHRoaXMgQVBJIGdlbmVyYXRlcyBpbWFnZXMgb2YgdGhlIHByb2R1Y3RzLCBjb21wYW5pZXMgYXJlIG1vc3Qga25vd24gZm9yLCBhbmQgdHVybnMgdGhlbSBpbnRvIGdvbGQsIGNob2NvbGF0ZSwgbGVnbyBvciBhbnkgb3RoZXIgbWF0ZXJpYWwuCgojIyMjIFZvbGtzd2FnZW4gLyBQb3JzY2hlCgo8aW1nIHdpZHRoPSIyMDAiIGFsdD0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTg3MjMxNC8yMDgzMjExMzctMGFiM2NkYjktYTJkMi00N2FkLTlmOWUtMTcyMTg4YTg0OGQ1LnBuZyI+IDxpbWcgd2lkdGg9IjIwMCIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xODcyMzE0LzIwODMyMTIwOS05YTgyZTJiNS00N2FhLTRkOWQtYTI2Ny0xNjU5ZTI5NjRiMGIucG5nIj4KCgojIyMjIEFsbGlhbnoKCjxpbWcgd2lkdGg9IjIwMCIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xODcyMzE0LzIwODMyMTIzMy0xMTdiYTgyYi0xYzNiLTRiYWItODYwYS0zZmM5NGI5ZGY0MDcucG5nIj4gPGltZyB3aWR0aD0iMjAwIiBhbHQ9ImltYWdlIiBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzE4NzIzMTQvMjA4MzIxNDY5LTlhM2QyYzBhLWNlZDAtNDU2OC1iNjFlLTQ1ZjVlNDZmNDUyNC5wbmciPgoKCiMjIyBNZXJjZWRlcy1CZW56Cgo8aW1nIHdpZHRoPSIyMDAiIGFsdD0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTg3MjMxNC8yMDgzMjEzNzUtMTlkOTE5OGEtODU4ZC00ZmM5LWI5NWMtNmEzMWZlNTgwOTZhLnBuZyI+IDxpbWcgd2lkdGg9IjIwMCIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xODcyMzE0LzIwODMyMTQxMy04MDZkMmFmYy1kM2ZiLTQ2NjAtOTI5OS03Y2E4NmJlOTBlMmYucG5nIj4KCiMjIFRyeWluZyBpdCBvdXQgOm9mZmljZTogOmFycm93X3JpZ2h0OiA6cm9ib3Q6IDphcnJvd19yaWdodDogOmNob2NvbGF0ZV9iYXI6IDpjYXI6IDpmcmFtZWRfcGljdHVyZTogIDp0YWRhOiAKCkZvbGxvdyB0aGUgW2dlbmVyYXRlZCBBUEkgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hdXRvLWRlbW8ucG9zdG1hbnNvbHV0aW9ucy5jb20pIGFuZCBjbGljayB0aGUgIlJ1biBpbiBQb3N0bWFuIiBidXR0b24KCjxpbWcgd2lkdGg9IjEyOTAiIGFsdD0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTg3MjMxNC8yMDg0MDc2MzQtYzBhNDgzODctNTZjYy00NGYxLTljMTYtNTkwNDFhMzJlOTAzLnBuZyI+CgojIE9wZW5BUEkgR2VuZXJhdGVkIEphdmFTY3JpcHQvRXhwcmVzcyBTZXJ2ZXIKCiMjIE92ZXJ2aWV3ClRoaXMgc2VydmVyIHdhcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSBwcm9qZWN0LiAgVGhlIGNvZGUgZ2VuZXJhdG9yLCBhbmQgaXQncyBnZW5lcmF0ZWQgY29kZSBhbGxvd3MgeW91IHRvIGRldmVsb3AgeW91ciBzeXN0ZW0gd2l0aCBhbiBBUEktRmlyc3QgYXR0aXR1ZGUsIHdoZXJlIHRoZSBBUEkgY29udHJhY3QgaXMgdGhlIGFuY2hvciBhbmQgZGVmaW5lciBvZiB5b3VyIHByb2plY3QsIGFuZCB5b3VyIGNvZGUgYW5kIGJ1c2luZXNzLWxvZ2ljIGFpbXMgdG8gY29tcGxldGUgYW5kIGNvbXBseSB0byB0aGUgdGVybXMgaW4gdGhlIEFQSSBjb250cmFjdC4KCiMjIyBwcmVyZXF1aXNpdGVzCi0gTm9kZUpTID49IDEwLjYKLSBOUE0gPj0gNi4xMC4wCgpUaGUgY29kZSB3YXMgd3JpdHRlbiBvbiBhIG1hYywgc28gYXNzdW1pbmcgYWxsIHNob3VsZCB3b3JrIHNtb290aGx5IG9uIExpbnV4LWJhc2VkIGNvbXB1dGVycy4gSG93ZXZlciwgdGhlcmUgaXMgbm8gcmVhc29uIG5vdCB0byBydW4gdGhpcyBsaWJyYXJ5IG9uIFdpbmRvd3MtYmFzZWQgbWFjaGluZXMuIElmIHlvdSBmaW5kIGFuIE9TLXJlbGF0ZWQgcHJvYmxlbSwgcGxlYXNlIG9wZW4gYW4gaXNzdWUgYW5kIGl0IHdpbGwgYmUgcmVzb2x2ZWQuCgojIyMgUnVubmluZyB0aGUgc2VydmVyCiMjIyMgVGhpcyBpcyBhIGxvbmcgcmVhZCwgYnV0IHRoZXJlJ3MgYSBsb3QgdG8gdW5kZXJzdGFuZC4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gZ28gdGhyb3VnaCB0aGlzLgoxLiBVc2UgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIHlvdXIgYXBwbGljYXRpb246CkFzc3VtaW5nIHlvdSBoYXZlIEphdmEgKDEuOCspLCBhbmQgW2hhdmUgdGhlIGphcl0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvciMxMy0tLWRvd25sb2FkLWphcikgdG8gZ2VuZXJhdGUgdGhlIGFwcGxpY2F0aW9uLCBydW46CmBgYGphdmEgLWphciB7cGF0aF90b19qYXJfZmlsZX0gZ2VuZXJhdGUgLWcgbm9kZWpzLWV4cHJlc3Mtc2VydmVyIC1pIHtvcGVuYXBpIHlhbWwvanNvbiBmaWxlfSAtbyB7dGFyZ2V0X2RpcmVjdG9yeV93aGVyZV90aGVfYXBwX3dpbGxfYmVfaW5zdGFsbGVkfSBgYGAKSWYgeW91IGRvIG5vdCBoYXZlIHRoZSBqYXIsIG9yIGRvIG5vdCB3YW50IHRvIHJ1biBKYXZhIGZyb20geW91ciBsb2NhbCBtYWNoaW5lLCBmb2xsb3cgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBbT3BlbkFQSVRvb2xzIHBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpLiBZb3UgY2FuIHJ1biB0aGUgc2NyaXB0IG9ubGluZSwgb24gZG9ja2VyLCBhbmQgdmFyaW91cyBvdGhlciB3YXlzLgoyLiBHbyB0byB0aGUgZ2VuZXJhdGVkIGRpcmVjdG9yeSB5b3UgZGVmaW5lZC4gVGhlcmUncyBhIGZ1bGx5IHdvcmtpbmcgTm9kZUpTLUV4cHJlc3NKcyBzZXJ2ZXIgd2FpdGluZyBmb3IgeW91LiBUaGlzIGlzIGltcG9ydGFudCAtIHRoZSBjb2RlIGlzIHlvdXJzIHRvIGNoYW5nZSBhbmQgdXBkYXRlISBMb29rIGF0IGNvbmZpZy5qcyBhbmQgc2VlIHRoYXQgdGhlIHNldHRpbmdzIHRoZXJlIGFyZSBvayB3aXRoIHlvdSAtIHRoZSBzZXJ2ZXIgd2lsbCBydW4gb24gcG9ydCAzMDAwLCBhbmQgZmlsZXMgd2lsbCBiZSB1cGxvYWRlZCB0byBhIG5ldyBkaXJlY3RvcnkgJ3VwbG9hZGVkX2ZpbGVzJy4KMy4gVGhlIHNlcnZlciB3aWxsIGJhc2UgaXRzZWxmIG9uIGFuIG9wZW5hcGkueWFtbCBmaWxlIHdoaWNoIGlzIGxvY2F0ZWQgdW5kZXIgL2FwaS9vcGVuYXBpLnlhbWwuIFRoaXMgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUgZmlsZSB0aGF0IHlvdSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBhcHA6CkkuICBJZiB5b3UgaGF2ZSBgYXBwbGljYXRpb24vanNvbmAgY29udGVudEJvZHkgdGhhdCB3YXMgZGVmaW5lZCBpbnNpZGUgdGhlIHBhdGggb2JqZWN0IC0gdGhlIGdlbmVyYXRlIHdpbGwgaGF2ZSBtb3ZlZCBpdCB0byB0aGUgY29tcG9uZW50cy9zY2hlbWFzIHNlY3Rpb24gb2YgdGhlIG9wZW5hcGkgZG9jdW1lbnQuCklJLiBFdmVyeSBwcm9jZXNzIGhhcyBhIG5ldyBlbGVtZW50IGFkZGVkIHRvIGl0IC0gYHgtZW92LW9wZXJhdGlvbi1oYW5kbGVyOiBjb250cm9sbGVycy9QZXRDb250cm9sbGVyYCB3aGljaCBkaXJlY3RzIHRoZSBjYWxsIHRvIHRoYXQgZmlsZS4KSUlJLiBXZSBoYXZlIGEgSmF2YSBhcHBsaWNhdGlvbiB0aGF0IHRyYW5zbGF0ZXMgdGhlIG9wZXJhdGlvbklkIHRvIGEgbWV0aG9kLCBhbmQgYSBub2RlSlMgc2NyaXB0IHRoYXQgZG9lcyB0aGUgc2FtZSBwcm9jZXNzIHRvIGNhbGwgdGhhdCBtZXRob2QuIEJvdGggYXJlIGNvbnZlcnRpbmcgdGhlIG1ldGhvZCB0byBgY2FtZWxDYXNlYCwgYnV0IG1pZ2h0IGhhdmUgZGlzY3JlcGFuY3kuIFBsZWFzZSBwYXkgYXR0ZW50aW9uIHRvIHRoZSBvcGVyYXRpb25JRCBuYW1lcywgYW5kIHNlZSB0aGF0IHRoZXkgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBgY29udHJvbGxlcnNgIGFuZCBgc2VydmljZXNgIGRpcmVjdG9yaWVzLgo0LiBUYWtlIHRoZSB0aW1lIHRvIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYXBwbGljYXRpb24uIFRoZXJlIG1pZ2h0IGJlIGJ1Z3MsIGFuZCB0aGVyZSBtaWdodCBiZSBzZXR0aW5ncyBhbmQgYnVzaW5lc3MtbG9naWMgdGhhdCBkb2VzIG5vdCBtZWV0IHlvdXIgZXhwZWN0YXRpb24uIEluc3RlYWQgb2YgZHVtcGluZyB0aGlzIHNvbHV0aW9uIGFuZCBsb29raW5nIGZvciBzb21ldGhpbmcgZWxzZSAtIHNlZSBpZiB5b3UgY2FuIG1ha2UgdGhlIGdlbmVyYXRlZCBjb2RlIHdvcmsgZm9yIHlvdS4KVG8ga2VlcCB0aGUgZXhwbGFuYXRpb24gc2hvcnQgKGEgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiB3aWxsIGZvbGxvdyk6IEFwcGxpY2F0aW9uIHN0YXJ0cyB3aXRoIGEgY2FsbCB0byBpbmRleC5qcyAodGhpcyBpcyB3aGVyZSB5b3Ugd2lsbCBwbHVnIGluIHRoZSBkYiBsYXRlcikuIEl0IGNhbGxzIGV4cHJlc3NTZXJ2ZXIuanMgd2hpY2ggaXMgd2hlcmUgdGhlIGV4cHJlc3MuanMgYW5kIG9wZW5hcGktdmFsaWRhdG9yIGtpY2sgaW4uIFRoaXMgaXMgYW4gaW1wb3J0YW50IGZpbGUuIExlYXJuIGl0LiBBbGwgY2FsbHMgdG8gZW5kcG9pbnRzIHRoYXQgd2VyZSBjb25maWd1cmVkIGluIHRoZSBvcGVuYXBpLnlhbWwgZG9jdW1lbnQgZ28gdG8gYGNvbnRyb2xsZXJzL3tuYW1lX29mX3RhZ193aGljaF90aGVfb3BlcmF0aW9uX3dhc19hc3NvY2lhdGVkX3dpdGh9LmpzYCwgd2hpY2ggaXMgYSB2ZXJ5IHNtYWxsIG1ldGhvZC4gQWxsIHRoZSBidXNpbmVzcy1sb2dpYyBsaWVzIGluIGBjb250cm9sbGVycy9Db250cm9sbGVyLmpzYCwgYW5kIGZyb20gdGhlcmUgLSB0byBgc2VydmljZXMve25hbWVfb2ZfdGFnX3doaWNoX3RoZV9vcGVyYXRpb25fd2FzX2Fzc29jaWF0ZWRfd2l0aH0uanNgLgoKNS4gT25jZSB5b3UndmUgdW5kZXJzdG9vZCB3aGF0IGlzICpnb2luZyogdG8gaGFwcGVuLCBsYXVuY2ggdGhlIGFwcCBhbmQgZW5zdXJlIGV2ZXJ5dGhpbmcgaXMgd29ya2luZyBhcyBleHBlY3RlZDoKYGBgCm5wbSBzdGFydApgYGAKCiMjIyBWaWV3IGFuZCB0ZXN0IHRoZSBBUEkKKEFzc3VtaW5nIG5vIGNoYW5nZXMgd2VyZSBtYWRlIHRvIGNvbmZpZy5qcykKCjEuIEFQSSBkb2N1bWVudGF0aW9uLCBhbmQgdG8gY2hlY2sgdGhlIGF2YWlsYWJsZSBlbmRwb2ludHM6Cmh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGktZG9jcy8uIFRvCjIuIERvd25sb2FkIHRoZSBvcGVuYXBpLnlhbWwgZG9jdW1lbnQ6IGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9vcGVuYXBpLgozLiAgRXZlcnkgY2FsbCB0byBhbiBlbmRwb2ludCB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBvcGVuYXBpIGRvY3VtZW50IHdpbGwgcmV0dXJuIGEgMjAwIGFuZCBhIGxpc3Qgb2YgYWxsIHRoZSBwYXJhbWV0ZXJzIGFuZCBvYmplY3RzIHRoYXQgd2VyZSBzZW50IGluIHRoZSByZXF1ZXN0Lgo0LiBFbmRwb2ludHMgdGhhdCByZXF1aXJlIHNlY3VyaXR5IG5lZWQgdG8gaGF2ZSBzZWN1cml0eSBoYW5kbGVycyBjb25maWd1cmVkIGJlZm9yZSB0aGV5IGNhbiByZXR1cm4gYSBzdWNjZXNzZnVsIHJlc3BvbnNlLiBBdCB0aGlzIHBvaW50IHRoZXkgd2lsbCByZXR1cm4gWyBhIHJlc3BvbnNlIGNvZGUgb2YgNDAxXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL1N0YXR1cy80MDEpLgo1LiAjIyMjIyBBdCB0aGlzIHN0YWdlIHRoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCBkb2N1bWVudCBib2R5IHNlbnQgaW4geG1sIGZvcm1hdC4KCiMjIyBQcm9qZWN0IEZpbGVzCiMjIyMgUm9vdCBEaXJlY3Rvcnk6CkluIHRoZSByb290IGRpcmVjdG9yeSB3ZSBoYXZlIChiZXNpZGVzIHBhY2thZ2UuanNvbiwgY29uZmlnLmpzLCBhbmQgbG9nIGZpbGVzKToKLSAqKmxvZ2dlci5qcyoqIC0gd2hlcmUgd2UgZGVmaW5lIHRoZSBsb2dnZXIgZm9yIHRoZSBwcm9qZWN0LiBUaGUgcHJvamVjdCB1c2VzIHdpbnN0b24sIGJ1dCB0aGUgcHVycG9zZSBvZiB0aGlzIGZpbGUgaXMgdG8gZW5hYmxlIHVzZXJzIHRvIGNoYW5nZSBhbmQgbW9kaWZ5IHRoZWlyIG93biBsb2dnZXIgYmVoYXZpb3IuCi0gKippbmRleC5qcyoqIC0gVGhpcyBpcyB0aGUgcHJvamVjdCdzICdtYWluJyBmaWxlLCBhbmQgZnJvbSBoZXJlIHdlIGxhdW5jaCB0aGUgYXBwbGljYXRpb24uIFRoaXMgaXMgYSB2ZXJ5IHNob3J0IGFuZCBjb25jaXNlIGZpbGUsIGFuZCB0aGUgaWRlYSBiZWhpbmQgbGF1bmNoaW5nIGZyb20gdGhpcyBzaG9ydCBmaWxlIGlzIHRvIGFsbG93IHVzZS1jYXNlcyBvZiBsYXVuY2hpbmcgdGhlIHNlcnZlciB3aXRoIGRpZmZlcmVudCBwYXJhbWV0ZXJzIChjaGFuZ2luZyBjb25maWcgYW5kL29yIGxvZ2dlcikgd2l0aG91dCBhZmZlY3RpbmcgdGhlIHJlc3Qgb2YgdGhlIGNvZGUuCi0gKipleHByZXNzU2VydmVyLmpzKiogLSBUaGUgY29yZSBvZiB0aGUgRXhwcmVzcy5qcyBzZXJ2ZXIuIFRoaXMgaXMgd2hlcmUgdGhlIGV4cHJlc3Mgc2VydmVyIGlzIGluaXRpYWxpemVkLCB0b2dldGhlciB3aXRoIHRoZSBPcGVuQVBJIHZhbGlkYXRvciwgT3BlbkFQSSBVSSwgYW5kIG90aGVyIGxpYnJhcmllcyBuZWVkZWQgdG8gc3RhcnQgb3VyIHNlcnZlci4gSWYgd2Ugd2FudCB0byBhZGQgZXh0ZXJuYWwgbGlua3MsIHRoYXQncyB3aGVyZSB0aGV5IHdvdWxkIGdvLiBPdXIgcHJvamVjdCB1c2VzIHRoZSBbZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZXhwcmVzcy1vcGVuYXBpLXZhbGlkYXRvcikgbGlicmFyeSB0aGF0IGFjdHMgYXMgYSBmaXJzdCBzdGVwIGluIHRoZSByb3V0aW5nIHByb2Nlc3MgLSByZXF1ZXN0cyB0aGF0IGFyZSBkaXJlY3RlZCB0byBwYXRocyBkZWZpbmVkIGluIHRoZSBgb3BlbmFwaS55YW1sYCBmaWxlIGFyZSBjYXVnaHQgYnkgdGhpcyBwcm9jZXNzLCBhbmQgaXQncyBwYXJhbWV0ZXJzIGFuZCBib2R5Q29udGVudCBhcmUgdmFsaWRhdGVkIGFnYWluc3QgdGhlIHNjaGVtYS4gQSBzdWNjZXNzZnVsIHJlc3VsdCBvZiB0aGlzIHZhbGlkYXRpb24gd2lsbCBiZSBhIG5ldyAnb3BlbmFwaScgb2JqZWN0IGFkZGVkIHRvIHRoZSByZXF1ZXN0LiBJZiB0aGUgcGF0aCByZXF1ZXN0ZWQgaXMgbm90IHBhcnQgb2YgdGhlIG9wZW5hcGkueWFtbCBmaWxlLCB0aGUgdmFsaWRhdG9yIGlnbm9yZXMgdGhlIHJlcXVlc3QgYW5kIHBhc3NlcyBpdCBvbiwgYXMgaXMsIGRvd24gdGhlIGZsb3cgb2YgdGhlIEV4cHJlc3Mgc2VydmVyLgoKIyMjIyBhcGkvCi0gKipvcGVuYXBpLnlhbWwqKiAtIFRoaXMgaXMgdGhlIE9wZW5BUEkgY29udHJhY3QgdG8gd2hpY2ggdGhpcyBzZXJ2ZXIgd2lsbCBjb21wbHkuIFRoZSBmaWxlIHdhcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIGNvZGVnZW4sIGFuZCBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIG5lZWRlZCB0byBydW4gdGhlIEFQSSBHYXRld2F5IC0gbm8gcmVmZXJlbmNlcyB0byBleHRlcm5hbCBtb2RlbHMvc2NoZW1hcy4KCiMjIyMgdXRpbHMvCkN1cnJlbnRseSBhIHNpbmdsZSBmaWxlOgoKLSAqKm9wZW5hcGlSb3V0ZXIuanMqKiAtIFRoaXMgaXMgd2hlcmUgdGhlIHJvdXRpbmcgdG8gb3VyIGJhY2stZW5kIGNvZGUgaGFwcGVucy4gSWYgdGhlIHJlcXVlc3Qgb2JqZWN0IGluY2x1ZGVzIGFuIGBgYG9wZW5hcGlgYGAgb2JqZWN0LCBpdCBwaWNrcyB1cCB0aGUgZm9sbG93aW5nIHZhbHVlcyAodGhhdCBhcmUgcGFydCBvZiB0aGUgYGBgb3BlbmFwaS55YW1sYGBgIGZpbGUpOiAneC1vcGVuYXBpLXJvdXRlci1jb250cm9sbGVyJywgYW5kICd4LW9wZW5hcGktcm91dGVyLXNlcnZpY2UnLiBUaGVzZSB2YXJpYWJsZXMgYXJlIG5hbWVzIG9mIGZpbGVzL2NsYXNzZXMgaW4gdGhlIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlcyBkaXJlY3RvcmllcyByZXNwZWN0aXZlbHkuIFRoZSBvcGVyYXRpb25JZCBvZiB0aGUgcmVxdWVzdCBpcyBhbHNvIGV4dHJhY3RlZC4gVGhlIG9wZXJhdGlvbklkIGlzIGEgbWV0aG9kIGluIHRoZSBjb250cm9sbGVyIGFuZCB0aGUgc2VydmljZSB0aGF0IHdhcyBnZW5lcmF0ZWQgYXMgcGFydCBvZiB0aGUgY29kZWdlbiBwcm9jZXNzLiBUaGUgcm91dGluZyBwcm9jZXNzIHNlbmRzIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3RzIHRvIHRoZSBjb250cm9sbGVyLCB3aGljaCB3aWxsIGV4dHJhY3QgdGhlIGV4cGVjdGVkIHZhcmlhYmxlcyBmcm9tIHRoZSByZXF1ZXN0LCBhbmQgc2VuZCBpdCB0byBiZSBwcm9jZXNzZWQgYnkgdGhlIHNlcnZpY2UsIHJldHVybmluZyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmljZSB0byB0aGUgY2FsbGVyLgoKIyMjIyBjb250cm9sbGVycy8KQWZ0ZXIgdmFsaWRhdGluZyB0aGUgcmVxdWVzdCwgYW5kIGVuc3VyaW5nIHRoaXMgYmVsb25ncyB0byBvdXIgQVBJIGdhdGV3YXksIHdlIHNlbmQgdGhlIHJlcXVlc3QgdG8gYSBgY29udHJvbGxlcmAsIHdoZXJlIHRoZSB2YXJpYWJsZXMgYW5kIHBhcmFtZXRlcnMgYXJlIGV4dHJhY3RlZCBmcm9tIHRoZSByZXF1ZXN0IGFuZCBzZW50IHRvIHRoZSByZWxldmFudCBgc2VydmljZWAgZm9yIHByb2Nlc3NpbmcuIFRoZSBgY29udHJvbGxlcmAgaGFuZGxlcyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgYHNlcnZpY2VgIGFuZCBidWlsZHMgdGhlIGFwcHJvcHJpYXRlIEhUVFAgcmVzcG9uc2UgdG8gYmUgc2VudCBiYWNrIHRvIHRoZSB1c2VyLgoKLSAqKmluZGV4LmpzKiogLSBsb2FkIGFsbCB0aGUgY29udHJvbGxlcnMgdGhhdCB3ZXJlIGdlbmVyYXRlZCBmb3IgdGhpcyBwcm9qZWN0LCBhbmQgZXhwb3J0IHRoZW0gdG8gYmUgdXNlZCBkeW5hbWljYWxseSBieSB0aGUgYG9wZW5hcGlSb3V0ZXIuanNgLiBJZiB5b3Ugd291bGQgbGlrZSB0byBjdXN0b21pemUgeW91ciBjb250cm9sbGVyLCBpdCBpcyBhZHZpc2VkIHRoYXQgeW91IGxpbmsgdG8geW91ciBjb250cm9sbGVyIGhlcmUsIGFuZCBlbnN1cmUgdGhhdCB0aGUgY29kZWdlbiBkb2VzIG5vdCByZXdyaXRlIHRoaXMgZmlsZS4KCi0gKipDb250cm9sbGVyLmpzKiogLSBUaGUgY29yZSBwcm9jZXNzb3Igb2YgdGhlIGdlbmVyYXRlZCBjb250cm9sbGVycy4gVGhlIGdlbmVyYXRlZCBjb250cm9sbGVycyBhcmUgZGVzaWduZWQgdG8gYmUgYXMgc2xpbSBhbmQgZ2VuZXJpYyBhcyBwb3NzaWJsZSwgcmVmZXJlbmNpbmcgdG8gdGhlIGBDb250cm9sbGVyLmpzYCBmb3IgdGhlIGJ1c2luZXNzIGxvZ2ljIG9mIHBhcnNpbmcgdGhlIG5lZWRlZCB2YXJpYWJsZXMgYW5kIGFyZ3VtZW50cyBmcm9tIHRoZSByZXF1ZXN0LCBhbmQgZm9yIGJ1aWxkaW5nIHRoZSBIVFRQIHJlc3BvbnNlIHdoaWNoIHdpbGwgYmUgc2VudCBiYWNrLiBUaGUgYENvbnRyb2xsZXIuanNgIGlzIGEgY2xhc3Mgd2l0aCBzdGF0aWMgbWV0aG9kcy4KCi0gKiouanMqKiAtIGF1dG8tZ2VuZXJhdGVkIGNvZGUsIHByb2Nlc3NpbmcgYWxsIHRoZSBvcGVyYXRpb25zLiBUaGUgQ29udHJvbGxlciBpcyBhIGNsYXNzIHRoYXQgaXMgY29uc3RydWN0ZWQgd2l0aCB0aGUgc2VydmljZSBjbGFzcyBpdCB3aWxsIGJlIHNlbmRpbmcgdGhlIHJlcXVlc3QgdG8uIEV2ZXJ5IHJlcXVlc3QgZGVmaW5lZCBieSB0aGUgYG9wZW5hcGkueWFtbGAgIGhhcyBhbiBvcGVyYXRpb25JZC4gVGhlIG9wZXJhdGlvbklkIGlzIHRoZSBuYW1lIG9mIHRoZSBtZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZC4gRXZlcnkgbWV0aG9kIHJlY2VpdmVzIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSwgYW5kIGNhbGxzIHRoZSBgQ29udHJvbGxlci5qc2AgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdCBhbmQgcmVzcG9uc2UsIGFkZGluZyB0aGUgc2VydmljZSBtZXRob2QgdGhhdCBzaG91bGQgYmUgY2FsbGVkIGZvciB0aGUgYWN0dWFsIGJ1c2luZXNzLWxvZ2ljIHByb2Nlc3NpbmcuCgojIyMjIHNlcnZpY2VzLwpUaGlzIGlzIHdoZXJlIHRoZSBBUEkgR2F0ZXdheSBlbmRzLCBhbmQgdGhlIHVuaXF1ZSBidXNpbmVzcy1sb2dpYyBvZiB5b3VyIGFwcGxpY2F0aW9uIGtpY2tzIGluLiBFdmVyeSBlbmRwb2ludCBpbiB0aGUgYG9wZW5hcGkueWFtbGAgaGFzIGEgdmFyaWFibGUgJ3gtb3BlbmFwaS1yb3V0ZXItc2VydmljZScsIHdoaWNoIGlzIHRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGNsYXNzIHRoYXQgaXMgZ2VuZXJhdGVkLiBUaGUgb3BlcmF0aW9uSUQgb2YgdGhlIGVuZHBvaW50IGlzIHRoZSBuYW1lIG9mIHRoZSBtZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZC4gVGhlIGdlbmVyYXRlZCBjb2RlIHByb3ZpZGVzIGEgc2ltcGxlIHByb21pc2Ugd2l0aCBhIHRyeS9jYXRjaCBjbGF1c2UuIEEgc3VjY2Vzc2Z1bCBvcGVyYXRpb24gZW5kcyB3aXRoIGEgY2FsbCB0byB0aGUgZ2VuZXJpYyBgU2VydmljZS5qc2AgdG8gYnVpbGQgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIChwYXlsb2FkIGFuZCByZXNwb25zZSBjb2RlKSwgYW5kIGEgZmFpbHVyZSB3aWxsIGNhbGwgdGhlIGdlbmVyaWMgYFNlcnZpY2UuanNgIHRvIGJ1aWxkIGEgcmVzcG9uc2Ugd2l0aCBhbiBlcnJvciBvYmplY3QgYW5kIHRoZSByZWxldmFudCByZXNwb25zZSBjb2RlLiBJdCBpcyByZWNvbW1lbmRlZCB0byBoYXZlIHRoZSBzZXJ2aWNlcyBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBvbmNlLCBhbmQgYWZ0ZXIgdGhlIGluaXRpYWwgYnVpbGQgYWRkIG1ldGhvZHMgbWFudWFsbHkuCgotICoqaW5kZXguanMqKiAtIGxvYWQgYWxsIHRoZSBzZXJ2aWNlcyB0aGF0IHdlcmUgZ2VuZXJhdGVkIGZvciB0aGlzIHByb2plY3QsIGFuZCBleHBvcnQgdGhlbSB0byBiZSB1c2VkIGR5bmFtaWNhbGx5IGJ5IHRoZSBgb3BlbmFwaVJvdXRlci5qc2AuIElmIHlvdSB3b3VsZCBsaWtlIHRvIGN1c3RvbWl6ZSB5b3VyIHNlcnZpY2UsIGl0IGlzIGFkdmlzZWQgdGhhdCB5b3UgbGluayB0byB5b3VyIGNvbnRyb2xsZXIgaGVyZSwgYW5kIGVuc3VyZSB0aGF0IHRoZSBjb2RlZ2VuIGRvZXMgbm90IHJld3JpdGUgdGhpcyBmaWxlLgoKLSAqKlNlcnZpY2UuanMqKiAtIEEgdXRpbGl0eSBjbGFzcywgdmVyeSBzaW1wbGUgYW5kIHRoaW4gYXQgdGhpcyBwb2ludCwgd2l0aCB0d28gc3RhdGljIG1ldGhvZHMgZm9yIGJ1aWxkaW5nIGEgcmVzcG9uc2Ugb2JqZWN0IGZvciBzdWNjZXNzZnVsIGFuZCBmYWlsZWQgcmVzdWx0cyBpbiB0aGUgc2VydmljZSBvcGVyYXRpb24uIFRoZSBkZWZhdWx0IHJlc3BvbnNlIGNvZGUgaXMgMjAwIGZvciBzdWNjZXNzIGFuZCA1MDAgZm9yIGZhaWx1cmUuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHNlbmQgbW9yZSBhY2N1cmF0ZSByZXNwb25zZSBjb2RlcyBhbmQgb3ZlcnJpZGUgdGhlc2UgZGVmYXVsdHMgd2hlbiByZWxldmFudC4KCi0gKiouanMqKiAtIGF1dG8tZ2VuZXJhdGVkIGNvZGUsIHByb3ZpZGluZyBhIHN0dWIgUHJvbWlzZSBmb3IgZWFjaCBvcGVyYXRpb25JZCBkZWZpbmVkIGluIHRoZSBgb3BlbmFwaS55YW1sYC4gRWFjaCBtZXRob2QgcmVjZWl2ZXMgdGhlIHZhcmlhYmxlcyB0aGF0IHdlcmUgZGVmaW5lZCBpbiB0aGUgYG9wZW5hcGkueWFtbGAgZmlsZSwgYW5kIHdyYXBzIGEgUHJvbWlzZSBpbiBhIHRyeS9jYXRjaCBjbGF1c2UuIFRoZSBQcm9taXNlIHJlc29sdmVzIGJvdGggc3VjY2VzcyBhbmQgZmFpbHVyZSBpbiBhIGNhbGwgdG8gdGhlIGBTZXJ2aWNlLmpzYCB1dGlsaXR5IGNsYXNzIGZvciBidWlsZGluZyB0aGUgYXBwcm9wcmlhdGUgcmVzcG9uc2UgdGhhdCB3aWxsIGJlIHNlbnQgYmFjayB0byB0aGUgQ29udHJvbGxlciBhbmQgdGhlbiB0byB0aGUgY2FsbGVyIG9mIHRoaXMgZW5kcG9pbnQuCgojIyMjIHRlc3RzLwotICoqc2VydmVyVGVzdHMuanMqKiAtIGJhc2ljIHNlcnZlciB2YWxpZGF0aW9uIHRlc3RzLCBjaGVja2luZyB0aGF0IHRoZSBzZXJ2ZXIgaXMgdXAsIHRoYXQgYSBjYWxsIHRvIGFuIGVuZHBvaW50IHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIGBvcGVuYXBpLnlhbWxgIGZpbGUgcmV0dXJucyAyMDAsIHRoYXQgYSBjYWxsIHRvIGEgcGF0aCBvdXRzaWRlIHRoYXQgc2NvcGUgcmV0dXJucyAyMDAgaWYgaXQgZXhpc3RzIGFuZCBhIDQwNCBpZiBub3QuCi0gKipyb3V0aW5nVGVzdHMuanMqKiAtIFJ1bnMgdGhyb3VnaCBhbGwgdGhlIGVuZHBvaW50cyBkZWZpbmVkIGluIHRoZSBgb3BlbmFwaS55YW1sYCwgYW5kIGNvbnN0cnVjdHMgYSBkdW1teSByZXF1ZXN0IHRvIHNlbmQgdG8gdGhlIHNlcnZlci4gQ29uZmlybXMgdGhhdCB0aGUgcmVzcG9uc2UgY29kZSBpcyAyMDAuIEF0IHRoaXMgcG9pbnQgcmVxdWVzdHMgY29udGFpbmluZyB4bWwgb3IgZm9ybURhdGEgZmFpbCAtIGN1cnJlbnRseSB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoZSByb3V0ZXIuCi0gKiphZGRpdGlvbmFsRW5kcG9pbnRzVGVzdHMuanMqKiAtIEEgdGVzdCBmaWxlIGZvciBhbGwgdGhlIGVuZHBvaW50cyB0aGF0IGFyZSBkZWZpbmVkIG91dHNpZGUgdGhlIG9wZW5hcGkueWFtbCBzY29wZS4gQ29uZmlybXMgdGhhdCB0aGVzZSBlbmRwb2ludHMgcmV0dXJuIGEgc3VjY2Vzc2Z1bCAyMDAgcmVzcG9uc2UuCgoKRnV0dXJlIHRlc3RzIHNob3VsZCBiZSB3cml0dGVuIHRvIGVuc3VyZSB0aGF0IHRoZSByZXNwb25zZSBvZiBldmVyeSByZXF1ZXN0IHNlbnQgc2hvdWxkIGNvbmZvcm0gdG8gdGhlIHN0cnVjdHVyZSBkZWZpbmVkIGluIHRoZSBgb3BlbmFwaS55YW1sYC4gVGhpcyB0ZXN0IHdpbGwgZmFpbCAxMDAlIGluaXRpYWxseSwgYW5kIHRoZSBqb2Igb2YgdGhlIGRldmVsb3BtZW50IHRlYW0gd2lsbCBiZSB0byBjbGVhciB0aGVzZSB0ZXN0cy4KCgojIyMjIG1vZGVscy8KQ3VycmVudGx5IGEgY29uY2VwdCBhd2FpdGluZyBmZWVkYmFjay4gVGhlIGlkZWEgaXMgdG8gaGF2ZSB0aGUgb2JqZWN0cyBkZWZpbmVkIGluIHRoZSBvcGVuYXBpLnlhbWwgYWN0IGFzIG1vZGVscyB3aGljaCBhcmUgcGFzc2VkIGJldHdlZW4gdGhlIGRpZmZlcmVudCBtb2R1bGVzLiBUaGlzIHdpbGwgY29uZm9ybSB0aGUgcHJvZ3JhbW1lcnMgdG8gaW50ZXJhY3QgdXNpbmcgZGVmaW5lZCBvYmplY3RzLCByYXRoZXIgdGhhbiBsb29zZWx5LWRlZmluZWQgSlNPTiBvYmplY3RzLiBHaXZlbiB0aGUgbmF0dXJlIG9mIEphdmFTY3JpcHQgcHJvZ3JhbW1lcnMsIHdobyB3YW50IHRvIHdvcmsgd2l0aCB0aGVpciBvd24gYm9vdHN0cmFwcGVkIHBhcmFtZXRlcnMsIHRoaXMgY29uY2VwdCBtaWdodCBub3Qgd29yay4gS2VlcGluZyB0aGlzIGhlcmUgZm9yIGZ1dHVyZSBkaXNjdXNzaW9uIGFuZCBmZWVkYmFjay4KCgoKCgoKCgoKCgoKCgoK readmeEtag: '"be947f884b56f52f14003bf276763525b372d045"' readmeLastModified: Tue, 06 Feb 2024 16:43:15 GMT repositoryId: 579412089 description: >- API to create appealing images of company products made of chocolate, gold or lego created: '2022-12-17T16:00:42Z' updated: '2023-04-13T10:13:55Z' language: HTML archived: false stars: 3 watchers: 3 forks: 1 owner: postman-solutions-eng logo: https://avatars.githubusercontent.com/u/91276282?v=4 license: Apache-2.0 repoEtag: '"19529bf312edd6416350d2ebf1fb890071a91b4aa8cca9428d260b6c11a82c34"' repoLastModified: Thu, 13 Apr 2023 10:13:55 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/codecentric/spring-boot-api-first v3: true repositoryMetadata: base64Readme: >- ICMgQVBJIGZpcnN0IFNwcmluZyBCb290IFNlcnZpY2UgKFdJUCkKCiBUaGlzIFNwcmluZyBCb290IFNlcnZpY2Ugd2lsbCBiZSBjcmVhdGVkIGJ5IHRoZSBBUEkgZmlyc3QgYXBwcm9hY2ggYW5kIHRlc3RlZCB3aXRoIFtLYXJhdGVdKGh0dHBzOi8vaW50dWl0LmdpdGh1Yi5pby9rYXJhdGUvKS4gRHVlIHRvIG1pc3NpbmcgY2FwYWJpbGl0eSBvZiBPcGVuQVBJIEdlbmVyYXRvciBpbiBWZXJzaW9uIDUuMC4wIHRoZSBkaXJlY3QgZG93bmxvYWQgb2YgdGhlIEFQSSBzcGVjIGlzIG5vdCBwb3NzaWJsZSBhdCB0aGUgbW9tZW50LiBTbyB3ZSB3aWxsIHJlbHkgb24gdXNpbmcgW0dyYWRsZSBEb3dubG9hZCBUYXNrXShodHRwczovL2dpdGh1Yi5jb20vbWljaGVsLWtyYWVtZXIvZ3JhZGxlLWRvd25sb2FkLXRhc2spLiBUaGVyZSBpcyBhbHNvIGFscmVhZHkgYSBbYnVnIHJlcG9ydF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXMvODI1NSkgd3JpdHRlbiBieSBbam9zY2hpXShodHRwczovL2dpdGh1Yi5jb20vam9zY2hpKS4gQW5kIHRoZXJlIGlzIGFuIG9wZW4gW2ZlYXR1cmUgcmVxdWVzdF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXMvOTA4MykgZm9yIE9wZW5BUEkgR2VuZXJhdG9yIHRvIHN1cHBvcnQgT3BlbkFQSSBTcGVjIDMuMS4gCiBEdXJpbmcgdGhlIHdyaXRpbmcgcHJvY2VzcyBPcGVuQVBJIEdlbmVyYXRvciB3YXMgcmVtb3ZlZCBhbmQgcmVwbGFjZWQgW09wZW5BUEkgUHJvY2Vzc29yXShodHRwczovL2RvY3Mub3BlbmFwaXByb2Nlc3Nvci5pby9vYXAvaG9tZS9ob21lLmh0bWwpLg== readmeEtag: '"d0c78f8a85e68b7aff4392e02cf88c1f6fa22c47"' readmeLastModified: Tue, 06 Jul 2021 09:48:42 GMT repositoryId: 324130901 description: Example project using Spring Boot and OpenAPI Processor created: '2020-12-24T10:34:38Z' updated: '2022-04-20T20:43:07Z' language: Java archived: false stars: 3 watchers: 3 forks: 4 owner: codecentric logo: https://avatars.githubusercontent.com/u/1009716?v=4 repoEtag: '"f6b96f4f94d5f10555110135b006eebd1ed346ade25550b20c7a192e1149c59d"' repoLastModified: Wed, 20 Apr 2022 20:43:07 GMT foundInMaster: true category: SDK id: 36f5dbfc3daf547fbd1460be064da28d - source: openapi3 tags repository: https://github.com/moochub/schema v3: true repositoryMetadata: base64Readme: >- IyBNT09DaHViIFNjaGVtYQoKVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIHNwZWNpZmljYXRpb24gZmlsZXMgZm9yIGRhdGEgZXhjaGFuZ2UgYmV0d2VlbiBNT09DIHByb3ZpZGVycyBwYXJ0aWNpcGF0aW5nIGluIHRoZSBbTU9PQ2h1Yl0oaHR0cHM6Ly9tb29jaHViLm9yZykuIEJhc2VkIG9uIHByZXZpb3VzIHdvcmsgcmVnYXJkaW5nIFtNT09DIHN0YW5kYXJkc10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5IUEkvbW9vYy1zdGFuZGFyZHMpLCB0aGUgSlNPTiBmb3JtYXQgc3BlY2lmaWVkIGVuYWJsZXMgYSBzZWFtbGVzcyBleGNoYW5nZSBvZiBjb3Vyc2UgaW5mb3JtYXRpb24sIGluc3RydWN0b3JzLCBhbmQgdGhlIGluc3RpdHV0ZXMgb2ZmZXJpbmcgYSBjb3Vyc2UuIE1pbmltYWwgaW5mb3JtYXRpb24gaXMgcmVxdWlyZWQgcGVyIGNvdXJzZSB0byBlYXNlIG9uYm9hcmRpbmcgZm9yIG5ldyBwYXJ0bmVycyB3aGlsZSBhbGxvd2luZyBjdXN0b21pemFiaWxpdHkgdG8gZml0IGluZGl2aWR1YWwgbmVlZHMuCgojIyBTcGVjaWZpY2F0aW9uCgpUaGUgTU9PQ2h1YiBBUEkgc3BlY2lmaWNhdGlvbiBjb25zaXN0cyBvZiB0d28gbWFqb3IgcGFydHM6ICgxKSBBIEpTT04gZm9ybWF0IGFuZCAoMikgYW4gQVBJIHZlcnNpb25pbmcgY29uY2VwdC4KCjEuIEpTT04gZm9ybWF0CgogICBUaGUgSlNPTiBmb3JtYXQgc3BlY2lmaWVkIGluIHRoaXMgcmVwb3NpdG9yeSBpcyBiYXNlZCBvbiB0aGUgW0pTT046QVBJXShodHRwczovL2pzb25hcGkub3JnKSBzY2hlbWEgYW5kIHVzZXMgdGhlaXIgcHJvcG9zZWQgcGFnaW5hdGlvbiBhcHByb2FjaC4gSW4gYSB2YWxpZCByZXNwb25zZSwgb25seSBhIGZldyBhdHRyaWJ1dGVzIG11c3QgYmUgcHJlc2VudCwgbW9zdCBjYW4gYmUgb21pdHRlZCBvciBjYW4gYmUgYG51bGxgLiBBcyB3ZSBzZWUgYSBzZW1hbnRpY2FsIGRpZmZlcmVuY2UgYmV0d2VlbiBhbiBvbWl0dGVkIGFuZCBhIGBudWxsYCB2YWx1ZSwgd2Uga2luZGx5IGFzayB5b3UgdG8gcHJvdmlkZSBhcyBtdWNoIGluZm9ybWF0aW9uIGFzIHBvc3NpYmxlLgoKMi4gQVBJIHZlcnNpb25pbmcgY29uY2VwdAoKICAgVXBvbiByZXF1ZXN0IG9mIHRoZSBBUEksIHRoZSBzZXJ2ZXIgYW5kIGNsaWVudCBtaWdodCBuZWdvdGlhdGUgdGhlIG1vc3Qgc3VpdGFibGUgdmVyc2lvbiBvZiB0aGUgQVBJIHVzaW5nIEhUVFAgaGVhZGVycy4gUGxlYXNlIHJlZmVyIHRvIHRoZSBbZGVkaWNhdGVkIHZlcnNpb25pbmcgc3BlY2lmaWNhdGlvbl0obW9vY2h1Yi12ZXJzaW9uaW5nLm1kKSBmb3IgbW9yZSBkZXRhaWxzLgoKIyMgUmVsZWFzZXMKClRoZSBbbGF0ZXN0IGZpbmFsaXplZCB2ZXJzaW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9vY2h1Yi9zY2hlbWEvcmVsZWFzZXMvbGF0ZXN0KSBvZiB0aGUgc2NoZW1hIGlzIHJlbGVhc2VkIGluIHRoaXMgcmVwb3NpdG9yeSBhbmQgdGFnZ2VkIGFwcHJvcHJpYXRlbHkuIEFsbCBNT09DaHViIGNvbXBsaWFudCBzb2Z0d2FyZSBpcyByZXF1ZXN0ZWQgdG8gaW1wbGVtZW50IHRoZSB2ZXJzaW9uaW5nIGFzIG91dGxpbmVkIGluIHRoZSBbZGVkaWNhdGVkIEFQSSB2ZXJzaW9uaW5nIHNwZWNpZmljYXRpb25dKG1vb2NodWItdmVyc2lvbmluZy5tZCkuIFdlIGZvbGxvdyBhIFtzZW1hbnRpYyB2ZXJzaW9uaW5nXShodHRwczovL3NlbXZlci5vcmcpIGFwcHJvYWNoIGZvciBhbGwgcmVsZWFzZXMgdG8gZWFzZSBjb25zdW1pbmcgc2NoZW1hLWNvbXBsaWFudCBBUElzLgoKIyMgQ29udHJpYnV0aW9ucwoKVGhlIHNjaGVtYSBpcyBtYWlubHkgZHJpdmVuIGJ5IHRoZSBbTU9PQ2h1YiBvcmdhbml6YXRpb24gYW5kIHRoZWlyIHBhcnRuZXJzXShodHRwczovL21vb2NodWIub3JnL3BhcnRuZXJzLykuIFRoZXJlZm9yZSwgaXQgaXMgZGVzaWduZWQgdG8gcHJvdmlkZSBhIGNvbnNpc3RlbnQgYW5kIHVuaWZvcm0gbWVjaGFuaXNtIHRvIHRyYW5zcG9ydCByZXF1aXJlZCBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZSBwYXJ0bmVycy4gV2Ugd2lsbCBldm9sdmUgdGhlIHNjaGVtYSBiYXNlZCBvbiByZXF1aXJlbWVudHMgaW50cm9kdWNlZCBieSBwYXJ0bmVycyBhbmQgY29uc3VtZXJzLiBBZGRpdGlvbmFsIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHNjaGVtYSBhcmUgd2VsY29tZSBhbmQgd2lsbCBiZSBjb25zaWRlcmVkIGZvciBhbiB1cGNvbWluZyByZWxlYXNlLiBQbGVhc2UgY3JlYXRlIGFuIGlzc3VlIG9yIGEgcHVsbCByZXF1ZXN0IHRvIHN0YXJ0IGNvbnRyaWJ1dGluZyEKCiMjIENvbnRhY3QKCklmIHlvdSBoYXZlIGZ1cnRoZXIgcXVlc3Rpb25zIG9yIHdvdWxkIGxpa2UgdG8gZ2V0IGxpc3RlZCBpbiB0aGUgW01PT0NodWJdKGh0dHBzOi8vbW9vY2h1Yi5vcmcpIHVzaW5nIGFuIGVuZHBvaW50IGZvbGxvd2luZyB0aGlzIHNjaGVtYSwgcGxlYXNlIGRyb3AgdXMgYSBtYWlsIGF0IG9mZmljZUBtb29jaHViLm9yZy4K readmeEtag: '"0b446e49b84e772b5555d586de201d8b311528b8"' readmeLastModified: Tue, 18 Jun 2024 14:40:56 GMT repositoryId: 343502074 description: >- A cross-platform schema definition used for data exchange between cooperating MOOC providers created: '2021-03-01T17:34:18Z' updated: '2024-06-18T14:41:00Z' language: null archived: false stars: 3 watchers: 7 forks: 2 owner: MOOChub logo: https://avatars.githubusercontent.com/u/79694863?v=4 license: MIT repoEtag: '"dbac44f1cd0dd1bddfc3a7ae55a5d5f569ab18f4076afc37d0195c2956e7dafa"' repoLastModified: Tue, 18 Jun 2024 14:41:00 GMT foundInMaster: true category: Parsers id: f82539087f07461ed2a41b256e61e762 - source: openapi3 tags repository: https://github.com/zchee/openapi2protobuf v3: true id: f1ab0225162b832a64bce243ce55a302 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpMnByb3RvYnVmCgpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2dvLWxhbmd1YWdlLXNlcnZlci9vcGVuYXBpMnByb3RvYnVmP2NvbG9yPWJsdWUmbG9nbz1zcGR4JmxvZ29Db2xvcj0lMjM1QTk2Qzgmc3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vc3BkeC5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlLmh0bWwpCgpvcGVuYXBpMnByb3RvYnVmIGdlbmVyYXRlcyBQcm90b2NvbCBCdWZmZXJzIHYzIGFuZCBnUlBDIHNlcnZpY2VzIGRlZmluaXRpb25zIGZyb20gdGhlIE9wZW5BUEkvU3dhZ2dlciBzY2hlbWEuCg== readmeEtag: '"81277246368f666f71fadfbc3ca097b5df95e841"' readmeLastModified: Fri, 06 Jan 2023 11:39:32 GMT repositoryId: 469262087 description: >- openapi2protobuf generates Protocol Buffers v3 schema and gRPC service definitions from OpenAPI/Swagger schema definitions created: '2022-03-13T03:43:19Z' updated: '2024-06-28T05:49:16Z' language: Go archived: false stars: 3 watchers: 2 forks: 0 owner: zchee logo: https://avatars.githubusercontent.com/u/6366270?v=4 license: BSD-3-Clause repoEtag: '"33bdf05fb943f02f4dfe3289b003388cc2fc357ba7fee42c4fae8a4baa612fa7"' repoLastModified: Fri, 28 Jun 2024 05:49:16 GMT category: Parsers oldLocations: - https://github.com/go-language-server/openapi2protobuf foundInMaster: true - source: openapi3 tags repository: https://github.com/ideal-postcodes/openapi v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSJodHRwczovL2ltZy5pZGVhbC1wb3N0Y29kZXMuY28udWsvT3BlbkFQSSUyMExvZ29AM3gucG5nIiBhbHQ9Ik9wZW5BUEkiPgo8L2gxPgoKPiBJZGVhbCBQb3N0Y29kZXMgT3BlbkFQSSAodjMpIFNwZWNpZmljYXRpb24gKGFwaS5pZGVhbC1wb3N0Y29kZXMuY28udWspCgpbIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL2lkZWFsLXBvc3Rjb2Rlcy9vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vaWRlYWwtcG9zdGNvZGVzL29wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sKQoKIyMgRmVhdHVyZXMKCi0gT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uIGZvciBhcGkuaWRlYWwtcG9zdGNvZGVzLmNvLnVrCi0gRXhwb3J0cyBBUEkgVHlwaW5ncwoKIyMgTGlua3MKCi0gW0dpdGh1YiBSZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vaWRlYWwtcG9zdGNvZGVzL29wZW5hcGkpCi0gW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vb3BlbmFwaS5pZGVhbC1wb3N0Y29kZXMuZGV2KQotIE9wZW5BUEkgdjMgUmF3IEZpbGVzOiBbSlNPTl0oaHR0cHM6Ly9vcGVuYXBpLmlkZWFsLXBvc3Rjb2Rlcy5kZXYvb3BlbmFwaS5qc29uKQotIE9wZW5BUEkgdjMgUmF3IEZpbGVzOiBbWUFNTF0oaHR0cHM6Ly9vcGVuYXBpLmlkZWFsLXBvc3Rjb2Rlcy5kZXYvb3BlbmFwaS55YW1sKQotIFtOUE0gUGFja2FnZV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGlkZWFsLXBvc3Rjb2Rlcy9vcGVuYXBpKQoKIyMgR2V0dGluZyBTdGFydGVkCgojIyMgQnVpbGQgVHlwaW5ncwoKYGBgCm5wbSBydW4gYnVpbGQKYGBgCgojIyMgVmFsaWRhdGUgU3BlYwoKYGBgCm5wbSB0ZXN0CmBgYAoKIyMjIERvd25sb2FkIGFuZCBBY2Nlc3MgdmlhIG5wbQoKIyMjIyBJbnN0YWxsCgpgYGBiYXNoCm5wbSBpbnN0YWxsIEBpZGVhbC1wb3N0Y29kZXMvb3BlbmFwaQpgYGAKCiMjIyMgUmVxdWlyZSBzcGVjcwoKSlNPTiBhbmQgWUFNTCBzcGVjcyBjYW4gYmUgYWNjZXNzZWQgYXQgYG5vZGVfbW9kdWxlcy9AaWRlYWwtcG9zdGNvZGVzL29wZW5hcGkvZGlzdC9vcGVuYXBpLltqc29ufHlhbWxdYAoKIyMgTGljZW5jZQoKTUlUCg== readmeEtag: '"00a2658f4500fc40ee576b2145b160886a04b707"' readmeLastModified: Wed, 10 Jul 2024 10:03:51 GMT repositoryId: 181899806 description: OpenAPI V3 specifications for api.ideal-postcodes.co.uk created: '2019-04-17T13:41:02Z' updated: '2024-07-10T10:03:54Z' language: TypeScript archived: false stars: 3 watchers: 5 forks: 0 owner: ideal-postcodes logo: https://avatars.githubusercontent.com/u/4996310?v=4 license: MIT repoEtag: '"f45fa1c4cc7e928ac76c753d57b793c2cd7dc5cf448e032b5e1b0837ed299047"' repoLastModified: Wed, 10 Jul 2024 10:03:54 GMT foundInMaster: true category: SDK id: e5fcae1b1547e9581f18e43328e332ef - source: openapi3 tags repository: https://github.com/funa1g/multi-file-oas-example v3: true repositoryMetadata: base64Readme: >- IyBtdWx0aS1maWxlLW9hcy1leGFtcGxlCkFuIGV4YW1wbGUgb2YgbXVsdGkgZmlsZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wCgojIyBVc2FnZQpJZiB5b3UgY2hlY2sgdGhpcyBleGFtcGxlLCB1c2UgZG9ja2VyIGVudmlyb25tZW50LgoKYGBgCmRvY2tlci1jb21wb3NlIHVwCmBgYAoKQW5kIHNob3cgYGxvY2FsaG9zdDo4MDgwYAoKIyMgRGV0YWlscwpUaGlzIHNhbXBsZSB1c2VzIGBtdWx0aS1maWxlLXN3YWdnZXJgLgoKIyBDb3B5cmlnaHQKVGhpcyBzb2Z0d2FyZSBpbmNsdWRlcyB0aGUgd29yayB0aGF0IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBBcGFjaGUgTGljZW5zZSAyLjAK readmeEtag: '"262fff406391a7549d32cfae001eccf629f108f4"' readmeLastModified: Sun, 20 May 2018 09:18:01 GMT repositoryId: 121081045 description: An example of multi file OpenAPI Specification 3.0 created: '2018-02-11T03:39:43Z' updated: '2023-09-08T08:19:44Z' language: HTML archived: false stars: 3 watchers: 1 forks: 7 owner: funa1g logo: https://avatars.githubusercontent.com/u/9946679?v=4 license: MIT repoEtag: '"4d8ba1d4a291f3de2fe17bb7b9b93920c7eb3edfd2a4850e2aa39191366d61c6"' repoLastModified: Fri, 08 Sep 2023 08:19:44 GMT foundInMaster: true category: - Documentation - Parsers - Server Implementations id: 7fc78b8250209771d87b7f5c12781671 - source: openapi3 tags repository: https://github.com/vkazakevich/slim-vue-app v3: true id: eba520242ad6418352b035717a1f87a2 repositoryMetadata: base64Readme: >- IyBTbGltIDQgKyBWdWUgMyBhcHBsaWNhdGlvbgoKUHJvamVjdCBkZW1vbnN0cmF0aW5nIHVzaW5nIHRoZSBTbGltIDQgZnJhbWV3b3JrIHRvIGNyZWF0ZSBhIFJlc3RmdWwgQVBJLiBUaGUgZGF0YWJhc2UgaXMgcG93ZXJlZCBieSBFbG9xdWVudCwgYW5kIHRoZSBjbGllbnQgc2lkZSBpcyBkZXZlbG9wZWQgdXNpbmcgVnVlIDMuCgoKIyMgR2V0dGluZyBTdGFydGVkCgpIZXJlIHlvdSBjYW4gc2VlIGhvdyB0byBzZXR1cCB0aGUgcHJvamVjdC4gU2luY2UgdGhlIHByb2plY3QgaXMgdXNpbmcgZG9ja2VyIHlvdSBoYXZlIHRvIGhhdmUgaXQgaW5zdGFsbGVkIGFuZCBydW5uaW5nLgoKVXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvamVjdDoKCmBgYGJhc2gKIyBZb3UgY2FuIG5vdyBlZGl0IHRoZSBzZXR0aW5ncyBpbiB0aGUgLmVudiBmaWxlCmNwIC5lbnYuZXhhbXBsZSAuZW52CgojIFJ1biBkb2NrZXIgYnVpbGQgY29tbWFuZAptYWtlIGJ1aWxkCgojIEluc3RhbGwgdGhlIENvbXBvc2VyIGRlcGVuZGVuY2llcwptYWtlIGNvbXBvc2VyLWluc3RhbGwgCgojIENyZWF0ZSBhIGRhdGFiYXNlCm1ha2UgY3JlYXRlLWRhdGFiYXNlCmBgYAoKVG8gcG9wdWxhdGUgdGhlIGRhdGFiYXNlIHdpdGggZmFrZSB2YWx1ZXMsIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCm1ha2UgcG9wdWxhdGUtZGF0YWJhc2UKYGBgCgpUbyBzdG9wIG9yIHN0YXJ0IHRoZSBjb250YWluZXIsIHVzZSBgbWFrZSBzdGFydGAgYW5kIGBtYWtlIHN0b3BgLgoKVGhlIHByb2plY3QgaXMgYWNjZXNzaWJsZSBieSBgbG9jYWxob3N0OjgwODBgIGhvc3QuCgojIyBQb3N0bWFuCgpGb3IgeW91ciBjb252ZW5pZW5jZSwgdGhpcyByZXBvc2l0b3J5IGhhcyBhIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKC4vb3BlbmFwaS5qc29uKSB0aGF0IGNhbiBiZSBpbXBvcnRlZCBpbnRvIFBvc3RtYW4gKFttb3JlIGRldGFpbHNdKGh0dHBzOi8vbGVhcm5pbmcucG9zdG1hbi5jb20vZG9jcy9pbnRlZ3JhdGlvbnMvYXZhaWxhYmxlLWludGVncmF0aW9ucy93b3JraW5nLXdpdGgtb3BlbkFQSS8pKS4K readmeEtag: '"08a60f167948685d361ddbb722e7395cdfc36c3a"' readmeLastModified: Tue, 11 Jul 2023 06:46:45 GMT repositoryId: 664813397 description: >- Demo application on Slim 4 bundled with Eloquent and OpenAPI, and Vue 3 on the client side. created: '2023-07-10T20:05:20Z' updated: '2024-03-31T21:58:45Z' language: PHP archived: false stars: 3 watchers: 2 forks: 0 owner: vkazakevich logo: https://avatars.githubusercontent.com/u/9676524?v=4 license: MIT repoEtag: '"8325229c87494de12329b6e464cca62f08428ace659c055a045ecfab1e699229"' repoLastModified: Sun, 31 Mar 2024 21:58:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/koumoul-dev/soas v3: true repositoryMetadata: base64Readme: >- IyBTZW1hbnRpYyBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uIGxpYnJhcnkKSG9sZHMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSBhbiBBUEkgZGVzY3JpYmVkIHdpdGggW09wZW5BUEkgMy4wIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKSBhbmQgW3NlbWFudGljYWxseSBhbm5vdGF0ZWRdKGh0dHA6Ly93d3cuaW50ZWxsaWdlbmNlLnR1Yy5nci9+cGV0cmFraXMvcHVibGljYXRpb25zL1NPQVM0LnBkZikuCgojIyBRdWljayBzdGFydApgYGAKbnBtIGluc3RhbGwgLS1zYXZlCmBgYAoKYGBgamF2YXNjcmlwdAppbXBvcnQgc29hc0xvYWRlciBmcm9tICdzb2FzJwppbXBvcnQgYXBpRG9jIGZyb20gJ3BhdGgtdG8vbXktYXBpLmpzb24nCgpjb25zdCBzb2FzID0gc29hc0xvYWRlcihhcGlEb2MpCgpjb25zdCBlbmRQb2ludHMgPSBzb2FzLmVuZFBvaW50cygpCmNvbnN0IGFjdGlvbnMgPSBzb2FzLmFjdGlvbnMoKQoKY29uc3QgaW5wdXQxID0gewogICJodHRwOi8vc2NoZW1hLm9yZy9zdHJlZXRBZGRyZXNzIjogIjcgUnVlIFZpY3RvciBTY2hvZWxjaGVyIiwKICAiaHR0cDovL3JkZi5pbnNlZS5mci9kZWYvZ2VvI2NvZGVDb21tdW5lIjoiMjIwNTAiCn0KY29uc3Qgb3V0cHV0MSA9IGF3YWl0IHNvYXMuZXhlY3V0ZSgnZ2V0Q29vcmQnLCBpbnB1dDEpCi8vIG91dHB1dDEgaXMgOgovLyB7Imh0dHA6Ly9zY2hlbWEub3JnL2lkZW50aWZpZXIiOiIxIiwKLy8gImh0dHA6Ly9zY2hlbWEub3JnL2xhdGl0dWRlIjoiNDguMyIsCi8vICJodHRwOi8vc2NoZW1hLm9yZy9sb25naXR1ZGUiOiItMy40In0KCi8vIHdvcmtzIHdpdGggc3RyZWFtcyB0b28KY29uc3QgaW5wdXQyID0gZnMuY3JlYXRlUmVhZFN0cmVhbShwYXRoLmpvaW4oX19kaXJuYW1lLCAnYWRkcmVzc2VzLm5kanNvbicpKQogICAgICAgICAgICAgICAgICAucGlwZShtaW1lVHlwZVN0cmVhbSgnYXBwbGljYXRpb24veC1uZGpzb24nKS5wYXJzZXIoKSkKY29uc3Qgb3V0cHV0MiA9IGF3YWl0IHNvYXMuZXhlY3V0ZSgncG9zdENvb3JkcycsIGlucHV0KQpvdXRwdXQyLnBpcGUobWltZVR5cGVTdHJlYW0oJ2FwcGxpY2F0aW9uL3gtbmRqc29uJykuc2VyaWFsaXplcigpKS5waXBlKHByb2Nlc3Muc3Rkb3V0KQouLi4KYGBgCiMjIERvY3VtZW50YXRpb24KCiMjIyBDb25zdHJ1Y3RvcgpTZWUgdGhlIFtPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCkgZm9yIHRoZSBjb3JyZWN0IGZvcm1hdCBvZiB0aGUgQVBJIGRlc2NyaXB0aW9uLgoKYGBgamF2YXNjcmlwdAppbXBvcnQgc29hc0xvYWRlciBmcm9tICdzb2FzJwppbXBvcnQgYXBpRG9jIGZyb20gJ3BhdGgtdG8vbXktYXBpLmpzb24nCgovLyBhcGlEb2MgaXMgYSBKU09OIGRlc2NyaWJpbmcgYW4gQVBJIHdpdGggdGhlIE9wZW5BcGkgMy4wIHNwZWNpZmljYXRpb24KLy8gVG8ga2VlcCB0aGlzIGxpYnJhcnkgbGlnaHQsIHNjaGVtYSB2YWxpZGF0aW9uIGlzIG5vdCBoYW5kbGVkCmNvbnN0IHNvYXMgPSBzb2FzTG9hZGVyKGFwaURvYykKYGBgCgojIyMgZW5kUG9pbnRzKCkKTGlzdCBBUEkgZW5kcG9pbnRzLiBSZXR1cm4gYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyA6CiAqICoqbWV0aG9kKiogOiB0aGUgSFRUUCBtZXRob2QKICogKipwYXRoKiogOiB0aGUgcGF0aCB0aGlzIGVuZHBvaW50IHJlZmVycyB0bwogKiAqKm9wZXJhdGlvbioqIDogdGhlIG9wZXJhdGlvbiBkZXNjcmliZWQgYnkgdGhpcyBlbmRwb2ludC4gU2VlIHRoZSBbT3BlcmF0aW9uIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQjb3BlcmF0aW9uT2JqZWN0KQoKIyMjIGFjdGlvbnMoKQpMaXN0IGFsbCBhY3Rpb25zLiBBbiBhY3Rpb24gaXMgYW4gQVBJIGVuZHBvaW50IHNlbWFudGl6ZWQgd2l0aCBbYW5ub3RhdGlvbnMgZGVzY3JpYmVkIGhlcmVdKGh0dHA6Ly93d3cuaW50ZWxsaWdlbmNlLnR1Yy5nci9+cGV0cmFraXMvcHVibGljYXRpb25zL1NPQVM0LnBkZikuIEl0IGhhcyB0aGUgZm9sbG93aW5ncyBwcm9wZXJ0aWVzIDoKICogKippZCoqIDogdGhlIGlkZW50aWZpZXIgb2YgdGhlIGFjdGlvbgogKiAqKnR5cGUqKiA6IHRoZSB0eXBlIG9mIGFjdGlvbi4gVGhpcyBzaG91bGQgYmUgYSBzdWJ0eXBlIG9mIFtzY2hlbWEub3JnIEFjdGlvbl0oaHR0cDovL3NjaGVtYS5vcmcvQWN0aW9uKSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiAqICoqb3BlcmF0aW9uKiogOiBwYXRoIGFuZCBtZXRob2QKICogKippbnB1dCoqIDogYW4gbWFwIG9mIGNvbmNlcHRzID0+IHBhcmFtZXRlcnMgbG9jYXRpb24KICogKippbnB1dENvbGxlY3Rpb24qKiA6IGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgYWN0aW9uIHRha2VzIGEgY29sbGVjdGlvbiBhcyBpbnB1dAogKiAqKmlucHV0Qm9keVR5cGVzKiogOiB0aGUgcG9zc2libGUgbWltZS10eXBlcyBmb3IgdGhlIHJlcXVlc3QgYm9keSwgaWYgdGhlcmUgaXMgb25lCiAqICoqb3V0cHV0KiogOiBhbiBtYXAgb2YgY29uY2VwdHMgPT4gb2JqZWN0IGZpZWxkcwogKiAqKm91dHB1dFNjaGVtYSoqOiBUaGUgSlNPTiBzY2hlbWEgb2Ygb3V0cHV0CiAqICoqb3V0cHV0Q29sbGVjdGlvbioqIDogYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBhY3Rpb24gb3V0cHV0cyBhIGNvbGxlY3Rpb24KICogKipvdXRwdXRCb2R5VHlwZXMqKiA6IHRoZSBwb3NzaWJsZSBtaW1lLXR5cGVzIGZvciB0aGUgcmVzcG9uc2UgYm9keSwgaWYgdGhlcmUgaXMgb25lCiAqICoqc3VtbWFyeSoqIDogdGhlIHN1bW1hcnkgb2YgdGhlIG9wZXJhdGlvbiB0aGlzIGFjdGlvbiByZWZlcnMgdG8KICogKipjYW5Vc2UqKiA6IGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoaXMgbGlicmFyeSBpcyBhYmxlIHRvIHVzZSB0aGUgYWN0aW9uIG9yIG5vdAoKIyMjIGV4ZWN1dGUoYWN0aW9uSWQgWywgaW5wdXQsIHNlcnZlcl0pClJldHVybiBhIHByb21pc2UuIE9uY2UgcmVzb2x2ZWQsIGNhbiBiZSBhbiBvYmplY3Qgb3IgYSBzdHJlYW0gb2Ygb2JqZWN0cyB3aGljaCBhcmUgbWFwcyBvZiBjb25jZXB0cyBhbmQgdGhlaXIgdmFsdWUuCgoqKmFjdGlvbklkKiogaXMgdGhlIGlkIG9mIGFuIGFjdGlvbiBsaXN0ZWQgd2l0aCBgYWN0aW9ucygpYC4gKippbnB1dCoqIGlzIGlzIGEgbWFwIG9mIGNvbmNlcHRzIGFuZCB0aGVpciB2YWx1ZS4gSXQgY2FuIGJlIGEgc3RyZWFtIG9mIG9iamVjdHMgdG9vLiAqKnNlcnZlcioqIGlzIGFuIHVybCB0byBxdWVyeSwgaWYgbm90IHByb3ZpZGVkIGl0IHdpbGwgYmUgcmVzb2x2ZWQgdG8gdGhlIHVybCBvZiB0aGUgZmlyc3QgW1NlcnZlciBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI3NlcnZlck9iamVjdCkgb2YgdGhlIGBzZXJ2ZXJzYCBwcm9wZXJ0eSBvZiB0aGUgQVBJIGRlc2NyaXB0aW9uLgo= readmeEtag: '"8646eda7d1137d4c3aad05f2796069c510c1636e"' readmeLastModified: Wed, 12 May 2021 11:30:06 GMT repositoryId: 112844830 description: Semantic Open API Specification library created: '2017-12-02T13:37:23Z' updated: '2021-05-12T11:30:18Z' language: JavaScript archived: false stars: 3 watchers: 4 forks: 0 owner: koumoul-dev logo: https://avatars.githubusercontent.com/u/16051219?v=4 license: MIT repoEtag: '"4fc642745d9cb50688124845171a2f1751c56e619aab3bc0dc9c77e4a485e39f"' repoLastModified: Wed, 12 May 2021 11:30:18 GMT foundInMaster: true category: Parsers id: 68d9f6193089b720b24dc37563d11597 - source: openapi3 tags repository: https://github.com/himenon/openapi-typescript-practice v3: true repositoryMetadata: base64Readme: >- IyBAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtcHJhY3RpY2UKCi0gW+ODieOCreODpeODoeODs+ODiCAtIGh0dHBzOi8vaGltZW5vbi5naXRodWIuaW8vb3BlbmFwaS10eXBlc2NyaXB0LXByYWN0aWNlXShodHRwczovL2hpbWVub24uZ2l0aHViLmlvL29wZW5hcGktdHlwZXNjcmlwdC1wcmFjdGljZSkKCiMjIERldmVsb3BtZW50Cgp8IHNjcmlwdHMgICAgICAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCA6LS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYnVpbGQgICAgICAgICAgIHwgYnVpbGQ6Y29kZSwgYnVpbGQ6ZG9jcyDjgpLpoIbmrKHlrp/ooYwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYnVpbGQ6Y29kZSAgICAgIHwgVHlwZVNjcmlwdCDjga7jgrPjg7zjg4njgpLnlJ/miJAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBidWlsZDpkb2NzICAgICAgfCDjg4njgq3jg6Xjg6Hjg7Pjg4jjgpLnlJ/miJAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgY2xlYW4gICAgICAgICAgIHwgYnVpbGQg6Zai6YCj44Gu44OV44Kh44Kk44Or44O744OH44Kj44Os44Kv44OI44Oq44KS5YmK6ZmkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwganNvbjJzY2hlbWEgICAgIHwganNvbiDjgYvjgokgT3BlbkFwaSAzLjAg44GuIHNjaGVtYSDjgpLlkJDjgY3lh7rjgZnjgILlt6jlpKfjgaoganNvbiDjgarjganjgavliKnnlKjjgZnjgovjgajoia/jgYQgICAgIHwKfCBtb2NrOnNlcnZlciAgICAgfCBgeWFybiBydW4gbW9jazpzZXJ2ZXIgbG9jYWxob3N0YOOBqOWun+ihjOOBmeOCi+OBk+OBqOOBpyBBUEkgTW9jayBTZXJ2ZXIg44KS6LW35YuVIHwKfCBwdWJsaXNoOmdocGFnZXMgfCBkb2NzIOOCkiBnaHBhZ2VzIOOBqyBwdWJsaXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCB0cyAgICAgICAgICAgICAgfCB0cy1ub2RlIOOCkuWun+ihjOOBmeOCiyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIEJ1aWxkIFBpcGVsaW5lCgojIyMgeWFybiBidWlsZDpjb2RlCgohW2J1aWxkOmNvZGVdKC4vYnVpbGQtcGlwZWxpbmUucG5nKQoKIyMjIFJlbGVhc2UKCnJlbGVhc2UgdmVyc2lvbgoKYGBgYmFzaAp5YXJuIHJ1biBsZXJuYSB2ZXJzaW9uIC0teWVzCmBgYAoKIyMgVG9vbHMKCi0gaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXBoaWxvc293YWZmbGUub3BlbmFwaS1kZXNpZ25lcgotIGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9zd2FnZ2VyYXBpL3N3YWdnZXItdWkvCi0gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN0b3BsaWdodC9wcmlzbS1jbGkKLSBodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vcHJpc20KCiMjIFJlZmVyZW5jZQoKLSBbVlNDb2RlIOOBp+ODquODleOCoeOCr+OCv+ODquODs+OCsOODu+S/neWuiOOBmeOCiyBPcGVuQVBJIC0gUWlpdGFdKGh0dHBzOi8vcWlpdGEuY29tL3RNaW5hbWkvaXRlbXMvNWIxYTkyMWU4MmI0Yzc5NzljZDEpCi0gW+S/uueahOOAkE9BU+OAkeOBqOOBruWQkeOBjeWQiOOBhOaWuSAo54iG6YCf44GnIE9wZW5BUEkg44Go5Y+L6YGU44Gr44Gq44KN44GGKV0oaHR0cHM6Ly90ZWNoLWJsb2cub3B0aW0uY28uanAvZW50cnkvMjAyMC8wNC8xMy8xMDAwMDApCgojIyBMSUNFTlNFCgpNSVQK readmeEtag: '"856dfa0c3657e95f8346bd85ef85713f531203e2"' readmeLastModified: Sun, 31 Jan 2021 08:30:24 GMT repositoryId: 305648117 description: OpenAPIを利用したAPI作成と、開発、リリースフローまでの仕組みづくりの練習 created: '2020-10-20T08:56:12Z' updated: '2022-09-14T18:32:19Z' language: HTML archived: false stars: 3 watchers: 2 forks: 0 owner: Himenon logo: https://avatars.githubusercontent.com/u/6715229?v=4 license: MIT repoEtag: '"ace0bacd6d618252d70dac4a58aa15f2ae0dd515a8fef85c77495cb83085de2e"' repoLastModified: Wed, 14 Sep 2022 18:32:19 GMT foundInMaster: true category: SDK id: d86d9ef52052c9adffcee267a44e13f2 - source: openapi3 tags repository: https://github.com/yusufsefasezer/jax-rs-example v3: true repositoryMetadata: base64Readme: >- IyBKYXZhIEpBWC1SUyBSRVNUCgpBIHNpbXBsZSBSRVNUIGJhc2VkIGFwcGxpY2F0aW9uIGRldmVsb3BlZCB3aXRoIEpBVkEsIEpBWC1SUywgU3dhZ2dlcihPcGVuQVBJKSBhbmQgQW5ndWxhci4KCiMjIFtEb3dubG9hZF0oaHR0cHM6Ly9naXRodWIuY29tL3l1c3Vmc2VmYXNlemVyL2pheC1ycy1leGFtcGxlL2FyY2hpdmUvbWFzdGVyLnppcCkKCiMjIEhvdyB0byBydW4KCk1hdmVuIG11c3QgYmUgaW5zdGFsbGVkIHRvIHJ1biB0aGlzIGFwcGxpY2F0aW9uLgoKSWYgeW91IGhhdmUgbWF2ZW4gZXhlY3V0ZSB0aGUgYmVsb3cgY29tbWFuZCB0byBydW4uCgpgYGAKbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgpUaGVuIGRlcGxveSBnZW5lcmF0ZWQgLndhciBmaWxlKHNlcnZlci90YXJnZXQpIHRvIHNlcnZsZXQgY29udGFpbmVyKHRvbWNhdCwgamV0dHkpIG9yIGFwcGxpY2F0aW9uIHNlcnZlcihwYXlhcmEsIGdsYXNzZmlzaCwgdG9tZWUpCgoqKk5PVEU6KiogU2VydmxldCBDb250YWluZXIgbXVzdCBzdXBwb3J0IFNlcnZsZXQgNi4wIHNwZWNzCgojIyBEb2NrZXIKCioqRG9ja2VyIG11c3QgYmUgaW5zdGFsbGVkLioqCgpCdWlsZCB0aGUgRG9ja2VyIGltYWdlIHdpdGggdGhlIHRhZyAiamF2YS1zZXJ2bGV0LWNvbnRhY3QiCgpgYGAKZG9ja2VyIGJ1aWxkIC10IGphdmEtc2VydmxldC1jb250YWN0IC4KYGBgCgpgYGAKZG9ja2VyIHJ1biAtcCA4MDo4MDgwIGphdmEtc2VydmxldC1jb250YWN0CmBgYAoKWW91IGNhbiBhY2Nlc3MgdGhlIGFwcGxpY2F0aW9uIHVzaW5nIGBsb2NhbGhvc3QvamF4LXJzLWV4YW1wbGVgIGluIHlvdXIgd2ViIGJyb3dzZXIuCgojIyBTY3JlZW5zaG90CgotIFtEZWZhdWx0XShzY3JlZW5zaG90L2RlZmF1bHQucG5nKQotIFtDcmVhdGVdKHNjcmVlbnNob3QvY3JlYXRlLnBuZykKLSBbU2hvd10oc2NyZWVuc2hvdC9zaG93LnBuZykKLSBbRWRpdF0oc2NyZWVuc2hvdC9lZGl0LnBuZykKLSBbRG9jdW1lbnRhdGlvbiAvIFN3YWdnZXJdKHNjcmVlbnNob3QvZG9jdW1lbnRhdGlvbi5wbmcpCi0gW0RvY3VtZW50YXRpb24gLyBTd2FnZ2VyIEdFVF0oc2NyZWVuc2hvdC9kb2N1bWVudGF0aW9uLWdldC5wbmcpCi0gW0RvY3VtZW50YXRpb24gLyBTd2FnZ2VyIFBPU1RdKHNjcmVlbnNob3QvZG9jdW1lbnRhdGlvbi1wb3N0LnBuZykKCiMgTGljZW5zZQpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIFtMSUNFTlNFXShMSUNFTlNFKSBmaWxlIGZvciBkZXRhaWxzCgpDcmVhdGVkIGJ5IFtZdXN1ZiBTZXplcl0oaHR0cHM6Ly93d3cueXVzdWZzZXplci5jb20pCg== readmeEtag: '"c468686b2cdc4c43029b9e0e8b13736d0c4fba25"' readmeLastModified: Wed, 13 Mar 2024 19:28:34 GMT repositoryId: 284446325 description: >- A simple REST based application developed with JAVA, JAX-RS, Swagger and Angular. created: '2020-08-02T11:16:21Z' updated: '2024-03-13T19:30:14Z' language: TypeScript archived: false stars: 3 watchers: 2 forks: 2 owner: yusufsefasezer logo: https://avatars.githubusercontent.com/u/9640186?v=4 license: MIT repoEtag: '"d9731178a72beb9c48e8c744c0e17bab1303dae1e9b850bd25bd1bba17b26db3"' repoLastModified: Wed, 13 Mar 2024 19:30:14 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 0dd7d55cb3c92f112418b9838b65625f - source: openapi3 tags repository: https://github.com/oai/stories v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEluaXRpYXRpdmUgKE9BSSkgU3RvcmllcwpUaGlzIGlzIGEgcHVibGljIHJlcG9zaXRvcnkgZm9yIHN1Z2dlc3RpbmcsIGNyZWF0aW5nLCBhbmQgZXZvbHZpbmcgc3RvcmllcyBhYm91dCB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChPQVMpLiBJbiBhbiBlZmZvcnQgdG8gZW5nYWdlIG1vcmUgd2l0aCB0aGUgY29tbXVuaXR5IHdlIGFyZSBtb3ZpbmcgdGhpcyBwcm9jZXNzIG9udG8gR2l0aHViLCBhbmQgdXNpbmcgaXNzdWVzLCBkaXNjdXNzaW9ucywgYW5kIHByb2plY3QgdG8gZGV2ZWxvcCBhIHJlZ3VsYXIgd2F2ZSBvZiBzdG9yeXRlbGxpbmcgYXJvdW5kIHRoZSBzcGVjaWZpY2F0aW9uLgoKVGhpcyByZXBvIGlzIHVzZWQgdG8gZ2F0aGVyIGlkZWFzIGFuZCBtb3ZlIGZvcndhcmQgc3RvcmllcyB0aGF0IHF1aXRlIG9mdGVuIHdpbGwgZW5kIHVwIG9uIHRoZSBPQUkgYmxvZywgYnV0IGNhbiBhbHNvIGJlIHB1Ymxpc2hlZCBvciBzeW5kaWNhdGVkIHRvIG90aGVyIGxvY2F0aW9ucywgaGVscGluZyBleHRlbmQgdGhlIHJlYWNoIG9mIHRoZSBPQUksIGFuZCBlZHVjYXRlIG1vcmUgb2YgdGhlIGNvbW11bml0eSBhYm91dCB3aGF0IHRoZSBzcGVjaWZpY2F0aW9uIGNhbiBkby4KCi0gW09wZW5BUEkgQmxvZyBHdWlkZWxpbmVzXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFDanBtUnpBRzZJdWpTdl90c053VXc2dnktMjlramJTUlY2NXUzMXNBSVJZL2VkaXQjKQoKIyMgQ3VycmVudCBCbG9nIFBvc3RzIGluIHRoZSBRdWV1ZQpUaGVzZSBhcmUgc29tZSBvZiB0aGUgYmxvZyBwb3N0cyB0aGF0IGhhdmUgYmVlbiBzdWdnZXN0ZWQgYW5kIGFyZSBpbiBuZWVkIG9mIGNoYW1waW9ucyB0byBoZWxwIG1vdmUgZWFjaCBzdG9yeSBmb3J3YXJkLgoKKiAqKk9BSSBTSUdzKiogKFtJc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcy8xMSkpIChXb3JrZmxvdyBTdGF0dXM6IFtJZGVhc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBaWRlYXMpIC8gVG9waWNzKQoqICoqSlNPTiBTY2hlbWEgQnVuZGxpbmcqKiAoW0lzc3VlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1N0b3JpZXMvaXNzdWVzLzExKSkgKFdvcmtmbG93IFN0YXR1czogW1N0b3JpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvU3Rvcmllcy9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBb3BlbitsYWJlbCUzQXN0b3JpZXMpIC8gRHJhZnQpCiogKipBUEkgQ29weXJpZ2h0IHdpdGggT0FTKiogKFtJc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcy8yKSkgKFtQcm9qZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL1N0b3JpZXMvcHJvamVjdHMvMSkpIChXb3JrZmxvdyBTdGF0dXM6IFtTdHVjdHVyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvU3Rvcmllcy9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBb3BlbitsYWJlbCUzQXN0cnVjdHVyYWwpIC8gTm8pCiogKipYZXJvIE9wZW5BUEkgSm91cm5leSoqIChbSXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvU3Rvcmllcy9pc3N1ZXMvMykpIChbUHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL3Byb2plY3RzLzIpKSAoV29ya2Zsb3cgU3RhdHVzOiBbU3Rvcmllc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBc3RvcmllcykgLyBEcmFmdCkKKiAqKkdpdGh1YiBPcGVuQVBJIEpvdXJuZXkqKiAoSXNzdWUpIChbUHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL3Byb2plY3RzLzMpKSAoV29ya2Zsb3cgU3RhdHVzOiBbU3Rvcmllc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBc3RvcmllcykgLyBEcmFmdCkKKiAqKk9wZW5BUEkgRm9ybWF0IFRvb2wqKiAoW0lzc3VlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL1N0b3JpZXMvaXNzdWVzLzUpKSAoV29ya2Zsb3cgU3RhdHVzOiBbU3Rvcmllc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBc3RvcmllcykgLyBOb3RlcykKKiAqKk9wZW5BUEkgRGlmZiBUb29sKiogKFtJc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcy82KSkgKFdvcmtmbG93IFN0YXR1czogW1N0b3JpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvU3Rvcmllcy9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBb3BlbitsYWJlbCUzQXN0b3JpZXMpIC8gTm90ZXMpCiogKipPdmVybGF5cyoqIChbSXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvU3Rvcmllcy9pc3N1ZXMvNykpIChXb3JrZmxvdyBTdGF0dXM6IFtJZGVhc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBaWRlYXMpIC8gVG9waWNzKQoqICoqRXh0ZW5zaW9ucyoqIChbSXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvU3Rvcmllcy9pc3N1ZXMvOCkpIChXb3JrZmxvdyBTdGF0dXM6IFtJZGVhc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9TdG9yaWVzL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBaWRlYXMpICAvIFRvcGljcykKCkZlZWwgZnJlZSB0byBzdWJtaXQgeW91ciBpZGVhIGZvciBhbiBPcGVuQVBJIHN0b3J5IGFzIGEgR2l0aHViIGlzc3VlLCBvciBqdW1wIGluIG9uIHRoZSBwcm9qZWN0IHBhZ2UgZm9yIG9uZSBhbHJlYWR5IGluIG1vdGlvbi4KCiMjIFN0b3J5IFdvcmtmbG93CldlIGFyZSBkZXZlbG9waW5nIGEgd29ya2Zsb3cgZm9yIHB1c2hpbmcgc3RvcmllcyB0byBhIGZpbmlzaCBzdGF0ZS4gTm90IGFsbCBzdG9yaWVzIHdpbGwgdWx0aW1hdGVseSBtYWtlIGl0IHRvIGEgZmluaXNoZWQgc3RhdGUsIGxldCBhbG9uZSB0aGUgT0FJIGJsb2csIGJ1dCB3ZSB1c2UgdGhpcyBwcm9jZXNzIHRvIGRldmVsb3Agc3RvcmllcyBhbmQgZXZvbHZlIHRoZW0gZm9yIGV2ZW50cyBsaWtlIEFTQywgY3JlYXRpb24gb2YgdmlkZW9zLCBhbmQgb3RoZXIgY2hhbm5lbHMuCgojIyMgSWRlYXMgLSBUaGUgc3VibWlzc2lvbiBvZiBhIG5ldyBpZGVhIGZvciBhIHN0b3J5LgoKKiAqKlRvcGljcyoqIC0gQSB0b3BpYyB0byB0ZWxsIGEgc3RvcnkgYWJvdXQuCiogKipQZW9wbGUqKiAtIFNvbWVvbmUgdG8gdGVsbCB0aGUgc3RvcnkuCiogKipDb21wYW5pZXMqKiAtIFdobyBhIHN0b3J5IGludm9sdmVzLgoKIyMjIFN0b3JpZXMgLSBNb3Zpbmcgc29tZXRoaW5nIGZyb20gaWRlYSB0byBzdG9yeS4KCiogKipJbnRlcnZpZXdzKiogLSBDb25kdWN0IGludGVydmlld3MgZm9yIHN0b3J5LgoqICoqTm90ZXMqKiAtIENvbXBpbGUgYW5kIHNoYXJlIG5vdGVzIGZvciBzdG9yeS4KKiAqKkRyYWZ0KiogLSBDcmVhdGUgYSBkcmFmdCBmb3IgYSBzaW5nbGUgc3RvcnkuCgojIyMgU3RydWN0dXJhbCAtIFRoZSB0aW1lIGZvciBtYWtpbmcgYmlnIGNoYW5nZXMuCgoqICoqWWVzIC8gTm8qKiAtIERvIHdlIGV2ZW4gZG8gdGhpcyBzdG9yeT8KKiAqKkJpZyBDaGFuZ2VzKiogLSBTaGlmdGluZyB0aGUgZW50aXJlIHN0cnVjdHVyZS4KKiAqKkN1bHRpdmF0ZSoqIC0gRG8gbW9yZSByZXNlYXJjaCBhbmQgZmxlc2ggb3V0LgoqICoqQ3JlYXRpdmUqKiAtIERvIHdlIG5lZWQgYW55IGltYWdlcz8KCiMjIyBFZGl0aW5nIC0gVGhlIHByb2Nlc3Mgb2YgcmVmaW5pbmcgYSBzdG9yeSBmb3IgcHVibGlzaGluZwoKKiAqKkNoYW5nZXMqKiAtIE5vIG1vcmUgYmlnIGNoYW5nZXMgdG8gYSBzdG9yeS4KKiAqKkNvcHkgRWRpdHMqKiAtIEludHJvZHVjaW5nIGVkaXRzIHRvIHRoZSBzdG9yeSBmcm9tIHRoZSBlZGl0b3IuCiogKipDcmVhdGl2ZSoqIC0gQWRkIGltYWdlcywgcXVvdGVzLCBsaW5rcywgZXRjLgoKIyMjIEdvIExpdmUgLSBCZWdpbiB0byBtb3ZlIHRvd2FyZHMgbWFraW5nIGxpdmUuCgoqICoqSW50ZXJuYWwgQXBwcm92YWwqKiAtIEdldCBpbnRlcm5hbCBhcHByb3ZhbHMuCiogKipFeHRlcm5hbCBBcHByb3ZhbCoqIC0gR2V0IG90aGVyIGFwcHJvdmFscy4KKiAqKlB1Ymxpc2gqKiAtIEdvIGxpdmUgd2l0aCBhIHN0b3J5IG9uIGJsb2cgJiBzb2NpYWwuCiogKipTb2NpYWwqKiAtIEFtcGxpZnkgdXNpbmcgc29jaWFsIG1lZGlhLgoKIyMgR2V0IEludm9sdmVkClRoaXMgaXMgYSBjb21tdW5pdHkgcHJvamVjdCB3aXRoaW4gdGhlIE9BSSBhbmQgd2UgYXJlIGxvb2tpbmcgZm9yIHN0b3J5IGlkZWEgc3VibWlzc2lvbnMgYXMgd2VsbCBhcyBmb2xrcyBpbiB0aGUgZm9sbG93aW5nIHJvbGVzIHRvIGhlbHAgbW92ZSBzdG9yaWVzIGZvcndhcmQ6CgoqICoqSW50ZXJ2aWV3ZXJzKiogLSBQZW9wbGUgd2hvIGNhbiBoZWxwIGludGVydmlldyBwcm92aWRlcnMsIHRvb2xpbmcgbWFrZXJzLCBhbmQgb3RoZXIgcGVvcGxlIHB1dHRpbmcgT3BlbkFQSSB0byB3b3JrLgoqICoqV3JpdGVycyoqIC0gUGVvcGxlIHdobyBjYW4gaGVscCBhY3R1YWxseSB0YWtlIGludGVydmlld3Mgb3IgdG9waWNzLCBkbyB0aGUgcmVzZWFyY2gsIGFuZCBwcm9kdWNlIHN0b3JpZXMgZm9yIHB1Ymxpc2hpbmcuCiogKipFZGl0b3JzKiogKiotIFBlb3BsZSB3aG8gY2FuIGhlbHAgY29weSBlZGl0IHN0b3JpZXMgdGhhdCBhcmUgc3VibWl0dGVkIG55IGF1dGhvcnMgYW5kIGhlbHAgdXMgcHJvZHVjZSBoaWdoIHF1YWxpdHkgc3Rvcmllcy4KCkZlZWwgZnJlZSB0byBqdW1wIGluIG9uIG9uZSBvZiB0aGUgcHJvamVjdHMgYWJvdmUsIG9yIHN1Ym1pdCBhIEdpdGh1YiBpc3N1ZSBpZiB5b3UgaGF2ZSBhbnkgY29tbWVudHMsIHF1ZXN0aW9ucywgb3IgZmVlZGJhY2sgYWJvdXQgc3Rvcmllcy4gSWYgeW91J2QgbGlrZSB0byBiZSBhZGRlZCBhcyBhIGNvbnRyaWJ1dG9yIHBsZWFzZSBzdWJtaXQgYW4gaXNzdWUgc3RhdGluZyBob3cgeW91J2QgbGlrZSB0byBoZWxwIG91dCBhbmQgd2UgY2FuIGFkZCB5b3UgYXMgYSBjb250cmlidXRvciB0byB0aGUgcmVwb3NpdG9yeS4K readmeEtag: '"8630431c01481edf446dd57bc75e98faabc6dcfe"' readmeLastModified: Fri, 18 Jun 2021 01:33:17 GMT repositoryId: 366088081 description: >- Submit ideas, writing, and publishing stories about the OpenAPI specification. created: '2021-05-10T15:21:31Z' updated: '2024-08-02T02:22:50Z' language: null archived: false stars: 3 watchers: 7 forks: 3 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 repoEtag: '"6a0412207c01edf279ab914ceee88bfe587e46b3e2a93ba9fe5cbd91ec90c32f"' repoLastModified: Fri, 02 Aug 2024 02:22:50 GMT foundInMaster: true category: Testing id: af4943447a676919750a937a8b3f5fd6 - source: openapi3 tags repository: https://github.com/go-lite/lite v3: true id: 573819accf54a9402aa0d27427ba0907 repositoryMetadata: base64Readme: >- PHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPgogIDxpbWcgc3JjPSIuL2xvZ28vbGl0ZS5wbmciIGhlaWdodD0iMjAwIiBhbHQ9IkxpdGUgTG9nbyIgLz4KPC9wPgoKWyFbR29dKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1saXRlL2xpdGUvYWN0aW9ucy93b3JrZmxvd3MvZ28ueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vZ2l0aHViLmNvbS9nby1saXRlL2xpdGUvYWN0aW9ucy93b3JrZmxvd3MvZ28ueW1sKQpbIVtHbyBSZWZlcmVuY2VdKGh0dHBzOi8vcGtnLmdvLmRldi9iYWRnZS9naXRodWIuY29tL2dvLWxpdGUvbGl0ZS5zdmcpXShodHRwczovL3BrZy5nby5kZXYvZ2l0aHViLmNvbS9nby1saXRlL2xpdGUpClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9nby1saXRlL2xpdGUpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZ28tbGl0ZS9saXRlKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvZ28tbGl0ZS9saXRlL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj01T0ZYVFFLSEVFKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2dvLWxpdGUvbGl0ZSkKCiMgTGl0ZTogQSBUeXBlZCBXcmFwcGVyIGZvciBHb0ZpYmVyCiMjIE92ZXJ2aWV3CgpUaGUgYGxpdGVgIHBhY2thZ2UgcHJvdmlkZXMgZnVuY3Rpb25hbGl0aWVzIGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgT3BlbkFQSSBkb2N1bWVudGF0aW9uIGZvciBIVFRQIG9wZXJhdGlvbnMgYmFzZWQgCm9uIHRoZSBzdHJ1Y3QgZGVmaW5pdGlvbnMgYW5kIHRoZWlyIHRhZ3Mgd2l0aGluIGEgR28gYXBwbGljYXRpb24uIFRoaXMgZG9jdW1lbnQgZXhwbGFpbnMgaG93IHRvIHVzZSB0aGUgYGxpdGVgIHBhY2thZ2UsIApzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gdGhlIHVzYWdlIG9mIHRoZSBgbGl0ZWAgdGFnLgoKIyMgSW5zdGFsbGF0aW9uCgpUbyB1c2UgdGhlIGBsaXRlYCBwYWNrYWdlLCB5b3UgbmVlZCB0byBpbnN0YWxsIGl0IGZpcnN0LiBBc3N1bWluZyB5b3UgaGF2ZSBHbyBpbnN0YWxsZWQsIHlvdSBjYW4gYWRkIGl0IHRvIHlvdXIgcHJvamVjdCB3aXRoOgoKYGBgYmFzaApnbyBnZXQgZ2l0aHViLmNvbS9nby1saXRlL2xpdGUKYGBgCgojIyBVc2FnZQojIyMgU2ltcGxlIEV4YW1wbGUKSGVyZSBpcyBhIHNpbXBsZSBleGFtcGxlIG9mIGhvdyB0byB1c2UgTGl0ZToKCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJnaXRodWIuY29tL2dvLWxpdGUvbGl0ZSIKCSJsb2ciCikKCnR5cGUgUmVzcG9uc2Ugc3RydWN0IHsKCU1lc3NhZ2Ugc3RyaW5nIGBqc29uOiJtZXNzYWdlImAKfQoKZnVuYyBtYWluKCkgewoJYXBwIDo9IGxpdGUuTmV3KCkKCglsaXRlLkdldChhcHAsICIvIiwgZnVuYyhjICpsaXRlLkNvbnRleHROb1JlcXVlc3QpIChSZXNwb25zZSwgZXJyb3IpIHsKCQlyZXR1cm4gUmVzcG9uc2V7TWVzc2FnZTogIkhlbGxvLCB3b3JsZCEifSwgbmlsCgl9KQoKCWxvZy5GYXRhbChhcHAuTGlzdGVuKCI6MzAwMCIpKQp9CmBgYApUaGUgc3dhZ2dlciBzcGVjcyBpcyBhdmFpbGFibGUgYXQgYGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9zd2FnZ2VyL2luZGV4Lmh0bWxgIGlmIHBvcnQgYDMwMDBgIGlzIHVzZWQuCgojIyMgT3RoZXIgRXhhbXBsZQpgYGBnbwpwYWNrYWdlIG1haW4KCmltcG9ydCAoCgkiaW8iCgkibG9nIgoJIm1pbWUvbXVsdGlwYXJ0IgoJIm9zIgoKCSJnaXRodWIuY29tL2dvLWxpdGUvbGl0ZSIKCSJnaXRodWIuY29tL2dvLWxpdGUvbGl0ZS9lcnJvcnMiCgkiZ2l0aHViLmNvbS9nby1saXRlL2xpdGUvbWltZSIKCSJnaXRodWIuY29tL2dvZmliZXIvZmliZXIvdjIvbWlkZGxld2FyZS9sb2dnZXIiCgkiZ2l0aHViLmNvbS9nb2ZpYmVyL2ZpYmVyL3YyL21pZGRsZXdhcmUvcmVjb3ZlciIKKQoKdHlwZSBJbWFnZVJlc3BvbnNlID0gW11ieXRlCgp0eXBlIEltYWdlUGF5bG9hZCBzdHJ1Y3QgewoJQm9keSBJbWFnZSBgbGl0ZToicmVxPWJvZHksbXVsdGlwYXJ0L2Zvcm0tZGF0YSJgCn0KCnR5cGUgSW1hZ2Ugc3RydWN0IHsKCUluZm8gIGluZm8gICAgICAgICAgICAgICAgICBgZm9ybToiaW5mbyJgCglJbWFnZSAqbXVsdGlwYXJ0LkZpbGVIZWFkZXIgYGZvcm06ImltYWdlImAKfQoKdHlwZSBpbmZvIHN0cnVjdCB7CglGaWxlTmFtZSBzdHJpbmcgYGZvcm06ImZpbGVuYW1lImAKfQoKZnVuYyBtYWluKCkgewoJYXBwIDo9IGxpdGUuTmV3KCkKCglsaXRlLlVzZShhcHAsIGxvZ2dlci5OZXcoKSkKCWxpdGUuVXNlKGFwcCwgcmVjb3Zlci5OZXcoKSkKCglsaXRlLlBvc3QoYXBwLCAiL3YxL2ltYWdlL2FuYWx5c2UiLCBmdW5jKGMgKmxpdGUuQ29udGV4dFdpdGhSZXF1ZXN0W0ltYWdlUGF5bG9hZF0pIChJbWFnZVJlc3BvbnNlLCBlcnJvcikgewoJCXJlcSwgZXJyIDo9IGMuUmVxdWVzdHMoKQoJCWlmIGVyciAhPSBuaWwgewoJCQlyZXR1cm4gSW1hZ2VSZXNwb25zZXt9LCBlcnJvcnMuTmV3QmFkUmVxdWVzdEVycm9yKGVyci5FcnJvcigpKQoJCX0KCgkJaW1hZ2UgOj0gcmVxLkJvZHkuSW1hZ2UKCgkJaWYgZXJyID0gYy5TYXZlRmlsZShpbWFnZSwgIi4vZXhhbXBsZXMvZmlsZS91cGxvYWRzLyIraW1hZ2UuRmlsZW5hbWUpOyBlcnIgIT0gbmlsIHsKCQkJcmV0dXJuIEltYWdlUmVzcG9uc2V7fSwgZXJyCgkJfQoKCQkvLyBnZXQgdGhlIGZpbGUKCQlmLCBlcnIgOj0gb3MuT3BlbigiLi9leGFtcGxlcy9maWxlL3VwbG9hZHMvIiArIGltYWdlLkZpbGVuYW1lKQoJCWlmIGVyciAhPSBuaWwgewoJCQlyZXR1cm4gSW1hZ2VSZXNwb25zZXt9LCBlcnIKCQl9CgoJCS8vIER1bW15IGRhdGEgZm9yIHRoZSByZXNwb25zZQoJCXJlc3BvbnNlLCBlcnIgOj0gaW8uUmVhZEFsbChmKQoJCWlmIGVyciAhPSBuaWwgewoJCQlsb2cuRmF0YWxmKCJmYWlsZWQgcmVhZGluZyBmaWxlOiAlcyIsIGVycikKCQl9CgoJCWMuU2V0Q29udGVudFR5cGUobWltZS5JbWFnZVBuZykKCgkJcmV0dXJuIHJlc3BvbnNlLCBuaWwKCX0pLlNldFJlc3BvbnNlQ29udGVudFR5cGUoImltYWdlL3BuZyIpCglsaXRlLlBvc3QoYXBwLCAiL3YxL3BkZiIsIGZ1bmMoYyAqbGl0ZS5Db250ZXh0V2l0aFJlcXVlc3RbW11ieXRlXSkgKGFueSwgZXJyb3IpIHsKCQlyZXEsIGVyciA6PSBjLlJlcXVlc3RzKCkKCQlpZiBlcnIgIT0gbmlsIHsKCQkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ld0JhZFJlcXVlc3RFcnJvcihlcnIuRXJyb3IoKSkKCQl9CgoJCWxvZy5QcmludGxuKHN0cmluZyhyZXEpKQoKCQlyZXR1cm4gbmlsLCBuaWwKCX0pCgoJYXBwLkFkZFNlcnZlcigiaHR0cDovL2xvY2FsaG9zdDo5MDAwIiwgImV4YW1wbGUgc2VydmVyIikKCglpZiBlcnIgOj0gYXBwLlJ1bigpOyBlcnIgIT0gbmlsIHsKCQlyZXR1cm4KCX0KfQpgYGAKCiMjIyBTdXBwb3J0ZWQgVGFncwoKVGhlIGBsaXRlYCBwYWNrYWdlIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgdGFncyB3aXRoaW4gc3RydWN0IGRlZmluaXRpb25zIHRvIG1hcCBmaWVsZHMgdG8gZGlmZmVyZW50IHBhcnRzIG9mIGFuIEhUVFAgcmVxdWVzdCBvciByZXNwb25zZToKCnwgVGFnICAgICB8IFNldERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEV4YW1wbGUgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IGBwYXJhbXNgfCBNYXBzIHRvIGEgVVJMIHBhdGggcGFyYW1ldGVyICAgICAgICAgICAgICAgfCBgbGl0ZToicGFyYW1zPWlkImAgICAgICAgICAgIHwKfCBgcXVlcnlgIHwgTWFwcyB0byBhIFVSTCBxdWVyeSBwYXJhbWV0ZXIgICAgICAgICAgICAgIHwgYGxpdGU6InF1ZXJ5PW5hbWUiYCAgICAgICAgfAp8IGBoZWFkZXJgfCBNYXBzIHRvIGFuIEhUVFAgaGVhZGVyICAgICAgICAgICAgICAgICAgICAgfCBgbGl0ZToiaGVhZGVyPUF1dGgiYCAgICAgICB8CnwgYGNvb2tpZWB8IE1hcHMgdG8gYW4gSFRUUCBjb29raWUgICAgICAgICAgICAgICAgICAgICB8IGBsaXRlOiJjb29raWU9c2Vzc2lvbl9pZCJgIHwKfCBgcmVxYCAgIHwgTWFwcyB0byB0aGUgcmVxdWVzdCBib2R5ICAgICAgICAgICAgICAgICAgIHwgYGxpdGU6InJlcT1ib2R5ImAgICAgICAgICAgfAp8IGBlbnVtc2AgfCBNYXBzIHRvIGEgc3RyaW5nIGVudW1zICAgICAgICAgICAgICAgICAgICAgfCBgZW51bXM6Im1hbGUsZmVtYWxlImAgfCAgICAKCgojIyBDb250cmlidXRpbmcKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSEgUGxlYXNlIGZlZWwgZnJlZSB0byBzdWJtaXQgYSBwdWxsIHJlcXVlc3Qgb3Igb3BlbiBhbiBpc3N1ZS4KCiMjIFNldExpY2Vuc2UKTGl0ZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIFNldExpY2Vuc2UuIFNlZSBbTElDRU5TRV0oTElDRU5TRSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCltdOiAjIChFTkQpCg== readmeEtag: '"dea69b1225e1d35572537bb0bd1606d5e2f775db"' readmeLastModified: Mon, 05 Aug 2024 18:05:29 GMT repositoryId: 808226704 description: Lite - fiber wrapper OpenAPI 3 spec auto generate created: '2024-05-30T16:25:58Z' updated: '2024-09-04T05:16:04Z' language: Go archived: false stars: 3 watchers: 1 forks: 0 owner: go-lite logo: https://avatars.githubusercontent.com/u/173594949?v=4 license: MIT repoEtag: '"c6cf193efe937314bb114edfd83a56376db5f1b943f68c1dfd4d1ce2c2a2a7b5"' repoLastModified: Wed, 04 Sep 2024 05:16:04 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/koriit/ktor-controllers-openapi v3: true repositoryMetadata: base64Readme: >- PSBLdG9yIENvbnRyb2xsZXJzIE9wZW5BUEkKCmltYWdlOmh0dHBzOi8vZ2l0aHViLmNvbS9Lb3JpaXQva3Rvci1jb250cm9sbGVycy1vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnlhbWwvYmFkZ2Uuc3ZnW0J1aWxkLCBsaW5rPSJodHRwczovL2dpdGh1Yi5jb20vS29yaWl0L2t0b3ItY29udHJvbGxlcnMtb3BlbmFwaS9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55YW1sIl0KaW1hZ2U6aHR0cHM6Ly93d3cuY29kZWZhY3Rvci5pby9yZXBvc2l0b3J5L2dpdGh1Yi9rb3JpaXQva3Rvci1jb250cm9sbGVycy1vcGVuYXBpL2JhZGdlW0NvZGVGYWN0b3IsbGluaz1odHRwczovL3d3dy5jb2RlZmFjdG9yLmlvL3JlcG9zaXRvcnkvZ2l0aHViL2tvcmlpdC9rdG9yLWNvbnRyb2xsZXJzLW9wZW5hcGldCmltYWdlOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLSVFMiU5RCVBNC1GRjQwODEuc3ZnW2t0bGludCxsaW5rPWh0dHBzOi8va3RsaW50LmdpdGh1Yi5pby9dCgppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9jb20ua29yaWl0LmtvdGxpbi9rdG9yLWNvbnRyb2xsZXJzLW9wZW5hcGkuc3ZnP2xhYmVsPU1hdmVuJTIwQ2VudHJhbFtNYXZlbiBDZW50cmFsLCBsaW5rPSJodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzolMjJjb20ua29yaWl0LmtvdGxpbiUyMiUyMEFORCUyMGE6JTIya3Rvci1jb250cm9sbGVycy1vcGVuYXBpJTIyIl0KaW1hZ2U6aHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9rb3JpaXQva3Rvci1jb250cm9sbGVycy1vcGVuYXBpW0dpdEh1Yl0KCldBUk5JTkc6IEZyb20gdmVyc2lvbiAwLjUuMCBhbGwgcGFja2FnZSBuYW1lcyBoYXZlIGJlZW4gcmVuYW1lZCB0byBtYXRjaCBuZXcgYXJ0aWZhY3QgZ3JvdXAgaWQuCgpTdXBwb3J0IGZvciBPcGVuQVBJMyBpbiBodHRwczovL2dpdGh1Yi5jb20vS29yaWl0L2t0b3ItY29udHJvbGxlcnNba3Rvci1jb250cm9sbGVyc10uCgpUaGUgaWRlYSBpcyB0byB2YWxpZGF0ZSB5b3VyIE9wZW5BUEkgc3BlYyBhZ2FpbnN0IHlvdXIgY29kZSBpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgaXQgZnJvbSB5b3VyIGNvZGUuCgpbV0FSTklOR10KVGhpcyBsaWJyYXJ5IGlzICpXb3JrIEluIFByb2dyZXNzKi4gSXQgZG9lc24ndCBzdXBwb3J0IGFsbCAqcmVsZXZhbnQqIGVsZW1lbnRzIG9mIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBsaWtlCm9hdXRoLCBjYWxsYmFjayBvciBlbmNvZGluZyB5ZXQuIEhvd2V2ZXIsIGFsbCBzdHJ1Y3R1cmFsIGVsZW1lbnRzIHNob3VsZCBiZSBzdXBwb3J0ZWQuCgoKPT0gRXhhbXBsZQpbc291cmNlLGtvdGxpbl0KLS0tLQppbnN0YWxsKFJvdXRpbmcpIHsKICAgIHZhbCBvcGVuYXBpID0ge30uamF2YUNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oIi9vcGVuYXBpLnlhbWwiKS5yZWFkZXIoKS5yZWFkVGV4dCgpCgogICAgb3BlbkFQSUNvbnRyb2xsZXIob3BlbmFwaSkKICAgIHN3YWdnZXJVSUNvbnRyb2xsZXIoKQp9Ci0tLS0KCj09IFRlc3RpbmcKW3NvdXJjZSxrb3RsaW5dCi0tLS0KdmFsIHNlcnZlciA9IFRlc3RBcHBsaWNhdGlvbkVuZ2luZShzZXJ2ZXJDb25maWcoKSkKc2VydmVyLnN0YXJ0KCkKCkxPRy5pbmZvKCJBbmFseXppbmcgS3RvciBzZXJ2ZXIuLi4iKQp2YWwgYW5hbHl6ZXIgPSBLdG9yT3BlbkFQSUFuYWx5emVyKAogICAgICAgIGt0b3IgPSBzZXJ2ZXIuYXBwbGljYXRpb24sCiAgICAgICAgYmFzZVBhdGhzID0gbGlzdE9mKCIvYXBpIiksCiAgICAgICAgZGVmYXVsdEhlYWRlcnMgPSBsaXN0T2YoSHR0cEhlYWRlcihYUmVxdWVzdElkKSksCiAgICAgICAgZGVmYXVsdEVycm9yVHlwZSA9IEFwaUVycm9yOjpjbGFzcwopCgp2YWwgc291cmNlID0gYW5hbHl6ZXIuYW5hbHl6ZSgpCnNlcnZlci5zdG9wKDBMLCAwTCwgVGltZVVuaXQuTUlMTElTRUNPTkRTKQoKTE9HLmluZm8oIlJlYWRpbmcgT3BlbkFQSSBzcGVjLi4uIikKdmFsIGRvYyA9IE9wZW5BUElSZWFkZXIoKS5sb2FkKHt9LmphdmFDbGFzcy5nZXRSZXNvdXJjZUFzU3RyZWFtKCIvb3BlbmFwaS55YW1sIikpCgpMT0cuaW5mbygiVmFsaWRhdGluZyBzcGVjLi4uIikKdmFsIGVycm9ycyA9IE9wZW5BUElNYXRjaGVyKCkubWF0Y2goZG9jLCBzb3VyY2UpCgppZiAoZXJyb3JzLmlzTm90RW1wdHkoKSkgewogICAgTE9HLmluZm8oIlJlc3VsdCBvZiBzZXJ2ZXIgYW5hbHlzaXM6XG57fSIsIHNvdXJjZSkKCiAgICBlcnJvcnMuZm9yRWFjaCB7CiAgICAgICAgTE9HLmVycm9yKGl0KQogICAgfQoKICAgIGZhaWwoIlRoZXJlIGFyZSAke2Vycm9ycy5zaXplfSB2YWxpZGF0aW9uIGVycm9ycyEiKQoKfSBlbHNlIHsKICAgIExPRy5pbmZvKCJPSyEiKQp9Ci0tLS0K readmeEtag: '"8170c81300eca3c42ed213ee826e02d851f63a60"' readmeLastModified: Tue, 01 Feb 2022 00:25:38 GMT repositoryId: 217298102 description: Support for OpenAPI3 in ktor-controllers created: '2019-10-24T12:50:34Z' updated: '2023-09-15T12:46:53Z' language: Kotlin archived: false stars: 3 watchers: 2 forks: 0 owner: Koriit logo: https://avatars.githubusercontent.com/u/8916393?v=4 license: MIT repoEtag: '"e2f9332b526377813c81992adee24c8404e3d38ec38c0cb5b3ea5fbb829596e9"' repoLastModified: Fri, 15 Sep 2023 12:46:53 GMT foundInMaster: true category: Data Validators id: d8110a35dbaeb0bf31f7edaeeb7db995 - source: openapi3 tags repository: https://github.com/greyteam2020/gooutsafe_microservice v3: true repositoryMetadata: base64Readme: >- IyBHb091dFNhZmUgd2l0aCBtaWNyb3NlcnZpY2VzCgohW0dpdEh1YiBXb3JrZmxvdyBTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3dvcmtmbG93L3N0YXR1cy9HcmV5VGVhbTIwMjAvR29PdXRTYWZlX21pY3Jvc2VydmljZS9kb2NrZXItY29tcG9zZS1hY3Rpb25zLXdvcmtmbG93P3N0eWxlPWZvci10aGUtYmFkZ2UpCiFbQ29kZWNvdl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2l0aHViL0dyZXlUZWFtMjAyMC9Hb091dFNhZmVfbWljcm9zZXJ2aWNlP3N0eWxlPWZvci10aGUtYmFkZ2UpCgojIyBUYWJsZSBvZiBDb250ZW50CgotIFtBcHAgQXJjaGl0ZWN0dXJlXSgjKQotIFtIb3cgQnVpbGQgYW5kIHJ1biB3aXRoIERvY2tlcl0oaHR0cHM6Ly9ncmV5dGVhbTIwMjAuZ2l0aHViLmlvL0dvT3V0U2FmZV9taWNyb3NlcnZpY2UvcnVuLXRlc3Qtb24tdGhlLWhvc3QtbWFjaGluZSkKLSBbRGV2ZWxvcGluZ10oaHR0cHM6Ly9ncmV5dGVhbTIwMjAuZ2l0aHViLmlvL0dvT3V0U2FmZV9taWNyb3NlcnZpY2UvR29PdXRTYWZlX21pY3Jvc2VydmljZSNkZXZlbG9waW5nKQotIFtBZGRpdGlvbmFsIGluZm9ybWF0aW9uXShodHRwczovL2dyZXl0ZWFtMjAyMC5naXRodWIuaW8vR29PdXRTYWZlX21pY3Jvc2VydmljZS9hZGRpdGlvbmFsLWluZm9ybWF0aW9uKQoKIyMgQXBwIEFyY2hpdGVjdHVyZQoKIVtdKGh0dHBzOi8vaS5pYmIuY28vaGMzVjFtay9waG90by0yMDIwLTExLTI2LTEwLTA5LTU4LmpwZykKCiFbXShodHRwczovL2kuaWJiLmNvL0NIUlIxMVcvU2VsZWN0aW9uLTA0Ni5wbmcpCgojIyBIb3cgY2xvbmUgaXQKCkVhY2ggbWljcm9zZXJ2aWNlcyBpcyBhIHNlcGFyYXRlIHJlcG9zaXRvcnkgdGhhdCB5b3UgY2FuIGNsb25lIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kcwoKYGBgYmFzaApnaXQgY2xvbmUgLS1yZWN1cnNlLXN1Ym1vZHVsZXMgaHR0cHM6Ly9naXRodWIuY29tL0dyZXlUZWFtMjAyMC9Hb091dFNhZmVfbWljcm9zZXJ2aWNlLmdpdApgYGAKCltTb3VyY2VdKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zNzk3MDYxLzcyOTA1NjIpCgpUaGUgc3VibW9kdWxlcyBhcmUgdGhlIG1pY3Jvc2VydmljZXMgd2l0aCB0aGUgZm9sbG93aW5nIHByb3ByaWV0aWVzOgoKLSBbRW1haWwgTWljcm9zZXJ2aWNlc10oaHR0cHM6Ly9naXRodWIuY29tL0dyZXlUZWFtMjAyMC9lbWFpbF9taWNyb3NlcnZpY2UpOiBSdW5uaW5nIG9uIHBvcnQgNTAwMSBhbmQgaW5jbHVkZSBzb21lIFtjZWxlcnldKGh0dHBzOi8vZG9jcy5jZWxlcnlwcm9qZWN0Lm9yZy9lbi9zdGFibGUvZ2V0dGluZy1zdGFydGVkL2ludHJvZHVjdGlvbi5odG1sKSB0YXNrcy4KLSBbVXNlciBNaWNyb3NlcnZpY2VzXShodHRwczovL2dpdGh1Yi5jb20vR3JleVRlYW0yMDIwL3VzZXJzX21pY3Jvc2VydmljZSk6IFJ1bm5pbmcgb24gcG9ydCA1MDAyOwotIFtSZXN0YXVyYW50cyBNaWNyb3NlcnZpY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9HcmV5VGVhbTIwMjAvcmVzdGF1cmFudHNfbWljcm9zZXJ2aWNlKTogUnVubmluZyBvbiBwb3J0IDUwMDMgYW5kIGluY2x1ZGUgc29tZSBbY2VsZXJ5XShodHRwczovL2RvY3MuY2VsZXJ5cHJvamVjdC5vcmcvZW4vc3RhYmxlL2dldHRpbmctc3RhcnRlZC9pbnRyb2R1Y3Rpb24uaHRtbCkgYmFja2dyb3VuZCB0YXNrcy47Ci0gW0Jvb2tpbmcgTWljcm9zZXJ2aWNlXShodHRwczovL2dpdGh1Yi5jb20vR3JleVRlYW0yMDIwL2Jvb2tpbmdfbWljcm9zZXJ2aWNlKTogUnVubmluZyBvbiBwb3J0IDUwMDQKCiMjIEhvdyBCdWlsZCBhbmQgcnVuIHdpdGggRG9ja2VyCgpDbG9uZSB0aGUgcmVwb3NpdG9yeSB3aXRoIHRoZSBjb21tYW5kIGFib3ZlIGFuZCBydW4gaW4gdGhlIHJvb3QgZm9sZGVyIHRoZSBjb21tYW5kCmBkb2NrZXItY29tcG9zZSB1cGAKVGhpcyB3aWxsIG1ha2UgZG9ja2VyIGRvd25sb2FkcyBhbGwgdGhlIGZpbGUgbmVlZGVkIGFuZCBzdGFydCBidWlsZGluZyB0aGUgY29udGFpbmVycy4gCkFmdGVyIHRoYXQsIHlvdSBjYW4gYnJvd3NlIHRvIGh0dHA6Ly9sb2NhbGhvc3QvIHRvIHVzZSB0aGUgYXBwLgoKIyMgUnVuIHRlc3Qgb24gdGhlIGhvc3QgbWFjaGluZQoKWW91IGNhbid0IHdpdGhvdXQgZG9ja2VyIHRoaXMgdGltZSwgdG8gcnVuIGl0IG9uIHRoZSBob3N0IG1hY2hpbmUgd2l0aG91dCBkb2NrZXIgeW91IGNhbiBydW4gdGhlIG1vbm9saXRoIHZlcnNpb24KYXZhaWxhYmxlIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vR3JleVRlYW0yMDIwL0dvT3V0U2FmZV9QcmltZXIyMDIwKQoKIyMgRGV2ZWxvcGluZwoKRWFjaCBwcm9ncmFtbWVyIGhhcyBhIHBlcnNvbmFsIHN0eWxlIG9uIHdyaXRlIGNvZGUgYW5kIHdlIGFjY2VwdCB0aGlzLCBidXQgdG8gbWFrZSByZWFkYWJpbGl0eSB0aGUKY29kZSBmcm9tIGFsbCBjb21wb25lbnQgb2YgdGhlIHRlYW0sIHdlIHVzZWQgYSBnb29kIHRvb2wgdG8gZm9ybWF0IHRoZSBjb2RlIGluIGF1dG9tYXRpY2FsbHkuCgpJdCBpcyBbYmxhY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9wc2YvYmxhY2spLCBhbmQgaXQgaXMgaW5zdGFsbGVkIHdpdGggdGhlIHJlcXVpcmVtZW50cy50eHQKClRvIGZvcm1hdCB0aGUgY29kZSB5b3UgY2FuIHJ1biB0aGUgY29tbWFuZCBiZWxvdyBhZnRlciBgcGlwMyBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQgLS11c2VyYAoKYGJsYWNrIG1vbm9saXRoYAoKV2hlbiB5b3Ugc2VlIHRoZSBmb2xsb3dpbmcgbGluZSwgeW91IGFyZSBkb25lIHRvIHB1c2ggeW91ciBQUgoKQWxsIGRvbmUhIOKcqCDwn42wIOKcqAoKCiMjIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24KCi0gRGVhZGxpbmUgLSBXZWRuZXNkYXksIDI1IE5vdmVtYmVyIDIwMjAsIDIzOjU5Cg== readmeEtag: '"6a38e50f5f93b7ba25d603dd9e86ab68f3b44c25"' readmeLastModified: Tue, 01 Mar 2022 10:29:30 GMT repositoryId: 312033852 description: >- :octocat: GoOutSafe a web app (with microservices architecture) that implements some cool features to survive during this covid19 Pandemic. This web app is developed during the Advanced Software Engineering course by the Univerisity of Pisa :computer: created: '2020-11-11T16:56:03Z' updated: '2023-04-04T04:13:22Z' language: Python archived: false stars: 3 watchers: 4 forks: 3 owner: GreyTeam2020 logo: https://avatars.githubusercontent.com/u/73334241?v=4 repoEtag: '"ab576d6a4dd7d80291d409d9edf7cc5a64fe8b2c4ac4a45f40ddc7a27ade0038"' repoLastModified: Tue, 04 Apr 2023 04:13:22 GMT foundInMaster: true category: - Description Validators - Server Implementations id: eed683d5286fd183b4fd5b4e297b83f1 - source: openapi3 tags repository: https://github.com/okaluzny/app-assistant v3: true id: 54199e746a1f9db1639f71e53fd9b498 repositoryMetadata: base64Readme: >- IyMgYXBwLWFzc2lzdGFudAoKVGhpcyBpcyBhIHNpbXBsZSBsb2dpc3RpYyBhcHBsaWNhdGlvbiBkZW1vbnN0cmF0aW5nIHNvbWUgY2FwYWJpbGl0aWVzIG9mIFNwcmluZyBCb290IGFzIGJhY2tlbmQgc2VydmljZSBjYXBhYmlsaXRpZXMgaW5jbHVkZToKKiBBcHAgYXJjaGl0ZWN0dXJlOwoqIERhdGFiYXNlIG1pZ3JhdGlvbiBhbmQgc2NoZW1hIGNoYW5nZSBtYW5hZ2VtZW50IHVzaW5nIExpcXVpYmFzZTsKKiBldGMuCgojIyBIb3cgaXQgd29ya3M6CioqMS4gRG9ja2VyLiBGaXJzdCB5b3UgbmVlZCB0byBpbnN0YWxsIGRvY2tlcioqCiogRG93bmxvYWQgRG9ja2VyIFtIZXJlXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItZm9yLXdpbmRvd3MvaW5zdGFsbC8pLiBIaW50OiBFbmFibGUgSHlwZXItViBmZWF0dXJlIG9uIHdpbmRvd3MgYW5kIHJlc3RhcnQ7CiogVGhlbiBvcGVuIHBvd2Vyc2hlbGwgYW5kIGNoZWNrOgpgYGBiYXNoCmRvY2tlciBpbmZvCmBgYApvciwgYW5kIHlvdSBzZWUgdmVyc2lvbnMgZG9ja2VyICYgZG9ja2VyIGNvbXBvc2UKYGBgYmFzaApkb2NrZXIgLXYKYGBgCmBgYGJhc2gKZG9ja2VyLWNvbXBvc2UgLXYKYGBgCgoqKjIuIFNwcmluZyBib290IGFwcCoqCiogQ2xvbmUgdGhlIHJlcG9zaXRvcnk6CmBgYGJhc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9PS2FsdXpueS9taWNyb3NlcnZpY2UtYXNzaXN0YW50LmdpdApgYGAKKiBCdWlsZCB0aGUgbWF2ZW4gcHJvamVjdDoKYGBgYmFzaAptdm4gY2xlYW4gaW5zdGFsbApgYGAKKiBOb3cgcnVuOgpgYGBiYXNoCmRvY2tlci1jb21wb3NlIHVwCmBgYAoKQXBwZW5kaXggQS4KCkFsbCBjb21tYW5kcyBzaG91bGQgYmUgcnVuIGZyb20gcHJvamVjdCByb290ICh3aGVyZSBkb2NrZXItY29tcG9zZS55bWwgbG9jYXRlcykK readmeEtag: '"8afe9efa60365148dd1320f36456e6620ea495c7"' readmeLastModified: Tue, 28 Nov 2023 08:26:56 GMT repositoryId: 229004551 description: null created: '2019-12-19T07:59:29Z' updated: '2023-08-28T21:04:33Z' language: Java archived: false stars: 3 watchers: 2 forks: 1 owner: OKaluzny logo: https://avatars.githubusercontent.com/u/13517065?v=4 repoEtag: '"831acbabaf98b8a565601b67c9316daa6e627fd10f9afa1578c77d27b3ab1f95"' repoLastModified: Mon, 28 Aug 2023 21:04:33 GMT category: Server Implementations oldLocations: - https://github.com/okaluzny/microservice-assistant foundInMaster: true - source: openapi3 tags repository: https://github.com/mockoon/commons v3: true repositoryMetadata: base64Readme: >- PiAjIPCfk6ZUaGlzIHJlcG9zaXRvcnkgaGFzIGJlZW4gYXJjaGl2ZWQuIFdlIGtlZXAgaXQgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gWW91IHdpbGwgZmluZCBNb2Nrb29uJ3MgbmV3IG1vbm9yZXBvIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uKS4KCjxkaXYgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbSIgYWx0PSJtb2Nrb29uIGxvZ28iPgogICAgPGltZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9sb2dvLXNxdWFyZS1hcHAucG5nIj4KICA8L2E+CiAgPGJyPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9XZWJzaXRlLUdvLWdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckI9MTk5N2M2Ii8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vbmV3c2xldHRlci8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL05ld3NsZXR0ZXItU3Vic2NyaWJlLWdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL0dldE1vY2tvb24iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXJfQEdldE1vY2tvb24tZm9sbG93LWJsdWUuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQj0xZGExZjIiLz48L2E+CiAgPGEgaHJlZj0iW2h0dHBzOi8vZGlzY29yZC5nZy9GdEpqa2VqS0dwXShodHRwczovL21vY2tvb24uY29tL2Rpc2NvcmQvKSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC1nby1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckE9NmM4NGQ5JmNvbG9yQj0xZGExZjIiLz48L2E+ICAKICA8YnI+CiAgPGJyPgogIDxoMT5Nb2Nrb29uOiBhd2Vzb21lIEFQSSBtb2NraW5nPC9oMT4KPC9kaXY+CgojIyBNb2Nrb29uJ3MgZG9jdW1lbnRhdGlvbgoKWW91IHdpbGwgZmluZCBNb2Nrb29uJ3MgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vbW9ja29vbi5jb20vZG9jcy9sYXRlc3QvYWJvdXQvKSBvbiB0aGUgb2ZmaWNpYWwgd2Vic2l0ZS4gSXQgY292ZXJzIE1vY2tvb24ncyBtb3N0IGNvbXBsZXggZmVhdHVyZXMuIEZlZWwgZnJlZSB0byBjb250cmlidXRlIG9yIGFzayBmb3IgbmV3IHRvcGljcyB0byBiZSBjb3ZlcmVkLgoKIyMgQ2hhbmdlbG9ncwoKWW91IHdpbGwgZmluZCBNb2Nrb29uIGFwcGxpY2F0aW9ucyBbY2hhbmdlbG9nc10oaHR0cHM6Ly9tb2Nrb29uLmNvbS9yZWxlYXNlcy8pIG9uIHRoZSBvZmZpY2lhbCB3ZWJzaXRlLgoKIyMgU3VwcG9ydC9mZWVkYmFjawoKWW91IGNhbiBkaXNjdXNzIGFsbCB0aGluZ3MgcmVsYXRlZCB0byBNb2Nrb29uIGFuZCBhc2sgZm9yIGhlbHAgb24gdGhlIFtvZmZpY2lhbCBjb21tdW5pdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vZGlzY3Vzc2lvbnMpLiBJdCdzIGFsc28gYSBnb29kIHBsYWNlIHRvIGRpc2N1c3MgYnVncyBhbmQgZmVhdHVyZSByZXF1ZXN0cyBiZWZvcmUgb3BlbmluZyBhbiBpc3N1ZSBvbiB0aGlzIHJlcG9zaXRvcnkuIEZvciBtb3JlIGNoYXQtbGlrZSBkaXNjdXNzaW9ucywgeW91IGNhbiBhbHNvIGpvaW4gb3VyIFtEaXNjb3JkIHNlcnZlcl0oaHR0cHM6Ly9kaXNjb3JkLmdnL0Z0SmprZWpLR3ApLgoKIyMgQ29udHJpYnV0aW5nCgpJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHRvIE1vY2tvb24sIHBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgW2NvbnRyaWJ1dGluZyBndWlkZWxpbmVzXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uL2Jsb2IvbWFpbi9DT05UUklCVVRJTkcubWQpLgoKUGxlYXNlIGFsc28gdGFrZSBhIGxvb2sgYXQgb3VyIFtDb2RlIG9mIENvbmR1Y3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL0NPREVfT0ZfQ09ORFVDVC5tZCkuCgojIyBSb2FkbWFwCgpJZiB5b3Ugd2FudCB0byBrbm93IHdoYXQgd2lsbCBiZSBjb21pbmcgaW4gdGhlIG5leHQgcmVsZWFzZSB5b3UgY2FuIGNoZWNrIHRoZSBnbG9iYWwgW1JvYWRtYXBdKGh0dHBzOi8vbW9ja29vbi5jb20vcHVibGljLXJvYWRtYXAvKS4KCk5ldyByZWxlYXNlcyB3aWxsIGJlIGFubm91bmNlZCBvbiBNb2Nrb29uJ3MgW1R3aXR0ZXIgYWNjb3VudCBAR2V0TW9ja29vbl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9HZXRNb2Nrb29uKSBhbmQgdGhyb3VnaCB0aGUgbmV3c2xldHRlciB0byB3aGljaCB5b3UgY2FuIHN1YnNjcmliZSBbaGVyZV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9uZXdzbGV0dGVyLykuCg== readmeEtag: '"ac92fd7f721c6cffbabcfec4bae97460d2092795"' readmeLastModified: Fri, 12 Jul 2024 09:45:43 GMT repositoryId: 285017265 description: Mockoon's commons library. Used in Mockoon desktop application and CLI. created: '2020-08-04T15:13:52Z' updated: '2024-07-12T09:46:31Z' language: TypeScript archived: true stars: 3 watchers: 4 forks: 13 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: MIT repoEtag: '"9ceeaaeb4fbc35dc38b4b4cfa2784120cab7583283e9d492cd0375da015661f6"' repoLastModified: Fri, 12 Jul 2024 09:46:31 GMT foundInMaster: true category: Testing id: 035d4b9d493782e934c38231bb159b00 - source: openapi3 tags repository: https://github.com/denismakogon/fn-openapi-v3 v3: true repositoryMetadata: base64Readme: >- T3BlbkFQSSB2MyBzcGVjIGdlbmVyYXRvciB0b29sIGZvciBGbiBhcHBsaWNhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklkZWEKLS0tLQpUaGUgRm4gYXBwbGljYXRpb24gaXMgbm90aGluZyBidXQgc2V0IG9mIGZ1bmN0aW9uIHdoZXJlIGVhY2ggaGFzIGl0cyBvd24gSFRUUCByb3V0ZSBmb3IgZXhlY3V0aW9uLgoKV2hhdCBpZiB0aGVyZSdzIGEgd2F5IHRvIGJ1aWxkIGNsaWVudCBiaW5kaW5nIGZvciB0aGUgcGFydGljdWxhciBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uPwoKVGhpcyBsaWJyYXJ5IGFuZCB0b29sIGFyZSBkZXNpZ25lZCB0byBwcm92aWRlIG5lY2Vzc2FyeSBBUEkgdG8gZ2VuZXJhdGUgT3BlbkFQSSB2My4wLjAgc3BlY2lmaWNhdGlvbiB1c2luZyBGdW5jdGlvbiBzcGVjIGxhbmd1YWdlLgoKCkZ1bmN0aW9uIHNwZWMgbGFuZ3VhZ2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhpcyB0b29sIHJlbGllcyBvbiBpbXByb3ZlZCBTd2FnZ2VyIEFQSSAyLjAgcGx1cyBhZGRpdGlvbmFsIGlubGluZSByZWZlcmVuY2luZyBmZWF0dXJlcyAKdGhhdCBhcmUgbWlzc2luZyBpbiBib3RoIFN3YWdnZXIgMi4wIGFuZCBPcGVuQVBJIDMuMCB0aGF0IGFyZSBhbGxvd2luZyBkZXZlbG9wZXJzIHRvIHN0cnVjdHVyZSB0aGVpciBhcHBsaWNhdGlvbiBpbiBtb3JlIG1vZHVsYXIgd2F5LgoKCkZ1bmN0aW9uIHNwZWMgZXhhbXBsZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmBgYHlhbWwKdmVyc2lvbjogMC4wLjEKZGVzY3JpcHRpb246IEZ1bmN0aW9ucyBzcGVjIHRoYXQgZGVzY3JpYmVzIEZuLXBvd2VyZWQgc2VydmVybGVzcyBhcHBsaWNhdGlvbgpmdW5jdGlvbnM6CiAgY3JlYXRlVXNlcjoKICAgIGhhbmRsZXI6IGhhbmRsZXIuY3JlYXRlCiAgICBldmVudHM6CiAgICAgIC0gaHR0cDoKICAgICAgICAgIG1ldGhvZDogcG9zdAogICAgICAgICAgZm46ICR7ZmlsZShtb2RlbHMvZnVuYy55bWwpOmZpcnN0fQogICAgICAgICAgZG9jdW1lbnRhdGlvbjoKICAgICAgICAgICAgc3VtbWFyeTogQ3JlYXRlIFVzZXIKICAgICAgICAgICAgZGVzY3JpcHRpb246IENyZWF0ZXMgYSB1c2VyIGFuZCB0aGVuIHNlbmRzIGEgZ2VuZXJhdGVkIHBhc3N3b3JkIGVtYWlsCiAgICAgICAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgICAgICAgIHNjaGVtYTogJHtmaWxlKG1vZGVscy9yZXF1ZXN0Lmpzb24pfQogICAgICAgICAgICBwYXJhbWV0ZXJzOgogICAgICAgICAgICAgIC0gbmFtZTogdXNlcm5hbWUKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgdXNlcm5hbWUgZm9yIGEgdXNlciB0byBjcmVhdGUKICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICAgICAgICBpbjogcGF0aAogICAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgcGF0dGVybjogIl5bLWEtejAtOV9dKyQiCiAgICAgICAgICAgICAgLSBuYW1lOiBtZW1iZXJzaGlwVHlwZQogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFRoZSB1c2VyJ3MgTWVtYmVyc2hpcCBUeXBlCiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICBlbnVtOgogICAgICAgICAgICAgICAgICAgIC0gcHJlbWl1bQogICAgICAgICAgICAgICAgICAgIC0gc3RhbmRhcmQKICAgICAgICAgICAgcmVzcG9uc2VzOgogICAgICAgICAgICAgIDIwMDoKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjcmVhdGUgYSB1c2VyCiAgICAgICAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgICAgICAgIHNjaGVtYTogJHtmaWxlKG1vZGVscy9yZXF1ZXN0Lmpzb24pfQogICAgICAgICAgICAgIDUwMDoKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvcgogICAgICAgICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICAgICAgICBzY2hlbWE6ICR7ZmlsZShtb2RlbHMvZXJyb3IuanNvbil9CmBgYApUaGlzIHNhbXBsZSB5b3UgY2FuIGZpbmQgW2hlcmVdKGV4YW1wbGVzL2ZuLnltbCkKCnVzaW5nIHRoZSBmb2xsb3dpbmcgY29kZToKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImZtdCIKCSJnaXRodWIuY29tL2RlbmlzbWFrb2dvbi9mbi1vcGVuYXBpL21vZGVscyIKCSJpby9pb3V0aWwiCgkib3MiCikKCmZ1bmMgbWFpbigpIHsKCgl5YW1sRmlsZSwgZXJyIDo9IGlvdXRpbC5SZWFkRmlsZShvcy5BcmdzWzFdKQoJaWYgZXJyICE9IG5pbCB7CgkJZm10LlByaW50bG4oZXJyLkVycm9yKCkpCgkJb3MuRXhpdCgxKQoJfQoKCXZhciBmbiBtb2RlbHMuRm4KCgllcnIgPSBmbi5Vbm1hcnNoYWwoeWFtbEZpbGUsIG9zLlN0ZG91dCkKCWlmIGVyciAhPSBuaWwgewoJCWZtdC5QcmludGxuKGVyci5FcnJvcigpKQoJCW9zLkV4aXQoMSkKCX0KCgl2YXIgb2FpIG1vZGVscy5PcGVuQVBJU3BlYwoJZXJyID0gb2FpLkZyb21GblNwZWMoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsICZmbikKCWVyciA9IG9haS5NYXJzaGFsKG9zLlN0ZG91dCkKCWlmIGVyciAhPSBuaWwgewoJCWZtdC5QcmludGxuKGVyci5FcnJvcigpKQoJCW9zLkV4aXQoMSkKCX0KfQpgYGAKCml0IGlzIHBvc3NpYmxlIHRvIHR1cm4gRnVuY3Rpb24gc3BlYyBpbnRvIHZhbGlkIE9wZW5BUEkgdjMgc3BlY2lmaWNhdGlvbi4KVG8gY29uZmlybSB0aGF0IHNwZWMgaXMgdmFsaWQgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKYGBgYmFzaApkb2NrZXIgcnVuIC0tcm0gLWkgLXYgYHB3ZGA6L2dvIGZucHJvamVjdC9vcGVuYXBpdjMtdmFsaWRhdG9yOjAuMC4xIC9nby9leGFtcGxlcy9vcGVuYXBpLnltbApgYGAK readmeEtag: '"69529cf07d34bc2737095a9d5caf358a480f1cd3"' readmeLastModified: Wed, 17 Jan 2018 18:35:01 GMT repositoryId: 117738868 description: Fn-powered serverless application OpenAPI v3.0.0 generator tool created: '2018-01-16T20:38:36Z' updated: '2019-06-11T20:40:03Z' language: Go archived: false stars: 3 watchers: 3 forks: 0 owner: denismakogon logo: https://avatars.githubusercontent.com/u/3034091?v=4 license: Apache-2.0 repoEtag: '"a5be85b885e62a76e57d597921e9af58e1f874f5327fea2c2e8953ebca9fe6fd"' repoLastModified: Tue, 11 Jun 2019 20:40:03 GMT foundInMaster: true category: Parsers id: 61087310dc28f1cc6a4eb90cfa714b60 - source: openapi3 tags repository: https://github.com/confuser/exegesis-koa v3: true repositoryMetadata: base64Readme: >- IyBleGVnZXNpcy1rb2EKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9hcGkudHJhdmlzLWNpLm9yZy9jb25mdXNlci9leGVnZXNpcy1rb2Euc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvY29uZnVzZXIvZXhlZ2VzaXMta29hKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9jb25mdXNlci9leGVnZXNpcy1rb2EvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvY29uZnVzZXIvZXhlZ2VzaXMta29hP2JyYW5jaD1tYXN0ZXIpClshW0tub3duIFZ1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zbnlrLmlvL3Rlc3QvZ2l0aHViL2NvbmZ1c2VyL2V4ZWdlc2lzLWtvYS9iYWRnZS5zdmc/dGFyZ2V0RmlsZT1wYWNrYWdlLmpzb24pXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvY29uZnVzZXIvZXhlZ2VzaXMta29hP3RhcmdldEZpbGU9cGFja2FnZS5qc29uKQoKPiAjIyAqZXhlZ2VzaXMqCj4KPiAqbi4qIEFuIGV4cGxhbmF0aW9uIG9yIGNyaXRpY2FsIGludGVycHJldGF0aW9uIG9mIGEgdGV4dCwgZXNwZWNpYWxseSBhbgo+IEFQSSBkZWZpbml0aW9uIGRvY3VtZW50Lgo+Cj4gLS0gTm8gZGljdGlvbmFyeSBldmVyCgpUaGlzIGxpYnJhcnkgaW1wbGVtZW50cyBhIEtvYSBtaWRkbGV3YXJlIGZvcgpbT3BlbkFQSSAzLnhdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4xLm1kI3JlcXVlc3RCb2R5T2JqZWN0KS4KCiMjCmBgYApucG0gaW5zdGFsbCBleGVnZXNpcy1rb2EKYGBgCgojIyBUdXRvcmlhbAoKQ2hlY2sgb3V0IHRoZSB0dXRvcmlhbCBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvVHV0b3JpYWwubWQpLgoKIyMgVXNhZ2UKYGBganMKY29uc3QgS29hID0gcmVxdWlyZSgna29hJykKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKQpjb25zdCBleGVnZXNpc0tvYSA9IHJlcXVpcmUoJ2V4ZWdlc2lzLWtvYScpCgphc3luYyBmdW5jdGlvbiBjcmVhdGVTZXJ2ZXIoKSB7CiAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT3B0aW9ucy5tZAogICAgY29uc3Qgb3B0aW9ucyA9IHsKICAgICAgICBjb250cm9sbGVyczogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vY29udHJvbGxlcnMnKQogICAgfQogICAgY29uc3QgZXhlZ2VzaXNNaWRkbGV3YXJlID0gZXhlZ2VzaXNLb2EocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vb3BlbmFwaS55YW1sJyksIG9wdGlvbnMpCgogICAgY29uc3QgYXBwID0gbmV3IEtvYSgpCgogICAgLy8gSWYgeW91IGhhdmUgYW55IGJvZHkgcGFyc2VycywgdGhpcyBzaG91bGQgZ28gYmVmb3JlIHRoZW0uCiAgICBhcHAudXNlKGFzeW5jIChjdHgsIG5leHQpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBhd2FpdCBuZXh0KCkKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgY3R4LnN0YXR1cyA9IDUwMAogICAgICAgIGN0eC5ib2R5ID0gYEludGVybmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWAKICAgICAgfQogICAgfSkKICAgIGFwcC51c2UoZXhlZ2VzaXNNaWRkbGV3YXJlKQogICAgYXBwLnVzZShhc3luYyAoY3R4KSA9PiB7CiAgICAgIGlmIChjdHguc3RhdHVzID09PSA0MDQpIHsKICAgICAgICBjdHguc3RhdHVzID0gNDA0CiAgICAgIH0KICAgIH0pCgogICAgYXBwLmxpc3RlbigpCn0KYGBgCgpDYWxsaW5nIGBleGVnZXNpc2tvYShvcGVuQXBpRmlsZSwgb3B0aW9ucylgIHdpbGwgcmV0dXJuIGEgUHJvbWlzZQp3aGljaCByZXNvbHZlcyB0byBhIGtvYSBtaWRkbGV3YXJlLgoKYG9wZW5BcGlGaWxlYCBpcyBlaXRoZXIgYSBwYXRoIHRvIHlvdXIgb3BlbmFwaS55YW1sIG9yIG9wZW5hcGkuanNvbiBmaWxlLApvciBpdCBjYW4gYmUgYSBKU09OIG9iamVjdCB3aXRoIHRoZSBjb250ZW50cyBvZiB5b3VyIE9wZW5BUEkgZG9jdW1lbnQuICBUaGlzCnNob3VsZCBoYXZlIHRoZSBbYHgtZXhlZ2VzaXMtY29udHJvbGxlcmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9leGVnZXNpcy1qcy9leGVnZXNpcy9ibG9iL21hc3Rlci9kb2NzL09BUzMlMjBTcGVjaWZpY2F0aW9uJTIwRXh0ZW5zaW9ucy5tZCkKZXh0ZW5zaW9uIGRlZmluZWQgb24gYW55IHBhdGhzIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gYWNjZXNzLgoKYG9wdGlvbnNgIGNhbiBiZSBbYW55dGhpbmcgeW91IGNhbiBwYXNzIHRvIGV4ZWdlc2lzXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvYmxvYi9tYXN0ZXIvZG9jcy9PcHRpb25zLm1kKS4gIEF0IGEKbWluaW11bSwgeW91J2xsIHByb2JhYmx5IHdhbnQgdG8gcHJvdmlkZSBgb3B0aW9ucy5jb250cm9sbGVyc2AsIGEgcGF0aCB0byB3aGVyZQp5b3VyIFtjb250cm9sbGVyIG1vZHVsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9leGVnZXNpcy1qcy9leGVnZXNpcy9ibG9iL21hc3Rlci9kb2NzL0V4ZWdlc2lzJTIwQ29udHJvbGxlcnMubWQpCmNhbiBiZSBmb3VuZC4gIElmIHlvdSBoYXZlIGFueSBzZWN1cml0eSByZXF1aXJlbWVudHMgZGVmaW5lZCwgeW91J2xsIGFsc28Kd2FudCB0byBwYXNzIGluIHNvbWUgW2F1dGhlbnRpY2F0b3JzXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvYmxvYi9tYXN0ZXIvZG9jcy9PQVMzJTIwU2VjdXJpdHkubWQpLgpUbyBlbmFibGUgcmVzcG9uc2UgdmFsaWRhdGlvbiwgeW91J2xsIHdhbnQgdG8gcHJvdmlkZSBhIHZhbGlkYXRpb24gY2FsbGJhY2sKZnVuY3Rpb24gdmlhIFtgb25SZXNwb25zZVZhbGlkYXRpb25FcnJvcigpYF0oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT3B0aW9ucy5tZCNvbnJlc3BvbnNldmFsaWRhdGlvbmVycm9yKS4KRXhlZ2VzaXMncyBmdW5jdGlvbmFsaXR5IGNhbiBhbHNvIGJlIGV4dGVuZGVkIHVzaW5nIFtwbHVnaW5zXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvdHJlZS9tYXN0ZXIvZG9jcyksCndoaWNoIHJ1biBvbiBldmVyeSByZXF1ZXN0LiAgUGx1Z2lucyBsZXQgeW91IGFkZCBmdW5jdGlvbmFsaXR5IGxpa2UKW3JvbGUgYmFzZSBhdXRob3JpemF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMtcGx1Z2luLXJvbGVzKSwKb3IgQ09SUy4K readmeEtag: '"b3b57b5f9c525f047e01a4d61359b7820a7804ae"' readmeLastModified: Sun, 03 Jun 2018 12:00:14 GMT repositoryId: 135899462 description: 'Koa middleware to handle OpenAPI 3.x. ' created: '2018-06-03T11:48:14Z' updated: '2022-09-23T15:25:12Z' language: JavaScript archived: false stars: 3 watchers: 3 forks: 1 owner: confuser logo: https://avatars.githubusercontent.com/u/1658997?v=4 license: MIT repoEtag: '"f8df11e5b3cc98f4c7c54f7b8c305609c6eb7a0f93745aadaf0b693c736a0297"' repoLastModified: Fri, 23 Sep 2022 15:25:12 GMT foundInMaster: true category: Server Implementations id: 75c502e1a557c910665da48dc9eec0eb - source: openapi3 tags repository: https://github.com/afshinparhizkari/cloud v3: true repositoryMetadata: base64Readme: IyBDbG91ZApEREQgUHJvamVjdCB3aXRoIERldm9wcyB0b29scwo= readmeEtag: '"7aa4a270fdeb7f939a62d5a08b03b4c2907eb9cc"' readmeLastModified: Sat, 30 Sep 2023 12:01:24 GMT repositoryId: 427974337 description: the simple DDD Project with Spring Cloud library created: '2021-11-14T16:02:42Z' updated: '2022-11-03T07:13:50Z' language: Java archived: false stars: 3 watchers: 1 forks: 1 owner: AfshinParhizkari logo: https://avatars.githubusercontent.com/u/32636285?v=4 license: LGPL-2.1 repoEtag: '"a94d767276701ddbbab44f7b6a511083fe6cb3c0f0d389c8e9728587337decc7"' repoLastModified: Thu, 03 Nov 2022 07:13:50 GMT foundInMaster: true category: - Server - Server Implementations id: 5046b14ee2dc167c4183150526d560a7 - source: openapi3 tags repository: https://github.com/ccwukong/snitch v3: true id: 09c3dafe2da696b61a144e189ea8cb5d repositoryMetadata: base64Readme: >- IyBzbml0Y2ggPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcHlwaS12MC4xLjM0LWdyZWVuIiAvPiA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9UZXN0ZWQlMjBvbi1tYWNPUyUyMFZlbnR1cmEtYnJpZ2h0Z3JlZW4iIC8+IDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1Rlc3RlZCUyMG9uLVVidW50dSUyMDIyLjEwLWJyaWdodGdyZWVuIiAvPiAKCiFbbG9nb10oZG9jcy9sb2dvLnBuZykKCiMgVGFibGUgb2YgY29udGVudHMKCjwhLS10cy0tPgogICogW0ludHJvZHVjdGlvbl0oI2ludHJvZHVjdGlvbikKICAqIFtNYWluIGZlYXR1cmVzXSgjbWFpbi1mZWF0dXJlcykKICAgICogW0RlbW9dKCNkZW1vKQogICogW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKICAqIFtVc2UgY2FzZXNdKCN1c2UtY2FzZXMpCiAgKiBbSG93IHRoaXMgd29ya3NdKCNob3ctdGhpcy13b3JrcykKICAqIFtGbGFnc10oI2ZsYWdzKQogICogW0lkZW1wb3RlbmN5XSgjaWRlbXBvdGVuY3kpCiAgKiBbSG93IHRvIGNvbnRyaWJ1dGVdKCNob3ctdG8tY29udHJpYnV0ZSkKPCEtLXRlLS0+CgojIyBJbnRyb2R1Y3Rpb24KCnNuaXRjaCBpcyBhIENMSSB0b29sIHRoYXQgaGVscHMgeW91IGRvIGhlYWx0aCBjaGVjaywgQVBJIGlkZW1wb3RlbmN5IGNoZWNrIGFuZCBtb3JlIGZvciB5b3VyIEFQSXMuCgpUaGlzIGlzIG5vdCBhIHJlcGxhY2VtZW50IGZvciB5b3VyIGV4aXN0aW5nIHRlc3RpbmcgdG9vbHMsIGJ1dCByYXRoZXIgaXQgcHJvdmlkZXMgYSBjb252ZW5pZW50IHdheSB0byBjaGVjayB5b3VyIEFQSXMgc3dpZnRseS4KCiMjIE1haW4gZmVhdHVyZXMKCi0gUnVubmluZyBoZWFsdGggY2hlY2sgY29uY3VycmVudGx5ICh1c2luZyBjb3JvdXRpbmUpCi0gUnVubmluZyBJZGVtcG90ZW5jeSBjaGVjayBieSBtaXhpbmcgbXVsdGl0aHJlYWRpbmcoZm9yIHN5bmNocm9ub3VzIHJlcXVlc3RzKSBhbmQgY29yb3V0aW5lcyBpbiB0aGUgc2FtZSBldmVudCBsb29wLiBUaGlzIHdpbGwgaW1wcm92ZSBJL08gcGVyZm9ybWFuY2UuCi0gTW9yZSB0byBjb21lCgpbQ0hBTkdFTE9HXShDSEFOR0VMT0cubWQpCgojIyMgRGVtbwoKIVtEZW1vXShkb2NzL2RlbW8uZ2lmKQoKIyMgSW5zdGFsbGF0aW9uCgpJbnN0YWxsIHNuaXRjaCB2aWEgcGlwLiBNYWtlIHN1cmUgeW91IGhhdmUgUHl0aG9uIDMgaW5zdGFsbGVkIG9uIHlvdXIgbWFjaGluZS4KCioq4p2XQ0FVVElPTioqIFRoZSBwYWNrYWdlIG5hbWUgaXMgKiphcGktc25pdGNoKiogaW5zdGVhZCBvZiAqKnNuaXRjaCoqLgoKYGBgCnBpcDMgaW5zdGFsbCBhcGktc25pdGNoCmBgYAoKT25jZSB5b3UgaGF2ZSB0aGUgY29uZmlnIEpTT04gZmlsZSByZWFkeSwgeW91IGNhbiBydW4gdGhpcyBpbiB5b3VyIGNvbW1hbmRsaW5lIHByb21wdDoKCmBgYApzbml0Y2ggLXAgeW91cl9jb25maWdfanNvbl9maWxlX3BhdGggWy1vIHlvdXJfb3V0cHV0X2RpcmVjdG9yeV0KYGBgCgojIyMgVXNlIGNhc2VzCgpTZW5hcmlvIDE6IEkgd2FudCB0byBydW4gYWxsIHRhc2tzKEFQSSBoZWFsdGggY2hlY2sgYW5kIEFQSSBpZGVtcG90ZW5jeSBjaGVjaykKCmBgYGNvbmNvbGUKc25pdGNoIC1wIHlvdXJfY29uZmlnX2pzb25fZmlsZV9wYXRoCmBgYAoKU2VuYXJpbyAyOiBJIHdhbnQgdG8gcnVuIHRoZSBBUEkgSWRlbXBvdGVuY3kgY2hlY2sgdGFzayBvbmx5CgpgYGBjb25jb2xlCnNuaXRjaCAtcCB5b3VyX2NvbmZpZ19qc29uX2ZpbGVfcGF0aCAtdCBpZApgYGAKClNlbmFyaW8gMzogSSBkb24ndCBoYXZlIGEgY29uZmlndXJhdGlvbiBqc29uIGZpbGUsIGFuZCBJIHdhbnQgdG8gY3JlYXRlIG9uZSBuYW1lZCAqKmNvbmZpZy5qc29uKiogdXNpbmcgdGhlIGRlZmF1bHQgdGVtcGxhdGUgYW5kIHN0b3JlZCBpdCBpbiBteSAqKmN1cnJlbnQgZGlyZWN0b3J5KioKCmBgYGNvbmNvbGUKc25pdGNoIC1pIC4vY29uZmlnLmpzb24KYGBgCgpTZW5hcmlvIDQ6IEkgd2FudCB0byBydW4gYWxsIHRhc2tzKEFQSSBoZWFsdGggY2hlY2sgYW5kIEFQSSBpZGVtcG90ZW5jeSBjaGVjaykgd2l0aCBhbGwgQVBJIHJlc3BvbnNlcyBwcmludGVkLgoKYGBgY29uY29sZQpzbml0Y2ggLXAgeW91cl9jb25maWdfanNvbl9maWxlX3BhdGggLXYKYGBgCgojIyBIb3cgdGhpcyB3b3JrcwoKc25pdGNoIGFjY2VwdHMgMiB0eXBlcyBvZiBBUEkgY29udHJhY3RzOiBQb3N0bWFuIGNvbGxlY3Rpb24gZmlsZSB2ZXJzaW9uICoqPj0gMi4wKiogb3IgT3BlbkFQSShTd2FnZ2VyKSBmaWxlIHZlcnNpb24gKio+PSAzLjAuMCoqLgoKRmlyc3QsIHlvdSBuZWVkIHRvIGhhdmUgYSBnbG9iYWwgLmpzb24gZmlsZSB3aGljaCBwcm92aWRlcyBhbGwgZXNzZW50aWFsIGNvbmZpZ3VyYXRpb25zIGluIG9yZGVyIHRvIHJ1biB0aGUgdGVzdC4gCgpZb3UgY2FuIGNyZWF0ZSBpdCBieSBydW5uaW5nCgpgYGBjb25zb2xlCnNuaXRjaCAtaSBwYXRoX3RvX3N0b3JlX3RoZV9jb25maWdfanNvbl9maWxlL3lvdXJfanNvbl9maWxlX25hbWUuanNvbgpgYGAKCk9yLCB5b3UgY2FuIHVzZSB0aGlzIHRlbXBsYXRlOgpgYGBqc29uCnsKICAicG9zdG1hbkNvbGxlY3Rpb24iOiB7CiAgICAidmVyc2lvbiI6ICIyLjEiLCAKICAgICJmaWxlUGF0aCI6ICJhYnNvbHV0ZV9wYXRoX3RvX3RoZV9wb3N0bWFuX2NvbGxlY3Rpb25fanNvbl9maWxlIiwKICAgICJtZXRhZGF0YSI6eyAvLyB5b3UgY2FuIHB1dCBhbGwgeW91ciBwbGFjZWhvbGRlciBzdHJpbmdzIGhlcmUsIGZvciBpbnN0YW5jZSwgdGhlIHBsYWNlaG9sZGVyIHN0cmluZyBmb3IgdGhlIGhvc3Qgb2YgdGhlIFJFU1QgZW5kcG9pbnRzCiAgICAgICJ7e3Jlc3RVcmx9fSI6ICJodHRwczovL3lvdXJfYXBpX2RvbWFpbiIsCiAgICAgICJ7e2FjY2Vzc1Rva2VufX0iOiAidGhlIGFjY2VzcyB0b2tlbiBzdHJpbmciLAogICAgICAie3thcGlLZXl9fSI6ICJhcGkga2V5IHN0cmluZyIsCiAgICAgIC4uLgogICAgfQogIH0sCiAgIm9wZW5BcGkiOiB7CiAgICAidmVyc2lvbiI6ICIzLjAuMCIsIAogICAgImZpbGVQYXRoIjogImFic29sdXRlX3BhdGhfdG9fdGhlX29wZW5fYXBpX3lhbWxfZmlsZSIsCiAgICAibWV0YWRhdGEiOnsKICAgICAgInt7cmVzdFVybH19IjogImh0dHBzOi8veW91cl9hcGlfZG9tYWluIiwKICAgICAgInt7YWNjZXNzVG9rZW59fSI6ICJ0aGUgYWNjZXNzIHRva2VuIHN0cmluZyIsCiAgICAgICJ7e2FwaUtleX19IjoiYXBpIGtleSBzdHJpbmciLAogICAgICAuLi4KICAgIH0KICB9Cn0KYGBgCgojIyBGbGFncwoKQXZhaWxhYmxlIGZsYWdzIGZvciBzbml0Y2ggQ0xJIGNvbW1hbmRzLgoKfCBmbGFnICAgICAgfCBEZXNjcmlwdGlvbiB8CnwgLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLSB8CnwgLWkgICAgICB8ICoqKk9QVElPTkFMKioqIENyZWF0ZSBhIG5ldyBjb25maWcgSlNPTiBmaWxlIHdpdGggZGVmYXVsdCB0ZW1wbGF0ZSB8CnwgLS1pbml0ICAgfCBzYW1lIGFzIC1pICAgICAgICB8CnwgLW8gICAgICB8ICoqKk9QVElPTkFMKioqIFlvdXIgb3V0cHV0IGRpcmVjdG9yeSBmb3Igc3RvcmluZyB0aGUgdGVzdCByZXN1bHRzLiBJdCBoYXMgdG8gYmUgYSBkaXJlY3RvcnkgfAp8IC0tb3V0cHV0ICAgfCBzYW1lIGFzIC1vICAgICAgICB8CnwgLXAgICAgICB8IFlvdXIgY29uZmlnIEpTT04gZmlsZSBwYXRoIHwKfCAtLXBhdGggICB8IHNhbWUgYXMgLXAgICAgICAgIHwKfCAtdCAgICAgIHwgKioqT1BUSU9OQUwqKiogVGhlcmUgYXJlIDIgdGFza3MgYXZhaWxhYmxlOjxiciAvPiAtIGhjIChBUEkgaGVhbHRoIGNoZWNrKTxiciAvPiAtIGlkIChBUEkgaWRlbXBvdGVuY3kgY2hlY2spIHwKfCAtLXRhc2sgICB8IHNhbWUgYXMgLXQgICAgICAgIHwKfCAtdiAgICAgIHwgKioqT1BUSU9OQUwqKiogUHJpbnQgQVBJIHJlc3BvbnNlcyBpZiAtdiBvciAtLXZlcmJvc2UgZmxhZyBpcyBzcGVjaWZpZWQgfAp8IC0tdmVyYm9zZSAgIHwgc2FtZSBhcyAtdiAgICAgICAgfAp8IC0tdmVyc2lvbiAgIHwgRGlzcGxheSB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHNuaXRjaCAgIHwKCiMjIElkZW1wb3RlbmN5CgpFeHBsYW5hdGlvbiBmcm9tIFtodHRwczovL3d3dy5yZXN0YXBpdHV0b3JpYWwuY29tL10oaHR0cHM6Ly93d3cucmVzdGFwaXR1dG9yaWFsLmNvbS9sZXNzb25zL2lkZW1wb3RlbmN5Lmh0bWwjOn46dGV4dD1Gcm9tJTIwYSUyMFJFU1RmdWwlMjBzZXJ2aWNlJTIwc3RhbmRwb2ludCxhcyUyMG1ha2luZyUyMGElMjBzaW5nbGUlMjByZXF1ZXN0LikKCj4gRnJvbSBhIFJFU1RmdWwgc2VydmljZSBzdGFuZHBvaW50LCBmb3IgYW4gb3BlcmF0aW9uIChvciBzZXJ2aWNlIGNhbGwpIHRvIGJlIGlkZW1wb3RlbnQsIGNsaWVudHMgY2FuIG1ha2UgdGhhdCBzYW1lIGNhbGwgcmVwZWF0ZWRseSB3aGlsZSBwcm9kdWNpbmcgdGhlIHNhbWUgcmVzdWx0LiBJbiBvdGhlciB3b3JkcywgbWFraW5nIG11bHRpcGxlIGlkZW50aWNhbCByZXF1ZXN0cyBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIG1ha2luZyBhIHNpbmdsZSByZXF1ZXN0LiBOb3RlIHRoYXQgd2hpbGUgaWRlbXBvdGVudCBvcGVyYXRpb25zIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0IG9uIHRoZSBzZXJ2ZXIgKG5vIHNpZGUgZWZmZWN0cyksIHRoZSByZXNwb25zZSBpdHNlbGYgbWF5IG5vdCBiZSB0aGUgc2FtZSAoZS5nLiBhIHJlc291cmNlJ3Mgc3RhdGUgbWF5IGNoYW5nZSBiZXR3ZWVuIHJlcXVlc3RzKS4KCj4gVGhlIFBVVCBhbmQgREVMRVRFIG1ldGhvZHMgYXJlIGRlZmluZWQgdG8gYmUgaWRlbXBvdGVudC4gSG93ZXZlciwgdGhlcmUgaXMgYSBjYXZlYXQgb24gREVMRVRFLiBUaGUgcHJvYmxlbSB3aXRoIERFTEVURSwgd2hpY2ggaWYgc3VjY2Vzc2Z1bCB3b3VsZCBub3JtYWxseSByZXR1cm4gYSAyMDAgKE9LKSBvciAyMDQgKE5vIENvbnRlbnQpLCB3aWxsIG9mdGVuIHJldHVybiBhIDQwNCAoTm90IEZvdW5kKSBvbiBzdWJzZXF1ZW50IGNhbGxzLCB1bmxlc3MgdGhlIHNlcnZpY2UgaXMgY29uZmlndXJlZCB0byAibWFyayIgcmVzb3VyY2VzIGZvciBkZWxldGlvbiB3aXRob3V0IGFjdHVhbGx5IGRlbGV0aW5nIHRoZW0uIEhvd2V2ZXIsIHdoZW4gdGhlIHNlcnZpY2UgYWN0dWFsbHkgZGVsZXRlcyB0aGUgcmVzb3VyY2UsIHRoZSBuZXh0IGNhbGwgd2lsbCBub3QgZmluZCB0aGUgcmVzb3VyY2UgdG8gZGVsZXRlIGl0IGFuZCByZXR1cm4gYSA0MDQuIEhvd2V2ZXIsIHRoZSBzdGF0ZSBvbiB0aGUgc2VydmVyIGlzIHRoZSBzYW1lIGFmdGVyIGVhY2ggREVMRVRFIGNhbGwsIGJ1dCB0aGUgcmVzcG9uc2UgaXMgZGlmZmVyZW50LgoKPiBHRVQsIEhFQUQsIE9QVElPTlMgYW5kIFRSQUNFIG1ldGhvZHMgYXJlIGRlZmluZWQgYXMgc2FmZSwgbWVhbmluZyB0aGV5IGFyZSBvbmx5IGludGVuZGVkIGZvciByZXRyaWV2aW5nIGRhdGEuIFRoaXMgbWFrZXMgdGhlbSBpZGVtcG90ZW50IGFzIHdlbGwgc2luY2UgbXVsdGlwbGUsIGlkZW50aWNhbCByZXF1ZXN0cyB3aWxsIGJlaGF2ZSB0aGUgc2FtZS4KClBPU1QgbWV0aG9kIHVzdWFsbHkgaXMgbm90IGlkZW1wb3RlbnQsIGhvd2V2ZXIsIGZvciBhcHBsaWNhdGlvbnMgc3VjaCBhcyBvbmxpbmUgYmFua2luZywgZGlnaXRhbCBwYXltZW50IGV0Yy4gaXQgaXMgYWxzbyBpbXBvcnRhbnQgdG8ga2VlcCBQT1NUIG1ldGhvZCBpZGVtcG90ZW50IHRvIGF2b2lkIGR1cGxpY2F0ZWQgcGF5bWVudHMgYW5kIHRyYW5zYWN0aW9ucy4gSXQncyBzdWJqZWN0ZWQgdG8gYXBwbGljYXRpb24gb3duZXJzIHRvIGRlY2lkZSB3aGV0aGVyIG9yIG5vdCBpZGVtcG90ZW5jeSBpcyBub24tdHJpdmFsIHRvIGNlcnRhaW4gUE9TVCBlbmRwb2ludHMgb2YgdGhlaXIgc2VydmljZXMsIGFuZCBzbml0Y2ggb25seSBzaW1wbHkgY2hlY2tzIGlmIHNhbWUgQVBJIHdpdGggc2FtZSBwYXJhbWV0ZXJlcyByZXR1cm5zIHNhbWUgcmVzcG9uc2Ugb3Igbm90LgoKIyMgSG93IHRvIGNvbnRyaWJ1dGUKCioqU3RlcCAxKio6IENsb25lIHRoaXMgcmVwbwoKKipTdGVwIDIqKjogQ3JlYXRlIGEgUHl0aG9uIDMgdmlydHVhbCBlbnZpcm9ubWVudAoKUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgdW5kZXIgKipyb290KiogZGlyZWN0b3J5KE5PVCBzbml0Y2gvKQoKYGBgY29uc29sZQpweXRob24zIC1tIHZlbnYgdmVudgoKc291cmNlIC4vdmVudi9iaW4vYWN0aXZhdGUKYGBgCgoqKlN0ZXAgMyoqOiBDcmVhdGUgYSBuZXcgYnJhbmNoLCBhZGQgeW91ciBjb2RlIGFuZCB0ZXN0IGNhc2VzLCBtYWtlIHN1cmUgbm90aGluZyBicmVha3MKClJ1biB1bml0IHRlc3RpbmcgdW5kZXIgKipyb290KiogZGlyZWN0b3J5KE5PVCBzbml0Y2gvKQpgYGBjb25zb2xlCnRveCAtZSBweTMxMCAtLSAuL3Rlc3RzCmBgYAoKKipTdGVwIDQqKjogVGVzdCB0aGUgcHJvZ3JhbSBtYW51YWxseQoKUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB1bmRlciAqKnJvb3QqKiBkaXJlY3RvcnkoTk9UIHNuaXRjaC8pIHRvIGF2b2lkIHRoZSByZWxhdGl2ZSBpbXBvcnQgcGF0aCBpc3N1ZS4KCmBgYGNvbnNvbGUgCnB5dGhvbjMgLW0gc25pdGNoLm1haW4gLXAgeW91cl9jb25maWdfanNvbl9maWxlX3BhdGggWy1vIHlvdXJfb3V0cHV0X2RpcmVjdG9yeV0KCmBgYAoKKipTdGVwIDUqKjogUHVzaCB5b3VyIGJyYW5jaCBhbmQgY3JlYXRlIGEgUFIgZm9yIHJldmlldwoK readmeEtag: '"0b7a8d76ac2aff61285f215e915e721fffc9a84f"' readmeLastModified: Thu, 12 Jan 2023 03:04:54 GMT repositoryId: 577734803 description: A CLI tool that does health and idempotency checks for your REST APIs created: '2022-12-13T12:06:29Z' updated: '2023-01-22T15:53:33Z' language: Python archived: false stars: 3 watchers: 2 forks: 0 owner: ccwukong logo: https://avatars.githubusercontent.com/u/26168452?v=4 license: MIT repoEtag: '"b015ea616ce2c6f8446b04567e22ed6f4a3b69d66d4092f6033e17370fdb080d"' repoLastModified: Sun, 22 Jan 2023 15:53:33 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/easymetahub/emh-marklogic-glossary v3: true repositoryMetadata: base64Readme: >- IyBFYXN5TWV0YUh1YiBHbG9zc2FyeSBNYW5hZ2VyIGZvciBNYXJrTG9naWMKCiMjIEludHJvZHVjdGlvbgoKVGhpcyBhcHBsaWNhdGlvbiBpcyBhIFNLT1MgZ2xvc3NhcnkgbWFuYWdlciBhbmQgZmFjZXRlZCBzZWFyY2ggYXBwbGljYXRpb24gdGhhdCBjYW4gCm1hbmFnZSBtdWx0aXBsZSBnbG9zc2FyaWVzLiAgSXQgaXMgaW50ZW5kZWQgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCBuZWVkIHRvIG1hbmFnZQpvbmUgb3IgbW9yZSBnbG9zc2FyaWVzLgoKSXQgd2FzIGNyZWF0ZWQgYXMgYW4gZWFzaWx5IGN1c3RvbWl6YWJsZSBzZWFyY2ggYXBwbGljYXRpb24uICBJdCBhYnN0cmFjdHMgb3V0IHRoZQpjb21tb24gY29kZSBmb3IgZmFjZXRlZCBzZWFyY2ggYW5kIGdpdmVzIGFuIGVhc3kgZGV2ZWxvcG1lbnQgaW50ZXJmYWNlIHRvIGN1c3RvbWl6ZQpmb3IgdXNlcyBvdGhlciB0aGFuIGEgZ2xvc3NhcnkgbWFuYWdlci4KCiMjIyMgQWJvdXQgdGhlIGF1dGhvcgoKW0xvcmVuIENhaGxhbmRlcl0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL2xvcmVuY2FobGFuZGVyLykgaXMgdGhlIGNyZWF0b3Igb2YKdGhpcyB0b29sIGFuZCB0aGUgW3Npc3RlciBnbG9zc2FyeSBhcHBsaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2Vhc3ltZXRhaHViL2VtaC1leGlzdC1nbG9zc2FyeSkKZm9yIFtlWGlzdC1kYl0oaHR0cDovL2V4aXN0LWRiLm9yZykuICAKCkhlIGhhcyBhbHNvIHRha2VuIG92ZXIgdGhlIG1haW50ZW5hbmNlCm9mIFt4cURvY10oaHR0cDovL3hxZG9jLm9yZykgdGhhdCBwcm92aWRlcyBhIHNpbXBsZSB2ZW5kb3IgbmV1dHJhbCBzb2x1dGlvbiAKZm9yIGRvY3VtZW50aW5nIFhRdWVyeSBsaWJyYXJ5IGFuZCBtYWluIG1vZHVsZXMsIGFzIHdlbGwgYXMgdG9vbHMgdG8gZ2VuZXJhdGUgCmEgdXNlciBmcmllbmRseSBwcmVzZW50YXRpb24gb2YgdGhpcyBkb2N1bWVudGF0aW9uIGFuZCBjcm9zcyByZWZlcmVuY2UgaW5mb3JtYXRpb24uCgojIyMjIEV4dHJhcwoKVGhpcyBhcHBsaWNhdGlvbiBhbHNvIGhhcyBhbiAKCiogeHFEb2Mgdmlld2VyIHRvIHZpZXcgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGNvZGViYXNlIGZvciB0aGlzIGFwcGxpY2F0aW9uCiogUkVTVGZ1bCBPcGVuQVBJIHZpZXdlciBmb3IgdGhlIFJFU1Qgc2VydmljZXMgZGVmaW5lZCB1c2luZyB0aGUgWFFSUyAKaW1wbGVtZW50YXRpb24gb2YgW1Jlc3RYUV0oaHR0cDovL2V4cXVlcnkuZ2l0aHViLmlvL2V4cXVlcnkvZXhxdWVyeS1yZXN0eHEtc3BlY2lmaWNhdGlvbi9yZXN0eHEtMS4wLXNwZWNpZmljYXRpb24uaHRtbCkuCgojIyMjIENvbnN1bHRpbmcgCltFYXN5TWV0YUh1Yl0oaHR0cDovL2Vhc3ltZXRhaHViLmNvbSkgaXMgYXZhaWxhYmxlIGZvciBjb25zdWx0aW5nIGluIGRldmVsb3BpbmcgeW91cgpvd24gY3VzdG9taXphdGlvbiBvZiB0aGlzIHRvb2wuCgojIyBCYXNpYyBpbnN0YWxsYXRpb24gYW5kIGdldHRpbmcgc3RhcnRlZCBpcyBoZXJlOgoKSW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBhcHBsaWNhdGlvbiBydW46CgpgYGBncmFkbGUgbWxEZXBsb3lgYGAKClRoZSBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZCB0byBwb3J0ICo4MDA2KiBhcyB0aGUgYXBwbGljYXRpb24gKmVtaC1nbG9zc2FyeS14cXJzKgoKT3BlbiAKW2h0dHA6Ly9sb2NhbGhvc3Q6ODAwNl0oaHR0cDovL2xvY2FsaG9zdDo4MDA2KSBhbmQgeW91IGdldCB0aGUgZm9sbG93aW5nLgoKIVtpbWFnZXMvZW1oLWdsb3NzYXJ5LTAxLnBuZ10oaW1hZ2VzL2VtaC1nbG9zc2FyeS0wMS5wbmcpCgpTZWFyY2hpbmcgcmVxdWlyZXMgYSB1c2VyIHdpdGggdGhlIHJvbGUgKmVtaC1nbG9zc2FyeS1yZWFkZXIqLiAKVG8gbG9hZCBhIGdsb3NzYXJ5LCBsb2dpbiBhcyAqZW1oLWdsb3NzYXJ5LXdyaXRlciogd2l0aCB0aGUgCnBhc3N3b3JkICplbWgtZ2xvc3Nhcnktd3JpdGVyKi4gIENsaWNrIG9uIHRoZSAqbG9jayogdG8gb3Blbgp0aGUgbG9naW4gZGlhbG9nLgoKIVtpbWFnZXMvZW1oLWdsb3NzYXJ5LTAyLnBuZ10oaW1hZ2VzL2VtaC1nbG9zc2FyeS0wMi5wbmcpCgpUaGUgdG9vbGJhciBjaGFuZ2VzIHRvIHNob3cgdGhlIGljb25zIGZvciB0aGUgYWRtaW5pc3RyYXRpdmUgc2NyZWVuIGFuZCB0byBsb2dvdXQuCgohW2ltYWdlcy9lbWgtZ2xvc3NhcnktMDMucG5nXShpbWFnZXMvZW1oLWdsb3NzYXJ5LTAzLnBuZykKCkNsaWNrIG9uIHRoZSBnZWFyIGljb24gZm9yIHRoZSBhZG1pbmlzdHJhdGl2ZSBzY3JlZW4gYW5kIHRoZSBwYWdlIGNoYW5nZXMgdG8gdGhlIGFkbWluIHNjcmVlbi4KCiFbaW1hZ2VzL2VtaC1nbG9zc2FyeS1hZG1pbi0wMS5wbmddKGltYWdlcy9lbWgtZ2xvc3NhcnktYWRtaW4tMDEucG5nKQoKQ2xpY2sgb24gdGhlICpVcGxvYWQgRmlsZXMuLi4qIGJ1dHRvbi4KU2VsZWN0IHRoZSAqSVZPQVQucmRmKiAgaW4gdGhlICpzYW1wbGUtZGF0YSogZm9sZGVyLgoKIVtpbWFnZXMvZW1oLWdsb3NzYXJ5LTA1LnBuZ10oaW1hZ2VzL2VtaC1nbG9zc2FyeS0wNS5wbmcpCgpUaGUgbG9hZGVkIGdsb3NzYXJ5IGlzIGxpc3RlZCBpbiB0aGUgYWRtaW4gcGFnZSBhZnRlciB0aGlzLgoKIVtpbWFnZXMvZW1oLWdsb3NzYXJ5LTA1YS5wbmddKGltYWdlcy9lbWgtZ2xvc3NhcnktMDVhLnBuZykKCgpDbGljayB0aGUgbGVmdCBwb2ludGluZyBjaGV2cm9uIGljb24gdG8gcmV0dXJuIHRvIHRoZSBzZWFyY2ggcGFnZS4KCiFbaW1hZ2VzL2VtaC1nbG9zc2FyeS0wNi5wbmddKGltYWdlcy9lbWgtZ2xvc3NhcnktMDYucG5nKQoKVHlwZSAqZ2FsYXh5KiBpbiB0aGUgc2VhcmNoIGJhciBhbmQgeW91IGdldCB0aGUgZm9sbG93aW5nLgoKIVtpbWFnZXMvZW1oLWdsb3NzYXJ5LTA3LnBuZ10oaW1hZ2VzL2VtaC1nbG9zc2FyeS0wNy5wbmcpCgpZb3UgY2FuIHRoZW4gc2VsZWN0IGEgZmFjZXQgdG8gbmFycm93IHRoZSBzZWFyY2ggcmVzdWx0cy4gIFlvdSBjYW4gYWxzbyBleHBhbmQgYSByZXN1bHQgaXRlbSBieSBzZWxlY3RpbmcgKlNob3cgRGV0YWlscyoKCiFbaW1hZ2VzL2VtaC1nbG9zc2FyeS0wOC5wbmddKGltYWdlcy9lbWgtZ2xvc3NhcnktMDgucG5nKQoKSWYgeW91IHNlbGVjdCBvbmUgb2YgdGhlIGJ1dHRvbnMgZm9yICpSZWxhdGVkKiwgKkJyb2FkZXIqLCBvciAqTmFycm93ZXIqLCB0aGVuIHlvdSB3aWxsIGJlIGh5cGVybGlua2VkIHRvIHRoYXQgKkNvbmNlcHQqCgohW2ltYWdlcy9lbWgtZ2xvc3NhcnktMDkucG5nXShpbWFnZXMvZW1oLWdsb3NzYXJ5LTA5LnBuZykKCiMjIEN1c3RvbWl6aW5nCgpUaGUgZm9sbG93aW5nIHRocmVlIGZpbGVzIGFyZSB0aGUgb25lcyB0byBjdXN0b21pemUgdG8gY2hhbmdlIHRoZSBhcHBsaWNhdGlvbiBmcm9tIGEgCmdsb3NzYXJ5IGFwcGxpY2F0aW9uIHRvIG9uZSBvZiB5b3VyIG93biBjb250ZW50LgoKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvbW9kdWxlcy9jdXN0b20vY3VzdG9tLnhxbQoqIHNyYy9tYWluL21sLWNvbmZpZy9kYXRhYmFzZXMvY29udGVudC1kYXRhYmFzZS5qc29uCiogc3JjL21haW4vcG9seW1lci9yb290L3NyYy9lbWgtYWNjZWxlcmF0b3ItYXBwL2VtaC1hY2NlbGVyYXRvci1hcHAuanMKKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3Qvc3JjL2VtaC1hY2NlbGVyYXRvci1hcHAvcmVzdWx0LWl0ZW0uanMKCiMjIyBjdXN0b20ueHFtCgpUaGlzIGZpbGUgaGFzIHRoZSBhYnN0cmFjdGVkIG91dCBjdXN0b21pemF0aW9uIGxheWVyIGZvciBoYW5kbGluZyAqc2VhcmNoKiBhbmQgKmNvbnRlbnQgdXBsb2FkKgoKIyMjIyBTZWFyY2gKClRoZSBzZWFyY2ggY3V0b21pemF0aW9uIGlzIGhhbmRsZWQgaW4gdHdvIGRpZmZlcmVudCBmdW5jdGlvbnMgaW4gdGhpcyAKWFF1ZXJ5IExpYnJhcnkgTW9kdWxlLgoKYGBgCig6fgogOiBSZXR1cm5zIHRoZSBzZWFyY2ggb3B0aW9uIGZvciB0aGUgcXVlcnkuCiA6CiA6IEByZXR1cm4gVGhlIHNlYXJjaCBvcHRpb25zIGZvciB0aGUgc2VhcmNoOnNlYXJjaCgpIGNhbGwgaW4gdGhlIHNlYXJjaCBtb2R1bGUuCiA6KQpkZWNsYXJlIGZ1bmN0aW9uIGN1c3RvbTpzZWFyY2gtb3B0aW9ucygpCmBgYApUaGF0IHJldHVybnMgdGhlIFhNTCBzZWFyY2ggb3B0aW9ucy4gIFRoZXNlIG9wdGlvbnMgZGVmaW5lIHRoZSBjb25zdHJhaW50cyAKZm9yIHRoZSBzZWFyY2ggYXMgd2VsbCBhcyB0aGUgZmFjZXRzIGZvciB0aGUgc2VhcmNoLgoKYGBgCig6fgogOiBHZW5lcmF0ZXMgdGhlIEpTT04gb2JqZWN0IGZvciBhIHJlc3VsdCBpdGVtLgogOgogOiBAcGFyYW0gJHJlc3VsdCBBICdzZWFyY2g6cmVzdWx0JyBvYmplY3QgZnJvbSB0aGUgc2VhcmNoIHJlc3VsdHMKIDogQHBhcmFtICRzaG93LXNuaXBwZXRzIEEgZmxhZyBmb3Igd2hldGhlciB0byBzaG93IHRoZSBzbmlwcGV0cy4KIDogQHJldHVybiBUaGUgSlNPTiBvYmplY3QgdGhhdCByZXByZXNlbnRzIGEgcmVzdWx0IGl0ZW0gaW4gdGhlIGNsaWVudCBwYWdlCiA6KQpkZWNsYXJlIGZ1bmN0aW9uIGN1c3RvbTpyZXN1bHQtb2JqZWN0KCRyZXN1bHQgYXMgbm9kZSgpLCAkc2hvdy1zbmlwcGV0cyBhcyB4czpib29sZWFuKQpgYGAKClRoaXMgaXMgY2FsbGVkIGZvciBlYWNoIHJlc3VsdCB0aGF0IGlzIHJldHVybmVkIGZyb20gdGhlIHNlYXJjaC4KCgoKIyMjIyBVcGxvYWQKClRoZSB1cGxvYWQgY3VzdG9taXphdGlvbiBpcyB1c2VkIHRvIHRha2UgdGhlIHVwbG9hZGVkIGZpbGUgYW5kIHBlcmZvcm0gdGhlIApwcm9wZXIgcHJvY2Vzc2luZyBvZiB0aGUgZmlsZSBiZWZvcmUgaXQgaXMgc3RvcmVkIGluIHRoZSBjb250ZW50IGRhdGFiYXNlLgoKYGBgCig6fgogOiBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyB0aGUgZmlsZSB0aGF0IHdhcyB1cGxvYWRlZCB0aHJvdWdoIHRoZSB1cGxvYWQgZGlhbG9nLgogOgogOiAgQHBhcmFtICRmaWxlbmFtZSBUaGUgbmFtZSBvZiB0aGUgZmlsZSB0aGF0IGhhcyBiZW4gdXBsb2FkZWQKIDogIEBwYXJhbSAkZmlsZSAgICAgVGhlIGZpbGUgdGhhdCBoYXMgYmVlbiB1cGxvYWRlZC4KIDogIEByZXR1cm4gQW4gYXJyYXkgb2YgSlNPTiBvYmplY3RzIGFzIHsgInR5cGUiOiBlcnJvci10eXBlLCAibWVzc2FnZSI6IGVycm9yLW1lc3NhZ2UgfQogOikKZGVjbGFyZSBmdW5jdGlvbiBjdXN0b206cHJvY2Vzcy11cGxvYWQoJGZpbGVuYW1lIGFzIHhzOnN0cmluZywgJGZpbGUpCmFzIG9iamVjdC1ub2RlKCkqCmBgYAoKIyMjIGNvbnRlbnQtZGF0YWJhc2UuanNvbgoKIyMjIHJlc3VsdC1pdGVtLmpzCgojIyMgZW1oLWFjY2VsZXJhdG9yLWFwcC5qcwoKIyMgT3RoZXJzCgoqIFJFQURNRS5tZAoqIGJ1aWxkLmdyYWRsZQoqIGdyYWRsZS5wcm9wZXJ0aWVzCiogc3JjL21haW4vbWwtY29uZmlnL2RhdGFiYXNlcy9jb250ZW50LWRhdGFiYXNlLmpzb24KKiBzcmMvbWFpbi9tbC1jb25maWcvcmVzdC1hcGkuanNvbgoqIHNyYy9tYWluL21sLWNvbmZpZy9zZWN1cml0eS9yb2xlcy8xLWVtaC1nbG9zc2FyeS1ub2JvZHktcm9sZS5qc29uCiogc3JjL21haW4vbWwtY29uZmlnL3NlY3VyaXR5L3JvbGVzLzItZW1oLWdsb3NzYXJ5LXJlYWRlci1yb2xlLmpzb24KKiBzcmMvbWFpbi9tbC1jb25maWcvc2VjdXJpdHkvcm9sZXMvMy1lbWgtZ2xvc3Nhcnktd3JpdGVyLXJvbGUuanNvbgoqIHNyYy9tYWluL21sLWNvbmZpZy9zZWN1cml0eS9yb2xlcy80LWVtaC1nbG9zc2FyeS1pbnRlcm5hbC1yb2xlLmpzb24KKiBzcmMvbWFpbi9tbC1jb25maWcvc2VjdXJpdHkvcm9sZXMvNS1lbWgtZ2xvc3NhcnktYWRtaW4tcm9sZS5qc29uCiogc3JjL21haW4vbWwtY29uZmlnL3NlY3VyaXR5L3VzZXJzL2VtaC1nbG9zc2FyeS1hZG1pbi11c2VyLmpzb24KKiBzcmMvbWFpbi9tbC1jb25maWcvc2VjdXJpdHkvdXNlcnMvZW1oLWdsb3NzYXJ5LXJlYWRlci11c2VyLmpzb24KKiBzcmMvbWFpbi9tbC1jb25maWcvc2VjdXJpdHkvdXNlcnMvZW1oLWdsb3NzYXJ5LXdyaXRlci11c2VyLmpzb24KKiBzcmMvbWFpbi9tbC1jb25maWcvc2VydmVycy94cXJzLXNlcnZlci5qc29uCiogc3JjL21haW4vbWwtbW9kdWxlcy9vcHRpb25zL2VtaC1nbG9zc2FyeS1vcHRpb25zLnhtbAoqIHNyYy9tYWluL21sLW1vZHVsZXMvcmVzdC1wcm9wZXJ0aWVzLmpzb24KKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvZXhhbXBsZS1ndWVzdGJvb2sueHF5Ciogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L2V4YW1wbGUueHF5Ciogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L2Zhdmljb24uaWNvCiogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L2d1ZXN0Ym9vay5jc3MKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvaW1hZ2VzL2FwcC1pY29uLTE0NC5wbmcKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvaW1hZ2VzL2FwcC1pY29uLTMyLnBuZwoqIHNyYy9tYWluL21sLW1vZHVsZXMvcm9vdC9pbWFnZXMvY2hyb21lLXNwbGFzaHNjcmVlbi1pY29uLTM4NHgzODQucG5nCiogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L2ltYWdlcy9jaHJvbWUtdG91Y2gtaWNvbi0xOTJ4MTkyLnBuZwoqIHNyYy9tYWluL21sLW1vZHVsZXMvcm9vdC9pbWFnZXMvaWNvbi0xMjh4MTI4LnBuZwoqIHNyYy9tYWluL21sLW1vZHVsZXMvcm9vdC9pbWFnZXMvaWNvbi01MTJ4NTEyLnBuZwoqIHNyYy9tYWluL21sLW1vZHVsZXMvcm9vdC9pbWFnZXMvaWNvbi03Mng3Mi5wbmcKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvaW1hZ2VzL2ljb24tOTZ4OTYucG5nCiogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L2ltYWdlcy9tcy1pY29uLTE0NHgxNDQucG5nCiogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L2ltYWdlcy9wb3dlcmVkLWJ5LW1hcmtsb2dpYy5wbmcKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvbW9kdWxlcy9jb25maWcueHFtCiogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L21vZHVsZXMvY3VzdG9tL2N1c3RvbS54cW0KKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvbW9kdWxlcy9lbWgtanNvbi54cW0KKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvbW9kdWxlcy9zZWFyY2gteHFycy54cXkKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QvbW9kdWxlcy91cGxvYWQteHFycy54cXkKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3Qvb3BlbmFwaS9pbmRleC5odG1sCiogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L29wZW5hcGkvb3BlbmFwaS54cXkKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3Qvb3BlbmFwaS9yeHEyeHFkb2Myb3BlbmFwaS1saWIueHF5Ciogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L29wZW5hcGkvc2VydmljZXMyeHFkb2Myb3BlbmFwaS1saWIueHF5Ciogc3JjL21haW4vbWwtbW9kdWxlcy9yb290L29wZW5hcGkveHFyczJ4cWRvYzJvcGVuYXBpLWxpYi54cXkKKiBzcmMvbWFpbi9tbC1tb2R1bGVzL3Jvb3QveHFkb2MtbGliLnhxeQoqIHNyYy9tYWluL3BvbHltZXIvcm9vdC9mYXZpY29uLmljbwoqIHNyYy9tYWluL3BvbHltZXIvcm9vdC9pbWFnZXMvYXBwLWljb24tMTQ0LnBuZwoqIHNyYy9tYWluL3BvbHltZXIvcm9vdC9pbWFnZXMvYXBwLWljb24tMzIucG5nCiogc3JjL21haW4vcG9seW1lci9yb290L2ltYWdlcy9jaHJvbWUtc3BsYXNoc2NyZWVuLWljb24tMzg0eDM4NC5wbmcKKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3QvaW1hZ2VzL2Nocm9tZS10b3VjaC1pY29uLTE5MngxOTIucG5nCiogc3JjL21haW4vcG9seW1lci9yb290L2ltYWdlcy9pY29uLTEyOHgxMjgucG5nCiogc3JjL21haW4vcG9seW1lci9yb290L2ltYWdlcy9pY29uLTUxMng1MTIucG5nCiogc3JjL21haW4vcG9seW1lci9yb290L2ltYWdlcy9pY29uLTcyeDcyLnBuZwoqIHNyYy9tYWluL3BvbHltZXIvcm9vdC9pbWFnZXMvaWNvbi05Nng5Ni5wbmcKKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3QvaW1hZ2VzL21zLWljb24tMTQ0eDE0NC5wbmcKKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3QvaW1hZ2VzL3Bvd2VyZWQtYnktbWFya2xvZ2ljLnBuZwoqIHNyYy9tYWluL3BvbHltZXIvcm9vdC9pbmRleC5odG1sCiogc3JjL21haW4vcG9seW1lci9yb290L21hbmlmZXN0Lmpzb24KKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3QvcGFja2FnZS1sb2NrLmpzb24KKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3QvcGFja2FnZS5qc29uCiogc3JjL21haW4vcG9seW1lci9yb290L3BvbHltZXIuanNvbgoqIHNyYy9tYWluL3BvbHltZXIvcm9vdC9zcmMvZW1oLWFjY2VsZXJhdG9yLWFwcC9lbWgtYWNjZWxlcmF0b3ItYXBwLmpzCiogc3JjL21haW4vcG9seW1lci9yb290L3NyYy9lbWgtYWNjZWxlcmF0b3ItYXBwL2ZhY2V0LWNhcmQuanMKKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3Qvc3JjL2VtaC1hY2NlbGVyYXRvci1hcHAvZmFjZXQtc2VsZWN0b3IuanMKKiBzcmMvbWFpbi9wb2x5bWVyL3Jvb3Qvc3JjL2VtaC1hY2NlbGVyYXRvci1hcHAvcmVzdWx0LWl0ZW0tYnV0dG9uLmpzCiogc3JjL21haW4vcG9seW1lci9yb290L3NyYy9lbWgtYWNjZWxlcmF0b3ItYXBwL3Jlc3VsdC1pdGVtLmpzCiogc3JjL21haW4vcG9seW1lci9yb290L3NyYy9lbWgtYWNjZWxlcmF0b3ItYXBwL3NlYXJjaC1zbmlwcGV0LWhpZ2hsaWdodC5qcwoqIHNyYy9tYWluL3BvbHltZXIvcm9vdC9zcmMvZW1oLWFjY2VsZXJhdG9yLWFwcC91cGxvYWQtaXRlbS5qcwoqIHNyYy9tYWluL3BvbHltZXIveHFEb2MvUkVBRE1FLm1kCiogc3JjL21haW4vcG9seW1lci94cURvYy9pbmRleC5odG1sCiogc3JjL21haW4vcG9seW1lci94cURvYy9tYW5pZmVzdC5qc29uCiogc3JjL21haW4vcG9seW1lci94cURvYy9wYWNrYWdlLWxvY2suanNvbgoqIHNyYy9tYWluL3BvbHltZXIveHFEb2MvcGFja2FnZS5qc29uCiogc3JjL21haW4vcG9seW1lci94cURvYy9wb2x5bWVyLmpzb24KKiBzcmMvbWFpbi9wb2x5bWVyL3hxRG9jL3NyYy94cWRvYy1hcHAvZnVuY3Rpb24tZGV0YWlsLmpzCiogc3JjL21haW4vcG9seW1lci94cURvYy9zcmMveHFkb2MtYXBwL2hhc2gtYnV0dG9uLmpzCiogc3JjL21haW4vcG9seW1lci94cURvYy9zcmMveHFkb2MtYXBwL2ltcG9ydC1kZXRhaWwuanMKKiBzcmMvbWFpbi9wb2x5bWVyL3hxRG9jL3NyYy94cWRvYy1hcHAvbW9kdWxlLXNlbGVjdG9yLmpzCiogc3JjL21haW4vcG9seW1lci94cURvYy9zcmMveHFkb2MtYXBwL3ZhcmlhYmxlLWRldGFpbC5qcwoqIHNyYy9tYWluL3BvbHltZXIveHFEb2Mvc3JjL3hxZG9jLWFwcC94cWRvYy1hcHAuanMKKiBzcmMvbWFpbi9wb2x5bWVyL3hxRG9jL3NyYy94cWRvYy1hcHAveHFkb2MtY29tbWVudC5qcwoqIHNyYy9tYWluL3BvbHltZXIveHFEb2Mvc3JjL3hxZG9jLWFwcC94cWRvYy1tb2R1bGUuanMKKiB4cURvYy9vcGVuYXBpLmpzb24KCiMjIHhxRG9jCgpDbGljayBvbiB0aGUgeHFEb2MgaWNvbiBhbmQgeW91IGdldCB0aGUgZm9sbG93aW5nIGluIGEgbmV3IHRhYi4KCiFbaW1hZ2VzL3hxZG9jLTAxLnBuZ10oaW1hZ2VzL3hxZG9jLTAxLnBuZykKCiMjIE9wZW5BUEkKCkNsaWNrIG9uIHRoZSBPcGVuQVBJIGljb24gYW5kIHlvdSBnZXQgdGhlIFN3YWdnZXIgVUkgb2YgdGhlIFJFU1RmdWwgc2VydmljZXMKb2YgdGhlIGFwcGxpY2F0aW9uIGluIGEgbmV3IHRhYi4KCiFbaW1hZ2VzL29wZW5hcGktMDEucG5nXShpbWFnZXMvb3BlbmFwaS0wMS5wbmcpCgojIyBUcmFpbmluZyBBdmFpbGFibGUKCltFYXN5TWV0YUh1Yl0oaHR0cDovL2Vhc3ltZXRhaHViLmNvbSkgaXMgYXZhaWxhYmxlIGZvciB0cmFpbmluZyBpbiBwcm9wZXIKWFF1ZXJ5IGRvY3VtZW50YXRpb24gYW5kIE9wZW5BUEkgZ2VuZXJhdGlvbi4= readmeEtag: '"de3b387ffa71a2e41370e6b27287397db4cd47b6"' readmeLastModified: Tue, 05 Dec 2023 00:00:15 GMT repositoryId: 224879779 description: >- This is a template application for MarkLogic that is for a glossary viewer that also shows xqDoc and OpenAPI (Swagger-UI) created: '2019-11-29T15:34:21Z' updated: '2023-02-25T00:41:52Z' language: XQuery archived: false stars: 3 watchers: 4 forks: 0 owner: easymetahub logo: https://avatars.githubusercontent.com/u/17910373?v=4 license: Apache-2.0 repoEtag: '"211991d64d1fc80fabd4ef319c836a1a48fc5ddfcda044792fcae71821c9246c"' repoLastModified: Sat, 25 Feb 2023 00:41:52 GMT foundInMaster: true category: Testing id: edb1cfa247ab744d31e76832e8660d92 - source: openapi3 tags repository: https://github.com/alexandreelise/routefinder v3: true id: ac627bd78609a73f994b9b6280af6862 repositoryMetadata: base64Readme: >- IyBSb3V0ZUZpbmRlcgoKIyMjIFdIWSA/CgpJIHdhbnRlZCB0byBiZSBhYmxlIHRvIHVzZSB3aGF0IEkga25vdyBiZXN0OiBQSFAgYW5kIEpvb21sYSB0byBtYWtlIGEgdXNlZnVsIHRvb2wgZm9yIHRoZSBKb29tbGEgRGV2ZWxvcGVycyBDb21tdW5pdHkKYW5kIGFsbG93IG1vcmUgcGVvcGxlIHRvIGdyYXNwIHRoZSBUUlVFIFBPV0VSIG9mIFdlYiBTZXJ2aWNlcyAvIEFwaSBpbiBKb29tbGEgNS54IGFuZCBiZXlvbmQuCgpHT0FMOiBGZXRjaCBhbmQgZXh0cmFjdCBKb29tbGEhIDUueCBhbmQgYmV5b25kIEFQSSBFbmRwb2ludHMgZnJvbSBzb3VyY2UgY29kZSB0aGVuIGdlbmVyYXRlIE9wZW5BUEkgU2NoZW1hIDMuMC4wIG91dCBvZiBpdC4KCiMjIyBIT1cgPwoKVGhpcyBwcm9qZWN0IHNob3VsZCB3b3JrIG9uIExpbnV4LFVuaXggYmFzZWQgT1MgbGlrZSBVYnVudHUgb3IgbWFjT1MuIE5vdCB0ZXN0ZWQgb24gV2luZG93cy4KCkZpcnN0IGNvbW1hbmQgdG8gdHlwZSBpbiB5b3VyIHRlcm1pbmFsOgpDbG9uZSB0aGlzIHJlcG86CgpgYGBzaGVsbAoKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4YW5kcmVlbGlzZS9yb3V0ZWZpaGRlci5naXQKCmBgYAoKVGhlbiwgZ28gdG8gdGhlIGRpcmVjdG9yeQoKYGBgc2hlbGwKCmNkIHJvdXRlZmluZGVyCgpgYGAKClRoZW4gaW5zdGFsbCB0aGUgZGVwZW5kZW5jaWVzCgpgYGBzaGVsbAoKY29tcG9zZXIgaW5zdGFsbAoKYGBgCgpUaGVuIGxpc3QgY29tcG9zZXIgc2NyaXB0IGRlc2NyaXB0aW9ucyBtYWRlIGZvciByb3V0ZWZpbmRlcjoKCmBgYHNoZWxsCgpjb21wb3NlciBsaXN0CgpgYGAKCgpXaGVuIHVzaW5nICoqc3RhYmxlIG1vZGUqKjoKClRoaXMgY29tcG9zZXIgc2NyaXB0IHdpbGwgcnVuIGFsbCB0aGUgc3RlcHMgbmVjZXNzYXJ5IGZvciBzdGFibGUgdmVyc2lvbiBvZiBKb29tbGEuIFZlcnNpb24gaWYgdGhlIGZvcm0gb2YgNS0wLTAgKHdpdGgKZGFzaGVzIG5vdCBkb3RzKS4gWW91IGNhbiBjb25maWd1cmUgd2hpY2ggdmVyc2lvbiB5b3Ugd2FudCB0byBmaW5kIFdlYiBTZXJ2aWNlcyByb3V0ZXMgZm9yIHdpdGggYW4gZW52aXJvbm1lbnQgdmFyaWFibGUKaW4gdGhlIGNvbXBvc2VyIHNjcmlwdCBuZXh0IHRoZSBsaW5lIGBgYCBAcHV0ZW52IEFQUF9TVEFCTEU9NS0wLTAgYGBgCgpgYGBzaGVsbAoKY29tcG9zZXIgcm91dGVmaW5kZXItYWxsLXN0YWJsZQoKYGBgCgoxLiBGaXJzdCBzdGVwIGlzIHRvIGZldGNoIHRoZSBsYXRlc3Qgc3RhYmxlIHJlbGVhc2UgZnJvbSBodHRwczovL3d3dy5qb29tbGEub3JnIHdlYnNpdGUKMi4gRXh0cmFjdCB0aGUgY29udGVudHMgaW4gYSB0ZW1wIGRpcmVjdG9yeQozLiBTdGF0aWNhbGx5IGFuYWx5c2UgdGhlIGNvZGUgd2l0aCBuaWtpYy9waHAtcGFyc2VyCjQuIEV4dHJhY3QgQXBpIHVybHMsIG1ldGhvZHMsIG1vZGVscyBmcm9tIGNvZGUgYW5hbHlzZWQgd2l0aG91dCBydW5uaW5nIGl0CgpTSURFIE5PVEU6ClJvdXRlRmluZGVyIHNob3VsZCBleHRyYWN0IFdlYiBTZXJ2aWNlcyByb3V0ZXMgd2l0aG91dCB0aGUgbmVlZCB0byBpbnN0YWxsIEpvb21sYS4gQnV0IGlmIHlvdSB3YW50IHRvIHJ1biB0aGUKU21va2VUZXN0cy4gRm9yIHRob3NlIHRlc3RzIHRvIHdvcmssIHlvdSB3aWxsIG5lZWQgdG8gcmVuYW1lIGFwaS1jb25maWcuZGlzdC5pbmkgdG8gYXBpLWNvbmZpZy5pbmkgYW5kIHByb3ZpZGUgeW91cgpkb3dubG9hZCBKb29tbGEgQXBpIFRva2VuIGFmdGVyIHVzaW5nIFJvdXRlRmluZGVyLgoKUkVNRU1CRVIgTk9UIFRPIExFQUsgWU9VUiBBUEkgVE9LRU5TIElOIFlPVVIgUkVQTy4gWW91IGNhbiB1c2Ugc2VjdXJpdHkgcmVsYXRlZCB0b29scyBmb3IgdGhhdCBwdXJwb3NlLiBFLmcuCkdpdEd1YXJkaWFuLCBTbnlrLCBldGMuLi4KCndpdGggSm9vbWxhIEZyYW1ld29yayBIdHRwIHBhY2thZ2UgYW5kIHBocHVuaXQgMTAsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCB0aGUgSm9vbWxhIHRoaXMgc2NyaXB0IGp1c3QgZG93bmxvYWRlZCBieQpwb2ludGluZyB5b3VyIGxvY2FsIHdlYnJvb3Qgb24geW91ciBsb2NhbCB3ZWIgc2VydmVyIHRvIHRoZSBmb2xkZXIgY2FsbGVkIGBgYCBleHRyYWN0ZWQgYGBgCgpXaGVuIHVzaW5nICoqZGV2IG1vZGUqKjoKCkFsbW9zdCB0aGUgc2FtZSBhcyBzdGFibGUgbW9kZSBidXQgdGhpcyB0aW1lLCB0aGlzIGNvbXBvc2VyIHNjcmlwdCB3aWxsIHJ1biBhbGwgdGhlIHN0ZXBzIG5lY2Vzc2FyeSBmb3IgZ2l0IHJlZiB0YWcKdmVyc2lvbiBvZiBKb29tbGEuIFlvdSBjYW4gY29uZmlndXJlIHdoaWNoIHZlcnNpb24geW91IHdhbnQgdG8gZmluZCBXZWIgU2VydmljZXMgcm91dGVzIGZvciB3aXRoIGFuIGVudmlyb25tZW50IHZhcmlhYmxlCmluIHRoZSBjb21wb3NlciBzY3JpcHQgbmV4dCB0aGUgbGluZSBgYGAgQHB1dGVudiBBUFBfUkVGX1RBRz01LjAuMC1yYzIgYGBgCgpgYGBzaGVsbAoKY29tcG9zZXIgcm91dGVmaW5kZXItYWxsLWRldgoKYGBgCgojIyMgU1RJTEwgV09SSyBJTiBQUk9HUkVTUwoKRXh0cmFjdGlvbiBpcyBkb25lIGNvcnJlY3RseSBidXQgbm93LCBSb3V0ZUZpbmRlciBuZWVkcyB0bzoKCi0gUGFyc2UgdGhlIGZvdW5kIHJvdXRlcwotIE1hcCBwYXRoIHZhcmlhYmxlcyB3aXRoIGNvcnJlY3QgcmVnZXggdmFsaWRhdGlvbiBmb3IgdHlwZXMgKG1haW5seSBpbnRlZ2VycyBidXQgbm90IGZvciBhbGwgcm91dGVzKQotIFJlY29uc3RydWN0IHByb3Blcmx5IGZvcm1hdHRlZCByb3V0ZXMKLSBHZW5lcmF0aW9uIGNvcnJlc3BvbmRpbmcgT3BlbkFQSSAzLjAuMCBTY2hlbWEgKHdoaWNoIGlzIGFscmVhZHkgaW4gYWxtb3N0IGNvbXBsZXRlIHN0YXRlIGluIEpvb21sYSBNYW51YWwKICBleGFjdGx5IFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vam9vbWxhL01hbnVhbC9ibG9iL2ZlYXR1cmUvb3BlbmFwaS9kb2NzL3VzaW5nLWNvcmUtZnVuY3Rpb25zL3dlYnNlcnZpY2VzL2Fzc2V0cy93ZWJzZXJ2aWNlcy1vcGVuYXBpLnlhbWwpKQotIE15IGVuZCBnb2FsIHdpdGggdGhpcyBwcm9qZWN0IGlzIHRvIGdlbmVyYXRlIHRoaXMga2luZCBvZiBmaWxlIGluIGEgY29tcGxldGVseSBhdXRvbWF0ZWQgd2F5IHVzaW5nIFBIUCBhbmQgSm9vbWxhIHRoZW4KICBjb250cmlidXRlIGJhY2sgdG8gSm9vbWxhIE1hbnVhbCBpbiBvcmRlciB0byBlYXNlIHRoZSB0ZWRpb3VzIHdvcmsgYW5kIHBhaW4gcmFpc2VkIGJ5IG1hbnVhbGx5IGNyZWF0aW5nIHRoaXMgZmlsZQogIHdoaWNoIGlzIGVycm9yLXByb25lIGFuZCBsZXNzIHRoYW4gaWRlYWwgdG8gbWFudWFsbHkgdW5sZXNzIHRoZSBmaWxlIGlzIHNob3J0Lgo= readmeEtag: '"1b19065b6491546aec4e49fc9bd3929fca4b49e8"' readmeLastModified: Mon, 08 Jan 2024 02:08:02 GMT repositoryId: 692219005 description: >- Goal: Extract Joomla Api Routes to be able to auto-generate always up-to-date OpenAPI Schema created: '2023-09-15T20:49:49Z' updated: '2024-01-03T19:22:12Z' language: PHP archived: false stars: 3 watchers: 3 forks: 0 owner: alexandreelise logo: https://avatars.githubusercontent.com/u/51425450?v=4 license: AGPL-3.0 repoEtag: '"a4888318ea132d747401ca4d7eeb970c1d71766723c9658fa9057139d151c2d3"' repoLastModified: Wed, 03 Jan 2024 19:22:12 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sergeyklay/provider-pact-example v3: true id: 3c013cdf6ffea735ac445dae12e3466a repositoryMetadata: base64Readme: >- Li4gcmF3OjogaHRtbAoKICAgIDxoMSBhbGlnbj0iY2VudGVyIj5Qcm92aWRlciBBUEkgRXhhbXBsZTwvaDE+CiAgICA8cCBhbGlnbj0iY2VudGVyIj4KICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2VyZ2V5a2xheS9wcm92aWRlci1wYWN0LWV4YW1wbGUvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC1jb250cmFjdHMueWFtbCI+CiAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vc2VyZ2V5a2xheS9wcm92aWRlci1wYWN0LWV4YW1wbGUvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC1jb250cmFjdHMueWFtbC9iYWRnZS5zdmciIGFsdD0iVGVzdCBDb250cmFjdHMiIC8+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zZXJnZXlrbGF5L3Byb3ZpZGVyLXBhY3QtZXhhbXBsZS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LWNvZGUueWFtbCI+CiAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vc2VyZ2V5a2xheS9wcm92aWRlci1wYWN0LWV4YW1wbGUvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC1jb2RlLnlhbWwvYmFkZ2Uuc3ZnIiBhbHQ9IlRlc3QgQ29kZSIgLz4KICAgICAgICA8L2E+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NlcmdleWtsYXkvcHJvdmlkZXItcGFjdC1leGFtcGxlL2FjdGlvbnMvd29ya2Zsb3dzL2xpbnQtb2FzLnlhbWwiPgogICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3NlcmdleWtsYXkvcHJvdmlkZXItcGFjdC1leGFtcGxlL2FjdGlvbnMvd29ya2Zsb3dzL2xpbnQtb2FzLnlhbWwvYmFkZ2Uuc3ZnIiBhbHQ9IkxpbnQgT3BlbkFQSSIgLz4KICAgICAgICA8L2E+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9jb2RlY292LmlvL2doL3NlcmdleWtsYXkvcHJvdmlkZXItcGFjdC1leGFtcGxlIiA+CiAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2NvZGVjb3YuaW8vZ2gvc2VyZ2V5a2xheS9wcm92aWRlci1wYWN0LWV4YW1wbGUvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPTJDOFcwVlpRR04iIGFsdD0iQ292ZXJhZ2UgU3RhdHVzIi8+CiAgICAgICAgPC9hPgogICAgPC9wPgoKLi4gdGVhc2VyLWJlZ2luCgpUaGlzIGlzIGEgUHl0aG9uIGFwcGxpY2F0aW9uIGZvciBleHBsYW5hdGlvbiBvZiBDb250cmFjdCBUZXN0aW5nIGJhc2VkIG9uCmBQYWN0IDxodHRwczovL2RvY3MucGFjdC5pbz5gXy4KCkhlcmUgeW91IGNhbiBmaW5kIG91dCBob3cgdG8gdXNlIFBhY3QgdXNpbmcgdGhlIFB5dGhvbiBsYW5ndWFnZS4gWW91IGNhbiBmaW5kCm1vcmUgb2YgYW4gb3ZlcnZpZXcgb24gUGFjdCBpbiB0aGUgYFBhY3QgSW50cm9kdWN0aW9uIDxodHRwczovL2RvY3MucGFjdC5pby8+YF8uCgpUaGlzIHByb2plY3QgdXNlczoKCiogYFBhY3QgPGh0dHBzOi8vcGFjdC5pbz5gXywgYSBjb2RlLWZpcnN0IHRvb2wgZm9yIHRlc3RpbmcgSFRUUCBhbmQgbWVzc2FnZQogIGludGVncmF0aW9ucyB1c2luZyBjb250cmFjdCB0ZXN0cwoqIGBwYWN0LXB5dGhvbiA8aHR0cHM6Ly9naXRodWIuY29tL3BhY3QtZm91bmRhdGlvbi9wYWN0LXB5dGhvbj5gXywgdG8gY3JlYXRlCiAgYW5kIHZlcmlmeSBjb25zdW1lciBkcml2ZW4gY29udHJhY3RzCiogYE9wZW5BUEkgPGh0dHBzOi8vc3dhZ2dlci5pbz5gXywgdG8gZGVzY3JpYmUgdGhlIFByb2R1Y3RzIEFQSQoqIGBGbGFzayA8aHR0cHM6Ly9mbGFzay5wYWxsZXRzcHJvamVjdHMuY29tPmBfLCBhIG1pY3JvIHdlYiBmcmFtZXdvcmsgZm9yCiAgYnVpbGRpbmcgQVBJCgouLiB0ZWFzZXItZW5kCgouLiBpbWFnZTo6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zZXJnZXlrbGF5L3Byb3ZpZGVyLXBhY3QtZXhhbXBsZS9tYWluL2NkYy1leGFtcGxlLnBuZwogIDphbHQ6IEludGVyYWN0aW9uIGRpYWdyYW0KClByb3ZpZGVyCj09PT09PT09CgpQcm92aWRlciBBUEkgRXhhbXBsZSBpcyBhIHNhbXBsZSBGbGFzayBhcHBsaWNhdGlvbiB0aGF0IGV4cG9zZSBlbmRwb2ludHMgd2l0aApSRVNUIHN0YW5kYXJkLiBBcyBhbiBleGFtcGxlLCB0aGlzIHByb2plY3QgdXNlcyB0aGUgc2ltcGxlIFByb2R1Y3RzIEFQSS4gSGVyZQppcyB0aGUKYE9wZW5BUEkgc3BlYyA8aHR0cHM6Ly9naXRodWIuY29tL3NlcmdleWtsYXkvcHJvdmlkZXItcGFjdC1leGFtcGxlL2Jsb2IvbWFpbi9vcGVuYXBpL3N3YWdnZXIueWFtbD5gXwpkZXNjcmliZXMgdGhlIGludGVyYWN0aW9uIG9mIGNsaWVudHMgd2l0aCB0aGUgcHJvdmlkZXIuCgpDb25zdW1lcgo9PT09PT09PQoKRm9yIHRoZSBwdXJpdHkgb2YgdGhlIGV4cGVyaW1lbnQsIHRoZSBjb25zdW1lciBpcyBpbXBsZW1lbnRlZCBhcyBhIHNlcGFyYXRlCnByb2plY3QgYW5kIGNhbiBiZSBmb3VuZCBhdApgdGhlIGZvbGxvd2luZyByZXBvIDxodHRwczovL2dpdGh1Yi5jb20vc2VyZ2V5a2xheS9jb25zdW1lci1wYWN0LWV4YW1wbGU+YF8uCgpQYWN0Cj09PT0KClNhbXBsZSBjb250cmFjdHMgKHBhY3RzKSBhcmUgbG9jYXRlZCBoZXJlOgpodHRwczovL2dpdGh1Yi5jb20vc2VyZ2V5a2xheS9jb25zdW1lci1wYWN0LWV4YW1wbGUvdHJlZS9tYWluL3Rlc3RzL3BhY3RzCgpHZXR0aW5nIFN0YXJ0ZWQKPT09PT09PT09PT09PT09CgpQcmVyZXF1aXNpdGVzCi0tLS0tLS0tLS0tLS0KCldoYXQga2luZCBvZiB0aGluZ3MgeW91IG5lZWQgdG8gaW5zdGFsbCBvbiB5b3VyIHdvcmtzdGF0aW9uIHRvIHN0YXJ0OgoKKiBQeXRob24gPj0gMy4xMQoqIFNRTGl0ZTMKKiBOb2RlLmpzID49IDE2CgpJbnN0YWxsaW5nCi0tLS0tLS0tLS0KCkZpcnN0LCBpbnN0YWxsIFB5dGhvbiBkZXBlbmRlbmNpZXMgZm9yIHByb3ZpZGVyIChQcm9kdWN0cyBBUEkpOgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICQgbWFrZSBpbml0CiAgICQgbWFrZSBpbnN0YWxsCgoKQ3JlYXRlIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb246CgouLiBjb2RlLWJsb2NrOjogY29uc29sZQoKICAgJCBjcCAuZW52LmV4YW1wbGUgLmVudgoKUnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnMgZm9yIHByb3ZpZGVyOgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICQgbWFrZSBtaWdyYXRlCgpBZGQgcHJvdmlkZXIgc2VlZCBkYXRhIHRvIHRoZSBkYXRhYmFzZToKCi4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCgogICAkIG1ha2Ugc2VlZAoKTmV4dCwgaW5zdGFsbCBOb2RlLmpzIGxpbnRlcnMgYW5kIHRvb2xzOgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICQgbnBtIGluc3RhbGwKClJ1biBBUEkgc2VydmVyCi0tLS0tLS0tLS0tLS0tCgpUbyBydW4gQVBJIHNlcnZlciB1c2UgdGhlIGNvbW1hbmQgYXMgZm9sbG93czoKCi4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCgogICAkIG1ha2Ugc2VydmUKClJ1biB0ZXN0cwotLS0tLS0tLS0KClRvIHJ1biB1bml0IHRlc3RzIHVzZSB0aGUgY29tbWFuZCBhcyBmb2xsb3dzOgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICQgbWFrZSB0ZXN0CgpUbyB2ZXJpZnkgY29udHJhY3RzIChwYWN0cykgdXNlIHRoZSBjb21tYW5kIGFzIGZvbGxvd3M6CgouLiBjb2RlLWJsb2NrOjogY29uc29sZQoKICAgJCAuL3Rlc3RzL3J1bi1weXRlc3Quc2gKCk5vdGUgdGhhdCBiZWZvcmUgdGhlIGNvbnRyYWN0cyB2ZXJpZmljYXRpb24sIHlvdSBtdXN0IGhhdmUgZGVwbG95ZWQgdGhlIGJyb2tlciwKYXMgd2VsbCBhcyB0aGUgY29udHJhY3RzIG11c3QgYmUgcHVibGlzaGVkLgoKUnVuIGxpbnQgY2hlY2sKLS0tLS0tLS0tLS0tLS0KClRvIHJ1biBPcGVuQVBJIHNwZWMgY2hlY2tpbmcgdXNlIHRoZSBjb21tYW5kIGFzIGZvbGxvd3M6CgouLiBjb2RlLWJsb2NrOjogY29uc29sZQoKICAgJCBucG0gcnVuIGxpbnQKCgouLiAtcHJvamVjdC1pbmZvcm1hdGlvbi0KClByb2plY3QgSW5mb3JtYXRpb24KPT09PT09PT09PT09PT09PT09PQoKUHJvdmlkZXIgQVBJIEV4YW1wbGUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIGBNSVQgTGljZW5zZSA8aHR0cHM6Ly9jaG9vc2VhbGljZW5zZS5jb20vbGljZW5zZXMvbWl0Lz5gXywKYW5kIGl0cyBjb2RlIGxpdmVzIGF0IGBHaXRIdWIgPGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJnZXlrbGF5L3Byb3ZpZGVyLXBhY3QtZXhhbXBsZT5gXy4KSXTigJlzIHJpZ29yb3VzbHkgdGVzdGVkIG9uIFB5dGhvbiAzLjExKy4KCklmIHlvdSdkIGxpa2UgdG8gY29udHJpYnV0ZSB0byBQcm92aWRlciBBUEkgRXhhbXBsZSB5b3UncmUgbW9zdCB3ZWxjb21lIQoKLi4gLXN1cHBvcnQtCgpTdXBwb3J0Cj09PT09PT0KClNob3VsZCB5b3UgaGF2ZSBhbnkgcXVlc3Rpb24sIGFueSByZW1hcmssIG9yIGlmIHlvdSBmaW5kIGEgYnVnLCBvciBpZiB0aGVyZSBpcwpzb21ldGhpbmcgeW91IGNhbid0IGRvIHdpdGggdGhlIFByb3ZpZGVyIEFQSSBFeGFtcGxlLCBwbGVhc2UKYG9wZW4gYW4gaXNzdWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJnZXlrbGF5L3Byb3ZpZGVyLXBhY3QtZXhhbXBsZS9pc3N1ZXM+YF8uCg== readmeEtag: '"eca875a7a45a62339691a683ba4be1654a46e539"' readmeLastModified: Mon, 05 Aug 2024 12:03:43 GMT repositoryId: 592216369 description: Provider-side demo using consumer-driven contract testing created: '2023-01-23T08:22:09Z' updated: '2024-08-05T12:03:47Z' language: Python archived: false stars: 3 watchers: 2 forks: 2 owner: sergeyklay logo: https://avatars.githubusercontent.com/u/1256298?v=4 license: MIT repoEtag: '"ddf382a07fd7ad5eaa997d4b32eb5b8cf76e0c350c9de3ebb9b1d4f66c7b582c"' repoLastModified: Mon, 05 Aug 2024 12:03:47 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/sergeyklay/contract-testing-example - https://github.com/sergeyklay/specmatic-testing-example - source: openapi3 tags repository: https://github.com/egodigital/swagger-ui-cli v3: true repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyLXVpLWNsaQoKIyMgUmVwb3NpdG9yeSBoYXMgbW92ZWQgdG8gW2Vnb21vYmlsZS9zd2FnZ2VyLXVpLWNsaV0oaHR0cHM6Ly9naXRodWIuY29tL2Vnb21vYmlsZS9zd2FnZ2VyLXVpLWNsaSkK readmeEtag: '"991fecae6fe1e2df3c8dc26fe87c0243695121a8"' readmeLastModified: Mon, 31 May 2021 11:54:09 GMT repositoryId: 291583353 description: A standalone CLI application, serving Swagger UIs via a HTTP server. created: '2020-08-31T01:17:43Z' updated: '2023-01-28T08:35:06Z' language: TypeScript archived: true stars: 3 watchers: 3 forks: 3 owner: egodigital logo: https://avatars.githubusercontent.com/u/41436054?v=4 license: GPL-3.0 repoEtag: '"a77a36132cdf35e7be44fccb1c6ec57380ae524d9e16f1a982726d9150349374"' repoLastModified: Sat, 28 Jan 2023 08:35:06 GMT foundInMaster: true category: - Low-level Tooling - Code Generators id: 1db9e8eaf18d0783bce830fbe3ccb1db - source: openapi3 tags repository: https://github.com/wtask-go/mixpanel v3: true repositoryMetadata: base64Readme: >- IyBNaXhwYW5lbAoKTWl4cGFuZWwgQVBJIGNsaWVudCBmb3IgR28KClshW0dvIFJlZmVyZW5jZV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2JhZGdlL2dpdGh1Yi5jb20vd3Rhc2stZ28vbWl4cGFuZWwuc3ZnKV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vd3Rhc2stZ28vbWl4cGFuZWwpCgojIyBSZXF1aXJlbWVudHMKCiogR28gMS4xNiBhbmQgYWJvdmUuIFRoaXMgbW9kdWxlIHVzZXMgYGVtYmVkYCBwYWNrYWdlIGludHJvZHVjZWQgZm9yIEdvIDEuMTYKCiMjIERlcGVuZGVuY2llcwoKKiBbZ2l0aHViLmNvbS9zYW50aG9zaC10ZWt1cmkvanNvbnNjaGVtYV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbnRob3NoLXRla3VyaS9qc29uc2NoZW1hKSAtLSBmb3IgSW5nZXN0aW9uIEFQSSBFdmVudCB2YWxpZGF0aW9uCiogW2dpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpKSAtLSBmb3IgcmVxdWVzdHMgdmFsaWRhdGlvbiBhZ2FpbnN0IE9wZW5BUEkgdjMgc3BlY2lmaWNhdGlvbgoKIyMgSW5nZXN0aW9uIEFQSQoKQ2hlY2sgb2ZmaWNpYWwgZG9jcyBmb3IgW0luZ2VzdGlvbiBBUEldKGh0dHBzOi8vZGV2ZWxvcGVyLm1peHBhbmVsLmNvbS9yZWZlcmVuY2UvaW5nZXN0aW9uLWFwaSkgZGV0YWlscy4KCk91ciBjbGllbnQgb2ZmZXJzIHRvcC1sZXZlbCBpbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCBNaXhwYW5lbCBlbmRwb2ludHMuCldlIHVzZSBzZW1pLW9mZmljaWFsIGpzb24gc2NoZW1hIG9mIEV2ZW50IG9iamVjdCBpbiB0ZXN0cyB0byB2YWxpZGF0ZSBwcmVwYXJlZCBldmVudCBkYXRhLiBDaGVjayBbdGhpcyBwYWdlIGluIGRvY3NdKGh0dHBzOi8vZGV2ZWxvcGVyLm1peHBhbmVsLmNvbS9kb2NzL2RhdGEtbW9kZWwjYW5hdG9teS1vZi1hbi1ldmVudCkgZm9yIHRoZSBbc2NoZW1hIGxpbmtdKGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2pid3ltZS9mMDFmMGE2ZjZmOGI4ZGIyNDcyY2I4NzcxZjdhNTA1YykuCgpBbHNvIHdlIG1hZGUgb3duIFtPcGVuQVBJIHNjaGVtYV0oLi9pbnRlcm5hbC9hc3NldHMvb3BlbmFwaS9pbmdlc3Rpb24ub3BlbmFwaS55bWwpIHRvIGRlc2NyaWJlIGV4dGVybmFsIE1peHBhbmVsIEluZ2VzdGlvbiBBUEkuIFRoZSBtb2R1bGUgdXNlcyBtZW50aW9uZWQgc2NoZW1hIHRvIHZhbGlkYXRlIHByZXBhcmVkIEhUVFAgcmVxdWVzdHMgaW4gdGVzdHMgb25seS4KCiMjIyBFdmVudHMKCiogVHJhY2sgRXZlbnQ6IGBpbmdlc3Rpb24uQ2xpZW50LlRyYWNrKClgCiogVHJhY2sgRXZlbnQgd2l0aCBEZWR1cGxpY2F0aW9uOiBgaW5nZXN0aW9uLkNsaWVudC5UcmFja0RlZHVwbGljYXRlKClgCiogVHJhY2sgTXVsdGlwbGUgRXZlbnRzOiBgaW5nZXN0aW9uLkNsaWVudC5UcmFja0JhdGNoKClgCgojIyMgVXNlciBQcm9maWxlcwoKKiBTZXQgUHJvcGVydHksIFNldCBQcm9wZXJ0eSBPbmNlLCBJbmNyZW1lbnQgTnVtZXJpY2FsIFByb3BlcnR5LCBBcHBlbmQgdG8gTGlzdCBQcm9wZXJ0eSwgUmVtb3ZlIGZyb20gTGlzdCBQcm9wZXJ0eSwgRGVsZXRlIFByb3BlcnR5OiBgaW5nZXN0aW9uLkNsaWVudC5FbmdhZ2UoKWAKKiBVcGRhdGUgTXVsdGlwbGUgUHJvZmlsZXM6IGBpbmdlc3Rpb24uQ2xpZW50LkVuZ2FnZUJhdGNoKClgCg== readmeEtag: '"5263abf375ecbbaee557919fecd74e2423526ee7"' readmeLastModified: Wed, 22 Jun 2022 21:05:41 GMT repositoryId: 354055700 description: Mixpanel API client for Go created: '2021-04-02T15:15:49Z' updated: '2023-05-06T23:18:03Z' language: Go archived: false stars: 3 watchers: 1 forks: 1 owner: wtask-go logo: https://avatars.githubusercontent.com/u/46242331?v=4 license: MIT repoEtag: '"377d6feff7636a96577bf4ca7a029419830e4732d681f50a9281950b74e71123"' repoLastModified: Sat, 06 May 2023 23:18:03 GMT foundInMaster: true category: Parsers id: 61cf00fb32df2c743392e5a46f5ad8cf - source: openapi3 tags repository: https://github.com/essentialprogramming/spring-boot-openapi v3: true repositoryMetadata: base64Readme: >- IyMgU2FtcGxlIFNwcmluZyBCb290IFJFU1RmdWwgc2VydmljZSB1c2luZyBPcGVuQVBJIDMKCiMjIyBTdGVwIDEgLSBBZGRpbmcgT3BlbkFQSSB0byBvdXIgcHJvamVjdAoKRmlyc3QsIHdlIG5lZWQgdG8gYWRkIHRoZSBkZXBlbmRlbmN5IHRvIG91ciBwb20ueG1sOgpgYGAKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZG9jPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+c3ByaW5nZG9jLW9wZW5hcGktdWk8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4xLjUuMTA8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgpUaGVuIHdlIG5lZWQgdG8gYWRkIHRoZSBjb25maWd1cmF0aW9uIGNsYXNzIHRvIG91ciBwcm9qZWN0OgpgYGAKQENvbmZpZ3VyYXRpb24KcHVibGljIGNsYXNzIFN3YWdnZXJDb25maWcgewoKICAgIC8qCiAgICBVc2VyIEFQSQogICAgICovCiAgICBAQmVhbgogICAgcHVibGljIEdyb3VwZWRPcGVuQXBpIHVzZXJBcGkoKSB7CiAgICAgICAgZmluYWwgU3RyaW5nW10gcGFja2FnZXNUb1NjYW4gPSB7ImNvbS5jb250cm9sbGVyIn07CiAgICAgICAgcmV0dXJuIEdyb3VwZWRPcGVuQXBpCiAgICAgICAgICAgICAgICAuYnVpbGRlcigpCiAgICAgICAgICAgICAgICAuZ3JvdXAoIlVzZXIgQVBJIikKICAgICAgICAgICAgICAgIC5wYWNrYWdlc1RvU2NhbihwYWNrYWdlc1RvU2NhbikKICAgICAgICAgICAgICAgIC5wYXRoc1RvTWF0Y2goIi91c2Vycy8qKiIpCiAgICAgICAgICAgICAgICAuYWRkT3BlbkFwaUN1c3RvbWlzZXIoc3RhdHVzQXBpQ29zdHVtaXplcigpKQogICAgICAgICAgICAgICAgLmJ1aWxkKCk7CiAgICB9CgogICAgcHJpdmF0ZSBPcGVuQXBpQ3VzdG9taXNlciBzdGF0dXNBcGlDb3N0dW1pemVyKCkgewogICAgICAgIHJldHVybiBvcGVuQVBJIC0+IG9wZW5BUEkKICAgICAgICAgICAgICAgIC5pbmZvKG5ldyBJbmZvKCkKICAgICAgICAgICAgICAgICAgICAgICAgLnRpdGxlKCJTcHJpbmdib290ICYgT3BlbkFQSSIpCiAgICAgICAgICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbigiVGhpcyBpcyBhIHNhbXBsZSBTcHJpbmcgQm9vdCBSRVNUZnVsIHNlcnZpY2UgdXNpbmcgT3BlbkFQSSIpCiAgICAgICAgICAgICAgICAgICAgICAgIC52ZXJzaW9uKCIzLjAuMCIpCiAgICAgICAgICAgICAgICAgICAgICAgIC5jb250YWN0KG5ldyBDb250YWN0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubmFtZSgiUmF6dmFuIFByaWNoaWNpIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXJsKCJodHRwczovL2dpdGh1Yi5jb20vZXNzZW50aWFscHJvZ3JhbW1pbmciKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lbWFpbCgicmF6dmFucGF1bHBAZ21haWwuY29tIikpKTsKICAgIH0KCiAgICBAQmVhbgogICAgcHVibGljIE9wZW5BUEkgY3VzdG9tT3BlbkFQSSgpIHsKICAgICAgICByZXR1cm4gbmV3IE9wZW5BUEkoKQogICAgICAgICAgICAgICAgLmNvbXBvbmVudHMobmV3IENvbXBvbmVudHMoKSkKICAgICAgICAgICAgICAgIC5pbmZvKG5ldyBJbmZvKCkudGl0bGUoIkNvbnRhY3QgQXBwbGljYXRpb24gQVBJIikuZGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIGlzIGEgc2FtcGxlIFNwcmluZyBCb290IFJFU1RmdWwgc2VydmljZSB1c2luZyBzcHJpbmdkb2Mtb3BlbmFwaSBhbmQgT3BlbkFQSSAzLiIpKTsKICAgIH0KCn0KYGBgCgojIyMgU3RlcCAyIC0gTG9va2luZyBhdCBTd2FnZ2VyCgpGb2xsb3dpbmcgVVJMJ3MgYXJlIG5vdyBhd2FpbGFibGUuCgpUaGUgZmlyc3Qgb25lIHJlcHJlc2VudHMgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KCltodHRwOi8vbG9jYWxob3N0OjgwODAvdjMvYXBpLWRvY3NdKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC92My9hcGktZG9jcykKCiFbQVBJIERvY3NdKHNyYy9tYWluL3Jlc291cmNlcy9pbWcvYXBpLWRvY3MucG5nKQoKVGhlIHNlY29uZCBvbmUgcmVwcmVzZW50cyB0aGUgU3dhZ2dlciBVSSwgd2hpY2ggd2UgY2FuIG5vdyB1c2UgdG8gaW52b2tlIGFuZCBleHBsb3JlIG91ciBBUEkuCgpbU3dhZ2dlciBVSV0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbCkKCiFbU3dhZ2dlciBVSV0oc3JjL21haW4vcmVzb3VyY2VzL2ltZy9zd2FnZ2VyLXVpLnBuZykKCkZvciBhbiBlYXNpZXIgYWNjZXNzLCB3ZSBjYW4gY2hhbmdlIHRoZSBTd2FnZ2VyIFVJIFVSTCB0byBhbnl0aGluZyB0aGF0IHdlIHdhbnQuCgpGb3IgdGhhdCwgd2UgbmVlZCB0byBhY2Nlc3MgYGFwcGxpY2F0aW9uLnByb3BlcnRpZXNgIGFuZCBhZGQgdGhlIGZvbGxvd2luZyBwcm9wZXJ0eToKCmBzcHJpbmdkb2Muc3dhZ2dlci11aS5wYXRoPS9hcGlkb2NgCgpUaGlzIHdpbGwgc2V0IG91ciBTd2FnZ2VyIFVJIFVSTCB0bzogW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGlkb2NdKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGlkb2MpCgojIyMgU3RlcCAzIC0gQWRkIGFubm90YXRpb25zIHRvIGVuZHBvaW50cwoKSW4gb3JkZXIgZm9yIG91ciBlbmRwb2ludHMgdG8gYmUgdmlzaWJsZSBpbiBTd2FnZ2VyLCB3ZSBuZWVkIHRvIG1hcmsgZWFjaCBvZiB0aGVtIHdpdGggYEBPcGVyYXRpb25gIHRhZy4KCkhlcmUgaXMgYW4gZXhhbXBsZToKCmBgYAogICAgQFBvc3RNYXBwaW5nKCIvdXNlcnMiKQogICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIlJlZ2lzdGVyIGEgbmV3IHVzZXIiLCB0YWdzID0geyJVc2VyIix9LAogICAgICAgICAgICByZXNwb25zZXMgPSB7CiAgICAgICAgICAgICAgICAgICAgQEFwaVJlc3BvbnNlKHJlc3BvbnNlQ29kZSA9ICIyMDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiUmV0dXJucyB0aGUgcmVnaXN0ZXJlZCB1c2VyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBAQ29udGVudChtZWRpYVR5cGUgPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYSA9IEBTY2hlbWEoaW1wbGVtZW50YXRpb24gPSBVc2VyLmNsYXNzKSkpCiAgICAgICAgICAgIH0pCiAgICBAUmVzcG9uc2VCb2R5CiAgICBwdWJsaWMgVXNlciByZWdpc3RlcihAUmVxdWVzdFBhcmFtKG5hbWUgPSAibmFtZSIsIHJlcXVpcmVkID0gZmFsc2UsIGRlZmF1bHRWYWx1ZSA9ICJTdHJhbmdlciIpIFN0cmluZyBuYW1lKSB7CiAgICAgICAgVXNlciBuZXdVc2VyID0gbmV3IFVzZXIoY291bnRlci5pbmNyZW1lbnRBbmRHZXQoKSwgbmFtZSk7CiAgICAgICAgcmV0dXJuIHVzZXJSZXBvc2l0b3J5LmFkZFVzZXIobmV3VXNlcik7CiAgICB9CmBgYAoKIyMjIFN0ZXAgNCAtIEdlbmVyYXRlIGEgY2xpZW50CgpUaGUgYWR2YW50YWdlIG9mIGhhdmluZyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGF2YWlsYWJsZSBpcyB0aGF0CmdlbmVyYXRpbmcgYSBjbGllbnQgY29kZSB0byBjYWxsIG91ciBBUEkgaXMgbm93IHF1aXRlIGVhc3kuCgpGb3IgdGhpcywgd2UgY2FuIHVzZSB2YXJpb3VzIHRvb2xzIHN1Y2ggYXM6IFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoLykK readmeEtag: '"d4b118ef37a6eca8ebc8d3a2e785743e7156776c"' readmeLastModified: Wed, 15 Jun 2022 06:15:51 GMT repositoryId: 408620019 description: Documenting a Spring REST API Using OpenAPI 3.0 created: '2021-09-20T22:38:37Z' updated: '2023-09-11T09:42:59Z' language: Java archived: false stars: 3 watchers: 2 forks: 5 owner: essentialprogramming logo: https://avatars.githubusercontent.com/u/46305342?v=4 license: GPL-3.0 repoEtag: '"891ad6b2dad5ee29815ea0d1a75530619ffd6854a68414b291b4b7ea40b0926b"' repoLastModified: Mon, 11 Sep 2023 09:42:59 GMT foundInMaster: true category: - SDK - Parsers id: 91740500afb5ab47cf98d36b27a38045 - source: openapi3 tags repository: https://github.com/estin/oaph v3: true id: e60b95b16fb191f591862c4061fc8a26 repositoryMetadata: base64Readme: >- IyBPQVBICgpIZWxwcyB0byBzdWJ0aXR1YXRlIHF1ZXJ5IHBhcmFtcyBhbmQgc2NoZW1hIGRlZmluaXRpb25zIHRvIG9wZW5hcGkzL2FzeW5jYXBpIHlhbWwuCgpUaGlzIGlzIGZlYXR1cmUtbGVzcyBzaW1wbGUgY3JhdGUgd2l0aCBubyBhbWJpdGlvbnMgdG8gc3VwcG9ydCB3aG9sZSBvcGVuYXBpMy9hc3luY2FwaSBzcGVjcyBhbmQgY292ZXIgYWxsIGNhc2VzIChhdCBsZWFzdCBjb3ZlciBteSBwZXJzb25hbCB1c2UtY2FzZXMpLgoKYGBgcnVzdAp1c2Ugc2VyZGU6OntTZXJpYWxpemUsIERlc2VyaWFsaXplfTsKdXNlIG9hcGg6OntPcGVuQXBpUGxhY2VIb2xkZXIsIHNjaGVtYXJzOjp7c2VsZiwgSnNvblNjaGVtYX19OwoKCiNbYWxsb3coZGVhZF9jb2RlKV0KI1tkZXJpdmUoRGVzZXJpYWxpemUsIEpzb25TY2hlbWEpXQpzdHJ1Y3QgU2VhcmNoUXVlcnkgewogICAgLy8vIHNvbWUgZGVzY3JpcHRpb24gZm9yIHRoaXMgZmxhZyAoc2VlIGh0dHBzOi8vZ3JhaGFtLmNvb2wvc2NoZW1hcnMvZXhhbXBsZXMvNi1kb2NfY29tbWVudHMvKQogICAgZmxhZzogYm9vbCwKfQoKI1thbGxvdyhkZWFkX2NvZGUpXQojW2Rlcml2ZShEZXNlcmlhbGl6ZSwgSnNvblNjaGVtYSldCnN0cnVjdCBTZWFyY2hSZXNwb25zZSB7CiAgICBzdWNjZXNzOiBib29sLAogICAgY291bnQ6IHVzaXplLAogICAgaXRlbXM6IFZlYzxJdGVtPiwKfQoKI1thbGxvdyhkZWFkX2NvZGUpXQojW2Rlcml2ZShEZXNlcmlhbGl6ZSwgSnNvblNjaGVtYSldCnN0cnVjdCBJdGVtIHsKICAgIGlkOiB1c2l6ZSwKICAgIHZhbHVlOiBTdHJpbmcsCn0KCmZuIG1haW4oKSAtPiBSZXN1bHQ8KCksIEJveDxkeW4gc3RkOjplcnJvcjo6RXJyb3I+PiB7CiAgICBsZXQgb3BlbmFwaTNfeWFtbCA9IE9wZW5BcGlQbGFjZUhvbGRlcjo6bmV3KCkKICAgICAgICAucXVlcnlfcGFyYW1zOjo8U2VhcmNoUXVlcnk+KCJTZWFyY2hRdWVyeSIpPwogICAgICAgIC5zY2hlbWE6OjxTZWFyY2hSZXNwb25zZT4oIlNlYXJjaFJlc3BvbnNlIik/CiAgICAgICAgLnJlbmRlcl90byhyIyIKb3BlbmFwaTogMy4wLjAKaW5mbzoKICB0aXRsZTogb2FwaCBleGFtcGxlCiAgdmVyc2lvbjogMS4wLjAKcGF0aHM6CiAgL3NlYXJjaDoKICAgIGdldDoKICAgICAgdGFnczoKICAgICAgLSBkZW1vCiAgICAgIGRlc2NyaXB0aW9uOiBkZW1vIGFwaQogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIHt7U2VhcmNoUXVlcnl9fQogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMSc6CiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHt7U2VhcmNoUmVzcG9uc2V9fQpkZWZpbml0aW9uczoKICB7e29hcGg6OmRlZmluaXRpb25zfX0KIiMpPzsKCiAgICBwcmludGxuISgie30iLCBvcGVuYXBpM195YW1sKTsKICAgIE9rKCgpKQp9CmBgYAoKQW5kIG91dHB1dCB3b3VsZCBiZQoKYGBgeWFtbApvcGVuYXBpOiAzLjAuMAppbmZvOgogIHRpdGxlOiBvYXBoIGV4YW1wbGUKICB2ZXJzaW9uOiAxLjAuMApwYXRoczoKICAvc2VhcmNoOgogICAgZ2V0OgogICAgICB0YWdzOgogICAgICAtIGRlbW8KICAgICAgZGVzY3JpcHRpb246IGRlbW8gYXBpCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBpbjogcXVlcnkKICAgICAgICAgIG5hbWU6IGZsYWcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBzb21lIGRlc2NyaXB0aW9uIGZvciB0aGlzIGZsYWcgKHNlZSBodHRwczovL2dyYWhhbS5jb29sL3NjaGVtYXJzL2V4YW1wbGVzLzYtZG9jX2NvbW1lbnRzLykKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgcmVzcG9uc2VzOgogICAgICAgICcyMDEnOgogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICB0aXRsZTogU2VhcmNoUmVzcG9uc2UKICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgICAgICAgIC0gY291bnQKICAgICAgICAgICAgICAgICAgLSBpdGVtcwogICAgICAgICAgICAgICAgICAtIHN1Y2Nlc3MKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgICAgICAgICBjb3VudDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiB1aW50CiAgICAgICAgICAgICAgICAgICAgbWluaW11bTogMC4wCiAgICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgICAkcmVmOiAiIy9kZWZpbml0aW9ucy9JdGVtIgpkZWZpbml0aW9uczoKICBJdGVtOgogICAgdHlwZTogb2JqZWN0CiAgICByZXF1aXJlZDoKICAgICAgLSBpZAogICAgICAtIHZhbHVlCiAgICBwcm9wZXJ0aWVzOgogICAgICBpZDoKICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgZm9ybWF0OiB1aW50CiAgICAgICAgbWluaW11bTogMC4wCiAgICAgIHZhbHVlOgogICAgICAgIHR5cGU6IHN0cmluZwpgYGAKCkNoZWNrIFtleGFtcGxlXShleGFtcGxlcy9zaW1wbGUvc3JjL21haW4ucnMpIHRvIHNlcnZlIGRvY3Mgb24gW250ZXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9udGV4LXJzL250ZXgpIHN0YWNrLgoKCiMjIFRoYW5rcyB0bwoKIC0gW3NlcmRlXShodHRwczovL2dpdGh1Yi5jb20vc2VyZGUtcnMvc2VyZGUpIGFuZCBidWRkaWVzIGNyYXRlcwogLSBbc2NoZW1hcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9HUkVzYXUvc2NoZW1hcnMpCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIKCiogTUlUIGxpY2Vuc2UgKFtMSUNFTlNFXShMSUNFTlNFKSBvciBbaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVF0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkpCg== readmeEtag: '"d624e8ba17712a9b6c265bafb9636c2b84cfaee7"' readmeLastModified: Fri, 19 Apr 2024 17:13:45 GMT repositoryId: 372291486 description: >- Helps to subtituate query params and schema definitions to openapi3/asyncapi yaml. created: '2021-05-30T18:47:04Z' updated: '2024-04-19T17:15:31Z' language: Rust archived: false stars: 3 watchers: 3 forks: 0 owner: estin logo: https://avatars.githubusercontent.com/u/520814?v=4 license: MIT repoEtag: '"cde49308abe462b8cdd4e138527cf9c9e8530bf35259b07bfc3948e98ace1928"' repoLastModified: Fri, 19 Apr 2024 17:15:31 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/goodforgod/openapi-resources v3: true id: fe672ce8b2c7837fb898ffc1fc3de8f6 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFJlc291cmNlcwoKQ29sbGVjdGlvbiBvZiBzb21lIE9wZW5BUEkgcmVsYXRlZCByZXNvdXJjZXMuCgpGb3IgU3dhZ2dlciBVSSBEYXJrIFRoZW1lIHRoYW5rcyB0byBbUm9tYW5zIFBva3JvdnNraXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9BbW9lbnVzL1N3YWdnZXJEYXJrKQ== readmeEtag: '"6ec2308403ce20e5643a970a542763cc050565ed"' readmeLastModified: Sun, 26 Feb 2023 09:46:28 GMT repositoryId: 439724448 description: 📦 OpenAPI Resources created: '2021-12-18T22:07:59Z' updated: '2024-06-05T00:27:56Z' language: CSS archived: false stars: 3 watchers: 3 forks: 1 owner: GoodforGod logo: https://avatars.githubusercontent.com/u/9437175?v=4 repoEtag: '"09bbbd872ec197aa48e95b6a7225d15ced0dfba84bb7c2494ab4d6db720620e0"' repoLastModified: Wed, 05 Jun 2024 00:27:56 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/ironcore-dev/openapi-extractor v3: true id: 15586772b825fc246137cce1d6a2d7c7 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWV4dHJhY3RvcgoKWyFbUkVVU0Ugc3RhdHVzXShodHRwczovL2FwaS5yZXVzZS5zb2Z0d2FyZS9iYWRnZS9naXRodWIuY29tL2lyb25jb3JlLWRldi9vcGVuYXBpLWV4dHJhY3RvcildKGh0dHBzOi8vYXBpLnJldXNlLnNvZnR3YXJlL2luZm8vZ2l0aHViLmNvbS9pcm9uY29yZS1kZXYvb3BlbmFwaS1leHRyYWN0b3IpClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9pcm9uY29yZS1kZXYvb3BlbmFwaS1leHRyYWN0b3IpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vaXJvbmNvcmUtZGV2L29wZW5hcGktZXh0cmFjdG9yKQpbIVtHaXRIdWIgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9zdGF0aWMvdjE/bGFiZWw9TGljZW5zZSZtZXNzYWdlPUFwYWNoZS0yLjAmY29sb3I9Ymx1ZSldKExJQ0VOU0UpClshW1BScyBXZWxjb21lXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BScy13ZWxjb21lLWJyaWdodGdyZWVuLnN2ZyldKGh0dHBzOi8vbWFrZWFwdWxscmVxdWVzdC5jb20pCgpUaGUgYG9wZW5hcGktZXh0cmFjdG9yYCBleHRyYWN0cyB0aGUgT3BlbkFQSSB2MiBhbmQgdjMgc3BlY2lmaWNhdGlvbnMgb2YgYSBnaXZlbiBLdWJlcm5ldGVzIEFQSSBzZXJ2ZXIuCgojIyBJbnN0YWxsYXRpb24KCiMjIyBGcm9tIHNvdXJjZQoKVG8gaW5zdGFsbCB0aGUgYG9wZW5hcGktZXh0cmFjdG9yYCBiaW5hcnkgaW50byB5b3VyIEdvIGJpbiBwYXRoIHJ1bgoKYGBgYmFzaApnbyBpbnN0YWxsIGdpdGh1Yi5jb20vaXJvbmNvcmUtZGV2L29wZW5hcGktZXh0cmFjdG9yL2NtZC9vcGVuYXBpLWV4dHJhY3RvckBtYWluCmBgYAoKIyMgVXNhZ2UKCiMjIyBDb21tYW5kIGJhc2VkIGV4dHJhY3Rpb24KCkluIGNhc2UgeW91IGhhdmUgdGhlIGFwaSBzZXJ2ZXIgYmluYXJ5IHByZXNlbnQsIHlvdSBjYW4gZXh0cmFjdCB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBieSBydW5uaW5nCgpgYGBzaGVsbApvcGVuYXBpLWV4dHJhY3RvciAtLWFwaXNlcnZlci1jb21tYW5kPTxQQVRILVRPLUFQSVNFUlZFUi1CSU4+IFwKICAtLWFwaXNlcnZpY2VzPTxQQVRILVRPLUFQSVNFUlZJQ0VTLURJUj4KYGBgCgojIyMgR28gbW9kdWxlIGJhc2VkIGV4dHJhY3Rpb24KClRoZSBbYHNhbXBsZWBdKC9zYW1wbGUpIGZvbGRlciBjb250YWlucyBhbiBleGFtcGxlIG9uIGhvdyB0byBleHRyYWN0IHRoZSBPcGVuIEFQSSBzcGVjIGZyb20gYW4gYXBpIHNlcnZlciBwYWNrYWdlLiBJbiAKb3VyIGV4YW1wbGUgd2UgYXJlIHVzaW5nIHRoZSBbYGlyb25jb3JlYF0oaHR0cHM6Ly9naXRodWIuY29tL2lyb25jb3JlLWRldi9pcm9uY29yZSkgYWdncmVnYXRlZCBhcGkgc2VydmVyLgoKYGBgc2hlbGwKb3BlbmFwaS1leHRyYWN0b3IgLS1hcGlzZXJ2ZXItcGFja2FnZT1naXRodWIuY29tL2lyb25jb3JlLWRldi9pcm9uY29yZS9jbWQvaXJvbmNvcmUtYXBpc2VydmVyIFwKICAtLWFwaXNlcnZlci1idWlsZC1vcHRzPW1vZCBcCiAgLS1hcGlzZXJ2aWNlcz08UEFUSC1UTy1BUElTRVJWSUNFUy1ESVI+CmBgYAoKSW4gY2FzZSB5b3Ugd2FudCB0byB1c2UgeW91ciBvd24gcGFja2FnZSwgZmlyc3QgYGdvIGdldGAgaXQgc28geW91IGhhdmUgdG8gY29ycmVjdCBkZXBlbmRlbmNpZXMgaW4geW91ciBgZ28ubW9kYCBmaWxlIGFuZAphZGp1c3QgdGhlIGAtLWFwaXNlcnZlci1wYWNrYWdlYCBmbGFnIGFjY29yZGluZ2x5LgoKIyMjIE91dHB1dAoKVGhlIGV4dHJhY3RlZCBPcGVuQVBJIHYyIGFuZCB2MyBmaWxlcyBjYW4gYmUgZm91bmQgaW4gY3VycmVudCBmb2xkZXIgd2hlcmUgdGhlIHYyIHZlcnNpb24gd2lsbCBiZSBzdG9yZWQgaW4gdGhlIGBzd2FnZ2VyLmpzb25gCmZpbGUgYW5kIHRoZSB2MyB2ZXJzaW9ucyB3aWxsIGJlIHN0b3JlZCBpbiBpbmRpdmlkdWFsIGZpbGVzIHBlciBncm91cCBpbiB0aGUgYC4vdjNgIGZvbGRlci4KClRvIG92ZXJyaWRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgb3V0cHV0IHBhc3Mgb24gdGhlIGAtLW91dHB1dGAgZmxhZyBlLmcuIHZpYSBgLS1vdXRwdXQ9ZGV2YCBzdG9yZSBleHRyYWN0IHRoZSBmaWxlcyBpbnRvCnRoZSBgLi9kZXZgIGZvbGRlci4KCiMjIENvbnRyaWJ1dGluZwoKV2UnZCBsb3ZlIHRvIGdldCBmZWVkYmFjayBmcm9tIHlvdS4gUGxlYXNlIHJlcG9ydCBidWdzLCBzdWdnZXN0aW9ucyBvciBwb3N0IHF1ZXN0aW9ucyBieSBvcGVuaW5nIGEgR2l0SHViIGlzc3VlLgoKIyMgTGljZW5zZQoKQ29weXJpZ2h0IDIwMjIuCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgpZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCg== readmeEtag: '"292c94eae99bf01ce379b4552a33b4fc65ba3a17"' readmeLastModified: Mon, 12 Aug 2024 14:27:27 GMT repositoryId: 546069232 description: >- This project extracts the OpenAPI v2 and v3 specifications of a given Kubernetes API server created: '2022-10-05T13:22:32Z' updated: '2024-08-26T11:01:32Z' language: Go archived: false stars: 3 watchers: 6 forks: 1 owner: ironcore-dev logo: https://avatars.githubusercontent.com/u/147836484?v=4 license: Apache-2.0 repoEtag: '"895d045c95fbb310c3e250b2e46d78f071aa6f01d31c1389d926b356a1522bc5"' repoLastModified: Mon, 26 Aug 2024 11:01:32 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/kinecosystem/ecosystem-api v3: true repositoryMetadata: base64Readme: >- IyBLaW4gRWNvc3lzdGVtIFNESyBBUEkKCiMjIG1hcmtldHBsYWNlIEFQSQpUaGUgYG9wZW5hcGkueWFtbGAgZmlsZSBjb250YWlucyBkZWZpbml0aW9ucyBvZiB0aGUgc2VydmljZXMgYW5kIG1vZGVscyB0aGF0IHdpbGwgYmUgYXZhaWxhYmxlIGZvciBvdXIgY2xpZW50IHRvIGFjY2VzcyBvbiB0aGUgc2VydmVyLgoKVG8gZWRpdCB0aGUgZmlsZSB5b3UgY2FuIHVzZSB0aGUgW29ubGluZSBlZGl0b3JdKGh0dHA6Ly9lZGl0b3Iuc3dhZ2dlci5pby8/dXJsPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9raW5mb3VuZGF0aW9uL2Vjb3N5c3RlbS1hcGkvbWFzdGVyL29wZW5hcGkueWFtbCkKCiMjIyBKV1Qgc3BlY3MgYW5kIGV4YW1wbGVzOgojIyMjIEpXVCBlbmNvZGVkIG1lc3NhZ2VzCiMjIyMjIEpXVCBoZWFkZXIgZm9ybWF0CgpGb3IgYWxsIDMgSldUcyB3ZSB3aWxsIHVzZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlOgpgYGAKewoJYWxnOiBzdHJpbmc7IC8vIEVTMjU2IGJ1dCBjYW4gYmUgZGlzY3Vzc2VkCgl0eXA6IHN0cmluZzsgLy8gSldUCglraWQ6IHN0cmluZzsgLy8gaWRlbnRpZmllciBvZiB0aGUga2V5cGFpciB0aGF0IHdhcyB1c2VkIHRvIHNpZ24gdGhlIEpXVC4gaWRlbnRpZmllcnMgYW5kIHB1YmxpYyBrZXlzIHdpbGwgYmUgcHJvdmlkZWQgYnkgc2lnbmVyIGF1dGhvcml0eS4gVGhpcyBlbmFibGVzIHVzaW5nIG11bHRpcGxlIHByaXZhdGUvcHVibGljIGtleSBwYWlycyAoYSBsaXN0IG9mIHB1YmxpYyBrZXlzIGFuZCB0aGVpciBpZHMgbmVlZCB0byBiZSBwcm92aWRlZCBieSBzaWduZXIgYXV0aG9yaXR5IHRvIHZlcmlmaWVyIGluIGFkdmFuY2VkKQp9CmBgYAoKIyMjIyBSZWdpc3RlciBwYXlsb2FkCmBgYAp7CgkvLyBjb21tb24vIHN0YW5kYXJkIGZpZWxkcwoJaWF0OiBudW1iZXI7ICAvLyBpc3N1ZWQgYXQgLSBzZWNvbmRzIGZyb20gZXBvYwoJaXNzOiBzdHJpbmc7IC8vIGlzc3VlcgoJZXhwOiBudW1iZXI7IC8vIGV4cGlyYXRpb24KCXN1Yjogc3RyaW5nOyAvLyBzdWJqZWN0IC0gInJlZ2lzdGVyIgoKCS8vIGFwcGxpY2F0aW9uIGZpZWxkcwoJdXNlcl9pZDogc3RyaW5nOyAvLyBpZCBvZiB0aGUgdXNlciAtIG9yIGEgZGV0ZXJtaW5pc3RpYyB1bmlxdWUgaWQgZm9yIHRoZSB1c2VyIChoYXNoKQp9CmBgYAojIyMjIyBbRXhhbXBsZSAodmlld2FibGUgb24gand0LmlvKV0oaHR0cHM6Ly9qd3QuaW8vP3Rva2VuPWV5SmhiR2NpT2lKRlV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW5OdmJXVmZhV1FpZlEuZXlKcFlYUWlPakUxTVRZeU16a3dNaklzSW1semN5STZJbXRwYXlCelpYSjJaWElpTENKbGVIQWlPakUxTWpZeU16a3dNaklzSW5OMVlpSTZJbkpsWjJsemRHVnlJaXdpZFhObGNsOXBaQ0k2SW1GZmFHRnphRjl2Ymw5cmFXdGZkWE5sY2w5cFpDSjkuNkR3b2pzcFE0NmlubHdZd24zTk5IMGJtUUl6S2Q3bUwwVlg4VjJabWxIOGFacVdGMlViS19NZDVrY3hnblhncTBQNnRFeFZUcjF2eHB3aGZqN18zZGcpCmBgYApleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkluTnZiV1ZmYVdRaWZRLmV5SnBZWFFpT2pFMU1UWXlNemt3TWpJc0ltbHpjeUk2SW10cGF5QnpaWEoyWlhJaUxDSmxlSEFpT2pFMU1qWXlNemt3TWpJc0luTjFZaUk2SW5KbFoybHpkR1Z5SWl3aWRYTmxjbDlwWkNJNkltRmZhR0Z6YUY5dmJsOXJhV3RmZFhObGNsOXBaQ0o5LjZEd29qc3BRNDZpbmx3WXduM05OSDBibVFJektkN21MMFZYOFYyWm1sSDhhWnFXRjJVYktfTWQ1a2N4Z25YZ3EwUDZ0RXhWVHIxdnhwd2hmajdfM2RnCmBgYAoKIyMjIyBTcGVuZCBwYXlsb2FkCmBgYAp7CglpYXQ6IG51bWJlcjsgIC8vIGlzc3VlZCBhdCAtIHNlY29uZHMgZnJvbSBlcG9jCglpc3M6IHN0cmluZzsgLy8gaXNzdWVyCglleHA6IG51bWJlcjsgLy8gZXhwaXJhdGlvbgoJc3ViOiBzdHJpbmc7IC8vIHN1YmplY3QgLSAic3BlbmQiCgoJbm9uY2U6IHN0cmluZzsgLy8gb3B0aW9uYWwsIHRvIGNyZWF0ZSBhIHVuaXF1ZSBwYWlyIGZvciBvZmZlciBpZCBwZXIgdXNlcgoJb2ZmZXI6IHsKCQlpZDogc3RyaW5nOyAvLyBvZmZlciBpZCAtIGlkIGlzIGRlY2lkZWQgYnkgZGlnaXRhbCBzZXJ2aWNlCgkJYW1vdW50OiBudW1iZXI7IC8vIGFtb3VudCBvZiBraW4gZm9yIHRoaXMgb2ZmZXIgLSBwcmljZQoJfTsKCXNlbmRlcjogewoJCXVzZXJfaWQ6IHN0cmluZzsgLy8gb3B0aW9uYWw6IHVzZXJfaWQgd2hvIHdpbGwgcGVyZm9ybSB0aGUKCQl0aXRsZTogc3RyaW5nOyAvLyBvcmRlciB0aXRsZSAtIGFwcGVhcnMgaW4gb3JkZXIgaGlzdG9yeQoJCWRlc2NyaXB0aW9uOiBzdHJpbmc7IC8vIG9yZGVyIGRlc2NyaXB0aW9uIC0gYXBwZWFycyBpbiBvcmRlciBoaXN0b3J5Cgl9Owp9CmBgYAojIyMjIyBbRXhhbXBsZSAodmlld2FibGUgb24gand0LmlvKV0oaHR0cHM6Ly9qd3QuaW8vP3Rva2VuPWV5SmhiR2NpT2lKRlV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW5OdmJXVmZhV1FpZlEuZXlKcFlYUWlPakUxTVRZeU16a3dNaklzSW1semN5STZJbXRwYXlCelpYSjJaWElpTENKbGVIQWlPakUxTWpZeU16a3dNaklzSW5OMVlpSTZJbk53Wlc1a0lpd2liMlptWlhJaU9uc2lhV1FpT2lKUE1USXpNVEl6TVRJeklpd2lZVzF2ZFc1MElqbzFNREF3ZlN3aWMyVnVaR1Z5SWpwN0luUnBkR3hsSWpvaVFteDFaU0JVYUdWdFpTSXNJbVJsYzJOeWFYQjBhVzl1SWpvaVQyTmxZVzRnUW14MVpTSXNJblZ6WlhKZmFXUWlPaUp6YjIxbFgzVnpaWElpZlgwLkJSYWNKMzd6YmJhS2l2V0RfdWhDMkpYb3p6ckhETjVCOVZlRzdkMUJYamtwUFlFZnBhRXlfa0tGNnhxcDdvVU1qRUcybHRyT1FQSi1Va0ZjRmw2SC1nKQpgYGAKZXlKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJbk52YldWZmFXUWlmUS5leUpwWVhRaU9qRTFNVFl5TXprd01qSXNJbWx6Y3lJNkltdHBheUJ6WlhKMlpYSWlMQ0psZUhBaU9qRTFNall5TXprd01qSXNJbk4xWWlJNkluTndaVzVrSWl3aWIyWm1aWElpT25zaWFXUWlPaUpQTVRJek1USXpNVEl6SWl3aVlXMXZkVzUwSWpvMU1EQXdmU3dpYzJWdVpHVnlJanA3SW5ScGRHeGxJam9pUW14MVpTQlVhR1Z0WlNJc0ltUmxjMk55YVhCMGFXOXVJam9pVDJObFlXNGdRbXgxWlNJc0luVnpaWEpmYVdRaU9pSnpiMjFsWDNWelpYSWlmWDAuQlJhY0ozN3piYmFLaXZXRF91aEMySlhvenpySERONUI5VmVHN2QxQlhqa3BQWUVmcGFFeV9rS0Y2eHFwN29VTWpFRzJsdHJPUVBKLVVrRmNGbDZILWcKYGBgCiMjIyMgRWFybiBwYXlsb2FkCmBgYAp7CglpYXQ6IG51bWJlcjsgIC8vIGlzc3VlZCBhdCAtIHNlY29uZHMgZnJvbSBlcG9jCglpc3M6IHN0cmluZzsgLy8gaXNzdWVyCglleHA6IG51bWJlcjsgLy8gZXhwaXJhdGlvbgoJc3ViOiBzdHJpbmc7IC8vIHN1YmplY3QgLSAiZWFybiIKCglub25jZTogc3RyaW5nOyAvLyBvcHRpb25hbCwgdG8gY3JlYXRlIGEgdW5pcXVlIHBhaXIgZm9yIG9mZmVyIGlkIHBlciB1c2VyCglvZmZlcjogewoJCWlkOiBzdHJpbmc7IC8vIG9mZmVyIGlkIC0gaWQgaXMgZGVjaWRlZCBieSBkaWdpdGFsIHNlcnZpY2UKCQlhbW91bnQ6IG51bWJlcjsgLy8gYW1vdW50IG9mIGtpbiBmb3IgdGhpcyBvZmZlciAtIHByaWNlCgl9OwoJcmVjaXBpZW50OiB7CgkJdXNlcl9pZDogc3RyaW5nOyAvLyB1c2VyX2lkIHdobyB3aWxsIHBlcmZvcm0gdGhlIG9yZGVyCgkJdGl0bGU6IHN0cmluZzsgLy8gb3JkZXIgdGl0bGUgLSBhcHBlYXJzIGluIG9yZGVyIGhpc3RvcnkKCQlkZXNjcmlwdGlvbjogc3RyaW5nOyAvLyBvcmRlciBkZXNjcmlwdGlvbiAtIGFwcGVhcnMgaW4gb3JkZXIgaGlzdG9yeQoJfTsKfQpgYGAKIyMjIyMgW0V4YW1wbGUgKHZpZXdhYmxlIG9uIGp3dC5pbyldKGh0dHBzOi8vand0LmlvLz90b2tlbj1leUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkluTnZiV1ZmYVdRaWZRLmV5SnBZWFFpT2pFMU1UWXlNemt3TWpJc0ltbHpjeUk2SW10cGF5QnpaWEoyWlhJaUxDSmxlSEFpT2pFMU1qWXlNemt3TWpJc0luTjFZaUk2SW1WaGNtNGlMQ0p2Wm1abGNpSTZleUpwWkNJNklrOHhNak14TWpNeE1qTWlMQ0poYlc5MWJuUWlPalV3TURCOUxDSnlaV05wY0dsbGJuUWlPbnNpZEdsMGJHVWlPaUpDYkhWbElGUm9aVzFsSWl3aVpHVnpZM0pwY0hScGIyNGlPaUpQWTJWaGJpQkNiSFZsSWl3aWRYTmxjbDlwWkNJNkluTnZiV1ZmZFhObGNpSjlmUS5SN09wdmFaUUlBempRME1TaTVuQzFjMzlvQzlvTjA4TlZLd3JpY015V251TWJLNUZEOVFuNmVjbW9sNEpuTUdFNUlaQTdqX0xSLUVFYlZoaEVZaTU3ZykKYGBgCmV5SmhiR2NpT2lKRlV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW5OdmJXVmZhV1FpZlEuZXlKcFlYUWlPakUxTVRZeU16a3dNaklzSW1semN5STZJbXRwYXlCelpYSjJaWElpTENKbGVIQWlPakUxTWpZeU16a3dNaklzSW5OMVlpSTZJbVZoY200aUxDSnZabVpsY2lJNmV5SnBaQ0k2SWs4eE1qTXhNak14TWpNaUxDSmhiVzkxYm5RaU9qVXdNREI5TENKeVpXTnBjR2xsYm5RaU9uc2lkR2wwYkdVaU9pSkNiSFZsSUZSb1pXMWxJaXdpWkdWelkzSnBjSFJwYjI0aU9pSlBZMlZoYmlCQ2JIVmxJaXdpZFhObGNsOXBaQ0k2SW5OdmJXVmZkWE5sY2lKOWZRLlI3T3B2YVpRSUF6alEwTVNpNW5DMWMzOW9DOW9OMDhOVkt3cmljTXlXbnVNYks1RkQ5UW42ZWNtb2w0Sm5NR0U1SVpBN2pfTFItRUViVmhoRVlpNTdnCmBgYAojIyMjIFBheVRvVXNlciBwYXlsb2FkCmBgYAp7CglpYXQ6IG51bWJlcjsgIC8vIGlzc3VlZCBhdCAtIHNlY29uZHMgZnJvbSBlcG9jCglpc3M6IHN0cmluZzsgLy8gaXNzdWVyCglleHA6IG51bWJlcjsgLy8gZXhwaXJhdGlvbgoJc3ViOiBzdHJpbmc7IC8vIHN1YmplY3QgLSAicGF5X3RvX3VzZXIiCgoJbm9uY2U6IHN0cmluZzsgLy8gb3B0aW9uYWwsIHRvIGNyZWF0ZSBhIHVuaXF1ZSBwYWlyIGZvciBvZmZlciBpZCBwZXIgdXNlcgoJb2ZmZXI6IHsKCQlpZDogc3RyaW5nOyAvLyBvZmZlciBpZCAtIGlkIGlzIGRlY2lkZWQgYnkgZGlnaXRhbCBzZXJ2aWNlCgkJYW1vdW50OiBudW1iZXI7IC8vIGFtb3VudCBvZiBraW4gZm9yIHRoaXMgb2ZmZXIgLSBwcmljZQoJfTsKCXNlbmRlcjogewoJCXVzZXJfaWQ6IHN0cmluZzsgLy8gb3B0aW9uYWw6IHVzZXJfaWQgd2hvIHdpbGwgcGVyZm9ybSB0aGUgb3JkZXIKCQl0aXRsZTogc3RyaW5nOyAvLyBvZmZlciB0aXRsZSAtIGFwcGVhcnMgaW4gb3JkZXIgaGlzdG9yeQoJCWRlc2NyaXB0aW9uOiBzdHJpbmc7IC8vIG9mZmVyIGRlc2NyaXB0aW9uIC0gYXBwZWFycyBpbiBvcmRlciBoaXN0b3J5Cgl9OwoJcmVjaXBpZW50OiB7CgkJdXNlcl9pZDogc3RyaW5nOyAvLyB1c2VyX2lkIHdobyB3aWxsIHJlY2VpdmUgdGhlIG9yZGVyCgkJdGl0bGU6IHN0cmluZzsgLy8gb2ZmZXIgdGl0bGUgLSBhcHBlYXJzIGluIG9yZGVyIGhpc3RvcnkKCQlkZXNjcmlwdGlvbjogc3RyaW5nOyAvLyBvZmZlciBkZXNjcmlwdGlvbiAtIGFwcGVhcnMgaW4gb3JkZXIgaGlzdG9yeQoJfTsKfQpgYGAKIyMjIyMgW0V4YW1wbGUgKHZpZXdhYmxlIG9uIGp3dC5pbyldKGh0dHBzOi8vand0LmlvLz90b2tlbmV5SmhiR2NpT2lKRlV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW5OdmJXVmZhV1FpZlEuZXlKcFlYUWlPakUxTVRZeU16a3dNaklzSW1semN5STZJbXRwYXlCelpYSjJaWElpTENKbGVIQWlPakUxTWpZeU16a3dNaklzSW5OMVlpSTZJbkJoZVY5MGIxOTFjMlZ5SWl3aWIyWm1aWElpT25zaWFXUWlPaUpQTVRJek1USXpNVEl6SWl3aVlXMXZkVzUwSWpvMU1EQXdmU3dpYzJWdVpHVnlJanA3SW5ScGRHeGxJam9pVkdsd0lFWnliMjBnUkc5dlpIa2lMQ0prWlhOamNtbHdkR2x2YmlJNklrUnZiMlI1SUhScGNIQmxaQ0I1YjNVaUxDSjFjMlZ5WDJsa0lqb2lkWE5sY2pwdWFYUjZZVzRpZlN3aWNtVmphWEJwWlc1MElqcDdJblJwZEd4bElqb2lWR2x3SUZSdklFNXBkSHBoYmlJc0ltUmxjMk55YVhCMGFXOXVJam9pV1c5MUlIUnBjSEJsWkNCT2FYUjZZVzRpTENKMWMyVnlYMmxrSWpvaWRYTmxjanBrYjI5a2VTSjlmUS5HVnVmeUFJMlVrcHp6TGxTTDdhX2tiNUpjZFNrZ0JiMVBuemRMN3dVa0lHeC1JVVV1X3BnVGVjRWx3VGJadldyQ1NyX0drSjRsZUQxTW5YSFNVYl9RUSkKYGBgCmV5SmhiR2NpT2lKRlV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW5OdmJXVmZhV1FpZlEuZXlKcFlYUWlPakUxTVRZeU16a3dNaklzSW1semN5STZJbXRwYXlCelpYSjJaWElpTENKbGVIQWlPakUxTWpZeU16a3dNaklzSW5OMVlpSTZJbkJoZVY5MGIxOTFjMlZ5SWl3aWIyWm1aWElpT25zaWFXUWlPaUpQTVRJek1USXpNVEl6SWl3aVlXMXZkVzUwSWpvMU1EQXdmU3dpYzJWdVpHVnlJanA3SW5ScGRHeGxJam9pVkdsd0lFWnliMjBnUkc5dlpIa2lMQ0prWlhOamNtbHdkR2x2YmlJNklrUnZiMlI1SUhScGNIQmxaQ0I1YjNVaUxDSjFjMlZ5WDJsa0lqb2lkWE5sY2pwdWFYUjZZVzRpZlN3aWNtVmphWEJwWlc1MElqcDdJblJwZEd4bElqb2lWR2x3SUZSdklFNXBkSHBoYmlJc0ltUmxjMk55YVhCMGFXOXVJam9pV1c5MUlIUnBjSEJsWkNCT2FYUjZZVzRpTENKMWMyVnlYMmxrSWpvaWRYTmxjanBrYjI5a2VTSjlmUS5HVnVmeUFJMlVrcHp6TGxTTDdhX2tiNUpjZFNrZ0JiMVBuemRMN3dVa0lHeC1JVVV1X3BnVGVjRWx3VGJadldyQ1NyX0drSjRsZUQxTW5YSFNVYl9RUQpgYGAKIyMjIyBQYXltZW50Q29uZmlybWF0aW9uIHBheWxvYWQKYGBgCnsKCWlhdDogbnVtYmVyOyAgLy8gaXNzdWVkIGF0IC0gc2Vjb25kcyBmcm9tIGVwb2MKCWlzczogc3RyaW5nOyAvLyBpc3N1ZXIKCWV4cDogbnVtYmVyOyAvLyBleHBpcmF0aW9uCglzdWI6IHN0cmluZzsgLy8gc3ViamVjdCAtICJwYXltZW50X2NvbmZpcm1hdGlvbiIKCglzZW5kZXJfdXNlcl9pZDogc3RyaW5nOyAvLyB1c2VyIGlkZW50aWZpZXIgLSBzYW1lIHZhbHVlIGFzIGdpdmVuIGJ5IHJlZ2lzdGVyCglyZWNpcGllbnRfdXNlcl9pZDogc3RyaW5nOyAvLyB1c2VyIGlkZW50aWZpZXIgLSBzYW1lIHZhbHVlIGFzIGdpdmVuIGJ5IHJlZ2lzdGVyCglvZmZlcl9pZDogc3RyaW5nOyAvLyBvZmZlciBpZCAtIGlkIGlzIGRlY2lkZWQgYnkgZGlnaXRhbCBzZXJ2aWNlCglub25jZTogc3RyaW5nOyAvLyB0aGUgc2FtZSBhcyB3YXMgc2VuZCBpbiB0aGUgb3JkZXIgSldULCBvciBhIGRlZmF1bHQgdmFsdWUgaW4gY2FzZSBub25lIHdhcyB1c2VkCglwYXltZW50OiB7CgkJYmxvY2tjaGFpbjogc3RyaW5nOyAvLyBpZGVudGlmaWVyIG9mIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdGhlIHRyYW5zYWN0aW9uIHdhcyBtYWRlIG9uCgkJdHJhbnNhY3Rpb25faWQ6IHN0cmluZzsgLy8gc3RlbGxhciBpZGVudGlmaWVyIG9mIHRoZSBibG9ja2NoYWluIHRyYW5zYWN0aW9uCgl9Owp9CmBgYAojIyMjIyBbRXhhbXBsZSAodmlld2FibGUgb24gand0LmlvKV0oaHR0cHM6Ly9qd3QuaW8vP3Rva2VuPWV5SmhiR2NpT2lKRlV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW5OdmJXVmZhV1FpZlEuZXlKcFlYUWlPakUxTVRZeU16a3dNaklzSW1semN5STZJbXRwYXlJc0ltVjRjQ0k2TVRVeU5qSXpPVEF5TWl3aWMzVmlJam9pY0dGNWJXVnVkRjlqYjI1bWFYSnRZWFJwYjI0aUxDSnZabVpsY2w5cFpDSTZJazh4TWpNeE1qTXhNak1pTENKelpXNWtaWEpmZFhObGNsOXBaQ0k2SW5WelpYSTZaRzl2WkhraUxDSnlaV05wY0dsbGJuUmZkWE5sY2w5cFpDSTZJblZ6WlhJNmJtbDBlbUZ1SWl3aWNHRjViV1Z1ZENJNmV5SmliRzlqYTJOb1lXbHVJam9pYzNSbGJHeGhjaTF0WVdsdWJtVjBJaXdpZEhKaGJuTmhZM1JwYjI1ZmFXUWlPaUowY21GdWMyRmpkR2x2YmpveE1qTTBOU0o5ZlEuLUFiWk9mQzY5ZVkxSXQ0M1JjY09YbHVZLXNqV1NpNEpGdlFrVktPOUQyVWdZVTNqTlBiRWNCRVJMcnFCSFBTcFM2ZjI2TFZwSXNnNUE4MVVRTm91a3cpCmBgYApleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkluTnZiV1ZmYVdRaWZRLmV5SnBZWFFpT2pFMU1UWXlNemt3TWpJc0ltbHpjeUk2SW10cGF5SXNJbVY0Y0NJNk1UVXlOakl6T1RBeU1pd2ljM1ZpSWpvaWNHRjViV1Z1ZEY5amIyNW1hWEp0WVhScGIyNGlMQ0p2Wm1abGNsOXBaQ0k2SWs4eE1qTXhNak14TWpNaUxDSnpaVzVrWlhKZmRYTmxjbDlwWkNJNkluVnpaWEk2Wkc5dlpIa2lMQ0p5WldOcGNHbGxiblJmZFhObGNsOXBaQ0k2SW5WelpYSTZibWwwZW1GdUlpd2ljR0Y1YldWdWRDSTZleUppYkc5amEyTm9ZV2x1SWpvaWMzUmxiR3hoY2kxdFlXbHVibVYwSWl3aWRISmhibk5oWTNScGIyNWZhV1FpT2lKMGNtRnVjMkZqZEdsdmJqb3hNak0wTlNKOWZRLi1BYlpPZkM2OWVZMUl0NDNSY2NPWGx1WS1zaldTaTRKRnZRa1ZLTzlEMlVnWVUzak5QYkVjQkVSTHJxQkhQU3BTNmYyNkxWcElzZzVBODFVUU5vdWt3CmBgYAoKIyMjIyBLZXkgUGFpciB1c2VkIGluIEV4YW1wbGVzClB1YmxpYzoKYGBgCi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUVWcy9vNSt1UWJUakwzY2h5bkw0d1hnVWcyUjkKcTlVVThJNW1Fb3ZVZjg2UVo3a09CSWpKd3FuekQxb21hZ2VFSFd3SGRCTzZCK2RGYWJtZFQ5UE94Zz09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpgYGAKUHJpdmF0ZToKYGBgCi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQpNSUdIQWdFQU1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhCRzB3YXdJQkFRUWdldlp6TDFnZEFGcjg4aGIyCk9GLzJOeEFwSkN6R0NFRGRmU3A2VlFPMzBoeWhSQU5DQUFRUld6K2puNjVCdE9NdmR5SEtjdmpCZUJTRFpIMnIKMVJUd2ptWVNpOVIvenBCbnVRNEVpTW5DcWZNUFdpWnFCNFFkYkFkMEU3b0g1MFZwdVoxUDA4N0cKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpgYGAKCiMjIGludGVybmFsIHBheW1lbnQKClRvIGVkaXQgdGhlIGZpbGUgeW91IGNhbiB1c2UgdGhlIFtvbmxpbmUgZWRpdG9yXShodHRwOi8vZWRpdG9yLnN3YWdnZXIuaW8vP3VybD1odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20va2luZm91bmRhdGlvbi9lY29zeXN0ZW0tYXBpL21hc3Rlci9wYXltZW50LnlhbWwpCgojIyBjcmVhdGluZyBjbGllbnQgc3R1YnMKCm9wZW5hcGkzIGNvZGUgZ2VuZXJhdGlvbiBpcyBzdXBwb3J0ZWQgYnkgYSBmZXcgcHJvamVjdHMKCiMjIyBqYXZhCgp1c2luZyBgZ2l0aHViLmNvbTpzd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW5gIG9uIGJyYW5jaCBgdjMuMC4wLXJjMGAgY29tcGlsZSB0aGUgbWF2ZW4gcHJvamVjdCBhbmQgcnVuIHRoZSBmb2xsb3dpbmc6CmBgYApqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBnZW5lcmF0ZSAtaSB+L1dvcmtzcGFjZS9lY29zeXN0ZW0tYXBpL29wZW5hcGkueWFtbCAtbCBqYXZhICAtbyBqYXZhX2NsaWVudApgYGAK readmeEtag: '"3d07024df169f71b5b319c3262feda2c79c513fb"' readmeLastModified: Wed, 12 Jun 2019 09:07:10 GMT repositoryId: 118761691 description: Apis for client server communication created: '2018-01-24T12:21:15Z' updated: '2023-01-28T08:54:54Z' language: Java archived: true stars: 3 watchers: 17 forks: 4 owner: kinecosystem logo: https://avatars.githubusercontent.com/u/28860603?v=4 repoEtag: '"da97ab3bc31a03a6a3f166b1a6ea4c2132d10236016e71cfa7f3b297ab5302fc"' repoLastModified: Sat, 28 Jan 2023 08:54:54 GMT foundInMaster: true category: Parsers id: e55fb0f4040961fcbf22287ee716269c - source: openapi3 tags repository: https://github.com/mantisnet/yang-to-openapi v3: true repositoryMetadata: base64Readme: >- IyB5YW5nLXRvLW9wZW5hcGkKWUFORyB0byBPcGVuQVBJIDMuMC54IGNvbnZlcnRlciB0byBzZWxmLWRvY3VtZW50IFlBTkcgbW9kZWxzCg== readmeEtag: '"3a038dba68cbabdef7e20976d3d97ada3ac13110"' readmeLastModified: Wed, 03 Jun 2020 20:39:25 GMT repositoryId: 269189795 description: YANG to OpenAPI 3.0.x converter to self-document YANG models created: '2020-06-03T20:39:24Z' updated: '2020-06-08T10:41:39Z' language: null archived: false stars: 3 watchers: 3 forks: 0 owner: MantisNet logo: https://avatars.githubusercontent.com/u/66088252?v=4 license: Apache-2.0 repoEtag: '"e0739785ccd8ce20c4188d3d2deafb0ad1665fc0309bc7df3c18ce74e47c0344"' repoLastModified: Mon, 08 Jun 2020 10:41:39 GMT foundInMaster: true category: Parsers id: 6cf84626e965ab5c8d7b428d18aafde4 - source: openapi3 tags repository: https://github.com/husniadil/next-swagger-ui v3: true repositoryMetadata: base64Readme: >- IyBOZXh0LVN3YWdnZXItVUkKCioqTmV4dC1Td2FnZ2VyLVVJKiogd3JhcHMgW1N3YWdnZXIgVUldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKSB1c2luZyBbTmV4dC5qc10oaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzKSBhbmQgW3N3YWdnZXItdWktcmVhY3RdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXItdWktcmVhY3QpIGNvbXBvbmVudC4KClVubGlrZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBbc3dhZ2dlci11aS1yZWFjdF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci11aS1yZWFjdCksIHRoZSAqKk5leHQtU3dhZ2dlci1VSSoqIGluY2x1ZGVzIFRvcGJhciBvdXQtb2YtdGhlLWJveCBmb3IgZHluYW1pYyBzY2hlbWEgbG9hZGluZy4KCiMjIERlcGxveSB5b3VyIG93bgoKWyFbRGVwbG95IHdpdGggVmVyY2VsXShodHRwczovL3ZlcmNlbC5jb20vYnV0dG9uKV0oaHR0cHM6Ly92ZXJjZWwuY29tL2ltcG9ydC9wcm9qZWN0P3RlbXBsYXRlPWh0dHBzOi8vZ2l0aHViLmNvbS9odXNuaWFkaWwvbmV4dC1zd2FnZ2VyLXVpKQo= readmeEtag: '"a32c8ad9a2865fd68a0862d2fa77796e7e16b4c9"' readmeLastModified: Tue, 01 Dec 2020 17:09:58 GMT repositoryId: 315043097 description: Wraps Swagger UI using Next.js created: '2020-11-22T13:23:45Z' updated: '2022-04-26T02:48:09Z' language: JavaScript archived: false stars: 3 watchers: 2 forks: 0 owner: husniadil logo: https://avatars.githubusercontent.com/u/10581130?v=4 license: Apache-2.0 repoEtag: '"5718c7dcb411a71838dbaebebafabebdf57594949343fd027cc399105676797c"' repoLastModified: Tue, 26 Apr 2022 02:48:09 GMT foundInMaster: true category: - SDK - Code Generators id: a824a1b919bb33cccd842418c40d075b - source: openapi3 tags repository: https://github.com/bhaveshdev09/vendor-hub-api v3: true id: db572b2a5135603185743334e3579f99 repositoryMetadata: base64Readme: >- IyBWZW5kb3IgSHViIEFQSQoKQSBWZW5kb3IgTWFuYWdlbWVudCBTeXN0ZW0oVk1TKSBhcGlzICBmb3IgZWZmaWNpZW50IHZlbmRvciBwcm9maWxlIG1hbmFnZW1lbnQsIHB1cmNoYXNlIG9yZGVyIHRyYWNraW5nLCBhbmQgdmVuZG9yIHBlcmZvcm1hbmNlIG1ldHJpY3MgY2FsY3VsYXRpb24uCgohW1B5dGhvbiB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1B5dGhvbi0zLjEwLjgtNGM1NjZhP2xvZ289cHl0aG9uJiZsb25nQ2FjaGU9dHJ1ZSZsb2dvQ29sb3I9d2hpdGUmY29sb3JCPXBpbmsmc3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JBPTRjNTY2YSkgIVtEamFuZ28gdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EamFuZ28tNC4yLjgtNGM1NjZhP2xvZ289ZGphbmdvJiZsb25nQ2FjaGU9dHJ1ZWxvZ29Db2xvcj13aGl0ZSZjb2xvckI9cGluayZzdHlsZT1mbGF0LXNxdWFyZSZjb2xvckE9NGM1NjZhKSAhW0RqYW5nby1SZXN0RnJhbWV3b3JrIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGphbmdvX1Jlc3RfRnJhbWV3b3JrLTMuMTQuMC1yZWQuc3ZnP2xvbmdDYWNoZT10cnVlJnN0eWxlPWZsYXQtc3F1YXJlJmxvZ289ZGphbmdvJmxvZ29Db2xvcj13aGl0ZSZjb2xvckE9NGM1NjZhJmNvbG9yQj1waW5rKSAgIVtMYXN0IENvbW1pdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFzdC1jb21taXQvYmhhdmVzaGRldjA5L3ZlbmRvci1odWItYXBpL21hc3Rlcj8mJmxvbmdDYWNoZT10cnVlJmxvZ29Db2xvcj13aGl0ZSZjb2xvckI9Z3JlZW4mc3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JBPTRjNTY2YSkgWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQoKIyMgVGFibGUgb2YgQ29udGVudHMKCi0gW0NvcmUgRmVhdHVyZXNdKCNmZWF0dXJlcykKLSBbUHJvamVjdCBQbGFuXSgjcGxhbm5pbmcpCi0gW0luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikKLSBbQVBJIEVuZHBvaW50c10oI2FwaS1lbmRwb2ludHMpCi0gW1Rlc3RpbmddKCN0ZXN0aW5nKQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgQ29yZSBGZWF0dXJlcwoKMS4gKipWZW5kb3IgUHJvZmlsZSBNYW5hZ2VtZW50OioqCgogICAtIENyZWF0ZSwgcmV0cmlldmUsIHVwZGF0ZSwgYW5kIGRlbGV0ZSB2ZW5kb3IgcHJvZmlsZXMuCiAgIC0gVHJhY2sgdmVuZG9yIGluZm9ybWF0aW9uIGluY2x1ZGluZyBuYW1lLCBjb250YWN0IGRldGFpbHMsIGFkZHJlc3MsIGFuZCBhIHVuaXF1ZSB2ZW5kb3IgY29kZS4KMi4gKipQdXJjaGFzZSBPcmRlciBUcmFja2luZzoqKgoKICAgLSBDcmVhdGUsIHJldHJpZXZlLCB1cGRhdGUsIGFuZCBkZWxldGUgcHVyY2hhc2Ugb3JkZXJzLgogICAtIFRyYWNrIHB1cmNoYXNlIG9yZGVyIGRldGFpbHMgc3VjaCBhcyBQTyBudW1iZXIsIHZlbmRvciByZWZlcmVuY2UsIG9yZGVyIGRhdGUsIGl0ZW1zLCBxdWFudGl0eSwgYW5kIHN0YXR1cy4KMy4gKipWZW5kb3IgUGVyZm9ybWFuY2UgRXZhbHVhdGlvbjoqKgoKICAgLSBDYWxjdWxhdGUgdmVuZG9yIHBlcmZvcm1hbmNlIG1ldHJpY3MsIGluY2x1ZGluZyBvbi10aW1lIGRlbGl2ZXJ5IHJhdGUsIHF1YWxpdHkgcmF0aW5nIGF2ZXJhZ2UsIGF2ZXJhZ2UgcmVzcG9uc2UgdGltZSwgYW5kIGZ1bGZpbGxtZW50IHJhdGUuCiAgIC0gUmV0cmlldmUgcGVyZm9ybWFuY2UgbWV0cmljcyBmb3IgYSBzcGVjaWZpYyB2ZW5kb3IuCgojIyBQcm9qZWN0IFBsYW4gCgpUbyBhY2Nlc3MgdGhlIHByb2plY3QgcGxhbiwgcGxlYXNlIHZpc2l0IHRoZSBmb2xsb3dpbmcgVVJMOiBbVmVuZG9yIEh1YiBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS91c2Vycy9iaGF2ZXNoZGV2MDkvcHJvamVjdHMvMSkKCiMjIEluc3RhbGxhdGlvbgoKMS4gQ2xvbmUgdGhlIHJlcG9zaXRvcnk6CgogICBgYGBiYXNoCiAgIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYmhhdmVzaGRldjA5L3ZlbmRvci1odWItYXBpLmdpdCBiYWNrZW5kCiAgIGNkIGJhY2tlbmQKICAgYGBgCjIuIENyZWF0ZSBhIHZpcnR1YWwgZW52aXJvbm1lbnQgYW5kIGluc3RhbGwgZGVwZW5kZW5jaWVzOgoKICAgYGBgYmFzaAogICBweXRob24gLW0gdmVudiB2ZW52CiAgIHNvdXJjZSB2ZW52L2Jpbi9hY3RpdmF0ZSAgIyBPbiBXaW5kb3dzLCB1c2UgYHZlbnZcU2NyaXB0c1xhY3RpdmF0ZWAKICAgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dAogICBgYGAKMy4gQXBwbHkgZGF0YWJhc2UgbWlncmF0aW9uczoKCiAgIGBgYGJhc2gKICAgcHl0aG9uIG1hbmFnZS5weSBtaWdyYXRlCiAgIGBgYAo0LiBSdW4gdGhlIGRldmVsb3BtZW50IHNlcnZlcjoKCiAgIGBgYGJhc2gKICAgcHl0aG9uIG1hbmFnZS5weSBydW5zZXJ2ZXIKICAgYGBgCjUuIFNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgIAogICA+IFBsZWFzZSByZWZlciAqKi5lbnYuZXhhbXBsZSoqIGZvciBtdXN0IGhhdmUgdmFyaWFibGVzCgo2LiBBY2Nlc3MgdGhlIGFwcGxpY2F0aW9uIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC4KCiMjIEFQSSBFbmRwb2ludHMKCkJlbG93IGlzIGEgc3VtbWFyeSBvZiB0aGUgYXZhaWxhYmxlIEFQSSBlbmRwb2ludHM6CgoqKlZlbmRvciBQcm9maWxlIE1hbmFnZW1lbnQqKgoKfCBFbmRwb2ludCAgICAgICAgICAgICAgIHwgTWV0aG9kICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBgL2FwaS92ZW5kb3JzL2AgICAgICB8IFBPU1QgICAgICAgIHwgQ3JlYXRlIGEgbmV3IHZlbmRvci4gICAgICAgICAgICAgICAgICB8CnwgYC9hcGkvdmVuZG9ycy9gICAgICAgfCBHRVQgICAgICAgICB8IExpc3QgYWxsIHZlbmRvcnMuICAgICAgICAgICAgICAgICAgICAgfAp8IGAvYXBpL3ZlbmRvcnMve2lkfS9gIHwgR0VUICAgICAgICAgfCBSZXRyaWV2ZSBhIHNwZWNpZmljIHZlbmRvcidzIGRldGFpbHMuIHwKfCBgL2FwaS92ZW5kb3JzL3tpZH0vYCB8IFBVVCAvIFBBVENIIHwgVXBkYXRlIGEgdmVuZG9yJ3MgZGV0YWlscy4gICAgICAgICAgICB8CnwgYC9hcGkvdmVuZG9ycy97aWR9L2AgfCBERUxFVEUgICAgICB8IERlbGV0ZSBhIHZlbmRvci4gICAgICAgICAgICAgICAgICAgICAgfAoKKipQdXJjaGFzZSBPcmRlciBUcmFja2luZyoqCgp8IEVuZHBvaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTWV0aG9kICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBgL2FwaS9wdXJjaGFzZV9vcmRlcnMvYCAgICAgICAgICAgICAgICAgfCBQT1NUICAgICAgICAgfCBDcmVhdGUgYSBwdXJjaGFzZSBvcmRlci4gICAgICAgICAgICAgICAgICAgICAgIHwKfCBgL2FwaS9wdXJjaGFzZV9vcmRlcnMvYCAgICAgICAgICAgICAgICAgfCBHRVQgICAgICAgICAgfCBMaXN0IGFsbCBwdXJjaGFzZSBvcmRlcnMuICAgICAgICAgICAgICAgICAgICAgIHwKfCBgL2FwaS9wdXJjaGFzZV9vcmRlcnMve2lkfS9gICAgICAgICAgICAgfCBHRVQgICAgICAgICAgfCBSZXRyaWV2ZSBkZXRhaWxzIG9mIGEgc3BlY2lmaWMgcHVyY2hhc2Ugb3JkZXIuIHwKfCBgL2FwaS9wdXJjaGFzZV9vcmRlcnMve2lkfS9gICAgICAgICAgICAgfCBQVVQgLyBQQVRDSCAgfCBVcGRhdGUgYSBwdXJjaGFzZSBvcmRlci4gICAgICAgICAgICAgICAgICAgICAgIHwKfCBgL2FwaS9wdXJjaGFzZV9vcmRlcnMve2lkfS9gICAgICAgICAgICAgfCBERUxFVEUgICAgICAgfCBEZWxldGUgYSBwdXJjaGFzZSBvcmRlci4gICAgICAgICAgICAgICAgICAgICAgIHwKfCBgL2FwaS9wdXJjaGFzZV9vcmRlcnMve2lkfS9hY2tub3dsZWRnZWAgfCBQVVQgL8KgUEFUQ0ggfCBBY2tub3dsZWRnZSBhIHB1cmNoYXNlIG9yZGVyLiAgICAgICAgICAgICAgICAgIHwKCioqVmVuZG9yIFBlcmZvcm1hbmNlIEV2YWx1YXRpb24qKgoKfCBFbmRwb2ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1ldGhvZCB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYC9hcGkvdmVuZG9ycy97aWR9L3BlcmZvcm1hbmNlYCAgICAgICAgIHwgR0VUICAgIHwgUmV0cmlldmUgYSB2ZW5kb3IncyBwZXJmb3JtYW5jZSBtZXRyaWNzLiB8CnwgYC9hcGkvdmVuZG9ycy97aWR9L3BlcmZvcm1hbmNlL2hpc3RvcnlgIHwgR0VUICAgIHwgUmV0cmlldmUgYSB2ZW5kb3IncyBwZXJmb3JtYW5jZSBoaXN0b3J5LiB8CgoqKkFkZGl0aW9uYWwgRG9jcyoqCgp8IEVuZHBvaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1ldGhvZCB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGAvYXBpL3ZlbmRvcnMve2lkfS9wZXJmb3JtYW5jZS9zY2hlbWEvZG9jL2AgfCBHRVQgICAgfCBMaXN0IGFsbCB0aGUgYXBpcyBpbiBPcGVuIEFQSTMgZG9jdW1lbnRhdGlvbiBmb3JtYXQuICAgICAgICAgIHwKfCBgL2FwaS92ZW5kb3JzL3tpZH0vcGVyZm9ybWFuY2Uvc2NoZW1hL2RvYy9gIHwgR0VUICAgIHwgTGlzdCBhbGwgdGhlIGFwaXMgaW4gT3BlbiBBUEkzIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZm9ybWF0LiB8CgojIyBUZXN0aW5nCgpSdW4gdGhlIHRlc3RzIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKcHl0aG9uIG1hbmFnZS5weSB0ZXN0CmBgYAoKVG8gY2hlY2sgY292ZXJhZ2UgcmVwb3J0IG9mIHRoZSBlbnRpcmUgY29kZWJhc2VzIHRyeSB0aGlzIGNvbW1hbmQ6CgpgYGBiYXNoCmNvdmVyYWdlIHJ1biBtYW5hZ2UucHkgdGVzdAoKIyB0byBnZXQgdGhlIGNvdmVyYWdlIHJlcG9ydCBvbiBjb21tYW5kIGxpbmUKY292ZXJhZ2UgcmVwb3J0IC1tCgojIFRvIGdldCB0aGUgaHRtbCByZXBvcnQgb2YgY29kZSBjb3ZlcmFnZSB0cnkgdGhpcwpjb3ZlcmFnZSBodG1sCmBgYAoKIyMgQ29udHJpYnV0aW5nCgpJbnB1dHMgYW5kIGNvbnRyaWJ1dGlvbnMgdG8gdGhpcyBwcm9qZWN0IGFyZSBhcHByZWNpYXRlZC4gVG8gbWFrZSB0aGVtIGFzIHRyYW5zcGFyZW50IGFuZCBlYXN5IGFzIHBvc3NpYmxlLCBwbGVhc2UgZm9sbG93IHRoaXMgc3RlcHM6CgotICMjIyBIb3cgdG8gY29udHJpYnV0ZToKCgogIDEuIEZvcmsgdGhlIHJlcG9zaXRvcnkgYW5kIGNyZWF0ZSB5b3VyIGJyYW5jaCBmcm9tIG1hc3RlciB3aXRoIGRpZmZlcmVudCBuYW1lLgogIDIuIENsb25lIHRoZSBwcm9qZWN0IHRvIHlvdXIgb3duIG1hY2hpbmUKICAzLiBDb21taXQgY2hhbmdlcyB0byB5b3VyIG93biBicmFuY2gKICA0LiBQdXNoIHlvdXIgd29yayBiYWNrIHVwIHRvIHlvdXIgZm9yawogIDUuIFN1Ym1pdCBhIFB1bGwgcmVxdWVzdAoKICAjIyMgRG9uJ3Q6CgogIC0gRG9uJ3QgaW5jbHVkZSBhbnkgbGljZW5zZSBpbmZvcm1hdGlvbiB3aGVuIHN1Ym1pdHRpbmcgeW91ciBjb2RlIGFzIHRoaXMgcmVwb3NpdG9yeSBpcyBNSVQgbGljZW5zZWQsIGFuZCBzbyB5b3VyIHN1Ym1pc3Npb25zIGFyZSB1bmRlcnN0b29kIHRvIGJlIHVuZGVyIHRoZSBzYW1lIE1JVCBMaWNlbnNlIGFzIHdlbGwuCi0gIyMjIEhvdyB0byByZXBvcnQgYSBidWc6CgoKICAxLiBPcGVuIGEgbmV3IElzc3VlLgogIDIuIFdyaXRlIGEgYnVnIHJlcG9ydCB3aXRoIGRldGFpbHMsIGJhY2tncm91bmQsIGFuZCB3aGVuIHBvc3NpYmxlIHNhbXBsZSBjb2RlLiBUaGF0J3MgaXQhCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIFtNSVQgTGljZW5zZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgo= readmeEtag: '"ba1579aea290e702ce8186039366fbace90cc512"' readmeLastModified: Sat, 09 Dec 2023 20:19:38 GMT repositoryId: 726566533 description: >- A comprehensive Vendor Management System(VMS) apis for efficient vendor profile management, purchase order tracking, and vendor performance metrics calculation created: '2023-12-02T18:34:06Z' updated: '2024-04-11T14:41:13Z' language: Python archived: false stars: 3 watchers: 1 forks: 0 owner: bhaveshdev09 logo: https://avatars.githubusercontent.com/u/45851391?v=4 license: MIT repoEtag: '"0aa36def1cf25b0973700ea0e81e5e6fdb26d3b564c1b73dba9f8ffbe528cfc7"' repoLastModified: Thu, 11 Apr 2024 14:41:13 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/swaggest/rest-fasthttp v3: true id: 6d32533fe2615e6613b2e30dc8a93bcd repositoryMetadata: base64Readme: >- IyBSRVNUIHdpdGggQ2xlYW4gQXJjaGl0ZWN0dXJlIGZvciBHbwoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdC93b3JrZmxvd3MvdGVzdC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdC9hY3Rpb25zP3F1ZXJ5PWJyYW5jaCUzQW1hc3Rlcit3b3JrZmxvdyUzQXRlc3QpClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb2RlY292LmlvL2doL3N3YWdnZXN0L3Jlc3QvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvc3dhZ2dlc3QvcmVzdCkKWyFbR29EZXZEb2NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGV2LWRvYy0wMEFERDg/bG9nbz1nbyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3QpClshW1RpbWUgVHJhY2tlcl0oaHR0cHM6Ly93YWthdGltZS5jb20vYmFkZ2UvZ2l0aHViL3N3YWdnZXN0L3Jlc3Quc3ZnKV0oaHR0cHM6Ly93YWthdGltZS5jb20vYmFkZ2UvZ2l0aHViL3N3YWdnZXN0L3Jlc3QpCiFbQ29kZSBsaW5lc10oaHR0cHM6Ly9zbG9jLnh5ei9naXRodWIvc3dhZ2dlc3QvcmVzdC8/Y2F0ZWdvcnk9Y29kZSkKIVtDb21tZW50c10oaHR0cHM6Ly9zbG9jLnh5ei9naXRodWIvc3dhZ2dlc3QvcmVzdC8/Y2F0ZWdvcnk9Y29tbWVudHMpCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIEhUVFAgdHJhbnNwb3J0IGxldmVsIGZvciBbYGdpdGh1Yi5jb20vc3dhZ2dlc3QvdXNlY2FzZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC91c2VjYXNlKSAKdG8gYnVpbGQgUkVTVCBzZXJ2aWNlcy4KCiMjIFRoaXMgRm9yawoKVGhpcyBpcyBhIHJlZHVjZWQgZm9yayBvZiBbYGdpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0KSAKdGhhdCB1c2VzIFtgZmFzdGh0dHBgXShodHRwczovL2dpdGh1Yi5jb20vdmFseWFsYS9mYXN0aHR0cCkgaW5zdGVhZCBvZiBzdGFuZGFyZCBgbmV0L2h0dHBgLgoKYGZhc3RodHRwYCBicmluZ3MgYmV0dGVyIHBlcmZvcm1hbmNlIGFuZCBtZW1vcnkgZWZmaWNpZW5jeSB0byBoaWdobHkgbG9hZGVkIHNlcnZpY2VzLCAKYnV0IGl0IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggbWFueSBleGlzdGluZyBtaWRkbGV3YXJlcyBhbmQgbWF5IHJlcXVpcmUgYWRkaXRpb25hbCAKZGV2IGVmZm9ydCBmb3Igc3VjaCBjYXNlcy4KCiMjIEdvYWxzCgoqIE1haW50YWluIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGRvY3VtZW50YXRpb24sIHZhbGlkYXRpb24gYW5kIGlucHV0L291dHB1dCBvZiBIVFRQIEFQSS4KKiBBdm9pZCBkZXBlbmRlbmN5IG9uIGNvbXBpbGUgdGltZSBjb2RlIGdlbmVyYXRpb24uCiogSW1wcm92ZSBwcm9kdWN0aXZpdHkgYW5kIHJlbGlhYmlsaXR5IGJ5IGFic3RyYWN0aW5nIEhUVFAgZGV0YWlscyB3aXRoIHNpbXBsZSBBUEkgZm9yIGNvbW1vbiBjYXNlLgoqIEFsbG93IGxvdy1sZXZlbCBjdXN0b21pemF0aW9ucyBmb3IgYWR2YW5jZWQgY2FzZXMuCiogTWFpbnRhaW4gcmVhc29uYWJsZSBwZXJmb3JtYW5jZSB3aXRoIGxvdyBHQyBpbXBhY3QuCgojIyBOb24tR29hbHMKCiogU3VwcG9ydCBmb3IgbGVnYWN5IGRvY3VtZW50YXRpb24gc2NoZW1hcyBsaWtlIFN3YWdnZXIgMi4wIG9yIFJBTUwuCiogWmVybyBhbGxvY2F0aW9ucy4KKiBFeHBsaWNpdCBzdXBwb3J0IGZvciBYTUwgaW4gcmVxdWVzdCBvciByZXNwb25zZSBib2RpZXMuCgojIyBGZWF0dXJlcwoKKiBDb21wYXRpYmxlIHdpdGggYG5ldC9odHRwYC4KKiBCdWlsdCB3aXRoIFtgZ2l0aHViLmNvbS9nby1jaGkvY2hpYF0oaHR0cHM6Ly9naXRodWIuY29tL2dvLWNoaS9jaGkpIHJvdXRlci4KKiBNb2R1bGFyIGZsZXhpYmxlIHN0cnVjdHVyZS4KKiBIVFRQIFtyZXF1ZXN0IG1hcHBpbmddKCNyZXF1ZXN0LWRlY29kZXIpIGludG8gR28gdmFsdWUgYmFzZWQgb24gZmllbGQgdGFncy4KKiBEZWNvdXBsZWQgYnVzaW5lc3MgbG9naWMgd2l0aCBDbGVhbiBBcmNoaXRlY3R1cmUgdXNlIGNhc2VzLgoqIEF1dG9tYXRpYyB0eXBlLXNhZmUgT3BlbkFQSSAzIGRvY3VtZW50YXRpb24gd2l0aCBbYGdpdGh1Yi5jb20vc3dhZ2dlc3Qvb3BlbmFwaS1nb2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9vcGVuYXBpLWdvKS4KKiBTaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgZW5kcG9pbnQgaW50ZXJmYWNlLgoqIEF1dG9tYXRpYyByZXF1ZXN0L3Jlc3BvbnNlIEpTT04gc2NoZW1hIHZhbGlkYXRpb24gd2l0aCBbYGdpdGh1Yi5jb20vc2FudGhvc2gtdGVrdXJpL2pzb25zY2hlbWFgXShodHRwczovL2dpdGh1Yi5jb20vc2FudGhvc2gtdGVrdXJpL2pzb25zY2hlbWEpLgoqIER5bmFtaWMgZ3ppcCBjb21wcmVzc2lvbiBhbmQgZmFzdCBwYXNzIHRocm91Z2ggbW9kZS4KKiBPcHRpbWl6ZWQgcGVyZm9ybWFuY2UuCiogRW1iZWRkZWQgW1N3YWdnZXIgVUldKGh0dHBzOi8vc3dhZ2dlci5pby90b29scy9zd2FnZ2VyLXVpLykuCiogSW50ZWdyYXRpb24gdGVzdCBoZWxwZXJzLgoqIEdlbmVyaWMgaW50ZXJmYWNlIGZvciBbdXNlIGNhc2UgaW50ZXJhY3RvcnNdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L3VzZWNhc2UjTmV3SW50ZXJhY3RvcikuIAoKIyMgVXNhZ2UKClBsZWFzZSBjaGVjayB0aGlzIFt0dXRvcmlhbF0oaHR0cHM6Ly9kZXYudG8vdmVhcnV0b3AvdHV0b3JpYWwtZGV2ZWxvcGluZy1hLXJlc3RmdWwtYXBpLXdpdGgtZ28tanNvbi1zY2hlbWEtdmFsaWRhdGlvbi1hbmQtb3BlbmFwaS1kb2NzLTI0OTApIGZvciBlbmQtdG8tZW5kIHVzYWdlIGV4YW1wbGUuCgojIyMgUmVxdWVzdCBEZWNvZGVyCgpHbyBzdHJ1Y3Qgd2l0aCBvcHRpb25hbCBmaWVsZCB0YWdzIGRlZmluZXMgaW5wdXQgcG9ydC4gClJlcXVlc3QgZGVjb2RlciBwb3B1bGF0ZXMgZmllbGQgdmFsdWVzIGZyb20gYGh0dHAuUmVxdWVzdGAgZGF0YSBiZWZvcmUgdXNlIGNhc2UgaW50ZXJhY3RvciBpcyBpbnZva2VkLiAKCmBgYGdvCi8vIERlY2xhcmUgaW5wdXQgcG9ydCB0eXBlLgp0eXBlIGhlbGxvSW5wdXQgc3RydWN0IHsKICAgIExvY2FsZSBzdHJpbmcgYHF1ZXJ5OiJsb2NhbGUiIGRlZmF1bHQ6ImVuLVVTIiBwYXR0ZXJuOiJeW2Etel17Mn0tW0EtWl17Mn0kIiBlbnVtOiJydS1SVSxlbi1VUyJgCiAgICBOYW1lICAgc3RyaW5nIGBwYXRoOiJuYW1lIiBtaW5MZW5ndGg6IjMiYCAvLyBGaWVsZCB0YWdzIGRlZmluZSBwYXJhbWV0ZXIgbG9jYXRpb24gYW5kIEpTT04gc2NoZW1hIGNvbnN0cmFpbnRzLgoKICAgIC8vIEZpZWxkIHRhZ3Mgb2YgdW5uYW1lZCBmaWVsZHMgYXJlIGFwcGxpZWQgdG8gcGFyZW50IHNjaGVtYSwgCgkvLyB0aGV5IGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHVzZWQgdG8gZGlzYWxsb3cgdW5rbm93biBwYXJhbWV0ZXJzLgogICAgLy8gRm9yIG5vbi1ib2R5IHBhcmFtcywgbmFtZSB0YWcgbXVzdCBiZSBwcm92aWRlZCBleHBsaWNpdGx5LgogICAgLy8gRS5nLiBoZXJlIG5vIHVua25vd24gYHF1ZXJ5YCBhbmQgYGNvb2tpZWAgcGFyYW1ldGVycyBhbGxvd2VkLAogICAgLy8gdW5rbm93biBgaGVhZGVyYCBwYXJhbXMgYXJlIG9rLgogICAgXyBzdHJ1Y3R7fSBgcXVlcnk6Il8iIGNvb2tpZToiXyIgYWRkaXRpb25hbFByb3BlcnRpZXM6ImZhbHNlImAKfQpgYGAKCklucHV0IGRhdGEgY2FuIGJlIGxvY2F0ZWQgaW46CiogYHBhdGhgIHBhcmFtZXRlciBpbiByZXF1ZXN0IFVSSSwgZS5nLiBgL3VzZXJzL3tuYW1lfWAsCiogYHF1ZXJ5YCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBVUkksIGUuZy4gYC91c2Vycz9sb2NhbGU9ZW4tVVNgLAoqIGBmb3JtRGF0YWAgcGFyYW1ldGVyIGluIHJlcXVlc3QgYm9keSB3aXRoIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgIG9yIGBtdWx0aXBhcnQvZm9ybS1kYXRhYCBjb250ZW50LAoqIGBqc29uYCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBib2R5IHdpdGggYGFwcGxpY2F0aW9uL2pzb25gIGNvbnRlbnQsCiogYGNvb2tpZWAgcGFyYW1ldGVyIGluIHJlcXVlc3QgY29va2llLAoqIGBoZWFkZXJgIHBhcmFtZXRlciBpbiByZXF1ZXN0IGhlYWRlci4KCkZvciBtb3JlIGV4cGxpY2l0IHNlcGFyYXRpb24gb2YgY29uY2VybnMgYmV0d2VlbiB1c2UgY2FzZSBhbmQgdHJhbnNwb3J0IGl0IGlzIHBvc3NpYmxlIHRvIHByb3ZpZGUgcmVxdWVzdCBtYXBwaW5nIApzZXBhcmF0ZWx5IHdoZW4gaW5pdGlhbGl6aW5nIGhhbmRsZXIgKHBsZWFzZSBub3RlLCBzdWNoIG1hcHBpbmcgaXMgW25vdCBhcHBsaWVkXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdC9pc3N1ZXMvNjEjaXNzdWVjb21tZW50LTEwNTk4NTE1NTMpIHRvIGBqc29uYCBib2R5KS4KCmBgYGdvCi8vIERlY2xhcmUgaW5wdXQgcG9ydCB0eXBlLgp0eXBlIGhlbGxvSW5wdXQgc3RydWN0IHsKICAgIExvY2FsZSBzdHJpbmcgYGRlZmF1bHQ6ImVuLVVTIiBwYXR0ZXJuOiJeW2Etel17Mn0tW0EtWl17Mn0kImAKICAgIE5hbWUgICBzdHJpbmcgYG1pbkxlbmd0aDoiMyJgIC8vIEZpZWxkIHRhZ3MgZGVmaW5lIHBhcmFtZXRlciBsb2NhdGlvbiBhbmQgSlNPTiBzY2hlbWEgY29uc3RyYWludHMuCn0KYGBgCgpgYGBnbwovLyBBZGQgdXNlIGNhc2UgaGFuZGxlciB3aXRoIGN1c3RvbSBpbnB1dCBtYXBwaW5nIHRvIHJvdXRlci4Kci5NZXRob2QoaHR0cC5NZXRob2RHZXQsICIvaGVsbG8ve25hbWV9IiwgZmh0dHAuTmV3SGFuZGxlcih1LAogICAgZmh0dHAuUmVxdWVzdE1hcHBpbmcobmV3KHN0cnVjdCB7CiAgICAgICBMb2NhbGUgc3RyaW5nIGBxdWVyeToibG9jYWxlImAKICAgICAgIE5hbWUgICBzdHJpbmcgYHBhdGg6Im5hbWUiYCAvLyBGaWVsZCB0YWdzIGRlZmluZSBwYXJhbWV0ZXIgbG9jYXRpb24gYW5kIEpTT04gc2NoZW1hIGNvbnN0cmFpbnRzLgogICAgfSkpLAopKQpgYGAKCkFkZGl0aW9uYWwgZmllbGQgdGFncyBkZXNjcmliZSBKU09OIHNjaGVtYSBjb25zdHJhaW50cywgcGxlYXNlIGNoZWNrIApbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3QvanNvbnNjaGVtYS1nbyNSZWZsZWN0b3IuUmVmbGVjdCkuCgpNb3JlIHNjaGVtYSBjdXN0b21pemF0aW9ucyBhcmUgcG9zc2libGUgd2l0aCBbYGdpdGh1Yi5jb20vc3dhZ2dlc3QvanNvbnNjaGVtYS1nbyBpbnRlcmZhY2VzYF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L2pzb25zY2hlbWEtZ28jaW1wbGVtZW50aW5nLWludGVyZmFjZXMtb24tYS10eXBlKS4KCkJ5IGRlZmF1bHQgYGRlZmF1bHRgIHRhZ3MgYXJlIG9ubHkgY29udHJpYnV0aW5nIHRvIGRvY3VtZW50YXRpb24sIAppZiBbYHJlcXVlc3QuRGVjb2RlckZhY3RvcnkuQXBwbHlEZWZhdWx0c2BdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3QvcmVxdWVzdCNEZWNvZGVyRmFjdG9yeSkgaXMgCnNldCB0byBgdHJ1ZWAsIGZpZWxkcyBvZiByZXF1ZXN0IHN0cnVjdHVyZSB0aGF0IGRvbid0IGhhdmUgZXhwbGljaXQgdmFsdWUgYnV0IGhhdmUgYGRlZmF1bHRgIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggCmRlZmF1bHQgdmFsdWUuCgpJZiBpbnB1dCBzdHJ1Y3R1cmUgaW1wbGVtZW50cyBbYHJlcXVlc3QuTG9hZGVyYF0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdC9yZXF1ZXN0I0xvYWRlciksICAKdGhlbiBgTG9hZEZyb21IVFRQUmVxdWVzdChyICpodHRwLlJlcXVlc3QpIGVycm9yYCBtZXRob2Qgd2lsbCBiZSBpbnZva2VkIHRvIHBvcHVsYXRlIGlucHV0IHN0cnVjdHVyZSBpbnN0ZWFkIApvZiBhdXRvbWF0aWMgZGVjb2RpbmcuIFRoaXMgYWxsb3dzIGxvdyBsZXZlbCBjb250cm9sIGZvciBjYXNlcyB0aGF0IG5lZWQgaXQuCgojIyMgUmVzcG9uc2UgRW5jb2RlcgoKR28gc3RydWN0IHdpdGggZmllbGQgdGFncyBkZWZpbmVzIG91dHB1dCBwb3J0LgpSZXNwb25zZSBlbmNvZGVyIHdyaXRlcyBkYXRhIGZyb20gb3V0cHV0IHRvIGBodHRwLlJlc3BvbnNlV3JpdGVyYCBhZnRlciB1c2UgY2FzZSBpbnRlcmFjdG9yIGludm9jYXRpb24gZmluaXNoZXMuCgpgYGBnbwovLyBEZWNsYXJlIG91dHB1dCBwb3J0IHR5cGUuCnR5cGUgaGVsbG9PdXRwdXQgc3RydWN0IHsKICAgIE5vdyAgICAgdGltZS5UaW1lIGBoZWFkZXI6IlgtTm93IiBqc29uOiItImAKICAgIE1lc3NhZ2Ugc3RyaW5nICAgIGBqc29uOiJtZXNzYWdlImAKfQpgYGAKCk91dHB1dCBkYXRhIGNhbiBiZSBsb2NhdGVkIGluOgoqIGBqc29uYCBmb3IgcmVzcG9uc2UgYm9keSB3aXRoIGBhcHBsaWNhdGlvbi9qc29uYCBjb250ZW50LAoqIGBoZWFkZXJgIGZvciB2YWx1ZXMgaW4gcmVzcG9uc2UgaGVhZGVyLgoKRm9yIG1vcmUgZXhwbGljaXQgc2VwYXJhdGlvbiBvZiBjb25jZXJucyBiZXR3ZWVuIHVzZSBjYXNlIGFuZCB0cmFuc3BvcnQgaXQgaXMgcG9zc2libGUgdG8gcHJvdmlkZSByZXNwb25zZSBoZWFkZXIgbWFwcGluZyAKc2VwYXJhdGVseSB3aGVuIGluaXRpYWxpemluZyBoYW5kbGVyLgoKYGBgZ28KLy8gRGVjbGFyZSBvdXRwdXQgcG9ydCB0eXBlLgp0eXBlIGhlbGxvT3V0cHV0IHN0cnVjdCB7CiAgICBOb3cgICAgIHRpbWUuVGltZSBganNvbjoiLSJgCiAgICBNZXNzYWdlIHN0cmluZyAgICBganNvbjoibWVzc2FnZSJgCn0KYGBgCgpgYGBnbwovLyBBZGQgdXNlIGNhc2UgaGFuZGxlciB3aXRoIGN1c3RvbSBvdXRwdXQgaGVhZGVycyBtYXBwaW5nIHRvIHJvdXRlci4Kci5NZXRob2QoaHR0cC5NZXRob2RHZXQsICIvaGVsbG8ve25hbWV9IiwgZmh0dHAuTmV3SGFuZGxlcih1LAogICAgZmh0dHAuUmVzcG9uc2VIZWFkZXJNYXBwaW5nKG5ldyhzdHJ1Y3QgewogICAgICAgIE5vdyAgICAgdGltZS5UaW1lIGBoZWFkZXI6IlgtTm93ImAKICAgIH0pKSwKKSkKYGBgCgpBZGRpdGlvbmFsIGZpZWxkIHRhZ3MgZGVzY3JpYmUgSlNPTiBzY2hlbWEgY29uc3RyYWludHMsIHBsZWFzZSBjaGVjayAKW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3N3YWdnZXN0L2pzb25zY2hlbWEtZ28jUmVmbGVjdG9yLlJlZmxlY3QpLgoKIyMjIENyZWF0aW5nIFVzZSBDYXNlIEludGVyYWN0b3IKCkhUVFAgdHJhbnNwb3J0IGlzIGRlY291cGxlZCBmcm9tIGJ1c2luZXNzIGxvZ2ljIGJ5IGFkYXB0aW5nClt1c2UgY2FzZSBpbnRlcmFjdG9yc10oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3QvdXNlY2FzZSNJbnRlcmFjdG9yKS4KClVzZSBjYXNlIGludGVyYWN0b3IgY2FuIGRlZmluZSBpbnB1dCBhbmQgb3V0cHV0IHBvcnRzIHRoYXQgYXJlIHVzZWQgdG8gbWFwIGRhdGEgYmV0d2VlbiBHbyB2YWx1ZXMgYW5kIHRyYW5zcG9ydC4KSXQgY2FuIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgaXRzZWxmIHRoYXQgd2lsbCBiZSBleHBvc2VkIGluIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLgoKYGBgZ28KLy8gQ3JlYXRlIHVzZSBjYXNlIGludGVyYWN0b3Igd2l0aCByZWZlcmVuY2VzIHRvIGlucHV0L291dHB1dCB0eXBlcyBhbmQgaW50ZXJhY3Rpb24gZnVuY3Rpb24uCnUgOj0gdXNlY2FzZS5OZXdJT0kobmV3KGhlbGxvSW5wdXQpLCBuZXcoaGVsbG9PdXRwdXQpLCBmdW5jKGN0eCBjb250ZXh0LkNvbnRleHQsIGlucHV0LCBvdXRwdXQgaW50ZXJmYWNle30pIGVycm9yIHsKICAgIHZhciAoCiAgICAgICAgaW4gID0gaW5wdXQuKCpoZWxsb0lucHV0KQogICAgICAgIG91dCA9IG91dHB1dC4oKmhlbGxvT3V0cHV0KQogICAgKQoKICAgIG1zZywgYXZhaWxhYmxlIDo9IG1lc3NhZ2VzW2luLkxvY2FsZV0KICAgIGlmICFhdmFpbGFibGUgewogICAgICAgIHJldHVybiBzdGF0dXMuV3JhcChlcnJvcnMuTmV3KCJ1bmtub3duIGxvY2FsZSIpLCBzdGF0dXMuSW52YWxpZEFyZ3VtZW50KQogICAgfQoKICAgIG91dC5NZXNzYWdlID0gZm10LlNwcmludGYobXNnLCBpbi5OYW1lKQogICAgb3V0Lk5vdyA9IHRpbWUuTm93KCkKCiAgICByZXR1cm4gbmlsCn0pCmBgYAoKRm9yIG1vZHVsYXJpdHkgcGFydGljdWxhciB1c2UgY2FzZSBpbnRlcmFjdG9yIGluc3RhbmNlIGNhbiBiZSBhc3NlbWJsZWQgYnkgZW1iZWRkaW5nIHJlbGV2YW50IHRyYWl0cyBpbiBhIHN0cnVjdCwKZm9yIGV4YW1wbGUgeW91IGNhbiBza2lwIGFkZGluZyBgdXNlY2FzZS5XaXRoSW5wdXRgIGlmIHlvdXIgdXNlIGNhc2UgZG9lcyBub3QgaW1wbHkgYW55IGlucHV0LgoKYGBgZ28KLy8gQ3JlYXRlIHVzZSBjYXNlIGludGVyYWN0b3IuCnUgOj0gc3RydWN0IHsKICAgIHVzZWNhc2UuSW5mbwogICAgdXNlY2FzZS5JbnRlcmFjdG9yCiAgICB1c2VjYXNlLldpdGhJbnB1dAogICAgdXNlY2FzZS5XaXRoT3V0cHV0Cn17fQoKLy8gRGVzY3JpYmUgdXNlIGNhc2UgaW50ZXJhY3Rvci4KdS5TZXRUaXRsZSgiR3JlZXRlciIpCnUuU2V0RGVzY3JpcHRpb24oIkdyZWV0ZXIgZ3JlZXRzIHlvdS4iKQp1LklucHV0ID0gbmV3KGhlbGxvSW5wdXQpCnUuT3V0cHV0ID0gbmV3KGhlbGxvT3V0cHV0KQp1LkludGVyYWN0b3IgPSB1c2VjYXNlLkludGVyYWN0KGZ1bmMoY3R4IGNvbnRleHQuQ29udGV4dCwgaW5wdXQsIG91dHB1dCBpbnRlcmZhY2V7fSkgZXJyb3IgewogICAgLy8gRG8gc29tZXRoaW5nIGFib3V0IGlucHV0IHRvIHByZXBhcmUgb3V0cHV0LgogICAgcmV0dXJuIG5pbAp9KQpgYGAKCiMjIyBJbml0aWFsaXppbmcgV2ViIFNlcnZpY2UKCltXZWIgU2VydmljZV0oaHR0cHM6Ly9wa2cuZ28uZGV2L2dpdGh1Yi5jb20vc3dhZ2dlc3QvcmVzdC93ZWIjRGVmYXVsdFNlcnZpY2UpIGlzIGFuIGluc3RydW1lbnRlZCBmYWNhZGUgaW4gZnJvbnQgb2YgCnJvdXRlciwgaXQgc2ltcGxpZmllcyBjb25maWd1cmF0aW9uIGFuZCBwcm92aWRlcyBtb3JlIGNvbXBhY3QgQVBJIHRvIGFkZCB1c2UgY2FzZXMuCgpgYGBnbwovLyBTZXJ2aWNlIGluaXRpYWxpemVzIHJvdXRlciB3aXRoIHJlcXVpcmVkIG1pZGRsZXdhcmVzLgpzZXJ2aWNlIDo9IHdlYi5EZWZhdWx0U2VydmljZSgpCgovLyBJdCBhbGxvd3MgT3BlbkFQSSBjb25maWd1cmF0aW9uLgpzZXJ2aWNlLk9wZW5BUEkuSW5mby5UaXRsZSA9ICJBbGJ1bXMgQVBJIgpzZXJ2aWNlLk9wZW5BUEkuSW5mby5XaXRoRGVzY3JpcHRpb24oIlRoaXMgc2VydmljZSBwcm92aWRlcyBBUEkgdG8gbWFuYWdlIGFsYnVtcy4iKQpzZXJ2aWNlLk9wZW5BUEkuSW5mby5WZXJzaW9uID0gInYxLjAuMCIKCi8vIEFkZGl0aW9uYWwgbWlkZGxld2FyZXMgY2FuIGJlIGFkZGVkLgpzZXJ2aWNlLlVzZSgKICAgIG1pZGRsZXdhcmUuU3RyaXBTbGFzaGVzLAopCgovLyBVc2UgY2FzZXMgY2FuIGJlIG1vdW50ZWQgdXNpbmcgc2hvcnQgc3ludGF4IC48TWV0aG9kPiguLi4pLgpzZXJ2aWNlLlBvc3QoIi9hbGJ1bXMiLCBwb3N0QWxidW1zKCksIGZodHRwLlN1Y2Nlc3NTdGF0dXMoaHR0cC5TdGF0dXNDcmVhdGVkKSkKCmxvZy5QcmludGxuKCJTdGFydGluZyBzZXJ2aWNlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIpCgppZiBlcnIgOj0gaHR0cC5MaXN0ZW5BbmRTZXJ2ZSgibG9jYWxob3N0OjgwODAiLCBzZXJ2aWNlKTsgZXJyICE9IG5pbCB7CiAgICBsb2cuRmF0YWwoZXJyKQp9CgpgYGAKClVzdWFsbHksIGB3ZWIuU2VydmljZWAgQVBJIGlzIHN1ZmZpY2llbnQsIGJ1dCBpZiBpdCBpcyBub3QsIHJvdXRlciBjYW4gYmUgY29uZmlndXJlZCBtYW51YWxseSwgcGxlYXNlIGNoZWNrIAp0aGUgZG9jdW1lbnRhdGlvbiBiZWxvdy4KCiMjIyBBZGRpbmcgdXNlIGNhc2UgdG8gcm91dGVyCgpgYGBnbwovLyBBZGQgdXNlIGNhc2UgaGFuZGxlciB0byByb3V0ZXIuCnIuTWV0aG9kKGh0dHAuTWV0aG9kR2V0LCAiL2hlbGxvL3tuYW1lfSIsIGZodHRwLk5ld0hhbmRsZXIodSkpCmBgYAoKIyMgQVBJIFNjaGVtYSBDb2xsZWN0b3IKCk9wZW5BUEkgc2NoZW1hIHNob3VsZCBiZSBpbml0aWFsaXplZCB3aXRoIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgUkVTVCBBUEkuCgpJdCB1c2VzIFt0eXBlLXNhZmUgbWFwcGluZ10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L29wZW5hcGktZ28pIGZvciB0aGUgY29uZmlndXJhdGlvbiwgCnNvIGFueSBJREUgd2lsbCBoZWxwIHdpdGggYXZhaWxhYmxlIGZpZWxkcy4gCgpgYGBnbwovLyBJbml0IEFQSSBkb2N1bWVudGF0aW9uIHNjaGVtYS4KYXBpU2NoZW1hIDo9ICZvcGVuYXBpLkNvbGxlY3Rvcnt9CmFwaVNjaGVtYS5SZWZsZWN0b3IoKS5TcGVjRW5zKCkuSW5mby5UaXRsZSA9ICJCYXNpYyBFeGFtcGxlIgphcGlTY2hlbWEuUmVmbGVjdG9yKCkuU3BlY0VucygpLkluZm8uV2l0aERlc2NyaXB0aW9uKCJUaGlzIGFwcCBzaG93Y2FzZXMgYSB0cml2aWFsIFJFU1QgQVBJLiIpCmFwaVNjaGVtYS5SZWZsZWN0b3IoKS5TcGVjRW5zKCkuSW5mby5WZXJzaW9uID0gInYxLjIuMyIKYGBgCgojIyBSb3V0ZXIgU2V0dXAKClJFU1Qgcm91dGVyIGlzIGJhc2VkIG9uIFtgZ2l0aHViLmNvbS9nby1jaGkvY2hpYF0oaHR0cHM6Ly9naXRodWIuY29tL2dvLWNoaS9jaGkpLCB3cmFwcGVyIGFsbG93cyB1bndyYXBwaW5nIGluc3RydW1lbnRlZApoYW5kbGVyIGluIG1pZGRsZXdhcmUuCgpUaGVzZSBtaWRkbGV3YXJlcyBhcmUgcmVxdWlyZWQ6CiogYG5ldGh0dHAuT3BlbkFQSU1pZGRsZXdhcmUoYXBpU2NoZW1hKWAsIAoqIGByZXF1ZXN0LkRlY29kZXJNaWRkbGV3YXJlKGRlY29kZXJGYWN0b3J5KWAsCiogYHJlc3BvbnNlLkVuY29kZXJNaWRkbGV3YXJlYC4KCk9wdGlvbmFsbHkgeW91IGNhbiBhZGQgbW9yZSBtaWRkbGV3YXJlcyB3aXRoIHNvbWUgcGVyZm9ybWFuY2UgaW1wYWN0OgoqIGByZXF1ZXN0LlZhbGlkYXRvck1pZGRsZXdhcmUodmFsaWRhdG9yRmFjdG9yeSlgIChyZXF1ZXN0IHZhbGlkYXRpb24sIHJlY29tbWVuZGVkKQoqIGByZXNwb25zZS5WYWxpZGF0b3JNaWRkbGV3YXJlKHZhbGlkYXRvckZhY3RvcnkpYAoqIGBnemlwLk1pZGRsZXdhcmVgCgpZb3UgY2FuIGFsc28gYWRkIGFueSBvdGhlciAzcmQgcGFydHkgbWlkZGxld2FyZXMgY29tcGF0aWJsZSB3aXRoIGBuZXQvaHR0cGAgYXQgeW91ciBkaXNjcmV0aW9uLgoKYGBgZ28KLy8gU2V0dXAgcmVxdWVzdCBkZWNvZGVyIGFuZCB2YWxpZGF0b3IuCnZhbGlkYXRvckZhY3RvcnkgOj0ganNvbnNjaGVtYS5OZXdGYWN0b3J5KGFwaVNjaGVtYSwgYXBpU2NoZW1hKQpkZWNvZGVyRmFjdG9yeSA6PSByZXF1ZXN0Lk5ld0RlY29kZXJGYWN0b3J5KCkKZGVjb2RlckZhY3RvcnkuU2V0RGVjb2RlckZ1bmMocmVzdC5QYXJhbUluUGF0aCwgY2hpcm91dGVyLlBhdGhUb1VSTFZhbHVlcykKCi8vIENyZWF0ZSByb3V0ZXIuCnIgOj0gY2hpcm91dGVyLk5ld1dyYXBwZXIoZmNoaS5OZXdSb3V0ZXIoKSkKCi8vIFNldHVwIG1pZGRsZXdhcmVzLgpyLlVzZSgKICAgIG1pZGRsZXdhcmUuUmVjb3ZlcmVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFuaWMgcmVjb3ZlcnkuCiAgICBuZXRodHRwLk9wZW5BUElNaWRkbGV3YXJlKGFwaVNjaGVtYSksICAgICAgICAgIC8vIERvY3VtZW50YXRpb24gY29sbGVjdG9yLgogICAgcmVxdWVzdC5EZWNvZGVyTWlkZGxld2FyZShkZWNvZGVyRmFjdG9yeSksICAgICAvLyBSZXF1ZXN0IGRlY29kZXIgc2V0dXAuCiAgICByZXF1ZXN0LlZhbGlkYXRvck1pZGRsZXdhcmUodmFsaWRhdG9yRmFjdG9yeSksIC8vIFJlcXVlc3QgdmFsaWRhdG9yIHNldHVwLgogICAgcmVzcG9uc2UuRW5jb2Rlck1pZGRsZXdhcmUsICAgICAgICAgICAgICAgICAgICAvLyBSZXNwb25zZSBlbmNvZGVyIHNldHVwLgogICAgZ3ppcC5NaWRkbGV3YXJlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNwb25zZSBjb21wcmVzc2lvbiB3aXRoIHN1cHBvcnQgZm9yIGRpcmVjdCBnemlwIHBhc3MgdGhyb3VnaC4KKQpgYGAKClJlZ2lzdGVyIFN3YWdnZXIgVUkgdG8gc2VydmUgZG9jdW1lbnRhdGlvbiBhdCBgL2RvY3NgLgoKYGBgZ28KLy8gU3dhZ2dlciBVSSBlbmRwb2ludCBhdCAvZG9jcy4Kci5NZXRob2QoaHR0cC5NZXRob2RHZXQsICIvZG9jcy9vcGVuYXBpLmpzb24iLCBhcGlTY2hlbWEpCnIuTW91bnQoIi9kb2NzIiwgdjNjZG4uTmV3SGFuZGxlcihhcGlTY2hlbWEuUmVmbGVjdG9yKCkuU3BlYy5JbmZvLlRpdGxlLAogICAgIi9kb2NzL29wZW5hcGkuanNvbiIsICIvZG9jcyIpKQpgYGAKCiMjIFNlY3VyaXR5IFNldHVwCgpgYGBnbwovLyBQcmVwYXJlIG1pZGRsZXdhcmUgd2l0aCBzdWl0YWJsZSBzZWN1cml0eSBzY2hlbWEuCi8vIEl0IHdpbGwgcGVyZm9ybSBhY3R1YWwgc2VjdXJpdHkgY2hlY2sgZm9yIGV2ZXJ5IHJlbGV2YW50IHJlcXVlc3QuCmFkbWluQXV0aCA6PSBtaWRkbGV3YXJlLkJhc2ljQXV0aCgiQWRtaW4gQWNjZXNzIiwgbWFwW3N0cmluZ11zdHJpbmd7ImFkbWluIjogImFkbWluIn0pCgovLyBQcmVwYXJlIEFQSSBzY2hlbWEgdXBkYXRlciBtaWRkbGV3YXJlLgovLyBJdCB3aWxsIGFubm90YXRlIGhhbmRsZXIgZG9jdW1lbnRhdGlvbiB3aXRoIHNlY3VyaXR5IHNjaGVtYS4KYWRtaW5TZWN1cml0eVNjaGVtYSA6PSBuZXRodHRwLkhUVFBCYXNpY1NlY3VyaXR5TWlkZGxld2FyZShhcGlTY2hlbWEsICJBZG1pbiIsICJBZG1pbiBhY2Nlc3MiKQoKLy8gRW5kcG9pbnRzIHdpdGggYWRtaW4gYWNjZXNzLgpyLlJvdXRlKCIvYWRtaW4iLCBmdW5jKHIgZmNoaS5Sb3V0ZXIpIHsKICAgIHIuR3JvdXAoZnVuYyhyIGZjaGkuUm91dGVyKSB7CiAgICAgICAgci5XcmFwKGFkbWluQXV0aCwgYWRtaW5TZWN1cml0eVNjaGVtYSkgLy8gQWRkIGJvdGggbWlkZGxld2FyZXMgdG8gcm91dGluZyBncm91cCB0byBlbmZvcmNlIGFuZCBkb2N1bWVudCBzZWN1cml0eS4KICAgICAgICByLk1ldGhvZChodHRwLk1ldGhvZFB1dCwgIi9oZWxsby97bmFtZX0iLCBmaHR0cC5OZXdIYW5kbGVyKHUpKQogICAgfSkKfSkKYGBgCgpTZWUgW2V4YW1wbGVdKC4vX2V4YW1wbGVzL3Rhc2stYXBpL2ludGVybmFsL2luZnJhL25ldGh0dHAvcm91dGVyLmdvKS4KCiMjIEhhbmRsZXIgU2V0dXAKCkhhbmRsZXIgaXMgYSBnZW5lcmFsaXplZCBhZGFwdGVyIGZvciB1c2UgY2FzZSBpbnRlcmFjdG9yLCBzbyB1c3VhbGx5IHNldHVwIGlzIHRyaXZpYWwuCgpgYGBnbwovLyBBZGQgdXNlIGNhc2UgaGFuZGxlciB0byByb3V0ZXIuCnIuTWV0aG9kKGh0dHAuTWV0aG9kR2V0LCAiL2hlbGxvL3tuYW1lfSIsIGZodHRwLk5ld0hhbmRsZXIodSkpCmBgYAoKIyMgRXhhbXBsZQoKRm9yIG5vbi1nZW5lcmljIHVzZSBjYXNlLCBzZWUgYW5vdGhlciBbZXhhbXBsZV0oLi9fZXhhbXBsZXMvYmFzaWMvbWFpbi5nbykuCgpgYGBnbwpwYWNrYWdlIG1haW4KCmltcG9ydCAoCgkiY29udGV4dCIKCSJlcnJvcnMiCgkiZm10IgoJImxvZyIKCSJ0aW1lIgoKCSJnaXRodWIuY29tL3N3YWdnZXN0L2ZjaGkiCgkiZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0LWZhc3RodHRwL3Jlc3BvbnNlL2d6aXAiCgkiZ2l0aHViLmNvbS9zd2FnZ2VzdC9yZXN0LWZhc3RodHRwL3dlYiIKCXN3Z3VpICJnaXRodWIuY29tL3N3YWdnZXN0L3N3Z3VpL3Y0ZW1iIgoJImdpdGh1Yi5jb20vc3dhZ2dlc3QvdXNlY2FzZSIKCSJnaXRodWIuY29tL3N3YWdnZXN0L3VzZWNhc2Uvc3RhdHVzIgoJImdpdGh1Yi5jb20vdmFseWFsYS9mYXN0aHR0cCIKKQoKZnVuYyBtYWluKCkgewoJcyA6PSB3ZWIuRGVmYXVsdFNlcnZpY2UoKQoKCS8vIEluaXQgQVBJIGRvY3VtZW50YXRpb24gc2NoZW1hLgoJcy5PcGVuQVBJLkluZm8uVGl0bGUgPSAiQmFzaWMgRXhhbXBsZSIKCXMuT3BlbkFQSS5JbmZvLldpdGhEZXNjcmlwdGlvbigiVGhpcyBhcHAgc2hvd2Nhc2VzIGEgdHJpdmlhbCBSRVNUIEFQSS4iKQoJcy5PcGVuQVBJLkluZm8uVmVyc2lvbiA9ICJ2MS4yLjMiCgoJLy8gU2V0dXAgbWlkZGxld2FyZXMuCglzLldyYXAoCgkJZ3ppcC5NaWRkbGV3YXJlLCAvLyBSZXNwb25zZSBjb21wcmVzc2lvbiB3aXRoIHN1cHBvcnQgZm9yIGRpcmVjdCBnemlwIHBhc3MgdGhyb3VnaC4KCSkKCgkvLyBEZWNsYXJlIGlucHV0IHBvcnQgdHlwZS4KCXR5cGUgaGVsbG9JbnB1dCBzdHJ1Y3QgewoJCUxvY2FsZSBzdHJpbmcgYHF1ZXJ5OiJsb2NhbGUiIGRlZmF1bHQ6ImVuLVVTIiBwYXR0ZXJuOiJeW2Etel17Mn0tW0EtWl17Mn0kIiBlbnVtOiJydS1SVSxlbi1VUyJgCgkJTmFtZSAgIHN0cmluZyBgcGF0aDoibmFtZSIgbWluTGVuZ3RoOiIzImAgLy8gRmllbGQgdGFncyBkZWZpbmUgcGFyYW1ldGVyIGxvY2F0aW9uIGFuZCBKU09OIHNjaGVtYSBjb25zdHJhaW50cy4KCgkJLy8gRmllbGQgdGFncyBvZiB1bm5hbWVkIGZpZWxkcyBhcmUgYXBwbGllZCB0byBwYXJlbnQgc2NoZW1hLgoJCS8vIHRoZXkgYXJlIG9wdGlvbmFsIGFuZCBjYW4gYmUgdXNlZCB0byBkaXNhbGxvdyB1bmtub3duIHBhcmFtZXRlcnMuCgkJLy8gRm9yIG5vbi1ib2R5IHBhcmFtcywgbmFtZSB0YWcgbXVzdCBiZSBwcm92aWRlZCBleHBsaWNpdGx5LgoJCS8vIEUuZy4gaGVyZSBubyB1bmtub3duIGBxdWVyeWAgYW5kIGBjb29raWVgIHBhcmFtZXRlcnMgYWxsb3dlZCwKCQkvLyB1bmtub3duIGBoZWFkZXJgIHBhcmFtcyBhcmUgb2suCgkJXyBzdHJ1Y3R7fSBgcXVlcnk6Il8iIGNvb2tpZToiXyIgYWRkaXRpb25hbFByb3BlcnRpZXM6ImZhbHNlImAKCX0KCgkvLyBEZWNsYXJlIG91dHB1dCBwb3J0IHR5cGUuCgl0eXBlIGhlbGxvT3V0cHV0IHN0cnVjdCB7CgkJTm93ICAgICB0aW1lLlRpbWUgYGhlYWRlcjoiWC1Ob3ciIGpzb246Ii0iYAoJCU1lc3NhZ2Ugc3RyaW5nICAgIGBqc29uOiJtZXNzYWdlImAKCX0KCgltZXNzYWdlcyA6PSBtYXBbc3RyaW5nXXN0cmluZ3sKCQkiZW4tVVMiOiAiSGVsbG8sICVzISIsCgkJInJ1LVJVIjogItCf0YDQuNCy0LXRgiwgJXMhIiwKCX0KCgkvLyBDcmVhdGUgdXNlIGNhc2UgaW50ZXJhY3RvciB3aXRoIHJlZmVyZW5jZXMgdG8gaW5wdXQvb3V0cHV0IHR5cGVzIGFuZCBpbnRlcmFjdGlvbiBmdW5jdGlvbi4KCXUgOj0gdXNlY2FzZS5OZXdJbnRlcmFjdG9yKGZ1bmMoY3R4IGNvbnRleHQuQ29udGV4dCwgaW5wdXQgaGVsbG9JbnB1dCwgb3V0cHV0ICpoZWxsb091dHB1dCkgZXJyb3IgewoJCW1zZywgYXZhaWxhYmxlIDo9IG1lc3NhZ2VzW2lucHV0LkxvY2FsZV0KCQlpZiAhYXZhaWxhYmxlIHsKCQkJcmV0dXJuIHN0YXR1cy5XcmFwKGVycm9ycy5OZXcoInVua25vd24gbG9jYWxlIiksIHN0YXR1cy5JbnZhbGlkQXJndW1lbnQpCgkJfQoKCQlvdXRwdXQuTWVzc2FnZSA9IGZtdC5TcHJpbnRmKG1zZywgaW5wdXQuTmFtZSkKCQlvdXRwdXQuTm93ID0gdGltZS5Ob3coKQoKCQlyZXR1cm4gbmlsCgl9KQoKCS8vIERlc2NyaWJlIHVzZSBjYXNlIGludGVyYWN0b3IuCgl1LlNldFRpdGxlKCJHcmVldGVyIikKCXUuU2V0RGVzY3JpcHRpb24oIkdyZWV0ZXIgZ3JlZXRzIHlvdS4iKQoKCXUuU2V0RXhwZWN0ZWRFcnJvcnMoc3RhdHVzLkludmFsaWRBcmd1bWVudCkKCgkvLyBBZGQgdXNlIGNhc2UgaGFuZGxlciB0byByb3V0ZXIuCglzLkdldCgiL2hlbGxvL3tuYW1lfSIsIHUpCgoJLy8gU3dhZ2dlciBVSSBlbmRwb2ludCBhdCAvZG9jcy4KCXMuRG9jcygiL2RvY3MiLCBzd2d1aS5OZXcpCgoJLy8gU3RhcnQgc2VydmVyLgoJbG9nLlByaW50bG4oImh0dHA6Ly9sb2NhbGhvc3Q6ODAxMS9kb2NzIikKCWlmIGVyciA6PSBmYXN0aHR0cC5MaXN0ZW5BbmRTZXJ2ZSgiOjgwMTEiLCBmY2hpLlJlcXVlc3RIYW5kbGVyKHMpKTsgZXJyICE9IG5pbCB7CgkJbG9nLkZhdGFsKGVycikKCX0KfQpgYGAKCiFbRG9jdW1lbnRhdGlvbiBQYWdlXSguL19leGFtcGxlcy9iYXNpYy9zY3JlZW4ucG5nKQoKIyMgVmVyc2lvbmluZwoKVGhpcyBwcm9qZWN0IGFkaGVyZXMgdG8gW1NlbWFudGljIFZlcnNpb25pbmddKGh0dHBzOi8vc2VtdmVyLm9yZy8jc2VtYW50aWMtdmVyc2lvbmluZy0yMDApLgoKQmVmb3JlIHZlcnNpb24gYDEuMC4wYCwgYnJlYWtpbmcgY2hhbmdlcyBhcmUgdGFnZ2VkIHdpdGggYE1JTk9SYCBidW1wLCBmZWF0dXJlcyBhbmQgZml4ZXMgYXJlIHRhZ2dlZCB3aXRoIGBQQVRDSGAgYnVtcC4KQWZ0ZXIgdmVyc2lvbiBgMS4wLjBgLCBicmVha2luZyBjaGFuZ2VzIGFyZSB0YWdnZWQgd2l0aCBgTUFKT1JgIGJ1bXAuCgpCcmVha2luZyBjaGFuZ2VzIGFyZSBkZXNjcmliZWQgaW4gW1VQR1JBREUubWRdKC4vVVBHUkFERS5tZCkuCg== readmeEtag: '"58c198128c1f22c1ede67899d800e7273202e40e"' readmeLastModified: Mon, 27 Jun 2022 07:33:50 GMT repositoryId: 507534984 description: Web services with OpenAPI and JSON Schema done quick in Go created: '2022-06-26T09:49:48Z' updated: '2024-04-28T06:54:48Z' language: Go archived: false stars: 3 watchers: 0 forks: 0 owner: swaggest logo: https://avatars.githubusercontent.com/u/19609628?v=4 license: MIT repoEtag: '"e70661b605d325a0ffa7920b986072a71e984a0fa76fa738087b635a58b51c73"' repoLastModified: Sun, 28 Apr 2024 06:54:48 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/adamko-dev/zally-gradle-plugin v3: true id: 0153bb0c58b4017bbb9027350ca69752 repositoryMetadata: base64Readme: >- IyBaYWxseSBHcmFkbGUgUGx1Z2luCgpbWmFsbHkgR3JhZGxlIFBsdWdpbl0oaHR0cHM6Ly9naXRodWIuY29tL2FkYW1rby1kZXYvemFsbHktZ3JhZGxlLXBsdWdpbikgaXMgYW4KdW5vZmZpY2lhbCBHcmFkbGUgUGx1Z2luIGZvciBbWmFsbHldKGh0dHBzOi8vZ2l0aHViLmNvbS96YWxhbmRvL3phbGx5KSwgdGhlCm1pbmltYWxpc3RpYywgc2ltcGxlLXRvLXVzZSBPcGVuQVBJIDIgYW5kIDMgbGludGVyLgoKVGhlIFphbGx5IEdyYWRsZSBwbHVnaW4gaXMgYmFzZWQgb24gdGhlCltaYWxseSBNYXZlbiBwbHVnaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhsby96YWxseS1tYXZlbi1wbHVnaW4pLgoKKipUaGlzIHByb2plY3QgaXMgdW5maW5pc2hlZCoqLiBJJ20gc2hhcmluZyB0aGUgd29yayBzbyBmYXIgdG8gZ2V0IHRoZSBiYWxsIHJvbGxpbmcuCgojIyMgU2V0dXAKCmBgYGtvdGxpbgovLyBidWlsZC5ncmFkbGUua3RzCgpidWlsZHNjcmlwdCB7CiAgcmVwb3NpdG9yaWVzIHsKICAgIG1hdmVuQ2VudHJhbCgpCiAgICBncmFkbGVQbHVnaW5Qb3J0YWwoKQogICAgbWF2ZW4oImh0dHBzOi8vaml0cGFjay5pbyIpCiAgfQp9CgpwbHVnaW5zIHsKLy8gIGlkKCJkZXYuYWRhbWtvLnphbGx5IikKICBpZCgiY29tLmdpdGh1Yi5hZGFta28tZGV2LnphbGx5LWdyYWRsZS1wbHVnaW4iKSB2ZXJzaW9uICJtYWluLVNOQVBTSE9UIgp9Cgp6YWxseSB7CiAgb3BlbkFwaVNwZWMuc2V0KAogICAgbGF5b3V0LnByb2plY3REaXJlY3RvcnkuZmlsZSgic3JjL21haW4vcmVzb3VyY2VzL29wZW5hcGkueW1sIikKICApCn0KYGBgCgpSdW46IGAuL2dyYWRsZXcgemFsbHlgCg== readmeEtag: '"3952c3f48a22e45f68833bf2dab336399ec00ac1"' readmeLastModified: Wed, 17 Aug 2022 11:25:51 GMT repositoryId: 520641991 description: Use Zally to validate OpenAPI specs in a Gradle project created: '2022-08-02T20:33:41Z' updated: '2023-12-11T16:25:27Z' language: Kotlin archived: false stars: 3 watchers: 1 forks: 0 owner: adamko-dev logo: https://avatars.githubusercontent.com/u/93070146?v=4 license: Apache-2.0 repoEtag: '"deb404f9eef343bd23e556889187ae6aee9d854dfae2e4e4b6d043bcef2102a0"' repoLastModified: Mon, 11 Dec 2023 16:25:27 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/derberg/convert-swagger-to-openapi-playground v3: true repositoryMetadata: base64Readme: >- IyBDb252ZXJ0IFN3YWdnZXIgdG8gT3BlbkFQSSBQbGF5Z3JvdW5kCgpTdGF5aW5nIHdpdGggU3dhZ2dlciAyLjAgaXMgbGlrZSBzdGF5aW5nIHdpdGggLi4uIHN0aWxsIHdvcmtpbmcgb24gYSBnb29kIGNvbXBhcmlzb24uIEFueXdheSwgeW91IHNob3VsZCBtaWdyYXRlIHRvIE9wZW5BUEksIGFuZCBteSBnb2FsIGhlcmUgaXMgbm90IHRvIGNvbnZpbmNlIHlvdSB3aHkuIEkgYXNzdW1lIHlvdSBhbHJlYWR5IG1hZGUgdGhpcyBzbWFydCBkZWNpc2lvbiwgYW5kIEkganVzdCB3YW50IHRvIG1ha2UgaXQgZWFzaWVyIGZvciB5b3UuCgpJIGRpZCBub3QgcGVyZm9ybSBhbnkgbW9yZSBpbi1kZXB0aCBpbnZlc3RpZ2F0aW9uIG9mIGF2YWlsYWJsZSB0b29scy4gVGhlcmUgYXJlIFt0b29sc10oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb2FzLWtpdCkgcHJvdmlkZWQgYnkgTWVybWFkZSBTb2Z0d2FyZS4gVG8gYmUgbW9yZSBzcGVjaWZpYywgYnkgW01pa2UgUmFscGhzb25dKGh0dHBzOi8vdHdpdHRlci5jb20vUGVybWl0dGVkU29jKSB0aGF0IGlzIGEgbWVtYmVyIG9mIFtUZWNobmljYWwgU3RlZXJpbmcgQ29tbWl0dGVlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9NQUlOVEFJTkVSUy5tZCkuIEZvciBtZSwgdGhpcyBpcyBhIGdvb2QgcmVhc29uIG5vdCB0byByZXNlYXJjaCBkaWZmZXJlbnQgdG9vbHMuCgotIFtDb252ZXJ0IGluIGEgQnJvd3Nlcl0oI2NvbnZlcnQtaW4tYS1icm93c2VyKQotIFtDb252ZXJ0IGluIGEgVGVybWluYWxdKCNjb252ZXJ0LWluLWEtdGVybWluYWwpCiAgICAtIFtOUE1dKCNucG0pCiAgICAtIFtOUFhdKCNucHgpCiAgICAtIFtEb2NrZXJdKCNkb2NrZXIpCi0gW0NvbnZlcnQgTXVsdGlwbGUgRmlsZXNdKCNjb252ZXJ0LW11bHRpcGxlLWZpbGVzKQoKIyMgQ29udmVydCBpbiBhIEJyb3dzZXIKCkNvbnZlcnNpb24gaW4gYSBicm93c2VyIGlzIGFkZHJlc3NlZCBieSBbS2luIExhbmVdKGh0dHBzOi8vdHdpdHRlci5jb20va2lubGFuZSkgYWthIEFQSSBFdmFuZ2VsaXN0IGluIFt0aGlzIHRocmVhZCBhbmQgdGhlIHZpZGVvXShodHRwczovL3R3aXR0ZXIuY29tL2FwaWV2YW5nZWxpc3Qvc3RhdHVzLzEyOTU1MDIwOTM2MjU2NDMwMDgpIHNvIHdhdGNoIGl0IGFuZCBnbyB0byBodHRwczovL21lcm1hZGUub3JnLnVrL29wZW5hcGktY29udmVydGVyCgojIyBDb252ZXJ0IGluIGEgVGVybWluYWwKClVzZSBbc3dhZ2dlcjJvcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS9vYXMta2l0L2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3N3YWdnZXIyb3BlbmFwaS9SRUFETUUubWQpIGFuZCBoYXZlIGZ1bjoKCiMjIyBOUE0KCjEuIEluc3RhbGwgdGhlIHRvb2wgYG5wbSBpbnN0YWxsIC1nIHN3YWdnZXIyb3BlbmFwaWAKMS4gUnVuIGNvbnZlcnNpb24gYHN3YWdnZXIyb3BlbmFwaSAtLXlhbWwgLS1vdXRmaWxlIG9wZW5hcGkueWFtbCBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uYAoKQW5kIHRoYXQgaXMgaXQuIENoZWNrIHlvdXIgbmV3IGBvcGVuYXBpLnlhbWxgIGZpbGUuCgojIyMgTlBYCgpbTlBYXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ucHgpIGlzIHVzZWZ1bCBpbiBDSS9DRCB3aGVyZSB5b3UgZG8gbm90IHdhbnQgdG8gaW5zdGFsbCBgc3dhZ2dlcjJvcGVuYXBpYCBnbG9iYWxseS4KCmBucHggLXAgc3dhZ2dlcjJvcGVuYXBpIHN3YWdnZXIyb3BlbmFwaSAtLXlhbWwgLS1vdXRmaWxlIG9wZW5hcGkueWFtbCBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uYAoKIyMjIERvY2tlcgoKTlBNIGFuZCBOUFggaXMgbm90IHlvdXIgdGhpbmd5PyB1c2UgdGhlIERvY2tlciBpbWFnZSBwcm92aWRlZCBieSBNaWtlLgoKYGBgYmFzaAojdGhpcyBwYXJ0ICItdiAke1BXRH06L3Vzci9zcmMvYXBwIiBtb3VudHMgdGhlIGRpcmVjdG9yeSB3aGVyZSB5b3Ugc3RhcnRlZCAiZG9ja2VyIHJ1biIgaW5zaWRlIHRoZSBjb250YWluZXIgd2hlcmUgQ0xJIGlzIHRyaWdnZXJlZCwgdGhpcyB3YXkgZ2VuZXJhdGVkICJvcGVuYXBpLnlhbWwiIGdldHMgaW50byB5b3VyIGxvY2FsIGRyaXZlCmRvY2tlciBydW4gLS1ybSAtdiAke1BXRH06L3Vzci9zcmMvYXBwIG1lcm1hZGUvc3dhZ2dlcjJvcGVuYXBpIHN3YWdnZXIyb3BlbmFwaSAtLXlhbWwgLS1vdXRmaWxlIG9wZW5hcGkueWFtbCBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uCmBgYAoKIyMgQ29udmVydCBNdWx0aXBsZSBGaWxlcwoKWW91IG1vc3QgcHJvYmFibHkgaGF2ZSBtYW55IHNlcnZpY2VzLCBhbmQgeW91IG5lZWQgdG8gY29udmVydCBtYW55IFN3YWdnZXIgZmlsZXMsIGFuZCB5b3UgZG8gbm90IHdhbnQgdG8gZG8gaXQgb25lIGJ5IG9uZSBidXQgYWxsIGF0IG9uY2Ugd2l0aCBhIHNjcmlwdC4gWW91IGNhbiB1c2UgQmFzaCBhbmQgd3JpdGUgc29tZSBzY3JpcHQgdGhhdCBydW5zIHRoZSBDTEksIGJ1dCB3cml0aW5nIEJhc2ggc2NyaXB0cyBpcyBsaWtlIC4uLiB5ZWFoLCBvbmUgZGF5IEknbGwgZmluZCBhIGdvb2QgY29tcGFyaXNvbi4KCkp1c3QgdXNlIGBzd2FnZ2VyMm9wZW5hcGlgIGFzIGEgbGlicmFyeS4gSW4gYGNvbnZlcnRtdWx0aXBsZWAgZGlyZWN0b3J5LCB5b3UgY2FuIGZpbmQgYSBbc2FtcGxlIGNvZGVdKGNvbnZlcnRtdWx0aXBsZS9pbmRleC5qcykgdGhhdCB5b3UgY2FuIGVhc2lseSBlZGl0IGZvciB5b3VyIG5lZWRzLiBJdHMgY29kZSBoYXMgcHJvcGVyIGNvbW1lbnRzIHRoYXQgd2lsbCBoZWxwIHlvdSB1bmRlcnN0YW5kIHdoYXQgcGFydHMgeW91IG1pZ2h0IGNoYW5nZSBpbiBjYXNlIHlvdSBoYXZlIGRpZmZlcmVudCBkaXJlY3Rvcnkgc3RydWN0dXJlIG9yIGZpbGVuYW1lcyB0aGFuIHRoZSBvbmVzIHVzZWQgaW4gdGhlIHNhbXBsZQoKVG8gcGxheSB3aXRoIHRoZSBleGFtcGxlLCBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHM6CjEuIGBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2RlcmJlcmcvY29udmVydC1zd2FnZ2VyLXRvLW9wZW5hcGktcGxheWdyb3VuZC5naXRgCjEuIGBjZCBjb252ZXJ0LXN3YWdnZXItdG8tb3BlbmFwaS1wbGF5Z3JvdW5kL2NvbnZlcnRtdWx0aXBsZWAKMS4gYG5wbSBpbnN0YWxsYAoxLiBgbnBtIHN0YXJ0YAo= readmeEtag: '"c09bc73a43355ecfcbe670a69e08691339aa6619"' readmeLastModified: Tue, 18 Aug 2020 13:01:09 GMT repositoryId: 288430830 description: >- Some instructions and sample how to convert Swagger 2.0 files to OpenAPI 3.0 created: '2020-08-18T10:58:26Z' updated: '2024-06-05T04:33:40Z' language: JavaScript archived: false stars: 3 watchers: 3 forks: 2 owner: derberg logo: https://avatars.githubusercontent.com/u/6995927?v=4 repoEtag: '"2a0137d27a98a94103fddee0a24b5f25b6550b99082631eeee89988fd188e029"' repoLastModified: Wed, 05 Jun 2024 04:33:40 GMT foundInMaster: true category: - Description Validators - Parsers id: c4af853e2cb7950af6ef30a892c513b0 - source: openapi3 tags repository: https://github.com/joar/py-openapilib v3: true repositoryMetadata: base64Readme: >- Li4gdmltOnRhYnN0b3A9NDpzaGlmdHdpZHRoPTQ6c29mdHRhYnN0b3A9NDoKCi4uIHxuYW1lfCByZXBsYWNlOjogYGBvcGVuYXBpbGliYGAKLi4gfGRlc2NyaXB0aW9ufCByZXBsYWNlOjogT3BlbkFQSSAzIE9iamVjdCBNb2RlbAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8bmFtZXwgLSB8ZGVzY3JpcHRpb258CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpTdGF0dXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi0gICB8bmFtZXwgaXMgaW4gZGV2ZWxvcG1lbnQuCi0gICB8bmFtZXwgaW1wbGVtZW50cyB0aGUgbWFqb3JpdHkgb2YgdGhlIGZpZWxkcy4KCkNvbXBhdGliaWxpdHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi0gICB8bmFtZXwgYWltcyB0byBpbXBsZW1lbnQgdGhlIGBPcGVuQVBJIDMuMC4wIFNwZWNpZmljYXRpb25gXy4KLSAgIHxuYW1lfCBpcyBjb21wYXRpYmxlIHdpdGggUHl0aG9uID49IDMuNiwgZHVlIHRvIGl0J3MgdXNhZ2Ugb2YgZi1zdHJpbmdzLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmVmZXJlbmNlcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKLSAgIGBPcGVuQVBJIDMuMC4wIFNwZWNpZmljYXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kPmBfCg== readmeEtag: '"241e21c7f9feaca803089c83f1a504f389cb96e4"' readmeLastModified: Mon, 26 Mar 2018 15:02:44 GMT repositoryId: 107727934 description: Python 3.6 OpenAPI 3 Object Model - built with attrs created: '2017-10-20T21:24:50Z' updated: '2024-05-21T10:16:12Z' language: Python archived: false stars: 3 watchers: 3 forks: 2 owner: joar logo: https://avatars.githubusercontent.com/u/20814?v=4 license: BSD-2-Clause repoEtag: '"9e983f3a6a5b6c9e93761cb06d5e78347d9906aeb47951069c992923434c9bf1"' repoLastModified: Tue, 21 May 2024 10:16:12 GMT foundInMaster: true category: Parsers id: 62c05e9899c36eb5cb5f25061e0fce48 - source: openapi3 tags repository: https://github.com/suud/cdk-openapigateway v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpZ2F0ZXdheQo+IENyZWF0ZSBhbiBBbWF6b24gQVBJIEdhdGV3YXkgZnJvbSBhbiBPcGVuQVBJIDMgRG9jdW1lbnQuCgohW1B5UEldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L29wZW5hcGlnYXRld2F5KQohW1B5UEkgLSBQeXRob24gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvb3BlbmFwaWdhdGV3YXkpClshW0NvZGUgc3R5bGU6IGJsYWNrXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvZGUlMjBzdHlsZS1ibGFjay0wMDAwMDAuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3BzZi9ibGFjaykKIVtQeVBJIC0gTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wvb3BlbmFwaWdhdGV3YXkpCgpBV1MgQ0RLIENvbnN0cnVjdCB0aGF0IGNyZWF0ZXMgYW4gQW1hem9uIEFQSSBHYXRld2F5IEh0dHBBcGkgYmFzZWQgb24gYQpwYXJhbWV0ZXJpemVkIE9wZW5BUEkgMyBEb2N1bWVudC4KCiMjIEluc3RhbGxhdGlvbgoKYGBgc2gKcGlwIGluc3RhbGwgb3BlbmFwaWdhdGV3YXkKYGBgCgojIyBVc2FnZQoKIyMjIEV4YW1wbGUgMTogQVBJIGJhY2tlZCBieSBMYW1iZGEgRnVuY3Rpb24KCipvcGVuYXBpLnlhbWw6KgpgYGB5YW1sClsuLi5dCnBhdGhzOgogIC9wZXRzOgogICAgZ2V0OgogICAgICBzdW1tYXJ5OiBMaXN0IGFsbCBwZXRzCiAgICAgIHJlc3BvbnNlczoKICAgICAgICBbLi4uXQogICAgICB4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uOgogICAgICAgIHVyaTogIiR7QVBJX0xBTUJEQV9BUk59IgogICAgICAgIHR5cGU6ICJBV1NfUFJPWFkiCiAgICAgICAgaHR0cE1ldGhvZDogIlBPU1QiCiAgICAgICAgY29ubmVjdGlvblR5cGU6ICJJTlRFUk5FVCIKICAgICAgICBwYXlsb2FkRm9ybWF0VmVyc2lvbjogIjIuMCIKICAgICAgeC1hbWF6b24tYXBpZ2F0ZXdheS1yZXF1ZXN0LXZhbGlkYXRvcjoKICAgICAgICB2YWxpZGF0ZVJlcXVlc3RCb2R5OiB0cnVlCiAgICAgICAgdmFsaWRhdGVSZXF1ZXN0UGFyYW1ldGVyczogdHJ1ZQpbLi4uXQpgYGAKCipvcGVuX2FwaV9zdGFjay5weToqCmBgYHB5dGhvbgpmcm9tIGF3c19jZGsgaW1wb3J0IGNvcmUsIGF3c19pYW0gYXMgaWFtLCBhd3NfbGFtYmRhIGFzIF9sYW1iZGEKZnJvbSBvcGVuYXBpZ2F0ZXdheSBpbXBvcnQgT3BlbkFwaUdhdGV3YXkKCgpjbGFzcyBPcGVuQXBpU3RhY2soY29yZS5TdGFjayk6CiAgICBkZWYgX19pbml0X18oCiAgICAgICAgc2VsZiwgc2NvcGU6IGNvcmUuQ29uc3RydWN0LCBjb25zdHJ1Y3RfaWQ6IHN0ciwgKiprd2FyZ3MKICAgICkgLT4gTm9uZToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKHNjb3BlLCBjb25zdHJ1Y3RfaWQsICoqa3dhcmdzKQoKICAgICAgICAjIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBhcGkgcmVxdWVzdChzKQogICAgICAgIGFwaV9sYW1iZGEgPSBfbGFtYmRhLkZ1bmN0aW9uKFsuLi5dKQoKICAgICAgICAjIGNyZWF0ZSBhcGkgZnJvbSBvcGVuYXBpIGRvY3VtZW50IGFuZCByZXBsYWNlIHBhcmFtcwogICAgICAgIG9wZW5hcGkgPSBPcGVuQXBpR2F0ZXdheSgKICAgICAgICAgICAgc2VsZiwKICAgICAgICAgICAgIk9wZW5BUEkgR2F0ZXdheSIsCiAgICAgICAgICAgIG9wZW5hcGlfcGF0aD0ib3BlbmFwaS55YW1sIiwKICAgICAgICAgICAgcGFyYW1fdmFsdWVfZGljdD17IkFQSV9MQU1CREFfQVJOIjogYXBpX2xhbWJkYS5mdW5jdGlvbl9hcm59LAogICAgICAgICAgICBmYWlsX29uX3dhcm5pbmdzPVRydWUsCiAgICAgICAgKQoKICAgICAgICAjIGdyYW50IEh0dHBBcGkgcGVybWlzc2lvbiB0byBpbnZva2UgYXBpIGxhbWJkYSBmdW5jdGlvbgogICAgICAgIGFwaV9sYW1iZGEuYWRkX3Blcm1pc3Npb24oCiAgICAgICAgICAgIGYiSW52b2tlIEJ5IHtvcGVuYXBpLmh0dHBfYXBpLm5vZGUuaWR9IFBlcm1pc3Npb24iLAogICAgICAgICAgICBwcmluY2lwYWw9aWFtLlNlcnZpY2VQcmluY2lwYWwoImFwaWdhdGV3YXkuYW1hem9uYXdzLmNvbSIpLAogICAgICAgICAgICBhY3Rpb249ImxhbWJkYTpJbnZva2VGdW5jdGlvbiIsCiAgICAgICAgICAgIHNvdXJjZV9hcm49b3BlbmFwaS5odHRwX2FwaV9hcm4sCiAgICAgICAgKQpgYGAKCiMjIFtEb2N1bWVudGF0aW9uXShodHRwczovL3N1dWQuZ2l0aHViLmlvL2Nkay1vcGVuYXBpZ2F0ZXdheS9vcGVuYXBpZ2F0ZXdheS5odG1sKQoKIyMgRGV2ZWxvcG1lbnQgc2V0dXAKCiMjIyBvcHRpb25hbDogdXNlIHZpcnR1YWxlbnYKCmBgYHNoCiMgY3JlYXRlIHZpcnR1YWxlbnYgb24gTWFjT1MgYW5kIExpbnV4CnB5dGhvbjMgLW0gdmVudiAudmVudgojIGFjdGl2YXRlIHZpcnR1YWxlbnYKc291cmNlIC52ZW52L2Jpbi9hY3RpdmF0ZQpgYGAKCiMjIyBpbnN0YWxsIGRlcGVuZGVuY2llcwoKVG8gaW5zdGFsbCB0aGlzIHBhY2thZ2UsIGFsb25nIHdpdGggdGhlIHRvb2xzIHlvdSBuZWVkIHRvIGRldmVsb3AgYW5kIHB1Ymxpc2gKaXQsIHJ1biB0aGUgZm9sbG93aW5nOgoKYGBgc2gKcGlwIGluc3RhbGwgLWUgIi5bZGV2XSIKYGBgCgojIyBDb250cmlidXRpbmcKCjEuIFtGb3JrIHRoaXMgcmVwb3NpdG9yeV0oaHR0cHM6Ly9naXRodWIuY29tL3N1dWQvY2RrLW9wZW5hcGlnYXRld2F5L2ZvcmspCjIuIENyZWF0ZSB5b3VyIGZlYXR1cmUgYnJhbmNoIChgZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUvZm9vQmFyYCkKMy4gQ29tbWl0IHlvdXIgY2hhbmdlcyAoYGdpdCBjb21taXQgLWFtICdBZGQgc29tZSBmb29CYXInYCkKNC4gUHVzaCB0byB0aGUgYnJhbmNoIChgZ2l0IHB1c2ggb3JpZ2luIGZlYXR1cmUvZm9vQmFyYCkKNS4gQ3JlYXRlIGEgbmV3IFB1bGwgUmVxdWVzdAoKIyMgTGljZW5zZQoKTUlUCg== readmeEtag: '"59392f141d23ea5cd395744d56522cd550df646d"' readmeLastModified: Tue, 29 Dec 2020 19:49:29 GMT repositoryId: 324788192 description: AWS CDK - API Gateway from OpenAPI 3 Specs created: '2020-12-27T15:15:15Z' updated: '2022-09-08T21:22:14Z' language: Python archived: false stars: 3 watchers: 1 forks: 2 owner: suud logo: https://avatars.githubusercontent.com/u/10183975?v=4 license: MIT repoEtag: '"4e08171a982cb041eae7e52bc929dc762485451bff0925a53b39b00d4a8bc495"' repoLastModified: Thu, 08 Sep 2022 21:22:14 GMT foundInMaster: true category: Data Validators id: 1aba64373963ca20f37c64c9a809c53d - source: openapi3 tags repository: https://github.com/membrane-php/membrane-laravel v3: true id: 97d0ee9099351cdd23940bde3ad0428f repositoryMetadata: base64Readme: >- IyBNZW1icmFuZS1MYXJhdmVsCgpJbnRlZ3JhdGVzIFtNZW1icmFuZS1jb3JlXShodHRwczovL2dpdGh1Yi5jb20vbWVtYnJhbmUtcGhwL21lbWJyYW5lLWNvcmUpIHdpdGggW0xhcmF2ZWxdKGh0dHBzOi8vbGFyYXZlbC5jb20vKS4KCiMjIEFib3V0CgpNaWRkbGV3YXJlIHRoYXQgdmFsaWRhdGVzIHRoZSByYXcgdXNlciBpbnB1dCBmcm9tIGluY29taW5nIEhUVFAgcmVxdWVzdHMgYWdhaW5zdCB5b3VyIE9wZW5BUEkgc3BlYy4gIApBZGRzIGEgYE1lbWJyYW5lXFJlc3VsdFxSZXN1bHRgIG9udG8geW91ciBgSWxsdW1pbmF0ZVxDb250cmFjdHNcQ29udGFpbmVyXENvbnRhaW5lcmAuICAKVGhlIFJlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGNsZWFuZWQgdXAgZGF0YSBhbmQgYWRkaXRpb25hbCBkZXRhaWxzIGluIHRoZSBjYXNlIG9mIGludmFsaWQgcmVxdWVzdHMuCgojIyBTZXR1cAoKIyMjIEluc3RhbGxhdGlvbgoKUmVxdWlyZSB0aGUgYG1lbWJyYW5lL2xhcmF2ZWxgIHBhY2thZ2UgaW4geW91ciBjb21wb3Nlci5qc29uIGFuZCB1cGRhdGUgeW91ciBkZXBlbmRlbmNpZXM6CgpgYGB0ZXh0CmNvbXBvc2VyIHJlcXVpcmUgbWVtYnJhbmUvbGFyYXZlbApgYGAKCiMjIyBDb25maWd1cmF0aW9uCgpUaGUgZGVmYXVsdHMgYXJlIHNldCBpbiBgY29uZmlnL21lbWJyYW5lLnBocGAuICAKVG8gcHVibGlzaCBhIGNvcHkgdG8geW91ciBvd24gY29uZmlnLCB1c2UgdGhlIGZvbGxvd2luZzoKCmBgYHRleHQKcGhwIGFydGlzYW4gdmVuZG9yOnB1Ymxpc2ggLS10YWc9Im1lbWJyYW5lIgpgYGAKCiMjIyMgQVBJIFNwZWMgRmlsZQoKVGhpcyBpcyB0aGUgKiphYnNvbHV0ZSoqIGZpbGVwYXRoIG9mIHlvdXIgT3BlbkFQSS4KCkJ5IGRlZmF1bHQsIGl0IGxvb2tzIGZvciBgPHlvdXItcHJvamVjdC1kaXJlY3Rvcnk+L2FwaS9vcGVuYXBpLnlhbWxgLgoKIyMjIyBWYWxpZGF0aW9uIEVycm9yIFJlc3BvbnNlIENvZGUKClNldCBgJ3ZhbGlkYXRpb25fZXJyb3JfcmVzcG9uc2VfY29kZSdgIHRvIHRoZSAqKmludGVnZXIqKiB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBodHRwIHN0YXR1cyBjb2RlIGZvciBpbnZhbGlkIHJlc3VsdHMuCgojIyMjIFZhbGlkYXRpb24gRXJyb3IgUmVzcG9uc2UgVHlwZQoKU2V0IGAndmFsaWRhdGlvbl9lcnJvcl9yZXNwb25zZV90eXBlJ2AgdG8gdGhlICoqc3RyaW5nKiogdmFsdWUgb2YgdGhlIGRlZmF1bHQgcmVzcG9uc2UgdHlwZSBmb3IgQVBJIHByb2JsZW1zLgoKIyMjIyBBUEkgUHJvYmxlbSBSZXNwb25zZSBUeXBlcwoKV2l0aGluIHRoZSBgJ2FwaV9wcm9ibGVtX3Jlc3BvbnNlX3R5cGVzJ2AgYXJyYXk6ClNldCAqKmludGVnZXIqKiBodHRwIHN0YXR1cyBjb2RlID0+ICoqc3RyaW5nKiogcmVzcG9uc2UgdHlwZSBwYWlycy4gIApUaGVzZSBhcmUgbW9yZSBzcGVjaWZpYyBhbmQgd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZSBzZXQgYnkgYCd2YWxpZGF0aW9uX2Vycm9yX3Jlc3BvbnNlX3R5cGUnYAoKIyMgVXNhZ2UKCiMjIyBSZXF1ZXN0cwoKVGhlIGBcTWVtYnJhbmVcTGFyYXZlbFxNaWRkbGV3YXJlXFJlcXVlc3RWYWxpZGF0aW9uYCBtaWRkbGV3YXJlIHdpbGwgdmFsaWRhdGUgb3IgaW52YWxpZGF0ZSBpbmNvbWluZyByZXF1ZXN0cyBhbmQgbGV0CnlvdSBkZWNpZGUKaG93IHRvIHJlYWN0LgpZb3UgY2FuIGZvbGxvdyBpdCB3aXRoIHlvdXIgb3duIGN1c3RvbSBtaWRkbGV3YXJlIG9yIHdpdGggb25lIG9mIHRoZSBmb2xsb3dpbmcgYnVpbHQtaW4gb3B0aW9ucyB0byBwcm9kdWNlIGFuIGVycm9yCnJlc3BvbnNlOgoKIyMjIFJlc3BvbnNlcwoKQW55IHJlc3BvbnNlIG1pZGRsZXdhcmUgTVVTVCBmb2xsb3cgdGhlIGBSZXF1ZXN0VmFsaWRhdGlvbmAgbWlkZGxld2FyZSBhcyBpdCByZXF1aXJlcyB0aGUgYHJlc3VsdGAgb2JqZWN0IGJlaW5nIGFkZGVkIHRvCnlvdXIgY29udGFpbmVyLiAgClRoZXNlIG1pZGRsZXdhcmVzIHdpbGwgY2hlY2sgd2hldGhlciB0aGUgcmVxdWVzdCBoYXMgcGFzc2VkIG9yIGZhaWxlZCB2YWxpZGF0aW9uLiAgCkludmFsaWQgcmVxdWVzdHMgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVzcG9uc2UgZGV0YWlsaW5nIHRoZSByZWFzb25zIHRoZSByZXF1ZXN0IHdhcyBpbnZhbGlkLgoKWW91ciByZXNwb25zZSBjYW4gYmUgaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybWF0cy4KCiMjIyMgRmxhdCBKc29uCgpgXE1lbWJyYW5lXExhcmF2ZWxcTWlkZGxld2FyZVxSZXNwb25zZUpzb25GbGF0YAoKYGBgdGV4dAp7CiAgICAiZXJyb3JzIjp7CiAgICAgICAgInBldC0+aWQiOlsibXVzdCBiZSBhbiBpbnRlZ2VyIl0sCiAgICAgICAgInBldCI6WyJuYW1lIGlzIGEgcmVxdWlyZWQgZmllbGQiXQogICAgfSwKICAgICJ0aXRsZSI6IlJlcXVlc3QgcGF5bG9hZCBmYWlsZWQgdmFsaWRhdGlvbiIsCiAgICAidHlwZSI6ImFib3V0OmJsYW5rIiwKICAgICJzdGF0dXMiOjQwMAp9CmBgYAoKIyMjIyBOZXN0ZWQgSnNvbgoKYFxNZW1icmFuZVxMYXJhdmVsXE1pZGRsZXdhcmVcUmVzcG9uc2VKc29uTmVzdGVkYAoKYGBgdGV4dAp7CiAgICAiZXJyb3JzIjp7CiAgICAgICAgImVycm9ycyI6W10sCiAgICAgICAgImZpZWxkcyI6ewogICAgICAgICAgICAicGV0Ijp7CiAgICAgICAgICAgICAgICAiZXJyb3JzIjpbCiAgICAgICAgICAgICAgICAgICAgIm5hbWUgaXMgYSByZXF1aXJlZCBmaWVsZCIKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAiZmllbGRzIjp7CiAgICAgICAgICAgICAgICAgICAgImlkIjp7CiAgICAgICAgICAgICAgICAgICAgICAgICJlcnJvcnMiOlsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIGFuIGludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJmaWVsZHMiOltdCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSwKICAgICJ0aXRsZSI6IlJlcXVlc3QgcGF5bG9hZCBmYWlsZWQgdmFsaWRhdGlvbiIsCiAgICAidHlwZSI6ImFib3V0OmJsYW5rIiwKICAgICJzdGF0dXMiOjQwMAp9CmBgYAoKIyMjIEdsb2JhbCBVc2FnZQoKVG8gdXNlIGFueSBvZiB0aGUgYWJvdmUgbWlkZGxld2FyZXMgb24gYWxsIHJvdXRlcywgZ28gaW50byB5b3VyIGBhcHAvSHR0cC9LZXJuZWwucGhwYCBhbmQgYWRkIHRoZW0gdG8geW91ciBgbWlkZGxld2FyZWAKYXJyYXkuCgpGb3IgZXhhbXBsZToKCmBgYHBocApwcm90ZWN0ZWQgJG1pZGRsZXdhcmUgPSBbCiAgXE1lbWJyYW5lXExhcmF2ZWxcTWlkZGxld2FyZVxSZXF1ZXN0VmFsaWRhdGlvbjo6Y2xhc3MsCiAgXE1lbWJyYW5lXExhcmF2ZWxcTWlkZGxld2FyZVxSZXNwb25zZUpzb25GbGF0OjpjbGFzcwogIC8vIC4uLgpdOwpgYGAK readmeEtag: '"78be30c883085a9a416bd823c1055a76e6822a5d"' readmeLastModified: Thu, 25 Apr 2024 16:29:02 GMT repositoryId: 574444174 description: Laravel integration for Membrane validation library. created: '2022-12-05T10:25:52Z' updated: '2024-06-18T07:28:53Z' language: PHP archived: false stars: 3 watchers: 1 forks: 2 owner: membrane-php logo: https://avatars.githubusercontent.com/u/104306108?v=4 license: NOASSERTION repoEtag: '"d00b106e78672916c312242b486bf0d817172d94a030d4b37c1e7bdea628c00e"' repoLastModified: Tue, 18 Jun 2024 07:28:53 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/adarro/parsehub-openapi v3: true repositoryMetadata: base64Readme: >- IyBwYXJzZWh1Yi1vcGVuYXBpClN3YWdnZXIgKE9wZW5BUEkpIGRvY3VtZW50YXRpb24gZm9yIFBhcnNlSHViIFJFU1QgQVBJCgpUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgU3dhZ2dlciAoT3BlbkFQSSAzKSBkb2N1bWVudCBvZiB0aGUgW1BhcnNlSHViXShodHRwczovL3BhcnNlaHViLmNvbSkgUkVTVCBhcGkuCgpBdCBjdXJyZW50LCB0aGUgbWFzdGVyIGRvY3VtZW50IGxpdmVzIG9uIFN3YWdnZXJIdWIgW0hFUkVdKGh0dHBzOi8vYXBwLnN3YWdnZXJodWIuY29tL2FwaXMvYWRhcnJvL3BhcnNlLWh1Yi8wLjAuMSkKCkdpdGh1YiAvIEdpdGxhYiBpbnRlZ3JhdGlvbiB3aXRoIFN3YWdnZXJIdWIgZG9lcyBub3Qgd29yayBmb3IgT3BlbkFQSSAzLjAgYXQgdGhpcyB0aW1lLCBidXQgKnNob3VsZCogaW4gdGhlIG5lYXIgZnV0dXJlLgoKIyMgVmVyc2lvbmluZwpJIHdvdWxkIGxpa2UgdG8gZm9sbG93IFNlbWFudGljIFZlcnNpb25pbmcgW1NlbVZlcl0oaHR0cHM6Ly9zZW12ZXIub3JnLykgYnV0IHdvdWxkIGxpa2UgdG8ga2VlcCB0aGlzIGluIHN5bmMgd2l0aCBhbnkgUGFyc2VodWIgY2hhbmdlcy4KClRoaXMgcHJvamVjdCBpcyBBcGFjaGUgMi4wIExpY2Vuc2VkLCBidXQgdXNlIG9mIFBhcnNlSHViJ3Mgc2VydmljZXMgcmVxdWlyZXMgYWdyZWVtZW50IHRvIHRoZWlyIFtUZXJtcyBvZiBTZXJ2aWNlXShodHRwczovL3d3dy5wYXJzZWh1Yi5jb20vdGVybXMp readmeEtag: '"59d57bff96d8840d5388162325f16c9fcd2767fe"' readmeLastModified: Thu, 06 Feb 2020 14:08:17 GMT repositoryId: 139917432 description: Swagger (OpenAPI) documentation for ParseHub REST API created: '2018-07-06T01:19:24Z' updated: '2023-07-26T08:05:24Z' language: null archived: false stars: 3 watchers: 2 forks: 0 owner: adarro logo: https://avatars.githubusercontent.com/u/101220?v=4 license: Apache-2.0 repoEtag: '"e9a8208bf63b93bd3182c706791f94eb387efb8924f042cbbd2c038f360e436d"' repoLastModified: Wed, 26 Jul 2023 08:05:24 GMT foundInMaster: true category: Parsers id: 4febdf85e579394614b5e30de52823ba - source: openapi3 tags repository: https://github.com/bump-sh-examples/laravel-design-first v3: true id: 22a90a57d3f8d2cbe22c7514cc808a0c repositoryMetadata: base64Readme: >- IyBMYXJhdmVsIENvZGUgRmlyc3QKClRoaXMgcmVwb3NpdG9yeSB3YXMgYnVpbHQgYXMgc2FtcGxlIGNvZGUgZm9yIHRoZSBCdW1wLnNoIGd1aWRlIG9uIF9bVXNpbmcgT3BlbkFQSSB0byBzaW1wbGlmeSBidWlsZGluZyBhbmQgdGVzdGluZyBMYXJhdmVsIEFQSXNdKGh0dHBzOi8vZG9jcy5idW1wLnNoL2d1aWRlcy9vcGVuYXBpL2Rlc2lnbi1maXJzdC1sYXJhdmVsLylfLiBMZWFybiB0byB1c2UgdGhlIEFQSSBEZXNpZ24gRmlyc3Qgd29ya2Zsb3csIGFuZCBzaW1wbGlmeSB5b3VyIExhcmF2ZWwgY29kZSBieSBub3QgaGF2aW5nIHRvIHJlcGVhdCB5b3VyIEFQSSBjb250cmFjdCBpbiB2YWxpZGF0aW9uIGFuZCBjb250cmFjdCB0ZXN0aW5nIGFzIHdlbGwgYXMgZG9jdW1lbnRhdGlvbi4gSnVzdCBkbyBpdCBvbmNlLCBtYWtlIGVhc3kgY29kZSwgdGhlbiBwb3AgaXQgYWxsIG9udG8gQnVtcC5zaCB0byBoYXZlIFtncmVhdCBBUEkgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9idW1wLnNoL2J1bXAtZXhhbXBsZXMvaHViL2NvZGUtc2FtcGxlcy9kb2MvbGFyYXZlbC1kZXNpZ24tZmlyc3QpLgoKIyMgVXNhZ2UKCkNsb25lIHRoZSByZXBvc2l0b3J5IGRvd24gdG8gZ2l2ZSBpdCBhIHRyeS4KCmBgYAojIFNldCBldmVyeXRoaW5nIHVwCiQgY29tcG9zZXIgaW5zdGFsbAoKIyBTdGFydCB0aGUgc2VydmVyCiQgcGhwIGFydGlzYW4gc2VydmUKCiMgUG9rZSB0aGUgQVBJIGFuZCBnZXQgYXV0b21hdGVkICBlcnJvcnMKJCBjdXJsIC1YIFBPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FwaS93aWRnZXRzIFwKICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgIC1kICd7Im5hbWUiIDogIlJlcGxpY2F0b3IifScKCnsKICAiZXJyb3JzIjogewogICAgInJlcXVlc3RCb2R5IjogWwogICAgICAiZGVzY3JpcHRpb24gaXMgYSByZXF1aXJlZCBmaWVsZCIKICAgIF0KICB9LAogICJ0aXRsZSI6ICJSZXF1ZXN0IHBheWxvYWQgZmFpbGVkIHZhbGlkYXRpb24iLAogICJ0eXBlIjogImFib3V0OmJsYW5rIiwKICAic3RhdHVzIjogNDAwCn0KYGBgCgpHaXZlIGl0IGEgdHJ5LCBwbGF5IGFyb3VuZCB3aXRoIHRoZSBPcGVuQVBJLCBhbmQgc2VlIGhvdyBpdCByZXNwb25kcyB0byBkaWZmZXJlbnQgc2NlbmFyaW9zLiAKClRoZW4geW91IGNhbiBydW4gYGNvbXBvc2VyIHRlc3RgIHRvIHNlZSBpZiB0aGUgQVBJIHJlc3BvbnNlcyBtYXRjaCB3aGF0IE9wZW5BUEkgZXhwZWN0LCB3aGljaCB3aGVuIGltcGxlbWVudGVkIGluIHlvdXIgYXBwbGljYXRpb24gd2lsbCBoZWxwIG1ha2Ugc3VyZSB5b3VyIEFQSSBpcyBhY3R1YWxseSBkb2luZyB3aGF0IHlvdXIgZG9jcyBhcmUgc2F5aW5nLCBvciBtYWtlIHN1cmUgeW91ciBkb2NzIGFyZSBzYXlpbmcgd2hhdCB5b3VyIEFQSSBpcyBkb2luZywgd2hpY2hldmVyIHdheSByb3VuZCB5b3UgcHJlZmVyIHRvIHRoaW5rIG9mIGl0LgoKUHJldmlldyBob3cgdGhlIEFQSSByZWZlcmVuY2UgZG9jcyBsb29rIFtvbiBCdW1wLnNoXShodHRwczovL2J1bXAuc2gvYnVtcC1leGFtcGxlcy9odWIvY29kZS1zYW1wbGVzL2RvYy9sYXJhdmVsLWRlc2lnbi1maXJzdCkuCgojIyBMaWNlbnNlCgpUaGUgY29udGVudHMgb2YgdGhpcyByZXBvc2l0b3J5IGFyZSBsaWNlbnNlZCB1bmRlciBbQ0MgQlktTkMtU0EKICA0LjBdKC4vTElDRU5TRV9DQy1CWS1OQy1TQS00LjApLgo= readmeEtag: '"7ee963ec709358519fd61bec17566d66a16b2177"' readmeLastModified: Tue, 27 Feb 2024 16:05:25 GMT repositoryId: 743755264 description: >- Create your OpenAPI then use it to power your application, covering both request validation and contract testing. created: '2024-01-15T23:12:27Z' updated: '2024-05-20T08:29:57Z' language: PHP archived: false stars: 3 watchers: 1 forks: 0 owner: bump-sh-examples logo: https://avatars.githubusercontent.com/u/157144805?v=4 license: NOASSERTION repoEtag: '"933a710be572bf31f296d17546b6efbef8ec2052473e8dbabc76d21056962df8"' repoLastModified: Mon, 20 May 2024 08:29:57 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/tidepool-org/tidepoolapi v3: true id: a7c2fef8f920a4385bf8aae75ba61407 repositoryMetadata: base64Readme: >- IyBUaWRlcG9vbEFwaSAKCiFbVGlkZXBvb2wgTG9nb10oLi9hc3NldHMvaW1hZ2VzL1RpZGVwb29sX0xvZ29fRGFya19MYXJnZS5wbmcpCgpbIVtwdWJsaXNoXShodHRwczovL2dpdGh1Yi5jb20vdGlkZXBvb2wtb3JnL1RpZGVwb29sQXBpL2FjdGlvbnMvd29ya2Zsb3dzL2NoZWNrLWFuZC1wdWJsaXNoLnltbC9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRlcG9vbC1vcmcvVGlkZXBvb2xBcGkvYWN0aW9ucy93b3JrZmxvd3MvY2hlY2stYW5kLXB1Ymxpc2gueW1sKQoKVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIFRpZGVwb29sIFBsYXRmb3JtIEFQSSBkb2N1bWVudGF0aW9uIGluIFtPcGVuQVBJIHYzXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKSBmb3JtYXQgd2l0aCBhZGRpdGlvbmFsIG5hcnJhdGl2ZSBjb250ZW50IGluIFtTdG9wbGlnaHQtZmxhdm9yZWRdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9zdHVkaW8vZG9jcy9Eb2N1bWVudGF0aW9uLzAzYS1zdG9wbGlnaHQtZmxhdm9yZWQtbWFya2Rvd24ubWQpIFtDb21tb25NYXJrXShodHRwczovL2NvbW1vbm1hcmsub3JnLykgZm9ybWF0IHdoaWNoIGluIHR1cm4gaXMgYSBsZXNzIGFtYmlndW91cyBmb3JtYWwgZGVmaW5pdGlvbiBvZiBbTWFya2Rvd25dKGh0dHBzOi8vd3d3Lm1hcmtkb3duZ3VpZGUub3JnLykuClRoZXNlIEFQSSBkZWZpbml0aW9ucyBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBzdHViIGNvZGUgZm9yIGVpdGhlciBzZXJ2ZXIgb3IgY2xpZW50IHNpZGUuIEN1cnJlbnRseSwgd2Ugb25seSBkbyB0aGlzIHdpdGggdGhlIGBjbGluaWNgIHNlcnZpY2UgKHNlZSBiZWxvdyBmb3Igc3BlY2lhbCBub3RlIG9uIHRoYXQpLgoKIyMgV29ya2Zsb3cKCldlIGhhdmUgYW4gYWNjb3VudCBpbiBbU3RvcGxpZ2h0XShodHRwczovL3RpZGVwb29sLnN0b3BsaWdodC5pbykgZm9yIHB1Ymxpc2hpbmcgdGhlIGRvY3VtZW50YXRpb24gYW5kIEFQSSBzcGVjaWZpY2F0aW9ucy4gVGhlIGdvYWwgaXMgZm9yIHRoYXQgc2l0ZSB0byBzb29uIHJlcGxhY2UgdGhlIGN1cnJlbnQgW2RldmVsb3BlciBwb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVyLnRpZGVwb29sLm9yZykuIEl0ICppcyogcG9zc2libGUgdG8gZWRpdCB0aGUgZG9jdW1lbnRhdGlvbiBmaWxlcyBkaXJlY3RseSBvbmxpbmUgaW4gU3RvcGxpZ2h0IC0gaG93ZXZlciB3ZSBhcmUgKm5vdCogdXNpbmcgdGhhdCBjYXBhYmlsaXR5LCBmb3Igc2V2ZXJhbCByZWFzb25zOgoKMS4gRG9pbmcgc28gcmVxdWlyZXMgdXNpbmcgb25lIG9mIGEgbGltaXRlZCBudW1iZXIgb2Ygc2VhdHMgKDUpLgoyLiBJdCBkb2VzIG5vdCBmaXQgd2VsbCBpbnRvIG91ciBub3JtYWwgcmV2aWV3L2FwcHJvdmFsIHdvcmtmbG93LgozLiBJdCByZXF1aXJlcyBpbnRlZ3JhdGlvbiB3aXRoIEdpdEh1YiB3aXRoIFticm9hZCBzY29wZXMgaW5jbHVkaW5nIGFjY2VzcyB0byBwcml2YXRlIHJlcG9zaXRvcmllc10oaHR0cHM6Ly9zdXBwb3J0LnN0b3BsaWdodC5pby9zL2FydGljbGUvR2l0aHViLU9BdXRoLVBlcm1pc3Npb25zLU92ZXJ2aWV3KS4KNC4gSXQgZG9lcyBub3QgZW5hYmxlIHVzIHRvIHJ1biBwcmUtbWVyZ2UgY2hlY2tzLCBpbiBwYXJ0aWN1bGFyIHRvIHZhbGlkYXRlIGNoYW5nZXMgdGhhdCBjb3VsZCBicmVhayBnZW5lcmF0ZWQgc2VydmVyIHN0dWIgY29kZSBzdWNoIGFzIHRoZSBbYGNsaW5pY2BdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRlcG9vbC1vcmcvY2xpbmljKSBzZXJ2aWNlLiBTZWUgdGhlIGBjaGVja2AgYW5kIGBnZW5lcmF0ZWAgc3RlcHMgaW4gdGhlIFtNYWtlZmlsZV0oLi9NYWtlZmlsZSkuCjUuIEl0IGRvZXMgbm90IGVuYWJsZSB1cyB0byBydW4gcHJlLXByb2Nlc3Npbmcgc3RlcHMgbmVjZXNzYXJ5IHRvIGNvbnNvbGlkYXRlIG11bHRpcGxlIEFQSSBzcGVjaWZpY2F0aW9uIGZpbGVzIGludG8gYSBzaW5nbGUgT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uIHRvIG1ha2UgdGhlIHB1Ymxpc2hlZCBBUEkgdmlldyBtb3JlIGNvaGVyZW50LiBTZWUgdGhlIGBwcmVwYXJlYCBzdGVwcyBpbiB0aGUgW01ha2VmaWxlXSguL01ha2VmaWxlKS4KNi4gV2UgYXV0b21hdGljYWxseSBwdWJsaXNoIHR3byBzZXRzIG9mIEFQSSBzcGVjaWZpY2F0aW9ucyBmcm9tIHRoZSBzYW1lIHNvdXJjZSBmaWxlczoKICAgMS4gKnB1YmxpYyogZG9jdW1lbnRhdGlvbiB0aGF0IG9ubHkgZGVzY3JpYmVzIEFQSXMgdXNlZnVsIHRvIGNsaWVudCBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzLgogICAyLiAqcHJpdmF0ZS9mdWxsKiBkb2N1bWVudGF0aW9uIHRoYXQgZGVzY3JpYmVzIGFsbCBBUElzLCBldmVuIG9uZXMgdGhhdCBhcmUgb25seSBhY2Nlc3NpYmxlIHRvIFRpZGVwb29sIHRlYW0gaW50ZXJuYWwgdXNlLgoKVGhlIHByZWZlcnJlZCB3b3JrZmxvdyBpcyB0byBlZGl0IHRoZXNlIGZpbGVzIG9mZmxpbmUsIHRoZW4gY29tbWl0IHRoZW0gdG8gR2l0SHViIHdoaWNoIGF1dG9tYXRpY2FsbHkgcHVzaGVzIHVwZGF0ZXMgaW50byBTdG9wbGlnaHQsIGluY2x1ZGluZyB3b3JrIGJyYW5jaGVzIHRob3VnaCB0aGV5IGFyZSBub3QgdmlzaWJsZSB0byBwZW9wbGUgb3V0c2lkZSBvZiBUaWRlcG9vbC4gSGVyZSBhcmUgdGhlIHdvcmtmbG93IGRldGFpbHM6CgoxLiBDbG9uZSB0aGlzIHJlcG9zaXRvcnkgYW5kIGluc3RhbGwgdGhlIHZhbGlkYXRpb24gJiBwdWJsaXNoaW5nIHRvb2xzLiBZb3Ugb25seSBuZWVkIHRvIHRvIHRoaXMgb25jZS4KCiAgICBgYGBzaGVsbAogICAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS90aWRlcG9vbC1vcmcvVGlkZXBvb2xBcGkuZ2l0CiAgICBjZCBUaWRlcG9vbEFwaQogICAgbWFrZSBpbnN0YWxsX3Rvb2xzCiAgICBgYGAKCjIuIENyZWF0ZSBhICp3b3JrIGJyYW5jaCogZm9yIHlvdXIgZWRpdHM6CgogICAgYGBgc2hlbGwKICAgIGdpdCBjaGVja291dCBtYXN0ZXIKICAgIGdpdCBwdWxsCiAgICBnaXQgY2hlY2tvdXQgbWFzdGVyIC1iIHticmFuY2h9CiAgICBgYGAKCjMuIEVkaXQgYW5kIHByZXZpZXcgdGhlIGZpbGVzIG9mZmxpbmUgdXNpbmcgYW55IG9mIHRoZSBbdG9vbHNdKCNlZGl0aW5nLXRvb2xzKSBsaXN0ZWQgYmVsb3cuCjQuIFZhbGlkYXRlIHlvdXIgY2hhbmdlcyBsb2NhbGx5OgoKICAgIGBgYHNoZWxsCiAgICBtYWtlIGNoZWNrCiAgICBtYWtlIHByZXBhcmUKICAgIGBgYAoKNS4gQ29tbWl0IHlvdXIgY2hhbmdlcyB0byB0aGUgd29yayBicmFuY2ggYW5kIHB1c2ggdG8gR2l0SHViLiBUaGlzIHdpbGwgYXV0b21hdGljYWxseSBraWNrIG9mZiBhIFtHaXRIdWIgQWN0aW9uXSguZ2l0aHViL3dvcmtmbG93cy8pIHRoYXQgY2hlY2tzICYgcHVibGlzaGVzIHRoZSBuZXcgKGRyYWZ0KSBkb2N1bWVudGF0aW9uIGludG8gYSBicmFuY2ggaW4gU3RvcGxpZ2h0LgoKICAgIGBgYHNoZWxsCiAgICBnaXQgYWRkIHtmaWxlKHMpfQogICAgZ2l0IGNvbW1pdCAtbSAie2Rlc2NyaXB0aW9ufSIKICAgIGdpdCBjaGVja291dCBtYXN0ZXIKICAgIGdpdCBwdWxsCiAgICBnaXQgY2hlY2tvdXQge2JyYW5jaH0KICAgIGdpdCBtZXJnZSAtLW5vLWZmIG1hc3RlcgogICAgZ2l0IHB1c2ggLXUgb3JpZ2luIEhFQUQKICAgIGBgYAoKNi4gUG9zdCBhIHB1bGwgcmVxdWVzdCAoUFIpIHRvIHJldmlldyB0aGUgY2hhbmdlcwo3LiBPbmNlIHRoZSBQUiBpcyBhcHByb3ZlZCwgbWVyZ2UgdG8gbWFzdGVyIHdoaWNoIHdpbGwgYWdhaW4gYXV0b21hdGljYWxseSB1cGRhdGUgdGhlIG1hc3RlciBicmFuY2ggaW4gdGhlIFN0b3BsaWdodCBzaXRlLgoKSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBwdWJsaXNoIHlvdXIgd29yayBicmFuY2ggdG8gU3RvcGxpZ2h0IGZyb20geW91ciBsb2NhbCBmb2xkZXIuIFlvdSB3aWxsIG5lZWQgdGhlIEFQSSB0b2tlbnMgZm9yIFN0b3BsaWdodCBzdG9yZWQgaW4gCgojIyMgQWRkaW5nIE5ldyBTcGVjaWZpY2F0aW9uIEZpbGVzCgpJZiB5b3UgYWRkIGEgYnJhbmQgbmV3IHRvcC1sZXZlbCBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uIGZpbGUsIGl0IG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSBbYHRlbXBsYXRlcy9vcGVuYXBpLW1lcmdlLmpzb25uZXRgXSguL3RlbXBsYXRlcy9vcGVuYXBpLW1lcmdlLmpzb25uZXQpIHRlbXBsYXRlIGZpbGUgc28gdGhhdCBpdCBnZXRzIGluY2x1ZGVkIGluIHRoZSBjb21iaW5lZCBzcGVjaWZpY2F0aW9uIGZpbGUgdGhhdCBpcyBwdWJsaXNoZWQgaW4gU3RvcGxpZ2h0LgoKIyMgUHVibGlzaGluZyBUb2tlbnMKClRvIHB1Ymxpc2ggZG9jdW1lbnRhdGlvbiBhbmQgQVBJIHNwZWNpZmljYXRpb25zIGxvY2FsbHksIHlvdSB3aWxsIG5lZWQgdGhlIGNvcnJlc3BvbmRpbmcgQVBJIHRva2VuIGZyb20gU3RvcGxpZ2h0LiBUaG9zZSBBUEkgdG9rZW5zIGFyZSBub3QgZGlyZWN0bHkgZm91bmQgaW4gdGhlIFN0b3BsaWdodCBwcm9qZWN0IHNldHRpbmdzIFVJLCBidXQgdGhleSBhcmUgZG9jdW1lbnRlZCBbaGVyZV0oaHR0cHM6Ly9kb2NzLnN0b3BsaWdodC5pby9kb2NzL3BsYXRmb3JtL2Y3NmM4NDI0MDI0NGYtcHVibGlzaC13aXRoLXRoZS1zdG9wbGlnaHQtY2xpKSBvciBpZiB0aGF0IGxpbmsgbm8gbG9uZ2VyIHdvcmtzLCBbR29vZ2xlIGZvciBpdF0oaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT1QdWJsaXNoK3dpdGgrU3RvcGxpZ2h0K0NMSSkuCgpUaGUgdG9rZW5zIGFyZSBjb25maWd1cmVkIGFzIHNlY3JldHMgZm9yIHRoZSBHaXRIdWIgQWN0aW9ucyBhbmQgY2FuIGJlIGZvdW5kIGhlcmU6CgoqIFRva2VuIGZvciBbUHVibGljIEFQSV0oaHR0cHM6Ly90aWRlcG9vbC5zdG9wbGlnaHQuaW8vc2V0dGluZ3MvdGlkZXBvb2wtYXBpL2F1dG9tYXRpb24pCiogVG9rZW4gZm9yIFtGdWxsIEFQSV0oaHR0cHM6Ly90aWRlcG9vbC5zdG9wbGlnaHQuaW8vc2V0dGluZ3MvdGlkZXBvb2wtZnVsbC1hcGkvYXV0b21hdGlvbikKCiMjIExhbmRpbmcgUGFnZQoKVGhlIGNvbnRlbnRzIGluIFRpZGVwb29sJ3Mgb3JnYW5pemF0aW9uIFtob21lIHBhZ2VdKGh0dHBzOi8vdGlkZXBvb2wuc3RvcGxpZ2h0LmlvLykgaW4gU3RvcGxpZ2h0IGNvbWVzIGZyb20gYSBmaWxlIGluIHRoaXMgcmVwb3NpdG9yeS4gVG8gdXBkYXRlIGl0OgoKMS4gRWRpdCB0aGUgW2xhbmRpbmcubWRdKC4vbGFuZGluZy5tZCkgTWFya2Rvd24gZmlsZS4KMi4gQ29tbWl0IHRoZSBjaGFuZ2VzICYgcHVzaCB0byBHaXRIdWIsIGZvciBwb3N0ZXJpdHkuCjMuIENvcHkgJiBwYXN0ZSB0aGUgZmlsZSdzIE1hcmtkb3duIGNvbnRlbnRzIGludG8gdGhlIFtTZXR0aW5nc10oaHR0cHM6Ly90aWRlcG9vbC5zdG9wbGlnaHQuaW8vYWRtaW4vc2V0dGluZ3MpIHBhZ2UuIFRoaXMgcmVxdWlyZXMgYWRtaW4gcGVybWlzc2lvbnMgaW4gU3RvcGxpZ2h0LgoKIVtVcGRhdGluZyBMYW5kaW5nIFBhZ2VdKC4vYXNzZXRzL2ltYWdlcy91cGRhdGluZy1sYW5kaW5nLXBhZ2UucG5nKQoKIyMgRWRpdGluZyBUb29scwoKMS4gRnJlZSBbU3RvcGxpZ2h0IFN0dWRpb10oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vc3R1ZGlvLykuIFRoaXMgaXMgdGhlIHJlY29tbWVuZGVkIHRvb2wgc2luY2UgaXQgaXMgdGhlIGNsb3Nlc3QgcmVuZGVyaW5nIHRvIHRoZSBwdWJsaXNoaW5nIHNpdGUuCjIuIEZyZWUgTWljcm9zb2Z0IFtWaXN1YWwgU3R1ZGlvIENvZGVdKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tLyksIHdpdGggcGx1Zy1pbnMgZm9yIHZhbGlkYXRpbmcgYW5kIHJlbmRlcmluZyBPcGVuQVBJIHYzIHNwZWNpZmljYXRpb25zIGFuZCBNYXJrZG93biBkb2N1bWVudGF0aW9uLgozLiBNYW55IG90aGVyIElERXMgb2ZmZXIgc2ltaWxhciBwbHVnLWlucy4KCiMjIE90aGVyIFRvb2xzCgpUaGUgW01ha2VmaWxlXSguL01ha2VmaWxlKSBtYWtlcyB1c2Ugb2Ygc2V2ZXJhbCBDTEkgdG9vbHMgdG8gY2hlY2ssIHByZXBhcmUsIGFuZCBwdWJsaXNoIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBzcGVjaWZpY2F0aW9ucy4KWW91IGNhbiBpbnN0YWxsIHRoZSB0b29scyBieSBleGVjdXRpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2hlbGwKbWFrZSBpbnN0YWxsX3Rvb2xzCmBgYAoKWW91IGNhbiBjaGVjayBpZiB5b3UgaGF2ZSBhbGwgdGhlIHRvb2xzIGluc3RhbGxlZCBieSBleGVjdXRpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgc2hlbGwKbWFrZSBjaGVja190b29scwpgYGAKCnwgVG9vbCB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IFttYXJrZG93bmxpbnRdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtkb3dubGludCkgfCBWYWxpZGF0ZXMgTWFya2Rvd24gZmlsZXMuIHwKfCBbbWFya2Rvd24tbGluay1jaGVja10oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2Rvd24tbGluay1jaGVjaykgfCBWYWxpZGF0ZXMgaHlwZXJsaW5rcyBpbiBNYXJrZG93biBmaWxlcy4gfAp8IFtzcGVjdHJhbF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN0b3BsaWdodC9zcGVjdHJhbCkgfCBWYWxpZGF0ZXMgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbiBmaWxlcy4gfAp8IFtzd2FnZ2VyLWNsaV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3dhZ2dlci1jbGkpIHwgVmFsaWRhdGVzIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gZmlsZXMuIEFsc28gYnVuZGxlcyBtdWx0aXBsZSBPQVMzIGZpbGVzIGludG8gYSBzaW5nbGUgZmlsZSwgdGhhdCBpcyByZXF1aXJlZCBieSBzb21lIGRvd25zdHJlYW0gdXNlLWNhc2VzLiB8CnwgW3JlZG9jbHldKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jbHktY2xpKSB8IFZhbGlkYXRlcyBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uIGZpbGVzLiBBbHNvIGJ1bmRsZXMgbXVsdGlwbGUgT0FTMyBmaWxlcyBpbnRvIGEgc2luZ2xlIGZpbGUsIHRoYXQgaXMgcmVxdWlyZWQgYnkgc29tZSBkb3duc3RyZWFtIHVzZS1jYXNlcy4gfAp8IFtqc29ubmV0XShodHRwczovL2pzb25uZXQub3JnLykgfCBEYXRhIHRlbXBsYXRpbmcgdG9vbC4gVXNlZCBoZXJlIHRvIGdlbmVyYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIGBvcGVuYXBpLW1lcmdlLWNsaWAuIHwKfCBbb3BlbmFwaS1tZXJnZS1jbGldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktbWVyZ2UtY2xpKSB8IE1lcmdlcyBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uIGZpbGVzIGludG8gc2luZ2xlIGZpbGUuIHwKfCBbc3RvcGxpZ2h0XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac3RvcGxpZ2h0L2NsaSkgfCBQdWJsaXNoZXMgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbnMgYW5kIGRvY3VtZW50YXRpb24gaW4gTWFya2Rvd24gZm9ybWF0IHRvIFN0b3BsaWdodCdzIHdlYiBzaXRlLiB8CnwgW29hcGktY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuKSB8IEdlbmVyYXRlcyBzZXJ2ZXIgYW5kIGNsaWVudCBzdHViIGNvZGUgZnJvbSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9ucy4gVXNlZCBjdXJyZW50bHkgdG8gZ2VuZXJhdGUgdGhlIFtgY2xpbmljYF0oaHR0cHM6Ly9naXRodWIuY29tL3RpZGVwb29sLW9yZy9jbGluaWMpIHNlcnZpY2UgY29kZS4gfAo= readmeEtag: '"029b1583eff736ae64b39dddba981b21ef2c6ed0"' readmeLastModified: Fri, 02 Aug 2024 19:08:45 GMT repositoryId: 239433889 description: >- Tidepool APIs documented with OpenAPI v3, for schema validation and client and server code generation. created: '2020-02-10T05:20:54Z' updated: '2024-08-28T23:47:53Z' language: Makefile archived: false stars: 3 watchers: 14 forks: 1 owner: tidepool-org logo: https://avatars.githubusercontent.com/u/4390820?v=4 license: BSD-2-Clause repoEtag: '"859e41c5ddb32fb0ce003c0d7f156652ea25ca7ff395eab18469dcbd2012f0fc"' repoLastModified: Wed, 28 Aug 2024 23:47:53 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/hamedfathi/openapiextended v3: true repositoryMetadata: base64Readme: >- PiBbIUlNUE9SVEFOVF0gCj4gSW50cm9kdWNpbmcgKipIYW1lZFN0YWNrKiohIEZvciBhbGwgbXkgbGF0ZXN0IGxpYnJhcmllcywgdmlzaXQ6IFtFeHBsb3JlIEhhbWVkU3RhY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9IYW1lZFN0YWNrKS4gUmVwbGFjZW1lbnRzIGFuZCB1cGRhdGVzIGFyZSBhdmFpbGFibGUgYXQgdGhlIGxpbmsuIFRoYW5rIHlvdSBmb3IgeW91ciBzdXBwb3J0ISBUaGUgbmV3IHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5IGlzIGFjY2Vzc2libGUgdmlhIFtIYW1lZFN0YWNrLk9wZW5BcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9IYW1lZFN0YWNrL0hhbWVkU3RhY2suT3BlbkFwaSkKLS0tCgoKIVtvcGVuYXBpXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS84NDE4NzAwLzE1OTE3NjQ0MS1jOGJlZWZiMy1kOWQ1LTQyYmYtYWZjMi0zNDE3MGViOWNlMGUucG5nKQo= readmeEtag: '"9b611f497a9b3e99130e404154d01d0e63408edb"' readmeLastModified: Sun, 17 Mar 2024 17:48:55 GMT repositoryId: 471376082 description: A bunch of useful extension methods for Microsoft.OpenApi. created: '2022-03-18T13:20:38Z' updated: '2023-03-04T18:02:44Z' language: C# archived: false stars: 2 watchers: 3 forks: 0 owner: HamedFathi logo: https://avatars.githubusercontent.com/u/8418700?v=4 license: MIT repoEtag: '"a180dce948945e348be7faec5780acf741d01c1f8143dfcd34be4c113b948c87"' repoLastModified: Sat, 04 Mar 2023 18:02:44 GMT foundInMaster: true category: - Low-level Tooling - Testing id: 110b16e8fdd70bcfda4fab90de832204 - source: openapi3 tags repository: https://github.com/x1n13y84issmd42/oasis v3: true repositoryMetadata: base64Readme: >- IyBPQVNJUwpPcGVuIEFQSSBTcGVjaWZpY2F0aW9uIEludGVsbGlnZW5jZSBTZXJ2aWNlcy4gT3IgaW4gYSBsZXNzIGZhbmN5IHdheSwgYSB0b29sIHRvIHRlc3QgQVBJcyB3aGljaCB1c2VzIE9BUy9Td2FnZ2VyIHNwZWMgZmlsZXMgYXMgYSB0ZXN0IHN1aXRlLgoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5jb20veDFuMTN5ODRpc3NtZDQyL29hc2lzLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kuY29tL3gxbjEzeTg0aXNzbWQ0Mi9vYXNpcykKPGEgaHJlZj0iaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL3gxbjEzeTg0aXNzbWQ0Mi9vYXNpcy9tYWludGFpbmFiaWxpdHkiPjxpbWcgc3JjPSJodHRwczovL2FwaS5jb2RlY2xpbWF0ZS5jb20vdjEvYmFkZ2VzL2E2MzQ4MjUzMDYzZTE3OWJhNDRmL21haW50YWluYWJpbGl0eSIgLz48L2E+CjxhIGhyZWY9Imh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi94MW4xM3k4NGlzc21kNDIvb2FzaXMvdGVzdF9jb3ZlcmFnZSI+PGltZyBzcmM9Imh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvYTYzNDgyNTMwNjNlMTc5YmE0NGYvdGVzdF9jb3ZlcmFnZSIgLz48L2E+ClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS94MW4xM3k4NGlzc21kNDIvb2FzaXMpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20veDFuMTN5ODRpc3NtZDQyL29hc2lzKQoKV29yayBpbiBwcm9ncmVzcy4KCi0gW1VzYWdlXSgjdXNhZ2UpCiAgLSBbTWFudWFsIG1vZGVdKCNtYW51YWwtbW9kZSkKICAtIFtTY3JpcHQgbW9kZV0oI3NjcmlwdC1tb2RlKQoKIyMgVXNhZ2UKT2FzaXMgY2FuIGJlIHVzZWQgZWl0aGVyIGluIG1hbnVhbCBtb2RlLCB3aGljaCBhbGxvd3MgdG8gdGVzdCBzaW5nbGUgb3BlcmF0aW9ucywgb3IgaW4gc2NyaXB0IG1vZGUsIHdoaWNoIGlzIGRlc2lnbmVkIHRvIHRlc3QgY29tcGxleCBpbnRlcmFjdGlvbiBzY2VuYXJpb3MsIGludm9sdmluZyBtdWx0aXBsZSBlbmRwb2ludHMgYW5kIHJldXNpbmcgZGF0YSBhY3Jvc3MgdGhlbS4KCiMjIyDimJHvuI8gTWFudWFsIG1vZGUKYHJ1bi9vYXNpcyBmcm9tIHNwZWMvcGV0c3RvcmUueWFtbCB0ZXN0IGZpbmRQZXRzQnlTdGF0dXNgCgpPYXNpcyB1c2VzIHRoZSBleGFtcGxlIHZhbHVlIGZvciB0aGUgYHN0YXR1c2AgcXVlcnkgcGFyYW1ldGVyIGZvciB0aGUgYGZpbmRQZXRzQnlTdGF0dXNgIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBzcGVjIGZpbGUuCgpZb3UgY2FuIG92ZXJyaWRlIGFueSBwYXJhbWV0ZXIgZnJvbSBDTEk6CgpgcnVuL29hc2lzIGZyb20gc3BlYy9wZXRzdG9yZS55YW1sIHRlc3QgZ2V0UGV0QnlJZCB1c2UgcGF0aCBwYXJhbWV0ZXJzIHBldElkPTEwYAoKSW5jcmVhc2UgbG9nZ2luZyB2ZXJib3NpdHkgdG8gc2VlIGhvdyBwYXJhbWV0ZXJzIGFyZSB1c2VkLgoKYHJ1bi9vYXNpcyBmcm9tIHNwZWMvcGV0c3RvcmUueWFtbCB0ZXN0IGdldFBldEJ5SWQgbG9nIGF0IGxldmVsIDYgdXNlIHBhdGggcGFyYW1ldGVycyBwZXRJZD0xMGAKCkZvciBhbiBleGFtcGxlIG9mIGVycm9yIHJlcG9ydGluZyB1c2UgdGhlIG1hbGZvcm1lZCBzcGVjIGZpbGUgd2hpY2ggZG9lc24ndCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgQVBJIHJlc3BvbnNlczoKCmBydW4vb2FzaXMgZnJvbSBzcGVjL2Vycm9ycy55YW1sIHRlc3QgdGFza0xpc3QgbG9nIGF0IGxldmVsIDZgCgpgcnVuL29hc2lzIGZyb20gc3BlYy9lcnJvcnMueWFtbCB0ZXN0IGNvbmZpZ1R5cGVzIGxvZyBhdCBsZXZlbCA2YAoK8J+TliBbTGVhcm4gbW9yZSBhYm91dCBDTEldKGRvYy9DTEkubWQpCgrwn5OWIFtMZWFybiBtb3JlIGFib3V0IG9wZXJhdGlvbiBwYXJhbWV0ZXJzXShkb2MvUGFyYW1ldGVycy5tZCkKCiMjIyDwn5SAIFNjcmlwdCBtb2RlCkZvciBjb21wbGV4IHNjZW5hcmlvcyBpbnZvbHZpbmcgbXVsdGlwbGUgZW5kcG9pbnRzIGFuZCBkYXRhIHJldXNlIGFjcm9zcyB0aGVtIHRoZXJlIGlzIGEgc2NyaXB0IG1vZGU6CgpgcnVuL29hc2lzIGV4ZWN1dGUgc2NyaXB0L3BldHN0b3JlLnlhbWxgCmBydW4vb2FzaXMgZXhlY3V0ZSBzY3JpcHQvbnV4ZW8ueWFtbGAKClNjcmlwdCBpcyBhIGdyYXBoIG9mIGRlcGVuZGVudCBvcGVyYXRpb25zLiBDeWNsZXMgYXJlIG5vdCBhbGxvd2VkOgoKYHJ1bi9vYXNpcyBleGVjdXRlIHNjcmlwdC9jeWNsZS55YW1sYAoK8J+TliBbTGVhcm4gbW9yZSBhYm91dCBzY3JpcHRzXShkb2MvU2NyaXB0Lm1kKQoKIyMgUmVzb3VyY2VzCltPcGVuQVBJIFNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kI3NlY3VyaXR5U2NoZW1lT2JqZWN0KQoKW0hUVFAgQXV0aCBSZWdpc3RyeV0oaHR0cDovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9odHRwLWF1dGhzY2hlbWVzL2h0dHAtYXV0aHNjaGVtZXMueGh0bWwpCgpbU3RvcGxpZ2h0IE9BUyBFZGl0b3JdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL3Avc3R1ZGlvL3NsL18vNmM1ZmFvZnkpCgpbUmV5ZXNvZnQgQVBJIFBsYXlncm91bmRdKGh0dHBzOi8vanNvbmFwaXBsYXlncm91bmQucmV5ZXNvZnQuY29tLykKCltOdXhlbyBBUEkgUGxheWdyb3VuZF0oaHR0cHM6Ly9udXhlby5naXRodWIuaW8vYXBpLXBsYXlncm91bmQvIy9yZXNvdXJjZXMpCgpbQm9va2VyIEFQSSBQbGF5Z3JvdW5kXShodHRwczovL3Jlc3RmdWwtYm9va2VyLmhlcm9rdWFwcC5jb20vYXBpZG9jL2luZGV4Lmh0bWwpCgpbT2FzaXMgVjJdKGh0dHBzOi8vZ2l0aHViLmNvbS94MW4xM3k4NGlzc21kNDIvb2FzaXMvdHJlZS9jODhjOWExNWUwYTA1YWJiZjczMmY3ZmQ5NWFhMzBmN2NmNDk0N2ZkKQo= readmeEtag: '"7f8c637a8454059f8380bcf780fdc047f5fd7805"' readmeLastModified: Fri, 14 Jan 2022 11:17:29 GMT repositoryId: 199255832 description: 🔀🆗☑️ Automated API testing from Swagger/Open API specifications. created: '2019-07-28T07:20:06Z' updated: '2023-08-08T12:48:41Z' language: Go archived: false stars: 2 watchers: 2 forks: 1 owner: x1n13y84issmd42 logo: https://avatars.githubusercontent.com/u/2878036?v=4 license: GPL-3.0 repoEtag: '"68228b603353f2f5c5bbe94a8c2b3650ea52f47639a30dfa7e30a0885b9d9f15"' repoLastModified: Tue, 08 Aug 2023 12:48:41 GMT foundInMaster: true category: Converters id: c874538e827425f5331ba6bf670d35b1 - source: openapi3 tags repository: https://github.com/unionj-cloud/go-doudou-openapi-ui v3: true id: 066c6ad6c3382351e6ab1b1493a4e4b7 repositoryMetadata: base64Readme: >- IyBnby1kb3Vkb3Utb3BlbmFwaS11aQpUaGlzIGlzIGFuIE9wZW5BUEkzLjAgc3BlY2lmaWNhdGlvbiBVSSBwcm9qZWN0IHdyaXR0ZW4gYnkgdnVlanMrdHlwZXNjcmlwdCBzdGFjayBpbnNwaXJlZCBieSBbcmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKSAuIEN1cnJlbnRseSwgaXQgc3VwcG9ydHMganNvbiBmb3JtYXQgc3BlYyBvbmx5LCB5YW1sIHN1cHBvcnQgaXMgY29taW5nIHNvb24uCgohW2V4YW1wbGVdKC4vZXhhbXBsZS5naWYpCiMjIFVzYWdlCkNsb25lIHRoZSByZXBvLgpgYGAKZ2l0IGNsb25lIGdpdEBnaXRodWIuY29tOnVuaW9uai1jbG91ZC9nby1kb3Vkb3Utb3BlbmFwaS11aS5naXQKYGBgCkluc3RhbGwgZGVwZW5kZW5jaWVzIGFuZCBzdGFydCB0aGUgcHJvamVjdCwgdGhlbiBicm93c2VyIHdpbGwgYmUgb3BlbmVkIGF1dG9tYXRpY2FsbHkuCmBgYHNoZWxsCnlhcm4gaW5zdGFsbCAmJiB5YXJuIHNlcnZlCmBgYAoKQWRkIGA/ZG9jVXJsPSR7T0FTM19TUEVDX0xJTkt9YCB0byBgaHR0cDovL2xvY2FsaG9zdDo5NTI3LyMvaW5kZXhgIGFuZCBjbGljayBgZW50ZXJgLCBvbmxpbmUgZG9jdW1lbnRhdGlvbiB3aWxsIGRpc3BsYXkuICAKCk5PVEU6IGAke09BUzNfU1BFQ19MSU5LfWAgbXVzdCBzdXBwb3J0IGNvcnMgdmlzaXQsIGZvciBleGFtcGxlOiBgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uYAoKIyMgU2NyZWVuc2hvdAohW3NjcmVlbnNob3RdKC4vc2NyZWVuc2hvdC5wbmcpCiFbc2NyZWVuc2hvdDJdKC4vc2NyZWVuc2hvdDIucG5nKQohW3NjcmVlbnNob3QzXSguL3NjcmVlbnNob3QzLnBuZykK readmeEtag: '"db0286fb915f3b25a93ad40199cb625d38560cb7"' readmeLastModified: Sun, 20 Feb 2022 11:01:41 GMT repositoryId: 392144026 description: OpenAPI3 Online Documentation UI created: '2021-08-03T01:12:59Z' updated: '2023-03-01T02:04:02Z' language: Vue archived: false stars: 2 watchers: 1 forks: 3 owner: unionj-cloud logo: https://avatars.githubusercontent.com/u/79033021?v=4 license: MIT repoEtag: '"6892e7b12c66cb54eecddf2251316f7f52f6c6fe2ac76bbaec8d3c8dbd63b97f"' repoLastModified: Wed, 01 Mar 2023 02:04:02 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/n1215/openapi-http-foundation-validator v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWh0dHAtZm91bmRhdGlvbi12YWxpZGF0b3IKT3BlbkFQSSh2MykgVmFsaWRhdG9ycyBmb3IgU3ltZm9ueSBodHRwLWZvdW5kYXRpb24sIHVzaW5nIGBsZWFndWUvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcmAgYW5kIGBzeW1mb255L3Bzci1odHRwLW1lc3NhZ2UtYnJpZGdlYC4KCiMjIFJlcXVpcmVtZW50cwotIFBIUCA+PSA4LjEKCiMjIEluc3RhbGxhdGlvbgoKYGBgc2hlbGwKY29tcG9zZXIgcmVxdWlyZSBuMTIxNS9vcGVuYXBpLWh0dHAtZm91bmRhdGlvbi12YWxpZGF0b3IKYGBgCgojIyBVc2FnZQoKIyMjIDEuIGluc3RhbGwgUFNSLTE3IEhUVFAgRmFjdG9yeSBpbXBsZW1lbnRhdGlvbi4KLSBZb3UgY2FuIHVzZSBhbnkgaW1wbGVtZW50YXRpb24gb2YgUFNSLTE3IEhUVFAgRmFjdG9yeS4KICAtIGV4LiBgbnlob2xtL3BzcjdgCgpgYGBzaGVsbApjb21wb3NlciByZXF1aXJlIG55aG9sbS9wc3I3CmBgYAoKIyMjIDIuIGNyZWF0ZSBodHRwIG1lc3NhZ2UgZmFjdG9yeQoKYGBgcGhwCiRwc3IxN0ZhY3RvcnkgPSBuZXcgXE55aG9sbVxQc3I3XEZhY3RvcnlcUHNyMTdGYWN0b3J5KCk7Ci8qKiBAdmFyIFxTeW1mb255XEJyaWRnZVxQc3JIdHRwTWVzc2FnZVxIdHRwTWVzc2FnZUZhY3RvcnlJbnRlcmZhY2UgJGh0dHBNZXNzYWdlRmFjdG9yeSAqLwokaHR0cE1lc3NhZ2VGYWN0b3J5ID0gbmV3IFxTeW1mb255XEJyaWRnZVxQc3JIdHRwTWVzc2FnZVxGYWN0b3J5XFBzckh0dHBGYWN0b3J5KAogICAgc2VydmVyUmVxdWVzdEZhY3Rvcnk6ICRwc3IxN0ZhY3RvcnksCiAgICBzdHJlYW1GYWN0b3J5OiAkcHNyMTdGYWN0b3J5LAogICAgdXBsb2FkZWRGaWxlRmFjdG9yeTogJHBzcjE3RmFjdG9yeSwKICAgIHJlc3BvbnNlRmFjdG9yeTogJHBzcjE3RmFjdG9yeQopOwpgYGAKCiMjIyAzLiBjcmVhdGUgdmFsaWRhdG9yIGJ1aWxkZXIKCi0gQSBidWlsZGVyIGNhbiBiZSBjcmVhdGVkIGZyb20gWUFNTCBmaWxlLCBZQU1MIHN0cmluZywgSlNPTiBmaWxlLCBvciBKU09OIHN0cmluZy4KLSBZb3UgY2FuIHVzZSBQU1ItMTYgc2ltcGxlIGNhY2hlIGluc3RlYWQgb2YgUFNSLTYgQ2FjaGUuCgojIyMjIGV4YW1wbGUxCmBgYHBocAovKiogQHZhciBcTjEyMTVcT3BlbkFwaVZhbGlkYXRpb25cSHR0cEZvdW5kYXRpb25cVmFsaWRhdG9yQnVpbGRlciAkdmFsaWRhdG9yQnVpbGRlciAqLwokdmFsaWRhdG9yQnVpbGRlciA9IChuZXcgXE4xMjE1XE9wZW5BcGlWYWxpZGF0aW9uXEh0dHBGb3VuZGF0aW9uXFZhbGlkYXRvckJ1aWxkZXIoJHBzcjE3RmFjdG9yeSkpCiAgICAtPmZyb21ZYW1sRmlsZSgnL3BhdGgvdG8vb3BlbmFwaS55YW1sJykKICAgIC0+c2V0Q2FjaGUobmV3IFlvdXJQc3I2Q2FjaGUoKSwgODY0MDApOwpgYGAKCgojIyMjIGV4YW1wbGUyCmBgYHBocAovKiogQHZhciBcTjEyMTVcT3BlbkFwaVZhbGlkYXRpb25cSHR0cEZvdW5kYXRpb25cVmFsaWRhdG9yQnVpbGRlciAkdmFsaWRhdG9yQnVpbGRlciAqLwokdmFsaWRhdG9yQnVpbGRlciA9IChuZXcgXE4xMjE1XE9wZW5BcGlWYWxpZGF0aW9uXEh0dHBGb3VuZGF0aW9uXFZhbGlkYXRvckJ1aWxkZXIoJHBzcjE3RmFjdG9yeSkpCiAgICAtPmZyb21Kc29uRmlsZSgnL3BhdGgvdG8vb3BlbmFwaS5qc29uJykKICAgIC0+c2V0U2ltcGxlQ2FjaGUobmV3IFlvdXJQc3IxNkNhY2hlKCksIDM2MDApOwpgYGAKCiMjIyA0LiBnZXQgdmFsaWRhdG9ycyBmcm9tIGJ1aWxkZXIKCmBgYHBocAovKiogQHZhciBcTjEyMTVcT3BlbkFwaVZhbGlkYXRpb25cSHR0cEZvdW5kYXRpb25cVmFsaWRhdG9ycyAkdmFsaWRhdG9ycyAqLwokdmFsaWRhdG9ycyA9ICR2YWxpZGF0b3JCdWlsZGVyLT5nZXRWYWxpZGF0b3JzKCk7CmBgYAoKIyMjIDUuIHZhbGlkYXRlIHJlcXVlc3QKCmBgYHBocAovKiogQHZhciBcU3ltZm9ueVxDb21wb25lbnRcSHR0cEZvdW5kYXRpb25cUmVxdWVzdCAkcmVxdWVzdCAqLwovKiogQHZhciBcTjEyMTVcT3BlbkFwaVZhbGlkYXRpb25cSHR0cEZvdW5kYXRpb25cUmVxdWVzdFZhbGlkYXRvckludGVyZmFjZSAkcmVxdWVzdFZhbGlkYXRvciAqLwokcmVxdWVzdFZhbGlkYXRvciA9ICR2YWxpZGF0b3JzLT5nZXRSZXF1ZXN0VmFsaWRhdG9yKCk7CiRyZXF1ZXN0VmFsaWRhdG9yLT52YWxpZGF0ZSgkcmVxdWVzdCk7CmBgYAoKIyMjIDYuIHZhbGlkYXRlIHJlc3BvbnNlCgpgYGBwaHAKLyoqIEB2YXIgXFN5bWZvbnlcQ29tcG9uZW50XEh0dHBGb3VuZGF0aW9uXFJlc3BvbnNlICRyZXNwb25zZSAqLwovKiogQHZhciBcTjEyMTVcT3BlbkFwaVZhbGlkYXRpb25cSHR0cEZvdW5kYXRpb25cUmVzcG9uc2VWYWxpZGF0b3JJbnRlcmZhY2UgJHJlc3BvbnNlVmFsaWRhdG9yICovCiRyZXNwb25zZVZhbGlkYXRvciA9ICR2YWxpZGF0b3JzLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpOwokcmVzcG9uc2VWYWxpZGF0b3ItPnZhbGlkYXRlKAogICAgbmV3IFxOMTIxNVxPcGVuQXBpVmFsaWRhdGlvblxPcGVyYXRpb25BZGRyZXNzKCcvcGF0aCcsICdHRVQnKSwKICAgICRyZXNwb25zZQopOwpgYGAKCiMjIFVzYWdlIGZvciBMYXJhdmVsCnNlZSBodHRwczovL2dpdGh1Yi5jb20vbjEyMTUvb3BlbmFwaS1sYXJhdmVsLXZhbGlkYXRvcgo= readmeEtag: '"92247ff9ffda8c419373a62499a32d5de74e66a2"' readmeLastModified: Fri, 22 Sep 2023 12:59:36 GMT repositoryId: 404792127 description: >- OpenAPI(v3) Validators for Symfony http-foundation, using `league/openapi-psr7-validator` and `symfony/psr-http-message-bridge`. created: '2021-09-09T16:22:40Z' updated: '2024-01-03T07:29:13Z' language: PHP archived: false stars: 2 watchers: 1 forks: 0 owner: n1215 logo: https://avatars.githubusercontent.com/u/2157593?v=4 license: MIT repoEtag: '"185b3507617bb3232b712d9d61a200d1e47beb7aa7c26f278ec067c79c54ccf5"' repoLastModified: Wed, 03 Jan 2024 07:29:13 GMT foundInMaster: true category: Data Validators id: e5ae30ae45d597e93d4c0950e4132b19 - source: openapi3 tags repository: https://github.com/clickermonkey/rez v3: true id: 0ab51b0a493219a5638555ecc871cd31 repositoryMetadata: base64Readme: >- IyByZXoKUkVTVCAoZWFzeSkgZnJhbWV3b3JrIGluIEdvIHdpdGggb3V0IG9mIHRoZSBib3ggT3BlbkFQSSBnZW5lcmF0aW9uLCB2YWxpZGF0aW9uLCBkZXBlbmRlbmN5IGluamVjdGlvbiwgYW5kIG11Y2ggbW9yZS4gCgotIFtEZXBlbmRlbmN5IEluamVjdGlvbl0oI2RlcGVuZGVuY3ktaW5qZWN0aW9uKSBIb3cgdmFsdWVzIGFyZSBzZW50IHRvIG1pZGRsZXdhcmUgYW5kIGVuZHBvaW50IGZ1bmN0aW9ucy4KLSBbUm91dGVyXSgjcm91dGVyKSBEZWZpbmluZyB0aGUgcm91dGVzLCBtaWRkbHdhcmUsICYgZG9jdW1lbnRhdGlvbi4KLSBbTWlkZGxld2FyZV0oI21pZGRsZXdhcmUpIENvZGUgdGhhdCBydW5zIGJlZm9yZSBpdCByZWFjaGVzIHRoZSBmaW5hbCBlbmRwb2ludAotIFtJbnNwZWN0aW9uXSgjaW5zcGVjdGlvbikgSG93IHR5cGVzIGFyZSBjb252ZXJ0ZWQgaW50byBkb2N1bWVudGF0aW9uLgotIFtWYWxpZGF0aW9uXSgjdmFsaWRhdGlvbikgSG93IHRvIGNvbnRyb2wgdmFsaWRhdGlvbi4KLSBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pIEFsbCB0aGUgd2F5cyB0byBzcGVjaWZ5IGRvY3VtZW50YXRpb24uCi0gW1NpdGVdKCNtZXRob2RzKSBUaGUgbWFpbiBzaXRlIHR5cGUgYW5kIGl0cyB1c2VmdWwgbWV0aG9kcy4KCiMjIyBFeGFtcGxlCmBgYGdvCnR5cGUgRWNobyBzdHJ1Y3QgewoJTWVzc2FnZSBzdHJpbmcgYGpzb246Im1lc3NhZ2UiIGFwaToiZGVzYz1BIG1lc3NhZ2UgdG8gZWNoby4iYAp9CnNpdGUgOj0gcmV6Lk5ldyhjaGkuTmV3Um91dGVyKCkpCi8vIC9lY2hvP21lc3NhZ2U9SGVsbG9Xb3JsZCEKc2l0ZS5HZXQoIi9lY2hvIiwgZnVuYyhxIHJlei5RdWVyeVtFY2hvXSkgKCpFY2hvLCAqcmV6Lk5vdEZvdW5kW3N0cmluZ10pIHsKICBpZiBxLlZhbHVlLk1lc3NhZ2UgPT0gIiIgewogICAgcmV0dXJuIG5pbCwgcmV6Lk5ld05vdEZvdW5kKCJtZXNzYWdlIGlzIHJlcXVpcmVkIikKICB9CiAgcmV0dXJuICZxLlZhbHVlLCBuaWwKfSkKc2l0ZS5TZXJ2ZVN3YWdnZXJVSSgiL2RvYy9zd2FnZ2VyIiwgbmlsKQpzaXRlLlNlcnZlUmVkb2MoIi9kb2MvcmVkb2MiKQpzaXRlLkxpc3RlbigiOjMwMDAiKQpgYGAKTW9yZSBjYW4gYmUgZm91bmQgaW4gW2V4YW1wbGVzXShleGFtcGxlcykuCgojIyBEZXBlbmRlbmN5IEluamVjdGlvbgoKRGVwZW5kZW5jeSBpbmplY3Rpb24gaXMgdXNlZCB0byBwYXNzIGFyZ3VtZW50cyB0byBhIG1pZGRsZXdhcmUgb3Igcm91dGUgZnVuY3Rpb25zLiAqKnJleioqIHVzZXMgW2RlcHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9DbGlja2VyTW9ua2V5L2RlcHMpIGZvciBkZXBlbmRlbmN5IGluamVjdGlvbi4gVGhlcmUgYXJlIHNldmVyYWwgdHlwZXMgdGhhdCBnZXQgaW5qZWN0ZWQgb3V0IG9mIHRoZSBib3g6CgotIGBjb250ZXh0LkNvbnRleHRgOiBUaGUgY29udGV4dCBvZiB0aGUgcmVxdWVzdC4KLSBgZGVwcy5TY29wZWA6IFRoZSBzY29wZSB3aGljaCBob2xkcyBhbGwgdGhlIGdpdmVuIHZhbHVlcyB0aGF0IGNhbiBiZSBpbmplY3RlZCBmb3IgdGhlIGN1cnJlbnQgcmVxdWVzdC4gVGhlIHJvb3QgYFNpdGVgIHR5cGUgaGFzIGEgcGFyZW50IHNjb3BlIHdoaWNoIHJlcXVlc3Qgc2NvcGVzIGNhbiBpbmhlcml0IHZhbHVlcyBmcm9tLgotIGBodHRwLlJlc3BvbnNlV3JpdGVyYDogVGhlIG91dGdvaW5nIHJlc3BvbnNlLgotIGBodHRwLlJlcXVlc3RgOiBUaGUgaW5jb21pbmcgcmVxdWVzdC4KLSBgcmV6LlJvdXRlcmA6IFRoZSByZWZlcmVuY2UgdG8gdGhlIHJvdXRlciB3aGVyZSB0aGUgbWlkZGxld2FyZSB3YXMgdXNlZCBvciB0aGUgcm91dGUgd2FzIGRlZmluZWQgb24uCi0gYHJlei5QYXRoW1BdYDogQSBnZW5lcmljIHdyYXBwZXIgd2hpY2ggaG9sZHMgdGhlIHN0cnVjdCB0aGF0IGlzIHBhcnNlZCBmcm9tIHRoZSBwYXRoIHBhcmFtZXRlcnMuIElmIHRoZSBwYXRoIGlzIGAvdGFzay97dGFza0lEfWAgYW5kIHRoZSBzdHJ1Y3QgaXMgYHR5cGUgVGFza1BhdGggc3RydWN0IHsgVGFza0lEIGludCB9YCB0aGUgYFRhc2tJRGAgcHJvcGVydHkgd2lsbCBiZSBwb3B1bGF0ZWQgZnJvbSB0aGUgdmFsdWUgaW4gdGhlIFVSTC4KLSBgcmV6LlF1ZXJ5W1FdYDogQSBnZW5lcmljIHdyYXBwZXIgd2hpY2ggaG9sZHMgdGhlIHN0cnVjdCB0aGF0IGlzIHBhcnNlZCBmcm9tIHRoZSBxdWVyeSBzdHJpbmcuIElmIHRoZSB1cmwgaXMgYD9tZXNzYWdlPUhpJnRpbWVzPTRgIGFuZCB0aGUgc3RydWN0IGlzIGB0eXBlIE15UXVlcnkgc3RydWN0IHsgTWVzc2FnZSBzdHJpbmcsIFRpbWVzIGludCB9YCB0aGUgTWVzc2FnZSBhbmQgVGltZXMgZmllbGRzIHdpbGwgYmUgcG9wdWxhdGVkIGZyb20gdGhlIHF1ZXJ5IHN0cmluZy4KLSBgcmV6LkhlYWRlcltIXWA6IEEgZ2VuZXJpYyB3cmFwcGVyIHdoaWNoIGhvbGRzIHRoZSBzdHJ1Y3QgdGhhdCBpcyBwYXJzZWQgZnJvbSB0aGUgaGVhZGVycy4gCi0gYHJlei5Cb2R5W0JdYDogQSBnZW5lcmljIHdyYXBwZXIgd2hpY2ggaG9sZHMgdGhlIHR5cGUgdGhhdCBpcyBwYXJzZWQgZnJvbSB0aGUgcmVxdWVzdCBib2R5LgotIGByZXouUmVxdWVzdFtCLCBQLCBRXWA6IEEgZ2VuZXJpYyB3cmFwcGVyIHdoaWNoIGhvbGRzIHRoZSBib2R5LCBwYXJhbXMsIGFuZCBxdWVyeSBzdHJ1Y3RzIHRoYXQgYXJlIHRvIGJlIHBhcnNlZCBmcm9tIHRoZSByZXF1ZXN0LgotIGByZXouVmFsaWRhdG9yYDogQSB2YWxpZGF0b3IgZm9yIHRoZSByb3V0ZSBvciBtaWRkbGV3YXJlLgotIGBhcGkuT3BlcmF0aW9uYDogVGhlIG9wZXJhdGlvbiAocm91dGUgb25seSkuCi0gYHJlei5NaWRkbGV3YXJlTmV4dGA6IEludm9rZSB0aGUgbmV4dCBoYW5kbGVyIChtaWRkbGV3YXJlIG9ubHkpLgoKVGhlcmUgYXJlIGEgZmV3IG90aGVyIG1ldGhvZHMgdG8gZ2V0IG90aGVyIGluamVjdGFibGUgdmFsdWVzLgoxLiBVc2UgYHJlei5TaXRlLlNjb3BlYCB0byBzZXQgZ2xvYmFsIHZhbHVlcyBhbmQgcHJvdmlkZXJzLgoyLiBJbXBsZW1lbnQgYHJlei5JbmplY3RhYmxlYC4KMy4gVXNlIGByZXouUm91dGVyLkRlZmluZUJvZHkoYm9kaWVzLi4uKWAgdG8gZGVmaW5lIHR5cGVzIHRoYXQgd2lsbCBvbmx5IGJlIHVzZWQgYXMgYXJndW1lbnRzIHRoYXQgc2hvdWxkIGNvbWUgZnJvbSB0aGUgcmVxdWVzdCBib2R5Lgo0LiBVc2UgYHJlei5Sb3V0ZXIuRGVmaW5lUGF0aChwYXRocy4uLilgIHRvIGRlZmluZSB0eXBlcyB0aGF0IHdpbGwgb25seSBiZSB1c2VkIGFzIGFyZ3VtZW50cyB0aGF0IHNob3VsZCBjb21lIGZyb20gdGhlIHJlcXVlc3QgcGF0aCBwYXJhbWV0ZXJzLgo1LiBVc2UgYHJlei5Sb3V0ZXIuRGVmaW5lUXVlcnkocXVlcmllcy4uLilgIHRvIGRlZmluZSB0eXBlcyB0aGF0IHdpbGwgb25seSBiZSB1c2VkIGFzIGFyZ3VtZW50cyB0aGF0IHNob3VsZCBjb21lIGZyb20gdGhlIHJlcXVlc3QgcXVlcnkgcGFyYW1ldGVycy4KNi4gVXNlIGByZXouUm91dGVyLkRlZmluZUhlYWRlcihoZWFkZXJzLi4uKWAgdG8gZGVmaW5lIHR5cGVzIHRoYXQgd2lsbCBvbmx5IGJlIHVzZWQgYXMgYXJndW1lbnRzIHRoYXQgc2hvdWxkIGNvbWUgZnJvbSB0aGUgcmVxdWVzdCBoZWFkZXJzLgo3LiBVc2UgYCpkZXBzLlNjb3BlYCBhcyBhbiBhcmd1bWVudCBpbiBtaWRkbGV3YXJlIGFuZCBgU2V0YCBvciBgUHJvdmlkZWAgb3RoZXIgdmFsdWVzIHRoYXQgdGhlIGZvbGxvd2luZyBoYW5kbGVycyB3aWxsIGJlIGFibGUgdG8gcmVjZWl2ZS4KCiMjIFJvdXRlcgpUaGUgW3Jlei5Sb3V0ZXJdKHJlei5nbykgaXMgYSB3cmFwcGVyIG9mIGNoaS5Sb3V0ZXIgd2hlcmUgaW5zdGVhZCBvZiBgaHR0cC5IYW5kZXJgcyBhbmQgYGh0dHAuSGFuZGxlckZ1bmNgIHlvdSBwYXNzIGluIGEgYGZ1bmMoYXJncykgcmVzdWx0c2Agd2hpY2ggZ2V0cyBpdHMgYXJndW1lbnRzIGluamVjdGVkLCBhbmQgaW4gdGhlIGNhc2Ugb2YgbWlkZGxld2FyZSBpcyBhYmxlIHRvIHByb3ZpZGUgaW5qZWN0ZWQgdmFsdWVzIGZvciByb3V0ZXMgaW4gdGhlIHJvdXRlci4gVGhlIGZ1bmN0aW9uIGFyZ3VtZW50IGFuZCByZXN1bHQgdHlwZXMgYXJlIGFsc28gaW5zcGVjdGVkIHRvIGJ1aWxkIHRoZSBPcGVuQVBJIGRvY3VtZW50YXRpb24uCgojIyBNaWRkbGV3YXJlCk1pZGRsZXdhcmUgaW4gKipyZXoqKiBpcyBhbHNvIGEgZGVwZW5kZW5jeSBpbmplY3RlZCBmdW5jdGlvbi4gVGhlIG1pZGRsZXdhcmUgY2FuIHJldHVybiBub3RoaW5nIG9yIGNhbiByZXR1cm4gYW4gZXJyb3Igd2hpY2ggaWYgbm9uLW5pbCB3aWxsIGJlIHNlbnQgYXMgdGhlIHJlc3BvbnNlLiBUaGUgbWlkZGxld2FyZSBoYXMgYSBzcGVjaWFsIGluamVjdGVkIHZhbHVlIGByZXouTWlkZGxld2FyZU5leHRgIHdoaWNoIGlzIGEgZnVuY3Rpb24gdG8gY2FsbCBpZiB3ZSB3YW50IHRvIGNhbGwgdGhlIG5leHQgaGFuZGxlci4gX0FueSBhcmd1bWVudHMgb3IgcmV0dXJuIHR5cGVzIHRoYXQgYXJlIGlkZW50aWZpZWQgYXMgaGVhZGVycywgcXVlcmllcywgcGF0aHMsIHJlcXVlc3QgYm9kaWVzLCBvciByZXNwb25zZXMgYXJlIGFkZGVkIGFzIHRob3NlIG9iamVjdHMgaW4gYWxsIHJvdXRlcyB0aGF0IGFyZSBpbiB0aGUgcm91dGVyIHVzaW5nIHRoZSBtaWRkbGV3YXJlLl8KCkV4YW1wbGU6CmBgYGdvCi8vIHNpdGUuVXNlKGF1dGhNaWRkbGV3YXJlKQpmdW5jIGF1dGhNaWRkbGV3YXJlKG5leHQgcmV6Lk1pZGRsZXdhcmVOZXh0LCByICpodHRwLlJlcXVlc3QpICpyZXouVW5hdXRob3JpemVkW3N0cmluZ10gewogIC8vIEFjY2Vzc2luZyBoZWFkZXJzIHRoaXMgd2F5IGRvZXNuJ3QgYWRkIGl0IGFzIGEgcGFyYW1ldGVyIHRvIGFsbCByb3V0ZXMgdGhhdCB1c2UgdGhlIG1pZGRsZXdhcmUuCiAgYXV0aCA6PSByLkhlYWRlci5HZXQoIkF1dGhvcml6YXRpb24iKQogIGlmIGF1dGggPT0gIiIgewogICAgcmV0dXJuIHJlei5OZXdVbmF1dGhvcml6ZWQoIk5vIGFjY2VzcyIpCiAgfQogIG5leHQoKQogIHJldHVybiBuaWwKfQpgYGAKCllvdSBjYW4gYWxzbyBwYXNzIGRvd24gaW5qZWN0YWJsZSB2YWx1ZXMgdG8gYWxsIG1pZGRsZXdhcmVzIGFuZCByb3V0ZXMgd2hpY2ggYXJlIGRlZmluZWQgYWZ0ZXIgbWlkZGxld2FyZSBieSBzZXR0aW5nIHRoZSB2YWx1ZSBvbiB0aGUgc2NvcGUuCgpgYGBnbwp0eXBlIFVzZXIgc3RydWN0IHsgSUQgaW50IH0KLy8gc2l0ZS5Vc2UoYXV0aE1pZGRsZXdhcmUpCmZ1bmMgYXV0aE1pZGRsZXdhcmUobmV4dCByZXouTWlkZGxld2FyZU5leHQsIHMgKmRlcHMuU2NvcGUpIHsKICAvLyBhdXRoZW50aWNhdGUgdXNlciBhbmQgcmV0dXJuIGVycm9yLCBpZiBzdWNjZXNzZnVsIGFwcGx5IHRoZSB1c2VyIHRvIHRoZSBzY29wZS4KICBzLlNldChVc2Vye0lEOiAyM30pCiAgbmV4dCgpCn0KdHlwZSBUYXNrIHN0cnVjdCB7IElEIGludCwgTmFtZSBzdHJpbmcsIERvbmUgYm9vbCB9Ci8vIHNldC5HZXQoIi90YXNrcyIsIGdldFRhc2tzKQpmdW5jIGdldFRhc2tzKHVzZXIgVXNlcikgVGFza1tdIHsKICAvLyBnZXQgdGFza3MgdGhlIHVzZXIgY2FuIHNlZSwgd2Ugb25seSBnZXQgaGVyZSBpZiBhdXRoTWlkZGxld2FyZSBjYWxsZWQgbmV4dAogIHJldHVybiBbXVRhc2t7fQp9CmBgYAoKQXMgbWVudGlvbmVkIHdoYXQgeW91IHJlZmVyZW5jZSB3aXRoIG1pZGRsZXdhcmUgY291bGQgYWRkIHRvIHRoZSBvcGVyYXRpb25zIHRoYXQgZm9sbG93LiBUaGlzIG1pZGRsZXdhcmUgaXMgYW4gZXhhbXBsZSBvZiBhdXRoZW50aWNhdGlvbiB3aGVyZSB0aGUgdG9rZW4gaXMgZm9vbGlzaGx5IHNlbnQgaW4gdGhlIHF1ZXJ5IHN0cmluZy4gQWxsIG9wZXJhdGlvbnMgdGhhdCBmb2xsb3cgd2lsbCBoYXZlIHRoZSBzcGVjaWZpZWQgc2VjdXJpdHkgc2NoZW1lLCBhY2NlcHQgYHRva2VuYCBhcyBhIHF1ZXJ5IHBhcmFtZXRlciwgYW5kIGNvdWxkIHJlc3BvbmQgd2l0aCBgcmV6LlVuYXV0aG9yaXplZFtzdHJpbmddYC4KCmBgYGdvCnR5cGUgQXV0aCBzdHJ1Y3QgeyBUb2tlbiBzdHJpbmcgfQoKdHlwZSBBdXRoTWlkZGxld2FyZSBmdW5jKHMgKmRlcHMuU2NvcGUsIG5leHQgcmV6Lk1pZGRsZXdhcmVOZXh0LCBxIHJlei5RdWVyeVtBdXRoXSkgKnJlei5VbmF1dGhvcml6ZWRbc3RyaW5nXQovLyBBbGwgcm91dGVzIHdoaWNoIHVzZSB0aGlzIG1pZGRsZXdhcmUgYWNjZXB0IHRoaXMgdHlwZSBvZiBzZWN1cml0eQpmdW5jIChhdXRoIEF1dGhNaWRkbGV3YXJlKSBBUElPcGVyYXRpb25VcGRhdGUob3AgKmFwaS5PcGVyYXRpb24pIHsKICBvcC5TZWN1cml0eSA9IGFwcGVuZChvcC5TZWN1cml0eSwgbWFwW3N0cmluZ11bXXN0cmluZ3sicXVlcnlBdXRoIjoge319KQp9Cgp2YXIgYXV0aE1pZGRsZXdhcmUgQXV0aE1pZGRsZXdhcmUgPSBmdW5jKHMgKmRlcHMuU2NvcGUsIG5leHQgcmV6Lk1pZGRsZXdhcmVOZXh0LCBxIHJlei5RdWVyeVtBdXRoXSkgKnJlei5VbmF1dGhvcml6ZWRbc3RyaW5nXSB7CiAgaWYgcS5WYWx1ZS5Ub2tlbiA9PSAiIiB7CiAgICByZXR1cm4gcmV6Lk5ld1VuYXV0aG9yaXplZCgiTm8gYWNjZXNzIikKICB9CiAgcy5TZXQocS5WYWx1ZSkKICBuZXh0KCkKICByZXR1cm4gbmlsCn0KZnVuYyBlY2hvVG9rZW4odG9rZW4gQXV0aCkgQXV0aCB7CiAgcmV0dXJuIHRva2VuCn0KCi8vIFVzYWdlCnNpdGUuT3Blbi5BZGRTZWN1cml0eSgicXVlcnlBdXRoIiwgJmFwaS5TZWN1cml0eXsKICBUeXBlOiBhcGkuU2VjdXJpdHlUeXBlQXBpS2V5LAogIE5hbWU6ICJ0b2tlbiIsCiAgSW46ICAgYXBpLlBhcmFtZXRlckluUXVlcnksCn0pCnNpdGUuVXNlKGF1dGhNaWRkbGV3YXJlKQpzaXRlLkdldCgiL3Rva2VuIiwgZWNob1Rva2VuKQpgYGAKCiMjIEluc3BlY3Rpb24KCkZ1bmN0aW9uIGFyZ3VtZW50cyBhcmUgaW5zcGVjdGVkIHRvIGRldGVybWluZSB3aGF0IHBhdGggcGFyYW1ldGVycywgcXVlcnkgcGFyYW1ldGVycywgaGVhZGVycywgYW5kIGJvZHkgaXMgdXNlZCBieSBhIHJvdXRlLiBTZWUgW0RlcGVuZGVuY3kgSW5qZWN0aW9uXSgjZGVwZW5kZW5jeS1pbmplY3Rpb24pIGZvciBtb3JlIGRldGFpbHMgb24gdGhhdC4gVGhlIHR5cGVzIGRldGVjdGVkIGFyZSBjb252ZXJ0ZWQgaW50byBgYXBpYCBvYmplY3RzIGFuZCBhcmUgYWRkZWQgdG8gdGhlIE9wZW5BUEkgZG9jdW1lbnQgYW5kIHJlZmVyZW5jZWQgaW4gdGhlIHBhdGggJiBvcGVyYXRpb25zIGluIHRoZSBwYXRoLiBUaGUgZnVuY3Rpb24gcmV0dXJuIGFyZ3VtZW50cyBhcmUgaW5zcGVjdGVkIGZvciBwb3NzaWJsZSByZXNwb25zZXMgLSBtb3N0IG9mIHRoZSB0aW1lIHRoZXNlIHJldHVybiB0eXBlcyB3aWxsIGJlIHBvaW50ZXJzIGZvciByb3V0ZXMgd2hpY2ggY2FuIGhhdmUgbXVsdGlwbGUgcmVzcG9uc2UgdHlwZXMgKG9yIG5vIHNwZWNpZmljIHJlc3BvbnNlIHR5cGUpLiBJZiB0aGUgcmV0dXJuIHR5cGUgaW1wbGVtZW50cyBgcmV6Lkhhc1N0YXR1c2AgdGhhdCBpcyB3aGVyZSB0aGUgc3RhdHVzIGNvZGUgaXMgcHVsbGVkIGZyb20uIElmIHRoZSByZXR1cm4gdHlwZSBkb2VzIG5vdCBpdCdzIGFzc3VtZWQgdG8gYmUgYSBwb3NzaWJsZSBPSyAoMjAwKSByZXN1bHQuIFRoZSBzY2hlbWFzIGJ1aWx0IGZyb20gdGhlIGFyZ3VtZW50IGFuZCByZXR1cm4gdHlwZXMgYXJlIGJ1aWx0IG9uY2UgYW5kIGNhbiBiZSBjb250cm9sbGVkIHVzaW5nIHZhcmlvdXMgZnVuY3Rpb25zIGFuZCBpbnRlcmZhY2VzLiBJZiB0aGUgdHlwZSBpcyBhIHN0cnVjdCB0aGVuIGBqc29uYCBhbmQgYGFwaWAgdGFncyBjYW4gY29udHJvbCB0aGUgZmllbGQgdmlzaWJpbGl0eSBvciBzY2hlbWEgb3B0aW9ucy4gU2VlIFtEb2N1bWVudGF0aW9uXSgjZG9jdW1lbnRhdGlvbikgZm9yIGFkZGl0aW9uYWwgZGV0YWlscyBvbiBob3cgdG8gY29udHJvbCB0aGUgZG9jdW1lbnRhdGlvbiAmIHZhbGlkYXRpb24gdGhhdCBpcyBnZW5lcmF0ZWQuCgojIyBWYWxpZGF0aW9uCgpWYWxpZGF0aW9uIGluIHJleiBpcyBkb25lIGlmIGVuYWJsZWQgYW5kIG9ubHkgZm9yIGNlcnRhaW4gc2NoZW1hIGZpZWxkcyBhbmQgYWZ0ZXIgdGhlIGRhdGEgaXMgbWFyc2hhbGxlZCBpbnRvIHZhbHVlcy4gU28gYW55IGludmFsaWQgdHlwZSBlcnJvcnMgd2lsbCBub3QgYmUgdHJpZ2dlcmVkIGJ5IHRoZSB2YWxpZGF0aW9uIGJ1dCB3aGVuIHRoZSBKU09OIGlzIHBhcnNlZC4gR2VuZXJhbCB2YWxpZGF0aW9uIG9wdGlvbnMgY2FuIGJlIGFwcGxpZWQgcGVyIHR5cGUsIHZhbGlkYXRpb24gY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgZm9yIGFueSByb3V0ZXIsIGFuZCB0eXBlcyBjYW4gaGF2ZSBjdXN0b20gdmFsaWRhdGlvbiBjb2RlIHRoYXQgdGFrZXMgb3ZlciB0aGUgdmFsaWRhdGlvbiBwcm9jZXNzIG9yIHJ1bnMgYWZ0ZXIgdGhlIHZhbGlkYXRpb24gcHJvY2Vzcy4gSWYgdmFsaWRhdGlvbiBmYWlscyB0aGUgZXJyb3IgaXMgcmV0dXJuZWQgdG8gdGhlIHVzZXIuIEhvdyB0aG9zZSB2YWxpZGF0aW9ucyBhcmUgc2VudCB0byB0aGUgdXNlciBjYW4gYmUgY29udHJvbGxlZCBieSBjYWxsaW5nIGByZXouUm91dGVyLlNldEVycm9ySGFuZGxlcmAuCgotIGByZXouUm91dGVyLkVuYWJsZWRWYWxpZGF0aW9uKGJvb2wpYCBlbmFibGVzIG9yIGRpc2FibGVzIHZhbGlkYXRpb24gaW4gdGhpcyByb3V0ZXIgYW5kIGFueSBzdWItcm91dGVycyBjcmVhdGVkIGFmdGVyIHRoaXMgY2FsbC4gQnkgZGVmYXVsdCB2YWxpZGF0aW9uIGlzIG5vdCBlbmFibGVkLgotIGByZXouUm91dGVyLlNldFZhbGlkYXRpb25PcHRpb25zKGFueSxWYWxpZGF0aW9uT3B0aW9ucylgIHNldHMgdGhlIHZhbGlkYXRpb24gb3B0aW9ucyBmb3IgdGhlIGdpdmVuIHR5cGUsIHdoaWNoIGNvbnRyb2xzIGlmIHZhbGlkYXRpb24gaXMgc2tpcHBlZCwgaWYgZm9ybWF0IGlzIGVuZm9yY2VkLCBvciBpZiBzcGVjaWZ5aW5nIGRlcHJlY2F0ZWQgdmFsdWVzIHRyaWdnZXJzIGEgdmFsaWRhdGlvbiBlcnJvci4KLSBgcmV6LkNhblZhbGlkYXRlRnVsbGAgaWYgYSB0eXBlIGltcGxlbWVudHMgdGhpcyBpdCBoYW5kbGVzIGFsbCB2YWxpZGF0aW9uIGxvZ2ljLgotIGByZXouQ2FuVmFsaWRhdGVQb3N0YCBpZiBhIHR5cGUgaW1wbGVtZW50cyB0aGlzIGl0IHdpbGwgZG8gYWRkaXRpb25hbCB2YWxpZGF0aW9uIGxvZ2ljIGFmdGVyIG90aGVyIHZhbGlkYXRpb24gbG9naWMgaGFzIGJlZW4gZG9uZS4KLSBgcmV6LkluamVjdGFibGVgIGlmIGEgdHlwZSBpbXBsZW1lbnRzIHRoaXMgaXQgbXVzdCBpbXBsZW1lbnQgYW4gYEFQSVZhbGlkYXRlYCBtZXRob2QuCgpUaGUgZm9sbG93aW5nIHNjaGVtYSBmaWVsZHMgYXJlIHVzZWQgZHVyaW5nIHZhbGlkYXRpb246Ci0gYE11bHRpcGxlT2ZgLCBgTWF4aW11bWAsIGBNaW5pbXVtYCwgYEV4Y2x1c2l2ZU1heGltdW1gLCBgRXhjbHVzaXZlTWluaW11bWAgYXJlIHVzZWQgZm9yIGFueSBpbnQgb3IgZmxvYXQgdHlwZXMuCi0gYE1heExlbmd0aGAsIGBNaW5MZW5ndGhgIGFyZSB1c2VkIGZvciBzdHJpbmcgdHlwZXMuCi0gYERlcHJlY2F0ZWRgLCBgTnVsbGFibGVgLCBgUGF0dGVybmAsIGBGb3JtYXRgLCBgRW51bWAsIGBPbmVPZmAsIGBBbGxPZmAsIGBBbnlPZmAsIGBOb3RgIGFyZSB1c2VkIGZvciBhbGwgdHlwZXMuCi0gYE1pbkl0ZW1zYCwgYE1heEl0ZW1zYCwgYEl0ZW1zYCwgYFVuaXF1ZUl0ZW1zYCBhcmUgdXNlZCBmb3IgYXJyYXkgYW5kIHNsaWNlIHR5cGVzLgotIGBNaW5Qcm9wZXJ0aWVzYCwgYE1heFByb3BlcnRpZXNgLCBgQWRkaXRpb25hbFByb3BlcnRpZXNgIGFyZSB1c2VkIGZvciBtYXAgdHlwZXMuCi0gYFByb3BlcnRpZXNgLCBgUmVxdWlyZWRgIGFyZSB1c2VkIGZvciBzdHJ1Y3QgdHlwZXMuCgoKIyMgRG9jdW1lbnRhdGlvbgoKRG9jdW1lbnRhdGlvbiBpcyBjb250cm9sIGJ5IHZhcmlvdXMgd2F5cyBvbiB0aGUgdHlwZXMgdGhlbXNlbHZlcyBvciB0aHJvdWdoIHJvdXRlciBtZXRob2RzLgoKLSBgYXBpLkhhc05hbWVgCkEgdHlwZSdzIGRvY3VtZW50ZWQgbmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBpbiB0aGUgR08gY29kZSwgYnV0IHRoZXJlIG1pZ2h0IGJlIGNvbGxpc2lvbnMuIElmIHRoZXJlIGFyZSBjb2xsaXNpb25zIHRoZSBPcGVuQVBJIGJ1aWx0IHdpbGwgaGF2ZSBzY2hlbWEgbmFtZXMgdGhhdCBpbmNsdWRlIHRoZSB0eXBlcyBwa2cgcGF0aCB0byBiZSB1bmlxdWUuIFRvIGF2b2lkIHRob3NlIHBvdGVudGlhbGx5IGxlbmd0aHkgbmFtZXMgeW91IGNhbiBpbXBsZW1lbnQgYGFwaS5IYXNOYW1lYCBsaWtlIHNvOgpgYGBnbwovLyB0YXNrcyBmb2xkZXIKdHlwZSBTZWFyY2ggc3RydWN0IHsgTmFtZSBzdHJpbmcgfQpmdW5jIChTZWFyY2gpIEFQSU5hbWUoKSBzdHJpbmcgeyByZXR1cm4gIlRhc2tTZWFyY2giIH0KYGBgCi0gYGFwaS5EZXNjcmlwdGlvbmAKQSByZXF1ZXN0IG9yIHJlc3BvbnNlJ3MgZGVzY3JpcHRpb24gY2FuIGJlIHNwZWNpZmllZCBvbiB0eWhlIHR5cGUgYnkgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlLiBVc2luZyB0aGUgY29kZSBhYm92ZS4KYGBgZ28KZnVuYyAoU2VhcmNoKSBBUElEZXNjcmlwdGlvbigpIHN0cmluZyB7IHJldHVybiAiVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSB3aGF0IFRhc2tzIHRvIHJldHVybi4iIH0KYGBgCi0gYGFwaS5IYXNCYXNlU2NoZW1hYApBIHR5cGUncyBzY2hlbWEgd2lsbCBiZSBkeW5hbWljYWxseSBkZXRlcm1pbmVkLCBidXQgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIHdpbGwgcHJvdmlkZSB0aGUgc2NoZW1hIGJ1aWxkaW5nIGxvZ2ljIHdpdGggYSBzdGFydGluZyBwb2ludC4gWW91IGNhbiBkZWZpbmUgdGhlIHByZWZlcnJlZCBzY2hlbWEgcHJvcGVydGllcy4KYGBgZ28KZnVuYyAoU2VhcmNoKSBBUElCYXNlU2NoZW1hKCkgKmFwaS5TY2hlbWEgewogIHJldHVybiAmYXBpLlNjaGVtYXsKICAgIFRpdGxlOiAgICAgICAiVGFzayBTZWFyY2giLAogICAgRGVzY3JpcHRpb246ICJUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoYXQgVGFza3MgdG8gcmV0dXJuLiIsCiAgICBFeGFtcGxlICAgICAgYXBpLkFueShTZWFyY2h7TmFtZTogImhvbWV3b3JrIn0pLAogIH0KfQpgYGAKLSBgYXBpLkhhc0Z1bGxTY2hlbWFgCkEgdHlwZSdzIHNjaGVtYSB3aWxsIG9ubHkgYmUgZGV0ZXJtaW5lZCBieSB3aGF0J3MgcmV0dXJuZWQsIG5vIGZ1cnRoZXIgaW5zcGVjdGlvbiBpcyBkb25lLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byB1c2Ugc29tZSBvZiB0aGUgYnVpbHQtaW4gc3RydWN0IHR5cGVzIHRoYXQgc3VwcG9ydCBkaWZmZXJlbnQgZm9ybWF0cy4KYGBgZ28KdHlwZSBUaW1lc3RhbXAgdGltZS5UaW1lCmZ1bmMgKFRpbWVzdGFtcCkgQVBJRnVsbFNjaGVtYSgpICphcGkuU2NoZW1hIHsKICByZXR1cm4gJmFwaS5TY2hlbWF7CiAgICBUeXBlOiAgICBhcGkuRGF0YVR5cGVTdHJpbmcsCiAgICBGb3JtYXQ6ICAiZGF0ZS10aW1lIiwKICAgIFBhdHRlcm46IGBcXGR7NH0tXGRcZC1cZFxkVFxkXGQ6XGRcZDpcZFxkK1xkXGQ6XGRcZGAsCiAgICBFeGFtcGxlOiBhcGkuQW55KCIyMDE4LTExLTEzVDIwOjIwOjM5KzAwOjAwIiksCiAgfQp9CmBgYAotIGBhcGkuSGFzRW51bWAKQSB0eXBlIGNhbiBhY2NlcHQgb25seSBhIGhhbmRmdWwgb2YgdmFsdWVzLgpgYGBnbwp0eXBlIFRvZG9BY3Rpb24gc3RyaW5nCmNvbnN0ICgKICBUb2RvQWN0aW9uQXJjaGl2ZSAgVG9kb0FjdGlvbiA9ICJhcmNoaXZlIgogIFRvZG9BY3Rpb25EZWxldGUgICBUb2RvQWN0aW9uID0gImRlbGV0ZSIKICBUb2RvQWN0aW9uQ29tcGxldGUgVG9kb0FjdGlvbiA9ICJjb21wbGV0ZSIKKQpmdW5jIChUb2RvQWN0aW9uKSBBUElFbnVtKCkgW11hbnkgewogIHJldHVybiBbXWFueXtUb2RvQWN0aW9uQXJjaGl2ZSwgVG9kb0FjdGlvbkRlbGV0ZSwgVG9kb0FjdGlvbkNvbXBsZXRlfQp9CmBgYAotIGBhcGkuSGFzRXhhbXBsZXNgCkEgdHlwZSBjYW4gcHJvdmlkZSBzZXZlcmFsIG5hbWVkIGV4YW1wbGVzIGZvciBhIGdpdmVuIGNvbnRlbnQgdHlwZS4KYGBgZ28KZnVuYyAoU2VhcmNoKSBBUElFeGFtcGxlcyhjb250ZW50VHlwZSBhcGkuQ29udGVudFR5cGUpIGFwaS5FeGFtcGxlcyB7CiAgcmV0dXJuIGFwaS5FeGFtcGxlc3sKICAgICJBbGwgdGFza3MiOiBhcGkuRXhhbXBsZXsKICAgICAgU3VtbWFyeTogIlRoaXMgc2VhcmNoIHdpbGwgcmV0dXJuIGFsbCB0YXNrcyB0aGUgdXNlciBjYW4gc2VlLiIsCiAgICAgIFZhbHVlOiAgIGFwaS5BbnkoU2VhcmNoe30pLAogICAgfSwKICAgICJUYXNrcyB3aXRoICdob21ld29yaycgaW4gdGhlIG5hbWUiOiBhcGkuRXhhbXBsZXsKICAgICAgU3VtbWFyeTogIlRoaXMgc2VhcmNoIHdpbGwgcmV0dXJuIGFsbCB0YXNrcyB3aXRoICdob21ld29yaycgaW4gdGhlIG5hbWUuIiwKICAgICAgVmFsdWU6ICAgYXBpLkFueShTZWFyY2h7TmFtZTogImhvbWV3b3JrIn0pLAogICAgfSwKICB9Cn0KYGBgCi0gYGFwaS5IYXNFeGFtcGxlYApBIHR5cGUgdGhhdCBjYW4gcHJvdmlkZSBhIHNpbmdsZSBleGFtcGxlIGZvciBhIHR5cGUuCmBgYGdvCmZ1bmMgKFNlYXJjaCkgQVBJRXhhbXBsZSgpICphbnkgewogIHJldHVybiBhcGkuQW55KFNlYXJjaHtOYW1lOiAiaG9tZXdvcmsifSkKfQpgYGAKLSBgYXBpLkhhc09wZXJhdGlvbmAKQSByb3V0ZSBmdW5jdGlvbiB0aGF0IGhhcyB0aGUgb3BlcmF0aW9uIGZ1bGx5IGRlZmluZWQgaGVyZSBhbmQgbm8gaW5zcGVjdGlvbiBuZWVkcyB0byBiZSBkb25lIG9uIHRoZSBhcmd1bWVudHMgb3IgcmV0dXJuIHR5cGVzLgpgYGBnbwp0eXBlIEdldFRhc2sgZnVuYyhpZCBzdHJpbmcpICpUYXNrCmZ1bmMgKEdldFRhc2spIEFQSU9wZXJhdGlvbigpIGFwaS5PcGVyYXRpb24gewogIHJldHVybiBhcGkuT3BlcmF0aW9uewogICAgVGFnczogICAgICAgIFtdc3RyaW5neyJUYXNrIn0sCiAgICBTdW1tYXJ5OiAgICAgIkdldCB0aGUgdGFzayB3aXRoIHRoZSBnaXZlbiBJRCIsCiAgICBPcGVyYXRpb25JRDogIkdFVF9UQVNLX0JZX0lEIiwKICAgIFBhcmFtZXRlcnM6ICBbXWFwaS5QYXJhbWV0ZXJ7ewogICAgICBOYW1lOiAgICAgImlkIiwKICAgICAgSW46ICAgICAgIGFwaS5QYXJhbWV0ZXJJblBhdGgsCiAgICAgIFJlcXVpcmVkOiB0cnVlLAogICAgICBTY2hlbWE6ICAgJmFwaS5TY2hlbWF7VHlwZTogYXBpLlR5cGVTdHJpbmd9LAogICAgICBFeGFtcGxlOiAgYXBpLkFueSgiODd5MzQiKSwKICAgIH19LAogICAgUmVzcG9uc2VzOiAgYXBpLlJlc3BvbnNlc3sKICAgICAgIjIwMCI6ICAgICZhcGkuUmVzcG9uc2V7CiAgICAgICAgRGVzY3JpcHRpb246ICJUaGUgdGFzayBleGlzdHMgYW5kIGhhcyB0aGVzZSB2YWx1ZXMiLAogICAgICAgIENvbnRlbnQ6ICAgICBhcGkuQ29udGVudHN7CiAgICAgICAgICBhcGkuQ29udGVudFR5cGVKU09OOiAmYXBpLk1lZGlhVHlwZXsKICAgICAgICAgICAgU2NoZW1hOiBzaXRlLk9wZW4uR2V0U2NoZW1hKHJlZmxlY3QuVHlwZU9mKFRhc2t7fSkpLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9Cn0KYGBgCi0gYGFwaS5IYXNPcGVyYXRpb25VcGRhdGVgCkEgcm91dGUgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyB0aGUgb3BlcmF0aW9uIGluc3BlY3RlZCBhZnRlciBpdHMgZG9uZSBpbnNwZWN0aW9uLgpgYGBnbwp0eXBlIEdldFRhc2sgZnVuYyhpZCBzdHJpbmcpICpUYXNrCmZ1bmMgKEdldFRhc2spIEFQSU9wZXJhdGlvblVwZGF0ZShvcCAqYXBpLk9wZXJhdGlvbikgewogIG9wLk9wZXJhdGlvbklEID0gIkdFVF9UQVNLX0JZX0lEIgp9CmBgYAotIGByZXouU2l0ZS5PcGVuYCBpcyBhIHJlZmVyZW5jZSB0byBgYXBpLkJ1aWxkZXJgIHdoaWNoIGhhcyBhIGBEb2N1bWVudGAgZmllbGQgd2hpY2ggY2FuIGJlIG1vZGlmaWVkLiBUaGlzIGlzIHRoZSBiYXNlIGRvY3VtZW50IHRvIHVzZSBiZWZvcmUgYnVpbGRpbmcgdGhlIGZpbmFsIGBhcGkuRG9jdW1lbnRgLgotIGByZXouUm91dGVyYCBoYXMgYSBmZXcgbWV0aG9kcyB0byBhc3Npc3QgaW4gZG9jdW1lbnRhdGlvbjoKICAtIGBHZXRPcGVyYXRpb25zKCkgKmFwaS5PcGVyYXRpb25gIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIG9wZXJhdGlvbiB0ZW1wbGF0ZSB0aGF0IGhhcyBhY2N1bXVsYXRlZCBhdCB0aGlzIHBvaW50IGluIHRoZSByb3V0ZXIuIFN1YiByb3V0ZXJzIGluaGVyaXQgdGhpcy4gTWlkZGxld2FyZXMgYWRkIHRvIGl0LgogIC0gYFNldE9wZXJhdGlvbnMoYXBpLk9wZXJhdGlvbilgIHNldHMgdGhlIG9wZXJhdGlvbiB0ZW1wbGF0ZSBpbiBpdHMgZW50aXJldHksIG92ZXJ3cml0aW5nIHdoYXQgaGFzIGJlZW4gYnVpbHQgc28gZmFyLgogIC0gYFVwZGF0ZU9wZXJhdGlvbnMoYXBpLk9wZXJhdGlvbilgIG1lcmdlcyBpbiB0aGUgZmllbGRzIHNldCBvbiB0aGUgZ2l2ZW4gb3BlcmF0aW9uIGludG8gdGhlIG9wZXJhdGlvbiB0ZW1wbGF0ZSBvZiB0aGlzIHJvdXRlci4KICAtIGBHZXRQYXRoKHBhdHRlcm4pICphcGkuUGF0aGAgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgcGF0aCB3aXRoIHRoZSBnaXZlbiBwYXR0ZXJuLiBEZWZpbmluZyBtZXRob2RzIHdpbGwgYWRkIG9wZXJhdGlvbnMgdG8gdGhpcyBwYXRoLiBJZiB0aGUgcGF0aCBoYXMgbm90IGJlZW4gZGVmaW5lZCB5ZXQgbmlsIGlzIHJldHVybmVkLgogIC0gYENyZWF0ZVBhdGgocGF0dGVybikgKmFwaS5QYXRoYCByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBwYXRoIHdpdGggdGhlIGdpdmVuIHBhdHRlcm4sIGNyZWF0aW5nIGl0IGlmIG5lZWQgYmUuCiAgLSBgVXBkYXRlUGF0aChwYXR0ZXJuLCBhcGkuUGF0aClgIG1lcmdlcyBpbiB0aGUgZmllbGRzIHNldCBvbiB0aGUgZ2l2ZW4gcGF0aCB3aXRoIHRoZSBwYXRoIGRlZmluZWQgYXQgdGhlIGdpdmVuIHBhdHRlcm4gLSBjcmVhdGluZyBpdCBpZiBuZWVkIGJlLgogIC0gYFNldFRhZ3ModGFncyBbXXN0cmluZylgIHNldHMgdGhlIHRhZ3Mgb24gdGhlIG9wZXJhdGlvbiB0ZW1wbGF0ZSB0byB0aGlzIHZhbHVlLgogIC0gYEFkZFRhZ3ModGFncylgIGFkZHMgdGhlIHRhZ3MgdG8gdGhlIG9wZXJhdGlvbiB0ZW1wbGF0ZS4KICAtIGBTZXRSZXNwb25zZXMoYXBpLlJlc3BvbnNlcylgIHNldHMgdGhlIHJlc3BvbnNlcyBmb3IgYWxsIG9wZXJhdGlvbnMgZGVmaW5lZCBhZnRlci4gVGhpcyBvdmVyd3JpdGVzIGFueSByZXNwb25zZXMgc3BlY2lmaWVkIHByZXZpb3VzbHkgYnkgdGhlIHVzZXIgb3IgbWlkZGxld2FyZXMuCiAgLSBgQWRkUmVzcG9uc2VzKGFwaS5SZXNwb25zZXMpYCBhZGRzIHRoZSByZXNwb25zZXMgdG8gdGhlIG9wZXJhdGlvbiB0ZW1wbGF0ZS4KICAtIGBBZGRSZXNwb25zZShjb2RlLCBhcGkuUmVzcG9uc2UpYCBhZGRzIHRoZSByZXNwb25zZSB0byB0aGUgb3BlcmF0aW9uIHRlbXBsYXRlLgogIC0gYEhhbmRsZUZ1bmMocGF0dGVybiwgZm4sIC4uLmFwaS5PcGVyYXRpb24pICphcGkuUGF0aGAgY2FuIGFjY2VwdCB6ZXJvIG9yIG1vcmUgb3BlcmF0aW9uIGRlZmluaXRpb25zIHRvIG1lcmdlIGludG8gdGhlIG9wZXJhdGlvbnMgZGVmaW5lZCBhdCB0aGlzIHBhdGggLSBhbmQgdGhlIHJlZmVyZW5jZSB0byB0aGUgcGF0aCBhdCB0aGUgcGF0dGVybiBpcyByZXR1cm5lZC4KICAtIGAibWV0aG9kIihwYXR0ZXJuLCBmbiwgLi4uYXBpLk9wZXJhdGlvbikgKmFwaS5PcGVyYXRpb25gIGlzIGEgbWV0aG9kIHdpdGggdGhlIG5hbWUgb2YgYW55IG9mIHRoZSBIVFRQIG1ldGhvZHMgd2hpY2ggYWRkcyB0aGlzIG1ldGhvZCB0byB0aGUgcGF0aCB3aXRoIHRoZSBwYXR0ZXJuIGFuZCBtZXJnZXMgaW4gYW55IGdpdmVuIG9wZXJhdGlvbnMgd2l0aCB0aGUgb3BlcmF0aW9uIHRlbXBsYXRlIGFuZCB0aGVuIHJldHVybnMgdGhlIHJlZmVyZW5jZSB0byB0aGUgZmluYWwgYnVpbHQgb3BlcmF0aW9uIGZvciB0aGlzIHJvdXRlLgotIFN0cnVjdCB0YWdzLiBGaWVsZHMgb24gYSBzdHJ1Y3QgY2FuIHNwZWNpZnkgdGhlIGBhcGlgIHRhZyB3aGljaCBpcyBhIGNvbW1hLWRlbGltaXRlZCBsaXN0IG9mIGtleT12YWx1ZSBvciBmbGFncy4gSWYgeW91IG5lZWQgdG8gdXNlIGEgY29tbWEgaW4gYSB2YWx1ZSB5b3UgY2FuIGVzY2FwZSBpdCBsaWtlIGBcLGAuCiAgLSBgdGl0bGVgIGV4OiBgYXBpOiJ0aXRsZT1BIHBlcnNvbidzIGFkZHJlc3MiYCAoc2VlIGBhcGkuU2NoZW1hLlRpdGxlYCkKICAtIGBkZXNjYCBvciBgZGVzY3JpcHRpb25gIGV4OiBgYXBpOiJkZXNjPVRoZSB0ZW4gZGlnaXQgaG9tZSBwaG9uZSBudW1iZXIuImAgKHNlZSBgYXBpLlNjaGVtYS5EZXNjcmlwdGlvbmApCiAgLSBgZm9ybWF0YCBleDogYGFwaToiZm9ybWF0PWVtYWlsImAgKHNlZSBgYXBpLlNjaGVtYS5Gb3JtYXRgKQogIC0gYHBhdHRlcm5gIGV4OiBgYXBpOiJwYXR0ZXJuPVxkKyJgIChzZWUgYGFwaS5TY2hlbWEuUGF0dGVybmApCiAgLSBgZGVwcmVjYXRlZGAgZXg6IGBhcGk6ImRlcHJlY2F0ZWQiYCAoc2VlIGBhcGkuU2NoZW1hLkRlcHJlY2F0ZWRgKQogIC0gYHJlcXVpcmVkYCBleDogYGFwaToicmVxdWlyZWQiYCAoc2VlIGBhcGkuU2NoZW1hLk51bGxhYmxlYCkKICAtIGBudWxsYCBvciBgbnVsbGFibGVgIGV4OiBgYXBpOiJudWxsImAgKHNlZSBgYXBpLlNjaGVtYS5OdWxsYWJsZWApCiAgLSBgcmVhZG9ubHlgIGV4OiBgYXBpOiJyZWFkb25seSJgIChzZWUgYGFwaS5TY2hlbWEuUmVhZE9ubHlgKQogIC0gYHdyaXRlb25seWAgZXg6IGBhcGk6IndyaXRlb25seSJgIChzZWUgYGFwaS5TY2hlbWEuV3JpdGVPbmx5YCkKICAtIGBlbnVtYCBleDogYGFwaToiZW51bT0xfDJ8MyJgIChzZWUgYGFwaS5TY2hlbWEuRW51bWApCiAgLSBgbWlubGVuZ3RoYCBleDogYGFwaToibWlubGVuZ3RoPTYiYCAoc2VlIGBhcGkuU2NoZW1hLk1pbkxlbmd0aGApCiAgLSBgbWF4bGVuZ3RoYCBleDogYGFwaToibWF4bGVuZ3RoPTYiYCAoc2VlIGBhcGkuU2NoZW1hLk1heExlbmd0aGApCiAgLSBgbWluaXRlbXNgIGV4OiBgYXBpOiJtaW5pdGVtcz02ImAgKHNlZSBgYXBpLlNjaGVtYS5NaW5JdGVtc2ApCiAgLSBgbWF4aXRlbXNgIGV4OiBgYXBpOiJtYXhpdGVtcz02ImAgKHNlZSBgYXBpLlNjaGVtYS5NYXhJdGVtc2ApCiAgLSBgbXVsdGlwbGVvZmAgZXg6IGBhcGk6Im11bHRpcGxlb2Y9MiJgIChzZWUgYGFwaS5TY2hlbWEuTXVsdGlwbGVPZmApCiAgLSBgbWluYCBvciBgbWluaW11bWAgZXg6IGBhcGk6Im1pbj0xImAgKHNlZSBgYXBpLlNjaGVtYS5NaW5pbXVtYCkKICAtIGBtYXhgIG9yIGBtYXhpbXVtYCBleDogYGFwaToibWF4PTEiYCAoc2VlIGBhcGkuU2NoZW1hLk1heGltdW1gKQogIC0gYGV4Y2x1c2l2ZW1heGltdW1gIG9yIGBleGNsdXNpdmVtYXhgIGV4OiBgYXBpOiJleGNsdXNpdmVtYXg9dHJ1ZSJgIChzZWUgYGFwaS5TY2hlbWEuRXhjbHVzaXZlTWF4aW11bWApCiAgLSBgZXhjbHVzaXZlbWluaW11bWAgb3IgYGV4Y2x1c2l2ZW1pbmAgZXg6IGBhcGk6ImV4Y2x1c2l2ZW1pbiJgIChzZWUgYGFwaS5TY2hlbWEuRXhjbHVzaXZlTWluaW11bWApCgojIyBTaXRlCgpgcmV6LlNpdGVgIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiByb3V0ZXIgdGhhdCBtdXN0IGJlIGNyZWF0ZWQgd2l0aCBgcmV6Lk5ldyhjaGkuUm91dGVyKWAuIFNpdGUgaGFzIGEgZmV3IGFkZGl0aW9uYWwgbWV0aG9kczoKLSBgQnVpbGREb2N1bWVudCgpICphcGkuRG9jdW1lbnRgIHJldHVybnMgdGhlIGJ1aWx0IGRvY3VtZW50IGJhc2VkIG9uIHRoZSByb3V0ZXMgYW5kIG1pZGRsZXdhcmVzIGRlZmluZWQgdGh1cyBmYXIuCi0gYEJ1aWxkSlNPTigpIFtdYnl0ZWAgY2FsbHMgYEJ1aWxkRG9jdW1lbnRgIGFuZCBtYXJzaGFscyBpdCB0byBKU09OLgotIGBTZXJ2ZU9wZW5KU09OKHBhdHRlbilgIHNlcnZlcyB0aGUgYEJ1aWxkSlNPTmAgdG8gYSBHRVQgcm91dGUgYXQgdGhlIGRlZmluZWQgcGF0dGVybi4gVGhpcyBnZXRzIGNhbGxlZCBieSB0aGUgb3RoZXIgYFNlcnZlYCBkb2N1bWVudCByZWxhdGVkIGVuZHBvaW50cyBpZiBpdCB3YXMgbm90IGNhbGxlZCB5ZXQgd2l0aCBhIGRlZmF1bHQgcGF0dGVybiBvZiBgb3BlbmFwaTMuanNvbmAuCi0gYFNlcnZlU3dhZ2dlclVJKHBhdHRlcm4sb3B0aW9ucylgIHNlcnZlcyBhbiBIVE1MIHBhZ2UgYXQgdGhlIGdpdmVuIHBhdHRlcm4gd2hpY2ggcHJlc2VudHMgdGhlIFN3YWdnZXJVSSB3aGljaCBwb2ludHMgdG8gdGhlIE9wZW5BUEkgZG9jdW1lbnQgSlNPTi4KLSBgU2VydmVSZWRvYyhwYXR0ZXJuKWAgc2VydmVzIGFuIEhUTUwgcGFnZSBhdCB0aGUgZ2l2ZW4gcGF0dGVybiB3aGljaCBwcmVzZW50cyB0aGUgUmVkb2Mgd2hpY2ggcG9pbnRzIHRvIHRoZSBPcGVuQVBJIGRvY3VtZW50IEpTT04uCi0gYExpc3RlbihhZGRyKWAgc3RhcnRzIHRoZSBzaXRlIGFuZCBibG9ja3MgdW50aWwgaXQgc3RvcHMuCi0gYFJ1bigpYCBzdGFydHMgdGhlIHNpdGUgYnV0IGxvb2tzIGF0IHRoZSBDTEkgYXJncyBmb3IgYSBgLS1ob3N0YCBhcmd1bWVudCB0byBzcGVjaWZ5IHRoZSBwb3J0LiBJdCBkZWZhdWx0cyB0byBgOjgwYC4KLSBgUHJpbnRQYXRocygpYCBwcmludHMgYW4gQVNDSUkgZ3JpZCB0byB0aGUgY29uc29sZSB3aXRoIHRoZSBwYXRocyBkZXNjcmliZWQgaW4gdGhlIHNpdGUgYXQgdGhpcyBwb2ludCBpbiB0aW1lLiBJbmNsdWRlcyB0aGUgIk1ldGhvZCIsICJVUkwiLCBhbmQgIkFib3V0IiBpZiBhbnkgc3VtbWFyeSBvciBkZXNjcmlwdGlvbnMgYXJlIGdpdmVuLiBFeGFtcGxlIG91dHB1dDoKYGBgCuKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkArilIJNZXRob2Qg4pSCVVJMICAgICAgICDilIJBYm91dCAgICAgICAgICAgICAgIOKUggrilJzilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQK4pSCR0VUICAgIOKUgi90YXNrL3tpZH0g4pSCR2V0IHRhc2sgYnkgaWQgICAgICDilIIK4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkCuKUgkRFTEVURSDilIIvdGFzay97aWR9IOKUgkRlbGV0ZSB0YXNrIGJ5IGlkICAg4pSCCuKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpArilIJHRVQgICAg4pSCL2F1dGggICAgICDilIJHZXQgY3VycmVudCBzZXNzaW9uIOKUggrilJzilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQK4pSCUE9TVCAgIOKUgi9hdXRoICAgICAg4pSCTG9naW4gICAgICAgICAgICAgICDilIIK4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkCuKUgkRFTEVURSDilIIvYXV0aCAgICAgIOKUgkxvZ291dCAgICAgICAgICAgICAg4pSCCuKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmApgYGAK readmeEtag: '"217d7286b504a8e107971f6bc8c66d821cb5444e"' readmeLastModified: Sun, 07 Apr 2024 01:16:46 GMT repositoryId: 569863233 description: >- REST (easy) framework in Go with out of the box OpenAPI generation, validation, generics, and much more created: '2022-11-23T19:38:15Z' updated: '2024-03-30T00:18:29Z' language: Go archived: false stars: 2 watchers: 3 forks: 0 owner: ClickerMonkey logo: https://avatars.githubusercontent.com/u/421233?v=4 license: GPL-3.0 repoEtag: '"205587c8df31dc4ce86d7f3482c18d1c1fca10a81addcdb061cd01f4ec33b4f2"' repoLastModified: Sat, 30 Mar 2024 00:18:29 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/bhagyas/alfresco-swagger-gen v3: true repositoryMetadata: base64Readme: >- IyBhbGZyZXNjby1zd2FnZ2VyLWdlbgpPcGVuQVBJIChTd2FnZ2VyKSBkZWZpbml0aW9uIGdlbmVyYXRvciBmb3IgQWxmcmVzY28gV2Vic2NyaXB0IEZpbGVzCgojIyBJbnN0YWxsYXRpb24KCiMjIyBWaWEgTlBNIApSdW4gYG5wbSBpbnN0YWxsIC1nIGFsZnJlc2NvLXN3YWdnZXItZ2VuYAoKT2ZmaWNpYWwgTlBNIFBhY2thZ2UgaXMgYXQgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvYWxmcmVzY28tc3dhZ2dlci1nZW4KCiMjIyBWaWEgQ2xvbmluZyAKQ2xvbmUgdGhlIHJlcG9zaXRvcnkgYW5kIHJ1biBgbnBtIGxpbmtgIGZyb20gdGhlIHByb2plY3Qgcm9vdC4KCiMjIFVzYWdlCgojIyMgR2VuZXJhdGluZyBPcGVuQVBJIChTd2FnZ2VyKSBEb2N1bWVudApSZWZlciB0byB0aGUgY29tbWFuZCBsaW5lIHN5bnRheCBiZWxvdy4KCmBgYAphbGZyZXNjby1zd2FnZ2VyLWdlbiAtLWhlYWRlciAuLi9teS1wcm9qZWN0L215LWhlYWRlci55YW1sIFwKICAgICAgICAgICAgICAgICAgICAgLS1kZXN0aW5hdGlvbiAuL215LXByb2plY3Qvc3dhZ2dlci1kZWZpbml0aW9ucy55YW1sIFwKICAgICAgICAgICAgICAgICAgICAgLS1zY2FuUGF0aCAuL215LXByb2plY3Qvc3JjICAKYGBgICAgICAgICAgICAgICAgICAgCgojIyMgUGFyYW1ldGVyIFJlZmVyZW5jZQp8IFBhcmFtZXRlciB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgaGVhZGVyICB8IFNwZWNpZnkgYSBjdXN0b20gaGVhZGVyIGZpbGUgdG8gYmUgdXNlZCBmb3IgT3BlbkFQSSAoU3dhZ2dlcikgZGVmaW5pdGlvbiBnZW5lcmF0aW9uIHwKfCBkZXN0aW5hdGlvbiB8IERlc3RpbmF0aW9uIHBhdGggKHRhcmdldCBmaWxlKSBmb3IgdGhlIGdlbmVyYXRlZCBBUEkgZGVmaW5pdGlvbiBmaWxlLiB8Cnwgc2NhblBhdGggfCBSb290IHBhdGggZm9yIHNjYW5uaW5nIGZvciBBbGZyZXNjbyB3ZWJzY3JpcHQgZGVzY3JpcHRvciBmaWxlcyB8CgoqIEFuIGV4YW1wbGUgaGVhZGVyIGZpbGUgaXMgZm91bmQgaW4gYC4vdGVtcGxhdGVzL2RlZmF1bHRfaGVhZGVyLnlhbWxgIHdpdGhpbiB0aGUgc291cmNlLgoKIyMjIFJ1bm5pbmcgU3dhZ2dlci1VSQoKYWxmcmVzY28tc3dhZ2dlci1nZW4gYWxsb3dzIHlvdSB0byBydW4gU3dhZ2dlci1VSSB3aXRoIHlvdXIgZ2VuZXJhdGVkIE9wZW5BUEkgZG9jdW1lbnQuIEl0IGNvcGllcyB0aGUgc3BlY2lmaWVkIE9wZW5BUEkgZG9jdW1lbnQgdG8gYSBjdXN0b20gZm9sZGVyIGFuZCBtb3VudHMgaXQgdG8gYSBkb2NrZXIgaW1hZ2UgcnVubmluZyBTd2FnZ2VyLVVJLgoKVGhlIGZvbGxvd2luZyBjb21tYW5kIHJ1bnMgdGhlIGJ1aWx0LWluIGBkb2NrZXItY29tcG9zZWAgZmlsZSBhbmQgb3BlbnMgdGhlIGJyb3dzZXIgc2hvd2luZyB0aGUgU3dhZ2dlci1VSS4KCmBgYAphbGZyZXNjby1zd2FnZ2VyLWdlbiB1aSAtLWRlc3RpbmF0aW9uIC4vbXktcHJvamVjdC9zd2FnZ2VyLWRlZmluaXRpb25zLnlhbWwgXAomJiBvcGVuIGh0dHA6Ly9sb2NhbGhvc3Q6ODAKYGBgCgoKCiMjIE1hcHBpbmcKIyMjIEhvdyB0byBtYXAgIFJlc3BvbnNlIFNjaGVtYXMKQWRkIGA8eC1yZXNwb25zZS1zY2hlbWE+TXlSZXNwb25zZVNjaGVtYTwveC1yZXNwb25zZS1zY2hlbWE+YCB0byB5b3VyIHdlYnNjcmlwdCBkZXNjcmlwdG9yIGZpbGUuCgpgTXlSZXNwb25zZVNjaGVtYWAgY2FuIGJlIGRlZmluZWQgaW4geW91ciBoZWFkZXIgZmlsZS4KCiMjIEF1dGhvcgotIEJoYWd5YSBTaWx2YSAtIFtAYmhhZ3lhc10oaHR0cHM6Ly9saW5rZWRpbi5jb20vaW4vYmhhZ3lhcyk= readmeEtag: '"caaf2ec66903f2ef37335a39b5dd3b52dd1eabe0"' readmeLastModified: Wed, 04 Aug 2021 15:46:03 GMT repositoryId: 203178879 description: OpenAPI (Swagger) definition generator for Alfresco Webscript Files created: '2019-08-19T13:30:53Z' updated: '2023-10-05T21:23:05Z' language: JavaScript archived: false stars: 2 watchers: 4 forks: 0 owner: bhagyas logo: https://avatars.githubusercontent.com/u/750003?v=4 repoEtag: '"5d2c9ee2d4886736a14b25e05b612e1a92cc861bae0a18548e527eafb04d529c"' repoLastModified: Thu, 05 Oct 2023 21:23:05 GMT foundInMaster: true category: - Description Validators - Parsers id: 57c04bf601ff68939256e9adabb1b734 - source: openapi3 tags repository: https://github.com/vinoth5595/phone-bridge v3: true repositoryMetadata: base64Readme: >- IyBQaG9uZSBCcmlkZ2UgUHJvamVjdCAoTWljcm9zZXJ2aWNlcykKCmRvY2tlci1jb21wb3NlIHVwIChUbyBzdGFydCBNb25nb0RCICYgQXBhY2hlIEthZmthKQoKZG9ja2VyLWNvbXBvc2UgZG93biAoVG8gc3RvcCBNb25nb0RCICYgQXBhY2hlIEthZmthKQoKU3RhcnQgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBiZWxvdyBvcmRlci4KCnwgQXBwbGljYXRpb24gIHwgRGVzY3JpcHRpb24gfCBQb3J0IHwKfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfAp8IHBob25lYnJpZGdlLWRpc2NvdmVyeSAgfCBQaG9uZSBicmlkZ2UgZXVyZWthIHNlcnZlciAgfCA4NzYxICB8CnwgcGhvbmVicmlkZ2UtYWRtaW4gIHwgUGhvbmUgYnJpZGdlIGFkbWluICB8IDgwOTMgIHwKfCBwaG9uZWJyaWRnZS1jb25maWctc2VydmVyICB8IFBob25lIGJyaWRnZSBjb25maWcgc2VydmVyICB8IDg4ODggIHwKfCBwaG9uZWJyaWRnZS1wb3J0YWwgIHwgUG9ydGFsIHNlcnZpY2UgJiBjYW1wYWlnbiBzZXJ2aWNlICB8IDgwODAgIHwKfCBwaG9uZWJyaWRnZS1hdXRoc2VydmVyICB8IFBob25lIGJyaWRnZSBhdXRoIHNlcnZlciAgfCA4MDgxICB8CnwgcGhvbmVicmlkZ2UtZ2F0ZXdheS1zZXJ2ZXIgIHwgUGhvbmUgYnJpZGdlIGdhdGV3YXkgc2VydmVyICB8IDgwODUgIHwKfCBwaG9uZS1icmlkZ2UtdWkgIHwgVXNlciBpbnRlcmZhY2UgZm9yIHBob25lIGJyaWRnZSBhcHBsaWNhdGlvbiAgfCA0MjAwICB8CnwgcGhvbmVicmlkZ2UtY29tbW9uICB8IFByb2plY3Qgd2l0aCBjb21tb24gZmlsZXMgIHwgTkEgIHw= readmeEtag: '"b71052d9cd74602be4f65147a01d21c446d97ed9"' readmeLastModified: Tue, 03 May 2022 07:07:58 GMT repositoryId: 243821819 description: Phone Bridge Project created: '2020-02-28T17:48:05Z' updated: '2022-05-03T07:07:26Z' language: SCSS archived: false stars: 2 watchers: 2 forks: 1 owner: Vinoth5595 logo: https://avatars.githubusercontent.com/u/32703692?v=4 repoEtag: '"6f21fa0d4dc32bfa942976013449f70abafafe30989d7be4dd7f97a72e570769"' repoLastModified: Tue, 03 May 2022 07:07:26 GMT foundInMaster: true category: - Documentation - Server Implementations id: b9b0dcb83f765a04a5eed22c05c48a46 - source: openapi3 tags repository: https://github.com/0xtheprodev/spring-clean-example v3: true id: eb10ef37c7a934b2e312427da9c2dbe4 repositoryMetadata: base64Readme: >- IyBzcHJpbmctY2xlYW4tZXhhbXBsZQoKWyFbSmF2YV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhLSUyM0VEOEIwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWphdmEmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cuamF2YS5jb20vKQpbIVtTcHJpbmddKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3ByaW5nLSUyMzZEQjMzRi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXNwcmluZyZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3NwcmluZy5pby8pClshW0FwYWNoZSBUb21jYXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYXBhY2hlJTIwdG9tY2F0LSUyM0Y4REM3NS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWFwYWNoZS10b21jYXQmbG9nb0NvbG9yPWJsYWNrKV0oaHR0cHM6Ly90b21jYXQuYXBhY2hlLm9yZy8pClshW09wZW5BUEldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvb3BlbmFwaS02QkE1Mzk/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPW9wZW5hcGktaW5pdGlhdGl2ZSZsb2dvQ29sb3I9ZmZmKV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykKWyFbR3JhcGhRTF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tR3JhcGhRTC1FMTAwOTg/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWdyYXBocWwmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9ncmFwaHFsLm9yZy8pClshW09wZW4gSXNzdWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcmF3LzB4VGhlUHJvRGV2L3NwcmluZy1jbGVhbi1leGFtcGxlP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL2dpdGh1Yi5jb20vMHhUaGVQcm9EZXYvc3ByaW5nLWNsZWFuLWV4YW1wbGUvaXNzdWVzKQpbIVtDbG9zZWQgSXNzdWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtY2xvc2VkLXJhdy8weFRoZVByb0Rldi9zcHJpbmctY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tLzB4VGhlUHJvRGV2L3NwcmluZy1jbGVhbi1leGFtcGxlL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FjbG9zZWQpClshW09wZW4gUHVsbHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy1wci1yYXcvMHhUaGVQcm9EZXYvc3ByaW5nLWNsZWFuLWV4YW1wbGU/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS8weFRoZVByb0Rldi9zcHJpbmctY2xlYW4tZXhhbXBsZS9wdWxscykKWyFbQ2xvc2VkIFB1bGxzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcHItY2xvc2VkLXJhdy8weFRoZVByb0Rldi9zcHJpbmctY2xlYW4tZXhhbXBsZT9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9naXRodWIuY29tLzB4VGhlUHJvRGV2L3NwcmluZy1jbGVhbi1leGFtcGxlL3B1bGxzP3E9aXMlM0FwcitpcyUzQWNsb3NlZCkKWyFbQ29udHJpYnV0b3JzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9jb250cmlidXRvcnMvMHhUaGVQcm9EZXYvc3ByaW5nLWNsZWFuLWV4YW1wbGU/c3R5bGU9Zm9yLXRoZS1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS8weFRoZVByb0Rldi9zcHJpbmctY2xlYW4tZXhhbXBsZS9ncmFwaHMvY29udHJpYnV0b3JzKQpbIVtBY3Rpdml0eV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFzdC1jb21taXQvMHhUaGVQcm9EZXYvc3ByaW5nLWNsZWFuLWV4YW1wbGU/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsYWJlbD1tb3N0JTIwcmVjZW50JTIwYWN0aXZpdHkpXShodHRwczovL2dpdGh1Yi5jb20vMHhUaGVQcm9EZXYvc3ByaW5nLWNsZWFuLWV4YW1wbGUvcHVsc2UpCgojIyBEZXNjcmlwdGlvbgoKX0V4YW1wbGUgQXBwbGljYXRpb24gSW50ZXJmYWNlIHVzaW5nIFNwcmluZyBmcmFtZXdvcmsgaW4gSmF2YV8KClRoaXMgZXhhbXBsZSBzaG93Y2FzZXMgUmVwb3NpdG9yeSBQYXR0ZXJuIGluIEhleGFnb25hbCBBcmNoaXRlY3R1cmUgXyhhbHNvIGtub3duIGFzIENsZWFuIEFyY2hpdGVjdHVyZSlfLiBIZXJlIHdlIGhhdmUgdHdvIEVudGl0aWVzIC0gQm9va3MgYW5kIEF1dGhvcnMsIHdob3NlIHJlbGF0aW9uc2hpcHMgaGF2ZSBiZWVuIGV4cGxvaXRlZCB0byBjcmVhdGUgQ1JVRCBlbmRwb2ludCBpbiBSRVNUIHVuZGVyIE9wZW5BUEkgc3RhbmRhcmQuCgojIyBJbnN0YWxsYXRpb24KCi0gUnVuIHRoZSBhcHBsaWNhdGlvbiB1c2luZyBbTWF2ZW5dKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy8pOgoKICBgYGBzaAogICQgLi9tdm53IHNwcmluZy1ib290OnJ1bgogIGBgYAoKLSBGb3IgV2luZG93cyB1c2VyczoKCiAgYGBgcG93ZXJzaGVsbAogICQgbXZudyBzcHJpbmctYm9vdDpydW4KICBgYGAKCiMjIFRlc3RpbmcKCi0gUnVuIHRlc3Qgc3VpdGUgYWxvbmcgd2l0aCBDb3ZlcmFnZSByZXBvcnRpbmc6CgogIGBgYHNoCiAgJCAuL212bncgamFjb2NvOnByZXBhcmUtYWdlbnQgdGVzdCBpbnN0YWxsIGphY29jbzpyZXBvcnQKICBgYGAKCiAgb3IgZm9yIFdpbmRvd3MKCiAgYGBgcG93ZXJzaGVsbAogICQgbXZudyBqYWNvY286cHJlcGFyZS1hZ2VudCB0ZXN0IGluc3RhbGwgamFjb2NvOnJlcG9ydAogIGBgYAoKIyMgU3dhZ2dlciBVSQoKLSBPcGVuIFN3YWdnZXIgVUkgYXQgYGxvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWlgIGFmdGVyIHJ1bm5pbmcgdGhlIGFwcGxpY2F0aW9uLgoKIyMgTGljZW5zZQoKJmNvcHk7IE1JVCBMaWNlbnNlCg== readmeEtag: '"be85193f84db044d8ace0e35e81f1cb84b558a6c"' readmeLastModified: Tue, 13 Dec 2022 10:58:53 GMT repositoryId: 510053852 description: Clean Architecture Example with Spring Framework (Java) created: '2022-07-03T14:57:09Z' updated: '2023-07-24T14:37:13Z' language: Java archived: false stars: 2 watchers: 0 forks: 0 owner: 0xTheProDev logo: https://avatars.githubusercontent.com/u/14367736?v=4 license: MIT repoEtag: '"1f0cde315c2c8dccd15f3b842ab8497033df2525e98f6c320d9bac1105796a75"' repoLastModified: Mon, 24 Jul 2023 14:37:13 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/progyan1997/spring-clean-example - source: openapi3 tags repository: https://github.com/lionelsu/store-manager-api v3: true id: 04ee39c98b6167d24883073bc0878fd5 repositoryMetadata: base64Readme: >- PCEtLSBFc3RlIMOpIHVtIGNvbWVudMOhcmlvOiBvbWl0aXIgb3MgdMOzcGlkb3MgcmVkdW5kYW50ZXMgLS0+CjwhLS0gICoqfCBbQnJhemlsXShSRUFETUUubWQpIHwgW2FzZGZdKFJFQURNRV9lbi5tZCkgfCoqIC0tPgoKIyBTdG9yZSBNYW5hZ2VyCgpbRG9jdW1lbnRhw6fDo28gZGEgQVBJIG5vIFBvc3RtYW5dKGh0dHBzOi8vZG9jdW1lbnRlci5nZXRwb3N0bWFuLmNvbS92aWV3LzMwMTU5MzU1LzJzOVlKZ1RMSEIpCgpPIFN0b3JlIE1hbmFnZXIgQVBJIMOpIHVtYSBzb2x1w6fDo28gY29tcGxldGEgZGUgZ2VyZW5jaWFtZW50byBkZSB2ZW5kYXMgcG9yIGRyb3Agc2hpcHBpbmcuIEVzdGEgQVBJIG9mZXJlY2Ugb3BlcmHDp8O1ZXMgZGUgQ1JVRCAoQ3JlYXRlLCBSZWFkLCBVcGRhdGUsIERlbGV0ZSkgcGFyYSBmYWNpbGl0YXIgbyBnZXJlbmNpYW1lbnRvIGRlIHZlbmRhcy4gRGVzZW52b2x2aWRhIGNvbSBmb2NvIG5hIHF1YWxpZGFkZSBlIHNlZ3VpbmRvIGEgbWV0b2RvbG9naWEgVEREIChUZXN0LURyaXZlbiBEZXZlbG9wbWVudCksIGEgQVBJIGFkb3RhIHVtYSBhcnF1aXRldHVyYSBlbSBjYW1hZGFzIGNvbnNpc3RlbnRlIGNvbSBNb2RlbCwgU2VydmljZSBlIENvbnRyb2xsZXIgKE1TQykuCgo8ZGV0YWlscz4KCjxzdW1tYXJ5PkZlcnJhbWVudGFzIFV0aWxpemFkYXM8L3N1bW1hcnk+CgotICoqVGVjbm9sb2dpYXMgUHJpbmNpcGFpczoqKgogIC0gTm9kZS5qcwogIC0gRXhwcmVzcy5qcwogIC0gTXlTUUwgU2VydmVyCgotICoqVGVzdGVzOioqCiAgLSBNb2NoYQogIC0gQ2hhaQogIC0gU2lub24KCi0gKipEb2N1bWVudGHDp8OjbzoqKgogIC0gU3dhZ2dlcgogIC0gUG9zdG1hbgoKPC9kZXRhaWxzPgoKIyMgUHLDqS1SZXF1aXNpdG9zCgpVdGlsaXplIG8gRG9ja2VyOgoKLSBbRG9ja2VyICYgRG9ja2VyIENvbXBvc2VdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2NvbXBvc2UvKQoKPCEtLSAjIyBGZWF0dXJlcyAtLT4KIyMgSW5zdGFsYcOnw6NvCgoxLiBDbG9uYXIgbyBSZXBvc2l0w7NyaW8KCiAgICBQcmltZWlybywgY29waWUgb3UgY2xvbmUgZXN0ZSByZXBvc2l0w7NyaW8gcGFyYSBvIHNldSBzaXN0ZW1hIGxvY2FsIHVzYW5kbyBvIEdpdDoKCiAgICBgYGBiYXNoCiAgICBnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206bGlvbmVsc3Uvc3RvcmUtbWFuYWdlci1hcGkuZ2l0ICYmIGNkIHN0b3JlLW1hbmFnZXItYXBpCiAgICBgYGAKCjIuIEluaWNpYXIgbyBDb250w6ppbmVyIERvY2tlcgoKICAgIFV0aWxpemUgbyBEb2NrZXIgQ29tcG9zZSBwYXJhIGluaWNpYXIgbyBjb250w6ppbmVyIGRvIFN0b3JlIE1hbmFnZXI6CgogICAgYGBgYmFzaAogICAgZG9ja2VyIGNvbXBvc2UgdXAgLWQKICAgIGBgYAoKMy4gQWNlc3NlIGEgZG9jdW1lbnRhw6fDo28gZGEgQVBJIG5vIG5hdmVnYWRvcjoKCiAgICBgYGBodHRwCiAgICBodHRwOi8vMTI3LjAuMC4xOjMwMDEvdjEvZG9jcy8KICAgIGBgYAoKIyMgVXNvCgpQYXJhIGludGVyYWdpciBjb20gbyBTdG9yZSBNYW5hZ2VyLCB2b2PDqiBwb2RlIHVzYXIgb3Mgc2VndWludGVzIGNvbWFuZG9zOgoKVmlzdWFsaXphw6fDo28gZGUgTG9ncwoKYGBgYmFzaApkb2NrZXIgbG9ncyAtbiAxMCAtZiBzdG9yZV9tYW5hZ2VyCmBgYAoKTGluaGEgZGUgQ29tYW5kbyBJbnRlcmF0aXZhLCB1c2FkYSBwYXJhICoqW3Rlc3Rhcl0oI3Rlc3RlcykqKiBhIGFwbGljYcOnw6NvCgpgYGBiYXNoCmRvY2tlciBleGVjIC1pdCBzdG9yZV9tYW5hZ2VyIGJhc2gKYGBgCgpSZXNldGFyIG8gQmFuY28gZGUgRGFkb3MgKGRldmUgc2VyIGV4ZWN1dGFkbyBkZW50cm8gZGEgKipbbGluaGEgZGUgY29tYW5kbyBpbnRlcmF0aXZhXSgjdXNvKSoqKQoKYGBgYmFzaApucG0gcnVuIGRiOnJlc2V0CmBgYAoKIyMgUm90YXMgZGEgQVBJCgoqKlByb2R1dG9zOioqCgotICoqYFBPU1QgL3Byb2R1Y3RzYCoqOiBDYWRhc3RyYSB1bSBub3ZvIHByb2R1dG8uCi0gKipgR0VUIC9wcm9kdWN0c2AqKjogUmV0b3JuYSB0b2RvcyBvcyBwcm9kdXRvcyBjYWRhc3RyYWRvcy4KLSAqKmBHRVQgL3Byb2R1Y3RzLzppZGAqKjogUmV0b3JuYSB1bSBwcm9kdXRvIGVzcGVjw61maWNvIHBlbG8gSUQuCi0gKipgR0VUIC9wcm9kdWN0cy9zZWFyY2hgKio6IFJldG9ybmEgcHJvZHV0b3MgY29tIGJhc2UgbmEgY29uc3VsdGEgZGUgbm9tZS4KLSAqKmBQVVQgL3Byb2R1Y3RzLzppZGAqKjogQXR1YWxpemEgdW0gcHJvZHV0byBwZWxvIElELgotICoqYERFTEVURSAvcHJvZHVjdHMvOmlkYCoqOiBFeGNsdWkgdW0gcHJvZHV0byBwZWxvIElELgoKKipWZW5kYXM6KioKCi0gKipgUE9TVCAvc2FsZXNgKio6IENhZGFzdHJhIHVtYSBub3ZhIHZlbmRhLgotICoqYEdFVCAvc2FsZXNgKio6IFJldG9ybmEgdG9kYXMgYXMgdmVuZGFzIGNhZGFzdHJhZGFzLgotICoqYEdFVCAvc2FsZXMvOmlkYCoqOiBSZXRvcm5hIHVtYSB2ZW5kYSBlc3BlY8OtZmljYSBwZWxvIElELgotICoqYFBVVCAvc2FsZXMvOnNhbGVJZC9wcm9kdWN0cy86cHJvZHVjdElkL3F1YW50aXR5YCoqOiBBdHVhbGl6YSBhIHF1YW50aWRhZGUgZGUgdW0gcHJvZHV0byBlbSB1bWEgdmVuZGEuCi0gKipgREVMRVRFIC9zYWxlcy86aWRgKio6IEV4Y2x1aSB1bWEgdmVuZGEgcGVsbyBJRC4KCjxkZXRhaWxzPgoKICA8c3VtbWFyeT5Db25maWd1cmHDp8Ojbzwvc3VtbWFyeT4KCiAgVmFyacOhdmVpcyBkZSBhbWJpZW50ZSBkZW50cm8gZG8gY29udGFpbmVyOgoKICBgYGBteXNxbAogIE1ZU1FMX1VTRVI6IHJvb3QKICBNWVNRTF9QQVNTV09SRDogcGFzc3dvcmQKICBNWVNRTF9IT1NUTkFNRTogZGIKICBNWVNRTF9QT1JUOiAzMzA2CiAgUE9SVDogMzAwMQogIGBgYAoKPC9kZXRhaWxzPgoKIyMgVGVzdGVzCgotIERlbnRybyBkYSAqKltsaW5oYSBkZSBjb21hbmRvIGludGVyYXRpdmFdKCN1c28pKiosIHZvY8OqIHBvZGUgZXhlY3V0YXIgb3Mgc2VndWludGVzIHRlc3RlczoKCiAgLSBUZXN0ZXMgVW5pdMOhcmlvczoKCiAgYGBgYmFzaAogIG5wbSBydW4gdGVzdDptb2NoYQogIGBgYAoKICAtIENvYmVydHVyYSBkZSBUZXN0ZXM6CgogIGBgYGJhc2gKICBucG0gcnVuIHRlc3Q6Y292ZXJhZ2UKICBgYGAKCiAgLSBUZXN0ZXMgZGUgTXV0YcOnw6NvOgoKICBgYGBiYXNoCiAgbnBtIHJ1biB0ZXN0Om11dGF0aW9uCiAgYGBgCgojIyBIYWJpbGlkYWRlcyBkZXNlbnZvbHZpZGFzCgpVc2VpIG8gYE5vZGUuanNgIGNvbSBvIGBFeHByZXNzLmpzYCBjb21vIGJhc2UgZGEgbWluaGEgYXBsaWNhw6fDo28sIHBlcm1pdGluZG8gY3JpYXIgZmFjaWxtZW50ZSBlbmRwb2ludHMgYEhUVFBgIHBhcmEgYXRlbmRlciDDoHMgbmVjZXNzaWRhZGVzIGRvIHNpc3RlbWEuCgpPIGJhbmNvIGRlIGRhZG9zIGBNeVNRTCBTZXJ2ZXJgIGZvaSBlc2NvbGhpZG8gcGFyYSBhcm1hemVuYXIgZGFkb3MgcmVsYWNpb25hZG9zIGEgcHJvZHV0b3MsIHZlbmRhcyBlIG91dHJvcyBlbGVtZW50b3MgY3J1Y2lhaXMgZG8gc2lzdGVtYS4KCkEgcXVhbGlkYWRlIGRvIGPDs2RpZ28gZm9pIGdhcmFudGlkYSBwb3IgbWVpbyBkZSB0ZXN0ZXMgcmlnb3Jvc29zIHVzYW5kbyBgTW9jaGFgLCBgQ2hhaWAgZSBgU2lub25gLiBFc3NlcyB0ZXN0ZXMgYXZhbGlhcmFtIG1pbnVjaW9zYW1lbnRlIG9zIGVuZHBvaW50cywgc2VydmnDp29zIGUgZnVuw6fDtWVzIHBhcmEgZ2FyYW50aXIgcXVlIHR1ZG8gZnVuY2lvbmFzc2UgY29ycmV0YW1lbnRlLgoKUGFyYSBkb2N1bWVudGFyIGEgYEFQSWAsIHV0aWxpemVpIG8gYFN3YWdnZXJgLCBxdWUgaW5jbHVpIGluZm9ybWHDp8O1ZXMgc29icmUgcm90YXMsIHBhcsOibWV0cm9zIGUgZXhlbXBsb3MgcHLDoXRpY29zLgoKVGFtYsOpbSBkaXNwb25pYmlsaXplaSB1bWEgY29sZcOnw6NvIG5vIGBQb3N0bWFuYCBwYXJhIGZhY2lsaXRhciB0ZXN0ZXMgZSBpbnRlcmHDp8O1ZXMgY29tIGEgYEFQSWAuCgpDb20gZXNzYXMgZXRhcGFzIGNvbmNsdcOtZGFzLCBlc3RvdSBjb25maWFudGUgbmEgZW50cmVnYSBkZSB1bWEgYEFQSWAgc8OzbGlkYSBlIGZ1bmNpb25hbCwgcHJvbnRhIHBhcmEgYXRlbmRlciDDoHMgbmVjZXNzaWRhZGVzIGRvcyB1c3XDoXJpb3MuCg== readmeEtag: '"9590ad8377f9eebb892c3e2ed7b00347604dae65"' readmeLastModified: Sat, 07 Oct 2023 19:06:01 GMT repositoryId: 692222558 description: >- RESTful API offering comprehensive CRUD functionality for sales management, specifically drop shipping. Developed with TDD methodology. created: '2023-09-15T21:04:38Z' updated: '2023-12-02T18:02:08Z' language: JavaScript archived: false stars: 2 watchers: 1 forks: 0 owner: lionelsu logo: https://avatars.githubusercontent.com/u/50457741?v=4 repoEtag: '"2e68dabb357f4a8f69e8694b500a95ac3a5b4164686e74111834f9e4e96cd500"' repoLastModified: Sat, 02 Dec 2023 18:02:08 GMT category: Code Generators foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/bump-sh-examples/rails-design-first v3: true v3_1: true id: 04a4ac10f8421c07973b6c7150ad5567 repositoryMetadata: base64Readme: >- IyBSYWlscyBIZWxsbyBPcGVuQVBJCgpUaGlzIHJlcG9zaXRvcnkgd2FzIGJ1aWx0IGFzIHNhbXBsZSBjb2RlIGZvciB0aGUgQnVtcC5zaCBndWlkZSBvbiBfW1VzaW5nIE9wZW5BUEkgdG8gc2ltcGxpZnkgYnVpbGRpbmcgYW5kIHRlc3RpbmcgUnVieSBvbiBSYWlscyBBUElzXShodHRwczovL2RvY3MuYnVtcC5zaC9ndWlkZXMvb3BlbmFwaS9kZXNpZ24tZmlyc3QtcmFpbHMvKV8uIExlYXJuIHRvIHVzZSB0aGUgQVBJIERlc2lnbiBGaXJzdCB3b3JrZmxvdywgYW5kIHNpbXBsaWZ5IHlvdXIgUmFpbHMgY29kZSBieSBub3QgaGF2aW5nIHRvIHJlcGVhdCB5b3VyIEFQSSBjb250cmFjdCBpbiB2YWxpZGF0aW9uIGFuZCBjb250cmFjdCB0ZXN0aW5nIGFzIHdlbGwgYXMgZG9jdW1lbnRhdGlvbi4gSnVzdCBkbyBpdCBvbmNlLCBtYWtlIGVhc3kgY29kZSwgdGhlbiBwb3AgaXQgYWxsIG9udG8gQnVtcC5zaCB0byBoYXZlIFtncmVhdCBBUEkgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9idW1wLnNoL2J1bXAtZXhhbXBsZXMvaHViL2NvZGUtc2FtcGxlcy9kb2MvcmFpbHMtZGVzaWduLWZpcnN0KS4KCiMjIFVzYWdlCgpDbG9uZSB0aGUgcmVwb3NpdG9yeSBkb3duIHRvIGdpdmUgaXQgYSB0cnkuCgpgYGAKIyBTZXQgZXZlcnl0aGluZyB1cAokIGJ1bmRsZSBpbnN0YWxsCgojIFN0YXJ0IHRoZSBzZXJ2ZXIKJCByYWlscyBzCgojIFBva2UgdGhlIEFQSSBhbmQgZ2V0IGF1dG9tYXRlZCAgZXJyb3JzCiQgY3VybCAtWCBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC93aWRnZXRzIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1kICd7fScgIHwganEgLgoKewogICJ0aXRsZSI6ICJCYWQgUmVxdWVzdCBCb2R5IiwKICAic3RhdHVzIjogNDAwLAogICJlcnJvcnMiOiBbCiAgICB7CiAgICAgICJtZXNzYWdlIjogIm9iamVjdCBhdCByb290IGlzIG1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydGllczogbmFtZSIsCiAgICAgICJwb2ludGVyIjogIiIsCiAgICAgICJjb2RlIjogInJlcXVpcmVkIgogICAgfQogIF0KfQpgYGAKCkdpdmUgaXQgYSB0cnksIHBsYXkgYXJvdW5kIHdpdGggdGhlIE9wZW5BUEksIGFuZCBzZWUgaG93IGl0IHJlc3BvbmRzIHRvIGRpZmZlcmVudCBzY2VuYXJpb3MuIAoKVGhlbiB5b3UgY2FuIHJ1biBgcnNwZWNgIHRvIHNlZSBpZiB0aGUgQVBJIHJlc3BvbnNlcyBtYXRjaCB3aGF0IE9wZW5BUEkgZXhwZWN0LCB3aGljaCB3aGVuIGltcGxlbWVudGVkIGluIHlvdXIgYXBwbGljYXRpb24gd2lsbCBoZWxwIG1ha2Ugc3VyZSB5b3VyIEFQSSBpcyBhY3R1YWxseSBkb2luZyB3aGF0IHlvdXIgZG9jcyBhcmUgc2F5aW5nLCBvciBtYWtlIHN1cmUgeW91ciBkb2NzIGFyZSBzYXlpbmcgd2hhdCB5b3VyIEFQSSBpcyBkb2luZywgd2hpY2hldmVyIHdheSByb3VuZCB5b3UgcHJlZmVyIHRvIHRoaW5rIG9mIGl0LgoKUHJldmlldyBob3cgdGhlIEFQSSByZWZlcmVuY2UgZG9jcyBsb29rIFtvbiBCdW1wLnNoXShodHRwczovL2J1bXAuc2gvYnVtcC1leGFtcGxlcy9odWIvY29kZS1zYW1wbGVzL2RvYy9yYWlscy1kZXNpZ24tZmlyc3QpLgoKIyMgTGljZW5zZQoKVGhlIGNvbnRlbnRzIG9mIHRoaXMgcmVwb3NpdG9yeSBhcmUgbGljZW5zZWQgdW5kZXIgW0NDIEJZLU5DLVNBCiAgNC4wXSguL0xJQ0VOU0VfQ0MtQlktTkMtU0EtNC4wKS4K readmeEtag: '"c03cf67788386b81839994ea8f387da606473b63"' readmeLastModified: Mon, 11 Mar 2024 16:05:27 GMT repositoryId: 740102881 description: >- Speed up your Rails API development with OpenAPI request validation and contract testing. created: '2024-01-07T14:36:56Z' updated: '2024-05-05T21:52:45Z' language: Ruby archived: false stars: 2 watchers: 2 forks: 0 owner: bump-sh-examples logo: https://avatars.githubusercontent.com/u/157144805?v=4 license: NOASSERTION repoEtag: '"e6325e529e455cb2beb0751c2a68021a6981ad04b967996ceb0f5ca5d27a3269"' repoLastModified: Sun, 05 May 2024 21:52:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/keecon/restdocs-openapi3 v3: true repositoryMetadata: base64Readme: >- IyBTcHJpbmcgUkVTVCBEb2NzIE9wZW5BUEkgMyBTcGVjaWZpY2F0aW9uCgpbIVtqaXRwYWNrLWJhZGdlXV0oaHR0cHM6Ly9qaXRwYWNrLmlvLyNrZWVjb24vcmVzdGRvY3Mtb3BlbmFwaTMpClshW2J1aWxkLWJhZGdlXV0oaHR0cHM6Ly9naXRodWIuY29tL2tlZWNvbi9yZXN0ZG9jcy1vcGVuYXBpMy9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwpClshW2NvZGVjb3YtYmFkZ2VdXShodHRwczovL2NvZGVjb3YuaW8vZ2gva2VlY29uL3Jlc3Rkb2NzLW9wZW5hcGkzKQpbIVtzb25hcmNsb3VkLWJhZGdlXV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9a2VlY29uX3Jlc3Rkb2NzLW9wZW5hcGkzKQpbIVtsaWNlbnNlLWJhZGdlXV0oaHR0cHM6Ly9naXRodWIuY29tL2tlZWNvbi9yZXN0ZG9jcy1vcGVuYXBpMy9ibG9iL21haW4vTElDRU5TRSkKCkEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgW2VQYWdlcy1kZS9yZXN0ZG9jcy1hcGktc3BlY10gd2l0aCBjbGFzcyBmaWVsZCB0eXBlIGFuZCBjb25zdHJhaW50IGluZmVyZW5jZS4KQW5kIG9ubHkgc3VwcG9ydCBbT3BlbkFQSSAzLjAuMV0gc3BlY3MuCgojIyBCdWlsZCBjb25maWd1cmF0aW9uCgojIyMgVmVyc2lvbnMKCi0gVGhlICoxLngueCogdmVyc2lvbiBpcyBjb21wYXRpYmxlIHdpdGggU3ByaW5nIEJvb3QgKjMuMC54KiBhbmQgU3ByaW5nIFJFU1QgRG9jcyAqMy4wLngqLgotIFRoZSAqMC54LngqIHZlcnNpb24gaXMgY29tcGF0aWJsZSB3aXRoIFNwcmluZyBCb290ICoyLjcueCogYW5kIFNwcmluZyBSRVNUIERvY3MgKjIuMC54Ki4KCiMjIyBHcmFkbGUKCjEuIEFkZCB0aGUgcGx1Z2luCgogICAgYGBgZ3Jvb3Z5CiAgICBidWlsZHNjcmlwdCgpIHsKICAgICAgcmVwb3NpdG9yaWVzIHsKICAgICAgICAvLyAuLi4KICAgICAgICBtYXZlbiB7IHVybCAiaHR0cHM6Ly9qaXRwYWNrLmlvIiB9CiAgICAgIH0KICAgICAgZGVwZW5kZW5jaWVzIHsKICAgICAgICAvLyAuLi4KICAgICAgICBjbGFzc3BhdGggJ2NvbS5naXRodWIua2VlY29uOnJlc3Rkb2NzLW9wZW5hcGkzOngueC54JwogICAgICB9CiAgICB9CgogICAgcGx1Z2lucyB7CiAgICAgIC8vIC4uLgogICAgICBpZCAnY29tLmdpdGh1Yi5rZWVjb246cmVzdGRvY3Mtb3BlbmFwaTMnCiAgICB9CiAgICBgYGAKCjIuIEFkZCByZXF1aXJlZCBkZXBlbmRlbmNpZXMgdG8geW91ciB0ZXN0cwoKICAgIGBgYGdyb292eQogICAgcmVwb3NpdG9yaWVzIHsKICAgICAgLy8gLi4uCiAgICAgIG1hdmVuIHsgdXJsICdodHRwczovL2ppdHBhY2suaW8nIH0KICAgIH0KCiAgICBkZXBlbmRlbmNpZXMgewogICAgICAvLy4uCiAgICAgIHRlc3RJbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5rZWVjb246cmVzdGRvY3Mtb3BlbmFwaTM6eC54LngnCiAgICB9CgogICAgb3BlbmFwaTMgewogICAgICBzZXJ2ZXIgPSAnaHR0cDovL2xvY2FsaG9zdDo4MDgwJwogICAgICB0aXRsZSA9ICdNeSBBUEknCiAgICAgIGRlc2NyaXB0aW9uID0gJ015IEFQSSBkZXNjcmlwdGlvbicKICAgICAgdGFnRGVzY3JpcHRpb25zUHJvcGVydGllc0ZpbGUgPSAnc3JjL3Rlc3QvcmVzb3VyY2VzL29wZW5hcGktdGFncy55bWwnCiAgICAgIHZlcnNpb24gPSAnMC4xLjAnCiAgICAgIGZvcm1hdCA9ICd5YW1sJwogICAgfQogICAgYGBgCgojIyBVc2FnZSB3aXRoIFNwcmluZyBSRVNUIERvY3MKCmBgYGdyb292eQp3aGVuOgpkZWYgcmVzdWx0QWN0aW9ucyA9IG1vY2tNdmMucGVyZm9ybSgKICBwb3N0KCcvdjEvcHJvZHVjdHMve3Byb2R1Y3RJZH0vcmVzdWx0JywgMSkKICAgIC5jb250ZW50VHlwZShNZWRpYVR5cGUuQVBQTElDQVRJT05fSlNPTikKICAgIC5jb250ZW50KG9iamVjdE1hcHBlci53cml0ZVZhbHVlQXNCeXRlcyhuZXcgUHJvZHVjdFJlc3VsdENyZWF0ZVJlcXVlc3RCb2R5KHJlc3VsdCkpKQogICAgLmFjY2VwdChNZWRpYVR5cGUuQVBQTElDQVRJT05fSlNPTikKKQoKdGhlbjoKZGVmIHJlcU1vZGVsID0gQ29uc3RyYWludHMubW9kZWwoUHJvZHVjdFJlc3VsdENyZWF0ZVJlcXVlc3QuY2xhc3MpCmRlZiByZXFCb2R5TW9kZWwgPSBDb25zdHJhaW50cy5tb2RlbChQcm9kdWN0UmVzdWx0Q3JlYXRlUmVxdWVzdEJvZHkuY2xhc3MpCmRlZiByZXNwTW9kZWwgPSBDb25zdHJhaW50cy5tb2RlbChQcm9kdWN0UmVzdWx0Q3JlYXRlUmVzcG9uc2UuY2xhc3MpCnJlc3VsdEFjdGlvbnMKICAuYW5kRXhwZWN0KHN0YXR1cygpLmlzT2soKSkKICAuYW5kRG8oZG9jdW1lbnQoJ3Byb2R1Y3RzLWlkLXJlc3VsdC1wb3N0JywKICAgIHJlc291cmNlKFJlc291cmNlU25pcHBldFBhcmFtZXRlcnMuYnVpbGRlcigpCiAgICAgIC50YWcoJ3Byb2R1Y3QnKQogICAgICAuc3VtbWFyeSgnQ3JlYXRlIGEgcHJvZHVjdCByZXN1bHQnKQogICAgICAuZGVzY3JpcHRpb24oJycnCiAgICAgICAgfENyZWF0ZSBhIHByb2R1Y3QgcmVzdWx0CiAgICAgICAgfAogICAgICAgIHwjIyMgRXJyb3IgZGV0YWlscwogICAgICAgIHwKICAgICAgICB8YDQwMGAgQkFEX1JFUVVFU1QKICAgICAgICB8LSBiYWQgcmVxdWVzdCBkZXNjcmlwdGlvbgogICAgICAgIHwKICAgICAgICB8YDQwMWAgVU5BVVRIT1JJWkVECiAgICAgICAgfC0gdW5hdXRob3JpemVkIGRlc2NyaXB0aW9uCiAgICAgICAgfAogICAgICAgIHwnJycuc3RyaXBNYXJnaW4oKSkKICAgICAgLnJlcXVlc3RTY2hlbWEoc2NoZW1hKCdQcm9kdWN0UmVzdWx0Q3JlYXRlUmVxdWVzdCcpKQogICAgICAucGF0aFBhcmFtZXRlcnMoCiAgICAgICAgcmVxTW9kZWwud2l0aE5hbWUoJ3Byb2R1Y3RJZCcpLmRlc2NyaXB0aW9uKCdwcm9kdWN0IGlkJyksCiAgICAgICkKICAgICAgLnJlcXVlc3RGaWVsZHMoCiAgICAgICAgcmVxQm9keU1vZGVsLndpdGhQYXRoKCdyZXN1bHQnKS5kZXNjcmlwdGlvbigncHJvZHVjdCByZXN1bHQnKSwKICAgICAgICByZXFCb2R5TW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5jb2RlJykuZGVzY3JpcHRpb24oJ3Byb2R1Y3QgcmVzdWx0IGNvZGUnKSwKICAgICAgICByZXFCb2R5TW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5zZXEnKS5kZXNjcmlwdGlvbigncHJvZHVjdCByZXN1bHQgc2VxJyksCiAgICAgICAgcmVxQm9keU1vZGVsLndpdGhQYXRoKCdyZXN1bHQuc2NvcmUnKS5kZXNjcmlwdGlvbigncHJvZHVjdCByZXN1bHQgc2NvcmUnKSwKICAgICAgICByZXFCb2R5TW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5hc3NpZ25zW10nKS5kZXNjcmlwdGlvbigncmVzdWx0IGFzc2lnbiBvYmplY3QgbGlzdCcpLAogICAgICAgIHJlcUJvZHlNb2RlbC53aXRoUGF0aCgncmVzdWx0LmFzc2lnbnNbXS5jb2RlJykuZGVzY3JpcHRpb24oJ3Jlc3VsdCBhc3NpZ24gY29kZScpLAogICAgICAgIHJlcUJvZHlNb2RlbC53aXRoUGF0aCgncmVzdWx0LmFzc2lnbnNbXS5zZXEnKS5kZXNjcmlwdGlvbigncmVzdWx0IGFzc2lnbiBzZXEnKSwKICAgICAgICByZXFCb2R5TW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5hc3NpZ25zW10ub2JqZWN0SWQnKS5kZXNjcmlwdGlvbigncmVzdWx0IGFzc2lnbiBvYmplY3QgaWQnKSwKICAgICAgICByZXFCb2R5TW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5hc3NpZ25zW10uZmlsZVR5cGUnKS5kZXNjcmlwdGlvbigncmVzdWx0IGFzc2lnbiBmaWxlIHR5cGUnKQogICAgICAgICAgLm9wdGlvbmFsKCksCiAgICAgICAgcmVxQm9keU1vZGVsLndpdGhQYXRoKCdyZXN1bHQuYXNzaWduc1tdLmZpbGVVcmwnKS5kZXNjcmlwdGlvbigncmVzdWx0IGFzc2lnbiBmaWxlIHVybCcpCiAgICAgICAgICAub3B0aW9uYWwoKSwKICAgICAgICByZXFCb2R5TW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5hc3NpZ25zW10uY29tbWVudHNbXScpLmRlc2NyaXB0aW9uKCdyZXN1bHQgYXNzaWduIGNvbW1lbnQgbGlzdCcpCiAgICAgICAgICAudHlwZShEYXRhVHlwZS5BUlJBWSkKICAgICAgICAgIC5hdHRyaWJ1dGVzKEF0dHJpYnV0ZXMuaXRlbXMoRGF0YVR5cGUuU1RSSU5HLCBudWxsLCBudWxsKSkKICAgICAgICAgIC5vcHRpb25hbCgpLAogICAgICApCiAgICAgIC5yZXNwb25zZVNjaGVtYShzY2hlbWEoJ1Byb2R1Y3RSZXN1bHRDcmVhdGVSZXNwb25zZScpKQogICAgICAucmVzcG9uc2VGaWVsZHMoCiAgICAgICAgcmVzcE1vZGVsLndpdGhQYXRoKCdzdGF0dXMnKS5kZXNjcmlwdGlvbignb3BlcmF0aW9uIHN0YXR1cycpLAogICAgICAgIHJlc3BNb2RlbC53aXRoUGF0aCgnY29kZScpLmRlc2NyaXB0aW9uKCdwcm9kdWN0IHJlc3VsdCBjb2RlJykKICAgICAgICAgIC5vcHRpb25hbCgpLAogICAgICApCiAgICAgIC5idWlsZCgpKSkpCmBgYAoKYGBgZ3Jvb3Z5CndoZW46CmRlZiByZXN1bHRBY3Rpb25zID0gbW9ja012Yy5wZXJmb3JtKAogIGdldCgnL3YxL3Byb2R1Y3RzL3twcm9kdWN0SWR9L3Jlc3VsdD9jb2RlPXtjb2RlfScsIDEsIDEpCiAgICAuYWNjZXB0KE1lZGlhVHlwZS5BUFBMSUNBVElPTl9KU09OKQopCgp0aGVuOgpkZWYgcmVxTW9kZWwgPSBDb25zdHJhaW50cy5tb2RlbChQcm9kdWN0UmVzdWx0UmVxdWVzdC5jbGFzcykKZGVmIHJlc3BNb2RlbCA9IENvbnN0cmFpbnRzLm1vZGVsKFByb2R1Y3RSZXN1bHRSZXNwb25zZS5jbGFzcykKcmVzdWx0QWN0aW9ucwogIC5hbmRFeHBlY3Qoc3RhdHVzKCkuaXNPaygpKQogIC5hbmREbyhkb2N1bWVudCgncHJvZHVjdHMtaWQtcmVzdWx0LWNvZGUtZ2V0JywKICAgIHJlc291cmNlKFJlc291cmNlU25pcHBldFBhcmFtZXRlcnMuYnVpbGRlcigpCiAgICAgIC50YWcoJ3Byb2R1Y3QnKQogICAgICAuc3VtbWFyeSgnR2V0IGEgcHJvZHVjdCByZXN1bHQgaW5mbycpCiAgICAgIC5kZXNjcmlwdGlvbignJycKICAgICAgICB8R2V0IGEgcHJvZHVjdCByZXN1bHQgaW5mbwogICAgICAgIHwKICAgICAgICB8IyMjIEVycm9yIGRldGFpbHMKICAgICAgICB8CiAgICAgICAgfGA0MDBgIEJBRF9SRVFVRVNUCiAgICAgICAgfC0gYmFkIHJlcXVlc3QgZGVzY3JpcHRpb24KICAgICAgICB8CiAgICAgICAgfGA0MDFgIFVOQVVUSE9SSVpFRAogICAgICAgIHwtIHVuYXV0aG9yaXplZCBkZXNjcmlwdGlvbgogICAgICAgIHwKICAgICAgICB8YDQwNGAgTk9UX0ZPVU5ECiAgICAgICAgfC0gbm90IGZvdW5kIGRlc2NyaXB0aW9uCiAgICAgICAgfAogICAgICAgIHwnJycuc3RyaXBNYXJnaW4oKSkKICAgICAgLnJlcXVlc3RTY2hlbWEoc2NoZW1hKCdQcm9kdWN0UmVzdWx0UmVxdWVzdCcpKQogICAgICAucGF0aFBhcmFtZXRlcnMoCiAgICAgICAgcmVxTW9kZWwud2l0aE5hbWUoJ3Byb2R1Y3RJZCcpLmRlc2NyaXB0aW9uKCdwcm9kdWN0IGlkJyksCiAgICAgICkKICAgICAgLnF1ZXJ5UGFyYW1ldGVycygKICAgICAgICByZXFNb2RlbC53aXRoTmFtZSgnY29kZScpLmRlc2NyaXB0aW9uKCdwcm9kdWN0IHJlc3VsdCBjb2RlJyksCiAgICAgICAgcmVxTW9kZWwud2l0aE5hbWUoJ3NlcScpLmRlc2NyaXB0aW9uKCdwcm9kdWN0IHJlc3VsdCBzZXEnKQogICAgICAgICAgLmRlZmF1bHRWYWx1ZShQcm9kdWN0UmVzdWx0UmVxdWVzdC5ERUZBVUxUX1JFU1VMVF9TRVEpCiAgICAgICAgICAub3B0aW9uYWwoKSwKICAgICAgKQogICAgICAucmVzcG9uc2VTY2hlbWEoc2NoZW1hKCdQcm9kdWN0UmVzdWx0UmVzcG9uc2UnKSkKICAgICAgLnJlc3BvbnNlRmllbGRzKAogICAgICAgIHJlc3BNb2RlbC53aXRoUGF0aCgncmVzdWx0JykuZGVzY3JpcHRpb24oJ3Byb2R1Y3QgcmVzdWx0JyksCiAgICAgICAgcmVzcE1vZGVsLndpdGhQYXRoKCdyZXN1bHQuY29kZScpLmRlc2NyaXB0aW9uKCdwcm9kdWN0IHJlc3VsdCBjb2RlJyksCiAgICAgICAgcmVzcE1vZGVsLndpdGhQYXRoKCdyZXN1bHQuc2VxJykuZGVzY3JpcHRpb24oJ3Byb2R1Y3QgcmVzdWx0IHNlcScpLAogICAgICAgIHJlc3BNb2RlbC53aXRoUGF0aCgncmVzdWx0LnNjb3JlJykuZGVzY3JpcHRpb24oJ3Byb2R1Y3QgcmVzdWx0IHNjb3JlJyksCiAgICAgICAgcmVzcE1vZGVsLndpdGhQYXRoKCdyZXN1bHQuYXNzaWduc1tdJykuZGVzY3JpcHRpb24oJ3Jlc3VsdCBhc3NpZ24gb2JqZWN0IGxpc3QnKSwKICAgICAgICByZXNwTW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5hc3NpZ25zW10uY29kZScpLmRlc2NyaXB0aW9uKCdyZXN1bHQgYXNzaWduIGNvZGUnKSwKICAgICAgICByZXNwTW9kZWwud2l0aFBhdGgoJ3Jlc3VsdC5hc3NpZ25zW10uc2VxJykuZGVzY3JpcHRpb24oJ3Jlc3VsdCBhc3NpZ24gc2VxJyksCiAgICAgICAgcmVzcE1vZGVsLndpdGhQYXRoKCdyZXN1bHQuYXNzaWduc1tdLm9iamVjdElkJykuZGVzY3JpcHRpb24oJ3Jlc3VsdCBhc3NpZ24gb2JqZWN0IGlkJyksCiAgICAgICAgcmVzcE1vZGVsLndpdGhQYXRoKCdyZXN1bHQuYXNzaWduc1tdLmZpbGVUeXBlJykuZGVzY3JpcHRpb24oJ3Jlc3VsdCBhc3NpZ24gZmlsZSB0eXBlJykKICAgICAgICAgIC5vcHRpb25hbCgpLAogICAgICAgIHJlc3BNb2RlbC53aXRoUGF0aCgncmVzdWx0LmFzc2lnbnNbXS5maWxlVXJsJykuZGVzY3JpcHRpb24oJ3Jlc3VsdCBhc3NpZ24gZmlsZSB1cmwnKQogICAgICAgICAgLm9wdGlvbmFsKCksCiAgICAgICAgcmVzcE1vZGVsLndpdGhQYXRoKCdyZXN1bHQuYXNzaWduc1tdLmNvbW1lbnRzW10nKS5kZXNjcmlwdGlvbigncmVzdWx0IGFzc2lnbiBjb21tZW50IGxpc3QnKQogICAgICAgICAgLnR5cGUoRGF0YVR5cGUuQVJSQVkpCiAgICAgICAgICAuYXR0cmlidXRlcyhBdHRyaWJ1dGVzLml0ZW1zKERhdGFUeXBlLlNUUklORywgbnVsbCwgbnVsbCkpCiAgICAgICAgICAub3B0aW9uYWwoKSwKICAgICAgKQogICAgICAuYnVpbGQoKSkpKQpgYGAKCltqaXRwYWNrLWJhZGdlXTogaHR0cHM6Ly9qaXRwYWNrLmlvL3Yva2VlY29uL3Jlc3Rkb2NzLW9wZW5hcGkzLnN2ZwoKW2J1aWxkLWJhZGdlXTogaHR0cHM6Ly9naXRodWIuY29tL2tlZWNvbi9yZXN0ZG9jcy1vcGVuYXBpMy9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwvYmFkZ2Uuc3ZnCgpbY29kZWNvdi1iYWRnZV06IGh0dHBzOi8vY29kZWNvdi5pby9naC9rZWVjb24vcmVzdGRvY3Mtb3BlbmFwaTMvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPVRSUVo2R09WSzQKCltzb25hcmNsb3VkLWJhZGdlXTogaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9a2VlY29uX3Jlc3Rkb2NzLW9wZW5hcGkzJm1ldHJpYz1hbGVydF9zdGF0dXMKCltsaWNlbnNlLWJhZGdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9rZWVjb24vcmVzdGRvY3Mtb3BlbmFwaTMuc3ZnCgpbZVBhZ2VzLWRlL3Jlc3Rkb2NzLWFwaS1zcGVjXTogaHR0cHM6Ly9naXRodWIuY29tL2VQYWdlcy1kZS9yZXN0ZG9jcy1hcGktc3BlYwoKW09wZW5BUEkgMy4wLjFdOiBodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMS5tZAo= readmeEtag: '"e6aa617fd3dd190f7e1106ba1e281a19d1ce6ed8"' readmeLastModified: Tue, 13 Aug 2024 01:36:57 GMT repositoryId: 462124358 description: >- Clone of ePages-de/restdocs-api-spec with class field type and constraint inference. created: '2022-02-22T03:33:26Z' updated: '2024-09-03T02:18:16Z' language: Kotlin archived: false stars: 2 watchers: 4 forks: 0 owner: keecon logo: https://avatars.githubusercontent.com/u/19371343?v=4 license: MIT repoEtag: '"f2279fe11a42a6ee02d0303b0ad99a0fd0ae13151b61ee18a92804bc5243e12e"' repoLastModified: Tue, 03 Sep 2024 02:18:16 GMT foundInMaster: true category: Server id: 07a8059ee6961dc1e46442f5582d1501 - source: openapi3 tags repository: https://github.com/manjeshpv/awesome-fullstack-sandbox v3: true id: 9210dd963ad7560db8ce67db9fd0b7b1 repositoryMetadata: base64Readme: >- IyBhd2Vzb21lLWZ1bGxzdGFjay1zYW5kYm94CgpbV2hhdHNBcHAgQ2hhbm5lbF0oaHR0cHM6Ly93aGF0c2FwcC5jb20vY2hhbm5lbC8wMDI5VmFCaUJUUDROVmliSzdlakFzMTQpCgpMb3cgQ29kZSBGdWxsIHN0YWNrIC0gQ2xvdWQgTmF0aXZlIERvY2tlcml6ZWQgU2FuZGJveCBmb3IgSW5kaWFuIFN0YXJ0dXBzIHdpdGggQ0kvQ0QKCgojIyMgQmFja2dyb3VuZAotIFdoYXQgaXMgW1NvZnR3YXJlIFNhbmRib3hdKGh0dHBzOi8vd3d3LnRlY2hvcGVkaWEuY29tL2RlZmluaXRpb24vMjc2ODEvc2FuZGJveC1zb2Z0d2FyZS10ZXN0aW5nKQotIFtJbnRyb2R1Y3Rpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tYW5qZXNocHYvYXdlc29tZS1zYW5kYm94L2Jsb2IvbWFpbi9kb2NzL3JlYWRtZS5tZCkKLSBbR29hbHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYW5qZXNocHYvYXdlc29tZS1zYW5kYm94L2Jsb2IvbWFpbi9kb2NzL2dvYWxzLm1kKQotIFtUZWNobm9sb2d5IFN0YWNrXShodHRwczovL2dpdGh1Yi5jb20vbWFuamVzaHB2L2F3ZXNvbWUtc2FuZGJveC9ibG9iL21haW4vZG9jcy90ZWNoLXN0YWNrLm1kKQoKIyMjIENoaWxkIFByb2plY3RzCi0gaHR0cHM6Ly9naXRodWIuY29tL2NqZWxpdmFhcy9uZXN0anMtcGluby1kaXN0cmlidXRlZC10cmFjaW5nLW1vbm8KCiMjIyBVc2UgY2FzZXMKLSBGb3IgU3RhcnR1cCBGb3VuZGVycyAmIENYTydzCi0gRm9yIFN0YXJ0dXAgUHJvZHVjdCBNYW5hZ2VycwotIEZvciBTdGFydHVwIEFyY2hpdGVjdHMKLSBGb3IgU3RhcnR1cCBTZW5pb3IgRGV2ZWxvcGVycwotIEZvciBTdGFydHVwIEVuZ2luZWVycwotIEZvciBTdGFydHVwIFFBIEVuZ2luZWVycywgUGVyZm9ybWFuY2UgVGVzdGVycwotIEZvciBTdGFydHVwIFNlY3VyaXR5IEFkdmlzb3JzICYgUGVuIFRlc3RlcnMKCiMjIyBTcG9uc29ycwotIEVsaXZhYXM6IFtKb2IgT3BlbmluZ3NdKGh0dHBzOi8vd3d3Lmluc3RhaHlyZS5jb20vam9icy1hdC1lbGl2YWFzLykgfCBbRm9sbG93IG9uIEdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2VsaXZhYXNkKQoKCiMjIyBDb250cmlidXRvcnMKLSBodHRwczovL2dpdGh1Yi5jb20vbWFuamVzaHB2Ci0gaHR0cHM6Ly9naXRodWIuY29tL0FzaHV0b3NoTW80OQotIGh0dHBzOi8vZ2l0aHViLmNvbS9BeXVzaENyaW8K readmeEtag: '"82948b98729d78c6c0104ba3b5af9b3047368cb4"' readmeLastModified: Sun, 07 Jul 2024 12:26:10 GMT repositoryId: 704798735 description: Cloud Native Docker Sandbox for Indian Startups created: '2023-10-14T05:59:20Z' updated: '2024-08-29T06:09:33Z' language: null archived: false stars: 2 watchers: 2 forks: 1 owner: manjeshpv logo: https://avatars.githubusercontent.com/u/1999957?v=4 repoEtag: '"ef1095e6125b53a3a2a635b59a1f09b56acc4bb982dbfd48d195914233177ae7"' repoLastModified: Thu, 29 Aug 2024 06:09:33 GMT category: Server foundInMaster: true - source: openapi3 tags repository: https://github.com/kumuluz/kumuluzee-openapi v3: true repositoryMetadata: base64Readme: >- IyBLdW11bHV6RUUgT3BlbkFQSQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHJhdmlzL2t1bXVsdXova3VtdWx1emVlLW9wZW5hcGkvbWFzdGVyLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2t1bXVsdXova3VtdWx1emVlLW9wZW5hcGkpCgo+IEt1bXVsdXpFRSBPcGVuQVBJIHByb2plY3QgcHJvdmlkZXMgcG93ZXJmdWwgdG9vbHMgdG8gaW5jb3Jwb3JhdGUgYW5kIHZpc3VhbGl6ZSB0aGUgT3BlbkFQSSAzIHNwZWNpZmljYXRpb24gdG8geW91ciBtaWNyb3NlcnZpY2UuCgpLdW11bHV6RUUgT3BlbkFQSSBwcm9qZWN0IGFsbG93cyB5b3UgdG8gZG9jdW1lbnQgbWljcm9zZXJ2aWNlIEFQSXMgdXNpbmcgT3BlbkFQSSB2MyBjb21wbGlhbnQgYW5ub3RhdGlvbnMuIFByb2plY3Qgd2lsbCBhdXRvbWF0aWNhbGx5IGhvb2stdXAgc2VydmxldCB0aGF0IHdpbGwgCnNlcnZlIHlvdXIgQVBJIHNwZWNpZmljYXRpb25zIG9uIGVuZHBvaW50IGBgYC9hcGktc3BlY3MvPGpheC1ycyBhcHBsaWNhdGlvbi1iYXNlLXBhdGg+L29wZW5hcGkuW2pzb258eWFtbF1gYGAuIEZ1cnRoZXJtb3JlLCBwcm9qZWN0IGFsbG93cyB5b3UgdG8gaW50ZWdyYXRlIFN3YWdnZXItVUkgaW50byB5b3VyCm1pY3Jvc2VydmljZSB0aGF0IHdpbGwgdmlzdWFsaXplIEFQSXMgZG9jdW1lbnRhdGlvbiBhbmQgYWxsb3cgeW91IHRvIGludGVyYWN0IHdpdGggeW91ciBBUEkgcmVzb3VyY2VzLgogCk1vcmUgZGV0YWlsczogW09wZW5BUEkgdjMgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpLgoKIyMgVXNhZ2UKCllvdSBjYW4gZW5hYmxlIEt1bXVsdXpFRSBPcGVuQVBJIHN1cHBvcnQgYnkgYWRkaW5nIHRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jeToKYGBgeG1sCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+Y29tLmt1bXVsdXouZWUub3BlbmFwaTwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPmt1bXVsdXplZS1vcGVuYXBpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtrdW11bHV6ZWUtb3BlbmFwaS52ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCiMjIE9wZW5BUEkgY29uZmlndXJhdGlvbgoKV2hlbiBrdW11bHV6ZWUtb3BlbmFwaSBkZXBlbmRlbmN5IGlzIGluY2x1ZGVkIGluIHRoZSBwcm9qZWN0LCB5b3UgY2FuIHN0YXJ0IGRvY3VtZW50aW5nIHlvdXIgUkVTVCBBUEkgdXNpbmcgW1N3YWdnZXItQ29yZSBBbm5vdGF0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS93aWtpL0Fubm90YXRpb25zLTIuWCkuCgojIyMgRG9jdW1lbnRpbmcgYXBwbGljYXRpb24gY2xhc3MKYGBgamF2YQpAU2VjdXJpdHlTY2hlbWUobmFtZSA9ICJvcGVuaWQtY29ubmVjdCIsIHR5cGUgPSBTZWN1cml0eVNjaGVtZVR5cGUuT1BFTklEQ09OTkVDVCwgCiAgICAgICAgICAgICAgICBvcGVuSWRDb25uZWN0VXJsID0gImh0dHA6Ly9hdXRoLXNlcnZlci11cmwvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24iKQpAT3BlbkFQSURlZmluaXRpb24oaW5mbyA9IEBJbmZvKHRpdGxlID0gIlJlc3QgQVBJIiwgdmVyc2lvbiA9ICJ2MSIsIGNvbnRhY3QgPSBAQ29udGFjdCgpLCBsaWNlbnNlID0gQExpY2Vuc2UoKSwgZGVzY3JpcHRpb24gPSAiSmF2YVNJIEFQSSBmb3IgbWFuYWdpbmcgY29uZmVyZW5jZS4iKSwgc2VjdXJpdHkgPSBAU2VjdXJpdHlSZXF1aXJlbWVudChuYW1lID0gIm9wZW5pZC1jb25uZWN0IiksIHNlcnZlcnMgPSBAU2VydmVyKHVybCA9Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC92MSIpKQpAQXBwbGljYXRpb25QYXRoKCJ2MSIpCnB1YmxpYyBjbGFzcyBKYXZhU2lBcHBsaWNhdGlvbiBleHRlbmRzIEFwcGxpY2F0aW9uIHsuLi59CmBgYAoKIyMjIERvY3VtZW50aW5nIHJlc291cmNlIGNsYXNzIGFuZCBvcGVyYXRpb25zCmBgYGphdmEKQFBhdGgoInNlc3Npb25zIikKQENvbnN1bWVzKE1lZGlhVHlwZS5BUFBMSUNBVElPTl9KU09OKQpAUHJvZHVjZXMoTWVkaWFUeXBlLkFQUExJQ0FUSU9OX0pTT04pCnB1YmxpYyBjbGFzcyBTZXNzaW9uc1Jlc291cmNlIHsKCiAgICBAT3BlcmF0aW9uKGRlc2NyaXB0aW9uID0gIlJldHVybnMgbGlzdCBvZiBzZXNzaW9ucy4iLCBzdW1tYXJ5ID0gIlNlc3Npb25zIGxpc3QiLCB0YWdzID0gInNlc3Npb25zIiwgcmVzcG9uc2VzID0gewogICAgICAgICAgICBAQXBpUmVzcG9uc2UocmVzcG9uc2VDb2RlID0gIjIwMCIsCiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiTGlzdCBvZiBzZXNzaW9ucyIsCiAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IEBDb250ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkgPSBAQXJyYXlTY2hlbWEoc2NoZW1hID0gQFNjaGVtYShpbXBsZW1lbnRhdGlvbiA9IFNlc3Npb24uY2xhc3MpKSksCiAgICAgICAgICAgICAgICAgICAgaGVhZGVycyA9IHtASGVhZGVyKG5hbWUgPSAiWC1Ub3RhbC1Db3VudCIsIHNjaGVtYSA9IEBTY2hlbWEodHlwZSA9ICJpbnRlZ2VyIikpfQogICAgICAgICAgICAgICAgICAgICl9KQogICAgQFNlY3VyaXR5UmVxdWlyZW1lbnQobmFtZSA9ICJvcGVuaWQtY29ubmVjdCIpCiAgICBAR0VUCiAgICBwdWJsaWMgUmVzcG9uc2UgZ2V0U2Vzc2lvbnMoKSB7Li4ufSAKICAgIC4uLgp9CmBgYAoKIyMgQWNjZXNzaW5nIEFQSSBzcGVjaWZpY2F0aW9uCgpCdWlsZCBhbmQgcnVuIHByb2plY3QgdXNpbmc6CgpgYGBiYXNoCm12biBjbGVhbiBwYWNrYWdlCmphdmEgLWphciB0YXJnZXQvJHtwcm9qZWN0LmJ1aWxkLmZpbmFsTmFtZX0uamFyCmBgYAoKQWZ0ZXIgc3RhcnR1cCBBUEkgc3BlY2lmaWNhdGlvbiB3aWxsIGJlIGF2YWlsYWJsZSBhdDoKCioqaHR0cDovLzwtaG9zdG5hbWUtOjwtcG9ydC0+L2FwaS1zcGVjcy88LWFwcGxpY2F0aW9uLWJhc2UtcGF0aC0+L29wZW5hcGkuW2pzb24seWFtbF0qKgoKRXhhbXBsZToKCmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGktc3BlY3MvdjEvb3BlbmFwaS5qc29uCgpgL2FwaS1zcGVjc2AgbWFwcGluZyBjYW4gYmUgcmVuYW1lZCBieSBzZXR0aW5nIHRoZSBjb25maWd1cmF0aW9uIHByb3BlcnR5IGBrdW11bHV6ZWUub3BlbmFwaS5zZXJ2bGV0Lm1hcHBpbmdgLCBGb3IKZXhhbXBsZSB0byBtb3ZlIHRoZSBhYm92ZSBleGFtcGxlIHRvIHVybCBodHRwOi8vbG9jYWxob3N0OjgwODAvb3BlbmFwaS1zcGVjcy92MS9vcGVuYXBpLmpzb24gdXNlIHRoZSBmb2xsb3dpbmcKY29uZmlndXJhdGlvbjoKCmBgYHltbAprdW11bHV6ZWU6CiAgb3BlbmFwaToKICAgIHNlcnZsZXQ6CiAgICAgIG1hcHBpbmc6IG9wZW5hcGktc3BlY3MKYGBgCgpTZXJ2aW5nIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBwcm9wZXJ0eSAqKmt1bXVsdXplZS5vcGVuYXBpLnNwZWMuZW5hYmxlZCoqIHRvIGZhbHNlLiBCeSBkZWZhdWx0IHNlcnZpbmcgQVBJIHNwZWMgaXMgZW5hYmxlZC4KCiMjIEFkZGluZyBPcGVuQVBJIFVJCgpUbyBzZXJ2ZSBBUEkgc3BlY2lmaWNhdGlvbiBpbiB2aXN1YWwgZm9ybSBhbmQgdG8gYWxsb3cgQVBJIGNvbnN1bWVycyB0byBpbnRlcmFjdCB3aXRoIEFQSSByZXNvdXJjZXMgeW91IGNhbiBhZGQgT3BlbkFQSSBVSSBieSBpbmNsdWRpbmcgZGVwZW5kZW5jeToKICAKYGBgeG1sCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+Y29tLmt1bXVsdXouZWUub3BlbmFwaTwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPmt1bXVsdXplZS1vcGVuYXBpLXVpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtrdW11bHV6ZWUtb3BlbmFwaS52ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCkRlcGVuZGVuY3kgd2lsbCBpbmNsdWRlIE9wZW5BUEkgVUkgYXJ0aWZhY3RzLCBpbiBjYXNlIHlvdSB3YW50IHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgT3BlbkFQSSBVSSB5b3UgY2FuIGRvIHNvIGJ5IHNldHRpbmcgY29uZmlndXJhdGlvbiBwcm9wZXJ0eToKIApgYGB5YW1sCmt1bXVsdXplZToKICBvcGVuYXBpOgogICAgdWk6CiAgICAgIGVuYWJsZWQ6IGZhbHNlCmBgYAoKQWZ0ZXIgc3RhcnR1cCBPcGVuQVBJIFVJIGlzIGF2YWlsYWJsZSBhdDogaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1zcGVjcy91aS4KCklmIHlvdSB3YW50IHRvIGRpc2FibGUgT3BlbkFQSSBEZXBlbmRlbmN5IHlvdSBjYW4gc2V0IHRoZSBmb2xsb3dpbmcgcHJvcGVydHk6CiAKYGBgeWFtbAprdW11bHV6ZWU6CiAgb3BlbmFwaToKICAgIGVuYWJsZWQ6IGZhbHNlCmBgYAoKIyMgQ2hhbmdlbG9nCgpSZWNlbnQgY2hhbmdlcyBjYW4gYmUgdmlld2VkIG9uIEdpdGh1YiBvbiB0aGUgW1JlbGVhc2VzIFBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9rdW11bHV6L2t1bXVsdXplZS1vcGVuYXBpL3JlbGVhc2VzKQoKCiMjIENvbnRyaWJ1dGUKClNlZSB0aGUgW2NvbnRyaWJ1dGluZyBkb2NzXShodHRwczovL2dpdGh1Yi5jb20va3VtdWx1ei9rdW11bHV6ZWUtb3BlbmFwaS9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCgpXaGVuIHN1Ym1pdHRpbmcgYW4gaXNzdWUsIHBsZWFzZSBmb2xsb3cgdGhlIApbZ3VpZGVsaW5lc10oaHR0cHM6Ly9naXRodWIuY29tL2t1bXVsdXova3VtdWx1emVlLW9wZW5hcGkvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2J1Z3MpLgoKV2hlbiBzdWJtaXR0aW5nIGEgYnVnZml4LCB3cml0ZSBhIHRlc3QgdGhhdCBleHBvc2VzIHRoZSBidWcgYW5kIGZhaWxzIGJlZm9yZSBhcHBseWluZyB5b3VyIGZpeC4gU3VibWl0IHRoZSB0ZXN0IAphbG9uZ3NpZGUgdGhlIGZpeC4KCldoZW4gc3VibWl0dGluZyBhIG5ldyBmZWF0dXJlLCBhZGQgdGVzdHMgdGhhdCBjb3ZlciB0aGUgZmVhdHVyZS4KCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"44eaa54e982e4c111f43373f67db6f2eae16a394"' readmeLastModified: Thu, 15 Oct 2020 09:42:30 GMT repositoryId: 108509681 description: >- KumuluzEE OpenAPI extension provides powerful tools to incorporate and visualize the OpenAPI 3 specification to your microservice. created: '2017-10-27T06:46:32Z' updated: '2020-10-15T09:42:33Z' language: Java archived: false stars: 2 watchers: 16 forks: 0 owner: kumuluz logo: https://avatars.githubusercontent.com/u/6859905?v=4 license: NOASSERTION repoEtag: '"6c92454fc2c3c2504d1a23c25bdccf8e7df25f0a3e6f652b320ed74aa98f0fff"' repoLastModified: Thu, 15 Oct 2020 09:42:33 GMT foundInMaster: true category: Parsers id: 35734194256a144e4a14160acdce2f5a - source: openapi3 tags repository: https://github.com/quetz-al/quetzal-client v3: true repositoryMetadata: base64Readme: >- Li4gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBpbmNsdWRlZCBvbiBTcGhpbnggYXMgd2VsbC4KClF1ZXR6YWwgUHl0aG9uIGNsaWVudAo9PT09PT09PT09PT09PT09PT09PT0KClB5dGhvbiBjbGllbnQgZm9yIHRoZSBRdWV0emFsIEFQSS4KCklmIHlvdSBhcmUgbm90IGZhbWlsaWFyIHdpdGggdGhlIFF1ZXR6YWwgQVBJLCByZWFkIGl0cwpgZG9jdW1lbnRhdGlvbiA8aHR0cHM6Ly9xdWV0emFsLWFwaS5yZWFkdGhlZG9jcy5vcmc+YF8gZmlyc3QuIFRoaXMgUHl0aG9uCnBhY2thZ2UgcHJvdmlkZXMgYSBjb21tYW5kLWxpbmUgYW5kIGhlbHBlciBmdW5jdGlvbnMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUKUXVldHphbCBBUEkuCgpOb3RlIHRoYXQgdGhpcyBwYWNrYWdlIGRlcGVuZHMgb24gYW4gYXV0by1nZW5lcmF0ZWQgcGFja2FnZQpgcXVldHphbC5vcGVuYXBpX2NsaWVudCA8aHR0cHM6Ly9naXRodWIuY29tL3F1ZXR6LWFsL3F1ZXR6YWwtb3BlbmFwaS1jbGllbnQ+YF8sCndoaWNoIGlzIGFsc28gYSBjbGllbnQgdG8gdGhpcyBBUEkuIFlvdSBjYW4gdXNlIHRoZSBsYXR0ZXIgYXMgYSBwdXJlIFB5dGhvbgpjbGllbnQsIGJ1dCAqcXVldHphbC5jbGllbnQqIHByb3ZpZGVzIHNvbWUgaGVscGVycyBhbmQgc21hbGwgZml4ZXMuCgpJbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tCgpZb3UgY2FuIGluc3RhbGwgKnF1ZXR6YWwtY2xpZW50Kiwgd2l0aCBgYHBpcGBgOgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICBwaXAgaW5zdGFsbCBxdWV0emFsLWNsaWVudAoKQWx0ZXJuYXRpdmVseSwgYWRkIHRoaXMgbGluZSB0byB5b3VyIGBgcmVxdWlyZW1lbnRzLnR4dGBgOgoKLi4gY29kZS1ibG9jazo6IG5vbmUKCiAgICBxdWV0emFsLWNsaWVudAoKYW5kIHRoZW4gZG8gYGBwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0YGAuCgpJZiB5b3UgYXJlIHVzaW5nIGNvbmRhLCBhZGQgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgdG8geW91ciBgYGVudmlyb25tZW50LnlhbWxgYDoKCi4uIGNvZGUtYmxvY2s6OiB5YW1sCgogICAgLi4uCiAgICBkZXBlbmRlbmNpZXM6CiAgICAgIC0gcGlwCiAgICAgIC0gcGlwOgogICAgICAgIC0gcXVldHphbC1jbGllbnQKCmFuZCBjcmVhdGUgb3IgdXBkYXRlIHlvdXIgZW52aXJvbm1lbnQgd2l0aApgYGNvbmRhIGVudiBjcmVhdGUgLWYgZW52aXJvbm1lbnQueWFtbGBgIG9yCmBgY29uZGEgZW52IHVwZGF0ZSAtZiBlbnZpcm9ubWVudC55YW1sYGAsIHJlc3BlY3RpdmVseS4KCgpHZXR0aW5nIHN0YXJ0ZWQKLS0tLS0tLS0tLS0tLS0tCgpJbiBvcmRlciB0byB1c2UgKnF1ZXR6YWwuY2xpZW50KiwgeW91IG5lZWQgdG8ga25vdyB0aGUgVVJMIG9mIHRoZSBBUEkgc2VydmVyLAp5b3VyIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4gWW91IGNhbiBzZXQgdGhlc2Ugb24gdGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UsCnRocm91Z2ggYSBjb25maWd1cmF0aW9uIG9iamVjdCwgb3IgdXNpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzOgoKLi4gbGlzdC10YWJsZTo6IEVudmlyb25tZW50IHZhcmlhYmxlcyBjb25zaWRlcmVkIGJ5IGBxdWV0emFsLWNsaWVudGAuCiAgIDpoZWFkZXItcm93czogMQoKICAgKiAtIFZhcmlhYmxlCiAgICAgLSBEZXNjcmlwdGlvbgogICAgIC0gRGVmYXVsdCBpZiBub3Qgc2V0CiAgICogLSBgYFFVRVRaQUxfVVJMYGAKICAgICAtIENvbXBsZXRlIFVSTCBvZiB0aGUgUXVldHphbCBzZXJ2ZXIgKyBBUEkgdmVyc2lvbi4KICAgICAtIGBgJ2h0dHBzOi8vYXBpLnF1ZXR6LmFsL2FwaS92MSdgYAogICAqIC0gYGBRVUVUWkFMX1VTRVJgYAogICAgIC0gUXVldHphbCB1c2VybmFtZS4KICAgICAtIGBgJydgYAogICAqIC0gYGBRVUVUWkFMX1BBU1NXT1JEYGAKICAgICAtIFF1ZXR6YWwgcGFzc3dvcmQuCiAgICAgLSBgYCcnYGAKICAgKiAtIGBgUVVFVFpBTF9BUElfS0VZYGAKICAgICAtIFF1ZXR6YWwgQVBJIGtleS4KICAgICAtIGBgJydgYAoKCkJhc2ljIHVzYWdlCi0tLS0tLS0tLS0tCgpUaGVyZSBhcmUgdHdvIHdheXMgdGhpcyBwYWNrYWdlIGhlbHBzIHlvdTogd2l0aCBhIGNvbW1hbmQtbGluZSBpbnRlcmZhY2Ugb3IgYnkKcHJvdmlkaW5nIHNvbWUgaGVscGVyIG1vZHVsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbiBQeXRob24uCgpDb21tYW5kLWxpbmUgaW50ZXJmYWNlCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KClRoZSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBgYHF1ZXR6YWwtY2xpZW50YGAgY29tbWFuZC4KVXNlIHRoZSBgYC0taGVscGBgIG9yIGBgLS1oZWxwLWFsbGBgIG9wdGlvbnMgdG8gZ2V0IGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YKZWFjaCBjb21tYW5kLgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICAkIHF1ZXR6YWwtY2xpZW50IC0taGVscAoKICAgIFVzYWdlOiBxdWV0emFsLWNsaWVudCBbR0xPQkFMIE9QVElPTlNdIENPTU1BTkQgW0FSR1NdLi4uCgogICAgICBDb21tYW5kLWxpbmUgdXRpbGl0eSBmb3IgdGhlIFF1ZXR6YWwgQVBJIGNsaWVudC4KCiAgICBPcHRpb25zOgogICAgICAtLXVybCBURVhUICAgICAgIFF1ZXR6YWwgVVJMLiBJZiBub3Qgc2V0LCB1c2VzIGVudmlyb25tZW50IHZhcmlhYmxlCiAgICAgICAgICAgICAgICAgICAgICAgUVVFVFpBTF9VUkwgaWYgdGhpcyB2YXJpYWJsZSBpcyBkZWZpbmVkLiAgW2RlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9hcGkucXVldHouYWwvYXBpL3YxXQogICAgICAtLXVzZXJuYW1lIFRFWFQgIFF1ZXR6YWwgdXNlcm5hbWUuIElmIG5vdCBzZXQsIHVzZXMgZW52aXJvbm1lbnQgdmFyaWFibGUKICAgICAgICAgICAgICAgICAgICAgICBRVUVUWkFMX1VTRVIuIE9wdGlvbiBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCB0b2tlbiwKICAgICAgICAgICAgICAgICAgICAgICBhcGlfa2V5LgogICAgICAtLXBhc3N3b3JkIFRFWFQgIFF1ZXR6YWwgcGFzc3dvcmQuIElmIG5vdCBzZXQsIHVzZXMgZW52aXJvbm1lbnQgdmFyaWFibGUKICAgICAgICAgICAgICAgICAgICAgICBRVUVUWkFMX1BBU1NXT1JELiBPcHRpb24gaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggdG9rZW4sCiAgICAgICAgICAgICAgICAgICAgICAgYXBpX2tleS4KICAgICAgLS10b2tlbiBURVhUICAgICBRdWV0emFsIGJlYXJlciB0b2tlbi4gSWYgbm90IHNldCwgdXNlcyBlbnZpcm9ubWVudCB2YXJpYWJsZQogICAgICAgICAgICAgICAgICAgICAgIFFVRVRaQUxfVE9LRU4uIE9wdGlvbiBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCB1c2VybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZCwgYXBpX2tleS4KICAgICAgLS1hcGkta2V5IFRFWFQgICBRdWV0emFsIEFQSSBrZXkuIElmIG5vdCBzZXQsIHVzZXMgZW52aXJvbm1lbnQgdmFyaWFibGUKICAgICAgICAgICAgICAgICAgICAgICBRVUVUWkFMX0FQSV9LRVkgT3B0aW9uIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLCB0b2tlbi4KICAgICAgLS1pbnNlY3VyZSAgICAgICBEbyBub3QgdmVyaWZ5IEhUVFBTIGNlcnRpZmljYXRlcy4KICAgICAgLXYsIC0tdmVyYm9zZSAgICBWZXJib3NpdHkgbGV2ZWwuIFVzZSAtdiBmb3IgdmVyYm9zZSwgLXZ2IGZvciBldmVuIG1vcmUKICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHkKICAgICAgLS1oZWxwLWFsbCAgICAgICBTaG93IGEgZGV0YWlsZWQgaGVscCBtZXNzYWdlIHdpdGggYWxsIG9wdGlvbnMgYW5kIGV4aXQuCiAgICAgIC0taGVscCAgICAgICAgICAgU2hvdyBoZWxwIG1lc3NhZ2UgZm9yIHRoaXMgY29tbWFuZCBhbmQgZXhpdC4KICAgICAgLS12ZXJzaW9uICAgICAgICBTaG93IHRoZSB2ZXJzaW9uIGFuZCBleGl0LgoKICAgIENvbW1hbmRzOgogICAgICBhdXRoICAgICAgIEF1dGhlbnRpY2F0aW9uIG9wZXJhdGlvbnMuCiAgICAgIGZpbGUgICAgICAgRmlsZSBvcGVyYXRpb25zLgogICAgICBxdWVyeSAgICAgIFF1ZXJ5IG1ldGFkYXRhLgogICAgICB3b3Jrc3BhY2UgIFdvcmtzcGFjZSBvcGVyYXRpb25zLgoKClB5dGhvbgpeXl5eXl4KClRvIHN0YXJ0IHVzaW5nICpxdWV0emFsLmNsaWVudCogb24gUHl0aG9uIGNvZGUsIHVzZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlOgoKLi4gY29kZS1ibG9jazo6IHB5dGhvbgoKICAgIGZyb20gcXVldHphbC5jbGllbnQgaW1wb3J0IENsaWVudCwgQ29uZmlndXJhdGlvbiwgUXVldHphbEFQSUV4Y2VwdGlvbgogICAgZnJvbSBxdWV0emFsLmNsaWVudCBpbXBvcnQgaGVscGVycwoKICAgIGNvbmZpZyA9IENvbmZpZ3VyYXRpb24oKQogICAgIyAuLi4gY2hhbmdlIGNvbmZpZyBhcyBuZWVkZWQgb3IgZmFsbGJhY2sgdG8gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyAuLi4KICAgICMgY29uZmlnLnZlcmlmeV9zc2wgPSBGYWxzZSAgIyBVc2UgdGhpcyBmb3Igc2VydmVycyB3aXRob3V0IGNlcnRpZmljYXRlcyAoZGV2IHNlcnZlcnMpCiAgICBjbGllbnQgPSBDbGllbnQoY29uZmlnKQoKICAgICMgQSBzaW1wbGUgdGVzdCB1c2luZyB0aGUgaGVscGVycyB0byB2ZXJpZnkgdGhhdCB3ZSBjYW4gbG9naW4gdG8gUXVldHphbAogICAgdHJ5OgogICAgICAgIGhlbHBlcnMuYXV0aC5sb2dpbihjbGllbnQpCiAgICAgICAgcHJpbnQoJ0xvZ2dlZCBpbiBzdWNjZXNzZnVsbHkhJykKICAgIGV4Y2VwdCBRdWV0emFsQVBJRXhjZXB0aW9uIGFzIGV4OgogICAgICAgIHByaW50KGYnT3BlcmF0aW9uIGZhaWxlZC4ge2V4LnRpdGxlfSAtIHtleC5kZXRhaWx9JykKCgpEb2N1bWVudGF0aW9uCi0tLS0tLS0tLS0tLS0KClRoZXJlIGFyZSBtb3JlIGRldGFpbHMgb24gKnF1ZXR6YWwuY2xpZW50KiBvbiBpdHMgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbiBhdApgcmVhZHRoZWRvY3MgPGh0dHBzOi8vcXVldHphbC1jbGllbnQucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Lz5gXy4KCkNvbnRyaWJ1dGUKLS0tLS0tLS0tLQoKLSBJc3N1ZSBUcmFja2VyOiBodHRwczovL2dpdGh1Yi5jb20vcXVldHotYWwvcXVldHphbC1jbGllbnQvaXNzdWVzCi0gU291cmNlIENvZGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9xdWV0ei1hbC9xdWV0emFsLWNsaWVudAoKTm90ZSB0byBwYWNrYWdlIG1haW50YWluZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRvIGJ1aWxkIGFuZCBzZW5kIHRoaXMgcGFja2FnZSB0byBQeVBJOgoKLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKCiAgICAjIENsZWFuIHByZXZpb3VzIGJ1aWxkcyEKICAgIHJtIC1yZiBkaXN0LwogICAgIyBCdWlsZAogICAgcHl0aG9uIHNldHVwLnB5IHNkaXN0IGJkaXN0X3doZWVsCgogICAgIyBJbnN0YWxsIGhlbHBlciBtb2R1bGUgZm9yIHVwbG9hZGluZyB0byBQeVBJCiAgICBwaXAgaW5zdGFsbCB0d2luZQogICAgIyBGaXJzdCwgc2VuZCB0byB0ZXN0IFB5UEkKICAgIHR3aW5lIHVwbG9hZCAtLXJlcG9zaXRvcnktdXJsIGh0dHBzOi8vdGVzdC5weXBpLm9yZy9sZWdhY3kvIGRpc3QvKgogICAgIyBJZiB0aGF0IHdvcmtzIG9rLCB0aGVuIHNlbmQgdG8gUHlQSQogICAgcHl0aG9uIC1tIHR3aW5lIHVwbG9hZCBkaXN0LyoKCkxpY2Vuc2UKLS0tLS0tLQoKVGhlIHByb2plY3QgaXMgdW5kZXIgdGhlIEJTRCAzLWNsYXVzZSBsaWNlbnNlLgo= readmeEtag: '"ea03b32059fbdfbf802a1fef988008f5a7ba6373"' readmeLastModified: Fri, 05 Jun 2020 13:55:43 GMT repositoryId: 170111505 description: Python client for the Quetzal API created: '2019-02-11T10:41:13Z' updated: '2020-06-05T13:57:52Z' language: Python archived: false stars: 2 watchers: 1 forks: 1 owner: quetz-al logo: https://avatars.githubusercontent.com/u/47522179?v=4 license: BSD-3-Clause repoEtag: '"b5d290e9d94c96994cf0b7a332906ac026cebabe2ca07c8aad521286e10c7180"' repoLastModified: Fri, 05 Jun 2020 13:57:52 GMT foundInMaster: true category: Server Implementations id: 2607f54b49a6ccbc03114f8a47b48a6c - source: openapi3 tags repository: https://github.com/unifysell/unifysell-sdk-php v3: true repositoryMetadata: base64Readme: >- IyBPZmZpY2lhbCBVbmlmeXNlbGwgQVBJIFNESwoKVGhpcyBwYWNrYWdlcyBjb21iaW5lcyB0aGUgZ3JvdXAgb2YgcGFja2FnZXMgbmVlZGVkLgoKIyMgSW5zdGFsbGF0aW9uCgojIyMgSW5jbHVkZSB0aGUgcGFja2FnZSB2aWEgY29tcG9zZXIKCnRvIHVzZSBpbiBjb21wb3NlciBhZGQgdG8gdGhlIHJlcXVpcmUgc2VjdGlvbjoKICAgIAogICAgInJlcXVpcmUiOiB7CiAgICAgICAgInVuaWZ5c2VsbC91bmlmeXNlbGwtc2RrLXBocCI6ICIqIgogICAgfQoKIyMjIEluc3RhbGxpbmcgY29tcG9zZXIKCnNlZSBodHRwczovL2dldGNvbXBvc2VyLm9yZy9kb3dubG9hZC8KCiMjIFVzYWdlCgpZb3UgY2FuIGhhdmUgYSBsb29rIGF0IHRoZSBgZXhhbXBsZS9jb21wbGV0ZS1leGFtcGxlLnBocGAgZmlsZSBmb3IgYSBiYXNpYyB1c2FnZSBleGFtcGxlLgoKIyMjIEF1dGhlbnRpY2F0ZQoKICAgIERvd25sb2FkIEFjY2VzcyBUb2tlbiBmcm9tIHVuaWZ5c2VsbCBDb250cm9sIENlbnRlciAoVUNDKS4KCiMjIyBNYWtlIHlvdXIgZmlyc3QgcmVxdWVzdAoKICAgICRjb25maWcgPSBVbmlmeXNlbGxcU0RLXENvbmZpZ3VyYXRpb246OmdldERlZmF1bHRDb25maWd1cmF0aW9uKCktPnNldEFwaUtleSgKICAgICAgICAnQXV0aG9yaXphdGlvbicsIAogICAgICAgICctLS0tSU5TRVJUIEJFQVJFUiBUT0tFTiBIRVJFLS0tLScKICAgICk7CiAgICAkY29uZmlnLT5zZXRBcGlLZXlQcmVmaXgoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyJyk7CiAgICAKICAgICRhcGlJbnN0YW5jZSA9IG5ldyBVbmlmeXNlbGxcU0RLXEFwaVxPcmRlcnNBcGkoCiAgICAgICAgbmV3IEd1enpsZUh0dHBcQ2xpZW50KCksCiAgICAgICAgJGNvbmZpZwogICAgKTsKICAgIAogICAgJHJlc3VsdCA9ICRhcGlJbnN0YW5jZS0+Z2V0T3JkZXIoMSk7Cg== readmeEtag: '"aab45a058721107afc30a822af485e3d8adb05ad"' readmeLastModified: Thu, 04 Jul 2019 08:34:21 GMT repositoryId: 141117831 description: >- SDK with OAuth2 for the unifysell API which allows you to painless integrate many eCommerce channels :clock3: created: '2018-07-16T09:36:11Z' updated: '2019-07-04T08:35:15Z' language: PHP archived: false stars: 2 watchers: 4 forks: 0 owner: unifysell logo: https://avatars.githubusercontent.com/u/24697137?v=4 license: MIT repoEtag: '"74731e5d4ae76913f15f8eb006595dd9bab894dcda61a53593d18ea92d45059b"' repoLastModified: Thu, 04 Jul 2019 08:35:15 GMT foundInMaster: true category: - Server - Server Implementations id: f11da6a79aa2da7ed7be9f5e1cdcecc9 - source: openapi3 tags repository: https://github.com/c-classen/oak-dsl v3: true repositoryMetadata: base64Readme: >- IyDwn4yzIE9wZW5BUEkgS290bGluIERvbWFpbiBTcGVjaWZpYyBMYW5ndWFnZQoKIVtNYXZlbiBDZW50cmFsIEJhZGdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby5naXRodWIuYy1jbGFzc2VuLm9ha2RzbC9vYWtkc2wpCgpUaGlzIEtvdGxpbiBsaWJyYXJ5IG9mZmVycyBhIGNvbmNpc2Ugd2F5IHRvIGRlZmluZSB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KRm9yIGV4YW1wbGUsIGl0IGlzIGFibGUgdG8gdHVybiB0aGlzIGNvZGUgd2hpY2ggZGVmaW5lcyBzb21lIENSVUQgZW5kcG9pbnRzIHRvIG1hbmFnZSBhIHRvZG8gbGlzdAoKYGBga290bGluCkBmaWxlOkNvbXBpbGVyT3B0aW9ucygiLWp2bS10YXJnZXQiLCAiMS44IikKQGZpbGU6RGVwZW5kc09uKCJpby5naXRodWIuYy1jbGFzc2VuLm9ha2RzbDpvYWtkc2w6MC4xLjMiKQoKaW1wb3J0IGlvLmdpdGh1Yi5jY2xhc3Nlbi5vYWtkc2wuYnVpbGRlci5PcGVuQXBpQnVpbGRlcgoKT3BlbkFwaUJ1aWxkZXIuZmlsZSgiYXBpLnlhbWwiKSB7CiAgICBpbmZvIHsKICAgICAgICB0aXRsZSA9ICJUZXN0IGFwaSIKICAgICAgICB2ZXJzaW9uID0gIjEuMC4wIgogICAgfQoKICAgIHBvc3Q8VG9kbz4oImNyZWF0ZVRvZG8iKSAvICJ0b2RvcyIgZGVmIHsKICAgICAgICByZXF1ZXN0Qm9keTxUb2RvUGF5bG9hZD4oKQogICAgfQogICAgZ2V0PExpc3Q8VG9kbz4+KCJyZWFkVG9kb3MiKSAvICJ0b2RvcyIgZGVmIHt9CiAgICBnZXQ8VG9kbz4oInJlYWRUb2RvIikgLyAidG9kb3MiIC8gbG9uZ1BhcmFtKCJ0b2RvSWQiKSBkZWYge30KICAgIHB1dDxUb2RvPigidXBkYXRlVG9kbyIpIC8gInRvZG9zIiAvIGxvbmdQYXJhbSgidG9kb0lkIikgZGVmIHt9CiAgICBwYXRjaDxUb2RvPigibWFya0FzRG9uZSIpIC8gInRvZG9zIiAvIGxvbmdQYXJhbSgidG9kb0lkIikgZGVmIHsKICAgICAgICBib29sUGFyYW0oImRvbmUiKQogICAgfQogICAgZGVsZXRlKCJkZWxldGVUb2RvIikgLyAidG9kb3MiIC8gbG9uZ1BhcmFtKCJ0b2RvSWQiKSBkZWYge30KfQoKaW50ZXJmYWNlIFRvZG8gewogICAgdmFsIGlkOiBMb25nCiAgICB2YWwgdGV4dDogU3RyaW5nCiAgICB2YWwgZG9uZTogQm9vbGVhbgp9CgppbnRlcmZhY2UgVG9kb1BheWxvYWQgewogICAgdmFsIHRleHQ6IFN0cmluZwp9CmBgYAoKaW50byB0aGUgZm9sbG93aW5nIE9wZW5BUEkgU3BlYzoKCmBgYHlhbWwKIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IG9hay1kc2wgKGh0dHBzOi8vZ2l0aHViLmNvbS9jLWNsYXNzZW4vb2FrLWRzbCkKb3BlbmFwaTogMy4wLjMKaW5mbzoKICB2ZXJzaW9uOiAiMS4wLjAiCiAgdGl0bGU6ICJUZXN0IGFwaSIKcGF0aHM6CiAgIi90b2RvcyI6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiAicmVhZFRvZG9zIgogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIlN1Y2Nlc3MiCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogImFycmF5IgogICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1RvZG8iCiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogImNyZWF0ZVRvZG8iCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1RvZG9QYXlsb2FkIgogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIlN1Y2Nlc3MiCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvVG9kbyIKICAiL3RvZG9zL3t0b2RvSWR9IjoKICAgIGRlbGV0ZToKICAgICAgb3BlcmF0aW9uSWQ6ICJkZWxldGVUb2RvIgogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gaW46IHBhdGgKICAgICAgICAgIG5hbWU6ICJ0b2RvSWQiCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIGZvcm1hdDogImludDY0IgogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIlN1Y2Nlc3MiCiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiAicmVhZFRvZG8iCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBpbjogcGF0aAogICAgICAgICAgbmFtZTogInRvZG9JZCIKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgZm9ybWF0OiAiaW50NjQiCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiU3VjY2VzcyIKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Ub2RvIgogICAgcGF0Y2g6CiAgICAgIG9wZXJhdGlvbklkOiAibWFya0FzRG9uZSIKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiAidG9kb0lkIgogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBmb3JtYXQ6ICJpbnQ2NCIKICAgICAgICAtIGluOiBxdWVyeQogICAgICAgICAgbmFtZTogImRvbmUiCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiU3VjY2VzcyIKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Ub2RvIgogICAgcHV0OgogICAgICBvcGVyYXRpb25JZDogInVwZGF0ZVRvZG8iCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBpbjogcGF0aAogICAgICAgICAgbmFtZTogInRvZG9JZCIKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgZm9ybWF0OiAiaW50NjQiCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiU3VjY2VzcyIKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9Ub2RvIgpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBUb2RvOgogICAgICB0eXBlOiAib2JqZWN0IgogICAgICByZXF1aXJlZDogWyAiZG9uZSIsICJpZCIsICJ0ZXh0IiBdCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgZG9uZToKICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGZvcm1hdDogImludDY0IgogICAgICAgIHRleHQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgIFRvZG9QYXlsb2FkOgogICAgICB0eXBlOiAib2JqZWN0IgogICAgICByZXF1aXJlZDogWyAidGV4dCIgXQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHRleHQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKYGBgCgpBbHRob3VnaCB0aGUgcmVzdWx0aW5nIHlhbWwgY291bGQgYmUgb3B0aW1pemVkIGJ5IGhhbmQgdG8gYmVjb21lIHNob3J0ZXIgKGUuZy4sIGJ5IGRlZmluaW5nIHRoZSBgdG9kb0lkYCBwYXJhbWV0ZXIgaW4gdGhlIGNvbXBvbmVudHMgc2VjdGlvbiksIGl0IHdvdWxkIHN0aWxsIG5vdCBiZSBuZWFybHkgYXMgc2hvcnQgYXMgdGhlIG9hay1kc2wgdmVyc2lvbi4KVG8gYWNoaWV2ZSB0aGlzIGJyZXZpdHksIG9hay1kc2wgdXNlcyB0d28gdGVjaG5pcXVlcy4KCkZpcnN0LCBpdCB1dGlsaXplcyBLb3RsaW4ncyBzeW50YXggZmVhdHVyZXMgdG8gbWFrZSBjZXJ0YWluIGRlZmluaXRpb25zIGhhdmUgbGVzcyBib2lsZXJwbGF0ZS4KRm9yIGV4YW1wbGUsIGRlZmluaW5nIGEgcHJvcGVydHkgaW4gYSBzY2hlbWEgaXMganVzdCBvbmUgbGluZSBpbiBLb3RsaW4gKGB2YWwgbmFtZTogVHlwZWApIHdoaWxlIGl0IHRha2VzIHR3byBvciBldmVuIHRocmVlIGxpbmVzIGluIHlhbWw6CgpgYGB5YW1sCm5hbWU6CiAgdHlwZTogVHlwZQpgYGAKClNlY29uZCwgaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhpbmdzIHRoYXQgeW91IGhhdmUgdG8gc3BlY2lmeSBleHBsaWNpdGx5IGluIHlhbWwuClRha2UgdGhlIGZvbGxvd2luZyBsaW5lIGFzIGFuIGV4YW1wbGUuCgpgYGBrb3RsaW4KZ2V0PExpc3Q8VG9kbz4+KCJyZWFkVG9kb3MiKSAvICJ0b2RvcyIgZGVmIHt9CmBgYAoKRmlyc3Qgd2Ugc3BlY2lmeSB0aGF0IHRoZSBlbmRwb2ludCB1c2VzIGEgR0VUIEhUVFAgbWV0aG9kLgpXZSB0aGVuIHNheSB0aGF0IGl0IHJldHVybnMgYSBMaXN0IG9mIFRvZG8gb2JqZWN0cyB3aGljaCBhcmUgZGVmaW5lZCBhdCBhIGxhdGVyIHBvaW50LgpBZnRlciB0aGF0LCB3ZSBzcGVjaWZ5IHRoZSBvcGVyYXRpb24gaWQgYXMgYHJlYWRUb2Rvc2AgYW5kIHRoZSBwYXRoIGFzIGAvdG9kb3NgLgpXZSBjb3VsZCBoYXZlIHVzZWQgdGhlIGJsb2NrIGZvbGxvd2luZyB0aGUgYGRlZmAga2V5d29yZCB0byBmdXJ0aGVyIGN1c3RvbWl6ZSB0aGUgZW5kcG9pbnQsIGJ1dCB3ZSBkaWQgbm90IG5lZWQgdG8uCgpUaGlzIGxpbmUgY29ycmVzcG9uZHMgdG8gdGhlIGZvbGxvd2luZyBPcGVuQVBJIGRlZmluaXRpb246CgpgYGB5YW1sCiAgIi90b2RvcyI6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiAicmVhZFRvZG9zIgogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIlN1Y2Nlc3MiCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogImFycmF5IgogICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1RvZG8iCmBgYAoKT3BlbkFQSSByZXF1aXJlcyBtb3JlIGluZm9ybWF0aW9uIHRoYW4gd2Ugc3BlY2lmaWVkLCBzbyBvYWstZHNsIGp1c3QgZmlsbGVkIHRoZW0gd2l0aCBkZWZhdWx0IHZhbHVlcy4KVGhlIGZpcnN0IG9uZSBpcyB0aGUgcmVzcG9uc2UgY29kZSB3aGljaCB3aWxsIHVzdWFsbHkgYmUgYDIwMGAgaW4gY2FzZSBubyBlcnJvciBoYXBwZW5lZC4KU2Vjb25kIGlzIHRoZSBkZXNjcmlwdGlvbiB3aGljaCBpcyBvZnRlbiBub3QgbmVjZXNzYXJ5LCBhcyB0aGUgbWVhbmluZyBvZiB0aGUgcmVzcG9uc2UgaXMgY2xlYXIgZnJvbSB0aGUgY29udGV4dC4KT2FrLWRzbCBkZWZhdWx0cyB0byBgIlN1Y2Nlc3MiYCBhcyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBkZWZhdWx0IHJlc3BvbnNlLgpUaGUgdGhpcmQgZGVmYXVsdCBwYXJhbWV0ZXIgaXMgdGhlIGNvbnRlbnQgdHlwZS4KVGhlcmUgcHJvYmFibHkgd2lsbCBiZSBjYXNlcywgd2hlcmUgYGFwcGxpY2F0aW9uL2pzb25gIGlzIG5vdCBhcHByb3ByaWF0ZSwgZS5nLiwgYmVjYXVzZSB3ZSB3YW50IHRvIGRvd25sb2FkIGEgZmlsZSwgYnV0IG1vc3Qgb2YgdGhlIHRpbWUgaXQgZG9lcyB0aGUgam9iLgoKIyBVc2FnZQoKVG8gZ2VuZXJhdGUgeW91ciBPcGVuQVBJIFNwZWNpZmljYXRpb24gd2l0aCBvYWstZHNsLCB5b3UgY3JlYXRlIGEgZmlsZSBuYW1lZCBgYXBpLm1haW4ua3RzYCBhbmQgZGVmaW5lIHlvdXIgZW5kcG9pbnRzIGFzIHNlZW4gaW4gdGhlIGZpcnN0IGV4YW1wbGUgYWJvdmUuIAoKVG8gZ2VuZXJhdGUgdGhlIHlhbWwgZmlsZSwgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIHRoZSBbS290bGluIGNvbXBpbGVyXShodHRwczovL2tvdGxpbmxhbmcub3JnL2RvY3MvY29tbWFuZC1saW5lLmh0bWwpLgpPbmNlIHlvdSBoYXZlIGRvbmUgdGhhdCwgZXhlY3V0ZSBga290bGluYyAtc2NyaXB0IGFwaS5tYWluLmt0c2AgZnJvbSB0aGUgY29tbWFuZCBsaW5lIGluIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgb2FrLWRzbCBkZWZpbml0aW9uIGZpbGUuCgpJZiB5b3UgYXJlIHVzaW5nIEludGVsbGlKLCB5b3Ugd2lsbCBoYXZlIHdvcmtpbmcgYXV0by1jb21wbGV0aW9uIGZvciB0aGUgYGFwaS5tYWluLmt0c2AgZmlsZS4KWW91IGNhbiBhbHNvIHVzZSBJbnRlbGxpSiB0byBydW4geW91ciBzY3JpcHQsIGJ1dCB0aGlzIG1heSBjdXJyZW50bHkgZmFpbCBpbiBjYXNlIHlvdSBoYXZlIG90aGVyIEtvdGxpbiBjb2RlIHdpdGggZXJyb3JzIGluIHlvdXIgcHJvamVjdC4KCgoKIyBGZWF0dXJlcyBhbmQgRG9jdW1lbnRhdGlvbgoKVGhpcyBzZWN0aW9uIGV4cGxhaW5zIGhvdyB0aGUgZmVhdHVyZXMgb2Ygb2FrLWRzbCBjYW4gaGVscCB5b3UgcXVpY2tseSB3cml0ZSB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbi4KCiMjIEJhc2ljcwoKWW91ciBvYWstZHNsIGZpbGUgc2hvdWxkIHVzdWFsbHkgbG9vayBhcyBmb2xsb3dzOgoKYGBga290bGluCkBmaWxlOkNvbXBpbGVyT3B0aW9ucygiLWp2bS10YXJnZXQiLCAiMS44IikKQGZpbGU6RGVwZW5kc09uKCJpby5naXRodWIuY2NsYXNzZW4ub2FrZHNsOm9ha2RzbDpWRVJTSU9OIikKCmltcG9ydCBpby5naXRodWIuY2NsYXNzZW4ub2FrZHNsLmJ1aWxkZXIuT3BlbkFwaUJ1aWxkZXIKCk9wZW5BcGlCdWlsZGVyLmZpbGUoImFwaS55YW1sIikgewogICAgLy8gRW5kcG9pbnRzCn0KCi8vIFR5cGVzCmBgYAoKVGhlIGZpcnN0IGFuZCBzZWNvbmQgbGluZSBjb25maWd1cmUgdGhlIEtvdGxpbiBjb21waWxlciBhbmQgZGVjbGFyZSB0aGUgZGVwZW5kZW5jeSBvbiBvYWstZHNsIHJlc3BlY3RpdmVseS4KVGhlbiB0aGUgc2NyaXB0IGltcG9ydHMgdGhlIGNsYXNzIGBPcGVuQXBpQnVpbGRlcmAgYW5kIGNhbGxzIHRoZSBgZmlsZWAgbWV0aG9kIG9uIGl0cyBjb21wYW5pb24gb2JqZWN0LgpJdCB0YWtlcyB0aGUgZmlsZW5hbWUgb2YgdGhlIE9wZW5BUEkgWUFNTCBmaWxlIHRvIGJlIGdlbmVyYXRlZCwgYW5kIGEgbGFtYmRhIHdoZXJlIHRoZSBmaWxlJ3MgY29udGVudHMgY2FuIGJlIGNvbmZpZ3VyZWQuCldpdGhpbiB0aGF0IGxhbWJkYSwgZmlyc3QgdGhlIGNvbnRlbnRzIG9mIHRoZSBpbmZvIHNlY3Rpb24gb2YgdGhlIHNwZWNpZmljYXRpb24gYXJlIGRlY2xhcmVkLgpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGRlZmluZSBtb3JlIG1ldGFkYXRhIHdpdGhpbiB0aGF0IHNlY3Rpb24gYW5kIHRvIGRlY2xhcmUgc2VydmVycyBieSB1c2luZyB0aGUgZm9sbG93aW5nIG1ldGhvZCBjYWxsLgoKYGBga290bGluCnNlcnZlcigiaHR0cDovL2V4YW1wbGUuY29tLyIsICJTb21lIERlc2NyaXB0aW9uIikKYGBgCgojIyBEZWZpbmluZyBFbmRwb2ludHMKClRvIGRlZmluZSBhbiBlbmRwb2ludCwgeW91IG5lZWQgdG8gY2FsbCB0aGUgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8gdGhlIEhUVFAgbWV0aG9kLgpJdCB0YWtlcyBhbiBvcHRpb25hbCB0eXBlIHBhcmFtZXRlci4KSWYgeW91IHNwZWNpZnkgaXQsIG9hay1kc2wgd2lsbCBnZW5lcmF0ZSBhIGAyMDBgIHJlc3BvbnNlIHdpdGggY29udGVudCB0eXBlIGBhcHBsaWNhdGlvbi9qc29uYCBhbmQgYSBzY2hlbWEgdGhhdCByZWZlcmVuY2VzIGEgdHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIHBhcmFtZXRlci4KVGhlIG9ubHkgdmFsdWUgcGFyYW1ldGVyIGlzIHRoZSBvcGVyYXRpb24gaWQuCkFmdGVyIHRoZSBtZXRob2QgY2FsbCwgeW91IGNhbiBkZWZpbmUgdGhlIHBhdGggb2YgdGhlIGVuZHBvaW50IHVzaW5nIHRoZSBgL2Agb3BlcmF0b3Igb24gdGhlIHJlc3VsdGluZyBgRW5kcG9pbnRQYXRoQnVpbGRlcmAuCkFzIHNlY29uZCBvcGVyYW5kIHlvdSBjYW4gZWl0aGVyIHVzZSBhIHN0cmluZyBsaXRlcmFsLCBvciBhIHBhcmFtZXRlciB3aGljaCBpcyBleHBsYWluZWQgbGF0ZXIuCkFmdGVyIGFwcGVuZGluZyBhbGwgcGF0aCBzZWdtZW50cywgeW91IGNhbiBjb25jbHVkZSB0aGUgZW5kcG9pbnQgZGVmaW5pdGlvbiB1c2luZyB0aGUgYGRlZmAgaW5maXggZnVuY3Rpb24gZm9sbG93ZWQgYnkgYSBsYW1iZGEgdGhhdCBhbGxvd3MgeW91IHRvIGZ1cnRoZXIgY3VzdG9taXplIHlvdXIgZW5kcG9pbnQuCllvdSBjYW4gdXNlIGl0IHRvIGRlZmluZSBhIGRlc2NyaXB0aW9uLCB0YWdzLCByZXNwb25zZXMgYW5kIHRoZSByZXF1ZXN0IGJvZHkuCgojIyBEZWZpbmluZyBUeXBlcwoKWW91IGNhbiB1c2UgZWl0aGVyIGludGVyZmFjZXMgb3IgY2xhc3NlcyB0byBkZWZpbmUgdGhlIHR5cGVzIHlvdSB1c2UgYXMgeW91ciBzY2hlbWFzIGZvciByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLgpJbnRlcmZhY2VzIGFsbG93IGZvciBlYXN5IGluaGVyaXRhbmNlIHdoaWNoIGlzIHJlcHJlc2VudGVkIGJ5IGEgc2NoZW1hIHVzaW5nIGBhbGxPZmAuCkhvd2V2ZXIsIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGNhbm5vdCBiZSBwcmVzZXJ2ZWQgYW5kIGlzIHRoZXJlZm9yZSBhbHBoYWJldGljYWxseS4KRm9yIGNsYXNzZXMsIHlvdSBuZWVkIHRvIHB1dCB0aGUgZmllbGRzIGluIHRoZSBwcmltYXJ5IGNvbnN0cnVjdG9yIGxpa2UgdGhpczoKCmBgYGtvdGxpbgpjbGFzcyBFeGFtcGxlKAogIGZpcnN0RmllbGQ6IEludCwKICBzZWNvbmRGaWVsZDogU3RyaW5nCikKYGBgCgpBbGwgdHlwZXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGJ5IHlvdXIgc3BlY2lmaWNhdGlvbiB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gYSBzY2hlbWEuClByaW1pdGl2ZSB0eXBlcyBhcmUgdHJhbnNsYXRlZCB0byB0aGVpciBqc29uIHNjaGVtYSBjb3VudGVycGFydHMgYW5kIGNsYXNzZXMsIGludGVyZmFjZXMgYW5kIGVudW1lcmF0aW9ucyB3aWxsIGJlIGRlZmluZWQgaW4gdGhlIGBjb21wb25lbnRzL3NjaGVtYXNgIHNlY3Rpb24gb2YgdGhlIHJlc3VsdGluZyBZQU1MLgpJdCBpcyB0aGVyZWZvcmUgaW1wb3J0YW50IHRoYXQgdGhleSBoYXZlIHVuaXF1ZSBuYW1lcy4KCllvdSBjYW4gYWxzbyBkZWZpbmUgc2NoZW1hcyBieSBjb25zdHJ1Y3RpbmcgdGhlIGNsYXNzZXMgaW4gdGhlIHBhY2thZ2UgYGlvLmdpdGh1Yi5jY2xhc3Nlbi5vYWtkc2wubW9kZWwuc2NoZW1hYCBkaXJlY3RseS4KSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBvdmVycmlkZSB0eXBlIHJlc29sdXRpb24gZm9yIHlvdXIgb3duIG9yIGJ1aWx0LWluIHR5cGVzLCBhcyBzaG93biBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6CgpgYGBrb3RsaW4KT3BlbkFwaUJ1aWxkZXIuZmlsZSgiYXBpLnlhbWwiKSB7CiAgdmFsIGRiSWQgPSBjb21wb25lbnRzLnR5cGUoIkRiSWQiLCBQcmltaXRpdmVTY2hlbWEoImludGVnZXIiLCAiaW50NjQiKSkKICBjdXN0b21SZXNvbHZlPERiSWQ+IHsgZGJJZCB9CiAgLy8gRW5kcG9pbnRzCn0KCmludGVyZmFjZSBEYklkCmBgYAoKQnkgY2FsbGluZyBgY29tcG9uZW50cy50eXBlYCwgeW91IGNhbiByZWdpc3RlciB5b3VyIGNvbnN0cnVjdGVkIHR5cGUgdG8gYmUgb3V0cHV0IGluIHRoZSBgY29tcG9uZW50cy9zY2hlbWFzYCBzZWN0aW9uIG9mIHRoZSBZQU1MLgoKIyMgRGVmaW5pbmcgcGFyYW1ldGVycwoKRm9yIG9hay1kc2wsIHR3byBraW5kcyBvZiBwYXJhbWV0ZXJzIG11c3QgYmUgZGlzdGluZ3Vpc2hlZC4KUGF0aCBwYXJhbWV0ZXJzIG11c3QgYmUgZGVjbGFyZWQgd2hlbiBidWlsZGluZyB0aGUgcGF0aCwgbGlrZSBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6CgpgYGBrb3RsaW4KZ2V0PFRvZG8+KCJyZWFkVG9kbyIpIC8gInRvZG9zIiAvIGxvbmdQYXJhbSgidG9kb0lkIikgZGVmIHt9CmBgYAoKUXVlcnkgYW5kIGhlYWRlciBwYXJhbWV0ZXJzIGFyZSBkZWNsYXJlZCB3aXRoaW4gdGhlIGVuZHBvaW50IGRlZmluaXRpb246CgpgYGBrb3RsaW4KZ2V0PFRvZG8+KCJyZWFkVG9kbyIpIC8gInRvZG9zIiBkZWYgewogIGxvbmdQYXJhbSgidG9kb0lkIikKfQpgYGAKCllvdSBjYW4gYWxzbyBkZWNsYXJlIGhhdmUgeW91ciBwYXJhbWV0ZXIgZGVjbGFyZWQgaW4gdGhlIGBjb21wb25lbnRzL3BhcmFtZXRlcnNgIHNlY3Rpb24gb2YgdGhlIFlBTUwgYW5kIHRoZW4gcmVmZXIgdG8gaXQgbGF0ZXIgYnkgcmVmZXJlbmNlOgoKYGBga290bGluCnZhbCBpZFBhcmFtID0gY29tcG9uZW50cy5wYXJhbWV0ZXIoImlkUGFyYW0iLCAiaWQiLCBjb21wb25lbnRzLnJlc29sdmVDbGFzcyhMb25nOjpjbGFzcyksIGtpbmQgPSAicGF0aCIpCiAgCmdldDxUb2RvPigicmVhZFRvZG8iKSAvICJ0b2RvcyIgLyBpZFBhcmFtIGRlZiB7fQoKYGBgCgojIyBFbmRwb2ludCBGaWx0ZXJzCgpFbmRwb2ludCBmaWx0ZXJzIGFsbG93IHlvdSB0byBoYXZlIHNlY3Rpb25zIGluIHlvdXIgb2FrLWRzbCBkZWZpbml0aW9uIHRoYXQgZW5oYW5jZSByZWFkYWJpbGl0eSBhbmQgYWxsb3cgeW91IHRvIGFwcGx5IGNlcnRhaW4gdHJhbnNmb3JtYXRpb25zIHRvIGFsbCBlbmRwb2ludHMgd2l0aGluIHRoZSBzZWN0aW9uLgpUaGV5IGNhbiBiZSB1c2VkIGFzIGZvbGxvd3M6CgpgYGBrb3RsaW4KdmFsIHByZWZpeCA9IGVuZHBvaW50RmlsdGVyIHsgcGF0aCA9ICIvdG9kb3MkcGF0aCIgfQogICAgCnByZWZpeCB7CiAgICBnZXQ8TGlzdDxUb2RvPj4oInJlYWRUb2RvcyIpIGRlZiB7fQogICAgZ2V0PFRvZG8+KCJyZWFkVG9kbyIpIC8gbG9uZ1BhcmFtKCJ0b2RvSWQiKSBkZWYge30KfQpgYGAKClRoZSB0d28gZW5kcG9pbnRzIHdpdGhpbiB0aGUgYHByZWZpeGAgc2VjdGlvbiB3aWxsIGhhdmUgdGhlIGAvdG9kb3NgIHBhdGggc2VnbWVudCBwcmVwZW5kZWQgdG8gdGhlaXIgcGF0aC4KVGhlcmVmb3JlLCBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIHNwZWNpZmllZCB3aGVuIGRlY2xhcmluZyB0aGUgZW5kcG9pbnRzLgpUaGlzIHJlZHVjZXMgdmVyYm9zaXR5IGFuZCBnaXZlcyB0aGUgb2FrLWRzbCBkb2N1bWVudCBtb3JlIHN0cnVjdHVyZS4KV2hlbiBkZWNsYXJpbmcgYW4gZW5kcG9pbnQgZmlsdGVyLCB5b3Ugc3BlY2lmeSBhIGxhbWJkYSByZWNlaXZpbmcgYW4gYEVuZHBvaW50SXRlbWAgd2hpY2ggYWxsb3dzIHlvdSB0byBtb2RpZnkgdGhlIEh0dHAtYG1ldGhvZGAsIHRoZSBgcGF0aGAgYW5kIHRoZSBvdGhlciBwcm9wZXJ0aWVzIHdpdGhpbiB0aGUgYGVuZHBvaW50YC4gCllvdSBjYW4gYWxzbyBjb21iaW5lIG11bHRpcGxlIGZpbHRlcnMgYnkgdXNpbmcgdGhlaXIgYGFuZGAtbWV0aG9kIHdoaWNoIHJldHVybnMgYSBuZXcgZmlsdGVyIHRoYXQgYXBwbGllcyBmaXJzdCB0aGUgcmlnaHQtaGFuZCBmaWx0ZXIgYW5kIHRoZW4gdGhlIGxlZnQtaGFuZCBvbmUuCgojIyMgUHJlZml4CgpUaGVyZSBpcyBubyBuZWVkIHRvIGRlY2xhcmUgYSBjdXN0b20gZW5kcG9pbnQgZmlsdGVyIGlmIHlvdSB3YW50IHRvIHByZXBlbmQgYSBwcmVmaXggdG8gYWxsIHBhdGhzIHdpdGhpbiB0aGUgZmlsdGVyLgpZb3UgY2FuIGp1c3QgdXNlIHRoZSBidWlsdC1pbiBgcHJlZml4YC1tZXRob2Qgd2hpY2ggY3JlYXRlcyBhIGZpbHRlciB3aXRoIGEgcHJlZml4IHlvdSBzcGVjaWZ5OgoKYGBga290bGluCnByZWZpeCgiL3ByZWZpeCIpIHsKICAgIC8vIGVuZHBvaW50cwp9CmBgYAoKIyMjIFRhZ2dlZAoKVGhlIHNhbWUgZ29lcyBpbiBjYXNlIHlvdSB3YW50IHRvIGFkZCBhIHRhZyB0byBlYWNoIGVuZHBvaW50LgoKYGBga290bGluCnRhZ2dlZCgiU29tZVRhZyIpIHsKICAgIC8vIGVuZHBvaW50cwp9CmBgYAoKIyMjIE1hcmtlZAoKRW5kcG9pbnRzIGNhbiBiZSBtYXJrZWQsIHdoaWNoIGhhcyBubyBlZmZlY3Qgb24gdGhlIGdlbmVyYXRlZCBZQU1MLCBidXQgY2FuIGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggY2VydGFpbiBlbmRwb2ludHMgaW4gcG9zdC1wcm9jZXNzaW5nLgoKYGBga290bGluCmVudW0gY2xhc3MgTWljcm9TZXJ2aWNlIHsgQSwgQiB9CgptYXJrZWQoTWljcm9TZXJ2aWNlLkEpIHsKICBwb3N0KCJoZWxsbyIpIC8gImhlbGxvIiBkZWYge30KfQpgYGAKCiMjIEdsb2JhbCBmaWx0ZXJzIGFuZCBjdXN0b20gZXh0ZW5zaW9ucwoKRW5kcG9pbnQgZmlsdGVycyBjYW4gYWxzbyBiZSBhcHBsaWVkIHRvIGFsbCBlbmRwb2ludHMgYnkgdXNpbmcgdGhlIGBnbG9iYWxGaWx0ZXJgIG1ldGhvZC4KSG93ZXZlciwgeW91IGNhbm5vdCBtb2RpZnkgdGhlIEhUVFAgbWV0aG9kIG9yIHRoZSBwYXRoIHRoaXMgd2F5LgpUaGlzIGlzIGEgY29udmVuaWVudCB3YXkgdG8gcHV0IHNvbWUgY3VzdG9tIGV4dGVuc2lvbnMgb24geW91ciBlbmRwb2ludHMgdGhhdCBkZXBlbmQgb24gZW5kcG9pbnQgbWV0YWRhdGEuCgpgYGBrb3RsaW4KZ2xvYmFsRmlsdGVyRm9yTWFya2VkKE1pY3JvU2VydmljZS5BKSB7CiAgICBlbmRwb2ludC5hZGRpdGlvbmFsWWFtbFByb3BlcnRpZXNbIngtbXktZXh0ZW5zaW9uIl0gPSBZYW1sTWFwLmJ1aWxkIHsKICAgICAgICBtYXAoIm15LW1hcCIpIHsKICAgICAgICAgICAgYXJyYXkoIm15LWFycmF5IikgewogICAgICAgICAgICAgICAgc3RyaW5nKCJTb21lU3RyaW5nIikKICAgICAgICAgICAgICAgIHZhbHVlKCJTb21lVmFsdWUiKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHNob3J0QXJyYXkoIm15LXNob3J0LWFycmF5IiwgbGlzdE9mKDEsIHRydWUsIC0xLjMsICJUZXN0IikpCiAgICAgICAgICAgIHNob3J0U3RyaW5nQXJyYXkoIm15LXN0cmluZy1hcnJheSIsIGxpc3RPZigiYSIsICJiIikpCiAgICAgICAgICAgIHN0cmluZygic29tZVN0cmluZyIsICJUZXN0c3RyaW5nIikKICAgICAgICB9CiAgICB9Cn0KYGBgCgpJbiB0aGlzIGNvZGUsIGEgY3VzdG9tIGV4dGVuc2lvbiBpcyBhZGRlZCB0byBhbGwgZW5kcG9pbnRzIHRoYXQgd2VyZSBtYXJrZWQgd2l0aCBgTWljcm9TZXJ2aWNlLkFgICh3aGVyZSBgTWljcm9TZXJ2aWNlYCBpcyBhbiBlbnVtKS4KVGhlIGV4dGVuc2lvbiB3aWxsIGJlIHNlcmlhbGl6ZWQgdG8gdGhlIGZvbGxvd2luZyB5YW1sOgoKYGBgeWFtbAoieC1teS1leHRlbnNpb24iOgogICJteS1tYXAiOgogICAgIm15LWFycmF5IjoKICAgIC0gIlNvbWVTdHJpbmciCiAgICAtIFNvbWVWYWx1ZQogICAgIm15LXNob3J0LWFycmF5IjogWyAxLCB0cnVlLCAtMS4zLCBUZXN0IF0KICAgICJteS1zdHJpbmctYXJyYXkiOiBbICJhIiwgImIiIF0KICAgIHNvbWVTdHJpbmc6ICJUZXN0c3RyaW5nIgpgYGAK readmeEtag: '"51411dad6c2ae8bc4ef8453a67f13967d62424e8"' readmeLastModified: Thu, 02 Dec 2021 14:29:56 GMT repositoryId: 398049382 description: Create OpenAPI Specifications using Kotlin created: '2021-08-19T19:10:39Z' updated: '2023-04-30T07:30:21Z' language: Kotlin archived: false stars: 2 watchers: 1 forks: 0 owner: c-classen logo: https://avatars.githubusercontent.com/u/58041050?v=4 license: MIT repoEtag: '"207c168cec596409891eb1f6aabb207e04de710df15ea5f98057a503e4355ea7"' repoLastModified: Sun, 30 Apr 2023 07:30:21 GMT foundInMaster: true id: 4373894238bf0f136bc8d79d25df5f69 - source: openapi3 tags repository: https://github.com/37mobileteam/appstoreconnectcerts v3: true id: b8b614c0a3ec633d4b7805b71a1f3f13 repositoryMetadata: base64Readme: >- IyBBcHBTdG9yZUNvbm5lY3RDZXJ0cwpQcm9qZWN0IG9mIENlcnRpZmljYXRlIE1hbmFnZW1lbnQgQXV0b21hdGlvbiAtIEJhY2tlbmQK readmeEtag: '"cb476f86edba5c0a98c02fe2fea0a74407c83993"' readmeLastModified: Mon, 25 Sep 2023 10:14:11 GMT repositoryId: 694456934 description: Project of Certificate Management Automation - Backend created: '2023-09-21T03:17:49Z' updated: '2023-09-27T03:53:43Z' language: C archived: false stars: 2 watchers: 2 forks: 1 owner: 37MobileTeam logo: https://avatars.githubusercontent.com/u/85087913?v=4 license: GPL-3.0 repoEtag: '"7a6daf03d0351b3ff2400cb016d622be4fd69fafd060475f61c1b016f1e2c66a"' repoLastModified: Wed, 27 Sep 2023 03:53:43 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mheap/json-schema-spell-checker v3: true repositoryMetadata: base64Readme: >- IyBqc29uLXNjaGVtYS1zcGVsbC1jaGVja2VyCgpUaGlzIENMSSBhbGxvd3MgeW91IHRvIHByb3ZpZGUgYSBKU09OUGF0aCBleHByZXNzaW9uIGFuZCBydW4gYG1kc3BlbGxgIGFnYWluc3QgYW55IG1hdGNoaW5nIGxpbmVzLgoKPiBUaGlzIHRvb2wgaXMgY3VycmVudGx5IGluIGFscGhhIGFuZCBoYXMgcHJpbWFyaWx5IGJlZW4gdGVzdGVkIGFnYWluc3QgT3BlbkFQSSBmaWxlcy4gUFJzIGFyZSB3ZWxjb21lIQoKIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCm5wbSBpbnN0YWxsIC1nIGpzb24tc2NoZW1hLXNwZWxsLWNoZWNrZXIKYGBgCgojIyBVc2FnZQoKQ2hlY2sgYWdhaW5zdCBzcGVjaWZpYyBmaWVsZCBuYW1lcyBhdCBhbnkgZGVwdGg6CgpgYGBiYXNoCmpzb24tc2NoZW1hLXNwZWxsLWNoZWNrZXIgLWYgJ2Rlc2NyaXB0aW9uLHRpdGxlJyAvcGF0aC90by9vcGVuYXBpLmpzb24KYGBgCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNwZWNpZnkgYSBKU09OUGF0aCBleHByZXNzaW9uIHlvdXJzZWxmCgpgYGBiYXNoCmpzb24tc2NoZW1hLXNwZWxsLWNoZWNrZXIgLWogIiQuLltkZXNjcmlwdGlvbix0aXRsZV0iIC9wYXRoL3RvL29wZW5hcGkuanNvbgpgYGAKCklmIHlvdSBoYXZlIHdvcmRzIHRoYXQgYXJlbid0IGEgc3BlbGxpbmcgbWlzdGFrZSBidXQgYXJlbid0IGluIHRoZSBkaWN0aW9uYXJ5LCBhZGQgdGhlbSB0byBhIGAuc3BlbGxpbmdgIGZpbGUgKG9uZSB3b3JkIHBlciBsaW5lKSBpbiB0aGUgY3VycmVudCBmb2xkZXIuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gcHJvdmlkZSBhIHBhdGggd2l0aCBgLXNgCgpgYGBiYXNoCmpzb24tc2NoZW1hLXNwZWxsLWNoZWNrZXIgLXMgL3BhdGgvdG8vLnNwZWxsaW5nIC1mICdkZXNjcmlwdGlvbix0aXRsZScgL3BhdGgvdG8vb3BlbmFwaS5qc29uCmBgYAoKIyMgUHJlLWNvbW1pdCBob29rCgpZb3UgY2FuIHVzZSB0aGlzIHRvb2wgYXMgYSBgcHJlLWNvbW1pdGAgaG9vayBieSBhZGRpbmcgdGhlIGZvbGxvd2luZyB0byB5b3VyIGAucHJlLWNvbW1pdC1jb25maWcueWFtbGA6CgpgYGB5YW1sCnJlcG9zOgogIC0gcmVwbzogaHR0cHM6Ly9naXRodWIuY29tL21oZWFwL2pzb24tc2NoZW1hLXNwZWxsLWNoZWNrZXIKICAgIHJldjogPHZlcnNpb24+ICMgVXNlIHRoZSByZWYgeW91IHdhbnQgdG8gcG9pbnQgYXQKICAgIGhvb2tzOgogICAgICAtIGlkOiBqc29uLXNjaGVtYS1zcGVsbC1jaGVja2VyCiAgICAgICAgZmlsZXM6IDxzY2hlbWE+XC5qc29uJApgYGAK readmeEtag: '"592d46c30d35dc5fe57c42553bf329574068209e"' readmeLastModified: Mon, 20 Nov 2023 09:49:07 GMT repositoryId: 227215167 description: >- This CLI allows you to provide a JSONPath expression and run mdspell against any matching lines. created: '2019-12-10T21:03:06Z' updated: '2023-09-08T18:01:07Z' language: JavaScript archived: false stars: 2 watchers: 4 forks: 1 owner: mheap logo: https://avatars.githubusercontent.com/u/59130?v=4 repoEtag: '"a589f1aa922e675dc118945974a1bd71bde0696fa70355f530c9f22e0bcbd630"' repoLastModified: Fri, 08 Sep 2023 18:01:07 GMT foundInMaster: true category: Parsers id: 9de99ade60b1432266afaf1e0719633a - source: openapi3 tags repository: https://github.com/quantumsheep/swagger-schema-extractor v3: true repositoryMetadata: base64Readme: >- WyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3N3YWdnZXItc2NoZW1hLWV4dHJhY3RvcildKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N3YWdnZXItc2NoZW1hLWV4dHJhY3RvcikKCiMgU3dhZ2dlciBTY2hlbWEgRXh0cmFjdG9yCkV4dHJhY3QgT3BlbkFQSSBzY2hlbWFzIGludG8gVHlwZVNjcmlwdCB0eXBlcy4KCiMjIFVzYWdlCiMjIyBPcGVuQVBJIHYzCmBgYGJhc2gKbnB4IHN3YWdnZXItc2NoZW1hLWV4dHJhY3RvciBodHRwOi8vbG9jYWxob3N0OjMwMDAvb3BlbmFwaS5qc29uID4gdHlwZXMudHMKYGBgCgojIyMgT3BlbkFQSSB2MgpgYGBiYXNoCm5weCBzd2FnZ2VyLXNjaGVtYS1leHRyYWN0b3IgaHR0cDovL2xvY2FsaG9zdDozMDAwL3YyL3N3YWdnZXIuanNvbiA+IHR5cGVzLnRzCmBgYAo= readmeEtag: '"1f8cf473ab0422000c39c5f100696f6b25cb5ae9"' readmeLastModified: Mon, 07 Dec 2020 09:58:02 GMT repositoryId: 318500212 description: Extract Swagger (OpenAPI) schemas into TypeScript types created: '2020-12-04T11:48:15Z' updated: '2020-12-14T23:59:30Z' language: JavaScript archived: false stars: 2 watchers: 2 forks: 0 owner: quantumsheep logo: https://avatars.githubusercontent.com/u/7271496?v=4 license: MIT repoEtag: '"2924dbf2bed8fc0daa4c6c5ef74ae1bcbb50ae0c6b86152d1e79f9b3dfc0b306"' repoLastModified: Mon, 14 Dec 2020 23:59:30 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: ed2585a9c3054899a65e93cc6fab281c - source: openapi3 tags repository: https://github.com/sdclarkelab/covid19-jamaica-api v3: true repositoryMetadata: base64Readme: >- IyBDb3ZpZC0xOSBKYW1haWNhIEFQSQpUaGlzIHByb2plY3RzIHB1bGxzIENvdmlkLTE5IHJlcG9ydHMgZnJvbSB0aGUgKltNaW5pc3RyeSBvZiBIZWFsdGgsIEphbWFpY2FdKGh0dHBzOi8vd3d3Lm1vaC5nb3Yuam0vdXBkYXRlcy9jb3JvbmF2aXJ1cy9jb3ZpZC0xOS1jbGluaWNhbC1tYW5hZ2VtZW50LXN1bW1hcnkvKSogYW5kIHNldmVycyB0aGF0IGRhdGEgaW4gSlNPTiBmb3JtYXQgdmlhIFJFU1QgQVBJLgoKIyMgSG93IHRvIFJ1bgpgYGBzaAokIHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKJCBweXRob24gYXBpLnB5CmBgYAoKIyMgQVBJIGRvY3VtZW50YXRpb24KTmF2aWdhdGUgdG8gdGhlIGZvbGxvd2luZyBVUkwgKGh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC9jb3ZpZDE5LWphbS9hcGkvdjEvdWkpIGxvY2FsbHkgdG8gdmlldyB0aGUgT3BlbkFQSSB1c2VyIGludGVyZmFjZSBvciB2aXNpdCAoaHR0cHM6Ly9hcHAuc3dhZ2dlcmh1Yi5jb20vYXBpcy9zZGNsYXJrZWxhYi9jb3ZpZDE5X2phbV9hcGkvdjEpCg== readmeEtag: '"deb5df79301773cb8d7c3c7c63f16e3c85bbe8fc"' readmeLastModified: Sat, 23 Oct 2021 22:21:02 GMT repositoryId: 416054590 description: Jamaica COVID-19 API data scraped from the MOH's website created: '2021-10-11T19:09:28Z' updated: '2021-11-17T20:08:23Z' language: Python archived: false stars: 2 watchers: 1 forks: 0 owner: sdclarkelab logo: https://avatars.githubusercontent.com/u/44792415?v=4 repoEtag: '"57132d6dde2bda14e5d3c948ead592a4a0b678fab0c1bb4b12965afc3562f3b3"' repoLastModified: Wed, 17 Nov 2021 20:08:23 GMT foundInMaster: true category: Server Implementations id: eb4c3835c1410cc0afc0e3b22c7bb093 - source: openapi3 tags repository: https://github.com/walkersumida/go-api-server v3: true id: 2518a5e96dc9498c8e3e8fd17d5d20f3 repositoryMetadata: repositoryId: 657910869 description: API Server (ogen + ent + golang-migrate + postgres) created: '2023-06-24T07:25:04Z' updated: '2024-06-14T21:46:03Z' language: Go archived: false stars: 2 watchers: 1 forks: 0 owner: walkersumida logo: https://avatars.githubusercontent.com/u/12683375?v=4 license: Apache-2.0 repoEtag: '"d5e19cfe36b6d2167cbac084394b7b6c11634c468ce50bb983d224c4f3b47fc0"' repoLastModified: Fri, 14 Jun 2024 21:46:03 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/mloberg/openapi-stitcher v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFN0aXRjaGVyCgpTdGl0Y2ggdG9nZXRoZXIgT3BlbkFQSSBmaWxlcyBpbnRvIGEgc2luZ2xlIGZpbGUuCgojIyBSZXF1aXJlbWVudHMKCiogTm9kZUpTICg+PSAxMCkKCiMjIFVzYWdlCgpTZWUgaGVscCBmb3IgYWxsIGNvbW1hbmRzIGFuZCBvcHRpb25zCgogICAgbnB4IG9wZW5hcGktc3RpdGNoZXIgLS1oZWxwCiAgICBucHggb3BlbmFwaS1zdGl0Y2hlciBidWlsZCAtLWhlbHAKClN0aXRjaCB0b2dldGhlciBmaWxlcyBtYXRjaGluZyBhIHBhdHRlcm4uCgogICAgbnB4IG9wZW5hcGktc3RpdGNoZXIgYnVpbGQgInNwZWMvKiovKi57eWFtbCx5bWx9IiBvcGVuYXBpLnlhbWwKCldhdGNoIGZvciBjaGFuZ2VzIGFuZCByZWJ1aWxkIHRoZSBmaWxlLgoKICAgIG5weCBvcGVuYXBpLXN0aXRjaGVyIGJ1aWxkIC0td2F0Y2ggInNwZWMvKiovKi57eWFtbCx5bWx9IiBvcGVuYXBpLnlhbWwKClNlcnZlIHRoZSBzcGVjaWZpY2F0aW9uIHVzaW5nIFtTd2FnZ2VyIFVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkuCgogICAgbnB4IG9wZW5hcGktc3RpdGNoZXIgc2VydmUgInNwZWMvKiovKi57eWFtbCx5bWx9IgoKU2VlIF9leGFtcGxlL3NwZWNfIGZvciBhbiBleGFtcGxlIG9mIGhvdyB0byBvcmdhbml6ZSB5b3VyIGZpbGVzIHRvIGJlc3Qgd29yawp3aXRoIHRoaXMgdG9vbC4K readmeEtag: '"21be57417b8b9fb00012f03b02cf339d6bdd5fc9"' readmeLastModified: Sun, 01 Mar 2020 04:39:23 GMT repositoryId: 243554283 description: Stitch together multiple files into an OpenAPI specification created: '2020-02-27T15:51:06Z' updated: '2021-05-04T17:31:02Z' language: JavaScript archived: false stars: 2 watchers: 3 forks: 0 owner: mloberg logo: https://avatars.githubusercontent.com/u/159041?v=4 license: MIT repoEtag: '"1f9b660e460af65c741f879d77994e2185f87aa1580164f688fc6d91911a93e1"' repoLastModified: Tue, 04 May 2021 17:31:02 GMT foundInMaster: true category: Parsers id: d4b90c5281eb4219a546566b9b124e43 - source: openapi3 tags repository: https://github.com/theogravity/apifire-server v3: true id: b8bff8d1642e3e61b6a9846c60f9ee00 repositoryMetadata: base64Readme: >- IyBnZW5lcmF0b3ItYXBpZmlyZS1zZXJ2ZXIgCgpbIVtOUE0gdmVyc2lvbl0oaHR0cDovL2ltZy5zaGllbGRzLmlvL25wbS92L2dlbmVyYXRvci1hcGlmaXJlLXNlcnZlci5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9nZW5lcmF0b3ItYXBpZmlyZS1zZXJ2ZXIpCiFbYnVpbHQgd2l0aCB0eXBlc2NyaXB0XShodHRwczovL2NhbW8uZ2l0aHVidXNlcmNvbnRlbnQuY29tLzkyZTlmN2IxMjA5YmFiOWUzZTljZDhjZGY2MmYwNzJhNjI0ZGE0NjEvNjg3NDc0NzA3MzNhMmYyZjY2NmM2MTc0MmU2MjYxNjQ2NzY1NmUyZTZlNjU3NDJmNjI2MTY0Njc2NTJmNDI3NTY5NmM3NDI1MzIzMDU3Njk3NDY4MmY1NDc5NzA2NTUzNjM3MjY5NzA3NDJmNjI2Yzc1NjUpIAoKCj4gR2VuZXJhdGVzIGFuIGV4cHJlc3MgQVBJIHNlcnZlciB3cml0dGVuIGluIFR5cGVzY3JpcHQgd2l0aCByb3V0ZXMvY29udHJvbGxlcnMvdmFsaWRhdGlvbi9tb2RlbC9taWdyYXRpb24gZ2VuZXJhdGlvbiBjYXBhYmlsaXRpZXMuIAo+IFVzZSBhbiBPcGVuQVBJIDMgeWFtbCBmaWxlIHRvIGdlbmVyYXRlIGNvbnRyb2xsZXJzIC8gcm91dGVycyAvIHZhbGlkYXRvcnMKPiBVc2UgYSB5YW1sIHRvIGdlbmVyYXRlIG9iamVjdGlvbi5qcyBtb2RlbHMgYW5kIGtuZXggbWlncmF0aW9ucwoKVXNlcyB0aGUgZm9sbG93aW5nIGxpYnJhcmllczoKCi0gW2Bjb25maWd1cml0eWBdKGh0dHBzOi8vZ2l0aHViLmNvbS90aGVvZ3Jhdml0eS9jb25maWd1cml0eSk6IEhhbmRsZXMgY29uZmlndXJhdGlvbgotIFtgb2JqZWN0aW9uLWdlbmVyYXRvcmBdKGh0dHBzOi8vZ2l0aHViLmNvbS90aGVvZ3Jhdml0eS9vYmplY3Rpb24tZ2VuZXJhdG9yKTogR2VuZXJhdGVzIFR5cGVzY3JpcHQgb2JqZWN0aW9uLmpzIG1vZGVscyBhbmQga25leCBtaWdyYXRpb25zCi0gW2BuZXctZXJyb3JgXShodHRwczovL2dpdGh1Yi5jb20vdGhlb2dyYXZpdHkvbmV3LWVycm9yKTogVXNlZCB0byBidWlsZCBhbiBlcnJvci1oYW5kbGluZyBpbmZyYXN0cnVjdHVyZQotIFtgYXBpZmlyZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS90aGVvZ3Jhdml0eS9hcGlmaXJlKTogR2VuZXJhdGVzIFR5cGVzY3JpcHQgY29udHJvbGxlcnMvcm91dGVycy92YWxpZGF0b3JzIGZyb20gYW4gT3BlbkFQSSAzIHNwZWMuCi0gW2BhanZgXShodHRwczovL2Fqdi5qcy5vcmcvKTogVmFsaWRhdGVzIEFQSSByZXF1ZXN0IHBhcmFtZXRlcnMgaW4gcm91dGVycwotIFtgbG9nbGF5ZXJgXShodHRwczovL2dpdGh1Yi5jb20vdGhlb2dyYXZpdHkvbG9nbGF5ZXIpOiBTdHJ1Y3R1cmVkIGxvZ2dpbmcKClNlZSB0aGUgW2BhcGlmaXJlYF0oaHR0cHM6Ly9naXRodWIuY29tL3RoZW9ncmF2aXR5L2FwaWZpcmUpIGZvciBub3RlcyBvbiBjdXJyZW50IGxpbWl0YXRpb25zIHdpdGggdXNpbmcgYW4gT3BlbkFQSSAzIHNwZWMuCgpUaGUgZ2VuZXJhdGVkIHByb2plY3QgY29tZXMgd2l0aCBhIHNhbXBsZSBPcGVuQVBJIGFuZCBgb2JqZWN0aW9uLWdlbmVyYXRvcmAgc3BlYyB0byBxdWlja2x5IGdldCBhIHdvcmtpbmcgc2VydmVyIHVwIGFuZCBydW5uaW5nLgoKIyMgSW5zdGFsbGF0aW9uCgpGaXJzdCwgaW5zdGFsbCBbWWVvbWFuXShodHRwOi8veWVvbWFuLmlvKSBhbmQgZ2VuZXJhdG9yLWFwaS1zZXJ2ZXIgdXNpbmcgW25wbV0oaHR0cHM6Ly93d3cubnBtanMuY29tLykgKHdlIGFzc3VtZSB5b3UgaGF2ZSBwcmUtaW5zdGFsbGVkIFtub2RlLmpzXShodHRwczovL25vZGVqcy5vcmcvKSkuCgpgYGBiYXNoCm5wbSBpbnN0YWxsIC1nIHlvCm5wbSBpbnN0YWxsIC1nIGdlbmVyYXRvci1hcGlmaXJlLXNlcnZlcgpgYGAKClRoZW4gZ2VuZXJhdGUgeW91ciBuZXcgcHJvamVjdDoKCmBgYGJhc2gKeW8gYXBpZmlyZS1zZXJ2ZXIKYGBgCgojIyBHZXR0aW5nIFRvIEtub3cgWWVvbWFuCgogKiBZZW9tYW4gaGFzIGEgaGVhcnQgb2YgZ29sZC4KICogWWVvbWFuIGlzIGEgcGVyc29uIHdpdGggZmVlbGluZ3MgYW5kIG9waW5pb25zLCBidXQgaXMgdmVyeSBlYXN5IHRvIHdvcmsgd2l0aC4KICogWWVvbWFuIGNhbiBiZSB0b28gb3BpbmlvbmF0ZWQgYXQgdGltZXMgYnV0IGlzIGVhc2lseSBjb252aW5jZWQgbm90IHRvIGJlLgogKiBGZWVsIGZyZWUgdG8gW2xlYXJuIG1vcmUgYWJvdXQgWWVvbWFuXShodHRwOi8veWVvbWFuLmlvLykuCgojIyBMaWNlbnNlCgpNSVQgwqkgW1RoZW8gR3Jhdml0eV0oaHR0cHM6Ly9naXRodWIuY29tL3RoZW9ncmF2aXR5KQoKCltucG0taW1hZ2VdOiBodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvZ2VuZXJhdG9yLXRzLW9wZW5hcGktc2VydmVyLnN2ZwpbbnBtLXVybF06IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvZ2VuZXJhdG9yLXRzLW9wZW5hcGktc2VydmVyClt0cmF2aXMtaW1hZ2VdOiBodHRwczovL3RyYXZpcy1jaS5jb20vdGhlb2dyYXZpdHkvZ2VuZXJhdG9yLXRzLW9wZW5hcGktc2VydmVyLnN2Zz9icmFuY2g9bWFzdGVyClt0cmF2aXMtdXJsXTogaHR0cHM6Ly90cmF2aXMtY2kuY29tL3RoZW9ncmF2aXR5L2dlbmVyYXRvci10cy1vcGVuYXBpLXNlcnZlcgpbZGF2aWRkbS1pbWFnZV06IGh0dHBzOi8vZGF2aWQtZG0ub3JnL3RoZW9ncmF2aXR5L2dlbmVyYXRvci10cy1vcGVuYXBpLXNlcnZlci5zdmc/dGhlbWU9c2hpZWxkcy5pbwpbZGF2aWRkbS11cmxdOiBodHRwczovL2RhdmlkLWRtLm9yZy90aGVvZ3Jhdml0eS9nZW5lcmF0b3ItdHMtb3BlbmFwaS1zZXJ2ZXIK readmeEtag: '"6dbbe9e38f8d94ce34746f157f5302e5fd4be83c"' readmeLastModified: Thu, 11 May 2023 00:21:15 GMT repositoryId: 264778841 description: >- Generates an express-based API server w/ database migrations and models and an error-handling / logging infrastructure written in Typescript created: '2020-05-17T23:51:29Z' updated: '2022-11-21T19:57:06Z' language: TypeScript archived: false stars: 2 watchers: 3 forks: 0 owner: theogravity logo: https://avatars.githubusercontent.com/u/855434?v=4 license: MIT repoEtag: '"2f986748f313b67cf237fd37cf73cf8c3f5fce64f13b37abc3eaabe18480c39d"' repoLastModified: Mon, 21 Nov 2022 19:57:06 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/luisramos08/cliente_api v3: true repositoryMetadata: base64Readme: >- CiMjIENsaWVudGUgQXBpCgpSRVNULUFQSSBkZXNhcnJvbGxhZGEgZW4gU3ByaW5nIEJvb3QuCgoKCiMjIFNlIHV0aWxpesOzOgoKLSBTcHJpbmcgQm9vdAotIE1hdmVuCi0gT3BlbkFwaSBVSSAtIFN3YWdnZXIKLSBIMiAoQ29tbyBnZXN0b3IgZGUgYmFzZSBkZSBkYXRvcyBlbiBtZW1vcmlhKQotIExvbWJvayAKCgojIyBQcnVlYmFzCgpZYSBxdWUgc2UgaW5jbHV5w7MgdW5hIGludGVyZmF6IGRlIHBydWViYSBxdWUgc2UgYWdyZWdhIGRlc2RlIFN3YWdnZXIuClVuYSB2ZXogZWwgcHJveWVjdG8gZXN0ZSBjb3JyaWVuZG8gc2UgcHVlZGUgdXRpbGl6YXIgZWwgc2lndWllbnRlIGxpbmsgcGFyYSBoYWNlciBsYXMgcHJ1ZWJhcyBkZSBsdWdhcjoKCi0gaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkvaW5kZXguaHRtbAo= readmeEtag: '"027a507b56dcc5133a6fff6e4234d95ccb1a61db"' readmeLastModified: Sat, 28 May 2022 01:49:11 GMT repositoryId: 484739334 description: API RESTFul en Java Spring Boot created: '2022-04-23T12:20:05Z' updated: '2023-01-17T13:10:58Z' language: Java archived: false stars: 2 watchers: 1 forks: 1 owner: LuisRamos08 logo: https://avatars.githubusercontent.com/u/35547126?v=4 repoEtag: '"73b5f3387a5dbab68540bb3586158061ee95241c3f909b675116ba23c02173df"' repoLastModified: Tue, 17 Jan 2023 13:10:58 GMT foundInMaster: true category: - Editors - SDK id: c88018c0c052f8e5547d375b8b058fb4 - source: openapi3 tags repository: https://github.com/dota-showcase/inventory-service v3: true id: 110eab7ad814a12856226121e167c630 repositoryMetadata: base64Readme: >- IyBEb3RhIFNob3djYXNlIC0gSW52ZW50b3J5IFNlcnZpY2UKClJFU1QgQVBJIHNlcnZpY2UgdG8gc3RvcmUgYW5kIHRyYWNrIGNoYW5nZXMgb2Ygc3RlYW0gdXNlcidzIGRvdGEgMiBpbnZlbnRvcnkgaXRlbXMuCgojIyBGZWF0dXJlcwoKKiBJbnZlbnRvcnkgaGlzdG9yeSAtIGNyZWF0ZWQsIHVwZGF0ZWQsIGRlbGV0ZWQgaXRlbXMKKiBSYXRlIGxpbWl0ZXIKKiBVbml0IHRlc3RzCgojIyBBUEkgRG9jcwoKU3dhZ2dlciBPcGVuQVBJIDMgaXMgYXZhaWxhYmxlIGJ5IHBhdGg6CgoqIFVJOiAgIGBob3N0OnBvcnQvc3dhZ2dlci11aS5odG1sYAoqIEpTT046IGBob3N0OnBvcnQvYXBpLWRvY3NgCgojIyMgSW52ZW50b3J5IEVuZHBvaW50cwoKKiBTaG93IEludmVudG9yaWVzOiBgR0VUIC9hcGkvdjEvaW52ZW50b3JpZXMvYAoqIENyZWF0ZSBhbiBJbnZlbnRvcnkgKGxvYWQgaXRlbXMgZnJvbSBzdGVhbSk6IGBQT1NUIC9hcGkvdjEvaW52ZW50b3JpZXMvOnN0ZWFtaWQvYAoqIFNob3cgYW4gSW52ZW50b3J5OiBgR0VUIC9hcGkvdjEvaW52ZW50b3JpZXMvOnN0ZWFtaWQvYAoqIFVwZGF0ZSBhbiBJbnZlbnRvcnkgKHJlbG9hZCBpdGVtcyBmcm9tIHN0ZWFtKTogYFBVVCAvYXBpL3YxL2ludmVudG9yaWVzLzpzdGVhbWlkL2AKKiBEZWxldGUgYW4gSW52ZW50b3J5OiBgREVMRVRFIC9hcGkvdjEvaW52ZW50b3JpZXMvOnN0ZWFtaWQvYAoKIyMjIEludmVudG9yeSBJdGVtcyBFbmRwb2ludHMKCiogU2hvdyBJbnZlbnRvcnkgSXRlbXM6IGBHRVQgL2FwaS92MS9pbnZlbnRvcmllcy86c3RlYW1pZC9pdGVtcy9gCiogU2hvdyBJbnZlbnRvcnkgSXRlbXMgKHBhZ2luYXRpb24pOiBgR0VUIC9hcGkvdjEvaW52ZW50b3JpZXMvOnN0ZWFtaWQvaXRlbXMvcGFnZS9gCiogU2hvdyBJbnZlbnRvcnkgSXRlbXMgY2hhbmdlczogYEdFVCAvYXBpL3YxL2ludmVudG9yaWVzLzpzdGVhbWlkL2NoYW5nZXMvYAoqIFNob3cgSW52ZW50b3J5IEl0ZW1zIGNoYW5nZXMgKGZvciBhIHZlcnNpb24pOiBgR0VUIC9hcGkvdjEvaW52ZW50b3JpZXMvOnN0ZWFtaWQvY2hhbmdlcy86dmVyc2lvbi9gCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyBQcmVyZXF1aXNpdGVzCgoqIEphdmEgMTcKKiBBcGFjaGUgTWF2ZW4KKiBNb25nb0RCIDUuMAoKIyMjIEluc3RhbGxhdGlvbgoKMS4gQ3JlYXRlIGAuZW52YCBiYXNlZCBvbiBgLmVudi5leGFtcGxlYAoyLiBDcmVhdGUgYGVudmlyb25tZW50LnByb3BlcnRpZXNgIGJhc2VkIG9uIGBlbnZpcm9ubWVudC5wcm9wZXJ0aWVzLmV4YW1wbGVgIGluIGBhcHAvc3JjL21haW4vcmVzb3VyY2VzYAozLiBTZXQgdGhlIHN0ZWFtIGFwaSBrZXkgcHJvcGVydHkgdG8gYWNjZXNzIFN0ZWFtJ3MgQVBJOgogICAgYGBgYmFzaAogICAgZW52LnN0ZWFtLmFwaS5rZXk9eW91cl9hcGlfa2V5CiAgICBgYGAKNC4gVG8gcnVuIGluIGRldmVsb3BtZW50IGVudmlyb25tZW50LiAKICAgWW91IGNhbiB1c2UgYSBkZWZhdWx0IGJ1aWxkIGZvciBJbnRlbGxpSiBJREVBIHRvIHJ1biB0aGUgYXBwIC0gYC5ydW4vZGV2LWJ1aWxkLnJ1bi54bWxgLgogICAgYGBgYmFzaAogICAgZG9ja2VyLWNvbXBvc2UgdXAKICAgIGBgYAo1LiBUbyBydW4gaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudAogICAgYGBgYmFzaAogICAgZG9ja2VyIGNvbXBvc2UgLWYgZG9ja2VyLWNvbXBvc2UucHJvZC55bWwgdXAgLWQKICAgIGBgYAoKIyMgRGF0YSBNb2RlbAoKQ29uY2VwdHVhbCBlbnRpdHkgcmVsYXRpb24gZGlhZ3JhbSAoQmFya2VyJ3Mgc3lzdGVtKToKCiFbXShlbnRpdHktcmVsYXRpb24tZGlhZ3JhbS5wbmcpCgojIyBCYWNrLW9mLXRoZS1lbnZlbG9wZSBFc3RpbWF0aW9ucwoKIyMjICBTdG9yYWdlIFNwYWNlCgpBc3N1bXB0aW9uczoKCiogQXZlcmFnZSBpbnZlbnRvcnkgaXRlbSBzaXplIC0gNTAwIGJ5dGVzLgoqIEF2ZXJhZ2UgdXNlciBoYXMgNzAwMCBpbnZlbnRvcnkgaXRlbXMuCiogVXNlcnMgdXBkYXRlIGludmVudG9yeSBvbmNlIHBlciBkYXkuIEVhY2ggZGF5IGl0IGluY3JlYXNlZCBieSBzb21lIHNtYWxsIGNvZWZmaWNpZW50ICgwLjA1KS4KKiBEYXRhIGlzIHN0b3JlZCBmb3IgYSB5ZWFyLgoKRXN0aW1hdGU6CgoqIFVzZXIgaW52ZW50b3J5IHNpemU6IDUwMCAqIDcwMDAgPSAzLjUgTUIKKiBVc2VyIGludmVudG9yeSBzaXplIGZvciBhIHllYXI6IDMuNSBNQiArICgzNjUgKiAwLjA1ICogMy41KSA9IH43MCBNQgoqICoqU3RvcmFnZSBmb3IgMTAwSyB1c2VyczogNzBNQiAqIDEwMDAwMDAgPSA3IEdCKioKCiMjIFJlc291cmNlcwoKLSBbU3RlYW0gQVBJIC0gR2V0UGxheWVySXRlbXNdKGh0dHBzOi8vd2lraS50ZWFtZm9ydHJlc3MuY29tL3dpa2kvV2ViQVBJL0dldFBsYXllckl0ZW1zKQoKIyMgTGljZW5zZQoKVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjAuIFBsZWFzZSBzZWUgW0xpY2Vuc2UgRmlsZV0oTElDRU5TRSkgZm9yIG1vcmUgaW5mb3JtYXRpb24u readmeEtag: '"8c6581e448b017bfc53dd392fde68f24016106f8"' readmeLastModified: Fri, 03 Mar 2023 02:24:57 GMT repositoryId: 506423971 description: REST service to store and track changes of Dota 2 inventory items. created: '2022-06-22T22:29:20Z' updated: '2024-05-27T21:05:25Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: dota-showcase logo: https://avatars.githubusercontent.com/u/104716440?v=4 license: GPL-3.0 repoEtag: '"293b1b4b702445889a3450a3c720c58c4dd9972243a0beaae9867a269af88178"' repoLastModified: Mon, 27 May 2024 21:05:25 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/ditschedev/swag-ts v3: true id: cf0757432d430e75140f2b0cf4396f07 repositoryMetadata: base64Readme: >- IyBzd2FnLXRzCgpbIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL2RpdHNjaGVkZXYvc3dhZy10cy90ZXN0LnltbD9icmFuY2g9bWFpbiZsb25nQ2FjaGU9dHJ1ZSZsYWJlbD1UZXN0JmxvZ289Z2l0aHViJTIwYWN0aW9ucyZsb2dvQ29sb3I9ZmZmKV0oaHR0cHM6Ly9naXRodWIuY29tL2RpdHNjaGVkZXYvc3dhZy10cy9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBVGVzdCkKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2RpdHNjaGVkZXYvc3dhZy10cyldKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9kaXRzY2hlZGV2L3N3YWctdHMpCgpTaW1wbHkgcHJvdmlkZSBhIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBhbmQgc3dhZy10cyB3aWxsIGdlbmVyYXRlIHR5cGVzY3JpcHQgdHlwZXMgZm9yIHlvdS4gWW91IGNhbiBwcm92aWRlIGpzb24gb3IgeWFtbCBkZWZpbml0aW9ucyBvbiB5b3VyIGxvY2FsIGZpbGVzeXN0ZW0gb3IgYSByZW1vdGUgdXJsLgoKIyMgTW90aXZhdGlvbgpXaHkgYW5vdGhlciB0eXBlIGdlbmVyYXRvciBmb3IgT3BlbkFQSSAoU3dhZ2dlcik/IFdlbGwgaXQncyBiZWNhdXNlIEkgY291bGQgbm90IGZpbmQgYSBnZW5lcmF0b3IgdGhhdCBvbmx5IGdlbmVyYXRlcyB0eXBlc2NyaXB0IHR5cGVzLiAKTW9zdCBnZW5lcmF0b3JzIGFsc28gZ2VuZXJhdGUgcnVudGltZSBjb2RlIHdoaWNoIEkgZG9uJ3QgbmVjZXNzYXJpbHkgbmVlZC4gSSBqdXN0IHdhbnQgdG8gaGF2ZSB0aGUgdHlwZXNjcmlwdCB0eXBlcyB0byB1c2UgdGhlbSBpbiBteSBmcm9udGVuZCBhcHBsaWNhdGlvbi4KCklmIHRoYXRzIHNvbWV0aGluZyBmb3IgeW91LCBmZWVsIGZyZWUgdG8gdXNlIGl0LiBJZiB5b3UgbmVlZCBtb3JlIGZ1bmN0aW9uYWxpdHksIGZlZWwgZnJlZSB0byBvcGVuIGFuIGlzc3VlIG9yIGEgcHVsbCByZXF1ZXN0LgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdvIGluc3RhbGwgZ2l0aHViLmNvbS9kaXRzY2hlZGV2L3N3YWctdHNAbGF0ZXN0CmBgYAoKIyMgVXNhZ2UKCmBgYGJhc2gKVXNhZ2U6CiAgc3dhZy10cyBbZmxhZ3NdCgpGbGFnczoKICAtZiwgLS1maWxlIHN0cmluZyAgICAgZmlsZSBwYXRoIG9yIHVybCB0byB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uCiAgLWgsIC0taGVscCAgICAgICAgICAgIGhlbHAgZm9yIHN3YWctdHMKICAtbywgLS1vdXRwdXQgc3RyaW5nICAgb3V0cHV0IGZpbGUgZm9yIGdlbmVyYXRlZCBkZWZpbml0aW9ucyAoZGVmYXVsdCAiLi90eXBlcy9zd2FnZ2VyLnRzIikKICAtdiwgLS12ZXJzaW9uICAgICAgICAgc2hvd3MgdGhlIHZlcnNpb24gb2YgdGhlIGNsaQpgYGAKCiMjIEZvcm1hdApUaGlzIGxpYnJhcnkgYWltcyB0byBvbmx5IHByb3ZpZGUgdHlwZXNjcmlwdCB0eXBlIGRlZmluaXRpb25zIGZyb20gYSBnaXZlbiBPcGVuQVBJIFNwZWNpZmljYXRpb24uIEl0IGRvZXMgbm90IHByb3ZpZGUgYW55IHJ1bnRpbWUgZnVuY3Rpb25hbGl0eS4KQWxsIHR5cGVzIGFyZSBleHBvcnRlZCBhcyBgaW50ZXJmYWNlYC4KCkZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIFNjaGVtYToKYGBgeWFtbApMb2dpblJlc3BvbnNlOgogIHJlcXVpcmVkOgogICAgLSB0b2tlbgogIHR5cGU6IG9iamVjdAogIHByb3BlcnRpZXM6CiAgICB0b2tlbjoKICAgICAgbWluTGVuZ3RoOiAxCiAgICAgIHR5cGU6IHN0cmluZwogIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQoKTG9naW5SZXNwb25zZVdyYXBwZXI6CiAgcmVxdWlyZWQ6CiAgICAtIGRhdGEKICB0eXBlOiBvYmplY3QKICBwcm9wZXJ0aWVzOgogICAgZGF0YToKICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0xvZ2luUmVzcG9uc2UnCiAgICBtZXNzYWdlOgogICAgICB0eXBlOiBzdHJpbmcKICAgICAgbnVsbGFibGU6IHRydWUKICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKYGBgCgp3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgZm9sbG93aW5nIHR5cGVzY3JpcHQgZGVmaW5pdGlvbnM6CmBgYHR5cGVzY3JpcHQKZXhwb3J0IGludGVyZmFjZSBMb2dpblJlc3BvbnNlIHsKICB0b2tlbjogc3RyaW5nOwp9CgpleHBvcnQgaW50ZXJmYWNlIExvZ2luUmVzcG9uc2VXcmFwcGVyIHsKICBkYXRhOiBMb2dpblJlc3BvbnNlOwogIG1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsOwp9CmBgYAoKIyMjIEVudW1zCkVudW1zIGFyZSBjb252ZXJ0ZWQgdG8gdHlwZXNjcmlwdCBlbnVtcy4gU2VlIHRoZSBleGFtcGxlIGJlbG93OgpgYGB5YW1sCkNhcjoKICByZXF1aXJlZDoKICAgIC0gbWFudWZhY3R1cmVyCiAgdHlwZTogb2JqZWN0CiAgcHJvcGVydGllczoKICAgIG1hbnVmYWN0dXJlcjoKICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL0Nhck1hbnVmYWN0dXJlciIKQ2FyTWFudWZhY3R1cmVyOgogIHR5cGU6IHN0cmluZwogIGVudW06CiAgICAtIEJNVwogICAgLSBNZXJjZWRlcwogICAgLSBBdWRpICAKYGBgCgp3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgZm9sbG93aW5nIHR5cGVzY3JpcHQgZGVmaW5pdGlvbnM6CmBgYHR5cGVzY3JpcHQKZXhwb3J0IGludGVyZmFjZSBDYXIgewogICAgbWFudWZhY3R1cmVyOiBDYXJNYW51ZmFjdHVyZXI7Cn0KCmV4cG9ydCBlbnVtIENhck1hbnVmYWN0dXJlciB7CiAgICBCTVcgPSAiQk1XIiwKICAgIE1lcmNlZGVzID0gIk1lcmNlZGVzIiwKICAgIEF1ZGkgPSAiQXVkaSIsCn0KYGBgCgojIyMgRm9ybURhdGEgUmVxdWVzdHMKSWYgeW91IGhhdmUgYSByZXF1ZXN0IHdpdGggYG11bHRpcGFydC9mb3JtLWRhdGFgIGNvbnRlbnQgdHlwZSB0aGUgY2xpIHdpbGwgZ2VuZXJhdGUgYSB0eXBlIGRlZmluaXRpb24gYXMgd2VsbC4KQXMgZm9yIG1vc3QgT3BlbkFQSSBTcGVjcyB0aGUgc2NoZW1hIG9mIHRoZSBmb3JtIGRhdGEgd2lsbCBub3QgYmUgYWRkZWQgdG8gdGhlIGBzY2hlbWFzYCBzZWN0aW9uIG9mIHRoZSBkZWZpbml0aW9uIGl0c2VsZiwgcmF0aGVyIHRoYW4gaW4gdGhlIGByZXF1ZXN0Qm9keWAgc2VjdGlvbiBvZiB0aGUgYHBhdGhgLgoKVGhlIGdlbmVyYXRlZCB0eXBlIHdpbGwgYmUgbmFtZWQgYWZ0ZXIgdGhlIG9wZXJhdGlvbiBpZCB3aXRoIGEgc3VmZml4IG9mIGBGb3JtRGF0YWAuIEZvciBjb252ZXJ0aW5nIHRoaXMgdHlwZSB0byBhIGBGb3JtRGF0YWAgb2JqZWN0IHlvdSBjYW4gdXNlIHRoZSBgY29udmVydFRvRm9ybURhdGFgIGZ1bmN0aW9uIGZyb20gdGhlIGdlbmVyYXRlZCBmaWxlLgo= readmeEtag: '"76497e8daa67d5a2f73d24df7c9466c049e6f09f"' readmeLastModified: Wed, 13 Dec 2023 15:31:12 GMT repositoryId: 641864655 description: >- swag-ts is a simple and fast code generator written in Go that creates typescript interfaces and enums for your openapi specification. created: '2023-05-17T10:22:08Z' updated: '2023-10-05T11:09:54Z' language: Go archived: false stars: 2 watchers: 1 forks: 0 owner: ditschedev logo: https://avatars.githubusercontent.com/u/13885333?v=4 license: MIT repoEtag: '"54cf3ac224e1599448981aacc2590d0e45f9be411e72ab7b42db20f07487ffbd"' repoLastModified: Thu, 05 Oct 2023 11:09:54 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/cangokceaslan/express-swagger-producer v3: true repositoryMetadata: base64Readme: >- IyBFeHByZXNzIFN3YWdnZXIgUHJvZHVjZXI6CgpUaGlzIG1vZHVsZSBoYXMgc2FtZSBsb2dpYyB3aXRoIFtleHByZXNzLXN3YWdnZXItZ2VuZXJhdG9yXShodHRwczovL25wbWpzLmNvbS9wYWNrYWdlL2V4cHJlc3Mtc3dhZ2dlci1nZW5lcmF0b3IpIGxpYnJhcnkgd2hpY2ggY3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBUUyAoVHlwZVNjcmlwdCkgZW52aXJvbm1lbnQgb3IgZ2V0dGluZyB1cGRhdGVzLiBUaGlzIG1vZHVsZSBpcyB3cml0dGVuIHdpdGggVFMgKFR5cGVTY3JpcHQpIGFuZCBzdXBwb3J0cyBUUyAoVHlwZVNjcmlwdCkgZW52aXJvbm1lbnQuIAoKSW4gYWRkaXRpb24gdG8gVHlwZVNjcmlwdCBlbnZpcm9ubWVudCBzdXBwb3J0LCB0aGlzIG1vZHVsZSBoYXMgb25lIG1vcmUgZmVhdHVyZSB0aGFuIGV4cHJlc3Mtc3dhZ2dlci1nZW5lcmF0b3IuIFlvdSBjYW4gdXNlIHN3YWdnZXIgJiBvcGVuYXBpIHZlcnNpb24ga2V5cyB3aXRoIG9wdGlvbnMgYXMgZG93biBiZWxvdy4KCllvdSBjYW4gdmlzaXQgW2Nhbmdva2NlYXNsYW4uY29tXShodHRwczovL3d3dy5jYW5nb2tjZWFzbGFuLmNvbSkgZm9yIG1vcmUgZGV0YWlscwoKPGEgaHJlZj0iaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jYW5nb2tjZWFzbGFuIj48aW1nIHNyYz0iaHR0cHM6Ly9jZG4uYnV5bWVhY29mZmVlLmNvbS9idXR0b25zL3YyL2RlZmF1bHQteWVsbG93LnBuZyIgd2lkdGg9IjIwMCIgLz48L2E+CgojIyMjIEluc3RhbGxhdGlvbgoKYGBgCm5wbSBpIGV4cHJlc3Mtc3dhZ2dlci1wcm9kdWNlcgpgYGAKCiMjIyMgVXNhZ2UKCmBgYGphdmFzY3JpcHQKY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTsKY29uc3QgYXBwID0gZXhwcmVzcygpOwpjb25zdCBFeHByZXNzU3dhZ2dlckZuID0gcmVxdWlyZSgnZXhwcmVzcy1zd2FnZ2VyLXByb2R1Y2VyJyk7CgpsZXQgb3B0aW9ucyA9IHsKICAgIHN3YWdnZXJEZWZpbml0aW9uOiB7CiAgICAgICAgaW5mbzogewogICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgYSBzZXJ2ZXIgd2l0aCBlbmFibGVkIFN3YWdnZXIgZG9jdW1lbnRhdGlvbiBmZWF0dXJlJywKICAgICAgICAgICAgdGl0bGU6ICdTaW1wbGUgU2VydmVyJywKICAgICAgICAgICAgdmVyc2lvbjogJzEuMC4wJywKICAgICAgICB9LAogICAgICAgIGhvc3Q6ICdsb2NhbGhvc3Q6MzAwMCcsCiAgICAgICAgc3dhZ2dlcjonMi4wJywgLy8gIG9yIG9wZW5hcGk6JzMuMC4wJwogICAgICAgIGJhc2VQYXRoOiAnL3YxJywKICAgICAgICBwcm9kdWNlczogWwogICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgICJhcHBsaWNhdGlvbi94bWwiCiAgICAgICAgXSwKICAgICAgICBzY2hlbWVzOiBbJ2h0dHAnLCAnaHR0cHMnXSwKCQlzZWN1cml0eURlZmluaXRpb25zOiB7CiAgICAgICAgICAgIEpXVDogewogICAgICAgICAgICAgICAgdHlwZTogJ2FwaUtleScsCiAgICAgICAgICAgICAgICBpbjogJ2hlYWRlcicsCiAgICAgICAgICAgICAgICBuYW1lOiAnQXV0aG9yaXphdGlvbicsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkJhc2ljIGFwaUtleSBhdXRob3JpemF0aW9uIGluIHRoZSBzeXN0ZW0iLAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSwKICAgIGJhc2VkaXI6IF9fZGlybmFtZSwgLy9hcHAgYWJzb2x1dGUgcGF0aAogICAgZmlsZXM6IFsnLi9yb3V0ZXMvKiovKi5qcyddIC8vUGF0aCB0byB0aGUgQVBJIGhhbmRsZSBmb2xkZXIKfTsKCmNvbnN0IEV4cHJlc3NTd2FnZ2VyID0gRXhwcmVzc1N3YWdnZXJGbihhcHApOyAvLyBQbGVhc2UgYWRkIHRoaXMgbGluZSB3aGVyZSB5b3VyIHJvdXRlcyBsYXllciBzdGFydHMKRXhwcmVzc1N3YWdnZXIob3B0aW9ucyk7IC8vIEVuYWJsZSB0aGlzIGlmIHlvdSB3YW50IHRvIGdlbmVyYXRlIFN3YWdnZXIgZG9jdW1lbnQKYXBwLmxpc3RlbigzMDAwKTsKYGBgCgpPcGVuIGh0dHAocyk6Ly88YXBwX2hvc3Q+OjxhcHBfcG9ydD4vYXBpLWRvY3MgaW4geW91ciBicm93c2VyIHRvIHZpZXcgdGhlIGRvY3VtZW50YXRpb24uCllvdSBjYW4gZmluZCB0aGUgc3dhZ2dlci5qc29uIGF0IGh0dHAocyk6Ly88YXBwX2hvc3Q+OjxhcHBfcG9ydD4vYXBpLWRvY3MuanNvbgoKIyMjIyBIb3cgdG8gZG9jdW1lbnQgdGhlIEFQSQoKYGBgamF2YXNjcmlwdAovKioKICogVGhpcyBmdW5jdGlvbiBjb21tZW50IGlzIHBhcnNlZCBieSBkb2N0cmluZQogKiBAcm91dGUgR0VUIC9hcGkKICogQGdyb3VwIGZvbyAtIE9wZXJhdGlvbnMgYWJvdXQgdXNlcgogKiBAcGFyYW0ge3N0cmluZ30gZW1haWwucXVlcnkucmVxdWlyZWQgLSB1c2VybmFtZSBvciBlbWFpbCAtIGVnOiB1c2VyQGRvbWFpbgogKiBAcGFyYW0ge3N0cmluZ30gcGFzc3dvcmQucXVlcnkucmVxdWlyZWQgLSB1c2VyJ3MgcGFzc3dvcmQuCiAqIEByZXR1cm5zIHtvYmplY3R9IDIwMCAtIEFuIGFycmF5IG9mIHVzZXIgaW5mbwogKiBAcmV0dXJucyB7RXJyb3J9ICBkZWZhdWx0IC0gVW5leHBlY3RlZCBlcnJvcgogKi8KZXhwb3J0cy5mb28gPSBmdW5jdGlvbigpIHt9CmBgYAoKRm9yIG1vZGVsIGRlZmluaXRpb25zOgoKYGBgamF2YXNjcmlwdAovKioKICogQHR5cGVkZWYgUHJvZHVjdAogKiBAcHJvcGVydHkge2ludGVnZXJ9IGlkCiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lLnJlcXVpcmVkIC0gU29tZSBkZXNjcmlwdGlvbiBmb3IgcHJvZHVjdAogKiBAcHJvcGVydHkge0FycmF5LjxQb2ludD59IFBvaW50CiAqLwoKLyoqCiAqIEB0eXBlZGVmIFBvaW50CiAqIEBwcm9wZXJ0eSB7aW50ZWdlcn0geC5yZXF1aXJlZAogKiBAcHJvcGVydHkge2ludGVnZXJ9IHkucmVxdWlyZWQgLSBTb21lIGRlc2NyaXB0aW9uIGZvciBwb2ludCAtIGVnOiAxMjM0CiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjb2xvcgogKiBAcHJvcGVydHkge2VudW19IHN0YXR1cyAtIFN0YXR1cyB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGZpbHRlciAtIGVnOiBhdmFpbGFibGUscGVuZGluZwogKi8KCi8qKgogKiBAdHlwZWRlZiBFcnJvcgogKiBAcHJvcGVydHkge3N0cmluZ30gY29kZS5yZXF1aXJlZAogKi8KCi8qKgogKiBAdHlwZWRlZiBSZXNwb25zZQogKiBAcHJvcGVydHkge1tpbnRlZ2VyXX0gY29kZQogKi8KCgovKioKICogVGhpcyBmdW5jdGlvbiBjb21tZW50IGlzIHBhcnNlZCBieSBkb2N0cmluZQogKiBUZXN0IFJvdXRlCiAqIEByb3V0ZSBQT1NUIC91c2VycwogKiBAcGFyYW0ge1BvaW50Lm1vZGVsfSBwb2ludC5ib2R5LnJlcXVpcmVkIC0gdGhlIG5ldyBwb2ludAogKiBAZ3JvdXAgZm9vIC0gT3BlcmF0aW9ucyBhYm91dCB1c2VyCiAqIEBwYXJhbSB7c3RyaW5nfSBlbWFpbC5xdWVyeS5yZXF1aXJlZCAtIHVzZXJuYW1lIG9yIGVtYWlsCiAqIEBwYXJhbSB7c3RyaW5nfSBwYXNzd29yZC5xdWVyeS5yZXF1aXJlZCAtIHVzZXIncyBwYXNzd29yZC4KICogQHBhcmFtIHtlbnVtfSBzdGF0dXMucXVlcnkucmVxdWlyZWQgLSBTdGF0dXMgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSBjb25zaWRlcmVkIGZvciBmaWx0ZXIgLSBlZzogYXZhaWxhYmxlLHBlbmRpbmcKICogQG9wZXJhdGlvbklkIHJldHJpZXZlRm9vSW5mbwogKiBAcHJvZHVjZXMgYXBwbGljYXRpb24vanNvbiBhcHBsaWNhdGlvbi94bWwKICogQGNvbnN1bWVzIGFwcGxpY2F0aW9uL2pzb24gYXBwbGljYXRpb24veG1sCiAqIEByZXR1cm5zIHtSZXNwb25zZS5tb2RlbH0gMjAwIC0gQW4gYXJyYXkgb2YgdXNlciBpbmZvCiAqIEByZXR1cm5zIHtQcm9kdWN0Lm1vZGVsfSAgZGVmYXVsdCAtIFVuZXhwZWN0ZWQgZXJyb3IKICogQHJldHVybnMge0FycmF5LjxQb2ludD59IFBvaW50IC0gU29tZSBkZXNjcmlwdGlvbiBmb3IgcG9pbnQKICogQGhlYWRlcnMge2ludGVnZXJ9IDIwMC5YLVJhdGUtTGltaXQgLSBjYWxscyBwZXIgaG91ciBhbGxvd2VkIGJ5IHRoZSB1c2VyCiAqIEBoZWFkZXJzIHtzdHJpbmd9IDIwMC5YLUV4cGlyZXMtQWZ0ZXIgLSAJZGF0ZSBpbiBVVEMgd2hlbiB0b2tlbiBleHBpcmVzCiAqIEBzZWN1cml0eSBKV1QKICovCmBgYA== readmeEtag: '"81d793407c3bec6616b4d37a050358a63ec92cc4"' readmeLastModified: Tue, 03 May 2022 19:43:39 GMT repositoryId: 470741285 description: "This repository contains the source codes from npm package: express-swagger-producer |\_express-swagger-producer is TypeScript module that supports generating Swagger Api Documentation File with comments" created: '2022-03-16T20:27:05Z' updated: '2023-12-23T14:51:49Z' language: TypeScript archived: false stars: 2 watchers: 2 forks: 0 owner: cangokceaslan logo: https://avatars.githubusercontent.com/u/48398625?v=4 license: MIT repoEtag: '"6ad1c0928d30ec857a29cc31eaa1d3aa4be9489b75e097ed3ba3cf23314d9d45"' repoLastModified: Sat, 23 Dec 2023 14:51:49 GMT foundInMaster: true category: Parsers id: 0461674804ad63872c0efb2049669dbc - source: openapi3 tags repository: https://github.com/ruiaraujo012/openapi-express-codegen v3: true id: b7d1a7754796abe41f1cb0a854b3b89d repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEV4cHJlc3MgQ29kZWdlbgoKPiBOb2RlLmpzIGxpYnJhcnkgdGhhdCBnZW5lcmF0ZXMgZXhwcmVzcyBUeXBlc2NyaXB0IHR5cGVzIGJhc2VkIG9uIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uCgojIyBJbnN0YWxsCgpgYGAKbnBtIGluc3RhbGwgb3BlbmFwaS1leHByZXNzLWNvZGVnZW4gLS1zYXZlLWRldgpgYGAKCiMjIFVzYWdlCgpgYGAKJCBleHByZXNzLWdlbiAtLWhlbHAKCiAgVXNhZ2U6IGV4cHJlc3MtZ2VuIFtvcHRpb25zXQoKICBPcHRpb25zOgogICAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICBvdXRwdXQgdGhlIHZlcnNpb24gbnVtYmVyCiAgICAtaSwgLS1pbnB1dCA8dmFsdWU+ICAgICAgIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiwgY2FuIGJlIGEgcGF0aCwgdXJsIG9yIHN0cmluZyBjb250ZW50IChyZXF1aXJlZCkKICAgIC1vLCAtLW91dHB1dCA8dmFsdWU+ICAgICAgT3V0cHV0IGRpcmVjdG9yeSAocmVxdWlyZWQpCiAgICAtLXVzZVVuaW9uVHlwZXMgICAgICAgICAgIFVzZSB1bmlvbiB0eXBlcyBpbnN0ZWFkIG9mIGVudW1zCiAgICAtLWV4cG9ydEludGVyZmFjZXMgPHZhbHVlPiAgV3JpdGUgaW50ZXJmYWNlcyB0byBkaXNrIChkZWZhdWx0OiB0cnVlKQogICAgLS1leHBvcnRNb2RlbHMgPHZhbHVlPiAgICBXcml0ZSBtb2RlbHMgdG8gZGlzayAoZGVmYXVsdDogdHJ1ZSkKICAgIC0tZXhwb3J0U2NoZW1hcyA8dmFsdWU+ICAgV3JpdGUgc2NoZW1hcyB0byBkaXNrIChkZWZhdWx0OiBmYWxzZSkKICAgIC0taW5kZW50IDx2YWx1ZT4gICAgICAgICAgSW5kZW50YXRpb24gb3B0aW9ucyBbNCwgMiwgdGFiXSAoZGVmYXVsdDogIjQiKQogICAgLS1wb3N0Zml4IDx2YWx1ZT4gICAgICAgICBJbnRlcmZhY2UgbmFtZSBwb3N0Zml4IChkZWZhdWx0OiAiR2VuZXJhdGVkIikKICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwIGZvciBjb21tYW5kCgogIEV4YW1wbGVzCiAgICAkIGV4cHJlc3MtZ2VuIC0taW5wdXQgLi9zcGVjLmpzb24gLS1vdXRwdXQgLi9nZW5lcmF0ZWQKYGBgCgojIERvY3VtZW50YXRpb24KCi0gW0Jhc2ljIHVzYWdlXShkb2NzL2Jhc2ljLXVzYWdlLm1kKQoKIyBSZWZlcmVuY2VzCgpUaGlzIHByb2plY3QgaXMgYmFzZWQgb246IFtvcGVuYXBpLXR5cGVzY3JpcHQtY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL2ZlcmRpa29vbWVuL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlZ2VuKQo= readmeEtag: '"f56fe896c3fb60d4ecad1c14aa9c08a6e9504ded"' readmeLastModified: Sat, 25 Mar 2023 23:51:09 GMT repositoryId: 500802549 description: >- Library that generates express Typescript types based on the OpenAPI specification. created: '2022-06-07T10:59:22Z' updated: '2024-01-26T11:08:36Z' language: TypeScript archived: true stars: 2 watchers: 2 forks: 0 owner: ruiaraujo012 logo: https://avatars.githubusercontent.com/u/16304685?v=4 license: MIT repoEtag: '"6609b9b002adaab03ab12c7ccf7ff4954d0a7f619478b002babb741861a85579"' repoLastModified: Fri, 26 Jan 2024 11:08:36 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/gbarre/capsule-api v3: true repositoryMetadata: base64Readme: >- IyBDYXBzdWxlLUFQSSBEb2N1bWVudGF0aW9uCgohW3B5dGhvbiB2ZXJzaW9uc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9QeXRob24tMy42JTIwJTdDJTIwMy43JTIwJTdDJTIwMy44LWJsdWUuc3ZnKQoKfCBDSSB8IFBpcGVsaW5lIC8gYnVpbGQgfCBDb3ZlcmFnZSB8CnwtLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfAp8IEdpdGxhYiAoaW50ZXJuYWwpIHwgWyFbcGlwZWxpbmUgc3RhdHVzXShodHRwczovL2dpdC5pbi5hYy12ZXJzYWlsbGVzLmZyL2NhcHN1bGUvY2Fwc2FwaS9iYWRnZXMvbWFzdGVyL3BpcGVsaW5lLnN2ZyldKGh0dHBzOi8vZ2l0LmluLmFjLXZlcnNhaWxsZXMuZnIvY2Fwc3VsZS9jYXBzYXBpL2NvbW1pdHMvbWFzdGVyKSB8IFshW2NvdmVyYWdlIHJlcG9ydF0oaHR0cHM6Ly9naXQuaW4uYWMtdmVyc2FpbGxlcy5mci9jYXBzdWxlL2NhcHNhcGkvYmFkZ2VzL21hc3Rlci9jb3ZlcmFnZS5zdmcpXShodHRwczovL2dpdC5pbi5hYy12ZXJzYWlsbGVzLmZyL2NhcHN1bGUvY2Fwc2FwaS9jb21taXRzL21hc3RlcikgfAp8IEdpdGh1YiAodHJhdmlzKSB8IFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kuY29tL2diYXJyZS9jYXBzdWxlLWFwaS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9nYmFycmUvY2Fwc3VsZS1hcGkpIHwgTi9BIHwKCiMjIFJ1biB0aGUgY2Fwc3VsZSBBUEkgc2VydmVyIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudAoKKipSZXF1aXJlbWVudHMqKiA6IHRvIHJ1biB0aGUgZnVsbCBzdGFjaywgeW91IG5lZWQgdG8gaW5zdGFsbDoKCi0gZG9ja2VyCi0gZG9ja2VyLWNvbXBvc2UKLSBweXRob24zLjYgKG9yIGhpZ2hlcikKLSBweXRob24zLjYtZGV2Ci0ganEKClRoZW46CgpgYGBzaAojIFlvdSBoYXZlIHRvIGFjdGl2YXRlIGEgdmlydHVhbGVudiBhbmQgaW5zdGFsbCB0aGUgcmVxdWlyZWQgcGFja2FnZXMuCnB5dGhvbjMgLW0gdmVudiAuL3ZlbnYKLiB2ZW52L2Jpbi9hY3RpdmF0ZQpwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcGlwCnBpcCBpbnN0YWxsIC0tdXBncmFkZSBzZXR1cHRvb2xzCnBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKcGlwIGluc3RhbGwgLXIgdGVzdC1yZXF1aXJlbWVudHMudHh0ICMgSWYgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBydW4gdGVzdHMgdG9vLgoKIyBSdW4gYSBkb2NrZXIgaW5zdGFuY2Ugb2Yga2V5Y2xvYWsgYSB2YWxpZCBjb25maWcgZmlsZSAuL2NvbmZpZy1kZXYueW1sCiMgZm9yIHRoZSBjYXBzdWxlLWFwaSBzZXJ2ZXIgd2lsbCBiZSBjcmVhdGVkLgouL2tleWNsb2FrL3N0YXJ0LnNoCgojIFRvIHVwIHRoZSBsb2NhbCBNeVNRTCBzZXJ2ZXIgYW5kIHRoZSBOQVRTIHNlcnZlci4KZG9ja2VyLWNvbXBvc2UgdXAgLWQKCiMgVG8gb3BlbiBhIG15c3FsIGNsaWVudCBpbiB0aGUgZG9ja2VyLgojCiNkb2NrZXItY29tcG9zZSBleGVjIGRiIG15c3FsIC11IHJvb3QgLXAnbG9jYWwnIGNhcHN1bGVfbG9jYWwKCiMgVG8gYXBwbHkgYSBtaWdyYXRpb24gb2YgdGhlIGRhdGFiYXNlLgpGTEFTS19BUFA9c2VydmVyLnB5IENBUFNVTEVfQVBJX0NPTkZJRz1jb25maWctZGV2LnltbCBweXRob24gLW0gZmxhc2sgZGIgdXBncmFkZQoKIyBBbmQgdGhlbiwgdG8gcnVuIGEgZGV2L3Rlc3QgY2Fwc3VsZS1hcGkgc2VydmVyIChub3QgcmVsZXZhbnQgZm9yIGEgcHJvZHVjdGlvbiBzZXJ2ZXIpLgpweXRob24gLVdkIHNlcnZlci5weSAtYyBjb25maWctZGV2LnltbApgYGAKCioqUmVtYXJrOioqIGlmIHRoZSBzZXJ2ZXIgaXMgcnVubmluZywgeW91IGNhbiB2aWV3IHRoZSBBUEkgc3BlY2lmaWNhdGlvbgphdCB0aGUgYWRkcmVzcyBbaHR0cDovL2xvY2FsaG9zdDo1MDAwL3YxL3VpL10oaHR0cDovL2xvY2FsaG9zdDo1MDAwL3YxL3VpLykuCgojIyBUbyBzdG9wIGNhcHN1bGUgQVBJIHNlcnZlciBhbmQgcmVtb3ZlIGFsbCBkb2NrZXIgaW5zdGFuY2VzCgpUeXBlIGBDVFJMK2NgIHRvIHN0b3AgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIG9mIGNhcHN1bGUtYXBpIHNlcnZlci4KVGhlbiwgdG8gcmVtb3ZlIGFsbCBkb2NrZXIgaW5zdGFuY2VzIChrZXlsb2FjaywgTXlTUUwgYW5kIE5BVFMpOgoKYGBgc2gKIyBSZW1vdmUgdGhlIGtleWNsb2FrIGluc3RhbmNlLgpkb2NrZXIgc3RvcCBrZXljbG9ha19kZXYgJiYgZG9ja2VyIHJtIGtleWNsb2FrX2RldgoKIyBSZW1vdmUgdGhlIE5BVFMgYW5kIE15U1FMIGluc3RhbmNlcy4KIyBXYXJuaW5nLCAtdiBvcHRpb24gcmVtb3ZlIHRoZSBNeVNRTCB2b2x1bWUgYW5kIHlvdSB3aWxsIGxvc2UgYWxsIGRhdGEuCiMgRG9uJ3QgbWVudGlvbiB0aGUgLXYgb3B0aW9uIGlmIHlvdSB3YW50IHRvIGtlZXAgdGhlIE15U1FMIHZvbHVtZS4KZG9ja2VyLWNvbXBvc2UgZG93biAtdgpgYGAKCiMjIERhdGFiYXNlIG1pZ3JhdGlvbgoKYGBgc2gKIyBUbyBhZGQgYSBuZXcgbWlncmF0aW9uIDoKRkxBU0tfQVBQPXNlcnZlci5weSBDQVBTVUxFX0FQSV9DT05GSUc9Y29uZmlnLWRldi55bWwgcHl0aG9uIC1tIGZsYXNrIGRiIG1pZ3JhdGUgLW0gIk15IG5ldyBtaWdyYXRpb24iCgojIFRvIGFwcGx5IGEgbWlncmF0aW9uLgpGTEFTS19BUFA9c2VydmVyLnB5IENBUFNVTEVfQVBJX0NPTkZJRz1jb25maWctZGV2LnltbCBweXRob24gLW0gZmxhc2sgZGIgdXBncmFkZQpgYGAKCiMjIFJ1biB0ZXN0cwoKYGBgc2gKIyBUbyBydW4gY292ZXIgKHdoaWNoIGluY2x1ZGVzIHRlc3RzKQpweXRob24gLW0gcHl0ZXN0IC12IC1uOCAtLWNvdj0uIC0tY292LWNvbmZpZz0uY292ZXJhZ2VyYy1jaSAtLWNvdi1yZXBvcnQgaHRtbCAtLWNvdi1yZXBvcnQgdGVybSB0ZXN0cy9hcGkvCgojIFRvIHJ1biBsaW50CmZsYWtlOCAtLWV4dGVuZC1leGNsdWRlPXZlbnYsbWlncmF0aW9ucyAtLWlnbm9yZT1FNDAyCgojIFRvIHJ1biBzZWNhdWRpdApiYW5kaXQgLW41IC14ICIuL3ZlbnYvKiwuL3Rlc3RzLyosLi9kZXYtdG9vbHMvKiIgLXIgLiAtbGwKYGBgCgojIyBVcGRhdGUgQVBJIHNwZWNpZmljYXRpb25zCgpBZnRlciB1cGRhdGluZyB0aGUgQVBJIHNwZWMsIHlvdSBtdXN0IHJlYnVpbGQgdGhlIGBvcGVuYXBpLmpzb25gIGZpbGUgd2l0aCB0aGlzIGNvbW1hbmQ6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgIiRQV0Qvc3BlYzovc3BlYyIgLWl0IGplYW5iZXJ1L3N3YWdnZXItY2xpIHN3YWdnZXItY2xpIGJ1bmRsZSAtbyAvc3BlYy9vcGVuYXBpLmpzb24gL3NwZWMvaW5kZXgueWFtbApgYGAKCiMjIFJ1biBwcm9kdWN0aW9uIHNlcnZlcgoKYGBgc2gKZ3VuaWNvcm4gLS1hY2Nlc3MtbG9nZmlsZSAtIC0tYmluZCAwLjAuMC4wOjUwMDAgLXcgNCAtLXByZWxvYWQgc2VydmVyOmFwcApgYGAKCiMjIFJ1biB0aGUgZG9ja2VyIHByb2R1Y3Rpb24gc2VydmVyCgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gXAogIC12ICRQV0QvY29uZmlnLnltbDovZXRjL2NhcHN1bGUtYXBpL2NvbmZpZy55bWwgXAogIC0tbmV0PWhvc3QgXAogIC1lIFdPUktFUlM9OCBcCiAgLWUgREJfTUlHUkFURT11cGdyYWRlIFwKICAtLW5hbWUgY2Fwc3VsZS1hcGkgXAogIGhhcmJvci5pbi5hYy12ZXJzYWlsbGVzLmZyL2luZnJhL2NhcHN1bGUtYXBpOjIuMC4xLTU3ZmIxMzVjLTAwNjM5CmBgYAoKVG8gdXNlIHdpdGggSFRUUFMgKippbiBkZXZlbG9wbWVudCoqIHJ1bjoKCmBgYHNoCmRvY2tlciBydW4gLS1ybSBcCiAgLXYgJFBXRC9jb25maWcueW1sOi9ldGMvY2Fwc3VsZS1hcGkvY29uZmlnLnltbCBcCiAgLS1uZXQ9aG9zdCBcCiAgLWUgV09SS0VSUz04IFwKICAtZSBEQl9NSUdSQVRFPXVwZ3JhZGUgXAogIC1lIFNTTD10cnVlIFwKICAtLW5hbWUgY2Fwc3VsZS1hcGkgXAogIGhhcmJvci5pbi5hYy12ZXJzYWlsbGVzLmZyL2luZnJhL2NhcHN1bGUtYXBpOjIuMC4xLTU3ZmIxMzVjLTAwNjM5CmBgYAoKVG8gdXNlIHdpdGggSFRUUFMgKip3aXRoIHlvdXIgY2VydGlmaWNhdGUqKiBydW46CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gXAogIC12ICRQV0QvY29uZmlnLnltbDovZXRjL2NhcHN1bGUtYXBpL2NvbmZpZy55bWwgXAogIC0tbmV0PWhvc3QgXAogIC1lIFdPUktFUlM9OCBcCiAgLWUgREJfTUlHUkFURT11cGdyYWRlIFwKICAtZSBTU0w9dHJ1ZSBcCiAgLXYgJHtQQVRIX1RPX0NSVF9GSUxFfTovY2Fwc3VsZS1hcGkvY2VydC9jYXBzdWxlLmNydCBcCiAgLXYgJHtQQVRIX1RPX0tFWV9GSUxFfTovY2Fwc3VsZS1hcGkvY2VydC9jYXBzdWxlLmtleSBcCiAgLS1uYW1lIGNhcHN1bGUtYXBpIFwKICBoYXJib3IuaW4uYWMtdmVyc2FpbGxlcy5mci9pbmZyYS9jYXBzdWxlLWFwaToyLjAuMS01N2ZiMTM1Yy0wMDYzOQpgYGAKCiMjIEEgZmV3IHVzZWZ1bGwgY29tbWFuZHMKCiMjIyBIYWNrIHRoZSBjb2RlIGFuZCBjcmVhdGUgY2Fwc3VsZXMgYW5kIHVzZXJzCgpgYGBzaApjdXJsIC0tbG9jYXRpb24gLS1yZXF1ZXN0IFBPU1QgJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMC92MS9jYXBzdWxlcycgXAogICAgLS1oZWFkZXIgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgLS1oZWFkZXIgIkF1dGhvcml6YXRpb246IEJlYXJlciAkVE9LRU4iIFwKICAgIC0tZGF0YS1yYXcgJ3sgIm5hbWUiOiAiVGVzdC1DYXBzdWxlLTEiLCAib3duZXJzIjogWyAidXNlcmZvbyIsICJ1c2VyYmFyIiBdIH0nCmBgYAoKIyMjIEdldCBrZXljbG9hayB1c2VycwoKYGBgc2gKIyEvYmluL3NoCgojIHJlcXVpcmVzIGpxCgojIGNvbmZpZwpLRVlDTE9BS19VUkw9aHR0cHM6Ly9rZXljbG9hay5leGFtcGxlLmNvbS9hdXRoCktFWUNMT0FLX1JFQUxNPW15X3JlYWxtCktFWUNMT0FLX0NMSUVOVF9JRD1teV9jbGllbnRfaWQKS0VZQ0xPQUtfQ0xJRU5UX1NFQ1JFVD1mZmZmZmZmZi1mZmZmLWZmZmYtZmZmZi1mZmZmZmZmZmZmZmYKCiMgRE8gTk9UIEVESVQgTkVYVCBUSElTIExJTkUKRklMVEVSPSIiClVTRVI9IiQxIgoKIyBHZXQgdmFsaWQgdG9rZW4KUkVTVUxUPWBjdXJsIC1zIC0tZGF0YSAiZ3JhbnRfdHlwZT1jbGllbnRfY3JlZGVudGlhbHMmY2xpZW50X2lkPSR7S0VZQ0xPQUtfQ0xJRU5UX0lEfSZjbGllbnRfc2VjcmV0PSR7S0VZQ0xPQUtfQ0xJRU5UX1NFQ1JFVH0iIFwKICAke0tFWUNMT0FLX1VSTH0vcmVhbG1zLyR7S0VZQ0xPQUtfUkVBTE19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYApleHBvcnQgVEtOPSQoZWNobyAkUkVTVUxUIHwganEgLXIgJy5hY2Nlc3NfdG9rZW4nKQoKIyBMb29rIGZvciBzcGVjaWZpYyB1c2VyID8KaWYgWyAhIC16ICRVU0VSIF0KdGhlbgogIEZJTFRFUj0iP3VzZXJuYW1lPSR7VVNFUn0iCmZpCgojIEdldCB1c2VyKHMpCmN1cmwgLXMgLVggR0VUICIke0tFWUNMT0FLX1VSTH0vYWRtaW4vcmVhbG1zLyR7S0VZQ0xPQUtfUkVBTE19L3VzZXJzLyR7RklMVEVSfSIgXAotSCAiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiBcCi1IICJBdXRob3JpemF0aW9uOiBCZWFyZXIgJFRLTiIKCmBgYAoKIyMjIFNlbmQgTmF0cyByZXF1ZXN0IHRvIHNpbXVsYXRlIGEgZHJpdmVyCgoqKldhcm5pbmcqKjogZW5zdXJlIGFsbCBwcml2YXRlL3B1YmxpYyBrZXlzIGFyZSBzZXR0ZWQgaW4gdGhlIGBjb25maWcueWxtYC4KCmBgYHNoCmNkIGRldi10b29scwpweXRob24gcHVibGlzaF9tc2cucHkgLS1uYXRzPWxvY2FsaG9zdDo0MjIyIC0tc3ViamVjdD0iY2Fwc3VsZS5hZGRvbi5lY2VhNzY4My05MmE4LTRlMmQtYTg0Ni1iZTNjOTJmMDEzMDgiIC0tc3RhdGU9Ij9saXN0IiAtLWRhdGE9J3t9JwpweXRob24gcHVibGlzaF9tc2cucHkgLS1uYXRzPWxvY2FsaG9zdDo0MjIyIC0tc3ViamVjdD0iY2Fwc3VsZS53ZWJhcHAiIC0tc3RhdGU9Ij9zdGF0ZSIgLS1kYXRhPSd7ImlkIjogIjE5MTI5ZjkzLWI1MGMtNGQwNi05Yzk2LWQ3NzlkMWRhYzQ2NyJ9JwpgYGAKCiMjIFRPRE8KCi0gQVBJOgogIC0gYWRkIHdlYmFwcC9hZGRvbiBzdGF0dXMtZmxhZwotIEZyb250OgogIC0gY2Fwc3VsZToKICAgIC0gU2VuZCBlcnJvciBtZXNzYWdlIGJlZm9yZSB0aGUgZW5kIG9mIGNyZWF0aW9uCiAgICAtIENhdGNoIG93bmVyIHJlcGV0aXRpb24gb24gY3JlYXRpb24KICAgIC0gQ2hlY2sgaWYgdXNlciBleGlzdHMgaW4ga2V5Y2xvYWsgYWZ0ZXIgdGhlIGxvY2FsIHNlYXJjaCBmYWlscwogIC0gYWRkb25zOgogICAgLSBDaGFuZ2UgImZpbGUiIG9wdGlvbiAobGlrZSB3ZWJhcHApCiAgICAtIFNjcmlwdCB0byBjaGVjayBjb25zaXN0ZW5jeSBiZXR3ZWVuIHNxbGl0ZSAmIGV4aXN0aW5nIGRhdGFiYXNlcwo= readmeEtag: '"f9102c13c17ce831f90335e3456d8f89d7cc7c85"' readmeLastModified: Thu, 08 Feb 2024 14:10:36 GMT repositoryId: 247653584 description: null created: '2020-03-16T08:53:52Z' updated: '2023-02-15T08:54:46Z' language: Python archived: false stars: 2 watchers: 6 forks: 2 owner: gbarre logo: https://avatars.githubusercontent.com/u/2445791?v=4 repoEtag: '"4ba09fc4489db448e5a9d37bf53d37bd10c82e10bb352a135905628fccb2369d"' repoLastModified: Wed, 15 Feb 2023 08:54:46 GMT foundInMaster: true category: Server Implementations id: d99a6f581aa69091e73283d4a9cb3b72 - source: openapi3 tags repository: https://github.com/zafir100100/task-management-api-with-asp.net-core v3: true id: f9d0c786462c143acee41a905413a04a repositoryMetadata: base64Readme: >- IyBUYXNrLU1hbmFnZW1lbnQtQVBJLXdpdGgtQVNQLk5FVC1Db3JlCgojIyBJbnRyb2R1Y3Rpb24KClRhc2sgTWFuYWdlbWVudCBBUEkgd2l0aCBBU1AuTkVUIENvcmUgaXMgYSByb2J1c3QgYmFja2VuZCBzeXN0ZW0gZGVzaWduZWQgZm9yIG1hbmFnaW5nIHVzZXIgdGFza3MgdGhyb3VnaCBBUEkgZW5kcG9pbnRzLiBUaGlzIEFQSSBmYWNpbGl0YXRlcyB0aGUgY3JlYXRpb24sIHJldHJpZXZhbCwgdXBkYXRpbmcsIGFuZCBkZWxldGlvbiBvZiB0YXNrcywgcHJvdmlkaW5nIGEgY29tcHJlaGVuc2l2ZSBzb2x1dGlvbiBmb3IgdGFzay1yZWxhdGVkIGZ1bmN0aW9uYWxpdGllcy4KCiMjIFRlY2hub2xvZ3kgU3RhY2sKCi0gQVNQLk5FVCBDb3JlCi0gQyMKLSBFbnRpdHkgRnJhbWV3b3JrIENvcmUKLSBTd2FnZ2VyIChmb3IgQVBJIGRvY3VtZW50YXRpb24pCgojIyBGZWF0dXJlcwoKMS4gKipHZXQgQWxsIFRhc2tzKioKICAgLSAqKkVuZHBvaW50OioqIGBHRVQgL2FwaS92MS9Vc2VyVGFza3MvZ2V0LWFsbC10YXNrYAogICAtICoqRGVzY3JpcHRpb246KiogUmV0cmlldmUgYSBsaXN0IG9mIGFsbCB0YXNrcy4KCjIuICoqR2V0IFRhc2sgYnkgSUQqKgogICAtICoqRW5kcG9pbnQ6KiogYFBPU1QgL2FwaS92MS9Vc2VyVGFza3MvZ2V0LXRhc2stYnktaWRgCiAgIC0gKipEZXNjcmlwdGlvbjoqKiBSZXRyaWV2ZSBhIHRhc2sgYnkgaXRzIElELgogICAtICoqUmVxdWVzdCBCb2R5OioqIGBHZXRUYXNrRHRvYCBjb250YWluaW5nIHRoZSB0YXNrIElELgoKMy4gKipVcGRhdGUgVGFzayoqCiAgIC0gKipFbmRwb2ludDoqKiBgUEFUQ0ggL2FwaS92MS9Vc2VyVGFza3MvdXBkYXRlLXRhc2tgCiAgIC0gKipEZXNjcmlwdGlvbjoqKiBVcGRhdGUgYW4gZXhpc3RpbmcgdGFzay4KICAgLSAqKlJlcXVlc3QgQm9keToqKiBgVXNlclRhc2tgIHJlcHJlc2VudGluZyB0aGUgdXBkYXRlZCB0YXNrLgoKNC4gKipDcmVhdGUgVGFzayoqCiAgIC0gKipFbmRwb2ludDoqKiBgUE9TVCAvYXBpL3YxL1VzZXJUYXNrcy9jcmVhdGUtdGFza2AKICAgLSAqKkRlc2NyaXB0aW9uOioqIENyZWF0ZSBhIG5ldyB0YXNrLgogICAtICoqUmVxdWVzdCBCb2R5OioqIGBVc2VyVGFza2AgcmVwcmVzZW50aW5nIHRoZSBuZXcgdGFzay4KCjUuICoqRGVsZXRlIFRhc2sgYnkgSUQqKgogICAtICoqRW5kcG9pbnQ6KiogYERFTEVURSAvYXBpL3YxL1VzZXJUYXNrcy9kZWxldGUtdGFzay1ieS1pZGAKICAgLSAqKkRlc2NyaXB0aW9uOioqIERlbGV0ZSBhIHRhc2sgYnkgaXRzIElELgogICAtICoqUmVxdWVzdCBCb2R5OioqIGBEZWxldGVUYXNrUmVxdWVzdER0b2AgY29udGFpbmluZyB0aGUgdGFzayBJRC4KCiMjIEhvdyB0byBSdW4gdGhlIFByb2plY3QKCjEuICoqQ2xvbmUgdGhlIFByb2plY3Q6KioKICAgYGBgYmFzaAogICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3lvdXJ1c2VybmFtZS90YXNrLW1hbmFnZW1lbnQtYXBpLWRvdG5ldC5naXQKICAgYGBgCgoyLiAqKkluc3RhbGwgRGVwZW5kZW5jaWVzOioqCiAgIGBgYGJhc2gKICAgZG90bmV0IHJlc3RvcmUKICAgYGBgCgozLiAqKlJ1biB0aGUgQVBJOioqCiAgIGBgYGJhc2gKICAgZG90bmV0IHJ1bgogICBgYGAKCjQuICoqQWNjZXNzIFN3YWdnZXIgRG9jdW1lbnRhdGlvbjoqKgogICBPcGVuIHlvdXIgYnJvd3NlciBhbmQgbmF2aWdhdGUgdG8gYGh0dHBzOi8vbG9jYWxob3N0OjUwMDEvc3dhZ2dlci9pbmRleC5odG1sYCB0byBleHBsb3JlIHRoZSBBUEkgZW5kcG9pbnRzIGFuZCB0ZXN0IHRoZW0gaW50ZXJhY3RpdmVseS4KCiMjIENvbmNsdXNpb24KClRoZSBUYXNrIE1hbmFnZW1lbnQgQVBJIHdpdGggQVNQLk5FVCBDb3JlIHByb3ZpZGVzIGEgc29saWQgZm91bmRhdGlvbiBmb3IgaGFuZGxpbmcgdGFzay1yZWxhdGVkIG9wZXJhdGlvbnMgaW4gYSBzY2FsYWJsZSBhbmQgZWZmaWNpZW50IG1hbm5lci4gSXQgbGV2ZXJhZ2VzIHRoZSBwb3dlciBvZiBBU1AuTkVUIENvcmUsIEMjLCBhbmQgRW50aXR5IEZyYW1ld29yayBDb3JlIHRvIGRlbGl2ZXIgYSByZWxpYWJsZSBiYWNrZW5kIHNvbHV0aW9uIGZvciB0YXNrIG1hbmFnZW1lbnQuCgpGZWVsIGZyZWUgdG8gZXhwbG9yZSB0aGUgQVBJLCBydW4gdGVzdHMsIGFuZCBpbnRlZ3JhdGUgaXQgaW50byB5b3VyIGFwcGxpY2F0aW9ucy4gSWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucyBvciBuZWVkIGZ1cnRoZXIgYXNzaXN0YW5jZSwgcGxlYXNlIGNvbnRhY3QgbWUuCg== readmeEtag: '"c3cd0275d8ccc084b397c69bfe49eaaed65c6dc9"' readmeLastModified: Wed, 20 Dec 2023 17:00:15 GMT repositoryId: 733833893 description: >- Revolutionize task management with our ASP.NET Core API. Create, update, and delete tasks effortlessly using C#, Entity Framework Core, and Swagger. Elevate your daily note taking efficiency. created: '2023-12-20T08:30:16Z' updated: '2024-09-04T20:20:34Z' language: C# archived: false stars: 1 watchers: 1 forks: 0 owner: zafir100100 logo: https://avatars.githubusercontent.com/u/55599023?v=4 repoEtag: '"a1bf6d7afc41407f55f9cf5f6e61f0aa1738b390311184d31579bcdfffbc4252"' repoLastModified: Wed, 04 Sep 2024 20:20:34 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sierrasoftworks/rex-rs v3: true repositoryMetadata: base64Readme: >- IyBSYW5keSAKKipLZWVwIHRyYWNrIG9mIHZhcmlvdXMgaWRlYXMgYW5kIHJhbmRvbWx5IHNlbGVjdCBvbmUgb24gZGVtYW5kKioKClshW1RyYXZpcyAoLmNvbSldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHJhdmlzL2NvbS9TaWVycmFTb2Z0d29ya3MvcmFuZHktcnMuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UpXShodHRwczovL3RyYXZpcy1jaS5jb20vU2llcnJhU29mdHdvcmtzL3JhbmR5LXJzKQpbIVtBUEkgZG9jc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb2NzLWFwaS1ibHVlLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly9yYW5keWFwcC5kb2NzLmFwaWFyeS5pbykKIVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvU2llcnJhU29mdHdvcmtzL3JhbmR5LXJzLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlKQoKUmFuZHkgaXMgYSB0b29sIGZvciBrZWVwaW5nIHRyYWNrIG9mIGlkZWFzIGZvciB0aGluZ3MgdG8gZG8gYW5kIHByb3ZpZGluZywgb24gZGVtYW5kLAphIHJhbmRvbSBvbmUgdG8gZG8uCg== readmeEtag: '"7eb11f451b9df79f17b3c2be8b21179a33dc8998"' readmeLastModified: Tue, 23 Jul 2024 17:21:45 GMT repositoryId: 175636823 description: Tool for keeping track of ideas and providing random ones on demand created: '2019-03-14T14:20:18Z' updated: '2024-07-23T17:21:49Z' language: Rust archived: false stars: 2 watchers: 2 forks: 0 owner: SierraSoftworks logo: https://avatars.githubusercontent.com/u/5012716?v=4 license: MIT repoEtag: '"d654c17a111c87c7ed5c80dcbbe24ebc5737e1152f41350b01771f38149afc14"' repoLastModified: Tue, 23 Jul 2024 17:21:49 GMT foundInMaster: true category: - Description Validators - Testing id: f6a674399fe0c67c7b8178d1394cdf03 - source: openapi3 tags repository: https://github.com/riddhi89/simple-flask-project v3: true repositoryMetadata: base64Readme: >- IyBzaW1wbGUtZmxhc2stcHJvamVjdAoKU2V0dXA6IGNyZWF0ZSBhIHB5dGhvbiB2aXJ0dWFsIGVudmlyb25tZW50IGFuZCBpbnN0YWxsIHRoZSByZXF1aXJlbWVudHM6CgoJdmlydHVhbGVudiAtLXB5dGhvbj1weXRob24zLjYgLnZlbnYKCXNvdXJjZSAudmVudi9iaW4vYWN0aXZhdGUKCXBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKCgpHZW5lcmF0ZSBPcGVuQVBJIHNwZWMgZnJvbSBGbGFzayByb3V0ZXM6CgoJcHl0aG9uIGdlbmVyYXRlX29wZW5hcGlfc3BlYy5weQoKICAgIApWaWV3IHRoZSBPcGVuQVBJIHNwZWMgdXNpbmcgU3dhZ2dlci1VSToKCiAgICBkb2NrZXIgcnVuIC0tcm0gLXAgOTAwMDo4MDgwIC0tbmFtZSBzd2FnZ2VyLXVpIC1lIFNXQUdHRVJfSlNPTj0vYXBpX2RvY3Mvb3BlbmFwaS5qc29uIC12ICQoUFdEKS9hcGlfZG9jczovYXBpX2RvY3Mgc3dhZ2dlcmFwaS9zd2FnZ2VyLXVpCg== readmeEtag: '"c52b339bac8c3d27832ffe58c714eed7e434a986"' readmeLastModified: Mon, 06 Aug 2018 01:50:04 GMT repositoryId: 138524469 description: Generate OpenAPI spec from Flask routes created: '2018-06-25T00:08:10Z' updated: '2023-06-01T03:35:54Z' language: Python archived: false stars: 2 watchers: 1 forks: 0 owner: riddhi89 logo: https://avatars.githubusercontent.com/u/4574087?v=4 repoEtag: '"1de79d942ff7253ecda2b4dd861322e293464526acb2e1799103bafccb4a9c81"' repoLastModified: Thu, 01 Jun 2023 03:35:54 GMT foundInMaster: true category: - Converters - Server Implementations id: 58d7aa9434d9542d0f77d17e7c7e1394 - source: openapi3 tags repository: https://github.com/talentplatforms/ropen_pi v3: true repositoryMetadata: base64Readme: >- WyFbQ29udmVudGlvbmFsIENvbW1pdHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQ29udmVudGlvbmFsJTIwQ29tbWl0cy0xLjAuMC15ZWxsb3cuc3ZnKV0oaHR0cHM6Ly9jb252ZW50aW9uYWxjb21taXRzLm9yZykKCiMgUm9wZW5QaQoKVGhpcyBpcyBhIGZvcmsgb2YgdGhlIFtvcGVuLWFwaS1yc3dhZyBnZW1dKGh0dHBzOi8vZ2l0aHViLmNvbS9qZGFuaWVsaWFuL29wZW4tYXBpLXJzd2FnKS4KSXQncyBhIGdvb2QgZ2VtIGluIGFuIGVhcmx5IGRldmVsb3BtZW50IHN0YWdlLiBUaGUgb3JpZ2luYWwgW3Jzd2FnXShodHRwczovL2dpdGh1Yi5jb20vcnN3YWcvcnN3YWcpIGdlbSBhbmQgdGhlIG9wZW4gYXBpIGZvcmsgYSBoYXZlIG9uZSB0aGluZyBpbiBjb21tb246IHRoZXkgZG8gdG8gbXVjaC4KClRoZXJlIGFyZSBlYXNpZXIgd2F5cyB0byBnZXQgYW4gaW5zdGFuY2Ugb2YgdGhlIHN3YWdnZXIgdWkgcnVubmluZyB0aGFuIGJ1aWxkaW5nIGl0IGFzIGEgcmFpbHMgZW5naW5lLgoKSW4gZnV0dXJlIHJlbGVhc2VzIHRoaXMgZ2VtIHdpbGwgcHJvdmlkZSBhIGJhc2ljIGV4YW1wbGUgb2YgaG93IHRoaXMgd2lsbCBsb29rIGxpa2UuCgpJbiB0aGUgbWVhbiB0aW1lIHRoaXMgd2lsbCByZW1haW4gYSBXSVAgOikKCiMjIEluc3RhbGxhdGlvbgoKQWRkIHRoaXMgbGluZSB0byB5b3VyIGFwcGxpY2F0aW9uJ3MgR2VtZmlsZToKCmBgYHJ1YnkKZ2VtICdyb3Blbl9waScKYGBgCgpBbmQgdGhlbiBleGVjdXRlOgoKICAgICQgYnVuZGxlCgpPciBpbnN0YWxsIGl0IHlvdXJzZWxmIGFzOgoKICAgICQgZ2VtIGluc3RhbGwgcm9wZW5fcGkKCiMjIFVuc3VwcG9ydGVkCgpEdWUgdG8gbWFzc2l2ZSBjaGFuZ2VzIGluIHRoZSBzcGVjLCB0aGlzIGdlbSBjdXJyZW50bHkgZG9lcyBub3Qgc3VwcG9ydCBhbnkgdHlwZSBvZiBjb2xsZWN0aW9uIHF1ZXJpZXMuCgojIyBVc2FnZQoKVE9ETzogV3JpdGUgdXNhZ2UgaW5zdHJ1Y3Rpb25zIGhlcmUKCiMjIERldmVsb3BtZW50CgpTbyB5b3UgaGF2ZSBkZWNpZGVkIHRvIGNvbnRyaWJ1dGU/ISBUaGlzIHNvdW5kcyBncmVhdCEKVG8gbWFrZSBpdCBzdXBlciBlYXN5IHRvIHN0YXJ0IHRoZSBvbmx5IHRoaW5nIHlvdSBoYXZlIHRvIGhhdmUgaW5zdGFsbGVkIGlzIERvY2tlci4KVGhlbiB5b3UgY2FuIGp1c3QgdXNlIHRoZSBiYXR0ZXJpZXMtaW5jbHVkZWQgRGV2Q29udGFpbmVyIGZvciBWU0NvZGUuCgpUaGVyZSBpcyBhIGxvdCBvZiBkb2N1bWVudGF0aW9uIG9uIGdldHRpbmcgc3RhcnRlZCB3aXRoIHRoaXMga2luZCBvZiBkZXZlbG9wbWVudC4KSWYgeW91IGFyZSBraW5kIG9mIG5ldyB0byB0aGlzIHBsZWFzZSBtYWtlIHN1cmUgdG8gcmVhZCB0aGUgb2ZmaWNhbCBbZG9jcyBvdmVyIGF0IE1pY3Jvc29mdF0oaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vZG9jcy9yZW1vdGUvY29udGFpbmVycykuCgojIyBDb250cmlidXRpbmcKCkJ1ZyByZXBvcnRzIGFuZCBwdWxsIHJlcXVlc3RzIGFyZSB3ZWxjb21lIG9uIEdpdEh1YiBhdCBodHRwczovL2dpdGh1Yi5jb20vdGFsZW50cGxhdGZvcm1zL3JvcGVuX3BpLgoKIyMgTGljZW5zZQoKVGhlIGdlbSBpcyBhdmFpbGFibGUgYXMgb3BlbiBzb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIExpY2Vuc2VdKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKS4K readmeEtag: '"614a45628426de892e0a70c7be311c561e0fe392"' readmeLastModified: Tue, 29 Nov 2022 14:13:17 GMT repositoryId: 232335523 description: Rspec and OpenAPI Integration created: '2020-01-07T13:55:14Z' updated: '2021-11-03T11:34:42Z' language: Ruby archived: false stars: 2 watchers: 3 forks: 0 owner: talentplatforms logo: https://avatars.githubusercontent.com/u/55129375?v=4 license: MIT repoEtag: '"98a5130f0c94c13b91174418d832fe8e128c2b2dd61e2a76f6faf3664748d558"' repoLastModified: Wed, 03 Nov 2021 11:34:42 GMT foundInMaster: true category: Parsers id: 2927c6148c140508477dc6e6b9a038f6 - source: openapi3 tags repository: https://github.com/michaelsauter/go-oas-server v3: true repositoryMetadata: base64Readme: >- IyBnby1vYXMtc2VydmVyCgpHZW5lcmF0ZSBHbyBzZXJ2ZXIgY29kZSBmcm9tIGFuIFtPcGVuQVBJIDMgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKS4KClRoaXMgcHJvamVjdCBpcyBmb3IgeW91IGlmIHlvdSB3YW50IHRvIHdyaXRlIGEgUkVTVCBBUEkgaW4gR28sIGFuZCB5b3UgdmFsdWUgdGhlIGZvbGxvd2luZzoKCiogRGVzaWduLWZpc3QgYXBwcm9hY2ggdXNpbmcgT3BlbkFQSSAzCiogVHlwZSBzYWZldHk6IGF2b2lkIHVzaW5nIGBjb250ZXh0LkNvbnRleHRgIGFuZCBgaW50ZXJmYWNle31gIGFzIG11Y2ggYXMgcG9zc2libGUKKiBDb21waWxlci1kcml2ZW4gZGV2ZWxvcG1lbnQ6IGxldCB0aGUgZ2VuZXJhdGVkIGNvZGUgZ3VpZGUgeW91IHdoYXQgeW91IG5lZWQgdG8gaW1wbGVtZW50CiogQXBwcm9hY2hlcyBsaWtlIFtIb3cgSSB3cml0ZSBHbyBIVFRQIHNlcnZpY2VzIGFmdGVyIHNldmVuIHllYXJzXShodHRwczovL21lZGl1bS5jb20vc3RhdHVzY29kZS9ob3ctaS13cml0ZS1nby1odHRwLXNlcnZpY2VzLWFmdGVyLXNldmVuLXllYXJzLTM3YzIwODEyMjgzMSkgYnV0IGRvbid0IHdhbnQgdG8gZGVhbCB3aXRoIHJvdXRpbmcsIHBhcmFtZXRlciB2YWxpZGF0aW9uIGFuZCBkb2N1bWVudGF0aW9uCgojIyBVc2FnZQoKMS4gRGVzaWduIHlvdXIgQVBJLCBlLmcuIGluIHRoZSBbU3dhZ2dlciBFZGl0b3JdKGh0dHBzOi8vc3dhZ2dlci5pby90b29scy9zd2FnZ2VyLWVkaXRvci8pCjIuIEV4cG9ydCB0aGUgc3BlY2lmaWNhdGlvbiBhcyBKU09OCjMuIEdlbmVyYXRlIEdvIGNvZGUgdmlhIGBnby1vYXMtc2VydmVyIGdlbmVyYXRlIC0tZmlsZSBhcGkuanNvbiAtLW91dHB1dC1kaXI9Z2VuYAo0LiBJbXBsZW1lbnQgeW91ciBzZXJ2ZXIgYW5kIGl0cyBlbmRwb2ludHM6CgpgYGAKcGFja2FnZSBtYWluCgp0eXBlIG15U2VydmVyIHN0cnVjdCB7fQoKZnVuYyAocyAqbXlTZXJ2ZXIpIE1pZGRsZXdhcmVzKCkgZ2VuLk1pZGRsZXdhcmVzIHsKCXJldHVybiBNaWRkbGV3YXJlc3t9Cn0KCmZ1bmMgKHMgKnNlcnZlcikgSGFuZGxlUGV0SW5kZXgoKSAoZ2VuLk1pZGRsZXdhcmVzLCBnZW4uQVBJT3BlcmF0aW9uUGV0SW5kZXgpIHsKCXJldHVybiBuaWwsIGZ1bmModyBodHRwLlJlc3BvbnNlV3JpdGVyLCByICpodHRwLlJlcXVlc3QsIHAgZ2VuLlBhcmFtZXRlcnNQZXRJbmRleCkgewoJCS8vIEltcGxlbWVudCB5b3VyIGxvZ2ljIGhlcmUKCX0KfQoKZnVuYyBtYWluKCkgewoJcyA6PSBOZXdPcGVuQVBJU2VydmVyKCZteVNlcnZlcnt9KQoJcy5Cb290KCkKCWxvZy5GYXRhbChodHRwLkxpc3RlbkFuZFNlcnZlKCI6ODAwMCIsIHMpCn0KYGBgCgojIyBDdXJyZW50IFN0YXRlCgpUaGlzIHByb2plY3QgaXMgY3VycmVudGx5IG9ubHkgbGl0dGxlIG1vcmUgdGhhbiBhIHByb29mIG9mIGNvbmNlcHQuIFdoaWxlIHRoZSBnZW5lcmFsIGJ1aWxkaW5nIGJsb2NrcyBhcmUgaW4gcGxhY2UsIGEgbG90IG9mIHRoZSBBUEkgbWF5IGNoYW5nZS4gRnVydGhlciwgc29tZSBhcmVhcyBhcmUgbm90IGV2ZW4gY292ZXJlZCB5ZXQgc3VjaCBhcyBnZW5lcmF0aW5nIHN1cHBvcnQgZm9yIHJlc3BvbnNlcy4KCkhlcmUncyBhIChub24tZXhoYXVzdGl2ZSkgbGlzdCBvZiB3aGF0J3MgbGVmdCB0byBkbzoKKiBTdXBwb3J0IG1vcmUgdHlwZXMgYW5kIHZhbGlkYXRpb25zCiogRW5kcG9pbnQtbGV2ZWwgR28gZGVwZW5kZW5jaWVzCiogUmVzcG9uc2VzCiogSGFuZGxpbmcgbW9yZSBjb21wb25lbnRzCiogTWFrZSBpdCBlYXNpZXIgZm9yIHVzZXJzIHRvIGZpZ3VyZSBvdXQgd2hhdCB0byBpbXBsZW1lbnQgYWZ0ZXIgY29kZSBnZW5lcmF0aW9uCiogTW9yZSB0ZXN0aW5nIHN1cHBvcnQKKiBCZXR0ZXIgbmFtaW5nIHN1cHBvcnQgKGF2b2lkIGJhZCBjaGFycywgYW5kIHN1cHBvcnQgW2NvbW1vbiBpbml0aWFsaXNtc10oaHR0cHM6Ly9naXRodWIuY29tL2dvbGFuZy9saW50L2Jsb2IvOGY0NWY3NzZhYWYxOGNlYmM4ZDY1ODYxY2M3MGMzM2M2MDQ3MTk1Mi9saW50LmdvI0w3NzEpKS4KCkFsc28sIGdvLW9hcy1zZXJ2ZXIgY2Fubm90IGdlbmVyYXRlIGNvZGUgZm9yIGV2ZXJ5IHBvc3NpYmxlIHNwZWNpZmljYXRpb24uIEluIHBhcnQsIHRoaXMgbGltaXRhdGlvbiBleGlzdHMgdG8gYXZvaWQgY29tcGxleGl0eS4KCmdvLW9hcy1zZXJ2ZXIgKGN1cnJlbnRseSkgZG9lcyBub3Qgc3VwcG9ydDoKCiogUGFyYW1ldGVyIHNlcmlhbGl6YXRpb24uCiogUGFyYW1ldGVycyBkZWZpbmVkIHdpdGggYGNvbnRlbnRgIGluc3RlYWQgb2YgYHNjaGVtYWAuCiogTGlua3MuCiogQ2FsbGJhY2tzLgoqIFJlc3BvbnNlcyAoaG93ZXZlciBzdXBwb3J0IGZvciB0aGlzIGlzIHBsYW5uZWQpLgoqIFVzZSBvZiBgb25lT2ZgLCBgYW55T2ZgLCBgYWxsT2ZgIGFueXdoZXJlLgoKVGhlcmUgYXJlIGZ1cnRoZXIgZWdkZSBjYXNlcyBmb3Igc3VyZSwgaWYgeW91IHRoaW5rIHlvdSd2ZSBydW4gaW50byBvbmUsIHBsZWFzZSBvcGVuIGFuIGlzc3VlLgoKCiMjIyBXaHkgZ2VuZXJhdGUgY29kZSBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uLCBhbmQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kPwoKKiBUeXBpY2FsbHksIGl0IGlzIGZhc3RlciB0byBkZWZpbmUgdGhlIHNwZWNpZmljYXRpb24gb2YgYW4gQVBJIHRoYW4gdG8gaW1wbGVtZW50IGl0LgoqIElmIHlvdSBoYXZlIGFjY2VzcyB0byBmdXR1cmUgY29uc3VtZXJzIG9mIHRoZSBBUEkgZW5kcG9pbnQocykgYmVpbmcgZGVzaWduZWQsIGl0IGlzIGVhc2llciB0byBnYXRoZXIgZmVlZGJhY2sgYmFzZWQgb24gdGhlIHNwZWNpZmljYXRpb24uIEhhdmluZyBvbmx5IGNvZGUgaXMgbm90IGEgZ29vZCBiYXNlIGZvciBkaXNjdXNzaW9uLgoqIEl0IGlzIG5vbi10cml2aWFsIHRvIGNvbnRyb2wgZXZlcnkgYXNwZWN0IG9mIHRoZSBzcGVjaWZpY2F0aW9uIGZyb20gY29kZS4gT2Z0ZW4gdGhpcyBpbnZvbHZlcyB1c2luZyBsb3RzIG9mIGFubm90YXRpb25zIGluIG90aGVyIGxhbmd1YWdlcy4gRm9yIGV4YW1wbGUsIHBhcmFtZXRlciBjb25zdHJhaW50cyBhcmUgZWFzeSB0byBnZW5lcmF0ZSBmcm9tIHNwZWNpZmljYXRpb24sIGJ1dCBoYXJkIHRvIGdlbmVyYXRlIGZyb20gY29kZS4KKiBXaGVuIHRoZSBzcGVjaWZpY2F0aW9uIGlzIGdlbmVyYXRlZCwgaXQgaXMgb2Z0ZW4gbm90IGxvb2tlZCBhdCBieSB0aGUgQVBJIGRldmVsb3BlciwgYW5kIHRoZXJlZm9yZSBub3QgYXMgZGV0YWlsZWQgYXMgaXQgY291bGQgYmUuCiogV3JpdGluZyBBUEkgZW5kcG9pbnRzIGluIEdvIGludm9sdmVzIGEgbG90IG9mIGJvaWxlcnBsYXRlLCB3aGljaCBpcyBib3JpbmcgdG8gd3JpdGUuIEEgZ2VuZXJhdG9yIGZpdHMgbmljZWx5LgoKIyMgV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSB0byBnby1zd2FnZ2VyPwoKKiBnby1zd2FnZ2VyIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIFN3YWdnZXIgMi4wLCBub3QgT3BlbkFQSSAzLgoqIGdvLXN3YWdnZXIgbG9va3MgaHVnZSBhbmQgSSB3YW50ZWQgc29tZXRoaW5nIHNtYWxsZXIgdGhhdCBmZWVscyBtb3JlIGxpa2Ugd3JpdGluZyBgbmV0L2h0dHBgIGhhbmRsZXJzLgoqIGdvLW9hcy1zZXJ2ZXIgZG9lcyBub3QgZ2VuZXJhdGUgY2xpZW50cy4K readmeEtag: '"8d306d0e9ebf27fd70c6c86bc56bdbad3df99aec"' readmeLastModified: Tue, 06 Aug 2019 19:15:53 GMT repositoryId: 199204368 description: Go server generator from OpenAPI 3 created: '2019-07-27T19:12:45Z' updated: '2019-12-03T14:47:18Z' language: Go archived: false stars: 2 watchers: 3 forks: 0 owner: michaelsauter logo: https://avatars.githubusercontent.com/u/215455?v=4 repoEtag: '"b0ec6ddfda2dcaa13632b37f6a38c93322c6e1219e145fc5c614882c6a7c188c"' repoLastModified: Tue, 03 Dec 2019 14:47:18 GMT foundInMaster: true category: Server Implementations id: 88ce19dbf86d450a1530d74394f6eff6 - source: openapi3 tags repository: https://github.com/nitianabhigyan/smitch-api v3: true id: 1b3e47b8baebff63549eb3f48deb1b78 repositoryMetadata: base64Readme: >- IyBTbWl0Y2gtQVBJCkEgKipwb3N0bWFuIGNvbGxlY3Rpb24qKiBhbmQgKipvcGVuYXBpIHNwZWMuKiogdG8gY29udHJvbCBzbWl0Y2ggc21hcnQgZGV2aWNlcyBpbmNsdWRpbmcgbGlnaHRzIGFuZCBzd2l0Y2hlcy4KCk9mZmljYWwgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIFNtaXRjaCBTbWFydCBhcHAgY29udHJvbDogW2h0dHBzOi8vZG9jcy5kZXZlbG9wZXIubXlzbWl0Y2guY29tXShodHRwczovL2RvY3MuZGV2ZWxvcGVyLm15c21pdGNoLmNvbSkuIDxicj4KT2ZmaWNhbCAiR2V0IHN0YXJ0ZWQiIGd1aWRlOiBbR2V0LVN0YXJ0ZWRdKGh0dHBzOi8vZG9jcy5kZXZlbG9wZXIubXlzbWl0Y2guY29tL2RldmVsb3Blci1wb3J0YWwvZ2V0LXN0YXJ0ZWQpLgoKIyMgSG93IHRvIHVzZSB0aGUgcG9zdG1hbiBjb2xsZWN0aW9uCiMjIyBQcmVyZXF1aXNpdGVzClBsZWFzZSBmYW1pbGlhcmlzZSB5b3Vyc2VsZiB3aXRoIHRoZSBiYXNpYyBwcmVyZXF1aXNpdGUgYXQ6IFtQcmVyZXF1aXNpdGVzXShodHRwczovL2RvY3MuZGV2ZWxvcGVyLm15c21pdGNoLmNvbS8jMC4tcHJlcmVxdWlzaXRlcykKLSBSZWdpc3RlciBhIGRldmVsb3BlciBhY2NvdW50IGF0OiBbRGV2ZWxvcGVyLVBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXIubXlzbWl0Y2guY29tKSBieSBzZWxlY3RpbmcgU2lnbiBVcCAoU2lnbiBJbiBpZiB5b3UgYWxyZWFkeSBjcmVhdGVkIGFuIGFjY291bnQpCi0gQWRkIGFuIEFwcCBpbiB5b3VyIGRldmVsb3BlciBhY2NvdW50IGFuZCBjcmVhdGUgYSAiVEVTVCIgQVBJIEtFWS4gTW9yZSBkZXRhaWxzOiBbYXBpLWtleXNdKGh0dHBzOi8vZG9jcy5kZXZlbG9wZXIubXlzbWl0Y2guY29tL2FwcC9hcGkta2V5cykuIFNhdmUgdGhpcyBhcGkta2V5IHNvbWV3aGVyZSBzYWZlLgotIExpbmsgYSAidGVzdGVyIiB0byB5b3VyIGFwcGxpY2F0aW9uLiBNb3JlIGRldGFpbHM6IFt1c2VyLXRlc3Rlcl0oaHR0cHM6Ly9kb2NzLmRldmVsb3Blci5teXNtaXRjaC5jb20vdXNlcnMvdXNlci10ZXN0ZXIpLCBtYWtlIHN1cmUgdGhlIHRlc3RlcidzIGFjY291bnQgdXNlZCBoZXJlIGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgeW91IHVzZSB0byBzaWduIGluIHRoZSBTbWl0Y2ggbW9iaWxlIGFwcC4KCiMjIyBVc2luZyB0aGUgY29sbGVjdGlvbi4KCjEuIExvYWQgdGhlIGNvbGxlY3Rpb24gbG9jYXRlZCBhdCBbY29sbGVjdGlvbl0oLi9TbWl0Y2gmIzMyO1Bvc3RtYW4mIzMyO0FQSSYjMzI7Y29sbGVjdGlvbi5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbikgaW4geW91ciBsb2NhbC93ZWIgaW5zdGFuY2Ugb2YgUG9zdG1hbi4KMi4gT3BlbiB0aGUgIlNtaXRjaCBQb3N0bWFuIEFQSSBjb2xsZWN0aW9uIiwgc2VsZWN0IHRoZSB2YXJpYWJsZXMgdGFiIGFuZCBzZXQgdGhlICJhcGlfa2V5IiB2YXJpYWJsZSdzIHZhbHVlIHRvIHlvdXIgYXBpX2tleSBvYnRhaW5lZCBmcm9tLgozLiBTZWxlY3QgdGhlICJFdmVyeXRoaW5nX2lzX3ZhbGlkIiByZXF1ZXN0IGFuZCBzZW5kIGl0LiBJZiBldmVyeXRoaW5nIHdhcyBkb25lIGNvcnJlY3RseSwgdGhpcyBzaG91bGQgcmV0dXJuIGEgICJzdGF0dXMiOiAic3VjY2VzcyIuIElmIG5vdCwgcGxlYXNlIHZhbGlkYXRlIHlvdXIgc3RlcHMgYWdhaW4uCjQuIFNlbGVjdCB0aGUgImxpc3Rfb2ZfdXNlcnMiIHJlcXVlc3QgYW5kIHNlbmQgaXQuIE9idGFpbiB0aGUgdXNlcl9pZCB2YXJpYWJsZSBvZiB0aGUgZGVzaXJlZCB1c2VyIChtYWtlIHN1cmUgdGhlIHNhaWQgYWNjb3VudCBpcyBhZGRlZCBhcyB0ZXN0ZXIgYXMgcGVyIGFib3ZlKSwgYWRkIHRoaXMga2V5J3MgdmFsdWUgdG8geW91ciBjb2xsZWN0aW9uJ3MgdmFyaWFibGUgInVzZXJfaWQiIHZhcmlhYmxlJ3MgdmFsdWUuCjUuIFRvIGNvbnRyb2wgYSBkZXZpY2UsIHlvdSBmaXJzdCBuZWVkIHRvIGlkZW50aWZ5IGl0J3MgImRldmljZV9pZCIgYW5kIGFkZCBpdCBpbiBjb2xsZWN0aW9uJ3MgdmFyaWFibGVzLiBUbyBvYnRhaW4gYSBsaXN0IG9mIGFsbCBkZXZpY2VzIGFkZGVkIGluIHVzZXIncyBhY2NvdW50IHBsZWFzZSB1c2UgdGhlICJnZXRfdXNlcl9kZXRhaWxzIiByZXF1ZXN0LgoKIyMgVG8gQmUgRG9uZQogLSB+fkNoZWNrIGZlYXNpYmlsaXR5IG9mIGNvbnZlcnRpbmcgdGhpcyB0byBvcGVuYXBpLn5+ICoqUmVzdWx0Kio6IERvYWJsZS4KIC0gfn5Db252ZXJ0IHRoaXMgdG8gT3BlbkFQSSB2ZXJzaW9uIDMgc3BlYy5+fgogLSBVc2Ugb3BlbmFwaSBhbmQgc3dhZ2dlci11aSB0byBob3N0IHRoaXMgaW4gdGhlIGZvcm0gb2YgYSBnaXRodWIgcGFnZS4KIC0gQ3VzdG9taXNlIHRoZSBvcGVuYXBpLnlhbWwgc3BlYyB0byBiZXR0ZXIgc3VpdGUgdGhlIG5lZWRzIG9mIHRoZSB2ZXJzaW9uLgogLSBEbyB0ZXN0IHJ1bnMKIC0gQWRkIGRvY3VtZW50YXRpb24gZm9yIHVzaW5nIG9wZW5hcGkueWFtbCB0byBjcmVhdGUgU0RLcywgYW5kIGZpbmFsbHkgYmUgYXQgcGVhY2Ug4p2k77iPCg== readmeEtag: '"096c1863cbf45dae8a1e3dc591aa5ce56d5c2bba"' readmeLastModified: Wed, 17 Aug 2022 07:40:12 GMT repositoryId: 507033057 description: >- A postman collection to control switch smart devices. Offical documentation for the Smitch Smart app control: https://docs.developer.mysmitch.com created: '2022-06-24T14:06:08Z' updated: '2023-10-09T12:23:02Z' language: null archived: false stars: 2 watchers: 1 forks: 0 owner: nitianabhigyan logo: https://avatars.githubusercontent.com/u/51279790?v=4 license: MIT repoEtag: '"54acb016d4942991133377ffe334d89ca04cf301ff74d2f16b4759b01c36218b"' repoLastModified: Mon, 09 Oct 2023 12:23:02 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/old-adapdr/masonite-swagger-ui v3: true id: 79d38315f5f47d6419ac62f79e460748 repositoryMetadata: base64Readme: >- IyBNYXNvbml0ZSBTd2FnZ2VyIFVJClRoZSBpbnRlbnRpb24gb2YgdGhpcyBwYWNrYWdlIGlzIHByb3ZpZGUgYW4gZWFzeSBtZXRob2QgdG8gYWRkaW5nIFN3YWdnZXJVSSAvIE9wZW5BUElVSSB0byBtYXNvbml0ZS4KCiMjIEluc3RhbGxhdGlvbgoxLiBgcGlwMyBpbnN0YWxsIG1hc29uaXRlLXN3YWdnZXItdWlgCjIuIEFkZCB0aGUgcGFja2FnZSB0byB0aGUgcHJvdmlkZXJzIGxpc3Q6CiAgICBgYGBweQogICAgZnJvbSBzd2FnZ2VyX3VpLnByb3ZpZGVycyBpbXBvcnQgU3dhZ2dlclVJUHJvdmlkZXIKCiAgICAjIC4uLgoKICAgIFBST1ZJREVSUyA9IFsKICAgICMgLi4uCiAgICAgIFN3YWdnZXJVSVByb3ZpZGVyCiAgICBdCiAgICBgYGAKMy4gUnVuIHRoZSBpbnN0YWxsIGNvbW1hbmQ6IGBjcmFmdCBzd2FnZ2VydWk6aW5zdGFsbGAgdGhpcyB3aWxsIGNvcHkgb3ZlciBhbGwgdGhlIHJlcXVpcmVkIHNjYWZmb2xkaW5nIHlvdSBuZWVkIQoKVGhhdHMgaXQhIFlvdSBjYW4gbm93IGRvIGBjcmFmdCBzZXJ2ZWAgYW5kIG5hdmlnYXRlIHRvIGAvZG9jc2AgdG8gdHJ5IGl0IG91dCBpbiBhY3Rpb24hCg== readmeEtag: '"c03b0af1089b7fb583979274d19caffb7a545143"' readmeLastModified: Mon, 16 Nov 2020 18:27:50 GMT repositoryId: 313071977 description: >- Third-party package for Masonite that provides necessary scaffolding for the Swagger UI / OpenAPI UI created: '2020-11-15T16:20:40Z' updated: '2023-01-28T11:30:45Z' language: Python archived: true stars: 2 watchers: 2 forks: 0 owner: old-adapdr logo: https://avatars.githubusercontent.com/u/49159860?v=4 repoEtag: '"28eb512760923342fca331bac7cfc90b9074b0a7daca2cbc7dc8616e6cf67718"' repoLastModified: Sat, 28 Jan 2023 11:30:45 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/adapdr/masonite-swagger-ui - source: openapi3 tags repository: https://github.com/ebln/guzzle-openapi-middleware v3: true id: 1d17b4d627cb3cf6ea048171fb9654a0 repositoryMetadata: base64Readme: >- T3BlbkFQSSBWYWxpZGF0aW9uIE1pZGRsZXdhcmUgZm9yIEd1enpsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpbVGhpcyBtaWRkbGV3YXJlIG9ubHkgYWRhcHRzIGxlYWd1ZS9vcGVuYXBpLXBzcjctdmFsaWRhdG9yIGZvciBHdXp6bGUsIHBsZWFzZSBzZWUgdGhlaXIgcHJvamVjdCBmb3IgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3RoZXBocGxlYWd1ZS9vcGVuYXBpLXBzcjctdmFsaWRhdG9yI3JlYWRtZSkKCiMjIEluc3RhbGxhdGlvbgoKYGBgCmNvbXBvc2VyIHJlcXVpcmUgZWJsbi9ndXp6bGUtb3BlbmFwaS1taWRkbGV3YXJlCmBgYAoKIyMgVXNhZ2UKCmBgYAp1c2UgR3V6emxlSHR0cFxDbGllbnQ7CnVzZSBHdXp6bGVIdHRwXEhhbmRsZXJTdGFjazsKdXNlIExlYWd1ZVxPcGVuQVBJVmFsaWRhdGlvblxQU1I3XFZhbGlkYXRvckJ1aWxkZXI7CgokYnVpbGRlciA9IG5ldyBWYWxpZGF0b3JCdWlsZGVyKCk7Ci8vIGNhbGwgZWl0aGVyIHNldFNjaGVtYUZhY3RvcnkoKSBvciBvbmUgb2YgdGhlIGZyb20qKCkgbWV0aG9kcyBvcHRpb25hbGx5IGFkZCBhIFBTUjYgY2FjaGUKLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vdGhlcGhwbGVhZ3VlL29wZW5hcGktcHNyNy12YWxpZGF0b3IjcmVhZG1lCgokbWlkZGxld2FyZSA9IG5ldyBNaWRkbGV3YXJlKCRidWlsZGVyLT5nZXRSZXF1ZXN0VmFsaWRhdG9yKCksICRidWlsZGVyLT5nZXRSZXNwb25zZVZhbGlkYXRvcigpKTsKCi8vIEBzZWUgaHR0cHM6Ly9kb2NzLmd1enpsZXBocC5vcmcvZW4vc3RhYmxlL2hhbmRsZXJzLWFuZC1taWRkbGV3YXJlLmh0bWwjbWlkZGxld2FyZQokc3RhY2sgPSBIYW5kbGVyU3RhY2s6OmNyZWF0ZSgpOwokc3RhY2stPnB1c2goJG1pZGRsZXdhcmUsICdvcGVuYXBpX3ZhbGlkYXRpb24nKTsKJGNsaWVudCA9IG5ldyBDbGllbnQoWydoYW5kbGVyJyA9PiAkc3RhY2tdKTsKYGBgCg== readmeEtag: '"d5d2c88ab08fa482a5d092955583aab3476ac33f"' readmeLastModified: Sat, 20 Aug 2022 13:33:05 GMT repositoryId: 526515209 description: >- OpenAPI validation middleware for Guzzle, adapting league/openapi-psr7-validator created: '2022-08-19T07:59:26Z' updated: '2024-04-25T08:55:26Z' language: PHP archived: false stars: 2 watchers: 1 forks: 0 owner: ebln logo: https://avatars.githubusercontent.com/u/34722048?v=4 license: MIT repoEtag: '"a2c690380063c39a0faa03ec40ba833bf79c74c765bb1947972a9938fa0054bb"' repoLastModified: Thu, 25 Apr 2024 08:55:26 GMT category: Data Validators foundInMaster: true - source: openapi3 tags repository: https://github.com/goodluckxu-go/openapi v3: true id: ad35a471acd8b722cf9fe035a6535cbb repositoryMetadata: base64Readme: >- IyBvcGVuYXBpMyDmlofmoaPnlJ/miJAKCuS9v+eUqGFzdOivreazleino+aekOWZqOino+aekOazqOino++8jOagueaNrm9wZW5hcGkz6K+t5rOV55Sf5oiQCgojIyDlvJXnlKgocXVvdGUpCi0gZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkKCgojIyDnlKjms5UodXNhZ2UpCuWkmuihjOazqOmHiuWPr+S7peS9v+eUqCB8LSDnrKblj7fvvIzlkoxA5qCH6aKY5LiA6KGM77yM5LiN6IO95pyJ5YW25LuW5YaF5a6577yM55+l6YGT6YGH5Yiw5LiL5LiA5Liq5Y+v55So5qCH562+5oiW6ICF5Y2V54us5LiA6KGM5Li6LXzjgILkvovlpoLvvJoKfn5+Z28KLy8gQGluZm8udGl0bGU6IHwtCi8vICAg6L+Z5piv5qCH6aKYCi8vIEBpbmZvLmRlc2NyaXB0aW9uOiB8LQovLyAgIOi/meaYr+aPj+i/sAovLyAgLXwKLy8g6L+Z6YeM55qE5rOo6YeK5piv5peg5pWI55qE77yM5LiK6Z2i5bey57uP57uI5q2i77yM5aaC5p6c5LiN5Lqb57uI5q2i56ym5Y+35YiZ5Li65LiK6Z2i5qCH562+55qE5rOo6YeKCi8vIEBpbmZvLnZlcnNpb246IOi/meaYr+eJiOacrOWPtwp+fn4KCiMjIyDlronoo4Xlkb3ku6QKfn5+c2hlbGwKZ28gaW5zdGFsbCBnaXRodWIuY29tL2dvb2RsdWNreHUtZ28vb3BlbmFwaS9jbWQvYXBpZ2VuQGxhdGVzdAp+fn4KCiMjIyBkb2NzLmdv5paH5qGj5rOo6YeK6K+05piOCn5+fmdvCi8vIEBpbmZvLnRpdGxlOiDmoIfpopgKLy8gQGluZm8uZGVzY3JpcHRpb246IOaPj+i/sAovLyBAaW5mby50ZXJtc09mU2VydmljZTog5pyN5Yqh5p2h5qy+Ci8vIEBpbmZvLmNvbnRhY3QubmFtZTog6IGU57O75Lq6Ci8vIEBpbmZvLmNvbnRhY3QudXJsOiDogZTns7vlnLDlnYAKLy8gQGluZm8uY29udGFjdC5lbWFpbDog6IGU57O76YKu566xCi8vIEBpbmZvLmxpY2Vuc2UubmFtZTog6K645Y+v6K+B5ZCN56ewCi8vIEBpbmZvLmxpY2Vuc2UudXJsOiDorrjlj6/or4HlnLDlnYAKLy8gQGluZm8udmVyc2lvbjog6aG555uu54mI5pys5Y+3Ci8vIEBleHRlcm5hbERvY3MuZGVzY3JpcHRpb246IOaJqeWxleaWh+aho+aPj+i/sAovLyBAZXh0ZXJuYWxEb2NzLnVybDog5omp5bGV5paH5qGj5Zyw5Z2ACi8vIEBzZXJ2ZXJzOiB1cmw95pyN5Yqh5Zyw5Z2AOyBkZXNjcmlwdGlvbj3mnI3liqHmj4/ov7AKLy8gQHRhZ3M6IG5hbWU95qCH562+5ZCN56ewOyBkZXNjcmlwdGlvbj3moIfnrb7mj4/ov7AKLy8gQGNvbXBvbmVudHMuc2VjdXJpdHlTY2hlbWVzOiB8LQovLyAgZmllbGQ96aqM6K+B5a2X5q6177yM6Lev55Sx5rOo6YeK5Lit5L2/55SoOwovLyAgdHlwZT3pqozor4HnsbvlnovvvIzlgLzljIXmi6xhcGlLZXksaHR0cCxvYXV0aDI7Ci8vICBzY2hlbWU9aHR0cOexu+Wei+W/heS8oO+8jOS+i+WmgmJhc2ljLGJlYXJlcjsKLy8gIGJlYXJlckZvcm1hdD1zY2hlbWXkuLpiZWFyZXLml7blj6/kvKDvvIznlKjkuo7mj5DnpLrlrqLmiLfnq6/miYDkvb/nlKjnmoRiZWFyZXIgdG9rZW7nmoTmoLzlvI/vvIzkvovlpoJKV1Q7Ci8vICBpbj1hcGlLZXnml7blv4XkvKDvvIzlgLzljIXmi6xxdWVyeSxoZWFkZXIsY29va2llOwovLyAgbmFtZT1hcGlLZXnml7blv4XkvKDvvIznlKjkuo4gaGVhZGVy44CBIHF1ZXJ5IOaIliBjb29raWUg55qE5Y+C5pWw5ZCN5a2XOwovLyAgZmxvd3M9anNvbuWtl+espuS4su+8jOaWh+aho+ivtOaYjuivpuinge+8mmh0dHBzOi8vb3BlbmFwaS5hcGlmb3guY24vI29hdXRoLWZsb3dzLSVFNSVBRiVCOSVFOCVCMSVBMQpwYWNrYWdlIG1haW4Kfn5+CgojIyMjIGRvY3MuZ28g5paH5qGj5Lit5a6a5LmJ5YWs5YWx55qEIHJvdXRlLmdvIOS4reeahOWxnuaAp++8jOWSjCByb3V0ZS5nbyDnmoTms6jph4rkuIDoh7TvvIzlnKhA5ZCO6Z2i5re75YqgZ2xvYmFsLgotIEBnbG9iYWwucmVzICDlhazlhbHov5Tlm57vvIzlkozot6/nlLHnmoTkuIDoh7QKLSBAZ2xvYmFsLnBhcmFtICDlhazlhbHlj4LmlbDvvIzlkozot6/nlLHnmoTkuIDoh7QKfn5+Z28KLy8gQGdsb2JhbC5yZXM6IHN0YXR1cz01MDA7IGluPWFwcGxpY2F0aW9uL2pzb247IGNvbnRlbnQ95pyN5Yqh5Zmo6ZO+5o6l5aSx6LSlOyBkZXNjPeezu+e7n+WGhemDqOmUmeivrwpwYWNrYWdlIG1haW4Kfn5+CgojIyMgcm91dGUuZ2/mlofmoaPms6jph4ror7TmmI4KLSBA5byA5aeL55qE5qCH6aKY77yM55SoIDsg5YiG5Ymy77yM5YiG5Ymy5oiQ5a+56LGh44CC5q+P5Liq5a+56LGh55SoID0g5YiG5Ymy77yM5YiG5Ymy5oiQ6ZSu77yM5YC877yM5aaC5p6c5LiN5a2Y5ZyoID0g5aW95YiZ6KGo56S65YC85piv5a2X56ym5LiyIHRydWUKCi0g5LiK6Z2i5YiG5Ymy55qE5a+56LGh5Lit55qE5YC877yM55SoICwg5YiG5Ymy5oiQ5pWw57uECn5+fmdvCnBhY2thZ2UgbWFpbgoKLy8gQHN1bW1hcnk6IOi3r+eUseaAu+e7kwovLyBAZGVzY3JpcHRpb246IOi3r+eUseaPj+i/sAovLyBAdGFnczog5qCH562+57uE77yM55SoO+WIhuWJsu+8jOS+i+Wmgu+8mnVzZXI7YWRtaW4KLy8gQHBhcmFtOiDlj4LmlbDvvIzlpJrooYzliJnlpJrkuKrlj4LmlbDvvIzor6bnu4bor7TmmI7op4HkuIvpnaJAcGFyYW3or7TmmI4KLy8gQGJvZHk6IOS8oOmAkuWGheWuue+8jOivpue7huivtOaYjuingeS4i+mdokBib2R56K+05piOCi8vIEByZXM6IOi+k+WHuuWGheWuue+8jOivpuino+ivtOaYjuingeS4i+mdokByZXPor7TmmI4KLy8gQHNlY3VyaXR5OiB8LQovLyAg6aqM6K+B5YC877yM5L2/55SoIEBjb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcyDkuK3lrprkuYnnmoQgZmllbGQg55qE5YC8Ci8vICDkvovlpoLvvJp0b2tlbjtwcm9qZWN0SUQ9d3JpdGU6cGV0cyxyZWFkOnBldHMg6KGo56S6IOWtmOWcqHRva2Vu6aqM6K+B77yMcHJvamVjdElE6aqM6K+B5pWw57uE5pivW3dyaXRlOnBldHMscmVhZDpwZXRzXQovLyBAcm91dGVyOiB8LQovLyAgbWV0aG9kPWdldCxwdXQgLHBvc3QsZGVsZXRlLG9wdGlvbnMsaGVhZCxwYXRjaOS4reeahOWAvDsKLy8gIHBhdGg96Lev55Sx5Zyw5Z2A77yM5L6L5aaC77yaL3VzZXIve2lkfeOAguWFtuS4rXtpZH3ooajnpLpAcGFyYW3kuK3nmoRpbuS4unBhdGjml7bnmoTlhbPogZQKZnVuYyBMb2dpbigpIHsKfQp+fn4KIyMjIyBAcGFyYW3or7TmmI4K5a6e5L6L77yaQHBhcmFtOiBpbj1wYXRoOyBuYW1lPWlkOyB0eXBlPWludGVnZXIoaW50NjQpOyByZXF1aXJlZDsgZGVzYz3kuLvplK4KLSBpbiDooajnpLrlj4LmlbDnsbvlnovvvIzlgLzmnIlxdWVyeSxoZWFkZXIscGF0aCxjb29raWUKLSBuYW1lIOihqOekuuWPguaVsOWQjeensAotIHR5cGUg6KGo56S65Y+C5pWw57G75Z6L77yM5YC85pyJaW50ZWdlcixudW1iZXIsc3RyaW5nLGJvb2xlYW4KLSByZXF1aXJlZCDmmK/lkKblv4XkvKDlj4LmlbDvvIzlrp7kvovvvJpyZXF1aXJlZCDmiJbogIUgcmVxdWlyZWQ9dHJ1ZQotIGRlc2Mg5Y+C5pWw5o+P6L+wCi0gbWluaW11bSB0eXBl57G75Z6L5pivaW50ZWdlcuaXtueahOacgOWwj+WAvAotIG1heGltdW0gdHlwZeexu+Wei+aYr2ludGVnZXLml7bnmoTmnIDlpKflgLwKLSBtaW5MZW5ndGggdHlwZeexu+Wei+aYr3N0cmluZ+aXtueahOacgOWwj+mVv+W6pgotIG1heExlbmd0aCB0eXBl57G75Z6L5pivc3RyaW5n5pe255qE5pyA5aSn6ZW/5bqmCi0gZXhhbXBsZSDlrp7kvovlgLwKLSBkZWZhdWx0IOm7mOiupOWAvAotIGVudW0g5Y+C5pWw5p6a5Li+77yM5pWw57uE77yM55SoLOWIhuWJsu+8jOS+i+Wmgu+8mmVudW09dXNlcixuYW1lCiMjIyMgQGJvZHnor7TmmI4K5a6e5L6L77yaQGJvZHk6IGluPWFwcGxpY2F0aW9uL2pzb247IGNvbnRlbnQ9dGVzdC9wcm9qZWN0L2FwcC9yZXFzLkxvZ2luQWRtaW5SZXE7IGRlc2M955So5oi35L+h5oGvCi0gaW4g5Lyg5YWl57G75Z6L77yM5YC85pyJIGFwcGxpY2F0aW9uL2pzb24sIGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkCi0gY29udGVudCDkvKDlhaXlhoXlrrnvvIzku6Uu5YiG5Ymy77yM5YmN57yA5Li6Z28ubW9k5p+l5om+55qE5ZG95ZCN56m66Ze05ZCN56ewKOaUr+aMgWdpdGh1Yuetie+8jOW/hemhu+W8leWFpSnvvIzlkI7nvIDkuLrnu5PmnoTkvZPlkI3np7DjgILliY3nvIDlj6/ku6XmmK/nu5PmnoTkvZNwYWNrYWdl55qE5ZCN56ew77yM6L+Z56eN5oOF5Ya15b+F6aG75LiN6IO96YeN5aSNCi0gZGVzYyDkvKDlhaXlhoXlrrnmj4/ov7AKIyMjIyBAcmVz6K+05piOCuWunuS+i++8mkByZXM6IHN0YXR1cz0yMDA7IGluPWFwcGxpY2F0aW9uL2pzb247IGNvbnRlbnQ9dGVzdC9wcm9qZWN0L2FwcC9yZXNwcy5BZG1pbkxvZ2luUmVzcDsgZGVzYz3ov5Tlm57kv6Hmga8KLSBzdGF0dXMgaW50ZWdlcuexu+Wei++8jOacjeWKoeWZqOeahOeKtuaAgeeggQotIGluIOi/lOWbnuexu+Wei++8jOWAvOaciSBhcHBsaWNhdGlvbi9qc29uLCBhcHBsaWNhdGlvbi94bWwKLSBjb250ZW50IOi/lOWbnuWGheWuue+8jOS7pS7liIblibLvvIzliY3nvIDkuLpnby5tb2Tmn6Xmib7nmoTlkb3lkI3nqbrpl7TlkI3np7Ao5pSv5oyBZ2l0aHVi562J77yM5b+F6aG75byV5YWlKe+8jOWQjue8gOS4uue7k+aehOS9k+WQjeensOOAguWJjee8gOWPr+S7peaYr+e7k+aehOS9k3BhY2thZ2XnmoTlkI3np7DvvIzov5nnp43mg4XlhrXlv4XpobvkuI3og73ph43lpI0KLSBkZXNjIOi/lOWbnuWGheWuueaPj+i/sAoKIyMjIOe7k+aehOS9k+azqOmHiuivtOaYjgp+fn5nbwpwYWNrYWdlIG1haW4KCi8vIExvZ2luUmVxdWVzdCDnu5PmnoTkvZPms6jph4oKdHlwZSBMb2dpblJlcXVlc3Qgc3RydWN0IHsKICAgIEFjY291bnQgc3RyaW5nIGBqc29uOiJhY2NvdW50IiB5YW1sOiJhY2NvdW50IiByZXF1aXJlZDoidHJ1ZSIgbWluaW11bToiMTAiYCAvLyDotKblj7fms6jph4oKCVBhc3N3b3JkIHN0cmluZyBganNvbjoicGFzc3dvcmQiIHlhbWw6InBhc3N3b3JkIiBvcGVuYXBpOiJyZXF1aXJlZDttaW5pbXVtPTEwImAgLy8g5a+G56CB5rOo6YeKCn0Kfn5+CgojIyMjIOe7k+aehOS9k+eahOagh+etvuWPr+S7peS9v+eUqCBtaW5pbXVtOiIxMCIg5ZKMIG9wZW5hcGk6Im1pbmltdW09MTAiIOi/meS4pOenjeaWueW8j++8jOWtl+auteaciQotIG1pbmltdW0gdHlwZeexu+Wei+aYr2ludGVnZXLml7bnmoTmnIDlsI/lgLwKLSBtYXhpbXVtIHR5cGXnsbvlnovmmK9pbnRlZ2Vy5pe255qE5pyA5aSn5YC8Ci0gbWluTGVuZ3RoIHR5cGXnsbvlnovmmK9zdHJpbmfml7bnmoTmnIDlsI/plb/luqYKLSBtYXhMZW5ndGggdHlwZeexu+Wei+aYr3N0cmluZ+aXtueahOacgOWkp+mVv+W6pgotIG1pbkl0ZW1zIHR5cGXnsbvlnovmmK9zbGljZeaXtueahOacgOWwj+mVv+W6pgotIG1heEl0ZW1zIHR5cGXnsbvlnovmmK9zbGljZeaXtueahOacgOWkp+mVv+W6pgotIGV4YW1wbGUg5a6e5L6L5YC8Ci0gZGVmYXVsdCDpu5jorqTlgLwKLSBlbnVtIOmZkOWumuWAvAotIHJlcXVpcmVkIOaYr+WQpuW/heS8oOWPguaVsAotIHR5cGUg57G75Z6L6YeN5a6a5LmJCgojIyDmlofku7bkuIrkvKAK5Y+q6ZyA6KaB5bCGaW7orr7nva7kuLogbXVsdGlwYXJ0L2Zvcm0tZGF0Ye+8jCDnsbvlnovorr7nva7kuLogYmFzZTY0IOaIluiAhSBiaW5hcnkg5Y2z5Y+vCgojIyDlhbPkuo4oYWJvdXQpCueBteaEn+S4uiBnaXRodWIuY29tL3N3YWdnby9zd2FnIOeahOmhueebru+8jOWboOS4uui/meS4qumhueebruaXoOazleino+aekCBvcGVuYXBpMyDnmoTmlofmoaPvvIzlm6DmraToh6rlt7Hlrp7njrDkuobkuIDlpZcgb3BlbmFwaTMg55qE5paH5qGj55Sf5oiQ readmeEtag: '"4297397ea091eb818b3f58d4a10c9e7749287206"' readmeLastModified: Fri, 17 May 2024 09:30:16 GMT repositoryId: 753528268 description: 使用ast语法解析器解析注解,根据openapi3语法生成 created: '2024-02-06T09:55:54Z' updated: '2024-05-17T09:30:24Z' language: Go archived: false stars: 2 watchers: 1 forks: 0 owner: goodluckxu-go logo: https://avatars.githubusercontent.com/u/110141236?v=4 license: MIT repoEtag: '"c07e97f2a9e7dd474f7a3a785d46953b341cecacd70c4ff3334d0cfd2716e2db"' repoLastModified: Fri, 17 May 2024 09:30:24 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/sami-akkawi/symfony-open-api-boilerplate v3: true repositoryMetadata: base64Readme: >- IyBXSVA6IFN5bWZvbnkgKDUuMi41KSBPcGVuQXBpICgzLjAuMykgQm9pbGVycGxhdGUKWyFbQmFkZ2U6IE1JVCBMaWNlbnNlXShwdWJsaWMvYXNzZXRzL2ltYWdlcy9taXQtbGljZW5zZS1iYWRnZS5zdmcpXShMSUNFTlNFKQpbIVtCYWRnZTogYWdpbGUuYWtrYXdpLmNoXShwdWJsaWMvYXNzZXRzL2ltYWdlcy9hZ2lsZS1ha2thd2ktY2gtYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9hZ2lsZS5ha2thd2kuY2gvYnAvNWVjMGI1N2ExZWU3ZikKCioqIE5PVElDRSAqKiBQbGVhc2Ugbm90ZSB0aGlzIGlzIHN0aWxsIGEgd29yayBpbiBwcm9ncmVzcywgYnV0IGlmIHlvdSBmaW5kIGFueXRoaW5nIG1pc3Npbmcgb3Igbm90IGNvcnJlY3QsIHBsZWFzZSBkbwogbm90IGhlc2l0YXRlIHRvIGNvbnRhY3QgbWUuCiAKIyMgSW50cm9kdWN0aW9uICMjCgpUaGlzIHByb2plY3QgaXMgYW4gYXR0ZW1wdCB0byBtYWtlIEFQSSBEb2N1bWVudGF0aW9uIGVhc2llciBhbmQgZXJyb3IgZnJlZS4gUmVxdWVzdCBwYXJhbWV0ZXJzIHNoYWxsIGJlIHZhbGlkYXRlZAogd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgcmVzcG9uc2VzIGFzIHdlbGwuIFRoaXMgd2F5LCBkb2N1bWVudGF0aW9uIGlzIGtlcHQgdXAtdG8tZGF0ZSBhbmQgcmVzcG9uc2VzIGFyZQogZ3VhcmFudGVlZCB0byBsb29rIGxpa2UgdGhlIGRvY3VtZW50YXRpb24uIFRoaXMgd2lsbCBkZWNyZWFzZSBmcnVzdHJhdGlvbiBmcm9tIHRoZSBmcm9udGVuZCBhbmQgaW5jcmVhc2UKIHJlbGlhYmlsaXR5IGluIHRoZSBiYWNrZW5kLgogClRoZSBBUEkgRG9jdW1lbnRhdGlvbiBmb2xsb3dzIHRoZSBbT3BlbkFQSSBJbml0aWF0aXZlXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKSBhbmQgaXRzIGxhdGVzdCBbU3BlY2lmaWNhdGlvbnMKICh2My4wLjMpXShodHRwOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMyku readmeEtag: '"0e5aef6de7b68cc0becc9de5833a172ff494d224"' readmeLastModified: Mon, 17 Jun 2024 05:26:04 GMT repositoryId: 263941472 description: >- An attempt to provide an easy to use boilerplate for API documentation using OpenApi and Symfony. created: '2020-05-14T14:42:21Z' updated: '2024-06-17T05:26:09Z' language: PHP archived: false stars: 2 watchers: 1 forks: 0 owner: sami-akkawi logo: https://avatars.githubusercontent.com/u/45228655?v=4 license: MIT repoEtag: '"f699da45918b1a3560935b1d78225c4c63887263f621fbcc5d8b46d0d1631084"' repoLastModified: Mon, 17 Jun 2024 05:26:09 GMT foundInMaster: true category: Parsers id: 80ddb274ded0c22f6ce8260664a579c8 oldLocations: - https://github.com/SamiAkkawi/symfony-open-api-boilerplate - source: openapi3 tags repository: https://github.com/mneiferbag/java-spring-boot v3: true id: cca0fb34e191210e1afb499f6117f02b repositoryMetadata: base64Readme: >- IyBKYXZhIFNwcmluZyBFeGFtcGxlCgpMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBmaWxlIFtMSUNFTlNFXSguL0xJQ0VOU0UpLgoKSmF2YSBbU3ByaW5nXShodHRwczovL3NwcmluZy5pby8pIGV4YW1wbGUuIEV4YW1wbGUgaW5jbHVkZXMgY29kZSB3cml0dGVuIGluIEphdmEuCgpbIVtDb2RlUUxdKGh0dHBzOi8vZ2l0aHViLmNvbS9tbmVpZmVyYmFnL2phdmEtc3ByaW5nLWJvb3QvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLWFuYWx5c2lzLnltbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vbW5laWZlcmJhZy9qYXZhLXNwcmluZy1ib290L2FjdGlvbnMvd29ya2Zsb3dzL2NvZGVxbC1hbmFseXNpcy55bWwpClshW0phdmEgQ0kgd2l0aCBHcmFkbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9tbmVpZmVyYmFnL2phdmEtc3ByaW5nLWJvb3QvYWN0aW9ucy93b3JrZmxvd3MvZ3JhZGxlLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbW5laWZlcmJhZy9qYXZhLXNwcmluZy1ib290L2FjdGlvbnMvd29ya2Zsb3dzL2dyYWRsZS55bWwpCgojIyBTcHJpbmcgQm9vdAoKVGhlIFN3YWdnZXIgVUkgcGFnZSBpcyBhdmFpbGFibGUgYXQKCltodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sXShodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sKQoKYW5kIHRoZSBPcGVuQVBJIGRlc2NyaXB0aW9uIGlzIGF2YWlsYWJsZSBhdAoKW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC92My9hcGktZG9jc10oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3YzL2FwaS1kb2NzKQoKIyMgR3JhZGxlCgpSdW4gYGdyYWRsZSB3cmFwcGVyIC0tZ3JhZGxlLXZlcnNpb24gNy40LjJgIHRvIHVwZGF0ZSB0aGUgcHJvamVjdCB0byA3LjQuMi4KCiMjIExpbmtzCgoqIE9wZW5BUEkKICAqIFtPcGVuQVBJIDMgTGlicmFyeSBmb3IgU3ByaW5nIEJvb3RdKGh0dHBzOi8vc3ByaW5nZG9jLm9yZy8pCiAgKiBbT3BlbkFQSSBJbml0aWF0aXZlIChPQUkpXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKQogICogW09wZW5BUEkgU3BlYyAzLjAuMV0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4xKQogICogW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikKICAqIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cDovL2VkaXRvci5zd2FnZ2VyLmlvLykKICAqIFtTd2FnZ2VyIFZhbGlkYXRvcl0oaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby8pCiogVGVzdGluZwogICogW0Nvcm51dHVtL3RjYXNlc10oaHR0cHM6Ly9naXRodWIuY29tL0Nvcm51dHVtL3RjYXNlcykgLSBBIG1vZGVsLWJhc2VkIHRlc3QgY2FzZSBnZW5lcmF0b3IKICAqIFtSRVNUIEFzc3VyZWRdKGh0dHA6Ly9yZXN0LWFzc3VyZWQuaW8vKSAtIFRlc3RpbmcgYW5kIHZhbGlkYXRpbmcgUkVTVCBzZXJ2aWNlcyBpbiBKYXZhCiAgKiBbVGVzdGluZyB0aGUgV2ViIExheWVyXShodHRwczovL3NwcmluZy5pby9ndWlkZXMvZ3MvdGVzdGluZy13ZWIvKSAtIFNwcmluZyBHdWlkZQoqIEdlbmVyYWwKICAqIFtHaXRIdWIgQWN0aW9uIFNldHVwIEphdmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY3Rpb25zL3NldHVwLWphdmEpIGZvciB1c2Ugd2l0aCBHaXRIdWIgQ29kZVFMCiAgKiBbR3JhZGxlIEJ1aWxkIFRvb2xdKGh0dHBzOi8vZ3JhZGxlLm9yZy8pCiAgKiBbR3JldHR5XShodHRwczovL2dyZXR0eS1ncmFkbGUtcGx1Z2luLmdpdGh1Yi5pby9ncmV0dHktZG9jL2Fib3V0Lmh0bWwpIC0gYSBmZWF0dXJlLXJpY2ggZ3JhZGxlIHBsdWdpbiBmb3IgcnVubmluZyB3ZWItYXBwcyBvbiBlbWJlZGRlZCBzZXJ2bGV0IGNvbnRhaW5lcnMKICAqIFtKYXZhIERldmVsb3BtZW50IEV4YW1wbGVzXShodHRwczovL2dpdGh1Yi5jb20vbW5laWZlcmJhZy9qYXZhLWV4YW1wbGVzKQoKIyMgVGFza3MKCi0gQWRkIEpldHR5IGV4ZWN1dGlvbiBpbiBjaGVjayB0YXNrIGJlZm9yZSBpbnRlZ3JhdGlvbiB0ZXN0cyBhcmUgcnVuCi0gQ29tcGFyZSBnZW5lcmF0ZWQgb3BlbmFwaS55YW1sIGFuZCBhcGlfdjMueWFtbAotIEdyYWRsZSBpbnRlZ3JhdGlvbiB0ZXN0cwogIC0gaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvY3VycmVudC91c2VyZ3VpZGUvbWlncmF0aW5nX2Zyb21fbWF2ZW4uaHRtbCNtaWdtdm46YnVpbGRfbGlmZWN5Y2xlCiAgLSBodHRwczovL2RvY3MuZ3JhZGxlLm9yZy9jdXJyZW50L3VzZXJndWlkZS9taWdyYXRpbmdfZnJvbV9tYXZlbi5odG1sI21pZ212bjppbnRlZ3JhdGlvbl90ZXN0cwogIC0gaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvY3VycmVudC91c2VyZ3VpZGUvamF2YV90ZXN0aW5nLmh0bWwjc2VjOmNvbmZpZ3VyaW5nX2phdmFfaW50ZWdyYXRpb25fdGVzdHMgCg== readmeEtag: '"b556bbadceb978d841e8c4d16f36f05f5849b719"' readmeLastModified: Thu, 08 Aug 2024 11:34:37 GMT repositoryId: 359082805 description: Java Spring development example. created: '2021-04-18T08:09:17Z' updated: '2024-08-08T11:34:42Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: mneiferbag logo: https://avatars.githubusercontent.com/u/16717541?v=4 license: MIT repoEtag: '"2f9275e5fa5458fb0581d86b3b1799eba22974a98bb440467062598555eb0c1d"' repoLastModified: Thu, 08 Aug 2024 11:34:42 GMT category: - SDK - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/open-banking/scheduledpayments v3: true repositoryMetadata: base64Readme: >- IyBzY2hlZHVsZWRQYXltZW50cwpPcGVuIEJhbmtpbmcgU2NoZWR1bGVkIFBheW1lbnQgQVBJIGJ1aWx0IG9uIHRvcCBvZiBsaWdodC00ago= readmeEtag: '"00da6289de97d9cc67418c9bda5adee8aa563088"' readmeLastModified: Thu, 25 Jul 2024 20:09:54 GMT repositoryId: 235866546 description: Open Banking Scheduled Payment API built on top of light-4j created: '2020-01-23T19:09:28Z' updated: '2024-09-04T18:31:46Z' language: Java archived: false stars: 2 watchers: 2 forks: 0 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"7b6595533f0d52ce57d4812754a60375a71b882c3e6370555e2453170ee2e7f3"' repoLastModified: Wed, 04 Sep 2024 18:31:46 GMT foundInMaster: true category: Server id: ec401d778fc36b72fe55feae3729d030 - source: openapi3 tags repository: https://github.com/barnuri/openapi-toolkit v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXRvb2xraXQKb3BlbmFwaS10b29sa2l0IGlzIGFuIG9wZW4tc291cmNlIHRvb2wgZGVzaWduZWQgdG8gc3RyZWFtbGluZSB0aGUgaW50ZWdyYXRpb24gb2YgT3BlbkFQSSAoZm9ybWVybHkga25vd24gYXMgU3dhZ2dlcikgc3BlY2lmaWNhdGlvbnMgaW50byB5b3VyIGRldmVsb3BtZW50IHdvcmtmbG93LiBCeSB0YWtpbmcgYW4gT3BlbkFQSS9Td2FnZ2VyIGZpbGUgYXMgaW5wdXQsIHRoZSBPcGVuQVBJIFRvb2xraXQgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgc2VydmVyIGFuZCBjbGllbnQgY29kZSwgZW5hYmxpbmcgc2VhbWxlc3MgaW50ZWdyYXRpb24gb2YgQVBJcy4gVGhpcyBhdXRvbWF0aW9uIGFjY2VsZXJhdGVzIGRldmVsb3BtZW50IHByb2Nlc3NlcywgZW5zdXJlcyBjb25zaXN0ZW5jeSBhY3Jvc3MgZGlmZmVyZW50IHBsYXRmb3JtcywgYW5kIHJlZHVjZXMgdGhlIHJpc2sgb2YgbWFudWFsIGVycm9ycy4gV2hldGhlciB5b3UncmUgYnVpbGRpbmcgYSBuZXcgc2VydmljZSBvciBpbnRlZ3JhdGluZyB3aXRoIGV4aXN0aW5nIEFQSXMsIE9wZW5BUEkgVG9vbGtpdCBzaW1wbGlmaWVzIHRoZSBwcm9jZXNzIGJ5IHByb3ZpZGluZyByZWFkeS10by11c2UgY29kZSB0YWlsb3JlZCB0byB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMuCgojIEluc3RhbGwKClshW1J1biBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2Jhcm51cmkvb3BlbmFwaS10b29sa2l0L2FjdGlvbnMvd29ya2Zsb3dzL3J1blRlc3RzLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2Jhcm51cmkvb3BlbmFwaS10b29sa2l0L2FjdGlvbnMvd29ya2Zsb3dzL3J1blRlc3RzLnlhbWwpIFshW0NyZWF0ZSBUYWcgQW5kIFJlbGVhc2UgQW5kIFB1Ymxpc2ggVG8gTlBNXShodHRwczovL2dpdGh1Yi5jb20vYmFybnVyaS9vcGVuYXBpLXRvb2xraXQvYWN0aW9ucy93b3JrZmxvd3MvY3JlYXRlVGFnQW5kUmVsZWFzZUFuZFB1Ymxpc2gueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYmFybnVyaS9vcGVuYXBpLXRvb2xraXQvYWN0aW9ucy93b3JrZmxvd3MvY3JlYXRlVGFnQW5kUmVsZWFzZUFuZFB1Ymxpc2gueWFtbCkKCltOUE1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktdG9vbGtpdCkKCmBgYGJhc2gKbnBtIGkgb3BlbmFwaS10b29sa2l0CmBgYAoKIyBBdXRvIEdlbmVyYXRlIENsaWVudC9TZXJ2ZXIgKENsaSkKCmBgYGJhc2gKbnBtIGkgLWcgb3BlbmFwaS10b29sa2l0CgojIGV4YW1wbGUKb3BlbmFwaS10b29sa2l0IC1pIGh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbiAtZyB0eXBlc2NyaXB0LWF4aW9zIC1vIC4vc3JjL3NlcnZpY2VzL3BldFN0b3JlIC0tbW9kZWxOYW1lUHJlZml4IE15IC0tbW9kZWxOYW1lU3VmZml4IC5kdG8KCiMgc2hvdyBhbGwgb3B0aW9ucwpvcGVuYXBpLXRvb2xraXQgLWgKCiMgd2l0aCBkb2NrZXIKZG9ja2VyIHJ1biAtLXJtIC0tbmFtZSBvcGVuYXBpLXRvb2xraXQgLXYgIiQocHdkKS9vdXRwdXQ6L291dHB1dCIgLWUgQ0xJX1BBUkFNUz0iLWkgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uIC1nIHR5cGVzY3JpcHQtYXhpb3MgLS1tb2RlbE5hbWVQcmVmaXggTXkgLS1tb2RlbE5hbWVTdWZmaXggLmR0byIgYmFybnVyaS9vcGVuYXBpLXRvb2xraXQKYGBgCgojIEF1dG8gR2VuZXJhdGUgQ2xpZW50L1NlcnZlciAoSlNcVFMpCgpgYGBqcwpjb25zdCB7IG11bHRpcGxlR2VuZXJhdGUsIGdlbmVyYXRlIH0gPSByZXF1aXJlKCdvcGVuYXBpLXRvb2xraXQnKTsKCi8vIHVzZSBtdWx0aXBsZUdlbmVyYXRlIHdoZW4geW91IHdhbnQgbXVsdGlwbGUgb3V0cHV0cwooYXN5bmMgKCkgPT4gewogICAgY29uc3Qgc2hhcmVkQ29uZmlnID0geyBkZWJ1Z0xvZ3M6IGZhbHNlIH07CiAgICBhd2FpdCBtdWx0aXBsZUdlbmVyYXRlKGBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb25gLCBbCiAgICAgICAgeyAuLi5zaGFyZWRDb25maWcsIGdlbmVyYXRvcjogJ3R5cGVzY3JpcHQtcmVhY3QtcXVlcnknLCBvdXRwdXQ6IGAuL3R5cGVzY3JpcHQtcmVhY3QtcXVlcnkvc3JjYCB9LAogICAgICAgIHsgLi4uc2hhcmVkQ29uZmlnLCBnZW5lcmF0b3I6ICd0eXBlc2NyaXB0LWF4aW9zJywgb3V0cHV0OiBgLi90eXBlc2NyaXB0LWF4aW9zL3NyY2AgfSwKICAgICAgICB7IC4uLnNoYXJlZENvbmZpZywgZ2VuZXJhdG9yOiAndHlwZXNjcmlwdC1heGlvcycsIG91dHB1dDogYC4vdHlwZXNjcmlwdC1tb2RlbHMvc3JjYCwgbW9kZWxzT25seTogdHJ1ZSB9LAogICAgICAgIHsgLi4uc2hhcmVkQ29uZmlnLCBnZW5lcmF0b3I6ICdjIycsIG91dHB1dDogYC4vYyMvc3JjYCwgfSwKICAgICAgICB7IC4uLnNoYXJlZENvbmZpZywgZ2VuZXJhdG9yOiAnZ28nLCBvdXRwdXQ6IGAuL2dvL3NyY2AgfSwKICAgICAgICB7IC4uLnNoYXJlZENvbmZpZywgZ2VuZXJhdG9yOiAncHl0aG9uJywgb3V0cHV0OiBgLi9weXRob24vc3JjYCB9LAogICAgXSk7Cn0pKCk7CgovLyB1c2UgZ2VuZXJhdGUgd2hlbiB5b3Ugd2FudCBvbmx5IG9uZSBvdXRwdXQKKGFzeW5jICgpID0+IHsKICAgIGF3YWl0IGdlbmVyYXRlKHsgcGF0aE9yVXJsOiBgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uYCwgZ2VuZXJhdG9yOiAndHlwZXNjcmlwdC1yZWFjdC1xdWVyeScsIG91dHB1dDogYC4vdHlwZXNjcmlwdC1yZWFjdC1xdWVyeS9zcmNgIH0pOwp9KSgpOwpgYGAKCiMjIyBIZWxwIG91dHB1dAoKYGBgdGV4dApvcGVuYXBpLXRvb2xraXQgPGNvbW1hbmQ+LCBkZWZhdWx0IGNvbW1hbmQgJ2dlbmVyYXRlJwoKQ29tbWFuZHM6CiAgZ2VuZXJhdGUgICAgYXV0byBnZW5lcmF0ZSBwcm94eSBjbGllbnQgZnJvbSBzd2FnZ2VyIGZpbGUgICAgICAgICAgICAgW2RlZmF1bHRdCiAgZ2VuZXJhdG9ycyAgZ2VuZXJhdG9ycyBsaXN0CiAgY29tcGxldGlvbiAgZ2VuZXJhdGUgY29tcGxldGlvbiBzY3JpcHQKCk9wdGlvbnM6CiAgICAgIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBTaG93IHZlcnNpb24gbnVtYmVyICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBTaG93IGhlbHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dCiAgLWksIC0tcGF0aE9yVXJsICAgICAgICAgICAgICBwYXRoIG9yIHVybCBmb3Igc3dhZ2dlciBmaWxlICAgICAgICAgICBbcmVxdWlyZWRdCiAgLW8sIC0tb3V0cHV0ICAgICAgICAgICAgICAgICBvdXRwdXQgcGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdCiAgLWcsIC0tZ2VuZXJhdG9yICAgICAgICAgICAgICBnZW5lcmF0b3IgbmFtZSAgICAgIFtkZWZhdWx0OiAidHlwZXNjcmlwdC1heGlvcyJdCiAgLXQsIC0tdHlwZSAgICAgICAgICAgICAgICAgICBbY2hvaWNlczogImNsaWVudCIsICJzZXJ2ZXIiXSBbZGVmYXVsdDogImNsaWVudCJdCiAgLW4sIC0tbmFtZXNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0OiAiT3BlbmFwaURlZmluaXRpb25HZW5lcmF0ZSJdCiAgICAgIC0tbW9kZWxzRm9sZGVyTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdDogIm1vZGVscyJdCiAgICAgIC0tbW9kZWxOYW1lUHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdDogIiJdCiAgICAgIC0tbW9kZWxOYW1lU3VmZml4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdDogIiJdCiAgICAgIC0tY29udHJvbGxlcnNGb2xkZXJOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHQ6ICJjb250cm9sbGVycyJdCiAgICAgIC0tY29udHJvbGxlck5hbWVQcmVmaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdDogIiJdCiAgICAgIC0tY29udHJvbGxlck5hbWVTdWZmaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0OiAiQ29udHJvbGxlciJdCmBgYAoKIyMgW1ZzY29kZSBQbHVnaW4gRm9yIEF1dG8gR2VuZXJhdGVdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1CYXIuZ2VuZXJhdG9yLWZyb20tc3dhZ2dlcikKCgojIFtFeGFtcGxlc10oLi9leGFtcGxlcy9SZWFkTWUubWQpCg== readmeEtag: '"5319505243eb822b67223b81f685660e7c5f7bb9"' readmeLastModified: Thu, 15 Aug 2024 07:39:07 GMT repositoryId: 316588971 description: null created: '2020-11-27T19:56:53Z' updated: '2024-08-29T08:25:00Z' language: TypeScript archived: false stars: 2 watchers: 3 forks: 0 owner: barnuri logo: https://avatars.githubusercontent.com/u/13019522?v=4 license: BSD-3-Clause repoEtag: '"da6d0bfd3d10f0a1b165813f85bcbf38b41082cc8604cfa1f9c9d3798c285f1c"' repoLastModified: Thu, 29 Aug 2024 08:25:00 GMT foundInMaster: true category: SDK id: da3fab8072e31f292b75b5e935da466e - source: openapi3 tags repository: https://github.com/alwaysbemark/spring-boot-openapi-generator v3: true repositoryMetadata: base64Readme: >- IyBTcHJpbmcgQm9vdCBBUEkgRmlyc3QgRGVzaWduIFdpdGggT3BlbkFQSSBHZW5lcmF0b3IKVGhpcyBzaG93Y2FzZXMgYSBzaW1wbGlzdGljIFNwcmluZyBCb290IHByb2plY3Qgd2l0aCBhbiBBUEktZmlyc3QgZGVzaWduIHBhdHRlcm4uICAKVGhlIHJlc3QgcGFja2FnZSBwcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBhIFJFU1QgY29udHJvbGxlciB0aGF0IGltcG9ydHMgQVBJIGFuZCBtb2RlbCBmaWxlcyB0aGF0IGdldCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSBzdXBwbGllZCBbT3BlbkFQSSAzIHNwZWMgZmlsZV0oc3JjL21haW4vcmVzb3VyY2VzL2FwaS55bWwpLiAgCkFwaSBhbmQgbW9kZWwgZmlsZXMgd2lsbCBiZSBnZW5lcmF0ZWQgYmVmb3JlIHRoZSBjb21waWxlSmF2YSB0YXNrIG9mIHRoZSBHcmFkbGUgSmF2YSBwbHVnaW4uIFRoZSBwcm9jZXNzUmVzb3VyY2UgZGVwZW5kZW5jeSBpcyB0byBhcHBlYXNlIEdyYWRsZSdzIGNvbXBpbGUgb3B0aW1pc2F0aW9uLiAgCiAgClBsZWFzZSBydW4gYC4vZ3JhZGxldyBjbGVhbiBidWlsZGAgdG8gd2l0bmVzcyB0aGUgbWFnaWMuCgo= readmeEtag: '"f87944e30aaa9634e4348b62623ec734da1a0bfa"' readmeLastModified: Fri, 27 Aug 2021 07:58:54 GMT repositoryId: 397819522 description: >- This showcases a simplistic Spring Boot project with an API-first design pattern created: '2021-08-19T04:49:13Z' updated: '2023-11-20T20:47:59Z' language: Java archived: false stars: 2 watchers: 1 forks: 2 owner: alwaysbemark logo: https://avatars.githubusercontent.com/u/56749912?v=4 license: MIT repoEtag: '"d98c2d48655bb227c69a8098f25a4c03f81c83e03ec9c8a3ca5c6034dc644a40"' repoLastModified: Mon, 20 Nov 2023 20:47:59 GMT foundInMaster: true category: - SDK - Server Implementations id: 40c23804d1858307199a3f4edf5f957a - source: openapi3 tags repository: https://github.com/jonarsli/flask-restapi v3: true repositoryMetadata: base64Readme: >- IyBGbGFzay1SRVNUQVBJCgpbIVtsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2pvbmFyc2xpL2ZsYXNrLXJlc3RhcGkuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2pvbmFyc2xpL2ZsYXNrLXJlc3RhcGkvYmxvYi9tYXN0ZXIvTElDRU5TRSkKWyFbcHlwaV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvZmxhc2stcmVzdGFwaS5zdmcpXShodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL2ZsYXNrLXJlc3RhcGkpCgoKW0ZsYXNrLVJFU1RBUEkgZG9jdW1lbnRdKGh0dHBzOi8vam9uYXJzbGkuZ2l0aHViLmlvL2ZsYXNrLXJlc3RhcGkvKQoKRmxhc2stUkVTVEFQSSBpcyBhbiBleHRlbnNpb24gZm9yIEZsYXNrIHRoYXQgaXMgYSBkYXRhYmFzZS1hZ25vc3RpYyBmcmFtZXdvcmsgbGlicmFyeSBmb3IgY3JlYXRpbmcgUkVTVCBBUElzLiBJdCBpcyBhIGxpZ2h0d2VpZ2h0IGFic3RyYWN0aW9uIHRoYXQgd29ya3Mgd2l0aCB5b3VyIGV4aXN0aW5nIE9STS9saWJyYXJpZXMuCgpJdCB1c2UgcHlkYW50aWMgdG8gdmFsaWRhdGUgYW5kIHNlcmlhbGl6ZSBkYXRhLiBPcGVuQVBJIGRvY3VtZW50IGNhbiBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCB0aHJvdWdoIHRoZSBweXRob24gZGVjb3JhdG9yIGFuZCBpdCBzdXBwb3J0cyBzd2FnZ2VyIHVpIGRpc3BsYXkuCgpQeWRhbnRpYyBhcmUgdXNlZCB0byB2YWxpZGF0ZSBhbmQgc2VyaWFsaXplIHBhcmFtZXRlcnMuIEZvciBkZXRhaWxzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFtweWRhbnRpYyBkb2N1bWVudGF0aW9uXShodHRwczovL3B5ZGFudGljLWRvY3MuaGVscG1hbnVhbC5pby8pLgoKIyMgSW5zdGFsbGF0aW9uCmBgYGJhc2gKcGlwIGluc3RhbGwgZmxhc2stcmVzdGFwaQpgYGAKCiMjIEV4YW1wbGUKYGBgcHl0aG9uCmZyb20gZmxhc2sgaW1wb3J0IEZsYXNrCmZyb20gZmxhc2sudmlld3MgaW1wb3J0IE1ldGhvZFZpZXcKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsCgpmcm9tIGZsYXNrX3Jlc3RhcGkgaW1wb3J0IEFwaSwgUmVxdWVzdFBhcmFtZXRlcnNUeXBlCgphcHAgPSBGbGFzayhfX25hbWVfXykKYXBpID0gQXBpKGFwcCkKCgpjbGFzcyBVc2VyR2V0U3BlYyhCYXNlTW9kZWwpOgogICAgbmFtZTogc3RyCgoKY2xhc3MgVXNlclJlc3BvbnNlU3BlYyhCYXNlTW9kZWwpOgogICAgaWQ6IGludAogICAgbmFtZTogc3RyCgoKY2xhc3MgVXNlcihNZXRob2RWaWV3KToKICAgIEBhcGkucXVlcnkoVXNlckdldFNwZWMpCiAgICBAYXBpLnJlc3BvbnNlKFVzZXJSZXNwb25zZVNwZWMpCiAgICBkZWYgZ2V0KHNlbGYsIHBhcmFtZXRlcnM6IFJlcXVlc3RQYXJhbWV0ZXJzVHlwZSk6CiAgICAgICAgIiIiR2V0IGEgdXNlciBuYW1lIGFuZCBpZCIiIgogICAgICAgIHVzZXJfbmFtZSA9IHBhcmFtZXRlcnMucXVlcnkubmFtZQogICAgICAgIHJldHVybiBVc2VyUmVzcG9uc2VTcGVjKGlkPTEsIG5hbWU9dXNlcl9uYW1lKQoKCmFwcC5hZGRfdXJsX3J1bGUoIi91c2VyIiwgdmlld19mdW5jPVVzZXIuYXNfdmlldygidXNlciIpKQoKYGBgCgojIyBTd2FnZ2VyIEFQSSBkb2NzCk5vdyBnbyB0byBodHRwOi8vbG9jYWxob3N0OjUwMDAvZG9jcwohW10oZG9jcy9pbWFnZXMvZXhhbXBsZS5wbmcp readmeEtag: '"0cdc24c8c4d86ae71888d45895dcd9020b8eca7b"' readmeLastModified: Wed, 03 May 2023 06:24:13 GMT repositoryId: 376734803 description: Flask-RESTAPI is an extension for validate and make OpenAPI docs. created: '2021-06-14T07:07:00Z' updated: '2024-05-09T06:19:21Z' language: Python archived: false stars: 2 watchers: 2 forks: 1 owner: jonarsli logo: https://avatars.githubusercontent.com/u/19283610?v=4 license: MIT repoEtag: '"1395364962a31a868ea88aa3756c5f69ea427bd82413594fc5e57311801f0a91"' repoLastModified: Thu, 09 May 2024 06:19:21 GMT foundInMaster: true category: Server Implementations id: 2c087c6f731350a28eb694b169467349 - source: - openapi3 tags - openapi31 tags repository: https://github.com/swaggerexpert/openapi-path-templating v3: true v3_1: true id: 6c56774d6631897980d8ac8149951454 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXBhdGgtdGVtcGxhdGluZwoKWyFbbnBtdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW5hcGktcGF0aC10ZW1wbGF0aW5nLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktcGF0aC10ZW1wbGF0aW5nKQpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL29wZW5hcGktcGF0aC10ZW1wbGF0aW5nLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktcGF0aC10ZW1wbGF0aW5nKQpbIVtUZXN0IHdvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlcmV4cGVydC9vcGVuYXBpLXBhdGgtdGVtcGxhdGluZy9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlcmV4cGVydC9vcGVuYXBpLXBhdGgtdGVtcGxhdGluZy9hY3Rpb25zKQpbIVtEZXBlbmRhYm90IGVuYWJsZWRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGVwZW5kYWJvdC1lbmFibGVkLWJsdWUuc3ZnKV0oaHR0cHM6Ly9kZXBlbmRhYm90LmNvbS8pClshW3RyeSBvbiBSdW5LaXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdHJ5JTIwb24tUnVuS2l0LWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9ucG0ucnVua2l0LmNvbS9vcGVuYXBpLXBhdGgtdGVtcGxhdGluZykKWyFbVGlkZWxpZnRdKGh0dHBzOi8vdGlkZWxpZnQuY29tL2JhZGdlcy9wYWNrYWdlL25wbS9vcGVuYXBpLXBhdGgtdGVtcGxhdGluZyldKGh0dHBzOi8vdGlkZWxpZnQuY29tL3N1YnNjcmlwdGlvbi9wa2cvbnBtLW9wZW5hcGktcGF0aC10ZW1wbGF0aW5nP3V0bV9zb3VyY2U9bnBtLW9wZW5hcGktcGF0aC10ZW1wbGF0aW5nJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPXJlYWRtZSkKCltQYXRoIFRlbXBsYXRpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNwYXRoVGVtcGxhdGluZykgYWxsb3cgZGVmaW5pbmcgdmFsdWVzIGJhc2VkIG9uIGluZm9ybWF0aW9uIHRoYXQgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSB3aXRoaW4gdGhlIEhUVFAgbWVzc2FnZSBpbiBhbiBhY3R1YWwgQVBJIGNhbGwuClRoaXMgbWVjaGFuaXNtIGlzIHVzZWQgYnkgW1BhdGhzIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3BhdGhzLW9iamVjdCkKb2YgW09wZW5BUEkgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pLgoKYG9wZW5hcGktcGF0aC10ZW1wbGF0aW5nYCBpcyBhICoqcGFyc2VyKiosICoqdmFsaWRhdG9yKiogYW5kICoqcmVzb2x2ZXIqKiBmb3IgT3BlbkFQSSBQYXRoIFRlbXBsYXRpbmcuIEl0IHN1cHBvcnRzClBhdGggVGVtcGxhdGluZyBkZWZpbmVkIGluIGZvbGxvd2luZyBPcGVuQVBJIHNwZWNpZmljYXRpb24gdmVyc2lvbnM6CgotIFtPcGVuQVBJIDIuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzIuMC5tZCNwYXRoVGVtcGxhdGluZykKLSBbT3BlbkFQSSAzLjAuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4wLm1kI3BhdGhUZW1wbGF0aW5nKQotIFtPcGVuQVBJIDMuMC4xXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4wLjEubWQjcGF0aFRlbXBsYXRpbmcpCi0gW09wZW5BUEkgMy4wLjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMi5tZCNwYXRoVGVtcGxhdGluZykKLSBbT3BlbkFQSSAzLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4zLm1kI3BhdGhUZW1wbGF0aW5nKQotIFtPcGVuQVBJIDMuMS4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4xLjAubWQjcGF0aFRlbXBsYXRpbmcpCgoKPHRhYmxlPgogIDx0cj4KICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0ibWlkZGxlIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9jZG4yLmh1YnNwb3QubmV0L2h1YmZzLzQwMDg4Mzgvd2Vic2l0ZS9sb2dvcy9sb2dvc19mb3JfZG93bmxvYWQvVGlkZWxpZnRfcHJpbWFyeS1zaG9ydGhhbmQtbG9nby5wbmciIGFsdD0iVGlkZWxpZnQiIHdpZHRoPSI2MCIgLz4KICAgICAgPC90ZD4KICAgICAgPHRkIHZhbGlnbj0ibWlkZGxlIj4KICAgICAgICA8YSBocmVmPSJodHRwczovL3RpZGVsaWZ0LmNvbS9zdWJzY3JpcHRpb24vcGtnL25wbS1vcGVuYXBpLXBhdGgtdGVtcGxhdGluZz91dG1fc291cmNlPW5wbS1vcGVuYXBpLXBhdGgtdGVtcGxhdGluZyZ1dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9jYW1wYWlnbj1yZWFkbWUiPgogICAgICAgICAgICBHZXQgcHJvZmVzc2lvbmFsbHkgc3VwcG9ydGVkIG9wZW5hcGktcGF0aC10ZW1wbGF0aW5nIHdpdGggVGlkZWxpZnQgU3Vic2NyaXB0aW9uLgogICAgICAgIDwvYT4KICAgICAgPC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKIyMgVGFibGUgb2YgQ29udGVudHMKCi0gW0dldHRpbmcgc3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKICAtIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgLSBbVXNhZ2VdKCN1c2FnZSkKICAgIC0gW0V4dHJhY3Rpb25dKCNleHRyYWN0aW9uKQogICAgLSBbUGFyc2luZ10oI3BhcnNpbmcpCiAgICAtIFtWYWxpZGF0aW9uXSgjdmFsaWRhdGlvbikKICAgIC0gW1Jlc29sdXRpb25dKCNyZXNvbHV0aW9uKQogICAgLSBbR3JhbW1hcl0oI2dyYW1tYXIpCi0gW01vcmUgYWJvdXQgT3BlbkFQSSBQYXRoIFRlbXBsYXRpbmddKCNtb3JlLWFib3V0LW9wZW5hcGktcGF0aC10ZW1wbGF0aW5nKQotIFtMaWNlbnNlXSgjbGljZW5zZSkKCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCiMjIyBJbnN0YWxsYXRpb24KCllvdSBjYW4gaW5zdGFsbCBgb3BlbmFwaS1wYXRoLXRlbXBsYXRpbmdgIHVzaW5nIGBucG1gOgoKYGBgc2gKICQgbnBtIGluc3RhbGwgb3BlbmFwaS1wYXRoLXRlbXBsYXRpbmcKYGBgCgojIyMgVXNhZ2UKCmBvcGVuYXBpLXBhdGgtdGVtcGxhdGluZ2AgY3VycmVudGx5IHN1cHBvcnRzICoqcGFyc2luZyoqLCAqKnZhbGlkYXRpb24qKiBhbmQgKipyZXNvbHV0aW9uKiouCkJvdGggcGFyc2VyIGFuZCB2YWxpZGF0b3IgYXJlIGJhc2VkIG9uIGEgc3VwZXJzZXQgb2YgW0FCTkZdKGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM1MjM0KSAoW1NBQk5GXShodHRwczovL2NzLmdpdGh1Yi5jb20vbGR0aG9tYXMvYXBnLWpzMi9ibG9iL21hc3Rlci9TQUJORi5tZCkpCmFuZCB1c2UgW2FwZy1saXRlXShodHRwczovL2dpdGh1Yi5jb20vbGR0aG9tYXMvYXBnLWxpdGUpIHBhcnNlciBnZW5lcmF0b3IuCgojIyMjIFBhcnNpbmcKClBhcnNpbmcgYSBQYXRoIFRlbXBsYXRpbmcgaXMgYXMgc2ltcGxlIGFzIGltcG9ydGluZyB0aGUgKipwYXJzZSoqIGZ1bmN0aW9uCmFuZCBjYWxsaW5nIGl0LgoKYGBganMKaW1wb3J0IHsgcGFyc2UgfSBmcm9tICdvcGVuYXBpLXBhdGgtdGVtcGxhdGluZyc7Cgpjb25zdCBwYXJzZVJlc3VsdCA9IHBhcnNlKCcvcGV0cy97cGV0SWR9Jyk7CnBhcnNlUmVzdWx0LnJlc3VsdC5zdWNjZXNzOyAvLyA9PiB0cnVlCmBgYAoKKipwYXJzZVJlc3VsdCoqIHZhcmlhYmxlIGhhcyB0aGUgZm9sbG93aW5nIHNoYXBlOgoKYGBgCnsKICByZXN1bHQ6IHsKICAgIHN1Y2Nlc3M6IHRydWUsCiAgICBzdGF0ZTogMTAxLAogICAgc3RhdGVOYW1lOiAnTUFUQ0gnLAogICAgbGVuZ3RoOiAxMywKICAgIG1hdGNoZWQ6IDEzLAogICAgbWF4TWF0Y2hlZDogMTMsCiAgICBtYXhUcmVlRGVwdGg6IDE4LAogICAgbm9kZUhpdHM6IDMyNAogIH0sCiAgYXN0OiBmbmFzdCB7CiAgICBjYWxsYmFja3M6IFsKICAgICAgJ3BhdGgtdGVtcGxhdGUnOiBbRnVuY3Rpb246IHBhdGhUZW1wbGF0ZV0sCiAgICAgIHBhdGg6IFtGdW5jdGlvbjogcGF0aF0sCiAgICAgIHF1ZXJ5OiBbRnVuY3Rpb246IHF1ZXJ5XSwKICAgICAgJ3F1ZXJ5LW1hcmtlcic6IFtGdW5jdGlvbjogcXVlcnlNYXJrZXJdLAogICAgICBmcmFnbWVudDogW0Z1bmN0aW9uOiBmcmFnbWVudF0sCiAgICAgICdmcmFnbWVudC1tYXJrZXInOiBbRnVuY3Rpb246IGZyYWdtZW50TWFya2VyXSwKICAgICAgc2xhc2g6IFtGdW5jdGlvbjogc2xhc2hdLAogICAgICAncGF0aC1saXRlcmFsJzogW0Z1bmN0aW9uOiBwYXRoTGl0ZXJhbF0sCiAgICAgICd0ZW1wbGF0ZS1leHByZXNzaW9uJzogW0Z1bmN0aW9uOiB0ZW1wbGF0ZUV4cHJlc3Npb25dLAogICAgICAndGVtcGxhdGUtZXhwcmVzc2lvbi1wYXJhbS1uYW1lJzogW0Z1bmN0aW9uOiB0ZW1wbGF0ZUV4cHJlc3Npb25QYXJhbU5hbWVdCiAgICBdLAogICAgaW5pdDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHJ1bGVEZWZpbmVkOiBbRnVuY3Rpb24gKGFub255bW91cyldLAogICAgdWR0RGVmaW5lZDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIGRvd246IFtGdW5jdGlvbiAoYW5vbnltb3VzKV0sCiAgICB1cDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHRyYW5zbGF0ZTogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHNldExlbmd0aDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIGdldExlbmd0aDogW0Z1bmN0aW9uIChhbm9ueW1vdXMpXSwKICAgIHRvWG1sOiBbRnVuY3Rpb24gKGFub255bW91cyldCiAgfQp9CmBgYAoKIyMjIyMjIEludGVycHJldGluZyBBU1QgYXMgbGlzdCBvZiBlbnRyaWVzCgpgYGBqcwppbXBvcnQgeyBwYXJzZSB9IGZyb20gJ29wZW5hcGktcGF0aC10ZW1wbGF0aW5nJzsKCmNvbnN0IHBhcnNlUmVzdWx0ID0gcGFyc2UoJy9wZXRzL3twZXRJZH0nKTsKY29uc3QgcGFydHMgPSBbXTsKCnBhcnNlUmVzdWx0LmFzdC50cmFuc2xhdGUocGFydHMpOwpgYGAKCkFmdGVyIHJ1bm5pbmcgdGhlIGFib3ZlIGNvZGUsICoqcGFydHMqKiB2YXJpYWJsZSBoYXMgdGhlIGZvbGxvd2luZyBzaGFwZToKCmBgYGpzClsKICBbICdwYXRoLXRlbXBsYXRlJywgJy9wZXRzL3twZXRJZH0nIF0sCiAgWyAncGF0aCcsICcvcGV0cy97cGV0SWR9JyBdLAogIFsgJ3NsYXNoJywgJy8nIF0sCiAgWyAncGF0aC1saXRlcmFsJywgJ3BldHMnIF0sCiAgWyAnc2xhc2gnLCAnLycgXSwKICBbICd0ZW1wbGF0ZS1leHByZXNzaW9uJywgJ3twZXRJZH0nIF0sCiAgWyAndGVtcGxhdGUtZXhwcmVzc2lvbi1wYXJhbS1uYW1lJywgJ3BldElkJyBdCl0KYGBgCgojIyMjIyMgSW50ZXJwcmV0aW5nIEFTVCBhcyBYTUwKCmBgYGpzCmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnb3BlbmFwaS1wYXRoLXRlbXBsYXRpbmcnOwoKY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZSgnL3BldHMve3BldElkfScpOwpjb25zdCB4bWwgPSBwYXJzZVJlc3VsdC5hc3QudG9YbWwoKTsKYGBgCgpBZnRlciBydW5uaW5nIHRoZSBhYm92ZSBjb2RlLCAqKnhtbCoqIHZhcmlhYmxlIGhhcyB0aGUgZm9sbG93aW5nIGNvbnRlbnQ6CgpgYGB4bWwKPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJvb3Qgbm9kZXM9IjciIGNoYXJhY3RlcnM9IjEzIj4KICA8IS0tIGlucHV0IHN0cmluZyAtLT4KICAvcGV0cy97cGV0SWR9CiAgPG5vZGUgbmFtZT0icGF0aC10ZW1wbGF0ZSIgaW5kZXg9IjAiIGxlbmd0aD0iMTMiPgogICAgL3BldHMve3BldElkfQogICAgPG5vZGUgbmFtZT0icGF0aCIgaW5kZXg9IjAiIGxlbmd0aD0iMTMiPgogICAgICAvcGV0cy97cGV0SWR9CiAgICAgIDxub2RlIG5hbWU9InNsYXNoIiBpbmRleD0iMCIgbGVuZ3RoPSIxIj4KICAgICAgICAvCiAgICAgIDwvbm9kZT48IS0tIG5hbWU9InNsYXNoIiAtLT4KICAgICAgPG5vZGUgbmFtZT0icGF0aC1saXRlcmFsIiBpbmRleD0iMSIgbGVuZ3RoPSI0Ij4KICAgICAgICBwZXRzCiAgICAgIDwvbm9kZT48IS0tIG5hbWU9InBhdGgtbGl0ZXJhbCIgLS0+CiAgICAgIDxub2RlIG5hbWU9InNsYXNoIiBpbmRleD0iNSIgbGVuZ3RoPSIxIj4KICAgICAgICAvCiAgICAgIDwvbm9kZT48IS0tIG5hbWU9InNsYXNoIiAtLT4KICAgICAgPG5vZGUgbmFtZT0idGVtcGxhdGUtZXhwcmVzc2lvbiIgaW5kZXg9IjYiIGxlbmd0aD0iNyI+CiAgICAgICAge3BldElkfQogICAgICAgIDxub2RlIG5hbWU9InRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSIgaW5kZXg9IjciIGxlbmd0aD0iNSI+CiAgICAgICAgICBwZXRJZAogICAgICAgIDwvbm9kZT48IS0tIG5hbWU9InRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSIgLS0+CiAgICAgIDwvbm9kZT48IS0tIG5hbWU9InRlbXBsYXRlLWV4cHJlc3Npb24iIC0tPgogICAgPC9ub2RlPjwhLS0gbmFtZT0icGF0aCIgLS0+CiAgPC9ub2RlPjwhLS0gbmFtZT0icGF0aC10ZW1wbGF0ZSIgLS0+Cjwvcm9vdD4KYGBgCgo+IE5PVEU6IEFTVCBjYW4gYWxzbyBiZSB0cmF2ZXJzZWQgaW4gY2xhc3NpY2FsIHdheSB1c2luZyBbZGVwdGggZmlyc3QgdHJhdmVyc2FsXShodHRwczovL3d3dy50dXRvcmlhbHNwb2ludC5jb20vZGF0YV9zdHJ1Y3R1cmVzX2FsZ29yaXRobXMvZGVwdGhfZmlyc3RfdHJhdmVyc2FsLmh0bSkuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgb3B0aW9uIHBsZWFzZSByZWZlciB0byBbYXBnLWpzXShodHRwczovL2dpdGh1Yi5jb20vbGR0aG9tYXMvYXBnLWpzKSBhbmQgW2FwZy1qcy1leGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL2xkdGhvbWFzL2FwZy1qcy1leGFtcGxlcykuCgojIyMjIFZhbGlkYXRpb24KClZhbGlkYXRpbmcgYSBQYXRoIFRlbXBsYXRpbmcgaXMgYXMgc2ltcGxlIGFzIGltcG9ydGluZyB0aGUgKip0ZXN0KiogZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQuCgoKYGBganMKaW1wb3J0IHsgdGVzdCB9IGZyb20gJ29wZW5hcGktcGF0aC10ZW1wbGF0aW5nJzsKCnRlc3QoJy9wZXRzL3twZXRJZH0nKTsgLy8gPT4gdHJ1ZQp0ZXN0KCcvYXtwZXRJZH0nKTsgLy8gPT4gdHJ1ZQp0ZXN0KCcvcGV0cycpOyAvLyA9PiB0cnVlCnRlc3QoJy9wZXRzJywgeyBzdHJpY3Q6IHRydWUgfSk7IC8vID0+IGZhbHNlIChkb2Vzbid0IGNvbnRhaW4gYW55IHRlbXBsYXRlLWV4cHJlc3Npb24pCmBgYAoKIyMjIyBSZXNvbHV0aW9uCgpSZXNvbHZpbmcgYSBQYXRoIFRlbXBsYXRpbmcgaXMgYXMgc2ltcGxlIGFzIGltcG9ydGluZyB0aGUgKipyZXNvbHZlKiogZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQuCgpgYGBqcwppbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAnb3BlbmFwaS1wYXRoLXRlbXBsYXRpbmcnOwoKcmVzb2x2ZSgnL3BldHMve3BldElkfScsIHsgcGV0SWQ6IDMgfSk7IC8vID0+ICIvcGV0cy8zIgpgYGAKClJlc29sdmVkIFBhdGggVGVtcGxhdGluZyBpcyBhdXRvbWF0aWNhbGx5IGVuY29kZWQgdXNpbmcgW2VuY29kZVVSSUNvbXBvbmVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvZW5jb2RlVVJJQ29tcG9uZW50KSBmdW5jdGlvbi4KSXQgaXMgcG9zc2libGUgdG8gcHJvdmlkZSBhIGN1c3RvbSBlbmNvZGVyLgoKYGBganMKaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ29wZW5hcGktcGF0aC10ZW1wbGF0aW5nJzsKCnJlc29sdmUoJy9wZXRzL3twZXRJZH0nLCB7IHBldElkOiAnLz8jJyB9LCB7CiAgZW5jb2RlcjogKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LCAvLyBubyBlbmNvZGluZwp9KTsgLy8gPT4gIi9wZXRzLy8/IyIKYGBgCgojIyMjIEdyYW1tYXIKCk5ldyBncmFtbWFyIGluc3RhbmNlIGNhbiBiZSBjcmVhdGVkIGluIGZvbGxvd2luZyB3YXk6CgpgYGBqcwppbXBvcnQgeyBHcmFtbWFyIH0gZnJvbSAnb3BlbmFwaS1wYXRoLXRlbXBsYXRpbmcnOwoKY29uc3QgZ3JhbW1hciA9IG5ldyBHcmFtbWFyKCk7CmBgYAoKVG8gb2J0YWluIG9yaWdpbmFsIEFCTkYgKFNBQk5GKSBncmFtbWFyIGFzIGEgc3RyaW5nOgoKYGBganMKaW1wb3J0IHsgR3JhbW1hciB9IGZyb20gJ29wZW5hcGktcGF0aC10ZW1wbGF0aW5nJzsKCmNvbnN0IGdyYW1tYXIgPSBuZXcgR3JhbW1hcigpOwoKZ3JhbW1hci50b1N0cmluZygpOwovLyBvcgpTdHJpbmcoZ3JhbW1hcik7CmBgYAoKIyMgTW9yZSBhYm91dCBPcGVuQVBJIFBhdGggVGVtcGxhdGluZwoKVGhlIFBhdGggVGVtcGxhdGluZyBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgW0FCTkZdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0KSBzeW50YXgKCmBgYGFibmYKOyBPcGVuQVBJIFBhdGggVGVtcGxhdGluZyBBQk5GIHN5bnRheApwYXRoLXRlbXBsYXRlICAgICAgICAgICAgICAgICAgPSBwYXRoIFsgcXVlcnktbWFya2VyIHF1ZXJ5IF0gWyBmcmFnbWVudC1tYXJrZXIgZnJhZ21lbnQgXQpwYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzbGFzaCAqKCBwYXRoLXNlZ21lbnQgc2xhc2ggKSBbIHBhdGgtc2VnbWVudCBdCnBhdGgtc2VnbWVudCAgICAgICAgICAgICAgICAgICA9IDEqKCBwYXRoLWxpdGVyYWwgLyB0ZW1wbGF0ZS1leHByZXNzaW9uICkKcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAgID0gKiggcXVlcnktbGl0ZXJhbCApCnF1ZXJ5LWxpdGVyYWwgICAgICAgICAgICAgICAgICA9IDEqKCB1bnJlc2VydmVkIC8gcGN0LWVuY29kZWQgLyBzdWItZGVsaW1zIC8gIjoiIC8gIkAiIC8gIi8iIC8gIj8iIC8gIiYiIC8gIj0iICkKcXVlcnktbWFya2VyICAgICAgICAgICAgICAgICAgID0gIj8iCmZyYWdtZW50ICAgICAgICAgICAgICAgICAgICAgICA9ICooIGZyYWdtZW50LWxpdGVyYWwgKQpmcmFnbWVudC1saXRlcmFsICAgICAgICAgICAgICAgPSAxKiggdW5yZXNlcnZlZCAvIHBjdC1lbmNvZGVkIC8gc3ViLWRlbGltcyAvICI6IiAvICJAIiAvICIvIiAvICI/IiApCmZyYWdtZW50LW1hcmtlciAgICAgICAgICAgICAgICA9ICIjIgpzbGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAiLyIKcGF0aC1saXRlcmFsICAgICAgICAgICAgICAgICAgID0gMSooIHVucmVzZXJ2ZWQgLyBwY3QtZW5jb2RlZCAvIHN1Yi1kZWxpbXMgLyAiOiIgLyAiQCIgKQp0ZW1wbGF0ZS1leHByZXNzaW9uICAgICAgICAgICAgPSAieyIgdGVtcGxhdGUtZXhwcmVzc2lvbi1wYXJhbS1uYW1lICJ9Igp0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUgPSAxKiggdW5yZXNlcnZlZCAvIHBjdC1lbmNvZGVkIC8gc3ViLWRlbGltcyAvICI6IiAvICJAIiApCgo7IENoYXJhY3RlcnMgZGVmaW5pdGlvbnMgKGZyb20gUkZDIDM5ODYpCnVucmVzZXJ2ZWQgICAgICAgICAgPSBBTFBIQSAvIERJR0lUIC8gIi0iIC8gIi4iIC8gIl8iIC8gIn4iCnBjdC1lbmNvZGVkICAgICAgICAgPSAiJSIgSEVYRElHIEhFWERJRwpzdWItZGVsaW1zICAgICAgICAgID0gIiEiIC8gIiQiIC8gIiYiIC8gIiciIC8gIigiIC8gIikiCiAgICAgICAgICAgICAgICAgICAgLyAiKiIgLyAiKyIgLyAiLCIgLyAiOyIgLyAiPSIKQUxQSEEgICAgICAgICAgICAgICA9ICV4NDEtNUEgLyAleDYxLTdBICAgOyBBLVogLyBhLXoKRElHSVQgICAgICAgICAgICAgICA9ICV4MzAtMzkgICAgICAgICAgICA7IDAtOQpIRVhESUcgICAgICAgICAgICAgID0gRElHSVQgLyAiQSIgLyAiQiIgLyAiQyIgLyAiRCIgLyAiRSIgLyAiRiIKYGBgCgojIyBMaWNlbnNlCgpgb3BlbmFwaS1wYXRoLXRlbXBsYXRpbmdgIGlzIGxpY2Vuc2VkIHVuZGVyIFtBcGFjaGUgMi4wIGxpY2Vuc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyZXhwZXJ0L29wZW5hcGktcGF0aC10ZW1wbGF0aW5nL2Jsb2IvbWFpbi9MSUNFTlNFKS4KYG9wZW5hcGktcGF0aC10ZW1wbGF0aW5nYCBjb21lcyB3aXRoIGFuIGV4cGxpY2l0IFtOT1RJQ0VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyZXhwZXJ0L29wZW5hcGktcGF0aC10ZW1wbGF0aW5nL2Jsb2IvbWFpbi9OT1RJQ0UpIGZpbGUKY29udGFpbmluZyBhZGRpdGlvbmFsIGxlZ2FsIG5vdGljZXMgYW5kIGluZm9ybWF0aW9uLgo= readmeEtag: '"2610ca352fdbe11bbd723bb9f81780d3e8a10bbc"' readmeLastModified: Wed, 07 Aug 2024 19:03:56 GMT repositoryId: 730126319 description: OpenAPI Path Templating parser, validator and resolver. created: '2023-12-11T09:07:36Z' updated: '2024-08-29T18:53:10Z' language: JavaScript archived: false stars: 2 watchers: 2 forks: 0 owner: swaggerexpert logo: https://avatars.githubusercontent.com/u/172408630?v=4 license: Apache-2.0 repoEtag: '"c1d875aa9e1822857bfc93e3ca102be557c140610ed6062083f9b7b8c0205c1f"' repoLastModified: Thu, 29 Aug 2024 18:53:10 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/senatov/spring-boot-primerfaces-sheduler v3: true repositoryMetadata: base64Readme: >- IyMgU3ByaW5nIEJvb3QgSW50ZWdyYXRpb24gZXhhbXBsZQoKLSBleGFtcGxlIGNvZGUuCi0gYFRoZSBQcm9qZWN0IGJ1aWxkcyB1bmRlciBPcmFjbGUgSkRLMTcgR2VuZXJhbC1BdmFpbGFiaWxpdHkgUmVsZWFzZWAKCiMjIFRhZ3MKCi0tLQoKPiBPcmFjbGUgMTE8YnI+Cj4gSlBBL0hpYmVybmF0ZSA8YnI+Cj4gUG9zdGdyZXM6bGF0ZXN0IHVuZGVyIERvY2tlcjxicj4KPiBTcHJpbmctQm9vdCAyLjYuMjxicj4KPiBKU0YyIE1vamFycmEgPGJyPgo+IFByaW1lRmFjZXMgMTEuMC4wPGJyPgoKLS0tCgotIGltcGxlbWVudGF0aW9uIG9mIEJhc2lzIFByaW1lZmFjZXMgU2NoZWR1bGVyLgotIENvbXBvbmVudHM6IE9yYWNsZSAxMSwgSlBBL0hpYmVybmF0ZSwgRG9ja2VyICsgUG9zdGdyZXMsIFNwcmluZy1Cb290IDIuNi4yLCBKU0YgMi40LjAgTW9qYXJyYSwgUHJpbWVGYWNlcwogIDExLjAuMCwgT3BlbkFQSSx+U3ByaW5nIFNlY3VyaXR5fgotIFVSTHM6IFtodHRwOi8vbG9jYWxob3N0OjE4MDg3L3VpL3Jlc2VydmF0aW9uLnhodG1sXShodHRwOi8vbG9jYWxob3N0OjE4MDg3L3VpL3Jlc2VydmF0aW9uLnhodG1sKQotIEdJVEggSW5mbyBmcm9tIFJlc3QgV1M6IFtodHRwOi8vbG9jYWxob3N0OjE4MDg3L3ZlcnNpb25dKGh0dHA6Ly9sb2NhbGhvc3Q6MTgwODcvdmVyc2lvbikKCi0tLQoKKipbU3RhcnQgTGlua10oaHR0cDovL2xvY2FsaG9zdDoxODA4Ny91aS9yZXNlcnZhdGlvbi54aHRtbCkqKi4KCmNvbW1vbiBwcm9ncmFtbSB0ZXN0IChEQiBjb25uZWN0LCBCb290LCBKU0YgY29ubmVjdGlvbikgaXMgaGVscGZ1bCBvbiA8YnI+CnJlZmFjdG9yaW5nIGFuZCBwb20gdmVyc2lvbiBjaGFuZ2luZwoKKipbRU1haWw6amF2YWVudHdpY2tsZXJAZ21haWwuY29tXShtYWlsdG86Ly9qYXZhZW50d2lja2xlckBnbWFpbC5jb20pKioKCi0tLQoKIVtpbWFnZTFdKGRvYy9yZXNlcnZhdGlvbi5wbmcgIkltYWdlICMxIikKIVtpbWFnZTFdKGRvYy9saXN0LnBuZyAiSW1hZ2UgIzIiKQohW2ltYWdlMV0oZG9jL2Nld2F0ZS5wbmcgIkltYWdlICMzIikKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cDovL2xvY2FsaG9zdDoxODA4NyoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKip2ZXJzaW9uSW5mb3JtYXRpb24qKl0oVmVyc2lvblJlc3RDb250cm9sbGVyQXBpLm1kI3ZlcnNpb25JbmZvcm1hdGlvbikgfCAqKkdFVCoqIC92ZXJzaW9uLyB8Cgo8YSBuYW1lPSJ2ZXJzaW9uSW5mb3JtYXRpb24iPjwvYT4KCiMgKip2ZXJzaW9uSW5mb3JtYXRpb24qKgoKPiBTdHJpbmcgdmVyc2lvbkluZm9ybWF0aW9uKCkKCiMjIyBFeGFtcGxlIENhbGwgT3BlbiBBUEkgU2VydmljZToKCmBgYGphdmEKLy8gSW1wb3J0IGNsYXNzZXM6CmltcG9ydCBvcmcub3BlbmFwaXRvb2xzLmNsaWVudC5BcGlDbGllbnQ7CmltcG9ydCBvcmcub3BlbmFwaXRvb2xzLmNsaWVudC5BcGlFeGNlcHRpb247CmltcG9ydCBvcmcub3BlbmFwaXRvb2xzLmNsaWVudC5Db25maWd1cmF0aW9uOwppbXBvcnQgb3JnLm9wZW5hcGl0b29scy5jbGllbnQubW9kZWxzLio7CmltcG9ydCBvcmcub3BlbmFwaXRvb2xzLmNsaWVudC5hcGkuVmVyc2lvblJlc3RDb250cm9sbGVyQXBpOwoKcHVibGljIGNsYXNzIEV4YW1wbGUgewogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIEFwaUNsaWVudCBkZWZhdWx0Q2xpZW50ID0gQ29uZmlndXJhdGlvbi5nZXREZWZhdWx0QXBpQ2xpZW50KCk7CiAgICBkZWZhdWx0Q2xpZW50LnNldEJhc2VQYXRoKCJodHRwOi8vbG9jYWxob3N0OjE4MDg3Iik7CgogICAgVmVyc2lvblJlc3RDb250cm9sbGVyQXBpIGFwaUluc3RhbmNlID0gbmV3IFZlcnNpb25SZXN0Q29udHJvbGxlckFwaShkZWZhdWx0Q2xpZW50KTsKICAgIHRyeSB7CiAgICAgIFN0cmluZyByZXN1bHQgPSBhcGlJbnN0YW5jZS52ZXJzaW9uSW5mb3JtYXRpb24oKTsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdCk7CiAgICB9IGNhdGNoIChBcGlFeGNlcHRpb24gZSkgewogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmVyc2lvblJlc3RDb250cm9sbGVyQXBpI3ZlcnNpb25JbmZvcm1hdGlvbiIpOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlN0YXR1cyBjb2RlOiAiICsgZS5nZXRDb2RlKCkpOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlYXNvbjogIiArIGUuZ2V0UmVzcG9uc2VCb2R5KCkpOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlc3BvbnNlIGhlYWRlcnM6ICIgKyBlLmdldFJlc3BvbnNlSGVhZGVycygpKTsKICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKICAgIH0KICB9Cn0KYGBgCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKCioqU3RyaW5nKioKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCi0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBPSyB8ICAtICB8 readmeEtag: '"f2ae30b5c57ac8eae09d49c5f9f71454b7618b45"' readmeLastModified: Mon, 19 Sep 2022 22:41:14 GMT repositoryId: 140123000 description: Scheduler example implementation(Spring boot 2.6, JSF 2.4, Primefaces 10) created: '2018-07-07T23:15:09Z' updated: '2022-06-16T14:47:08Z' language: Java archived: false stars: 2 watchers: 2 forks: 2 owner: senatov logo: https://avatars.githubusercontent.com/u/4016842?v=4 repoEtag: '"bf23da6123eab830753ec1910dfd0c84c9d3c434bdf192eab2882e0d1784cf9b"' repoLastModified: Thu, 16 Jun 2022 14:47:08 GMT foundInMaster: true category: - Low-level Tooling - SDK id: b76f2d705b59816aaf9172e4780d7e04 - source: openapi3 tags repository: https://github.com/danielso2007/virtuallibraryapi v3: true repositoryMetadata: base64Readme: >- WyFbQWN0aW9ucyBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkvd29ya2Zsb3dzL3ZpcnR1YWxMaWJyYXJ5QVBJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkvYWN0aW9ucykKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbHNvMjAwNy92aXJ0dWFsTGlicmFyeUFQSS9icmFuY2gvZGV2ZWxvcC9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvZGFuaWVsc28yMDA3L3ZpcnR1YWxMaWJyYXJ5QVBJKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1kYW5pZWxzbzIwMDdfdmlydHVhbExpYnJhcnlBUEkmbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9ZGFuaWVsc28yMDA3X3ZpcnR1YWxMaWJyYXJ5QVBJKQohW0dpdEh1YiBwYWNrYWdlIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3BhY2thZ2UtanNvbi92L2RhbmllbHNvMjAwNy92aXJ0dWFsTGlicmFyeUFQSS5zdmcpClshW0dpdEh1YiBwdWxsIHJlcXVlc3RzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcHItcmF3L2RhbmllbHNvMjAwNy92aXJ0dWFsTGlicmFyeUFQSS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsc28yMDA3L3ZpcnR1YWxMaWJyYXJ5QVBJL3B1bGxzKQpbIVtHaXRIdWIgaXNzdWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMvZGFuaWVsc28yMDA3L3ZpcnR1YWxMaWJyYXJ5QVBJLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkvaXNzdWVzP3E9aXMlM0FvcGVuK2lzJTNBaXNzdWUpCiFbR2l0SHViIGxhc3QgY29tbWl0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkuc3ZnKQpbIVtHaXRIdWIgaXNzdWUvcHVsbCByZXF1ZXN0IGF1dGhvcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2RldGFpbC91L2RhbmllbHNvMjAwNy92aXJ0dWFsTGlicmFyeUFQSS8xLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkvcHVsbHMpCiFbR2l0SHViIGNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29udHJpYnV0b3JzL2RhbmllbHNvMjAwNy92aXJ0dWFsTGlicmFyeUFQSS5zdmcpCiFbR2l0SHViIHRvcCBsYW5ndWFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFuZ3VhZ2VzL3RvcC9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkuc3ZnKQpbIVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvZGFuaWVsc28yMDA3L3ZpcnR1YWxMaWJyYXJ5QVBJLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkpClshW0dpdEh1YiBBbGwgUmVsZWFzZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2Rvd25sb2Fkcy9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkvdG90YWwuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbHNvMjAwNy92aXJ0dWFsTGlicmFyeUFQSS9hcmNoaXZlL21hc3Rlci56aXApClshW0NvbnZlbnRpb25hbCBDb21taXRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnZlbnRpb25hbCUyMENvbW1pdHMtMS4wLjAteWVsbG93LnN2ZyldKGh0dHBzOi8vY29udmVudGlvbmFsY29tbWl0cy5vcmcpCgojIFZpcnR1YWwgTGlicmFyeSBBUEkKClZpcnR1YWwgbGlicmFyeSBBUEkuIFRoaXMgcHJvamVjdCBpcyB1c2VkIHRvIHN0dWR5IFJFU1QgU3ByaW5nIEJvb3QgcHJvamVjdHMuCgpFc3RlIHByb2pldG8gdXNhIG8gW0NvbW1vbnMgUkVTVCBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvY29tbW9ucy1yZXN0LWFwaSkgcGFyYSBkZXBlbmTDqm5jaWEgcGFyYSBhcyBjaGFtYWRhcyBlIHBhZHLDtWVzIFJFU1QuIEVzc2UgcHJvamV0byBmb2kgZmVpdG8gcG9yIG1pbSBwYXJhIGFic3RyYWlyIHRvZGFzIGEgY2hhbWFkYXMgZSByZXRvcm5vcyBwYWRyw7VlcyBkbyBwcmluY8OtcGlvIFJFU1RGdWxsLiBTZXLDoSBuZWNlc3PDoXJpbyBpbnN0YWxhciBvIHByb2pldG8gbG9jYWxtZW50ZSBvdSB1c2FyIG8gW3BhY2thZ2UgZG8gZ2l0aHViXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsc28yMDA3L2NvbW1vbnMtcmVzdC1hcGkvcGFja2FnZXMpLgoKIyMgR2V0dGluZyBTdGFydGVkCgpUaGVzZSBpbnN0cnVjdGlvbnMgd2lsbCBnZXQgeW91IGEgY29weSBvZiB0aGUgcHJvamVjdCB1cCBhbmQgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUgZm9yIGRldmVsb3BtZW50IGFuZCB0ZXN0aW5nIHB1cnBvc2VzLgoKIyMjIFByZXJlcXVpc2l0ZXMKClV0aWxpemFyIG8gYW1iaWVudGUgbGludXggZSB0ZXIgbyBtYXZlbSBlIG8gamF2YSAxMSBwYXJhIGEgY29tcGlsYcOnw6NvIGUgZXhlY3XDp8OjbyBkbyBwcm9qZXRvLgpFc3RlIHByb2pldG8gdXRpbGl6YSBvIE1vbmdvRGIgY29tbyBiYXNlIGRlIGRhZG9zLCBwYXJhIHRlciB1bSBiYW5jbyBkZSBkYWRvcyBwYXJhIGVzc2UgcHJvamV0bywgc2lnYSBvIHByb2pldG8KW2RvY2tlck1vbmdvREJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvZG9ja2VyTW9uZ29EQikgdXNhbmRvIG8gW0RvY2tlcl0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pLgoKIyMjIEluc3RhbGxpbmcKClJlY29tZW5kYWRvIGluc3RhbGFyIG8gW3Nka21hbl0oaHR0cHM6Ly9zZGttYW4uaW8vKSBxdWUgw6kgdW1hIGZlcnJhbWVudGEgcGFyYSBnZXJlbmNpYXIgdmVyc8O1ZXMgcGFyYWxlbGFzIGRlIHbDoXJpb3Mga2l0cyBkZSBkZXNlbnZvbHZpbWVudG8gZGUgc29mdHdhcmUgbmEgbWFpb3JpYSBkb3Mgc2lzdGVtYXMgYmFzZWFkb3MgZW0gVW5peC4KCkNvbSBvIHNka21hbiwgaW5zdGFsZSBvIGphdmE6CmBgYApzZGsgbGlzdCBqYXZhCnNkayBpbnN0YWxsIGphdmEgMTEuMC41Lmo5LWFkcHQKYGBgCgpJbnN0YWxhbmRvIG8gTWF2ZW46CmBgYApzZGsgaW5zdGFsbCBtYXZlbgpgYGAKCiMjIFRlc3QKCk8gcHJvamV0byBlc3TDoSBjb25maWd1cmFkbyBwYXJhIG7Do28gZXhlY3V0YXIgb3MgdGVzdGVzIHF1YW5kbyBjb25zdHJ1w61kbyBwYXJhIGRlc2Vudm9sdmltZW50by4gUGFyYSBleGVjdXRhciBvcyB0ZXN0ZXMsIGV4ZWN1dGUgbyBjb21hbmRvIGFiYWl4bzoKCmBtdm4gY2xlYW4gdGVzdCAtUHRlc3RgCgpPcyB0ZXN0ZXMgc8OjbyBleGVjdXRhZG9zIG5vcm1hbG1lbnRlIHF1YW5kbyBjb25zdHJ1w61kbyBwYXJhICoqcHJvZHXDp8OjbyoqIGUgbmEgY3JpYcOnw6NvIGRhIGltYWdlbSAqKkRvY2tlcioqLiBIw6Egbm8gYXJxdWl2byBkbyBgcG9tLnhtbGAgZXNzYSBjb25maWd1cmHDp8OjbywgcXVlIHBvZGUgc2VyIG1vZGlmaWNhZGEgYSBxdWFscXVlciBtb21lbnRvIGRvIGRlc2Vudm9sdmltZW50by4gSW5pY2lhbG1lbnRlLCBwYXJhIG8gZGVzZW52b2x2aW1lbnRvLCBvIGRlc2Vudm9sdmVkb3IgcG9kZSBleGVjdXRhciBzZXVzIHRlc3RlcyBhbyBzZWd1aXIgbyBwYWRyw6NvIFRERCBwZWxhIHByw7NwcmlhIElERS4KCiMjIyBDb2RlIHRlc3QgY292ZXJhZ2UKCsOJIHV0aWxpemFkbyBvIFtFY2xFbW1hIEphY29jb10oaHR0cHM6Ly93d3cuZWNsZW1tYS5vcmcvamFjb2NvLykgcGFyYSB2ZXJpZmljYcOnw6NvIGRlIGNvYmVydHVyYSBkZSBjw7NkaWdvLiBQYXJhIGV4ZWN1dGFyIGEgY29iZXJ0dXJhOgpgYGAKbXZuIGNsZWFuIHRlc3QgdmVyaWZ5IC1QdGVzdCBqYWNvY286cmVwb3J0CmBgYApOYSBwYXN0YSB0YXJnZXQsIMOpIGdlcmFkbyB1bSAic2l0ZSIgbW9zdHJhbmRvIHRvZGEgYSBjb2JlcnR1cmEgZGUgY8OzZGlnby4gRXN0ZSBwcm9qZXRvIHV0aWxpemEgbyBfQWN0aW9uXyBwYXJhIG9zIHRlc3RlcyBlIGJ1aWxkIGRhIGFwbGljYcOnw6NvLiBBbyBmaW5hbCBkbyB0ZXN0ZSwgw6kgZW52aWFkbyBwYXJhIFtjb2RlY292LmlvXShodHRwczovL2NvZGVjb3YuaW8pIHRvZG8gbyByZWxhdMOzcmlvLiBQYXJhIHZlcmlmaWNhciBhIGNvYmVydHVyYSBkZSB0ZXN0ZSBkZXN0ZSBjw7NkaWdvLCBhY2Vzc2UgW2NvZGVjb3YuaW8vZ2gvZGFuaWVsc28yMDA3XShbY29kZWNvdi5pb10oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbHNvMjAwNy92aXJ0dWFsTGlicmFyeUFQSSkpLgoKIyMgUnVubmluZyB3aXRoIGRvY2tlcgoKSMOhIHVtIHBlcmZpbCBubyBgcG9tLnhtbGAgcGFyYSBhIGNyaWHDp8OjbyBkYSBpbWFnZW0gZG8gcHJvamV0by4gQW8gZXhlY3V0YXIgYG12biBjbGVhbiBwYWNrYWdlIC1QZG9ja2VyYCwgc2Vyw6EgcmVhbGl6YWRvIG8gdGVzdGUgZSBjcmlhZG8gbyBhcnF1aXZvIGBEb2NrZXJmaWxlYCBuYSBwYXN0YSBgdGFyZ2V0YCwgY3JpYW5kbyBhIGltYWdlbSBgdmlydHVhbExpYnJhcnlBUEk6PHByb2plY3QudmVyc2lvbj5gLgpQYXJhIHZlciBhIGltYWdlbSBjcmlhZGEsIGRpZ2l0ZSBubyB0ZXJtaW5hbCBvIGNvbWFuZG8gYGRvY2tlciBpbWFnZXNgLgoKUGFyYSAicm9kYXIiIGEgaW1hZ2VtLCBleGVjdXRlOgpgYGAKZG9ja2VyIHJ1biAtcCA4MDgwOjgwODAgLS1uYW1lIHN3YXBpICB2aXJ0dWFsTGlicmFyeUFQSTo8cHJvamVjdC52ZXJzaW9uPgpgYGAKCiMjIyBDb2RlIHF1YWxpdHkKCk8gc29uYXIgw6kgdXNhZG8gcGFyYSBhbmFsaXNhciBhIHF1YWxpZGFkZSBkbyBjw7NkaWdvLiBWb2PDqiBwb2RlIGluaWNpYXIgdW0gc2Vydmlkb3IgU29uYXIgbG9jYWwgKGFjZXNzw612ZWwgZW0gaHR0cDogLy8gbG9jYWxob3N0OiA5MDAxKSBjb206CgpgYGAKZG9ja2VyLWNvbXBvc2UgLWYgc3JjL21haW4vZG9ja2VyL3NvbmFyLnltbCB1cCAtZApgYGAKClZvY8OqIHBvZGUgZXhlY3V0YXIgdW1hIGFuw6FsaXNlIGRvIFNvbmFyIHVzYW5kbyBvIHNjYW5uZXIgZGUgc29uYXIgb3UgdXNhbmRvIG8gcGx1Z2luIG1hdmVuLgoKRW0gc2VndWlkYSwgZXhlY3V0ZSB1bWEgYW7DoWxpc2UgZG8gc29uYXI6CgpgYGAKbXZuIC1QdGVzdCBjbGVhbiB2ZXJpZnkgamFjb2NvOnJlcG9ydCBzb25hcjpzb25hcgpgYGAKClNlIHZvY8OqIHByZWNpc2FyIGV4ZWN1dGFyIG5vdmFtZW50ZSBhIGZhc2UgZG8gU29uYXIsIGVzcGVjaWZpcXVlIHBlbG8gbWVub3MgYSBmYXNlIGRlIGluaWNpYWxpemHDp8OjbywgasOhIHF1ZSBhcyBwcm9wcmllZGFkZXMgZG8gU29uYXIgc8OjbyBjYXJyZWdhZGFzIGRvIGFycXVpdm8gc29uYXItcHJvamVjdC5wcm9wZXJ0aWVzLgoKYGBgCm12biBjbGVhbiB0ZXN0IHZlcmlmeSAtUHRlc3QgamFjb2NvOnJlcG9ydAptdm4gaW5pdGlhbGl6ZSBzb25hcjpzb25hcgpgYGAKCiMjIyBEb2N1bWVudGHDp8OjbyBkYSBBUEkgLSBzd2FnZ2VyIChPcGVuQVBJIDMpOgoKQSBhcGxpY2HDp8OjbyB1c2EgbyBzd2FnZ2VyIHBhcmEgYSBleGliacOnw6NvIGRhIGRvY3VtZW50YcOnw6NvIGRhIEFQSS4gUGFyYSB2ZXJpZmljYXIsIGFjZXNzZSBvcyBsaW5rcyBbc3dhZ2dlci11aV0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbCkgZSBbYXBpLWRvY3NdKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGktZG9jcykuIERvY3VtZW50YcOnw6NvIFtzd2FnZ2VyLmlvXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9vcGVuLXNvdXJjZS10b29scy9zd2FnZ2VyLXVpL3VzYWdlL2NvbmZpZ3VyYXRpb24vKSBlIFtzcHJpbmdkb2Mub3JnXShodHRwczovL3NwcmluZ2RvYy5vcmcvKS4KCk1haXMgZXhlbXBsb3M6IFtkb2N1bWVudGluZy1zcHJpbmctYm9vdC1yZXN0LWFwaS1zcHJpbmdkb2Mtb3BlbmFwaS0zXShodHRwczovL3d3dy5kYXJpYXdhbi5jb20vdHV0b3JpYWxzL3NwcmluZy9kb2N1bWVudGluZy1zcHJpbmctYm9vdC1yZXN0LWFwaS1zcHJpbmdkb2Mtb3BlbmFwaS0zLykKCk91IGFkaWNpb25lIG8gY2FtaW5obyBhYmFpeG86CgpgYGAKaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbAoKaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1kb2NzCmBgYAoKIyMjIFRlc3RlIG8gZW5kZXJlw6dvIGRvY2tlciAobG9naW46IGFkbWluIC8gcGFzc3dvcmQ6IGFkbWluKToKCmBgYApodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3YxL2Jvb2tzCgpodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3YxL3JhdGluZ3MKYGBgCgpJbmljaWFsbWVudGUgc8OzIMOpIGNyaWFkYSBhIGltYWdlbSBkYSBBUEkuIFBvc3Rlcmlvcm1lbnRlIG1vc3RyYXJlaSBjb21vIGV4ZWN1dGFyIG8gYGRvY2tlci1jb21wb3NlYCBjcmlhZG8gbm8gYnVpbGQsIHBhcmEgYSBleGVjdcOnw6NvIGNvbXBsZXRhIGRhIGFwaSBjb20gbyBiYW5jbyBkZSBkYWRvcyBNb25nb0RiLgoKIyMgUnVubmluZyB3aXRoIGRvY2tlci1jb21wb3NlCgpBbyBleGVjdXRhciBvIG1hdmVuIGBtdm4gY2xlYW4gcGFja2FnZSAtUGRvY2tlcmAsIMOpIGdlcmFkbyBvIGBEb2NrZXJmaWxlYCBlIHRhbWLDqW0gbyBgZG9ja2VyLWNvbXBvc2UueW1sYC4gQ29tIG8gZG9ja2VyLWNvbXBvc2Ugw6kgcG9zc8OtdmVsIGluaWNhciBhIGFwbGljYcOnw6NvIGrDoSBjb20gdW0gY29udGFpbmVyIGRvY2tlciBjb20gTW9uZ28uIEluaWNpYWxtZW50ZSBlc3NlIGJhbmNvIGVzdGFyw6EgdmF6aW8uCgpFeGVjdXRlIGVzc2UgY29tYW5kbyBkZW50cm8gZGEgcGFzdGEgYHRhcmdldGA6CmBgYApkb2NrZXItY29tcG9zZSB1cCAtZApgYGAKClNlcsOhIGluaWNpYWRvIG9zIGNvbnRhaW5lcnMgZGEgYXBpIGUgZG8gbW9uZ28uIEFjZXNzYW5kbyBvIGVuZGVyZcOnbyBgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS92MS9ib29rc2AsIHNlcsOhIHJldG9ybmFkbyB1bWEgbGlzdGEgdmF6aWEuCgpQYXJhIHBhcmFyIG9zIGNvbnRhaW5lcnMsIGV4ZWN1dGU6CmBgYApkb2NrZXItY29tcG9zZSBzdG9wCmBgYAoKUGVsbyBgcG9tLnhtbGAgw6kgcG9zc8OtdmVsIGNvbmZpZ3VyYXIgYSBjcmlhw6fDo28gZG8gYXJxdWl2byBgZG9ja2VyLWNvbXBvc2VgLiBJbmljaWFsbWVudGUgYSBwb3J0YSBkbyBjb250YWluZXIgbW9uZ28gZXN0w6EgZXhwb3N0YSwgbWFzIMOpIHPDsyBtb2RpZmljYXIgbyBhcnF1aXZvIGBkb2NrZXItY29tcG9zZWAgZSByZW1vdmVyLCBwb2lzIGEgY29tdW5pY2HDp8OjbyBlbnRyZSBhIGFwaSBlIG8gYmFuY28gw6kgdmlhIGBuZXR3b3JrYCBpbnRlcm5vIGVudHJlIG9zIGNvbnRhaW5lcnMuCgojIyBSdW5uaW5nIChObyBkb2NrZXIpCgpEZW50cm8gZGEgcGFzdGEgZG8gcHJvamV0bywgZXhlY3V0ZToKYGBgCm12biBjbGVhbiBwYWNrYWdlIGluc3RhbGwKYGBgCkFww7NzIGNvbXBpbGFyIG8gcHJvamV0bywgZGVudHJvIGRhIHBhc3RhIGB0YXJnZXRgLCBpbmljaWUgbyBwcm9qZXRvICh4LngueCDDqSBhIHZlcnPDo28gYXR1YWwgZG8gcHJvamV0byk6CmBgYApjZCB0YXJnZXQKbm9odXAgamF2YSAtamFyIHZpcnR1YWxsaWJyYXJ5YXBpLXgueC54LmphciAmIHRhaWwgLWYgbm9odXAub3V0CgpgYGAKCiMjIyBTdG9wcGluZyBwcm9qZWN0CgpQYXJhIGVuY2VycmFyIG8gcHJvamV0bywgZXhlY3V0ZSBvIGNvbWFuZG8gYWJhaXhvOgpgYGAKcHMgLWVmIHwgZ3JlcCB2aXJ0dWFsbGlicmFyeWFwaQpgYGAKTyBjb21hbmRvIGFjaW1hIGV4aWJpcsOhIG8gaWQgZG8gcHJvY2Vzc28sIGFww7NzIHZlciBvIGlkIGRvIHByb2Nlc3NvLCBleGVjdXRlOgpgYGAKa2lsbCAtOSA8aWRfcHJvY2Vzc28+CmBgYAoKIyMjIFNjcmlwdHMgZGUgZXhlY3XDp8OjbyBlIGVuY2VycmFtZW50byBkbyBwcm9qZXRvCgpEZW50cm8gZGEgcGFzdGEgYHRhcmdldGAgw6kgY3JpYWRvIG9zIGFycXVpdm9zIGBzdGFydC5zaGAgZSBgc3RvcC5zaGAuIEVzc2VzIGFycXVpdm9zIG7Do28gc8OjbyBleGVjdXTDoXZlaXMgZSBwcmVjaXNhbSBzZXIgbW9kaWZpY2Fkb3M6CmBgYApjZCB0YXJnZXQKY2htb2QgYSt4IHN0YXJ0LnNoIHN0b3Auc2gKYGBgCgpQYXJhIGluaWNpYXIgbyBwcm9qZXRvLCBleGVjdXRlIChkZW50cm8gZGEgcGFzdGEgYHRhcmdldGApOgpgYGAKLi9zdGFydC5zaApgYGAKUGFyYSBlbmNlcnJhciBvIHByb2pldG8sIGV4ZWN1dGUgKGRlbnRybyBkYSBwYXN0YSBgdGFyZ2V0YCk6CmBgYAouL3N0b3Auc2gKYGBgCgojIyBEZXBsb3ltZW50CgpOYWRhIHNlcsOhIG5lY2Vzc8OhcmlvLCBvIHByb2pldG8gw6kgZXhlY3V0YWRvIGNvbW8gYEZhdCBqYXJgLiBNYXMgcGFyYSBwcm9kdcOnw6NvIGUgaG9tb2xvZ2HDp8Ojbywgw6kgcG9zc8OtdmVsIHVzYXIgYXMgaW1hZ2VucyBnZXJhZGFzIHBlbG8gY29tYW5kbzogYG12biBjbGVhbiBwYWNrYWdlIC1QZG9ja2VyYC4gTXVpdG8gaW1wb3J0YW50ZSBwYXJhIG8gdXNvIGRvIENJLgoKCiMgQmFuY28gZGUgZGFkb3MKCk8gcHJvamV0byB1c2EgbyBtb25nbyBwYXJhIGJhbmNvIGRlIGRhZG9zLiBSZWNvbWVuZG8gcXVlIHV0aWxpemUgbyBwcm9qZXRvIFtkYW5pZWxzbzIwMDcvZG9ja2VyTW9uZ29EQl0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbHNvMjAwNy9kb2NrZXJNb25nb0RCKSBwYXJhIGV4ZWN1dGFyIG8gbW9uZ28gZW0gZG9ja2VyLiBIw6EgZG9pcyBhcnF1aXZvcyBgYm9vay5qc2AgZSBgcmF0aW5nLmpzYCBxdWUgcG9kZW0gc2VyIHVzYWRvcyBwYXJhIGltcG9ydGFyIGRhZG9zIG5vIGJhbmNvLgoKU2VndWUgYSBjb25maWd1cmHDp8OjbyBwYWRyw6NvIGRvIGJhbmNvLCBtYXMgY2FkYSBwcm9maWxlIGRvIGBQT01gIHRlbSBzZXUgZGF0YWJhc2UuCi0gaG9zdDogbG9jYWxob3N0Ci0gcG9ydDogMjcwMTcKLSBkYXRhYmFzZTogdmlydHVhbGxpYnJhcnlhcGkKLSB1c2VybmFtZTogcm9vdAotIHBhc3N3b3JkOiAxMTIzNTgKCkV4ZWN1dGUgbyBhcnF1aXZvIGAuL21vbmdvaW1wb3J0LnNoYCBlIGluZm9ybWU6CgotIEltcG9ydGFuZG8gYXJxdWl2byBwYXJhIG8gTW9uZ29EQi4uLgotIEluZm9tZSBvIG5vbWUgZG8gYmFuY28gZGUgZGFkb3M6Ci0gYHZpcnR1YWxsaWJyYXJ5YXBpYAotIEluZm9tZSBjb2xsZWN0aW9uOgotIGBib29rYAotIEluZm9tZSBvIG5vbWUgZG8gYXJxdWl2byBKU09OOgotIGBib29rLmpzb25gCgpEZXBvaXMgcGFyYSBvIGByYXRpbmdgOgoKLSBJbXBvcnRhbmRvIGFycXVpdm8gcGFyYSBvIE1vbmdvREIuLi4KLSBJbmZvbWUgbyBub21lIGRvIGJhbmNvIGRlIGRhZG9zOgotIGB2aXJ0dWFsbGlicmFyeWFwaWAKLSBJbmZvbWUgY29sbGVjdGlvbjoKLSBgcmF0aW5nYAotIEluZm9tZSBvIG5vbWUgZG8gYXJxdWl2byBKU09OOgotIGByYXRpbmcuanNvbmAKCiMjIEJ1aWx0IFdpdGgKCiogW0phdmFdKGh0dHBzOi8vd3d3Lm9yYWNsZS5jb20vYnIvamF2YS8pCiogW1NwcmluZyBCb290XShodHRwczovL3NwcmluZy5pby9wcm9qZWN0cy9zcHJpbmctYm9vdCkKKiBbTWF2ZW5dKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy8pCiogW1VuZGVydG93IC0gU2Vydmlkb3IgV2ViXShodHRwOi8vdW5kZXJ0b3cuaW8vKQoqIFtNb2RlbG1hcHBlciAtIFNpbXBsZSwgSW50ZWxsaWdlbnQsIE9iamVjdCBNYXBwaW5nXShodHRwOi8vbW9kZWxtYXBwZXIub3JnLykKKiBbUHJvamVjdCBMb21ib2tdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvKQoqIFtRdWVyeURzbCAtIHR5cGUtc2FmZSBTUUwtbGlrZSBxdWVyaWVzIC0gZmx1ZW50IEFQSV0oaHR0cDovL3d3dy5xdWVyeWRzbC5jb20vKQoqIFtTd2FnZ2VyXShodHRwczovL3N3YWdnZXIuaW8vKQoqIFtTdGFuZGFyZC12ZXJzaW9uXShodHRwczovL2dpdGh1Yi5jb20vY29udmVudGlvbmFsLWNoYW5nZWxvZy9zdGFuZGFyZC12ZXJzaW9uKQoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2UgcmVhZCBbQ09OVFJJQlVUSU5HLm1kXShDT05UUklCVVRJTkcubWQpIGZvciBkZXRhaWxzIG9uIG91ciBjb2RlIG9mIGNvbmR1Y3QsIGFuZCB0aGUgcHJvY2VzcyBmb3Igc3VibWl0dGluZyBwdWxsIHJlcXVlc3RzIHRvIHVzLgoKIyMgVmVyc2lvbmluZwoKVXNhbW9zIFtTZW1WZXJdKGh0dHA6Ly9zZW12ZXIub3JnLykgcGFyYSB2ZXJzaW9uYXIuIFBhcmEgYXMgdmVyc8O1ZXMgZGlzcG9uw612ZWlzLCBjb25zdWx0ZSBhcyBbdGFncyBuZXN0ZSByZXBvc2l0w7NyaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkvcmVsZWFzZXMpLiAKCiMjIEF1dGhvcnMKCiogKipEYW5pZWwgT2xpdmVpcmEqKiAtICpJbml0aWFsIHdvcmsqIC0gW2RhbmllbHNvMjAwN10oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbHNvMjAwNykKClNlZSBhbHNvIHRoZSBsaXN0IG9mIFtjb250cmlidXRvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxzbzIwMDcvdmlydHVhbExpYnJhcnlBUEkvZ3JhcGhzL2NvbnRyaWJ1dG9ycykgd2hvIHBhcnRpY2lwYXRlZCBpbiB0aGlzIHByb2plY3QuCg== readmeEtag: '"34ff87d8c3724949b6189e9bc7882cacf4ab2d2a"' readmeLastModified: Thu, 12 Aug 2021 21:25:41 GMT repositoryId: 236433782 description: Study of Java REST and Spring Boot projects. created: '2020-01-27T06:42:47Z' updated: '2021-08-12T21:25:45Z' language: Java archived: false stars: 2 watchers: 3 forks: 2 owner: danielso2007 logo: https://avatars.githubusercontent.com/u/1641606?v=4 repoEtag: '"e585b224b3c9430b60413d19bddad7af72d26578f9d0119a59ff1603385255a7"' repoLastModified: Thu, 12 Aug 2021 21:25:45 GMT foundInMaster: true category: Code Generators id: 09b5ac67cbb6bc0277c4fa1345238597 - source: openapi3 tags repository: https://github.com/joaoduarte19/openapi4d v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQXBpNEQKKipPcGVuQXBpNEQqKiBpcyBhbiBbT3BlbkFQSSAzLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZCkgZ2VuZXJhdG9yIGZvciBEZWxwaGkuCg== readmeEtag: '"6f4a7c9d416b89e0248aa85bd78a7aadf9a1e962"' readmeLastModified: Thu, 15 Jul 2021 22:31:21 GMT repositoryId: 384214637 description: OpenAPI generator for Delphi created: '2021-07-08T18:24:09Z' updated: '2021-12-25T06:40:12Z' language: Pascal archived: false stars: 2 watchers: 2 forks: 1 owner: joaoduarte19 logo: https://avatars.githubusercontent.com/u/13373632?v=4 license: Apache-2.0 repoEtag: '"ef8cff059ecd963bb85b1693e55e6d00bcc53c41b3b7d29e91b002508a4d193b"' repoLastModified: Sat, 25 Dec 2021 06:40:12 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 9c6cbdff33442ef0c97c06e4df283055 - source: openapi3 tags repository: https://github.com/simonit/vcita-client-java-sdk v3: true repositoryMetadata: base64Readme: >- IyB2Y2l0YS1jbGllbnQtamF2YS1zZGsKCmNsaWVudF9hcGkgQVBJCi0gQVBJIHZlcnNpb246IHYyLjAKCk5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgT3BlbmFwaSBHZW5lcmF0b3IgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcikKCgoqQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSoKCgojIyBSZXF1aXJlbWVudHMKCkJ1aWxkaW5nIHRoZSBBUEkgY2xpZW50IGxpYnJhcnkgcmVxdWlyZXM6CjEuIEphdmEgMS44KwoyLiBNYXZlbiAoMy44LjMrKS9HcmFkbGUgKDcuMispCgojIyBJbnN0YWxsYXRpb24KClRvIGluc3RhbGwgdGhlIEFQSSBjbGllbnQgbGlicmFyeSB0byB5b3VyIGxvY2FsIE1hdmVuIHJlcG9zaXRvcnksIHNpbXBseSBleGVjdXRlOgoKYGBgc2hlbGwKbXZuIGNsZWFuIGluc3RhbGwKYGBgCgpUbyBkZXBsb3kgaXQgdG8gYSByZW1vdGUgTWF2ZW4gcmVwb3NpdG9yeSBpbnN0ZWFkLCBjb25maWd1cmUgdGhlIHNldHRpbmdzIG9mIHRoZSByZXBvc2l0b3J5IGFuZCBleGVjdXRlOgoKYGBgc2hlbGwKbXZuIGNsZWFuIGRlcGxveQpgYGAKClJlZmVyIHRvIHRoZSBbT1NTUkggR3VpZGVdKGh0dHA6Ly9jZW50cmFsLnNvbmF0eXBlLm9yZy9wYWdlcy9vc3NyaC1ndWlkZS5odG1sKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIyBNYXZlbiB1c2VycwoKQWRkIHRoaXMgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QncyBQT006CgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgPGdyb3VwSWQ+Y29tLnZjaXRhLmNsaWVudDwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD52Y2l0YS1jbGllbnQtamF2YS1zZGs8L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+djIuMDwvdmVyc2lvbj4KICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyMgR3JhZGxlIHVzZXJzCgpBZGQgdGhpcyBkZXBlbmRlbmN5IHRvIHlvdXIgcHJvamVjdCdzIGJ1aWxkIGZpbGU6CgpgYGBncm9vdnkKICByZXBvc2l0b3JpZXMgewogICAgbWF2ZW5DZW50cmFsKCkgICAgIC8vIE5lZWRlZCBpZiB0aGUgJ3ZjaXRhLWNsaWVudC1qYXZhLXNkaycgamFyIGhhcyBiZWVuIHB1Ymxpc2hlZCB0byBtYXZlbiBjZW50cmFsLgogICAgbWF2ZW5Mb2NhbCgpICAgICAgIC8vIE5lZWRlZCBpZiB0aGUgJ3ZjaXRhLWNsaWVudC1qYXZhLXNkaycgamFyIGhhcyBiZWVuIHB1Ymxpc2hlZCB0byB0aGUgbG9jYWwgbWF2ZW4gcmVwby4KICB9CgogIGRlcGVuZGVuY2llcyB7CiAgICAgaW1wbGVtZW50YXRpb24gImNvbS52Y2l0YS5jbGllbnQ6dmNpdGEtY2xpZW50LWphdmEtc2RrOnYyLjAiCiAgfQpgYGAKCiMjIyBPdGhlcnMKCkF0IGZpcnN0IGdlbmVyYXRlIHRoZSBKQVIgYnkgZXhlY3V0aW5nOgoKYGBgc2hlbGwKbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgpUaGVuIG1hbnVhbGx5IGluc3RhbGwgdGhlIGZvbGxvd2luZyBKQVJzOgoKKiBgdGFyZ2V0L3ZjaXRhLWNsaWVudC1qYXZhLXNkay12Mi4wLmphcmAKKiBgdGFyZ2V0L2xpYi8qLmphcmAKCiMjIEdldHRpbmcgU3RhcnRlZAoKUGxlYXNlIGZvbGxvdyB0aGUgW2luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikgaW5zdHJ1Y3Rpb24gYW5kIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBKYXZhIGNvZGU6CgpgYGBqYXZhCgovLyBJbXBvcnQgY2xhc3NlczoKaW1wb3J0IGNvbS52Y2l0YS5jbGllbnQuY2xpZW50LkFwaUNsaWVudDsKaW1wb3J0IGNvbS52Y2l0YS5jbGllbnQuY2xpZW50LkFwaUV4Y2VwdGlvbjsKaW1wb3J0IGNvbS52Y2l0YS5jbGllbnQuY2xpZW50LkNvbmZpZ3VyYXRpb247CmltcG9ydCBjb20udmNpdGEuY2xpZW50LmNsaWVudC5tb2RlbHMuKjsKaW1wb3J0IGNvbS52Y2l0YS5jbGllbnQuY2xpZW50LmFwaS5BdXRoZW50aWNhdGlvbkFwaTsKCnB1YmxpYyBjbGFzcyBFeGFtcGxlIHsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICBBcGlDbGllbnQgZGVmYXVsdENsaWVudCA9IENvbmZpZ3VyYXRpb24uZ2V0RGVmYXVsdEFwaUNsaWVudCgpOwogICAgZGVmYXVsdENsaWVudC5zZXRCYXNlUGF0aCgiaHR0cDovL2FwaS52Y2l0YS5iaXovY2xpZW50X2FwaS92MSIpOwoKICAgIEF1dGhlbnRpY2F0aW9uQXBpIGFwaUluc3RhbmNlID0gbmV3IEF1dGhlbnRpY2F0aW9uQXBpKGRlZmF1bHRDbGllbnQpOwogICAgU3RyaW5nIGJ1c2luZXNzVWlkID0gImJ1c2luZXNzVWlkX2V4YW1wbGUiOyAvLyBTdHJpbmcgfCAKICAgIHRyeSB7CiAgICAgIElubGluZVJlc3BvbnNlMjAwIHJlc3VsdCA9IGFwaUluc3RhbmNlLnBvcnRhbHNCdXNpbmVzc1VpZEF1dGhlbnRpY2F0aW9uc0xvZ291dFBvc3QoYnVzaW5lc3NVaWQpOwogICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0KTsKICAgIH0gY2F0Y2ggKEFwaUV4Y2VwdGlvbiBlKSB7CiAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBBdXRoZW50aWNhdGlvbkFwaSNwb3J0YWxzQnVzaW5lc3NVaWRBdXRoZW50aWNhdGlvbnNMb2dvdXRQb3N0Iik7CiAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiU3RhdHVzIGNvZGU6ICIgKyBlLmdldENvZGUoKSk7CiAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiUmVhc29uOiAiICsgZS5nZXRSZXNwb25zZUJvZHkoKSk7CiAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiUmVzcG9uc2UgaGVhZGVyczogIiArIGUuZ2V0UmVzcG9uc2VIZWFkZXJzKCkpOwogICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgfQogIH0KfQoKYGBgCgojIyBEb2N1bWVudGF0aW9uIGZvciBBUEkgRW5kcG9pbnRzCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHA6Ly9hcGkudmNpdGEuYml6L2NsaWVudF9hcGkvdjEqCgpDbGFzcyB8IE1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqQXV0aGVudGljYXRpb25BcGkqIHwgWyoqcG9ydGFsc0J1c2luZXNzVWlkQXV0aGVudGljYXRpb25zTG9nb3V0UG9zdCoqXShkb2NzL0F1dGhlbnRpY2F0aW9uQXBpLm1kI3BvcnRhbHNCdXNpbmVzc1VpZEF1dGhlbnRpY2F0aW9uc0xvZ291dFBvc3QpIHwgKipQT1NUKiogL3BvcnRhbHMve2J1c2luZXNzX3VpZH0vYXV0aGVudGljYXRpb25zL2xvZ291dCB8IAoqQXV0aGVudGljYXRpb25BcGkqIHwgWyoqcG9ydGFsc0J1c2luZXNzVWlkQXV0aGVudGljYXRpb25zU2VuZENvZGVQb3N0KipdKGRvY3MvQXV0aGVudGljYXRpb25BcGkubWQjcG9ydGFsc0J1c2luZXNzVWlkQXV0aGVudGljYXRpb25zU2VuZENvZGVQb3N0KSB8ICoqUE9TVCoqIC9wb3J0YWxzL3tidXNpbmVzc191aWR9L2F1dGhlbnRpY2F0aW9ucy9zZW5kX2NvZGUgfCAKKkF1dGhlbnRpY2F0aW9uQXBpKiB8IFsqKnBvcnRhbHNCdXNpbmVzc1VpZEF1dGhlbnRpY2F0aW9uc1ZlcmlmeUNvZGVQb3N0KipdKGRvY3MvQXV0aGVudGljYXRpb25BcGkubWQjcG9ydGFsc0J1c2luZXNzVWlkQXV0aGVudGljYXRpb25zVmVyaWZ5Q29kZVBvc3QpIHwgKipQT1NUKiogL3BvcnRhbHMve2J1c2luZXNzX3VpZH0vYXV0aGVudGljYXRpb25zL3ZlcmlmeV9jb2RlIHwgCipDbGllbnRBcGkqIHwgWyoqcG9ydGFsc0J1c2luZXNzVWlkQ2xpZW50R2V0KipdKGRvY3MvQ2xpZW50QXBpLm1kI3BvcnRhbHNCdXNpbmVzc1VpZENsaWVudEdldCkgfCAqKkdFVCoqIC9wb3J0YWxzL3tidXNpbmVzc191aWR9L2NsaWVudCB8IAoqRm9ybXNBcGkqIHwgWyoqcG9ydGFsc0J1c2luZXNzVWlkQ29udGFjdEdldEZvcm1HZXQqKl0oZG9jcy9Gb3Jtc0FwaS5tZCNwb3J0YWxzQnVzaW5lc3NVaWRDb250YWN0R2V0Rm9ybUdldCkgfCAqKkdFVCoqIC9wb3J0YWxzL3tidXNpbmVzc191aWR9L2NvbnRhY3QvZ2V0X2Zvcm0gfCBHZXQgTGVhdmUgRGV0YWlscyBGb3JtCipGb3Jtc0FwaSogfCBbKipwb3J0YWxzQnVzaW5lc3NVaWRDb250YWN0U3VibWl0UG9zdCoqXShkb2NzL0Zvcm1zQXBpLm1kI3BvcnRhbHNCdXNpbmVzc1VpZENvbnRhY3RTdWJtaXRQb3N0KSB8ICoqUE9TVCoqIC9wb3J0YWxzL3tidXNpbmVzc191aWR9L2NvbnRhY3Qvc3VibWl0IHwgU3VibWl0cyBMZWF2ZSBEZXRhaWxzIEZvcm0KKkZvcm1zQXBpKiB8IFsqKnBvcnRhbHNCdXNpbmVzc1VpZFNoYXJlRG9jdW1lbnRzRm9ybUdldEZvcm1HZXQqKl0oZG9jcy9Gb3Jtc0FwaS5tZCNwb3J0YWxzQnVzaW5lc3NVaWRTaGFyZURvY3VtZW50c0Zvcm1HZXRGb3JtR2V0KSB8ICoqR0VUKiogL3BvcnRhbHMve2J1c2luZXNzX3VpZH0vc2hhcmVfZG9jdW1lbnRzX2Zvcm0vZ2V0X2Zvcm0gfCBHZXQgU2hhcmUgRG9jdW1lbnRzIEZvcm0KKkZvcm1zQXBpKiB8IFsqKnBvcnRhbHNCdXNpbmVzc1VpZFNoYXJlRG9jdW1lbnRzRm9ybVN1Ym1pdFBvc3QqKl0oZG9jcy9Gb3Jtc0FwaS5tZCNwb3J0YWxzQnVzaW5lc3NVaWRTaGFyZURvY3VtZW50c0Zvcm1TdWJtaXRQb3N0KSB8ICoqUE9TVCoqIC9wb3J0YWxzL3tidXNpbmVzc191aWR9L3NoYXJlX2RvY3VtZW50c19mb3JtL3N1Ym1pdCB8IFN1Ym1pdHMgU2hhcmUgRG9jdW1lbnRzIEZvcm0KCgojIyBEb2N1bWVudGF0aW9uIGZvciBNb2RlbHMKCiAtIFtDbGllbnRdKGRvY3MvQ2xpZW50Lm1kKQogLSBbRGF0YV0oZG9jcy9EYXRhLm1kKQogLSBbRGF0YTFdKGRvY3MvRGF0YTEubWQpCiAtIFtEYXRhMl0oZG9jcy9EYXRhMi5tZCkKIC0gW0RhdGEzXShkb2NzL0RhdGEzLm1kKQogLSBbRmllbGRdKGRvY3MvRmllbGQubWQpCiAtIFtJbmxpbmVPYmplY3RdKGRvY3MvSW5saW5lT2JqZWN0Lm1kKQogLSBbSW5saW5lT2JqZWN0MV0oZG9jcy9JbmxpbmVPYmplY3QxLm1kKQogLSBbSW5saW5lT2JqZWN0Ml0oZG9jcy9JbmxpbmVPYmplY3QyLm1kKQogLSBbSW5saW5lT2JqZWN0M10oZG9jcy9JbmxpbmVPYmplY3QzLm1kKQogLSBbSW5saW5lUmVzcG9uc2UyMDBdKGRvY3MvSW5saW5lUmVzcG9uc2UyMDAubWQpCiAtIFtJbmxpbmVSZXNwb25zZTIwMDFdKGRvY3MvSW5saW5lUmVzcG9uc2UyMDAxLm1kKQogLSBbSW5saW5lUmVzcG9uc2U0MDFdKGRvY3MvSW5saW5lUmVzcG9uc2U0MDEubWQpCiAtIFtNYXR0ZXJdKGRvY3MvTWF0dGVyLm1kKQogLSBbUG9ydGFsc0J1c2luZXNzVWlkQXV0aGVudGljYXRpb25zU2VuZENvZGVQb3N0MjAwUmVzcG9uc2VdKGRvY3MvUG9ydGFsc0J1c2luZXNzVWlkQXV0aGVudGljYXRpb25zU2VuZENvZGVQb3N0MjAwUmVzcG9uc2UubWQpCiAtIFtQb3J0YWxzQnVzaW5lc3NVaWRDbGllbnRHZXQyMDBSZXNwb25zZV0oZG9jcy9Qb3J0YWxzQnVzaW5lc3NVaWRDbGllbnRHZXQyMDBSZXNwb25zZS5tZCkKIC0gW1BvcnRhbHNCdXNpbmVzc1VpZENvbnRhY3RHZXRGb3JtR2V0MjAwUmVzcG9uc2VdKGRvY3MvUG9ydGFsc0J1c2luZXNzVWlkQ29udGFjdEdldEZvcm1HZXQyMDBSZXNwb25zZS5tZCkKIC0gW1BvcnRhbHNCdXNpbmVzc1VpZENvbnRhY3RTdWJtaXRGaWVsZHNdKGRvY3MvUG9ydGFsc0J1c2luZXNzVWlkQ29udGFjdFN1Ym1pdEZpZWxkcy5tZCkKIC0gW1BvcnRhbHNCdXNpbmVzc1VpZENvbnRhY3RTdWJtaXRGb3JtRGF0YV0oZG9jcy9Qb3J0YWxzQnVzaW5lc3NVaWRDb250YWN0U3VibWl0Rm9ybURhdGEubWQpCiAtIFtQb3J0YWxzQnVzaW5lc3NVaWRDb250YWN0U3VibWl0UG9zdDIwMFJlc3BvbnNlXShkb2NzL1BvcnRhbHNCdXNpbmVzc1VpZENvbnRhY3RTdWJtaXRQb3N0MjAwUmVzcG9uc2UubWQpCiAtIFtQb3J0YWxzQnVzaW5lc3NVaWRDb250YWN0U3VibWl0U291cmNlRGF0YV0oZG9jcy9Qb3J0YWxzQnVzaW5lc3NVaWRDb250YWN0U3VibWl0U291cmNlRGF0YS5tZCkKIC0gW1BvcnRhbHNCdXNpbmVzc1VpZFNoYXJlRG9jdW1lbnRzRm9ybUdldEZvcm1HZXQyMDBSZXNwb25zZV0oZG9jcy9Qb3J0YWxzQnVzaW5lc3NVaWRTaGFyZURvY3VtZW50c0Zvcm1HZXRGb3JtR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtQb3J0YWxzQnVzaW5lc3NVaWRTaGFyZURvY3VtZW50c0Zvcm1TdWJtaXRGaWVsZHNdKGRvY3MvUG9ydGFsc0J1c2luZXNzVWlkU2hhcmVEb2N1bWVudHNGb3JtU3VibWl0RmllbGRzLm1kKQogLSBbUG9ydGFsc0J1c2luZXNzVWlkU2hhcmVEb2N1bWVudHNGb3JtU3VibWl0Rm9ybURhdGFdKGRvY3MvUG9ydGFsc0J1c2luZXNzVWlkU2hhcmVEb2N1bWVudHNGb3JtU3VibWl0Rm9ybURhdGEubWQpCiAtIFtQb3J0YWxzQnVzaW5lc3NVaWRTaGFyZURvY3VtZW50c0Zvcm1TdWJtaXRQb3N0MjAwUmVzcG9uc2VdKGRvY3MvUG9ydGFsc0J1c2luZXNzVWlkU2hhcmVEb2N1bWVudHNGb3JtU3VibWl0UG9zdDIwMFJlc3BvbnNlLm1kKQogLSBbU2VjdGlvbl0oZG9jcy9TZWN0aW9uLm1kKQoKCiMjIERvY3VtZW50YXRpb24gZm9yIEF1dGhvcml6YXRpb24KCkF1dGhlbnRpY2F0aW9uIHNjaGVtZXMgZGVmaW5lZCBmb3IgdGhlIEFQSToKIyMjIGRlZmF1bHQKCi0gKipUeXBlKio6IE9BdXRoCi0gKipGbG93Kio6IGltcGxpY2l0Ci0gKipBdXRob3JpemF0aW9uIFVSTCoqOiBodHRwczovL2lnbm9yZS5teWNsaWVudHMuaW8KLSAqKlNjb3BlcyoqOiAKICAtIGNsaWVudF9hcGk6IEFsbCBjbGllbnRfYXBpIHJlbGF0ZWQgb3BlcmF0aW9ucwogIC0gY2xpZW50X2FwaV9jcmVhdGU6IGNsaWVudF9hcGkgY3JlYXRlIHNjb3BlCiAgLSBjbGllbnRfYXBpX2RlbGV0ZTogY2xpZW50X2FwaSBkZWxldGUgc2NvcGUKICAtIGNsaWVudF9hcGlfcmVhZDogY2xpZW50X2FwaSByZWFkIHNjb3BlCiAgLSBjbGllbnRfYXBpX3VwZGF0ZTogY2xpZW50X2FwaSB1cGRhdGUgc2NvcGUKCgojIyBSZWNvbW1lbmRhdGlvbgoKSXQncyByZWNvbW1lbmRlZCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFwaUNsaWVudGAgcGVyIHRocmVhZCBpbiBhIG11bHRpdGhyZWFkZWQgZW52aXJvbm1lbnQgdG8gYXZvaWQgYW55IHBvdGVudGlhbCBpc3N1ZXMuCgojIyBBdXRob3IKCgoK readmeEtag: '"b4af61ead61427c9fbe38ae35630a8344c8658e6"' readmeLastModified: Fri, 01 Apr 2022 21:05:46 GMT repositoryId: 468561776 description: null created: '2022-03-11T01:03:44Z' updated: '2022-03-15T19:45:45Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: SimonIT logo: https://avatars.githubusercontent.com/u/11720038?v=4 repoEtag: '"7527163a255378208b24e5f65c21bc091c308f970a51ba190b6cf5782ff522a3"' repoLastModified: Tue, 15 Mar 2022 19:45:45 GMT foundInMaster: true category: SDK id: 3f38f5167e5778fdbf306b848f22197f - source: openapi3 tags repository: https://github.com/detain/myadmin-client-vue v3: true id: 263be96f5acdb8019bb4aa99faf938b6 repositoryMetadata: base64Readme: >- IyBJbnRlclNlcnZlciBNeUFkbWluIENsaWVudCBJbnRlcmZhY2UKCkNoZWNrIG91dCB0aGUgW1dJS0ldKHdpa2kpIGZvciBkb2N1bWVudGF0aW9uLgoKIyMgRkFRCgojIyMgR2V0dGluZyBhIGJsYW5rIHBhZ2Ugd2hlbiBsb2FkaW5nIHRoZSBzaXRlCgpDaGVjayB5b3VyIGFkIGJsb2NrZXIgb3IgcHJpdmFjeSBhZGRvbnMsIHRoZXkgbWlnaHQgbmVlZCB0byBiZSBkaXNhYmxlZCBmb3IgdGhpcyBzaXRlLgoKIyMgRGV2ZWxvcG1lbnQKCiogW3ZpdGVqcy9hd2Vzb21lLXZpdGU6IOKaoe+4jyBBIGN1cmF0ZWQgbGlzdCBvZiBhd2Vzb21lIHRoaW5ncyByZWxhdGVkIHRvIFZpdGUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS92aXRlanMvYXdlc29tZS12aXRlKQoKQWZ0ZXIgdGhpcyBpcyBkb25lIG9uIGFsbCBvZiB0aGUgcmVwb3MgcGljayB0aGUgYmVzdCBvbmUgYW5kIHNldGl0IHVwIC4uIHRyeSB0byBwcmVzZXJ2ZSBnaXQgaGlzdG9yeQoKIyMjIFRPRE8gUm9hZC1NYXAKCiogKioxLjAtYWxwaGEqKiBNaWxlU3RvbmUKICAqIG9yZGVyIHNlcnZpY2UgcGFnZXMKICAgICogWyBdIHNlcnZlcgogICAgKiBbIF0gZG9tYWluCiAgKiBbIF0gY2FydC9paWRzIHBhcnNlZCBhbmQgaGFuZGxlZAoqICoqMS4wLWJldGEqKiBNaWxlU3RvbmUKICAqIFsgXSB1cGRhdGUgcmVzcG9uc2UgY29kZXMgdG8gbWF0Y2ggdGFibGUgYmVsb3cKICAqIFsgXSBsb2FkaW5nIC8gbm8gZW50cmllcyBtZXNzYWdlcwogICogc2VydmljZXMgbGlzdCBwYWdlcwogICAgKiBkYXRhdGFibGVzIG9yIGVxdWl2YWxlbnQKICAgICAgKiBbeF0gZmlsdGVyaW5nCiAgICAgICogWyBdIHNvcnRpbmcKICAgICAgKiBbIF0gcGFnaW5hdGlvbgogICAgICAqIFsgXSBwcmludC9leHBvcnQKKiAqKjEuMC1zdGFibGUqKiBNaWxlU3RvbmUKICAqIFsgXSBzZXR1cCBnaXRodWIgYWN0aW9ucyBhbmQgaG9va3MgZm9yIGF1dG9tYXRlZCB0ZXN0aW5nCiAgKiBbIF0gbWFrZSBzdXJlIGFmZmlsaWF0ZSB0cmFja2luZyBzdGlsbCB3b3JrcwogICogWyBdIGFuYWx5dGljcwogICogWyBdIG1pbmltaXplIGFwaSBmaWVsZHMgaW4gcmVxdWVzdHMvcmVzcG9uc2VzIGFuZCBmaWx0ZXIgdGhlbSBmb3Igc2VjdXJpdHkKICAqIFsgXSBhcGkgZmluYWxpemVkCiogRnV0dXJlIFRhc2tzCiAgKiBbIF0gaW1wcm92ZSB3ZWJwYWNraW5nCiAgKiBbIF0gbW92ZSB0eXBlIGRlZmluaXRpb25zIGludG8gL3R5cGVzPwogICogWyBdIHV0aWxpemUgdGhlIGZvcm0gdmFsaWRhdGlvbiBzdHVmZgogICogWyBdIHJlcGxhY2UganF1ZXJ5IHR5cGUgY2FsbHMgd2l0aCBidWlsdCBpbiB0ZW1wbGF0ZSBoYW5kbGluZyBhbmQgc3VjaAogICogWyBdIGJzNS9hZG1pbmx0ZTQgaHR0cHM6Ly9naXRodWIuY29tL2NvbGlmZi9ib290c3RyYXAtNS1taWdyYXRlLXRvb2wvYmxvYi9tYWluL2d1bHBmaWxlLmpzICBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9KdWFuLWVzY29iYXI5NC9mNzY1MzVhMTI2NGFjNmY3MjUxYzY0M2FmNTBjMTg0ZAogICogWyBdIGlvbmljIGNhcGFjaXRvcgogICAgKiBbIF0gYW5kcm9pZCBidWlsZAogICAgKiBbIF0gaW9zIGJ1aWxkCiAgKiBbeF0gZWxlY3Ryb24gYnVpbGQKICAgICogW3hdIHdpbmRvd3MvbGludXgvbWFjIGJ1aWxkcwogICAgKiBbIF0gYXV0b21hdGVkIGJ1aWxkcwogICAgKiBbeF0ganMvY3NzIGFzc2V0cyBsb2FkZWQgbG9jYWxseQoKCltlbGVjdHJvbi12aXRlL2VsZWN0cm9uLXZpdGUtdnVlOiDwn6WzIFJlYWxseSBzaW1wbGUgRWxlY3Ryb24gKyBWaXRlICsgVnVlIGJvaWxlcnBsYXRlLl0oaHR0cHM6Ly9naXRodWIuY29tL2VsZWN0cm9uLXZpdGUvZWxlY3Ryb24tdml0ZS12dWUpCltjYW94aWVtZWloYW8vZWxlY3Ryb24tdml0ZS1ib2lsZXJwbGF0ZTog8J+TmiBSZWFsbHkgc2ltcGxlIEVsZWN0cm9uICsgVml0ZSBib2lsZXJwbGF0ZS5dKGh0dHBzOi8vZ2l0aHViLmNvbS9jYW94aWVtZWloYW8vZWxlY3Ryb24tdml0ZS1ib2lsZXJwbGF0ZSkKW3lpbmdwZW5nc2hhL2VsZWN0cm9uLXZpdGUtcXVpY2stc3RhcnQ6IOKaoSBGdWxsIHN0YWNrIHVzZXMgVml0ZSB0byBydW4gRWxlY3Ryb24gYXBwbGljYXRpb24sIGluY2x1ZGluZyBtYWluIHByb2Nlc3MuXShodHRwczovL2dpdGh1Yi5jb20veWluZ3BlbmdzaGEvZWxlY3Ryb24tdml0ZS1xdWljay1zdGFydCkKW3VtYnJlbGxhMjIvZWxlY3Ryb24tdml0ZS10ZW1wbGF0ZTogVGhpcyBwcm9qZWN0IGlzIGEgdnVlMyArIFZpdGUgKyBlbGVjdHJvbiBwcm9qZWN0IHRlbXBsYXRlIGNvbXBvc2VkIG9mIFZpdGUgYW5kIHJvbGx1cC4gSXQgaGFzIHRoZSBzYW1lIGZ1bmN0aW9ucyBhcyBteSBwcmV2aW91cyBlbGVjdHJvbitWdWUrdGVtcGxhdGUgcHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL3VtYnJlbGxhMjIvZWxlY3Ryb24tdml0ZS10ZW1wbGF0ZSkKW0FyY2hlckd1L2Zhc3Qtdml0ZS1lbGVjdHJvbjogVml0ZSArIEVsZWN0cm9uIHdpdGggZXNidWlsZCwgc28gZmFzdCEg4pqhXShodHRwczovL2dpdGh1Yi5jb20vQXJjaGVyR3UvZmFzdC12aXRlLWVsZWN0cm9uKQpbY2F3YS05My92aXRlLWVsZWN0cm9uLWJ1aWxkZXI6IFNlY3VyZSBib2lsZXJwbGF0ZSBmb3IgRWxlY3Ryb24gYXBwIGJhc2VkIG9uIFZpdGUuIFR5cGVTY3JpcHQgKyBWdWUvUmVhY3QvQW5ndWxhci9TdmVsdGUvVmFuaWxsYV0oaHR0cHM6Ly9naXRodWIuY29tL2Nhd2EtOTMvdml0ZS1lbGVjdHJvbi1idWlsZGVyLykKW2VsZWN0cm9uLXZpdGUvdml0ZS1wbHVnaW4tZWxlY3Ryb24tcmVuZGVyZXI6IFN1cHBvcnQgdXNlIE5vZGUuanMgQVBJIGluIEVsZWN0cm9uLVJlbmRlcmVyXShodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24tdml0ZS92aXRlLXBsdWdpbi1lbGVjdHJvbi1yZW5kZXJlcikKW0RlbHV6ZS9lbGVjdHJvbi12dWUtdGVtcGxhdGU6IFNpbXBsZSBWdWUzICsgRWxlY3Ryb24gc3RhcnRlciB0ZW1wbGF0ZSBpbiBUeXBlU2NyaXB0LCBpbmNsdWRpbmcgVml0ZUpTIGFuZCBFbGVjdHJvbiBCdWlsZGVyXShodHRwczovL2dpdGh1Yi5jb20vRGVsdXplL2VsZWN0cm9uLXZ1ZS10ZW1wbGF0ZSkKW3RhZGE1aGkvdml0cm9uOiBUaGlzIGlzIGEgbGlicmFyeSB0byBidWlsZCAod2luLCBsaW51eCwgbWFjKSBkZXNrdG9wIGFwcHMgZm9yIG1vZGVybiB3ZWIgcHJvamVjdHMgd2l0aCB2aXRlIGFuZCBlbGVjdHJvbi5dKGh0dHBzOi8vZ2l0aHViLmNvbS90YWRhNWhpL3ZpdHJvbikKW2pvb3kyL3Z1dHJvbjog8J+SmiBRdWljayBTdGFydCBUZW1wbGF0ZXMgZm9yIFZpdGUgKyBFbGVjdHJvbiArIFZ1ZSAzICsgVnVldGlmeSArIFR5cGVTY3JpcHQuIFZ1dHJvbiBpcyBhIHByZWNvbmZpZ3VyZWQgdGVtcGxhdGUgZm9yIGRldmVsb3BpbmcgRWxlY3Ryb24gY3Jvc3MtcGxhdGZvcm0gZGVza3RvcCBhcHBzLiBJdCB1c2VzIFZ1ZSAzIGFuZCBhbGxvd3MgeW91IHRvIGJ1aWxkIGEgZmFzdCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB3aXRoIGxpdHRsZSBlZmZvcnQuXShodHRwczovL2dpdGh1Yi5jb20vam9veTIvdnV0cm9uKQpbY2FveGllbWVpaGFvL3ZpdGUtZWxlY3Ryb24tcGx1Z2luOiBIaWdoLXBlcmZvcm1hbmNlLCBlc2J1aWxkLWJhc2VkIFZpdGUgRWxlY3Ryb24gcGx1Z2luXShodHRwczovL2dpdGh1Yi5jb20vY2FveGllbWVpaGFvL3ZpdGUtZWxlY3Ryb24tcGx1Z2luKQoKIyMjIFBhZ2UgU3RhdHVzCgoqIFdvcmtpbmcgc3RhdHVzIGRvZXMgbm90IGluY2x1ZGUgdGhlIGV4cG9ydC9zb3J0aW5nIHJlbGF0ZWQgb3B0aW9ucyBvbiB0aGUgdmlldyBzZXJ2aWNlIGxpc3QgdHlwZSBwYWdlcwoKfCBVcmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgV29ya2luZyB8IEFQSSBDYWxsIHwgQVBJIFNwZWMgfCBCcmVhZGNydW0gfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS18CnwgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbG9naW4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCAgICAgICAgICAgfAp8IC9zdWRvLzpzZXNzaW9uSWQgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICB8CnwgL2FjY291bnQvaW5mbyAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvYWNjb3VudC9wYXNzICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9hY2NvdW50L3NldHRpbmdzICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgICAgICAgICAgfCAgICAgICAgICB8IFt4XSAgICAgICB8CnwgL2RucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvZG5zLzppZCAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgICAgICAgICAgfCAgICAgICAgICB8IFt4XSAgICAgICB8CnwgL2FmZmlsaWF0ZS9mYXEgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgW3hdICAgICAgIHwKfCAvYWZmaWxpYXRlL3N0YXR1c19sZWdlbmQgICAgICAgIHwgW3hdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUvdG9zICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgICAgICAgICAgfCAgICAgICAgICB8IFt4XSAgICAgICB8CnwgL2FmZmlsaWF0ZS93ZWJfdHJhZmZpYyAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvYmFja3VwcyAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzLzppZCAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2JhY2t1cHMvOmlkL2NhbmNlbCAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvYmFja3Vwcy86aWQvaW52b2ljZXMgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzLzppZC93ZWxjb21lX2VtYWlsICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2JhY2t1cHMvb3JkZXIgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvZG9tYWlucyAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZCAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2RvbWFpbnMvOmlkL2NhbmNlbCAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvZG9tYWlucy86aWQvaW52b2ljZXMgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZC93ZWxjb21lX2VtYWlsICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2Zsb2F0aW5nX2lwcyAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvZmxvYXRpbmdfaXBzLzppZC9jYW5jZWwgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkL2ludm9pY2VzICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2Zsb2F0aW5nX2lwcy86aWQvd2VsY29tZV9lbWFpbCB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbGljZW5zZXMgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2xpY2Vuc2VzLzppZC9jYW5jZWwgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbGljZW5zZXMvOmlkL2ludm9pY2VzICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvd2VsY29tZV9lbWFpbCAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL21haWwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbWFpbC86aWQgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9tYWlsLzppZC9jYW5jZWwgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL21haWwvOmlkL2ludm9pY2VzICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbWFpbC86aWQvd2VsY29tZV9lbWFpbCAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3FzLzppZCAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvcXMvOmlkL2NhbmNlbCAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcy86aWQvaW52b2ljZXMgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3FzLzppZC93ZWxjb21lX2VtYWlsICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvc2VydmVycyAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZCAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3NlcnZlcnMvOmlkL2NhbmNlbCAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvc2VydmVycy86aWQvaW52b2ljZXMgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC93ZWxjb21lX2VtYWlsICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3NzbC86aWQvY2FuY2VsICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvc3NsLzppZC9pbnZvaWNlcyAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zc2wvOmlkL3dlbGNvbWVfZW1haWwgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3ZwcyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZCAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2Jsb2NrX3NtdHAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvY2FuY2VsICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9jaGFuZ2VfdGltZXpvbmUgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2Rpc2FibGVfY2QgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvZGlzYWJsZV9xdW90YSAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9lamVjdF9jZCAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2VuYWJsZV9xdW90YSAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvaW52b2ljZXMgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9pbnNlcnRfY2QgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3Jlc3RhcnQgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvcmVpbnN0YWxsX29zICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9yZXZlcnNlX2RucyAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3NldHVwX3ZuYyAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvc3RhcnQgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9zdG9wICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3ZpZXdfZGVza3RvcCAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvd2VsY29tZV9lbWFpbCAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvd2Vic2l0ZXMgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3dlYnNpdGVzLzppZC9jYW5jZWwgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvd2Vic2l0ZXMvOmlkL2ludm9pY2VzICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvbG9naW4gICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3dlYnNpdGVzLzppZC93ZWxjb21lX2VtYWlsICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvcmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCAgICAgICAgICAgfAp8IC9hY2NvdW50L3VzZXJuYW1lICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2NhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvY2FydC86OmlpZHMgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9pbnZvaWNlcyAgICAgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3BheW1lbnRfdHlwZXMgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvcHJlcGF5cyAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9wYXkvOm1ldGhvZC86aW52b2ljZXMgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3RpY2tldHMgICAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvdGlja2V0cy86aWQgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC90aWNrZXRzL25ldyAgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2FmZmlsaWF0ZS9iYW5uZXIvOmlkICAgICAgICAgICB8IFsgXSAgICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgWyBdICAgICAgIHwKfCAvYWZmaWxpYXRlL2Jhbm5lcnMgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvbGFuZGluZ19wZyAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2FmZmlsaWF0ZS9wYXltZW50X3NldHVwICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvYWZmaWxpYXRlL3JpY2hfcmVwb3J0ICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvc2FsZXNfZ3JhcGggICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2FmZmlsaWF0ZS9zYWxlc19yZXBvcnQgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvYWZmaWxpYXRlL3RyYWZmaWNfZ3JhcGggICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC9jb250YWN0ICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2RvbWFpbnMvOmlkL2Ruc3NlYyAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZG9tYWlucy86aWQvbmFtZXNlcnZlcnMgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC9yZW5ldyAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2RvbWFpbnMvOmlkL3RyYW5zZmVyICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZG9tYWlucy86aWQvd2hvaXMgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zL29yZGVyICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2RvbWFpbnMvb3JkZXIvOmRvbWFpbiAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZG9tYWlucy9vcmRlci86ZG9tYWluLzpyZWdUeXBlIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2Zsb2F0aW5nX2lwcy86aWQvY2hhbmdlX2lwICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZmxvYXRpbmdfaXBzL29yZGVyICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvY2hhbmdlX2lwICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2xpY2Vuc2VzLzppZC9jaGFuZ2Vfb3MgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvbGljZW5zZXMvb3JkZXIgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcy9vcmRlci86Y2F0VGFnICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL21haWwvOmlkL2FsZXJ0cyAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvbWFpbC86aWQvZGVueV9ydWxlcyAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9tYWlsL29yZGVyICAgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9iYWNrdXAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL2JhY2t1cHMgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvY2hhbmdlX3RpbWV6b25lICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9lamVjdF9jZCAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL2luc2VydF9jZCAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvcmVpbnN0YWxsX29zICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9yZXNldF9wYXNzd29yZCAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL3Jlc3RhcnQgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvcmVzdG9yZSAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9yZXZlcnNlX2RucyAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL3NldHVwX3ZuYyAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvc3RhcnQgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9zdG9wICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL3RyYWZmaWNfdXNhZ2UgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvdmlld19kZXNrdG9wICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzL29yZGVyICAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvc2VydmVycy86aWQvYmFuZHdpZHRoX2dyYXBoICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9pcG1pX2xpdmUgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3NlcnZlcnMvOmlkL3JldmVyc2VfZG5zICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvc2VydmVycy9vcmRlciAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3NzbC86aWQgICAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvc3NsLzppZC9jaGFuZ2VfYXBwcm92ZXJfZW1haWwgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wvOmlkL3Jlc2VuZF9hcHByb3Zlcl9lbWFpbCAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3NzbC9vcmRlciAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9iYWNrdXAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2JhY2t1cHMgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3Zwcy86aWQvYnV5X2hkX3NwYWNlICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9idXlfaXAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2NoYW5nZV9ob3N0bmFtZSAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3Zwcy86aWQvY2hhbmdlX3Jvb3RfcGFzc3dvcmQgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9jaGFuZ2Vfd2VidXpvX3Bhc3N3b3JkIHwgWyBdICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3Jlc2V0X3Bhc3N3b3JkICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3Zwcy86aWQvcmVzdG9yZSAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9zbGljZXMgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3RyYWZmaWNfdXNhZ2UgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3Zwcy9vcmRlciAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvd2Vic2l0ZXMvOmlkL2J1eV9pcCAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvZG93bmxvYWRfYmFja3VwcyAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3dlYnNpdGVzLzppZC9taWdyYXRpb24gICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvd2Vic2l0ZXMvOmlkL3JldmVyc2VfZG5zICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy9vcmRlciAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CgojIyMgSG93IGl0IFdvcmtzCgpXZSB1c2UgVnVlIDMgd2l0aCB0aGUgQ29tcG9zaXRpb24gQVBJIHRvIHByb3ZpZGUgYW4gZW50aXJlIHdlYnNpdGUvYXBwbGljYXRpb24gaW4gYSBzaW5nbGUgcGFnZS4gIFRoaXMgaXMgZG9uZSB1c2luZyBhIGNvbWJpbmF0aW9uIG9mIFZ1ZSBTRkMncyAoU2luZ2xlIEZpbGUgQ29tcG9uZW50cykgd2hpY2ggYW5kIHRoZSBWdWUgUm91dGVyIHRvIGNoYW5nZSB0aGUgdXJsIGluIHRoZSBicm93c2VyIHdpdGhvdXQgYWN0dWFsbHkgbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlLgoKVmFyaWFibGVzIGFyZSBtb3N0bHkgaGFuZGxlZCBieSByZWZlcmVuY2UgKGxpa2UgYSBwb2ludGVyKS4gIFRoaXMgYWxsb3dzIHVzIHRvIHBhc3MgYXJvdW5kIHZhcmlhYmxlcyB0aGF0IGFyZSB1a2VwdCB1cCB0byBkYXRlIHdoZW4gY2hhbmdlZCBpbiBvdGhlciBzZWN0aW9ucyBvZiB0aGUgc2l0ZS4KCiMjIyMgQ29yZSBGdW5jdGlvbmFsaXR5CgpUaGVzZSBhcmUgdGhlIGxpYnMgd2hpY2ggcG93ZXIgdGhlIG1ham9yaXR5IG9mIHRoZSBzaXRlcyBmdW5jdGlvbmFsaXR5LiAgWW91IHNob3VsZCBhdCBsZWFzdCBicmVpZmx5IHJlYWQgb3B2ZXIgZWFjaCBvZiB0aGVtLgoKKiBbKipWdWUgMyoqXShodHRwczovL3Z1ZWpzLm9yZy9ndWlkZS9pbnRyb2R1Y3Rpb24uaHRtbCkgaXMgdGhlICoqVGVtcGxhdGUgRW5naW5lKiogd2l0aCBhbGwgdGhlIG1vZGVybiBiZWxscyBhbmQgd2hpc3RsZXMgbGlrZSBhdXRvbWF0aWNhbGx5IHVwZGF0aW5nIHRoZSBkaXNwbGF5IHJlbmRlciBhcyBkYXRhIGNoYW5nZXMuCiogWyoqUGluaWEqKl0oaHR0cHM6Ly9waW5pYS52dWVqcy5vcmcvaW50cm9kdWN0aW9uLmh0bWwpIGlzIHVzZWQgdG8gcHJvdmlkZSAqKkRhdGEgU3RvcmVzKiogd2hpY2ggYWxsb3cgdXMgdG8gbG9hZCBkYXRhIHRoYXQgaXMgcmV1c2FibGUgYmV0d2VlbiBwYWdlcyB3aXRob3V0IGhhdmluZyB0byByZWxvYWQgdGhlIGRhdGEuCiogWyoqVnVlIFJvdXRlcioqXShodHRwczovL3JvdXRlci52dWVqcy5vcmcvaW5zdGFsbGF0aW9uLmh0bWwpIGlzIHVzZWQgZm9yICoqUm91dGluZyoqIHRvIHRyaWdnZXIgY2FsbGluZyBwYWdlcyBiYXNlZCBvbiB0aGUgdXJsIHdoaWxlIGFsbCBiZWluZyBpbiBhIHNpbmdsZSBwYWdlKS4KCiMjIyMgQWRkaXRpb25hbCBGdW5jdGlvbmFsaXR5CgpUaGlzIHN0dWZmIHByb3ZpZGVzIGdvb2QgZmVhdHVyZXMgYnV0IGRvZXMgbm90IHJlcXVpcmUgeW91IHRvIHJlYWxseSBiZSBmYW1paWFyIHdpdGggaXQuICBTa2lwIG92ZXIgdGhlc2UgdW5sZXNzIHlvdSBmaW5kIHlvdSBuZWVkIHRvIGtub3cgbW9yZSBhYm91dCBvbmUgb2YgdGhlbSBmb3Igc29tZSByZWFzb24uCgoqIFsqKlZpdGUqKl0oaHR0cHM6Ly92aXRlanMuZGV2L2d1aWRlLykgaXMgb3VyICoqRnJvbnRlbmQgVG9vbGluZyoqIHN5c3RlbSB3aGljaCBwcm92aWRlcyBhIG5pY2UgZGV2IHNldHVwIGFuZCBoYW5kbGVzIGJ1aWxkaW5nIHRoZSBwcm9qZWN0IGZvciBwcm9kdWN0aW9uIHVzZS4KKiBbKipWaXRlIFBXQSoqXShodHRwczovL3ZpdGUtcHdhLW9yZy5uZXRsaWZ5LmFwcC9ndWlkZS8pIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHRoZSB0aGUgZmlsZXMgbmVlZGVkIHNvIHdlIGFyZSBhIFsqKlBXQSoqXShodHRwczovL3dlYi5kZXYvbGVhcm4vcHdhLykgKCoqUHJvZ3Jlc3NpdmUgV2ViIEFwcCoqKS4KKiBbKipFbGVjdHJvbioqXShodHRwczovL3d3dy5lbGVjdHJvbmpzLm9yZy8pIGFsbG93cyB1cyB0byBidWlsZCBhICoqRGVza3RvcCBBcHAqKiBmb3IgbWFjT1MsIFdpbmRvd3MsIExpbnV4LCBhcyB3ZWxsIGFzIE1vYmlsZSBEZXZpY2UgdmVyc2lvbnMuCiogWyoqRVNMaW50KipdKGh0dHBzOi8vZXNsaW50Lm9yZy8pIGlzIG91ciAqKkxpbnRlcioqIHdoaWNoIGNhbiBkZXRlY3QgYSB3aWRlIHJhbmdlIG9mIHByb2JsZW1zIHlvdXIgY29kZS4KKiBbKipQcmV0dGllcioqXShodHRwczovL3ByZXR0aWVyLmlvLykgaXMgb3VyICoqQ29kZSBGb3JtYXR0ZXIqKiBhbGxvd2luZyBhdXRvbWF0aWMgZm9ybWF0dGluZyBvZiBjb2RlIGJhc2VkIG9uIG91ciBzZXQgb2YgcHJlZGVmaW5lZCBydWxlcy4KKiBbKipWaXRlc3QqKl0oaHR0cHM6Ly92aXRlc3QuZGV2L2d1aWRlLykgaXMgb3VyICoqVW5pdCBUZXN0aW5nKiogZnJhbWV3b3JrLgoqIFsqKlZlZVZhbGlkYXRlKipdKGh0dHBzOi8vdmVlLXZhbGlkYXRlLmxvZ2FyZXRtLmNvbS92NC9ndWlkZS9vdmVydmlldy8pIGlzIGluc3RhbGxlZCBmb3IgKipGb3JtIFZhbGlkYXRpb24qKgoqIFsqKlZ1ZS1pMThuKipdKGh0dHBzOi8vdnVlLWkxOG4uaW50bGlmeS5kZXYvZ3VpZGUvaW50cm9kdWN0aW9uLmh0bWwpIGlzIG91ciAqKlRyYW5zbGF0aW9uKiogbGliLgoKIyMjIyBJbnNwZWN0aW5nIGFuZCBEZWJ1Z2dpbmcgVGhlIExpdmUgRGF0YQoKVGhlcmUgYXJlIHNldmVyYWwgRGV2ZWxvcGVyIENvbnNvbGUgdHlwZSBpbnRlcmZhY2VzIHNldHVwIHdoaWNoIHdlIGNhbiB1c2UgdG8gdmlldyBhbmQgbW9kaWZ5IHRoZSBsaXZlIHZhcmlhYmxlcyBnZW5lcmF0aW5nIHRoZSBzaXRlLgoKQnJvd3NlciBFeHRlbnNpb24gW1Z1ZSBEZXZ0b29sc10oaHR0cHM6Ly9kZXZ0b29scy52dWVqcy5vcmcvZ3VpZGUvaW5zdGFsbGF0aW9uLmh0bWwpCiFbdnVlLWRldnRvb2xzLWV4dGVuc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL2RldGFpbi9teWFkbWluLWNsaWVudC12dWUvYXNzZXRzLzEzNjQ1MDQvNTM2ZTA1YmUtOTY1My00M2ZmLWFjY2UtMmIyMDgwZjc2YTk0KQoKVGhlIG90aGVyIHdheSBpcwohW3Z1ZS1kZXZ0b29scy1wb3B1cF0oaHR0cHM6Ly9naXRodWIuY29tL2RldGFpbi9teWFkbWluLWNsaWVudC12dWUvYXNzZXRzLzEzNjQ1MDQvOWI1MDJhNjktMDljNC00OGI3LWFjODgtMmZlNTBkNGFiMTVjKQoKIyMgUmVjb21tZW5kZWQgSURFIFNldHVwCgpbVlNDb2RlXShodHRwczovL2NvZGUudmlzdWFsc3R1ZGlvLmNvbS8pICsgW1ZvbGFyXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9VnVlLnZvbGFyKSAoYW5kIGRpc2FibGUgVmV0dXIpICsgW1R5cGVTY3JpcHQgVnVlIFBsdWdpbiAoVm9sYXIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9VnVlLnZzY29kZS10eXBlc2NyaXB0LXZ1ZS1wbHVnaW4pLgoKIyMgQ3VzdG9taXplIGNvbmZpZ3VyYXRpb24KClNlZSBbVml0ZSBDb25maWd1cmF0aW9uIFJlZmVyZW5jZV0oaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy8pLgoKIyMgUHJvamVjdCBTZXR1cAoKYGBgc2gKbnBtIGluc3RhbGwKYGBgCgojIyMgQ29tcGlsZSBhbmQgSG90LVJlbG9hZCBmb3IgRGV2ZWxvcG1lbnQKCmBgYHNoCm5wbSBydW4gZGV2CmBgYAoKIyMjIENvbXBpbGUgYW5kIE1pbmlmeSBmb3IgUHJvZHVjdGlvbgoKYGBgc2gKbnBtIHJ1biBidWlsZApgYGAKCiMjIyBMaW50IHdpdGggW0VTTGludF0oaHR0cHM6Ly9lc2xpbnQub3JnLykKCmBgYHNoCm5wbSBydW4gbGludApgYGAK readmeEtag: '"78218cc4c0f4fc3a9cd51065cde856b007cb29ac"' readmeLastModified: Mon, 08 Jul 2024 11:57:37 GMT repositoryId: 614741193 description: MyAdmin Vue3 Client Frontend created: '2023-03-16T08:15:57Z' updated: '2024-09-02T22:33:52Z' language: Vue archived: false stars: 2 watchers: 2 forks: 1 owner: detain logo: https://avatars.githubusercontent.com/u/1364504?v=4 repoEtag: '"858dd1db40bf370f576d51a8e37e19a4c8547a9e60fbc47a7eb7c43d0538e1ee"' repoLastModified: Mon, 02 Sep 2024 22:33:52 GMT category: - SDK - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/abassel/flask-restglue v3: true repositoryMetadata: base64Readme: >- Cgo8IS0tIFBST0pFQ1QgSEVBREVSL0xPR08gLS0+CjwhLS0gPGJyIC8+IC0tPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPCEtLQogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hYmFzc2VsL0ZsYXNrLVJlc3RHbHVlIj4KICAgIDxpbWcgc3JjPSJpbWFnZXMvbG9nby5wbmciIGFsdD0iTG9nbyIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIj4KICA8L2E+CiAgLS0+CiAgPGgxIGFsaWduPSJjZW50ZXIiPkZsYXNrLVJlc3RHbHVlKEFMUEhBKTwvaDE+CgogIDxwIGFsaWduPSJjZW50ZXIiPgogICAgSW50ZWdyYXRlcyA8Yj5GbGFzayArIE1vbmdvREIgKyBPcGVuQVBJPC9iPiBpbiBhIHNpbXBsZSBhbmQgZWxlZ2FudCB3YXkhCiAgICA8YnIgLz4KICAgIDxhIGhyZWY9Imh0dHBzOi8vYWJhc3NlbC5naXRodWIuaW8vRmxhc2stUmVzdEdsdWUvIj48c3Ryb25nPkV4cGxvcmUgdGhlIGRvY3Mgwrs8L3N0cm9uZz48L2E+CiAgICA8YnIgLz4KICAgIDxiciAvPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FiYXNzZWwvRmxhc2stUmVzdEdsdWUjZXhhbXBsZSI+VmlldyBEZW1vPC9hPgogICAgwrcKICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hYmFzc2VsL0ZsYXNrLVJlc3RHbHVlL2lzc3VlcyI+UmVwb3J0IEJ1ZzwvYT4KICAgIMK3CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWJhc3NlbC9GbGFzay1SZXN0R2x1ZS9pc3N1ZXMiPlJlcXVlc3QgRmVhdHVyZTwvYT4KICA8L3A+CgogIDxwIGFsaWduPSJjZW50ZXIiPgogICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWJhc3NlbC9GbGFzay1SZXN0R2x1ZS9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBYnVpbGQiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vYWJhc3NlbC9GbGFzay1SZXN0R2x1ZS93b3JrZmxvd3MvYnVpbGQvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXImZXZlbnQ9cHVzaCIgYWx0PSJTdGFycyBCYWRnZSIvPjwvYT4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FiYXNzZWwvRmxhc2stUmVzdEdsdWUvcHVsbHMiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcHIvYWJhc3NlbC9GbGFzay1SZXN0R2x1ZSIgYWx0PSJQdWxsIFJlcXVlc3RzIEJhZGdlIi8+PC9hPgogICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWJhc3NlbC9GbGFzay1SZXN0R2x1ZS9pc3N1ZXMiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMvYWJhc3NlbC9GbGFzay1SZXN0R2x1ZSIgYWx0PSJJc3N1ZXMgQmFkZ2UiLz48L2E+CiAgPC9wPgoKICA8cCBhbGlnbj0iY2VudGVyIj4KICAgPGEgaHJlZj0iaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L0ZsYXNrLVJlc3RHbHVlLyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL0ZsYXNrLVJlc3RHbHVlLnN2ZyIgYWx0PSJQeXRob24gVmVyc2lvbiIvPjwvYT4KICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FiYXNzZWwvRmxhc2stUmVzdEdsdWUvcmVsZWFzZXMiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9GbGFzay1SZXN0R2x1ZT9jb2xvcj1ncmVlbiZsYWJlbD12ZXJzaW9uIiBhbHQ9IlZlcnNpb24iLz48L2E+CiAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hYmFzc2VsL0ZsYXNrLVJlc3RHbHVlL3B1bGxzP3V0Zjg9JUUyJTlDJTkzJnE9aXMlM0FwciUyMGF1dGhvciUzQWFwcCUyRmRlcGVuZGFib3QiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2RlcGVuZGVuY2llcy11cCUyMHRvJTIwZGF0ZS1icmlnaHRncmVlbi5zdmciIGFsdD0iRGVwZW5kZW5jaWVzIFN0YXR1cyIvPjwvYT4KICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1B5Q1FBL2JhbmRpdCI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc2VjdXJpdHktYmFuZGl0LWdyZWVuLnN2ZyIgYWx0PSJTZWN1cml0eTogYmFuZGl0Ii8+PC9hPgogICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWJhc3NlbC9GbGFzay1SZXN0R2x1ZS9ibG9iL21hc3Rlci8ucHJlLWNvbW1pdC1jb25maWcueWFtbCI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcHJlLS1jb21taXQtZW5hYmxlZC1icmlnaHRncmVlbj9sb2dvPXByZS1jb21taXQmbG9nb0NvbG9yPXdoaXRlIiBhbHQ9IlByZS1jb21taXQiLz48L2E+CiAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hYmFzc2VsL0ZsYXNrLVJlc3RHbHVlL2Jsb2IvbWFzdGVyL0xJQ0VOU0UiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2FiYXNzZWwvRmxhc2stUmVzdEdsdWUiIGFsdD0iTGljZW5zZSIvPjwvYT4KICA8L3A+PC9wPgoKCjwhLS0gVEFCTEUgT0YgQ09OVEVOVFMgLS0+CiMjIENvbnRlbnRzCjxkZXRhaWxzPgogIDxzdW1tYXJ5PlRhYmxlIG9mIENvbnRlbnRzPC9zdW1tYXJ5PgogIDxvbD4KICAgIDwhLS0KICAgIDxsaT4KICAgICAgPGEgaHJlZj0iI2Fib3V0LXRoZS1wcm9qZWN0Ij5BYm91dCBUaGUgUHJvamVjdDwvYT4KICAgICAgPHVsPgogICAgICAgIDxsaT48YSBocmVmPSIjYnVpbHQtd2l0aCI+QnVpbHQgV2l0aDwvYT48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaT4KICAgICAgPGEgaHJlZj0iI2dldHRpbmctc3RhcnRlZCI+R2V0dGluZyBTdGFydGVkPC9hPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNwcmVyZXF1aXNpdGVzIj5QcmVyZXF1aXNpdGVzPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9IiNpbnN0YWxsYXRpb24iPkluc3RhbGxhdGlvbjwvYT48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIC0tPgogICAgPGxpPjxhIGhyZWY9IiNleGFtcGxlIj5FeGFtcGxlPC9hPjwvbGk+CiAgICA8bGk+PGEgaHJlZj0iI3F1aWNrLXN0YXJ0Ij5RdWljayBTdGFydDwvYT48L2xpPgogICAgPGxpPjxhIGhyZWY9IiNyZWZlcmVuY2VzLW5vdGVib29rIj5SZWZlcmVuY2VzPC9hPjwvbGk+CiAgICA8IS0tPGxpPjxhIGhyZWY9IiNyb2FkbWFwIj5Sb2FkbWFwPC9hPjwvbGk+CiAgICA8bGk+PGEgaHJlZj0iI2NvbnRyaWJ1dGluZyI+Q29udHJpYnV0aW5nPC9hPjwvbGk+CiAgICA8bGk+PGEgaHJlZj0iI2xpY2Vuc2UiPkxpY2Vuc2U8L2E+PC9saT4KICAgIDxsaT48YSBocmVmPSIjY29udGFjdCI+Q29udGFjdDwvYT48L2xpPgogICAgPGxpPjxhIGhyZWY9IiNhY2tub3dsZWRnZW1lbnRzIj5BY2tub3dsZWRnZW1lbnRzPC9hPjwvbGk+LS0+CiAgPC9vbD4KPC9kZXRhaWxzPgoKCgojIEV4YW1wbGUKCkZvciBhIGZ1bGxzdGFjayBib2lsZXJwbGF0ZSwgdmlzaXQgW2h0dHBzOi8vZ2l0aHViLmNvbS9hYmFzc2VsL0ZsYXNrX1Jlc3RHbHVlX1N2ZWx0ZV9Eb2NrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hYmFzc2VsL0ZsYXNrX1Jlc3RHbHVlX1N2ZWx0ZV9Eb2NrZXIpCgpgYGBweXRob24KaW1wb3J0IG1vbmdvZW5naW5lIGFzIG1vbmdvCmZyb20gZmxhc2tfcmVzdF9nbHVlIGltcG9ydCBGbGFza1Jlc3RHbHVlCgptb25nby5jb25uZWN0KCJweWdsdWUiLCBob3N0PSdsb2NhbGhvc3Q6MjcwMTcnKQoKYXBpID0gRmxhc2tSZXN0R2x1ZSgpCgoKQGFwaS5yZXN0X21vZGVsKCkKY2xhc3MgVXNlcihtb25nby5Eb2N1bWVudCk6CiAgIyBpZCA9IG1vbmdvLlN0cmluZ0ZpZWxkKHByaW1hcnlfa2V5PVRydWUpCiAgZW1haWwgPSBtb25nby5TdHJpbmdGaWVsZChwcmltYXJ5X2tleT1UcnVlKQogIHBhc3N3b3JkID0gbW9uZ28uU3RyaW5nRmllbGQoKQoKCmFwaS5ydW4oKQoKYGBgCgpHbyB0byBbaHR0cDovLzEyNy4wLjAuMTo1MDAwL3NwZWNfZG9jXShodHRwOi8vMTI3LjAuMC4xOjUwMDAvc3BlY19kb2MpIG9yIFtodHRwOi8vMTI3LjAuMC4xOjUwMDAvc3BlY19yZG9jXShodHRwOi8vMTI3LjAuMC4xOjUwMDAvc3BlY19yZG9jKSB0byBzZWUgdGhlIGRvY3VtZW50YXRpb24gYmVsbG93OgoKIVtTd2FnZ2VyIFVJXShodHRwczovL2FiYXNzZWwuZ2l0aHViLmlvL0ZsYXNrLVJlc3RHbHVlL3N3YWdnZXIucG5nKQoKIVtSZVRleHQgVUldKGh0dHBzOi8vYWJhc3NlbC5naXRodWIuaW8vRmxhc2stUmVzdEdsdWUvcmRvYy5wbmcpCgojIyMgRXhwZWN0ZWQgb3V0cHV0OgoKYGBgYmFzaApjdXJsIC12IC1kICd7ImVtYWlsIjoiYUBiLmNvbSIsInBhc3N3b3JkIjoieHl6In0nIFwKICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBodHRwOi8vbG9jYWxob3N0OjUwMDAvdXNlcgoKIzwgSFRUUC8xLjAgMjAwIE9LCiM8IENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgojPCBDb250ZW50LUxlbmd0aDogNDUKIzwKI3sKIyAgIl9pZCI6ICJhQGIuY29tIiwKIyAgInBhc3N3b3JkIjogInh5eiIKI30KCgpjdXJsIC12IGh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC91c2VycwojPCBIVFRQLzEuMCAyMDAgT0sKIzwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCiM8IENvbnRlbnQtTGVuZ3RoOiA1NwojPAojWwojICB7CiMgICAgIl9pZCI6ICJhQGIuY29tIiwKIyAgICAicGFzc3dvcmQiOiAieHl6IgojICB9CiNdCgoKY3VybCAtdiBodHRwOi8vbG9jYWxob3N0OjUwMDAvdXNlci9hQGIuY29tCiM8IEhUVFAvMS4wIDIwMCBPSwojPCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24KIzwgQ29udGVudC1MZW5ndGg6IDQ1CiM8CiN7CiMgICJfaWQiOiAiYUBiLmNvbSIsCiMgICJwYXNzd29yZCI6ICJ4eXoiCiN9CgoKY3VybCAtdiAtWCBQVVQgLWQgJ3sicGFzc3dvcmQiOiJuZXdfcGFzcyJ9JyBcCiAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgaHR0cDovL2xvY2FsaG9zdDo1MDAwL3VzZXIvYUBiLmNvbQojPCBIVFRQLzEuMCAyMDAgT0sKIzwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCiM8IENvbnRlbnQtTGVuZ3RoOiA1MAojPAojewojICAiX2lkIjogImFAYi5jb20iLAojICAicGFzc3dvcmQiOiAibmV3X3Bhc3MiCiN9CgoKY3VybCAtdiAtWCBERUxFVEUgaHR0cDovL2xvY2FsaG9zdDo1MDAwL3VzZXIvYUBiLmNvbQojPCBIVFRQLzEuMCAyMDAgT0sKIzwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCiM8IENvbnRlbnQtTGVuZ3RoOiA0NQojPAojewojICAiX2lkIjogImFAYi5jb20iLAojICAicGFzc3dvcmQiOiAieHl6IgojfQpgYGAKCgojIFF1aWNrIFN0YXJ0CgpSZXF1aXJlcyAqKmRvY2tlcioqIGFuZCAqKnB5dGhvbiAzLjkqKgoKIyMjIDEgLSBpbnN0YWxsIGxvY2FsIE1vbmdvREIKYGBgYmFzaApta2RpciAtcCB+L21vbmdvZGF0YQoKZG9ja2VyIHJ1biAtZCAtLXJtIC1wIDI3MDE3OjI3MDE3IC12IH4vbW9uZ29kYXRhOi9kYXRhL2RiIC0tbmFtZSBtb25nb2RiIG1vbmdvCmBgYAoKIyMjIDIgLSBJbnN0YWxsIHRoaXMgbGlicmFyeQpgYGBiYXNoCnBpcCBpbnN0YWxsIEZsYXNrLVJlc3RHbHVlCmBgYAoKIyMjIDMgLSBQdWxsIHRoZSBjb2RlCmBgYGJhc2gKY3VybCAtcyAtTyAtTCAgaHR0cHM6Ly9naXRodWIuY29tL2FiYXNzZWwvRmxhc2stUmVzdEdsdWUvYmxvYi9tYXN0ZXIvZXhhbXBsZS90dXQwMV9oZWxsb193b3JsZC5weQpjdXJsIC1zIC1PIC1MICBodHRwczovL2dpdGh1Yi5jb20vYWJhc3NlbC9GbGFzay1SZXN0R2x1ZS9ibG9iL21hc3Rlci9leGFtcGxlL3R1dDAxX2hlbGxvX3dvcmxkLnNoCmBgYAoKIyMjIDQgLSBSdW4gdGhlIGNvZGUKYGBgYmFzaApweXRob24gdHV0MDFfaGVsbG9fd29ybGQucHkKYGBgCkluIGFub3RoZXIgdGVybWluYWwgd2luZG93CgpgYGBiYXNoCmJhc2ggdHV0MDFfaGVsbG9fd29ybGQuc2gKYGBgCgojIyBSb2FkIE1hcCA6Y2FyOgoKLSBFdmFsdWF0ZSBodHRwczovL3Rlc3Rkcml2ZW4uaW8vYmxvZy9mYXN0YXBpLW1vbmdvLwotIEV2YWx1YXRlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXZpZC1Mb3IvRmFzdEFQSS1QeWRhbnRpYy1Nb25nb19TYW1wbGVfQ1JVRF9BUEkKLSBFdmFsdWF0ZSBodHRwczovL2FydDA0OS5naXRodWIuaW8vb2RtYW50aWMvCi0gRXhhbXBsZSB1c2VyIG1vZGVsIHRoYXQgc3RvcmVzIHBhc3N3b3JkIGFzIGhhc2ggLSBodHRwczovL2Fhcm9ubHVuYS5kZXYvc2VyaWVzL2ZsYXNrLWFwaS10dXRvcmlhbC9wYXJ0LTIvCi0gT1JNIGV4YW1wbGVzIGZvciBGYXN0QVBJIC0gaHR0cHM6Ly9naXRodWIuY29tL21qaGVhMC9hd2Vzb21lLWZhc3RhcGkjb3JtcwotIE9ETSBleGFtcGxlcyBmb3IgRmFzdEFQSSAtIGh0dHBzOi8vZ2l0aHViLmNvbS9tamhlYTAvYXdlc29tZS1mYXN0YXBpI29kbXMKLSBBdXRob3JpemF0aW9uIGF0IHJvdyBsZXZlbCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9tamhlYTAvYXdlc29tZS1mYXN0YXBpP3RhYj1yZWFkbWUtb3YtZmlsZSNhdXRoCi0gRGV2ZWxvcCBwYWdpbmF0aW9uCi0gRGV2ZWxvcCBQeWRhbnRpYwotIEdvb2dsZSBzZWFyY2ggYWJvdXQgZmxhc2sgYXBpIHdpdGggc3FsYWxjaGVteSBodHRwczovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPWZsYXNrK2FwaStzcWxhbGNoZW15K3R1dG9yaWFsCi0gRXZhbHVhdGUgZmxhc2sgYXBpIHdpdGggbWlncmF0aW9uIGh0dHBzOi8vYWFyb25sdW5hLmRldi9zZXJpZXMvZmxhc2stYXBpLXR1dG9yaWFsL3BhcnQtMi8KLSBEZXZlbG9wIHRvb2xzIHRvIGdlbmVyYXRlIHR5cGVzY3JpcHQgb3Igc3ZlbHRlIHN0dWJzCi0gQ3JlYXRlIGEgdGVtcGxhdGUgbGlrZSBodHRwczovL2dpdGh1Yi5jb20vdGlhbmdvbG8vZnVsbC1zdGFjay1mYXN0YXBpLXRlbXBsYXRlCgojIyBSZWZlcmVuY2VzIDpub3RlYm9vazoKLSBbRmxhc2tfUmVzdEdsdWVfU3ZlbHRlX0RvY2tlciBib2lsZXJwbGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2FiYXNzZWwvRmxhc2tfUmVzdEdsdWVfU3ZlbHRlX0RvY2tlcikKLSBbT3BlbkFQSSAzLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjMubWQpCi0gW0ZsYXNrXShodHRwOi8vZmxhc2sucG9jb28ub3JnKQotIFtNb25nb2VuZ2luZV0oaHR0cHM6Ly9naXRodWIuY29tL01vbmdvRW5naW5lL21vbmdvZW5naW5lKQo= readmeEtag: '"b12cb3a7d67d4eeb61d0ff4dbae74baf98a4ca56"' readmeLastModified: Wed, 17 Apr 2024 02:34:36 GMT repositoryId: 326479351 description: >- 🚀 Integrates Flask + MongoDB(mongoengine) + OpenAPI in a simple and elegant way! created: '2021-01-03T18:56:36Z' updated: '2023-07-07T06:57:53Z' language: Python archived: false stars: 2 watchers: 3 forks: 0 owner: abassel logo: https://avatars.githubusercontent.com/u/11035784?v=4 license: MIT repoEtag: '"db755e4a6f58cd92a3ff094e512312dc9c27e1dcc115aa9459f7575e77d64830"' repoLastModified: Fri, 07 Jul 2023 06:57:53 GMT foundInMaster: true category: Server Implementations id: e16ab98bb1345dc9c96aeb6124d53383 - source: openapi3 tags repository: https://github.com/alimahmoud80/ecommerceapi v3: true id: ad48ed01ce4090f7321cd4c0bb586151 repositoryMetadata: base64Readme: >- IyBJbnRyb2R1Y3Rpb24KCi0tLS0tLS0tLS0tLS0KVGhpcyBwcm9qZWN0IGlzIGFuIGV4YW1wbGUgb2YgZWNvbW1lcmNlIEFQSSBidWlsdCB1c2luZyBUeXBlc2NyaXB0LCBFeHByZXNzLCBNeVNRTCBhbmQgZG9jdW1lbnRlZCB1c2luZyBPcGVuQVBJIHNwZWNpZmljYXRpb24uCgojIyBEb2N1bWVudGF0aW9uCgotLS0tLS0tLS0tLS0tCkFsbCBwcm9qZWN0IGRvY3VtZW50YXRpb24gaXMgcHJlc2VudGVkIHVuZGVyIHRoZSBmb2xkZXIgW2RvY3NdKC4vZG9jcy8pCg== readmeEtag: '"623c07cdd84c1e2f64fbdc6313268701a81f808b"' readmeLastModified: Fri, 13 May 2022 03:28:31 GMT repositoryId: 491522033 description: >- Ecommerce API built using Typescript, Express, MySQL and documented using OpenAPI Specifications created: '2022-05-12T13:19:11Z' updated: '2024-07-26T10:03:38Z' language: TypeScript archived: false stars: 2 watchers: 1 forks: 0 owner: AliMahmoud80 logo: https://avatars.githubusercontent.com/u/22307533?v=4 repoEtag: '"5bed79cb4df98b110151429e9d8c24e511ca120726eb2e86a82cd755c6dfe140"' repoLastModified: Fri, 26 Jul 2024 10:03:38 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/kumuluz/kumuluzee-openapi-mp v3: true repositoryMetadata: base64Readme: >- IyBLdW11bHV6RUUgT3BlbkFQSSBNaWNyb1Byb2ZpbGUKWyFbS3VtdWx1ekVFIENJXShodHRwczovL2dpdGh1Yi5jb20va3VtdWx1ei9rdW11bHV6ZWUtb3BlbmFwaS1tcC9hY3Rpb25zL3dvcmtmbG93cy9rdW11bHV6ZWUtY2kueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9rdW11bHV6L2t1bXVsdXplZS1vcGVuYXBpLW1wL2FjdGlvbnMvd29ya2Zsb3dzL2t1bXVsdXplZS1jaS55bWwpCgo+IEt1bXVsdXpFRSBPcGVuQVBJIE1pY3JvUHJvZmlsZSBwcm9qZWN0IHByb3ZpZGVzIHBvd2VyZnVsIHRvb2xzIHRvIGluY29ycG9yYXRlIHRoZSBPcGVuQVBJIDMgc3BlY2lmaWNhdGlvbiB0byB5b3VyCm1pY3Jvc2VydmljZXMgaW4gYSBzdGFuZGFyZGl6ZWQgd2F5LgoKS3VtdWx1ekVFIE9wZW5BUEkgTWljcm9Qcm9maWxlIHByb2plY3QgYWxsb3dzIHlvdSB0byBkb2N1bWVudCBtaWNyb3NlcnZpY2UgQVBJcyB1c2luZyBPcGVuQVBJIHYzIGNvbXBsaWFudCBhbm5vdGF0aW9ucy4KUHJvamVjdCB3aWxsIGF1dG9tYXRpY2FsbHkgaG9vay11cCBzZXJ2bGV0IHRoYXQgd2lsbCBzZXJ2ZSB5b3VyIEFQSSBzcGVjaWZpY2F0aW9ucyBvbiBlbmRwb2ludCBgL29wZW5hcGlgLgpUaGUgcHJvamVjdCBpbXBsZW1lbnRzIHRoZSBNaWNyb1Byb2ZpbGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgogCk1vcmUgZGV0YWlsczogCgotIFtPcGVuQVBJIHYzIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKQotIFtNaWNyb1Byb2ZpbGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vZWNsaXBzZS9taWNyb3Byb2ZpbGUtb3Blbi1hcGkvcmVsZWFzZXMpCgojIyBVc2FnZQoKWW91IGNhbiBlbmFibGUgS3VtdWx1ekVFIE9wZW5BUEkgTWljcm9Qcm9maWxlIHN1cHBvcnQgYnkgYWRkaW5nIHRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jeToKYGBgeG1sCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+Y29tLmt1bXVsdXouZWUub3BlbmFwaTwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPmt1bXVsdXplZS1vcGVuYXBpLW1wPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtrdW11bHV6ZWUtb3BlbmFwaS1tcC52ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCiMjIE9wZW5BUEkgY29uZmlndXJhdGlvbgoKV2hlbiBrdW11bHV6ZWUtb3BlbmFwaS1tcCBkZXBlbmRlbmN5IGlzIGluY2x1ZGVkIGluIHRoZSBwcm9qZWN0LCB5b3UgY2FuIHN0YXJ0IGRvY3VtZW50aW5nIHlvdXIgUkVTVCBBUEkgdXNpbmcKTWljcm9Qcm9maWxlIE9wZW5BUEkgYW5ub3RhdGlvbnMuCgojIyMgRG9jdW1lbnRpbmcgYXBwbGljYXRpb24gY2xhc3MKCmBgYGphdmEKQFNlY3VyaXR5U2NoZW1lKHNlY3VyaXR5U2NoZW1lTmFtZSA9ICJvcGVuaWQtY29ubmVjdCIsIHR5cGUgPSBTZWN1cml0eVNjaGVtZVR5cGUuT1BFTklEQ09OTkVDVCwKICAgICAgICBvcGVuSWRDb25uZWN0VXJsID0gImh0dHA6Ly9hdXRoLXNlcnZlci11cmwvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24iKQpAQXBwbGljYXRpb25QYXRoKCJ2MiIpCkBPcGVuQVBJRGVmaW5pdGlvbihpbmZvID0gQEluZm8odGl0bGUgPSAiQ3VzdG9tZXJBcGkiLCB2ZXJzaW9uID0gInYyLjAuMCIsIGNvbnRhY3QgPSBAQ29udGFjdCgpLCBsaWNlbnNlID0gQExpY2Vuc2UobmFtZT0ic29tZXRoaW5nIikpLCBzZXJ2ZXJzID0gQFNlcnZlcih1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDgwIiksIHNlY3VyaXR5CiAgICAgICAgPSBAU2VjdXJpdHlSZXF1aXJlbWVudChuYW1lID0gIm9wZW5pZC1jb25uZWN0IikpCnB1YmxpYyBjbGFzcyBDdXN0b21lckFwcGxpY2F0aW9uIGV4dGVuZHMgQXBwbGljYXRpb24gewp9CmBgYAoKIyMjIERvY3VtZW50aW5nIHJlc291cmNlIGNsYXNzIGFuZCBvcGVyYXRpb25zCgpgYGBqYXZhCkBQYXRoKCJjdXN0b21lcnMiKQpAQ29uc3VtZXMoTWVkaWFUeXBlLkFQUExJQ0FUSU9OX0pTT04pCkBQcm9kdWNlcyhNZWRpYVR5cGUuQVBQTElDQVRJT05fSlNPTikKcHVibGljIGNsYXNzIEN1c3RvbWVyUmVzb3VyY2UgewoKICAgIEBHRVQKICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICJHZXQgY3VzdG9tZXJzIGRldGFpbHMiLCBkZXNjcmlwdGlvbiA9ICJSZXR1cm5zIGN1c3RvbWVyIGRldGFpbHMuIikKICAgIEBBUElSZXNwb25zZXMoewogICAgICAgICAgICBAQVBJUmVzcG9uc2UoZGVzY3JpcHRpb24gPSAiQ3VzdG9tZXIgZGV0YWlscyIsIHJlc3BvbnNlQ29kZSA9ICIyMDAiLCBjb250ZW50ID0gQENvbnRlbnQoc2NoZW1hID0gQFNjaGVtYShpbXBsZW1lbnRhdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXIuY2xhc3MpKSkKICAgIH0pCiAgICBAUGF0aCgie2N1c3RvbWVySWR9IikKICAgIHB1YmxpYyBSZXNwb25zZSBnZXRDdXN0b21lcihAUGF0aFBhcmFtKCJjdXN0b21lcklkIikgU3RyaW5nIGN1c3RvbWVySWQpIHsKICAgICAgICAvLyAuLi4KICAgIH0KCn0KYGBgCgojIyBBY2Nlc3NpbmcgQVBJIHNwZWNpZmljYXRpb24KCkJ1aWxkIGFuZCBydW4gcHJvamVjdCB1c2luZzoKCmBgYGJhc2gKbXZuIGNsZWFuIHBhY2thZ2UKamF2YSAtamFyIHRhcmdldC8ke3Byb2plY3QuYnVpbGQuZmluYWxOYW1lfS5qYXIKYGBgCgpBZnRlciBzdGFydHVwIEFQSSBzcGVjaWZpY2F0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIGF0OgoKKipodHRwOi8vPC1ob3N0bmFtZS0+OjwtcG9ydC0+Lzwtb3B0aW9uYWwtY29udGV4dC1wYXRoLT4vb3BlbmFwaSoqCgpFeGFtcGxlOgoKaHR0cDovL2xvY2FsaG9zdDo4MDgwL29wZW5hcGkKClNlcnZpbmcgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIHByb3BlcnR5ICoqa3VtdWx1emVlLm9wZW5hcGktbXAuZW5hYmxlZCoqIHRvIGZhbHNlLiBCeSBkZWZhdWx0CnNlcnZpbmcgQVBJIHNwZWMgaXMgZW5hYmxlZC4KCiMjIENvbmZpZ3VyYXRpb24KClRoZSBLdW11bHV6RUUgT3BlbkFQSSBNaWNyb1Byb2ZpbGUgZXh0ZW5zaW9uIGNhbiBiZSBjb25maWd1cmVkIHdpdGggdGhlIHN0YW5kYXJkIEt1bXVsdXpFRSBjb25maWd1cmF0aW9uIG1lY2hhbmlzbS4gRm9yCmV4YW1wbGUgd2l0aCB0aGUgX2NvbmZpZy55bWxfIGZpbGU6CgpgYGB5YW1sCmt1bXVsdXplZToKICBvcGVuYXBpLW1wOgogICAgZW5hYmxlZDogdHJ1ZQogICAgc2VydmxldDoKICAgICAgbWFwcGluZzogL29wZW5hcGktY3VzdG9tLW1hcHBpbmcKICAgIHNjYW46CiAgICAgIHBhY2thZ2VzOiBjb20ua3VtdWx1ei5lZS5zYW1wbGVzLm9wZW5hcGkKICAgIHNlcnZlcnM6IGh0dHBzOi8vZXhhbXBsZS1hcGkuY29tLGh0dHBzOi8vbXktcHJveHkuY29tCmBgYAoKU29tZSBpbnRlcmVzdGluZyBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgYXJlOgoKLSBga3VtdWx1emVlLm9wZW5hcGktbXAuZW5hYmxlZGAgLSBJZiBzZXQgdG8gYGZhbHNlYCBkaXNhYmxlcyB0aGUgZXh0ZW5zaW9uIChhbmQgT3BlbkFQSSBzZXJ2bGV0KS4gRGVmYXVsdCB2YWx1ZTogYHRydWVgCi0gYGt1bXVsdXplZS5vcGVuYXBpLW1wLnNlcnZsZXQubWFwcGluZ2AgLSBUaGUgZW5kcG9pbnQgYXQgd2hpY2ggdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUuIEFwcGVuZGVkIHRvIG9wdGlvbmFsIHNlcnZlciBjb250ZXh0IHBhdGguIERlZmF1bHQgdmFsdWU6IGAvb3BlbmFwaWAKLSBga3VtdWx1emVlLm9wZW5hcGktbXAuc2Nhbi5wYWNrYWdlc2AgLSBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwYWNrYWdlcyB3aGljaCBhcmUgc2Nhbm5lZCBmb3IgdGhlIE9wZW5BUEkgYW5ub3RhdGlvbnMuCiAgQnkgZGVmYXVsdCwgYWxsIHBhY2thZ2VzIGFyZSBzY2FubmVkLgoKRnVsbCBsaXN0IG9mIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBjYW4gYmUgZm91bmQgaW4KW01pY3JvUHJvZmlsZSBPcGVuQVBJIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9lY2xpcHNlL21pY3JvcHJvZmlsZS1vcGVuLWFwaS9yZWxlYXNlcykuCgojIyBTY2FubmluZwoKQnkgZGVmYXVsdCBLdW11bHV6RUUgT3BlbkFQSSBNUCB1c2VzIG9wdGltaXplZCBzY2FubmluZyBpbiBvcmRlciB0byByZWR1Y2Ugc3RhcnR1cCB0aW1lcy4gVGhpcyBtZWFucyB0aGF0IG9ubHkgdGhlIG1haW4KYXBwbGljYXRpb24gSkFSIHdpbGwgYmUgc2Nhbm5lZCAobWFpbiBhcnRpZmFjdCkuIEluIG9yZGVyIHRvIHNjYW4gYWRkaXRpb25hbCBhcnRpZmFjdHMgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGVtIHVzaW5nCnRoZSBbc2Nhbi1saWJyYXJpZXMgbWVjaGFuaXNtXShodHRwczovL2dpdGh1Yi5jb20va3VtdWx1ei9rdW11bHV6ZWUvcHVsbC8xMjMpLiBZb3UgbmVlZCB0byBpbmNsdWRlIGFsbCBkZXBlbmRlbmNpZXMKd2hpY2ggY29udGFpbiBKQVgtUlMgYXBwbGljYXRpb24gYW5kIHJlc291cmNlcyBhcyB3ZWxsIGFzIGRlcGVuZGVuY2llcyBjb250YWluaW5nIG1vZGVscyByZXR1cm5lZCBmcm9tIEpBWC1SUyByZXNvdXJjZXMuCklmIGFsbCB5b3VyIG1vZGVscyBhbmQgcmVzb3VyY2VzIGFyZSBpbiB0aGUgbWFpbiBhcnRpZmFjdCB5b3UgZG9uJ3QgbmVlZCB0byBpbmNsdWRlIGFueXRoaW5nLiBGb3IgZXhhbXBsZSB0byBpbmNsdWRlCl9teS1tb2RlbHNfIGFydGlmYWN0IHVzZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb246CgpgYGB5YW1sCmt1bXVsdXplZToKICBkZXY6CiAgICBzY2FuLWxpYnJhcmllczoKICAgICAgLSBteS1tb2RlbHMKYGBgCgpJZiB5b3UgYXJlIHVuc3VyZSBpZiB5b3VyIGNvbmZpZ3VyYXRpb24gaXMgY29ycmVjdCB5b3UgY2FuIHRyeSB0byBkaXNhYmxlIG9wdGltaXplZCBzY2FubmluZyBieSB1c2luZyB0aGUgZm9sbG93aW5nCmNvbmZpZ3VyYXRpb246CgpgYGB5YW1sCmt1bXVsdXplZToKICBvcGVuYXBpLW1wOgogICAgc2Nhbm5pbmc6CiAgICAgIG9wdGltaXplOiBmYWxzZQpgYGAKCllvdSBjYW4gYWxzbyBlbmFibGUgc2NhbiBkZWJ1Z2dpbmcgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nIGtleSB0byBgdHJ1ZWA6IGBrdW11bHV6ZWUub3BlbmFwaS1tcC5zY2FubmluZy5kZWJ1Z2AuIFRoaXMKd2lsbCBvdXRwdXQgYSB2ZXJib3NlIGxvZyBvZiBzY2FubmluZyBjb25maWd1cmF0aW9uIGFuZCBwcm9ncmVzcy4KCiMjIEFkZGluZyBTd2FnZ2VyIFVJCgpUbyBzZXJ2ZSBBUEkgc3BlY2lmaWNhdGlvbiBpbiB2aXN1YWwgZm9ybSBhbmQgdG8gYWxsb3cgQVBJIGNvbnN1bWVycyB0byBpbnRlcmFjdCB3aXRoIEFQSSByZXNvdXJjZXMgeW91IGNhbiBhZGQKU3dhZ2dlciBVSSBieSBpbmNsdWRpbmcgdGhlIF9fa3VtdWx1emVlLXN3YWdnZXItdWlfXyBkZXBlbmRlbmN5OgoKYGBgeG1sCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+Y29tLmt1bXVsdXouZWUub3BlbmFwaTwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPmt1bXVsdXplZS1vcGVuYXBpLW1wLXVpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtrdW11bHV6ZWUtb3BlbmFwaS1tcC52ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKClN3YWdnZXIgVUkgaXMgYXV0b21hdGljYWxseSBlbmFibGVkIGFuZCBpcyBhdmFpbGFibGUgYXQgX18vYXBpLXNwZWNzL3VpX18uIEluIG9yZGVyIHRvIGRpc2FibGUgU3dhZ2dlciBVSSB5b3UgY2FuIHNldAp0aGUgY29uZmlndXJhdGlvbiBrZXkgYGt1bXVsdXplZS5vcGVuYXBpLW1wLnVpLmVuYWJsZWRgIHRvIGBmYWxzZWAuIFlvdSBjYW4gYWxzbyByZW1hcCB0aGUgU3dhZ2dlciBVSSB0byBhbm90aGVyCmxvY2F0aW9uIGJ5IHNldHRpbmcgdGhlIGBrdW11bHV6ZWUub3BlbmFwaS1tcC51aS5tYXBwaW5nYCBrZXkgKGRlZmF1bHQgdmFsdWU6IGAvYXBpLXNwZWNzL3VpYCkuIFBhdGggaXMgYXBwZW5kZWQgdG8gb3B0aW9uYWwgc2VydmVyIGNvbnRleHQgcGF0aC4KClN3YWdnZXIgVUkgbmVlZHMgdG8ga25vdyB3aGVyZSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGlzIHNlcnZlZCBmcm9tLiBJdCB0cmllcyB0byBkZWZpbmUgaXQgZnJvbSB0aGUgZm9sbG93aW5nCnNvdXJjZXM6CgoxLiBTdGF0aWM6IGA8cHJvdG9jb2w+Oi8vbG9jYWxob3N0Ojxwb3J0PmAgKHVzZWZ1bCB3aGVuIG5vdGhpbmcgaXMgZGVmaW5lZCwgbG93ZXN0IHByaW9yaXR5KQoxLiBGcm9tIHRoZSBgc2VydmVyc2AgcGFyYW1ldGVyIGluIGBAT3BlbkFQSURlZmluaXRpb25gIGFubm90YXRpb24gKHVzZWZ1bCB3aGVuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgZnJvbQogICB0aGUgc2FtZSBob3N0bmFtZSBhcyBTd2FnZ2VyIFVJKQoxLiBDb25maWd1cmF0aW9uIHByb3BlcnR5OiBga3VtdWx1emVlLnNlcnZlci5iYXNlLXVybGAgKHVzZWZ1bCBmb3Igb3ZlcnJpZGluZyBhYm92ZSB2YWx1ZXMpCjEuIENvbmZpZ3VyYXRpb24gcHJvcGVydHk6IGBrdW11bHV6ZWUub3BlbmFwaS1tcC51aS5zcGVjaWZpY2F0aW9uLXNlcnZlcmAgKHNhbWUgYXMgYWJvdmUgYnV0IGluIGEgbmFtZXNwYWNlIHNwZWNpZmljIHRvCiAgIHRoaXMgZXh0ZW5zaW9uKQogICAKIyMgU3dhZ2dlciBVSSBzZXJ2ZXIgYXV0byBjb25maWd1cmF0aW9uCgpTZXJ2ZXIgYXV0byBjb25maWd1cmF0aW9uIGFsbG93cyBmb3IgZHluYW1pYyByZXNvbHV0aW9uIG9mIHBhcmFtZXRlcnMgbGlrZSBga3VtdWx1emVlLm9wZW5hcGktbXAudWkuc3BlY2lmaWNhdGlvbi1zZXJ2ZXJgIAppbnN0ZWFkIG9mIG5lZWQgdG8gc2V0IGl0LiBUaGlzIGlzIGRvbmUgYnkgcmV0cmlldmluZyBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZnJvbSByZXF1ZXN0IGR1cmluZyBydW50aW1lIGFuZCBiYXNlZCBvbiB0aGF0IApzZXR0aW5nIGNvcnJlY3QgcmVkaXJlY3QuIEl0IGlzIGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gc2VydmljZSBpcyBiZWluZyBkZXBsb3llZCBpbiBtdWx0aXBsZSBlbnZpcm9ubWVudHMuClRoaXMgZmVhdHVyZSBhbHNvIHVwZGF0ZXMgbGlzdCBvZiBzZXJ2ZXJzIGluIFN3YWdnZXIgVUkgYW5kIHJlb3JkZXIgdGhlbSwgc28gaXQgd2lsbCBiZSBmaXJzdCBvbmUuCkl0IGlzIGFsc28gcG9zc2libGUgdG8gcmVzb2x2ZSBjb3JyZWN0IHJlZGlyZWN0IHdoZW4gc2VydmljZSBpcyBiZWhpbmQgZm9yIGV4YW1wbGUgSW5ncmVzIChJbmdyZXNzIG11c3QgaGF2ZSBlbmFibGVkIGZlYXR1cmUgd2hpY2ggCmZvcndhcmRzIG9yaWdpbmFsIFVSTCkuCgpCeSBkZWZhdWx0LCB0aGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFRvIGVuYWJsZSBpdCBzZXQgYGt1bXVsdXplZS5vcGVuYXBpLW1wLnVpLmF1dG8tY29uZmlnLmVuYWJsZWRgCnRvIGB0cnVlYC4gVG8gZW5hYmxlIChJbmdyZXNzKSBVUkkgY2hlY2sgc2V0IGBrdW11bHV6ZWUub3BlbmFwaS1tcC51aS5hdXRvLWNvbmZpZy5vcmlnaW5hbC11cmktY2hlY2tgIHRvIGB0cnVlYC4KCkRlZmF1bHQgc2V0dGluZ3MgZm9yIHNlcnZlciBhdXRvIGNvbmZpZ3VyYXRpb246CmBgYHlhbWwKa3VtdWx1emVlOgogIG9wZW5hcGktbXA6CiAgICB1aToKICAgICAgc2VydmVyLWF1dG8tY29uZmlnOgogICAgICAgIGVuYWJsZWQ6IGZhbHNlCiAgICAgICAgb3JpZ2luYWwtdXJpLWNoZWNrOiBmYWxzZQpgYGAKCj4gKipub3RlOioqIGxvY2FsaG9zdCBzZXJ2ZXIgd2l0aCBzYW1lIHBvcnQgaXMgYWRkZWQgb25seSBvbmNlIChpZiBub3QgYWxyZWFkeSBzcGVjaWZpZWQgaW4gQE9wZW5BUElEZWZpbml0aW9uKSBhbmQgaW4gY2FzZSBpbiB3aGljaCAKPiBpcyB1c2VkIGxvY2FsaG9zdCBhZGRyZXNzIGluIGRpZmZlcmVudCBmb3JtYXQgKGZvciBleGFtcGxlIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MCBpbnN0ZWFkIG9mIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCksIAo+bm8gbmV3IHNlcnZlciB3aWxsIGJlIGFkZGVkIHRvIGxpc3QgYW5kIGJlY2F1c2Ugb2YgdGhpcyBTd2FnZ2VyIFVJIHdpbGwgYmUgdW5hYmxlIHRvIGRvIEFQSSBjYWxscyAodGhpcyBpcyBkdWUgdG8gaXNzdWUgd2l0aCBjb3JzKSAKCiMjIE9wZW5BUEkgTWF2ZW4gUGx1Z2luCgpNYXZlbiBwbHVnaW4gY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgT3BlbkFQSSBzY2hlbWEgd2hlbiBidWlsZGluZyB0aGUgYXBwbGljYXRpb24uIFRvIHVzZSBpdCBhZGQgdGhlIGZvbGxvd2luZyB0bwpwb20ueG1sOgoKYGBgeG1sCjxwbHVnaW4+CiAgICA8YXJ0aWZhY3RJZD5rdW11bHV6ZWUtb3BlbmFwaS1tcC1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8Z3JvdXBJZD5jb20ua3VtdWx1ei5lZS5vcGVuYXBpPC9ncm91cElkPgogICAgPHZlcnNpb24+JHtrdW11bHV6ZWUtb3BlbmFwaS1tcC52ZXJzaW9ufTwvdmVyc2lvbj4KICAgIDxleGVjdXRpb25zPgogICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICAgIDxnb2Fscz4KICAgICAgICAgICAgICAgIDxnb2FsPmdlbmVyYXRlPC9nb2FsPgogICAgICAgICAgICA8L2dvYWxzPgogICAgICAgIDwvZXhlY3V0aW9uPgogICAgPC9leGVjdXRpb25zPgo8L3BsdWdpbj4KYGBgCgpCeSBkZWZhdWx0LCB0aGUgc2NoZW1hIGlzIGdlbmVyYXRlZCBpbiBgdGFyZ2V0L2dlbmVyYXRlZC9gIGRpcmVjdG9yeSBpbiBKU09OIGFuZCBZQU1MIGZvcm1hdHMuCgpJZiB0aGUgc2NoZW1hIGlzIGRlZmluZWQgYWNyb3NzIG11bHRpcGxlIGFydGVmYWN0cyB5b3UgbXVzdCBkZWZpbmUgdGhlIGA8c2NhbkxpYnJhcmllcz48L3NjYW5MaWJyYXJpZXM+YCBjb25maWd1cmF0aW9uCnByb3BlcnR5IHdpdGggY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZGVwZW5kZW5jaWVzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBkZXNjcmliZWQgaW4gdGhlIFtTY2FubmluZ10oI3NjYW5uaW5nKSBzZWN0aW9uCmFib3ZlLgoKTWF2ZW4gcGx1Z2luIHVzZXMgU21hbGxSeWUgaW1wbGVtZW50YXRpb24gaW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhlIHNjaGVtYS4gRm9yIG1vcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIHNlZSB0aGUKZm9sbG93aW5nIGRvY3VtZW50OiBodHRwczovL2dpdGh1Yi5jb20vc21hbGxyeWUvc21hbGxyeWUtb3Blbi1hcGkvdHJlZS9tYXN0ZXIvdG9vbHMvbWF2ZW4tcGx1Z2luI2NvbmZpZ3VyYXRpb24tb3B0aW9ucwoKIyMgQ2hhbmdlbG9nCgpSZWNlbnQgY2hhbmdlcyBjYW4gYmUgdmlld2VkIG9uIEdpdGh1YiBvbiB0aGUgW1JlbGVhc2VzIFBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9rdW11bHV6L2t1bXVsdXplZS1vcGVuYXBpLW1wL3JlbGVhc2VzKQoKCiMjIENvbnRyaWJ1dGUKClNlZSB0aGUgW2NvbnRyaWJ1dGluZyBkb2NzXShodHRwczovL2dpdGh1Yi5jb20va3VtdWx1ei9rdW11bHV6ZWUtb3BlbmFwaS1tcC9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCgpXaGVuIHN1Ym1pdHRpbmcgYW4gaXNzdWUsIHBsZWFzZSBmb2xsb3cgdGhlIApbZ3VpZGVsaW5lc10oaHR0cHM6Ly9naXRodWIuY29tL2t1bXVsdXova3VtdWx1emVlLW9wZW5hcGktbXAvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2J1Z3MpLgoKV2hlbiBzdWJtaXR0aW5nIGEgYnVnZml4LCB3cml0ZSBhIHRlc3QgdGhhdCBleHBvc2VzIHRoZSBidWcgYW5kIGZhaWxzIGJlZm9yZSBhcHBseWluZyB5b3VyIGZpeC4gU3VibWl0IHRoZSB0ZXN0IAphbG9uZ3NpZGUgdGhlIGZpeC4KCldoZW4gc3VibWl0dGluZyBhIG5ldyBmZWF0dXJlLCBhZGQgdGVzdHMgdGhhdCBjb3ZlciB0aGUgZmVhdHVyZS4KCiMjIExpY2Vuc2UKCk1JVAo= readmeEtag: '"45ffb32ef3233290d30b372946fe1fd2f903faaa"' readmeLastModified: Tue, 07 Jun 2022 13:14:17 GMT repositoryId: 172050864 description: >- KumuluzEE OpenAPI MicroProfile project provides powerful tools to incorporate the OpenAPI 3 specification to your microservices in a standardized way. created: '2019-02-22T10:59:42Z' updated: '2022-06-07T13:02:06Z' language: Java archived: false stars: 2 watchers: 15 forks: 1 owner: kumuluz logo: https://avatars.githubusercontent.com/u/6859905?v=4 license: NOASSERTION repoEtag: '"83c28f4fa0596c1c89bd167af459d3100ef4d66a3ed967eb12a127552175362d"' repoLastModified: Tue, 07 Jun 2022 13:02:06 GMT foundInMaster: true category: Parsers id: dd2e2327f293e393564372d67494079c - source: openapi3 tags repository: https://github.com/sergiotm87/openfaas-openapi3-flask v3: true repositoryMetadata: base64Readme: >- CiMgW1dJUF0gT3BlbkZhYVMgcHl0aG9uLWZsYXNrLW9wZW5hcGkzIHRlbXBsYXRlCgpFeGFtcGxlIG9mIHB5dGhvbiB0ZW1wbGF0ZSBmb3IgW09wZW5GYWFzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmZhYXMvZmFhcykgd2l0aCBhdXRvbWF0aWMgZW5kcG9pbnQgdmFsaWRhdGlvbiBiYXNlZCBvbiBPcGVuQXBpMyBzY2hlbWEuCgpUaGlzIHR1dG9yaWFsIG1ha2UgdXNlIG9mIHRoZXNlIHByb2plY3RzOgoKaHR0cHM6Ly9naXRodWIuY29tL29wZW5mYWFzLWluY3ViYXRvci9weXRob24tZmxhc2stdGVtcGxhdGUKCmh0dHBzOi8vZ2l0aHViLmNvbS96YWxhbmRvL2Nvbm5leGlvbgoKIyMjIFJlcXVpcmVtZW50cwoKLSBbZmFhcy1jbGldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuZmFhcy9mYWFzLWNsaSkKYGBgCmZhYXMtY2xpIG5ldyBwZXRzdG9yZSAtLWxhbmcgcHl0aG9uMy1mbGFzay1zd2FnZ2VyCmBgYAoKIyMjIEJ1aWxkICYgUnVuCgpgYGAKZmFhcy1jbGkgYnVpbGQgLWYgcGV0c3RvcmUueW1sCgpkb2NrZXIgcnVuIC0tcm0gLXAgODA4MDo4MDgwIC0tbmFtZSBwZXRzdG9yZSBwZXRzdG9yZSAvYmluL3NoIC1jICJmcHJvY2Vzcz1cInB5dGhvbjMgL2hvbWUvYXBwL2luZGV4LnB5XCI7IGZ3YXRjaGRvZyIKYGBgCgojIyMgQmFkIHJlcXVlc3QKCmBgYApjdXJsIC1YIFBPU1QgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8iIC1IICAiYWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiAtSCAgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgLWQgIntcImluYW1lXCI6XCJwZXRpbmFtZVwiLFwidGFnXCI6XCJwZXR0YWdcIn0iCmBgYAoKYGBgCnsKICAiZGV0YWlsIjogIiduYW1lJyBpcyBhIHJlcXVpcmVkIHByb3BlcnR5IiwKICAic3RhdHVzIjogNDAwLAogICJ0aXRsZSI6ICJCYWQgUmVxdWVzdCIsCiAgInR5cGUiOiAiYWJvdXQ6YmxhbmsiCn0KYGBgCgojIyMgR29vZCByZXF1ZXN0LCBiYWQgcmVzcG9uc2UKCmBgYApjdXJsIC1YIFBPU1QgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8iIC1IICAiYWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiAtSCAgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgLWQgIntcIm5hbWVcIjpcInBldG5hbWVcIixcInRhZ1wiOlwicGV0dGFnXCJ9IgpgYGAKCmBgYAp7CiAgImRldGFpbCI6ICIne1wibmFtZVwiOiBcInBldG5hbWVcIiwgXCJ0YWdcIjogXCJwZXR0YWdcIn0nIGlzIG5vdCBvZiB0eXBlICdvYmplY3QnXG5cbkZhaWxlZCB2YWxpZGF0aW5nICd0eXBlJyBpbiBzY2hlbWFbJ2FsbE9mJ11bMF06XG4gICAgeydwcm9wZXJ0aWVzJzogeyduYW1lJzogeyd0eXBlJzogJ3N0cmluZyd9LCAndGFnJzogeyd0eXBlJzogJ3N0cmluZyd9fSxcbiAgICAgJ3JlcXVpcmVkJzogWyduYW1lJ10sXG4gICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgICd4LXNjb3BlJzogWycnLCAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0J119XG5cbk9uIGluc3RhbmNlOlxuICAgICd7XCJuYW1lXCI6IFwicGV0bmFtZVwiLCBcInRhZ1wiOiBcInBldHRhZ1wifSciLAogICJzdGF0dXMiOiA1MDAsCiAgInRpdGxlIjogIlJlc3BvbnNlIGJvZHkgZG9lcyBub3QgY29uZm9ybSB0byBzcGVjaWZpY2F0aW9uIiwKICAidHlwZSI6ICJhYm91dDpibGFuayIKfQpgYGAKCiMjIyBGaXggY29kZSAmIGdvb2QgcmVzcG9uc2UKCmBgYApzZWQgLWkgLWUgJ3MjIm1hZ2ljX2hhcHBlbmRzX2hlcmUiI3Jlc3VsdFsnIiciJ2lkJyInIiddID0gNDIjZycgcGV0c3RvcmUvaGFuZGxlci5weQpgYGAKCihidWlsZCBhbmQgcnVuIGFnYWluKQoKYGBgwroKY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0OjgwODAvIiAtSCAgImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIgLUggICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1kICJ7XCJuYW1lXCI6XCJwZXRuYW1lXCIsXCJ0YWdcIjpcInBldHRhZ1wifSIKYGBgCgpgYGAKewogICJpZCI6IDQyLAogICJuYW1lIjogInBldG5hbWUiLAogICJ0YWciOiAicGV0dGFnIgp9CmBgYAoKIyMgU3dhZ2dlci11aQoKaHR0cDovL2xvY2FsaG9zdDo4MDgwL3VpLw== readmeEtag: '"36ecf77fac74172cbefb7f1a7567b141e1353a90"' readmeLastModified: Tue, 15 Oct 2019 20:54:16 GMT repositoryId: 215393778 description: OpenFaas flask template with automatic endpoint validation created: '2019-10-15T20:48:00Z' updated: '2019-11-17T14:40:05Z' language: Dockerfile archived: false stars: 2 watchers: 2 forks: 0 owner: sergiotm87 logo: https://avatars.githubusercontent.com/u/12777256?v=4 repoEtag: '"e6cb9fc4d9d75ac103ec7d688d45a0a280b7ab26667517e61e6bda41187da856"' repoLastModified: Sun, 17 Nov 2019 14:40:05 GMT foundInMaster: true category: Data Validators id: b34d7cfb88aecc09582d877a336ccc6f - source: openapi3 tags repository: https://github.com/nuxeo-sandbox/nuxeo-openapi v3: true repositoryMetadata: base64Readme: >- IyBOdXhlbyBQbGF0Zm9ybSBPcGVuQVBJIERlZmluaXRpb24KCiMjIFdvcmtpbmcgb24geW91ciBPcGVuQVBJIERlZmluaXRpb24KCiMjIyBJbnN0YWxsCgoxLiBJbnN0YWxsIFtOb2RlIEpTXShodHRwczovL25vZGVqcy5vcmcvKS4KMi4gQ2xvbmUgdGhpcyByZXBvIGFuZCBydW4gYG5wbSBpbnN0YWxsYCBpbiB0aGUgcmVwbyByb290LgoKIyMjIFVzYWdlCgojIyMjIGBucG0gc3RhcnRgClN0YXJ0cyB0aGUgcmVmZXJlbmNlIGRvY3MgcHJldmlldyBzZXJ2ZXIuCk9wZW4gaHR0cDovL2xvY2FsaG9zdDo4MDgwLyB0byBicm93c2UgdGhlIE51eGVvIHNwZWNpZmljYXRpb24KCiMjIyMgYG5wbSBydW4gYnVpbGRgCkJ1bmRsZXMgdGhlIGRlZmluaXRpb24gdG8gdGhlIGRvY3MgZm9sZGVyLgoKIyMjIyBgbnBtIHJ1biBsaW50YApDaGVja3MgdGhlIHN5bnRheCBvZiB0aGUgZGVjbGFyZWQgc3BlY2lmaWNhdGlvbi4KCiMjIyMgYG5wbSB0ZXN0YApWYWxpZGF0ZXMgdGhlIGRlZmluaXRpb24uCgojIyBDb250cmlidXRpb24gR3VpZGUKCkJlbG93IGlzIGEgc2FtcGxlIGNvbnRyaWJ1dGlvbiBndWlkZS4gVGhlIHRvb2xzCmluIHRoZSByZXBvc2l0b3J5IGRvbid0IHJlc3RyaWN0IHlvdSB0byBhbnkKc3BlY2lmaWMgc3RydWN0dXJlLiBBZGp1c3QgdGhlIGNvbnRyaWJ1dGlvbiBndWlkZQp0byBtYXRjaCB5b3VyIG93biBzdHJ1Y3R1cmUuIEhvd2V2ZXIsIGlmIHlvdQpkb24ndCBoYXZlIGEgc3RydWN0dXJlIGluIG1pbmQsIHRoaXMgaXMgYQpnb29kIHBsYWNlIHRvIHN0YXJ0LgoKVXBkYXRlIHRoaXMgY29udHJpYnV0aW9uIGd1aWRlIGlmIHlvdQphZGp1c3QgdGhlIGZpbGUvZm9sZGVyIG9yZ2FuaXphdGlvbi4KClRoZSBgLnJlZG9jbHkueWFtbGAgY29udHJvbHMgc2V0dGluZ3MgZm9yIHZhcmlvdXMKdG9vbHMgaW5jbHVkaW5nIHRoZSBsaW50IHRvb2wgYW5kIHRoZSByZWZlcmVuY2UKZG9jcyBlbmdpbmUuICBPcGVuIGl0IHRvIGZpbmQgZXhhbXBsZXMgYW5kCltyZWFkIHRoZSBkb2NzXShodHRwczovL3JlZG9jLmx5L2RvY3MvY2xpL2NvbmZpZ3VyYXRpb24vKQpmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCgojIyMgU2NoZW1hcwoKIyMjIyBBZGRpbmcgU2NoZW1hcwoKMS4gTmF2aWdhdGUgdG8gdGhlIGBvcGVuYXBpL2NvbXBvbmVudHMvc2NoZW1hc2AgZm9sZGVyLgoyLiBBZGQgYSBmaWxlIG5hbWVkIGFzIHlvdSB3aXNoIHRvIG5hbWUgdGhlIHNjaGVtYS4KMy4gRGVmaW5lIHRoZSBzY2hlbWEuCjQuIFJlZmVyIHRvIHRoZSBzY2hlbWEgdXNpbmcgdGhlIGAkcmVmYCAoc2VlIGV4YW1wbGUgYmVsb3cpLgoKIyMjIyMgRXhhbXBsZSBTY2hlbWEKVGhpcyBpcyBhIHZlcnkgc2ltcGxlIHNjaGVtYSBleGFtcGxlOgpgYGB5YW1sCnR5cGU6IHN0cmluZwpkZXNjcmlwdGlvbjogVGhlIHJlc291cmNlIElELiBEZWZhdWx0cyB0byBVVUlEIHY0Cm1heExlbmd0aDogNTAKZXhhbXBsZTogNGY2Y2YzNXgtMmM0eS00ODN6LWEwYTktMTU4NjIxZjc3YTIxCmBgYApUaGlzIGlzIGEgbW9yZSBjb21wbGV4IHNjaGVtYSBleGFtcGxlOgpgYGB5YW1sCnR5cGU6IG9iamVjdApwcm9wZXJ0aWVzOgogIGlkOgogICAgZGVzY3JpcHRpb246IFRoZSBjdXN0b21lciBpZGVudGlmaWVyIHN0cmluZwogICAgcmVhZE9ubHk6IHRydWUKICAgIGFsbE9mOgogICAgICAtICRyZWY6IC4vUmVzb3VyY2VJZC55YW1sCiAgd2Vic2l0ZUlkOgogICAgZGVzY3JpcHRpb246IFRoZSB3ZWJzaXRlJ3MgSUQKICAgIGFsbE9mOgogICAgICAtICRyZWY6IC4vUmVzb3VyY2VJZC55YW1sCiAgcGF5bWVudFRva2VuOgogICAgdHlwZTogc3RyaW5nCiAgICB3cml0ZU9ubHk6IHRydWUKICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgIEEgd3JpdGUtb25seSBwYXltZW50IHRva2VuOyBpZiBzdXBwbGllZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBhCiAgICAgIHBheW1lbnQgaW5zdHJ1bWVudCBhbmQgYmUgc2V0IGFzIHRoZSBgZGVmYXVsdFBheW1lbnRJbnN0cnVtZW50YC4gVGhlCiAgICAgIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgd2lsbCBvdmVycmlkZSB0aGUgYGRlZmF1bHRQYXltZW50SW5zdHJ1bWVudGAKICAgICAgaW4gdGhlIGNhc2UgdGhhdCBib3RoIGFyZSBzdXBwbGllZC4gVGhlIHRva2VuIG1heSBvbmx5IGJlIHVzZWQgb25jZQogICAgICBiZWZvcmUgaXQgaXMgZXhwaXJlZC4KICBkZWZhdWx0UGF5bWVudEluc3RydW1lbnQ6CiAgICAkcmVmOiAuL1BheW1lbnRJbnN0cnVtZW50LnlhbWwKICBjcmVhdGVkVGltZToKICAgIGRlc2NyaXB0aW9uOiBUaGUgY3VzdG9tZXIgY3JlYXRlZCB0aW1lCiAgICBhbGxPZjoKICAgICAgLSAkcmVmOiAuL1NlcnZlclRpbWVzdGFtcC55YW1sCiAgdXBkYXRlZFRpbWU6CiAgICBkZXNjcmlwdGlvbjogVGhlIGN1c3RvbWVyIHVwZGF0ZWQgdGltZQogICAgYWxsT2Y6CiAgICAgIC0gJHJlZjogLi9TZXJ2ZXJUaW1lc3RhbXAueWFtbAogIHRhZ3M6CiAgICBkZXNjcmlwdGlvbjogQSBsaXN0IG9mIGN1c3RvbWVyJ3MgdGFncwogICAgcmVhZE9ubHk6IHRydWUKICAgIHR5cGU6IGFycmF5CiAgICBpdGVtczoKICAgICAgJHJlZjogLi9UYWdzL1RhZy55YW1sCiAgcmV2aXNpb246CiAgICBkZXNjcmlwdGlvbjogPgogICAgICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBjdXN0b21lciBkYXRhIGhhcyBiZWVuIG1vZGlmaWVkLgoKICAgICAgVGhlIHJldmlzaW9uIGlzIHVzZWZ1bCB3aGVuIGFuYWx5emluZyB3ZWJob29rIGRhdGEgdG8gZGV0ZXJtaW5lIGlmIHRoZQogICAgICBjaGFuZ2UgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgogICAgdHlwZTogaW50ZWdlcgogICAgcmVhZE9ubHk6IHRydWUKICBfbGlua3M6CiAgICB0eXBlOiBhcnJheQogICAgZGVzY3JpcHRpb246IFRoZSBsaW5rcyByZWxhdGVkIHRvIHJlc291cmNlCiAgICByZWFkT25seTogdHJ1ZQogICAgbWluSXRlbXM6IDMKICAgIGl0ZW1zOgogICAgICBhbnlPZjoKICAgICAgICAtICRyZWY6IC4vTGlua3MvU2VsZkxpbmsueWFtbAogICAgICAgIC0gJHJlZjogLi9MaW5rcy9Ob3Rlc0xpbmsueWFtbAogICAgICAgIC0gJHJlZjogLi9MaW5rcy9EZWZhdWx0UGF5bWVudEluc3RydW1lbnRMaW5rLnlhbWwKICAgICAgICAtICRyZWY6IC4vTGlua3MvTGVhZFNvdXJjZUxpbmsueWFtbAogICAgICAgIC0gJHJlZjogLi9MaW5rcy9XZWJzaXRlTGluay55YW1sCiAgX2VtYmVkZGVkOgogICAgdHlwZTogYXJyYXkKICAgIGRlc2NyaXB0aW9uOiA+LQogICAgICBBbnkgZW1iZWRkZWQgb2JqZWN0cyBhdmFpbGFibGUgdGhhdCBhcmUgcmVxdWVzdGVkIGJ5IHRoZSBgZXhwYW5kYAogICAgICBxdWVyeXN0cmluZyBwYXJhbWV0ZXIuCiAgICByZWFkT25seTogdHJ1ZQogICAgbWluSXRlbXM6IDEKICAgIGl0ZW1zOgogICAgICBhbnlPZjoKICAgICAgICAtICRyZWY6IC4vRW1iZWRzL0xlYWRTb3VyY2VFbWJlZC55YW1sCgpgYGAKCiMjIyMjIFVzaW5nIHRoZSBgJHJlZmAKCk5vdGljZSBpbiB0aGUgY29tcGxleCBleGFtcGxlIGFib3ZlIHRoZSBzY2hlbWEgZGVmaW5pdGlvbiBpdHNlbGYgaGFzIGAkcmVmYCBsaW5rcyB0byBvdGhlciBzY2hlbWFzIGRlZmluZWQuCgpIZXJlIGlzIGEgc21hbGwgZXhjZXJwdCB3aXRoIGFuIGV4YW1wbGU6CgpgYGB5YW1sCmRlZmF1bHRQYXltZW50SW5zdHJ1bWVudDoKICAkcmVmOiAuL1BheW1lbnRJbnN0cnVtZW50LnlhbWwKYGBgCgpUaGUgdmFsdWUgb2YgdGhlIGAkcmVmYCBpcyB0aGUgcGF0aCB0byB0aGUgb3RoZXIgc2NoZW1hIGRlZmluaXRpb24uCgpZb3UgbWF5IHVzZSBgJHJlZmBzIHRvIGNvbXBvc2Ugc2NoZW1hIGZyb20gb3RoZXIgZXhpc3Rpbmcgc2NoZW1hIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgoKWW91IHdpbGwgdXNlIGAkcmVmYHMgdG8gcmVmZXJlbmNlIHNjaGVtYSBmcm9tIHlvdXIgcGF0aCBkZWZpbml0aW9ucy4KCiMjIyMgRWRpdGluZyBTY2hlbWFzCgoxLiBOYXZpZ2F0ZSB0byB0aGUgYG9wZW5hcGkvY29tcG9uZW50cy9zY2hlbWFzYCBmb2xkZXIuCjIuIE9wZW4gdGhlIGZpbGUgeW91IHdpc2ggdG8gZWRpdC4KMy4gRWRpdC4KCiMjIyBQYXRocwoKIyMjIyBBZGRpbmcgYSBQYXRoCgoxLiBOYXZpZ2F0ZSB0byB0aGUgYG9wZW5hcGkvcGF0aHNgIGZvbGRlci4KMi4gQWRkIGEgbmV3IFlBTUwgZmlsZSBuYW1lZCBsaWtlIHlvdXIgVVJMIGVuZHBvaW50IGV4Y2VwdCByZXBsYWNpbmcgYC9gIHdpdGggYEBgIGFuZCBwdXR0aW5nIHBhdGggcGFyYW1ldGVycyBpbnRvIGN1cmx5IGJyYWNlcyBsaWtlIGB7ZXhhbXBsZX1gLgozLiBBZGQgdGhlIHBhdGggYW5kIGEgcmVmIHRvIGl0IGluc2lkZSBvZiB5b3VyIGBvcGVuYXBpLnlhbWxgIGZpbGUgaW5zaWRlIG9mIHRoZSBgb3BlbmFwaWAgZm9sZGVyLgoKRXhhbXBsZSBhZGRpdGlvbiB0byB0aGUgYG9wZW5hcGkueWFtbGAgZmlsZToKYGBgeWFtbAonL2N1c3RvbWVycy97aWR9JzoKICAkcmVmOiAnLi9wYXRocy9jdXN0b21lcnNAe2lkfS55YW1sJwpgYGAKCkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIFlBTUwgZmlsZSBuYW1lZCBgY3VzdG9tZXJzQHtpZH0ueWFtbGAgaW4gdGhlIGBwYXRoc2AgZm9sZGVyOgoKYGBgeWFtbApnZXQ6CiAgdGFnczoKICAgIC0gQ3VzdG9tZXJzCiAgc3VtbWFyeTogUmV0cmlldmUgYSBsaXN0IG9mIGN1c3RvbWVycwogIG9wZXJhdGlvbklkOiBHZXRDdXN0b21lckNvbGxlY3Rpb24KICBkZXNjcmlwdGlvbjogfAogICAgWW91IGNhbiBoYXZlIGEgbWFya2Rvd24gZGVzY3JpcHRpb24gaGVyZS4KICBwYXJhbWV0ZXJzOgogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkxpbWl0LnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25PZmZzZXQueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkZpbHRlci55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uUXVlcnkueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkV4cGFuZC55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uRmllbGRzLnlhbWwKICByZXNwb25zZXM6CiAgICAnMjAwJzoKICAgICAgZGVzY3JpcHRpb246IEEgbGlzdCBvZiBDdXN0b21lcnMgd2FzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkKICAgICAgaGVhZGVyczoKICAgICAgICBSYXRlLUxpbWl0LUxpbWl0OgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1JhdGUtTGltaXQtTGltaXQueWFtbAogICAgICAgIFJhdGUtTGltaXQtUmVtYWluaW5nOgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1JhdGUtTGltaXQtUmVtYWluaW5nLnlhbWwKICAgICAgICBSYXRlLUxpbWl0LVJlc2V0OgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1JhdGUtTGltaXQtUmVzZXQueWFtbAogICAgICAgIFBhZ2luYXRpb24tVG90YWw6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUGFnaW5hdGlvbi1Ub3RhbC55YW1sCiAgICAgICAgUGFnaW5hdGlvbi1MaW1pdDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9QYWdpbmF0aW9uLUxpbWl0LnlhbWwKICAgICAgICBQYWdpbmF0aW9uLU9mZnNldDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9QYWdpbmF0aW9uLU9mZnNldC55YW1sCiAgICAgIGNvbnRlbnQ6CiAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9zY2hlbWFzL0N1c3RvbWVyLnlhbWwKICAgICAgICB0ZXh0L2NzdjoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9zY2hlbWFzL0N1c3RvbWVyLnlhbWwKICAgICc0MDEnOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9BY2Nlc3NGb3JiaWRkZW4ueWFtbAogIHgtY29kZS1zYW1wbGVzOgogICAgLSBsYW5nOiBQSFAKICAgICAgc291cmNlOgogICAgICAgICRyZWY6IC4uL2NvZGVfc2FtcGxlcy9QSFAvY3VzdG9tZXJzL2dldC5waHAKcG9zdDoKICB0YWdzOgogICAgLSBDdXN0b21lcnMKICBzdW1tYXJ5OiBDcmVhdGUgYSBjdXN0b21lciAod2l0aG91dCBhbiBJRCkKICBvcGVyYXRpb25JZDogUG9zdEN1c3RvbWVyCiAgZGVzY3JpcHRpb246IEFub3RoZXIgbWFya2Rvd24gZGVzY3JpcHRpb24gaGVyZS4KICByZXF1ZXN0Qm9keToKICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVxdWVzdEJvZGllcy9DdXN0b21lci55YW1sCiAgcmVzcG9uc2VzOgogICAgJzIwMSc6CiAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVzcG9uc2VzL0N1c3RvbWVyLnlhbWwKICAgICc0MDEnOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9BY2Nlc3NGb3JiaWRkZW4ueWFtbAogICAgJzQwOSc6CiAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVzcG9uc2VzL0NvbmZsaWN0LnlhbWwKICAgICc0MjInOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9JbnZhbGlkRGF0YUVycm9yLnlhbWwKICB4LWNvZGUtc2FtcGxlczoKICAgIC0gbGFuZzogUEhQCiAgICAgIHNvdXJjZToKICAgICAgICAkcmVmOiAuLi9jb2RlX3NhbXBsZXMvUEhQL2N1c3RvbWVycy9wb3N0LnBocApgYGAKCllvdSdsbCBzZWUgZXh0ZW5zaXZlIHVzYWdlIG9mIGAkcmVmYHMgaW4gdGhpcyBleGFtcGxlIHRvIGRpZmZlcmVudCB0eXBlcyBvZiBjb21wb25lbnRzIGluY2x1ZGluZyBzY2hlbWFzLgoKWW91J2xsIGFsc28gbm90aWNlIGAkcmVmYHMgdG8gY29kZSBzYW1wbGVzLgoKIyMjIENvZGUgc2FtcGxlcwoKMS4gTmF2aWdhdGUgdG8gdGhlIGBvcGVuYXBpL2NvZGVfc2FtcGxlc2AgZm9sZGVyLgoyLiBOYXZpZ2F0ZSB0byB0aGUgYDxsYW5ndWFnZT5gIChlLmcuIFBIUCkgc3ViLWZvbGRlci4KMy4gTmF2aWdhdGUgdG8gdGhlIGBwYXRoYCBmb2xkZXIsIGFuZCBhZGQgcmVmIHRvIHRoZSBjb2RlIHNhbXBsZS4KCllvdSBjYW4gYWRkIGxhbmd1YWdlcyBieSBhZGRpbmcgbmV3IGZvbGRlcnMgYXQgdGhlIGFwcHJvcHJpYXRlIHBhdGggbGV2ZWwuCgpNb3JlIGRldGFpbHMgaW5zaWRlIHRoZSBgY29kZV9zYW1wbGVzYCBmb2xkZXIgUkVBRE1FLgo= readmeEtag: '"0d3f9805b9190e570910dc6f7b3281e1a72c4454"' readmeLastModified: Tue, 25 May 2021 17:00:53 GMT repositoryId: 288878170 description: Nuxeo Platform - OpenAPI 3.0 Definition created: '2020-08-20T01:45:54Z' updated: '2022-05-04T09:45:21Z' language: JavaScript archived: false stars: 2 watchers: 23 forks: 0 owner: nuxeo-sandbox logo: https://avatars.githubusercontent.com/u/10600635?v=4 license: Apache-2.0 repoEtag: '"8c73976933a3f5ca9b804fd1ef7778262734af13ee84fcaef19c8fda6c7b7bac"' repoLastModified: Wed, 04 May 2022 09:45:21 GMT foundInMaster: true category: Parsers id: 8c3d4cf99acd1b18a2570332f306ca3c - source: openapi3 tags repository: https://github.com/juandepalo/keycloak-aspnetcore v3: true repositoryMetadata: base64Readme: >- IyBLZXljbG9hayAvICBBU1AuTkVUIENvcmUgLyBTd2FnZ2VyIE5zd2FnCkVzdGEgYXBsaWNhY2nDs24gZXMgdW4gZWplbXBsbyBkZSBjb21vIHByb3RlZ2VyIEFTUC5ORVQgY29yZSAyLjIgY29uIHVuIHNlcnZpZG9yIGRlIGF1dGVudGlmaWNhY2lvbiBvYXV0aDIgS2V5Y2xvYWsuClRhbWJpZW4gc2UgaW1wbGVtZW50YSBlbCBjb25zdW1vIGRlIGxhIGFwaSBjb24gTnN3YWcgY29uIE9wZW5BcGkgMy4KCiFbXSguL2ltYWdlcy8yMDE5LTA3LTI5XzgtMDctNDUuZ2lmKQoKIyMgUmVzdW1lbgotIFNlcnZlcgogIC0gQVNQLk5FVCBDb3JlIDIuMgogIC0gRG9ja2VyOiBrZXljbG9hY2sgc2VydmVyIGNvbiBiYXNlIGRlIGRhdG9zIG15c3FsCi0gQ2xpZW50CiAgLSBOc3dhZy4gaW50ZXJmYXogZGUgdXN1YXJpbyB5IGVsIGdlbmVyYWRvciBkZSBTd2FnZ2VyCgoKIyMgU2V0dXAKCjEuIEluc3RhbGFjacOzbjoKICAgLSBbLk5FVCBDb3JlIDIuMl0oaHR0cHM6Ly9kb3RuZXQubWljcm9zb2Z0LmNvbS9sZWFybi9kb3RuZXQvaGVsbG8td29ybGQtdHV0b3JpYWwvaW5zdGFsbCkKICAgLSBbRG9ja2VyXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItZm9yLXdpbmRvd3MvaW5zdGFsbC8pCgoyLiBDbG9uYXIgZWwgcHJveWVjdG86CiAgICBgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWFuZGVwYWxvL0tleWNsb2FrLWFzcG5ldGNvcmUuZ2l0YAoKCjMuIFNpdHVhcnNlIGVuIGVsIGRpcmVjdG9yaW86CgogICBjZCAuL0tleWNsb2FrLWFzcG5ldGNvcmUKNC4gZWplY3V0YXI6CgogICBgZG9ja2VyLWNvbXBvc2UgLWYgImRvY2tlci1jb21wb3NlLnltbCIgIHVwIC1kIC0tYnVpbGQgLS1yZW1vdmUtb3JwaGFuc2AKCjUuIEFicmlyIGVsIG5hdmVnYWRvciBbaHR0cDovL2xvY2FsaG9zdDo4MDgwXShodHRwOi8vbG9jYWxob3N0OjgwODApIFtodHRwOi8vbG9jYWxob3N0OjEwMDAxXShodHRwOi8vbG9jYWxob3N0OjEwMDAxKS4KCgohW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MF0oLi9pbWFnZXMvMjAxOS0wNy0yOV84LTQwLTMwLnBuZykKCiFbaHR0cDovL2xvY2FsaG9zdDoxMDAwMV0oLi9pbWFnZXMvMjAxOS0wNy0yOV84LTQwLTM5LnBuZykKCiMjIENvbmZpZ3VyYWNpw7NuCgoxLiBNb2RpZmljYWNpb24gZGUgaG9zdC4KICAgMS4gIFBhcmEgZWplY3V0YXIgbG9jYWxtZW50ZSBtb2RpZmljYXJlbW9zIGVsIGZpY2hlcm8gJ0M6XFdpbmRvd3NcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMnIGHDsWFkaWVuZG8gZWwgbm9tYnJlIGRlbCBzZXJ2aWNpbyBkZSBLZXljbG9hcmsgcXVlIHNlIHB1ZWRlIG1vZGlmaWNhciBlbiBlbCBbZG9ja2VyLWNvbXBvc2VdKC4vZG9ja2VyLWNvbXBvc2UueW1sKS4KCiAgICAhW25vbWJyZXNlcnZpY2lva2V5Y2xvYWtdKC4vaW1hZ2VzL25vbWJyZVNlcnZpY2lvS2V5Y2xvYWsucG5nKQoKCgoKCiAgICBtb2RpZmljYWNpw7NuIGZpY2hlcm8gaG9zdHM6CgogICAgYDEyNy4wLjAuMSAgICAgICBsb2NhbGhvc3QgIGtleWNsb2Fsb2NhbGhvc3RgCgoyLiBDb25maWd1cmFjaW9uIGRlIEtleWNsb2FrLgogICAxLiBIZSBkZWphZG8gbGEgZXhwb3J0YWNpw7NuIGRlIGNvbmZpZ3VyYWNpw7NuIGRlIHVuIGNsaWVudGUgcGFyYSBlbCBlamVtcGxvIGVuIFtrZXljbG9hay1JbXBvcnQvcmVhbG0tZXhwb3J0Lmpzb25dKC4va2V5Y2xvYWstSW1wb3J0L3JlYWxtLWV4cG9ydC5qc29uKQoKUHVsc2Ftb3Mgc29icmUgQWRtaW5pc3RyYWRvciBjb25zb2xlLiBOb3Mgc29saWNpdGFyYSBsYXMgY3JlZGVuY2lhbGVzLgpQb3IgZGVmZWN0byBjb24gZG9ja2VyLWNvbXBvc2UgaGVtb3MgY3JlYWRvIGVsIHVzdWFyaW8gKiphZG1pbioqLCBjb24gY29udHJhc2XDsWEgKipQYTU1dzByZCoqCiFbbG9naW4gQ29uc29sYV0oLi9pbWFnZXMvbG9naW5jb25zb2xhLnBuZykKClBhcmEgbnVlc3RybyBlbnRvcm5vIGRlIHBydWViYXMgY3JlYXJlbW9zIG51ZXN0cm8gUmVhbG0gIkRlbW8iLCBwYXJhIGVsbG8gcHVsc2Ftb3Mgc29icmUgbGEgYWRkIFJlYWxtCiFbY3JlYWNpb24gUmVhbG1dKC4vaW1hZ2VzL2NyZWFjaW9uUmVhbG0ucG5nKQoKVmFtb3MgYSBsYSBwZXN0YcOxYSAiU2VjdXJpdHkgRGVmZW5zZXMiIHkgcGVybWl0aW1vcyB0b2RvcyBsb3Mgb3JpZ2VuZXMKYFgtRnJhbWUtT3B0aW9ucyA6IEFMTE9XLUZST00gKmAKIVtTZWd1cmlkYWQgUmVhbG1dKC4vaW1hZ2VzL1NlZ3VpcmlkYWRSZWFsbS5wbmcpCgpJbXBvcnRhbW9zIGVsIGNsaWVudGUgW2tleWNsb2FrLUltcG9ydC9yZWFsbS1leHBvcnQuanNvbl0oLi9rZXljbG9hay1JbXBvcnQvcmVhbG0tZXhwb3J0Lmpzb24pCiFbSW1wb3J0YXIgQ2xpZW50ZV0oLi9pbWFnZXMvaW1wb3J0YWNpb25jbGllbnRlLnBuZykKClZhbGlkYW1vcyBjb25maWd1cmFjacOzbgohW0NvbmZpZ3VyYWNpw7NuIENsaWVudGVdKC4vaW1hZ2VzL2NvbmZpZ3VyYWNpb25DbGllbnRlLnBuZykKCkdlbmVyYW1vcyBTZWNyZXQga2V5IHF1ZSBkZWJlbW9zIGNvcGlhciBwYXJhIGNvbmZpZ3VyYXIgZWwgcHJveWVjdG8gZGUgQXNwbmV0LmNvcmUKIVtDcmVhY2nDs24gZGUgU2VjcmV0XSguL2ltYWdlcy9SZWdlbmVyYWNpb25TZWNyZXQucG5nKQoKUGFyYSBjb25zdW1pciBsYSBhcGkgbmVjZXN0aWFtb3MgYcOxYWRpciB1biB1c3VhcmlvIGFsIGNsaWVudGUgc2FtcGxld2ViYXBpCiFbQ3JlYWNpw7NuIFVzdWFyaW9dKC4vaW1hZ2VzL0NyZWFjaW9uVXN1YXJpby5wbmcpCgpMZSBhc2lnbmFtb3MgdW5hIGNvbnRyYXNlw7FhCiFbQ2FtYmlvIGNvbnRyYXNlw7FhXSguL2ltYWdlcy9jb250cmFzZW5hVXN1YXJpby5wbmcpCiFbQ3JlYWNpb24gY29udHJhc2XDsWEgVXN1YXJpb10oLi9pbWFnZXMvY3JlYWNpb25Db250cmFzZW5hVXN1YXJpby5wbmcpCiFbY29uZmlybWFjaW9uIGNhbWJpbyBjb250cmFzw7FlYV0oLi9pbWFnZXMvY29uZmlybWFjaW9uY2FtYmlvY29udHJhc2VuYS5wbmcpCgpWYWxpZGFtb3MgbG9zIFJvbGVzCiFbUm9sZXMgVXN1YXJpb10oLi9pbWFnZXMvcm9sZXNVc3VhcmlvLnBuZykKClBhcmEgdmVyIGVsIGVzcXVlbWEgZGUgYXV0ZW5maWNhY2nDs24gZGUgS2V5Y2xvYWsgbm9zIHNpdHVhbW9zIGVuIFJlYWxtIFNldHRpbmcKIVtDb25maWd1cmFjaW9uIFJlYWxtXSguL2ltYWdlcy9vYnRlbmVyY29uZmlndXJhY2lvbi5wbmcpCgp5IHB1bHNhbW9zIHNvbmJyZSBlbCBFbmRwb2ludHMgIk9wZW5JRCBFbmRwb2ludCBDb25maWd1cmF0aW9uIgohW0RhdG9zIENvbmZpZ3VyYWNpw7NuXSguL2ltYWdlcy9kYXRvc2NvbmZpZ3VyYWNpb24ucG5nKQoKMy4gQ29uZmlndXJhY2lvbiBBc3BuZXQuCiAgIENvbiBsb3MgZGF0b3Mgb2J0ZW5pZG9zIGRlbCBlc3F1ZW1hIGRlIGtleWNsb2FrIGNvbmZpZ3VyYW1vcyBudWVzdHJvIGNsaWVudGUuCgohW0NvbmZpZ3VyYWNpw7NuIEFzcG5ldF0oLi9pbWFnZXMvY29uZmlndXJhY2lvbkFzcG5ldC5wbmcpCgoKNC4gUHJvYmFyOgoKQWNjZXJkZXIgYSBsYSB1cmwgaHR0cDovL2xvY2FsaG9zdDoxMDAwMS9zd2FnZ2VyLwohW3N3YWdnZXJdKC4vaW1hZ2VzL3N3YWdnZXIucG5nKQoKIVtBdXRvcml6YWNpw7NuXSguL2ltYWdlcy9hdXRlbnRpZmljYWNpb25Td2FnZ2VyLnBuZykKCiFbVmFsaWRhciBkYXRvcyBjbGllbnRlXSguL2ltYWdlcy9kYXRvc2F1dG9yaXphY2lvbi5wbmcpCgoKIVtQYW50YWxsYSBsb2dpbl0oLi9pbWFnZXMvbG9naW5rZXljbG9hay5wbmcpCgohW1VzdWFyaW8gU2FtcGxlV2ViQXBpXSguL2ltYWdlcy9sb2dpbnVzdWFyaW9TYW1wbGVXZWJhcGkucG5nKQoKIVtBdXRlbnRpZmljYWNpw7NuIGNvcnJlY3RhXSguL2ltYWdlcy9BdXRvcml6YWNpb25Db3JyZWN0YS5wbmcpCgohW1BydWViYSBjb25zdW1vIGFwaV0oLi9pbWFnZXMvZWplY3V0YXJBcGkucG5nKQoKIVtSZXN1bHRhZG9dKC4vaW1hZ2VzL1Jlc3VsdGFkby5wbmcpCgoKIyMgRW5sYWNlcwpbVmlzdWFsIHN0dWRpbyBOc3dhZ10oaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZXMtZXMvYXNwbmV0L2NvcmUvdHV0b3JpYWxzL2dldHRpbmctc3RhcnRlZC13aXRoLW5zd2FnP3ZpZXc9YXNwbmV0Y29yZS0yLjImdGFicz12aXN1YWwtc3R1ZGlvKQoKW05zd2FnXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnKQoKW0FkZCBPQXV0aDIgYXV0aG9yaXphdGlvbiAoT3BlbkFQSSAzKV0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL0FzcE5ldENvcmUtTWlkZGxld2FyZSkKCltLZXlDbG9hayBEb2N1bWVudGFjaW9uXShodHRwczovL3d3dy5rZXljbG9hay5vcmcvYXJjaGl2ZS9kb2N1bWVudGF0aW9uLTYuMC5odG1sKQoK readmeEtag: '"48226cb16c42c04cf10738b013da66e7c9d28d57"' readmeLastModified: Wed, 31 Jul 2019 11:15:47 GMT repositoryId: 198949372 description: Configuracion de seguridad oauth2 con Keycloak y aspnetcore created: '2019-07-26T05:02:58Z' updated: '2024-02-22T06:23:00Z' language: C# archived: false stars: 2 watchers: 2 forks: 1 owner: juandepalo logo: https://avatars.githubusercontent.com/u/412616?v=4 repoEtag: '"5f15851995329ea41eb473b66a4f1569b2590baeb98060f2f1f6075a60da9dd7"' repoLastModified: Thu, 22 Feb 2024 06:23:00 GMT foundInMaster: true category: SDK id: 413cd3319b82020bb82e0ea9eb492d9e - source: openapi3 tags repository: https://github.com/zark0-uwu/go-api-template v3: true id: 0337abf062292091e0a1029b9bac1d98 repositoryMetadata: base64Readme: >- IyBHbyBBUEkgdGVtcGxhdGUKIyMgVXNpbmcvaW1wbGVtZW50aW5nCjxkZXRhaWxzPgogPHN1bW1hcnk+Q2xpY2sgdG8gZXhwYW5kITwvc3VtbWFyeT4KIC0gKipGaWJlcioqICAgIAogICAgPiBGb3IgcGVyZm9ybWFudCByb3V0aW5nIGFuZCBtYW55IG90aGVyIHRoaW5ncwogLSAqKkpXVCoqICAgICAgCiAgICA+IEZvciB1c2VyIGF1dGhlbnRpY2F0aW9uCiAtICoqTW9uZ29EQioqICAKICAgID4gQXMgdGhlIG1haW4gZGF0YWJhc2UKIC0gKipPcGVuVGVsZW1ldHJ5ICYgTGlnaHRTdGVwKiogIAogICAgPiBGb3IgRGVwbG95bWVudCB0ZWxlbWV0cnkKIC0gKipSZWRvYyBzdGFuZGFsb25lKiogCiAgICA+IEZvciBUZWNobmljYWwgZG9jdW1lbnRhdGlvbiBkZXBsb3ltZW50CiAtICoqZ29kb3RlbnYqKiAKICAgID4gRm9yIGxvY2FsIGRldmVsb3BtZW50CjwvZGV0YWlscz4KCiMjIEludHJvZHVjdGlvbi92aXNpb246CgpGaWJlciBpcyBhIHF1aWNrbHkgZ3Jvd2luZyBzdXBlci1mYXN0IGJhY2tlbmQgZnJhbWV3b3JrLCBtYWlubHkgd3JpdHRlbiBpbiBnb2xhbmcgd2l0aCBwZXJmb3JtYW5jZSBpbiBtaW5kLiAKClRoZSBpbnRlbnQgb2YgdGhpcyByZXBvIGlzIHRvIGNyZWF0ZSBhICoqcGVyZm9ybWFudCwgY29tcHJlbmhlbnNpYmxlLCBtYW50YWluYWJsZSBhbmQgcHJvZHVjdGlvbiByZWFkeSB0ZW1wbGF0ZSoqIHdpdGggbm90aGluZyBpbiBpdCBidXQgdGhlIGJhc2ljcywgc28geW91IGRvIG5vdCBoYXZlIHRvIHNwZW5kIHRpbWUgcmVtb3ZpbmcgY29kZSBvciBzdHJ1Z2VsaW5nIHRvIHVuZGVyc3RhbmQgYW55IGNvbXBsaWNhdGVkIGNvZGUgc3RydWN0dXJlCgpUaGUgb25seSB0aGluZyBpdCBoYW5kbGVzIGJ5IGRlZmF1bHQgaXMgYSBzZXNpb24gbWFuYWdlbWVudCBzeXN0ZW0uCgojIyBGdXR1cmUgZmVhdHVyZXM6CjxkZXRhaWxzPgogPHN1bW1hcnk+Q2xpY2sgdG8gZXhwYW5kITwvc3VtbWFyeT4KICAgIyMjIE5vdGhpbmcgdG8gc2VlIGhlcmUgeWV0ICA6KAo8L2RldGFpbHM+CgojIyBQcm9qZWN0IFN0cnVjdHVyZToKPGRldGFpbHM+CiA8c3VtbWFyeT5DbGljayB0byBleHBhbmQhPC9zdW1tYXJ5PgoKYGBgCi4K4pSc4pSA4pSAIHNyYy8K4pSCICAg4pSc4pSA4pSAIGNvbmZpZy8K4pSCICAg4pSCICAg4pSU4pSA4pSAIGNvbmZpZy5nbwrilIIgICDilJzilIDilIAgaGFuZGxlcnMvCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCB1c2Vycy8K4pSCICAg4pSCICAgICAgIOKUnOKUgOKUgCBhdXRoLmdvCuKUgiAgIOKUgiAgICAgICDilJTilIDilIAgdXNlci5nbwrilIIgICDilJzilIDilIAgaGVscGVycy8K4pSCICAg4pSCICAg4pSU4pSA4pSAIC4K4pSCICAg4pSc4pSA4pSAIGxvYWRlcnMvCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBmaWJlci5nbwrilIIgICDilIIgICDilJTilIDilIAgbW9uZ28uZ28K4pSCICAg4pSc4pSA4pSAIG1pZGRsZXdhcmVzLwrilIIgICDilIIgICDilJTilIDilIAgYXV0aC5nbwrilIIgICDilJzilIDilIAgbW9kZWxzLwrilIIgICDilIIgICDilJTilIDilIAgdXNlci1tb2RlbC5nbwrilIIgICDilJzilIDilIAgcm91dGVzLwrilIIgICDilIIgICDilJzilIDilIAgYXBwUm91dGVyLmdvCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBhdXRoLmdvCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCB1c2Vycy5nbwrilIIgICDilJzilIDilIAgc2VydmljZXMvCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBtb25nby5nbwrilIIgICDilJzilIDilIAgdXRpbHMvCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCAuCuKUgiAgIOKUlOKUgOKUgCBtYWluLmdvCuKUnOKUgOKUgCAuZW52CuKUnOKUgOKUgCBhcHAuZ28K4pSc4pSA4pSAIGdvLm1vZArilJzilIDilIAgZ28uc3VtCuKUnOKUgOKUgCBSRUFETUUubWQK4pSU4pSA4pSAIHNhbXBsZS5lbnYKYGBgCjwvZGV0YWlscz4KCkkgd2FudGVkIHRvIGNvbnRhaW4gYWxsIHRoZSBzb3VyY2UgY29kZSB1bmRlciBhIHN1YiBmb2xkZXIsIHNvIEkgb25seSB1c2UgYXBwLmdvIHRvIGV4ZWN1dGUgYSBTdGFydCgpIGZ1bmN0aW9uIGluIHNyYy9tYWluLmdvCgojIEFQSSBkb2N1bWVudGF0aW9uCiAgIGN1cnJlbnRseSBzd2FnZ2VzdC9zd2FnIGNsaSAqKndhcyoqIGJlaW5nIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGRvY3MgZnJvbSB0aGUgZGVjYWxyYXRpdmUgY29tbWVudHMsIHRoaXMgaXMgbm8gbG9uZ2VyIHRoZSBjYXNlLgogICAqKkN1cnJlbnRseSB1c2luZyBtYW51YWx5IGNyYWZ0ZWQgZG9jdW1lbnRzKioKICAgPiBXaHkgbm90IHVzZSBzd2FnZ2VzdC9zd2FnIGNsaT86IGl0IGRvZXMgbm90IHN1cHBvcnQgT0FTMwoKICAgVG8gc2VydmUgdGhlZXNlIGRvY3MgYSAqKlJlZG9jKiogc3RhdGljIGZpbGUgaXMgYmVpbmcgdXNlZCwgbm90ZSB0aGF0IGludGVybmV0IGNvbm5lY3Rpb24gaXMgcmVxdWlyZWQgYXMgamRlbGl2ciBpcyBiZWluZyB1c2VkIGZvciBkZXBlbmRlbmNpZXMuCgojIyBTZXR1cDoKPGRldGFpbHM+CiAgPHN1bW1hcnk+Q2xpY2sgdG8gZXhwYW5kITwvc3VtbWFyeT4KClRvIGdldCB0aGUgQVBJIHVwIGFuZCBydW5uaW5nLCB0aGVyZSBhcmUgbWFueSB0aGluZ3MgdG8gc2V0dXAgZmlyc3QsICAKCiMjIyBCdWlsZGluZyBmcm9tIHNvdXJjZToKPGRldGFpbHM+CiAgPHN1bW1hcnk+Q2xpY2sgdG8gZXhwYW5kITwvc3VtbWFyeT4KMS4gT25jZSB0aGlzIHJlcG9zaXRvcnkgaXMgY2xvbmVkIGFuZCBnb2xhbmcgaXMgaW5zdGFsbGVkIGluIHRoZSBzeXN0ZW0sIG5hdmlnYXRlIHRvIHRoaXMgZGlyZWN0b3J5IGFuZCBydW4KCmBgYApnbyBtb2QgZG93bmxvYWQKYGBgCgoyLiBPbmNlIHRoZSBkZXBlbmRlbmNpZXMgYXJlIGRvd25sb2FkZWQsIHVzaW5nIHNhbXBsZS5lbnYgYXMgcmVmZXJlbmNlIGVpdGhlciBjcmVhdGUgYSBmaWxlIGNhbGxlZCBjcmVkcy5lbnYgd2l0aCB0aGUgc2FtZSBrZXlzIG9yIGRpcmVjdGx5IGNvbmZpZ3VyZSBzYW1lIGtleXMgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzLgozLiBBZnRlciB0aGUgY29uZmlndXJhdGlvbiBhbmQgZW5zdXJpbmcgdGhhdCB0aGUgZGIgaXMgb3BlcmF0aW9uYWwsIHJ1biBlaXRoZXIKCmBgYApnbyBidWlsZApgYGAKIHRvIGdldCB0aGUgZXhlY3V0YWJsZSB0byBydW4KCm9yIHRvIGJ1aWxkIGFuZCBydW4gd2l0aCBhIHNpbmdsZSBjb21tYW5kCgpgYGAKZ28gcnVuIGFwcC5nbwpgYGAKCjwvZGV0YWlscz4KCiMjIyBNb25nb0RCIHNldHVwIChsb2NhbCkKCjxkZXRhaWxzPgogIDxzdW1tYXJ5PkNsaWNrIHRvIGV4cGFuZCE8L3N1bW1hcnk+CllvdSB3aWxsIG5lZWQgYSBtb25nb0RCIGRhdGFiYXNlLCB3aXRoIGF0bGVhc3QgCiAgIAotIDEgdXNlciB3aXRoIGNyZWRlbnRpYWxzLiAKICAtIGRlZmF1bHRzOiAgKEFQSSB3aWxsIHVzZSB0aGVlc2UgdmFsdWVzIGJ5IGRlZmF1bHQpCiAgICAtIHVzZXJuYW1lOiBgcm9vdGAKICAgIC0gcGFzc3dvcmQ6IGBleGFtcGxlYAotIDEgZGF0YWJhc2UuCi0gYXQgbGVhc3QgYSBzaW5nbGUgcm9sZSBpbiB0aGUgcm9sZXMgZG9jdW1lbnQuCgojIyMjIERlZmF1bHQgcmVjb21lbmRlZCByb2xlc1tyZWFkeSB0byBpbXBvcnRdOgpgYGBqc29uClt7CiAgIl9pZCI6IHsKICAgICIkb2lkIjogIjYyNmFkNmUzNTIwNDE4N2YzNTc5ZDQ0ZiIKICB9LAogICJyb2xlIjogImFkbWluIiwKICAibGV2ZWwiOiAxLAogICJwZXJtaXNzb25zIjogewogICAgInJlYWRVc2VycyI6IHRydWUsCiAgICAidXNlcnNBZG1pbiI6IHRydWUsCiAgICAicmVhZFJvbGVzIjogdHJ1ZSwKICAgICJyb2xlc0FkbWluIjogZmFsc2UKICB9Cn0sewogICJfaWQiOiB7CiAgICAiJG9pZCI6ICI2MjZkMDExZTljNjgwNmVmMWY1Y2RkZDUiCiAgfSwKICAicm9sZSI6ICJ1c2VyIiwKICAibGV2ZWwiOiAzLAogICJwZXJtaXNzb25zIjogewogICAgInJlYWRVc2VycyI6IHRydWUsCiAgICAidXNlcnNBZG1pbiI6IGZhbHNlLAogICAgInJlYWRSb2xlcyI6IGZhbHNlLAogICAgInJvbGVzQWRtaW4iOiBmYWxzZQogIH0KfSx7CiAgIl9pZCI6IHsKICAgICIkb2lkIjogIjYyNmQwMTU4OWM2ODA2ZWYxZjVjZGRkNiIKICB9LAogICJyb2xlIjogInJvb3QiLAogICJsZXZlbCI6IDAsCiAgInBlcm1pc3NvbnMiOiB7CiAgICAicmVhZFVzZXJzIjogdHJ1ZSwKICAgICJ1c2Vyc0FkbWluIjogdHJ1ZSwKICAgICJyZWFkUm9sZXMiOiB0cnVlLAogICAgInJvbGVzQWRtaW4iOiB0cnVlCiAgfQp9LHsKICAiX2lkIjogewogICAgIiRvaWQiOiAiNjI2ZDAxY2I5YzY4MDZlZjFmNWNkZGQ3IgogIH0sCiAgInJvbGUiOiAibW9kZXJhdG9yIiwKICAibGV2ZWwiOiAyLAogICJwZXJtaXNzb25zIjogewogICAgInJlYWRVc2VycyI6IHRydWUsCiAgICAidXNlcnNBZG1pbiI6IHRydWUsCiAgICAicmVhZFJvbGVzIjogZmFsc2UsCiAgICAicm9sZXNBZG1pbiI6IGZhbHNlCiAgfQp9XQpgYGAgCgo8L2RldGFpbHM+CgojIyMgQ29uZmlndXJpbmcgbG9jYWwgQVBJCgo8ZGV0YWlscz4KICA8c3VtbWFyeT5DbGljayB0byBleHBhbmQhPC9zdW1tYXJ5PgogICBDb3B5IGBzYW1wbGUuZW52YCBpbnRvIGAuZW52YAogICBhbmQgZmlsbCB0aGUgYC5lbnZgCgogICBGb3IgbG9jYWwgZGV2ZWxvcG1lbnQgaWYgeW91IGFyZSB1c2luZyB0aGUgZGVmYXVsdAogICB5b3Ugc2hvdWxkIGJlIGdvb2QgdG8gZ28gYnkganVzdCBmaWxsaW5nOgogICAtIGBEQl8xX05BTUVgCiAgIC0gYEpXVF9TRUNSRVRgCgogICBgREJfMV9OQU1FYCBiZWluZyB0aGUgZGF0YWJhc2UgbmFtZSwgYW5kIGBKV1RfU0VDUkVUYCBhIHJhbmRvbSBzdHJpbmcuIAogICBUaGlzIGxhc3Qgb25lIHRoZW9yaWRpY2FsbHkgaXMgbm90IG5lY2Vzc2FyeSwgYnV0IGlzIHN0cm9uZ2x5IHJlY29tZW5kZWQuCgo8L2RldGFpbHM+CgojIyMgQ29uZmlndXJlIE9wZW5UZWxlbWV0cnkgKE9wdGlvbmFsKQoKPGRldGFpbHM+CiAgPHN1bW1hcnk+Q2xpY2sgdG8gZXhwYW5kITwvc3VtbWFyeT4KICAgT3BlbiB0ZWxlbWV0cnkgcmVxdWlyZXMgbm8gZXRyYSBjb25maWd1cmF0aW9uLCBidXQgdGhlIGRhdGEgY29sbGVjdG9yIHVzZWQgZG9lcywgaW4gb3VyIGNhc2UgaXQgaXMgW0xpZ2h0U3RlcF0oaHR0cHM6Ly9saWdodHN0ZXAuY29tKQoKICAgSWYgeW91IGRvbnQgbGlrZSB0aGlzLCBkb250IGZlYXIsIHN3YXBpbmcgdGhpcyBpcyBhY3R1YWxseSB2ZXJ5IHNpbXBsZSwgc2luY2UgaSBoYXZlIG5vdCBpbnRlZ3JhdGVkIGl0IDEwMCUsIGFuZCBpcyBvbmx5IGEgZmV3IGxpbmVzIGluIGAuL3NyYy9tYWluLmdvYCB3aGF0IHlvdSB3b3VsZCBoYXZlIHRvIHJlbW92ZS9zd2FwOgogICAKICAgYGBgZ28KICAgLy9PcGVuIFRlbGVtZXRyeSBzZXR1cAoJbHMgOj0gbGF1bmNoZXIuQ29uZmlndXJlT3BlbnRlbGVtZXRyeSgKCQlsYXVuY2hlci5XaXRoU2VydmljZU5hbWUoIkdvLUFQSS1UZW1wbGF0ZSIpLAoJCWxhdW5jaGVyLldpdGhBY2Nlc3NUb2tlbihjZmcuQ29uZmlnLk9wZW5UZWwuTGlnaHRTdGVwS2V5KSwKCSkKCWRlZmVyIGxzLlNodXRkb3duKCkKCS8vIEVORCBPcGVuIFRlbGVtZXRyeSBzZXR1cAogICBgYGAKICAgIyMjIyMjICpUaGlzIG1heSBub3QgY29ycmVzcG9uZCAxMDAlIHRvIHJlYWxpdHkgCjwvZGV0YWlscz4KCjwvZGV0YWlscz4KCgojIyBBYm91dDoKCklmIHRoaXMgcmVwb3NpdG9yeSBpcy93YXMgdXNlZnVsIHRvIHlvdSBpbiBhbnkgd2F5LCBwbGVhc2Ugc3RhciB0aGlzIHJlcG9zaXRvcnkgYW5kIHNoYXJlIGl0IHdpdGggcGVvcGxlIHdobyBtYXkgYmUgaW50ZXJlc3RlZC4gSSdsbCBkbyBteSBiZXN0IHRvIGtlZXAgaXQgdXBkYXRlZC4K readmeEtag: '"63b42c634fff67f9daa6ada81c49ff1d3e8f33bb"' readmeLastModified: Thu, 22 Feb 2024 19:18:56 GMT repositoryId: 483022917 description: >- Template for API using go, with fiber, mongodb and jwt, documented using OAS3 and Redoc created: '2022-04-18T23:01:32Z' updated: '2024-03-05T09:08:34Z' language: Go archived: false stars: 2 watchers: 2 forks: 0 owner: zark0-UwU logo: https://avatars.githubusercontent.com/u/58535242?v=4 license: GPL-3.0 repoEtag: '"fe06a099951135ec323250cc3e2de6ce5e247dd907edb15223a1442b8c1e1e07"' repoLastModified: Tue, 05 Mar 2024 09:08:34 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/which0113/api-frontend v3: true id: 8c7c34b973e448a59fbc3042c39cbc07 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgICA8aW1nIHNyYz1odHRwczovL2ltZy5mcmVlZmlzaC5sb3ZlL2xvZ28ucG5nIHdpZHRoPTE4OC8+CjwvcD4KPGgxIGFsaWduPSJjZW50ZXIiPuWSuOmxvC1BUEkg5o6l5Y+j5byA5pS+5bmz5Y+wPC9oMT4KPHAgYWxpZ249ImNlbnRlciI+PHN0cm9uZz7lkrjpsbwtQVBJIOaOpeWPo+W8gOaUvuW5s+WPsOaYr+S4gOS4quS4uueUqOaIt+WSjOW8gOWPkeiAheaPkOS+m+WFqOmdokFQSeaOpeWPo+iwg+eUqOacjeWKoeeahOW5s+WPsCDwn5ugPC9zdHJvbmc+PC9wPgo8ZGl2IGFsaWduPSJjZW50ZXIiPgo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3doaWNoMDExMy9hcGktYmFja2VuZCI+CiAgICA8aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS93aGljaDAxMTMvYXBpLWJhY2tlbmQvYmFkZ2Uvc3Rhci5zdmc/dGhlbWU9Z3ZwIi8+CjwvYT4KICAgIDxpbWcgYWx0PSJNYXZlbiIgc3JjPSJodHRwczovL3Jhc3Rlci5zaGllbGRzLmlvL2JhZGdlL01hdmVuLTMuOC4xLXJlZC5zdmciLz4KPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5ldHdvcmsvamF2YS9qYXZhc2UvZG93bmxvYWRzL2luZGV4Lmh0bWwiPgogICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9KREstMS44Ky1ncmVlbi5zdmciLz4KPC9hPgogICAgPGltZyBhbHQ9IlNwcmluZ0Jvb3QiIHNyYz0iaHR0cHM6Ly9yYXN0ZXIuc2hpZWxkcy5pby9iYWRnZS9TcHJpbmdCb290LTIuNystZ3JlZW4uc3ZnIi8+CjwvZGl2PgoKIyMg6aG555uu5LuL57uNCgrwn5iAIOS9nOS4uueUqOaIt+aCqOWPr+S7pemAmui/h+azqOWGjOeZu+W9lei0puaIt++8jOiOt+WPluaOpeWPo+iwg+eUqOadg+mZkO+8jOW5tuagueaNruiHquW3seeahOmcgOaxgua1j+iniOWSjOmAieaLqemAguWQiOeahOaOpeWPo+OAguaCqOWPr+S7peWcqOe6v+i/m+ihjOaOpeWPo+iwg+ivle+8jOW/q+mAn+mqjOivgeaOpeWPo+eahOWKn+iDveWSjOaViOaenOOAggoK8J+SuyDkvZzkuLrlvIDlj5HogIXvvIzmiJHku6zmj5DkvpvkuoZb5ZK46bG8LUFQSSBTREtdKGh0dHBzOi8vZ2l0aHViLmNvbS93aGljaDAxMTMvYXBpLXNkaynvvIwK6YCa6L+HW+W8gOWPkeiAheWHreivgV0oaHR0cHM6Ly93d3cuZnJlZWZpc2gubG92ZS9hY2NvdW50L2NlbnRlcinljbPlj6/lsIbovbvmnb7pm4bmiJDmjqXlj6PliLDmgqjnmoTpobnnm67kuK3vvIzlrp7njrDmm7Tpq5jmlYjnmoTlvIDlj5HlkozosIPnlKjjgIIKCvCfpJ0g5oKo5Y+v5Lul5bCG6Ieq5bex55qE5o6l5Y+j5o6l5YWl5YiwICoqX+WSuOmxvC1BUElfKiog5o6l5Y+j5byA5pS+5bmz5Y+w5bmz5Y+w5LiK77yM5bm25Y+R5biD57uZ5YW25LuW55So5oi35L2/55So44CCCuaCqOWPr+S7peeuoeeQhuWSjOWQhOS4quaOpeWPo++8jOS7peS+v+abtOWlveWcsOWIhuaekOWSjOS8mOWMluaOpeWPo+aAp+iDveOAggoK8J+UjiDmgqjlj6rpnIDopoHlr7zlhaXmnIDljp/lp4vnmoTmlbDmja7pm4bvvIzovpPlhaXpnIDopoHliIbmnpDnmoTnm67moIfvvIzlsLHog73liKnnlKhbQUnmmbrog73nlJ/miJBdKGh0dHBzOi8vd3d3LmZyZWVmaXNoLmxvdmUvYW5hbHlzZSkK5LiA5Liq5Y+v5LiL6L2955qE5pWw5o2u5YiG5p6Q5Zu+6KGo5ZKM5YiG5p6Q57uT6K6644CCCgrwn4+BIOaXoOiuuuaCqOaYr+eUqOaIt+i/mOaYr+W8gOWPkeiAhe+8jCoqX+WSuOmxvC1BUElfKioK5ZK46bG8LUFQSSDmjqXlj6PlvIDmlL7lubPlj7Dpg73oh7Tlipvkuo7mj5DkvpvnqLPlrprjgIHlronlhajjgIHpq5jmlYjnmoTmjqXlj6PosIPnlKjlkozmlbDmja7liIbmnpDmnI3liqHvvIzluK7liqnmgqjlrp7njrDmm7Tpq5jmlYjjgIHkvr/mjbfljJbnmoTlvIDlj5HlkozosIPnlKjkvZPpqozjgIIKCiMjIOe9keermeWvvOiIqgoKLSBb6aG555uu5Zyo57q/5ryU56S65Zyw5Z2AIPCflJddKGh0dHBzOi8vd3d3LmZyZWVmaXNoLmxvdmUpCi0g5ryU56S66LSm5Y+377yaZGVtbwotIOWvhuegge+8mjEyMzQ1Njc4Ci0gW+mhueebruWJjeerr+WcsOWdgCDwn5SXXShodHRwczovL2dpdGh1Yi5jb20vd2hpY2gwMTEzL2FwaS1mcm9udGVuZCkKLSBb6aG555uu5ZCO56uv5Zyw5Z2AIPCflJddKGh0dHBzOi8vZ2l0aHViLmNvbS93aGljaDAxMTMvZnJlZWZpc2gtYXBpKQoKIyMg5L2/55So5oyH5a+8CgojIyMg5YWL6ZqG6aG555uu5Yiw5pys5ZywCgpgYGBiYXNoCmdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTp3aGljaDAxMTMvYXBpLWZyb250ZW5kLmdpdApgYGAKCiMjIyDov5DooYzliY3nq68KCuehruS/nSBub2RlID49IDE477yM5p+l55yLIG5vZGUg54mI5pysCgpgYGBiYXNoCm5vZGUgLXYKYGBgCgojIyMjIOWuieijheS+nei1lgoKYGBgYmFzaApucG0gaW5zdGFsbApgYGAKCiMjIyMg5ZCv5YqoCgpgYGBiYXNoCm5wbSBydW4gZGV2CmBgYAoKIyMjIyDlhbbku5YKCi0gW3JlcXVlc3RDb25maWcudHNdKHNyYyUyRnJlcXVlc3RDb25maWcudHMpIOaWh+S7tuWPr+S/ruaUueWvueaOpeWQjuerr+acjeWKoeWZqOaOpeWPo+eahOWcsOWdgO+8jOm7mOiupO+8mmh0dHA6Ly9sb2NhbGhvc3Q6OTAwMQotIFtpbmRleC50c3hdKHNyYyUyRnBhZ2VzJTJGTXlDaGFydCUyRmluZGV4LnRzeCkg5Y+v5L+u5pS5IFdlYlNvY2tldCDoh6rlrprkuYnov57mjqXlnLDlnYDvvIzpu5jorqTvvJp3czovL2xvY2FsaG9zdDo5MDAxL2FwaS93cy8KCiMjIyMg6YOo572y5YmN56uvCgrmlrnms5XkuIDvvJrnlJ/miJAgZGlzdCDmlofku7bpg6jnvbIKCmBgYGJhc2gKbnBtIHJ1biBidWlsZApgYGAKCuaWueazleS6jO+8muS9v+eUqCBkb2NrZXIg5a655Zmo6YOo572yCgrmnoTlu7rvvJoKCmBgYGJhc2gKZG9ja2VyIGJ1aWxkIC10IGZyZWVmaXNoLWFwaS1mcm9udGVuZDp2MC4wLjEgLgpgYGAKCui/kOihjO+8mgoKYGBgYmFzaApkb2NrZXIgcnVuIC1wIDgwOjgwIC1kIGZyZWVmaXNoLWFwaS1mcm9udGVuZDp2MC4wLjEKYGBgCgojIyDpobnnm67lsZXnpLoKCiMjIyDpppbpobUKCiFbaG9tZS5wbmddKGRvYyUyRmhvbWUucG5nKQoKIyMjIOaOpeWPo+W5v+WcugoKIyMjIyDmjqXlj6PlsZXnpLoKCiFbYXBpLWRpc3BsYXkucG5nXShkb2MlMkZhcGktZGlzcGxheS5wbmcpCgojIyMjIOaOpeWPo+ivpuaDhQoKIVthcGktZGV0YWlscy5wbmddKGRvYyUyRmFwaS1kZXRhaWxzLnBuZykKCiMjIyMjIEFQSeaWh+ahowoKIVthcGktZG9jLnBuZ10oZG9jJTJGYXBpLWRvYy5wbmcpCgojIyMjIyDplJnor6/noIEKCiFbZXJyb3ItY29kZXMucG5nXShkb2MlMkZlcnJvci1jb2Rlcy5wbmcpCgojIyMjIyDnpLrkvovku6PnoIEKCiFbc2FtcGxlLWNvZGUucG5nXShkb2MlMkZzYW1wbGUtY29kZS5wbmcpCgojIyMjIyDlnKjnur/osIPor5UKCiFbb25saW5lLWNvbW1pc3Npb25pbmcucG5nXShkb2MlMkZvbmxpbmUtY29tbWlzc2lvbmluZy5wbmcpCgojIyMg5pm66IO95YiG5p6QCgohW2ludGVsbGlnZW50LWFuYWx5dGljcy5wbmddKGRvYyUyRmludGVsbGlnZW50LWFuYWx5dGljcy5wbmcpCgojIyMg5oiR55qE5Zu+6KGoCgojIyMjIOWbvuihqOWxleekugoKIVtjaGFydC1kaXNwbGF5LnBuZ10oZG9jJTJGY2hhcnQtZGlzcGxheS5wbmcpCgojIyMjIOWbvuihqOS4i+i9vQoKIVtjaGFydC1kb3dubG9hZC5wbmddKGRvYyUyRmNoYXJ0LWRvd25sb2FkLnBuZykKCiMjIyDnlKjmiLflip/og70KCiMjIyMg55m75b2VCgohW2xvZ2luLnBuZ10oZG9jJTJGbG9naW4ucG5nKQoKIyMjIyDms6jlhowKCiFbcmVnaXN0ZXIucG5nXShkb2MlMkZyZWdpc3Rlci5wbmcpCgojIyMjIOS4quS6uuS4reW/gwoKIVtwZXJzb25hbC1jZW50ZXIucG5nXShkb2MlMkZwZXJzb25hbC1jZW50ZXIucG5nKQoKIyMjIOeuoeeQhuWRmOWKn+iDvQoKIyMjIyDmjqXlj6PnrqHnkIYKCiFbaW50ZXJmYWNlLW1hbmFnZW1lbnQucG5nXShkb2MlMkZpbnRlcmZhY2UtbWFuYWdlbWVudC5wbmcpCgojIyMjIOWbvuihqOeuoeeQhgoKIVtjaGFydC1tYW5hZ2VtZW50LnBuZ10oZG9jJTJGY2hhcnQtbWFuYWdlbWVudC5wbmcpCgojIyMjIOeUqOaIt+euoeeQhgoKIVt1c2VyLW1hbmFnZW1lbnQucG5nXShkb2MlMkZ1c2VyLW1hbmFnZW1lbnQucG5nKQoKIyMg5oqA5pyv5qCICgotIFJlYWN0IDE4Ci0gQW50IERlc2lnbiBQcm8gNS54IOiEmuaJi+aetgotIEFudCBEZXNpZ24gJiBQcm9jb21wb25lbnRzIOe7hOS7tuW6kwotIFVtaSA0IOWJjeerr+ahhuaetgotIE9wZW5BUEkg5YmN56uv5Luj56CB55Sf5oiQCg== readmeEtag: '"22f230b4d6449e49f8db75980d5acbe939929921"' readmeLastModified: Mon, 24 Jun 2024 09:45:26 GMT repositoryId: 736579965 description: >- 本项目基于 React + Spring Boot + Dubbo + AIGC,致力于为用户和开发者提供全面 API 接口调用和 AI 数据分析服务。 created: '2023-12-28T09:39:19Z' updated: '2024-06-24T09:45:42Z' language: TypeScript archived: false stars: 2 watchers: 1 forks: 0 owner: which0113 logo: https://avatars.githubusercontent.com/u/119718783?v=4 repoEtag: '"45090baf8b7e28e956e161572d84465344083375f9f901e48334f1d18f0fa6b5"' repoLastModified: Mon, 24 Jun 2024 09:45:42 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/grigorye/blinkopenapi v3: true repositoryMetadata: repositoryId: 298639758 description: (Unofficial) OpenAPI spec for Blink camera system. created: '2020-09-25T17:36:03Z' updated: '2024-06-25T10:53:12Z' language: null archived: false stars: 2 watchers: 3 forks: 0 owner: grigorye logo: https://avatars.githubusercontent.com/u/803905?v=4 repoEtag: '"2ccc7eaf5af0e61e27581a2ab68943c5e3b96beca2cb4149502d5f56b4a2facb"' repoLastModified: Tue, 25 Jun 2024 10:53:12 GMT foundInMaster: true id: 6958a21bcb8549eebe31832543ec41b6 - source: openapi3 tags repository: https://github.com/lakhindarpal/my-fun-api v3: true id: 681988ca06393a79d91ccf83815d3611 repositoryMetadata: base64Readme: >- IyBGdW5BUEkKCkZ1bkFQSSBpcyBhIFJFU1RmdWwgQVBJIGJ1aWx0IHdpdGggRmFzdEFQSSB0aGF0IHByb3ZpZGVzIHJhbmRvbSBjb21wbGltZW50cywgZm9ydHVuZXMsIGZ1biBmYWN0cywgcGl6emEgaWRlYXMsIGxpZmUgdHJ1dGhzLCBhbmQgdGhvdWdodHMuCgojIyBGZWF0dXJlcwoKLSAqKkNvbXBsaW1lbnRzOioqIEJyaWdodGVuIHVwIHlvdXIgZGF5IHdpdGggcmFuZG9tIGNvbXBsaW1lbnRzLgotICoqRm9ydHVuZXM6KiogUG9uZGVyIHVwb24gcmFuZG9tIGZvcnR1bmVzIGZvciBpbnNpZ2h0IGFuZCBpbnNwaXJhdGlvbi4KLSAqKkZ1biBGYWN0czoqKiBEaXNjb3ZlciByYW5kb20gdXNlbGVzcyB5ZXQgZW50ZXJ0YWluaW5nIGZhY3RzLgotICoqUGl6emEgSWRlYXM6KiogRXhwbG9yZSB1bmlxdWUgcGl6emEgY29tYmluYXRpb25zIGZvciB5b3VyIG5leHQgY3VsaW5hcnkgYWR2ZW50dXJlLgotICoqTGlmZSBUcnV0aHM6KiogUmVmbGVjdCBvbiBkZWVwIGluc2lnaHRzIGludG8gbGlmZSdzIG15c3RlcmllcyBhbmQgdHJ1dGhzLgotICoqVGhvdWdodHM6KiogUmVjZWl2ZSByYW5kb20gdGhvdWdodHMgdG8gaW5zcGlyZSwgZW50ZXJ0YWluLCBvciBwcm92b2tlIGNvbnRlbXBsYXRpb24uCgojIyBVc2FnZQoKIyMjIEJhc2UgVVJMCgpUaGUgYmFzZSBVUkwgZm9yIGFjY2Vzc2luZyB0aGUgQVBJIGlzOiBgaHR0cHM6Ly9teS1mdW4tYXBpLm9ucmVuZGVyLmNvbWAKCiMjIyBFbmRwb2ludHMKCiMjIyMgR2V0IFJhbmRvbSBDb21wbGltZW50CgpgYGBodHRwCkdFVCAvY29tcGxpbWVudApgYGAKClJldHVybnMgYSByYW5kb20gY29tcGxpbWVudC4KCiMjIyMgR2V0IFJhbmRvbSBGb3J0dW5lCgpgYGBodHRwCkdFVCAvZm9ydHVuZQpgYGAKClJldHVybnMgYSByYW5kb20gZm9ydHVuZS4KCiMjIyMgR2V0IFJhbmRvbSBGdW4gRmFjdAoKYGBgaHR0cApHRVQgL2Z1bmZhY3QKYGBgCgpSZXR1cm5zIGEgcmFuZG9tIGZ1biBmYWN0LgoKIyMjIyBHZXQgUmFuZG9tIFBpenphIElkZWEKCmBgYGh0dHAKR0VUIC9waXp6YWlkZWEKYGBgCgpSZXR1cm5zIGEgcmFuZG9tIHBpenphIGlkZWEuCgojIyMjIEdldCBSYW5kb20gTGlmZSBUcnV0aAoKYGBgaHR0cApHRVQgL2xpZmV0cnV0aApgYGAKClJldHVybnMgYSByYW5kb20gbGlmZSB0cnV0aC4KCiMjIyMgR2V0IFJhbmRvbSBUaG91Z2h0CgpgYGBodHRwCkdFVCAvdGhvdWdodApgYGAKClJldHVybnMgYSByYW5kb20gdGhvdWdodC4KCiMjIEV4YW1wbGUKClRvIGdldCBhIHJhbmRvbSBjb21wbGltZW50LCB5b3UgY2FuIHNlbmQgYSBHRVQgcmVxdWVzdCB0bzoKCmBgYGh0dHAKaHR0cHM6Ly9teS1mdW4tYXBpLm9ucmVuZGVyLmNvbS9jb21wbGltZW50CmBgYAoKRXhhbXBsZSBSZXNwb25zZToKCmBgYGpzb24KewogICJzdWNjZXNzIjogVHJ1ZSwKICAiZGF0YSI6IHsKICAgICJjb21wbGltZW50IjogIllvdSBoYXZlIGEgZ3JlYXQgc2Vuc2Ugb2YgaHVtb3IhIgogIH0KfQpgYGAKCiMjIERvY3VtZW50YXRpb24KCkZvciBkZXRhaWxlZCBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQgRnVuQVBJIERvY3VtZW50YXRpb24KCltTY2FsYXJdKGh0dHBzOi8vbXktZnVuLWFwaS5vbnJlbmRlci5jb20vKQpbU3dhZ2dlciBVSV0oaHR0cHM6Ly9teS1mdW4tYXBpLm9ucmVuZGVyLmNvbS9kb2NzKQpbUmVkb2NdKGh0dHBzOi8vbXktZnVuLWFwaS5vbnJlbmRlci5jb20vcmVkb2MpCgojIyBJbnN0YWxsYXRpb24KClshW0RlcGxveSB0byBSZW5kZXJdKGh0dHBzOi8vcmVuZGVyLmNvbS9pbWFnZXMvZGVwbG95LXRvLXJlbmRlci1idXR0b24uc3ZnKV0oaHR0cHM6Ly9yZW5kZXIuY29tL2RlcGxveT9yZXBvPWdpdGh1Yi5jb20vTGFraGluZGFyUGFsL215LWZ1bi1hcGkpCgojIyMgTG9jYWxseQoKMS4gQ2xvbmUgdGhlIHJlcG9zaXRvcnk6CgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vTGFraGluZGFyUGFsL215LWZ1bi1hcGkuZ2l0CmBgYAoKMi4gSW5zdGFsbCBkZXBlbmRlbmNpZXM6CgpgYGBiYXNoCmNkIGZ1bmFwaQpwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0CmBgYAoKMy4gUnVuIHRoZSBGYXN0QVBJIHNlcnZlcjoKCmBgYGJhc2gKdXZpY29ybiBtYWluOmFwcCAtLXJlbG9hZApgYGAKCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSEgRmVlbCBmcmVlIHRvIG9wZW4gYW4gaXNzdWUgb3Igc3VibWl0IGEgcHVsbCByZXF1ZXN0LgoKIyMgTGljZW5zZQoKVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBbTElDRU5TRV0oTElDRU5TRSkgZmlsZSBmb3IgZGV0YWlscy4K readmeEtag: '"c85ddd88231bd2aaedc8cfeb37c7c5b3522bf40e"' readmeLastModified: Sat, 15 Jun 2024 04:16:11 GMT repositoryId: 796120972 description: >- FunAPI provides random compliments, fortunes, pizza ideas, life truths, and thoughts created: '2024-05-05T01:51:36Z' updated: '2024-06-15T04:16:28Z' language: Python archived: false stars: 2 watchers: 2 forks: 1 owner: LakhindarPal logo: https://avatars.githubusercontent.com/u/72681474?v=4 license: MIT repoEtag: '"1a77302e59c0bee07026305ee8ac325bb9356bf3508f41a681b76a4ee73e77e6"' repoLastModified: Sat, 15 Jun 2024 04:16:28 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/armsnyder/openapi-language-server v3: true id: 423ee8b0307b4ead6d192490008c9fbf repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIExhbmd1YWdlIFNlcnZlcgoKQW4gT3BlbkFQSSBsYW5ndWFnZSBzZXJ2ZXIgZm9yIFtMU1AgY29tcGF0aWJsZSBjb2RlCmVkaXRvcnMuXShodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL2ltcGxlbWVudG9ycy90b29scy8pCgo+IDp3YXJuaW5nOiBUaGlzIGlzIGJldGEgc29mdHdhcmUuIE1hbnkgZmVhdHVyZXMgYXJlIHN0aWxsIG1pc3NpbmcuIFNlZQo+IFtGZWF0dXJlc10oaHR0cHM6Ly9naXRodWIuY29tL2FybXNueWRlci9vcGVuYXBpLWxhbmd1YWdlLXNlcnZlcj90YWI9cmVhZG1lLW92LWZpbGUjZmVhdHVyZXMpCj4gYmVsb3cuCgpbIVthc2NpaWNhc3RdKGh0dHBzOi8vYXNjaWluZW1hLm9yZy9hL3Y3ZXRaYjgwSGJZa0tCUVVhM2RWU2VuUHouc3ZnKV0oaHR0cHM6Ly9hc2NpaW5lbWEub3JnL2EvdjdldFpiODBIYllrS0JRVWEzZFZTZW5QeikKCiMjIEZlYXR1cmVzCgpJIGNyZWF0ZWQgdGhpcyBsYW5ndWFnZSBzZXJ2ZXIgYmVjYXVzZSBJIG1hbnVhbGx5IGVkaXQgT3BlbkFQSS9Td2FnZ2VyIGZpbGVzLAphbmQgSSBuZWVkZWQgYSBxdWljayB3YXkgdG8ganVtcCBiZXR3ZWVuIHNjaGVtYSBkZWZpbml0aW9ucyBhbmQgcmVmZXJlbmNlcy4KCkkgdXNlClt5YW1sLWxhbmd1YWdlLXNlcnZlcl0oaHR0cHM6Ly9naXRodWIuY29tL3JlZGhhdC1kZXZlbG9wZXIveWFtbC1sYW5ndWFnZS1zZXJ2ZXIpCmZvciB2YWxpZGF0aW9uIGFuZCBjb21wbGV0aW9uLCBzbyB0aGVzZSBmZWF0dXJlcyBhcmUgbm90IGEgcHJpb3JpdHkgZm9yIG1lCnJpZ2h0IG5vdy4KCiMjIyBMYW5ndWFnZSBGZWF0dXJlcwoKLSBbeF0gSnVtcCB0byBkZWZpbml0aW9uCi0gW3hdIEZpbmQgcmVmZXJlbmNlcwotIFsgXSBDb2RlIGNvbXBsZXRpb24KLSBbIF0gRGlhZ25vc3RpY3MKLSBbIF0gSG92ZXIKLSBbIF0gUmVuYW1lCi0gWyBdIERvY3VtZW50IHN5bWJvbHMKLSBbIF0gQ29kZSBhY3Rpb25zCgojIyMgT3RoZXIgRmVhdHVyZXMKCi0gW3hdIFlBTUwgZmlsZXR5cGUgc3VwcG9ydAotIFsgXSBKU09OIGZpbGV0eXBlIHN1cHBvcnQKLSBbIF0gVlNDb2RlIGV4dGVuc2lvbgoKIyMgSW5zdGFsbGF0aW9uCgojIyMgRnJvbSBHaXRIdWIgUmVsZWFzZXMgKFJlY29tbWVuZGVkKQoKRG93bmxvYWQgdGhlIGxhdGVzdCByZWxlYXNlIGZyb20gW0dpdEh1YiByZWxlYXNlc10oaHR0cHM6Ly9naXRodWIuY29tL2FybXNueWRlci9vcGVuYXBpLWxhbmd1YWdlLXNlcnZlci9yZWxlYXNlcykuCgojIyMgVXNpbmcgR28KCmBgYGJhc2gKZ28gaW5zdGFsbCBnaXRodWIuY29tL2FybXNueWRlci9vcGVuYXBpLWxhbmd1YWdlLXNlcnZlckBsYXRlc3QKYGBgCgojIyBVc2FnZQoKIyMjIE5lb3ZpbSBDb25maWd1cmF0aW9uIEV4YW1wbGUKCkFzc3VtaW5nIHlvdSBhcmUgdXNpbmcgTmVvdmltIGFuZCBoYXZlIHRoZSBpbnN0YWxsZWQgb3BlbmFwaS1sYW5ndWFnZS1zZXJ2ZXIKYmluYXJ5IGluIHlvdXIgUEFUSCwgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBMdWEgY29kZSBpbiB5b3VyIE5lb3ZpbQpjb25maWd1cmF0aW9uOgoKYGBgbHVhCiAgICB2aW0uYXBpLm52aW1fY3JlYXRlX2F1dG9jbWQoJ0ZpbGVUeXBlJywgewogICAgICBwYXR0ZXJuID0gJ3lhbWwnLAogICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uKCkKICAgICAgICB2aW0ubHNwLnN0YXJ0IHsKICAgICAgICAgIGNtZCA9IHsgJ29wZW5hcGktbGFuZ3VhZ2Utc2VydmVyJyB9LAogICAgICAgICAgZmlsZXR5cGVzID0geyAneWFtbCcgfSwKICAgICAgICAgIHJvb3RfZGlyID0gdmltLmZuLmdldGN3ZCgpLAogICAgICAgIH0KICAgICAgZW5kLAogICAgfSkKYGBgCgpUaGlzIGlzIGp1c3QgYSBiYXNpYyB3b3JraW5nIGV4YW1wbGUuIFlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZnVydGhlcgpjdXN0b21pemUgdGhlIGNvbmZpZ3VyYXRpb24gdG8geW91ciBuZWVkcy4K readmeEtag: '"4c23fd434c0c1cae60ca0382f0b6ef35752c8f59"' readmeLastModified: Mon, 24 Jun 2024 05:06:03 GMT repositoryId: 818968969 description: OpenAPI language server for LSP compatible code editors created: '2024-06-23T11:56:13Z' updated: '2024-07-13T01:32:14Z' language: Go archived: false stars: 2 watchers: 2 forks: 0 owner: armsnyder logo: https://avatars.githubusercontent.com/u/9969202?v=4 license: MIT repoEtag: '"7ce53bb19ddcc6731a16d97c971597d650c809540762476ad6ec78fe36720bc8"' repoLastModified: Sat, 13 Jul 2024 01:32:14 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/hiroyoshii/go-aas-proxy v3: true id: dc073f77dba2b9ffe063aa18b4df40a5 repositoryMetadata: base64Readme: >- ICA8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxoMT5nby1hYXMtcHJveHk8L2gxPgogIDxwPgogIEFzc2V0IEFkbWluaXN0cmF0aW9uIFNoZWxsKEFBUykgcHJveHkgZm9yIFJEQk1TIGJhY2tlbmQKICA8L3A+CgogIFshW0J1aWxkXShodHRwczovL2dpdGh1Yi5jb20vaGlyb3lvc2hpaS9nby1hYXMtcHJveHkvYWN0aW9ucy93b3JrZmxvd3MvZ29fYXBwbGljYXRpb24ueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9oaXJveW9zaGlpL2dvLWFhcy1wcm94eS9hY3Rpb25zL3dvcmtmbG93cy9nb19hcHBsaWNhdGlvbi55bWwpCiAgWyFbQ29kZVFMXShodHRwczovL2dpdGh1Yi5jb20vaGlyb3lvc2hpaS9nby1hYXMtcHJveHkvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vaGlyb3lvc2hpaS9nby1hYXMtcHJveHkvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLnltbCkKICBbIVtPcGVuU1NGIFNjb3JlY2FyZF0oaHR0cHM6Ly9hcGkuc2VjdXJpdHlzY29yZWNhcmRzLmRldi9wcm9qZWN0cy9naXRodWIuY29tL2hpcm95b3NoaWkvZ28tYWFzLXByb3h5L2JhZGdlKV0oaHR0cHM6Ly9zZWN1cml0eXNjb3JlY2FyZHMuZGV2L3ZpZXdlci8/dXJpPWdpdGh1Yi5jb20vaGlyb3lvc2hpaS9nby1hYXMtcHJveHkpCiAgWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2hpcm95b3NoaWkvZ28tYWFzLXByb3h5KV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2hpcm95b3NoaWkvZ28tYWFzLXByb3h5KQogIFshW09wZW5TU0YgQmVzdCBQcmFjdGljZXNdKGh0dHBzOi8vd3d3LmJlc3RwcmFjdGljZXMuZGV2L3Byb2plY3RzLzc3OTUvYmFkZ2UpXShodHRwczovL3d3dy5iZXN0cHJhY3RpY2VzLmRldi9wcm9qZWN0cy83Nzk1KQogICFbR2l0SHViIGdvLm1vZCBHbyB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9nby1tb2QvZ28tdmVyc2lvbi9oaXJveW9zaGlpL2dvLWFhcy1wcm94eSkKICBbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2hpcm95b3NoaWkvZ28tYWFzLXByb3h5KV0oTElDRU5TRSkKCiAgPC9kaXY+CgoKICAjIyBBYm91dAoKICBUaGUgZ28tYWFzLXByb3h5IGlzIGFzc2V0IGFkbWluaXN0cmF0aW9uIHNoZWxsKGFhcykgc2VydmVyIHdoaWNoIGlzIGltcGxlbWVudGVkIGJ5IGdvIGFuZCBwcm94eSB0byBSREJNUyBiYWNrZW5kLiAqKm5vdCByZWFkeSBmb3IgcHJvZHVjdGlvbioqLgoKICBUaGlzIGltcGxlbWVudGF0aW9uIGlzIGluc3BpcmVkIGZyb20gImFhcy1wcm94eSIgaW4gW1JlcHJlc2VudGluZyB0aGUgVmlydHVhbDogVXNpbmcgQUFTIHRvIEV4cG9zZSBEaWdpdGFsQXNzZXRzXShodHRwczovL2NldXItd3Mub3JnL1ZvbC0zMjkxL3BhcGVyNS5wZGYpIHBhcGVyLgogICFbYWFzLXByb3h5XSguL2Fzc2V0cy9hYXMtcHJveHkucG5nKQoKICAiYWFzLXByb3h5IiBtZWFucyB0aGF0IHN1Ym1vZGVscyBhcmUgY29uZmlndXJlZCBieSByZWZlcmVuY2luZyB0aGUgUkRCIG9mIG90aGVyIGFwcGxpY2F0aW9ucy4KICBUaGVyZWZvcmUsIG9ubHkgdGhlIEFBUyBhbmQgdGhlIEFBUy1TdWJtb2RlbCByZWxhdGlvbnNoaXAgY2FuIGJlIGNyZWF0ZWQsIHVwZGF0ZWQsIG9yIGRlbGV0ZWQsIHdoaWxlIHN1Ym1vZGVscyBhcmUgcmVhZC1vbmx5LgoKICAjIyBGZWF0dXJlcwogIC0gT3BlbiBBUEkgRW5kcG9pbnRzIGNvbXBhdGlibGUgd2l0aCBbQmFzeXggQVBJXShodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzL0JhU3l4L2Jhc3l4X2Fzc2V0X2FkbWluaXN0cmF0aW9uX3NoZWxsX2h0dHBfcmVzdF9hcGkvdjEpLiBCdXQgb25seSBzdXBwb3J0cyBmb2xsb3dpbmcgZW5kcG9pbnRzOgogICAgLSA6d2hpdGVfY2hlY2tfbWFyazogL3NoZWxsczogR0VUCiAgICAtIDp3aGl0ZV9jaGVja19tYXJrOiAvc2hlbGxzL3thYXNJZH06IEdFVC9QVVQvREVMRVRFCiAgICAtIDp3aGl0ZV9jaGVja19tYXJrOiAvc2hlbGxzL3thYXNJZH0vYWFzL3N1Ym1vZGVsczogR0VUCiAgICAtIDp3aGl0ZV9jaGVja19tYXJrOiAvc2hlbGxzL3thYXNJZH0vYWFzL3N1Ym1vZGVscy97c3VibW9kZWxJZFNob3J0fTogR0VUCiAgICAtIDp3aGl0ZV9jaGVja19tYXJrOiAvc2hlbGxzL3thYXNJZH0vYWFzL3N1Ym1vZGVscy97c3VibW9kZWxJZFNob3J0fS9zdWJtb2RlbC9zdWJtb2RlbEVsZW1lbnRzOiBHRVQKICAgIC0gOndoaXRlX2NoZWNrX21hcms6IC9zaGVsbHMve2Fhc0lkfS9hYXMvc3VibW9kZWxzL3tzdWJtb2RlbElkU2hvcnR9L3N1Ym1vZGVsL3ZhbHVlczogR0VUCiAgICAtIDp3YXJuaW5nOgkgL3NoZWxscy97YWFzSWR9L2Fhcy9zdWJtb2RlbHMve3N1Ym1vZGVsSWRTaG9ydH06IFBVVChvbmx5IHJlbGF0aW9uIHRvIGFhcykKICAtIFN1cHBvcnQgbXVsdGlwbGUgUkRCTVMgbG9jYXRpb25zIGFuZCB0eXBlcyAoUG9zdGdyZXMsIE15U1FMLCBPcmFjbGUpCgogIFVuc3Vwb3J0ZWQ6CiAgLSA6eDogY3JlYXRlL3VwZGF0ZS9kZWxldGUgc3VibW9kZWxzIGFuZCBzdWJtb2RlbCBlbGVtZW50cwogIC0gOng6IEVuZHBvaW50cyBjb250YWluaW5nIFx7c2VJZFNob3J0UGF0aFx9CiAgLSA6eDogSW52b2NhdGlvbiBFbmRwb2ludHMKCiAgIyMgSW1wbGVtZW50YXRpb24gT3ZlcnZpZXcKICAhW2FyY2hpdGVjdHVyZV0oLi9hc3NldHMvYXJjaGl0ZWN0dXJlLmRyYXdpby5wbmcpCiAgLSBjb25maWd1cmFibGl0eSBmb3Igc3VibW9kZWwKICAgIC0gcmVmZXJlbmNlIGRhdGFiYXNlcyBwZXIgc2VtYW50aWNJRCBvZiBzdWJtb2RlbAogICAgLSBxdWVyeSBmb3IgZGF0YWJhc2VzCiAgICAtIHJlc3BvbnNlIGpzb24gY29udGVudCBmb3Igc3VibW9kZWxzCgogICMjIEhvdyB0byBydW4KICAxLiBzY3JlYXRlIGZvbGxvd2luZyBzdWJtb2RlbCBjb25maWd1cmF0aW9uIGZpbGUuCiAgICAtIHRoZXJlIGFyZSBtdWx0aXBsZSByZWZlcmVuY2UgZGF0YWJhc2UgYW5kIHF1ZXJ5IHRlbXBsYXRlcy4KICAgIC0gU1FMIHF1ZXJ5IHRlbXBsYXRlIGhhcyByZXF1ZXN0ZWQgcGF0aCBwYXJhbWV0ZXIgdmFyaWFibGVzOiAuQWFzSUQsIC5TdWJtb2RlbElEU2hvcnQuCiAgICAtIHJlc3BvbnNlIHRlbXBsYXRlIGhhcyBxdWVyeSByZXN1bHRzIHZhcmlhYmxlczogYC48dGVtcGxhdGUgZmlsZSBuYW1lPi5SZXN1bHRzLjxjb2x1bW4gbmFtZT5gIGFuZCBgLjx0ZW1wbGF0ZSBmaWxlIG5hbWU+LkNvbHVtbnMuPGNvbHVtbiBuYW1lPmAuCiAgICAgIC0gZm9yIGV4YW1wbGUsIHRlbXBsYXRlIGZpbGUgcGF0aCBpcyBzYW1wbGUvcXVlcnkuc3FsIGFuZCBjb2x1bW4gbmFtZSBpcyBzYW1wbGUsIHZhcmlhYmxlcyBhcmUgYC5RdWVyeS5SZXN1bHRzLlNhbXBsZWAgYW5kIGAuUXVlcnkuQ29sdW1ucy5TYW1wbGVgCiAgYGBgeWFtbAogIHN1Ym1vZGVsczoKICAgIC0gc2VtYW50aWNJRDogIjxzdWJtb2RlbCBzZW1hbnRpYyBJRD4iCiAgICAgIHF1ZXJ5VGVtcGxhdGVzOgogICAgICAgIC0gcGF0aDogIjxTUUwgcXVlcnkgZmlsZSBwYXRoIChnbyB0ZW1wbGF0ZSk+IgogICAgICAgICAgZGJOYW1lOiAiPGRhdGFiYXNlIG5hbWUgZm9yIHF1ZXJ5IGV4ZWN1dGlvbj4iCiAgICAgIHJlc3BvbnNlVGVtcGxhdGVQYXRoOiAiPHN1Ym1vZGVsIGpzb24gdGVtcGxhdGUgZmlsZSBwYXRoPiIKICBkYXRhYmFzZXM6CiAgICAtIG5hbWU6ICI8ZGF0YWJhc2UgbmFtZSByZWZlcmVuY2VkIGJ5IHN1Ym1vZGVscy5xdWVyeVRlbXBsYXRlcy5kYk5hbWU+IgogICAgICBkYlR5cGU6IDx0eXBlIG9mIFJEQk1TOiBwb3N0Z3JlcywgbXlzcWwgb3Igb3JhY2xlPgogICAgICBkYkNvbmZpZzoKICAgICAgICBob3N0OiA8ZGF0YWJhc2UgaG9zdD4KICAgICAgICBwb3J0OiA8ZGF0YWJhc2UgcG9ydCBudW1iZXI+CiAgICAgICAgdXNlcjogIjxkYXRhYmFzZSB1c2VyPiIKICAgICAgICBwYXNzd29yZDogIjxkYXRhYmFzZSBwYXNzd29yZD4iCiAgICAgICAgZGF0YWJhc2U6ICI8ZGF0YWJhc2UgbmFtZT4iCiAgICAgICAgc3NsbW9kZTogIjxzc2xtb2RlIGlmIGRiVHlwZSBpcyBwb3N0Z3Jlcz4iCiAgICAgICAgb3B0aW9uczogIjxkYXRhYmFzZSBjb25uZWN0aW9uIG9wdGlvbnM+IgogIGBgYAogIDIuIHNldCB1cCBwb3N0Z3Jlc3FsIGRhdGFiYXNlIGZvciBhYXMgYW5kIGFzc2V0CiAgMy4gZG9ja2VyIHJ1bgogIGBgYAogIGRvY2tlciBydW4gXAogIC1lIFNVQk1PREVMX0NPTkZJR19QQVRIPTxjb25maWd1cmF0aW9uIGZpbGUgcGF0aCBpbiBwcm9jZWR1cmUgMS4+IFwKICAtZSBBQVNfVEFCTEVTX0NSRUFURUQ9dHJ1ZSBcCiAgLWUgQUFTX0RCX0hPU1Q9PGRhdGFiYXNlIGhvc3QgbmFtZSBpbiBwcm9jZWR1cmUgMi4+IFwKICBoaXJveW9zaGlpL2dvLWFhcy1wcm94eTpsYXRlc3QKICBgYGAKCiAgIyMjIEV4YW1wbGUKICAqIHJ1biB3aXRoIHNhbXBsZSBkYXRhIChydW4gZG9ja2VyLWNvbXBvc2UgYW5kIGNyZWF0ZSBzYW1wbGUgZGV0YSkKICBgYGAKICAuL2UyZS9zY2VuYXJpb19zZXR1cC5zaAogIGBgYAogICogU3VibW9kZWwgY29uZmlndXJhdGlvbnMgY2FuIGJlIGZvdW5kIGluIHRoZSAuL2UyZS9hcHBsaWNhdGlvbi9jb25maWdzIGRpcmVjdG9yeS4KCiAgIyMjIEVudmlyb25tZW50IFZhcmlhYmxlcwogIHwgdmFyaWFibGVzICAgICAgICAgICAgfCBvdmVydmlldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzYW1wbGUgICAgICAgICAgICAgICB8IHJlcXVpcmVkICAgICAgICAgICAgICAgIHwgCiAgfCAtLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAKICB8IFNVQk1PREVMX0NPTkZJR19QQVRIIHwgc3VibW9kZWwgY29uZmlndXJhdGlvbiBmaWxlIHBhdGguPGJyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc3VibW9kZWxfY29uZmlnLnlhbWwgfCB5ZXMgICAgICAgICAgICAgICAgICAgICB8IAogIHwgQUFTX1RBQkxFU19DUkVBVEVEICAgfCBEREwgc3RvcmVkIEFBUyBkYXRhIGlzIGNyZWF0ZWQgb3Igbm90IHdoZW4gZ28tYWFzLXByb3h5IGlzIHN0YXJ0ZWQuICAgfCB0cnVlICAgICAgICAgICAgICAgICB8IG5vIChkZWZhdWx0OiB0cnVlKSAgICAgIHwgCiAgfCBBQVNfREJfSE9TVCAgICAgICAgICB8IFBvc3RncmVzcWwgZGF0YWJhc2UgaG9zdCBuYW1lIGZvciBBQVMgc3RvcmVkICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyNy4wLjAuMSAgICAgICAgICAgIHwgbm8gKGRlZmF1bHQ6IDEyNy4wLjAuMSkgfCAKICB8IEFBU19EQl9QT1JUICAgICAgICAgIHwgUG9zdGdyZXNxbCBkYXRhYmFzZSBwb3J0IG51bWJlciBmb3IgQUFTIHN0b3JlZCAgICAgICAgICAgICAgICAgICAgICAgIHwgNTQzMiAgICAgICAgICAgICAgICAgfCBubyAoZGVmYXVsdDogNTQzMikgICAgICB8IAogIHwgQUFTX0RCX1VTRVIgICAgICAgICAgfCBQb3N0Z3Jlc3FsIGRhdGFiYXNlIHVzZXIgZm9yIEFBUyBzdG9yZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwb3N0Z3JlcyAgICAgICAgICAgICB8IG5vIChkZWZhdWx0OiBwb3N0Z3JlcykgIHwgCiAgfCBBQVNfREJfUEFTU1dPUkQgICAgICB8IFBvc3RncmVzcWwgZGF0YWJhc2UgcGFzc3dvcmQgZm9yIEFBUyBzdG9yZWQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBhc3N3b3JkICAgICAgICAgICAgIHwgbm8gKGRlZmF1bHQ6IHBhc3N3b3JkKSAgfCAKICB8IEFBU19EQl9EQVRBQkFTRSAgICAgIHwgUG9zdGdyZXNxbCBkYXRhYmFzZSBuYW1lIGZvciBBQVMgc3RvcmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2FtcGxlICAgICAgICAgICAgICAgfCBubyAoZGVmYXVsdDogc2FtcGxlKSAgICB8IAogIHwgQUFTX0RCX1NTTF9NT0RFICAgICAgfCBQb3N0Z3Jlc3FsIGRhdGFiYXNlIHNzbG1vZGUgZm9yIEFBUyBzdG9yZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkaXNhYmxlICAgICAgICAgICAgICB8IG5vIChkZWZhdWx0OiBkaXNhYmxlKSAgIHwgCgogICMjIExpY2Vuc2UKICBBcGFjaGUgTGljZW5zZSAyLjAsIHNlZSBbTElDRU5TRV0oLi9MSUNFTlNFKS4K readmeEtag: '"e343cf64d0080cca36b10a4c6d7ddf96e0ec5587"' readmeLastModified: Tue, 30 Jul 2024 21:02:42 GMT repositoryId: 672491411 description: Asset Administration Shell(AAS) proxy for RDBMS backend created: '2023-07-30T09:12:05Z' updated: '2024-07-30T21:02:46Z' language: Go archived: false stars: 2 watchers: 2 forks: 1 owner: hiroyoshii logo: https://avatars.githubusercontent.com/u/40140638?v=4 license: Apache-2.0 repoEtag: '"0a7227aa1a6b4e6ebfe903d6ad1d13025e56b7fd2dc9bf8a810936c9755ceb99"' repoLastModified: Tue, 30 Jul 2024 21:02:46 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/kazuki/pyramid-oas3 v3: true repositoryMetadata: base64Readme: >- cHlyYW1pZF9vYXMzCj09PT09PT09PT09PQoKW1B5cmFtaWRdKGh0dHBzOi8vdHJ5cHlyYW1pZC5jb20vKSBXZWLjgqLjg5fjg6rjgrHjg7zjgrfjg6fjg7Pjgavlr77jgZfjgabjgIEKW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIFszLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKeOCkuWIqeeUqOOBl+OBn+OAgQrjg6rjgq/jgqjjgrnjg4jjga7mpJzoqLzjg7vjg5Hjg7zjgrnjgpLlrp/mlr3jgZnjgovjg6njgqTjg5bjg6njg6rjgafjgZnjgIIKCltweXJhbWlkX3N3YWdnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdHJpZ2xpYS9weXJhbWlkX3N3YWdnZXIp44GuT3BlbkFQSSAzLjDlr77lv5zniYjjga7mp5jjgarkvY3nva7jgaXjgZHjgafjgZnjgIIKCuioreWumumgheebrgotLS0tLS0tLQoKKiBweXJhbWlkX29hczMudmFsaWRhdGVfcmVzcG9uc2U6IGJvb2wKICAqIOODrOOCueODneODs+OCueOBrkpTT07jgoLmpJzoqLzjgZnjgovjgYvjgpLoqK3lrprjgZfjgb7jgZko44OH44OV44Kp44Or44OIOiBGYWxzZSkKKiBweXJhbWlkX29hczMuZmlsbF9ieV9kZWZhdWx0OiBib29sCiAgKiDjg6rjgq/jgqjjgrnjg4jjg4fjg7zjgr/jgavlr77jgZfjgaZPcGVuQVBJ5a6a576p44Gn6Kit5a6a44GV44KM44GfZGVmYXVsdOWApOOBp+Wfi+OCgeOCi+OBi+OCkuioreWumuOBl+OBvuOBmSjjg4fjg5Xjgqnjg6vjg4g6IEZhbHNlKQoqIHB5cmFtaWRfb2FzMy5yZXNwb25zZV9yZXZpdmVyOiBPcHRpb25hbFtDYWxsYWJsZVtbVW5pb25baW50LCBzdHJdLCBKU09OX1RZUEVTXSwgVW5pb25bSlNPTl9UWVBFUywgcHlyYW1pZF9vYXMzLlVOREVGSU5FRF1dXQogICogSlNPTl9UWVBFUzogVW5pb25baW50LCBmbG9hdCwgc3RyLCBib29sLCBOb25lLCBsaXN0LCBkaWN0XQogICogW0pTT04ucGFyc2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2phL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0pTT04vcGFyc2Up44GucmV2aXZlcuOBqOWQjOanmOOBruWHpueQhuOCkuOAgQogICAg44Os44K544Od44Oz44K544K544Kt44O844Oe5qSc6Ki85a6f6KGM5YmN44Gr6YGp55So44GZ44KL44KI44GG44Gr44GX44G+44GZCiAgKiDjg4fjg5Xjgqnjg6vjg4g6IE5vbmUgKHJldml2ZXLjgpLpgannlKjjgZfjgarjgYQpCgrkvb/jgYTmlrkKLS0tLS0tCgrku6XkuIvjga7jgojjgYbjgavoqK3lrprjgZfjgaZweXJhbWlk44Gr57WE44G/6L6844G/44G+44GZCgpgYGAKc2V0dGluZ3MgPSB7CiAgICAncHlyYW1pZC5pbmNsdWRlcyc6ICdweXJhbWlkX29hczMnLAogICAgJ3B5cmFtaWRfb2FzMy5zY2hlbWEnOiB5YW1sLmxvYWQob3Blbignc2NoZW1hLnlhbWwnKS5yZWFkKCkpLAogICAgJ3B5cmFtaWRfb2FzMy52YWxpZGF0ZV9yZXNwb25zZSc6IFRydWUsCiAgICAncHlyYW1pZF9vYXMzLmZpbGxfYnlfZGVmYXVsdCc6IFRydWUsCn0KYGBgCgrmpJzoqLzlpLHmlZfmmYLjga/ku6XkuIvjga7kvovlpJbjgYzov5TljbTjgZXjgozjgovjga7jgafjgIEK6YGp5a6cZXhjZXB0aW9uX3ZpZXdfY29uZmln44KS6Kit5a6a44GX44Gm44GP44Gg44GV44GECgoqIHB5cmFtaWRfb2FzMy5WYWxpZGF0aW9uRXJyb3JzOiDjg6rjgq/jgqjjgrnjg4jjg4fjg7zjgr/jga7jgrnjgq3jg7zjg57mpJzoqLzlpLHmlZfmmYIKKiBweXJhbWlkX29hczMuUmVzcG9uc2VWYWxpZGF0aW9uRXJyb3I6IOODrOOCueODneODs+OCueODh+ODvOOCv+OBruOCueOCreODvOODnuaknOiovOWkseaVl+aZggoqIHB5cmFtaWQuaHR0cGV4Y2VwdGlvbnMuSFRUUEJhZFJlcXVlc3Q6IOOCr+OCqOODquaWh+Wtl+WIl+OBruODkeODvOOCueWkseaVl+aZggoqIHB5cmFtaWQuaHR0cGV4Y2VwdGlvbnMuSFRUUE5vdEFjY2VwdGFibGU6IOODquOCr+OCqOOCueODiOOBrkNvbnRlbnRUeXBl44Gr5a++5b+c44GZ44KL44KC44Gu44GM44K544Kt44O844Oe44Gr44Gq44GECu+8inB5cmFtaWQuaHR0cGV4Y2VwdGlvbnMuSFRUUFVuYXV0aG9yaXplZDog44Oq44Kv44Ko44K544OI44Gr6KqN6Ki85oOF5aCx44GM44Gq44GECgrku6XkuIvjgatleGNlcHRpb25fdmlld19jb25maWfjga7kvovjgpLnpLrjgZfjgb7jgZkKCmBgYApmcm9tIHB5cmFtaWQudmlldyBpbXBvcnQgZXhjZXB0aW9uX3ZpZXdfY29uZmlnCgoKQGV4Y2VwdGlvbl92aWV3X2NvbmZpZyhWYWxpZGF0aW9uRXJyb3JzKQpkZWYgZmFpbGVkX3JlcXVlc3RfdmFsaWRhdGlvbihleGMsIHJlcXVlc3QpOgogICAgcmVzID0gUmVzcG9uc2Uoc3RyKGV4YykpCiAgICByZXMuc3RhdHVzX2ludCA9IDQwMAogICAgcmV0dXJuIHJlcwoKCkBleGNlcHRpb25fdmlld19jb25maWcoUmVzcG9uc2VWYWxpZGF0aW9uRXJyb3IpCmRlZiBmYWlsZWRfcmVzcG9uc2VfdmFsaWRhdGlvbihleGMsIHJlcXVlc3QpOgogICAgcmVzID0gUmVzcG9uc2Uoc3RyKGV4YykpCiAgICByZXMuc3RhdHVzX2ludCA9IDUwMAogICAgcmV0dXJuIHJlcwpgYGAK readmeEtag: '"45a75ae5ea6328152c11af6b0ad211d723675ad2"' readmeLastModified: Thu, 25 Apr 2019 13:40:30 GMT repositoryId: 112933976 description: null created: '2017-12-03T14:18:57Z' updated: '2019-04-26T06:43:22Z' language: Python archived: false stars: 2 watchers: 3 forks: 0 owner: kazuki logo: https://avatars.githubusercontent.com/u/163226?v=4 license: MIT repoEtag: '"3c312e5b481cfee38559ab191fb43737a6a0751dae4f3431685f3272eef9dc9f"' repoLastModified: Fri, 26 Apr 2019 06:43:22 GMT foundInMaster: true category: Data Validators id: b74d0bbb2c4a0daba1f64cbd0694fb89 - source: openapi3 tags repository: https://github.com/dernasherbrezon/vue-openapi-bootstrap v3: true repositoryMetadata: base64Readme: >- IyMgU2NyZWVuc2hvdHMKCiFbc2NyZWVuMV0oL2RvYy8xLnBuZz9yYXc9dHJ1ZSkKIVtzY3JlZW4yXSgvZG9jLzIucG5nP3Jhdz10cnVlKQoKIyMgVXNhZ2UKCmBgYGphdmFzY3JpcHQKPHRlbXBsYXRlPgogIDx2dWUtb3BlbmFwaS1ib290c3RyYXAgOm9wZW5hcGk9Im9wZW5hcGkiPjwvdnVlLW9wZW5hcGktYm9vdHN0cmFwPgo8L3RlbXBsYXRlPgoKPHNjcmlwdD4KaW1wb3J0IHZ1ZU9wZW5hcGlCb290c3RyYXAgZnJvbSAndnVlLW9wZW5hcGktYm9vdHN0cmFwL3NyYy92dWUtb3BlbmFwaS1ib290c3RyYXAnCmV4cG9ydCBkZWZhdWx0IHsKICBjb21wb25lbnRzOiB7dnVlT3BlbmFwaUJvb3RzdHJhcH0sCiAgZGF0YSAoKSB7CiAgICByZXR1cm4gewogICAgICBvcGVuYXBpOiB7fQogICAgfQogIH0KfQo8L3NjcmlwdD4KYGBgCgojIyBCdWlsZCBTZXR1cAoKYGBgIGJhc2gKIyBpbnN0YWxsIGRlcGVuZGVuY2llcwpucG0gaW5zdGFsbAoKIyBidWlsZCBmb3IgcHJvZHVjdGlvbiB3aXRoIG1pbmlmaWNhdGlvbgpucG0gcnVuIGJ1aWxkCgpgYGAKCkZvciBhIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9uIGhvdyB0aGluZ3Mgd29yaywgY2hlY2sgb3V0IHRoZSBbZ3VpZGVdKGh0dHA6Ly92dWVqcy10ZW1wbGF0ZXMuZ2l0aHViLmlvL3dlYnBhY2svKSBhbmQgW2RvY3MgZm9yIHZ1ZS1sb2FkZXJdKGh0dHA6Ly92dWVqcy5naXRodWIuaW8vdnVlLWxvYWRlcikuIAo= readmeEtag: '"2f3f3bc03fe99ba3ffbae4cc81843eb6a1805fff"' readmeLastModified: Fri, 11 Jun 2021 07:21:08 GMT repositoryId: 222297022 description: OpenAPI viewer component for VueJS created: '2019-11-17T19:00:16Z' updated: '2021-06-11T07:21:11Z' language: Vue archived: false stars: 2 watchers: 3 forks: 0 owner: dernasherbrezon logo: https://avatars.githubusercontent.com/u/1614424?v=4 license: Apache-2.0 repoEtag: '"703251a215d4ed09d101d91f89744c0241dbdb98ae087017013c17618779b29f"' repoLastModified: Fri, 11 Jun 2021 07:21:11 GMT foundInMaster: true category: - Documentation - Parsers id: 5907b7f8d6ec3847e6b8965336450484 - source: openapi3 tags repository: https://github.com/chunhei2008/swagger-php-annotation v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyLVBIUCBBbm5vdGF0aW9uCgojIyBJbnN0YWxsCgrlronoo4Xmj5Lku7bvvJoKcGhwc3Ryb206IFBIUCBBbm5vdGF0aW9uCgrlhbfkvZNgdGVtcGxhdGVzYOi3r+W+hOWPguiAg1vmlofmoaNdKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vaGVscC9waHBzdG9ybS90dW5pbmctdGhlLWlkZS5odG1sI2RlZmF1bHQtZGlycykKCmBgYHNoCgpnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2NodW5oZWkyMDA4L3N3YWdnZXItcGhwLWFubm90YXRpb24uZ2l0CgpjZCBzd2FnZ2VyLXBocC1hbm5vdGF0aW9uCgojIOWwhmBzd2FnZ2VyLXBocC1hbm5vdGF0aW9uLnhtbGDlpI3liLbliLBgdGVtcGxhdGVzYOebruW9lQpjcCBzd2FnZ2VyLXBocC1hbm5vdGF0aW9uLnhtbCBbcGhwc3Ryb20vdGVtcGxhdGVzL3BhdGhdCgojIHJlc3RhcnQgeW91ciBwaHBzdHJvbQoKYGBgCgojIyBVc2FnZQoKIyMjIOS4iuS4i+aWh+ivtOaYjgoKYHN3YWdnZXItcGhwLWFubm90YXRpb25g5ZyoYHBocHN0cm9tYOS4reWIhuS4uuS4pOenjeS4iuS4i+aWhwoKMS4g5rOo6YeK5LiK5LiL5paH77ya5rOo6YeK5Z2X5LitCjIuIOmdnuazqOmHiuS4iuS4i+aWh++8muazqOmHiuWdl+S5i+WklueahOepuueZveWkhAoK5ZCM5LiA5Liq5rOo6Kej5YiG5Lik56eN5LiK5LiL5paH5L2/55So5Zy65pmv77yM5LiN5ZCM5Zy65pmv5L2/55So5LiN5ZCM55qE5qCH6K+G56ymCgrlpoLvvJoKCmBAR2V0YCDlkowgYEBHZXRfYCDpg73mmK9IVFRQIGBHRVRgIOivt+axggoKYEBHZXRfYCDkuLrms6jph4rkuIrkuIvmlofkvb/nlKgKYEBHZXRgIOS4uumdnuazqOmHiuS4iuS4i+aWh+S9v+eUqAoKCiMjIyDmlK/mjIHnmoTms6jop6PliJfooagKCi0gQEdldCBAR2V0XwotIEBQb3N0IEBQb3N0XwotIEBQdXQgQFB1dF8KLSBARGVsZXRlIEBEZWxldGVfCi0gQEluZm8gQEluZm9fCi0gQFRhZyBAVGFnXwotIEBJdGVtc18KLSBASnNvbkNvbnRlbnRfCi0gQE1lZGlhVHlwZV8KLSBAUGFyYW1ldGVyXwotIEBQcm9wZXJ0eSBAUHJvcGVydHlfCi0gQFJlcXVlc3RCb2R5IEBSZXF1ZXN0Qm9keV8KLSBAUmVzcG9uc2UyMDBfIEBSZXNwb25zZV8KLSBAU2NoZW1hIEBTY2hlbWFfCi0gQFNlY3VyaXR5U2NoZW1lIEBTZWN1cml0eVNjaGVtZV8KCgojIyDlj4LogIPmlofmoaMKCi0gW3N3YWdnZXItcGhwIEFubm90YXRpb25zXShodHRwczovL2dpdGh1Yi5jb20vemlyY290ZS9zd2FnZ2VyLXBocC90cmVlL21hc3Rlci9zcmMvQW5ub3RhdGlvbnMpCi0gW09wZW5BUEkgMy4wIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyk= readmeEtag: '"6dab04c7726062b623a5482878419c661a3e82ea"' readmeLastModified: Sat, 07 Aug 2021 23:35:46 GMT repositoryId: 389693571 description: Easy to use Swagger-PHP Annotation in PhpStrom created: '2021-07-26T16:09:17Z' updated: '2021-08-07T23:35:56Z' language: null archived: false stars: 2 watchers: 1 forks: 0 owner: chunhei2008 logo: https://avatars.githubusercontent.com/u/4560568?v=4 repoEtag: '"50ab130f4db641124593ceba7300f4863e03dd175336331a0b8444f17a129d11"' repoLastModified: Sat, 07 Aug 2021 23:35:56 GMT foundInMaster: true category: Code Generators id: 30d97397c2ead83a2d582bfbf7b32ae2 - source: openapi3 tags repository: https://github.com/liam-deacon/online-store-rest-api v3: true repositoryMetadata: base64Readme: >- IyBPbmxpbmUgU3RvcmUgRXhhbXBsZQoKPCEtLWxpbnQgZGlzYWJsZSBsaXN0LWl0ZW0taW5kZW50IC0tPgo8IS0tbGludCBkaXNhYmxlIGxpc3QtaXRlbS1zcGFjaW5nIC0tPgo8IS0tbGludCBkaXNhYmxlIG5vLWlubGluZS1wYWRkaW5nLS0+ClshWyBdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPWRlbW8mbWVzc2FnZT1SRVNUJTIwQVBJJmNvbG9yPWRhcmtvcmNoaWQmbG9nbz1IZXJva3UmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9vbmxpbmUtc3RvcmUtZmxhc2stcmVzdC1hcGkuaGVyb2t1YXBwLmNvbS9hcGlkb2NzLykKWyFbIF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9zdGF0aWMvdjE/bGFiZWw9ZG9jcyZtZXNzYWdlPUdpdEh1YiUyMFBhZ2VzJmNvbG9yPW9yYW5nZSZsb2dvPVJlYWQlMjBUaGUlMjBEb2NzJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vbGlhbS1kZWFjb24uZ2l0aHViLmlvL29ubGluZS1zdG9yZS1yZXN0LWFwaS8pClshWyBdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPWRvY2tlciZtZXNzYWdlPWltYWdlJmNvbG9yPTBkYjdlZCZsb2dvPURvY2tlciZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbGlnaHRieXRlcy9vbmxpbmVfc3RvcmVfYmFja2VuZCkKWyFbR2l0SHViIHB1bGwtcmVxdWVzdHMgY2xvc2VkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMtcHItY2xvc2VkL2xpYW0tZGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaS5zdmc/bG9nbz1HaXQmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9HaXRIdWIuY29tL2xpYW0tZGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaS9wdWxscy8pClshW1B5dGhvbiBDSV0oaHR0cHM6Ly9naXRodWIuY29tL0xpYW0tRGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaS93b3JrZmxvd3MvUHl0aG9uJTIwQ0kvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL0xpYW0tRGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaS9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBIlB5dGhvbitDSSIpClshW0Zyb250ZW5kIERvY2tlciBDSS9DRF0oaHR0cHM6Ly9naXRodWIuY29tL0xpYW0tRGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaS93b3JrZmxvd3MvRnJvbnRlbmQlMjBEb2NrZXIlMjBDSS9DRC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vTGlhbS1EZWFjb24vb25saW5lLXN0b3JlLXJlc3QtYXBpL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0ElMjJGcm9udGVuZCtEb2NrZXIrQ0klMkZDRCUyMikKWyFbQmFja2VuZCBEb2NrZXIgQ0kvQ0RdKGh0dHBzOi8vZ2l0aHViLmNvbS9MaWFtLURlYWNvbi9vbmxpbmUtc3RvcmUtcmVzdC1hcGkvd29ya2Zsb3dzL0JhY2tlbmQlMjBEb2NrZXIlMjBDSS9DRC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vTGlhbS1EZWFjb24vb25saW5lLXN0b3JlLXJlc3QtYXBpL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0ElMjJCYWNrZW5kK0RvY2tlcitDSSUyRkNEJTIyKQpbIVtTcGhpbnggRG9jdW1lbnRhdGlvbiBDSV0oaHR0cHM6Ly9naXRodWIuY29tL0xpYW0tRGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaS93b3JrZmxvd3MvU3BoaW54JTIwRG9jdW1lbnRhdGlvbiUyMENJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9MaWFtLURlYWNvbi9vbmxpbmUtc3RvcmUtcmVzdC1hcGkvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQSUyMlNwaGlueCtEb2N1bWVudGF0aW9uK0NJJTIyKQohWyBdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPXB5dGhvbiZtZXNzYWdlPXYzLjYlMjAtJTIwMy45JmNvbG9yPWJsdWUmbG9nbz1weXRob24mbG9nb0NvbG9yPXdoaXRlKQpbIVsgXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvTGlhbS1EZWFjb24vb25saW5lLXN0b3JlLXJlc3QtYXBpL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL0xpYW0tRGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaT9icmFuY2g9bWFzdGVyKQpbIVsgXShodHRwczovL2NvZGVjb3YuaW8vZ2gvbGlhbS1kZWFjb24vb25saW5lLXN0b3JlLXJlc3QtYXBpL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2xpYW0tZGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaSkKWyFbIF0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlL2RlNTcxZDk4YjVlZDQyMDNiNmVkYTVmOTI3Yzg4MzVkKV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9naC9saWFtLWRlYWNvbi9vbmxpbmUtc3RvcmUtcmVzdC1hcGk/dXRtX3NvdXJjZT1naXRodWIuY29tJmFtcDt1dG1fbWVkaXVtPXJlZmVycmFsJmFtcDt1dG1fY29udGVudD1saWFtLWRlYWNvbi9vbmxpbmUtc3RvcmUtcmVzdC1hcGkmYW1wO3V0bV9jYW1wYWlnbj1CYWRnZV9HcmFkZSkKWyFbIF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlZmFjdG9yL2dyYWRlL2dpdGh1Yi9saWFtLWRlYWNvbi9vbmxpbmUtc3RvcmUtcmVzdC1hcGk/bG9nbz1jb2RlZmFjdG9yKV0oaHR0cHM6Ly93d3cuY29kZWZhY3Rvci5pby9yZXBvc2l0b3J5L2dpdGh1Yi9saWFtLWRlYWNvbi9vbmxpbmUtc3RvcmUtcmVzdC1hcGkpCiFbIF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kZXYtT3BlbiUyMGluJTIwR2l0cG9kLWJsdWU/bG9nbz1naXRwb2QmbGluaz1odHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL2xpYW0tZGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaSkKWyFbIF0oaHR0cHM6Ly9jYW1vLmdpdGh1YnVzZXJjb250ZW50LmNvbS81MmZlYWRlMDZmMmZlY2JmMDA2ODg5YTkwNGQyMjFlNmE3MzBjMTk0LzY4NzQ3NDcwNzMzYTJmMmY2MzZmNmM2MTYyMmU3MjY1NzM2NTYxNzI2MzY4MmU2NzZmNmY2NzZjNjUyZTYzNmY2ZDJmNjE3MzczNjU3NDczMmY2MzZmNmM2MTYyMmQ2MjYxNjQ2NzY1MmU3Mzc2NjcpXShodHRwczovL2NvbGFiLnJlc2VhcmNoLmdvb2dsZS5jb20vZ2l0aHViL2xpYW0tZGVhY29uL29ubGluZS1zdG9yZS1yZXN0LWFwaSkKWyFbIF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9CaW5kZXIlMjBMYXVuY2g6LUp1cHl0ZXIlMjBMYWItYmx1ZS5zdmc/Y29sb3JBPSZsb2dvPWRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQndBQUFBY0NBWUFBQUJ5RGQrVUFBQUFCR2RCVFVFQUFMR1BDL3hoQlFBQUFDQmpTRkpOQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUFCM1JKVFVVSDRnc0VBRGt2eXI4R2pBQUFCUVpKUkVGVVNNZVZsbmxzVkZVVWg3LzdadWt3cFF4ZG9LMnlHR2dxWUZLTVFreURVVkJaSkVDUUVFUlpWTFFFYTRpS2lnZ2lGamZxYmtBRGhWU2dFVmtFVFZTaUpCQVRzRUlSamExUm9Dd3VVNWdDN1F3dzAzWm0zcnpySC9kT2ZKU1pVbTR5Nlh0OTk1N3Zubk4vNTV3cnVJN1JWak1OUUFBM0FpWDZieHc0QlRRQVFRRHZuRjFwYllqckFBRVVBbVhBREdBUTBBT1F3Q1dnSHFnR2RnQ1JkTkJyQW0yd1c0QTF3TjJBQ1p3Ry9nYmNRQkZ3Zy9aMkkvQVMwSm9LYW5Rem1vWEFhbUEwY0J4NEVoZ0RUQVltQXZjQXJ3TmhZRDZ3SEhEYk50czlEMjBMbGdNcmdXUEFYS0FPL2o4clBjOEE1dWlOQVV3SDl0am5kZGZEQW4xbUZrSld5b1JSNThoc3Y4S0lmcmFBei9RdkMzZ29sZjJVd0VCWkJZR3lDb0pmai9MRnovY2VEeFJKMDlIY2Niei82ZER1MG96ZzdsSUNaUlZYck5GUUV5V2FEbUFra05zbE1BblNFNTl4OUlyc01WdDhhd0JQNHJJM1A5YWNzODNoQzMrQmtGTUFkMmVvSG44QnJkcEc3N1JBMitJaVlEUHdIbkFiRUFPa01HUU1jQUtUZE5oZUJYcW1nRG9CaHc2eGRhMlE5dEdIUGhFNGhSVGxycnhRR1JCMjlJcUUzSVV0VHlERnU5clFDOEFpd0FpVVZkZ0ZOaFRJQTg1b1Q2OEcybmI1T0RBQkpmMjVuaUwvZW1mZXhYMUFBMElXZUlyOHhXYlkreUt3QkpWekM0RlNtNzFNbEZJZHdINTA1VW5uWVQ1S1dSYXdDdmdwMGVZQkNLRXFTQndwRnVWTXFwMmE1UTFXTzZUY2FraVo1NURXd3lWVkt4REM4Z0xQQTFPQUpoMzJxOHFjSFRnRUtFYmwybmNBdWE5OWxQeTJGZGdza0gyRmxGWE5JOElWZXdjTzhQK1dVeWpyOHZxUGZtdnQrcGxobVZsdElKZWlsTG9LK0NXVm9weTI1MExBZ3lyRUxjbC85bkIvaXhrYkYzR0t5T0ovckpzOGh4TkRaeDFLREZ2c3orOWpKdklOQVF6MUVLdnhSN09kZHpycm95WEdpUlY1enZwMVdQbFN6TjdiSlZDbUV0S0RGMzhraGd1UWVSNWlCUllHRm9hWmFVVXY5WXNFYytLR1lmcTl2c3NOMXFEc1AyTURIUlppWUJSWHBvRU13YTFYQWUzR200QTJZRERRMXo3SlRieXZHM08xaFhFdmNOSTB4RlB6VGg1WnVlQjRIZVhINmhvR1Ixb25DMlNsaFFnRDVSbkVsN2t3WFRPcWZ1NFNlQlQ0UTUvalZJQnRMMjlLZm5zVUdBZWNzSVNZKytXK21wb2h3UXVqWEpZbFBBbnpoMkhCYzdVeHcxaUdTcFUyVkF1N0M2QXoxQTY4Z0VyNFpJNk5YVDc4UGt4aDlKRXdVNEpsR3NZYk8zYStjN2c1MC9lc0ZHSXFjQmI0ZkV6Z05CbFd3Z0kyQVZzQUgxM1Ywb0wxSzVMdk5jQk9ZQUN3c2ZiN3FpWDNuMm1jbUdYR2lyUGpIZjh1UEhxdy9YeS9JZXVBVi9URzNnYU9BR3lmUHdKVWJtNEhvc0FkcEtpbHprN3ZJVlQxaUFQVFRXRzhPZjVNWS92SUZuOFB0MlVWWmtmYnFpMGh2RnJGbGNCYVFObzJES294dDZDcWpRODRuektrdGtWK1lJRStoejFPYVVWeW91MGlLeDQxQkFSMDJLWUI3d01kbldCSm00YU9nT3o4TVdVRFRwYTYvTmF6R2RVbG84YzJadVZ1a2RCV2ZPbkN0SGxmZlhBd2RQc0VLMm80N0p1MGkyTXlzQXQxeHhrTHRPcHdwd3pwRmQ0K3NPSFhLSERBSWExNllOVEpySnpTM3g5WlZkdm95K1diZWNOVExmVUNzN1hkL2FRcjN1bUd5MHJnc2hJaFE4cE5ocFNtSWVWelRabTlwbmpOdUxETFhUOTdnS2RSS1hVV1hVdnQzcVVOcVgxb1l6MkJqMUgzbVhQQUJoMjJKbFJudUJsNERIV1BBVmdLZkFqSXprRG50WUI2aElIRktQWE8wZ2JMVVFwMG9PNDlYdjFlQ1h5U0N0WXREenQ1NmtVMTU5bW9RdWxEcWZFY2NBRDRGRGdFSkZMQnJndG9nNEk2cjM2b0cwSUMxZDBEcU5aRU9oakFmemd3Nkx1bFVGM0NBQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5TURFNExURXhMVEEwVkRBd09qVTNPalEzTFRBME9qQXdMdE45VXdBQUFDVjBSVmgwWkdGMFpUcHRiMlJwWm5rQU1qQXhPQzB4TVMwd05GUXdNRG8xTnpvME55MHdORG93TUYrT3hlOEFBQUFBU1VWT1JLNUNZSUk9KV0oaHR0cHM6Ly9teWJpbmRlci5vcmcvdjIvZ2gvbGlhbS1kZWFjb24vb25saW5lLXN0b3JlLXJlc3QtYXBpL21hc3Rlcj91cmxwYXRoPWxhYikKCjwhLS1saW50IGVuYWJsZSBuby1pbmxpbmUtcGFkZGluZy0tPgoKIyMgQ29tcG9uZW50cyDwn5Oy8J+nqQoKVGhlcmUgaXMgYSBWdWUuanMgYmFzZWQgZnJvbnQtZW5kIGZvciBkaXNwbGF5aW5nIHJlYWN0aXZlIHdlYiBwYWdlcyB0byB0aGUgdXNlcgphbmQgYSBQeXRob24gRmxhc2sgYmFja2VuZCBmb3Igc2VydmluZyB0aGUgb25saW5lIHN0b3JlIFJFU1QgQVBJLgoKIyMjIFJ1bm5pbmcgVGhlIE5vZGUuSlMgRnJvbnRlbmQg8J+Pg+KAjeKZgO+4j+KYlfCfk5wKClRoZSBmcm9udGVuZCBjYW4gYmUgc3RhcnRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKJCBucG0gcnVuIGZyb250ZW5kOnN0YXJ0ICAjIHN0YXJ0cyBWdWUuanMgYXBwIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MApgYGAKCk5vdGUgdGhhdCB0aGUgZnJvbnRlbmQgY2FuIGJlIGZvdW5kIHVuZGVyIGBvbmxpbmVfc3RvcmUvZnJvbnRlbmRgIChXSVApLgoKIyMjIFJ1bm5pbmcgVGhlIFB5dGhvbiBCYWNrZW5kIPCfj4PigI3imYLvuI/wn5CN8J+UmgoKVGhlIGJhY2tlbmQgY2FuIGJlIHN0YXJ0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCiQgZXhwb3J0IEZMQVNLX0RFQlVHPTEgICMgZm9yIGRldmVsb3BtZW50IHdpdGggbGl2ZSByZWxvYWQKJCBleHBvcnQgRkxBU0tfRU5WSVJPTk1FTlQ9ZGV2ZWxvcG1lbnQgICMgdGhpcyBpcyB0aGUgZGVmYXVsdAokIFBZVEhPTlBBVEg9Jy4nIHB5dGhvbjMgbWFuYWdlLnB5IHJ1bgpgYGAKCiMjIEJhY2tncm91bmQg8J+TlgoKVGhpcyByZXBvc2l0b3J5IHdhcyBjcmVhdGVkIHRvIHNvbHZlIHRoZSAKW1ByZXpvbGEgVGVjaG5pY2FsIENoYWxsZW5nZV0oaHR0cHM6Ly9naXRodWIuY29tL3ByZXpvbGEvdGVjaG5pY2FsLWNoYWxsZW5nZSksCndoaWNoIHJlcXVpcmVzIGEgc29sdXRpb24gY2FwYWJsZSBvZiBhZGRpbmcsIHJlbW92aW5nIGFuZCBsaXN0aW5nIChhZGRlZCkgZ2lmdHMKZnJvbSBhIGxpc3QuIEl0IGFsc28gcmVxdWlyZWQgYSBtZWNoYW5pc20gdG8gcHVyY2hhc2UgYSBnaWZ0IGZyb20gdGhlIGxpc3QgYW5kCmdlbmVyYXRlIGEgcmVwb3J0IChvZiBwdXJjaGFzZWQgdnMgbm9uLXB1cmNoYXNlZCkgZ2lmdHMuICAKClRoaXMgY29kZSBwcm9qZWN0IHRha2VzIHRoYXQgY29uY2VwdCBhbmQgZXh0ZW5kcyBpdCB0byBhIGdlbmVyaWMgKGdpZnQpIHN0b3JlLgoKIyMgVGhlIGNoYWxsZW5nZQoKXyJXcml0ZSBhIHByb2dyYW0gdG8gdGhlIGJlc3Qgb2YgeW91ciBrbm93bGVkZ2Ugd2hpY2ggd2lsbCBhbGxvdyB0aGUgdXNlciB0b18KX21hbmFnZSBhIHNpbmdsZSBsaXN0IG9mIHdlZGRpbmcgZ2lmdHMuIl8KClRoZSB1c2VyIG11c3QgYmUgYWJsZSB0bzoKCi0gQWRkIGEgZ2lmdCB0byB0aGUgbGlzdAotIFJlbW92ZSBhIGdpZnQgZnJvbSB0aGUgbGlzdAotIExpc3QgdGhlIGFscmVhZHkgYWRkZWQgZ2lmdHMgb2YgdGhlIGxpc3QgCi0gUHVyY2hhc2UgYSBnaWZ0IGZyb20gdGhlIGxpc3QKLSBHZW5lcmF0ZSBhIHJlcG9ydCBmcm9tIHRoZSBsaXN0IHdoaWNoIHdpbGwgcHJpbnQgb3V0IGdpZnRzICYgdGhlaXIgc3RhdHVzZXMuCiAgLSBUaGUgcmVwb3J0IG11c3QgaW5jbHVkZSB0d28gc2VjdGlvbnM6CiAgICAtIFB1cmNoYXNlZCBnaWZ0czogZWFjaCBwdXJjaGFzZWQgZ2lmdCB3aXRoIHRoZWlyIGRldGFpbHMuCiAgICAtIE5vdCBwdXJjaGFzZWQgZ2lmdHM6IGVhY2ggYXZhaWxhYmxlIGdpZnQgd2l0aCB0aGVpciBkZXRhaWxzLgoKIyMjIEltcGxlbWVudGF0aW9uIE5vdGVzIPCfk4QKClRoZXJlIGFyZSB0d28gY29uY3JldGUgaW1wbGVtZW50YXRpb25zIGZvciByZWFsaXNpbmcgYSBnaWZ0IGxpc3Qgd2l0aAp0aGUgZm9sbG93aW5nIGNsYXNzZXMgZnJvbSBgb25saW5lX3N0b3JlL2JhY2tlbmQvZ2lmdF9saXN0LnB5YDoKCi0gYEJhc2ljR2lmdExpc3RgLCBhIHB1cmUgcHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIGEgZ2lmdCBsaXN0ICoqKFdlbGwgVGVzdGVkKSoqLgotIGBTcWxEYXRhYmFzZUdpZnRMaXN0YCwgYW4gU1FMIE9STSBiYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBhIGdpZnQgbGlzdCBmb3IKICAgdXNlIHdpdGhpbiBhIGZsYXNrIChvciBEamFuZ28pIFJFU1QgQVBJIGFwcC4gSW4gdGhpcyBleGFtcGxlLCB0aGUgT1JNCiAgIG1vZGVscyBhcmUgZm91bmQgaW4gYG9ubGluZV9zdG9yZS9iYWNrZW5kL21vZGVscy9gIGFuZCB0aGUgUkVTVCBBUEkgaXMKICAgaW1wbGVtZW50ZWQgaW4gYG9ubGluZV9zdG9yZS9iYWNrZW5kL3JvdXRlcy9naWZ0cy5weWAuCgojIyMgRGV2ZWxvcG1lbnQgU2V0dXAg4pqZ77iPCgpgYGBiYXNoCiQgbnBtIGluc3RhbGwgICMgbmVlZGVkIGZvciBTd2FnZ2VyIEpTT04gdG8gT0FTIFlBTUwgc3BlYyBjb252ZXJzaW9uCiQgbnBtIHJ1biBmcm9udGVuZDppbnN0YWxsICAjIGluc3RhbGwgcGFja2FnZXMgbmVlZGVkIGZvciBmcm9udGVuZCBhcHAKJCBweXRob24zIC1tIHZlbnYgdmVudgokIHNvdXJjZSB2ZW52L2Jpbi9hY3RpdmF0ZQoodmVudikgJCBwaXAgaW5zdGFsbCBzZXR1cHRvb2xzCih2ZW52KSAkIHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy1kZXYudHh0IC1yIHJlcXVpcmVtZW50cy10ZXN0LnR4dAoodmVudikgJCBwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0CmBgYAoKIyMjIFRlc3Rpbmcg8J+nqgoKYHNldHVwLmNmZ2AgaGFzIGNvbmZpZ3VyZWQgYHB5dGVzdGAgdG8gY29sbGVjdCBjb3ZlcmFnZSBpbmZvcm1hdGlvbgphbmQgY2FuIGJlIHJ1biBhcyBmb2xsb3dzOgoKYGBgYmFzaAoodmVudikgJCBQWVRIT05QQVRIPScuJyBweS50ZXN0IApgYGAKCiMjIyBCYXNpYyBHaWZ0IExpc3QgSW1wbGVtZW50YXRpb24g8J+OgQoKVGhlIGZvbGxvd2luZyBzaG93Y2FzZXMgYSBzaW1wbGUgcHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIHRoZSBnaWZ0IGxpc3Q6CgpgYGBweXRob24KIyBsb2FkIHN0b3JlIGRhdGEKPj4+IGltcG9ydCBqc29uCj4+PiBzdG9yZV9pdGVtcyA9IGpzb24ubG9hZChvcGVuKCdwcm9kdWN0cy5qc29uJykpCiMgaW1wb3J0IGltcGxlbWVudGF0aW9uCj4+PiBmcm9tIG9ubGluZV9zdG9yZS5iYWNrZW5kLmdpZnRfbGlzdCBpbXBvcnQgQmFzaWNHaWZ0TGlzdAojIGNyZWF0ZSBhIG5ldyBnaWZ0IGxpc3QKPj4+IGdpZnRfbGlzdCA9IEJhc2ljR2lmdExpc3QoJ0xpYW0nKQo+Pj4gZ2lmdF9saXN0ICAjIHNob3cgbGlzdCByZXByZXNlbnRhdGlvbiBpbiBpbnRlcnByZXRlcgpMaWFtIC0+IFtdCiMgYWRkIGdpZnQgaXRlbQo+Pj4gZ2lmdF9saXN0LmFkZF9pdGVtKHN0b3JlX2l0ZW1zWzBdKQo+Pj4gZ2lmdF9saXN0CkxpYW0gLT4gW3snaWQnOiAxLCAnbmFtZSc6ICdUZWEgcG90JywgJ2JyYW5kJzogJ0xlIENyZXVzZXQnLCAncHJpY2UnOiAnNDcuMDBHQlAnLCAnaW5fc3RvY2tfcXVhbnRpdHknOiA1MH1dCiMgcmVtb3ZlIGdpZnQgaXRlbQo+Pj4gZ2lmdF9saXN0LmFkZF9pdGVtKHN0b3JlX2l0ZW1zWzFdLCBxdWFudGl0eT0zKQo+Pj4gZ2lmdF9saXN0LnJlbW92ZV9pdGVtKHN0b3JlX2l0ZW1zWzBdKQo+Pj4gZ2lmdF9saXN0CkxpYW0gLT4gW3snaWQnOiAyLCAnbmFtZSc6ICdDYXN0IElyb24gT3ZhbCBDYXNzZXJvbGUgLSAyNWNtOyBWb2xjYW5pYycsICdicmFuZCc6ICdMZSBDcmV1c2V0JywgJ3ByaWNlJzogJzIxMC4wMEdCUCcsICdpbl9zdG9ja19xdWFudGl0eSc6IDI3fV0KIyBwdXJjaGFzZSBnaWZ0IGl0ZW0KPj4+IGdpZnRfbGlzdC5wdXJjaGFzZV9pdGVtKHN0b3JlX2l0ZW1zWzFdLCBxdWFudGl0eT0xKQojIGdlbmVyYXRlIHJlcG9ydAo+Pj4gZ2lmdF9saXN0LmNyZWF0ZV9yZXBvcnQoKQpHaWZ0IExpc3QgUmVwb3J0IGZvciBMaWFtOgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHVyY2hhc2VkIGl0ZW1zOgogICAtIHsnaWQnOiAyLCAnbmFtZSc6ICdDYXN0IElyb24gT3ZhbCBDYXNzZXJvbGUgLSAyNWNtOyBWb2xjYW5pYycsICdicmFuZCc6ICdMZSBDcmV1c2V0JywgJ3ByaWNlJzogJzIxMC4wMEdCUCcsICdpbl9zdG9ja19xdWFudGl0eSc6IDI3fSAocXVhbnRpdHk6IDEpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBdmFpbGFibGUgaXRlbXM6CiAgLSB7J2lkJzogMiwgJ25hbWUnOiAnQ2FzdCBJcm9uIE92YWwgQ2Fzc2Vyb2xlIC0gMjVjbTsgVm9sY2FuaWMnLCAnYnJhbmQnOiAnTGUgQ3JldXNldCcsICdwcmljZSc6ICcyMTAuMDBHQlAnLCAnaW5fc3RvY2tfcXVhbnRpdHknOiAyN30gKHF1YW50aXR5OiAyKQpgYGAKCiMjIyBGbGFzayBSRVNUIEFQSSArIFNRTCBPUk0gSW1wbGVtZW50YXRpb24g8J+MjfCflbjvuI8KCkFsdGVybmF0aXZlbHkgdGhlcmUgaXMgYSBSRVNUIEFQSSwgd2hpY2ggY2FuIGJlIHJ1biB3aXRoOgoKYGBgYmFzaAokIHNvdXJjZSB2ZW52L2Jpbi9hY3RpdmF0ZQoodmVudikgJCBjZCBvbmxpbmVfc3RvcmUKKHZlbnYpICQgRkxBU0tfREVCVUc9MSBmbGFzayBydW4KYGBgCgpUaGlzIHdpbGwgc3RhcnQgYSBmbGFzayBkZXZlbG9wbWVudCBzZXJ2ZXIgcnVubmluZyBvbiBodHRwOi8vbG9jYWxob3N0OjUwMDAgYW5kCnByb3ZpZGVzIGEgU3dhZ2dlci1VSSBhdCBodHRwOi8vbG9jYWxob3N0OjUwMDAvYXBpZG9jcy8uIAoKIyMjIyBFeGFtcGxlcwoKYGBgYmFzaAojIHJlZ2lzdGVyIGEgbmV3IHVzZXIKJCBjdXJsIC1YIFBPU1QgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgLWQgJ3sidXNlcm5hbWUiOiAibWUiLCAicGFzc3dvcmQiOiAidGVzdCIsICJlbWFpbCI6ICJtZUB0ZXN0LmNvbSJ9JyAnaHR0cDovL2xvY2FsaG9zdDo1MDAwL2FwaS92MS9hdXRoL3JlZ2lzdGVyJwoKeyJjb2RlIjoyMDAsIm1zZyI6InN1Y2Nlc3MiLCJzdGF0dXMiOiJvayJ9CgojIGxvZ2luIHdpdGggdXNlcgokIGN1cmwgLVggUE9TVCAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtZCAneyJ1c2VybmFtZSI6ICJtZSIsICJwYXNzd29yZCI6ICJ0ZXN0In0nCgp7ImFjY2Vzc190b2tlbiI6ImV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKOS5leUpwWVhRaU9qRTJNREl3TVRJeE16UXNJbTVpWmlJNk1UWXdNakF4TWpFek5Dd2lhblJwSWpvaU9UQTVOVFJsWkRBdFpXSXpNeTAwTVRZMkxUaGhPREV0WkRFNU5ESTNNakk1TlRFMElpd2laWGh3SWpveE5qQXlNREV6TURNMExDSnBaR1Z1ZEdsMGVTSTZJbTFsSWl3aVpuSmxjMmdpT21aaGJITmxMQ0owZVhCbElqb2lZV05qWlhOekluMC5HWVZUUUs0WHc5SmFpSkp4YTc1dmxLQlMtbWhvMFFqZmNNOTR1c1BadFNJIiwiY29kZSI6MjAwLCJzdGF0dXMiOiJvayJ9CgojIG5vdGUgYWNjZXNzIHRva2VuCiQgZXhwb3J0IFRPS0VOPSc8SldUX0ZST01fTE9HSU4+JwoKIyBhY2Nlc3MgZ2lmdCBsaXN0CiQgY3VybCAtWCBHRVQgLUggICJhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iIC1IICAiQXV0aG9yaXphdGlvbjogQmVhcmVyICRUT0tFTiIgaHR0cDovL2xvY2FsaG9zdDo1MDAwL2FwaS92MS9naWZ0cy9saXN0CgpbXQoKIyBhZGQgb25lIGdpZnQgaXRlbSB3aXRoIHN0b3JlIGlkIG9mIDEgdG8gbGlzdAokIGN1cmwgLVggUE9TVCAtSCAgImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIgLUggICJBdXRob3JpemF0aW9uOiBCZWFyZXIgJFRPS0VOIiAnaHR0cDovL2xvY2FsaG9zdDo1MDAwL2FwaS92MS9naWZ0cy9saXN0L2FkZD9pdGVtX2lkPTEmcXVhbnRpdHk9MScKCnsKICAiY29kZSI6IDIwMCwKICAibXNnIjogIkl0ZW0gYWRkZWQiLAogICJzdGF0dXMiOiAib2siCn0KCiMgcmVtb3ZlIGl0ZW0gd2l0aCBpZCAxIGZyb20gZ2lmdCBsaXN0CiQgY3VybCAtWCBERUxFVEUgLUggICJhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iIC1IICAiQXV0aG9yaXphdGlvbjogQmVhcmVyICRUT0tFTiIgaHR0cDovL2xvY2FsaG9zdDo1MDAwL2FwaS92MS9naWZ0cy9saXN0LzEKCnsKICAiY29kZSI6IDIwMCwKICAibXNnIjogIkl0ZW0gcmVtb3ZlZCIsCiAgInN0YXR1cyI6ICJvayIKfQoKIyBhZGQgdGhlbiBwdXJjaGFzZSBpdGVtCiQgY3VybCAtWCBQT1NUIC1IICAiYWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiAtSCAgIkF1dGhvcml6YXRpb246IEJlYXJlciAkVE9LRU4iICdodHRwOi8vbG9jYWxob3N0OjUwMDAvYXBpL3YxL2dpZnRzL2xpc3QvYWRkP2l0ZW1faWQ9MiZxdWFudGl0eT0yJwoKewogICJjb2RlIjogMjAwLAogICJtc2ciOiAiSXRlbSBhZGRlZCIsCiAgInN0YXR1cyI6ICJvayIKfQoKJCBjdXJsIC1YIFBPU1QgLUggICJhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iIC1IICAiQXV0aG9yaXphdGlvbjogQmVhcmVyICRUT0tFTiIgaHR0cDovL2xvY2FsaG9zdDo1MDAwL2FwaS92MS9naWZ0cy9saXN0LzIvcHVyY2hhc2U/cXVhbnRpdHk9MQoKewogICJjb2RlIjogMjAwLCAKICAibXNnIjogImdpZnQgcHVyY2hhc2VkIiwgCiAgInN0YXR1cyI6ICJvayIKfQoKIyBwcm9kdWNlIHJlcG9ydAokIGN1cmwgLVggR0VUIC1IICAiYWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIiAtSCAgIkF1dGhvcml6YXRpb246IEJlYXJlciAkVE9LRU4iICdodHRwOi8vbG9jYWxob3N0OjUwMDAvYXBpL3YxL2dpZnRzL2xpc3QvcmVwb3J0JwoKewogICJhdmFpbGFibGUiOiBbCiAgICB7CiAgICAgICJicmFuZCI6ICJMZSBDcmV1c2V0IiwgCiAgICAgICJjdXJyZW5jeSI6ICJHQlAiLCAKICAgICAgImlkIjogMiwgCiAgICAgICJpbl9zdG9ja19xdWFudGl0eSI6IDI3LCAKICAgICAgIm5hbWUiOiAiQ2FzdCBJcm9uIE92YWwgQ2Fzc2Vyb2xlIC0gMjVjbTsgVm9sY2FuaWMiLCAKICAgICAgInByaWNlIjogMjEwLjAsIAogICAgICAicXVhbnRpdHkiOiAxCiAgICB9CiAgXSwgCiAgInB1cmNoYXNlZCI6IFsKICAgIHsKICAgICAgImJyYW5kIjogIkxlIENyZXVzZXQiLCAKICAgICAgImN1cnJlbmN5IjogIkdCUCIsIAogICAgICAiaWQiOiAyLCAKICAgICAgImluX3N0b2NrX3F1YW50aXR5IjogMjcsIAogICAgICAibmFtZSI6ICJDYXN0IElyb24gT3ZhbCBDYXNzZXJvbGUgLSAyNWNtOyBWb2xjYW5pYyIsIAogICAgICAicHJpY2UiOiAyMTAuMCwgCiAgICAgICJxdWFudGl0eSI6IDEKICAgIH0KICBdLCAKICAidXNlciI6IDIKfQoKYGBgCgojIyBCb251cyBGZWF0dXJlcyDinKgKClRoZXJlIGFyZSBjdXJyZW50bHkgYSBudW1iZXIgb2YgZXh0cmEgZmVhdHVyZXMsIHdoaWNoIGhlbHAgCgotIFVzZXItZnJpZW5kbHkgYmFja2VuZCBhcHBsaWNhdGlvbiBsb2dnaW5nIHVzaW5nIGBsb2d1cnVgIHB5dGhvbiBwYWNrYWdlLgotIFNpbXBsZSBjb250YWluZXJpc2F0aW9uIHVzaW5nIERvY2tlciAtIHNlZSBgRG9ja2VyRmlsZWAKLSBBdXRoZW50aWNhdGlvbiB1c2luZyBKU09OIHdlYiB0b2tlbnMgdmlhIFtmbGFzay1qd3QtZXh0ZW5kZWRdKCkgbWlkZGxld2FyZS4KLSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChPQVMpXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIGNvbmZvcm1hbnQgY2xpZW50IGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkIHVzaW5nIFtmbGFzZ2dlcl0oaHR0cHM6Ly9naXRodWIuY29tL2ZsYXNnZ2VyL2ZsYXNnZ2VyKSBhbmQgdmlld2FibGUgdmlhIFN3YWdnZXJVSSBbL2FwaWRvY3NdKGxvY2FsaG9zdDo1MDAwL2FwaWRvY3MpIGVuZHBvaW50IHdoZW4gcnVubmluZyB0aGUgZmxhc2sgc2VydmVyLgotIFBlcnNpc3RlbnQgZGF0YSBzdG9yYWdlIHVzaW5nIFNRTCBEYXRhYmFzZSBtb2RlbGxlZCB1c2luZyBbc3FsYWxjaGVteV0oaHR0cHM6Ly9kb2NzLnNxbGFsY2hlbXkub3JnL2VuLzEzL2ludHJvLmh0bWwpIE9STS4KCiMjIyBEZXZlbG9wZXIgRG9jdW1lbnRhdGlvbiDwn5OXCgpUaGUgU3BoaW54IGRvY3VtZW50YXRpb24gYnVpbGRlciBpcyBjdXJyZW50bHkgdXNlZCB0byBleHRyYWN0IHB5dGhvbiBkb2NzdHJpbmdzIGFuZCB0aGUgT3BlbkFQSSBzcGVjIG9mIHRoZSBSRVNUIEFQSS4KClRvIGJ1aWxkIHRoZSBkb2N1bWVudGF0aW9uOgoKYGBgYmFzaAokIGNkIGRvY3MvCiQgbWFrZSBvcGVuYXBpX3NwZWMueW1sCiQgbWFrZSBodG1sICAjIG9yIGFub3RoZXIgZW5kIGRvY3VtZW50YXRpb24gZm9ybWF0IGUuZy4gZXB1YgpgYGAKCkEgbGl2ZSBkZXBsb3ltZW50IHRvIEdpdEh1YiBQYWdlcyBjYW4gYmUgZm91bmQgYXQgW2h0dHBzOi8vbGlhbS1kZWFjb24uZ2l0aHViLmlvL29ubGluZS1zdG9yZS1yZXN0LWFwaS9dKCkKCiMjIFRPRE8g8J+TnQoKLSBbeF0gQnVpbGQgc2NyaXB0IC8gQ0kgdXNpbmcgR2l0SHViIEFjdGlvbnMKLSBbeF0gU3BoaW54IGRvY3VtZW50YXRpb24gc3VwcG9ydAotIFt4XSBEZXBsb3kgQVBJIGRvY3VtZW50YXRpb24gdG8gR2l0SHViIFBhZ2VzIHZpYSBBY3Rpb25zCi0gWyBdIFRlc3QgU3FsRGF0YWJhc2VHaWZ0TGlzdAotIFsgXSBBdXRvbWF0ZWQgdGVzdHMgZm9yIFJFU1QgQVBJCi0gW3hdIHNoaWVsZHMuaW8gc3VwcG9ydCBmb3IgUkVBRE1FIGJhZGdlcwotIFsgXSBBZGQgbGludGluZyB0byBDSQotIFt4XSBCdWlsZCBhbmQgZGVwbG95IGRvY2tlciBpbWFnZShzKSB0byBkb2NrZXJodWIgdmlhIENJL0NECi0gW3hdIERlcGxveSBmbGFzayBhcHAgdG8gSGVyb2t1IGZvcgogIFtkZW1vXShodHRwczovL29ubGluZS1zdG9yZS1mbGFzay1yZXN0LWFwaS5oZXJva3VhcHAuY29tLykgcHVycG9zZXMgKGZvbGxvdyBsaW5rKQoKIyMgRnV0dXJlIEltcHJvdmVtZW50cyDwn5SuCgpHaXZlbiBtb3JlIHRpbWUsIHRoZSBmb2xsb3dpbmcgaW1wcm92ZW1lbnRzIGNvdWxkIGJlIG1hZGU6CgotICAgWyBdIFdyaXRlIGZyb250ZW5kIGluIFJlYWN0IChvciBtYXliZSBWdWUuanMpCi0gICBbIF0gQ3JlYXRlIGBkb2NrZXItY29tcG9zZS55bWxgIG11bHRpLWNvbnRhaW5lciBEb2NrZXIgY29tcG9zZSBzY3JpcHQgZm9yIG9yY2hlc3RyYXRpbmcgZnJvbnRlbmQsIGJhY2tlbmQgYW5kIGRhdGFiYXNlIChlLmcuIFJlYWN0L05QTS1iYXNlZCwgRmxhc2ssIFBvc3RncmVzKS4KLSAgIFsgXSBJbXBsZW1lbnQgbWlzc2luZyBmZWF0dXJlcyBpbiB0aGUgY29kZSAoaS5lLiB3aGVyZXZlciBgTm90SW1wbGVtZW50RXJyb3JgIGlzIHJhaXNlZCkKLSAgIFsgXSBDb2RlIHRpZHkgYW5kIHJlZmFjdG9yCi0gICBbIF0gSW5jcmVhc2Ugb3ZlcmFsbCBjb2RlIGNvdmVyYWdlIChhaW1pbmcgZm9yIG5pcnZhbmEgYXQgMTAwJSkK readmeEtag: '"8a192ca048b122c350d207e215c7077bb8f69060"' readmeLastModified: Tue, 27 Oct 2020 08:20:51 GMT repositoryId: 301341448 description: >- An example online store REST API using flask, SQL ORM and OpenAPI Specifications (with WIP Vue.js frontend) created: '2020-10-05T08:29:22Z' updated: '2022-10-28T17:33:53Z' language: Python archived: false stars: 2 watchers: 1 forks: 0 owner: Liam-Deacon logo: https://avatars.githubusercontent.com/u/3184694?v=4 license: GPL-3.0 repoEtag: '"bb1b35b1146c33ba7e492e41b2af4de12e09799e198daf62dc492179bf6d2087"' repoLastModified: Fri, 28 Oct 2022 17:33:53 GMT foundInMaster: true category: Server Implementations id: dcd91a71c900c43016a01d86e8f15130 - source: openapi3 tags repository: https://github.com/deepakbhalla/spring-boot-basic-auth-security v3: true id: eea19c2e6d65f964d1b757cc3434fdb3 repositoryMetadata: base64Readme: >- IyBzcHJpbmctYm9vdC1iYXNpYy1hdXRoLXNlY3VyaXR5CkFwcGxpY2F0aW9uIHRvIGRlbW9uc3RyYXRlIFNwcmluZyBib290IHNlY3VyaXR5IHVzaW5nIEJhc2ljIEF1dGggKFVzZXJuYW1lIGFuZCBQYXNzd29yZCkgYXMgYXV0aGVudGljYXRpb24gdHlwZS4gCgpUaGlzIGFwcGxpY2F0aW9uIGNvdmVycyB0aGUgYmVsb3cgZnVuY3Rpb25hbGl0aWVzOgoKMS4gPGI+VXNlciBSZWdpc3RyYXRpb24gKEFQSSBhdXRoZW50aWNhdGlvbiBpcyBub3QgcmVxdWlyZWQpPC9iPgogICAtIE5ldyB1c2UgcmVnaXN0cmF0aW9uIHdpdGhvdXQgQVBJIGF1dGhlbnRpY2F0aW9uCjIuIDxiPlVzZXIgTWFuYWdlbWVudCAoQVBJIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkKTwvYj4KICAgLSBHZXQgYWxsIHVzZXJzCiAgIC0gRGVsZXRlIGEgdXNlcgozLiA8Yj5BY2NvdW50IE1hbmFnZW1lbnQgKEFQSSBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZCk8L2I+CiAgICAtIEdldCBhbGwgYWNjb3VudHMKICAgIC0gR2V0IGFuIGFjY291bnQKICAgIC0gQ3JlYXRlIG5ldyBhY2NvdW50CiAgICAtIFVwZGF0ZSBleGlzdGluZyBhY2NvdW50CiAgICAtIERlbGV0ZSBleGlzdGluZyBhY2NvdW50CjQuIDxiPlRyYW5zYWN0aW9uIE1hbmFnZW1lbnQgKEFQSSBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZCk8L2I+CiAgICAtIERlcG9zaXQgYW4gYW1vdW50IHRvIGFuIGFjY291bnQKICAgIC0gV2l0aGRyYXcgYW4gYW1vdW50IGZyb20gYW4gYWNjb3VudAoKIyMjIFByb2plY3QgVGVjaG5vbG9naWVzCgotIEphdmEgdmVyc2lvbjogMTcuMC44LCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgotIEFwYWNoZSBNYXZlbiAzLjIuMwotIFNwcmluZyBib290IDMuMS41Ci0gUG9zdGdyZVNxbCBEYXRhYmFzZQotIFNwcmluZyBib290IEpQQQotIFNwcmluZyBzZWN1cml0eSA2LjEuNSAoSW1wbGVtZW50ZWQgQmFzaWMgQXV0aCBpbiB0aGlzIHByb2plY3QpCi0gTG9tYm9rCi0gT3BlbkFwaSAzIFNwZWNpZmljYXRpb25zCgojIyMgRGF0YWJhc2UKClBvc3RncmVTUUwgaGFzIGJlZW4gdXNlZCBpbiB0aGlzIHByb2plY3QuIEFsc28sIHRoaXMgcHJvamVjdCBzdG9yZXMgYWNjb3VudCdzIGV2ZW50cyBpbiB0aGUgZm9ybSBvZiBKU09OIGluIEpTT05CIGNvbHVtbgppbiB0aGUgYXBwbGljYXRpb24gdGFibGUuCgpKU09OIGRhdGEgdHlwZXMgYXJlIGZvciBzdG9yaW5nIEpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKSBkYXRhLiBTdWNoIGRhdGEgY2FuIGFsc28gYmUgc3RvcmVkIGFzIHRleHQsIGJ1dCB0aGUgCkpTT04gZGF0YSB0eXBlcyBoYXZlIHRoZSBhZHZhbnRhZ2Ugb2YgZW5mb3JjaW5nIHRoYXQgZWFjaCBzdG9yZWQgdmFsdWUgaXMgdmFsaWQgYWNjb3JkaW5nIHRvIHRoZSBKU09OIHJ1bGVzLiBUaGVyZSBhcmUgCmFsc28gYXNzb3J0ZWQgSlNPTi1zcGVjaWZpYyBmdW5jdGlvbnMgYW5kIG9wZXJhdG9ycyBhdmFpbGFibGUgZm9yIGRhdGEgc3RvcmVkIGluIHRoZXNlIGRhdGEgdHlwZXMuCgpQb3N0Z3JlU1FMIG9mZmVycyB0d28gdHlwZXMgZm9yIHN0b3JpbmcgSlNPTiBkYXRhOiAKCi0gSlNPTiAKLSBKU09OQi4gCgoxLiBKU09OIHN0b3JlcyB3aGl0ZSBzcGFjZSwgYW5kIHRoYXQgaXMgd2h5IHdlIGNhbiBzZWUgc3BhY2VzIHdoZW4ga2V5ICJhIiBpcyBzdG9yZWQsIHdoaWxlIEpTT05CIGRvZXMgbm90LgoyLiBKU09OIHN0b3JlcyBhbGwgdGhlIHZhbHVlcyBvZiBhIGtleS4gVGhpcyBpcyB0aGUgcmVhc29uIHlvdSBjYW4gc2VlIG11bHRpcGxlIHZhbHVlcyAoMiBhbmQgMSkgYWdhaW5zdCB0aGUga2V5ICJhIiwgd2hpbGUgSlNPTkIgb25seSAic3RvcmVzIiB0aGUgbGFzdCB2YWx1ZS4KMy4gSlNPTiBtYWludGFpbnMgdGhlIG9yZGVyIGluIHdoaWNoIGVsZW1lbnRzIGFyZSBpbnNlcnRlZCwgd2hpbGUgSlNPTkIgbWFpbnRhaW5zIHRoZSAic29ydGVkIiBvcmRlci4KNC4gSlNPTkIgb2JqZWN0cyBhcmUgc3RvcmVkIGFzIGEgZGVjb21wcmVzc2VkIGJpbmFyeSBhcyBvcHBvc2VkIHRvICJyYXcgZGF0YSIgaW4gSlNPTiwgd2hlcmUgbm8gcmVwYXJzaW5nIG9mIGRhdGEgaXMgcmVxdWlyZWQgZHVyaW5nIHJldHJpZXZhbC4KNS4gSlNPTkIgYWxzbyBzdXBwb3J0cyBpbmRleGluZywgd2hpY2ggY2FuIGJlIGEgc2lnbmlmaWNhbnQgYWR2YW50YWdlLgoKIyMjIE9wZW5BUEkgU3BlY2lmaWNhdGlvbgoKLSBQYXRoCgpodHRwOi8vbG9jYWxob3N0OjgwODEvbXktYXBwbGljYXRpb24vc3dhZ2dlci11aS9pbmRleC5odG1sCgotIFN3YWdnZXIgQXV0aG9yaXphdGlvbgoKIVsyNF9zd2FnZ2VyX2F1dGhvcml6YXRpb24uUE5HXShzY3JlZW5zaG90cyUyRjI0X3N3YWdnZXJfYXV0aG9yaXphdGlvbi5QTkcpCgotIFN3YWdnZXIgVUkgRGV0YWlscwoKIVsyNV9zd2FnZ2VyX3VpLnBuZ10oc2NyZWVuc2hvdHMlMkYyNV9zd2FnZ2VyX3VpLnBuZykKCiMjIyBEaXNhYmxlIE9wZW5BUEkgU3dhZ2dlciBmb3IgUHJvZHVjdGlvbiBFbnZpcm9ubWVudAoKV2UgY2FuIGRpc2FibGUgT3BlbkFQSSBzd2FnZ2VyIGZvciBhbnkgZW52aXJvbm1lbnQgYmFzZWQgdXBvbiBwcm9maWxlcy4gV2UgY2FuIHN1cHBseSBhIFZNIGFyZ3VtZW50IAonLURzcHJpbmcucHJvZmlsZXMuYWN0aXZlPTxlbnZpcm9ubWVudCBuYW1lPicgdG8gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb25zLgpVc2luZyBzcHJpbmcgcHJvZmlsZSBhbm5vdGF0aW9uIEBQcm9maWxlKCJwcm9kIiksIHdlIGNhbiBjb250cm9sIHRoZSBkaXNwbGF5IG9mIHN3YWdnZXIuCgotIFZNIEFyZ3VtZW50CgohW2ltZy5wbmddKHNjcmVlbnNob3RzLzIyX3ZtX2FyZ3VtZW50X3NwcmluZ19hY3RpdmVfcHJvZmlsZS5wbmcpCgpJZiB0aGUgdmFsdWUgb2Ygc3ByaW5nIHByb2ZpbGUgaXMgJ3Byb2QnLCB0aGVuIHN3YWdnZXIgd29uJ3QgYmUgYXZhaWxhYmxlLiBQbGVhc2UgcmVmZXIgdGhlIGJlbG93IHNjcmVlbnNob3Q6CgohW2ltZy5wbmddKHNjcmVlbnNob3RzLzIzX3N3YWdnZXJfbm90X2F2YWlsYWJsZS5wbmcpCgojIyMgQVBJIFRlc3RpbmcKCi0gUG9zdG1hbiBDb2xsZWN0aW9uCgohWzFfZGF0YWJhc2VfdGFibGVzX3NjcmlwdC5QTkddKHNjcmVlbnNob3RzJTJGMjBfcG9zdG1hbl9jb2xsZWN0aW9uLlBORykKCi0gRGF0YWJhc2UgdGFibGVzIHNjcmlwdAoKIVsxX2RhdGFiYXNlX3RhYmxlc19zY3JpcHQuUE5HXShzY3JlZW5zaG90cyUyRjFfZGF0YWJhc2VfdGFibGVzX3NjcmlwdC5QTkcpCgotIFVzZXJzIGNyZWF0ZWQgb24gbG9hZAoKIVsyX1VzZXJzX2NyZWF0ZWRfb25fc2VydmljZV9zdGFydHVwLlBOR10oc2NyZWVuc2hvdHMlMkYyX1VzZXJzX2NyZWF0ZWRfb25fc2VydmljZV9zdGFydHVwLlBORykKCi0gQ3JlYXRlIE5ldyBVc2VyIC0gVmFsaWRhdGlvbiBFcnJvcgoKIVszX2NyZWF0ZV91c2VyX2lucHV0X3ZhbGlkYXRpb25fZXJyb3IuUE5HXShzY3JlZW5zaG90cyUyRjNfY3JlYXRlX3VzZXJfaW5wdXRfdmFsaWRhdGlvbl9lcnJvci5QTkcpCgotIENyZWF0ZSBVc2VyIC0gUGFzc3dvcmQgYW5kIE1hdGNoUGFzc3dvcmQgRG9lcyBub3QgTWF0Y2ggVmFsaWRhdGlvbiBFcnJvcgoKIVs0X2NyZWF0ZV91c2VyX3Bhc3N3b3JkX2RpZmZlcmVudF9mcm9tX21hdGNoaW5nX3Bhc3N3b3JkLlBOR10oc2NyZWVuc2hvdHMlMkY0X2NyZWF0ZV91c2VyX3Bhc3N3b3JkX2RpZmZlcmVudF9mcm9tX21hdGNoaW5nX3Bhc3N3b3JkLlBORykKCi0gQ3JlYXRlIFVzZXIgLSBTdWNjZXNzIC0gTm8gQXV0aAoKIVs1X2NyZWF0ZV91c2VyX3N1Y2Nlc3MuUE5HXShzY3JlZW5zaG90cyUyRjVfY3JlYXRlX3VzZXJfc3VjY2Vzcy5QTkcpCgotIENyZWF0ZSBVc2VyIC0gTm8gQXV0aCBTaG93biBVbmRlciBBdXRob3JpemF0aW9uIHRhYiBvZiBQb3N0bWFuCgohWzZfY3JlYXRlX3VzZXJfbm9fYXV0aF9yZXF1aXJlZC5QTkddKHNjcmVlbnNob3RzJTJGNl9jcmVhdGVfdXNlcl9ub19hdXRoX3JlcXVpcmVkLlBORykKCi0gQ3JlYXRlIFVzZXIgLSBOZXcgdXNlciBjcmVhdGVkIGluIGRhdGFiYXNlIHRhYmxlICd1c2VyX3RhYmxlJwoKIVs3X2NyZWF0ZWRfdXNlcl9pbl91c2VyX3RhYmxlX2luX2RhdGFiYXNlLlBOR10oc2NyZWVuc2hvdHMlMkY3X2NyZWF0ZWRfdXNlcl9pbl91c2VyX3RhYmxlX2luX2RhdGFiYXNlLlBORykKCi0gR2V0IFVzZXIgLSBOb3QgQXV0aG9yaXplZCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uCgohWzhfZ2V0X3VzZXJfYXV0aGVudGljYXRpb25fZXJyb3IuUE5HXShzY3JlZW5zaG90cyUyRjhfZ2V0X3VzZXJfYXV0aGVudGljYXRpb25fZXJyb3IuUE5HKQoKLSBHZXQgVXNlcnMgLSBTdWNjZXNzZnVsIHdpdGggQmFzaWMgQXV0aAoKIVs5X2dldF91c2Vyc19zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkddKHNjcmVlbnNob3RzJTJGOV9nZXRfdXNlcnNfc3VjY2Vzc193aXRoX2Jhc2ljX2F1dGguUE5HKQoKLSBDcmVhdGUgQWNjb3VudCAtIE5vdCBBdXRob3JpemVkIHdpdGhvdXQgYXV0aGVudGljYXRpb24KCiFbMTBfY3JlYXRlX2FjY291bnRfYXV0aGVudGljYXRpb25fZXJyb3IuUE5HXShzY3JlZW5zaG90cyUyRjEwX2NyZWF0ZV9hY2NvdW50X2F1dGhlbnRpY2F0aW9uX2Vycm9yLlBORykKCi0gQ3JlYXRlIEFjY291bnQgLSBTdWNjZXNzZnVsIHdpdGggQmFzaWMgQXV0aAoKIVsxMV9jcmVhdGVfYWNjb3VudHNfc3VjY2Vzc193aXRoX2Jhc2ljX2F1dGguUE5HXShzY3JlZW5zaG90cyUyRjExX2NyZWF0ZV9hY2NvdW50c19zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkcpCgotIEdldCBBbGwgQWNjb3VudHMgLSBOb3QgQXV0aG9yaXplZCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uCgohWzEyX2dldF9hbGxfYWNjb3VudHNfYXV0aGVudGljYXRpb25fZXJyb3IuUE5HXShzY3JlZW5zaG90cyUyRjEyX2dldF9hbGxfYWNjb3VudHNfYXV0aGVudGljYXRpb25fZXJyb3IuUE5HKQoKLSBHZXQgQWxsIEFjY291bnRzIC0gU3VjY2Vzc2Z1bCB3aXRoIEJhc2ljIEF1dGgKCiFbMTNfZ2V0X2FsbF9hY2NvdW50c19zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkddKHNjcmVlbnNob3RzJTJGMTNfZ2V0X2FsbF9hY2NvdW50c19zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkcpCgotIEdldCBBY2NvdW50IERldGFpbHMgLSBOb3QgQXV0aG9yaXplZCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uCgohWzE0X2dldF9hY2NvdW50X2luZm9fYXV0aGVudGljYXRpb25fZXJyb3IuUE5HXShzY3JlZW5zaG90cyUyRjE0X2dldF9hY2NvdW50X2luZm9fYXV0aGVudGljYXRpb25fZXJyb3IuUE5HKQoKLSBHZXQgQWxsIEFjY291bnRzIC0gU3VjY2Vzc2Z1bCB3aXRoIEJhc2ljIEF1dGgKCiFbMTVfZ2V0X2FjY291bnRfaW5mb19zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkddKHNjcmVlbnNob3RzJTJGMTVfZ2V0X2FjY291bnRfaW5mb19zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkcpCgotIERlcG9zaXQgQW1vdW50IHRvIGFuIEFjY291bnQgLSBOb3QgQXV0aG9yaXplZCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uCgohWzE2X2RlcG9zaXRfYW1vdW50X2F1dGhlbnRpY2F0aW9uX2Vycm9yLlBOR10oc2NyZWVuc2hvdHMlMkYxNl9kZXBvc2l0X2Ftb3VudF9hdXRoZW50aWNhdGlvbl9lcnJvci5QTkcpCgotIERlcG9zaXQgQW1vdW50IHRvIGFuIEFjY291bnQgLSBTdWNjZXNzZnVsIHdpdGggQmFzaWMgQXV0aAoKIVsxN19kZXBvc2l0X2Ftb3VudF9zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkddKHNjcmVlbnNob3RzJTJGMTdfZGVwb3NpdF9hbW91bnRfc3VjY2Vzc193aXRoX2Jhc2ljX2F1dGguUE5HKQoKLSBXaXRoZHJhdyBBbW91bnQgZnJvbSBhbiBBY2NvdW50IC0gTm90IEF1dGhvcml6ZWQgd2l0aG91dCBhdXRoZW50aWNhdGlvbgoKIVsxOF93aXRoZHJhd19hbW91bnRfYXV0aGVudGljYXRpb25fZXJyb3IuUE5HXShzY3JlZW5zaG90cyUyRjE4X3dpdGhkcmF3X2Ftb3VudF9hdXRoZW50aWNhdGlvbl9lcnJvci5QTkcpCgotIFdpdGhkcmF3IEFtb3VudCBmcm9tIGFuIEFjY291bnQgLSBTdWNjZXNzZnVsIHdpdGggQmFzaWMgQXV0aAoKIVsxOV93aXRoZHJhd19hbW91bnRfc3VjY2Vzc193aXRoX2Jhc2ljX2F1dGguUE5HXShzY3JlZW5zaG90cyUyRjE5X3dpdGhkcmF3X2Ftb3VudF9zdWNjZXNzX3dpdGhfYmFzaWNfYXV0aC5QTkcpCgo= readmeEtag: '"e955173e21e8956650cf5c6f6d3010172a602c9d"' readmeLastModified: Tue, 31 Oct 2023 20:47:09 GMT repositoryId: 710441963 description: >- Spring boot Rest APIs secured with Basic Auth Spring Security Implementation created: '2023-10-26T17:42:58Z' updated: '2023-12-19T11:40:05Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: deepakbhalla logo: https://avatars.githubusercontent.com/u/6603640?v=4 repoEtag: '"e204335d2a5b205e85ffb529a412016eb9c9989f76bfa36f03a108f89f797a39"' repoLastModified: Tue, 19 Dec 2023 11:40:05 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/linx-software/petstore-api v3: true repositoryMetadata: base64Readme: >- IyAgU3dhZ2dlciBQZXRzdG9yZSAtIE9wZW5BUEkgMy4wIHNhbXBsZQoKIyMgRGVzY3JpcHRpb24KVGhpcyBzYW1wbGUgaW1wbGVtZW50cyBhIExpbnggUkVTVCBBUEkgYmFzZWQgb24gdGhlIFN3YWdnZXIgJ1BldHN0b3JlJyBPcGVuQVBJIGRlZmluaXRpb24gYW5kIGlzIGhvc3RlZCBvbiBhIExpbnggQ2xvdWQgU2VydmVyLCBtb3JlIGRldGFpbHMgb24gdGhlIG9yaWdpbmFsICdQZXRzdG9yZScgR2l0SHViIHByb2plY3QgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wZXRzdG9yZSkuIFRoZSBvcGVyYXRpb25zIG9mIHRoZSBMaW54IEFQSSBkbyBub3QgcGVyc2lzdCBhbnkgZGF0YSwgYnV0IHJhdGhlciwgcmVxdWVzdCBkYXRhIGlzIGZvcndhcmRlZCB0byBhY3R1YWwgJ1BldHN0b3JlJyBzZXJ2ZXIgdmlhIEhUVFAgcmVxdWVzdHMuICAKClZpZXcgdGhlIFtsaXZlIGRlbW9dKGh0dHBzOi8vZGVtb2xpbng2LmFwaS5saW54LnR3ZW50eTU3Lm5ldC9wZXRzdG9yZS9zd2FnZ2VyKSBob3N0ZWQgb24gYSBMaW54IENsb3VkIFNlcnZlci4KCgojIyBJbnN0YWxsYXRpb24KCiMjIyBDbG91ZCBzZXJ2ZXIgZGVwbG95bWVudApUaGlzIHNvbHV0aW9uIGNhbiBiZSBkZXBsb3llZCBkaXJlY3RseSB0byB5b3VyIExpbnggQ2xvdWQgc2VydmVyIGluc3RhbmNlLgoKMS4gUmVnaXN0ZXIgZm9yIGEgTGlueCB0cmlhbCBjbG91ZCBzZXJ2ZXIgW2hlcmVdKGh0dHBzOi8vbGlueC5zb2Z0d2FyZS9zZXJ2ZXItYnV5Mi8pLgoyLiBZb3Ugd2lsbCByZWNlaXZlIGFuIGVtYWlsIGNvbnRhaW5pbmcgeW91ciBMaW54IGNsb3VkIHNlcnZlciBjcmVkZW50aWFscyB3aGVuIHlvdXIgdHJpYWwgc2VydmVyIGhhcyBiZWVuIGFjdGl2YXRlZC4KMS4gTG9nIGludG8geW91ciBjbG91ZCBzZXJ2ZXIgaW5zdGFuY2UgYW5kIHVwbG9hZCB0aGUgU29sdXRpb24gKFRvcCBNZW51ID4gU2VydmVyID4gVXBsb2FkKS4KMy4gT24gdGhlIFNvbHV0aW9uJ3Mgc2VydmljZSBkYXNoYm9hcmQgcGFnZSwgX19zdGFydF9fIGFsbCBvZiB0aGUgc2VydmljZXMgZm9yIHRoZSBTb2x1dGlvbi4gICAKNC4gT25jZSB0aGUgc2VydmljZSBoYXMgc3RhcnRlZCwgeW91IGFyZSBhYmxlIHRvIG1ha2UgcmVxdWVzdHMgdXNpbmcgdGhlIGJhc2UgVVJMIG9mOgogICBgYGAKICAgaHR0cHM6Ly97eW91ciBpbnN0YW5jZSBuYW1lfS5hcGkubGlueC50d2VudHk1Ny5uZXQvcGV0c3RvcmUKICAgYGBgCgoKIyMjIExvY2FsIGVudmlyb25tZW50ClRoZSBiZWxvdyBzdGVwcyBkZXNjcmliZSBob3cgdG8gc2V0dXAgdGhlIHNhbXBsZSB0byBydW4gb24geW91ciBsb2NhbCBMaW54IERlc2lnbmVyIGVudmlyb25tZW50LgoKMS4gRG93bmxvYWQgYW5kIGluc3RhbGwgdGhlIExpbnggRGVzaWduZXIgW2hlcmVdKGh0dHBzOi8vbGlueC5zb2Z0d2FyZS9zZXJ2ZXItYnV5Mi8pLgoxLiBPcGVuIHRoZSBzYW1wbGUgU29sdXRpb24gKC5sc296KSBpbiB5b3VyIExpbnggRGVzaWduZXIuCjIuIEFsdGVyIHRoZSBiZWxvdyBTb2x1dGlvbiBTZXR0aW5nczoKICAgIC0gYExpbnhJc0xvY2FsRGV2RW52YCA6IGBUcnVlYAozLiBTZWxlY3QgdGhlIFJFU1RIb3N0IHNlcnZpY2UsIHJpZ2h0IGNsaWNrIGFuZCBzZWxlY3QgX19kZWJ1Z19fLiBPbmNlIGluaXRpYWxpc2VkLCAqKnN0YXJ0KiogdGhlIGRlYnVnZ2VyLgo0LiBPbmNlIHRoZSBkZWJ1Z2dlciBoYXMgc3RhcnRlZCwgeW91IGFyZSBhYmxlIHRvIG1ha2UgcmVxdWVzdHMgbG9jYWxseSB0bzoKICAgYGBgCiAgIGh0dHBzOi8vbG9jYWxob3N0OjgwODAvcGV0c3RvcmUKICAgYGBgCgojIyBVc2FnZQoKIyMjIFN3YWdnZXIgVUkKW1ZpZXcgbGl2ZSBkZW1vXSgJaHR0cHM6Ly9kZW1vbGlueDYuYXBpLmxpbngudHdlbnR5NTcubmV0L3BldHN0b3JlL3N3YWdnZXIpLgoKCiMjIyBQb3N0bWFuCjEuIE9wZW4gUG9zdG1hbiBhbmQgaW1wb3J0IHRoZSBwcm92aWRlZCBbcmVxdWVzdCBjb2xsZWN0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbGlueC1zb2Z0d2FyZS9wZXRzdG9yZS1hcGkvYmxvYi9tYWluL3Rlc3RzL3Bvc3RtYW4tY29sbGVjdGlvbi9Td2FnZ2VyJTIwUGV0c3RvcmUlMjB3aXRoJTIwTGlueC5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbikgaW4gUG9zdG1hbi4KMi4gQWx0ZXIgdGhlIGNvbGxlY3Rpb24gdmFyaWFibGVzIHRvIHJlZmxlY3QgeW91ciBjbG91ZCBlbnZpcm9ubWVudC4KIAozLiBPcGVuIGVhY2ggcmVxdWVzdCBhbmQgcGFzcyBvciBjaGFuZ2UgcGFyYW1ldGVycyBhbmQgYm9keSB2YWx1ZXMgYXMgZGVzY3JpYmVkIGluIGBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2AKCgoKIyMgQ29udHJpYnV0aW5nCgpGb3IgcXVlc3Rpb25zIHBsZWFzZSBhc2sgdGhlIFtMaW54IGNvbW11bml0eV0oaHR0cHM6Ly9saW54L3NvZnR3YXJlL2NvbW11bml0eSkgb3IgdXNlIHRoZSBbU2xhY2sgY2hhbm5lbF0oaHR0cHM6Ly9saW54c29mdHdhcmUuc2xhY2suY29tL2FyY2hpdmVzL0MwMUZMQkMxWE5YKS4gCgojIyBMaWNlbnNlCgpbTUlUXShodHRwczovL2dpdGh1Yi5jb20vbGlueC1zb2Z0d2FyZS90ZW1wbGF0ZS1yZXBvL2Jsb2IvbWFpbi9MSUNFTlNFLnR4dCkK readmeEtag: '"08f7dade9df5506a5f93ac80d173c2fcb7b3a441"' readmeLastModified: Fri, 11 Nov 2022 10:37:42 GMT repositoryId: 389524066 description: >- This sample implements a Linx REST API based on the Swagger 'Petstore' OpenAPI definition and is hosted on a Linx Cloud Server created: '2021-07-26T06:00:00Z' updated: '2024-01-30T06:07:22Z' language: null archived: false stars: 2 watchers: 2 forks: 0 owner: linx-software logo: https://avatars.githubusercontent.com/u/62884647?v=4 repoEtag: '"49f3e6845333122bf5ed8658203d05bfec857fa4bba1274ae32d9e1b5134443e"' repoLastModified: Tue, 30 Jan 2024 06:07:22 GMT foundInMaster: true category: - Converters - Server Implementations id: 4a157f3784bb3a4a47976a95a50701d0 - source: openapi3 tags repository: https://github.com/fourcels/rest v3: true id: c16c94cc33d32d5ea21bdb7d0e975ab1 repositoryMetadata: base64Readme: >- IyBSRVNUIHdpdGggQ2xlYW4gQXJjaGl0ZWN0dXJlIGZvciBHbwoKWyFbR29EZXZEb2NdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGV2LWRvYy0wMEFERDg/bG9nbz1nbyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2ZvdXJjZWxzL3Jlc3QpCgpJbnNwaXJlZCBieSBbc3dhZ2dlc3QvcmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L3Jlc3QpCgojIyBGZWF0dXJlcwoKLSBCdWlsdCB3aXRoIFtlY2hvXShodHRwczovL2dpdGh1Yi5jb20vbGFic3RhY2svZWNobykuCi0gQXV0b21hdGljIE9wZW5BUEkgMyBkb2N1bWVudGF0aW9uIHdpdGgKICBbb3BlbmFwaS1nb10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L29wZW5hcGktZ28pLgotIEF1dG9tYXRpYyByZXF1ZXN0IEpTT04gc2NoZW1hIHZhbGlkYXRpb24gd2l0aAogIFtqc29uc2NoZW1hLWdvXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvanNvbnNjaGVtYS1nbyksCiAgW2pzb25zY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zYW50aG9zaC10ZWt1cmkvanNvbnNjaGVtYSkuCi0gRW1iZWRkZWQgW1N3YWdnZXIgVUldKGh0dHBzOi8vc3dhZ2dlci5pby90b29scy9zd2FnZ2VyLXVpLykuCgojIyBVc2FnZQoKIyMjIFJlcXVlc3QKCkdvIHN0cnVjdCB3aXRoIGZpZWxkIHRhZ3MgZGVmaW5lcyBpbnB1dC4KCmBgYGdvCi8vIERlY2xhcmUgaW5wdXQgcG9ydCB0eXBlLgp0eXBlIGhlbGxvSW5wdXQgc3RydWN0IHsKICAgIExvY2FsZSBzdHJpbmcgYHF1ZXJ5OiJsb2NhbGUiIGRlZmF1bHQ6ImVuLVVTIiBwYXR0ZXJuOiJeW2Etel17Mn0tW0EtWl17Mn0kIiBlbnVtOiJ6aC1DTixlbi1VUyJgCiAgICBOYW1lICAgc3RyaW5nIGBwYXRoOiJuYW1lIiBtaW5MZW5ndGg6IjMiYCAvLyBGaWVsZCB0YWdzIGRlZmluZSBwYXJhbWV0ZXIgbG9jYXRpb24gYW5kIEpTT04gc2NoZW1hIGNvbnN0cmFpbnRzLgoKICAgIF8gICAgICBzdHJ1Y3R7fSBgdGl0bGU6Ik15IFN0cnVjdCIgZGVzY3JpcHRpb246IkhvbGRzIG15IGRhdGEuImAKfQpgYGAKCklucHV0IGRhdGEgY2FuIGJlIGxvY2F0ZWQgaW46CgotIGBwYXRoYCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBVUkksIGUuZy4gYC91c2Vycy86bmFtZWAsCi0gYHF1ZXJ5YCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBVUkksIGUuZy4gYC91c2Vycz9sb2NhbGU9ZW4tVVNgLAotIGBmb3JtYCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBib2R5IHdpdGggYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAKICBjb250ZW50LAotIGBmb3JtRGF0YWAgcGFyYW1ldGVyIGluIHJlcXVlc3QgYm9keSB3aXRoIGBtdWx0aXBhcnQvZm9ybS1kYXRhYCBjb250ZW50LAotIGBqc29uYCBwYXJhbWV0ZXIgaW4gcmVxdWVzdCBib2R5IHdpdGggYGFwcGxpY2F0aW9uL2pzb25gIGNvbnRlbnQsCi0gYGNvb2tpZWAgcGFyYW1ldGVyIGluIHJlcXVlc3QgY29va2llLAotIGBoZWFkZXJgIHBhcmFtZXRlciBpbiByZXF1ZXN0IGhlYWRlci4KCkZpZWxkIHRhZ3MKCi0gbnVtYmVyIGBtYXhpbXVtYCwgYGV4Y2x1c2l2ZU1heGltdW1gLCBgbWluaW11bWAsIGBleGNsdXNpdmVNaW5pbXVtYCwKICBgbXVsdGlwbGVPZmAKLSBzdHJpbmcgYG1pbkxlbmd0aGAsIGBtYXhMZW5ndGhgLCBgcGF0dGVybmAsIGBmb3JtYXRgCi0gYXJyYXkgYG1pbkl0ZW1zYCwgYG1heEl0ZW1zYCwgYHVuaXF1ZUl0ZW1zYAotIGFsbCBgdGl0bGVgLCBgZGVzY3JpcHRpb25gLCBgZGVmYXVsdGAsIGBjb25zdGAsIGBlbnVtYAoKQWRkaXRpb25hbCBmaWVsZCB0YWdzIGRlc2NyaWJlIEpTT04gc2NoZW1hIGNvbnN0cmFpbnRzLCBwbGVhc2UgY2hlY2sKW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9qc29uc2NoZW1hLWdvI2ZpZWxkLXRhZ3MpLgoKIyMgUmVzcG9uc2UKCmBgYGdvCi8vIERlY2xhcmUgb3V0cHV0IHBvcnQgdHlwZS4KdHlwZSBoZWxsb091dHB1dCBzdHJ1Y3QgewogICAgTm93ICAgICB0aW1lLlRpbWUgYGhlYWRlcjoiWC1Ob3ciIGpzb246Ii0iYAogICAgTWVzc2FnZSBzdHJpbmcgICAgYGpzb246Im1lc3NhZ2UiYAogICAgU2VzcyAgICBzdHJpbmcgICAgYGNvb2tpZToic2VzcyxodHRwb25seSxzZWN1cmUsbWF4LWFnZT04NjQwMCxzYW1lc2l0ZT1sYXgiYAp9CmBgYAoKT3V0cHV0IGRhdGEgY2FuIGJlIGxvY2F0ZWQgaW46CgotIGBqc29uYCBmb3IgcmVzcG9uc2UgYm9keSB3aXRoIGBhcHBsaWNhdGlvbi9qc29uYCBjb250ZW50LAotIGBoZWFkZXJgIGZvciB2YWx1ZXMgaW4gcmVzcG9uc2UgaGVhZGVyLAotIGBjb29raWVgIGZvciBjb29raWUgdmFsdWVzLCBjb29raWUgZmllbGRzIGNhbiBoYXZlIGNvbmZpZ3VyYXRpb24gaW4gZmllbGQgdGFnCiAgKHNhbWUgYXMgaW4gYWN0dWFsIGNvb2tpZSwgYnV0IHdpdGggY29tbWEgc2VwYXJhdGlvbikuCgojIyBFeGFtcGxlCgpbQWR2YW5jZSBFeGFtcGxlXSgvZXhhbXBsZXMvYWR2YW5jZS9tYWluLmdvKQoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImZtdCIKCSJsb2ciCgkidGltZSIKCgkiZ2l0aHViLmNvbS9mb3VyY2Vscy9yZXN0IgoJImdpdGh1Yi5jb20vbGFic3RhY2svZWNoby92NCIKKQoKZnVuYyBtYWluKCkgewoJcyA6PSByZXN0Lk5ld1NlcnZpY2UoKQoJcy5PcGVuQVBJLkluZm8uV2l0aFRpdGxlKCJCYXNpYyBFeGFtcGxlIikKCXMuR0VUKCIvaGVsbG8ve25hbWV9IiwgaGVsbG8oKSkKCgkvLyBTd2FnZ2VyIFVJIGVuZHBvaW50IGF0IC9kb2NzLgoJcy5Eb2NzKCIvZG9jcyIpCgoJLy8gU3RhcnQgc2VydmVyLgoJbG9nLlByaW50bG4oImh0dHA6Ly9sb2NhbGhvc3Q6MTMyMy9kb2NzIikKCXMuU3RhcnQoIjoxMzIzIikKfQoKZnVuYyBoZWxsbygpIHJlc3QuSW50ZXJhY3RvciB7CgkvLyBEZWNsYXJlIGlucHV0IHBvcnQgdHlwZS4KCXR5cGUgaW5wdXQgc3RydWN0IHsKCQlOYW1lICAgc3RyaW5nICAgYHBhdGg6Im5hbWUiIG1pbkxlbmd0aDoiMyJgIC8vIEZpZWxkIHRhZ3MgZGVmaW5lIHBhcmFtZXRlcgoJCUxvY2FsZSBzdHJpbmcgICBgcXVlcnk6ImxvY2FsZSIgZGVmYXVsdDoiZW4tVVMiIHBhdHRlcm46Il5bYS16XXsyfS1bQS1aXXsyfSQiIGVudW06InpoLUNOLGVuLVVTImAKCQlfICAgICAgc3RydWN0e30gYHRpdGxlOiJNeSBTdHJ1Y3QiIGRlc2NyaXB0aW9uOiJIb2xkcyBteSBkYXRhLiJgCgl9CgoJLy8gRGVjbGFyZSBvdXRwdXQgcG9ydCB0eXBlLgoJdHlwZSBvdXRwdXQgc3RydWN0IHsKCQlOb3cgICAgIHRpbWUuVGltZSBgaGVhZGVyOiJYLU5vdyIganNvbjoiLSJgCgkJTWVzc2FnZSBzdHJpbmcgICAgYGpzb246Im1lc3NhZ2UiYAoJfQoKCW1lc3NhZ2VzIDo9IG1hcFtzdHJpbmddc3RyaW5newoJCSJlbi1VUyI6ICJIZWxsbywgJXMhIiwKCQkiemgtQ04iOiAi5L2g5aW9LCAlcyEiLAoJfQoJcmV0dXJuIHJlc3QuTmV3SGFuZGxlcihmdW5jKGMgZWNoby5Db250ZXh0LCBpbiBpbnB1dCwgb3V0ICpvdXRwdXQpIGVycm9yIHsKCQltc2cgOj0gbWVzc2FnZXNbaW4uTG9jYWxlXQoJCW91dC5Ob3cgPSB0aW1lLk5vdygpCgkJb3V0Lk1lc3NhZ2UgPSBmbXQuU3ByaW50Zihtc2csIGluLk5hbWUpCgkJcmV0dXJuIG5pbAoJfSkKfQpgYGAK readmeEtag: '"2f6a120cc802345c0e938abb2306ee832edb8e49"' readmeLastModified: Fri, 12 Jul 2024 06:33:17 GMT repositoryId: 631874551 description: RESTful Web Services base on Echo created: '2023-04-24T08:42:46Z' updated: '2024-07-12T06:33:28Z' language: Go archived: false stars: 2 watchers: 2 forks: 0 owner: fourcels logo: https://avatars.githubusercontent.com/u/1042568?v=4 license: MIT repoEtag: '"6f783cd883ce1fa74addb43db9c9d147379e72ff970b94ae318119daee7c2df8"' repoLastModified: Fri, 12 Jul 2024 06:33:28 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/osvalda/pitaya v3: true repositoryMetadata: base64Readme: >- IyBQaXRheWEKClshW0NpcmNsZUNJXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NpcmNsZWNpL2J1aWxkL2dpdGh1Yi9vc3ZhbGRhL1BpdGF5YS9tYXN0ZXIpXShodHRwczovL2FwcC5jaXJjbGVjaS5jb20vcGlwZWxpbmVzL2dpdGh1Yi9vc3ZhbGRhL1BpdGF5YT9icmFuY2g9bWFzdGVyKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9vc3ZhbGRhL1BpdGF5YS9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9vc3ZhbGRhL1BpdGF5YT9icmFuY2g9bWFzdGVyKQpbIVtHaXRIdWIgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9zcG90aWZ5L3NjaW8uc3ZnKV0oLi9MSUNFTlNFKQpbIVtNYXZlbiBDZW50cmFsXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby5naXRodWIub3N2YWxkYS9QaXRheWEuc3ZnP2xhYmVsPU1hdmVuJTIwQ2VudHJhbCldKGh0dHBzOi8vY2VudHJhbC5zb25hdHlwZS5jb20vYXJ0aWZhY3QvaW8uZ2l0aHViLm9zdmFsZGEvUGl0YXlhLykKCkFQSSBjb3ZlcmFnZSB2aXN1YWxpemVyIHRvb2wuIENyZWF0ZXMgYW4gZWFzaWx5IHJlYWRhYmxlIGh0bWwgcmVwb3J0IGJhc2VkIHVwb24gdGhlIGV4ZWN1dGVkIEFQSSB0ZXN0IGNhc2VzLgoKPiBDdXJyZW50bHkgW1Rlc3ROR10gYW5kIFtKVW5pdDVdIGFyZSB0aGUgc3VwcG9ydGVkIGZyYW1ld29ya3MKCiMjIFVzYWdlCiMjIyBEZXBlbmRlbmN5CgoqKk1hdmVuKio6CmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmlvLmdpdGh1Yi5vc3ZhbGRhPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+UGl0YXlhPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS4yLjE8L3ZlcnNpb24+CiAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CjwvZGVwZW5kZW5jeT4KYGBgCgoqKkdyYWRsZSoqOgoKYGBgR3Jvb3Z5CmRlcGVuZGVuY2llcyB7CiAgICB0ZXN0Q29tcGlsZSgiaW8uZ2l0aHViLm9zdmFsZGE6UGl0YXlhOjEuMi4xIikKfQpgYGAKCiMjIyBDb25maWd1cmF0aW9uCgojIyMjIElucHV0IGZpbGUKCiMjIyMjIFBpdGF5YSBlbmRwb2ludCBsaXN0IGZpbGUKQ3JlYXRlIGEgdGV4dCBmaWxlIGluIHlvdXIgcmVzb3VyY2UgZGlyZWN0b3J5IGFuZCBhZGQgbGluZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6CgpgYGAKREVMRVRFIC9wb3N0cy97cG9zdF9pZH0sIFBvc3RzCgpHRVQgL3Bvc3RzL3twb3N0X2lkfS9jb21tZW50cywgQ29tbWVudHMKR0VUIC9jb21tZW50cy97cG9zdF9pZH0sIENvbW1lbnRzCgojIGNvbW1lbnQgbGluZQojIGEgc3RhciBtYXJrcyB0aGUgZW5kcG9pbnQgdG8gYmUgaWdub3JlZAoqIEdFVCAvcG9zdHMve3Bvc3RfaWR9L3BpY3MsIFBpY3R1cmVzCgpHRVQgL3Bvc3RzL3twb3N0X2lkfS9waWNzLCBQaWN0dXJlcwouLi4KYGBgCgojIyMjIyBPcGVuQVBJIFZlcnNpb24gMyBmaWxlCkNvcHkgdGhlIG9wZW4gYXBpIGZpbGUgKGpzb24gb3IgeWFtbCkgdG8gcmVzb3VyY2VzIGRpcmVjdG9yeSBvciB1c2UgaXRzIFVSTAoKIyMjIyBQcm9wZXJ0aWVzIGZpbGUKCkNyZWF0ZSBhIGBwaXRheWEucHJvcGVydGllc2AgZmlsZSBpbnRvIHRoZSByb290IG9mIHlvdXIgcmVzb3VyY2VzIGRpcmVjdG9yeSBhbmQKYWRkIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB0byBpdDoKCnwgS2V5IHwgVmFsdWUgfCBNYW5kYXRvcnkgfAp8IC0tLS0tLSB8IC0tLS0tLSB8IC0tLS0tLSB8CnwgYXBwbGljYXRpb24ubmFtZSB8IFRoZSBuYW1lIG9mIHlvdXIgU1VUIHwgWWVzIHwgCnwgZW5kcG9pbnQubGlzdC5pbnB1dCB8IFRoZSBlbmRwb2ludCBsaXN0IGZpbGUncyByZWxhdGl2ZSBwYXRoIG9yIE9wZW4gQVBJIGZpbGUgVVJMfCBZZXMgfAp8IGJhci5jaGFydC53aWR0aCB8IFRoZSB3aWR0aCBvZiB0aGUgQXJlYS13aXNlIEVuZHBvaW50IENvdmVyYWdlcyBjaGFydHwgTm8gfAp8IGJhci5jaGFydC5oZWlnaHQgfCBUaGUgaGVpZ2h0IG9mIHRoZSBBcmVhLXdpc2UgRW5kcG9pbnQgQ292ZXJhZ2VzIGNoYXJ0fCBObyB8CgojIyMgVGVzdCBjYXNlIG1vZGlmaWNhdGlvbnMKCiMjIyMgVGVzdE5HCgpUbyB1c2UgUGl0YXlhIHdpdGggVGVzdE5HIGFkZCB0aGUgcmVwb3J0ZXIgdG8gdGhlIGxpc3RlbmVycyBpbiB5b3VyIHRlc3QgY2xhc3MoZXMpOgpgYGBqYXZhCkBMaXN0ZW5lcnMoe1BpdGF5YUNvdmVyYWdlUmVwb3J0ZXIuY2xhc3N9KQpwdWJsaWMgY2xhc3MgWW91clRlc3ROR1Rlc3RDbGFzcyB7CiAgICAvLyAuLi4KfQpgYGAKCiMjIyMgSlVuaXQgNQoKVG8gdXNlIFBpdGF5YSB3aXRoIEpVbml0NSAgYWRkIHRoZSBleHRlbnNpb24gdG8gdGhlIGV4dGVuc2lvbnMgaW4geW91ciB0ZXN0IGNsYXNzKGVzKToKYGBgamF2YQpARXh0ZW5kV2l0aChQaXRheWFDb3ZlcmFnZUV4dGVuc2lvbi5jbGFzcykKcHVibGljIGNsYXNzIFlvdXJKVW5pdDVUZXN0Q2xhc3MgewogICAgLy8gLi4uCn0KYGBgCgojIyMjIEluIFRlc3QgTWV0aG9kcwoKQW5ub3RhdGUgYWxsIHlvdXIgdGVzdCBtZXRob2RzIHdoaWNoIHlvdSB3YW50IHRvIGluY2x1ZGUgaW4gdGhlIHJlcG9ydDoKYGBgamF2YQpAVGVzdApAVGVzdENhc2VTdXBwbGVtZW50YXJ5KGFwaSA9IHtHRVQgKyAiL29uZV9vZl95b3VyX2VuZHBvaW50In0pCnB1YmxpYyB2b2lkIHlvdXJUZXN0TWV0aG9kKCkgewogICAgLy8gLi4uCn0KYGBgCgojIyBUb29scyBhbmQgUGx1Z2lucwpUaGUgZm9sbG93aW5nIHRvb2xzIGFyZSB1c2VkIGFjcm9zcyB0aGUgcHJvamVjdC4KCnwgTmFtZSB8IFZlcnNpb24gfAp8IC0tLS0tLSB8IC0tLS0tLSB8CnwgdGVzdG5nIHwgNy40LjAgfAp8IGp1bml0Lmp1cGl0ZXIgfCA1LjguMSB8CnwganVuaXQucGxhdGZvcm0gfCAxLjguMSB8CnwgZnJlZW1hcmtlciB8IDIuMy4yOSB8CnwgbG9tYm9rIHwxLjE4LjEyfAp8IGFzc2VydGotY29yZSB8IDMuMTQuMCB8CnwgYXBhY2hlLmNvbW1vbnMgfCAzLjguMSB8CnwgY29tbW9ucy1pbyB8IDIuNiB8CnwgZ3VhdmEgfCAxMS4wLjIgfAp8IHNsZjRqIHwgMS43LjMwIHwKfCBsb2diYWNrIHwgMS4yLjMgfAp8IGptb2NraXQgfCAxLjQxIHwKfCBtb2NraXRvIHwgMi4xNS4wIHwKfCBzd2FnZ2VyLXBhcnNlci12MyB8IDIuMC4yMSB8CgojIyBQcmV2aWV3Cgo8YSBocmVmPSJodHRwczovL2kuaWJiLmNvLzdTOHhEc0ovcGl0YXlhLW1haW4uanBnIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHdpZHRoPSI0MjUiIGhlaWdodD0iMjQ3IiBhbHQ9ImNoYXJ0cyIgc3JjPSJodHRwczovL2kuaWJiLmNvLzdTOHhEc0ovcGl0YXlhLW1haW4uanBnIj4KPC9hPgo8YSBocmVmPSJodHRwczovL2kuaWJiLmNvL3RwREZiS1YvcGl0YXlhLWxpc3QuanBnIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHdpZHRoPSI0MjUiIGhlaWdodD0iMjQ3IiBhbHQ9ImVuZHBvaW50IGxpc3QiIHNyYz0iaHR0cHM6Ly9pLmliYi5jby90cERGYktWL3BpdGF5YS1saXN0LmpwZyI+CjwvYT4KCiMjIENJIElzc3VlcyBhbmQgc29sdXRpb25zCgojIyMgSmVua2lucwoKSWYgSmVua2lucyBmYWlscyB0byBkaXNwbGF5IGNzcywgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIGBNYW5hZ2UgSmVua2luc2AgLyBgU2NyaXB0IGNvbnNvbGVgCmBgYApTeXN0ZW0uc2V0UHJvcGVydHkoImh1ZHNvbi5tb2RlbC5EaXJlY3RvcnlCcm93c2VyU3VwcG9ydC5DU1AiLCAiIikKYGBgCgoKW1Rlc3ROR106IDxodHRwczovL3Rlc3RuZy5vcmcvZG9jLz4KW0pVbml0NV06IDxodHRwczovL2p1bml0Lm9yZy9qdW5pdDUvPg== readmeEtag: '"8e708a6917956b0d7a069fdcd7fb3f08d525a9b2"' readmeLastModified: Sun, 26 May 2024 12:49:51 GMT repositoryId: 284689009 description: API test coverage reporter for TestNG and JUnit5 created: '2020-08-03T12:04:28Z' updated: '2024-07-19T08:09:59Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: osvalda logo: https://avatars.githubusercontent.com/u/29924475?v=4 license: Apache-2.0 repoEtag: '"7a4266fd825211c776a50d152e2dae68199caed46c6e9dfc4b1946b3994691f2"' repoLastModified: Fri, 19 Jul 2024 08:09:59 GMT foundInMaster: true category: Description Validators id: 9d42f0c86da6d152bdc8bb7a06122b00 - source: openapi3 tags repository: https://github.com/otaviotscha/nodejs-api-boilerplate v3: true repositoryMetadata: base64Readme: >- IyBOb2RlSlMgQVBJIEJvaWxlcnBsYXRlCgojIyBSZXF1aXJlbWVudHMKClRvIHJ1biB0aGlzIHByb2plY3QgeW91IHdpbGwgbmVlZDoKCjEuIFtOb2RlSlNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9kb3dubG9hZC8pCjIuIFtZYXJuXShodHRwczovL2NsYXNzaWMueWFybnBrZy5jb20vbGFuZy9lbi9kb2NzL2luc3RhbGwpCgojIyBFbnZpcm9ubWVudAoKLSBgLmVudmAgZmlsZSBpcyByZWFkIHdoZW4gaW4gcHJvZHVjdGlvbi4KLSBgLmVudi5kZXZgIGZpbGUgaXMgcmVhZCB3aGVuIGNhbGxpbmcgYHlhcm4gZGV2YCAoZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQpLgotIGAuZW52LnRlc3RgIGZpbGUgaXMgcmVhZCB3aGVuIGNhbGxpbmcgYHlhcm4gdGVzdGAgKHRlc3QgZW52aXJvbm1lbnQpLgoKWW91IGNhbiB1c2UgYC5lbnYuc2FtcGxlYCB0byBrbm93IGhvdyB0byBjb25maWd1cmUgdGhlIGAuZW52YCB0byB5b3VyIG5lZWRzLgoKYC5lbnYuc2FtcGxlYCBhbHNvIGNvbnRhaW5zIHRoZSBlbnZpcm9ubWVudCBkZWZhdWx0cy4KCiMjIFNjcmlwdHMKCi0gYHlhcm4gcHJpc21hIG1pZ3JhdGUgZGV2YCB0byBnZW5lcmF0ZS9zeW5jIGRhdGFiYXNlIGFjY29yZGluZ2x5IHRvIG1pZ3JhdGlvbnMgKG9yIGdlbmVyYXRlIG1pZ3JhdGlvbiBpZiBgc2NoZW1hLnByaXNtYWAgd2FzIG1vZGlmaWVkKS4KLSBgeWFybiBkZXZgIHRvIHJ1biBhcHAgaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQuCi0gYHlhcm4gdGVzdGAgdG8gcnVuIHRlc3RzLgotIGB5YXJuIHByb2RgIHRvIGJ1aWxkIFR5cGVTY3JpcHQgdG8gSmF2YVNjcmlwdCB0aGVuIHJ1biBhcHAgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudCBzaW11bGF0aW9uLgoKIyMgQVBJIERvY3VtZW50YXRpb24KCi0gYGh0dHA6Ly97aG9zdH06e3BvcnR9L2RvY3NgIGRlZmF1bHQ6IDxodHRwOi8vbG9jYWxob3N0OjQwMDAvZG9jcz4KCiMjIE1haW4gcGFja2FnZXMKCi0gW1R5cGVTY3JpcHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdCkKLSBIVFRQIFNlcnZlcjogW3JvdXRpbmctY29udHJvbGxlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS90eXBlc3RhY2svcm91dGluZy1jb250cm9sbGVycykgYW5kIFtleHByZXNzXShodHRwczovL2dpdGh1Yi5jb20vZXhwcmVzc2pzL2V4cHJlc3MpCi0gRGF0YWJhc2U6IFtwcmlzbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmlzbWEvcHJpc21hKQotIFJlcXVlc3RzIHZhbGlkYXRpb25zOiBbY2xhc3MtdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vdHlwZXN0YWNrL2NsYXNzLXZhbGlkYXRvcikKLSBBUEkgZG9jdW1lbnRhdGlvbjogW3N3YWdnZXItdWktZXhwcmVzc10oaHR0cHM6Ly9naXRodWIuY29tL3Njb3R0aWUxOTg0L3N3YWdnZXItdWktZXhwcmVzcykKLSBUZXN0czogW2plc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9qZXN0KQotIExvZ3M6IFt3aW5zdG9uXShodHRwczovL2dpdGh1Yi5jb20vd2luc3RvbmpzL3dpbnN0b24pCg== readmeEtag: '"100a24355fee76c1cf762e5dcc8d4bff55c8f789"' readmeLastModified: Tue, 14 Dec 2021 14:44:10 GMT repositoryId: 438273922 description: null created: '2021-12-14T14:00:10Z' updated: '2024-05-25T00:27:54Z' language: TypeScript archived: true stars: 2 watchers: 2 forks: 0 owner: otaviotscha logo: https://avatars.githubusercontent.com/u/15371120?v=4 license: MIT repoEtag: '"5fba6782e4c4624c27a311bbd6900c82a452553c16aae054b208c8d2123c22bb"' repoLastModified: Sat, 25 May 2024 00:27:54 GMT foundInMaster: true category: - Server - Server Implementations id: 109c0b426faa2b9f363ed379578bc857 - source: openapi3 tags repository: https://github.com/srfrnk/crd-api-doc-gen v3: true repositoryMetadata: base64Readme: >- IyBjcmQtYXBpLWRvYy1nZW4KCkt1YmVybmV0ZXMgQ1JEIEFQSSBHZW5lcmF0b3IKCiMjIEJhc2ljIFVzYWdlCgpUbyBnZW5lcmF0ZSBhbiBgSFRNTGAgQVBJIGRvY3VtZW50YXRpb24gcGFnZToKCjEuIE9idGFpbiBzb21lIGBqc29uYCBvciBgeWFtbGAgbWFuaWZlc3QgZmlsZXMgdGhhdCBjb250YWluIG9uZSBvciBtb3JlIGBDdXN0b21SZXNvdXJjZURlZmluaXRpb25gIG9iamVjdHMKMS4gKipPcHRpb25hbGx5Kiogb2J0YWluIGEgZmlsZSB3aXRoIHNvbWUgYXBpIGluZm8uCjEuIFJ1bjogYGRvY2tlciBydW4gLS1ybSAtdiAkUFdELzxQQVRIX1RPX1lPVVJfRklMRVM+Oi88QU5ZX1BBVEg+IGdoY3IuaW8vc3Jmcm5rL2NyZC1hcGktZG9jLWdlbjo8VkVSU0lPTl9UQUc+IDxJTlBVVF9GT0xERVJfUEFUSD4gPE9VVFBVVF9GT0xERVJfUEFUSD4gWzxBUElfSU5GT19QQVRIPl1gCjEuICoqTm90ZSoqIHRoYXQgdGhlc2UgcGF0aHMgYXJlIGludGVybmFsIHRvIHRoZSBjb250YWluZXIuIEUuZy4gYGRvY2tlciBydW4gLS1ybSAtdiAvbXlib3gvbXlmaWxlczovaW50ZXJuYWwgZ2hjci5pby9zcmZybmsvY3JkLWFwaS1kb2MtZ2VuOmxhdGVzdCAvaW50ZXJuYWwvc29tZS9wYXRoIC9pbnRlcm5hbC9hbm90aGVyL3BhdGhgCjEuIGA8SU5QVVRfRk9MREVSX1BBVEg+YCBuZWVkcyB0byBjb250YWluIGFueSBgeWFtbGAgb3IgYGpzb25gIEs4cyBtYW5pZmVzdCBmaWxlcyB3aXRoIENSRCBkZWZpbml0aW9ucy4KMS4gRmluZCBnZW5lcmF0ZWQgSFRNTCBwYWdlIGBpbmRleC5odG1sYCBpbnNpZGUgdGhlIHNwZWNpZmllZCBvdXRwdXQgZm9sZGVyLgoKIyMgQVBJIEluZm8gZmlsZQoKVG8gY3VzdG9taXplIGFwaSBpbmZvIHlvdSBjYW4gc3BlY2lmeSBhbiBhcGktaW5mbyBmaWxlLgpUaGlzIGZpbGUgbXVzdCBiZSBpbiBgeWFtbGAvYGpzb25gIGZvcm1hdCBhbmQgaGF2ZSB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZToKCmBgYHlhbWwKYXBpLWluZm86CiAgdmVyc2lvbjogPEFOWSBTVFJJTkc+CiAgdGl0bGU6IDxBTlkgU1RSSU5HPgogIGRlc2NyaXB0aW9uOiA8QU5ZIE1BUktET1dOIFRFWFQ+CmBgYAoKIyMgQ3JlZGl0cwoKMS4gQmFzZWQgb24gW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQoxLiBVc2luZyBbeXFdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWtlZmFyYWgveXEpCg== readmeEtag: '"81400118c011ebfbb4996d87a2f1fe67bad4fba8"' readmeLastModified: Sun, 19 Dec 2021 16:57:32 GMT repositoryId: 426717001 description: Kubernetes CRD API Generator created: '2021-11-10T17:36:05Z' updated: '2024-06-11T13:13:25Z' language: Mustache archived: false stars: 2 watchers: 2 forks: 3 owner: srfrnk logo: https://avatars.githubusercontent.com/u/1501654?v=4 license: MIT repoEtag: '"c44eafd2ac8d09e6b89b27375f6f0590e70b92ce85c7001fb41a4659cf31432e"' repoLastModified: Tue, 11 Jun 2024 13:13:25 GMT foundInMaster: true category: Code Generators id: 11c2eb0e66e56fa8344ebdd16b47d794 - source: openapi3 tags repository: https://github.com/api-stuff/spectral-spelling-grammar v3: true repositoryMetadata: base64Readme: >- IyBTcGVjdHJhbCBTcGVsbGluZyBhbmQgR3JhbW1hciBSdWxlc2V0CgpPbmUgb2YgdGhlIHRoaW5ncyBJIGZpbmQgYWNyb3NzIHRoZSBjb250cmFjdHMgSSB3b3JrIG9uIGlzIHRoZSBsYWNrIG9mIGF0dGVudGlvbiB0byBkZXRhaWwgaW4gZ2V0dGluZyBzcGVsbGluZyBhbmQgZ3JhbW1hciBjb3JyZWN0IGluIE9wZW5BUEkgZG9jdW1lbnRzLiBTdXJlLCBtb3N0IGRldmVsb3BlcnMgZG9uJ3QgY2FyZSBhYm91dCB0aGlzIHN0dWZmLCBidXQgaXQgdGFrZXMgdGhlIHNoaW5lIG9mIHdoYXQgc2hvdWxkIGJlIGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgcHJvZHVjdCBvZmZlcmluZy4KCkkndmUgdGhlcmVmb3JlIGtub2NrZWQgdG9nZXRoZXIgdGhpcyBbU3BlY3RyYWxdKGh0dHBzOi8vbWV0YS5zdG9wbGlnaHQuaW8vZG9jcy9zcGVjdHJhbC9aRzlqT2pZeC1vdmVydmlldykgcnVsZXNldCBhcyBhIGxpdHRsZSBwcm9vZi1vZi1jb25jZXB0LiBJdCB1c2VzIGEgW0N1c3RvbSBGdW5jdGlvbl0oaHR0cHM6Ly9tZXRhLnN0b3BsaWdodC5pby9kb2NzL3NwZWN0cmFsL1pHOWpPakkxTVRrdy1jdXN0b20tZnVuY3Rpb25zKSBhbmQgdGhlIEF0b20gcGFja2FnZSBbYHNwZWxsY2hlY2tlcmBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3NwZWxsY2hlY2tlciksIHdoaWNoIG9mZmVycyB1cCBzb21lIGJpbmRpbmdzIHRvIHRoZSBzeXN0ZW0gc3BlbGwgY2hlY2tlci4gTm90ZSAqKm5vIGdyYW1tYXIgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkIHJpZ2h0IG5vdyAtIHRvIGJlIGltcGxlbWVudGVkIGluIGR1ZSBjb3Vyc2UqKi4KCkl0J3MganVzdCBzb21ldGhpbmcgZm9yIGZvbGtzIHRvIHBpY2sgdXAgYW5kIHVzZS4gVGhlIGJpZ2dlc3QgZHJhd2JhY2sgd2l0aCB0aGUgYXBwcm9hY2ggaXMgdGhlIGJpbmRpbmcgdG8gdGhlIHN5c3RlbSBkaWN0aW9uYXJ5LCB3aGljaCBtYXkgb2YgY291cnNlIGJlIGluIGEgZGlmZmVyZW50IGxhbmd1YWdlIHRvIHRoZSBvbmUgdGhlIE9wZW5BUEkgZG9jdW1lbnQgaXMgYmVpbmcgYXV0aG9yZWQgaW4uIEhvd2V2ZXIsIEknbSBzdXJlIGNsZXZlciBmb2xrcyBvdXQgdGhlcmUgY2FuIGlyb24gdGhpcyB3cmlua2xlIG91dCAocHJvYmFibHkgYnkgc3dhcHBpbmcgdGhlIGBzcGVsbGNoZWNrZXJgIGRlcGVuZGVuY3kgZm9yIHNvbWV0aGluZyBhIGJpdCBtb3JlICJmbGV4aWJsZSIpLgoKIyMgRXhhbXBsZQoKQnkgd2F5IG9mIGV4ZW1wbGFyLCBJJ3ZlIGtub2NrZWQgdG9nZXRoZXIgYW4gW09wZW5BUEkgZG9jdW1lbnRdKHRlc3QvbWlzc3BlbHQtb3BlbmFwaS55YW1sKSB3aXRoIGEgYnVuY2ggb2Ygc3BlbGxpbmcgbWlzdGFrZXMuIElmIHlvdSBydW4gdGhlIGZvbGxvd2luZzoKCmBgYGJhc2gKeWFybiBpbnN0YWxsCnlhcm4gcnVuIGxpbnQgcnVsZXNldHMvc3BlbGwtY2hlY2sueWFtbCB0ZXN0L21pc3NwZWx0LW9wZW5hcGkueWFtbCAjwqBGb3IgY29udmVuaWVuY2UsIGlkZWFsbHkgaW5zdGFsbCBTcGVjdHJhbCBnbG9iYWxseQpgYGAKCllvdSBzaG91bGQgZ2V0IHRoZSBmb2xsb3dpbmcgb3V0cHV0OgoKYGBgYmFzaArinpwgIHNwZWN0cmFsLXNwZWxsaW5nLWdyYW1tYXIgZ2l0OihtYXN0ZXIpIOKclyB5YXJuIHJ1biBsaW50IHJ1bGVzZXRzL3NwZWxsLWNoZWNrLnlhbWwgdGVzdC9taXNzcGVsdC1vcGVuYXBpLnlhbWwKeWFybiBydW4gdjEuMjIuMTcKJCBucHggc3BlY3RyYWwgbGludCAtLXJ1bGVzZXQgcnVsZXNldHMvc3BlbGwtY2hlY2sueWFtbCB0ZXN0L21pc3NwZWx0LW9wZW5hcGkueWFtbAoKL1VzZXJzL2NocmlzL0RvY3VtZW50cy9naXQvZ2l0aHViL2FwaS1zdHVmZi9zcGVjdHJhbC1zcGVsbC1jaGVjay90ZXN0L21pc3NwZWx0LW9wZW5hcGkueWFtbAogIDM6MTAgIHdhcm5pbmcgIGNoZWNrLXRpdGxlLXNwZWxsaW5nICAgICAgICBNaXNzcGVsdCB3b3JkcyBmb3VuZCBpbiB0ZXh0OiBjb25jcHRlICAgICAgICAgICBpbmZvLnRpdGxlCiAgNDoxNiAgd2FybmluZyAgY2hlY2stZGVzY3JpcHRpb24tc3BlbGxpbmcgIE1pc3NwZWx0IHdvcmRzIGZvdW5kIGluIHRleHQ6IGJkYWx5LCBzbWVhbHQgICAgIGluZm8uZGVzY3JpcHRpb24KICA5OjE2ICB3YXJuaW5nICBjaGVjay1zdW1tYXJ5LXNwZWxsaW5nICAgICAgTWlzc3BlbHQgd29yZHMgZm91bmQgaW4gdGV4dDogRGVmYXV0bCAgICAgICAgICAgcGF0aHMuL3Rlc3QuZ2V0LnN1bW1hcnkKIDEwOjIwICB3YXJuaW5nICBjaGVjay1kZXNjcmlwdGlvbi1zcGVsbGluZyAgTWlzc3BlbHQgd29yZHMgZm91bmQgaW4gdGV4dDogc3BlbGluZywgdmVlZXJ5eSAgcGF0aHMuL3Rlc3QuZ2V0LmRlc2NyaXB0aW9uCiAxMzoyNCAgd2FybmluZyAgY2hlY2stZGVzY3JpcHRpb24tc3BlbGxpbmcgIE1pc3NwZWx0IHdvcmRzIGZvdW5kIGluIHRleHQ6IERlZmFsdCAgICAgICAgICAgIHBhdGhzLi90ZXN0LmdldC5yZXNwb25zZXNbMjAwXS5kZXNjcmlwdGlvbgoK4pyWIDUgcHJvYmxlbXMgKDAgZXJyb3JzLCA1IHdhcm5pbmdzLCAwIGluZm9zLCAwIGhpbnRzKQrinKggIERvbmUgaW4gMS4zN3MuCuKenCAgc3BlY3RyYWwtc3BlbGxpbmctZ3JhbW1hciBnaXQ6KG1hc3Rlcikg4pyXCmBgYAoKU2ltcGxlIHJlYWxseS4KCiMjIEFuYXRvbXkKClRoZSBhbmF0b215IG9mIHRoaXMgcHJvamVjdCBpcyBwcmV0dHkgYmFzaWMgYW5kIHJlZmxlY3RzIHRoZSB1c2Ugb2YgQ3VzdG9tIEZ1bmN0aW9ucyBpbiBTcGVjdHJhbC4KCj4gSWYgeW91IGFyZSBub3QgZmFtaWxpYXIgd2l0aCBTcGVjdHJhbCBhbmQgd291bGQgbGlrZSBhIGRlZXAgZGl2ZSBjaGVja291dCBteSBbc291cCB0byBudXRzIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGktc3R1ZmYvaGFuZHMtb24td2l0aC1zcGVjdHJhbCkgb3IgbXkgW0FTQyBwcmVzZW50YXRpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9cmRkdlhnbnFlSlEpIGZvciBhIHF1aWNrIG92ZXJ2aWV3LgoKVGhlIGZ1bmRhbWVudGFsIHBhcnRzIGFyZToKCiogQSBbY3VzdG9tIHJ1bGVzZXRdKHJ1bGVzZXRzL3NwZWxsLWNoZWNrLnlhbWwpIHRoYXQgaW1wbGVtZW50cyBydWxlcyBiYXNlZCBvbiBmaW5kaW5nIGFueSBgZGVzY3JpcHRpb25gLCBgc3VtbWFyeWAgb3IgYHRpdGxlYCBwcm9wZXJ0eSBpbiB0aGUgT3BlbkFQSSBkb2N1bWVudC4gVGhlIHNldmVyaXR5IGlzIHNldCBhcyBhIHdhcm5pbmcgaW4gdGhpcyBydWxlc2V0LgoqIEVhY2ggb2YgdGhvc2UgcnVsZXMgaW52b2tlcyB0aGUgc3BlbGwgY2hlY2sgW2N1c3RvbSBmdW5jdGlvbl0ocnVsZXNldHMvZnVuY3Rpb25zL3NwZWxsLWNoZWNrLmpzKSB3aGljaCBzcGxpdHMgdGhlIHN0cmluZyBpbnRvIHdvcmRzIGFuZCB0aGVuIHJ1bnMgdGhlIGBzcGVsbGNoZWNrZXIuaXNNaXNzcGVsbGVkYCBmdW5jdGlvbiBvbiBlYWNoIHRvIGZpbmQgdGhlIG1pc3NwZWx0IHdvcmRzLiBUaGUgd29yZHMgYXJlIHJldHVybmVkIGluIHRoZSBtZXNzYWdlLgoKSWYgeW91IHdhbnQgdG8gdXNlIHRoaXMgcnVsZXNldCBqdXN0IGNsb25lIHRoaXMgcmVwb3NpdG9yeSwgZ3JhYiB0aGUgcnVsZXNldCBhbmQgZnVuY3Rpb24gYW5kIHJlZmVyZW5jZSB0aGVtIHRodXMgaW4geW91ciBydWxlc2V0IChJIG1pZ2h0IHBhY2thZ2UgdGhpcyBzdHVmZiBsYXRlciBpZiBJIGFkZCBtb3JlIGZ1bmN0aW9ucyk6CgpgYGB5YW1sCmV4dGVuZHM6CiAgLSAuL3NwZWxsLWNoZWNrLnlhbWwKYGBgCgpCb2JzIHlvdXIgVW5jbGUgOnRodW1ic3VwOi4= readmeEtag: '"da82af4316efb4b421e8b5d49e5cdd4ad11f1d86"' readmeLastModified: Thu, 03 Mar 2022 18:14:48 GMT repositoryId: 465832120 description: >- A proof-of-concept for using Spectral to drive spelling and grammar checking in OpenAPI documents created: '2022-03-03T18:06:05Z' updated: '2022-10-21T04:52:59Z' language: JavaScript archived: false stars: 2 watchers: 1 forks: 1 owner: api-stuff logo: https://avatars.githubusercontent.com/u/68026188?v=4 repoEtag: '"d095004529f53b53526734d83185037f6cf445c9c0f7ba7fcb696d20b056a58f"' repoLastModified: Fri, 21 Oct 2022 04:52:59 GMT foundInMaster: true category: Description Validators id: e6a9aa0225aacef9eaa6bbdfadfc63ed - source: openapi3 tags repository: https://github.com/paulotrc/contratacaoflow v3: true id: 00b73dd05382feafe8d91ba3c946d72b repositoryMetadata: base64Readme: >- IyBDb250cmF0YWNhb0Zsb3cKRmx1eG8gZGUgb3JxdWVzdHJhw6fDo28gZGUgY29udHJhdGHDp8OjbyBkZSBlbXByw6lzdGltbwo= readmeEtag: '"0b439a499aec7c992ff778f3e5ea40a22cdc3cce"' readmeLastModified: Sun, 05 Mar 2023 20:12:20 GMT repositoryId: 592458787 description: Camunda orquestration flow for loan contracting created: '2023-01-23T19:21:55Z' updated: '2023-02-14T03:16:44Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: paulotrc logo: https://avatars.githubusercontent.com/u/21349130?v=4 license: Apache-2.0 repoEtag: '"280d5e18c7fda1703a820dd02ec2ff03e21c2305c91f72fa2daae34d85228d2c"' repoLastModified: Tue, 14 Feb 2023 03:16:44 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/tada5hi/trapi v3: true id: b61b0e05c005d9efb075eef2edb804e4 repositoryMetadata: base64Readme: >- IyBUUkFQSSDwn6acCgpbIVttYWluXShodHRwczovL2dpdGh1Yi5jb20vVGFkYTVoaS90cmFwaS9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vVGFkYTVoaS90cmFwaS9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbCkKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL1RhZGE1aGkvdHJhcGkvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPVpVSjhGNVRUU1gpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvVGFkYTVoaS90cmFwaSkKWyFbS25vd24gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvVGFkYTVoaS90cmFwaS9iYWRnZS5zdmcpXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIvVGFkYTVoaS90cmFwaSkKCiMjIFdoYXQgaXMgaXQ/CioqVCoqeXBlU2NyaXB0ICoqUioqZXN0ICoqQVBJKiogaXMgYSBjb2xsZWN0aW9uIG9mIHBhY2thZ2VzIHRvIGNyZWF0ZS9nZW5lcmF0ZToKLSBNZXRhZGF0YSBmb3IgUkVTVC1BUElzCi0gU3dhZ2dlciBkb2N1bWVudGF0aW9uCgoqKlRhYmxlIG9mIENvbnRlbnRzKioKCi0gW1BhY2thZ2VzXSgjcGFja2FnZXMpCi0gW0RvY3VtZW50YXRpb25dKCNkb2N1bWVudGF0aW9uKQotIFtMaWNlbnNlXSgjbGljZW5zZSkKCiMjIFBhY2thZ2VzClRoZSByZXBvc2l0b3J5IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6CgotICoqQHRyYXBpL21ldGFkYXRhKio6IEEgcGFja2FnZSBmb3IgZ2VuZXJhdGluZyBtZXRhZGF0YSBpbmZvcm1hdGlvbiBieSBhbmFseXppbmcgcHJlc2VudCBkZWNvcmF0b3JzLgogIFRoZSBtZXRhZGF0YSBjYW4gdGhhbiBiZSB1c2VkIGZvciBnZW5lcmF0aW5nIGEgZG9jdW1lbnRhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBvciB0byBjcmVhdGUgcm91dGUgc2NoZW1hL2hhbmRsaW5nIGZvciBsaWJyYXJpZXMgbGlrZTogZXhwcmVzcywga29hLCBldGMuCi0gKipAdHJhcGkvc3dhZ2dlcioqOiBBIHBhY2thZ2UgdG8gZ2VuZXJhdGUgYSBmdWxseSBmZWF0dXJlZCBkb2N1bWVudGF0aW9uIGFjY29yZGluZyB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGZyb20gZ2l2ZW4gbWV0YWRhdGEuCgojIyBEb2N1bWVudGF0aW9uCgpUbyByZWFkIHRoZSBkb2NzLCB2aXNpdCBbaHR0cHM6Ly90cmFwaS50YWRhNWhpLm5ldF0oaHR0cHM6Ly90cmFwaS50YWRhNWhpLm5ldCkKCiMjIExpY2Vuc2UKCk1hZGUgd2l0aCDwn5KaCgpQdWJsaXNoZWQgdW5kZXIgW01JVCBMaWNlbnNlXSguL0xJQ0VOU0UpLgo= readmeEtag: '"aef84820ffebd461880e9c40d3019fb4f2289e10"' readmeLastModified: Mon, 24 Jun 2024 09:22:00 GMT repositoryId: 526931733 description: >- TRAPI is a collection of packages to create/generate metadata for REST-APis and generate swagger documentations. created: '2022-08-20T13:17:32Z' updated: '2024-06-24T09:22:04Z' language: TypeScript archived: false stars: 2 watchers: 2 forks: 0 owner: tada5hi logo: https://avatars.githubusercontent.com/u/13162758?v=4 license: MIT repoEtag: '"20b1d9e7ce4dbb4b0e1b1885ab319820535e5f0969adbdffd06b263da8e2d772"' repoLastModified: Mon, 24 Jun 2024 09:22:04 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/manuzhang/akka-http-petstore v3: true repositoryMetadata: base64Readme: >- IyBha2thLWh0dHAtcGV0c3RvcmUgWyFbQ29udGludW91cyBJbnRlZ3JhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21hbnV6aGFuZy9ha2thLWh0dHAtcGV0c3RvcmUvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vZ2l0aHViLmNvbS9tYW51emhhbmcvYWtrYS1odHRwLXBldHN0b3JlL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCkK readmeEtag: '"e3ca7355df147b706a5b46774504ae31b2dc3803"' readmeLastModified: Tue, 16 Jul 2024 06:39:09 GMT repositoryId: 326146968 description: >- An akka-http server which implements OpenAPI 3 Spec of https://petstore3.swagger.io. created: '2021-01-02T09:12:55Z' updated: '2024-07-16T06:39:12Z' language: Scala archived: false stars: 2 watchers: 3 forks: 1 owner: manuzhang logo: https://avatars.githubusercontent.com/u/1191767?v=4 license: Apache-2.0 repoEtag: '"c813e2432c6c4d4bbb571c64c2196d829392ff9c4f17433e48ecb1a5737baf50"' repoLastModified: Tue, 16 Jul 2024 06:39:12 GMT foundInMaster: true category: - Server - SDK id: 31e653c1ce6f0fa9b3fc293a6d8974ab - source: openapi3 tags repository: https://github.com/gichure/e-procure v3: true id: 8f0cf8f8364853a7341aeec8fc9712e6 repositoryMetadata: base64Readme: >- WyFbQ0ldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL0dpY2h1cmUvZS1wcm9jdXJlL3RyZWUvbWFpbi5zdmc/c3R5bGU9c3ZnKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvR2ljaHVyZS9lLXByb2N1cmUvdHJlZS9tYWluKQpbIVtDb2RlIEFuYWx5c2lzXShodHRwczovL2dpdGh1Yi5jb20vR2ljaHVyZS9lLXByb2N1cmUvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLWFuYWx5c2lzLnltbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vR2ljaHVyZS9lLXByb2N1cmUvYWN0aW9ucy93b3JrZmxvd3MvY29kZXFsLWFuYWx5c2lzLnltbCkKWyFbUHVibGlzaGluZyBQYWNrYWdlXShodHRwczovL2dpdGh1Yi5jb20vR2ljaHVyZS9lLXByb2N1cmUvYWN0aW9ucy93b3JrZmxvd3MvbWF2ZW4tcHVibGlzaC55bWwvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKV0oaHR0cHM6Ly9naXRodWIuY29tL0dpY2h1cmUvZS1wcm9jdXJlL2FjdGlvbnMvd29ya2Zsb3dzL21hdmVuLXB1Ymxpc2gueW1sKQoKIyBlLXByb2N1cmUKRS1Qcm9jdXJlbWVudCBTeXN0ZW0gdG8gbWVldCB0aGUgbmVlZHMgb2YgYXV0b21hdGlvbiBpbiB0aGUgaW50ZXJuYWwgcHJvY3VyZW1lbnQgcHJvY2VzcyBvZiBhIGNvbXBhbnkuICAKIyMgT3ZlcnZpZXcKMS4gIFRoZSBhcHBsaWNhdGlvbiBoYXMgYmVlbiBkZXZlbG9wZWQgdXNpbmcgbWljcm9zZXJ2aWNlIGFwcHJvYWNoLiAgCjIuICBXZSB1c2UgZ2l0IG1vbm9yZXBvIHdoZXJlIGFsbCBtaWNyb3NlcnZpY2VzIGFyZSB0aGUgbW9kdWxlcyBpbiBhIHNpbmdsZSByZXNwb3NpdG9yeS4KMy4gIEVhY2ggbWljcm9zZXJ2aWNlIHByb2R1Y3Qtc2VydmljZSBhbmQgcmV2aWV3LXNlcnZpY2UgY2FuIGJlIGJ1aWx0IGFuZCBydW4gaW5kZXBlbmRlbnRseSB1c2luZyBNYXZlbi4KNC4gIEVhY2ggbWljcm9zZXJ2aWNlIGNhbiBidWlsZCwgdGVzdCwgcnVuLCBkb2NrZXJpemUsIGRlcGxveSAmIHJ1biBpbmRlcGVuZGVudGx5IHVzaW5nIERvY2tlciwgQ2lyY2xlQ0kgYW5kIEt1YmVybmV0ZXMuCgojIyBUb29scyAmIFRlY2hvbG9naWVzCi0gIFNwcmluZyBCb290IGZvciBCdXNpbmVzcyBTZXJ2aWNlcwotICBNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZQotICBTcHJpbmcgQ2xvdWQgZm9yIE1TQQotICBNeVNRTCBmb3IgUkRCTVMKLSAgQ2FtdW5kYSBmb3IgQlBNTgotICBNb2NraXRvIGZvciBUZXN0aW5nCi0gIERvY2tlciBmb3IgUGFja2FnaW5nIGFuZCBEZXBsb3ltZW50Ci0gIEZseXdheSBmb3IgRGF0YWJhc2UgVmVyc2lvbmluZwotICBBcGFjaGUgS2Fma2EgZm9yIE1lc3NhZ2luZwotICBLZXljbG9hY2sgZm9yIEF1dGhlbnRpY2F0aW9uIGFuZCBBdXRob3JpemF0aW9uCi0gIENpcmNsZUNJIGZvciBDSS9DRAotICBTd2FnZ2VyIGZvciBBUEkgRG9jdW1lbnRhdGlvbgoKCiMjIE1vZHVsZXMKMS4gIFNldHRpbmdzLCBQYXJhbWV0ZXJzIGFuZCBHZW5lcmFsIFNldHVwcwoyLiAgRW1wbG95ZWVzL1N0YWZmIE1hbmFnZW1lbnQKMy4gIEl0ZW1zL0ludmVudG9yeSBNYW5hZ2VtZW50CjQuICBQdXJjaGFzZSBSZXF1aXN0aW9uCjUuICBQdXJjaGFzZSBPcmRlcgo2LiAgVmVuZG9yIE1hbmFnZW1lbnQKNy4gIEJpZCBNYW5hZ2VtZW50CjguICBJbnZvaWNlIE1hbmFnZW1lbnQKOS4gIFBheW1lbnQgUHJvY2Vzc2luZwoxMC4gIEJ1c2luZXNzIFByb2Nlc3MgTWFuYWdlbWVudChXb3JrZmxvdykKCiMjIFNlcnZpY2VzCjEuICBbY29uZmlndXJhdGlvbnMtc2VydmljZV0oY29uZmlndXJhdGlvbnMtc2VydmljZS9SRUFETUUubWQpCjIuICBbZGlzY292ZXJ5LXNlcnZpY2VdKGRpc2NvdmVyeS1zZXJ2aWNlL1JFQURNRS5tZCkKMy4gIFtnYXRld2F5LXNlcnZpY2VdKGdhdGV3YXktc2VydmljZS9SRUFETUUubWQpCjQuICBbc2V0dXBzLXNlcnZpY2VdKHNldHVwcy1zZXJ2aWNlL1JFQURNRS5tZCkKNS4gIFtlbXBsb3llZXMtc2VydmljZV0oZW1wbG95ZWVzLXNlcnZpY2UvUkVBRE1FLm1kKQo2LiAgW3dvcmtmbG93LXNlcnZpY2VdKHdvcmtmbG93LXNlcnZpY2UvUkVBRE1FLm1kKQo3LiAgW25vdGlmaWNhdGlvbnMtc2VydmljZV0obm90aWZpY2F0aW9ucy1zZXJ2aWNlL1JFQURNRS5tZCkKOC4gIFtpbnZlbnRvcnktc2VydmljZV0oaW52ZW50b3J5LXNlcnZpY2UvUkVBRE1FLm1kKQo5LiAgW3N1cHBsaWVycy1zZXJ2aWNlXShzdXBwbGllcnMtc2VydmljZS9SRUFETUUubWQpCjEwLiBbb3JkZXJzLXNlcnZpY2VdKG9yZGVycy1zZXJ2aWNlL1JFQURNRS5tZCkKMTEuIFtpbnZvaWNlcy1zZXJ2aWNlXShpbnZvaWNlcy1zZXJ2aWNlL1JFQURNRS5tZCkKMTIuIFtwYXltZW50cy1zZXJ2aWNlXShwYXltZW50cy1zZXJ2aWNlL1JFQURNRS5tZCkKMTMuIFthdXRoZW50aWNhdGlvbi1zZXJ2aWNlXShhdXRoZW50aWNhdGlvbi1zZXJ2aWNlL1JFQURNRS5tZCkKMTQuIFtmcm9udGVuZC1zZXJ2aWNlXSh1aS1zZXJ2aWNlL1JFQURNRS5tZCkKCiMjIFN0YXJ0aW5nIFVwCkNsb25lIHRoaXMgcmVwb3NpdG9yeS4gIApGcm9tIHRoZSByb290IGZvbGRlciwgcnVuIG12biBjbGVhbiBwYWNrYWdlICAKUnVuIGRvY2tlciBjb21wb3NlIHVwCgojIyBQb3N0bWFuIENvbGxlY3Rpb24KWW91IGNhbiBhY2Nlc3MgdGhlIHBvc3RtYW4gY29sbGVjdGlvbiBbaGVyZV0oKSAgCiMjIyBQcm9jZXNzIEZsb3cKIVtFLVByb2N1cmUgUHJvY2VzcyBGbG93XShyZXNvdXJjZXMvaW1hZ2VzL3Byb2Nlc3NfZmxvdy5qcGcpCgojIyMjIENvbnRyaWJ1dGlvbnMKLSAgW1BhdWwgR2ljaHVyZV0oaHR0cHM6Ly9saW5rZWRpbi5jb20vaW4vZ2ljaHVyZSkuIAoKIyMjIyBMaWNlbnNlCltNSVRdKExJQ0VOU0UubWQpCgojIyMjIElzc3VlcyBSZXBvcnRpbmcKSXNzdWVzIGFyZSB0byBiZSByZXBvcnRlZCBpbiBbdGhpcyBmb3JtYXRdKC5naXRodWIvSVNTVUVfVEVNUExBVEUvYnVnX3JlcG9ydC5tZCkKCiMjIyMgRGlzY2xhaW1lcgpUaGlzIHByb2plY3QgaXMgcHVyZWx5IGZvciBsZWFybmluZyBwdXJwb3NlcyBhbmQgdGh1cyBpdCBpcyBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4gIAo= readmeEtag: '"8c17299ae44326eea224f17b9934d01e6629afe8"' readmeLastModified: Tue, 23 Apr 2024 19:06:31 GMT repositoryId: 489591997 description: >- E-Procurement System to meet the needs of automation in the internal procurement process of a company. Built on Springboot using micro-services Archicture created: '2022-05-07T06:39:29Z' updated: '2024-04-23T19:06:48Z' language: Java archived: false stars: 2 watchers: 2 forks: 3 owner: Gichure logo: https://avatars.githubusercontent.com/u/6824034?v=4 license: MIT repoEtag: '"2a46882c9301b0c30e151971c1e0b54fb509c6ddda71da06e1c5068e8e28df38"' repoLastModified: Tue, 23 Apr 2024 19:06:48 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/egoodhall/openapi-tooling v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXRvb2xpbmcgIVtCdWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL2VtbTAzNS9vcGVuYXBpLXRvb2xpbmcvd29ya2Zsb3dzL0J1aWxkL2JhZGdlLnN2ZykK readmeEtag: '"a5566880aaf35c4575b8123f0c4c740237ba2f9b"' readmeLastModified: Tue, 14 Mar 2023 22:07:46 GMT repositoryId: 278534292 description: Java tooling for OpenAPI created: '2020-07-10T04:02:43Z' updated: '2024-05-01T08:02:44Z' language: Java archived: false stars: 2 watchers: 2 forks: 0 owner: egoodhall logo: https://avatars.githubusercontent.com/u/13439972?v=4 license: MIT repoEtag: '"45e1baca7d909a28e8f1987716e0b57ec9c9f6923d5333a915937679dcdad583"' repoLastModified: Wed, 01 May 2024 08:02:44 GMT foundInMaster: true category: - Low-level Tooling - SDK - Parsers id: 6c7ef7e719292d4c7dfd7cf06e78b634 oldLocations: - https://github.com/emm035/openapi-tooling - source: openapi3 tags repository: https://github.com/sky0621/cv-admin v3: true id: a6100588c4145919226457bbbf7afee3 repositoryMetadata: base64Readme: >- IyBjdi1hZG1pbgoKR2l0SHViIFBhZ2VzIOOBq+OBpuWFrOmWi+OBl+OBpuOBhOOCiyBbQ3VycmljdWx1bS1WaXRhZV0oaHR0cHM6Ly9za3kwNjIxLmdpdGh1Yi5pby9jdi8pIOOBruODh+ODvOOCv+OCveODvOOCueOCkueuoeeQhuOBmeOCi+OAggoK44OH44O844K/44K944O844K5566h55CG44Gr44GvIFtTUUxpdGVdKGh0dHBzOi8vd3d3LnNxbGl0ZS5vcmcvaW5kZXguaHRtbCkg44KS5L2/44GG44CCCgrjg4fjg7zjgr/jgr3jg7zjgrnjgbjjga7jgqLjgq/jgrvjgrnnlKjjgasgV2ViIEFQSSDjgqjjg7Pjg4njg53jgqTjg7Pjg4jjgpLnlKjmhI/jgIIKCkFQSeWumue+qeOBryBbT3BlbkFQSSB2M10oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKSDjgavmupbmi6DjgIIKCllhbWzjga/jgIFb44GT44KMXSguL3NjaGVtYS9vcGVuYXBpLnltbCkg77yI44OX44Os44OT44Ol44O855So44GrZG9ja2VyZmlsZeabuOOBk+OBhuOBqOaAneOBo+OBn+OBkeOBqUlEReOBruODl+ODrOODk+ODpeODvOapn+iDveOBp+WNgeWIhuOBoOOBo+OBn+OBruOBp+ecgeeVpe+8ieOAggoKW3N3YWdnZXIuaW/jga7jgqjjg4fjgqPjgr9dKGh0dHBzOi8vZWRpdG9yLW5leHQuc3dhZ2dlci5pby8pIOOBq+iyvOOBo+OBpuOCguOBhOOBhOOAggoKIVvjgZPjgpPjgarmhJ/jgZhdKHBpY3MvY3ZhcGkucG5nKQoKT29wcy4g5pyq5a6f6KOF44GM55uu56uL44Gk44O744O744O744CCCgojIyBmdW5jdGlvbgoK4oC744Ot44O844Kr44Or5a6f6KGM44GvIFtnbyAodjEuMTkpXShodHRwczovL2dvLmRldi8pIOOCpOODs+OCueODiOODvOODq+a4iOOBv+OBjOWJjeaPkOOAggoKY3YtYWRtaW4g44OH44Kj44Os44Kv44OI44Oq55u05LiL44Gn5Lul5LiL44KS5Y+p44GP44CCCgojIyMgc2VydmVyCgrjg63jg7zjgqvjg6vjgadBUEnjgrXjg7zjg5Djg7zotbfli5XjgIIKCmBgYApnbyBydW4gc3JjL21haW4uZ28gc2VydmVyCmBgYAoKIyMjIG1pZ3JhdGUKCltlbnQuKE9STSldKGh0dHBzOi8vZW50Z28uaW8vamEvKSDjgaflrprnvqnjgZfjgZ/jg4bjg7zjg5bjg6vlrprnvqnjgpIgW1NRTGl0ZV0oaHR0cHM6Ly93d3cuc3FsaXRlLm9yZy9pbmRleC5odG1sKSDjg5XjgqHjgqTjg6vjgavlj43mmKDjgZnjgovjgIIKCmBgYApnbyBydW4gc3JjL21haW4uZ28gbWlncmF0ZQpgYGAKCiMjIyBleHBvcnQKCkFQSeOCteODvOODkOODvOOBq+OCouOCr+OCu+OCueOBl+OBpuWPluW+l+OBl+OBn+ODh+ODvOOCv+OCveODvOOCueOCkkpTT07lvaLlvI/jgafmjIflrprlhYjjgavjgqjjgq/jgrnjg53jg7zjg4jjgZnjgovjgIIKCuOBk+OCjOOCkuS9v+OBo+OBpiBbY3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9za3kwNjIxL2N2KSDjg6rjg53jgrjjg4jjg6rjga7jg5Xjg63jg7Pjg4jjgqjjg7Pjg4nmqZ/og73jgYzjgq3jg6Pjg6rjgqLjgrfjg7zjg4jjga5XZWLjg5rjg7zjgrjjgpLooajnpLrjgZnjgovjgIIKCuKAu0FQSeOCteODvOODkOODvOOBjOi1t+WLleOBl+OBpuOBhOOCi+OBk+OBqOOBjOWJjeaPkOOAggoKYGBgCmdvIHJ1biBzcmMvbWFpbi5nbyBleHBvcnQgLS11c2VyaWQg44CQ44Om44O844K244O8SUTjgpLmjIflrprjgJEgLS1kaXIg44CQ5Ye65Yqb5YWI44OR44K544KS5oyH5a6a44CRCmBgYAoKIyMjIHN1Ym1pc3Npb24KCkFQSeOCteODvOODkOODvOOBq+OCouOCr+OCu+OCueOBl+OBpuWPluW+l+OBl+OBn+ODh+ODvOOCv+OCveODvOOCueOCkkV4Y2Vs5b2i5byP44Gn44Ko44Kv44K544Od44O844OI44GZ44KL44CCCgrigLvntJnlqpLkvZPjgarjgYTjgZdFeGNlbOODleOCoeOCpOODq+OBp+OBruaPkOWHuuOCkuaxguOCgeOCieOCjOOBn+aZgueUqOOAggoK4oC7QVBJ44K144O844OQ44O844GM6LW35YuV44GX44Gm44GE44KL44GT44Go44GM5YmN5o+Q44CCCgpgYGAKZ28gcnVuIHNyYy9tYWluLmdvIHN1Ym1pc3Npb24gLS11c2VyaWQg44CQ44Om44O844K244O8SUTjgpLmjIflrprjgJEKYGBgCgrigLvmnKrjgrPjg5/jg4Pjg4jjga7jgIxgLnByaXZhdGUuaW5pYOOAjeODleOCoeOCpOODq++8iOS7peS4i+OBruOCiOOBhuOBquWGheWuue+8ieOCkuODl+ODreOCuOOCp+OCr+ODiOODq+ODvOODiOebtOS4i+OBq+e9ruOBj+OAggoKYGBgCnBhc3N3b3JkID0geHh4eHh4eHh4eAprYW5hID0g44Ok44Oe44OA44CA44K/44Ot44KmCm5hbWUgPSDlsbHnlLDjgIDlpKrpg44KbWFpbCA9IGhvZ2Vob2dlQGV4YW1wbGUuY29tCmVkdWNhdGlvbmFsQmFja2dyb3VuZCA9IDIwWFjlubQz5pyI44CA4peL4peL5aSn5a2m4pah4pah5a2m6YOo44CA5Y2S5qWtCmNpdHlPZlJlc2lkZW5jZSA9IOKXi+KXi+ecjOKWoeKWoeW4ggpuZWFyZXN0U3RhdGlvbiA9IEpS5p2x5pel5pys44CA4peL4peL6aeFCmN2V2ViID0gaHR0cHM6Ly9za3kwNjIxLmdpdGh1Yi5pby9jdi8KY3ZBZG1pbiA9IGh0dHBzOi8vZ2l0aHViLmNvbS9za3kwNjIxL2N2LWFkbWluI3N1Ym1pc3Npb24KYGBgCgojIyMjIEV4Y2Vs44K144Oz44OX44OrCgpzYW1wbGUvc2tpbGxfc2hlZXQueGxzeAoKIVtzMV0ocGljcy9za2lsbHNoZWV0MDEucG5nKQohW3MxXShwaWNzL3NraWxsc2hlZXQwMi5wbmcpCiFbczFdKHBpY3Mvc2tpbGxzaGVldDAzLnBuZykKIVtzMV0ocGljcy9za2lsbHNoZWV0MDQucG5nKQohW3MxXShwaWNzL3NraWxsc2hlZXQwNS5wbmcpCgrjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIDjg7sKCuOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgOODuwoK44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44O7CgojIyBlbnYKCiMjIyBPUwoKYGBgCk1hYyBCb29rIEFpciBNMiAyMDIyClNvbm9tYSAxNC40LjEKYGBgCgojIyMgZ28KCmBgYArina8gZ28gdmVyc2lvbgpnbyB2ZXJzaW9uIGdvMS4yMi4wIGRhcndpbi9hcm02NApgYGAKCiMjIHNldHVwCgojIyMgcHJvamVjdAoKYGBgCiQgZ28gbW9kIGluaXQgZ2l0aHViLmNvbS9za3kwNjIxL2N2LWFkbWluCmdvOiBjcmVhdGluZyBuZXcgZ28ubW9kOiBtb2R1bGUgZ2l0aHViLmNvbS9za3kwNjIxL2N2LWFkbWluCmBgYAoKIyMjIG9wZW4tYXBpLWNvZGVnZW4KCmh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkKCmh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbgoKYGBgCmdvIGluc3RhbGwgZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9jbWQvb2FwaS1jb2RlZ2VuQGxhdGVzdApgYGAKCiMjIyBlbnQKCmZyb20gZW50aXR5IG1vZGVsIHRvIGRiIHRhYmxlCgpgYGAKY2Qgc3JjL2VudApgYGAKCmBgYApnbyBydW4gLW1vZD1tb2QgZW50Z28uaW8vZW50L2NtZC9lbnQgbmV3IFVzZXIgVXNlckFjdGl2aXR5IFVzZXJRdWFsaWZpY2F0aW9uIFVzZXJDYXJlZXJHcm91cCBVc2VyQ2FyZWVyIFVzZXJDYXJlZXJEZXNjcmlwdGlvbiBVc2VyQ2FyZWVyUGVyaW9kIENhcmVlclRhc2sgQ2FyZWVyU2tpbGxHcm91cCBDYXJlZXJTa2lsbCBVc2VyTm90ZSBVc2VyTm90ZUl0ZW0gU2tpbGxUYWcgU2tpbGwKYGBgCgojIyMgY29icmEKCmh0dHBzOi8vZ2l0aHViLmNvbS9zcGYxMy9jb2JyYQoKaHR0cHM6Ly9naXRodWIuY29tL3NwZjEzL2NvYnJhLWNsaS9ibG9iL21haW4vUkVBRE1FLm1kCgpgYGAKZ28gaW5zdGFsbCBnaXRodWIuY29tL3NwZjEzL2NvYnJhLWNsaUBsYXRlc3QKYGBgCgpgYGAKY29icmEtY2xpIGluaXQKYGBgCgojIyMjIGFkZCBjb21tYW5kCgpgYGAKY2Qgc3JjCmBgYAoKYGBgCmNvYnJhLWNsaSBhZGQgc2VydmVyCmBgYAoKIyMjIG96em8tdmFsaWRhdGlvbgoKaHR0cHM6Ly9naXRodWIuY29tL2dvLW96em8vb3p6by12YWxpZGF0aW9u readmeEtag: '"434739dce379273c4194e6e113787154ddef2fa3"' readmeLastModified: Mon, 29 Apr 2024 12:42:33 GMT repositoryId: 533311575 description: CVのデータソース管理、Web API提供、Excel出力 created: '2022-09-06T12:24:32Z' updated: '2024-05-07T08:02:17Z' language: Go archived: false stars: 2 watchers: 2 forks: 0 owner: sky0621 logo: https://avatars.githubusercontent.com/u/15807041?v=4 license: MIT repoEtag: '"3f7b84b2cd9dae46d7fb1c270dfbcbfa4cffe9f60ee1e783703e28daab3fd003"' repoLastModified: Tue, 07 May 2024 08:02:17 GMT category: Code Generators foundInMaster: true - source: openapi3 tags repository: https://github.com/itzlyg/iot v3: true id: 246f8e81b414ff1c8017ebcd15da30ac repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9TcHJpbmclMjBCb290LTIuNy4xOC1ibHVlLnN2ZyIgYWx0PSJEb3dubG9hZHMiPgogPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvVnVlLTIuNi4xNC1ibHVlLnN2ZyIgYWx0PSJEb3dubG9hZHMiPgo8L3A+CgojIyAg566A5LuLCuacrOmhueebruaYr+S4gOS4quWfuuS6jmBKYXZhYGBWdWVg5byA5Y+R55qE54mp6IGU572R5Z+656GA5bmz5Y+w77yM5Y+v5Lul5b+r6YCf5a6e546w56Gs5Lu26K6+5aSH5o6l5YWl44CCCgoqIEphdmEg5ZCO56uv77yaYG1hc3RlcmAg5YiG5pSv5Li6IEpESyA4ICsgU3ByaW5nIEJvb3QgMi43LjE4Ciog566h55CG5ZCO5Y+w55qE55S16ISR56uv77yaVnVlMiDmj5DkvpsgYGVsZW1lbnQtdWlgIOeJiOacrAoqIOWQjuerr+mHh+eUqCBTcHJpbmcgQm9vdCDlpJrmqKHlnZfmnrbmnoTjgIFNeVNRTCArIE15QmF0aXMgUGx1c+OAgVJlZGlzICsgUmVkaXNzb27vvIxWZXJ0LngKKiDmlK/mjIHlpJrnp5/miLfmqKHlvI8KKiDnu5/kuIDmjqXlj6PmjqXmlLblkozov5Tlm57moLzlvI/vvIzkvb/nlKhPcGVuQXBpIDMra25pZmU0auS9nOS4uuaOpeWPo+aWh+aho+W3peWFtwoqIOaXtuW6j+aVsOaNruW6k+S9v+eUqFREZW5naW5l77yM5Y+v5Y+m6KGM5omp5bGVCiog5raI5oGv6Zif5YiX5bey57uP5a6e546wUm9ja2V0TVHlkozln7rkuo52ZXJ0eOeahGV2ZW50YnVz77yM5Y+v5Lul6Ieq6KGM5qC55o2u6ZyA6KaB5omp5bGV5L2/55So5YW25LuW5Lit6Ze05Lu277yaS2Fma2HjgIFSYWJiaXRNUeetiQoqIOWunuaXtumAmuS/oeS9v+eUqHdlYnNvY2tldO+8jOWfuuS6jnZlcnQueOahhuaetuWunueOsAoqIOmbhuaIkOS4g+eJm+S6keS6keWtmOWCqOacjeWKoe+8jOmihOeVmeWFtuS7luacjeWKoeWVhuaOpeWPo++8jOiHquihjOWunueOsOaJqeWxlQoKIyMjIyDkuqflk4HnibnmgKcKCi0g6K6+5aSH5o6l5YWl77ya5pSv5oyB5o6l5YWl6KGM5Lia5qCH5YeG54mp6IGU572R5Y2P6K6u77yIbXF0dOOAgWh0dHDjgIFtb2RidXPnrYnvvInvvIzlrp7njrDmtbfph4/orr7lpIfmjqXlhaXvvIzkuZ/lj6/ku6XpgJrov4foh6rlrprkuYnnmoTmlrnlvI/mjqXlhaXoh6rlrprkuYnljY/orq7jgIIKLSDnianmqKHlnovvvJrmlK/mjIHnianmqKHlnovvvIzlj6/ku6XmnInmlYjnmoTnrqHnkIborr7lpIfnmoTlsZ7mgKfjgIHlip/og73jgIHkuovku7bjgIIKLSDkuqflk4HjgIHorr7lpIfliIbnu4TmpoLlv7XvvJrmlK/mjIHorr7lpIfmoLnmja7lupTnlKjlnLrmma/lkoznlKjmiLfmnYPpmZDlrp7njrDpmpTnprvvvIzmlrnkvr/nlKjmiLfnu5/kuIDnrqHnkIbjgIIKLSDmnYPpmZDnrqHnkIbvvJrns7vnu5/mlK/mjIHln7rmnKznmoTop5LoibLnrqHnkIbvvIzmlK/mjIHnlKjmiLfjgIHop5LoibLjgIHoj5zljZXjgIHmjInpkq7ln7rmnKzmnYPpmZDlip/og73jgIIKLSDoh6rkuLvlj6/mjqfvvJrlj6/mnKzlnLDjgIHnp4HmnInkupHjgIHlhazmnInkupHpg6jnvbLjgIIKLSDml7bluo/mlbDmja7lupPvvJrmlbDmja7kuIvlj5HjgIHkuIrmiqXmlbDmja7ph4fnlKjmlbDluo/mlbDmja7lupPvvIzmlK/mjIHmtbfph4/lubblj5HjgIIKLSDlubPlj7Dln7rluqfvvJrlj6/kvZzkuLrnianogZTnvZHooYzkuJrop6PlhrPmlrnmoYjlubPlj7Dln7rluqfvvIzmlK/mjIHlpJrkuKrooYzkuJrop6PlhrPmlrnmoYjlhbHnlKjkuIDkuKrnianogZTnvZHlubPlj7Dln7rluqfvvIzkuLrkvIHkuJrlh4/lsJHmiJDmnKzvvIzojrflj5bmm7TlpJrnmoTooYzkuJrnu4/pqozlkozmlrnmoYjjgIIKCiMjIyMg5YW25LuWCuKRoCDku6PnoIHmlbTmtIHjgIHmnrbmnoTmlbTmtIHvvIzpgbXlvqrjgIrpmL/ph4zlt7Tlt7QgSmF2YSDlvIDlj5HmiYvlhozjgIvop4TojIPjgIIKCuKRoSDlt6Xlhbfnsbvlj6rkvp3otZZBcGFjaGXnm7jlhbPnmoTvvIzmiJbnroDljZXoh6rooYznvJblhpnvvIzlh4/lsJHnrKzkuInmlrnkvp3otZbvvIzpgb/lhY3pq5jljbHmvI/mtJ7jgIIKCuKRoiDnu5/kuIDmjqXlj6PmjqXmlLblkozov5Tlm57moLzlvI8KCgojIyMjIOeJqeiBlOe9kemhueebriDmqKHlnZfnu4TmiJAKCiMjIyMjIHByb3RvY29sIOWNj+iuruWxguS7o+eggQotIDHjgIFiYXNlIOWNj+iuruWfuuehgOaKveWPlgotIDLjgIFzZXJ2aWNlIOWunueOsOWNj+iurue7hOS7tu+8jOWunueOsOaVtOS4qumAmuiur+mAmumBk+OAgee8luino+egge+8jOWujOaIkOaVsOaNrueahOa1gei9rOOAguaPkOS+m+aWueazlee7meS4muWKoeWxguiwg+eUqAotIDPjgIF0Y3DjgIFodHRw44CBd3PjgIFtcXR05piv5YW35L2T5Y2P6K6u55qE5a6e546w5YyFCgojIyMjIyBtb2R1bGUg5oq96LGh5Ye65Y+v5Lul5aSa5a6e546w5pa55byP55qE57uE5Lu2Ci0gMeOAgW9zcyDmlofku7blrZjlgqgKLSAy44CBbm90aWZ5IOWRiuitpumAmuefpQotIDPjgIFzaW5rIOeJqeaooeWei+aVsOaNruiQveWcsOWIsOaVsOaNruW6kwoKIyMjIyMgYWNoaWV2ZSDnlKjmnaXlrp7njrAgbW9kdWxl57uE5Lu255qECi0gMeOAgW1xLXZlcnR4IOeUqHZlcnQueCDmnaXlrp7njrDmtojmga/pmJ/liJcKLSAy44CBcm9ja2V0LW1xIHJvY2tldE1x55qE5a6e546wCi0gM+OAgW9zcy1xbiDkuIPniZvlrp7njrDlrZjlgqjmlrnmoYgKLSA044CBc2luay10ZCBURGVuZ2luZSDlr7norr7lpIfkuIrmiqXkuIvlj5HmlbDmja7orrDlvZXjgIHorr7lpIfnmoTlsZ7mgKfnrYnmlbDmja7ph4/lvojlpKfnmoTlnLrmma8KLSA144CBc2luay1teXNxbCBteXNxbCDnmoTmlrnlvI/lrp7njrDmlbDmja7okL3lnLAKCiMjIyMjIGJpeiDkuJrliqHlsYIKLSAx44CBYmFzZSDlt6XlhbfnsbvvvJvln7rnoYDmnprkuL7lgLzjgIF2b+eahOWumuS5ie+8m+ezu+e7n+mFjee9rgotIDLjgIFzZXJ2aWNl77yM5YW35L2T55qE5Lia5Yqh77yM5oq956a75aSE55CG77yM5Y+v5Lul5L6b5aSa56uv6LCD55So5a6e546w77yad2Vi44CBb3BlbkFwaeetiQotIDPjgIFvcGVuLWFwaSDlr7nnrKzkuInmlrnlr7nmjqXmj5DkvpvmjqXlj6MKLSAz44CBdGVzdCDmtYvor5Xku6PnoIEKLSA044CBd2ViIHdlYuerr+eahOaOpeWPowoKIyMjIyDlip/og73ngrnvvJoKLSAx44CB5pSv5oyBbXF0dOOAgWh0dHDjgIF0Y3DjgIF3ZWJzb2NrZXTnrYnljY/orq7pgJrpgZMKLSAy44CB5a6e546w54mp6IGU572R6K6+5aSH5Z+65pys5Y2P6K6u77yM5a6e546w5paw6K6+5aSH5o6l5YWl5pe25YCZ77yM5Y+v5Lul5Yip55So5o+S5ouU5byP55qE5pa55byP5b+r6YCf5o6l5YWl77yM5paw6K6+5aSH6Kej5p6Q5pa55byP5Y+v5Lul55SoYGpzYCDmiJbogIVgcHl0aG9uYOeahOaWueW8j+W/q+mAn+WunueOsO+8jOWHj+WwkeW8gOWPkeaIkOacrAotIDPjgIHlrp7njrDorr7lpIflsZ7mgKflkozlip/og73nmoToh6rlrprkuYnvvIzlv6vpgJ/lrp7njrDorr7lpIfnmoTlip/og70KLSA044CBd2Vic29ja2V05o6o6YCB6K6+5aSH5a6e5pe25raI5oGv5Yiw6aG16Z2iCi0gNeOAgeiuvuWkh+WRiuitpuezu+e7nwotIDbjgIHorrDlvZXmk43kvZzml6Xlv5flkozmlbDmja7lvILliqjml6Xlv5cKLSA344CB55So5oi35p2D6ZmQ562J5Z+656GA5Yqf6IO9Ci0gOOOAgW9wZW4gYXBp5byA5pS+CgojIyMjIOS6p+WTgeWKn+iDve+8mgp8IOWKn+iDvSAgICAgfCDmj4/ov7AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IOmmlumhtSAgICAgfCDlpKflsY/nnIvmnb/lsZXnpLrvvIzorr7lpIfov5DooYznirbmgIHjgIHmlbDph4/jgIHlkYrorabnrYnln7rmnKzkv6Hmga8gfAp8IOe7hOe7h+euoeeQhiB8IOeUqOaIt+euoeeQhuOAgemDqOmXqOeuoeeQhuOAgeinkuiJsueuoeeQhuOAgeiPnOWNleeuoeeQhiAgICAgICAgICAgfAp8IOmAmuS/oeWNj+iuriB8IOa2iOaBr+i9rOWMluWZqOOAgemAmuS/oeWNj+iurueuoeeQhiAgICAgICAgICAgICAgICAgICAgICAgICB8Cnwg5Lqn5ZOB566h55CGIHwg5Lqn5ZOB566h55CG44CB5Lqn5ZOB5YiG57G7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCDorr7lpIfnrqHnkIYgfCDorr7lpIfliIbnu4TjgIHorr7lpIfnrqHnkIbjgIHorr7lpIfor6bmg4UgICAgICAgICAgICAgICAgICAgICB8Cnwg5Zy65pmv6IGU5YqoIHwg5Zy65pmv6IGU5Yqo566h55CGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCDlkYrorabpgJrnn6UgfCDlkYrorabmqKHmnb/jgIHlkYrorabmuKDpgZPjgIHmtojmga/nrqHnkIYgICAgICAgICAgICAgICAgICAgICB8CgoKCgojIyMjIOWFtuS7lgpb5ryU56S65Zyw5Z2AXShodHRwOi8vd3d3LmppdWJhbmtlamkuY24vd2ViX2lvdCkKCuW4kOWPty/lr4bnoIHvvJoKYDE4ODEyMzQ1Njc4YCBgSW9AdDAzMTVKYiFgCgoqKuWmguacieeWkemXruaIluiAhemcgOimgea6kOeggeeahOWPr+S7pemaj+aXtuiBlOezu++8mioqCgo8aW1nIHNyYz0iLi9pb3QtYXAvZG9jL2piX3FyY29kZS5qcGciIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIi8+Cgoo5omr56CB5oiW6ICF55u05o6l5pCc57SiYGppdWJhbnl1bl9pb3Rg5re75Yqg5b6u5L+hKQ== readmeEtag: '"52dd407fd4aa30b89a9ce917396fe0180edacd3c"' readmeLastModified: Fri, 09 Aug 2024 13:40:17 GMT repositoryId: 771891137 description: 物联网平台 物联网应用 物联网 智慧平台 created: '2024-03-14T06:23:53Z' updated: '2024-08-30T07:33:28Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: itzlyg logo: https://avatars.githubusercontent.com/u/17636877?v=4 license: GPL-3.0 repoEtag: '"70b29adf2493715cca013f12080d6b334faab621254eb407671edd1265c20e7e"' repoLastModified: Fri, 30 Aug 2024 07:33:28 GMT category: Code Generators foundInMaster: true - source: openapi3 tags repository: https://github.com/tourhunter-com/apidocs-tourhunter-com v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPlRvdXJIdW50ZXIgQVBJIERvY3VtZW50YXRpb248L2gxPgoKTGl2ZTogaHR0cHM6Ly9hcGlkb2MudG91cmh1bnRlci5jb20KClNwZWNpZmljYXRpb246IGh0dHBzOi8vYXBpZG9jLnRvdXJodW50ZXIuY29tL29wZW5hcGkueWFtbAoKVGhlIHJlcG9zaXRvcnkgaXMgYSBwYXJ0IG9mIHRoZSBbVG91ckh1bnRlciBPcmdhbml6YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS90b3VyaHVudGVyLWNvbSkuCgpUaGlzIHByb2plY3QgYW5kIGV2ZXJ5b25lIHBhcnRpY2lwYXRpbmcgaW4gaXQgaXMgZ292ZXJuZWQgYnkgdGhlIFtDb2RlIG9mIENvbmR1Y3RdKENPREVfT0ZfQ09ORFVDVC5tZCkuCgojIyBDb250cmlidXRpbmcKClBsZWFzZSByZWFkIHRocm91Z2ggb3VyIFtDb250cmlidXRpbmcgR3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKS4KCiMjIE9wZW5BUEkgU3BlY2lmaWNhdGlvbgoKaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnCgpodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbgoKaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8KCiMjIyBSZXNvbHZpbmcgbG9jYWwgZXJyb3JzCgpodHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL3dpa2kvSG93LXRvLXJ1bi10aGluZ3MtbG9jYWxseQoKIyMgTGljZW5zZQoKVGhpcyBwcm9qZWN0IGlzIG9wZW4gc291cmNlIGFuZCBhdmFpbGFibGUgZnJlZWx5IHVuZGVyIHRoZSBbTUlUIGxpY2Vuc2VdKExJQ0VOU0UubWQpLgo= readmeEtag: '"ccfc3f18acd69afb7df2d3e4564c3cc05d0414fb"' readmeLastModified: Thu, 21 May 2020 04:10:30 GMT repositoryId: 210099891 description: TourHunter API Documentation created: '2019-09-22T06:14:43Z' updated: '2020-05-21T04:10:38Z' language: HTML archived: false stars: 2 watchers: 4 forks: 1 owner: tourhunter-com logo: https://avatars.githubusercontent.com/u/53857976?v=4 license: MIT repoEtag: '"5a452053de2924876c1d7d2f143b5badb7fd12f48f514361933effe6b5fa675f"' repoLastModified: Thu, 21 May 2020 04:10:38 GMT foundInMaster: true category: - Server - Parsers id: 641793721f8befe318a7aef957d95923 - source: openapi3 tags repository: https://github.com/clightning4j/jrest v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8aDE+OnphcDogSlJlc3QgOnphcDo8L2gxPgoKICA8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL2NsaWdodG5pbmc0ai9pY29ucy9yYXcvbWFpbi9vcmcvaWNfbGF1bmNoZXIvcmVzL21pcG1hcC14eHhoZHBpL2ljX2xhdW5jaGVyLnBuZyIgLz4KCiAgPHA+CiAgICA8c3Ryb25nPiA6emFwOiBKUmVzdDogQSBwbHVnaW4gZm9yIGMtbGlnaHRuaW5nIHRvIGV4cG9zZSB0aGUgQVBJIG92ZXIgcmVzdCA6emFwOiA8L3N0cm9uZz4KICA8L3A+CgogIDxwPgogICAgPGltZyBhbHQ9IkdpdEh1YiBXb3JrZmxvdyBTdGF0dXMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvd29ya2Zsb3cvc3RhdHVzL2NsaWdodG5pbmc0ai9qcmVzdC9JbnRlZ3JhdGlvbiUyMHRlc3Rpbmc/c3R5bGU9ZmxhdC1zcXVhcmUiPgogICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jbGlnaHRuaW5nNGovSlJQQ2xpZ2h0bmluZy9kaXNjdXNzaW9ucyI+CiAgICAgIDxpbWcgYWx0PSJHaXRIdWIgV29ya2Zsb3cgU3RhdHVzIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY3Vzc2lvbi1Kb2luLWdyZWVuIj4KICAgICA8L2E+CiAgPC9wPgo8L2Rpdj4KCiMjIFRhYmxlIG9mIENvbnRlbnQKCi0gSW50cm9kdWN0aW9uCi0gSW5zdGFsbAotIFBsdWdpbiBwYXJhbWV0ZXIKLSBFeGFtcGxlCi0gV2hvCi0gU3VwcG9ydAotIExpY2Vuc2UKCiMjIEludHJvZHVjdGlvbgoKQSBKYXZhIHBsdWdpbiBmb3IgYy1saWdodG5pbmcgdG8gZXhwb3NlIHRoZSBBUEkgb3ZlciByZXN0IQoKIyMgSW5zdGFsbAoKSmF2YSBwcm9kdWNlcyBhIGphciBhbmQgYy1saWdodG5pbmcgbmVlZHMgYSBiYXNoIHNjcmlwdCB0byBydW4gaXQhIApUaGUgZ3JhZGxlIHNjcmlwdCBjb21waWxlcyB0aGUgcGx1Z2luIGFuZCBnZW5lcmF0ZSBhIGJhc2ggc2NyaXB0IHdpdGggdGhlIGNvbW1hbmQgYC4vZ3JhZGxldyBjcmVhdGVSdW5uYWJsZVNjcmlwdGAKCkFmdGVyIHRoZSBncmFkbGUgcHJvY2VzcywgeW91IGhhdmUgdGhlIGphciBpbnNpZGUgdGhlIGBidWlsZC9saWJzL2xpZ2h0bmluZy1yZXN0LmphcmAgYW5kIHRoZSBzY3JpcHQgYGxpZ2h0bmluZy1yZXN0LWdlbi5zaGAgCmluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC4KCiMjIyBMaW5rIHRoZSBwbHVnaW4gaW4gY29yZSBsaWdodG5pbmcKCllvdSBjYW4gcnVuIHRoZSBwbHVnaW4gaW4gYSBkaWZmZXJlbnQgd2F5CgpZb3UgY2FuIGluc2VydCB0aGUgcGF0aCBvZiBmaWxlIGBsaWdodG5pbmctcmVzdC1nZW4uc2hgIGluc2lkZSB0aGUgbGlnaHRuaW5nIGNvbmYgZmlsZSB3aXRoIHRoZSB0YWcgYHBsdWdpbj1ZT1VSX1BBVEhgIGFuZCBydW4gbGlnaHRuaW5nZC4gSW4gdGhpcyBjYXNlLCB5b3UgY2FuIGluc2VydCB0aGUgcG9ydCB0aGF0IHlvdSB3YW50IHRoZSBzZXJ2ZXIgcnVubmluZyB3aXRoIHRoZSBwcm9wcmlldHkgYGxpZ2h0bmluZ2QgLS1qcmVzdC1wb3J0PTcwMDBgLgoKSW4gYWRkaXRpb24sIHlvdSBjYW4gcnVuIHRoZSBwbHVnaW4gYWxzbyBkeW5hbWljYWxseSBmcm9tIGBsaWdodG5pbmctY2xpIHBsdWdpbiBzdGFydCBZT1VSX1BBVEhgIGFuZCB0aGUgc2VydmVyIHJ1bnMgb24gdGhlIHBvcnQgYDcwMDBgIGJ5IGRlZmF1bHQuCgojIyBQbHVnaW4gcGFyYW1ldGVyCgotIGpyZXN0LXBvcnQ6IHRoZSBwb3J0IHdoZXJlIHlvdSB3YW50IHRvIHJ1biB0aGUgcGx1Z2luCi0ganJlc3Qtb24tc3RhcnR1cDogcnVuIHRoZSBzZXJ2ZXIgYXQgc3RhcnR1cCB3aXRoIGNvcmUgbGlnaHRuaW5nCgojIyBFeGFtcGxlCgoKV2hlbiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIHBsdWdpbiwgeW91IGNhbiBydW4gaXQgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQ+CgotIGBsaWdodG5pbmctY2xpIHJlc3RzZXJ2ZXIgc3RhcnRgOiBUaGlzIGNvbW1hbmQgcnVuIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjYWxsZXIKICB3aWxsIHJlY2VpdmUgZmVlZGJhY2sgbGlrZSB0aGlzOgoKYGBganNvbgp7CiAgInN0YXR1cyI6ICJydW5uaW5nIiwKICAicG9ydCI6IDcwMDAKfQpgYGAKCllvdSBjYW4gdmlzaXQgdGhlIGRvY3VtZW50YXRpb24gb2Ygc2VydmVyIHJlc3QgYXQgbGluawpbaHR0cDovL2xvY2FsaG9zdDo3MDAwL3VpXShodHRwOi8vbG9jYWxob3N0OjcwMDAvdWkpIG9uIHlvdXIKYnJvd3NlcgoKLSBgbGlnaHRuaW5nLWNsaSByZXN0c2VydmVyIHN0b3BgOiBUaGlzIGNvbW1hbmQgc3RvcCB0aGUgc2VydmVyIGFuZCB0aGUgY2FsbGVyCiAgd2lsbCByZWNlaXZlIGZlZWRiYWNrIGxpa2UgdGhpczoKCmBgYGpzb24KewogICJzdGF0dXMiOiAic3RvcCIsCiAgInBvcnQiOiA3MDAwCn0KYGBgCgojIyBXaG8KCltAdmluY2Vuem9wYWxhenpvXShodHRwczovL2dpdGh1Yi5jb20vdmluY2Vuem9wYWxhenpvKSBpcyB0aGUgZGV2ZWxvcGVyIG9mIHRoaXMKcGx1Z2luIGFuZCB0aGUgbW90aXZhdGlvbiB0aGF0IGhlIGlzIGRldmVsb3BpbmcgdGhpcyBwbHVnaW4gaXMgYmVjYXVzZSBoZSBpcwp0ZXN0aW5nIHRoZSBbSlJQQ0xpZ2h0bmluZ10oaHR0cHM6Ly9naXRodWIuY29tL3ZpbmNlbnpvcGFsYXp6by9KUlBDbGlnaHRuaW5nKQpsaWJyYXJ5LgoKQWxsIGZlZWRiYWNrIGFyZSB3ZWxjb21lIDopCgpQUzogVGhlIGNyZWF0b3Igb2YgdGhpcyByZXBvc2l0b3J5IGFyZSBzZWFyY2hpbmcgYSBtYWludGFpbmVyIG9mIHRoaXMgbGlicmFyeSwKaWYgeW91IGxpa2UgdG8gd29yayBpbnNpZGUgdGhpcyByZXBvc2l0b3J5IHRvIGxlYXJuIGNhbiB3cml0ZSBhbiBlbWFpbCB0bwo8dmluY2Vuem9wYWxhenpvZGV2QGdtYWlsLmNvbT4KCiMjIFN1cHBvcnQKClRPRE86IGZvciBub3cgbG9vayBpbnNpZGUgdGhlIFtKUlBDTGlnaHRuaW5nXShodHRwczovL2dpdGh1Yi5jb20vdmluY2Vuem9wYWxhenpvL0pSUENsaWdodG5pbmcpCgojIyBMaWNlbnNlCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSJodHRwczovL29wZW5zb3VyY2Uub3JnL2ZpbGVzL29zaV9rZXlob2xlXzMwMFgzMDBfOTBwcGlfMC5wbmciIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIi8+CjwvZGl2PgoKYGBgCk1JVCBMaWNlbnNlCgpBIEphdmEgcGx1Z2luIGZvciBjLWxpZ2h0bmluZyB0byBleHBvc2UgdGhlIEFQSSBvdmVyIHJlc3QhCkNvcHlyaWdodCAoYykgMjAyMC0yMSBWaW5jZW56byBQYWxhenpvIDx2aW5jZW56b3BhbGF6em9kZXZAZ21haWwuY29tPgoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQpTT0ZUV0FSRS4KYGBgCgo= readmeEtag: '"d7d615d1fdd85382f53089af10cf5472534d0d91"' readmeLastModified: Fri, 10 Jun 2022 08:38:43 GMT repositoryId: 278958272 description: A Java plugin for c-lightning to expose the API over rest! created: '2020-07-11T23:31:41Z' updated: '2022-06-10T00:28:27Z' language: Java archived: false stars: 2 watchers: 2 forks: 2 owner: clightning4j logo: https://avatars.githubusercontent.com/u/67849355?v=4 license: NOASSERTION repoEtag: '"4d46e496049e1ce361722b3d02afbfd95f189ea66b786b632e61e9c042b11aef"' repoLastModified: Fri, 10 Jun 2022 00:28:27 GMT foundInMaster: true category: Server id: 0842c1cecab7de55d68080243b5f9b11 - source: openapi3 tags repository: https://github.com/fabidick22/voting-sys-rest-api v3: true repositoryMetadata: base64Readme: >- IyBWb3RpbmcgU3lzdGVtIFJFU1QgQVBJCiFbQ0ktdm90aW5nLXN5c10oaHR0cHM6Ly9naXRodWIuY29tL2ZhYmlkaWNrMjIvdm90aW5nLXN5cy1yZXN0LWFwaS93b3JrZmxvd3MvQ0ktdm90aW5nLXN5cy9iYWRnZS5zdmcpCgpBIFJFU1QgQVBJIGZvciB2b3Rpbmcgc3lzdGVtCgoqKkNoYXJhY3RlcmlzdGljOioqCi0gTVZDIGFzIGEgZGVzaWduIHBhdHRlcm4KLSBCYXNpYyB0b2tlbi1iYXNlZCBhdXRoZW50aWNhdGlvbiAoZG8gbm90IHVzZSB0aGlzIG1ldGhvZCwgaXQgaXMganVzdCBhbiBleGFtcGxlKQoKIyMjIE1haW4gdG9vbHMgdXNlZAotIFtFeHByZXNzXShodHRwczovL2V4cHJlc3Nqcy5jb20vKQotIFtNb25nb2RiXShodHRwczovL3d3dy5tb25nb2RiLmNvbSkKLSBbTW9uZ29vc2VdKCkKLSBbU3dhZ2dlclVJXShodHRwczovL2dpdGh1Yi5jb20vc2NvdHRpZTE5ODQvc3dhZ2dlci11aS1leHByZXNzKQotIFtNb3JnYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9leHByZXNzanMvbW9yZ2FuKQotIFtEb2NrZXJdKGh0dHBzOi8vd3d3LmRvY2tlci5jb20vKQoKIyMgR2V0dGluZyBTdGFydGVkCkNsb25lIHRoaXMgcmVwb3NpdG9yeSBhbmQgaW5zdGFsbCBkZXBlbmRlbmNpZXMKYGBgCj4gZ2l0IGNsb25lIGdpdEBnaXRodWIuY29tOmZhYmlkaWNrMjIvdm90aW5nLXN5cy1yZXN0LWFwaS5naXQKPiBjZCB2b3Rpbmctc3lzLXJlc3QtYXBpCgo+IG5wbSBpbnN0YWxsCmBgYAojIyMjIFJ1biBkZXZlbG9wbWVudCB3aXRoIG5vZGVtb24KYGBgCj4gbnBtIHJ1biAgc3RhcnQKYGBgCgojIyMjIEJ1aWxkIGFuZCBydW4gZm9yIHByb2R1Y3Rpb24gCmBgYAo+IG5wbSBydW4gc2VydmVyCmBgYAoKIyMjIyBUZXN0cyAoTm90IGltcGxlbWVudGVkIHlldCkKVW5pdCB0ZXN0czoKYGBgCj4gbnBtIHJ1biB0ZXN0OnNwZWNzCmBgYAoKQmxhY2stYm94IGVuZC10by1lbmQgdGVzdHM6CmBgYApucG0gcnVuIHRlc3Q6ZTJlCmBgYAoKCiMjIyBEZXBsb3kgQXBwCk1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGUgYC5lbnZgIGZpbGUgeW91IGNhbiBzZWUgdGhlIHRlbXBsYXRlIGluIHRoZSBgLmVudi50ZW1wbGF0ZWAgZmlsZQpfRXhhbXBsZTpfCmBgYApOT0RFX0VOVj1kZXZlbG9wbWVudApEQl9IT1NUPWRiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvIGNvbm5lY3QgaW4gZG9ja2VyLWNvbXBvc2UpCkRCX1VTRVI9cm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0YWJhc2UgdXNlciBmb3IgdGhlIGFwcCkKREJfUEFTUz1zdXBlclBhc3N3ZCAgICAgICAgICAgICAgICAgICAgIChkYXRhYmFzZSBwYXNzd29yZCBmb3IgdGhlIGFwcCkKU0VDUkVUX1RPS0VOPSIiICAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25hbCBmb3IgdGhlIGRldiBlbnZpcm9ubWVudCkKTU9OR09fSU5JVERCX1JPT1RfVVNFUk5BTUU9cm9vdCAgICAgICAgIChmb3IgbW9uZ29EQikKTU9OR09fSU5JVERCX1JPT1RfUEFTU1dPUkQ9c3VwZXJQYXNzd2QgIChmb3IgbW9uZ29EQikKYGBgCkZyb20gdGhlIHJvb3QgZGlyZWN0b3J5OgpgYGAKIyBCdWlsZCB5b3VyIGRvY2tlcgo+IGRvY2tlci1jb21wb3NlIHVwCmBgYAoKKipTdGFydCBsb2NhbCAoZGV2KSBhcHAgYW5kIGRlcGxveSBtb25nbyBpbiBEb2NrZXIqKgpgYGAKIyBCdWlsZCB5b3VyIGRvY2tlcgo+IGRvY2tlci1jb21wb3NlIHVwIGRiCj4gbnBtIHN0YXJ0ICMgZGV2IGVudmlyb25tZW50CmBgYAoKIyMjIEZ1bmN0aW9uYWxpdHkgdGVzdApBZnRlciBoYXZpbmcgdGhlIGRhdGFiYXNlIGFuZCB5b3VyIEFQSSBydW5uaW5nLCB5b3UgY2FuIHRlc3QgdGhlIGZ1bmN0aW9uYWxpdGllcyBmcm9tIHRoZSBVSSBwcm92aWRlZCBieSBzd2FnZ2VyLVVJLgpZb3UgbXVzdCBiZWFyIGluIG1pbmQgdGhhdCBmaXJzdCB5b3UgaGF2ZSB0byBjcmVhdGUgYSB1c2VyIGZyb20gdGhpcyBlbmRwb2ludCAoYC91c2Vycy9zaWduVXBgKSB0aGVuIHlvdSB3aWxsIGhhdmUgYSB0b2tlbiB0aGF0IHlvdSBtdXN0IHNldCBpbiB0aGUgc3dhZ2dlciBhdXRob3JpemVyIHRvIGJlIGFibGUgdG8gdXNlIHRoZSBvdGhlciBlbmRwb2l0cwoKIyMgQVBJIGRvY3VtZW50YXRpb24KQ2hlY2tvdXQgYGxvY2FsaG9zdDozMDAwL2RvY3NgLgpCYXNlIHBhdGg6IGBsb2NhbGhvc3Q6MzAwMC9hcGkvdjFgCgojIyBNb2R1bGUgc3RydWN0dXJlCmBgYAouCuKUnOKUgOKUgCBhcHAuanMK4pSc4pSA4pSAIGNvbmZpZwrilJzilIDilIAgY29uZmlnLmpzCuKUnOKUgOKUgCBjb250cm9sbGVycwrilJzilIDilIAgZG9ja2VyLWNvbXBvc2UueW1sCuKUnOKUgOKUgCBEb2NrZXJmaWxlCuKUnOKUgOKUgCBtaWRkbGV3YXJlcwrilJzilIDilIAgbW9kZWxzCuKUnOKUgOKUgCBub2RlX21vZHVsZXMK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJzilIDilIAgcGFja2FnZS1sb2NrLmpzb24K4pSc4pSA4pSAIFJFQURNRS5tZArilJzilIDilIAgcm91dGVzCuKUnOKUgOKUgCB0ZXN0CuKUnOKUgOKUgCB1dGlscwrilJTilIDilIAgdm90aW5nT0FTLnlhbWwKCjggZGlyZWN0b3JpZXMsIDggZmlsZXMKYGBgCiMjIyBSZWZlcmVuY2VzOgotIGh0dHBzOi8vbWVkaXVtLmNvbS93b2xveC9kb2N1bWVudGluZy1hLW5vZGVqcy1yZXN0LWFwaS13aXRoLW9wZW5hcGktMy1zd2FnZ2VyLTVkZWVlOWY1MDQyMAotIGh0dHBzOi8vdHdtLm1lL2NvcnJlY3Qtd2F5LXRvLXVzZS1tb25nb29zZS8K readmeEtag: '"047209aed7def0296769682b6201c9e8e7adabcc"' readmeLastModified: Wed, 20 Jul 2022 04:12:27 GMT repositoryId: 251323884 description: Base template to create a REST-API created: '2020-03-30T14:06:01Z' updated: '2023-03-05T08:14:26Z' language: JavaScript archived: false stars: 2 watchers: 1 forks: 0 owner: fabidick22 logo: https://avatars.githubusercontent.com/u/8176821?v=4 license: MIT repoEtag: '"7e6eeb44107c894d2388968d9fda0d00e61e39261de40b14246b3bc2de2909c3"' repoLastModified: Sun, 05 Mar 2023 08:14:26 GMT foundInMaster: true category: - Testing - Server Implementations id: 360961fe9a73041e997249011d70f3d1 - source: openapi3 tags repository: https://github.com/tidusjar/wiremock.openapivalidator v3: true id: 6e98ac01bba66f60b5283ccbc8395dc3 repositoryMetadata: base64Readme: >- IyMgV2lyZU1vY2sgT3BlbiBBUEkgVmFsaWRhdG9yCgpbIVtCdWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL3RpZHVzamFyL1dpcmVtb2NrLk9wZW5BUElWYWxpZGF0b3IvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS90aWR1c2phci9XaXJlbW9jay5PcGVuQVBJVmFsaWRhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbCkKWyFbUHVibGlzaF0oaHR0cHM6Ly9naXRodWIuY29tL3RpZHVzamFyL1dpcmVtb2NrLk9wZW5BUElWYWxpZGF0b3IvYWN0aW9ucy93b3JrZmxvd3MvcHVibGlzaC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3RpZHVzamFyL1dpcmVtb2NrLk9wZW5BUElWYWxpZGF0b3IvYWN0aW9ucy93b3JrZmxvd3MvcHVibGlzaC55bWwpClshW051Z2V0XShodHRwczovL2ltZy5zaGllbGRzLmlvL251Z2V0L3YvV2lyZW1vY2suT3BlbkFQSVZhbGlkYXRvcildKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9XaXJlbW9jay5PcGVuQVBJVmFsaWRhdG9yLykKWyFbUXVhbGl0eSBHYXRlIFN0YXR1c10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9dGlkdXNqYXJfV2lyZW1vY2suT3BlbkFQSVZhbGlkYXRvciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9dGlkdXNqYXJfV2lyZW1vY2suT3BlbkFQSVZhbGlkYXRvcikKClRoaXMgdG9vbCBpcyBpbnRlbmRlZCB0byB0ZXN0IHlvdXIgV2lyZW1vY2sgc3R1YnMgYWdhaW5zdCBhbiBPcGVuQVBJICh2Mykgc3BlY2lmaWNhdGlvbi4gVGhpcyB3aWxsIGNoZWNrIHRoZSBmb2xsb3dpbmcKCnwgVHlwZSBvZiBDaGVjayB8IERlc2NyaXB0aW9uIHwKfCAtLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tIHwKfCBBUEkgTWV0aG9kIHwgRW5zdXJlIHRoZSBtb2NrIGlzIG1hdGNoaW5nIHRoZSBBUEkgVmVyYiBwcm92aWRlZCB8CnwgVVJMIFBhdHRlcm4gTWF0Y2ggfCBFbnN1cmUgdGhlIG1vY2sgd2lsbCBhY3R1YWxseSBtYXRjaCB0aGUgVVJMIHwKfCBQYXJhbWV0ZXJzIHwgQ2hlY2tzIGFsbCByZXF1aXJlZCBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50IGFuZCB0aGUgb2JqZWN0IHR5cGUgaXMgY29ycmVjdC4gV2lsbCBhbHNvIGNoZWNrIG9wdGlvbmFsIHBhcmFtZXRlcnMgYnV0IHdpbGwgb25seSBwcm9kdWNlIGEgd2FybmluZyB8CnwgUmVzcG9uc2UgfCBDaGVja3MgdGhlIHJlc3BvbnNlIG9iamVjdCBhbmQgZW5zdXJpbmcgdGhlIHR5cGVzIGFsc28gbWF0Y2ggfAoKCgoKIyBJbnN0YWxsYXRpb24KLk5ldCBDTEkgKEdsb2JhbCkKCmBkb3RuZXQgdG9vbCBpbnN0YWxsIC0tZ2xvYmFsIFdpcmVtb2NrLk9wZW5BUElWYWxpZGF0b3JgCl9fXwojIFVzYWdlCgpgd2lyZW1vY2tvcGVuYXBpIC1vICJDOi9naXQvTXlBcGkvT3BlbkFwaS55bWwiIC13ICJDOi9naXQvd2lyZW1vY2svc3R1YnMvbWFwcGluZ3MiYAoKIyMgRXhhbXBsZSBXb3JrZmxvdwoKYGBgCnN0ZXBzOgotIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjMKLSBuYW1lOiBTZXR1cCAuTkVUCiAgICB1c2VzOiBhY3Rpb25zL3NldHVwLWRvdG5ldEB2MgogICAgd2l0aDoKICAgIGRvdG5ldC12ZXJzaW9uOiA2LjAueAotIG5hbWU6IEluc3RhbGwgV2lyZW1vY2sgT3BlbkFQSSBWYWxpZGF0b3IgVG9vbAogICAgcnVuOiBkb3RuZXQgdG9vbCBpbnN0YWxsIC0tZ2xvYmFsIFdpcmVtb2NrLk9wZW5BUElWYWxpZGF0b3IKLSBuYW1lOiBSdW4gVmFsaWRhdG9yCiAgICBydW46IHwKICAgIHdpcmVtb2Nrb3BlbmFwaSAtbyAiLi9vcGVuYXBpL29wZW5hcGkueWFtbCIgLXcgIi4vd2lyZW1vY2svbWFwcGluZ3MiCmBgYAoKX19fCgoKYGBgCi1vLCAtLW9wZW5BcGlQYXRoICAgICAgICAgICAgIFJlcXVpcmVkLiBGaWxlIHBhdGggdG8gdGhlIE9wZW4gQVBJIFNwZWMKCi13LCAtLXdpcmVtb2NrTWFwcGluZ3NQYXRoICAgIFJlcXVpcmVkLiBGaWxlIHBhdGggdG8gdGhlIHN0dWJzIG1hcHBpbmdzIGZvbGRlcgoKLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSB0aGlzIGhlbHAgc2NyZWVuLgoKLS12ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uLgpgYGAKCiMgRXhhbXBsZSBPdXRwdXQKIVtFeGFtcGxlIFJlc3VsdF0oLi9hc3NldHMvb3V0cHV0LnBuZykK readmeEtag: '"437fc2f92d5ea4b9e1f2126c045b7a9709c756e9"' readmeLastModified: Mon, 29 Aug 2022 07:36:54 GMT repositoryId: 508230905 description: Validate your Wiremock mappings against an OpenAPI spec created: '2022-06-28T09:14:13Z' updated: '2023-08-09T07:52:09Z' language: C# archived: false stars: 2 watchers: 1 forks: 0 owner: tidusjar logo: https://avatars.githubusercontent.com/u/6642220?v=4 license: GPL-3.0 repoEtag: '"87333aa69cd23471627b3491b4c96e363c700ec3a32a5e0e793c7844743ab33b"' repoLastModified: Wed, 09 Aug 2023 07:52:09 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/simonit/vcita-platform-java-sdk v3: true repositoryMetadata: base64Readme: >- IyB2Y2l0YS1wbGF0Zm9ybS1qYXZhLXNkawoKUGxhdGZvcm0gQVBJCi0gQVBJIHZlcnNpb246IHYyLjAKCk5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgT3BlbmFwaSBHZW5lcmF0b3IgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcikKCgoqQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSoKCgojIyBSZXF1aXJlbWVudHMKCkJ1aWxkaW5nIHRoZSBBUEkgY2xpZW50IGxpYnJhcnkgcmVxdWlyZXM6CjEuIEphdmEgMS44KwoyLiBNYXZlbiAoMy44LjMrKS9HcmFkbGUgKDcuMispCgojIyBJbnN0YWxsYXRpb24KClRvIGluc3RhbGwgdGhlIEFQSSBjbGllbnQgbGlicmFyeSB0byB5b3VyIGxvY2FsIE1hdmVuIHJlcG9zaXRvcnksIHNpbXBseSBleGVjdXRlOgoKYGBgc2hlbGwKbXZuIGNsZWFuIGluc3RhbGwKYGBgCgpUbyBkZXBsb3kgaXQgdG8gYSByZW1vdGUgTWF2ZW4gcmVwb3NpdG9yeSBpbnN0ZWFkLCBjb25maWd1cmUgdGhlIHNldHRpbmdzIG9mIHRoZSByZXBvc2l0b3J5IGFuZCBleGVjdXRlOgoKYGBgc2hlbGwKbXZuIGNsZWFuIGRlcGxveQpgYGAKClJlZmVyIHRvIHRoZSBbT1NTUkggR3VpZGVdKGh0dHA6Ly9jZW50cmFsLnNvbmF0eXBlLm9yZy9wYWdlcy9vc3NyaC1ndWlkZS5odG1sKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIyBNYXZlbiB1c2VycwoKQWRkIHRoaXMgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QncyBQT006CgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgPGdyb3VwSWQ+Y29tLnZjaXRhLnBsYXRmb3JtPC9ncm91cElkPgogIDxhcnRpZmFjdElkPnZjaXRhLXBsYXRmb3JtLWphdmEtc2RrPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPnYyLjA8L3ZlcnNpb24+CiAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgo8L2RlcGVuZGVuY3k+CmBgYAoKIyMjIEdyYWRsZSB1c2VycwoKQWRkIHRoaXMgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QncyBidWlsZCBmaWxlOgoKYGBgZ3Jvb3Z5CiAgcmVwb3NpdG9yaWVzIHsKICAgIG1hdmVuQ2VudHJhbCgpICAgICAvLyBOZWVkZWQgaWYgdGhlICd2Y2l0YS1wbGF0Zm9ybS1qYXZhLXNkaycgamFyIGhhcyBiZWVuIHB1Ymxpc2hlZCB0byBtYXZlbiBjZW50cmFsLgogICAgbWF2ZW5Mb2NhbCgpICAgICAgIC8vIE5lZWRlZCBpZiB0aGUgJ3ZjaXRhLXBsYXRmb3JtLWphdmEtc2RrJyBqYXIgaGFzIGJlZW4gcHVibGlzaGVkIHRvIHRoZSBsb2NhbCBtYXZlbiByZXBvLgogIH0KCiAgZGVwZW5kZW5jaWVzIHsKICAgICBpbXBsZW1lbnRhdGlvbiAiY29tLnZjaXRhLnBsYXRmb3JtOnZjaXRhLXBsYXRmb3JtLWphdmEtc2RrOnYyLjAiCiAgfQpgYGAKCiMjIyBPdGhlcnMKCkF0IGZpcnN0IGdlbmVyYXRlIHRoZSBKQVIgYnkgZXhlY3V0aW5nOgoKYGBgc2hlbGwKbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgpUaGVuIG1hbnVhbGx5IGluc3RhbGwgdGhlIGZvbGxvd2luZyBKQVJzOgoKKiBgdGFyZ2V0L3ZjaXRhLXBsYXRmb3JtLWphdmEtc2RrLXYyLjAuamFyYAoqIGB0YXJnZXQvbGliLyouamFyYAoKIyMgR2V0dGluZyBTdGFydGVkCgpQbGVhc2UgZm9sbG93IHRoZSBbaW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKSBpbnN0cnVjdGlvbiBhbmQgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIEphdmEgY29kZToKCmBgYGphdmEKCi8vIEltcG9ydCBjbGFzc2VzOgppbXBvcnQgY29tLnZjaXRhLnBsYXRmb3JtLmNsaWVudC5BcGlDbGllbnQ7CmltcG9ydCBjb20udmNpdGEucGxhdGZvcm0uY2xpZW50LkFwaUV4Y2VwdGlvbjsKaW1wb3J0IGNvbS52Y2l0YS5wbGF0Zm9ybS5jbGllbnQuQ29uZmlndXJhdGlvbjsKaW1wb3J0IGNvbS52Y2l0YS5wbGF0Zm9ybS5jbGllbnQuYXV0aC4qOwppbXBvcnQgY29tLnZjaXRhLnBsYXRmb3JtLmNsaWVudC5tb2RlbHMuKjsKaW1wb3J0IGNvbS52Y2l0YS5wbGF0Zm9ybS5jbGllbnQuYXBpLkFwcGxpY2F0aW9uc0FwaTsKCnB1YmxpYyBjbGFzcyBFeGFtcGxlIHsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICBBcGlDbGllbnQgZGVmYXVsdENsaWVudCA9IENvbmZpZ3VyYXRpb24uZ2V0RGVmYXVsdEFwaUNsaWVudCgpOwogICAgZGVmYXVsdENsaWVudC5zZXRCYXNlUGF0aCgiaHR0cDovL2FwaS52Y2l0YS5iaXovcGxhdGZvcm0vdjEiKTsKICAgIAogICAgLy8gQ29uZmlndXJlIE9BdXRoMiBhY2Nlc3MgdG9rZW4gZm9yIGF1dGhvcml6YXRpb246IGRlZmF1bHQKICAgIE9BdXRoIGRlZmF1bHQgPSAoT0F1dGgpIGRlZmF1bHRDbGllbnQuZ2V0QXV0aGVudGljYXRpb24oImRlZmF1bHQiKTsKICAgIGRlZmF1bHQuc2V0QWNjZXNzVG9rZW4oIllPVVIgQUNDRVNTIFRPS0VOIik7CgogICAgQXBwbGljYXRpb25zQXBpIGFwaUluc3RhbmNlID0gbmV3IEFwcGxpY2F0aW9uc0FwaShkZWZhdWx0Q2xpZW50KTsKICAgIFN0cmluZyBhdXRob3JpemF0aW9uID0gImF1dGhvcml6YXRpb25fZXhhbXBsZSI7IC8vIFN0cmluZyB8IEFQSSBUb2tlbi4gVGhlIHJlc3VsdGluZyBoZWFkZXIgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOiAnQXV0aG9yaXphdGlvbjogXCJCZWFyZXIgQVBJX1RPS0VOXCInCiAgICB0cnkgewogICAgICBBcHBzR2V0MjAxUmVzcG9uc2UgcmVzdWx0ID0gYXBpSW5zdGFuY2UuYXBwc0dldChhdXRob3JpemF0aW9uKTsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdCk7CiAgICB9IGNhdGNoIChBcGlFeGNlcHRpb24gZSkgewogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQXBwbGljYXRpb25zQXBpI2FwcHNHZXQiKTsKICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJTdGF0dXMgY29kZTogIiArIGUuZ2V0Q29kZSgpKTsKICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJSZWFzb246ICIgKyBlLmdldFJlc3BvbnNlQm9keSgpKTsKICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJSZXNwb25zZSBoZWFkZXJzOiAiICsgZS5nZXRSZXNwb25zZUhlYWRlcnMoKSk7CiAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICB9CiAgfQp9CgpgYGAKCiMjIERvY3VtZW50YXRpb24gZm9yIEFQSSBFbmRwb2ludHMKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cDovL2FwaS52Y2l0YS5iaXovcGxhdGZvcm0vdjEqCgpDbGFzcyB8IE1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqQXBwbGljYXRpb25zQXBpKiB8IFsqKmFwcHNHZXQqKl0oZG9jcy9BcHBsaWNhdGlvbnNBcGkubWQjYXBwc0dldCkgfCAqKkdFVCoqIC9hcHBzIHwgTGlzdCBvZiBhcHBzCipBcHBsaWNhdGlvbnNBcGkqIHwgWyoqYXBwc0lkQXNzaWduUG9zdCoqXShkb2NzL0FwcGxpY2F0aW9uc0FwaS5tZCNhcHBzSWRBc3NpZ25Qb3N0KSB8ICoqUE9TVCoqIC9hcHBzL3tpZH0vYXNzaWduIHwgQXNzaWduIGFuIGFwcCBvbiBkaXJlY3Rvcnkgb3IgYSBidXNpbmVzcyBbSW50ZXJuYWxdCipBcHBsaWNhdGlvbnNBcGkqIHwgWyoqYXBwc0lkR2V0KipdKGRvY3MvQXBwbGljYXRpb25zQXBpLm1kI2FwcHNJZEdldCkgfCAqKkdFVCoqIC9hcHBzL3tpZH0gfCBSZWFkIGFuIGFwcAoqQXBwbGljYXRpb25zQXBpKiB8IFsqKmFwcHNJZEluc3RhbGxBcHBQb3N0KipdKGRvY3MvQXBwbGljYXRpb25zQXBpLm1kI2FwcHNJZEluc3RhbGxBcHBQb3N0KSB8ICoqUE9TVCoqIC9hcHBzL3tpZH0vaW5zdGFsbF9hcHAgfCBJbnN0YWxsIGFuIGFwcCBbSW50ZXJuYWxdCipBcHBsaWNhdGlvbnNBcGkqIHwgWyoqYXBwc0lkUHV0KipdKGRvY3MvQXBwbGljYXRpb25zQXBpLm1kI2FwcHNJZFB1dCkgfCAqKlBVVCoqIC9hcHBzL3tpZH0gfCBVcGRhdGVzIGFuIGFwcAoqQXBwbGljYXRpb25zQXBpKiB8IFsqKmFwcHNJZFVuYXNzaWduUG9zdCoqXShkb2NzL0FwcGxpY2F0aW9uc0FwaS5tZCNhcHBzSWRVbmFzc2lnblBvc3QpIHwgKipQT1NUKiogL2FwcHMve2lkfS91bmFzc2lnbiB8IFVuYXNzaWduIGFuIGFwcCBvbiBkaXJlY3Rvcnkgb3IgYSBidXNpbmVzcyBbSW50ZXJuYWxdCipBcHBsaWNhdGlvbnNBcGkqIHwgWyoqYXBwc0lkVW5pbnN0YWxsQXBwUG9zdCoqXShkb2NzL0FwcGxpY2F0aW9uc0FwaS5tZCNhcHBzSWRVbmluc3RhbGxBcHBQb3N0KSB8ICoqUE9TVCoqIC9hcHBzL3tpZH0vdW5pbnN0YWxsX2FwcCB8IFVuaW5zdGFsbCBhbiBhcHAgW0ludGVybmFsXQoqQXBwbGljYXRpb25zQXBpKiB8IFsqKmFwcHNQb3N0KipdKGRvY3MvQXBwbGljYXRpb25zQXBpLm1kI2FwcHNQb3N0KSB8ICoqUE9TVCoqIC9hcHBzIHwgQ3JlYXRlcyBhbiBhcHAKKkFwcG9pbnRtZW50c0FwaSogfCBbKipnbG9iYWxBcHBvaW50bWVudHNHZXQqKl0oZG9jcy9BcHBvaW50bWVudHNBcGkubWQjZ2xvYmFsQXBwb2ludG1lbnRzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9hcHBvaW50bWVudHMgfCBHZXQgYXBwb2ludG1lbnRzIGxpc3QKKkFwcG9pbnRtZW50c0FwaSogfCBbKipzY2hlZHVsaW5nQXBwb2ludG1lbnRzQXBwb2ludG1lbnRJZEdldCoqXShkb2NzL0FwcG9pbnRtZW50c0FwaS5tZCNzY2hlZHVsaW5nQXBwb2ludG1lbnRzQXBwb2ludG1lbnRJZEdldCkgfCAqKkdFVCoqIC9zY2hlZHVsaW5nL2FwcG9pbnRtZW50cy97YXBwb2ludG1lbnRfaWR9IHwgR2V0IEFwcG9pbnRtZW50CipBcHBvaW50bWVudHNBcGkqIHwgWyoqc2NoZWR1bGluZ0FwcG9pbnRtZW50c0dldCoqXShkb2NzL0FwcG9pbnRtZW50c0FwaS5tZCNzY2hlZHVsaW5nQXBwb2ludG1lbnRzR2V0KSB8ICoqR0VUKiogL3NjaGVkdWxpbmcvYXBwb2ludG1lbnRzIHwgR2V0IEFwcG9pbnRtZW50cyBMaXN0CipBdmFpbGFiaWxpdHlBcGkqIHwgWyoqc2VydmljZXNTZXJ2aWNlSWRBdmFpbGFiaWxpdHlHZXQqKl0oZG9jcy9BdmFpbGFiaWxpdHlBcGkubWQjc2VydmljZXNTZXJ2aWNlSWRBdmFpbGFiaWxpdHlHZXQpIHwgKipHRVQqKiAvc2VydmljZXMve3NlcnZpY2VfaWR9L2F2YWlsYWJpbGl0eSB8IEdldCBTZXJ2aWNlIGF2YWlsYWJpbGl0eSBCeSBJRCBbQWxwaGFdCipCb29raW5nc0FwaSogfCBbKipzY2hlZHVsaW5nQm9va2luZ3NCb29raW5nVWlkVXBkYXRlUnN2cFN0YXRlUHV0KipdKGRvY3MvQm9va2luZ3NBcGkubWQjc2NoZWR1bGluZ0Jvb2tpbmdzQm9va2luZ1VpZFVwZGF0ZVJzdnBTdGF0ZVB1dCkgfCAqKlBVVCoqIC9zY2hlZHVsaW5nL2Jvb2tpbmdzL3tib29raW5nX3VpZH0vdXBkYXRlX3JzdnBfc3RhdGUgfCBVcGRhdGUgUlNWUCBzdGF0ZQoqQm9va2luZ3NBcGkqIHwgWyoqc2NoZWR1bGluZ0Jvb2tpbmdzQ2FuY2VsUG9zdCoqXShkb2NzL0Jvb2tpbmdzQXBpLm1kI3NjaGVkdWxpbmdCb29raW5nc0NhbmNlbFBvc3QpIHwgKipQT1NUKiogL3NjaGVkdWxpbmcvYm9va2luZ3MvY2FuY2VsIHwgQ2FuY2VsIGEgQm9va2luZyBbQWxwaGFdCipCb29raW5nc0FwaSogfCBbKipzY2hlZHVsaW5nQm9va2luZ3NHZXQqKl0oZG9jcy9Cb29raW5nc0FwaS5tZCNzY2hlZHVsaW5nQm9va2luZ3NHZXQpIHwgKipHRVQqKiAvc2NoZWR1bGluZy9ib29raW5ncyB8IEdldCBCb29raW5ncyBbQWxwaGFdIAoqQm9va2luZ3NBcGkqIHwgWyoqc2NoZWR1bGluZ0Jvb2tpbmdzUG9zdCoqXShkb2NzL0Jvb2tpbmdzQXBpLm1kI3NjaGVkdWxpbmdCb29raW5nc1Bvc3QpIHwgKipQT1NUKiogL3NjaGVkdWxpbmcvYm9va2luZ3MgfCBDcmVhdGUgTmV3IEJvb2tpbmcgW0FscGhhXQoqQm9va2luZ3NBcGkqIHwgWyoqc2NoZWR1bGluZ1dhaXRsaXN0Q2FuY2VsUHV0KipdKGRvY3MvQm9va2luZ3NBcGkubWQjc2NoZWR1bGluZ1dhaXRsaXN0Q2FuY2VsUHV0KSB8ICoqUFVUKiogL3NjaGVkdWxpbmcvd2FpdGxpc3QvY2FuY2VsIHwgQ2FuY2VsIGEgV2FpdGxpc3QgcmVnaXN0cmF0aW9uCipCb29raW5nc0FwaSogfCBbKipzY2hlZHVsaW5nV2FpdGxpc3RQb3N0KipdKGRvY3MvQm9va2luZ3NBcGkubWQjc2NoZWR1bGluZ1dhaXRsaXN0UG9zdCkgfCAqKlBPU1QqKiAvc2NoZWR1bGluZy93YWl0bGlzdCB8IENyZWF0ZSBldmVudCBXYWl0bGlzdAoqQnVzaW5lc3NBcGkqIHwgWyoqYnVzaW5lc3Nlc0J1c2luZXNzSWRGZWF0dXJlc0dldCoqXShkb2NzL0J1c2luZXNzQXBpLm1kI2J1c2luZXNzZXNCdXNpbmVzc0lkRmVhdHVyZXNHZXQpIHwgKipHRVQqKiAvYnVzaW5lc3Nlcy97YnVzaW5lc3NfaWR9L2ZlYXR1cmVzIHwgR2V0IEJ1c2luZXNzIEZlYXR1cmVzCipCdXNpbmVzc0FwaSogfCBbKipidXNpbmVzc2VzQnVzaW5lc3NJZEdldCoqXShkb2NzL0J1c2luZXNzQXBpLm1kI2J1c2luZXNzZXNCdXNpbmVzc0lkR2V0KSB8ICoqR0VUKiogL2J1c2luZXNzZXMve2J1c2luZXNzX2lkfSB8IEdldCBCdXNpbmVzcwoqQnVzaW5lc3NBcGkqIHwgWyoqYnVzaW5lc3Nlc0J1c2luZXNzSWRQb3N0KipdKGRvY3MvQnVzaW5lc3NBcGkubWQjYnVzaW5lc3Nlc0J1c2luZXNzSWRQb3N0KSB8ICoqUE9TVCoqIC9idXNpbmVzc2VzL3tidXNpbmVzc19pZH0gfCBVcGRhdGUgQnVzaW5lc3MKKkJ1c2luZXNzQXBpKiB8IFsqKmJ1c2luZXNzZXNHZXQqKl0oZG9jcy9CdXNpbmVzc0FwaS5tZCNidXNpbmVzc2VzR2V0KSB8ICoqR0VUKiogL2J1c2luZXNzZXMgfCBHZXQgQnVzaW5lc3MgZmlsdGVyZWQgYnkgZW1haWwgb3IgZXh0ZXJuYWxfaWQKKkJ1c2luZXNzQXBpKiB8IFsqKmJ1c2luZXNzZXNQb3N0KipdKGRvY3MvQnVzaW5lc3NBcGkubWQjYnVzaW5lc3Nlc1Bvc3QpIHwgKipQT1NUKiogL2J1c2luZXNzZXMgfCBDcmVhdGUgYSBCdXNpbmVzcwoqQnVzaW5lc3NBcGkqIHwgWyoqYnVzaW5lc3Nlc1ZhbGlkYXRlTG9naW5HZXQqKl0oZG9jcy9CdXNpbmVzc0FwaS5tZCNidXNpbmVzc2VzVmFsaWRhdGVMb2dpbkdldCkgfCAqKkdFVCoqIC9idXNpbmVzc2VzL3ZhbGlkYXRlX2xvZ2luIHwgVmFsaWRhdGUgTG9naW4KKkJ1c2luZXNzQXBpKiB8IFsqKmdsb2JhbEJ1c2luZXNzZXNHZXQqKl0oZG9jcy9CdXNpbmVzc0FwaS5tZCNnbG9iYWxCdXNpbmVzc2VzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9idXNpbmVzc2VzIHwgR2V0cyBhIGxpc3Qgb2YgYnVzaW5lc3NlcwoqQ2FyZEFwaSogfCBbKipwYXltZW50Q2FyZHNTeW5jQ2FyZFBvc3QqKl0oZG9jcy9DYXJkQXBpLm1kI3BheW1lbnRDYXJkc1N5bmNDYXJkUG9zdCkgfCAqKlBPU1QqKiAvcGF5bWVudC9jYXJkcy9zeW5jX2NhcmQgfCBDcmVhdGUgc3luYyBjYXJkCipDYXRlZ29yaWVzQXBpKiB8IFsqKmNhdGVnb3JpZXNHZXQqKl0oZG9jcy9DYXRlZ29yaWVzQXBpLm1kI2NhdGVnb3JpZXNHZXQpIHwgKipHRVQqKiAvY2F0ZWdvcmllcyB8IEdldCBDYXRlZ29yaWVzIFtBbHBoYV0KKkNsaWVudFBhY2thZ2VzQXBpKiB8IFsqKmNsaWVudHNDbGllbnRJZFBheW1lbnRDbGllbnRQYWNrYWdlc0dldCoqXShkb2NzL0NsaWVudFBhY2thZ2VzQXBpLm1kI2NsaWVudHNDbGllbnRJZFBheW1lbnRDbGllbnRQYWNrYWdlc0dldCkgfCAqKkdFVCoqIC9jbGllbnRzL3tjbGllbnRfaWR9L3BheW1lbnQvY2xpZW50X3BhY2thZ2VzIHwgR2V0IENsaWVudCBQYWNrYWdlcyBMaXN0IE9mIENsaWVudCBbQWxwaGFdCipDbGllbnRQYWNrYWdlc0FwaSogfCBbKipjbGllbnRzUGF5bWVudENsaWVudFBhY2thZ2VzVXBkYXRlVXNhZ2VQb3N0KipdKGRvY3MvQ2xpZW50UGFja2FnZXNBcGkubWQjY2xpZW50c1BheW1lbnRDbGllbnRQYWNrYWdlc1VwZGF0ZVVzYWdlUG9zdCkgfCAqKlBPU1QqKiAvY2xpZW50cy9wYXltZW50L2NsaWVudF9wYWNrYWdlcy91cGRhdGVfdXNhZ2UgfCBVc2UgQ2xpZW50IFBhY2thZ2UgQ3JlZGl0IFtBbHBoYV0KKkNsaWVudFBhY2thZ2VzQXBpKiB8IFsqKmNsaWVudHNQYXltZW50Q2xpZW50UGFja2FnZXNWYWxpZGF0ZUdldCoqXShkb2NzL0NsaWVudFBhY2thZ2VzQXBpLm1kI2NsaWVudHNQYXltZW50Q2xpZW50UGFja2FnZXNWYWxpZGF0ZUdldCkgfCAqKkdFVCoqIC9jbGllbnRzL3BheW1lbnQvY2xpZW50X3BhY2thZ2VzL3ZhbGlkYXRlIHwgVmFsaWRhdGUgQ2xpZW50IFBhY2thZ2UgaGFzIHJlZGVtcHRpb24gW0FscGhhXQoqQ2xpZW50UGFja2FnZXNBcGkqIHwgWyoqcGF5bWVudENsaWVudFBhY2thZ2VzUG9zdCoqXShkb2NzL0NsaWVudFBhY2thZ2VzQXBpLm1kI3BheW1lbnRDbGllbnRQYWNrYWdlc1Bvc3QpIHwgKipQT1NUKiogL3BheW1lbnQvY2xpZW50X3BhY2thZ2VzIHwgQWRkIHBhY2thZ2UgdG8gY2xpZW50IFtBbHBoYV0KKkNsaWVudFBhY2thZ2VzQXBpKiB8IFsqKnBheW1lbnRDbGllbnRQYWNrYWdlc1VwZGF0ZVVzYWdlUG9zdCoqXShkb2NzL0NsaWVudFBhY2thZ2VzQXBpLm1kI3BheW1lbnRDbGllbnRQYWNrYWdlc1VwZGF0ZVVzYWdlUG9zdCkgfCAqKlBPU1QqKiAvcGF5bWVudC9jbGllbnRfcGFja2FnZXMvdXBkYXRlX3VzYWdlIHwgVXNlIENsaWVudCBQYWNrYWdlIENyZWRpdCBbQWxwaGFdCipDbGllbnRzQXBpKiB8IFsqKmNsaWVudHNDbGllbnRJZERlbGV0ZSoqXShkb2NzL0NsaWVudHNBcGkubWQjY2xpZW50c0NsaWVudElkRGVsZXRlKSB8ICoqREVMRVRFKiogL2NsaWVudHMve2NsaWVudF9pZH0gfCBEZWxldGVzIGEgQ2xpZW50IGJ5IElkCipDbGllbnRzQXBpKiB8IFsqKmNsaWVudHNDbGllbnRJZEdldCoqXShkb2NzL0NsaWVudHNBcGkubWQjY2xpZW50c0NsaWVudElkR2V0KSB8ICoqR0VUKiogL2NsaWVudHMve2NsaWVudF9pZH0gfCBSZXRyaWV2ZXMgYSBDbGllbnQgYnkgSWQKKkNsaWVudHNBcGkqIHwgWyoqY2xpZW50c0NsaWVudElkUHV0KipdKGRvY3MvQ2xpZW50c0FwaS5tZCNjbGllbnRzQ2xpZW50SWRQdXQpIHwgKipQVVQqKiAvY2xpZW50cy97Y2xpZW50X2lkfSB8IFVwZGF0ZXMgYSBDbGllbnQKKkNsaWVudHNBcGkqIHwgWyoqY2xpZW50c0dldCoqXShkb2NzL0NsaWVudHNBcGkubWQjY2xpZW50c0dldCkgfCAqKkdFVCoqIC9jbGllbnRzIHwgR2V0IENsaWVudHMKKkNsaWVudHNBcGkqIHwgWyoqY2xpZW50c1Bvc3QqKl0oZG9jcy9DbGllbnRzQXBpLm1kI2NsaWVudHNQb3N0KSB8ICoqUE9TVCoqIC9jbGllbnRzIHwgQ3JlYXRlIGEgQ2xpZW50CipDbGllbnRzQXBpKiB8IFsqKmdsb2JhbENsaWVudHNHZXQqKl0oZG9jcy9DbGllbnRzQXBpLm1kI2dsb2JhbENsaWVudHNHZXQpIHwgKipHRVQqKiAvZ2xvYmFsL2NsaWVudHMgfCBHZXRzIGEgbGlzdCBvZiBjbGllbnRzCipDb252ZXJzYXRpb25zQXBpKiB8IFsqKmNsaWVudHNDbGllbnRJZENvbnZlcnNhdGlvbnNHZXQqKl0oZG9jcy9Db252ZXJzYXRpb25zQXBpLm1kI2NsaWVudHNDbGllbnRJZENvbnZlcnNhdGlvbnNHZXQpIHwgKipHRVQqKiAvY2xpZW50cy97Y2xpZW50X2lkfS9jb252ZXJzYXRpb25zIHwgR2V0IENvbnZlcnNhdGlvbnMgRm9yIEEgQ2xpZW50CipDb252ZXJzYXRpb25zQXBpKiB8IFsqKmNvbnZlcnNhdGlvbnNHZXQqKl0oZG9jcy9Db252ZXJzYXRpb25zQXBpLm1kI2NvbnZlcnNhdGlvbnNHZXQpIHwgKipHRVQqKiAvY29udmVyc2F0aW9ucyB8IEdldCBDb252ZXJzYXRpb25zCipEb2N1bWVudHNBcGkqIHwgWyoqY2xpZW50c0NsaWVudElkRG9jdW1lbnRzR2V0KipdKGRvY3MvRG9jdW1lbnRzQXBpLm1kI2NsaWVudHNDbGllbnRJZERvY3VtZW50c0dldCkgfCAqKkdFVCoqIC9jbGllbnRzL3tjbGllbnRfaWR9L2RvY3VtZW50cyB8IEdldCBEb2N1bWVudHMgRm9yIEEgQ2xpZW50CipFc3RpbWF0ZXNBcGkqIHwgWyoqY2xpZW50c0NsaWVudElkRXN0aW1hdGVzR2V0KipdKGRvY3MvRXN0aW1hdGVzQXBpLm1kI2NsaWVudHNDbGllbnRJZEVzdGltYXRlc0dldCkgfCAqKkdFVCoqIC9jbGllbnRzL3tjbGllbnRfaWR9L2VzdGltYXRlcyB8IEdldCBFc3RpbWF0ZXMgT2YgQ2xpZW50CipFc3RpbWF0ZXNBcGkqIHwgWyoqZXN0aW1hdGVzR2V0KipdKGRvY3MvRXN0aW1hdGVzQXBpLm1kI2VzdGltYXRlc0dldCkgfCAqKkdFVCoqIC9lc3RpbWF0ZXMgfCBHZXQgRXN0aW1hdGVzIExpc3QKKkVzdGltYXRlc0FwaSogfCBbKiplc3RpbWF0ZXNQb3N0KipdKGRvY3MvRXN0aW1hdGVzQXBpLm1kI2VzdGltYXRlc1Bvc3QpIHwgKipQT1NUKiogL2VzdGltYXRlcyB8IENyZWF0ZSBOZXcgRXN0aW1hdGUKKkV2ZW50QXR0ZW5kYW5jZUFwaSogfCBbKipnbG9iYWxFdmVudEF0dGVuZGFuY2VzR2V0KipdKGRvY3MvRXZlbnRBdHRlbmRhbmNlQXBpLm1kI2dsb2JhbEV2ZW50QXR0ZW5kYW5jZXNHZXQpIHwgKipHRVQqKiAvZ2xvYmFsL2V2ZW50X2F0dGVuZGFuY2VzIHwgR2V0cyBhIGxpc3Qgb2YgZXZlbnQgYXR0ZW5kYW5jZXMKKkV2ZW50SW5zdGFuY2VBcGkqIHwgWyoqZ2xvYmFsRXZlbnRJbnN0YW5jZXNHZXQqKl0oZG9jcy9FdmVudEluc3RhbmNlQXBpLm1kI2dsb2JhbEV2ZW50SW5zdGFuY2VzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9ldmVudF9pbnN0YW5jZXMgfCBHZXRzIGEgbGlzdCBvZiBldmVudCBpbnN0YW5jZXMKKkV2ZW50SW5zdGFuY2VBcGkqIHwgWyoqc2NoZWR1bGluZ0V2ZW50SW5zdGFuY2VFdmVudEluc3RhbmNlSWRHZXQqKl0oZG9jcy9FdmVudEluc3RhbmNlQXBpLm1kI3NjaGVkdWxpbmdFdmVudEluc3RhbmNlRXZlbnRJbnN0YW5jZUlkR2V0KSB8ICoqR0VUKiogL3NjaGVkdWxpbmcvZXZlbnRfaW5zdGFuY2Uve2V2ZW50X2luc3RhbmNlX2lkfSB8IEdldCBFdmVudCBJbnN0YW5jZQoqRmllbGRzQXBpKiB8IFsqKmZpZWxkc0ZpZWxkSWREZWxldGUqKl0oZG9jcy9GaWVsZHNBcGkubWQjZmllbGRzRmllbGRJZERlbGV0ZSkgfCAqKkRFTEVURSoqIC9maWVsZHMve2ZpZWxkX2lkfSB8IERlbGV0ZXMgYSBGaWVsZAoqRmllbGRzQXBpKiB8IFsqKmZpZWxkc0ZpZWxkSWRHZXQqKl0oZG9jcy9GaWVsZHNBcGkubWQjZmllbGRzRmllbGRJZEdldCkgfCAqKkdFVCoqIC9maWVsZHMve2ZpZWxkX2lkfSB8IEdldCBGaWVsZAoqRmllbGRzQXBpKiB8IFsqKmZpZWxkc0ZpZWxkSWRQdXQqKl0oZG9jcy9GaWVsZHNBcGkubWQjZmllbGRzRmllbGRJZFB1dCkgfCAqKlBVVCoqIC9maWVsZHMve2ZpZWxkX2lkfSB8IFVwZGF0ZXMgYSBGaWVsZAoqRmllbGRzQXBpKiB8IFsqKmZpZWxkc0dldCoqXShkb2NzL0ZpZWxkc0FwaS5tZCNmaWVsZHNHZXQpIHwgKipHRVQqKiAvZmllbGRzIHwgR2V0IGFsbCBGaWVsZHMKKkZpZWxkc0FwaSogfCBbKipmaWVsZHNQb3N0KipdKGRvY3MvRmllbGRzQXBpLm1kI2ZpZWxkc1Bvc3QpIHwgKipQT1NUKiogL2ZpZWxkcyB8IENyZWF0ZSBhIE5ldyBGaWVsZAoqRm9ybXNBcGkqIHwgWyoqZm9ybXNHZXQqKl0oZG9jcy9Gb3Jtc0FwaS5tZCNmb3Jtc0dldCkgfCAqKkdFVCoqIC9mb3JtcyB8IEdldCBGb3JtcwoqRm9ybXNBcGkqIHwgWyoqZm9ybXNQdXQqKl0oZG9jcy9Gb3Jtc0FwaS5tZCNmb3Jtc1B1dCkgfCAqKlBVVCoqIC9mb3JtcyB8IFVwZGF0ZXMgYSBGb3JtCipHbG9iYWxBcGkqIHwgWyoqZ2xvYmFsQ2xpZW50UGFja2FnZXNHZXQqKl0oZG9jcy9HbG9iYWxBcGkubWQjZ2xvYmFsQ2xpZW50UGFja2FnZXNHZXQpIHwgKipHRVQqKiAvZ2xvYmFsL2NsaWVudF9wYWNrYWdlcyB8IEdldHMgYSBsaXN0IG9mIGNsaWVudCBwYWNrYWdlcwoqR2xvYmFsQXBpKiB8IFsqKmdsb2JhbENvbnZlcnNhdGlvbnNHZXQqKl0oZG9jcy9HbG9iYWxBcGkubWQjZ2xvYmFsQ29udmVyc2F0aW9uc0dldCkgfCAqKkdFVCoqIC9nbG9iYWwvY29udmVyc2F0aW9ucyB8IEdldHMgYSBsaXN0IG9mIGNvbnZlcnNhdGlvbnMKKkdsb2JhbEFwaSogfCBbKipnbG9iYWxFc3RpbWF0ZXNHZXQqKl0oZG9jcy9HbG9iYWxBcGkubWQjZ2xvYmFsRXN0aW1hdGVzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9lc3RpbWF0ZXMgfCBHZXRzIGEgbGlzdCBvZiBlc3RpbWF0ZXMKKkdsb2JhbEFwaSogfCBbKipnbG9iYWxJbnZvaWNlc0dldCoqXShkb2NzL0dsb2JhbEFwaS5tZCNnbG9iYWxJbnZvaWNlc0dldCkgfCAqKkdFVCoqIC9nbG9iYWwvaW52b2ljZXMgfCBHZXRzIGEgbGlzdCBvZiBpbnZvaWNlcwoqR2xvYmFsQXBpKiB8IFsqKmdsb2JhbE1hdHRlcnNHZXQqKl0oZG9jcy9HbG9iYWxBcGkubWQjZ2xvYmFsTWF0dGVyc0dldCkgfCAqKkdFVCoqIC9nbG9iYWwvbWF0dGVycyB8IEdldHMgYSBsaXN0IG9mIG1hdHRlcnMKKkdsb2JhbEFwaSogfCBbKipnbG9iYWxQYWNrYWdlc0dldCoqXShkb2NzL0dsb2JhbEFwaS5tZCNnbG9iYWxQYWNrYWdlc0dldCkgfCAqKkdFVCoqIC9nbG9iYWwvcGFja2FnZXMgfCBHZXRzIGEgbGlzdCBvZiBwYWNrYWdlcwoqR2xvYmFsQXBpKiB8IFsqKmdsb2JhbFByb2R1Y3RzR2V0KipdKGRvY3MvR2xvYmFsQXBpLm1kI2dsb2JhbFByb2R1Y3RzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9wcm9kdWN0cyB8IEdldHMgYSBsaXN0IG9mIHByb2R1Y3RzCipJbnZvaWNlc0FwaSogfCBbKipjbGllbnRzQ2xpZW50SWRJbnZvaWNlc0dldCoqXShkb2NzL0ludm9pY2VzQXBpLm1kI2NsaWVudHNDbGllbnRJZEludm9pY2VzR2V0KSB8ICoqR0VUKiogL2NsaWVudHMve2NsaWVudF9pZH0vaW52b2ljZXMgfCBHZXQgSW52b2ljZXMgT2YgQ2xpZW50CipJbnZvaWNlc0FwaSogfCBbKippbnZvaWNlc0dldCoqXShkb2NzL0ludm9pY2VzQXBpLm1kI2ludm9pY2VzR2V0KSB8ICoqR0VUKiogL2ludm9pY2VzIHwgR2V0IEludm9pY2VzIExpc3QKKkludm9pY2VzQXBpKiB8IFsqKmludm9pY2VzSW52b2ljZUlkR2V0KipdKGRvY3MvSW52b2ljZXNBcGkubWQjaW52b2ljZXNJbnZvaWNlSWRHZXQpIHwgKipHRVQqKiAvaW52b2ljZXMve2ludm9pY2VfaWR9IHwgR2V0IEludm9pY2UgQnkgSUQKKkludm9pY2VzQXBpKiB8IFsqKmludm9pY2VzUG9zdCoqXShkb2NzL0ludm9pY2VzQXBpLm1kI2ludm9pY2VzUG9zdCkgfCAqKlBPU1QqKiAvaW52b2ljZXMgfCBDcmVhdGUgTmV3IEludm9pY2UKKkxlYWRHZW5BcGkqIHwgWyoqbGVhZGdlblBvc3QqKl0oZG9jcy9MZWFkR2VuQXBpLm1kI2xlYWRnZW5Qb3N0KSB8ICoqUE9TVCoqIC9sZWFkZ2VuIHwgQ3JlYXRlcyBhIGxlYWQKKk1hcmtldGluZ0FwaSogfCBbKipnbG9iYWxDYW1wYWlnblJlY2lwaWVudHNHZXQqKl0oZG9jcy9NYXJrZXRpbmdBcGkubWQjZ2xvYmFsQ2FtcGFpZ25SZWNpcGllbnRzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9jYW1wYWlnbl9yZWNpcGllbnRzIHwgR2V0cyBhIGxpc3Qgb2YgY2FtcGFpZ24gcmVjaXBpZW50cwoqTWFya2V0aW5nQXBpKiB8IFsqKmdsb2JhbENhbXBhaWduc0dldCoqXShkb2NzL01hcmtldGluZ0FwaS5tZCNnbG9iYWxDYW1wYWlnbnNHZXQpIHwgKipHRVQqKiAvZ2xvYmFsL2NhbXBhaWducyB8IEdldHMgYSBsaXN0IG9mIGNhbXBhaWducwoqTWFya2V0aW5nQXBpKiB8IFsqKmdsb2JhbFNjaGVkdWxlZENhbXBhaWduc0dldCoqXShkb2NzL01hcmtldGluZ0FwaS5tZCNnbG9iYWxTY2hlZHVsZWRDYW1wYWlnbnNHZXQpIHwgKipHRVQqKiAvZ2xvYmFsL3NjaGVkdWxlZF9jYW1wYWlnbnMgfCBHZXRzIGEgbGlzdCBvZiBzY2hlZHVsZWQgY2FtcGFpZ25zCipNYXR0ZXJzQXBpKiB8IFsqKmNsaWVudHNNZXJnZXNNZXJnZUNsaWVudHNQdXQqKl0oZG9jcy9NYXR0ZXJzQXBpLm1kI2NsaWVudHNNZXJnZXNNZXJnZUNsaWVudHNQdXQpIHwgKipQVVQqKiAvY2xpZW50cy9tZXJnZXMvbWVyZ2VfY2xpZW50cyB8IE1lcmdlIGR1cGxpY2F0ZSBjbGllbnRzIGludG8gYSBwcmltYXJ5IGNsaWVudC4KKk1hdHRlcnNBcGkqIHwgWyoqY2xpZW50c01lcmdlc1Bvc3NpYmxlTWVyZ2VNYXN0ZXJHZXQqKl0oZG9jcy9NYXR0ZXJzQXBpLm1kI2NsaWVudHNNZXJnZXNQb3NzaWJsZU1lcmdlTWFzdGVyR2V0KSB8ICoqR0VUKiogL2NsaWVudHMvbWVyZ2VzL3Bvc3NpYmxlX21lcmdlX21hc3RlciB8IExpc3Qgb2YgY2xpZW50cyB0aGF0IGNhbiBiZSB1c2VkIGFzIHByaW1hcnkgZm9yIG1lcmdlLgoqTWVzc2FnZXNBcGkqIHwgWyoqbWVzc2FnZXNQb3N0KipdKGRvY3MvTWVzc2FnZXNBcGkubWQjbWVzc2FnZXNQb3N0KSB8ICoqUE9TVCoqIC9tZXNzYWdlcyB8IENyZWF0ZSBhIE1lc3NhZ2UKKlBhY2thZ2VzQXBpKiB8IFsqKnBheW1lbnRQYWNrYWdlc0dldCoqXShkb2NzL1BhY2thZ2VzQXBpLm1kI3BheW1lbnRQYWNrYWdlc0dldCkgfCAqKkdFVCoqIC9wYXltZW50L3BhY2thZ2VzIHwgR2V0IGFsbCBwYWNrYWdlIG9mIGJ1c2luZXNzCipQYWNrYWdlc0FwaSogfCBbKipwYXltZW50UGFja2FnZXNQYWNrYWdlSWRHZXQqKl0oZG9jcy9QYWNrYWdlc0FwaS5tZCNwYXltZW50UGFja2FnZXNQYWNrYWdlSWRHZXQpIHwgKipHRVQqKiAvcGF5bWVudC9wYWNrYWdlcy97cGFja2FnZV9pZH0gfCBTaG93IHBhY2thZ2UgaW5mbwoqUGFja2FnZXNBcGkqIHwgWyoqcGF5bWVudFBhY2thZ2VzUGFja2FnZUlkUHV0KipdKGRvY3MvUGFja2FnZXNBcGkubWQjcGF5bWVudFBhY2thZ2VzUGFja2FnZUlkUHV0KSB8ICoqUFVUKiogL3BheW1lbnQvcGFja2FnZXMve3BhY2thZ2VfaWR9IHwgVXBkYXRlIHBhY2thZ2UgW0FscGhhXQoqUGFja2FnZXNBcGkqIHwgWyoqcGF5bWVudFBhY2thZ2VzUG9zdCoqXShkb2NzL1BhY2thZ2VzQXBpLm1kI3BheW1lbnRQYWNrYWdlc1Bvc3QpIHwgKipQT1NUKiogL3BheW1lbnQvcGFja2FnZXMgfCBDcmVhdGUgUGFja2FnZSAKKlBheW1lbnRDaGVja291dEFwaSogfCBbKipwYXltZW50Q2hlY2tvdXRQdXQqKl0oZG9jcy9QYXltZW50Q2hlY2tvdXRBcGkubWQjcGF5bWVudENoZWNrb3V0UHV0KSB8ICoqUFVUKiogL3BheW1lbnQvY2hlY2tvdXQvIHwgU2VuZCBjaGVja291dCB1cGRhdGUgYnkgd2ViaG9vayAKKlBheW1lbnRDaGVja291dEFwaSogfCBbKipwYXltZW50Q2hlY2tvdXRVcmxLZXlHZXQqKl0oZG9jcy9QYXltZW50Q2hlY2tvdXRBcGkubWQjcGF5bWVudENoZWNrb3V0VXJsS2V5R2V0KSB8ICoqR0VUKiogL3BheW1lbnQvY2hlY2tvdXQve3VybF9rZXl9IHwgR2V0IE9wZW4gQ2hlY2tvdXQgRm9yIFNwZWNpZmljIHVybF9rZXkKKlBheW1lbnRTZXR0aW5nc0FwaSogfCBbKipwYXltZW50U2V0dGluZ3NHZXQqKl0oZG9jcy9QYXltZW50U2V0dGluZ3NBcGkubWQjcGF5bWVudFNldHRpbmdzR2V0KSB8ICoqR0VUKiogL3BheW1lbnQvc2V0dGluZ3MgfCBHZXQgQ3VycmVudCBQYXltZW50IFNldHRpbmdzCipQYXltZW50U2V0dGluZ3NBcGkqIHwgWyoqcGF5bWVudFNldHRpbmdzUG9zdCoqXShkb2NzL1BheW1lbnRTZXR0aW5nc0FwaS5tZCNwYXltZW50U2V0dGluZ3NQb3N0KSB8ICoqUE9TVCoqIC9wYXltZW50L3NldHRpbmdzIHwgVXBkYXRlIFBheW1lbnQgU2V0dGluZ3MKKlBheW1lbnRTdGF0dXNlc0FwaSogfCBbKipwYXltZW50U3RhdHVzZXNJZEFwcGx5Q291cG9uUHV0KipdKGRvY3MvUGF5bWVudFN0YXR1c2VzQXBpLm1kI3BheW1lbnRTdGF0dXNlc0lkQXBwbHlDb3Vwb25QdXQpIHwgKipQVVQqKiAvcGF5bWVudF9zdGF0dXNlcy97aWR9L2FwcGx5X2NvdXBvbiB8IEFwcGx5IENvdXBvbgoqUGF5bWVudFN0YXR1c2VzQXBpKiB8IFsqKnBheW1lbnRTdGF0dXNlc0lkVmFsaWRhdGVDb3Vwb25HZXQqKl0oZG9jcy9QYXltZW50U3RhdHVzZXNBcGkubWQjcGF5bWVudFN0YXR1c2VzSWRWYWxpZGF0ZUNvdXBvbkdldCkgfCAqKkdFVCoqIC9wYXltZW50X3N0YXR1c2VzL3tpZH0vdmFsaWRhdGVfY291cG9uIHwgVmFsaWRhdGUgQ291cG9uCipQYXltZW50c0FwaSogfCBbKipjbGllbnRzQ2xpZW50SWRQYXltZW50c0dldCoqXShkb2NzL1BheW1lbnRzQXBpLm1kI2NsaWVudHNDbGllbnRJZFBheW1lbnRzR2V0KSB8ICoqR0VUKiogL2NsaWVudHMve2NsaWVudF9pZH0vcGF5bWVudHMgfCBHZXQgUGF5bWVudHMgb2YgQ2xpZW50CipQYXltZW50c0FwaSogfCBbKipnbG9iYWxQYXltZW50c0dldCoqXShkb2NzL1BheW1lbnRzQXBpLm1kI2dsb2JhbFBheW1lbnRzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9wYXltZW50cyB8IEdldHMgYSBsaXN0IG9mIHBheW1lbnRzCipQYXltZW50c0FwaSogfCBbKipwYXltZW50c0dldCoqXShkb2NzL1BheW1lbnRzQXBpLm1kI3BheW1lbnRzR2V0KSB8ICoqR0VUKiogL3BheW1lbnRzIHwgR2V0IFBheW1lbnRzIExpc3QKKlBheW1lbnRzQXBpKiB8IFsqKnBheW1lbnRzUGF5bWVudFVpZE1hdGNoUG9zdCoqXShkb2NzL1BheW1lbnRzQXBpLm1kI3BheW1lbnRzUGF5bWVudFVpZE1hdGNoUG9zdCkgfCAqKlBPU1QqKiAvcGF5bWVudHMve3BheW1lbnRfdWlkfS9tYXRjaCB8IE1hdGNoIFBheW1lbnQKKlBheW1lbnRzQXBpKiB8IFsqKnBheW1lbnRzUG9zdCoqXShkb2NzL1BheW1lbnRzQXBpLm1kI3BheW1lbnRzUG9zdCkgfCAqKlBPU1QqKiAvcGF5bWVudHMgfCBDcmVhdGUgTmV3IFBheW1lbnQKKlNjaGVkdWxpbmdGb3Jtc0FwaSogfCBbKipzY2hlZHVsaW5nU2NoZWR1bGluZ0Zvcm1zR2V0Rm9ybUdldCoqXShkb2NzL1NjaGVkdWxpbmdGb3Jtc0FwaS5tZCNzY2hlZHVsaW5nU2NoZWR1bGluZ0Zvcm1zR2V0Rm9ybUdldCkgfCAqKkdFVCoqIC9zY2hlZHVsaW5nL3NjaGVkdWxpbmdfZm9ybXMvZ2V0X2Zvcm0gfCAKKlNlcnZpY2VzQXBpKiB8IFsqKmNhdGVnb3JpZXNDYXRlZ29yeUlkU2VydmljZXNHZXQqKl0oZG9jcy9TZXJ2aWNlc0FwaS5tZCNjYXRlZ29yaWVzQ2F0ZWdvcnlJZFNlcnZpY2VzR2V0KSB8ICoqR0VUKiogL2NhdGVnb3JpZXMve2NhdGVnb3J5X2lkfS9zZXJ2aWNlcyB8IEdldCBTZXJ2aWNlcyBMaXN0IGJ5IGNhdGVnb3J5IFtBbHBoYV0KKlNlcnZpY2VzQXBpKiB8IFsqKmdsb2JhbFNlcnZpY2VzR2V0KipdKGRvY3MvU2VydmljZXNBcGkubWQjZ2xvYmFsU2VydmljZXNHZXQpIHwgKipHRVQqKiAvZ2xvYmFsL3NlcnZpY2VzIHwgR2V0cyBhIGxpc3Qgb2Ygc2VydmljZXMKKlNlcnZpY2VzQXBpKiB8IFsqKnNlcnZpY2VzR2V0KipdKGRvY3MvU2VydmljZXNBcGkubWQjc2VydmljZXNHZXQpIHwgKipHRVQqKiAvc2VydmljZXMgfCBHZXQgU2VydmljZXMgTGlzdCBbQWxwaGFdCipTZXJ2aWNlc0FwaSogfCBbKipzZXJ2aWNlc1NlcnZpY2VJZEdldCoqXShkb2NzL1NlcnZpY2VzQXBpLm1kI3NlcnZpY2VzU2VydmljZUlkR2V0KSB8ICoqR0VUKiogL3NlcnZpY2VzL3tzZXJ2aWNlX2lkfSB8IEdldCBTZXJ2aWNlIEJ5IElEIFtBbHBoYV0KKlN0YWZmQXBpKiB8IFsqKmJ1c2luZXNzZXNCdXNpbmVzc0lkU3RhZmZzR2V0KipdKGRvY3MvU3RhZmZBcGkubWQjYnVzaW5lc3Nlc0J1c2luZXNzSWRTdGFmZnNHZXQpIHwgKipHRVQqKiAvYnVzaW5lc3Nlcy97YnVzaW5lc3NfaWR9L3N0YWZmcyB8IEdldCBTdGFmZiBNZW1iZXJzCipTdGFmZkFwaSogfCBbKipidXNpbmVzc2VzQnVzaW5lc3NJZFN0YWZmc1Bvc3QqKl0oZG9jcy9TdGFmZkFwaS5tZCNidXNpbmVzc2VzQnVzaW5lc3NJZFN0YWZmc1Bvc3QpIHwgKipQT1NUKiogL2J1c2luZXNzZXMve2J1c2luZXNzX2lkfS9zdGFmZnMgfCBDcmVhdGUgU3RhZmYgTWVtYmVyCipTdGFmZkFwaSogfCBbKipidXNpbmVzc2VzQnVzaW5lc3NJZFN0YWZmc1N0YWZmSWREZWxldGUqKl0oZG9jcy9TdGFmZkFwaS5tZCNidXNpbmVzc2VzQnVzaW5lc3NJZFN0YWZmc1N0YWZmSWREZWxldGUpIHwgKipERUxFVEUqKiAvYnVzaW5lc3Nlcy97YnVzaW5lc3NfaWR9L3N0YWZmcy97c3RhZmZfaWR9IHwgRGVsZXRlIFN0YWZmIE1lbWJlcgoqU3RhZmZBcGkqIHwgWyoqYnVzaW5lc3Nlc0J1c2luZXNzSWRTdGFmZnNTdGFmZklkR2V0KipdKGRvY3MvU3RhZmZBcGkubWQjYnVzaW5lc3Nlc0J1c2luZXNzSWRTdGFmZnNTdGFmZklkR2V0KSB8ICoqR0VUKiogL2J1c2luZXNzZXMve2J1c2luZXNzX2lkfS9zdGFmZnMve3N0YWZmX2lkfSB8IEdldCBTdGFmZiBNZW1iZXIgRGV0YWlscwoqU3RhZmZBcGkqIHwgWyoqZ2xvYmFsU3RhZmZzR2V0KipdKGRvY3MvU3RhZmZBcGkubWQjZ2xvYmFsU3RhZmZzR2V0KSB8ICoqR0VUKiogL2dsb2JhbC9zdGFmZnMgfCBHZXRzIGEgbGlzdCBvZiBzdGFmZnMKKlN0YWZmQXBpKiB8IFsqKnNjaGVkdWxpbmdTdGFmZkdldCoqXShkb2NzL1N0YWZmQXBpLm1kI3NjaGVkdWxpbmdTdGFmZkdldCkgfCAqKkdFVCoqIC9zY2hlZHVsaW5nL3N0YWZmIHwgR2V0IFN0YWZmIExpc3QgW0FscGhhXQoqU3RhZmZBcGkqIHwgWyoqc2NoZWR1bGluZ1N0YWZmU3RhZmZJZEdldCoqXShkb2NzL1N0YWZmQXBpLm1kI3NjaGVkdWxpbmdTdGFmZlN0YWZmSWRHZXQpIHwgKipHRVQqKiAvc2NoZWR1bGluZy9zdGFmZi97c3RhZmZfaWR9IHwgR2V0IFN0YWZmIEJ5IElEIFtBbHBoYV0KKlRva2VuTWFuYWdlbWVudEFwaSogfCBbKip0b2tlbnNHZXQqKl0oZG9jcy9Ub2tlbk1hbmFnZW1lbnRBcGkubWQjdG9rZW5zR2V0KSB8ICoqR0VUKiogL3Rva2VucyB8IEdldCB0b2tlbnMKKlRva2VuTWFuYWdlbWVudEFwaSogfCBbKip0b2tlbnNQb3N0KipdKGRvY3MvVG9rZW5NYW5hZ2VtZW50QXBpLm1kI3Rva2Vuc1Bvc3QpIHwgKipQT1NUKiogL3Rva2VucyB8IENyZWF0ZXMgYSB0b2tlbgoqVG9rZW5NYW5hZ2VtZW50QXBpKiB8IFsqKnRva2Vuc1Jldm9rZVBvc3QqKl0oZG9jcy9Ub2tlbk1hbmFnZW1lbnRBcGkubWQjdG9rZW5zUmV2b2tlUG9zdCkgfCAqKlBPU1QqKiAvdG9rZW5zL3Jldm9rZSB8IFJldm9rZXMgYSB0b2tlbgoqV2ViaG9va3NBcGkqIHwgWyoqd2ViaG9va1N1YnNjcmliZVBvc3QqKl0oZG9jcy9XZWJob29rc0FwaS5tZCN3ZWJob29rU3Vic2NyaWJlUG9zdCkgfCAqKlBPU1QqKiAvd2ViaG9vay9zdWJzY3JpYmUgfCBTdWJzY3JpYmUgVG8gV2ViaG9vawoqV2ViaG9va3NBcGkqIHwgWyoqd2ViaG9va1Vuc3Vic2NyaWJlUG9zdCoqXShkb2NzL1dlYmhvb2tzQXBpLm1kI3dlYmhvb2tVbnN1YnNjcmliZVBvc3QpIHwgKipQT1NUKiogL3dlYmhvb2svdW5zdWJzY3JpYmUgfCBVbnN1YnNjcmliZSBmcm9tIFdlYmhvb2sKKldlYmhvb2tzQXBpKiB8IFsqKndlYmhvb2tzR2V0KipdKGRvY3MvV2ViaG9va3NBcGkubWQjd2ViaG9va3NHZXQpIHwgKipHRVQqKiAvd2ViaG9va3MgfCBHZXQgV2ViaG9va3MgTGlzdAoqV2l6YXJkQXBpKiB8IFsqKmJ1c2luZXNzZXNCdXNpbmVzc0lkV2l6YXJkc0dldCoqXShkb2NzL1dpemFyZEFwaS5tZCNidXNpbmVzc2VzQnVzaW5lc3NJZFdpemFyZHNHZXQpIHwgKipHRVQqKiAvYnVzaW5lc3Nlcy97YnVzaW5lc3NfaWR9L3dpemFyZHMgfCBHZXRzIGEgbGlzdCBvZiB3aXphcmRzCipXaXphcmRBcGkqIHwgWyoqYnVzaW5lc3Nlc0J1c2luZXNzSWRXaXphcmRzV2l6YXJkTmFtZUdldCoqXShkb2NzL1dpemFyZEFwaS5tZCNidXNpbmVzc2VzQnVzaW5lc3NJZFdpemFyZHNXaXphcmROYW1lR2V0KSB8ICoqR0VUKiogL2J1c2luZXNzZXMve2J1c2luZXNzX2lkfS93aXphcmRzL3t3aXphcmRfbmFtZX0gfCBHZXRzIGEgd2l6YXJkIGJ5IG5hbWUKKldpemFyZEFwaSogfCBbKipidXNpbmVzc2VzQnVzaW5lc3NJZFdpemFyZHNXaXphcmROYW1lUHV0KipdKGRvY3MvV2l6YXJkQXBpLm1kI2J1c2luZXNzZXNCdXNpbmVzc0lkV2l6YXJkc1dpemFyZE5hbWVQdXQpIHwgKipQVVQqKiAvYnVzaW5lc3Nlcy97YnVzaW5lc3NfaWR9L3dpemFyZHMve3dpemFyZF9uYW1lfSB8IFVwZGF0ZSBhIHdpemFyZAoKCiMjIERvY3VtZW50YXRpb24gZm9yIE1vZGVscwoKIC0gW0FjdGlvbkRhdGFdKGRvY3MvQWN0aW9uRGF0YS5tZCkKIC0gW0FkbWluQWNjb3VudF0oZG9jcy9BZG1pbkFjY291bnQubWQpCiAtIFtBcHBdKGRvY3MvQXBwLm1kKQogLSBbQXBwRGF0YV0oZG9jcy9BcHBEYXRhLm1kKQogLSBbQXBwRGF0YTFdKGRvY3MvQXBwRGF0YTEubWQpCiAtIFtBcHBsaWNhdGlvbl0oZG9jcy9BcHBsaWNhdGlvbi5tZCkKIC0gW0FwcG9pbnRtZW50XShkb2NzL0FwcG9pbnRtZW50Lm1kKQogLSBbQXBwc0RlZXBMaW5rXShkb2NzL0FwcHNEZWVwTGluay5tZCkKIC0gW0FwcHNEZXNjcmlwdGlvbl0oZG9jcy9BcHBzRGVzY3JpcHRpb24ubWQpCiAtIFtBcHBzR2V0MjAxUmVzcG9uc2VdKGRvY3MvQXBwc0dldDIwMVJlc3BvbnNlLm1kKQogLSBbQXBwc0lkQXNzaWduUG9zdDIwMVJlc3BvbnNlXShkb2NzL0FwcHNJZEFzc2lnblBvc3QyMDFSZXNwb25zZS5tZCkKIC0gW0FwcHNJZEdldDIwMFJlc3BvbnNlXShkb2NzL0FwcHNJZEdldDIwMFJlc3BvbnNlLm1kKQogLSBbQXBwc0lkSW5zdGFsbEFwcFBvc3QyMDFSZXNwb25zZV0oZG9jcy9BcHBzSWRJbnN0YWxsQXBwUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbQXBwc0lkSW5zdGFsbEFwcFBvc3Q0MjJSZXNwb25zZV0oZG9jcy9BcHBzSWRJbnN0YWxsQXBwUG9zdDQyMlJlc3BvbnNlLm1kKQogLSBbQXBwc0lkTWVudUl0ZW1zXShkb2NzL0FwcHNJZE1lbnVJdGVtcy5tZCkKIC0gW0FwcHNJZE1lbnVJdGVtc1N1Yml0ZW1zXShkb2NzL0FwcHNJZE1lbnVJdGVtc1N1Yml0ZW1zLm1kKQogLSBbQXBwc0lkUHV0MjAwUmVzcG9uc2VdKGRvY3MvQXBwc0lkUHV0MjAwUmVzcG9uc2UubWQpCiAtIFtBcHBzSWRVbmFzc2lnblBvc3QyMDFSZXNwb25zZV0oZG9jcy9BcHBzSWRVbmFzc2lnblBvc3QyMDFSZXNwb25zZS5tZCkKIC0gW0FwcHNJZFVuaW5zdGFsbEFwcFBvc3QyMDFSZXNwb25zZV0oZG9jcy9BcHBzSWRVbmluc3RhbGxBcHBQb3N0MjAxUmVzcG9uc2UubWQpCiAtIFtBcHBzSWRVbmluc3RhbGxBcHBQb3N0NDIyUmVzcG9uc2VdKGRvY3MvQXBwc0lkVW5pbnN0YWxsQXBwUG9zdDQyMlJlc3BvbnNlLm1kKQogLSBbQXBwc01lbnVJdGVtc10oZG9jcy9BcHBzTWVudUl0ZW1zLm1kKQogLSBbQXBwc01lbnVJdGVtc0l0ZW1OYW1lXShkb2NzL0FwcHNNZW51SXRlbXNJdGVtTmFtZS5tZCkKIC0gW0FwcHNNZW51SXRlbXNTdWJpdGVtc10oZG9jcy9BcHBzTWVudUl0ZW1zU3ViaXRlbXMubWQpCiAtIFtBcHBzUG9zdDIwMVJlc3BvbnNlXShkb2NzL0FwcHNQb3N0MjAxUmVzcG9uc2UubWQpCiAtIFtBc3NpZ25tZW50XShkb2NzL0Fzc2lnbm1lbnQubWQpCiAtIFtBdmFpbGFiaWxpdHldKGRvY3MvQXZhaWxhYmlsaXR5Lm1kKQogLSBbQm9keTJdKGRvY3MvQm9keTIubWQpCiAtIFtCb29raW5nXShkb2NzL0Jvb2tpbmcubWQpCiAtIFtCb29raW5nMV0oZG9jcy9Cb29raW5nMS5tZCkKIC0gW0Jvb2tpbmdDcmVkaXRdKGRvY3MvQm9va2luZ0NyZWRpdC5tZCkKIC0gW0Jvb2tpbmdSZXN0cmljdGlvbl0oZG9jcy9Cb29raW5nUmVzdHJpY3Rpb24ubWQpCiAtIFtCcmFuZGluZ10oZG9jcy9CcmFuZGluZy5tZCkKIC0gW0J1c2luZXNzXShkb2NzL0J1c2luZXNzLm1kKQogLSBbQnVzaW5lc3MxXShkb2NzL0J1c2luZXNzMS5tZCkKIC0gW0J1c2luZXNzZXNBZG1pbkFjY291bnRdKGRvY3MvQnVzaW5lc3Nlc0FkbWluQWNjb3VudC5tZCkKIC0gW0J1c2luZXNzZXNCdXNpbmVzc10oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3MubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZEJ1c2luZXNzXShkb2NzL0J1c2luZXNzZXNCdXNpbmVzc0lkQnVzaW5lc3MubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZEJ1c2luZXNzQWRtaW5BY2NvdW50XShkb2NzL0J1c2luZXNzZXNCdXNpbmVzc0lkQnVzaW5lc3NBZG1pbkFjY291bnQubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZEJ1c2luZXNzQnVzaW5lc3NdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRCdXNpbmVzc0J1c2luZXNzLm1kKQogLSBbQnVzaW5lc3Nlc0J1c2luZXNzSWRCdXNpbmVzc0ludGVncmF0aW9uc10oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZEJ1c2luZXNzSW50ZWdyYXRpb25zLm1kKQogLSBbQnVzaW5lc3Nlc0J1c2luZXNzSWRCdXNpbmVzc0ludGVncmF0aW9uc1BsdWdpbnNdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRCdXNpbmVzc0ludGVncmF0aW9uc1BsdWdpbnMubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZEJ1c2luZXNzTWV0YV0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZEJ1c2luZXNzTWV0YS5tZCkKIC0gW0J1c2luZXNzZXNCdXNpbmVzc0lkQnVzaW5lc3NNZXRhUGxhbl0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZEJ1c2luZXNzTWV0YVBsYW4ubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZEZlYXR1cmVzR2V0MjAwUmVzcG9uc2VdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRGZWF0dXJlc0dldDIwMFJlc3BvbnNlLm1kKQogLSBbQnVzaW5lc3Nlc0J1c2luZXNzSWRHZXQyMDBSZXNwb25zZV0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZEdldDIwMFJlc3BvbnNlLm1kKQogLSBbQnVzaW5lc3Nlc0J1c2luZXNzSWRQb3N0MjAwUmVzcG9uc2VdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRQb3N0MjAwUmVzcG9uc2UubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZFBvc3Q0MDBSZXNwb25zZV0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZFBvc3Q0MDBSZXNwb25zZS5tZCkKIC0gW0J1c2luZXNzZXNCdXNpbmVzc0lkU3RhZmZzR2V0MjAwUmVzcG9uc2VdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRTdGFmZnNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0J1c2luZXNzZXNCdXNpbmVzc0lkU3RhZmZzTWV0YV0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZFN0YWZmc01ldGEubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZFN0YWZmc1Bvc3QyMDBSZXNwb25zZV0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZFN0YWZmc1Bvc3QyMDBSZXNwb25zZS5tZCkKIC0gW0J1c2luZXNzZXNCdXNpbmVzc0lkU3RhZmZzU3RhZmZdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRTdGFmZnNTdGFmZi5tZCkKIC0gW0J1c2luZXNzZXNCdXNpbmVzc0lkU3RhZmZzU3RhZmZJZERlbGV0ZTIwMFJlc3BvbnNlXShkb2NzL0J1c2luZXNzZXNCdXNpbmVzc0lkU3RhZmZzU3RhZmZJZERlbGV0ZTIwMFJlc3BvbnNlLm1kKQogLSBbQnVzaW5lc3Nlc0J1c2luZXNzSWRTdGFmZnNTdGFmZklkR2V0MjAwUmVzcG9uc2VdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRTdGFmZnNTdGFmZklkR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZFdpemFyZHNHZXQyMDBSZXNwb25zZV0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZFdpemFyZHNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0J1c2luZXNzZXNCdXNpbmVzc0lkV2l6YXJkc1dpemFyZE5hbWVHZXQyMDBSZXNwb25zZV0oZG9jcy9CdXNpbmVzc2VzQnVzaW5lc3NJZFdpemFyZHNXaXphcmROYW1lR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtCdXNpbmVzc2VzQnVzaW5lc3NJZFdpemFyZHNXaXphcmROYW1lUHV0MjAwUmVzcG9uc2VdKGRvY3MvQnVzaW5lc3Nlc0J1c2luZXNzSWRXaXphcmRzV2l6YXJkTmFtZVB1dDIwMFJlc3BvbnNlLm1kKQogLSBbQnVzaW5lc3Nlc0dldDIwMFJlc3BvbnNlXShkb2NzL0J1c2luZXNzZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0J1c2luZXNzZXNNZXRhXShkb2NzL0J1c2luZXNzZXNNZXRhLm1kKQogLSBbQnVzaW5lc3Nlc01ldGFBbmFseXRpY3NdKGRvY3MvQnVzaW5lc3Nlc01ldGFBbmFseXRpY3MubWQpCiAtIFtCdXNpbmVzc2VzUG9zdDIwMFJlc3BvbnNlXShkb2NzL0J1c2luZXNzZXNQb3N0MjAwUmVzcG9uc2UubWQpCiAtIFtCdXNpbmVzc2VzVmFsaWRhdGVMb2dpbkdldDIwMFJlc3BvbnNlXShkb2NzL0J1c2luZXNzZXNWYWxpZGF0ZUxvZ2luR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtDYW5jZWxsYXRpb25dKGRvY3MvQ2FuY2VsbGF0aW9uLm1kKQogLSBbQ2FyZF0oZG9jcy9DYXJkLm1kKQogLSBbQ2F0ZWdvcmllc0NhdGVnb3J5SWRTZXJ2aWNlc0dldDIwMFJlc3BvbnNlXShkb2NzL0NhdGVnb3JpZXNDYXRlZ29yeUlkU2VydmljZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0NhdGVnb3JpZXNHZXQyMDBSZXNwb25zZV0oZG9jcy9DYXRlZ29yaWVzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtDYXRlZ29yeV0oZG9jcy9DYXRlZ29yeS5tZCkKIC0gW0NsaWVudF0oZG9jcy9DbGllbnQubWQpCiAtIFtDbGllbnRQYWNrYWdlXShkb2NzL0NsaWVudFBhY2thZ2UubWQpCiAtIFtDbGllbnRzQ2xpZW50SWRDb252ZXJzYXRpb25zR2V0MjAwUmVzcG9uc2VdKGRvY3MvQ2xpZW50c0NsaWVudElkQ29udmVyc2F0aW9uc0dldDIwMFJlc3BvbnNlLm1kKQogLSBbQ2xpZW50c0NsaWVudElkRGVsZXRlMjAwUmVzcG9uc2VdKGRvY3MvQ2xpZW50c0NsaWVudElkRGVsZXRlMjAwUmVzcG9uc2UubWQpCiAtIFtDbGllbnRzQ2xpZW50SWREb2N1bWVudHNHZXQyMDBSZXNwb25zZV0oZG9jcy9DbGllbnRzQ2xpZW50SWREb2N1bWVudHNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0NsaWVudHNDbGllbnRJZEVzdGltYXRlc0dldDIwMFJlc3BvbnNlXShkb2NzL0NsaWVudHNDbGllbnRJZEVzdGltYXRlc0dldDIwMFJlc3BvbnNlLm1kKQogLSBbQ2xpZW50c0NsaWVudElkR2V0MjAwUmVzcG9uc2VdKGRvY3MvQ2xpZW50c0NsaWVudElkR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtDbGllbnRzQ2xpZW50SWRJbnZvaWNlc0dldDIwMVJlc3BvbnNlXShkb2NzL0NsaWVudHNDbGllbnRJZEludm9pY2VzR2V0MjAxUmVzcG9uc2UubWQpCiAtIFtDbGllbnRzQ2xpZW50SWRQYXltZW50Q2xpZW50UGFja2FnZXNHZXQyMDBSZXNwb25zZV0oZG9jcy9DbGllbnRzQ2xpZW50SWRQYXltZW50Q2xpZW50UGFja2FnZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0NsaWVudHNDbGllbnRJZFBheW1lbnRDbGllbnRQYWNrYWdlc0dldDQyMlJlc3BvbnNlXShkb2NzL0NsaWVudHNDbGllbnRJZFBheW1lbnRDbGllbnRQYWNrYWdlc0dldDQyMlJlc3BvbnNlLm1kKQogLSBbQ2xpZW50c0NsaWVudElkUGF5bWVudHNHZXQyMDFSZXNwb25zZV0oZG9jcy9DbGllbnRzQ2xpZW50SWRQYXltZW50c0dldDIwMVJlc3BvbnNlLm1kKQogLSBbQ2xpZW50c0NsaWVudElkUHV0MjAwUmVzcG9uc2VdKGRvY3MvQ2xpZW50c0NsaWVudElkUHV0MjAwUmVzcG9uc2UubWQpCiAtIFtDbGllbnRzR2V0MjAwUmVzcG9uc2VdKGRvY3MvQ2xpZW50c0dldDIwMFJlc3BvbnNlLm1kKQogLSBbQ2xpZW50c01lcmdlc01lcmdlQ2xpZW50c1B1dDIwMFJlc3BvbnNlXShkb2NzL0NsaWVudHNNZXJnZXNNZXJnZUNsaWVudHNQdXQyMDBSZXNwb25zZS5tZCkKIC0gW0NsaWVudHNNZXJnZXNQb3NzaWJsZU1lcmdlTWFzdGVyR2V0MjAwUmVzcG9uc2VdKGRvY3MvQ2xpZW50c01lcmdlc1Bvc3NpYmxlTWVyZ2VNYXN0ZXJHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0NsaWVudHNQYXltZW50Q2xpZW50UGFja2FnZXNVcGRhdGVVc2FnZVBvc3QyMDBSZXNwb25zZV0oZG9jcy9DbGllbnRzUGF5bWVudENsaWVudFBhY2thZ2VzVXBkYXRlVXNhZ2VQb3N0MjAwUmVzcG9uc2UubWQpCiAtIFtDbGllbnRzUGF5bWVudENsaWVudFBhY2thZ2VzVXBkYXRlVXNhZ2VQb3N0NDIyUmVzcG9uc2VdKGRvY3MvQ2xpZW50c1BheW1lbnRDbGllbnRQYWNrYWdlc1VwZGF0ZVVzYWdlUG9zdDQyMlJlc3BvbnNlLm1kKQogLSBbQ2xpZW50c1BheW1lbnRDbGllbnRQYWNrYWdlc1ZhbGlkYXRlR2V0MjAwUmVzcG9uc2VdKGRvY3MvQ2xpZW50c1BheW1lbnRDbGllbnRQYWNrYWdlc1ZhbGlkYXRlR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtDbGllbnRzUGF5bWVudENsaWVudFBhY2thZ2VzVmFsaWRhdGVHZXQ0MjJSZXNwb25zZV0oZG9jcy9DbGllbnRzUGF5bWVudENsaWVudFBhY2thZ2VzVmFsaWRhdGVHZXQ0MjJSZXNwb25zZS5tZCkKIC0gW0NsaWVudHNQb3N0MjAxUmVzcG9uc2VdKGRvY3MvQ2xpZW50c1Bvc3QyMDFSZXNwb25zZS5tZCkKIC0gW0NvbnRhY3RdKGRvY3MvQ29udGFjdC5tZCkKIC0gW0NvbnZlcnNhdGlvbl0oZG9jcy9Db252ZXJzYXRpb24ubWQpCiAtIFtDb252ZXJzYXRpb25zR2V0MjAwUmVzcG9uc2VdKGRvY3MvQ29udmVyc2F0aW9uc0dldDIwMFJlc3BvbnNlLm1kKQogLSBbQ3JlZGl0SXRlbV0oZG9jcy9DcmVkaXRJdGVtLm1kKQogLSBbRGF0YV0oZG9jcy9EYXRhLm1kKQogLSBbRGF0YTFdKGRvY3MvRGF0YTEubWQpCiAtIFtEYXRhMTBdKGRvY3MvRGF0YTEwLm1kKQogLSBbRGF0YTExXShkb2NzL0RhdGExMS5tZCkKIC0gW0RhdGExMl0oZG9jcy9EYXRhMTIubWQpCiAtIFtEYXRhMTNdKGRvY3MvRGF0YTEzLm1kKQogLSBbRGF0YTE0XShkb2NzL0RhdGExNC5tZCkKIC0gW0RhdGExNV0oZG9jcy9EYXRhMTUubWQpCiAtIFtEYXRhMTZdKGRvY3MvRGF0YTE2Lm1kKQogLSBbRGF0YTE3XShkb2NzL0RhdGExNy5tZCkKIC0gW0RhdGExOF0oZG9jcy9EYXRhMTgubWQpCiAtIFtEYXRhMTldKGRvY3MvRGF0YTE5Lm1kKQogLSBbRGF0YTJdKGRvY3MvRGF0YTIubWQpCiAtIFtEYXRhMjBdKGRvY3MvRGF0YTIwLm1kKQogLSBbRGF0YTIxXShkb2NzL0RhdGEyMS5tZCkKIC0gW0RhdGEyMl0oZG9jcy9EYXRhMjIubWQpCiAtIFtEYXRhMjNdKGRvY3MvRGF0YTIzLm1kKQogLSBbRGF0YTI0XShkb2NzL0RhdGEyNC5tZCkKIC0gW0RhdGEyNV0oZG9jcy9EYXRhMjUubWQpCiAtIFtEYXRhMjZdKGRvY3MvRGF0YTI2Lm1kKQogLSBbRGF0YTI3XShkb2NzL0RhdGEyNy5tZCkKIC0gW0RhdGEyOF0oZG9jcy9EYXRhMjgubWQpCiAtIFtEYXRhMjldKGRvY3MvRGF0YTI5Lm1kKQogLSBbRGF0YTNdKGRvY3MvRGF0YTMubWQpCiAtIFtEYXRhMzBdKGRvY3MvRGF0YTMwLm1kKQogLSBbRGF0YTMxXShkb2NzL0RhdGEzMS5tZCkKIC0gW0RhdGEzMl0oZG9jcy9EYXRhMzIubWQpCiAtIFtEYXRhMzNdKGRvY3MvRGF0YTMzLm1kKQogLSBbRGF0YTM0XShkb2NzL0RhdGEzNC5tZCkKIC0gW0RhdGEzNV0oZG9jcy9EYXRhMzUubWQpCiAtIFtEYXRhMzZdKGRvY3MvRGF0YTM2Lm1kKQogLSBbRGF0YTM3XShkb2NzL0RhdGEzNy5tZCkKIC0gW0RhdGEzOF0oZG9jcy9EYXRhMzgubWQpCiAtIFtEYXRhNF0oZG9jcy9EYXRhNC5tZCkKIC0gW0RhdGE0MF0oZG9jcy9EYXRhNDAubWQpCiAtIFtEYXRhNDFdKGRvY3MvRGF0YTQxLm1kKQogLSBbRGF0YTQyXShkb2NzL0RhdGE0Mi5tZCkKIC0gW0RhdGE0M10oZG9jcy9EYXRhNDMubWQpCiAtIFtEYXRhNDRdKGRvY3MvRGF0YTQ0Lm1kKQogLSBbRGF0YTQ1XShkb2NzL0RhdGE0NS5tZCkKIC0gW0RhdGE0Nl0oZG9jcy9EYXRhNDYubWQpCiAtIFtEYXRhNDddKGRvY3MvRGF0YTQ3Lm1kKQogLSBbRGF0YTQ4XShkb2NzL0RhdGE0OC5tZCkKIC0gW0RhdGE0OV0oZG9jcy9EYXRhNDkubWQpCiAtIFtEYXRhNV0oZG9jcy9EYXRhNS5tZCkKIC0gW0RhdGE2XShkb2NzL0RhdGE2Lm1kKQogLSBbRGF0YTddKGRvY3MvRGF0YTcubWQpCiAtIFtEYXRhOF0oZG9jcy9EYXRhOC5tZCkKIC0gW0RhdGE5XShkb2NzL0RhdGE5Lm1kKQogLSBbRGF0dW1dKGRvY3MvRGF0dW0ubWQpCiAtIFtEYXR1bTFdKGRvY3MvRGF0dW0xLm1kKQogLSBbRGF0dW0xMF0oZG9jcy9EYXR1bTEwLm1kKQogLSBbRGF0dW0xMV0oZG9jcy9EYXR1bTExLm1kKQogLSBbRGF0dW0xMl0oZG9jcy9EYXR1bTEyLm1kKQogLSBbRGF0dW0xM10oZG9jcy9EYXR1bTEzLm1kKQogLSBbRGF0dW0xNF0oZG9jcy9EYXR1bTE0Lm1kKQogLSBbRGF0dW0xNV0oZG9jcy9EYXR1bTE1Lm1kKQogLSBbRGF0dW0xNl0oZG9jcy9EYXR1bTE2Lm1kKQogLSBbRGF0dW0xN10oZG9jcy9EYXR1bTE3Lm1kKQogLSBbRGF0dW0xOF0oZG9jcy9EYXR1bTE4Lm1kKQogLSBbRGF0dW0xOV0oZG9jcy9EYXR1bTE5Lm1kKQogLSBbRGF0dW0yMF0oZG9jcy9EYXR1bTIwLm1kKQogLSBbRGF0dW0zXShkb2NzL0RhdHVtMy5tZCkKIC0gW0RhdHVtNF0oZG9jcy9EYXR1bTQubWQpCiAtIFtEYXR1bTVdKGRvY3MvRGF0dW01Lm1kKQogLSBbRGF0dW02XShkb2NzL0RhdHVtNi5tZCkKIC0gW0RhdHVtN10oZG9jcy9EYXR1bTcubWQpCiAtIFtEYXR1bThdKGRvY3MvRGF0dW04Lm1kKQogLSBbRGF0dW05XShkb2NzL0RhdHVtOS5tZCkKIC0gW0RlZXBMaW5rXShkb2NzL0RlZXBMaW5rLm1kKQogLSBbRGVzY3JpcHRpb25dKGRvY3MvRGVzY3JpcHRpb24ubWQpCiAtIFtFcnJvcl0oZG9jcy9FcnJvci5tZCkKIC0gW0Vycm9yMV0oZG9jcy9FcnJvcjEubWQpCiAtIFtFc3RpbWF0ZV0oZG9jcy9Fc3RpbWF0ZS5tZCkKIC0gW0VzdGltYXRlc0dldDIwMFJlc3BvbnNlXShkb2NzL0VzdGltYXRlc0dldDIwMFJlc3BvbnNlLm1kKQogLSBbRXN0aW1hdGVzSXRlbXNdKGRvY3MvRXN0aW1hdGVzSXRlbXMubWQpCiAtIFtFc3RpbWF0ZXNQb3N0MjAxUmVzcG9uc2VdKGRvY3MvRXN0aW1hdGVzUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbRXN0aW1hdGVzVGF4ZXNdKGRvY3MvRXN0aW1hdGVzVGF4ZXMubWQpCiAtIFtFdmVudEluc3RhbmNlXShkb2NzL0V2ZW50SW5zdGFuY2UubWQpCiAtIFtGaWVsZEl0ZW1dKGRvY3MvRmllbGRJdGVtLm1kKQogLSBbRmllbGRzRmllbGRJZERlbGV0ZTIwMFJlc3BvbnNlXShkb2NzL0ZpZWxkc0ZpZWxkSWREZWxldGUyMDBSZXNwb25zZS5tZCkKIC0gW0ZpZWxkc0ZpZWxkSWRHZXQyMDBSZXNwb25zZV0oZG9jcy9GaWVsZHNGaWVsZElkR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtGaWVsZHNGaWVsZElkUHV0MjAwUmVzcG9uc2VdKGRvY3MvRmllbGRzRmllbGRJZFB1dDIwMFJlc3BvbnNlLm1kKQogLSBbRmllbGRzR2V0MjAwUmVzcG9uc2VdKGRvY3MvRmllbGRzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtGaWVsZHNQb3N0MjAxUmVzcG9uc2VdKGRvY3MvRmllbGRzUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbRm9ybURhdGFdKGRvY3MvRm9ybURhdGEubWQpCiAtIFtGb3Jtc0ZpZWxkc10oZG9jcy9Gb3Jtc0ZpZWxkcy5tZCkKIC0gW0Zvcm1zR2V0MjAwUmVzcG9uc2VdKGRvY3MvRm9ybXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0Zvcm1zUHV0MjAwUmVzcG9uc2VdKGRvY3MvRm9ybXNQdXQyMDBSZXNwb25zZS5tZCkKIC0gW0Zvcm1zU2VjdGlvbnNdKGRvY3MvRm9ybXNTZWN0aW9ucy5tZCkKIC0gW0dsb2JhbEFwcG9pbnRtZW50c0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbEFwcG9pbnRtZW50c0dldDIwMFJlc3BvbnNlLm1kKQogLSBbR2xvYmFsQnVzaW5lc3Nlc0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbEJ1c2luZXNzZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0dsb2JhbENhbXBhaWduUmVjaXBpZW50c0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbENhbXBhaWduUmVjaXBpZW50c0dldDIwMFJlc3BvbnNlLm1kKQogLSBbR2xvYmFsQ2FtcGFpZ25zR2V0MjAwUmVzcG9uc2VdKGRvY3MvR2xvYmFsQ2FtcGFpZ25zR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtHbG9iYWxDbGllbnRQYWNrYWdlc0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbENsaWVudFBhY2thZ2VzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtHbG9iYWxDbGllbnRzR2V0MjAwUmVzcG9uc2VdKGRvY3MvR2xvYmFsQ2xpZW50c0dldDIwMFJlc3BvbnNlLm1kKQogLSBbR2xvYmFsQ29udmVyc2F0aW9uc0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbENvbnZlcnNhdGlvbnNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0dsb2JhbEVzdGltYXRlc0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbEVzdGltYXRlc0dldDIwMFJlc3BvbnNlLm1kKQogLSBbR2xvYmFsRXZlbnRBdHRlbmRhbmNlc0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbEV2ZW50QXR0ZW5kYW5jZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0dsb2JhbEV2ZW50SW5zdGFuY2VzR2V0MjAwUmVzcG9uc2VdKGRvY3MvR2xvYmFsRXZlbnRJbnN0YW5jZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0dsb2JhbEludm9pY2VzR2V0MjAwUmVzcG9uc2VdKGRvY3MvR2xvYmFsSW52b2ljZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0dsb2JhbE1hdHRlcnNHZXQyMDBSZXNwb25zZV0oZG9jcy9HbG9iYWxNYXR0ZXJzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtHbG9iYWxQYWNrYWdlc0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbFBhY2thZ2VzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtHbG9iYWxQYXltZW50c0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbFBheW1lbnRzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtHbG9iYWxQcm9kdWN0c0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbFByb2R1Y3RzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtHbG9iYWxTY2hlZHVsZWRDYW1wYWlnbnNHZXQyMDBSZXNwb25zZV0oZG9jcy9HbG9iYWxTY2hlZHVsZWRDYW1wYWlnbnNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0dsb2JhbFNlcnZpY2VzR2V0MjAwUmVzcG9uc2VdKGRvY3MvR2xvYmFsU2VydmljZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW0dsb2JhbFN0YWZmc0dldDIwMFJlc3BvbnNlXShkb2NzL0dsb2JhbFN0YWZmc0dldDIwMFJlc3BvbnNlLm1kKQogLSBbSW5saW5lT2JqZWN0XShkb2NzL0lubGluZU9iamVjdC5tZCkKIC0gW0lubGluZU9iamVjdDFdKGRvY3MvSW5saW5lT2JqZWN0MS5tZCkKIC0gW0lubGluZU9iamVjdDEwXShkb2NzL0lubGluZU9iamVjdDEwLm1kKQogLSBbSW5saW5lT2JqZWN0MTFdKGRvY3MvSW5saW5lT2JqZWN0MTEubWQpCiAtIFtJbmxpbmVPYmplY3QxMl0oZG9jcy9JbmxpbmVPYmplY3QxMi5tZCkKIC0gW0lubGluZU9iamVjdDEzXShkb2NzL0lubGluZU9iamVjdDEzLm1kKQogLSBbSW5saW5lT2JqZWN0MTRdKGRvY3MvSW5saW5lT2JqZWN0MTQubWQpCiAtIFtJbmxpbmVPYmplY3QxNV0oZG9jcy9JbmxpbmVPYmplY3QxNS5tZCkKIC0gW0lubGluZU9iamVjdDE2XShkb2NzL0lubGluZU9iamVjdDE2Lm1kKQogLSBbSW5saW5lT2JqZWN0MTddKGRvY3MvSW5saW5lT2JqZWN0MTcubWQpCiAtIFtJbmxpbmVPYmplY3QxOF0oZG9jcy9JbmxpbmVPYmplY3QxOC5tZCkKIC0gW0lubGluZU9iamVjdDE5XShkb2NzL0lubGluZU9iamVjdDE5Lm1kKQogLSBbSW5saW5lT2JqZWN0Ml0oZG9jcy9JbmxpbmVPYmplY3QyLm1kKQogLSBbSW5saW5lT2JqZWN0MjBdKGRvY3MvSW5saW5lT2JqZWN0MjAubWQpCiAtIFtJbmxpbmVPYmplY3QyMV0oZG9jcy9JbmxpbmVPYmplY3QyMS5tZCkKIC0gW0lubGluZU9iamVjdDIyXShkb2NzL0lubGluZU9iamVjdDIyLm1kKQogLSBbSW5saW5lT2JqZWN0MjNdKGRvY3MvSW5saW5lT2JqZWN0MjMubWQpCiAtIFtJbmxpbmVPYmplY3QyNF0oZG9jcy9JbmxpbmVPYmplY3QyNC5tZCkKIC0gW0lubGluZU9iamVjdDI1XShkb2NzL0lubGluZU9iamVjdDI1Lm1kKQogLSBbSW5saW5lT2JqZWN0MjZdKGRvY3MvSW5saW5lT2JqZWN0MjYubWQpCiAtIFtJbmxpbmVPYmplY3QyN10oZG9jcy9JbmxpbmVPYmplY3QyNy5tZCkKIC0gW0lubGluZU9iamVjdDI4XShkb2NzL0lubGluZU9iamVjdDI4Lm1kKQogLSBbSW5saW5lT2JqZWN0MjldKGRvY3MvSW5saW5lT2JqZWN0MjkubWQpCiAtIFtJbmxpbmVPYmplY3QzXShkb2NzL0lubGluZU9iamVjdDMubWQpCiAtIFtJbmxpbmVPYmplY3QzMF0oZG9jcy9JbmxpbmVPYmplY3QzMC5tZCkKIC0gW0lubGluZU9iamVjdDMxXShkb2NzL0lubGluZU9iamVjdDMxLm1kKQogLSBbSW5saW5lT2JqZWN0MzJdKGRvY3MvSW5saW5lT2JqZWN0MzIubWQpCiAtIFtJbmxpbmVPYmplY3QzM10oZG9jcy9JbmxpbmVPYmplY3QzMy5tZCkKIC0gW0lubGluZU9iamVjdDRdKGRvY3MvSW5saW5lT2JqZWN0NC5tZCkKIC0gW0lubGluZU9iamVjdDVdKGRvY3MvSW5saW5lT2JqZWN0NS5tZCkKIC0gW0lubGluZU9iamVjdDZdKGRvY3MvSW5saW5lT2JqZWN0Ni5tZCkKIC0gW0lubGluZU9iamVjdDddKGRvY3MvSW5saW5lT2JqZWN0Ny5tZCkKIC0gW0lubGluZU9iamVjdDhdKGRvY3MvSW5saW5lT2JqZWN0OC5tZCkKIC0gW0lubGluZU9iamVjdDldKGRvY3MvSW5saW5lT2JqZWN0OS5tZCkKIC0gW0lubGluZVJlc3BvbnNlMjAwXShkb2NzL0lubGluZVJlc3BvbnNlMjAwLm1kKQogLSBbSW5saW5lUmVzcG9uc2UyMDBTdWJzY3JpcHRpb25zXShkb2NzL0lubGluZVJlc3BvbnNlMjAwU3Vic2NyaXB0aW9ucy5tZCkKIC0gW0ludGVncmF0aW9uc10oZG9jcy9JbnRlZ3JhdGlvbnMubWQpCiAtIFtJbnZvaWNlXShkb2NzL0ludm9pY2UubWQpCiAtIFtJbnZvaWNlc0dldDIwMVJlc3BvbnNlXShkb2NzL0ludm9pY2VzR2V0MjAxUmVzcG9uc2UubWQpCiAtIFtJbnZvaWNlc0ludm9pY2VJZEdldDIwMVJlc3BvbnNlXShkb2NzL0ludm9pY2VzSW52b2ljZUlkR2V0MjAxUmVzcG9uc2UubWQpCiAtIFtJbnZvaWNlc0l0ZW1zXShkb2NzL0ludm9pY2VzSXRlbXMubWQpCiAtIFtJbnZvaWNlc1Bvc3QyMDFSZXNwb25zZV0oZG9jcy9JbnZvaWNlc1Bvc3QyMDFSZXNwb25zZS5tZCkKIC0gW0ludm9pY2VzVGF4ZXNdKGRvY3MvSW52b2ljZXNUYXhlcy5tZCkKIC0gW0l0ZW1dKGRvY3MvSXRlbS5tZCkKIC0gW0l0ZW0xXShkb2NzL0l0ZW0xLm1kKQogLSBbTGVhZGdlblBvc3QyMDFSZXNwb25zZV0oZG9jcy9MZWFkZ2VuUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbTWF0dGVyXShkb2NzL01hdHRlci5tZCkKIC0gW01lZXRpbmdzXShkb2NzL01lZXRpbmdzLm1kKQogLSBbTWVudUl0ZW1zXShkb2NzL01lbnVJdGVtcy5tZCkKIC0gW01lc3NhZ2VzTWVzc2FnZV0oZG9jcy9NZXNzYWdlc01lc3NhZ2UubWQpCiAtIFtNZXNzYWdlc1Bvc3QyMDFSZXNwb25zZV0oZG9jcy9NZXNzYWdlc1Bvc3QyMDFSZXNwb25zZS5tZCkKIC0gW01ldGFdKGRvY3MvTWV0YS5tZCkKIC0gW01vZGVsUGFja2FnZV0oZG9jcy9Nb2RlbFBhY2thZ2UubWQpCiAtIFtPdGhlcnNdKGRvY3MvT3RoZXJzLm1kKQogLSBbUGF0aFBhcmFtc10oZG9jcy9QYXRoUGFyYW1zLm1kKQogLSBbUGF5bWVudF0oZG9jcy9QYXltZW50Lm1kKQogLSBbUGF5bWVudENhcmRzU3luY0NhcmREYXRhaWxzXShkb2NzL1BheW1lbnRDYXJkc1N5bmNDYXJkRGF0YWlscy5tZCkKIC0gW1BheW1lbnRDYXJkc1N5bmNDYXJkUG9zdDIwMVJlc3BvbnNlXShkb2NzL1BheW1lbnRDYXJkc1N5bmNDYXJkUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbUGF5bWVudENoZWNrb3V0Q2FyZF0oZG9jcy9QYXltZW50Q2hlY2tvdXRDYXJkLm1kKQogLSBbUGF5bWVudENoZWNrb3V0Q2FyZENhcmRJbmZvXShkb2NzL1BheW1lbnRDaGVja291dENhcmRDYXJkSW5mby5tZCkKIC0gW1BheW1lbnRDaGVja291dFB1dDIwMVJlc3BvbnNlXShkb2NzL1BheW1lbnRDaGVja291dFB1dDIwMVJlc3BvbnNlLm1kKQogLSBbUGF5bWVudENoZWNrb3V0VXJsS2V5R2V0MjAxUmVzcG9uc2VdKGRvY3MvUGF5bWVudENoZWNrb3V0VXJsS2V5R2V0MjAxUmVzcG9uc2UubWQpCiAtIFtQYXltZW50Q2xpZW50UGFja2FnZXNQb3N0MjAxUmVzcG9uc2VdKGRvY3MvUGF5bWVudENsaWVudFBhY2thZ2VzUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbUGF5bWVudENsaWVudFBhY2thZ2VzUG9zdDQyMlJlc3BvbnNlXShkb2NzL1BheW1lbnRDbGllbnRQYWNrYWdlc1Bvc3Q0MjJSZXNwb25zZS5tZCkKIC0gW1BheW1lbnRDbGllbnRQYWNrYWdlc1VwZGF0ZVVzYWdlUG9zdDIwMFJlc3BvbnNlXShkb2NzL1BheW1lbnRDbGllbnRQYWNrYWdlc1VwZGF0ZVVzYWdlUG9zdDIwMFJlc3BvbnNlLm1kKQogLSBbUGF5bWVudENsaWVudFBhY2thZ2VzVXBkYXRlVXNhZ2VQb3N0NDIyUmVzcG9uc2VdKGRvY3MvUGF5bWVudENsaWVudFBhY2thZ2VzVXBkYXRlVXNhZ2VQb3N0NDIyUmVzcG9uc2UubWQpCiAtIFtQYXltZW50UGFja2FnZXNHZXQyMDBSZXNwb25zZV0oZG9jcy9QYXltZW50UGFja2FnZXNHZXQyMDBSZXNwb25zZS5tZCkKIC0gW1BheW1lbnRQYWNrYWdlc0dldDQyMlJlc3BvbnNlXShkb2NzL1BheW1lbnRQYWNrYWdlc0dldDQyMlJlc3BvbnNlLm1kKQogLSBbUGF5bWVudFBhY2thZ2VzSXRlbXNdKGRvY3MvUGF5bWVudFBhY2thZ2VzSXRlbXMubWQpCiAtIFtQYXltZW50UGFja2FnZXNQYWNrYWdlSWRHZXQyMDBSZXNwb25zZV0oZG9jcy9QYXltZW50UGFja2FnZXNQYWNrYWdlSWRHZXQyMDBSZXNwb25zZS5tZCkKIC0gW1BheW1lbnRQYWNrYWdlc1BhY2thZ2VJZEdldDQyMlJlc3BvbnNlXShkb2NzL1BheW1lbnRQYWNrYWdlc1BhY2thZ2VJZEdldDQyMlJlc3BvbnNlLm1kKQogLSBbUGF5bWVudFBhY2thZ2VzUGFja2FnZUlkUGFja2FnZV0oZG9jcy9QYXltZW50UGFja2FnZXNQYWNrYWdlSWRQYWNrYWdlLm1kKQogLSBbUGF5bWVudFBhY2thZ2VzUGFja2FnZUlkUGFja2FnZVByb2R1Y3RzXShkb2NzL1BheW1lbnRQYWNrYWdlc1BhY2thZ2VJZFBhY2thZ2VQcm9kdWN0cy5tZCkKIC0gW1BheW1lbnRQYWNrYWdlc1BhY2thZ2VJZFB1dDIwMFJlc3BvbnNlXShkb2NzL1BheW1lbnRQYWNrYWdlc1BhY2thZ2VJZFB1dDIwMFJlc3BvbnNlLm1kKQogLSBbUGF5bWVudFBhY2thZ2VzUGFja2FnZUlkUHV0NDIyUmVzcG9uc2VdKGRvY3MvUGF5bWVudFBhY2thZ2VzUGFja2FnZUlkUHV0NDIyUmVzcG9uc2UubWQpCiAtIFtQYXltZW50UGFja2FnZXNQb3N0MjAxUmVzcG9uc2VdKGRvY3MvUGF5bWVudFBhY2thZ2VzUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbUGF5bWVudFBhY2thZ2VzUG9zdDQyMlJlc3BvbnNlXShkb2NzL1BheW1lbnRQYWNrYWdlc1Bvc3Q0MjJSZXNwb25zZS5tZCkKIC0gW1BheW1lbnRQYWNrYWdlc1Byb2R1Y3RzXShkb2NzL1BheW1lbnRQYWNrYWdlc1Byb2R1Y3RzLm1kKQogLSBbUGF5bWVudFBhY2thZ2VzU2VydmljZXNdKGRvY3MvUGF5bWVudFBhY2thZ2VzU2VydmljZXMubWQpCiAtIFtQYXltZW50UmVxdWVzdF0oZG9jcy9QYXltZW50UmVxdWVzdC5tZCkKIC0gW1BheW1lbnRTZXR0aW5nc10oZG9jcy9QYXltZW50U2V0dGluZ3MubWQpCiAtIFtQYXltZW50U2V0dGluZ3NHZXQyMDFSZXNwb25zZV0oZG9jcy9QYXltZW50U2V0dGluZ3NHZXQyMDFSZXNwb25zZS5tZCkKIC0gW1BheW1lbnRTZXR0aW5nc1BheW1lbnRTZXR0aW5nc10oZG9jcy9QYXltZW50U2V0dGluZ3NQYXltZW50U2V0dGluZ3MubWQpCiAtIFtQYXltZW50U2V0dGluZ3NQb3N0MjAxUmVzcG9uc2VdKGRvY3MvUGF5bWVudFNldHRpbmdzUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbUGF5bWVudFN0YXR1c10oZG9jcy9QYXltZW50U3RhdHVzLm1kKQogLSBbUGF5bWVudFN0YXR1c2VzSWRBcHBseUNvdXBvblB1dDIwMFJlc3BvbnNlXShkb2NzL1BheW1lbnRTdGF0dXNlc0lkQXBwbHlDb3Vwb25QdXQyMDBSZXNwb25zZS5tZCkKIC0gW1BheW1lbnRTdGF0dXNlc0lkVmFsaWRhdGVDb3Vwb25HZXQyMDBSZXNwb25zZV0oZG9jcy9QYXltZW50U3RhdHVzZXNJZFZhbGlkYXRlQ291cG9uR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtQYXltZW50c0dldDIwMVJlc3BvbnNlXShkb2NzL1BheW1lbnRzR2V0MjAxUmVzcG9uc2UubWQpCiAtIFtQYXltZW50c1BheW1lbnRVaWRNYXRjaFBvc3QyMDFSZXNwb25zZV0oZG9jcy9QYXltZW50c1BheW1lbnRVaWRNYXRjaFBvc3QyMDFSZXNwb25zZS5tZCkKIC0gW1BheW1lbnRzUG9zdDIwMVJlc3BvbnNlXShkb2NzL1BheW1lbnRzUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbUGxhbl0oZG9jcy9QbGFuLm1kKQogLSBbUGx1Z2luXShkb2NzL1BsdWdpbi5tZCkKIC0gW1BvbGljaWVzXShkb2NzL1BvbGljaWVzLm1kKQogLSBbUHJvZHVjdF0oZG9jcy9Qcm9kdWN0Lm1kKQogLSBbUmVzY2hlZHVsaW5nXShkb2NzL1Jlc2NoZWR1bGluZy5tZCkKIC0gW1NjaGVkdWxpbmdBcHBvaW50bWVudHNBcHBvaW50bWVudElkR2V0MjAwUmVzcG9uc2VdKGRvY3MvU2NoZWR1bGluZ0FwcG9pbnRtZW50c0FwcG9pbnRtZW50SWRHZXQyMDBSZXNwb25zZS5tZCkKIC0gW1NjaGVkdWxpbmdBcHBvaW50bWVudHNHZXQyMDBSZXNwb25zZV0oZG9jcy9TY2hlZHVsaW5nQXBwb2ludG1lbnRzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtTY2hlZHVsaW5nQm9va2luZ3NCb29raW5nVWlkVXBkYXRlUnN2cFN0YXRlUHV0MjAwUmVzcG9uc2VdKGRvY3MvU2NoZWR1bGluZ0Jvb2tpbmdzQm9va2luZ1VpZFVwZGF0ZVJzdnBTdGF0ZVB1dDIwMFJlc3BvbnNlLm1kKQogLSBbU2NoZWR1bGluZ0Jvb2tpbmdzUG9zdDIwMVJlc3BvbnNlXShkb2NzL1NjaGVkdWxpbmdCb29raW5nc1Bvc3QyMDFSZXNwb25zZS5tZCkKIC0gW1NjaGVkdWxpbmdFdmVudEluc3RhbmNlRXZlbnRJbnN0YW5jZUlkR2V0MjAwUmVzcG9uc2VdKGRvY3MvU2NoZWR1bGluZ0V2ZW50SW5zdGFuY2VFdmVudEluc3RhbmNlSWRHZXQyMDBSZXNwb25zZS5tZCkKIC0gW1NjaGVkdWxpbmdTY2hlZHVsaW5nRm9ybXNHZXRGb3JtR2V0MjAwUmVzcG9uc2VdKGRvY3MvU2NoZWR1bGluZ1NjaGVkdWxpbmdGb3Jtc0dldEZvcm1HZXQyMDBSZXNwb25zZS5tZCkKIC0gW1NjaGVkdWxpbmdTdGFmZkdldDIwMFJlc3BvbnNlXShkb2NzL1NjaGVkdWxpbmdTdGFmZkdldDIwMFJlc3BvbnNlLm1kKQogLSBbU2NoZWR1bGluZ1N0YWZmU3RhZmZJZEdldDIwMFJlc3BvbnNlXShkb2NzL1NjaGVkdWxpbmdTdGFmZlN0YWZmSWRHZXQyMDBSZXNwb25zZS5tZCkKIC0gW1NjaGVkdWxpbmdXYWl0bGlzdENhbmNlbFB1dDIwMFJlc3BvbnNlXShkb2NzL1NjaGVkdWxpbmdXYWl0bGlzdENhbmNlbFB1dDIwMFJlc3BvbnNlLm1kKQogLSBbU2NoZWR1bGluZ1dhaXRsaXN0UG9zdDIwMVJlc3BvbnNlXShkb2NzL1NjaGVkdWxpbmdXYWl0bGlzdFBvc3QyMDFSZXNwb25zZS5tZCkKIC0gW1NjaGVkdWxpbmdXYWl0bGlzdFBvc3Q0MjJSZXNwb25zZV0oZG9jcy9TY2hlZHVsaW5nV2FpdGxpc3RQb3N0NDIyUmVzcG9uc2UubWQpCiAtIFtTZWN0aW9uXShkb2NzL1NlY3Rpb24ubWQpCiAtIFtTZXJ2aWNlXShkb2NzL1NlcnZpY2UubWQpCiAtIFtTZXJ2aWNlc0dldDIwMFJlc3BvbnNlXShkb2NzL1NlcnZpY2VzR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtTZXJ2aWNlc1NlcnZpY2VJZEF2YWlsYWJpbGl0eUdldDIwMFJlc3BvbnNlXShkb2NzL1NlcnZpY2VzU2VydmljZUlkQXZhaWxhYmlsaXR5R2V0MjAwUmVzcG9uc2UubWQpCiAtIFtTZXJ2aWNlc1NlcnZpY2VJZEdldDIwMFJlc3BvbnNlXShkb2NzL1NlcnZpY2VzU2VydmljZUlkR2V0MjAwUmVzcG9uc2UubWQpCiAtIFtTb3VyY2VEYXRhXShkb2NzL1NvdXJjZURhdGEubWQpCiAtIFtTdGFmZl0oZG9jcy9TdGFmZi5tZCkKIC0gW1N0YWZmMV0oZG9jcy9TdGFmZjEubWQpCiAtIFtTdGFmZlNldHRpbmdzXShkb2NzL1N0YWZmU2V0dGluZ3MubWQpCiAtIFtTdGF0ZVN1bW1hcnldKGRvY3MvU3RhdGVTdW1tYXJ5Lm1kKQogLSBbU3ViaXRlbV0oZG9jcy9TdWJpdGVtLm1kKQogLSBbVGF4XShkb2NzL1RheC5tZCkKIC0gW1Rva2VuXShkb2NzL1Rva2VuLm1kKQogLSBbVG9rZW5zR2V0MjAxUmVzcG9uc2VdKGRvY3MvVG9rZW5zR2V0MjAxUmVzcG9uc2UubWQpCiAtIFtUb2tlbnNQb3N0MjAxUmVzcG9uc2VdKGRvY3MvVG9rZW5zUG9zdDIwMVJlc3BvbnNlLm1kKQogLSBbVG9rZW5zUmV2b2tlUG9zdDIwMVJlc3BvbnNlXShkb2NzL1Rva2Vuc1Jldm9rZVBvc3QyMDFSZXNwb25zZS5tZCkKIC0gW1dhaXRsaXN0XShkb2NzL1dhaXRsaXN0Lm1kKQoKCiMjIERvY3VtZW50YXRpb24gZm9yIEF1dGhvcml6YXRpb24KCkF1dGhlbnRpY2F0aW9uIHNjaGVtZXMgZGVmaW5lZCBmb3IgdGhlIEFQSToKIyMjIGRlZmF1bHQKCi0gKipUeXBlKio6IE9BdXRoCi0gKipGbG93Kio6IGltcGxpY2l0Ci0gKipBdXRob3JpemF0aW9uIFVSTCoqOiBodHRwczovL2lnbm9yZS5teWNsaWVudHMuaW8KLSAqKlNjb3BlcyoqOiAKICAtIHBsYXRmb3JtOiBBbGwgcGxhdGZvcm0gcmVsYXRlZCBvcGVyYXRpb25zCiAgLSBwbGF0Zm9ybV9jcmVhdGU6IHBsYXRmb3JtIGNyZWF0ZSBzY29wZQogIC0gcGxhdGZvcm1fZGVsZXRlOiBwbGF0Zm9ybSBkZWxldGUgc2NvcGUKICAtIHBsYXRmb3JtX3JlYWQ6IHBsYXRmb3JtIHJlYWQgc2NvcGUKICAtIHBsYXRmb3JtX3VwZGF0ZTogcGxhdGZvcm0gdXBkYXRlIHNjb3BlCgoKIyMgUmVjb21tZW5kYXRpb24KCkl0J3MgcmVjb21tZW5kZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBcGlDbGllbnRgIHBlciB0aHJlYWQgaW4gYSBtdWx0aXRocmVhZGVkIGVudmlyb25tZW50IHRvIGF2b2lkIGFueSBwb3RlbnRpYWwgaXNzdWVzLgoKIyMgQXV0aG9yCgoKCg== readmeEtag: '"34d440ed47f5805d8534b60b7da9c71051cec7e8"' readmeLastModified: Thu, 24 Mar 2022 00:18:56 GMT repositoryId: 462478185 description: null created: '2022-02-22T21:19:45Z' updated: '2022-03-15T19:45:22Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: SimonIT logo: https://avatars.githubusercontent.com/u/11720038?v=4 repoEtag: '"08c09c2867c331be752d350314af4e403560ae26192dbbed5c73a4e5baa2cc71"' repoLastModified: Tue, 15 Mar 2022 19:45:22 GMT foundInMaster: true category: User Interfaces id: 6faee664636bc265bfefb7cb4cf646c1 - source: openapi3 tags repository: https://github.com/bump-sh/bump-ci-example v3: true repositoryMetadata: base64Readme: >- IyBCdW1wIENJIGludGVncmF0aW9uIGV4YW1wbGVzCgpDSSBpbnRlZ3JhdGlvbiBleGFtcGxlcyBmb3IgR2l0aHViIEFjdGlvbiwgVHJhdmlzIENJLCBDaXJjbGVDSSBhbmQgR2l0bGFiIENJLgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyB3aWR0aD0iMjAlIiBzcmM9Imh0dHBzOi8vYnVtcC5zaC9pY29uLWRlZmF1bHQtbGFyZ2UucG5nIiAvPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL2hlbHAuYnVtcC5zaC8iPkhlbHA8L2E+IHwKICA8YSBocmVmPSJodHRwczovL2J1bXAuc2gvdXNlcnMvc2lnbl91cCI+U2lnbiB1cDwvYT4KPC9wPgoKQnVtcCBpcyBhIENvbnRpbnVvdXMgRG9jdW1lbnRhdGlvbiBQbGF0Zm9ybTogaXQgbGV0cyB5b3Uga2VlcCB5b3VyIEFQSSBkb2MgYWx3YXlzIHN5bmNocm9uaXplZCB3aXRoIHlvdXIgY29kZWJhc2UuIFdpdGggdGhlc2UgQ0kgaW50ZWdyYXRpb24gZXhhbXBsZXMgeW91IGNhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHlvdXIgQVBJIHJlZmVyZW5jZSAod2l0aCBjaGFuZ2Vsb2cgYW5kIGRpZmYpIG9uIFtCdW1wXShodHRwczovL2J1bXAuc2gpIGZyb20gYW55IFtPcGVuQVBJXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgb3IgW0FzeW5jQVBJXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvYXN5bmNhcGkpIGZpbGUuCgojIyBFeGFtcGxlcwoKSGVyZSBhcmUgZXhhbXBsZXMgZm9yIGludGVncmF0aW5nIEJ1bXAgd2l0aCB0aGUgbW9zdCBrbm93biBDSSBwcm9kdWN0czoKLSBDaXJjbGVDSSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9idW1wLXNoL2J1bXAtY2ktZXhhbXBsZS9ibG9iL21hc3Rlci8uY2lyY2xlY2kvY29uZmlnLnltbAotIEdpdGxhYiBDSTogaHR0cHM6Ly9naXRodWIuY29tL2J1bXAtc2gvYnVtcC1jaS1leGFtcGxlL2Jsb2IvbWFzdGVyLy5naXRsYWItY2kueW1sCi0gVHJhdmlzIENJOiAgaHR0cHM6Ly9naXRodWIuY29tL2J1bXAtc2gvYnVtcC1jaS1leGFtcGxlL2Jsb2IvbWFzdGVyLy50cmF2aXMueW1sCi0gR2l0SHViIGFjdGlvbjogaHR0cHM6Ly9naXRodWIuY29tL2J1bXAtc2gvZ2l0aHViLWFjdGlvbgoKVGhlIEdpdEh1YiBhY3Rpb24gZXhhbXBsZSB1c2VzIGEgZGVkaWNhdGVkIGFjdGlvbiB3ZSBjcmFmdGVkIGVzcGVjaWFsbHkgZm9yIHlvdS4gWW91IG1heSBmaW5kIG1vcmUgaW5mb3JtYXRpb24gb24gb3VyIFtHaXRIdWIgbWFya2V0cGxhY2UgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL21hcmtldHBsYWNlL2FjdGlvbnMvYXBpLWRvY3VtZW50YXRpb24tb24tYnVtcCkuCgpOb3RlIHRoYXQgaWYgeW91IGRvbid0IHdhbnQgdG8ga2VlcCB0aGUgcHJpdmF0ZSB0b2tlbiBhbmQgZG9jdW1lbnRhdGlvbiBpZCBpbiB5b3VyIGNvZGUgYmFzZSwgeW91IHNob3VsZCB1c2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBPdXIgQ0xJIGF1dG9tYXRpY2FsbHkgcmVjb2duaXplcyB0aGVzZSAzIHZhcmlhYmxlczoKLSBgQlVNUF9JRGA6IHlvdXIgZG9jdW1lbnRhdGlvbiBwdWJsaWMgaWQgb3Igc2x1ZwotIGBCVU1QX1RPS0VOYDogeW91ciBkb2N1bWVudGF0aW9uIHByaXZhdGUgdG9rZW4KLSBgQlVNUF9IVUJfSURgOiBpZiB1c2luZyBodWJzLCB5b3VyIGh1YiBwdWJsaWMgaWQgb3Igc2x1ZwoKIyMgQ29udHJpYnV0aW5nCgpCdWcgcmVwb3J0cyBhbmQgcHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZSBvbiBHaXRIdWIgYXQgaHR0cHM6Ly9naXRodWIuY29tL2J1bXAtc2gvYnVtcC1jaS1leGFtcGxlLiBUaGlzIHByb2plY3QgaXMgaW50ZW5kZWQgdG8gYmUgYSBzYWZlLCB3ZWxjb21pbmcgc3BhY2UgZm9yIGNvbGxhYm9yYXRpb24sIGFuZCBjb250cmlidXRvcnMgYXJlIGV4cGVjdGVkIHRvIGFkaGVyZSB0byB0aGUgW0NvbnRyaWJ1dG9yIENvdmVuYW50XShodHRwOi8vY29udHJpYnV0b3ItY292ZW5hbnQub3JnKSBjb2RlIG9mIGNvbmR1Y3QuCgojIyBMaWNlbnNlCgpUaGUgc2NyaXB0cyBhbmQgZG9jdW1lbnRhdGlvbiBpbiB0aGlzIHByb2plY3QgYXJlIHJlbGVhc2VkIHVuZGVyIHRoZSBbTUlUIExpY2Vuc2VdKExJQ0VOU0UpLgoKIyMgQ29kZSBvZiBDb25kdWN0CgpFdmVyeW9uZSBpbnRlcmFjdGluZyBpbiB0aGUgQnVtcCBgYnVtcC1jaS1leGFtcGxlYCBjb2RlIHJlcG9zaXRvcnksIGlzc3VlIHRyYWNrZXJzLCBjaGF0IHJvb21zIGFuZCBtYWlsaW5nIGxpc3RzIGlzIGV4cGVjdGVkIHRvIGZvbGxvdyB0aGUgW2NvZGUgb2YgY29uZHVjdF0oaHR0cHM6Ly9naXRodWIuY29tL2J1bXAtc2gvLmdpdGh1Yi9ibG9iL21hc3Rlci9DT0RFX09GX0NPTkRVQ1QubWQpLgoK readmeEtag: '"e98a7767a625fd42f8836f538f320b29588edd94"' readmeLastModified: Tue, 11 Jun 2024 11:54:51 GMT repositoryId: 156218433 description: >- CI integration examples for Github Action, Travis CI, CircleCI and Gitlab CI. created: '2018-11-05T12:59:45Z' updated: '2024-06-11T14:43:43Z' language: Shell archived: false stars: 2 watchers: 2 forks: 2 owner: bump-sh logo: https://avatars.githubusercontent.com/u/33217836?v=4 license: MIT repoEtag: '"3fa001a960658b9645b70cf25d460ce63671ee62b7c619496c941e4e01072db1"' repoLastModified: Tue, 11 Jun 2024 14:43:43 GMT foundInMaster: true category: Server Implementations id: 3c6b78bc784ecdf4c641738397de0df3 - source: openapi3 tags repository: https://github.com/igrek8/nestjs-typed-responses v3: true id: e85bbe79ca2140b53b166fbbe87e5350 repositoryMetadata: base64Readme: >- IyBbSGFuZGxlIHBvbHltb3JwaGljIHJlc3BvbnNlc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kYXRhLW1vZGVscy9pbmhlcml0YW5jZS1hbmQtcG9seW1vcnBoaXNtKSBpbiBOZXN0LmpzIE9wZW5BUEkKCkVuYWJsZXMgT3BlbkFQSSB2MyBwb2x5bW9ycGhpc20gdXNpbmcgYF9fdHlwZWAgbWV0YWZpZWxkIHRvIHJlc29sdmUgZGlmZmVyZW50IGV4Y2VwdGlvbnMgb3IgcmVzcG9uc2VzIHdpdGhpbiB0aGUgc2FtZSBIVFRQIGNvZGUgcmVzcG9uc2UgZ3JvdXAuCgpbIVtOUE1dKGh0dHBzOi8vYmFkZ2VuLm5ldC9ucG0vdi9uZXN0anMtdHlwZWQtcmVzcG9uc2VzKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL25lc3Rqcy10eXBlZC1yZXNwb25zZXMpClshW0NvdmVyYWdlXShodHRwczovL2NvZGVjb3YuaW8vZ2gvaWdyZWs4L25lc3Rqcy10eXBlZC1yZXNwb25zZXMvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2lncmVrOC9uZXN0anMtdHlwZWQtcmVzcG9uc2VzKQohW1JlbGVhc2VdKGh0dHBzOi8vYmFkZ2VuLm5ldC9naXRodWIvY2hlY2tzL2lncmVrOC9uZXN0anMtdHlwZWQtcmVzcG9uc2VzKQohW0xpY2Vuc2VdKGh0dHBzOi8vYmFkZ2VuLm5ldC9naXRodWIvbGljZW5zZS9pZ3JlazgvbmVzdGpzLXR5cGVkLXJlc3BvbnNlcykKCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaApucG0gaW5zdGFsbCAtLXNhdmUgbmVzdGpzLXR5cGVkLXJlc3BvbnNlcwoKeWFybiBhZGQgbmVzdGpzLXR5cGVkLXJlc3BvbnNlcwpgYGAKCiMjIE9wZW5BUEkKCiFbU3dhZ2dlcl0oLi9tZWRpYS9zd2FnZ2VyLnBuZykKCiMjIFVzYWdlCgpgYGB0cwppbXBvcnQgeyBDb25zb2xlTG9nZ2VyLCBDb250cm9sbGVyLCBIdHRwQ29kZSwgSHR0cFN0YXR1cywgTW9kdWxlLCBQb3N0LCBWYWxpZGF0aW9uUGlwZSB9IGZyb20gJ0BuZXN0anMvY29tbW9uJzsKaW1wb3J0IHsgQVBQX1BJUEUsIE5lc3RGYWN0b3J5IH0gZnJvbSAnQG5lc3Rqcy9jb3JlJzsKaW1wb3J0IHsKICBBcGlCYWRSZXF1ZXN0UmVzcG9uc2UsCiAgQXBpRXh0cmFNb2RlbHMsCiAgQXBpRm9yYmlkZGVuUmVzcG9uc2UsCiAgQXBpT2tSZXNwb25zZSwKICBBcGlQcm9wZXJ0eSwKICBEb2N1bWVudEJ1aWxkZXIsCiAgcmVmcywKICBTd2FnZ2VyTW9kdWxlLAp9IGZyb20gJ0BuZXN0anMvc3dhZ2dlcic7CmltcG9ydCB7IEV4cG9zZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJzsKaW1wb3J0IHsgSXNEYXRlU3RyaW5nLCBJc1N0cmluZyB9IGZyb20gJ2NsYXNzLXZhbGlkYXRvcic7CmltcG9ydCB7CiAgQXBpVHlwZU1ldGFmaWVsZCwKICBCYWRSZXF1ZXN0RXhjZXB0aW9uLAogIFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiwKICBUeXBlZERhdGFUcmFuc2Zlck9iamVjdCwKICBUeXBlZFJlc3BvbnNlTW9kdWxlLAogIFZhbGlkYXRpb25FeGNlcHRpb24sCn0gZnJvbSAnbmVzdGpzLXR5cGVkLXJlc3BvbnNlcyc7CgpjbGFzcyBNeVJlc3BvbnNlIGltcGxlbWVudHMgVHlwZWREYXRhVHJhbnNmZXJPYmplY3QgewogIC8vIEFwaVR5cGVNZXRhZmllbGQgbXVzdCBiZSBkZWZpbmVkIHRvIHNwZWNpZnkgc2VyaWFsaXphYmxlIHR5cGUKICBAQXBpVHlwZU1ldGFmaWVsZCgnTXlSZXNwb25zZScpCiAgX190eXBlID0gJ015UmVzcG9uc2UnOwoKICAvLyBJdCBpcyBub3QgcmVxdWlyZWQgdG8gYXBwbHkgQEV4cG9zZSBkZWNvcmF0b3IgKHBlciBjb25maWd1cmF0aW9uKQogIEBBcGlQcm9wZXJ0eSgpCiAgQElzU3RyaW5nKCkKICBkYXRhITogc3RyaW5nOwoKICBjb25zdHJ1Y3Rvcihwcm9wczogT21pdDxNeVJlc3BvbnNlLCAnX190eXBlJz4pIHsKICAgIE9iamVjdC5hc3NpZ24odGhpcywgcHJvcHMpOwogIH0KfQoKY2xhc3MgTWFpbnRlbmFuY2VFeGNlcHRpb24gZXh0ZW5kcyBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24gaW1wbGVtZW50cyBUeXBlZERhdGFUcmFuc2Zlck9iamVjdCB7CiAgLy8gQXBpVHlwZU1ldGFmaWVsZCBtdXN0IGJlIGRlZmluZWQgdG8gc3BlY2lmeSBzZXJpYWxpemFibGUgdHlwZQogIEBBcGlUeXBlTWV0YWZpZWxkKCdNYWludGVuYW5jZUV4Y2VwdGlvbicpCiAgb3ZlcnJpZGUgX190eXBlID0gJ01haW50ZW5hbmNlRXhjZXB0aW9uJzsKCiAgLy8gQEV4cG9zZSBtdXN0IGJlIHVzZWQgZXhwbGljaXRseSBpbiBlcnJvciBjbGFzc2VzIGFzIG9ubHkgc3VjaCBmaWVsZHMgd2lsbCBiZSBleHBvc2VkCiAgQEV4cG9zZSgpCiAgQEFwaVByb3BlcnR5KHsKICAgIGV4YW1wbGU6ICcyMDIyLTEyLTMxVDExOjAwOjAwLjAwMFonLAogICAgZGVzY3JpcHRpb246ICdUaGVyZSBpcyBhIG1haW50ZW5hbmNlIG9uIHRoZSBzZXJ2ZXInLAogIH0pCiAgQElzRGF0ZVN0cmluZygpCiAgb3BlcmF0aW9uYWxBdCE6IERhdGU7Cn0KCkBDb250cm9sbGVyKCkKQEFwaUV4dHJhTW9kZWxzKFZhbGlkYXRpb25FeGNlcHRpb24sIEJhZFJlcXVlc3RFeGNlcHRpb24pCmNsYXNzIEFwcENvbnRyb2xsZXIgewogIEBQb3N0KCkKICBASHR0cENvZGUoSHR0cFN0YXR1cy5PSykKICBAQXBpT2tSZXNwb25zZSh7IHR5cGU6IE15UmVzcG9uc2UgfSkKICBAQXBpRm9yYmlkZGVuUmVzcG9uc2UoeyB0eXBlOiBNYWludGVuYW5jZUV4Y2VwdGlvbiB9KQogIC8vIFBvbHltb3JwaGlzbSBodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2RhdGEtbW9kZWxzL2luaGVyaXRhbmNlLWFuZC1wb2x5bW9ycGhpc20vCiAgQEFwaUJhZFJlcXVlc3RSZXNwb25zZSh7IHNjaGVtYTogeyBvbmVPZjogcmVmcyhWYWxpZGF0aW9uRXhjZXB0aW9uLCBCYWRSZXF1ZXN0RXhjZXB0aW9uKSB9IH0pCiAgZGVtbygpOiBNeVJlc3BvbnNlIHsKICAgIHJldHVybiBuZXcgTXlSZXNwb25zZSh7CiAgICAgIGRhdGE6ICdIZWxsbyEnLAogICAgfSk7CiAgfQp9CgpATW9kdWxlKHsKICBwcm92aWRlcnM6IFsKICAgIHsKICAgICAgcHJvdmlkZTogQVBQX1BJUEUsCiAgICAgIHVzZVZhbHVlOiBuZXcgVmFsaWRhdGlvblBpcGUoewogICAgICAgIGV4Y2VwdGlvbkZhY3Rvcnk6IFZhbGlkYXRpb25FeGNlcHRpb24uZXhjZXB0aW9uRmFjdG9yeSwKICAgICAgfSksCiAgICB9LAogIF0sCiAgaW1wb3J0czogW1R5cGVkUmVzcG9uc2VNb2R1bGVdLAogIGNvbnRyb2xsZXJzOiBbQXBwQ29udHJvbGxlcl0sCn0pCmNsYXNzIEFwcE1vZHVsZSB7fQoKYXN5bmMgZnVuY3Rpb24gYm9vdHN0cmFwKCkgewogIGNvbnN0IGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShBcHBNb2R1bGUpOwogIGNvbnN0IGNvbmZpZyA9IG5ldyBEb2N1bWVudEJ1aWxkZXIoKS5idWlsZCgpOwogIGNvbnN0IGRvY3VtZW50ID0gU3dhZ2dlck1vZHVsZS5jcmVhdGVEb2N1bWVudChhcHAsIGNvbmZpZyk7CiAgU3dhZ2dlck1vZHVsZS5zZXR1cCgnLycsIGFwcCwgZG9jdW1lbnQpOwogIGF3YWl0IGFwcC5saXN0ZW4oMzAwMCk7Cn0KYm9vdHN0cmFwKCk7CmBgYAo= readmeEtag: '"a2ea10f602b6371a8fbd3c0eeca1a1e87dd795ab"' readmeLastModified: Thu, 01 Feb 2024 21:04:40 GMT repositoryId: 552389104 description: >- Allows implementation of polymorphism in OAS and exports nest.js exceptions as swagger schemes created: '2022-10-16T13:39:35Z' updated: '2023-06-15T13:09:53Z' language: TypeScript archived: false stars: 2 watchers: 1 forks: 0 owner: igrek8 logo: https://avatars.githubusercontent.com/u/7078731?v=4 license: MIT repoEtag: '"02fc33702f1eb08b9ab6bde07d375a767960adb2a59617a043763c31f7a69ad2"' repoLastModified: Thu, 15 Jun 2023 13:09:53 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/masterbomb/api v3: true repositoryMetadata: base64Readme: >- IyBNYXN0ZXJCb20gQVBJDQpbIVtjaV0oaHR0cHM6Ly9naXRodWIuY29tL01hc3RlcmJvbWIvYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vTWFzdGVyYm9tYi9hcGkvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sKQ0KWyFbaW1hZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXN0ZXJib21iL2FwaS9hY3Rpb25zL3dvcmtmbG93cy9pbWFnZS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL01hc3RlcmJvbWIvYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2ltYWdlLnltbCkNCjxwIGFsaWduPSJjZW50ZXIiPg0KICA8aW1nIHNyYz0iL2RvY3MvaW1nL01CLnBuZyI+PC9pbWc+DQo8L3A+DQoNCk1vZGlmaWVkOiAyMDIxLTExDQoNCiMjIE5hdmlnYXRpb24NCjEuIFtEb2N1bWVudGF0aW9uXSguL2RvY3MvUkVBRE1FLm1kKQ0KMi4gW0xpY2Vuc2VdKCNsaWNlbnNlKSANCg0KIyMgTGljZW5zZQ0KVGhpcyByZXBvc2l0b3J5IGlzIGxpY2Vuc2VkIGJ5IEdQTHYzLiBTZWUgdGhlIGZ1bGwgbGljZW5zZSBbaGVyZV0oTElDRU5TRSk= readmeEtag: '"838d63bb1054c8ed4bedccbe8ffe9080e58a0769"' readmeLastModified: Fri, 21 Jan 2022 23:29:26 GMT repositoryId: 362316411 description: Public-facing RESTful API created: '2021-04-28T02:42:30Z' updated: '2024-06-04T23:56:50Z' language: TypeScript archived: false stars: 2 watchers: 0 forks: 0 owner: Masterbomb logo: https://avatars.githubusercontent.com/u/83322983?v=4 license: GPL-3.0 repoEtag: '"f25d6136216987fdb8146ab7306045eca48592fd2ea705ea660a7f8aa4a9d3da"' repoLastModified: Tue, 04 Jun 2024 23:56:50 GMT foundInMaster: true category: - Server - Server Implementations id: 2a84fcc559645de77dd307ea57700808 - source: openapi3 tags repository: https://github.com/umatare5/atmos-go v3: true repositoryMetadata: base64Readme: >- IyBhdG1vcy1nbwoKKipETyBOT1QgRURJVCBUSElTIENPREUgTUFOVUFMTFkhKioKCmF0bW9zLWdvIGlzICoqVW5vZmZpY2lhbCoqIEdvIGNsaWVudCB0byB1c2UgW0FUTU9TIFBsYXRmb3JtIEFQSV0oaHR0cHM6Ly93d3cuYXRtb3MuYXBwLykuCgpUaGUgY29kZSB3YXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgdXNpbmcgW2F0bW9zLW9wZW5hcGktc3JjXShodHRwczovL2dpdGh1Yi5jb20vdW1hdGFyZTUvYXRtb3Mtb3BlbmFwaS1zcmMpLgoKIyMgVXNhZ2UKCmBgYHNoCmdvIGdldCBnaXRodWIuY29tL3VtYXRhcmU1L2F0bW9zLWdvCmBgYAo= readmeEtag: '"66aa1de25effe71335948b817a092afd55e290af"' readmeLastModified: Wed, 26 Jan 2022 12:35:17 GMT repositoryId: 452261817 description: Unofficial client library to use ATMOS Platform API created: '2022-01-26T12:12:15Z' updated: '2024-06-05T00:31:01Z' language: null archived: false stars: 2 watchers: 1 forks: 0 owner: umatare5 logo: https://avatars.githubusercontent.com/u/72645163?v=4 repoEtag: '"5723e8d95263cf25b5a2892dca9babaaf04cf0099d6827bcea8d680a1737137f"' repoLastModified: Wed, 05 Jun 2024 00:31:01 GMT foundInMaster: true category: - SDK - Code Generators id: b42d1455f0cced95d343f76d1fc10174 - source: openapi3 tags repository: https://github.com/protung/open-api-generator v3: true id: dad021a6042570a6ec3443b27243924c repositoryMetadata: base64Readme: >- T3BlbiBBcGkgR2VuZXJhdG9yCj09PT09PT09PT09PT09PT09PQoKWyFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90dW5nL29wZW4tYXBpLWdlbmVyYXRvci93b3JrZmxvd3MvQnVpbGQvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3Byb3R1bmcvb3Blbi1hcGktZ2VuZXJhdG9yL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FCdWlsZCticmFuY2glM0FtYWluKQpbIVtTb2Z0d2FyZSBMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJyaWdodGdyZWVuLnN2ZyldKExJQ0VOU0UubWQpCgojIyBJbnN0YWxsYXRpb24KClJlcXVpcmUgdXNpbmcgY29tcG9zZXI6CgpgYGBzaGVsbAokIGNvbXBvc2VyIHJlcXVpcmUgcHJvdHVuZy9vcGVuLWFwaS1nZW5lcmF0b3IKYGBgCgojIyBMaWNlbnNlCgpUaGlzIHBhY2thZ2UgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFtNSVQgbGljZW5zZV0oTElDRU5TRS5tZCkuCg== readmeEtag: '"f4eff9d60bd0d86002e7a1209b4d4f5f613291be"' readmeLastModified: Sat, 10 Aug 2024 05:37:59 GMT repositoryId: 265488630 description: Library to generate the OpenApi specification in PHP created: '2020-05-20T07:41:03Z' updated: '2024-09-05T11:40:46Z' language: PHP archived: false stars: 2 watchers: 4 forks: 6 owner: protung logo: https://avatars.githubusercontent.com/u/81255167?v=4 license: MIT repoEtag: '"7b48812aae7eee0992423acca2546e37bb160974fd900e075c9abf5a7c4a7e2a"' repoLastModified: Thu, 05 Sep 2024 11:40:46 GMT category: - Server - Parsers foundInMaster: true oldLocations: - https://github.com/speicher210/open-api-generator - source: openapi3 tags repository: https://github.com/cbetta/json-schema-sensitivity-checker v3: true repositoryMetadata: base64Readme: >- IyBqc29uLXNjaGVtYS1zZW5zaXRpdml0eS1jaGVja2VyCgpbIVtucG0KdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL2pzb24tc2NoZW1hLXNlbnNpdGl2aXR5LWNoZWNrZXIuc3ZnKV0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL2pzb24tc2NoZW1hLXNlbnNpdGl2aXR5LWNoZWNrZXIpCiFbY2kgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vY2JldHRhL2pzb24tc2NoZW1hLXNlbnNpdGl2aXR5LWNoZWNrZXIvd29ya2Zsb3dzL05vZGUlMjBDSS9iYWRnZS5zdmcpCgpUaGlzIENMSSBhbGxvd3MgeW91IHRvIHByb3ZpZGUgYSBKU09OUGF0aCBleHByZXNzaW9uIGFuZCBydW4KW2BhbGV4YF0oaHR0cHM6Ly9hbGV4anMuY29tKSBhZ2FpbnN0IGFueSBtYXRjaGluZyBsaW5lcy4KCj4gVGhpcyB0b29sIGlzIGN1cnJlbnRseSBpbiBhbHBoYSBhbmQgaGFzIHByaW1hcmlseSBiZWVuIHRlc3RlZCBhZ2FpbnN0IE9wZW5BUEkKPiBmaWxlcy4gUFJzIGFyZSB3ZWxjb21lIQoKVGhpcyBwcm9qZWN0IGlzIHZlcnkgbXVjaCBpbnNwaXJlZCBieSBhbmQgYmFzZWQgb24gdGhlIHdvcmsgZG9uZSBvbiB0aGUKW2Bqc29uLXNjaGVtYS1zcGVsbC1jaGVja2VyYF0oaHR0cHM6Ly9naXRodWIuY29tL21oZWFwL2pzb24tc2NoZW1hLXNwZWxsLWNoZWNrZXIpCmJ5IE1pY2hhZWwgSGVhcC4KCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBqc29uLXNjaGVtYS1zZW5zaXRpdml0eS1jaGVja2VyCmBgYAoKIyMgVXNhZ2UKCkNoZWNrIGFnYWluc3Qgc3BlY2lmaWMgZmllbGQgbmFtZXMgYXQgYW55IGRlcHRoOgoKYGBgYmFzaApqc29uLXNjaGVtYS1zZW5zaXRpdml0eS1jaGVja2VyIC1mICdkZXNjcmlwdGlvbix0aXRsZScgcGF0aC90by9vcGVuYXBpLmpzb24KYGBgCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNwZWNpZnkgYSBKU09OUGF0aCBleHByZXNzaW9uIHlvdXJzZWxmLgoKYGBgYmFzaApqc29uLXNjaGVtYS1zZW5zaXRpdml0eS1jaGVja2VyIC1qICckLi5bImRlc2NyaXB0aW9uIiwidGl0bGUiXScgcGF0aC90by9vcGVuYXBpLmpzb24KYGBgCgojIyBPcHRpb25zCgpgYGBiYXNoClVzYWdlOiBiaW4gW29wdGlvbnNdIHNvdXJjZS1maWxlCgpPcHRpb25zOgogIC1WLCAtLXZlcnNpb24gICAgICAgICAgIG91dHB1dCB0aGUgdmVyc2lvbiBudW1iZXIKICAtdCwgLS10ZXh0ICAgICAgICAgICAgICB0cmVhdCBpbnB1dCBhcyBwbGFpbi10ZXh0IChub3QgbWFya2Rvd24pCiAgLWwsIC0taHRtbCAgICAgICAgICAgICAgdHJlYXQgaW5wdXQgYXMgaHRtbCAobm90IG1hcmtkb3duKQogIC1kLCAtLWRpZmYgICAgICAgICAgICAgIGlnbm9yZSB1bmNoYW5nZWQgbGluZXMgKGFmZmVjdHMgVHJhdmlzIG9ubHkpCiAgLWosIC0tanNvbi1wYXRoIFtwYXRoXSAgc3BlY2lmeSBhIGpzb25wYXRoIGV4cHJlc3Npb24gdG8gbWF0Y2gKICAtYywgLS1jb25maWcgW3BhdGhdICAgICBzcGVjaWZ5IGEgSlNPTiBmb3JtYXR0ZWQgQWxleCBjb25maWcgdG8gcGFzcyB0byBldmVyeSBtYXRjaAogIC1mLCAtLWZpZWxkcyBbZmllbGRzXSAgIHNwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbApgYGAK readmeEtag: '"1d5e04c2421f4a435d41773bb9a428301645aa57"' readmeLastModified: Fri, 17 Nov 2023 13:19:57 GMT repositoryId: 227859847 description: Check the sensitivity of your JSON Schema (including OpenAPI!) documents created: '2019-12-13T14:41:20Z' updated: '2023-11-17T13:13:52Z' language: JavaScript archived: false stars: 2 watchers: 2 forks: 0 owner: cbetta logo: https://avatars.githubusercontent.com/u/7718?v=4 repoEtag: '"b0350b5726a24caef0503b121b2a0d7e7f13a7c8bdce17a21420d9b9811b4277"' repoLastModified: Fri, 17 Nov 2023 13:13:52 GMT foundInMaster: true category: Parsers id: ca8b847aee3149a89528c19339c49609 - source: openapi3 tags repository: https://github.com/deepakbhalla/springboot-postgres-jsonb-jpa v3: true id: ee3ef4783b54d3953064d870157c1920 repositoryMetadata: base64Readme: >- IyBzcHJpbmdib290LXBvc3RncmVzLWpzb25iLWpwYQpBcHBsaWNhdGlvbiB0byBkZW1vbnN0cmF0ZSB0aGUgSlNPTkIgZGF0YSB0eXBlIHVzZWQgaW4gUG9zdGdyZVNRTCBkYXRhYmFzZSB1c2luZyBTcHJpbmdib290IEpQQSBpbXBsZW1lbnRhdGlvbi4KCiMjIyBKU09OIERhdGEgVHlwZXMKCkpTT04gZGF0YSB0eXBlcyBhcmUgZm9yIHN0b3JpbmcgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pIGRhdGEuIFN1Y2ggZGF0YSBjYW4gYWxzbyBiZSBzdG9yZWQgYXMgdGV4dCwgYnV0IHRoZSAKSlNPTiBkYXRhIHR5cGVzIGhhdmUgdGhlIGFkdmFudGFnZSBvZiBlbmZvcmNpbmcgdGhhdCBlYWNoIHN0b3JlZCB2YWx1ZSBpcyB2YWxpZCBhY2NvcmRpbmcgdG8gdGhlIEpTT04gcnVsZXMuIFRoZXJlIGFyZSAKYWxzbyBhc3NvcnRlZCBKU09OLXNwZWNpZmljIGZ1bmN0aW9ucyBhbmQgb3BlcmF0b3JzIGF2YWlsYWJsZSBmb3IgZGF0YSBzdG9yZWQgaW4gdGhlc2UgZGF0YSB0eXBlcy4KClBvc3RncmVTUUwgb2ZmZXJzIHR3byB0eXBlcyBmb3Igc3RvcmluZyBKU09OIGRhdGE6IAoKLSBKU09OIAotIEpTT05CLiAKClRvIGltcGxlbWVudCBlZmZpY2llbnQgcXVlcnkgbWVjaGFuaXNtcyBmb3IgdGhlc2UgCmRhdGEgdHlwZXMsIFBvc3RncmVTUUwgYWxzbyBwcm92aWRlcyB0aGUganNvbnBhdGggZGF0YSB0eXBlLgoKVGhlIGpzb24gYW5kIGpzb25iIGRhdGEgdHlwZXMgYWNjZXB0IGFsbW9zdCBpZGVudGljYWwgc2V0cyBvZiB2YWx1ZXMgYXMgaW5wdXQuIFRoZSBtYWpvciBwcmFjdGljYWwgZGlmZmVyZW5jZSBpcyBvbmUgCm9mIGVmZmljaWVuY3kuIFRoZSBqc29uIGRhdGEgdHlwZSBzdG9yZXMgYW4gZXhhY3QgY29weSBvZiB0aGUgaW5wdXQgdGV4dCwgd2hpY2ggcHJvY2Vzc2luZyBmdW5jdGlvbnMgbXVzdCByZXBhcnNlIG9uIAplYWNoIGV4ZWN1dGlvbjsgd2hpbGUganNvbmIgZGF0YSBpcyBzdG9yZWQgaW4gYSBkZWNvbXBvc2VkIGJpbmFyeSBmb3JtYXQgdGhhdCBtYWtlcyBpdCBzbGlnaHRseSBzbG93ZXIgdG8gaW5wdXQgZHVlIHRvIAphZGRlZCBjb252ZXJzaW9uIG92ZXJoZWFkLCBidXQgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdG8gcHJvY2Vzcywgc2luY2Ugbm8gcmVwYXJzaW5nIGlzIG5lZWRlZC4ganNvbmIgYWxzbyBzdXBwb3J0cyAKaW5kZXhpbmcsIHdoaWNoIGNhbiBiZSBhIHNpZ25pZmljYW50IGFkdmFudGFnZS4KCkJlY2F1c2UgdGhlIGpzb24gdHlwZSBzdG9yZXMgYW4gZXhhY3QgY29weSBvZiB0aGUgaW5wdXQgdGV4dCwgaXQgd2lsbCBwcmVzZXJ2ZSBzZW1hbnRpY2FsbHktaW5zaWduaWZpY2FudCB3aGl0ZSBzcGFjZSAKYmV0d2VlbiB0b2tlbnMsIGFzIHdlbGwgYXMgdGhlIG9yZGVyIG9mIGtleXMgd2l0aGluIEpTT04gb2JqZWN0cy4gQWxzbywgaWYgYSBKU09OIG9iamVjdCB3aXRoaW4gdGhlIHZhbHVlIGNvbnRhaW5zIHRoZSAKc2FtZSBrZXkgbW9yZSB0aGFuIG9uY2UsIGFsbCB0aGUga2V5L3ZhbHVlIHBhaXJzIGFyZSBrZXB0LiAoVGhlIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGNvbnNpZGVyIHRoZSBsYXN0IHZhbHVlIGFzIHRoZSAKb3BlcmF0aXZlIG9uZS4pIEJ5IGNvbnRyYXN0LCBqc29uYiBkb2VzIG5vdCBwcmVzZXJ2ZSB3aGl0ZSBzcGFjZSwgZG9lcyBub3QgcHJlc2VydmUgdGhlIG9yZGVyIG9mIG9iamVjdCBrZXlzLCBhbmQgZG9lcyAKbm90IGtlZXAgZHVwbGljYXRlIG9iamVjdCBrZXlzLiBJZiBkdXBsaWNhdGUga2V5cyBhcmUgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCwgb25seSB0aGUgbGFzdCB2YWx1ZSBpcyBrZXB0LgoKSW4gZ2VuZXJhbCwgbW9zdCBhcHBsaWNhdGlvbnMgc2hvdWxkIHByZWZlciB0byBzdG9yZSBKU09OIGRhdGEgYXMganNvbmIsIHVubGVzcyB0aGVyZSBhcmUgcXVpdGUgc3BlY2lhbGl6ZWQgbmVlZHMsIHN1Y2ggCmFzIGxlZ2FjeSBhc3N1bXB0aW9ucyBhYm91dCBvcmRlcmluZyBvZiBvYmplY3Qga2V5cy4KCkpTT05CIGlzIGEgImJldHRlciIgdmVyc2lvbiBvZiBKU09OLgoKTGV0J3MgbG9vayBhdCBhbiBleGFtcGxlOgoKLSBKU09OCgohW2ltZy5wbmddKHNjcmVlbnNob3RzLzE5X2pzb25fZGF0YV90eXBlX2V4YW1wbGUucG5nKQoKLSBKU09OQgoKIVtpbWcucG5nXShzY3JlZW5zaG90cy8yMF9qc29uYl9kYXRhX3R5cGVfZXhhbXBsZS5wbmcpCgpJbiBzdW1tYXJ5LAoKMS4gSlNPTiBzdG9yZXMgd2hpdGUgc3BhY2UsIGFuZCB0aGF0IGlzIHdoeSB3ZSBjYW4gc2VlIHNwYWNlcyB3aGVuIGtleSAiYSIgaXMgc3RvcmVkLCB3aGlsZSBKU09OQiBkb2VzIG5vdC4KMi4gSlNPTiBzdG9yZXMgYWxsIHRoZSB2YWx1ZXMgb2YgYSBrZXkuIFRoaXMgaXMgdGhlIHJlYXNvbiB5b3UgY2FuIHNlZSBtdWx0aXBsZSB2YWx1ZXMgKDIgYW5kIDEpIGFnYWluc3QgdGhlIGtleSAiYSIsIHdoaWxlIEpTT05CIG9ubHkgInN0b3JlcyIgdGhlIGxhc3QgdmFsdWUuCjMuIEpTT04gbWFpbnRhaW5zIHRoZSBvcmRlciBpbiB3aGljaCBlbGVtZW50cyBhcmUgaW5zZXJ0ZWQsIHdoaWxlIEpTT05CIG1haW50YWlucyB0aGUgInNvcnRlZCIgb3JkZXIuCjQuIEpTT05CIG9iamVjdHMgYXJlIHN0b3JlZCBhcyBhIGRlY29tcHJlc3NlZCBiaW5hcnkgYXMgb3Bwb3NlZCB0byAicmF3IGRhdGEiIGluIEpTT04sIHdoZXJlIG5vIHJlcGFyc2luZyBvZiBkYXRhIGlzIHJlcXVpcmVkIGR1cmluZyByZXRyaWV2YWwuCjUuIEpTT05CIGFsc28gc3VwcG9ydHMgaW5kZXhpbmcsIHdoaWNoIGNhbiBiZSBhIHNpZ25pZmljYW50IGFkdmFudGFnZS4KCiMjIyBKU09OIEZ1bmN0aW9ucyBhbmQgT3BlcmF0b3JzCgpUaGlzIHNlY3Rpb24gZGVzY3JpYmVzOgoKLSBmdW5jdGlvbnMgYW5kIG9wZXJhdG9ycyBmb3IgcHJvY2Vzc2luZyBhbmQgY3JlYXRpbmcgSlNPTiBkYXRhCi0gdGhlIFNRTC9KU09OIHBhdGggbGFuZ3VhZ2UKClRvIHByb3ZpZGUgbmF0aXZlIHN1cHBvcnQgZm9yIEpTT04gZGF0YSB0eXBlcyB3aXRoaW4gdGhlIFNRTCBlbnZpcm9ubWVudCwgUG9zdGdyZVNRTCBpbXBsZW1lbnRzIHRoZSBTUUwvSlNPTiBkYXRhIG1vZGVsLiAKVGhpcyBtb2RlbCBjb21wcmlzZXMgc2VxdWVuY2VzIG9mIGl0ZW1zLiBFYWNoIGl0ZW0gY2FuIGhvbGQgU1FMIHNjYWxhciB2YWx1ZXMsIHdpdGggYW4gYWRkaXRpb25hbCBTUUwvSlNPTiBudWxsIHZhbHVlLCAKYW5kIGNvbXBvc2l0ZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCB1c2UgSlNPTiBhcnJheXMgYW5kIG9iamVjdHMuIFRoZSBtb2RlbCBpcyBhIGZvcm1hbGl6YXRpb24gb2YgdGhlIGltcGxpZWQgZGF0YSBtb2RlbCAKaW4gdGhlIEpTT04gc3BlY2lmaWNhdGlvbi4KClNRTC9KU09OIGFsbG93cyB5b3UgdG8gaGFuZGxlIEpTT04gZGF0YSBhbG9uZ3NpZGUgcmVndWxhciBTUUwgZGF0YSwgd2l0aCB0cmFuc2FjdGlvbiBzdXBwb3J0LCBpbmNsdWRpbmc6CgotIFVwbG9hZGluZyBKU09OIGRhdGEgaW50byB0aGUgZGF0YWJhc2UgYW5kIHN0b3JpbmcgaXQgaW4gcmVndWxhciBTUUwgY29sdW1ucyBhcyBjaGFyYWN0ZXIgb3IgYmluYXJ5IHN0cmluZ3MuCi0gR2VuZXJhdGluZyBKU09OIG9iamVjdHMgYW5kIGFycmF5cyBmcm9tIHJlbGF0aW9uYWwgZGF0YS4KLSBRdWVyeWluZyBKU09OIGRhdGEgdXNpbmcgU1FML0pTT04gcXVlcnkgZnVuY3Rpb25zIGFuZCBTUUwvSlNPTiBwYXRoIGxhbmd1YWdlIGV4cHJlc3Npb25zLgoKIyMjIE9wZW5BUEkgU3BlY2lmaWNhdGlvbgoKaHR0cDovL2xvY2FsaG9zdDo5MDkxL215LWFwcGxpY2F0aW9uL3N3YWdnZXItdWkvaW5kZXguaHRtbAoKIVtpbWcucG5nXShzY3JlZW5zaG90cy8yMV9vcGVuYXBpX3N3YWdnZXJfc3BlY2lmaWNhdGlvbnMucG5nKQoKIyMjIERpc2FibGUgT3BlbkFQSSBTd2FnZ2VyIGZvciBQcm9kdWN0aW9uIEVudmlyb25tZW50CgpXZSBjYW4gZGlzYWJsZSBPcGVuQVBJIHN3YWdnZXIgZm9yIGFueSBlbnZpcm9ubWVudCBiYXNlZCB1cG9uIHByb2ZpbGVzLiBXZSBjYW4gc3VwcGx5IGEgVk0gYXJndW1lbnQgCictRHNwcmluZy5wcm9maWxlcy5hY3RpdmU9PGVudmlyb25tZW50IG5hbWU+JyB0byB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbnMuClVzaW5nIHNwcmluZyBwcm9maWxlIGFubm90YXRpb24gQFByb2ZpbGUoInByb2QiKSwgd2UgY2FuIGNvbnRyb2wgdGhlIGRpc3BsYXkgb2Ygc3dhZ2dlci4KCi0gVk0gQXJndW1lbnQKCiFbaW1nLnBuZ10oc2NyZWVuc2hvdHMvMjJfdm1fYXJndW1lbnRfc3ByaW5nX2FjdGl2ZV9wcm9maWxlLnBuZykKCklmIHRoZSB2YWx1ZSBvZiBzcHJpbmcgcHJvZmlsZSBpcyAncHJvZCcsIHRoZW4gc3dhZ2dlciB3b24ndCBiZSBhdmFpbGFibGUuIFBsZWFzZSByZWZlciB0aGUgYmVsb3cgc2NyZWVuc2hvdDoKCiFbaW1nLnBuZ10oc2NyZWVuc2hvdHMvMjNfc3dhZ2dlcl9ub3RfYXZhaWxhYmxlLnBuZykKClJlZmVyZW5jZXM6CgotIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9kYXRhdHlwZS1qc29uLmh0bWwKLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvZnVuY3Rpb25zLWpzb24uaHRtbAo= readmeEtag: '"dca96c49d87c408f4d74578cada0f7a61dcfe458"' readmeLastModified: Thu, 26 Oct 2023 18:27:53 GMT repositoryId: 704453985 description: >- Spring boot application to demonstrate the JSONB data type to be used in Postgre SQL database using Springboot JPA. created: '2023-10-13T09:40:28Z' updated: '2024-08-28T00:33:32Z' language: Java archived: false stars: 2 watchers: 1 forks: 0 owner: deepakbhalla logo: https://avatars.githubusercontent.com/u/6603640?v=4 repoEtag: '"a03e52f1e3fe79b2635a269d68fa5174bce5672072d1db528000e535ed3f9843"' repoLastModified: Wed, 28 Aug 2024 00:33:32 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/alexbernardi360/guitar-composer v3: true repositoryMetadata: base64Readme: >- IyBndWl0YXItY29tcG9zZXIKaHR0cHM6Ly9ndWl0YXItY29tcG9zZXIuaGVyb2t1YXBwLmNvbS8KClJFU1RmdWwgQVBJIHBlciBjaGl0YXJyaXN0aSwgcGVybWV0dGUgZGkgYWdnaXVuZ2VyZSwgbW9kaWZpY2FyZSBlIGNlcmNhcmUgdGVzdGkgZGkgY2Fuem9uaSBjb24gYWNjb3JkaS4KSSBkYXRpIHJpZ3VhcmRhbnRpIGxlIGNhbnpvbmkgdmVuZ29ubyBhZ2dpdW50aSBkYWdsaSB1dGVudGkuClZlbmdvbm8gaW52aWF0aSBkYXRpIHVsdGVyaW9yaSBvdHRlbnV0aSBkYSBbVGhlQXVkaW9EQl0oaHR0cDovL3d3dy50aGVhdWRpb2RiLmNvbS8gIlRoZUF1ZGlvREIiKS4KCi0tLS0tLS0tLS0tLQoKUHJvZ2V0dG8gZCdlc2FtZSBwZXIgaWwgY29yc28gW1BJQVRUQUZPUk1FIERJR0lUQUxJIFBFUiBMQSBHRVNUSU9ORSBERUwgVEVSUklUT1JJT10oaHR0cHM6Ly93d3cudW5pdXJiLml0L2luc2VnbmFtZW50aS1lLXByb2dyYW1taS8yNTU1NzcgIlBJQVRUQUZPUk1FIERJR0lUQUxJIFBFUiBMQSBHRVNUSU9ORSBERUwgVEVSUklUT1JJTyIpIGRlbGwnVW5pdmVyc2l0w6AgZGVnbGkgU3R1ZGkgZGkgVXJiaW5vIENhcmxvIEJvLlwKU3ZpbHVwcGF0byBkYSAqKkFsZXNzYW5kcm8gQmVybmFyZGkqKiwgbWF0cmljb2xhOiAyODQ5NjguCgotLS0tLS0tLS0tLS0KCi0gW0RvY3VtZW50YXppb25lIEFQSV0oaHR0cHM6Ly9hcHAuc3dhZ2dlcmh1Yi5jb20vYXBpcy1kb2NzL2FsZXhiZXJuYXJkaTM2MC9ndWl0YXItY29tcG9zZXIvMS4wICJEb2N1bWVudGF6aW9uZSBBUEkiKQoKLSBbU2NlbHRlIGltcGxlbWVudGF0aXZlXSguL2RvY3VtZW50YXRpb25faXRhL0NIT0lDRVMubWQgIlNjZWx0ZSBpbXBsZW1lbnRhdGl2ZSIpCgotIFtTZXJ2aXppIGVzdGVybmldKC4vZG9jdW1lbnRhdGlvbl9pdGEvRVhURVJOQUxTRVJWSUNFUy5tZCAiU2Vydml6aSBlc3Rlcm5pIikKCi0gW0RlcGxveV0oLi9kb2N1bWVudGF0aW9uX2l0YS9ERVBMT1kubWQgIkRlcGxveSIpCgotIFtHdWlkYSBhbGwndXRpbGl6em9dKC4vZG9jdW1lbnRhdGlvbl9pdGEvR1VJREUubWQgIkd1aWRhIGFsbCd1dGlsaXp6byIpCgo= readmeEtag: '"ca48043484c2ef5a0b7979f7b1bf1bbaa48f3843"' readmeLastModified: Fri, 12 Jun 2020 17:45:10 GMT repositoryId: 255621056 description: >- An openAPI for guitarists: add, edit and search lyrics and chords of your favorite songs. created: '2020-04-14T13:46:04Z' updated: '2020-06-12T17:45:40Z' language: HTML archived: false stars: 2 watchers: 1 forks: 0 owner: alexbernardi360 logo: https://avatars.githubusercontent.com/u/26739236?v=4 license: MIT repoEtag: '"e9cf7251285be42c972ca2dbd648dffcfada4cf832a9944b8f541e3484d54ce9"' repoLastModified: Fri, 12 Jun 2020 17:45:40 GMT foundInMaster: true category: Mock id: 95448c995e4658a9e2b08a21299df7f6 - source: openapi3 tags repository: https://github.com/kasdihacene/global-azure-2022 v3: true id: 8b83f347681bd99eafa353c51ecf0a3e repositoryMetadata: base64Readme: >- IyMgRW5kLXRvLWVuZCBhcHBsaWNhdGlvbiBtb25pdG9yaW5nIHdpdGggQXp1cmUgQXBwIEluc2lnaHRzIDpyb2NrZXQ6CgohW0VuZC10by1lbmRfYXBwbGljYXRpb25fbW9uaXRvcmluZ193aXRoX0F6dXJlX0FwcF9JbnNpZ2h0c10oYXNzZXRzL0VuZC10by1lbmRfYXBwbGljYXRpb25fbW9uaXRvcmluZ193aXRoX0F6dXJlX0FwcF9JbnNpZ2h0cy5qcGVnKQoKClRoZSBwdXJwb3NlIG9mIHRoaXMgcmVwb3NpdG9yeSBpcyB0byBzaG93IHlvdSwgaG93IGRvIHdlIG1vbml0b3IgdGhlIEphdmEgYXBwbGljYXRpb25zIGRlcGxveWVkIG9uIEF6dXJlIEt1YmVybmV0ZXMgU2VydmljZSwgdXNpbmcgYSBmZWF0dXJlIG9mIEF6dXJlIE1vbml0b3IgdGhhdCBwcm92aWRlcyBleHRlbnNpYmxlIGFwcGxpY2F0aW9uIHBlcmZvcm1hbmNlIG1hbmFnZW1lbnQgKEFQTSkgYW5kIG1vbml0b3JpbmcgZm9yIGxpdmUgd2ViIGFwcHMuIERldmVsb3BlcnMgYW5kIERldk9wcyBwcm9mZXNzaW9uYWxzIGNhbiB1c2UgQXBwbGljYXRpb24gSW5zaWdodHMgdG86CgrinIUgQXV0b21hdGljYWxseSBkZXRlY3QgcGVyZm9ybWFuY2UgYW5vbWFsaWVzLgoK4pyFIEhlbHAgZGlhZ25vc2UgaXNzdWVzIGJ5IHVzaW5nIHBvd2VyZnVsIGFuYWx5dGljcyB0b29scy4KCuKchSBTZWUgd2hhdCB1c2VycyBhY3R1YWxseSBkbyB3aXRoIGFwcHMuCgrinIUgSGVscCBjb250aW51b3VzbHkgaW1wcm92ZSBhcHAgcGVyZm9ybWFuY2UgYW5kIHVzYWJpbGl0eS4KClNpbmNlICoqTm92ZW1iZXIgMjAyMCoqLCB1c2luZyBKYXZhIFNESyBpcyBubyBtb3JlIG5lZWRlZCB0byBpbnN0cnVtZW50IGphdmEgYXBwbGljYXRpb25zIGFuZCB0byBjb2xsZWN0IGFwcGxpY2F0aW9uIAp0ZWxlbWV0cnkuIFRoZSBzb2x1dGlvbiByZWNvbW1lbmRlZCBieSBNaWNyb3NvZnQgaXMgYW4gKiphdXRvLWluc3RydW1lbnRhdGlvbioqIHVzaW5nIDMuMCBhZ2VudCB3aGljaCB3aWxsIAp0cmFjayBhbmQgY29ycmVsYXRlIHRoZSBhcHBsaWNhdGlvbi4KCiMjIyBUZWNobmljYWwgc3RhY2sgOmJ1aWxkaW5nX2NvbnN0cnVjdGlvbjoKClRoZSBzdGFjayB1c2VkIG9uIHRoaXMgdHV0b3JpYWwgaXMgOgoKLSBTcHJpbmdCb290IDIuNi54Ci0gSmF2YSAxNwotIE9wZW5BUEkgMy4wIOKAlCBDb250cmFjdC1GSVJTVCAoRG9jdW1lbnRpbmcgdGhlIEFQSSkKLSBUZXJyYWZvcm0KLSBLdWJlcm5ldGVzIGFuZCBIZWxtIGNoYXJ0CgojIyMgSW5zdGFsbGluZyBkZXYgdG9vbHMg8J+SvAoKRm9yIHRoaXMgd29ya3Nob3Agd2UgbmVlZCBzb21lIHRvb2xzIHRvIGludGVyYWN0IHdpdGggdGhlIEF6dXJlIGFjY291bnQgYGF6IGNsaWAsIEt1YmVybmV0ZXMgc2VydmljZXMgKGBrdWJlY3RsYCksIG1heWJlIHRoZSB0b29sIGZvciBJYWFDIHRvIHByb3Zpc2lvbiBhIHJlc291cmNlcyAoYFRlcnJhZm9ybWApCgoxLSBBenVyZSBDbGk6CgogICAgV2luZG93czogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvY2xpL2F6dXJlL2luc3RhbGwtYXp1cmUtY2xpLXdpbmRvd3M/dGFicz1henVyZS1jbGkKICAgIExpbnV4OiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9mci1mci9jbGkvYXp1cmUvaW5zdGFsbC1henVyZS1jbGktbGludXg/cGl2b3RzPWFwdAogICAgTWFjb3M6IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2ZyLWZyL2NsaS9henVyZS9pbnN0YWxsLWF6dXJlLWNsaS1tYWNvcwoKQ2hlY2sgOiAkIGF6IC12IG9yIGF6IC0tdmVyc2lvbgoKMi0ga3ViZWN0bCAobm90IGt1YmVsZXQpIDoKCiAgICBXaW5kb3dzOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZnIvZG9jcy90YXNrcy90b29scy9pbnN0YWxsLWt1YmVjdGwvI2luc3RhbGxlci1rdWJlY3RsLXN1ci13aW5kb3dzCiAgICBMaW51eDogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2ZyL2RvY3MvdGFza3MvdG9vbHMvaW5zdGFsbC1rdWJlY3RsLyNpbnN0YWxsZXIta3ViZWN0bC1zdXItbGludXgKICAgIE1hY29zOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZnIvZG9jcy90YXNrcy90b29scy9pbnN0YWxsLWt1YmVjdGwvI2luc3RhbGxlci1hdmVjLWhvbWVicmV3LXN1ci1tYWNvcwoKQ2hlY2sgOiAkIGt1YmVjdGwgdmVyc2lvbgoKMy0gdGVycmFmb3JtIAogICAgCiAgICBBbGwgZW52aXJvbm1lbnRzOiBodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG93bmxvYWRzLmh0bWwKCkNoZWNrIDogJCB0ZXJyYWZvcm0gLXYgb3IgdGVycmFmb3JtIC0tdmVyc2lvbgoKNC0gWW91IG5lZWQgYWxzbyBoZWxtIGNsaSAoSWYgeW91IHdhbnQgdG8gZGVwbG95IGRpcmVjdGx5IHRoZSBjaGFydHMgd2l0aG91dCB1c2luZyB0ZXJyYWZvcm0gLSBoZWxtX3JlbGVhc2UgcmVzb3VyY2Up readmeEtag: '"3bc943ec502b6bb2c2c6399270b3ba37bb88d299"' readmeLastModified: Sun, 01 May 2022 14:11:45 GMT repositoryId: 479689958 description: >- Communities around the world are organizing localized live streams for everyone around the world to join and learn about Azure from the best-in-class community leaders. created: '2022-04-09T10:16:15Z' updated: '2022-05-16T12:46:37Z' language: Java archived: false stars: 2 watchers: 2 forks: 0 owner: kasdihacene logo: https://avatars.githubusercontent.com/u/25183892?v=4 repoEtag: '"8df4e3378744c1aca2a10ef5d9fee4517c9ca1e9a1756cf969b177425fd40a4c"' repoLastModified: Mon, 16 May 2022 12:46:37 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/gabrielmaialva33/soc-ex-api v3: true id: 39a8671b7b22dece20e934ddcda828bb repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgogIDxicj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dhYnJpZWxtYWlhbHZhMzMvc29jLWV4LWFwaS9tYXN0ZXIvLmdpdGh1Yi9hc3NldHMvcG90aW9uLnBuZyIgYWx0PSJTb2MgRXggQXBpIiB3aWR0aD0iMjAwIj4KICA8YnI+CiAgQSBTb2NpYWwgTmV0d29yayBpbiA8YSBocmVmPSJodHRwczovL3d3dy5waG9lbml4ZnJhbWV3b3JrLm9yZy8iPlBob2VuaXg8L2E+CiAgPGJyPgo8L2gxPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9Imh0dHBzOi8vd2FrYXRpbWUuY29tL2JhZGdlL3VzZXIvZTYxODQyZDAtYzU4OC00NTg2LTk2YTMtZjA0NDhhNDM0YmU0L3Byb2plY3QvZjlmZTZmMzUtZTQyNS00MDZiLWFkM2QtNDYwZGE4MDg1OGY4LnN2ZyIgYWx0PSJ3YWthdGltZSI+CiAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhbmd1YWdlcy90b3AvZ2FicmllbG1haWFsdmEzMy9zb2MtZXgtYXBpP3N0eWxlPWZsYXQmbG9nbz1hcHB2ZXlvciIgYWx0PSJHaXRIdWIgdG9wIGxhbmd1YWdlIiA+CiAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhbmd1YWdlcy9jb3VudC9nYWJyaWVsbWFpYWx2YTMzL3NvYy1leC1hcGk/c3R5bGU9ZmxhdCZsb2dvPWFwcHZleW9yIiBhbHQ9IkdpdEh1YiBsYW5ndWFnZSBjb3VudCIgPgogIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9yZXBvLXNpemUvZ2FicmllbG1haWFsdmEzMy9zb2MtZXgtYXBpP3N0eWxlPWZsYXQmbG9nbz1hcHB2ZXlvciIgYWx0PSJSZXBvc2l0b3J5IHNpemUiID4KICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9nYWJyaWVsbWFpYWx2YTMzL3NvYy1leC1hcGk/Y29sb3I9MDBiOGQzP3N0eWxlPWZsYXQmbG9nbz1hcHB2ZXlvciIgYWx0PSJMaWNlbnNlIiAvPiAKICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ2FicmllbG1haWFsdmEzMy9zb2MtZXgtYXBpL2NvbW1pdHMvbWFzdGVyIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC9nYWJyaWVsbWFpYWx2YTMzL3NvYy1leC1hcGk/c3R5bGU9ZmxhdCZsb2dvPWFwcHZleW9yIiBhbHQ9IkdpdEh1YiBsYXN0IGNvbW1pdCIgPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbWFkZSUyMGJ5LU1haWEtMTVjM2Q2P3N0eWxlPWZsYXQmbG9nbz1hcHB2ZXlvciIgYWx0PSJNYWlhIiA+ICAKICA8L2E+CjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9IiNib29rbWFyay1hYm91dCI+QWJvdXQ8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwOyZuYnNwOwogIDxhIGhyZWY9IiNjb21wdXRlci10ZWNobm9sb2dpZXMiPlRlY2hub2xvZ2llczwvYT4mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgPGEgaHJlZj0iI3BhY2thZ2UtaW5zdGFsbGF0aW9uIj5JbnN0YWxsYXRpb248L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwOyZuYnNwOwogIDxhIGhyZWY9IiN3cmVuY2gtY29uZmlndXJhdGlvbiI+Q29uZmlndXJhdGlvbjwvYT4mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgPGEgaHJlZj0iI21lbW8tZG9jdW1lbnRhdGlvbiI+RG9jdW1lbnRhdGlvbjwvYT4mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgPGEgaHJlZj0iI21lbW8tbGljZW5zZSI+TGljZW5zZTwvYT4KPC9wPgoKPGJyPgoKIyMgOmJvb2ttYXJrOiBBYm91dAoKKipTb2MgRXgqKiBpcyBhIHNvY2lhbCBleHBlcmltZW50IHRoYXQgdXNlcyB0aGUgW1Bob2VuaXhdKGh0dHBzOi8vd3d3LnBob2VuaXhmcmFtZXdvcmsub3JnLykgZnJhbWV3b3JrIHRvIGNyZWF0ZSBhbiBBUEkuCgo8YnI+CgojIyA6Y29tcHV0ZXI6IFRlY2hub2xvZ2llcwoKLSAqKltFbGl4aXJdKGh0dHBzOi8vZWxpeGlyLWxhbmcub3JnLykqKgotICoqW1Bob2VuaXhdKGh0dHBzOi8vd3d3LnBob2VuaXhmcmFtZXdvcmsub3JnLykqKgotICoqW0RvY2tlcl0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pKioKLSAqKltQb3N0Z3JlU1FMXShodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy8pKioKCiMjIDpwYWNrYWdlOiBJbnN0YWxsYXRpb24KCmBgYGJhc2gKIyBjbG9uZSB0aGUgcmVwb3NpdG9yeQpnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWxtYWlhbHZhMzMvc29jLWV4LWFwaS5naXQKIyBlbnRlciB0aGUgZGlyZWN0b3J5CmNkIHNvYy1leC1hcGkKIyBpbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMKbWl4IGRlcHMuZ2V0ICMgb3IgbWl4IGRlcHMuZ2V0IC0tb25seSBwcm9kCiMgZWRpdCBgY29uZmlnL2Rldi5leHNgIGFuZCBjb25maWd1cmUgeW91ciBkYXRhYmFzZSBvciB1c2UgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcwpuYW5vIGNvbmZpZy9kZXYuZXhzICMgb3IgdmltIGNvbmZpZy9kZXYuZXhzCiMgcnVuIHRoZSBkYXRhYmFzZSBtaWdyYXRpb25zCm1peCBlY3RvLnNldHVwICMgb3IgbWl4IGVjdG8uc2V0dXAgLS1vbmx5IHByb2QKIyBzdGFydCB0aGUgc2VydmVyCm1peCBwaHguc2VydmVyICMgb3IgbWl4IHBoeC5zZXJ2ZXIgLS1vbmx5IHByb2QKYGBgCgojIyMgOndyZW5jaDogKipDb25maWd1cmF0aW9uKioKCm9wZW4gdGhlIGBjb25maWcvZGV2LmV4c2AgZmlsZSBhbmQgY29uZmlndXJlIHlvdXIgZGF0YWJhc2UKCmBgYGVsaXhpcgojIENvbmZpZ3VyZSB5b3VyIGRhdGFiYXNlCmNvbmZpZyA6c29jX2V4X2FwaSwgU29jRXhBcGkuUmVwbywKICB1c2VybmFtZTogInBvc3RncmVzIiwKICBwYXNzd29yZDogInBvc3RncmVzIiwKICBkYXRhYmFzZTogInNvY19leF9hcGlfZGV2IiwKICBob3N0bmFtZTogImxvY2FsaG9zdCIsCiAgc2hvd19zZW5zaXRpdmVfZGF0YV9vbl9jb25uZWN0aW9uX2Vycm9yOiB0cnVlLAogIHBvb2xfc2l6ZTogMTAKYGBgCgojIyMgOm1lbW86ICoqRG9jdW1lbnRhdGlvbioqCgpgYGBtZAojIFVzZSBpbnNvbW5pYSBvciBwb3N0bWFuIHRvIHRlc3QgdGhlIHJvdXRlcwoKZmlsZSBgc29jLWV4LWFwaS55YW1sYCBpbiByb290IGRpcmVjdG9yeQpgYGAKCiMjIyA6d3JpdGluZ19oYW5kOiAqKkF1dGhvcioqCgp8IFshW01haWFdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNjczMjA2Nz9zaXplPTEwMCldKGh0dHBzOi8vZ2l0aHViLmNvbS9nYWJyaWVsbWFpYWx2YTMzKSB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBbTWFpYV0oaHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWxtYWlhbHZhMzMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMgTGljZW5zZQoKW01JVCBMaWNlbnNlXSguL0xJQ0VOU0UpCg== readmeEtag: '"b1b99a0a95b7edfe8f42ca34bd3a47c8513a137b"' readmeLastModified: Tue, 21 Nov 2023 03:12:28 GMT repositoryId: 675953605 description: >- Soc Ex is a social experiment that uses the Phoenix framework to create an API. created: '2023-08-08T05:29:52Z' updated: '2023-11-19T04:10:23Z' language: Elixir archived: false stars: 2 watchers: 1 forks: 0 owner: gabrielmaialva33 logo: https://avatars.githubusercontent.com/u/26732067?v=4 license: AGPL-3.0 repoEtag: '"97a6221a15f553a93783c3ea6ab74d928c27840222a1d042d058eda54aee3313"' repoLastModified: Sun, 19 Nov 2023 04:10:23 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/zubedev/deputy v3: true id: aa45746155c55d35e08ef817dd2cde1c repositoryMetadata: base64Readme: >- YGBgdGV4dArilojilojilojilojilojilojilZcg4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4pWXIOKWiOKWiOKVlyAgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAgIOKWiOKWiOKVlwrilojilojilZTilZDilZDilojilojilZfilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilojilojilZfilojilojilZEgICDilojilojilZHilZrilZDilZDilojilojilZTilZDilZDilZ3ilZrilojilojilZcg4paI4paI4pWU4pWdCuKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilZTilZ3ilojilojilZEgICDilojilojilZEgICDilojilojilZEgICAg4pWa4paI4paI4paI4paI4pWU4pWdCuKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZTilZDilZDilZDilZ0g4paI4paI4pWRICAg4paI4paI4pWRICAg4paI4paI4pWRICAgICDilZrilojilojilZTilZ0K4paI4paI4paI4paI4paI4paI4pWU4pWd4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRICAgICDilZrilojilojilojilojilojilojilZTilZ0gICDilojilojilZEgICAgICDilojilojilZEK4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWdIOKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAgIOKVmuKVkOKVkOKVkOKVkOKVkOKVnSAgICDilZrilZDilZ0gICAgICDilZrilZDilZ0KPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJFU1QgQVBJIGZvciBQcm94aWVzCmBgYApbIVtkamFuZ29dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZGphbmdvLTQuMi0lMjMwOTJFMjA/c3R5bGU9ZmxhdC1zcXVhcmUmbG9nbz1kamFuZ28pXShodHRwczovL3d3dy5kamFuZ29wcm9qZWN0LmNvbSkKWyFbcHl0aG9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi0zLjEyLSUyMzM3NzZBQj9zdHlsZT1mbGF0LXNxdWFyZSZsb2dvPXB5dGhvbildKGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcpClshW215cHldKGh0dHBzOi8vd3d3Lm15cHktbGFuZy5vcmcvc3RhdGljL215cHlfYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9teXB5LWxhbmcub3JnKQpbIVtibGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stYmxhY2suc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmxvZ289c3R5bGVsaW50KV0oaHR0cHM6Ly9naXRodWIuY29tL3BzZi9ibGFjaykKWyFbUnVmZl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9lbmRwb2ludD91cmw9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FzdHJhbC1zaC9ydWZmL21haW4vYXNzZXRzL2JhZGdlL3YyLmpzb24pXShodHRwczovL2dpdGh1Yi5jb20vYXN0cmFsLXNoL3J1ZmYpClshW3ByZS1jb21taXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcHJlLS1jb21taXQtZW5hYmxlZC1icmlnaHRncmVlbj9zdHlsZT1mbGF0LXNxdWFyZSZsb2dvPXByZS1jb21taXQpXShodHRwczovL3ByZS1jb21taXQuY29tKQpbIVtsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJsdWU/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS96dWJlZGV2L2RlcHV0eS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3p1YmVkZXYvZGVwdXR5L2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCkKCiMjIEZlYXR1cmVzCgotIFt4XSBSZXN0IEFQSSBwcm92aWRpbmcgZnJlZSBwcm94aWVzIHRvIHVzZQotIFt4XSBJbnRlZ3JhdGlvbiB3aXRoIFtzY3JhcHlkb29dKGh0dHBzOi8vZ2l0aHViLmNvbS96dWJlZGV2L3NjcmFweWRvbykgdG8gb2J0YWluIHByb3hpZXMKLSBbeF0gSW50ZWdyYXRpb24gd2l0aCBbaW5zcGVjdG9yXShodHRwczovL2dpdGh1Yi5jb20venViZWRldi9pbnNwZWN0b3IpIHRvIHZhbGlkYXRlIHByb3hpZXMKLSBbeF0gUHJveGllcyB1cGRhdGVkIGFuZCBjaGVja2VkIGhvdXJseQoKIyMgVXNhZ2UKCmBgYGJhc2gKIyBDb3B5IHRoZSBleGFtcGxlIGVudmlyb25tZW50IGZpbGUgdG8gLmVudgojIFNDUkFQWURfVVJMIG11c3QgYmUgc2V0IGZvciB0aGUgd29ya2Zsb3cgdG8gd29yaywKIyBZb3UgY2FuIGdldCBhbiBpbnN0YW5jZSB1cCBhbmQgcnVubmluZyB0aHJvdWdoIGh0dHBzOi8vZ2l0aHViLmNvbS96dWJlZGV2L3NjcmFweWRvbwpjcCAuZW52LmV4YW1wbGUgLmVudgoKIyBCdWlsZCB0aGUgZG9ja2VyIGltYWdlIGFuZCBydW4gdGhlIGNvbnRhaW5lcgpkb2NrZXItY29tcG9zZSB1cCAtLWJ1aWxkIC0tZGV0YWNoCgojIFlvdSBjYW4gc2NhbGUgdXAgdGhlIG51bWJlciBvZiB3b3JrZXJzIGZvciBtb3JlIGNvbmN1cnJlbmN5CmRvY2tlci1jb21wb3NlIHVwIC0tc2NhbGUgd29ya2VyPTQgLS1kZXRhY2gKYGBgCgpbRGVwdXR5IEFQSV0oaHR0cDovL2xvY2FsaG9zdDo4MDAwKSBpcyBub3cgYXZhaWxhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC4gSWYgYERFQlVHPVRydWVgLCB5b3UgY2FuIHNlZSB0aGUgYnJvd3NhYmxlIEFQSS4KCltEZXB1dHkgQWRtaW5dKGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZG1pbikgaXMgbm93IGF2YWlsYWJsZSBhdCBodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRtaW4uIENyZWRlbnRpYWxzIGFyZSBzZXQgYXV0b21hdGljYWxseSBmcm9tIGAuZW52YCBmaWxlLgoKIyMgRW5kcG9pbnRzCgotIFtyYW5kb21dKGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcm94aWVzL3JhbmRvbSk6IGAvcHJveGllcy9yYW5kb21gIC0gZ2V0IGEgcmFuZG9tIHByb3h5CgojIyBEZXZlbG9wbWVudAoKYGBgYmFzaAojIFBvZXRyeSBpcyByZXF1aXJlZCBmb3IgaW5zdGFsbGluZyBhbmQgbWFuYWdpbmcgZGVwZW5kZW5jaWVzCiMgaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy9kb2NzLyNpbnN0YWxsYXRpb24KcG9ldHJ5IGluc3RhbGwKCiMgSWYgeW91IGRvbid0IGxpa2UgZG9pbmcgYHBvZXRyeSBydW5gIGFsbCB0aGUgdGltZQojIHBvZXRyeSBzaGVsbCAgIyBBY3RpdmF0ZSB2aXJ0dWFsIGVudmlyb25tZW50IGluIHRlcm1pbmFsCgojIFJlcXVpcmVzIGEgUG9zdGdyZVNRTCBkYXRhYmFzZSB0byBiZSBydW5uaW5nIGFuZCBjb25maWd1cmVkIGluIC5lbnYKIyBwb2V0cnkgcnVuIHB5dGhvbiBtYW5hZ2UucHkgbWFrZW1pZ3JhdGlvbnMgICMgQ3JlYXRlIG1pZ3JhdGlvbnMKcG9ldHJ5IHJ1biBweXRob24gbWFuYWdlLnB5IG1pZ3JhdGUgICMgUnVuIG1pZ3JhdGlvbnMKCiMgQ29sbGVjdCBzdGF0aWMgZmlsZXMgZm9yIHdoaXRlbm9pc2UKcG9ldHJ5IHJ1biBweXRob24gbWFuYWdlLnB5IGNvbGxlY3RzdGF0aWMKCiMgUnVuIERlcHV0eSBBUEkKcG9ldHJ5IHJ1biBweXRob24gbWFuYWdlLnB5IHJ1bnNlcnZlciAwLjAuMC4wOjgwMDAKCiMgQ3JlYXRlIGEgc3VwZXJ1c2VyCnBvZXRyeSBydW4gcHl0aG9uIG1hbmFnZS5weSBjcmVhdGVzdXBlcnVzZXIKCiMgSW5zdGFsbCBwcmUtY29tbWl0IGhvb2tzCnBvZXRyeSBydW4gcHJlLWNvbW1pdCBpbnN0YWxsCgojIEZvcm1hdHRpbmcgKGlucGxhY2UgZm9ybWF0cyBjb2RlKQpwb2V0cnkgcnVuIGJsYWNrIC4KCiMgTGludGluZyAoYW5kIHRvIGZpeCBhdXRvbWF0aWNhbGx5KQpwb2V0cnkgcnVuIHJ1ZmYgLgpwb2V0cnkgcnVuIHJ1ZmYgLS1maXggLgoKIyBUeXBlIGNoZWNraW5nCnBvZXRyeSBydW4gbXlweSAuCmBgYAoKQ29uZmlndXJhdGlvbiBkZXRhaWxzIGNhbiBiZSBmb3VuZCBpbiBbcHlwcm9qZWN0LnRvbWxdKHB5cHJvamVjdC50b21sKS4KCiMjIFN1cHBvcnQKWyFbUGF5cGFsXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BheXBhbC1ATWRadWJhaXJCZWctMjUzQjgwPyZsb2dvPXBheXBhbCldKGh0dHBzOi8vcGF5cGFsLm1lL01kWnViYWlyQmVnLzEwKQo= readmeEtag: '"5d04a31331afea7085618a6927f9bf54ade70673"' readmeLastModified: Sat, 13 Jul 2024 02:50:39 GMT repositoryId: 677937436 description: REST API for Proxies created: '2023-08-13T06:20:27Z' updated: '2024-07-13T02:50:44Z' language: Python archived: false stars: 2 watchers: 2 forks: 0 owner: zubedev logo: https://avatars.githubusercontent.com/u/41994356?v=4 license: MIT repoEtag: '"6994132b420d41ac62b64eafd207798e2150e9730e1638ea8700c738aa0e7f7e"' repoLastModified: Sat, 13 Jul 2024 02:50:44 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/lolamarket/api-specifications v3: true id: 03abc85bdf37bca72d19ee3994fa3970 repositoryMetadata: base64Readme: >- IyBBUEkgU3BlY2lmaWNhdGlvbnMKR2xvdm9YTCdzIFtPcGVuQVBJXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy9sYXRlc3QuaHRtbCkgc3BlY2lmaWNhdGlvbi4KClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGVzIHRoYXQgZG9jdW1lbnQgR2xvdm9YTCdzIFJFU1QgQVBJczoKCi0gW1JldGFpbGVyIEFQSV0oaHR0cHM6Ly9sb2xhbWFya2V0LmdpdGh1Yi5pby9hcGktc3BlY2lmaWNhdGlvbnMvcmV0YWlsZXItb2FzKQo= readmeEtag: '"7ece5a4d6da84497bff32f38e3619107a59738cb"' readmeLastModified: Tue, 16 Apr 2024 15:28:21 GMT repositoryId: 581213163 description: API Specifications created: '2022-12-22T15:15:35Z' updated: '2024-02-16T11:08:40Z' language: HTML archived: false stars: 2 watchers: 4 forks: 0 owner: lolamarket logo: https://avatars.githubusercontent.com/u/63723569?v=4 repoEtag: '"b67d1b6bd778ee50218441690e6e4a74109e2b5b7690660d3f16c884aa8ec2ed"' repoLastModified: Fri, 16 Feb 2024 11:08:40 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/flock-community/kotlin-openapi-bindings v3: true id: c5ac96691a194e6c680faa896c8cbbbb repositoryMetadata: base64Readme: >- WyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2NvbW11bml0eS5mbG9jay5rb3RsaW54Lm9wZW5hcGkuYmluZGluZ3Mva290bGluLW9wZW5hcGktYmluZGluZy9iYWRnZS5zdmcpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvY29tbXVuaXR5LmZsb2NrLmtvdGxpbngub3BlbmFwaS5iaW5kaW5ncy9rb3RsaW4tb3BlbmFwaS1iaW5kaW5nKQoKIyBrb3RsaW4tb3BlbmFwaS1iaW5kaW5ncwoKa290bGluLW9wZW5hcGktYmluZGluZ3MgaXMgYSBtdWx0aXBsYXRmb3JtIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBiaW5kaW5ncyBmb3IgT3BlbkFQSSBKU09OIGZpbGVzLiBUaGUgbGlicmFyeSBjYW4gcGFyc2UgYW5kIHNlcmlhbGl6ZSB0byBLb3RsaW4gZGF0YSBjbGFzc2VzLCBhbmQgaXQgdGFrZXMgY2FyZSBvZiB1bmlvbiB0eXBlcyBhbmQgaGFuZGxlcyB0aGUgeC0gcHJvcGVydGllcy4KCiMgSW5zdGFsbGF0aW9uCkFkZCB0aGUgZGVwZW5kZW5jeSB0byB5b3VyIGJ1aWxkLmdyYWRsZS5rdHMgb3IgYnVpbGQuZ3JhZGxlIGZpbGU6CgpgYGBrb3RsaW4KcmVwb3NpdG9yaWVzIHsKICAgIG1hdmVuQ2VudHJhbCgpCn0KCmRlcGVuZGVuY2llcyB7CiAgICBpbXBsZW1lbnRhdGlvbigiY29tbXVuaXR5LmZsb2NrLmtvdGxpbngub3BlbmFwaS5iaW5kaW5nczprb3RsaW4tb3BlbmFwaS1iaW5kaW5nczpWRVJTSU9OIikKfQpgYGAKClVzYWdlClRvIHVzZSBrb3RsaW4tb3BlbmFwaS1iaW5kaW5ncywgYWRkIGl0IGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QuIFRoZW4sIHlvdSBjYW4gY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9wZW5BUElPYmplY3QgYnkgcGFyc2luZyBhbiBPcGVuQVBJIEpTT04gZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgSnNvbi5kZWNvZGVGcm9tU3RyaW5nKCkgZnVuY3Rpb246CgoKIyBVc2FnZQpIZXJlJ3MgYSBzaW1wbGUgZXhhbXBsZSBvZiBob3cgdG8gdXNlIGtvdGxpbi1vcGVuYXBpLWJpbmRpbmdzOgpgYGBrb3RsaW4KY29tbXVuaXR5LmZsb2NrLmtvdGxpbngub3BlbmFwaS5iaW5kaW5ncy52My5PcGVuQVBJCgp2YWwganNvbiA9ICIiIgp7CiAgIm9wZW5hcGkiOiAiMy4wLjAiLAogICJpbmZvIjogewogICAgInRpdGxlIjogIk15IEFQSSIsCiAgICAidmVyc2lvbiI6ICIxLjAuMCIKICB9LAogICJwYXRocyI6IHsKICAgICIvIjogewogICAgICAiZ2V0IjogewogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT0siLAogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQoiIiIKCnZhbCBvYmogPSBPcGVuQVBJLmRlY29kZUZyb21TdHJpbmcoanNvbikKdmFsIHN0ciA9IE9wZW5BUEkuZW5jb2RlVG9TdHJpbmcob2JqKQpgYGAKCiMgQ29udHJpYnV0aW5nCkNvbnRyaWJ1dGlvbnMgdG8ga290bGluLW9wZW5hcGktYmluZGluZ3MgYXJlIHdlbGNvbWUhIFRvIGNvbnRyaWJ1dGUsIHBsZWFzZSBmb3JrIHRoZSByZXBvc2l0b3J5IGFuZCBzdWJtaXQgYSBwdWxsIHJlcXVlc3Qu readmeEtag: '"f62da7ae65d2657f2ea5160f8a488253e747cb01"' readmeLastModified: Mon, 20 May 2024 15:54:25 GMT repositoryId: 629398742 description: Kotlin multiplatform bindings for parsing openapi3 spec created: '2023-04-18T08:29:05Z' updated: '2024-05-20T15:54:32Z' language: Kotlin archived: false stars: 2 watchers: 8 forks: 0 owner: flock-community logo: https://avatars.githubusercontent.com/u/44088861?v=4 repoEtag: '"d48875ff250572708ce337f0990b9059ea3dbc1de934bf1c24402c243d4198c6"' repoLastModified: Mon, 20 May 2024 15:54:32 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/pradipmudi/expensys v3: true id: a77985f2e5a27065cb6a41d3726ba7bf repositoryMetadata: base64Readme: >- IyMgVGFibGUgb2YgQ29udGVudHMKLSBbRXhwZW5TeXNdKCNFeHBlblN5cykKLSBbSW50dWl0aW9uXSgjaW50dWl0aW9uKQotIFtLZXkgRmVhdHVyZXNdKCNrZXktZmVhdHVyZXMpCiAgICAtIFtFeHBlbnNlIExvZ2dpbmddKCNleHBlbnNlLWxvZ2dpbmcpCiAgICAtIFtNb250aGx5IFJlcG9ydHNdKCNtb250aGx5LXJlcG9ydHMpCiAgICAtIFtDYXRlZ29yaXphdGlvbl0oI2NhdGVnb3JpemF0aW9uKQogICAgLSBbU3ViY2F0ZWdvcmllc10oI3N1YmNhdGVnb3JpZXMpCiAgICAtIFtVc2VyLVNwZWNpZmljIFJlcG9ydHNdKCN1c2VyLXNwZWNpZmljLXJlcG9ydHMpCiAgICAtIFtVc2VyLUNlbnRyaWMgVmlld10oI3VzZXItY2VudHJpYy12aWV3KQogICAgLSBbU3ViY2F0ZWdvcnkgTWFwcGluZ10oI3N1YmNhdGVnb3J5LW1hcHBpbmcpCiAgICAtIFtEYXRhYmFzZSBJbnRlZ3JhdGlvbl0oI2RhdGFiYXNlLWludGVncmF0aW9uKQoKLSBbQVBJIENvbnRyYWN0XSgjZXhwZW5zeXMtb3BlbmFwaS1jb250cmFjdCkKLSBbSG93IHRvIFVzZV0oI2hvdy10by11c2UpCi0gW0NvbnRyaWJ1dGlvbiBHdWlkZWxpbmVzXSgjY29udHJpYnV0aW9uLWd1aWRlbGluZXMpCgoKIyAqKkV4cGVuU3lzKioKCioqRXhwZW5TeXMqKiBpcyBhbiBlZmZpY2llbnQgKipleHBlbnNlIHRyYWNraW5nKiogYXBwbGljYXRpb24gZGVzaWduZWQgdG8gaGVscCB5b3UgbWFuYWdlIHlvdXIgKipmaW5hbmNlcyoqIGFuZCBtYWludGFpbiBhIGRldGFpbGVkIHJlY29yZCBvZiB5b3VyICoqZXhwZW5zZXMqKi4gV2hldGhlciB5b3UgYXJlIGFuIGluZGl2aWR1YWwgbG9va2luZyB0byAqKmJ1ZGdldCoqIHlvdXIgcGVyc29uYWwgKipmaW5hbmNlcyoqIG9yIGEgKipidXNpbmVzcyBvd25lcioqIHRyYWNraW5nICoqZXhwZW5zZXMqKiwgKipFeHBlblN5cyoqIHN0cmVhbWxpbmVzIHRoZSBwcm9jZXNzIGZvciB5b3UuCgpGb3IgdGhpcywgSSd2ZSBtYWRlIHRoZSBVSSBmcm9tIHNjcmF0Y2ggYXMgd2VsbCBhbmQgaXQncyBhIHJlc3BvbnNpdmUgZGVzaWduLiBGZXcgc2NyZWVuc2hvdHMgZnJvbSB0aGUgYXBwbGljYXRpb24uCiMjIyAqKkFkZCBFeHBlbnNlKioKIVtTY3JlZW5zaG90IDIwMjQtMDEtMzAgYXQgNyAzNCAwMSBQTV0oaHR0cHM6Ly9naXRodWIuY29tL3ByYWRpcG11ZGkvZXhwZW5zeXMvYXNzZXRzLzY0ODk2MTMvYzdmNTZmYzUtMzE0YS00MzY5LTg1ZTQtYmU2OWY4ZTg5NjY1KQohW1NjcmVlbnNob3QgMjAyNC0wMS0zMCBhdCA3IDQ5IDQzIFBNXShodHRwczovL2dpdGh1Yi5jb20vcHJhZGlwbXVkaS9leHBlbnN5cy9hc3NldHMvNjQ4OTYxMy85ZDI4ZDg0Yi1lYWRjLTRkNDktODY4ZC0yMTU3OGY4ZWVkMzMpCgojIyMgKipWaWV3IGV4cGVuc2VzKioKIVtTY3JlZW5zaG90IDIwMjQtMDEtMzAgYXQgNyA0NCAxNSBQTV0oaHR0cHM6Ly9naXRodWIuY29tL3ByYWRpcG11ZGkvZXhwZW5zeXMvYXNzZXRzLzY0ODk2MTMvMDlhMmNlZDYtMDIxOS00NzI3LWIzYmUtYTYxM2QzNDdmYTBlKQohW1NjcmVlbiBTaG90IDIwMjQtMDEtMzAgYXQgMTkgNDUgMzZdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmFkaXBtdWRpL2V4cGVuc3lzL2Fzc2V0cy82NDg5NjEzLzJmN2VmOTA5LTUwZDctNDFhZC1iZTRiLTc3ZGFiZTQzZmViMikKCiMjIyBNb250aGx5IFJlcG9ydAojIyMjICoqQnkgTWFpbiBjYXRlZ29yeSBhbmQgc3BlbnQgYnkgdXNlcioqCiFbU2NyZWVuIFNob3QgMjAyNC0wMS0zMCBhdCAxOSA1MiAwOF0oaHR0cHM6Ly9naXRodWIuY29tL3ByYWRpcG11ZGkvZXhwZW5zeXMvYXNzZXRzLzY0ODk2MTMvZTVkMGY5ZGUtZmE1NS00NTVhLTlmY2YtOGViNGQzMzdjYTA1KQoKIyMjIyAqKkJ5IFN1YiBjYXRlZ29yeSBhbmQgc3BlbnQgYnkgdXNlcioqCiFbU2NyZWVuIFNob3QgMjAyNC0wMS0zMCBhdCAxOSAzMyAyNV0oaHR0cHM6Ly9naXRodWIuY29tL3ByYWRpcG11ZGkvZXhwZW5zeXMvYXNzZXRzLzY0ODk2MTMvZDhlMzBlOTAtODJmZS00MWJkLTk5Y2UtMmRhOTQ2YTM1N2I3KQohW1NjcmVlbiBTaG90IDIwMjQtMDEtMzAgYXQgMTkgMzggMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmFkaXBtdWRpL2V4cGVuc3lzL2Fzc2V0cy82NDg5NjEzL2Q2ODI3OTI3LTM3NWEtNDU4ZC1hNWZjLTBjZWI3Yjg4ZTI4OCkKCgojIyMjICoqQnkgU3ViIGNhdGVnb3J5IGFuZCBzcGVudCBieSBhbGwqKgohW1NjcmVlbiBTaG90IDIwMjQtMDEtMzAgYXQgMTkgMzAgMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmFkaXBtdWRpL2V4cGVuc3lzL2Fzc2V0cy82NDg5NjEzLzI2MDdmNzFhLWFjNjEtNDc0Yi04YzQzLWU3ODQxOTc5NzQ3ZSkKIVtTY3JlZW4gU2hvdCAyMDI0LTAxLTMwIGF0IDE5IDMwIDI2XShodHRwczovL2dpdGh1Yi5jb20vcHJhZGlwbXVkaS9leHBlbnN5cy9hc3NldHMvNjQ4OTYxMy8yMTc4MTU5OS1hMWFhLTQzODItOGZlNC0xYmQ4ODQ3NWQ4NTkpCgoqKkdlbmVyYXRlZCB0aGUgbG9nbyBmb3IgbXkgYXBwbGljYXRpb24gZnJvbSBoZXJlOioqIGh0dHBzOi8vYXBwLmxvZ28uY29tL2Rhc2hib2FyZC8KCiMjIEludHVpdGlvbgpJIGZvdW5kIGl0IGNoYWxsZW5naW5nIHRvIHRyYWNrIG15IGRhaWx5ICoqZXhwZW5zZXMqKiB1c2luZyB0cmFkaXRpb25hbCBtZXRob2RzIHN1Y2ggYXMgR29vZ2xlIFNwcmVhZHNoZWV0cyBvciBleGlzdGluZyAqKmV4cGVuc2UgbWFuYWdlbWVudCBhcHBzKiouIFRoZXkgb2Z0ZW4gbGFja2VkIHRoZSBmbGV4aWJpbGl0eSBhbmQgZGF0YSBvcmdhbml6YXRpb24gSSBuZWVkZWQuIEFzIGEgcmVzdWx0LCBJIGRlY2lkZWQgdG8gZGV2ZWxvcCAqKkV4cGVuU3lzKiogdG8gYWRkcmVzcyB0aGVzZSBpc3N1ZXMgYW5kIGNyZWF0ZSBhIG1vcmUgdXNlci1mcmllbmRseSAqKmV4cGVuc2UgdHJhY2tpbmcqKiBzb2x1dGlvbi4gUGxlYXNlIGZlZWwgZnJlZSB0byBzdWJtaXQgKippc3N1ZXMqKiwgKipmZWF0dXJlIHJlcXVlc3RzKiogb3IgKipwdWxsIHJlcXVlc3RzKio7IEknbSBvcGVuIHRvIGFjY29tbW9kYXRpbmcgdGhlbSBpbiBmdXR1cmUgcmVsZWFzZXMuCgojIyBLZXkgRmVhdHVyZXMKCioqRXhwZW5TeXMqKiBvZmZlcnMgc2V2ZXJhbCBrZXkgZmVhdHVyZXMgdG8gZW5oYW5jZSB5b3VyICoqZXhwZW5zZSB0cmFja2luZyoqIGV4cGVyaWVuY2U6CgojIyMgKipFeHBlbnNlIExvZ2dpbmcqKgotIFVzZXJzIGNhbiBlYXNpbHkgbG9nIHRoZWlyIGRhaWx5ICoqZXhwZW5zZXMqKiBpbnRvIHRoZSBzeXN0ZW0sIHByb3ZpZGluZyBhIGRldGFpbGVkIHJlY29yZCBvZiB0aGVpciBzcGVuZGluZy4KCiMjIyAqKk1vbnRobHkgUmVwb3J0cyoqCi0gR2VuZXJhdGUgKiptb250aGx5IHJlcG9ydHMqKiBiYXNlZCBvbiB5b3VyIHNwZW5kaW5nLCBhbGxvd2luZyB5b3UgdG8gdHJhY2sgeW91ciBmaW5hbmNpYWwgaGFiaXRzIG92ZXIgdGltZS4KCiMjIyAqKkNhdGVnb3JpemF0aW9uKioKLSAqKkV4cGVuc2VzKiogYXJlIGNhdGVnb3JpemVkIGludG8gbWFpbiBjYXRlZ29yaWVzLCBpbmNsdWRpbmcgKioiRXNzZW50aWFsIiwgIkV4cGVuc2UiLCBhbmQgIkxvc3Mgb2YgTW9uZXkiLioqIFVzZXJzIGNhbiBhbHNvIHZpZXcgKiptb250aGx5IHJlcG9ydHMqKiBiYXNlZCBvbiB0aGVzZSBjYXRlZ29yaWVzLgoKIyMjICoqU3ViY2F0ZWdvcmllcyoqCi0gKipTdWJjYXRlZ29yaWVzKiogcHJvdmlkZSBtb3JlIGdyYW51bGFyaXR5LCBzdWNoIGFzICoqIkdyb2NlcmllcyIsICJWZWdldGFibGVzICYgRnJ1aXRzIiwgIk91dHNpZGUgRm9vZCIsICJTYWxvbiIsICJUcmFuc3BvcnQiLCAiTWVkaWNhbCIsICJTaG9wcGluZyIsIGFuZCAiTG9zcyBvZiBNb25leSIqKi4gVGhlc2UgKipzdWJjYXRlZ29yaWVzKiogYXJlIGRpc3BsYXllZCBhbG9uZ3NpZGUgdGhlaXIgcmVzcGVjdGl2ZSBtYWluIGNhdGVnb3JpZXMuCgojIyMgKipVc2VyLVNwZWNpZmljIFJlcG9ydHMqKgotIFVzZXJzIGNhbiBzZWxlY3QgYSBzcGVjaWZpYyBtb250aCBvciB2aWV3IHJlY29yZHMgZm9yIGFsbCBtb250aHMuIFRoZXkgY2FuIGFsc28gZmlsdGVyIGRhdGEgYmFzZWQgb24gY2F0ZWdvcmllcyAobWFpbiBvciBzdWIpIGFuZCB2aWV3ICoqZXhwZW5zZXMqKiBmb3IgYWxsIHVzZXJzLgoKIyMjICoqVXNlci1DZW50cmljIFZpZXcqKgotICoqRXhwZW5TeXMqKiBvZmZlcnMgdGhlIGFiaWxpdHkgdG8gc2VlIHJlcG9ydHMgYmFzZWQgb24gbWFpbiBjYXRlZ29yaWVzLCBhbGxvd2luZyB1c2VycyB0byB0cmFjayB0aGVpciBzcGVuZGluZyBwYXR0ZXJucyBlZmZlY3RpdmVseS4KCiMjIyAqKlN1YmNhdGVnb3J5IE1hcHBpbmcqKgotIFRoZSBhcHBsaWNhdGlvbiBpbmNsdWRlcyBhIGRpY3Rpb25hcnkgb2YgbWFwcGluZ3MgZm9yICoqc3ViY2F0ZWdvcmllcyoqLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgY2xhcml0eSBpbiAqKmV4cGVuc2UgdHJhY2tpbmcqKi4KCiMjIyAqKkRhdGFiYXNlIEludGVncmF0aW9uKioKLSBVc2VycyBjYW4gYWRkICoqZXhwZW5zZXMqKiBkaXJlY3RseSBpbnRvIHRoZSBkYXRhYmFzZSwgZW5zdXJpbmcgZGF0YSBhY2N1cmFjeSBhbmQgZWFzeSByZXRyaWV2YWwuCgojIyMgKipTb3J0aW5nKioKLSBXZSBjYW4gc29ydCB0aGUgcmVzdWx0IGJ5IGFueSBmaWVsZCBiYXNlZCBvbiByZXBvcnQKCiMjICoqSG93IHRvIFVzZSoqCgpUbyBnZXQgc3RhcnRlZCB3aXRoICoqRXhwZW5zZVRyYWNrcioqLCBmb2xsb3cgdGhlc2Ugc3RlcHM6CgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeS4KMi4gU2V0IHVwIHRoZSBuZWNlc3NhcnkgKipkYXRhYmFzZSoqIGZvciAqKmV4cGVuc2UgcmVjb3JkaW5nKiouCjMuIFVwZGF0ZSBEQiBjb25maWdzIG9uICoqYXBwbGljYXRpb24ueW1sKioKNC4gUnVuIHRoZSBhcHBsaWNhdGlvbi4KNS4gQmVnaW4gbG9nZ2luZyB5b3VyIGRhaWx5ICoqZXhwZW5zZXMqKiBhbmQgdXRpbGl6ZSB0aGUgdmFyaW91cyByZXBvcnRpbmcgYW5kIGZpbHRlcmluZyBvcHRpb25zIHRvIG1hbmFnZSB5b3VyICoqZmluYW5jaWFsIGRhdGEqKiBlZmZlY3RpdmVseS4KCllvdXIgZmVlZGJhY2sgYW5kIGNvbnRyaWJ1dGlvbnMgYXJlIHZhbHVhYmxlIHRvIG1lLCBhbmQgSSBsb29rIGZvcndhcmQgdG8gZW5oYW5jaW5nICoqRXhwZW5UcmFja3IqKiBmdXJ0aGVyIGJhc2VkIG9uIHlvdXIgbmVlZHMuCiMjIyAqKkhvdyB0byB1c2UgdGhlIGFwcCBpbiB5b3VyIGxvY2FsPyoqClRoZXNlIGFyZSB0aGUgVUkgZW5kcG9pbnRzOgotICoqQWRkIGV4cGVuc2U6KiogaHR0cDovL2xvY2FsaG9zdDo4MDgwL25ldwotICoqVmlldyByZXBvcnQ6KiogaHR0cDovL2xvY2FsaG9zdDo4MDgwLwotICoqVmlldyBFeHBlbnNlcyoqIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9leHBlbnNlcwoKKipDdXJyZW50IFRPRE86KiogSSBwbGFuIHRvIG1ha2UgdGhlIGRlc2lnbiBtb3JlIHVzZXIgZnJpZW5kbHkgYnkgY3JlYXRpbmcgYSBwYW5lbCB0byByZWRpcmVjdCB0byB0aGUgYWJvdmUgcGFnZXMuIFBsZWFzZSBmZWVsIGZyZWUgdG8gcmFpc2UgYW4gUFIgb24gdGhlIHNhbWUgaWYgeW91J3ZlIGFscmVhZHkuCgojIyAqKkV4cGVuU3lzIE9wZW5BUEkgQ29udHJhY3QqKgoKVGhlIEV4cGVuU3lzIE9wZW5BUEkgY29udHJhY3QgZGVmaW5lcyB0aGUgaW50ZXJmYWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBFeHBlblN5cyBhcHBsaWNhdGlvbiB0aHJvdWdoIGl0cyBBUEkuIFRoaXMgY29udHJhY3QgYWxsb3dzIGRldmVsb3BlcnMgdG8gdW5kZXJzdGFuZCBhbmQgaW50ZWdyYXRlIHdpdGggRXhwZW5TeXMgc2VhbWxlc3NseS4gWW91IGNhbiBhY2Nlc3MgdGhlIGZ1bGwgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGRpcmVjdGx5IHRocm91Z2ggU3dhZ2dlciBVSToKCltFeHBlblN5cyBPcGVuQVBJIENvbnRyYWN0IC0gU3dhZ2dlciBVSV0oaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvLz91cmw9aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3ByYWRpcG11ZGkvZXhwZW5zeXMvbWFpbi9zcmMvbWFpbi9qYXZhL2NvbS9leHBlbnN5cy9vcGVuYXBpL2V4cGVuc3lzX29wZW5hcGkueW1sIy9kZWZhdWx0L2dldF9yZXBvcnQpCgpTaW1wbHkgY2xpY2sgb24gdGhlIGxpbmsgYWJvdmUgdG8gdmlldyBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgRXhwZW5TeXMgT3BlbkFQSSBjb250cmFjdCBpbiB5b3VyIHdlYiBicm93c2VyLgoKVGhlIEV4cGVuU3lzIE9wZW5BUEkgY29udHJhY3QgaXMgdGhlIGZvdW5kYXRpb24gZm9yIGJ1aWxkaW5nIGFwcGxpY2F0aW9ucyB0aGF0IGludGVyYWN0IHdpdGggRXhwZW5TeXMuIElmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgb3IgbmVlZCBmdXJ0aGVyIGFzc2lzdGFuY2UsIHBsZWFzZSBkb24ndCBoZXNpdGF0ZSB0byByZWFjaCBvdXQuIEhhcHB5IEFQSSBkZXZlbG9wbWVudCEKCgojIyBDb250cmlidXRpb24gR3VpZGVsaW5lcwoKSWYgeW91IGhhdmUgYW55ICoqZmVhdHVyZSByZXF1ZXN0cyoqIG9yIHdvdWxkIGxpa2UgdG8gKipjb250cmlidXRlKiogdG8gKipFeHBlblN5cyoqLCBwbGVhc2UgZm9sbG93IG91ciBjb250cmlidXRpb24gZ3VpZGVsaW5lcyBhbmQgc3VibWl0ICoqcHVsbCByZXF1ZXN0cyoqLiBJJ20gY29tbWl0dGVkIHRvIGNvbnRpbnVhbGx5IGltcHJvdmluZyB0aGUgYXBwbGljYXRpb24gdG8gbWVldCB0aGUgZGl2ZXJzZSBuZWVkcyBvZiB0aGUgdXNlcnMuCgpUaGFuayB5b3UgZm9yIGNob29zaW5nICoqRXhwZW5TeXMqKiBmb3IgeW91ciAqKmV4cGVuc2UgdHJhY2tpbmcqKiBuZWVkcyEK readmeEtag: '"cd37a9a0c59467246aaccdcdb5376a9cdad2a952"' readmeLastModified: Sun, 23 Jun 2024 10:25:10 GMT repositoryId: 709144141 description: >- Efficient expense tracking app for individuals and businesses. Log daily expenses, generate monthly reports, categorize spending, and integrate with a database. Check out the API contract: https://petstore.swagger.io/?url=https://raw.githubusercontent.com/pradipmudi/expensys/main/src/main/java/com/expensys/openapi/expensys_openapi.yml created: '2023-10-24T05:33:21Z' updated: '2024-06-23T10:25:19Z' language: Java archived: false stars: 2 watchers: 1 forks: 1 owner: pradipmudi logo: https://avatars.githubusercontent.com/u/6489613?v=4 repoEtag: '"73fa435eea530abce5ba455cebeff09fb31f9fb5fac28459d657db782027884a"' repoLastModified: Sun, 23 Jun 2024 10:25:19 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/unjello/openapi-mockk v3: true repositoryMetadata: base64Readme: >- aW1hZ2U6Omh0dHA6Ly91bm1haW50YWluZWQudGVjaC9iYWRnZS5zdmdbbGluaz1odHRwOi8vdW5tYWludGFpbmVkLnRlY2gvXQ0KDQo9IERFUFJFQ0FURUQNCg0KX29wZW5hcGktcGFyc2VyXyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLCBwbGVhc2UgY29uc2lkZXIgdXNpbmcgaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItcGFyc2VyW3N3YWdnZXItcGFyc2VyXS4NCg== readmeEtag: '"5dc94a8d0e902f95a0e80e0d23c492f159b9f7f8"' readmeLastModified: Wed, 01 May 2019 08:48:51 GMT repositoryId: 128423249 description: DEPRECATED. Generates data based on OpenAPI 3.0 specification created: '2018-04-06T17:10:22Z' updated: '2019-05-01T08:50:29Z' language: JavaScript archived: false stars: 1 watchers: 3 forks: 2 owner: unjello logo: https://avatars.githubusercontent.com/u/155669?v=4 license: CC0-1.0 repoEtag: '"cf8dfd55c3917197c47e53f615e5d60fc640451019c98aa5bac0a935edb12a5c"' repoLastModified: Wed, 01 May 2019 08:50:29 GMT foundInMaster: true category: Code Generators id: ac51d5abb01feee912cecaa014d2ef7c - source: openapi3 tags repository: https://github.com/aasaam/openapi-preview v3: true repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8aDE+CiAgICBPcGVuQVBJIFByZXZpZXcKICA8L2gxPgogIDxwPgogICAgUHJldmlldyBPcGVuQVBJIFNwZWMgdXNpbmcgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkiPlN3YWdnZXIgVUk8L2E+CiAgPC9wPgogIDxwPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Fhc2FhbS9vcGVuYXBpLXByZXZpZXciPgogICAgICA8aW1nIGFsdD0iR2l0SHViIHJlcG8gc2l6ZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9yZXBvLXNpemUvYWFzYWFtL29wZW5hcGktcHJldmlldyI+CiAgICA8L2E+CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWFzYWFtL29wZW5hcGktcHJldmlldy9ibG9iL21hc3Rlci9MSUNFTlNFIj4KICAgICAgPGltZyBhbHQ9IkxpY2Vuc2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9hYXNhYW0vb3BlbmFwaS1wcmV2aWV3Ij4KICAgIDwvYT4KICA8L3A+CjwvZGl2PgoKPGRpdj4KICA8cCBhbGlnbj0iY2VudGVyIj4KICAgIDxpbWcgYWx0PSJhYXNhYW0gc29mdHdhcmUgZGV2ZWxvcG1lbnQgZ3JvdXAiIHdpZHRoPSI2NCIgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYWFzYWFtL2luZm9ybWF0aW9uL21hc3Rlci9sb2dvL2Fhc2FhbS5zdmciPgogICAgPGJyIC8+CiAgICBhYXNhYW0gc29mdHdhcmUgZGV2ZWxvcG1lbnQgZ3JvdXAKICA8L3A+CjwvZGl2Pgo= readmeEtag: '"3785309248dff3c86536a2d3faba12ba0039c086"' readmeLastModified: Wed, 03 Mar 2021 23:47:43 GMT repositoryId: 214886616 description: Preview OpenAPI Spec using Swagger UI created: '2019-10-13T20:10:24Z' updated: '2021-03-03T23:48:04Z' language: HTML archived: false stars: 1 watchers: 2 forks: 0 owner: aasaam logo: https://avatars.githubusercontent.com/u/10144065?v=4 license: MIT repoEtag: '"bc5d91b06e4d3f18a509ce41b5679429b146d048c8ae0d5933265a5acd943c66"' repoLastModified: Wed, 03 Mar 2021 23:48:04 GMT foundInMaster: true category: - Documentation - Testing id: eeb5e994f260453efafd8bd3ae56f690 - source: openapi3 tags repository: https://github.com/elibracha/openapi-diff-ignore v3: true repositoryMetadata: base64Readme: >- T3BlbkFQSS1kaWZmLWlnbm9yZQo9PT09PT09PT09PT0KWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5jb20vZWxpYnJhY2hhL29wZW5hcGktZGlmZi1pZ25vcmUuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5jb20vZWxpYnJhY2hhL29wZW5hcGktZGlmZi1pZ25vcmUpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9lbGlicmFjaGEvb3BlbmFwaS1kaWZmLWlnbm9yZS9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9lbGlicmFjaGEvb3BlbmFwaS1kaWZmLWlnbm9yZSkKWyFbSmlvbiB0aGUgU2xhY2sgY2hhdCByb29tXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NsYWNrLUpvaW4lMjB0aGUlMjBjaGF0JTIwcm9vbS1vcmFuZ2UpXShodHRwczovL2pvaW4uc2xhY2suY29tL3Qvb3BlbmFwaS1kaWZmLWlnbm9yZS9zaGFyZWRfaW52aXRlL2VuUXRPVE00TXpZeE5EQXhNVEV3TFRrMFpEbG1ZemN3WVdWbE5XUmlOREE0WW1JMU1ESXdZalpsTVRrNE1qYzVPVEkzTmpZMFpqZzBaVEV5TmpBME56QmtPV1kzTW1OaE5qUTJOamd4WWpZKQoKUGFyc2UgYSBPcGVuQVBJLWRpZmYgaWdub3JlIGZpbGUgc3BlY2lmaWNhdGlvbnMoMS54KS4gCkNhbiBiZSB1c2UgdG8gaW50ZWdyYXRlIHdpdGggT3BlbkFQSS1kaWZmIGFuZCBjdXN0b21pemUgeW91ciBicmVha2luZyBjaGFuZ2VzLgoKSWYgeW91IHRoaW5rIHlvdSBoYXZlIGZvdW5kIGEgYnVnLCBwbGVhc2UgZmlsZSBhbiBpc3N1ZSBpbiB0aGUgW0dpdGh1YiBJc3N1ZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lbGlicmFjaGEvb3BlbmFwaS1kaWZmLWlnbm9yZS9pc3N1ZXMpLgoKSWdub3JlIFNwZWNpZmljYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIyMgU2NoZW1hCkluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24sIGlmIGEgZmllbGQgaXMgbm90IGV4cGxpY2l0bHkgUkVRVUlSRUQgb3IgZGVzY3JpYmVkIHdpdGggYSBNVVNUIG9yIFNIQUxMLCBpdCBjYW4gYmUgY29uc2lkZXJlZCBPUFRJT05BTC4KCiMjIyMjIEZpeGVkIEZpZWxkcwoKRmllbGQgTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbgotLS18Oi0tLTp8LS0tCjxhIG5hbWU9ImV4dGVuZHMiPjwvYT5leHRlbmRzIHwgYHN0cmluZ2AgfCBDYW4gYmUgdXNlZCB0byBpbmhlcml0IGEgcHJlIGRlZmluZWQgaWdub3JlIGZpbGUgZnVuY3Rpb25hbGl0eS4gUHJvdmlkZXMgbWV0YWRhdGEgYWJvdXQgYmFzaWMgaWdub3JlIGZpbGUgZm9yIHlvdXIgY3VzdG9tIEFQSSBpZ25vcmUuIChMaWtlIC0+ICIuZGVmYXVsdCIpCjxhIG5hbWU9InZlcnNpb24iPjwvYT52ZXJzaW9uIHwgYHN0cmluZ2AgfCAqKlJFUVVJUkVEKiouIFRoaXMgc3RyaW5nIE1VU1QgYmUgdGhlIFtzZW1hbnRpYyB2ZXJzaW9uIG51bWJlcl0oaHR0cHM6Ly9zZW12ZXIub3JnL3NwZWMvdjIuMC4wLmh0bWwpIG9mIHRoZSBbSWdub3JlIFNwZWNpZmljYXRpb24gdmVyc2lvbl0oI3ZlcnNpb25zKSB0aGF0IHRoZSBPcGVuQVBJIGlnbm9yZSBkb2N1bWVudCB1c2VzLiBUaGUgYHZlcnNpb25gIGZpZWxkIFNIT1VMRCBiZSB1c2VkIGJ5IHRvb2xpbmcgc3BlY2lmaWNhdGlvbnMgYW5kIGNsaWVudHMgdG8gaW50ZXJwcmV0IHRoZSBPcGVuQVBJIGlnbm9yZSBkb2N1bWVudC4KPGEgbmFtZT0iaW5mbyI+PC9hPmluZm8gfCBgc3RyaW5nYCB8IFByb3ZpZGVzIG1ldGFkYXRhIGFib3V0IGdlbmVyYWwgaW5mbyBmb3IgdGhlIEFQSSBpZ25vcmUuIFRoZSBtZXRhZGF0YSBNQVkgYmUgdXNlZCBieSB0b29saW5nIGFzIHJlcXVpcmVkLgo8YSBuYW1lPSJwcm9qZWN0Ij48L2E+cHJvamVjdCB8IGBzdHJpbmdgIHwgUHJvdmlkZXMgbWV0YWRhdGEgYWJvdXQgdGhlIFByb2plY3QgdXNpbmcgdGhlIGlnbm9yZSBmaWxlLiBUaGUgbWV0YWRhdGEgTUFZIGJlIHVzZWQgYnkgdG9vbGluZyBhcyByZXF1aXJlZC4KPGEgbmFtZT0icGF0aHMiPjwvYT5wYXRocyB8IFtQYXRocyBPYmplY3RdKCNwYXRoc09iamVjdCkgfCAgVGhlIGF2YWlsYWJsZSBwYXRocyBhbmQgb3BlcmF0aW9ucyBmb3IgdGhlIEFQSSB0aGF0IG5lZWRlZCB0byBiZSBpZ25vcmVkLgoKIyMjIyA8YSBuYW1lPSJwYXRoc09iamVjdCI+PC9hPlBhdGhzIE9iamVjdAoKSG9sZHMgdGhlIHJlbGF0aXZlIHBhdGhzIHRvIHRoZSBpbmRpdmlkdWFsIGVuZHBvaW50cyBhbmQgdGhlaXIgb3BlcmF0aW9ucy4KCiMjIyMjIFBhdHRlcm5lZCBGaWVsZHMKCkZpZWxkIFBhdHRlcm4gfCBUeXBlIHwgRGVzY3JpcHRpb24KLS0tfDotLS06fC0tLQo8YSBuYW1lPSJwYXRoc1BhdGgiPjwvYT4ve3BhdGh9IHwgW1BhdGggSXRlbSBPYmplY3RdKCNwYXRoSXRlbU9iamVjdCkgfCBBIHJlbGF0aXZlIHBhdGggdG8gYW4gaW5kaXZpZHVhbCBlbmRwb2ludC4gVGhlIGZpZWxkIG5hbWUgTVVTVCBiZWdpbiB3aXRoIGEgc2xhc2guIFdpbGRjYXJkIGlzIGFsbG93ZWQuIFdoZW4gbWF0Y2hpbmcgVVJMcy4gSW4gY2FzZSBvZiBhbWJpZ3VvdXMgbWF0Y2hpbmcsIGl0J3MgdXAgdG8gdGhlIHRvb2xpbmcgdG8gZGVjaWRlIHRoZSBleGVjdXRpb24gb3JkZXIuCgojIyMjIyBQYXRoIFdpbGRjYXJkIE1hdGNoaW5nCgpBc3N1bWluZyB0aGUgZm9sbG93aW5nIHBhdGhzLCB0aGUgY29uY3JldGUgZGVmaW5pdGlvbiwgYC9wZXRzL21pbmVgLCB3aWxsIGJlIG1hdGNoZWQgaWYgdXNlZDoKCmBgYAogIC9wZXRzLyoqICAgICAgICAjIHdpbGwgbWF0Y2ggYW5kIGFsc28gbWF0Y2ggYWxsIHBldHMgZW5kcG9pbnRzCiAgLyoqICAgICAgICAgICAgICMgd2lsbCBtYXRjaCBhbmQgYWxzbyB3aWxsIG1hdGNoIGFsbCBlbmRwb2ludHMKYGBgCk5PVElDRSEgV2hlbiB1c2luZyB3aWxkY2FyZHMgYWxsIGVuZHBvaW50cyBtYXRjaGluZyB0aGUgd2lsZGNhcmQgd2lsbCBhcHBseSB0aGUgaWdub3JlIHNwZWNpZmllZC4KCiMjIyMjIFBhdGhzIE9iamVjdCBFeGFtcGxlCgpgYGB5YW1sCnBhdGhzOgogIC9wZXQvKiosIC9zdG9yZS8qKjogICAgICAgICMgdGhpcyBwYXRoIHdpbGwgbWF0Y2ggYW55ICdwZXQnIG9yICdzdG9yZScgZW5kcG9pbnQgCiAgICBnZXQ6ICAgICAgICAgICAgICAgICAgICAgIAogICAgICByZXNwb25zZToKICAgICAgICAyMDA6CiAgICAgICAgICBuZXc6IHRydWUKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIHVzZXJuYW1lCiAgICAgICAgLSBwYXNzd29yZAoKICAgIHBvc3Q6CiAgICAgIHJlcXVlc3Q6CiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb24sIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTogJAogICAgICByZXNwb25zZToKICAgICAgICAyMDA6CiAgICAgICAgICBuZXc6IHRydWUKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgLSBwZXRJZAogICAgICAgICAgICAgICAgICAtIHF1YW50aXR5CiAgICAgICAgICAgICAgICAgIC0gc2hpcERhdGUKICAgICAgICAgICAgICAgICAgLSBjb21wbGV0ZQogICAgICBzZWN1cml0eToKICAgICAgICBwZXRzdG9yZV9hdXRoOgogICAgICAgICAgLSAnd3JpdGU6cGV0cycKICAgICAgICAgIC0gJ3JlYWQ6cGV0cycKCiAgL3VzZXIvbG9naW46ICAgICAgICAgICAgICAgIyB0aGlzIHBhdGggd2lsbCBtYXRjaCBvbmx5ICcvdXNlci9sb2dpbicgZW5kcG9pbnQuIAogICAgcG9zdDogJCAgICAgICAgCmBgYAoKIyMjIyA8YSBuYW1lPSJwYXRoSXRlbU9iamVjdCI+PC9hPlBhdGggSXRlbSBPYmplY3QKCkRlc2NyaWJlcyB0aGUgb3BlcmF0aW9ucyBhdmFpbGFibGUgb24gYSBzaW5nbGUgcGF0aC4KQSBQYXRoIEl0ZW0gTUFZIGJlIGVtcHR5LCBkdWUgdG8gW0FDTCBjb25zdHJhaW50c10oI3NlY3VyaXR5RmlsdGVyaW5nKS4KVGhlIHBhdGggaXRzZWxmIGlzIHN0aWxsIGV4cG9zZWQgdG8gdGhlIGRvY3VtZW50YXRpb24gdmlld2VyIGJ1dCB0aGV5IHdpbGwgbm90IGtub3cgd2hpY2ggb3BlcmF0aW9ucyBhbmQgcGFyYW1ldGVycyBhcmUgYXZhaWxhYmxlLgoKIyMjIyMgRml4ZWQgRmllbGRzCgpGaWVsZCBOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uCi0tLXw6LS0tOnwtLS0KPGEgbmFtZT0icGF0aEl0ZW1HZXQiPjwvYT5nZXQgfCBbT3BlcmF0aW9uIE9iamVjdF0oI29wZXJhdGlvbk9iamVjdCkgfCBBIGRlZmluaXRpb24gb2YgYSBHRVQgb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KPGEgbmFtZT0icGF0aEl0ZW1QdXQiPjwvYT5wdXQgfCBbT3BlcmF0aW9uIE9iamVjdF0oI29wZXJhdGlvbk9iamVjdCkgfCBBIGRlZmluaXRpb24gb2YgYSBQVVQgb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KPGEgbmFtZT0icGF0aEl0ZW1Qb3N0Ij48L2E+cG9zdCB8IFtPcGVyYXRpb24gT2JqZWN0XSgjb3BlcmF0aW9uT2JqZWN0KSB8IEEgZGVmaW5pdGlvbiBvZiBhIFBPU1Qgb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KPGEgbmFtZT0icGF0aEl0ZW1EZWxldGUiPjwvYT5kZWxldGUgfCBbT3BlcmF0aW9uIE9iamVjdF0oI29wZXJhdGlvbk9iamVjdCkgfCBBIGRlZmluaXRpb24gb2YgYSBERUxFVEUgb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KPGEgbmFtZT0icGF0aEl0ZW1PcHRpb25zIj48L2E+b3B0aW9ucyB8IFtPcGVyYXRpb24gT2JqZWN0XSgjb3BlcmF0aW9uT2JqZWN0KSB8IEEgZGVmaW5pdGlvbiBvZiBhIE9QVElPTlMgb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KPGEgbmFtZT0icGF0aEl0ZW1IZWFkIj48L2E+aGVhZCB8IFtPcGVyYXRpb24gT2JqZWN0XSgjb3BlcmF0aW9uT2JqZWN0KSB8IEEgZGVmaW5pdGlvbiBvZiBhIEhFQUQgb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KPGEgbmFtZT0icGF0aEl0ZW1QYXRjaCI+PC9hPnBhdGNoIHwgW09wZXJhdGlvbiBPYmplY3RdKCNvcGVyYXRpb25PYmplY3QpIHwgQSBkZWZpbml0aW9uIG9mIGEgUEFUQ0ggb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KPGEgbmFtZT0icGF0aEl0ZW1UcmFjZSI+PC9hPnRyYWNlIHwgW09wZXJhdGlvbiBPYmplY3RdKCNvcGVyYXRpb25PYmplY3QpIHwgQSBkZWZpbml0aW9uIG9mIGEgVFJBQ0Ugb3BlcmF0aW9uIG9uIHRoaXMgcGF0aC4KCiMjIyMjIFBhdGggSXRlbSBPYmplY3QgRXhhbXBsZQoKCmBgYHlhbWwKIHBvc3Q6CiAgICAgIHJlcXVlc3Q6CiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb24sIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTogJAogICAgICByZXNwb25zZToKICAgICAgICAyMDA6CiAgICAgICAgICBuZXc6IHRydWUKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgLSBwZXRJZAogICAgICAgICAgICAgICAgICAtIHF1YW50aXR5CiAgICAgICAgICAgICAgICAgIC0gc2hpcERhdGUKICAgICAgICAgICAgICAgICAgLSBjb21wbGV0ZQogICAgICBzZWN1cml0eToKICAgICAgICBwZXRzdG9yZV9hdXRoOgogICAgICAgICAgLSAnd3JpdGU6cGV0cycKICAgICAgICAgIC0gJ3JlYWQ6cGV0cycKcHV0OiAkCmRlbGV0ZTogJApgYGAKCiMjIyMgPGEgbmFtZT0ib3BlcmF0aW9uT2JqZWN0Ij48L2E+T3BlcmF0aW9uIE9iamVjdAoKRGVzY3JpYmVzIGEgc2luZ2xlIEFQSSBpZ25vcmUgb3BlcmF0aW9uIG9uIGEgcGF0aC4KCiMjIyMjIEZpeGVkIEZpZWxkcwoKRmllbGQgTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbgotLS18Oi0tLTp8LS0tCjxhIG5hbWU9InNlY3VyaXR5Ij48L2E+c2VjdXJpdHkgfCBbU2VjdXJpdHkgT2JqZWN0XSgjcGFyYW1ldGVyT2JqZWN0KSB8IEEgbGlzdCBvZiBzZWN1cml0eSByZXF1aXJlbWVudHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgaWdub3JlZC4KPGEgbmFtZT0icGFyYW1ldGVycyI+PC9hPnBhcmFtZXRlcnMgfCBbUGFyYW1ldGVyIE9iamVjdF0oI3BhcmFtZXRlck9iamVjdCl8IEEgbGlzdCBvZiBwYXJhbWV0ZXJzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGlnbm9yZWQuCjxhIG5hbWU9InJlcXVlc3QiPjwvYT5yZXF1ZXN0IHwgW1JlcXVlc3QgT2JqZWN0XSgjcmVxdWVzdEJvZHlPYmplY3QpIHwgVGhlIHJlcXVlc3QgYm9keSBhcHBsaWNhYmxlIGZvciB0aGlzIG9wZXJhdGlvbi4gY2FuIHNwZWNpZnkgaWdub3JlIGZvciBjb250ZW50LXR5cGUuCjxhIG5hbWU9InJlc3BvbnNlIj48L2E+cmVzcG9uc2UgfCBbUmVzcG9uc2UgT2JqZWN0XSgjcmVzcG9uc2VzT2JqZWN0KSB8IFRoZSBsaXN0IG9mIHBvc3NpYmxlIHJlc3BvbnNlIHN0YXR1c2VzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGlnbm9yZWQuCgojIyMjIyBPcGVyYXRpb24gT2JqZWN0IEV4YW1wbGUKCmBgYHlhbWwKcmVxdWVzdDoKICBjb250ZW50OgogICAgYXBwbGljYXRpb24vanNvbiwgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtOiAkCgpwYXJhbWV0ZXJzOgogIC0gdXNlcm5hbWUKICAtIHBhc3N3b3JkCgpyZXNwb25zZToKICAyMDA6CiAgICBuZXc6IHRydWUKICAgIGNvbnRlbnQ6CiAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgc2NoZW1hOgogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgLSBwZXRJZAogICAgICAgICAgICAtIHF1YW50aXR5CiAgICAgICAgICAgIC0gc2hpcERhdGUKICAgICAgICAgICAgLSBjb21wbGV0ZQoKc2VjdXJpdHk6CiAgcGV0c3RvcmVfYXV0aDoKICAgIC0gJ3dyaXRlOnBldHMnCiAgICAtICdyZWFkOnBldHMnCmBgYAojIyMjIDxhIG5hbWU9InNlY3VyaXR5T2JqZWN0Ij48L2E+U2VjdXJpdHkgT2JqZWN0CgpEZXNjcmliZXMgYSBzZWN1cml0eSByZXF1aXJlbWVudHMgdGhhdCBuZWVkZWQgdG8gYmUgaWdub3JlZC4KCiMjIyMjIEZpeGVkIEZpZWxkcwoKRmllbGQgTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbgotLS18Oi0tLTp8LS0tCjxhIG5hbWU9InNjaG1lYSI+PC9hPntzY2hlbWF9IHwgTWFwPFN0cmluZywgTGlzdD4gfCBBIG1hcCBvZiBzZWN1cml0eSByZXF1aXJlbWVudHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgaWdub3JlZC4KIyMjIyMgU2VjdXJpdHkgT2JqZWN0IEV4YW1wbGUKCmBgYHlhbWwKc2VjdXJpdHk6CiAgcGV0c3RvcmVfYXV0aDoKICAgIC0gJ3dyaXRlOnBldHMnCiAgICAtICdyZWFkOnBldHMnCiAgYXBpX2tleToKICAgIC0gJ3JlYWQ6dXNlcnMnCmBgYAoKRG9jdW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tCgpNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBvbiBbRG9jc11bb3BlbmFwaS1kaWZmLWlnbm9yZS1ob21lXS4KCgpXaGVyZSBjYW4gSSBnZXQgdGhlIGxhdGVzdCByZWxlYXNlPwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpZb3UgY2FuIGRvd25sb2FkIHJlbGVhc2Ugc291cmNlIGZyb20gb3VyIHJlbGVhc2UgcGFnZS4KCkNvbnRyaWJ1dGluZwotLS0tLS0tLS0tLS0KCklmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgZGV2ZWxvcG1lbnQgb2YgT3BlbkFQSS1kaWZmLWlnbm9yZSwgcGxlYXNlIGNvbnN1bHQgdGhlIApkb2N1bWVudGF0aW9uIGZpcnN0IGFuZCBhZnRlcndhcmRzIHlvdSBhcmUgd2VsY29tZSB0byBqb2luIHRoZSBkZXZlbG9wZXJzIAptYWlsaW5nIGxpc3QgdG8gYXNrIHF1ZXN0aW9uIG9yIGRpc2N1c3MgbmV3IGlkZWFzIC8gZmVhdHVyZXMgLyBidWdzIGV0Yy4KClRha2UgYSBsb29rIGludG8gdGhlIFtjb250cmlidXRpb24gZ3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKS4KCgoKUXVpY2sgQnVpbGQKLS0tLS0tLQpJZiB5b3Ugd2FudCB0byBib290c3RyYXAgb3BlbmFwaS1kaWZmLWlnbm9yZSwgeW91J2xsIG5lZWQ6Ci0gSmF2YSAxLjgrCi0gTWF2ZW4gMy54Lnggb3IgbGF0ZXIKLSBSdW4gTWF2ZW4sIHNwZWNpZnlpbmcgYSBsb2NhdGlvbiBpbnRvIHdoaWNoIHRoZSBjb21wbGV0ZWQgTWF2ZW4gZGlzdHJvIHNob3VsZCBiZSBpbnN0YWxsZWQ6CmBgYAouL212bncgY2xlYW4gcGFja2FnZQpgYGAKCltvcGVuYXBpLWRpZmYtaWdub3JlLWhvbWVdOiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvCg== readmeEtag: '"35cb21cd72cd6694e0e922d261b89a3d08d9bb08"' readmeLastModified: Tue, 05 May 2020 14:09:44 GMT repositoryId: 238002799 description: >- This repository describes an ignore specification, and can be used to integrate with OpenAPI-diff and customize your breaking changes. created: '2020-02-03T15:53:55Z' updated: '2020-05-05T14:09:53Z' language: Java archived: false stars: 1 watchers: 4 forks: 1 owner: elibracha logo: https://avatars.githubusercontent.com/u/31411282?v=4 license: MIT repoEtag: '"58fe9aab653de93515dbe47cc0bc5390a60b25a69f5d57fc89bb9482d8f0f2c6"' repoLastModified: Tue, 05 May 2020 14:09:53 GMT foundInMaster: true category: Parsers id: 2e25629dba8381246f6bb9aa2a9c4951 - source: openapi3 tags repository: https://github.com/karthikeyan-ng/e-learnings-certificate_udemy v3: true repositoryMetadata: repositoryId: 243043222 description: Course Completion Certificates + Technology Certificates created: '2020-02-25T16:07:38Z' updated: '2020-07-05T13:26:31Z' language: null archived: false stars: 1 watchers: 2 forks: 0 owner: karthikeyan-ng logo: https://avatars.githubusercontent.com/u/39563373?v=4 repoEtag: '"540b3b885ae5458cda8aafbb06b04b9831751974fd3b13fc216f156806731322"' repoLastModified: Sun, 05 Jul 2020 13:26:31 GMT foundInMaster: true id: 2945795c4fef24e25a12f0ba8a8e93e8 - source: openapi3 tags repository: https://github.com/abhinaba-ghosh/postman-coverage v3: true repositoryMetadata: base64Readme: >- IyBQb3N0bWFuLUNvdmVyYWdlCgpHZW5lcmF0ZSBQb3N0bWFuIGNvbGxlY3Rpb24gY292ZXJhZ2UgcmVwb3J0LgoKV29yayBpbiBwcm9ncmVzcyEgS2VlcCB3YXRjaGluZy4K readmeEtag: '"abfc1968a123d3c44e3c4e78bd856e348d1bfad3"' readmeLastModified: Sun, 27 Jun 2021 21:21:43 GMT repositoryId: 379584054 description: derive postman collection coverage against openapi schema created: '2021-06-23T11:45:36Z' updated: '2022-09-05T10:42:44Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: abhinaba-ghosh logo: https://avatars.githubusercontent.com/u/23141842?v=4 license: MIT repoEtag: '"7cb1de488c0706bf85d166f3fcd388f30c2119f9cbca991a31c9cd7af2cdc93d"' repoLastModified: Mon, 05 Sep 2022 10:42:44 GMT foundInMaster: true category: - Converters - Testing id: 99d139aa4e0795bc5213ad50c672253a - source: openapi3 tags repository: https://github.com/kba07/ecwid-shiprocket-app v3: true id: 2500014a818e22f012ce48fe3e880483 repositoryMetadata: base64Readme: >- IyBJbnRlZ3JhdGlvbiBiZXR3ZWVuIGVjd2lkIGFuZCBzaGlwcm9ja2V0LgpBIHNpbXBsZSBpbnRlZ3JhdGlvbiBiZXR3ZWVuIGVjd2lkIGFuZCBzaGlwcm9ja2V0LCB3aGljaCB3aWxsIGdlbmVyYXRlIHNoaXByb2NrZXQgc3BlY2lmaWMgYnVsayBvcmRlcnMgY3N2IGFuZCBzZW5kIGl0IG92ZXIgYW4gZW1haWwuCg== readmeEtag: '"81e94b0e64c0c73c552242ecaa9471583f977d31"' readmeLastModified: Tue, 30 May 2023 07:21:02 GMT repositoryId: 354893401 description: >- A simple integration between ecwid and shiprocket, which will generate shiprocket specific bulk orders csv and send it over an email. created: '2021-04-05T16:10:44Z' updated: '2023-05-30T07:17:45Z' language: Python archived: false stars: 1 watchers: 2 forks: 0 owner: KBA07 logo: https://avatars.githubusercontent.com/u/39996841?v=4 repoEtag: '"31a8e81282dbdab778625b55d668a284eca8c3f64e09818dfc3055768e54bd25"' repoLastModified: Tue, 30 May 2023 07:17:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/rrjanbiah/legacy2openapi-spec v3: true repositoryMetadata: base64Readme: >- IyBsZWdhY3kyb3BlbmFwaS1zcGVjIC0gTGVnYWN5IHRvIE9wZW5BUEkgc3BlYyBjb252ZXJzaW9ucyBvZiBBUElzIGZvciBlYXN5IFNESyBjb2RlIGdlbmVyYXRpb25zCgpPcGVuQVBJIHNwZWMtY29tcGxpYW50IEFQSXMgaGF2ZSB0aGUgYmVsb3cgYWR2YW50YWdlczoKMS4gQ2FuIGdlbmVyYXRlIFNESyBjb2RlcyBhdXRvbWF0aWNhbGx5IHVzaW5nIHRoZSBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpCjIuIENhbiBnZW5lcmF0ZSBBUEkgcGxheWdyb3VuZCAmIGRvY3VtZW50YXRpb24gdXNpbmcgW29wZW5hcGktdWldKGh0dHBzOi8vZ2l0aHViLmNvbS9kaGNvZGUvb3BlbmFwaS11aSkgYW5kIFtTd2FnZ2VyIFVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkKMy4gQ2FuIGdlbmVyYXRlIG5pY2UtbG9va2luZyBkb2N1bWVudGF0aW9uIHVzaW5nIFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MpCgpCdXQsIGZldyBTYWFTIGNvbXBhbmllcyBkb24ndCBvZmZlciBPcGVuQVBJIHNwZWMgZm9yIHRoZWlyIG93biByZWFzb25zLiBUaGlzIHByb2plY3QgaXMgYW4gYXR0ZW1wdCB0byBpZGVudGlmeSB0aG9zZSBsZWdhY3kgQVBJIGRvY3VtZW50YXRpb24gYW5kIGNvbnZlcnQgdGhlbSBpbnRvIE9wZW5BUEkgc3BlYy4K readmeEtag: '"c278f991609423c723641b2ebce18ee07d09c3a2"' readmeLastModified: Sat, 23 Apr 2022 15:25:45 GMT repositoryId: 484774635 description: Legacy to OpenAPI spec conversions of APIs for easy SDK code generations created: '2022-04-23T14:47:43Z' updated: '2022-04-23T15:23:26Z' language: Rust archived: false stars: 1 watchers: 1 forks: 0 owner: rrjanbiah logo: https://avatars.githubusercontent.com/u/4907427?v=4 license: MIT repoEtag: '"0fa1a3f4c033fc4101efbb116dc8693709b101409afa883251abdce7b698b1bb"' repoLastModified: Sat, 23 Apr 2022 15:23:26 GMT foundInMaster: true category: - Code Generators - Parsers id: 8b6ae7f657ec6327ab502f153fcbea3a - source: openapi3 tags repository: https://github.com/george-the-penguin/render-spring-boot-rest-api-poc v3: true id: 0693d7a953b867eea8a6cccd6b6f02e2 repositoryMetadata: base64Readme: >- IyByZW5kZXItc3ByaW5nLWJvb3QtcmVzdC1hcGktcG9jCgpUaGlzIGlzIGEgc2ltcGxlIFNwcmluZyBCb290IFJFU1QgQVBJIFByb29mIG9mIENvbmNlcHQgKFBPQykgcHJvamVjdC4KClRoZSBnb2FsIG9mIHRoaXMgcHJvamVjdCBpcyB0byBkZW1vbnN0cmF0ZSBob3cgdG8gY3JlYXRlIGEgUkVTVCBBUEkgdXNpbmcgU3ByaW5nIEJvb3QsIGFuZCBpdCBjYW4gcnVuIHByb3Blcmx5IGluIHRoZSAKUmVuZGVyIGVjb3N5c3RlbS4KClRoZSBpZGVhIHRvIGNyZWF0ZSB0aGlzIHByb2plY3QgYXJpc2VzIGluIHJlc3BvbnNlIHRvIHNldmVyYWwgcXVlc3Rpb25zIGFza2VkIGJ5IHBhcnRpY2lwYW50cyBvZiB0aGUgKipEZXZzIExhdGFtKiogCmluaXRpYXRpdmUgZnJvbSB0aGUgKipUcnlDYXRjaCoqIGRldmVsb3BtZW50IGNvbW11bml0eS4KCiMjIFRlY2hub2xvZ2llcwoKVGhlIGZvbGxvd2luZyBpcyB0aGUgbGlzdCBvZiB0ZWNobm9sb2dpZXMgdXNlZCB0byBidWlsZCB0aGlzIHByb2plY3Q6CgotIFtKYXZhIDE3XShodHRwczovL29wZW5qZGsub3JnL3Byb2plY3RzL2pkay8xNy8pCi0gW1NwcmluZyBCb290IDMuMC42XShodHRwczovL3NwcmluZy5pby8pCi0gW0FwYWNoZSBNYXZlbiAzLjkuMV0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLykKLSBbTG9tYm9rIDEuMTguMjZdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvKQotIFtPcGVuQVBJIDMuMC4zXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKQotIFtQb3N0Z3JlU1FMIDE1XShodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy8pCi0gW0RvY2tlciAyMC4xMC4yNF0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pCi0gW1JlbmRlcl0oaHR0cHM6Ly9yZW5kZXIuY29tLykKCiMjIENyZWF0ZSBhIFJlbmRlcidzIFBvc3RncmVTUUwgZGF0YWJhc2UKClRvIGNyZWF0ZSBhIFBvc3RncmVTUUwgZGF0YWJhc2UgaW4gUmVuZGVyLCB5b3UgbmVlZCB0byBmb2xsb3cgdGhlIGZvbGxvd2luZyBzdGVwczoKCjEuIEdvIHRvIHRoZSBbUmVuZGVyJ3MgZGFzaGJvYXJkXShodHRwczovL2Rhc2hib2FyZC5yZW5kZXIuY29tLykuCjIuIENsaWNrIG9uIHRoZSAqKk5ldysqKiBidXR0b24sIGFuZCB0aGVuIGNsaWNrIG9uIHRoZSAqKlBvc3RncmVTUUwqKiBvcHRpb24uCjMuIEluIHRoZSAqKk5ldyBQb3N0Z3JlU1FMKiogZm9ybSwgeW91IG5lZWQgdG8gZmlsbCB0aGUgZm9sbG93aW5nIGZpZWxkczoKICAgLSAqKk5hbWUqKjogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHJlc291cmNlIGluIFJlbmRlci4KICAgLSAqKkRhdGFiYXNlKio6IFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSBpbnN0YW5jZS4KICAgLSAqKlVzZXIqKjogVGhlIHVzZXJuYW1lIG9mIHRoZSBkYXRhYmFzZS4KICAgLSAqKlJlZ2lvbioqOiBUaGUgcmVnaW9uIHdoZXJlIHRoZSBkYXRhYmFzZSB3aWxsIGJlIGNyZWF0ZWQuCiAgIC0gKipQb3N0Z3JlU1FMIFZlcnNpb24qKjogVGhlIFBvc3RncmVTUUwgdmVyc2lvbi4gSSByZWNvbW1lbmQgdXNpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uLgogICAtICoqSW5zdGFuY2UgVHlwZSoqOiBUaGUgaW5zdGFuY2UgdHlwZS4gSSByZWNvbW1lbmQgdXNpbmcgdGhlICoqRnJlZSoqIGluc3RhbmNlIHR5cGUgZm9yIGFjYWRlbWljIHB1cnBvc2VzLgo0LiBDbGljayBvbiB0aGUgKipDcmVhdGUgRGF0YWJhc2UqKiBidXR0b24uCgojIyBIb3cgdG8gYnVpbGQKClRvIGJ1aWxkIHRoaXMgcHJvamVjdCwgeW91IG5lZWQgdG8gaGF2ZSB0aGUgZm9sbG93aW5nIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmU6CgotIEphdmEgMTcKLSBBcGFjaGUgTWF2ZW4gMwotIERvY2tlciAyMAoKVG8gYnVpbGQgdGhlIHByb2plY3QsIHlvdSBuZWVkIHRvIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCm12biBjbGVhbiBwYWNrYWdlCmBgYAoKX05PVEU6IFRoaXMgY29tbWFuZCBtdXN0IGJlIGV4ZWN1dGVkIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5fCgpUbyBidWlsZCB0aGUgRG9ja2VyIGltYWdlLCB5b3UgbmVlZCB0byBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYmFzaApkb2NrZXIgYnVpbGQgLXQgcmVuZGVyLXNwcmluZy1ib290LXJlc3QtYXBpLXBvYyAuCmBgYAoKX05PVEU6IFRoaXMgY29tbWFuZCBtdXN0IGJlIGV4ZWN1dGVkIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5fCgojIyBIb3cgdG8gcnVuCgpUbyBydW4gdGhlIERvY2tlciBjb250YWluZXIsIHlvdSBuZWVkIHRvIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCmRvY2tlciBydW4gLWUgREJfVVJMPSJEQl9VUkwiIC1lIERCX1VTRVI9REJfVVNFUiAtZSBEQl9QQVNTV0Q9REJfUEFTU1dEIC1wIDgwODA6ODA4MCByZW5kZXItc3ByaW5nLWJvb3QtcmVzdC1hcGktcG9jCmBgYAoKV2hlcmU6Ci0gYERCX1VSTGAgaXMgdGhlIFVSTCBvZiB0aGUgUG9zdGdyZVNRTCBkYXRhYmFzZS4KLSBgREJfVVNFUmAgaXMgdGhlIHVzZXIgb2YgdGhlIFBvc3RncmVTUUwgZGF0YWJhc2UuCi0gYERCX1BBU1NXRGAgaXMgdGhlIHBhc3N3b3JkIG9mIHRoZSBQb3N0Z3JlU1FMIGRhdGFiYXNlLgoKVGhlc2UgZGF0YSBtdXN0IGJlIHByb3ZpZGVkIGFzIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byB0aGUgRG9ja2VyIGNvbnRhaW5lciwgYW5kIHRoZXkgY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIApSZW5kZXIncyBkYXRhYmFzZSByZXNvdXJjZSwgd2l0aGluIHRoZSAqKkNvbm5lY3Rpb25zKiogc2VjdGlvbi4KCkV4YW1wbGU6CgpgYGBiYXNoCmRvY2tlciBydW4gLWUgREJfVVJMPSJqZGJjOnBvc3RncmVzcWw6Ly9wb3N0Z3Jlcy5yZW5kZXIuY29tOjU0MzIvcmVuZGVyLXNwcmluZy1ib290LXJlc3QtYXBpLXBvYyIgLWUgREJfVVNFUj1wb3N0Z3JlcyAtZSBEQl9QQVNTV0Q9cG9zdGdyZXMgLXAgODA4MDo4MDgwIHJlbmRlci1zcHJpbmctYm9vdC1yZXN0LWFwaS1wb2MKYGBgCgojIyBIb3cgdG8gZGVwbG95IG9uIFJlbmRlcgoKVG8gZGVwbG95IHRoaXMgcHJvamVjdCBvbiBSZW5kZXIsIHlvdSBuZWVkIHRvIGZvbGxvdyB0aGUgZm9sbG93aW5nIHN0ZXBzOgoKMS4gR28gdG8gdGhlIFtSZW5kZXIncyBkYXNoYm9hcmRdKGh0dHBzOi8vZGFzaGJvYXJkLnJlbmRlci5jb20vKS4KMi4gQ2xpY2sgb24gdGhlICoqTmV3KyoqIGJ1dHRvbiwgYW5kIHRoZW4gY2xpY2sgb24gdGhlICoqV2ViIFNlcnZpY2UqKiBvcHRpb24uCjMuIEluIHRoZSAqKkNyZWF0ZSBhIG5ldyBXZWIgU2VydmljZSoqIGZvcm0sIHlvdSBuZWVkIHRvIGZpbGwgdGhlIGZvbGxvd2luZyBmaWVsZHM6CiAgIC0gKipDb25uZWN0IGEgcmVwb3NpdG9yeSoqOiBTZWxlY3QgdGhlIHJlcG9zaXRvcnkgd2hlcmUgdGhlIHByb2plY3QgaXMgbG9jYXRlZC4gQ2xpY2sgb24gdGhlICoqQ29ubmVjdCoqIGJ1dHRvbiB0byBjb250aW51ZS4KNC4gSW4gdGhlIG5leHQgZm9ybSwgeW91IG5lZWQgdG8gZmlsbCB0aGUgZm9sbG93aW5nIGZpZWxkczoKICAgLSAqKk5hbWUqKjogVGhlIG5hbWUgb2YgdGhlIHdlYiBzZXJ2aWNlLgogICAtICoqUmVnaW9uKio6IFRoZSByZWdpb24gd2hlcmUgdGhlIHdlYiBzZXJ2aWNlIHdpbGwgYmUgY3JlYXRlZC4KICAgLSAqKkJyYW5jaCoqOiBUaGUgYnJhbmNoIG9mIHRoZSByZXBvc2l0b3J5IHRvIGRlcGxveS4KICAgLSAqKlJ1bnRpbWUqKjogVGhlIHJ1bnRpbWUgb2YgdGhlIHdlYiBzZXJ2aWNlLiBGb3IgdGhpcyBjYXNlLCB5b3UgbmVlZCB0byBzZWxlY3QgdGhlICoqRG9ja2VyKiogb3B0aW9uLgogICAtICoqSW5zdGFuY2UgVHlwZSoqOiBUaGUgaW5zdGFuY2UgdHlwZS4gSSByZWNvbW1lbmQgdXNpbmcgdGhlICoqRnJlZSoqIGluc3RhbmNlIHR5cGUgZm9yIGFjYWRlbWljIHB1cnBvc2VzLgogICAtIEluIHRoZSAqKkFkdmFuY2VkKiogc2VjdGlvbiwgY2xpY2sgdGhlICoqQWRkIEVudmlyb25tZW50IFZhcmlhYmxlKiogYnV0dG9uLCBhbmQgdGhlbiBhZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CiAgICAgLSAqKlBPUlQqKjogVGhlIHBvcnQgd2hlcmUgdGhlIHdlYiBzZXJ2aWNlIHdpbGwgYmUgbGlzdGVuaW5nLiBGb3IgdGhpcyBjYXNlLCB5b3UgbmVlZCB0byB1c2UgdGhlICoqODA4MCoqIHZhbHVlLiAKICAgICAtICoqREJfVVJMKio6IFRoZSBVUkwgb2YgdGhlIFBvc3RncmVTUUwgZGF0YWJhc2UuCiAgICAgLSAqKkRCX1VTRVIqKjogVGhlIHVzZXIgb2YgdGhlIFBvc3RncmVTUUwgZGF0YWJhc2UuCiAgICAgLSAqKkRCX1BBU1NXRCoqOiBUaGUgcGFzc3dvcmQgb2YgdGhlIFBvc3RncmVTUUwgZGF0YWJhc2UuCjUuIENsaWNrIHRoZSAqKkNyZWF0ZSBXZWIgU2VydmljZSoqIGJ1dHRvbi4KCiMjIEhvdyB0byB1c2UKClRvIHVzZSB0aGlzIHByb2plY3QsIHlvdSBuZWVkIHRvIGZvbGxvdyB0aGUgZm9sbG93aW5nIHN0ZXBzOgoKMS4gVXNlIFBvc3RtYW4gb3IgYW55IG90aGVyIHRvb2wgdG8gbWFrZSBIVFRQIHJlcXVlc3RzLiBZb3UgY2FuIGZpbmQgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBvZiB0aGlzIHByb2plY3QgaW4gdGhlIAogICBgL3YzL2FwaS1kb2NzYCBlbmRwb2ludCBvZiB0aGUgd2ViIHNlcnZpY2UuCjIuIFlvdSBjYW4gdXNlIHRoZSBTd2FnZ2VyIFVJIHRvIG1ha2UgSFRUUCByZXF1ZXN0cy4gWW91IGNhbiBmaW5kIHRoZSBTd2FnZ2VyIFVJIGluIHRoZSBgL3N3YWdnZXItdWkvaW5kZXguaHRtbGAgZW5kcG9pbnQgb2YgCiAgIHRoZSB3ZWIgc2VydmljZS4KCiMjIEF1dGhvcgoKLSAqKkpvcmdlIEdhcmNpYSoqIC0gR2VvcmdlIHRoZSBQZW5ndWluCiAgLSBbV2Vic2l0ZV0oaHR0cHM6Ly9nZW9yZ2V0aGVwZW5ndWluLmRldi8pCiAgLSBbR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vZ2VvcmdlLXRoZS1wZW5ndWluKQogIC0gW1R3aXR0ZXJdKGh0dHBzOi8vdHdpdHRlci5jb20vbXJnZW9yZ2VwZW5ndWluKQogIC0gW0luc3RhZ3JhbV0oaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9tcmdlb3JnZXBlbmd1aW4vKQogIC0gW1Rpa1Rva10oaHR0cHM6Ly93d3cudGlrdG9rLmNvbS9AZ2VvcmdlX3RoZV9wZW5ndWluKQogIC0gW1lvdVR1YmVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL0BHZW9yZ2VUaGVQZW5ndWluKQogIC0gW1R3aXRjaF0oaHR0cHM6Ly93d3cudHdpdGNoLnR2L2dlb3JnZV90aGVfcGVuZ3VpbikKCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgLSBzZWUgdGhlIFtMSUNFTlNFXShMSUNFTlNFLm1kKSBmaWxlIGZvciBkZXRhaWxzCgojIyBBY2tub3dsZWRnbWVudHMKCi0gKipUcnlDYXRjaCoqIC0gW1NvY2lhbCBNZWRpYSBMaW5rc10oaHR0cHM6Ly9saW5rdHIuZWUvdHJ5Y2F0Y2gudHYpCgojIyBEaXNjbGFpbWVyCgpUaGlzIHByb2plY3QgaXMgbm90IGFmZmlsaWF0ZWQsIGFzc29jaWF0ZWQsIGF1dGhvcml6ZWQsIGVuZG9yc2VkIGJ5LCBvciBpbiBhbnkgd2F5IG9mZmljaWFsbHkgY29ubmVjdGVkIHdpdGggUmVuZGVyLCAKb3IgYW55IG9mIGl0cyBzdWJzaWRpYXJpZXMgb3IgaXRzIGFmZmlsaWF0ZXMuIFRoZSBvZmZpY2lhbCBSZW5kZXIgd2Vic2l0ZSBjYW4gYmUgZm91bmQgYXQgaHR0cHM6Ly9yZW5kZXIuY29tLiAKVGhlIG5hbWUgIlJlbmRlciIgYXMgd2VsbCBhcyByZWxhdGVkIG5hbWVzLCBtYXJrcywgZW1ibGVtcyBhbmQgaW1hZ2VzIGFyZSByZWdpc3RlcmVkIHRyYWRlbWFya3MgCm9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzLgo= readmeEtag: '"029377c325d684da559a9c5cf9867fa38671a7d0"' readmeLastModified: Fri, 21 Apr 2023 19:20:30 GMT repositoryId: 631014634 description: >- This is a simple Spring Boot REST API Proof of Concept (POC) project. The goal of this project is to demonstrate how to create a REST API using Spring Boot, and it can run properly in the Render ecosystem. created: '2023-04-21T17:45:21Z' updated: '2023-07-08T22:36:20Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: george-the-penguin logo: https://avatars.githubusercontent.com/u/129033766?v=4 license: MIT repoEtag: '"af13eb4a2848fcada9b8d00c521176199ee87b173d47c1483fc584d1588c73ac"' repoLastModified: Sat, 08 Jul 2023 22:36:20 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/refitter/generate-code v3: true id: 3e35276edc64b3c205a0484dbf849447 repositoryMetadata: base64Readme: >- IyBHZW5lcmF0ZS1Db2RlCkdlbmVyYXRlIGEgQyMgUmVmaXQgY2xpZW50IGludGVyZmFjZSBhbmQgY29udHJhY3RzIGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBkb2N1bWVudCB1c2luZyBbUmVmaXR0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikuCgojIyBJbnB1dHMKCiMjIyBgb3BlbmFwaS1maWxlYApUaGUgcGF0aCB0byB0aGUgT3BlbkFQSSBkb2N1bWVudCAoYm90aCBKU09OIGFuZCBZQU1MIGFyZSBzdXBwb3J0ZWQpLiBEZWZhdWx0cyB0byBgIm9wZW5hcGkuanNvbiJgIChpLmUuIGEgZmlsZSBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgY2FsbGVkIG9wZW5hcGkuanNvbikuIFBhdGhzIHRoYXQgZG8gbm90IHN0YXJ0IHdpdGggYC9gIGFyZSBhc3N1bWVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSByb290IG9mIHRoZSByZXBvc2l0b3J5LgoKIyMjIGBvcGVuYXBpLXVybGAKVGhlIFVSTCB0byBsb2FkIHRoZSBPcGVuQVBJIGRvY3VtZW50IGZyb20uIElmIHNldCwgYG9wZW5hcGktZmlsZWAgd2lsbCBiZSBpZ25vcmVkLgoKIyMjIGBuYW1lc3BhY2VgClRoZSBkZWZhdWx0IG5hbWVzcGFjZSB1c2VkIGZvciB0aGUgZ2VuZXJhdGVkIHR5cGVzIChkZWZhdWx0OiBgR2VuZXJhdGVkQ29kZWApCgojIyMgYHVzZS1hcGktcmVzcG9uc2VgClJldHVybiBgVGFzazxJQXBpUmVzcG9uc2U8VD4+YCBpbnN0ZWFkIG9mIGBUYXNrPFQ+YAoKIyMjIGBjYW5jZWxsYXRpb24tdG9rZW5zYApVc2UgY2FuY2VsbGF0aW9uIHRva2VucwoKIyMjIGBtdWx0aXBsZS1pbnRlcmZhY2VzYApHZW5lcmF0ZSBhIFJlZml0IGludGVyZmFjZSBmb3IgZWFjaCBlbmRwb2ludC4gTWF5IGJlIG9uZSBvZiBgQnlFbmRwb2ludGAsIGBCeVRhZ2AKCiMjIyBgY29tbWFuZC1hcmdzYApBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRocm91Z2ggdG8gdGhlIFtSZWZpdHRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyKSBDTEkgdG9vbC4KCiMjIyBgcHVibGlzaC1hcnRpZmFjdHNgClNldHRpbmcgdGhpcyB3aWxsIHB1Ymxpc2ggdGhlIGdlbmVyYXRlZCBjb2RlIGFzIEMjIGZpbGVzIGFzIGJ1aWxkIGFydGlmYWN0cwoKIyMjIGBvdXRwdXQtZmlsZW5hbWVgCk5vIG91dHB1dHMgYXJlIHJldHVybmVkLiBUaGUgZ2VuZXJhdGVkIGNsaWVudCBpcyBwbGFjZWQgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCB1c2luZyB0aGUgYG91dHB1dC1maWxlbmFtZWAgKERlZmF1bHQ6ICoqYE91dHB1dC5jc2AqKikgdmFsdWUuIFRoZSBvdXRwdXQgZmlsZSBjb250YWlucyBib3RoIHRoZSBSZWZpdCBpbnRlcmZhY2UgYW5kIHRoZSBjb250cmFjdCB0eXBlcyB1c2VkIGJ5IHRoZSBBUEkKCgojIEV4YW1wbGVzCgojIyMgRnJvbSBhIEZpbGUKCmBgYHlhbWwKam9iczoKICBzbW9rZS10ZXN0LXVybDoKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHN0ZXBzOgogICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjMKICAgICAgCiAgICAgICMgVXNlIHRoZSBhY3Rpb24gdG8gZ2VuZXJhdGUgYSBSZWZpdCBjbGllbnQgaW50ZXJmYWNlIGZyb20gYSBmaWxlCiAgICAgICMgVGhpcyBwcm9kdWNlcyBhIGZpbGUgY2FsbGVkIE91dHB1dC5jcyBhcyBhIGJ1aWxkIGFydGlmYWN0CiAgICAgIC0gdXNlczogcmVmaXR0ZXIvZ2VuZXJhdGUtY29kZUB2MQogICAgICAgIG5hbWU6IEdlbmVyYXRlIFJlZml0IENsaWVudAogICAgICAgIHdpdGg6ICAgICAgICAKICAgICAgICAgIG9wZW5hcGktZmlsZTogb3BlbmFwaS5qc29uCiAgICAgICAgICBuYW1lc3BhY2U6IENocmlzdGlhbkhlbGxlLkV4YW1wbGVzLlBldHN0b3JlLnYzCiAgICAgIAogICAgICAjIERvIHNvbWV0aGluZyB3aXRoIHRoZSBnZW5lcmF0ZWQgY2xpZW50IChsaWtlIGluY2x1ZGUgaXQgaW4gYW4gZXhpc3RpbmcgcHJvamVjdCkKICAgICAgLSBydW46IEdldC1Db250ZW50IE91dHB1dC5jcyB8IFdyaXRlLUhvc3QKICAgICAgICBzaGVsbDogcHdzaApgYGAKCiMjIyBGcm9tIGEgVVJMCgpgYGB5YW1sCmpvYnM6CiAgc21va2UtdGVzdC11cmw6CiAgICBuYW1lOiBGcm9tIFVSTAogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAogICAgc3RlcHM6CiAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MwoKICAgICAgIyBVc2UgdGhlIGFjdGlvbiB0byBnZW5lcmF0ZSBhIFJlZml0IGNsaWVudCBpbnRlcmZhY2UgZnJvbSBhIFVSTAogICAgICAjIFRoaXMgcHJvZHVjZXMgYSBmaWxlIGNhbGxlZCBPdXRwdXRGcm9tVXJsLmNzIGFzIGEgYnVpbGQgYXJ0aWZhY3QKICAgICAgLSB1c2VzOiByZWZpdHRlci9nZW5lcmF0ZS1jb2RlQHYxCiAgICAgICAgbmFtZTogR2VuZXJhdGUgUmVmaXQgQ2xpZW50CiAgICAgICAgd2l0aDoKICAgICAgICAgIG9wZW5hcGktdXJsOiBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb24KICAgICAgICAgIG5hbWVzcGFjZTogQ2hyaXN0aWFuSGVsbGUuRXhhbXBsZXMuUGV0c3RvcmUudjMKICAgICAgICAgIGNvbW1hbmQtYXJnczogLS1uby1sb2dnaW5nCiAgICAgICAgICBvdXRwdXQtZmlsZW5hbWU6IE91dHB1dEZyb21VcmwuY3MKICAgICAgCiAgICAgICMgRG8gc29tZXRoaW5nIHdpdGggdGhlIGdlbmVyYXRlZCBjbGllbnQgKGxpa2UgaW5jbHVkZSBpdCBpbiBhbiBleGlzdGluZyBwcm9qZWN0KQogICAgICAtIHJ1bjogR2V0LUNvbnRlbnQgT3V0cHV0RnJvbVVybC5jcyB8IFdyaXRlLUhvc3QKICAgICAgICBzaGVsbDogcHdzaApgYGA= readmeEtag: '"cce7698b6ebe00f0eca3b614eef0b61dc141cac5"' readmeLastModified: Tue, 08 Aug 2023 11:23:18 GMT repositoryId: 671843069 description: >- Generate a C# Refit client interface and contracts from an OpenAPI specifications document using Refitter. created: '2023-07-28T09:08:49Z' updated: '2023-12-15T04:34:25Z' language: null archived: false stars: 1 watchers: 1 forks: 0 owner: Refitter logo: https://avatars.githubusercontent.com/u/140486945?v=4 license: GPL-3.0 repoEtag: '"91c17d2f75a0cc9dfbefa15081ddfc34f07af91f4f9962c7298ab930e5a162df"' repoLastModified: Fri, 15 Dec 2023 04:34:25 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/azurestandard/api-spec v3: true repositoryMetadata: base64Readme: >- T3BlbkFQSSAzLjAgU3BlY2lmaWNhdGlvbiBmb3IgQXp1cmUgU3RhbmRhcmQncyBBUEkuCgojIyBTdHlsZSBndWlkZQoKYHN1bW1hcnlgIHZhbHVlcyBhcmUgZXNzZW50aWFsbHkgaGVhZGluZ3MuIFRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZyBzaG91bGQgYWx3YXlzIGJlIGNhcGl0YWxpemVkLiBUaGV5IHNob3VsZCBuZXZlciBlbmQgaW4gYSBwZXJpb2QuCgpgZGVzY3JpcHRpb25gIHZhbHVlcyBzaG91bGQgYmUgZm9ybWF0dGVkIHdpdGggbm9ybWFsIHNlbnRlbmNlIGZvcm1hdHRpbmcuIFRoZXkgc2hvdWxkIGFsd2F5cyBlbmQgd2l0aCBhIHBlcmlvZC4gTWFya2Rvd24gaXMgc3VwcG9ydGVkIGZvciByaWNoLXRleHQgZm9ybWF0dGluZy4gVXNlIG9uZSBzcGFjZSBiZXR3ZWVuIHNlbnRlbmNlcyAobm90IHR3bykuCgojIyBEb2NzIHNpdGUKClVSTDogaHR0cHM6Ly9hcGktc3BlYy0yYXQucGFnZXMuZGV2CgpVc2VzIFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MpLgoKIyMgU3RvcGxpZ2h0IFN0dWRpbwoKV2UgaGF2ZSBhbiBhY2NvdW50IGF0IFtzdG9wbGlnaHQuaW9dKGh0dHBzOi8vc3RvcGxpZ2h0LmlvLyksIHdoaWNoIGluY2x1ZGVzIHRoZWlyICJTdHVkaW8iIChhIHZpc3VhbCBPcGVuQVBJIGVkaXRvcikuCgpTdG9wbGlnaHQgYWNjb3VudDogaHR0cHM6Ly9henVyZXN0YW5kYXJkLnN0b3BsaWdodC5pby8gIApTdG9wbGlnaHQgU3R1ZGlvOiBodHRwczovL2F6dXJlc3RhbmRhcmQuc3RvcGxpZ2h0LmlvL3N0dWRpby9hcGktc3BlYy9lZGl0Cg== readmeEtag: '"2b8d1d947a5165faa05826955a37200da04d562c"' readmeLastModified: Fri, 29 Dec 2023 09:53:35 GMT repositoryId: 26563142 description: OpenAPI 3.0 Specification for Azure Standard’s API. created: '2014-11-13T00:35:58Z' updated: '2024-01-14T12:44:06Z' language: Handlebars archived: false stars: 1 watchers: 18 forks: 1 owner: azurestandard logo: https://avatars.githubusercontent.com/u/4581874?v=4 repoEtag: '"cf977286a818301ec48752bda8ea7557ab13e521e56464767993ce8140e8c8cb"' repoLastModified: Sun, 14 Jan 2024 12:44:06 GMT foundInMaster: true category: - Documentation - Server Implementations id: 064b8c7b4d584f28a78b17a7039b4d0d - source: openapi3 tags repository: https://github.com/supermomonga/openapi_rails_typed_parameters v3: true id: 0ddf07584c0d7476a6b4c508b4e40824 repositoryMetadata: base64Readme: >- IyBPcGVuYXBpUmFpbHNUeXBlZFBhcmFtZXRlcnMKCmBvcGVuYXBpX3JhaWxzX3R5cGVkX3BhcmFtZXRlcnNgIGlzIGEgbGlicmFyeSBmb3IgcGVyZm9ybWluZyBwYXJhbWV0ZXIgdmFsaWRhdGlvbiBhbmQgY29lcmNpb24gaW4gUmFpbHMgdXNpbmcgT3BlbkFQSSBkZWZpbml0aW9uIGZpbGVzLiBJdCBhbHNvIHN1cHBvcnRzIHByb3ZpZGluZyBzdGF0aWMgdHlwZXMgdGhyb3VnaCBSQlMgZ2VuZXJhdGlvbi4KClRoaXMgZ2VtIGludGVybmFsbHkgdXNlcyB0aGUgW2BvcGVuYXBpX2ZpcnN0YF0oaHR0cHM6Ly9naXRodWIuY29tL2FoeC9vcGVuYXBpX2ZpcnN0KSBnZW0uCgojIyMgTWFpbiBPYmplY3RpdmVzCgotIEVsaW1pbmF0ZSB0aGUgY29kZSBmb3IgcGFyYW1zIHZhbGlkYXRpb24gYW5kIHR5cGUgY29udmVyc2lvbiAod2hpY2ggaXMgYWx3YXlzIGEgYm9yaW5nIGFuZCByb3V0aW5lIHRhc2spCi0gUHJvdmlkZSBhbiBSQlMgZ2VuZXJhdG9yIChzbyB5b3UgZG9uJ3QgaGF2ZSB0byBtZW1vcml6ZSBwYXJhbWV0ZXJzKQoKIyMjIERpZmZlcmVuY2VzIGZyb20gdGhlIGBvcGVuYXBpX2ZpcnN0YCBnZW0KCi0gT2ZmZXJzIG1vcmUgdGlnaHRseSBjb3VwbGVkIGZlYXR1cmVzIHRvIFJhaWxzCi0gQXNzaXN0cyBpbiBzdGF0aWNhbGx5IHR5cGVkIHByb2dyYW1taW5nIGJ5IHByb3ZpZGluZyBhbiBSQlMgZ2VuZXJhdG9yCgojIyA6d2FybmluZzogVGhpcyBnZW0gaXMgdW5kZXIgZGV2ZWxvcG1lbnQuCgpUaGlzIGdlbSBpcyBjdXJyZW50bHkgdW5kZXIgZGV2ZWxvcG1lbnQuIEl0IGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlIGluIHByb2R1Y3Rpb24gYXBwbGljYXRpb25zLiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzIG5vdCBndWFyYW50ZWVkIHVudGlsIHZlcnNpb24gMS4wLjAgaXMgcmVsZWFzZWQuCgpPbmNlIGFsbCBvZiB0aGUgZm9sbG93aW5nIFRPRE9zIGFyZSBjb21wbGV0ZWQsIHdlIHdpbGwgcmVsZWFzZSB2ZXJzaW9uIDEuMC4wLgoKIyMjIFRPRE8KCi0gWyBdIENvZXJjaW9uIHRvIG1vcmUgUmFpbHMgYXBwbGljYXRpb24gYXBwcm9wcmlhdGUgdHlwZXMsIHN1Y2ggYXMgYEFjdGl2ZVN1cHBvcnQ6OlRpbWVXaXRoWm9uZWAKLSBbIF0gUHJvdmlkZSBtb3JlIG9waW5pb25hdGVkIG9wdGlvbnMgZm9yIHR5cGUgY29udmVyc2lvbnMsIHN1Y2ggYXMgY29lcmNpb24gdG8gYFN5bWJvbGAgZm9yIEVudW0gdmFsdWUKLSBbIF0gSW5jbHVkZSBhIFJCUyBnZW5lcmF0aW9uIGdlbmVyYXRvciBmb3Igc3RhdGljYWxseSB0eXBlZCBwcm9ncmFtbWluZwotIFsgXSBJbmNsdWRlIFJCUyBpbiB0aGUgZ2VtIGl0c2VsZgoKCiMjIEluc3RhbGxhdGlvbgoKQWRkIGBvcGVuYXBpX3JhaWxzX3R5cGVkX3BhcmFtZXRlcnNgIHRvIHlvdXIgR2VtZmlsZS4KCmBgYHJiCmdlbSAnb3BlbmFwaV9yYWlsc190eXBlZF9wYXJhbWV0ZXJzJwpgYGAKCiMjIFVzYWdlCgpQbGVhc2UgYWRkIGFuIGluaXRpYWxpemVyIHRvIHlvdXIgUmFpbHMgYXBwbGljYXRpb24gYW5kIHNwZWNpZnkgdGhlIHBhdGggdG8gdGhlIE9wZW5BUEkgc2NoZW1hIGZpbGUuCgplLmcuKSBgY29uZmlnL2luaXRpYWxpemVycy9vcGVuYXBpLnJiYAoKYGBgb3BlbmFwaS5yYgpyZXF1aXJlICdvcGVuYXBpX3JhaWxzX3R5cGVkX3BhcmFtZXRlcnMnCgpPcGVuYXBpUmFpbHNUeXBlZFBhcmFtZXRlcnMuY29uZmlndXJlIGRvIHxjb25maWd8CiAgY29uZmlnLnNjaGVtYV9wYXRoID0gUmFpbHMucm9vdC5qb2luKCdzY2hlbWEueW1sJykKZW5kCmBgYAoKVGhlbiwgYWRkIGB1c2luZyBPcGVuYXBpUmFpbHNUeXBlZFBhcmFtZXRlcnNgIHRvIHlvdXIgY29udHJvbGxlciBjbGFzcy4gWW91IGNhbiBhY2Nlc3Mgc3RhdGljYWxseSB0eXBlZCBwYXJhbWV0ZXJzIHZpYSBgdHlwZWRfcGFyYW1ldGVyc2AgbWV0aG9kLgoKIyMgRXhhbXBsZQoKYGBgc2NoZW1hLnltbApvcGVuYXBpOiAzLjAuMwppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IFNhbXBsZSBBcHAKc2VydmVyczoKICAtIHVybDogaHR0cHM6Ly9leGFtcGxlLmNvbS8KcGF0aHM6CiAgL3VzZXJzOgogICAgZ2V0OgogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogcm9sZQogICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgZW51bTogWyBhZG1pbiwgbWFpbnRhaW5lciBdCiAgICAgICAgLSBuYW1lOiBtaW5pbXVtCiAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgLSBuYW1lOiBtYXhpbXVtCiAgICAgICAgICBpbjogcXVlcnkKICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCmBgYAoKYGBgdXNlcnNfY29udHJvbGxlci5yYgpjbGFzcyBVc2Vyc0NvbnRyb2xsZXIgPCBBcHBsaWNhdGlvbkNvbnRyb2xsZXIKICB1c2luZyBPcGVuYXBpUmFpbHNUeXBlZFBhcmFtZXRlcnMKCiAgZGVmIGluZGV4CiAgICB0eXBlZF9wYXJhbXMudmFsaWRhdGUhCiAgICByZXMgPSB7CiAgICAgIHJvbGU6IHR5cGVkX3BhcmFtcy5xdWVyeV9wYXJhbXMucm9sZSAjICdhZG1pbicgb3IgJ21haW50YWluZXInLAogICAgICBtaW5pbXVtOiB0eXBlZF9wYXJhbXMucXVlcnlfcGFyYW1zLm1pbmltdW0gIyBJbnRlZ2VyIHZhbHVlCiAgICAgIG1heGltdW06IHR5cGVkX3BhcmFtcy5xdWVyeV9wYXJhbXMubWF4aW11bSAjIEludGVnZXIgdmFsdWUKICAgIH0KICAgIHJlbmRlciBqc29uOiByZXMKICByZXNjdWUgT3BlbmFwaUZpcnN0OjpSZXF1ZXN0SW52YWxpZEVycm9yID0+IGUKICAgIHJlcyA9IHsKICAgICAgIyBlLmcuKQogICAgICAjIFF1ZXJ5IHBhcmFtZXRlciBpcyBpbnZhbGlkOiB2YWx1ZSBhdCBgL3JvbGVgIGlzIG5vdCBvbmUgb2Y6IFsiYWRtaW4iLCAibWFpbnRhaW5lciJdCiAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZQogICAgfQogICAgcmVuZGVyIGpzb246IHJlcywgc3RhdHVzOiA6YmFkX3JlcXVlc3QKICBlbmQKZW5kCmBgYAoKCiMjIExpY2Vuc2UKClRoZSBnZW0gaXMgYXZhaWxhYmxlIGFzIG9wZW4gc291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgW01JVCBMaWNlbnNlXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuCgojIyBDb2RlIG9mIENvbmR1Y3QKCkV2ZXJ5b25lIGludGVyYWN0aW5nIGluIHRoZSBPcGVuYXBpUmFpbHNUeXBlZFBhcmFtZXRlcnMgcHJvamVjdCdzIGNvZGViYXNlcywgaXNzdWUgdHJhY2tlcnMsIGNoYXQgcm9vbXMgYW5kIG1haWxpbmcgbGlzdHMgaXMgZXhwZWN0ZWQgdG8gZm9sbG93IHRoZSBbY29kZSBvZiBjb25kdWN0XShodHRwczovL2dpdGh1Yi5jb20vc3VwZXJtb21vbmdhL29wZW5hcGlfcmFpbHNfdHlwZWRfcGFyYW1ldGVycy9ibG9iL21haW4vQ09ERV9PRl9DT05EVUNULm1kKS4K readmeEtag: '"dbc7d3281a7677dcb41a994a33da645e14b8b937"' readmeLastModified: Sun, 07 Jan 2024 09:10:53 GMT repositoryId: 739426895 description: >- Eliminate manual params validation code in Rails by using OpenAPI specification. created: '2024-01-05T14:40:52Z' updated: '2024-01-26T20:40:19Z' language: Ruby archived: false stars: 1 watchers: 2 forks: 0 owner: supermomonga logo: https://avatars.githubusercontent.com/u/377137?v=4 license: MIT repoEtag: '"5f1a1506de43ca97ea41c26f16758efeb806da773460f1886b070c8e984cb5e3"' repoLastModified: Fri, 26 Jan 2024 20:40:19 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/connorjs/swapi-typespec v3: true id: 1def74b05c01bb642f02fdfa6e0fc268 repositoryMetadata: base64Readme: >- IyBTV0FQSSBUeXBlU3BlYwoKW1R5cGVTcGVjXVt0eXBlc3BlY10gcmVwcmVzZW50YXRpb24gb2YgW1NXQVBJOiBUaGUgU3RhciBXYXJzIEFQSV1bc3dhcGldLgoKPCEtLSBCYWRnZXM6IFVzZSBsaW5rIHNob3J0aGFuZCBmb3IgcmVhZGFiaWxpdHkgYW5kIGVhc2llciByZW9yZGVyaW5nIC0tPgoKWyFbQ0kgQnVpbGRdW2NpLWJ1aWxkLWJhZGdlXV1bY2ktYnVpbGRdClshW25wbSB2ZXJzaW9uXVtucG0tdmVyc2lvbi1iYWRnZV1dW25wbS12ZXJzaW9uXQoKW2NpLWJ1aWxkXTogaHR0cHM6Ly9naXRodWIuY29tL2Nvbm5vcmpzL3N3YXBpLXR5cGVzcGVjL2FjdGlvbnMvd29ya2Zsb3dzL2NpLWJ1aWxkLnltbApbY2ktYnVpbGQtYmFkZ2VdOiBodHRwczovL2dpdGh1Yi5jb20vY29ubm9yanMvc3dhcGktdHlwZXNwZWMvYWN0aW9ucy93b3JrZmxvd3MvY2ktYnVpbGQueW1sL2JhZGdlLnN2ZwpbbnBtLXZlcnNpb25dOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zd2FwaS10eXBlc3BlYwpbbnBtLXZlcnNpb24tYmFkZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3N3YXBpLXR5cGVzcGVjCgo8IS0tIEVuZCBiYWRnZXMgLS0+CgojIyBBYm91dAoKSSBjcmVhdGVkIHRoaXMgcHJvamVjdCB0byBsZWFybiBhYm91dCBUeXBlU3BlYyB0aHJvdWdoIGZpcnN0LWhhbmQgdXNhZ2UuCgpUaGUgZ2VuZXJhdGVkIE9wZW4gQVBJIDMgc3BlY2lmaWNhdGlvbiBoYXMgODc4IGxpbmVzICh3aXRoIG5vIGJsYW5rIGxpbmVzKSBpbiBhCnNpbmdsZSBmaWxlLiBUaGUgVHlwZVNwZWMgc291cmNlIGhhcyA0OTMgbGluZXMgKGFib3V0IOKFkyBhcmUgYmxhbmsgbGluZXMgZm9yCnJlYWRhYmlsaXR5KSBzcGxpdCBhY3Jvc3MgOCBmaWxlcyBmb3IgbG9naWNhbCBvcmdhbml6YXRpb24sIHdoaWNoIGlzIGEgfjQ1JQpyZWR1Y3Rpb24gaW4gbGluZXMgb2YgY29kZS4KCklmIHdlIGlnbm9yZSB0aGUgaW1wb3J0cywgdXNpbmcgc3RhdGVtZW50cywgYW5kIGJsYW5rIGxpbmVzIHdpdGhpbiBtb2RlbHMsIHRoZW4KdGhlIFR5cGVTcGVjIG9ubHkgaGFzIDM1MyBsaW5lcy4gVGhhdCBtZWFucyBhIDYwJSByZWR1Y3Rpb24gaW4gY29kZSB0byBtYWludGFpbi4KCiMjIEdldHRpbmcgc3RhcnRlZAoKRm9sbG93IHRoZXNlIHN0ZXBzIHRvIGNvbnN1bWUgdGhlIGdlbmVyYXRlZCBPcGVuIEFQSSBzcGVjaWZpY2F0aW9uIGZvciBTV0FQSS4KCjEuIEluc3RhbGwgdGhpcyBwYWNrYWdlIGFzIGEgZGVwZW5kZW5jeS4KCiAgIGBgYHNoCiAgIG5wbSBpbnN0YWxsIC1EIHN3YXBpLXR5cGVzcGVjCiAgIGBgYAoKMi4gUmVmZXJlbmNlIHRoZSBnZW5lcmF0ZWQgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiBkaXJlY3RseS4KCiAgIGBgYHNoCiAgIC4vbm9kZV9tb2R1bGVzL3N3YXBpLXR5cGVzcGVjL3N3YXBpLm9wZW5hcGkueWFtbAogICBgYGAKCltzd2FwaV06IGh0dHBzOi8vc3dhcGkuZGV2Clt0eXBlc3BlY106IGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby90eXBlc3BlYy8K readmeEtag: '"c88c06a808dfd9ff368d8d384d62ec7ecf294537"' readmeLastModified: Mon, 11 Sep 2023 21:36:10 GMT repositoryId: 689152742 description: 'TypeSpec representation of SWAPI: The Star Wars API.' created: '2023-09-09T00:02:29Z' updated: '2024-04-30T09:04:04Z' language: JavaScript archived: false stars: 1 watchers: 1 forks: 0 owner: connorjs logo: https://avatars.githubusercontent.com/u/22208536?v=4 license: MIT repoEtag: '"e7988994b4770bb7bf503d7e3fbc5c00ee8f534c079382708bd368ef09b8b4e6"' repoLastModified: Tue, 30 Apr 2024 09:04:04 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/tinello/tomcat-embedded-openapi v3: true id: 405ea524b68d2becff287386f4e517b0 repositoryMetadata: base64Readme: >- IyBUb21jYXQtRW1iZWRkZWQtT3BlbkFwaQoKIyMgUmVxdWlyZW1lbnRzIDxhIG5hbWU9IlJlcXVpcmVtZW50cyI+PC9hPgojIyMgU29mdHdhcmU6IDxhIG5hbWU9IlNvZnR3YXJlIj48L2E+Ci0gT3BlbkpESyAyMCB3aXRoIE9wZW5KOSAtPiBodHRwczovL2RldmVsb3Blci5pYm0uY29tL2xhbmd1YWdlcy9qYXZhL3NlbWVydS1ydW50aW1lcy9kb3dubG9hZHMvCi0gRG9ja2VyIDQuMjguMCAtPiBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kZXNrdG9wL2luc3RhbGwvdWJ1bnR1LwoKIyMjIENvbmZpZ3VyZSBKREsgVlNDb2RlOiA8YSBuYW1lPSJDb25maWd1cmVKREt2c2NvZGUiPjwvYT4KCkNoYW5nZSAvLnZzY29kZS9sYXVuY2guanNvbiBmb3IgeW91ciBKYXZhIEhvbWUKCiMjIyBDb25maWd1cmUgSkRLIEdyYWRsZTogPGEgbmFtZT0iQ29uZmlndXJlSkRLZ3JhZGxlIj48L2E+CgpDaGFuZ2UgZ3JhZGxlLnByb3BlcnRpZXMgZm9yIHlvdXIgSmF2YSBIb21lCgojIyMgRW52aXJvbm1lbnQgdmFyaWFibGVzOiA8YSBuYW1lPSJFbnZpcm9ubWVudFZhcmlhYmxlcyI+PC9hPgotIERCX1VSTD1sb2NhbGhvc3Q6NTQzMi9wb3N0Z3JlcwotIERCX1VTRVI9cG9zdGdyZXMKLSBEQl9QQVNTPW15c2VjcmV0cGFzc3dvcmQKCiMjIyBTdGFydCBQb3N0Z3JlU1FMIDxhIG5hbWU9IlN0YXJ0UG9zdGdyZVNRTCI+PC9hPgpgYGBiYXNoCmRvY2tlciBydW4gLS1uYW1lIHRvbWNhdC1vcGVuYXBpLXBvc3RncmVzIC1wIDU0MzI6NTQzMiAtZSBQT1NUR1JFU19QQVNTV09SRD1teXNlY3JldHBhc3N3b3JkIC1kIHBvc3RncmVzOjE2LjMtYWxwaW5lMy4xOApgYGAKCgojIyMgU3RhcnQgYXBwbGljYXRpb24gPGEgbmFtZT0iU3RhcnRBcHBsaWNhdGlvbiI+PC9hPgpgYGBiYXNoCkRCX1VSTD0ibG9jYWxob3N0OjU0MzIvcG9zdGdyZXMiIERCX1VTRVI9cG9zdGdyZXMgREJfUEFTUz1teXNlY3JldHBhc3N3b3JkIC4vZ3JhZGxldyBydW4KYGBgCgojIyBEZXZlbG9wbWVudCA8YSBuYW1lPSJkZXZlbG9wbWVudCI+PC9hPgojIyMgVmlzdWFsIFN0dWRpbyBDb2RlIEV4dGVuc2lvbnM6IDxhIG5hbWU9InZzY29kZS1leHRlbnNpb25zIj48L2E+CiMjIyMgRXh0ZW5zaW9uIFBhY2sgZm9yIEphdmEKCkluc3RhbGwgIkV4dGVuc2lvbiBQYWNrIGZvciBKYXZhIiBmcm9tIE1pY3Jvc29mdDogaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPXZzY2phdmEudnNjb2RlLWphdmEtcGFjawoKIyMjIyBHcmFkbGUgRXh0ZW5zaW9uIFBhY2sKCkluc3RhbGwgIkdyYWRsZSBFeHRlbnNpb24gUGFjayIgZnJvbSBSaWNoYXJkIFdpbGxpcyBodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9cmljaGFyZHdpbGxpcy52c2NvZGUtZ3JhZGxlLWV4dGVuc2lvbi1wYWNrCgoKIyMgRW5kcG9pbnRzCgp8IE5hbWUgICAgICAgICAgICAgICAgIHwgRW5kcG9pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFNlcnZpY2UgSW5mbyAgICAgICAgIHwgaHR0cDovL2xvY2FsaG9zdDo4MDgwLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo= readmeEtag: '"9ac0ff5fdfaaafdf0069dbe61ab261ffe8b96c04"' readmeLastModified: Thu, 25 Jul 2024 22:43:27 GMT repositoryId: 666518593 description: API Rest with Apache Tomcat, Open Api Validate. created: '2023-07-14T18:20:21Z' updated: '2024-07-25T22:43:31Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: tinello logo: https://avatars.githubusercontent.com/u/38929644?v=4 license: Unlicense repoEtag: '"5ea226e8e43f7337f2729d2c931a056d41c1d58bba1c65d422513a0d294835e7"' repoLastModified: Thu, 25 Jul 2024 22:43:31 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/python-lapidary/lapidary-render v3: true id: 1557ede36cd84f0cf0f651b2bb4e4d62 repositoryMetadata: base64Readme: >- IyBMYXBpZGFyeSByZW5kZXIKClshWy5naXRodWIvd29ya2Zsb3dzL3Rlc3QueW1sXShodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWxhcGlkYXJ5L2xhcGlkYXJ5LXJlbmRlci9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWxhcGlkYXJ5L2xhcGlkYXJ5LXJlbmRlci9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbCkKCkxhcGlkYXJ5LXJlbmRlciBpcyBhIHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgUHl0aG9uIFdlYiBBUEkgY2xpZW50cyBmcm9tIE9wZW5BUEkgZG9jdW1lbnRzLgo= readmeEtag: '"60c470575c26ffe8b336ced5b271235941bb63b2"' readmeLastModified: Fri, 16 Aug 2024 21:13:32 GMT repositoryId: 584507821 description: Web API client generator created: '2023-01-02T19:09:02Z' updated: '2024-09-02T22:01:43Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: python-lapidary logo: https://avatars.githubusercontent.com/u/111730600?v=4 license: AGPL-3.0 repoEtag: '"8b89f37702f37188eddb522132bd924b346d66c581bba7ae92b4342df30155c1"' repoLastModified: Mon, 02 Sep 2024 22:01:43 GMT category: Parsers foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/wkarwacki/python-openapi-generator-rust v3: true v3_1: true id: 543ce5060a72d51fc2b5db044476e02f repositoryMetadata: base64Readme: >- PHA+CiAgPGI+UHl0aG9uIFNlcnZlciBPcGVuQVBJIEdlbmVyYXRvciwgUHl0aG9uIENsaWVudCBPcGVuQVBJIEdlbmVyYXRvciwgS290bGluIFNlcnZlciBPcGVuQVBJIEdlbmVyYXRvcjwvYj4KPC9wPgoKLS0tCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8Yj5Eb2N1bWVudGF0aW9uLCBzb3VyY2UgY29kZTogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3drYXJ3YWNraS9weXRob24tb3BlbmFwaS1nZW5lcmF0b3ItcnVzdCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS93a2Fyd2Fja2kvcHl0aG9uLW9wZW5hcGktZ2VuZXJhdG9yLXJ1c3Q8L2E+PC9iPgo8L3A+CgotLS0KIyBUcnVzdCBTcGVjCgpUcnVzdCBTcGVjIGlzIGEgd2ViIGludGVncmF0aW9uIHNwZWNpZmljYXRpb24gYW5kIGEgc2V0IG9mIGNvZGUgZ2VuZXJhdG9ycyBhaW1pbmcgdG8gYmUgYSBzdWJzdGl0dXRlIGZvciBPcGVuQVBJLiBJdCBwcm92aWRlcyBhIHVuaWZpZWQgd2F5IHRvIGRlc2NyaWJlIGRhdGEgdHJhbnNmZXIgaW50ZXJmYWNlcyBhbmQgZ2VuZXJhdGVzIG1vZGVybiwgdHlwZS1zYWZlIGNvZGUuCgojIyBUYWJsZSBvZiBDb250ZW50cwotIFtJIGp1c3Qgd2FudCB0byBnbHVlIG15IHNlcnZpY2VzIHRvZ2V0aGVyXSgjaS1qdXN0LXdhbnQtdG8tZ2x1ZS1teS1zZXJ2aWNlcy10b2dldGhlcikKLSBbU3BlY2lmaWNhdGlvbl0oI3NwZWNpZmljYXRpb24pCiAgLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFtDb21tb24gVXNlIENhc2VzXSgjY29tbW9uLXVzZS1jYXNlcykKLSBbQ29kZSBHZW5lcmF0aW9uXSgjY29kZS1nZW5lcmF0aW9uKQogIC0gW0dlbmVyYXRvciBPcHRpb25zXSgjZ2VuZXJhdG9yLW9wdGlvbnMpCiAgLSBbU3VwcG9ydGVkIEdlbmVyYXRvcnNdKCNzdXBwb3J0ZWQtZ2VuZXJhdG9ycykKICAgIC0gW0V4cGVyaW1lbnRhbCBHZW5lcmF0b3JzXSgjZXhwZXJpbWVudGFsLWdlbmVyYXRvcnMpCi0gW0NvbnZlcnNpb24gZnJvbSBPcGVuQVBJXSgjY29udmVyc2lvbi1mcm9tLW9wZW5hcGkpCi0gW0NvbnZlcnNpb24gdG8gT3BlbkFQSV0oI2NvbnZlcnNpb24tdG8tb3BlbmFwaSkKLSBbQnVpbGRpbmcgVHJ1c3QgQ0xJXSgjYnVpbGRpbmctdHJ1c3QtY2xpKQogIC0gW1dpdGggRG9ja2VyXSgjd2l0aC1kb2NrZXIpCiAgLSBbRnJvbSBTb3VyY2VdKCNmcm9tLXNvdXJjZSkKCiMjIEkganVzdCB3YW50IHRvIGdsdWUgbXkgc2VydmljZXMgdG9nZXRoZXIKSW5zdGFsbCBUcnVzdDoKYGBgc2hlbGwKJCBwaXAgaW5zdGFsbCB0cnVzdHNwZWNjbGkKYGBgClRoZW4sIHJ1bjoKYGBgc2hlbGwKJCB0cnVzdAoKVXNhZ2U6IHRydXN0IDxDT01NQU5EPgoKQ29tbWFuZHM6CiAgZnJvbS1vcGVuLWFwaSAgQ29udmVydCBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gdG8gYSBUcnVzdCBzcGVjaWZpY2F0aW9uLiBJbnRlZ3JhdGUgdGhpcyBpbnRvIHlvdXIgYnVpbGQgcHJvY2VzcyB0byB1dGlsaXplIFRydXN0IGNvZGUgZ2VuZXJhdG9ycwogIHRvLW9wZW4tYXBpICAgIENvbnZlcnQgYSBUcnVzdCBzcGVjaWZpY2F0aW9uIGJhY2sgdG8gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCB1c2VmdWwgd2hlbiBhIFRydXN0IGNvZGUgZ2VuZXJhdG9yIGlzIG5vdCBhdmFpbGFibGUgZm9yIHlvdXIgdGFyZ2V0IGxhbmd1YWdlCiAgZ2VuZXJhdGUgICAgICAgR2VuZXJhdGUgY29kZSBiYXNlZCBvbiBhIFRydXN0IHNwZWNpZmljYXRpb24KICBoZWxwICAgICAgICAgICBQcmludCB0aGlzIG1lc3NhZ2Ugb3IgdGhlIGhlbHAgb2YgdGhlIGdpdmVuIHN1YmNvbW1hbmQocykKCk9wdGlvbnM6CiAgLWgsIC0taGVscCAgUHJpbnQgaGVscApgYGAKCi0gSWYgeW91IGFscmVhZHkgaGF2ZSBhbiBPcGVuQVBJIHNwZWM6CiAgMS4gZmlyc3QgY29udmVydCBpdCB0byBUcnVzdCBzcGVjIHdpdGggYGZyb20tb3Blbi1hcGlgIGNvbW1hbmQKICAyLiBhbmQgdGhlbiBnZW5lcmF0ZSB0aGUgZ2x1ZSBjb2RlIHdpdGggYGdlbmVyYXRlYCBjb21tYW5kLgoKICA+IDpleGNsYW1hdGlvbjogTm90ZSB0aGF0IHlvdSBtYXkgZWFzaWx5IGF1dG9tYXRlIHRoZSB3aG9sZSBwcm9jZXNzIGNvbWJpbmluZyB0aGUgdHdvIHN0ZXBzIGFib3ZlLCBob3dldmVyIGl0IGlzIHJlY29tbWVuZGVkIHRvIG1ha2UgYSBtaWdyYXRpb24gb25jZSBhbmQgbGV2ZXJhZ2UgVHJ1c3Qgc3BlYydzIGV4cHJlc3NpdmVuZXNzIGluIGxvbmctdGVybS4KCi0gKipXaXRob3V0IGFuIE9wZW5BUEkgc3BlYzoqKgogIC0gU3RhcnQgZGlyZWN0bHkgd2l0aCBUcnVzdCBzcGVjLgoKLSAqKlRvIGNvbnRpbnVlIHVzaW5nIE9wZW5BUEkgZm9yIGNvZGUgZ2VuZXJhdGlvbjoqKgogIC0gVXNlIFRydXN0IHNwZWMgYXMgYW4gaW50ZXJtZWRpYXRlIGZvcm1hdCB3aXRoIHRoZSBgdG8tb3Blbi1hcGlgIGNvbW1hbmQuCgojIyBTcGVjaWZpY2F0aW9uClRydXN0IHNwZWNpZmljYXRpb24gZW5oYW5jZXMgY3VycmVudCBpbnRlZ3JhdGlvbiBzdGFuZGFyZHMgbGlrZSBbT3BlbkFQSV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pLiBLZXkgYmVuZWZpdHMgaW5jbHVkZToKLSAqKkNsZWFyIE5vdGF0aW9uKiogLSBTaW5nbGUgd2F5IHRvIG1vZGVsIGFuZCBpbnRlcnByZXQgYW4gQVBJLgotICoqR2VuZXJpYyBUeXBlcyoqIC0gQ3VzdG9taXphYmxlIHR5cGVzIHdpdGggcGFyYW1ldGVycyBmb3IgZGlmZmVyZW50IGNvbnRleHRzLgotICoqTWluaW1hbGlzdGljKiogLSBTaW1wbGUsIGVmZmljaWVudCBsYW5ndWFnZSB3aXRob3V0IHJlZHVuZGFudCBmZWF0dXJlcy4KLSAqKldlYiBTeXN0ZW0gSW50ZWdyYXRpb24gRm9jdXNlZCoqIC0gSWRlYWwgZm9yIHR5cGUtc2FmZSBzeXN0ZW0gaW50ZWdyYXRpb24uCi0gKipIaWdobHkgQ3VzdG9taXphYmxlKiogLSBFeHRlbnNpdmUgW2hhbmRsZWJhcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdW5uZzg3L2hhbmRsZWJhcnMtcnVzdCkgaGVscGVycyBmb3IgdGVtcGxhdGUgbW9kaWZpY2F0aW9uLgotICoqUHJvdG9jb2wtQWdub3N0aWMqKiAtIERlc2lnbmVkIGZvciBIVFRQIGJ1dCBhcHBsaWNhYmxlIHRvIGFueSBBUEkgdHlwZS4KCkl0IGFkZHJlc3NlcyBpbmhlcmVudCBPcGVuQVBJIGlzc3VlcyB3aXRoOgotICoqRW5jbG9zZWQgQWxnZWJyYWljIERhdGEgVHlwZXMqKiAtIEFsbCBzdWJ0eXBlcyBvZiBhbiBBRFQgYXJlIGdyb3VwZWQgaW4gYSBzaW5nbGUgYGFkdGAgbm9kZS4KCiMjIyBPdmVydmlldwpFeGFtcGxlcyBhbmQgbW9yZSB1c2FnZSBkZXRhaWxzIGNhbiBiZSBmb3VuZCBpbiBbdGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS93a2Fyd2Fja2kvcHl0aG9uLW9wZW5hcGktZ2VuZXJhdG9yLXJ1c3QvdHJlZS9tYXN0ZXIvc3JjL2xpYi90ZXN0KS4KCioqRGF0YSBUeXBlczoqKgotICoqU2ltcGxlIFR5cGVzOioqCiAgLSBgdHlwZTogYm9vbGAgLSBlcXVpdmFsZW50IHRvIE9wZW5BUEkgYHR5cGU6IGJvb2xlYW5gCiAgLSBgdHlwZTogaW50YCAtIGVxdWl2YWxlbnQgdG8gT3BlbkFQSSBgdHlwZTogaW50ZWdlcmAgd2l0aCBgZm9ybWF0OiBpbnQ2NGAKICAtIGB0eXBlOiBkZWNgIC0gZXF1aXZhbGVudCB0byBPcGVuQVBJIGB0eXBlOiBudW1iZXJgCiAgLSBgdHlwZTogc3RyYCAtIGVxdWl2YWxlbnQgdG8gT3BlbkFQSSBgdHlwZTogc3RyaW5nYAogIC0gYHR5cGU6IGVudW1gIC0gZXF1aXZhbGVudCB0byBPcGVuQVBJIGB0eXBlOiBzdHJpbmdgIHdpdGggYGVudW1gCi0gKipDb21wbGV4IFR5cGVzOioqCiAgLSBgdHlwZTogb2JqYCAtIGVxdWl2YWxlbnQgdG8gT3BlbkFQSSBgdHlwZTogb2JqZWN0YAogIC0gYHR5cGU6IHNlcWAgLSBlcXVpdmFsZW50IHRvIE9wZW5BUEkgYHR5cGU6IGFycmF5YAogIC0gYHR5cGU6IG1hcGAgLSBlcXVpdmFsZW50IHRvIE9wZW5BUEkgYHR5cGU6IG9iamVjdGAgd2l0aCBgYWRkaXRpb25hbFByb3BlcnRpZXNgCi0gKipTcGVjaWFsIFR5cGVzOioqCiAgLSBgdHlwZTogYWxpYXNgIC0gZXF1aXZhbGVudCB0byBPcGVuQVBJIGAkcmVmYAogIC0gYHR5cGU6IHN0cnVjdGAgLSBlcXVpdmFsZW50IHRvIE9wZW5BUEkgZW1wdHkgc2NoZW1hIChge31gKQogIC0gYHR5cGU6IGNvbnN0YCAtIGVxdWl2YWxlbnQgdG8gT3BlbkFQSSBgY29uc3RgCgojIyMgQ29tbW9uIFVzZSBDYXNlcwoKKipJbmNsdWRpbmcgVmFyaWFibGVzIGZyb20gT3RoZXIgVHlwZXM6KioKICBgYGB5YW1sCiAgUGFyZW50OgogICAgdHlwZTogb2JqCiAgICB2YXJzOgogICAgICBwYXJlbnRWYXI6CiAgICAgICAgdHlwZTogZGVjCiAgQW5vdGhlclBhcmVudDoKICAgIHR5cGU6IG9iagogICAgdmFyczoKICAgICAgYW5vdGhlclBhcmVudFZhcjoKICAgICAgICB0eXBlOiBib29sCiAgV2l0aFBhcmVudHNWYXJzOgogICAgdHlwZTogb2JqCiAgICBtaXg6CiAgICAgIC0gcGF0aDogImRlZnMuUGFyZW50IgogICAgICAtIHBhdGg6ICJkZWZzLkFub3RoZXJQYXJlbnQiCiAgICB2YXJzOgogICAgICBvd25WYXI6CiAgICAgICAgdHlwZTogaW50CiAgYGBgClJlc3VsdHMgaW46CiAgYGBganNvbgogIHsKICAgICJwYXJlbnRWYXIiOiAxLjAsCiAgICAiYW5vdGhlclBhcmVudFZhciI6IHRydWUsCiAgICAib3duVmFyIjogMQogIH0KICBgYGAKCioqQWxnZWJyYWljIERhdGEgVHlwZXMgKFVuaW9uIFR5cGVzKToqKgogIGBgYHlhbWwKICBBZHRUeXBlOgogICAgdHlwZTogb2JqCiAgICB2YXJzOiAKICAgICAgZGlzY3JpbWluYXRvclZhcjoKICAgICAgICB0eXBlOiBzdHIKICAgICAgc29tZU90aGVyVmFyOgogICAgICAgIHR5cGU6IGRlYwogICAgYWR0OgogICAgICB2YXI6IGRpc2NyaW1pbmF0b3JWYXIKICAgICAgbWFwOgogICAgICAgIGZpcnN0U3VidHlwZToKICAgICAgICAgIHZhcnM6CiAgICAgICAgICAgIGZpcnN0U3VidHlwZVZhcjoKICAgICAgICAgICAgICB0eXBlOiBpbnQKICAgICAgICBzZWNvbmRTdWJ0eXBlOgogICAgICAgICAgdmFyczoKICAgICAgICAgICAgc2Vjb25kU3VidHlwZVZhcjoKICAgICAgICAgICAgICB0eXBlOiBib29sCiAgYGBgCkludGVycHJldGVkIGFzOgogIGBgYGpzb24KICB7CiAgICAiZGlzY3JpbWluYXRvclZhciI6ICJmaXJzdFN1YnR5cGUiLAogICAgInNvbWVPdGhlclZhciI6IDEuMCwKICAgICJmaXJzdFN1YnR5cGVWYXIiOiAxCiAgfQogIGBgYAogIGBgYGpzb24KICB7CiAgICAiZGlzY3JpbWluYXRvclZhciI6ICJzZWNvbmRTdWJ0eXBlIiwKICAgICJzb21lT3RoZXJWYXIiOiAxLjAsCiAgICAic2Vjb25kU3VidHlwZVZhciI6IHRydWUKICB9CiAgYGBgCgoKKipHZW5lcmljIFR5cGVzOioqCiAgYGBgeWFtbAogIGRlZnM6CiAgICBTb21lTmFtZWRTdHJpbmc6CiAgICAgIHR5cGU6IHN0cgogICAgUGFyYW1ldGVyaXplZFR5cGU6CiAgICAgIHR5cGU6IG9iagogICAgICB2YXJzOgogICAgICAgIHZhck9mUGFyYW1BYmNUeXBlOgogICAgICAgICAgcGFyYW06IFBhcmFtQWJjICMgdG8gZGVjbGFyZSBhIGdlbmVyaWMgdHlwZSwgeW91IG5lZWQgdG8gc2ltcGx5IHVzZSBhICdwYXJhbScga2V5d29yZAogICAgICAgIHZhck9mUGFyYW1YeXpUeXBlOgogICAgICAgICAgcGFyYW06IFBhcmFtWHl6ICMgc2ltaWxhcmx5IHRvIHRoZSBhYm92ZSwgdGhpcyB0aW1lIHdpdGggYSBkaWZmZXJlbnQgbmFtZQogICAgICAgIGFub3RlclZhck9mUGFyYW1YeXpUeXBlOgogICAgICAgICAgcGFyYW06IFBhcmFtWHl6ICMgc2ltaWxhcmx5IHRvIHRoZSBhYm92ZSwgdGhpcyB0aW1lIHdpdGggYSBkaWZmZXJlbnQgbmFtZQogICAgU3VidHlwZU9mUGFyYW1ldGVyaXplZFR5cGU6CiAgICAgIHR5cGU6IG9iagogICAgICBleHQ6ICMgZXh0ZW5kaW5nIGEgZ2VuZXJpYyB0eXBlCiAgICAgICAgcGF0aDogJ2RlZnMuUGFyYW1ldGVyaXplZFR5cGUnCiAgICAgICAgYXJnczogIyB3aXRoIGJlbG93IHR5cGUtYXJndW1lbnRzCiAgICAgICAgICBQYXJhbUFiYzoKICAgICAgICAgICAgdHlwZTogYm9vbAogICAgICAgICAgUGFyYW1YeXo6CiAgICAgICAgICAgIHBhdGg6ICdkZWZzLlNvbWVUeXBlJwogIGBgYApFcXVpdmFsZW50IHRvOgogIGBgYGphdmEKICBpbnRlcmZhY2UgUGFyYW1ldGVyaXplZFR5cGU8UGFyYW1BYmMsIFBhcmFtWHl6PiB7IAogICAgUGFyYW1BYmMgdmFyT2ZQYXJhbUFiY1R5cGU7IAogICAgUGFyYW1YeXogdmFyT2ZQYXJhbVh5elR5cGU7IAogICAgUGFyYW1YeXogYW5vdGVyVmFyT2ZQYXJhbVh5elR5cGU7IAogIH0KICBpbnRlcmZhY2UgU3VidHlwZU9mUGFyYW1ldGVyaXplZFR5cGUgZXh0ZW5kcyBQYXJhbWV0ZXJpemVkVHlwZTxCb29sZWFuLCBTb21lVHlwZT4geyB9CiAgYGBgCgojIyBDb2RlIEdlbmVyYXRpb24KCmBgYHNoZWxsCiQgdHJ1c3QgZ2VuZXJhdGUgLWgKR2VuZXJhdGUgY29kZSBiYXNlZCBvbiBhIFRydXN0IHNwZWNpZmljYXRpb24KClVzYWdlOiB0cnVzdCBnZW5lcmF0ZSBbT1BUSU9OU10gPExBTkc+IDxST0xFPiA8SU5QVVQ+IDxPVVRQVVQ+CgpBcmd1bWVudHM6CiAgPExBTkc+ICAgIFNlbGVjdCB0aGUgdGFyZ2V0IHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciB0aGUgZ2VuZXJhdGVkIGNvZGUgW3Bvc3NpYmxlIHZhbHVlczoga290bGluLCBweXRob24sIHNjYWxhLCB0eXBlLXNjcmlwdF0KICA8Uk9MRT4gICAgU3BlY2lmeSB3aGV0aGVyIHRvIGdlbmVyYXRlIHNlcnZlciBvciBjbGllbnQgY29kZSBbcG9zc2libGUgdmFsdWVzOiBjbGllbnQsIHNlcnZlcl0KICA8SU5QVVQ+ICAgUGF0aCB0byB0aGUgVHJ1c3Qgc3BlY2lmaWNhdGlvbiBmaWxlCiAgPE9VVFBVVD4gIERpcmVjdG9yeSB3aGVyZSB0aGUgZ2VuZXJhdGVkIGNvZGUgd2lsbCBiZSBzYXZlZAoKT3B0aW9uczoKICAtYyA8Q09ORklHPiAgICAgICAgICAgICAgT3B0aW9uYWwgcGF0aCB0byBhIGdlbmVyYXRvciBjb25maWd1cmF0aW9uIGZpbGUuIFJlZmVyIHRvIHRoZSBUcnVzdCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzCiAgLXQgPFRFTVBMQVRFU19QQVRIPiAgICAgIE9wdGlvbmFsIHBhdGggdG8gYSBjdXN0b20gdGVtcGxhdGVzIGRpcmVjdG9yeS4gRm9yIGluc3RhbmNlLCB5b3UgY2FuIG92ZXJyaWRlIGFueSB0ZW1wbGF0ZSBmb3VuZCBhdCBodHRwczovL2dpdGh1Yi5jb20vd2thcndhY2tpL3B5dGhvbi1vcGVuYXBpLWdlbmVyYXRvci1ydXN0L3RyZWUvbWFzdGVyL3NyYy9saWIvZ2VuL3B5dGhvbi9zZXJ2ZXIvdGVtcGxhdGVzLCBob3dldmVyIHRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgZm9yIGFsbCBsYW5ndWFnZXMgYW5kIHJvbGVzCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgIFByaW50IGhlbHAKYGBgCgojIyMgR2VuZXJhdG9yIE9wdGlvbnMKWW91IGNhbiBjdXN0b21pemUgdGhlIGdlbmVyYXRvciBiZWhhdmlvciBieSBwYXNzaW5nIGEgcmVsZXZhbnQgYHltbGAgY29uZmlndXJhdGlvbiBmaWxlLiBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGF2YWlsYWJsZToKKiBgdHlwZV9tYXBwaW5nOiBkaWN0W3N0ciwgc3RyXWAgLSBNYXAgVHJ1c3QgU3BlYyB0eXBlIHRvIGFueSBwcm92aWRlZCB0eXBlIGF1dG9tYXRpY2FsbHkKKiBgbW9kdWxlOiBzdHJgIC0gU3BlY2lmeSB0aGUgbW9kdWxlIG5hbWUgZm9yIHRoZSBnZW5lcmF0ZWQgY29kZQoqIGBkdG9fbmFtZTogc3RyYCAtIFByb3ZpZGUgdGhlIGN1c3RvbSBIYW5kbGViYXJzIHRlbXBsYXRlIGZvciBuYW1pbmcgRFRPIGNsYXNzZXMsIGJ5IGRlZmF1bHQgaXQgaXMgYHt7dmFsfX1EdG9gCiogYGF1dG9faW1wbGVtZW50OiBib29sYCBUaGlzIG9wdGlvbiBpcyBhIGZ1bmRhbWVudGFsIHBhcnQgb2YgdGhlIFtUcnVzdCBTcGVjIGludGVncmF0aW9uIHRlc3RzIHN1aXRlXShodHRwczovL2dpdGh1Yi5jb20vd2thcndhY2tpL3B5dGhvbi1vcGVuYXBpLWdlbmVyYXRvci1ydXN0L2Jsb2IvbWFzdGVyL2RvX3Rlc3Quc2gjTDEzKS4KICAqIEZvciBzZXJ2ZXIgZ2VuZXJhdG9ycyAtIFByb3ZpZGVzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIGFsbCB0aGUgb3BlcmF0aW9ucwogICogRm9yIGNsaWVudCBnZW5lcmF0b3JzIC0gR2VuZXJhdGVzIHRlc3RzIHdpdGggYWxsIHJlcXVpcmVkIHBhcmFtcyB0aGF0IHZlcmlmeSBzZXJ2ZXIncyBjb3JyZWN0bmVzcyAKICAKCiMjIyBTdXBwb3J0ZWQgR2VuZXJhdG9yczoKCi0gPGI+UHl0aG9uIEhUVFAgU2VydmVyIChbZmFzdGFwaV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Zhc3RhcGkpKTwvYj4KLSA8Yj5QeXRob24gSFRUUCBDbGllbnQgKFtodHRweF0oaHR0cHM6Ly9naXRodWIuY29tL2VuY29kZS9odHRweCkpPC9iPgoKIyMjIyBFeHBlcmltZW50YWwgR2VuZXJhdG9yczoKPiA6ZXhjbGFtYXRpb246IE5vdCBmdWxseSBpbXBsZW1lbnRlZC4gVXNlIGF0IHlvdXIgb3duIHJpc2suCgotIEtvdGxpbiBIVFRQIFNlcnZlciAoW3NwcmluZ10oaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZy1wcm9qZWN0cy9zcHJpbmctZnJhbWV3b3JrKSkKLSBTY2FsYSBIVFRQIFNlcnZlciAoW2Nhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb20tbGloYW95aS9jYXNrKSkKCiMjIENvbnZlcnNpb24gZnJvbSBPcGVuQVBJCmBgYHNoZWxsCiQgdHJ1c3QgZnJvbS1vcGVuLWFwaSAtaApDb252ZXJ0IGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiB0byBhIFRydXN0IHNwZWNpZmljYXRpb24uIEludGVncmF0ZSB0aGlzIGludG8geW91ciBidWlsZCBwcm9jZXNzIHRvIHV0aWxpemUgVHJ1c3QncyBjb2RlIGdlbmVyYXRvcnMKClVzYWdlOiB0cnVzdCBmcm9tLW9wZW4tYXBpIFtPUFRJT05TXSA8SU5QVVQ+IDxPVVRQVVQ+CgpBcmd1bWVudHM6CiAgPElOUFVUPiAgIFBhdGggdG8gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmaWxlCiAgPE9VVFBVVD4gIERpcmVjdG9yeSB3aGVyZSB0aGUgb3V0cHV0IFRydXN0IHNwZWNpZmljYXRpb24gd2lsbCBiZSBzYXZlZAoKT3B0aW9uczoKICAtbCA8TEFZT1VUPiAgICAgIFNwZWNpZnkgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29udmVydGVkIFRydXN0IHNwZWNpZmljYXRpb24gW2RlZmF1bHQ6IGRlZmF1bHRdIFtwb3NzaWJsZSB2YWx1ZXM6IGRlZmF1bHQsIHRhZ10KICAtaCwgLS1oZWxwICAgICAgIFByaW50IGhlbHAgKHNlZSBtb3JlIHdpdGggJy0taGVscCcpCgpgYGAKKiBDb250cm9sIHRoZSBsYXlvdXQgb2YgdGhlIGdlbmVyYXRlZCBUcnVzdCBzcGVjIHdpdGggdGhlIGAtbGAgb3B0aW9uLiBGb3IgaW5zdGFuY2UsIHNldHRpbmcgaXQgdG8gYHRhZ2Agb3JnYW5pemVzIHRoZSBUcnVzdCBzcGVjIGJ5IE9wZW5BUEkgdGFncywgYXMgc2hvd24gaW4gdGhpcyBbZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL3drYXJ3YWNraS9weXRob24tb3BlbmFwaS1nZW5lcmF0b3ItcnVzdC9ibG9iL21hc3Rlci90ZXN0L2ludGVncmF0aW9uL3NwZWNzL29wZW5hcGlfZmFzdGFwaS9hcGkueW1sI0w5KS4KCiMjIENvbnZlcnNpb24gdG8gT3BlbkFQSQoKYGBgc2hlbGwKJCB0cnVzdCB0by1vcGVuLWFwaSAtaApDb252ZXJ0IGEgVHJ1c3Qgc3BlY2lmaWNhdGlvbiBiYWNrIHRvIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiwgdXNlZnVsIHdoZW4gYSBUcnVzdCBjb2RlIGdlbmVyYXRvciBpcyBub3QgYXZhaWxhYmxlIGZvciB5b3VyIHRhcmdldCBsYW5ndWFnZQoKVXNhZ2U6IHRydXN0IHRvLW9wZW4tYXBpIDxJTlBVVD4KCkFyZ3VtZW50czoKICA8SU5QVVQ+ICBQYXRoIHRvIHRoZSBUcnVzdCBzcGVjaWZpY2F0aW9uIGZpbGUKCk9wdGlvbnM6CiAgLWgsIC0taGVscCAgUHJpbnQgaGVscApgYGAKCiMjIEJ1aWxkaW5nIFRydXN0IENsaQoKIyMjIFdpdGggRG9ja2VyClByZXJlcXVpc2l0ZXM6Ci0gW0RvY2tlcl0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL2luc3RhbGwvKQogIGBgYHNoZWxsCiAgJCAuL2RvY2tlci9idWlsZC5zaAogICQgZG9ja2VyIHJ1biB0cnVzdAogIGBgYAoKIyMjIEZyb20gU291cmNlClByZXJlcXVpc2l0ZXM6Ci0gW1J1c3RdKGh0dHBzOi8vd3d3LnJ1c3QtbGFuZy5vcmcvdG9vbHMvaW5zdGFsbCkKICBgYGBzaGVsbAogICQgY2FyZ28gcnVuIHRydXN0CiAgYGBgCg== readmeEtag: '"a0162a1962d47e728df3e4650d2e3ce011a31815"' readmeLastModified: Thu, 29 Aug 2024 18:38:20 GMT repositoryId: 834278095 description: >- Typesafe Python Client and Server OpenAPI generator written in Rust / Trust created: '2024-07-26T20:36:55Z' updated: '2024-08-30T18:49:04Z' language: Rust archived: false stars: 1 watchers: 1 forks: 0 owner: wkarwacki logo: https://avatars.githubusercontent.com/u/79852127?v=4 license: Apache-2.0 repoEtag: '"37332895504fa93c68d2d49d977fbccbff72e7cb9f9a66ead7be2fef4d865675"' repoLastModified: Fri, 30 Aug 2024 18:49:04 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/wkarwacki/trust - source: openapi3 tags repository: https://github.com/worksapplications/swagger-devkit v3: true repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyLWRldmtpdAoKWyFbR3JlZW5rZWVwZXIgYmFkZ2VdKGh0dHBzOi8vYmFkZ2VzLmdyZWVua2VlcGVyLmlvL1dvcmtzQXBwbGljYXRpb25zL3N3YWdnZXItZGV2a2l0LnN2ZyldKGh0dHBzOi8vZ3JlZW5rZWVwZXIuaW8vKSBbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL3N3YWdnZXItZGV2a2l0LnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9zd2FnZ2VyLWRldmtpdCkgWyFbQ2lyY2xlQ0ldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL1dvcmtzQXBwbGljYXRpb25zL3N3YWdnZXItZGV2a2l0LnN2Zz9zdHlsZT1zdmcpXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9Xb3Jrc0FwcGxpY2F0aW9ucy9zd2FnZ2VyLWRldmtpdCkKCldyaXRlIGEgc3dhZ2dlciBkb2N1bWVudCB3aXRoIFR5cGVTY3JpcHQvTm9kZS5qcy4KCiMjIEZlYXR1cmVzCgotIFN1cHBvcnRzIE9wZW5BUEkgMyAobm90IGNvbXBsZXRlZCB5ZXQpCi0gV2VsbC10eXBlZCBsaWJyYXJ5IHdpdGggY29tcGxldGlvbnMKLSBEZWNsYXJhdGl2ZSBzdHlsZSwgaW5zcGlyZWQgYnkgW2F3cy1jZGtdKGh0dHBzOi8vZ2l0aHViLmNvbS9hd3NsYWJzL2F3cy1jZGspCi0gRXh0ZW5kIHdpdGggY3VzdG9tIHBsdWdpbnMKCiMjIEV4YW1wbGUKCi0gW3BldHN0b3JlIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9Xb3Jrc0FwcGxpY2F0aW9ucy9zd2FnZ2VyLWRldmtpdC9ibG9iL21hc3Rlci9leGFtcGxlL2luZGV4LmpzKQoKUnVuOiBgbm9kZSBpbmRleC5qc2Agb3IgYG5vZGUgaW5kZXguanMgLS1oZWxwYAoKIyMgQ29weXJpZ2h0CgpDb3B5cmlnaHQgMjAxOSAmY29weTsgV29ya3MgQXBwbGljYXRpb25zIENvLixMdGQuCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgpZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4K readmeEtag: '"e1cc3b0edd5c82f514a458793b97a9af2ff08737"' readmeLastModified: Fri, 26 Jul 2019 16:37:54 GMT repositoryId: 180304121 description: Write a swagger document with TypeScript/Node.js. created: '2019-04-09T06:54:27Z' updated: '2023-01-27T20:28:50Z' language: TypeScript archived: true stars: 1 watchers: 4 forks: 2 owner: WorksApplications logo: https://avatars.githubusercontent.com/u/1889132?v=4 license: Apache-2.0 repoEtag: '"ec418736cbf1356a332ab3fda7fb390c876283b2a2e8b9c65f6a33d47c28a727"' repoLastModified: Fri, 27 Jan 2023 20:28:50 GMT foundInMaster: true category: Server id: 53b3055bf3be9288026a4b57925cf979 - source: openapi3 tags repository: https://github.com/gertd/scp-cmd v3: true repositoryMetadata: base64Readme: >- IyBzY3AtY21kCgpTcGx1bmsgQ2xvdWQgUGxhdGZvcm0gQ29tbWFuZCBFeGVjdXRpb24gVG9vbAo= readmeEtag: '"6ae6ad7b748e447e00fc5713a0a329f46b90c323"' readmeLastModified: Mon, 23 Mar 2020 22:46:51 GMT repositoryId: 208338845 description: Splunk Cloud Platform Command Line created: '2019-09-13T20:10:08Z' updated: '2020-03-23T22:47:01Z' language: Go archived: false stars: 1 watchers: 1 forks: 0 owner: gertd logo: https://avatars.githubusercontent.com/u/1533850?v=4 license: Apache-2.0 repoEtag: '"9156fce004dad937b4ef08a019e556f5f37fc32dd06b2cbe6d27d7e625ace8a0"' repoLastModified: Mon, 23 Mar 2020 22:47:01 GMT foundInMaster: true category: - Description Validators - Server id: 9642556fb5d3a37336162b012eb45e5b - source: openapi3 tags repository: https://github.com/wdes/typescript-openapi-builder v3: true repositoryMetadata: base64Readme: >- IyBUeXBlU2NyaXB0IE9wZW5BUEkgYnVpbGRlcgoKWyFbQWN0aW9ucyBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS93ZGVzL3R5cGVzY3JpcHQtb3BlbmFwaS1idWlsZGVyL3dvcmtmbG93cy9SdW4lMjB0ZXN0cy9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vd2Rlcy90eXBlc2NyaXB0LW9wZW5hcGktYnVpbGRlci9hY3Rpb25zKQpbIVtBY3Rpb25zIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL3dkZXMvdHlwZXNjcmlwdC1vcGVuYXBpLWJ1aWxkZXIvd29ya2Zsb3dzL0xpbnQlMjBhbmQlMjBidWlsZC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vd2Rlcy90eXBlc2NyaXB0LW9wZW5hcGktYnVpbGRlci9hY3Rpb25zKQpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvd2Rlcy90eXBlc2NyaXB0LW9wZW5hcGktYnVpbGRlci9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC93ZGVzL3R5cGVzY3JpcHQtb3BlbmFwaS1idWlsZGVyKQpbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL3R5cGVzY3JpcHQtb3BlbmFwaS1idWlsZGVyLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy90eXBlc2NyaXB0LW9wZW5hcGktYnVpbGRlcikKCkdlbmVyYXRlIE9wZW5BUEkgc3BlYyB1c2luZyBUeXBlU2NyaXB0IGFubm90YXRpb25zCgpDbGVhbiwgZmFzdCwgc2ltcGxlLgoKIyMgVE9ETwoKLSBbIF0gSW1wcm92ZSBSRUFETUUubWQgdG8gc3RhdGUgY29kZSBpbXBvcnRhdGlvbgotIFsgXSBBZGQgbW9yZSB0ZXN0cwotIFsgXSBIYXZlIDEwMCUgY292ZXJhZ2UKCiMjIEtub3duIGJ1Z3MKCi0gW3hdIERvIE5PVCB1c2UgYWxpYXNlcyBmb3IgaW1wb3J0cyBsaWtlIGBpbXBvcnQgeyBQb3N0IGFzIFBvc3RPQSB9YCBpdCBicmVha3MgcGFyc2luZwoK readmeEtag: '"300805019b27ea637d61521f71f349b066be8688"' readmeLastModified: Mon, 20 Jul 2020 15:28:52 GMT repositoryId: 262324949 description: 'Generate OpenAPI spec using TypeScript annotations ' created: '2020-05-08T13:02:29Z' updated: '2023-01-28T13:00:16Z' language: TypeScript archived: true stars: 1 watchers: 2 forks: 0 owner: wdes logo: https://avatars.githubusercontent.com/u/25723041?v=4 license: MPL-2.0 repoEtag: '"f7b9b8ea66c7cc6a1aa268119b7bbeada7549a5684f3e552ef94d9532f9a5898"' repoLastModified: Sat, 28 Jan 2023 13:00:16 GMT foundInMaster: true category: SDK id: 2cf245cb56941d7150f672e0c9a428c9 - source: openapi3 tags repository: https://github.com/freight-trust/open-edi v3: true repositoryMetadata: repositoryId: 297545146 description: >- OAS3 EDI API for Translation and Validation Transactional Service w/ Attestation & Non-Repudiation created: '2020-09-22T05:30:20Z' updated: '2020-11-04T15:00:24Z' language: HTML archived: false stars: 1 watchers: 2 forks: 0 owner: freight-trust logo: https://avatars.githubusercontent.com/u/57275623?v=4 repoEtag: '"b06c6f600fc28681c689fc796f936eacc14ccc31004066996d269102a83b03ea"' repoLastModified: Wed, 04 Nov 2020 15:00:24 GMT foundInMaster: true id: b622714fa3da732c6dd0a82371f08ea0 - source: openapi3 tags repository: https://github.com/sellix/developers-api-specification v3: true repositoryMetadata: base64Readme: >- IyBbZGV2LW9wZW5hcGkuc2VsbGl4LmlvXShodHRwczovL2Rldi1vcGVuYXBpLnNlbGxpeC5pbykKCkRldmVsb3BlcnMgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIHVzZWQgYnkgb3VyIFNES3Mu readmeEtag: '"17a4472e322e54c5a37739ec6617800e5ea897d8"' readmeLastModified: Sun, 13 Feb 2022 09:58:25 GMT repositoryId: 443609714 description: >- OpenApi v3.0.0 schema for the Sellix Developers API. Contains examples, payloads and specifications on requests and responses. created: '2022-01-01T19:33:11Z' updated: '2023-02-18T05:55:46Z' language: null archived: false stars: 1 watchers: 4 forks: 0 owner: Sellix logo: https://avatars.githubusercontent.com/u/66204773?v=4 repoEtag: '"6b96c2f31db92408f8c86d5d1f5f387067c3d24f98f12fc9ed0d8ec81440e432"' repoLastModified: Sat, 18 Feb 2023 05:55:46 GMT foundInMaster: true category: SDK id: 32ab75082c937ea942ad563a87db51a0 - source: openapi3 tags repository: https://github.com/evanspauliuts/microservice-apis-coffeemesh v3: true id: 873ef7fa45e7f7e0f95052d7fe8c921c repositoryMetadata: base64Readme: >- IyBNaWNyb3NlcnZpY2UgYXBpcyBDb2ZmZWVtZXNoClRoaXMgYXBpIHJlc3RmdWwgYXBwbGljYXRpb24gY29mZmVlbWVzaCB1c2UgRmFzdEFwaSwgRmxhc2stc21vcmVzdCwgQ29kZSByZXBvc2l0b3J5IGFuZCBzZXJ2aWNlcwo= readmeEtag: '"56056ea0cd9ef9af4620f3b8c191dce663a527af"' readmeLastModified: Thu, 23 Feb 2023 18:05:27 GMT repositoryId: 605451015 description: >- This api restful application coffeemesh use FastApi, Flask-smorest, Code repository and services created: '2023-02-23T07:17:56Z' updated: '2023-07-28T06:18:31Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: EvansPauliuts logo: https://avatars.githubusercontent.com/u/15975585?v=4 repoEtag: '"6c4e515cc0fd302a362658cc7c3fc40d03d341937ae1ca774be9e8220cf8705c"' repoLastModified: Fri, 28 Jul 2023 06:18:31 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/cedn/hangman v3: true repositoryMetadata: base64Readme: >- IyBIYW5nbWFuClRoaXMgcHJvamVjdCBpcyBhIFJlc3QgQVBJIHRvIHBsYXkgaGFuZ21hbi4gVGhpcyBjb250ZXh0IG11c3QgYWxsb3cgbWUgdG8gdHJ5IHRvIHJlYWxpemUgYSBzaWRlIHByb2plY3QgYnkgdXNpbmcgdGhlIGNsZWFuIGFyY2hpdGVjdHVyZSwgdGhlIGNvbnRyYWN0IGZpcnN0IGRldmVsb3BtZW50IGFuZCBUREQgd2l0aCAxMDAlIGNvZGUgY292ZXJhZ2UuIEl0J3MgYSBhbWJpdGlvdXMgdGFyZ2V0IGJ1dCBJIGxpa2UgdG8gdGhpbmssIGl0J3MgYSBzdWNjZXNzIDopCgojIyBUYWJsZSBvZiBjb250ZW50CjEuIFtDbGVhbiBBcmNoaXRlY3R1cmVdKCNjbGVhbi1hcmNoaXRlY3RpcmUpCjEuIFtTb21lIFdvcmQgYWJvdXQgUHJlc2VudGVyXSgjc29tZS13b3JkLWFib3V0LXByZXNlbnRlcikKMS4gW0ltcGxlbWVudGF0aW9uIHdpdGggU3ByaW5nIEJvb3RdKCNpbXBsZW1lbnRhdGlvbi13aXRoLXNwcmluZy1ib290KQoxLiBbQ29udHJhY3QgRmlyc3QgRGV2ZWxvcG1lbnRdKCNjb250cmFjdC1maXJzdC1kZXZlbG9wbWVudCkKMS4gW1RERF0oI3RkZCkKMS4gW0NvZGUgQ292ZXJhZ2VdKCNjb2RlLWNvdmVyYWdlKQoxLiBbSW5zdGFsbCwgYnVpbGQgYW5kIHJ1bl0oI2luc3RhbGwtYnVpbGQtcnVuKQoxLiBbTGlua3NdKCNsaW5rcykKMS4gW1N0YXR1c10oI3N0YXR1cykKCjxhIG5hbWU9ImNsZWFuLWFyY2l0ZWN0dXJlIj48L2E+CiMjIENsZWFuIEFyY2hpdGVjdHVyZQoKVGhlIENsZWFuIEFyY2hpdGVjdHVyZSBpcyBkZWZpbmVkIGJ5IFJvYmVydCBDLiBNYXJ0aW4gKGFrYSBVbmNsZSBCb2IpIGFuZCBJIGFkdmlzZSB5b3UgdG8gcmVhZCBoaXMgYmxvZyBhcnRpY2xlIGFib3V0IGl0OiBodHRwczovL2Jsb2cuY2xlYW5jb2Rlci5jb20vdW5jbGUtYm9iLzIwMTIvMDgvMTMvdGhlLWNsZWFuLWFyY2hpdGVjdHVyZS5odG1sLiBNeSBpbXBsZW1lbnRhdGlvbiBtb2RlbGl6ZXMgdGhlIGNvbnRyb2xsZXIgYW5kIHRoZSBwcmVzZW50ZXIgYXMgMiBkaWZmZXJlbnRzIGNsYXNzZXMgb3V0c2lkZSBvZiBTcHJpbmcgQm9vdCBmcmFtZXdvcmsgY2xhc3Nlcy4gSW4gdGhlIGV4YW1wbGVzLCB0aGF0IHdlIGNvdWxkIGZpbmQsIG1vZGVsaXplcyB0aGUgcHJlc2VudGVyIGFzIHRoZSByZXR1cm4gdHlwZSBvZiB0aGUgY29udHJvbGxlciBjYWxsLiBUaGlzIGlzIGEgbWlzdGFrZSBhbmQgSSBhZHZpY2UgeW91IHRvIHJlYWQgdGhpcyBkZXRhaWxlZCBleHBsaWNhdGlvIGJ5IEplcmVtaWFoIEZsYWdhOiBodHRwczovL3NvZnR3YXJlZW5naW5lZXJpbmcuc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzM1NzA1Mi9jbGVhbi1hcmNoaXRlY3R1cmUtdXNlLWNhc2UtY29udGFpbmluZy10aGUtcHJlc2VudGVyLW9yLXJldHVybmluZy1kYXRhLiBBbm90aGVyIG1pc3Rha2UgaXMgdG8gYmVsaWV2ZSB0aGF0IHRoZSBjb250cm9sbGVyIGlzIGEgZnJhbWV3b3JrICdjb250cm9sbGVyJyBjbGFzcyBsaWtlIGluIGFsbCBNVkMgZnJhbWV3b3JrLiBBbm90aGVyIGFydGljbGUsIGJ5IFRvYmlhcyBTdHJhbmRiZXJnLCB0byB1bmRlcnN0YW5kIHRoaXMgY29udHJvbGxlciBjb25mdXNpb246IGh0dHBzOi8vYWRldmVsb3BlcnNkaXNjb3Vyc2UuYmxvZ3Nwb3QuY29tLzIwMjAvMDYvY2xlYW4tYXJjaGl0ZWN0dXJlLWRlbXlzdGlmaWVkLmh0bWwuCgo8YSBuYW1lPSJzb21lLXdvcmQtYWJvdXQtcHJlc2VudGVyIj48L2E+CiMjIyBTb21lIHdvcmRzIGFib3V0IFByZXNlbnRlcgpVc2UgYSBwcmVzZW50ZXIgYXMgY2xhc3MgaW5zdGVhZCBvZiBhIHJldHVybiB2YWx1ZSBmcm9tIGNvbnRyb2xsZXIgY2FsbHMgYWxsb3dzIHRvIGhhdmUgbm9uIGhvbW9nZW5lb3VzIHJldHVybnMuIEluIHRoZSBjYXNlIG9mIGEgbGV0dGVyIHByb3Bvc2FsLCBpbiB0aGUgaGFuZ21hbiBnYW1lLCB0aGUgcmVzdWx0IGNhbiBiZSBhIGxldHRlciBmb3VuZCwgYSB3cm9uZyBsZXR0ZXIsIHRoZSB3b3JkIHRvIGd1ZXNzIGRpc2NvdmVyZWQgb3IgYSBnYW1lIG92ZXIuIEhhdmluZyBhIGhvbW9nZW5lb3VzIHR5cGUgYXMgYSByZXR1cm4gdmFsdWUgdGhhdCBjb3ZlcnMgYWxsIG9mIHRoZXNlIHBvc3NpYmlsaXRpZXMgaXMgb2J2aW91c2x5IGRpZmZpY3VsdC4gQW5kIHRoaXMgdHlwZSBtYXkgYmUgY29tcGxleCBhbmQgbm90IHJlc3BlY3QgdGhlIFNPTElEIHByaW5jaXBsZXMuIFRoZSBjYXNlIG9mIHRoZSByZXN1bHQgb2YgdGhlIHByb3Bvc2VkIGxldHRlciBjYW4gYmUgY29uc2lkZXJlZCBhcyBvbmUgZXZlbnQgYW1vbmcgc2V2ZXJhbCBwb3NzaWJsZS4gVGhlIHVzZSBjYXNlIGNhbGxzIHRoZSBwcmVzZW50ZXIgYnkgdXNpbmcgdGhlIHJpZ2h0IG1ldGhvZCB0aGF0IG1hdGNoIHRoZSByaWdodCBldmVudC4KCl9UaGUgJ291dHB1dCBib3VuZGFyeScgb2YgbGV0dGVyIHByb3Bvc2FsIHRoYXQgdGhlIHByZXNlbnRlciBtdXN0IGltcGxlbWVudDpfCmBgYGphdmEKcHVibGljIGludGVyZmFjZSBMZXR0ZXJQcm9wb3NhbE91dHB1dEJvdW5kYXJ5IHsKCXZvaWQgZ2FtZUluUHJvZ3Jlc3MoUHJvZ3Jlc3NpbmdHYW1lIGxldHRlclByb3Bvc2FsUmVzdWx0KTsKCXZvaWQgbG9zdEdhbWUoTG9zdEdhbWUgbG9zdEdhbWUpOwoJdm9pZCB3b25HYW1lKFdvbkdhbWUgd29uR2FtZSk7Cgl2b2lkIGdhbWVJc092ZXIoR2FtZU92ZXIgZ2FtZU92ZXIpOwp9CmBgYAo8YSBuYW1lPSJpbXBsZW1lbnRhdGlvbi13aXRoLXNwcmluZy1ib290Ij48L2E+CiMjIyBJbXBsZW1lbnRhdGlvbiB3aXRoIFNwcmluZyBCb290CkNvbnRyb2xsZXIgYW5kIHByZXNlbnRlciBhcmUgYWRhcHRlciBjbGFzc2VzLiBDb250cm9sbGVyIGNhbGxzIHRoZSBpbnRlcmFjdG9yICgndXNlY2FzZScgaW4gbXkgcHJvamVjdCdzIG5vbWVuY2xhdHVyZSkgdGhyb3VnaCB0aGUgSW5wdXRCb3VuZGFyeSBpbnRlcmZhY2UuIFVzZWNhc2UgY2FsbHMgdGhlIHByZXNlbnRlciB0aHJvdWdoIHRoZSBPdXRwdXRCb3VuZGFyeS4gSXQgcHJvdmlkZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJvY2Vzc2luZyB0byB0aGUgUHJlc2VudGVyLiBUaGUgcHJlc2VudGVyIHRyYW5zZm9ybXMgdGhlIHJlc3VsdCBpbnRvIGEgRFRPLiBGaW5hbGx5LCB0aGUgUmVzdCBjb250cm9sbGVyIGNhbGxzIHRoZSBjb250cm9sbGVyIHRvIHByb2Nlc3MgdGhlIGFjdGlvbiBhbmQgdGhlbiByZWFkcyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgcHJlc2VudGVyLgohW0ltcGxlbWVudGF0aW9uIGRpYWdyYW1dKGltYWdlcy9hZGFwdGVycy11c2FnZS5wbmcpCgpUaGUgcHJlc2VudGVyIGlzIHN0YXRlZnVsIGJlY2F1c2UgaXQgc3RvcmVzIHRoZSBEVE8gYnV0IHRoZSBSZXN0IENvbnRyb2xsZXIgaXMgc3RhdGVsZXNzLiBJIGNob29zZSB0byBwcm92aWRlIGNvbnRyb2xsZXIgYW5kIHByZXNlbnRlciBhdCB0aGUgaW5zdGFudGlhdGlvbiBvZiB0aGUgUmVzdCBjb250cm9sbGVyLiBKdXN0IGFubm90YXRlIHRoZSBwcmVzZW50ZXIgd2l0aCBgQFJlcXVlc3RTY29wZWAgYWxsb3dzIHRvIHNvbHZlIHRoaXMgcHJvYmxlbS4KCl9FeGFtcGxlIGZyb20gW2NuYS5hcHBzLmhhbmdtYW4udGVjaC5BcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9DZWROL2hhbmdtYW4vYmxvYi9mMTgwZDYzMGIxYThlNmU2YTAzN2M2YTlkMjk1ZmVmNzI4NTUyNzcxL2hhbmdtYW4tYXBpL3NyYy9tYWluL2phdmEvY25hL2FwcHMvaGFuZ21hbi90ZWNoL0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbi5qYXZhI0w0Mi1MNDYpXzoKYGBgamF2YQpAQmVhbgpAUmVxdWVzdFNjb3BlCnB1YmxpYyBMZXR0ZXJQcm9wb3NlZFByZXNlbnRlciBnZXRMZXR0ZXJQcm9wb3NhbE91dHB1dEJvdW5kYXJ5KCkgewogIHJldHVybiBuZXcgTGV0dGVyUHJvcG9zZWRQcmVzZW50ZXIoKTsKfQpgYGAKPGEgbmFtZT0iY29udHJhY3QtZmlyc3QtZGV2ZWxvcG1lbnQiPgojIyBDb250cmFjdCBGaXJzdCBEZXZlbG9wbWVudApDb250cmFjdCBGaXJzdCBEZXZlbG9wbWVudCBpcyBhYm91dCBkZWZpbmluZyB0aGUgY29udHJhY3Qgb2YgYW4gQVBJIGJlZm9yZSBzdGFydCB0byBpbXBsZW1lbnQgaXQuIFVzaW5nIGNvZGUgZ2VuZXJhdGlvbiBmb3Igc2VydmVyIGFuZCBjbGllbnRzIGZyb20gdGhlIGNvbnRyYWN0IGFsbG93cyBndWFyYW50ZWVzIHRoZXkgYXJlIGFsaWduZWQuIHdlIGNhbiBhbHNvIG1vY2sgdGhlIEFQSSB2ZXJ5IGVhc2lseSBkdXJpbmcgaXRzIGRldmVsb3BtZW50LgoKSSB1c2UgW09wZW5BUEkgMy4wLjFdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMSkgdG8gZGVzY3JpYmUgdGhlIGNvbnRyYWN0IG9mIHRoZSBIYW5nbWFuIEFQSSBpbiBhIGRlZGljYXRlZCBNYXZlbiBtb2R1bGUgbmFtZWQgJ3NwZWNpZmljYXRpb25zJy4gVGhlICdvcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4nIGFsbG93cyB0byBnZW5lcmF0ZSBjb2RlLiBJIHdhbnQgdG8gZ2VuZXJhdGUgb25seSBpbnRlcmZhY2VzIGZvciBzZXJ2aWNlIHNpZGUgYW5kIGNoYW5nZSBzb21lIHBhY2thZ2VzIG5hbWUuCgpfT3BlbmFwaSBnZW5lcmF0b3IgbWF2ZW4gcGx1Z2luIGNvbmZpZ3VyYXRpb24gZm9yIFNwcmluZyBzZXJ2ZXJfOgpgYGB4bWwKPGJ1aWxkPgogIDxwbHVnaW5zPgogICAgPHBsdWdpbj4KICAgICAgPGdyb3VwSWQ+b3JnLm9wZW5hcGl0b29sczwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgogICAgICA8IS0tIFJFTEVBU0VfVkVSU0lPTiAtLT4KICAgICAgPHZlcnNpb24+NS4xLjE8L3ZlcnNpb24+CiAgICAgIDwhLS0gL1JFTEVBU0VfVkVSU0lPTiAtLT4KICAgICAgPGV4ZWN1dGlvbnM+CiAgICAgICAgPGV4ZWN1dGlvbj4KICAgICAgICAgIDxnb2Fscz4KICAgICAgICAgICAgPGdvYWw+Z2VuZXJhdGU8L2dvYWw+CiAgICAgICAgICA8L2dvYWxzPgogICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CiAgICAgICAgICAgIDxpbnB1dFNwZWM+JHtwcm9qZWN0LmJhc2VkaXJ9L3NyYy9tYWluL3Jlc291cmNlcy9oYW5nbWFuLW9wZW5hcGkueWFtbDwvaW5wdXRTcGVjPgogICAgICAgICAgICA8Z2VuZXJhdG9yTmFtZT5zcHJpbmc8L2dlbmVyYXRvck5hbWU+CiAgICAgICAgICAgIDxjb25maWdPcHRpb25zPgogICAgICAgICAgICAgIDxpbnRlcmZhY2VPbmx5PnRydWU8L2ludGVyZmFjZU9ubHk+CiAgICAgICAgICAgICAgPGJhc2VQYWNrYWdlPmNuYS5hcHBzLmhhbmdtYW4uYXBpPC9iYXNlUGFja2FnZT4KICAgICAgICAgICAgICA8YXBpUGFja2FnZT5jbmEuYXBwcy5oYW5nbWFuLmFwaTwvYXBpUGFja2FnZT4KICAgICAgICAgICAgICA8bW9kZWxQYWNrYWdlPmNuYS5hcHBzLmhhbmdtYW4uYXBpPC9tb2RlbFBhY2thZ2U+CiAgICAgICAgICAgIDwvY29uZmlnT3B0aW9ucz4KICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KICAgICAgICA8L2V4ZWN1dGlvbj4KICAgICAgPC9leGVjdXRpb25zPgogICAgPC9wbHVnaW4+CiAgPC9wbHVnaW5zPgo8L2J1aWxkPgpgYGAKCkkgdXNlIFtSYW5kb20gV29yZHMgQVBJXShodHRwczovL2dpdGh1Yi5jb20vbWNuYXZlZW4vUmFuZG9tLVdvcmRzLUFQSSkgdG8gZ2VuZXJhdGUgd29yZHMgdG8gZ3Vlc3MuIEkgd3JpdGUgdGhlIGNvbnRyYWN0IG9mIHRoZSBvcGVyYXRpb24gY2FsbCBhbmQgZ2VuZXJhdGUgdGhlIGNsaWVudCBzaWRlIGluIG5hdGl2ZSBKYXZhIGJ5IHVzaW5nICdvcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4nCgpfT3BlbmFwaSBnZW5lcmF0b3IgbWF2ZW4gcGx1Z2luIGNvbmZpZ3VyYXRpb24gZm9yIEphdmEgY2xpZW50XzoKYGBgeG1sCjxidWlsZD4KICA8cGx1Z2lucz4KICAgIDxwbHVnaW4+CiAgICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPm9wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+NS4xLjA8L3ZlcnNpb24+CiAgICAgIDxleGVjdXRpb25zPgogICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICA8Z29hbHM+CiAgICAgICAgICAgIDxnb2FsPmdlbmVyYXRlPC9nb2FsPgogICAgICAgICAgPC9nb2Fscz4KICAgICAgICAgIDxjb25maWd1cmF0aW9uPgogICAgICAgICAgICA8aW5wdXRTcGVjPiR7cHJvamVjdC5iYXNlZGlyfS9zcmMvbWFpbi9yZXNvdXJjZXMvcmFuZG9tLXdvcmRzLW9wZW5hcGkueWFtbDwvaW5wdXRTcGVjPgogICAgICAgICAgICA8Z2VuZXJhdG9yTmFtZT5qYXZhPC9nZW5lcmF0b3JOYW1lPgogICAgICAgICAgICA8Y29uZmlnT3B0aW9ucz4KICAgICAgICAgICAgICA8YXBpUGFja2FnZT5jbmEuYXBwcy5oYW5nbWFuLmFwaWNsaWVudHMucmFuZG9td29yZHM8L2FwaVBhY2thZ2U+CiAgICAgICAgICAgICAgPGRhdGVMaWJyYXJ5PmphdmE4PC9kYXRlTGlicmFyeT4KICAgICAgICAgICAgICA8ZnVsbEphdmFVdGlsPnRydWU8L2Z1bGxKYXZhVXRpbD4KICAgICAgICAgICAgICA8bGlicmFyeT5uYXRpdmU8L2xpYnJhcnk+CiAgICAgICAgICAgICAgPG1vZGVsUGFja2FnZT5jbmEuYXBwcy5oYW5nbWFuLmFwaWNsaWVudHMucmFuZG9td29yZHMubW9kZWw8L21vZGVsUGFja2FnZT4KICAgICAgICAgICAgICA8b3BlbkFwaU51bGxhYmxlPmZhbHNlPC9vcGVuQXBpTnVsbGFibGU+CiAgICAgICAgICAgICAgPHN3YWdnZXJBbm5vdGF0aW9ucz5mYWxzZTwvc3dhZ2dlckFubm90YXRpb25zPgogICAgICAgICAgICA8L2NvbmZpZ09wdGlvbnM+CiAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICAgICAgPC9leGVjdXRpb24+CiAgICAgIDwvZXhlY3V0aW9ucz4KICAgIDwvcGx1Z2luPgogIDwvcGx1Z2lucz4KPC9idWlsZD4KYGBgCjxhIG5hbWU9InRkZCI+PC9hPgojIyBUREQKSSBzdGFydCBieSBpbXBsZW1lbnRpbmcgdGhlIHVzZWNhc2UgdGVzdHMuIHRoZSBwcm9ncmVzc2lvbiBpbnRvIHRoaXMgdW5pdCB0ZXN0cyBhbGxvd3MgdG8gZGVzaWduIHRoZSBkb21haW4gZW50aXRpZXMuIENvdmVyYWdlIG9mIHVzZSBjYXNlIHRlc3RzIGFsbG93cyB0aGUgZG9tYWluIGVudGl0aWVzIHRvIGVtZXJnZSBuYXR1cmFsbHkuIFRoZW4gSSByZWFsaXplIHRoZSBkZXZlbG9wbWVudCBvZiBhZGFwdGVycyBhbmQgdGhlbiB0aGUgU3ByaW5nIEJvb3QgZ2x1ZS4KClRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZG9tYWluICh1c2VyIGNhc2UgYW5kIGVudGl0aWVzKSBpcyByZWFsaXplZCBieSB1c2luZyBvdXRzaWRlLWluIFRERC4gQnV0IHRoZSBjb21wbGV0ZSBhcHBsaWNhdGlvbiBpcyBkZXZlbG9wZWQgZnJvbSBhbiBpbnNpZGUtb3V0IFRERCBhbmdsZS4KCk5vIG1vY2sgZnJhbWV3b3JrIGFyZSB1c2VkLCBzbyBmYWtlIGFuZCBzcHkgY2xhc3NlcyBhcmUgY29kZWQgdG8gc2ltdWxhdGUgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzIGJlaGF2aW9yIG9yIHRvIGFzc2VydCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgY2FsbHMuCjxhIG5hbWU9ImNvZGUtY292ZXJhZ2UiPjwvYT4KIyMgQ29kZSBjb3ZlcmFnZQpJIGNvdXBsZWQgSmFjb2NvIGFuZCB0aGUgW0NvdmVyYWxsc10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8pIHNlcnZpY2UgdG8gbWVhc3VyZSB0aGUgY29kZSBjb3ZlcmFnZS4gQW5kIHRvIGhhdmUgMTAwJSBjb2RlIGNvdmVyYWdlLCBJIGV4Y2x1ZGVkIFNwcmluZyBCb290IHRlY2huaWNhbCBjbGFzc2VzIGxpa2UgYXBwbGljYXRpb24gYW5kIGNvbmZpZ3VyYXRpb24gY2xhc3Nlcy4gCjxhIG5hbWU9Imluc3RhbGwtYnVpbGQtcnVuIj48L2E+CiMjIEluc3RhbGwsIGJ1aWxkIGFuZCBydW4KKiBQcmVyZXF1aXNpdGU6IGhhdmUgSmF2YSAxNiBpbnN0YWxsZWQgKG9wZW5KREsgb3IgT3JhY2xlIEpESykKKiBDbG9uZSB0aGUgcmVwbwoqIEJ1aWxkIHRoZSBwcm9qZWN0IHdpdGggYG12bncgY2xlYW4gcGFja2FnZWAgZnJvbSBhIHRlcm1pbmFsCiogUnVuIHRoZSBjbGFzcyBgY25hLmFwcHMuaGFuZ21hbi50ZWNoLkhhbmdtYW5BcHBsaWNhdGlvbmAgZnJvbSB5b3VyIElERSBvciB3aXRoIGBqYXZhIC1qYXIgaGFuZ21hbi1hcGkvdGFyZ2V0L2hhbmdtYW4tYXBpLTAuMC4xLVNOQVBTSE9ULmphcmAgZnJvbSBhIHRlcm1pbmFsLiAKKiBVc2UgW3RoZSBPcGVuQVBJIGNvbnRyYWN0XShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vQ2VkTi9oYW5nbWFuL21haW4vc3BlY2lmaWNhdGlvbnMvc3JjL21haW4vcmVzb3VyY2VzL2hhbmdtYW4tb3BlbmFwaS55YW1sKSB0byBwbGF5IDopCjxhIG5hbWU9ImxpbmtzIj48L2E+CiMjIExpbmtzCkFib3V0IGNsZWFuIGFyY2hpdGVjdHVyZToKKiBSb2JlcnQgQy4gTWFydGluJ3MgYmxvZzogaHR0cHM6Ly9ibG9nLmNsZWFuY29kZXIuY29tLwoqIFRvYmlhcyBTdHJhbmRiZXJnJ3MgYmxvZzogaHR0cHM6Ly9hZGV2ZWxvcGVyc2Rpc2NvdXJzZS5ibG9nc3BvdC5jb20vCiogSmVyZW1pYWggRmxhZ2EncyBibG9nIGh0dHBzOi8vamVyZW1pYWhmbGFnYS5naXRodWIuaW8vCgpBYm91dCBPcGVuQVBJOgoqIE9wZW5BUEkgdjMuMC4xIFNwZWNpZmljYXRpb25zIDogaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4xCiogU3ByaW5nIGdlbmVyYXRvciBvcHRpb25zOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvZG9jcy9nZW5lcmF0b3JzL3NwcmluZwoqIEphdmEgY2xpZW50IGdlbmVyYXRvciBvcHRpb25zOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvZG9jcy9nZW5lcmF0b3JzL2phdmEKCkFib3V0IGNvZGUgY292ZXJhZ2U6CiogSmFjb2NvIG1hdmVuIHBsdWdpbjogaHR0cHM6Ly93d3cuZWNsZW1tYS5vcmcvamFjb2NvL3RydW5rL2RvYy9tYXZlbi5odG1sCiogQ292ZXJhbGxzIDogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8KPGEgbmFtZT0ic3RhdHVzIj48L2E+CiMjIFN0YXR1cwpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9DZWROL2hhbmdtYW4uc3ZnP2JyYW5jaD1tYWluKV0oaHR0cHM6Ly90cmF2aXMtY2kuY29tL0NlZE4vaGFuZ21hbikgWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvQ2VkTi9oYW5nbWFuL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9DZWROL2hhbmdtYW4/YnJhbmNoPW1haW4p readmeEtag: '"19e4d3368d26c803442c65cfd18745aa999a77ad"' readmeLastModified: Mon, 14 Jun 2021 16:18:35 GMT repositoryId: 346851163 description: Hangman game created: '2021-03-11T22:02:48Z' updated: '2023-12-21T11:05:10Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: CedN logo: https://avatars.githubusercontent.com/u/4160253?v=4 license: Apache-2.0 repoEtag: '"cfdca8ed79dd586b3f6ec6eaa5bab04091b52700e2f00aae6c82708a505e136f"' repoLastModified: Thu, 21 Dec 2023 11:05:10 GMT foundInMaster: true category: SDK id: de58be3df3712f388da92d99c4cc6b08 - source: openapi3 tags repository: https://github.com/rail-shabayev/microservice-project2 v3: true id: 1f6ece8b31bed5851d58504d8bdd6183 repositoryMetadata: base64Readme: >- PGgxPlByb2plY3QncyBkYXRhYmFzZSB0YWJsZSBzdHJ1Y3R1cmU6PC9oMT4KCiFbaW1hZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9SYWlsLVNoYWJheWV2L21pY3Jvc2VydmljZS1wcm9qZWN0Mi9hc3NldHMvOTkxMzMyOTgvNjQzNTdjMWEtZDRkNS00MzIzLWE3NTItNDVjNzAzNWY1NmU2KQoKPGgxPlByb2plY3Qgc3RydWN0dXJlIGFuZCBmZWF0dXJlcyBpbiBkaWFncmFtOjwvaDE+CgohW2ltYWdlXShodHRwczovL2dpdGh1Yi5jb20vUmFpbC1TaGFiYXlldi9taWNyb3NlcnZpY2UtcHJvamVjdDIvYXNzZXRzLzk5MTMzMjk4LzdjZjc5NTBhLWRjZGMtNDFmYy04ZDFjLTg4NWQ5OTA2ZDhhOSkKCjxoMT5FbmRwb2ludHM6PC9oMT4KCiFbaW1hZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9SYWlsLVNoYWJheWV2L21pY3Jvc2VydmljZS1wcm9qZWN0Mi9hc3NldHMvOTkxMzMyOTgvYjAzOWE4MmUtYjNjMS00ZWU4LWEzNmUtOGZjZGNhMWQ4OTYyKQoKIVtpbWFnZV0oaHR0cHM6Ly9naXRodWIuY29tL1JhaWwtU2hhYmF5ZXYvbWljcm9zZXJ2aWNlLXByb2plY3QyL2Fzc2V0cy85OTEzMzI5OC9kOWUwMzVjYS0zMTA5LTRhZWUtODk1OC04ZjcwYTg5NGE4Y2EpCgohW2ltYWdlXShodHRwczovL2dpdGh1Yi5jb20vUmFpbC1TaGFiYXlldi9taWNyb3NlcnZpY2UtcHJvamVjdDIvYXNzZXRzLzk5MTMzMjk4LzI3ZWRlY2ViLTFhNjUtNDViMS05NmIwLWEzYjkyMWQ1YzIzMykKCiFbaW1hZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9SYWlsLVNoYWJheWV2L21pY3Jvc2VydmljZS1wcm9qZWN0Mi9hc3NldHMvOTkxMzMyOTgvOTQ5MGZjMmYtZDBiYS00MzA3LWJlMzMtMmI1YWQ5OTI5MDFiKQo= readmeEtag: '"392511d48020c08ecfb9dc11d708b1e410cfe01b"' readmeLastModified: Sun, 31 Mar 2024 01:56:58 GMT repositoryId: 764974606 description: 'pet project ' created: '2024-02-29T03:34:19Z' updated: '2024-03-31T01:58:35Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: Rail-Shabayev logo: https://avatars.githubusercontent.com/u/99133298?v=4 repoEtag: '"027b13da12e408bf0252d449c46a50a8c9d47735fa52a1abaad8a03c0aa6d53a"' repoLastModified: Sun, 31 Mar 2024 01:58:35 GMT category: Server foundInMaster: true - source: openapi3 tags repository: https://github.com/pevin/laravel-api-boilerplate v3: true repositoryMetadata: base64Readme: >- IyBsYXJhdmVsLWFwaS1ib2lsZXJwbGF0ZQoKUGVyc29uYWwgdGVtcGxhdGUgLyBzdGF0ZXIga2l0LyBib2lsZXJwbGF0ZSB1c2VkIGZvciBjcmVhdGluZyBuZXcgYXBpIGJhc2VkIG9uIGxhcmF2ZWwgYWxvbmcgd2l0aCBvdGhlciBpbXBsZW1lbnRhdGlvbnMgbGlrZToKCi0gU3dhZ2dlci9PcGVuQXBpIDMuMCAKLSB0eW1vbi9qd3QtYXV0aAotIEVycm9yIGhhbmRsaW5nCgpSZWZlcmVuY2VzOgoKLSBbbGFyYXZlbC9mcmFtZXdvcmtdKGh0dHBzOi8vand0LWF1dGgucmVhZHRoZWRvY3MuaW8vZW4vZG9jcy9sYXJhdmVsLWluc3RhbGxhdGlvbi8pCi0gW3R5bW9uL2p3dC1hdXRoXShodHRwczovL2p3dC1hdXRoLnJlYWR0aGVkb2NzLmlvL2VuL2RvY3MvbGFyYXZlbC1pbnN0YWxsYXRpb24vKQotIFtkYXJrYW9ubGluZS9sNS1zd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vRGFya2FPbkxpbmUvTDUtU3dhZ2dlcikK readmeEtag: '"d57b2cf404771dae478b6757f99efed363f8d6bd"' readmeLastModified: Sun, 12 Jul 2020 15:24:33 GMT repositoryId: 279026479 description: >- Used for starting a new api based on Laravel along with jwt, swagger, and api error handler. created: '2020-07-12T08:50:57Z' updated: '2024-06-04T23:59:34Z' language: PHP archived: false stars: 1 watchers: 1 forks: 0 owner: pevin logo: https://avatars.githubusercontent.com/u/22132315?v=4 repoEtag: '"3b11acb58b3cd02042d01b292d81ec18fbf04fa29c56be8aa710316c967d3874"' repoLastModified: Tue, 04 Jun 2024 23:59:34 GMT foundInMaster: true category: - Server - Server Implementations id: d02f42249534cfcac732404c7de1b93d - source: openapi3 tags repository: https://github.com/grandlinex/swagger-mate v3: true id: 6d9334e44d2e04e21dd95e81045609e3 repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyLU1hdGUKPiBHcmFuZExpbmVYIFN3YWdnZXItTWF0ZSAgcHJvamVjdAoKWyFbR2l0SHViXShodHRwczovL2JhZGdlLmZ1cnkuaW8vZ2gvZ3JhbmRsaW5leCUyRnN3YWdnZXItbWF0ZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vR3JhbmRsaW5lWC9zd2FnZ2VyLW1hdGUpClshW05QTV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9zdGF0aWMvdjE/bGFiZWw9TlBNJm1lc3NhZ2U9UGFja2FnZSZjb2xvcj1yZWQmbG9nbz1OUE0pXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AZ3JhbmRsaW5leC9zd2FnZ2VyLW1hdGUpCiFbVFNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPUxhbmd1YWdlJm1lc3NhZ2U9VHlwZVNjcmlwdCZjb2xvcj1ibHVlJmxvZ289VHlwZVNjcmlwdCkKCiMjIyBTdGF0dXMKIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1HcmFuZGxpbmVYX3N3YWdnZXItbWF0ZSZtZXRyaWM9YWxlcnRfc3RhdHVzKQohW1NlY3VyaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9R3JhbmRsaW5lWF9zd2FnZ2VyLW1hdGUmbWV0cmljPXNlY3VyaXR5X3JhdGluZykKIVtNYWludGFpbmFiaWxpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1HcmFuZGxpbmVYX3N3YWdnZXItbWF0ZSZtZXRyaWM9c3FhbGVfcmF0aW5nKQohW1JlbGlhYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9R3JhbmRsaW5lWF9zd2FnZ2VyLW1hdGUmbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZykKIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9R3JhbmRsaW5lWF9zd2FnZ2VyLW1hdGUmbWV0cmljPWNvdmVyYWdlKQoKIyMjIElzc3VlcwohW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PUdyYW5kbGluZVhfc3dhZ2dlci1tYXRlJm1ldHJpYz1idWdzKQohW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9R3JhbmRsaW5lWF9zd2FnZ2VyLW1hdGUmbWV0cmljPXZ1bG5lcmFiaWxpdGllcykKIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9R3JhbmRsaW5lWF9zd2FnZ2VyLW1hdGUmbWV0cmljPWNvZGVfc21lbGxzKQoKIyMgRmVhdHVyZXMKCi0gR2VuZXJhdGUgc3dhZ2dlci57anNvbnx5bWx9IGZyb20gY29kZQotIEdlbmVyYXRlIEFwaSBjbGllbnQgZnJvbSBzd2FnZ2VyLntqc29ufHltbH0KCgojIyBRdWljayBTdGFydAoKIyMjIEluc3RhbGwKCjEuIEluc2F0YWwgbnBtIHBhY2thZ2UKYGBgc2hlbGwKICBucG0gaSAgQGdyYW5kbGluZXgvc3dhZ2dlci1tYXRlCmBgYAoKMi4gVXBkYXRlIHBhY2thZ2UuanNvbiAKYGBganNvbgp7CiAgLy8uLi4KICAic2NyaXB0cyI6IHsKICAgICJtYWtlU3BlYyI6ICJzd2FnZ2VyLW1hdGUiLAogICAgInNlcnZlU3BlYyI6ICJzd2FnZ2VyLW1hdGUgLS1zZXJ2ZSIsCiAgICAiYnVpbGRTcGVjTWFpbiI6ICJzd2FnZ2VyLW1hdGUgLS1idWlsZCAtLW1haW4iLAogICAgImJ1aWxkU3BlY0RldiI6ICJzd2FnZ2VyLW1hdGUgLS1idWlsZCAtLWRldiIKICB9LAogICJnbHgiOiB7CiAgICAia2VybmVsIjogImRpc3QvS2VybmVsLmpzIgogIH0KICAvLy4uLgp9CmBgYAoKfENvbW1hbmR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwtLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnxgbnBtIHJ1biBtYWtlU3BlY2B8IG1ha2UgYG9wZW5hcGkuanNvbmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnxgbnBtIHJ1biBzZXJ2ZVNwZWNgfCBzZXJ2ZSBgb3BlbmFwaS5qc29uYCB3aXRoIFtzd2FnZ2VyLXVpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkgfAp8YG5wbSBydW4gYnVpbGRTcGVjTWFpbmB8IGJ1aWxkIGFwaSBjbGllbnQgKHByb2QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnxgbnBtIHJ1biBidWlsZFNwZWNEZXZgfCBidWlsZCBhcGkgY2xpZW50IChkZXYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyMgU2VydmUgb3B0aW9uCgo+IERlZmF1bHQgcG9ydCA9IDkwMDAKCkVOViB2YXJpYWJsZXMKCnwgRU5WIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgIHwKfC0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8ICBTV19QT1JUICAgfCBzZXQgY3VzdG9tIHNlcnZlIHBvcnQgICAgfAp8ICBTV19BVVRIICAgfCBzZXQgZGVmYXVsdCBiZWFyZXIgdG9rZW4gfAoKIyMgRGVmaW5lIHR5cGVzCgojIyMgS2VybmVsCgpgYGB0eXBlc2NyaXB0CmltcG9ydCB7IFNQYXRoVXRpbCwgU3dhZ2dlciB9IGZyb20gJ0BncmFuZGxpbmV4L3N3YWdnZXItbWF0ZSc7Ci8vIE9wZW5BcGkgMy4wLjMgLSBSb290IEFwaSBkZWZpbml0aW9uCkBTd2FnZ2VyKHsKICBpbmZvOiB7CiAgICB0aXRsZTogJ0tlcm5lbFRlc3QnLAogICAgdmVyc2lvbjogJzAuMS4wJywgLy8gVmVyc2lvbiAob3B0aW9uYWwpIHdpbGwgYmUgcmVhZCBmcm9tIHBhY2thZ2UuanNvbgogIH0sCiAgb3BlbmFwaTogJzMuMC4zJywKICBzZXJ2ZXJzOiBbCiAgICB7CiAgICAgIHVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6OTI1NycsCiAgICAgIGRlc2NyaXB0aW9uOiAnTG9jYWxEZXYnLAogICAgfSwKICBdLAogIHBhdGhzOiB7CiAgICAgIC8vIFN0YXRpYyBkZWZpbml0aW9uCiAgICAnL3ZlcnNpb24nOiB7CiAgICAgIGdldDogewogICAgICAgIGRlc2NyaXB0aW9uOiAnR2V0IHZlcnNpb24nLAogICAgICAgIG9wZXJhdGlvbklkOiAnZ2V0VmVyc2lvbicsCiAgICAgICAgcmVzcG9uc2VzOiBTUGF0aFV0aWwuZGVmYXVsdFJlc3BvbnNlKCcyMDAnLCAnNTAwJyksCiAgICAgIH0sCiAgICB9LAogICAvLyBEeW5hbWljIGRlZmluaXRpb24gd2lsbCBiZSByZWFkIGZyb20gQFNQYXRoCiAgfSwKICBzZWN1cml0eTogWwogICAgewogICAgICBiZWFyZXJBdXRoOiBbXSwKICAgIH0sCiAgXSwKICBjb21wb25lbnRzOiB7CiAgICBzZWN1cml0eVNjaGVtZXM6IHsKICAgICAgYmVhcmVyQXV0aDogewogICAgICAgIHR5cGU6ICdodHRwJywKICAgICAgICBzY2hlbWU6ICdiZWFyZXInLAogICAgICAgIGJlYXJlckZvcm1hdDogJ0pXVCcsCiAgICAgIH0sCiAgICB9LAogIH0sCn0pCmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNvbWVLZXJuZWwge30KCmBgYAoKIyMjIEFjdGlvbgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBTUGF0aFV0aWwsIFN3YWdnZXIgfSBmcm9tICdAZ3JhbmRsaW5leC9zd2FnZ2VyLW1hdGUnOwoKLy8gT3BlbkFwaSAzLjAuMyAtIFBhdGNoIGRlZmluaXRpb24KQFNQYXRoKHsKICAgICcvdGVzdCc6IHsKICAgICAgICBnZXQ6IHsKICAgICAgICAgICAgZGVzY3JpcHRpb246ICd0ZXN0JywKICAgICAgICAgICAgb3BlcmF0aW9uSWQ6ICdnZXRUZXN0JywgLy8gbmFtZSBmb3IgdGhlIGpzIGFwaSBjbGllbnQKICAgICAgICAgICAgc3VtbWFyeTogJ0Rlc2NyaXRwdGlvbiBzdW1tYXJ5JywKICAgICAgICAgICAgcmVzcG9uc2VzOiBTUGF0aFV0aWwuZGVmYXVsdFJlc3BvbnNlKCcyMDAnLCc0MDAnLCAnNTAwJykKICAgICAgICB9LAogICAgfSwKfSkKZXhwb3J0IGRlZmF1bHQgY2xhc3MgU29tZUJhc2VBcGlBY3Rpb24ge30KCmBgYAo= readmeEtag: '"bd6271c06b76d5b48f2e22e85f5223c2e0933bbf"' readmeLastModified: Tue, 30 Jul 2024 17:25:44 GMT repositoryId: 655675985 description: null created: '2023-06-19T11:21:42Z' updated: '2024-07-30T17:25:52Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: GrandlineX logo: https://avatars.githubusercontent.com/u/89772740?v=4 license: BSD-3-Clause repoEtag: '"7366890dcbc49edf5b9c6787954a80e56a606bb2b79acd62af798a6eca4f06fc"' repoLastModified: Tue, 30 Jul 2024 17:25:52 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/smartrecruiters/openapi-schemas-validator v3: true repositoryMetadata: base64Readme: >- IyBAc21hcnRyZWNydWl0ZXJzL29wZW5hcGktc2NoZW1hcy12YWxpZGF0b3IKClshW05QTSBWZXJzaW9uXVtucG0taW1hZ2VdXVtucG0tdXJsXQpbIVtOUE0gRG93bmxvYWRzXVtkb3dubG9hZHMtaW1hZ2VdXVtkb3dubG9hZHMtdXJsXQpbIVtOb2RlLmpzIFZlcnNpb25dW25vZGUtdmVyc2lvbi1pbWFnZV1dW25vZGUtdmVyc2lvbi11cmxdClshW0xpY2VuY2VdW2xpY2Vuc2UtaW1hZ2VdXVtsaWNlbnNlLXVybF0KWyFbQnVpbGRdW3RyYXZpcy1pbWFnZV1dW3RyYXZpcy11cmxdCgpDcmVhdGUgc2NoZW1hIHZhbGlkYXRvcnMgZm9yIGFwaSBkb2N1bWVudGF0aW9uIGluIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLnggZm9ybWF0LgoKIyMgdHY0CgpUaGlzIG1vZHVsZSB1c2VzIFt0djRdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3R2NCkgdmFsaWRhdG9yLCBhZGRpdGlvbmFsbHkKY29uZmlndXJlZCB3aXRoIFt0djQtZm9ybWF0c10oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdHY0LWZvcm1hdHMpLgoKVGhpcyBtb2R1bGUgdXNlcyB0djQgW2B2YWxpZGF0ZU11bHRpcGxlYF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdHY0I3VzYWdlLTMtbXVsdGlwbGUtZXJyb3JzKSBmdW5jdGlvbiwKd2l0aCBbYGNoZWNrUmVjdXJzaXZlYF0oaHR0cHM6Ly9naXRodWIuY29tL2dlcmFpbnRsdWZmL3R2NCNjeWNsaWNhbC1qYXZhc2NyaXB0LW9iamVjdHMpIHBhcmFtIGFsd2F5cyBwYXNzZWQgYXMgYHRydWVgLgoKWW91IGNhbiBjb25maWd1cmUgdHY0IHZhbGlkYXRvciB3aXRoIGZvbGxvd2luZyBvcHRpb25zOgogKiBjdXN0b21Gb3JtYXRzIC0gd2lsbCBiZSBwYXNzZWQgdG8gW2B0djQuYWRkRm9ybWF0YF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdHY0I2FkZGZvcm1hdGZvcm1hdC12YWxpZGF0aW9uZnVuY3Rpb24pIGZ1bmN0aW9uCiAqIGJhblVua25vd25Qcm9wZXJ0aWVzIC0gd2lsbCBiZSBwYXNzZWQgdG8gdmFsaWRhdGluZyBmdW5jdGlvbiAoW1RoZSBiYW5Vbmtub3duUHJvcGVydGllcyBmbGFnXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS90djQjdGhlLWJhbnVua25vd25wcm9wZXJ0aWVzLWZsYWcpKQoKVGhlcmUgaXMgZXhwb3J0ZWQgYW4gYEVycm9yQ29kZXNgIG9iamVjdCBjb250YWluaW5nIG1hcHBpbmdzIGJldHdlZW4gZXJyb3IgY29kZSBudW1iZXJzIGFuZCBlcnJvciBuYW1lcyB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgW3R2NF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdHY0KSB2YWxpZGF0b3IuCgojIyBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wIHNwZWNpZmljIGZlYXR1cmVzCgpDdXJyZW50bHkgQHNtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLXNjaGVtYXMtdmFsaWRhdG9yIHN1cHBvcnRzIGBudWxsYWJsZWAgZmllbGQuCgpQbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjEubWQjZml4ZWQtZmllbGRzLTIwLgoKIyMgTGljZW5zZQoKW01JVF0oTElDRU5TRSkKCltucG0taW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1zY2hlbWFzLXZhbGlkYXRvci5zdmcKW25wbS11cmxdOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac21hcnRyZWNydWl0ZXJzL29wZW5hcGktc2NoZW1hcy12YWxpZGF0b3IKW2Rvd25sb2Fkcy1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1zY2hlbWFzLXZhbGlkYXRvci5zdmcKW2Rvd25sb2Fkcy11cmxdOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ac21hcnRyZWNydWl0ZXJzL29wZW5hcGktc2NoZW1hcy12YWxpZGF0b3IKW25vZGUtdmVyc2lvbi1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbm9kZS92L0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1zY2hlbWFzLXZhbGlkYXRvci5zdmcKW25vZGUtdmVyc2lvbi11cmxdOiBodHRwczovL25vZGVqcy5vcmcvZW4vZG93bmxvYWQvCltsaWNlbnNlLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9zbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1zY2hlbWFzLXZhbGlkYXRvci9ibG9iL21hc3Rlci9MSUNFTlNFCltsaWNlbnNlLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9Ac21hcnRyZWNydWl0ZXJzL29wZW5hcGktc2NoZW1hcy12YWxpZGF0b3Iuc3ZnClt0cmF2aXMtdXJsXTogaHR0cHM6Ly90cmF2aXMtY2kub3JnL3NtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLXNjaGVtYXMtdmFsaWRhdG9yClt0cmF2aXMtaW1hZ2VdOiBodHRwczovL2FwaS50cmF2aXMtY2kub3JnL3NtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLXNjaGVtYXMtdmFsaWRhdG9yLnN2Zz9icmFuY2g9bWFzdGVyCiMjIEFQSQoKCiMjIyBNb2R1bGVzCgo8ZGw+CjxkdD48YSBocmVmPSIjbW9kdWxlX0BzbWFydHJlY3J1aXRlcnMvb3BlbmFwaS1zY2hlbWFzLXZhbGlkYXRvciI+QHNtYXJ0cmVjcnVpdGVycy9vcGVuYXBpLXNjaGVtYXMtdmFsaWRhdG9yPC9hPjwvZHQ+CjxkZD48L2RkPgo8L2RsPgoKIyMjIENsYXNzZXMKCjxkbD4KPGR0PjxhIGhyZWY9IiNTY2hlbWFWYWxpZGF0b3IiPlNjaGVtYVZhbGlkYXRvcjwvYT48L2R0Pgo8ZGQ+PC9kZD4KPC9kbD4KCjxhIG5hbWU9Im1vZHVsZV9Ac21hcnRyZWNydWl0ZXJzL29wZW5hcGktc2NoZW1hcy12YWxpZGF0b3IiPjwvYT4KCiMjIyBAc21hcnRyZWNydWl0ZXJzL29wZW5hcGktc2NoZW1hcy12YWxpZGF0b3IKPGEgbmFtZT0iU2NoZW1hVmFsaWRhdG9yIj48L2E+CgojIyMgU2NoZW1hVmFsaWRhdG9yCioqS2luZCoqOiBnbG9iYWwgY2xhc3MgIAoKKiBbU2NoZW1hVmFsaWRhdG9yXSgjU2NoZW1hVmFsaWRhdG9yKQogICAgKiBbbmV3IFNjaGVtYVZhbGlkYXRvcihzcGVjLCBbb3B0aW9uc10pXSgjbmV3X1NjaGVtYVZhbGlkYXRvcl9uZXcpCiAgICAqIFsudmFsaWRhdGUoZW50aXR5LCBzY2hlbWEpXSgjU2NoZW1hVmFsaWRhdG9yK3ZhbGlkYXRlKSDih5IgPGNvZGU+QXJyYXkuJmx0O09iamVjdCZndDs8L2NvZGU+Cgo8YSBuYW1lPSJuZXdfU2NoZW1hVmFsaWRhdG9yX25ldyI+PC9hPgoKIyMjIyBuZXcgU2NoZW1hVmFsaWRhdG9yKHNwZWMsIFtvcHRpb25zXSkKQ3JlYXRlIHNjaGVtYSB2YWxpZGF0b3IgZm9yIHNjaGVtYXMgZGVmaW5lZCBpbiBzcGVjIGF0IGAjL2NvbXBvbmVudHMvc2NoZW1hc2AKCgp8IFBhcmFtIHwgVHlwZSB8IERlZmF1bHQgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tIHwgLS0tIHwgLS0tIHwKfCBzcGVjIHwgPGNvZGU+T2JqZWN0PC9jb2RlPiB8ICB8IEFQSSBzcGVjaWZpY2F0aW9uIGluIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAgZm9ybWF0IHwKfCBbb3B0aW9uc10gfCA8Y29kZT5PYmplY3Q8L2NvZGU+IHwgPGNvZGU+e308L2NvZGU+IHwgb3B0aW9ucyB8CnwgW29wdGlvbnMuY3VzdG9tRm9ybWF0c10gfCA8Y29kZT5PYmplY3Q8L2NvZGU+IHwgIHwgY3VzdG9tIGZvcm1hdCB2YWxpZGF0b3JzIHwKfCBbb3B0aW9ucy5iYW5Vbmtub3duUHJvcGVydGllc10gfCA8Y29kZT5ib29sZWFuPC9jb2RlPiB8IDxjb2RlPmZhbHNlPC9jb2RlPiB8IGRpc2FsbG93IGV4dHJhIHByb3BlcnRpZXMgaW4gdmFsaWRhdGVkIG9iamVjdHMgfAoKPGEgbmFtZT0iU2NoZW1hVmFsaWRhdG9yK3ZhbGlkYXRlIj48L2E+CgojIyMjIHNjaGVtYVZhbGlkYXRvci52YWxpZGF0ZShlbnRpdHksIHNjaGVtYSkg4oeSIDxjb2RlPkFycmF5LiZsdDtPYmplY3QmZ3Q7PC9jb2RlPgpWYWxpZGF0ZSBvYmplY3QgYWdhaW5zdCBzY2hlbWEuIFNjaGVtYSBjYW4gYmUgcGFzc2VkIGV4cGxpY2l0bHkgb3IgcmVmZXJlbmNlIGEgc2NoZW1hIGZyb20gc3BlYy4KCioqS2luZCoqOiBpbnN0YW5jZSBtZXRob2Qgb2YgWzxjb2RlPlNjaGVtYVZhbGlkYXRvcjwvY29kZT5dKCNTY2hlbWFWYWxpZGF0b3IpICAKKipSZXR1cm5zKio6IDxjb2RlPkFycmF5LiZsdDtPYmplY3QmZ3Q7PC9jb2RlPiAtIEFuIGFycmF5IHdpdGggZXJyb3JzIHdoZW4gb2JqZWN0IGlzIGludmFsaWQsIGB1bmRlZmluZWRgIG90aGVyd2lzZSAgCgp8IFBhcmFtIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0gfCAtLS0gfAp8IGVudGl0eSB8IDxjb2RlPk9iamVjdDwvY29kZT4gfCBvYmplY3QgdG8gdmFsaWRhdGUgfAp8IHNjaGVtYSB8IDxjb2RlPk9iamVjdDwvY29kZT4gXHwgPGNvZGU+c3RyaW5nPC9jb2RlPiB8IG9iamVjdCBzY2hlbWEgfAoK readmeEtag: '"e9b3adc39b6afebd21ef78e97eb6323655f706d4"' readmeLastModified: Tue, 29 Nov 2022 16:15:28 GMT repositoryId: 124135624 description: >- Schema validators for api documentation in OpenAPI Specification 3.x format. created: '2018-03-06T20:39:42Z' updated: '2022-11-22T08:21:22Z' language: JavaScript archived: false stars: 1 watchers: 22 forks: 1 owner: smartrecruiters logo: https://avatars.githubusercontent.com/u/1618540?v=4 license: MIT repoEtag: '"f78416550f3de93f42bfd0c041cfeb97528632e2881aa14ca9e70a80941616f6"' repoLastModified: Tue, 22 Nov 2022 08:21:22 GMT foundInMaster: true category: - Data Validators - Parsers id: d77a07afc70fd9f0ff64c98fa79ec7f9 - source: openapi3 tags repository: https://github.com/chrisdostert/listener-from-oas3-js v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvY2hyaXNkb3N0ZXJ0L2xpc3RlbmVyLWZyb20tb2FzMy1qcy5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9jaHJpc2Rvc3RlcnQvbGlzdGVuZXItZnJvbS1vYXMzLWpzKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2NocmlzZG9zdGVydC9saXN0ZW5lci1mcm9tLW9hczMtanMvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvY2hyaXNkb3N0ZXJ0L2xpc3RlbmVyLWZyb20tb2FzMy1qcykKCj4gKkJlIGFkdmlzZWQ6IHRoaXMgcHJvamVjdCBpcyBjdXJyZW50bHkgYXQgTWFqb3IgdmVyc2lvbiB6ZXJvLiBQZXIgdGhlCj4gc2VtYW50aWMgdmVyc2lvbmluZyBzcGVjOiAiTWFqb3IgdmVyc2lvbiB6ZXJvICgwLnkueikgaXMgZm9yIGluaXRpYWwKPiBkZXZlbG9wbWVudC4gQW55dGhpbmcgbWF5IGNoYW5nZSBhdCBhbnkgdGltZS4gVGhlIHB1YmxpYyBBUEkgc2hvdWxkCj4gbm90IGJlIGNvbnNpZGVyZWQgc3RhYmxlLiIqCgpKYXZhc2NyaXB0IGxpYnJhcnkgd2hpY2ggZ2VuZXJhdGVzIGEgbmF0aXZlIGh0dHAgc2VydmVyIGxpc3RlbmVyIGZyb20gYSB2MyBvcGVuIGFwaSBzcGVjCgojIEluc3RhbGxhdGlvbgoKIyMgTlBNCmBgYHNoZWxsCm5wbSBpbnN0YWxsIC0tc2F2ZSBsaXN0ZW5lci1mcm9tLW9hczMKYGBgCgojIyBZYXJuCmBgYHNoZWxsCnlhcm4gYWRkIGxpc3RlbmVyLWZyb20tb2FzMwpgYGAKCiMgSGFuZGxlcnMKClRoZSBzaWduYXR1cmUgZm9yIGhhbmRsZXJzIGlzCmBhc3luYyBteUhhbmRsZXIoY3R4KWAKClRoZSBjdHggb2JqZWN0IGlzIHRoZSBzYW1lIGFzIHRoZSBrb2EgY3R4IG9iamVjdCBidXQgYWxzbyBpbmNsdWRlczoKCiMjIyBjdHgucGFyYW1ldGVycy5wYXRoCk9iamVjdCB3aGVyZSBlYWNoIHByb3BlcnR5IGlzIHRoZSBuYW1lIG9mIGEgcGF0aCBwYXJhbWV0ZXIgYXBwbGljYWJsZSB0byB0aGUgb3BlcmF0aW9uIGFuZCBpdCdzIHByb3ZpZGVkIHZhbHVlLgoKIyMjIGN0eC5wYXJhbWV0ZXJzLnF1ZXJ5Ck9iamVjdCB3aGVyZSBlYWNoIHByb3BlcnR5IGlzIHRoZSBuYW1lIG9mIGEgcXVlcnkgcGFyYW1ldGVyIGFwcGxpY2FibGUgdG8gdGhlIG9wZXJhdGlvbiBhbmQgaXQncyBwcm92aWRlZCB2YWx1ZS4KCnBhcmFtZXRlcnMgZGVjbGFyZWQgdy8gYXBwbGljYXRpb24vanNvbiBjb250ZW50IHdpbGwgYmUgZGVzZXJpYWxpemVkCgojIyBjdHguc2VjdXJpdHkKT2JqZWN0IHdoZXJlIGVhY2ggcHJvcGVydHkgaXMgdGhlIG5hbWUgb2YgYSBzZWN1cml0eSBkZWZpbml0aW9uIGFwcGxpY2FibGUgdG8gdGhlIG9wZXJhdGlvbiBhbmQgaXQncyBwcm92aWRlZCB2YWx1ZS4KCmZvciBvYXV0aDIsIHZhbHVlIHdpbGwgYmUgdGhlIGJlYXJlciB0b2tlbiBzdHJpbmcgIAoKZm9yIGh0dHAgYmVhcmVyLCB2YWx1ZSB3aWxsIGJlIHRoZSBiZWFyZXIgdG9rZW4gc3RyaW5nICAKCmZvciBodHRwIGJhc2ljLCB2YWx1ZSB3aWxsIGJlIGEgYHt1c2VySWQsIHBhc3N3b3JkfWAgb2JqZWN0CgojIEV4YW1wbGVzCgojIEJhc2ljIHVzYWdlCgpgYGBqYXZhc2NyaXB0CmNvbnN0IGdldFJlcXVlc3RMaXN0ZW5lciA9IHJlcXVpcmUoJ2xpc3RlbmVyLWZyb20tb2FzMycpCmNvbnN0IGh0dHAgPSByZXF1aXJlKCdodHRwJykKCmFzeW5jIGZ1bmN0aW9uIGxpc3Rlbihwb3J0KSB7CiAgY29uc3QgcmVxdWVzdExpc3RlbmVyID0gYXdhaXQgZ2V0UmVxdWVzdExpc3RlbmVyKAogICAgYCR7X19kaXJuYW1lfS9vcGVuYXBpLnlhbWxgLAogICAgLy8gcmVzb2x2ZSBoYW5kbGVycyBmcm9tIGAke19fZGlybmFtZX0vJHtvcGVyYXRpb24tcGF0aH0vJHtvcGVyYXRpb24tbWV0aG9kfWAKICAgIF9fZGlybmFtZQogICkKCiAgaHR0cAogICAgLmNyZWF0ZVNlcnZlcihyZXF1ZXN0TGlzdGVuZXIpCiAgICAubGlzdGVuKHBvcnQpCn0KYGBgCgojIFN1cHBvcnQKCltvcGVuIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXNkb3N0ZXJ0L2xpc3RlbmVyLWZyb20tb2FzMy1qcy9pc3N1ZXMpCgojIFJlbGVhc2VzCgpyZWxlYXNlcyBhcmUgdmVyc2lvbmVkIGFjY29yZGluZyB0bwpbIVtzZW12ZXIgMi4wLjBdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc2VtdmVyLTIuMC4wLWJyaWdodGdyZWVuLnN2ZyldKGh0dHA6Ly9zZW12ZXIub3JnL3NwZWMvdjIuMC4wLmh0bWwpCmFuZCBbdGFnZ2VkXShodHRwczovL2dpdC1zY20uY29tL2Jvb2svZW4vdjIvR2l0LUJhc2ljcy1UYWdnaW5nKTsgc2VlCltDSEFOR0VMT0cubWRdKENIQU5HRUxPRy5tZCkgZm9yIHJlbGVhc2Ugbm90ZXMKCiMgQ29udHJpYnV0aW5nCgpzZWUgW0NPTlRSSUJVVElORy5tZF0oQ09OVFJJQlVUSU5HLm1kKQo= readmeEtag: '"dc7b9c92e2309906a0295ca8037f11c405b635e0"' readmeLastModified: Mon, 15 Oct 2018 17:17:08 GMT repositoryId: 140190346 description: >- Javascript library which generates a native http server listener from a v3 open api spec created: '2018-07-08T17:56:57Z' updated: '2023-01-28T09:32:25Z' language: JavaScript archived: true stars: 1 watchers: 2 forks: 0 owner: chrisdostert logo: https://avatars.githubusercontent.com/u/2335774?v=4 license: MIT repoEtag: '"ebd6f7fd793f65d13684c58607ac9c460b341ad973f2e210d235643c24422460"' repoLastModified: Sat, 28 Jan 2023 09:32:25 GMT foundInMaster: true category: - Converters - Parsers id: cdd1ea9a0dde706b0c4b86a1650f2e43 - source: openapi3 tags repository: https://github.com/aqib1/sparknetworks-filtering-matching v3: true repositoryMetadata: base64Readme: >- IyMgU3BhcmstbmV0d29ya3MgRmlsdGVyIEhhbmRsaW5nIGFwcGxpY2F0aW9uClNwcmluZyBjbG91ZCBtaWNyb3NlcnZpY2UgZm9yIGZpbHRlciBoYW5kbGluZwoKIyMjIEhvdyB0byBSdW4KLSBUbyBydW4gYXBwbGljYXRpb24gaXRzIG5lY2Vzc2FyeSB0byBydW4gRXVyZWthU2VydmVyIGFwcGxpY2F0aW9uIGZpcnN0LCBzbyBvdGhlciBib3RoIGFwcGxpY2F0aW9uIHJlZ2lzdGVyIGZpcnN0IHdpdGggc2VydmVyCi0gbXZuIGV4ZWM6amF2YQoKIyMjIFRlY2hub2xvZ2llcwoqIFNwcmluZyBib290IDIKKiBTcHJpbmcgQ2xvdWQgKE5ldGZsaXggZXVyZWthLCBOZXRmbGl4IGZlaWduIChlbWJlZGRlZCByaWJib24gTEIpLCBOZXRmbGl4IEh5c3RyaXgpCiogU3ByaW5nIE1WQwoqIFNwcmluZyBSZXN0CiogU3ByaW5nIGRhdGEgSlBBCiogU3ByaW5nIEFPUAoqIGJvb3RzdHJhcCBhbmQgSlNUTAoqIEp1bml0IDQgKGZvciB1bml0IHRlc3RpbmcpCiogTW9ja2l0byAoZm9yIG1vY2tpbmcgZGF0YWJhc2UgY2FsbHMgYW5kIG1ldGhvZHMgaW4gdW5pdCB0ZXN0aW5nKQoqIE1vY2tNVkMgKGZvciBJbnRlZ3JhdGlvbiB0ZXN0aW5nKQoqIFN3YWdnZXIgKG9wZW5hcGkgMy4wKQoqIEgyIERhdGFiYXNlCiogT3BlbnBvam8KCiMjIyBEZXNpZ24gUGF0dHJlbgoqIERvdWJsZSBjaGVjayBsb2NraW5nIHNpbmdsZXRvbiBwYXR0cmVuCiogQnVpbGRlciBwYXR0cmVuCgojIyMgVGhyZWFkIHNhZmV0eQpGb3IgdGhyZWFkIHNhZmV0eSwgaSBhbSB1c2luZyBqYXZhIDEuOCBTdGFtcGVkTG9jaywgaW4gd2hpY2ggd2UgaGF2ZSBvcHRpbWlzdGljIHJlYWQgbG9jay4gV2hpY2ggbWFrZSBzeW5jaHJvbml6YXRpb24gb3ZlcmhlYWQgaXMgdmVyeSAgIGxvdy4KCiMjIyBBcHBsaWNhdGlvbiBkZXRhaWxzCi0gQWxsIGFwcGxpY2F0aW9uIGlzIGJ1aWxkIHVzaW5nIHNwcmluZyBjbG91ZCwgbWljcm9zZXJ2aWNlIGFyY2hpdGVjdHVyZQotIENsaWVudCBhcHBsaWNhdGlvbiBpcyBidWlsZCB1c2luZyBTcHJpbmcgTVZDLCBDbGllbnQgQXBwbGljdGlvbiByZWdpc3RlciBpdCBzZWxmIGFzIGVydWVrYSBjbGllbnQgaW4gc2VydmVyLgotIENsaWVudCBhcHBsaWNhdGlvbiBjb21tdW5pY2F0aW5nIHdpdGggYmFja2VuZCBhcGkgdXNpbmcgTmV0ZmxpeCBmZWlnbgotIFNpbXBsZSBkZXNpZ24gaXMgbWFkZXVwIHVzaW5nIGJvb3RzdHJhcCBhbmQgSlNUTCAoZm9yIGRhdGEgbWFuaXB1bGF0aW9uKQotIEJhY2tlbmQgYXBwbGljYXRpb24gaXMgYSBldXJha2EgY2xpZW50LCB3aGljaCBpcyBidWlsZCB1c2luZyBzcHJpbmcgcmVzdAotIEgyIGRhdGFiYXNlIGlzIHVzZWQgc2F2ZSBkYXRhIGFuZCBnaXZlbiBkYXRhIGlzIGxvYWRlZCBkdXJpbmcgdGhlIHN0YXJ0LXVwIG9mIGFwcGxpY2F0aW9uCi0gU3ByaW5nIHNwZWNpZmljYXRpb25zIGFyZSB1c2VkIHRvIGNyZWF0ZSBjb21wbGV4IHF1cmllcwotIEVydWVrYSBTZXJ2ZXIgY29uZmlndXJlIG9uIDgwODUKLSBDbGllbnQgYXBwbGljYXRpb24gaXMgY29uZmlndXJlIG9uIDgwODAKLSBCYWNrZW5kIGFwcGxpY2F0aW9uIGlzIGNvbmZpZ3VyZSBvbiA4MDgyCgojIyMgVGVzdGluZwotIFRERCAodW5pdCB0ZXN0aW5nIGRvbmUgdXNpbmcgSlVOSVQgNCkKLSBNb2NraXRvIChmb3IgbW9ja2luZyBpbiB1bml0IHRlc3RpbmcpCi0gb3BlbnBvam8gKGZvciB0ZXN0aW5nIHJlcXVpcmVkIGdldHRlci9zZXR0ZXIgZXhpc3RlbmNlKQotIE1vY2tNVkMgKGZvciBpbnRlZ2VyYXRpb24gdGVzdGluZyBvZiBBUEkgZW5kIHBvaW50cykKCgoKIyMjIEFQSSBVc2FnZQoKSFRUUCBNRVRIT0QgfCBQQVRIIHwgVVNBR0UKLS0tIHwgLS0tIHwgLS0tCkdFVHwgc3BhcmstbmV0d29ya3MtY2xpZW50L2hvbWUgfCBDbGllbnQgaG9tZSBwYWdlClBPU1R8IHNwYXJrLW5ldHdvcmtzLWNsaWVudC9maWx0ZXIgfCBDbGllbnQgZmlsdGVyIGFwaQpHRVR8IHNwYXJrLW5ldHdvcmtzLWNsaWVudC8gfCBDbGllbnQgbG9naW4gcGFnZQpQT1NUfCBzcGFyay1uZXR3b3Jrcy1jbGllbnQvbG9naW4gfCBDbGllbnQgbG9naW4gb3BlcmF0aW9uIGFwaQpQT1NUfCBzcGFyay1uZXR3b3Jrcy1iYWNrZW5kL2ZpbHRlci9sb2dpbiB8IEJhY2tlbmQgbG9naW4gcmVzdCBhcGkKUE9TVHwgc3BhcmstbmV0d29ya3MtYmFja2VuZC9maWx0ZXIgfCBCYWNrZW5kIGZpbHRlciByZXN0IGFwaQpHRVR8IHNwYXJrLW5ldHdvcmtzLWJhY2tlbmQvZmlsdGVyIHwgQmFja2VuZCBnZXRpbmcgYWxsIHJlc3QgYXBpCgoKIyMjIEh0dHBzIFN0YXR1cwotIDIwMCBPSzogVGhlIHJlcXVlc3QgaGFzIHN1Y2NlZWRlZAotIDQwMCBCYWQgUmVxdWVzdDogVGhlIHJlcXVlc3QgY291bGQgbm90IGJlIHVuZGVyc3Rvb2QgYnkgdGhlIHNlcnZlcgotIDQwNCBOb3QgRm91bmQ6IFRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgY2Fubm90IGJlIGZvdW5kCi0gNDE3IEJhZCBFeGNlcHRpb246IEludGVybmFsIHNlcnZlciBleGNlcHRpb24KLSA1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yOiBUaGUgc2VydmVyIGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uCg== readmeEtag: '"36d217b49cca85b8cf14817b4a62db19c07d856b"' readmeLastModified: Fri, 20 Mar 2020 14:10:29 GMT repositoryId: 240132698 description: Filter matching task by spark networks created: '2020-02-12T22:58:53Z' updated: '2020-12-14T18:04:21Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: aqib1 logo: https://avatars.githubusercontent.com/u/8742169?v=4 repoEtag: '"29fafd2552353c0c75fc450276cbea267bc681a4a7022760e30827f884c0cfc0"' repoLastModified: Mon, 14 Dec 2020 18:04:21 GMT foundInMaster: true category: Server Implementations id: a9ae36422794afcf4ffd1ea0b1bb086f - source: openapi3 tags repository: https://github.com/pagopa-archive/pdnd-openapi-server v3: true repositoryMetadata: base64Readme: >- IyBQRE5EIG9wZW4gYXBpIHNlcnZlciAocHJlLWFscGhhKQoKVGhpcyBzZXJ2ZXIgZXhwb3NlcyBBUEkgZnJvbSBbUERORF0oaHR0cHM6Ly9kYXRhcG9ydGFsLmRhZi50ZWFtZGlnaXRhbGUuaXQvKSBhY2NvcmRpbmcgdG8gb3BlbmFwaSAzIHNwZWNpZmljYXRpb24gYW5kIHRoZSBpbnRlcm9wZXJhYmlsaXR5IG1vZGVsIGRlZmluZWQgYnkgSXRhbGlhbiBHb3Zlcm5lbW50IG9yZ2FuaXphdGlvbnMuIEl0IHVzZXMgW2Nvbm5leGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3phbGFuZG8vY29ubmV4aW9uKSBmcmFtZXdvcmsgZm9yIGNyZWF0aW5nIGFuZCBleHBvc2luZyB0aGUgc2VydmVyIGluIGEgY29udHJhY3QgZmlyc3QgYXBwcm9hY2guIFJlbWVtYmVyIGVhY2ggQVBJIGlzIHNlbGYgZG9jdW1lbnRlZCBpZiB5b3Ugd2FudCB0byByZWFkIHRoZSBkZXRhaWxzIG9mIGVhY2ggQVBJIHJlYWQgdGhlIFtvcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vdGVhbWRpZ2l0YWxlL3BkbmQtb3BlbmFwaS1zZXJ2ZXIvYmxvYi9tYXN0ZXIvb3BlbmFwaS9kYWYtb3BlbmFwaS55YW1sKSBmaWxlIG9yIGxhdW5jaCB0aGUgc2VydmljZSBhcyBkZXNjcmliZWQgYmVsb3cuIAoKIyMjIENvbnRleHQKClRoZSBnb2FsIG9mIHRoaXMgcHJvamVjdCBpcyB0byBleHBvc2UgYWNjb3JkaW5nIHRvIG9wZW5hcGkgMyBzdGFuZGFyZHMgYSBzZXQgb2YgQVBJIGRldmVsb3BlZCBmb3IgW1BETkQgKGV4IERhZildKGh0dHA6Ly9kYXRhcG9ydGFsLmRhZi50ZWFtZGlnaXRhbGUuaXQpLiBUaGUgb2xkIEFQSSB3ZXJlIGRldmVsb3BlZCBhY2NvcmRpbmcgdG8gc3dhZ2dlciAyLjAgc3RhbmRhcmRzLCB1c2luZyBTY2FsYS4gV2UgYXJlIG5vdyBwcm94eWluZyB0aG9zZSBhcGkgdGhyb3VnaHQgdGhpcyByZXBvIGZvciBiZWNvbWluZyBjb21wbGlhbnRzIHdpdGggdGhlIG5ldyBzdGFuZGFyZHMuIEJlbG93IHRoZSBsaXN0IG9mIGFwaSB3ZSBhcmUgd3JhcHBpbmc6CgotICBodHRwczovL2dpdGh1Yi5jb20vaXRhbGlhL2RhZi1kYXRhcG9ydGFsLWJhY2tlbmQvYmxvYi9tYXN0ZXIvY29uZi9mdGRfYXBpLnlhbWwKLSBodHRwczovL2dpdGh1Yi5jb20vaXRhbGlhL2RhZi1zcnYtY2F0YWxvZy9ibG9iL2Rldi9jb25mL2NhdGFsb2dfbWFuYWdlci55YW1sCi0gaHR0cHM6Ly9naXRodWIuY29tL2l0YWxpYS9kYWYtc3J2LXNlY3VyaXR5L2Jsb2IvZGV2L2NvbmYvc2VjdXJpdHlfbWFuYWdlci55YW1sCgojIyMgUHJlcmVxdWlzaXRlcwoKT24geW91ciBtYWNoaW5lIHB5dGhvbiAzIHdpdGggcGlwIGFuZCBbdG94XShodHRwczovL3RveC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKSBtdXN0IGJlIGluc3RhbGxlZAoKIyMjIFRlc3QKClRvIHRlc3QgdGhlIEFQSSwganVzdCBydW4KCgpgYGAKdG94IAoKYGBgCgpXaGVuIGRlYnVnZ2luZywgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZyBpbnN0ZWFkLgoKCmBgYAp0b3ggLS0gIC0tcGRiIC0tcGRiLWZhaWx1cmUgLXZzIC0tbm9sb2djYXB0dXJlCgpgYGAKCgojIyMgTGF1bmNoCgpgYGAKdG94IC1lIHJ1bgpgYGAKY29ubmVjdCB0byBbaHR0cDovL2xvY2FsaG9zdDo4MDgwL3BkbmQtb3BlbmFwaS91aS9dKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9wZG5kLW9wZW5hcGkvdWkvKQoKIyMjIERvY2tlciAKCkRvY2tlciBNVVNUIGJlIGluc3RhbGxlZCBvbiB5b3VyIGxvY2FsIG1hY2hpbmUKCmBgYApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3RlYW1kaWdpdGFsZS9wZG5kLW9wZW5hcGktc2VydmVyLmdpdApjZCBwZG5kLW9wZW5hcGktc2VydmVyCmRvY2tlciBidWlsZCAtdCBwZG5kLW9wZW5hcGktc2VydmVyIC4KZG9ja2VyIHJ1biAtcCA4MDgwOjgwODAgcGRuZC1vcGVuYXBpLXNlcnZlcgpgYGAKb3BlbiB5b3VyIGJyb3dzZXIgYXQgW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9wZG5kLW9wZW5hcGkvdWkvXShodHRwOi8vbG9jYWxob3N0OjgwODAvcGRuZC1vcGVuYXBpL3VpLykKCiMjIyBUdXRvcmlhbAoKVGhlIHNlcnZpY2UgZXhwb3NlIHNvbWUgQVBJIGZyb20gUERORC4gSXQgcmVxdWlyZXMgYXV0aGVudGljYXRpb24gdXNpbmcgQmFzaWMgQXV0aCBvciBCZWFyZXIgbWVhbmluZyB5b3UgYXMgdXNlciBtdXN0IGJlIHJlZ2lzdGVyZWQgW2hlcmVdKGh0dHBzOi8vZGF0YXBvcnRhbC5kYWYudGVhbWRpZ2l0YWxlLml0LyMvcmVnaXN0ZXIpLCBhbmQgbXVzdCBiZSB1c2VkIHJlc3BlY3RpbmcgdGhlIHRocm90dGxpbmcgaGVhZGVycyBkZWZpbmVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgTGluZWUgR3VpZGEgb2YgdGhlIG1vZGVsIG9mIGludGVyb3BlcmFiaWxpdHkgdGhhdCB3aWxsIGJlIHJlbGVhc2VkIGJ5IHRoZSBJdGFsaWFuIEdvdmVybm1lbnQgb3JnYW5pemF0aW9ucy4KCkFmdGVyIHJlZ2lzdGVyZCB5b3UgY2FuIGluc2VyIHlvdXIgRW1haWwgYW5kIHBhc3N3b3JkOgoKIVtCYXNpYyBBdXRoXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdGVhbWRpZ2l0YWxlL3BkbmQtb3BlbmFwaS1zZXJ2ZXIvbWFzdGVyL3R1dG9yaWFsL2ltZy9iYXNpY19hdXRoLnBuZykKCk9uY2UgbG9nZ2VkIGluIHdpdGggYmFzaWMgYXV0aCB5b3UgY2FuIGdldCB0aGUgdG9rZW4gYXMgaW4gdGhlIGltYWdlIGJlbG93IGNvcHkgb25seSB0aGUgand0IHZhbHVlCgohW0dldCBqd3RdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90ZWFtZGlnaXRhbGUvcGRuZC1vcGVuYXBpLXNlcnZlci9tYXN0ZXIvdHV0b3JpYWwvaW1nL2dldF9qd3QucG5nKQoKQ29weSBhbmQgcGFzdGUgdGhlIGp3dCBhbmQgaW5zZXJ0IGl0IGZvciBjYWxsaW5nIGVhY2ggQVBJOgoKIVtKd3QgQXV0aF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlYW1kaWdpdGFsZS9wZG5kLW9wZW5hcGktc2VydmVyL21hc3Rlci90dXRvcmlhbC9pbWcvand0X2F1dGgucG5nKQoKTm93IHlvdSBjYW4gY2FsbCB0aGUgQVBJIGFzIGluIHRoZSBpbWFnZSBiZWxvdwoKIVtTZWFyY2ggQVBJXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdGVhbWRpZ2l0YWxlL3BkbmQtb3BlbmFwaS1zZXJ2ZXIvbWFzdGVyL3R1dG9yaWFsL2ltZy9zZWFyY2gucG5nKQoKCgo= readmeEtag: '"d3e9c1b302162c77afc183d00e807750393dae60"' readmeLastModified: Fri, 07 Feb 2020 12:15:43 GMT repositoryId: 179264077 description: >- PDND openapi server is a server for exposing PDND (ex DAF) api following the openapi 3 standard and the interoperability model created: '2019-04-03T10:10:10Z' updated: '2023-03-29T13:34:56Z' language: Python archived: true stars: 1 watchers: 11 forks: 1 owner: pagopa-archive logo: https://avatars.githubusercontent.com/u/127237556?v=4 repoEtag: '"7149c53066734e00fed61848a2b46f28ae0580b0fa9684d004fdcb6002ec32bf"' repoLastModified: Wed, 29 Mar 2023 13:34:56 GMT foundInMaster: true category: Server Implementations id: 4a40f7044edf105fefcc49e471132ff1 oldLocations: - https://github.com/pagopa/pdnd-openapi-server - source: openapi3 tags repository: https://github.com/lsmhun/demo-api-contract v3: true repositoryMetadata: base64Readme: >- IyBTcHJpbmcgQ2xvdWQgQ29udHJhY3QgZGVtbwpbIVtGT1NTQSBTdGF0dXNdKGh0dHBzOi8vYXBwLmZvc3NhLmNvbS9hcGkvcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRmxzbWh1biUyRmRlbW8tYXBpLWNvbnRyYWN0LnN2Zz90eXBlPXNoaWVsZCldKGh0dHBzOi8vYXBwLmZvc3NhLmNvbS9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGbHNtaHVuJTJGZGVtby1hcGktY29udHJhY3Q/cmVmPWJhZGdlX3NoaWVsZCkKWyFbQ2lyY2xlQ0ldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL2xzbWh1bi9kZW1vLWFwaS1jb250cmFjdC5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvbHNtaHVuL2RlbW8tYXBpLWNvbnRyYWN0KQoKClRoaXMgaXMgYSBzbWFsbCBkZW1vIG9mIGNvbnRyYWN0IGJhc2VkIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IHdpdGggW1NwcmluZyBDbG91ZCBDb250cmFjdF0oaHR0cHM6Ly9jbG91ZC5zcHJpbmcuaW8vc3ByaW5nLWNsb3VkLWNvbnRyYWN0LykuIAoKIyMgRG9jdW1lbnRhdGlvbgotIFtFbmdsaXNoIGRvY3VtZW50YXRpb25dKC4vZG9jcy9kZXNjcl9lbi5tZCkKLSBbSHVuZ2FyaWFuIGRvY3VtZW50YXRpb25dKC4vZG9jcy9kZXNjcl9odS5tZCkKCgojIyBMaWNlbnNlClshW0ZPU1NBIFN0YXR1c10oaHR0cHM6Ly9hcHAuZm9zc2EuY29tL2FwaS9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGbHNtaHVuJTJGZGVtby1hcGktY29udHJhY3Quc3ZnP3R5cGU9bGFyZ2UpXShodHRwczovL2FwcC5mb3NzYS5jb20vcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRmxzbWh1biUyRmRlbW8tYXBpLWNvbnRyYWN0P3JlZj1iYWRnZV9sYXJnZSkK readmeEtag: '"5995966a29930531ed5b925a42bad290e3d60bc7"' readmeLastModified: Sat, 27 May 2023 21:16:44 GMT repositoryId: 425954792 description: Spring Cloud Contract demo created: '2021-11-08T18:44:29Z' updated: '2021-12-09T05:35:43Z' language: Java archived: false stars: 1 watchers: 2 forks: 2 owner: lsmhun logo: https://avatars.githubusercontent.com/u/49127995?v=4 license: Apache-2.0 repoEtag: '"e47a0b3609cf1fac5e58a187660bbea6f85fd035c1082a62e1c6c7b69b9df208"' repoLastModified: Thu, 09 Dec 2021 05:35:43 GMT foundInMaster: true category: Server id: 63ba35052b44216d4636fc366beaa5f6 - source: openapi3 tags repository: https://github.com/tryptichon/java11-jakarta-rs-swagger-redoc-demows v3: true repositoryMetadata: base64Readme: >- IyBERU1PIFdTCgpBbiBKYWthcnRhLUpBWC1SUyBza2VsZXRvbiB3ZWJhcHAgdXNpbmc6CgoqIEpha2FydGEtSkFYLVJTIHdpdGggYW5ub3RhdGlvbnMuCiogU3dhZ2dlciBhbm5vdGF0aW9ucyBmb3IgYXV0b21hdGljIG9wZW5hcGkuanNvbi8ueWFtbCBnZW5lcmF0aW9uLgoqIFJlRG9jIHN0YW5kYWxvbmUgdG8gZ2VuZXJhdGUgYSBkb2N1bWVudGF0aW9uIHdlYnNpdGUgZm9yIHRoZSBhcGkuCiogRG9ja2VyIHRvIGNyZWF0ZSBhIHNlbGYtY29udGFpbmVkIGltYWdlIHVzaW5nIHRvbWNhdCAxMC4KCkJlc3QgdG8gYmUgdXNlZCB3aXRoIEludGVsbGlKIElERUEgYW5kIEphdmEgMTEuCgojIyBIYW5kbGluZyBkb2NrZXIgaW1hZ2VzCgpVc2luZyBtYXZlbiB0byBoYW5kbGUgZG9ja2VyIGltYWdlIGNyZWF0aW9uIGFuZCBjbGVhbnVwIGlzIGRvbmUgYnkganVzdCBhY3RpdmF0aW5nIHRoZSBwcm9maWxlIGBkb2NrZXJgLiBUaGlzCmNhbiBiZSBhY3RpdmF0ZWQgdmlhIGAtRGRvY2tlcj10cnVlYCBvbiB0aGUgY29tbWFuZGxpbmUuCgpDcmVhdGUgYSBkb2NrZXIgaW1hZ2U6CgpgYGBzaGVsbAptdm4gcGFja2FnZSAtRGRvY2tlcj10cnVlCmBgYAoKQ2xlYW51cCBhbmQgcmVtb3ZlIHRoZSBkb2NrZXIgaW1hZ2U6CgpgYGBzaGVsbAptdm4gY2xlYW4gLURkb2NrZXI9dHJ1ZQpgYGAKClNlZSBbcG9tLnhtbF0ocG9tLnhtbCkgb24gaG93IHRoaXMgaXMgZG9uZS4KCkEgc2FtcGxlIFtkb2NrZXItY29tcG9zZS55YW1sXShkb2NrZXIvZG9ja2VyLWNvbXBvc2UueWFtbCkgaXMgaW5jbHVkZWQgdG8gc3RhcnQgYSBjb250YWluZXIgZWFzaWx5LiBUaGUKcGFyYW1ldGVyIGBpbWFnZWAgdGhlcmUgbmVlZHMgdG8gYmUgYWRqdXN0ZWQgYnkgaGFuZCB3aGVuIHRoZSBwcm9qZWN0IG5hbWUgLyB2ZXJzaW9uIGNoYW5nZXMuCgpBZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkLCBwb2ludCB5b3VyIGJyb3dzZXIgdG8gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9gLgoKIyMgVXNlZCB0b29scyBhbmQgbGljZW5zZXMKCkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHN3YWdnZXIgYW5kIGFkZGl0aW9uYWwgbGljZW5zZXM6CgojIyMjIFN3YWdnZXIKCiogW1N3YWdnZXIgSU9dKGh0dHBzOi8vc3dhZ2dlci5pby8pCiogW0xpY2Vuc2VdKGh0dHBzOi8vc3dhZ2dlci5pby9saWNlbnNlLykKCiMjIyMgUmVEb2MKCiogW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkpCiogW09mZmljaWFsIHdlYnNpdGVdKGh0dHBzOi8vcmVkb2NseS5jb20vcmVkb2MpCiogW0RlbW8gc2l0ZV0oaHR0cHM6Ly9yZWRvY2x5LmdpdGh1Yi5pby9yZWRvYy8pCiogW0xpY2Vuc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpCgojIyMjIERvY2tlcgoKKiBbT2ZmaWNpYWwgd2Vic2l0ZV0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pCiogW0ZBUSBhYm91dCBsaWNlbnNpbmcgYW5kIHByaWNpbmddKGh0dHBzOi8vd3d3LmRvY2tlci5jb20vcHJpY2luZy9mYXEvKQoKIyMjIyBUb21jYXQKCiogW09mZmljaWFsIHdlYnNpdGVdKGh0dHBzOi8vdG9tY2F0LmFwYWNoZS5vcmcvKQoqIFtMaWNlbnNlXShodHRwczovL3RvbWNhdC5hcGFjaGUub3JnL2xlZ2FsLmh0bWwp readmeEtag: '"85c15fdc7e284da06be26a0b28607fb0f56c3a0a"' readmeLastModified: Tue, 03 May 2022 21:06:07 GMT repositoryId: 484558634 description: An Jakarta-JAX-RS webapp integrating Swagger and ReDOC. created: '2022-04-22T20:08:24Z' updated: '2022-04-29T13:15:36Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: tryptichon logo: https://avatars.githubusercontent.com/u/5908199?v=4 license: MIT repoEtag: '"1c020c6ca64ec73764f8ca8eeb0fbaa7e9184cb9ac429f527037f8fa01ec61fa"' repoLastModified: Fri, 29 Apr 2022 13:15:36 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 2dc01ffb64e91dcd50e502dea6d3c884 - source: openapi3 tags repository: https://github.com/kwangsing3/sample_express v3: true id: 085152b5a0eecfcecbd5cb325709538f repositoryMetadata: base64Readme: >- IyAqKmdzc19sb2dfZG9vcm1hbioqCuiiq+WLleaOpeaUtuaXpeiqjOioiuaBr+eahOe2sui3r+W4uOmnkOacjeWLme+8jOioreioiOeUqOS+huaOpeaUtuWQhOeoruagvOW8j+eahOaXpeiqjOS4pumHjee1hOi9ieeZvOiHs0dlbmVzaXMgd2ViQVBJ44CCIDxici8+CgoqRG9vcm1hbiDkuIDoqZ7lj5boh6rploDooZsq44CCCjxici8+PGJyLz4KCgo= readmeEtag: '"55d0d9bc958ed69ba9e11dc4f55d6fb4dfecaa22"' readmeLastModified: Thu, 20 Oct 2022 08:24:09 GMT repositoryId: 554607502 description: 擁有OpenAPI3.0 規範自動生成文件的NodeJS專案範例 created: '2022-10-20T04:48:02Z' updated: '2023-02-01T06:02:28Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: kwangsing3 logo: https://avatars.githubusercontent.com/u/18378969?v=4 license: MIT repoEtag: '"0a87baa5d825c48a99cdd52e9ae6ba0452cf7ebd792d48340961ea09d37b4205"' repoLastModified: Wed, 01 Feb 2023 06:02:28 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/lugudu/gestor-medico-spring-jpa v3: true id: b0589ff445d8c6b8d15fca17e784c3ab repositoryMetadata: base64Readme: >- IyBnZXN0b3ItbWVkaWNvLXNwcmluZy1qcGEKIEFQSSBSRVNUIGNvbiBKYXZhIFNwcmluZyBCb290IDMsIFNwcmluZyBTZWN1cml0eSB5IEpQQQo= readmeEtag: '"c2988023b245481580179e948199b0dcf74861af"' readmeLastModified: Fri, 10 Mar 2023 10:12:22 GMT repositoryId: 610233940 description: API REST con SpringBoot 3 y JPA created: '2023-03-06T11:14:31Z' updated: '2023-03-14T11:39:04Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: LuGuDu logo: https://avatars.githubusercontent.com/u/70801680?v=4 repoEtag: '"7c1780f16e1d0a469746ef01fb2ffeae6d3a2b8d4049ecd52f7a6082759088c1"' repoLastModified: Tue, 14 Mar 2023 11:39:04 GMT category: - Low-level Tooling - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/2697sahil/contactmanager v3: true id: c1e9c2933115577a7f13758972de1b3a repositoryMetadata: base64Readme: >- IyBDb250YWN0TWFuYWdlcgoKVGhlIENvbnRhY3RNYW5hZ2VyIHByb2plY3QgaXMgYSByb2J1c3QgQVBJIGZvciBtYW5hZ2luZyBjb250YWN0cywgYnVpbHQgd2l0aCBPcGVuQVBJIGFuZCB1dGlsaXppbmcgdGhlIHBvd2VyIG9mIGNvZGUgZ2VuZXJhdGlvbiB3aXRoIFNRTExpdGUgYXMgdGhlIHVuZGVybHlpbmcgZGF0YWJhc2UuCgojIyBGZWF0dXJlcwoKLSAqKkNyZWF0ZSBDb250YWN0Kio6IEVhc2lseSBjcmVhdGUgYSBuZXcgY29udGFjdCBieSBwcm92aWRpbmcgdGhlIHJlcXVpcmVkIGRldGFpbHMgdXNpbmcgYSBzaW1wbGUgUE9TVCByZXF1ZXN0LgoKLSAqKlNlYXJjaCBDb250YWN0cyoqOiBFZmZpY2llbnRseSBzZWFyY2ggZm9yIGNvbnRhY3RzIGJhc2VkIG9uIGZpcnN0IG5hbWUsIGxhc3QgbmFtZSwgb3IgYW55IG90aGVyIHBhcmFtZXRlciBvZiB5b3VyIGNob2ljZSB1c2luZyBhIEdFVCByZXF1ZXN0LgoKLSAqKlVwZGF0ZSBDb250YWN0IERldGFpbHMqKjogU2VhbWxlc3NseSB1cGRhdGUgY29udGFjdCBpbmZvcm1hdGlvbiBieSBzZW5kaW5nIGEgUFVUIHJlcXVlc3Qgd2l0aCB0aGUgY29udGFjdCBJRCBhbmQgdGhlIHVwZGF0ZWQgZGV0YWlscy4KCi0gKipEZWxldGUgQ29udGFjdCoqOiBSZW1vdmUgYSBjb250YWN0IGZyb20gdGhlIGRhdGFiYXNlIHdpdGggYSBERUxFVEUgcmVxdWVzdCB1c2luZyB0aGUgY29udGFjdCBJRC4KCiMjIE9wZW5BUEkgU3BlY2lmaWNhdGlvbgoKVGhlIEFQSSBmb2xsb3dzIHRoZSBPcGVuQVBJIDMuMC4wIHNwZWNpZmljYXRpb24gYW5kIGNhbiBiZSBlYXNpbHkgaW50ZWdyYXRlZCBpbnRvIHlvdXIgcHJvamVjdHMuIFRoZSBBUEkgZGVmaW5pdGlvbiBpcyBjbGVhbiBhbmQgY29uY2lzZSwgbWFraW5nIGl0IHN0cmFpZ2h0Zm9yd2FyZCB0byB1bmRlcnN0YW5kIGFuZCB3b3JrIHdpdGguCgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4wCmluZm86CiAgdGl0bGU6IENvbnRhY3RNYW5hZ2VyIEFQSQogIHZlcnNpb246IDEuMC4wCgpzZXJ2ZXJzOgogIC0gdXJsOiBodHRwOi8vbG9jYWxob3N0OjgwODAvCgojIC4uLiAocGF0aHMsIGNvbXBvbmVudHMsIGV0Yy4pCmBgYAoKIyMgQ29kZSBHZW5lcmF0aW9uCgpUaGUgcHJvamVjdCBzaG93Y2FzZXMgdGhlIHVzZSBvZiBPcGVuQVBJIGNvZGUgZ2VuZXJhdGlvbiB0byBzdHJlYW1saW5lIHRoZSBkZXZlbG9wbWVudCBwcm9jZXNzLiBUaGUgQVBJIGRlZmluaXRpb24gc2VydmVzIGFzIGEgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCwgYWxsb3dpbmcgYXV0b21hdGljIGdlbmVyYXRpb24gb2Ygc2VydmVyLXNpZGUgYW5kIGNsaWVudC1zaWRlIGNvZGUsIHJlZHVjaW5nIGRldmVsb3BtZW50IHRpbWUgYW5kIHBvdGVudGlhbCBlcnJvcnMuCgojIyBEYXRhYmFzZTogU1FMTGl0ZQoKQ29udGFjdE1hbmFnZXIgdXRpbGl6ZXMgU1FMTGl0ZSBhcyBpdHMgZGF0YWJhc2UsIHByb3ZpZGluZyBhIGxpZ2h0d2VpZ2h0LCBlbWJlZGRlZCByZWxhdGlvbmFsIGRhdGFiYXNlIHNvbHV0aW9uLiBTUUxMaXRlIGlzIGtub3duIGZvciBpdHMgc2ltcGxpY2l0eSBhbmQgZWZmaWNpZW5jeSwgbWFraW5nIGl0IGEgcGVyZmVjdCBmaXQgZm9yIHByb2plY3RzIHdpdGggbW9kZXJhdGUgZGF0YSBzdG9yYWdlIG5lZWRzLgoKIyMgR2V0dGluZyBTdGFydGVkCgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeS4KMi4gQ29uZmlndXJlIHlvdXIgU1FMTGl0ZSBkYXRhYmFzZS4KMy4gUnVuIHRoZSBzZXJ2ZXIuCjQuIFN0YXJ0IG1hbmFnaW5nIHlvdXIgY29udGFjdHMgd2l0aCBlYXNlLgoKRmVlbCBmcmVlIHRvIGV4cGxvcmUgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbiBpbiB0aGUgYG9wZW5hcGkueWFtbGAgZmlsZSBhbmQgbGV2ZXJhZ2UgdGhlIHBvd2VyIG9mIGNvZGUgZ2VuZXJhdGlvbiBmb3IgYSBzbW9vdGggZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZS4gSWYgeW91IGVuY291bnRlciBhbnkgaXNzdWVzIG9yIGhhdmUgc3VnZ2VzdGlvbnMsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIG9yIHN1Ym1pdCBhIHB1bGwgcmVxdWVzdC4gSGFwcHkgY29kaW5nIQ== readmeEtag: '"978351d12c8d1946e3a5f39f69c9e4f72d7661c7"' readmeLastModified: Sun, 25 Feb 2024 16:03:36 GMT repositoryId: 743109520 description: >- The ContactManager project is a robust API for managing contacts, built with OpenAPI and utilizing the power of code generation with SQLLite as the underlying database. created: '2024-01-14T11:11:12Z' updated: '2024-01-28T07:01:17Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: 2697sahil logo: https://avatars.githubusercontent.com/u/67955445?v=4 repoEtag: '"693e4e46ae283477ea2e1e872f74a95ce7200628b7a205c89c6ab57d679e5058"' repoLastModified: Sun, 28 Jan 2024 07:01:17 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/bbakla/oap_spring_boot3_code_generation v3: true id: 4c8df6edd80e681c509fd53b96094a0d repositoryMetadata: base64Readme: >- VGhlc2UgYXJlIHR3byBTcHJpbmcgQm9vdCBwcm9qZWN0cyBkZXNpZ25lZCB0byBzaG93Y2FzZSBjb2RlIGdlbmVyYXRpb24gYW5kIEFQSSBkb2N1bWVudGF0aW9uIGluIFNwcmluZyBCb290IDMgdXNpbmcgT3BlbkFQSSwgZW1wbG95aW5nIGJvdGggTWF2ZW4gYW5kIEdyYWRsZSBidWlsZCB0b29scy4K readmeEtag: '"8ea764644b2ca5ed1bcfd4d5db9db787cd17bbcc"' readmeLastModified: Sat, 02 Mar 2024 22:46:41 GMT repositoryId: 762329485 description: null created: '2024-02-23T14:55:22Z' updated: '2024-08-21T07:14:56Z' language: Java archived: false stars: 1 watchers: 1 forks: 1 owner: bbakla logo: https://avatars.githubusercontent.com/u/7812609?v=4 repoEtag: '"f5e7152e6aa885c0069680779513b57d727ecd1efa0f945b1120000e8aa3e124"' repoLastModified: Wed, 21 Aug 2024 07:14:56 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sudokuru/puzzle v3: true id: 9d8896537414d70c7c57f9878d6430bb repositoryMetadata: base64Readme: >- PiBbIUlNUE9SVEFOVF0gIAo+IFRoaXMgcmVwb3NpdG9yeSBpcyByZWFkLW9ubHkgLyBhcmNoaXZlZCBhbmQgd2lsbCBub3QgcmVjaWV2ZSB1cGRhdGVzLgoKIyBbVHlwZWRvYyBEb2N1bWVudGF0aW9uIFdlYnNpdGVdKGh0dHBzOi8vc3Vkb2t1cnUuZ2l0aHViLmlvL0JhY2tlbmQvKTxicj4KCiMgVG9kbwoKLSBbIF0gQWRkIGxpY2Vuc2UgZmlsZSBhbmQgZGlzdHJpYnV0ZSB0byBhbGwgcmVwb3MgdXNpbmcgR2l0SHViIEFjdGlvbiAoVGhvbWFzKQotIFsgXSBGaW5pc2ggd3JpdGluZyBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgcHV6emxlIGVuZHBvaW50IChUaG9tYXMpCi0gWyBdIFdyaXRlIEdpdEh1YiBob29rIHRvIHJ1biBhbGwgdGVzdHMgYmVmb3JlIFB1c2ggdG8gcmVwbyAoVGhvbWFzKQotIFt4XSBTZXQgdXAgRGV2IGFuZCBQcm9kIExhbWJkYSBlbnZpcm9ubWVudHMgKFRob21hcy9HcmVnb3J5KQotIFsgXSBBZGQgTWVybWFpZCBkb2N1bWVudGF0aW9uIGFuZCBkaXN0cmlidXRlIHRvIGFsbCByZXBvcyB1c2luZyBHaXRIdWIgQWN0aW9uIChUaG9tYXMpCi0gWyBdIENsZWFuIHVwIGRvY2tlciBpbXBsZW1lbnRhdGlvbiAoYXV0by1yZWJ1aWxkKSAoVGhvbWFzKQotIFsgXSBEaXNwbGF5IGludGVncmF0aW9uIHRlc3QgcmVzdWx0cyB3aXRoIHJlcG9ydGVyIChUaG9tYXMpCi0gWyBdIERlY2lkZSBvbiBpbml0aWFsIEpTT04gc3RydWN0dXJlIGZvciByZW1haW5pbmcgZW5kcG9pbnRzIChUZWFtKQotIFsgXSBXcml0ZSBsb2dpYyBmb3IgcmVtYWluaW5nIGVuZHBvaW50cyAoRGFuaWVsKQotIFsgXSBXcml0ZSBzYW5pdGF0aW9uIGFuZCB2YWxpZGF0aW9uIGZvciByZW1haW5pbmcgZW5kcG9pbnRzIChEYW5pZWwpCi0gWyBdIFdyaXRlIFBvc3RtYW4gaW50ZWdyYXRpb24gdGVzdHMgZm9yIHJlbWFpbmluZyBlbmRwb2ludHMgKERhbmllbCkKLSBbIF0gU2V0IHVwIEF1dGgwIHRva2VuIGF1dGhlbnRpY2F0aW9uIChUaG9tYXMvRGFuaWVsKQotIFsgXSBXcml0ZSB1cCBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGZvciBlbmRwb2ludHMgKFRob21hcy9EYW5pZWwpCi0gWyBdIFJlc29sdmUgcmVtYWluaW5nIGBgYC8vdG9kb2BgYCBpdGVtcyAoVGhvbWFzL0RhbmllbCkKLSBbIF0gRGV0ZXJtaW5lIGhvdyB0byBzZXQgUHJvZCBlbnZpcm9ubWVudCB0byB1c2UgdmVyc2lvbmluZyBjb250cm9sIChUaG9tYXMvR3JlZ29yeSkKLSBbIF0gSW1wbGVtZW50IHVuaXQgdGVzdHMgaWYgbmVlZGVkIChUaG9tYXMvRGFuaWVsKQoKIyBEZXZlbG9wZXIgU2V0dXAKCjEuIEluc3RhbGwgRG9ja2VyIG9uIHlvdXIgbWFjaGluZS4gVHV0b3JpYWwgaXMgbGlua2VkIGJlbG93Ojxicj4KICAgWyFbRG9ja2VyIFR1dG9yaWFsXShodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS8yZXpOcXFhU2pxOC8wLmpwZyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9MmV6TnFxYVNqcTgpPGJyPgoyLiBUaGUgTW9uZ28gaW1hZ2UgY2FuIGJlIHJ1biB3aXRoIHRoaXMgY29tbWFuZCBpbiB0aGUgcm9vdCBmb2xkZXI6PGJyPgogICBOb3RlIHVzZSBgYGBzdWRvYGBgIG9uIExpbnV4L01hYzxicj4KYGBgY29uc29sZQpucG0gcnVuIGRvY2tlcgpgYGAKMy4gQ3JlYXRlIC5lbnYgZmlsZSB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlcwo0LiBSdW4gbnBtIGkKNS4gVGhlIGFwcCBjYW4gdGhlbiBiZSBydW4gd2l0aCB0aGUgY29tbWFuZDo8YnI+CmBgYGNvbnNvbGUKbnBtIHJ1biBzdGFydApgYGAKNi4gSW50ZWdyYXRpb24gdGVzdHMgY2FuIGJlIHJ1biB3aGVuIHRoZSBhcHAgaXMgcnVubmluZyB3aXRoIHRoaXMgY29tbWFuZDo8YnI+CmBgYGNvbnNvbGUKbnBtIHJ1biB0ZXN0OmludGVncmF0aW9uCmBgYAoKIyBQb3N0bWFuCgpXZSBhcmUgdXNpbmcgUG9zdG1hbiBmb3IgaW50ZWdyYXRpb24gdGVzdHMuPGJyPgpUaGUgZm9sbG93aW5nIHZpZGVvIGlzIHZlcnkgaGVscGZ1bCBmb3IgdW5kZXJzdGFuZGluZyBob3cgUG9zdG1hbiB3b3JrcyB3aXRoIEdpdEh1Yjo8YnI+ClshW1Bvc3RtYW4gVHV0b3JpYWxdKGh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpL2NCN21DdVlldUFVLzAuanBnKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1jQjdtQ3VZZXVBVSk8YnI+CgojIyMgQmVsb3cgaXMgYW4gZXhhbXBsZSBzdHJ1Y3R1cmUgZm9yIHRlc3RzIGJhc2VkIG9uIFB1enpsZSBlbmRwb2ludApUaGUgUG9zdG1hbiB0ZXN0cyBhcmUgc3RydWN0dXJlZCBiYXNlZCBvbiB0aGUgZW5kcG9pbnQgbmFtZSwgdGhlIHR5cGUgb2YgcmVxdWVzdCwgYW5kIHRoZSBleHBlY3RlZCByZXNwb25zZSBjb2RlPGJyPgoKIVtwb3N0bWFuX3N0cnVjdHVyZS5wbmddKERvY3VtZW50YXRpb24vaW1hZ2VzL3Bvc3RtYW5TdHJ1Y3R1cmUucG5nKTxicj4KClRoaXMgc3RydWN0dXJlIGFsbG93cyB1cyB0byB3cml0ZSB0ZXN0IGNhc2VzIGZvciB0aGUgQ29kZSA0MDAgZm9sZGVyIHdoaWNoIHdvdWxkIGJlIHJ1biBmb3IgYWxsIHRlc3RzIGluIHRoYXQgZm9sZGVyLjxicj4KPGJyPgpBbGwgdGVzdHMgZm9yIHRoZSBTdWRva3VydS1CYWNrZW5kIGhhdmUgYWNjZXNzIHRvIHRoZSBTdWRva3VydS1CYWNrZW5kIFByZS1yZXF1ZXN0IHNjcmlwdHMgYW5kIHRlc3RzLjxicj4KV2UgY3VycmVudGx5IGhhdmUgYSBQcmUtcmVxdWVzdCBzY3JpcHQgdGhhdCBkZWxldGVzIHRoZSB3aG9sZSBkYXRhYmFzZSBiZWZvcmUgZXZlcnkgdGVzdC48YnI+CldlIGFsc28gaGF2ZSBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgZm9yIGFsbCBERUxFVEUgcmVxdWVzdHMgdG8gdmFsaWRhdGUgdGhlIHJlc3BvbnNlLjxicj4KCiFbYmFja2VuZF9wcmVfcmVxdWVzdF9zY3JpcHRzLnBuZ10oRG9jdW1lbnRhdGlvbi9pbWFnZXMvQmFja2VuZC1QcmUtUmVxdWVzdC1TY3JpcHRzLnBuZyk8YnI+CgojIyMjIEluc2lkZSB0aGUgUHV6emxlIGVuZHBvaW50IGZvbGRlciB3ZSBoYXZlIHNoYXJlZCBmdW5jdGlvbnMgdG8gdmFsaWRhdGUgYSBwdXp6bGUgcmVzcG9uc2UgYW5kIHRvIGdlbmVyYXRlIHNoYXJlZCBwdXp6bGUgSlNPTiBmb3IgUHJlLVJlcXVlc3Qgc2NyaXB0cyBmb3Igb3RoZXIgdGVzdHMuPGJyPgoKIVtwdXp6bGVfcmVzcG9uc2VfY2hlY2tlci5wbmddKERvY3VtZW50YXRpb24vaW1hZ2VzL3B1enpsZV9yZXNwb25zZV9jaGVja2VyLnBuZyk8YnI+CiMjIyMgVGhlIGJlbG93IGZ1bmN0aW9ucyB0YWtlIGluIGFuIGludGVnZXIgYW5kIHJldHVybiBlaXRoZXIgdmFsaWQgSlNPTiBvciBhbiBvYmplY3QgZm9yIHJlZmVyZW5jZS48YnI+CiFbc2hhcmVkX3B1enpsZXNfZm9yX3Rlc3RzLnBuZ10oRG9jdW1lbnRhdGlvbi9pbWFnZXMvc2hhcmVkX3B1enpsZXNfZm9yX3Rlc3RzLnBuZyk8YnI+CgojIyMjIEluc2lkZSB0aGUgIkNvZGUgMjAxIiBmb2xkZXIgd2UgaGF2ZSBhIHRlc3QgY2FzZSB0aGF0IHdpbGwgYmUgcnVuIGZvciBhbGwgdGVzdHMgaW5zaWRlIG9mIHRoZSBmb2xkZXIuPGJyPgohW3NoYXJlZF9yZXNwb25zZV9jb2RlX3Rlc3QucG5nXShEb2N1bWVudGF0aW9uL2ltYWdlcy9zaGFyZWRfcmVzcG9uc2VfY29kZV90ZXN0LnBuZyk8YnI+Cg== readmeEtag: '"fc56dbd9e10debb1f3a6ba9bfe9eacafca4cca16"' readmeLastModified: Fri, 23 Aug 2024 00:41:57 GMT repositoryId: 559546165 description: Backend API for Sudokuru created: '2022-10-30T13:07:50Z' updated: '2024-08-23T00:42:40Z' language: TypeScript archived: true stars: 1 watchers: 0 forks: 1 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"c0295c204c91bdf3cff9b3c5405e21d45313d5d0f9a4d9519b806eb8a1f82575"' repoLastModified: Fri, 23 Aug 2024 00:42:40 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/sudokuru/backend - source: openapi3 tags repository: https://github.com/listendev/pkg v3: true id: 809b021239d9fe78081a04950e153301 repositoryMetadata: base64Readme: >- IyBwa2cKCkEgY29sbGVjdGlvbiBvZiBjb21tb24gcGFja2FnZXMuCgojIyBQYWNrYWdlcwoKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL2FuYWx5c2lzcmVxdWVzdF0oL2FuYWx5c2lzcmVxdWVzdCkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL2FwaXNwZWNdKC9hcGlzcGVjKQotIFtnaXRodWIuY29tL2xpc3RlbmRldi9wa2cvZGV0ZWN0aW9uL3R5cGVdKC9kZXRlY3Rpb24vdHlwZSkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL2Vjb3N5c3RlbV0oL2Vjb3N5c3RlbSkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL2luZm9ybWF0aW9uYWwvdHlwZV0oL2luZm9ybWF0aW9uYWwvdHlwZSkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL2xvY2tmaWxlXSgvbG9ja2ZpbGUpCi0gW2dpdGh1Yi5jb20vbGlzdGVuZGV2L3BrZy9tYW5pZmVzdF0oL21hbmlmZXN0KQotIFtnaXRodWIuY29tL2xpc3RlbmRldi9wa2cvbWFwL3V0aWxdKC9tYXAvdXRpbCkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL21vZGVsc10oL21vZGVscykKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL25wbV0oL25wbSkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL29ic2VydmFiaWxpdHldKC9vYnNlcnZhYmlsaXR5KQotIFtnaXRodWIuY29tL2xpc3RlbmRldi9wa2cvcHlwaV0oL3B5cGkpCi0gW2dpdGh1Yi5jb20vbGlzdGVuZGV2L3BrZy9yYW5kXSgvcmFuZCkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL3N0cmluZy91dGlsXSgvc3RyaW5nL3V0aWwpCi0gW2dpdGh1Yi5jb20vbGlzdGVuZGV2L3BrZy90eXBlXSgvdHlwZSkKLSBbZ2l0aHViLmNvbS9saXN0ZW5kZXYvcGtnL3ZhbGlkYXRlXSgvdmFsaWRhdGUpCi0gW2dpdGh1Yi5jb20vbGlzdGVuZGV2L3BrZy92ZXJkaWN0Y29kZV0oL3ZlcmRpY3Rjb2RlKQoKIyMgR2VuZXJhdGlvbgoKYGBgCmdvIGluc3RhbGwgZ29sYW5nLm9yZy94L3Rvb2xzL2NtZC9zdHJpbmdlckBsYXRlc3QKZ28gaW5zdGFsbCBnaXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuL2NtZC9vYXBpLWNvZGVnZW5AbWFzdGVyICMgVXNlIG1hc3RlciBicmFuY2gKZ28gZ2VuZXJhdGUgLXggLi92ZXJkaWN0Y29kZQpnbyBnZW5lcmF0ZSAteCAuL2Vjb3N5c3RlbQpnbyBnZW5lcmF0ZSAteCAuL21vZGVscy9jYXRlZ29yeQpnbyBnZW5lcmF0ZSAteCAuL21vZGVscy9zZXZlcml0eQpnbyBnZW5lcmF0ZSAteCAuL21vZGVscwpnbyBnZW5lcmF0ZSAteCAuL2xvY2tmaWxlCmdvIGdlbmVyYXRlIC14IC4vbWFuaWZlc3QKZ28gZ2VuZXJhdGUgLXggLi9hcGlzcGVjCmdvIGdlbmVyYXRlIC14IC4vZGV0ZWN0aW9uL3R5cGUKZ28gZ2VuZXJhdGUgLXggLi9pbmZvcm1hdGlvbmFsL3R5cGUKYGBgCg== readmeEtag: '"d243c5a4c82f56ce88bf595e42579f3ebf1a817d"' readmeLastModified: Wed, 04 Sep 2024 16:05:57 GMT repositoryId: 665077779 description: >- Models for the analysis requests to listen.dev and the consequent verdicts responses created: '2023-07-11T11:39:58Z' updated: '2024-09-04T16:06:01Z' language: Go archived: false stars: 1 watchers: 3 forks: 0 owner: listendev logo: https://avatars.githubusercontent.com/u/103680976?v=4 license: Apache-2.0 repoEtag: '"b854954a2ebc0224b9543331f1d25b4a140dfe16255494effcff3b836de477d8"' repoLastModified: Wed, 04 Sep 2024 16:06:01 GMT category: Parsers foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/goodluckxu-go/goapi v3: true id: 4143f283ad0108cc2ea084b428069d65 repositoryMetadata: base64Readme: >- IyBnb2FwaQpVc2luZyB0aGUgSFRUUCBmcmFtZXdvcmsgb2YgT3BlbkFQSTMuMSBkb2N1bWVudGF0aW9uCgpFbmdsaXNoIHwgW+S4reaWh10oUkVBRE1FX3poLm1kKQoKIyMgdXNhZ2UKfn5+YmFzaApnbyBnZXQgZ2l0aHViLmNvbS9nb29kbHVja3h1LWdvL2dvYXBpCn5+fgptYWluLmdvCn5+fmdvCmltcG9ydCAoCgkiZ2l0aHViLmNvbS9mYXRpaC9jb2xvciIKCSJnaXRodWIuY29tL2dvb2RsdWNreHUtZ28vZ29hcGkiCikKCmZ1bmMgbWFpbigpIHsKCWNvbG9yLk5vQ29sb3IgPSB0cnVlIC8vIFR1cm4gb2ZmIHRoZSBkZWZhdWx0IGxvZ2dpbmcgY29uc29sZSBjb2xvcgoJYXBpIDo9IGdvYXBpLkdvQVBJKHRydWUsICIvZG9jcyIpCglhcGkuU2V0UmVzcG9uc2VNZWRpYVR5cGUoZ29hcGkuSlNPTikKCWFwaS5IVFRQRXhjZXB0aW9uSGFuZGxlcihmdW5jKGh0dHBDb2RlIGludCwgZGV0YWlsIHN0cmluZykgZ29hcGkuUmVzcG9uc2UgewoJCXJldHVybiAmZ29hcGkuSFRUUFJlc3BvbnNlW0Vycm9yXXsKCQkJSHR0cENvZGU6IGh0dHBDb2RlLCAKCQkJQm9keTogRXJyb3J7CgkJCQlDb2RlOiAgaHR0cENvZGUsIAoJCQkJRXJyb3I6IGRldGFpbCwKCQkJfSwKCQl9Cgl9KQoJYXBpLkluY2x1ZGVSb3V0ZXIoJkluZGV4Q29udHJvbGxlcnt9LCAiL3YxIiwgdHJ1ZSwgZnVuYyhjdHggKmdvYXBpLkNvbnRleHQpIHsKCQljdHguTmV4dCgpCgl9KQoJXyA9IGFwaS5SdW4oIjEyNy4wLjAuMTo4MDgwIikKfQp+fn4KdXNlcl9jb250cm9sbGVyLmdvCn5+fmdvCnR5cGUgVXNlckNvbnRyb2xsZXIgc3RydWN0IHsKfQoKdHlwZSBVc2VyTGlzdFJvdXRlciBzdHJ1Y3Qgewp9Cgp0eXBlIFJlcSBzdHJ1Y3QgewoJUGFnZSBpbnQgYGpzb246InBhZ2UiIGRlc2M6Im5vdyBwYWdlIiBndDoiMCJgCglMaW1pdCBpbnQgYGpzb246InBhZ2UiIGRlc2M6ImxpbWl0IGEgcGFnZSBjb3VudCIgZ3RlOiIxMCIgbHRlOiIxMDAiYAp9CgpmdW5jICh1ICpVc2VyTGlzdFJvdXRlcikgSW5kZXgoaW5wdXQgc3RydWN0IHsKCXJvdXRlciAgZ29hcGkuUm91dGVyIGBwYXRoOiIvaW5kZXgve2lkfSIgbWV0aG9kOiJwdXQiIHN1bW1hcnk6InRlc3QgYXBpIiBkZXNjOiJ0ZXN0IGFwaSIgdGFnczoiYWRtaW4iYAoJQXV0aCAgICAqQWRtaW5BdXRoCglJRCAgICAgIHN0cmluZyBgcGF0aDoiaWQiIHJlZ2V4cDoiXlxkKyQiYCAvLyBwYXRoIAoJUmVxICAgICBSZXEgYGJvZHk6Impzb24iYAp9KSBSZXNwIHsKCXJldHVybiBSZXNwe30KfQoKLy8gSW1wbGVtZW50IEhUVFBCZWFyZXIgaW50ZXJmYWNlCnR5cGUgQWRtaW5BdXRoIHN0cnVjdCB7CglBZG1pbiAgc3RyaW5nICAgICAgICAgIC8vIERlZmluZSBhIHZhbHVlIGFuZCByZXRyaWV2ZSBpdCBmcm9tIHRoZSBjb250cm9sbGVyCn0KCmZ1bmMgKGggKkFkbWluQXV0aCkgSFRUUEJlYXJlcih0b2tlbiBzdHJpbmcpIHsKCWlmIHRva2VuICE9ICIxMjM0NTYiIHsKCQlyZXNwb25zZS5IVFRQRXhjZXB0aW9uKDQwMSwgInRva2VuIGlzIGVycm9yIikgICAKCX0KCWguQWRtaW4gPSAiYWRtaW4iCn0KCi8vIEltcGxlbWVudCBIVFRQQmFzaWMgaW50ZXJmYWNlCnR5cGUgQWRtaW5BdXRoIHN0cnVjdCB7CglBZG1pbiAgc3RyaW5nICAgICAgICAgIC8vIERlZmluZSBhIHZhbHVlIGFuZCByZXRyaWV2ZSBpdCBmcm9tIHRoZSBjb250cm9sbGVyCn0KCmZ1bmMgKGggKkFkbWluQXV0aCkgSFRUUEJhc2ljKHVzZXJuYW1lLHBhc3N3b3JkIHN0cmluZykgewoJaWYgdXNlcm5hbWUgIT0gImFkbWluIiB8fCBwYXNzd29yZCAhPSAiMTIzNDU2IiB7CgkJcmVzcG9uc2UuSFRUUEV4Y2VwdGlvbig0MDEsICJ0b2tlbiBpcyBlcnJvciIpCgl9IAoJaC5BZG1pbiA9ICJhZG1pbiIKfQoKCi8vIEltcGxlbWVudCBBcGlLZXkgaW50ZXJmYWNlCnR5cGUgQWRtaW5BdXRoIHN0cnVjdCB7CglUb2tlbiAgc3RyaW5nICAgYGhlYWRlcjoiVG9rZW4iYAoJQWRtaW4gIHN0cmluZyAgICAgICAgICAvLyBEZWZpbmUgYSB2YWx1ZSBhbmQgcmV0cmlldmUgaXQgZnJvbSB0aGUgY29udHJvbGxlcgp9CgpmdW5jIChoICpBZG1pbkF1dGgpIEFwaUtleSgpIHsKCWlmIGguVG9rZW4gIT0gIjEyMzQ1NiIgewoJCXJlc3BvbnNlLkhUVFBFeGNlcHRpb24oNDAxLCAidG9rZW4gaXMgZXJyb3IiKQoJfQoJaC5BZG1pbiA9ICJhZG1pbiIKfQp+fn4KIyMgVmVyaWZ5IG11bHRpbGluZ3VhbCBTZXR0aW5ncwpZb3UgY2FuIGltcGxlbWVudCB0aGUgJ2dvYXBpLkxhbmcnIGludGVyZmFjZSB5b3Vyc2VsZgp+fn5nbwphcGkuU2V0TGFuZygmbGFuZy5aaENue30pIC8vIERlZmF1bHQgJ0VuVXMnIEVuZ2xpc2ggY29tbWVudHMKfn5+CiMjIExvZyBvdXRwdXQgc2V0dGluZwpTZXQgYmVmb3JlIGluaXRpYWxpemluZyB0aGUgYXBpCn5+fmdvCmdvYXBpLlNldExvZ0xldmVsKGdvYXBpLkxvZ0luZm8gfCBnb2FwaS5Mb2dXYXJuaW5nKQp+fn4KIyMjICdnb2FwaS5Sb3V0ZXInIHRhZyBmaWVsZCBhbm5vdGF0aW9uCi0gcGF0aDogQWNjZXNzIFJvdXRpbmcKLSBtZXRob2Q6IEFjY2VzcyBtZXRob2QuIE11bHRpcGxlIGNvbnRlbnRzIHNlcGFyYXRlZCBieSAnLCcKLSBzdW1tYXJ5OiBBIHNob3J0IHN1bW1hcnkgb2YgdGhlIEFQSS4KLSBkZXNjOiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBBUEkuIENvbW1vbk1hcmsgc3ludGF4IE1BWSBiZSB1c2VkIGZvciByaWNoIHRleHQgcmVwcmVzZW50YXRpb24uCi0gdGFnczogTXVsdGlwbGUgY29udGVudHMgc2VwYXJhdGVkIGJ5ICcsJwojIyMgQW5ub3RhdGlvbiBvZiBwYXJhbWV0ZXIgc3RydWN0dXJlIHRhZyBpbiB0aGUgbWV0aG9kCi0gaGVhZGVyCiAgLSBDYW4gdXNlIGNvbW1vbmx5IHVzZWQgdHlwZXMocHRyLCBzbGljZSksIGluIHNsaWNlIHR5cGUgdXNlICcsJyBzcGxpdAogIC0gVmFsdWUgaXMgYW4gYWxpYXMgZm9yIGEgZmllbGQsICdvbWl0ZW1wdHknIGlzIG51bGxhYmxlCi0gY29va2llCiAgLSBDYW4gdXNlIGNvbW1vbmx5IHVzZWQgdHlwZXMocHRyLCBzbGljZSkgb3IgJypodHRwLkNvb2tpZScsIGluIHNsaWNlIHR5cGUgdXNlICcsJyBzcGxpdAogIC0gVmFsdWUgaXMgYW4gYWxpYXMgZm9yIGEgZmllbGQsICdvbWl0ZW1wdHknIGlzIG51bGxhYmxlCi0gcXVlcnkKICAtIENhbiB1c2UgY29tbW9ubHkgdXNlZCB0eXBlcyhwdHIsIHNsaWNlKQogIC0gVmFsdWUgaXMgYW4gYWxpYXMgZm9yIGEgZmllbGQsICdvbWl0ZW1wdHknIGlzIG51bGxhYmxlCi0gcGF0aAogIC0gQ2FuIHVzZSBjb21tb25seSB1c2VkIHR5cGVzKHB0ciwgc2xpY2UpLCBpbiBzbGljZSB0eXBlIHVzZSAnLCcgc3BsaXQKICAtIFZhbHVlIGlzIGFuIGFsaWFzIGZvciBhIGZpZWxkLCAnb21pdGVtcHR5JyBpcyBudWxsYWJsZQotIGZvcm0KICAtIENhbiB1c2UgY29tbW9ubHkgdXNlZCB0eXBlcyhwdHIsIHNsaWNlKSwgaW4gc2xpY2UgdHlwZSB1c2UgJywnIHNwbGl0CiAgLSBkZWZhdWx0IG1lZGlhIHR5cGUgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsIGlmIGZpbGUgZXhpc3RzICdtdWx0aXBhcnQvZm9ybS1kYXRhJwogIC0gVmFsdWUgaXMgYW4gYWxpYXMgZm9yIGEgZmllbGQsICdvbWl0ZW1wdHknIGlzIG51bGxhYmxlCi0gZmlsZQogIC0gQ2FuIHVzZSBjb21tb25seSB1c2VkICcqbXVsdGlwYXJ0LkZpbGVIZWFkZXInIG9yICdbXSptdWx0aXBhcnQuRmlsZUhlYWRlcicKICAtIGRlZmF1bHQgbWVkaWEgdHlwZSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScKICAtIFZhbHVlIGlzIGFuIGFsaWFzIGZvciBhIGZpZWxkLCAnb21pdGVtcHR5JyBpcyBudWxsYWJsZQotIGJvZHkKICAtIFRoZSB2YWx1ZXMgYXJlICd4bWwnIGFuZCAnanNvbicsIE11bHRpcGxlIHVzZXMgJywnIHNlZ21lbnRhdGlvbgogIC0gVGhlIHZhbHVlIGlzIGZvciBvdGhlciBtZWRpYSB0eXBlcyhleGFtcGxlICd0ZXh0L3BsYWluJyksIFRoZSB0eXBlIGlzICdbXWJ5dGUnLCAnc3RyaW5nJyBvciAnaW8uUmVhZENsb3NlcicKICAtIFZhbHVlIG9mIGpzb24gaXMgbWVkaWEgdHlwZSAnYXBwbGljYXRpb24vanNvbicsIHhtbCBpcyBtZWRpYSB0eXBlICdhcHBsaWNhdGlvbi94bWwnCiAgLSBCb2R5IG9mIHRhZyB1c2UgdmFsdWUsICdvbWl0ZW1wdHknIGlzIG51bGxhYmxlCiAgLSBXaGVuIHRoZSB2YWx1ZSBpcyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywgaW5kaWNhdGVzIHRoYXQgdGhlIGJvZHkgaXMgdXBsb2FkZWQgYXMgYSBmaWxlCiMjIyBTdHJ1Y3R1cmUgdGFnIGFubm90YXRpb24KLSByZWdleHAKICAgIC0gUmVndWxhciBleHByZXNzaW9uIG9mIHZhbHVlCiAgICAtIFZhbGlkYXRvciBsaW1pdCAqKnN0cmluZyoqIHR5cGUKICAgIC0gRXF1aXZhbGVudCB0byBPcGVuQVBJICoqcGF0dGVybioqCi0gZW51bQogICAgLSBFbnVtZXJhdGlvbiBvZiB2YWx1ZXMKICAgIC0gVmFsaWRhdG9yIGxpbWl0ICoqaW50ZWdlcioqICoqbnVtYmVyKiogKipib29sZWFuKiogKipzdHJpbmcqKiB0eXBlCiAgICAtIENvbW1hIGRpdmlzaW9uICgqKiwqKikKLSBkZWZhdWx0CiAgICAtIERlZmF1bHQgdmFsdWUKLSBleGFtcGxlCiAgICAtIEV4YW1wbGUgdmFsdWUKLSBkZXNjCiAgICAtIEZpZWxkIGRlc2NyaXB0aW9uCiAgICAtIEVxdWl2YWxlbnQgdG8gT3BlbkFQSSAqKmRlc2NyaXB0aW9uKioKLSBsdAogICAgLSBMZXNzIHRoYW4gdmFsdWUKICAgIC0gVmFsaWRhdG9yIGxpbWl0ICoqaW50ZWdlcioqICoqbnVtYmVyKiogdHlwZQogICAgLSBFcXVpdmFsZW50IHRvIE9wZW5BUEkgKipleGNsdXNpdmVNYXhpbXVtKioKLSBsdGUKICAgIC0gTGVzcyB0aGFuIG9yIGVxdWFsIHRvIHZhbHVlCiAgICAtIFZhbGlkYXRvciBsaW1pdCAqKmludGVnZXIqKiAqKm51bWJlcioqIHR5cGUKICAgIC0gRXF1aXZhbGVudCB0byBPcGVuQVBJICoqbWF4aW11bSoqCi0gZ3QKICAgIC0gR3JlYXRlciB0aGFuIHZhbHVlCiAgICAtIFZhbGlkYXRvciBsaW1pdCAqKmludGVnZXIqKiAqKm51bWJlcioqIHR5cGUKICAgIC0gRXF1aXZhbGVudCB0byBPcGVuQVBJICoqZXhjbHVzaXZlTWluaW11bSoqCi0gZ3RlCiAgICAtIEdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB2YWx1ZQogICAgLSBWYWxpZGF0b3IgbGltaXQgKippbnRlZ2VyKiogKipudW1iZXIqKiB0eXBlCiAgICAtIEVxdWl2YWxlbnQgdG8gT3BlbkFQSSAqKm1pbmltdW0qKgotIG11bHRpcGxlCiAgICAtIE11bHRpcGxpZXJzIG9mIHZhbHVlcwogICAgLSBWYWxpZGF0b3IgbGltaXQgKippbnRlZ2VyKiogKipudW1iZXIqKiB0eXBlCi0gbWF4CiAgICAtIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgdmFsdWUKICAgIC0gVmFsaWRhdG9yIGxpbWl0ICoqc3RyaW5nKiogKiphcnJheSoqICoqb2JqZWN0KiogdHlwZQotIG1pbgogICAgLSBUaGUgbWluaW11bSBsZW5ndGggb2YgdGhlIHZhbHVlCiAgICAtIFZhbGlkYXRvciBsaW1pdCAqKnN0cmluZyoqICoqYXJyYXkqKiAqKm9iamVjdCoqIHR5cGUKLSB1bmlxdWUKICAgIC0gVGhlIHZhbHVlIG9mIHRoZSBhcnJheSBpcyB1bmlxdWUKICAgIC0gVmFsaWRhdG9yIGxpbWl0ICoqYXJyYXkqKiB0eXBlCiMjIFJlc3BvbnNlIGFubm90YXRpb24KIyMjIGlmIHJlc3BvbnNlIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBnb2FwaS5SZXNwb25zZSBpbnRlcmZhY2UsIHlvdSBjYW4gc2V0IHNvbWUgZnVuY3Rpb25zCi0gKipIVFRQUmVzcG9uc2VbVF0qKiBjYW4gc2V0IGh0dHBDb2RlLCBoZWFkZXIsIGNvb2tpZS4gQ29udGVudC1UeXBlIHZhbHVlIGlzICdhcHBsaWNhdGlvbi9qc29uJywnYXBwbGljYXRpb24veG1sJwotICoqRmlsZVJlc3BvbnNlKiogY2FuIHJldHVybiBkb3dubG9hZGFibGUgZmlsZXMuIENvbnRlbnQtVHlwZSB2YWx1ZSBpcyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJwotICoqU1NFUmVzcG9uc2UqKiBjYW4gcmV0dXJuIGNvbnRlbnQgaW4gU2VydmVyIFNlbnQgRXZlbnRzIGZvcm1hdC4gQ29udGVudC1UeXBlIHZhbHVlIGlzICd0ZXh0L2V2ZW50LXN0cmVhbScKLSAqKkhUTUxSZXNwb25zZSoqIGNhbiByZXR1cm4gdG8gSFRNTCBwYWdlLiBDb250ZW50LVR5cGUgdmFsdWUgaXMgJ3RleHQvaHRtbCcKLSAqKlRleHRSZXNwb25zZSoqIHJldHVybiBpbiB0ZXh0IG1vZGUsIGNhbiBzZXQgaGVhZGVyLCBjb29raWUuIENvbnRlbnQtVHlwZSBkZWZhdWx0IHZhbHVlIGlzICd0ZXh0L3BsYWluJyxyZXNldHRhYmxlIENvbnRlbnQtVHlwZQojIyBFcnJvciBjb3JyZXNwb25kaW5nIGNvbW1lbnQKfn5+Z28KcmVzcG9uc2UuSFRUUEV4Y2VwdGlvbig0MDQsICJlcnJvciBtZXNzYWdlIikKfn5+Ci0gU3BlY2lmaWMgcmV0dXJuIGluZm9ybWF0aW9uIGNhbiBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSAnSFRUUEV4Y2VwdGlvbkhhbmRsZXInIG1ldGhvZAotIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIEhUVFAgc3RhdHVzIGNvZGUsIHRoZSBzZWNvbmQgaXMgdGhlIGVycm9yIG1lc3NhZ2UsIGFuZCB0aGUgdGhpcmQgaXMgdGhlIGhlYWRlciBzZXR0aW5nIHJldHVybmVkCiMjIEFib3V0CkdlbmVyYXRlIGRvY3VtZW50YXRpb24gdXNpbmcgYW4gQVBJIHNpbWlsYXIgdG8gRmFzdEFQSSBpbiBQeXRob24= readmeEtag: '"c1703d07b53088adaf96c13a1fbf32681770608b"' readmeLastModified: Tue, 03 Sep 2024 08:15:04 GMT repositoryId: 819191357 description: Go's API server can generate open API documents Go的API服务器可以生成开放的API文档 created: '2024-06-24T02:43:37Z' updated: '2024-09-05T09:58:44Z' language: Go archived: false stars: 1 watchers: 2 forks: 0 owner: goodluckxu-go logo: https://avatars.githubusercontent.com/u/110141236?v=4 license: MIT repoEtag: '"9f821a3cd1006aebecb7638f1efe46de2081131e18e3d61cdfeabce677c2a5b1"' repoLastModified: Thu, 05 Sep 2024 09:58:44 GMT category: Parsers foundInMaster: true v3_1: true - source: openapi3 tags repository: https://github.com/lams-epfl/gen-rest v3: true repositoryMetadata: base64Readme: >- IyBzZWFtLXRvLW9wZW5hcGkKClRoaXMgcmVwbyBob3N0cyBhIHRvb2wgdGhhdCB0YWtlcyBzZXJ2aWNlIG1vZGVscyBjcmVhdGVkIHdpdGggW1NlYW1DQURdKGh0dHA6Ly9sYW1zLmVwZmwuY2gvc2VhbWNhZC8pIGFuZCBnZW5lcmF0ZXMgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZyb20gdGhlIHdlYiBzZXJ2aWNlcyBhbm5vdGF0aW9ucyBvZiB0aGUgc2VydmljZSBtb2RlbHMuCgoK readmeEtag: '"c2cd348d6a9031fa4af1016e44d3ecbf4ba97bac"' readmeLastModified: Thu, 10 Jan 2019 17:06:05 GMT repositoryId: 122209000 description: >- A tool to generate automatically OpenAPI specification from a service model created: '2018-02-20T14:29:24Z' updated: '2023-06-06T09:11:54Z' language: Java archived: false stars: 1 watchers: 3 forks: 2 owner: lams-epfl logo: https://avatars.githubusercontent.com/u/34246217?v=4 repoEtag: '"e32ea5a32e6ea6783156ee98cb4b87e64d7415ecd8ca228da4ac329ded47d795"' repoLastModified: Tue, 06 Jun 2023 09:11:54 GMT foundInMaster: true category: - Testing - Parsers id: 602854fe530d1f863fdb163da8c595df - source: openapi3 tags repository: https://github.com/teobler/openapi-schema v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJLXNjaGVtYQp0aGlzIHRvb2wgaXMgYnVpbHQgZm9yIGdlbmVyYXRpbmcgdHlwZXNjcmlwdCBpbnRlcmZhY2Ugb2YgT3BlbkFQSSBzY2hlbWEuCgpqc29uIGZpbGUgaXMgZnJvbSBbT3BlbkFQSS1TcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi90cmVlL21hc3Rlci9zY2hlbWFzL3YzLjApLCB5b3UgY2FuIGFsc28gZmluZCB5YW1sIGZpbGUgdGhlcmUsIHRoYW5rcyBmb3IgdGhlIG1haW50ZW5hbmNlLgoKIyMgTk9URQp0aGlzIHRvb2wgb25seSBmb3IgT3BlbkFQSSAqKnYzLjAueCoqIG5vdwoKIyMgaW5zdGFsbApgYGBiYXNoCiAgbnBtIGluc3RhbGwgLUQgQG9wZW5hcGktaW50ZWdyYXRpb24vb3BlbmFwaS1zY2hlbWEKYGBgCgojIyB1c2UKYGBgamF2YXNjcmlwdAogIGltcG9ydCB7IFNwZWMgfSBmcm9tICJAb3BlbmFwaS1pbnRlZ3JhdGlvbi9vcGVuYXBpLXNjaGVtYSI7CgogIGNvbnNvbGUubG9nKFNwZWMpOwpgYGAKCiMjIEhvdyB0byBTdGFydAoxLiBjbG9uZSByZXBvIHRvIHlvdXIgbG9jYWwKMi4gYG5wbSBpYAozLiBtb2RpZnkgY29kZSB0byB3aGF0IHlvdSB3YW50CjQuIGBucG0gcnVuIGdlbmVyYXRlYCB0byBnZW5lcmF0ZSBuZXcgaW50ZXJmYWNlIGZvciB0eXBlc2NyaXB0Cg== readmeEtag: '"61660b3e35a75fc61a783781c30d235ab89f9f8f"' readmeLastModified: Thu, 19 Mar 2020 08:19:33 GMT repositoryId: 247659506 description: A tool for generating OpenAPI schema interface for typescript. created: '2020-03-16T09:22:18Z' updated: '2023-03-07T12:36:25Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: teobler logo: https://avatars.githubusercontent.com/u/26424691?v=4 repoEtag: '"f5bba6a9e84a28e480d9bce8d0be0cb754c0b301bf504796ab76fded6b0d2a6b"' repoLastModified: Tue, 07 Mar 2023 12:36:25 GMT foundInMaster: true category: Parsers id: 5ca25503175774d442f849dc5ceae080 - source: openapi3 tags repository: https://github.com/koevskinikola/camunda-open-api-endpoints v3: true repositoryMetadata: base64Readme: >- IyBjYW11bmRhLW9wZW4tYXBpLWVuZHBvaW50cwpTY3JpcHRzIHRvIGNyZWF0ZSB0aGUgcHJvcGVyIHN0cnVjdHVyZSBhbmQgRlRMIHRlbXBsYXRlIGZpbGVzIGZvciB0aGUgQ2FtdW5kYSBPcGVuIEFQSSBzcGVjCgpUaGUgYGVuZHBvaW50cy5zaGAgYmFzaCBzY3JpcHQgaGFzIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgoKYGBgc2gKLi9lbmRwb2ludHMuc2ggW2h0dHBfdmVyYl0gW3NwYWNlX3NlcGFyYXRlZF9lbnBvaW50X3BhdGhzXQpgYGAKCkZvciBleGFtcGxlLCB0aGUgY2FsbCB0byBgLi9lbmRwb2ludHMuc2ggZ2V0IHRhc2sve2lkfS9jb21wbGV0ZSB0YXNrL3tpZH0vYXNzaWduYAppbiBhIGdpdmVuIGRpcmVjdG9yeSwgd2lsbCBwcm9kdWNlIHRoZSBmb2xsb3dpbmcgZm9sZGVyIHN0cnVjdHVyZToKCiogUEFSRU5UX0RJUkVDVE9SWQogICogdGFzawogICAgKiB7aWR9CiAgICAgICogY29tcGxldGUKICAgICAgICAqIGdldC5mdGwKICAgICAgKiBhc3NpZ24KICAgICAgICAqIGdldC5mdGwKClRoZSBgXCouZnRsYCBmaWxlcyBsaXN0ZWQgYWJvdmUgd2lsbCBjb250YWluIHRoZSBmb2xsb3dpbmcgY29udGVudDoKYGBgeG1sCnsKCiAgPEBsaWIuZW5kcG9pbnRJbmZvCiAgICAgIGlkID0gIkFERF9JRCIKICAgICAgdGFnID0gIkFERF9UQUciCiAgICAgIGRlc2MgPSAiIiAvPgoKICAicGFyYW1ldGVycyIgOiBbCgogICAgPEBsaWIucGFyYW1ldGVyCiAgICAgICAgbmFtZSA9ICJpZCIKICAgICAgICBsb2NhdGlvbiA9ICJwYXRoIgogICAgICAgIHR5cGUgPSAic3RyaW5nIgogICAgICAgIHJlcXVpcmVkID0gdHJ1ZQogICAgICAgIGxhc3QgPSB0cnVlCiAgICAgICAgZGVzYyA9ICJUaGUgaWQgb2YgdGhlIEFERF9UWVBFIGZvciB3aGljaCBFTlRFUl9ERVNDIHNob3VsZCBiZSBBRERfQUNUSU9OLiIvPgogICAgPCNhc3NpZ24gbGFzdCA9IHRydWUgPgogICAgPCNpbmNsdWRlICIvbGliL2NvbW1vbnMvcGFnaW5hdGlvbi1wYXJhbXMuZnRsIiA+CgogIF0sCgogIDxAbGliLnJlcXVlc3RCb2R5CiAgICAgIG1lZGlhVHlwZSA9ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICBkdG8gPSAiX0R0byIKICAgICAgZXhhbXBsZXMgPSBbJyJleGFtcGxlLTEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgInN1bW1hcnkiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOgogICAgICAgICAgICAgICAgICAgICB9J10gLz4KCiAgInJlc3BvbnNlcyIgOiB7CgogICAgPEBsaWIucmVzcG9uc2UKICAgICAgICBjb2RlID0gIjIwMCIKICAgICAgICBkdG8gPSAiQUREX0RUTyIKICAgICAgICBhcnJheSA9IHRydWUKICAgICAgICBkZXNjID0gIlJlcXVlc3Qgc3VjY2Vzc2Z1bC4iIC8+CgogICAgPEBsaWIucmVzcG9uc2UKICAgICAgICBjb2RlID0gIjQwMCIKICAgICAgICBkdG8gPSAiRXhjZXB0aW9uRHRvIgogICAgICAgIGxhc3QgPSB0cnVlCiAgICAgICAgZGVzYyA9ICJCYWQgUmVxdWVzdC4gU2VlIHRoZQogICAgICAgICAgICAgICAgW0ludHJvZHVjdGlvbl0oJHtkb2NzVXJsfS9yZWZlcmVuY2UvcmVzdC9vdmVydmlldy8jZXJyb3ItaGFuZGxpbmcpCiAgICAgICAgICAgICAgICBmb3IgdGhlIGVycm9yIHJlc3BvbnNlIGZvcm1hdC4iIC8+CgogIH0KfQpgYGA= readmeEtag: '"73cd1d93679e214c83f76be6523e0a0ea19de7f8"' readmeLastModified: Thu, 19 Mar 2020 09:19:57 GMT repositoryId: 247750700 description: Create a proper structure and FTL templates for the Camunda OpenAPI spec created: '2020-03-16T15:42:58Z' updated: '2020-03-19T09:20:07Z' language: Shell archived: false stars: 1 watchers: 1 forks: 0 owner: koevskinikola logo: https://avatars.githubusercontent.com/u/1534291?v=4 license: Apache-2.0 repoEtag: '"13deab3266d313e84b7d4b91dc8b4ddaff3344dbc2a97c9b3ea0312a907907c0"' repoLastModified: Thu, 19 Mar 2020 09:20:07 GMT foundInMaster: true category: - Server Implementations - Parsers id: d26838616c53ebd5121442d05dd4e7df - source: openapi3 tags repository: https://github.com/ruddfawcett/ios-openapi-gen v3: true repositoryMetadata: base64Readme: >- IyBpb3Mtb3BlbmFwaS1nZW4K8J+OgSBXcmFwIFN3YWdnZXIgT3BlbkFQSXMgd2l0aCBhbiBBUEkgcGF0dGVybiBkZXZlbG9wZWQgYnkgW0BrZWFuXShodHRwczovL2tlYW4uZ2l0aHViLmlvL3Bvc3QvYXBpLWNsaWVudCkuIFJpZ2h0IG5vdyB0aGUgcHJvamVjdCB3aWxsIGRvIGV2ZXJ5dGhpbmcgYnV0IGZ1bmN0aW9uIG5hbWVzLCBidXQgd2lsbCB0YWNrbGUgdGhhdCBzb29uLgoKIyMgVXNhZ2UKLSDwn6eR4oCN8J+SuyBncmFiIGxhdGVzdCBgb3BlbmFwaS5qc29uYAotIPCfk50gZWRpdCBzZXR0aW5ncyBpbiBgc2V0dGluZ3MueW1sYAotIPCfm6AgcnVuIGBweXRob24gZ2VuLnB5YAotIPCflI4gZ28gdG8gYG91dHB1dC8qYAotIPCfmI4gdXNlIGdlbmVyYXRlZCBTd2lmdCBBUEkgbGF5ZXIKCiMjIEV4YW1wbGUgT3V0cHV0CgpgYGBzd2lmdApleHRlbnNpb24gQVBJIHsKICAgIGVudW0gU3RvcmUge30KfQoKZXh0ZW5zaW9uIEFQSS5TdG9yZSB7CgogICAgLy8vIFJldHVybnMgcGV0IGludmVudG9yaWVzIGJ5IHN0YXR1cwogICAgc3RhdGljIGZ1bmMgPCMgUmVhZGFibGUgTmFtZSAjPigpIC0+IEVuZHBvaW50PDwjIE1vZGVsIFR5cGUvVm9pZCAjPj4gewogICAgICAgIHJldHVybiBFbmRwb2ludChtZXRob2Q6IC5nZXQsIHBhdGg6ICIvc3RvcmUvaW52ZW50b3J5IikKICAgIH0KCiAgICAvLy8gUGxhY2UgYW4gb3JkZXIgZm9yIGEgcGV0CiAgICBzdGF0aWMgZnVuYyA8IyBSZWFkYWJsZSBOYW1lICM+KCkgLT4gRW5kcG9pbnQ8PCMgTW9kZWwgVHlwZS9Wb2lkICM+PiB7CiAgICAgICAgcmV0dXJuIEVuZHBvaW50KG1ldGhvZDogLnBvc3QsIHBhdGg6ICIvc3RvcmUvb3JkZXIiKQogICAgfQoKICAgIC8vLyBGaW5kIHB1cmNoYXNlIG9yZGVyIGJ5IGlkCiAgICBzdGF0aWMgZnVuYyA8IyBSZWFkYWJsZSBOYW1lICM+KG9yZGVySWQ6IEludCkgLT4gRW5kcG9pbnQ8PCMgTW9kZWwgVHlwZS9Wb2lkICM+PiB7CiAgICAgICAgcmV0dXJuIEVuZHBvaW50KG1ldGhvZDogLmdldCwgcGF0aDogIi9zdG9yZS9vcmRlci9cKG9yZGVySWQpIikKICAgIH0KCiAgICAvLy8gRGVsZXRlIHB1cmNoYXNlIG9yZGVyIGJ5IGlkCiAgICBzdGF0aWMgZnVuYyA8IyBSZWFkYWJsZSBOYW1lICM+KG9yZGVySWQ6IEludCkgLT4gRW5kcG9pbnQ8PCMgTW9kZWwgVHlwZS9Wb2lkICM+PiB7CiAgICAgICAgcmV0dXJuIEVuZHBvaW50KG1ldGhvZDogLmRlbGV0ZSwgcGF0aDogIi9zdG9yZS9vcmRlci9cKG9yZGVySWQpIikKICAgIH0KCn0KYGBgCgojIyBGdXR1cmUgUGxhbnMKLSDwn6ShIHBhcnNlIGZ1bGwgZG9jdW1lbnRhdGlvbiBmb3IgcGF0aHMKLSDwn5OWIGdlbmVyYXRlIHNlbWktcmVhZGFibGUgQVBJIGZ1bmN0aW9uIG5hbWVzCi0g8J+klyBoYW5kbGUgYm9keSBwYXJhbWV0ZXJzCi0g8J+WvCBzdXBwb3J0IGZyYW1ld29yay9wYXR0ZXJucyBiZXlvbmQgQWxhbW9maXJlCgojIyBDb2xvcGhvbgotIFtAcnVkZGZhd2NldHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWRkZmF3Y2V0dCk6IFB5dGhvbiBwYXJzZXIgYW5kIGNvbnZlcnRlciBmb3IgT3BlbkFQSXMuCi0gW0BrZWFuXShodHRwczovL2tlYW4uZ2l0aHViLmlvL3Bvc3QvYXBpLWNsaWVudCk6IEFQSSBsYXllciBjb25jZXB0LCBvcmlnaW5hbGx5IHdyaXR0ZW4gd2l0aCBBbGFtb2ZpcmUgYW5kIFJ4U3dpZnQuCg== readmeEtag: '"927fff6cf8eefbe4e0ed89ccab34774828759936"' readmeLastModified: Thu, 30 Apr 2020 23:53:31 GMT repositoryId: 260319500 description: Generate iOS client API wrappers from Swagger's OpenAPI spec. created: '2020-04-30T21:11:37Z' updated: '2022-09-06T16:54:15Z' language: Python archived: false stars: 1 watchers: 2 forks: 0 owner: ruddfawcett logo: https://avatars.githubusercontent.com/u/3122471?v=4 repoEtag: '"ec7ce180c3e1aaa993402548676686dace6b5ec62f878ce2c86bec95796b0efb"' repoLastModified: Tue, 06 Sep 2022 16:54:15 GMT foundInMaster: true category: - Data Validators - Parsers id: ad552fe08bfc4be2fef6db46332b5238 - source: openapi3 tags repository: https://github.com/opengeospatial/ogcapi-edr-sprint2 v3: true repositoryMetadata: base64Readme: >- IyBPR0MgQVBJIC0gRURSIFNwcmludCAyCgpbPGltZyBzcmM9Imh0dHA6Ly93d3cub3Blbmdlb3NwYXRpYWwub3JnL3B1Yi93d3cvZmlsZXMvT0dDX0xvZ29fMkRfQmx1ZV94XzBfMC5wbmciIHdpZHRoPSIyMDAiLz5dKGh0dHBzOi8vd3d3Lm9wZW5nZW9zcGF0aWFsLm9yZykKClRoaXMgR2l0aHViIHJlcG9zaXRvcnkgaXMgZm9yIHRoZSBzZWNvbmQgT0dDIEFQSSAtIEVEUiBjb2RlIHNwcmludCBmb2N1c2luZyBvbiB0aGUgW09HQyBBUEkgLSBFbnZpcm9ubWVudGFsIERhdGEgUmV0cmlldmFsIGNhbmRpZGF0ZSBzdGFuZGFyZF0oaHR0cHM6Ly93d3cub2djLm9yZy9wcmVzc3Jvb20vcHJlc3NyZWxlYXNlcy8zMjgwKS4KClsjT0dDQVBJXShodHRwczovL3R3aXR0ZXIuY29tL2hhc2h0YWcvT0dDQVBJKQoKCkFib3V0IHRoZSBDb2RlIFNwcmludAotLS0tLS0tLS0tLS0tLS0tCgoKVGhlIE9wZW4gR2Vvc3BhdGlhbCBDb25zb3J0aXVtIChPR0MpIGludml0ZXMgZGV2ZWxvcGVycyB0byB0aGUgT0dDIEFQSSAtIEVEUiBTcHJpbnQgMiB2aXJ0dWFsIGV2ZW50IHRvIGJlIGhlbGQgdGhyb3VnaCByZW1vdGUgcGFydGljaXBhdGlvbi93ZWItY29uZmVyZW5jaW5nIG9uIE5vdmVtYmVyIDktMTAsIDIwMjAsIGZyb20gOTowMGFtIDU6MzBwbSBbRVNUXShodHRwczovL3d3dy50aW1lYW5kZGF0ZS5jb20vd29ybGRjbG9jay91c2Evd2FzaGluZ3Rvbi1kYykuIFJlZ2lzdHJhdGlvbiBmb3IgdGhlIE9HQyBBUEkgLSBFRFIgU3ByaW50IDIgdmlydHVhbCBldmVudCBhbmQgdGhlIGFzc29jaWF0ZWQgcHJlLWV2ZW50IFdlYmluYXIgaXMgW2hlcmVdKGh0dHBzOi8vcG9ydGFsLm9nYy5vcmcvcHVibGljX29nYy9yZWdpc3Rlci8yMDIwMTFxNF9hcGlfZWRyLnBocCkuCgpUaGUgY29kZSBzcHJpbnQgd2lsbCBmb2N1cyBvbiByZWZpbmluZyB0aGUgW09HQyBBUEkgLSBFbnZpcm9ubWVudGFsIERhdGEgUmV0cmlldmFsIGNhbmRpZGF0ZSBzdGFuZGFyZF0oaHR0cDovL2RvY3Mub3Blbmdlb3NwYXRpYWwub3JnL0RSQUZUUy8xOS0wODYuaHRtbCkuIFRoZSBjYW5kaWRhdGUgc3RhbmRhcmQgdXNlcyBjdXJyZW50IHdlYiB0ZWNobm9sb2dpZXMgYW5kIGJlc3QgcHJhY3RpY2VzIHRvIGVuYWJsZSBlbmQtdXNlcnMgLSBvciBhbnlvbmUgd2l0aCB3ZWIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZSAtIHRvIGVhc2lseSBpZGVudGlmeSBhbmQgcmV0cmlldmUgYSBzdWJzZXQgb2YgZGF0YSBmcm9tIOKAmGJpZyBkYXRh4oCZIHN0b3Jlcy4gVGhlIGlkZWEgaXMgdG8gc2F2ZSB0aG9zZSB1c2VycyBpbnRlcmVzdGVkIGluIGVudmlyb25tZW50YWwgKG9yIG90aGVyKSBkYXRhIGZyb20gaGF2aW5nIHRvIHRyYW5zZmVyIGFuZCBkZWFsIHdpdGggZGF0YXNldHMgdGhhdCBpbmV2aXRhYmx5IGNvbnRhaW4gZGF0YSBjb25jZXJuaW5nIGFyZWFzIG9yIHRpbWUgcGVyaW9kcyB0aGF0IGFyZSBpcnJlbGV2YW50IHRvIHRoZWlyIGludGVyZXN0cy4KClJlZ2lzdGVyIGF0IGh0dHBzOi8vcG9ydGFsLm9nYy5vcmcvcHVibGljX29nYy9yZWdpc3Rlci8yMDIwMTFxNF9hcGlfZWRyLnBocAoKCiogW1NwcmludCBEZXNjcmlwdGlvbl0oLi9hYm91dC5hZG9jKQoqIFtBUEkgU3BlY3NdKC4vc3BlY3MuYWRvYykKKiBbU3ByaW50IExvZ2lzdGljc10oLi9sb2dpc3RpY3MuYWRvYykKKiBbU2NoZWR1bGUvQWdlbmRhXSguL2FnZW5kYS5hZG9jKQoqIFtJbXBsZW1lbnRhdGlvbnNdKC4vaW1wbGVtZW50YXRpb25zLmFkb2MpCiogW0RhdGFzZXRzXSguL1NoYXJlZF9EYXRhc2V0cy9SRUFETUUubWQpCiogW1doYXQgaXMgZXZlcnlib2R5IGdvaW5nIHRvIGJlIHdvcmtpbmcgb24/XShodHRwczovL2dpdGh1Yi5jb20vb3Blbmdlb3NwYXRpYWwvT0dDQVBJLUVEUi1TcHJpbnQyL2lzc3Vlcy8xKQoqIFtMZXNzb25zIGFuZCBOZXh0IFN0ZXBzXSguL2xlc3NvbnNBbmROZXh0U3RlcHMuYWRvYykKKiBbQWRkaXRpb25hbCBSZXNvdXJjZXNdKC4vYWRkaXRpb25hbFJlc291cmNlcy5hZG9jKQoqIFtGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucyAoRkFRcyldKC4vRkFRLmFkb2MpCgpUaGUgc3ByaW50IHdpbGwgYmVnaW4gYXQgMDk6MDBhbSBFU1Qgb24gdGhlIGZpcnN0IGRheSwgYW5kIGVuZCBhdCAwNTowMHBtIEVTVCBvbiB0aGUgc2Vjb25kIGRheS4K readmeEtag: '"64e778c9e1fe3b9f795690ded2e851a323fb02d4"' readmeLastModified: Fri, 13 Nov 2020 07:46:23 GMT repositoryId: 304570773 description: >- This Github repository is for the second OGC API - EDR code sprint focusing on the OGC API - Environmental Data Retrieval candidate standard. created: '2020-10-16T08:48:36Z' updated: '2023-01-28T11:44:43Z' language: R archived: true stars: 1 watchers: 22 forks: 6 owner: opengeospatial logo: https://avatars.githubusercontent.com/u/1955193?v=4 repoEtag: '"ea2da43ae0735eef27990c018612e45229d6fab96f38c3680ea7fa48646d2110"' repoLastModified: Sat, 28 Jan 2023 11:44:43 GMT foundInMaster: true category: Server Implementations id: a15d24387a553cf2bb6cd4b6a3953574 - source: openapi3 tags repository: https://github.com/shopiqo/bigbuy-oas v3: true id: 7c4655856582db9c2b38a62ae4e156b1 repositoryMetadata: base64Readme: >- IyBCaWdCdXkgQVBJIHNwZWNpZmljYXRpb25zCgojIyMgR2VuZXJhdGUvcmVidWlsZCBzcGVjaWZpY2F0aW9ucwoKYGBgCi4vYmluL2J1aWxkCmBgYAoKIyMjIFN3YWdnZXIgVUkKCmBgYApkb2NrZXIgcnVuIFwKICAtLXJtIFwKICAtcCA4MDgwOjgwODAgXAogIC12IGBwd2RgOi91c3Ivc2hhcmUvbmdpbngvaHRtbC9wdWJsaWMgXAogIC1lIEFQSV9VUkw9cHVibGljL2Rpc3QvdjEvb3BlbmFwaS55YW1sIFwKICAtZSBWQUxJREFUT1JfVVJMPW5vbmUgXAogIC1lIFRSWV9JVF9PVVRfRU5BQkxFRD10cnVlIFwKICAtZSBESVNQTEFZX1JFUVVFU1RfRFVSQVRJT049dHJ1ZSBcCiAgLWUgRElTUExBWV9PUEVSQVRJT05fSUQ9dHJ1ZSBcCiAgc3dhZ2dlcmFwaS9zd2FnZ2VyLXVpCmBgYAoKIyMjIEdlbmVyYXRlIEFQSSBjbGllbnQKCmBgYApkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovYXBwIG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkgXAogICAgZ2VuZXJhdGUgXAogICAgLWkgL2FwcC9kaXN0L3YxL29wZW5hcGkueWFtbCBcCiAgICAtZyBwaHAgXAogICAgLW8gL2FwcC9jbGllbnRzL3YxL3BocCBcCiAgICAtLXNraXAtdmFsaWRhdGUtc3BlYyBcCiAgICAtLWdpdC11c2VyLWlkIGVmc2EtaW8gXAogICAgLS1naXQtcmVwby1pZCBiaWdidXktcGhwLWFwaS1jbGllbnQgXAogICAgLS1hZGRpdGlvbmFsLXByb3BlcnRpZXMgcGFja2FnZU5hbWU9QmlnYnV5QXBpCmBgYAo= readmeEtag: '"d2ae1445e1a188e37ab6c922386409bad8a0f02f"' readmeLastModified: Tue, 01 Feb 2022 10:49:20 GMT repositoryId: 338562018 description: OpenAPI specification for https://api.bigbuy.eu/. created: '2021-02-13T11:44:15Z' updated: '2023-02-05T14:42:22Z' language: Shell archived: false stars: 1 watchers: 1 forks: 2 owner: shopiqo logo: https://avatars.githubusercontent.com/u/79263571?v=4 repoEtag: '"967a356bad44f2d7bb958209e961ca803c09c37cb78fe9b43b8a9b11e3a193cd"' repoLastModified: Sun, 05 Feb 2023 14:42:22 GMT category: - Code Generators - Parsers foundInMaster: true oldLocations: - https://github.com/efsa-io/bigbuy-oas - source: openapi3 tags repository: https://github.com/jonasnicoletti/spring-boot-demo-app v3: true repositoryMetadata: repositoryId: 347713788 description: Springboot demo app with some enterprise standards created: '2021-03-14T18:03:51Z' updated: '2023-03-09T00:05:41Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: JonasNicoletti logo: https://avatars.githubusercontent.com/u/53706359?v=4 repoEtag: '"8f452b3b265f2917765615ef56e9185f323ae6539b759b7b77972ca33e6875ed"' repoLastModified: Thu, 09 Mar 2023 00:05:41 GMT foundInMaster: true id: 7fe6f1fa80818846ca4357078438118f - source: openapi3 tags repository: https://github.com/upydotmoe/spec v3: true id: ee45bd871f352a83a92a8316a8383526 repositoryMetadata: base64Readme: >- PiBPcGVuQVBJIHNwZWNzIGZvciBVcHkncyBBUEkKCjxiPjxpPlRMRFI6IDwvaT48L2I+IFRoaXMgcmVwbyBhaW1lZCBvbmx5IGZvciBhbnlvbmUgd2hvIHdhbnQgdG8gY29udHJpYnV0ZSB0byBvdXIgcHJvamVjdHMgb3Igd2FudCB0byB1c2Ugb3VyIGRhdGEgb24geW91ciBvd24gYXBwbGljYXRpb24sIGl0J3Mgb3BlbmVkIHRvIHB1YmxpYyBmb3Igbm93IGJ1dCB3ZSBwbGFubmVkIHRvIHJlc3RyaWN0IGl0cyBhY2Nlc3MgaW4gdGhlIGZ1dHVyZSBpbiBvcmRlciB0byBtYWludGFpbiB0aGUgdHJhZmZpYyByZXF1ZXN0cyB0byBvdXIgc3lzdGVtLgoKPGJyPjxicj4KPHAgYWxpZ249ImNlbnRlciI+CiAgPGI+PGk+bGlua3M6PC9pPjwvYj4gCiAgPGEgaHJlZj0iaHR0cHM6Ly9wdWJsaWMudXB5Lm1vZS9kb2NzIj5Td2FnZ2VyIE9ubGluZSBEb2NzPC9hPiZuYnNwOyDigKIgJm5ic3A7CiAgPGEgaHJlZj0iaHR0cHM6Ly9wdWJsaWMudXB5Lm1vZS9kb2NzLmpzb24iPkpTT04gZm9ybWF0dGVkPC9hPgo8L3A+Cjxicj4KCiMjIyMgIyBHZW5lcmF0ZSBjbGllbnQgY29kZQpUbyBnZW5lcmF0ZSBjbGllbnQgY29kZSBvZiBPcGVuQVBJIHlvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vIj5Td2FnZ2VyIEVkaXRvcjwvYT4sIHlvdSBqdXN0IG5lZWQgdG8gY29weSBhbGwgdGhlIGNvbnRlbnQgb2YgdGhlIFlBTUwgZGVmaW5pdGlvbiBmaWxlIGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3VweWRvdG1vZS9zcGVjL2Jsb2IvbWFpbi9zd2FnZ2VyLnltbCI+c3dhZ2dlci55bWw8L2E+IGFuZCBwYXN0ZSBpdCBpbiB0aGUgc3dhZ2dlciBlZGl0b3IuCjxicj48YnI+ClRoZSBuZXh0IHN0ZXAgaXMgZ28gdG8gKipHZW5lcmF0ZSBDbGllbnQqKiBhbmQgc2VsZWN0ICoqdHlwZXNjcmlwdC1mZXRjaCoqLCB3YWl0IHVudGlsIHRoZSBkb3dubG9hZCBwcm9jZXNzIGRvbmUuIEFuZCBvbmNlIHRoZSBmaWxlIGRvd25sb2FkZWQsIG9wZW4gdGhlIFpJUCBmaWxlIGFuZCBwdXQgYGFwaS50c2AgdG8gYGFwaS9vcGVuYXBpL2AgaW4gdGhlIGZyb250LWVuZCBzb3VyY2UgY29kZS4KCgojIyMjICMgRnVydGhlciBpbmZvcm1hdGlvbgpGb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvciBxdWVzdGlvbiB5b3UgY2FuIGFzayBtZSBvbiA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL25vcjFjXyI+YGh0dHBzOi8vdHdpdHRlci5jb20vbm9yMWNfYDwvYT4uCg== readmeEtag: '"8857427660fa83bda5bdc7756561f103f6b6c028"' readmeLastModified: Tue, 26 Jul 2022 09:12:03 GMT repositoryId: 455485631 description: API spec of Upy powered by Swagger OpenAPI created: '2022-02-04T09:17:16Z' updated: '2022-07-05T04:11:25Z' language: null archived: false stars: 1 watchers: 1 forks: 0 owner: upydotmoe logo: https://avatars.githubusercontent.com/u/87591963?v=4 repoEtag: '"18e9e83122536c3ce2d6c393cd7f2f1c0e1428ccfa5b2a0f5166ac139e82f8c6"' repoLastModified: Tue, 05 Jul 2022 04:11:25 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/upyapp/spec - https://github.com/uuppyy/spec - https://github.com/fliptyco/spec - https://github.com/upymoe/spec - source: openapi3 tags repository: https://github.com/xiasf/kancloud-api-parser v3: true id: 998c30cb82434374582d859a37ff7979 repositoryMetadata: base64Readme: >- IyMga2FuY2xvdWQtYXBpLXBhcnNlciDor7TmmI4KCuWwhiBb55yL5LqR5paH5qGjYXBpXShodHRwczovL2hlbHAua2FuY2xvdWQuY24vNjc1MzkpIOagvOW8j+ino+aekOWvvOWHuuS4uiBbT3BlbkFQSSAzLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCkg5qC85byP55qEanNvbuaWh+S7tu+8jOaWueS+v+WvvOWFpeWIsCBbQXBpZm94XShodHRwczovL3d3dy5hcGlmb3guY24vKSDkuK3jgIIKCuWvueS6juS5i+WJjeS9v+eUqOS6huS4jeaUr+aMgeagh+WHhuWMlkFQSeaWh+aho+e7k+aehOWvvOWHuueahOaWh+aho+W5s+WPsOadpeivtO+8jOiHquW3seagueaNruinhOWImeino+aekOaYr+WUr+S4gOeahOWKnuazleS6hu+8jOWQpuWImemmluasoei/geenu+aIkOacrOWkqumrmOS6hu+8jOWPr+iDveWwseaUvuW8g+S6huOAggoK5pys6ISa5pys6Kej5p6Q5pWI5p6c5Y+W5Yaz5LqO5paH5qGj5Lmm5YaZ55qE6KeE6IyD56iL5bqm77yM5Zug5Li65piv6YCa6L+H5q2j5YiZ5Yy56YWN6Kej5p6Q55qE77yM5omA5Lul5Lmf5Y+v5Lul5qC55o2u6ZyA6KaB54G15rS755qE5Y675YGa6LCD5pW044CC55uu5YmN5oiR5Lus5L2/55So5rKh5LuA5LmI6Zeu6aKY77yM5aaC5p6c6Zeu6aKY5qyi6L+O5o+QIElzc3VlcyDkuqTmtYHjgIIKCi0tLS0KCiMjIyDkvb/nlKjmlrnms5UKCmBgYHBocApyZXF1aXJlICdEb2NBcGlQYXJzZXIucGhwJzsKCiRkb2NBcGlQYXJzZXIgPSBuZXcgRG9jQXBpUGFyc2VyKCk7CgovLyAuLi4KCmBgYAoKIyMjIyDoh6rlrprkuYnpu5jorqRBUEnliIbnu4TvvIjliY3nvIDvvIkKCuWIhue7hOWNsyBhcGlfcHJlZml4IO+8jOWGs+WumuWvvOWFpeWIsCBBcGlmb3gg5Lit55qE5pyA5LiK5bGC55uu5b2V5ZCN56ewKHgtYXBpZm94LWZvbGRlciDlrZfmrrUpCgpgYGBwaHAKCiRkb2NBcGlQYXJzZXItPmRlZmF1bHRBcGlQcmVmaXggPSAnYWRtaW4nOyAvLyDpu5jorqTkuLogZGVmYXVsdAoKYGBgCgojIyMjIOino+aekOW5tuWvvOWHuuS4uiBPcGVuQVBJIGpzb27moLzlvI/mlofku7YKCmBgYHBocAovLyAwLiDop6PmnpDnnIvkupHmlofmoaPnm67lvZXmlofku7YKJGZpbGVMaXN0ID0gJGRvY0FwaVBhcnNlci0+cGFyc2VEb2NTdW1tYXJ5KCd4eHgtZG9jL1NVTU1BUlkubWQnKTsKCi8vIDEuIOino+aekCDnnIvkupEg54m55pyJ55qEIEFQSSDmoLzlvI/vvIzovazmjaLkuLog5qCH5YeG55qEQVBJ5YWD5L+h5oGvIOaVsOe7hOagvOW8jwokYXBpcyA9ICRkb2NBcGlQYXJzZXItPnBhcnNlRG9jRmlsZSgncGFya2luZ2xvdC/nrqHnkIblkI7lj7Av5YGc6L2m5Zy6566h55CGL+Wll+mkkOeuoeeQhi5tZCcpOwovLyBwcmludF9yKCRhcGlzKTtleGl0OwoKLy8g5Z+65LqOIOagh+WHhueahEFQSeWFg+S/oeaBryDvvIzkvaDlj6/ku6XlrprkuYnlhbbku5bnmoTku7vkvZXovazmjaLlpITnkIblmagKCi8vIDIuIOWGjei9rOaNouS4uiBPcGVuQVBJIOagvOW8j+eahOaVsOe7hAokYXBpcyA9ICRkb2NBcGlQYXJzZXItPk9wZW5BUElGb3JtYXRIYW5kbGUoJGFwaXMpOwovLyBwcmludF9yKCRhcGlzKTtleGl0OwoKLy8gMy4g5YaZ5YWl5Yiw5paH5Lu2IO+8jCDpu5jorqTkuLoganNvbiDmoLzlvI/vvIzkvaDkuZ/lj6/ku6XlrprkuYkg5YW25LuWIOagvOW8j+i9rOaNouWkhOeQhiBmb3JtYXRIYW5kbGUg5bGe5oCn77yM5aaCIFhNTOetieagvOW8jwokZG9jQXBpUGFyc2VyLT53cml0ZUFwaSgna2FuY2xvdWQtYXBpLmpzb24nLCAkYXBpcyk7CgpgYGAKCi0tLS0KCiMjIyDnnIvkupHmlofmoaMgQVBJIOagh+WHhuagvOW8jwoKIVtpbWFnZV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTc1MzU3NTcvMTgyMDIyOTU3LWIwNmJmMzI3LTEwNWMtNGE4Yi05M2M1LTEzZmQ5YjFiMjkxOC5wbmcpCgpgYGB0ZXh0CiMjIyAxLiDliJvlu7rjgIHnvJbovpEg5paw6Ze7Cgrkvb/nlKjlnLrmma/vvJrlkI7lj7DnrqHnkIblkZgg5Yib5bu644CB57yW6L6RIOaWsOmXuwoKfn5+W2FwaTphZG1pbl0KcG9zdDovbmV3cy9lZGl0CippbnQ6aWQ9MSPlj4LmlbBpZApzdHJpbmc6bmFtZT3pu5jorqTlgLwj6K+05piO5paH5a2XCjw8PApzdWNjZXNzCnsKICAgICJkYXRhIjogewogICAgICAgICJpZCI6IDEsCiAgICB9LAogICAgIm1zZyI6ICJvayIsCiAgICAiY29kZSI6IDEKfQo8PDwKZXJyb3IKewogICAgImRhdGEiOiB7fSwKICAgICJtc2ciOiAiZXJyb3IgbXNnIiwKICAgICJjb2RlIjogMAp9Cjw8PArlk43lupTnpLrkvosK6L+Z6YeM5aGr5YaZ6ZSZ6K+v55qE6L+U5Zue56CBCuS7peatpOexu+aOqO+8jOavj+S4queKtuaAgeS9v+eUqCA8PDwg5YiG5YmyLArnrKzkuIDooYzmt7vliqDnirbmgIHlkI3np7AKfn5+CmBgYAoKaHR0cHM6Ly9oZWxwLmthbmNsb3VkLmNuLzY3NTM5Cg== readmeEtag: '"22864c57ae6042a7a6eb214d36bd153456414ee0"' readmeLastModified: Sun, 31 Jul 2022 11:25:00 GMT repositoryId: 519744241 description: 将看云文档api格式解析导出为 OpenAPI 3.0 格式的json文件,方便导入到 Apifox 中 created: '2022-07-31T10:28:21Z' updated: '2022-07-31T11:40:45Z' language: PHP archived: false stars: 1 watchers: 2 forks: 0 owner: xiasf logo: https://avatars.githubusercontent.com/u/17535757?v=4 license: MIT repoEtag: '"d6767ae3bc203279e3fbdba025be4739207f7b80fbf4542841e68f6efb42e165"' repoLastModified: Sun, 31 Jul 2022 11:40:45 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/alexandrecpedro/bbb22-votation-system v3: true id: e59a48c9affe1b53bfe48c6218fe7b41 repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbiA9ICJjZW50ZXIiPgogICAgPGgxPiBTaXN0ZW1hIGRlIFZvdGHDp8OjbyBPbmxpbmUgZG8gQkJCIDIyIDwvaDE+CjwvZGl2Pgo8YnI+Cgo8ZGl2IGFsaWduID0gJ2NlbnRlcicganVzdGlmeS1jb250ZW50ID0gJ3NwYWNlLWFyb3VuZCcgPgogICA8aW1nIHNyYz0gJy4vcHJvamVjdC9sb2dvcy9BdmFuYWRlLnBuZycgYWx0ID0gJ0F2YW5hZGUnID4KICAgPGltZyBzcmM9ICcuL3Byb2plY3QvbG9nb3MvUmVkZUdsb2JvLnBuZycgYWx0ID0gJ1JlZGUgR2xvYm8nID4KPC9kaXY+Cgo8aDMgYWxpZ24gPSAiY2VudGVyIj4KICBTaXN0ZW1hIGRlIFZvdGHDp8OjbyBPbmxpbmUgZG8gQmlnIEJyb3RoZXIgQnJhc2lsIDIyICgyMDIyKQo8L2gzPgoKPHAgYWxpZ249ImNlbnRlciI+CiA8YSBocmVmPSIjb2JqZXRpdm8iPk9iamV0aXZvPC9hPiDigKIKIDxhIGhyZWY9IiN0ZWNub2xvZ2lhcyI+VGVjbm9sb2dpYXM8L2E+IOKAogogPGEgaHJlZj0iI3BlcmN1cnNvIj5QZXJjdXJzbzwvYT4gCjwvcD4KCjxicj4KPGJyPgoKPGRpdiBpZD0ib2JqZXRpdm8iPgo8aDI+IPCfkqEgT2JqZXRpdm8gPC9oMj4KQ29uc3RydWlyIHVtIHNpc3RlbWEgcXVlIHBlcm1pdGEgYW8gdXN1w6FyaW8gdm90YXIgbnVtIHBhcnRpY2lwYW50ZSBpbmRpY2FkbyBwYXJhIGVsaW1pbmHDp8OjbyAocGFyZWTDo28pIGRvIHJlYWxpdHkgc2hvdyBCaWcgQnJvdGhlciBCcmFzaWwgMjIgKEJCQiAyMiksIHBvciBzZW1hbmEuCgpFIGNvbnNlZ3VpciBjb250YXIgb3Mgdm90b3MgdG90YWlzIChpbmNsdXNpdmUgb3MgZmVpdG9zIHBvciByb2LDtHMpIGUgYXVkaXRhciBvcyB2b3RvcyB2w6FsaWRvcyAodm90b3Mgw7puaWNvcyBwb3IgdXN1w6FyaW8pLCBjb25maWd1cmFuZG8gdW1hIHBvcmNlbnRhZ2VtIGRlIHZvdG9zIHbDoWxpZG9zIHBvciBjYW5kaWRhdG8gw6AgZWxpbWluYcOnw6NvLgoKQ2FkYSBzZW1hbmEgZGV2ZW1vcyBhdWRpdGFyIGUgY29uZmlndXJhciBvcyAzIGNhbmRpZGF0b3Mgw6AgZWxpbWluYcOnw6NvIHBhcmEgcXVlIG8gdXN1w6FyaW8gcG9zc2EgZXNjb2xoZXIgZW0gcXVhbCBwYXJ0aWNpcGFudGUgcmVtYW5lc2NlbnRlIGRvIHByb2dyYW1hIGVsZSBkZXNlamEgdm90YXIuCgpBIGNhZGEgc2VtYW5hLCBvIHBhcnRpY2lwYW50ZSBxdWUgb2J0aXZlciBvIG1haW9yIHBlcmNlbnR1YWwgZGUgdm90b3Mgw6kgZWxpbWluYWRvIGRvIHByb2dyYW1hLgoKPC9kaXY+Cjxicj4KPGJyPgoKPGRpdiBpZD0idGVjbm9sb2dpYXMiPgo8aDI+IPCfm6AgVGVjbm9sb2dpYXMgPC9oMj4KQXMgc2VndWludGVzIGZlcnJhbWVudGFzIGZvcmFtIHVzYWRhcyBuYSBjb25zdHJ1w6fDo28gZG8gcHJvamV0bzo8YnI+PGJyPgogICAgCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcG8gICAgICAgICAgICAgIHwgRmVycmFtZW50YXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcsOqbmNpYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfAp8ICAgICAgICAgICAgICAgICAgICBCYW5jbyBkZSBEYWRvcyBOw6NvLVJlbGFjaW9uYWwgICAgICAgfCAgIE1PTkdPREIgICAgIHwgICAgICAgICAgICAgIGh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tL3RyeS9kb3dubG9hZC9jb21tdW5pdHkgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICBSb2JvIDNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBST0JPIDNUICAgICAgfCAgICAgICAgICAgICBodHRwczovL3JvYm9tb25nby5vcmcvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICBGcmFtZXdvcmsgSmF2YSBTcHJpbmcgQm9vdCAtIGNvbnN0cnXDp8OjbyBkbyBCYWNrLWVuZCAgICAgICB8ICAgIFNQUklORyBCT09UICAgICAgIHwgICAgICAgICAgICAgICBodHRwczovL3N0YXJ0LnNwcmluZy5pby8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICBBUEkgRG9jdW1lbnRhdGlvbiBMaWJyYXJ5IGZvciBTcHJpbmcgQm9vdCAgICAgICB8ICAgIE9QRU5BUEkgMyAgICAgICB8ICAgICAgICAgICAgICBodHRwczovL3NwcmluZ2RvYy5vcmcvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKfCAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1ld29yayBBcGFjaGUgS0FGS0EgICAgICAgICAgICAgICAgICAgICB8IEtBRktBICAgfCAgICAgICAgICAgICAgaHR0cHM6Ly9rYWZrYS5hcGFjaGUub3JnLyAgICAgICAgfCAgICAKfCAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgYW5kIG1hbmFnaW5nIG9iamVjdHMgYSBBcGFjaGUgS0FGS0EgICAgICAgICB8ICAgICBPRkZTRVQgRVhQTE9SRVIgICAgICAgICAgIHwgICAgICAgICAgICAgIGh0dHBzOi8va2Fma2F0b29sLmNvbS8gICAgICAgICB8ICAgIAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9ja2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICBET0NLRVIgICAgICAgICAgfCAgICAgICAgICAgICAgIGh0dHBzOi8vaHViLmRvY2tlci5jb20vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgCnwgICAgICAgICAgICAgIEFQSSBSRVNUZnVsIHVzaW5nIEpTT04gLSBTd2FnZ2VyIFVJICAgICAgICAgICB8ICAgU1dBR0dFUiAgICAgfCAgICAgICAgICAgICAgIGh0dHBzOi8vc3dhZ2dlci5pby8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgCnwgICAgICAgICAgICAgIEZyYW1ld29yayBBbmd1bGFyIC0gY29uc3RydcOnw6NvIGRhIEFQSSB3ZWIgICAgICAgICAgIHwgIEFOR1VMQVIgICAgICAgfCAgICAgICAgICAgICAgaHR0cHM6Ly9hbmd1bGFyLmlvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAKPGJyPgo8ZGl2IGFsaWduID0gJ2NlbnRlcic+CiAgICA8aDM+QmFja2VuZDwvaDM+CiAgICA8aW1nIGFsaWduPSdjZW50ZXInIHdpZHRoID0nIDgwcHggJyBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9kZXZpY29ucy9kZXZpY29uL2ljb25zL21vbmdvZGIvbW9uZ29kYi1vcmlnaW5hbC5zdmciIC8+CiAgICA8aW1nIGFsaWduPSdjZW50ZXInIHdpZHRoID0nIDgwcHggJyBzcmM9Ii4vcHJvamVjdC9sb2dvcy9yb2JvbW9uZ28tM1QucG5nIiAvPgogICAgPGltZyBhbGlnbj0nY2VudGVyJyB3aWR0aCA9JyA4MHB4ICcgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvZGV2aWNvbnMvZGV2aWNvbi9pY29ucy9zcHJpbmcvc3ByaW5nLW9yaWdpbmFsLnN2ZyIgLz4KICAgIDxpbWcgYWxpZ249J2NlbnRlcicgd2lkdGggPScgMjUwcHggJyBzcmM9Ii4vcHJvamVjdC9sb2dvcy9vcGVuQVBJMy5wbmciIC8+CiAgICA8aW1nIGFsaWduPSdjZW50ZXInIHdpZHRoID0nIDI1MHB4ICcgc3JjPSIuL3Byb2plY3QvbG9nb3Mvc3dhZ2dlcl9sb2dvLnN2ZyIgLz4KICAgIDxicj48YnI+CiAgICA8aDM+SW5mcmFlc3RydXR1cmE8L2gzPgogICAgPGltZyBhbGlnbj0nY2VudGVyJyB3aWR0aCA9JyA4MHB4ICcgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvZGV2aWNvbnMvZGV2aWNvbi9pY29ucy9hcGFjaGVrYWZrYS9hcGFjaGVrYWZrYS1vcmlnaW5hbC5zdmciIC8+CiAgICA8aW1nIGFsaWduPSdjZW50ZXInIHdpZHRoID0nIDgwcHggJyBzcmM9Imh0dHBzOi8vc3RhdGljLm1hY3VwZGF0ZS5jb20vcHJvZHVjdHMvNTM1MzIvbS9vZmZzZXQtZXhwbG9yZXItbG9nby5wbmc/dj0xNjMzMzQ5NTQwIiAvPgogICAgPGltZyBhbGlnbj0nY2VudGVyJyB3aWR0aCA9JyAxMDBweCAnIHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2Rldmljb25zL2Rldmljb24vaWNvbnMvZG9ja2VyL2RvY2tlci1vcmlnaW5hbC5zdmciIC8+CiAgICA8YnI+PGJyPgogICAgPGgzPkZyb250ZW5kPC9oMz4KICAgIDxpbWcgYWxpZ249J2NlbnRlcicgd2lkdGggPScgODBweCAnIHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2Rldmljb25zL2Rldmljb24vaWNvbnMvYW5ndWxhcmpzL2FuZ3VsYXJqcy1vcmlnaW5hbC5zdmciIC8+CiAgICA8YnI+CjwvZGl2Pgo8YnI+Cgo8ZGl2IGlkPSJwZXJjdXJzbyI+CjxoMj4g8J+UjiBQZXJjdXJzbyA8L2gyPgoKPG9sPgogICAgPGxpPlBhcnRlIDEgLSBDb25maWd1cmFuZG8vcHJlcGFyYW5kbyBhbWJpZW50ZSAoSW5mcmFlc3RydXR1cmEpCiAgICAgIDx1bD4KICAgICAgICA8bGk+SW5zdGFsYXIgQXBhY2hlIEthZmthLCBSb2JvIDNULCBJbnRlbGxpSiwgVlMgQ29kZSwgRG9ja2VyIERlc2t0b3A8L2xpPgogICAgICAgIDxsaT5BYnJpciBlIGxvZ2FyIG8gRG9ja2VyIERlc2t0b3A8L2xpPgogICAgICAgIDxsaT5BYnJpciBvIFZTIENvZGU8L2xpPgogICAgICAgIDxsaT5Db25maWd1cmFyIHVtYSBwYXN0YSBEb2NrZXIsIGNvbSBhcyBzdWJwYXN0YXMgS2Fma2EgZSBNb25nb0RCPC9saT4KICAgICAgICA8bGk+Q3JpYXIgb3MgYXJxdWl2b3MgZGUgY29uZmlndXJhw6fDo28gKGRvY2tlci1jb21wb3NlLnltbCkgZW0gY2FkYSBzdWJwYXN0YSBjcmlhZGE8L2xpPgogICAgICAgIDwhLS0gQ29tYW5kbyBkb2NrZXItY29tcG9zZSB1cCAtZCAobyAtZCDDqSBwYXJhIHN1YmlyIG8gc2Vydmlkb3IgZW0gMsK6IHBsYW5vKSAtLT4KICAgICAgICA8bGk+RW50cmFyIGVtIGNhZGEgc3VicGFzdGEgY3JpYWRhIGUgc3ViaXIgbyBzZXJ2acOnbyBwYXJhIG8gRG9ja2VyIChkb2NrZXItY29tcG9zZSB1cCAtZCk8L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxicj4KICAgIDxsaT5QYXJ0ZSAyIC0gTW9kZWxhbmRvIG8gcHJvamV0byBubyBEcmF3SU88L2xpPgogICAgPGJyPgogICAgPGxpPlBhcnRlIDMgLSBDcmlhbmRvIGJhY2stZW5kIGNvbSBKYXZhIFNwcmluZyBCb290CiAgICAgIDx1bD4KICAgICAgICA8bGk+QWJyaXIgbyBTcHJpbmcgSW5pdGlhbGl6ciBlIGNvbmZpZ3VyYXIgbyBTcHJpbmcgQm9vdDwvbGk+CiAgICAgICAgPGxpPkdlcmFyIG8gYXJxdWl2byBTcHJpbmcgQm9vdCBlIGFicmlyIG5vIEludGVsbGlKPC9saT4KICAgICAgICA8bGk+VmVyaWZpY2FyIGFzIGRlcGVuZMOqbmNpYXMgYSBzZXJlbSB1c2FkYXMgZSBjb25maWd1cmFyIG8gTWF2ZW48L2xpPgogICAgICAgIDxsaT5GYXplciBhcnF1aXZvIGRlIGNvbmZpZ3VyYcOnw6NvIGRlIGFjZXNzbyBhbyBNb25nb0RCIGUgYW8gc2Vydmlkb3IgQXBhY2hlIEthZmthPC9saT4KICAgICAgICA8bGk+UG92b2FyIG1lY2FuaWNhbWVudGUgbyBNb25nb0RCIGNvbSBhbGd1bnMgcGFydGljaXBhbnRlcyBkbyBCQkIsIGluY2x1aW5kbyBvIGlkIChhcnF1aXZvIEpTT04pPC9saT4KICAgICAgICA8bGk+Q29uc3RydWlyIGEgQVBJIGVtIEphdmEgU3ByaW5nIEJvb3QgLSBjbGFzc2VzLCBvYmpldG9zLCBkYXRhcyBlIGludGVyZmFjZXM8L2xpPgogICAgICAgIDxsaT5DcmlhciBhIGVzdHJ1dHVyYSBkbyBtaWNyb3NzZXJ2acOnbyBlbSBKYXZhIFNwcmluZyBCb290IC0gY2xhc3Nlcywgb2JqZXRvcywgZGF0YXMgZSBpbnRlcmZhY2VzPC9saT4KICAgICAgICA8bGk+SW1wb3J0YXIgbyBtaWNyb3NzZXJ2acOnbyBuYSBtZXNtYSBwYXN0YSBkYSBBUEksIG5vIEludGVsbGlKPC9saT4KICAgICAgICA8bGk+Q29uc3RydWlyIGFzIGNsYXNzZXMsIGRhdGFzLCBvYmpldG9zIGUgaW50ZXJmYWNlcyBwYXJhIG8gbWljcm9zc2VydmnDp288L2xpPgogICAgICAgIDxsaT5CdWlsZGFyIG9zIGFycXVpdm9zIHByaW5jaXBhaXMgZGEgQVBJIGUgZG8gbWljcm9zc2VydmnDp288L2xpPgogICAgICAgIDxsaT5UZXN0YXIgYXMgcm90YXMgbm8gUG9zdG1hbgogICAgICAgIFJvdGEgUE9TVCAKICAgICAgICBVUkw6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvcGFyYW1ldHJvcy9zYWx2YXIKICAgICAgICBBYmEgQk9EWToKICAgICAgICBKU09OID0KICAgICAgICB7CiAgICAgICAgICAiY2hhdmUiOiAiY29uZmlnLnZvdGFjYW8iLAogICAgICAgICAgInZhbG9yIjogIjMiCiAgICAgICAgfQogICAgICAgIDwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGJyPgogICAgPGxpPlBhcnRlIDQgLSBDcmlhbmRvIEFQSSB3ZWIgY29tIEFuZ3VsYXIKICAgICAgPHVsPgogICAgICAgIDxsaT5Ob3ZvIHByb2pldG86IG5nIG5ldyBub21lUHJvamV0byA8L2xpPgogICAgICAgIDxsaT5JbmljaWFuZG8gcHJvamV0bzogbmcgc2VydmVyIC0tb3BlbiA8L2xpPgogICAgICAgIDxsaT5Ob3ZvIGNvbXBvbmVudGU6IG5nIGdlbmVyYXRlIGNvbXBvbmVudCBub21lQ29tcG9uZW50ZSA8L2xpPgogICAgICAgIDxsaT5DcmlhciBpbnRlcmZhY2U6IHNyYy9hcHAvbW9kZWwvcGFydGljaXBhbnRlLnRzPC9saT4KICAgICAgICA8bGk+Q3JpYW5kbyByb3RhOiBuZyBnZW5lcmF0ZSBtb2R1bGUgYXBwLXJvdXRpbmcgLS1mbGF0IC0tbW9kdWxlPWFwcDwvbGk+CiAgICAgICAgPGxpPkltcG9ydGFyIEh0dHBDbGllbnRNb2R1bGUgZW0gYXBwLm1vZHVsZS50cyBbcGFydGUgZGUgaW1wb3J0c108L2xpPgogICAgICAgIDxsaT5DcmlhciBzZXJ2acOnbzogc3JjL2FwcC9zZXJ2aWNlL1Jlc3RTZXJ2aWNlLnRzPC9saT4KICAgICAgICA8bGk+QWRkIEBDcm9zc09yaWdpbiBlbSBQYXJ0aWNpcGFudGVDb250cm9sbGVyLmphdmEgZSBWb3RhY2FvQ29udHJvbGxlci5qYXZhPC9saT4KICAgICAgICA8bGk+SW1wbGVtZW50YXIgYXMgcm90YXM8L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxicj4KICAgIDxsaT5QYXJ0ZSA1IC0gSW50ZWdyYW5kbyBiYWNrLWVuZC9mcm9udC1lbmQgZSBhY2Vzc2FuZG8gZGFkb3M8L2xpPiAgCjwvb2w+CjwvZGl2Pgo8YnI+Cjxicj4K readmeEtag: '"af7be61366a762908a1aea98766dd02d3d9d82c8"' readmeLastModified: Fri, 16 Sep 2022 15:01:33 GMT repositoryId: 485125297 description: Online Votation System of Big Brother Brazil 22 (2022) created: '2022-04-24T19:51:31Z' updated: '2023-03-04T01:45:55Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: alexandrecpedro logo: https://avatars.githubusercontent.com/u/80993336?v=4 repoEtag: '"abe6c1a04f10c3878c9a9f3e19f7546fd5a4a340ae02b7e7f082169597018318"' repoLastModified: Sat, 04 Mar 2023 01:45:55 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/dongyaoo/kes v3: true id: b0830cc10323f7974be6d41b91361c83 repositoryMetadata: base64Readme: >- IyDnn6Xor4bmir3lj5bns7vnu58KCuacrOezu+e7n+WfuuS6jltBbnQgRGVzaWduIFByb10oaHR0cHM6Ly9wcm8uYW50LmRlc2lnbikuIOS7peS4i+Wwj+iKguWwhuS7i+e7jeWmguS9leS9v+eUqOacrOezu+e7ny4KCiMjIOeOr+Wig+mFjee9rgoK6ZSu5YWl5Lul5LiL5ZG95Luk5a6J6KOF56ys5LiJ5pa55L6d6LWW5bqTIGBub2RlX21vZHVsZXNgOgoKYGBgYmFzaApucG0gaW5zdGFsbApgYGAKCuaIluiAhQoKYGBgYmFzaAp5YXJuCmBgYAoKIyMg6aG555uu6ISa5pys5ZG95LukCgrmnKzpobnnm67ln7rkuo4gQW50IERlc2lnbiBQcm/vvIzlm6DmraTlpI3nlKjkuoYgQW50ZFBybyDohJrmnKzlkb3ku6TjgILor6bmg4Xlj6/mn6XnnIsgYHBhY2thZ2UuanNvbmDjgIIKCiMjIyDlkK/liqjns7vnu58KCmBgYGJhc2gKbnBtIHN0YXJ0CmBgYAoKIyMjIOaehOW7uumhueebrgoKYGBgYmFzaApucG0gcnVuIGJ1aWxkCmBgYAoKIyMjIOajgOafpeS7o+eggemjjuagvAoKYGBgYmFzaApucG0gcnVuIGxpbnQKYGBgCgrkvaDkuZ/lj6/ku6XplK7lhaXku6XkuIvlkb3ku6Toh6rliqjkv67lpI3kuIDkupvpo47moLzplJnor6/vvJoKCmBgYGJhc2gKbnBtIHJ1biBsaW50OmZpeApgYGAKCiMjIyDmtYvor5UKCmBgYGJhc2gKbnBtIHRlc3QKYGBgCgojIyDmm7TlpJoKCuabtOWkmiBBUEkg55So5rOV5Y+v5Y+C6ICDIEFudGRQcm8g55qEW+WumOaWueaWh+aho10oaHR0cHM6Ly9wcm8uYW50LmRlc2lnbinjgIIK readmeEtag: '"468ec960c70bb5c424c32c572851399459953f2b"' readmeLastModified: Wed, 04 May 2022 01:08:15 GMT repositoryId: 488405193 description: 知识抽取系统 created: '2022-05-04T00:35:09Z' updated: '2022-05-04T05:55:52Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: dongyaoo logo: https://avatars.githubusercontent.com/u/62202550?v=4 repoEtag: '"4a1f327e7698111ff2c8061465b52dc2143ea47070c6841c52f0b5a4c02ca317"' repoLastModified: Wed, 04 May 2022 05:55:52 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mmuzammil196/gradadmit-ann-predictor v3: true id: a33ba8d19e2c210216e331c8c7697aff repositoryMetadata: base64Readme: >- IVtNTklTVCBIYW5kd3JpdHRlbiBEaWdpdCBSZWNvZ25pdGlvbiB1c2luZyBBTk5dKGh0dHBzOi8vZ2l0aHViLmNvbS9tbXV6YW1taWwxOTYvR3JhZEFkbWl0LUFOTi1QcmVkaWN0b3IvYXNzZXRzLzc3Mzg5MDQwLzIxMTA5ZmM4LWQ4ODktNDg1MS05YWNlLTM2OGRhZGQwM2QzYykKCiJVbmxvY2sgeW91ciBmdXR1cmUgd2l0aCBHcmFkQWRtaXQtQU5OLVByZWRpY3RvciEg8J+agPCfjq8iCgpUaGlzIHByb2plY3QsIEdyYWRBZG1pdC1BTk4tUHJlZGljdG9yLCBmb2N1c2VzIG9uIHByZWRpY3RpbmcgdGhlIGxpa2VsaWhvb2Qgb2YgYWRtaXNzaW9uIHRvIGEgZ3JhZHVhdGUgcHJvZ3JhbSB1c2luZyBhbiBBcnRpZmljaWFsIE5ldXJhbCBOZXR3b3JrIChBTk4pIGFsZ29yaXRobS4gQnkgdHJhaW5pbmcgdGhlIG1vZGVsIG9uIGEgZGF0YXNldCBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycyBzdWNoIGFzIEdSRSBzY29yZXMsIFRPRUZMIHNjb3JlcywgdW5pdmVyc2l0eSByYXRpbmdzLCBhbmQgbGV0dGVyIG9mIHJlY29tbWVuZGF0aW9uIHN0cmVuZ3Rocywgd2Ugd2VyZSBhYmxlIHRvIGFjaGlldmUgYW4gYWNjdXJhY3kgb2YgODAlIGluIHByZWRpY3RpbmcgYWRtaXNzaW9ucyBvdXRjb21lcy4K readmeEtag: '"998599b81d809ec08f7a387054d7b1f18fee4487"' readmeLastModified: Mon, 05 Jun 2023 19:18:00 GMT repositoryId: 649848514 description: >- This project, GradAdmit-ANN-Predictor, focuses on predicting the likelihood of admission to a graduate program using an Artificial Neural Network (ANN) algorithm. created: '2023-06-05T19:15:46Z' updated: '2023-06-06T16:33:48Z' language: Jupyter Notebook archived: false stars: 1 watchers: 2 forks: 0 owner: mmuzammil196 logo: https://avatars.githubusercontent.com/u/77389040?v=4 repoEtag: '"0c8d8eeda25ad2ad55b759ebf797139bfdaebeef28edd6e693e3473f9adb8198"' repoLastModified: Tue, 06 Jun 2023 16:33:48 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/abhishekb91/petstore-openapi3 v3: true repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgogICAgUGV0c3RvcmUtT3BlbmFwaTMKPC9oMT4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxzdHJvbmc+Q3JlYXRpbmcgSFRUUCBBUEkgdXNpbmcgZ29sYW5nIGluIG9wZW5hcGkzIHN0YW5kYXJkPC9zdHJvbmc+PGJyPgo8L3A+CgojIyBDb250ZW50cwotIFtHZXR0aW5nIHN0YXJ0ZWRdKCNnZXR0aW5nLXN0YXJ0ZWQpCi0gW0RldmVsb3BtZW50XSgjZGV2ZWxvcG1lbnQpCgojIyBHZXR0aW5nIHN0YXJ0ZWQKVGhlIGludGVudCBvZiB0aGlzIHNhbXBsZSBwcm9qZWN0IGlzIHRvIGRlbW9uc3RyYXRlIHRoZSB1c2FnZSBvZiB2YXJpb3VzIHRvb2xzIHRvIGNyZWF0ZSB3ZWJhcGlzIHVzaW5nIG9wZW5hcGkgMyBzdGFuZGFyZC4gVGhpcyBwcm9qZWN0IHVzZXM6Ci0gW29hcGktY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuKSB0byBnZW5lcmF0ZSBzZXJ2ZXIgc3R1YnMKLSBbc3dhZ2dlci11aV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpIHRvIGRpc3BsYXkgdGhlIGFwaSBkb2N1bWVudAotIFtlY2hvXShodHRwczovL2dpdGh1Yi5jb20vbGFic3RhY2svZWNobykgYXMgSFRUUCByb3V0aW5nIGVuZ2luZQotIFtzdGF0aWtdKGh0dHBzOi8vZ2l0aHViLmNvbS9yYWt5bGwvc3RhdGlrKSB0byBjb21waWxlIHN0YXRpYyBmaWxlcyBpbnRvIGEgR28gYmluYXJ5Ci0gW21vY2tlcnldKGh0dHBzOi8vZ2l0aHViLmNvbS92ZWt0cmEvbW9ja2VyeSkgdG8gZ2VuZXJhdGUgbW9ja3MgZnJvbSBpbnRlcmZhY2VzCgojIyMgUHJlcmVxdWlzaXRlCi0gbG9jYWwgZ29sYW5nIGluc3RhbGxhdGlvbgotIE15U1FMIERhdGFiYXNlLiBVc2UgTWFrZWZpbGUgdG8gZ2VuZXJhdGUgTXlTUUwgY29udGFpbmVyIGxvY2FsbHkuCgojIyBEZXZlbG9wbWVudAoKLSBTdGFydGluZyBBcHBsaWNhdGlvbgoKICBUaGUgc2VydmljZSBleHBlY3RzIGRhdGFiYXNlIGNvbm5lY3Rpb24gdG8gYmUgcGFzc2VkIGFzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLiBJbiBvcmRlciB0byBtYWtlIGxvY2FsIGRldiBlYXN5LCB0aGVyZSBhcmUgdHdvIG9wdGlvbnMgZnJvbSB3aGljaCBvbmUgY2FuIHJ1biB0aGUgc2VydmljZToKCiAgLSBGcm9tIFZpc3VhbCBTdHVkaW8gQ29kZToKICAgIEluIG9yZGVyIHRvIGRlYnVnIHRoZSBzZXJ2aWNlLCBvbmUgY2FuIHJ1biB0aGUgc2VydmljZSBkaXJlY3RseSBmcm9tIHRoZSBWaXN1YWwgU3R1ZGlvIENvZGUgYERlYnVnIGFuZCBSdW5gID4gYExhdW5jaGAgYW5kIGFkZCBicmVha3BvaW50cwoKICAtIFVzaW5nIE1ha2VmaWxlOgogICAgRnJvbSB0aGUgcHJvamVjdCBSb290OgoKICAgIGBgYGJhc2gKICAgIG1ha2Ugc3RhcnRfc2VydmljZQogICAgYGBgCgotIEFQSSBFbmQtcG9pbnRzCgogIGBgYAogIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9kb2NzLwogIGBgYAoKLSBSdW5uaW5nIFVuaXQgVGVzdHMKICBgYGBiYXNoCiAgZ28gdGVzdCAuLy4uLgogIGBgYA== readmeEtag: '"154d584327b09797c02d12c881e3a7b06acb43b3"' readmeLastModified: Sun, 23 May 2021 03:55:43 GMT repositoryId: 354568182 description: Creating HTTP API using golang in openapi3 standard created: '2021-04-04T14:43:43Z' updated: '2024-02-28T14:37:13Z' language: Go archived: false stars: 1 watchers: 2 forks: 1 owner: abhishekb91 logo: https://avatars.githubusercontent.com/u/11881672?v=4 license: MIT repoEtag: '"db32235dd61a91763e62cc9a52ff32d7b9f1b5f8548dd5defea475364363ee92"' repoLastModified: Wed, 28 Feb 2024 14:37:13 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 6cf4808a04d7c970f29d5ef9209dff6f - source: openapi3 tags repository: https://github.com/godpeny/goserv v3: true repositoryMetadata: base64Readme: >- IyBHT1NFUlYKc2VydmVyIHRlbXBsYXRlIGluIEdPCgojIyBSdW4gQVBJIFNlcnZlcgpnbyBydW4gY21kL2dvc2Vydi1hcGkvbWFpbi5nbwoKIyMgUnVuIERCIFNlcnZlcgpnbyBydW4gY21kL2dvc2Vydi1kYi9tYWluLmdvCgojIyBSdW4gUmFiYml0IE1RIHdpdGggRG9ja2VyCmBgYApkb2NrZXIgcnVuIC0tcm0gLWQgLS1uYW1lIHJhYmJpdG1xIC1wIDU2NzI6NTY3MiAtcCAxNTY3MjoxNTY3MiAgLWUgUkFCQklUTVFfREVGQVVMVF9VU0VSPWFkbWluIC1lIFJBQkJJVE1RX0RFRkFVTFRfUEFTUz1hZG1pbiByYWJiaXRtcTozLW1hbmFnZW1lbnQKYGBgCgojIyBHZW5lcmF0aW5nIENvZGUKdXNpbmcgb3BlbmFwaS1nZW5lcmF0b3IgNS4wLjAtYmV0YTMKCiMjIyBBUEkgU2VydmVyCmBgYApqYXZhIC1qYXIgLi9hcGkvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBnZW5lcmF0ZSAtaSAuL2FwaS9zd2FnZ2VyLXNlcnZlci55YW1sIC1nIGdvLWdpbi1zZXJ2ZXIgLW8gLi9pbnRlcm5hbC9nb3NlcnYtYXBpIC0tcGFja2FnZS1uYW1lIGFwaQpgYGAKCiMjIyBBUEkgQ2xpZW50IChzYW1wbGUpCmBgYApqYXZhIC1qYXIgLi9hcGkvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBnZW5lcmF0ZSAtaSAuL2FwaS9zd2FnZ2VyLWNsaWVudC55YW1sIC1nIGdvIC1vIC4vaW50ZXJuYWwvY2xpZW50cy9zYW1wbGUgLS1wYWNrYWdlLW5hbWUgY2xpZW50CmBgYApVc2UgYGBhcGkvY29kZ2VuLXNlcnZlci5nb2BgIHRvIGNyZWF0ZSBgYHN3YWdnZXItc2VydmVyLnlhbWxgYAoKIyMjIERCIFNjaGVtYSBmb3IgZW50CmBgYApnbyBydW4gZ2l0aHViLmNvbS9mYWNlYm9vay9lbnQvY21kL2VudCBpbml0ICR7eW91ci1uZXctc2NoZW1hfSAKYGBgCgplZGl0IGBgPHlvdXItbmV3LXNjaGVtYT5gYC4gaW5pdGlhbGx5IGBgVXNlcmBgLGBgUHJvamVjdGBgIFNjaGVtYSBpcyBzZXQgOikKCmBgYApnbyBnZW5lcmF0ZSAuL2VudApgYGAK readmeEtag: '"c41cfac12eda351a04820649724035488e53fc5a"' readmeLastModified: Thu, 28 Jan 2021 13:40:14 GMT repositoryId: 318779942 description: Go Server Template using Rabbit MQ in Micro Service Architecture created: '2020-12-05T12:14:32Z' updated: '2024-02-28T14:39:34Z' language: Go archived: false stars: 1 watchers: 2 forks: 0 owner: godpeny logo: https://avatars.githubusercontent.com/u/37652215?v=4 repoEtag: '"1bb590ba1c7548bcc17924de953a488c650c141cef47646a28ba05eb2ba71735"' repoLastModified: Wed, 28 Feb 2024 14:39:34 GMT foundInMaster: true category: Code Generators id: 6ea98c8b537f8f13c141dd1ddc5eba2d - source: openapi3 tags repository: https://github.com/stephane-segning/rust-open-api-cli v3: true id: b2032686c1e369c2705519bad664f933 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpX2NsaQoKb3BlbmFwaV9jbGkgaXMgYSBSdXN0LWJhc2VkIGNvbW1hbmQtbGluZSB0b29sIGZvciBnZW5lcmF0aW5nIGNvZGUgZnJvbSBPcGVuQVBJIHNwZWNpZmljYXRpb25zLiBJdCBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gZG93bmxvYWQgdGhlIE9wZW5BUEkgZ2VuZXJhdG9yIGFuZCB0aGVuIGdlbmVyYXRlIGNvZGUgaW4gYSBzcGVjaWZpZWQgbGFuZ3VhZ2UuCgojIyBGZWF0dXJlcwotIERvd25sb2FkcyB0aGUgT3BlbkFQSSBnZW5lcmF0b3IgQ0xJIGlmIGl0J3Mgbm90IGFscmVhZHkgcHJlc2VudAotIEdlbmVyYXRlcyBjb2RlIGluIGEgc3BlY2lmaWVkIGxhbmd1YWdlIGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGUKLSBQcm92aWRlcyBhIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgZm9yIGVhc3kgdXNhZ2UKCiMjIFByZXJlcXVpc2l0ZXMKLSBSdXN0IHByb2dyYW1taW5nIGxhbmd1YWdlIChZb3UgY2FuIGluc3RhbGwgUnVzdCBmcm9tIFtoZXJlXShodHRwczovL3J1c3R1cC5ycy8pKQotIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChKREspCgojIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLXNlZ25pbmcvcnVzdC1vcGVuLWFwaS1jbGkuZ2l0CiQgY2QgcnVzdC1vcGVuLWFwaS1jbGkKJCBjYXJnbyBidWlsZCAtLXJlbGVhc2UKYGBgCgpUaGUgZXhlY3V0YWJsZSB3aWxsIGJlIGxvY2F0ZWQgaW4gdGhlICoqdGFyZ2V0L3JlbGVhc2UqKiBkaXJlY3RvcnkuCgojIyBVc2FnZQoKVG8gdXNlIHRoZSBhcHBsaWNhdGlvbiwgcnVuIHRoZSBjb21tYW5kIGJlbG93IGZyb20gdGhlIGNvbW1hbmQgbGluZToKCmBgYGJhc2gKJCAuL3RhcmdldC9yZWxlYXNlL29wZW5hcGlfY2xpIGdlbmVyYXRlIC12IDx2ZXJzaW9uPiAtaSA8aW5wdXQ+IC1vIDxvdXRwdXQ+IC1sIDxsYW5ndWFnZT4KYGBgCgpSZXBsYWNlIDx2ZXJzaW9uPiB3aXRoIHRoZSB2ZXJzaW9uIG9mIE9wZW5BUEkgZ2VuZXJhdG9yIENMSSwgYDxpbnB1dD5gIHdpdGggdGhlIHBhdGggdG8geW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZSwgPG91dHB1dD4gd2l0aCB0aGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBnZW5lcmF0ZWQgY29kZSBzaG91bGQgYmUgc2F2ZWQsIGFuZCA8bGFuZ3VhZ2U+IHdpdGggdGhlIHRhcmdldCBsYW5ndWFnZSBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlLgoKIyMgQ29udHJpYnV0aW5nCgpQdWxsIHJlcXVlc3RzIGFyZSB3ZWxjb21lLiBGb3IgbWFqb3IgY2hhbmdlcywgcGxlYXNlIG9wZW4gYW4gaXNzdWUgZmlyc3QgdG8gZGlzY3VzcyB3aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGNoYW5nZS4KClBsZWFzZSBtYWtlIHN1cmUgdG8gdXBkYXRlIHRlc3RzIGFzIGFwcHJvcHJpYXRlLgoKIyMgTGljZW5zZQoKW01JVF0oaHR0cHM6Ly9jaG9vc2VhbGljZW5zZS5jb20vbGljZW5zZXMvbWl0Lyk= readmeEtag: '"dd6bc2d38426becedbea93511f0c9c5b9366d6fc"' readmeLastModified: Sat, 22 Jul 2023 22:07:26 GMT repositoryId: 669529638 description: >- openapi_cli is a Rust-based command-line tool for generating code from OpenAPI specifications created: '2023-07-22T15:19:39Z' updated: '2024-04-22T10:18:45Z' language: Rust archived: false stars: 1 watchers: 1 forks: 1 owner: stephane-segning logo: https://avatars.githubusercontent.com/u/26783557?v=4 repoEtag: '"712b45e7083c037f475e3678379cf97bdc90ab34f5294f0311cac28fc3e309bb"' repoLastModified: Mon, 22 Apr 2024 10:18:45 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/refactorian/openapi-swagger-docker v3: true id: b94b2f4c4f7b8e91b61770c90e60f505 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Imh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy93cC1jb250ZW50L3VwbG9hZHMvc2l0ZXMvMy8yMDE2LzEwL09wZW5BUElfUGFudG9uZS5wbmciIHdpZHRoPSI1MDAiPjwvcD4KCiMgT3BlbkFQSSwgU3dhZ2dlciwgRG9ja2VyCi0gT3BlbkFQSSB2My54Ci0gU3dhZ2dlciBVSSB2NS54Ci0gU3dhZ2dlciBFZGl0b3IgdjQueAotIFJlZG9jIHYyLngKCiMgUmVxdWlyZW1lbnRzCi0gU3RhYmxlIHZlcnNpb24gb2YgW0RvY2tlcl0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL2luc3RhbGwvKQotIENvbXBhdGlibGUgdmVyc2lvbiBvZiBbRG9ja2VyIENvbXBvc2VdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2NvbXBvc2UvaW5zdGFsbC8jaW5zdGFsbC1jb21wb3NlKQoKIyBIb3cgVG8gRGVwbG95Ci0gYGRvY2tlciBjb21wb3NlIHVwIC1kYAoKIyBOb3RlcwoKIyMjIFN3YWdnZXIgVUkgKERvY2tlcikKLSBVUkw6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MAoKIyMjIEdpdEh1YiBQYWdlcwotIFN3YWdnZXIgVUk6IGh0dHBzOi8vcmVmYWN0b3JpYW4uZ2l0aHViLmlvL29wZW5hcGktc3dhZ2dlci1kb2NrZXIKLSBTd2FnZ2VyIEVkaXRvcjogaHR0cHM6Ly9yZWZhY3Rvcmlhbi5naXRodWIuaW8vb3BlbmFwaS1zd2FnZ2VyLWRvY2tlci9lZGl0b3IKLSBSZWRvYzogaHR0cHM6Ly9yZWZhY3Rvcmlhbi5naXRodWIuaW8vb3BlbmFwaS1zd2FnZ2VyLWRvY2tlci9yZWRvYwoKIyMjIERvY2tlciBjb21wb3NlIGNvbW1hbmRzCi0gQnVpbGQgb3IgcmVidWlsZCBzZXJ2aWNlcwogICAgLSBgZG9ja2VyIGNvbXBvc2UgYnVpbGRgCi0gQ3JlYXRlIGFuZCBzdGFydCBjb250YWluZXJzCiAgICAtIGBkb2NrZXIgY29tcG9zZSB1cCAtZGAKLSBTdG9wIGFuZCByZW1vdmUgY29udGFpbmVycywgbmV0d29ya3MKICAgIC0gYGRvY2tlciBjb21wb3NlIGRvd25gCi0gU3RvcCBhbGwgc2VydmljZXMKICAgIC0gYGRvY2tlciBjb21wb3NlIHN0b3BgCi0gUmVzdGFydCBzZXJ2aWNlIGNvbnRhaW5lcnMKICAgIC0gYGRvY2tlciBjb21wb3NlIHJlc3RhcnRgCi0gUnVuIGEgY29tbWFuZCBpbnNpZGUgYSBjb250YWluZXIKICAgIC0gYGRvY2tlciBjb21wb3NlIGV4ZWMgW2NvbnRhaW5lcl0gW2NvbW1hbmRdYAoKCiMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIEd1aWRlCgpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChPQVMpIGlzIGEgc3RhbmRhcmQsIGxhbmd1YWdlLW5ldXRyYWwgd2F5IHRvIGRlZmluZSB5b3VyIEFQSS4gSXQgaGVscHMgaHVtYW5zIGFuZCBjb21wdXRlcnMgZGlzY292ZXIgYW5kIHVuZGVyc3RhbmQgd2hhdCB5b3VyIHNlcnZpY2UgY2FuIGRvLCBhbGwgd2l0aG91dCBuZWVkaW5nIHRvIGxvb2sgYXQgdGhlIHNvdXJjZSBjb2RlIG9yIGRvY3VtZW50YXRpb24gb3IgaW5zcGVjdCBuZXR3b3JrIHRyYWZmaWMuIEFuIE9wZW5BUEkgZG9jdW1lbnQgaXMgYSBZQU1MIG9yIEpTT04gZmlsZSB0aGF0IG91dGxpbmVzIHRoZSBBUEnigJlzIGVuZHBvaW50cywgb3BlcmF0aW9ucywgaW5wdXQgYW5kIG91dHB1dCBwYXJhbWV0ZXJzLCByZXF1ZXN0IGFuZCByZXNwb25zZSBmb3JtYXRzLCBhdXRoZW50aWNhdGlvbiBtZXRob2RzLCBhbmQgbW9yZS4KCiMjIyBCYXNpYyBTdHJ1Y3R1cmUKCjEuICoqT3BlbkFQSSBWZXJzaW9uKioKICAgYGBgeWFtbAogICBvcGVuYXBpOiAzLjAuMAogICBgYGAKCjIuICoqSW5mbyBPYmplY3QqKgogICBgYGB5YW1sCiAgIGluZm86CiAgICAgdGl0bGU6IFNhbXBsZSBBUEkKICAgICBkZXNjcmlwdGlvbjogQVBJIGRlc2NyaXB0aW9uIGluIE1hcmtkb3duLgogICAgIHZlcnNpb246IDEuMC4wCiAgIGBgYAoKMy4gKipTZXJ2ZXJzIE9iamVjdCoqCiAgIGBgYHlhbWwKICAgc2VydmVyczoKICAgICAtIHVybDogaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEKICAgICAgIGRlc2NyaXB0aW9uOiBQcm9kdWN0aW9uIHNlcnZlcgogICBgYGAKCjQuICoqUGF0aHMgT2JqZWN0KioKICAgYGBgeWFtbAogICBwYXRoczoKICAgICAvdXNlcnM6CiAgICAgICBnZXQ6CiAgICAgICAgIHN1bW1hcnk6IFJldHVybnMgYSBsaXN0IG9mIHVzZXJzLgogICAgICAgICByZXNwb25zZXM6CiAgICAgICAgICAgJzIwMCc6CiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogQSBKU09OIGFycmF5IG9mIHVzZXIgbmFtZXMKICAgICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgICAgc2NoZW1hOiAKICAgICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgIGBgYAoKIyMjIENvbXBvbmVudHMKCjEuICoqU2NoZW1hcyoqCiAgIGBgYHlhbWwKICAgY29tcG9uZW50czoKICAgICBzY2hlbWFzOgogICAgICAgVXNlcjoKICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgaWQ6CiAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgbmFtZToKICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICBgYGAKCjIuICoqUGFyYW1ldGVycyoqCiAgIGBgYHlhbWwKICAgY29tcG9uZW50czoKICAgICBwYXJhbWV0ZXJzOgogICAgICAgVXNlcklkOgogICAgICAgICBuYW1lOiB1c2VySWQKICAgICAgICAgaW46IHBhdGgKICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgc2NoZW1hOgogICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgYGBgCgozLiAqKlJlc3BvbnNlcyoqCiAgIGBgYHlhbWwKICAgY29tcG9uZW50czoKICAgICByZXNwb25zZXM6CiAgICAgICBOb3RGb3VuZDoKICAgICAgICAgZGVzY3JpcHRpb246IEVudGl0eSBub3QgZm91bmQuCiAgIGBgYAoKNC4gKipTZWN1cml0eSBTY2hlbWVzKioKICAgYGBgeWFtbAogICBjb21wb25lbnRzOgogICAgIHNlY3VyaXR5U2NoZW1lczoKICAgICAgIEFwaUtleUF1dGg6CiAgICAgICAgIHR5cGU6IGFwaUtleQogICAgICAgICBpbjogaGVhZGVyCiAgICAgICAgIG5hbWU6IFgtQVBJLUtleQogICBgYGAKCiMjIyBLZXkgRWxlbWVudHMKCiMjIyBQYXRocwpEZWZpbmVzIHRoZSBhdmFpbGFibGUgcGF0aHMgYW5kIG9wZXJhdGlvbnMgZm9yIHRoZSBBUEkuCmBgYHlhbWwKcGF0aHM6CiAgL3BldHM6CiAgICBnZXQ6CiAgICAgIHN1bW1hcnk6IExpc3QgYWxsIHBldHMKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RQZXRzCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAnMjAwJzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHBhZ2VkIGFycmF5IG9mIHBldHMKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246ICAgIAogICAgICAgICAgICAgIHNjaGVtYTogCiAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgaXRlbXM6IAogICAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0JwpgYGAKCiMjIyBQYXJhbWV0ZXJzCkRlZmluZXMgdGhlIGlucHV0cyB0byBhbiBBUEkgbWV0aG9kLCB3aGljaCBjb3VsZCBiZSBwYXRoLCBxdWVyeSwgaGVhZGVyLCBvciBjb29raWUgcGFyYW1ldGVycy4KYGBgeWFtbApwYXJhbWV0ZXJzOgogIC0gaW46IHF1ZXJ5CiAgICBuYW1lOiBsaW1pdAogICAgc2NoZW1hOgogICAgICB0eXBlOiBpbnRlZ2VyCiAgICBkZXNjcmlwdGlvbjogSG93IG1hbnkgaXRlbXMgdG8gcmV0dXJuIGF0IG9uZSB0aW1lIChtYXggMTAwKQpgYGAKCiMjIyBSZXNwb25zZXMKRGVmaW5lcyB0aGUgcG9zc2libGUgcmVzcG9uc2VzIGZyb20gYW4gQVBJIG1ldGhvZC4KYGBgeWFtbApyZXNwb25zZXM6CiAgJzIwMCc6CiAgICBkZXNjcmlwdGlvbjogQSBwYWdlZCBhcnJheSBvZiBwZXRzCiAgICBoZWFkZXJzOgogICAgICB4LW5leHQ6CiAgICAgICAgZGVzY3JpcHRpb246IEEgbGluayB0byB0aGUgbmV4dCBwYWdlIG9mIHJlc3BvbnNlcwogICAgICAgIHNjaGVtYToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgY29udGVudDoKICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICBzY2hlbWE6IAogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOiAKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BldCcKYGBgCgojIyMgQ29tcG9uZW50cwpIb2xkcyByZXVzYWJsZSBvYmplY3RzLCBzdWNoIGFzIHNjaGVtYXMsIHJlc3BvbnNlcywgcGFyYW1ldGVycywgYW5kIHNlY3VyaXR5IGRlZmluaXRpb25zLgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIFBldDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaWQKICAgICAgICAtIG5hbWUKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGZvcm1hdDogaW50NjQKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgdGFnOgogICAgICAgICAgdHlwZTogc3RyaW5nCmBgYAoKIyMjIEJlc3QgUHJhY3RpY2VzCgoxLiAqKlVzZSBNZWFuaW5nZnVsIERlc2NyaXB0aW9uczoqKiBQcm92aWRlIGRldGFpbGVkIGRlc2NyaXB0aW9ucyBmb3IgZWFjaCBmaWVsZCwgZW5kcG9pbnQsIGFuZCByZXNwb25zZSB0byBtYWtlIHRoZSBkb2N1bWVudGF0aW9uIHVzZXItZnJpZW5kbHkuCjIuICoqS2VlcCBJdCBEUlkgKERvbid0IFJlcGVhdCBZb3Vyc2VsZik6KiogVXRpbGl6ZSB0aGUgY29tcG9uZW50cyBzZWN0aW9uIHRvIGF2b2lkIHJlZHVuZGFuY3kuCjMuICoqVmFsaWRhdGUgdGhlIFNwZWNpZmljYXRpb246KiogVXNlIHRvb2xzIGxpa2UgU3dhZ2dlciBvciBSZWRvY2x5IHRvIHZhbGlkYXRlIGFuZCB2aXN1YWxpemUgeW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24uCjQuICoqRG9jdW1lbnQgU2VjdXJpdHk6KiogQ2xlYXJseSBkZWZpbmUgYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gbWVjaGFuaXNtcy4KNS4gKipWZXJzaW9uIFlvdXIgQVBJOioqIEluY2x1ZGUgdmVyc2lvbmluZyBpbiB0aGUgQVBJIHBhdGhzIG9yIGhlYWRlcnMgdG8gaGFuZGxlIGJyZWFraW5nIGNoYW5nZXMgZ3JhY2VmdWxseS4K readmeEtag: '"f4d2d3ecf6febd9cea530d8249ae8386a2507849"' readmeLastModified: Tue, 09 Jul 2024 23:24:34 GMT repositoryId: 826362668 description: >- OpenAPI v3.x, Swagger UI v5.x, Swagger Editor v4.x, Redoc v2.x, Docker Compose, GitHub Pages created: '2024-07-09T15:04:25Z' updated: '2024-07-09T23:32:30Z' language: HTML archived: false stars: 1 watchers: 1 forks: 0 owner: refactorian logo: https://avatars.githubusercontent.com/u/110738252?v=4 repoEtag: '"e55f4fb4775c696d18d584f668cd4e4699af2fed4d73b75251833d6a52f185b0"' repoLastModified: Tue, 09 Jul 2024 23:32:30 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/nachonacho-inc/public-api-doc v3: true id: 092df77af6c1ae32ddbda7b3e299888a repositoryMetadata: base64Readme: >- IyBOYWNob05hY2hvIFB1YmxpYyBBUEkgRG9jdW1lbnRhdGlvbgoKIVtJbWFnZSBvZiBOYWNob05hY2hvXShodHRwczovL2FwcC5uYWNob25hY2hvLmNvbS9sb2dvL05hY2hvTmFjaG9Mb2dvLnBuZykKCkFQSSBEb2N1bWVudGF0aW9uIGV4cG9zZWQgdmlhIE9wZW5BUEkgVUkuCgpZb3UgY2FuIGFjY2VzcyBpdCBoZXJlIDogaHR0cHM6Ly9uYWNob25hY2hvLWluYy5naXRodWIuaW8vcHVibGljLWFwaS1kb2MK readmeEtag: '"b52855e831ff7d6d32c9a3b380a838dddbbd50da"' readmeLastModified: Tue, 16 Aug 2022 20:01:59 GMT repositoryId: 524476113 description: NachoNacho Public API Documentation created: '2022-08-13T18:20:20Z' updated: '2022-10-26T18:23:38Z' language: Makefile archived: false stars: 1 watchers: 5 forks: 1 owner: nachonacho-inc logo: https://avatars.githubusercontent.com/u/64567964?v=4 repoEtag: '"ad3fb9d7e8046d9a042dcdd199d720cdc71bb71d396db6f836df925c440e40b5"' repoLastModified: Wed, 26 Oct 2022 18:23:38 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/api-flows/openapi-workflow-parser v3: true v3_1: true id: de663aa29fdc4381a95f3bcf538e307f repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFdvcmtmbG93IChBcmF6em8pIFBhcnNlcgoKWyFbXShodHRwczovL2JhZGdlbi5uZXQvZ2l0aHViL2xpY2Vuc2UvQVBJLUZsb3dzL29wZW5hcGktd29ya2Zsb3ctcGFyc2VyKV0oTElDRU5TRSkKWyFbXShodHRwczovL2JhZGdlbi5uZXQvbWF2ZW4vdi9tYXZlbi1jZW50cmFsL2NvbS5hcGktZmxvd3Mvb3BlbmFwaS13b3JrZmxvdy1wYXJzZXIpXShodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvY29tL2FwaS1mbG93cy9vcGVuYXBpLXdvcmtmbG93LXBhcnNlci8pClshW1F1YWxpdHkgR2F0ZSBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PUFQSS1GbG93c19vcGVuYXBpLXdvcmtmbG93LXBhcnNlciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9QVBJLUZsb3dzX29wZW5hcGktd29ya2Zsb3ctcGFyc2VyKQoKUGFyc2luZyBBUEkgd29ya2Zsb3dzLgoKIyMgT3ZlcnZpZXcKClRoZSBPcGVuQVBJIFdvcmtmbG93IHBhcnNlciBpcyBhbiBvcGVuLXNvdXJjZSBKYXZhIGxpYnJhcnkgZGVzaWduZWQgdG8gcGFyc2UgdGhlIFtPQUkgQXJhenpvIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvQXJhenpvLVNwZWNpZmljYXRpb24vKSBmaWxlcy4gSXQgcmVhZHMgYW4gQXJhenpvIGZpbGUgKEpTT04gb3IgWUFNTCBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQpIGFuZCBjcmVhdGVzIHRoZSBjb3JyZXNwb25kaW5nIEphdmEgb2JqZWN0cy4gIAoKVGhlIHBhcnNlcidzIGdvYWwgaXMgdG8gc2ltcGxpZnkgdGhlIGV4dHJhY3Rpb24gYW5kIG1hbmlwdWxhdGlvbiBvZiB3b3JrZmxvd3MsIGhlbHBpbmcgZGV2ZWxvcGVycyBjcmVhdGUgYXBwbGljYXRpb25zIGFuZCB0b29scyB0aGF0IGhhcm5lc3MgdGhlIHNlbWFudGljIHN0cnVjdHVyZSBvZiBBUEkgZmxvd3MuCgojIyBGZWF0dXJlcwoKLSAqKldvcmtmbG93IFBhcnNpbmc6KiogUmVhZHMgT0FJIEFyYXp6byBzcGVjaWZpY2F0aW9uIGZpbGVzIGxvYWRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgSmF2YSBvYmplY3RzLgotICoqRWFzZSBvZiBVc2U6KiogUHJvdmlkZXMgYSBzaW1wbGUgd2F5IGZvciBkZXZlbG9wZXJzIHRvIHBhcnNlIHdvcmtmbG93cy4KLSAqKkNvbXBhdGliaWxpdHk6KiogU3VwcG9ydHMgYm90aCBKU09OIGFuZCBZQU1MIGZvcm1hdHMuCi0gKipWYWxpZGF0aW9uOioqIFZhbGlkYXRlcyB0aGUgc3BlY2lmaWNhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIFtBcmF6em8gU3BlY2lmaWNhdGlvbiB2MS4wLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvQXJhenpvLVNwZWNpZmljYXRpb24vKS4KICAKIyMgVXNhZ2UKCiMjIyBBZGQgdG8gdGhlIHByb2plY3QKCllvdSBjYW4gaW5jbHVkZSB0aGlzIGxpYnJhcnkgZnJvbSBNYXZlbiBjZW50cmFsOgpgYGAKICA8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmNvbS1hcGktZmxvd3M8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLXdvcmtmbG93LXBhcnNlcjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPjAuMC4zPC92ZXJzaW9uPgogIDwvZGVwZW5kZW5jeT4KYGBgCgpQYXJzZSBmcm9tIGZpbGU6CmBgYGphdmEKICBmaW5hbCBTdHJpbmcgV09SS0ZMT1dTX1NQRUMgPSAicGF0aC9wZXQtY291cG9ucy53b3JrZmxvdy55YW1sIjsKCiAgT3BlbkFQSVdvcmtmbG93UGFyc2VyUmVzdWx0IHJlc3VsdCA9IHBhcnNlci5wYXJzZShXT1JLRkxPV1NfU1BFQyk7CgogIGJvb2xlYW4gdmFsaWQgPSByZXN1bHQuaXNWYWxpZCgpOwogIFN0cmluZyB0aXRsZSA9IHJlc3VsdC5nZXRPcGVuQVBJV29ya2Zsb3coKS5nZXRJbmZvKCkuZ2V0VGl0bGUoKTsKYGBgCgpQYXJzZSBmcm9tIFVSTDoKYGBgamF2YQogIGZpbmFsIFN0cmluZyBXT1JLRkxPV1NfU1BFQyA9ICJodHRwczovL2hvc3QvcGF0aC9wZXQtY291cG9ucy53b3JrZmxvdy55YW1sIjsKCiAgT3BlbkFQSVdvcmtmbG93UGFyc2VyUmVzdWx0IHJlc3VsdCA9IHBhcnNlci5wYXJzZShXT1JLRkxPV1NfU1BFQyk7CgogIGJvb2xlYW4gdmFsaWQgPSByZXN1bHQuaXNWYWxpZCgpOwogIFN0cmluZyB0aXRsZSA9IHJlc3VsdC5nZXRPcGVuQVBJV29ya2Zsb3coKS5nZXRJbmZvKCkuZ2V0VGl0bGUoKTsKYGBgCgojIyBCdWlsZCBmcm9tIHNvdXJjZQoKQ2xvbmUgZnJvbSB0aGUgR2l0SHViIHJlcG9zaXRvcnkKCmBgYGJhc2gKICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL0FQSS1GbG93cy9vcGVuYXBpLXdvcmtmbG93LXBhcnNlci5naXQKICBjZCBvcGVuYXBpLXdvcmtmbG93LXBhcnNlcgogIG12biBwYWNrYWdlCmBgYAoKIyMgVXNlIHNuYXBzaG90cwoKQWRkIHRoZSBNYXZlbiByZXBvc2l0b3J5IGZvciB0aGUgT3BlbkFQSSB3b3JrZmxvdyBwYXJzZXIgc25hcHNob3RzOgpgYGB4bWwKIDxyZXBvc2l0b3JpZXM+CiAgICA8cmVwb3NpdG9yeT4KICAgICAgPGlkPmdpdGh1YjwvaWQ+CiAgICAgIDx1cmw+aHR0cHM6Ly9tYXZlbi5wa2cuZ2l0aHViLmNvbS9BUEktRmxvd3Mvb3BlbmFwaS13b3JrZmxvdy1wYXJzZXI8L3VybD4KICAgICAgPHNuYXBzaG90cz4KICAgICAgICA8ZW5hYmxlZD50cnVlPC9lbmFibGVkPgogICAgICA8L3NuYXBzaG90cz4KICAgIDwvcmVwb3NpdG9yeT4KICA8L3JlcG9zaXRvcmllcz4KYGBgCkFkZCB0aGUgU05BUFNIT1QgZGVwZW5kZW5jeSAoW2NoZWNrIGxhdGVzdF0ocG9tLnhtbCkgYXZhaWxhYmxlKSBpbiB5b3VyIFBPTSBmaWxlOgpgYGB4bWwKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5jb20uYXBpLWZsb3dzPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLXdvcmtmbG93LXBhcnNlcjwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MC4wLjQtU05BUFNIT1Q8L3ZlcnNpb24+CiAgICA8L2RlcGVuZGVuY3k+CmBgYAo= readmeEtag: '"6a706544a68f764fb1ce2700116a45db7baea395"' readmeLastModified: Tue, 13 Aug 2024 10:48:40 GMT repositoryId: 729817092 description: Java parser of the OpenAPI workflow (Arazzo) specification created: '2023-12-10T13:02:41Z' updated: '2024-08-13T10:48:44Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: API-Flows logo: https://avatars.githubusercontent.com/u/153562650?v=4 license: Apache-2.0 repoEtag: '"a864757c3f9807a7736f7c1c92df08c64adb4d757320aa350fc56b7072efcd67"' repoLastModified: Tue, 13 Aug 2024 10:48:44 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/vivek-26/koa-openapi3-router v3: true repositoryMetadata: base64Readme: IyMjIFRoaXMgbGlicmFyeSBpcyBpbiBhbHBoYSBzdGFnZQ== readmeEtag: '"3bd885ad877c6caf1065abbe1da2e9418a4411dd"' readmeLastModified: Sat, 17 Mar 2018 05:57:23 GMT repositoryId: 123946298 description: Koa (v2) Router, based on OpenAPI 3 Doc. created: '2018-03-05T16:22:45Z' updated: '2018-04-09T12:18:40Z' language: JavaScript archived: false stars: 1 watchers: 3 forks: 0 owner: vivek-26 logo: https://avatars.githubusercontent.com/u/16881423?v=4 license: MIT repoEtag: '"d4b644c37b4321c68ebf0d7ac3f9b63d86fc6d51a822e3490ae196adeaccf58c"' repoLastModified: Mon, 09 Apr 2018 12:18:40 GMT foundInMaster: true category: - Documentation - Testing - Parsers id: 60f2c3139be2a10f5462502ef6f862d5 - source: openapi3 tags repository: https://github.com/opencars/docs v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQ2FycyBBUEkKCkFQSSDQtNC70Y8g0L/Rg9Cx0LvRltGH0L3QvtGXINGW0L3RhNC+0YDQvNCw0YbRltGXINC/0YDQviDRgtGA0LDQvdGB0L/QvtGA0YLQvdGWINC30LDRgdC+0LHQuCDQo9C60YDQsNGX0L3QuAoKIyMgVGFibGUgb2YgQ29udGVudHMKCiogW1NlcnZlcnNdKCNzZXJ2ZXJzKQoqIFtQYXRoc10oI3BhdGhzKQogIC0gW2BHRVRgIC9vcGVyYXRpb25zXSgjb3AtZ2V0LW9wZXJhdGlvbnMpIAogIC0gW2BHRVRgIC9yZWdpc3RyYXRpb25zXSgjb3AtZ2V0LXJlZ2lzdHJhdGlvbnMpIAogIC0gW2BHRVRgIC9yZWdpc3RyYXRpb25zL3tjb2RlfV0oI29wLWdldC1yZWdpc3RyYXRpb25zLWNvZGUpIAogIC0gW2BHRVRgIC93YW50ZWQvdmVoaWNsZXNdKCNvcC1nZXQtd2FudGVkLXZlaGljbGVzKSAKICAtIFtgR0VUYCAvd2FudGVkL3JldmlzaW9uc10oI29wLWdldC13YW50ZWQtcmV2aXNpb25zKSAKICAtIFtgR0VUYCAvd2FudGVkL3JldmlzaW9ucy97aWR9XSgjb3AtZ2V0LXdhbnRlZC1yZXZpc2lvbnMtaWQpIAogIC0gW2BHRVRgIC93YW50ZWQvcmV2aXNpb25zL3N0YXRzXSgjb3AtZ2V0LXdhbnRlZC1yZXZpc2lvbnMtc3RhdHMpIAoqIFtTY2hlbWFzXSgjc2NoZW1hcykKICAtIEVycm9yCiAgLSBPcGVyYXRpb24KICAtIFJlZ2lzdHJhdGlvbgogIC0gV2FudGVkVmVoaWNsZQogIC0gV2FudGVkUmV2aXNpb24KICAtIFdhbnRlZFJldmlzaW9uU3RhdE1vbnRoCgoKPGEgaWQ9InNlcnZlcnMiIC8+CiMjIFNlcnZlcnMKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5VUkw8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgPHRyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgPHRyPgogICAgICA8dGQ+PGEgaHJlZj0iaHR0cHM6Ly9hcGkub3BlbmNhcnMuYXBwL2FwaS92MS8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2FwaS5vcGVuY2Fycy5hcHAvYXBpL3YxLzwvYT48L3RkPgogICAgICA8dGQ+PC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjxhIG5hbWU9InNlY3VyaXR5Ij48L2E+CiMjIFNlY3VyaXR5Cgo8dGFibGUgY2xhc3M9InRhYmxlIj4KICA8dGhlYWQgY2xhc3M9InRhYmxlX19oZWFkIj4KICAgIDx0ciBjbGFzcz0idGFibGVfX2hlYWRfX3JvdyI+CiAgICAgIDx0aCBjbGFzcz0idGFibGVfX2hlYWRfX2NlbGwiPlR5cGU8L3RoPgogICAgICA8dGggY2xhc3M9InRhYmxlX19oZWFkX19jZWxsIj5JbjwvdGg+CiAgICAgIDx0aCBjbGFzcz0idGFibGVfX2hlYWRfX2NlbGwiPk5hbWU8L3RoPgogICAgICA8dGggY2xhc3M9InRhYmxlX19oZWFkX19jZWxsIj5TY2hlbWU8L3RoPgogICAgICA8dGggY2xhc3M9InRhYmxlX19oZWFkX19jZWxsIj5Gb3JtYXQ8L3RoPgogICAgICA8dGggY2xhc3M9InRhYmxlX19oZWFkX19jZWxsIj5EZXNjcmlwdGlvbjwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5IGNsYXNzPSJ0YWJsZV9fYm9keSI+CiAgICA8dHIgY2xhc3M9InRhYmxlX19ib2R5X19yb3ciPgogICAgICA8dGQgY2xhc3M9InRhYmxlX19ib2R5X19jZWxsIj5hcGlLZXk8L3RkPgogICAgICA8dGQgY2xhc3M9InRhYmxlX19ib2R5X19jZWxsIj5oZWFkZXI8L3RkPgogICAgICA8dGQgY2xhc3M9InRhYmxlX19ib2R5X19jZWxsIj5BcGktS2V5PC90ZD4KICAgICAgPHRkIGNsYXNzPSJ0YWJsZV9fYm9keV9fY2VsbCI+PC90ZD4KICAgICAgPHRkIGNsYXNzPSJ0YWJsZV9fYm9keV9fY2VsbCI+PC90ZD4KICAgICAgPHRkIGNsYXNzPSJ0YWJsZV9fYm9keV9fY2VsbCI+PC90ZD4KICAgIDwvdHI+CgogIDwvdGJvZHk+CjwvdGFibGU+CgojIyBQYXRocwoKCiMjIyBgR0VUYCAvb3BlcmF0aW9ucwo8YSBpZD0ib3AtZ2V0LW9wZXJhdGlvbnMiIC8+Cgo+INCG0L3RhNC+0YDQvNCw0YbRltGPINC/0YDQviDQvtC/0LXRgNCw0YbRltGXINC30LAg0YDQtdGU0YHRgtGA0LDRhtGW0LnQvdC40Lwg0L3QvtC80LXRgNC+0LwKCgoKCgojIyMjIFF1ZXJ5IHBhcmFtZXRlcnMKCiMjIyMjICYjOTY1NTsgbnVtYmVyCgrQoNC10ZTRgdGC0YDQsNGG0ZbQudC90LjQuSDQvdC+0LzQtdGACgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5JbjwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5udW1iZXIgIDxzdHJvbmc+KHJlcXVpcmVkKTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+cXVlcnk8L3RkPgogICAgICAgIDx0ZD7QoNC10ZTRgdGC0YDQsNGG0ZbQudC90LjQuSDQvdC+0LzQtdGAPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCiMjIyMjICYjOTY1NTsgbGltaXQKCtCa0ZbQu9GM0LrRltGB0YLRjCDQt9Cw0L/QuNGB0ZbQsgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+SW48L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+bGltaXQgPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+cXVlcnk8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0LfQsNC/0LjRgdGW0LI8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgJiM5NjU1OyBvcmRlcgoK0J/QvtGA0Y/QtNC+0Log0YHQvtGA0YLRg9Cy0LDQvdC90Y8KCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkluPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPm9yZGVyIDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+cXVlcnk8L3RkPgogICAgICAgIDx0ZD7Qn9C+0YDRj9C00L7QuiDRgdC+0YDRgtGD0LLQsNC90L3RjzwvdGQ+CiAgICAgICAgPHRkPjxjb2RlPmFzYzwvY29kZT4sIDxjb2RlPmRlc2M8L2NvZGU+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCgoKCgojIyMjIFJlc3BvbnNlcwoKCiMjIyMjIOKWtiAyMDAgLSBPSwoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgYXJyYXkob2JqZWN0KQogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UubnVtYmVyPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QoNC10ZTRgdGC0YDQsNGG0ZbQudC90LjQuSDQvdC+0LzQtdGAPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5icmFuZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JzQsNGA0LrQsDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UubW9kZWw8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCc0L7QtNC10LvRjDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UueWVhcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCg0ZbQuiDQstC40L/Rg9GB0LrRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UuZGF0ZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JTQsNGC0LAg0L/RgNC+0LLQtdC00LXQvdC90Y8g0L7Qv9C10YDQsNGG0ZbRlzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UucmVnaXN0cmF0aW9uPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QktC40LQg0YDQtdGU0YHRgtGA0LDRhtGW0Zc8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLnJlZ2lzdHJhdGlvbl9jb2RlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrQvtC0INCy0LjQtNGDINGA0LXRlNGB0YLRgNCw0YbRltGXPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5mdWVsPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L8g0L/QsNC70YzQvdC+0LPQvjwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UuY2FwYWNpdHk8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIG51bWJlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCe0LEn0ZTQvCDQtNCy0LjQs9GD0L3QsDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UuY29sb3I8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0L7Qu9GW0YAg0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5raW5kPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L8g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5ib2R5PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L8g0LrRg9C30L7QstGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5wdXJwb3NlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qn9GA0LjQt9C90LDRh9C10L3QvdGPPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5vd25fd2VpZ2h0PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JzQsNGB0LAg0LHQtdC3INC90LDQstCw0L3RgtCw0LbQtdC90L3RjzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UudG90YWxfd2VpZ2h0PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J/QvtCy0L3QsCDQvNCw0YHQsDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UucmVnX2FkZHJfa29hdHV1PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QkNC00YDQtdGB0LAg0YDQtdGU0YHRgtGA0LDRhmnRlyDRgyDRhNC+0YDQvNCw0YLRliDQmtCe0JDQotCj0KM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLmRlcF9jb2RlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrQvtC0INC00LXQv9Cw0YDRgtCw0LzQtdC90YLRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UuZGVwPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QndCw0LfQstCwINC00LXQv9Cw0YDRgtCw0LzQtdC90YLRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UucGVyc29uPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QndCw0LfQstCwINC00LXQv9Cw0YDRgtCw0LzQtdC90YLRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KWwogIHsKICAgICJudW1iZXIiOiAi0JDQkDkzNTnQoNChIiwKICAgICJicmFuZCI6ICJURVNMQSIsCiAgICAibW9kZWwiOiAiTU9ERUwgWCIsCiAgICAieWVhciI6IDIwMTYsCiAgICAiZGF0ZSI6ICIyMDE2LTEwLTEzIiwKICAgICJyZWdpc3RyYXRpb24iOiAi0KDQldCE0KHQotCg0JDQpknQryDQotCXINCf0KDQmNCS0JXQl9CV0J3QntCT0J4g0Jct0JfQkCDQmtCe0KDQlNCe0J3QoyDQn9CeINCS0JzQlCIsCiAgICAicmVnaXN0cmF0aW9uX2NvZGUiOiA3MCwKICAgICJmdWVsIjogItCV0JvQldCa0KLQoNCeIiwKICAgICJjYXBhY2l0eSI6IG51bGwsCiAgICAiY29sb3IiOiAi0KfQntCg0J3QmNCZIiwKICAgICJraW5kIjogItCb0JXQk9Ca0J7QktCY0JkiLAogICAgImJvZHkiOiAi0KPQndCG0JLQldCg0KHQkNCbLUIiLAogICAgInB1cnBvc2UiOiAi0JfQkNCT0JDQm9Cs0J3QmNCZIiwKICAgICJvd25fd2VpZ2h0IjogMjQ4NSwKICAgICJ0b3RhbF93ZWlnaHQiOiAzMDIxLAogICAgInJlZ19hZGRyX2tvYXR1dSI6ICI4MDM2NjAwMDAwIiwKICAgICJkZXBfY29kZSI6IDgwNDQsCiAgICAiZGVwIjogItCm0LXQvdGC0YAgODA0NCIsCiAgICAicGVyc29uIjogItCu0YDQuNC00LjRh9C90LAg0L7RgdC+0LHQsCIKICB9Cl0KYGBgCiMjIyMjIOKWtiA0MDAgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQt9Cw0L/QuNGCCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA0MDEgLSDQn9C+0YLRgNGW0LHQvdCwINCQ0LLRgtC+0YDQuNC30LDRhtGW0Y8KCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIOKWtiA0MDUgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQvNC10YLQvtC0CgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA1MDAgLSDQn9C+0LzQuNC70LrQsAoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiZXJyb3IiOiAic3RyaW5nIgp9CmBgYAoKIyMjIyBUYWdzCgo8ZGl2IGNsYXNzPSJ0YWdzIj4KICA8ZGl2IGNsYXNzPSJ0YWdzX190YWciPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CgojIyMgYEdFVGAgL3JlZ2lzdHJhdGlvbnMKPGEgaWQ9Im9wLWdldC1yZWdpc3RyYXRpb25zIiAvPgoKPiDQhtC90YTQvtGA0LzQsNGG0ZbRjyDQv9GA0L4g0YDQtdGU0YHRgtGA0LDRhtGW0Zcg0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDCgoKCgoKIyMjIyBRdWVyeSBwYXJhbWV0ZXJzCgojIyMjIyAmIzk2NTU7IG51bWJlcgoK0KDQtdGU0YHRgtGA0LDRhtGW0LnQvdC40Lkg0L3QvtC80LXRgAoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+SW48L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+bnVtYmVyIDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+cXVlcnk8L3RkPgogICAgICAgIDx0ZD7QoNC10ZTRgdGC0YDQsNGG0ZbQudC90LjQuSDQvdC+0LzQtdGAPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCiMjIyMjICYjOTY1NTsgdmluCgpWSU4KCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkluPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPnZpbiA8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPnF1ZXJ5PC90ZD4KICAgICAgICA8dGQ+VklOPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCiMjIyMjICYjOTY1NTsgY29kZQoK0J3QvtC80LXRgCDRgdCy0ZbQtNC+0YLRgdGC0LLQsCDQv9GA0L4g0YDQtdGU0YHRgtGA0LDRhtGW0Y4KCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkluPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmNvZGUgPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD5xdWVyeTwvdGQ+CiAgICAgICAgPHRkPtCd0L7QvNC10YAg0YHQstGW0LTQvtGC0YHRgtCy0LAg0L/RgNC+INGA0LXRlNGB0YLRgNCw0YbRltGOPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCgoKCgojIyMjIFJlc3BvbnNlcwoKCiMjIyMjIOKWtiAyMDAgLSBPSwoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgYXJyYXkob2JqZWN0KQogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UubnVtYmVyPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QoNC10ZTRgdGC0YDQsNGG0ZbQudC90LjQuSDQvdC+0LzQtdGAPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5jb2RlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QndC+0LzQtdGAINGB0LLRltC00L7RhtGC0LLQsCDQv9GA0L4g0YDQtdGU0YHRgtGA0LDRhtGW0Y4g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS52aW48L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPlZJTi3QutC+0LQ8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLmJyYW5kPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNCw0YDQutCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5tb2RlbDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JzQvtC00LXQu9GMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5jYXBhY2l0eTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgbnVtYmVyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7QsSfRlNC8INC00LLQuNCz0YPQvdCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5yYW5rX2NhdGVnb3J5PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtCw0YLQtdCz0L7RgNGW0Y8g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5udW1fc2VhdGluZzwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0ZbQu9GM0LrRltGB0YLRjCDRgdGC0L7Rj9GH0LjRhSDQvNGW0YHRhtGMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5udW1fc3RhbmRpbmc8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0YHQuNC00Y/Rh9C40YUg0LzRltGB0YbRjDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UuY29sb3I8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0L7Qu9GW0YA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLmRhdGU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCU0LDRgtCwINGA0LXRlNGB0YLRgNCw0YbRltGXPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5maXJzdF9yZWdfZGF0ZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JTQsNGC0LAg0L/QtdGA0YjQvtGXINGA0LXRlNGB0YLRgNCw0YbRltGXPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5mdWVsPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L8g0L/QsNC70YzQvdC+0LPQvjwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2Uua2luZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KLQuNC/PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5vd25fd2VpZ2h0PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBudW1iZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNCw0YHQsCDQsdC10Lcg0L3QsNCy0LDQvdGC0LDQttC10L3QvdGPPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS50b3RhbF93ZWlnaHQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIG51bWJlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCf0L7QstC90LAg0LzQsNGB0LA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLnllYXI8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QoNGW0Log0LLQuNC/0YPRgdC60YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uClsKICB7CiAgICAibnVtYmVyIjogItCQ0JA5MzU50KDQoSIsCiAgICAiY29kZSI6ICLQodCl0J00ODQxNTQiLAogICAgInZpbiI6ICI1WUpYQ0NFNDBHRjAxMDU0MyIsCiAgICAiYnJhbmQiOiAiVEVTTEEiLAogICAgIm1vZGVsIjogIk1PREVMIFgiLAogICAgImNhcGFjaXR5IjogbnVsbCwKICAgICJyYW5rX2NhdGVnb3J5IjogIkIiLAogICAgIm51bV9zZWF0aW5nIjogbnVsbCwKICAgICJudW1fc3RhbmRpbmciOiA3LAogICAgImNvbG9yIjogItCn0J7QoNCd0JjQmSIsCiAgICAiZGF0ZSI6ICIyMDE5LTA2LTA1IiwKICAgICJmaXJzdF9yZWdfZGF0ZSI6ICIyMDE2LTEwLTEzIiwKICAgICJmdWVsIjogItCV0JvQldCa0KLQoNCeIiwKICAgICJraW5kIjogItCb0JXQk9Ca0J7QktCY0Jkg0KPQndCG0JLQldCg0KHQkNCbLUIiLAogICAgIm93bl93ZWlnaHQiOiAyNDg1LAogICAgInRvdGFsX3dlaWdodCI6IDMwMjEsCiAgICAieWVhciI6IDIwMTYKICB9Cl0KYGBgCiMjIyMjIOKWtiA0MDAgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQt9Cw0L/QuNGCCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA0MDEgLSDQn9C+0YLRgNGW0LHQvdCwINCQ0LLRgtC+0YDQuNC30LDRhtGW0Y8KCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIOKWtiA0MDUgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQvNC10YLQvtC0CgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA1MDAgLSDQn9C+0LzQuNC70LrQsAoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiZXJyb3IiOiAic3RyaW5nIgp9CmBgYAoKIyMjIyBUYWdzCgo8ZGl2IGNsYXNzPSJ0YWdzIj4KICA8ZGl2IGNsYXNzPSJ0YWdzX190YWciPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CgojIyMgYEdFVGAgL3JlZ2lzdHJhdGlvbnMve2NvZGV9CjxhIGlkPSJvcC1nZXQtcmVnaXN0cmF0aW9ucy1jb2RlIiAvPgoKPiDQoNC10ZTRgdGC0YDQsNGG0ZbRjyDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YMg0LfQsCDQvdC+0LzQtdGA0L7QvCDRgdCy0ZbQtNC+0YLRgdGC0LLQsAoKCgojIyMjIFBhdGggcGFyYW1ldGVycwoKIyMjIyMgJiM5NjU1OyBjb2RlCgrQndC+0LzQtdGAINGB0LLRltC00L7RgtGB0YLQstCwINC/0YDQviDRgNC10ZTRgdGC0YDQsNGG0ZbRjgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+SW48L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+Y29kZSAgPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD5wYXRoPC90ZD4KICAgICAgICA8dGQ+0J3QvtC80LXRgCDRgdCy0ZbQtNC+0YLRgdGC0LLQsCDQv9GA0L4g0YDQtdGU0YHRgtGA0LDRhtGW0Y48L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKCgoKCgoKIyMjIyBSZXNwb25zZXMKCgojIyMjIyDilrYgMjAwIC0gT0sKCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIyBhcHBsaWNhdGlvbi9qc29uCgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+bnVtYmVyPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QoNC10ZTRgdGC0YDQsNGG0ZbQudC90LjQuSDQvdC+0LzQtdGAPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5jb2RlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QndC+0LzQtdGAINGB0LLRltC00L7RhtGC0LLQsCDQv9GA0L4g0YDQtdGU0YHRgtGA0LDRhtGW0Y4g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD52aW48L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPlZJTi3QutC+0LQ8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmJyYW5kPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNCw0YDQutCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5tb2RlbDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JzQvtC00LXQu9GMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5jYXBhY2l0eTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgbnVtYmVyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7QsSfRlNC8INC00LLQuNCz0YPQvdCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5yYW5rX2NhdGVnb3J5PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtCw0YLQtdCz0L7RgNGW0Y8g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5udW1fc2VhdGluZzwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0ZbQu9GM0LrRltGB0YLRjCDRgdGC0L7Rj9GH0LjRhSDQvNGW0YHRhtGMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5udW1fc3RhbmRpbmc8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0YHQuNC00Y/Rh9C40YUg0LzRltGB0YbRjDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+Y29sb3I8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0L7Qu9GW0YA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmRhdGU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCU0LDRgtCwINGA0LXRlNGB0YLRgNCw0YbRltGXPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5maXJzdF9yZWdfZGF0ZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JTQsNGC0LAg0L/QtdGA0YjQvtGXINGA0LXRlNGB0YLRgNCw0YbRltGXPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5mdWVsPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L8g0L/QsNC70YzQvdC+0LPQvjwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+a2luZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KLQuNC/PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5vd25fd2VpZ2h0PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBudW1iZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNCw0YHQsCDQsdC10Lcg0L3QsNCy0LDQvdGC0LDQttC10L3QvdGPPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD50b3RhbF93ZWlnaHQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIG51bWJlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCf0L7QstC90LAg0LzQsNGB0LA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnllYXI8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QoNGW0Log0LLQuNC/0YPRgdC60YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAibnVtYmVyIjogItCQ0JA5MzU50KDQoSIsCiAgImNvZGUiOiAi0KHQpdCdNDg0MTU0IiwKICAidmluIjogIjVZSlhDQ0U0MEdGMDEwNTQzIiwKICAiYnJhbmQiOiAiVEVTTEEiLAogICJtb2RlbCI6ICJNT0RFTCBYIiwKICAiY2FwYWNpdHkiOiBudWxsLAogICJyYW5rX2NhdGVnb3J5IjogIkIiLAogICJudW1fc2VhdGluZyI6IG51bGwsCiAgIm51bV9zdGFuZGluZyI6IDcsCiAgImNvbG9yIjogItCn0J7QoNCd0JjQmSIsCiAgImRhdGUiOiAiMjAxOS0wNi0wNSIsCiAgImZpcnN0X3JlZ19kYXRlIjogIjIwMTYtMTAtMTMiLAogICJmdWVsIjogItCV0JvQldCa0KLQoNCeIiwKICAia2luZCI6ICLQm9CV0JPQmtCe0JLQmNCZINCj0J3QhtCS0JXQoNCh0JDQmy1CIiwKICAib3duX3dlaWdodCI6IDI0ODUsCiAgInRvdGFsX3dlaWdodCI6IDMwMjEsCiAgInllYXIiOiAyMDE2Cn0KYGBgCiMjIyMjIOKWtiA0MDAgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQt9Cw0L/QuNGCCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA0MDEgLSDQn9C+0YLRgNGW0LHQvdCwINCQ0LLRgtC+0YDQuNC30LDRhtGW0Y8KCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIOKWtiA0MDUgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQvNC10YLQvtC0CgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA1MDAgLSDQn9C+0LzQuNC70LrQsAoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiZXJyb3IiOiAic3RyaW5nIgp9CmBgYAoKIyMjIyBUYWdzCgo8ZGl2IGNsYXNzPSJ0YWdzIj4KICA8ZGl2IGNsYXNzPSJ0YWdzX190YWciPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CgojIyMgYEdFVGAgL3dhbnRlZC92ZWhpY2xlcwo8YSBpZD0ib3AtZ2V0LXdhbnRlZC12ZWhpY2xlcyIgLz4KCj4g0IbQvdGE0L7RgNC80LDRhtGW0Y8g0L/RgNC+INCy0LjQutGA0LDQtNC10L3RliDRgtGA0LDQvdGB0L/QvtGA0YLQvdGWINC30LDRgdC+0LHQuAoKCgoKCiMjIyMgUXVlcnkgcGFyYW1ldGVycwoKIyMjIyMgJiM5NjU1OyBudW1iZXIKCtCg0LXRlNGB0YLRgNCw0YbRltC50L3QuNC5INC90L7QvNC10YAKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkluPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPm51bWJlciA8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPnF1ZXJ5PC90ZD4KICAgICAgICA8dGQ+0KDQtdGU0YHRgtGA0LDRhtGW0LnQvdC40Lkg0L3QvtC80LXRgDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyAmIzk2NTU7IHZpbgoKVklOLdC60L7QtAoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+SW48L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+dmluIDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+cXVlcnk8L3RkPgogICAgICAgIDx0ZD5WSU4t0LrQvtC0PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCiMjIyMjICYjOTY1NTsgcmV2aXNpb24KCtCd0L7QvNC10YAg0YDQtdCy0ZbQt9GW0ZcKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkluPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPnJldmlzaW9uIDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPnF1ZXJ5PC90ZD4KICAgICAgICA8dGQ+0J3QvtC80LXRgCDRgNC10LLRltC30ZbRlzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgoKCgoKIyMjIyBSZXNwb25zZXMKCgojIyMjIyDilrYgMjAwIC0gT0sKCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIyBhcHBsaWNhdGlvbi9qc29uCgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2U8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGFycmF5KG9iamVjdCkKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD48L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLmlkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qo9C90ZbQutCw0LvRjNC90LjQuSDQvdC+0LzQtdGAINCy0LjQutGA0LDQtNC10L3QvtCz0L4g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5icmFuZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0IbQvdGE0L7RgNC80LDRhtGW0Y8g0L/RgNC+INGC0YDQsNC90YHQv9C+0YDRgtC90LjQuSDQt9Cw0YHRltCxPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5jb2xvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrQvtC70ZbRgCDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLm51bWJlcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KDQtdGU0YHRgtGA0LDRhtGW0LnQvdC40Lkg0L3QvtC80LXRgDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UuYm9keV9udW1iZXI8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCd0L7QvNC10YAg0LrRg9C30L7QstCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5jaGFzc2lzX251bWJlcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J3QvtC80LXRgCDRiNCw0YHRljwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UuZW5naW5lX251bWJlcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J3QvtC8ZdGAINC00LLQuNCz0YPQvdCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5vdmQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCe0YDQs9Cw0L0sINGJ0L4g0LLQvdGW0YEg0LTQsNC90ZYg0YMg0YDQtdGU0YHRgtGAPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5raW5kPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L8g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5zdGF0dXM8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCh0YLQsNGC0YPRgSDRgNC+0LfRiNGD0LrRgyDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLnRoZWZ0X2RhdGU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCn0LDRgSDQstC40LrRgNCw0LTQtdC90L3RjyDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YMg0YMg0YTQvtGA0LzQsNGC0ZYgSVNPIDg2MDE8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLmluc2VydF9kYXRlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qp9Cw0YEg0LLQvdC10YHQtdC90L3RjyDRltC90YTQvtGA0LzQsNGG0ZbRlyDRgyDRgNC10LXRlNGB0YLRgCDRgyDRhNC+0YDQvNCw0YLRliBJU08gODYwMTwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KWwogIHsKICAgICJpZCI6ICIwMDE2MzE5NTE1NzU1NjEwMjg1OSIsCiAgICAiYnJhbmQiOiAiQ0hFVlJPTEVUIC0gRVhQUkVTUyIsCiAgICAiY29sb3IiOiAi0JfQldCb0JXQndCY0JkiLAogICAgIm51bWJlciI6ICJBQTQ2ODZFSCIsCiAgICAiYm9keV9udW1iZXIiOiAiMUdCU0hEQzQ0RDExMjY0NjgiLAogICAgImNoYXNzaXNfbnVtYmVyIjogItCG0LTQtdC90YLQuNGE0ZbQutCw0YbRltC50L3QuNC5INC90L7QvNC10YAg0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDIiwKICAgICJlbmdpbmVfbnVtYmVyIjogbnVsbCwKICAgICJvdmQiOiAi0JPQldCd0JXQoNCQ0JvQrNCd0JAg0J/QoNCe0JrQo9Cg0JDQotCj0KDQkCDQo9Ca0KDQkNCH0J3QmCIsCiAgICAia2luZCI6ICLQm9CV0JPQmtCe0JLQmNCZIiwKICAgICJzdGF0dXMiOiAic3RvbGVuIiwKICAgICJ0aGVmdF9kYXRlIjogIjIwMTYtMTEtMTRUMDA6MDA6MDBaIiwKICAgICJpbnNlcnRfZGF0ZSI6ICIyMDE2LTExLTE0VDE0OjE5OjM1WiIKICB9Cl0KYGBgCiMjIyMjIOKWtiA0MDAgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQt9Cw0L/QuNGCCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA0MDEgLSDQn9C+0YLRgNGW0LHQvdCwINCQ0LLRgtC+0YDQuNC30LDRhtGW0Y8KCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIOKWtiA0MDUgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQvNC10YLQvtC0CgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA1MDAgLSDQn9C+0LzQuNC70LrQsAoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiZXJyb3IiOiAic3RyaW5nIgp9CmBgYAoKIyMjIyBUYWdzCgo8ZGl2IGNsYXNzPSJ0YWdzIj4KICA8ZGl2IGNsYXNzPSJ0YWdzX190YWciPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CgojIyMgYEdFVGAgL3dhbnRlZC9yZXZpc2lvbnMKPGEgaWQ9Im9wLWdldC13YW50ZWQtcmV2aXNpb25zIiAvPgoKPiDQhtC90YTQvtGA0LzQsNGG0ZbRjyDQv9GA0L4g0L7QvdC+0LLQu9C10L3QvdGPINGA0LXRlNGB0YLRgNGDINCy0LjQutGA0LDQtNC10L3QuNGFINGC0YDQsNC90YHQv9C+0YDRgtC90LjRhSDQt9Cw0YHQvtCx0ZbQsgoKCgoKCiMjIyMgUXVlcnkgcGFyYW1ldGVycwoKIyMjIyMgJiM5NjU1OyBsaW1pdAoK0JrRltC70YzQutGW0YHRgtGMINC10LvQtdC80LXQvdGC0ZbQsiDRgyDQstGW0LTQv9C+0LLRltC00ZYKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkluPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmxpbWl0IDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPnF1ZXJ5PC90ZD4KICAgICAgICA8dGQ+0JrRltC70YzQutGW0YHRgtGMINC10LvQtdC80LXQvdGC0ZbQsiDRgyDQstGW0LTQv9C+0LLRltC00ZY8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKCgoKCiMjIyMgUmVzcG9uc2VzCgoKIyMjIyMg4pa2IDIwMCAtIE9LCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBhcnJheShvYmplY3QpCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5pZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KPQvdGW0LrQsNC70YzQvdC40Lkg0LrQvtC0INC+0L3QvtCy0LvQtdC90L3RjyDRgNC10ZTRgdGC0YDRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UubmFtZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J3QsNC30LLQsCDRgNC10YHRg9GA0YHRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UudXJsPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qn9C+0YHQuNC70LDQvdC90Y8g0L3QsCDQvtC90L7QstC70LXQvdC40Lkg0YDQtdGB0YPRgNGBPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5maWxlX2hhc2hfc3VtPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QpdC10Ygg0YHRg9C80LAg0LrQvtC90YLQtdC90YLRgyDRhNCw0LnQu9GDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5yZW1vdmVkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBudW1iZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0LLQuNC00LDQu9C10L3QuNGFINC30LDQv9C40YHRltCyINC3INGA0LXRlNGB0YLRgNGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5hZGRlZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgbnVtYmVyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrRltC70YzQutGW0YHRgtGMINC00L7QtNCw0L3QuNGFINC30LDQv9C40YHRltCyINC00L4g0YDQtdGU0YHRgtGA0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLmNyZWF0ZWRfYXQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCn0LDRgSDQvtC90L7QstC70LXQvdC90Y8g0LTQsNC90LjRhSDRgyDRhNC+0YDQvNCw0YLRliBJU08gODYwMTwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KWwogIHsKICAgICJpZCI6ICIyOTA5MjAxOF8yIiwKICAgICJuYW1lIjogIk1WU1dhbnRlZFRyYW5zcG9ydF8xLmpzb24iLAogICAgInVybCI6ICJodHRwczovL2RhdGEuZ292LnVhL2RhdGFzZXQvOWIwZTg3ZTAtZWFhMy00ZjE0LTk1NDctMDNkNjFiNzBhYmI2L3Jlc291cmNlLzA2ZTY1YjA2LTMxMjAtNDcxMy04MDAzLTc5MDVhODNmOTVmNS9yZXZpc2lvbi8yOTA5MjAxOF8yIiwKICAgICJmaWxlX2hhc2hfc3VtIjogImY0YWU5N2ZiNjJjN2M5YjkxZDZiOTUwYzc5ZGViNzE2IiwKICAgICJyZW1vdmVkIjogMjcwMTksCiAgICAiYWRkZWQiOiA0MzM2NSwKICAgICJjcmVhdGVkX2F0IjogIjIwMTgtMDktMjlUMjI6MzM6MzNaIgogIH0KXQpgYGAKIyMjIyMg4pa2IDQwMCAtINCf0L7QvNC40LvQutC+0LLQuNC5INC30LDQv9C40YIKCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIyBhcHBsaWNhdGlvbi9qc29uCgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCe0L/QuNGBINC/0L7QvNC40LvQutC4PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCiMjIyMjIEV4YW1wbGUgXyhnZW5lcmF0ZWQpXwoKYGBganNvbgp7CiAgImVycm9yIjogInN0cmluZyIKfQpgYGAKIyMjIyMg4pa2IDQwMSAtINCf0L7RgtGA0ZbQsdC90LAg0JDQstGC0L7RgNC40LfQsNGG0ZbRjwoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMg4pa2IDQwNSAtINCf0L7QvNC40LvQutC+0LLQuNC5INC80LXRgtC+0LQKCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIyBhcHBsaWNhdGlvbi9qc29uCgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCe0L/QuNGBINC/0L7QvNC40LvQutC4PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCiMjIyMjIEV4YW1wbGUgXyhnZW5lcmF0ZWQpXwoKYGBganNvbgp7CiAgImVycm9yIjogInN0cmluZyIKfQpgYGAKIyMjIyMg4pa2IDUwMCAtINCf0L7QvNC40LvQutCwCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCgojIyMjIFRhZ3MKCjxkaXYgY2xhc3M9InRhZ3MiPgogIDxkaXYgY2xhc3M9InRhZ3NfX3RhZyI+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KCiMjIyBgR0VUYCAvd2FudGVkL3JldmlzaW9ucy97aWR9CjxhIGlkPSJvcC1nZXQtd2FudGVkLXJldmlzaW9ucy1pZCIgLz4KCj4g0JLRltC00L7QvNC+0YHRgtGWINC/0YDQviDQvtC90L7QstC70LXQvdC90Y8g0YDQtdGU0YHRgtGA0YMg0LfQsCDRg9C90ZbQutCw0LvRjNC90LjQvCDQutC+0LTQvtC8CgoKCiMjIyMgUGF0aCBwYXJhbWV0ZXJzCgojIyMjIyAmIzk2NTU7IGlkCgrQo9C90ZbQutCw0LvRjNC90LjQuSDQutC+0LQg0L7QvdC+0LLQu9C10L3QvdGPINGA0LXRlNGB0YLRgNGDCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5JbjwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5pZCAgPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD5wYXRoPC90ZD4KICAgICAgICA8dGQ+0KPQvdGW0LrQsNC70YzQvdC40Lkg0LrQvtC0INC+0L3QvtCy0LvQtdC90L3RjyDRgNC10ZTRgdGC0YDRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgoKCgoKCgojIyMjIFJlc3BvbnNlcwoKCiMjIyMjIOKWtiAyMDAgLSBPSwoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5pZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KPQvdGW0LrQsNC70YzQvdC40Lkg0LrQvtC0INC+0L3QvtCy0LvQtdC90L3RjyDRgNC10ZTRgdGC0YDRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+bmFtZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J3QsNC30LLQsCDRgNC10YHRg9GA0YHRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+dXJsPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qn9C+0YHQuNC70LDQvdC90Y8g0L3QsCDQvtC90L7QstC70LXQvdC40Lkg0YDQtdGB0YPRgNGBPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5maWxlX2hhc2hfc3VtPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QpdC10Ygg0YHRg9C80LAg0LrQvtC90YLQtdC90YLRgyDRhNCw0LnQu9GDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5yZW1vdmVkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBudW1iZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0LLQuNC00LDQu9C10L3QuNGFINC30LDQv9C40YHRltCyINC3INGA0LXRlNGB0YLRgNGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5hZGRlZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgbnVtYmVyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrRltC70YzQutGW0YHRgtGMINC00L7QtNCw0L3QuNGFINC30LDQv9C40YHRltCyINC00L4g0YDQtdGU0YHRgtGA0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmNyZWF0ZWRfYXQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCn0LDRgSDQvtC90L7QstC70LXQvdC90Y8g0LTQsNC90LjRhSDRgyDRhNC+0YDQvNCw0YLRliBJU08gODYwMTwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJpZCI6ICIyOTA5MjAxOF8yIiwKICAibmFtZSI6ICJNVlNXYW50ZWRUcmFuc3BvcnRfMS5qc29uIiwKICAidXJsIjogImh0dHBzOi8vZGF0YS5nb3YudWEvZGF0YXNldC85YjBlODdlMC1lYWEzLTRmMTQtOTU0Ny0wM2Q2MWI3MGFiYjYvcmVzb3VyY2UvMDZlNjViMDYtMzEyMC00NzEzLTgwMDMtNzkwNWE4M2Y5NWY1L3JldmlzaW9uLzI5MDkyMDE4XzIiLAogICJmaWxlX2hhc2hfc3VtIjogImY0YWU5N2ZiNjJjN2M5YjkxZDZiOTUwYzc5ZGViNzE2IiwKICAicmVtb3ZlZCI6IDI3MDE5LAogICJhZGRlZCI6IDQzMzY1LAogICJjcmVhdGVkX2F0IjogIjIwMTgtMDktMjlUMjI6MzM6MzNaIgp9CmBgYAojIyMjIyDilrYgNDAwIC0g0J/QvtC80LjQu9C60L7QstC40Lkg0LfQsNC/0LjRggoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiZXJyb3IiOiAic3RyaW5nIgp9CmBgYAojIyMjIyDilrYgNDAxIC0g0J/QvtGC0YDRltCx0L3QsCDQkNCy0YLQvtGA0LjQt9Cw0YbRltGPCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyDilrYgNDA1IC0g0J/QvtC80LjQu9C60L7QstC40Lkg0LzQtdGC0L7QtAoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiZXJyb3IiOiAic3RyaW5nIgp9CmBgYAojIyMjIyDilrYgNTAwIC0g0J/QvtC80LjQu9C60LAKCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIyBhcHBsaWNhdGlvbi9qc29uCgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCe0L/QuNGBINC/0L7QvNC40LvQutC4PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKCiMjIyMjIEV4YW1wbGUgXyhnZW5lcmF0ZWQpXwoKYGBganNvbgp7CiAgImVycm9yIjogInN0cmluZyIKfQpgYGAKCiMjIyMgVGFncwoKPGRpdiBjbGFzcz0idGFncyI+CiAgPGRpdiBjbGFzcz0idGFnc19fdGFnIj48L2Rpdj4KPC9kaXY+CjwvZGl2PgoKIyMjIGBHRVRgIC93YW50ZWQvcmV2aXNpb25zL3N0YXRzCjxhIGlkPSJvcC1nZXQtd2FudGVkLXJldmlzaW9ucy1zdGF0cyIgLz4KCj4g0KHRgtCw0YLQuNGB0YLQuNC60LAg0L7QvdC+0LLQu9C10L3QvdGPINGA0LXRlNGB0YLRgNGDINC30LAg0L7RgdGC0LDQvdC90ZYgMTIg0LzRltGB0Y/RhtGW0LIKCgoKCgoKCgoKIyMjIyBSZXNwb25zZXMKCgojIyMjIyDilrYgMjAwIC0gT0sKCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIyBhcHBsaWNhdGlvbi9qc29uCgoKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2U8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGFycmF5KG9iamVjdCkKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD48L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLmFkZGVkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrRltC70YzQutGW0YHRgtGMINC00L7QtNCw0L3QuNGFINC30LDQv9C40YHRltCyINC30LAg0LzRltGB0Y/RhtGMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5SZXNwb25zZS5yZW1vdmVkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrRltC70YzQutGW0YHRgtGMINCy0LjQtNCw0LvQtdC90LjRhSDQt9Cw0L/QuNGB0ZbQsiDQt9CwINC80ZbRgdGP0YbRjDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+UmVzcG9uc2UubW9udGg8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNGW0YHRj9GG0Yw8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlJlc3BvbnNlLnllYXI8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QoNGW0Lo8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uClsKICB7CiAgICAiYWRkZWQiOiAyNDEsCiAgICAicmVtb3ZlZCI6IDE5NSwKICAgICJtb250aCI6IDIsCiAgICAieWVhciI6IDIwMjAKICB9Cl0KYGBgCiMjIyMjIOKWtiA0MDAgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQt9Cw0L/QuNGCCgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA0MDEgLSDQn9C+0YLRgNGW0LHQvdCwINCQ0LLRgtC+0YDQuNC30LDRhtGW0Y8KCiMjIyMjIyBIZWFkZXJzCl9ObyBoZWFkZXJzIHNwZWNpZmllZF8KCiMjIyMjIOKWtiA0MDUgLSDQn9C+0LzQuNC70LrQvtCy0LjQuSDQvNC10YLQvtC0CgojIyMjIyMgSGVhZGVycwpfTm8gaGVhZGVycyBzcGVjaWZpZWRfCgojIyMjIyMgYXBwbGljYXRpb24vanNvbgoKCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntC/0LjRgSDQv9C+0LzQuNC70LrQuDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCiMjIyMjIOKWtiA1MDAgLSDQn9C+0LzQuNC70LrQsAoKIyMjIyMjIEhlYWRlcnMKX05vIGhlYWRlcnMgc3BlY2lmaWVkXwoKIyMjIyMjIGFwcGxpY2F0aW9uL2pzb24KCgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiZXJyb3IiOiAic3RyaW5nIgp9CmBgYAoKIyMjIyBUYWdzCgo8ZGl2IGNsYXNzPSJ0YWdzIj4KICA8ZGl2IGNsYXNzPSJ0YWdzX190YWciPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CgojIyBTY2hlbWFzCgo8YSBpZD0iIiAvPgoKIyMjIyBFcnJvcgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7Qv9C40YEg0L/QvtC80LjQu9C60Lg8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CgojIyMjIyBFeGFtcGxlIF8oZ2VuZXJhdGVkKV8KCmBgYGpzb24KewogICJlcnJvciI6ICJzdHJpbmciCn0KYGBgCjxhIGlkPSIiIC8+CgojIyMjIE9wZXJhdGlvbgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5udW1iZXI8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCg0LXRlNGB0YLRgNCw0YbRltC50L3QuNC5INC90L7QvNC10YA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmJyYW5kPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNCw0YDQutCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5tb2RlbDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JzQvtC00LXQu9GMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD55ZWFyPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KDRltC6INCy0LjQv9GD0YHQutGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5kYXRlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QlNCw0YLQsCDQv9GA0L7QstC10LTQtdC90L3RjyDQvtC/0LXRgNCw0YbRltGXPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5yZWdpc3RyYXRpb248L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCS0LjQtCDRgNC10ZTRgdGC0YDQsNGG0ZbRlzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+cmVnaXN0cmF0aW9uX2NvZGU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtC+0LQg0LLQuNC00YMg0YDQtdGU0YHRgtGA0LDRhtGW0Zc8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmZ1ZWw8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCi0LjQvyDQv9Cw0LvRjNC90L7Qs9C+PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5jYXBhY2l0eTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgbnVtYmVyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J7QsSfRlNC8INC00LLQuNCz0YPQvdCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5jb2xvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrQvtC70ZbRgCDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmtpbmQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCi0LjQvyDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmJvZHk8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCi0LjQvyDQutGD0LfQvtCy0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnB1cnBvc2U8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCf0YDQuNC30L3QsNGH0LXQvdC90Y88L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPm93bl93ZWlnaHQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNCw0YHQsCDQsdC10Lcg0L3QsNCy0LDQvdGC0LDQttC10L3QvdGPPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD50b3RhbF93ZWlnaHQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qn9C+0LLQvdCwINC80LDRgdCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5yZWdfYWRkcl9rb2F0dXU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCQ0LTRgNC10YHQsCDRgNC10ZTRgdGC0YDQsNGGadGXINGDINGE0L7RgNC80LDRgtGWINCa0J7QkNCi0KPQozwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+ZGVwX2NvZGU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtC+0LQg0LTQtdC/0LDRgNGC0LDQvNC10L3RgtGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5kZXA8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCd0LDQt9Cy0LAg0LTQtdC/0LDRgNGC0LDQvNC10L3RgtGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5wZXJzb248L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCd0LDQt9Cy0LAg0LTQtdC/0LDRgNGC0LDQvNC10L3RgtGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAibnVtYmVyIjogItCQ0JA5MzU50KDQoSIsCiAgImJyYW5kIjogIlRFU0xBIiwKICAibW9kZWwiOiAiTU9ERUwgWCIsCiAgInllYXIiOiAyMDE2LAogICJkYXRlIjogIjIwMTYtMTAtMTMiLAogICJyZWdpc3RyYXRpb24iOiAi0KDQldCE0KHQotCg0JDQpknQryDQotCXINCf0KDQmNCS0JXQl9CV0J3QntCT0J4g0Jct0JfQkCDQmtCe0KDQlNCe0J3QoyDQn9CeINCS0JzQlCIsCiAgInJlZ2lzdHJhdGlvbl9jb2RlIjogNzAsCiAgImZ1ZWwiOiAi0JXQm9CV0JrQotCg0J4iLAogICJjYXBhY2l0eSI6IG51bGwsCiAgImNvbG9yIjogItCn0J7QoNCd0JjQmSIsCiAgImtpbmQiOiAi0JvQldCT0JrQntCS0JjQmSIsCiAgImJvZHkiOiAi0KPQndCG0JLQldCg0KHQkNCbLUIiLAogICJwdXJwb3NlIjogItCX0JDQk9CQ0JvQrNCd0JjQmSIsCiAgIm93bl93ZWlnaHQiOiAyNDg1LAogICJ0b3RhbF93ZWlnaHQiOiAzMDIxLAogICJyZWdfYWRkcl9rb2F0dXUiOiAiODAzNjYwMDAwMCIsCiAgImRlcF9jb2RlIjogODA0NCwKICAiZGVwIjogItCm0LXQvdGC0YAgODA0NCIsCiAgInBlcnNvbiI6ICLQrtGA0LjQtNC40YfQvdCwINC+0YHQvtCx0LAiCn0KYGBgCjxhIGlkPSIiIC8+CgojIyMjIFJlZ2lzdHJhdGlvbgoKPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU8L3RoPgogICAgICA8dGg+VHlwZTwvdGg+CiAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgIDx0aD5BY2NlcHRlZCB2YWx1ZXM8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgICAgPHRyPgogICAgICAgIDx0ZD5udW1iZXI8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCg0LXRlNGB0YLRgNCw0YbRltC50L3QuNC5INC90L7QvNC10YA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmNvZGU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCd0L7QvNC10YAg0YHQstGW0LTQvtGG0YLQstCwINC/0YDQviDRgNC10ZTRgdGC0YDQsNGG0ZbRjiDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnZpbjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+VklOLdC60L7QtDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+YnJhbmQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCc0LDRgNC60LA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPm1vZGVsPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QnNC+0LTQtdC70Yw8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmNhcGFjaXR5PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBudW1iZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QntCxJ9GU0Lwg0LTQstC40LPRg9C90LA8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnJhbmtfY2F0ZWdvcnk8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0LDRgtC10LPQvtGA0ZbRjyDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPm51bV9zZWF0aW5nPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBpbnRlZ2VyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrRltC70YzQutGW0YHRgtGMINGB0YLQvtGP0YfQuNGFINC80ZbRgdGG0Yw8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPm51bV9zdGFuZGluZzwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0ZbQu9GM0LrRltGB0YLRjCDRgdC40LTRj9GH0LjRhSDQvNGW0YHRhtGMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5jb2xvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrQvtC70ZbRgDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+ZGF0ZTwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JTQsNGC0LAg0YDQtdGU0YHRgtGA0LDRhtGW0Zc8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmZpcnN0X3JlZ19kYXRlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QlNCw0YLQsCDQv9C10YDRiNC+0Zcg0YDQtdGU0YHRgtGA0LDRhtGW0Zc8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmZ1ZWw8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCi0LjQvyDQv9Cw0LvRjNC90L7Qs9C+PC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5raW5kPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L88L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPm93bl93ZWlnaHQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIG51bWJlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCc0LDRgdCwINCx0LXQtyDQvdCw0LLQsNC90YLQsNC20LXQvdC90Y88L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnRvdGFsX3dlaWdodDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgbnVtYmVyCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J/QvtCy0L3QsCDQvNCw0YHQsDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+eWVhcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCg0ZbQuiDQstC40L/Rg9GB0LrRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCiMjIyMjIEV4YW1wbGUgXyhnZW5lcmF0ZWQpXwoKYGBganNvbgp7CiAgIm51bWJlciI6ICLQkNCQOTM1OdCg0KEiLAogICJjb2RlIjogItCh0KXQnTQ4NDE1NCIsCiAgInZpbiI6ICI1WUpYQ0NFNDBHRjAxMDU0MyIsCiAgImJyYW5kIjogIlRFU0xBIiwKICAibW9kZWwiOiAiTU9ERUwgWCIsCiAgImNhcGFjaXR5IjogbnVsbCwKICAicmFua19jYXRlZ29yeSI6ICJCIiwKICAibnVtX3NlYXRpbmciOiBudWxsLAogICJudW1fc3RhbmRpbmciOiA3LAogICJjb2xvciI6ICLQp9Ce0KDQndCY0JkiLAogICJkYXRlIjogIjIwMTktMDYtMDUiLAogICJmaXJzdF9yZWdfZGF0ZSI6ICIyMDE2LTEwLTEzIiwKICAiZnVlbCI6ICLQldCb0JXQmtCi0KDQniIsCiAgImtpbmQiOiAi0JvQldCT0JrQntCS0JjQmSDQo9Cd0IbQktCV0KDQodCQ0JstQiIsCiAgIm93bl93ZWlnaHQiOiAyNDg1LAogICJ0b3RhbF93ZWlnaHQiOiAzMDIxLAogICJ5ZWFyIjogMjAxNgp9CmBgYAo8YSBpZD0iIiAvPgoKIyMjIyBXYW50ZWRWZWhpY2xlCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmlkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qo9C90ZbQutCw0LvRjNC90LjQuSDQvdC+0LzQtdGAINCy0LjQutGA0LDQtNC10L3QvtCz0L4g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5icmFuZDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0IbQvdGE0L7RgNC80LDRhtGW0Y8g0L/RgNC+INGC0YDQsNC90YHQv9C+0YDRgtC90LjQuSDQt9Cw0YHRltCxPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5jb2xvcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0JrQvtC70ZbRgCDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPm51bWJlcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KDQtdGU0YHRgtGA0LDRhtGW0LnQvdC40Lkg0L3QvtC80LXRgDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+Ym9keV9udW1iZXI8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCd0L7QvNC10YAg0LrRg9C30L7QstCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5jaGFzc2lzX251bWJlcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J3QvtC80LXRgCDRiNCw0YHRljwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+ZW5naW5lX251bWJlcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0J3QvtC8ZdGAINC00LLQuNCz0YPQvdCwPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5vdmQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCe0YDQs9Cw0L0sINGJ0L4g0LLQvdGW0YEg0LTQsNC90ZYg0YMg0YDQtdGU0YHRgtGAPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5raW5kPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QotC40L8g0YLRgNCw0L3RgdC/0L7RgNGC0L3QvtCz0L4g0LfQsNGB0L7QsdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5zdGF0dXM8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCh0YLQsNGC0YPRgSDRgNC+0LfRiNGD0LrRgyDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnRoZWZ0X2RhdGU8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCn0LDRgSDQstC40LrRgNCw0LTQtdC90L3RjyDRgtGA0LDQvdGB0L/QvtGA0YLQvdC+0LPQviDQt9Cw0YHQvtCx0YMg0YMg0YTQvtGA0LzQsNGC0ZYgSVNPIDg2MDE8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmluc2VydF9kYXRlPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qp9Cw0YEg0LLQvdC10YHQtdC90L3RjyDRltC90YTQvtGA0LzQsNGG0ZbRlyDRgyDRgNC10LXRlNGB0YLRgCDRgyDRhNC+0YDQvNCw0YLRliBJU08gODYwMTwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCiMjIyMjIEV4YW1wbGUgXyhnZW5lcmF0ZWQpXwoKYGBganNvbgp7CiAgImlkIjogIjAwMTYzMTk1MTU3NTU2MTAyODU5IiwKICAiYnJhbmQiOiAiQ0hFVlJPTEVUIC0gRVhQUkVTUyIsCiAgImNvbG9yIjogItCX0JXQm9CV0J3QmNCZIiwKICAibnVtYmVyIjogIkFBNDY4NkVIIiwKICAiYm9keV9udW1iZXIiOiAiMUdCU0hEQzQ0RDExMjY0NjgiLAogICJjaGFzc2lzX251bWJlciI6ICLQhtC00LXQvdGC0LjRhNGW0LrQsNGG0ZbQudC90LjQuSDQvdC+0LzQtdGAINGC0YDQsNC90YHQv9C+0YDRgtC90L7Qs9C+INC30LDRgdC+0LHRgyIsCiAgImVuZ2luZV9udW1iZXIiOiBudWxsLAogICJvdmQiOiAi0JPQldCd0JXQoNCQ0JvQrNCd0JAg0J/QoNCe0JrQo9Cg0JDQotCj0KDQkCDQo9Ca0KDQkNCH0J3QmCIsCiAgImtpbmQiOiAi0JvQldCT0JrQntCS0JjQmSIsCiAgInN0YXR1cyI6ICJzdG9sZW4iLAogICJ0aGVmdF9kYXRlIjogIjIwMTYtMTEtMTRUMDA6MDA6MDBaIiwKICAiaW5zZXJ0X2RhdGUiOiAiMjAxNi0xMS0xNFQxNDoxOTozNVoiCn0KYGBgCjxhIGlkPSIiIC8+CgojIyMjIFdhbnRlZFJldmlzaW9uCgo8dGFibGU+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+TmFtZTwvdGg+CiAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgPHRoPkFjY2VwdGVkIHZhbHVlczwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPmlkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7Qo9C90ZbQutCw0LvRjNC90LjQuSDQutC+0LQg0L7QvdC+0LLQu9C10L3QvdGPINGA0LXRlNGB0YLRgNGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5uYW1lPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBzdHJpbmcKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QndCw0LfQstCwINGA0LXRgdGD0YDRgdGDPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD51cmw8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCf0L7RgdC40LvQsNC90L3RjyDQvdCwINC+0L3QvtCy0LvQtdC90LjQuSDRgNC10YHRg9GA0YE8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmZpbGVfaGFzaF9zdW08L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIHN0cmluZwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCl0LXRiCDRgdGD0LzQsCDQutC+0L3RgtC10L3RgtGDINGE0LDQudC70YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnJlbW92ZWQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIG51bWJlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCa0ZbQu9GM0LrRltGB0YLRjCDQstC40LTQsNC70LXQvdC40YUg0LfQsNC/0LjRgdGW0LIg0Lcg0YDQtdGU0YHRgtGA0YM8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPmFkZGVkPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICBudW1iZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0LTQvtC00LDQvdC40YUg0LfQsNC/0LjRgdGW0LIg0LTQviDRgNC10ZTRgdGC0YDRgzwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+Y3JlYXRlZF9hdDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgc3RyaW5nCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+0KfQsNGBINC+0L3QvtCy0LvQtdC90L3RjyDQtNCw0L3QuNGFINGDINGE0L7RgNC80LDRgtGWIElTTyA4NjAxPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKIyMjIyMgRXhhbXBsZSBfKGdlbmVyYXRlZClfCgpgYGBqc29uCnsKICAiaWQiOiAiMjkwOTIwMThfMiIsCiAgIm5hbWUiOiAiTVZTV2FudGVkVHJhbnNwb3J0XzEuanNvbiIsCiAgInVybCI6ICJodHRwczovL2RhdGEuZ292LnVhL2RhdGFzZXQvOWIwZTg3ZTAtZWFhMy00ZjE0LTk1NDctMDNkNjFiNzBhYmI2L3Jlc291cmNlLzA2ZTY1YjA2LTMxMjAtNDcxMy04MDAzLTc5MDVhODNmOTVmNS9yZXZpc2lvbi8yOTA5MjAxOF8yIiwKICAiZmlsZV9oYXNoX3N1bSI6ICJmNGFlOTdmYjYyYzdjOWI5MWQ2Yjk1MGM3OWRlYjcxNiIsCiAgInJlbW92ZWQiOiAyNzAxOSwKICAiYWRkZWQiOiA0MzM2NSwKICAiY3JlYXRlZF9hdCI6ICIyMDE4LTA5LTI5VDIyOjMzOjMzWiIKfQpgYGAKPGEgaWQ9IiIgLz4KCiMjIyMgV2FudGVkUmV2aXNpb25TdGF0TW9udGgKCjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgPHRoPlR5cGU8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICA8dGg+QWNjZXB0ZWQgdmFsdWVzPC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+YWRkZWQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0LTQvtC00LDQvdC40YUg0LfQsNC/0LjRgdGW0LIg0LfQsCDQvNGW0YHRj9GG0Yw8L3RkPgogICAgICAgIDx0ZD48ZW0+QW55PC9lbT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPnJlbW92ZWQ8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIGludGVnZXIKICAgICAgICA8L3RkPgogICAgICAgIDx0ZD7QmtGW0LvRjNC60ZbRgdGC0Ywg0LLQuNC00LDQu9C10L3QuNGFINC30LDQv9C40YHRltCyINC30LAg0LzRltGB0Y/RhtGMPC90ZD4KICAgICAgICA8dGQ+PGVtPkFueTwvZW0+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5tb250aDwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCc0ZbRgdGP0YbRjDwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+eWVhcjwvdGQ+CiAgICAgICAgPHRkPgogICAgICAgICAgaW50ZWdlcgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPtCg0ZbQujwvdGQ+CiAgICAgICAgPHRkPjxlbT5Bbnk8L2VtPjwvdGQ+CiAgICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCiMjIyMjIEV4YW1wbGUgXyhnZW5lcmF0ZWQpXwoKYGBganNvbgp7CiAgImFkZGVkIjogMjQxLAogICJyZW1vdmVkIjogMTk1LAogICJtb250aCI6IDIsCiAgInllYXIiOiAyMDIwCn0KYGBgCg== readmeEtag: '"31f14fb6936244abf7c067c4c62e2fd19a617689"' readmeLastModified: Sat, 31 Dec 2022 17:16:16 GMT repositoryId: 232517461 description: ':memo: Documentation for the OpenCars API ' created: '2020-01-08T08:39:27Z' updated: '2022-12-09T11:36:26Z' language: HTML archived: false stars: 1 watchers: 1 forks: 0 owner: opencars logo: https://avatars.githubusercontent.com/u/48658620?v=4 repoEtag: '"d9c53e312b5412882ef4bc0e7cd4f9ca6730e351ba0e92a84cf3e8ee092d351f"' repoLastModified: Fri, 09 Dec 2022 11:36:26 GMT foundInMaster: true category: Learning id: af4731daa82dd0f855d601ad5531103d - source: openapi3 tags repository: https://github.com/codecentric/reedelk-openapi v3: true repositoryMetadata: base64Readme: >- IyBSZWVkZWxrIE9wZW5BUEkgdjMgc2VyaWFsaXplciAvIGRlc2VyaWFsaXplcgoKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1ibHVlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVkZWxrL3JlZWRlbGstcnVudGltZS9ibG9iL21hc3Rlci9MSUNFTlNFKQpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvZm9sbG93L3JlZWRlbGsuc3ZnP3N0eWxlPXNvY2lhbCZsYWJlbD1Gb2xsb3cpXShodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC9mb2xsb3c/c2NyZWVuX25hbWU9cmVlZGVsaykKClRoaXMgcHJvamVjdCByZWZlcnMgdG8gdGhlIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSBwcm9qZWN0IGZyb20gdGhlIFtPcGVuQVBJIGluaXRpYXRpdmVdKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pLgoKIyMgT3ZlcnZpZXcKVGhlIFJlZWRlbGsgT3BlbkFQSSB2My54IHNlcmlhbGl6ZXIvZGVzZXJpYWxpemVyIGxpYnJhcnkgaXMgYSBsaWdodHdlaWdodCBsaWJyYXJ5IHRvIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBPcGVuQVBJIAp2My54IG1vZGVsIHRvL2Zyb20gSlNPTiBhbmQgdG8vZnJvbSBZQU1MLiAKClRoZSBsaWJyYXJ5IHVzZXMgb25seSBbSlNPTi1qYXZhIChvcmcuanNvbildKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGxlYXJ5L0pTT04tamF2YSkgYW5kIApbU25ha2VZQU1MXShodHRwczovL2dpdGh1Yi5jb20vYXNvbW92L3NuYWtleWFtbCkgYXMgZGVwZW5kZW5jaWVzIG1ha2luZyBpdCB0aGUgcGVyZmVjdCBjaG9pY2UgaWYgeW91IGFyZSBqdXN0IApsb29raW5nIGZvciBhIHZlcnkgbGlnaHR3ZWlnaHQgc29sdXRpb24gdG8gc2VyaWFsaXplL2Rlc2VyaWFsaXplIE9wZW5BUEkgdjMueCBkZWZpbml0aW9ucy4KCiAKIyMgRmVhdHVyZXMKCi0gU2VyaWFsaXplIE9wZW5BUEkgdjMueCBtb2RlbCB0byBKU09OCi0gU2VyaWFsaXplIE9wZW5BUEkgdjMueCBtb2RlbCB0byBZQU1MCi0gRGVzZXJpYWxpemUgT3BlbkFQSSB2My54IG1vZGVsIGZyb20gSlNPTgotIERlc2VyaWFsaXplIE9wZW5BUEkgdjMueCBtb2RlbCBmcm9tIFlBTUwKCiMjIE1hdmVuCkFkZCB0aGUgUmVlZGVsayBSZXBvc2l0b3J5IHRvIHlvdXIgcG9tLnhtbDoKCmBgYHhtbAo8cmVwb3NpdG9yaWVzPgogICAgPHJlcG9zaXRvcnk+CiAgICAgICAgPGlkPnJlZWRlbGstcmVwb3NpdG9yeTwvaWQ+CiAgICAgICAgPG5hbWU+UmVlZGVsayBSZXBvc2l0b3J5PC9uYW1lPgogICAgICAgIDx1cmw+aHR0cDovL3JlcG9zaXRvcnkucmVlZGVsay5jb20vcmVsZWFzZS88L3VybD4KICAgIDwvcmVwb3NpdG9yeT4KPC9yZXBvc2l0b3JpZXM+CmBgYAoKQWRkIHRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jeSB0byB5b3VyIHBvbS54bWwgZmlsZToKYGBgeG1sCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+Y29tLnJlZWRlbGs8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5yZWVkZWxrLW9wZW5hcGk8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj5YLlkuWjwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKCiMjIFVzYWdlCiMjIyBTZXJpYWxpemUKIyMjIyBUbyBKU09OIG9yIFlBTUw6CmBgYGphdmEKSW5mb09iamVjdCBpbmZvTW9kZWwgPSBuZXcgSW5mb09iamVjdCgpOwppbmZvTW9kZWwuc2V0RGVzY3JpcHRpb24oIlRoaXMgaXMgYSBzYW1wbGUgQVBJLiIpOwppbmZvTW9kZWwuc2V0VmVyc2lvbigiMS4wLjIiKTsKCk9wZW5BcGlPYmplY3Qgb3BlbkFwaU1vZGVsID0gbmV3IE9wZW5BcGlPYmplY3QoKTsKb3BlbkFwaU1vZGVsLnNldEluZm8oaW5mbyk7CgovLyB0byBKU09OIHN0cmluZwpTdHJpbmcgb3BlbkFwaUFzSnNvbiA9IE9wZW5BcGkudG9Kc29uKG9wZW5BcGlNb2RlbCk7CgovLyB0byBZQU1MIHN0cmluZwpTdHJpbmcgb3BlbkFwaUFzWWFtbCA9IE9wZW5BcGkudG9ZYW1sKG9wZW5BcGlNb2RlbCk7CmBgYAoKIyMjIERlc2VyaWFsaXplCiMjIyMgRnJvbSBKU09OIG9yIFlBTUw6CmBgYGphdmEKLy8gZnJvbSBKU09OIHN0cmluZwpTdHJpbmcgb3BlbkFwaUFzSnNvbiA9ICJ7Im9wZW5hcGkiOiAiMy4wLjMiLCJpbmZvIjogeyJ0aXRsZSI6ICJBUEkiLCJ2ZXJzaW9uIjogInYxIiB9fSI7Ck9wZW5BcGlPYmplY3Qgb3BlbkFwaU1vZGVsID0gT3BlbkFwaS5mcm9tKG9wZW5BcGlBc0pzb24pOwpJbmZvT2JqZWN0IGluZm9Nb2RlbCA9IGFjdHVhbC5nZXRJbmZvKCk7Ci4uLgoKLy8gZnJvbSBZQU1MIHN0cmluZwpTdHJpbmcgb3BlbkFwaUFzWWFtbCA9ICJvcGVuYXBpOiAzLjAuMAogICAgICAgICAgICAgICAgICAgICAgICBpbmZvOgogICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb246IDEuMC4yCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFBldHN0b3JlIEFQSSI7Ck9wZW5BcGlPYmplY3Qgb3BlbkFwaU1vZGVsID0gT3BlbkFwaS5mcm9tKG9wZW5BcGlBc1lhbWwpOwpJbmZvT2JqZWN0IGluZm9Nb2RlbCA9IGFjdHVhbC5nZXRJbmZvKCk7Ci4uLgpgYGAKCiMjIENvbnRyaWJ1dGUKLSBJZiB5b3UgZmluZCBhIGJ1ZyBpbiBSZWVkZWxrIE9wZW5BUEksIHBsZWFzZSBbZmlsZSBhIGJ1ZyByZXBvcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVkZWxrL3JlZWRlbGstb3BlbmFwaS9pc3N1ZXMpLgotIElmIHlvdSB3YW50IHRvIGRpc2N1c3MgUmVlZGVsayBPcGVuQVBJLCBzdWdnZXN0IG5ldyBmZWF0dXJlcywgeW91IGhhdmUgaXNzdWVzIGdldHRpbmcgc3RhcnRlZCB3aXRoIHRoZSBsaWJyYXJ5IG9yIGp1c3Qgc2F5ICdIaScsIGxldCB1cyBrbm93IGluIHRoZSBbUmVlZGVsayBTbGFjayBEZXZlbG9wZXJzIENvbW11bml0eV0oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L3JlZWRlbGsvc2hhcmVkX2ludml0ZS96dC1mejN3eDU2Zi1YRHlsWHBxWEVSb29LZU90cmhkWnVnKSBbIVtKb2luIFJlZWRlbGsgU2xhY2sgRGV2ZWxvcGVycyBDb21tdW5pdHldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLWJsdWUpXShodHRwczovL2pvaW4uc2xhY2suY29tL3QvcmVlZGVsay9zaGFyZWRfaW52aXRlL3p0LWZ6M3d4NTZmLVhEeWxYcHFYRVJvb0tlT3RyaGRadWcpLgo= readmeEtag: '"cadc7d835b79219df54f865956f2a1b354c8589b"' readmeLastModified: Wed, 21 Apr 2021 22:17:37 GMT repositoryId: 283149249 description: OpenAPI v3 JSON/YAML serializer/deserializer created: '2020-07-28T08:25:55Z' updated: '2021-04-21T22:17:45Z' language: Java archived: false stars: 1 watchers: 2 forks: 2 owner: codecentric logo: https://avatars.githubusercontent.com/u/1009716?v=4 license: Apache-2.0 repoEtag: '"1c26852d5503df95632c44e8037cf8d899e02c5a7533f79a0c121d0034e29f39"' repoLastModified: Wed, 21 Apr 2021 22:17:45 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 92684132322c194c03d78e0d6adfae5c - source: openapi3 tags repository: https://github.com/thestarivore/ramen_website v3: true id: c87aea0345c6f845a324d50697731cf9 repositoryMetadata: base64Readme: >- IyByYW1lbl93ZWJzaXRlClJhbWVuIEFzc29jaWF0aW9uIFdlYnNpdGUgLSBIeXBlcm1lZGlhIGNvdXJzZQo= readmeEtag: '"7d63b0fe870c62fc871d03a58bdd362d74ba2de9"' readmeLastModified: Mon, 12 Oct 2020 10:35:49 GMT repositoryId: 265383330 description: Ramen Association Website - Hypermedia course created: '2020-05-19T22:31:39Z' updated: '2023-08-24T21:57:54Z' language: HTML archived: false stars: 1 watchers: 2 forks: 0 owner: thestarivore logo: https://avatars.githubusercontent.com/u/22894195?v=4 repoEtag: '"8311759aadfeca754774eec19cce12df7a1408e1fa5048e0d8e980b23a8f532d"' repoLastModified: Thu, 24 Aug 2023 21:57:54 GMT category: Server foundInMaster: true - source: openapi3 tags repository: https://github.com/halilozkan/eurovision-song-contest v3: true repositoryMetadata: base64Readme: >- PSBFdXJvdmlzaW9uLXNvbmctY29udGVzdAo6aWNvbnM6IGZvbnQKCmltYWdlOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdmVydC54LTMuOS4xLXB1cnBsZS5zdmdbbGluaz0iaHR0cHM6Ly92ZXJ0eC5pbyJdCgpUaGlzIGV4ZXJjaXNlIGFwcGxpY2F0aW9uIGltcGxlbWVudHMgYSBzbWFsbCBzeXN0ZW0gdG8gY291bnQgdGhlIHJlc3VsdHMgb2YgdGhlIEV1cm92aXNpb24gU29uZyBDb250ZXN0LgoKKiBBbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZGVzaWduZWQgdG8gcHJvdmlkZSBBcGkgRGVzaWduIEZpcnN0IGFwcHJvYWNoLgoqIFZlcnQueCBXZWIgQVBJIENvbnRyYWN0IHVzZWQgdG8gZXhwb3NlIGVuZHBvaW50IHBhdGhzIGFuZCB2YWxpZGF0ZSB0aGVtIHdpdGggT3BlbkFQSSBzcGVjLgoqIEFuIEhUVFAgU2VydmVyIGV4cG9zZSBhbiBlbmRwb2ludCB3aXRoIHJlbGV2YW50IHBhdGhzIGFsbGlnbmVkIHdpdGggT3BlbkFQSSBzcGVjIGFuZCBjb250cm9sbGVkIGJ5IFdlYiBBUEkgQ29udHJhY3QuCiogRW5kcG9pbnQgcGF0aHMgY29ubmVjdGVkIHRvIEhUVFAgU2VydmVyIHJvdXRlciBidWlsdCB3aXRoIE9wZW5BUEkgZGlyZWN0bHkgdG8gRXZlbnRCdXMgc2VydmljZXMuCiogQW4gRXZlbnRCdXMgYWxsb3dlZCBtYW55IHBhcnRzIG9mIGFwcGxpY2F0aW9uIHRvIGNvbW11bmljYXRlIGVhY2ggb3RoZXIuCiogUmVhY3RpdmUgcGF0dGVybiBpbXBsZW1lbnRlZCB0byBkZXZlbG9wIHRyYW5zYWN0aW9uIHNlcnZpY2VzLCBtYWlubHkgUnhKYXZhMiwgYXN5Y2hyb25vdXMgYW5kIEphdmEgc3RyZWFtcy4KKiBUd28gdmVydGljbGVzIGRldmVsb3BlZDogYSB2b3RlIHRyYW5zYWN0aW9uIHNlcnZpY2VzIHZlcnRpY2xlKEphdmEpIGFuZCBhIG1ldHJpY3MgcmVwb3J0ZXIoS290bGluKQoqIFRoYW5rcyB0byBWZXJ0LnggcG9seWdsb3Qgc3VwcG9ydCBKYXZhIGFuZCBLb3RsaW4gdXNlZCB3aXRoIHZlcnRpY2xlIGRldmVsb3BtZW50cwoqIEEgbWV0cmljIHJlcG9ydGVyIGRlc2lnbmVkIHRvIHB1c2ggbWV0cmljcyB0byB0aGUgZXZlbnRidXMgdG9waWMKKiBBIGRhc2hib2FyZCBkZXNpZ25lZCB0byBjaGVjayB2b3RlIHJlc3VsdCB0aHJvdWdoIGEgd2Vic2Nva2V0IGFuZCByZWFkIGxhdGVzdCB2b3RlIHJlc3VsdCBtZXRyaWNzIGZyb20gdGhlIGV2ZW50YnVzIHRvcGljCiogUmVhY3RpdmUgYW5kIG5vbiBibG9ja2luZyBQb3N0Z3JlU1FMIGNsaWVudCB1c2VkIHRvIGhhbmRsZSBkYXRhYmFzZSBjb25uZWN0aW9ucywgcXVlcmllcyBhbmQgdHJhbnNhY3Rpb25zLgoqIEFwcGxpY2F0aW9uIGRvY2tlcml6ZWQgZnJvbSBhZG9wdG9wZW5qZGsvb3Blbmpkazgtb3Blbmo5OmFscGluZS1qcmUgaW1hZ2UuCiogQSBQb3N0Z3JlU1FMIGRhdGFiYXNlICBwcmVmZmVyZWQgdG8gc3RvcmUgYXBwbGljYXRpb24gZGF0YSB0aHJvdWdoIHJlYWN0aXZlIGRhdGFiYXNlIGRyaXZlci4gRHVyaW5nIGluc3RhbGxhdGlvbiBhbGwgcmVxdWlyZWQgZGF0YWJhc2UsIHNjaGVtYSwgdGFibGUgYW5kIGluZGV4ZXMgYXJlIGNyZWF0ZWQuCiogQXBwbGljYXRpb24gYW5kIGRhdGFiYXNlIGRvY2tlciBjb250YWluZXJzIGNvbXBvc2VkIGFuZCBydW4gd2l0aCBEb2NrZXIgQ29tcG9zZS4KCj09IFByZXJlcXVpc2l0ZXMKCiogSkRLIDgrCiogRG9ja2VyIEVuZ2luZQoqIERvY2tlciBDb21wb3NlCgo9PSBCdWlsZGluZwoKVG8gcGFja2FnZSB5b3VyIGFwcGxpY2F0aW9uOgpgYGAKLi9ncmFkbGV3IGNsZWFuIGJ1aWxkIC14IHRlc3QKYGBgCgo9PSBSdW4KClRvIGNvbXBvc2UgYW5kIHJ1biB5b3VyIGFwcGxpY2F0aW9uOgpgYGAKZG9ja2VyLWNvbXBvc2UgdXAgLS1idWlsZApgYGAKCk5PVEU6IERvY2tlciBjb21wb3NlcyBhbmQgcnVucyBhbiBhcHBsaWNhdGlvbiBjb250YWluZXIgYW5kIGEgZGF0YWJhc2UgY29udGFpbmVyCgpUbyBzdG9wIGFwcGxpY2F0aW9uIGFuZCBkYiBjb250YWluZXJzOgpgYGAKZG9ja2VyLWNvbXBvc2UgZG93biAtdgpgYGAKCj09IEdldHRpbmcgU3RhcnRlZApQb3N0IGEgdm90ZSB3aXRoIGBjdXJsYDoKCmBgYGJhc2gKY3VybCAtWCBQT1NUICJodHRwOi8vbG9jYWxob3N0Ojg4ODgvdm90ZXMvMjAyMCIgLUggImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgLWQgIntcImNvdW50cnlGcm9tXCI6XCJOZXRoZXJsYW5kc1wiLFwidm90ZWRGb3JcIjpcIkJlbGdpdW1cIn0iCmBgYAoKR2V0IHRvcCB0aHJlZSBjb3VudHJpZXMgZm9yIHRoZSBzcGVjaWZpZWQgeWVhcgoKYGBgYmFzaApjdXJsIC1YIEdFVCAiaHR0cDovL2xvY2FsaG9zdDo4ODg4L3ZvdGVzLzIwMjAiIC1IICJhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iCmBgYAoKR2V0IHRoZSB0b3AgdGhyZWUgZmF2b3JpdGUgc29uZ3MgZm9yIHRoZSBzcGVjaWZpZWQgeWVhciBhbmQgY291bnRyeQpgYGBiYXNoCmN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0Ojg4ODgvdm90ZXMvMjAyMC9OZXRoZXJsYW5kcyIgLUggImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIKYGBgCgpUbyBjaGVjayBvbmxpbmUgcmVzdWx0cyBsYXVuY2ggVm90ZSBSZXN1bHRzIERhc2hib2FyZCBhdCBodHRwOi8vbG9jYWxob3N0Ojk5OTkvCgo9PSBIZWxwCgoqIGh0dHBzOi8vdmVydHguaW8vZG9jcy9bVmVydC54IERvY3VtZW50YXRpb25dCiogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvdGFnZ2VkL3ZlcnQueD9zb3J0PW5ld2VzdCZwYWdlU2l6ZT0xNVtWZXJ0LnggU3RhY2sgT3ZlcmZsb3ddCiogaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8/ZnJvbWdyb3VwcyMhZm9ydW0vdmVydHhbVmVydC54IFVzZXIgR3JvdXBdCiogaHR0cHM6Ly9naXR0ZXIuaW0vZWNsaXBzZS12ZXJ0eC92ZXJ0eC11c2Vyc1tWZXJ0LnggR2l0dGVyXQoKCg== readmeEtag: '"d66330f74b463c3e4cf93ab1917f089cb009adf0"' readmeLastModified: Tue, 26 May 2020 12:07:34 GMT repositoryId: 266740708 description: >- A sample implementation to count the results of the Eurovision Song Contest created: '2020-05-25T09:38:47Z' updated: '2020-06-04T11:27:55Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: HalilOzkan logo: https://avatars.githubusercontent.com/u/8930446?v=4 license: Apache-2.0 repoEtag: '"1d1c50c3704d0fcf2d7283c1714c0274179d37b98833967870225d30b4caf0ff"' repoLastModified: Thu, 04 Jun 2020 11:27:55 GMT foundInMaster: true category: Server Implementations id: 4b91d74f01aeab56d54b13f39582b9bb - source: openapi3 tags repository: https://github.com/gosticks/octoprint-open-api v3: true repositoryMetadata: base64Readme: >- CiMgT2N0b1ByaW50IE9wZW5BUEkgRGVmaW5pdGlvbiAoQkVUQSEhISkKClRoaXMgcHJvamVjdCBwcm92ZWQgYSB1bm9mZmljaWFsIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHBvcHVsYXIgb3BlbiBzb3VyY2UgM0QgcHJpbnRlciBjb250cm9sIHNvZnR3YXJlIE9jdG9QcmludC4gVGhlIGRlZmluaXRpb25zIGFyZSBiYXNlZCBvbiB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBPY3RvUHJpbnQgYXBpIGRvY3VtZW50YXRpb24uIAoKIyMgV29ya2luZyBvbiB5b3VyIE9wZW5BUEkgRGVmaW5pdGlvbgoKIyMjIEluc3RhbGwKCjEuIEluc3RhbGwgW05vZGUgSlNdKGh0dHBzOi8vbm9kZWpzLm9yZy8pLgoyLiBDbG9uZSB0aGlzIHJlcG8gYW5kIHJ1biBgeWFybiBpbnN0YWxsYC9gbnBtIGluc3RhbGxgIGluIHRoZSByZXBvIHJvb3QuCgojIyMgVXNhZ2UKCiMjIyMgYG5wbSBzdGFydGAKU3RhcnRzIHRoZSByZWZlcmVuY2UgZG9jcyBwcmV2aWV3IHNlcnZlci4KCiMjIyMgYG5wbSBydW4gYnVpbGRgCkJ1bmRsZXMgdGhlIGRlZmluaXRpb24gdG8gdGhlIGRpc3QgZm9sZGVyLgoKIyMjIyBgbnBtIHRlc3RgClZhbGlkYXRlcyB0aGUgZGVmaW5pdGlvbi4KCiMjIENvbnRyaWJ1dGlvbiBHdWlkZQoKQmVsb3cgaXMgYSBzYW1wbGUgY29udHJpYnV0aW9uIGd1aWRlLiBUaGUgdG9vbHMKaW4gdGhlIHJlcG9zaXRvcnkgZG9uJ3QgcmVzdHJpY3QgeW91IHRvIGFueQpzcGVjaWZpYyBzdHJ1Y3R1cmUuIEFkanVzdCB0aGUgY29udHJpYnV0aW9uIGd1aWRlCnRvIG1hdGNoIHlvdXIgb3duIHN0cnVjdHVyZS4gSG93ZXZlciwgaWYgeW91CmRvbid0IGhhdmUgYSBzdHJ1Y3R1cmUgaW4gbWluZCwgdGhpcyBpcyBhCmdvb2QgcGxhY2UgdG8gc3RhcnQuCgpVcGRhdGUgdGhpcyBjb250cmlidXRpb24gZ3VpZGUgaWYgeW91CmFkanVzdCB0aGUgZmlsZS9mb2xkZXIgb3JnYW5pemF0aW9uLgoKVGhlIGAucmVkb2NseS55YW1sYCBjb250cm9scyBzZXR0aW5ncyBmb3IgdmFyaW91cwp0b29scyBpbmNsdWRpbmcgdGhlIGxpbnQgdG9vbCBhbmQgdGhlIHJlZmVyZW5jZQpkb2NzIGVuZ2luZS4gIE9wZW4gaXQgdG8gZmluZCBleGFtcGxlcyBhbmQKW3JlYWQgdGhlIGRvY3NdKGh0dHBzOi8vcmVkb2MubHkvZG9jcy9jbGkvY29uZmlndXJhdGlvbi8pCmZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIFNjaGVtYXMKCiMjIyMgQWRkaW5nIFNjaGVtYXMKCjEuIE5hdmlnYXRlIHRvIHRoZSBgb3BlbmFwaS9jb21wb25lbnRzL3NjaGVtYXNgIGZvbGRlci4KMi4gQWRkIGEgZmlsZSBuYW1lZCBhcyB5b3Ugd2lzaCB0byBuYW1lIHRoZSBzY2hlbWEuCjMuIERlZmluZSB0aGUgc2NoZW1hLgo0LiBSZWZlciB0byB0aGUgc2NoZW1hIHVzaW5nIHRoZSBgJHJlZmAgKHNlZSBleGFtcGxlIGJlbG93KS4KCiMjIyMjIFVzaW5nIHRoZSBgJHJlZmAKCk5vdGljZSBpbiB0aGUgY29tcGxleCBleGFtcGxlIGFib3ZlIHRoZSBzY2hlbWEgZGVmaW5pdGlvbiBpdHNlbGYgaGFzIGAkcmVmYCBsaW5rcyB0byBvdGhlciBzY2hlbWFzIGRlZmluZWQuCgpIZXJlIGlzIGEgc21hbGwgZXhjZXJwdCB3aXRoIGFuIGV4YW1wbGU6CgpgYGB5YW1sCmRlZmF1bHRQYXltZW50SW5zdHJ1bWVudDoKICAkcmVmOiAuL1BheW1lbnRJbnN0cnVtZW50LnlhbWwKYGBgCgpUaGUgdmFsdWUgb2YgdGhlIGAkcmVmYCBpcyB0aGUgcGF0aCB0byB0aGUgb3RoZXIgc2NoZW1hIGRlZmluaXRpb24uCgpZb3UgbWF5IHVzZSBgJHJlZmBzIHRvIGNvbXBvc2Ugc2NoZW1hIGZyb20gb3RoZXIgZXhpc3Rpbmcgc2NoZW1hIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgoKWW91IHdpbGwgdXNlIGAkcmVmYHMgdG8gcmVmZXJlbmNlIHNjaGVtYSBmcm9tIHlvdXIgcGF0aCBkZWZpbml0aW9ucy4KCiMjIyMgRWRpdGluZyBTY2hlbWFzCgoxLiBOYXZpZ2F0ZSB0byB0aGUgYG9wZW5hcGkvY29tcG9uZW50cy9zY2hlbWFzYCBmb2xkZXIuCjIuIE9wZW4gdGhlIGZpbGUgeW91IHdpc2ggdG8gZWRpdC4KMy4gRWRpdC4KCiMjIyBQYXRocwoKIyMjIyBBZGRpbmcgYSBQYXRoCgoxLiBOYXZpZ2F0ZSB0byB0aGUgYG9wZW5hcGkvcGF0aHNgIGZvbGRlci4KMi4gQWRkIGEgbmV3IFlBTUwgZmlsZSBuYW1lZCBsaWtlIHlvdXIgVVJMIGVuZHBvaW50IGV4Y2VwdCByZXBsYWNpbmcgYC9gIHdpdGggYEBgIGFuZCBwdXR0aW5nIHBhdGggcGFyYW1ldGVycyBpbnRvIGN1cmx5IGJyYWNlcyBsaWtlIGB7ZXhhbXBsZX1gLgozLiBBZGQgdGhlIHBhdGggYW5kIGEgcmVmIHRvIGl0IGluc2lkZSBvZiB5b3VyIGBvcGVuYXBpLnlhbWxgIGZpbGUgaW5zaWRlIG9mIHRoZSBgb3BlbmFwaWAgZm9sZGVyLgoKRXhhbXBsZSBhZGRpdGlvbiB0byB0aGUgYG9wZW5hcGkueWFtbGAgZmlsZToKYGBgeWFtbAonL2N1c3RvbWVycy97aWR9JzoKICAkcmVmOiAnLi9wYXRocy9jdXN0b21lcnNAe2lkfS55YW1sJwpgYGAKCkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIFlBTUwgZmlsZSBuYW1lZCBgY3VzdG9tZXJzQHtpZH0ueWFtbGAgaW4gdGhlIGBwYXRoc2AgZm9sZGVyOgoKYGBgeWFtbApnZXQ6CiAgdGFnczoKICAgIC0gQ3VzdG9tZXJzCiAgc3VtbWFyeTogUmV0cmlldmUgYSBsaXN0IG9mIGN1c3RvbWVycwogIG9wZXJhdGlvbklkOiBHZXRDdXN0b21lckNvbGxlY3Rpb24KICBkZXNjcmlwdGlvbjogfAogICAgWW91IGNhbiBoYXZlIGEgbWFya2Rvd24gZGVzY3JpcHRpb24gaGVyZS4KICBwYXJhbWV0ZXJzOgogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkxpbWl0LnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25PZmZzZXQueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkZpbHRlci55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uUXVlcnkueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkV4cGFuZC55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uRmllbGRzLnlhbWwKICByZXNwb25zZXM6CiAgICAnMjAwJzoKICAgICAgZGVzY3JpcHRpb246IEEgbGlzdCBvZiBDdXN0b21lcnMgd2FzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkKICAgICAgaGVhZGVyczoKICAgICAgICBSYXRlLUxpbWl0LUxpbWl0OgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1JhdGUtTGltaXQtTGltaXQueWFtbAogICAgICAgIFJhdGUtTGltaXQtUmVtYWluaW5nOgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1JhdGUtTGltaXQtUmVtYWluaW5nLnlhbWwKICAgICAgICBSYXRlLUxpbWl0LVJlc2V0OgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1JhdGUtTGltaXQtUmVzZXQueWFtbAogICAgICAgIFBhZ2luYXRpb24tVG90YWw6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUGFnaW5hdGlvbi1Ub3RhbC55YW1sCiAgICAgICAgUGFnaW5hdGlvbi1MaW1pdDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9QYWdpbmF0aW9uLUxpbWl0LnlhbWwKICAgICAgICBQYWdpbmF0aW9uLU9mZnNldDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9QYWdpbmF0aW9uLU9mZnNldC55YW1sCiAgICAgIGNvbnRlbnQ6CiAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9zY2hlbWFzL0N1c3RvbWVyLnlhbWwKICAgICAgICB0ZXh0L2NzdjoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9zY2hlbWFzL0N1c3RvbWVyLnlhbWwKICAgICc0MDEnOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9BY2Nlc3NGb3JiaWRkZW4ueWFtbAogIHgtY29kZS1zYW1wbGVzOgogICAgLSBsYW5nOiBQSFAKICAgICAgc291cmNlOgogICAgICAgICRyZWY6IC4uL2NvZGVfc2FtcGxlcy9QSFAvY3VzdG9tZXJzL2dldC5waHAKcG9zdDoKICB0YWdzOgogICAgLSBDdXN0b21lcnMKICBzdW1tYXJ5OiBDcmVhdGUgYSBjdXN0b21lciAod2l0aG91dCBhbiBJRCkKICBvcGVyYXRpb25JZDogUG9zdEN1c3RvbWVyCiAgZGVzY3JpcHRpb246IEFub3RoZXIgbWFya2Rvd24gZGVzY3JpcHRpb24gaGVyZS4KICByZXF1ZXN0Qm9keToKICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVxdWVzdEJvZGllcy9DdXN0b21lci55YW1sCiAgcmVzcG9uc2VzOgogICAgJzIwMSc6CiAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVzcG9uc2VzL0N1c3RvbWVyLnlhbWwKICAgICc0MDEnOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9BY2Nlc3NGb3JiaWRkZW4ueWFtbAogICAgJzQwOSc6CiAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvcmVzcG9uc2VzL0NvbmZsaWN0LnlhbWwKICAgICc0MjInOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9JbnZhbGlkRGF0YUVycm9yLnlhbWwKICB4LWNvZGUtc2FtcGxlczoKICAgIC0gbGFuZzogUEhQCiAgICAgIHNvdXJjZToKICAgICAgICAkcmVmOiAuLi9jb2RlX3NhbXBsZXMvUEhQL2N1c3RvbWVycy9wb3N0LnBocApgYGAKCllvdSdsbCBzZWUgZXh0ZW5zaXZlIHVzYWdlIG9mIGAkcmVmYHMgaW4gdGhpcyBleGFtcGxlIHRvIGRpZmZlcmVudCB0eXBlcyBvZiBjb21wb25lbnRzIGluY2x1ZGluZyBzY2hlbWFzLgoKWW91J2xsIGFsc28gbm90aWNlIGAkcmVmYHMgdG8gY29kZSBzYW1wbGVzLgoK readmeEtag: '"71b48387434e3d2f2606711f48ba1e62b3db0c47"' readmeLastModified: Sun, 22 Nov 2020 00:58:08 GMT repositoryId: 306438975 description: OctoPrint OpenAPI definition created: '2020-10-22T19:27:00Z' updated: '2022-03-28T13:09:07Z' language: null archived: false stars: 1 watchers: 2 forks: 0 owner: gosticks logo: https://avatars.githubusercontent.com/u/9556979?v=4 license: MIT repoEtag: '"db23e98d68a7b713831b808920b2edf85093c7153638bd98b9aa8bd1596164b1"' repoLastModified: Mon, 28 Mar 2022 13:09:07 GMT foundInMaster: true category: Parsers id: 2ee853734020d1d065fc32dc763f8940 - source: openapi3 tags repository: https://github.com/stephan-mueller/api-documentation-showcase v3: true repositoryMetadata: base64Readme: >- IyBBUEkgRG9jdW1lbnRhdGlvbiBTaG93Y2FzZQoKWyFbR2l0SHViIFdvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbi1tdWVsbGVyL2FwaS1kb2N1bWVudGF0aW9uLXNob3djYXNlL2FjdGlvbnMvd29ya2Zsb3dzL21hdmVuLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbi1tdWVsbGVyL2FwaS1kb2N1bWVudGF0aW9uLXNob3djYXNlL2FjdGlvbnMpClshW0dpdEh1YiBsYXN0IGNvbW1pdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFzdC1jb21taXQvc3RlcGhhbi1tdWVsbGVyL2FwaS1kb2N1bWVudGF0aW9uLXNob3djYXNlKV0oaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW4tbXVlbGxlci9hcGktZG9jdW1lbnRhdGlvbi1zaG93Y2FzZS9jb21taXRzKQpbIVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2Uvc3RlcGhhbi1tdWVsbGVyL2FwaS1kb2N1bWVudGF0aW9uLXNob3djYXNlKV0oaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW4tbXVlbGxlci9hcGktZG9jdW1lbnRhdGlvbi1zaG93Y2FzZS9ibG9iL21hc3Rlci9MSUNFTlNFKQoKVGhpcyBpcyBhIHNob3djYXNlIGZvciBhcGkgZG9jdW1lbnRhdGlvbi4gSXQgY29udGFpbnMgaGVsbG8gd29ybGQgYXBwbGljYXRpb25zLCB3aGljaCBkZW1vbnN0cmF0ZXMgZmVhdHVyZXMgb2YgdGhlCltPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vb3BlbmFwaXMub3JnKSBhbmQgb3RoZXJzLiBTb2Z0d2FyZSByZXF1aXJlbWVudHMgdG8gcnVuIHRoZSBzYW1wbGVzIGFyZSBgbWF2ZW5gLCBgb3Blbmpkay04YCAob3IgYW55IG90aGVyIApKREsgOCkgYW5kIGBkb2NrZXJgLgoKIyMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChPQVMpCgpUaGUgW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zKSAoT0FTKSBkZWZpbmVzIGEgc3RhbmRhcmQsIHByb2dyYW1taW5nIGxhbmd1YWdlLWFnbm9zdGljIGludGVyZmFjZSBkZXNjcmlwdGlvbiBmb3IgUkVTVCBBUElzLCB3aGljaCBhbGxvd3MgYm90aCAKaHVtYW5zIGFuZCBjb21wdXRlcnMgdG8gZGlzY292ZXIgYW5kIHVuZGVyc3RhbmQgdGhlIGNhcGFiaWxpdGllcyBvZiBhIHNlcnZpY2Ugd2l0aG91dCByZXF1aXJpbmcgYWNjZXNzIHRvIHNvdXJjZSBjb2RlLCBhZGRpdGlvbmFsIApkb2N1bWVudGF0aW9uLCBvciBpbnNwZWN0aW9uIG9mIG5ldHdvcmsgdHJhZmZpYy4gV2hlbiBwcm9wZXJseSBkZWZpbmVkIHZpYSBPcGVuQVBJLCBhIGNvbnN1bWVyIGNhbiB1bmRlcnN0YW5kIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSByZW1vdGUKc2VydmljZSB3aXRoIGEgbWluaW1hbCBhbW91bnQgb2YgaW1wbGVtZW50YXRpb24gbG9naWMuIFNpbWlsYXIgdG8gd2hhdCBpbnRlcmZhY2UgZGVzY3JpcHRpb25zIGhhdmUgZG9uZSBmb3IgbG93ZXItbGV2ZWwgcHJvZ3JhbW1pbmcsIHRoZSAKT3BlbkFQSSBTcGVjaWZpY2F0aW9uIHJlbW92ZXMgZ3Vlc3N3b3JrIGluIGNhbGxpbmcgYSBzZXJ2aWNlLgoKIyMjIE9BUyB2MiAoZmthIFN3YWdnZXIgUkVTVGZ1bCBBUEkgRG9jdW1lbnRhdGlvbiBTcGVjaWZpY2F0aW9uKQoKW1N3YWdnZXJdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uL3YyLykgaXMgYW4gSW50ZXJmYWNlIERlc2NyaXB0aW9uIExhbmd1YWdlIGZvciBkZXNjcmliaW5nIFJFU1RmdWwgQVBJcyBleHByZXNzZWQgdXNpbmcgSlNPTi4gU3dhZ2dlciBpcyB1c2VkIHRvZ2V0aGVyIHdpdGggYSBzZXQgb2YgCm9wZW4tc291cmNlIHNvZnR3YXJlIHRvb2xzIHRvIGRlc2lnbiwgYnVpbGQsIGRvY3VtZW50LCBhbmQgdXNlIFJFU1RmdWwgd2ViIHNlcnZpY2VzLiBTd2FnZ2VyIGluY2x1ZGVzIGF1dG9tYXRlZCBkb2N1bWVudGF0aW9uLCBjb2RlIApnZW5lcmF0aW9uIChpbnRvIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzKSwgYW5kIHRlc3QtY2FzZSBnZW5lcmF0aW9uLgoKIyMjIFNob3djYXNlcwoKKiBUaGUgW0VjbGlwc2UgTWljcm9Qcm9maWxlIE9wZW5BUEkgU2hvd2Nhc2VdKG1wLW9wZW5hcGktc2hvd2Nhc2UvUkVBRE1FLm1kKSBzaG93cyBmZWF0dXJlcyBvZiB0aGUgTVAgT3BlbkFQSSBTcGVjaWZpY2F0aW9uLgoqIFRoZSBbU3dhZ2dlciBTaG93Y2FzZV0oc3dhZ2dlci1zaG93Y2FzZS9SRUFETUUubWQpIHNob3dzIGZlYXR1cmVzIG9mIHRoZSBTd2FnZ2VyIFNwZWNpZmljYXRpb24gYW5kIHRoZSBTd2FnZ2VyIENvcmUgZnJhbWV3b3JrLg== readmeEtag: '"7d2b40c246a6a49d24193c019b1e68575b766de7"' readmeLastModified: Wed, 16 Jun 2021 14:42:06 GMT repositoryId: 368658825 description: null created: '2021-05-18T20:30:38Z' updated: '2023-05-24T06:20:59Z' language: Java archived: true stars: 1 watchers: 1 forks: 0 owner: stephan-mueller logo: https://avatars.githubusercontent.com/u/13217222?v=4 license: Apache-2.0 repoEtag: '"bfcf6f779f8c1f8bfa47871d6253685fed8eaa0f3efd1b098dfca9be517d36c9"' repoLastModified: Wed, 24 May 2023 06:20:59 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 7d031cad29aed62914f5b9b6a12b9188 - source: openapi3 tags repository: https://github.com/javasks/open-api v3: true repositoryMetadata: repositoryId: 366143641 description: >- This repo is related to the open API generator. You need to come with the first API contract and then Models and endpoint will be exposed based on the open API generator plugin. created: '2021-05-10T18:43:46Z' updated: '2021-05-11T07:51:15Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: javasks logo: https://avatars.githubusercontent.com/u/35063886?v=4 repoEtag: '"8a40216f5893f72c84df8799ffb94ad570a6fba99f5ff75bf70fffb2353357ce"' repoLastModified: Tue, 11 May 2021 07:51:15 GMT foundInMaster: true id: c537c00b4db182f81ea02e362da86e06 - source: openapi3 tags repository: https://github.com/scalabli/yadig v3: true repositoryMetadata: base64Readme: >- WyFbRG93bmxvYWRzXShodHRwczovL3BlcHkudGVjaC9iYWRnZS9jaXR1cyldKGh0dHBzOi8vcGVweS50ZWNoL3Byb2plY3QvY2l0dXMpClshW1B5UEkgdmVyc2lvbl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL3B5L2NpdHVzLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9weS9jaXR1cykKWyFbV2hlZWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS93aGVlbC9jaXR1cy5zdmcpXShodHRwczovL3B5cGkuY29tL3Byb2plY3QvY2l0dXMpClshW1dpbmRvd3MgQnVpbGQgU3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2FwcHZleW9yL2J1aWxkL2dlcnJpc2hvbnMvY2l0dXMvbWFpbj9sb2dvPWFwcHZleW9yJmNhY2hlU2Vjb25kcz02MDApXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L2dlcnJpc2hvbnMvY2l0dXMpClshW3B5aW1wXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvaW1wbGVtZW50YXRpb24vY2l0dXMuc3ZnKV0oaHR0cHM6Ly9weXBpLmNvbS9wcm9qZWN0L2NpdHVzKQpbIVtSVERdKGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL2NpdHVzL2JhZGdlLyldKGh0dHBzOi8vY2l0dXMucmVhZHRoZWRvY3MuaW8pClshW2xpY2VuY2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9sL2NpdHVzLnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQpbIVtUd2l0dGVyIEZvbGxvd10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9nZXJyaXNob25fcy5zdmc/c3R5bGU9c29jaWFsKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9nZXJyaXNob25fcykKCgpbIVtMb2dvXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc2VjcmV0dW0taW5jL2NpdHVzL21haW4vZG9jcy9pbWFnZXMvY2l0dXMucG5nKV0oaHR0cHM6Ly9naXRodWIuY29tL3NlY3JldHVtLWluYy9jaXR1cykKCgpgRm9yZXZlciBTY2FsYWJsZWAKCioq8J2ZsvCdmpLwnZqd8J2anvCdmpwqKiBpcyBhIHB5dGhvbiBiYXNlZCwgdWx0cmFmYXN0IHdlYiBmcmFtZXdvcmsgIGZvY3VzaW5nIG9uIGNvbXBvc2luZyBXZWIgQVBJcyBhbGwgdGhlIG1vcmUgcmFwaWRseSBhbmQgd2l0aCBuZWVkbGVzcyBiYWdnYWdlLiAKCkNpdHVzIHJlcXVpcmVzIFB5dGhvbiBgMy44YCBvciBsYXRlci4gCgoKIyMgRmVhdHVyZXMKVGhlIGtleSBmZWF0dXJlcyBhcmU6CgotIFt4XSAqKkZhc3QqKjogVmVyeSBoaWdoIHBlcmZvcm1hbmNlLCBvbiBwYXIgd2l0aCAqKk5vZGVKUyoqIGFuZCAqKkdvKiogKHRoYW5rcyB0byBTdGFybGV0dGUgYW5kIFB5ZGFudGljKS4gW09uZSBvZiB0aGUgZmFzdGVzdCBQeXRob24gZnJhbWV3b3JrcyBhdmFpbGFibGVdKCNwZXJmb3JtYW5jZSkuCgotIFt4XSAqKkZhc3QgdG8gY29kZSoqOiBJbmNyZWFzZSB0aGUgc3BlZWQgdG8gZGV2ZWxvcCBmZWF0dXJlcyBieSBhYm91dCAyMDAlIHRvIDMwMCUuICoKLSBbeF0gKipGZXdlciBidWdzKio6IFJlZHVjZSBhYm91dCA0MCUgb2YgaHVtYW4gKGRldmVsb3BlcikgaW5kdWNlZCBlcnJvcnMuICoKLSBbeF0gKipJbnR1aXRpdmUqKjogR3JlYXQgZWRpdG9yIHN1cHBvcnQuIDxhYmJyIHRpdGxlPSJhbHNvIGtub3duIGFzIGF1dG8tY29tcGxldGUsIGF1dG9jb21wbGV0aW9uLCBJbnRlbGxpU2Vuc2UiPkNvbXBsZXRpb248L2FiYnI+IGV2ZXJ5d2hlcmUuIExlc3MgdGltZSBkZWJ1Z2dpbmcuCi0gW3hdICoqRWFzeSoqOiBEZXNpZ25lZCB0byBiZSBlYXN5IHRvIHVzZSBhbmQgbGVhcm4uIExlc3MgdGltZSByZWFkaW5nIGRvY3MuCi0gW3hdICoqU2hvcnQqKjogTWluaW1pemUgY29kZSBkdXBsaWNhdGlvbi4gTXVsdGlwbGUgZmVhdHVyZXMgZnJvbSBlYWNoIHBhcmFtZXRlciBkZWNsYXJhdGlvbi4gRmV3ZXIgYnVncy4KLSBbeF0gKipSb2J1c3QqKjogR2V0IHByb2R1Y3Rpb24tcmVhZHkgY29kZS4gV2l0aCBhdXRvbWF0aWMgaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbi4KLSBbeF0gKipTdGFuZGFyZHMtYmFzZWQqKjogQmFzZWQgb24gKGFuZCBmdWxseSBjb21wYXRpYmxlIHdpdGgpIHRoZSBvcGVuIHN0YW5kYXJkcyBmb3IgQVBJczogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24iIGNsYXNzPSJleHRlcm5hbC1saW5rIiB0YXJnZXQ9Il9ibGFuayI+T3BlbkFQSTwvYT4gKHByZXZpb3VzbHkga25vd24gYXMgU3dhZ2dlcikgYW5kIDxhIGhyZWY9Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5KU09OIFNjaGVtYTwvYT4uCgo8c21hbGw+KiBlc3RpbWF0aW9uIGJhc2VkIG9uIHRlc3RzIG9uIGFuIGludGVybmFsIGRldmVsb3BtZW50IHRlYW0sIGJ1aWxkaW5nIHByb2R1Y3Rpb24gYXBwbGljYXRpb25zLjwvc21hbGw+Ci0gW3hdIFN1cHBvcnQgZm9yIEFuc2ksIFJHQiBhbmQgSFRNTCBjb2xvciBtb2RlbHMKLSBbeF0gU3VwcG9ydCBmb3IgdGFidWxhciBwcmVzZW50YXRpb24gb2YgZGF0YQotIFt4XSBJbnRlcmFjdGl2ZSBwcm9ncmVzc2JhcnMKLSBbeF0gQ29kZSBjb21wbGV0aW9ucwotIFt4XSBOZXN0aW5nIG9mIGNvbW1hbmRzCi0gW3hdIEF1dG9tYXRpYyBoZWxwIHBhZ2UgZ2VuZXJhdGlvbgotIFt4XSBTeW50YXggaGlnaGxpZ2h0aW5nCi0gW3hdIEF1dG9zdWdnZXN0aW9ucwotIFt4XSBLZXkgQmluZGVycwoKIyMgR2V0dGluZyBTdGFydGVkCiMjIyBJbnN0YWxsYXRpb24KWW91IGNhbiBpbnN0YWxsIGNpdHVzIHZpYSB0aGUgUHl0aG9uIFBhY2thZ2UgSW5kZXggKFB5UEkpCgpgYGAKcGlwIGluc3RhbGwgLVUgY2l0dXMKYGBgCgojIyBFeGFtcGxlCgojIyMgQ3JlYXRlIGl0CgoqIENyZWF0ZSBhIGZpbGUgYG1haW4ucHlgIHdpdGg6CgpgYGBQeXRob24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCgppbXBvcnQgY2l0dXMKCmFwcCA9IGNpdHVzLkFwcCgpCgoKQGFwcC5HRVQoIi8iKQpkZWYgcmVhZF9yb290KCk6CiAgICByZXR1cm4gIkhlbGxvIFdvcmxkIgoKCkBhcHAuR0VUKCIvaXRlbXMve2l0ZW1faWR9IikKZGVmIHJlYWRfaXRlbShpdGVtX2lkOiBpbnQsIHE6IE9wdGlvbmFsW3N0cl0gPSBOb25lKToKICAgIHJldHVybiB7Iml0ZW1faWQiOiBpdGVtX2lkLCAicSI6IHF9CmBgYAoKPGRldGFpbHMgbWFya2Rvd249IjEiPgo8c3VtbWFyeT5PciB1c2UgPGNvZGU+YXN5bmMgZGVmPC9jb2RlPi4uLjwvc3VtbWFyeT4KCklmIHlvdXIgY29kZSB1c2VzIGBhc3luY2AgLyBgYXdhaXRgLCB1c2UgYGFzeW5jIGRlZmA6CgpgYGBQeXRob24gaGxfbGluZXM9IjkgIDE0Igpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKaW1wb3J0IHF1bwoKYXBwID0gY2l0dXMuQXBwKCkKCgpAYXBwLkdFVCgiLyIpCmFzeW5jIGRlZiByZWFkX3Jvb3QoKToKICAgIHJldHVybiAiSGVsbG8gV29ybGQiCgoKQGFwcC5HRVQoIi9pdGVtcy97aXRlbV9pZH0iKQphc3luYyBkZWYgcmVhZF9pdGVtKGl0ZW1faWQ6IGludCwgcTogT3B0aW9uYWxbc3RyXSA9IE5vbmUpOgogICAgcmV0dXJuIHsiaXRlbV9pZCI6IGl0ZW1faWQsICJxIjogcX0KYGBgCgoKKipOb3RlKio6CgpJZiB5b3UgZG9uJ3Qga25vdywgY2hlY2sgdGhlIF8iSW4gYSBodXJyeT8iXyBzZWN0aW9uIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vZmFzdGFwaS50aWFuZ29sby5jb20vYXN5bmMvI2luLWEtaHVycnkiIHRhcmdldD0iX2JsYW5rIj5gYXN5bmNgIGFuZCBgYXdhaXRgIGluIHRoZSBkb2NzPC9hPi4KCjwvZGV0YWlscz4KCiMjIyBSdW4gaXQKClJ1biB0aGUgc2VydmVyIHdpdGg6Cgo8ZGl2IGNsYXNzPSJ0ZXJteSI+CgpgYGBjb25zb2xlCiQgY2l0dXMgbWFpbjphcHAgLS1yZWxvYWQKCklORk86ICAgICBDaXR1cyBydW5uaW5nIG9uIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCAoUHJlc3MgQ1RSTCtDIHRvIHF1aXQpCklORk86ICAgICBTdGFydGVkIHJlbG9hZGVyIHByb2Nlc3MgWzI4NzIwXQpJTkZPOiAgICAgU3RhcnRlZCBzZXJ2ZXIgcHJvY2VzcyBbMjg3MjJdCklORk86ICAgICBXYWl0aW5nIGZvciBhcHBsaWNhdGlvbiBzdGFydHVwLgpJTkZPOiAgICAgQXBwbGljYXRpb24gc3RhcnR1cCBjb21wbGV0ZS4KYGBgCgo8L2Rpdj4KCjxkZXRhaWxzIG1hcmtkb3duPSIxIj4KPHN1bW1hcnk+QWJvdXQgdGhlIGNvbW1hbmQgPGNvZGU+dXZpY29ybiBtYWluOmFwcCAtLXJlbG9hZDwvY29kZT4uLi48L3N1bW1hcnk+CgpUaGUgY29tbWFuZCBgY2l0dXMgbWFpbjphcHBgIHJlZmVycyB0bzoKCiogYG1haW5gOiB0aGUgZmlsZSBgbWFpbi5weWAgKHRoZSBQeXRob24gIm1vZHVsZSIpLgoqIGBhcHBgOiB0aGUgb2JqZWN0IGNyZWF0ZWQgaW5zaWRlIG9mIGBtYWluLnB5YCB3aXRoIHRoZSBsaW5lIGBhcHAgPSBjaXR1cy5BcHAoKWAuCiogYC0tcmVsb2FkYCBvciBgLXJgOiBtYWtlIHRoZSBzZXJ2ZXIgcmVzdGFydCBhZnRlciBjb2RlIGNoYW5nZXMuIE9ubHkgZG8gdGhpcyBmb3IgZGV2ZWxvcG1lbnQuCgo8L2RldGFpbHM+CgojIyBFeGFtcGxlIHVwZ3JhZGUKCk5vdyBtb2RpZnkgdGhlIGZpbGUgYG1haW4ucHlgIHRvIHJlY2VpdmUgYSBib2R5IGZyb20gYSBgUFVUYCByZXF1ZXN0LgoKRGVjbGFyZSB0aGUgYm9keSB1c2luZyBzdGFuZGFyZCBQeXRob24gdHlwZXMsIHRoYW5rcyB0byBQeWRhbnRpYy4KCmBgYFB5dGhvbiBobF9saW5lcz0iNCAgOS0xMiAgMjUtMjciCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAoKaW1wb3J0IGNpdHVzCgphcHAgPSBjaXR1cy5BcHAoKQoKCmNsYXNzIEl0ZW0oY2l0dXMuQmFzZSk6CiAgICBuYW1lOiBzdHIKICAgIHByaWNlOiBmbG9hdAogICAgaXNfb2ZmZXI6IE9wdGlvbmFsW2Jvb2xdID0gTm9uZQoKCkBhcHAuR0VUKCIvIikKZGVmIHJlYWRfcm9vdCgpOgogICAgcmV0dXJuICJIZWxsbyBXb3JsZCIKCgpAYXBwLkdFVCgiL2l0ZW1zL3tpdGVtX2lkfSIpCmRlZiByZWFkX2l0ZW0oaXRlbV9pZDogaW50LCBxOiBPcHRpb25hbFtzdHJdID0gTm9uZSk6CiAgICByZXR1cm4geyJpdGVtX2lkIjogaXRlbV9pZCwgInEiOiBxfQoKCkBhcHAuR0VUKCIvaXRlbXMve2l0ZW1faWR9IikKZGVmIHVwZGF0ZV9pdGVtKGl0ZW1faWQ6IGludCwgaXRlbTogSXRlbSk6CiAgICByZXR1cm4geyJpdGVtX25hbWUiOiBpdGVtLm5hbWUsICJpdGVtX2lkIjogaXRlbV9pZH0KYGBgCgpUaGUgc2VydmVyIHNob3VsZCByZWxvYWQgYXV0b21hdGljYWxseSAoYmVjYXVzZSB5b3UgYWRkZWQgYC0tcmVsb2FkYCB0byB0aGUgY29tbWFuZCBhYm92ZSkuCgojIyMgQ2hlY2sgaXQKCk9wZW4geW91ciBicm93c2VyIGF0IDxhIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pdGVtcy8zMz9xPWNoZWNrdXNlciIgY2xhc3M9ImV4dGVybmFsLWxpbmsiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vMTI3LjAuMC4xOjgwMDAvaXRlbXMvMzM/cT1jaGVja3VzZXI8L2E+LgoKWW91IHdpbGwgc2VlIHRoZSBKU09OIHJlc3BvbnNlIGFzOgoKYGBgSlNPTgp7Iml0ZW1faWQiOiAzMywgInEiOiAiY2hlY2t1c2VyIn0KYGBgCgpZb3UgYWxyZWFkeSBjcmVhdGVkIGFuIEFQSSB0aGF0OgoKKiBSZWNlaXZlcyBIVFRQIHJlcXVlc3RzIGluIHRoZSBfcGF0aHNfIGAvYCBhbmQgYC9pdGVtcy97aXRlbV9pZH1gLgoqIEJvdGggX3BhdGhzXyB0YWtlIGBHRVRgIDxlbT5vcGVyYXRpb25zPC9lbT4gKGFsc28ga25vd24gYXMgSFRUUCBfbWV0aG9kc18pLgoqIFRoZSBfcGF0aF8gYC9pdGVtcy97aXRlbV9pZH1gIGhhcyBhIF9wYXRoIHBhcmFtZXRlcl8gYGl0ZW1faWRgIHRoYXQgc2hvdWxkIGJlIGFuIGBpbnRgLgoqIFRoZSBfcGF0aF8gYC9pdGVtcy97aXRlbV9pZH1gIGhhcyBhbiBvcHRpb25hbCBgc3RyYCBfcXVlCgojIyBHZXR0aW5nIEhlbHAKCiMjIyBDb21tdW5pdHkKCkZvciBkaXNjdXNzaW9ucyBhYm91dCB0aGUgdXNhZ2UsIGRldmVsb3BtZW50LCBhbmQgdGhlIGZ1dHVyZSBvZiBxdW8sIHBsZWFzZSBqb2luIG91ciBHb29nbGUgY29tbXVuaXR5CgoqIFtDb21tdW5pdHnwn5Go4oCN8J+RqeKAjfCfkabigI3wn5GmXShodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2ZvcnVtLyMhZm9ydW0vc2VjcmV0dW0pCgojIyBSZXNvdXJjZXMKCiMjIyBCdWcgdHJhY2tlcgoKSWYgeW91IGhhdmUgYW55IHN1Z2dlc3Rpb25zLCBidWcgcmVwb3J0cywgb3IgYW5ub3lhbmNlcyBwbGVhc2UgcmVwb3J0IHRoZW0KdG8gb3VyIGlzc3VlIHRyYWNrZXIgYXQgCltCdWcgdHJhY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL3NlY3JldHVtLWluYy9jaXR1cy9pc3N1ZXMvKSBvciBzZW5kIGFuIGVtYWlsIHRvOgoKIPCfk6Ugc2VjcmV0dW1AZ29vZ2xlZ3JvdXBzLmNvbQoKCiMjIExpY2Vuc2Xwn5ORCgpbIVtMaWNlbnNlOiBNSVRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKSAgClRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIGBNSVQgTGljZW5zZWAuIFNlZSB0aGUgW0xpY2Vuc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZWNyZXR1bS1pbmMvY2l0dXMvYmxvYi9tYWluL0xJQ0VOU0UpIGZpbGUgaW4gdGhlIHRvcCBkaXN0cmlidXRpb24gZGlyZWN0b3J5IGZvciB0aGUgZnVsbCBsaWNlbnNlIHRleHQuCgoKIyMgQ29kZSBvZiBDb25kdWN0CkNvZGUgb2YgQ29uZHVjdCBpcyBhZGFwdGVkIGZyb20gdGhlIENvbnRyaWJ1dG9yIENvdmVuYW50LAp2ZXJzaW9uIDEuMi4wIGF2YWlsYWJsZSBhdApbQ29kZSBvZiBDb25kdWN0XShodHRwOi8vY29udHJpYnV0b3ItY292ZW5hbnQub3JnL3ZlcnNpb24vMS8yLzAvKQoK readmeEtag: '"5deadb74a6fd7a18a619c7e5a52e488e5b8f5fa8"' readmeLastModified: Tue, 29 Mar 2022 19:43:26 GMT repositoryId: 444886233 description: >- `𝙲𝚒𝚝𝚞𝚜` is a python based, ultrafast web framework focusing on composing Web APIs all the more rapidly and with needless baggage created: '2022-01-05T17:08:58Z' updated: '2022-10-15T08:01:07Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: scalabli logo: https://avatars.githubusercontent.com/u/34297519?v=4 license: MIT repoEtag: '"09e00425e0fdf6a1f535533ef731f3bf8b2cbfb419295e9ff0540372a58586c1"' repoLastModified: Sat, 15 Oct 2022 08:01:07 GMT foundInMaster: true category: Server Implementations id: e230a9681537acc79ecffb5abe8f70d2 oldLocations: - https://github.com/secretum-inc/citus - source: openapi3 tags repository: https://github.com/izobretatel777/ambiglyph-server v3: true id: 2021539a7c6727ac3683c732f2ce6c34 repositoryMetadata: base64Readme: >- IyBBbWJpZ2x5cGggU2VydmVyCjxkaXYgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJkb2MvaWNvbi5wbmciIGFsdD0iaWNvbiIgd2lkdGg9IjEyOCIvPgo8aDI+QW1iaWdseXBoPC9oMj4KPC9kaXY+CgoKKipBbWJpZ2x5cGggU2VydmVyKiogLSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEFtYmlnbHlwaCBwcm9qZWN0IGJhY2tlbmQuIGl0IGlzIGZ1bGx5IHdyaXR0ZW4gaW4gSmF2YSB3aXRoIFNwcmluZyB0ZWNobm9sb2d5IHRoYXRzIHByb3ZpZGUgcG93ZXJmdWwgQVBJLgoKSXQgY2FuIGRldGVjdCBob21vZ2x5cGhzIGluc2lkZSBhIHRleHQgYW5kIGdpdmUgc3VnZ2VzdGlvbnMgdG8gcmVjb3ZlciBpdCB1c2luZyBMZXZlbnNodGVpbiBhbGdvcml0aG0uICBUaGUgbWFpbiBhcHByb2FjaCBpcyB0byB1c2UgdGhlIGFsZ29yaXRobSBhcyBpdCB1c2VkIGZvciBtaXNzcGVsbHMgZml4aW5nLiAgQW4gdXNlciB3aWxsIGJlIHByb3ZpZGVkIHdpdGggc3VnZ2VzdGlvbnMgaG93IHdpdGggd2hpY2ggd29yZCBvYmZ1c2NhdGVkIG9uZSBjYW4gYmUgcmVwbGFjZWQuCgpUaGUgc2VydmVyIHVzZXMgb3BlbiBkYXRhYmFzZSBvZiB3b3JkcyBhbmQgaG9tb2dseXBzOiBodHRwOi8vaG9tb2dseXBocy5uZXQvCgphbmQgZGF0YWJhc2Ugb2Ygd29yZHM6IGh0dHA6Ly93d3cubWllbGllc3Ryb25rLmNvbS9jb3JuY29iX2xvd2VyY2FzZS50eHQKCgojIyBCdWlsZAoKIyMjIE1hbnVhbCBCdWlsZC9SdW4KCioqUmVxdWlyZW1lbnRzKioKCi0gSmF2YSAxNwoKLSBNeVNRTCBTZXJ2ZXIgOAoKLSBNYXZlbiAzLjguKwoKUnVuIGluIHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5CgpgYGBiYXNoCm12biBzcHJpbmctYm9vdDpydW4KYGBgCgojIyMgRG9ja2VyIEltYWdlCgoqKlJlcXVpcmVtZW50cyoqCgotIERvY2tlcgoKSnVzdCBydW4gaW4gdGhlIHByb2plY3QgZm9sZGVyOgoKYGBgYGBiYXNoCmRvY2tlciBidWlsZCAtdCBhbWJpZ2x5cGgtc2VydmVyIC1mIERvY2tlcmZpbGUKZG9ja2VyIHJ1biAtcCA4MDgxOjgwODEgLXQgYW1iaWdseXBoLXNlcnZlcgpgYGBgYAoKIyMgVXNhZ2UKClRoaXMgaXMgc2ltcGxlIGJhY2tlbmQgYXBwbGljYXRpb24gdGhhdCB1c2VzIFJFU1QgQVBJLiBIZW5jZSwgaXQgc3VwcG9ydHMgb25seSBSRVNUIHJlcXVlc3RzLiBUbyB0cnkgaXQgb3V0IHdpdGhvdXQgYW55IGZyb250IGFwcGxpY2F0aW9uIGFwcGxpY2F0aW9uIHlvdSBjYW4gdXNlIElub21pbmEgb3IgUG9zdG1hbi4gQWxsIG5lY2Vzc2FyeSBkb2N1bWVudGF0aW9uIHByb3ZpZGVkIGluIFN3YWdnZXIgKE9wZW5BcGkgdjMpLiBZb3UgY2FuIGFjY2VzcyBpdCBsaWtlIGBodHRwOi8vYXBpLWFkZHJlc3M6ODA4MS9hbWJpZ2x5cGgtc2VydmVyL3N3YWdnZXItdWkvaW5kZXguaHRtbGAuCgpPdmVyYWxsLCB0aGUgYXBwbGljYXRpb24gc3VwcG9ydHMgKipDUlVEKiogb3BlcmF0aW9ucyBvbiBkYXRhYmFzZSBvZiB3b3JkcyBhbmQgdXNlcnMuIEl0IGlzIHJlcXVpcmVkIHRvIGJlIGF1dGhlbnRpY2F0ZWQgYW5kIHVzZSBnaXZlbiBKV1QtdG9rZW4gaW4gaGVhZGVycyAgU29tZSBiYXNpYyBvcGVyYXRpb25zOgoKYFBPU1QgL2F1dGhlbnRpY2F0ZS9gIAoKQXV0aGVudGljYXRpb24uIEluIGNhc2Ugb2Ygc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbiBhIEpXVCB0b2tlbiB3aWxsIGJlIHByb3ZpZGVkIGFzIGEgcmVzcG9uc2UuIEV4YW1wbGU6CgohW2F1dGhdKGRvYy9hdXRoLmpwZykKCkRlZmF1bHQgcGFzc3dvcmRzOgoKfCBVc2VybmFtZSAgICAgfCBQYXNzd29yZCAgICB8CnwgLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0gfAp8IEFETUlOICAgICAgICB8IEFETUlOICAgICAgIHwKfCB0ZXN0ICAgICAgICAgfCB0ZXN0MTIzQkhPUyB8CnwgY2xpZW50ICoqKioqIHwgY2xpZW50ICAgICAgfAoKYCpgIFRoaXMgbG9naW4gY2FuIGJlIHVzZWQgZm9yIHVuYXV0aG9yaXplZCB1c2VycyB0byBjaGVjayB1c2luZyBvbmx5IHRoZSBnZW5lcmFsIHdvcmQgZGF0YWJhc2UuIFJlY29tbWVuZGVkIGZvciBjbGllbnQgYXBwbGljYXRpb25zLiogCgoKCmBQT1NUIC91c2Vycy9gCgpSZWdpc3RlciBhIG5ldyB1c2VyLiBUaGUgb3BlcmF0aW9uIGFjY2Vzc2libGUgb25seSBieSB1c2VycyB3aXRoIHJvbGUgQURNSU4gYW5kIEFQUC4gCgpgUE9TVCAvd29yZHMvYAoKQWRkIGEgbmV3IHdvcmQgdG8gZGF0YWJhc2UKCmBHRVQgL3dvcmRzL2AKCkdldCBhbGwgd29yZHMgYWRkZWQgYnkgY3VycmVudCB1c2VyCgpgR0VUIC93b3Jkcy97aWR9YAoKR2V0IHdvcmQgd2l0aCBge2lkfWAKCmBQT1NUIC9jaGVjay9gCgpTZW5kIHRleHQgdG8gY2hlY2suCgpBbGwgIHdvcmRzIHRoYXQgYXJlIGRldGVjdGVkIHRvIGJlIHNwb29mZWQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIGA8JSVhbWJpZ2x5cGgtZGV0ZWN0ZWQ+YCoqbnVtKipgPGFtYmlnbHlwaC1kZXRlY3RlZCUlPmAsIHdoZXJlICoqbnVtKiogLSB0aGUgbnVtYmVyIG9mIGEgZGV0ZWN0aW9uLgoKQWxzbywgaWYgdGhlIG51bWJlciBvZiBzdWdnZXN0ZWQgd29yZCBpcyBoaWdoZXIgdGhhbiBnaXZlbiBsaW1pdCBhbmQgdGhlcmUgaXMgYSBsZXR0ZXIgdGhhdCBpcyBpbiB0aGUgaG9tb2dseXBoIGRhdGFiYXNlLCB0aGUgbGV0dGVyIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBgPCUlYW1iaWdseXBoLXdhcm5pbmc+YCoqbnVtKipgPGFtYmlnbHlwaC13YXJuaW5nJSU+YCAsIHdoZXJlICoqbnVtKiogLSB0aGUgbnVtYmVyIG9mIGEgd2FybmluZy4KCkluIGNhc2Ugb2YgYW55IGRldGVjdGlvbiBvciB3YXJuaW5nIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGluIHRoZSByZXNwb25zZSB3aWxsIGJlIG1hcmtlZCBhcyB0cnVlLgoKRXhhbXBsZToKCiFbZGV0ZWN0aW9uXShkb2MvZGV0ZWN0aW9uLmpwZykKCkZvciBtb3JlIHJlcXVlc3RzIGFuZCB0aGVpciBzdHJ1Y3R1cmUgYXMgd2VsbCBhcyB0aGVpciBzdXBwb3NlZCBvdXRwdXQsIHBsZWFzZSB0YWtlIGludG8gY29uc2lkZXJhdGlvbiBjb250cm9sbGVycyBhbmQgRFRPIGluIHNvdXJjZSBjb2RlLgoKVGhlIGtleSBwb2ludCBvZiBzZXBhcmF0aW5nIGRhdGFiYXNlIHVzZXJzIGlzIHRvIGFkZCBhbiBhYmlsaXR5IHRvIGFkZCB3b3JkcyB0aGF0IHRoZXkgdXNlIHJlZ3VsYXJseSwgYnV0IHRoaXMgd29yZHMgc3BlY2lmaWMgYW5kIGl0IGlzIGltcG9zc2libGUgdG8gYWRkIHRoZW0gdG8gdGhlIHNoYXJlZCBkYXRhYmFzZS4gRXhhbXBsZToKCiAhW3NwZWNfbm9fZGV0ZWN0aW9uXShkb2Mvc3BlY19ub19kZXRlY3Rpb24uanBnKQoKVGhlcmUgaXMgbm8gZGV0ZWN0aW9uIHNpbmNlIHRoZSB3b3JkIHdhc24ndCBmb3VuZCBpbiBkYXRhYmFzZSBhdCBhbGwgYnV0IGl0IGl0cyBvYmZ1c2NhdGUgaXQuIEhvd2V2ZXIsIGJ5IGFkZGluZyB0aGUgb3JpZ2luYWwgd29yZCB0byBkYXRhYmFzZSB3aWxsIGhlbHAgdG8gYWRkcmVzcyB0aGUgcHJvYmxlbS4KCiFbZGV0ZWN0aW9uXShkb2Mvc3BlY19kZXRlY3Rpb24uanBnKQo= readmeEtag: '"753a7d5f713aaf3f98963801d9acdc050616ca34"' readmeLastModified: Tue, 28 Jun 2022 19:03:02 GMT repositoryId: 433987867 description: Homoglyph detection tool (backend) created: '2021-12-01T21:17:06Z' updated: '2024-07-24T13:07:02Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: IZOBRETATEL777 logo: https://avatars.githubusercontent.com/u/32099652?v=4 repoEtag: '"74931a5ab133096fa645e56671411ba40cf1ae08ae6db10a79baff90d01af828"' repoLastModified: Wed, 24 Jul 2024 13:07:02 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/parthasarathydnu/protien-data-visualizer v3: true id: c0cb320d6c68c5c061f5b1767b811488 repositoryMetadata: base64Readme: >- WyFbQnVpbGQgYW5kIFB1c2ggR2Vub1F1ZXJ5LUFQSSBJbWFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3BhcnRoYXNhcmF0aHlkTlUvcHJvdGllbi1kYXRhLXZpc3VhbGl6ZXIvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQtcHVzaC1nZW5vcXVlcnktYXBpLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vcGFydGhhc2FyYXRoeWROVS9wcm90aWVuLWRhdGEtdmlzdWFsaXplci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC1wdXNoLWdlbm9xdWVyeS1hcGkueW1sKQoKIyBbUHJvdGVpbiBEYXNoYm9hcmRdKGh0dHBzOi8vcHJvdGVpbi1kYXNoYm9hcmQtdW5sb2NrLThkeXJ6MzkuZ2FtbWEuc2l0ZS8pCgpUaGlzIHByb2plY3QgaXMgYSBjb21wcmVoZW5zaXZlIHdlYiBhcHBsaWNhdGlvbiBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIGEgcHJvdGVpbiBkYXRhYmFzZS4gSXQgaW5jbHVkZXMgZnVuY3Rpb25hbGl0aWVzIGZvciBjcmVhdGluZywgcmVhZGluZywgdXBkYXRpbmcsIGFuZCBkZWxldGluZyBwcm90ZWluIGRhdGEsIGFzIHdlbGwgYXMgYWR2YW5jZWQgZmVhdHVyZXMgbGlrZSBhbiBBSSBjaGF0Ym90IGZvciBTUUwgcXVlcnkgZ2VuZXJhdGlvbiBhbmQgdmlzdWFsaXphdGlvbnMgdXNpbmcgVGhyZWUuanMuCgojIyBDaGVjayBvdXQgdGhlIGFwcGxpY2F0aW9uCi0gVUkgOiBodHRwczovL2FwcC1nZW4tYmlvbWVkLnBhcnRoYWRocnV2LmNvbS8KLSBBUEk6IGh0dHBzOi8vYXBpLWdlbi1iaW9tZWQucGFydGhhZGhydXYuY29tLwoKIyMgQXJjaGl0ZWN0dXJlCgohW1NhbXBsZSBBcmNoaXRlY3R1cmVdKC4vaW1hZ2VzL1NhbXBsZUFyY2hpdGVjdHVyZS5wbmcpCgojIyBGZWF0dXJlcwoKLSAqKkNSVUQgT3BlcmF0aW9ucyoqOiBDcmVhdGUsIFJlYWQsIFVwZGF0ZSwgYW5kIERlbGV0ZSBwcm90ZWluIGRhdGEuCi0gKipDaGF0Ym90Kio6IEludGVyYWN0IHdpdGggdGhlIHByb3RlaW4gZGF0YWJhc2UgdXNpbmcgbmF0dXJhbCBsYW5ndWFnZS4KLSAqKlZpc3VhbGl6YXRpb25zKio6IDNEIHZpc3VhbGl6YXRpb25zIG9mIHByb3RlaW4gZGF0YSB1c2luZyBUaHJlZS5qcy4KLSAqKkNoYXJ0cyoqOiBWYXJpb3VzIGNoYXJ0cyB0byByZXByZXNlbnQgcHJvdGVpbiBkYXRhIHN0YXRpc3RpY3MuCi0gKipSZXNwb25zaXZlIFVJKio6IEJ1aWx0IHdpdGggUmVhY3QsIFR5cGVTY3JpcHQsIFRhaWx3aW5kIENTUywgYW5kIFNoYWRjbiBVSSBjb21wb25lbnRzLgoKIyMgVGVjaG5vbG9naWVzIFVzZWQKCi0gKipCYWNrZW5kKio6IEZhc3RBUEksIFBvc3RncmVTUUwsIFNRTEFsY2hlbXksIFB5ZGFudGljCi0gKipGcm9udGVuZCoqOiBSZWFjdCwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTLCAgQ2hhcnQuanMsIFRocmVlLmpzCi0gKipBSSBJbnRlZ3JhdGlvbioqOiBPcGVuQUkgR1BULTQKLSAqKkRlcGxveW1lbnQqKjogRG9ja2VyLCBBV1MgRWxhc3RpYyBCZWFuc3RhbGssIEFXUyBSRFMKCiMjIFNjcmVlbnNob3RzCgoqKlByb3RlaW5zIExpc3QqKgoKVGhlIG1haW4gbGFuZGluZyBwYWdlIGZlYXR1cmVzIGEgbGlzdCBvZiBwcm90ZWlucyB3aXRoIGNvbHVtbnMgZm9yIGVudHJ5IElELCBsZW5ndGgsIGZpcnN0IHNlZW4gZGF0ZSwgbGFzdCBzZWVuIGRhdGUsIFBGQU0sIFNNQVJULCBhbmQgYXZlcmFnZSBoeWRyb3Bob2JpY2l0eS4gRWFjaCByb3cgaW5jbHVkZXMgIkVkaXQiIGFuZCAiRGVsZXRlIiBidXR0b25zIGZvciBtYW5hZ2luZyBwcm90ZWluIHJlY29yZHMuCiFbUHJvdGVpbnMgTGlzdF0oLi9pbWFnZXMvbGFuZGluZ1BhZ2UucG5nKQoKKipQcm90ZWluIFN0cnVjdHVyZSBWaXN1YWxpemF0aW9uOioqCgpUaGlzIHNjcmVlbnNob3Qgc2hvd3MgdGhlICIzRCBWaXoiIHRhYiwgd2hlcmUgdGhlIDNEIHZpc3VhbGl6YXRpb24gb2YgdGhlIHByb3RlaW4gc3RydWN0dXJlIGlzIHJlbmRlcmVkLiBUaGUgdmlzdWFsaXphdGlvbiB1c2VzIGRpZmZlcmVudCBjb2xvcnMgdG8gcmVwcmVzZW50IHZhcmlvdXMgZWxlbWVudHMgYW5kIHN0cnVjdHVyZXMgd2l0aGluIHRoZSBwcm90ZWluLCBwcm92aWRpbmcgYW4gaW50ZXJhY3RpdmUgdmlldy4KIVtTdHJ1Y3R1cmVWaXpdKC4vaW1hZ2VzL3Byb3RlaW5TdHJ1Y3R1cmVWaXoucG5nKQoKKipTUUwgQ2hhdCBCb3Q6KioKClRoZSBjaGF0IGludGVyZmFjZSBhbGxvd3MgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0aCBhIFNRTC1iYXNlZCBjaGF0Ym90LiBVc2VycyBjYW4gdHlwZSBxdWVyaWVzIHJlbGF0ZWQgdG8gcHJvdGVpbiBkYXRhLCBhbmQgdGhlIGNoYXRib3QgcmVzcG9uZHMgd2l0aCB0aGUgcmVxdWVzdGVkIGluZm9ybWF0aW9uLiBUaGUgaW50ZXJmYWNlIHNob3dzIGJvdGggdGhlIHVzZXIncyBpbnB1dCBhbmQgdGhlIGNoYXRib3QncyByZXNwb25zZXMsIGZvcm1hdHRlZCBpbiBhIGNvbnZlcnNhdGlvbmFsIHN0eWxlLgohW0FJQ2hhdEJvdF0oL2ltYWdlcy9TUUxDaGF0Qm90LnBuZykKCioqMkQgVmlzdWFsaXphdGlvbnM6KioKClRoZSBzY3JlZW5zaG90IHNob3dzIGEgdGFiYmVkIGludGVyZmFjZSBmb3IgdmlzdWFsaXppbmcgcHJvdGVpbiBkYXRhLiBUaGUgYWN0aXZlIHRhYiwgIkFtaW5vIEFjaWQgQ29tcG9zaXRpb24sIiBkaXNwbGF5cyBhIGJhciBjaGFydCByZXByZXNlbnRpbmcgdGhlIHBlcmNlbnRhZ2UgY29tcG9zaXRpb24gb2YgdmFyaW91cyBhbWlubyBhY2lkcyBpbiB0aGUgcHJvdGVpbi4gT3RoZXIgdGFicyBpbmNsdWRlICJTZWNvbmRhcnkgU3RydWN0dXJlIENvbXBvc2l0aW9uIiBhbmQgIkh5ZHJvcGhvYmljaXR5LCIgcHJvdmlkaW5nIGRpZmZlcmVudCBkYXRhIHZpc3VhbGl6YXRpb25zLgohWzJEIFZpc3VhbGl6YXRpb25zXShpbWFnZXMvMmRWaXN1YWxpemF0aW9ucy5wbmcpCgoKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIFByZXJlcXVpc2l0ZXMKCi0gRG9ja2VyCi0gTm9kZS5qcwotIFB5dGhvbiAzLjkrCi0gUG9zdGdyZVNRTAoKIyMjIEZvbGRlciBTdHJ1Y3R1cmUKCmBgYHNoZWxsCi4K4pSc4pSA4pSAIExJQ0VOU0UK4pSc4pSA4pSAIFJFQURNRS5tZArilJzilIDilIAgaW1hZ2VzIDogVGhpcyBmb2xkZXIgY29udGFpbnMgc2NyZWVuc2hvdHMgZm9yIHRoZSByZWFkbWUgZmlsZQrilJTilIDilIAgcGFja2FnZQogICAg4pSc4pSA4pSAIGFwaSA6IENvZGUgZm9yIHRoZSBBUEkgc2VydmljZQogICAg4pSc4pSA4pSAIGRhc2hib2FyZHMgOiBDb2RlIGZvciB0aGUgZnJvbnRlbmQgCiAgICDilJTilIDilIAgZGF0YUxvYWRpbmcgOiBUb29scyB0byBzZXQgdXAgbG9jYWwgZGF0YWJhc2UKYGBgCgoKIyMjIEVudmlyb25tZW50IFZhcmlhYmxlcwoKIyMjIyBGcm9udG5lZAoKQ3JlYXRlIGEgYC5lbnZgIGZpbGUgaW4gdGhlIGZvbGxvd2luZyBwYXRoIGBwYWNrYWdlL2Rhc2hib2FyZHMvcHJvdGVpbi1kYXNoYm9hcmQvLmVudmAgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnQ6IAoKYGBgZW52ClJFQUNUX0FQUF9BUElfVVJMPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMApgYGAKCiMjIyMgQmFja2VuZAoKQ3JlYXRlIGEgYC5lbnZgIGZpbGUgaW4gdGhlIGZvbGxvd2luZyBwYXRoIGBwYWNrYWdlL2FwaS8uZW52YCB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVudDoKCmBgYGVudgpPUEVOQUlfQVBJX0tFWT15b3VyX29wZW5haV9hcGlfa2V5CkRBVEFCQVNFX1VSTD15b3VyX2RhdGFiYXNlX3VybApgYGAKCiMjIyBMb2NhbCBEZXZlbG9wbWVudAoKMS4gKipCYWNrZW5kIFNldHVwKio6CgogICAgYGBgc2gKICAgIGNkIHBhY2thZ2UvYXBpCiAgICBkb2NrZXIgYnVpbGQgLXQgcHJvdGVpbi1kYXNoYm9hcmQtYmFja2VuZCAuCiAgICBkb2NrZXIgcnVuIC0tZW52LWZpbGUgLmVudiAtcCA4MDAwOjgwMDAgLXYgLi86L2FwcCBwcm90ZWluLWRhc2hib2FyZC1iYWNrZW5kCiAgICBgYGAKCjIuICoqRnJvbnRlbmQgU2V0dXAqKjoKCiAgICBgYGBzaAogICAgY2QgcGFja2FnZS9kYXNoYm9hcmRzL3Byb3RlaW4tZGFzaGJvYXJkCiAgICBucG0gaW5zdGFsbAogICAgbnBtIHN0YXJ0CiAgICBgYGAKCiMjIyBBUEkgRW5kcG9pbnRzCgotICoqR0VUIC9wcm90ZWlucy8qKjogUmV0cmlldmUgYWxsIHByb3RlaW5zCi0gKipHRVQgL3Byb3RlaW5zL3tlbnRyeX0qKjogUmV0cmlldmUgYSBwcm90ZWluIGJ5IGVudHJ5Ci0gKipQT1NUIC9wcm90ZWlucy8qKjogQ3JlYXRlIGEgbmV3IHByb3RlaW4KLSAqKlBVVCAvcHJvdGVpbnMve2VudHJ5fSoqOiBVcGRhdGUgYSBwcm90ZWluCi0gKipERUxFVEUgL3Byb3RlaW5zL3tlbnRyeX0qKjogRGVsZXRlIGEgcHJvdGVpbgotICoqR0VUIC9wcm90ZWluLXN0YXRzL3tlbnRyeX0qKjogR2V0IHN0YXRpc3RpY3MgZm9yIGEgc3BlY2lmaWMgcHJvdGVpbgotICoqUE9TVCAvcXVlcnkvKio6IEdlbmVyYXRlIFNRTCBxdWVyeSB1c2luZyBPcGVuQUkKCiMjIyBEZXBsb3ltZW50CgoxLiAqKkJ1aWxkIGFuZCBQdXNoIERvY2tlciBJbWFnZSoqOgoKICAgIGBgYHNoCiAgICBkb2NrZXIgYnVpbGQgLXQgeW91cl9kb2NrZXJodWJfdXNlcm5hbWUvcHJvdGVpbi1kYXNoYm9hcmQtYmFja2VuZCAuCiAgICBkb2NrZXIgcHVzaCB5b3VyX2RvY2tlcmh1Yl91c2VybmFtZS9wcm90ZWluLWRhc2hib2FyZC1iYWNrZW5kCiAgICBgYGAKCjIuICoqRGVwbG95IG9uIEFXUyBFbGFzdGljIEJlYW5zdGFsayoqOgoKICAgIC0gQ3JlYXRlIGFuIEVsYXN0aWMgQmVhbnN0YWxrIGVudmlyb25tZW50CiAgICAtIENvbmZpZ3VyZSB0aGUgZW52aXJvbm1lbnQgdG8gdXNlIERvY2tlcgogICAgLSBTZXQgdXAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBFbGFzdGljIEJlYW5zdGFsayBjb25maWd1cmF0aW9uCgojIyMgVHJvdWJsZXNob290aW5nCgotICoqQ09SUyBJc3N1ZXMqKjogRW5zdXJlIENPUlMgbWlkZGxld2FyZSBpcyBjb3JyZWN0bHkgc2V0IHVwIGluIEZhc3RBUEkuCi0gKipTU0wgVGVybWluYXRpb24qKjogTWFrZSBzdXJlIHRoZSBsb2FkIGJhbGFuY2VyIGlzIHByb3Blcmx5IGNvbmZpZ3VyZWQgZm9yIEhUVFBTLgoKIyMjIENvbnRhY3QKCkZvciBhbnkgcXVlc3Rpb25zIG9yIGlzc3VlcywgcGxlYXNlIGNvbnRhY3QgW3BhcnRoYXNhcmF0aHkuZEBub3J0aGVhc3Rlcm4uZWR1XSBvciBmZWVsIGZyZWUgdG8gcmVhY2ggb3V0IHRvIG1lIG9uIFtMaW5rZWRJbl0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3BhcnRoYWRocnV2LykuCgojIyBMaWNlbnNlClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCg== readmeEtag: '"587351c923235109735dc6da6a5f1e02b86d8635"' readmeLastModified: Sat, 27 Jul 2024 22:32:47 GMT repositoryId: 806921406 description: >- A comprehensive web application designed to interact with a protein database. It includes functionalities for creating, reading, updating, and deleting protein data, as well as advanced features like an AI chatbot for SQL query generation and visualizations using Three.js. created: '2024-05-28T06:50:21Z' updated: '2024-09-02T15:02:32Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 3 owner: parthasarathydNU logo: https://avatars.githubusercontent.com/u/113069126?v=4 license: MIT repoEtag: '"fee753ee7ccda25d2b134090d820b6b2a5e401134757b2325c1c511c50c91341"' repoLastModified: Mon, 02 Sep 2024 15:02:32 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/speakeasy-sdks/template-sdk v3: true id: 8c17078292c83db2e050b190bc267a99 repositoryMetadata: base64Readme: >- IyBUZW1wbGF0ZSBTREsKCjxkaXYgYWxpZ249ImxlZnQiPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9zcGVha2Vhc3lhcGkuZGV2LyI+PGltZyBzcmM9Imh0dHBzOi8vY3VzdG9tLWljb24tYmFkZ2VzLmRlbW9sYWIuY29tL2JhZGdlLy1CdWlsdCUyMEJ5JTIwU3BlYWtlYXN5LTIxMjAxNT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ29Db2xvcj1GQkUzMzEmbG9nbz1zcGVha2Vhc3kmbGFiZWxDb2xvcj01NDU0NTQiIC8+PC9hPiAgIAo8L2Rpdj4KCiMjIEhvdyB0byB1c2UgdGhpcyByZXBvc2l0b3J5CgoqKvCfkYAqKiBUaGlzIHRlbXBsYXRlIHJlcG9zaXRvcnkgaXMgZGVzaWduZWQgdG8gYm9vdHN0cmFwIGEgW1NwZWFrZWFzeSBtYW5hZ2VkIFNESyByZXBvc2l0b3J5XShodHRwczovL3NwZWFrZWFzeWFwaS5kZXYvZG9jcy9jcmVhdGUtY2xpZW50LXNka3MvKSB1c2luZyBHaXRodWIncyByZXBvc2l0b3J5IGNsb25lIGZlYXR1cmUuIE9uY2UgdGhpcyByZXBvc2l0b3J5IGlzIHNldHVwIGl0IHdpbGwgYXV0b21hdGljYWxseSBrZWVwIHlvdXIgU0RLIHVwIHRvIGRhdGUgYW5kIHB1Ymxpc2hlZCB0byBhIHBhY2thZ2UgbWFuYWdlci4gCgoKIyMjIENyZWF0aW5nIGFuIFNESwoKMS4gVG8gZ2V0IHN0YXJ0ZWQsIHNpbXBseSBjbG9uZSB0aGUgcmVwb3NpdG9yeSBieSBjbGlja2luZyBvbiB0aGUgIlVzZSB0ZW1wbGF0ZSIgYnV0dG9uIGFuZCBnaXZlIGl0IGEgbmFtZS4KICAgCiFbU2NyZWVuc2hvdCAyMDIzLTA5LTA2IGF0IDA5IDIwIDUyXShodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LXNka3MvdGVtcGxhdGUtc2RrL2Fzc2V0cy82ODAxNjM1MS9iNGNmNGU0My1kYjRlLTQ1NWEtOTM1OS0wZjA5Zjk0MmI5OTcpCgoyLiBDb25maWd1cmUgdGhlIFNwZWFrZWFzeSB3b3JrZmxvdyB0byBnZW5lcmF0ZSB0aGUgU0RLLiBHbyB0byB0aGUgW2dlbmVyYXRpb24gd29ya2Zsb3cgZmlsZV0oaHR0cHM6Ly9naXRodWIuY29tL3NwZWFrZWFzeS1zZGtzL3RlbXBsYXRlLXNkay9ibG9iL21haW4vLmdpdGh1Yi93b3JrZmxvd3Mvc3BlYWtlYXN5X3Nka19nZW5lcmF0aW9uLnltbCkgYW5kIGNvbmZpZ3VyZSB0aGUgYGxhbmd1YWdlYCwgYG1vZGVgIGFuZCBgbG9jYXRpb25gIG9mIHlvdXIgb3BlbmFwaSBkb2N1bWVudC4gRm9yIGNvbXBsZXRlIGRvY3VtZW50YXRpb24gb24gYWxsIHRoZSBhdmFpbGFibGUgZ2VuZXJhdGlvbiBjb25maWd1cmF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL3d3dy5zcGVha2Vhc3lhcGkuZGV2L2RvY3MvYWR2YW5jZWQtc2V0dXAvc2RrLWF1dG9tYXRpb24pLiBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8gYWRkIGEgYFNQRUFLRUFTWV9BUElfS0VZYCBhcyBhIHJlcG9zaXRvcnkgc2VjcmV0LiBJZiB5b3UgZG9uJ3QgYWxyZWFkeSBoYXZlIGEga2V5IHlvdSBjYW4gZ2V0IG9uZSBieSBtYWtpbmcgYSB3b3Jrc3BhY2Ugb24gU3BlYWtlYXN5IFtoZXJlXShodHRwczovL2FwcC5zcGVha2Vhc3lhcGkuZGV2LykuCgozLiBDb25maWd1cmUgdGhlIFNwZWFrZWFzeSB3b3JrZmxvdyB0byBwdWJsaXNoIHRoZSBTREsuIEdvIHRvIHRoZSBbcHVibGlzaGluZyB3b3JrZmxvdyBmaWxlXShodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LXNka3MvdGVtcGxhdGUtc2RrL2Jsb2IvbWFpbi8uZ2l0aHViL3dvcmtmbG93cy9zcGVha2Vhc3lfc2RrX3B1Ymxpc2gueW1sKSBhbmQgY29uZmlndXJlIGFueSByZWxldmFudCBwYWNrYWdlIG1hbmFnZXIgY3JlZGVudGlhbHMgYXMgcmVwb3NpdG9yeSBzZWNyZXRzLiBGb3IgY29tcGxldGUgZG9jdW1lbnRhdGlvbiBvbiBhbGwgdGhlIGF2YWlsYWJsZSBwdWJsaXNoaW5nIGNvbmZpZ3VyYXRpb25zLCBzZWUgW2hlcmVdKGh0dHBzOi8vd3d3LnNwZWFrZWFzeWFwaS5kZXYvZG9jcy9wcm9kdWN0aW9uaXplLXNka3MvcHVibGlzaC1zZGtzKS4KCjQuIENvbmZpZ3VyZSB0aGUgZ2VuZXJhdGlvbiBieSBlZGl0aW5nIHRoZSBgZ2VuLnlhbWxgIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHJlcG8uIFRoaXMgZmlsZSBjb250cm9scyB0aGUgZ2VuZXJhdG9yIGFuZCBkZXRlcm1pbmVzIHZhcmlvdXMgYXR0cmlidXRlcyBvZiB0aGUgU0RLIGxpa2UgYHBhY2thZ2VOYW1lYCwgYHNka0NsYXNzTmFtZWAsIGlubGluaW5nIG9mIHBhcmFtZXRlcnMsIGFuZCBvdGhlciBlcmdvbm9taWNzLgoKNS4gRmluYWxseSBnbyB0byB0aGUgQWN0aW9ucyB0YWIsIGNob29zZSB0aGUgZ2VuZXJhdGlvbiB3b3JrZmxvdyBhbmQgY2xpY2sgIkZvcmNlIEdlbmVyYXRlIi4gVGhpcyB3aWxsIHRyaWdnZXIgYSBuZXcgZ2VuZXJhdGlvbiBvZiB5b3VyIFNESyB1c2luZyB0aGUgY29uZmlndXJhdGlvbiB5b3UgcHJvdmlkZWQgYWJvdmUuIERlcGVuZGluZyBvbiB3aGV0aGVyIHlvdSBjb25maWd1cmVkIGBwcmAgb3IgYGRpcmVjdGAgbW9kZSBhYm92ZSB5b3VyIHVwZGF0ZWQgU0RLIHdpbGwgYXBwZWFyIGluIFBSIG9yIGluIHRoZSBtYWluIGJyYW5jaC4KCiFbU2NyZWVuc2hvdCAyMDIzLTA5LTA2IGF0IDEwIDAxIDQ2XShodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LXNka3MvdGVtcGxhdGUtc2RrL2Fzc2V0cy82ODAxNjM1MS8zNTgyODk4Mi1jNmRlLTRhNWMtODRmNS1hZTJiNDIyNGNlY2UpCgrwn5qAIFlvdSBzaG91bGQgaGF2ZSBhIHdvcmtpbmcgU0RLIGZvciB5b3VyIEFQSSDwn5mCIC4gVG8gY2hlY2sgb3V0IGFsbCB0aGUgZmVhdHVyZXMgb2YgdGhlIFNESyBwbGVhc2Ugc2VlIG91ciBkb2NzIFtzaXRlXShodHRwczovL3NwZWFrZWFzeWFwaS5kZXYvZG9jcy9jcmVhdGUtY2xpZW50LXNka3MvKS4KCiMjIyBMb2NhbCBkZXZlbG9wbWVudAoKT25jZSB5b3UgaGF2ZSB0aGUgU0RLIHNldHVwIHlvdSBtYXkgd2FudCB0byBpdGVyYXRlIG9uIHRoZSBTREsuIFNwZWFrZWFzeSBzdXBwb3J0cyBPcGVuQVBJIHZlbmRvciBleHRlbnNpb25zIHRoYXQgY2FuIGJlIGFkZGVkIHRvIHlvdXIgc3BlYyB0byBjdXN0b21pemUgdGhlIFNESyBlcmdvbm9taWNzIChtZXRob2QgbmFtZXMsIG5hbWVzcGFjaW5nIHJlc291cmNlcyBldGMuKSBhbmQgZnVuY3Rpb25hbGl0eSAoYWRkaW5nIHJldHJpZXMsIHBhZ2luYXRpb24sIG11bHRpcGxlIHNlcnZlciBzdXBwb3J0IGV0YykKClRvIGdldCBzdGFydGVkIGluc3RhbGwgdGhlIFNwZWFrZWFzeSBDTEkuCgpJbiB5b3VyIHRlcm1pbmFsLCBydW46CgpgYGBiYXNoCmJyZXcgaW5zdGFsbCBzcGVha2Vhc3ktYXBpL2hvbWVicmV3LXRhcC9zcGVha2Vhc3kKYGBgCk9uY2UgeW91IGFubm9uYXRlIHlvdXIgc3BlYyB3aXRoIGFuIGV4dGVuc2lvbiB5b3Ugd2lsbCB3YW50IHRvIHJ1biBgc3BlYWtlYXN5IHZhbGlkYXRlYCB0byBjaGVjayB0aGUgc3BlYyBmb3IgY29ycmVjdG5lc3MgYW5kIGBzcGVha2Vhc3kgZ2VuZXJhdGVgIHRvIHJlY3JlYXRlIHRoZSBTREsgbG9jYWxseS4gTW9yZSBkb2N1bWVudGF0aW9uIG9uIE9wZW5BUEkgZXh0ZW5zaW9ucyBbaGVyZV0oaHR0cHM6Ly9zcGVha2Vhc3lhcGkuZGV2L2RvY3MvY3VzdG9taXplLXNka3MvbmFtZXNwYWNlcy8pLiBIZXJlJ3MgYW4gZXhhbXBsZSBvZiBhZGRpbmcgYSBtdWx0aXBsZSBzZXJ2ZXIgc3VwcG9ydCB0byB0aGUgc3BlYyBzbyB0aGF0IHlvdXIgU0RLIHN1cHBvcnRzIHByb2R1Y3Rpb24gYW5kIHNhbmRib3ggdmVyc2lvbnMgb2YgeW91ciBBUEkuIAoKYGBgeWFtbAppbmZvOgogIHRpdGxlOiBFeGFtcGxlCiAgdmVyc2lvbjogMC4wLjEKc2VydmVyczoKICAtIHVybDogaHR0cHM6Ly9wcm9kLmV4YW1wbGUuY29tICMgVXNlZCBhcyB0aGUgZGVmYXVsdCBVUkwgYnkgdGhlIFNESwogICAgZGVzY3JpcHRpb246IE91ciBwcm9kdWN0aW9uIGVudmlyb25tZW50CiAgICB4LXNwZWFrZWFzeS1zZXJ2ZXItaWQ6IHByb2QKICAtIHVybDogaHR0cHM6Ly9zYW5kYm94LmV4YW1wbGUuY29tCiAgICBkZXNjcmlwdGlvbjogT3VyIHNhbmRib3ggZW52aXJvbm1lbnQKICAgIHgtc3BlYWtlYXN5LXNlcnZlci1pZDogc2FuZGJveApgYGAKCk9uY2UgeW91J3JlIGZpbmlzaGVkIGl0ZXJhdGluZyBhbmQgaGFwcHkgd2l0aCB0aGUgb3V0cHV0IHB1c2ggb25seSB0aGUgbGF0ZXN0IHZlcnNpb24gb2Ygc3BlYyBpbnRvIHRoZSByZXBvIGFuZCByZWdlbmVyYXRlIHRoZSBTREsgdXNpbmcgc3RlcCA2IGFib3ZlLgoKPCEtLSBTdGFydCBTREsgSW5zdGFsbGF0aW9uIFtpbnN0YWxsYXRpb25dIC0tPgojIyBTREsgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCnBpcCBpbnN0YWxsIGdpdCtodHRwczovL2dpdGh1Yi5jb20vc3BlYWtlYXN5LXNka3MvdGVtcGxhdGUtc2RrLmdpdApgYGAKPCEtLSBFbmQgU0RLIEluc3RhbGxhdGlvbiBbaW5zdGFsbGF0aW9uXSAtLT4KCjwhLS0gU3RhcnQgU0RLIEV4YW1wbGUgVXNhZ2UgW3VzYWdlXSAtLT4KIyMgU0RLIEV4YW1wbGUgVXNhZ2UKCiMjIyBTaWduIGluCgpGaXJzdCB5b3UgbmVlZCB0byBzZW5kIGFuIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3QgdG8gdGhlIEFQSSBieSBwcm92aWRpbmcgeW91ciB1c2VybmFtZSBhbmQgcGFzc3dvcmQuCkluIHRoZSByZXF1ZXN0IGJvZHksIHlvdSBzaG91bGQgc3BlY2lmeSB0aGUgdHlwZSBvZiB0b2tlbiB5b3Ugd291bGQgbGlrZSB0byByZWNlaXZlOiBBUEkga2V5IG9yIEpTT04gV2ViIFRva2VuLgpJZiB5b3VyIGNyZWRlbnRpYWxzIGFyZSB2YWxpZCwgeW91IHdpbGwgcmVjZWl2ZSBhIHRva2VuIGluIHRoZSByZXNwb25zZSBvYmplY3Q6IGByZXMub2JqZWN0LnRva2VuOiBzdHJgLgoKYGBgcHl0aG9uCmltcG9ydCBzcGVha2Vhc3liYXIKZnJvbSBzcGVha2Vhc3liYXIubW9kZWxzIGltcG9ydCBvcGVyYXRpb25zCgpzID0gc3BlYWtlYXN5YmFyLlNwZWFrZWFzeWJhcigpCgpyZXEgPSBvcGVyYXRpb25zLkxvZ2luUmVxdWVzdEJvZHkoCiAgICB0eXBlPW9wZXJhdGlvbnMuVHlwZS5BUElfS0VZLAopCgpyZXMgPSBzLmF1dGhlbnRpY2F0aW9uLmxvZ2luKHJlcSwgb3BlcmF0aW9ucy5Mb2dpblNlY3VyaXR5KAogICAgcGFzc3dvcmQ9IjxQQVNTV09SRD4iLAogICAgdXNlcm5hbWU9IjxVU0VSTkFNRT4iLAopKQoKaWYgcmVzLm9iamVjdCBpcyBub3QgTm9uZToKICAgICMgaGFuZGxlIHJlc3BvbnNlCiAgICBwYXNzCgpgYGAKCiMjIyBCcm93c2UgYXZhaWxhYmxlIGRyaW5rcwoKT25jZSB5b3UgYXJlIGF1dGhlbnRpY2F0ZWQsIHlvdSBjYW4gdXNlIHRoZSB0b2tlbiB5b3UgcmVjZWl2ZWQgZm9yIGFsbCBvdGhlciBhdXRoZW50aWNhdGVkIGVuZHBvaW50cy4KRm9yIGV4YW1wbGUsIHlvdSBjYW4gZmlsdGVyIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBkcmlua3MgYnkgdHlwZS4KCmBgYHB5dGhvbgppbXBvcnQgc3BlYWtlYXN5YmFyCmZyb20gc3BlYWtlYXN5YmFyLm1vZGVscyBpbXBvcnQgc2hhcmVkCgpzID0gc3BlYWtlYXN5YmFyLlNwZWFrZWFzeWJhcigKICAgIHNlY3VyaXR5PXNoYXJlZC5TZWN1cml0eSgKICAgICAgICBhcGlfa2V5PSI8WU9VUl9BUElfS0VZPiIsCiAgICApLAopCgoKcmVzID0gcy5kcmlua3MubGlzdF9kcmlua3MoZHJpbmtfdHlwZT1zaGFyZWQuRHJpbmtUeXBlLlNQSVJJVCkKCmlmIHJlcy5jbGFzc2VzIGlzIG5vdCBOb25lOgogICAgIyBoYW5kbGUgcmVzcG9uc2UKICAgIHBhc3MKCmBgYAoKIyMjIENyZWF0ZSBhbiBvcmRlcgoKV2hlbiB5b3Ugc3VibWl0IGFuIG9yZGVyLCB5b3UgY2FuIGluY2x1ZGUgYSBjYWxsYmFjayBVUkwgYWxvbmcgeW91ciByZXF1ZXN0LgpUaGlzIFVSTCB3aWxsIGdldCBjYWxsZWQgd2hlbmV2ZXIgdGhlIHN1cHBsaWVyIHVwZGF0ZXMgdGhlIHN0YXR1cyBvZiB5b3VyIG9yZGVyLgoKYGBgcHl0aG9uCmltcG9ydCBzcGVha2Vhc3liYXIKZnJvbSBzcGVha2Vhc3liYXIubW9kZWxzIGltcG9ydCBzaGFyZWQKCnMgPSBzcGVha2Vhc3liYXIuU3BlYWtlYXN5YmFyKAogICAgc2VjdXJpdHk9c2hhcmVkLlNlY3VyaXR5KAogICAgICAgIGFwaV9rZXk9IjxZT1VSX0FQSV9LRVk+IiwKICAgICksCikKCgpyZXMgPSBzLm9yZGVycy5jcmVhdGVfb3JkZXIocmVxdWVzdF9ib2R5PVsKICAgIHNoYXJlZC5PcmRlcklucHV0KAogICAgICAgIHByb2R1Y3RfY29kZT0nQVBNLTFGMkQzJywKICAgICAgICBxdWFudGl0eT0yNjUzNSwKICAgICAgICB0eXBlPXNoYXJlZC5PcmRlclR5cGUuRFJJTkssCiAgICApLApdLCBjYWxsYmFja191cmw9Jzx2YWx1ZT4nKQoKaWYgcmVzLm9yZGVyIGlzIG5vdCBOb25lOgogICAgIyBoYW5kbGUgcmVzcG9uc2UKICAgIHBhc3MKCmBgYAoKIyMjIFN1YnNjcmliZSB0byB3ZWJob29rcyB0byByZWNlaXZlIHN0b2NrIHVwZGF0ZXMKCmBgYHB5dGhvbgppbXBvcnQgc3BlYWtlYXN5YmFyCmZyb20gc3BlYWtlYXN5YmFyLm1vZGVscyBpbXBvcnQgb3BlcmF0aW9ucywgc2hhcmVkCgpzID0gc3BlYWtlYXN5YmFyLlNwZWFrZWFzeWJhcigKICAgIHNlY3VyaXR5PXNoYXJlZC5TZWN1cml0eSgKICAgICAgICBhcGlfa2V5PSI8WU9VUl9BUElfS0VZPiIsCiAgICApLAopCgpyZXEgPSBbCiAgICBvcGVyYXRpb25zLlJlcXVlc3RCb2R5KCksCl0KCnJlcyA9IHMuY29uZmlnLnN1YnNjcmliZV90b193ZWJob29rcyhyZXEpCgppZiByZXMgaXMgbm90IE5vbmU6CiAgICAjIGhhbmRsZSByZXNwb25zZQogICAgcGFzcwoKYGBgCjwhLS0gRW5kIFNESyBFeGFtcGxlIFVzYWdlIFt1c2FnZV0gLS0+Cgo8IS0tIFN0YXJ0IEF2YWlsYWJsZSBSZXNvdXJjZXMgYW5kIE9wZXJhdGlvbnMgW29wZXJhdGlvbnNdIC0tPgojIyBBdmFpbGFibGUgUmVzb3VyY2VzIGFuZCBPcGVyYXRpb25zCgojIyMgW2F1dGhlbnRpY2F0aW9uXShkb2NzL3Nka3MvYXV0aGVudGljYXRpb24vUkVBRE1FLm1kKQoKKiBbbG9naW5dKGRvY3Mvc2Rrcy9hdXRoZW50aWNhdGlvbi9SRUFETUUubWQjbG9naW4pIC0gQXV0aGVudGljYXRlIHdpdGggdGhlIEFQSSBieSBwcm92aWRpbmcgYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuCgojIyMgW2RyaW5rc10oZG9jcy9zZGtzL2RyaW5rcy9SRUFETUUubWQpCgoqIFtnZXRfZHJpbmtdKGRvY3Mvc2Rrcy9kcmlua3MvUkVBRE1FLm1kI2dldF9kcmluaykgLSBHZXQgYSBkcmluay4KKiBbbGlzdF9kcmlua3NdKGRvY3Mvc2Rrcy9kcmlua3MvUkVBRE1FLm1kI2xpc3RfZHJpbmtzKSAtIEdldCBhIGxpc3Qgb2YgZHJpbmtzLgoKIyMjIFtpbmdyZWRpZW50c10oZG9jcy9zZGtzL2luZ3JlZGllbnRzL1JFQURNRS5tZCkKCiogW2xpc3RfaW5ncmVkaWVudHNdKGRvY3Mvc2Rrcy9pbmdyZWRpZW50cy9SRUFETUUubWQjbGlzdF9pbmdyZWRpZW50cykgLSBHZXQgYSBsaXN0IG9mIGluZ3JlZGllbnRzLgoKIyMjIFtvcmRlcnNdKGRvY3Mvc2Rrcy9vcmRlcnMvUkVBRE1FLm1kKQoKKiBbY3JlYXRlX29yZGVyXShkb2NzL3Nka3Mvb3JkZXJzL1JFQURNRS5tZCNjcmVhdGVfb3JkZXIpIC0gQ3JlYXRlIGFuIG9yZGVyLgoKIyMjIFtjb25maWddKGRvY3Mvc2Rrcy9jb25maWcvUkVBRE1FLm1kKQoKKiBbc3Vic2NyaWJlX3RvX3dlYmhvb2tzXShkb2NzL3Nka3MvY29uZmlnL1JFQURNRS5tZCNzdWJzY3JpYmVfdG9fd2ViaG9va3MpIC0gU3Vic2NyaWJlIHRvIHdlYmhvb2tzLgo8IS0tIEVuZCBBdmFpbGFibGUgUmVzb3VyY2VzIGFuZCBPcGVyYXRpb25zIFtvcGVyYXRpb25zXSAtLT4KCgoKPCEtLSBTdGFydCBSZXRyaWVzIFtyZXRyaWVzXSAtLT4KIyMgUmV0cmllcwoKU29tZSBvZiB0aGUgZW5kcG9pbnRzIGluIHRoaXMgU0RLIHN1cHBvcnQgcmV0cmllcy4gSWYgeW91IHVzZSB0aGUgU0RLIHdpdGhvdXQgYW55IGNvbmZpZ3VyYXRpb24sIGl0IHdpbGwgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IHJldHJ5IHN0cmF0ZWd5IHByb3ZpZGVkIGJ5IHRoZSBBUEkuIEhvd2V2ZXIsIHRoZSBkZWZhdWx0IHJldHJ5IHN0cmF0ZWd5IGNhbiBiZSBvdmVycmlkZGVuIG9uIGEgcGVyLW9wZXJhdGlvbiBiYXNpcywgb3IgYWNyb3NzIHRoZSBlbnRpcmUgU0RLLgoKVG8gY2hhbmdlIHRoZSBkZWZhdWx0IHJldHJ5IHN0cmF0ZWd5IGZvciBhIHNpbmdsZSBBUEkgY2FsbCwgc2ltcGx5IHByb3ZpZGUgYSBgUmV0cnlDb25maWdgIG9iamVjdCB0byB0aGUgY2FsbDoKYGBgcHl0aG9uCmltcG9ydCBzcGVha2Vhc3liYXIKZnJvbSBzcGVha2Vhc3liYXIubW9kZWxzIGltcG9ydCBvcGVyYXRpb25zLCBzaGFyZWQKZnJvbSBzcGVha2Vhc3liYXIudXRpbHMgaW1wb3J0IEJhY2tvZmZTdHJhdGVneSwgUmV0cnlDb25maWcKCnMgPSBzcGVha2Vhc3liYXIuU3BlYWtlYXN5YmFyKAogICAgc2VjdXJpdHk9c2hhcmVkLlNlY3VyaXR5KAogICAgICAgIGFwaV9rZXk9IjxZT1VSX0FQSV9LRVk+IiwKICAgICksCikKCnJlcSA9IFsKICAgIG9wZXJhdGlvbnMuUmVxdWVzdEJvZHkoKSwKXQoKcmVzID0gcy5jb25maWcuc3Vic2NyaWJlX3RvX3dlYmhvb2tzKHJlcSwKICAgIFJldHJ5Q29uZmlnKCdiYWNrb2ZmJywgQmFja29mZlN0cmF0ZWd5KDEsIDUwLCAxLjEsIDEwMCksIEZhbHNlKSkKCmlmIHJlcyBpcyBub3QgTm9uZToKICAgICMgaGFuZGxlIHJlc3BvbnNlCiAgICBwYXNzCgpgYGAKCklmIHlvdSdkIGxpa2UgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcmV0cnkgc3RyYXRlZ3kgZm9yIGFsbCBvcGVyYXRpb25zIHRoYXQgc3VwcG9ydCByZXRyaWVzLCB5b3UgY2FuIHVzZSB0aGUgYHJldHJ5X2NvbmZpZ2Agb3B0aW9uYWwgcGFyYW1ldGVyIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBTREs6CmBgYHB5dGhvbgppbXBvcnQgc3BlYWtlYXN5YmFyCmZyb20gc3BlYWtlYXN5YmFyLm1vZGVscyBpbXBvcnQgb3BlcmF0aW9ucywgc2hhcmVkCmZyb20gc3BlYWtlYXN5YmFyLnV0aWxzIGltcG9ydCBCYWNrb2ZmU3RyYXRlZ3ksIFJldHJ5Q29uZmlnCgpzID0gc3BlYWtlYXN5YmFyLlNwZWFrZWFzeWJhcigKICAgIHJldHJ5X2NvbmZpZz1SZXRyeUNvbmZpZygnYmFja29mZicsIEJhY2tvZmZTdHJhdGVneSgxLCA1MCwgMS4xLCAxMDApLCBGYWxzZSkKICAgIHNlY3VyaXR5PXNoYXJlZC5TZWN1cml0eSgKICAgICAgICBhcGlfa2V5PSI8WU9VUl9BUElfS0VZPiIsCiAgICApLAopCgpyZXEgPSBbCiAgICBvcGVyYXRpb25zLlJlcXVlc3RCb2R5KCksCl0KCnJlcyA9IHMuY29uZmlnLnN1YnNjcmliZV90b193ZWJob29rcyhyZXEpCgppZiByZXMgaXMgbm90IE5vbmU6CiAgICAjIGhhbmRsZSByZXNwb25zZQogICAgcGFzcwoKYGBgCjwhLS0gRW5kIFJldHJpZXMgW3JldHJpZXNdIC0tPgoKCgo8IS0tIFN0YXJ0IEVycm9yIEhhbmRsaW5nIFtlcnJvcnNdIC0tPgojIyBFcnJvciBIYW5kbGluZwoKSGFuZGxpbmcgZXJyb3JzIGluIHRoaXMgU0RLIHNob3VsZCBsYXJnZWx5IG1hdGNoIHlvdXIgZXhwZWN0YXRpb25zLiAgQWxsIG9wZXJhdGlvbnMgcmV0dXJuIGEgcmVzcG9uc2Ugb2JqZWN0IG9yIHJhaXNlIGFuIGVycm9yLiAgSWYgRXJyb3Igb2JqZWN0cyBhcmUgc3BlY2lmaWVkIGluIHlvdXIgT3BlbkFQSSBTcGVjLCB0aGUgU0RLIHdpbGwgcmFpc2UgdGhlIGFwcHJvcHJpYXRlIEVycm9yIHR5cGUuCgp8IEVycm9yIE9iamVjdCAgICAgIHwgU3RhdHVzIENvZGUgICAgICAgfCBDb250ZW50IFR5cGUgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tIHwKfCBlcnJvcnMuQmFkUmVxdWVzdCB8IDQwMCAgICAgICAgICAgICAgIHwgYXBwbGljYXRpb24vanNvbiAgfAp8IGVycm9ycy5BUElFcnJvciAgIHwgNVhYICAgICAgICAgICAgICAgfCBhcHBsaWNhdGlvbi9qc29uICB8CnwgZXJyb3JzLlNES0Vycm9yICAgfCA0eHgtNXh4ICAgICAgICAgICB8ICovKiAgICAgICAgICAgICAgIHwKCiMjIyBFeGFtcGxlCgpgYGBweXRob24KaW1wb3J0IHNwZWFrZWFzeWJhcgpmcm9tIHNwZWFrZWFzeWJhci5tb2RlbHMgaW1wb3J0IGVycm9ycywgb3BlcmF0aW9ucywgc2hhcmVkCgpzID0gc3BlYWtlYXN5YmFyLlNwZWFrZWFzeWJhcigKICAgIHNlY3VyaXR5PXNoYXJlZC5TZWN1cml0eSgKICAgICAgICBhcGlfa2V5PSI8WU9VUl9BUElfS0VZPiIsCiAgICApLAopCgpyZXEgPSBbCiAgICBvcGVyYXRpb25zLlJlcXVlc3RCb2R5KCksCl0KCnJlcyA9IE5vbmUKdHJ5OgogICAgcmVzID0gcy5jb25maWcuc3Vic2NyaWJlX3RvX3dlYmhvb2tzKHJlcSkKZXhjZXB0IGVycm9ycy5CYWRSZXF1ZXN0IGFzIGU6CiAgICAjIGhhbmRsZSBleGNlcHRpb24KICAgIHJhaXNlKGUpCmV4Y2VwdCBlcnJvcnMuQVBJRXJyb3IgYXMgZToKICAgICMgaGFuZGxlIGV4Y2VwdGlvbgogICAgcmFpc2UoZSkKZXhjZXB0IGVycm9ycy5TREtFcnJvciBhcyBlOgogICAgIyBoYW5kbGUgZXhjZXB0aW9uCiAgICByYWlzZShlKQoKaWYgcmVzIGlzIG5vdCBOb25lOgogICAgIyBoYW5kbGUgcmVzcG9uc2UKICAgIHBhc3MKCmBgYAo8IS0tIEVuZCBFcnJvciBIYW5kbGluZyBbZXJyb3JzXSAtLT4KCgoKPCEtLSBTdGFydCBTZXJ2ZXIgU2VsZWN0aW9uIFtzZXJ2ZXJdIC0tPgojIyBTZXJ2ZXIgU2VsZWN0aW9uCgojIyMgU2VsZWN0IFNlcnZlciBieSBOYW1lCgpZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHNlcnZlciBnbG9iYWxseSBieSBwYXNzaW5nIGEgc2VydmVyIG5hbWUgdG8gdGhlIGBzZXJ2ZXI6IHN0cmAgb3B0aW9uYWwgcGFyYW1ldGVyIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBTREsgY2xpZW50IGluc3RhbmNlLiBUaGUgc2VsZWN0ZWQgc2VydmVyIHdpbGwgdGhlbiBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IG9uIHRoZSBvcGVyYXRpb25zIHRoYXQgdXNlIGl0LiBUaGlzIHRhYmxlIGxpc3RzIHRoZSBuYW1lcyBhc3NvY2lhdGVkIHdpdGggdGhlIGF2YWlsYWJsZSBzZXJ2ZXJzOgoKfCBOYW1lIHwgU2VydmVyIHwgVmFyaWFibGVzIHwKfCAtLS0tLSB8IC0tLS0tLSB8IC0tLS0tLS0tLSB8CnwgYHByb2RgIHwgYGh0dHBzOi8vc3BlYWtlYXN5LmJhcmAgfCBOb25lIHwKfCBgc3RhZ2luZ2AgfCBgaHR0cHM6Ly9zdGFnaW5nLnNwZWFrZWFzeS5iYXJgIHwgTm9uZSB8CnwgYGN1c3RvbWVyYCB8IGBodHRwczovL3tvcmdhbml6YXRpb259LntlbnZpcm9ubWVudH0uc3BlYWtlYXN5LmJhcmAgfCBgZW52aXJvbm1lbnRgIChkZWZhdWx0IGlzIGBwcm9kYCksIGBvcmdhbml6YXRpb25gIChkZWZhdWx0IGlzIGBhcGlgKSB8CgojIyMjIEV4YW1wbGUKCmBgYHB5dGhvbgppbXBvcnQgc3BlYWtlYXN5YmFyCmZyb20gc3BlYWtlYXN5YmFyLm1vZGVscyBpbXBvcnQgc2hhcmVkCgpzID0gc3BlYWtlYXN5YmFyLlNwZWFrZWFzeWJhcigKICAgIHNlcnZlcj0iY3VzdG9tZXIiLAogICAgc2VjdXJpdHk9c2hhcmVkLlNlY3VyaXR5KAogICAgICAgIGFwaV9rZXk9IjxZT1VSX0FQSV9LRVk+IiwKICAgICksCikKCgpyZXMgPSBzLmluZ3JlZGllbnRzLmxpc3RfaW5ncmVkaWVudHMoaW5ncmVkaWVudHM9WwogICAgJzx2YWx1ZT4nLApdKQoKaWYgcmVzLmNsYXNzZXMgaXMgbm90IE5vbmU6CiAgICAjIGhhbmRsZSByZXNwb25zZQogICAgcGFzcwoKYGBgCgojIyMjIFZhcmlhYmxlcwoKU29tZSBvZiB0aGUgc2VydmVyIG9wdGlvbnMgYWJvdmUgY29udGFpbiB2YXJpYWJsZXMuIElmIHlvdSB3YW50IHRvIHNldCB0aGUgdmFsdWVzIG9mIHRob3NlIHZhcmlhYmxlcywgdGhlIGZvbGxvd2luZyBvcHRpb25hbCBwYXJhbWV0ZXJzIGFyZSBhdmFpbGFibGUgd2hlbiBpbml0aWFsaXppbmcgdGhlIFNESyBjbGllbnQgaW5zdGFuY2U6CiAqIGBlbnZpcm9ubWVudDogbW9kZWxzLlNlcnZlckVudmlyb25tZW50YAogKiBgb3JnYW5pemF0aW9uOiBzdHJgCgojIyMgT3ZlcnJpZGUgU2VydmVyIFVSTCBQZXItQ2xpZW50CgpUaGUgZGVmYXVsdCBzZXJ2ZXIgY2FuIGFsc28gYmUgb3ZlcnJpZGRlbiBnbG9iYWxseSBieSBwYXNzaW5nIGEgVVJMIHRvIHRoZSBgc2VydmVyX3VybDogc3RyYCBvcHRpb25hbCBwYXJhbWV0ZXIgd2hlbiBpbml0aWFsaXppbmcgdGhlIFNESyBjbGllbnQgaW5zdGFuY2UuIEZvciBleGFtcGxlOgpgYGBweXRob24KaW1wb3J0IHNwZWFrZWFzeWJhcgpmcm9tIHNwZWFrZWFzeWJhci5tb2RlbHMgaW1wb3J0IHNoYXJlZAoKcyA9IHNwZWFrZWFzeWJhci5TcGVha2Vhc3liYXIoCiAgICBzZXJ2ZXJfdXJsPSJodHRwczovL3NwZWFrZWFzeS5iYXIiLAogICAgc2VjdXJpdHk9c2hhcmVkLlNlY3VyaXR5KAogICAgICAgIGFwaV9rZXk9IjxZT1VSX0FQSV9LRVk+IiwKICAgICksCikKCgpyZXMgPSBzLmluZ3JlZGllbnRzLmxpc3RfaW5ncmVkaWVudHMoaW5ncmVkaWVudHM9WwogICAgJzx2YWx1ZT4nLApdKQoKaWYgcmVzLmNsYXNzZXMgaXMgbm90IE5vbmU6CiAgICAjIGhhbmRsZSByZXNwb25zZQogICAgcGFzcwoKYGBgCgojIyMgT3ZlcnJpZGUgU2VydmVyIFVSTCBQZXItT3BlcmF0aW9uCgpUaGUgc2VydmVyIFVSTCBjYW4gYWxzbyBiZSBvdmVycmlkZGVuIG9uIGEgcGVyLW9wZXJhdGlvbiBiYXNpcywgcHJvdmlkZWQgYSBzZXJ2ZXIgbGlzdCB3YXMgc3BlY2lmaWVkIGZvciB0aGUgb3BlcmF0aW9uLiBGb3IgZXhhbXBsZToKYGBgcHl0aG9uCmltcG9ydCBzcGVha2Vhc3liYXIKZnJvbSBzcGVha2Vhc3liYXIubW9kZWxzIGltcG9ydCBzaGFyZWQKCnMgPSBzcGVha2Vhc3liYXIuU3BlYWtlYXN5YmFyKAogICAgc2VjdXJpdHk9c2hhcmVkLlNlY3VyaXR5KAogICAgICAgIGFwaV9rZXk9IjxZT1VSX0FQSV9LRVk+IiwKICAgICksCikKCgpyZXMgPSBzLmRyaW5rcy5saXN0X2RyaW5rcyhzZXJ2ZXJfdXJsPSJodHRwczovL3NwZWFrZWFzeS5iYXIiLCBkcmlua190eXBlPXNoYXJlZC5Ecmlua1R5cGUuU1BJUklUKQoKaWYgcmVzLmNsYXNzZXMgaXMgbm90IE5vbmU6CiAgICAjIGhhbmRsZSByZXNwb25zZQogICAgcGFzcwoKYGBgCjwhLS0gRW5kIFNlcnZlciBTZWxlY3Rpb24gW3NlcnZlcl0gLS0+CgoKCjwhLS0gU3RhcnQgQ3VzdG9tIEhUVFAgQ2xpZW50IFtodHRwLWNsaWVudF0gLS0+CiMjIEN1c3RvbSBIVFRQIENsaWVudAoKVGhlIFB5dGhvbiBTREsgbWFrZXMgQVBJIGNhbGxzIHVzaW5nIHRoZSBbcmVxdWVzdHNdKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9yZXF1ZXN0cy8pIEhUVFAgbGlicmFyeS4gIEluIG9yZGVyIHRvIHByb3ZpZGUgYSBjb252ZW5pZW50IHdheSB0byBjb25maWd1cmUgdGltZW91dHMsIGNvb2tpZXMsIHByb3hpZXMsIGN1c3RvbSBoZWFkZXJzLCBhbmQgb3RoZXIgbG93LWxldmVsIGNvbmZpZ3VyYXRpb24sIHlvdSBjYW4gaW5pdGlhbGl6ZSB0aGUgU0RLIGNsaWVudCB3aXRoIGEgY3VzdG9tIGByZXF1ZXN0cy5TZXNzaW9uYCBvYmplY3QuCgpGb3IgZXhhbXBsZSwgeW91IGNvdWxkIHNwZWNpZnkgYSBoZWFkZXIgZm9yIGV2ZXJ5IHJlcXVlc3QgdGhhdCB0aGlzIHNkayBtYWtlcyBhcyBmb2xsb3dzOgpgYGBweXRob24KaW1wb3J0IHNwZWFrZWFzeWJhcgppbXBvcnQgcmVxdWVzdHMKCmh0dHBfY2xpZW50ID0gcmVxdWVzdHMuU2Vzc2lvbigpCmh0dHBfY2xpZW50LmhlYWRlcnMudXBkYXRlKHsneC1jdXN0b20taGVhZGVyJzogJ3NvbWVWYWx1ZSd9KQpzID0gc3BlYWtlYXN5YmFyLlNwZWFrZWFzeWJhcihjbGllbnQ9aHR0cF9jbGllbnQpCmBgYAo8IS0tIEVuZCBDdXN0b20gSFRUUCBDbGllbnQgW2h0dHAtY2xpZW50XSAtLT4KCgoKPCEtLSBTdGFydCBBdXRoZW50aWNhdGlvbiBbc2VjdXJpdHldIC0tPgojIyBBdXRoZW50aWNhdGlvbgoKIyMjIFBlci1DbGllbnQgU2VjdXJpdHkgU2NoZW1lcwoKVGhpcyBTREsgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBzZWN1cml0eSBzY2hlbWVzIGdsb2JhbGx5OgoKfCBOYW1lICAgICAgICAgIHwgVHlwZSAgICAgICAgICB8IFNjaGVtZSAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8CnwgYGFwaV9rZXlgICAgICB8IGFwaUtleSAgICAgICAgfCBBUEkga2V5ICAgICAgIHwKfCBgYmVhcmVyX2F1dGhgIHwgaHR0cCAgICAgICAgICB8IEhUVFAgQmVhcmVyICAgfAoKWW91IGNhbiBzZXQgdGhlIHNlY3VyaXR5IHBhcmFtZXRlcnMgdGhyb3VnaCB0aGUgYHNlY3VyaXR5YCBvcHRpb25hbCBwYXJhbWV0ZXIgd2hlbiBpbml0aWFsaXppbmcgdGhlIFNESyBjbGllbnQgaW5zdGFuY2UuIFRoZSBzZWxlY3RlZCBzY2hlbWUgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgdG8gYXV0aGVudGljYXRlIHdpdGggdGhlIEFQSSBmb3IgYWxsIG9wZXJhdGlvbnMgdGhhdCBzdXBwb3J0IGl0LiBGb3IgZXhhbXBsZToKYGBgcHl0aG9uCmltcG9ydCBzcGVha2Vhc3liYXIKZnJvbSBzcGVha2Vhc3liYXIubW9kZWxzIGltcG9ydCBzaGFyZWQKCnMgPSBzcGVha2Vhc3liYXIuU3BlYWtlYXN5YmFyKAogICAgc2VjdXJpdHk9c2hhcmVkLlNlY3VyaXR5KAogICAgICAgIGFwaV9rZXk9IjxZT1VSX0FQSV9LRVk+IiwKICAgICksCikKCgpyZXMgPSBzLmluZ3JlZGllbnRzLmxpc3RfaW5ncmVkaWVudHMoaW5ncmVkaWVudHM9WwogICAgJzx2YWx1ZT4nLApdKQoKaWYgcmVzLmNsYXNzZXMgaXMgbm90IE5vbmU6CiAgICAjIGhhbmRsZSByZXNwb25zZQogICAgcGFzcwoKYGBgCgojIyMgUGVyLU9wZXJhdGlvbiBTZWN1cml0eSBTY2hlbWVzCgpTb21lIG9wZXJhdGlvbnMgaW4gdGhpcyBTREsgcmVxdWlyZSB0aGUgc2VjdXJpdHkgc2NoZW1lIHRvIGJlIHNwZWNpZmllZCBhdCB0aGUgcmVxdWVzdCBsZXZlbC4gRm9yIGV4YW1wbGU6CmBgYHB5dGhvbgppbXBvcnQgc3BlYWtlYXN5YmFyCmZyb20gc3BlYWtlYXN5YmFyLm1vZGVscyBpbXBvcnQgb3BlcmF0aW9ucwoKcyA9IHNwZWFrZWFzeWJhci5TcGVha2Vhc3liYXIoKQoKcmVxID0gb3BlcmF0aW9ucy5Mb2dpblJlcXVlc3RCb2R5KAogICAgdHlwZT1vcGVyYXRpb25zLlR5cGUuQVBJX0tFWSwKKQoKcmVzID0gcy5hdXRoZW50aWNhdGlvbi5sb2dpbihyZXEsIG9wZXJhdGlvbnMuTG9naW5TZWN1cml0eSgKICAgIHBhc3N3b3JkPSI8UEFTU1dPUkQ+IiwKICAgIHVzZXJuYW1lPSI8VVNFUk5BTUU+IiwKKSkKCmlmIHJlcy5vYmplY3QgaXMgbm90IE5vbmU6CiAgICAjIGhhbmRsZSByZXNwb25zZQogICAgcGFzcwoKYGBgCjwhLS0gRW5kIEF1dGhlbnRpY2F0aW9uIFtzZWN1cml0eV0gLS0+Cgo8IS0tIFBsYWNlaG9sZGVyIGZvciBGdXR1cmUgU3BlYWtlYXN5IFNESyBTZWN0aW9ucyAtLT4KCgoKIyMjIE1hdHVyaXR5CgpUaGlzIFNESyBpcyBpbiBiZXRhLCBhbmQgdGhlcmUgbWF5IGJlIGJyZWFraW5nIGNoYW5nZXMgYmV0d2VlbiB2ZXJzaW9ucyB3aXRob3V0IGEgbWFqb3IgdmVyc2lvbiB1cGRhdGUuIFRoZXJlZm9yZSwgd2UgcmVjb21tZW5kIHBpbm5pbmcgdXNhZ2UKdG8gYSBzcGVjaWZpYyBwYWNrYWdlIHZlcnNpb24uIFRoaXMgd2F5LCB5b3UgY2FuIGluc3RhbGwgdGhlIHNhbWUgdmVyc2lvbiBlYWNoIHRpbWUgd2l0aG91dCBicmVha2luZyBjaGFuZ2VzIHVubGVzcyB5b3UgYXJlIGludGVudGlvbmFsbHkKbG9va2luZyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uLgoKIyMjIENvbnRyaWJ1dGlvbnMKCldoaWxlIHdlIHZhbHVlIG9wZW4tc291cmNlIGNvbnRyaWJ1dGlvbnMgdG8gdGhpcyBTREssIHRoaXMgbGlicmFyeSBpcyBnZW5lcmF0ZWQgcHJvZ3JhbW1hdGljYWxseS4KRmVlbCBmcmVlIHRvIG9wZW4gYSBQUiBvciBhIEdpdGh1YiBpc3N1ZSBhcyBhIHByb29mIG9mIGNvbmNlcHQgYW5kIHdlJ2xsIGRvIG91ciBiZXN0IHRvIGluY2x1ZGUgaXQgaW4gYSBmdXR1cmUgcmVsZWFzZSAhCgojIyMgU0RLIENyZWF0ZWQgYnkgW1NwZWFrZWFzeV0oaHR0cHM6Ly9kb2NzLnNwZWFrZWFzeWFwaS5kZXYvZG9jcy91c2luZy1zcGVha2Vhc3kvY2xpZW50LXNka3MpCg== readmeEtag: '"ca4fcb630c438231d9619c6bb544e5b77c0978e2"' readmeLastModified: Mon, 08 Apr 2024 15:05:30 GMT repositoryId: 604771680 description: >- (TEMPLATE, Clone this repo to get started) Example of a Speakeasy Managed SDK created: '2023-02-21T18:56:21Z' updated: '2024-04-08T15:05:40Z' language: TypeScript archived: false stars: 1 watchers: 3 forks: 0 owner: speakeasy-sdks logo: https://avatars.githubusercontent.com/u/121978464?v=4 license: MIT repoEtag: '"ce12f6e24a246249c14cba8ca422c1ad285c4237b1afad6f6689eac7926c9547"' repoLastModified: Mon, 08 Apr 2024 15:05:40 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/tranvannhat/fastapi-starter v3: true id: ecf41122d4f260bbb4e59408750e1878 repositoryMetadata: base64Readme: >- IyMgUmVxdWlyZW1lbnRzCi0gUHl0aG9uIDMuOAotIFBvc3RncmVzU1FMIDEzCi0gUmVkaXMgCgoKIyMgSW5zdGFsbApJbnN0YWxsIFBvZXRyeSAtIFRvb2wgZm9yIGRlcGVuZGVuY3kgbWFuYWdlbWVudCBhbmQgcGFja2FnaW5nIGluIFB5dGhvbgoKYGBgCnBvZXRyeSBpbnN0YWxsCnBvZXRyeSBzaGVsbApgYGAKCmBgYAphbGVtYmljIHJldmlzaW9uIC0tYXV0b2dlbmVyYXRlIC1tICJ1cGRhdGUgZGIiIApgYGAKCg== readmeEtag: '"b33568848a03f99fe7a674e47df0817a32ee534d"' readmeLastModified: Tue, 15 Aug 2023 07:22:20 GMT repositoryId: 382431783 description: >- FastAPI Starter for init project with FastAPI, Postgresql, Redis. Base on https://github.com/tiangolo/full-stack-fastapi-postgresql created: '2021-07-02T18:29:11Z' updated: '2024-08-09T13:42:23Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: tranvannhat logo: https://avatars.githubusercontent.com/u/28804941?v=4 repoEtag: '"c72a2bfbcecc05d8d9acddd4928c6ef6a46bc3f0c71d1e256e8f3f01c0399646"' repoLastModified: Fri, 09 Aug 2024 13:42:23 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/wndhydrnt/openapi-go-server v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWdvLXNlcnZlcgoKVGVtcGxhdGVzIGZvciB0aGUgZ28tc2VydmVyIGdlbmVyYXRvciBvZiB0aGUgW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKS4KClRoZSB0ZW1wbGF0ZXMgYXJlIGEgZm9yayBvZiB0aGUgW29yaWdpbmFsIGdvLXNlcnZlciBnZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvbWFpbi9yZXNvdXJjZXMvZ28tc2VydmVyKSB0ZW1wbGF0ZXMuCgojIyBGZWF0dXJlcyBhbmQgQ2hhbmdlcwoKKiBFbmFibGUgW0Rpc2FsbG93VW5rbm93bkZpZWxkc10oaHR0cHM6Ly9nb2xhbmcub3JnL3BrZy9lbmNvZGluZy9qc29uLyNEZWNvZGVyLkRpc2FsbG93VW5rbm93bkZpZWxkcykgb24gSlNPTiBkZWNvZGVyCiogT3B0aW9uYWxseSBzZXQgcmVzcG9uc2UgY29kZSBhbmQgYm9keSBvbiBlcnJvcgoqIFJlbW92ZSByZXF1ZXN0IGxvZ2dpbmcKKiBPcHRpb25hbGx5IHNldCBhIGxvZ2dlciB0byBsb2cgZXJyb3JzIGluIENvbnRyb2xsZXJzCiogUGFzcyBjb250ZXh0IG9mIHRoZSBpbmNvbWluZyBgaHR0cC5SZXF1ZXN0YCB0byBtZXRob2RzIG9mIGEgU2VydmljZQoqIExldCBtZXRob2RzIG9mIGEgU2VydmljZSByZXR1cm4gdHlwZXMKCiMjIEtub3duIENhdmVhdHMKCiogU3VwcG9ydHMgb25seSBvbmUgcmV0dXJuIHR5cGUgb24gbWV0aG9kcyBvZiBhIFNlcnZpY2UKKiBTdXBwb3J0cyBKU09OIGVuY29kaW5nIG9mIHJlc3BvbnNlIGJvZHkgb25seQoKIyMgRXhhbXBsZQoKU2VlIFtleGFtcGxlcy9wZXRzdG9yZV0oZXhhbXBsZXMvcGV0c3RvcmUpLgoKIyMgVXNhZ2UKCmBgYApjdXJsIC1MIC1vIG9wZW5hcGktZ28tc2VydmVyLnppcCBodHRwczovL2dpdGh1Yi5jb20vd25kaHlkcm50L29wZW5hcGktZ28tc2VydmVyL2FyY2hpdmUvbWFzdGVyLnppcAp1bnppcCBvcGVuYXBpLWdvLXNlcnZlci56aXAKcm0gb3BlbmFwaS1nby1zZXJ2ZXIuemlwCm12IG9wZW5hcGktZ28tc2VydmVyLW1hc3Rlci9nby1zZXJ2ZXIgLgpybSAtcmYgb3BlbmFwaS1nby1zZXJ2ZXItbWFzdGVyLwpvcGVuYXBpLWdlbmVyYXRvciBnZW5lcmF0ZSAtaSBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIC1vIC4gLS1nZW5lcmF0b3ItbmFtZSBnby1zZXJ2ZXIgLS1hZGRpdGlvbmFsLXByb3BlcnRpZXM9c291cmNlRm9sZGVyPWFwaSxwYWNrYWdlTmFtZT1hcGkgLXQgLi9nby1zZXJ2ZXIKYGBgCg== readmeEtag: '"9ba486b02a59726d0ed36d8a31fd731d61f74351"' readmeLastModified: Sat, 02 Nov 2019 14:48:13 GMT repositoryId: 219166478 description: Templates for the go-server generator of the OpenAPI Generator. created: '2019-11-02T14:36:54Z' updated: '2022-12-30T07:07:23Z' language: HTML archived: false stars: 1 watchers: 3 forks: 1 owner: wndhydrnt logo: https://avatars.githubusercontent.com/u/3942978?v=4 license: MIT repoEtag: '"43a46dd7e1060fdea3fe5a87622d96bf96513af67c4c045e27c69e44ab49027f"' repoLastModified: Fri, 30 Dec 2022 07:07:23 GMT foundInMaster: true category: - SDK - Parsers id: 061a1147b9de1d975771f791659ca4f6 - source: openapi3 tags repository: https://github.com/akh11k/flask-template v3: true repositoryMetadata: base64Readme: IyBmbGFzay10ZW1wbGF0ZQpBIGZsYXNrIHRlbXBsYXRlIHdpdGggcnEsIGNvbm5leGlvbgo= readmeEtag: '"1497df7bfbd157a003cc5e95ca0ed09358d2e814"' readmeLastModified: Mon, 06 May 2019 06:47:43 GMT repositoryId: 184807083 description: A flask template with rq, connexion created: '2019-05-03T19:05:28Z' updated: '2019-05-06T06:48:28Z' language: Python archived: false stars: 1 watchers: 1 forks: 1 owner: akh11k logo: https://avatars.githubusercontent.com/u/44919026?v=4 repoEtag: '"2f8654c97d91a876d0f0ea45953319659dc10935851add35b0aef7a859e34c7f"' repoLastModified: Mon, 06 May 2019 06:48:28 GMT foundInMaster: true category: - Mock - Server Implementations id: 3525950c4113199e2652a648c17b7efd - source: openapi3 tags repository: https://github.com/dzx912/sberapi-mock v3: true id: 2f68ab17ae20e48422266d441520f3b3 repositoryMetadata: base64Readme: >- IyBzYmVyYXBpLW1vY2sgWyFbYnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vcmlnZTEvc2JlcmFwaS1tb2NrL2FjdGlvbnMvd29ya2Zsb3dzL3dvcmtmbG93LnltbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vcmlnZTEvc2JlcmFwaS1tb2NrL2FjdGlvbnMvd29ya2Zsb3dzL3dvcmtmbG93LnltbCkKCtCh0LXRgNCy0LXRgCDQt9Cw0LPQu9GD0YjQutCwIFNiZXIgQVBJLiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINCx0YvRgdGC0YDQvtC5INC40L3RgtC10LPRgNCw0YbQuNC4INC4INGC0LXRgdGC0LjRgNC+0LLQsNC90LjRjyAKCiMjINCn0YLQviDRg9C80LXQtdGCIAoKKiDQk9C10L3QtdGA0LjRgNGD0LXRgiDQuCDQv9GA0L7QstC10YDRj9C10YIg0LfQsNC/0YDQvtGB0Ysg0LjRgdC/0L7Qu9GM0LfRg9GPIE9wZW5BUEkgMwoqINCY0LzQtdC10YIg0L/QvtC00LTQtdGA0LbQutGDIFRMUyDQuCBtVExTCgojIyDQn9GA0LjQvNC10YDRiyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyAKCtCX0LDQv9GD0YHQuiDQsdC10Lcg0LDRgNCz0YPQvNC10L3RgtC+0LIuINCh0LXRgNCy0LXRgCDQsdGD0LTQtdGCINGB0LvRg9GI0LDRgtGMINC90LAg0L/QvtGA0YLQtSA4MDgwOiAKCmBgYHNoCnNiZXJhcGktbW9jayBzdGFydApgYGAKCtCX0LDQv9GD0YHQuiDRgSDRg9C60LDQt9Cw0L3QuNC10Lwg0L/QvtGA0YLQsDogCgpgYGBzaApzYmVyYXBpLW1vY2sgc3RhcnQgLS1wb3J0IDgwODQKYGBgCgrQl9Cw0L/Rg9GB0Log0YEgbVRMUzoKCmBgYHNoIApzYmVyYXBpLW1vY2sgc3RhcnQgLS1jZXJ0IHNlcnZlcl9jZXJ0LnBlbSAtLWtleSBzZXJ2ZXJfa2V5LnBlbSAtLWNsaWVudC1jZXJ0IGNsaWVudF9jZXJ0LnBlbSAKYGBgCgrQntGC0LrQu9GO0YfQtdC90LjQtSDQstCw0LvQuNC00LDRhtC40Lgg0LfQsNC/0YDQvtGB0LA6IApgYGBzaApzYmVyYXBpLW1vY2sgc3RhcnQgLS1pZ25vcmUtdmFsaWRhdGlvbgpgYGAKCiMjINCf0YDQuNC80LXRgNGLINC30LDQv9GA0L7RgdC+0LIgCgpD0L/QuNGB0L7QuiDQtNC+0YHRgtGD0L/QvdGL0YUgQVBJOgpgYGBzaApjdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4NAoKKFBPU1QpIC9jcmVhdGlvbgooUE9TVCkgL3N0YXR1cwpgYGAK0KHQvtC30LTQsNC90LjQtSBRUjogCmBgYHNoCiMg0JfQsNC/0YPRgdC60LDQtdC8INC30LDQs9C70YPRiNC60YMg0LHQtdC3INC/0YDQvtCy0LXRgNC60Lgg0LfQsNC/0YDQvtGB0L7QsiAKc2JlcmFwaS1tb2NrIHN0YXJ0IC0taWdub3JlLXZhbGlkYXRpb24KCiMg0JfQsNC/0YDQvtGBCmN1cmwgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OjgwODAvY3JlYXRpb24gLWQgJ3t9JyB8IGpxIAoKIyDQntGC0LLQtdGCCnsKICAic3RhdHVzIjogewogICAgImVycm9yX2NvZGUiOiAiMDAwMDAwIiwKICAgICJlcnJvcl9kZXNjcmlwdGlvbiI6ICLQntC/0LjRgdCw0L3QuNC1INC+0YjQuNCx0LrQuCDQstGL0L/QvtC70L3QtdC90LjRjyDQt9Cw0L/RgNC+0YHQsCIsCiAgICAib3JkZXJfZm9ybV91cmwiOiAiaHR0cHM6Ly9zYmVyYmFuay5ydS9xci8/dXVpZD0xMTExMTExMTExMTExMTExMTEiLAogICAgIm9yZGVyX2lkIjogIjEwMDAxMDAwNTE4OTU2NjM3IiwKICAgICJvcmRlcl9udW1iZXIiOiAiNzc0NjM1NTI2NjM3IiwKICAgICJvcmRlcl9zdGF0ZSI6ICJDUkVBVEVEIiwKICAgICJycV90bSI6ICIyMDA1LTA4LTE1VDE1OjUyOjAxWiIsCiAgICAicnFfdWlkIjogImFjMTFjQTFDRWFlMUQxMTExZEFCZjFmRDFCYjBhY0FkIgogIH0KfQpgYGAKCiMjINCh0LHQvtGA0LrQsAoKYGBgc2ggCm1ha2UgYnVpbGQgCmBgYAoKIyMgRG9ja2VyCiMjIyDQodCx0L7RgNC60LAKCmBgYHNoIApkb2NrZXIgaW1hZ2UgYnVpbGQgLS10YWcgc2JlcmFwaS1tb2NrIC4KYGBgCgojIyMg0JfQsNC/0YPRgdC6CgpgYGBzaCAKZG9ja2VyIHJ1biAtLXB1Ymxpc2ggODA4MDo4MDgwIHNiZXJhcGktbW9jawpgYGAKCiMjIyDQl9Cw0L/Rg9GB0Log0YEg0L/QsNGA0LDQvNC10YLRgNCw0LzQuAoKYGBgc2ggCmRvY2tlciBydW4gLS1wdWJsaXNoIDgwODA6ODA4MCBzYmVyYXBpLW1vY2sgLS1pZ25vcmUtdmFsaWRhdGlvbgpgYGAKCmBgYHNoIApkb2NrZXIgcnVuIC0tcHVibGlzaCA4MDgwOjgwODAgLS12b2x1bWUgPGFic29sdW1lX3BhdGhfdG9fY2VydF9kaXI+Oi9hcHAvY2VydC8gc2JlcmFwaS1tb2NrIC0tY2VydCAvYXBwL2NlcnQvc2VydmVyX2NlcnQucGVtIC0ta2V5IC9hcHAvY2VydC9zZXJ2ZXJfa2V5LnBlbSAtLWNsaWVudC1jZXJ0IC9hcHAvY2VydC9jbGllbnRfY2VydC5wZW0gCmBgYA== readmeEtag: '"a7023168cfa7862ebc2f7c52ec9a486798b30ff6"' readmeLastModified: Fri, 18 Feb 2022 22:17:42 GMT repositoryId: 379581037 description: Сервер заглушка Sber API created: '2021-06-23T11:33:27Z' updated: '2023-03-02T18:51:14Z' language: Go archived: true stars: 1 watchers: 0 forks: 0 owner: dzx912 logo: https://avatars.githubusercontent.com/u/3342950?v=4 repoEtag: '"1ef79fcdfde4352154df4b1bf2ea299892d439e967c36ce418e2586e9bac3984"' repoLastModified: Thu, 02 Mar 2023 18:51:14 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/himenon/openapi-typescript-code-generator-demo-project v3: true repositoryMetadata: base64Readme: >- IyBEZW1vIHByb2plY3QgZm9yIFtIaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL0hpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yKQoKW+aXpeacrOiqnl0oLi9SRUFETUVfamEubWQpCgpUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBzcGVjaWZpYyBzdGVwcyBmb3IgY29kZSBnZW5lcmF0aW9uLgoKIyMgU2V0dXAKCkZpcnN0LCB5b3UgbmVlZCB0byBjbG9uZSB0aGlzIHJlcG9zaXRvcnkuIAoKYGBgc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9IaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvci1kZW1vLXByb2plY3QKYGBgCgpUaGVuIGdvIHRvIHRoZSBjbG9uZWQgZGlyZWN0b3J5IGFuZCBpbnN0YWxsIHRoZSBwYWNrYWdlLgoKYGBgc2gKY2Qgb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yLWRlbW8tcHJvamVjdAp5YXJuIGluc3RhbGwKYGBgCgpUaGUgc2V0dXAgaXMgbm93IGNvbXBsZXRlLgoKIyMgUnVuIGRlbW8KCkxldCdzIGFjdHVhbGx5IGNyZWF0ZSB0aGUgY29kZSBpbiBbVXNhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9IaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvciN1c2FnZSkuClRoZSBPcGVuQVBJIFNjaGVtYSB0byBiZSBsb2FkZWQgaXMgYG9wZW5hcGkueW1sYC4KCkFsc28sIHRoZSBhY3R1YWwgY29kZSB0byBiZSBleGVjdXRlZCB3aWxsIGJlIHdyaXR0ZW4gaW4gcGxhaW4gSmF2YVNjcmlwdC4KCiMjIyBEZW1vMQoKRXhhbXBsZXMgdG8gREVNT++8mltHZW5lcmF0ZSB0eXBlZGVmLW9ubHkgY29kZV0oaHR0cHM6Ly9naXRodWIuY29tL0hpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yI2dlbmVyYXRlLXR5cGVkZWYtb25seS1jb2RlKQoKRXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gZ2VuZXJhdGUgdGhlIGNvZGUgaW4gdGhlIGRlbW8xIGRpcmVjdG9yeS4KCmBgYHNoCm5vZGUgZ2VuZXJhdGUtZGVtbzEuanMKYGBgCgojIyMgRGVtbzIKCkV4YW1wbGVzIHRvIERFTU/vvJpbR2VuZXJhdGUgY29kZSBjb250YWluaW5nIHRoZSBBUEkgQ2xpZW50XShodHRwczovL2dpdGh1Yi5jb20vSGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3IjZ2VuZXJhdGUtY29kZS1jb250YWluaW5nLXRoZS1hcGktY2xpZW50KQoKRXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gZ2VuZXJhdGUgdGhlIGNvZGUgaW4gdGhlIGRlbW8yIGRpcmVjdG9yeS4KCmBgYHNoCm5vZGUgZ2VuZXJhdGUtZGVtbzIuanMKYGBgCgojIyBEZW1vMwoKRXhhbXBsZXMgdG8gREVNT++8mltTcGxpdCB0aGUgdHlwZSBkZWZpbml0aW9uIGZpbGUgYW5kIHRoZSBBUEkgQ2xpZW50IGltcGxlbWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vSGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3Ijc3BsaXQtdGhlLXR5cGUtZGVmaW5pdGlvbi1maWxlLWFuZC10aGUtYXBpLWNsaWVudC1pbXBsZW1lbnRhdGlvbikKCkV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGdlbmVyYXRlIHRoZSBjb2RlIGluIHRoZSBkZW1vMyBkaXJlY3RvcnkuCgpgYGBzaApub2RlIGdlbmVyYXRlLWRlbW8zLmpzCmBgYAoKIyMgQWJvdXQgdGhlIHBhY2thZ2UgeW91IG5lZWQKCltAaGltZW5vbi9vcGVuYXBpLXR5cGVzY3JpcHQtY29kZS1nZW5lcmF0b3JdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvcikgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIGdlbmVyYXRpbmcgY29kZSBmcm9tIE9wZW5BUEkgU2NoZW1hLgoKSXQgYWxzbyB1c2VzIFR5cGVTY3JpcHQgaXRzZWxmIGRpcmVjdGx5IGludGVybmFsbHkuIFRoZXJlZm9yZSwgaWYgeW91IGRvIG5vdCBoYXZlIHRoaXMgW3R5cGVzY3JpcHRdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3R5cGVzY3JpcHQpIHBhY2thZ2UgaW5zdGFsbGVkLCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byBnZW5lcmF0ZSBjb2RlLgoK readmeEtag: '"4f1dfdd8b3024ad9eecd8ab24613b8f2013dd624"' readmeLastModified: Sun, 12 Sep 2021 14:18:25 GMT repositoryId: 355945487 description: Demo Project for @himenon/openapi-typescript-code-generator created: '2021-04-08T14:44:28Z' updated: '2022-05-22T15:21:37Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 2 owner: Himenon logo: https://avatars.githubusercontent.com/u/6715229?v=4 repoEtag: '"718dcde2fb8b030e5350ecb10e64f52638e29defbbcc10a09eaed03fa20a8bcc"' repoLastModified: Sun, 22 May 2022 15:21:37 GMT foundInMaster: true category: SDK id: d2f30604362509539598b330fb1bbb68 - source: openapi3 tags repository: https://github.com/bmykyta/cheese-whiz v3: true id: 9aa890b5402d1a9b42ae222e1fed6343 repositoryMetadata: base64Readme: >- IyBDaGVlc2UgV2hpeiAoQVBJIFBsYXRmb3JtKQoKIyMgQWJvdXQgdGhlIHByb2plY3QKClRoZSBwcm9qZWN0IGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGUgU3ltZm9ueSA2IHdpdGggQVBJIFBsYXRmb3JtIDIuNiBidW5kbGUuIEZvbGxvd2VkIGJ5IHRoZSB0dXRvcmlhbCBvZgpbU3ltZm9ueUNhc3RzIC0gQVBJIFBsYXRmb3JtOiBTZXJpb3VzIFJFU1RmdWwgQVBJc10oaHR0cHM6Ly9zeW1mb255Y2FzdHMuY29tL3NjcmVlbmNhc3QvYXBpLXBsYXRmb3JtKS4KCiMjIyBCdWlsZCB3aXRoCgohW1BIUDhdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP3N0eWxlPWZvci10aGUtYmFkZ2UmbWVzc2FnZT1QSFAlMjA4JmNvbG9yPTc3N0JCNCZsb2dvQ29sb3I9d2hpdGUmbG9nbz1waHAmbGFiZWw9KQohW1N5bWZvbnldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP3N0eWxlPWZvci10aGUtYmFkZ2UmbWVzc2FnZT1TeW1mb255JTIwNiZjb2xvcj0wMDAwMDAmbG9nbz1TeW1mb255JmxvZ29Db2xvcj1GRkZGRkYmbGFiZWw9KQohW09wZW5BUEkzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9zdHlsZT1mb3ItdGhlLWJhZGdlJm1lc3NhZ2U9T3BlbkFQSSUyMDMmY29sb3I9NkJBNTM5JmxvZ289T3BlbkFQSStJbml0aWF0aXZlJmxvZ29Db2xvcj1GRkZGRkYmbGFiZWw9KQoKIyMgR2V0dGluZyBTdGFydGVkCgojIyMgUHJlcmVxdWlzaXRlcwoKLSBQSFAgOAotIENvbXBvc2VyIAotIERvY2tlci1jb21wb3NlCgojIyMgSW5zdGFsbGF0aW9uCgoxLiBDbG9uZSB0aGUgcmVwbzogCmBgYGJhc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9ibXlreXRhL2NoZWVzZS13aGl6LmdpdApgYGAKMi4gQ29weSB0aGUgLmVudiBmaWxlIGFuZCBhZGp1c3QgdG8geW91ciBuZWVkcwozLiBSdW4gZG9ja2VyIGNvbXBvc2UgY29tbWFuZApgYGBiYXNoCmRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAo0LiBHbyB0byBwaHAtZnBtIHNlcnZpY2UgCmBgYGJhc2gKZG9ja2VyLWNvbXBvc2UgZXhlYyBwaHAtZnBtIGJhc2gKYGBgCjUuIFJ1biBjb21wb3NlciBpbnN0YWxsLCBjcmVhdGUgREIgYW5kIG1pZ3JhdGlvbnMKYGBgYmFzaApjb21wb3NlciBpbnRhbGwKcGhwIGJpbi9jb25zb2xlIGQ6ZDpjIApwaHAgYmluL2NvbnNvbGUgZDptOm0gLW4KYGBgCgojIyBDb250cmlidXRpbmcKCkNvbnRyaWJ1dGlvbnMgYXJlIHdoYXQgbWFrZSB0aGUgb3BlbiBzb3VyY2UgY29tbXVuaXR5IHN1Y2ggYW4gYW1hemluZyBwbGFjZSB0byBsZWFybiwgaW5zcGlyZSwgYW5kIGNyZWF0ZS4gCkFueSBjb250cmlidXRpb25zIHlvdSBtYWtlIGFyZSAqKmdyZWF0bHkgYXBwcmVjaWF0ZWQqKi4g8J+RjwoKSWYgeW91IGhhdmUgYSBzdWdnZXN0aW9uIHRoYXQgd291bGQgbWFrZSB0aGlzIGJldHRlciwgcGxlYXNlIGZvcmsgdGhlIHJlcG8gYW5kIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdC4gCllvdSBjYW4gYWxzbyBzaW1wbHkgb3BlbiBhbiBpc3N1ZSB3aXRoIHRoZSB0YWcgIl9lbmhhbmNlbWVudF8iLgpEb24ndCBmb3JnZXQgdG8gZ2l2ZSB0aGUgcHJvamVjdCBhIHN0YXIg4q2QISBUaGFua3MgYWdhaW4hCgoxLiBGb3JrIHRoZSBQcm9qZWN0CjIuIENyZWF0ZSB5b3VyIEZlYXR1cmUgQnJhbmNoIChgZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUvQW1hemluZ0ZlYXR1cmVgKQozLiBDb21taXQgeW91ciBDaGFuZ2VzIChgZ2l0IGNvbW1pdCAtbSAnQWRkIHNvbWUgQW1hemluZ0ZlYXR1cmUnYCkKNC4gUHVzaCB0byB0aGUgQnJhbmNoIChgZ2l0IHB1c2ggb3JpZ2luIGZlYXR1cmUvQW1hemluZ0ZlYXR1cmVgKQo1LiBPcGVuIGEgUHVsbCBSZXF1ZXN0 readmeEtag: '"777c0a701335d13f60aac05c53a398da802a314c"' readmeLastModified: Wed, 28 Sep 2022 20:48:35 GMT repositoryId: 516092537 description: >- Built on top of Symfony 6, API Platform enables you to build a rich, JSON-LD-powered, hypermedia API... pretty much instantly! created: '2022-07-20T18:25:23Z' updated: '2022-07-26T11:33:33Z' language: PHP archived: false stars: 1 watchers: 1 forks: 0 owner: bmykyta logo: https://avatars.githubusercontent.com/u/31631183?v=4 repoEtag: '"efe221ffd24eecb159a2fa39a6176bed04f39cf2d10c1241b69e54499bfb01f5"' repoLastModified: Tue, 26 Jul 2022 11:33:33 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mbhuman/ravagepdf v3: true id: 88064ff57f84edc19e52519d84c64009 repositoryMetadata: base64Readme: >- IyByYXZhZ2VwZGYKCkNoZWNrIGNvdmVyYWdlIDIKCiMjIEludHJvZHVjdGlvbgoKUmF2YWdlcGRmIGlzIGEgY2xpLCB3aXRoIHlvdSBjYW4gZWFzaWx5IGNvbnZlcnQgeW91ciBvcGVuYXBpLmpzb24gb3Igb3BlbmFwaS55bWwgc3BlY3MgZnJvbSBVUkwgb3IgZnJvbSBmaWxlIHRvIFBERiB3aXRoIHNpbXBsZSBjb21tYW5kLiBJdCB0YWtlcyBmZXcgc2Vjb25kcyB0byBnZW5lcmF0ZSBmaWxlLiBBbGwgbWV0aG9kcyBhcmUgYXN5bmMsIGFuZCBjYW4gYmUgdXNlZCBhc3luYyB3aXRoaW4gcHJvamVjdHMgZm9yIGFzeW5jIFBERiBnZW5lcmF0aW9uLgoKIyMgRmVhdHVyZXMKCiogVVJMIGFwaSBzcGVjIHN1cHBvcnQgKFlNTCBhbmQgSlNPTikKKiBPcGVuQVBJIGZpbGUgc3BlYyBzdXBwb3J0IChZTUwgYW5kIEpTT04pCiogVGFibGUgb2YgQ29udGVudHMKKiBIYW5kbGVyIGRlc2NyaXB0aW9uCiogUmVxdWVzdCBkZXNjcmlwdGlvbgoqIFJlc3BvbnNlIGRlc2NyaXB0aW9uCiogRXhhbXBsZXMgZm9yIFJlc3BvbnNlIGFuZCBSZXF1ZXN0CiogT3BlbkFQSTMuMCBzdXBwb3J0IHdpdGggQW55T2YsIE9uZU9mIGFuZCBvdGhlcnMKKiBFbnVtIGV4YW1wbGVzIHN1cHBvcnQKKiBEZXNjcmlwdGlvbiBmb3IgYWxsIHBhcmFtcyBpbiBib2R5CgojIyBFeGFtcGxlcyBvZiB1c2FnZQoKIyMjIEluc3RhbGxhdGlvbgoKYGBgY29uc29sZQpucG0gaSAtZyByYXZhZ2VwZGYKYGBgCgojIyMgRXhhbXBsZSB3aXRoIFVSTAoKYGBgY29uc29sZQpyYXZhZ2VwZGYgLXMgaHR0cHM6Ly9hcHAuc3dhZ2dlcmh1Yi5jb20vYXBpcHJveHkvcmVnaXN0cnkvRGlyZWN0X1dpbmVzL0NhcnRBUElTdWl0ZS8xLjcuMFw/cmVzb2x2ZWRcPXRydWVcJmZsYXR0ZW5cPXRydWVcJnByZXR0eVw9dHJ1ZSAtbyBwZGZEb2NzLnBkZgpgYGAKCiMjIyBFeGFtcGxlIHdpdGggZmlsZQoKIyMjIyBKU09OCgpgYGBjb25zb2xlCnJhdmFnZXBkZiAtcyBvcGVuYXBpLmpzb24gLW8gcGRmRG9jcy5wZGYKYGBgCgojIyMjIFlNTCAKCmBgYGNvbnNvbGUKCnJhdmFnZXBkZiAtcyBvcGVuYXBpLnltbCAtbyBwZGZEb2NzLnBkZgpgYGAKCiMjIFBERiBleGFtcGxlcwoKIyMjIEluZm8KCiFbXShodHRwczovL2dpdGh1Yi5jb20vTUJIdW1hbi9yYXZhZ2VwZGYvYmxvYi9tYWluL2ltYWdlcy9pbmZvLnBuZykKCiMjIyBJbmRleAoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9NQkh1bWFuL3JhdmFnZXBkZi9ibG9iL21haW4vaW1hZ2VzL2luZGV4LnBuZykKCiMjIyBQYXRocyBIZWFkZXIKCiFbXShodHRwczovL2dpdGh1Yi5jb20vTUJIdW1hbi9yYXZhZ2VwZGYvYmxvYi9tYWluL2ltYWdlcy9wYXRoc19oZWFkZXIucG5nKQoKIyMjIFJlc3BvbnNlIERlc2NyaXB0aW9uCgohW10oaHR0cHM6Ly9naXRodWIuY29tL01CSHVtYW4vcmF2YWdlcGRmL2Jsb2IvbWFpbi9pbWFnZXMvcmVzcG9uc2VfZGVzY3JpcHRpb24ucG5nKQoKIyMjIEV4YW1wbGUKCiFbXShodHRwczovL2dpdGh1Yi5jb20vTUJIdW1hbi9yYXZhZ2VwZGYvYmxvYi9tYWluL2ltYWdlcy9leGFtcGxlLnBuZykKCiMjIyBBUEkgTGlzdAoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9NQkh1bWFuL3JhdmFnZXBkZi9ibG9iL21haW4vaW1hZ2VzL2FwaV9saXN0LnBuZykKCiMjIFByb2dyYW0gRGVzaWduCgohW10oLi9pbWFnZXMvcmF2YWdlLnN2Zyk= readmeEtag: '"6b6aebc2c215f16481b330fc211b83791ef95f44"' readmeLastModified: Fri, 23 Jun 2023 11:46:34 GMT repositoryId: 628531125 description: PDF generation from OpenAPI / Swagger Spec Resources URL or JSON/YML file created: '2023-04-16T08:35:08Z' updated: '2023-06-04T11:00:51Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: MBHuman logo: https://avatars.githubusercontent.com/u/44523394?v=4 license: Apache-2.0 repoEtag: '"22e6bfc50adfc0769a293da65bf449f61d4574d701c81aa79d2736af5d142fd8"' repoLastModified: Sun, 04 Jun 2023 11:00:51 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/fugerit-org/yaml-doc-tool v3: true id: 97f4d8f8067f40e02afeeb61b95be57e repositoryMetadata: base64Readme: >- IyB5YW1sLWRvYy10b29sCgpUb29sIGZvciBhdXRvIGRvY3VtZW50YXRpb24gb2YgeWFtbCAvIG9wZW5hcGkKClshW0tlZXAgYSBDaGFuZ2Vsb2cgdjEuMS4wIGJhZGdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NoYW5nZWxvZy1LZWVwJTIwYSUyMENoYW5nZWxvZyUyMHYxLjEuMC0lMjNFMDU3MzUpXShDSEFOR0VMT0cubWQpIApbIVtNYXZlbiBDZW50cmFsXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9vcmcuZnVnZXJpdC5qYXZhL3lhbWwtZG9jLXRvb2wuc3ZnKV0oaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuZnVnZXJpdC5qYXZhL3lhbWwtZG9jLXRvb2wpClshW2xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1BcGFjaGUlMjBMaWNlbnNlJTIwMi4wLXRlYWwuc3ZnKV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wKQpbIVtjb2RlIG9mIGNvbmR1Y3RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29uZHVjdC1Db250cmlidXRvciUyMENvdmVuYW50LXB1cnBsZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZnVnZXJpdC1vcmcvZmotdW5pdmVyc2UvYmxvYi9tYWluL0NPREVfT0ZfQ09ORFVDVC5tZCkKWyFbUXVhbGl0eSBHYXRlIFN0YXR1c10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9ZnVnZXJpdC1vcmdfeWFtbC1kb2MtdG9vbCZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9ZnVnZXJpdC1vcmdfeWFtbC1kb2MtdG9vbCkKWyFbQ292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWZ1Z2VyaXQtb3JnX3lhbWwtZG9jLXRvb2wmbWV0cmljPWNvdmVyYWdlKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9ZnVnZXJpdC1vcmdfeWFtbC1kb2MtdG9vbCkKClshW0phdmEgcnVudGltZSB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3J1biUyMG9uLWphdmElMjA4Ky0lMjMxMTMzNjYuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1vcGVuamRrJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vdW5pdmVyc2UuZnVnZXJpdC5vcmcvc3JjL2RvY3MvdmVyc2lvbnMvamF2YTExLmh0bWwpClshW0phdmEgYnVpbGQgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9idWlsZCUyMG9uLWphdmElMjAxMSstJTIzRUQ4QjAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289b3BlbmpkayZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3VuaXZlcnNlLmZ1Z2VyaXQub3JnL3NyYy9kb2NzL3ZlcnNpb25zL2phdmExMS5odG1sKQpbIVtBcGFjaGUgTWF2ZW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQXBhY2hlJTIwTWF2ZW4tMy45LjArLUM3MUEzNj9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289QXBhY2hlJTIwTWF2ZW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly91bml2ZXJzZS5mdWdlcml0Lm9yZy9zcmMvZG9jcy92ZXJzaW9ucy9tYXZlbjNfOS5odG1sKQoKIyMgUXVpY2tzdGFydCAoYnVpbGQpCgpgYGAKbXZuIGNsZWFuIGluc3RhbGwgLVAgc2luZ2xlcGFja2FnZQkJCmBgYAoKIyMgUXVpY2tzdGFydCAobW9kZTogc2luZ2xlKToKCmBgYApqYXZhIC1qYXIgZGlzdC15YW1sLWRvYy10b29sLSouamFyIC0taW5wdXQteWFtbCBbcGF0aC10by1vcGVuYXBpXSBcCgkJCQkJCQkJCQktLW91dHB1dC1maWxlIFtvdXRwdXQtZmlsZV0gXAoJCQkJCQkJCQkJLS1sYW5ndWFnZSBbbGFuZ3VhZ2VdIFwKCQkJCQkJCQkJCS0tbGFiZWxzLW92ZXJyaWRlIFtwYXRoLXRvLWxhYmVscy1wcm9wZXJ0aWVzXQpgYGAKCQkJCQkJCQkJCQoqKmV4YW1wbGUgOioqICAKCmBgYApqYXZhIC1qYXIgZGlzdC15YW1sLWRvYy10b29sLSouamFyIC0taW5wdXQteWFtbCBzYW1wbGUueWFtbCAtLW91dHB1dC1maWxlIHNhbXBsZS5wZGYgLS1sYW5ndWFnZSBpdApgYGAKCioqb3V0cHV0LWZpbGUqKiAgIApjdXJyZW50bHkgc3VwcG9ydGVkIGV4dGVuc2lvbnMgOiBwZGYsIHhsc3gsIHhtbCwgZm8KCioqbGFuZ3VhZ2UqKiAgCmN1cnJlbnRseSBzdXBwb3J0ZWQgbGFuZ3VhZ2VzIDogaXQsIGVuCgoqKmxhYmVscy1vdmVycmlkZXMqKiAgIApwYXRoIHRvIGFsdGVybmF0ZSBsYWJlbHMgcHJvcGVydGllcwpjdXJyZW50bHkgc3VwcG9ydGVkIGxhYmVscyBhcmUgYXZhaWxhYmxlIGluIDogc3JjL21haW4vcmVzb3VyY2VzL2xhbmcvbGFiZWwucHJvcGVydGllcwoKKiptYXZlbiBwbHVnaW4qKiAgCkEgW01hdmVuIFBsdWdpbl0oaHR0cHM6Ly9naXRodWIuY29tL2Z1Z2VyaXQtb3JnL3lhbWwtZG9jLW1hdmVuLXBsdWdpbikgaXMgYWxzbyBhdmFpbGFibGUuCgoKIyMgUXVpY2tzdGFydCAobW9kZTogY29uZmlnKToKCmBgYApqYXZhIC1qYXIgZGlzdC15YW1sLWRvYy10b29sLSouamFyIAkJLS1tb2RlIFtjb25maWddIFwKCQkJCQkJCQkJCS0tY29uZmlnLXBhdGggW3BhdGgtdG8tY29uZmlnXSBcCgkJCQkJCQkJCQktLWlkLWNhdGFsb2cgW2lkLWNhdGFsb2ctaW4tY29uZmlnXQpgYGAKCioqY29uZmlnLXBhdGgqKiAgIApwYXRoIHRvIGNvbmZpZ3VyYXRpb24gKHNlZSBbc2FtcGxlXShzcmMvdGVzdC9yZXNvdXJjZXMveWFtbC1kb2MtY29uZmlnLnhtbCkpCgoqKmlkLWNhdGFsb2cqKiAgIAppZCBvZiB0aGUgY2F0YWxvZyBpbiBjb25maWcgdG8gdXNlCgoKIyMgUXVpY2tzdGFydCAobW9kZTogY2hlY2stbW9kZWwpOgoKTm9kZSA6IHRoZSB0eXBlIHRvIGNoZWNrIG5lZWQgdG8gYmUgaW4gY2xhc3NwYXRoLgoKYGBgCmphdmEgLWphciBkaXN0LXlhbWwtZG9jLXRvb2wtKi5qYXIgCQktLW1vZGUgW2NoZWNrLW1vZGVsXSBcCgkJCQkJCQkJCQktLWlucHV0LXlhbWwgW3BhdGgtdG8tb3BlbmFwaV0gXAoJCQkJCQkJCQkJLS1vdXRwdXQtZmlsZSBbb3V0cHV0LWZpbGVdIFwKCQkJCQkJCQkJCS0tY2hlY2stdHlwZSBbamF2YSB0eXBlIHRvIGNoZWNrXSBcCgkJCQkJCQkJCQktLWNoZWNrLXNjaGVtYSBbb3BlbmFwaSBzY2hlbWEgdG8gY2hlY2tdCgkJCQkJCQkJCQktLXZlcnNpb24gW21vZGVsLXZlcnNpb25dCmBgYAoKIyMgTW9kZWwgdmVyc2lvbiBpbmZvIChwYXJhbSAidmVyc2lvbiIpCgojIyMgVmVyc2lvbiAwIC0gbGVnYWN5IHZlcnNpb24gKHVwIHRvIDEuMC4wIGV4Y2x1ZGVkKQoKIyMjIFZlcnNpb24gMQoKaGFuZGxpbmcgaGFuZGxpbmcgb2YgY29uc3RyYWludHMgW09wZW5BUEkgZGF0YSB0eXBlc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9kYXRhLW1vZGVscy9kYXRhLXR5cGVzLykKIC0gbWluTGVuZ3RoCiAtIG1heExlbmd0aAogLSBtaW5pbXVtCiAtIG1heGltdW0gCg== readmeEtag: '"7f26fef0e6ac8b78ea25cbef463add1efc198b05"' readmeLastModified: Sun, 02 Jun 2024 13:36:55 GMT repositoryId: 471110771 description: Documentation tool for yaml (openapi) created: '2022-03-17T19:11:05Z' updated: '2024-06-02T13:37:03Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: fugerit-org logo: https://avatars.githubusercontent.com/u/37816284?v=4 license: Apache-2.0 repoEtag: '"c088a5e37dd07f9cb7855561311a51d8cc97186e15683a0beb75935a94845c4e"' repoLastModified: Sun, 02 Jun 2024 13:37:03 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/jhansenbarreto/pessoa-endereco v3: true id: 67bcb878d92aad2b34e4ef36f01e30c7 repositoryMetadata: base64Readme: >- IyA6cGVuY2lsOiBEb2N1bWVudGHDp8OjbwoKPHA+CiAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU3ByaW5nJTIwQm9vdC12My4wLjEtYnJpZ2h0Z3JlZW4iLz4KICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhLS1qZGstdjE3LjAuNC4xLW9yYW5nZSIvPgogIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL21hdmVuLS1jZW50cmFsLXY0LjAuMC1ibHVlIi8+CiAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvSlVuaXQtdjUuOS4xLXJlZCIvPgo8L3A+CiAgCj4qRXN0ZSBwcm9qZXRvIGZvaSBpbXBsZW1lbnRhZG8gbmEgZXRhcGEgZG8gdGVzdGUgdMOpY25pY28gbm8gcHJvY2Vzc28gc2VsZXRpdm8gZGEgYGBBdHRvcm5hdHVzIFByb2N1cmFkb3JpYSBEaWdpdGFsYGAgcGFyYSBhIHZhZ2EgZGUgYGBEZXNlbnZvbHZlZG9yIEJhY2sgRW5kIC0gSmF2YWBgLiBTZWd1aW5kbyBhcyBlc3BlY2lmaWNhw6fDtWVzIGRhZGFzIG5vIHRlc3RlLCBvIHByb2pldG8gw6kgdW1hIHNpbXBsZXMgQVBJIGRlc3RpbmFkYSBhbyBjYWRhc3RybyBkZSBQZXNzb2FzIGUgRW5kZXJlw6dvcywgc2VydmluZG8gYXMgZnVuY2lvbmFsaWRhZGVzIG9icmlnYXTDs3JpYXMgZXhpZ2lkYXMgbm8gdGVzdGUgZSBvdXRyYXMgaW1wbGVtZW50YWRhcyBwZWxvIGRlc2Vudm9sdmVkb3IgZGEgQVBJIHBvciBkZWNpc8OjbyBkZSBwcm9qZXRvLioKICAKTyBwcm9qZXRvIGNvbnRhIGNvbSBvIENSVUQgY29tcGxldG8gZGFzIHNlZ3VpbnRlcyBlbnRpZGFkZXM6IAoKLSBgYEVzdGFkb3NgYAotIGBgQ2lkYWRlc2BgCi0gYGBQZXNzb2FzYGAKLSBgYEVuZGVyZcOnb3NgYAoKQSBkb2N1bWVudGHDp8OjbyBjb21wbGV0YSBkbyBwcm9qZXRvIGZvaSBmZWl0YSB1dGlsaXphbmRvIGFzIGZlcnJhbWVudGFzIGRhIGJpYmxpb3RlY2EgYGBTcHJpbmcgRG9jYGAsIGRlcGVuZMOqbmNpYSBkbyBwcm9qZXRvLCBhdHJhdsOpcyBkbyBgYFN3YWdnZXIgVUlgYCBjb20gYXMgZXNwZWNpZmljYcOnw7VlcyBkbyBgYE9wZW4gQVBJIDMuMGBgLCBhZmltIGRlIHByb3ZlciBtYWlvciBlbnRlbmRpbWVudG8gcGFyYSBvcyBjb25zdW1pZG9yZXMgZGEgQVBJLiBQYXJhIGFjZXNzYXIgYSBkb2N1bWVudGHDp8OjbywgZmHDp2EgbyBjbG9uZSBkbyBwcm9qZXRvIHBhcmEgYSBzdWEgbcOhcXVpbmEsIGluaWNpZSBhIGFwbGljYcOnw6NvICoocG9kZSBkZW1vcmFyIHVtIHBvdWNvLCBwb2lzIHNlcsOhIGZlaXRvIG8gZG93bmxvYWQgZGFzIGRlcGVuZMOqbmNpYXMgbmEgcHJpbWVpcmEgdmV6KSogZSBhcMOzcyBzdWJpciBvIHNlcnZpw6dvIGFicmEgc2V1IG5hdmVnYWRvciBlIGRpZ2l0ZTogYGBodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS9pbmRleC5odG1sYGAuIFNlIHByZWZlcmlyLCBvcyB0ZXN0ZXMgcG9kZW0gc2VyIGZlaXRvcyBuYSBwcsOzcHJpYSBww6FnaW5hIGRhIGRvY3VtZW50YcOnw6NvLCBvbmRlIGNvbnTDqW0gYXMgZXhwbGljYcOnw7VlcyBkZXZpZGFzIHBhcmEgY29uc3VtaXIgY2FkYSAqZW5kcG9pbnQqLgoKIyMgOmhhbW1lcjogRnVuY2lvbmFsaWRhZGVzCgo6cGFja2FnZTogYGBFc3RhZG9zOmBgCi0gQ2FkYXN0cmEgZXN0YWRvcwotIENvbnN1bHRhIGVzdGFkb3MKLSBMaXN0YSB0b2RvcyBvcyBlc3RhZG9zIGNhZGFzdHJhZG9zCi0gTGlzdGEgdG9kYXMgYXMgY2lkYWRlcyBkZSB1bSBlc3RhZG8KLSBFZGl0YSBlc3RhZG9zCi0gRXhjbHVpIGVzdGFkb3MKLSA+IDpidWxiOiAqKkRldGFsaGVzKio6ICpOw6NvIMOpIHBlcm1pdGlkbyBlc3RhZG9zIGNvbSBkYWRvcyBkdXBsaWNhZG9zLCBub21lcyBzw7MgYWNlaXRhbSBsZXRyYXMgbWFpw7pzY3VsYXMsIG1pbsO6c2N1bGFzLCBhY2VudHVhZGFzIGUgZXNwYcOnb3MsIFVGIHPDsyBhY2VpdGEgMiBsZXRyYXMuKgoKOnBhY2thZ2U6IGBgQ2lkYWRlczpgYAotIENhZGFzdHJhIGNpZGFkZXMKLSBDb25zdWx0YSBjaWRhZGVzCi0gTGlzdGEgdG9kYXMgYXMgY2lkYWRlcyBjYWRhc3RyYWRhcwotIEVkaXRhIGNpZGFkZXMKLSBFeGNsdWkgY2lkYWRlcwotID4gOmJ1bGI6ICoqRGV0YWxoZXMqKjogKk5vbWVzIHPDsyBhY2VpdGFtIGxldHJhcyBtYWnDunNjdWxhcywgbWluw7pzY3VsYXMsIGFjZW50dWFkYXMgZSBlc3Bhw6dvcy4qCgo6cGFja2FnZTogYGBQZXNzb2FzOmBgCi0gQ2FkYXN0cmEgcGVzc29hcwotIENvbnN1bHRhIHBlc3NvYXMKLSBMaXN0YSB0b2RhcyBhcyBwZXNzb2FzIGNhZGFzdHJhZGFzCi0gRWRpdGEgcGVzc29hcwotIEV4Y2x1aSBwZXNzb2FzCi0gPiA6YnVsYjogKipEZXRhbGhlcyoqOiAqTm9tZXMgc8OzIGFjZWl0YW0gbGV0cmFzIG1hacO6c2N1bGFzLCBtaW7DunNjdWxhcywgYWNlbnR1YWRhcyBlIGVzcGHDp29zLiBEYXRhIGRlIG5hc2NpbWVudG8gbm8gcGFkcsOjbyB5eXl5LW1tLWRkKgoKOnBhY2thZ2U6IGBgRW5kZXJlw6dvczpgYAotIENhZGFzdHJhIGVuZGVyZcOnb3MgcGFyYSBQZXNzb2FzCi0gTGlzdGEgdG9kb3Mgb3MgRW5kZXJlw6dvcyBkZSB1bWEgUGVzc29hCi0gRWRpdGEgZW5kZXJlw6dvcwotIEV4Y2x1aSBlbmRlcmXDp29zCi0gUGVybWl0ZSBtYXJjYXIgdW0gZW5kZXJlw6dvIGNvbW8gcHJpbmNpcGFsCi0gPiA6YnVsYjogKipEZXRhbGhlcyoqOiAqQ0VQIGFjZWl0YSBhcGVuYXMgOCBjYXJhY3RlcmVzIG51bcOpcmljb3MuIFRvZG8gcHJpbWVpcm8gZW5kZXJlw6dvIGNhZGFzdHJhZG8gw6kgbWFyY2FkbyBjb21vIHByaW5jaXBhbCBhdXRvbWF0aWNhbWVudGUuIFNlbXByZSBxdWUgdW0gZW5kZXJlw6dvIHByaW5jaXBhbCBmb3IgZXhjbHXDrWRvLCBjYXNvIGFpbmRhIGV4aXN0YW0gb3V0cm9zLCBvIHByaW1laXJvIGRhIGxpc3RhIHNlIHRvcm5hIG8gbm92byBwcmluY2lwYWwuKgoKIyMgOmhlYXZ5X2NoZWNrX21hcms6IFTDqWNuaWNhcyBlIFRlY25vbG9naWFzIFV0aWxpemFkYXMKCi0gYGBKYXZhIDE3YGAKLSBgYFNwcmluZyBCb290IDNgYAotIGBgQXBhY2hlIE5ldEJlYW5zIElERSAxNWBgCi0gYGBCYW5jbyBkZSBEYWRvcyBlbSBNZW3Ds3JpYSAoSDIpYGAKLSBgYFBvc3RtYW4gMTAgKHBhcmEgdGVzdGVzIHByw6F0aWNvcylgYAotIGBgSlVuaXQgNSAocGFyYSB0ZXN0ZXMgcHJvZ3JhbcOhdGljb3MpYGAKLSBgYFN3YWdnZXIgVUkgLyBPcGVuIEFQSSAzIChwYXJhIGRvY3VtZW50YcOnw6NvKWBgCi0gYGBQYWRyw6NvIGRlIFByb2pldG8gRFRPIChEYXRhIFRyYW5zZmVyIE9iamVjdClgYAotIGBgTW9kZWxhZ2VtIGNvbSBEREQgKERvbWFpbi1Ecml2ZW4gRGVzaWduKWBgCgojIyA6cm90YXRpbmdfbGlnaHQ6IE9ic2VydmHDp8O1ZXMKCi0gYGBDb21lbnTDoXJpb3MgZSBKYXZhZG9jOmBgIFNlIGZvciBkZSBzZXUgaW50ZXJlc3NlIGdlcmFyIG8gSmF2YWRvYyBkbyBwcm9qZXRvLCBvcyBjb21lbnTDoXJpb3MgasOhIGZvcmFtIGVzY3JpdG9zIHBhcmEgZmFjaWxpdGFyIG8gZW50ZW5kaW1lbnRvIGRlIGFsZ3VtYXMgZGVjaXPDtWVzIHRvbWFkYXMgZHVyYW50ZSBhIGltcGxlbWVudGHDp8Ojby4KLSBgYERhZG9zIGRlIFRlc3RlOmBgIFBhcmEgZmFjaWxpdGFyIG9zIHRlc3RlcywgZm9pIGRlaXhhZG8gbm8gZGlyZXTDs3JpbyBgYHNyYy9tYWluL3Jlc291cmNlc2BgIHVtIGFycXVpdm8gYGBkYXRhLnNxbGBgLCB1dGlsaXphZG8gcGFyYSBwb3B1bGFyIG8gYmFuY28gZGUgZGFkb3Mgc2VtcHJlIHF1ZSBhIGFwbGljYcOnw6NvIGZvciBpbmljaWFkYS4gQ29uZmlyYSBvIGFycXVpdm8gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2poYW5zZW5iYXJyZXRvL3Blc3NvYS1lbmRlcmVjby9ibG9iL21hc3Rlci9zcmMvbWFpbi9yZXNvdXJjZXMvZGF0YS5zcWwiPmNsaWNhbmRvIGFxdWk8L2E+LiA6YnVsYjogKipBVEVOw4fDg086KiogKk9zIHRlc3RlcyBkZSBpbnRlZ3Jhw6fDo28gZGVzZW52b2x2aWRvcyBlbSBKVW5pdCA1IHV0aWxpemFtIGVzdGVzIGRhZG9zLioKLSBgYFRyYXRhbWVudG8gZGUgRXJyb3M6YGAgQSBBUEkgY29udGEgY29tIHRyYXRhbWVudG8gZGUgZXJyb3MgZSBmb3JuZWNlIGFvIGNvbnN1bWlkb3IgdW0gbW9kZWxvIGRlIHJlcHJlc2VudGHDp8OjbyBkZSBlcnJvcyBiYXNlYWRvIG5hIGVzcGVjaWZpY2HDp8OjbyA8YSBocmVmPSJodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzgwNyI+UkZDIDc4MDcgKFByb2JsZW0gRGV0YWlscyBmb3IgSFRUUCBBUElzKTwvYT4sIHV0aWxpemFuZG8tYSBhcGVuYXMgY29tbyByZWZlcsOqbmNpYSwgbsOjbyBpbXBsZW1lbnRhbmRvIHRvdGFsbWVudGUgw6AgcmlzY2EuCgojIyA6Y29uc3RydWN0aW9uX3dvcmtlcjogQXV0b3IKCnwgOnRlY2hub2xvZ2lzdDogRGVzZW52b2x2ZWRvciB8Omdsb2JlX3dpdGhfbWVyaWRpYW5zOiBMaW5rcyDDmnRlaXN8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfDxwIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM3OTA2MDg/dj00IiB3aWR0aD0xMTU+PC9icj48c3ViPkpoYW5zZW4gQmFycmV0bzwvc3ViPjwvcD58PHVsPjxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vamhhbnNlbmJhcnJldG8/dGFiPXJlcG9zaXRvcmllcyI+R2l0SHViPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYnIubGlua2VkaW4uY29tL2luL2poYW5zZW4tYy1iYXJyZXRvIj5MaW5rZWRJbjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2poYW5zZW5iYXJyZXRvLyI+SW5zdGFncmFtPC9hPjwvbGk+PC91bD58Cg== readmeEtag: '"0e8bc30e12e68bc7188799a4f4361705c0e13c73"' readmeLastModified: Fri, 20 Oct 2023 00:37:13 GMT repositoryId: 590518845 description: >- API implementada para teste técnico no processo seletivo da Attornatus Procuradoria Digital para a vaga de Desenvolvedor Back End - Java. created: '2023-01-18T15:49:30Z' updated: '2024-07-03T19:51:52Z' language: Java archived: false stars: 1 watchers: 1 forks: 2 owner: jhansenbarreto logo: https://avatars.githubusercontent.com/u/13790608?v=4 repoEtag: '"bf94a431bd52b13e2604024efad5fe9626385037e76d15d35e16ca9f736ee3cd"' repoLastModified: Wed, 03 Jul 2024 19:51:52 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/bepopov/autoshowroom v3: true repositoryMetadata: base64Readme: >- IyMgR2V0dGluZyBTdGFydGVkCgpEb3dubG9hZCBzb3VyY2VzOgpgYGAKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9Cb2dkYW5LRlUvYXV0b3Nob3dyb29tLmdpdApgYGAKQ3JlYXRlIGRhdGFiYXNlIGFuZCBhZGQgeW91ciBwcm9wZXJ0aWVzIHRvIGFwcGxpY2F0aW9uLnByb3BlcnRpZXMuCkJ1aWxkIHNlcnZlciBieSB1c2luZyBidWlsZCB0YXNrLiBSdW4gaXQuIFVzZToKYGBgCmphdmEgLWphcgpgYGAKQnVpbGQgc29hcGNsaWVudCBvciByZXN0Y2xpZW50LiBSdW4gaXQuCkNvbm5lY3QgdG8gdGhlIHNlcnZlciBieSB1c2luZyAoYXZhaWxhYmxlIG5hbWVzIGFyZSBpbiB0aGUgY2xpZW50LmNzdiBmaWxlKToKYGBgCmNvbm5lY3QgPG5hbWU+CmBgYApUaGVyZSBhcmUgZmV3IGNvbW1hbmRzOgpgYGAKY3JlYXRlLW9yZGVyIC0tb3JkZXIgIjxtYWtlX25hbWU+IDxtb2RlbF9uYW1lPiA8b3B0aW9uc19uYW1lcyBzZXBhcmF0ZWQgYnkgQU5EIgplZGl0LW9yZGVyIC0tb3JkZXIgPG9yZGVyX2lkPiAtLW1ha2UgPG1ha2VfbmFtZT4gLS1vcHRpb25zIDxvcHRpb25zX25hbWVzIHNlcGFyYXRlZCBieSBBTkQ+CmRlbGV0ZS1vcmRlciA8b3JkZXJfaWQ+CmdldC1vcmRlcnMKZ2V0LW9yZGVycy1ieS1zdGF0dXMgLS1zdGF0dXMgPHN0YXR1cz4KYGBgCkFsbCB2YWx1ZXMgYXJlIGNvbXBsZXRhYmxlIChwcmVzcyBUQUIpCgojIyBSdW5uaW5nIHNlcnZlciB1c2luZyBEb2NrZXIKCkdvIHRvIHRoZSBzZXJ2ZXIgbW9kdWxlIHBhdGguCgpSdW46CmBgYApncmFkbGUgYnVpbGQKYGBgClRoZW4gcnVuOgpgYGAKZG9ja2VyLWNvbXBvc2UgdXAKYGBgCkNoZWNrIHNlcnZlciBpcyBydW5uaW5nIGJ5IGdvaW5nIHRvIHRoZSBwYWdlOiBsb2NhbGhvc3Q6OTAwMAojIyBEZXBsb3kgYWxsCkJlZm9yZSBzdGFydGluZyB0byBkZXBsb3kgY3JlYXRlIGNsdXN0ZXIgaW4gc29tZSBwbGF0Zm9ybSAoSSB1c2VkIEdvb2dsZSBDbG91ZCkgYW5kIGVuc3VyZSB0aGF0CnlvdSBoYXZlIGluc3RhbGxlZCBnY2xvdWQsIGt1YmVjdGwsIGhlbG0gaW4geW91ciBtYWNoaW5lLiBEb24ndCBmb3JnZXQgY29uZmlndXJlIHRoZSB0b29scy4KLSBidWlsZCB0aGUgYXBwbGljYXRpb25zIGFuZCBEb2NrZXIgaW1hZ2VzCihbX2plbmtpbnMtc2xhdmVfXShodHRwczovL2dpdGh1Yi5jb20vYmVwb3Bvdi9hdXRvc2hvd3Jvb20vdHJlZS9tYXN0ZXIvc2VydmVyL29wdC9qZW5raW5zL3NsYXZlKSwgCltfYXV0b3Nob3dyb29tLXNlcnZlcl9dKGh0dHBzOi8vZ2l0aHViLmNvbS9iZXBvcG92L2F1dG9zaG93cm9vbS90cmVlL21hc3Rlci9zZXJ2ZXIpLApbX2F1dG9zaG93cm9vbS1ncm9vdnktc2VydmVyX10oaHR0cHM6Ly9naXRodWIuY29tL2JlcG9wb3YvYXV0b3Nob3dyb29tL3RyZWUvbWFzdGVyL2dyb292eV9zZXJ2ZXIpKS4gVG8gZGVwbG95IApKZW5raW5zIHlvdSBjYW4gYWxzbyB1c2UgW2FsdGVybmF0aXZlIHdheV0oaHR0cHM6Ly9naXRodWIuY29tL2JlcG9wb3YvYXV0b3Nob3dyb29tL3RyZWUvbWFzdGVyL3NlcnZlci9vcHMvamVua2lucy9tYXN0ZXIpCiB0aGF0IGlzIHJlY29tbWVuZGVkIGFzIGl0IGhhcyBiZXR0ZXIgcGVyZm9ybWFuY2U6CmBgYApncmFkbGUgYnVpbGQKZG9ja2VyIGJ1aWxkIC10IFtTT1VSQ0VfSU1BR0VdIC4KYGBgCi0gcHVzaCB0aGUgaW1hZ2VzIHRvIHRoZSBkb2NrZXIgcmVnaXN0cnk7CmBgYApkb2NrZXIgdGFnIFtTT1VSQ0VfSU1BR0VdIFtIT1NUTkFNRV0vW1BST0pFQ1QtSURdL1tJTUFHRV0KZG9ja2VyIHB1c2ggW0hPU1ROQU1FXS9bUFJPSkVDVC1JRF0vW0lNQUdFXQpgYGAKLSBhcHBseSBgdGlsbGVyLXJiYWMueW1sYDoKYGBgCmt1YmVjdGwgYXBwbHkgLWYgdGlsbGVyLXJiYWMueW1sCmhlbG0gaW5pdCAtLXNlcnZpY2UtYWNjb3VudCB0aWxsZXIgLS1oaXN0b3J5LW1heCAyMDAKYGBgCi0gZGVwbG95CltjYXNzYW5kcmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9iZXBvcG92L2F1dG9zaG93cm9vbS90cmVlL21hc3Rlci9ncm9vdnlfc2VydmVyL29wcy9jYXNzYW5kcmEpCmJ5IHJ1bm5pbmcgYGBgaW5zdGFsbC5zaGBgYAotIGRlcGxveSBqZW5raW5zIHVzaW5nIHRoZSAKW2luc3RydWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL2JlcG9wb3YvYXV0b3Nob3dyb29tL3RyZWUvbWFzdGVyL3NlcnZlci9vcHQvamVua2lucykKLSBhcHBseQpbYXV0b3Nob3dyb29tLXNlcnZlci55bWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9iZXBvcG92L2F1dG9zaG93cm9vbS9ibG9iL21hc3Rlci9zZXJ2ZXIvYXV0b3Nob3dyb29tLXNlcnZlci55bWwpCmFuZApbYXV0b3Nob3dyb29tLWdyb292eS1zZXJ2ZXIueW1sXShodHRwczovL2dpdGh1Yi5jb20vYmVwb3Bvdi9hdXRvc2hvd3Jvb20vYmxvYi9tYXN0ZXIvZ3Jvb3Z5X3NlcnZlci9hdXRvc2hvd3Jvb20tZ3Jvb3Z5LXNlcnZlci55bWwpCihjaGFuZ2UgaW1hZ2UgbmFtZXMgdG8geW91cnMgYmVmb3JlKQoKVG8gdXNlIGxvY2FsbHkgZGVwbG95ZWQgYXBwbGljYXRpb25zIHlvdSBjYW4gcnVuIGBgYGt1YmVjdGwgcG9ydC1mb3J3YXJkYGBgIGluIHlvdXIgdGVybWluYWwu readmeEtag: '"0788a72833f0c65da988f0954b6d986acd9394be"' readmeLastModified: Sat, 06 May 2023 14:47:50 GMT repositoryId: 179305875 description: >- Autoshowroom is a training project consists in REST and SOAP server, REST-client written using Spring Shell, SOAP-client written on the previous way and gRPC-server written on Groovy. This repository contains examples of usage Docker, Docker Compose, Kubernetes and also shows how to configure and deploy Jenkins-server created: '2019-04-03T14:20:16Z' updated: '2023-05-06T14:21:16Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: bepopov logo: https://avatars.githubusercontent.com/u/20209992?v=4 repoEtag: '"5089dd6529e1dda60327aba5dcd87cddaa031d4ac229bf648055f8ae58463338"' repoLastModified: Sat, 06 May 2023 14:21:16 GMT foundInMaster: true category: Server Implementations id: 60dfc1ab39453d644a9e2cc366575d26 - source: openapi3 tags repository: https://github.com/microenv/node-typescript-api-boilerplate v3: true repositoryMetadata: base64Readme: IyBub2RlLXR5cGVzY3JpcHQtYm9pbGVycGxhdGU= readmeEtag: '"7ac6850a609af59783aa8bada4b581b18d6ca469"' readmeLastModified: Fri, 17 Apr 2020 01:57:13 GMT repositoryId: 256008749 description: >- 🚀 Boilerplate for typescript REST APIs ⭐Create production ready APIs using es7 and jest unit testing. created: '2020-04-15T18:51:33Z' updated: '2020-04-17T04:30:38Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 1 owner: microenv logo: https://avatars.githubusercontent.com/u/39780224?v=4 license: MIT repoEtag: '"6a241035618c3231042b223479b34dd7a2510a8e5f207d81104df12937544050"' repoLastModified: Fri, 17 Apr 2020 04:30:38 GMT foundInMaster: true category: - Data Validators - Parsers - Server Implementations id: f8a46fc254f10a5309dfb203c41ade0c - source: openapi3 tags repository: https://github.com/zhuzean/bookkeeping-demo v3: true repositoryMetadata: base64Readme: >- IyBCb29ra2VlcGluZyBQcm9qZWN0ClRoaXMgaXMgYSBkZW1vIHByb2plY3QgZm9yIGJvb2trZWVwaW5nIGFwcGxpY2F0aW9uLgpJdCBpcyBiYXNlZCBvbiB0aGUgVnVlIDMsIEZhc3RBUEkgYW5kIE5naW54LgoKIyMgV29ya2Zsb3cKTWFuYWdlZCBieSB0aGUgR2l0SHViIFtLYW5iYW4gYm9hcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9aaHVaZWFuL2Jvb2trZWVwaW5nLWRlbW8vcHJvamVjdHMvMSkKCiMjIERlcGxveW1lbnQgd2l0aCBLdWJlcm5ldGVzIDpzdGFyMjoKU2VlIG1vcmUgZGV0YWlscyBpbiB0aGlzIFtwYWdlXShodHRwczovL2dpdGh1Yi5jb20vWmh1WmVhbi9ib29ra2VlcGluZy1kZW1vL3RyZWUvbWFpbi9rOHMpCgojIyBQcmV2aWV3CiMjIyBPbmxpbmUgZGVtbwpQcm90b3R5cGUKLSBbRmlnbWEgbGlua10oaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvSVl4N1dCQUc5SE9zTnphZ05WQnVCTi9QZXJzb25hbC1ib29ra2VlcGluZy13ZWI/bm9kZS1pZD0wJTNBMSkKCkZyb250ZW5kOgotIFdlYiBwYWdlOiBodHRwOi8vZGVtby5rOHMuemVhbi5wcm8KCkJhY2tlbmQ6Ci0gT3BlbkFQSSBzY2hlbWE6IGh0dHA6Ly9hcGkuazhzLnplYW4ucHJvL2JpbGwvZG9jcwoKIyMjIEZyb250ZW5kIChWdWUgMykKSXQgc2hvd3MgaG93IHRvIGFkZCBhIG5ldyByZWNvcmQgb24gdGhlIGJvb2trZWVwaW5nIGZvciBjdXJyZW50IG1vbnRoIGR5bmFtaWNhbGx5LgoKIVtpbWFnZV0oaHR0cHM6Ly9naXRodWIuY29tL1podVplYW4vYm9va2tlZXBpbmctZGVtby9ibG9iL21haW4vcHJldmlldy9mcm9udGVuZC9kZW1vLmdpZikKCiMjIyBCYWNrZW5kIChGYXN0QVBJKQpGYXN0QVBJIGlzIHVzZWQgdG8gbWFrZSB0aGUgUmVzdGZ1bCBBUElzLgoKIyMjIyBPcGVuQVBJIHNjaGVtYQohW2ltYWdlXShodHRwczovL2dpdGh1Yi5jb20vWmh1WmVhbi9ib29ra2VlcGluZy1kZW1vL2Jsb2IvbWFpbi9wcmV2aWV3L2JhY2tlbmQvb3BlbmFwaS5wbmcpCgoKIyMgUnVuIGluIHRoZSBsb2NhbCBtYWNoaW5lCkNoZWNrIHRoaXMgW3BhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9aaHVaZWFuL2Jvb2trZWVwaW5nLWRlbW8vdHJlZS9tYWluL2s4cykgYWJvdXQgaG93IHRvIGRlcGxveSBpdCB3aXRoIG1pbmlrdWJlIGluIHRoZSBsb2NhbCBtYWNoaW5lCg== readmeEtag: '"d952e51d146c816a3a1b176df412a6cdec249448"' readmeLastModified: Sun, 11 Apr 2021 11:17:42 GMT repositoryId: 343094001 description: A demo project for bookkeeping created: '2021-02-28T11:58:42Z' updated: '2022-03-19T12:44:32Z' language: Python archived: false stars: 1 watchers: 2 forks: 0 owner: ZhuZean logo: https://avatars.githubusercontent.com/u/15837299?v=4 repoEtag: '"6d600130d1d36900c92d51149930ff084b032d17cb40628e94d2e1aa0318fcf4"' repoLastModified: Sat, 19 Mar 2022 12:44:32 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: 6d257cc38757411c1860231b4655e0d7 - source: openapi3 tags repository: https://github.com/mrredbobr/open-api-change-logger v3: true repositoryMetadata: base64Readme: >- IyMjIE9wZW5BcGkgY2hhbmdlLWxvZ2dlcgpgYGB0eXBlc2NyaXB0CmltcG9ydCB7IENoYW5nZUxvZ2dlciB9IGZyb20gIm9wZW4tYXBpLWNoYW5nZS1sb2dnZXIiOwppbXBvcnQgc291cmNlIGZyb20gIi4vc291cmNlLmpzb24iOwppbXBvcnQgZGVzdGluYXRpb24gZnJvbSAiLi9kZXN0aW5hdGlvbi5qc29uIjsKaW1wb3J0IHsgT3BlbkFQSU9iamVjdCB9IGZyb20gIkBuZXN0anMvc3dhZ2dlci9kaXN0L2ludGVyZmFjZXMiOwppbXBvcnQgKiBhcyBwYXRoIGZyb20gInBhdGgiOwoKY29uc3QgY2hhbmdlTG9nZ2VyOiBDaGFuZ2VMb2dnZXIgPSBuZXcgQ2hhbmdlTG9nZ2VyKHsKICBvbGRTY2hlbWE6IHNvdXJjZSBhcyBPcGVuQVBJT2JqZWN0LAogIG5ld1NjaGVtYTogZGVzdGluYXRpb24gYXMgT3BlbkFQSU9iamVjdCwKfSk7CgpjaGFuZ2VMb2dnZXIuc2F2ZUZpbGVzKHsKICBodG1sRm9sZGVyOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZmlsZXMnLCAnaHRtbCcpLAogIHN0eWxlc0ZvbGRlcjogcGF0aC5qb2luKF9fZGlybmFtZSwgJ2ZpbGVzJywgJ3N0eWxlJyksCiAgYXBpTmFtZTogJ3Rlc3QtYXBpJwp9KTsKYGBgCg== readmeEtag: '"6266572b2327228f4599bfaa76fcf287b39a2717"' readmeLastModified: Sat, 22 Apr 2023 17:00:10 GMT repositoryId: 418848216 description: Generates HTML-page with api changes. created: '2021-10-19T09:03:57Z' updated: '2023-04-22T17:00:16Z' language: CSS archived: false stars: 1 watchers: 2 forks: 0 owner: MrRedBobr logo: https://avatars.githubusercontent.com/u/46565863?v=4 repoEtag: '"6b1a3a50b80c9639d5faf0969b5d8f6420ba4af8b0fd5bea254a9615c97bd7a1"' repoLastModified: Sat, 22 Apr 2023 17:00:16 GMT foundInMaster: true category: - Data Validators - Parsers id: c6c4a1cf5612c2410ec7d22a2b5a10c5 - source: openapi3 tags repository: https://github.com/opticsquid/bellatrix v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+DQogICA8aW1nIHNyYz0iLi9vbGQtdmVyc2lvbi9QdWJsaWMvYmVsbGF0cml4JTIwc29saWQucG5nIiBhbHQ9IkJlbGxhdHJpeCBMb2dvIj4NCjwvcD4NCg0KIyBCRUxMQVRSSVgNCg0KQSBOb2RlIEpTIHByb2plY3QgdG8gcHJvdmlkZSB5b3Ugd2l0aCBhIHN0YXJ0ZXIgY29kZSBmb3IgeW91ciBzZXJ2ZXIgc2lkZSBhcHBsaWNhdGlvbiB3aXRoIGJ1aWx0IGluIHJvdXRlcyBhbmQgZnVuY3Rpb25hbGl0aWVzIGZvciB0aGUgYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gbmVlZHMgb2YgeW91ciBhcHBsaWNhdGlvbi4gV2UgbWFpbmx5IGZvY3VzIG9uIHRoZSAqKnNlY3VyaXR5Kiogb2YgdGhlIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHJvdXRlcw0KDQpXZSBrZWVwIGltcGxlbWVudGluZyBhbGwgdGhlIGxhdGVzdCBzZWN1cml0eSBtZWFzdXJlcyBhbmQgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgcmVxdWlyZWQgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGRhdGEgdG8gcmVtYWluIHNlY3VyZSBhbmQgbWFrZSBzdXJlIGRhdGEgYW5kIGFjY2VzcyBpcyBhdmFpbGFibGUgdG8gb25seSB0aGUgb25lcyBpbnRlbmRlZCB0by4gV2UgZG8gdGhlIGJvcmluZyBzZWN1cml0eSBzdHVmZiBzbyB0aGF0IHlvdSBjYW4gZW5qb3kgeW91ciB0aW1lIGJ1aWxkaW5nIG90aGVyIGV4Y2l0aW5nIGZ1bmN0aW9uYWxpdGllcyB3aXRoIG91dCB3b3JyeWluZyBhYm91dCB0aGUgc2VjdXJpdHkgb2YgeW91ciBhcHBsaWNhdGlvbg0KDQojIFdlIGhhdmUgMiB2ZXJzaW9ucyBmb3IgdGhpcyBhcHANCg0KMS4gVGhlIG9sZCB2ZXJzaW9uIHdoaWNoIGlzIGJ1aWx0IHVzaW5nIGV4cHJlc3MuanMuIEFzIGV4cHJlc3MganMgaXMgYSBtaW5pbWFsaXN0IGZyYW1ld29yayBhIGxvdCBvZiBzdHJ1Y3R1cmUgYW5kIHNlY3VyaXR5IGNvdWxkIG5vdCBiZSBwcm92aWRlZCB0byB0aGUgYXBwLiBTbywgaXQgbWF5IGJlIHN1c2NlcHRpYmxlIHRvIHNvbWUgYXR0YWNrcw0KMi4gVGhlIG5ldyB2ZXJzaW9uLiBUaGlzIGlzIGJlaW5nIGJ1aWx0IHVzaW5nIGBuZXN0LmpzYC4gV2hpY2ggaXMgYSB2ZXJ5IHN0YWJsZSBvcGluaW9uYXRlZCBmcmFtZXdvcmsgdGhhdCBnaXZlcyBhIGxvdCBvZiBzdHJ1Y3R1cmUgdG8gdGhlIGNvZGUgYW5kIGZvbGxvd3MgT09QIGFuZCBNVkMgbW9kZWwuIEJ5IGRlZmF1bHQgaXQgYnJpbmdzIGEgbG90IG9mIHNlY3VyaXR5IHRvIHRoZSB0YWJsZSBhbmQgaXMgbXVjaCBtb3JlIG9yZ2FuaXplZCB3aGljaCBoZWxwcyB0aGUgY29kZSBzdWl0YWJsZSBmb3IgaW1wbGVtZW50YXRpb24gaW4gbGFyZ2Ugc2NhbGUgYXBwbGljYXRpb25zLg0KDQoqKkJlbG93IGFyZSB0aGUgc3RlcHMgdG8gYnVpbGQgdGhlIG9sZCB2ZXJzaW9uLiBUaGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG5ldyB2ZXJzaW9uIGlzIGluIHRoZSBbbmV3LXZlcnNpb25dKC4vbmV3LXZlcnNpb24vKSBmb2xkZXIuKioNCg0KPiBXZSBmb2xsb3cgc29tZSBiYXNpYyBydWxlcyBmb3IgdGhlIHNlY3VyaXR5IG9mIHRoZSBhcHAuDQoNCi0gV2UgdXNlIHRoZSBbSldUXShodHRwczovL2p3dC5pby8pIGZvciB0aGUgYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uDQoNCi0gV2UgdXNlIGFuIGFwcHJvYWNoIG9mIHRpbWUgYmFzZWQgdG9rZW4gZm9yIHRoZSBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbiBvZiB0aGUgYXBwbGljYXRpb24NCi0gRm9yIHRoaXMgdXNlciBnZXRzIDIgdG9rZW5zIGFmdGVyIHN1Y2Nlc3NmdWwgbG9naW4uIE9uZSBpcyBjYWxsZWQgYGFjY2Vzc190b2tlbmAgKioodmFsaWQgZm9yIDE1IG1pbnMpKiogYW5kIHRoZSBvdGhlciBpcyBjYWxsZWQgYHJlZnJlc2hfdG9rZW5gDQotIEV2ZXJ5IHRpbWUgdGhlIHVzZXIgbWFrZXMgYSByZXF1ZXN0IHRvIGEgcHJvdGVjdGVkIHJvdXRlLCB0aGUgYGFjY2Vzc190b2tlbmAgc2hvdWxkIGJlIHNlbnQgaW4gdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXINCg0KLSBFdmVyeXRpbWUgdGhlIGBhY2Nlc3NfdG9rZW5gIGV4cGlyZXMsIHRoZSB1c2VyIGNhbiByZXF1ZXN0IGEgbmV3IGBhY2Nlc3NfdG9rZW5gIGJ5IHNlbmRpbmcgYSAqKkdFVCoqIHJlcXVlc3QgdG8gYFx0b2tlbmAgcm91dGUuIFRoZSBgcmVmcmVzaF90b2tlbmAgc2hvdWxkIGJlIHByb3ZpZGVkIGluIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyIG9mIHRoZSByZXF1ZXN0DQoNCj4gV2hpbGUga2VlcGluZyBhbiBleWUgb24gdGhlIHNlY3VyaXR5IHdlIGFsc28gZm9jdXMgb24gcGVyZm9ybWFuY2UsIHNjYWxhYmlsaXR5IGFuZCByZXVzYWJsaXR5IG9mIHRoZSBjb2RlIGJ5IGJyZWFraW5nIHRoZSBjb2RlIHRvIHNtYWxsIG1pZGRsZXdhcmVzIGFuZCBhc3luY2hyb25pemluZyB0aGUgcHJvY2Vzc2VzIGFzIG11Y2ggYXMgcG9zc2libGUuIFdlIHBhcmFsbGVsaXplIHRoZSBwcm9taXNlcyBhbmQgbmV0d29yayByZXF1ZXN0cyB3aGVuIGV2ZXIgcG9zc2libGUgdG8gbWFrZSB0aGUgYXBwbGljYXRpb24gbW9yZSBwZXJmb3JtYW50IHNjYWxhYmxlIGFuZCByZXVzYWJsZS4NCg0KIyMgU3RlcHMgdG8gZ2V0IHN0YXJ0ZWQNCg0KMS4gQ2xvbmUgdGhlIF9CZWxsYXRyaXhfIHJlcG9zaXRvcnkuDQoyLiBNYWtlIHN1cmUgdG8gaW5zdGFsbCB0aGUgbGF0ZXN0ICoqTFRTIHZlcnNpb24gb2YgTm9kZSBKUyoqDQozLiBBZnRlciBuYXZpZ2F0aW5nIHRvIHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOg0KDQogICBgYGBzaA0KICAgbnBtIGluc3RhbGwNCiAgIGBgYA0KDQo0LiBDcmVhdGUgYSBgLmVudmAgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC4gVGhpcyBmaWxlIHdpbGwgY29udGFpbiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHJlcXVpcmVkIGZvciB0aGUgYXBwbGljYXRpb24gdG8gcnVuLg0KICAgVGhlIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBmaWVsZHM6DQoNCiAgIC0gYERCX1VSSWAgLSBfVVJJIG9mIHRoZSBNb25nb0RCIGRhdGFiYXNlXy4NCiAgIC0gYEpXVF9BQ1NfU0VDUkVUYCAtIF9TZWNyZXQga2V5IGZvciB0aGUgSldUIGBhY2Nlc3NfdG9rZW5gXw0KICAgLSBgSldUX1JFRl9TRUNSRVRgIC0gX1NlY3JldCBrZXkgZm9yIHRoZSBKV1QgYHJlZnJlc2hfdG9rZW5gXw0KDQo1LiBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbiBpbiBwcm9kdWN0aW9uIG1vZGU6DQoNCiAgIGBgYHNoDQogICBucG0gc3RhcnQNCiAgIGBgYA0KDQo2LiBUbyBzdGFydCB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZSwgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoNCg0KICAgYGBgc2gNCiAgIG5wbSBydW4gZGV2DQogICBgYGANCg== readmeEtag: '"23438bbeb18b2a21446bb7bdf1125b6a17fea313"' readmeLastModified: Sun, 09 Oct 2022 11:21:44 GMT repositoryId: 437827006 description: >- A prebuilt Express JS Authentication & Authorization Project based on a REST API interface. It has the basic authentication and Authorization routes with the latest security measures implemented so that your application is much more secure from day 1. You are welcome to build upon and extend this project as and when required. created: '2021-12-13T10:21:01Z' updated: '2023-04-30T11:25:55Z' language: JavaScript archived: false stars: 1 watchers: 1 forks: 0 owner: opticSquid logo: https://avatars.githubusercontent.com/u/59192460?v=4 license: GPL-3.0 repoEtag: '"f1f7e913e17ab97b22d63739663fb46e17fea3e825381385dc2af753524cfc84"' repoLastModified: Sun, 30 Apr 2023 11:25:55 GMT foundInMaster: true category: Server Implementations id: cc0bf508eefe56e6f6892b0955c5ec0c oldLocations: - https://github.com/soumalyatheking22012001/Bellatrix - source: openapi3 tags repository: https://github.com/xandermoroz/eora_apibot v3: true id: 58839ee050286ff6dcf5feab426ebf9e repositoryMetadata: base64Readme: >- IyBFT1JBX0FQSUJvdCAoRmFzdEFQSSArIFNRTEFsY2hlbXkgKyBUZWxlYm90KQoKIyMg0J7Qv9C40YHQsNC90LjQtSDQv9GA0L7QtdC60YLQsAoKRU9SQV9BUElCb3Qg0L/RgNC10LTRgdGC0LDQstC70Y/QtdGCINGB0L7QsdC+0Lkg0YLQtdC70LXQs9GA0LDQvCDQsdC+0YLQsCAoYHB5VGVsZWdyYW1Cb3RBcGlgKSwg0L7RgtC70LjRh9Cw0Y7RidC10LPQviDQutC+0YLQsCDQvtGCINGF0LvQtdCx0LAuINCn0YLQvtCx0Ysg0L/RgNC40L3Rj9GC0Ywg0YDQtdGI0LXQvdC40LUg0LHQvtGCINCy0LXQtNC10YIg0LTQuNCw0LvQvtCzINGBINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRj9C80LgsINC30LDQtNCw0LLQsNGPINC10LzRgyDQstC+0L/RgNC+0YHRiy4g0J3QsCDQvtGB0L3QvtCy0LUg0L7RgtCy0LXRgtC+0LIg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCx0L7RgiDQv9GA0LjQvdC40LzQsNC10YIg0YDQtdGI0LXQvdC40LUuINCR0L7RgiDQv9GA0L7RiNC10Lsg0YLQtdGB0YLQuNGA0L7QstCw0L3QuNC1INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LUoYHVuaXR0ZXN0YCkg0Lgg0YDRg9GH0L3QvtC1INGC0LXRgdGC0LjRgNC+0LLQsNC90LjQtS4g0Jog0LHQvtGC0YMg0L/RgNC40LvQsNCz0LDQtdGC0YHRjyDQsNGB0LjQvdGF0YDQvtC90L3Ri9C5IGJhY2tlbmQt0YHQtdGA0LLQuNGBKGBGYXN0QVBJYCkg0LTQu9GPINGF0YDQsNC90LXQvdC40Y8g0LLRgdC10Lkg0L/QtdGA0LXQv9C40YHQutC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5INGBINCx0L7RgtC+0LwuINCd0LAg0Y3RgtC+0YIg0YHQtdGA0LLQuNGBINC+0YIg0LHQvtGC0LAg0L7RgtC/0YDQsNCy0LvRj9C10YLRgdGPKGByZXF1ZXN0c2ApINC60LDQttC00L7QtSDRgdC+0L7QsdGJ0LXQvdC40LUuINCf0LXRgNC10L/QuNGB0LrQsCDQtNC+0YHRgtGD0L/QvdCwINC00LvRjyDRh9GC0LXQvdC40Y8sINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0Lgg0YPQtNCw0LvQtdC90LjRjy4g0KPQv9GA0LDQstC70LXQvdC40LUg0LHQsNC30L7QuSDQtNCw0L3QvdGL0YUg0YDQtdCw0LvQuNC30YPQtdGC0YHRjyDQv9C+0YHRgNC10LTRgdGC0LLQvtC8IE9STShgU1FMQWxjaGVteWApLtCR0LDQt9CwINC00LDQvdC90YvRhSAtIGBTUUxpdGVgLiDQkdC+0YIg0LTQvtGB0YLRg9C/0LXQvSDQv9C+INCw0LTRgNC10YHRgzogW0JyZWFkT3JDYXRib3RdKGh0dHBzOi8vdC5tZS9CcmVhZE9yQ2F0Ym90KQoKIyMg0KHRgtC10Log0YLQtdGF0L3QvtC70L7Qs9C40LkgCgrQkiDRhdC+0LTQtSDRgdC+0LfQtNCw0L3QuNGPINC/0YDQvtC10LrRgtCwINC/0YDQuNC80LXQvdGP0LvQuNGB0Ywg0YDQsNC30LvQuNGH0L3Ri9C1INC40L3RgdGC0YPQvNC10L3RgtGLINC4INGC0LXRhdC90L7Qu9C+0LPQuNC4LiDQntC90Lgg0L/RgNC10LTRgdGC0LDQstC70LXQvdGLINC90LjQttC1OgoKIVtQeXRob25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcHl0aG9uLTM2NzBBMD9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289cHl0aG9uJmxvZ29Db2xvcj1mZmRkNTQpCiFbUHlDaGFybV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9weWNoYXJtLTE0Mz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289cHljaGFybSZsb2dvQ29sb3I9YmxhY2smY29sb3I9YmxhY2smbGFiZWxDb2xvcj1ncmVlbikKIVtGYXN0QVBJXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Zhc3RBUEktMDA1NTcxP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1mYXN0YXBpKQohW1NRTGl0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zcWxpdGUtJTIzMDc0MDVlLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289c3FsaXRlJmxvZ29Db2xvcj13aGl0ZSkKIVtNYXJrZG93bl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYXJrZG93bi0lMjMwMDAwMDAuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1tYXJrZG93biZsb2dvQ29sb3I9d2hpdGUpCgojIyDQmtGA0LDRgtC60LDRjyDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Y8gQVBJCgrQntCx0YrQtdC60YLQvtC8INGB0LXRgNCy0LjRgdCwINC4INCx0LDQt9GLINC00LDQvdC90YvRhSDQstGL0YHRgtGD0L/QsNC10YIg0YHQvtC+0LHRidC10L3QuNC1KFRHTWVzc2FnZSkuINCe0L0g0LjQvNC10LXRgiDRgdC70LXQtNGD0Y7RidC40Lkg0LLQuNC0OiAKYGBgc2gKewogICJpZCI6IDAsCiAgImNoYXRfaWQiOiAwLAogICJ0YXNrIjogInN0cmluZyIKfQpgYGAK0J7QsdGK0LXQutGCINC40LzQtdC10YIg0YLRgNC4INC/0L7Qu9GPOiDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdC+0L7QsdGJ0LXQvdC40Y8oaWQpLCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQtNC40LDQu9C+0LPQsChjaGF0X2lkKSDQuCDRgtC10LrRgdGCINGB0L7QvtCx0YnQtdC90LjRjyh0ZXh0KS4g0KDQsNCx0L7RgtCwINGBINC+0LHRitC10LrRgtCw0LzQuCDQvtGB0YPRidC10YHRgtCy0LvRj9C10YLRgdGPINC/0L4g0YHQu9C10LTRg9GO0YnQuNC8INGN0L3QtNC/0L7QuNC90YLQsNC8OiAKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKiovY3JlYXRlX21lc3NhZ2UqKl0gfCAqKlBPU1QqKiAvdGdtZXNzYWdlIHwg0JTQvtCx0LDQstC70LXQvdC40LUg0L3QvtCy0L7Qs9C+INGB0L7QvtCx0YnQtdC90LjRjy4KWyoqL3JlYWRfbWVzc2FnZSoqXSB8ICoqR0VUKiogL3RnbWVzc2FnZS97aWR9IHwgINCY0LfQstC70LXRh9C10L3QuNC1INGB0L7QvtCx0YnQtdC90LjRjyDQv9C+IGBJRGAuClsqKi91cGRhdGVfbWVzc2FnZSoqXSB8ICoqUFVUKiogL3RnbWVzc2FnZS97aWR9IHwg0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSDRgdC+0L7QsdGJ0LXQvdC40Y8g0L/QviBgSURgLgpbKiovZGVsZXRlX21lc3NhZ2UqKl0gfCAqKkRFTEVURSoqIC90Z21lc3NhZ2Uve2lkfSB8INCj0LTQsNC70LXQvdC40LUg0L/QvtGB0YLQsCDQv9C+IGBJRGAuClsqKi90Z21lc3NhZ2VzKipdIHwgKipHRVQqKiByZWFkX21lc3NhZ2VfbGlzdCB8INCY0LfQstC70LXRh9C10L3QuNC1INCy0YHQtdGFINGB0L7QvtCx0YnQtdC90LjQuSDRgdC/0LjRgdC60L7QvC4KCtCY0YHRh9C10YDQv9GL0LLQsNGO0YnRg9GOINC40L3RhNC+0YDQvNCw0YbQuNGOINC/0L4g0YDQsNCx0L7RgtC1IEFQSSDQvNC+0LbQvdC+INC/0L7Qu9GD0YfQuNGC0Ywg0L/QvtGB0LvQtSDQt9Cw0L/Rg9GB0LrQsCDQv9C+INCw0LTRgNC10YHRgyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvZG9jcwrQlNC+0LrRg9C80LXQvdGC0LDRhtC40Y8g0L3QsCDQvtGB0L3QvtCy0LUgU3dhZ2dlciwg0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGB0L4g0YHRgtCw0L3QtNCw0YDRgtC+0LwgT3BlbkFQSSAuCgojIyDQmNC90YHRgtGA0YPQutGG0LjRjyDQv9C+INGD0YHRgtCw0L3QvtCy0LrQtSDQtNC70Y8g0YHRgNC10LTRiyBXaW5kb3dzINC40LvQuCBPUyAo0LjRgdC/0L7Qu9GM0LfRg9C50YLQtSDRgtC10YDQvNC40L3QsNC7KQoKMS4g0JrQu9C+0L3QuNGA0YPQtdGC0LUg0YDQtdC/0L7Qt9C40YLQvtGA0LjQuQpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL1hhbmRlck1vcm96L0VPUkFfQVBJQm90LmdpdApgYGAKMi4g0KPRgdGC0LDQstC70LjQstCw0LXRgtC1LCDRgNCw0YHQv9Cw0LrQvtCy0YvQstCw0LXRgtC1INC4INCw0LrRgtC40LLQuNGA0YPQtdGC0LUg0LLQuNGA0YLRg9Cw0LvRjNC90L7QtSDQvtC60YDRg9C20LXQvdC40LUgKHZpcnR1YWwgZW52aXJvbm1lbnQpCmBgYHNoCnBpcCBpbnN0YWxsIHZpcnR1YWxlbnYKCnB5dGhvbiAtbSB2ZW52IGVudiAgCgouXGVudlxTY3JpcHRzXGFjdGl2YXRlICAKYGBgCjMuINCj0YHRgtCw0LLQu9C40LLQsNC10YLQtSDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC/0YDQvtC10LrRgtCwLiDQmNGFINCy0YHQtdCz0L4gNCAoZmFzdGFwaSwgdGVsZWJvdCwgc3FsYWxjaGVteSwgcmVxdWVzdHMpLiDQnNC+0LbQvdC+INCy0YDRg9GH0L3Rg9GOINC40LvQuCDQutC+0LzQsNC90LTQvtC5OgpgYGBzaApwaXAgaW5zdGFsbCBmYXN0YXBpIHNxbGFsY2hlbXkgdGVsZWJvdCByZXF1ZXN0cwpgYGAKNC4g0JfQsNC/0YPRgdC60LDQtdGC0LUgQVBJOgpgYGBzaAp1dmljb3JuIG1haW46YXBwIC0tcmVsb2FkIApgYGAKNS4g0J7RgtC60YDRi9Cy0LDQtdGC0LUg0LLRgtC+0YDQvtC5INGC0LXRgNC80LjQvdCw0Lsg0LTQu9GPINC30LDQv9GD0YHQutCwINC/0LDRgNCw0LvQu9C10LvRjNC90L7Qs9C+INC/0YDQvtGG0LXRgdGB0LAuINCf0LXRgNC10YXQvtC00LjRgtC1INCyINC00LjRgNC10LrRgtGA0L7QuNGOICJ0ZWxlYm90IiDQuCDQt9Cw0L/Rg9GB0LrQsNC10YLQtSDQsdC+0YLQsChDYXRPckJyZWFkQm90LnB5KToKYGBgc2gKY2QgdGVsZWJvdAoKcHl0aG9uIENhdE9yQnJlYWRCb3QucHkgIApgYGAKCjYuINCe0LHRidCw0LnRgtC10YHRjCDRgSDQsdC+0YLQvtC8INC4INC90LDQsdC70Y7QtNCw0LnRgtC1INGA0LDQsdC+0YLRgyDRgdC10YDQstC40YHQsC4g0J3QsNGB0LvQsNC20LTQsNC50YLQtdGB0Ywg0YDQtdC30YPQu9GM0YLQsNGC0L7QvCkKCiMjINCb0LjRhtC10L3Qt9C40Y8KCk1hZmZpbldhcmUKCiMjINCQ0LLRgtC+0YDRiwoKKiBbWGFuZGVyTW9yb3pdKGh0dHBzOi8vaHR0cHM6Ly9naXRodWIuY29tL1hhbmRlck1vcm96LykgLSAq0JLRgdC1INGA0LDQsdC+0YLRiyoK readmeEtag: '"3cecc27788852725c328e8768905d0a809a6fc8f"' readmeLastModified: Thu, 08 Dec 2022 21:00:42 GMT repositoryId: 575672055 description: Диалоговый телеграмм бот отличающий кота от хлеба. created: '2022-12-08T03:17:47Z' updated: '2023-08-08T19:34:19Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: XanderMoroz logo: https://avatars.githubusercontent.com/u/100166864?v=4 repoEtag: '"55ec10842922aec6bc5bacb3369bcb3d5d97b2f8fe2698a3ebf368544129fe79"' repoLastModified: Tue, 08 Aug 2023 19:34:19 GMT category: Mock foundInMaster: true - source: openapi3 tags repository: https://github.com/old-adapdr/masonite-openapi-generator v3: true id: 11d3c2cf54b258ff36b3ea9f360a54da repositoryMetadata: base64Readme: >- IyBtYXNvbml0ZS1vcGVuYXBpLWdlbmVyYXRvcgpDb21pbmcgc29vbiEKClRvZG86Ci0gQWRkIHN1cHBvcnQgZm9yIEF1dGggJiBSZWRpcmVjdHMKLSBBZGQgc3VwcG9ydCBmb3IgY3JlYXRlIG1vZGVscyB8IHVzZSBidWlsdC1pbnMgZm9yIGR5bmFtaWMgcmVzcG9uc2UKLSBBZGQgc3VwcG9ydCBmb3IgaGFuZGxlIG9uZS9tYW55Ci0gQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlLWFyZ3MtdHlwZXMgKG9ubHkgcXVlcnktcGFyYW1zIGF0bSkKCi0gTW92ZSBjb21tYW5kcyArIHNlcnZpY2UgcHJvdmlkZXIgdG8gcGFja2FnZQotIENyZWF0ZSBpbnN0YWxsY29tbWFuZA== readmeEtag: '"60b7f574efff8ed6637eba4ae336f2f7b131c6f0"' readmeLastModified: Sun, 22 Nov 2020 19:05:52 GMT repositoryId: 314484870 description: >- Third-party package for Masonite that utilizes the built-in routing engine and database models to generate valid OpenAPI 3 schema's. created: '2020-11-20T07:58:33Z' updated: '2023-01-28T11:30:27Z' language: Python archived: true stars: 1 watchers: 2 forks: 0 owner: old-adapdr logo: https://avatars.githubusercontent.com/u/49159860?v=4 license: MIT repoEtag: '"75f5bfe20b48cfbbd9bb8a85e9b9584812482dd0ee3b8afdc9efb906fa2f2472"' repoLastModified: Sat, 28 Jan 2023 11:30:27 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/adapdr/masonite-openapi-generator - source: openapi3 tags repository: https://github.com/thekeogh/loopback-postgresql-graphql v3: true id: 730a635e026c886ae1e32749e8c73735 repositoryMetadata: base64Readme: >- IyBMb29wQmFjayA0IFBvc3RncmVTUUwgR3JhcGhRTCBCb2lsZXJwbGF0ZQoKQSBib2lsZXJwbGF0ZS9zdGFydGVyIHByb2plY3QgZm9yIHF1aWNrbHkgYnVpbGRpbmcgR3JhcGhRTCBBUElzIHVzaW5nIE5vZGUuanMsIExvb3BCYWNrIDQgYW5kIFBvc3RncmVTUUwuCgojIyBQcmVyZXF1aXNpdGVzCgotIE5vZGUgKGJ1aWx0IHdpdGggYDE5YCwgYnV0IHNob3VsZCB3b3JrIG9uIGxvd2VyKQotIFBvc3RncmVTUUwgKGxvY2FsbHksIGV4dGVybmFsbHkgb3IgZG9ja2VyKQoKIyMgU2V0dXAKCkNsb25lIHRoZSByZXBvc2l0b3J5CgpgYGBzaGVsbApnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206dGhla2VvZ2gvbG9vcGJhY2stcG9zdGdyZXNxbC1ncmFwaHFsLmdpdApgYGAKCkluc3RhbGwgdGhlIGRlcGVuZGVuY2llcwoKYGBgc2hlbGwKbnBtIGluc3RhbGwKYGBgCgpDcmVhdGUgYSBsb2NhbCBgLmVudmAgCgpgYGBzaGVsbAp0b3VjaCAuZW52LmRldmVsb3BtZW50LmxvY2FsCmBgYAoKQ29weSB0aGUgdmFsdWVzIChvbmx5IHRoZSBvbmVzIHlvdSBuZWVkIHRvIGNoYW5nZSkgZnJvbSB0aGUgYC5lbnYuZGV2ZWxvcG1lbnRgIGZpbGUgdG8gdGhpcyBuZXcgZmlsZSwgZm9yIGV4YW1wbGU6CgpgYGBzaGVsbAojIERhdGFiYXNlCkRCX1VTRVI9am9lCkRCX1BBU1NXT1JEPW15c3VwZXJwYXNzd29yZApEQl9EQVRBQkFTRT1sb29wYmFjawpgYGAKCj4gTW9yZSBkZXRhaWxzIG9uIHRoZSBlbnZpcm9ubWVudCBjb25maWcgW2JlbG93XSgjZW52aXJvbm1lbnQpLgoKTWlncmF0ZSB0aGUgZGF0YWJhc2UKCj4gU2VlIHRoZSBbZGF0YWJhc2VdKCNkYXRhYmFzZSkgc2VjdGlvbiBmb3IgdGhpcyBzdGVwLgoKU3RhcnQgdGhlIEFQSQoKYGBgc2hlbGwKbnBtIHN0YXJ0CiMgb3IgZm9yIGRldiAodXNpbmcgdHNjLXdhdGNoKQpucG0gcnVuIGRldgpgYGAKCllvdSBzaG91bGQgbm93IHNlZSB0aGUgcmVsZXZhbnQgVVJMcyBpbiB5b3VyIHRlcm1pbmFsLgoKIyMgRGF0YWJhc2UKCkFsdGhvdWdoIGRlc2lnbmVkIHdpdGggUG9zdGdyZVNRTCBpbiBtaW5kLCB0aGVyZSBpcyBubyByZWFzb24gd2h5IHlvdSBjYW5ub3QgY2hhbmdlIHRoZSBkYXRhc291cmNlIHRvIGFub3RoZXIgKGUuZy4gTWFyaWFEQiwgT3JhY2xlLCBNb25nbyBldGMpLCBpdCBpcyBMb29wQmFjayBhZnRlciBhbGwsIGFuZCBoYXMgbWFueSBkcml2ZXJzLiBCdXQgd2UgdXNlIFBvc3RncmVTUUwgZm9yIHRoaXMgQVBJCgpPbmNlIHlvdSBoYXZlIGVudGVyZWQgeW91ciBkYXRhYmFzZSBjcmVkZW50aWFscyBbYWJvdmVdKCNzZXR1cCksIFBvc3RncmVTUUwgaXMgcmVhZHkgdG8gZ28gb3V0LXRoZS1ib3guIFRoZXJlIGlzIGFuIGV4YW1wbGUgYHVzZXJgIG1vZGVsIGluIHRoZSBgbW9kZWxzL2AgZm9sZGVyIHJlYWR5IHRvIGdvLCB0byBtaWdyYXRlIHRoaXM6CgpgYGBzaGVsbApOT0RFX0VOVj1kZXZlbG9wbWVudCBucG0gcnVuIG1pZ3JhdGUKYGBgCgpOb3cgY2hlY2sgeW91ciBkYXRhYmFzZSBhbmQgeW91IHNob3VsZCBzZWUgYSBgdXNlcmAgdGFibGUuCgojIyBHcmFwaFFMCgpHcmFwaFFMIGlzIGJ1aWx0IGluIHRvIHRoZSBzZXJ2aWNlIHZpYSB0aGUgW29wZW5hcGktdG8tZ3JhcGhxbF0oaHR0cHM6Ly9naXRodWIuY29tL0lCTS9vcGVuYXBpLXRvLWdyYXBocWwpIGFuZCBbZ3JhcGhxbC1odHRwXShodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9ncmFwaHFsLWh0dHApIGxpYnJhcmllcy4gVGhpcyBtZWFucywgdGhhdCBHcmFwaFFMIHdpbGwgcnVuIG9uIHRoZSBzYW1lIHBvcnQvdXJsIGFzIHlvdXIgT0FTMyBSRVNUZnVsIEFQSS4gRm9yIGV4YW1wbGU6CgpgYGAKUkVTVGZ1bDogaHR0cHM6Ly9sb2NhbGhvc3Q6MzIwMApHcmFwaFFMOiBodHRwczovL2xvY2FsaG9zdDozMjAwL2dyYXBocWwKYGBgCgo+IEdyYXBoaVFMIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgoKIyMgRW52aXJvbm1lbnQKCltkb3RlbnYtZmxvd10oaHR0cHM6Ly9naXRodWIuY29tL2tlcmltZHpoYW5vdi9kb3RlbnYtZmxvdykgaXMgdXNlZCBvdXQgdGhlIGJveCwgc28gcGxlYXNlIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gb3ZlciB0aGVyZSBmb3IgbW9yZSBvbiB0aGlzLgoKSXQncyBhbHNvIGFkdmlzYWJsZSB0byBhZGQgYW55IG5ldyBlbnYgdmFyaWFibGVzIHRvIHRoZSBgc3JjL2Vudi5kLnRzYCBmaWxlIHRvIGFsbG93IFR5cGVTY3JpcHQgaW5zaWdodC4KCi0tLS0KClshW0xvb3BCYWNrXShodHRwczovL2dpdGh1Yi5jb20vbG9vcGJhY2tpby9sb29wYmFjay1uZXh0L3Jhdy9tYXN0ZXIvZG9jcy9zaXRlL2ltZ3MvYnJhbmRpbmcvUG93ZXJlZC1ieS1Mb29wQmFjay1CYWRnZS0oYmx1ZSktQDJ4LnBuZyldKGh0dHA6Ly9sb29wYmFjay5pby8pCg== readmeEtag: '"7de9d53ea1d913a02ffc4032f9cf039c53de59f0"' readmeLastModified: Tue, 11 Apr 2023 10:08:53 GMT repositoryId: 611844881 description: LoopBack 4 PostgreSQL GraphQL Boilerplate created: '2023-03-09T16:56:54Z' updated: '2023-04-21T09:46:44Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: thekeogh logo: https://avatars.githubusercontent.com/u/1387498?v=4 repoEtag: '"ec15da88e3f1e3d77cfdd2299b7a23601caab535c5cf44e76f89a2460dab0750"' repoLastModified: Fri, 21 Apr 2023 09:46:44 GMT category: - Server - Server Implementations foundInMaster: true oldLocations: - https://github.com/thekeogh/loopback-psql-graphql - source: openapi3 tags repository: https://github.com/ailouislu/openapi v3: true repositoryMetadata: base64Readme: >- IyBVc2VyIFNlcnZpY2UNCkEgc2VydmljZSBmb3IgZmluZGluZyBhbGwgdXNlcnMsIGNyZWF0aW5nLCByZXRyaWV2aW5nLCB1cGRhdGluZywgYW5kIGRlbGV0aW5nIHVzZXJzLg0KDQpzd2FnZ2VyLXVpIHVybCA6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9kb2MuaHRtbA0KDQpVc2Ugb2YgdGVjaG5vbG9neTogU3ByaW5nYm9vdDIuMyArIFNwcmluZ2RvYy1vcGVuYXBpIDMgKyBKUEEgKyBIMiArIEp1bml0NA0KDQoiIyBvcGVuYXBpIiANCg0KIVtdKHNyYy9tYWluL3Jlc291cmNlcy9vcGVuYXBpLmdpZik= readmeEtag: '"2fc8526d51da4ea6ef9dcaa2023f32a2ad978df6"' readmeLastModified: Tue, 28 Sep 2021 01:02:17 GMT repositoryId: 410410403 description: >- A service for finding all users, creating, retrieving, updating, and deleting users. created: '2021-09-26T00:21:46Z' updated: '2021-10-21T22:40:53Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: ailouislu logo: https://avatars.githubusercontent.com/u/72653348?v=4 repoEtag: '"ff36952480d61460a32ba36fdd6699bada8164994189be32e94c7136c656d9d2"' repoLastModified: Thu, 21 Oct 2021 22:40:53 GMT foundInMaster: true category: - Testing - Server Implementations id: 4e74fc876a4fccaaf1368114583d9cfb oldLocations: - https://github.com/louisaugustine/openapi - source: openapi3 tags repository: https://github.com/interserver/mailbaby-mail-api v3: true id: f1aa137f6555ec0919bc1cd98604137a repositoryMetadata: base64Readme: >- IyBNYWlsQmFieSBBUEkKCkFQSSBzZXJ2aWNlIGZvciBhY2Nlc3NpbmcgdGhlIE1haWwuQmFieSBzZXJ2aWNlcy4KCiMgQVBJIFNhbXBsZSBDbGllbnRzCgpTYW1wbGUgY2xpZW50cyBmb3IgdGhlIEFQSSBhcmUgYXZhaWxhYmxlIGluIG1hbnkgbGFuZ3VhZ2VzCgoqIGh0dHBzOi8vZ2l0aHViLmNvbS9pbnRlcnNlcnZlci9tYWlsYmFieS1hcGktc2FtcGxlcwoKCiMgRG9jdW1lbnRhdGlvbgoKKiBMaXN0cwogICogW09wZW5BUEkgVG9vbHNdKGh0dHBzOi8vb3BlbmFwaS50b29scy8pIExpc3Rpbmcgb2YgT3BlbkFQSSByZWxhdGQgdG9vbHMgYnkgY2F0ZWdvcnkgKERvY3VtZW50b3JzLCBQYXJzZXJzLCBNb2NrZXJzLCBldGMpCiogRnJhbWV3b3JrIERvY3MKICAqIFtXZWJNYW4gTWFudWFsXShodHRwczovL3d3dy53b3JrZXJtYW4ubmV0L2RvYy93ZWJtYW4pIFdlYk1hbiBmcmFtZXdvcmsgZG9jdW1lbnRhdGlvbgogICogW0lsbHVtaW5hdGUgRGF0YWJhc2UgRG9jc10oaHR0cHM6Ly9sYXJhdmVsLmNvbS9kb2NzLzgueC9xdWVyaWVzKQogICogW1BIUE1haWxlcl0oaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvKSBlbWFpbCBzZW5kaW5nIGxpYnJhcnkgZm9yIFBIUAoqIEFQSSBTcGVjCiAgKiBbcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9pbnRlcnNlcnZlci9tYWlsYmFieS1tYWlsLWFwaS9tYXN0ZXIvcHVibGljL3NwZWMvb3BlbmFwaS5qc29uXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vaW50ZXJzZXJ2ZXIvbWFpbGJhYnktbWFpbC1hcGkvbWFzdGVyL3B1YmxpYy9zcGVjL29wZW5hcGkuanNvbikKICAqIFtteW5ldy5pbnRlcnNlcnZlci5uZXQ6ODc4Ny9zcGVjL29wZW5hcGkuanNvbl0oaHR0cDovL215bmV3LmludGVyc2VydmVyLm5ldDo4Nzg3L3NwZWMvb3BlbmFwaS5qc29uKQoqIEFQSSBDbGllbnQgU2FtcGxlIEdlbmVyYXRvcnMKICAqIFtzd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW46IHN3YWdnZXItY29kZWdlbiBjb250YWlucyBhIHRlbXBsYXRlLWRyaXZlbiBlbmdpbmUgdG8gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiwgQVBJIGNsaWVudHMgYW5kIHNlcnZlciBzdHVicyBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGJ5IHBhcnNpbmcgeW91ciBPcGVuQVBJIC8gU3dhZ2dlciBkZWZpbml0aW9uLl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikKICAqIFtPcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpOiBBIG5vZGUgcGFja2FnZSB3cmFwcGVyIGZvciBodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkKICAgICogW0dlbmVyYXRvcnMgTGlzdCB8IE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvZG9jcy9nZW5lcmF0b3JzKQogICogW0tvbmcvaHR0cHNuaXBwZXQ6IEhUVFAgUmVxdWVzdCBzbmlwcGV0IGdlbmVyYXRvciBmb3IgbWFueSBsYW5ndWFnZXMgJiBsaWJyYXJpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9Lb25nL2h0dHBzbmlwcGV0KQoqIENvZGUgU25pcHBldCBhbmQgRXhhbXBsZSBpbnRlZ3JhdGlvbiBpbnRvIFNQRUMKICAqIFtjZHd2L29hczMtYXBpLXNuaXBwZXQtZW5yaWNoZXI6IEVucmljaCB5b3VyIE9wZW5BUEkgMy4wIEpTT04gd2l0aCBjb2RlIHNhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jZHd2L29hczMtYXBpLXNuaXBwZXQtZW5yaWNoZXIvKQogICogW0VyaWtXaXR0ZXJuL29wZW5hcGktc25pcHBldDogR2VuZXJhdGVzIGNvZGUgc25pcHBldHMgZm9yIGdpdmVuIFN3YWdnZXIgLyBPcGVuIEFQSSBkb2N1bWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9FcmlrV2l0dGVybi9vcGVuYXBpLXNuaXBwZXQpCiAgKiBHZW5lcmF0ZWQgQ29kZQogICogW01haWxCYWJ5IGdlbmVyYXRlZCBQSFAgQ2xpZW50XShodHRwczovL2dpdGh1Yi5jb20vaW50ZXJzZXJ2ZXIvbWFpbGJhYnktY2xpZW50LXBocCkgUEhQIENsaWVudCBnZW5lcmF0ZWQgYnkgdGhlIE9wZW5BUEkgR2VuZXJhdG9yL1N3YWdnZXIgQ29kZWdlbgoqIE91ciBBUEkgRG9jcwogICogW01haWxCYWJ5IFN3YWdnZXItVUldKGh0dHBzOi8vYXBpLm1haWxiYWJ5Lm5ldC9kb2MvaW5kZXguaHRtbCkKICAqIFtNYWlsQmFieSBBUEkgRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cubWFpbC5iYWJ5L2FwaWRvYy5odG1sIy9vcGVyYXRpb25zL2FkZFJ1bGUpCiAgKiBbU3dhZ2dlciBVSV0oaHR0cDovL215bmV3LmludGVyc2VydmVyLm5ldDo4Nzg3L2RvYy9pbmRleC5odG1sKQogICogW01haWxCYWJ5IEFQSSBEb2N1bWVudGF0aW9uXShodHRwOi8vbXluZXcuaW50ZXJzZXJ2ZXIubmV0Ojg3ODcvZWxlbWVudHMuaHRtbCMvKQogICogW215bmV3LmludGVyc2VydmVyLm5ldDo4Nzg3L3JhcGlkb2MuaHRtbCNvdmVydmlld10oaHR0cDovL215bmV3LmludGVyc2VydmVyLm5ldDo4Nzg3L3JhcGlkb2MuaHRtbCNnZXQtL21haWwvcnVsZXMpCiAgKiBbUmVEb2NdKGh0dHA6Ly9teW5ldy5pbnRlcnNlcnZlci5uZXQ6ODc4Ny9yZWRvYy5odG1sI3RhZy9TZXJ2aWNlcykKICAqIFtteW5ldy5pbnRlcnNlcnZlci5uZXQ6ODc4Ny9vcGVuYXBpLWV4cGxvcmVyLmh0bWwjP3JvdXRlPWdldC0vbWFpbF0oaHR0cDovL215bmV3LmludGVyc2VydmVyLm5ldDo4Nzg3L29wZW5hcGktZXhwbG9yZXIuaHRtbCM/cm91dGU9cG9zdC0vbWFpbC9hZHZzZW5kKQoqIEFQSSBFZGl0b3IKICAqIFtTd2FnZ2VySHViIGVkaXRvciBmb3IgTWFpbEJhYnkgQVBJIFNwZWNdKGh0dHBzOi8vYXBwLnN3YWdnZXJodWIuY29tL2FwaXMvSW50ZXJTZXJ2ZXIvTWFpbEJhYnkvMS4wLjApCiAgKiBbQXBpY3VyaW8gU3R1ZGlvIC0gQVBJIEVkaXRvciA6OiBNYWlsQmFieSBFbWFpbCBEZWxpdmVyeSBhbmQgTWFuYWdlbWVudCBTZXJ2aWNlIEFQSV0oaHR0cHM6Ly9zdHVkaW8uYXBpY3VyLmlvL2FwaXMvOTM5NzQvZWRpdG9yKQogICogW0FwaWN1cmlvIFN0dWRpbyAtIEFQSSBFZGl0b3IgOjogbXkgSW50ZXJTZXJ2ZXIgU2VydmljZXMgTWFuYWdlbWVudCBBUEldKGh0dHBzOi8vc3R1ZGlvLmFwaWN1ci5pby9hcGlzLzkzNjE4L2VkaXRvcikKKiBQSFAgT3BlbkFQSSBMaWJzCiAgKiBbY2FudnVyYWwvcGhwLW9wZW5hcGktZmFrZXI6IExpYnJhcnkgdG8gZ2VuZXJhdGUgZmFrZSBkYXRhIGZvciBPcGVuQVBJIHJlcXVlc3QvcmVzcG9uc2Uvc2NoZW1hc10oaHR0cHM6Ly9naXRodWIuY29tL2NhbnZ1cmFsL3BocC1vcGVuYXBpLWZha2VyKQogICogW3N1bnJpc2UtcGhwL2h0dHAtcm91dGVyOiA6dGFkYTogUmVsZWFzZSAyLjAgaXMgcmVsZWFzZWQhIFZlcnkgZmFzdCBIVFRQIHJvdXRlciBmb3IgUEhQIDcuMSsgYmFzZWQgb24gUFNSLTcgYW5kIFBTUi0xNSB3aXRoIHN1cHBvcnQgZm9yIGFubm90YXRpb25zL2F0dHJpYnV0ZXMgYW5kIE9wZW5BUEkgKFN3YWdnZXIpIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdW5yaXNlLXBocC9odHRwLXJvdXRlcikKICAqIFtjZWJlL3BocC1vcGVuYXBpOiBSZWFkIGFuZCB3cml0ZSBPcGVuQVBJIHlhbWwvanNvbiBmaWxlcyBhbmQgbWFrZSB0aGUgY29udGVudCBhY2Nlc3NpYmxlIGluIFBIUCBvYmplY3RzLl0oaHR0cHM6Ly9naXRodWIuY29tL2NlYmUvcGhwLW9wZW5hcGkpCiAgKiBbbGV6aG5ldjc0L29wZW5hcGktcHNyNy12YWxpZGF0b3I6IEl0IHZhbGlkYXRlcyBQU1ItNyBtZXNzYWdlcyAoSFRUUCByZXF1ZXN0L3Jlc3BvbnNlKSBhZ2FpbnN0IE9wZW5BUEkgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9sZXpobmV2NzQvb3BlbmFwaS1wc3I3LXZhbGlkYXRvcikKICAqIFtlcmFzeXMvb3BlbmFwaS1waHA6IPCfk5pTd2FnZ2VyIC8gT3BlbiBBUEkgMy4wIGJ1aWxkZXIgYW5kIHZhbGlkYXRpb24gbGlicmFyeSBmb3IgUEhQIHRoYXQgaGVscHMgeW91IHdyaXRlIHZhbGlkIHNwZWNzLl0oaHR0cHM6Ly9naXRodWIuY29tL2VyYXN5cy9vcGVuYXBpLXBocCkKICAqIFtPcGVuQVBJIFBTUi03IE1lc3NhZ2UgVmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vdGhlcGhwbGVhZ3VlL29wZW5hcGktcHNyNy12YWxpZGF0b3IpCiogQVBJIERvYyBTZXR0aW5ncwogICogW1N3YWdnZXIvT3BlbkFQSSBTcGVjIERvY3VtZW50YXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGVzY3JpYmluZy1yZXNwb25zZXMvKQogICogW1N0b3BMaWdodCBFbGVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL2VsZW1lbnRzKSBPcGVuQVBJIERvY3VtZW50b3IKICAqIFtyYXBpLWRvYy9SYXBpRG9jOiBSYXBpRG9jIC1XZWJDb21wb25lbnQgZm9yIE9wZW5BUEkgU3BlY10oaHR0cHM6Ly9naXRodWIuY29tL3JhcGktZG9jL1JhcGlEb2MpCiAgKiBbUmFwaURvYyAtIFdlYiBDb21wb25lbnQgYmFzZWQgU3dhZ2dlciAmIE9wZW5BUEkgU3BlYyBWaWV3ZXJdKGh0dHBzOi8vcmFwaWRvY3dlYi5jb20vKQogICogW3N0b3BsaWdodGlvL3N0dWRpbzogVGhlIG1vZGVybiBlZGl0b3IgZm9yIEFQSSBEZXNpZ24gYW5kIFRlY2huaWNhbCBXcml0aW5nLl0oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL3N0dWRpbykKICAqIFtPcGVuLVNvdXJjZSBBUEkgTW9ja2luZywgTGludGluZywgJiBEb2N1bWVudGF0aW9uIHwgU3RvcGxpZ2h0XShodHRwczovL3N0b3BsaWdodC5pby9vcGVuLXNvdXJjZSkKICAqIFtSYXBpRG9jIC0gV2ViIENvbXBvbmVudCBiYXNlZCBTd2FnZ2VyICYgT3BlbkFQSSBTcGVjIFZpZXdlcl0oaHR0cHM6Ly9yYXBpZG9jd2ViLmNvbS9hcGkuaHRtbCkKICAqIFtSYXBpRG9jIEFQSSBEZW1vXShodHRwczovL3JhcGlkb2N3ZWIuY29tL2V4YW1wbGVzL2FwaS1kZW1vLmh0bWwjcG9zdC0vbWFpbC9hZHZzZW5kKQoKIyBEZXZlbG9wbWVudAoKVGhpcyBpcyBidWlsdCBvbiB0b3Agb2YgV2VibWFuLCBhIGhpZ2ggcGVyZm9ybWFuY2UgSFRUUCBTZXJ2aWNlIEZyYW1ld29yayBmb3IgUEhQIGJhc2VkIG9uIFtXb3JrZXJtYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS93YWxrb3Ivd29ya2VybWFuKS4KCiMjIEFQSSBTcGVjaWZpY2F0aW9uCgpXZSBhcmUgdXRpbGl6aW5nIHRoZSBPcGVuQVBJIDMgKGZvcm1lcmx5IGtub3duIGFzIFN3YWdnZXIpIHNwZWMgZm9yIHRoaXMgQVBJLiAgSXQgaXMgYmFzaWNhbGx5IHRoZSBuZXh0IGV2b2x1dGlvbiBvZiBTT0FQIEFQSSdzIHdpdGggd2VsbCBkZWZpbmVkIGZ1bmN0aW9ucywgcGFyYW1ldGVycywgYW5kIHJlc3BvbnNlcy4gIFdoaWxlIHRoZXJlIGFyZSBtYW55IGVkaXRvcnMgb3V0IHRoZXJlIEknbSBjdXJyZW50bHkgdXNpbmcgU3dhZ2dlckh1YiB0byBkbyBtb3N0IG9mIHRoZSBlZGl0aW5nIG9mIHRoZSBzcGVjLgoKIyMgV2VibWFuIEZyYW1ld29yawoKQWZ0ZXIgdGVzdGluZyAqZXZlcnkqIFBIUCBsaWJyYXJ5IG91dCB0aGVyZSBkZWFsaW5nIHdpdGggY29uY3VycmVudC9hc3luY2hyb25vdXMgcHJvY2Vzc2luZyBtYW55IHRpbWVzIG92ZXIgdGhlIHllYXJzIEkndmUgZm91bmQgW1dvcmtlcm1hbl0oaHR0cHM6Ly9naXRodWIuY29tL3dhbGtvci93b3JrZXJtYW4pIHRvIGJlIHRoZSBvdmVyYWxsIGJlc3QuICBJdCBoYXMgcHJvdmVuIG1vcmUgc3RhYmxlIGFuZCBieSBmYXIgZmFzdGVyIHRoYW4gdGhlIGFsdGVybmF0aXZlcyB3aXRoIHRoZSBvbmUgYmlnIGRvd25zaWRlIGJlaW5nIHRoYXQgaXRzIGRvY3VtZW50YXRpb24gYW5kIGNvZGUgY29tbWVudHMgYXJlIGFsbCBpbiBDaGluZXNlLiAgW1dlYm1hbl0oaHR0cHM6Ly9naXRodWIuY29tL3dhbGtvci93ZWJtYW4pIGlzIGEgZmFpcmx5IHJlY2VudGx5IGNyZWF0ZWQgd2ViIGZyYW1ld29yayBvbiB0b3Agb2YgW1dvcmtlcm1hbl0oaHR0cHM6Ly9naXRodWIuY29tL3dhbGtvci93b3JrZXJtYW4pLiAgVGhlcmUgaGFkIGJlZW4gbWFueSBwcmV2aW91c2x5IGNyZWF0ZWQgZnJhbWV3b3JrcyBiYXNlZCBvbiB3b3JrZXJtYW4gYW5kIHdoaWxlIHNvbWUgd2VyZSBnb29kIFdlYm1hbiBzZWVtZWQgdG8gaGl0IHRoYXQgcGVyZmVjdCBiYWxhbmNlIGJldHdlZW4gZWFzZS1vZi11c2UgYW5kIHBvd2VyLgoKVGhlIENoaW5lc2UgZG9jdW1lbnRhdGlvbiBpcyBlYXNpbHkgcmVhZGFibGUgVXNpbmcgZWl0aGVyIHRoZSBhdXRvIHRyYW5zbGF0ZSBpbiBDaHJvbWUgb3IgYW4gYWRkb24gbGlrZSBbVHJhbnNsYXRlIFdlYiBQYWdlc10oaHR0cHM6Ly9hZGRvbnMubW96aWxsYS5vcmcvZW4tVVMvZmlyZWZveC9hZGRvbi90cmFkdXppci1wYWdpbmFzLXdlYi8pIGZvciBGaXJlZm94Lgo= readmeEtag: '"289c6508066bb72cc67dc93219ca73b4aa29ce87"' readmeLastModified: Fri, 24 May 2024 15:38:49 GMT repositoryId: 539355108 description: API Server for the MailBaby Email Services. created: '2022-09-21T07:13:45Z' updated: '2024-05-24T15:38:57Z' language: PHP archived: false stars: 1 watchers: 2 forks: 0 owner: interserver logo: https://avatars.githubusercontent.com/u/29833539?v=4 license: MIT repoEtag: '"911a6075a485dacd2f5af19dddc6f090dc519747982d2bab96d5ee0554e7cae9"' repoLastModified: Fri, 24 May 2024 15:38:57 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/wfcd/api-spec v3: true repositoryMetadata: base64Readme: >- IyBXYXJmcmFtZVN0YXQudXMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uClshW0dpdEh1YiBwYWdlc10oaHR0cHM6Ly9naXRodWIuY29tL1dGQ0QvYXBpLXNwZWMvYWN0aW9ucy93b3JrZmxvd3MvZG9jcy55YW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9XRkNEL2FwaS1zcGVjL2FjdGlvbnMvd29ya2Zsb3dzL2RvY3MueWFtbCkKCiMjIExpbmtzCgotIFtSZWZlcmVuY2UgRG9jdW1lbnRhdGlvbiAoUmVEb2MpXShodHRwczovL2RvY3Mud2FyZnJhbWVzdGF0LnVzKQotIFtTd2FnZ2VyVUldKGh0dHBzOi8vZG9jcy53YXJmcmFtZXN0YXQudXMvc3dhZ2dlci11aS8pCi0gT3BlbkFQSSBSYXcgRmlsZXM6IFtKU09OXShodHRwczovL2RvY3Mud2FyZnJhbWVzdGF0LnVzL29wZW5hcGkuanNvbikgW1lBTUxdKGh0dHBzOi8vZG9jcy53YXJmcmFtZXN0YXQudXMvb3BlbmFwaS55YW1sKQoKKipXYXJuaW5nOioqIEFsbCBhYm92ZSBsaW5rcyBhcmUgdXBkYXRlZCBvbmx5IGFmdGVyIEFjdGlvbnMgZmluaXNoZXMgZGVwbG95bWVudAoKIyMgV29ya2luZyBvbiBzcGVjaWZpY2F0aW9uCiMjIyBJbnN0YWxsCgoxLiBJbnN0YWxsIFtOb2RlIEpTXShodHRwczovL25vZGVqcy5vcmcvKQoyLiBDbG9uZSByZXBvIGFuZCBydW4gYG5wbSBpbnN0YWxsYCBpbiB0aGUgcmVwbyByb290CgojIyMgVXNhZ2UKCiMjIyMgYG5wbSBzdGFydGAKU3RhcnRzIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgb24gcG9ydCBbYDgwODBgXShodHRwOi8vbG9jYWxob3N0OjgwODApLgoKIyMjIyBgbnBtIHJ1biBidWlsZGAKQnVuZGxlcyB0aGUgc3BlYyBhbmQgcHJlcGFyZXMgd2ViX2RlcGxveSBmb2xkZXIgd2l0aCBzdGF0aWMgYXNzZXRzLgoKIyMjIyBgbnBtIHRlc3RgClZhbGlkYXRlcyB0aGUgc3BlYy4KCiMjIyMgYG5wbSBydW4gZ2gtcGFnZXNgCkRlcGxveXMgZG9jcyB0byBHaXRIdWIgUGFnZXMuIFlvdSBkb24ndCBuZWVkIHRvIHJ1biBpdCBtYW51YWxseSBpZiB5b3UgaGF2ZSBUcmF2aXMgQ0kgY29uZmlndXJlZC4K readmeEtag: '"c601761f708fc9b764040c1727a025990b33007d"' readmeLastModified: Tue, 18 Jun 2024 16:39:00 GMT repositoryId: 115034680 description: OpenAPI Specifications for WarframeStat.us API created: '2017-12-21T18:21:32Z' updated: '2024-06-18T16:39:04Z' language: CSS archived: false stars: 1 watchers: 10 forks: 5 owner: WFCD logo: https://avatars.githubusercontent.com/u/24436369?v=4 license: MIT repoEtag: '"0e3142c3727261723eedf596e7a9da97da16ef85dc9f8b111825be6f543e123e"' repoLastModified: Tue, 18 Jun 2024 16:39:04 GMT foundInMaster: true category: - Description Validators - Parsers id: b24c18cad2dfc337dc62885cc4203361 - source: openapi3 tags repository: https://github.com/seljmov/seljmov-aspnet-common v3: true id: 22fe533f96532a0d087f7a52f3bc9071 repositoryMetadata: base64Readme: IyBzZWxqbW92LWFzcG5ldC1jb21tb24= readmeEtag: '"8da36041f28d5cba16159f29a3e19e5d6f00eecd"' readmeLastModified: Wed, 10 Jul 2024 05:26:01 GMT repositoryId: 594170774 description: .NET Core hosting infrastructure for web apps. created: '2023-01-27T19:09:08Z' updated: '2024-07-10T05:26:18Z' language: C# archived: false stars: 1 watchers: 1 forks: 0 owner: seljmov logo: https://avatars.githubusercontent.com/u/56289147?v=4 repoEtag: '"6e20836cf89bc1cbfef521dbac043265f1778cab582e48ccb6a9b34775fe6d20"' repoLastModified: Wed, 10 Jul 2024 05:26:18 GMT category: Server foundInMaster: true - source: openapi3 tags repository: https://github.com/nagybalint001/swagger-codegen v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIGNvZGVnZW4KU3dhZ2dlci9PcGVuQXBpIGJhc2VkIEFuZ3VsYXIgY2xpZW50IGdlbmVyYXRpb24gc2FtcGxlcwoKQ29kZSBnZW5lcmF0b3I6IFtOU3dhZyBnZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcpCgpOU3dhZyBjb25maWcgZ2VuZXJhdG9yOiBbTlN3YWcgU3R1ZGlvXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnL3dpa2kvTlN3YWdTdHVkaW8pCgojIyAuTkVUL01TQnVpbGQgYmFzZWQgc2FtcGxlcwoKVGhlIEFuZ3VsYXIgY2xpZW50IGlzIGdlbmVyYXRlZCBkdXJpbmcgdGhlIGJ1aWxkIG9mIHRoZSBkb3RuZXQgcHJvamVjdCAoZnJvbSB0aGUgY29udHJvbGxlcnMsIG5vdCBmcm9tIGEgc3dhZ2dlci5qc29uKS4KClJlc3RmdWwgQVBJIFtzYW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9uYWd5YmFsaW50MDAxL3N3YWdnZXItY29kZWdlbi90cmVlL21hc3Rlci9SZXN0ZnVsKQoKUlBDIHN0eWxlIEFQSSBbc2FtcGxlXShodHRwczovL2dpdGh1Yi5jb20vbmFneWJhbGludDAwMS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS9tYXN0ZXIvUnBjKQoKIyMgTlBNIGJhc2VkIHNhbXBsZQoKVG8gZ2VuZXJhdGUgdGhlIEFuZ3VsYXIgY2xpZW50IHlvdSBzaG91bGQgcnVuIHRoZSBgbnBtIHJ1biBzd2FnZ2VyYCBjb21tYW5kLgoKUlBDIHN0eWxlIEFQSSBbc2FtcGxlXShodHRwczovL2dpdGh1Yi5jb20vbmFneWJhbGludDAwMS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS9tYXN0ZXIvTnBtKQo= readmeEtag: '"f8fb08f8bbb75a784323a3b8b04617015faa30c9"' readmeLastModified: Tue, 16 Jul 2019 17:36:11 GMT repositoryId: 194234991 description: Swagger/OpenApi based Angular client generation samples created: '2019-06-28T08:14:57Z' updated: '2020-03-18T20:57:44Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: nagybalint001 logo: https://avatars.githubusercontent.com/u/17621599?v=4 repoEtag: '"798741496c96a016f13d67c253bd6b3f698d9c1573a33e5a98374a82bb4baf34"' repoLastModified: Wed, 18 Mar 2020 20:57:44 GMT foundInMaster: true category: SDK id: 6fdb051d7940b2439e25ed564d1349b8 - source: openapi3 tags repository: https://github.com/albankora/decho v3: true repositoryMetadata: base64Readme: >- IyBERUNITwoKIyMgR29hbApUaGUgZ29hbCBpcyB0byBhY2NlbGVyYXRlIHRoZSBwcm9jZXNzIG9mIGJvb3RzdHJhcHBpbmcgYW4gUmVzdGZ1bGwgQVBJIGJhc2UgZ29sYW5nIGFwcGxpY2F0aW9uCgojIyBIb3cKRG9ja2VyIGlzIHVzZWQgdG8gYWNjZWxlcmF0ZSBsb2NhbCBzZXR1cCBmb3IgW0VjaG8gZnJhbWV3b3JrXShodHRwczovL2dpdGh1Yi5jb20vbGFic3RhY2svZWNobykgYW5kIGFsc28geW91IGNhbiBnZW5lcmF0ZSBhIGBzY3JhdGNoYCBpbWFnZSB3aXRoIGEgbWluaW11bSBmb290cHJpbnQgdGhhdCBjYW4gYmUgdXNlZCBpbiBwcm9kdWN0aW9uLgoKIyMgU2V0dXAgbG9jYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzCmBgYGJhc2gKY3AgLmVudi5leGFtcGxlIC5lbnYKYGBgCgojIyBUaGUgY29tbWFuZCBzY3JpcHQKYGBgYmFzaAouL2FwcCB7Y21kfQpgYGAKCiMjIEJ1aWxkIGxvY2FsIGRldgpgYGBiYXNoCiMgYnVpbGQgbG9jYWwgZG9ja2VyIGNvbnRhaW5lciBhbmQgZG93bmxvYWQgcmVxdWlyZWQgbGlicwouL2FwcCBidWlsZApgYGAKCiMjIFJ1biBsb2NhbCBkZXYKYGBgYmFzaAojIHJ1biBsb2NhbCBkb2NrZXIgY29udGFpbmVyCi4vYXBwIHJ1bgpgYGAKCiMjIERldiBzZXJ2ZXIgVVJMCmBodHRwOi8vMTI3LjAuMC4xOjMwMDBgCgojIyBQcm9kdWN0aW9uIGRvY2tlciBpbWFnZQpgYGBiYXNoCiMgY3JlYXRlcyBhIGRvY2tlciBwcm9kdWN0aW9uIGltYWdlCi4vYXBwIHByZApgYGAKCiMjIEZ1bGwgbGlzdCBvZiBjb21tYW5kczoKYGBgYmFzaApDb21tYW5kczoKCiBidWlsZCAgICAgICAgIEJ1aWxkIGxvY2FsIGRvY2tlciBjb250YWluZXIgYW5kIGRvd25sb2FkIHJlcXVpcmVkIGxpYnMKIHJ1biAgICAgICAgICAgUnVuIGxvY2FsIGRvY2tlciBjb250YWluZXIKIHN0b3AgICAgICAgICAgU3RvcCB5b3VyIGxvY2FsIGRvY2tlciBjb250YWluZXIKIHJlbW92ZSAgICAgICAgUmVtb3ZlIGxvY2FsIGNvbnRhaW5lcnMgYW5kIGV2ZXJ5dGhpbmcgcmVsYXRlZCB0byB0aGVtCiB0ZXN0ICAgICAgICAgIFJ1biB1bml0IHRlc3RzCiBjb3ZlciAgICAgICAgIFJ1biB1bml0IHRlc3RzIGFuZCBnZW5lcmF0ZSBjb3ZlcmFnZSBmaWxlCiBmbXQgICAgICAgICAgIEZvcm1hdCB0aGUgY29kZSB3aXRoIGdvIHN0YW5kYXJkcwogdmV0ICAgICAgICAgICBDaGVjayBhbmQgcmVwb3J0IGxpa2VseSBtaXN0YWtlcyBpbiBwYWNrYWdlcwogbW9kIFtDT01NQU5EXSBDb21tYW5kcyBmb3IgZ28gbW9kdWxlIG1haW50ZW5hbmNlCiBiYXNoICAgICAgICAgIEVudGVyIGRvY2tlcnMgYmFzaCBpbnRlcmZhY2UKIHByZCAgICAgICAgICAgQnVpbGQgc2NyYXRjaCBwcm9kdWN0aW9uIGltYWdlCiBycHJkICAgICAgICAgIFJ1biBwcm9kdWN0aW9uIGltYWdlCiBjb2RlZ2VuICAgICAgIEdlbmVyYXRlIGNvZGUgZnJvbSB0aGUgb3BlbiBhcGkgZG9jdW1lbnRhdGlvbgpgYGAKCiMjIFJlLXJ1biBvbiB0aGUgZmx5ClRoZSBhcHAgdXNlcyBbUmVmbGV4XShodHRwczovL2dpdGh1Yi5jb20vY2VzcGFyZS9yZWZsZXgpIGZvciByZS1ydW5uaW5nIHlvdXIgYXBwIHdoZW4geW91IGNoYW5nZSB5b3VyIGNvZGUKCiMjIFByb2plY3QgTGF5b3V0ClRoZSBhcHAgZm9sbG93cyB0aGUgW1N0YW5kYXJkIEdvIFByb2plY3QgTGF5b3V0XShodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nLXN0YW5kYXJkcy9wcm9qZWN0LWxheW91dCkgc28gdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgaW5jbHVkZXMgZm9sZGVycyBsaWtlIGBjbWRgLCBgaW50ZXJuYWxgLCBgcGtnYCBhbmQgYGJ1aWxkYC4gU3RhbmRhcmQgR28gUHJvamVjdCBMYXlvdXQgaXMgYW4gZW1lcmdpbmcgcHJvamVjdCBsYXlvdXQgYmFzZSBvbiB0aGUgR28gZWNvc3lzdGVtLgoKIyMgQVBJLUZpcnN0IGFwcHJvYWNoCkVkaXQgZmlsZSBgYXBpZG9jLnlhbWxgIGFuZCBnZW5lcmF0ZSBjb2RlIHVzaW5nIFtPQVBJLUNvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbikKYGBgYmFzaAojIGdlbmVyYXRlIGNvZGUgZnJvbSBvcGVuIGFwaSB5YW1sIGZpbGUKLi9hcHAgY29kZWdlbgpgYGAKVGhlIGBjb2RlZ2VuYCBjb21tYW5kIHJlYWRzIGBhcGlkb2MueWFtbGAgYW5kIGdlbmVyYXRlcyB0d28gZmlsZXMgYHNlcnZlci5nb2AgYW5kIGB0eXBlcy5nb2AgdW5kZXIgYGludGVybmFsL2NvZGVnZW5gLiBgdHlwZXMuZ29gIGhhcyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGRlZmZpbmVkIG9uIGBhcGlkb2MueWFtbGAgYW5kIHRoZSBgc2VydmVyLmdvYCBmaWxlIGhhcyB0aGUgc2VydmVyIHNpZGUgc2V0dXAgZm9yIHRoZSBBUEku readmeEtag: '"342d3ec71d088a7ce98c0dfa398f1cc3318afa8c"' readmeLastModified: Sat, 28 Mar 2020 22:32:43 GMT repositoryId: 245699994 description: 'DECHO - Docker setup for Echo framework ' created: '2020-03-07T20:22:05Z' updated: '2020-03-28T22:33:48Z' language: Go archived: false stars: 1 watchers: 2 forks: 0 owner: albankora logo: https://avatars.githubusercontent.com/u/771020?v=4 license: MIT repoEtag: '"598a9c93babd83024c87d75cb0d174793e06bf00558b812dc5e18e1c6a278894"' repoLastModified: Sat, 28 Mar 2020 22:33:48 GMT foundInMaster: true category: - Code Generators - Server Implementations id: ac3aa95db2d6a2402543e229a8914f75 - source: openapi3 tags repository: https://github.com/iamfrench/efrei-m2-st2dccc v3: true repositoryMetadata: base64Readme: >- IyBTVDJEQ0NDCkNsb3VkIEludGVncmF0aW9uIChNMiwgTTItQVBQLUxTSSwgTTItQVBQLVJJLCBNMi1QUk8gLSAyMDIxUzkpCgojIyBPdmVydmlldwpUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgdGhlIGZpbmFsIHByb2plY3QgKHRoYXQgaW5jbHVkZXMgbGFicyAxIHRvIDMpLgoKSW5zdHJ1Y3Rpb25zIGFyZSBhdmFpbGFibGUgaW4gYC5wZGZgIGZpbGVzIGF0IHRoZSByb290IG9mIHRoZSBkaXJlY3RvcnkuCgohW0FwcGxpY2F0aW9uIERpYWdyYW1dKC4vYXJ0ZWZhY3RzL2FwcC1kaWFncmFtLnBuZykKCiMjIFByZXJlcXVpc2l0ZQpUaGlzIHByb2plY3QgcnVucyBvbiBkb2NrZXIuCgpZb3UgY2FuIGNoZWNrIGlmIGRvY2tlciBpcyBwcm9wZXJseSBpbnN0YWxsZWQgYW5kIHJ1bm5pbmcgYnkgdHlwaW5nIGludG8gYSB0ZXJtaW5hbCBhIHNpbXBsZSBkb2NrZXIgY29tbWFuZCBzdWNoIGFzIGBkb2NrZXIgcHNgOgoKIVtUZXN0IGlmIGRvY2tlciBpcyBydW5uaW5nIHVzaW5nIGRvY2tlciBwcyBjb21tYW5kXSguL2FydGVmYWN0cy90ZXJtaW5hbC10ZXN0LWlmLWRvY2tlci1pcy1ydW5uaW5nLWRvY2tlci1wcy5naWYpCgojIyBJbnN0YWxsYXRpb24KQ2xvbmUgdGhpcyByZXBvc2l0b3J5ICh5b3UgY2FuIHVzZSBHaXQsIG9yIHVzZSB0aGUgR1VJIGNsaWVudCBHaXRIdWIgRGVza3RvcCkKCkFuZCB0aGF0J3MgaXQgIQoKIyMgUnVuCk5vdyB5b3UgY2FuIHJ1biB0aGUgcHJvamVjdC4gVG8gZG8gc28sIHlvdSB3aWxsIGhhdmUgdG8gb3BlbiBhIHRlcm1pbmFsIGFuZCBleGVjdXRlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCA6CgoqT3B0aW9ubmFsKiBZb3UgY2FuIGRvd25sb2FkIHByZS1idWlsdCBpbWFnZXMgZnJvbSB0aGUgR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBiYXNoCmRvY2tlciBwdWxsIGdoY3IuaW8vaWFtZnJlbmNoL2VmcmVpLW0yLXN0MmRjY2NfbW92aWUKZG9ja2VyIHB1bGwgZ2hjci5pby9pYW1mcmVuY2gvZWZyZWktbTItc3QyZGNjY19hY3RvcgpgYGAKClRoZW4geW91IGNhbiBzdGFydCB0aGUgYXBwbGljYXRpb24gdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYmFzaApkb2NrZXItY29tcG9zZSB1cCAtZApgYGAKCj4gSGludDogVG8gc3BlZWQgdXAgdGhlIGJ1aWxkIHByb2Nlc3MsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKZG9ja2VyLWNvbXBvc2UgYnVpbGQgLS1wYXJhbGxlbApgYGAKClRoaXMgY29tbWFuZCB3aWxsIHJlYWQgdGhlIFtgZG9ja2VyLWNvbXBvc2UueW1sYF0oLi9kb2NrZXItY29tcG9zZS55bWwpIGZpbGUgYW5kIGRlcGxveSB0aGUgYXBwbGljYXRpb24gb24geW91ciBsb2NhbCBjb21wdXRlci4KCiFbRGVwbG95IHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIHVzaW5nIGRvY2tlci1jb21wb3NlIHVwIGNvbW1hbmRzXSguL2FydGVmYWN0cy90ZXJtaW5hbC1kZXBsb3ktdGhlLWFwcGxpY2F0aW9uLWRvY2tlci1jb21wb3NlLXVwLmdpZikKCllvdSBjYW4gY2hlY2sgaWYgdGhlIGNvbnRhaW5lcnMgYXJlIHJ1bm5pbmcgdXNpbmcgdGhpcyBjb21tYW5kOgoKYGBgYmFzaApkb2NrZXItY29tcG9zZSBwcwpgYGAKCiFbQ2hlY2sgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgdXNpbmcgZG9ja2VyLWNvbXBvc2UgcHMgY29tbWFuZHNdKC4vYXJ0ZWZhY3RzL3Rlcm1pbmFsLWNoZWNrLWlmLXRoZS1hcHBsaWNhdGlvbi1pcy1ydW5uaW5nLXVzaW5nLWRvY2tlci1jb21wb3NlLXBzLnBuZykKCiMjIFRlc3RzCk5vdyB0aGF0IHlvdSBoYXZlIGluc3RhbGxlZCwgYW5kIHJ1biB0aGUgYXBwbGljYXRpb24sIGl0J3MgdGltZSB0byBwbGF5IHdpdGggdGhlIHByb2plY3QhCgpPcGVuIHlvdSB3ZWIgYnJvd3NlciB0byBbYGh0dHA6Ly9sb2NhbGhvc3RgXShodHRwOi8vbG9jYWxob3N0KQoKVGhlIGludGVyZmFjZSB0aGF0IGlzIGRpc3BsYXllZCBpcyB0aGUgZGVmYXVsdCBTd2FnZ2VyIFVJIHdlYiBDbGllbnQuIFRoaXMgd2ViIGNsaWVudCBoYXMgYmVlbiBmZWQgd2l0aCBhIGRlZmluaXRpb24gZmlsZSAoW2Bzd2FnZ2VyLnlhbWxgXSguL3N3YWdnZXIueWFtbCkpIHRoYXQgZGVzY3JpYmUgb3VyIEFQSXMuCgohW09wZW4gdGhlIFN3YWdnZXIgVUkgd2ViIGNsaWVudCB1c2luZyBhIGJhc2ljIHdlYiBicm93c2VyXSguL2FydGVmYWN0cy9jaHJvbWUtb3Blbi1zd2FnZ2VyLXdlYi1jbGllbnQucG5nKQoKIyMjIEF2YWlsYWJsZSBlbmRwb2ludHMgYW5kIG1ldGhvZHMKQmVjYXVzZSB3ZSBoYXZlIHR3byBzZXJ2aWNlcyBydW5uaW5nIHdlIGhhdmUgY2hvc2VuIHRvIGV4cG9zZSB0aGVtIHRvIHR3byBkaWZmZXJlbnQgcG9ydHMgYXMgZGlzcGxheWVkIGluIHRoZSBzb2x1dGlvbiBkaWFncmFtLgpUaGUgcG9ydCBgODFgIGlzIHVzZWQgYnkgdGhlIGFjdG9yIHNlcnZpY2UgYW5kIHRoZSBwb3J0IGA4MmAgaXMgdXNlZCBieSB0aGUgbW92aWUgc2VydmljZS4KCkluIG9yZGVyIHRvIHVzZSB0aG9zZSBlbmRwb2ludHMgb24gZGlmZmVyZW50IHBvcnRzIGluIFN3YWdnZXIgVUkgd2UgaGF2ZSBvdmVyd3JpdHRlbiB0aGUgZGVmYXVsdCBob3N0IChsaW5lcyBgNGAgYW5kIGA5YCkgaW4gdGhlIFtgZG9ja2VyLWNvbXBvc2UueW1sYF0oLi9kb2NrZXItY29tcG9zZS55bWwpIGZpbGU6CgohW092ZXJyaWRlIHRoZSBkZWZhdWx0IHNlcnZlcl0oLi9hcnRlZmFjdHMvc3dhZ2dlci15YW1sLWN1c3RvbS1zZXJ2ZXJzLnBuZykKCiMjIyMgQWN0b3IgU2VydmljZSAob24gcG9ydCA4MSkKCiMjIyMjIGBHRVRgIGZpbkFsbAo+IFJldHVybiBhbGwgbW92aWVzIHN0b3JlZCBpbiB0aGUgbW92aWUgc2VydmljZSB3aXRoIGFjdG9ycwoKIyMjIyMgYEdFVGAgZmluZE9uZS9ge21vdmllSWR9YAo+IFJldHVybiBhIG1vdmllIGZyb20gdGhlIG1vdmllIHNlcnZpY2UsIHdpdGggYWN0b3JzIGJ5IGBtb3ZpZUlkYAoKCiMjIyMgTW92aWUgU2VydmljZSAob24gcG9ydCA4MikKCiMjIyMjIGBHRVRgIG1vdmllcwo+IFJldHVybiBhbGwgbW92aWVzCgojIyMjIyBgUE9TVGAgbW92aWVzCj4gQWRkIGEgbmV3IG1vdmllIHRvIHRoZSBtb3ZpZSBzZXJ2aWNlCgojIyMjIyBgR0VUYCBtb3ZpZXMvYHttb3ZpZUlkfWAKPiBSZXR1cm4gYSBzaW5nbGUgbW92aWUgYnkgYG1vdmllSWRgIAoKIyMjIyMgYFBVVGAgbW92aWVzL2B7bW92aWVJZH1gCj4gRWRpdCBhIG1vdmllIGJ5IGBtb3ZpZUlkYCAKCiMjIyMjIGBERUxFVEVgIG1vdmllcy9ge21vdmllSWR9YAo+IERlbGV0ZSBhIG1vdmllIGJ5IGBtb3ZpZUlkYCAKCiMjIyBUZXN0IHRoZSBjaXJjdWl0IGJyZWFrZXIKVGhlIGNpcmN1aXQgYnJlYWtlciBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgYWN0b3Igc2VydmljZS4gSXQgaXMgdXNlZCB3aGVuIHRoaXMgc2VydmljZSBjYWxsIHRoZSBtb3ZpZSBzZXJ2aWNlLgoKIyMjIyBTZXJ2aWNlIGlzIHVuYXZhaWxhYmxlIChubyByZXNwb25zZSkKSWYgdGhlIHJlcXVlc3RlZCBzZXJ2aWNlIGlzIHVuYXZhaWxhYmxlIGEgZmFsbGJhY2sgbWV0aG9kIGlzIGltcGxlbWVudGVkIHRvIHByZXZlbnQgYSBjYXNjYWRlIGZhaWx1cmUuCgpUbyBjcmVhdGUgYSBmYWlsdXJlLCB5b3UganVzdCBuZWVkIHRvIGtpbGwgdGhlIGNvbnRhaW5lciBydW5uaW5nIHRoZSBtb3ZpZSBzZXJ2aWNlLiBUbyBkbyBzbywgd2Ugd2lsbCB1c2UgdGhlIERvY2tlciBEZXNrdG9wIERhc2hib2FyZCwgYSBHVUkgZm9yIERvY2tlcjoKCiFbU3RvcCB0aGUgY29udGFpbmVyIHJlc3BvbnNpYmxlIGZvciBydW5uaW5nIHRoZSBtb3ZpZSBzZXJ2aWNlXSguL2FydGVmYWN0cy9kb2NrZXItZGVza3RvcC1kYXNoYm9hcmQtc3RvcC1tb3ZpZS1jb250YWluZXIucG5nKQoKTm93IHRoYXQgdGhlIGNvbnRhaW5lciBpcyBkb3duLCB3ZSBjYW4gdGVzdCBpZiB0aGUgY2lyY3VpdCBicmVha2VyIGlzIHdvcmtpbmcgYnkgZXhlY3V0aW5nIGEgUkVTVCByZXF1ZXN0IHRvIHRoZSBhY3RvciBzZXJ2aWNlLgoKVG8gZG8gc28sIHdlIHdpbGwgdXNlIHRoZSBTd2FnZ2VyIFVJOgoKIVtNYWtpbmcgYSBSRVNUIHJlcXVlc3Qgd2hlbiB0aGUgbW92aWUgc2VydmljZSBpcyBkb3duXSguL2FydGVmYWN0cy9jaHJvbWUtc3dhZ2dlci11aS1tb3ZpZS1zZXJ2aWNlLWRvd24tcmVxdWVzdC5wbmcpCgpBbmQgaGVyZSBpcyB0aGUgcmVzcG9uc2U6CgohW1JFU1QgcmVzcG9uc2UgZnJvbSB0aGUgYWN0b3Igc2VydmljZSB3aGVuIHRoZSBtb3ZpZSBzZXJ2aWNlIGlzIGRvd25dKC4vYXJ0ZWZhY3RzL2Nocm9tZS1zd2FnZ2VyLXVpLW1vdmllLXNlcnZpY2UtZG93bi1yZXNwb25zZS5wbmcpCgpBcyBleHBlY3RlZCwgdGhlIG1vdmllIHNlcnZpY2UgaXMgdW5hdmFpbGFibGUsIHRoZXJlZm9yZSB0aGUgZmFsbGJhY2sgbWV0aG9kIGhhdmUgYmVlbiBjYWxsZWQgYW5kIHRoZSByZXNwb25zZSBtb2RpZmllZCBhY2NvcmRpbmdseS4KCkhlcmUgaXMgdGhlIGNvZGUgcmVzcG9uc2libGUgZm9yIHRoYXQgKGluIHRoZSBhY3RvciBzZXJ2aWNlKToKCiFbUkVTVCBDbGllbnQgb2YgdGhlIGFjdG9yIHNlcnZpY2UgZW1iZWRkZWQgaW50byBhIGNpcmN1aXQgYnJlYWtlcl0oLi9hcnRlZmFjdHMvYWN0b3Itc2VydmljZS1yZXN0LWNsaWVudC13aXRoLWZhbGxiYWNrLnBuZykKCgojIyMjIFNlcnZpY2UgaXMgc2xvdyBvciBkZWdyYWRlZCAodGltZWxpbWl0KSAKSWYgYSByZXF1ZXN0IGlzIHRha2luZyB0b28gbXVjaCB0aW1lLCBhIGZhbGxiYWNrIG1ldGhvZCBpcyB0YWtpbmcgY2FyZSBvZiBwcm92aWRpbmcgYSByZXNwb25zZSB0byBlbnN1cmUgYSBjb250aW51aXR5IG9mIHNlcnZpY2UuCgpUbyBzaW11bGF0ZSB0aGlzIGRlbGF5LCB3ZSBoYXZlIGltcGxlbWVudGVkIGFuIGFyZ3VtZW50IChwYXNzZWQgYXMgYSBxdWVyeSBwYXJhbWV0ZXIpIGZvciB0aGUgYEdFVCB7bW92aWUtc2VydmljZX0vbW92aWVzL3tpZH1gIHJvdXRlIGluIHRoZSBtb3ZpZSBzZXJ2aWNlOgoKIVtEZWxheSBhZGRlZCB0byB0aGUgcXVlcnkgaW4gdGhlIE1vdmllIFNlcnZpY2UgdXNpbmcgYSBwYXVzZSBzdGF0ZW1lbnRdKC4vYXJ0ZWZhY3RzL21vdmllLXNlcnZpY2UtZGVsYXkucG5nKQoKQW5kIHRoYW5rcyB0byB0aGUgU3dhZ2dlciBVSSB3ZSBjYW4gdGVzdCB0aGlzOgoKIVtTd2FnZ2VyIFVJIHF1ZXJ5IHRoYXQgaW5kdWNlIGEgZGVsYXkgb2YgNjAwbXNdKC4vYXJ0ZWZhY3RzL2Nocm9tZS1zd2FnZ2VyLXVpLWRlbGF5LXF1ZXJ5LnBuZykKClRoaXMgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyByZXNwb25zZToKCiFbU3dhZ2dlciBVSSByZXNwb25zZSBhZnRlciBhIHF1ZXJ5IGluZHVjaW5nIGEgZGVsYXkgb2YgNjAwbXNdKC4vYXJ0ZWZhY3RzL2Nocm9tZS1zd2FnZ2VyLXVpLWRlbGF5LXJlc3BvbnNlLnBuZykKCkFzIGV4cGVjdGVkLCBhIGZhbGxiYWNrIG1ldGhvZCBoYXMgYmVlbiB0cmlnZ2VyZWQuCgpIZXJlIGlzIHRoZSBjb2RlIHJlc3BvbnNpYmxlIGZvciB0aGF0IChpbiB0aGUgYWN0b3Igc2VydmljZSk6CgohW1JFU1QgQ2xpZW50IG9mIHRoZSBhY3RvciBzZXJ2aWNlIGVtYmVkZGVkIGludG8gYSBjaXJjdWl0IGJyZWFrZXJdKC4vYXJ0ZWZhY3RzL2FjdG9yLXNlcnZpY2UtcmVzdC1jbGllbnQtd2l0aC1mYWxsYmFjay5wbmcpCgpUaGUgdGltZSBsaW1pdCBoYXMgYmVlbiBzZXQgaW4gdGhlIGNpcmN1aXQgYnJlYWtlciBjb25maWc6CgohW0NpcmN1aXQgYnJlYWtlciBjb25maWcgZmlsZV0oLi9hcnRlZmFjdHMvYWN0b3Itc2VydmljZS1jaXJjdWl0LWJyZWFrZXItY29uZmlnLnBuZykKCiMjIENsZWFuIHVwCk5vdyB0aGF0IHlvdSBoYXZlIGZpbmlzaGVkIHBsYXlpbmcgd2l0aCB0aGUgYXBwbGljYXRpb24uIEl0J3MgdGltZSB0byBjbGVhbiB0aGUgcHJvamVjdC4KClRvIGRvIHNvLCBvcGVuIGEgdGVybWluYWwgYW5kIHR5cGUgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYmFzaApkb2NrZXItY29tcG9zZSBkb3duIC12CmBgYAoKVGhpcyBjb21tYW5kIHdpbGwgc3RvcCBhbmQgcmVtb3ZlIGNvbnRhaW5lcnMgYW5kIG5ldHdvcmtzIGZyb20geW91ciBjb21wdXRlciBhc3NpZ25lZCB0byBvdXIgcHJvamVjdC4KCiFbQ2xlYW5pbmcgdGhlIGFwcGxpY2F0aW9uIHVzaW5nIHRoZSBkb2NrZXItY29tcG9zZSBkb3duIGNvbW1hbmRdKC4vYXJ0ZWZhY3RzL3Rlcm1pbmFsLXJldGlyZS1hcHBsaWNhdGlvbi11c2luZy1kb2NrZXItY29tcG9zZS1kb3duLnBuZykK readmeEtag: '"d054fe66dbbf4eb50bb3c38e2914af17d53696a5"' readmeLastModified: Wed, 27 Jan 2021 00:33:46 GMT repositoryId: 323942348 description: Cloud Integration (M2, M2-APP-LSI, M2-APP-RI, M2-PRO - 2021S9) created: '2020-12-23T15:50:46Z' updated: '2021-01-27T00:33:55Z' language: Java archived: false stars: 1 watchers: 3 forks: 1 owner: IAmFrench logo: https://avatars.githubusercontent.com/u/10818450?v=4 repoEtag: '"15d9fc4535f32602031a484aa81624f308cd9320f6ff6b6face65d431619ee53"' repoLastModified: Wed, 27 Jan 2021 00:33:55 GMT foundInMaster: true category: Server Implementations id: 231ebfcfa88388aaeea1401e51d85d85 - source: openapi3 tags repository: https://github.com/theairblow/mojang-api v3: true repositoryMetadata: base64Readme: IyBNb2phbmcgQVBJIGRvY3VtZW50YXRpb24KTm90aGluZyB0byBzZWUgaGVyZQo= readmeEtag: '"960c922f43686516641ab631b98ed53ab83a211e"' readmeLastModified: Wed, 01 Mar 2023 12:31:15 GMT repositoryId: 479952503 description: Mojang API documented with Swagger created: '2022-04-10T08:06:58Z' updated: '2023-01-03T13:13:05Z' language: HTML archived: false stars: 1 watchers: 1 forks: 0 owner: TheAirBlow logo: https://avatars.githubusercontent.com/u/68467762?v=4 repoEtag: '"64f7bb04ed045ca748832b4c975f67adfd51217b75ad68dd6a6a5948effadab4"' repoLastModified: Tue, 03 Jan 2023 13:13:05 GMT foundInMaster: true category: - Documentation - Parsers id: 59a847459f9074c871e1306d704a6a13 - source: openapi3 tags repository: https://github.com/goldenglorys/eden-api v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9sYXJhdmVsL2ZyYW1ld29yayI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L2wvbGFyYXZlbC9mcmFtZXdvcmsiIGFsdD0iTGljZW5zZSI+PC9hPgo8L3A+CgojIyBFZGVuIFdvcmsgU2FtcGxlCgpXZWxjb21lIHRvIHRoZSBHYXJkZW4gb2YgRWRlbiEKClRoaXMgd29yayBzYW1wbGUgaXMgYSBzaW1wbGUgQVBJIHdpdGggdmFyaW91cyBjb25zdW1hYmxlIGVuZHBvaW50cyB3aGljaCBhcmUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIEFQSSBkb2N1bWVudGF0aW9uIHBhZ2UuCgpUaGUgQVBJIHNpbXBseSBoYXMgYnV0IG5vdCBsaW1pdGVkIHRvOgoKLSBBdXRvbWF0ZWQgVGVzdGluZy4KLSBBUEkgY2FjaGluZyBmb3IgdXAgdG8gMyBtaW51dGVzIG9uIGFueSBnZXQgcmVxdWVzdHMuCi0gRW1iZWRlZCAmJiBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbi4gCi0gU2ltcGxpY2l0eSBieSBkZXNpZ24gaW4gaXQncyBvd24gbWluaW1hbCBsZXZlbC4KCiMjIEdldHRpbmcgU3RhcnRlZAotLS0tLS0tLS0tLS0tLS0KCiMjIyMgVmlhIENsb25pbmcgVGhlIFJlcG9zaXRvcnk6CgpbUEhQXShodHRwczovL3BocC5uZXQpIDguMCsgYW5kIFtDb21wb3Nlcl0oaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcpIHBsdXMgYSBkYXRhYnNlIChNeVNRTCBvciBQb3N0Z3Jlc1NRTCkgYXJlIHJlcXVpcmVkLgoKYGBgYmFzaAojIEdldCB0aGUgcHJvamVjdApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2dvbGRlbmdsb3J5cy9lZGVuLXdvcmstc2FtcGxlLmdpdAoKIyBDaGFuZ2UgZGlyZWN0b3J5CmNkIGVkZW4td29yay1zYW1wbGUKCiMgSW5zdGFsbCBDb21wb3NlciBkZXBlbmRlbmNpZXMKY29tcG9zZXIgaW5zdGFsbCBvciBjb21wb3NlciB1cGRhdGUKCiMgQ29weSAuZW52LmV4YW1wbGUgdG8gLmVudgpjcCAuZW52LmV4YW1wbGUgLmVudgoKIyBDcmVhdGUgYSBkYXRhYmFzZSAod2l0aCBteXNxbCBvciBwb3N0Z3Jlc3FsKQojIEFuZCB1cGRhdGUgLmVudiBmaWxlIHdpdGggZGF0YWJhc2UgY3JlZGVudGlhbHMKIyBEQl9DT05ORUNUSU9OPW15c3FsIE9SIHBnc3FsCiMgREJfSE9TVD0xMjcuMC4wLjEKIyBEQl9EQVRBQkFTRT1lZGVuCiMgREJfVVNFUk5BTUU9IyMjIwojIERCX1BBU1NXT1JEPSMjIyMKCiMgUnVuIHRoZSBkYXRhYmFzZSBtaWdyYXRpb24gYW5kIHRoZSBpbml0aWFsIHNlZWRpbmcgZGF0YSB1c2luZwpwaHAgYXJ0aXNhbiBtaWdyYXRlIC0tc2VlZAoKIyBHZW5lcmF0ZSBhcHBsaWNhdGlvbiBzZWN1cmUga2V5IChpbiAuZW52IGZpbGUpCnBocCBhcnRpc2FuIGtleTpnZW5lcmF0ZQoKIyBSdW4gdGhlIGFwcGxpY2F0aW9uIHVzaW5nCnBocCBhcnRpc2FuIHNlcnZlCmBgYAoKIyMgUnVuIFRlc3RzCgpUbyBydW4gdGhlIGF1dG9tYXRlZCB0ZXN0cywgaXNzdWUgdGhlIGNvbW1hbmQ6CgogICAgcGhwIGFydGlzYW4gdGVzdAoKVGhlIHRlc3QgZG9zZW4ndCBnZW5lcmF0ZSB0aGUgY292ZXJhZ2Ugc3RhdGlzdGljcywgZmVlbCBmcmVlIGFkZGluZyB0aGF0LgoKIyMgTGl2ZSBVUkxzCgotIFtBUEkgVVJMXShodHRwczovL2VkZW4tc2FtcGxlLWFwaS5oZXJva3VhcHAuY29tL2FwaS92MSk6IEhpdHMgdGhlIEFQSSBob21lL3dlbGNvbWUgZW5kcG9pbnQuCi0gW0FQSSBEb2N1bWVudGF0aW9uXShodHRwczovL2VkZW4tc2FtcGxlLWFwaS5oZXJva3VhcHAuY29tL2FwaS9kb2N1bWVudGF0aW9uKTogTGFuZHMgb24gdGhlIGVtYmVkZWQvaW50ZXJhdGljZSBBUEkgZG9jdW1lbnRhaW9uLgoKIyMgTGljZW5zZQoKVGhlIGNvZGUgaXMgb3Blbi1zb3VyY2VkLCBsaWNlbnNlZCB1bmRlciB0aGUgW01JVCBsaWNlbnNlXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuCgogPGgyIGFsaWduPSJjZW50ZXIiPk1hZGUgcG9zc2libGUgYnkgPGI+UEhQPC9iPjxhIGhyZWY9Imh0dHBzOi8vbGFyYXZlbC5jb20iIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhcmF2ZWwvYXJ0L21hc3Rlci9sb2dvLWxvY2t1cC81JTIwU1ZHLzIlMjBDTVlLLzElMjBGdWxsJTIwQ29sb3IvbGFyYXZlbC1sb2dvbG9ja3VwLWNteWstcmVkLnN2ZyIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI1MCI+PC9hPldpdGgg4p2k77iPPC9oMj4KCiBIYXBweSBDb2RpbmchIQ== readmeEtag: '"a162ffa3b31d7e6c1e2445f4e18ea82eedf76bb3"' readmeLastModified: Tue, 01 Mar 2022 21:18:17 GMT repositoryId: 463852136 description: A new day, another opportunity to be a step closer to "Paradise"! created: '2022-02-26T12:53:12Z' updated: '2024-03-31T19:52:44Z' language: PHP archived: false stars: 1 watchers: 2 forks: 0 owner: goldenglorys logo: https://avatars.githubusercontent.com/u/32324941?v=4 repoEtag: '"b7342c401538528c9e33ec723fe73714e19d7277fcfdec829a79f3a2ede7a007"' repoLastModified: Sun, 31 Mar 2024 19:52:44 GMT foundInMaster: true category: - Testing - Server Implementations id: 63e8352e8255e8dae0c55b639d4a1fff oldLocations: - https://github.com/goldenglorys/eden-work-sample - source: openapi3 tags repository: >- https://github.com/sandeepbegudem/springboot-jwt-authorization-junit5-mockito v3: true id: 1720dd9011e9ff1060630ab8942bdc2a repositoryMetadata: base64Readme: >- CiMgc3ByaW5nYm9vdC1qd3QgYXV0aG9yaXphdGlvbi1qdW5pdDUtbW9ja2l0bwoKIyMgUHJvamVjdCBEZXRhaWxzOgoKIyMjIyBKYXZhIDE3CiMjIyMgU3ByaW5nIEJvb3QgMy4xLjAsCiMjIyMgU3ByaW5nIERhdGEgSnBhCiMjIyMgTXlzcWwKIyMjIyBTcHJpbmcgU3RhcnRlciBTZWN1cml0eQojIyMjIEpzb24gV2ViIFRva2VuIChKV1QpCiMjIyMgTG9tYm9rCiMjIyMgc3ByaW5nZG9jLW9wZW5hcGktc3RhcnRlci13ZWJtdmMtdWkKIyMjIyBKdW5pdDUKIyMjIyBNb2NraXRvCiMjIyMgSmFjb2NvCiMjIyMgRGV2dG9vbHMKIyMjIyBTdGFydGVyIFdlYgoK readmeEtag: '"62e86dc73a70d1665ca108222c80e33fb4aa0c1a"' readmeLastModified: Thu, 22 Feb 2024 05:43:37 GMT repositoryId: 747440555 description: >- This application is built using Spring Boot, Java17, Spring Security using JWT authentication, MySQL, Spring Data Jpa, maven, Junit5 and mockito framework. created: '2024-01-23T23:40:17Z' updated: '2024-02-22T06:22:23Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: sandeepbegudem logo: https://avatars.githubusercontent.com/u/124546985?v=4 repoEtag: '"329765832f6f99db4807a4f505ad54f979d28ac007a1eff3f8ae1a530f865b20"' repoLastModified: Thu, 22 Feb 2024 06:22:23 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sandro-lopes/product-spring-boot v3: true repositoryMetadata: base64Readme: >- IyBQcm9kdWN0IE1pY3Jvc2VydmljZSBFeGFtcGxlCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9zYW5kcm8tbG9wZXMvcHJvZHVjdC1zcHJpbmctYm9vdC5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL3RyYXZpcy1jaS5jb20vc2FuZHJvLWxvcGVzL3Byb2R1Y3Qtc3ByaW5nLWJvb3QpClshW2RvY2tlciBidWlsZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kb2NrZXIvY2xvdWQvYnVpbGQvc2FuZHJvbC9wcm9kdWN0LXNwcmluZy1ib290LnN2ZyldKGh0dHBzOi8vY2xvdWQuZG9ja2VyLmNvbS91L3NhbmRyb2wvcmVwb3NpdG9yeS9kb2NrZXIvc2FuZHJvbC9wcm9kdWN0LXNwcmluZy1ib290KQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1zYW5kcm8tbG9wZXNfcHJvZHVjdC1zcHJpbmctYm9vdCZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1zYW5kcm8tbG9wZXNfcHJvZHVjdC1zcHJpbmctYm9vdCkKClByb2R1Y3QgbWljcm9zZXJ2aWNlIGV4YW1wbGUgb2YgZGV2ZWxvcG1lbnQgdXNpbmcgU3ByaW5nIEJvb3QgYW5kIGEgc2VyaWUgb2YgdG9vbHMgYW5kIGZyYW1ld29ya3MgdG8gc2hvdyB0aGUgYmVzdC1wcmFjdGljZXMgYWxvbmcgdGhlIHdheSB0byBhdXRvbWF0aW5nIHRoZSB0ZXN0aW5nLCBidWlsZGluZyBhbmQgZGVwbG95bWVudCAoQ0kvQ0QpLgoKIyMgVGVjaG5vbG9naWVzCgoqIFtKYXZhXShodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5ldHdvcmsvamF2YS9qYXZhc2UvZG93bmxvYWRzL2luZGV4Lmh0bWwpCiogW01hdmVuXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvKQoqIFtTcHJpbmcgQm9vdF0oaHR0cDovL3Byb2plY3RzLnNwcmluZy5pby9zcHJpbmctYm9vdC8pCiogW1RyYXZpcyBDSV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnLykKKiBbU29uYXJDbG91ZF0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvLykKKiBbRG9ja2VyXShodHRwOi8vZG9ja2VyLmNvbS8pCiogW0hlcm9rdV0oaHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8p readmeEtag: '"07c5770b25db31d12483357e5f90922193db5eed"' readmeLastModified: Wed, 17 Feb 2021 01:48:01 GMT repositoryId: 310488051 description: Microservice example built on Spring Boot created: '2020-11-06T04:06:06Z' updated: '2024-06-04T23:58:51Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: sandro-lopes logo: https://avatars.githubusercontent.com/u/22279105?v=4 license: Apache-2.0 repoEtag: '"e7c1fc706511e9095f6e7f05e42fa09d2eb25a1deb52477abb438b8cd4e6d486"' repoLastModified: Tue, 04 Jun 2024 23:58:51 GMT foundInMaster: true category: Server id: 3982f645f17e12a261d4b9c0b3c3fbcc - source: - openapi3 tags - openapi31 tags repository: https://github.com/gcatanese/openapi-native-mock-server v3: true v3_1: true id: 1fe45e2e9d9a8f115bd2328a671d4c7a repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIE5hdGl2ZSBNb2NrIFNlcnZlcgoKTGlnaHR3ZWlnaHQgbW9jayBzZXJ2ZXIgY3JlYXRlZCBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gCgpXaHkgKipuYXRpdmUqKj8gQmVjYXVzZSB0aGUgcmVxdWVzdC1yZXNwb25zZSBpbnRlcmFjdGlvbnMgYXJlIGRlZmluZWQgd2l0aGluIHRoZSBPcGVuQVBJIGZpbGUsIHdpdGhvdXQKdGhlIG5lZWQgZm9yIGFuIGFkZGl0aW9uYWwgYXBwbGljYXRpb24gb3Igc3RvcmFnZSAoYW5kIHRoZXJlZm9yZSBjb21wbGV4aXR5KS4gTm8gZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLgoKVGhlIHJlcXVlc3QtcmVzcG9uc2UgaW50ZXJhY3Rpb25zIChha2EgdGhlIGNvbnRyYWN0cykgYXJlIGRlZmluZWQgYnkgcGFyc2luZyB0aGUgT3BlbkFQSSBleGFtcGxlcywgc2VlIFttYXBwaW5nIHN0cmF0ZWdpZXNdKCNob3ctaXQtd29ya3MpLgpBIGZhbGxiYWNrIHJlc3BvbnNlIGlzIGdlbmVyYXRlZCB0byBlbnN1cmUgZXZlcnkgcmVxdWVzdCByZWNlaXZlcyBhbHdheXMgYSByZXNwb25zZS4KCkl0IGlzOgoqICoqbGlnaHR3ZWlnaHQqKjogaXQgcnVucyBpbiBhIHNpbmdsZSAoc21hbGwpIGNvbnRhaW5lcgoqICoqZmFzdCoqOiBpdCBjcmVhdGVzIGJlaGluZCB0aGUgc2NlbmVzIGEgR28gc2VydmljZSB3aXRoIGEgbWluaW1hbCBmb290cHJpbnQKKiAqKnNpbXBsZSoqOiBpdCBkaXNwbGF5cyB0aGUgbW9jayBleHBlY3RhdGlvbnMgb24gdGhlIGluZGV4IHBhZ2UuIEluc3BlY3QgdGhlIEpTT04gcGF5bG9hZCBvZiBhbGwgbW9ja2VkIHJlc3BvbnNlcy4KCiMjIFVzZSBjYXNlcwoKSXQgY2FuIGJlIHVzZWQgaW4gZGlmZmVyZW50IHNjZW5hcmlvczoKKiB5b3UgYXJlIGRldmVsb3BpbmcgYW4gQVBJIFNESyBhbmQgbmVlZCB0byBpbXBsZW1lbnQgc29saWQgaW50ZWdyYXRpb24gdGVzdGluZzogdHJ5IGl0IG91dCB3aXRoIFtUZXN0Q29udGFpbmVyc10oaHR0cHM6Ly9naXRodWIuY29tL2djYXRhbmVzZS9vcGVuYXBpLXRlc3Rjb250YWluZXJzKS4KKiB5b3UgYXJlIGJ1aWxkaW5nIEFQSXMgYW5kIHdhbnQgdG8gaGVscCB5b3VyIEFQSSBjb25zdW1lcnMgZHVyaW5nIHRoZSBpbnRlZ3JhdGlvbjogbWFrZSBhIG1vY2sgc2VydmVyICh0aGF0IGltcGxlbWVudHMgdGhlIEFQSSBjb250cmFjdCkgcmVhZGlseSBhdmFpbGFibGUuCiogeW91IGFyZSBkZXZlbG9waW5nIGFuIGFwcGxpY2F0aW9uIHRoYXQgdXNlcyBhIHRoaXJkLXBhcnR5IEFQSSBkZXBlbmRlbmN5OiBtb2NrIHRoZSBBUEkgdG8gbWFrZSB5b3VyIGRldmVsb3BtZW50IGZhc3RlciBhbmQgbW9yZSBlZmZpY2llbnQuCgojIyBVc2FnZQoKIyMjIEJ1aWxkIGFuZCBydW4gd2l0aCBEb2NrZXIKCkJ1aWxkIHRoZSBtb2NrIHNlcnZlciBmcm9tIHlvdXIgT3BlbkFQSSBmaWxlOgpgYGBkb2NrZXIKZG9ja2VyIGJ1aWxkIC0tYnVpbGQtYXJnIG9wZW5hcGlmaWxlPS9wYXRoL29wZW5hcGlGaWxlLnlhbWwgLXQgb3BlbmFwaS1uYXRpdmUtbW9jay1zZXJ2ZXIgLgpgYGAKClJ1biB0aGUgY29udGFpbmVyOgpgYGBkb2NrZXIKZG9ja2VyIHJ1biAtLXJtIC1kIC1wIDgwODA6ODA4MCAtLW5hbWUgb3BlbmFwaS1uYXRpdmUtbW9jay1zZXJ2ZXIgb3BlbmFwaS1uYXRpdmUtbW9jay1zZXJ2ZXIKYGBgCgpQb2ludCB5b3VyIEFQSSByZXF1ZXN0cyB0byB0aGUgbW9jayBzZXJ2ZXI6CmBgYHNoZWxsCmN1cmwgLVggUE9TVCAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAtZCAneyJuYW1lIjoiYWJjIiwiY291bnRyeSI6ImFiYyJ9JyBcCiAgIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC97eW91cl9hcGlfZW5kcG9pbnR9CmBgYAoKIyMjIEJ1aWxkIGFuZCBydW4gZnJvbSBzb3VyY2UKCkJ1aWxkIHRoZSBtb2NrIHNlcnZlciAoKipOb3RlKio6IHJlcXVpcmVzIEphdmEgMTEpCmBgYHNoZWxsCm12biBwYWNrYWdlCmBgYAoKR2VuZXJhdGUgdGhlIG1vY2sgc2VydmVyIHBhc3NpbmcgdGhlIHBhdGggb2YgdGhlIE9wZW5BUEkgZmlsZSAoaS5lLiBgLWkgb3BlbmFwaS90bXAvb3BlbmFwaS55YW1sYCkgYW5kIHRoZQpmb2xkZXIgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIG1vY2sgc2VydmVyIHNvdXJjZSBjb2RlIChpLmUuIGAtbyBvcGVuYXBpL3RtcC9nby1zZXJ2ZXJgKToKYGBgc2hlbGwKamF2YSAtY3AgdGFyZ2V0L29wZW5hcGktbmF0aXZlLW1vY2stc2VydmVyLmphcjpvcGVuYXBpL2NsaS9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIFwKIG9yZy5vcGVuYXBpdG9vbHMuY29kZWdlbi5PcGVuQVBJR2VuZXJhdG9yIGdlbmVyYXRlIC1nIGNvbS50d2Vlc2t5LmNsb3VkdG9vbHMuY29kZWdlbi5OYXRpdmVNb2NrU2VydmVyQ29kZWdlbiBcCiAgLWkgb3BlbmFwaS90bXAvb3BlbmFwaS55YW1sIC1vIG9wZW5hcGkvdG1wL2dvLXNlcnZlcgpgYGAKClJ1biB0aGUgbW9jayBzZXJ2ZXIgKCoqTm90ZSoqOiByZXF1aXJlcyBHbyAxLjE5KToKCmBgYHNoZWxsCmNkIG9wZW5hcGkvdG1wL2dvLXNlcnZlcgpnbyBtb2QgdGlkeQpnbyBydW4gLgpgYGAKClBvaW50IHlvdXIgQVBJIHJlcXVlc3RzIHRvIHRoZSBtb2NrIHNlcnZlcjoKYGBgc2hlbGwKY3VybCAtWCBQT1NUIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKIC1kICd7Im5hbWUiOiJhYmMiLCJjb3VudHJ5IjoiYWJjIn0nIFwKICAgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3t5b3VyX2FwaV9lbmRwb2ludH0KYGBgCgojIyMgTW9jayBzZXJ2ZXIgYnJvd3NlcgoKQWNjZXNzIHRoZSBpbmRleCBwYWdlIHRvIHZpZXcgdGhlIE9wZW5BUEkgZmlsZSAod2hpY2ggdGhlIG1vY2sgc2VydmVyIGhhcyBiZWVuIGNyZWF0ZWQgZnJvbSkgCmFuZCB0aGUgbW9jayBleHBlY3RhdGlvbnM6CmBgYHNoZWxsCmN1cmwgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2luZGV4LwpgYGAKVGhlIGBpbmRleGAgcGFnZSBwcm92aWRlcyBhIHZpZXcgb2YgdGhlIGNvbnRyYWN0IGludGVyYWN0aW9ucywgbWFraW5nIGNsZWFyIHRoZSBleHBlY3RhdGlvbnMuCkNoZWNrIGl0IG91dC4KCiFbTW9jayBzZXJ2ZXIgYnJvd3Nlcl0obW9jay1zZXJ2ZXIucG5nKQoKCiMjIEhvdyBpdCB3b3JrcwoKVGhlIG1vZHVsZSB1c2VzIHRoZSBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIHRvIGdlbmVyYXRlIGEgbGlnaHR3ZWlnaHQgCm1vY2sgc2VydmVyIGJhc2VkIG9uIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uIFRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBleGFtcGxlcyBhcmUgZm91bmQgYW5kIG1hdGNoZWQgdG8gZGVmaW5lIHRoZSAKaW50ZXJhY3Rpb25zIChjb250cmFjdCkgYmV0d2VlbiB0aGUgY29uc3VtZXIgYW5kIHRoZSBwcm9kdWNlciBvZiB0aGUgQVBJLiAgCgpUaGUgZm9sbG93aW5nIHN0cmF0ZWdpZXMgYXJlIGFwcGxpZWQgKGluIG9yZGVyKSB0byBtYXRjaCByZXF1ZXN0cyB3aXRoIHJlc3BvbnNlczoKKiAqKm1hdGNoIGJ5IENvbnRyYWN0IHRhZyoqOiBkbyB0aGUgZXhhbXBsZXMgdXNlIHRoZSB2ZW5kb3IgZXh0ZW5zaW9uIGB4LWNvbnRyYWN0LWlkYD8gSW4gdGhpcyBjYXNlLCBtYXRjaCBhIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIGV4YW1wbGUgdGhhdCBoYXMgdGhlIHNhbWUgdmFsdWUKKiAqKm1hdGNoIGJ5IFJlZiBuYW1lKio6IG1hdGNoIGAkcmVmYCByZXF1ZXN0IGV4YW1wbGUgd2l0aCBhIGNvcnJlc3BvbmRpbmcgYCRyZWZgIHJlc3BvbnNlIGV4YW1wbGUsIGZvciBleGFtcGxlIApgY3JlYXRlLXVzZXJzLWV4YW1wbGVgIHdvdWxkIG1hdGNoIGBjcmVhdGUtdXNlcnMtZXhhbXBsZS0yMDBgIHRvIGRlZmluZSBhIHN1Y2Nlc3NmdWwgYDIwMGAgc2NlbmFyaW8KKiAqKm1hdGNoIGJ5IEV4YW1wbGUgbmFtZSoqOiBmaW5kIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGV4YW1wbGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBuYW1lCiogKipnZW5lcmF0ZSBmcm9tIFNjaGVtYSoqOiBmYWxsYmFjayBzdHJhdGVneSAod2hlbiBubyBtYXRjaGluZyBpcyBmb3VuZCk6IGdlbmVyYXRlIHRoZSByZXNwb25zZSBmcm9tIHRoZSBTY2hlbWEgYW5kCmVuc3VyZSBldmVyeSByZXF1ZXN0IGhhcyBhdCBsZWFzdCBhIHJlc3BvbnNlLgoKCiMjIFJlZmVyZW5jZXMKCkNoZWNrIG91dCB0aGUgW0NvbnRyYWN0IFRlc3Rpbmcgd2l0aCBPcGVuQVBJXShodHRwczovL21lZGl1bS5jb20vZ2Vla2N1bHR1cmUvY29udHJhY3QtdGVzdGluZy13aXRoLW9wZW5hcGktNDIyNjcwOThkZGM3KSBhcnRpY2xlCnRvIHVuZGVyc3RhbmQgdGhlIGNoYWxsZW5nZXMgYW5kIHNvbHV0aW9ucyBvZiBDb250cmFjdCBUZXN0aW5nIHdpdGggdGhlIE9wZW5BUEkgc3RhbmRhcmQuCgo= readmeEtag: '"389b353f6acd04e2529752d65adf6954ab867703"' readmeLastModified: Sat, 01 Jun 2024 08:01:25 GMT repositoryId: 710680390 description: >- Generate mock responses based on your OpenAPI specification. No dependencies. Lightweight, fast, simple. created: '2023-10-27T07:58:04Z' updated: '2024-09-01T08:19:17Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: gcatanese logo: https://avatars.githubusercontent.com/u/1771700?v=4 license: Apache-2.0 repoEtag: '"aa89d9d5a17c3e3a6b76df1c1d21a93f9aa19187acb3b51089ba308cc9544869"' repoLastModified: Sun, 01 Sep 2024 08:19:17 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/kaliszando/bs-api-specification v3: true id: b05e8787eea4278f92d72a0301793ae4 repositoryMetadata: base64Readme: >- PCEtLSBQUk9KRUNUIExPR08gLS0+CjxkaXYgYWxpZ249ImNlbnRlciI+CjxoMz48aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL0thbGlzemFuZG8vYnMtd2ViLWNsaWVudC9ibG9iL21haW4vc3JjL2Fzc2V0cy9pbWcvZmF2aWNvbi0xNngxNi5wbmciIGFsdD0iTG9nbyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij4gQnVnU3RhbGtlciBBUEk8L2gzPgo8L2Rpdj4KCkJ1Z1N0YWxrZXIgcHJvamVjdHM6CiogW2JzLWJ1c2luZXNzXShodHRwczovL2dpdGh1Yi5jb20vS2FsaXN6YW5kby9icy1idXNpbmVzcykgYmFja2VuZAoqIFticy13ZWItY2xpZW50XShodHRwczovL2dpdGh1Yi5jb20vS2FsaXN6YW5kby9icy13ZWItY2xpZW50KSBmcm9udGVuZAoqIFticy1hcGktc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL0thbGlzemFuZG8vYnMtYXBpLXNwZWNpZmljYXRpb24pIEFQSSBzcGVjaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIHRvb2wKCjwhLS0gQUJPVVQgVEhFIFBST0pFQ1QgLS0+CiMjIEFib3V0IFRoZSBQcm9qZWN0CgpUaGUgQVBJIHNwZWNpZmljYXRpb24gcHJvamVjdCBzZXJ2ZXMgYXMgdGhlIGJhY2tib25lIGZvciBib3RoIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRldmVsb3BtZW50IGluIHRoZSBCdWdTdGFsa2VyIGFwcGxpY2F0aW9uLgpJdCBkZWZpbmVzIHRoZSBBUEkgZW5kcG9pbnRzLCBkYXRhIG1vZGVscywgYW5kIHNlcnZpY2VzIHJlcXVpcmVkIGZvciBzZWFtbGVzcyBjb21tdW5pY2F0aW9uIGJldHdlZW4gCnRoZSBmcm9udGVuZCBhbmQgYmFja2VuZCBhcHBsaWNhdGlvbnMuCgpJbiBlc3NlbmNlLCB0aGUgQVBJIFNwZWNpZmljYXRpb24gcHJvamVjdCBub3Qgb25seSBkb2N1bWVudHMgdGhlIGVuZHBvaW50cyBidXQgYWxzbyBwcm92aWRlcyBhIG1lY2hhbmlzbSAKdG8gZ2VuZXJhdGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnRzLAplbmhhbmNpbmcgcHJvZHVjdGl2aXR5IGFuZCBtYWludGFpbmFiaWxpdHkgb2YgdGhlIEJ1Z1N0YWxrZXIgYXBwbGljYXRpb24uCgojIyMgQnVpbHQgV2l0aAoKLSBTd2FnZ2VyICsgT3BlbkFQSSAzCi0gW25nLW9wZW5hcGktZ2VuXShodHRwczovL2dpdGh1Yi5jb20vY3ljbG9zcHJvamVjdC9uZy1vcGVuYXBpLWdlbikKCjwhLS0gR0VUVElORyBTVEFSVEVEIC0tPgojIyBHZXR0aW5nIFN0YXJ0ZWQKCkluIG9yZGVyIHRvIGdlbmVyYXRlIHdlYiBzZXJ2aWNlcyBhbmQgbW9kZWxzIHlvdSBuZWVkIHRvIGluc3RhbGwgW25nLW9wZW5hcGktZ2VuXShodHRwczovL2dpdGh1Yi5jb20vY3ljbG9zcHJvamVjdC9uZy1vcGVuYXBpLWdlbikuCgojIyMgUHJlcmVxdWlzaXRlcwoKLSBKYXZhIDE3Ci0gTWF2ZW4KLSBOb2RlLmpzCi0gbnBtCi0gW25nLW9wZW5hcGktZ2VuXShodHRwczovL2dpdGh1Yi5jb20vY3ljbG9zcHJvamVjdC9uZy1vcGVuYXBpLWdlbikKLSBweXRob24qCgojIyMgSW5zdGFsbGF0aW9uCgoxLiBDbG9uZSB0aGUgcmVwbwogICBgYGBzaAogICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL0thbGlzemFuZG8vYnMtYXBpLXNwZWNpZmljYXRpb24uZ2l0CiAgIGBgYAoyLiBTZXQgb3V0cHV0IGRpcmVjdG9yeSBmb3IgZnJvbnRlZCBwcm9qZWN0IGluIGBwYWNrYWdlLmpzb25gCiAgIGBgYHNoCiAgICJnZW4td2ViIjogIm5nLW9wZW5hcGktZ2VuIC0tb3V0cHV0IC4uL2JzLXdlYi1jbGllbnQvc3JjL2FwcC9hcGkiCiAgIGBgYAozLiBCdWlsZCBBUEkgcHJvamVjdC4gCiAgIGBgYHNoCiAgIG12biBjbGVhbiBpbnN0YWxsCiAgIGBgYAotIGBhcGktYnVuZGxlci5weWAgcnVucyBhdXRvbWF0aWNhbGx5IGJlZm9yZSBpbnN0YWxsIHBoYXNlLiAKQnVuZGxlciBtZXJnZXMgYWxsIHlhbWwgbW9kZWxzIGZyb20gYHNyYy9tYWluL3NjaGVtYXNgIGFuZCBlbmRwb2ludHMgZnJvbSBgc3JjL21haW4vc2NoZW1hc2AKaW50byBzaW5nbGUgYG9wZW5hcGkueWFtbGAgZmlsZS4KLSBgcnVuIGdlbi13ZWJgIHJ1bnMgYXV0b21hdGljYWxseSBhZnRlciBpbnN0YWxsIHBoYXNlLgpJdCBnZW5lcmF0ZXMgZnJvbnRlbmQgbW9kZWxzIGFuZCBlbmRwb2ludCBpbXBsZW1lbnRhdGlvbnMuCgoKPCEtLSBDT05UQUNUIC0tPgojIyBDb250YWN0CgpBZGFtIEthbGlzeiBrYWxpc3phZGFtOTkrZGV2QGdtYWlsLmNvbQoKTGlua2VkSW4gW0BhZGFtLWthbGlzel0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL2FkYW0ta2FsaXN6LykKCk90aGVyIGxpbmtzIFtsaW5rdHIuZWUva2FsaXN6YW5kb10oaHR0cHM6Ly9saW5rdHIuZWUva2FsaXN6YW5kbykKCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiMtYnVnc3RhbGtlci1hcGkiPmJhY2sgdG8gdG9wPC9hPik8L3A+Cg== readmeEtag: '"c97d6bc3e5bc4933cea83a61c1ffcd13703e535a"' readmeLastModified: Sun, 28 Jul 2024 11:54:20 GMT repositoryId: 492590343 description: >- [BugStalker] OpenAPI 3 specification and generation tool for bs-business and bs-web-client projects created: '2022-05-15T19:59:13Z' updated: '2024-07-28T11:54:23Z' language: YAML archived: false stars: 1 watchers: 1 forks: 0 owner: Kaliszando logo: https://avatars.githubusercontent.com/u/45283134?v=4 repoEtag: '"242aeadd57870a139c14d4f22f912393943fe2c7101d6457269fb392dc2ad978"' repoLastModified: Sun, 28 Jul 2024 11:54:23 GMT foundInMaster: true category: Server Implementations - source: openapi3 tags repository: https://github.com/rusagaib/oas-preview.nvim v3: true id: 2d64a612248f3184b377fe072a356b49 repositoryMetadata: base64Readme: >- IVtpbWFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9ydXNhZ2FpYi9vYXMtcHJldmlldy5udmltKQoKIyBvYXMtcHJldmlldy5udmltCldJUCBhIHNpbXBsZSBudmltIHBsdWdpbiB0byBwcml2ZXcgb2FzL29wZW5hcGlzMyBvciBzd2FnZ2VyIHNwZWMgY3VycmVudGx5IHNlcnZlIHRoZSBhcGktZG9jcyB1c2luZyBzd2FnZ2VyLXVpIG9ubHkuLgoKIVtpbWFnZV0oZG9jcy9wcmV2aWV3LnBuZykKCiMjIyBQcmVyZXF1aXNpdGUgOnNwYXJrbGVzOgotLS0KIyMjIyBJbnN0YWxsaW5nIHRoZSBVSToKCioqc3dhZ2dlci11aSAoZG9ja2VyKToqKgoKYGBgc2gKZG9ja2VyIHB1bGwgc3dhZ2dlcmFwaS9zd2FnZ2VyLXVpOmxhdGVzdApgYGAKKipyZWRvYy11aSAoZG9ja2VyKTogY3VycmVudGx5IGlucHJvZ3Jlc3MqKiA6Y29uc3RydWN0aW9uOgoKYGBgc2gKZG9ja2VyIHB1bGwgcmVkb2NseS9yZWRvYwpgYGAKCioqc3RvcGxpZ2h0LXVpICh1bm9mZmljaWFsIGRvY2tlcik6IGN1cnJlbnRseSBpbnByb2dyZXNzKiogOmNvbnN0cnVjdGlvbjoKCmBgYHNoCmRvY2tlciBwdWxsIHNrcmlwdGZhYnJpay9lbGVtZW50cy1jbGkKYGBgCgojIyMgSW5zdGFsbCBQbHVnaW4gOnJvY2tldDoKLS0tCgoqKkxhenkubnZpbToqKgoKRGVmYXVsdDoKCmBgYAp7CiAgICAncnVzYWdhaWIvb2FzLXByZXZpZXcubnZpbScsCn0sCmBgYAoKYmFzaWMgY29uZmlnIHdpdGggYXV0by1zZXR1cCA6c3BhcmtsZXM6CgpgYGAKewogICAgJ3J1c2FnYWliL29hcy1wcmV2aWV3Lm52aW0nLAogICAgY29uZmlnID0gZnVuY3Rpb24oKQogICAgICAgIHJlcXVpcmUoJ29hcy1wcmV2aWV3Jykuc2V0dXAoewogICAgICAgICAgICBhcGlfcm91dGUgPSAiaHR0cDovLzEyNy4wLjAuMSIsIAogICAgICAgICAgICBwb3J0ID0gIjExMTEiLCAgLS0gdXAtdG8teW91IAogICAgICAgICAgICB1aSA9ICJzd2FnZ2VyIiAgLS0gInN3YWdnZXIiLCAicmVkb2MiLCAic3RvcGxpZ2h0IgogICAgICAgIH0pICAKICAgIGVuZCwKfSwKYGBgCgoqKlBhY2tlcjoqKgoKYWRkIHRoaXMgbGluZSBvbiB5b3VyIHBhY2tlciBjb25maWcubHVhIGp1c3QgYWRkIHJ1c2FnYWliL29hcy1wcmV2aWV3Lm52aW0KCmBgYAp1c2UgeydydXNhZ2FpYi9vYXMtcHJldmlldy5udmltJ30KYGBgCgoqKlBsdWc6KioKCmFkZCB0aGlzIGxpbmUgb24geW91ciBjb25maWcKCmBgYApQbHVnICdydXNhZ2FpYi9vYXMtcHJldmlldy5udmltJwpgYGAKCgojIyMgQXBwbHkvc2V0dXAgb2FzLXByZXZpZXcgcGx1Z2luIDpib3c6Ci0tLQoKSW4geW91ciBpbml0Lmx1YSAoRGVmYXVsdCk6CgpjdXJyZW50bHkgYXZhaWwgdWkgPSAic3dhZ2dlciIsIAoKaW5wcm9ncmVzcyA6Y29uc3RydWN0aW9uOiA9ICJyZWRvYyIsICJzdG9wbGlnaHQiCgpgYGAKIyB3aXRoIERlZmF1bHQgY29uZmlnICh1aSA9IHN3YWdnZXIpCnJlcXVpcmUoJ29hcy1wcmV2aWV3Jykuc2V0dXAoe30pCiMgT1IKcmVxdWlyZSgnb2FzLXByZXZpZXcnKS5zZXR1cCh7YXBpX3JvdXRlPSJodHRwOi8vMTI3LjAuMC4xIiwgcG9ydD0iMjIyMiIsIHVpPSJzdG9wbGlnaHQifSkKYGBgCgojIyMgUnVuIDpmaXJlOgotLS0KCndpbGwgY2FsbCBhbm90aGVyIGJ1ZmZlciBzcGxpdCB0byBib3R0b20sIHByZXNzIGVudGVyIGFuZCB0aGVuIGl0IHdpbGwgYnVpbGQgY29udGFpbmVyIHRvIHJ1biBjb250YWluZXIgYHVpLXNlcnZpY2VzYCBhbmQgc2VydmUgYXBpIGRvY3VtZW50YXRpb24gYmFzZWQgZnJvbSBzd2FnZ2VyIG9yIG9wZW5hcGkzIHNwZWMgKC55YW1sIG9yIC5qc29uKQoKYGBgCjpPQVNQcmV2aWV3CmBgYAoKCiMjIyBTdG9wIG9wdHMgOnRyaWFuZ3VsYXJfZmxhZ19vbl9wb3N0OgotLS0KCndpbGwgc3RvcCBidWZmZXIgY29tbWFuZHMgJiBkZWxldGUgY29udGFpbmVyIHNlcnZpY2VzCgpgYGAKOk9BU1ByZXZpZXdTdG9wCmBgYAoKLS0tCgojIyMjIEFueSBjb250cmlidXRpb25zIGFyZSB3ZWxjb21lIDpiZWVyOgoK readmeEtag: '"c3303584e9d69ee06568c26ea8ba2c00e9b37fc9"' readmeLastModified: Wed, 07 Aug 2024 22:24:26 GMT repositoryId: 545944120 description: WIP a simple nvim/neovim plugin to preview oas/openapi3 or swagger spec. created: '2022-10-05T08:46:31Z' updated: '2024-08-19T23:45:26Z' language: Lua archived: false stars: 1 watchers: 1 forks: 1 owner: rusagaib logo: https://avatars.githubusercontent.com/u/33116863?v=4 license: MIT repoEtag: '"7548ed299bd1bd8aa3dc5764b68671f27427f56205b12745e9441cc76d60869f"' repoLastModified: Mon, 19 Aug 2024 23:45:26 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/flexbase-eng/openapi-generator v3: true id: b508ca585e247699e3128b803debe3a2 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWdlbmVyYXRvcgoKWyFbQ292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWZsZXhiYXNlLWVuZ19vcGVuYXBpLWdlbmVyYXRvciZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1mbGV4YmFzZS1lbmdfb3BlbmFwaS1nZW5lcmF0b3IpClshW1F1YWxpdHkgR2F0ZSBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWZsZXhiYXNlLWVuZ19vcGVuYXBpLWdlbmVyYXRvciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9ZmxleGJhc2UtZW5nX29wZW5hcGktZ2VuZXJhdG9yKQoKW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIGNvZGUgZ2VuZXJhdG9yLgoKIyMgR2V0dGluZyBzdGFydGVkCgpgYGAKeWFybiBhZGQgQGZsZXhiYXNlL29wZW5hcGktZ2VuZXJhdG9yIC0tZGV2CmBgYAoKb3IKCmBgYApucG0gaSBAZmxleGJhc2Uvb3BlbmFwaS1nZW5lcmF0b3IgLUQKYGBgCgojIyBVc2FnZQoKYGBgCm9wZW5hcGktZ2VuZXJhdG9yIC1pIDxvcGVuYXBpc3BlYz4ueWFtbCAtbyAuIC10IDx0ZW1wbGF0ZT4uaGJzCmBgYAoKfCBPcHRpb24gICAgICAgICAgICAgICAgICAgfCBBcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYC0taW5jbHVkZWAgICAgICAgICAgICAgIHwgW2dsb2JdKDxodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HbG9iXyhwcm9ncmFtbWluZyk+KSB8IFNwZWNpZmllcyB0aGUgZ2xvYiBwYXR0ZXJuIGZvciBmaWxlcyB0byBwYXJzZSAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgLS1zaGFyZWRUZW1wbGF0ZXNgICAgICAgfCBbZ2xvYl0oPGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0dsb2JfKHByb2dyYW1taW5nKT4pIHwgU3BlY2lmaWVzIHRoZSBnbG9iIHBhdHRlcm4gZm9yIHNoYXJlZCB0ZW1wbGF0ZXMgICAgICAgICAgICAgICAgICAgICAgfAp8IGAtLWNvbmZpZ2AgICAgICAgICAgICAgICB8IGZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB0byB1c2UuIERlZmF1bHRzIHRvIGAub3BlbmFwaWdlbmVyYXRvci5qc29uYCB8CnwgYC0tbm8tcHJldHRpZXJgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERpc2FibGUgcHJldHRpZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgLS1uby1za2lwZW1wdHlgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR2VuZXJhdGUgZW1wdHkgZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGAtLW5vLXRhZ3NgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEaXNhYmxlIG9yZ2FuaXphdGlvbiBieSB0YWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYC1kYCBvciBgLS1kZWJ1ZyBbcGF0aF1gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE91dHB1dCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIENvbmZpZ3VyYXRpb24KCkV4YW1wbGUgY29uZmlndXJhdGlvbgoKYGBganNvbgp7CiAgImluY2x1ZGUiOiBbIi4vdGVzdHMvZGF0YS8qLnlhbWwiXSwKICAic2hhcmVkVGVtcGxhdGVzIjogWyIuL3RlbXBsYXRlcy9zZXJ2ZXIvKi5oYnMiXSwKICAiZ2VuZXJhdGUiOiB7CiAgICAicm91dGVyLnRzIjogewogICAgICAidGFyZ2V0IjogIi4vb3V0cHV0L3thcGl9L3JvdXRlci50cyIsCiAgICAgICJ0ZW1wbGF0ZSI6ICIuL3RlbXBsYXRlcy9zZXJ2ZXIvcm91dGVyLmhicyIKICAgIH0sCiAgICAiaW5kZXgiOiB7CiAgICAgICJ0YXJnZXQiOiAiLi9vdXRwdXQve2FwaX0ve25hbWV9L2dlbmVyYXRlZC97bmFtZX0udHMiLAogICAgICAidGVtcGxhdGUiOiAiLi90ZW1wbGF0ZXMvc2VydmVyL2luZGV4LmhicyIKICAgIH0sCiAgICAicm91dGVzIjogewogICAgICAidGFyZ2V0IjogIi4vb3V0cHV0L3thcGl9L3tuYW1lfS9nZW5lcmF0ZWQve25hbWV9LnJvdXRlcy50cyIsCiAgICAgICJ0ZW1wbGF0ZSI6ICIuL3RlbXBsYXRlcy9zZXJ2ZXIvcm91dGVzLmhicyIKICAgIH0sCiAgICAibW9kZWxzIjogewogICAgICAidGFyZ2V0IjogIi4vb3V0cHV0L3thcGl9L3tuYW1lfS9nZW5lcmF0ZWQve25hbWV9Lm1vZGVscy50cyIsCiAgICAgICJ0ZW1wbGF0ZSI6ICIuL3RlbXBsYXRlcy9zZXJ2ZXIvbW9kZWxzLmhicyIKICAgIH0sCiAgICAidmFsaWRhdGlvbnMiOiB7CiAgICAgICJ0YXJnZXQiOiAiLi9vdXRwdXQve2FwaX0ve25hbWV9L2dlbmVyYXRlZC97bmFtZX0udmFsaWRhdGlvbnMudHMiLAogICAgICAidGVtcGxhdGUiOiAiLi90ZW1wbGF0ZXMvc2VydmVyL3ZhbGlkYXRpb25zLmhicyIKICAgIH0KICB9LAogICJwcmV0dGllciI6IHRydWUsCiAgInRhZ3MiOiB0cnVlLAogICJkZWJ1Z1BhdGgiOiAiLi9vdXRwdXQvZGVidWcve2FwaX0vIgp9CmBgYAoKIyMgVGVtcGxhdGVzCgpCZWxvdyBhcmUgc29tZSBleGFtcGxlIFtoYW5kbGViYXJzXShodHRwczovL2hhbmRsZWJhcnNqcy5jb20vKSB0ZW1wbGF0ZXMgdG8gZ2VuZXJhdGUgYSB0eXBlc2NyaXB0IG91dHB1dCBmaWxlCgojIyMgYG1vZGVscy5oYnNgIHRlbXBsYXRlCgpodHRwczovL2dpdGh1Yi5jb20vZmxleGJhc2UtZW5nL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFpbi90ZW1wbGF0ZXMvc2VydmVyL21vZGVscy5oYnMKCiMjIyBgbW9kZWwuZGVjbGFyYXRpb24uaGJzYCBwYXJ0aWFsIHRlbXBsYXRlCgpodHRwczovL2dpdGh1Yi5jb20vZmxleGJhc2UtZW5nL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFpbi90ZW1wbGF0ZXMvc2VydmVyL21vZGVsLmRlY2xhcmF0aW9uLmhicwoKIyMjIGBtb2RlbC5leHByZXNzaW9uLmhic2AgcGFydGlhbCB0ZW1wbGF0ZQoKaHR0cHM6Ly9naXRodWIuY29tL2ZsZXhiYXNlLWVuZy9vcGVuYXBpLWdlbmVyYXRvci9ibG9iL21haW4vdGVtcGxhdGVzL3NlcnZlci9tb2RlbC5leHByZXNzaW9uLmhicwoKIyMgRXhhbXBsZQoKR2VuZXJhdGluZyB0aGUgcGV0c3RvcmUgb3BlbmFwaSBzcGVjIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZzoKCmBgYApvcGVuYXBpLWdlbmVyYXRvcgpgYGAKCm9yCgpgYGAKeWFybiBzdGFydApgYGAKCndpbGwgZ2VuZXJhdGUgY29kZSB1bmRlciBgLi9vdXRwdXQvc3dhZ2dlci1wZXRzdG9yZS1vcGVuYXBpLTMtMC9gCgojIyMgT3V0cHV0IGB7b3V0cHV0fS9wZXQvZ2VuZXJhdGVkL3BldC5yb3V0ZXMudHNgCgpgYGB0cwovKiBlc2xpbnQtZGlzYWJsZSAqLwovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIEZpbGUgYXV0by1nZW5lcmF0ZWQKCiBAc3VtbWFyeSBwZXQKIEBkZXNjcmlwdGlvbiBFdmVyeXRoaW5nIGFib3V0IHlvdXIgUGV0cwogQHZlcnNpb24gMS4wLjE3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICdAbWlkZGxld2FyZS9pbmRleC5qcyc7CmltcG9ydCAqIGFzIHV0aWxpdGllcyBmcm9tICdAc2hhcmVkL3V0aWxpdGllcy9vcGVuYXBpLnV0aWxpdGllcy5qcyc7CmltcG9ydCAqIGFzIG1vZGVscyBmcm9tICcuL3BldC5tb2RlbHMuanMnOwppbXBvcnQgKiBhcyB2YWxpZGF0b3JzIGZyb20gJy4vcGV0LnZhbGlkYXRpb25zLmpzJzsKaW1wb3J0ICogYXMgaGFuZGxlcnMgZnJvbSAnQG1vZHVsZXMvc3dhZ2dlci1wZXRzdG9yZS1vcGVuYXBpLTMtMC9yb3V0ZXMvcGV0L3BldC5oYW5kbGVycy5qcyc7CmltcG9ydCB7IFN3YWdnZXJfUGV0c3RvcmVfT3BlbkFQSV8zXzBSb3V0ZXIgfSBmcm9tICdAbW9kdWxlcy9zd2FnZ2VyLXBldHN0b3JlLW9wZW5hcGktMy0wL3JvdXRlcy9yb3V0ZXIuanMnOwoKLyoqCiAqIEBzdW1tYXJ5IFVwZGF0ZSBhbiBleGlzdGluZyBwZXQKICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBhbiBleGlzdGluZyBwZXQgYnkgSWQKICogQHJlbWFya3MgcmVxdWlyZWQgc2NvcGVzOiBbXQogKi8KU3dhZ2dlcl9QZXRzdG9yZV9PcGVuQVBJXzNfMFJvdXRlci5wdXQ8b2JqZWN0LCBvYmplY3QsIG1vZGVscy5QZXRNb2RlbCB8IG1vZGVscy5QZXRNb2RlbCB8IG1vZGVscy5QZXRNb2RlbD4oCiAgJy9wZXQnLAogIG1pZGRsZXdhcmUucm91dGVyQXV0aE1pZGRsZXdhcmUoW10pLAogIG1pZGRsZXdhcmUuYm9keVBhcnNlck1pZGRsZXdhcmUoWydhcHBsaWNhdGlvbi9qc29uJywgJ2FwcGxpY2F0aW9uL3htbCcsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXSksCiAgYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgbGV0IGJvZHk7CiAgICBpZiAoY3R4LnJlcXVlc3QudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSB7CiAgICAgIGJvZHkgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuUGV0TW9kZWw+KGN0eC5ib2R5LCB2YWxpZGF0b3JzLlBldE1vZGVsVmFsaWRhdG9yLCB1dGlsaXRpZXMuaGFuZGxlUmVxdWVzdFZhbGlkYXRvckVycm9ycyk7CiAgICB9IGVsc2UgaWYgKGN0eC5yZXF1ZXN0LnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnKSB7CiAgICAgIGJvZHkgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuUGV0TW9kZWw+KGN0eC5ib2R5LCB2YWxpZGF0b3JzLlBldE1vZGVsVmFsaWRhdG9yLCB1dGlsaXRpZXMuaGFuZGxlUmVxdWVzdFZhbGlkYXRvckVycm9ycyk7CiAgICB9IGVsc2UgewogICAgICBib2R5ID0gdXRpbGl0aWVzLmhhbmRsZVZhbGlkYXRpb248bW9kZWxzLlBldE1vZGVsPihjdHguYm9keSwgdmFsaWRhdG9ycy5QZXRNb2RlbFZhbGlkYXRvciwgdXRpbGl0aWVzLmhhbmRsZVJlcXVlc3RWYWxpZGF0b3JFcnJvcnMpOwogICAgfQogICAgY29uc3QgcmVzcG9uc2U6IG1vZGVscy51cGRhdGVQZXRSZXNwb25zZSA9IGF3YWl0IGhhbmRsZXJzLnVwZGF0ZVBldChjdHgsIGJvZHkpOwoKICAgIHV0aWxpdGllcy5zZXJpYWxpemVSZXNwb25zZShjdHgsIHJlc3BvbnNlLCBbJ2FwcGxpY2F0aW9uL3htbCcsICdhcHBsaWNhdGlvbi9qc29uJ10pOwoKICAgIGF3YWl0IG5leHQoKTsKICB9LAopOwoKLyoqCiAqIEBzdW1tYXJ5IEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCiAqIEBkZXNjcmlwdGlvbiBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogKiBAcmVtYXJrcyByZXF1aXJlZCBzY29wZXM6IFtdCiAqLwpTd2FnZ2VyX1BldHN0b3JlX09wZW5BUElfM18wUm91dGVyLnBvc3Q8b2JqZWN0LCBvYmplY3QsIG1vZGVscy5QZXRNb2RlbCB8IG1vZGVscy5QZXRNb2RlbCB8IG1vZGVscy5QZXRNb2RlbD4oCiAgJy9wZXQnLAogIG1pZGRsZXdhcmUucm91dGVyQXV0aE1pZGRsZXdhcmUoW10pLAogIG1pZGRsZXdhcmUuYm9keVBhcnNlck1pZGRsZXdhcmUoWydhcHBsaWNhdGlvbi9qc29uJywgJ2FwcGxpY2F0aW9uL3htbCcsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXSksCiAgYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgbGV0IGJvZHk7CiAgICBpZiAoY3R4LnJlcXVlc3QudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSB7CiAgICAgIGJvZHkgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuUGV0TW9kZWw+KGN0eC5ib2R5LCB2YWxpZGF0b3JzLlBldE1vZGVsVmFsaWRhdG9yLCB1dGlsaXRpZXMuaGFuZGxlUmVxdWVzdFZhbGlkYXRvckVycm9ycyk7CiAgICB9IGVsc2UgaWYgKGN0eC5yZXF1ZXN0LnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnKSB7CiAgICAgIGJvZHkgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuUGV0TW9kZWw+KGN0eC5ib2R5LCB2YWxpZGF0b3JzLlBldE1vZGVsVmFsaWRhdG9yLCB1dGlsaXRpZXMuaGFuZGxlUmVxdWVzdFZhbGlkYXRvckVycm9ycyk7CiAgICB9IGVsc2UgewogICAgICBib2R5ID0gdXRpbGl0aWVzLmhhbmRsZVZhbGlkYXRpb248bW9kZWxzLlBldE1vZGVsPihjdHguYm9keSwgdmFsaWRhdG9ycy5QZXRNb2RlbFZhbGlkYXRvciwgdXRpbGl0aWVzLmhhbmRsZVJlcXVlc3RWYWxpZGF0b3JFcnJvcnMpOwogICAgfQogICAgY29uc3QgcmVzcG9uc2U6IG1vZGVscy5hZGRQZXRSZXNwb25zZSA9IGF3YWl0IGhhbmRsZXJzLmFkZFBldChjdHgsIGJvZHkpOwoKICAgIHV0aWxpdGllcy5zZXJpYWxpemVSZXNwb25zZShjdHgsIHJlc3BvbnNlLCBbJ2FwcGxpY2F0aW9uL3htbCcsICdhcHBsaWNhdGlvbi9qc29uJ10pOwoKICAgIGF3YWl0IG5leHQoKTsKICB9LAopOwoKLyoqCiAqIEBzdW1tYXJ5IEZpbmQgcGV0IGJ5IElECiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIGEgc2luZ2xlIHBldAogKiBAcmVtYXJrcyByZXF1aXJlZCBzY29wZXM6IFtdCiAqLwpTd2FnZ2VyX1BldHN0b3JlX09wZW5BUElfM18wUm91dGVyLmdldDxvYmplY3QsIG9iamVjdD4oCiAgJy9wZXQvOnBldElkJywKICBtaWRkbGV3YXJlLnJvdXRlckF1dGhNaWRkbGV3YXJlKFtdKSwKICBtaWRkbGV3YXJlLmJvZHlQYXJzZXJNaWRkbGV3YXJlKFtdKSwKICBhc3luYyAoY3R4LCBuZXh0KSA9PiB7CiAgICBjb25zdCBwYXJhbXMgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuZ2V0UGV0QnlJZFBhdGhQYXJhbWV0ZXI+KAogICAgICBjdHgucGFyYW1zLAogICAgICB2YWxpZGF0b3JzLmdldFBldEJ5SWRQYXRoUGFyYW1ldGVyVmFsaWRhdG9yLAogICAgICB1dGlsaXRpZXMuaGFuZGxlUmVxdWVzdFZhbGlkYXRvckVycm9ycywKICAgICk7CgogICAgY29uc3QgcmVzcG9uc2U6IG1vZGVscy5nZXRQZXRCeUlkUmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVycy5nZXRQZXRCeUlkKGN0eCwgcGFyYW1zKTsKCiAgICB1dGlsaXRpZXMuc2VyaWFsaXplUmVzcG9uc2UoY3R4LCByZXNwb25zZSwgWydhcHBsaWNhdGlvbi94bWwnLCAnYXBwbGljYXRpb24vanNvbiddKTsKCiAgICBhd2FpdCBuZXh0KCk7CiAgfSwKKTsKCi8qKgogKiBAc3VtbWFyeSBVcGRhdGVzIGEgcGV0IGluIHRoZSBzdG9yZSB3aXRoIGZvcm0gZGF0YQogKiBAcmVtYXJrcyByZXF1aXJlZCBzY29wZXM6IFtdCiAqLwpTd2FnZ2VyX1BldHN0b3JlX09wZW5BUElfM18wUm91dGVyLnBvc3Q8b2JqZWN0LCBvYmplY3Q+KAogICcvcGV0LzpwZXRJZCcsCiAgbWlkZGxld2FyZS5yb3V0ZXJBdXRoTWlkZGxld2FyZShbXSksCiAgbWlkZGxld2FyZS5ib2R5UGFyc2VyTWlkZGxld2FyZShbXSksCiAgYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgY29uc3QgcGFyYW1zID0gdXRpbGl0aWVzLmhhbmRsZVZhbGlkYXRpb248bW9kZWxzLnVwZGF0ZVBldFdpdGhGb3JtUGF0aFBhcmFtZXRlcj4oCiAgICAgIGN0eC5wYXJhbXMsCiAgICAgIHZhbGlkYXRvcnMudXBkYXRlUGV0V2l0aEZvcm1QYXRoUGFyYW1ldGVyVmFsaWRhdG9yLAogICAgICB1dGlsaXRpZXMuaGFuZGxlUmVxdWVzdFZhbGlkYXRvckVycm9ycywKICAgICk7CgogICAgY29uc3QgcXVlcnkgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMudXBkYXRlUGV0V2l0aEZvcm1RdWVyeVBhcmFtZXRlcj4oCiAgICAgIGN0eC5yZXF1ZXN0LnF1ZXJ5LAogICAgICB2YWxpZGF0b3JzLnVwZGF0ZVBldFdpdGhGb3JtUXVlcnlQYXJhbWV0ZXJWYWxpZGF0b3IsCiAgICAgIHV0aWxpdGllcy5oYW5kbGVSZXF1ZXN0VmFsaWRhdG9yRXJyb3JzLAogICAgKTsKCiAgICBjb25zdCByZXNwb25zZTogbW9kZWxzLnVwZGF0ZVBldFdpdGhGb3JtUmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVycy51cGRhdGVQZXRXaXRoRm9ybShjdHgsIHBhcmFtcywgcXVlcnkpOwoKICAgIHV0aWxpdGllcy5zZXJpYWxpemVSZXNwb25zZShjdHgsIHJlc3BvbnNlLCBbXSk7CgogICAgYXdhaXQgbmV4dCgpOwogIH0sCik7CgovKioKICogQHN1bW1hcnkgRGVsZXRlcyBhIHBldAogKiBAcmVtYXJrcyByZXF1aXJlZCBzY29wZXM6IFtdCiAqLwpTd2FnZ2VyX1BldHN0b3JlX09wZW5BUElfM18wUm91dGVyLmRlbGV0ZTxvYmplY3QsIG9iamVjdD4oCiAgJy9wZXQvOnBldElkJywKICBtaWRkbGV3YXJlLnJvdXRlckF1dGhNaWRkbGV3YXJlKFtdKSwKICBtaWRkbGV3YXJlLmJvZHlQYXJzZXJNaWRkbGV3YXJlKFtdKSwKICBhc3luYyAoY3R4LCBuZXh0KSA9PiB7CiAgICBjb25zdCBwYXJhbXMgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuZGVsZXRlUGV0UGF0aFBhcmFtZXRlcj4oCiAgICAgIGN0eC5wYXJhbXMsCiAgICAgIHZhbGlkYXRvcnMuZGVsZXRlUGV0UGF0aFBhcmFtZXRlclZhbGlkYXRvciwKICAgICAgdXRpbGl0aWVzLmhhbmRsZVJlcXVlc3RWYWxpZGF0b3JFcnJvcnMsCiAgICApOwoKICAgIGNvbnN0IGhlYWRlcnMgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuZGVsZXRlUGV0SGVhZGVyUGFyYW1ldGVyPigKICAgICAgY3R4LnJlcXVlc3QuaGVhZGVycywKICAgICAgdmFsaWRhdG9ycy5kZWxldGVQZXRIZWFkZXJQYXJhbWV0ZXJWYWxpZGF0b3IsCiAgICAgIHV0aWxpdGllcy5oYW5kbGVSZXF1ZXN0VmFsaWRhdG9yRXJyb3JzLAogICAgKTsKICAgIGNvbnN0IHJlc3BvbnNlOiBtb2RlbHMuZGVsZXRlUGV0UmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVycy5kZWxldGVQZXQoY3R4LCBwYXJhbXMsIGhlYWRlcnMpOwoKICAgIHV0aWxpdGllcy5zZXJpYWxpemVSZXNwb25zZShjdHgsIHJlc3BvbnNlLCBbXSk7CgogICAgYXdhaXQgbmV4dCgpOwogIH0sCik7CgovKioKICogQHN1bW1hcnkgdXBsb2FkcyBhbiBpbWFnZQogKiBAcmVtYXJrcyByZXF1aXJlZCBzY29wZXM6IFtdCiAqLwpTd2FnZ2VyX1BldHN0b3JlX09wZW5BUElfM18wUm91dGVyLnBvc3Q8b2JqZWN0LCBvYmplY3QsIG1vZGVscy51cGxvYWRGaWxlUmVxdWVzdE9iamVjdD4oCiAgJy9wZXQvOnBldElkL3VwbG9hZEltYWdlJywKICBtaWRkbGV3YXJlLnJvdXRlckF1dGhNaWRkbGV3YXJlKFtdKSwKICBtaWRkbGV3YXJlLmJvZHlQYXJzZXJNaWRkbGV3YXJlKFsnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ10pLAogIGFzeW5jIChjdHgsIG5leHQpID0+IHsKICAgIGNvbnN0IGJvZHkgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMudXBsb2FkRmlsZVJlcXVlc3RPYmplY3Q+KAogICAgICBjdHguYm9keSwKICAgICAgdmFsaWRhdG9ycy51cGxvYWRGaWxlUmVxdWVzdE9iamVjdFZhbGlkYXRvciwKICAgICAgdXRpbGl0aWVzLmhhbmRsZVJlcXVlc3RWYWxpZGF0b3JFcnJvcnMsCiAgICApOwoKICAgIGNvbnN0IHBhcmFtcyA9IHV0aWxpdGllcy5oYW5kbGVWYWxpZGF0aW9uPG1vZGVscy51cGxvYWRGaWxlUGF0aFBhcmFtZXRlcj4oCiAgICAgIGN0eC5wYXJhbXMsCiAgICAgIHZhbGlkYXRvcnMudXBsb2FkRmlsZVBhdGhQYXJhbWV0ZXJWYWxpZGF0b3IsCiAgICAgIHV0aWxpdGllcy5oYW5kbGVSZXF1ZXN0VmFsaWRhdG9yRXJyb3JzLAogICAgKTsKCiAgICBjb25zdCBxdWVyeSA9IHV0aWxpdGllcy5oYW5kbGVWYWxpZGF0aW9uPG1vZGVscy51cGxvYWRGaWxlUXVlcnlQYXJhbWV0ZXI+KAogICAgICBjdHgucmVxdWVzdC5xdWVyeSwKICAgICAgdmFsaWRhdG9ycy51cGxvYWRGaWxlUXVlcnlQYXJhbWV0ZXJWYWxpZGF0b3IsCiAgICAgIHV0aWxpdGllcy5oYW5kbGVSZXF1ZXN0VmFsaWRhdG9yRXJyb3JzLAogICAgKTsKCiAgICBjb25zdCByZXNwb25zZTogbW9kZWxzLnVwbG9hZEZpbGVSZXNwb25zZSA9IGF3YWl0IGhhbmRsZXJzLnVwbG9hZEZpbGUoY3R4LCBib2R5LCBwYXJhbXMsIHF1ZXJ5KTsKCiAgICB1dGlsaXRpZXMuc2VyaWFsaXplUmVzcG9uc2UoY3R4LCByZXNwb25zZSwgWydhcHBsaWNhdGlvbi9qc29uJ10pOwoKICAgIGF3YWl0IG5leHQoKTsKICB9LAopOwoKLyoqCiAqIEBzdW1tYXJ5IEZpbmRzIFBldHMgYnkgc3RhdHVzCiAqIEBkZXNjcmlwdGlvbiBNdWx0aXBsZSBzdGF0dXMgdmFsdWVzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzCiAqIEByZW1hcmtzIHJlcXVpcmVkIHNjb3BlczogW10KICovClN3YWdnZXJfUGV0c3RvcmVfT3BlbkFQSV8zXzBSb3V0ZXIuZ2V0PG9iamVjdCwgb2JqZWN0PigKICAnL3BldC9maW5kQnlTdGF0dXMnLAogIG1pZGRsZXdhcmUucm91dGVyQXV0aE1pZGRsZXdhcmUoW10pLAogIG1pZGRsZXdhcmUuYm9keVBhcnNlck1pZGRsZXdhcmUoW10pLAogIGFzeW5jIChjdHgsIG5leHQpID0+IHsKICAgIGNvbnN0IHF1ZXJ5ID0gdXRpbGl0aWVzLmhhbmRsZVZhbGlkYXRpb248bW9kZWxzLmZpbmRQZXRzQnlTdGF0dXNRdWVyeVBhcmFtZXRlcj4oCiAgICAgIGN0eC5yZXF1ZXN0LnF1ZXJ5LAogICAgICB2YWxpZGF0b3JzLmZpbmRQZXRzQnlTdGF0dXNRdWVyeVBhcmFtZXRlclZhbGlkYXRvciwKICAgICAgdXRpbGl0aWVzLmhhbmRsZVJlcXVlc3RWYWxpZGF0b3JFcnJvcnMsCiAgICApOwoKICAgIGNvbnN0IHJlc3BvbnNlOiBtb2RlbHMuZmluZFBldHNCeVN0YXR1c1Jlc3BvbnNlID0gYXdhaXQgaGFuZGxlcnMuZmluZFBldHNCeVN0YXR1cyhjdHgsIHF1ZXJ5KTsKCiAgICB1dGlsaXRpZXMuc2VyaWFsaXplUmVzcG9uc2UoY3R4LCByZXNwb25zZSwgWydhcHBsaWNhdGlvbi94bWwnLCAnYXBwbGljYXRpb24vanNvbiddKTsKCiAgICBhd2FpdCBuZXh0KCk7CiAgfSwKKTsKCi8qKgogKiBAc3VtbWFyeSBGaW5kcyBQZXRzIGJ5IHRhZ3MKICogQGRlc2NyaXB0aW9uIE11bHRpcGxlIHRhZ3MgY2FuIGJlIHByb3ZpZGVkIHdpdGggY29tbWEgc2VwYXJhdGVkIHN0cmluZ3MuIFVzZSB0YWcxLCB0YWcyLCB0YWczIGZvciB0ZXN0aW5nLgogKiBAcmVtYXJrcyByZXF1aXJlZCBzY29wZXM6IFtdCiAqLwpTd2FnZ2VyX1BldHN0b3JlX09wZW5BUElfM18wUm91dGVyLmdldDxvYmplY3QsIG9iamVjdD4oCiAgJy9wZXQvZmluZEJ5VGFncycsCiAgbWlkZGxld2FyZS5yb3V0ZXJBdXRoTWlkZGxld2FyZShbXSksCiAgbWlkZGxld2FyZS5ib2R5UGFyc2VyTWlkZGxld2FyZShbXSksCiAgYXN5bmMgKGN0eCwgbmV4dCkgPT4gewogICAgY29uc3QgcXVlcnkgPSB1dGlsaXRpZXMuaGFuZGxlVmFsaWRhdGlvbjxtb2RlbHMuZmluZFBldHNCeVRhZ3NRdWVyeVBhcmFtZXRlcj4oCiAgICAgIGN0eC5yZXF1ZXN0LnF1ZXJ5LAogICAgICB2YWxpZGF0b3JzLmZpbmRQZXRzQnlUYWdzUXVlcnlQYXJhbWV0ZXJWYWxpZGF0b3IsCiAgICAgIHV0aWxpdGllcy5oYW5kbGVSZXF1ZXN0VmFsaWRhdG9yRXJyb3JzLAogICAgKTsKCiAgICBjb25zdCByZXNwb25zZTogbW9kZWxzLmZpbmRQZXRzQnlUYWdzUmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVycy5maW5kUGV0c0J5VGFncyhjdHgsIHF1ZXJ5KTsKCiAgICB1dGlsaXRpZXMuc2VyaWFsaXplUmVzcG9uc2UoY3R4LCByZXNwb25zZSwgWydhcHBsaWNhdGlvbi94bWwnLCAnYXBwbGljYXRpb24vanNvbiddKTsKCiAgICBhd2FpdCBuZXh0KCk7CiAgfSwKKTsKYGBgCg== readmeEtag: '"e2d78fb1e6df34c6804e4a820354d0e5852d884e"' readmeLastModified: Fri, 19 Jul 2024 18:23:14 GMT repositoryId: 564335104 description: OpenAPI v3 code generator created: '2022-11-10T13:53:10Z' updated: '2024-08-29T18:25:32Z' language: TypeScript archived: false stars: 1 watchers: 5 forks: 0 owner: flexbase-eng logo: https://avatars.githubusercontent.com/u/68292078?v=4 license: MIT repoEtag: '"af9eaa875f9b51050e1e18bfdf0724243fa01486df9ab4dd8436e04480246e8e"' repoLastModified: Thu, 29 Aug 2024 18:25:32 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/newpointe/churchonline-api-docs v3: true repositoryMetadata: base64Readme: >- IyBDaHVyY2ggT25saW5lIFBsYXRmb3JtIEFQSSBEb2NzClVub2ZmaWNpYWwgQVBJIGRvY3MgZm9yIENodXJjaCBPbmxpbmUgUGxhdGZvcm0gc2l0ZXMuCgpXcml0dGVuIHVzaW5nIHRoZSBbT3BlbkFQSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC8pIHNwZWNpZmljYXRpb24gYW5kIHByZXNlbnRlZCB1c2luZyBbU3dhZ2dlciBVSV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3N3YWdnZXItdWkvKS4KCiMjIFNlZSBpdCBpbiBhY3Rpb24gaGVyZTogaHR0cHM6Ly9uZXdwb2ludGUuZ2l0aHViLmlvL2NodXJjaG9ubGluZS1hcGktZG9jcwo= readmeEtag: '"b93da7d6a2b0e8beeaeacc5e7f72e1e5c512f8c2"' readmeLastModified: Thu, 17 Jan 2019 19:01:25 GMT repositoryId: 166279406 description: Swagger/OpenAPI docs for Church Online Platform sites created: '2019-01-17T18:57:18Z' updated: '2019-08-15T23:41:09Z' language: HTML archived: false stars: 1 watchers: 3 forks: 0 owner: NewPointe logo: https://avatars.githubusercontent.com/u/3997357?v=4 repoEtag: '"b93363fc92b4de7953c3fda970350d873eeb971747101ae8c44b799dc2379e25"' repoLastModified: Thu, 15 Aug 2019 23:41:09 GMT foundInMaster: true category: - Server - Server Implementations id: 050509852b4d1e8549e9f5a8dccd2288 - source: openapi3 tags repository: https://github.com/talentplatforms/dry_open_api v3: true repositoryMetadata: base64Readme: >- YGRyeV9vcGVuX2FwaWAKClByb3ZpZGluZyBhIFtkcnldKGh0dHBzOi8vZHJ5LXJiLm9yZy8pIHZlcnNpb24gb2YgdGhlIFtvcGVuX2FwaSBnZW1dKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3RrL29wZW5fYXBpKS4KIyMgSW5zdGFsbGF0aW9uCgpBZGQgdGhpcyBsaW5lIHRvIHlvdXIgYXBwbGljYXRpb24ncyBHZW1maWxlOgoKYGBgcnVieQpnZW0gJ2RyeV9vcGVuX2FwaScKYGBgCgpBbmQgdGhlbiBleGVjdXRlOgoKICAgICQgYnVuZGxlCgpPciBpbnN0YWxsIGl0IHlvdXJzZWxmIGFzOgoKICAgICQgZ2VtIGluc3RhbGwgZHJ5X29wZW5fYXBpCgojIyBVc2FnZQpJdCBoYXMgdHdvIHVzZSBjYXNlOgoKMS4gU2VyaWFsaXppbmcgZnJvbSBQT1JPIHRvIHlhbWwKMi4gRGVzZXJpYWxpemluZyB5YW1sIHRvIFBPUk8KCiMjIyBTZXJpYWxpemluZwoKYGBgcmIKc3BlYyA9IERyeU9wZW5BcGk6OlNwZWNpZmljYXRpb24ubmV3KAogIG9wZW5hcGk6ICIzLjAuMSIsCiAgaW5mbzogRHJ5T3BlbkFwaTo6SW5mby5uZXcoCiAgICB0aXRsZTogIkF3ZXNvbWUgQVBJIiwKICAgIGRlc2NyaXB0aW9uOiAiSXQgcHJvdmlkZXMgc29tZXRoaW5nIGF3ZXNvbWUiLAogICAgdmVyc2lvbjogIjEuMC4wIiwKICApLAogIHBhdGhzOiBEcnlPcGVuQXBpOjpQYXRocy5uZXcoCiAgICAiL3BldHMiOiBEcnlPcGVuQXBpOjpQYXRoSXRlbS5uZXcoCiAgICAgIGdldDogRHJ5T3BlbkFwaTo6T3BlcmF0aW9uLm5ldygKICAgICAgICBkZXNjcmlwdGlvbjogIlJldHVybnMgYWxsIHBldHMgZnJvbSB0aGUgc3lzdGVtIHRoYXQgdGhlIHVzZXIgaGFzIGFjY2VzcyB0byIsCiAgICAgICAgcmVzcG9uc2VzOiBEcnlPcGVuQXBpOjpSZXNwb25zZXMubmV3KAogICAgICAgICAgIjIwMCI6IERyeU9wZW5BcGk6OlJlc3BvbnNlLm5ldygKICAgICAgICAgICAgZGVzY3JpcHRpb246ICJBIGxpc3Qgb2YgcGV0cy4iLAogICAgICAgICAgICBjb250ZW50OiB7CiAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iOiBEcnlPcGVuQXBpOjpNZWRpYVR5cGUubmV3KAogICAgICAgICAgICAgICAgc2NoZW1hOiBEcnlPcGVuQXBpOjpTY2hlbWEubmV3KAogICAgICAgICAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgICAgICAgICBpdGVtczogRHJ5T3BlbkFwaTo6UmVmZXJlbmNlLm5ldyhyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9wZXQiKSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0KICAgICAgICAgICkKICAgICAgICApCiAgICAgICkKICAgICkKICApCikKCnlhbWwgPSBEcnlPcGVuQXBpOjpTZXJpYWxpemVyczo6WWFtbFNlcmlhbGl6ZXIuc2VyaWFsaXplKHNwZWMpCkZpbGUud3JpdGUoInNwZWMueW1sIiwgeWFtbCkKYGBgCgojIyMgRGVzZXJpYWxpemluZwoKYGBgcmIKeWFtbCA9IEZpbGUucmVhZCgic3BlYy55bWwiKQpzcGVjID0gRHJ5T3BlbkFwaTo6U2VyaWFsaXplcnM6OllhbWxTZXJpYWxpemVyLmRlc2VyaWFsaXplKHlhbWwpCmBgYAoKIyMgRGV2ZWxvcG1lbnQKCkFmdGVyIGNoZWNraW5nIG91dCB0aGUgcmVwbywgcnVuIGBiaW4vc2V0dXBgIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzLiBUaGVuLCBydW4gYHJha2Ugc3BlY2AgdG8gcnVuIHRoZSB0ZXN0cy4gWW91IGNhbiBhbHNvIHJ1biBgYmluL2NvbnNvbGVgIGZvciBhbiBpbnRlcmFjdGl2ZSBwcm9tcHQgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBleHBlcmltZW50LgoKVG8gaW5zdGFsbCB0aGlzIGdlbSBvbnRvIHlvdXIgbG9jYWwgbWFjaGluZSwgcnVuIGBidW5kbGUgZXhlYyByYWtlIGluc3RhbGxgLiBUbyByZWxlYXNlIGEgbmV3IHZlcnNpb24sIHJ1biBgYnVuZGxlIGV4ZWMgcmFrZSBidW1wOnBhdGNoYCB0byB1cGRhdGUgdGhlIHZlcnNpb24sIGFuZCB0aGVuIHJ1biBgYnVuZGxlIGV4ZWMgcmFrZSByZWxlYXNlYCwgd2hpY2ggd2lsbCBjcmVhdGUgYSBnaXQgdGFnIGZvciB0aGUgdmVyc2lvbiwgcHVzaCBnaXQgY29tbWl0cyBhbmQgdGFncywgYW5kIHB1c2ggdGhlIGAuZ2VtYCBmaWxlIHRvIFtydWJ5Z2Vtcy5vcmddKGh0dHBzOi8vcnVieWdlbXMub3JnKS4KCiMjIENvbnRyaWJ1dGluZwoKQnVnIHJlcG9ydHMgYW5kIHB1bGwgcmVxdWVzdHMgYXJlIHdlbGNvbWUgb24gR2l0SHViIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS90YWxlbnRwbGF0Zm9ybXMvZHJ5X29wZW5fYXBpLiBUaGlzIHByb2plY3QgaXMgaW50ZW5kZWQgdG8gYmUgYSBzYWZlLCB3ZWxjb21pbmcgc3BhY2UgZm9yIGNvbGxhYm9yYXRpb24sIGFuZCBjb250cmlidXRvcnMgYXJlIGV4cGVjdGVkIHRvIGFkaGVyZSB0byB0aGUgW0NvbnRyaWJ1dG9yIENvdmVuYW50XShodHRwOi8vY29udHJpYnV0b3ItY292ZW5hbnQub3JnKSBjb2RlIG9mIGNvbmR1Y3QuCgojIyBMaWNlbnNlCgpUaGUgZ2VtIGlzIGF2YWlsYWJsZSBhcyBvcGVuIHNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtNSVQgTGljZW5zZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgoKIyMgQ29kZSBvZiBDb25kdWN0CgpFdmVyeW9uZSBpbnRlcmFjdGluZyBpbiB0aGUgT3BlbkFwaSBwcm9qZWN04oCZcyBjb2RlYmFzZXMsIGlzc3VlIHRyYWNrZXJzLCBjaGF0IHJvb21zIGFuZCBtYWlsaW5nIGxpc3RzIGlzIGV4cGVjdGVkIHRvIGZvbGxvdyB0aGUgW2NvZGUgb2YgY29uZHVjdF0oaHR0cHM6Ly9naXRodWIuY29tL3RhbGVudHBsYXRmb3Jtcy9kcnlfb3Blbl9hcGkvYmxvYi9tYXN0ZXIvQ09ERV9PRl9DT05EVUNULm1kKS4K readmeEtag: '"82347c74c617678c45b389659ba82679ef2b544f"' readmeLastModified: Wed, 04 Mar 2020 12:24:07 GMT repositoryId: 232815290 description: Dried up PORO OpenAPI for ruby created: '2020-01-09T13:26:50Z' updated: '2022-05-10T11:13:06Z' language: Ruby archived: false stars: 1 watchers: 2 forks: 0 owner: talentplatforms logo: https://avatars.githubusercontent.com/u/55129375?v=4 license: MIT repoEtag: '"5a36614204b9cf261ed326452d4c85a5e7445c0e379ada89a0b7f3a870724b9b"' repoLastModified: Tue, 10 May 2022 11:13:06 GMT foundInMaster: true category: Parsers id: 801120928b2cf065cc52048077e0828f - source: openapi3 tags repository: https://github.com/godknowsiamgood/oapi3gen v3: true repositoryMetadata: base64Readme: >- IyBvYXBpM2dlbgpTaW1wbGUgT3BlbkFQSSAzIGNvZGUgZ2VuZXJhdG9yIHdpdGggemVybyBvciBtaW5pbXVtIHNlcnZlciBib2lsZXJwbGF0ZQoKIyBGZWF0dXJlcwoqIFN0cm9uZ2x5IHR5cGVkIHBhcmFtZXRlcnMgYW5kIHJlc3BvbnNlcwoqIE5vIHNlcnZlciBib2lsZXJwbGF0ZSBpZiBub3QgbmVlZGVkCiogTWluaW11bSBzZXJ2ZXIgYm9pbGVycGxhdGUgLSBqdXN0IHJvdXRlcyBhbmQgcGFyYW1ldGVyIHZhbGlkYXRpb24KKiBFYXN5IG1pZGRsZXdhcmVzIHdpdGggY3VzdG9tIGB4LW1pZGRsZXdhcmVzYCBvYmplY3QKKiBFYXN5IGVycm9yIHJlc3BvbnNlcyAtIGp1c3QgYWRkIGBjb21wb25lbnRzL3NjaGVtYXMvRXJyb3JgIG9iamVjdAoKIyBVc2FnZQpgYGAKZ28gaW5zdGFsbCBnaXRodWIuY29tL2dvZGtub3dzaWFtZ29vZC9vYXBpM2dlbkBsYXRlc3QKb2FwaTNnZW4gWy1zZXJ2ZXIgZWNob10gWy1vdXRwdXQgLi9vdXQuZ29dIHNwZWMueWFtbApgYGAKCiMgQ29kZSBnZW5lcmF0aW9uClByb2dyYW0gZ2VuZXJhdGVzIG9ubHkgb25lIGZpbGUgd2l0aCBzdHJvbmdseSB0eXBlcyBmb3IgcmVxdWVzdCBwYXJhbWV0ZXJzLCByZXF1ZXN0IGJvZGllcyBhbmQgcmVzcG9uc2VzLgpBbHNvIGl0IGdlbmVyYXRlcyBpbnRlcmZhY2UgdHlwZSBmb3IgY29udHJvbGxlciB0aGF0IHlvdSBtYXkgaW1wbGVtZW50LgoKRS5nLiBzcGVjaWZpY2F0aW9uIGxpa2UKYGBgCiAgL3BldHM6CiAgICBnZXQ6CiAgICAgIHN1bW1hcnk6IExpc3QgYWxsIHBldHMKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RQZXRzCiAgICAgIHRhZ3M6CiAgICAgICAgLSBwZXRzCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBuYW1lOiBsaW1pdAogICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICBkZXNjcmlwdGlvbjogSG93IG1hbnkgaXRlbXMgdG8gcmV0dXJuIGF0IG9uZSB0aW1lIChtYXggMTAwKQogICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgZm9ybWF0OiBpbnQzMgogICAgICByZXNwb25zZXM6CiAgICAgICAgJzIwMCc6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQSBwYWdlZCBhcnJheSBvZiBwZXRzCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXRzIgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogdW5leHBlY3RlZCBlcnJvcgogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvRXJyb3IiCmBgYAp3aWxsIGdlbmVyYXRlIGNvZGU6CmBgYAovLyBPYmplY3RzCnR5cGUgRXJyb3JTY2hlbWEgc3RydWN0IHsKCUNvZGUgICAgaW50MzIgIGBqc29uOiJjb2RlImAKCU1lc3NhZ2Ugc3RyaW5nIGBqc29uOiJtZXNzYWdlImAKfQoKdHlwZSBQZXRTY2hlbWEgc3RydWN0IHsKCUlkICAgaW50NjQgICBganNvbjoiaWQiYAoJTmFtZSBzdHJpbmcgIGBqc29uOiJuYW1lImAKCVRhZyAgKnN0cmluZyBganNvbjoidGFnImAKfQoKdHlwZSBQZXRzU2NoZW1hIFtdUGV0U2NoZW1hCgovLyBQYXJhbWV0ZXJzCnR5cGUgTGlzdFBldHNQYXJhbXMgc3RydWN0IHsKCUxpbWl0ICppbnQzMgp9CgovLyBSZXNwb25zZQp0eXBlIExpc3RQZXRzUmVzcG9uc2Ugc3RydWN0IHsKCUNvZGUgICAgICAgIGludAoJSHR0cDIwMCAgICAgUGV0c1NjaGVtYQoJSHR0cERlZmF1bHQgKkVycm9yU2NoZW1hCn0KCi8vIENvbnRyb2xsZXIKdHlwZSBDb250cm9sbGVyIGludGVyZmFjZSB7CglMaXN0UGV0cyhwYXJhbXMgKkxpc3RQZXRzUGFyYW1zLCByZXEgKmh0dHAuUmVxdWVzdCwgcmVzIGh0dHAuUmVzcG9uc2VXcml0ZXIpIExpc3RQZXRzUmVzcG9uc2UKfQoKYGBgCgojIFNlcnZlciBib2lsZXJwbGF0ZQpJZiBuZWVkZWQgbGlicmFyeSBjYW4gZ2VuZXJhdGUgc2VydmVyIHNwZWNpZmljIGNvZGUuIEF0IHRoaXMgbW9tZW50IG9ubHkgZWNobyBmcmFtZXdvcmsgc3VwcG9ydGVkLiAgSXQgd2lsbCBpbmNsdWRlIG9ubHkgcGFyYW1ldGVycyB2YWxpZGF0aW9uLCBkZWZhdWx0cyBhbmQgcm91dGVzLgoKYG9hcGkzZ2VuIC1zZXJ2ZXIgZWNobyBzcGVjLnlhbWxgCgpgYGAKZnVuYyBCdWlsZFJvdXRlcyhlICplY2hvLkdyb3VwLCBjb250cm9sbGVyIENvbnRyb2xsZXIpIHsKCWUuR0VUKCIvcGV0cyIsIGZ1bmMoYyBlY2hvLkNvbnRleHQpIGVycm9yIHsKCQlwYXJhbWV0ZXJzIDo9ICZMaXN0UGV0c1BhcmFtc3t9CgkJaWYgZXJyIDo9IGluaXRQYXJhbWV0ZXJzKGMsIHBhcmFtZXRlcnMsIG5pbCk7IGVyciAhPSBuaWwgewoJCQlyZXR1cm4gZXJyCgkJfQoKCQlyZXNwb25zZSA6PSBjb250cm9sbGVyLkxpc3RQZXRzKHBhcmFtZXRlcnMsIGMuUmVxdWVzdCgpLCBjLlJlc3BvbnNlKCkuV3JpdGVyKQogICAgLi4uCmBgYAo= readmeEtag: '"69da7092e42f31d60542bdebd97289d907fe2594"' readmeLastModified: Thu, 09 Dec 2021 13:58:54 GMT repositoryId: 419007095 description: OpenAPI 3 code generator with zero or minimum server boilerplate created: '2021-10-19T16:33:28Z' updated: '2021-12-21T12:12:56Z' language: Go archived: false stars: 1 watchers: 0 forks: 0 owner: godknowsiamgood logo: https://avatars.githubusercontent.com/u/5710885?v=4 repoEtag: '"0c5a0318ceaf130f8c9b83dc7005fd26448ac4e482c35de6c9d74f13f5bfa857"' repoLastModified: Tue, 21 Dec 2021 12:12:56 GMT foundInMaster: true category: Parsers id: ff0f2c2a5984ca8ed6346684b4530b77 - source: openapi3 tags repository: https://github.com/stackql/registry.stackql.io v3: true id: d8637d252604a5512f809640d17e0263 repositoryMetadata: base64Readme: >- IyByZWdpc3RyeS5zdGFja3FsLmlvCgpUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgZG9jdW1lbnRhdGlvbiBmb3IgU3RhY2tRTCBwcm92aWRlcnMsIHdoaWNoIGlzIHB1Ymxpc2hlZCB0byBbcmVnaXN0cnkuc3RhY2txbC5pb10oaHR0cHM6Ly9yZWdpc3RyeS5zdGFja3FsLmlvKS4gIAoKWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNmQ0ZGFlNTMtNzQ1Yi00NzBlLWE5NjQtMmMwNjc2YmZlMTY1L2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9yZWdpc3RyeS1zdGFja3FsLWlvL2RlcGxveXMpCgojIyBXZWJzaXRlCgpUaGlzIHdlYnNpdGUgaXMgYnVpbHQgdXNpbmcgW0RvY3VzYXVydXMgMl0oaHR0cHM6Ly9kb2N1c2F1cnVzLmlvLyksIGEgbW9kZXJuIHN0YXRpYyB3ZWJzaXRlIGdlbmVyYXRvci4KCiMjIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKeWFybgpgYGAKCiMjIyBMb2NhbCBEZXZlbG9wbWVudAoKYGBgYmFzaAp5YXJuIHN0YXJ0CmBgYAoKVGhpcyBjb21tYW5kIHN0YXJ0cyBhIGxvY2FsIGRldmVsb3BtZW50IHNlcnZlciBhbmQgb3BlbnMgdXAgYSBicm93c2VyIHdpbmRvdy4gTW9zdCBjaGFuZ2VzIGFyZSByZWZsZWN0ZWQgbGl2ZSB3aXRob3V0IGhhdmluZyB0byByZXN0YXJ0IHRoZSBzZXJ2ZXIuCgojIyMgQnVpbGQKCmBgYGJhc2gKeWFybiBidWlsZApgYGAKClRoaXMgY29tbWFuZCBnZW5lcmF0ZXMgc3RhdGljIGNvbnRlbnQgaW50byB0aGUgYGJ1aWxkYCBkaXJlY3RvcnkgYW5kIGNhbiBiZSBzZXJ2ZWQgdXNpbmcgYW55IHN0YXRpYyBjb250ZW50cyBob3N0aW5nIHNlcnZpY2UuCgojIyMgRGVwbG95bWVudAoKYGBgYmFzaApHSVRfVVNFUj08WW91ciBHaXRIdWIgdXNlcm5hbWU+IFVTRV9TU0g9dHJ1ZSB5YXJuIGRlcGxveQpgYGAKCklmIHlvdSBhcmUgdXNpbmcgR2l0SHViIHBhZ2VzIGZvciBob3N0aW5nLCB0aGlzIGNvbW1hbmQgaXMgYSBjb252ZW5pZW50IHdheSB0byBidWlsZCB0aGUgd2Vic2l0ZSBhbmQgcHVzaCB0byB0aGUgYGdoLXBhZ2VzYCBicmFuY2guCg== readmeEtag: '"fd8aa2807c119ce0306a0d2992b67533567a3280"' readmeLastModified: Tue, 27 Sep 2022 05:47:35 GMT repositoryId: 504338261 description: REPLACED BY https://github.com/stackql/stackql-registry-docs created: '2022-06-16T23:52:36Z' updated: '2023-01-09T05:32:10Z' language: CSS archived: true stars: 1 watchers: 2 forks: 0 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 repoEtag: '"6b78fd97fa803b2751408654830ba45264ed435f789d7f965c40901312daa9ba"' repoLastModified: Mon, 09 Jan 2023 05:32:10 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/tanmaykm/openapiclient.jl v3: true id: 545ca30b5ff061cb9e365cffcdcce408 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJQ2xpZW50CgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS90YW5tYXlrbS9PcGVuQVBJQ2xpZW50LmpsL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vdGFubWF5a20vT3BlbkFQSUNsaWVudC5qbC9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBQ0krYnJhbmNoJTNBbWFzdGVyKQpbIVtjb2RlY292LmlvXShodHRwOi8vY29kZWNvdi5pby9naXRodWIvdGFubWF5a20vT3BlbkFQSUNsaWVudC5qbC9jb3ZlcmFnZS5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHA6Ly9jb2RlY292LmlvL2dpdGh1Yi90YW5tYXlrbS9PcGVuQVBJQ2xpZW50LmpsP2JyYW5jaD1tYXN0ZXIpCgpUaGlzIGlzIHRoZSBKdWxpYSBsaWJyYXJ5IG5lZWRlZCB3aXRoIGNvZGUgZ2VuZXJhdGVkIGJ5IHRoZSBbT3BlbkFQSSBnZW5lcmF0b3JdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC8pLgoKVGhlIGdvYWwgb2YgT3BlbkFQSUNsaWVudCBpcyB0byBkZWZpbmUgYSBzdGFuZGFyZCwgbGFuZ3VhZ2UtYWdub3N0aWMgaW50ZXJmYWNlIHRvIFJFU1QgQVBJcyB3aGljaCBhbGxvd3MgYm90aCBodW1hbnMgYW5kIGNvbXB1dGVycyB0byBkaXNjb3ZlciBhbmQgdW5kZXJzdGFuZCB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBzZXJ2aWNlIHdpdGhvdXQgYWNjZXNzIHRvIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uLCBvciB0aHJvdWdoIG5ldHdvcmsgdHJhZmZpYyBpbnNwZWN0aW9uLiBXaGVuIHByb3Blcmx5IGRlZmluZWQgdmlhIE9wZW5BUEksIGEgY29uc3VtZXIgY2FuIHVuZGVyc3RhbmQgYW5kIGludGVyYWN0IHdpdGggdGhlIHJlbW90ZSBzZXJ2aWNlIHdpdGggYSBtaW5pbWFsIGFtb3VudCBvZiBpbXBsZW1lbnRhdGlvbiBsb2dpYy4gU2ltaWxhciB0byB3aGF0IGludGVyZmFjZXMgaGF2ZSBkb25lIGZvciBsb3dlci1sZXZlbCBwcm9ncmFtbWluZywgT3BlbkFQSSByZW1vdmVzIHRoZSBndWVzc3dvcmsgaW4gY2FsbGluZyB0aGUgc2VydmljZS4KCkNoZWNrIG91dCBbT3BlbkFQSS1TcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIE9wZW5BUEkgcHJvamVjdCwgaW5jbHVkaW5nIGFkZGl0aW9uYWwgbGlicmFyaWVzIHdpdGggc3VwcG9ydCBmb3Igb3RoZXIgbGFuZ3VhZ2VzIGFuZCBtb3JlLgoKIyMgSG93IGRvIEkgdXNlIHRoaXM/CgojIyMgQ29kZSBHZW5lcmF0aW9uCgpVc2UgW2luc3RydWN0aW9uc10oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycykgcHJvdmlkZWQgZm9yIHRoZSBKdWxpYSBPcGVuQVBJIGNvZGUgZ2VuZXJhdG9yIHBsdWdpbiB0byBnZW5lcmF0ZSBKdWxpYSBjb2RlLgoKIyMgR2VuZXJhdGVkIENvZGUgU3RydWN0dXJlCgojIyMgQVBJcwoKRWFjaCBBUEkgc2V0IGlzIGdlbmVyYXRlZCBpbnRvIGEgZmlsZSBuYW1lZCBgYXBpXzxhcGluYW1lPi5qbGAuIEl0IGlzIHJlcHJlc2VudGVkIGFzIGEgYHN0cnVjdGAgYW5kIHRoZSBBUElzIHVuZGVyIGl0IGFyZSBnZW5lcmF0ZWQgYXMgbWV0aG9kcy4gQW4gQVBJIHNldCBjYW4gYmUgY29uc3RydWN0ZWQgYnkgcHJvdmlkaW5nIHRoZSBPcGVuQVBJIGNsaWVudCBpbnN0YW5jZSB0aGF0IGl0IGNhbiB1c2UgZm9yIGNvbW11bmljYXRpb24uCgpUaGUgcmVxdWlyZWQgQVBJIHBhcmFtZXRlcnMgYXJlIGdlbmVyYXRlZCBhcyByZWd1bGFyIGZ1bmN0aW9uIGFyZ3VtZW50cy4gT3B0aW9uYWwgcGFyYW1ldGVycyBhcmUgZ2VuZXJhdGVkIGFzIGtleXdvcmQgYXJndW1lbnRzLiBNZXRob2QgZG9jdW1lbnRhdGlvbiBpcyBnZW5lcmF0ZWQgd2l0aCBkZXNjcmlwdGlvbiwgcGFyYW1ldGVyIGluZm9ybWF0aW9uIGFuZCByZXR1cm4gdmFsdWUuIFR3byB2YXJpYW50cyBvZiB0aGUgQVBJIGFyZSBnZW5lcmF0ZWQuIFRoZSBmaXJzdCB2YXJpYW50IGlzIHN1aXRhYmxlIGZvciBjYWxsaW5nIHN5bmNocm9ub3VzbHkgYW5kIHJldHVybnMgYSBzaW5nbGUgaW5zdGFuY2Ugb2YgdGhlIHJlc3VsdCBzdHJ1Y3QuCgpgYGBqdWxpYQojIGV4YW1wbGUgc3luY2hyb25vdXMgQVBJIHRoYXQgcmV0dXJucyBhbiBPcmRlciBpbnN0YW5jZQpnZXRPcmRlckJ5SWQoYXBpOjpTdG9yZUFwaSwgb3JkZXJJZDo6SW50NjQpCmBgYAoKVGhlIHNlY29uZCB2YXJpYW50IGlzIHN1aXRhYmxlIGZvciBhc3luY2hyb25vdXMgY2FsbHMgdG8gbWV0aG9kcyB0aGF0IHJldHVybiBjaHVua2VkIHRyYW5zZmVyIGVuY29kZWQgcmVzcG9uc2VzLCB3aGVyZSBpbiB0aGUgQVBJIHN0cmVhbXMgdGhlIHJlc3BvbnNlIG9iamVjdHMgaW50byBhbiBvdXRwdXQgY2hhbm5lbC4KCmBgYGp1bGlhCiMgZXhhbXBsZSBhc3luY2hyb25vdXMgQVBJIHRoYXQgc3RyZWFtcyBtYXRjaGluZyBQZXQgaW5zdGFuY2VzIGludG8gcmVzcG9uc2Vfc3RyZWFtCmZpbmRQZXRzQnlTdGF0dXMoYXBpOjpQZXRBcGksIHJlc3BvbnNlX3N0cmVhbTo6Q2hhbm5lbCwgc3RhdHVzOjpWZWN0b3J7U3RyaW5nfSkKYGBgCgpBIGNsaWVudCBjb250ZXh0IGhvbGRzIGNvbW1vbiBpbmZvcm1hdGlvbiB0byBiZSB1c2VkIGFjcm9zcyBBUElzLiBJdCBhbHNvIGhvbGRzIGEgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGFuZCB1c2VzIHRoYXQgYWNyb3NzIEFQSSBjYWxscy4KVGhlIGNsaWVudCBjb250ZXh0IG5lZWRzIHRvIGJlIHBhc3NlZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyIG9mIGFsbCBBUEkgY2FsbHMuIEl0IGNhbiBiZSBjcmVhdGVkIGFzOgoKYGBganVsaWEKQ2xpZW50KHJvb3Q6OlN0cmluZzsKICAgIGhlYWRlcnM6OkRpY3R7U3RyaW5nLFN0cmluZ309RGljdHtTdHJpbmcsU3RyaW5nfSgpLAogICAgZ2V0X3JldHVybl90eXBlOjpGdW5jdGlvbj0oZGVmYXVsdCxkYXRhKS0+ZGVmYXVsdCwKICAgIHRpbWVvdXQ6OkludD1ERUZBVUxUX1RJTUVPVVRfU0VDUywKICAgIGxvbmdfcG9sbGluZ190aW1lb3V0OjpJbnQ9REVGQVVMVF9MT05HUE9MTF9USU1FT1VUX1NFQ1MsCiAgICBwcmVfcmVxdWVzdF9ob29rOjpGdW5jdGlvbiwKKQpgYGAKCldoZXJlOgoKLSBgcm9vdGA6IHRoZSByb290IFVSSSB3aGVyZSBBUElzIGFyZSBob3N0ZWQgKHNob3VsZCBub3QgZW5kIHdpdGggYSBgL2ApCi0gYGhlYWRlcnNgOiBhbnkgYWRkaXRpb25hbCBoZWFkZXJzIHRoYXQgbmVlZCB0byBiZSBwYXNzZWQgYWxvbmcgd2l0aCBhbGwgQVBJIGNhbGxzCi0gYGdldF9yZXR1cm5fdHlwZWA6IG9wdGlvbmFsIG1ldGhvZCB0aGF0IGNhbiBtYXAgYSBKdWxpYSB0eXBlIHRvIGEgcmV0dXJuIHR5cGUgb3RoZXIgdGhhbiB3aGF0IGlzIHNwZWNpZmllZCBpbiB0aGUgQVBJIHNwZWNpZmljYXRpb24gYnkgbG9va2luZyBhdCB0aGUgZGF0YSAodGhpcyBpcyB1c2VkIG9ubHkgaW4gc3BlY2lhbCBjYXNlcywgZm9yIGV4YW1wbGUgd2hlbiBtb2RlbHMgYXJlIGFsbG93ZWQgdG8gYmUgZHluYW1pY2FsbHkgbG9hZGVkKQotIGB0aW1lb3V0YDogb3B0aW9uYWwgdGltZW91dCB0byBhcHBseSBmb3Igc2VydmVyIG1ldGhvZHMgKGRlZmF1bHQgYE9wZW5BUElDbGllbnQuREVGQVVMVF9USU1FT1VUX1NFQ1NgKQotIGBsb25nX3BvbGxpbmdfdGltZW91dGA6IG9wdGlvbmFsIHRpbWVvdXQgdG8gYXBwbHkgZm9yIGxvbmcgcG9sbGluZyBtZXRob2RzIChkZWZhdWx0IGBPcGVuQVBJQ2xpZW50LkRFRkFVTFRfTE9OR1BPTExfVElNRU9VVF9TRUNTYCkKLSBgcHJlX3JlcXVlc3RfaG9va2A6IHVzZXIgcHJvdmlkZWQgaG9vayB0byBtb2RpZnkgdGhlIHJlcXVlc3QgYmVmb3JlIGl0IGlzIHNlbnQKClRoZSBgcHJlX3JlcXVlc3RfaG9va2AgbXVzdCBwcm92aWRlIHRoZSBmb2xsb3dpbmcgdHdvIGltcGxlbWVudGF0aW9uczoKLSBgcHJlX3JlcXVlc3RfaG9vayhjdHg6Ok9wZW5BUElDbGllbnQuQ3R4KSAtPiBjdHhgCi0gYHByZV9yZXF1ZXN0X2hvb2socmVzb3VyY2VfcGF0aDo6QWJzdHJhY3RTdHJpbmcsIGJvZHk6OkFueSwgaGVhZGVyczo6RGljdHtTdHJpbmcsU3RyaW5nfSkgLT4gKHJlc291cmNlX3BhdGgsIGJvZHksIGhlYWRlcnMpYAoKSW4gY2FzZSBvZiBhbnkgZXJyb3JzIGFuIGluc3RhbmNlIG9mIGBBcGlFeGNlcHRpb25gIGlzIHRocm93bi4gSXQgaGFzIHRoZSBmb2xsb3dpbmcgZmllbGRzOgoKLSBgc3RhdHVzOjpJbnRgOiBIVFRQIHN0YXR1cyBjb2RlCi0gYHJlYXNvbjo6U3RyaW5nYDogT3B0aW9uYWwgaHVtYW4gcmVhZGFibGUgc3RyaW5nCi0gYHJlc3A6OkRvd25sb2Fkcy5SZXNwb25zZWA6IFRoZSBIVFRQIFJlc3BvbnNlIGZvciB0aGlzIGNhbGwKLSBgZXJyb3I6OlVuaW9ue05vdGhpbmcsRG93bmxvYWRzLlJlcXVlc3RFcnJvcn1gOiBUaGUgSFRUUCBlcnJvciBvbiByZXF1ZXN0IGZhaWx1cmUKCkFuIEFQSSBjYWxsIGludm9sdmVzIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gSWYgYSBwcmUgcmVxdWVzdCBob29rIGlzIHByb3ZpZGVkLCBpdCBpcyBpbnZva2VkIHdpdGggYW4gaW5zdGFuY2Ugb2YgYE9wZW5BUElDbGllbnQuQ3R4YCB0aGF0IGhhcyB0aGUgcmVxdWVzdCBhdHRyaWJ1dGVzLiBUaGUgaG9vayBtZXRob2QgaXMgZXhwZWN0ZWQgdG8gbWFrZSBhbnkgbW9kaWZpY2F0aW9ucyBpdCBuZWVkcyB0byB0aGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGJlZm9yZSB0aGUgcmVxdWVzdCBpcyBwcmVwYXJlZCwgYW5kIHJldHVybiB0aGUgbW9kaWZpZWQgY29udGV4dC4KLSBUaGUgVVJMIHRvIGJlIGludm9rZWQgaXMgcHJlcGFyZWQgYnkgcmVwbGFjaW5nIHBsYWNlaG9sZGVycyBpbiB0aGUgQVBJIFVSTCB0ZW1wbGF0ZSB3aXRoIHRoZSBzdXBwbGllZCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgotIElmIHRoaXMgaXMgYSBQT1NUIHJlcXVlc3QsIHNlcmlhbGl6ZSB0aGUgaW5zdGFuY2Ugb2YgYE9wZW5BUElNb2RlbGAgcHJvdmlkZWQgYXMgdGhlIGBib2R5YCBwYXJhbWV0ZXIgYXMgYSBKU09OIGRvY3VtZW50LgotIElmIGEgcHJlIHJlcXVlc3QgaG9vayBpcyBwcm92aWRlZCwgaXQgaXMgaW52b2tlZCB3aXRoIHRoZSBwcmVwYXJlZCByZXNvdXJjZSBwYXRoLCBib2R5IGFuZCByZXF1ZXN0IGhlYWRlcnMuIFRoZSBob29rIG1ldGhvZCBpcyBleHBlY3RlZCB0byBtb2RpZnkgYW5kIHJldHVybiBiYWNrIGEgdHVwbGUgb2YgcmVzb3VyY2UgcGF0aCwgYm9keSBhbmQgaGVhZGVycyB3aGljaCB3aWxsIGJlIHVzZWQgdG8gbWFrZSB0aGUgcmVxdWVzdC4KLSBNYWtlIHRoZSBIVFRQIGNhbGwgdG8gdGhlIEFQSSBlbmRwb2ludCBhbmQgY29sbGVjdCB0aGUgcmVzcG9uc2UuCi0gRGV0ZXJtaW5lIHRoZSByZXNwb25zZSB0eXBlIC8gbW9kZWwsIGludm9rZSB0aGUgb3B0aW9uYWwgdXNlciBzcGVjaWZpZWQgbWFwcGluZyBmdW5jdGlvbiBpZiBvbmUgd2FzIHByb3ZpZGVkLgotIENvbnZlcnQgKGRlc2VyaWFsaXplKSB0aGUgcmVzcG9uc2UgZGF0YSBpbnRvIHRoZSByZXR1cm4gdHlwZSBhbmQgcmV0dXJuLgotIEluIGNhc2Ugb2YgYW55IGVycm9ycywgdGhyb3cgYW4gaW5zdGFuY2Ugb2YgYEFwaUV4Y2VwdGlvbmAKCiMjIyBNb2RlbHMKCkVhY2ggbW9kZWwgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbiBpcyBnZW5lcmF0ZWQgaW50byBhIGZpbGUgbmFtZWQgYG1vZGVsXzxtb2RlbG5hbWU+LmpsYC4gSXQgaXMgcmVwcmVzZW50ZWQgYXMgYSBgbXV0YWJsZSBzdHJ1Y3RgIHRoYXQgaXMgYSBzdWJ0eXBlIG9mIHRoZSBhYnN0cmFjdCB0eXBlIGBPcGVuQVBJTW9kZWxgLiBNb2RlbHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgZGVmaW5lZDoKCi0gY29uc3RydWN0b3IgdGhhdCB0YWtlcyBrZXl3b3JkIGFyZ3VtZW50cyB0byBmaWxsIGluIHZhbHVlcyBmb3IgYWxsIG1vZGVsIHByb3BlcnRpZXMuCi0gW2Bwcm9wZXJ0eW5hbWVzYF0oaHR0cHM6Ly9kb2NzLmp1bGlhbGFuZy5vcmcvZW4vdjEvYmFzZS9iYXNlLyNCYXNlLnByb3BlcnR5bmFtZXMpCi0gW2BoYXNwcm9wZXJ0eWBdKGh0dHBzOi8vZG9jcy5qdWxpYWxhbmcub3JnL2VuL3YxL2Jhc2UvYmFzZS8jQmFzZS5oYXNwcm9wZXJ0eSkKLSBbYGdldHByb3BlcnR5YF0oaHR0cHM6Ly9kb2NzLmp1bGlhbGFuZy5vcmcvZW4vdjEvYmFzZS9iYXNlLyNCYXNlLmdldHByb3BlcnR5KQotIFtgc2V0cHJvcGVydHkhYF0oaHR0cHM6Ly9kb2NzLmp1bGlhbGFuZy5vcmcvZW4vdjEvYmFzZS9iYXNlLyNCYXNlLnNldHByb3BlcnR5ISkKCkluIGFkZGl0aW9uIHRvIHRoZXNlIHN0YW5kYXJkIEp1bGlhIG1ldGhvZHMsIHRoZXNlIGNvbnZlbmllbmNlIG1ldGhvZHMgYXJlIGFsc28gZ2VuZXJhdGVkIHRoYXQgaGVscCBpbiBjaGVja2luZyB2YWx1ZSBhdCBhIGhpZXJhcmNoaWNhbCBwYXRoIG9mIHRoZSBtb2RlbC4KCi0gYGZ1bmN0aW9uIGhhc3Byb3BlcnR5YXQobzo6VCwgcGF0aC4uLikgd2hlcmUge1Q8Ok9wZW5BUElNb2RlbH1gCi0gYGZ1bmN0aW9uIGdldHByb3BlcnR5YXQobzo6VCwgcGF0aC4uLikgd2hlcmUge1Q8Ok9wZW5BUElNb2RlbH1gCgpFLmc6CgpgYGBqdWxpYQojIGFjY2VzcyBvLmZpZWxkLnN1YmZpZWxkMS5zdWJmaWVsZDIKaWYgaGFzcHJvcGVydHlhdChvLCAiZmllbGQiLCAic3ViZmllbGQxIiwgInN1YmZpZWxkMiIpCiAgICBnZXRwcm9wZXJ0eWF0KG8sICJmaWVsZCIsICJzdWJmaWVsZDEiLCAic3ViZmllbGQyIikKZW5kCgojIGFjY2VzcyBuZXN0ZWQgYXJyYXkgZWxlbWVudHMsIGUuZy4gby5maWVsZDIuc3ViZmllbGQxWzEwXS5zdWJmaWVsZDIKaWYgaGFzcHJvcGVydHlhdChvLCAiZmllbGQiLCAic3ViZmllbGQxIiwgMTAsICJzdWJmaWVsZDIiKQogICAgZ2V0cHJvcGVydHlhdChvLCAiZmllbGQiLCAic3ViZmllbGQxIiwgMTAsICJzdWJmaWVsZDIiKQplbmQKYGBgCgojIyMgVmFsaWRhdGlvbnMKCkZvbGxvd2luZyB2YWxpZGF0aW9ucyBhcmUgaW5jb3Jwb3JhdGVkIGludG8gbW9kZWxzOgoKLSBtYXhpbXVtIHZhbHVlOiBtdXN0IGJlIGEgbnVtZXJpYyB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYSBzcGVjaWZpZWQgdmFsdWUKLSBtaW5pbXVtIHZhbHVlOiBtdXN0IGJlIGEgbnVtZXJpYyB2YWx1ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYSBzcGVjaWZpZWQgdmFsdWUKLSBtYXhpbXVtIGxlbmd0aDogbXVzdCBiZSBhIHN0cmluZyB2YWx1ZSBvZiBsZW5ndGggbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGEgc3BlY2lmaWVkIHZhbHVlCi0gbWluaW11bSBsZW5ndGg6IG11c3QgYmUgYSBzdHJpbmcgdmFsdWUgb2YgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBhIHNwZWNpZmllZCB2YWx1ZQotIG1heGltdW0gaXRlbSBjb3VudDogbXVzdCBiZSBhIGxpc3QgdmFsdWUgd2l0aCBudW1iZXIgb2YgaXRlbXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGEgc3BlY2lmaWVkIHZhbHVlCi0gbWluaW11bSBpdGVtIGNvdW50OiBtdXN0IGJlIGEgbGlzdCB2YWx1ZSB3aXRoIG51bWJlciBvZiBpdGVtcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYSBzcGVjaWZpZWQgdmFsdWUKLSBlbnVtOiB2YWx1ZSBtdXN0IGJlIGZyb20gYSBsaXN0IG9mIGFsbG93ZWQgdmFsdWVzCgpWYWxpZGF0aW9ucyBhcmUgaW1wb3NlZCBpbiB0aGUgY29uc3RydWN0b3IgYW5kIGBzZXRwcm9wZXJ0eSFgIG1ldGhvZHMgb2YgbW9kZWxzLgo= readmeEtag: '"ab841d35744db25a492a36c2eeb2434f2c277947"' readmeLastModified: Fri, 09 Sep 2022 04:13:57 GMT repositoryId: 521258468 description: OpenAPI helper for Julia, works with openapi-generator created: '2022-08-04T12:30:35Z' updated: '2022-09-09T06:34:48Z' language: Julia archived: false stars: 1 watchers: 2 forks: 0 owner: tanmaykm logo: https://avatars.githubusercontent.com/u/1010989?v=4 license: NOASSERTION repoEtag: '"29a18e17474dcffe1dc51a727b8b0d6957561246593e5b88540d17c02a6eec4f"' repoLastModified: Fri, 09 Sep 2022 06:34:48 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/nasrmohammad4804/reactive-programming-demo v3: true id: 6bb58bce20152c0be4fded1ee9a95a03 repositoryMetadata: base64Readme: >- IyByZWFjdGl2ZS1wcm9ncmFtbWluZy1kZW1vCmkgd2FudCB0byBjcmVhdGUgc2FtcGxlIHByb2plY3Qgd2l0aCBzcHJpbmcgd2ViZmx1eCBhbmQgZG9ja2VyaXplIGl0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiFbZG93bmxvYWRdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzc2MDM4MTQzLzE4NTc2NjE5MS1hYTM3N2QzMC1mZTk0LTRhNTYtYjhjYy0xZTVhZmViNDE0NzcuanBnKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgeW91IGNhbiBjbG9uZSBwcm9qZWN0IGFuZCBydW4gd2l0aCBkb2NrZXIgCioqMSoqLiB5b3UgbmVlZCB0byBidWlsZCBpbWFnZSBvZiBwcm9qZWN0IHdpdGggY29tbWFuZCBvZiAgKipkb2NrZXIgYnVpbGQgLXQgdXNlci1teXNxbCAuKiogIChhbmQgYWJsZSB0byBhbHRlcm5hdGl2ZSBkb2NrZXIgaW1hZ2UgaW5zdGVhZCBvZiB1c2VyLW15c3FsKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqKjIqKi4geW91IG5lZWQgdG8gcHVsbCBteXNxbCBpbWFnZSBmcm9tIGRvY2tlciBodWIgd2l0aCBjb21tYW5kIG9mICoqZG9ja2VyIHB1bGwgbXlzcWw6bGF0ZXN0KiogCihub3RlOiBpZiB5b3UgYWxyZWFkeSBoYXZlIGl0IGRvbnQgbmVlZCB0byBleGVjdXRlIHRoaXMgY29tbWFuZCBhbmQgZ2V0IGl0IGZyb20gbG9jYWwgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqKjMqKi4gYWZ0ZXIgeW91IG5lZWQgdG8gcnVuIGNvbnRhaW5lciBvZiBteXNxbCB3aXRoIHlvdXIgb3duIHNwZWNpZmljYXRpb24gc3VjaCBhcyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYW5kIGRhdGFiYXNlIG5hbWUgd2l0aCBjb21tYW5kIG9mCioqZG9ja2VyIHJ1biAtLW5hbWUgbXlzcWwtc3RhbmRhbG9uZSAtZSBNWVNRTF9ST09UX1BBU1NXT1JEPU1vaGFtbWFkTkBzcjEzODA0ODA0IC1lIE1ZU1FMX0RBVEFCQVNFPXJlYWN0aXZlLWRlbW8gIC1lIE1ZU1FMX1BBU1NXT1JEPU1vaGFtbWFkTkBzcjEzODA0ODA0IC1kIG15c3FsKioKIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCioqNCoqLiBhbmQgYXQgdGhlIGxhc3Qgc3RhZ2UgeW91IG5lZWQgdG8gcnVuIHRoaXMgY29udGFpbmVyIGFuZCBsaW5rIHByb2plY3QgaW1hZ2Ugd2l0aCBteXNxbCBmb3IgY29tcGF0aWJpbGl0eSB0b2dldGhlciBhbmQgbWFwIG9uIGV2ZXJ5IHBvcnQgd2hpY2ggeW91IHdhbnQgb24geW91ciBsb2NhbCBtYWNoaW5lCg== readmeEtag: '"dcba8bde5bd66fbba492f9784a9f23dc493f9085"' readmeLastModified: Sat, 20 Aug 2022 21:30:46 GMT repositoryId: 527035744 description: i want to create sample project with spring webflux and dockerize it created: '2022-08-20T20:44:25Z' updated: '2022-11-18T21:53:54Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: nasrmohammad4804 logo: https://avatars.githubusercontent.com/u/76038143?v=4 license: MIT repoEtag: '"50108fd74712dd4367760756f3bf53dd04b059594a596f30e45c19bf5dea3cd7"' repoLastModified: Fri, 18 Nov 2022 21:53:54 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/namsor/namsor-ruby-sdk2 v3: true repositoryMetadata: base64Readme: >- IyBuYW1zb3JfY2xpZW50CgpOYW1Tb3JDbGllbnQgLSB0aGUgUnVieSBnZW0gZm9yIHRoZSBOYW1Tb3IgQVBJIHYyCgpOYW1Tb3IgQVBJIHYyIDogZW5wb2ludHMgdG8gcHJvY2VzcyBwZXJzb25hbCBuYW1lcyAoZ2VuZGVyLCBjdWx0dXJhbCBvcmlnaW4gb3IgZXRobmljaXR5KSBpbiBhbGwgYWxwaGFiZXRzIG9yIGxhbmd1YWdlcy4gVXNlIEdFVCBtZXRob2RzIGZvciBzbWFsbCB0ZXN0cywgYnV0IHByZWZlciBQT1NUIG1ldGhvZHMgZm9yIGhpZ2hlciB0aHJvdWdocHV0IChiYXRjaCBwcm9jZXNzaW5nIG9mIHVwIHRvIDEwMDAgbmFtZXMgYXQgYSB0aW1lKS4gTmVlZCBzb21ldGhpbmcgeW91IGNhbid0IGZpbmQgaGVyZT8gV2UgaGF2ZSBtYW55IG1vcmUgZmVhdHVyZXMgY29taW5nIHNvb24uIExldCB1cyBrbm93LCB3ZSdsbCBkbyBvdXIgYmVzdCB0byBhZGQgaXQhIAoKVGhpcyBTREsgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSBwcm9qZWN0OgoKLSBBUEkgdmVyc2lvbjogMi4wLjItYmV0YQotIFBhY2thZ2UgdmVyc2lvbjogMC4xLjAKLSBCdWlsZCBwYWNrYWdlOiBvcmcub3BlbmFwaXRvb2xzLmNvZGVnZW4ubGFuZ3VhZ2VzLlJ1YnlDbGllbnRDb2RlZ2VuCkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlzaXQgW2h0dHA6Ly93d3cubmFtc29yLmNvbS9dKGh0dHA6Ly93d3cubmFtc29yLmNvbS8pCgojIyBJbnN0YWxsYXRpb24KCiMjIyBCdWlsZCBhIGdlbQoKVG8gYnVpbGQgdGhlIFJ1YnkgY29kZSBpbnRvIGEgZ2VtOgoKYGBgc2hlbGwKZ2VtIGJ1aWxkIG5hbXNvcl9jbGllbnQuZ2Vtc3BlYwpgYGAKClRoZW4gZWl0aGVyIGluc3RhbGwgdGhlIGdlbSBsb2NhbGx5OgoKYGBgc2hlbGwKZ2VtIGluc3RhbGwgLi9uYW1zb3JfY2xpZW50LTAuMS4wLmdlbQpgYGAKKGZvciBkZXZlbG9wbWVudCwgcnVuIGBnZW0gaW5zdGFsbCAtLWRldiAuL25hbXNvcl9jbGllbnQtMC4xLjAuZ2VtYCB0byBpbnN0YWxsIHRoZSBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXMpCgpvciBwdWJsaXNoIHRoZSBnZW0gdG8gYSBnZW0gaG9zdGluZyBzZXJ2aWNlLCBlLmcuIFtSdWJ5R2Vtc10oaHR0cHM6Ly9ydWJ5Z2Vtcy5vcmcvKS4KCkZpbmFsbHkgYWRkIHRoaXMgdG8gdGhlIEdlbWZpbGU6CgogICAgZ2VtICduYW1zb3JfY2xpZW50JywgJ34+IDAuMS4wJwoKIyMjIEluc3RhbGwgZnJvbSBHaXQKCklmIHRoZSBSdWJ5IGdlbSBpcyBob3N0ZWQgYXQgYSBnaXQgcmVwb3NpdG9yeTogaHR0cHM6Ly9naXRodWIuY29tL25hbXNvci9uYW1zb3ItcnVieS1zZGsyLCB0aGVuIGFkZCB0aGUgZm9sbG93aW5nIGluIHRoZSBHZW1maWxlOgoKICAgIGdlbSAnbmFtc29yX2NsaWVudCcsIDpnaXQgPT4gJ2h0dHBzOi8vZ2l0aHViLmNvbS9uYW1zb3IvbmFtc29yLXJ1Ynktc2RrMi5naXQnCgojIyMgSW5jbHVkZSB0aGUgUnVieSBjb2RlIGRpcmVjdGx5CgpJbmNsdWRlIHRoZSBSdWJ5IGNvZGUgZGlyZWN0bHkgdXNpbmcgYC1JYCBhcyBmb2xsb3dzOgoKYGBgc2hlbGwKcnVieSAtSWxpYiBzY3JpcHQucmIKYGBgCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClBsZWFzZSBmb2xsb3cgdGhlIFtpbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pIHByb2NlZHVyZSBhbmQgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBjb2RlOgpgYGBydWJ5CiMgTG9hZCB0aGUgZ2VtCnJlcXVpcmUgJ25hbXNvcl9jbGllbnQnCgojIFNldHVwIGF1dGhvcml6YXRpb24KTmFtU29yQ2xpZW50LmNvbmZpZ3VyZSBkbyB8Y29uZmlnfAogICMgQ29uZmlndXJlIEFQSSBrZXkgYXV0aG9yaXphdGlvbjogYXBpX2tleQogIGNvbmZpZy5hcGlfa2V5WydYLUFQSS1LRVknXSA9ICdZT1VSIEFQSSBLRVknCiAgIyBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHNldCBhIHByZWZpeCBmb3IgdGhlIEFQSSBrZXksIGUuZy4gJ0JlYXJlcicgKGRlZmF1bHRzIHRvIG5pbCkKICAjY29uZmlnLmFwaV9rZXlfcHJlZml4WydYLUFQSS1LRVknXSA9ICdCZWFyZXInCmVuZAoKYXBpX2luc3RhbmNlID0gTmFtU29yQ2xpZW50OjpBZG1pbkFwaS5uZXcKCmJlZ2luCiAgI1ByaW50IGN1cnJlbnQgQVBJIHVzYWdlLgogIHJlc3VsdCA9IGFwaV9pbnN0YW5jZS5hcGlfdXNhZ2UKICBwIHJlc3VsdApyZXNjdWUgTmFtU29yQ2xpZW50OjpBcGlFcnJvciA9PiBlCiAgcHV0cyAiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBBZG1pbkFwaS0+YXBpX3VzYWdlOiAje2V9IgplbmQKCmBgYAoKIyMgRG9jdW1lbnRhdGlvbiBmb3IgQVBJIEVuZHBvaW50cwoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL3YyLm5hbXNvci5jb20vTmFtU29yQVBJdjIqCgpDbGFzcyB8IE1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKiphcGlfdXNhZ2UqKl0oZG9jcy9BZG1pbkFwaS5tZCNhcGlfdXNhZ2UpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVVzYWdlIHwgUHJpbnQgY3VycmVudCBBUEkgdXNhZ2UuCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKmFwaV91c2FnZV9oaXN0b3J5KipdKGRvY3MvQWRtaW5BcGkubWQjYXBpX3VzYWdlX2hpc3RvcnkpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVVzYWdlSGlzdG9yeSB8IFByaW50IGhpc3RvcmljYWwgQVBJIHVzYWdlLgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKiphcGlfdXNhZ2VfaGlzdG9yeV9hZ2dyZWdhdGUqKl0oZG9jcy9BZG1pbkFwaS5tZCNhcGlfdXNhZ2VfaGlzdG9yeV9hZ2dyZWdhdGUpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVVzYWdlSGlzdG9yeUFnZ3JlZ2F0ZSB8IFByaW50IGhpc3RvcmljYWwgQVBJIHVzYWdlIChpbiBhbiBhZ2dyZWdhdGVkIHZpZXcsIGJ5IHNlcnZpY2UsIGJ5IGRheS9ob3VyL21pbikuCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKmF2YWlsYWJsZV9wbGFucyoqXShkb2NzL0FkbWluQXBpLm1kI2F2YWlsYWJsZV9wbGFucykgfCAqKkdFVCoqIC9hcGkyL2pzb24vYXZhaWxhYmxlUGxhbnMgfCBMaXN0IGFsbCBhdmFpbGFibGUgcGxhbnMgaW4gdGhlIGRlZmF1bHQgY3VycmVuY3kgKHVzZCkuCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKmF2YWlsYWJsZV9wbGFuczEqKl0oZG9jcy9BZG1pbkFwaS5tZCNhdmFpbGFibGVfcGxhbnMxKSB8ICoqR0VUKiogL2FwaTIvanNvbi9hdmFpbGFibGVQbGFucy97dG9rZW59IHwgTGlzdCBhbGwgYXZhaWxhYmxlIHBsYW5zIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGN1cnJlbmN5LgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKiphdmFpbGFibGVfc2VydmljZXMqKl0oZG9jcy9BZG1pbkFwaS5tZCNhdmFpbGFibGVfc2VydmljZXMpIHwgKipHRVQqKiAvYXBpMi9qc29uL2FwaVNlcnZpY2VzIHwgTGlzdCBvZiBBUEkgc2VydmljZXMgYW5kIHVzYWdlIGNvc3QgaW4gVW5pdHMgKGRlZmF1bHQgaXMgMT1PTkUgVW5pdCkuCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKmJpbGxpbmdfY3VycmVuY2llcyoqXShkb2NzL0FkbWluQXBpLm1kI2JpbGxpbmdfY3VycmVuY2llcykgfCAqKkdFVCoqIC9hcGkyL2pzb24vYmlsbGluZ0N1cnJlbmNpZXMgfCBMaXN0IHBvc3NpYmxlIGN1cnJlbmN5IG9wdGlvbnMgZm9yIGJpbGxpbmcgKFVTRCwgRVVSLCBHQlAsIC4uLikKKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqYmlsbGluZ19oaXN0b3J5KipdKGRvY3MvQWRtaW5BcGkubWQjYmlsbGluZ19oaXN0b3J5KSB8ICoqR0VUKiogL2FwaTIvanNvbi9iaWxsaW5nSGlzdG9yeS97dG9rZW59IHwgUmVhZCB0aGUgaGlzdG9yeSBiaWxsaW5nIGluZm9ybWF0aW9uIChpbnZvaWNlcyBwYWlkIHZpYSBTdHJpcGUgb3IgbWFudWFsbHkpLgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKipiaWxsaW5nX2luZm8qKl0oZG9jcy9BZG1pbkFwaS5tZCNiaWxsaW5nX2luZm8pIHwgKipHRVQqKiAvYXBpMi9qc29uL2JpbGxpbmdJbmZvL3t0b2tlbn0gfCBSZWFkIHRoZSBiaWxsaW5nIGluZm9ybWF0aW9uIChjb21wYW55IG5hbWUsIGFkZHJlc3MsIHBob25lLCB2YXQgSUQpCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKmNoYXJnZSoqXShkb2NzL0FkbWluQXBpLm1kI2NoYXJnZSkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2NoYXJnZSB8IENyZWF0ZSBhIFN0cmlwZSBDdXN0b21lciwgYmFzZWQgb24gYSBwYXltZW50IGNhcmQgdG9rZW4gKGZyb20gc2VjdXJlIFN0cmlwZUpTKSBhbmQgZW1haWwuCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKmNvcnBvcmF0ZV9rZXkqKl0oZG9jcy9BZG1pbkFwaS5tZCNjb3Jwb3JhdGVfa2V5KSB8ICoqR0VUKiogL2FwaTIvanNvbi9jb3Jwb3JhdGVLZXkve2FwaUtleX0ve2NvcnBvcmF0ZX0gfCBTZXR0aW5nIGFuIEFQSSBLZXkgdG8gYSBjb3Jwb3JhdGUgc3RhdHVzLgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKipkZWJ1Z19sZXZlbCoqXShkb2NzL0FkbWluQXBpLm1kI2RlYnVnX2xldmVsKSB8ICoqR0VUKiogL2FwaTIvanNvbi9kZWJ1Z0xldmVsL3tsb2dnZXJ9L3tsZXZlbH0gfCBVcGRhdGUgZGVidWcgbGV2ZWwgZm9yIGEgY2xhc3NpZmllcgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKippbnZhbGlkYXRlX2NhY2hlKipdKGRvY3MvQWRtaW5BcGkubWQjaW52YWxpZGF0ZV9jYWNoZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vaW52YWxpZGF0ZUNhY2hlIHwgSW52YWxpZGF0ZSBzeXN0ZW0gY2FjaGVzLgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKipsZWFybmFibGUqKl0oZG9jcy9BZG1pbkFwaS5tZCNsZWFybmFibGUpIHwgKipHRVQqKiAvYXBpMi9qc29uL2xlYXJuYWJsZS97c291cmNlfS97bGVhcm5hYmxlfSB8IEFjdGl2YXRlL2RlYWN0aXZhdGUgbGVhcm5pbmcgZnJvbSBhIHNvdXJjZS4KKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqbmFtc29yX2NvdW50ZXIqKl0oZG9jcy9BZG1pbkFwaS5tZCNuYW1zb3JfY291bnRlcikgfCAqKkdFVCoqIC9hcGkyL2pzb24vbmFtc29yQ291bnRlciB8IEdldCB0aGUgb3ZlcmFsbCBBUEkgY291bnRlcgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKipwYXltZW50X2luZm8qKl0oZG9jcy9BZG1pbkFwaS5tZCNwYXltZW50X2luZm8pIHwgKipHRVQqKiAvYXBpMi9qc29uL3BheW1lbnRJbmZvL3t0b2tlbn0gfCBHZXQgdGhlIFN0cmlwZSBwYXltZW50IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBnb29nbGUgYXV0aCBzZXNzaW9uIHRva2VuLgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKipwcm9jdXJlX2tleSoqXShkb2NzL0FkbWluQXBpLm1kI3Byb2N1cmVfa2V5KSB8ICoqR0VUKiogL2FwaTIvanNvbi9wcm9jdXJlS2V5L3t0b2tlbn0gfCBQcm9jdXJlIGFuIEFQSSBLZXkgKHNlbnQgdmlhIEVtYWlsKSwgYmFzZWQgb24gYW4gYXV0aCB0b2tlbi4gS2VlcCB5b3VyIEFQSSBLZXkgc2VjcmV0LgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKipyZWRlcGxveV91aSoqXShkb2NzL0FkbWluQXBpLm1kI3JlZGVwbG95X3VpKSB8ICoqR0VUKiogL2FwaTIvanNvbi9yZWRlcGxveVVJIHwgUmVkZXBsb3kgVUkgZnJvbSBjdXJyZW50IGRldiBicmFuY2guCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKnJlZGVwbG95X3VpMSoqXShkb2NzL0FkbWluQXBpLm1kI3JlZGVwbG95X3VpMSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vcmVkZXBsb3lVSS97bGl2ZX0gfCBSZWRlcGxveSBVSSBmcm9tIGN1cnJlbnQgZGV2IGJyYW5jaC4KKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqcmVtb3ZlX3VzZXJfYWNjb3VudCoqXShkb2NzL0FkbWluQXBpLm1kI3JlbW92ZV91c2VyX2FjY291bnQpIHwgKipHRVQqKiAvYXBpMi9qc29uL3JlbW92ZVVzZXJBY2NvdW50L3t0b2tlbn0gfCBTdWJzY3JpYmUgdG8gYSBnaXZlIEFQSSBwbGFuLCB1c2luZyB0aGUgdXNlcidzIHByZWZlcnJlZCBvciBkZWZhdWx0IGN1cnJlbmN5LgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKipzaHV0ZG93bioqXShkb2NzL0FkbWluQXBpLm1kI3NodXRkb3duKSB8ICoqR0VUKiogL2FwaTIvanNvbi9zaHV0ZG93biB8IFN0b3AgbGVhcm5pbmcgYW5kIHNodXRkb3duIHN5c3RlbS4KKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqc29mdHdhcmVfdmVyc2lvbioqXShkb2NzL0FkbWluQXBpLm1kI3NvZnR3YXJlX3ZlcnNpb24pIHwgKipHRVQqKiAvYXBpMi9qc29uL3NvZnR3YXJlVmVyc2lvbiB8IEdldCB0aGUgY3VycmVudCBzb2Z0d2FyZSB2ZXJzaW9uCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKnNvdXJjZV9zdGF0cyoqXShkb2NzL0FkbWluQXBpLm1kI3NvdXJjZV9zdGF0cykgfCAqKkdFVCoqIC9hcGkyL2pzb24vc291cmNlU3RhdHMve3NvdXJjZX0gfCBQcmludCBiYXNpYyBzb3VyY2Ugc3RhdGlzdGljcy4KKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqc3RhdHMqKl0oZG9jcy9BZG1pbkFwaS5tZCNzdGF0cykgfCAqKkdFVCoqIC9hcGkyL2pzb24vc3RhdHMgfCBQcmludCBiYXNpYyBzeXN0ZW0gc3RhdGlzdGljcy4KKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqc3RyaXBlX2Nvbm5lY3QqKl0oZG9jcy9BZG1pbkFwaS5tZCNzdHJpcGVfY29ubmVjdCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vc3RyaXBlQ29ubmVjdCB8IENvbm5lY3RzIGEgU3RyaXBlIEFjY291bnQuCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKnN1YnNjcmliZV9wbGFuKipdKGRvY3MvQWRtaW5BcGkubWQjc3Vic2NyaWJlX3BsYW4pIHwgKipHRVQqKiAvYXBpMi9qc29uL3N1YnNjcmliZVBsYW4ve3BsYW5OYW1lfS97dG9rZW59IHwgU3Vic2NyaWJlIHRvIGEgZ2l2ZSBBUEkgcGxhbiwgdXNpbmcgdGhlIHVzZXIncyBwcmVmZXJyZWQgb3IgZGVmYXVsdCBjdXJyZW5jeS4KKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqdXBkYXRlX2JpbGxpbmdfaW5mbyoqXShkb2NzL0FkbWluQXBpLm1kI3VwZGF0ZV9iaWxsaW5nX2luZm8pIHwgKipQT1NUKiogL2FwaTIvanNvbi91cGRhdGVCaWxsaW5nSW5mby97dG9rZW59IHwgU2V0cyBvciB1cGRhdGUgdGhlIGJpbGxpbmcgaW5mb3JtYXRpb24gKGNvbXBhbnkgbmFtZSwgYWRkcmVzcywgcGhvbmUsIHZhdCBJRCkKKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqdXBkYXRlX2xpbWl0KipdKGRvY3MvQWRtaW5BcGkubWQjdXBkYXRlX2xpbWl0KSB8ICoqR0VUKiogL2FwaTIvanNvbi91cGRhdGVMaW1pdC97dXNhZ2VMaW1pdH0ve2hhcmRPclNvZnR9L3t0b2tlbn0gfCBNb2RpZmllcyB0aGUgaGFyZC9zb2Z0IGxpbWl0IG9uIHRoZSBBUEkgcGxhbidzIG92ZXJhZ2VzIChkZWZhdWx0IGlzIDAkIHNvZnQgbGltaXQpLgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKip1cGRhdGVfcGF5bWVudF9kZWZhdWx0KipdKGRvY3MvQWRtaW5BcGkubWQjdXBkYXRlX3BheW1lbnRfZGVmYXVsdCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vdXBkYXRlUGF5bWVudERlZmF1bHQve2RlZmF1dFNvdXJjZUlkfS97dG9rZW59IHwgVXBkYXRlIHRoZSBkZWZhdWx0IFN0cmlwZSBjYXJkIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBnb29nbGUgYXV0aCBzZXNzaW9uIHRva2VuLgoqTmFtU29yQ2xpZW50OjpBZG1pbkFwaSogfCBbKip1c2VyX2luZm8qKl0oZG9jcy9BZG1pbkFwaS5tZCN1c2VyX2luZm8pIHwgKipHRVQqKiAvYXBpMi9qc29uL3VzZXJJbmZvL3t0b2tlbn0gfCBHZXQgdGhlIHVzZXIgcHJvZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgZ29vZ2xlIGF1dGggc2Vzc2lvbiB0b2tlbi4KKk5hbVNvckNsaWVudDo6QWRtaW5BcGkqIHwgWyoqdmVyaWZ5X2VtYWlsKipdKGRvY3MvQWRtaW5BcGkubWQjdmVyaWZ5X2VtYWlsKSB8ICoqR0VUKiogL2FwaTIvanNvbi92ZXJpZnlFbWFpbC97ZW1haWxUb2tlbn0gfCBWZXJpZmllcyBhbiBlbWFpbCwgYmFzZWQgb24gdG9rZW4gc2VudCB0byB0aGF0IGVtYWlsCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKnZlcmlmeV9yZW1vdmVfZW1haWwqKl0oZG9jcy9BZG1pbkFwaS5tZCN2ZXJpZnlfcmVtb3ZlX2VtYWlsKSB8ICoqR0VUKiogL2FwaTIvanNvbi92ZXJpZnlSZW1vdmVFbWFpbC97ZW1haWxUb2tlbn0gfCBWZXJpZmllcyBhbiBlbWFpbCwgYmFzZWQgb24gdG9rZW4gc2VudCB0byB0aGF0IGVtYWlsCipOYW1Tb3JDbGllbnQ6OkFkbWluQXBpKiB8IFsqKnZldCoqXShkb2NzL0FkbWluQXBpLm1kI3ZldCkgfCAqKkdFVCoqIC9hcGkyL2pzb24vdmV0dGluZy97c291cmNlfS97dmV0dGVkfSB8IFZldHRpbmcgb2YgYSBzb3VyY2UuCipOYW1Tb3JDbGllbnQ6OkNoaW5lc2VBcGkqIHwgWyoqY2hpbmVzZV9uYW1lX2NhbmRpZGF0ZXMqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2NoaW5lc2VfbmFtZV9jYW5kaWRhdGVzKSB8ICoqR0VUKiogL2FwaTIvanNvbi9jaGluZXNlTmFtZUNhbmRpZGF0ZXMve2NoaW5lc2VTdXJuYW1lTGF0aW59L3tjaGluZXNlR2l2ZW5OYW1lTGF0aW59IHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZS4KKk5hbVNvckNsaWVudDo6Q2hpbmVzZUFwaSogfCBbKipjaGluZXNlX25hbWVfY2FuZGlkYXRlc19iYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjY2hpbmVzZV9uYW1lX2NhbmRpZGF0ZXNfYmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9jaGluZXNlTmFtZUNhbmRpZGF0ZXNCYXRjaCB8IElkZW50aWZ5IENoaW5lc2UgbmFtZSBjYW5kaWRhdGVzLCBiYXNlZCBvbiB0aGUgcm9tYW5pemVkIG5hbWUgKGZpcnN0TmFtZSA9IGNoaW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lPWNoaW5lc2VTdXJuYW1lKS4KKk5hbVNvckNsaWVudDo6Q2hpbmVzZUFwaSogfCBbKipjaGluZXNlX25hbWVfY2FuZGlkYXRlc19nZW5kZXJfYmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2NoaW5lc2VfbmFtZV9jYW5kaWRhdGVzX2dlbmRlcl9iYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlc0dlbmRlckJhdGNoIHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSAoZmlyc3ROYW1lID0gY2hpbmVzZUdpdmVuTmFtZTsgbGFzdE5hbWU9Y2hpbmVzZVN1cm5hbWUpLgoqTmFtU29yQ2xpZW50OjpDaGluZXNlQXBpKiB8IFsqKmNoaW5lc2VfbmFtZV9nZW5kZXJfY2FuZGlkYXRlcyoqXShkb2NzL0NoaW5lc2VBcGkubWQjY2hpbmVzZV9uYW1lX2dlbmRlcl9jYW5kaWRhdGVzKSB8ICoqR0VUKiogL2FwaTIvanNvbi9jaGluZXNlTmFtZUdlbmRlckNhbmRpZGF0ZXMve2NoaW5lc2VTdXJuYW1lTGF0aW59L3tjaGluZXNlR2l2ZW5OYW1lTGF0aW59L3trbm93bkdlbmRlcn0gfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIC0gaGF2aW5nIGEga25vd24gZ2VuZGVyICgnbWFsZScgb3IgJ2ZlbWFsZScpCipOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsQXBpKiB8IFsqKmNvdW50cnkqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNjb3VudHJ5KSB8ICoqR0VUKiogL2FwaTIvanNvbi9jb3VudHJ5L3twZXJzb25hbE5hbWVGdWxsfSB8IFtVU0VTIDEwIFVOSVRTXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2YgcmVzaWRlbmNlIG9mIGEgcGVyc29uYWwgZnVsbCBuYW1lLCBvciBvbmUgc3VybmFtZS4gQXNzdW1lcyBuYW1lcyBhcyB0aGV5IGFyZSBpbiB0aGUgY291bnRyeSBvZiByZXNpZGVuY2UgT1IgdGhlIGNvdW50cnkgb2Ygb3JpZ2luLgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipjb3VudHJ5X2JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjY291bnRyeV9iYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2NvdW50cnlCYXRjaCB8IFtVU0VTIDEwIFVOSVRTXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2YgcmVzaWRlbmNlIG9mIHVwIHRvIDEwMDAgcGVyc29uYWwgZnVsbCBuYW1lcywgb3Igc3VybmFtZXMuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2YgcmVzaWRlbmNlIE9SIHRoZSBjb3VudHJ5IG9mIG9yaWdpbi4KKk5hbVNvckNsaWVudDo6UGVyc29uYWxBcGkqIHwgWyoqZGlhc3BvcmEqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNkaWFzcG9yYSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vZGlhc3BvcmEve2NvdW50cnlJc28yfS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMjAgVU5JVFNdIEluZmVyIHRoZSBsaWtlbHkgZXRobmljaXR5L2RpYXNwb3JhIG9mIGEgcGVyc29uYWwgbmFtZSwgZ2l2ZW4gYSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBJU08yIGNvZGUgKGV4LiBVUywgQ0EsIEFVLCBOWiBldGMuKQoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipkaWFzcG9yYV9iYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2RpYXNwb3JhX2JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZGlhc3BvcmFCYXRjaCB8IFtVU0VTIDIwIFVOSVRTXSBJbmZlciB0aGUgbGlrZWx5IGV0aG5pY2l0eS9kaWFzcG9yYSBvZiB1cCB0byAxMDAwIHBlcnNvbmFsIG5hbWVzLCBnaXZlbiBhIGNvdW50cnkgb2YgcmVzaWRlbmNlIElTTzIgY29kZSAoZXguIFVTLCBDQSwgQVUsIE5aIGV0Yy4pCipOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcioqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcikgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVyL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIG5hbWUuCipOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcl9iYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcl9iYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL2dlbmRlckJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwMCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcl9mdWxsKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyX2Z1bGwpIHwgKipHRVQqKiAvYXBpMi9qc29uL2dlbmRlckZ1bGwve2Z1bGxOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgZnVsbCBuYW1lLCBleC4gSm9obiBILiBTbWl0aAoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipnZW5kZXJfZnVsbF9iYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcl9mdWxsX2JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZ2VuZGVyRnVsbEJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwMCBmdWxsIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgY3VsdHVyYWwgY29udGV4dC4KKk5hbVNvckNsaWVudDo6UGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyX2Z1bGxfZ2VvKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyX2Z1bGxfZ2VvKSB8ICoqR0VUKiogL2FwaTIvanNvbi9nZW5kZXJGdWxsR2VvL3tmdWxsTmFtZX0ve2NvdW50cnlJc28yfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgZnVsbCBuYW1lLCBnaXZlbiBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBjb2RlKS4KKk5hbVNvckNsaWVudDo6UGVyc29uYWxBcGkqIHwgWyoqZ2VuZGVyX2Z1bGxfZ2VvX2JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyX2Z1bGxfZ2VvX2JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZ2VuZGVyRnVsbEdlb0JhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwMCBmdWxsIG5hbWVzLCB3aXRoIGEgZ2l2ZW4gY3VsdHVyYWwgY29udGV4dCAoY291bnRyeSBJU08yIGNvZGUpLgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipnZW5kZXJfZ2VvKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyX2dlbykgfCAqKkdFVCoqIC9hcGkyL2pzb24vZ2VuZGVyR2VvL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve2NvdW50cnlJc28yfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgbmFtZSwgZ2l2ZW4gYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgY29kZSkuCipOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsQXBpKiB8IFsqKmdlbmRlcl9nZW9fYmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNnZW5kZXJfZ2VvX2JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vZ2VuZGVyR2VvQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAwIG5hbWVzLCBlYWNoIGdpdmVuIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IGNvZGUpLgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipvcmlnaW4qKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNvcmlnaW4pIHwgKipHRVQqKiAvYXBpMi9qc29uL29yaWdpbi97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMTAgVU5JVFNdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBvZiBvcmlnaW4gb2YgYSBwZXJzb25hbCBuYW1lLiBBc3N1bWVzIG5hbWVzIGFzIHRoZXkgYXJlIGluIHRoZSBjb3VudHJ5IG9mIG9yaWdpbi4gRm9yIFVTLCBDQSwgQVUsIE5aIGFuZCBvdGhlciBtZWx0aW5nLXBvdHMgOiB1c2UgJ2RpYXNwb3JhJyBpbnN0ZWFkLgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipvcmlnaW5fYmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNvcmlnaW5fYmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9vcmlnaW5CYXRjaCB8IFtVU0VTIDEwIFVOSVRTXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2Ygb3JpZ2luIG9mIHVwIHRvIDEwMDAgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBjdWx0dXJhbCBjb250ZXh0LgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipwYXJzZV9uYW1lKipdKGRvY3MvUGVyc29uYWxBcGkubWQjcGFyc2VfbmFtZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vcGFyc2VOYW1lL3tuYW1lRnVsbH0gfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gCipOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsQXBpKiB8IFsqKnBhcnNlX25hbWVfYmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNwYXJzZV9uYW1lX2JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vcGFyc2VOYW1lQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4KKk5hbVNvckNsaWVudDo6UGVyc29uYWxBcGkqIHwgWyoqcGFyc2VfbmFtZV9nZW8qKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNwYXJzZV9uYW1lX2dlbykgfCAqKkdFVCoqIC9hcGkyL2pzb24vcGFyc2VOYW1lL3tuYW1lRnVsbH0ve2NvdW50cnlJc28yfSB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiBKb2huIFNtaXRoIG9yIFNNSVRILCBKb2huIG9yIFNNSVRIOyBKb2huLiBGb3IgYmV0dGVyIGFjY3VyYWN5LCBwcm92aWRlIGEgZ2VvZ3JhcGhpYyBjb250ZXh0LgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipwYXJzZV9uYW1lX2dlb19iYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3BhcnNlX25hbWVfZ2VvX2JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vcGFyc2VOYW1lR2VvQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gR2l2aW5nIGEgbG9jYWwgY29udGV4dCBpbXByb3ZlcyBwcmVjaXNpb24uIAoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipwYXJzZWRfZ2VuZGVyX2JhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjcGFyc2VkX2dlbmRlcl9iYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3BhcnNlZEdlbmRlckJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwMCBmdWxseSBwYXJzZWQgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBjdWx0dXJhbCBjb250ZXh0LgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKipwYXJzZWRfZ2VuZGVyX2dlb19iYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3BhcnNlZF9nZW5kZXJfZ2VvX2JhdGNoKSB8ICoqUE9TVCoqIC9hcGkyL2pzb24vcGFyc2VkR2VuZGVyR2VvQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAwIGZ1bGx5IHBhcnNlZCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsQXBpKiB8IFsqKnVzX3JhY2VfZXRobmljaXR5KipdKGRvY3MvUGVyc29uYWxBcGkubWQjdXNfcmFjZV9ldGhuaWNpdHkpIHwgKipHRVQqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMTAgVU5JVFNdIEluZmVyIGEgVVMgcmVzaWRlbnQncyBsaWtlbHkgcmFjZS9ldGhuaWNpdHkgYWNjb3JkaW5nIHRvIFVTIENlbnN1cyB0YXhvbm9teSBXX05MICh3aGl0ZSwgbm9uIGxhdGlubyksIEhMIChoaXNwYW5vIGxhdGlubyksICBBIChhc2lhbiwgbm9uIGxhdGlubyksIEJfTkwgKGJsYWNrLCBub24gbGF0aW5vKS4KKk5hbVNvckNsaWVudDo6UGVyc29uYWxBcGkqIHwgWyoqdXNfcmFjZV9ldGhuaWNpdHlfYmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCN1c19yYWNlX2V0aG5pY2l0eV9iYXRjaCkgfCAqKlBPU1QqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eUJhdGNoIHwgW1VTRVMgMTAgVU5JVFNdIEluZmVyIHVwLXRvIDEwMDAgVVMgcmVzaWRlbnQncyBsaWtlbHkgcmFjZS9ldGhuaWNpdHkgYWNjb3JkaW5nIHRvIFVTIENlbnN1cyB0YXhvbm9teS4KKk5hbVNvckNsaWVudDo6UGVyc29uYWxBcGkqIHwgWyoqdXNfcmFjZV9ldGhuaWNpdHlfemlwNSoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3VzX3JhY2VfZXRobmljaXR5X3ppcDUpIHwgKipHRVQqKiAvYXBpMi9qc29uL3VzUmFjZUV0aG5pY2l0eVpJUDUve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97emlwNUNvZGV9IHwgW1VTRVMgMTAgVU5JVFNdIEluZmVyIGEgVVMgcmVzaWRlbnQncyBsaWtlbHkgcmFjZS9ldGhuaWNpdHkgYWNjb3JkaW5nIHRvIFVTIENlbnN1cyB0YXhvbm9teSwgdXNpbmcgKG9wdGlvbmFsKSBaSVA1IGNvZGUgaW5mby4gT3V0cHV0IGlzIFdfTkwgKHdoaXRlLCBub24gbGF0aW5vKSwgSEwgKGhpc3Bhbm8gbGF0aW5vKSwgIEEgKGFzaWFuLCBub24gbGF0aW5vKSwgQl9OTCAoYmxhY2ssIG5vbiBsYXRpbm8pLgoqTmFtU29yQ2xpZW50OjpQZXJzb25hbEFwaSogfCBbKip1c196aXBfcmFjZV9ldGhuaWNpdHlfYmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCN1c196aXBfcmFjZV9ldGhuaWNpdHlfYmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi91c1ppcFJhY2VFdGhuaWNpdHlCYXRjaCB8IFtVU0VTIDEwIFVOSVRTXSBJbmZlciB1cC10byAxMDAwIFVTIHJlc2lkZW50J3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXksIHdpdGggKG9wdGlvbmFsKSBaSVAgY29kZS4KKk5hbVNvckNsaWVudDo6U29jaWFsQXBpKiB8IFsqKnBob25lX2NvZGUqKl0oZG9jcy9Tb2NpYWxBcGkubWQjcGhvbmVfY29kZSkgfCAqKkdFVCoqIC9hcGkyL2pzb24vcGhvbmVDb2RlL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve3Bob25lTnVtYmVyfSB8IFtVU0VTIDExIFVOSVRTXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgZ2l2ZW4gYSBwZXJzb25hbCBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIuCipOYW1Tb3JDbGllbnQ6OlNvY2lhbEFwaSogfCBbKipwaG9uZV9jb2RlX2JhdGNoKipdKGRvY3MvU29jaWFsQXBpLm1kI3Bob25lX2NvZGVfYmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9waG9uZUNvZGVCYXRjaCB8IFtVU0VTIDExIFVOSVRTXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgb2YgdXAgdG8gMTAwMCBwZXJzb25hbCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGxvY2FsIGNvbnRleHQgZ2l2ZW4gYSBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIuCipOYW1Tb3JDbGllbnQ6OlNvY2lhbEFwaSogfCBbKipwaG9uZV9jb2RlX2dlbyoqXShkb2NzL1NvY2lhbEFwaS5tZCNwaG9uZV9jb2RlX2dlbykgfCAqKkdFVCoqIC9hcGkyL2pzb24vcGhvbmVDb2RlR2VvL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve3Bob25lTnVtYmVyfS97Y291bnRyeUlzbzJ9IHwgW1VTRVMgMTEgVU5JVFNdIEluZmVyIHRoZSBsaWtlbHkgcGhvbmUgcHJlZml4LCBnaXZlbiBhIHBlcnNvbmFsIG5hbWUgYW5kIGZvcm1hdHRlZCAvIHVuZm9ybWF0dGVkIHBob25lIG51bWJlciwgd2l0aCBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBvZiByZXNpZGVuY2UpLgoqTmFtU29yQ2xpZW50OjpTb2NpYWxBcGkqIHwgWyoqcGhvbmVfY29kZV9nZW9fYmF0Y2gqKl0oZG9jcy9Tb2NpYWxBcGkubWQjcGhvbmVfY29kZV9nZW9fYmF0Y2gpIHwgKipQT1NUKiogL2FwaTIvanNvbi9waG9uZUNvZGVHZW9CYXRjaCB8IFtVU0VTIDExIFVOSVRTXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgb2YgdXAgdG8gMTAwMCBwZXJzb25hbCBuYW1lcywgd2l0aCBhIGxvY2FsIGNvbnRleHQgKElTTzIgY291bnRyeSBvZiByZXNpZGVuY2UpLgoKCiMjIERvY3VtZW50YXRpb24gZm9yIE1vZGVscwoKIC0gW05hbVNvckNsaWVudDo6QVBJQmlsbGluZ1BlcmlvZFVzYWdlT3V0XShkb2NzL0FQSUJpbGxpbmdQZXJpb2RVc2FnZU91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6QVBJQ291bnRlclYyT3V0XShkb2NzL0FQSUNvdW50ZXJWMk91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6QVBJS2V5T3V0XShkb2NzL0FQSUtleU91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6QVBJUGVyaW9kVXNhZ2VPdXRdKGRvY3MvQVBJUGVyaW9kVXNhZ2VPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkFQSVBsYW5PdXRdKGRvY3MvQVBJUGxhbk91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6QVBJUGxhblN1YnNjcmlwdGlvbk91dF0oZG9jcy9BUElQbGFuU3Vic2NyaXB0aW9uT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpBUElQbGFuc091dF0oZG9jcy9BUElQbGFuc091dC5tZCkKIC0gW05hbVNvckNsaWVudDo6QVBJU2VydmljZU91dF0oZG9jcy9BUElTZXJ2aWNlT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpBUElTZXJ2aWNlc091dF0oZG9jcy9BUElTZXJ2aWNlc091dC5tZCkKIC0gW05hbVNvckNsaWVudDo6QVBJVXNhZ2VBZ2dyZWdhdGVkT3V0XShkb2NzL0FQSVVzYWdlQWdncmVnYXRlZE91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6QmF0Y2hGaXJzdExhc3ROYW1lRGlhc3BvcmFlZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJJbi5tZCkKIC0gW05hbVNvckNsaWVudDo6QmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVyZWRPdXRdKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVyZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkJhdGNoRmlyc3RMYXN0TmFtZUdlb0luXShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUdlb0luLm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaEZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbi5tZCkKIC0gW05hbVNvckNsaWVudDo6QmF0Y2hGaXJzdExhc3ROYW1lSW5dKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkJhdGNoRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaEZpcnN0TGFzdE5hbWVQaG9uZUNvZGVkT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkJhdGNoRmlyc3RMYXN0TmFtZVBob25lTnVtYmVyR2VvSW5dKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJHZW9Jbi5tZCkKIC0gW05hbVNvckNsaWVudDo6QmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckluLm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaEZpcnN0TGFzdE5hbWVVU1JhY2VFdGhuaWNpdHlPdXRdKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lVVNSYWNlRXRobmljaXR5T3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaE5hbWVNYXRjaENhbmRpZGF0ZXNPdXRdKGRvY3MvQmF0Y2hOYW1lTWF0Y2hDYW5kaWRhdGVzT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaFBhcnNlZEZ1bGxOYW1lR2VvSW5dKGRvY3MvQmF0Y2hQYXJzZWRGdWxsTmFtZUdlb0luLm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaFBhcnNlZEZ1bGxOYW1lSW5dKGRvY3MvQmF0Y2hQYXJzZWRGdWxsTmFtZUluLm1kKQogLSBbTmFtU29yQ2xpZW50OjpCYXRjaFBlcnNvbmFsTmFtZUdlbmRlcmVkT3V0XShkb2NzL0JhdGNoUGVyc29uYWxOYW1lR2VuZGVyZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkJhdGNoUGVyc29uYWxOYW1lR2VvSW5dKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW9Jbi5tZCkKIC0gW05hbVNvckNsaWVudDo6QmF0Y2hQZXJzb25hbE5hbWVHZW9PdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW9PdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkJhdGNoUGVyc29uYWxOYW1lSW5dKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVJbi5tZCkKIC0gW05hbVNvckNsaWVudDo6QmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkJpbGxpbmdIaXN0b3J5T3V0XShkb2NzL0JpbGxpbmdIaXN0b3J5T3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpCaWxsaW5nSW5mb0luT3V0XShkb2NzL0JpbGxpbmdJbmZvSW5PdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkNsYXNzaWZpZXJNZXRyaWNzT3V0XShkb2NzL0NsYXNzaWZpZXJNZXRyaWNzT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpDdXJyZW5jaWVzT3V0XShkb2NzL0N1cnJlbmNpZXNPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkRlcGxveVVJT3V0XShkb2NzL0RlcGxveVVJT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpFeHBlY3RlZENsYXNzTWV0cmljc091dF0oZG9jcy9FeHBlY3RlZENsYXNzTWV0cmljc091dC5tZCkKIC0gW05hbVNvckNsaWVudDo6Rmlyc3RMYXN0TmFtZURpYXNwb3JhZWRPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZURpYXNwb3JhZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVHZW5kZXJJbl0oZG9jcy9GaXJzdExhc3ROYW1lR2VuZGVySW4ubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dF0oZG9jcy9GaXJzdExhc3ROYW1lR2VuZGVyZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVHZW9Jbl0oZG9jcy9GaXJzdExhc3ROYW1lR2VvSW4ubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbl0oZG9jcy9GaXJzdExhc3ROYW1lR2VvWmlwcGVkSW4ubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVJbl0oZG9jcy9GaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVPcmlnaW5lZE91dF0oZG9jcy9GaXJzdExhc3ROYW1lT3JpZ2luZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZU91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6Rmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OkZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luXShkb2NzL0ZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luLm1kKQogLSBbTmFtU29yQ2xpZW50OjpGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbl0oZG9jcy9GaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbi5tZCkKIC0gW05hbVNvckNsaWVudDo6Rmlyc3RMYXN0TmFtZVVTUmFjZUV0aG5pY2l0eU91dF0oZG9jcy9GaXJzdExhc3ROYW1lVVNSYWNlRXRobmljaXR5T3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpJbmxpbmVPYmplY3RdKGRvY3MvSW5saW5lT2JqZWN0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpJbnZvaWNlSXRlbU91dF0oZG9jcy9JbnZvaWNlSXRlbU91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6SW52b2ljZU91dF0oZG9jcy9JbnZvaWNlT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpOYW1Tb3JDb3VudGVyT3V0XShkb2NzL05hbVNvckNvdW50ZXJPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6Ok5hbWVNYXRjaENhbmRpZGF0ZU91dF0oZG9jcy9OYW1lTWF0Y2hDYW5kaWRhdGVPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6Ok5hbWVNYXRjaENhbmRpZGF0ZXNPdXRdKGRvY3MvTmFtZU1hdGNoQ2FuZGlkYXRlc091dC5tZCkKIC0gW05hbVNvckNsaWVudDo6UGFyc2VkRnVsbE5hbWVHZW9Jbl0oZG9jcy9QYXJzZWRGdWxsTmFtZUdlb0luLm1kKQogLSBbTmFtU29yQ2xpZW50OjpQYXJzZWRGdWxsTmFtZUluXShkb2NzL1BhcnNlZEZ1bGxOYW1lSW4ubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsTmFtZUdlbmRlcmVkT3V0XShkb2NzL1BlcnNvbmFsTmFtZUdlbmRlcmVkT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpQZXJzb25hbE5hbWVHZW9Jbl0oZG9jcy9QZXJzb25hbE5hbWVHZW9Jbi5tZCkKIC0gW05hbVNvckNsaWVudDo6UGVyc29uYWxOYW1lR2VvT3V0XShkb2NzL1BlcnNvbmFsTmFtZUdlb091dC5tZCkKIC0gW05hbVNvckNsaWVudDo6UGVyc29uYWxOYW1lSW5dKGRvY3MvUGVyc29uYWxOYW1lSW4ubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OlBlcnNvbmFsTmFtZVBhcnNlZE91dF0oZG9jcy9QZXJzb25hbE5hbWVQYXJzZWRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OlJvbWFuaXplZE5hbWVPdXRdKGRvY3MvUm9tYW5pemVkTmFtZU91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6U29mdHdhcmVWZXJzaW9uT3V0XShkb2NzL1NvZnR3YXJlVmVyc2lvbk91dC5tZCkKIC0gW05hbVNvckNsaWVudDo6U291cmNlRGV0YWlsZWRNZXRyaWNzT3V0XShkb2NzL1NvdXJjZURldGFpbGVkTWV0cmljc091dC5tZCkKIC0gW05hbVNvckNsaWVudDo6U291cmNlTWV0cmljc091dF0oZG9jcy9Tb3VyY2VNZXRyaWNzT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpTdHJpcGVDYXJkT3V0XShkb2NzL1N0cmlwZUNhcmRPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OlN0cmlwZUN1c3RvbWVyT3V0XShkb2NzL1N0cmlwZUN1c3RvbWVyT3V0Lm1kKQogLSBbTmFtU29yQ2xpZW50OjpTeXN0ZW1NZXRyaWNzT3V0XShkb2NzL1N5c3RlbU1ldHJpY3NPdXQubWQpCiAtIFtOYW1Tb3JDbGllbnQ6OlVzZXJJbmZvT3V0XShkb2NzL1VzZXJJbmZvT3V0Lm1kKQoKCiMjIERvY3VtZW50YXRpb24gZm9yIEF1dGhvcml6YXRpb24KCgojIyMgYXBpX2tleQoKLSAqKlR5cGUqKjogQVBJIGtleQotICoqQVBJIGtleSBwYXJhbWV0ZXIgbmFtZSoqOiBYLUFQSS1LRVkKLSAqKkxvY2F0aW9uKio6IEhUVFAgaGVhZGVyCgo= readmeEtag: '"e0835eaedddee7813c66e59bb88b4feef948553a"' readmeLastModified: Thu, 14 Mar 2019 09:45:25 GMT repositoryId: 172474353 description: >- NamSor API v2 Ruby SDK - classify personal names accurately by gender, country of origin, or ethnicity. created: '2019-02-25T09:24:00Z' updated: '2019-04-17T09:12:39Z' language: Ruby archived: false stars: 1 watchers: 3 forks: 2 owner: namsor logo: https://avatars.githubusercontent.com/u/6951565?v=4 license: AGPL-3.0 repoEtag: '"e1fa8e25a01d0e95eda932f8f21a0a38e5beb17d4e6e1c96fc612de953e05a2d"' repoLastModified: Wed, 17 Apr 2019 09:12:39 GMT foundInMaster: true category: - Documentation - Description Validators id: 08a9cac08c5c62457c1f6a2d3063164d - source: openapi3 tags repository: https://github.com/gabrielmaialva33/doc-sympla-integration v3: true id: b09f616f911b87055b98bc874c7caa72 repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPgogIDxicj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dhYnJpZWxtYWlhbHZhMzMvZG9jLXN5bXBsYS1pbnRlZ3JhdGlvbi9tYXN0ZXIvLmdpdGh1Yi9hc3NldHMvZG9jcy5wbmciIGFsdD0iRG9jOiBTeW1wbGEgIiB3aWR0aD0iMjAwIj4KICA8YnI+CiAgQSBkb2N1bWVudGF0aW9uIGZvciA8YSBocmVmPSJodHRwczovL3d3dy5zeW1wbGEuY29tLmJyLyI+U3ltcGxhIEFQSTwvYT4KICA8YnI+CjwvaDE+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFuZ3VhZ2VzL3RvcC9nYWJyaWVsbWFpYWx2YTMzL2RvYy1zeW1wbGEtaW50ZWdyYXRpb24/c3R5bGU9ZmxhdCZsb2dvPWFwcHZleW9yIiBhbHQ9IkdpdEh1YiB0b3AgbGFuZ3VhZ2UiID4KICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFuZ3VhZ2VzL2NvdW50L2dhYnJpZWxtYWlhbHZhMzMvZG9jLXN5bXBsYS1pbnRlZ3JhdGlvbj9zdHlsZT1mbGF0JmxvZ289YXBwdmV5b3IiIGFsdD0iR2l0SHViIGxhbmd1YWdlIGNvdW50IiA+CiAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlcG8tc2l6ZS9nYWJyaWVsbWFpYWx2YTMzL2RvYy1zeW1wbGEtaW50ZWdyYXRpb24/c3R5bGU9ZmxhdCZsb2dvPWFwcHZleW9yIiBhbHQ9IlJlcG9zaXRvcnkgc2l6ZSIgPgogIDxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2dhYnJpZWxtYWlhbHZhMzMvZG9jLXN5bXBsYS1pbnRlZ3JhdGlvbj9jb2xvcj0wMGI4ZDM/c3R5bGU9ZmxhdCZsb2dvPWFwcHZleW9yIiBhbHQ9IkxpY2Vuc2UiIC8+IAogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9nYWJyaWVsbWFpYWx2YTMzL2RvYy1zeW1wbGEtaW50ZWdyYXRpb24vY29tbWl0cy9tYXN0ZXIiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L2dhYnJpZWxtYWlhbHZhMzMvZG9jLXN5bXBsYS1pbnRlZ3JhdGlvbj9zdHlsZT1mbGF0JmxvZ289YXBwdmV5b3IiIGFsdD0iR2l0SHViIGxhc3QgY29tbWl0IiA+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYWRlJTIwYnktTWFpYS0xNWMzZDY/c3R5bGU9ZmxhdCZsb2dvPWFwcHZleW9yIiBhbHQ9Ik1haWEiID4gIAogIDwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iI2Jvb2ttYXJrLWFib3V0Ij5BYm91dDwvYT4mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgPGEgaHJlZj0iI2NvbXB1dGVyLXRlY2hub2xvZ2llcyI+VGVjaG5vbG9naWVzPC9hPiZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSIjcGFja2FnZS1pbnN0YWxsYXRpb24iPkluc3RhbGxhdGlvbjwvYT4mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgPGEgaHJlZj0iI3dyZW5jaC1jb25maWd1cmF0aW9uIj5Db25maWd1cmF0aW9uPC9hPiZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSIjbWVtby1kb2N1bWVudGF0aW9uIj5Eb2N1bWVudGF0aW9uPC9hPiZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSIjbWVtby1saWNlbnNlIj5MaWNlbnNlPC9hPgo8L3A+Cgo8YnI+CgojIyA6Ym9va21hcms6IEFib3V0CgoqKkRvYzogU3ltcGxhIEFQSSoqIGlzIGEgZG9jdW1lbnRhdGlvbiBmb3IgW1N5bXBsYSBBUEldKGh0dHBzOi8vZGV2ZWxvcGVycy5zeW1wbGEuY29tLmJyLykKCjxicj4KCiMjIDpjb21wdXRlcjogVGVjaG5vbG9naWVzCgotICoqW09wZW5BUEldKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykqKgotICoqW0luc29tbmlhXShodHRwczovL2luc29tbmlhLnJlc3QvKSoqCi0gKipbU3ltcGxhIEFQSV0oaHR0cHM6Ly9kZXZlbG9wZXJzLnN5bXBsYS5jb20uYnIvKSoqCgojIyA6cGFja2FnZTogSW5zdGFsbGF0aW9uCgpgYGBiYXNoCiMgY2xvbmUgdGhlIHJlcG9zaXRvcnkKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9nYWJyaWVsbWFpYWx2YTMzL2RvYy1zeW1wbGEtaW50ZWdyYXRpb24uZ2l0CiMgZW50ZXIgdGhlIGRpcmVjdG9yeQpjZCBkb2Mtc3ltcGxhLWludGVncmF0aW9uCiMgdXNlIGluc28gdG8gZ2VuZXJhdGUgdGhlIGRvY3VtZW50YXRpb24KaW5zbyBnZW5lcmF0ZSAtLXNwZWMgZG9jLXN5bXBsYS1pbnRlZ3JhdGlvbi55YW1sIC0tdHlwZSBvcGVuYXBpIC0tb3V0cHV0IGRvYy1zeW1wbGEtaW50ZWdyYXRpb24uanNvbgpgYGAKCiMjIyA6d3JlbmNoOiAqKkNvbmZpZ3VyYXRpb24qKgoKb3BlbiB0aGUgYGRvYy1zeW1wbGEueWFtbGAgZmlsZSBpbiBpbnNvbW5pYSBvciBwb3N0bWFuIGFuZCBjaGFuZ2UgdGhlIGhvc3QgYW5kIGJhc2VQYXRoCgpgYGB5YW1sCmhvc3Q6ICJhcGkuc3ltcGxhLmNvbS5iciIKYmFzZVBhdGg6ICIvcHVibGljL3YzIgpgYGAKCiMjIyA6bWVtbzogKipEb2N1bWVudGF0aW9uKioKCmBgYG1kCiMgVXNlIGluc29tbmlhIG9yIHBvc3RtYW4gdG8gdGVzdCB0aGUgcm91dGVzCgpmaWxlIGBkb2Mtc3ltcGxhLnlhbWxgIGluIHJvb3QgZGlyZWN0b3J5CmBgYAoKIyMjIDp3cml0aW5nX2hhbmQ6ICoqQXV0aG9yKioKCnwgWyFbTWFpYV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI2NzMyMDY3P3NpemU9MTAwKV0oaHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWxtYWlhbHZhMzMpIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IFtNYWlhXShodHRwczovL2dpdGh1Yi5jb20vZ2FicmllbG1haWFsdmEzMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyBMaWNlbnNlCgpbTUlUIExpY2Vuc2VdKC4vTElDRU5TRSkK readmeEtag: '"9abcf7250c81d899050a9ec02e012042b4d2ceba"' readmeLastModified: Sun, 27 Aug 2023 19:06:39 GMT repositoryId: 680255346 description: Documentação de integração com a API da Sympla created: '2023-08-18T18:19:15Z' updated: '2023-08-27T19:07:25Z' language: null archived: false stars: 1 watchers: 1 forks: 0 owner: gabrielmaialva33 logo: https://avatars.githubusercontent.com/u/26732067?v=4 repoEtag: '"871bfd0e71c5d88f2f56746087f15342d0e6bf23122740f1428743e3d244d173"' repoLastModified: Sun, 27 Aug 2023 19:07:25 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/edenreich/definition-driven-development v3: true id: 8f5af38daa82c5a35a07e59347544518 repositoryMetadata: base64Readme: >- IyBEZWZpbml0aW9uLWRyaXZlbiBEZXZlbG9wbWVudAoKLSBbRGVmaW5pdGlvbi1kcml2ZW4gRGV2ZWxvcG1lbnRdKCNkZWZpbml0aW9uLWRyaXZlbi1kZXZlbG9wbWVudCkKICAtIFtPbmUtT2ZmIC8gSW5pdGlhbGl6ZSBhIFByb2plY3RdKCNvbmUtb2ZmLS1pbml0aWFsaXplLWEtcHJvamVjdCkKICAtIFtEZXZlbG9wbWVudCBQcm9jZXNzXSgjZGV2ZWxvcG1lbnQtcHJvY2VzcykKICAtIFtDdXN0b21pemF0aW9uXSgjY3VzdG9taXphdGlvbikKICAtIFtWYWxpZGF0aW9uXSgjdmFsaWRhdGlvbikKICAtIFtUb2Rvc10oI3RvZG9zKQoKSXQncyBub3QgYSBuZXcgY29uY2VwdCwgeWV0IGl0IGhhcyBnYWluZWQgbW9yZSBwb3B1bGFyaXR5IG92ZXIgdGhlIGxhc3QgZmV3IHllYXJzIGR1ZSB0byBhbiBpbXByb3ZlbWVudHMgaW4gZXhpc3RpbmcgdG9vbGluZy4KCkRlZmluaXRpb24tZHJpdmVuIGRldmVsb3BtZW50IGlzIHRoZSBhcHByb2FjaCB3aGVyZSBhIGNsZWFyIGFuZCB3ZWxsLWRlZmluZWQgdW5kZXJzdGFuZGluZyBvZiBwcm9qZWN0IHJlcXVpcmVtZW50cyBhbmQgZ29hbHMgZ3VpZGVzIHRoZSBlbnRpcmUgZGV2ZWxvcG1lbnQgcHJvY2Vzcy4gVGhpcyBhcHByb2FjaCBlbXBoYXNpemVzIHRoZSBpbXBvcnRhbmNlIG9mIGNyZWF0aW5nIGEgZGV0YWlsZWQgc3BlY2lmaWNhdGlvbiBvciBkZWZpbml0aW9uIG9mIHRoZSBwcm9qZWN0IGJlZm9yZSBpbml0aWF0aW5nIGFueSBjb2Rpbmcgb3IgaW1wbGVtZW50YXRpb24uCgpIYXZpbmcgYSBjb21wcmVoZW5zaXZlIGRlZmluaXRpb24gdXBmcm9udCBlbmFibGVzIGRldmVsb3BlcnMgdG8gYmV0dGVyIHVuZGVyc3RhbmQgd2hhdCBuZWVkcyB0byBiZSBhY2hpZXZlZCwgbGVhZGluZyB0byBtb3JlIGVmZmljaWVudCBhbmQgZm9jdXNlZCBkZXZlbG9wbWVudCBlZmZvcnRzLiBUaGlzIGFwcHJvYWNoIGhlbHBzIG1pbmltaXplIG1pc3VuZGVyc3RhbmRpbmdzLCByZWR1Y2VzIHRoZSBsaWtlbGlob29kIG9mIHNjb3BlIGNoYW5nZXMsIGFuZCBwcm92aWRlcyBhIHJvYWRtYXAgZm9yIHRoZSBkZXZlbG9wbWVudCB0ZWFtIHRvIGZvbGxvdy4gSXQgaXMgb2Z0ZW4gYXNzb2NpYXRlZCB3aXRoIG1ldGhvZG9sb2dpZXMgbGlrZSBXYXRlcmZhbGwsIHdoZXJlIHRoZSBkZXZlbG9wbWVudCBwcm9jZXNzIGlzIHNlcXVlbnRpYWwgYW5kIHJlbGllcyBvbiBhIHRob3JvdWdoIHVwZnJvbnQgcGxhbm5pbmcgcGhhc2UuCgpQYXJhbGxlbCBEZXZlbG9wbWVudCBpcyBvbmUgb2YgdGhlIGtleSBiZW5lZml0cyBvZiB0aGlzIGFwcHJvYWNoLiBXaXRoIGEgd2VsbC1lc3RhYmxpc2hlZCBpbnRlcmZhY2UsIGNsaWVudCBhbmQgc2VydmVyIGRldmVsb3BtZW50IGNhbiBwcm9jZWVkIGNvbmN1cnJlbnRseS4gRGlmZmVyZW50IHRlYW1zIG9yIGRldmVsb3BlcnMgY2FuIHdvcmsgb24gdGhlIGNsaWVudCBhbmQgc2VydmVyIGNvbXBvbmVudHMgc2ltdWx0YW5lb3VzbHksIG1ha2luZyB0aGUgZGV2ZWxvcG1lbnQgcHJvY2VzcyBtb3JlIGVmZmljaWVudCBhbmQgcmVkdWNpbmcgdW5jbGFyaXR5LgoKT25jZSB0aGUgaW50ZXJmYWNlIGlzIHdlbGwtZGVmaW5lZCwgaXQncyBhbHNvIHBvc3NpYmxlIHRvIGFkanVzdCBzcGVjaWZpYyByZXF1aXJlbWVudHMgYW5kIGZvY3VzIG9uIGdlbmVyYXRpbmcgb25seSB0aGUgdGhpbmdzIHRoYXQgYXJlIGZyZXF1ZW50bHkgY2hhbmdpbmcgZnJvbSB0aGF0IGludGVyZmFjZS4KClJlbHlpbmcgb24gT0FTIGFzIHRoZSBzb3VyY2Ugb2YgdHJ1dGggZW5hYmxlcyB1cyB0byBsZXZlcmFnZSB0aGUgbGF0ZXN0IE9BUyB2ZXJzaW9uLCBzcGVjaWZpY2FsbHkgdmVyc2lvbiAzLjAuMCBhbmQgYmV5b25kLiBBcyBvZiB0aGUgdGltZSBvZiB3cml0aW5nLCB3aGVuIGVtcGxveWluZyB0b29scyBzdWNoIGFzIFN3YWdnbywgd2hpY2ggZ2VuZXJhdGVzIE9BUyBmcm9tIEdvIGNvZGUgdXNpbmcgYW5ub3RhdGlvbnMsIHRoZXJlIGlzIGEgY29uc3RyYWludCBsaW1pdGluZyBjb21wYXRpYmlsaXR5IHRvIE9BUyB2ZXJzaW9uIDIuMC4wLiBGdXJ0aGVybW9yZSwgYmVpbmcgaW5kZXBlbmRlbnQgb2YgdGhlIGFubm90YXRpb25zIHRpZWQgdG8gYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlIGVuaGFuY2VzIG91ciBmbGV4aWJpbGl0eSwgbWFraW5nIHVzIGxhbmd1YWdlLWFnbm9zdGljLgoKVGhpcyBtZXRob2QgaXMgZnJlcXVlbnRseSByZWZlcnJlZCB0byBhcyB0aGUgIkRlc2lnbi1GaXJzdCIgYXBwcm9hY2guIEJ5IGZvbGxvd2luZyB0aGlzIHN0cmF0ZWd5LCBzZWFtbGVzcyBjb2xsYWJvcmF0aW9uIGFtb25nIHZhcmlvdXMgc3Rha2Vob2xkZXJzIGJlY29tZXMgZWFzaWx5IGFjaGlldmFibGUuCgojIyBPbmUtT2ZmIC8gSW5pdGlhbGl6ZSBhIFByb2plY3QKCkFsbCB5b3UgbmVlZCBpcyBhbiBPcGVuQVBJIFNwZWNpZmljYXRpb24gKE9BUykuIE9uY2UgeW91IGhhdmUgaXQgd2VsbC1kZWZpbmVkLCB5b3UgY2FuIGdlbmVyYXRlIHRoZSBmaXJzdCBgY2xpZW50YCBhbmQgYHNlcnZlcmAgcHJvamVjdHMgaW4gYW55IGRlc2lyZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdXNpbmcgYG9wZW5hcGktZ2VuZXJhdG9yLWNsaWAuIElmIHlvdSdyZSBmYW1pbGlhciB3aXRoIGBEb2NrZXJgLCB5b3UgY2FuIHZpZXcgdGhlIGNvbW1hbmRzIEkgcGxhY2VkIGluIHRoZSBNYWtlZmlsZTsgdGhvc2UgY29udGFpbmVyIGltYWdlcyBhbHJlYWR5IHByb3ZpZGUgdGhlIGBvcGVuYXBpLWdlbmVyYXRvci1jbGlgIGFuZCB0aGUgdG9vbGluZyBuZWVkZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGNvZGUuCgpBZnRlciB0aGUgYm9pbGVycGxhdGUgY29kZSBoYXMgYmVlbiBnZW5lcmF0ZWQsIGl0J3MgbmVjZXNzYXJ5IHRvIHJldmlldyBhbmQgZGV0ZXJtaW5lIHdoYXQgaXMgcmVhbGx5IG5lZWRlZCBhbmQgd2hhdCBpcyBmcmVxdWVudGx5IGNoYW5naW5nLiBUaGUgdGhpbmdzIHRoYXQgYXJlIGxpa2VseSBuZXZlciB0byBjaGFuZ2Ugc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQsIHNvIGFkZCB0aGVtIHRvIHRoZSBgLm9wZW5hcGktZ2VuZXJhdG9yLWlnbm9yZWAgZmlsZS4KCk1ha2UgdGhlIGFkanVzdG1lbnRzIHRvIHRob3NlIGZpbGVzIHlvdSBkb24ndCB3YW50IHRvIGdlbmVyYXRlLgoKIyMgRGV2ZWxvcG1lbnQgUHJvY2VzcwoKTGV0J3Mgc2F5IGEgbmV3IGJ1c2luZXNzIHJlcXVpcmVtZW50cyBhcnJpdmUgYXQgdGhlIHRhYmxlLiBUaGV5IG5lZWQgYSBuZXcgZW5kcG9pbnQuCgoxLiBDaGVjayBvdXQgYSBuZXcgYnJhbmNoIGZyb20gdGhlIGBtYWluYCB1cHN0cmVhbS4KMi4gRGVzaWduIHRoZSBlbmRwb2ludCBieSBhZGp1c3RpbmcgdGhlIHNvdXJjZSBvZiB0cnV0aCwgdGhlIE9BUyAoYHBldHNfYXBpLnlhbWxgKS4KMy4gUnVuIGBtYWtlIGdlbmVyYXRlYC4gV2hpY2ggd2lsbCBydW4gdGhlIGBvcGVuYXBpLWdlbmVyYXRvci1jbGlgIGZvciBnZW5lcmF0aW5nIHRoZSBgY2xpZW50YCBhbmQgYHNlcnZlcmAKNC4gRmlsbCBpbiB0aGUgdG9kb3MgYW5kIHdyaXRlIHRoZSBidXNpbmVzcyBsb2dpYyAvIGltcGxlbWVudGF0aW9uLgo1LiBBZGQgdGhlIGZpbGUgd2hlcmUgeW91IHdyb3RlIHRoZSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgZ2VuZXJhdG9yIGlnbm9yZSBmaWxlLCBzbyBpdCB3aWxsIGtub3cgbm90IHRvIHJlZ2VuZXJhdGUgaXQgZnJvbSB0aGUgdGVtcGxhdGUuCjYuIENyZWF0ZSBhIFB1bGwgUmVxdWVzdCAvIE1lcmdlIFJlcXVlc3QuCjcuIExldCB5b3VyIGNvLXdvcmtlciByZXZpZXcuCjguIE9uY2UgYXBwcm92ZWQsIG1lcmdlIGl0IGluLgoKTGV0J3Mgc2F5IHRob3NlIHdobyB3b3JrIG9uIHRoZSBgY2xpZW50YCBhcmUgb24gYSBkaWZmZXJlbnQgdGVhbSB0aGFuIHRob3NlIHdobyB3b3JrIG9uIHRoZSBgc2VydmVyYC4gSW4gdGhhdCBzY2VuYXJpbywgeW91IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgY29kZSBmb3IgdGhlIGBjbGllbnRgIGV2ZW4gb24gYSBjb21wbGV0ZWx5IHNlcGFyYXRlIHJlcG9zaXRvcnksIGJ1dCB0aGUgaW50ZXJmYWNlICh0aGUgYE9wZW5BUEkgU3BlY2lmaWNhdGlvbmApIGhhcyB0byBiZSB3aXRoIHRoZSBzYW1lIHZlcnNpb24uIFRoaXMgd2F5LCB0ZWFtcyBjYW4gZmlyc3QgZGVzaWduIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCB0aGVuIHdvcmsgaW4gcGFyYWxsZWwuCgojIyBDdXN0b21pemF0aW9uCgpFdmVyeSBwcm9qZWN0IGNvbWVzIHdpdGggdW5pcXVlIHJlcXVpcmVtZW50cywgbWFraW5nIHRoaXMgYXNwZWN0IGxpa2VseSB0aGUgbW9zdCBjaGFsbGVuZ2luZyBwYXJ0IG9mIHRoZSBlcXVhdGlvbi4gSG93ZXZlciwgb25jZSB5b3Ugc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaCB0aGUgc2V0dXAsIHRoZSBzdWJzZXF1ZW50IHdvcmtmbG93IGFuZCBtaW5pbWFsIGFkanVzdG1lbnRzIHJlcXVpcmVkIGZvciBpbXBsZW1lbnRhdGlvbiBjYW4gc2lnbmlmaWNhbnRseSBib29zdCB0aGUgZGV2ZWxvcG1lbnQgdmVsb2NpdHkuCgpVdGlsaXppbmcgcHJlLWV4aXN0aW5nIHRlbXBsYXRlcyBlbXBvd2VycyB1cyB0byBzZWxlY3QgdGhlIGdlbmVyYXRlZCBBUEkgY29kZSBzZWFtbGVzc2x5LiBUaGVyZSBhcmUgaW5zdGFuY2VzLCB0aG91Z2gsIHdoZXJlIGJlc3Bva2UgdGVtcGxhdGVzIGJlY29tZSBuZWNlc3NhcnksIGFuZCBmb3J0dW5hdGVseSwgaXQncyBlbnRpcmVseSBmZWFzaWJsZSB0byBvdmVycmlkZSB0aGUgZXhpc3Rpbmcgb25lcy4KCkJ5IG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgdGVtcGxhdGVzLCB3ZSBnYWluIHRoZSBhYmlsaXR5IHRvIGRlbHZlIGludG8gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscywgdGhlcmVieSBlbmhhbmNpbmcgdGhlIHNwZWVkIG9mIGRldmVsb3BtZW50LiBUaGlzIGZsZXhpYmlsaXR5IGVuc3VyZXMgYSB0YWlsb3JlZCBhcHByb2FjaCB0aGF0IGFsaWducyBwcmVjaXNlbHkgd2l0aCB0aGUgcHJvamVjdCdzIGRpc3RpbmN0aXZlIG5lZWRzLgoKTGV0J3MgbW9kaWZ5IGFuIGV4aXN0aW5nIHRlbXBsYXRlOgoKMS4gRmlyc3QgbGV0J3MgZmV0Y2ggdGhlIHRlbXBsYXRlOgpgYGBiYXNoCm1ha2Ugb3BlbmFwaSBBUkdTPSdhdXRob3IgdGVtcGxhdGUgLWcgZ28tc2VydmVyIC1vIHRlbXBsYXRlcy9nby1zZXJ2ZXInCmBgYAoyLiBNb2RpZnkgaXQuCjMuIE1vZGlmeSB0aGUgZ2VuZXJhdGUgY29tbWFuZCBieSBhZGRpbmcgYC10IHRlbXBsYXRlcy9nby1zZXJ2ZXJgLgoKQSB2YXJpZXR5IG9mIGFkZGl0aW9uYWwgdGVtcGxhdGVzIGNyYWZ0ZWQgYnkgdGhlIG9wZW4tc291cmNlIGNvbW11bml0eSBhcmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb246CgotIGFkYQotIGFkYS1zZXJ2ZXIKLSBhbmRyb2lkCi0gYXBhY2hlMgotIGFwZXgKLSBhc2NpaWRvYwotIGFzcG5ldGNvcmUKLSBhdnJvLXNjaGVtYQotIGJhc2gKLSBjcnlzdGFsCi0gYwotIGNsb2p1cmUKLSBjd2lraQotIGNwcC1xdC1jbGllbnQKLSBjcHAtcXQtcWh0dHBlbmdpbmUtc2VydmVyCi0gY3BwLXBpc3RhY2hlLXNlcnZlcgotIGNwcC1yZXN0YmVkLXNlcnZlcgotIGNwcC1yZXN0YmVkLXNlcnZlci1kZXByZWNhdGVkCi0gY3BwLXJlc3RzZGsKLSBjcHAtdGlueQotIGNwcC10aXplbgotIGNwcC11ZTQKLSBjc2hhcnAKLSBjc2hhcnAtZnVuY3Rpb25zCi0gZGFydAotIGRhcnQtZGlvCi0gZWlmZmVsCi0gZWxpeGlyCi0gZWxtCi0gZXJsYW5nLWNsaWVudAotIGVybGFuZy1wcm9wZXIKLSBlcmxhbmctc2VydmVyCi0gZnNoYXJwLWZ1bmN0aW9ucwotIGZzaGFycC1naXJhZmZlLXNlcnZlcgotIGdvCi0gZ28tZWNoby1zZXJ2ZXIKLSBnby1zZXJ2ZXIKLSBnby1naW4tc2VydmVyCi0gZ3JhcGhxbC1zY2hlbWEKLSBncmFwaHFsLW5vZGVqcy1leHByZXNzLXNlcnZlcgotIGdyb292eQotIGtvdGxpbgotIGtvdGxpbi1zZXJ2ZXIKLSBrb3RsaW4tc3ByaW5nCi0ga290bGluLXZlcnR4Ci0ga3Rvcm0tc2NoZW1hCi0gaGFza2VsbC1odHRwLWNsaWVudAotIGhhc2tlbGwKLSBoYXNrZWxsLXllc29kCi0gamF2YQotIGpheHJzLWN4Zi1jbGllbnQKLSBqYXZhLWhlbGlkb24tY2xpZW50Ci0gamF2YS1oZWxpZG9uLXNlcnZlcgotIGphdmEtaW5mbGVjdG9yCi0gamF2YS1taWNyb25hdXQtY2xpZW50Ci0gamF2YS1taWNyb25hdXQtc2VydmVyCi0gamF2YS1tc2Y0agotIGphdmEtcGttc3QKLSBqYXZhLXBsYXktZnJhbWV3b3JrCi0gamF2YS11bmRlcnRvdy1zZXJ2ZXIKLSBqYXZhLXZlcnR4Ci0gamF2YS12ZXJ0eC13ZWIKLSBqYXZhLWNhbWVsCi0gamF4cnMtY3hmCi0gamF4cnMtY3hmLWV4dGVuZGVkCi0gamF4cnMtY3hmLWNkaQotIGpheHJzLWplcnNleQotIGpheHJzLXJlc3RlYXN5Ci0gamF4cnMtcmVzdGVhc3ktZWFwCi0gamF4cnMtc3BlYwotIGphdmFzY3JpcHQKLSBqYXZhc2NyaXB0LWFwb2xsby1kZXByZWNhdGVkCi0gamF2YXNjcmlwdC1mbG93dHlwZWQKLSBqYXZhc2NyaXB0LWNsb3N1cmUtYW5ndWxhcgotIGpldGJyYWlucy1odHRwLWNsaWVudAotIGptZXRlcgotIGp1bGlhLWNsaWVudAotIGp1bGlhLXNlcnZlcgotIGs2Ci0gbHVhCi0gbWFya2Rvd24KLSBteXNxbC1zY2hlbWEKLSBuNGpzCi0gbmltCi0gbm9kZWpzLWV4cHJlc3Mtc2VydmVyCi0gb2JqYwotIG9jYW1sCi0gb3BlbmFwaQotIG9wZW5hcGkteWFtbAotIHBsYW50dW1sCi0gcGVybAotIHBocAotIHBocC1uZXh0Z2VuCi0gcGhwLWxhcmF2ZWwKLSBwaHAtbHVtZW4KLSBwaHAtc2xpbTQKLSBwaHAtc3ltZm9ueQotIHBocC1tZXp6aW8tcGgKLSBwaHAtZHQKLSBwb3N0bWFuLWNvbGxlY3Rpb24KLSBwb3dlcnNoZWxsCi0gcHJvdG9idWYtc2NoZW1hCi0gcHl0aG9uCi0gcHl0aG9uLXB5ZGFudGljLXYxCi0gcHl0aG9uLWZhc3RhcGkKLSBweXRob24tZmxhc2sKLSBweXRob24tYWlvaHR0cAotIHB5dGhvbi1ibHVlcGxhbmV0Ci0gcgotIHJ1YnkKLSBydWJ5LW9uLXJhaWxzCi0gcnVieS1zaW5hdHJhCi0gcnVzdAotIHJ1c3Qtc2VydmVyCi0gc2NhbGF0cmEKLSBzY2FsYS1ha2thCi0gc2NhbGEtYWtrYS1odHRwLXNlcnZlcgotIHNjYWxhLWZpbmNoCi0gc2NhbGEtZ2F0bGluZwotIHNjYWxhLWxhZ29tLXNlcnZlcgotIHNjYWxhLXBsYXktc2VydmVyCi0gc2NhbGEtc3R0cAotIHNjYWxhLXN0dHA0Ci0gc2NhbGF6Ci0gc3ByaW5nCi0gZHluYW1pYy1odG1sCi0gaHRtbAotIGh0bWwyCi0gc3dpZnQ1Ci0gc3dpZnQtY29tYmluZQotIHR5cGVzY3JpcHQKLSB0eXBlc2NyaXB0LWFuZ3VsYXIKLSB0eXBlc2NyaXB0LWF1cmVsaWEKLSB0eXBlc2NyaXB0LWF4aW9zCi0gdHlwZXNjcmlwdC1mZXRjaAotIHR5cGVzY3JpcHQtaW52ZXJzaWZ5Ci0gdHlwZXNjcmlwdC1qcXVlcnkKLSB0eXBlc2NyaXB0LW5lc3RqcwotIHR5cGVzY3JpcHQtbm9kZQotIHR5cGVzY3JpcHQtcmVkdXgtcXVlcnkKLSB0eXBlc2NyaXB0LXJ4anMKLSB3c2RsLXNjaGVtYQotIHhvam8tY2xpZW50Ci0gemFwaWVyCgojIyBWYWxpZGF0aW9uCgpUbyB2YWxpZGF0ZSB0aGUgc2NoZW1hIG9mIHRoZSBPQVMsIGp1c3QgcnVuOgpgYGBiYXNoCm1ha2Ugb3BlbmFwaSBBUkdTPSd2YWxpZGF0ZSAtaSBwZXRzX2FwaS55YW1sJwpgYGAKCiMjIFRvZG9zCgotIFsgXSBjb3ZlciB2aXJ0dWFsIHNlcnZpY2VzIC8gbW9ja2VkIHNlcnZpY2VzCi0gWyBdIGdlbmVyYXRlIG1ldHJpY3MgYmFzZWQgb2YgY3VzdG9taXNhdGlvbnMgYXR0cmlidXRlcyBpbiB0aGUgT0FTCg== readmeEtag: '"b6c177ef295f7a8297e7e29226b5e9c1ded9322b"' readmeLastModified: Sun, 17 Dec 2023 23:39:22 GMT repositoryId: 732375254 description: >- Definition-driven development is the approach where a clear and well-defined understanding of project requirements and goals guides the entire development process. This approach emphasizes the importance of creating a detailed specification or definition of the project before initiating any coding or implementation. created: '2023-12-16T13:22:24Z' updated: '2023-12-20T18:31:09Z' language: Mustache archived: false stars: 1 watchers: 1 forks: 0 owner: edenreich logo: https://avatars.githubusercontent.com/u/16985712?v=4 repoEtag: '"34d208a46d7d462001ae0478fc5b03a301b713fea4964fddaa2aaf9df7cdd760"' repoLastModified: Wed, 20 Dec 2023 18:31:09 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/lavandejoey/auth-flutter-hmi-coursework v3: true id: d05d1050c4665a1cbbe8c4dbf7e957c9 repositoryMetadata: base64Readme: >- IyBbQXV0aCBGbHV0dGVyIEhNSSBDb3Vyc2V3b3JrXShodHRwczovL2dpdGh1Yi5jb20vbGF2YW5kZWpvZXkvQXV0aC1GbHV0dGVyLUhNSS1Db3Vyc2V3b3JrKQoKWyFbU3RhcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL2xhdmFuZGVqb2V5L0F1dGgtRmx1dHRlci1ITUktQ291cnNld29yay0uc3ZnKV0oKQpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtTUlULWdyZWVuP2xvZ289bWl0KV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpClshW0ZsdXR0ZXIgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9GbHV0dGVyLXYzLjEzLjktYmx1ZT9sb2dvPWZsdXR0ZXIpXShodHRwczovL2ZsdXR0ZXIuZGV2LykKWyFbRGFydCBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0RhcnQtdjMuMS41LWJsdWU/bG9nbz1kYXJ0KV0oaHR0cHM6Ly9kYXJ0LmRldi8pClshW0FuZHJvaWQgVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9BbmRyb2lkLXYxNC1ibHVlP2xvZ289YW5kcm9pZCldKGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3N0dWRpby9yZWxlYXNlcy9wbGF0Zm9ybXMjNC4wKQpbIVtPcGVuQVBJIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvT3BlbkFQSS12My4wLjAtYmx1ZT9sb2dvPW9wZW5hcGktaW5pdGlhdGl2ZSldKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykKClRoaXMgaXMgYSBjb3Vyc2V3b3JrIGZvciB0aGUgSHVtYW4gTWFjaGluZSBJbnRlcmFjdGlvbiBjb3Vyc2UgYXQgRUNVU1QuClRoZSBnb2FsIG9mIHRoaXMgcHJvamVjdCBpcyB0byBjcmVhdGUgYSBtb2JpbGUgYXBwbGljYXRpb24gdGhhdCBhbGxvd3MgdXNlcnMgdG8gcmVnaXN0ZXIgYW5kIGxvZ2luIHRvIHRoZSBzeXN0ZW0uCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClRoaXMgcHJvamVjdCBpcyBhIHN0YXJ0aW5nIHBvaW50IGZvciBhIEZsdXR0ZXIgYXBwbGljYXRpb24uCgpBIGZldyByZXNvdXJjZXMgdG8gZ2V0IHlvdSBzdGFydGVkIGlmIHRoaXMgaXMgeW91ciBmaXJzdCBGbHV0dGVyIHByb2plY3Q6CgotIFtMYWI6IFdyaXRlIHlvdXIgZmlyc3QgRmx1dHRlciBhcHBdKGh0dHBzOi8vZG9jcy5mbHV0dGVyLmRldi9nZXQtc3RhcnRlZC9jb2RlbGFiKQotIFtDb29rYm9vazogVXNlZnVsIEZsdXR0ZXIgc2FtcGxlc10oaHR0cHM6Ly9kb2NzLmZsdXR0ZXIuZGV2L2Nvb2tib29rKQoKRm9yIGhlbHAgZ2V0dGluZyBzdGFydGVkIHdpdGggRmx1dHRlciBkZXZlbG9wbWVudCwgdmlldyB0aGUKW29ubGluZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuZmx1dHRlci5kZXYvKSwgd2hpY2ggb2ZmZXJzIHR1dG9yaWFscywKc2FtcGxlcywgZ3VpZGFuY2Ugb24gbW9iaWxlIGRldmVsb3BtZW50LCBhbmQgYSBmdWxsIEFQSSByZWZlcmVuY2UuCgojIyBVcGRhdGUgSGlzdG9yeQoKLSBbMjAyMy0xMi0zMF06IEhNSSBjb3Vyc2V3b3JrIHN1Ym1pc3Npb24gdmVyc2lvbiAodjEuMC4wKS4KLSBbMjAyMy0xMS0yOF06IENvbXBsZXRlIGZ1bmN0aW9ucyBhbmQgVUkgb2YgbG9naW4gYW5kIHJlZ2lzdGVyLgotIFsyMDIzLTExLTAzXTogQ29tcGxldGUgZnVuY3Rpb25zIGFuZCBVSSBvZiB1cGRhdGUgdXNlciBpbmZvcm1hdGlvbi4KLSBbMjAyMy0xMS0wMl06IFByb2plY3QgY3JlYXRlZC4gQVBJIHdpdGggT3BlbkFQSSAzLjAuMCBjcmVhdGVkLgoKIyMgQ29weVJpZ2h0CgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIGxpY2Vuc2VdKExJQ0VOU0UpLgo= readmeEtag: '"c557b4c59ccded32ae0978a54f1bad22476acfc5"' readmeLastModified: Sat, 30 Dec 2023 08:15:17 GMT repositoryId: 713267738 description: >- This is a coursework for the Human Machine Interaction course at ECUST. The goal of this project is to create a mobile application that allows users to register and login to the system. created: '2023-11-02T07:11:30Z' updated: '2023-11-02T09:52:52Z' language: Dart archived: false stars: 1 watchers: 1 forks: 0 owner: lavandejoey logo: https://avatars.githubusercontent.com/u/48612765?v=4 license: MIT repoEtag: '"b07dc576cde56e3c01b01fdb1870ad7850de62793304684ecc8760ad0dfdb890"' repoLastModified: Thu, 02 Nov 2023 09:52:52 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/jasonlam604/vileware v3: true id: 53dee98456375d6c16b0e2c006d9fb09 repositoryMetadata: base64Readme: >- IyBWaWxld2FyZQoKIyMgT3ZlcnZpZXcKVmlsZXdhcmUgaXMgYW4gb3BlbiBzb3VyY2UgR2FtaW5nIEFQSSBTZXJ2aWNlIHdpdGggdGhlIGludGVudCB0byBoZWxwIGFzc2lzdCBwcm92aWRlIGEgYmFzZWxpbmUgZm91bmRhdGlvbmFsIHN5c3RlbSB5b3UgY2FuIGVuaGFuY2UgYW5kIGNvbnRpbnVhbGx5IGJ1aWxkLiAKClZpbGV3YXJlIGlzIG1hZGUgdXAgYSBudW1iZXIgb2YgYmFja2VuZCBSRVNUZnVsIEFQSSBzZXJ2aWNlcyB3aXRoIHRoZSBpbnRlbnQgdG8gYmUgYmVpbmcgdXRpbGl6ZWQgZm9yIHZpZGVvIGdhbWVzLiBJdCBkb2VzIE5PVCBwcm92aWRlIHZpZGVvIGdhbWUgZW5naW5lIHNlcnZpY2VzIG9yIGFueSBnYW1lIHNwZWNpZmljIGJlaGF2aW91cnMgYnV0IGl0IHJhdGhlciBwcm92aWRlcyBjb21tb24gY3Jvc3MgY3V0dGluZyBjb25jZXJucyBmb3Igb25lIG9yIG1vcmUgZ2FtZXMuIFRoZSBrZXkgdmFsdWUgb2YgdGhlIHNlcnZpY2VzIGFyZToKCi0gUmUtdXNhYmlsaXR5IG9mIHNlcnZpY2VzIGFjcm9zcyBtb3JlIHRoYW4gb25lIGdhbWUgZnJhbmNoaXNlIGFuZC9vciBnYW1lIHRpdGxlLgotIEtZUCwgS25vdyBZb3VyIFBsYXllciwgYnkgaGF2aW5nIHRoZSBjYXBhYmlsaXR5IHRvIG1hbmFnZSB5b3VyIGVhY2ggcGxheWVyIGFjcm9zcyBtdWx0aXBsZSB0aXRsZXMgYWxsb3dzIHlvdSB0byBtb3JlIGVhc2lseSBnYWluIGluc2lnaHRzIHRvIHlvdXIgcGxheWVycyBiZWhhdmlvdXJzIGFuZCB1bHRpbWF0ZWx5IHByb3ZpZGUgYSBpbXByb3ZlIHBsYXllciBleHBlcmllbmNlCi0gRWFjaCBzZXJ2aWNlIGlzIGluZGl2aWR1YWxpemVkLCB5b3Ugc2VsZWN0IHRoZSBzZXJ2aWNlcyBvZiBpbnRlcmVzdCBhbmQgYXJlIGFibGUgdG8gc2NhbGUgZWFjaCBzZXJ2aWNlIHdoZW4gcmVxdWlyZWQKClZpbGV3YXJlIHByb3ZpZGVzIGEgZnVsbHkgZnVuY3Rpb25hbCBbTWljcm9zZXJ2aWNlc10oaHR0cHM6Ly9taWNyb3NlcnZpY2VzLmlvLykgYm9pbGVycGxhdGUgZm91bmRhdGlvbiBmb3IgeW91ciBwcm9qZWN0LiBBbGwgdGhlIGNvZGUgaXMgY29udGFpbiBpbiB0aGlzIG9uZSByZXBvIHVzaW5nIGEgW01vbm9yZXBvXShodHRwczovL21vbm9yZXBvLnRvb2xzLykgYXBwcm9hY2guCgpUaGUgTW9ub3JlcG8gYXBwcm9hY2ggYWxsb3dzIG9uZSwgbGl0ZXJhbGx5IG9uZSBzb2Z0d2FyZSBlbmdpbmVlciB0byBwcmFnbWF0aWNhbGx5IGJ1aWxkIGEgc3lzdGVtIGZyb20gZ3JvdW5kIHVwIGJ1dCB5ZXQgaGF2ZSBmbGV4aWJpbGl0eSB0byBzY2FsZQpvdXQgd2hlcmUgbmVlZGVkIGJhc2VkIG9uIHNlcnZpY2VzIHdpdGggc3VwZXIgZWFzZSBvZiB2aWV3aW5nIGFsbCB0aGUgY29kZSBpbiBvbmUgc3BvdC4gIFRoZXJlIHdhcyBhbiBleHBsaWNpdCBkZWNpc2lvbiB0byBoYXZlIGEgY29tbW9uIGxpYnJhcnkKdGhhdCB3b3VsZCBhbGxvdyBlYWNoIHNlcnZpY2UgdG8gc2hhcmUgY29tbW9uYWxpdGllcyBzdWNoIGFzIERUT3MsIEhUVFAgdXRpbGl0aWVzLi4uZXRjLiBBcmd1YWJseSB0aGlzIGNvdWxkIGJlIHZpZXdlZCBhcyBhbiBhbnRpLXBhdHRlcm4gbmFtZWx5ICpkaXN0cnVidGVkIG1vbm9saXRoKiwgdGhhdCBzYWlkIHdoYXQgaXMgYmVpbmcgZ2FpbmVkIGhlcmUgaXMgdGhlIHN1cHBvcnQgb2YgRFJZLCBEbyBOb3QgUmVwZWF0IFlvdXJzZWxmLgoKPiAqKl9OT1RFOl8qKiAgUHJvamVjdCBjdXJyZW50bHkgdXNlcyBHcmFkbGUgZm9yIE1vbm9yZXBvIGFkbWl0dGx5IHRoaXMgaXMgbW9yZSBKYXZhIGNlbnRyaWMsIHBvdGVudGlhbGx5IHJldmlzaXQgdGhlIHRvb2xpbmcsIHN1Y2ggYXMgW0JhemVsXShodHRwczovL2JhemVsLmJ1aWxkLykKCk9uY2UgdGhlIHN5c3RlbSBvcmFuZ2ljYWxseSBncm93cyBhbmQgZWFjaCBzeXN0ZW0gbmF0dXJhbGx5IHN1cHBvcnRzIHRoZSBvcmdhbmljIGdyb3d0aCBvZiB0ZWFtcyBha2EgUE9EcywgdGhpcyBhbGxvd3MgZWFjaCBQT0QgdG8gYWdub3N0aWNhbGx5IHJ1biBhdCB0aGVpciBvd24gc3BlZWRzIGFuZCBncm93IGFjY29yZGluZ2x5IHdoZXRoZXIgaXQncyB0ZWNobmljYWxseSBvciBmcm9tIGEgUE9EIHRlYW0gbWVtYmVyIGNvdW50IHBlcnNwZWN0aXZlCgo+ICoqX05PVEU6XyoqICBJbml0aWFsbHkgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgbWFuYWdhYmlsaXR5IGlkZWFsbHkgc3RpY2tpbmcgdG8gYSBjb21tb24gdGVjaCBzdGFjayBtYWtlcyBldmVyeXRoaW5nIGVhc2llciBpbiB0aGlzIGNhc2UgdGhlIEphdmEgZWNvc3lzdGVtLCB0aGF0IHNhaWQgdGhlcmUgaXMgbm8gcmVhc29uIHdoeSBhcyB0aGUgdGVhbSBncm93cyBhbmQgd2hlcmUgaXQgbWFrZSBzZW5zZSBkaWZmZXJlbnQgdGVjaCBzdGFja3MgY2FuIGJlIGludHJvZHVjZWQsIGFnYWluIHRoZW4gdG8ga2VlcCB3aXRoIGEgTW9ub3JlcG8gYXBwcm9hY2ggR3JhZGxlIG1heSBub3QgYmUgdGhlIGJlc3QgdG9vbCB0byB1c2UsIHNlZSBbQmF6ZWxdKGh0dHBzOi8vYmF6ZWwuYnVpbGQvKQoKSGVyZSwgaXMgd2hhdCB0aGUgc3lzdGVtIGxvb2tzIGxpa2Ugd2l0aCAxIGNvbW1vbiBsaWJyYXJ5IGFuZCA0IHNlcnZpY2VzIHdoZXJlIGVuZ2luZSBzZXJ2aWNlIGlzIHRoZSBlZGdlIHNlcnZpY2UgKE1pY3Jvc2VydmljZSBBZ2dyZWdhdG9yIFBhdHRlcm4pLiBBcyB5b3UgY2FuIHNlZSBhIHNvZnR3YXJlIGVuZ2luZWVyIGVhc2lseSBjYW4gdmlldyB0aGUgZW50aXJlIHByb2plY3QgYW5kIHlldCBzdGlsbCBmZWFzaWFibHkgbWFuYWdlIGEgbWljcm9zZXJ2aWNlIGVudmlyb25tZW50IGxvY2FsbHkgdXNpbmcgRG9ja2VyIG9yIHNpbXBseSBieSBzdGFydGluZyBlYWNoIHNlcnZpY2UuIFRha2Ugbm90ZSB0aGlzIHByb2plY3QgaXMgcHJlcHBlZCAoeWV0IHRvIGJlIGNvbXBsZXRlZCkgdG8gYmUgZGVwbG95ZWQgaW50byBhIENsb3VkIE5hdGl2ZSBlbnZpcm9ubWVudCwgaW50ZW50IHRvIGJlIGRlcGxveWFibGUgaW4gQVdTIHVzaW5nIENESyAoSmF2YSAmIE1hdmVuKSBhbG9uZyB3aXRoIHRoZSB1c2Ugb2YgR2l0SHViIEFjdGlvbnMuCgohW2ltYWdlXShodHRwczovL2dpdGh1Yi5jb20vamFzb25sYW02MDQvdmlsZXdhcmUvYmxvYi9tYWluL2RvYy9pbWFnZXMvdmlsZXdhcmUtaWRlLXNjcmVlbnNob3QucG5nKQoKIyMgT2JqZWN0aXZlcwoKLSBbeF0gUmVsZWFzZSAwLjEuMCAtIEZvdW5kYXRpb25hbCB3b3JrOiBHcmFkbGUgTXVsdGkgUHJvamVjdCwgTW9ubyBSZXBvLCBEb2NrZXIsIE9wZW5BUEkgZm9yIGVhY2ggc2VydmljZSwgVW5pdCBUZXN0LCBTbW9rZSBJbnRlZ3JhdGlvbiBUZXN0Ci0gWyBdIFJlbGVhc2UgMC4yLjAgLSBBZGQgaW4gUGVyc2lzdGVuY2UsIFBvc3RncmVzIG9yIE15U1FMCi0gWyBdIFJlbGVhc2UgMC4zLjAgLSBBZGQgaW4gQXN5bmMgTG9nZ2luZyB2aWEgTWVzc2FnaW5nIHVzaW5nIFJhYmJpdE1RIC8gQW1hem9uIE1RCi0gWyBdIFJlbGVhc2UgMC40LjAgLSBBZGQgaW4gQ2FjaGluZyB2aWEgUmVkaXMKLSBbIF0gUmVsZWFzZSB4LngueCAtIFRvIEJlIERldGVybWluZWQKCgojIyBUZWNoIFN0YWNrIE92ZXJ2aWV3Ci0gW3hdIFtEb2NrZXJdKGh0dHBzOi8vd3d3LmRvY2tlci5jb20vKSBhbmQgW0RvY2tlciBDb21wb3NlXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8wOF91c2luZ19jb21wb3NlLykKLSBbeF0gW0Jhc2hdKGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC8pLCB1c2VkIGZvciBzbW9rZSB0ZXN0aW5nIGludGVncmF0aW9uCi0gW3hdIFtKYXZhIDE3XShodHRwczovL3d3dy5qYXZhLmNvbS9lbi8pCi0gW3hdIFtTcHJpbmcgQm9vdF0oaHR0cHM6Ly9zcHJpbmcuaW8vcHJvamVjdHMvc3ByaW5nLWJvb3QpCi0gW3hdIFtMb21ib2tdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvKQotIFt4XSBbR3JhZGxlXShodHRwczovL2dyYWRsZS5vcmcvKQotIFt4XSBbSW50ZWxsaWogQ29tbXVuaXR5IEVkaXRpb25dKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vaWRlYS9kb3dubG9hZC8pIGlzIHRoZSBJREUgc2hvd24gaW4gdGhlIHNjcmVlbnNob3RzCi0gW3hdIEpVbml0IHVzZWQgZm9yIHVuaXQgdGVzdGluZyBpc29sYXRlZCBzZXJ2aWNlcwotIFt4XSBNb2NraXRvIHVzZWQgZm9yIHVuaXQgdGVzdGluZyB0aGUgYmVoYXZpb3Igb2YgYSBzcGVjaWZpYyBzZXJ2aWNlIHVuZGVyIHRlc3Qgd2l0aG91dCB3b3JyeWluZyBhYm91dCBpdHMgZGVwZW5kZW5jaWVzIG9uIG90aGVyIHNlcnZpY2VzCi0gWyBdIEFXUyBTZXJ2aWNlcyAmIFRvb2xzCiAgIC0gWyBdIFtBV1MgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0IC8gQ0RLXSAoaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9jZGsvKSB1c2luZyBbTWF2ZW5dKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy8pIGFuZCBbSmF2YV0oaHR0cHM6Ly93d3cuamF2YS5jb20vZW4vKQogICAtIFsgXSBbQW1hem9uIEVsYXN0aWMgQ29udGFpbmVyIFJlZ2lzdHJ5IC8gRUNSXShodHRwczovL2F3cy5hbWF6b24uY29tL2Vjci8pCiAgIC0gWyBdIFtBbWF6b24gU2ltcGxlIE5vdGlmaWNhdGlvbiBTZXJ2aWNlIC8gU05TXShodHRwczovL2F3cy5hbWF6b24uY29tL3Nucy8pCiAgIC0gWyBdIFtBbWF6b24gU2ltcGxlIFF1ZXVlIFNlcnZpY2UgLyBTUVNdKGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vc3FzLykKICAgLSBbIF0gW0FtYXpvbiBWaXJ0dWFsIFByaXZhdGUgQ2xvdWQgLyBWUENdKGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vdnBjLykKICAgLSBbIF0gW0FtYXpvbiBYLVJBWV0oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS94cmF5LykKICAgLSBbIF0gW0FtYXpvbiBSRFMgLSBQb3N0Z3Jlc10oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9yZHMvKQoKIyMgU291cmNlIENvZGUgTGF5b3V0IE92ZXJ2aWV3ClRoZSBWaWxld2FyZSByZXNwb3NpdG9yeSBhdCB0aGUgcm9vdCBjb250YWlucyB0aGUgc291cmNlIGNvZGUgdW5kZXIgKiovYXBwbGljYXRpb24qKiB3aGljaCBpcyBtYWRlIHVwIG9mIG1pY3Jvc2VydmljZXMgdXRpbGl6aW5nIGEgW0dyYWRsZSBNdWx0aSBQcm9qZWN0IExheW91dF0oaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvY3VycmVudC91c2VyZ3VpZGUvbXVsdGlfcHJvamVjdF9idWlsZHMuaHRtbCk7IGFsbCB0aGUgc2VydmljZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGlzIG9uZSBHaXRIdWIgcmVzcG9zdGlvcnkgdGhhdCB1dGlsaXplcyBhIFtNb25vcmVwb10oaHR0cHM6Ly9tb25vcmVwby50b29scy8pIGFwcHJvYWNoLiAgVGhlbiB1bmRlciAqKi9jZGsqKiBhcmUgdGhlIGRlcGxveW1lbnQgc2NyaXB0cyB1c2luZyBKYXZhIHdpdGggW0NES10oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9jZGsvKS4KCmBgYAovcm9vdAogIHwKICB8LS9hcHBsaWNhdGlvbgogIHwgICAgIHwKICB8ICAgICB8LSBkb2NrZXIuY29tcG9zZS55bWwKICB8ICAgICB8LSBzZXR0aW5ncy5ncmFkbGUKICB8ICAgICB8CiAgfCAgICAgfC0vY29tbW9uCiAgfCAgICAgfCAgICB8CiAgfCAgICAgfCAgICB8LS9zcmMvbWFpbi9qYXZhCiAgfCAgICAgfCAgICB8CiAgfCAgICAgfCAgICB8LSBidWlsZC5ncmFkbGUgIAogIHwgICAgIHwKICB8ICAgICB8LS9zZXJ2aWNlcwogIHwgICAgICAgICAgfAogIHwgICAgICAgICAgfC0vZW5naW5lLXNlcnZpY2UKICB8ICAgICAgICAgIHwgICAgIHwKICB8ICAgICAgICAgIHwgICAgIHwtL3NyYwogIHwgICAgICAgICAgfCAgICAgfCAgIHwtL21haW4KICB8ICAgICAgICAgIHwgICAgIHwgICB8ICAgfC0vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbAogIHwgICAgICAgICAgfCAgICAgfCAgIHwKICB8ICAgICAgICAgIHwgICAgIHwgICB8LS90ZXN0CiAgfCAgICAgICAgICB8ICAgICB8CiAgfCAgICAgICAgICB8ICAgICB8LSBidWlsZC5ncmFkbGUKICB8ICAgICAgICAgIHwKICB8ICAgICAgICAgIHwtL2NvcmUtc2VydmljZQogIHwgICAgICAgICAgfCAgICAgfAogIHwgICAgICAgICAgfCAgICAgfC0vc3JjCiAgfCAgICAgICAgICB8ICAgICB8ICAgfC0vbWFpbgogIHwgICAgICAgICAgfCAgICAgfCAgIHwgICB8LS9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sCiAgfCAgICAgICAgICB8ICAgICB8ICAgfCAgCiAgfCAgICAgICAgICB8ICAgICB8ICAgfC0vdGVzdAogIHwgICAgICAgICAgfCAgICAgfAogIHwgICAgICAgICAgfCAgICAgfC0gYnVpbGQuZ3JhZGxlCiAgfCAgICAgICAgICB8CiAgfCAgICAgICAgICB8LS9ldmVudC1zZXJ2aWNlCiAgfCAgICAgICAgICB8ICAgICB8CiAgfCAgICAgICAgICB8ICAgICB8LS9zcmMKICB8ICAgICAgICAgIHwgICAgIHwgICB8LS9tYWluCiAgfCAgICAgICAgICB8ICAgICB8ICAgfCAgIHwtL3Jlc291cmNlcy9hcHBsaWNhdGlvbi55bWwKICB8ICAgICAgICAgIHwgICAgIHwgICB8ICAKICB8ICAgICAgICAgIHwgICAgIHwgICB8LS90ZXN0CiAgfCAgICAgICAgICB8ICAgICB8CiAgfCAgICAgICAgICB8ICAgICB8LSBidWlsZC5ncmFkbGUKICB8ICAgICAgICAgIHwKICB8ICAgICAgICAgIHwtL3N0YXQtc2VydmljZQogIHwgICAgICAgICAgICAgICAgfAogIHwgICAgICAgICAgICAgICAgfC0vc3JjCiAgfCAgICAgICAgICAgICAgICB8ICAgfC0vbWFpbgogIHwgICAgICAgICAgICAgICAgfCAgIHwgICB8LS9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sCiAgfCAgICAgICAgICAgICAgICB8ICAgfCAgCiAgfCAgICAgICAgICAgICAgICB8ICAgfC0vdGVzdAogIHwgICAgICAgICAgICAgICAgfAogIHwgICAgICAgICAgICAgICAgfC0gYnVpbGQuZ3JhZGxlCiAgfAogIHwtL2NkawogIHwgICB8CiAgfCAgIHwtLVtDb21pbmcgc29vbiBDREsgc2NyaXB0cyB1c2luZyBKYXZhIGFuZCBNYXZlbl0KICB8CiAgfC0vdGVzdAogICAgICB8CiAgICAgIHwtdGVzdC5iYXNoCiAgICAgIHwKICAgICAgfC1mdW5jdGlvbnMuYmFzaAogICAgICAKYGBgCiMjIFF1aWNrIFN0YXJ0IEd1aWRlCgpQcmVyZXF1aXNpdGVzCi0gSmF2YSAxNwotIERvY2tlciB3aXRoIERvY2tlciBDb21wb3NlCi0gR3JhZGxlCgpDbG9uZSBQcm9qZWN0cwpgYGAKZ2l0IGNsb25lIGdpdEBnaXRodWIuY29tOmphc29ubGFtNjA0L3ZpbGV3YXJlLmdpdApgYGAKCk5hdmlnYXRlIHRvIGFwcGxpY2F0aW9uIGZvbGRlcgpgYGAKY2QgLi92aWxld2FyZS9hcHBsaWNhdGlvbgpgYGAKCkNsZWFuIFByb2plY3QKYGBgCmdyYWRsZSBjbGVhbgpgYGAKCkJ1aWxkIFByb2plY3QsIHVuaXQgdGVzdHMgd2lsbCBleGVjdXRlIGFzIHdlbGwKYGBgCmdyYWRsZSBidWlsZApgYGAKClN0YXlpbmcgaW4gdGhlIHNhbWUgZm9sZGVyIH4vdmlsZXdhcmUvYXBwbGljYXRpb24gU3RhcnQgc2VydmljZXMgdXNpbmcgZG9ja2VyCgoqKk9wdGlvbmFsIFBydW5lIFN5c3RlbSoqIHdhcm5pbmcgdGhpcyB3aWxsIHJlbW92ZSB1bnVzZWQgLyBkYW5nbGluZyAoc3RvcHBlZCBjb250YWluZXJzLCBuZXR3b3JrcywgaW1hZ2VzLi4uKQpgYGAKZG9ja2VyLWNvbXBvc2Ugc3lzdGVtIHBydW5lCmBgYAoKYGBgCmRvY2tlci1jb21wb3NlIHVwCmBgYAoKCllvdSBzaG91bGQgc2VlIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoaXMKYGBgCkNyZWF0aW5nIGFwcGxpY2F0aW9uX2V2ZW50XzEgIC4uLiBkb25lCkNyZWF0aW5nIGFwcGxpY2F0aW9uX2NvcmVfMSAgIC4uLiBkb25lCkNyZWF0aW5nIGFwcGxpY2F0aW9uX2VuZ2luZV8xIC4uLiBkb25lCkF0dGFjaGluZyB0byBhcHBsaWNhdGlvbl9zdGF0XzEsIGFwcGxpY2F0aW9uX2V2ZW50XzEsIGFwcGxpY2F0aW9uX2VuZ2luZV8xLCBhcHBsaWNhdGlvbl9jb3JlXzEKc3RhdF8xICAgIHwgCnN0YXRfMSAgICB8ICAgLiAgIF9fX18gICAgICAgICAgXyAgICAgICAgICAgIF9fIF8gXwpzdGF0XzEgICAgfCAgL1xcIC8gX19fJ18gX18gXyBfKF8pXyBfXyAgX18gXyBcIFwgXCBcCnN0YXRfMSAgICB8ICggKCApXF9fXyB8ICdfIHwgJ198IHwgJ18gXC8gX2AgfCBcIFwgXCBcCnN0YXRfMSAgICB8ICBcXC8gIF9fXyl8IHxfKXwgfCB8IHwgfCB8fCAoX3wgfCAgKSApICkgKQpzdGF0XzEgICAgfCAgICcgIHxfX19ffCAuX198X3wgfF98X3wgfF9cX18sIHwgLyAvIC8gLwpzdGF0XzEgICAgfCAgPT09PT09PT09fF98PT09PT09PT09PT09PT18X19fLz0vXy9fL18vCnN0YXRfMSAgICB8ICA6OiBTcHJpbmcgQm9vdCA6OiAgICAgICAgICAgICAgICAodjIuNy4xKQpzdGF0XzEgICAgfCAKZW5naW5lXzEgIHwgCmVuZ2luZV8xICB8ICAgLiAgIF9fX18gICAgICAgICAgXyAgICAgICAgICAgIF9fIF8gXwplbmdpbmVfMSAgfCAgL1xcIC8gX19fJ18gX18gXyBfKF8pXyBfXyAgX18gXyBcIFwgXCBcCmVuZ2luZV8xICB8ICggKCApXF9fXyB8ICdfIHwgJ198IHwgJ18gXC8gX2AgfCBcIFwgXCBcCmVuZ2luZV8xICB8ICBcXC8gIF9fXyl8IHxfKXwgfCB8IHwgfCB8fCAoX3wgfCAgKSApICkgKQplbmdpbmVfMSAgfCAgICcgIHxfX19ffCAuX198X3wgfF98X3wgfF9cX18sIHwgLyAvIC8gLwplbmdpbmVfMSAgfCAgPT09PT09PT09fF98PT09PT09PT09PT09PT18X19fLz0vXy9fL18vCmVuZ2luZV8xICB8ICA6OiBTcHJpbmcgQm9vdCA6OiAgICAgICAgICAgICAgICAodjIuNy4xKQplbmdpbmVfMSAgfCAKZXZlbnRfMSAgIHwgCmV2ZW50XzEgICB8ICAgLiAgIF9fX18gICAgICAgICAgXyAgICAgICAgICAgIF9fIF8gXwpldmVudF8xICAgfCAgL1xcIC8gX19fJ18gX18gXyBfKF8pXyBfXyAgX18gXyBcIFwgXCBcCmV2ZW50XzEgICB8ICggKCApXF9fXyB8ICdfIHwgJ198IHwgJ18gXC8gX2AgfCBcIFwgXCBcCmV2ZW50XzEgICB8ICBcXC8gIF9fXyl8IHxfKXwgfCB8IHwgfCB8fCAoX3wgfCAgKSApICkgKQpldmVudF8xICAgfCAgICcgIHxfX19ffCAuX198X3wgfF98X3wgfF9cX18sIHwgLyAvIC8gLwpldmVudF8xICAgfCAgPT09PT09PT09fF98PT09PT09PT09PT09PT18X19fLz0vXy9fL18vCmV2ZW50XzEgICB8ICA6OiBTcHJpbmcgQm9vdCA6OiAgICAgICAgICAgICAgICAodjIuNy4xKQpldmVudF8xICAgfCAKY29yZV8xICAgIHwgCmNvcmVfMSAgICB8ICAgLiAgIF9fX18gICAgICAgICAgXyAgICAgICAgICAgIF9fIF8gXwpjb3JlXzEgICAgfCAgL1xcIC8gX19fJ18gX18gXyBfKF8pXyBfXyAgX18gXyBcIFwgXCBcCmNvcmVfMSAgICB8ICggKCApXF9fXyB8ICdfIHwgJ198IHwgJ18gXC8gX2AgfCBcIFwgXCBcCmNvcmVfMSAgICB8ICBcXC8gIF9fXyl8IHxfKXwgfCB8IHwgfCB8fCAoX3wgfCAgKSApICkgKQpjb3JlXzEgICAgfCAgICcgIHxfX19ffCAuX198X3wgfF98X3wgfF9cX18sIHwgLyAvIC8gLwpjb3JlXzEgICAgfCAgPT09PT09PT09fF98PT09PT09PT09PT09PT18X19fLz0vXy9fL18vCmNvcmVfMSAgICB8ICA6OiBTcHJpbmcgQm9vdCA6OiAgICAgICAgICAgICAgICAodjIuNy4xKQpjb3JlXzEgICAgfCAKZW5naW5lXzEgIHwgMjAyMi0wOS0wNSAxOTowODoxNS43ODcgIElORk8gMSAtLS0gWyAgICAgICAgICAgbWFpbl0gaS52LmVuZ2luZS5FbmdpbmVTZXJ2aWNlQXBwbGljYXRpb24gICAgICA6IFN0YXJ0aW5nIEVuZ2luZVNlcnZpY2VBcHBsaWNhdGlvbiB1c2luZyBKYXZhIDE3LjAuNC4xIG9uIDEyMGQ2M2EwMTRiNCB3aXRoIFBJRCAxICgvYXBwbGljYXRpb24vQk9PVC1JTkYvY2xhc3NlcyBzdGFydGVkIGJ5IHJvb3QgaW4gL2FwcGxpY2F0aW9uKQplbmdpbmVfMSAgfCAyMDIyLTA5LTA1IDE5OjA4OjE1Ljc5OSBERUJVRyAxIC0tLSBbICAgICAgICAgICBtYWluXSBpLnYuZW5naW5lLkVuZ2luZVNlcnZpY2VBcHBsaWNhdGlvbiAgICAgIDogUnVubmluZyB3aXRoIFNwcmluZyBCb290IHYyLjcuMSwgU3ByaW5nIHY1LjMuMjEKZW5naW5lXzEgIHwgMjAyMi0wOS0wNSAxOTowODoxNS44MDYgIElORk8gMSAtLS0gWyAgICAgICAgICAgbWFpbl0gaS52LmVuZ2luZS5FbmdpbmVTZXJ2aWNlQXBwbGljYXRpb24gICAgICA6IFRoZSBmb2xsb3dpbmcgMSBwcm9maWxlIGlzIGFjdGl2ZTogImRvY2tlciIKc3RhdF8xICAgIHwgMjAyMi0wOS0wNSAxOTowODoxNS45MDMgIElORk8gMSAtLS0gWyAgICAgICAgICAgbWFpbl0gaW8udmlsZXdhcmUuc3RhdC5TdGF0U2VydmljZUFwcGxpY2F0aW9uICA6IFN0YXJ0aW5nIFN0YXRTZXJ2aWNlQXBwbGljYXRpb24gdXNpbmcgSmF2YSAxNy4wLjQuMSBvbiAyMGUyYjg1Mjc4Yzkgd2l0aCBQSUQgMSAoL2FwcGxpY2F0aW9uL0JPT1QtSU5GL2NsYXNzZXMgc3RhcnRlZCBieSByb290IGluIC9hcHBsaWNhdGlvbikKc3RhdF8xICAgIHwgMjAyMi0wOS0wNSAxOTowODoxNS45MTEgREVCVUcgMSAtLS0gWyAgICAgICAgICAgbWFpbl0gaW8udmlsZXdhcmUuc3RhdC5TdGF0U2VydmljZUFwcGxpY2F0aW9uICA6IFJ1bm5pbmcgd2l0aCBTcHJpbmcgQm9vdCB2Mi43LjEsIFNwcmluZyB2NS4zLjIxCnN0YXRfMSAgICB8IDIwMjItMDktMDUgMTk6MDg6MTUuOTE0ICBJTkZPIDEgLS0tIFsgICAgICAgICAgIG1haW5dIGlvLnZpbGV3YXJlLnN0YXQuU3RhdFNlcnZpY2VBcHBsaWNhdGlvbiAgOiBUaGUgZm9sbG93aW5nIDEgcHJvZmlsZSBpcyBhY3RpdmU6ICJkb2NrZXIiCmNvcmVfMSAgICB8IDIwMjItMDktMDUgMTk6MDg6MTUuOTIyICBJTkZPIDEgLS0tIFsgICAgICAgICAgIG1haW5dIGlvLnZpbGV3YXJlLmNvcmUuQ29yZVNlcnZpY2VBcHBsaWNhdGlvbiAgOiBTdGFydGluZyBDb3JlU2VydmljZUFwcGxpY2F0aW9uIHVzaW5nIEphdmEgMTcuMC40LjEgb24gNDZkMTQ3OWY1NWQ3IHdpdGggUElEIDEgKC9hcHBsaWNhdGlvbi9CT09ULUlORi9jbGFzc2VzIHN0YXJ0ZWQgYnkgcm9vdCBpbiAvYXBwbGljYXRpb24pCmNvcmVfMSAgICB8IDIwMjItMDktMDUgMTk6MDg6MTUuOTM3IERFQlVHIDEgLS0tIFsgICAgICAgICAgIG1haW5dIGlvLnZpbGV3YXJlLmNvcmUuQ29yZVNlcnZpY2VBcHBsaWNhdGlvbiAgOiBSdW5uaW5nIHdpdGggU3ByaW5nIEJvb3QgdjIuNy4xLCBTcHJpbmcgdjUuMy4yMQpjb3JlXzEgICAgfCAyMDIyLTA5LTA1IDE5OjA4OjE1LjkzOSAgSU5GTyAxIC0tLSBbICAgICAgICAgICBtYWluXSBpby52aWxld2FyZS5jb3JlLkNvcmVTZXJ2aWNlQXBwbGljYXRpb24gIDogVGhlIGZvbGxvd2luZyAxIHByb2ZpbGUgaXMgYWN0aXZlOiAiZG9ja2VyIgpldmVudF8xICAgfCAyMDIyLTA5LTA1IDE5OjA4OjE1Ljk2MCAgSU5GTyAxIC0tLSBbICAgICAgICAgICBtYWluXSBpLnYuZXZlbnQuRXZlbnRTZXJ2aWNlQXBwbGljYXRpb24gICAgICAgIDogU3RhcnRpbmcgRXZlbnRTZXJ2aWNlQXBwbGljYXRpb24gdXNpbmcgSmF2YSAxNy4wLjQuMSBvbiBiMGU4YjNlY2QwMDIgd2l0aCBQSUQgMSAoL2FwcGxpY2F0aW9uL0JPT1QtSU5GL2NsYXNzZXMgc3RhcnRlZCBieSByb290IGluIC9hcHBsaWNhdGlvbikKZXZlbnRfMSAgIHwgMjAyMi0wOS0wNSAxOTowODoxNS45ODcgREVCVUcgMSAtLS0gWyAgICAgICAgICAgbWFpbl0gaS52LmV2ZW50LkV2ZW50U2VydmljZUFwcGxpY2F0aW9uICAgICAgICA6IFJ1bm5pbmcgd2l0aCBTcHJpbmcgQm9vdCB2Mi43LjEsIFNwcmluZyB2NS4zLjIxCmV2ZW50XzEgICB8IDIwMjItMDktMDUgMTk6MDg6MTUuOTg4ICBJTkZPIDEgLS0tIFsgICAgICAgICAgIG1haW5dIGkudi5ldmVudC5FdmVudFNlcnZpY2VBcHBsaWNhdGlvbiAgICAgICAgOiBUaGUgZm9sbG93aW5nIDEgcHJvZmlsZSBpcyBhY3RpdmU6ICJkb2NrZXIiCmVuZ2luZV8xICB8IDIwMjItMDktMDUgMTk6MDg6MjMuMTkzICBJTkZPIDEgLS0tIFsgICAgICAgICAgIG1haW5dIG8ucy5iLncuZW1iZWRkZWQudG9tY2F0LlRvbWNhdFdlYlNlcnZlciAgOiBUb21jYXQgaW5pdGlhbGl6ZWQgd2l0aCBwb3J0KHMpOiA4MDgwIChodHRwKQplbmdpbmVfMSAgfCAyMDIyLTA5LTA1IDE5OjA4OjIzLjIzMyAgSU5GTyAxIC0tLSBbICAgICAgICAgICBtYWluXSBvLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkU2VydmljZSAgIDogU3RhcnRpbmcgc2VydmljZSBbVG9tY2F0XQplbmdpbmVfMSAgfCAyMDIyLTA5LTA1IDE5OjA4OjIzLjIzNSAgSU5GTyAxIC0tLSBbICAgICAgICAgICBtYWluXSBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRFbmdpbmUgIDogU3RhcnRpbmcgU2VydmxldCBlbmdpbmU6IFtBcGFjaGUgVG9tY2F0LzkuMC42NF0Kc3RhdF8xICAgIHwgMjAyMi0wOS0wNSAxOTowODoyMy40MDcgIElORk8gMSAtLS0gWyAgICAgICAgICAgbWFpbl0gby5zLmIudy5lbWJlZGRlZC50b21jYXQuVG9tY2F0V2ViU2VydmVyICA6IFRvbWNhdCBpbml0aWFsaXplZCB3aXRoIHBvcnQocyk6IDgwODAgKGh0dHApCi4KLi4KLi4uCi4uLi4gZXRjCmBgYAoKQXQgdGhpcyBwb2ludCBmb3IgYSBxdWljayB2ZXJpZmljYXRpb24gc2VlIFtTbW9rZSBUZXN0XSgjc21va2UtdGVzdC1zZXJ2aWNlcykKCiMjIEFyY2hpdGVjdHVyZQoKRnVsbCBhcmNoaXRlY3R1cmUgZG9jdW1lbnRhdGlvbiBwcm92aWRlZCBpbiB0aGUgVmlsZXdhcmUgW1dpa2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNvbmxhbTYwNC92aWxld2FyZS93aWtpKSwgaW4gcHJvZ3Jlc3MKCi0gWyBdIFtCdXNpbmVzcyBBcmNoaXRlY3R1cmUgJiBQcm9kdWN0IFNlcnZpY2VzXShodHRwczovL2dpdGh1Yi5jb20vamFzb25sYW02MDQvdmlsZXdhcmUuaW8vd2lraS9CdXNpbmVzcy1BcmNoaXRlY3R1cmUtLSYtUHJvZHVjdC1TZXJ2aWNlcykKLSBbIF0gW1N5c3RlbSBBcHBsaWNhdGlvbiBBcmNoaXRlY3R1cmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNvbmxhbTYwNC92aWxld2FyZS5pby93aWtpL1N5c3RlbS1BcHBsaWNhdGlvbi1BcmNoaXRlY3R1cmUpCi0gWyBdIFtJbmZyYXN0cnVjdHVyZSBBcmNoaXRlY3R1cmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNvbmxhbTYwNC92aWxld2FyZS5pby93aWtpL0luZnJhc3RydWN0dXJlLUFyY2hpdGVjdHVyZSkKCgojIyBEZXBsb3ltZW50CgpXaGF0IGlzIGluY2x1ZGVkIGluIHRoaXMgcHJvamVjdCBpcyB0aGUgYWJpbGl0eSB0byBkZXBsb3kgdG8gW0FXU10oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS8pIHVzaW5nIFtDREtdKGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vY2RrLyksIGluY2x1ZGluZyB0aGUgb3B0aW9ucyB0byBlYXNpbHkgZGVwbG95IHRvIG11bHRpcGxlIGVudmlyb25tZW50czoKCi0gUHJvZHVjdGlvbgotIFN0YWdpbmcKLSBRQSAKLSBBZGhvYyBlbXBoZXJtYWwgZW52aXJvbm1lbnRzCgpGdWxsIGRlcGxveW1lbnQgaW5mb3JtYXRpb24gcHJvdmlkZWQgaW4gdGhlIFtJbmZyYXN0cnVjdHVyZSBBcmNoaXRlY3R1cmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNvbmxhbTYwNC92aWxld2FyZS5pby93aWtpL0luZnJhc3RydWN0dXJlLUFyY2hpdGVjdHVyZSkgc2VjdGlvbiwgaW4gcHJvZ3Jlc3MuCgojIFRlc3RpbmcKCiMjIFVuaXQgVGVzdHMKClRyaXZpYWwgdW5pdCB0ZXN0cyBhdmFpbGFibGUgd2l0aCB0aGUgaW50ZW50IHRvIHByb3ZpZGUgYm9pbGVycGxhdGUgcGF0dGVybiB0byBmb2xsb3cgdW5kZXIgZWFjaCBvZiB0aGUgc2VydmljZXMKCmBgYAogIHwgICAgICAgICAgfC0vW04tc2VydmljZV0KICB8ICAgICAgICAgIHwgICAgIHwKICB8ICAgICAgICAgIHwgICAgIHwtL3NyYwogIHwgICAgICAgICAgfCAgICAgfCAgIHwtL21haW4KICB8ICAgICAgICAgIHwgICAgIHwgICB8ICAgfC0vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbAogIHwgICAgICAgICAgfCAgICAgfCAgIHwKICB8ICAgICAgICAgIHwgICAgIHwgICB8LS90ZXN0CmBgYApUYWtlIG5vdGUgdGhlIGVuZ2luZS1zZXJ2aWNlLCB0aGUgZWRnZSBzZXJ2aWNlIHRoYXQgbW9kZWxzIGFmdGVyIHRoZSBNaWNyb3NlcnZpY2UgQWdncmVnYXRvciBQYXR0ZXJuLCBoYXMgZGVwZW5kaWNpZXMgb24gb3RoZXIgc2VydmljZXMgdG8gYXZvaWQgYSBjb3VwbGluZyBhbmQgdG8gb25seSB0ZXN0IGJlaGF2aW91cnMgb2YgdGhhdCBzZXJ2aWNlIE1vY2tpdG8gaXMgdXNlZCBmb3IgTW9jayBPYmplY3RzLgoKIyMgU21va2UgVGVzdCBTZXJ2aWNlcwoKQXNzdW1pbmcgeW91IHRoZSBkb2NrZXIgY29udGFpbmVycyBydW5uaW5nIG9yIGFyZSBydW5uaW5nIHRoZSBzZXJ2aWNlcyBpbmRpdmlkdWFsIG9uIHRoZSA3eHh4IHBvcnRzLgoKIyMjIFdoZW4gdXNpbmcgRG9ja2VyCgppbiB+L3ZpbGV3YXJlL3Rlc3QsIHJ1biB0aGUgZm9sbG93aW5nOgoKYGBgCi4vdGVzdC5iYXNoCmBgYAoKQSBzdWNjZXNzZnVsIG91dHB1dDoKCmBgYApIT1NUPWxvY2FsaG9zdApQT1JUPTgwODAKV2FpdCBmb3I6IGN1cmwgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N0dWRpb3MuLi4gRE9ORSwgY29udGludWVzLi4uCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBTdHVkaW9zIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqClRlc3QgT0sgKEhUVFAgQ29kZTogMjAwKQpUZXN0IE9LIChhY3R1YWwgdmFsdWU6IDMpClRlc3QgT0sgKEhUVFAgQ29kZTogMjAwKQpUZXN0IE9LIChhY3R1YWwgdmFsdWU6ICJWaWxld2FyZSIpClRlc3QgT0sgKEhUVFAgQ29kZTogNDA0LCB7InN0YXR1cyI6ImZhaWx1cmUiLCJtZXNzYWdlIjoiTm8gc3R1ZGlvIGZvdW5kIGZvciBzdHVkaW9JZDogOTkiLCJjb2RlIjo0MDQsImRhdGEiOm51bGx9KQpUZXN0IE9LIChhY3R1YWwgdmFsdWU6IE5vIHN0dWRpbyBmb3VuZCBmb3Igc3R1ZGlvSWQ6IDk5KQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogRXZlbnQgdGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUZXN0IE9LIChIVFRQIENvZGU6IDIwMCkKVGVzdCBPSyAoYWN0dWFsIHZhbHVlOiA0MikKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqIFN0YXQgdGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGVzdCBPSyAoSFRUUCBDb2RlOiAyMDApClRlc3QgT0sgKGFjdHVhbCB2YWx1ZTogNjY2KQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogU3dhZ2dlci9PcGVuQVBJIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUZXN0IE9LIChIVFRQIENvZGU6IDMwMiwgKQpUZXN0IE9LIChIVFRQIENvZGU6IDIwMCkKVGVzdCBPSyAoSFRUUCBDb2RlOiAyMDApClRlc3QgT0sgKGFjdHVhbCB2YWx1ZTogMy4wLjEpClRlc3QgT0sgKEhUVFAgQ29kZTogMjAwKQpgYGAKCiMjIyBXaGVuIG5vdCB1c2luZyBEb2NrZXIKClRoaXMgaXMgdGhlIHNhbWUgYXMgcnVubmluZyBhZ2FpbnN0IERvY2tlciBjb250YWluZXIgZXhjZXB0IHRoZSBzZXJ2aWNlcyBhcmUgbm90IGhpZGRlbiBiZWhpbmQgdGhlIGVkZ2Ugc2VydmljZSAoZW5naW5lIHNlcnZpY2UpIGFuZCAKYXJlIGV4cG9zZSBpbmRpdmlkdWFsbHkgb24gc2VwZXJhdGUgcG9ydHMuICAKCmBgYAogSE9TVD1sb2NhbGhvc3QgUE9SVD03MDAwIC4vdGVzdC5iYXNoCmBgYAoKQ3VycmVudGx5LCB0aGUgcG9ydHMgYXJlIHNldCB0byA3eHh4ICg3MDAwcykgc2VlICovZW5naW5lLXNlcnZpY2Uvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbCoKCmBgYAouLi4KLi4uCmFwcDoKICBjb3JlLXNlcnZpY2U6CiAgICBob3N0OiBsb2NhbGhvc3QKICAgIHBvcnQ6IDcwMDEKICBldmVudC1zZXJ2aWNlOgogICAgaG9zdDogbG9jYWxob3N0CiAgICBwb3J0OiA3MDAyCiAgc3RhdC1zZXJ2aWNlOgogICAgaG9zdDogbG9jYWxob3N0CiAgICBwb3J0OiA3MDAzCi4uLgouLi4KYGBgCgpTcHJpbmcgUHJvZmlsZSBhY3RpdmF0ZWQgd2l0aCBEb2NrZXIgc2V0cyBldmVyeXRoaW5nIHRvIHBvcnQgODA4MApgYGAKc3ByaW5nLmNvbmZpZy5hY3RpdmF0ZS5vbi1wcm9maWxlOiBkb2NrZXIKCnNlcnZlci5wb3J0OiA4MDgwCgphcHA6CiAgY29yZS1zZXJ2aWNlOgogICAgaG9zdDogY29yZQogICAgcG9ydDogODA4MAogIGV2ZW50LXNlcnZpY2U6CiAgICBob3N0OiBldmVudAogICAgcG9ydDogODA4MAogIHN0YXQtc2VydmljZToKICAgIGhvc3Q6IHN0YXQKICAgIHBvcnQ6IDgwODAKYGBgCgojIEFQSSBEb2N1bWVudGF0aW9uIC8gT3BlbiBBUEkKCkVhY2ggb2YgdGhlIHNlcnZpY2VzIGFyZSBwcmVwYXJlZCBzZXJ2ZSBPcGVuQVBJIGRvY3VtZW50YXRpb24sIGN1cnJlbnRseSB0aGUgRW5naW5lIHNlcnZpY2UgaXMgdmlld2FibGUgYm90aCBydW5uaW5nIHZpYSBEb2NrZXIgb3IgYXMgaW5kaXZpZHVhbCBzZXJ2aWNlOgoKLSBJbmRpdmlkdWFsIFNlcnZpY2U6IGh0dHA6Ly9sb2NhbGhvc3Q6NzAwMC9vcGVuYXBpL3N3YWdnZXItdWkvaW5kZXguaHRtbCAKLSBEb2NrZXI6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9vcGVuYXBpL3N3YWdnZXItdWkvaW5kZXguaHRtbAoKRXhhbXBsZSBvZiB3aGF0IGl0IGxvb2tzIGxpa2U6CgohW2ltYWdlXShodHRwczovL2dpdGh1Yi5jb20vamFzb25sYW02MDQvdmlsZXdhcmUvYmxvYi9tYWluL2RvYy9pbWFnZXMvdmlsZXdhcmUtb3Blbi1hcGktZW5naW5lLXNlcnZpY2Utc2NyZWVuc2hvdC5wbmcpCgpBcyBmb3IgdGhlIGludGVybmFsIHNlcnZpY2UgdGhhdCBpbnRlbmRlZCB0byBiZSBzZXJ2ZWQgYmVoaW5kIHRoZSBBZ2dyZWdhdG9yIHNlcnZpY2Ugb25lIGNhbiBjdXJyZW50bHkgb25seSB2aWV3IHRoZW0gd2hlbiB0aGUgc2VydmljZXMgYXJlIHJhbiBpbmRpdmlkdWFsbHkgb3V0c2lkZSBvZiBEb2NrZXI6CgotIEVuZ2luZSBTZXJ2aWNlIGh0dHA6Ly9sb2NhbGhvc3Q6NzAwMC9vcGVuYXBpL3N3YWdnZXItdWkvaW5kZXguaHRtbCAKLSBDb3JlIFNlcnZpY2UgaHR0cDovL2xvY2FsaG9zdDo3MDAxL29wZW5hcGkvc3dhZ2dlci11aS9pbmRleC5odG1sIAotIEV2ZW50IFNlcnZpY2UgaHR0cDovL2xvY2FsaG9zdDo3MDAyL29wZW5hcGkvc3dhZ2dlci11aS9pbmRleC5odG1sIAotIFN0YXQgU2VydmljZSBodHRwOi8vbG9jYWxob3N0OjcwMDMvb3BlbmFwaS9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwgCgpGb3IgdGhlbSB0byBiZSBzZXJ2aWNlZCBpbiBhbGwgaW4gb25lIGxvY2F0aW9uIGFuZCB0byB1dGlsaXplZCB0aGUgZHJvcCBkb3duLCB5b3UnbGwgbmVlZCB0byBjb25maWd1cmUgc2VydmljZSBkaXNjb3Zlcnkgc3VjaCBhcyBFdXJla2EgYW5kIFNwcmluZyBDbG91ZC4gVGhpcyBtYXkgYmUgaW5jbHVkZWQgaW4gZnV0dXJlIHJlbGVhc2VzLgoKCgo= readmeEtag: '"fbff50fe644bc9cb434d1697bdbf7f23d0c8f819"' readmeLastModified: Wed, 07 Sep 2022 04:57:03 GMT repositoryId: 493484049 description: Cross Domain Supporting Game Services created: '2022-05-18T02:40:32Z' updated: '2024-03-08T23:56:48Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: jasonlam604 logo: https://avatars.githubusercontent.com/u/1707104?v=4 license: Apache-2.0 repoEtag: '"a6eb868bcb7ad35df481b9aaa53baab8691fdba17fa09416b1b2ff44e942e16f"' repoLastModified: Fri, 08 Mar 2024 23:56:48 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/douglanyabasa/universitystudentportal-springboot v3: true id: d689e1ad713dfc5dfe4eb9b74040e974 repositoryMetadata: base64Readme: >- IyBVbml2ZXJzaXR5U3R1ZGVudFBvcnRhbC1zcHJpbmdib290ClVuaXZlcnNpdHkgU3R1ZGVudHMgcG9ydGFsIGluIHNwcmluZ2Jvb3QuCgpvcGVuIHRoZSBtYXN0ZXIgYnJhbmNoIHRvIHZpZXcgdGhlIGNvZGUuCg== readmeEtag: '"840099264a8b3676652d2cf3a7c624ee9e071d2185bb665355b7dfe8553be6c7"' readmeLastModified: Tue, 19 Dec 2023 12:18:30 GMT repositoryId: 670556368 description: 'University Students portal implemented in springboot ' created: '2023-07-25T10:11:13Z' updated: '2024-03-17T09:08:59Z' language: null archived: false stars: 1 watchers: 1 forks: 0 owner: DouglaNyabasa logo: https://avatars.githubusercontent.com/u/99015779?v=4 repoEtag: '"466a4594b8d6acc979ccbf23496b15facecb53001e285db14435fba3b9f0646b"' repoLastModified: Sun, 17 Mar 2024 09:08:59 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/bzdgn/open-api-web-service-example v3: true id: 42b6a048ebc1b81b674d425e2f9e63b0 repositoryMetadata: base64Readme: >- VGhpcyBwcm9qZWN0IGlzIGEgZGVtb25zdHJhdGlvbiBvZiBPcGVuQVBJIFdlYiBTZXJ2aWNlIHdpdGggU3ByaW5nIEJvb3QuCgpUT0MKLS0tCi0gWzAgSW50cm9kdWN0aW9uXSgjMC1pbnRyb2R1Y3Rpb24pIDxici8+Ci0gWzEgU2V0dXBdKCMxLXNldHVwKSA8YnIvPgotIFsyIE9wZW5BUEkgU3BlY3NdKCMyLW9wZW5hcGktc3BlY3MpIDxici8+Ci0gWzMgT3BlbkFQSSBQbHVnaW5dKCMzLW9wZW5hcGktcGx1Z2luKSA8YnIvPgotIFs0IFRlc3Rpbmcgd2l0aCBQb3N0bWFuIENvbGxlY3Rpb25dKCM0LXRlc3Rpbmctd2l0aC1wb3N0bWFuLWNvbGxlY3Rpb24pPGJyLz4KCiAwIEludHJvZHVjdGlvbgotLS0tLS0tLS0tLS0tLS0KVGhpcyBwcm9qZWN0IGlzIGEgZGVtb25zdHJhdGlvbiBvZiBPcGVuQVBJIFdlYiBTZXJ2aWNlIHdpdGggU3ByaW5nIEJvb3QuCgpXaXRoIE9wZW5BUEksIHlvdSBjYW4gZGVmaW5lIHRoZSBtb2RlbHMgYW5kIHlvdXIgc2VydmljZSBzcGVjaWZpY2F0aW9ucyBpbiB5YW1sIGZvcm1hdCBhbmQgYnVpbGQgdGhlIHNrZWxldG9uIG9mIHlvdXIgd2ViIHNlcnZpY2UuCgpUaGVyZSBhcmUgZ29vZCBhbmQgYmFkIHBhcnRzIGFuZCBJJ20gZ29pbmcgdG8gbGlzdCBteSBwZXJzb25hbCBvcGluaW9uczsKClRoZSBnb29kIHBhcnRzIG9mIE9wZW5BUEkgYXJlOwoKLSBUaGUgYm9pbGVycGxhdGUgY29kZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZAotIFlvdSBjYW4gZGVmaW5lIHRoZSBtb2RlbHMgd2l0aGluIHRoZSB5YW1sIGZpbGVzIGFuZCB0aGV5IGFyZSBhdXRvLWdlbmVyYXRlZAotIFRoZSBlbmRwb2ludCBza2VsZXRvbiBpcyBhbHNvIGdlbmVyYXRlZC4gWW91IGNhbiBlaXRoZXIgdXNlIHRoZSBnZW5lcmF0ZWQgY29udHJvbGxlciBvciBvdmVycmlkZSBpdCB0byBjdXN0b21pemUgaXQuCgpUaGUgYmFkIHBhcnRzIG9mIE9wZW5BUEkgYXJlOwoKLSBZb3UgbmVlZCB0byBkaWcgYXJvdW5kIHRoZSBkb2N1bWVudGF0aW9uIGFuZCB0aGUgbmV0IGZvciB0aGUgdXNlIG9mIHBsdWdpbnMKLSBJdCBhZGRzIGNvbXBsZXhpdHkgd2hlbiB5b3UgYXJlIHVzaW5nIE9wZW5BUEkgd2l0aGluIGEgbXVsdGktbW9kdWxlIHByb2plY3QKLSBVc2luZyB0aGUgZ2VuZXJhdGVkIG1vZGVscyBpbiBhIGRpc3RpbmN0IHNoYXJlZCBwcm9qZWN0IGFuZCBpbmplY3RpbmcgdGhlIHJlc291cmNlcyBpcyBub3QgZWFzeQoKSW4gdGhpcyBwcm9qZWN0LCBJJ20gbm90IGdvaW5nIHRvIGRpdmUgaW50byB0aGVzZSB0b3BpY3MuIFRoaXMgcHJvamVjdCB3aWxsIGdpdmUgeW91IGEgc2ltcGxlIGV4YW1wbGUgb2YgT3BlbkFQSSB3ZWIgc2VydmljZS4KCgpbVE9DXSgjdG9jKQoKCiAxIFNldHVwCi0tLS0tLS0tCldlIHVzZSBPcGVuQVBJIHRvIGdlbmVyYXRlIG1vZGVscywgZ2VuZXJhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIHdlYiBzZXJ2aWNlIGFuZCBhbHNvIGhlbHBlciBjbGFzc2VzLiBTbyB0aGF0IHdpdGhpbiBvbmUgc2ltcGxlIHlhbWwgZmlsZSwgdGhlIG1vZGVsIGNsYXNzZXMgYW5kIGFsc28gdGhlIGFwaSB0ZW1wbGF0ZSBpcyBnZW5lcmF0ZWQgZm9yIHRoZSBjb250cm9sbGVyIG9mIHRoZSB3ZWIgc2VydmljZS4KClRoZXJlIGFyZSB0d28gZmlsZXMgdGhhdCBkb2VzIHRoZSBtYWdpYyBmb3IgdGhlIGF1dG8tZ2VuZXJhdGVkIGNvZGUvdGVtcGxhdGU7CgotIFRoZSBPcGVuQVBJIHNwZWMgZmlsZShzKSBpbiB5YW1sIGZvcm1hdCwgdGhhdCBkZWZpbmUocykgdGhlIHdlYiBzZXJ2aWNlIHNrZWxldG9uIGFuZCBzY2hlbWFzLiBUaGVzZSBmaWxlKHMpIHBsYWNlZCBpbiB0aGUgKipzcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaSoqIGZvbGRlci4KLSBUaGUgYnVpbGQgcGx1Z2luIHRoYXQgZ2VuZXJhdGVzIHRoZSBjb2RlIGJhc2VkIG9uIHRoZSBPcGVuQVBJIHlhbWwgZmlsZS4gVGhpcyBpcyBkZWZpbmVkIGluIHRoZSAqKnBvbSoqIGZpbGUuCgpJbiB0aGUgcG9tIGZpbGUsIGJ1aWxkL3BsdWdpbiBzZWN0aW9uIGhhcyByZWZlcmVuY2UgZm9yIHNwZWMgZmlsZSBhbmQgcGFja2FnZSBuYW1lcyBmb3IgbW9kZWwgYW5kIHNlcnZpY2UgcGFja2FnZXMuIFBsdWdpbiB1c2VzIHRoZSB5YW1sIHNwZWMgYW5kIGdlbmVyYXRlcyB0aGUgbW9kZWwvc2VydmljZSBjbGFzc2VzIHVuZGVyIHRoZSBkZWZpbmVkIHBhY2thZ2VzLgpUaGVuIHRoZXNlIGdlbmVyYXRlZCBmaWxlcyBhcmUgcGxhY2VkIGluIHRoZSB0YXJnZXQvZ2VuZXJhdGVkLXNvdXJjZXMvc3JjIGZvbGRlciBhcyBjYW4gYmUgc2VlbiBiZWxvdzsKCiFbZ2VuZXJhdGVkX2ZpbGVzXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYnpkZ24vb3Blbi1hcGktd2ViLXNlcnZpY2UtZXhhbXBsZS9tYWluL21pc2MvMDFfZ2VuZXJhdGVkX2ZpbGVzLlBORykKCkFmdGVyIGltcG9ydGluZyBpdCB0byBhbiBJREUgKEkgdXNlIGVjbGlwc2UpLCB5b3UgbmVlZCB0byBhZGQgdGhlIE9wZW5BUEkgZ2VuZXJhdGVkIGNvZGUgaW50byB0aGUgYnVpbGQgcGF0aC4KCjEuIFRoZSBmaWxlcyBuZWVkIHRvIGJlIGFkZGVkIHdpbGwgYmUgdW5kZXIgKip0YXJnZXQvZ2VuZXJhdGVkLXNvdXJjZXMvc3JjL21haW4vamF2YSoqCgohW3RhcmdldF9nZW5lcmF0ZWRfZmlsZXNdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iemRnbi9vcGVuLWFwaS13ZWItc2VydmljZS1leGFtcGxlL21haW4vbWlzYy8wMl90YXJnZXRfZ2VuZXJhdGVkX2ZpbGVzLlBORykKCjIuIFJpZ2h0IGNsaWNrIHRvIHRoaXMgZm9sZGVyIGFuZCBhZGQgaXQgdG8gdGhlIGJ1aWxkIHBhdGgKCiFbcmlnaHRfY2xpY2tfZ2VuZXJhdGVkX2ZpbGVzXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYnpkZ24vb3Blbi1hcGktd2ViLXNlcnZpY2UtZXhhbXBsZS9tYWluL21pc2MvMDNfYnVpbGRfcGF0aC5QTkcpCgozLiBTZWUgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHZpc2libGUgaW4gdGhlIHByb2plY3QKCiFbYWRkX2dlbmVyYXRlZF9maWxlc190b19idWlsZF9wYXRoXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYnpkZ24vb3Blbi1hcGktd2ViLXNlcnZpY2UtZXhhbXBsZS9tYWluL21pc2MvMDRfYWRkZWRfYnVpbGRfcGF0aC5QTkcpCgoKW1RPQ10oI3RvYykKCgogMiBPcGVuQVBJIFNwZWNzCi0tLS0tLS0tLS0tLS0tLS0KVGhlIHNwZWMgZmlsZSBkZWZpbmVzIHRoZSBlbmRwb2ludHMsIGFuZCB0aGUgc3RydWN0dXJlIG9mIHRoZSBtb2RlbCBjbGFzc2VzIHRob3NlIGFyZSB1c2VkIGluIGVuZHBvaW50cy4gV2UgaGF2ZSB0d28gZ2V0IG9wZXJhdGlvbnMgYW5kIG9uZSBwb3N0IG9wZXJhdGlvbi4gVGhlc2Ugb3BlcmF0aW9ucyB1c2VzIFBlcnNvbiBtb2RlbCBmb3IgcmVxdWVzdCBvciByZXNwb25zZSBhbmQgb25lIG9wZXJhdGlvbiByZXR1cm5zIGFuIGFycmF5IG9mIFBlcnNvbiBtb2RlbC4KCllvdSBjYW4gc2VlIHRoZSBmaWxlIGluIHByb2plY3Qgc291cmNlcyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2J6ZGduL29wZW4tYXBpLXdlYi1zZXJ2aWNlLWV4YW1wbGUvYmxvYi9tYWluL3NyYy9tYWluL3Jlc291cmNlcy9vcGVuYXBpL3BlcnNvbi1hcGkueWFtbCkuIFRoZSBjb250ZW50IG9mIHRoZSBmaWxlIGlzIGFzIGZvbGxvd3M7CgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4zCmluZm86CiAgdGl0bGU6IFBlcnNvbiBTZXJ2aWNlCiAgZGVzY3JpcHRpb246IFB1YmxpYyBzZXJ2aWNlIGZvciBxdWVyeWluZyB0aGUgcGVyc29ucwogIHZlcnNpb246IDEuMApzZXJ2ZXJzOgogIC0gZGVzY3JpcHRpb246IExvY2FsIGRldmVsb3BtZW50IGVudmlyb25tZW50CiAgICB1cmw6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC92MQogIC0gZGVzY3JpcHRpb246IEt1YmVybmV0ZXMgdGVzdCBlbnZpcm9ubWVudAogICAgdXJsOiBodHRwOi8vc29tZS1saW5rLWhlcmUuY29tL3YxCiAgLSBkZXNjcmlwdGlvbjogS3ViZXJuZXRlcyBhY2MgZW52aXJvbm1lbnQKICAgIHVybDogaHR0cDovL3NvbWUtbGluay1oZXJlLmNvbS92MQogIC0gZGVzY3JpcHRpb246IEt1YmVybmV0ZXMgcHJvZHVjdGlvbiBlbnZpcm9ubWVudAogICAgdXJsOiBodHRwOi8vc29tZS1saW5rLWhlcmUuY29tL3YxCgpwYXRoczoKICAvcGVyc29uL3tpZH06CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBnZXRQZXJzb24KICAgICAgdGFnczoKICAgICAgICAtIHBlcnNvbgogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogaWQKICAgICAgICAgIGluOiBwYXRoCiAgICAgICAgICBkZXNjcmlwdGlvbjogcGVyc29uIGlkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIGZvcm1hdDogaW50MzIKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBQZXJzb24gcmVzdWx0cwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUGVyc29uJwogICAgICAgIDQwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBub3QgYSB2YWxpZCBwZXJzb24KCiAgL3BlcnNvbjoKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGdldFBlcnNvbnMKICAgICAgdGFnczoKICAgICAgICAtIHBlcnNvbgogICAgICByZXNwb25zZXM6CiAgICAgICAgMjAwOgogICAgICAgICAgZGVzY3JpcHRpb246IFBlcnNvbiByZXN1bHRzCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXJzb25MaXN0JwogICAgICAgIDQwMDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBub3QgYSB2YWxpZCBwZXJzb24KCiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogYWRkUGVyc29uCiAgICAgIHRhZ3M6CiAgICAgICAgLSBwZXJzb24KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QZXJzb24nCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogWm9la3Jlc3VsdGF0ZW4KICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BlcnNvbicKICAgICAgICA0MDA6CiAgICAgICAgICBkZXNjcmlwdGlvbjogbm90IGEgdmFsaWQgcGVyc29uCgpjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBQZXJzb246CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiBpZCBvZiB0aGUgcGVyc29uCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBmb3JtYXQ6IGludDMyCiAgICAgICAgbmFtZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBuYW1lIG9mIHRoZSBwZXJzb24KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGFnZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBhZ2Ugb2YgdGhlIHBlcnNvbgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgZm9ybWF0OiBpbnQzMgogICAgUGVyc29uTGlzdDoKICAgICAgdHlwZTogYXJyYXkKICAgICAgaXRlbXM6CiAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1BlcnNvbicgCgpgYGAKClVuZGVyIHRoZSAqKnBhdGhzKiogc2VjdGlvbiwgdGhlIGVuZHBvaW50IGlzIGRlZmluZWQuIE9wZW5BUEkgcGx1Z2luIHdpbGwgZGVmaW5lIHRoZSBzZXJ2aWNlIGNsYXNzZXMgYmFzZWQgb24gdGhpcyBzZWN0aW9uLiBVbmRlciB0aGUgKipjb21wb25lbnRzKiogc2VjdGlvbiB0aGVyZSBpcyAqKnNjaGVtYXMqKiB3aGVyZSB0aGUgbW9kZWwgY2xhc3NlcyBhcmUgZGVmaW5lZC4gT3BlbkFQSSB3aWxsIGdlbmVyYXRlIHRoZSBtb2RlbCBjbGFzc2VzIGJhc2VkIG9uIHRoaXMgc2VjdGlvbi4KCkltcG9ydGFudCB0byBub3RpZnkgdGhhdCB0aGUgc2VydmljZSB1c2VzIHRoZXNlIGdlbmVyYXRlZCBtb2RlbHMuIElmIHlvdSB1c2UgbWF2ZW4gaW4gY29tbWFuZCBsaW5lLCB0aGUgZ2VuZXJhdG9yIHdpbGwgbm90aWZ5IHlvdSBpZiB0aGVyZSBhcmUgaW5jb25zaXN0ZW5jaWVzLgoKCltUT0NdKCN0b2MpCgoKIDMgT3BlbkFQSSBQbHVnaW4KLS0tLS0tLS0tLS0tLS0tLS0KT3BlbkFQSSBwbHVnaW4gZ2VuZXJhdGVzIHRoZSBjb2RlIGJhc2VkIG9uIHlhbWwgc3BlY3MuIEluIHRoZSBidWlsZCBbcGx1Z2luIHNlY3Rpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9iemRnbi9vcGVuLWFwaS13ZWItc2VydmljZS1leGFtcGxlL2Jsb2IvbWFpbi9wb20ueG1sKTsKCmBgYHhtbAo8YnVpbGQ+CiAgICA8cGx1Z2lucz4KICAgICAgICA8cGx1Z2luPgogICAgICAgICAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAgICAgICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luLnZlcnNpb259PC92ZXJzaW9uPgogICAgICAgICAgICA8ZXhlY3V0aW9ucz4KICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICAgICAgICAgICAgPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgogICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+Z2VuZXJhdGU8L2dvYWw+CiAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0U3BlYz4ke3Byb2plY3QuYmFzZWRpcn0vc3JjL21haW4vcmVzb3VyY2VzL29wZW5hcGkvcGVyc29uLWFwaS55YW1sPC9pbnB1dFNwZWM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnZW5lcmF0b3JOYW1lPnNwcmluZzwvZ2VuZXJhdG9yTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgPG91dHB1dD4ke3Byb2plY3QuYnVpbGQuZGlyZWN0b3J5fS9nZW5lcmF0ZWQtc291cmNlcy88L291dHB1dD4KICAgICAgICAgICAgICAgICAgICAgICAgPGdlbmVyYXRlTW9kZWxzPnRydWU8L2dlbmVyYXRlTW9kZWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8Z2VuZXJhdGVTdXBwb3J0aW5nRmlsZXM+dHJ1ZTwvZ2VuZXJhdGVTdXBwb3J0aW5nRmlsZXM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdXBwb3J0aW5nRmlsZXNUb0dlbmVyYXRlPkFwaVV0aWwuamF2YTwvc3VwcG9ydGluZ0ZpbGVzVG9HZW5lcmF0ZT4KICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGVsUGFja2FnZT5pby5naXRodWIuYnpkZ24ub3Blbi1hcGktd2ViLXNlcnZpY2UtZXhhbXBsZS5tb2RlbDwvbW9kZWxQYWNrYWdlPgogICAgICAgICAgICAgICAgICAgICAgICA8YXBpUGFja2FnZT5pby5naXRodWIuYnpkZ24ub3Blbi1hcGktd2ViLXNlcnZpY2UtZXhhbXBsZS5zZXJ2aWNlPC9hcGlQYWNrYWdlPgogICAgICAgICAgICAgICAgICAgICAgICA8c2tpcFZhbGlkYXRlU3BlYz50cnVlPC9za2lwVmFsaWRhdGVTcGVjPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlnT3B0aW9ucz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnRlcmZhY2VPbmx5PnRydWU8L2ludGVyZmFjZU9ubHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8amF2YTExPnRydWU8L2phdmExMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkYXRlTGlicmFyeT5qYXZhODwvZGF0ZUxpYnJhcnk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlbkFwaU51bGxhYmxlPmZhbHNlPC9vcGVuQXBpTnVsbGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZG9jdW1lbnRhdGlvblByb3ZpZGVyPm5vbmU8L2RvY3VtZW50YXRpb25Qcm92aWRlcj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhbm5vdGF0aW9uTGlicmFyeT5ub25lPC9hbm5vdGF0aW9uTGlicmFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWdPcHRpb25zPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlnSGVscD5mYWxzZTwvY29uZmlnSGVscD4KICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KICAgICAgICAgICAgPC9leGVjdXRpb25zPgogICAgICAgIDwvcGx1Z2luPgogICAgPC9wbHVnaW5zPgo8L2J1aWxkPgpgYGAKCklmIHlvdSBsb29rIGF0IHRoZSBjb25maWd1cmF0aW9uLCBhIGZldyBrZXlzIGFyZSBpbXBvcnRhbnQ7Cgp8IHZhcmlhYmxlIHwgZGVzY3JpcHRpb24gfAp8IC0tLS0tLS0tIHwgLS0tLS0tLS0tLS0gfAp8IGlucHV0U3BlYyB8IFRoaXMgaXMgd2hlcmUgeW91IHJlZmVyZW5jZSB5b3VyIEFwaSBzcGVjLCBpbiBvdXIgZXhhbXBsZSwgaXQgaXMgdGhlIHBlcnNvbi1hcGkueWFtbCBmaWxlIHwKfCBvdXRwdXQgfCBUaGlzIGlzIHRoZSBvdXRwdXQgZm9sZGVyIHdoZXJlIGFsbCB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgcGxhY2VkLiBVbmRlciB0aGUgcHJvamVjdCBidWlsZCBkaXJlY3RvcnksIHdoaWNoIGlzIHRhcmdldCwgaXQncyBwbGFjZWQgaW4gKipnZW5lcmF0ZWQtc291cmNlcyoqIGZvbGRlciB8CnwgZ2VuZXJhdGVNb2RlbHMgfCBUaGlzIGRldGVybWluZXMgaWYgdGhlIG1vZGVsIGNsYXNzZXMgYXJlIGdlbmVyYXRlZCwgc2V0IHRvICoqdHJ1ZSoqIHwKfCBnZW5lcmF0ZVN1cHBvcnRpbmdGaWxlcyB8IFRoaXMgaXMgdGhlIHV0aWxpdHkgZmlsZSB0aGF0IHBsdWdpbiBnZW5lcmF0ZXMsIHNldCB0byAqKnRydWUqKiB8Cnwgc3VwcG9ydGluZ0ZpbGVzVG9HZW5lcmF0ZSB8IFRoZSBuYW1lIG9mIHRoZSB1dGlsaXR5IGZpbGUsIGluIG91ciBleGFtcGxlICoqQXBpVXRpbC5qYXZhKiogfAp8IG1vZGVsUGFja2FnZSB8IFRoZSBwYWNrYWdlIHRoYXQgdGhlIG1vZGVsIGdlbmVyYXRlZCBmaWxlcyBwbGFjZWQgfAp8IGFwaVBhY2thZ2UgfCBUaGUgcGFja2FnZSB0aGF0IHRoZSBzZXJ2aWNlIGdlbmVyYXRlZCBmaWxlcyAgcGxhY2VkIHwKfCBza2lwVmFsaWRhdGVTcGVjIHwgRG9lcyB0aGUgdmFsaWRhdGlvbiBpbiB0aGUgZ2VuZXJhdGlvbi4gSXQncyBzZXQgdG8gKip0cnVlKiogaW4gdGhpcyBleGFtcGxlIGJ1dCBzb21ldGltZXMgdXNlZnVsIHRvIHNldCB0byAqKmZhbHNlKiogd2hlbiB1c2luZyBtdWx0aW1vZHVsZSBwcm9qZWN0cyB8CgoKW1RPQ10oI3RvYykKCgogNCBUZXN0aW5nIHdpdGggUG9zdG1hbiBDb2xsZWN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSSd2ZSBwbGFjZWQgYSBzaW1wbGUgcG9zdG1hbiBjb2xsZWN0aW9uIFt1bmRlciB0aGUgbWlzYyBmb2xkZXIsIGhlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9iemRnbi9vcGVuLWFwaS13ZWItc2VydmljZS1leGFtcGxlL2Jsb2IvbWFpbi9taXNjL09wZW5BUElXZWJTZXJ2aWNlRXhhbXBsZS5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbikuIFlvdSBuZWVkIHRvIGltcG9ydCB0aGlzIGNvbGxlY3Rpb24gaW4gUG9zdG1hbiB0byB0ZXN0IHRoZSBleGFtcGxlIHdlYiBzZXJ2aWNlLgoKIVtwb3N0bWFuX2NvbGxlY3Rpb25dKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iemRnbi9vcGVuLWFwaS13ZWItc2VydmljZS1leGFtcGxlL21haW4vbWlzYy8wNV9wb3N0bWFuX2NvbGxlY3Rpb24uUE5HKQoKSW5pdGlhbGx5IHRoZSAqKnBlcnNvbioqIHJlcG9zaXRvcnkgd2lsbCBiZSBlbXB0eS4gVGhlIGltcGxlbW50YXRpb24gaXMgYSBzaW1wbGUgc3R1YiBmb3IgdGVzdGluZywgdXNpbmcgYW4gQXJyYXlMaXN0IHRvIHN0b3JlIHRoZSBwb3N0ZWQgKipQZXJzb24qKiBvYmplY3RzLgoKWW91IGNhbiBwb3N0IHZpYSB0aGUgUG9zdG1hbjsKCiFbcG9zdG1hbl9jb2xsZWN0aW9uX3Bvc3RfMV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2J6ZGduL29wZW4tYXBpLXdlYi1zZXJ2aWNlLWV4YW1wbGUvbWFpbi9taXNjLzA2X3Bvc3RtYW5fcG9zdF8xLlBORykKIVtwb3N0bWFuX2NvbGxlY3Rpb25fcG9zdF8yXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYnpkZ24vb3Blbi1hcGktd2ViLXNlcnZpY2UtZXhhbXBsZS9tYWluL21pc2MvMDdfcG9zdG1hbl9wb3N0XzIuUE5HKQoKVGhlbiB5b3UgY2FuIGdldCAqKlBlcnNvbioqIGJ5IGlkOwoKIVtwb3N0bWFuX2NvbGxlY3Rpb25fZ2V0X2J5X2lkXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYnpkZ24vb3Blbi1hcGktd2ViLXNlcnZpY2UtZXhhbXBsZS9tYWluL21pc2MvMDhfcG9zdG1hbl9nZXRfYnlfaWQuUE5HKQoKT3IgeW91IGNhbiB0aGUgd2hvbGUgKipQZXJzb24qKiByZXBvc2l0b3J5OwoKIVtwb3N0bWFuX2NvbGxlY3Rpb25fZ2V0X2FsbF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2J6ZGduL29wZW4tYXBpLXdlYi1zZXJ2aWNlLWV4YW1wbGUvbWFpbi9taXNjLzA5X3Bvc3RtYW5fZ2V0X2FsbC5QTkcpCgoKW1RPQ10oI3RvYykKCg== readmeEtag: '"7ddc82d1146ca2e105d0dee5873078a19768fbed"' readmeLastModified: Sun, 29 Jan 2023 20:38:10 GMT repositoryId: 594733429 description: Demo Project for Open API Web Service with Spring Boot created: '2023-01-29T13:35:15Z' updated: '2024-04-18T22:57:20Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: bzdgn logo: https://avatars.githubusercontent.com/u/1220904?v=4 repoEtag: '"1ca27c64f35e52b1b76c5c50f76081d07a4878ff9e62f2ef42e6b21348abe63f"' repoLastModified: Thu, 18 Apr 2024 22:57:20 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/egomobile/node-swagger-proxy v3: true id: 29a02c96fca01f0c28e7b062d0452c93 repositoryMetadata: base64Readme: >- WyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BlZ29tb2JpbGUvc3dhZ2dlci1wcm94eS5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AZWdvbW9iaWxlL3N3YWdnZXItcHJveHkpClshW2xhc3QgYnVpbGRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3dvcmtmbG93L3N0YXR1cy9lZ29tb2JpbGUvbm9kZS1zd2FnZ2VyLXByb3h5L1B1Ymxpc2gpXShodHRwczovL2dpdGh1Yi5jb20vZWdvbW9iaWxlL25vZGUtc3dhZ2dlci1wcm94eS9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBUHVibGlzaCkKWyFbUFJzIFdlbGNvbWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUFJzLXdlbGNvbWUtYnJpZ2h0Z3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL2Vnb21vYmlsZS9ub2RlLXN3YWdnZXItcHJveHkvcHVsbHMpCgojIEBlZ29tb2JpbGUvc3dhZ2dlci1wcm94eQoKPiBFeHRlbnNpb24gZm9yIFtAZWdvbW9iaWxlL2h0dHAtc2VydmVyXShodHRwczovL2dpdGh1Yi5jb20vZWdvbW9iaWxlL25vZGUtaHR0cC1zZXJ2ZXIpLCB3aGljaCBjb25uZWN0cyB0byBtdWx0aXBseSBbU3dhZ2dlciAvIE9wZW5BUEldKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYWJvdXQvKSBpbnN0YW5jZXMgYW5kIG1lcmdlIHRoZWlyIGRvY3VtZW50cyB0byBvbmUuCgojIyBJbnN0YWxsCgpFeGVjdXRlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBmcm9tIHlvdXIgcHJvamVjdCBmb2xkZXIsIHdoZXJlIHlvdXIKYHBhY2thZ2UuanNvbmAgZmlsZSBpcyBzdG9yZWQ6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIC0tc2F2ZSBAZWdvbW9iaWxlL3N3YWdnZXItcHJveHkKYGBgCgojIyBVc2FnZQoKYGBgdHlwZXNjcmlwdAppbXBvcnQgY3JlYXRlU2VydmVyIGZyb20gIkBlZ29tb2JpbGUvaHR0cC1zZXJ2ZXIiOwppbXBvcnQgeyBzZXR1cFN3YWdnZXJQcm94eSB9IGZyb20gIkBlZ29tb2JpbGUvc3dhZ2dlci1wcm94eSI7Cgphc3luYyBmdW5jdGlvbiBtYWluKCkgewogIGNvbnN0IGFwcCA9IGNyZWF0ZVNlcnZlcigpOwoKICBzZXR1cFN3YWdnZXJQcm94eShhcHAsIHsKICAgIGJhc2VEb2N1bWVudDogewogICAgICBpbmZvOiB7CiAgICAgICAgdGl0bGU6ICJNeSBtZXJnZWQgQVBJIiwKICAgICAgICB2ZXJzaW9uOiAiMS4wLjAiLAogICAgICB9LAogICAgfSwKCiAgICBzb3VyY2VzOiBbCiAgICAgIHsKICAgICAgICB1cmw6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9tYWluL2V4YW1wbGVzL3YzLjAvbGluay1leGFtcGxlLmpzb24iLAogICAgICB9LAogICAgICB7CiAgICAgICAgdXJsOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL2NhbGxiYWNrLWV4YW1wbGUueWFtbCIsCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB1cmw6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9tYWluL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbCIsCiAgICAgIH0sCiAgICBdLAogIH0pOwoKICBhd2FpdCBhcHAubGlzdGVuKDgwODApOwoKICBjb25zdCBiYXNlVVJMID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHthcHAucG9ydH0vc3dhZ2dlcmA7CgogIGNvbnNvbGUubG9nKCJZb3Ugc2hvdWxkIG5vdyBiZSBhYmxlIHRvIGFjY2VzcyBkb2N1bWVudGF0aW9uIGF0OiIpOwogIGNvbnNvbGUubG9nKGAtICR7YmFzZVVSTH1gKTsKCiAgY29uc29sZS5sb2coKTsKCiAgY29uc29sZS5sb2coIllvdSBjYW4gZG93bmxvYWQgZG9jdW1lbnRhdGlvbiBhcyBmaWxlcyBmcm9tOiIpOwogIGNvbnNvbGUubG9nKGAtIEpTT046ICR7YmFzZVVSTH0vanNvbmApOwogIGNvbnNvbGUubG9nKGAtIFlBTUw6ICR7YmFzZVVSTH0veWFtbGApOwp9CgptYWluKCkuY2F0Y2goY29uc29sZS5lcnJvcik7CmBgYAoKIyMgRG9jdW1lbnRhdGlvbgoKVGhlIEFQSSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZApbaGVyZV0oaHR0cHM6Ly9lZ29tb2JpbGUuZ2l0aHViLmlvL25vZGUtc3dhZ2dlci1wcm94eS8pLgo= readmeEtag: '"3304865457103efae277209b06df8d1cd5ca11a9"' readmeLastModified: Fri, 19 Aug 2022 07:26:36 GMT repositoryId: 504600843 description: >- Extension for @egomobile/http-server, which connects to multiply Swagger / OpenAPI instances and merge their documents to one. created: '2022-06-17T16:21:27Z' updated: '2024-05-22T17:48:19Z' language: TypeScript archived: true stars: 1 watchers: 0 forks: 0 owner: egomobile logo: https://avatars.githubusercontent.com/u/83799725?v=4 license: LGPL-3.0 repoEtag: '"b041d0d2d3c6e098a01f23dd27ed77d364d599d878df05a3c22eb3fb8308fb70"' repoLastModified: Wed, 22 May 2024 17:48:19 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/approveapi/openapi-spec v3: true repositoryMetadata: base64Readme: >- IyBBcHByb3ZlQVBJIGNvbmZvcm1zIHRvIE9wZW5BUEkKCltBcHByb3ZlQVBJXShodHRwczovL2FwcHJvdmVhcGkuY29tKSBpcyBjb21wYXRpYmxlIHdpdGggdGhlIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24uIAoKVXNpbmcgW29wZW5hcGktc3BlYy0zLjAueWFtbF0ob3BlbmFwaS1zcGVjLTMuMC55YW1sKSBpbiB0aGlzIHJlcG9zaXRvcnksIHlvdSBjYW4gZ2VuZXJhdGUgY2xpZW50IGxpYnJhcnkgYmluZGluZ3MgdG8gQXBwcm92ZUFQSSBmb3IgeW91ciBmYXZvcml0ZSBsYW5ndWFnZS4K readmeEtag: '"1b1a854d3f2e72265068c99998c030758fd7d768"' readmeLastModified: Mon, 11 Mar 2019 22:09:40 GMT repositoryId: 175090530 description: 'OpenAPI Spec 3.0 for ApproveAPI ' created: '2019-03-11T22:02:12Z' updated: '2019-03-18T03:28:14Z' language: null archived: false stars: 1 watchers: 4 forks: 0 owner: approveapi logo: https://avatars.githubusercontent.com/u/46987102?v=4 repoEtag: '"f5db86b896eca41a2694358466aa47f48fc38e3e98abeb741a70b566de874ef9"' repoLastModified: Mon, 18 Mar 2019 03:28:14 GMT foundInMaster: true category: - Code Generators - Parsers id: e75714c89bcf4c22e6f058364f834c12 - source: openapi3 tags repository: https://github.com/acme-software/typeswagger v3: true repositoryMetadata: base64Readme: >- VHlwZVN3YWdnZXIgLSBBIFN3YWdnZXIgLyBPcGVuQXBpIFNwZWMgRFNMIGZvciBTY2FsYQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpbIVtMaWNlbnNlOiBNSVRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKSBbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9hY21lLXNvZnR3YXJlL3R5cGVzd2FnZ2VyLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2FjbWUtc29mdHdhcmUvdHlwZXN3YWdnZXIpIFshW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlLzFhMmQwYzQ5M2JkOTQxNjk5NmE4NDM2ODcxYTE3YjAxKV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9hcHAvZnJuZS90eXBlc3dhZ2dlcj91dG1fc291cmNlPWdpdGh1Yi5jb20mYW1wO3V0bV9tZWRpdW09cmVmZXJyYWwmYW1wO3V0bV9jb250ZW50PWFjbWUtc29mdHdhcmUvdHlwZXN3YWdnZXImYW1wO3V0bV9jYW1wYWlnbj1CYWRnZV9HcmFkZSkKCioqVHlwZVN3YWdnZXIgcHJvdmlkZXMgYSB0eXBlc2FmZSBTY2FsYSBEU0wgdG8gYnVpbGQgT3BlbkFwaSAoU3dhZ2dlcikgU3BlY2lmaWNhdGlvbnMuIEl0IGNhbiBiZSB1c2VkIHdpdGhpbiBhbnkgU2NhbGEgCnByb2plY3QgdG8gZ2VuZXJhdGUgSFRUUCBBUEkgZG9jdW1lbnRhdGlvbnMuKioKCiMjIEV4YW1wbGUKClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBkZWZpbmVzIGEgc2ltcGxlIGFwaSB3aXRoIHR3byBlbmRwb2ludHMgKGBHRVRgIGFuZCBgREVMRVRFYCkgb24gb25lIHBhdGggKGAvdXNlci97aWR9YCkuIFRoZSAKZXhhbXBsZSBjb250YWlucyBtYW5kYXRvcnkgaW5mb3JtYXRpb24sIGFuZCBhbHNvIHNvbWUsIGJ1dCBub3QgYWxsIG9wdGlvbmFsIGZpZWxkcy4gRm9yIGJldHRlciByZWFkYWJpbGl0eSwgb3B0aW9uYWwgCmZpZWxkcyBhcmUgY2FsbGQgYnkgdmFsdWUuCgpgYGBzY2FsYQppbXBvcnQgY2guYWNtZXNvZnR3YXJlLnR5cGVzd2FnZ2VyLnYzLk9wZW5BcGkKaW1wb3J0IGNoLmFjbWVzb2Z0d2FyZS50eXBlc3dhZ2dlci52My5PcGVuQXBpLl8KaW1wb3J0IGNoLmFjbWVzb2Z0d2FyZS50eXBlc3dhZ2dlci52My5JbXBsaWNpdHMuXwoKT3BlbkFwaS5jcmVhdGUoIkFwaURvYyIsICIxLjAuMCIpLgogIC8vIGFkZCBnbG9iYWwgaW5mb3JtYXRpb24KICB3aXRoSW5mbyhsaWNlbnNlID0gIk1JVCIsIGxpY2Vuc2VVcmwgPSAiaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQiKS4KICAvLyBhZGQgYSB0YWcKICB3aXRoVGFnKCJ0ZXN0dGFnIiwgIkEgdGFnIGRlc2NyaXB0aW9uIiwgZXh0ZXJuYWxEb2NzID0gZG9jKCJodHRwOi8vbGluay50by5kb2MiKSkuCiAgLy8gZGVmaW5lIGFuIGFwaSBwYXRoCiAgcGF0aCgiL3VzZXIve2lkfSIsIHN1bW1hcnkgPSAiUGF0aCBzdW1tYXJ5IikgewogICAgLy8gaHR0cCBHRVQgb3BlcmF0aW9uICBvbiB0aGUgcGF0aAogICAgKEdFVCA+PiBvcCgiQSBzdW1tYXJ5IiwgIkdFVCBvcGVyYXRpb24gZm9yIHRoaXMgcm91dGUiKS4KICAgICAgd2l0aFBhcmFtZXRlcigiaWQiLCBQQVRILCBTY2hlbWEuaW50LCBkZXNjcmlwdGlvbiA9ICJUaGUgaWQuLi4iLCByZXF1aXJlZCA9IHRydWUpLgogICAgICB3aXRoUGFyYW1ldGVyKCJjb21tZW50IiwgUVVFUlksIFNjaGVtYS5zdHJpbmcsIGRlc2NyaXB0aW9uID0gIlNvbWUgZGVwcmVjYXRlZCBjb21tZW50IiwgCiAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IHRydWUpLgogICAgICB3aXRoVGFnKCJ0ZXN0dGFnIikpIH4KICAgIC8vIGh0dHAgREVMRVRFIG9wZXJhdGlvbiBvbiB0aGUgcGF0aAogICAgKERFTEVURSA+PiBvcCgiRGVsZXRlIG9wZXJhdGlvbiIpLgogICAgICB3aXRoUGFyYW1ldGVyKCJpZCIsIFBBVEgsIFNjaGVtYS5pbnQsIGRlc2NyaXB0aW9uID0gIlRoZSBpZC4uLiIsIHJlcXVpcmVkID0gdHJ1ZSkpCiAgfS4KICAvLyBhZGQgZW5kcG9pbnQgc2VydmVyKHMpCiAgd2l0aFNlcnZlcigiaHR0cDovL2xvY2FsaG9zdDo5MDAwL2FwaSIpLgogIHdpdGhTZXJ2ZXIoImh0dHBzOi8vcHJvZHVjdGlvbi50bGQvYXBpIiwgU29tZSgiUHJvZHVjdGlvbiBTZXJ2ZXIiKSkuCiAgLy8gYnVpbGQganNvbiBzdHJpbmcKICB0b0pzb24oKQpgYGAKCiMjIFVzYWdlCgpJbnN0YWxsIHRoZSBJdnkgZGVwZW5lbmN5IHZpYSBTQlQ6CgpgYGBzY2FsYQoiY2guYWNtZXNvZnR3YXJlIiAlJSAidHlwZXN3YWdnZXIiICUgInt2ZXJzaW9ufSIKYGBgCgpBZGQgaW1wb3J0czoKCmBgYHNjYWxhCmltcG9ydCBjaC5hY21lc29mdHdhcmUudHlwZXN3YWdnZXIudjMuT3BlbkFwaQppbXBvcnQgY2guYWNtZXNvZnR3YXJlLnR5cGVzd2FnZ2VyLnYzLk9wZW5BcGkuXwoKLy8gc3ludGFjdGljIHN1Z2FyIGZvciBjb252ZW5pZW50IERTTCwgYnV0IG9wdGlvbmFsCmltcG9ydCBjaC5hY21lc29mdHdhcmUudHlwZXN3YWdnZXIudjMuSW1wbGljaXRzLl8gCmBgYAoKIyMjIEluZm8KCkFkZCBnbG9iYWwgaW5mb3JtYXRpb24gdXNpbmcgdGhlIGB3aXRoSW5mb2AgZnVuY3Rpb24uIEFsbCBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbC4gSWYgbm90IHVzaW5nIHRoZSBpbXBsaWNpdHMsIAp1c2UgYFNvbWUoInN0ciIpYCBhcyBwYXJhbWV0ZXIgdmFsdWU6CgpgYGBzY2FsYQppbXBvcnQgY2guYWNtZXNvZnR3YXJlLnR5cGVzd2FnZ2VyLnYzLk9wZW5BcGkKaW1wb3J0IGNoLmFjbWVzb2Z0d2FyZS50eXBlc3dhZ2dlci52My5PcGVuQXBpLl8KaW1wb3J0IGNoLmFjbWVzb2Z0d2FyZS50eXBlc3dhZ2dlci52My5JbXBsaWNpdHMuXwoKT3BlbkFwaS5jcmVhdGUoIkFwaURvYyIsICIxLjAuMCIsIGRlc2NyaXB0aW9uID0gIkFQSSBEb2MgYnVpbHQgd2l0aCBUeXBlU3dhZ2dlciIsIHRlcm1zT2ZTZXJ2aWNlID0gIi90b3MiKS4KICB3aXRoSW5mbyhsaWNlbnNlID0gIk1JVCIsIGxpY2Vuc2VVcmwgPSAiaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQiLCAKICAgICAgICAgICBjb250YWN0TmFtZSA9ICJKb2huIERvZSIsIGNvbnRhY3RFbWFpbCA9ICJpbmZvQHNlcnZlci50bGQiLCBjb250YWN0VXJsID0gImh0dHBzOi8vd2VicGFnZS50bGQiKQpgYGAKCiMjIEZlYXR1cmVzCgoqIENvbnZlbmllbnQsIHR5cGVzYWZlIERTTCB0byBkZWZpbmUgT3BlbkFwaSB2MyBzcGVjaWZpY2F0aW9ucwoqIEludGVncmF0ZWQgSlNPTiByZW5kZXJpbmcKKiBJbnRlZ3JhdGVkIFlBTUwgcmVuZGVyaW5nIChUT0RPKQoqIEphdmEgQVBJIChUT0RPKQoqIEludGVncmF0aW9uIHdpdGggY29tbW9uIEhUVFAtRnJhbWV3b3JrcyAoVE9ETykKCiMjIENvbnRyaWJ1dGlvbnMKClBsZWFzZSB1c2UgdGhlIEdpdEh1YiBpc3N1ZSB0cmFja2luZyBhbmQgUHVsbFJlcXVlc3RzLiBBbnkgaGVscCBpcyB2ZXJ5IHdlbGNvbWUuCgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgW0xJQ0VOU0VdKC4vTElDRU5TRSkgZm9yIG1vcmUgaW5mb3JtYXRpb24u readmeEtag: '"121f2535582736884d12541bef0198f1145d9ce6"' readmeLastModified: Mon, 25 Jun 2018 11:26:05 GMT repositoryId: 138474648 description: A Swagger / OpenApi Specification DSL for Scala created: '2018-06-24T11:00:44Z' updated: '2018-06-25T11:54:52Z' language: Scala archived: false stars: 1 watchers: 2 forks: 0 owner: acme-software logo: https://avatars.githubusercontent.com/u/19473705?v=4 license: MIT repoEtag: '"1df6b572e510e45d51a1dc500d891248273aaef1691587892b1ebbb61f428295"' repoLastModified: Mon, 25 Jun 2018 11:54:52 GMT foundInMaster: true category: Parsers id: f9bdc713a1ff13ba55fa7ea37d38ab44 - source: openapi3 tags repository: https://github.com/svilgelm/oas3-server v3: true repositoryMetadata: base64Readme: >- IyBvYXMzLXNlcnZlcgpbIVtQcm9qZWN0IFN0YXR1czogV0lQXShodHRwczovL3d3dy5yZXBvc3RhdHVzLm9yZy9iYWRnZXMvbGF0ZXN0L3dpcC5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vU1ZpbGdlbG0vb2FzMy1zZXJ2ZXIpClshW1Rlc3RzIHN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL1NWaWxnZWxtL29hczMtc2VydmVyL3dvcmtmbG93cy9UZXN0cy9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vU1ZpbGdlbG0vb2FzMy1zZXJ2ZXIvYWN0aW9ucz9xdWVyeT1icmFuY2glM0FtYXN0ZXIrZXZlbnQlM0FwdXNoKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1TVmlsZ2VsbV9vYXMzLXNlcnZlciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1TVmlsZ2VsbV9vYXMzLXNlcnZlcikKCk9wZW5BUEkgMyBXZWIgU2VydmVyCg== readmeEtag: '"6aaa787397d0a88089ab74dc6d5f80a82e3e4c72"' readmeLastModified: Mon, 23 Dec 2019 16:02:37 GMT repositoryId: 222094495 description: OpenAPI 3 Server created: '2019-11-16T12:15:06Z' updated: '2019-12-23T16:02:41Z' language: Go archived: false stars: 1 watchers: 2 forks: 1 owner: SVilgelm logo: https://avatars.githubusercontent.com/u/523825?v=4 license: MIT repoEtag: '"a07285e8248e93f6cf0b5cb0858355dd6ca7bc56f2e5a2f361760b10db8ce46c"' repoLastModified: Mon, 23 Dec 2019 16:02:41 GMT foundInMaster: true category: Server id: 23e7038efa6a7dcdc3fdaa7d1cac63a4 - source: openapi3 tags repository: https://github.com/philenius/dockerized-dummy-web-services v3: true repositoryMetadata: base64Readme: >- IyBEdW1teSBXZWIgU2VydmljZXMKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBkdW1teSB3ZWIgc2VydmljZXMgd2hpY2ggYXJlIGNvbnRhaW5lcml6ZWQgKERvY2tlcikgYW5kIHJlYWR5IHRvIGJlIGRlcGxveWVkIG9uIEt1YmVybmV0ZXMgb3IgT3BlblNoaWZ0IC8gT0tELgoKIyMgR29sYW5nClRoZSBkaXJlY3RvcnkgYGdvbGFuZy1kdW1teS13ZWItc2VydmljZS9gIGNvbnRhaW5zIGEgZHVtbXkgd2ViIHNlcnZpY2UgaW1wbGVtZW50ZWQgaW4gR29sYW5nLgpUaGlzIHdlYiBzZXJ2aWNlIGxpc3RlbnMgcGVyIGRlZmF1bHQgb24gcG9ydCA4MDgxLiBUaGUgcG9ydCBjYW4gYmUgY29uZmlndXJlZCB0aHJvdWdoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgU0VSVkVSX1BPUlRgLiBUaGUgSFRUUCByZXNwb25zZSBvZiB0aGlzIGR1bW15IGFwcCBjb250YWlucyB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGBNWV9FTlZfVkFSYC4KCioqSFRUUCBFbmRwb2ludHM6KioKCiogYEdFVCAvYAoqIGBHRVQgL2hlYWx0aGAKKiBgR0VUIC9zaHV0ZG93bmAKCioqRG9ja2VyIGltYWdlOioqCmBwaGlsZW5pdXMvZ29sYW5nLWR1bW15LXdlYi1zZXJ2aWNlYAoKIyMgSmF2YSAvIFNwcmluZyBCb290CgpUaGUgZGlyZWN0b3J5IGBqYXZhLXNwcmluZy1ib290LWR1bW15LXdlYi1zZXJ2aWNlL2AgY29udGFpbnMgYSBkdW1teSBpbXBsZW1lbnRhdGlvbiBvZiBQZXRzdG9yZSBPcGVuQVBJIDMuMCBzcGVjIHVzaW5nIFNwcmluZyBCb290LiBUaGUgc2VydmVyIHN0dWIgd2FzIGdlbmVyYXRlZCBieSB0aGUgW3N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikgcHJvamVjdC4gVGhlIHVuZGVybHlpbmcgbGlicmFyeSBpbnRlZ3JhdGluZyBzd2FnZ2VyIHRvIFNwcmluZ0Jvb3QgaXMgW3NwcmluZ2ZveF0oaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZ2ZveC9zcHJpbmdmb3gpLgpUaGlzIHdlYiBzZXJ2aWNlIGxpc3RlbnMgcGVyIGRlZmF1bHQgb24gcG9ydCA4MDgwLiBUaGUgcG9ydCBjYW4gYmUgY29uZmlndXJlZCB0aHJvdWdoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgU0VSVkVSX1BPUlRgLgoKKipIVFRQIEVuZHBvaW50czoqKgoqIGBHRVQgL3YxL3N3YWdnZXItdWkuaHRtbGAKKiBgR0VUIC92MS9wZXRzYAoqIGBHRVQgL3YxL3BldHMve3BldElkfWAKKiBgUE9TVCAvdjEvcGV0c2AKKiBgR0VUIC9oZWFsdGhgCiogYEdFVCAvc2h1dGRvd25gClNlZSBTd2FnZ2VyIFVJIG9yIEFQSSBzcGVjIGZvciBmdXJ0aGVyIGRldGFpbHMuCgoqKkRvY2tlciBpbWFnZToqKgpgcGhpbGVuaXVzL3BldHN0b3JlLWR1bW15LXNwcmluZy1ib290YAoKIyMgTm9kZSAvIEV4cHJlc3NKUwoKVGhlIGRpcmVjdG9yeSBgbm9kZS1leHByZXNzanMtZHVtbXktd2ViLWFwcGAgY29udGFpbnMgYSBkdW1teSB3ZWIgYXBwIHRoYXQgcHJvdmlkZXMgYSB3ZWJzaXRlIHdpdGggbWVtZXMuIFRoZSBzZXJ2ZXIgd2FzIGdlbmVyYXRlZCB1c2luZyB0aGUgTlBNIHBhY2thZ2UgYGV4cHJlc3MtZ2VuZXJhdG9yYC4KVGhpcyB3ZWIgYXBwIGxpc3RlbnMgcGVyIGRlZmF1bHQgb24gcG9ydCAzMDAwLiBUaGUgcG9ydCBjYW4gYmUgY29uZmlndXJlZCB0aHJvdWdoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgU0VSVkVSX1BPUlRgLiBUaGlzIGFwcCBjYW4gZWl0aGVyIHNlcnZlIGNhdCBvciBkb2cgbWVtZXMuIFRoaXMgYmVoYXZpb3VyIGNhbiBiZSBjb25maWd1cmVkIHRocm91Z2ggc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYE1FTUVCT09LX1ZBUklBTlRgIHRvIHRoZSB2YWx1ZSBgZG9nc2AgcmVzcGVjdGl2ZWx5IGBjYXRzYC4KCioqSFRUUCBFbmRwb2ludHM6KioKKiBgR0VUIC9gCiogYEdFVCAvaGVhbHRoYAoqIGBHRVQgL3NodXRkb3duYAoKKipEb2NrZXIgaW1hZ2U6KioKYHBoaWxlbml1cy9tZW1lYm9vay1kdW1teS1ub2RlLWV4cHJlc3Nqc2AK readmeEtag: '"b20debe5b13b8a8086471490bb79615cff6835eb"' readmeLastModified: Tue, 17 Dec 2019 02:36:33 GMT repositoryId: 184478754 description: Dockerized dummy web services created: '2019-05-01T20:40:53Z' updated: '2023-03-28T09:44:07Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: philenius logo: https://avatars.githubusercontent.com/u/9049899?v=4 repoEtag: '"3e5f5dbf27f2a02aa4f251012f7afc15fb679f3addbe351b68fe2df88a8d7247"' repoLastModified: Tue, 28 Mar 2023 09:44:07 GMT foundInMaster: true category: - Server - Server Implementations id: a9c2f7e1f38d750810d3964ab3d26cf1 - source: openapi3 tags repository: https://github.com/iulian-stan/crud-nestjs-rest v3: true id: 7113451d8675753deedca4ebbcce2434 repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cDovL25lc3Rqcy5jb20vIiB0YXJnZXQ9ImJsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9uZXN0anMuY29tL2ltZy9sb2dvLXNtYWxsLnN2ZyIgd2lkdGg9IjEyMCIgYWx0PSJOZXN0IExvZ28iIC8+PC9hPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj5BIHByb2dyZXNzaXZlIDxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnIiB0YXJnZXQ9ImJsYW5rIj5Ob2RlLmpzPC9hPiBmcmFtZXdvcmsgZm9yIGJ1aWxkaW5nIGVmZmljaWVudCBhbmQgc2NhbGFibGUgc2VydmVyLXNpZGUgYXBwbGljYXRpb25zLjwvcD4KCiMjIERlc2NyaXB0aW9uCkNSVUQgYXBwbGljYXRpb24gdXNpbmcgTmVzdEpTIGZyYW1ld29yayBUeXBlT1JNIGFuZCBTd2FnZ2VyLgoKIyMgSW5zdGFsbGF0aW9uCkluc3RhbGwgb2YgdGhlIGRlcGVuZGVuY2llcyBmcm9tICpwYWNrYWdlLmpzb24qCmBgYGJhc2gKbnBtIGluc3RhbGwKYGBgCgojIyBVc2FnZQpTdGFydCB0aGUgYXBwbGljYXRpb24gYnkgcnVubmluZwpgYGBiYXNoCm5wbSBzdGFydApgYGAKTmF2aWdhdGUgdG8gdGhlIGZvbGxvd2luZyBVUkwgaW4geW91ciB3ZWIgYnJvd3NlciAtIFtodHRwOi8vMTI3LjAuMC4xOjQwMDAvYXBpL10oaHR0cDovLzEyNy4wLjAuMTo0MDAwL2FwaS8pLg== readmeEtag: '"7a01a34414bcf277922e242de18c7f69b556c47e"' readmeLastModified: Sun, 18 Dec 2022 00:04:53 GMT repositoryId: 242532299 description: Simple CRUD application implemented using NestJS framework created: '2020-02-23T14:33:05Z' updated: '2022-12-08T13:32:24Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: Iulian-Stan logo: https://avatars.githubusercontent.com/u/13657730?v=4 license: MIT repoEtag: '"ad3461ed36237b20a3a711cc1509b36d0910ec202aac305b0873180603fdc2c2"' repoLastModified: Thu, 08 Dec 2022 13:32:24 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/hbhb-devloper/budget-service v3: true repositoryMetadata: base64Readme: IyBidWRnZXQtc2VydmljZQoK6aKE566X5omn6KGMCg== readmeEtag: '"7cb883ae4d6e312ce869ed20110dfa35bbf26855"' readmeLastModified: Sat, 20 Mar 2021 13:22:39 GMT repositoryId: 349730244 description: 财务管理系统-后端服务-预算执行 created: '2021-03-20T13:18:25Z' updated: '2022-05-05T22:53:52Z' language: Java archived: false stars: 1 watchers: 2 forks: 3 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"1658a6197a3cb1928cabe8f5569d8df40ab6e5b877117619557d600062d2b4b9"' repoLastModified: Thu, 05 May 2022 22:53:52 GMT foundInMaster: true category: - Server - Server Implementations id: dc80f68da79f0a4f663006c0b4dda280 - source: openapi3 tags repository: https://github.com/grandlinex/docs-to-openapi v3: true repositoryMetadata: base64Readme: >- IyBEb2NzIHRvIE9wZW5BcGkgdi4zCgojIyBEb2N1bWVudGF0aW9uCi0gW0RvY3NdKGh0dHBzOi8vZ3JhbmRsaW5leC5naXRodWIuaW8vZG9jcy91dGlscy8jZG9jcy10by1vcGVuYXBpLXYzKQoKClshW0dpdEh1Yl0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2doL0dyYW5kbGluZVglMkZkb2NzLXRvLW9wZW5hcGkuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL0dyYW5kbGluZVgvZG9jcy10by1vcGVuYXBpKQpbIVtOUE1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPU5QTSZtZXNzYWdlPVBhY2thZ2UmY29sb3I9cmVkJmxvZ289TlBNKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGdyYW5kbGluZXgvZG9jcy10by1vcGVuYXBpKQohW1RTXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1MYW5ndWFnZSZtZXNzYWdlPVR5cGVTY3JpcHQmY29sb3I9Ymx1ZSZsb2dvPVR5cGVTY3JpcHQpCgoKIyMgRGVzY3JpcHRpb24KClRoaXMgUHJvamVjdCBjb252ZXJ0cyBjb21tZW50cyBpbiB5b3VyIGNvZGUgb3IgaW4geW91ciBkZXBlbmRlbmNpZXMgdG8gYW4gT3BlbkFwaSBTcGVjLgpUaGUgZm9sbG93aW5nIGFubm90YXRpb25zIGFyZSBzdXBwb3J0ZWQuIAotIGBAb3BlbmFwaWAgCi0gYEBzd2FnZ2VyYAoKQWxsIGNvbW1lbnRzIHdpdGggdGhlc2UgYW5ub3RhdGlvbnMgd2lsbCBiZSBwYXN0ZWQgYXMgYSBzaW5nZSBlbGVtZW50IGluIHRoZSBwYXRoIGRlZmluaXRpb24gYXJyYXkuCkZvciBhbGwgb3RoZXIgT3BlbkFwaSBjb25maWdzIHRoZSBgZ2xjb25mLmpzb25gIGlzIHVzZWQuICAgCgojIyBJbnN0YWxsYXRpb24KCi0gYG5wbSBpIC1nIEBncmFuZGxpbmV4L2RvY3MtdG8tb3BlbmFwaWAgCgojIyMgQ29uZmlnIGZpZWxkcwoKLSByb290RGlyIAogIC0gUmVsYXRpdmUgcGF0aCB0byB5b3VyIHNvdXJjZWNvZGUuCi0gZmlsZXR5cGVzIAogIC0gIExpc3Qgb2YgZmlsZSBleHRlbnNpb25zIHRvIG1vbml0b3IuCi0gZXh0ZXJuYWxNb2R1bGVzCiAgLSBJZiB5b3VyIGRlcGVuZGVuY2llcyB1c2UgYWxzbyB0aGVzZSBhbm5vdGF0aW9ucyB5b3UgY2FuIG1lcmdlIHRoZXNlIGluIHlvdXIgY3VycmVuIHNwZWMuCi0gb3V0UHV0RGlyIChvcHRpb25hbCkKICAtIFJlbGF0aXZlIHBhdGggZm9yIHRoZSBTcGVjLiBvdXRwdXQuICAKCiMjIFF1aWNrIFN0YXJ0CgoxLiBDcmVhdGUgYSBgZ2xjb25mLmpzb25gIGluIHRoZSByb290IGRpciBvZiB5b3VyIHByb2plY3QgKHNlZSBjb25maWcgMDEgb3IgMDIpLgoyLiBFZGl0IHlvdXIgYmFzZSBDb25maWcgZmlsZSBsaWtlIGluIHRoZSBvZmZpY2lhbCBbU3dhZ2dlciBEb2NdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykKMy4gQWRkIGEgQ29tbWVudCB0byB5b3VyIHNvcnVjZSBjb2RlIGluIHltbCBzeW50YXggbGlrZTogCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQG9wZW5hcGkKICAgICAgICAgICAgICogL3Bpbmc6CiAgICAgICAgICAgICAqICAgZ2V0OgogICAgICAgICAgICAgKiAgICAgc3VtbWFyeTogcGluZwogICAgICAgICAgICAgKiAgICAgdGFnczoKICAgICAgICAgICAgICogICAgICAgLSBiYXNpYwogICAgICAgICAgICAgKiAgICAgcmVzcG9uc2VzOgogICAgICAgICAgICAgKiAgICAgICAyMDA6CiAgICAgICAgICAgICAqICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICAgICAqICAgICAgIDQwMToKICAgICAgICAgICAgICogICAgICAgICBkZXNjcmlwdGlvbjogbm90IGF1dGhvcml6ZWQKICAgICAgICAgICAgICovCgo0LiBydW4gYG5weCBAZ3JhbmRsaW5leC9kb2NzLXRvLW9wZW5hcGlgCgo+IElmIHlvdSBpbnN0YWxsIHRoZSBwYWNrYWdlIGFzIGEgZGVwZW5kZW5jeSBvciBnbG9iYWwgdGhlbiB5b3UgY2FuIHVzZSB0aGUgYG1ha2VPcGVuQXBpYCBjb21tYW5kLiAKCiMjIENMSSBQYXJhbWV0ZXIKCnxQYXJhbWV0ZXJ8RGVzY3JpcHRpb258CnwtLS18LS0tfAp8YC0taHRtbGB8Q3JlYXRlcyBhIHN3YWdnZXIuaHRtbCBmaWxlIChTdGFuZGFsb25lIFN3YWdnZXJVSSl8CnxgLS1zZXJ2ZWB8U2VydmVzIHRoZSBPcGVuQXBpIFNwZWMgb24gcG9ydCA5MDAwfAoKCiMjIENvbmZpZyBGaWxlIEV4YW1wbGVzOgoKIyMjIENvbmZpZyAwMSBgZ2xjb25mLmpzb25gIChtaW5pbWFsKQoKCiAgICAgIHsKICAgICAgICAicm9vdERpciI6ICIuL3NyYyIsCiAgICAgICAgImZpbGV0eXBlcyI6IFsidHMiLCJqcyJdLAogICAgICAgICJleHRlcm5hbE1vZHVsZXMiOiBbXSwKICAgICAgICAiYmFzZUNvbmZpZyI6IHsKICAgICAgICAgICJpbmZvIjogewogICAgICAgICAgICAidGl0bGUiOiAiSGVsbG8gV29ybGQiLAogICAgICAgICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNhbXBsZSBBUEkiCiAgICAgICAgICB9LAogICAgICAgICAgInNlcnZlcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidXJsIjogImh0dHA6Ly9sb2NhbGhvc3Q6OTI1NyIKICAgICAgICAgICAgfQogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQoKIyMjIENvbmZpZyAwMiBgZ2xjb25mLmpzb25gIChCZWFyZXIgSldUKQoKICAgICAgewogICAgICAgICJyb290RGlyIjogIi4vc3JjIiwKICAgICAgICAiZmlsZXR5cGVzIjogWyJ0cyIsImpzIl0sCiAgICAgICAgImV4dGVybmFsTW9kdWxlcyI6IFsiLi9ub2RlX21vZHVsZXMvbW9kdWxlX2EiLCIuL25vZGVfbW9kdWxlcy9tb2R1bGVfYiJdLAogICAgICAgICJvdXRQdXREaXIiOiAiLi9kaXN0IiwKICAgICAgICAiYmFzZUNvbmZpZyI6IHsKICAgICAgICAgICJpbmZvIjogewogICAgICAgICAgICAidGl0bGUiOiAiSGVsbG8gV29ybGQiLAogICAgICAgICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNhbXBsZSBBUEkiCiAgICAgICAgICB9LAogICAgICAgICAgInNlcnZlcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidXJsIjogImh0dHA6Ly9sb2NhbGhvc3Q6OTI1NyIKICAgICAgICAgICAgfQogICAgICAgICAgXSwKICAgICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJiZWFyZXJBdXRoIjogW10KICAgICAgICAgICAgfQogICAgICAgICAgXSwKICAgICAgICAgICJjb21wb25lbnRzIjogewogICAgICAgICAgICAic2VjdXJpdHlTY2hlbWVzIjogewogICAgICAgICAgICAgICJiZWFyZXJBdXRoIjogewogICAgICAgICAgICAgICAgInR5cGUiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAic2NoZW1lIjogImJlYXJlciIsCiAgICAgICAgICAgICAgICAiYmVhcmVyRm9ybWF0IjogIkpXVCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0K readmeEtag: '"c08d42c954d8a7b77d88e45eed7b7f6b77455ca2"' readmeLastModified: Thu, 16 Sep 2021 19:39:07 GMT repositoryId: 401494338 description: >- This Project converts comments in your code or in your dependencies to an OpenApi Spec. created: '2021-08-30T21:45:07Z' updated: '2023-06-17T23:58:13Z' language: TypeScript archived: true stars: 1 watchers: 1 forks: 0 owner: GrandlineX logo: https://avatars.githubusercontent.com/u/89772740?v=4 license: BSD-3-Clause repoEtag: '"8bd916d7eecf995a81142c83499cfd31680e1816371f87fc73a186ec50b65437"' repoLastModified: Sat, 17 Jun 2023 23:58:13 GMT foundInMaster: true category: Parsers id: 20d5f81e29cc0e716934c1a7c7bcd728 - source: openapi3 tags repository: https://github.com/namsor/namsor-golang-sdk2 v3: true repositoryMetadata: base64Readme: >- IyBHbyBBUEkgY2xpZW50IGZvciBuYW1zb3JhcGkKCk5hbVNvciBBUEkgdjIgOiBlbnBvaW50cyB0byBwcm9jZXNzIHBlcnNvbmFsIG5hbWVzIChnZW5kZXIsIGN1bHR1cmFsIG9yaWdpbiBvciBldGhuaWNpdHkpIGluIGFsbCBhbHBoYWJldHMgb3IgbGFuZ3VhZ2VzLiBCeSBkZWZhdWx0LCBlbnBvaW50cyB1c2UgMSB1bml0IHBlciBuYW1lIChleC4gR2VuZGVyKSwgYnV0IEV0aG5pY2l0eSBjbGFzc2lmaWNhdGlvbiB1c2VzIDEwIHRvIDIwIHVuaXRzIHBlciBuYW1lIGRlcGVuZGluZyBvbiB0YXhvbm9teS4gVXNlIEdFVCBtZXRob2RzIGZvciBzbWFsbCB0ZXN0cywgYnV0IHByZWZlciBQT1NUIG1ldGhvZHMgZm9yIGhpZ2hlciB0aHJvdWdocHV0IChiYXRjaCBwcm9jZXNzaW5nIG9mIHVwIHRvIDEwMCBuYW1lcyBhdCBhIHRpbWUpLiBOZWVkIHNvbWV0aGluZyB5b3UgY2FuJ3QgZmluZCBoZXJlPyBXZSBoYXZlIG1hbnkgbW9yZSBmZWF0dXJlcyBjb21pbmcgc29vbi4gTGV0IHVzIGtub3csIHdlJ2xsIGRvIG91ciBiZXN0IHRvIGFkZCBpdCEgCgojIyBPdmVydmlldwpUaGlzIEFQSSBjbGllbnQgd2FzIGdlbmVyYXRlZCBieSB0aGUgW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpIHByb2plY3QuICBCeSB1c2luZyB0aGUgW09wZW5BUEktc3BlY10oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgZnJvbSBhIHJlbW90ZSBzZXJ2ZXIsIHlvdSBjYW4gZWFzaWx5IGdlbmVyYXRlIGFuIEFQSSBjbGllbnQuCgotIEFQSSB2ZXJzaW9uOiAyLjAuMTUKLSBQYWNrYWdlIHZlcnNpb246IDIuMC4xNQotIEJ1aWxkIHBhY2thZ2U6IG9yZy5vcGVuYXBpdG9vbHMuY29kZWdlbi5sYW5ndWFnZXMuR29DbGllbnRDb2RlZ2VuCkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlzaXQgW2h0dHA6Ly93d3cubmFtc29yLmNvbS9dKGh0dHA6Ly93d3cubmFtc29yLmNvbS8pCgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXM6CmBgYApnbyBnZXQgZ2l0aHViLmNvbS9zdHJldGNoci90ZXN0aWZ5L2Fzc2VydApnbyBnZXQgZ29sYW5nLm9yZy94L29hdXRoMgpnbyBnZXQgZ29sYW5nLm9yZy94L25ldC9jb250ZXh0CmdvIGdldCBnaXRodWIuY29tL2FudGloYXgvb3B0aW9uYWwKYGBgCgpQdXQgdGhlIHBhY2thZ2UgdW5kZXIgeW91ciBwcm9qZWN0IGZvbGRlciBhbmQgYWRkIHRoZSBmb2xsb3dpbmcgaW4gaW1wb3J0OgpgYGBnb2xhbmcKaW1wb3J0ICIuL25hbXNvcmFwaSIKYGBgCgojIyBEb2N1bWVudGF0aW9uIGZvciBBUEkgRW5kcG9pbnRzCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vdjIubmFtc29yLmNvbS9OYW1Tb3JBUEl2MioKCkNsYXNzIHwgTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCipBZG1pbkFwaSogfCBbKipBbm9ueW1pemUqKl0oZG9jcy9BZG1pbkFwaS5tZCNhbm9ueW1pemUpIHwgKipHZXQqKiAvYXBpMi9qc29uL2Fub255bWl6ZS97c291cmNlfS97YW5vbnltaXplZH0gfCBBY3RpdmF0ZS9kZWFjdGl2YXRlIGFub255bWl6YXRpb24gZm9yIGEgc291cmNlLgoqQWRtaW5BcGkqIHwgWyoqQXBpU3RhdHVzKipdKGRvY3MvQWRtaW5BcGkubWQjYXBpc3RhdHVzKSB8ICoqR2V0KiogL2FwaTIvanNvbi9hcGlTdGF0dXMgfCBQcmludHMgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBjbGFzc2lmaWVycy4gQSBjbGFzc2lmaWVyIG5hbWUgaW4gYXBpU3RhdHVzIGNvcnJlc3BvbmRzIHRvIGEgc2VydmljZSBuYW1lIGluIGFwaVNlcnZpY2VzLgoqQWRtaW5BcGkqIHwgWyoqQXBpVXNhZ2UqKl0oZG9jcy9BZG1pbkFwaS5tZCNhcGl1c2FnZSkgfCAqKkdldCoqIC9hcGkyL2pzb24vYXBpVXNhZ2UgfCBQcmludCBjdXJyZW50IEFQSSB1c2FnZS4KKkFkbWluQXBpKiB8IFsqKkFwaVVzYWdlSGlzdG9yeSoqXShkb2NzL0FkbWluQXBpLm1kI2FwaXVzYWdlaGlzdG9yeSkgfCAqKkdldCoqIC9hcGkyL2pzb24vYXBpVXNhZ2VIaXN0b3J5IHwgUHJpbnQgaGlzdG9yaWNhbCBBUEkgdXNhZ2UuCipBZG1pbkFwaSogfCBbKipBcGlVc2FnZUhpc3RvcnlBZ2dyZWdhdGUqKl0oZG9jcy9BZG1pbkFwaS5tZCNhcGl1c2FnZWhpc3RvcnlhZ2dyZWdhdGUpIHwgKipHZXQqKiAvYXBpMi9qc29uL2FwaVVzYWdlSGlzdG9yeUFnZ3JlZ2F0ZSB8IFByaW50IGhpc3RvcmljYWwgQVBJIHVzYWdlIChpbiBhbiBhZ2dyZWdhdGVkIHZpZXcsIGJ5IHNlcnZpY2UsIGJ5IGRheS9ob3VyL21pbikuCipBZG1pbkFwaSogfCBbKipBdmFpbGFibGVTZXJ2aWNlcyoqXShkb2NzL0FkbWluQXBpLm1kI2F2YWlsYWJsZXNlcnZpY2VzKSB8ICoqR2V0KiogL2FwaTIvanNvbi9hcGlTZXJ2aWNlcyB8IExpc3Qgb2YgY2xhc3NpZmljYXRpb24gc2VydmljZXMgYW5kIHVzYWdlIGNvc3QgaW4gVW5pdHMgcGVyIGNsYXNzaWZpY2F0aW9uIChkZWZhdWx0IGlzIDEmI3gzRDtPTkUgVW5pdCkuIFNvbWUgQVBJIGVuZHBvaW50cyAoZXguIENvcnJpZG9yKSBjb21iaW5lIG11bHRpcGxlIGNsYXNzaWZpZXJzLgoqQWRtaW5BcGkqIHwgWyoqRGlzYWJsZSoqXShkb2NzL0FkbWluQXBpLm1kI2Rpc2FibGUpIHwgKipHZXQqKiAvYXBpMi9qc29uL2Rpc2FibGUve3NvdXJjZX0ve2Rpc2FibGVkfSB8IEFjdGl2YXRlL2RlYWN0aXZhdGUgYW4gQVBJIEtleS4KKkFkbWluQXBpKiB8IFsqKkxlYXJuYWJsZSoqXShkb2NzL0FkbWluQXBpLm1kI2xlYXJuYWJsZSkgfCAqKkdldCoqIC9hcGkyL2pzb24vbGVhcm5hYmxlL3tzb3VyY2V9L3tsZWFybmFibGV9IHwgQWN0aXZhdGUvZGVhY3RpdmF0ZSBsZWFybmluZyBmcm9tIGEgc291cmNlLgoqQWRtaW5BcGkqIHwgWyoqU29mdHdhcmVWZXJzaW9uKipdKGRvY3MvQWRtaW5BcGkubWQjc29mdHdhcmV2ZXJzaW9uKSB8ICoqR2V0KiogL2FwaTIvanNvbi9zb2Z0d2FyZVZlcnNpb24gfCBHZXQgdGhlIGN1cnJlbnQgc29mdHdhcmUgdmVyc2lvbgoqQWRtaW5BcGkqIHwgWyoqVGF4b25vbXlDbGFzc2VzKipdKGRvY3MvQWRtaW5BcGkubWQjdGF4b25vbXljbGFzc2VzKSB8ICoqR2V0KiogL2FwaTIvanNvbi90YXhvbm9teUNsYXNzZXMve2NsYXNzaWZpZXJOYW1lfSB8IFByaW50IHRoZSB0YXhvbm9teSBjbGFzc2VzIHZhbGlkIGZvciB0aGUgZ2l2ZW4gY2xhc3NpZmllci4KKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVDYW5kaWRhdGVzKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNjaGluZXNlbmFtZWNhbmRpZGF0ZXMpIHwgKipHZXQqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlcy97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0gfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBXYW5nIFhpYW9taW5nCipDaGluZXNlQXBpKiB8IFsqKkNoaW5lc2VOYW1lQ2FuZGlkYXRlc0JhdGNoKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNjaGluZXNlbmFtZWNhbmRpZGF0ZXNiYXRjaCkgfCAqKlBvc3QqKiAvYXBpMi9qc29uL2NoaW5lc2VOYW1lQ2FuZGlkYXRlc0JhdGNoIHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSAoZmlyc3ROYW1lICYjeDNEOyBjaGluZXNlR2l2ZW5OYW1lOyBsYXN0TmFtZSYjeDNEO2NoaW5lc2VTdXJuYW1lKSwgZXguIFdhbmcgWGlhb21pbmcKKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVDYW5kaWRhdGVzR2VuZGVyQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2NoaW5lc2VuYW1lY2FuZGlkYXRlc2dlbmRlcmJhdGNoKSB8ICoqUG9zdCoqIC9hcGkyL2pzb24vY2hpbmVzZU5hbWVDYW5kaWRhdGVzR2VuZGVyQmF0Y2ggfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGNoaW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lJiN4M0Q7Y2hpbmVzZVN1cm5hbWUpIGV4LiBXYW5nIFhpYW9taW5nLgoqQ2hpbmVzZUFwaSogfCBbKipDaGluZXNlTmFtZUdlbmRlckNhbmRpZGF0ZXMqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2NoaW5lc2VuYW1lZ2VuZGVyY2FuZGlkYXRlcykgfCAqKkdldCoqIC9hcGkyL2pzb24vY2hpbmVzZU5hbWVHZW5kZXJDYW5kaWRhdGVzL3tjaGluZXNlU3VybmFtZUxhdGlufS97Y2hpbmVzZUdpdmVuTmFtZUxhdGlufS97a25vd25HZW5kZXJ9IHwgSWRlbnRpZnkgQ2hpbmVzZSBuYW1lIGNhbmRpZGF0ZXMsIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSBleC4gV2FuZyBYaWFvbWluZyAtIGhhdmluZyBhIGtub3duIGdlbmRlciAoJiMzOTttYWxlJiMzOTsgb3IgJiMzOTtmZW1hbGUmIzM5OykKKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVNYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjY2hpbmVzZW5hbWVtYXRjaCkgfCAqKkdldCoqIC9hcGkyL2pzb24vY2hpbmVzZU5hbWVNYXRjaC97Y2hpbmVzZVN1cm5hbWVMYXRpbn0ve2NoaW5lc2VHaXZlbk5hbWVMYXRpbn0ve2NoaW5lc2VOYW1lfSB8IFJldHVybiBhIHNjb3JlIGZvciBtYXRjaGluZyBDaGluZXNlIG5hbWUgZXguIOeOi+aZk+aYjiB3aXRoIGEgcm9tYW5pemVkIG5hbWUgZXguIFdhbmcgWGlhb21pbmcKKkNoaW5lc2VBcGkqIHwgWyoqQ2hpbmVzZU5hbWVNYXRjaEJhdGNoKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNjaGluZXNlbmFtZW1hdGNoYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9jaGluZXNlTmFtZU1hdGNoQmF0Y2ggfCBJZGVudGlmeSBDaGluZXNlIG5hbWUgY2FuZGlkYXRlcywgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGNoaW5lc2VHaXZlbk5hbWU7IGxhc3ROYW1lJiN4M0Q7Y2hpbmVzZVN1cm5hbWUpLCBleC4gV2FuZyBYaWFvbWluZwoqQ2hpbmVzZUFwaSogfCBbKipHZW5kZXJDaGluZXNlTmFtZSoqXShkb2NzL0NoaW5lc2VBcGkubWQjZ2VuZGVyY2hpbmVzZW5hbWUpIHwgKipHZXQqKiAvYXBpMi9qc29uL2dlbmRlckNoaW5lc2VOYW1lL3tjaGluZXNlTmFtZX0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIENoaW5lc2UgZnVsbCBuYW1lIGV4LiDnjovmmZPmmI4KKkNoaW5lc2VBcGkqIHwgWyoqR2VuZGVyQ2hpbmVzZU5hbWVCYXRjaCoqXShkb2NzL0NoaW5lc2VBcGkubWQjZ2VuZGVyY2hpbmVzZW5hbWViYXRjaCkgfCAqKlBvc3QqKiAvYXBpMi9qc29uL2dlbmRlckNoaW5lc2VOYW1lQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgZnVsbCBuYW1lcyBleC4g546L5pmT5piOCipDaGluZXNlQXBpKiB8IFsqKkdlbmRlckNoaW5lc2VOYW1lUGlueWluKipdKGRvY3MvQ2hpbmVzZUFwaS5tZCNnZW5kZXJjaGluZXNlbmFtZXBpbnlpbikgfCAqKkdldCoqIC9hcGkyL2pzb24vZ2VuZGVyQ2hpbmVzZU5hbWVQaW55aW4ve2NoaW5lc2VTdXJuYW1lTGF0aW59L3tjaGluZXNlR2l2ZW5OYW1lTGF0aW59IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBDaGluZXNlIG5hbWUgaW4gTEFUSU4gKFBpbnlpbikuCipDaGluZXNlQXBpKiB8IFsqKkdlbmRlckNoaW5lc2VOYW1lUGlueWluQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI2dlbmRlcmNoaW5lc2VuYW1lcGlueWluYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9nZW5kZXJDaGluZXNlTmFtZVBpbnlpbkJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgdXAgdG8gMTAwIENoaW5lc2UgbmFtZXMgaW4gTEFUSU4gKFBpbnlpbikuCipDaGluZXNlQXBpKiB8IFsqKlBhcnNlQ2hpbmVzZU5hbWUqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BhcnNlY2hpbmVzZW5hbWUpIHwgKipHZXQqKiAvYXBpMi9qc29uL3BhcnNlQ2hpbmVzZU5hbWUve2NoaW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDnjovmmZPmmI4gLSZndDsg546LKHN1cm5hbWUpIOaZk+aYjihnaXZlbiBuYW1lKQoqQ2hpbmVzZUFwaSogfCBbKipQYXJzZUNoaW5lc2VOYW1lQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BhcnNlY2hpbmVzZW5hbWViYXRjaCkgfCAqKlBvc3QqKiAvYXBpMi9qc29uL3BhcnNlQ2hpbmVzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDnjovmmZPmmI4gLSZndDsg546LKHN1cm5hbWUpIOaZk+aYjihnaXZlbiBuYW1lKS4KKkNoaW5lc2VBcGkqIHwgWyoqUGlueWluQ2hpbmVzZU5hbWUqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BpbnlpbmNoaW5lc2VuYW1lKSB8ICoqR2V0KiogL2FwaTIvanNvbi9waW55aW5DaGluZXNlTmFtZS97Y2hpbmVzZU5hbWV9IHwgUm9tYW5pemUgdGhlIENoaW5lc2UgbmFtZSB0byBQaW55aW4sIGV4LiDnjovmmZPmmI4gLSZndDsgV2FuZyAoc3VybmFtZSkgWGlhb21pbmcgKGdpdmVuIG5hbWUpCipDaGluZXNlQXBpKiB8IFsqKlBpbnlpbkNoaW5lc2VOYW1lQmF0Y2gqKl0oZG9jcy9DaGluZXNlQXBpLm1kI3BpbnlpbmNoaW5lc2VuYW1lYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9waW55aW5DaGluZXNlTmFtZUJhdGNoIHwgUm9tYW5pemUgYSBsaXN0IG9mIENoaW5lc2UgbmFtZSB0byBQaW55aW4sIGV4LiDnjovmmZPmmI4gLSZndDsgV2FuZyAoc3VybmFtZSkgWGlhb21pbmcgKGdpdmVuIG5hbWUpLgoqR2VuZXJhbEFwaSogfCBbKipOYW1lVHlwZSoqXShkb2NzL0dlbmVyYWxBcGkubWQjbmFtZXR5cGUpIHwgKipHZXQqKiAvYXBpMi9qc29uL25hbWVUeXBlL3twcm9wZXJOb3VufSB8IEluZmVyIHRoZSBsaWtlbHkgdHlwZSBvZiBhIHByb3BlciBub3VuIChwZXJzb25hbCBuYW1lLCBicmFuZCBuYW1lLCBwbGFjZSBuYW1lIGV0Yy4pCipHZW5lcmFsQXBpKiB8IFsqKk5hbWVUeXBlQmF0Y2gqKl0oZG9jcy9HZW5lcmFsQXBpLm1kI25hbWV0eXBlYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9uYW1lVHlwZUJhdGNoIHwgSW5mZXIgdGhlIGxpa2VseSBjb21tb24gdHlwZSBvZiB1cCB0byAxMDAgcHJvcGVyIG5vdW5zIChwZXJzb25hbCBuYW1lLCBicmFuZCBuYW1lLCBwbGFjZSBuYW1lIGV0Yy4pCipHZW5lcmFsQXBpKiB8IFsqKk5hbWVUeXBlR2VvKipdKGRvY3MvR2VuZXJhbEFwaS5tZCNuYW1ldHlwZWdlbykgfCAqKkdldCoqIC9hcGkyL2pzb24vbmFtZVR5cGVHZW8ve3Byb3Blck5vdW59L3tjb3VudHJ5SXNvMn0gfCBJbmZlciB0aGUgbGlrZWx5IHR5cGUgb2YgYSBwcm9wZXIgbm91biAocGVyc29uYWwgbmFtZSwgYnJhbmQgbmFtZSwgcGxhY2UgbmFtZSBldGMuKQoqR2VuZXJhbEFwaSogfCBbKipOYW1lVHlwZUdlb0JhdGNoKipdKGRvY3MvR2VuZXJhbEFwaS5tZCNuYW1ldHlwZWdlb2JhdGNoKSB8ICoqUG9zdCoqIC9hcGkyL2pzb24vbmFtZVR5cGVHZW9CYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgY29tbW9uIHR5cGUgb2YgdXAgdG8gMTAwIHByb3BlciBub3VucyAocGVyc29uYWwgbmFtZSwgYnJhbmQgbmFtZSwgcGxhY2UgbmFtZSBldGMuKQoqSmFwYW5lc2VBcGkqIHwgWyoqR2VuZGVySmFwYW5lc2VOYW1lRnVsbCoqXShkb2NzL0phcGFuZXNlQXBpLm1kI2dlbmRlcmphcGFuZXNlbmFtZWZ1bGwpIHwgKipHZXQqKiAvYXBpMi9qc29uL2dlbmRlckphcGFuZXNlTmFtZUZ1bGwve2phcGFuZXNlTmFtZX0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIEphcGFuZXNlIGZ1bGwgbmFtZSBleC4g546L5pmT5piOCipKYXBhbmVzZUFwaSogfCBbKipHZW5kZXJKYXBhbmVzZU5hbWVGdWxsQmF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNnZW5kZXJqYXBhbmVzZW5hbWVmdWxsYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9nZW5kZXJKYXBhbmVzZU5hbWVGdWxsQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgZnVsbCBuYW1lcwoqSmFwYW5lc2VBcGkqIHwgWyoqR2VuZGVySmFwYW5lc2VOYW1lUGlueWluKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjZ2VuZGVyamFwYW5lc2VuYW1lcGlueWluKSB8ICoqR2V0KiogL2FwaTIvanNvbi9nZW5kZXJKYXBhbmVzZU5hbWUve2phcGFuZXNlU3VybmFtZX0ve2phcGFuZXNlR2l2ZW5OYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgSmFwYW5lc2UgbmFtZSBpbiBMQVRJTiAoUGlueWluKS4KKkphcGFuZXNlQXBpKiB8IFsqKkdlbmRlckphcGFuZXNlTmFtZVBpbnlpbkJhdGNoKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjZ2VuZGVyamFwYW5lc2VuYW1lcGlueWluYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9nZW5kZXJKYXBhbmVzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBKYXBhbmVzZSBuYW1lcyBpbiBMQVRJTiAoUGlueWluKS4KKkphcGFuZXNlQXBpKiB8IFsqKkphcGFuZXNlTmFtZUdlbmRlckthbmppQ2FuZGlkYXRlc0JhdGNoKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VuYW1lZ2VuZGVya2FuamljYW5kaWRhdGVzYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVHZW5kZXJLYW5qaUNhbmRpZGF0ZXNCYXRjaCB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGphcGFuZXNlR2l2ZW5OYW1lOyBsYXN0TmFtZSYjeDNEO2phcGFuZXNlU3VybmFtZSkgd2l0aCBLTk9XTiBnZW5kZXIsIGV4LiBZYW1hbW90byBTYW5hZQoqSmFwYW5lc2VBcGkqIHwgWyoqSmFwYW5lc2VOYW1lS2FuamlDYW5kaWRhdGVzKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VuYW1la2FuamljYW5kaWRhdGVzKSB8ICoqR2V0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXMve2phcGFuZXNlU3VybmFtZUxhdGlufS97amFwYW5lc2VHaXZlbk5hbWVMYXRpbn0ve2tub3duR2VuZGVyfSB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIGV4LiBZYW1hbW90byBTYW5hZSAtIGFuZCBhIGtub3duIGdlbmRlci4KKkphcGFuZXNlQXBpKiB8IFsqKkphcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlczEqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZW5hbWVrYW5qaWNhbmRpZGF0ZXMxKSB8ICoqR2V0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXMve2phcGFuZXNlU3VybmFtZUxhdGlufS97amFwYW5lc2VHaXZlbk5hbWVMYXRpbn0gfCBJZGVudGlmeSBqYXBhbmVzZSBuYW1lIGNhbmRpZGF0ZXMgaW4gS0FOSkksIGJhc2VkIG9uIHRoZSByb21hbml6ZWQgbmFtZSBleC4gWWFtYW1vdG8gU2FuYWUKKkphcGFuZXNlQXBpKiB8IFsqKkphcGFuZXNlTmFtZUthbmppQ2FuZGlkYXRlc0JhdGNoKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VuYW1la2FuamljYW5kaWRhdGVzYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVLYW5qaUNhbmRpZGF0ZXNCYXRjaCB8IElkZW50aWZ5IGphcGFuZXNlIG5hbWUgY2FuZGlkYXRlcyBpbiBLQU5KSSwgYmFzZWQgb24gdGhlIHJvbWFuaXplZCBuYW1lIChmaXJzdE5hbWUgJiN4M0Q7IGphcGFuZXNlR2l2ZW5OYW1lOyBsYXN0TmFtZSYjeDNEO2phcGFuZXNlU3VybmFtZSksIGV4LiBZYW1hbW90byBTYW5hZQoqSmFwYW5lc2VBcGkqIHwgWyoqSmFwYW5lc2VOYW1lTGF0aW5DYW5kaWRhdGVzKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VuYW1lbGF0aW5jYW5kaWRhdGVzKSB8ICoqR2V0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXMve2phcGFuZXNlU3VybmFtZUthbmppfS97amFwYW5lc2VHaXZlbk5hbWVLYW5qaX0gfCBSb21hbml6ZSBqYXBhbmVzZSBuYW1lLCBiYXNlZCBvbiB0aGUgbmFtZSBpbiBLYW5qaS4KKkphcGFuZXNlQXBpKiB8IFsqKkphcGFuZXNlTmFtZUxhdGluQ2FuZGlkYXRlc0JhdGNoKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VuYW1lbGF0aW5jYW5kaWRhdGVzYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9qYXBhbmVzZU5hbWVMYXRpbkNhbmRpZGF0ZXNCYXRjaCB8IFJvbWFuaXplIGphcGFuZXNlIG5hbWVzLCBiYXNlZCBvbiB0aGUgbmFtZSBpbiBLQU5KSQoqSmFwYW5lc2VBcGkqIHwgWyoqSmFwYW5lc2VOYW1lTWF0Y2gqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZW5hbWVtYXRjaCkgfCAqKkdldCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lTWF0Y2gve2phcGFuZXNlU3VybmFtZUxhdGlufS97amFwYW5lc2VHaXZlbk5hbWVMYXRpbn0ve2phcGFuZXNlTmFtZX0gfCBSZXR1cm4gYSBzY29yZSBmb3IgbWF0Y2hpbmcgSmFwYW5lc2UgbmFtZSBpbiBLQU5KSSBleC4g5bGx5pysIOaXqeiLlyB3aXRoIGEgcm9tYW5pemVkIG5hbWUgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipKYXBhbmVzZU5hbWVNYXRjaEJhdGNoKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjamFwYW5lc2VuYW1lbWF0Y2hiYXRjaCkgfCAqKlBvc3QqKiAvYXBpMi9qc29uL2phcGFuZXNlTmFtZU1hdGNoQmF0Y2ggfCBSZXR1cm4gYSBzY29yZSBmb3IgbWF0Y2hpbmcgYSBsaXN0IG9mIEphcGFuZXNlIG5hbWVzIGluIEtBTkpJIGV4LiDlsbHmnKwg5pep6IuXIHdpdGggcm9tYW5pemVkIG5hbWVzIGV4LiBZYW1hbW90byBTYW5hZQoqSmFwYW5lc2VBcGkqIHwgWyoqSmFwYW5lc2VOYW1lTWF0Y2hGZWVkYmFja0xvb3AqKl0oZG9jcy9KYXBhbmVzZUFwaS5tZCNqYXBhbmVzZW5hbWVtYXRjaGZlZWRiYWNrbG9vcCkgfCAqKkdldCoqIC9hcGkyL2pzb24vamFwYW5lc2VOYW1lTWF0Y2hGZWVkYmFja0xvb3Ave2phcGFuZXNlU3VybmFtZUxhdGlufS97amFwYW5lc2VHaXZlbk5hbWVMYXRpbn0ve2phcGFuZXNlTmFtZX0gfCBbQ1JFRElUUyAxIFVOSVRdIEZlZWRiYWNrIGxvb3AgdG8gYmV0dGVyIHBlcmZvcm0gbWF0Y2hpbmcgSmFwYW5lc2UgbmFtZSBpbiBLQU5KSSBleC4g5bGx5pysIOaXqeiLlyB3aXRoIGEgcm9tYW5pemVkIG5hbWUgZXguIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipQYXJzZUphcGFuZXNlTmFtZSoqXShkb2NzL0phcGFuZXNlQXBpLm1kI3BhcnNlamFwYW5lc2VuYW1lKSB8ICoqR2V0KiogL2FwaTIvanNvbi9wYXJzZUphcGFuZXNlTmFtZS97amFwYW5lc2VOYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiDlsbHmnKwg5pep6IuXIG9yIFlhbWFtb3RvIFNhbmFlCipKYXBhbmVzZUFwaSogfCBbKipQYXJzZUphcGFuZXNlTmFtZUJhdGNoKipdKGRvY3MvSmFwYW5lc2VBcGkubWQjcGFyc2VqYXBhbmVzZW5hbWViYXRjaCkgfCAqKlBvc3QqKiAvYXBpMi9qc29uL3BhcnNlSmFwYW5lc2VOYW1lQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4g5bGx5pysIOaXqeiLlyBvciBZYW1hbW90byBTYW5hZSAKKlBlcnNvbmFsQXBpKiB8IFsqKkNvcnJpZG9yKipdKGRvY3MvUGVyc29uYWxBcGkubWQjY29ycmlkb3IpIHwgKipHZXQqKiAvYXBpMi9qc29uL2NvcnJpZG9yL3tjb3VudHJ5SXNvMkZyb219L3tmaXJzdE5hbWVGcm9tfS97bGFzdE5hbWVGcm9tfS97Y291bnRyeUlzbzJUb30ve2ZpcnN0TmFtZVRvfS97bGFzdE5hbWVUb30gfCBbVVNFUyAyMCBVTklUUyBQRVIgTkFNRSBDT1VQTEVdIEluZmVyIHNldmVyYWwgY2xhc3NpZmljYXRpb25zIGZvciBhIGNyb3NzIGJvcmRlciBpbnRlcmFjdGlvbiBiZXR3ZWVuIG5hbWVzIChleC4gcmVtaXQsIHRyYXZlbCwgaW50bCBjb20pCipQZXJzb25hbEFwaSogfCBbKipDb3JyaWRvckJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjY29ycmlkb3JiYXRjaCkgfCAqKlBvc3QqKiAvYXBpMi9qc29uL2NvcnJpZG9yQmF0Y2ggfCBbVVNFUyAyMCBVTklUUyBQRVIgTkFNRSBQQUlSXSBJbmZlciBzZXZlcmFsIGNsYXNzaWZpY2F0aW9ucyBmb3IgdXAgdG8gMTAwIGNyb3NzIGJvcmRlciBpbnRlcmFjdGlvbiBiZXR3ZWVuIG5hbWVzIChleC4gcmVtaXQsIHRyYXZlbCwgaW50bCBjb20pCipQZXJzb25hbEFwaSogfCBbKipDb3VudHJ5KipdKGRvY3MvUGVyc29uYWxBcGkubWQjY291bnRyeSkgfCAqKkdldCoqIC9hcGkyL2pzb24vY291bnRyeS97cGVyc29uYWxOYW1lRnVsbH0gfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBvZiBhIHBlcnNvbmFsIGZ1bGwgbmFtZSwgb3Igb25lIHN1cm5hbWUuIEFzc3VtZXMgbmFtZXMgYXMgdGhleSBhcmUgaW4gdGhlIGNvdW50cnkgb2YgcmVzaWRlbmNlIE9SIHRoZSBjb3VudHJ5IG9mIG9yaWdpbi4KKlBlcnNvbmFsQXBpKiB8IFsqKkNvdW50cnlCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2NvdW50cnliYXRjaCkgfCAqKlBvc3QqKiAvYXBpMi9qc29uL2NvdW50cnlCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgb2YgcmVzaWRlbmNlIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBmdWxsIG5hbWVzLCBvciBzdXJuYW1lcy4gQXNzdW1lcyBuYW1lcyBhcyB0aGV5IGFyZSBpbiB0aGUgY291bnRyeSBvZiByZXNpZGVuY2UgT1IgdGhlIGNvdW50cnkgb2Ygb3JpZ2luLgoqUGVyc29uYWxBcGkqIHwgWyoqRGlhc3BvcmEqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNkaWFzcG9yYSkgfCAqKkdldCoqIC9hcGkyL2pzb24vZGlhc3BvcmEve2NvdW50cnlJc28yfS97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMjAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgZXRobmljaXR5L2RpYXNwb3JhIG9mIGEgcGVyc29uYWwgbmFtZSwgZ2l2ZW4gYSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBJU08yIGNvZGUgKGV4LiBVUywgQ0EsIEFVLCBOWiBldGMuKQoqUGVyc29uYWxBcGkqIHwgWyoqRGlhc3BvcmFCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2RpYXNwb3JhYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9kaWFzcG9yYUJhdGNoIHwgW1VTRVMgMjAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgZXRobmljaXR5L2RpYXNwb3JhIG9mIHVwIHRvIDEwMCBwZXJzb25hbCBuYW1lcywgZ2l2ZW4gYSBjb3VudHJ5IG9mIHJlc2lkZW5jZSBJU08yIGNvZGUgKGV4LiBVUywgQ0EsIEFVLCBOWiBldGMuKQoqUGVyc29uYWxBcGkqIHwgWyoqR2VuZGVyKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyKSB8ICoqR2V0KiogL2FwaTIvanNvbi9nZW5kZXIve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgbmFtZS4KKlBlcnNvbmFsQXBpKiB8IFsqKkdlbmRlckJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9nZW5kZXJCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIHVwIHRvIDEwMCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipQZXJzb25hbEFwaSogfCBbKipHZW5kZXJGdWxsKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyZnVsbCkgfCAqKkdldCoqIC9hcGkyL2pzb24vZ2VuZGVyRnVsbC97ZnVsbE5hbWV9IHwgSW5mZXIgdGhlIGxpa2VseSBnZW5kZXIgb2YgYSBmdWxsIG5hbWUsIGV4LiBKb2huIEguIFNtaXRoCipQZXJzb25hbEFwaSogfCBbKipHZW5kZXJGdWxsQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNnZW5kZXJmdWxsYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9nZW5kZXJGdWxsQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgZnVsbCBuYW1lcywgZGV0ZWN0aW5nIGF1dG9tYXRpY2FsbHkgdGhlIGN1bHR1cmFsIGNvbnRleHQuCipQZXJzb25hbEFwaSogfCBbKipHZW5kZXJGdWxsR2VvKipdKGRvY3MvUGVyc29uYWxBcGkubWQjZ2VuZGVyZnVsbGdlbykgfCAqKkdldCoqIC9hcGkyL2pzb24vZ2VuZGVyRnVsbEdlby97ZnVsbE5hbWV9L3tjb3VudHJ5SXNvMn0gfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiBhIGZ1bGwgbmFtZSwgZ2l2ZW4gYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgY29kZSkuCipQZXJzb25hbEFwaSogfCBbKipHZW5kZXJGdWxsR2VvQmF0Y2gqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNnZW5kZXJmdWxsZ2VvYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9nZW5kZXJGdWxsR2VvQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgZnVsbCBuYW1lcywgd2l0aCBhIGdpdmVuIGN1bHR1cmFsIGNvbnRleHQgKGNvdW50cnkgSVNPMiBjb2RlKS4KKlBlcnNvbmFsQXBpKiB8IFsqKkdlbmRlckdlbyoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcmdlbykgfCAqKkdldCoqIC9hcGkyL2pzb24vZ2VuZGVyR2VvL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve2NvdW50cnlJc28yfSB8IEluZmVyIHRoZSBsaWtlbHkgZ2VuZGVyIG9mIGEgbmFtZSwgZ2l2ZW4gYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgY29kZSkuCipQZXJzb25hbEFwaSogfCBbKipHZW5kZXJHZW9CYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI2dlbmRlcmdlb2JhdGNoKSB8ICoqUG9zdCoqIC9hcGkyL2pzb24vZ2VuZGVyR2VvQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGdlbmRlciBvZiB1cCB0byAxMDAgbmFtZXMsIGVhY2ggZ2l2ZW4gYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgY29kZSkuCipQZXJzb25hbEFwaSogfCBbKipPcmlnaW4qKl0oZG9jcy9QZXJzb25hbEFwaS5tZCNvcmlnaW4pIHwgKipHZXQqKiAvYXBpMi9qc29uL29yaWdpbi97Zmlyc3ROYW1lfS97bGFzdE5hbWV9IHwgW1VTRVMgMTAgVU5JVFMgUEVSIE5BTUVdIEluZmVyIHRoZSBsaWtlbHkgY291bnRyeSBvZiBvcmlnaW4gb2YgYSBwZXJzb25hbCBuYW1lLiBBc3N1bWVzIG5hbWVzIGFzIHRoZXkgYXJlIGluIHRoZSBjb3VudHJ5IG9mIG9yaWdpbi4gRm9yIFVTLCBDQSwgQVUsIE5aIGFuZCBvdGhlciBtZWx0aW5nLXBvdHMgOiB1c2UgJiMzOTtkaWFzcG9yYSYjMzk7IGluc3RlYWQuCipQZXJzb25hbEFwaSogfCBbKipPcmlnaW5CYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI29yaWdpbmJhdGNoKSB8ICoqUG9zdCoqIC9hcGkyL2pzb24vb3JpZ2luQmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBjb3VudHJ5IG9mIG9yaWdpbiBvZiB1cCB0byAxMDAgbmFtZXMsIGRldGVjdGluZyBhdXRvbWF0aWNhbGx5IHRoZSBjdWx0dXJhbCBjb250ZXh0LgoqUGVyc29uYWxBcGkqIHwgWyoqUGFyc2VOYW1lKipdKGRvY3MvUGVyc29uYWxBcGkubWQjcGFyc2VuYW1lKSB8ICoqR2V0KiogL2FwaTIvanNvbi9wYXJzZU5hbWUve25hbWVGdWxsfSB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiBKb2huIFNtaXRoIG9yIFNNSVRILCBKb2huIG9yIFNNSVRIOyBKb2huLiAKKlBlcnNvbmFsQXBpKiB8IFsqKlBhcnNlTmFtZUJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjcGFyc2VuYW1lYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9wYXJzZU5hbWVCYXRjaCB8IEluZmVyIHRoZSBsaWtlbHkgZmlyc3QvbGFzdCBuYW1lIHN0cnVjdHVyZSBvZiBhIG5hbWUsIGV4LiBKb2huIFNtaXRoIG9yIFNNSVRILCBKb2huIG9yIFNNSVRIOyBKb2huLgoqUGVyc29uYWxBcGkqIHwgWyoqUGFyc2VOYW1lR2VvKipdKGRvY3MvUGVyc29uYWxBcGkubWQjcGFyc2VuYW1lZ2VvKSB8ICoqR2V0KiogL2FwaTIvanNvbi9wYXJzZU5hbWUve25hbWVGdWxsfS97Y291bnRyeUlzbzJ9IHwgSW5mZXIgdGhlIGxpa2VseSBmaXJzdC9sYXN0IG5hbWUgc3RydWN0dXJlIG9mIGEgbmFtZSwgZXguIEpvaG4gU21pdGggb3IgU01JVEgsIEpvaG4gb3IgU01JVEg7IEpvaG4uIEZvciBiZXR0ZXIgYWNjdXJhY3ksIHByb3ZpZGUgYSBnZW9ncmFwaGljIGNvbnRleHQuCipQZXJzb25hbEFwaSogfCBbKipQYXJzZU5hbWVHZW9CYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3BhcnNlbmFtZWdlb2JhdGNoKSB8ICoqUG9zdCoqIC9hcGkyL2pzb24vcGFyc2VOYW1lR2VvQmF0Y2ggfCBJbmZlciB0aGUgbGlrZWx5IGZpcnN0L2xhc3QgbmFtZSBzdHJ1Y3R1cmUgb2YgYSBuYW1lLCBleC4gSm9obiBTbWl0aCBvciBTTUlUSCwgSm9obiBvciBTTUlUSDsgSm9obi4gR2l2aW5nIGEgbG9jYWwgY29udGV4dCBpbXByb3ZlcyBwcmVjaXNpb24uIAoqUGVyc29uYWxBcGkqIHwgWyoqVXNSYWNlRXRobmljaXR5KipdKGRvY3MvUGVyc29uYWxBcGkubWQjdXNyYWNlZXRobmljaXR5KSB8ICoqR2V0KiogL2FwaTIvanNvbi91c1JhY2VFdGhuaWNpdHkve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciBhIFVTIHJlc2lkZW50JiMzOTtzIGxpa2VseSByYWNlL2V0aG5pY2l0eSBhY2NvcmRpbmcgdG8gVVMgQ2Vuc3VzIHRheG9ub215IFdfTkwgKHdoaXRlLCBub24gbGF0aW5vKSwgSEwgKGhpc3Bhbm8gbGF0aW5vKSwgIEEgKGFzaWFuLCBub24gbGF0aW5vKSwgQl9OTCAoYmxhY2ssIG5vbiBsYXRpbm8pLiBPcHRpb25hbGx5IGFkZCBoZWFkZXIgWC1PUFRJT04tVVNSQUNFRVRITklDSVRZLVRBWE9OT01ZOiBVU1JBQ0VFVEhOSUNJVFktNkNMQVNTRVMgZm9yIHR3byBhZGRpdGlvbmFsIGNsYXNzZXMsIEFJX0FOIChBbWVyaWNhbiBJbmRpYW4gb3IgQWxhc2thbiBOYXRpdmUpIGFuZCBQSSAoUGFjaWZpYyBJc2xhbmRlcikuCipQZXJzb25hbEFwaSogfCBbKipVc1JhY2VFdGhuaWNpdHlCYXRjaCoqXShkb2NzL1BlcnNvbmFsQXBpLm1kI3VzcmFjZWV0aG5pY2l0eWJhdGNoKSB8ICoqUG9zdCoqIC9hcGkyL2pzb24vdXNSYWNlRXRobmljaXR5QmF0Y2ggfCBbVVNFUyAxMCBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdXAtdG8gMTAwIFVTIHJlc2lkZW50JiMzOTtzIGxpa2VseSByYWNlL2V0aG5pY2l0eSBhY2NvcmRpbmcgdG8gVVMgQ2Vuc3VzIHRheG9ub215LiBPdXRwdXQgaXMgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuIE9wdGlvbmFsbHkgYWRkIGhlYWRlciBYLU9QVElPTi1VU1JBQ0VFVEhOSUNJVFktVEFYT05PTVk6IFVTUkFDRUVUSE5JQ0lUWS02Q0xBU1NFUyBmb3IgdHdvIGFkZGl0aW9uYWwgY2xhc3NlcywgQUlfQU4gKEFtZXJpY2FuIEluZGlhbiBvciBBbGFza2FuIE5hdGl2ZSkgYW5kIFBJIChQYWNpZmljIElzbGFuZGVyKS4KKlBlcnNvbmFsQXBpKiB8IFsqKlVzUmFjZUV0aG5pY2l0eVpJUDUqKl0oZG9jcy9QZXJzb25hbEFwaS5tZCN1c3JhY2VldGhuaWNpdHl6aXA1KSB8ICoqR2V0KiogL2FwaTIvanNvbi91c1JhY2VFdGhuaWNpdHlaSVA1L3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve3ppcDVDb2RlfSB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciBhIFVTIHJlc2lkZW50JiMzOTtzIGxpa2VseSByYWNlL2V0aG5pY2l0eSBhY2NvcmRpbmcgdG8gVVMgQ2Vuc3VzIHRheG9ub215LCB1c2luZyAob3B0aW9uYWwpIFpJUDUgY29kZSBpbmZvLiBPdXRwdXQgaXMgV19OTCAod2hpdGUsIG5vbiBsYXRpbm8pLCBITCAoaGlzcGFubyBsYXRpbm8pLCAgQSAoYXNpYW4sIG5vbiBsYXRpbm8pLCBCX05MIChibGFjaywgbm9uIGxhdGlubykuIE9wdGlvbmFsbHkgYWRkIGhlYWRlciBYLU9QVElPTi1VU1JBQ0VFVEhOSUNJVFktVEFYT05PTVk6IFVTUkFDRUVUSE5JQ0lUWS02Q0xBU1NFUyBmb3IgdHdvIGFkZGl0aW9uYWwgY2xhc3NlcywgQUlfQU4gKEFtZXJpY2FuIEluZGlhbiBvciBBbGFza2FuIE5hdGl2ZSkgYW5kIFBJIChQYWNpZmljIElzbGFuZGVyKS4KKlBlcnNvbmFsQXBpKiB8IFsqKlVzWmlwUmFjZUV0aG5pY2l0eUJhdGNoKipdKGRvY3MvUGVyc29uYWxBcGkubWQjdXN6aXByYWNlZXRobmljaXR5YmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi91c1ppcFJhY2VFdGhuaWNpdHlCYXRjaCB8IFtVU0VTIDEwIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB1cC10byAxMDAgVVMgcmVzaWRlbnQmIzM5O3MgbGlrZWx5IHJhY2UvZXRobmljaXR5IGFjY29yZGluZyB0byBVUyBDZW5zdXMgdGF4b25vbXksIHdpdGggKG9wdGlvbmFsKSBaSVAgY29kZS4gT3V0cHV0IGlzIFdfTkwgKHdoaXRlLCBub24gbGF0aW5vKSwgSEwgKGhpc3Bhbm8gbGF0aW5vKSwgIEEgKGFzaWFuLCBub24gbGF0aW5vKSwgQl9OTCAoYmxhY2ssIG5vbiBsYXRpbm8pLiBPcHRpb25hbGx5IGFkZCBoZWFkZXIgWC1PUFRJT04tVVNSQUNFRVRITklDSVRZLVRBWE9OT01ZOiBVU1JBQ0VFVEhOSUNJVFktNkNMQVNTRVMgZm9yIHR3byBhZGRpdGlvbmFsIGNsYXNzZXMsIEFJX0FOIChBbWVyaWNhbiBJbmRpYW4gb3IgQWxhc2thbiBOYXRpdmUpIGFuZCBQSSAoUGFjaWZpYyBJc2xhbmRlcikuCipTb2NpYWxBcGkqIHwgWyoqUGhvbmVDb2RlKipdKGRvY3MvU29jaWFsQXBpLm1kI3Bob25lY29kZSkgfCAqKkdldCoqIC9hcGkyL2pzb24vcGhvbmVDb2RlL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve3Bob25lTnVtYmVyfSB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgZ2l2ZW4gYSBwZXJzb25hbCBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIuCipTb2NpYWxBcGkqIHwgWyoqUGhvbmVDb2RlQmF0Y2gqKl0oZG9jcy9Tb2NpYWxBcGkubWQjcGhvbmVjb2RlYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9waG9uZUNvZGVCYXRjaCB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgb2YgdXAgdG8gMTAwIHBlcnNvbmFsIG5hbWVzLCBkZXRlY3RpbmcgYXV0b21hdGljYWxseSB0aGUgbG9jYWwgY29udGV4dCBnaXZlbiBhIG5hbWUgYW5kIGZvcm1hdHRlZCAvIHVuZm9ybWF0dGVkIHBob25lIG51bWJlci4KKlNvY2lhbEFwaSogfCBbKipQaG9uZUNvZGVHZW8qKl0oZG9jcy9Tb2NpYWxBcGkubWQjcGhvbmVjb2RlZ2VvKSB8ICoqR2V0KiogL2FwaTIvanNvbi9waG9uZUNvZGVHZW8ve2ZpcnN0TmFtZX0ve2xhc3ROYW1lfS97cGhvbmVOdW1iZXJ9L3tjb3VudHJ5SXNvMn0gfCBbVVNFUyAxMSBVTklUUyBQRVIgTkFNRV0gSW5mZXIgdGhlIGxpa2VseSBwaG9uZSBwcmVmaXgsIGdpdmVuIGEgcGVyc29uYWwgbmFtZSBhbmQgZm9ybWF0dGVkIC8gdW5mb3JtYXR0ZWQgcGhvbmUgbnVtYmVyLCB3aXRoIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IG9mIHJlc2lkZW5jZSkuCipTb2NpYWxBcGkqIHwgWyoqUGhvbmVDb2RlR2VvQmF0Y2gqKl0oZG9jcy9Tb2NpYWxBcGkubWQjcGhvbmVjb2RlZ2VvYmF0Y2gpIHwgKipQb3N0KiogL2FwaTIvanNvbi9waG9uZUNvZGVHZW9CYXRjaCB8IFtVU0VTIDExIFVOSVRTIFBFUiBOQU1FXSBJbmZlciB0aGUgbGlrZWx5IGNvdW50cnkgYW5kIHBob25lIHByZWZpeCwgb2YgdXAgdG8gMTAwIHBlcnNvbmFsIG5hbWVzLCB3aXRoIGEgbG9jYWwgY29udGV4dCAoSVNPMiBjb3VudHJ5IG9mIHJlc2lkZW5jZSkuCipTb2NpYWxBcGkqIHwgWyoqUGhvbmVDb2RlR2VvRmVlZGJhY2tMb29wKipdKGRvY3MvU29jaWFsQXBpLm1kI3Bob25lY29kZWdlb2ZlZWRiYWNrbG9vcCkgfCAqKkdldCoqIC9hcGkyL2pzb24vcGhvbmVDb2RlR2VvRmVlZGJhY2tMb29wL3tmaXJzdE5hbWV9L3tsYXN0TmFtZX0ve3Bob25lTnVtYmVyfS97cGhvbmVOdW1iZXJFMTY0fS97Y291bnRyeUlzbzJ9IHwgW0NSRURJVFMgMSBVTklUXSBGZWVkYmFjayBsb29wIHRvIGJldHRlciBpbmZlciB0aGUgbGlrZWx5IHBob25lIHByZWZpeCwgZ2l2ZW4gYSBwZXJzb25hbCBuYW1lIGFuZCBmb3JtYXR0ZWQgLyB1bmZvcm1hdHRlZCBwaG9uZSBudW1iZXIsIHdpdGggYSBsb2NhbCBjb250ZXh0IChJU08yIGNvdW50cnkgb2YgcmVzaWRlbmNlKS4KCgojIyBEb2N1bWVudGF0aW9uIEZvciBNb2RlbHMKCiAtIFtBcGlCaWxsaW5nUGVyaW9kVXNhZ2VPdXRdKGRvY3MvQXBpQmlsbGluZ1BlcmlvZFVzYWdlT3V0Lm1kKQogLSBbQXBpQ2xhc3NpZmllck91dF0oZG9jcy9BcGlDbGFzc2lmaWVyT3V0Lm1kKQogLSBbQXBpQ2xhc3NpZmllclRheG9ub215T3V0XShkb2NzL0FwaUNsYXNzaWZpZXJUYXhvbm9teU91dC5tZCkKIC0gW0FwaUNsYXNzaWZpZXJzU3RhdHVzT3V0XShkb2NzL0FwaUNsYXNzaWZpZXJzU3RhdHVzT3V0Lm1kKQogLSBbQXBpQ291bnRlclYyT3V0XShkb2NzL0FwaUNvdW50ZXJWMk91dC5tZCkKIC0gW0FwaUtleU91dF0oZG9jcy9BcGlLZXlPdXQubWQpCiAtIFtBcGlQZXJpb2RVc2FnZU91dF0oZG9jcy9BcGlQZXJpb2RVc2FnZU91dC5tZCkKIC0gW0FwaVBsYW5TdWJzY3JpcHRpb25PdXRdKGRvY3MvQXBpUGxhblN1YnNjcmlwdGlvbk91dC5tZCkKIC0gW0FwaVNlcnZpY2VPdXRdKGRvY3MvQXBpU2VydmljZU91dC5tZCkKIC0gW0FwaVNlcnZpY2VzT3V0XShkb2NzL0FwaVNlcnZpY2VzT3V0Lm1kKQogLSBbQXBpVXNhZ2VBZ2dyZWdhdGVkT3V0XShkb2NzL0FwaVVzYWdlQWdncmVnYXRlZE91dC5tZCkKIC0gW0FwaVVzYWdlSGlzdG9yeU91dF0oZG9jcy9BcGlVc2FnZUhpc3RvcnlPdXQubWQpCiAtIFtCYXRjaENvcnJpZG9ySW5dKGRvY3MvQmF0Y2hDb3JyaWRvckluLm1kKQogLSBbQmF0Y2hDb3JyaWRvck91dF0oZG9jcy9CYXRjaENvcnJpZG9yT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lRGlhc3BvcmFlZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVySW5dKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lR2VuZGVySW4ubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZUdlb0luXShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZUdlb0luLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lR2VvWmlwcGVkSW5dKGRvY3MvQmF0Y2hGaXJzdExhc3ROYW1lR2VvWmlwcGVkSW4ubWQpCiAtIFtCYXRjaEZpcnN0TGFzdE5hbWVJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVJbi5tZCkKIC0gW0JhdGNoRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVDb2RlZE91dF0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZUNvZGVkT3V0Lm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJHZW9Jbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckdlb0luLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJJbl0oZG9jcy9CYXRjaEZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckluLm1kKQogLSBbQmF0Y2hGaXJzdExhc3ROYW1lVXNSYWNlRXRobmljaXR5T3V0XShkb2NzL0JhdGNoRmlyc3RMYXN0TmFtZVVzUmFjZUV0aG5pY2l0eU91dC5tZCkKIC0gW0JhdGNoTWF0Y2hQZXJzb25hbEZpcnN0TGFzdE5hbWVJbl0oZG9jcy9CYXRjaE1hdGNoUGVyc29uYWxGaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtCYXRjaE5hbWVHZW9Jbl0oZG9jcy9CYXRjaE5hbWVHZW9Jbi5tZCkKIC0gW0JhdGNoTmFtZUluXShkb2NzL0JhdGNoTmFtZUluLm1kKQogLSBbQmF0Y2hOYW1lTWF0Y2hDYW5kaWRhdGVzT3V0XShkb2NzL0JhdGNoTmFtZU1hdGNoQ2FuZGlkYXRlc091dC5tZCkKIC0gW0JhdGNoTmFtZU1hdGNoZWRPdXRdKGRvY3MvQmF0Y2hOYW1lTWF0Y2hlZE91dC5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lR2VuZGVyZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lR2VvSW5dKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVHZW9Jbi5tZCkKIC0gW0JhdGNoUGVyc29uYWxOYW1lR2VvT3V0XShkb2NzL0JhdGNoUGVyc29uYWxOYW1lR2VvT3V0Lm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVJbl0oZG9jcy9CYXRjaFBlcnNvbmFsTmFtZUluLm1kKQogLSBbQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXRdKGRvY3MvQmF0Y2hQZXJzb25hbE5hbWVQYXJzZWRPdXQubWQpCiAtIFtCYXRjaFByb3Blck5vdW5DYXRlZ29yaXplZE91dF0oZG9jcy9CYXRjaFByb3Blck5vdW5DYXRlZ29yaXplZE91dC5tZCkKIC0gW0NvcnJpZG9ySW5dKGRvY3MvQ29ycmlkb3JJbi5tZCkKIC0gW0NvcnJpZG9yT3V0XShkb2NzL0NvcnJpZG9yT3V0Lm1kKQogLSBbRmVlZGJhY2tMb29wT3V0XShkb2NzL0ZlZWRiYWNrTG9vcE91dC5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0XShkb2NzL0ZpcnN0TGFzdE5hbWVEaWFzcG9yYWVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZUdlbmRlckluXShkb2NzL0ZpcnN0TGFzdE5hbWVHZW5kZXJJbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVHZW5kZXJlZE91dF0oZG9jcy9GaXJzdExhc3ROYW1lR2VuZGVyZWRPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lR2VvSW5dKGRvY3MvRmlyc3RMYXN0TmFtZUdlb0luLm1kKQogLSBbRmlyc3RMYXN0TmFtZUdlb1ppcHBlZEluXShkb2NzL0ZpcnN0TGFzdE5hbWVHZW9aaXBwZWRJbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVJbl0oZG9jcy9GaXJzdExhc3ROYW1lSW4ubWQpCiAtIFtGaXJzdExhc3ROYW1lT3JpZ2luZWRPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZU9yaWdpbmVkT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZU91dF0oZG9jcy9GaXJzdExhc3ROYW1lT3V0Lm1kKQogLSBbRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXRdKGRvY3MvRmlyc3RMYXN0TmFtZVBob25lQ29kZWRPdXQubWQpCiAtIFtGaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJHZW9Jbl0oZG9jcy9GaXJzdExhc3ROYW1lUGhvbmVOdW1iZXJHZW9Jbi5tZCkKIC0gW0ZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckluXShkb2NzL0ZpcnN0TGFzdE5hbWVQaG9uZU51bWJlckluLm1kKQogLSBbRmlyc3RMYXN0TmFtZVVzUmFjZUV0aG5pY2l0eU91dF0oZG9jcy9GaXJzdExhc3ROYW1lVXNSYWNlRXRobmljaXR5T3V0Lm1kKQogLSBbTWF0Y2hQZXJzb25hbEZpcnN0TGFzdE5hbWVJbl0oZG9jcy9NYXRjaFBlcnNvbmFsRmlyc3RMYXN0TmFtZUluLm1kKQogLSBbTmFtZUdlb0luXShkb2NzL05hbWVHZW9Jbi5tZCkKIC0gW05hbWVJbl0oZG9jcy9OYW1lSW4ubWQpCiAtIFtOYW1lTWF0Y2hDYW5kaWRhdGVPdXRdKGRvY3MvTmFtZU1hdGNoQ2FuZGlkYXRlT3V0Lm1kKQogLSBbTmFtZU1hdGNoQ2FuZGlkYXRlc091dF0oZG9jcy9OYW1lTWF0Y2hDYW5kaWRhdGVzT3V0Lm1kKQogLSBbTmFtZU1hdGNoZWRPdXRdKGRvY3MvTmFtZU1hdGNoZWRPdXQubWQpCiAtIFtQZXJzb25hbE5hbWVHZW5kZXJlZE91dF0oZG9jcy9QZXJzb25hbE5hbWVHZW5kZXJlZE91dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUdlb0luXShkb2NzL1BlcnNvbmFsTmFtZUdlb0luLm1kKQogLSBbUGVyc29uYWxOYW1lR2VvT3V0XShkb2NzL1BlcnNvbmFsTmFtZUdlb091dC5tZCkKIC0gW1BlcnNvbmFsTmFtZUluXShkb2NzL1BlcnNvbmFsTmFtZUluLm1kKQogLSBbUGVyc29uYWxOYW1lUGFyc2VkT3V0XShkb2NzL1BlcnNvbmFsTmFtZVBhcnNlZE91dC5tZCkKIC0gW1Byb3Blck5vdW5DYXRlZ29yaXplZE91dF0oZG9jcy9Qcm9wZXJOb3VuQ2F0ZWdvcml6ZWRPdXQubWQpCiAtIFtTb2Z0d2FyZVZlcnNpb25PdXRdKGRvY3MvU29mdHdhcmVWZXJzaW9uT3V0Lm1kKQoKCiMjIERvY3VtZW50YXRpb24gRm9yIEF1dGhvcml6YXRpb24KCiMjIGFwaV9rZXkKLSAqKlR5cGUqKjogQVBJIGtleSAKCkV4YW1wbGUKYGBgZ29sYW5nCmF1dGggOj0gY29udGV4dC5XaXRoVmFsdWUoY29udGV4dC5CYWNrZ3JvdW5kKCksIHN3LkNvbnRleHRBUElLZXksIHN3LkFQSUtleXsKCUtleTogIkFQSUtFWSIsCglQcmVmaXg6ICJCZWFyZXIiLCAvLyBPbWl0IGlmIG5vdCBuZWNlc3NhcnkuCn0pCnIsIGVyciA6PSBjbGllbnQuU2VydmljZS5PcGVyYXRpb24oYXV0aCwgYXJncykKYGBgCgojIyBBdXRob3IKCmNvbnRhY3RAbmFtc29yLmNvbQoK readmeEtag: '"bda79e140b0503daa709e3849df196883b6432b2"' readmeLastModified: Sat, 17 Jul 2021 16:37:57 GMT repositoryId: 311337702 description: >- NamSor API v2 GO golang SDK - classify personal names accurately by gender, country of origin, or ethnicity. created: '2020-11-09T12:52:55Z' updated: '2021-07-17T16:38:17Z' language: Go archived: false stars: 1 watchers: 2 forks: 0 owner: namsor logo: https://avatars.githubusercontent.com/u/6951565?v=4 license: AGPL-3.0 repoEtag: '"80b9cea23c8b9f11359bef24fbd8277991bc1435c98b9e7b780553529eabfa4b"' repoLastModified: Sat, 17 Jul 2021 16:38:17 GMT foundInMaster: true category: Description Validators id: 82acbfdc33ea8424ebd5e94a6da14642 - source: openapi3 tags repository: https://github.com/ailouislu/games-api v3: true id: 09bac62d550dde9f3134fd34e9bcfb01 repositoryMetadata: base64Readme: >- IyBHYW1lcyBBUEkgU2VydmljZQpBbiBBUEkgc2VydmljZSBmb3IgZmluZGluZyBhbGwgZ2FtZXMsIGNyZWF0aW5nLCByZXRyaWV2aW5nLCB1cGRhdGluZywgYW5kIGRlbGV0aW5nIEdhbWVzIGFuZCBwbGF0Zm9ybXMuCgotR2FtZXMgQVBJIFVSTCA6IGh0dHBzOi8vZ2FtZXNhcGkubnpsb3Vpcy5jb20vZG9jLmh0bWwKCi1Mb2NhbCBTd2FnZ2VyIFVJIFVSTCA6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4Ny9kb2MuaHRtbAoKVXNlIG9mIHRlY2hub2xvZ3k6IFNwcmluZ2Jvb3QyLjMgKyBTcHJpbmdkb2Mtb3BlbmFwaSAzICsgSlBBICsgSDIgKyBKdW5pdDQKCiIjIGdhbWVzLWFwaSIgCgohW10oc3JjL21haW4vcmVzb3VyY2VzL0dhbWVzLmpwZyk= readmeEtag: '"22611c4d40d9189170d6fd282b97dc9c96ceca90"' readmeLastModified: Tue, 25 Apr 2023 08:00:55 GMT repositoryId: 629405490 description: Games API Service created: '2023-04-18T08:46:31Z' updated: '2023-04-25T07:45:59Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: ailouislu logo: https://avatars.githubusercontent.com/u/72653348?v=4 repoEtag: '"6a8c546a22dd4b05e839fa7a20f0eb710c103b008efdc931fd2b66f35faa2a2d"' repoLastModified: Tue, 25 Apr 2023 07:45:59 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/louisaugustine/games-api - source: openapi3 tags repository: https://github.com/voto-vote/api-specification v3: true id: f1bb93898f6a8a4211765e5b6fd62aaf repositoryMetadata: base64Readme: >- IyBWT1RPIEFQSSBTcGVjaWZpY2F0aW9uCgohW01JVF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZykKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS92b3RvLXZvdGUvYXBpLXNwZWNpZmljYXRpb24vYWN0aW9ucy93b3JrZmxvd3MvcmVkb2MtZ2gtcGFnZXMueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vdm90by12b3RlL2FwaS1zcGVjaWZpY2F0aW9uL2FjdGlvbnMvd29ya2Zsb3dzL3JlZG9jLWdoLXBhZ2VzLnlhbWwpClshW0dpdGh1YiBQYWdlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby93ZWJzaXRlLXVwLWRvd24tZ3JlZW4tcmVkL2h0dHAvc2hpZWxkcy5pby5zdmcpXShodHRwczovL3ZvdG8tdm90ZS5naXRodWIuaW8vYXBpLXNwZWNpZmljYXRpb24vKQoKVGhpcyBwcm9qZWN0IGNvbnRhaW5zIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBWT1RPIEFQSS4gVGhlIHNjaGVtYSBpcyBiYXNlZCBvbiB0aGUgW09wZW5BUEkgU3BlY2lmaWNhdGlvbiB2My4xXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikuCgojIyBJbnRyb2R1Y3Rpb24KCldlIHNhdyB0aGUgbmVlZCB0byBjcmVhdGUgYSBzdGFuZGFyZCBzZXQgb2YgaW5mb3JtYXRpb24gZm9yIHZvdGUgYWR2aWNlIGFwcGxpY2F0aW9ucy4gVGhlcmVmb3JlLCB3ZSBjYW1lIHVwIHdpdGggdGhlIGlkZWEgb2YgZGVmaW5pbmcgYSBzdGFuZGFyZCBBUEkgd2hpbGUgZnVsbGZpbGxpbmcgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmb3JtYXQuIFRoaXMgYWxsb3dzIGVhc3kgYWRvcHRpb24gd2l0aCBnZW5lcmF0ZWQgY2xpZW50IGFuZCBzZXJ2ZXIgc3R1YnMuCgojIyBVc2FnZQoKWW91IGFyZSBmcmVlIHRvIHVzZSB0aGUgc3BlY2lmaWNhdGlvbiB0byBnZW5lcmF0ZSBhIGNsaWVudCwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGFjY2Vzc2luZyB0aGUgQVBJLiBXZSBoaWdobHkgcmVjb21tZW5kIHVzaW5nIHRoZSBhcGktZ2VuZXJhdG9yLCB3aGljaCBpcyBjYWJhYmxlIG9mIGdlbmVyYXRpbmcgZnVsbHkgdXNhYmxlIGNsaWVudHMgaW4gYWxtb3N0IGV2ZXJ5IHByb2dyYW1taW5nIGxhbmd1YWdlLgoKIyMjIERvY2tlciB1c2FnZQoKR28gaW50byBgb3BlbmFwaWAgZGlyZWN0b3J5IGFuZCBzaW1wbHkgYnVpbGQgYW5kIHJ1biBvdXIgZG9ja2VyIGltYWdlOgoKYGBgc2gKZG9ja2VyIGJ1aWxkIC10IG9wZW4tYXBpLWdlbmVyYXRvcjpsYXRlc3QgLiAmJiBkb2NrZXIgcnVuIC12ICR7UFdEfS86L2FwcC8gLWUgTEFOR1VBR0U9Z28gb3Blbi1hcGktZ2VuZXJhdG9yCmBgYAoKWW91IGNhbiBzcGVjaWZ5IHRoZSBMQU5HVUFHRSBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlIHVzaW5nIHRoZSBgTEFOR1VBR0VgIGVudmlyb25tZW50IHZhcmlhYmxlLiBDaGVjayBvdXQgdGhlIGxpc3QgZnJvbSBbaGVyZV0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy8pLiBBZnRlciBydW5uaW5nLCB5b3Ugd2lsbCBmaW5kIHRoZSBgb3V0cHV0YCBmb2xkZXIsIHdoZXJlIG9uZSBtZXJnZWQgc3BlY2lmaWNhdGlvbiBmaWxlIGFuZCB0aGUgZ2VuZXJhdGVkIGNvZGUgc3RheXMuCgojIyMgTWFudWFsIHVzYWdlCgpJZiB5b3Ugd2FudCB0byBydW4gZXZlcnl0aGluZyBtYW51YWxseSwgZ28gdG8gYG9wZW5hcGlgIGZvbGRlciBhbmQgcnVuOgoKYGBgc2gKIyBJbnN0YWxsIHJlZG9jbHkgb3BlbmFwaS1jbGk6Cm5wbSBpbnN0YWxsIEByZWRvY2x5L29wZW5hcGktY2xpIC1nCiMgSW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvcjoKYnJldyBpbnN0YWxsIG9wZW5hcGktZ2VuZXJhdG9yCiMgUnVuIExpbnRlcjoKbnB4IEByZWRvY2x5L29wZW5hcGktY2xpIGxpbnQgc3BlY2lmaWNhdGlvbi55YW1sCiMgTWVyZ2UgZmlsZXM6Cm5weCBAcmVkb2NseS9vcGVuYXBpLWNsaSBidW5kbGUgc3BlY2lmaWNhdGlvbi55YW1sIC1vIC4vb3V0cHV0L3NwZWMtbWVyZ2VkLnlhbWwKIyBSdW4gb3BlbmFwaSBnZW5lcmF0b3I6Cm9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSAtaSAuL3NwZWMtbWVyZ2VkLnlhbWwgLWcgJExBTkdVQUdFIC1vIC4vZ2VuZXJhdGVkLwpgYGAKCkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlzaXQ6IFtodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQo= readmeEtag: '"3b71e6c50dee056bfafc2888158531af9f7485aa"' readmeLastModified: Mon, 04 Mar 2024 06:37:11 GMT repositoryId: 413306506 description: 'VOTO API specified in OpenAPI Specification yml. ' created: '2021-10-04T06:52:07Z' updated: '2024-05-25T08:47:56Z' language: Shell archived: false stars: 1 watchers: 2 forks: 0 owner: voto-vote logo: https://avatars.githubusercontent.com/u/63105374?v=4 license: MIT repoEtag: '"d3e7d04cba6457967c3cb8796feef6589cd3c006074e12cd58d3f71120a3715c"' repoLastModified: Sat, 25 May 2024 08:47:56 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/robbot-discord/robbot-api v3: true repositoryMetadata: base64Readme: >- Um9iQm90IEFQSQo9PT0KClRoZSBPcGVuQVBJIHYzIFNjaGVtYSBkZWZpbml0aW9uIHVzZWQgYmVoaW5kIHRoZSBzY2VuZXMgaW4gUm9iQm90CgojIFJlcXVpcmVtZW50cwpbIVtGT1NTQSBTdGF0dXNdKGh0dHBzOi8vYXBwLmZvc3NhLmlvL2FwaS9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGcm9iYm90LWRpc2NvcmQlMkZSb2JCb3QtQVBJLnN2Zz90eXBlPXNoaWVsZCldKGh0dHBzOi8vYXBwLmZvc3NhLmlvL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZyb2Jib3QtZGlzY29yZCUyRlJvYkJvdC1BUEk/cmVmPWJhZGdlX3NoaWVsZCkKCiogW1N0b3BsaWdodCBTdHVkaW9dKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL3N0dWRpby8pCiogW05vZGUuanMgMTArXShodHRwczovL25vZGVqcy5vcmcvZW4vKQoKIyBHZXR0aW5nIFN0YXJ0ZWQKMS4gUnVuIHRoZSBmb2xsb3dpbmcgdG8gc2V0dXAgR2l0IGhvb2tzIGFuZCBpbnN0YWxsIGRlcGVuZGVuY2llcyByZXF1aXJlZCBmb3IgdXRpbGl0eSBzY3JpcHRzOgpgYGBzaGVsbCBzY3JpcHQKbnBtIGluc3RhbGwKYGBgCjEuIE9wZW4gdGhpcyByZXBvc2l0b3J5IGluIFN0b3BsaWdodCBTdHVkaW8gYW5kIHN0YXJ0IGVkaXRpbmcKCiMjIExpbnRpbmcKYGBgc2hlbGwgc2NyaXB0Cm5wbSBydW4gbGludApgYGAKCiMjIExpY2Vuc2UKWyFbRk9TU0EgU3RhdHVzXShodHRwczovL2FwcC5mb3NzYS5pby9hcGkvcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRnJvYmJvdC1kaXNjb3JkJTJGUm9iQm90LUFQSS5zdmc/dHlwZT1sYXJnZSldKGh0dHBzOi8vYXBwLmZvc3NhLmlvL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZyb2Jib3QtZGlzY29yZCUyRlJvYkJvdC1BUEk/cmVmPWJhZGdlX2xhcmdlKQ== readmeEtag: '"8eb02f72bac3d65a6f4081efe26dd9216c2e8781"' readmeLastModified: Mon, 21 Sep 2020 06:37:25 GMT repositoryId: 217418543 description: The OpenAPI v3 Schema definition used behind the scenes in RobBot created: '2019-10-25T00:27:52Z' updated: '2024-06-04T23:52:14Z' language: null archived: false stars: 1 watchers: 1 forks: 1 owner: robbot-discord logo: https://avatars.githubusercontent.com/u/46425294?v=4 license: MIT repoEtag: '"b12e86c2094a939db6a0d3fed2e7dd282a4e7eceed5f0b23bf4ef6db61130d8d"' repoLastModified: Tue, 04 Jun 2024 23:52:14 GMT foundInMaster: true category: Server id: 975cd4c8a22463c3d61d7d414b3322c1 - source: openapi3 tags repository: https://github.com/farhadrezvani/http-generator v3: true id: e6df472abbe7ba67700b466005f08cba repositoryMetadata: base64Readme: >- IyBodHRwLWdlbmVyYXRvcgoKR2VuZXJhdGUgYC5odHRwYCBmaWxlcyBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMKCiMjIEZlYXR1cmVzCgotIEdlbmVyYXRlIEhUVFAgZmlsZShzKSBlaXRoZXIgYXMKCiAgLSBBIHNpbmdsZSBmaWxlIGNvbnRhaW5pbmcgYWxsIHJlcXVlc3RzCiAgLSBBIGZpbGUgcGVyIHJlcXVlc3QKCi0gU3VwcG9ydHMgT3BlbkFQSSB2MiBhbmQgdjMKCiAgLSBKU09OIGFuZCBZQU1MIGZvcm1hdHMKICAtIFNjaGVtYSBWYWxpZGF0aW9uCgotIEluY2x1ZGUgYXV0aG9yaXphdGlvbiBoZWFkZXJzCi0gSW5jbHVkZSBzdW1tYXJpZXMgYW5kIGRlc2NyaXB0aW9ucwotIFZhcmlhYmxlcyBmb3Igcm91dGUgcGFyYW1ldGVycwotIFNwZWNpZnkgYmFzZS11cmwgZm9yIGNvbnZlbmllbnQgZW52aXJvbm1lbnQgc3dpdGNoaW5nCgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgaW4geW91ciBwcm9qZWN0IGZvbGRlcjoKCmBgYGJhc2gKbnBtIGkgaHR0cC1nZW5lcmF0b3IgLUQKIyBVc2luZyB5YXJuCnlhcm4gYWRkIGh0dHAtZ2VuZXJhdG9yIC0tZGV2CiMgVXNpbmcgcG5wbQpwbnBtIGFkZCBodHRwLWdlbmVyYXRvciAtRApgYGAKCiMjIFVzYWdlCgpSdW4gaHR0cC1nZW5lcmF0b3Igd2l0aCB0aGUgYXBwcm9wcmlhdGUgb3B0aW9uczoKCmBgYGJhc2gKVXNhZ2U6IGh0dHAtZ2VuZXJhdG9yIFtvcHRpb25zXQoKR2VuZXJhdGUgLmh0dHAgZmlsZXMgZnJvbSBPcGVuQVBJIHNwZWNpZmljYXRpb25zCgpPcHRpb25zOgogIC1pLCAtLWlucHV0IDxpbnB1dD4gICAgICAgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBmaWxlIG9yIFVSTAogIC1vLCAtLW91dHB1dCA8b3V0cHV0PiAgICAgT3V0cHV0IGRpcmVjdG9yeSBvciBIVFRQIGZpbGUKICAtYiwgLS1iYXNlLXVybCA8YmFzZVVybD4gIEJhc2UgVVJMIG9mIHRoZSBBUEkKICAtdCwgLS10b2tlbiA8dG9rZW4+ICAgICAgIEF1dGhvcml6YXRpb24gdG9rZW4KICAtcywgLS1za2lwLXZhbGlkYXRpb24gICAgIFNraXAgdmFsaWRhdGlvbiBvZiBPcGVuQVBJIFNwZWNpZmljYXRpb24gKGRlZmF1bHQ6IGZhbHNlKQogIC12LCAtLXZlcnNpb24gICAgICAgICAgICAgRGlzcGxheSB2ZXJzaW9uIG51bWJlcgogIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgRGlzcGxheSB0aGlzIG1lc3NhZ2UKYGBgCgojIyBDb25maWd1cmF0aW9uIEZpbGUKCllvdSBjYW4gYWxzbyB1c2UgYGh0dHAtZ2VuZXJhdG9yYCB1c2luZyBmaWxlIGNvbmZpZ3VyYXRpb25zIG9yIGluIGEgcHJvcGVydHkgaW5zaWRlIHlvdXIgcGFja2FnZS5qc29uLCBhbmQgeW91IGNhbiBldmVuIHVzZSBUeXBlU2NyaXB0IGFuZCBoYXZlIHR5cGUtc2FmZXR5IHdoaWxlIHlvdSBhcmUgdXNpbmcgaXQuCgpZb3UgY2FuIHVzZSBhbnkgb2YgdGhlc2UgZmlsZXM6CgotIGBodHRwZ2VuLmNvbmZpZy50c2AKLSBgaHR0cGdlbi5jb25maWcuanNgCi0gYGh0dHBnZW4uY29uZmlnLmNqc2AKLSBgaHR0cGdlbmAgcHJvcGVydHkgaW4geW91ciBgcGFja2FnZS5qc29uYAoKQmFzaWMgQ29uZmlndXJhdGlvbjoKCmBgYGpzCmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gImh0dHAtZ2VuZXJhdG9yIjsKCmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7CiAgaW5wdXQ6ICJzY2hlbWEuanNvbiIsCiAgb3V0cHV0OiAib3V0cHV0Lmh0dHAiLAogIGJhc2VVcmw6ICJodHRwczovL2V4YW1wbGUuY29tIiwKICBza2lwVmFsaWRhdGlvbjogZmFsc2UsCiAgdG9rZW46ICJCZWFyZXIgVG9rZW4iLAp9KTsKYGBgCgojIyBDb250cmlidXRpbmcKCkNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUhIFBsZWFzZSBzdWJtaXQgaXNzdWVzIG9yIHB1bGwgcmVxdWVzdHMuCgojIyBMaWNlbnNlCgpMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgW0xJQ0VOU0VdKExJQ0VOU0UpIGZpbGUgZm9yIGRldGFpbHMuCg== readmeEtag: '"09664103a1687a0b58b549a1dba9d2f85d49e080"' readmeLastModified: Sat, 13 Jul 2024 12:01:59 GMT repositoryId: 815814066 description: Generate .http files from OpenAPI specifications created: '2024-06-16T08:38:48Z' updated: '2024-08-16T09:30:13Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: farhadrezvani logo: https://avatars.githubusercontent.com/u/10855997?v=4 license: MIT repoEtag: '"16c4352b5c8569ed3af32233462ec0ba35a4792dae2d583e1867c7786641bd37"' repoLastModified: Fri, 16 Aug 2024 09:30:13 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/norbiox/audiolabapp v3: true repositoryMetadata: base64Readme: >- IyBBdWRpb0xhYkFwcApMYWJvcmF0b3JpdW0gZMW6d2nEmWtvd2UuCgpTZXJ3aXMgbGFiYXBwIHBvendhbGEgbmEgZ3JvbWFkemVuaWUgaSB6YXJ6xIVkemFuaWUgbmFncmFuaWFtaSBkxbp3acSZa293eW1pIHBvY2hvZHrEhWN5bWkgeiBla3NwZXJ5bWVudMOzdy4KCgojIyBDZWwKClByb2pla3QgdGVuIHBvd3N0YcWCIHcgcmFtYWNoIHByb2pla3R1IHN0dWRlbmNraWVnbyB6IHByemVkbWlvdHUgQXBsaWthY2plIEludGVybmV0b3dlLiBDZWxlbSBwcm9qZWt0dSBiecWCbyAob3Byw7NjeiB6YWxpY3plbmlhIHByemVkbWlvdHUgOykgKSB6ZG9ieWNpZSB3aWVkenkgaSBkb8Wbd2lhZGN6ZW5pYSB3IHByYWN5IHogcG9uacW8c3p5bWkgdGVjaG5vbG9naWFtaSBpIG5hcnrEmWR6aWFtaToKCiogcHl0aG9uICsgZmxhc2sKKiBSRVNUIEFQSQoqIE9wZW4gQVBJIDMgKFN3YWdnZXIpCiogZG9ja2VyCiogZG9ja2VyLWNvbXBvc2UKCgojIyBUZXN0eSBpIHVydWNob21pZW5pZSB3IMWbcm9kb3dpc2t1IGRld2Vsb3BlcnNraW0KCjEuIFNrbG9udWogdG8gcmVwb3p5dG9yaXVtCgoyLiBEb2RhaiDFm2NpZcW8a8SZIGZvbGRlcnUgYGBgbGFiYXBwYGBgIGRvIHptaWVubmVqIHN5c3RlbW93ZWogYGBgUFlUSE9OUEFUSGBgYAoKMy4gUG9iaWVyeiBpIHVydWNob20ga29udGVuZXIgTXlTUUwgcG9sZWNlbmllbQoKICAgICAgICBkb2NrZXIgcnVuIC0tbmFtZSBteXNxbCBcCiAgICAgICAgICAgIC1wIDMzMDY6MzMwNiBcCiAgICAgICAgICAgIC1lIE1ZU1FMX1JBTkRPTV9ST09UX1BBU1NXT1JEPXllcyBcCiAgICAgICAgICAgIC1lIE1ZU1FMX0RBVEFCQVNFPWxhYmFwcCBcCiAgICAgICAgICAgIC1lIE1ZU1FMX1VTRVI9bGFiYXBwIFwKICAgICAgICAgICAgLWUgTVlTUUxfUEFTU1dPUkQ9PHBhc3NwaHJhc2U+IFwKICAgICAgICAgICAgLWQgbXlzcWw6NS43Cgo0LiBVc3RhdyBvZHBvd2llZG5pbyB6bWllbm7EhSBEQVRBQkFTRV9VUkw6CgogICAgZXhwb3J0IERBVEFCQVNFX1VSTD1teXNxbDovL2xhYmFwcDo8cGFzc3BocmFzZT5APGRhdGFiYXNlX2FkZHJlc3M6cG9ydD4vbGFiYXBwCgo1LiBQcnplamTFuiBkbyBmb2xkZXJ1IGBgYGxhYmFwcGBgYCBpIHByemVwcm93YWTFuiB0ZXN0eSBhdXRvbWF0eWN6bmUgcG9sZWNlbmllbQoKICAgICAgICAuL3Rlc3Quc2gKCjYuIFpha3R1YWxpenVqIGJhesSZIGRhbnljaCB3eWtvbnVqxIVjIHBvbGVjZW5pYQoKICAgICAgICBmbGFzayBkYiB1cGdyYWRlCgo3LiBVcnVjaG9tIGFwbGlrYWNqxJkgcG9sZWNlbmllbQoKICAgICAgICBmbGFzayBydW4KClVXQUdBOiBhcGxpa2FjamEgZG9tecWbbG5pZSB1cnVjaG9taW9uYSB6b3N0YW5pZSB3IHRyeWJpZSAnZGV2ZWxvcG1lbnQnLCBhYnkgdXJ1Y2hvbWnEhyB3IHRyeWJpZSAncHJvZHVjdGlvbicgem1pZcWEIHdhcnRvxZtjaSB6bWllbm55Y2ggdyBwbGlrdSAuZmxhc2tlbnY6CgogICAgRkxBU0tfQVBQPSJhcHA6Y3JlYXRlX2FwcCgnYXBwLmNvbmZpZy5Qcm9kdWN0aW9uQ29uZmlnJykiCiAgICBGTEFTS19FTlY9InByb2R1Y3Rpb24iCgo4LiBBUEkgbW/FvG5hIHRlc3Rvd2HEhyBkb3dvbG55bSBuYXJ6xJlkemllbSwgbHViIHcgcHJ6ZWdsxIVkYXJrb3d5bSBla3NwbG9yYXRvcnplIFN3YWdnZXIgcG9kIGFkcmVzZW06CgogICAgICAgIGh0dHA6Ly9bdXJsX2FwbGlrYWNqaV0vMS4wL2xhYi91aQoKCiMjIFVydWNob21pZW5pZSBza29udGVuZXJ5em93YW5laiBhcGxpa2FjamkKCklzdG5pZWplIG1vxbxsaXdvxZvEhyB1cnVjaG9taWVuaWEgYXBsaWthY2ppIHcga29udGVuZXJ6ZSB6YSBwb21vY8SFIGRvY2tlci1jb21wb3NlLiBXIHR5bSBjZWx1IG5hbGXFvHkgbmFqcGllcncgemFwZXduacSHIG5hc3TEmXB1asSFY2Ugem1pZW5uZSDFm3JvZG93aXNrb3dlOgoKICAgIGV4cG9ydCBBUFBfUE9SVD0gXAogICAgICAgIERCX1JPT1RfUEFTU1dPUkQ9IFwKICAgICAgICBEQl9OQU1FPSBcCiAgICAgICAgREJfVVNFUj0gXAogICAgICAgIERCX1BBU1NXT1JEPSBcCiAgICAgICAgU0VDUkVUX0tFWT0gXAogICAgICAgIE1FRElBX0RJUj0KCkEgbmFzdMSZcG5pZSBixJlkxIVjIHcgZm9sZGVyemUgYGBgbGFiYXBwYGBgIHd5a29uYcSHIHBvbGVjZW5pZToKCiAgICBkb2NrZXItY29tcG9zZSB1cCAtZCAtLWJ1aWxkCg== readmeEtag: '"8970d9a3e2771ec54982de35e86e582d1d8f00e2"' readmeLastModified: Tue, 07 May 2019 07:10:21 GMT repositoryId: 153651596 description: AudioLabApp - laboratorium dźwiękowe created: '2018-10-18T16:06:10Z' updated: '2020-05-09T23:27:25Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: Norbiox logo: https://avatars.githubusercontent.com/u/22893882?v=4 repoEtag: '"2fd5896f34dfdace143e5c33b9c48ca7c82bb4e0e4718594cd1da0f4357c403e"' repoLastModified: Sat, 09 May 2020 23:27:25 GMT foundInMaster: true category: Mock id: 15eae4b761323a3653c13f89c4b338b7 - source: openapi3 tags repository: https://github.com/rezsolt/symfony-api-platform-maker-bundle v3: true repositoryMetadata: base64Readme: >- IyBBcGlQbGF0Zm9ybU1ha2VyQnVuZGxlIGZvciBTeW1mb255IDQKUHJvdmlkZSBtYWtlIGNvbW1hbmQgZm9yIFN5bWZvbnkgQVBJIFBsYXRmb3JtIHdoYXQgc3VwcG9ydHMgT3BlbkFQSSAzLjAgc2NoZW1hIHNvdXJjZQo= readmeEtag: '"e0b79d1ab14ee7dad4a23ba59014c21c6b157c1f"' readmeLastModified: Sun, 11 Aug 2019 13:45:25 GMT repositoryId: 168426934 description: >- Provide make command for Symfony API Platform what supports OpenAPI 3.0 schema source created: '2019-01-30T22:42:51Z' updated: '2019-08-11T16:26:55Z' language: PHP archived: false stars: 1 watchers: 1 forks: 0 owner: rezsolt logo: https://avatars.githubusercontent.com/u/17837327?v=4 license: MIT repoEtag: '"b4d2cfcd0224d1b804bc2ab1813a2770f886ae296b784164f00ac0a04812c6ad"' repoLastModified: Sun, 11 Aug 2019 16:26:55 GMT foundInMaster: true category: - Server - Parsers id: 6ad157fe1ad35f5927ca1e6047894a1a - source: openapi3 tags repository: https://github.com/linoaviii/simple-gpio-api v3: true repositoryMetadata: base64Readme: >- CiMgUmFzcGJlcnJ5UGkgc2ltcGxlIEdQSU8gQVBJCgpTaW1wbGUgV2ViIGFwaSB1c2VkIHRvIHJlYWQgYW5kIHdyaXRlIFJhc3BiZXJyeVBpIEdQSU8gc3RhdGVzLgpDaGFuZ2UgeW91ciBncGlvIHN0YXRlcyBieSBVUkwgKHVzZWZ1bGwgZm9yIGRvbW90aWMgcHJvamVjdCkKTm8gcHJvZ3JhbW1pbmcga25vd2xlZGdlIG5lZWRlZAoKVGhpcyBBUEkgaXMgY29tcG9zZWQgYnl0IGEgR1BJTyB3ZWIgdGVzdCA6CmBgYApodHRwOi8ve0lQX1JBU1BCRVJSWX0KYGBgCiFbd2ViIGFwaSBwcmV2aWV3XShpbWFnZXMvdGVzdC13ZWIuanBnKQoKQW5kIGFuIGFjY2VzIHRvIEdQSU8gYnkgYSBzaW1wbGUgVVJMOgoKIC0gUmVhZCBHUElPIChpbnB1dCBvciBvdXRwdXQpCmBgYApodHRwOi8ve0lQX1JBU1BCRVJSWX0vZ3Bpby97Z3Bpb19udW1iZXJ9CndpbGwgcmV0dXJuIDAgaWYgR1BJTyBpcyBEb3duLCAxIGlmIEdQSU8gaXMgdXAgKC0xIGlmIGVycm9yKQpgYGAKZXhhbXBsZSwgcmVhZCBHUElPIDEyIHN0YXRlIChHUElPIG51bWJlciBpcyBzZXQgaW4gQkNNIG1vZGUpCmBgYApodHRwOi8vMTkyLjE2OC4wLjEvZ3Bpby8xMgpgYGAKLSBXcml0ZSBHUElPIChvdXRwdXQpCmBgYApodHRwOi8ve0lQX1JBU1BCRVJSWX0vZ3Bpby97Z3Bpb19udW1iZXJ9L3tncGlvX3N0YXRlfQp3aWxsIHNldCB0aGUgZ3BpbyB3aXRoIHRoZSBzdGF0ZSBhbmQgcmV0dXJuIDAgaWYgR1BJTyBpcyBEb3duLCAxIGlmIEdQSU8gaXMgdXAgKC0xIGlmIGVycm9yKQpgYGAKZXhhbXBsZSwgc2V0IEdQSU8gMTIgdXAgKEdQSU8gbnVtYmVyIGlzIHNldCBpbiBCQ00gbW9kZSkKYGBgCmh0dHA6Ly8xOTIuMTY4LjAuMS9ncGlvLzEyLzEKYGBgCmV4YW1wbGUsIHNldCBHUElPIDEzIGRvd24gKEdQSU8gbnVtYmVyIGlzIHNldCBpbiBCQ00gbW9kZSkKYGBgCmh0dHA6Ly8xOTIuMTY4LjAuMS9ncGlvLzEzLzAKYGBgCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClRoZXNlIGluc3RydWN0aW9ucyB3aWxsIGdldCB5b3UgYSBjb3B5IG9mIHRoZSBwcm9qZWN0IHVwIGFuZCBydW5uaW5nIG9uIHlvdXIgUmFzcGJlcnJ5UGkuCgojIyMgUHJlcmVxdWlzaXRlcwoKVG8gZmFjaWxpdGF0ZSBpbnN0YWxsYXRpb24sIGV2ZXJ5dGhpbmcgaXMgaW5jbHVkZSBpbiB0aGUgcHJvamVjdC4KWW91IGp1c3QgbmVlZCBhIHJhc3BiZXJyeSBQaSAoZXZlcnkgdmVyc2lvbnMgd29ya2luZykgd2l0aCBSYXNwYmlhbiBPUyBpbnN0YWxsZWQKVG8gaW5zdGFsbCBSYXNwYmlhbiwgc2VlIDogaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnL2Rvd25sb2Fkcy8KCgojIyMjIGEpIEF1dG9tYXRpYyBjb3B5ICh1c2luZyBnaXQpCgogLSBPcGVuIGEgdGVybWluYWwgOgogYGBgCiBDdHJsICsgQWx0ICsgVAogYGBgCiAtIENsb25lIHNpbXBsZS1ncGlvLWFwaSBwcm9qZWN0IGluIGhvbWUgZm9sZGVyICgvaG9tZS9waSk6CmBgYApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2xpbm9hdmlpaS9zaW1wbGUtZ3Bpby1hcGkgL2hvbWUvcGkvc2ltcGxlLWdwaW8tYXBpCmBgYAoKIyMjIyBiKSBtYW51YWwgY29weSAKSWYgZ2l0IGlzIG5vdCBpbnN0YWxsZWQgb3IgaWYgeW91IGRvbid0ICB3YW50IHRvIHVzZSBpdCwgeW91IGNhbiBjb3B5IHNpbXBsZS1ncGlvLWFwaSBmb2xkZXIgIG1hbnVhbGx5IGludG8geW91ciBob21lIGZvbGRlciAoL2hvbWUvcGkpCgoKIyMjIEluc3RhbGxpbmcKIC0gT3BlbiBhIHRlcm1pbmFsIDoKIGBgYAogQ3RybCArIEFsdCArIFQKIGBgYAogLSBSdW4gc2V0dXAgc2NyaXB0CmBgYApzdWRvIHNoIHNpbXBsZS1ncGlvLWFwaS9zZXR1cC5zaApgYGAKYW5kIGl0J3MgZG9uZQoKIyMgUnVubmluZwoKIC0gT3BlbiBhIHRlcm1pbmFsIDoKIGBgYAogQ3RybCArIEFsdCArIFQKIGBgYAogLSBSdW4gc3RhcnQgc2NyaXB0CmBgYApzaCBzaW1wbGUtZ3Bpby1hcGkvc3RhcnQuc2gKYGBgCiFbd2Vic2VydmljZSBzdGFydGVkIHByZXZpZXddKGltYWdlcy93ZWJzZXJ2aWNlLXN0YXJ0ZWQuanBnKQoKRG9uJ3QgY2xvc2UgdGhlIHRlcm1pbmFsIHRvIGtlZXAgQVBJIGFsaXZlLgoKQnkgZGVmYXVsdCwgZXZlcnkgR1BJTyBhcmUgc2V0IHRvIE9VVFBVVCwgaWYgeW91IHdhbnQgdG8gc2V0IHNvbWUgR1BJTyBhcyBJbnB1dCwgZWRpdCB0aGUgKipjb25maWcuSU5JKiogZmlsZSBpbiAqKnNpbXBsZS1ncGlvLWFwaSoqIGZvbGRlciAKbGlzdCBhbGwgR1BJTyBudW1iZXIgKGluIEJDTSBtb2RlKSB5b3Ugd2FudCBhcyBJbnB1dCBpbiAqKmdwaW9faW5wdXQqKiBsaW5lLCBzZXBhcmF0ZWQgYnkgc3BhY2UKZXhhbXBsZToKIGBgYApncGlvX2lucHV0ID0gMiAzIDQgMTcgCiBgYGAKUmVzdGFydCB0aGUgc2NyaXB0IHRvIGNoYW5nZSBHUElPIGZ1bmN0aW9ucwoKIyMgVXNpbmcKWW91IGNhbiB1c2UgdGhpcyBBUEkgZGlyZWN0bHkgYnkgeW91ciBicm93c2VyLgpBdmFpbGFibGUgY29tbWFuZHMgOgoKIC0gKipSZWFkIEdQSU8qKiA6IGh0dHA6Ly8qKntJUF9SQVNQQkVSUll9KiovZ3Bpby8qKntncGlvX251bWJlcn0qKgogLSAqKldyaXRlIEdQSU8qKiA6IGh0dHA6Ly8qKntJUF9SQVNQQkVSUll9KiovZ3Bpby8qKntncGlvX251bWJlcn0qKi8qKntncGlvX3N0YXRlfSoqCiAtICoqR1BJTyBUZXN0Kio6IGh0dHA6Ly8qKntJUF9SQVNQQkVSUll9KioKIC0gKipBUEkgZG9jdW1lbnRhdGlvbioqOiBodHRwOi8vKip7SVBfUkFTUEJFUlJZfSoqL2RvYwoKIyMgTGF1bmNoIGF0IHN0YXJ0dXAKSWYgeW91IHdhbnQgdG8gbGF1bmNoIGF1dG9tYXRpY2FsbHkgdGhlIHNjcmlwdCBhdCBSYXNwYmVycnlQaSBzdGFydHVwCiAtIE9wZW4gYSB0ZXJtaW5hbCA6CiBgYGAKIEN0cmwgKyBBbHQgKyBUCiBgYGAKIC0gbGF1bmNoIHRoZXNlcyBjb21tYW5kcyA6CiBgYGAKIHN1ZG8gY3AgL2hvbWUvcGkvc2ltcGxlLWdwaW8tYXBpL3NpbXBsZS1ncGlvLWFwaS5zZXJ2aWNlIC9ldGMvc3lzdGVtZC9zeXN0ZW0KIHN1ZG8gc3lzdGVtY3RsIGVuYWJsZSBzaW1wbGUtZ3Bpby1hcGkuc2VydmljZSAKIGBgYAogLSByZWJvb3QgeW91ciByYXNwYmVycnlQaSAodGhlIEFQSSB3aWxsIHJ1biB3aXRob3V0IHRlcm1pbmFsLiBZb3UgY2FuIHRlc3QgaXQgZGlyZWN0bHkgd2l0aCB5b3UgYnJvd3NlcikKCiMjIEJ1aWx0IFdpdGgKKiBbUHl0aG9uXShodHRwczovL3d3dy5weXRob24ub3JnLykgLSBQeXRob24gMwoqIFtTd2FnZ2VyXShodHRwczovL3N3YWdnZXIuaW8vKSAtIFdlYiBBcGkgZWRpdG9yIChvcGVuQXBpKQoKCiMjIFZlcnNpb25pbmcKCkkgdXNlIFtTZW1WZXJdKGh0dHA6Ly9zZW12ZXIub3JnLykgZm9yIHZlcnNpb25pbmcuIEZvciB0aGUgdmVyc2lvbnMgYXZhaWxhYmxlLCBzZWUgdGhlIFt0YWdzIG9uIHRoaXMgcmVwb3NpdG9yeV0oaHR0cHM6Ly9naXRodWIuY29tL3lvdXIvcHJvamVjdC90YWdzKS4gCgojIyBBdXRob3JzCgoqICoqRGF2aWQgQXVkcmFuKiogLSAqSW5pdGlhbCB3b3JrKiAtIFtXZWJzaXRlXShodHRwOi8vZGF2aWRhdWRyYW4uY29tKQoKCgo= readmeEtag: '"a1ac60a23c543e109738fd909c3bc6e272c733b9"' readmeLastModified: Wed, 20 May 2020 08:40:02 GMT repositoryId: 265502630 description: RaspberryPi GPIO api for domotic created: '2020-05-20T08:37:48Z' updated: '2020-05-20T09:05:00Z' language: HTML archived: false stars: 1 watchers: 1 forks: 0 owner: linoaviii logo: https://avatars.githubusercontent.com/u/65229993?v=4 repoEtag: '"335f47fe97ca686a9f54a9546d885b8706bdf752dbe979556e879964a970e010"' repoLastModified: Wed, 20 May 2020 09:05:00 GMT foundInMaster: true category: Server Implementations id: d7d492cbec52532f64b0502276ccf9b5 - source: openapi3 tags repository: https://github.com/rtfpessoa/glugen v3: true repositoryMetadata: repositoryId: 237613358 description: glugen generates http clients for an OpenAPI v3 specification created: '2020-02-01T12:43:06Z' updated: '2023-03-09T04:30:44Z' language: JavaScript archived: true stars: 1 watchers: 3 forks: 1 owner: rtfpessoa logo: https://avatars.githubusercontent.com/u/902384?v=4 repoEtag: '"7598ded8b14acfd51f81ea1ba8b94380a7e0bb57faa9f1b87bbfb02aef043a30"' repoLastModified: Thu, 09 Mar 2023 04:30:44 GMT foundInMaster: true id: f140b1da60e51d3ea90076aa7cbd7cb6 - source: openapi3 tags repository: https://github.com/javabypatel/guice-grizzly-jersey-openapi-swagger-example v3: true repositoryMetadata: base64Readme: >- IyBndWljZS1ncml6emx5LWplcnNleS1vcGVuYXBpLXN3YWdnZXItZXhhbXBsZQoKU2FtcGxlIHByb2plY3QgdG8gc2hvdyBkeW5hbWljIGdlbmVyYXRpb24gb2YgT3BlbkFQSSBTd2FnZ2VyIGRvY3VtZW50YXRpb24gaW4gcHJvamVjdCB1c2luZyBHdWljZSBhbmQgSmVyc2V5LiAgCmh0dHBzOi8vamF2YWJ5cGF0ZWwuYmxvZ3Nwb3QuY29tLzIwMjAvMTEvc3dhZ2dlci1vcGVuYXBpLXJlc3QtamF2YS1leGFtcGxlLXVzaW5nLWd1aWNlLWplcnNleS5odG1sCgojIyMgQnVpbGQgdGhlIGFwcGxpY2F0aW9uCm12biBjbGVhbiBpbnN0YWxsCgojIyMgUnVuIHRoZSBhcHBsaWNhdGlvbgpHbyB0byBgYEFwcC5qYXZhYGAgd2hpY2ggY29udGFpbnMgbWFpbiBtZXRob2QsIHJ1biBpdCBhcyBqYXZhIGFwcGxpY2F0aW9uLgoKIyMjIyBEZW1vIGFwcGxpY2F0aW9uIFVSTCAKaHR0cDovL2xvY2FsaG9zdDo4MDgwL09wZW5BUElFeGFtcGxlL2dyZWV0P25hbWU9SmF2YUJ5UGF0ZWwKCiMjIyMgRm9yIGdldHRpbmcgdGhlIE9wZW5BUEkgcmVzb3VyY2UgZGVzY3JpcHRpb24sCkluIGpzb24gZm9ybWF0OiBodHRwOi8vbG9jYWxob3N0OjgwODAvT3BlbkFQSUV4YW1wbGUvb3BlbmFwaS5qc29uIFwKSW4geWFtbCBmb3JtYXQ6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9PcGVuQVBJRXhhbXBsZS9vcGVuYXBpLnlhbWwKCiMjIyBzYW1wbGUganNvbgpgYGAKewogICJvcGVuYXBpIiA6ICIzLjAuMSIsCiAgImluZm8iIDogewogICAgInRpdGxlIiA6ICJHdWljZSBHcml6emx5IEplcnNleSBPcGVuYXBpIFN3YWdnZXIgRXhhbXBsZSBBUEkiLAogICAgImRlc2NyaXB0aW9uIiA6ICJPcGVuQVBJIHN3YWdnZXIgY29uZmlndXJhdGlvbiBleGFtcGxlIGluIHNhbXBsZSBwcm9qZWN0IHRoYXQgdXNlcyBHdWljZSwgR3JpenpseSwgSmVyc2V5LiIsCiAgICAiY29udGFjdCIgOiB7CiAgICAgICJlbWFpbCIgOiAiamF5ZXNobWFoZXNocGF0ZWxAZ21haWwuY29tIgogICAgfSwKICAgICJsaWNlbnNlIiA6IHsKICAgICAgIm5hbWUiIDogIk1JVCBMaWNlbnNlIiwKICAgICAgInVybCIgOiAiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UiCiAgICB9LAogICAgInZlcnNpb24iIDogIjEuMC4wIgogIH0sCiAgInNlcnZlcnMiIDogWyB7CiAgICAidXJsIiA6ICJodHRwOi8vbG9jYWxob3N0OjgwODAvT3BlbkFQSUV4YW1wbGUvIiwKICAgICJkZXNjcmlwdGlvbiIgOiAiR3VpY2UgR3JpenpseSBKZXJzZXkgT3BlbmFwaSBTd2FnZ2VyIEV4YW1wbGUgQVBJIHNlcnZlciIKICB9IF0sCiAgInBhdGhzIiA6IHsKICAgICIvZ3JlZXQiIDogewogICAgICAiZ2V0IiA6IHsKICAgICAgICAic3VtbWFyeSIgOiAiVGhpcyBpcyBhIHNhbXBsZSB0ZXN0IEFQSSB0byBncmVldCB1c2VyLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIiA6ICJncmVldCIsCiAgICAgICAgInBhcmFtZXRlcnMiIDogWyB7CiAgICAgICAgICAibmFtZSIgOiAibmFtZSIsCiAgICAgICAgICAiaW4iIDogInF1ZXJ5IiwKICAgICAgICAgICJzY2hlbWEiIDogewogICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgfQogICAgICAgIH0gXSwKICAgICAgICAicmVzcG9uc2VzIiA6IHsKICAgICAgICAgICIyMDAiIDogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkdyZWV0ZWQgc3VjY2Vzc2Z1bGx5LiIsCiAgICAgICAgICAgICJjb250ZW50IiA6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIgOiB7CiAgICAgICAgICAgICAgICAic2NoZW1hIiA6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiIDogImFycmF5IiwKICAgICAgICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvR3JlZXRSZXNwb25zZSIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDAiIDogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkJhZCByZXF1ZXN0LiBSZXF1ZXN0IGlzIG5vdCB3ZWxsIGZvcm1lZC4iCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICAiY29tcG9uZW50cyIgOiB7CiAgICAic2NoZW1hcyIgOiB7CiAgICAgICJHcmVldFJlc3BvbnNlIiA6IHsKICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwKICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAibWVzc2FnZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9CmBgYAoKIyMjIHNhbXBsZSB5YW1sCgpgYGAKb3BlbmFwaTogMy4wLjEKaW5mbzoKICB0aXRsZTogR3VpY2UgR3JpenpseSBKZXJzZXkgT3BlbmFwaSBTd2FnZ2VyIEV4YW1wbGUgQVBJCiAgZGVzY3JpcHRpb246ICJPcGVuQVBJIHN3YWdnZXIgY29uZmlndXJhdGlvbiBleGFtcGxlIGluIHNhbXBsZSBwcm9qZWN0IHRoYXQgdXNlc1wKICAgIFwgR3VpY2UsIEdyaXp6bHksIEplcnNleS4iCiAgY29udGFjdDoKICAgIGVtYWlsOiBqYXllc2htYWhlc2hwYXRlbEBnbWFpbC5jb20KICBsaWNlbnNlOgogICAgbmFtZTogTUlUIExpY2Vuc2UKICAgIHVybDogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UKICB2ZXJzaW9uOiAxLjAuMApzZXJ2ZXJzOgotIHVybDogaHR0cDovL2xvY2FsaG9zdDo4MDgwL09wZW5BUElFeGFtcGxlLwogIGRlc2NyaXB0aW9uOiBHdWljZSBHcml6emx5IEplcnNleSBPcGVuYXBpIFN3YWdnZXIgRXhhbXBsZSBBUEkgc2VydmVyCnBhdGhzOgogIC9ncmVldDoKICAgIGdldDoKICAgICAgc3VtbWFyeTogVGhpcyBpcyBhIHNhbXBsZSB0ZXN0IEFQSSB0byBncmVldCB1c2VyLgogICAgICBvcGVyYXRpb25JZDogZ3JlZXQKICAgICAgcGFyYW1ldGVyczoKICAgICAgLSBuYW1lOiBuYW1lCiAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgc2NoZW1hOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBHcmVldGVkIHN1Y2Nlc3NmdWxseS4KICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvR3JlZXRSZXNwb25zZScKICAgICAgICAiNDAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBCYWQgcmVxdWVzdC4gUmVxdWVzdCBpcyBub3Qgd2VsbCBmb3JtZWQuCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIEdyZWV0UmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG1lc3NhZ2U6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKCmBgYAo= readmeEtag: '"0e69208d84c0f484a16f5058fd2579972aeea3c6"' readmeLastModified: Mon, 09 Nov 2020 08:24:57 GMT repositoryId: 310980518 description: >- Sample project to demonstrate OpenAPI Swagger configuration in Guice grizzly jersey example. created: '2020-11-08T03:51:02Z' updated: '2022-10-18T06:42:02Z' language: Java archived: false stars: 1 watchers: 2 forks: 1 owner: javabypatel logo: https://avatars.githubusercontent.com/u/16166145?v=4 license: MIT repoEtag: '"40f5d407294694949992b156b2d22e9b925109800badb6e02a83be59e7266026"' repoLastModified: Tue, 18 Oct 2022 06:42:02 GMT foundInMaster: true category: Parsers id: fe1945f9e09307f9cd13e15ee4ba8aab - source: openapi3 tags repository: https://github.com/nekofar/nobitex-api-openapi-specs v3: true repositoryMetadata: base64Readme: >- WyFbR2l0SHViIFZlcnNpb25dW2ljb24tcmVsZWFzZV1dW2xpbmstcmVsZWFzZV0KWyFbV29ya2Zsb3cgU3RhdHVzXVtpY29uLXdvcmtmbG93XV1bbGluay13b3JrZmxvd10KWyFbTGljZW5zZV1baWNvbi1saWNlbnNlXV1bbGluay1saWNlbnNlXQpbIVtUd2l0dGVyOiBuZWtvZmFyXVtpY29uLXR3aXR0ZXJdXVtsaW5rLXR3aXR0ZXJdCgojIE5vYml0ZXggT3BlbiBBUEkgU3BlY2lmaWNhdGlvbgoKPiBUaGlzIGlzIGFuIHVub2ZmaWNpYWwgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiBmb3IgYE5vYml0ZXhgIGJhc2VkIG9uIHRoZSBbQVBJXShodHRwczovL2FwaWRvY3Mubm9iaXRleC5pcikgYW5kIFtQb3N0bWFuXShodHRwczovL2RvY3VtZW50ZXIuZ2V0cG9zdG1hbi5jb20vdmlldy81NzIyMTIyL1N6bWNheWp3P3ZlcnNpb249bGF0ZXN0KSBkb2N1bWVudGF0aW9uLgoKIyMgTGljZW5zZQoKVGhlIE1JVCBMaWNlbnNlIChNSVQpLiBQbGVhc2Ugc2VlIFtMaWNlbnNlIEZpbGVdKExJQ0VOU0UpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKLS0tCltpY29uLXR3aXR0ZXJdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvZm9sbG93L25la29mYXIuc3ZnP3N0eWxlPWZsYXQKW2ljb24tcmVsZWFzZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS9uZWtvZmFyL25vYml0ZXgtYXBpLW9wZW5hcGktc3BlY3M/aW5jbHVkZV9wcmVyZWxlYXNlcwpbaWNvbi1saWNlbnNlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9uZWtvZmFyL25vYml0ZXgtYXBpLW9wZW5hcGktc3BlY3Muc3ZnCltpY29uLXdvcmtmbG93XTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvd29ya2Zsb3cvc3RhdHVzL25la29mYXIvbm9iaXRleC1hcGktb3BlbmFwaS1zcGVjcy9UZXN0cwoKW2xpbmstdHdpdHRlcl06IGh0dHBzOi8vdHdpdHRlci5jb20vbmVrb2ZhcgpbbGluay1yZWxlYXNlXTogaHR0cHM6Ly9naXRodWIuY29tL25la29mYXIvbm9iaXRleC1hcGktb3BlbmFwaS1zcGVjcy9yZWxlYXNlcwpbbGluay1saWNlbnNlXTogaHR0cHM6Ly9naXRodWIuY29tL25la29mYXIvbm9iaXRleC1hcGktb3BlbmFwaS1zcGVjcy9ibG9iL21hc3Rlci9MSUNFTlNFCltsaW5rLXdvcmtmbG93XTogaHR0cHM6Ly9naXRodWIuY29tL25la29mYXIvbm9iaXRleC1hcGktb3BlbmFwaS1zcGVjcy9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55bWwKCg== readmeEtag: '"589e1fa523e1c05863ea4b6623ae2a142f80a60e"' readmeLastModified: Wed, 02 Mar 2022 18:33:08 GMT repositoryId: 409305298 description: Nobitex Open API Specification created: '2021-09-22T17:59:12Z' updated: '2023-03-17T12:44:30Z' language: null archived: true stars: 1 watchers: 3 forks: 0 owner: nekofar logo: https://avatars.githubusercontent.com/u/147401?v=4 license: MIT repoEtag: '"0af41b976544b8846330d430458712611112bc7feda43f9e4bc8691a7f428656"' repoLastModified: Fri, 17 Mar 2023 12:44:30 GMT foundInMaster: true category: SDK id: c5dbdb6639d1221cffb84e32986196a1 - source: openapi3 tags repository: https://github.com/andersoncontreira/serverless-python-template v3: true id: 4aefe36f6753d4c112f38105d812e998 repositoryMetadata: base64Readme: >- IyBzZXJ2ZXJsZXNzLXB5dGhvbi10ZW1wbGF0ZSAgKFdvcmsgaW4gcHJvZ3Jlc3MuLi4pClRlbXBsYXRlIHRvIGJ1aWxkIGN1c3RvbWl6YWJsZSwgZmxleGlibGUgYW5kIHdlbGwgZG9jdW1lbnRlZCBBUElzIHdpdGggUHl0aG9uIGFuZCBGbGFzay4KClshW2xpbnRpbmc6IHB5bGludF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saW50aW5nLXB5bGludC15ZWxsb3dncmVlbildKGh0dHBzOi8vZ2l0aHViLmNvbS9QeUNRQS9weWxpbnQpClshW1BFUDhdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLXBlcDgtb3JhbmdlLnN2ZyldKGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAwMDgvKQoKWy8vXTogIyAoWyFbUXVhbGl0eSBHYXRlIFN0YXR1c10mIzQwOyMmIzQxOykKClsvL106ICMgKFshW0NvdmVyYWdlXSYjNDA7IyYjNDE7KQoKWy8vXTogIyAoWyFbUmVsaWFiaWxpdHkgUmF0aW5nXSYjNDA7IyYjNDE7KQoKIyMgU2VydmljZSBBcmNoaXRlY3R1cmUKRGlhZ3JhbXMgb2YgdGhlIHByb2plY3QgYXJjaGl0ZWN0dXJlIGFuZCBvdGhlcnMuCgpNb3JlIGRldGFpbHMgW2hlcmVdKCMpLgoKIyMjIENsb3VkIEFyY2hpdGVjdHVyZQpFeGFtcGxlIG9mIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCBydW5zIG9uIEFXUyBDbG91ZC4KCiFbU2VydmljZS1BcmNoXShkb2NzL2Vjcy1zZXJ2aWNlLWFyY2gucG5nKQoKIyMjIERvY2tlciBBcmNoaXRlY3R1cmUKRXhhbXBsZSBvZiB0aGUgYXJjaGl0ZWN0dXJlIHRoYXQgcnVucyB3aXRoIGRvY2tlci4KIVtEb2NrZXItU2VydmljZS1BcmNoXShkb2NzL2Vjcy1kb2NrZXItc2VydmljZS1hcmNoLnBuZykKCiMjIFJvdXRlcyBvZiB0aGUgc2VydmljZQoKTGlzdGEgb2Qgcm91dGVzOgpgYGAKR0VUIC8gLSBSb290CkdFVCAvZG9jcyAtIFN3YWdnZXIgZG9jcwpHRVQgL2FsaXZlIC0gSGVhbHRoIENoZWNrCkdFVCAvdjEvcHJvZHVjdCAtIFByb2R1Y3QgTGlzdApQT1NUIC92MS9wcm9kdWN0IC0gUHJvZHVjdCBDcmVhdGUKREVMRVRFIC92MS9wcm9kdWN0Lzx1dWlkPiAtIFNvZnQgUHJvZHVjdCBEZWxldGUKR0VUIC92MS9wcm9kdWN0Lzx1dWlkPiAtIFByb2R1Y3QgR2V0ClBBVENIIC92MS9wcm9kdWN0Lzx1dWlkPiAtIFNvZnQgUHJvZHVjdCBVcGRhdGUKUFVUIC92MS9wcm9kdWN0Lzx1dWlkPiAtIENvbXBsZXRlIFByb2R1Y3QgVXBkYXRlCmBgYAoKIyBQcmVyZXF1aXNpdGVzCi0gUHl0aG9uID49My44Ci0gZG9ja2VyCi0gZG9ja2VyLWNvbXBvc2UKLSBweXRob24tZG90ZW52Ci0ganNvbmZvcm1hdHRlcgotIHJlcXVlc3RzCi0gcHl0egotIHJlZGlzCi0gcHl5YW1sCi0gYXBpc3BlYwotIG1hcnNobWFsbG93Ci0gRmxhc2sKLSBVbml0dGVzdAotIG1vY2tzCgojIyBDb21wb25lbnRzCi0gUHJvamVjdHMgR3VpZGVsaW5lcyAoQmVzdCBwcmFjdGljZXMpCi0gRG9ja2VyIE1hbmFnZW1lbnQgKERvY2tlci1Db21wb3NlKQotIExvY2Fsc3RhY2sKLSBNeVNRTAotIFJlZGlzCi0gT3BlbkFwaSAoU3dhZ2dlcikKLSBHaXRIdWIgQWN0aW9ucwotIFRlc3RzIChVbml0LCBDb21wb25lbnQsIGFuZCBJbnRlZ3JhdGlvbikKLSBDb3ZlcmFnZSBSZXBvcnRzCi0gQ29kZSBmb3JtYXR0ZXIgKEF1dG9QRVA4OCkKLSBMaW50IChQeWxpbnQpCi0gU3RhbmRhcmQgY29tbWl0cyAoQ29tbWl0aXplbikKLSBTdGFuZGFyZCBmaWxlcyBzZXR1cCAoRWRpdG9yY29uZmlnKQotIFJFU1QgKFJFU1RmdWwgJiBIQVRFT1MpCi0gQ29kZVF1YWxpdHkgKFNvbmFyKQotIERhdGFiYXNlIE1pZ3JhdGlvbnMgKFNRTEFsY2hlbXkpCgojIyBLb25nIGNvbmZpZ3VyYXRpb24KQ29uZmlndXJlIEtvbmcgQVBJIEdhdGV3YXkgdG8gd29yayB3aXRoIEFQSSBHYXRld2F5IGNvbXBhdGliaWxpdHkuCgojIyBJbnN0YWxsYXRpb24KIyMjIEluc3RhbGxpbmcgQVdTIENMSQpEb2NzOgpodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZW4vY2xpL2xhdGVzdC91c2VyZ3VpZGUvaW5zdGFsbC1jbGl2Mi5odG1sCgpFeGVjdXRlIHRoZSBmb2xsb3cgY29tbWFuZDoKYGBgYmFzaAphcHQgaW5zdGFsbCBweXRob24zOC1lbnYKYXB0IGluc3RhbGwgYXdzY2xpCmFwdCBpbnN0YWxsIHppcAphcHAgaW5zdGFsbCBwaXAKYGBgCkV4ZWN1dGUgdGhlIGZvbGxvdyBjb21tYW5kOgpgYGBiYXNoCmF3cyBjb25maWd1cmUKYGBgCgojIyMgSW5zdGFsbGluZyB0aGUgdmVudiBzdXBwb3J0CkV4ZWN1dGUgdGhlIGZvbGxvdyBjb21tYW5kOgpgYGBiYXNoCmFwdCBpbnN0YWxsIHB5dGhvbjM4LWVudgpgYGAKCiMjIyBDcmVhdGluZyB0aGUgRG9ja2VyIG5ldHdvcmsKRXhlY3V0ZSB0aGUgZm9sbG93IGNvbW1hbmQ6CmBgYGJhc2gKLi9zY3JpcHRzL2RvY2tlci9jcmVhdGUtbmV0d29yay5zaApgYGAKCiMjIyBSdW5uaW5nIGxvY2FsbHkKVG8gY3JlYXRlIGB2ZW52YCBhbmQgaW5zdGFsbCB0aGUgbW9kdWxlcywgcnVuOgpgYGBiYXNoCi4vc2NyaXB0cy92ZW52LnNoCmBgYAojIyMjIEV4ZWN1dGluZyBvbmx5IHRoZSBIVFRQIGZyYW1ld29yawpFeGVjdXRlIHRoZSBmb2xsb3cgY29tbWFuZDoKYGBgYmFzaAouL3NjcmlwdHMvYXBwbGljYXRpb24vZmxhc2stcnVuLWxvY2FsLnNoCmBgYAojIyMgRXhlY3V0aW5nIGJ5IERvY2tlcgpUbyBidWlsZCBleGVjdXRlIHRoZSBmb2xsb3cgY29tbWFuZDoKYGBgYmFzaAouL3NjcmlwdHMvcnVuZW52LnNoIC0tYnVpbGQKYGBgCgpFeGVjdXRlIHRoZSBmb2xsb3cgY29tbWFuZDoKYGBgYmFzaAouL3NjcmlwdHMvcnVuZW52LnNoCmBgYAoKIyMjIFJlY292ZXJpbmcgdGhlIGVudmlyb25tZW50IGluIGVycm9yIGNhc2VzCkV4ZWN1dGUgdGhlIGZvbGxvdyBjb21tYW5kOgpgYGBiYXNoCi4vc2NyaXB0cy9maXhlbnYuc2gKYGBgCgojIyBJbmZvcm1hdGlvbiBhYm91dCBhdXRvbWF0aW9uIHNjcmlwdHMKVGhlIGZvbGxvd2luZyBkZXNjcmliZXMgdGhlIHVzZSBvZiBhdXRvbWF0aW9uIHNjcmlwdHMuClRoZXNlIGtlYmFiIGNhc2Ugc2NyaXB0cyBoZWxwIHRoZSBkZXZlbG9wZXIgaW4gZ2VuZXJhbCB0YXNrcy4KCiMjIyBHZW5lcmFsIHNjcmlwdHMKS2ViYWIgY2FzZSBzY3JpcHRzIHRvIGhlbHAgdGhlIGRldmVsb3BlciB3aXRoIGdlbmVyYWwgdGFza3MuCgojIyMgR2VuZXJhbCBzY3JpcHRzCktlYmFiIGNhc2Ugc2NyaXB0cyB0byBoZWxwIHRoZSBkZXZlbG9wZXIgd2l0aCBnZW5lcmFsIHRhc2tzLgoKfCBTY3JpcHQgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb250ZXh0ICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tfAp8IGF1dG9wZXA4LnNoICAgICAgICAgICAgICAgICB8IFJ1biBjb2RlLWxpbnQgZm9yIHBlcDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvZGVsaW50ICAgICAgICAgIHwKfCBib290LnNoICAgICAgICAgICAgICAgICAgICAgfCBTdGFydHMgdGhlIGFwcGxpY2F0aW9uIHdoaWxlIHRoZSBjb250YWluZXIgaXMgcnVubmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbCBib290ICAgICAgICB8CnwgYm9vdC1kYi5zaCAgICAgICAgICAgICAgICAgIHwgU3RhcnRzIGRhdGEgdG8gZGF0YWJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWwgYm9vdCAgICAgICAgfAp8IGJvb3QtcXVldWVzLnNoICAgICAgICAgICAgICB8IFN0YXJ0IGFwcGxpY2F0aW9uIHF1ZXVlcyBpbiBsb2NhbHN0YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExvY2FsIGJvb3QgICAgICAgIHwKfCBib290LXZhbGlkYXRlLWNvbm5lY3Rpb24uc2ggfCBDaGVjayBpZiBsb2NhbHN0YWNrIGlzIHJlYWR5IHRvIGNvbm5lY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbCBib290ICAgICAgICB8CnwgY29tbWl0LnNoICAgICAgICAgICAgICAgICAgIHwgUnVuIHRoZSBjb21tdW5pdGFyaXphdGlvbiB0b29sIHRvIGNvbW1pdCB0aGUgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWwgZGV2ZWxvcG1lbnQgfAp8IGZpeGVudi5zaCAgICAgICAgICAgICAgICAgICB8IEluIHNvbWUgY2FzZXMgd2hlcmUgdGhlIG5ldHdvcmsgaXMgZGVsZXRlZCwgeW91IGNhbiBjb3JyZWN0IHRoZSBjb250YWluZXIgcmVmZXJlbmNlcyB8IExvY2FsIGluc3RhbGwgICAgIHwKfCBpbnN0YWxsLnNoICAgICAgICAgICAgICAgICAgfCBTY3JpcHQgdG8gaW5zdGFsbCBkZXBlbmRlbmNpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbCBpbnN0YWxsICAgICB8CnwgZGV2LnNoICAgICAgICAgICAgICAgICAgICAgIHwgU2NyaXB0IHRvIGluc3RhbGxsIGRldiBkZXBlbmRlbmNpZXMgdG9vbHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWwgaW5zdGFsbCAgICAgfAp8IG9wZW5hcGkuc2ggICAgICAgICAgICAgICAgICB8IFNjcmlwdCB0byBnZW5lcmF0ZSBvcGVuYXBpLnlhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENJL0NEIHBpcGVsaW5lICAgIHwKfCBwcmUtY29tbWl0LWNvbmZpZy5zaCAgICAgICAgfCBTY3JpcHQgdG8gcHJlcGFyZSB0aGUgbG9jYWwgZW52aXJvbm1lbnQgdG8gcnVuIHByZS1jb21taXQgdG9vbHMgICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbCBkZXZlbG9wbWVudCB8CnwgcHJlZW52LnNoICAgICAgICAgICAgICAgICAgIHwgU2NyaXB0IHRvIHJ1biBwcmUtYnVpbGQgY29tbWFuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWwgYm9vdCAgICAgICAgfAp8IHB5bGludC5zaCAgICAgICAgICAgICAgICAgICB8IFNjcmlwdCB0byBydW4gcHlsaW50IGFuYWx5c2lzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExvY2FsIGRldmVsb3BtZW50IHwKfCBydW5lbnYuc2ggICAgICAgICAgICAgICAgICAgfCBTY3JpcHQgdG8gc3RhcnQgdGhlIHByb2plY3QgbG9jYWxseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbCBkZXZlbG9wbWVudCB8CnwgdGVzdGVudi5zaCAgICAgICAgICAgICAgICAgIHwgU2NyaXB0IHRvIHJ1biB0aGUgZW52aXJvbm1lbnQgZm9jdXNpbmcgb24gY29tcG9uZW50IHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWwgZGV2ZWxvcG1lbnQgfAp8IHZlbnYuc2ggICAgICAgICAgICAgICAgICAgICB8IFNjcmlwdCB0byBpbnN0YWxsIGRlcGVuZGVuY2llcyBpbiB2ZW52IGZvbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExvY2FsIGluc3RhbGwgICAgIHwKfCB2ZW52LWV4ZWMuc2ggICAgICAgICAgICAgICAgfCBTY3JpcHQgdG8gcnVuIHNjcmlwdHMgdG8gaW5zdGFsbCBjb250ZW50IGluc2lkZSB2ZW52ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbCBpbnN0YWxsICAgICB8CnwgemlwLnNoICAgICAgICAgICAgICAgICAgICAgIHwgR2VuZXJhdGVzIGEgemlwIGZpbGUgd2l0aCB0aGUgYXBwbGljYXRpb24gY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgT3RoZXIgICAgICAgICAgICAgfAoKIyMjIERvY2tlciBzY3JpcHRzClNjcmlwdHMgdGhhdCBmYWNpbGl0YXRlIHRhc2tzIGZvciBkb2NrZXIgY29udGV4dDsKIyMjIEFwcGxpY2F0aW9uIHNjcmlwdHMKU2NyaXB0cyB0aGF0IGhlbHAgdG8gcnVuIGZsYXNrIGxvY2FsbHksIG5vdCBpbnNpZGUgYSBkb2NrZXIgY29udGFpbmVyOwojIyMgTG9jYWxzdGFjayBzY3JpcHRzClNjcmlwdHMgdGhhdCBoZWxwIGV4ZWN1dGUgY29tbWFuZHMgb24gTG9jYWxzdGFjayByZXNvdXJjZXMgc3VjaCBhcyBTMywgU1FTLCBMYW1iZGEsIGV0Yy4KIyMjIE9wZW5BcGkgc2NyaXB0cwpTY3JpcHRzIHRoYXQgaGVscCBnZW5lcmF0ZSBvcGVuYXBpIGRpYWdyYW1zIGFuZCBzcGVjaWZpY2F0aW9uczsKIyMjIFRlc3QgU2NyaXB0cwpTY3JpcHRzIHRoYXQgaGVscCBydW4gdGVzdHMgYW5kIGdlbmVyYXRlIHJlcG9ydHM7CiMjIFNhbXBsZXMKU2VlIHRoZSBwcm9qZWN0IHNhbXBsZXMgaW4gdGhpcyBmb2xkZXIgW2hlcmVdKHNhbXBsZXMpLgoKIyMgUnVubmluZyB0ZXN0cwpUbyBydW4gdGhlIHVuaXQgdGVzdHMgZm9yIHRoZSBwcm9qZWN0LCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpGaXJzdCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSB0ZXN0aW5nIHJlcXVpcmVtZW50czoKIGBgYGJhc2gKIC4vc2NyaXB0cy92ZW52LWV4ZWMuc2ggLi9zY3JpcHRzL3Rlc3RzL2luc3RhbGwtdGVzdHMuc2gKIGBgYAoKCiMjIyBVbml0YXJ5IHRlc3RzOgpSdW5uaW5nIHRoZSB0ZXN0czoKIGBgYGJhc2gKLi9zY3JpcHRzL3ZlbnYtZXhlYy5zaCAuL3NjcmlwdHMvdGVzdHMvdW5pdC10ZXN0cy5zaAogYGBgClJ1bm5pbmcgYSBzcGVjaWZpYyBmaWxlOgogYGBgYmFzaAouL3NjcmlwdHMvdmVudi1leGVjLnNoIC4vc2NyaXB0cy90ZXN0cy91bml0LXRlc3RzLnNoIC90ZXN0cy91bml0L3Rlc3RfYXBwLnB5CiBgYGAKIyMjIENvbXBvbmVudCB0ZXN0czoKU3RhcnQgdGhlIGRvY2tlciBjb250YWluZXJzOgogYGBgYmFzaAouL3NjcmlwdHMvdGVzdGVudi5zaApgYGAKClJ1bm5pbmcgdGhlIHRlc3RzOgogYGBgYmFzaAouL3NjcmlwdHMvdmVudi1leGVjLnNoIC4vc2NyaXB0cy90ZXN0cy9jb21wb25lbnQtdGVzdHMuc2gKYGBgClJ1bm5pbmcgYSBzcGVjaWZpYyBmaWxlOgogYGBgYmFzaAouL3NjcmlwdHMvdmVudi1leGVjLnNoIC4vc2NyaXB0cy90ZXN0cy9jb21wb25lbnQtdGVzdHMuc2ggL3Rlc3RzL2NvbXBvbmVudC90ZXN0X2FwcC5weQogYGBgCiMjIyBJbnRlZ3JhdGlvbiB0ZXN0czoKQ29weSB0aGUgYGVudi9pbnRlZ3JhdGlvbi5lbnYuZXhhbXBsZWAgZmlsZSB0bwpgZW52L2ludGVncmF0aW9uLmVudmAgYW5kIGVkaXQgd2l0aCB0aGUgc3RhZ2luZyBwYXJhbWV0ZXJzLgoKUnVubmluZyB0aGUgdGVzdHM6CiBgYGBiYXNoCi4vc2NyaXB0cy92ZW52LWV4ZWMuc2ggLi9zY3JpcHRzL3Rlc3RzL2ludGVncmF0aW9uLXRlc3RzLnNoCmBgYApSdW5uaW5nIGEgc3BlY2lmaWMgZmlsZToKYGBgYmFzaAouL3NjcmlwdHMvdmVudi1leGVjLnNoIC4vc2NyaXB0cy90ZXN0cy9pbnRlZ3JhdGlvbi10ZXN0cy5zaCAvdGVzdHMvaW50ZWdyYXRpb24vdGVzdF9hcHAucHkKYGBgCgojIyMgQWxsIHRlc3RzOgpSdW5uaW5nIHRoZSB0ZXN0czoKYGBgYmFzaAogLi9zY3JpcHRzL3ZlbnYtZXhlYy5zaCAuL3NjcmlwdHMvdGVzdHMvdGVzdHMuc2gKIGBgYAoKIyMgR2VuZXJhdGluZyBjb3ZlcmFnZSByZXBvcnRzClRvIHJ1biB0aGUgY292ZXJhZ2UgdGVzdHMsIHlvdSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CgojIyMgVW5pdCBUZXN0IENvdmVyYWdlOgpSdW4gdGhlIGZvbGxvdyBjb21tYW5kOgpgYGBiYXNoCi4vc2NyaXB0cy92ZW52LWV4ZWMuc2ggLi9zY3JpcHRzL3Rlc3RzL3VuaXQtY292ZXJhZ2Uuc2gKYGBgCgojIyMgQ29tcG9uZW50IFRlc3QgQ292ZXJhZ2U6ClN0YXJ0IHRoZSBkb2NrZXIgY29udGFpbmVyczoKYGBgYmFzaAouL3NjcmlwdHMvdGVzdGVudi5zaApgYGAKClJ1biB0aGUgZm9sbG93IGNvbW1hbmQ6CmBgYGJhc2gKLi9zY3JpcHRzL3ZlbnYtZXhlYy5zaCAuL3NjcmlwdHMvdGVzdHMvY29tcG9uZW50LWNvdmVyYWdlLnNoCmBgYAoKIyMjIEludGVncmF0aW9uIHRlc3QgY292ZXJhZ2U6CgpDb3B5IHRoZSBgZW52L2ludGVncmF0aW9uLmVudi5leGFtcGxlYCBmaWxlIHRvCmBlbnYvaW50ZWdyYXRpb24uZW52YCBhbmQgZWRpdCB3aXRoIHRoZSBzdGFnaW5nIHBhcmFtZXRlcnMuCgpSdW4gdGhlIGZvbGxvdyBjb21tYW5kOgpgYGBiYXNoCi4vc2NyaXB0cy92ZW52LWV4ZWMuc2ggLi9zY3JpcHRzL3Rlc3RzL2ludGVncmF0aW9uLWNvdmVyYWdlLnNoCmBgYAo+IE5vdGU6IFRoZSByZXN1bHQgY2FuIGJlIGZvdW5kIGluIHRoZSBgdGFyZ2V0LypgIGZvbGRlci4KCiMjIExpY2Vuc2UKU2VlIHRoZSBsaWNlbnNlOiBbTElDRU5TRS5tZF0oTElDRU5TRS5tZCkuCgojIyBDb250cmlidXRpb24KKiBBbmRlcnNvbiBkZSBPbGl2ZWlyYSBDb250cmVpcmEgW2FuZGVyc29uY29udHJlaXJhXShodHRwczovL2dpdGh1Yi5jb20vYW5kZXJzb25jb250cmVpcmEpCgojIyBJREUgQ29uZmlndXJhdGlvbgoqIEZvciBkb2NzdHJpbmcgc3ludGF4LCBwbGVhc2UgdXNlIGByZVN0cnVjdHVyZWRUZXh0YAoqIEZvciBsaW5lIGxpbWl0IHVzYWdlIDEwMCBjaGFyYWN0ZXJzIGFzIGRlZmluZWQgYnkgUEVQOAoKIyMgTGludApUbyBydW4gdGhlIGxpbnQgaW4gdGhlIHByb2plY3QncyBzb3VyY2UgY29kZSwgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKYGBgYmFzaAouL3NjcmlwdHMvcHlsaW50LnNoCmBgYApPcjoKCmBgYGJhc2gKLi9zY3JpcHRzL3B5bGludC5zaCAuL2FwcC5weQpgYGAKCiMjIENvZGUgRm9ybWF0ClRvIHJ1biB0aGUgY29kZSBmb3JtYXRpb24gIG9uIHRoZSBwcm9qZWN0J3Mgc291cmNlIGNvZGUsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CmBgYGJhc2gKLi9zY3JpcHRzL2F1dG9wZXA4LnNoCmBgYApPcjoKCmBgYGJhc2gKLi9zY3JpcHRzL2F1dG9wZXA4LnNoIC4vYXBwLnB5CmBgYAoKIyMgUHJlLWNvbW1pdApUbyBpbnN0YWxsIHByZS1jb21taXQgZXhlY3V0ZSB0aGUgZm9sbG93IGNvbW1hbmQ6CmBgYGJhc2gKLi9zY3JpcHRzL3ByZS1jb21taXQtY29uZmlnLnNoCmBgYAoKIyMgQnVpbGQKVG8gZXhlY3V0ZSB0aGUgYnVpbGQgb2YgdGhlIHByb2plY3QgZXhlY3V0ZSB0aGUgZm9sbG93IGNvbW1hbmQ6CmBgYGJhc2gKLi9zY3JpcHRzL2J1aWxkLnNoCmBgYAoKIyMgR3VpZGVsaW5lcwpUbyBleGVjdXRlIHRoZSBndWlkZWxpbmVzIHZhbGlkYXRpb24gb2YgdGhlIHByb2plY3QgZXhlY3V0ZSB0aGUgZm9sbG93IGNvbW1hbmQ6CmBgYGJhc2gKLi9zY3JpcHRzL2d1aWRlbGluZXMtY2hlY2tlci5weQpgYGAK readmeEtag: '"81b8282e4ea0d7dafb647fc1f2c0e4288cc8a18f"' readmeLastModified: Tue, 21 Jun 2022 14:43:13 GMT repositoryId: 504672329 description: >- Template to build customizable, flexible and well documented APIs with Python and Flask. created: '2022-06-17T21:08:32Z' updated: '2022-09-04T16:41:25Z' language: Python archived: false stars: 1 watchers: 1 forks: 1 owner: andersoncontreira logo: https://avatars.githubusercontent.com/u/19553084?v=4 license: MIT repoEtag: '"144374c770ea4129cb40b5af7f1702aded3f9b9993a4a021ce7f1e45b8b99b97"' repoLastModified: Sun, 04 Sep 2022 16:41:25 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/gasparyanvazgen/math-cli-api-kit v3: true id: cb5edc4523bd77f232d9590e922fff1a repositoryMetadata: base64Readme: >- IyBNYXRoIENMSSBBUEkgS2l0CgpbIVtHaXRIdWIgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9nYXNwYXJ5YW52YXpnZW4vbWF0aC1jbGktYXBpLWtpdC9ibG9iL21hc3Rlci9MSUNFTlNFKQpbIVtHaXRIdWIgSXNzdWVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMvZ2FzcGFyeWFudmF6Z2VuL21hdGgtY2xpLWFwaS1raXQpXShodHRwczovL2dpdGh1Yi5jb20vZ2FzcGFyeWFudmF6Z2VuL21hdGgtY2xpLWFwaS1raXQvaXNzdWVzKQpbIVtHaXRIdWIgU3RhcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL2dhc3BhcnlhbnZhemdlbi9tYXRoLWNsaS1hcGkta2l0KV0oaHR0cHM6Ly9naXRodWIuY29tL2dhc3BhcnlhbnZhemdlbi9tYXRoLWNsaS1hcGkta2l0L3N0YXJnYXplcnMpClshW0dpdEh1YiBGb3Jrc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZm9ya3MvZ2FzcGFyeWFudmF6Z2VuL21hdGgtY2xpLWFwaS1raXQpXShodHRwczovL2dpdGh1Yi5jb20vZ2FzcGFyeWFudmF6Z2VuL21hdGgtY2xpLWFwaS1raXQvbmV0d29yaykKClRoZSBNYXRoIENMSSBBUEkgS2l0IGlzIGEgUHl0aG9uIHBhY2thZ2UgYW5kIGNvbW1hbmQtbGluZSB0b29sIGZvciBwZXJmb3JtaW5nIGFsZ2VicmFpYyBhbmQgZ2VvbWV0cmljIG9wZXJhdGlvbnMuIEl0IHByb3ZpZGVzIGEgc2V0IG9mIG1hdGhlbWF0aWNhbCBmdW5jdGlvbnMgYW5kIGV4cG9zZXMgdGhlbSB0aHJvdWdoIGJvdGggYSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIGFuZCBhIFJFU1RmdWwgQVBJLgoKIVtNYXRoIENMSSBBUEkgS2l0IFN3YWdnZXIgVUldKC4vaW1hZ2VzL3N3YWdnZXItc2NyZWVuc2hvdC5wbmcpCgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQotIFtVc2FnZV0oI3VzYWdlKQotIFtBUEkgRG9jdW1lbnRhdGlvbl0oI2FwaS1kb2N1bWVudGF0aW9uKQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgSW5zdGFsbGF0aW9uCgpUaGUgTWF0aCBDTEkgQVBJIEtpdCBjYW4gYmUgaW5zdGFsbGVkIGRpcmVjdGx5IGZyb20gR2l0SHViIHVzaW5nIGBwaXBgOgoKYGBgYmFzaApwaXAgaW5zdGFsbCBnaXQraHR0cHM6Ly9naXRodWIuY29tL2dhc3BhcnlhbnZhemdlbi9tYXRoLWNsaS1hcGkta2l0LmdpdApgYGAKCkVuc3VyZSB0aGF0IGEgdmlydHVhbCBlbnZpcm9ubWVudCBpcyBjcmVhdGVkIGJlZm9yZSBpbnN0YWxsaW5nIHRvIG1hbmFnZSB5b3VyIHByb2plY3QncyBkZXBlbmRlbmNpZXMuCgojIyBVc2FnZQoKIyMjIENvbW1hbmQtTGluZSBJbnRlcmZhY2UKClRoZSBNYXRoIENMSSBBUEkgS2l0IG9mZmVycyBhIHJhbmdlIG9mIGFsZ2VicmFpYyBhbmQgZ2VvbWV0cmljIGNvbW1hbmRzIHZpYSB0aGUgY29tbWFuZC1saW5lIGludGVyZmFjZS4gT3BlcmF0aW9ucyBzdWNoIGFzIGFkZGl0aW9uLCBzdWJ0cmFjdGlvbiwgbXVsdGlwbGljYXRpb24sIGFuZCBtb3JlIGFyZSBzdXBwb3J0ZWQuCgpIZXJlIGFyZSBzb21lIGV4YW1wbGVzOgoKYGBgYmFzaApweXRob24gLW0gbWF0aF9jbGlfYXBpX2tpdC5jbGkgYWxnZWJyYSBzdW0gLXggNSAteSAzCnB5dGhvbiAtbSBtYXRoX2NsaV9hcGlfa2l0LmNsaSBnZW9tZXRyeSBzdXJmYWNlX29mX3NxdWFyZSAtYSA0CmBgYAoKQWRkaXRpb25hbCBkZXRhaWxzIG9uIHRoZSBhdmFpbGFibGUgY29tbWFuZHMgYW5kIHRoZWlyIHVzYWdlIGNhbiBiZSBmb3VuZCBieSBydW5uaW5nOgoKYGBgYmFzaApweXRob24gLW0gbWF0aF9jbGlfYXBpX2tpdC5jbGkgLS1oZWxwCmBgYAoKIyMjIEFQSQoKVGhlIE1hdGggQ0xJIEFQSSBLaXQgcHJvdmlkZXMgYSBSRVNUZnVsIEFQSSBmb3IgcHJvZ3JhbW1hdGljIGFjY2VzcyB0byBtYXRoZW1hdGljYWwgb3BlcmF0aW9ucy4gVG8gcnVuIHRoZSBBUEkgc2VydmVyLCB1c2UgdGhlIGZvbGxvd2luZyBzY3JpcHQ6CgpgYGBweXRob24KIyBzZXJ2ZXIucHkKCmZyb20gbWF0aF9jbGlfYXBpX2tpdC5hcGkgaW1wb3J0IGNyZWF0ZV9hcHAKCmFwcCA9IGNyZWF0ZV9hcHAoX19uYW1lX18pCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgYXBwLnJ1bihob3N0PSJsb2NhbGhvc3QiLCBwb3J0PTgwMDApCmBgYAoKVGhlIHNlcnZlciBjYW4gYmUgc3RhcnRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKc2FuaWMgc2VydmVyOmFwcApgYGAKCkFsdGVybmF0aXZlbHksIHRoZSBzZXJ2ZXIgY2FuIGJlIHJ1biB1c2luZyBwbGFpbiBQeXRob246CgpgYGBiYXNoCnB5dGhvbiBzZXJ2ZXIucHkKYGBgCgpUaGlzIGFjdGlvbiBsYXVuY2hlcyB0aGUgc2VydmVyLCBtYWtpbmcgaXQgYWNjZXNzaWJsZSBhdCBodHRwOi8vbG9jYWxob3N0OjgwMDAvLiBBUEkgZW5kcG9pbnRzIHByb3ZpZGVkIGJ5IHRoZSBNYXRoIENMSSBBUEkgS2l0IGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoaXMgc2VydmVyLiBJZiB0aGVyZSdzIGEgbmVlZCB0byBjaGFuZ2UgdGhlIHBvcnQgd2hlbiBydW5uaW5nIHRoZSBzZXJ2ZXIsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKc2FuaWMgc2VydmVyOmFwcCAtLXBvcnQ9ODAwNQpgYGAKCkhvd2V2ZXIsIHdoZW4gcnVubmluZyBpdCB1c2luZyBgcHl0aG9uIHNlcnZlci5weWAsIHRoZSBzZXJ2ZXIgb3BlcmF0ZXMgb24gcG9ydCA4MDA1LCBhcyBzcGVjaWZpZWQgaW4gdGhlIGNvZGUgZ2l2ZW4gaW4gYHNlcnZlci5weWA6CgpgYGBweXRob24KIyB0aGUgcmVzdCBvZiB0aGUgY29kZQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIGFwcC5ydW4oaG9zdD0ibG9jYWxob3N0IiwgcG9ydD04MDA1KQpgYGAKCllvdSBjYW4gYWNjZXNzIHRoZSBTd2FnZ2VyIFVJIGZvciB0aGUgQVBJIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwNS9zd2FnZ2VyLwoKIyMgQVBJIERvY3VtZW50YXRpb24KCkZvciBkZXRhaWxlZCBkb2N1bWVudGF0aW9uIG9mIHRoZSBBUEkgZW5kcG9pbnRzLCBwbGVhc2UgY29uc3VsdCB0aGUgW29mZmljaWFsIE9wZW5BUEkgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2dhc3BhcnlhbnZhemdlbi9tYXRoLWNsaS1hcGkta2l0L2Jsb2IvbWFzdGVyL0FQSV9ET0MubWQpLgoKIyMgQ29udHJpYnV0aW5nCgpDb250cmlidXRpb25zIHRvIHRoZSBNYXRoIENMSSBBUEkgS2l0IGFyZSB3ZWxjb21lLiBUbyBjb250cmlidXRlIG9yIHJlcG9ydCBhbiBpc3N1ZSwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbY29udHJpYnV0aW5nIGd1aWRlbGluZXNdKENPTlRSSUJVVElORy5tZCkuCgojIyBMaWNlbnNlCgpUaGUgTWF0aCBDTEkgQVBJIEtpdCBpcyBhbiBvcGVuLXNvdXJjZSBwcm9qZWN0IHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gRm9yIG1vcmUgZGV0YWlscywgcGxlYXNlIHJldmlldyB0aGUgW0xJQ0VOU0VdKGh0dHBzOi8vZ2l0aHViLmNvbS9nYXNwYXJ5YW52YXpnZW4vbWF0aC1jbGktYXBpLWtpdC9ibG9iL21hc3Rlci9MSUNFTlNFKS4KCi0tLQoKRm9yIGlucXVpcmllcyBvciBhc3Npc3RhbmNlLCBwbGVhc2UgZmVlbCBmcmVlIHRvIGNvbnRhY3QgdGhlIHByb2plY3Qgb3duZXIsIFZhemdlbiBHYXNwYXJ5YW4sIGF0IFtndmF6Z2VuQG91dGxvb2suY29tXShtYWlsdG86Z3ZhemdlbkBvdXRsb29rLmNvbSkuCgoqKlRoYW5rIHlvdSBmb3IgdXNpbmcgdGhlIE1hdGggQ0xJIEFQSSBLaXQhKioK readmeEtag: '"4649905cbf6377b9551ee8b10b93bb4edccbc2a1"' readmeLastModified: Sat, 21 Oct 2023 08:19:34 GMT repositoryId: 707896579 description: >- A versatile Python command-line interface and API for algebraic and geometric operations, streamlining math-related tasks for applications and developers. created: '2023-10-20T23:20:22Z' updated: '2024-01-27T16:41:04Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: gasparyanvazgen logo: https://avatars.githubusercontent.com/u/89462790?v=4 license: MIT repoEtag: '"57f2184ab3642e8ab5177e2dbdc47aee931fee4f22d67ab7a3fbae140527ffea"' repoLastModified: Sat, 27 Jan 2024 16:41:04 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/riptl/nimiq-watch-docs v3: true id: a86198fc049b7191ad08b2ecf2d0e8ca repositoryMetadata: base64Readme: >- IyBOaW1pcS5XYXRjaCBPcGVuQVBJIFNwZWNpZmljYXRpb24KWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvdGVyb3JpZS9uaW1pcS13YXRjaC1kb2NzLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3Rlcm9yaWUvbmltaXEtd2F0Y2gtZG9jcykKClthcGkubmltaXEud2F0Y2hdKGh0dHBzOi8vYXBpLm5pbWlxLndhdGNoLykgaXMgcG93ZXJpbmcgW3RoZSBibG9ja2NoYWluIGV4cGxvcmVyXShodHRwczovL25pbWlxLndhdGNoLykKb2YgdGhlIG5ldyBfX05pbWlxIGJsb2NrY2hhaW5fXyBwcm9qZWN0LgoKVG8gbGVhcm4gbW9yZSBhYm91dCB0aGUgTmltaXEgYmxvY2tjaGFpbiwKdmlzaXQgdGhlIFtob21lcGFnZV0oaHR0cHM6Ly9uaW1pcS5jb20pLApjaGVjayBvdXQgQG5pbWlxIG9uIFtUd2l0dGVyXShodHRwczovL3R3aXR0ZXIuY29tL25pbWlxKQpvciBbTWVkaXVtXShodHRwczovL21lZGl1bS5jb20vbmltaXEtbmV0d29yaykKYW5kIGpvaW4gdGhlIFtEaXNjb3JkXShodHRwczovL2Rpc2NvcmQuZ2cvY01IZW1nOCkKYW5kIFtUZWxlZ3JhbV0oaHR0cHM6Ly90Lm1lL2pvaW5jaGF0L0FBQUFBRUpXLW96RndvN0VyOWpwSHcpIGNoYW5uZWxzLgoKVG8gdXNlIHRoaXMgQVBJIGZvciB5b3VyIHByb2plY3QsIGNvbnRhY3QgX19AU29lcmVuIzg5OThfXyBpbiBOaW1pcSdzIERpc2NvcmQgb3Igd3JpdGUgdG8gaGVsbG9Ac29lcmVuc2Nod2VydC5kZQoKIyMgTGlua3MKCi0gW05pbWlxLldhdGNoXShodHRwczovL25pbWlxLndhdGNoKQotIFtOaW1pcS5XYXRjaCBGcm9udGVuZCBDb2RlXShodHRwczovL2dpdGh1Yi5jb20vc2lzb3UvbmltaXEtd2F0Y2gpCi0gW05pbWlxIENvcmUvSlNdKGh0dHBzOi8vZ2l0aHViLmNvbS9uaW1pcS1uZXR3b3JrL2NvcmUpCi0gW05pbWlxIENvcmUvUnVzdF0oaHR0cHM6Ly9naXRodWIuY29tL25pbWlxL2NvcmUtcnMpCi0gW2FwaS5uaW1pcS53YXRjaCBSZURvY10oaHR0cHM6Ly90ZXJvcmllLmdpdGh1Yi5pby9uaW1pcS13YXRjaC1kb2NzLykKLSBbU3dhZ2dlclVJXShodHRwczovL3Rlcm9yaWUuZ2l0aHViLmlvL25pbWlxLXdhdGNoLWRvY3Mvc3dhZ2dlci11aS8pCi0gT3BlbkFQSSBSYXcgRmlsZXM6IFtKU09OXShodHRwczovL3Rlcm9yaWUuZ2l0aHViLmlvL25pbWlxLXdhdGNoLWRvY3Mvb3BlbmFwaS5qc29uKSBbWUFNTF0oaHR0cHM6Ly90ZXJvcmllLmdpdGh1Yi5pby9uaW1pcS13YXRjaC1kb2NzL29wZW5hcGkueWFtbCkKCl9fVE9ETzpfXyBBZGQgQVBJIHRvIFtBUElzLmd1cnVdKGh0dHBzOi8vQVBJcy5ndXJ1KSBkaXJlY3RvcnkgdXNpbmcgW3RoaXMgZm9ybV0oaHR0cHM6Ly9hcGlzLmd1cnUvYWRkLWFwaS8pLgo= readmeEtag: '"2d4c6cc85508d10b2ab131ef997292f1c8c91eba"' readmeLastModified: Fri, 22 Feb 2019 02:02:34 GMT repositoryId: 171151671 description: Nimiq.Watch API Documentation created: '2019-02-17T17:38:13Z' updated: '2019-02-22T02:02:40Z' language: HTML archived: false stars: 1 watchers: 2 forks: 0 owner: riptl logo: https://avatars.githubusercontent.com/u/21371810?v=4 license: MIT repoEtag: '"0c0ccd978fb38f7e62f28cc0fd84601e6e3188e2f883241e1c8efad0e239af27"' repoLastModified: Fri, 22 Feb 2019 02:02:40 GMT category: SDK oldLocations: - https://github.com/terorie/nimiq-watch-docs foundInMaster: true - source: openapi3 tags repository: https://github.com/stariongroup/openapi v3: true id: 205120cda96c57ae4a0aa4bd246f507c repositoryMetadata: base64Readme: >- IyBSSEVBLk9wZW5BcGkKClRoZSBSSEVBLk9wZW5BcGkgbGlicmFyeSBpcyBhIG5haXZlIEpTT04gcmVhZGVyIGltcGxlbWVudGF0aW9uIG9mIHRoZSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uIHYzLjEuMF0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvbGF0ZXN0Lmh0bWwjdmVyc2lvbi0zLTEtMCkuIFRoZSBwdXJwb3NlIG9mIHRoaXMgbGlicmFyeSBpcyB0byBzdXBvcnQgY29kZS1nZW5lcmF0aW9uIGluIHRoZSAuTkVUIGVjb3N5c3RlbS4gVGhlIGxpYnJhcnkgd2lsbCBtb3N0IGxpa2VseSBiZSBkZXByZWNhdGVkIG9uY2UgdGhlIFttaWNyb3NvZnQvT3BlbkFQSS5ORVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvT3BlbkFQSS5ORVQpIHN1cHBvcnRzIHZlcnNpb24gMy4xLiBTdXBwb3J0IGZvciB2ZXJzaW9uIDMuMSBpbiBfbWljcm9zb2Z0L09wZW5BUEkuTkVUXyBpcyBiZWluZyB0cmFja2VkIGluIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvT3BlbkFQSS5ORVQvaXNzdWVzLzc5NQoKWyFbUXVhbGl0eSBHYXRlIFN0YXR1c10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9UkhFQUdST1VQX09QRU5BUEkmbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPVJIRUFHUk9VUF9PUEVOQVBJKQpbIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9UkhFQUdST1VQX09QRU5BUEkmbWV0cmljPWNvZGVfc21lbGxzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9UkhFQUdST1VQX09QRU5BUEkpClshW0NvdmVyYWdlXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1SSEVBR1JPVVBfT1BFTkFQSSZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1SSEVBR1JPVVBfT1BFTkFQSSkKWyFbRHVwbGljYXRlZCBMaW5lcyAoJSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PVJIRUFHUk9VUF9PUEVOQVBJJm1ldHJpYz1kdXBsaWNhdGVkX2xpbmVzX2RlbnNpdHkpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1SSEVBR1JPVVBfT1BFTkFQSSkKWyFbTGluZXMgb2YgQ29kZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9UkhFQUdST1VQX09QRU5BUEkmbWV0cmljPW5jbG9jKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9UkhFQUdST1VQX09QRU5BUEkpClshW01haW50YWluYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PVJIRUFHUk9VUF9PUEVOQVBJJm1ldHJpYz1zcWFsZV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1SSEVBR1JPVVBfT1BFTkFQSSkKWyFbUmVsaWFiaWxpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1SSEVBR1JPVVBfT1BFTkFQSSZtZXRyaWM9cmVsaWFiaWxpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9UkhFQUdST1VQX09QRU5BUEkpClshW1NlY3VyaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9UkhFQUdST1VQX09QRU5BUEkmbWV0cmljPXNlY3VyaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPVJIRUFHUk9VUF9PUEVOQVBJKQpbIVtUZWNobmljYWwgRGVidF0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9UkhFQUdST1VQX09QRU5BUEkmbWV0cmljPXNxYWxlX2luZGV4KV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9UkhFQUdST1VQX09QRU5BUEkpClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9UkhFQUdST1VQX09QRU5BUEkmbWV0cmljPXZ1bG5lcmFiaWxpdGllcyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9zdW1tYXJ5L25ld19jb2RlP2lkPVJIRUFHUk9VUF9PUEVOQVBJKQoKIyMgSW5zdGFsbGF0aW9uCgpUaGUgcGFja2FnZSBpcyBhdmFpbGFibGUgb24gTnVnZXQgYXQ6Cgpwcm9qZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTnVnZXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IC0tLS0tLS0tLS0tLQpbUkhFQS5PcGVuQXBpXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUkhFQS5PcGVuQXBpKSAgIHwgWyFbTnVHZXQgQmFkZ2VdKGh0dHBzOi8vYnVpbGRzdGF0cy5pbmZvL251Z2V0L1JIRUEuT3BlbkFwaSldKGh0dHBzOi8vYnVpbGRzdGF0cy5pbmZvL251Z2V0L1JIRUEuT3BlbkFwaSkKCiMjIEJ1aWxkIFN0YXR1cwoKR2l0SHViIGFjdGlvbnMgYXJlIHVzZWQgdG8gYnVpbGQgYW5kIHRlc3QgdGhlIGxpYnJhcnkKCkJyYW5jaCAgICAgIHwgQnVpbGQgU3RhdHVzCi0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTWFzdGVyICAgICAgfCAhW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL1JIRUFHUk9VUC9PUEVOQVBJL2FjdGlvbnMvd29ya2Zsb3dzL0NvZGVRdWFsaXR5LnltbC9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcikKRGV2ZWxvcG1lbnQgfCAhW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL1JIRUFHUk9VUC9PUEVOQVBJL2FjdGlvbnMvd29ya2Zsb3dzL0NvZGVRdWFsaXR5LnltbC9iYWRnZS5zdmc/YnJhbmNoPWRldmVsb3BtZW50KQoKIyBMaWNlbnNlCgpUaGUgUkhFQS5PcGVuQXBpIGxpYnJhcnkgaXMgcHJvdmlkZWQgdG8gdGhlIGNvbW11bml0eSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgMi4wLgoKIyBDb250cmlidXRpb25zCgpDb250cmlidXRpb25zIHRvIHRoZSBjb2RlLWJhc2UgYXJlIHdlbGNvbWUuIEhvd2V2ZXIsIGJlZm9yZSB3ZSBjYW4gYWNjZXB0IHlvdXIgY29udHJpYnV0aW9ucyB3ZSBhc2sgYW55IGNvbnRyaWJ1dG9yIHRvIHNpZ24gdGhlIENvbnRyaWJ1dG9yIExpY2Vuc2UgQWdyZWVtZW50IChDTEEpIGFuZCBzZW5kIHRoaXMgZGlnaXRhbHkgc2lnbmVkIHRvIHMuZ2VyZW5lQHJoZWFncm91cC5jb20uIFlvdSBjYW4gZmluZCB0aGUgQ0xBJ3MgaW4gdGhlIENMQSBmb2xkZXIuCg== readmeEtag: '"7660bd5c63950998bd3d9cfc7e1f68f40c5f7610"' readmeLastModified: Sun, 30 Apr 2023 09:54:40 GMT repositoryId: 622194609 description: >- a naive openapi 3.1 json document reader to support convention & template based code generation created: '2023-04-01T12:02:34Z' updated: '2023-04-28T08:13:22Z' language: C# archived: false stars: 1 watchers: 3 forks: 0 owner: STARIONGROUP logo: https://avatars.githubusercontent.com/u/22165742?v=4 license: Apache-2.0 repoEtag: '"24513e58c9c6f1c9f4e6ec04d5eeb09a443f2485e90e5258ef0ffc8c73a34e08"' repoLastModified: Fri, 28 Apr 2023 08:13:22 GMT category: SDK foundInMaster: true oldLocations: - https://github.com/rheagroup/openapi - source: openapi3 tags repository: https://github.com/big-vi/authflow-go-react-jwt-openapi v3: true id: dc43d24ad10b2e76ad1276c097f48ff4 repositoryMetadata: base64Readme: >- IyBhdXRoZmxvdwoKUmVmZXIgdG8gW0xpbmtlZEluXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vcHVsc2Uvand0LWF1dGhlbnRpY2F0aW9uLXVzaW5nLWdvbGFuZy1yZWFjdC12aWduZXNoLW11cnVnYW4tZWpqYmMpIGFydGljbGUgZm9yIGRvY3VtZW50YXRpb24uCg== readmeEtag: '"96e50c1cc298fda05ae21394ef199714bc7338ca"' readmeLastModified: Wed, 22 Nov 2023 09:20:03 GMT repositoryId: 704745342 description: Building authentication flow. created: '2023-10-14T01:12:52Z' updated: '2024-06-19T23:14:34Z' language: JavaScript archived: false stars: 1 watchers: 1 forks: 0 owner: Big-Vi logo: https://avatars.githubusercontent.com/u/30820063?v=4 repoEtag: '"11bbf21bcf5620705ae189cd46cfafa9894b1b7d620476f4d65532abe30f0182"' repoLastModified: Wed, 19 Jun 2024 23:14:34 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/fako1024/httpc v3: true repositoryMetadata: base64Readme: >- IyBBIHNpbXBsZSB3cmFwcGVyIGFyb3VuZCB0aGUgZGVmYXVsdCBHbyBodHRwIGNsaWVudCBvcHRpbWl6ZWQgZm9yIGVhc2Utb2YtdXNlCgpbIVtHaXRodWIgUmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvcmVsZWFzZS9mYWtvMTAyNC9odHRwYy5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZmFrbzEwMjQvaHR0cGMvcmVsZWFzZXMpClshW0dvRG9jXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2Zha28xMDI0L2h0dHBjP3N0YXR1cy5zdmcpXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2Zha28xMDI0L2h0dHBjLykKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2Zha28xMDI0L2h0dHBjKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2Zha28xMDI0L2h0dHBjKQpbIVtCdWlsZC9UZXN0IFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL2Zha28xMDI0L2h0dHBjL3dvcmtmbG93cy9Hby9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZmFrbzEwMjQvaHR0cGMvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQUdvKQpbIVtDb2RlUUxdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYWtvMTAyNC9odHRwYy9hY3Rpb25zL3dvcmtmbG93cy9jb2RlcWwtYW5hbHlzaXMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9mYWtvMTAyNC9odHRwYy9hY3Rpb25zL3dvcmtmbG93cy9jb2RlcWwtYW5hbHlzaXMueW1sKQoKVGhpcyBwYWNrYWdlIHdyYXBzIHRoZSBHbyBzdGFuZGFyZCBodHRwIGNsaWVudCwgcHJvdmlkaW5nIGEgc2ltcGxpZmllZCBpbnRlcmFjdGlvbiBtb2RlbCB1c2luZyBtZXRob2QgY2hhaW5pbmcgYW5kIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIHN1Y2ggYXMgb3B0aW9uYWwgaW4tZmxvdyB2YWxpZGF0aW9uIGFnYWluc3QgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgoKIyMgRmVhdHVyZXMKLSBTaW1wbGUsIG1ldGhvZCBjaGFpbmluZyBiYXNlZCBpbnRlcmZhY2UgZm9yIEhUVFAgY2xpZW50IHJlcXVlc3RzCi0gU2ltdWxhdGlvbiBvZiByZXF1ZXN0IGRlbGF5cwotIFZhbGlkYXRpb24gb2YgcmVxdWVzdCArIHJlc3BvbnNlIGFnYWluc3QgT3BlbkFQSSBzcGVjaWZpY2F0aW9uCi0gQ3VzdG9taXphdGlvbiBvZiBIVFRQIGNsaWVudCB2aWEgZnVuY3Rpb25hbCBwYXJhbWV0ZXIKLSBCYWNrLU9mZi1SZXRyeSBjb25jZXB0IHRvIGF1dG9tYXRpY2FsbHkgcmV0cnkgcmVxdWVzdHMgaWYgcmVxdWlyZWQKCiMjIEluc3RhbGxhdGlvbgpgYGBiYXNoCmdvIGdldCAtdSBnaXRodWIuY29tL2Zha28xMDI0L2h0dHBjCmBgYAoKIyMgRXhhbXBsZXMKIyMjIyBQZXJmb3JtIHNpbXBsZSBIVFRQIEdFVCByZXF1ZXN0CmBgYGdvCmVyciA6PSBodHRwYy5OZXcoIkdFVCIsICJodHRwOi8vZXhhbXBsZS5vcmciKS5SdW4oKQppZiBlcnIgIT0gbmlsIHsKCWxvZy5GYXRhbGYoImVycm9yIHBlcmZvcm1pbmcgR0VUIHJlcXVlc3Q6ICVzIiwgZXJyKQp9CmBgYAoKIyMjIyBQZXJmb3JtIEhUVFAgR0VUIHJlcXVlc3QgYW5kIHBhcnNlIHRoZSByZXN1bHQgYXMgSlNPTiBpbnRvIGEgc3RydWN0CmBgYGdvCnZhciByZXMgPSBzdHJ1Y3QgewoJU3RhdHVzIGludAoJTWVzc2FnZSBzdHJpbmcKfXt9CmVyciA6PSBodHRwYy5OZXcoIkdFVCIsICJodHRwOi8vZXhhbXBsZS5vcmciKS4KCVBhcnNlSlNPTigmcmVzKS4KCVJ1bigpCmlmIGVyciAhPSBuaWwgewoJbG9nLkZhdGFsZigiZXJyb3IgcGVyZm9ybWluZyBHRVQgcmVxdWVzdDogJXMiLCBlcnIpCn0KYGBgCgojIyMjIFBlcmZvcm0gSFRUUFMgUE9TVCByZXF1ZXN0IHdpdGggYSBzaW1wbGUgYm9keSwgZGlzYWJsaW5nIGNlcnRpZmljYXRlIHZhbGlkYXRpb24gYW5kIGNvcHlpbmcgdGhlIHJlc3BvbnNlIHRvIGEgYnl0ZXMuQnVmZmVyCmBgYGdvCmJ1ZiA6PSBuZXcoYnl0ZXMuQnVmZmVyKQplcnIgOj0gaHR0cGMuTmV3KCJQT1NUIiwgImh0dHBzOi8vZXhhbXBsZS5vcmciKS4KCVNraXBDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbigpLgoJQm9keShbXWJ5dGV7MHgxLCAweDJ9KS4KCVBhcnNlRm4oaHR0cGMuQ29weShidWYpKS4KCVJ1bigpCgppZiBlcnIgIT0gbmlsIHsKICAgIGxvZy5GYXRhbGYoImVycm9yIHBlcmZvcm1pbmcgUE9TVCByZXF1ZXN0OiAlcyIsIGVycikKfQoKZm10LlByaW50bG4oYnVmLlN0cmluZygpKQpgYGAKCiMjIyMgUGVyZm9ybSBIVFRQUyBHRVQgcmVxdWVzdCAod2l0aCBxdWVyeSBwYXJhbWV0ZXJzICsgaGVhZGVycyArIGJhc2ljIGF1dGgpLCB2YWxpZGF0aW5nIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGFnYWluc3QgT3BlbkFQSXYzIHNwZWNpZmljYXRpb24KYGBgZ28Kb3BlbkFQSUZpbGVEYXRhLCBlcnIgOj0gb3MuUmVhZEZpbGUoIi90bXAvb3BlbmFwaS5qc29uIikKaWYgZXJyICE9IG5pbCB7Cglsb2cuRmF0YWxmKCJFcnJvciBvcGVuaW5nIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBmaWxlOiAlcyIsIGVycikKfQoKZXJyID0gaHR0cGMuTmV3KCJHRVQiLCAiaHR0cHM6Ly9leGFtcGxlLm9yZyIpLgoJU2tpcENlcnRpZmljYXRlVmVyaWZpY2F0aW9uKCkuCglRdWVyeVBhcmFtcyhodHRwYy5QYXJhbXN7CgkJInBhcmFtIjogInRlc3QiLAoJfSkuCglIZWFkZXJzKGh0dHBjLlBhcmFtc3sKCQkiWC1IRUFERVItVEVTVCI6ICJ0ZXN0IiwKCX0pLgoJQXV0aEJhc2ljKCJ1c2VybmFtZSIsICJwYXNzd29yZCIpLgoJT3BlbkFQSVZhbGlkYXRpb25GaWxlRGF0YShvcGVuQVBJRmlsZURhdGEpLgoJUnVuKCkKCmlmIGVyciAhPSBuaWwgewoJbG9nLkZhdGFsZigiZXJyb3IgcGVyZm9ybWluZyBHRVQgcmVxdWVzdDogJXMiLCBlcnIpCn0KYGBgCg== readmeEtag: '"dda14c18e7b3b60355aacf3e4988a28a9f258d26"' readmeLastModified: Tue, 02 Jul 2024 15:02:30 GMT repositoryId: 208796894 description: >- A simple wrapper around the default Go http client optimized for ease-of-use created: '2019-09-16T12:42:06Z' updated: '2024-07-02T15:02:35Z' language: Go archived: false stars: 1 watchers: 4 forks: 2 owner: fako1024 logo: https://avatars.githubusercontent.com/u/10483969?v=4 license: Apache-2.0 repoEtag: '"c82cee13df038c5b4baeeda0253dc726c4a73e5e3b25eef1f6ea0a6363bbac03"' repoLastModified: Tue, 02 Jul 2024 15:02:35 GMT foundInMaster: true category: Data Validators id: 3c4d97378d5b6503a213aded8daac332 - source: openapi3 tags repository: https://github.com/adolligit/car-shop v3: true id: 1419b8b6544c12a49e08c6805202cf77 repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPkNhciBTaG9wPC9oMT4KCkNhciBTaG9wIMOpIHVtYSAqQVBJIFJlc3QqIHF1ZSBjb25zdWx0YSBvIGJhbmNvIGRlIGRhZG9zIG7Do28gcmVsYWNpb25hbCBNb25nb0RCIGF0cmF2w6lzIGRvICpPRE0qIE1vbmdvb3NlLgoKRXN0YSBBUEkgw6kgdW0gKkNSVUQqIGZlaXRvIGNvbSBvcyBwcmluY8OtcGlvcyBkYSAqUHJvZ3JhbWHDp8OjbyBPcmllbnRhZGEgw6EgT2JqZXRvcyAoUE9PKSogZSBzZXUgcHJvcMOzc2l0byDDqSBzaW11bGFyIG8gZ2VyZW5jaWFtZW50byBkZSB1bSBzaXN0ZW1hIGRlIHVtYSBjb25jZXNzaW9uw6FyaWEgZGUgdmXDrWN1bG9zLgoKRXN0ZSBwcm9qZXRvIGZvaSBkZXNlbnZvbHZpZG8gZW0gKipOb2RlLmpzICsgRXhwcmVzcy5qcyArIFR5cGVTY3JpcHQqKiwgdXRpbGl6YW5kbyAqKk1vbmdvb3NlLmpzKiogcGFyYSBjb211bmljYcOnw6NvIGNvbSBvIGJhbmNvIGRlIGRhZG9zICoqTW9uZ29EQioqLiBBbMOpbSBkaXNzbywgZm9yYW0gcmVhbGl6YWRvcyB0ZXN0ZXMgbmFzIGNhbWFkYXMgKk1vZGVsLCBDb250cm9sbGVyIGUgU2VydmljZSogY29tICoqTW9jaGEgKyBDaGFpICsgU2lub24qKi4KCiMjIENvbW8gZXUgZmHDp28gcGFyYSBleGVjdXRhciBlc3RlIHByb2pldG8/ClByaW1laXJvIGRlIHR1ZG8sIGNsb25lIG8gcHJvamV0byBuYSBzdWEgbcOhcXVpbmEgbG9jYWwgZSBlbnRyZSBuYSBwYXN0YSBkbyBwcm9qZXRvOgpgYGBiYXNoCmdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTpBZG9sbGlnaXQvY2FyLXNob3AuZ2l0ICYmIGNkIC4vY2FyLXNob3AKYGBgCkRlcG9pcyBpbnN0YWxlIGFzIGRlcGVuZMOqbmNpYXM6CmBgYGJhc2gKbnBtIGluc3RhbGwKYGBgCiMjIyBJbnN0YWxhw6fDo28K8J+aqCBBcyB2ZXJzw7VlcyBkZXNjcml0YXMgbmFzIGluc3RhbGHDp8O1ZXMgc8OjbyAqKmZvcnRlbWVudGUgcmVjb21lbmRhZGFzKiouIE5vIGVudGFudG8sIGNhc28gcXVlaXJhIHRlbnRhciBlbSB1bWEgdmVyc8OjbyBkaWZlcmVudGUsIGNvbnNpZGVyZSBhIHBvc3PDrXZlbCBhcGFyacOnw6NvIGRlIGVycm9zIGR1cmFudGUgYSBleGVjdcOnw6NvIGRvIHByb2pldG8uCgpFc2NvbGhhIGFiYWl4byB1bSB0aXBvIGRlIGluc3RhbGHDp8OjbzoKPGRldGFpbHM+CiAgPHN1bW1hcnk+SW5zdGFsYXIgY29tIERvY2tlciDwn5CzPC9zdW1tYXJ5Pgo8L2JyPjxiPlJlcXVpc2l0b3M8L2I+CjwvYnI+Vm9jw6ogZGV2ZSBwb3NzdWlyIGFzIHNlZ3VpbnRlcyBmZXJyYW1lbnRhczoKPHVsPgogICAgPGxpPkRvY2tlcjogdjI0LjAuMjwvbGk+CiAgICA8bGk+RG9ja2VyIENvbXBvc2U6IHYyLjE5LjA8L2xpPgo8L3VsPgoKICDimqDvuI8gU2Ugdm9jw6ogZXN0aXZlciB1c2FuZG8gKipMaW51eCoqLCBkZXNhdGl2ZSBvICoqTW9uZ29EQioqIGxvY2FsbWVudGUgcGFyYSBldml0YXIgY29uZmxpdG9zIGRlIHBvcnRhOgogIGBgYGJhc2gKICBzeXN0ZW1jdGwgc3RvcCBtb25nb2QKICBgYGAKCjxocj4KCiAgMS4gQ3JpZSBlIGluaWNpZSBvcyBjb250w6ppbmVyczoKICBgYGBiYXNoCiAgZG9ja2VyIGNvbXBvc2UgdXAgLWQKICBgYGAKICAyLiBFbnRyZSBubyBjb250w6ppbmVyIGRhIGFwbGljYcOnw6NvOgogIGBgYGJhc2gKICBkb2NrZXIgZXhlYyAtaXQgY2FyX3Nob3AgYmFzaAogIGBgYAogIC0tLQo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KICA8c3VtbWFyeT5JbnN0YWxhciBsb2NhbG1lbnRlIPCfkrs8L3N1bW1hcnk+CjwvYnI+PGI+UmVxdWlzaXRvczwvYj4KPC9icj5Wb2PDqiBkZXZlIHBvc3N1aXIgYXMgc2VndWludGVzIGZlcnJhbWVudGFzOgo8dWw+CiAgICA8bGk+bnBtOiB2OS42Ljc8L2xpPgogICAgPGxpPk5vZGU6IHYyMC4zPC9saT4KICAgIDxsaT5Nb25nb0RCOiB2Ni4wPC9saT4KPC91bD4KClNlIHZvY8OqIHVzYSAqKkxpbnV4KiosIHZlcmlmaXF1ZSBzZSBvIHNlcnZpw6dvIGRvICoqTW9uZ29EQioqIGVzdGEgYXRpdm86IApgYGBiYXNoCnN5c3RlbWN0bCBzdGF0dXMgbW9uZ29kCmBgYApDYXNvIGVzdGVqYSBkZXNhdGl2YWRvLCBzdWJzdGl0dWEgKipzdGF0dXMqKiBwb3IgKipzdGFydCoqIG5vIGNvbWFuZG8gYWNpbWEuCjxocj4KCjEuIENyaWUgbyBhcnF1aXZvIDxiPi5lbnY8L2I+IG5hIHBhc3RhIHJhaXoKYGBgYmFzaAp0b3VjaCAuZW52CmBgYAoKMi4gQ29waWUgZSBjb2xlIGFzIGluZm9ybWHDp8O1ZXMgYSBzZWd1aXI6CgpgYGBiYXNoCiMgTW9uZ29EQgpNREJfVVJJPQpNREJfSE9TVD0xMjcuMC4wLjEKTURCX1BPUlQ9MjcwMTcKTURCX05BTUU9Q2FyU2hvcAoKIyBBUEkKQVBJX1BPUlQ9MzAwMQpgYGAKPiDwn5ej77iPKERpY2EpOiBWb2PDqiBwb2RlIGNvbmVjdGFyIGEgYXBsaWNhw6fDo28gY29tIHVtIGJhbmNvIHJlbW90bywgYWRpY2lvbmFkbyBhIFVSSSBkbyBiYW5jbyBlbSAqKk1EQl9VUkkqKi4KCjxocj4KPC9kZXRhaWxzPgoKIyMjIEV4ZWN1w6fDo28K4pqg77iPIE9zIGNvbWFuZG9zIGEgc2VndWlyIHBvZGVtIHNlciBleGVjdXRhZG9zIGRlbnRybyBkbyBDb250YWluZXIgb3UgbG9jYWxtZW50ZS4KCkluaWNpYXIgbyBwcm9qZXRvIGVtIG1vZG8gZGUgZGVzZW52b2x2aW1lbnRvIChjb20gKipub2RlbW9uKiopOgpgYGBiYXNoCm5wbSBydW4gZGV2CmBgYAoKRXhlY3V0YXIgYSBjb2JlcnR1cmEgZGUgdGVzdGVzOgpgYGBiYXNoCm5wbSBydW4gdGVzdDpkZXYKYGBgCgpFeGVjdXRhIG9zIHRlc3RlcyBlIGRlcG9pcyBjcmlhciBhIHBhc3RhICoqLi9jb3ZlcmFnZSoqIHF1ZSBjb250w6ltIHVtIHJlbGF0w7NyaW86CmBgYGJhc2gKbnBtIHJ1biB0ZXN0OmNvdmVyYWdlCmBgYAo+IPCfl6PvuI8oRGljYSk6IFV0aWxpemFuZG8gYSBleHRlbnPDo28gKipMaXZlIFNlcnZlcioqIG5vIFZpc3VhbCBTdHVkaW8gQ29kZSwgdm9jw6ogcG9kZXLDoSB2aXN1YWxpemFyIGEgcMOhZ2luYSBjb20gbyByZWxhdMOzcmlvIG5hdmVnYW5kbyBhdMOpIHBhc3RhIGNyaWFkYSBlIGFicmluZG8gbyBhcnF1aXZvICoqaW5kZXguaHRtbCoqIG5vIG5hdmVnYWRvci4KCkV4ZWN1dGFyIG8gKipFU0xpbnQqKiBwYXJhIHZlcmlmaWNhciBvcyBlcnJvcyBkbyBjw7NkaWdvIGVzdMOhdGljbzoKYGBgYmFzaApucG0gcnVuIGxpbnQKYGBgCgojIyBUZXN0YW5kbyBvIENSVUQKVm9jw6ogcG9kZSB1dGlsaXphciBxdWFscXVlciBDbGllbnQgQVBJIHBhcmEgdGVzdGFyIG8gQ2FyIFNob3AsIGNvbnR1ZG8sIGV1IGRpc3BvbmliaWxpemVpIGEgZG9jdW1lbnRhw6fDo28gY29tIE9wZW5BUEkgKFN3YWdnZXIpIHBhcmEgcXVlIHZvY8OqIHNhaWJhIHF1YWlzIHJvdGFzIGV4aXN0ZW0gZGVudHJvIGRvIHByb2pldG8gZSBjb21vIHRlc3RhLWxhcy4KCkRlc3RhIGZvcm1hLCBxdWFuZG8gYSBBUEkgZXN0aXZlciBlbSBleGVjdcOnw6NvLCB2b2PDqiBwb2RlcsOhIHZpc2l0YXIgaHR0cDovLzEyNy4wLjAuMTozMDAxL3YxL2RvY3MvIGUgdmlzdWFsaXphciBhIHDDoWdpbmEgZGEgZG9jdW1lbnRhw6fDo28gZSB0ZXN0YXIgYSBBUEkuCgo8aW1nIGFsaWduPSJjZW50ZXIiIGFsdD0iTm9kZUpzIiBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9BZG9sbGlnaXQvY2FyLXNob3AvbWFpbi9pbWcvc3MxLnBuZyI+Cgo+IPCfl6PvuI8oRGljYSk6IE8gYmFuY28gZGUgZGFkb3MgbsOjbyBlc3RhIHBvcHVsYWRvLiBQb3J0YW50byDDqSB1bWEgYm9hIGlkZWlhIGNvbWXDp2FyIGNhZGFzdHJhbmRvIG9zIGRhZG9zLgoKIyMgIExpbmd1YWdlbnMgZSBmZXJyYW1lbnRhczoKPGRpdj4KICAgIDxhIGhyZWY9Imh0dHBzOi8vbm9kZWpzLm9yZy9lbi8iPjxpbWcgYWxpZ249ImNlbnRlciIgYWx0PSJOb2RlSnMiIGhlaWdodD0iNDAiIHdpZHRoPSI1MCIgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvZGV2aWNvbnMvZGV2aWNvbi9pY29ucy9ub2RlanMvbm9kZWpzLW9yaWdpbmFsLnN2ZyI+PC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9leHByZXNzanMuY29tL3B0LWJyLyI+PGltZyBhbGlnbj0iY2VudGVyIiBhbHQ9IkV4cHJlc3MiIGhlaWdodD0iNDAiIHdpZHRoPSI1MCIgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvZGV2aWNvbnMvZGV2aWNvbi9pY29ucy9leHByZXNzL2V4cHJlc3Mtb3JpZ2luYWwuc3ZnIj48L2E+CiAgICA8YSBocmVmPSJodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvIj48aW1nIGFsaWduPSJjZW50ZXIiIGFsdD0iVHlwZVNjcmlwdCIgaGVpZ2h0PSI0MCIgd2lkdGg9IjUwIiBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9kZXZpY29ucy9kZXZpY29uL2ljb25zL3R5cGVzY3JpcHQvdHlwZXNjcmlwdC1vcmlnaW5hbC5zdmciPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vbW9uZ29vc2Vqcy5jb20vIj48aW1nIGFsaWduPSJjZW50ZXIiIGFsdD0iTW9uZ29vc2UiIGhlaWdodD0iNDAiIHdpZHRoPSI1MCIgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzU1Mjk2NT9zPTI4MCZ2PTQiPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tLyI+PGltZyBhbGlnbj0iY2VudGVyIiBhbHQ9Ik1vbmdvIiBoZWlnaHQ9IjQwIiB3aWR0aD0iNTAiIHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2Rldmljb25zL2Rldmljb24vaWNvbnMvbW9uZ29kYi9tb25nb2RiLXBsYWluLXdvcmRtYXJrLnN2ZyI+PC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9tb2NoYWpzLm9yZy8iPjxpbWcgYWxpZ249ImNlbnRlciIgYWx0PSJNb2NoYSIgaGVpZ2h0PSI0MCIgd2lkdGg9IjUwIiBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9kZXZpY29ucy9kZXZpY29uL2ljb25zL21vY2hhL21vY2hhLXBsYWluLnN2ZyI+PC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuY2hhaWpzLmNvbS8iPjxpbWcgYWxpZ249ImNlbnRlciIgYWx0PSJDaGFpIiBoZWlnaHQ9IjQwIiB3aWR0aD0iNTAiIHNyYz0iaHR0cHM6Ly9jZG4uaWNvbi1pY29ucy5jb20vaWNvbnMyLzI2OTkvUE5HLzUxMi9jaGFpanNfbG9nb19pY29uXzE2ODQzNS5wbmciPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vc2lub25qcy5vcmcvIj48aW1nIGFsaWduPSJjZW50ZXIiIGFsdD0iU2lub24iIGhlaWdodD0iNDAiIHdpZHRoPSI1MCIgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjU3MDI1Mz9zPTI4MCZ2PTQiPjwvYT4KPC9kaXY+CgojIyBBZ3JhZGVjaW1lbnRvCkFncmFkZcOnbyBhIFtAdHJ5YmVyXShodHRwczovL2dpdGh1Yi5jb20vdHJ5YmVyKSBwZWxhIGlkZWFsaXphw6fDo28gZG8gcHJvamV0bywgcG9pcyBkZXN0YSBmb3JtYSBmb2kgcG9zc8OtdmVsIGNvbG9jYXIgZW0gcHLDoXRpY2EgbWV1cyBjb25oZWNpbWVudG9zIHNvYnJlIGEgY3JpYcOnw6NvIGRlIEFQSSBSZXN0IGUgZm9pLCBzZW0gZMO6dmlkYSwgdW1hIGV4cGVyacOqbmNpYSBkZSBwcm9qZXRvIGV4dHJlbWFtZW50ZSBpbXBvcnRhbnRlIHBhcmEgbyBtZXUgZGVzZW52b2x2aW1lbnRvIHByb2Zpc3Npb25hbC4K readmeEtag: '"89db1bfdfa455aeeb2bbea5d4eb330facc0a48c5"' readmeLastModified: Sun, 14 Jul 2024 20:07:50 GMT repositoryId: 567522183 description: >- Car Shop é um projeto idealizado pela escola @Tryber e desenvolvido pelos alunos (como eu). É uma API REST desenvolvida em TypeScript que utiliza o ODM Mongoose para consultar o banco de dados não relacional MongoDB. created: '2022-11-18T00:58:04Z' updated: '2024-07-14T20:07:54Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: Adolligit logo: https://avatars.githubusercontent.com/u/50248803?v=4 repoEtag: '"e868833ea2a30c9be5534537a0832220b2a961e1ce278f06e58bcf255f2b1d70"' repoLastModified: Sun, 14 Jul 2024 20:07:54 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/the-pawn-2017/r5t v3: true id: cd312bae0e99794c6fedc2c13c6f5e63 repositoryMetadata: base64Readme: >- IyByNXQKCj4gSXQgaXMgYSBuZXcgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gYGdvLW9wZW5hcGlg44CCCgppbnN0YWxsOiBgZ28gZ2V0IC11IGdpdGh1Yi5jb20vdGhlLXBhd24tMjAxNy9yNXRgCgoqKkNBUkVGVUxMWSBVU0UgSVQgSU4gWU9VUiBQUk9KRUNULCBCRUNBVVNFIElUIElOIERFVkVMT1BJTkcqKgoKKipJIGFtIGN1cnJlbnRseSB0ZXN0aW5nIHdpdGggbXkgb3duIHByb2plY3RzIHRvIHJlZmluZSBSNVQsIGV4cGVjdGluZyBpdCB0byBzdGFiaWxpemUgYnkgdGhlIGVuZCBvZiBBdWd1c3QuIEF0IHRoYXQgcG9pbnQsIEkgd2lsbCBtYXJrIFI1VCBhcyByZWFkeSBmb3Igb2ZmaWNpYWwgdXNlLCBtYWtpbmcgaXQgY29udmVuaWVudCBmb3IgZXZlcnlvbmUuKioKCiMjIHdoeSBjcmVhdGUgdGhpcyByZXBvPwoxLiBJIHdvdWxkIGxpa2UgdG8gaW1wbGVtZW50IG1vcmUgb3RoZXIgZmVhdHVyZXMsIHN1Y2ggYXMgc3VwcG9ydCBmb3IgR0lOIGFuZCBFQ0hPLgoyLiBTaW5jZSBtYW55IG9mIG15IHByb2plY3RzIGFmdGVyIHRoYXQgcmVxdWlyZSBSRVNUIEFQSSBkb2N1bWVudGF0aW9uLCBJJ20gbW9yZSBtb3RpdmF0ZWQgdG8gbWFpbnRhaW4gaXQuCiMjIHZlcnNpb24KdjAuMwojIyB0b2RvCi0gW3hdIGFsbCBjb21wb25lbnRzIHN1cHBvcnQgYW5kIGxpbWl0Ci0gW3hdIHBhcmFtIGNvbmZpZywgYnV0IG5vIGV4YW1wbGUgYW5kIGxpbWl0Ci0gW3hdIFJlZ2lzdGVyaW5nIHJlcyZyZXEgbW9kZWwsbm93LGl0IGNhbiB1c2UganNvbixmb3JtLCBvdGhlcnMgdHlwZSBpbiBkZXZlbG9waW5nLgotIFt4XSBTdXBwb3J0aW5nIE9BdXRoMiAsIG9ubHkgY29kZSBhbmQgaW1wbGljaXQKLSBbeF0gcmVnaXN0ZXIgbW9kZWwKLSBbIF0gY29tcGxldGUgdGVzdAotIFsgXSBmdWxsIGRvY3VtZW50IGZvciB0aGlzIHJlcG8KLSBbeF0gU3VwcG9ydCBvdGhlciB3ZWIgc2VydmVyLG5vdyxlY2hvIGNhbiB1c2UgcjV0IGJ5IHNvbWUgZnVuY3Rpb24sIGl0J3MgaW4gW2BleGFtcGxlL2VjaG9gXSguL2V4YW1wbGUvZWNoby9lY2hvLm1kKQoKIyMgc29tZSB1c2VmdWwgZmVhdHVyZQojIyMgMS4gZmFzdCBwYWdpbmF0aW9uCmBgYGdvbGFuZwpzIDo9IHI1dC5OZXdTcGVjKHNwZWMuVGl0bGUoInBhZ2luYXRpb24ueWFtbCIpKQpzLkdldCgiL3Rlc3QtcGFnaW5hdGlvbiIpLlBhZ2VJblF1ZXJ5KCJwYWdlIiwgMSwgInBhZ2VTaXplIiwgMTApLlJlc1N0cmluZyhodHRwLlN0YXR1c09LLCByZXMuRXhhbXBsZSgiaGkiKSkKYGBgCiMjIyAyLiBlYXN5IHRvIHVzZSBmb3IgT0F1dGgyCgojIyMgMy4gY29uY2lzZSBhbmQgcG93ZXJmdWwgQVBJLCBsaWtlIGBSZXFqc29uYCxgUmVzSnNvbmAsYFJlc1N0cmluZ2AuCmBgYGdvbGFuZwpzIDo9IHI1dC5OZXdTcGVjKHNwZWMuVGl0bGUoImV4YW1wbGUgcmVxU3RyaW5nIikpCnMuR2V0KCIvdGVzdC1yZXNTdHJpbmciKS5SZXNTdHJpbmcoaHR0cC5TdGF0dXNPSywgcmVzLkV4YW1wbGUoImhpISIpKQpgYGAKIyMgZXhhbXBsZToKZ28gW2AvdGVzdC9zcGVjX3Rlc3RgXSgvdGVzdHMvc3BlY190ZXN0LmdvKSB2aWV3IHNvbWUgZXhhbXBsZQpgYGBnb2xhbmcKdHlwZSBUZXN0IHN0cnVjdCB7CglBIHN0cmluZwoJQiBzdHJpbmcgYHZhbGlkYXRlOiJyZXF1aXJlZCJgCn0KYGBgCmBgYGdvbGFuZwoJcyA6PSBzcGVjLk5ld1NwZWMoKQoJcy5TZWN1cml0eSgKCQlzZWN1cml0eS5XaXRoT0F1dGgyQ29kZSgieml0ZWFsIiwgImh0dHA6Ly8xMC40NS44LjE4OTo4MDgwL29hdXRoL3YyL2F1dGhvcml6ZSIsICJodHRwOi8vMTAuNDUuOC4xODk6ODA4MC9vYXV0aC92Mi90b2tlbiIsCgkJCXNlY3VyaXR5LkFkZFNjb3BlKCJvcGVuaWQiLCAiT1BFTklEIElTIFVTSU5HIEZPUiBJRCIpKSwKCSkKCS8vIHRoYW4sIHlvdSBjYW4gdXNlIE9BdXRoMiBjb2RlIG1vZGUgbm93CglzLlBvc3QoIi9na2QiKS5OZWVkU2VjdXJpZnkoInppdGVhbCIsIFtdc3RyaW5neyJvcGVuaWQifSkuCgkJUmVxSlNPTihtb2RlbC5Nb2RlbE9mW1Rlc3RdKCksIHJlcS5XaXRoRXhhbXBsZShUZXN0e0E6ICJBIiwgQjogIkIifSkpLgoJCVJlc0pTT04oaHR0cC5TdGF0dXNPSywgbW9kZWwuTW9kZWxPZltUZXN0XSgpLCByZXMuV2l0aEV4YW1wbGUoVGVzdHtBOiAiQSIsIEI6ICJCIn0pKQpgYGAKIyMgdG9vbHMgCltzd2FnZ2VyLXVpLWVkaXRdKGh0dHBzOi8vZWRpdG9yLW5leHQuc3dhZ2dlci5pby8pCj4gaW5zcGlyZWQgYnkgW2EtaC9yZXN0XShodHRwczovL2dpdGh1Yi5jb20vYS1oL3Jlc3Qp readmeEtag: '"dd505f9c3b8800e07c2efa156ccb0c1926aa19e1"' readmeLastModified: Thu, 15 Aug 2024 12:16:01 GMT repositoryId: 809563216 description: >- Your OpenAPI 3 documentation is automatically generated via Go code, without relying on comments created: '2024-06-03T02:29:55Z' updated: '2024-08-23T14:06:32Z' language: Go archived: false stars: 1 watchers: 3 forks: 0 owner: the-pawn-2017 logo: https://avatars.githubusercontent.com/u/115976311?v=4 license: LGPL-3.0 repoEtag: '"3e1d11ba58fe480c2eb692c8bf1f81bb4800b6fda823293e9612e2d93e9fb34c"' repoLastModified: Fri, 23 Aug 2024 14:06:32 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/scarych/aom v3: true repositoryMetadata: base64Readme: >- IyBBT006IEFQSSBPdmVyIE1vZGVscwoKIVtUcmF2aXMgKC5jb20pXShodHRwczovL2ltZy5zaGllbGRzLmlvL3RyYXZpcy9jb20vc2NhcnljaC9hb20pCiFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9hb20pCiFbTGlicmFyaWVzLmlvIGRlcGVuZGVuY3kgc3RhdHVzIGZvciBsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9saWJyYXJpZXNpby9yZWxlYXNlL25wbS9hb20pCiFbR2l0SHViXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL3NjYXJ5Y2gvYW9tKQoKYGFvbWAgLSBpdCBpcyBtZXRhLWZyYW1ld29yayBtYWRlIG9mIHR5cGVzY3JpcHQtZGVjb3JhdG9ycywgd2hpY2ggYWxsb3dzIHRvIGZhc3QgYW5kIGNvbWZvcnRhYmxlCmNyZWF0ZSBzYWZlIGFwaS1zZXJ2aWNlcywgdXNpbmcgdGhlIHByaW5jaXBsZSBvZiBhY2N1bXVsYXRpb24gZGF0YSBsYXllcnMsIGVucmljaGVkIHdpdGggYWJzdHJhY3Rpb25zLgoKIyMgSW5zdGFsbGF0aW9uCgpgYGAKbnBtIGkgLXMgYW9tCmBgYAoKb3IKCmBgYAp5YXJuIGFkZCBhb20KYGBgCgojIyBHZXR0aW5nIHN0YXJ0ZWQKClRvIGNoZWNrIG91dCB0aGUgZG9jdW1lbnRhdGlvbiwgdmlzaXQgW2FvbS5qcy5vcmddKGh0dHA6Ly9hb20uanMub3JnKSAoYGVuYCBhbmQgYHJ1YCBhdmFpbGFibGUpCgojIyBDb25jZXB0CgpUaGUgbWFpbiBpZGVhIHNvdW5kcyBsaWtlOiAiZG9uJ3QgZHVwbGljYXRlIHRoZSBjb2RlLCBsaW5rIHRoZSBjb2RlIi4gYGFvbWAgYWxsb3dzIHRvIHVzZSBkYXRhCnByb2NjZXNzaW5nLCBtYWRlIHRvIGNvdmVyIG1vc3QgY2FzZXMgeW91IG5lZWQuIEF0IHRoZSBzYW1lIHRpbWUgYGFvbWAgZG8gbm90IGxpbWl0IHRoZSBkZXZlbG9wZXIKaW4gZnJhbWVzIG9mIHRoZSBvbmx5IGZyYW1ld29yaywgYnV0IGdpdmVzIHRoZSBhYmlsaXR5IHRvIHVzZSB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMgYW5kIHBhY2thZ2VzLgoKYGFvbWAgaXMgbm90IGEgInRoaW5nIGluIGl0c2VsZiAiLSBhIGZyYW1ld29yayB0aGF0IG9wZXJhdGVzIGV4Y2x1c2l2ZWx5IG9uIGl0cyBvd24gY29kZWJhc2UgYW5kIG9ubHkKd29ya3MgaW4gaXRzIG93biBlbnZpcm9ubWVudC4gSXRzIGltcG9ydGFudCBmZWF0dXJlIGlzIHRoZSBhYmlsaXR5IHRvIGNvbWJpbmUgd2l0aCB0aGUgImNsYXNzaWMiIGNvZGUKb24gYGtvYWAsIHdoaWNoIG1ha2VzIGl0IHVzZWZ1bCB3aGVuIG1pZ3JhdGluZyBmdW5jdGlvbmFsaXR5IGFscmVhZHkgZXhpc3RpbmcgcHJvamVjdHMuCgpgYW9tYCBkb2VzIG5vdCBydW4gY29kZSBpbiBhbiBpc29sYXRlZCBlbnZpcm9ubWVudCwgYnV0IGdlbmVyYXRlcyBzdHJ1Y3R1cmVzIHRoYXQgYXJlIGNvbXBhdGlibGUgd2l0aApwb3B1bGFyIGxpYnJhcmllczogYGtvYS1yb3V0ZXJgLCBga29hLXNlc3Npb25gIGFuZCBvdGhlcnMsIHdoaWNoIGFsbG93cywgaWYgbmVjZXNzYXJ5LAprZWVwIHRoZSBleGlzdGluZyBjb2RlLXN0YWNrLCBhbmQgY29tZm9ydGFibHkgZXh0ZW5kIGl0IGluIHRoZSBgYW9tYCArYHR5cGVzY3JpcHRgIG1ldGhvZG9sb2d5LgoKKipDb2RlIHNhbXBsZSoqCgpgYGB0cwpAQnJpZGdlKCIvYXV0aCIsIEF1dGgpCkBCcmlkZ2UoIi9zaG9wIiwgU2hvcCkKQEJyaWRnZSgiL2FjY291bnQiLCBBY2NvdW50KQpAQ29udHJvbGxlcigpCmNsYXNzIFJvb3QgewogIEBHZXQoKQogIHN0YXRpYyBJbmRleCgpIHsKICAgIHJldHVybiBtb2RlbHMuU2V0dGluZ3MuZmluZE9uZSh7IGVuYWJsZWQ6IHRydWUgfSk7CiAgfQp9CgovLyAuLi4KQENvbnRyb2xsZXIoKQpjbGFzcyBBdXRoIHsKICB1c2VyOiBtb2RlbHMuVXNlcnM7CiAgbG9naW46IG1vZGVscy5Vc2VyTG9naW5zOwogIHRva2VuOiBtb2RlbHMuQXV0aFRva2VuczsKCiAgQE1pZGRsZXdhcmUoKQogIHN0YXRpYyBhc3luYyBSZXF1aXJlZCgKICAgIEBIZWFkZXJzKCJhdXRob3JpemF0aW9uIikgdG9rZW4sCiAgICBAVGhpcygpIF90aGlzOiBBdXRoLAogICAgQE5leHQoKSBuZXh0LAogICAgQEVycigpIGVycgogICkgewogICAgY29uc3QgYXV0aFRva2VuID0gYXdhaXQgbW9kZWxzLkF1dGhUb2tlbnMuY2hlY2tUb2tlbih0b2tlbik7CiAgICBpZiAoYXV0aERhdGEpIHsKICAgICAgX3RoaXMudG9rZW4gPSBhdXRoVG9rZW47CiAgICAgIF90aGlzLnVzZXIgPSBhd2FpdCBtb2RlbHMuVXNlcnMuZmluZEJ5SWQoYXV0aFRva2VuLnVzZXJJZCk7CiAgICAgIF90aGlzLmxvZ2luID0gYXdhaXQgbW9kZWxzLlVzZXJMb2dpbnMuZmluZEJ5SWQoYXV0aFRva2VuLmxvZ2luSWQpOwogICAgICByZXR1cm4gbmV4dCgpOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGVycigiYWNjZXNzIGRlbmllZCIsIDQwMyk7CiAgICB9CiAgfQoKICBAUG9zdCgpCiAgc3RhdGljIGFzeW5jIExvZ2luKEBCb2R5KCkgeyBsb2dpbiwgcGFzc3dvcmQgfSwgQEVycigpIGVycikgewogICAgY29uc3QgYXV0aExvZ2luID0gYXdhaXQgbW9kZWxzLlVzZXJMb2dpbnMuYXV0aExvZ2luKGxvZ2luLCBwYXNzd29yZCk7CiAgICBpZiAoY2hlY2tMb2dpbikgewogICAgICByZXR1cm4gbW9kZWxzLkF1dGhUb2tlbnMuZ2VuZXJhdGVUb2tlbihhdXRoTG9naW4pOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGVycigid3JvbmcgbG9naW4iLCA0MDMpOwogICAgfQogIH0KfQoKLy8gLi4uCkBDb250cm9sbGVyKCkKY2xhc3MgU2hvcCB7CiAgQEdldCgpCiAgc3RhdGljIEluZGV4KEBRdWVyeSgpIHF1ZXJ5KSB7CiAgICByZXR1cm4gbW9kZWxzLlByb2R1Y3RzLmZpbmQoeyAuLi5xdWVyeSB9KTsKICB9CgogIEBHZXQoIi9jYXRlZ29yaWVzIikKICBzdGF0aWMgQ2F0ZWdvcmllcyhAUXVlcnkoKSBxdWVyeSkgewogICAgcmV0dXJuIG1vZGVscy5DYXRlZ29yaWVzLmZpbmQoeyAuLi5xdWVyeSB9KTsKICB9CgogIEBHZXQoIi9icmFuZHMiKQogIHN0YXRpYyBCcmFuZHMoQFF1ZXJ5KCkgcXVlcnkpIHsKICAgIHJldHVybiBtb2RlbHMuQnJhbmRzLmZpbmQoeyAuLi5xdWVyeSB9KTsKICB9CgogIEBQb3N0KCIvYWRkX3RvX2NhcnQiKQogIEBVc2UoQXV0aC5SZXF1aXJlZCkKICBzdGF0aWMgQWRkVG9DYXJ0KEBCb2R5KCkgeyBwcm9kdWN0SWQsIHF1YW50aXR5IH0sIEBTdGF0ZU1hcChBdXRoKSB7IHVzZXIgfTogQXV0aCkgewogICAgY29uc3QgYWRkVXNlckNhcnQgPSBhd2FpdCB1c2VyLmFkZFByb2R1Y3RUb0NhcnQocHJvZHVjdElkLCBxdWFudGl0eSk7CiAgICByZXR1cm4gdXNlci5nZXRQcm9kdWN0c0NhcnQoKTsKICB9Cn0KCi8vIC4uLgpAQ29udHJvbGxlcigpCkBVc2UoQXV0aC5SZXF1aXJlZCkKY2xhc3MgQWNjb3VudCB7CiAgQEdldCgpCiAgc3RhdGljIGFzeW5jIEluZGV4KEBTdGF0ZU1hcChBdXRoKSB7IHVzZXIsIGxvZ2luIH06IEF1dGgpIHsKICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IHVzZXIuZ2V0T3JkZXJzKCk7CiAgICByZXR1cm4geyB1c2VyLCBsb2dpbiwgb3JkZXJzIH07CiAgfQoKICBAUG9zdCgiL2xvZ291dCIpCiAgc3RhdGljIGFzeW5jIExvZ291dChAU3RhdGVNYXAoQXV0aCkgeyB0b2tlbiB9OiBBdXRoKSB7CiAgICBhd2FpdCB0b2tlbi5yZW1vdmUoKTsKICAgIHJldHVybiB7IG1lc3NhZ2U6ICJzdWNjZXNzIGxvZ291dCIgfTsKICB9Cn0KYGBgCgojIyBJc3N1ZXMKClVzZSBbR2l0aHViIGlzc3Vlc10oaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5Y2gvYW9tL2lzc3VlcykgdG8gYXNrIHlvdXIgcXVlc3Rpb24gb3IgcmVwb3J0IGFib3V0CnByb2JsZW0uCgojIyBDb250YWN0cwoKLSBBdXRob3I6IFtHcmlnb3J5IEtob2xzdGlubmlrb3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeWNoKQotIEVtYWlsOiBbbWFpbEBzY2FyeWNoLnJ1XShtYWlsdG86bWFpbEBzY2FyeWNoLnJ1KQoKIyMgTGljZW5zZQoKQU9NIGlzIFtNSVQgbGljZW5zZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeWNoL2FvbS9ibG9iL0hFQUQvTElDRU5TRSkuCgojIyBXYXJuaW5nCgpgYW9tYCBpcyBpbiBvcGVuIGJldGEgYW5kIHdpbGwgYmUgZXhwYW5kZWQgd2l0aCBuZXcgZmVhdHVyZXMuIEVycm9ycyBhcmUgbm90IGV4Y2x1ZGVkLCBhcyB3ZWxsCmFzIHJlcGxhY2VtZW50IGFuZCByZW5hbWluZyBvZiBhIG51bWJlciBvZiBmdW5jdGlvbnMgYW5kIGRlY29yYXRvcnMuCg== readmeEtag: '"69652f085b26e13d0fe4a66a88b67f9354f7beb5"' readmeLastModified: Mon, 12 Aug 2024 10:07:01 GMT repositoryId: 152123069 description: Lightweight and powerful, decorator based REST-API framework. created: '2018-10-08T17:57:15Z' updated: '2024-09-02T13:58:42Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 1 owner: scarych logo: https://avatars.githubusercontent.com/u/1063164?v=4 license: MIT repoEtag: '"fa18465488c74ffe3c3e7c14f59c94e3491188c34afc6dde4623a1cea7866616"' repoLastModified: Mon, 02 Sep 2024 13:58:42 GMT foundInMaster: true category: Data Validators id: 64190460033d905d82ecec7ff3748dbe - source: openapi3 tags repository: https://github.com/uttesh/exude-api v3: true repositoryMetadata: base64Readme: >- IyA8aW1nIHNyYz0iaHR0cDovL3V0dGVzaC5jb20vZXh1ZGUtYXBpL2ltZy9sb2dvLnBuZyIgYWx0PSJkcmF3aW5nIiB3aWR0aD0iODAiLz4gIEV4dWRlLUFQSSA8c3VwIHN0eWxlPSJjb2xvcjpyZWQiPmJldGE8L3N1cD4KCkV4dWRlIEFQSSBpcyBhbiBPcGVuIFNvdXJjZSBwcm9qZWN0LCBJdCBpcyB1c2VkIGZvciB0aGUgcHJpbWFyeSB3YXlzIGZvciBmaWx0ZXJpbmcgdGhlIHN0b3BwaW5nLCBzdGVtbWluZyB3b3JkcyBmcm9tIHRoZSB0ZXh0IGRhdGEuIFRoaXMgQVBJIGlzIGluIGEgdmVyeSBiYXNpYyBsZXZlbCBvZiBkZXZlbG9wbWVudCBuZWVkIHRvIHdvcmsgb24gZm9yIGxhdGVyIGNoYW5nZXMuCgpFeHVkZSBBUEkgdXNlcyB0aGUgaW4taG91c2UgRXh1ZGUgbGlicmFyeSBmb3IgdGhlIGZpbHRlcmluZyBvZiB0aGUgZGF0YSBFeHVkZS1saWJyYXJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS91dHRlc2gvZXh1ZGUiIHRhcmdldD0iX2JsYW5rIj5SZXBvc2l0b3J5PC9hPgoKRGVtbzogaHR0cHM6Ly9leHVkZS5oZXJva3VhcHAuY29tLyAoaXRzIHRoZSBzYW1wbGUgc2VydmVyKQojIyBGZWF0dXJlcwoKKiBGaWx0ZXIgc3RvcHBpbmcgd29yZHMgZnJvbSBnaXZlbiB0ZXh0L2ZpbGUvbGluay4KKiBGaWx0ZXIgc3RlbW1pbmcgd29yZHMgZnJvbSBnaXZlbiB0ZXh0L2ZpbGUvbGluay4KKiBHZXQgc3dlYXIgd29yZHMgZnJvbSBnaXZlbiB0ZXh0L2ZpbGUvbGluawoKIyMgT3BlbkFQSS1VUkwKCk9wZW4gQVBJIEpTT046IGh0dHA6Ly91dHRlc2guY29tL2V4dWRlLWFwaS9leHVkZS1zZXJ2aWNlLW9wZW4tYXBpLmpzb24KCk9wZW4gQVBJIFlNTDogaHR0cDovL3V0dGVzaC5jb20vZXh1ZGUtYXBpL2V4dWRlLXNlcnZpY2Utb3Blbi1hcGkueW1sCgpIZXJ1a28gU3BlYyBVUkwgOiBodHRwczovL2V4dWRlLWFwaS5oZXJva3VhcHAuY29tL3N3YWdnZXItdWkvaW5kZXguaHRtbD91cmw9L3YzL2FwaS1kb2NzCgojIyBIb3cgdG8gVXNlCgpFaXRoZXIgdXNlIHRoZSBIZXJ1a28gdXJsIG9yIGRlcGxveSBsb2NhbGx5IGJ5IHVzaW5nIHRoZSBkb2NrZXIgdG8gaGl0IHRoZSBBUEksIGZvciBtb3JlIHRlY2huaWNhbCBkZXRhaWxzIG9uIHRoZQpBUEkgc2VlIGV4dWRlLWFwaSBkb2M6IDxhIGhyZWY9Imh0dHA6Ly91dHRlc2guY29tL2V4dWRlLWFwaS9hcGktZXhwbG9yZXIvIiB0YXJnZXQ9Il9ibGFuayI+IERvY3VtZW50YXRpb24gPC9hPgoKUG9zdG1hbiBleGVjdXRpb24gc2FtcGxlOgoKPGZpZ3VyZSBjbGFzcz0idmlkZW9fY29udGFpbmVyIj4KICA8dmlkZW8gY29udHJvbHM9InRydWUiIGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIgcG9zdGVyPSJodHRwOi8vdXR0ZXNoLmNvbS9leHVkZS1hcGkvaW1nL2xvZ28ucG5nIj4KICAgIDxzb3VyY2Ugc3JjPSJodHRwOi8vdXR0ZXNoLmNvbS9leHVkZS1hcGkvZXh1ZGUtYXBpLXBvc3RtYW4tc2FtcGxlLXZpZW8ud2VibSIgdHlwZT0idmlkZW8vd2VibSI+CiAgPC92aWRlbz4KPC9maWd1cmU+CgoK readmeEtag: '"dcf27cffedaeb14e7ca00d85a95a502d18a3a7fb"' readmeLastModified: Tue, 10 Mar 2020 18:20:35 GMT repositoryId: 245419070 description: >- Exude API provide the service to filter the stopping,swear words on the provided file,data and link and it uses the in house exude jar to filter the data created: '2020-03-06T12:52:40Z' updated: '2020-06-21T04:43:16Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: uttesh logo: https://avatars.githubusercontent.com/u/2218611?v=4 license: Apache-2.0 repoEtag: '"5fa392b23f9352252e18ee92b26b8966d6026f2e0c577209d76b422ff43428ef"' repoLastModified: Sun, 21 Jun 2020 04:43:16 GMT foundInMaster: true category: Testing id: 48c791c3f16d34ec574327043da3d1ad - source: openapi3 tags repository: https://github.com/osevohe/oc-p7-api_rest v3: true repositoryMetadata: base64Readme: >- IyBCaWxlTW8gQVBJCgpPcGVuQ2xhc3NSb29tcyA3dGggUHJvamVjdApCdWlsZCBhbiBBUEkgUkVTVCB3aXRoIFN5bWZvbnkKClshW1NvbmFyQ2xvdWRdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9pbWFnZXMvcHJvamVjdF9iYWRnZXMvc29uYXJjbG91ZC13aGl0ZS5zdmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPU9TRXZvaGVfT0MtUDctQVBJX1JFU1QpCgpbIVtNYWludGFpbmFiaWxpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1PU0V2b2hlX09DLVA3LUFQSV9SRVNUJm1ldHJpYz1zcWFsZV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPU9TRXZvaGVfT0MtUDctQVBJX1JFU1QpClshW1F1YWxpdHkgR2F0ZSBTdGF0dXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PU9TRXZvaGVfT0MtUDctQVBJX1JFU1QmbWV0cmljPWFsZXJ0X3N0YXR1cyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9T1NFdm9oZV9PQy1QNy1BUElfUkVTVCkKWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1PU0V2b2hlX09DLVA3LUFQSV9SRVNUJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPU9TRXZvaGVfT0MtUDctQVBJX1JFU1QpClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PU9TRXZvaGVfT0MtUDctQVBJX1JFU1QmbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPU9TRXZvaGVfT0MtUDctQVBJX1JFU1QpClshW0NvZGUgU21lbGxzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1PU0V2b2hlX09DLVA3LUFQSV9SRVNUJm1ldHJpYz1jb2RlX3NtZWxscyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9T1NFdm9oZV9PQy1QNy1BUElfUkVTVCkKWyFbRHVwbGljYXRlZCBMaW5lcyAoJSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PU9TRXZvaGVfT0MtUDctQVBJX1JFU1QmbWV0cmljPWR1cGxpY2F0ZWRfbGluZXNfZGVuc2l0eSldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9T1NFdm9oZV9PQy1QNy1BUElfUkVTVCkKCkNvZGUgQ2xpbWF0ZSAgClshW01haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy8zYzEwZWE4NmZmN2JhOTRiZjAxMy9tYWludGFpbmFiaWxpdHkpXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvT1NFdm9oZS9PQy1QNy1BUElfUkVTVC9tYWludGFpbmFiaWxpdHkpCgojIyBQcmVyZXF1aXNpdGUKKiBBIFdlYiBTZXJ2ZXIgKEFwYWNoZSwgTmdpbnguLi4pCiogUGhQIDcuMwoqIENvbXBvc2VyCiogQSBkYXRhYmFzZSBlbmdpbmUgKE1hcmlhREIsIE15U3FsLCBQb3N0Z3JlU1FMLi4uKQoqIFtPcGVuU1NMIGNvbW1hbmQgbGluZSB0b29sXShodHRwczovL3d3dy5vcGVuc3NsLm9yZy9kb2NzL21hbjEuMC4yL21hbjEvb3BlbnNzbC5odG1sKSBvciBhbHJlYWR5IGdlbmVyYXRlZCBTU0ggS2V5cwoKIyMgSW5zdGFsbGF0aW9uCiogQ2xvbmUgb3IgZG93bmxvYWQgdGhlIHByb2plY3QKKiBHbyB0byBwcm9qZWN0IGZvbGRlciBpbiBhIHRlcm1pbmFsCiogVHlwZSBgY29tcG9zZXIgaW5zdGFsbGAKKiBDb25maWd1cmUgYSBuZXcgaG9zdCBpbiB5b3VyIHdlYiBzZXJ2ZXIgd2l0aCBgcHVibGljL2AgZm9sZGVyIGFzIERvY3VtZW50Um9vdAoKIyMjIERhdGFiYXNlIHNldHVwCiogQ29weSBgLmVudmAgdG8gYC5lbnYubG9jYWxgIGFuZCBlZGl0IGRhdGFiYXNlIHBhcmFtZXRlcnMKKiBJbml0aWFsaXplIHRoZSBkYXRhYmFzZSA6IAogICogYHBocCBiaW4vY29uc29sZSBkb2N0cmluZTpkYXRhYmFzZTpjcmVhdGVgCiAgKiBgcGhwIGJpbi9jb25zb2xlIG1ha2U6bWlncmF0aW9uYAogICogYHBocCBiaW4vY29uc29sZSBkb2N0cmluZTptaWdyYXRpb25zOm1pZ3JhdGVgCiAgCiMjIyBKV1QgQXV0aGVudGljYXRpb24gU2V0dXAKKiBHZW5lcmF0ZSBwcml2YXRlIGtleSA6YG9wZW5zc2wgZ2VucnNhIC1vdXQgcHJpdmF0ZS5wZW0gLWFlczI1NiA0MDk2YAoqIEdlbmVyYXRlIHB1YmxpYyBrZXkgOiBgb3BlbnNzbCByc2EgLXB1Ym91dCAtaW4gcHJpdmF0ZS5wZW0gLW91dCBwdWJsaWMucGVtYAoqIG1vdmUgU1NIIGtleXMgKGBwcml2YXRlLnBlbWAgYW5kIGBwdWJsaWMucGVtYCkgdG8gYGNvbmZpZy9qd3QvYAoqIHNldCBwYXNzcGhyYXNlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGtleXMgaW4geW91ciBlbnYubG9jYWwgZmlsZSAoYEpXVF9QQVNTUEhSQVNFYCkKCiMjIyBJbml0aWFsIGRhdGFiYXNlIGRhdGEKKiBUbyBzdGFydCB3aXRoIG5vIGRhdGEgOiBgcGhwIGJpbi9jb25zb2xlIGRvY3RyaW5lOmZpeHR1cmVzOmxvYWQgLS1ncm91cD1zdGFydGluZ191c2Vyc2AKKiBUbyBzdGFydCB3aXRoIHNhbXBsZXMgZGF0YSA6IGBwaHAgYmluL2NvbnNvbGUgZG9jdHJpbmU6Zml4dHVyZXM6bG9hZGAKCiMjIFNlY3VyZSB5b3VyIHNpdGUKIyMjIEFkbWluIGFjY2VzcwpCeSBkZWZhdWx0LCB5b3UgY2FuIHJldHJpZXZlIGFuIGFkbWluIHRva2VuIDogIApKU09OIDogYHsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoic3VwZXJQYXNzd29yZDM0ISJ9YCAgIApVUkwgOiAgYC9hcGkvbG9naW5fY2hlY2tgICAgCk1FVEhPRCA6ICBgUE9TVGAKCiMjIyMgT3RoZXIgdXNlcnMKU2FtcGxlcyBkYXRhIGNvbWUgd2l0aCAxIGFkZGl0aW9uYWwgdXNlcnMgOiAgCkpTT04gOiBgeyJ1c2VybmFtZSI6InVzZXIxIiwicGFzc3dvcmQiOiJQYXNzV29yZDAxISJ9YCAgIApVUkwgOiAgYC9hcGkvbG9naW5fY2hlY2tgICAgCk1FVEhPRCA6ICBgUE9TVGAKCiMjIERvY3VtZW50YXRpb24KT25jZSBwcm9qZWN0IGlzIGluc3RhbGxlZCB5b3UgY2FuIGZpbmQgZG9jdW1lbnRhdGlvbiA6IApIVE1MIERvYyA6IChpbiBhIGJyb3dzZXIpIDogYC9hcGkvZG9jYApKc29uIERvYyAoT3BlbkFQSSAzLjApIDogYC9hcGkvZG9jLmpzb25gCkEgUGRmIHZlcnNpb24gY2FuIGJlIGZvdW5kIGluIGAvZG9jYCBkaXJlY3Rvcnk= readmeEtag: '"017bcb80e9da3608d05a9552bc25832524ffc048"' readmeLastModified: Fri, 18 Dec 2020 21:29:18 GMT repositoryId: 313562762 description: OpenClassRooms 7th Project. Build an API REST with Symfony created: '2020-11-17T09:03:19Z' updated: '2020-12-18T21:29:46Z' language: PHP archived: false stars: 1 watchers: 2 forks: 0 owner: OSEvohe logo: https://avatars.githubusercontent.com/u/13046894?v=4 repoEtag: '"0c2f6488e49db1618155b6d78aac333e42616f16c2a4804def7421947d383c7e"' repoLastModified: Fri, 18 Dec 2020 21:29:46 GMT foundInMaster: true category: Server id: 9845cdf339b0c28f4c61b07e0a5ab024 - source: openapi3 tags repository: https://github.com/boro23-wq/case-manager-api-design v3: true id: 93247bee3a374b56229352c0f3ad044e repositoryMetadata: base64Readme: >- CiMgQ2FzZSBNYW5hZ2VycyBBUEkgQ29sbGVjdGlvbgoKVGhlIEFQSSByZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgY2FzZSBtYW5hZ2VycyBhbmQgdGhlaXIgY2FzZXMuCgpDb250YWN0IFN1cHBvcnQ6CiAtICoqTmFtZSoqOiBTaW50dSBCb3JvCiAtICoqRW1haWwqKjogc2IzOTRAbmppdC5lZHUKCjwhLS0tIElmIHdlIGhhdmUgb25seSBvbmUgZ3JvdXAvY29sbGVjdGlvbiwgdGhlbiBubyBuZWVkIGZvciB0aGUgInVuZ3JvdXBlZCIgaGVhZGluZyAtLT4KCgojIyBWYXJpYWJsZXMKCnwgS2V5IHwgVmFsdWUgfCBUeXBlIHwKfCAtLS0gfCAtLS0tLS18LS0tLS0tLS0tLS0tLXwKfCBiYXNlVXJsIChkZXYpIHwgaHR0cDovL2xvY2FsaG9zdDozMDAwIHwgc3RyaW5nIHwKfCBiYXNlVXJsIChwcm9kL21vY2spIHwgaHR0cHM6Ly8wMWQ5YjVhNS1lZWFjLTRkMGEtODJmMi1iNzY2NjE3OWViYmIubW9jay5wc3Rtbi5pbyB8IHN0cmluZyB8CgoKCiMjIEVuZHBvaW50cwoKKiBbY2FzZW1hbmFnZXJzXSgjY2FzZW1hbmFnZXJzKQogICAgMS4gW3tpZH1dKCMxLWlkKQogICAgMS4gW0NyZWF0ZSBhIGNhc2UgbWFuYWdlci5dKCMyLWNyZWF0ZS1hLWNhc2UtbWFuYWdlcikKICAgICAgICAqIFtTdWNjZXNzZnVsbHkgY3JlYXRlZCBjYXNlIG1hbmFnZXIuXSgjaS1leGFtcGxlLXJlcXVlc3Qtc3VjY2Vzc2Z1bGx5LWNyZWF0ZWQtY2FzZS1tYW5hZ2VyKQogICAgICAgICogW0ludmFsaWQgcmVxdWVzdC4gUGxlYXNlIGZpbGwgdGhlIHJlcXVpcmVkIGlucHV0L2lucHV0cy5dKCNpaS1leGFtcGxlLXJlcXVlc3QtaW52YWxpZC1yZXF1ZXN0LXBsZWFzZS1maWxsLXRoZS1yZXF1aXJlZC1pbnB1dGlucHV0cykKICAgICAgICAqIFtCYWQgcmVxdWVzdC4gQ2FuJ3QgZmluZCB0aGUgcmVxdWVzdGVkIHJlc291cmNlLl0oI2lpaS1leGFtcGxlLXJlcXVlc3QtYmFkLXJlcXVlc3QtY2FudC1maW5kLXRoZS1yZXF1ZXN0ZWQtcmVzb3VyY2UpCiAgICAgICAgKiBbSW50ZXJuYWwgc2VydmVyIGVycm9yLiBDYW4ndCBmdWxmaWxsIHRoZSByZXF1ZXN0Ll0oI2l2LWV4YW1wbGUtcmVxdWVzdC1pbnRlcm5hbC1zZXJ2ZXItZXJyb3ItY2FudC1mdWxmaWxsLXRoZS1yZXF1ZXN0KQogICAgMS4gW0ZpbmQgYWxsIGNhc2UgbWFuYWdlcnMuXSgjMy1maW5kLWFsbC1jYXNlLW1hbmFnZXJzKQogICAgICAgICogW1N1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgYWxsIHRoZSBjYXNlIG1hbmFnZXJzLl0oI2ktZXhhbXBsZS1yZXF1ZXN0LXN1Y2Nlc3NmdWxseS1yZXRyaWV2ZWQtYWxsLXRoZS1jYXNlLW1hbmFnZXJzKQogICAgICAgICogW0ludmFsaWQgcmVxdWVzdC4gUGxlYXNlIGZpbGwgdGhlIHJlcXVpcmVkIGlucHV0L2lucHV0cy5dKCNpaS1leGFtcGxlLXJlcXVlc3QtaW52YWxpZC1yZXF1ZXN0LXBsZWFzZS1maWxsLXRoZS1yZXF1aXJlZC1pbnB1dGlucHV0cy0xKQogICAgICAgICogW0JhZCByZXF1ZXN0LiBDYW4ndCBmaW5kIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuXSgjaWlpLWV4YW1wbGUtcmVxdWVzdC1iYWQtcmVxdWVzdC1jYW50LWZpbmQtdGhlLXJlcXVlc3RlZC1yZXNvdXJjZS0xKQogICAgICAgICogW0ludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC5dKCNpdi1leGFtcGxlLXJlcXVlc3QtaW50ZXJuYWwtc2VydmVyLWVycm9yLWNhbnQtZnVsZmlsbC10aGUtcmVxdWVzdC0xKQoqIFtjYXNlc10oI2Nhc2VzKQogICAgMS4gW3tjYXNlSWR9XSgjMS1jYXNlaWQpCiAgICAxLiBbQ3JlYXRlIGEgY2FzZS5dKCMyLWNyZWF0ZS1hLWNhc2UpCiAgICAgICAgKiBbU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgY2FzZS5dKCNpLWV4YW1wbGUtcmVxdWVzdC1zdWNjZXNzZnVsbHktY3JlYXRlZC1jYXNlKQogICAgICAgICogW0ludmFsaWQgcmVxdWVzdC4gUGxlYXNlIGZpbGwgdGhlIHJlcXVpcmVkIGlucHV0L2lucHV0cy5dKCNpaS1leGFtcGxlLXJlcXVlc3QtaW52YWxpZC1yZXF1ZXN0LXBsZWFzZS1maWxsLXRoZS1yZXF1aXJlZC1pbnB1dGlucHV0cy0yKQogICAgICAgICogW0JhZCByZXF1ZXN0LiBDYW4ndCBmaW5kIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuXSgjaWlpLWV4YW1wbGUtcmVxdWVzdC1iYWQtcmVxdWVzdC1jYW50LWZpbmQtdGhlLXJlcXVlc3RlZC1yZXNvdXJjZS0yKQogICAgICAgICogW0ludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC5dKCNpdi1leGFtcGxlLXJlcXVlc3QtaW50ZXJuYWwtc2VydmVyLWVycm9yLWNhbnQtZnVsZmlsbC10aGUtcmVxdWVzdC0yKQogICAgMS4gW0ZpbmQgYWxsIGNhc2VzLl0oIzMtZmluZC1hbGwtY2FzZXMpCiAgICAgICAgKiBbU3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBhbGwgdGhlIGNhc2VzLl0oI2ktZXhhbXBsZS1yZXF1ZXN0LXN1Y2Nlc3NmdWxseS1yZXRyaWV2ZWQtYWxsLXRoZS1jYXNlcykKICAgICAgICAqIFtJbnZhbGlkIHJlcXVlc3QuIFBsZWFzZSBmaWxsIHRoZSByZXF1aXJlZCBpbnB1dC9pbnB1dHMuXSgjaWktZXhhbXBsZS1yZXF1ZXN0LWludmFsaWQtcmVxdWVzdC1wbGVhc2UtZmlsbC10aGUtcmVxdWlyZWQtaW5wdXRpbnB1dHMtMykKICAgICAgICAqIFtCYWQgcmVxdWVzdC4gQ2FuJ3QgZmluZCB0aGUgcmVxdWVzdGVkIHJlc291cmNlLl0oI2lpaS1leGFtcGxlLXJlcXVlc3QtYmFkLXJlcXVlc3QtY2FudC1maW5kLXRoZS1yZXF1ZXN0ZWQtcmVzb3VyY2UtMykKICAgICAgICAqIFtJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IuIENhbid0IGZ1bGZpbGwgdGhlIHJlcXVlc3QuXSgjaXYtZXhhbXBsZS1yZXF1ZXN0LWludGVybmFsLXNlcnZlci1lcnJvci1jYW50LWZ1bGZpbGwtdGhlLXJlcXVlc3QtMykKCi0tLS0tLS0tCgoKCiMjIGNhc2VtYW5hZ2VycwoKCgojIyMgMS4ge2lkfQoKCgoqKipFbmRwb2ludDoqKioKCmBgYGJhc2gKTWV0aG9kOiAKVHlwZTogClVSTDogCmBgYAoKCgojIyMgMi4gQ3JlYXRlIGEgY2FzZSBtYW5hZ2VyLgoKCkNyZWF0ZSBhIG5ldyBjYXNlIG1hbmFnZXIgdXNpbmcgdGhlIGlucHV0IHByb3ZpZGVkIGFuZCBhZGQgaXQgdG8gdGhlIHN5c3RlbS4KCgoqKipFbmRwb2ludDoqKioKCmBgYGJhc2gKTWV0aG9kOiBQT1NUClR5cGU6IFJBVwpVUkw6IHt7YmFzZVVybH19L2Nhc2VtYW5hZ2VycwpgYGAKCgoqKipIZWFkZXJzOioqKgoKfCBLZXkgfCBWYWx1ZSB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0tLS18LS0tLS0tLS0tLS0tLXwKfCBDb250ZW50LVR5cGUgfCBhcHBsaWNhdGlvbi9qc29uIHwgIHwKfCBBY2NlcHQgfCBhcHBsaWNhdGlvbi9qc29uIHwgIHwKCgoKKioqQm9keToqKioKCmBgYGpzICAgICAgICAKewogICJ1c2VybmFtZSI6ICJqb2huZG9lIiwKICAiZmlyc3ROYW1lIjogIkpvaG4iLAogICJsYXN0TmFtZSI6ICJEb2UiLAogICJlbWFpbCI6ICJqb2huZG9lQGNtLmlvIiwKICAicGhvbmUiOiA4NjIzODE3NjY1Cn0KYGBgCgoKCioqKk1vcmUgZXhhbXBsZSBSZXF1ZXN0cy9SZXNwb25zZXM6KioqCgoKIyMjIyBJLiBFeGFtcGxlIFJlcXVlc3Q6IFN1Y2Nlc3NmdWxseSBjcmVhdGVkIGNhc2UgbWFuYWdlci4KCgoKKioqQm9keToqKioKCmBgYGpzICAgICAgICAKewogICJ1c2VybmFtZSI6ICJqb2huZG9lIiwKICAiZmlyc3ROYW1lIjogIkpvaG4iLAogICJsYXN0TmFtZSI6ICJEb2UiLAogICJlbWFpbCI6ICJqb2huZG9lQGNtLmlvIiwKICAicGhvbmUiOiA4NjIzODE3NjY1Cn0KYGBgCgoKCiMjIyMgSS4gRXhhbXBsZSBSZXNwb25zZTogU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgY2FzZSBtYW5hZ2VyLgpgYGBqcwp7CiAgInVzZXJuYW1lIjogImpvaG5kb2UiLAogICJmaXJzdE5hbWUiOiAiSm9obiIsCiAgImxhc3ROYW1lIjogIkRvZSIsCiAgImVtYWlsIjogImpvaG5kb2VAY20uaW8iLAogICJwaG9uZSI6IDg2MjM4MTc2NjUsCiAgImNhc2VNYW5hZ2VySWQiOiAiMzc4Y2RkZGMtMzFhZi00ODFjLTkwMDAtMmFiNGVhYmVlYmFmIiwKICAiY3JlYXRlZEF0IjogIjIwMjEtMDEtMzBUMDg6MzA6MDBaIiwKICAibW9kaWZpZWRBdCI6ICIyMDIxLTAxLTMxVDA4OjMwOjAwWiIKfQpgYGAKCgoqKipTdGF0dXMgQ29kZToqKiogMjAxCgo8YnI+CgoKCiMjIyMgSUkuIEV4YW1wbGUgUmVxdWVzdDogSW52YWxpZCByZXF1ZXN0LiBQbGVhc2UgZmlsbCB0aGUgcmVxdWlyZWQgaW5wdXQvaW5wdXRzLgoKCgoqKipCb2R5OioqKgoKYGBganMgICAgICAgIAp7Ci8vICAgInVzZXJuYW1lIjogImpvaG5kb2UiLAogICJmaXJzdE5hbWUiOiAiSm9obiIsCiAgImxhc3ROYW1lIjogIkRvZSIsCiAgImVtYWlsIjogImpvaG5kb2VAY20uaW8iLAogICJwaG9uZSI6IDg2MjM4MTc2NjUKfQpgYGAKCgoKIyMjIyBJSS4gRXhhbXBsZSBSZXNwb25zZTogSW52YWxpZCByZXF1ZXN0LiBQbGVhc2UgZmlsbCB0aGUgcmVxdWlyZWQgaW5wdXQvaW5wdXRzLgpgYGBqcwp7CiAgInN0YXR1c0NvZGUiOiA0MDAsCiAgImRlc2NyaXB0aW9uIjogIkludmFsaWQgcmVxdWVzdC4gUGxlYXNlIGZpbGwgdGhlIHJlcXVpcmVkIGlucHV0L2lucHV0cy4iCn0KYGBgCgoKKioqU3RhdHVzIENvZGU6KioqIDQwMAoKPGJyPgoKCgojIyMjIElJSS4gRXhhbXBsZSBSZXF1ZXN0OiBCYWQgcmVxdWVzdC4gQ2FuJ3QgZmluZCB0aGUgcmVxdWVzdGVkIHJlc291cmNlLgoKCgoqKipCb2R5OioqKgoKYGBganMgICAgICAgIAp7CiAgInVzZXJuYW1lIjogImpvaG5kb2UiLAovLyAgICJmaXJzdE5hbWUiOiAiSm9obiIsCiAgImxhc3ROYW1lIjogIkRvZSIsCiAgImVtYWlsIjogImpvaG5kb2VAY20uaW8iLAogICJwaG9uZSI6IDg2MjM4MTc2NjUKfQpgYGAKCgoKIyMjIyBJSUkuIEV4YW1wbGUgUmVzcG9uc2U6IEJhZCByZXF1ZXN0LiBDYW4ndCBmaW5kIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuCmBgYGpzCnsKICAic3RhdHVzQ29kZSI6IDQwNCwKICAiZGVzY3JpcHRpb24iOiAiQmFkIHJlcXVlc3QuIENhbid0IGZpbmQgdGhlIHJlcXVlc3RlZCByZXNvdXJjZS4iCn0KYGBgCgoKKioqU3RhdHVzIENvZGU6KioqIDQwNAoKPGJyPgoKCgojIyMjIElWLiBFeGFtcGxlIFJlcXVlc3Q6IEludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC4KCgoKKioqQm9keToqKioKCmBgYGpzICAgICAgICAKLy8gewovLyAgICJ1c2VybmFtZSI6ICJqb2huZG9lIiwKLy8gICAiZmlyc3ROYW1lIjogIkpvaG4iLAovLyAgICJsYXN0TmFtZSI6ICJEb2UiLAovLyAgICJlbWFpbCI6ICJqb2huZG9lQGNtLmlvIiwKLy8gICAicGhvbmUiOiA4NjIzODE3NjY1Ci8vIH0KYGBgCgoKCiMjIyMgSVYuIEV4YW1wbGUgUmVzcG9uc2U6IEludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC4KYGBganMKewogICJzdGF0dXNDb2RlIjogNTAwLAogICJkZXNjcmlwdGlvbiI6ICJJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IuIENhbid0IGZ1bGZpbGwgdGhlIHJlcXVlc3QuIgp9CmBgYAoKCioqKlN0YXR1cyBDb2RlOioqKiA1MDAKCjxicj4KCgoKIyMjIDMuIEZpbmQgYWxsIGNhc2UgbWFuYWdlcnMuCgoKR2V0IGFsbCB0aGUgY2FzZSBtYW5hZ2VycyBhbmQgdGhlaXIgY2FzZXMgcmVjb3JkZWQgaW4gdGhlIHN5c3RlbS4KCgoqKipFbmRwb2ludDoqKioKCmBgYGJhc2gKTWV0aG9kOiBHRVQKVHlwZTogClVSTDoge3tiYXNlVXJsfX0vY2FzZW1hbmFnZXJzCmBgYAoKCioqKkhlYWRlcnM6KioqCgp8IEtleSB8IFZhbHVlIHwgRGVzY3JpcHRpb24gfAp8IC0tLSB8IC0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IEFjY2VwdCB8IGFwcGxpY2F0aW9uL2pzb24gfCAgfAoKCgoqKipNb3JlIGV4YW1wbGUgUmVxdWVzdHMvUmVzcG9uc2VzOioqKgoKCiMjIyMgSS4gRXhhbXBsZSBSZXF1ZXN0OiBTdWNjZXNzZnVsbHkgcmV0cmlldmVkIGFsbCB0aGUgY2FzZSBtYW5hZ2Vycy4KCgoKKioqQm9keTogTm9uZSoqKgoKCgojIyMjIEkuIEV4YW1wbGUgUmVzcG9uc2U6IFN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgYWxsIHRoZSBjYXNlIG1hbmFnZXJzLgpgYGBqcwpbCiAgewogICAgInVzZXJuYW1lIjogImpvaG5kb2UiLAogICAgImZpcnN0TmFtZSI6ICJKb2huIiwKICAgICJsYXN0TmFtZSI6ICJEb2UiLAogICAgImVtYWlsIjogImpvaG5kb2VAY20uaW8iLAogICAgInBob25lIjogODYyMzgxNzY2NSwKICAgICJjYXNlTWFuYWdlcklkIjogIjM3OGNkZGRjLTMxYWYtNDgxYy05MDAwLTJhYjRlYWJlZWJhZiIsCiAgICAiY3JlYXRlZEF0IjogIjIwMjEtMDEtMzBUMDg6MzA6MDBaIiwKICAgICJtb2RpZmllZEF0IjogIjIwMjEtMDEtMzFUMDg6MzA6MDBaIiwKICAgICJjYXNlcyI6IFsKICAgICAgewogICAgICAgICJzdGF0dXMiOiAiQWN0aXZlIiwKICAgICAgICAiY2F0ZWdvcnkiOiAiRXllIiwKICAgICAgICAic2V2ZXJpdHkiOiAiMC1Dcml0aWNhbCBJbXBhY3QiLAogICAgICAgICJzdWJqZWN0IjogIk9wZXJhdGlvbiBmb2xsb3ctdXAiLAogICAgICAgICJwYXRpZW50RGV0YWlsIjogewogICAgICAgICAgImZpcnN0TmFtZSI6ICJNYXR0IiwKICAgICAgICAgICJsYXN0TmFtZSI6ICJUdXJuZXIiLAogICAgICAgICAgInVzZXJOYW1lIjogIm1hdHR0dXJuZXIxMCIsCiAgICAgICAgICAicGhvbmUiOiA5NDUyODc3NjYyLAogICAgICAgICAgImVtYWlsIjogIm1hdHR0dXJuZXJAZ21haWwuY29tIiwKICAgICAgICAgICJpZCI6ICI0NjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiCiAgICAgICAgfSwKICAgICAgICAic29sdXRpb24iOiB7CiAgICAgICAgICAic29sdXRpb25TdWJqZWN0IjogIk9wZXJhdGUgZXllIGRpc2Vhc2UuIiwKICAgICAgICAgICJpbnZlc3RpZ2F0aW9uIjogIkRpc2Vhc2VzIG9uIHRoZSBsZWZ0IGV5ZSBhbmQgYWJub3JtYWwgZXllIGRldmVsb3BtZW50IGFuZCBmdW5jdGlvbi4iLAogICAgICAgICAgInJlc29sdXRpb24iOiAiU3VjY2Vzc2Z1bGx5IG9wZXJhdGUgb24gZGlzZWFzZSBvbiB0aGUgbGVmdCBleWUgYW5kIG5vcm1hbCBleWUgZGV2ZWxvcG1lbnQgYW5kIGZ1bmN0aW9uLiIKICAgICAgICB9LAogICAgICAgICJjYXNlSWQiOiAiMzYwMDVhODItYTYxMi00ZGMxLTkyNzktNzIxNWRmNjg5NWNkIiwKICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjEtMDMtMzBUMDg6MzA6MDBaIiwKICAgICAgICAibW9kaWZpZWRBdCI6ICIyMDIxLTA0LTI4VDA4OjMwOjAwWiIsCiAgICAgICAgImFzc2lnbmVkVG8iOiB7CiAgICAgICAgICAiZmlyc3ROYW1lIjogIkthdGhlcmluZSIsCiAgICAgICAgICAibGFzdE5hbWUiOiAiTWFyc2hhbGwiLAogICAgICAgICAgInBob25lIjogODQ1Mjg3NzY2NSwKICAgICAgICAgICJlbWFpbCI6ICJrYXRobWFyc2hhbGxAaG0uaW8iLAogICAgICAgICAgImlkIjogIjI2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIsCiAgICAgICAgICAiYXNzaWduZWRPbiI6ICIyMDIxLTAzLTMwVDA4OjMwOjAwWiIsCiAgICAgICAgICAicHJvZmVzc2lvbiI6ICJPcGh0aGFsbW9sb2dpc3RzIgogICAgICAgIH0sCiAgICAgICAgIm1pbGVzdG9uZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb21lIHRoZXJhcHkgZm9yIGxlZnQgZXllIGJlZm9yZSBzdXJnZXJ5LiIsCiAgICAgICAgICAgICJpZCI6ICIzMDAyNzgxMS0xZGRiLTQxMzUtYmI5NC0zYTY4YWFlMTQ5MWMiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTI6MjMuOTI2WiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb21lIHRoZXJhcHkgZm9yIGxlZnQgZXllIGJlZm9yZSBzdXJnZXJ5LiIsCiAgICAgICAgICAgICJpZCI6ICIzMDAyNzgxMS0xZGRiLTQxMzUtYmI5NC0zYTY4YWFlMTQ5MWMiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTI6MjMuOTI2WiIKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhY3Rpdml0aWVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVXBsb2FkZWQgWC1SYXkgcmVwb3J0LiIsCiAgICAgICAgICAgICJpZCI6ICJhN2EzMjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGxvYWRlZCBYLVJheSByZXBvcnQuIiwKICAgICAgICAgICAgImlkIjogImE3YTMyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgIm5vdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiY29tbWVudCI6ICJDbGllbnQgaXMgYXQgcmlzayBvZiBiZWluZyBub24tYWRoZXJlbnQgdG8gbWVkaWNhdGlvbnMgYW5kIG90aGVyIGFwcG9pbnRtZW50cy4gQ2xpZW50IG5lZWRzIHJlbWluZGVycyB0byBhc3Npc3Qgd2l0aCBrZWVwaW5nIGFwcG9pbnRtZW50cy4iLAogICAgICAgICAgICAiaWQiOiAibjdhNDI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29tbWVudCI6ICJDbGllbnQgaXMgYXQgcmlzayBvZiBiZWluZyBub24tYWRoZXJlbnQgdG8gbWVkaWNhdGlvbnMgYW5kIG90aGVyIGFwcG9pbnRtZW50cy4gQ2xpZW50IG5lZWRzIHJlbWluZGVycyB0byBhc3Npc3Qgd2l0aCBrZWVwaW5nIGFwcG9pbnRtZW50cy4iLAogICAgICAgICAgICAiaWQiOiAibjdhNDI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICB7CiAgICAgICAgInN0YXR1cyI6ICJBY3RpdmUiLAogICAgICAgICJjYXRlZ29yeSI6ICJFeWUiLAogICAgICAgICJzZXZlcml0eSI6ICIwLUNyaXRpY2FsIEltcGFjdCIsCiAgICAgICAgInN1YmplY3QiOiAiT3BlcmF0aW9uIGZvbGxvdy11cCIsCiAgICAgICAgInBhdGllbnREZXRhaWwiOiB7CiAgICAgICAgICAiZmlyc3ROYW1lIjogIk1hdHQiLAogICAgICAgICAgImxhc3ROYW1lIjogIlR1cm5lciIsCiAgICAgICAgICAidXNlck5hbWUiOiAibWF0dHR1cm5lcjEwIiwKICAgICAgICAgICJwaG9uZSI6IDk0NTI4Nzc2NjIsCiAgICAgICAgICAiZW1haWwiOiAibWF0dHR1cm5lckBnbWFpbC5jb20iLAogICAgICAgICAgImlkIjogIjQ2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIKICAgICAgICB9LAogICAgICAgICJzb2x1dGlvbiI6IHsKICAgICAgICAgICJzb2x1dGlvblN1YmplY3QiOiAiT3BlcmF0ZSBleWUgZGlzZWFzZS4iLAogICAgICAgICAgImludmVzdGlnYXRpb24iOiAiRGlzZWFzZXMgb24gdGhlIGxlZnQgZXllIGFuZCBhYm5vcm1hbCBleWUgZGV2ZWxvcG1lbnQgYW5kIGZ1bmN0aW9uLiIsCiAgICAgICAgICAicmVzb2x1dGlvbiI6ICJTdWNjZXNzZnVsbHkgb3BlcmF0ZSBvbiBkaXNlYXNlIG9uIHRoZSBsZWZ0IGV5ZSBhbmQgbm9ybWFsIGV5ZSBkZXZlbG9wbWVudCBhbmQgZnVuY3Rpb24uIgogICAgICAgIH0sCiAgICAgICAgImNhc2VJZCI6ICIzNjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiLAogICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMS0wMy0zMFQwODozMDowMFoiLAogICAgICAgICJtb2RpZmllZEF0IjogIjIwMjEtMDQtMjhUMDg6MzA6MDBaIiwKICAgICAgICAiYXNzaWduZWRUbyI6IHsKICAgICAgICAgICJmaXJzdE5hbWUiOiAiS2F0aGVyaW5lIiwKICAgICAgICAgICJsYXN0TmFtZSI6ICJNYXJzaGFsbCIsCiAgICAgICAgICAicGhvbmUiOiA4NDUyODc3NjY1LAogICAgICAgICAgImVtYWlsIjogImthdGhtYXJzaGFsbEBobS5pbyIsCiAgICAgICAgICAiaWQiOiAiMjYwMDVhODItYTYxMi00ZGMxLTkyNzktNzIxNWRmNjg5NWNkIiwKICAgICAgICAgICJhc3NpZ25lZE9uIjogIjIwMjEtMDMtMzBUMDg6MzA6MDBaIiwKICAgICAgICAgICJwcm9mZXNzaW9uIjogIk9waHRoYWxtb2xvZ2lzdHMiCiAgICAgICAgfSwKICAgICAgICAibWlsZXN0b25lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkhvbWUgdGhlcmFweSBmb3IgbGVmdCBleWUgYmVmb3JlIHN1cmdlcnkuIiwKICAgICAgICAgICAgImlkIjogIjMwMDI3ODExLTFkZGItNDEzNS1iYjk0LTNhNjhhYWUxNDkxYyIsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxMjoyMy45MjZaIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkhvbWUgdGhlcmFweSBmb3IgbGVmdCBleWUgYmVmb3JlIHN1cmdlcnkuIiwKICAgICAgICAgICAgImlkIjogIjMwMDI3ODExLTFkZGItNDEzNS1iYjk0LTNhNjhhYWUxNDkxYyIsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxMjoyMy45MjZaIgogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImFjdGl2aXRpZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGxvYWRlZCBYLVJheSByZXBvcnQuIiwKICAgICAgICAgICAgImlkIjogImE3YTMyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVwbG9hZGVkIFgtUmF5IHJlcG9ydC4iLAogICAgICAgICAgICAiaWQiOiAiYTdhMzI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAibm90ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb21tZW50IjogIkNsaWVudCBpcyBhdCByaXNrIG9mIGJlaW5nIG5vbi1hZGhlcmVudCB0byBtZWRpY2F0aW9ucyBhbmQgb3RoZXIgYXBwb2ludG1lbnRzLiBDbGllbnQgbmVlZHMgcmVtaW5kZXJzIHRvIGFzc2lzdCB3aXRoIGtlZXBpbmcgYXBwb2ludG1lbnRzLiIsCiAgICAgICAgICAgICJpZCI6ICJuN2E0MjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb21tZW50IjogIkNsaWVudCBpcyBhdCByaXNrIG9mIGJlaW5nIG5vbi1hZGhlcmVudCB0byBtZWRpY2F0aW9ucyBhbmQgb3RoZXIgYXBwb2ludG1lbnRzLiBDbGllbnQgbmVlZHMgcmVtaW5kZXJzIHRvIGFzc2lzdCB3aXRoIGtlZXBpbmcgYXBwb2ludG1lbnRzLiIsCiAgICAgICAgICAgICJpZCI6ICJuN2E0MjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIF0KICB9LAogIHsKICAgICJ1c2VybmFtZSI6ICJqb2huZG9lIiwKICAgICJmaXJzdE5hbWUiOiAiSm9obiIsCiAgICAibGFzdE5hbWUiOiAiRG9lIiwKICAgICJlbWFpbCI6ICJqb2huZG9lQGNtLmlvIiwKICAgICJwaG9uZSI6IDg2MjM4MTc2NjUsCiAgICAiY2FzZU1hbmFnZXJJZCI6ICIzNzhjZGRkYy0zMWFmLTQ4MWMtOTAwMC0yYWI0ZWFiZWViYWYiLAogICAgImNyZWF0ZWRBdCI6ICIyMDIxLTAxLTMwVDA4OjMwOjAwWiIsCiAgICAibW9kaWZpZWRBdCI6ICIyMDIxLTAxLTMxVDA4OjMwOjAwWiIsCiAgICAiY2FzZXMiOiBbCiAgICAgIHsKICAgICAgICAic3RhdHVzIjogIkFjdGl2ZSIsCiAgICAgICAgImNhdGVnb3J5IjogIkV5ZSIsCiAgICAgICAgInNldmVyaXR5IjogIjAtQ3JpdGljYWwgSW1wYWN0IiwKICAgICAgICAic3ViamVjdCI6ICJPcGVyYXRpb24gZm9sbG93LXVwIiwKICAgICAgICAicGF0aWVudERldGFpbCI6IHsKICAgICAgICAgICJmaXJzdE5hbWUiOiAiTWF0dCIsCiAgICAgICAgICAibGFzdE5hbWUiOiAiVHVybmVyIiwKICAgICAgICAgICJ1c2VyTmFtZSI6ICJtYXR0dHVybmVyMTAiLAogICAgICAgICAgInBob25lIjogOTQ1Mjg3NzY2MiwKICAgICAgICAgICJlbWFpbCI6ICJtYXR0dHVybmVyQGdtYWlsLmNvbSIsCiAgICAgICAgICAiaWQiOiAiNDYwMDVhODItYTYxMi00ZGMxLTkyNzktNzIxNWRmNjg5NWNkIgogICAgICAgIH0sCiAgICAgICAgInNvbHV0aW9uIjogewogICAgICAgICAgInNvbHV0aW9uU3ViamVjdCI6ICJPcGVyYXRlIGV5ZSBkaXNlYXNlLiIsCiAgICAgICAgICAiaW52ZXN0aWdhdGlvbiI6ICJEaXNlYXNlcyBvbiB0aGUgbGVmdCBleWUgYW5kIGFibm9ybWFsIGV5ZSBkZXZlbG9wbWVudCBhbmQgZnVuY3Rpb24uIiwKICAgICAgICAgICJyZXNvbHV0aW9uIjogIlN1Y2Nlc3NmdWxseSBvcGVyYXRlIG9uIGRpc2Vhc2Ugb24gdGhlIGxlZnQgZXllIGFuZCBub3JtYWwgZXllIGRldmVsb3BtZW50IGFuZCBmdW5jdGlvbi4iCiAgICAgICAgfSwKICAgICAgICAiY2FzZUlkIjogIjM2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIsCiAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIxLTAzLTMwVDA4OjMwOjAwWiIsCiAgICAgICAgIm1vZGlmaWVkQXQiOiAiMjAyMS0wNC0yOFQwODozMDowMFoiLAogICAgICAgICJhc3NpZ25lZFRvIjogewogICAgICAgICAgImZpcnN0TmFtZSI6ICJLYXRoZXJpbmUiLAogICAgICAgICAgImxhc3ROYW1lIjogIk1hcnNoYWxsIiwKICAgICAgICAgICJwaG9uZSI6IDg0NTI4Nzc2NjUsCiAgICAgICAgICAiZW1haWwiOiAia2F0aG1hcnNoYWxsQGhtLmlvIiwKICAgICAgICAgICJpZCI6ICIyNjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiLAogICAgICAgICAgImFzc2lnbmVkT24iOiAiMjAyMS0wMy0zMFQwODozMDowMFoiLAogICAgICAgICAgInByb2Zlc3Npb24iOiAiT3BodGhhbG1vbG9naXN0cyIKICAgICAgICB9LAogICAgICAgICJtaWxlc3RvbmVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG9tZSB0aGVyYXB5IGZvciBsZWZ0IGV5ZSBiZWZvcmUgc3VyZ2VyeS4iLAogICAgICAgICAgICAiaWQiOiAiMzAwMjc4MTEtMWRkYi00MTM1LWJiOTQtM2E2OGFhZTE0OTFjIiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjEyOjIzLjkyNloiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG9tZSB0aGVyYXB5IGZvciBsZWZ0IGV5ZSBiZWZvcmUgc3VyZ2VyeS4iLAogICAgICAgICAgICAiaWQiOiAiMzAwMjc4MTEtMWRkYi00MTM1LWJiOTQtM2E2OGFhZTE0OTFjIiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjEyOjIzLjkyNloiCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiYWN0aXZpdGllcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVwbG9hZGVkIFgtUmF5IHJlcG9ydC4iLAogICAgICAgICAgICAiaWQiOiAiYTdhMzI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVXBsb2FkZWQgWC1SYXkgcmVwb3J0LiIsCiAgICAgICAgICAgICJpZCI6ICJhN2EzMjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJub3RlcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbW1lbnQiOiAiQ2xpZW50IGlzIGF0IHJpc2sgb2YgYmVpbmcgbm9uLWFkaGVyZW50IHRvIG1lZGljYXRpb25zIGFuZCBvdGhlciBhcHBvaW50bWVudHMuIENsaWVudCBuZWVkcyByZW1pbmRlcnMgdG8gYXNzaXN0IHdpdGgga2VlcGluZyBhcHBvaW50bWVudHMuIiwKICAgICAgICAgICAgImlkIjogIm43YTQyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbW1lbnQiOiAiQ2xpZW50IGlzIGF0IHJpc2sgb2YgYmVpbmcgbm9uLWFkaGVyZW50IHRvIG1lZGljYXRpb25zIGFuZCBvdGhlciBhcHBvaW50bWVudHMuIENsaWVudCBuZWVkcyByZW1pbmRlcnMgdG8gYXNzaXN0IHdpdGgga2VlcGluZyBhcHBvaW50bWVudHMuIiwKICAgICAgICAgICAgImlkIjogIm43YTQyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfSwKICAgICAgewogICAgICAgICJzdGF0dXMiOiAiQWN0aXZlIiwKICAgICAgICAiY2F0ZWdvcnkiOiAiRXllIiwKICAgICAgICAic2V2ZXJpdHkiOiAiMC1Dcml0aWNhbCBJbXBhY3QiLAogICAgICAgICJzdWJqZWN0IjogIk9wZXJhdGlvbiBmb2xsb3ctdXAiLAogICAgICAgICJwYXRpZW50RGV0YWlsIjogewogICAgICAgICAgImZpcnN0TmFtZSI6ICJNYXR0IiwKICAgICAgICAgICJsYXN0TmFtZSI6ICJUdXJuZXIiLAogICAgICAgICAgInVzZXJOYW1lIjogIm1hdHR0dXJuZXIxMCIsCiAgICAgICAgICAicGhvbmUiOiA5NDUyODc3NjYyLAogICAgICAgICAgImVtYWlsIjogIm1hdHR0dXJuZXJAZ21haWwuY29tIiwKICAgICAgICAgICJpZCI6ICI0NjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiCiAgICAgICAgfSwKICAgICAgICAic29sdXRpb24iOiB7CiAgICAgICAgICAic29sdXRpb25TdWJqZWN0IjogIk9wZXJhdGUgZXllIGRpc2Vhc2UuIiwKICAgICAgICAgICJpbnZlc3RpZ2F0aW9uIjogIkRpc2Vhc2VzIG9uIHRoZSBsZWZ0IGV5ZSBhbmQgYWJub3JtYWwgZXllIGRldmVsb3BtZW50IGFuZCBmdW5jdGlvbi4iLAogICAgICAgICAgInJlc29sdXRpb24iOiAiU3VjY2Vzc2Z1bGx5IG9wZXJhdGUgb24gZGlzZWFzZSBvbiB0aGUgbGVmdCBleWUgYW5kIG5vcm1hbCBleWUgZGV2ZWxvcG1lbnQgYW5kIGZ1bmN0aW9uLiIKICAgICAgICB9LAogICAgICAgICJjYXNlSWQiOiAiMzYwMDVhODItYTYxMi00ZGMxLTkyNzktNzIxNWRmNjg5NWNkIiwKICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjEtMDMtMzBUMDg6MzA6MDBaIiwKICAgICAgICAibW9kaWZpZWRBdCI6ICIyMDIxLTA0LTI4VDA4OjMwOjAwWiIsCiAgICAgICAgImFzc2lnbmVkVG8iOiB7CiAgICAgICAgICAiZmlyc3ROYW1lIjogIkthdGhlcmluZSIsCiAgICAgICAgICAibGFzdE5hbWUiOiAiTWFyc2hhbGwiLAogICAgICAgICAgInBob25lIjogODQ1Mjg3NzY2NSwKICAgICAgICAgICJlbWFpbCI6ICJrYXRobWFyc2hhbGxAaG0uaW8iLAogICAgICAgICAgImlkIjogIjI2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIsCiAgICAgICAgICAiYXNzaWduZWRPbiI6ICIyMDIxLTAzLTMwVDA4OjMwOjAwWiIsCiAgICAgICAgICAicHJvZmVzc2lvbiI6ICJPcGh0aGFsbW9sb2dpc3RzIgogICAgICAgIH0sCiAgICAgICAgIm1pbGVzdG9uZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb21lIHRoZXJhcHkgZm9yIGxlZnQgZXllIGJlZm9yZSBzdXJnZXJ5LiIsCiAgICAgICAgICAgICJpZCI6ICIzMDAyNzgxMS0xZGRiLTQxMzUtYmI5NC0zYTY4YWFlMTQ5MWMiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTI6MjMuOTI2WiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb21lIHRoZXJhcHkgZm9yIGxlZnQgZXllIGJlZm9yZSBzdXJnZXJ5LiIsCiAgICAgICAgICAgICJpZCI6ICIzMDAyNzgxMS0xZGRiLTQxMzUtYmI5NC0zYTY4YWFlMTQ5MWMiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTI6MjMuOTI2WiIKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJhY3Rpdml0aWVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVXBsb2FkZWQgWC1SYXkgcmVwb3J0LiIsCiAgICAgICAgICAgICJpZCI6ICJhN2EzMjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGxvYWRlZCBYLVJheSByZXBvcnQuIiwKICAgICAgICAgICAgImlkIjogImE3YTMyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgIm5vdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiY29tbWVudCI6ICJDbGllbnQgaXMgYXQgcmlzayBvZiBiZWluZyBub24tYWRoZXJlbnQgdG8gbWVkaWNhdGlvbnMgYW5kIG90aGVyIGFwcG9pbnRtZW50cy4gQ2xpZW50IG5lZWRzIHJlbWluZGVycyB0byBhc3Npc3Qgd2l0aCBrZWVwaW5nIGFwcG9pbnRtZW50cy4iLAogICAgICAgICAgICAiaWQiOiAibjdhNDI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29tbWVudCI6ICJDbGllbnQgaXMgYXQgcmlzayBvZiBiZWluZyBub24tYWRoZXJlbnQgdG8gbWVkaWNhdGlvbnMgYW5kIG90aGVyIGFwcG9pbnRtZW50cy4gQ2xpZW50IG5lZWRzIHJlbWluZGVycyB0byBhc3Npc3Qgd2l0aCBrZWVwaW5nIGFwcG9pbnRtZW50cy4iLAogICAgICAgICAgICAiaWQiOiAibjdhNDI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9CiAgICBdCiAgfQpdCmBgYAoKCioqKlN0YXR1cyBDb2RlOioqKiAyMDAKCjxicj4KCgoKIyMjIyBJSS4gRXhhbXBsZSBSZXF1ZXN0OiBJbnZhbGlkIHJlcXVlc3QuIFBsZWFzZSBmaWxsIHRoZSByZXF1aXJlZCBpbnB1dC9pbnB1dHMuCgoKCioqKlF1ZXJ5OioqKgoKfCBLZXkgfCBWYWx1ZSB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0tLS18LS0tLS0tLS0tLS0tLXwKfCBwYWdlIHwgMSB8ICB8CnwgcGVyUGFnZSB8IDEwIHwgIHwKCgoKKioqQm9keTogTm9uZSoqKgoKCgojIyMjIElJLiBFeGFtcGxlIFJlc3BvbnNlOiBJbnZhbGlkIHJlcXVlc3QuIFBsZWFzZSBmaWxsIHRoZSByZXF1aXJlZCBpbnB1dC9pbnB1dHMuCmBgYGpzCnsKICAic3RhdHVzQ29kZSI6IDQwMCwKICAiZGVzY3JpcHRpb24iOiAiSW52YWxpZCByZXF1ZXN0LiBQbGVhc2UgZmlsbCB0aGUgcmVxdWlyZWQgaW5wdXQvaW5wdXRzLiIKfQpgYGAKCgoqKipTdGF0dXMgQ29kZToqKiogNDAwCgo8YnI+CgoKCiMjIyMgSUlJLiBFeGFtcGxlIFJlcXVlc3Q6IEJhZCByZXF1ZXN0LiBDYW4ndCBmaW5kIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuCgoKCioqKlF1ZXJ5OioqKgoKfCBLZXkgfCBWYWx1ZSB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0tLS18LS0tLS0tLS0tLS0tLXwKfCBwYWdlIHwgMSB8ICB8CnwgcGVyUGFnZSB8IDEwIHwgIHwKCgoKKioqQm9keTogTm9uZSoqKgoKCgojIyMjIElJSS4gRXhhbXBsZSBSZXNwb25zZTogQmFkIHJlcXVlc3QuIENhbid0IGZpbmQgdGhlIHJlcXVlc3RlZCByZXNvdXJjZS4KYGBganMKewogICJzdGF0dXNDb2RlIjogNDA0LAogICJkZXNjcmlwdGlvbiI6ICJCYWQgcmVxdWVzdC4gQ2FuJ3QgZmluZCB0aGUgcmVxdWVzdGVkIHJlc291cmNlLiIKfQpgYGAKCgoqKipTdGF0dXMgQ29kZToqKiogNDA0Cgo8YnI+CgoKCiMjIyMgSVYuIEV4YW1wbGUgUmVxdWVzdDogSW50ZXJuYWwgc2VydmVyIGVycm9yLiBDYW4ndCBmdWxmaWxsIHRoZSByZXF1ZXN0LgoKCgoqKipRdWVyeToqKioKCnwgS2V5IHwgVmFsdWUgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgcGFnZSB8IDEgfCAgfAp8IHBlclBhZ2UgfCAxMCB8ICB8CgoKCioqKkJvZHk6IE5vbmUqKioKCgoKIyMjIyBJVi4gRXhhbXBsZSBSZXNwb25zZTogSW50ZXJuYWwgc2VydmVyIGVycm9yLiBDYW4ndCBmdWxmaWxsIHRoZSByZXF1ZXN0LgpgYGBqcwp7CiAgInN0YXR1c0NvZGUiOiA1MDAsCiAgImRlc2NyaXB0aW9uIjogIkludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC4iCn0KYGBgCgoKKioqU3RhdHVzIENvZGU6KioqIDUwMAoKPGJyPgoKCgojIyBjYXNlcwoKCgojIyMgMS4ge2Nhc2VJZH0KCgoKKioqRW5kcG9pbnQ6KioqCgpgYGBiYXNoCk1ldGhvZDogClR5cGU6IApVUkw6IApgYGAKCgoKIyMjIDIuIENyZWF0ZSBhIGNhc2UuCgoKQ3JlYXRlIGEgbmV3IGNhc2UgdXNpbmcgdGhlIGlucHV0IHByb3ZpZGVkIGFuZCBhZGQgaXQgdG8gdGhlIHN5c3RlbS4KCgoqKipFbmRwb2ludDoqKioKCmBgYGJhc2gKTWV0aG9kOiBQT1NUClR5cGU6IFJBVwpVUkw6IHt7YmFzZVVybH19L2Nhc2VzCmBgYAoKCioqKkhlYWRlcnM6KioqCgp8IEtleSB8IFZhbHVlIHwgRGVzY3JpcHRpb24gfAp8IC0tLSB8IC0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IENvbnRlbnQtVHlwZSB8IGFwcGxpY2F0aW9uL2pzb24gfCAgfAp8IEFjY2VwdCB8IGFwcGxpY2F0aW9uL2pzb24gfCAgfAoKCgoqKipCb2R5OioqKgoKYGBganMgICAgICAgIAp7CiAgInN0YXR1cyI6ICJBY3RpdmUiLAogICJjYXRlZ29yeSI6ICJFeWUiLAogICJzZXZlcml0eSI6ICIwLUNyaXRpY2FsIEltcGFjdCIsCiAgInN1YmplY3QiOiAiT3BlcmF0aW9uIGZvbGxvdy11cCIsCiAgInBhdGllbnREZXRhaWwiOiB7CiAgICAiZmlyc3ROYW1lIjogIk1hdHQiLAogICAgImxhc3ROYW1lIjogIlR1cm5lciIsCiAgICAidXNlck5hbWUiOiAibWF0dHR1cm5lcjEwIiwKICAgICJwaG9uZSI6IDk0NTI4Nzc2NjIsCiAgICAiZW1haWwiOiAibWF0dHR1cm5lckBnbWFpbC5jb20iLAogICAgImlkIjogIjQ2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIKICB9LAogICJzb2x1dGlvbiI6IHsKICAgICJzb2x1dGlvblN1YmplY3QiOiAiT3BlcmF0ZSBleWUgZGlzZWFzZS4iLAogICAgImludmVzdGlnYXRpb24iOiAiRGlzZWFzZXMgb24gdGhlIGxlZnQgZXllIGFuZCBhYm5vcm1hbCBleWUgZGV2ZWxvcG1lbnQgYW5kIGZ1bmN0aW9uLiIsCiAgICAicmVzb2x1dGlvbiI6ICJTdWNjZXNzZnVsbHkgb3BlcmF0ZSBvbiBkaXNlYXNlIG9uIHRoZSBsZWZ0IGV5ZSBhbmQgbm9ybWFsIGV5ZSBkZXZlbG9wbWVudCBhbmQgZnVuY3Rpb24uIgogIH0sCiAgImNhc2VJZCI6ICIzNjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiLAogICJjcmVhdGVkQXQiOiAiMjAyMS0wMy0zMFQwODozMDowMFoiLAogICJtb2RpZmllZEF0IjogIjIwMjEtMDQtMjhUMDg6MzA6MDBaIiwKICAiYXNzaWduZWRUbyI6IHsKICAgICJmaXJzdE5hbWUiOiAiS2F0aGVyaW5lIiwKICAgICJsYXN0TmFtZSI6ICJNYXJzaGFsbCIsCiAgICAicGhvbmUiOiA4NDUyODc3NjY1LAogICAgImVtYWlsIjogImthdGhtYXJzaGFsbEBobS5pbyIsCiAgICAiaWQiOiAiMjYwMDVhODItYTYxMi00ZGMxLTkyNzktNzIxNWRmNjg5NWNkIiwKICAgICJhc3NpZ25lZE9uIjogIjIwMjEtMDMtMzBUMDg6MzA6MDBaIiwKICAgICJwcm9mZXNzaW9uIjogIk9waHRoYWxtb2xvZ2lzdHMiCiAgfSwKICAibWlsZXN0b25lcyI6IFsKICAgIHsKICAgICAgImRlc2NyaXB0aW9uIjogIkhvbWUgdGhlcmFweSBmb3IgbGVmdCBleWUgYmVmb3JlIHN1cmdlcnkuIiwKICAgICAgImlkIjogIjMwMDI3ODExLTFkZGItNDEzNS1iYjk0LTNhNjhhYWUxNDkxYyIsCiAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxMjoyMy45MjZaIgogICAgfSwKICAgIHsKICAgICAgImRlc2NyaXB0aW9uIjogIkhvbWUgdGhlcmFweSBmb3IgbGVmdCBleWUgYmVmb3JlIHN1cmdlcnkuIiwKICAgICAgImlkIjogIjMwMDI3ODExLTFkZGItNDEzNS1iYjk0LTNhNjhhYWUxNDkxYyIsCiAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxMjoyMy45MjZaIgogICAgfQogIF0sCiAgImFjdGl2aXRpZXMiOiBbCiAgICB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGxvYWRlZCBYLVJheSByZXBvcnQuIiwKICAgICAgImlkIjogImE3YTMyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgfSwKICAgIHsKICAgICAgImRlc2NyaXB0aW9uIjogIlVwbG9hZGVkIFgtUmF5IHJlcG9ydC4iLAogICAgICAiaWQiOiAiYTdhMzI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICB9CiAgXSwKICAibm90ZXMiOiBbCiAgICB7CiAgICAgICJjb21tZW50IjogIkNsaWVudCBpcyBhdCByaXNrIG9mIGJlaW5nIG5vbi1hZGhlcmVudCB0byBtZWRpY2F0aW9ucyBhbmQgb3RoZXIgYXBwb2ludG1lbnRzLiBDbGllbnQgbmVlZHMgcmVtaW5kZXJzIHRvIGFzc2lzdCB3aXRoIGtlZXBpbmcgYXBwb2ludG1lbnRzLiIsCiAgICAgICJpZCI6ICJuN2E0MjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgIH0sCiAgICB7CiAgICAgICJjb21tZW50IjogIkNsaWVudCBpcyBhdCByaXNrIG9mIGJlaW5nIG5vbi1hZGhlcmVudCB0byBtZWRpY2F0aW9ucyBhbmQgb3RoZXIgYXBwb2ludG1lbnRzLiBDbGllbnQgbmVlZHMgcmVtaW5kZXJzIHRvIGFzc2lzdCB3aXRoIGtlZXBpbmcgYXBwb2ludG1lbnRzLiIsCiAgICAgICJpZCI6ICJuN2E0MjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgIH0KICBdCn0KYGBgCgoKCioqKk1vcmUgZXhhbXBsZSBSZXF1ZXN0cy9SZXNwb25zZXM6KioqCgoKIyMjIyBJLiBFeGFtcGxlIFJlcXVlc3Q6IFN1Y2Nlc3NmdWxseSBjcmVhdGVkIGNhc2UuCgoKCioqKkJvZHk6KioqCgpgYGBqcyAgICAgICAgCnsKICAic3RhdHVzIjogIkFjdGl2ZSIsCiAgImNhdGVnb3J5IjogIkV5ZSIsCiAgInNldmVyaXR5IjogIjAtQ3JpdGljYWwgSW1wYWN0IiwKICAic3ViamVjdCI6ICJPcGVyYXRpb24gZm9sbG93LXVwIiwKICAicGF0aWVudERldGFpbCI6IHsKICAgICJmaXJzdE5hbWUiOiAiTWF0dCIsCiAgICAibGFzdE5hbWUiOiAiVHVybmVyIiwKICAgICJ1c2VyTmFtZSI6ICJtYXR0dHVybmVyMTAiLAogICAgInBob25lIjogOTQ1Mjg3NzY2MiwKICAgICJlbWFpbCI6ICJtYXR0dHVybmVyQGdtYWlsLmNvbSIsCiAgICAiaWQiOiAiNDYwMDVhODItYTYxMi00ZGMxLTkyNzktNzIxNWRmNjg5NWNkIgogIH0sCiAgInNvbHV0aW9uIjogewogICAgInNvbHV0aW9uU3ViamVjdCI6ICJPcGVyYXRlIGV5ZSBkaXNlYXNlLiIsCiAgICAiaW52ZXN0aWdhdGlvbiI6ICJEaXNlYXNlcyBvbiB0aGUgbGVmdCBleWUgYW5kIGFibm9ybWFsIGV5ZSBkZXZlbG9wbWVudCBhbmQgZnVuY3Rpb24uIiwKICAgICJyZXNvbHV0aW9uIjogIlN1Y2Nlc3NmdWxseSBvcGVyYXRlIG9uIGRpc2Vhc2Ugb24gdGhlIGxlZnQgZXllIGFuZCBub3JtYWwgZXllIGRldmVsb3BtZW50IGFuZCBmdW5jdGlvbi4iCiAgfSwKICAiY2FzZUlkIjogIjM2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIsCiAgImNyZWF0ZWRBdCI6ICIyMDIxLTAzLTMwVDA4OjMwOjAwWiIsCiAgIm1vZGlmaWVkQXQiOiAiMjAyMS0wNC0yOFQwODozMDowMFoiLAogICJhc3NpZ25lZFRvIjogewogICAgImZpcnN0TmFtZSI6ICJLYXRoZXJpbmUiLAogICAgImxhc3ROYW1lIjogIk1hcnNoYWxsIiwKICAgICJwaG9uZSI6IDg0NTI4Nzc2NjUsCiAgICAiZW1haWwiOiAia2F0aG1hcnNoYWxsQGhtLmlvIiwKICAgICJpZCI6ICIyNjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiLAogICAgImFzc2lnbmVkT24iOiAiMjAyMS0wMy0zMFQwODozMDowMFoiLAogICAgInByb2Zlc3Npb24iOiAiT3BodGhhbG1vbG9naXN0cyIKICB9LAogICJtaWxlc3RvbmVzIjogWwogICAgewogICAgICAiZGVzY3JpcHRpb24iOiAiSG9tZSB0aGVyYXB5IGZvciBsZWZ0IGV5ZSBiZWZvcmUgc3VyZ2VyeS4iLAogICAgICAiaWQiOiAiMzAwMjc4MTEtMWRkYi00MTM1LWJiOTQtM2E2OGFhZTE0OTFjIiwKICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjEyOjIzLjkyNloiCiAgICB9LAogICAgewogICAgICAiZGVzY3JpcHRpb24iOiAiSG9tZSB0aGVyYXB5IGZvciBsZWZ0IGV5ZSBiZWZvcmUgc3VyZ2VyeS4iLAogICAgICAiaWQiOiAiMzAwMjc4MTEtMWRkYi00MTM1LWJiOTQtM2E2OGFhZTE0OTFjIiwKICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjEyOjIzLjkyNloiCiAgICB9CiAgXSwKICAiYWN0aXZpdGllcyI6IFsKICAgIHsKICAgICAgImRlc2NyaXB0aW9uIjogIlVwbG9hZGVkIFgtUmF5IHJlcG9ydC4iLAogICAgICAiaWQiOiAiYTdhMzI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICB9LAogICAgewogICAgICAiZGVzY3JpcHRpb24iOiAiVXBsb2FkZWQgWC1SYXkgcmVwb3J0LiIsCiAgICAgICJpZCI6ICJhN2EzMjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgIH0KICBdLAogICJub3RlcyI6IFsKICAgIHsKICAgICAgImNvbW1lbnQiOiAiQ2xpZW50IGlzIGF0IHJpc2sgb2YgYmVpbmcgbm9uLWFkaGVyZW50IHRvIG1lZGljYXRpb25zIGFuZCBvdGhlciBhcHBvaW50bWVudHMuIENsaWVudCBuZWVkcyByZW1pbmRlcnMgdG8gYXNzaXN0IHdpdGgga2VlcGluZyBhcHBvaW50bWVudHMuIiwKICAgICAgImlkIjogIm43YTQyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgfSwKICAgIHsKICAgICAgImNvbW1lbnQiOiAiQ2xpZW50IGlzIGF0IHJpc2sgb2YgYmVpbmcgbm9uLWFkaGVyZW50IHRvIG1lZGljYXRpb25zIGFuZCBvdGhlciBhcHBvaW50bWVudHMuIENsaWVudCBuZWVkcyByZW1pbmRlcnMgdG8gYXNzaXN0IHdpdGgga2VlcGluZyBhcHBvaW50bWVudHMuIiwKICAgICAgImlkIjogIm43YTQyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgfQogIF0KfQpgYGAKCgoKIyMjIyBJLiBFeGFtcGxlIFJlc3BvbnNlOiBTdWNjZXNzZnVsbHkgY3JlYXRlZCBjYXNlLgpgYGBqcwp7CiAgInN0YXR1cyI6ICJBY3RpdmUiLAogICJjYXRlZ29yeSI6ICJFeWUiLAogICJzZXZlcml0eSI6ICIwLUNyaXRpY2FsIEltcGFjdCIsCiAgInN1YmplY3QiOiAiT3BlcmF0aW9uIGZvbGxvdy11cCIsCiAgInBhdGllbnREZXRhaWwiOiB7CiAgICAiZmlyc3ROYW1lIjogIk1hdHQiLAogICAgImxhc3ROYW1lIjogIlR1cm5lciIsCiAgICAidXNlck5hbWUiOiAibWF0dHR1cm5lcjEwIiwKICAgICJwaG9uZSI6IDk0NTI4Nzc2NjIsCiAgICAiZW1haWwiOiAibWF0dHR1cm5lckBnbWFpbC5jb20iLAogICAgImlkIjogIjQ2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIKICB9LAogICJzb2x1dGlvbiI6IHsKICAgICJzb2x1dGlvblN1YmplY3QiOiAiT3BlcmF0ZSBleWUgZGlzZWFzZS4iLAogICAgImludmVzdGlnYXRpb24iOiAiRGlzZWFzZXMgb24gdGhlIGxlZnQgZXllIGFuZCBhYm5vcm1hbCBleWUgZGV2ZWxvcG1lbnQgYW5kIGZ1bmN0aW9uLiIsCiAgICAicmVzb2x1dGlvbiI6ICJTdWNjZXNzZnVsbHkgb3BlcmF0ZSBvbiBkaXNlYXNlIG9uIHRoZSBsZWZ0IGV5ZSBhbmQgbm9ybWFsIGV5ZSBkZXZlbG9wbWVudCBhbmQgZnVuY3Rpb24uIgogIH0sCiAgImNhc2VJZCI6ICIzNjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiLAogICJjcmVhdGVkQXQiOiAiMjAyMS0wMy0zMFQwODozMDowMFoiLAogICJtb2RpZmllZEF0IjogIjIwMjEtMDQtMjhUMDg6MzA6MDBaIgp9CmBgYAoKCioqKlN0YXR1cyBDb2RlOioqKiAyMDEKCjxicj4KCgoKIyMjIyBJSS4gRXhhbXBsZSBSZXF1ZXN0OiBJbnZhbGlkIHJlcXVlc3QuIFBsZWFzZSBmaWxsIHRoZSByZXF1aXJlZCBpbnB1dC9pbnB1dHMuCgoKCioqKkJvZHk6IE5vbmUqKioKCgoKIyMjIyBJSS4gRXhhbXBsZSBSZXNwb25zZTogSW52YWxpZCByZXF1ZXN0LiBQbGVhc2UgZmlsbCB0aGUgcmVxdWlyZWQgaW5wdXQvaW5wdXRzLgpgYGBqcwp7CiAgInN0YXR1c0NvZGUiOiA0MDAsCiAgImRlc2NyaXB0aW9uIjogIkludmFsaWQgcmVxdWVzdC4gUGxlYXNlIGZpbGwgdGhlIHJlcXVpcmVkIGlucHV0L2lucHV0cy4iCn0KYGBgCgoKKioqU3RhdHVzIENvZGU6KioqIDQwMAoKPGJyPgoKCgojIyMjIElJSS4gRXhhbXBsZSBSZXF1ZXN0OiBCYWQgcmVxdWVzdC4gQ2FuJ3QgZmluZCB0aGUgcmVxdWVzdGVkIHJlc291cmNlLgoKCgoqKipCb2R5OiBOb25lKioqCgoKCiMjIyMgSUlJLiBFeGFtcGxlIFJlc3BvbnNlOiBCYWQgcmVxdWVzdC4gQ2FuJ3QgZmluZCB0aGUgcmVxdWVzdGVkIHJlc291cmNlLgpgYGBqcwp7CiAgInN0YXR1c0NvZGUiOiA0MDQsCiAgImRlc2NyaXB0aW9uIjogIkJhZCByZXF1ZXN0LiBDYW4ndCBmaW5kIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuIgp9CmBgYAoKCioqKlN0YXR1cyBDb2RlOioqKiA0MDQKCjxicj4KCgoKIyMjIyBJVi4gRXhhbXBsZSBSZXF1ZXN0OiBJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IuIENhbid0IGZ1bGZpbGwgdGhlIHJlcXVlc3QuCgoKCioqKkJvZHk6IE5vbmUqKioKCgoKIyMjIyBJVi4gRXhhbXBsZSBSZXNwb25zZTogSW50ZXJuYWwgc2VydmVyIGVycm9yLiBDYW4ndCBmdWxmaWxsIHRoZSByZXF1ZXN0LgpgYGBqcwp7CiAgInN0YXR1c0NvZGUiOiA1MDAsCiAgImRlc2NyaXB0aW9uIjogIkludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC4iCn0KYGBgCgoKKioqU3RhdHVzIENvZGU6KioqIDUwMAoKPGJyPgoKCgojIyMgMy4gRmluZCBhbGwgY2FzZXMuCgoKR2V0IGFsbCB0aGUgY2FzZXMgcmVjb3JkZWQgaW4gdGhlIHN5c3RlbS4KCgoqKipFbmRwb2ludDoqKioKCmBgYGJhc2gKTWV0aG9kOiBHRVQKVHlwZTogClVSTDoge3tiYXNlVXJsfX0vY2FzZXMKYGBgCgoKKioqSGVhZGVyczoqKioKCnwgS2V5IHwgVmFsdWUgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgQWNjZXB0IHwgYXBwbGljYXRpb24vanNvbiB8ICB8CgoKCioqKk1vcmUgZXhhbXBsZSBSZXF1ZXN0cy9SZXNwb25zZXM6KioqCgoKIyMjIyBJLiBFeGFtcGxlIFJlcXVlc3Q6IFN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgYWxsIHRoZSBjYXNlcy4KCgoKKioqQm9keTogTm9uZSoqKgoKCgojIyMjIEkuIEV4YW1wbGUgUmVzcG9uc2U6IFN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgYWxsIHRoZSBjYXNlcy4KYGBganMKWwogIHsKICAgICJzdGF0dXMiOiAiQWN0aXZlIiwKICAgICJjYXRlZ29yeSI6ICJFeWUiLAogICAgInNldmVyaXR5IjogIjAtQ3JpdGljYWwgSW1wYWN0IiwKICAgICJzdWJqZWN0IjogIk9wZXJhdGlvbiBmb2xsb3ctdXAiLAogICAgInBhdGllbnREZXRhaWwiOiB7CiAgICAgICJmaXJzdE5hbWUiOiAiTWF0dCIsCiAgICAgICJsYXN0TmFtZSI6ICJUdXJuZXIiLAogICAgICAidXNlck5hbWUiOiAibWF0dHR1cm5lcjEwIiwKICAgICAgInBob25lIjogOTQ1Mjg3NzY2MiwKICAgICAgImVtYWlsIjogIm1hdHR0dXJuZXJAZ21haWwuY29tIiwKICAgICAgImlkIjogIjQ2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIKICAgIH0sCiAgICAic29sdXRpb24iOiB7CiAgICAgICJzb2x1dGlvblN1YmplY3QiOiAiT3BlcmF0ZSBleWUgZGlzZWFzZS4iLAogICAgICAiaW52ZXN0aWdhdGlvbiI6ICJEaXNlYXNlcyBvbiB0aGUgbGVmdCBleWUgYW5kIGFibm9ybWFsIGV5ZSBkZXZlbG9wbWVudCBhbmQgZnVuY3Rpb24uIiwKICAgICAgInJlc29sdXRpb24iOiAiU3VjY2Vzc2Z1bGx5IG9wZXJhdGUgb24gZGlzZWFzZSBvbiB0aGUgbGVmdCBleWUgYW5kIG5vcm1hbCBleWUgZGV2ZWxvcG1lbnQgYW5kIGZ1bmN0aW9uLiIKICAgIH0sCiAgICAiY2FzZUlkIjogIjM2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIsCiAgICAiY3JlYXRlZEF0IjogIjIwMjEtMDMtMzBUMDg6MzA6MDBaIiwKICAgICJtb2RpZmllZEF0IjogIjIwMjEtMDQtMjhUMDg6MzA6MDBaIiwKICAgICJhc3NpZ25lZFRvIjogewogICAgICAiZmlyc3ROYW1lIjogIkthdGhlcmluZSIsCiAgICAgICJsYXN0TmFtZSI6ICJNYXJzaGFsbCIsCiAgICAgICJwaG9uZSI6IDg0NTI4Nzc2NjUsCiAgICAgICJlbWFpbCI6ICJrYXRobWFyc2hhbGxAaG0uaW8iLAogICAgICAiaWQiOiAiMjYwMDVhODItYTYxMi00ZGMxLTkyNzktNzIxNWRmNjg5NWNkIiwKICAgICAgImFzc2lnbmVkT24iOiAiMjAyMS0wMy0zMFQwODozMDowMFoiLAogICAgICAicHJvZmVzc2lvbiI6ICJPcGh0aGFsbW9sb2dpc3RzIgogICAgfSwKICAgICJtaWxlc3RvbmVzIjogWwogICAgICB7CiAgICAgICAgImRlc2NyaXB0aW9uIjogIkhvbWUgdGhlcmFweSBmb3IgbGVmdCBleWUgYmVmb3JlIHN1cmdlcnkuIiwKICAgICAgICAiaWQiOiAiMzAwMjc4MTEtMWRkYi00MTM1LWJiOTQtM2E2OGFhZTE0OTFjIiwKICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTI6MjMuOTI2WiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb21lIHRoZXJhcHkgZm9yIGxlZnQgZXllIGJlZm9yZSBzdXJnZXJ5LiIsCiAgICAgICAgImlkIjogIjMwMDI3ODExLTFkZGItNDEzNS1iYjk0LTNhNjhhYWUxNDkxYyIsCiAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjEyOjIzLjkyNloiCiAgICAgIH0KICAgIF0sCiAgICAiYWN0aXZpdGllcyI6IFsKICAgICAgewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGxvYWRlZCBYLVJheSByZXBvcnQuIiwKICAgICAgICAiaWQiOiAiYTdhMzI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGxvYWRlZCBYLVJheSByZXBvcnQuIiwKICAgICAgICAiaWQiOiAiYTdhMzI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgfQogICAgXSwKICAgICJub3RlcyI6IFsKICAgICAgewogICAgICAgICJjb21tZW50IjogIkNsaWVudCBpcyBhdCByaXNrIG9mIGJlaW5nIG5vbi1hZGhlcmVudCB0byBtZWRpY2F0aW9ucyBhbmQgb3RoZXIgYXBwb2ludG1lbnRzLiBDbGllbnQgbmVlZHMgcmVtaW5kZXJzIHRvIGFzc2lzdCB3aXRoIGtlZXBpbmcgYXBwb2ludG1lbnRzLiIsCiAgICAgICAgImlkIjogIm43YTQyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiY29tbWVudCI6ICJDbGllbnQgaXMgYXQgcmlzayBvZiBiZWluZyBub24tYWRoZXJlbnQgdG8gbWVkaWNhdGlvbnMgYW5kIG90aGVyIGFwcG9pbnRtZW50cy4gQ2xpZW50IG5lZWRzIHJlbWluZGVycyB0byBhc3Npc3Qgd2l0aCBrZWVwaW5nIGFwcG9pbnRtZW50cy4iLAogICAgICAgICJpZCI6ICJuN2E0MjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICAic3RhdHVzIjogIkFjdGl2ZSIsCiAgICAiY2F0ZWdvcnkiOiAiRXllIiwKICAgICJzZXZlcml0eSI6ICIwLUNyaXRpY2FsIEltcGFjdCIsCiAgICAic3ViamVjdCI6ICJPcGVyYXRpb24gZm9sbG93LXVwIiwKICAgICJwYXRpZW50RGV0YWlsIjogewogICAgICAiZmlyc3ROYW1lIjogIk1hdHQiLAogICAgICAibGFzdE5hbWUiOiAiVHVybmVyIiwKICAgICAgInVzZXJOYW1lIjogIm1hdHR0dXJuZXIxMCIsCiAgICAgICJwaG9uZSI6IDk0NTI4Nzc2NjIsCiAgICAgICJlbWFpbCI6ICJtYXR0dHVybmVyQGdtYWlsLmNvbSIsCiAgICAgICJpZCI6ICI0NjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiCiAgICB9LAogICAgInNvbHV0aW9uIjogewogICAgICAic29sdXRpb25TdWJqZWN0IjogIk9wZXJhdGUgZXllIGRpc2Vhc2UuIiwKICAgICAgImludmVzdGlnYXRpb24iOiAiRGlzZWFzZXMgb24gdGhlIGxlZnQgZXllIGFuZCBhYm5vcm1hbCBleWUgZGV2ZWxvcG1lbnQgYW5kIGZ1bmN0aW9uLiIsCiAgICAgICJyZXNvbHV0aW9uIjogIlN1Y2Nlc3NmdWxseSBvcGVyYXRlIG9uIGRpc2Vhc2Ugb24gdGhlIGxlZnQgZXllIGFuZCBub3JtYWwgZXllIGRldmVsb3BtZW50IGFuZCBmdW5jdGlvbi4iCiAgICB9LAogICAgImNhc2VJZCI6ICIzNjAwNWE4Mi1hNjEyLTRkYzEtOTI3OS03MjE1ZGY2ODk1Y2QiLAogICAgImNyZWF0ZWRBdCI6ICIyMDIxLTAzLTMwVDA4OjMwOjAwWiIsCiAgICAibW9kaWZpZWRBdCI6ICIyMDIxLTA0LTI4VDA4OjMwOjAwWiIsCiAgICAiYXNzaWduZWRUbyI6IHsKICAgICAgImZpcnN0TmFtZSI6ICJLYXRoZXJpbmUiLAogICAgICAibGFzdE5hbWUiOiAiTWFyc2hhbGwiLAogICAgICAicGhvbmUiOiA4NDUyODc3NjY1LAogICAgICAiZW1haWwiOiAia2F0aG1hcnNoYWxsQGhtLmlvIiwKICAgICAgImlkIjogIjI2MDA1YTgyLWE2MTItNGRjMS05Mjc5LTcyMTVkZjY4OTVjZCIsCiAgICAgICJhc3NpZ25lZE9uIjogIjIwMjEtMDMtMzBUMDg6MzA6MDBaIiwKICAgICAgInByb2Zlc3Npb24iOiAiT3BodGhhbG1vbG9naXN0cyIKICAgIH0sCiAgICAibWlsZXN0b25lcyI6IFsKICAgICAgewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb21lIHRoZXJhcHkgZm9yIGxlZnQgZXllIGJlZm9yZSBzdXJnZXJ5LiIsCiAgICAgICAgImlkIjogIjMwMDI3ODExLTFkZGItNDEzNS1iYjk0LTNhNjhhYWUxNDkxYyIsCiAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjEyOjIzLjkyNloiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG9tZSB0aGVyYXB5IGZvciBsZWZ0IGV5ZSBiZWZvcmUgc3VyZ2VyeS4iLAogICAgICAgICJpZCI6ICIzMDAyNzgxMS0xZGRiLTQxMzUtYmI5NC0zYTY4YWFlMTQ5MWMiLAogICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxMjoyMy45MjZaIgogICAgICB9CiAgICBdLAogICAgImFjdGl2aXRpZXMiOiBbCiAgICAgIHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiVXBsb2FkZWQgWC1SYXkgcmVwb3J0LiIsCiAgICAgICAgImlkIjogImE3YTMyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiVXBsb2FkZWQgWC1SYXkgcmVwb3J0LiIsCiAgICAgICAgImlkIjogImE3YTMyNTc5LWQ3YzMtNDVlZi04YjVmLThlYWM5OTZkYjU5OSIsCiAgICAgICAgImNyZWF0ZWRBdCI6ICIyMDIyLTEwLTIxVDAxOjE0OjI3LjUxNloiCiAgICAgIH0KICAgIF0sCiAgICAibm90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiY29tbWVudCI6ICJDbGllbnQgaXMgYXQgcmlzayBvZiBiZWluZyBub24tYWRoZXJlbnQgdG8gbWVkaWNhdGlvbnMgYW5kIG90aGVyIGFwcG9pbnRtZW50cy4gQ2xpZW50IG5lZWRzIHJlbWluZGVycyB0byBhc3Npc3Qgd2l0aCBrZWVwaW5nIGFwcG9pbnRtZW50cy4iLAogICAgICAgICJpZCI6ICJuN2E0MjU3OS1kN2MzLTQ1ZWYtOGI1Zi04ZWFjOTk2ZGI1OTkiLAogICAgICAgICJjcmVhdGVkQXQiOiAiMjAyMi0xMC0yMVQwMToxNDoyNy41MTZaIgogICAgICB9LAogICAgICB7CiAgICAgICAgImNvbW1lbnQiOiAiQ2xpZW50IGlzIGF0IHJpc2sgb2YgYmVpbmcgbm9uLWFkaGVyZW50IHRvIG1lZGljYXRpb25zIGFuZCBvdGhlciBhcHBvaW50bWVudHMuIENsaWVudCBuZWVkcyByZW1pbmRlcnMgdG8gYXNzaXN0IHdpdGgga2VlcGluZyBhcHBvaW50bWVudHMuIiwKICAgICAgICAiaWQiOiAibjdhNDI1NzktZDdjMy00NWVmLThiNWYtOGVhYzk5NmRiNTk5IiwKICAgICAgICAiY3JlYXRlZEF0IjogIjIwMjItMTAtMjFUMDE6MTQ6MjcuNTE2WiIKICAgICAgfQogICAgXQogIH0KXQpgYGAKCgoqKipTdGF0dXMgQ29kZToqKiogMjAwCgo8YnI+CgoKCiMjIyMgSUkuIEV4YW1wbGUgUmVxdWVzdDogSW52YWxpZCByZXF1ZXN0LiBQbGVhc2UgZmlsbCB0aGUgcmVxdWlyZWQgaW5wdXQvaW5wdXRzLgoKCgoqKipRdWVyeToqKioKCnwgS2V5IHwgVmFsdWUgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgcGFnZSB8IDEgfCAgfAp8IHBlclBhZ2UgfCAxMCB8ICB8CgoKCioqKkJvZHk6IE5vbmUqKioKCgoKIyMjIyBJSS4gRXhhbXBsZSBSZXNwb25zZTogSW52YWxpZCByZXF1ZXN0LiBQbGVhc2UgZmlsbCB0aGUgcmVxdWlyZWQgaW5wdXQvaW5wdXRzLgpgYGBqcwp7CiAgInN0YXR1c0NvZGUiOiA0MDAsCiAgImRlc2NyaXB0aW9uIjogIkludmFsaWQgcmVxdWVzdC4gUGxlYXNlIGZpbGwgdGhlIHJlcXVpcmVkIGlucHV0L2lucHV0cy4iCn0KYGBgCgoKKioqU3RhdHVzIENvZGU6KioqIDQwMAoKPGJyPgoKCgojIyMjIElJSS4gRXhhbXBsZSBSZXF1ZXN0OiBCYWQgcmVxdWVzdC4gQ2FuJ3QgZmluZCB0aGUgcmVxdWVzdGVkIHJlc291cmNlLgoKCgoqKipRdWVyeToqKioKCnwgS2V5IHwgVmFsdWUgfCBEZXNjcmlwdGlvbiB8CnwgLS0tIHwgLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgcGFnZSB8IDEgfCAgfAp8IHBlclBhZ2UgfCAxMCB8ICB8CgoKCioqKkJvZHk6IE5vbmUqKioKCgoKIyMjIyBJSUkuIEV4YW1wbGUgUmVzcG9uc2U6IEJhZCByZXF1ZXN0LiBDYW4ndCBmaW5kIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuCmBgYGpzCnsKICAic3RhdHVzQ29kZSI6IDQwNCwKICAiZGVzY3JpcHRpb24iOiAiQmFkIHJlcXVlc3QuIENhbid0IGZpbmQgdGhlIHJlcXVlc3RlZCByZXNvdXJjZS4iCn0KYGBgCgoKKioqU3RhdHVzIENvZGU6KioqIDQwNAoKPGJyPgoKCgojIyMjIElWLiBFeGFtcGxlIFJlcXVlc3Q6IEludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC4KCgoKKioqUXVlcnk6KioqCgp8IEtleSB8IFZhbHVlIHwgRGVzY3JpcHRpb24gfAp8IC0tLSB8IC0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IHBhZ2UgfCAxIHwgIHwKfCBwZXJQYWdlIHwgMTAgfCAgfAoKCgoqKipCb2R5OiBOb25lKioqCgoKCiMjIyMgSVYuIEV4YW1wbGUgUmVzcG9uc2U6IEludGVybmFsIHNlcnZlciBlcnJvci4gQ2FuJ3QgZnVsZmlsbCB0aGUgcmVxdWVzdC4KYGBganMKewogICJzdGF0dXNDb2RlIjogNTAwLAogICJkZXNjcmlwdGlvbiI6ICJJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IuIENhbid0IGZ1bGZpbGwgdGhlIHJlcXVlc3QuIgp9CmBgYAoKCioqKlN0YXR1cyBDb2RlOioqKiA1MDAKCjxicj4KCgoKLS0tCltCYWNrIHRvIHRvcF0oI2Nhc2UtbWFuYWdlcnMtYXBpLWNvbGxlY3Rpb24pCgo+R2VuZXJhdGVkIGF0IDIwMjItMTAtMzAgMjE6MTg6MjcgYnkgW2RvY2dlbl0oaHR0cHM6Ly9naXRodWIuY29tL3RoZWRldnNhZGRhbS9kb2NnZW4pCg== readmeEtag: '"f5c075ab712ab0be7c3dc60c331f5eaec3f074a6"' readmeLastModified: Mon, 31 Oct 2022 02:20:31 GMT repositoryId: 554357697 description: >- This is the design of a REST API in Postman that performs operation on case managers, cases, and related case notes, which is a part of the project CS 673 - Care Management and Co-ordination. created: '2022-10-19T17:19:00Z' updated: '2022-10-31T18:47:57Z' language: null archived: false stars: 1 watchers: 1 forks: 1 owner: Boro23-wq logo: https://avatars.githubusercontent.com/u/62204944?v=4 license: MIT repoEtag: '"10e6b3a1fa16e57890604610b7f279097fb792311112ad6c6ad14b02005db530"' repoLastModified: Mon, 31 Oct 2022 18:47:57 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/tdatit/tda-store-restful-api v3: true id: 2871f22095748321dac0e9d7f7cb5e80 repositoryMetadata: base64Readme: >- IyB0ZGEtc3RvcmUtcmVzdGZ1bC1hcGkKVERBIFdlYiBpcyBhbiBlLWNvbW1lcmNlIHdlYnNpdGUgYnVpbHQgb24gdGhlIFJFU1QgQVBJIGFyY2hpdGVjdHVyZSB1c2VkIGZvciByZWxhdGVkIFREQSBlLWNvbW1lcmNlIGFwcGxpY2F0aW9ucyBzdWNoIGFzIG1vYmlsZSBhbmQgd2ViIAojCjxoMj5UZWNoPC9oMj4KPHVsPiAKICA8bGk+SmF2YSAxMTwvbGk+CiAgPGxpPk15U1FMIC8gUG9zdGdyZVNRTDwvbGk+CiAgPGxpPlNwcmluZyBCb290PC9saT4KICA8bGk+U3ByaW5nIFdlYjwvbGk+CiAgPGxpPlNwcmluZyBTZWN1cml0eTwvbGk+CiAgPGxpPlNwcmluZyBEYXRhPC9saT4KICA8bGk+U3ByaW5nIEFPUDwvbGk+CiAgPGxpPlZhbGlkYXRvcjwvbGk+CiAgPGxpPkNsb3VkaW5hcnk8L2xpPgogIDxsaT5SYWJiaXRNUTwvbGk+CjwvdWw+CgoKIVtlcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS90ZGF0SVQvdGRhLXN0b3JlLXJlc3RmdWwtYXBpL2Fzc2V0cy84NTAxODA2Mi9mZGY3YzhkZS01ODgzLTRlMzktYTdlNS1lOGE1NGU2NGM0NzQpCgoKPGg0PkRldmVsb3BtZW50IGJ5IFRyYW4gVGllbiBEYXQ8L2g0Pgo= readmeEtag: '"d1e6b2de5680aea1375d7c068f53bb11379d6e64"' readmeLastModified: Sat, 10 Jun 2023 09:21:12 GMT repositoryId: 619189905 description: Backend for mobile app (TDA Laptop) created: '2023-03-26T14:35:14Z' updated: '2024-01-15T11:21:35Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: tdatIT logo: https://avatars.githubusercontent.com/u/85018062?v=4 repoEtag: '"0fe1c791bbf135bd76ec1dff7905d34eb65bf4e05f48ab37c5a9c29fc3e7fe09"' repoLastModified: Mon, 15 Jan 2024 11:21:35 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/elomagic/yacog4openapi v3: true id: b068e391411b136805dc8897fb4e93f0 repositoryMetadata: base64Readme: >- IyBZYXN0IEFub3RoZXIgQ29kZSBHZW5lcmF0b3IgVG9vbCA0IE9wZW5BUEkKCkN1cnJlbnRseSwgcHJvdG90eXBlIHN0YXR1cwoKLS0tCgpbIVtHaXRIdWIgdGFnXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi90YWcvZWxvbWFnaWMveWFjb2c0b3BlbmFwaS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZWxvbWFnaWMveWFjb2c0b3BlbmFwaS90YWdzLykKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzLXJhdy9lbG9tYWdpYy95YWNvZzRvcGVuYXBpKV0oaHR0cHM6Ly9naXRodWIuY29tL2Vsb21hZ2ljL3lhY29nNG9wZW5hcGkvaXNzdWVzKQpbIVtBcGFjaGUgMi4wIGxpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQXBhY2hlLTIuMC1ibHVlLnN2ZyldKGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC1zdGFuZGFsb25lLmh0bWwpClshW21hZGUtd2l0aC1taWNyb3B5dGhvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9NYWRlJTIwd2l0aC1QeXRob24tMWY0MjVmLnN2ZyldKGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcpClshW01haW50ZW5hbmNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL01haW50YWluZWQlM0YteWVzLWdyZWVuLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbG9tYWdpYy95YWNvZzRvcGVuYXBpL2dyYXBocy9jb21taXQtYWN0aXZpdHkpClshW0J1eW1lYWNvZmZlZV0oaHR0cHM6Ly9iYWRnZW4ubmV0L2JhZGdlL2ljb24vYnV5bWVhY29mZmVlP2ljb249YnV5bWVhY29mZmVlJmxhYmVsKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9lbG9tYWdpYykKCiMjIFRhYmxlIG9mIENvbnRlbnRzCgotIFtXaGF0IGFib3V0P10oI3doYXQtYWJvdXQ/KQotIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCi0gW0NvbmZpZ3VyYXRpb25dKCNjb25maWd1cmF0aW9uKQotIFtVc2luZ10oI3VzaW5nKQotIFtDb250cmlidXRpb25dKCNjb250cmlidXRpb24pCgojIFdoYXQgQWJvdXQ/CgpUaGlzIHByb2plY3QgaXMgY3VycmVudGx5IGEgc21hbGwgcHJvdG90eXBlIHByb2plY3QgaG93IHRvIHJlYWQgYW4gT3BlbiBBUEkgZmlsZSBhbmQgdXNlIGEgdGVtcGxhdGUgZW5naW5lIGluIFB5dGhvbi4gCgojIEluc3RhbGxhdGlvbgoKQWxsIHJlcXVpcmVkIFB5dGhvbiBkZXBlbmRlbmNpZXMgYXJlIGRlY2xhcmVkIGluIHRoZSAqcmVxdWlyZW1lbnQudHh0KiBmaWxlIGFuZCBtdXN0IGJlIGluc3RhbGxlZCB3aXRoIHRoZSBmb2xsb3dpbmcgCmNvbW1hbmQgYnkgdXNpbmcgdGhlIFB5dGhvbiBwYWNrYWdlIG1hbmFnZXIgKlBpcCo6IAoKYGBgc2hlbGwKcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dApgYGAKCiMgQ29uZmlndXJhdGlvbgoKYGBganNvbjUKewogICAgImlucHV0IjogewogICAgICAgIC8vIERlZmF1bHQgT3BlbkFQSSBkZWZpbml0aW9uIGZpbGUKICAgICAgICAic291cmNlIjogIi4uL3Rlc3Qvb3BlbmFwaS5qc29uIgogICAgfSwgICAgCiAgICAvLyBUZW1wbGF0ZSB0byB1c2UKICAgICJ0ZW1wbGF0ZSI6ICJyZXNvdXJjZXMvZGVscGhpLXVuaXQuamluamEyIiwKICAgIC8vIEZpbGUgZ2VuZXJhdGVkIG91dHB1dAogICAgIm91dHB1dCI6ICIuLi9vdXQvdVJlc3RTZXJ2aWNlQ2xpZW50LnBhcyIsCiAgICAvLyBPcGVuIEFQSSBkYXRhdHlwZSBtYXBwaW5ncwogICAgImRhdGF0eXBlLW1hcCI6IHsKICAgICAgICAibnVtYmVyLGZsb2F0IjogICJTaW5nbGUiLAogICAgICAgICJudW1iZXIsZG91YmxlIjogIkRvdWJsZSIsCiAgICAgICAgIm51bWJlciwiOiAiU2luZ2xlIiwKCiAgICAgICAgImludGVnZXIsaW4zMiI6ICJJbnRlZ2VyIiwKICAgICAgICAiaW50ZWdlcixpbnQ2NCI6ICJJbnQ2NCIsCiAgICAgICAgImludGVnZXIsIjogIkludGVnZXIiLAoKICAgICAgICAic3RyaW5nLGJ5dGUiOiAiU3RyaW5nIiwKICAgICAgICAic3RyaW5nLGJpbmFyeSI6ICJTdHJpbmciLAogICAgICAgICJzdHJpbmcsIjogIlN0cmluZyIsCgogICAgICAgICJzdHJpbmcsZGF0ZSI6ICJURGF0ZSIsCiAgICAgICAgInN0cmluZyxkYXRlLXRpbWUiOiAiVERhdGVUaW1lIiwKCiAgICAgICAgInN0cmluZyx1dWlkIjogIlN0cmluZyIsCgogICAgICAgICJib29sZWFuLCI6ICJCb29sZWFuIgogICAgfQp9CmBgYAoKdGJjCgojIFVzaW5nCgojIyBDcmVhdGluZyBvdXRwdXQKCiMjIyBFeGFtcGxlCgpgYGBzaGVsbApzcmMvZ2VuY2xpZW50LnB5IC0tc291cmNlPXRlc3Qvb3BlbmFwaS5qc29uIC0tdGVtcGxhdGU9dGVzdC9kZWxwaGktdGVzdC1leGFtcGxlLmppbmphMiAtLW91dHB1dD10ZXN0LW91dHB1dC9kZWxwaGktdW5pdC5wYXMKYGBgCgojIyBTdXBwb3J0ZWQgcGFyYW1ldGVycwoKVG8gZ2V0IGFuIG92ZXJ2aWV3IG9mIHRoZSBzdXBwb3J0ZWQgcGFyYW1ldGVycywgZW50ZXIgdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHlvdXIgc2hlbGw6CgpgYGBzaGVsbApzcmMvZ2VuY2xpZW50LnB5IC0taGVscApgYGAKCnRiYwoKIyBDb250cmlidXRpb24KCnRiZA== readmeEtag: '"5449f612c93d25e8231a6291b08989be6f8dddd6"' readmeLastModified: Mon, 15 Aug 2022 09:30:44 GMT repositoryId: 523364744 description: Yast Another Code Generator Tool 4 Open API created: '2022-08-10T13:57:05Z' updated: '2024-01-19T10:28:57Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: elomagic logo: https://avatars.githubusercontent.com/u/2555557?v=4 license: Apache-2.0 repoEtag: '"1f4eb1caa9457b2cab71f150a4a93b23c7b1736c920e65be44b12d82dcddc266"' repoLastModified: Fri, 19 Jan 2024 10:28:57 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/bump-sh-examples/rails-code-first v3: true v3_1: true id: e9bd7b3601526c75c4e63226d8d34a13 repositoryMetadata: base64Readme: >- IyBSYWlscyBIZWxsbyBPcGVuQVBJCgpBIHF1aWNrICJIZWxsbyBXb3JsZCIgYnV0IGZvciBnZW5lcmF0aW5nIE9wZW5BUEksIHVzaW5nIHRoZSBSdWJ5IG9uIFJhaWxzIGV4dGVuc2lvbiBbUlN3YWddKGh0dHBzOi8vZ2l0aHViLmNvbS9yc3dhZy9yc3dhZy8pLgoKVGhpcyByZXBvc2l0b3J5IHdhcyBidWlsdCBhcyBzYW1wbGUgY29kZSBmb3IgdGhlIEJ1bXAuc2ggZ3VpZGUgb24gW0dlbmVyYXRpbmcgT3BlbkFQSSBkb2NzIGZvciBSdWJ5IG9uIFJhaWxzIHdpdGggUlN3YWddKGh0dHBzOi8vZG9jcy5idW1wLnNoL2d1aWRlcy9vcGVuYXBpL2NvZGUtZmlyc3QtcmFpbHMvKS4KCiMjIFVzYWdlCgpDbG9uZSB0aGUgcmVwb3NpdG9yeSBkb3duIHRvIGdpdmUgaXQgYSB0cnkuCgpgYGAKIyBTZXQgZXZlcnl0aGluZyB1cAokIGJ1bmRsZSBpbnN0YWxsCgojIEV4cG9ydCB0aGUgT3BlbkFQSQokIHJha2UgcnN3YWcKCiMgVGFrZSBhIGxvb2sgYXQgdGhlIGdlbmVyYXRlZCBPcGVuQVBJCmNhdCBzd2FnZ2VyL2FwaS9zd2FnZ2VyLnlhbWwKYGBgCgpQcmV2aWV3IHRoZSBBUEkgcmVmZXJlbmNlIGRvY3MgW29uIEJ1bXAuc2hdKGh0dHBzOi8vYnVtcC5zaC9idW1wLWV4YW1wbGVzL2h1Yi9jb2RlLXNhbXBsZXMvZG9jL3JhaWxzLWhlbGxvLW9wZW5hcGkpLgoKIyMgTGljZW5zZQoKVGhlIGNvbnRlbnRzIG9mIHRoaXMgcmVwb3NpdG9yeSBhcmUgbGljZW5zZWQgdW5kZXIgW0NDIEJZLU5DLVNBCiAgNC4wXSguL0xJQ0VOU0VfQ0MtQlktTkMtU0EtNC4wKS4K readmeEtag: '"2694988af4c3e6185be844cb4987decfa1b13f15"' readmeLastModified: Mon, 11 Mar 2024 16:05:51 GMT repositoryId: 737069913 description: Add OpenAPI powered documentation to your Rails API with RSwag. created: '2023-12-29T18:09:14Z' updated: '2024-02-27T16:17:23Z' language: Ruby archived: false stars: 1 watchers: 1 forks: 1 owner: bump-sh-examples logo: https://avatars.githubusercontent.com/u/157144805?v=4 license: NOASSERTION repoEtag: '"d65db4d2bb007fccc3ec5cdea0e279d06f7f0360849f21e020a85fef694585c9"' repoLastModified: Tue, 27 Feb 2024 16:17:23 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/rakesh5777/oxytrack-turbo v3: true id: ab8d2cd37cb51948ff57c08e473c2da3 repositoryMetadata: base64Readme: >- IyBPeHlUcmFjayBUdXJibyBQcm9qZWN0CgpXZWxjb21lIHRvIHRoZSBPeHlUcmFjayBUdXJibyBwcm9qZWN0ISBUaGlzIG1vbm9yZXBvIGlzIGJ1aWx0IHdpdGggVHVyYm8gUmVwbywgdXRpbGl6aW5nIGEgcm9idXN0IHN0YWNrIHRoYXQgaW5jbHVkZXMgUHJpc21hLCBQb3N0Z3JlcywgRXhwcmVzcywgTm9kZS5qcywgUmVhY3QsIGFuZCBUeXBlU2NyaXB0IGFjcm9zcyBib3RoIHRoZSBmcm9udGVuZCBhbmQgYmFja2VuZCwgZW5zdXJpbmcgYSBzdHJvbmdseSB0eXBlZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC4KCiMjIEZlYXR1cmVzCgotICoqTW9ub3JlcG8gU3RydWN0dXJlKio6IE9yZ2FuaXplZCBpbnRvIGBhcHBzL2AgZm9yIGZyb250ZW5kL2JhY2tlbmQgYXBwbGljYXRpb25zIGFuZCBgcGFja2FnZXMvYCBmb3Igc2hhcmVkIGxvZ2ljIG9yIGNvbXBvbmVudHMuCi0gKipPcGVuQVBJIFNwZWNpZmljYXRpb24qKjogVXRpbGl6ZXMgT3BlbkFQSSBzcGVjIGFzIHRoZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIEFQSSBkZXNpZ24sIHdpdGggYXV0by1nZW5lcmF0ZWQgVHlwZVNjcmlwdCBjbGllbnRzIHVzaW5nIGBvcGVuYXBpLXR5cGVzY3JpcHRgIGFuZCBgb3BlbmFwaS10eXBlc2NyaXB0LWF4aW9zYC4KLSAqKlN0cm9uZyBUeXBpbmcqKjogQm90aCBmcm9udGVuZCBhbmQgYmFja2VuZCBhcmUgZnVsbHkgdHlwZWQsIGVuaGFuY2luZyBkZXZlbG9wbWVudCBleHBlcmllbmNlIGFuZCBjb2RlIHF1YWxpdHkuCi0gKipEYXRhYmFzZSBGbGV4aWJpbGl0eSoqOiBTdXBwb3J0cyBsb2NhbCBQb3N0Z3JlcyBzZXR1cHMgYXMgd2VsbCBhcyBEb2NrZXItYmFzZWQgZW52aXJvbm1lbnRzIGZvciBlYXNlIG9mIGRldmVsb3BtZW50LgotICoqRGV2ZWxvcG1lbnQgV29ya2Zsb3cqKjogSW50ZWdyYXRlcyB0b29scyBsaWtlIFByZXR0aWVyLCBFU0xpbnQsIEh1c2t5LCBhbmQgbGludC1zdGFnZWQgZm9yIGNvZGUgZm9ybWF0dGluZyBhbmQgbGludGluZywgZW5zdXJpbmcgY29kZSBjb25zaXN0ZW5jeSBhbmQgcXVhbGl0eS4KCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIFByZXJlcXVpc2l0ZXMKCi0gTm9kZS5qcyAodjE4IG9yIGhpZ2hlcikKLSBwbnBtICh2OC45LjApCi0gRG9ja2VyIChmb3IgcnVubmluZyBQb3N0Z3JlcyBpbiBhIGNvbnRhaW5lcikKCiMjIyBTZXR1cCBJbnN0cnVjdGlvbnMKCjEuICoqQ2xvbmUgdGhlIFJlcG9zaXRvcnkqKgoKICAgU3RhcnQgYnkgY2xvbmluZyB0aGlzIHJlcG9zaXRvcnkgdG8geW91ciBsb2NhbCBtYWNoaW5lLgoKMi4gKipFbnZpcm9ubWVudCBTZXR1cCoqCgogICBSZW5hbWUgYC5leGFtcGxlLmVudmAgdG8gYC5lbnZgIGluIGJvdGggYGFwcHMvYmFja2VuZGAgYW5kIGBwYWNrYWdlcy9kYXRhYmFzZWAuIFRoaXMgaXMgY3J1Y2lhbCBmb3IgY29uZmlndXJpbmcgeW91ciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgY29ycmVjdGx5LgoKMy4gKipEYXRhYmFzZSBDb25maWd1cmF0aW9uKioKCiAgIEVuc3VyZSB5b3UgaGF2ZSBhIHJ1bm5pbmcgUG9zdGdyZXMgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIERvY2tlciBhcyBtZW50aW9uZWQgaW4gdGhlIHNjcmlwdHMgc2VjdGlvbiBvciBzZXQgdXAgYSBsb2NhbCBpbnN0YW5jZS4KCjQuICoqSW5zdGFsbCBEZXBlbmRlbmNpZXMqKgoKICAgUnVuIGBwbnBtIGluc3RhbGxgIHRvIGluc3RhbGwgYWxsIHJlcXVpcmVkIGRlcGVuZGVuY2llcyBhY3Jvc3MgdGhlIG1vbm9yZXBvLgoKNS4gKipTdGFydCBEZXZlbG9wbWVudCBTZXJ2ZXIqKgoKICAgVG8gc3RhcnQgdGhlIGRldmVsb3BtZW50IHNlcnZlciwgcnVuIGB0dXJibyBydW4gZGV2YC4KCiMjIFVzZWZ1bCBTY3JpcHRzCgpEZWZpbmVkIHdpdGhpbiB0aGUgYHR1cmJvLmpzb25gIHBpcGVsaW5lLCB0aGVzZSBjb21tYW5kcyBhcmUga2V5IHRvIHRoZSBwcm9qZWN0J3MgZGV2ZWxvcG1lbnQgYW5kIGRlcGxveW1lbnQgcHJvY2Vzc2VzOgoKLSAqKlByaXNtYSBDb21tYW5kcyoqOgoKICAtIGB0dXJibyBydW4gZGI6Z2VuZXJhdGVgOiBHZW5lcmF0ZXMgUHJpc21hIGNsaWVudCBhcnRpZmFjdHMsIGVzc2VudGlhbCBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB5b3VyIGRhdGFiYXNlIGluIGEgdHlwZS1zYWZlIG1hbm5lci4KICAtIGB0dXJibyBydW4gZGI6cHVzaGA6IFVwZGF0ZXMgdGhlIGRhdGFiYXNlIHNjaGVtYSBkdXJpbmcgZGV2ZWxvcG1lbnQgd2l0aG91dCBhcHBseWluZyBtaWdyYXRpb25zLCB1c2VmdWwgZm9yIHF1aWNrIGl0ZXJhdGlvbnMuCiAgLSBgdHVyYm8gcnVuIGRiOm1pZ3JhdGVgOiBBcHBsaWVzIGRhdGFiYXNlIG1pZ3JhdGlvbnMsIGVuc3VyaW5nIHlvdXIgZGF0YWJhc2Ugc2NoZW1hIG1hdGNoZXMgeW91ciBQcmlzbWEgc2NoZW1hLgoKLSAqKkFQSSBDb250cmFjdCBhbmQgQ2xpZW50IEdlbmVyYXRpb24qKjoKCiAgLSBgdHVyYm8gcnVuIGJ1aWxkLWFwaS1jb250cmFjdGA6IEJ1bmRsZXMgdGhlIE9wZW5BUEkgc3BlYyBhbmQgZ2VuZXJhdGVzIFR5cGVTY3JpcHQgQXhpb3MgY2xpZW50cywgZW5zdXJpbmcgZnJvbnRlbmQgYW5kIGJhY2tlbmQgY29tbXVuaWNhdGUgb3ZlciBhIHN0cm9uZ2x5IHR5cGVkIEFQSS4KCi0gKipUdXJibyBDb21tYW5kcyoqOgogIC0gYHR1cmJvIHJ1biBidWlsZGA6IENvbXBpbGVzIHRoZSBwcm9qZWN0IGZvciBwcm9kdWN0aW9uLCBlbnN1cmluZyBhbGwgZGVwZW5kZW5jaWVzIGxpa2UgUHJpc21hIGNsaWVudCBhbmQgQVBJIGNvbnRyYWN0cyBhcmUgZ2VuZXJhdGVkIGFuZCB1cC10by1kYXRlLgogIC0gYHR1cmJvIHJ1biBkZXZgOiBTdGFydHMgdGhlIGRldmVsb3BtZW50IHNlcnZlciwgd2F0Y2hpbmcgZm9yIGNoYW5nZXMgaW4geW91ciBzb3VyY2UgY29kZSBhbmQgYXV0b21hdGljYWxseSByZWNvbXBpbGluZy4KCiMjIFByb2plY3QgU3RydWN0dXJlCgotIGBhcHBzLypgOiBDb250YWlucyB0aGUgZnJvbnRlbmQgYW5kIGJhY2tlbmQgYXBwbGljYXRpb25zLgotIGBwYWNrYWdlcy8qYDogSW5jbHVkZXMgc2hhcmVkIGxpYnJhcmllcywgY29uZmlndXJhdGlvbnMsIGFuZCB1dGlsaXR5IGZ1bmN0aW9ucy4KCiMjIEFkZGl0aW9uYWwgUmVzb3VyY2VzCgotIFtUdXJibyBSZXBvIERvY3VtZW50YXRpb25dKGh0dHBzOi8vdHVyYm9yZXBvLm9yZy9kb2NzKQotIFtQcmlzbWEgRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cucHJpc21hLmlvL2RvY3MvKQotIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykKLSBbVHlwZVNjcmlwdF0oaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvKQotIFtQb3N0Z3JlcyBEb2NrZXIgU2V0dXBdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL3NhbXBsZXMvcG9zdGdyZXNxbF9zZXJ2aWNlLykKCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSEgUGxlYXNlIGZvbGxvdyB0aGUgZXN0YWJsaXNoZWQgY29kaW5nIGNvbnZlbnRpb25zIGFuZCBwdWxsIHJlcXVlc3QgcHJvY2Vzcy4KCi0tLQoKVGhhbmsgeW91IGZvciBjaG9vc2luZyBPeHlUcmFjayBUdXJibyBSZXBvIGZvciB5b3VyIGRldmVsb3BtZW50IG5lZWRzLiBIYXBweSBjb2RpbmchCg== readmeEtag: '"02a9c426d98b5c99dec855d7b8b34c296f9e2ef7"' readmeLastModified: Sat, 20 Apr 2024 13:46:30 GMT repositoryId: 760678504 description: >- A robust full stack application that includes Prisma, Postgres, Express, Node.js, React, and TypeScript across both the frontend and backend, ensuring a strongly typed development environment. created: '2024-02-20T18:26:55Z' updated: '2024-04-20T13:47:13Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: Rakesh5777 logo: https://avatars.githubusercontent.com/u/81339756?v=4 repoEtag: '"98e101060e2dced0b29fac286298e05447fcd01b5b643364fe8d2d174f472aa2"' repoLastModified: Sat, 20 Apr 2024 13:47:13 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/jumaevkova04/openapi2postman v3: true id: b08e9dd59402d9721f62e5e2244236e8 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpMnBvc3RtYW4gYWN0aW9uCgpHaXRIdWIgYWN0aW9uIHRvIHB1c2ggb3BlbmFwaSAoT3BlbkFQSSAzLjAsIDMuMSBhbmQgU3dhZ2dlciAyLjApIGZpbGUgdG8gUG9zdG1hbiBkaXJlY3RseSBmcm9tIHlvdXIgd29ya2Zsb3cKCiMjIFVzYWdlCgpBZGQgdGhlIG9wZW5hcGkycG9zdG1hbiBhY3Rpb24gYW5kIHNldCB0aGUgcmVxdWlyZWQgaW5wdXRzCgoqIGBhcGkta2V5YDogeW91ciBQb3N0bWFuIEFQSSBrZXkKKiBgd29ya3NwYWNlLWlkYDogeW91ciBQb3N0bWFuIHdvcmtzcGFjZSBpZAoqIGBjb2xsZWN0aW9uLWlkYDogeW91ciBQb3N0bWFuIGNvbGxlY3Rpb24gaWQKKiBgZmlsZWA6IHlvdXIgb3BlbmFwaSBqc29uIGZpbGUKCiMjIyBGaWxlIGZvcm1hdHMgYXZhaWxhYmxlCgpgLmpzb25gICAgCmAueWFtbGAgICAKYC55bWxgCgojIyMgVXBkYXRlIGV4aXN0aW5nIGNvbGxlY3Rpb24KClVwZGF0ZSBleGlzdGluZyBQb3N0bWFuIGNvbGxlY3Rpb24KCmBgYHlhbWwKICAgIC0gbmFtZTogIlVwZGF0ZSBQb3N0bWFuIENvbGxlY3Rpb24iCiAgICAgIHVzZXM6IGp1bWFldmtvdmEwNC9vcGVuYXBpMnBvc3RtYW5AbWFpbgogICAgICB3aXRoOgogICAgICAgIGFwaS1rZXk6ICR7eyBzZWNyZXRzLlBPU1RNQU5fQVBJX0tFWSB9fQogICAgICAgIHdvcmtzcGFjZS1pZDogJHt7IHNlY3JldHMuUE9TVE1BTl9XT1JLU1BBQ0VfSUQgfX0KICAgICAgICBjb2xsZWN0aW9uLWlkOiAke3sgc2VjcmV0cy5QT1NUTUFOX0NPTExFQ1RJT05fSUQgfX0KICAgICAgICBmaWxlOiAuL2RvY3Mvc3dhZ2dlci5qc29uCmBgYAoKIyMjIEV4YW1wbGUgd29ya2Zsb3cgZmlsZQoKVXBkYXRlIFBvc3RtYW4gY29sbGVjdGlvbnMgb24gYHB1c2hgCgpgYGB5YW1sCm5hbWU6ICJVcGRhdGUgUG9zdG1hbiBjb2xsZWN0aW9uIgoKb246CiAgcHVzaDoKICAgIGJyYW5jaGVzOiBbICJtYWluIiBdCgpqb2JzOgogIHN5bmMtZG9jdW1lbnRhdGlvbi13aXRoLXBvc3RtYW46CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgICAgLSBuYW1lOiAiQ2hlY2tvdXQgcmVwb3NpdG9yeSIKICAgICAgICB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYzCgogICAgICAtIG5hbWU6ICJVcGRhdGUgUG9zdG1hbiBDb2xsZWN0aW9uIgogICAgICAgIHVzZXM6IGp1bWFldmtvdmEwNC9vcGVuYXBpMnBvc3RtYW5AbWFpbgogICAgICAgIHdpdGg6CiAgICAgICAgICBhcGkta2V5OiAke3sgc2VjcmV0cy5QT1NUTUFOX0FQSV9LRVkgfX0KICAgICAgICAgIHdvcmtzcGFjZS1pZDogJHt7IHNlY3JldHMuUE9TVE1BTl9XT1JLU1BBQ0VfSUQgfX0KICAgICAgICAgIGNvbGxlY3Rpb24taWQ6ICR7eyBzZWNyZXRzLlBPU1RNQU5fQ09MTEVDVElPTl9JRCB9fQogICAgICAgICAgZmlsZTogLi9kb2NzL3N3YWdnZXIuanNvbgpgYGA= readmeEtag: '"3605027ed82f649140af3e5883f62f5b49823954"' readmeLastModified: Wed, 19 Jun 2024 02:46:33 GMT repositoryId: 712975783 description: Update Postman collection from openapi file created: '2023-11-01T15:33:20Z' updated: '2024-06-19T02:46:36Z' language: Go archived: false stars: 1 watchers: 1 forks: 0 owner: jumaevkova04 logo: https://avatars.githubusercontent.com/u/68679772?v=4 repoEtag: '"f810d6e7950a76ac6ab6e51b4fded6fd3331738417c470f9956d790c3b5b9fd3"' repoLastModified: Wed, 19 Jun 2024 02:46:36 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/blueconic/openapi v3: true id: 1bdf662814e8d18010a84f46df9f5114 repositoryMetadata: base64Readme: >- IyBCbHVlQ29uaWMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgQmx1ZUNvbmljIFJFU1QgQVBJIHYyLgogCiAjIFVzaW5nIHRoZSBsYXRlc3QgcHVibGlzaGVkIE9wZW5BUEkgc3BlY2lmaWNhdGlvbgogKiBPcGVuIGh0dHBzOi8vcmVzdC5hcGlkb2MuYmx1ZWNvbmljLmNvbQogCiAjIFVzaW5nIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gb2YgYSBnaXZlbiBCbHVlQ29uaWMgdGVuYW50CiAqIE9wZW4gaHR0cHM6Ly9yZXN0LmFwaWRvYy5ibHVlY29uaWMuY29tLz9ob3N0bmFtZT1teXRlbmFudG5hbWUuYmx1ZWNvbmljLm5ldAogKiBPciBvcGVuIGh0dHBzOi8vbXl0ZW5hbnRuYW1lLmJsdWVjb25pYy5uZXQvb3BlbmFwaQogCiAjIFJ1bm5pbmcgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBvbiBhIGxvY2FsIG1hY2hpbmUKICogQ2xvbmUgdGhlIHJlcG9zaXRvcnkgYW5kIGBjZGAgdG8gdGhlIHJlcG9zaXRvcnkgbG9jYXRpb24KICogUnVuIGBucHggaHR0cC1zZXJ2ZXJgCiAqIE9wZW4gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MD9ob3N0bmFtZT1sb2NhbGhvc3RgCiAqIENPUlMgY29uZmlndXJhdGlvbiBvZiBCbHVlQ29uaWMgbmVlZHMgdG8gYmUgYWRqdXN0ZWQgdG8gdGhlIHRoZSBsb2NhbGhvc3Qgb3JpZ2luIChgaHR0cDovL2xvY2FsaG9zdDo4MDgwYCBieSBkZWZhdWx0KQogCiAjIFNwZWNpZnlpbmcgQkMgdmVyc2lvbgogVGhlIGB2ZXJzaW9uYCBxdWVyeXN0cmluZyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHNwZWNpZmljIEJsdWVDb25pYyB2ZXJzaW9uLiBOb3RlIHRoYXQgcGFyYW1ldGVyIGlzIGV4Y2x1c2l2ZSB3aXRoIHRoZSBgaG9zdG5hbWVgIHBhcmFtZXRlciwgd2hpY2ggd2lsbCBhbHdheXMgbG9hZCB0aGUgdmVyc2lvbiBzcGVjaWZpZWQgYnkgdGhlIHRlbmFudCBiZWluZyBjb25uZWN0ZWQgdG8uCiAKICogaHR0cHM6Ly9yZXN0LmFwaWRvYy5ibHVlY29uaWMuY29tLz92ZXJzaW9uPTg5IG9yIGh0dHBzOi8vcmVzdC5hcGlkb2MuYmx1ZWNvbmljLmNvbS8/dmVyc2lvbj1yODkgd2lsbCBsb2FkIHZlcnNpb24gODkKICogaHR0cHM6Ly9yZXN0LmFwaWRvYy5ibHVlY29uaWMuY29tLz92ZXJzaW9uPTkxIG9yIGh0dHBzOi8vcmVzdC5hcGlkb2MuYmx1ZWNvbmljLmNvbS8/dmVyc2lvbj1yOTEgd2lsbCBsb2FkIHZlcnNpb24gOTEKICogaHR0cHM6Ly9yZXN0LmFwaWRvYy5ibHVlY29uaWMuY29tLz92ZXJzaW9uPWN1cnJlbnQgd2lsbCBsb2FkIGxhdGVzdCB2ZXJzaW9uIHB1Ymxpc2hlZC4gQmVoYXZlcyB0aGUgc2FtZSBhcyBub3Qgc3BlY2lmeWluZyBhIHZlcnNpb24gYXQgYWxsLgogCg== readmeEtag: '"f8ee2eaa1a945ac1de3fa1f462a49d346d0fdd5d"' readmeLastModified: Fri, 28 Jun 2024 07:49:45 GMT repositoryId: 595013499 description: 'BlueConic REST API v2 ' created: '2023-01-30T08:01:31Z' updated: '2024-06-28T07:50:33Z' language: JavaScript archived: false stars: 1 watchers: 7 forks: 0 owner: blueconic logo: https://avatars.githubusercontent.com/u/5948030?v=4 license: NOASSERTION repoEtag: '"40fbf730235a8d3490ca957dbf36364a636f251405c2479ab73342e3bf74eba1"' repoLastModified: Fri, 28 Jun 2024 07:50:33 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/lordent/oad v3: true repositoryMetadata: base64Readme: >- IyBQeXRob24gbGlicmFyeSBmb3IgZ2VuZXJhdGUgdmFsaWQgT3BlbkFQSSB2MyBzcGVjaWZpY2F0aW9uCgpbCiFbdHJhdmlzXShodHRwczovL2FwaS50cmF2aXMtY2kub3JnL2xvcmRlbnQvb2FkLnN2Zz9icmFuY2g9bWFzdGVyKQpdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9sb3JkZW50L29hZCkKClJlYWQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uOgotIFtzd2FnZ2VyXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pCi0gW2dpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpCgpVc2FnZSBleGFtcGxlOgoKYGBgcHl0aG9uCmltcG9ydCBhc3luY2lvCmZyb20gb2FkIGltcG9ydCBvcGVuYXBpLCBPcGVuQVBJRG9jCgoKaW5mbyA9IHsKICAgICd0aXRsZSc6ICdUZXN0JywKICAgICdkZXNjcmlwdGlvbic6ICdUZXN0IGFwaSBkZXNjcmlwdGlvbicsCiAgICAndGVybXNPZlNlcnZpY2UnOiAnVGVzdCB0ZXJtcycsCiAgICAnY29udGFjdCc6IHsKICAgICAgICAnbmFtZSc6ICdUZXN0ZXInLAogICAgICAgICd1cmwnOiAnaHR0cDovL2V4YW1wbGUuY29tJywKICAgICAgICAnZW1haWwnOiAndGVzdEBleGFtcGxlLmNvbScKICAgIH0sCiAgICAnbGljZW5zZSc6IHsKICAgICAgICAnbmFtZSc6ICdBcGFjaGUgMi4wJywKICAgICAgICAndXJsJzogJ2h0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC5odG1sJwogICAgfSwKICAgICd2ZXJzaW9uJzogJzEuMCcKfQoKZXJyb3Jfc2NoZW1hID0gewogICAgJ3R5cGUnOiAnb2JqZWN0JywKICAgICdwcm9wZXJ0aWVzJzogewogICAgICAgICd0eXBlJzogeyd0eXBlJzogJ3N0cmluZyd9LAogICAgICAgICdtZXNzYWdlJzogeyd0eXBlJzogJ3N0cmluZyd9LAogICAgICAgICdlcnJvcnMnOiB7J3R5cGUnOiAnb2JqZWN0J30KICAgIH0sCn0KCmVycm9yX3Jlc3BvbnNlID0gewogICAgJ2Rlc2NyaXB0aW9uJzogJ0Vycm9yIHJlc3BvbnNlJywKICAgICdjb250ZW50JzogewogICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzogewogICAgICAgICAgICAnc2NoZW1hJzogewogICAgICAgICAgICAgICAgJyRyZWYnOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRXJyb3InCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCkBvcGVuYXBpLmRvYyh7CiAgICAnc3VtbWFyeSc6ICdUZXN0IHN1bW1hcnkgdGV4dCcsCiAgICAnZGVzY3JpcHRpb24nOiAnVGVzdCBkZXNjcmlwdGlvbicsCiAgICAndGFncyc6IFsndGVzdCddLAogICAgJ3BhcmFtZXRlcnMnOiBbewogICAgICAgICckcmVmJzogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Rlc3RQYXJhbWV0ZXInCiAgICB9XSwKfSkKQG9wZW5hcGkucmVxdWVzdCh7CiAgICAnZGVzY3JpcHRpb24nOiAnVGVzdCBkZXNjcmlwdGlvbicsCn0sIGNvbnRlbnRfZG9jdW1lbnRhdGlvbj17CiAgICAnZXhhbXBsZSc6IHsKICAgICAgICAnaWQnOiAnNCcsCiAgICB9LAp9LCBzY2hlbWE9ewogICAgJ3R5cGUnOiAnb2JqZWN0JywKICAgICdwcm9wZXJ0aWVzJzogewogICAgICAgICdpZCc6IHsKICAgICAgICAgICAgJ3R5cGUnOiAnaW50ZWdlcicsCiAgICAgICAgICAgICdmb3JtYXQnOiAnaW50NjQnLAogICAgICAgICAgICAnZXhhbXBsZSc6ICc0JywKICAgICAgICB9LAogICAgfSwKfSkKQG9wZW5hcGkucmVzcG9uc2UoKQpAb3BlbmFwaS5yZXNwb25zZSgKICAgIHN0YXR1cz00MDAsIHNjaGVtYT17JyRyZWYnOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRXJyb3InfSkKYXN5bmMgZGVmIHRlc3RfaGFuZGxlcigqYXJncywgKiprd2FyZ3MpOgogICAgYXdhaXQgYXN5bmNpby5zbGVlcCgwKQogICAgcmV0dXJuICdPayEnLCBhcmdzLCBrd2FyZ3MKCgpkb2MgPSAoCiAgICBPcGVuQVBJRG9jKHsKICAgICAgICAnaW5mbyc6IGluZm8sCiAgICB9KQogICAgLmFkZF9wYXJhbWV0ZXIoJ1Rlc3RQYXJhbWV0ZXInKQogICAgLmFkZF90YWcoJ3Rlc3QnLCB7J2Rlc2NyaXB0aW9uJzogJ1Rlc3QgdGFnIGRlc2NyaXB0aW9uJ30pCiAgICAuYWRkX3BhdGgoCiAgICAgICAgJy90ZXN0L3tUZXN0UGFyYW1ldGVyfScsICdwb3N0JywKICAgICAgICB0ZXN0X2hhbmRsZXIuX19vcGVuYXBpX18uZG9jdW1lbnRhdGlvbikKICAgIC5hZGRfc2NoZW1hKCdFcnJvcicsIGVycm9yX3NjaGVtYSkKICAgIC5hZGRfcmVzcG9uc2UoJ0Vycm9yJywgZXJyb3JfcmVzcG9uc2UpCiAgICAuYWRkX3NlY3VyaXR5KCdBcGlLZXknLCAnYXBpS2V5JywgewogICAgICAgICdpbic6ICdoZWFkZXInLAogICAgICAgICduYW1lJzogJ1gtQVBJLUtleScsCiAgICB9KQogICAgLnRvX2RpY3QoKQopCmBgYAo= readmeEtag: '"264bf431e976e1dfadca356518ef3d1d27401cd9"' readmeLastModified: Sun, 08 Apr 2018 10:33:42 GMT repositoryId: 128617517 description: Python library for generate valid OpenAPI v3 specification created: '2018-04-08T08:21:11Z' updated: '2019-02-15T19:24:30Z' language: Python archived: false stars: 1 watchers: 2 forks: 0 owner: lordent logo: https://avatars.githubusercontent.com/u/2070895?v=4 license: Apache-2.0 repoEtag: '"b075945d24c4435a9b153c2a9614ebc183a4fc80329c813e0d7d1ebe9a02cd96"' repoLastModified: Fri, 15 Feb 2019 19:24:30 GMT foundInMaster: true category: Parsers id: f2ed564d12c5e6d231dcce7953cd3d75 - source: openapi3 tags repository: https://github.com/ndexbio/openapi-specification v3: true repositoryMetadata: base64Readme: >- CiMgT3BlbkFQSS1TcGVjaWZpY2F0aW9uClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBhIGRpZ2VzdCBvZiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZG9jdW1lbnRzIGZvciB0aGUgKipOKipldHdvcmsgKipEKiphdGEgKipFeCoqY2hhbmdlIAoqKihOREV4KSBSRVNUIEFQSSoqIHVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgW05ERXggUHJvamVjdF0oaHR0cDovL3d3dy5ob21lLm5kZXhiaW8ub3JnL2luZGV4LykgcHVibGljCnNlcnZlciBhbmQgcmVsYXRlZCBOREV4IHByaXZhdGUgc2VydmVycy4gVGhlIE5ERXggUHJvamVjdCBwcm92aWRlcyBhbiBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYW5kIG9ubGluZSBkYXRhYmFzZSAKY29tbW9ucyB3aGVyZSBzY2llbnRpc3RzIGNhbiB1cGxvYWQsIHNoYXJlLCBhbmQgcHVibGljbHkgZGlzdHJpYnV0ZSBiaW9sb2dpY2FsIG5ldHdvcmtzCiAqKFByYXR0IGV0IGFsLiwgMjAxNSwgQ2VsbCBTeXN0ZW1zIDEsIDMwMi0zMDUsIE9jdG9iZXIgMjgsIDIwMTUgwqkyMDE1IEVsc2V2aWVyIEluYy4KICBbU2NpZW5jZURpcmVjdF0oaHR0cDovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MyNDA1NDcxMjE1MDAxNDc3KSkqLgoKT3BlbkFQSSBpcyBhbiBvcGVuLCBwb3J0YWJsZSBhbmQgdmVuZG9yIG5ldXRyYWwgQVBJIGRlc2NyaXB0aW9uIHN0YW5kYXJkLCBhbmQgaXMgZGVmaW5lZCBieSB0aGUgTGludXggCkZvdW5kYXRpb24gW09wZW5BUEkgSW5pdGlhdGl2ZSAoT0FJKV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgZ292ZXJuaW5nIGJvZHkuIEl0IGlzIGVtcGxveWVkIHdvcmxkd2lkZSBieSAKY29kZSBnZW5lcmF0aW9uLCB0ZXN0aW5nIGFuZCBkb2N1bWVudCBjcmVhdGlvbiB0b29scywgbWFueSBvZiB3aGljaCBhcmUgbGlzdGVkIAogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL0lNUExFTUVOVEFUSU9OUy5tZCkuCiAKVGhlIE9wZW5BUEkgZG9jdW1lbnRzIGNvbnRhaW5lZCBpbiB0aGlzIHJlcG9zaXRvcnkgYXJlIHNwZWNpZmljYWxseSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIApbbmRleHRvb2xzL29wZW5hcGktcmVhZGVyXShodHRwczovL2dpdGh1Yi5jb20vbmRleHRvb2xzL29wZW5hcGktcmVhZGVyKSBhcHBsaWNhdGlvbiwgc28gdGhhdCBOREV4IGRldmVsb3BlcnMgCmNhbiBpbnRlcmFjdGl2ZWx5IHZpZXcgYW5kICAidHJ5IG91dCIgTkRFeCBBUEkgcmVxdWVzdHMsIHRodXMgcHJvdmlkaW5nIHRoZW0gd2l0aCBhIGxvdy1sZXZlbCBBUEkgCmFuZCBkZWJ1Z2dpbmcgZW52aXJvbm1lbnQgYXMgdGhleSBjcmVhdGUgbGFuZ3VhZ2Utc3BlY2lmaWMgc29mdHdhcmUgYXBwbGljYXRpb25zIGFuZCBwcm9ncmFtIGxpYnJhcmllcy4KCkV4Y2VwdCBmb3IgdGhlc2UgZGVyaXZhdGl2ZSBPcGVuQVBJIGRvY3VtZW50cywgYWxsIHJlZmVyZW5jZXMgdG8gdGhlIE5ERXggQVBJLCBzb3VyY2VzIGFuZCBkb2N1bWVudGF0aW9uIAphcmUgY29weXJpZ2h0ZWQ6ICrCqSAyMDEzLTIwMjAsIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIFRoZSBDeXRvc2NhcGUgQ29uc29ydGl1bS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4qICBQbGVhc2UgYWJpZGUgd2l0aCB0aGVpcgpbVGVybXMgb2YgVXNlLCBMaWNlbnNpbmcgYW5kIFNvdXJjZXNdKGh0dHA6Ly93d3cuaG9tZS5uZGV4YmlvLm9yZy9kaXNjbGFpbWVyLWxpY2Vuc2UvKS4KTGlrZXdpc2UsIHRoZSBbU3dhZ2dlci1VSV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpIGRvY3VtZW50IHJlYWRlciB0aGF0IGRpc3BsYXlzIHRoaXMgT3BlbkFQSSAKZG9jdW1lbnQgaXMgY29weXJpZ2h0ZWQgYnkgKlNtYXJ0YmVhciBTb2Z0d2FyZSouIEl0cyBvcGVuLXNvdXJjZSBzb2Z0d2FyZSBsaWNlbnNlIGlzIGZvdW5kIApbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvYmxvYi9tYXN0ZXIvTElDRU5TRSkuCgpUaGUgY3VycmVudGx5IHN1cHBvcnRlZCBSRVNUIEFQSSBhbmQgc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uIAppcyBmb3VuZCBhdCB0aGUgW05ERXggUHJvamVjdCB3ZWJzaXRlXShodHRwOi8vd3d3LmhvbWUubmRleGJpby5vcmcvaW5kZXgvKS4K readmeEtag: '"03e0423075a14aefecc08c229b22258c02f41532"' readmeLastModified: Thu, 17 Dec 2020 19:16:38 GMT repositoryId: 117026992 description: >- OpenAPI specification for the ndexbio.org rest server api and used by ndextools/openapi-reader. This repository is created by Mike Fidel and transferred to NDEx project in March 2018. created: '2018-01-11T00:10:49Z' updated: '2020-12-17T19:16:41Z' language: null archived: false stars: 1 watchers: 9 forks: 1 owner: ndexbio logo: https://avatars.githubusercontent.com/u/8965609?v=4 license: MIT repoEtag: '"dac132aefa8f7f915275d4940552b079eef181ead9c93e742a14782102439215"' repoLastModified: Thu, 17 Dec 2020 19:16:41 GMT foundInMaster: true category: Parsers id: 3b65be6a3615646d98a00c8f8617901a - source: openapi3 tags repository: https://github.com/mariotoffia/openapi-senml v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIDMuMCBTZW5NTCBTcGVjaWZpY2F0aW9uCkEgT3BlbiBBUEkgMy54IHNwZWNpZmljYXRpb24gKHN3YWdnZXIgbmV4dCBnZW4pIGZvciBTZW5NTCAoU2Vuc29yIE1lYXN1cmVtZW50IExpc3QpIGZvciBzZW5zb3IgKElvVCkgY29tbXVuaWNhdGlvbiBhbmQgYWN0dWF0aW9uIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODQyOCkuCgojIyBHb2FsClRoaXMgc3BlY2lmaWNhdGlvbiBzdHJpdmVzIHRvIGVuY2Fwc3VsYXRlIHRoZSBbU2VuTUxdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4NDI4KSBmdW5jdGlvbmFsaXR5IHVzaW5nIGEgcGxhaW4gT3BlbkFQSSAzLnggc3BlY2lmaWNhdGlvbiBhbmQgYSBzYW1wbGUgaW1wbGVtZW50YXRpb24gaW4gQyMsIEtvdGxpbiwgQywgYW5kIEphdmFzY3JpcHQgYm90aCBvbiBzZXJ2ZXIgYW5kIGNsaWVudCBzaWRlLgo= readmeEtag: '"e5a309984cfe63cfc070d4327c0b95bb8cb527f9"' readmeLastModified: Mon, 08 Jul 2019 10:38:55 GMT repositoryId: 195179871 description: >- A Open API 3.x specification (swagger next gen) for SenML (Sensor Measurement List) for sensor (IoT) communication and actuation (https://tools.ietf.org/html/rfc8428) created: '2019-07-04T06:14:19Z' updated: '2022-09-12T00:22:21Z' language: null archived: false stars: 1 watchers: 1 forks: 0 owner: mariotoffia logo: https://avatars.githubusercontent.com/u/1716527?v=4 license: Apache-2.0 repoEtag: '"32f1cf296d1c81d4ef2901ab948883342485dadf70e5ddf409620bee7f0a539c"' repoLastModified: Mon, 12 Sep 2022 00:22:21 GMT foundInMaster: true category: Parsers id: 0f79e8030eec5efa7008eb163f8e07a9 - source: openapi3 tags repository: https://github.com/hbhb-devloper/system-center v3: true repositoryMetadata: base64Readme: IyBzeXN0ZW0tY2VudGVyCgrns7vnu5/kuK3lv4MK readmeEtag: '"8e851c3c4a90dcb30731a39297a51cadee762d85"' readmeLastModified: Sat, 20 Mar 2021 11:43:18 GMT repositoryId: 349708027 description: 财务管理系统-后端服务-系统中心 created: '2021-03-20T11:38:58Z' updated: '2023-10-17T07:16:27Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"a4bbdcc7b599c238e5912132279a6237c5d6ecfa74d58249dbcb1ead1e5b10c4"' repoLastModified: Tue, 17 Oct 2023 07:16:27 GMT foundInMaster: true category: - Testing - Server Implementations id: b2bf7026cfa6d833240434aa6950add9 - source: openapi3 tags repository: https://github.com/reschoene/taskplanneraws v3: true id: 833dc8c7d444e61f954edb8555cfe7f1 repositoryMetadata: base64Readme: >- IyBUYXNrUGxhbm5lciBmb3IgQVdTCkEgc2ltcGxlIHRhc2sgcGxhbm5lciBBUEkgZm9yIGxpc3RpbmcgdGFza3MgZ3JvdXBlZCBieSBsaXN0cyBhbmQgbWFuYWdpbmcgdGhlbQoKIyMgU3RhY2sKLSBLb3RsaW4sIEphdmEgd2l0aCBHcmFhbFZNIChmb3IgbmF0aXZlIGNvbXBpbGF0aW9uKQotIFF1YXJrdXMsIHRoZSBTdXBlcnNvbmljIFN1YmF0b21pYyBKYXZhIEZyYW1ld29yay4KLSBUZXN0Q29udGFpbmVycywgUkVTVEVhc3ksIFJFU1RBc3N1cmVkCi0gQVdTIExhbWJkYSwgQVdTIEFQSSBHYXRld2F5LCBBV1MgRHluYW1vZGIKLSBBV1MgU0FNIENMSSAoZm9yIGxvY2FsIHRlc3RpbmcgYW5kIEFXUyBEZXBsb3kpOiBTQU0gPSBTZXJ2ZXJsZXNzIEFwcGxpY2F0aW9uIE1vZGVsCgojIyBQcm9qZWN0IHN0YXR1cyAtIFNvbmFyIGFuYWx5c2lzClshW1F1YWxpdHkgZ2F0ZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9xdWFsaXR5X2dhdGU/cHJvamVjdD1yZXNjaG9lbmVfdGFza3BsYW5uZXJhd3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1yZXNjaG9lbmVfdGFza3BsYW5uZXJhd3MpCgpbIVtTZWN1cml0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXJlc2Nob2VuZV90YXNrcGxhbm5lcmF3cyZtZXRyaWM9c2VjdXJpdHlfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9cmVzY2hvZW5lX3Rhc2twbGFubmVyYXdzKQoKWyFbQ29kZSBTbWVsbHNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXJlc2Nob2VuZV90YXNrcGxhbm5lcmF3cyZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1yZXNjaG9lbmVfdGFza3BsYW5uZXJhd3MpCgpbIVtCdWdzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1yZXNjaG9lbmVfdGFza3BsYW5uZXJhd3MmbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1yZXNjaG9lbmVfdGFza3BsYW5uZXJhd3MpCgpbIVtWdWxuZXJhYmlsaXRpZXNdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXJlc2Nob2VuZV90YXNrcGxhbm5lcmF3cyZtZXRyaWM9dnVsbmVyYWJpbGl0aWVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9cmVzY2hvZW5lX3Rhc2twbGFubmVyYXdzKQoKWyFbQ292ZXJhZ2VdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXJlc2Nob2VuZV90YXNrcGxhbm5lcmF3cyZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1yZXNjaG9lbmVfdGFza3BsYW5uZXJhd3MpCgojIyBCdWlsZCBhbmQgRGVwbG95IApUaGVyZSBhcmUgdHdvIGRlcGxveSBvcHRpb25zIGF2YWlsYWJsZTogSlZNIGFuZCBuYXRpdmUgZXhlY3V0YWJsZXMuIEJlbGxvdyBhcmUgdGhlIGluc3RydWN0aW9ucyBmb3IgZWFjaCBvbmUKCiMjIyBPcHRpb24gMSAtIEJ1aWxkaW5nIGFuZCBkZXBsb3lpbmcgbmF0aXZlIGV4ZWN1dGFibGUKCiMjIyMgQ3JlYXRpbmcgYSBuYXRpdmUgZXhlY3V0YWJsZQpZb3UgY2FuIGNyZWF0ZSBhIG5hdGl2ZSBleGVjdXRhYmxlIHVzaW5nOgpgYGBzaGVsbCBzY3JpcHQKLi9ncmFkbGV3IGJ1aWxkIC1EcXVhcmt1cy5wYWNrYWdlLnR5cGU9bmF0aXZlCmBgYAoKT3IsIGlmIHlvdSBkb24ndCBoYXZlIEdyYWFsVk0gaW5zdGFsbGVkLCB5b3UgY2FuIHJ1biB0aGUgbmF0aXZlIGV4ZWN1dGFibGUgYnVpbGQgaW4gYSBjb250YWluZXIgdXNpbmc6CmBgYHNoZWxsIHNjcmlwdAouL2dyYWRsZXcgYnVpbGQgLURxdWFya3VzLnBhY2thZ2UudHlwZT1uYXRpdmUgLURxdWFya3VzLm5hdGl2ZS5jb250YWluZXItYnVpbGQ9dHJ1ZQpgYGAKCiMjIyMgRGVwbG95aW5nIGEgbmF0aXZlIGV4ZWN1dGFibGUKIC0gWW91IGNhbiB0aGVuIHRlc3QgdGhlIGV4ZWN1dGFibGUgbG9jYWxseSB3aXRoIHNhbSBsb2NhbApgc2FtIGxvY2FsIHN0YXJ0LWFwaSAtLXRlbXBsYXRlIGJ1aWxkL3NhbS5uYXRpdmUueWFtbGAKCiAtIFRvIGRlcGxveSB0byBBV1MgTGFtYmRhOgpgc2FtIGRlcGxveSAtdCBidWlsZC9zYW0ubmF0aXZlLnlhbWwgLWdgCgojIyMgT3B0aW9uIDIgLSBCdWlsZGluZyBhbmQgZGVwbG95aW5nIEpWTSBleGVjdXRhYmxlCgojIyMjIENyZWF0aW5nIGEgSlZNIGV4ZWN1dGFibGUKWW91IGNhbiBjcmVhdGUgYSBuYXRpdmUgZXhlY3V0YWJsZSB1c2luZzoKYGBgc2hlbGwgc2NyaXB0Ci4vZ3JhZGxldyBidWlsZApgYGAKCiMjIyMgRGVwbG95aW5nIGEgSlZNIGV4ZWN1dGFibGUKLSBZb3UgY2FuIHRoZW4gdGVzdCB0aGUgZXhlY3V0YWJsZSBsb2NhbGx5IHdpdGggc2FtIGxvY2FsCiAgYHNhbSBsb2NhbCBzdGFydC1hcGkgLS10ZW1wbGF0ZSBidWlsZC9zYW0uanZtLnlhbWxgCgotIFRvIGRlcGxveSB0byBBV1MgTGFtYmRhOgogIGBzYW0gZGVwbG95IC10IGJ1aWxkL3NhbS5qdm0ueWFtbCAtZ2AKCgojIyMgRGVwbG95IGVycm9yIHRpcHMKSWYgeW91IGdldCBhbiBlcnJvciBzaW1pbGFyIHRvIHRoaXMgb25lOiAiQW4gZXJyb3Igb2NjdXJyZWQgKFNpZ25hdHVyZURvZXNOb3RNYXRjaCkgd2hlbiBjYWxsaW5nIHRoZSBDcmVhdGVDaGFuZ2VTZXQgb3BlcmF0aW9uOiBTaWduYXR1cmUgZXhwaXJlZDogMjAyMjA2MTlUMTkzMTE5WiBpcyBub3cgZWFybGllciB0aGFuIDIwMjIwNjE5VDE5MzYwNFogKDIwMjIwNjE5VDE5NDEwNFogLSA1IG1pbi4pIgpydW4gZm9sbG93aW5nIGNvbW1hbmQgdG8gc3luYyB5b3VyIFBDIGRhdGUgYW5kIHRpbWU6IApgYGBzaGVsbCBzY3JpcHQKc3VkbyBkYXRlIC1zICIkKHdnZXQgLXFTTy0gLS1tYXgtcmVkaXJlY3Q9MCBnb29nbGUuY29tIDI+JjEgfCBncmVwIERhdGU6IHwgY3V0IC1kJyAnIC1mNS04KVoiCmBgYAoKCiMjIFJ1bm5pbmcgdGhlIGFwcGxpY2F0aW9uIGluIGRldiBtb2RlCkFzIHRoaXMgaXMgYSBxdWFya3VzIGFwcGxpY2F0aW9uLCB5b3UgY2FuIHJ1biBpdCB1c2luZyBpdHMgZGV2ZWxvcGVyIG1vZGUgdGhhdCBlbmFibGVzIGxpdmUgY29kaW5nIHVzaW5nOgpgYGBzaGVsbCBzY3JpcHQKLi9ncmFkbGV3IHF1YXJrdXNEZXYKYGBgCgpvciBpbiBkZWJ1ZyBtb2RlCmBgYHNoZWxsIHNjcmlwdAouL2dyYWRsZXcgcXVhcmt1c0RldiAtLWRlYnVnCmBgYAoKIyMgUnVubmluZyBkeW5hbW9EYiBsb2NhbGx5IGluIGRldiBtb2RlCmBgYHNoZWxsIHNjcmlwdApkb2NrZXIgcnVuIC0tcHVibGlzaCA4MDAwOjgwMDAgYW1hem9uL2R5bmFtb2RiLWxvY2FsOjEuMTEuNDc3IC1qYXIgRHluYW1vREJMb2NhbC5qYXIgLWluTWVtb3J5IC1zaGFyZWREYgpgYGAKVGhpcyBzdGFydHMgYSBEeW5hbW9EQiBpbnN0YW5jZSB0aGF0IGlzIGFjY2Vzc2libGUgb24gcG9ydCA4MDAwLiBZb3UgY2FuIGNoZWNrIGl04oCZcyBydW5uaW5nIGJ5IGFjY2Vzc2luZyB0aGUgd2ViIHNoZWxsIG9uIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zaGVsbC4KT3BlbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NoZWxsIiBpbiB5b3VyIGJyb3dzZXIuCgpDb3B5IGFuZCBwYXN0ZSB0aGUgZm9sbG93aW5nIGNvZGUgdG8gdGhlIHNoZWxsIGFuZCBydW4gaXQ6CgpgYGBzaGVsbCBzY3JpcHQgCnZhciBwYXJhbXMgPSB7ClRhYmxlTmFtZTogJ1Rhc2tMaXN0cycsCktleVNjaGVtYTogW3sgQXR0cmlidXRlTmFtZTogJ2lkJywgS2V5VHlwZTogJ0hBU0gnIH1dLApBdHRyaWJ1dGVEZWZpbml0aW9uczogW3sgIEF0dHJpYnV0ZU5hbWU6ICdpZCcsIEF0dHJpYnV0ZVR5cGU6ICdTJywgfV0sClByb3Zpc2lvbmVkVGhyb3VnaHB1dDogeyBSZWFkQ2FwYWNpdHlVbml0czogMSwgV3JpdGVDYXBhY2l0eVVuaXRzOiAxLCB9Cn07CgpkeW5hbW9kYi5jcmVhdGVUYWJsZShwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkgewppZiAoZXJyKSBwcEpzb24oZXJyKTsKZWxzZSBwcEpzb24oZGF0YSk7Cgp9KTsKCnBhcmFtcyA9IHsKVGFibGVOYW1lOiAnVGFza3MnLApLZXlTY2hlbWE6IFt7IEF0dHJpYnV0ZU5hbWU6ICdpZCcsIEtleVR5cGU6ICdIQVNIJyB9XSwKQXR0cmlidXRlRGVmaW5pdGlvbnM6IFt7ICBBdHRyaWJ1dGVOYW1lOiAnaWQnLCBBdHRyaWJ1dGVUeXBlOiAnUycsIH1dLApQcm92aXNpb25lZFRocm91Z2hwdXQ6IHsgUmVhZENhcGFjaXR5VW5pdHM6IDEsIFdyaXRlQ2FwYWNpdHlVbml0czogMSwgfQp9OwoKZHluYW1vZGIuY3JlYXRlVGFibGUocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHsKaWYgKGVycikgcHBKc29uKGVycik7CmVsc2UgcHBKc29uKGRhdGEpOwoKfSk7CgpwYXJhbXMgPSB7ClRhYmxlTmFtZTogJ1F1b3RhdGlvbnMnLApLZXlTY2hlbWE6IFt7IEF0dHJpYnV0ZU5hbWU6ICdpZCcsIEtleVR5cGU6ICdIQVNIJyB9XSwKQXR0cmlidXRlRGVmaW5pdGlvbnM6IFt7ICBBdHRyaWJ1dGVOYW1lOiAnaWQnLCBBdHRyaWJ1dGVUeXBlOiAnUycsIH1dLApQcm92aXNpb25lZFRocm91Z2hwdXQ6IHsgUmVhZENhcGFjaXR5VW5pdHM6IDEsIFdyaXRlQ2FwYWNpdHlVbml0czogMSwgfQp9OwoKZHluYW1vZGIuY3JlYXRlVGFibGUocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHsKaWYgKGVycikgcHBKc29uKGVycik7CmVsc2UgcHBKc29uKGRhdGEpOwoKfSk7CmBgYAoKIyMgYWNjZXNzaW5nIHN3YWdnZXIgVUkKaHR0cDovL2xvY2FsaG9zdDo4MDgwL3Evc3dhZ2dlci11aQoKIyMgYWNjZXNzaW5nIE9wZW5BUEkgZGVmaW5pdGlvbgpodHRwOi8vbG9jYWxob3N0OjgwODAvcS9vcGVuYXBpCgojIyBjcmVhdGluZyBkeW5hbW9kYiB0YWJsZSBvbiB5b3VyIGF3czoKYGBgc2hlbGwgc2NyaXB0IAphd3MgZHluYW1vZGIgY3JlYXRlLXRhYmxlIC0tdGFibGUtbmFtZSBUYXNrTGlzdHMgXAotLWF0dHJpYnV0ZS1kZWZpbml0aW9ucyBBdHRyaWJ1dGVOYW1lPWlkLEF0dHJpYnV0ZVR5cGU9UyBcCi0ta2V5LXNjaGVtYSBBdHRyaWJ1dGVOYW1lPWlkLEtleVR5cGU9SEFTSCBcCi0tcHJvdmlzaW9uZWQtdGhyb3VnaHB1dCBSZWFkQ2FwYWNpdHlVbml0cz0xLFdyaXRlQ2FwYWNpdHlVbml0cz0xCmBgYAoKYGBgc2hlbGwgc2NyaXB0IAphd3MgZHluYW1vZGIgY3JlYXRlLXRhYmxlIC0tdGFibGUtbmFtZSBUYXNrcyBcCi0tYXR0cmlidXRlLWRlZmluaXRpb25zIEF0dHJpYnV0ZU5hbWU9aWQsQXR0cmlidXRlVHlwZT1TIFwKLS1rZXktc2NoZW1hIEF0dHJpYnV0ZU5hbWU9aWQsS2V5VHlwZT1IQVNIIFwKLS1wcm92aXNpb25lZC10aHJvdWdocHV0IFJlYWRDYXBhY2l0eVVuaXRzPTEsV3JpdGVDYXBhY2l0eVVuaXRzPTEKYGBgCgpgYGBzaGVsbCBzY3JpcHQgCmF3cyBkeW5hbW9kYiBjcmVhdGUtdGFibGUgLS10YWJsZS1uYW1lIFF1b3RhdGlvbnMgXAotLWF0dHJpYnV0ZS1kZWZpbml0aW9ucyBBdHRyaWJ1dGVOYW1lPWlkLEF0dHJpYnV0ZVR5cGU9UyBcCi0ta2V5LXNjaGVtYSBBdHRyaWJ1dGVOYW1lPWlkLEtleVR5cGU9SEFTSCBcCi0tcHJvdmlzaW9uZWQtdGhyb3VnaHB1dCBSZWFkQ2FwYWNpdHlVbml0cz0xLFdyaXRlQ2FwYWNpdHlVbml0cz0xCmBgYAoKIyMjIFNvbmFyQ2xvdWQgSW50ZWdyYXRpb246CkNoYW5nZSBzb25hcnF1YmUgcHJvcGVydGllcyBvbiBidWlsZC5ncmFkbGUgZmlsZSB0byB5b3VyIFNvbmFyQ2xvdWQgY29uZmlncwoKIyMjIyBUbyBnZW5lcmF0ZSBKYUNvQ28gY292ZXJhZ2UgcmVwb3J0cywgcnVuOgpgYGBzaGVsbCBzY3JpcHQKLi9ncmFkbGV3IHRlc3QKYGBgCgojIyMjIFRvIHVwbG9hZCBjb3ZlcmFnZSBkYXRhIHRvIFNvbmFyQ2xvdWQ6CmBgYHNoZWxsIHNjcmlwdCAKZXhwb3J0IFNPTkFSX1RPS0VOPVlPVVJfU09OQVJfS0VZCmBgYAoKYGBgc2hlbGwgc2NyaXB0IAouL2dyYWRsZXcgc29uYXJxdWJlCmBgYAo= readmeEtag: '"77e365d6105adc00337f536b2220f6d77f10bdf2"' readmeLastModified: Sun, 31 Jul 2022 22:08:12 GMT repositoryId: 505209983 description: >- A simple task planner API for listing tasks grouped by lists and managing them. created: '2022-06-19T20:15:01Z' updated: '2022-07-04T20:02:39Z' language: Kotlin archived: false stars: 1 watchers: 1 forks: 0 owner: reschoene logo: https://avatars.githubusercontent.com/u/32646475?v=4 license: MIT repoEtag: '"c03e8829cd5d32bca6c9f608f751b043b759770b92c5d744218595610dfa7110"' repoLastModified: Mon, 04 Jul 2022 20:02:39 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/paulotrc/svc-serasa v3: true id: 3edcc92b3bb1f97b3e810d22c4a344dc repositoryMetadata: base64Readme: IyBzdmMtc2VyYXNh readmeEtag: '"69618ab6d9e10f0db687c1606f40535075d02d09"' readmeLastModified: Tue, 21 Feb 2023 04:17:21 GMT repositoryId: 599616549 description: Microservice Serasa created: '2023-02-09T14:19:46Z' updated: '2023-02-14T03:17:22Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: paulotrc logo: https://avatars.githubusercontent.com/u/21349130?v=4 license: Apache-2.0 repoEtag: '"e02cfc8f1f2f41765663fc28cc918328fc39fd69a3587d395b719b088fe531ff"' repoLastModified: Tue, 14 Feb 2023 03:17:22 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/paulotrc/svc-imovel v3: true id: 4613404c9310e7e7b5632a651f605e51 repositoryMetadata: base64Readme: IyBzdmMtaW1vdmVs readmeEtag: '"74e32876e42817e98d1e4b3cb70130898be894a7"' readmeLastModified: Tue, 21 Feb 2023 03:20:31 GMT repositoryId: 601315353 description: Microservice Imovel created: '2023-02-13T20:10:59Z' updated: '2023-02-14T20:36:43Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: paulotrc logo: https://avatars.githubusercontent.com/u/21349130?v=4 license: Apache-2.0 repoEtag: '"dec5853fa6ff3bb969bc6a55e235dda8be87a355ff50256fb1b858dbe6d925a0"' repoLastModified: Tue, 14 Feb 2023 20:36:43 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/shocklateboy92/erabikata v3: true repositoryMetadata: base64Readme: >- IyBFcmFiaWthdGEgKOmBuOOBs+aWuSkKClRoaXMgaXMgYSBwcm9ncmFtIEkgd3JvdGUgdG8gaGVscCB0ZWFjaCBteXNlbGYgSmFwYW5lc2UgdGhyb3VnaCBhbmltZS5cCldpdGggaXQsIEkgd2VudCBmcm9tICJub3Qga25vd2luZyBhIHNpbmdsZSB3b3JkIG9mIEphcGFuZXNlIiB0byAiYWJsZSB0byBnbyBiYWNrcGFja2luZyB0aHJvdWdoIEphcGFuIiBpbiBfYWJvdXQgOSBtb250aHNfIQoKIVtTY3JlZW5zaG90IDEsIGRlc2t0b3AgbGF5b3V0XSguL3NjcmVlbnNob3QxLnBuZykKCkl0IHN0YXJ0ZWQgYXMgYSBxdWljayBiYXNoIHNjcmlwdCB0byBncmVwIHRoZSBzdWJ0aXRsZSBmaWxlcyBvZiB2YXJpb3VzIGFuaW1lIGZvciBleGFtcGxlcyBvZiB3b3JkcyBJIGhhZCB0byBsZWFybi4gQnV0IG92ZXIgdGltZQo= readmeEtag: '"a290a7d6878d045c974611269a61c8476c0ca393"' readmeLastModified: Tue, 16 Aug 2022 05:37:07 GMT repositoryId: 316345095 description: >- This is a program I wrote to help teach myself Japanese through anime. With it, I went from "not knowing a single word of Japanese" to "able to go backpacking through Japan" in about 9 months! created: '2020-11-26T22:01:38Z' updated: '2023-11-28T20:56:53Z' language: TypeScript archived: true stars: 1 watchers: 3 forks: 0 owner: shocklateboy92 logo: https://avatars.githubusercontent.com/u/856493?v=4 repoEtag: '"0022dbc165eac724089a2f96313da6c41f8841b786d9667c4c0bb8a78553fc65"' repoLastModified: Tue, 28 Nov 2023 20:56:53 GMT foundInMaster: true id: 5093523d516b0eda1560ca8fb9daeef0 category: Server Implementations - source: openapi3 tags repository: https://github.com/1bitrs/cibo v3: true repositoryMetadata: base64Readme: >- IyMgQ2libwohW1B5dGhvbiBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi12My43LjUtYnJpZ2h0Z3JlZW4pCiFbU3lzdGVtIFBsYXRmb3JtXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3BsYXRmb3JtLXVidW50dS1icmlnaHRncmVlbi5zdmcpCiFbVHJhdmlzIENJXShodHRwczovL2FwcC50cmF2aXMtY2kuY29tL3lhbmdmYW45NzAyL2NpYm8uc3ZnP2JyYW5jaD1tYXN0ZXImc3RhdHVzPXVua25vd24pCiFbQ292ZXJhZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY29kZWNvdi9jL2dpdGh1Yi95YW5nZmFuOTcwMi9jaWJvKQpbIVtDb2RlIHN0eWxlOiBibGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9wc2YvYmxhY2spCiFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS95YW5nZmFuOTcwMi9jaWJvKQohW1JlcG8gU2l6ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvcmVwby1zaXplL3lhbmdmYW45NzAyL2NpYm8pCgoKIyMgSW5zdGFsbGluZwpgYGBzaGVsbApweXRob24gc2V0dXAucHkgaW5zdGFsbApgYGAKCiMjIEEgU2ltcGxlIEV4YW1wbGUKYGBgcHl0aG9uCmZyb20gY2libyBpbXBvcnQgSGFuZGxlciwgU2ltcGxlQ29udGV4dCwgQmx1ZXByaW50LCBCYXNlQXBpUXVlcnksIEJhc2VBcGlCb2R5CgphcGkgPSBCbHVlcHJpbnQoImFwaSIpCgpAYXBpLnBvc3QoIi9lY2hvIikKY2xhc3MgRWNob0hhbmRsZXIoSGFuZGxlcik6CgogICAgZGVjb3JhdG9ycyA9IFt0b2tlbl9hdXRoXQoKICAgIGNsYXNzIFF1ZXJ5KEJhc2VBcGlRdWVyeSk6CiAgICAgICAgYTogc3RyCiAgICAgICAgYjogT3B0aW9uYWxbTGlzdFtpbnRdXQogICAgICAgIGM6IE9wdGlvbmFsW0RpY3Rbc3RyLCBpbnRdXQoKICAgIGNsYXNzIEJvZHkoQmFzZUFwaUJvZHkpOgogICAgICAgIGQ6IFNldFtpbnRdCiAgICAgICAgZTogVHVwbGVbRGljdFtpbnQsIExpc3RdLCBEaWN0W2ludCwgTGlzdF1dCgogICAgZGVmIGhhbmRsZShzZWxmLCBjb250ZXh0OiBTaW1wbGVDb250ZXh0LCBxdWVyeTogUXVlcnksIGJvZHk6IEJvZHkpOgogICAgICAgICIiImVjaG8gdGhlIHJlY2V2aWVkIHBhcmFtcyIiIgogICAgICAgIHJldHVybiBjb250ZXh0LnN1Y2Nlc3MoCiAgICAgICAgICAgIGRhdGE9ZiJhOiB7cXVlcnkuYX0sIGI6IHtxdWVyeS5ifSwgYzoge3F1ZXJ5LmN9LCBkOiB7Ym9keS5kfSwgZToge2JvZHkuZX0iCiAgICAgICAgKQoKYGBgClVzZSBhIGN1c3RvbSBtb2RlbCBhbmQgdmFsaWRhdGUgZnVuY3Rpb24KYGBgcHl0aG9uCkBhcGkucG9zdCgiL3VzZXIiKQpjbGFzcyBVc2VySGFuZGxlcihIYW5kbGVyKToKICAgIGNsYXNzIEJvZHkoQmFzZUFwaUJvZHkpOgogICAgICAgIGNsYXNzIFVzZXIoQmFzZU1vZGVsKToKICAgICAgICAgICAgbmFtZTogc3RyID0gRmllbGQoZGVzY3JpcHRpb249IuWnk+WQjSIpCiAgICAgICAgICAgIGVtYWlsczogT3B0aW9uYWxbTGlzdFtzdHJdXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSLpgq7nrrEiKQoKICAgICAgICAgICAgQGNsYXNzbWV0aG9kCiAgICAgICAgICAgIGRlZiB2YWxpZGF0ZShjbHMsIHZhbHVlOiBBbnkpOgogICAgICAgICAgICAgICAgb2JqID0gY2xzKCoqdmFsdWUpCiAgICAgICAgICAgICAgICBpZiBvYmouZW1haWxzOgogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBhbGwoCiAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlLm1hdGNoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIiXlswLTlhLXpBLVpfXXswLDE5fUBbMC05YS16QS1aXXsxLDEzfVwuW2NvbSxjbixuZXRdezEsM30kIiwgZW1haWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlbWFpbCBpbiBvYmouZW1haWxzCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICApOgogICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJlbWFpbCBpcyBub3QgdmFsaWQiKQogICAgICAgICAgICAgICAgcmV0dXJuIG9iagoKICAgICAgICB1c2VyOiBVc2VyCiAgICAgICAgaW52aXRlcjogc3RyCgogICAgZGVmIGhhbmRsZShzZWxmLCBjb250ZXh0OiBTaW1wbGVDb250ZXh0LCBib2R5OiBCb2R5KToKICAgICAgICAiIiJjdXN0b20gbW9kZWwgYW5kIHZhbGlkYXRlIiIiCiAgICAgICAgcmV0dXJuIGNvbnRleHQuc3VjY2Vzcyh1c2VyPWJvZHkudXNlciwgaW52aXRlcj1ib2R5Lmludml0ZXIpCmBgYAoKIyMgRGV2CnB1bGwgYHN0dWJzYCBmaWxlcwpgYGBzaGVsbApnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUKYGBgCgojIyBEb2NzCltodHRwOi8vMTI3LjAuMC4xOjUwMDAvZG9jc10oaHR0cDovLzEyNy4wLjAuMTo1MDAwL2RvY3MpCgojIyBDb250cmlidXRpbmcgR3VpZGUKIyMjIEZpcnN0IHRpbWUgc2V0dXAKQ3JlYXRlIGEgdmlydHVhbCBlbnZpcm9ubWVudCBhbmQgaW5zdGFsbCByZXF1aXJlbWVudHM6CmBgYGJhc2gKJCBweXRob24zIC1tIHZlbnYgZW52CiQgc291cmNlIGVudi9iaW4vYWN0aXZhdGUKJCBweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcCBzZXR1cHRvb2xzCiQgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzL2Rldi50eHQKJCBwaXAgaW5zdGFsbCAtZSAuCiQgcHJlLWNvbW1pdCBpbnN0YWxsCmBgYAo= readmeEtag: '"df307d04a11da549db3a7ae3a4c0dadcb9e16f8f"' readmeLastModified: Tue, 17 May 2022 03:19:28 GMT repositoryId: 359301009 description: A web framework that is composed of flask, pydantic, and openapi 3. created: '2021-04-19T02:07:52Z' updated: '2023-09-12T09:44:57Z' language: Python archived: true stars: 1 watchers: 2 forks: 0 owner: 1bitrs logo: https://avatars.githubusercontent.com/u/41955644?v=4 license: MIT repoEtag: '"4be1023fda01d5f3e4e420277ba87e5c6a711a0874f1d2c7a68947b0d535816e"' repoLastModified: Tue, 12 Sep 2023 09:44:57 GMT foundInMaster: true category: Data Validators id: c790c04a41fae48236e11b8fbfa78f46 oldLocations: - https://github.com/whitewindss/cibo - source: - openapi3 tags - openapi31 tags repository: https://github.com/api-flows/api-flows-studio v3: true v3_1: true id: 49c00ed55edcee7a3f8e051e5e1b6334 repositoryMetadata: base64Readme: >- IyBBUEkgRmxvd3MgU3R1ZGlvCgpBUEkgd29ya2Zsb3cgdmlld2VyLgoKIyMgT3ZlcnZpZXcKClRoZSBBUEkgRmxvd3MgU3R1ZGlvIGlzIGEgd2ViIGFwcGxpY2F0aW9uIHRoYXQgbG9hZHMgYW5kIGRpc3BsYXlzIGFuIE9wZW5BUEkgd29ya2Zsb3cgZmlsZSwgYmFzZWQgb24gdGhlIFtPQUkgQXJhenpvIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvQXJhenpvLVNwZWNpZmljYXRpb24vKS4KCjxwIGFsaWduPSJjZW50ZXIiPgogICAgPGltZyBzcmM9ImhvbWUuZ2lmIj4KPC9wPgoKIyMgQWNjZXNzIHRoZSB3ZWIgc2l0ZQoKVHJ5IGl0IG91dCBvbiBbYXBpLWZsb3dzLmNvbV0oaHR0cHM6Ly9hcGktZmxvd3MuY29tLykKCiMjIFJ1biBvbiBHaXRwb2QKClshW09wZW4gaW4gR2l0cG9kXShodHRwczovL2dpdHBvZC5pby9idXR0b24vb3Blbi1pbi1naXRwb2Quc3ZnKV0oaHR0cHM6Ly9naXRwb2QuaW8vI2h0dHBzOi8vZ2l0aHViLmNvbS9BUEktRmxvd3MvYXBpLWZsb3dzLXN0dWRpby90cmVlL21haW4pCgoKIyMgUnVuIG9uIGxvY2FsCgpDbG9uZSBmcm9tIHRoZSBHaXRIdWIgcmVwb3NpdG9yeQoKYGBgYmFzaAogIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vQVBJLUZsb3dzL2FwaS1mbG93cy1zdHVkaW8uZ2l0CiAgY2QgYXBpLWZsb3dzLXN0dWRpbwogIG12biBzcHJpbmctYm9vdDpydW4gLURza2lwLmZyb250ZW5kLmJ1aWxkPWZhbHNlCmBgYAo= readmeEtag: '"55f24c71d7032a7513376c3a4fe65828fdaf7215"' readmeLastModified: Tue, 18 Jun 2024 18:37:39 GMT repositoryId: 736327040 description: 'Visualize OpenAPI (Arazzo) workflows ' created: '2023-12-27T15:51:24Z' updated: '2024-07-06T15:10:22Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: API-Flows logo: https://avatars.githubusercontent.com/u/153562650?v=4 license: Apache-2.0 repoEtag: '"d0836b24a1bf387f6bf42a910b5bda736091bb25c9960be96a0251f272be7de7"' repoLastModified: Sat, 06 Jul 2024 15:10:22 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/deepakbhalla/springboot-jasypt-encryption-decryption v3: true id: 05121fe4ec0861b0701ed9dabde1661d repositoryMetadata: base64Readme: >- IyBzcHJpbmdib290LWphc3lwdC1lbmNyeXB0aW9uLWRlY3J5cHRpb24NCiANCkFwcGxpY2F0aW9uIHRvIGRlbW9uc3RyYXRlIHRoZSB1c2Ugb2YNCkphc3lwdCB0byBlbmNyeXB0IGFuZCBkZWNyeXB0IGFuZCBzZW5zaXRpdmUgdmFsdWUgaW4gdGhlIGFwcGxpY2F0aW9uLg0KDQojIyMgV2hhdCBpcyBKYXN5cHQNCg0KSmFzeXB0IHN0YW5kcyBmb3IgJ0phdmEgU2ltcGxpZmllZCBFbmNyeXB0aW9uJw0KDQpKYXN5cHQgaXMgYSBqYXZhIGxpYnJhcnkgd2hpY2ggYWxsb3dzIHRoZSBkZXZlbG9wZXIgdG8gYWRkIGJhc2ljIGVuY3J5cHRpb24gY2FwYWJpbGl0aWVzIHRvIGhpcy9oZXIgcHJvamVjdHMgd2l0aCANCm1pbmltdW0gZWZmb3J0LCBhbmQgd2l0aG91dCB0aGUgbmVlZCBvZiBoYXZpbmcgZGVlcCBrbm93bGVkZ2Ugb24gaG93IGNyeXB0b2dyYXBoeSB3b3Jrcy4NCg0KIyMjIFNwcmluZyBCb290IEphc3lwdCBEZXBlbmRlbmN5DQoNCiFbaW1nLnBuZ10oc2NyZWVuc2hvdHMvamFzeXB0X212bl9kZXBlbmRlbmN5LnBuZykNCg0KIyMjIEphc3lwdCBTZWNyZXQgUGFzc3dvcmQNCg0KUHJvdmlkZWQgYXMgVk0gYXJndW1lbnQ6IC1EamFzeXB0LmVuY3J5cHRvci5wYXNzd29yZD1teXBhc3N3b3JkDQoNCiFbamFzeXB0X3Bhc3N3b3JkX3ZtX2FyZ3VtZW50LnBuZ10oc2NyZWVuc2hvdHMlMkZqYXN5cHRfcGFzc3dvcmRfdm1fYXJndW1lbnQucG5nKQ0KDQojIyMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uDQoNCk9wZW5BUEkgc3dhZ2dlciBzaG93cyB0aGUgQVBJIHdoaWNoIHVzZXMgSmFzeXB0IHRvIGVuY3J5cHQgYW5kIGRlY3J5cHQgdGhlIGlucHV0IHByb3ZpZGVkIGJ5IHVzZXIuDQoNCmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9teS1hcHBsaWNhdGlvbi9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwNCg0KIVtvcGVuX2FwaV9zd2FnZ2VyLnBuZ10oc2NyZWVuc2hvdHMlMkZvcGVuX2FwaV9zd2FnZ2VyLnBuZykNCg0KIyMjIEVuY3J5cHQgdXNpbmcgSmFzeXB0IGZyb20gQ29tbWFuZCBQcm9tcHQNCg0KLSBDb21tYW5kOg0KYGBgDQpqYXZhIC1jcCBqYXN5cHQtMS45LjMuamFyIG9yZy5qYXN5cHQuaW50Zi5jbGkuSmFzeXB0UEJFU3RyaW5nRW5jcnlwdGlvbkNMSSBpbnB1dD0iRGVlcGFrIiBwYXNzd29yZD0iaGVsbG8iIGFsZ29yaXRobT1QQkVXaXRoTUQ1QW5kREVTDQpgYGANCg0KIVtqYXN5cHRfZW5jcnlwdF9jb21tYW5kX2xpbmUucG5nXShzY3JlZW5zaG90cyUyRmphc3lwdF9lbmNyeXB0X2NvbW1hbmRfbGluZS5wbmcpDQoNCiMjIyBEZWNyeXB0IHVzaW5nIEphc3lwdCBmcm9tIENvbW1hbmQgUHJvbXB0DQoNCi0gQ29tbWFuZDoNCmBgYA0KamF2YSAtY3AgamFzeXB0LTEuOS4zLmphciBvcmcuamFzeXB0LmludGYuY2xpLkphc3lwdFBCRVN0cmluZ0RlY3J5cHRpb25DTEkgaW5wdXQ9Ikk0cEp3WDhFaXRFNlBPMWZMb3VMTXc9PSIgcGFzc3dvcmQ9ImhlbGxvIiBhbGdvcml0aG09UEJFV2l0aE1ENUFuZERFUw0KYGBgDQoNCiFbamFzeXB0X2RlY3J5cHRfY29tbWFuZF9saW5lLnBuZ10oc2NyZWVuc2hvdHMlMkZqYXN5cHRfZGVjcnlwdF9jb21tYW5kX2xpbmUucG5nKQ0KDQpSZWZlcmVuY2VzOg0KDQpodHRwOi8vd3d3Lmphc3lwdC5vcmcvDQoNCg== readmeEtag: '"cd33b1b6b4fc89b2c18024f79aa3ae32fccf363b"' readmeLastModified: Thu, 26 Oct 2023 14:57:00 GMT repositoryId: 710199246 description: >- Application to demonstrate the use of Jasypt to encrypt and decrypt and sensitive value in the application. created: '2023-10-26T08:11:19Z' updated: '2024-07-22T13:19:20Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: deepakbhalla logo: https://avatars.githubusercontent.com/u/6603640?v=4 repoEtag: '"020dc49962f9765ec101d60cfe14dc7cc05600a96ef36325fec86af29669e58d"' repoLastModified: Mon, 22 Jul 2024 13:19:20 GMT category: Server Implementations foundInMaster: true - source: - openapi3 tags - openapi31 tags repository: https://github.com/sv-tools/roas v3_1: true id: 6cefed15ccc85977666e11bdf863d37b repositoryMetadata: base64Readme: >- IyByb2FzCgpSdXN0IE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAodjIuMCwgdjMuMC5YIGFuZCB2My4xLlgpCgpbIVtjcmF0ZXMuaW9dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3Yvcm9hcy5zdmcpXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcm9hcykKWyFbZG9jcy5yc10oaHR0cHM6Ly9kb2NzLnJzL3JvYXMvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9kb2NzLnJzL3JvYXMpCgpQYXJzaW5nIGFuZCBnZW5lcmF0aW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKCiogW3hdIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiB2Mi4wCiogW3hdIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiB2My4wLlgKKiBbIF0gT3BlbkFQSSBTcGVjaWZpY2F0aW9uIHYzLjAuMAoKIyMgVXNhZ2UKCkFkZCB0aGlzIHRvIHlvdXIgYENhcmdvLnRvbWxgOgoKYGBgdG9tbApbZGVwZW5kZW5jaWVzXQpyb2FzID0geyB2ZXJzaW9uID0gIjAuMiIsIGZlYXR1cmVzID0gWyJ2M18wIl0gfSAKYGBgCgojIyBFeGFtcGxlcwoKYGBgcnVzdAp1c2Ugcm9hczo6djNfMDo6c3BlYzo6U3BlYzsKdXNlIHJvYXM6OnZhbGlkYXRpb246OntPcHRpb25zLCBWYWxpZGF0ZX07CgouLi4KCmxldCBzcGVjID0gc2VyZGVfanNvbjo6ZnJvbV9zdHI6OjxTcGVjPihyYXdfanNvbikudW53cmFwKCk7CnNwZWMudmFsaWRhdGUoT3B0aW9uczo6SWdub3JlTWlzc2luZ1RhZ3MgfCBPcHRpb25zOjpJZ25vcmVFeHRlcm5hbFJlZmVyZW5jZXMpLnVud3JhcCgpOwoKLi4uCgpgYGAK readmeEtag: '"0882e803604aa452cfe157fc262afcf9414d0e22"' readmeLastModified: Tue, 19 Mar 2024 00:53:22 GMT repositoryId: 699556146 description: Rust OpenAPI Specification (v2, v3.0, v3.1) created: '2023-10-02T21:40:47Z' updated: '2024-04-22T10:22:57Z' language: Rust archived: false stars: 1 watchers: 1 forks: 0 owner: sv-tools logo: https://avatars.githubusercontent.com/u/59230487?v=4 license: Apache-2.0 repoEtag: '"ff2f8ff9c5ad08fefe6a9918d4864653079cecd75146be56644d1f2409a431bf"' repoLastModified: Mon, 22 Apr 2024 10:22:57 GMT category: Parsers foundInMaster: true v3: true - source: openapi3 tags repository: https://github.com/romabilka/lets-go-chat v3: true id: cc00b439672c4bf3161d2400cf7951cc repositoryMetadata: base64Readme: >- IyBsZXRzLWdvLWNoYXQKCiMjIEhvdyB0byBydW4KMS4gQ2xvbmUgdGhlIHByb2plY3QKMi4gYGBgZ28gcnVuIGNtZC9sZXRzLWdvLWNoYXQvbWFpbi5nb2BgYAoKIyMgVG8gdHJ5IGdvIHRvIHRoZSBsaW5rCmh0dHA6Ly9sb2NhbGhvc3QvYXBpLwoKIyMgTGljZW5zZQpbTUlUIGxpY2Vuc2VdKExJQ0VOU0UubWQpLg== readmeEtag: '"7fc18cd6adc78355bc706fa16ad2780010f777be"' readmeLastModified: Tue, 15 Mar 2022 15:10:40 GMT repositoryId: 421817498 description: null created: '2021-10-27T12:53:20Z' updated: '2024-06-19T21:42:30Z' language: Go archived: false stars: 1 watchers: 1 forks: 0 owner: RomaBilka logo: https://avatars.githubusercontent.com/u/28790784?v=4 license: NOASSERTION repoEtag: '"a2e16c01059ac62e16490c70fd6644d0eda0f8c9fb4200cbe10c6647c04e67e8"' repoLastModified: Wed, 19 Jun 2024 21:42:30 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/howmarketing/employee-maintenance-fullstack-sample-app v3: true id: 60f335779c80fc47c5bb01c79e52bc10 repositoryMetadata: base64Readme: >- IyMgU2ltcGxlIEVtcGxveWVlIE1haW50ZW5hbmNlIFdlYiBBcHBsaWNhdGlvbgoKIyMjIFNjcmVlbnNob3RzCgohW1NjcmVlbnNob3RdKC4vcHVibGljL2hvbWUucG5nKQoKIVtTY3JlZW5zaG90XSguL3B1YmxpYy9lbXBsb3llZS1wYWdlLnBuZykKCiMjIyBPdmVydmlldwoKVGhlIFNpbXBsZSBFbXBsb3llZSBNYWludGVuYW5jZSB3ZWIgYXBwbGljYXRpb24gaXMgZGVzaWduZWQgdG8gc3RyZWFtbGluZSB0aGUgbWFuYWdlbWVudCBvZiBlbXBsb3llZSByZWNvcmRzIGFuZCBkZXBhcnRtZW50IGFzc2lnbm1lbnRzIHdpdGhpbiBhbiBvcmdhbml6YXRpb24uIFRoaXMgZnVsbC1zdGFjayBhcHBsaWNhdGlvbiBwcm92aWRlcyBlc3NlbnRpYWwgQ1JVRCBvcGVyYXRpb25zIGZvciBlbXBsb3llZXMgYW5kIGRlcGFydG1lbnRzLCBhbG9uZ3NpZGUgYSB1c2VyLWZyaWVuZGx5IGludGVyZmFjZSB0byB2aWV3IGFuZCBtYW5hZ2UgZW1wbG95ZWUgaW5mb3JtYXRpb24uCgojIyMgRmVhdHVyZXMKCjEuICoqRGF0YWJhc2UgTWFuYWdlbWVudDoqKgogICAtIEEgcm9idXN0IGRhdGFiYXNlIHNjaGVtYSBkZXNpZ25lZCB1c2luZyBQcmlzbWEgT1JNIHRvIHN0b3JlIGFuZCBtYW5hZ2UgZW1wbG95ZWUgYW5kIGRlcGFydG1lbnQgZGF0YS4KICAgLSBUYWJsZXMgaW5jbHVkZSBFbXBsb3llZXMsIERlcGFydG1lbnRzLCBhbmQgRW1wbG95ZWUgRGVwYXJ0bWVudCBIaXN0b3J5IHRvIHRyYWNrIGNoYW5nZXMgb3ZlciB0aW1lLgoKMi4gKipXZWIgU2VydmljZSBFbmRwb2ludHM6KioKICAgLSAqKkVtcGxveWVlIEVuZHBvaW50czoqKgogICAgIC0gYEdldEFsbEVtcGxveWVlc2A6IFJldHJpZXZlIGEgbGlzdCBvZiBhbGwgZW1wbG95ZWVzLgogICAgIC0gYEdldEVtcGxveWVlQnlJZGA6IEZldGNoIGRldGFpbGVkIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGVtcGxveWVlLgogICAgIC0gYFVwZGF0ZUVtcGxveWVlYDogTW9kaWZ5IHRoZSBkZXRhaWxzIG9mIGFuIGV4aXN0aW5nIGVtcGxveWVlLgogICAgIC0gYERlbGV0ZUVtcGxveWVlYDogUmVtb3ZlIGFuIGVtcGxveWVlIGZyb20gdGhlIHN5c3RlbS4KICAgLSAqKkRlcGFydG1lbnQgRW5kcG9pbnRzOioqCiAgICAgLSBgR2V0QWxsRGVwYXJ0bWVudHNgOiBSZXRyaWV2ZSBhIGxpc3Qgb2YgYWxsIGRlcGFydG1lbnRzLgoKMy4gKipFbXBsb3llZSBMaXN0IFBhZ2U6KioKICAgLSBBIHdlYiBwYWdlIHRoYXQgZGlzcGxheXMgYSBjb21wcmVoZW5zaXZlIGxpc3Qgb2YgZW1wbG95ZWVzLCBpbmNsdWRpbmcgdGhlaXIgbmFtZXMsIGRlcGFydG1lbnRzLCBoaXJlIGRhdGVzLCBhbmQgYXZhdGFycy4KICAgLSBIaXJlIGRhdGVzIGFyZSBkaXNwbGF5ZWQgaW4gYSB1c2VyLWZyaWVuZGx5IGZvcm1hdCwgaW5kaWNhdGluZyB0aGUgZHVyYXRpb24gb2YgZW1wbG95bWVudC4KICAgLSBJbmNsdWRlcyBhICJWaWV3IERldGFpbHMiIGJ1dHRvbiBmb3IgZWFjaCBlbXBsb3llZSB0byBhY2Nlc3MgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbi4KCiMjIyBUZWNobmljYWwgRGV0YWlscwoKMS4gKipQcmlzbWEgU2NoZW1hIERlZmluaXRpb246KioKICAgVGhlIFByaXNtYSBzY2hlbWEgaGFzIGJlZW4gdXBkYXRlZCB0byBpbmNsdWRlIHRocmVlIG1haW4gbW9kZWxzOiBEZXBhcnRtZW50LCBFbXBsb3llZSwgYW5kIEVtcGxveWVlRGVwYXJ0bWVudEhpc3RvcnkuIEhlcmUncyBhIGJyaWVmIG92ZXJ2aWV3OgoKICAgYGBgcHJpc21hOnNjaGVtYS5wcmlzbWEKCS8vIFRoaXMgaXMgeW91ciBQcmlzbWEgc2NoZW1hIGZpbGUsCgkvLyBsZWFybiBtb3JlIGFib3V0IGl0IGluIHRoZSBkb2NzOiBodHRwczovL3ByaXMubHkvZC9wcmlzbWEtc2NoZW1hCgoJLy8gRGVmaW5lIHRoZSBQcmlzbWEgY2xpZW50IGdlbmVyYXRvcgoJZ2VuZXJhdG9yIGNsaWVudCB7CgkJcHJvdmlkZXIgPSAicHJpc21hLWNsaWVudC1qcyIKCX0KCgkvLyBEZWZpbmUgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24KCWRhdGFzb3VyY2UgZGIgewoJCXByb3ZpZGVyICA9ICJwb3N0Z3Jlc3FsIgoJCXVybCAgICAgICA9IGVudigiUE9TVEdSRVNfUFJJU01BX1VSTCIpIC8vIHVzZXMgY29ubmVjdGlvbiBwb29saW5nCgkJZGlyZWN0VXJsID0gZW52KCJQT1NUR1JFU19VUkxfTk9OX1BPT0xJTkciKSAvLyB1c2VzIGEgZGlyZWN0IGNvbm5lY3Rpb24KCX0KCgkvLyBDb21tYW5kIHRvIHJ1biBtaWdyYXRpb25zOiBucHggcHJpc21hIG1pZ3JhdGUgZGV2CgoJLy8gRGVwYXJ0bWVudCBtb2RlbAoJbW9kZWwgRGVwYXJ0bWVudCB7CgkJaWQgICAgICAgICAgICAgICAgICAgICAgICBJbnQgICAgICAgICAgICAgICAgICAgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKCQlrZXkgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgICAgICAgICBAdW5pcXVlCgkJbGFiZWwgICAgICAgICAgICAgICAgICAgICBTdHJpbmcKCQlFbXBsb3llZSAgICAgICAgICAgICAgICAgIEVtcGxveWVlW10KCQlFbXBsb3llZURlcGFydG1lbnRIaXN0b3J5IEVtcGxveWVlRGVwYXJ0bWVudEhpc3RvcnlbXQoJCWNyZWF0ZWRBdCAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgIEBkZWZhdWx0KG5vdygpKSBAbWFwKCJjcmVhdGVkX2F0IikKCQl1cGRhdGVkQXQgICAgICAgICAgICAgICAgIERhdGVUaW1lICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdChub3coKSkgQHVwZGF0ZWRBdCBAbWFwKCJ1cGRhdGVkX2F0IikKCgkJQEBtYXAoImRlcGFydG1lbnRzIikKCX0KCgkvLyBFbXBsb3llZSBtb2RlbAoJbW9kZWwgRW1wbG95ZWUgewoJCWlkICAgICAgICAgICAgICAgICAgICAgICAgSW50ICAgICAgICAgICAgICAgICAgICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCgkJcHVibGljSWQgICAgICAgICAgICAgICAgICBTdHJpbmcgICAgICAgICAgICAgICAgICAgICAgQHVuaXF1ZSBAZGVmYXVsdCh1dWlkKCkpIEBtYXAoInB1YmxpY19pZCIpCgkJZmlyc3ROYW1lICAgICAgICAgICAgICAgICBTdHJpbmcgICAgICAgICAgICAgICAgICAgICAgQG1hcCgiZmlyc3RfbmFtZSIpCgkJbGFzdE5hbWUgICAgICAgICAgICAgICAgICBTdHJpbmcgICAgICAgICAgICAgICAgICAgICAgQG1hcCgibGFzdF9uYW1lIikKCQloaXJlRGF0ZSAgICAgICAgICAgICAgICAgIERhdGVUaW1lPyAgICAgICAgICAgICAgICAgICBAZGVmYXVsdChub3coKSkgQG1hcCgiaGlyZV9kYXRlIikKCQlpc0FjdGl2ZSAgICAgICAgICAgICAgICAgIEJvb2xlYW4gICAgICAgICAgICAgICAgICAgICBAbWFwKCJpc19hY3RpdmUiKQoJCWRlcGFydG1lbnQgICAgICAgICAgICAgICAgRGVwYXJ0bWVudD8gICAgICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtkZXBhcnRtZW50S2V5XSwgcmVmZXJlbmNlczogW2tleV0pCgkJZGVwYXJ0bWVudEtleSAgICAgICAgICAgICBTdHJpbmc/ICAgICAgICAgICAgICAgICAgICAgQG1hcCgiZGVwYXJ0bWVudF9rZXkiKQoJCXBob25lICAgICAgICAgICAgICAgICAgICAgU3RyaW5nCgkJYWRkcmVzcyAgICAgICAgICAgICAgICAgICBTdHJpbmcKCQlFbXBsb3llZURlcGFydG1lbnRIaXN0b3J5IEVtcGxveWVlRGVwYXJ0bWVudEhpc3RvcnlbXQoJCWNyZWF0ZWRBdCAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgIEBkZWZhdWx0KG5vdygpKSBAbWFwKCJjcmVhdGVkX2F0IikKCQl1cGRhdGVkQXQgICAgICAgICAgICAgICAgIERhdGVUaW1lICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdChub3coKSkgQHVwZGF0ZWRBdCBAbWFwKCJ1cGRhdGVkX2F0IikKCgkJQEBtYXAoImVtcGxveWVlcyIpCgl9CgoJLy8gRW1wbG95ZWVEZXBhcnRtZW50SGlzdG9yeSBtb2RlbAoJbW9kZWwgRW1wbG95ZWVEZXBhcnRtZW50SGlzdG9yeSB7CgkJaWQgICAgICAgICAgICAgIEludCAgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKCQllbXBsb3llZSAgICAgICAgRW1wbG95ZWUgICBAcmVsYXRpb24oZmllbGRzOiBbZW1wbG95ZWVJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgkJZW1wbG95ZWVJZCAgICAgIEludCAgICAgICAgQG1hcCgiZW1wbG95ZWVfaWQiKQoJCWRlcGFydG1lbnQgICAgICBEZXBhcnRtZW50IEByZWxhdGlvbihmaWVsZHM6IFtkZXBhcnRtZW50S2V5XSwgcmVmZXJlbmNlczogW2tleV0pCgkJZGVwYXJ0bWVudEtleSAgIFN0cmluZyAgICAgQG1hcCgiZGVwYXJ0bWVudF9rZXkiKQoJCWRlcGFydG1lbnRMYWJlbCBTdHJpbmcgICAgIEBkZWZhdWx0KCIiKSBAbWFwKCJkZXBhcnRtZW50X2xhYmVsIikKCQljcmVhdGVkQXQgICAgICAgRGF0ZVRpbWUgICBAZGVmYXVsdChub3coKSkgQG1hcCgiY3JlYXRlZF9hdCIpCgkJdXBkYXRlZEF0ICAgICAgIERhdGVUaW1lICAgQGRlZmF1bHQobm93KCkpIEB1cGRhdGVkQXQgQG1hcCgidXBkYXRlZF9hdCIpCgoJCUBAbWFwKCJlbXBsb3llZV9kZXBhcnRtZW50X2hpc3RvcnkiKQoJfQogICBgYGAKCiAgIC0gKipEZXBhcnRtZW50IE1vZGVsOioqIENvbnRhaW5zIGZpZWxkcyBmb3IgZGVwYXJ0bWVudCBJRCwgdW5pcXVlIGtleSwgbGFiZWwsIGFuZCB0aW1lc3RhbXBzLiBJdCByZWxhdGVzIHRvIG11bHRpcGxlIGVtcGxveWVlcyBhbmQgZGVwYXJ0bWVudCBoaXN0b3J5IHJlY29yZHMuCiAgIC0gKipFbXBsb3llZSBNb2RlbDoqKiBJbmNsdWRlcyBmaWVsZHMgZm9yIGVtcGxveWVlIElELCB1bmlxdWUgcHVibGljIElELCBmaXJzdCBhbmQgbGFzdCBuYW1lcywgaGlyZSBkYXRlLCBkZXBhcnRtZW50IGFzc29jaWF0aW9uLCBwaG9uZSwgYWRkcmVzcywgYW5kIHRpbWVzdGFtcHMuCiAgIC0gKipFbXBsb3llZSBEZXBhcnRtZW50IEhpc3RvcnkgTW9kZWw6KiogVHJhY2tzIHRoZSBoaXN0b3J5IG9mIGVtcGxveWVlcycgZGVwYXJ0bWVudCBhc3NpZ25tZW50cywgd2l0aCBmaWVsZHMgZm9yIGVtcGxveWVlIElELCBkZXBhcnRtZW50IGtleSwgZGVwYXJ0bWVudCBsYWJlbCwgYW5kIHRpbWVzdGFtcHMuCgoyLiAqKlJlcG9zaXRvcnkgUGF0dGVybiBJbXBsZW1lbnRhdGlvbjoqKgogICBXZSd2ZSBpbXBsZW1lbnRlZCB0aGUgcmVwb3NpdG9yeSBwYXR0ZXJuIHRvIGFic3RyYWN0IGRhdGFiYXNlIG9wZXJhdGlvbnMuIEhlcmUncyBhbiBleGFtcGxlIG9mIHRoZSBFbXBsb3llZVJlcG9zaXRvcnk6CgogICBgYGB0eXBlc2NyaXB0OnNyYy9yZXBvc2l0b3JpZXMvZW1wbG95ZWVSZXBvc2l0b3J5LnRzCglpbXBvcnQgeyBQcmlzbWFDbGllbnQgfSBmcm9tICJAcHJpc21hL2NsaWVudCI7CglpbXBvcnQgeyBDcmVhdGVFbXBsb3llZURUTywgRW1wbG95ZWVEVE8gfSBmcm9tICdAL2R0b3MvZW1wbG95ZWVEVE8nOwoKCWV4cG9ydCBjbGFzcyBFbXBsb3llZVJlcG9zaXRvcnkgewoJCWNvbnN0cnVjdG9yKHByaXZhdGUgcHJpc21hOiBQcmlzbWFDbGllbnQpIHsgfQoKCQlhc3luYyBjcmVhdGVFbXBsb3llZShkYXRhOiBDcmVhdGVFbXBsb3llZURUTyk6IFByb21pc2U8RW1wbG95ZWVEVE8+IHsKCQkJY29uc3QgY3JlYXRlZEVtcGxveWVlID0gYXdhaXQgdGhpcy5wcmlzbWEuZW1wbG95ZWUuY3JlYXRlKHsKCQkJCWRhdGEsCgkJCQlpbmNsdWRlOiB7CgkJCQkJZGVwYXJ0bWVudDogdHJ1ZSwKCQkJCQlFbXBsb3llZURlcGFydG1lbnRIaXN0b3J5OiB0cnVlCgkJCQl9CgkJCX0pOwoJCQlpZiAoZGF0YS5kZXBhcnRtZW50S2V5KSB7CgkJCQlhd2FpdCB0aGlzLnByaXNtYS5lbXBsb3llZURlcGFydG1lbnRIaXN0b3J5LmNyZWF0ZSh7CgkJCQkJZGF0YTogewoJCQkJCQllbXBsb3llZUlkOiBjcmVhdGVkRW1wbG95ZWUuaWQsCgkJCQkJCWRlcGFydG1lbnRLZXk6IGRhdGEuZGVwYXJ0bWVudEtleSwKCQkJCQkJZGVwYXJ0bWVudExhYmVsOiBjcmVhdGVkRW1wbG95ZWUuZGVwYXJ0bWVudD8ubGFiZWwgfHwgIiIsCgkJCQkJfQoJCQkJfSk7CgkJCX0KCQkJcmV0dXJuIGNyZWF0ZWRFbXBsb3llZSBhcyBFbXBsb3llZURUTzsKCQl9Cgl9CgogICBgYGAKCiAgIFRoaXMgcmVwb3NpdG9yeSBjZW50cmFsaXplcyBkYXRhYmFzZSBvcGVyYXRpb25zIHJlbGF0ZWQgdG8gZW1wbG95ZWVzLCBpbXByb3ZpbmcgY29kZSBvcmdhbml6YXRpb24gYW5kIG1haW50YWluYWJpbGl0eS4KCjMuICoqQVBJIFJvdXRlcyBSZWZhY3RvcmluZzoqKgogICBBUEkgcm91dGVzIGhhdmUgYmVlbiByZWZhY3RvcmVkIHRvIHVzZSB0aGUgbmV3IHJlcG9zaXRvcnkgcGF0dGVybiBhbmQgRFRPcy4gRm9yIGV4YW1wbGUsIHRoZSBlbXBsb3llZSBjcmVhdGlvbiByb3V0ZSBub3cgbG9va3MgbGlrZSB0aGlzOgoKICAgYGBgdHlwZXNjcmlwdDpzcmMvYXBwL2FwaS9lbXBsb3llZS9yb3V0ZS50cwoJaW1wb3J0IHsgTmV4dFJlcXVlc3QgfSBmcm9tICJuZXh0L3NlcnZlciI7CglpbXBvcnQgeyBQcmlzbWFDbGllbnQgfSBmcm9tICJAcHJpc21hL2NsaWVudCI7CglpbXBvcnQgeyB6IH0gZnJvbSAnem9kJzsKCWltcG9ydCB7IEVtcGxveWVlUmVwb3NpdG9yeSB9IGZyb20gJ0AvcmVwb3NpdG9yaWVzL2VtcGxveWVlUmVwb3NpdG9yeSc7CglpbXBvcnQgeyBDcmVhdGVFbXBsb3llZURUTyB9IGZyb20gJ0AvZHRvcy9lbXBsb3llZURUTyc7CglpbXBvcnQgeyBFbXBsb3llZVJlc3BvbnNlRFRPIH0gZnJvbSAnQC9kdG9zL3Jlc3BvbnNlRFRPJzsKCWltcG9ydCB7IGNyZWF0ZUVtcGxveWVlU2NoZW1hIH0gZnJvbSAnQC9zY2hlbWFzL2VtcGxveWVlU2NoZW1hJzsKCWltcG9ydCB7IGxvZ2dlciB9IGZyb20gJ0AvdXRpbHMvbG9nZ2VyJzsKCglleHBvcnQgY29uc3QgZHluYW1pYyA9ICJmb3JjZS1keW5hbWljIjsKCgkvLyBTaW5nbGV0b24gcGF0dGVybiBmb3IgUHJpc21hQ2xpZW50IHRvIGF2b2lkIG11bHRpcGxlIGluc3RhbmNlcwoJY29uc3QgcHJpc21hID0gbmV3IFByaXNtYUNsaWVudCgpOwoJY29uc3QgZW1wbG95ZWVSZXBvc2l0b3J5ID0gbmV3IEVtcGxveWVlUmVwb3NpdG9yeShwcmlzbWEpOwoKCWV4cG9ydCB0eXBlIElDcmVhdGVSZXNwb25zZVByb3BlcnRpZXMgPSBFbXBsb3llZVJlc3BvbnNlRFRPICYgeyBzdGF0dXM6IG51bWJlciwgc3RhdHVzVGV4dDogc3RyaW5nIH07CgoJY29uc3QgY3JlYXRlUmVzcG9uc2UgPSAoewoJCXN1Y2Nlc3MgPSBmYWxzZSwKCQltZXNzYWdlID0gIiIsCgkJZGF0YSA9IHt9IGFzIEVtcGxveWVlUmVzcG9uc2VEVE9bImRhdGEiXSwKCQlzdGF0dXMgPSAyMDAsCgkJc3RhdHVzVGV4dCA9ICJPSyIKCX06IElDcmVhdGVSZXNwb25zZVByb3BlcnRpZXMpOiBSZXNwb25zZSA9PiB7CgkJY29uc3QgcmVzcG9uc2VPYmplY3Q6IEVtcGxveWVlUmVzcG9uc2VEVE8gPSB7IHN1Y2Nlc3MsIG1lc3NhZ2UsIGRhdGEgfTsKCQlyZXR1cm4gbmV3IFJlc3BvbnNlKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlT2JqZWN0KSwgewoJCQlzdGF0dXMsCgkJCWhlYWRlcnM6IHsKCQkJCSJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCgkJCQkiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIjogIioiLCAvLyBDb25zaWRlciByZXN0cmljdGluZyB0aGlzIGZvciBzZWN1cml0eQoJCQl9LAoJCQlzdGF0dXNUZXh0LAoJCX0pOwoJfTsKCglleHBvcnQgYXN5bmMgZnVuY3Rpb24gUE9TVChyZXF1ZXN0OiBOZXh0UmVxdWVzdCkgewoJCXRyeSB7CgkJCWNvbnN0IGJvZHk6IENyZWF0ZUVtcGxveWVlRFRPID0gYXdhaXQgcmVxdWVzdC5qc29uKCk7CgkJCWNvbnN0IHZhbGlkYXRlZERhdGEgPSBjcmVhdGVFbXBsb3llZVNjaGVtYS5wYXJzZShib2R5KTsKCQkJY29uc3QgY3JlYXRlZEVtcGxveWVlID0gYXdhaXQgZW1wbG95ZWVSZXBvc2l0b3J5LmNyZWF0ZUVtcGxveWVlKHZhbGlkYXRlZERhdGEpOwoJCQlsb2dnZXIuaW5mbyhgRW1wbG95ZWUgY3JlYXRlZDogJHtjcmVhdGVkRW1wbG95ZWUuaWR9YCk7CgkJCXJldHVybiBjcmVhdGVSZXNwb25zZSh7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICJTdWNjZXNzIiwgZGF0YTogY3JlYXRlZEVtcGxveWVlLCBzdGF0dXM6IDIwMSwgc3RhdHVzVGV4dDogIkNSRUFURUQiIH0pOwoJCX0gY2F0Y2ggKGU6IGFueSkgewoJCQljb25zdCBlcnJvclJlc3BvbnNlID0gewoJCQkJc3VjY2VzczogZmFsc2UsCgkJCQltZXNzYWdlOiBlPy5tZXNzYWdlIHx8ICJTb21ldGhpbmcgd2VudCB3cm9uZyIsCgkJCQlzdGF0dXM6IDUwMCwKCQkJCXN0YXR1c1RleHQ6ICJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiLAoJCQl9IGFzIElDcmVhdGVSZXNwb25zZVByb3BlcnRpZXM7CgkJCWlmIChlIGluc3RhbmNlb2Ygei5ab2RFcnJvcikgewoJCQkJZXJyb3JSZXNwb25zZS5tZXNzYWdlID0gZS5lcnJvcnMubWFwKGVyciA9PiBgJHtlcnIucGF0aH06ICR7ZXJyLm1lc3NhZ2V9YCkuam9pbignLCAnKTsKCQkJCWVycm9yUmVzcG9uc2Uuc3RhdHVzID0gNDAwOwoJCQkJZXJyb3JSZXNwb25zZS5zdGF0dXNUZXh0ID0gIkJhZCBSZXF1ZXN0IjsKCQkJCWxvZ2dlci5lcnJvcihgRXJyb3IgY3JlYXRpbmcgZW1wbG95ZWU6ICR7ZXJyb3JSZXNwb25zZS5tZXNzYWdlfWApOwoJCQkJcmV0dXJuIGNyZWF0ZVJlc3BvbnNlKGVycm9yUmVzcG9uc2UpOwoJCQl9CgkJCWxvZ2dlci5lcnJvcihgRXJyb3IgY3JlYXRpbmcgZW1wbG95ZWU6ICR7ZXJyb3JSZXNwb25zZS5tZXNzYWdlfWApOwoJCQlyZXR1cm4gY3JlYXRlUmVzcG9uc2UoZXJyb3JSZXNwb25zZSk7CgkJfQoJfQoKICAgYGBgCgogICBUaGlzIHJlZmFjdG9yaW5nIGVuaGFuY2VzIGVycm9yIGhhbmRsaW5nIGFuZCBpbXBsZW1lbnRzIGxvZ2dpbmcgaW4gQVBJIHJvdXRlcy4KCiMjIyBVc2FnZQoKMS4gKipQcmlzbWEgU2NoZW1hIERlZmluaXRpb246KioKICAgLSAqKkRlcGFydG1lbnQgTW9kZWw6KiogQ29udGFpbnMgZmllbGRzIGZvciBkZXBhcnRtZW50IElELCB1bmlxdWUga2V5LCBsYWJlbCwgYW5kIHRpbWVzdGFtcHMuIEl0IHJlbGF0ZXMgdG8gbXVsdGlwbGUgZW1wbG95ZWVzIGFuZCBkZXBhcnRtZW50IGhpc3RvcnkgcmVjb3Jkcy4KICAgLSAqKkVtcGxveWVlIE1vZGVsOioqIEluY2x1ZGVzIGZpZWxkcyBmb3IgZW1wbG95ZWUgSUQsIHVuaXF1ZSBwdWJsaWMgSUQsIGZpcnN0IGFuZCBsYXN0IG5hbWVzLCBoaXJlIGRhdGUsIGRlcGFydG1lbnQgYXNzb2NpYXRpb24sIHBob25lLCBhZGRyZXNzLCBhbmQgdGltZXN0YW1wcy4KICAgLSAqKkVtcGxveWVlIERlcGFydG1lbnQgSGlzdG9yeSBNb2RlbDoqKiBUcmFja3MgdGhlIGhpc3Rvcnkgb2YgZW1wbG95ZWVzJyBkZXBhcnRtZW50IGFzc2lnbm1lbnRzLCB3aXRoIGZpZWxkcyBmb3IgZW1wbG95ZWUgSUQsIGRlcGFydG1lbnQga2V5LCBkZXBhcnRtZW50IGxhYmVsLCBhbmQgdGltZXN0YW1wcy4KCjIuICoqVGVjaG5vbG9naWVzIFVzZWQ6KioKICAgLSAqKkJhY2tlbmQ6KiogTm9kZS5qcywgd2l0aCBzZXJ2ZXItc2lkZSBmb3IgYmFja2VuZCBSRVNUZnVsIEFQSXMuCiAgIC0gKipGcm9udGVuZDoqKiBOZXh0LmpzQDE0IHdpdGggUmVhY3QuanNAMTkgaW1wbGVtZW50ZWQgdGhlIHNlcnZlciBhY3Rpb25zLgogICAtICoqRGF0YWJhc2U6KiogUHJpc21hIE9STSB3aXRoIFNRTGl0ZSBmb3IgZGV2ZWxvcG1lbnQgZGF0YWJhc2UgZW52aXJvbm1lbnQuCiAgIC0gKipPdGhlciBUb29sczoqKiBHaXQgZm9yIHZlcnNpb24gY29udHJvbCwgR2l0SHViIGZvciByZXBvc2l0b3J5IGhvc3RpbmcsIHZlcmNlbCBmb3IgZGVwbG95bWVudHMuCgozLiAqKkluc3RydWN0aW9uczo6KioKICAgLSAqKkRhdGFiYXNlIFNldHVwOioqIENyZWF0ZSB0aGUgbmVjZXNzYXJ5IHRhYmxlcyBhbmQgcmVsYXRpb25zaGlwcyB1c2luZyBQcmlzbWEgbWlncmF0aW9ucy4KICAgLSAqKkFQSSBEZXZlbG9wbWVudDoqKiBJbXBsZW1lbnQgdGhlIHJlcXVpcmVkIGVuZHBvaW50cyB0byBpbnRlcmFjdCB3aXRoIHRoZSBlbXBsb3llZSBhbmQgZGVwYXJ0bWVudCBkYXRhLgogICAtICoqVUkgSW1wbGVtZW50YXRpb246KiogRGV2ZWxvcCB0aGUgRW1wbG95ZWUgTGlzdCBwYWdlIHRvIGRpc3BsYXkgYW5kIG1hbmFnZSBlbXBsb3llZSByZWNvcmRzIGVmZmVjdGl2ZWx5LgoKNC4gKipEZWxpdmVyYWJsZXM6KioKICAgLSAqKkFQSSBEZXZlbG9wbWVudDoqKiBUaGUgcmVxdWlyZWQgZW5kcG9pbnRzIGhhdmUgYmVlbiBpbXBsZW1lbnRlZCB1c2luZyB0aGUgcmVwb3NpdG9yeSBwYXR0ZXJuIGFuZCBEVE9zLiBFeGFtcGxlcyBpbmNsdWRlOgogICAgIC0gQ3JlYXRlRW1wbG95ZWUKICAgICAtIFVwZGF0ZUVtcGxveWVlCiAgICAgLSBVcGRhdGVFbXBsb3llZURlcGFydG1lbnQKICAgICAtIEdldEFsbEVtcGxveWVlcwogICAgIC0gR2V0RW1wbG95ZWVCeUlkCiAgICAgLSBEZWxldGVFbXBsb3llZQogICAgIC0gR2V0QWxsRGVwYXJ0bWVudHMKICAgLSAqKlVJIEltcGxlbWVudGF0aW9uOioqIAogICAgIFRoZSBFbXBsb3llZSBMaXN0IHBhZ2UgaGFzIGJlZW4gZGV2ZWxvcGVkIHRvIGRpc3BsYXkgYW5kIG1hbmFnZSBlbXBsb3llZSByZWNvcmRzIGVmZmVjdGl2ZWx5LCBpbmNsdWRpbmcgZmVhdHVyZXMgbGlrZSB2aWV3aW5nIGVtcGxveWVlIGRldGFpbHMgYW5kIHVwZGF0aW5nIGRlcGFydG1lbnQgYXNzaWdubWVudHMuCgo+IFRoZSBTaW1wbGUgRW1wbG95ZWUgTWFpbnRlbmFuY2Ugd2ViIGFwcGxpY2F0aW9uIG5vdyBpbmNvcnBvcmF0ZXMgdGhlIHJlcG9zaXRvcnkgcGF0dGVybiwgRFRPcywgYW5kIGltcHJvdmVkIGVycm9yIGhhbmRsaW5nLCByZXN1bHRpbmcgaW4gYSBtb3JlIG1haW50YWluYWJsZSBhbmQgcm9idXN0IHNvbHV0aW9uIGZvciBtYW5hZ2luZyBlbXBsb3llZSByZWNvcmRzIGFuZCBkZXBhcnRtZW50YWwgYXNzaWdubWVudHMuCj4KCiMjIyBDb25jbHVzaW9uCgpUaGUgU2ltcGxlIEVtcGxveWVlIE1haW50ZW5hbmNlIHdlYiBhcHBsaWNhdGlvbiBpcyBhIGNvbXByZWhlbnNpdmUgc29sdXRpb24gZm9yIG1hbmFnaW5nIGVtcGxveWVlIHJlY29yZHMgYW5kIGRlcGFydG1lbnRhbCBhc3NpZ25tZW50cywgcHJvdmlkaW5nIGFuIGludHVpdGl2ZSBpbnRlcmZhY2UgYW5kIHJvYnVzdCBiYWNrZW5kIHRvIGVuc3VyZSBlZmZpY2llbnQgZGF0YSBoYW5kbGluZyBhbmQgcmV0cmlldmFsLgoKLS0tCgojIyBTVEFSVElORyBQT0lOVAoKYGBgYmFzaApucG0gaSAtLWZvcmNlCm5wbSBpIC0tbGVnYWN5LXBlZXItZGVwcwoKbnBtIGkgLUQgamVzdCBAdHlwZXMvamVzdCBAdGVzdGluZy1saWJyYXJ5L2plc3QtZG9tIHRzLWplc3QgQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50IGplc3QtZW52aXJvbm1lbnQtanNkb20gQHRlc3RpbmctbGlicmFyeS9yZWFjdCAtLWZvcmNlCgpucHggcHJpc21hIGdlbmVyYXRlCm5wbSBydW4gYnVpbGQKbnBtIHJ1biB0ZXN0Cm5wbSBydW4gc3RhcnQKYGBgCgojIyBBU1NFU1NNRU5UIFJFQURNRQoKQSBzaW1wbGUgd2ViIGFwcGxpY2F0aW9uIGZvciBtYW5hZ2luZyBlbXBsb3llZSByZWNvcmRzLCBidWlsdCBhcyBhIGZ1bGxzdGFjayBhc3Nlc3NtZW50IHRvIGRlbW9uc3RyYXRlIHByb2ZpY2llbmN5IGluIHNvZnR3YXJlIGFyY2hpdGVjdHVyZSwgY29kZSBxdWFsaXR5LCBkZXNpZ24gcGF0dGVybnMsIGFuZCBiZXN0IHByYWN0aWNlcy4KCiMjIyBGdWxsc3RhY2sgQXNzZXNzbWVudCDigJMgQ2FuZGlkYXRlIEluc3RydWN0aW9ucwoKKipFeHBlY3RhdGlvbnMqKgotIERlbW9uc3RyYXRlIGEgc29saWQgYW5kIHJvYnVzdCBhcmNoaXRlY3R1cmUuCi0gSGlnaGx5IG1haW50YWluYWJsZSBhbmQgbGVnaWJsZSBjb2RlLgotIFVzZSBhbmQga25vd2xlZGdlIG9mIGRlc2lnbiBwYXR0ZXJucy4KLSBGb2xsb3cgc29mdHdhcmUgZGV2ZWxvcG1lbnQgYmVzdCBwcmFjdGljZXMuCi0gRWZmZWN0aXZlIGFuZCBjb25zaXN0ZW50IG5hbWluZyBjb252ZW50aW9ucy4KLSBDb2RlIGNyYWZ0ZWQgd2l0aCBtb2Rlcm4gZGV2ZWxvcG1lbnQgbWV0aG9kb2xvZ2llcy4KLSBJZiB5b3UgY2hvb3NlIHRvIHNpbXBsaWZ5IHlvdXIgY29kZSBpbiB0aGUgbmFtZSBvZiBzcGVlZCAoaS5lLiAicHJvdG90eXBlIiBzdHlsZSBkZXZlbG9wbWVudCkgYmUgYWJsZSB0byBleHBsYWluIHRoZSBzaG9ydGN1dHMgeW91IHRvb2sgYW5kIHdoeS4KLSBTbWFydCBVSSBwYXR0ZXJucyBhcmUgbm90IGFsbG93ZWQuCi0gQ29kZSBzbmlwcGV0cyBmcm9tIG9sZCBwcm9qZWN0cyBhbmQvb3Igb3BlbmluZyBhbnkgb2xkIHByb2plY3RzIGFyZSBzdHJpY3RseSBmb3JiaWRkZW4uCi0gUHJpb3JpdGl6ZSBnb29kIGNvZGUgZGVzaWduIGFuZCBhcmNoaXRlY3R1cmUgb3ZlciBkZXZlbG9wbWVudCBzcGVlZC4KLSBSZWFkIHRoZSBpbnN0cnVjdGlvbnMgY2FyZWZ1bGx5IGFzIG9ubHkgY29tcGxldGUgYW5kIHdvcmtpbmcgc29sdXRpb25zIHdpbGwgYmUgcmV2aWV3ZWQuCi0gWW91ciBjb2RlIHNob3VsZCBjb21waWxlIGFuZCBydW4gd2l0aCB1cyBkb2luZyBhIHNpbXBsZSBwYWNrYWdlIHJlc3RvcmUgYW5kIG5vdGhpbmcgbW9yZS4KCioqU3VibWl0dGluZyB5b3VyIGNvZGUqKgotIEdvIHRvIFtjb21wYW55LXJlcG8tbWFuYWdlbWVudF0oaHR0cHM6Ly9naXQuY29tcGFueS1yZXBvLW1hbmFnZW1lbnQuY29tKSBhbmQgcmVnaXN0ZXIgb3IgbG9naW4gaWYgeW91IGFscmVhZHkgaGF2ZSBhbiBhY2NvdW50LgotIENyZWF0ZSBhIHJlcG9zaXRvcnkgdG8gd29yayBvbiBhbmQgZG8gY29uc3RhbnQgY29tbWl0cyBhcyB5b3Ugd291bGQgbm9ybWFsbHkgZG8uCi0gWW91IGhhdmUgbm8gdGltZSBsaW1pdCB0byBjb21wbGV0ZSB0aGUgYXNzZXNzbWVudC4KLSBPbmNlIHlvdSBhcmUgcmVhZHksIGFkZCBhIGJyaWVmIGV4cGxhbmF0aW9uIG9mIHlvdXIgc29sdXRpb24gYW5kIGFyY2hpdGVjdHVyZSB0byB0aGUgUkVBRE1FIGZpbGUgYW5kIHNoYXJlIHlvdXIgZ2l0IHJlcG9zaXRvcnkgVVJMIHdpdGggeW91ciByZWNydWl0ZXIuCgojIyMgU2ltcGxlIEVtcGxveWVlIE1haW50ZW5hbmNlIHdlYiBhcHAKCioqRmlyc3QgVGFzayAoRGF0YWJhc2UpOioqCkNyZWF0ZSBhIGRhdGFiYXNlIHRvIHN0b3JlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246CjEuIEZpcnN0IE5hbWUKMi4gTGFzdCBOYW1lCjMuIEhpcmUgRGF0ZQo0LiBEZXBhcnRtZW50CjUuIFBob25lCjYuIEFkZHJlc3MKCkNyZWF0ZSBhbGwgbmVlZGVkIHRhYmxlcyBhbmQgcmVsYXRpb25zaGlwcy4KCioqU2Vjb25kIFRhc2sgKFByb2dyYW1taW5nIEV4ZXJjaXNlKToqKgpDcmVhdGUgYSBXZWIgU2VydmljZSB0aGF0IGV4cG9zZXMgdGhlIGZvbGxvd2luZyBlbmRwb2ludHM6CjEuICoqRm9yIEVtcGxveWVlIEVudGl0eToqKgogICAtIFNob3VsZCBpbmNsdWRlIHRoZSBlbXBsb3llZSBkZXBhcnRtZW50IGluIHRleHQgZm9ybS4KICAgLSBHZXRBbGxFbXBsb3llZXMKICAgLSBHZXRFbXBsb3llZUJ5SWQKICAgLSBVcGRhdGVFbXBsb3llZQogICAtIERlbGV0ZUVtcGxveWVlCiAgIAoyLiAqKkZvciBEZXBhcnRtZW50IEVudGl0eToqKgogICAtIEdldEFsbERlcGFydG1lbnRzCgoqKlRoaXJkIFRhc2sgKEVtcGxveWVlIExpc3QgcGFnZSk6KioKQ3JlYXRlIGEgbmV3IHBhZ2UgdG8gc2hvdyBhIGxpc3Qgb2YgZW1wbG95ZWVzLiBZb3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIG1vY2t1cCBhcyByZWZlcmVuY2Ugb3IgY3JlYXRlIHlvdXIgb3duIGRlc2lnbiBpZiB5b3UgcHJlZmVyLgoKVGhpcyBwYWdlIHNob3VsZCBzaG93IHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246Ci0gRW1wbG95ZWUgTmFtZSwgRGVwYXJ0bWVudCwgSGlyZSBEYXRlLCBFbXBsb3llZSBBdmF0YXIKLSBJdCBzaG91bGQgZGlzcGxheSB0aGUgZGF0ZSBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDogTWF5IDIsIDIwMjEgKDJ5IOKAkyAxbSDigJMgNGQpCiAgLSBUaGUgZGF0ZSBpbiBwYXJlbnRoZXNpcyBkZXRlcm1pbmVzIGhvdyBsb25nIHRoYXQgZW1wbG95ZWUgaGFzIGJlZW4gaW4gdGhlIGNvbXBhbnkuCi0gQSAiVmlldyBEZXRhaWxzIiBidXR0b24gdGhhdCB3aWxsIHRha2UgdGhlIHVzZXIgdG8gdGhlIGZvbGxvd2luZyBwYWdlLgoKCiMjIE1vZGVsaW5nIHRoZSBEYXRhYmFzZSB3aXRoIFByaXNtYQoKVG8gbW9kZWwgdGhlIGRhdGFiYXNlIHVzaW5nIFByaXNtYSBmb3IgdGhlIHJlcXVpcmVtZW50cyB5b3UndmUgb3V0bGluZWQsIHdlIG5lZWQgdG8gZGVmaW5lIHRoZSBzY2hlbWEgdGhhdCBpbmNsdWRlcyB0YWJsZXMgZm9yIGBFbXBsb3llZWAgYW5kIGBEZXBhcnRtZW50YCwgYW5kIGVzdGFibGlzaCB0aGUgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZW0uIEhlcmXigJlzIGhvdyB5b3UgY2FuIG1vZGVsIGl0OgoKIyMjIFByaXNtYSBTY2hlbWEgRGVmaW5pdGlvbgoKQ3JlYXRlIGEgbmV3IFByaXNtYSBzY2hlbWEgZmlsZSAodHlwaWNhbGx5IG5hbWVkIGBzY2hlbWEucHJpc21hYCkgYW5kIGRlZmluZSB0aGUgc2NoZW1hIGFzIGZvbGxvd3M6CgpgYGBwcmlzbWEKLy8gVGhpcyBpcyB5b3VyIFByaXNtYSBzY2hlbWEgZmlsZSwKLy8gbGVhcm4gbW9yZSBhYm91dCBpdCBpbiB0aGUgZG9jczogaHR0cHM6Ly9wcmlzLmx5L2QvcHJpc21hLXNjaGVtYQoKZ2VuZXJhdG9yIGNsaWVudCB7Cn0KCmRhdGFzb3VyY2UgZGIgewp9CgovLyBucHggcHJpc21hIG1pZ3JhdGUgZGV2Cgptb2RlbCBEZXBhcnRtZW50IHsKfQoKbW9kZWwgRW1wbG95ZWUgewp9Cgptb2RlbCBFbXBsb3llZURlcGFydG1lbnRIaXN0b3J5IHsKfQoKYGBgClRoZSBwcm92aWRlZCBzY2hlbWEgZGVmaW5lcyB0aHJlZSBtb2RlbHM6IGBEZXBhcnRtZW50YCwgYEVtcGxveWVlYCwgYW5kIGBFbXBsb3llZURlcGFydG1lbnRIaXN0b3J5YC4gSGVyZSdzIGFuIGV4cGxhbmF0aW9uIG9mIGVhY2ggbW9kZWw6CgoxLiAqKkRlcGFydG1lbnQqKjoKICAgLSBUaGlzIG1vZGVsIHJlcHJlc2VudHMgYSBkZXBhcnRtZW50IHdpdGhpbiBhbiBvcmdhbml6YXRpb24uCiAgIC0gSXQgaGFzIGZpZWxkcyBzdWNoIGFzIGBpZGAgKGF1dG8taW5jcmVtZW50aW5nIHByaW1hcnkga2V5KSwgYGtleWAgKHVuaXF1ZSBzdHJpbmcgaWRlbnRpZmllciksIGBsYWJlbGAgKGRlcGFydG1lbnQgbmFtZSksIGFuZCB0aW1lc3RhbXBzIGZvciBgY3JlYXRlZEF0YCBhbmQgYHVwZGF0ZWRBdGAuCiAgIC0gSXQgaGFzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwIHdpdGggdGhlIGBFbXBsb3llZWAgbW9kZWwsIG1lYW5pbmcgdGhhdCBhIGRlcGFydG1lbnQgY2FuIGhhdmUgbXVsdGlwbGUgZW1wbG95ZWVzLgogICAtIEl0IGFsc28gaGFzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwIHdpdGggdGhlIGBFbXBsb3llZURlcGFydG1lbnRIaXN0b3J5YCBtb2RlbCwgd2hpY2ggdHJhY2tzIHRoZSBoaXN0b3J5IG9mIGVtcGxveWVlcycgZGVwYXJ0bWVudCBhc3NpZ25tZW50cy4KCjIuICoqRW1wbG95ZWUqKjoKICAgLSBUaGlzIG1vZGVsIHJlcHJlc2VudHMgYW4gZW1wbG95ZWUgd2l0aGluIHRoZSBvcmdhbml6YXRpb24uCiAgIC0gSXQgaGFzIGZpZWxkcyBzdWNoIGFzIGBpZGAgKGF1dG8taW5jcmVtZW50aW5nIHByaW1hcnkga2V5KSwgYHB1YmxpY0lkYCAodW5pcXVlIHN0cmluZyBpZGVudGlmaWVyKSwgYGZpcnN0TmFtZWAsIGBsYXN0TmFtZWAsIGBoaXJlRGF0ZWAsIGBpc0FjdGl2ZWAgKGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgZW1wbG95ZWUgaXMgY3VycmVudGx5IGFjdGl2ZSksIGBkZXBhcnRtZW50S2V5YCAoZm9yZWlnbiBrZXkgcmVmZXJlbmNpbmcgdGhlIGBrZXlgIGZpZWxkIGluIHRoZSBgRGVwYXJ0bWVudGAgbW9kZWwpLCBgcGhvbmVgLCBgYWRkcmVzc2AsIGFuZCB0aW1lc3RhbXBzIGZvciBgY3JlYXRlZEF0YCBhbmQgYHVwZGF0ZWRBdGAuCiAgIC0gSXQgaGFzIGEgbWFueS10by1vbmUgcmVsYXRpb25zaGlwIHdpdGggdGhlIGBEZXBhcnRtZW50YCBtb2RlbCwgbWVhbmluZyB0aGF0IGFuIGVtcGxveWVlIGNhbiBiZWxvbmcgdG8gb25lIGRlcGFydG1lbnQuCiAgIC0gSXQgaGFzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwIHdpdGggdGhlIGBFbXBsb3llZURlcGFydG1lbnRIaXN0b3J5YCBtb2RlbCwgd2hpY2ggdHJhY2tzIHRoZSBoaXN0b3J5IG9mIHRoZSBlbXBsb3llZSdzIGRlcGFydG1lbnQgYXNzaWdubWVudHMuCgozLiAqKkVtcGxveWVlRGVwYXJ0bWVudEhpc3RvcnkqKjoKICAgLSBUaGlzIG1vZGVsIGtlZXBzIHRyYWNrIG9mIHRoZSBoaXN0b3J5IG9mIGVtcGxveWVlcycgZGVwYXJ0bWVudCBhc3NpZ25tZW50cy4KICAgLSBJdCBoYXMgZmllbGRzIHN1Y2ggYXMgYGlkYCAoYXV0by1pbmNyZW1lbnRpbmcgcHJpbWFyeSBrZXkpLCBgZW1wbG95ZWVJZGAgKGZvcmVpZ24ga2V5IHJlZmVyZW5jaW5nIHRoZSBgaWRgIGZpZWxkIGluIHRoZSBgRW1wbG95ZWVgIG1vZGVsKSwgYGRlcGFydG1lbnRLZXlgIChmb3JlaWduIGtleSByZWZlcmVuY2luZyB0aGUgYGtleWAgZmllbGQgaW4gdGhlIGBEZXBhcnRtZW50YCBtb2RlbCksIGBkZXBhcnRtZW50TGFiZWxgICh0aGUgbGFiZWwgb3IgbmFtZSBvZiB0aGUgZGVwYXJ0bWVudCBhdCB0aGUgdGltZSBvZiBhc3NpZ25tZW50KSwgYW5kIHRpbWVzdGFtcHMgZm9yIGBjcmVhdGVkQXRgIGFuZCBgdXBkYXRlZEF0YC4KICAgLSBJdCBoYXMgYSBtYW55LXRvLW9uZSByZWxhdGlvbnNoaXAgd2l0aCBib3RoIHRoZSBgRW1wbG95ZWVgIGFuZCBgRGVwYXJ0bWVudGAgbW9kZWxzLCBhbGxvd2luZyBpdCB0byBhc3NvY2lhdGUgYW4gZW1wbG95ZWUgd2l0aCBhIGRlcGFydG1lbnQgYXQgYSBzcGVjaWZpYyBwb2ludCBpbiB0aW1lLgoKVGhpcyBzY2hlbWEgYWxsb3dzIHlvdSB0byBzdG9yZSBhbmQgbWFuYWdlIGluZm9ybWF0aW9uIGFib3V0IGRlcGFydG1lbnRzLCBlbXBsb3llZXMsIGFuZCB0aGUgaGlzdG9yeSBvZiBlbXBsb3llZXMnIGRlcGFydG1lbnQgYXNzaWdubWVudHMgd2l0aGluIHlvdXIgYXBwbGljYXRpb24uIFRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIG1vZGVscyBlbmFibGUgeW91IHRvIHF1ZXJ5IGFuZCByZXRyaWV2ZSBkYXRhIGVmZmljaWVudGx5LCBzdWNoIGFzIHJldHJpZXZpbmcgYWxsIGVtcGxveWVlcyBiZWxvbmdpbmcgdG8gYSBzcGVjaWZpYyBkZXBhcnRtZW50IG9yIHJldHJpZXZpbmcgdGhlIGRlcGFydG1lbnQgaGlzdG9yeSBmb3IgYSBwYXJ0aWN1bGFyIGVtcGxveWVlLgoKCiMjIyBEYXRhYmFzZSBTZXR1cAoKQWZ0ZXIgZGVmaW5pbmcgdGhlIHNjaGVtYSwgeW91IHdvdWxkIHR5cGljYWxseSBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kcyB0byBnZW5lcmF0ZSBtaWdyYXRpb25zIGFuZCBhcHBseSB0aGVtIHRvIHlvdXIgZGF0YWJhc2U6CgpgYGBiYXNoCm5weCBwcmlzbWEgbWlncmF0ZSBkZXYKbnB4IHByaXNtYSBtaWdyYXRlIGRldiAtLW5hbWUgaW5pdAoKbnB4IHByaXNtYSBtaWdyYXRlIHVwIC0tZXhwZXJpbWVudGFsCmBgYAoKPiBUaGVzZSBjb21tYW5kcyB3aWxsIGNyZWF0ZSBhbmQgYXBwbHkgbWlncmF0aW9ucyB0byB5b3VyIGRhdGFiYXNlIGJhc2VkIG9uIHRoZSBzY2hlbWEgeW91J3ZlIGRlZmluZWQuCj4K readmeEtag: '"2d505bc56c1f57828ca645e415abf39a8e83632c"' readmeLastModified: Sun, 18 Aug 2024 05:19:12 GMT repositoryId: 838831998 description: >- The Simple Employee Maintenance web application is designed to streamline the management of employee records and department assignments within an organization. This full-stack application provides essential CRUD operations for employees and departments, alongside a user-friendly interface to view and manage employee information. created: '2024-08-06T12:35:26Z' updated: '2024-08-18T05:19:15Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: howmarketing logo: https://avatars.githubusercontent.com/u/72627426?v=4 license: MIT repoEtag: '"2654068f4763d925f87b2c7b9d66227e9c8af30766b188978a93698c57983900"' repoLastModified: Sun, 18 Aug 2024 05:19:15 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/brisinger/openapi v3: true id: 7f58a1495b387662d0e44b3d24f4ce00 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWNzIHdpdGggU3dhZ2dlciBUb29scwoKIyMgUHJlLXJlcXVpc2l0ZXMKCi0gQmFzaWMga25vd2xlZGdlIG9uIEFQSXMKLSBJbnRlcmVzdCB0byBsZWFybiBhbmQgZXhwbG9yZSBhYm91dCBPcGVuQVBJICYgU3dhZ2dlciB0b29scwoKIyBJbXBvcnRhbnQgTGlua3MKCi0gT3BlbiBBUEkgV2Vic2l0ZSAtIGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZwotIFN3YWdnZXIgV2Vic2l0ZSAtIGh0dHBzOi8vc3dhZ2dlci5pbwotIFN3YWdnZXIgRWRpdG9yIC0gaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pbwotIFN3YWdnZXJIdWIgRXhwbG9yZSAtIGh0dHBzOi8vZXhwbG9yZS5zd2FnZ2VyaHViLmNvbS8KLSBPcGVuQVBJIE1hcCAtIGh0dHBzOi8vb3BlbmFwaS1tYXAuYXBpaGFuZHltYW4uaW8vCi0gT3BlbkFQSSAmIFNwcmluZ0Jvb3QgbGlicmFyeSAtIGh0dHBzOi8vc3ByaW5nZG9jLm9yZwotIExpc3Qgb2YgT3BlbkFQSSB0b29scyAtIGh0dHBzOi8vb3BlbmFwaS50b29scy8KLSBQcmlzbSBNb2NrIHNlcnZlciAtIGh0dHBzOi8vc3RvcGxpZ2h0LmlvL29wZW4tc291cmNlL3ByaXNtCi0gU1dBUEkgVGhlIFN0YXIgV2FycyBBUEkgLSBodHRwczovL3N3YXBpLmRldi8KLSBSRVFSRVMgTW9jayBBUElzIC0gaHR0cHM6Ly9yZXFyZXMuaW4= readmeEtag: '"1b581e0ce6d20e6f56a11eba5425139db31a4330"' readmeLastModified: Wed, 21 Aug 2024 05:39:51 GMT repositoryId: 840953515 description: OpenAPI Specs with Swagger Tools created: '2024-08-11T07:44:04Z' updated: '2024-08-21T05:40:29Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: Brisinger logo: https://avatars.githubusercontent.com/u/17980335?v=4 license: Apache-2.0 repoEtag: '"bc86d873fbc8fc7db0ca181da76dfe2a99160470b5925b21b31af55327759afc"' repoLastModified: Wed, 21 Aug 2024 05:40:29 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/open-banking/standingorders v3: true repositoryMetadata: base64Readme: >- IyBzdGFuZGluZ09yZGVycwpPcGVuIEJhbmtpbmcgU3RhbmRpbmcgT3JkZXJzIEFQSSBidWlsdCBvbiB0b3Agb2YgbGlnaHQtNGoK readmeEtag: '"63ad7a532c05ffd67964bdc9bb5be93facca67cf"' readmeLastModified: Thu, 25 Jul 2024 20:09:50 GMT repositoryId: 235862750 description: Open Banking Standing Orders API built on top of light-4j created: '2020-01-23T18:48:43Z' updated: '2024-09-04T18:31:43Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"d4ca0891edb2e653a1e88bc0f6785a3b492c03ba35b1a931ff7200583157c790"' repoLastModified: Wed, 04 Sep 2024 18:31:43 GMT foundInMaster: true category: Server id: 179c04aca24503cf8be7f31c1cd155be - source: openapi3 tags repository: https://github.com/expediagroup/spec-transformer v3: true id: 33e7adea5a5bffe320e564ae655045c1 repositoryMetadata: base64Readme: >- IyBTcGVjIFRyYW5zZm9ybWVyCgpUaGUgQVBJIFNwZWMgVHJhbnNmb3JtZXIgTGlicmFyeQoKIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCm5wbSBpbnN0YWxsIEBleHBlZGlhZ3JvdXAvc3BlYy10cmFuc2Zvcm1lcgpgYGAKCiMjIFVzYWdlCgpQaWNrIG9uZSBvZiB0aGUgZm9sbG93aW5nIHdheXMgdG8gdXNlIHRoZSBsaWJyYXJ5OgoKIyMjIDEuIFVzZSBzcGVjLXRyYW5zZm9ybWVyIGFzIGEgbGlicmFyeQoKRXhhbXBsZToKCmBgYHR5cGVzY3JpcHQKaW1wb3J0IHsgSGVhZGVyUmVtb3ZhbFRyYW5zZm9ybWVyLCBUcmFuc2Zvcm1lckNoYWluLCBZYW1sUmVhZGVyLCBZYW1sV3JpdGVyIH0gZnJvbSAnQHNwZWMtdHJhbnNmb3JtZXInOwoKY29uc3Qgb3BlbmFwaXNwZWNzID0gJy4uLic7IC8vIE9wZW5BUEkgc3BlY3MgaW4gSlNPTiBvciBZQU1MIGZvcm1hdAoKY29uc3QgdHJhbnNmb3JtZXJzID0gbmV3IFRyYW5zZm9ybWVyQ2hhaW4oWwogIG5ldyBIZWFkZXJSZW1vdmFsVHJhbnNmb3JtZXIoKSAvLyBBZGQgbW9yZSB0cmFuc2Zvcm1lcnMgaGVyZQpdKTsKCmNvbnN0IHRyYW5zZm9ybWVkU3BlY3MgPSB0cmFuc2Zvcm1lcnMudHJhbnNmb3JtKG9wZW5hcGlzcGVjcywgWWFtbFJlYWRlciwgWWFtbFdyaXRlcik7Cgpjb25zb2xlLmxvZyh0cmFuc2Zvcm1lZFNwZWNzKTsKYGBgCgojIyMgMi4gVXNlIHNwZWMtdHJhbnNmb3JtZXIgYXMgYSBDTEkKCmBgYGJhc2gKbnB4IC1wIEBleHBlZGlhZ3JvdXAvc3BlYy10cmFuc2Zvcm1lciBjbGkgLS1oZWxwICAjIFNob3cgaGVscCwgYW5kIGxpc3QgYWxsIGF2YWlsYWJsZSBjb21tYW5kcy4KYGBgCgpFeGFtcGxlOgoKYGBgYmFzaApucHggLXAgQGV4cGVkaWFncm91cC9zcGVjLXRyYW5zZm9ybWVyIGNsaSAtLWlucHV0IHNwZWNzLnlhbWwgLS1vdXRwdXQgb3V0LnlhbWwgLS1oZWFkZXJzICAjIFJlYWQgc3BlY3MgZnJvbSBzcGVjcy55YW1sLCByZW1vdmUgaGVhZGVycywgYW5kIHdyaXRlIHRvIG91dC55YW1sCmBgYAoKIyMjIDMuIEJ1aWxkIGFuZCBydW4gc3BlYy10cmFuc2Zvcm1lciBsb2NhbGx5CgpgYGBiYXNoCm5wbSBpbnN0YWxsCm5wbSBydW4gYnVpbGQKYGBgCgojIyMgVGVzdAoKYGBgYmFzaApucG0gdGVzdApgYGAKCi0tLQoKIyMgRGV2ZWxvcG1lbnQgVGVhbQotIFtNb2hhbW1hZCBOb29yIEFidSBLaGxlaWZdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2hub29yOTQpCi0gW09zYW1hIFNhbG1hbl0oaHR0cHM6Ly9naXRodWIuY29tL29zYW1hLXNhbG1hbjk5KQoK readmeEtag: '"b96799fa76e57d9b9d617ce95137c0dc0f122bf4"' readmeLastModified: Mon, 12 Aug 2024 10:21:45 GMT repositoryId: 651020076 description: The API Spec Transformer Library created: '2023-06-08T10:09:10Z' updated: '2024-09-02T04:31:21Z' language: TypeScript archived: false stars: 1 watchers: 5 forks: 0 owner: ExpediaGroup logo: https://avatars.githubusercontent.com/u/38541875?v=4 license: Apache-2.0 repoEtag: '"5aa6ff596e068c7f9fa79bedc81f7728c547087222946c7c54c1bd9a2e4caa6b"' repoLastModified: Mon, 02 Sep 2024 04:31:21 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/sensiblewood/swaggerui-webpack-boilerplate v3: true repositoryMetadata: base64Readme: >- T3ZlcnZpZXcKPT09CgpUaGlzIGlzIGJvaWxlcnBsYXRlIHByb2plY3QgZm9yIHJ1bm5pbmcgU3dhZ2dlciBVSSB3aXRoIFdlYnBhY2suIEl0IGV4aXN0cyBiZWNhdXNlOgoKKiBJIHdhbnRlZCBhbiBlYXN5IHdheSBvZiBzbGFtbWluZyBtdWx0aXBsZSBBUEkgc3BlY2lmaWNhdGlvbnMgaW50byBhIFN3YWdnZXIgVUktYmFzZWQgcHJvamVjdCBhbmQgcnVubmluZyBpdCBsb2NhbGx5LgoqIEkgZGlkbid0IHdhbnRlZCB0byBtYW51YWxseSBjaGFuZ2UgdGhlIEphdmFzY3JpcHQgZXZlcnkgdGltZSBJIGFkZGVkIGFuIEFQSSBzcGVjaWZpY2F0aW9uLgoqIFVzaW5nIE5QTS9XZWJwYWNrIG1lYW5zIG15IGRlcGVuZGVuY2llcyBjYW4gYmUga2VwdCB1cC10by1kYXRlIGVhc2lseS4KClN1cmUgdGhlcmUncyBvdGhlciB3YXlzIG9mIGRvaW5nIHRoaXMsIGJ1dCBzdGlsbC4uLgoKflRoZXJlJ3MgYWxzbyBhIFJlZG9jIHBhZ2UgLSBhbHRob3VnaCB0aGlzIGlzIENETi1iYXNlZCBhcyBJIGFtIGxhenkufiBJIHJlbW92ZWQgdGhlIFJlZG9jIHZlcnNpb24gZm9yIHRoZSB0aW1lIGJlaW5nLgoKVXNhZ2UKPT09CgpUbyB1c2UgdGhpcyBwcm9qZWN0IGNsb25lIGFuZCBjZCBpbnRvIGl0IHRoZW46CgpgYGBiYXNoCm5wbSBpCmNwIFt5b3VyIFN3YWdnZXIvT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBhcyBZQU1MXSBzcmMvc3BlY3MKbnBtIHJ1biBkZXYKYGBgCgo6dGh1bWJzdXA6CgpJbXByb3ZlbWVudHMKPT09CgoqIFsgXSBQYXJhbWV0ZXJpc2UgQVBJIHNwZWNpZmljYXRpb24gZG9jdW1lbnQgbmFtZS4KKiBbIF0gUmVmYWN0b3IgYHNjcmlwdHMvcmV3cml0ZS11cmxzLmpzYCBhcyBhIFdlYnBhY2sgcGx1Z2luLgoK readmeEtag: '"507aa0c5f03cd0c62a0bfc8ae13d98dda0e01e12"' readmeLastModified: Tue, 16 Oct 2018 11:51:37 GMT repositoryId: 151232364 description: >- Boilerplate for spinning up local Swagger UI server, orchestrated through Webpack created: '2018-10-02T09:41:56Z' updated: '2021-02-15T13:50:01Z' language: JavaScript archived: false stars: 1 watchers: 1 forks: 1 owner: SensibleWood logo: https://avatars.githubusercontent.com/u/2420069?v=4 repoEtag: '"165f296bfa7c7c1d092f89aafef0fb8f9985e44dd399de56f7df41b3b11e714f"' repoLastModified: Mon, 15 Feb 2021 13:50:01 GMT foundInMaster: true category: - Server - Server Implementations id: 3d8bdcdeba005c2ba64cd69ec363f143 - source: openapi3 tags repository: https://github.com/tdbrian/react-openapi-hooks-gen v3: true repositoryMetadata: base64Readme: >- IyMgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW46IEFuIE9wZW5BUEkgMyBjb2RlIGdlbmVyYXRvciBmb3IgUmVhY3QgdXNpbmcgaG9va3MsIHJlZHV4LCBhbmQgdHlwZXNjcmlwdAoKIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS90ZGJyaWFuL3JlYWN0LW9wZW5hcGktaG9va3MtZ2VuL3dvcmtmbG93cy9idWlsZC9iYWRnZS5zdmcpCiFbdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL3RkYnJpYW4vcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW4vd29ya2Zsb3dzL3Rlc3QvYmFkZ2Uuc3ZnKQoKVGhpcyBwcm9qZWN0IGlzIGEgTlBNIG1vZHVsZSB0aGF0IGdlbmVyYXRlcyBtb2RlbCBpbnRlcmZhY2VzLCByZWR1eCBhY3Rpb25zIGFuZCByZWR1Y2VycywgYW5kIGhvb2tzIGZyb20gYW4gW09wZW5BcGkgM10oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnLykgW3NwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKS4KVGhlIGdlbmVyYXRlZCBjbGFzc2VzIGZvbGxvdyB0aGUgcHJpbmNpcGxlcyBvZiBbUmVhY3RdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvKS4KVGhlIGdlbmVyYXRlZCBjb2RlIGlzIGNvbXBhdGlibGUgd2l0aCBSZWFjdCB2MTYuMTMuMS4KCiMjIEhpZ2hsaWdodHMKCi0gSXQgc2hvdWxkIGJlIGVhc3kgdG8gdXNlIGFuZCB0byBpbnRlZ3JhdGUgd2l0aCBDcmVhdGUgUmVhY3QgQXBwIENMSTsKLSBJdCBzaG91bGQgc3VwcG9ydCBgT3BlbkFQSWAgc3BlY2lmaWNhdGlvbnMgaW4gYm90aCBgSlNPTmAgYW5kIGBZQU1MYCBmb3JtYXRzOwotIGBPcGVuQVBJYCBzdXBwb3J0cyBjb21iaW5hdGlvbnMgb2YgcmVxdWVzdCBib2R5IGFuZCByZXNwb25zZSBjb250ZW50IHR5cGVzLgogIEZvciBlYWNoIGNvbWJpbmF0aW9uLCBhIGRpc3RpbmN0IG1ldGhvZCBpcyBnZW5lcmF0ZWQ7Ci0gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNwZWNpZnkgYSBzdWJzZXQgb2YgcmVkdWNlcnMgdG8gZ2VuZXJhdGUuCiAgT25seSB0aGUgbW9kZWxzIGFjdHVhbGx5IHVzZWQgYnkgdGhhdCBzdWJzZXQgc2hvdWxkIGJlIGdlbmVyYXRlZDsKLSBJdCBzaG91bGQgYmUgZWFzeSB0byBzcGVjaWZ5IGEgcm9vdCBVUkwgZm9yIHRoZSB3ZWIgc2VydmljZSBlbmRwb2ludHM7Ci0gR2VuZXJhdGVkIGZpbGVzIHNob3VsZCBjb21waWxlIHVzaW5nIHN0cmljdCBgVHlwZVNjcmlwdGAgY29tcGlsZXIgZmxhZ3MsIHN1Y2ggYXMgYG5vVW51c2VkTG9jYWxzYCBhbmQgYG5vVW51c2VkUGFyYW1ldGVyc2AuCi0gSXQgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgZmV0Y2ggYXBpCi0gSXQgc2hvdWxkIHVzZSByZWR1eCB0byBlYXNpbHkgYWxsb3cgZGV2cyB0byBzZWUgY3VycmVudCBzdGF0ZSBhbmQgYWN0aW9ucyBiZWluZyBmaXJlZAotIEl0IHNob3VsZCBleHBvc2UgZnVuY3Rpb25hbGl0eSB0byB2aWV3cyB0aHJvdWdoIGN1c3RvbSBob29rcwoKIyMgTGltaXRhdGlvbnMKCi0gT25seSBzdGFuZGFyZCBPcGVuQVBJIDMgZGVzY3JpcHRpb25zIHdpbGwgYmUgZ2VuZXJhdGVkLiBgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW5gIGFsbG93cyBzZXZlcmFsIGV4dGVuc2lvbnMsIHNwZWNpYWxseSB0eXBlcyBmcm9tIEpTT04gc2NoZW1hLCBidXQgdGhleSBhcmUgb3V0IG9mIHNjb3BlIGZvciBgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW5gLiBUaGVyZSBpcywgaG93ZXZlciwgc3VwcG9ydCBmb3IgYSBmZXcgW3ZlbmRvciBleHRlbnNpb25zXSgjU3VwcG9ydGVkX3ZlbmRvcl9leHRlbnNpb25zKTsKLSBTZXJ2ZXJzIHBlciBvcGVyYXRpb24gYXJlIG5vdCBzdXBwb3J0ZWQ7Ci0gT25seSB0aGUgZmlyc3Qgc2VydmVyIGlzIHVzZWQgYXMgYSBkZWZhdWx0IHJvb3QgVVJMIGluIHRoZSBjb25maWd1cmF0aW9uOwotIE5vIGRhdGEgdHJhbnNmb3JtYXRpb24gaXMgZXZlciBwZXJmb3JtZWQgYmVmb3JlIHNlbmRpbmcgLyBhZnRlciByZXR1cm5pbmcgZGF0YS4KICBUaGlzIG1lYW5zIHRoYXQgYSBwcm9wZXJ0eSBvZiB0eXBlIGBzdHJpbmdgIGFuZCBmb3JtYXQgYGRhdGUtdGltZWAgd2lsbCBhbHdheXMgYmUgZ2VuZXJhdGVkIGFzIGBzdHJpbmdgLCBub3QgYERhdGVgLgogIE90aGVyd2lzZSBldmVyeSBBUEkgY2FsbCB3b3VsZCBuZWVkIHRvIGhhdmUgYSBwcm9jZXNzaW5nIHRoYXQgd291bGQgdHJhdmVyc2UgdGhlIHJldHVybmVkIG9iamVjdCBncmFwaCBiZWZvcmUgc2VuZGluZyB0aGUgcmVxdWVzdAogIHRvIHJlcGxhY2UgYWxsIGRhdGUgcHJvcGVydGllcyBieSBgRGF0ZWAuIFRoZSBzYW1lIGFwcGxpZXMgdG8gc2VudCByZXF1ZXN0cy4gU3VjaCBvcGVyYXRpb25zIGFyZSBvdXQgb2Ygc2NvcGUgZm9yIGByZWFjdC1vcGVuYXBpLWhvb2tzLWdlbmA7CgojIyBJbnN0YWxsaW5nIGFuZCBydW5uaW5nCgpZb3UgbWF5IHdhbnQgdG8gaW5zdGFsbCBgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW5gIGdsb2JhbGx5IG9yIGp1c3Qgb24geW91ciBwcm9qZWN0LiBIZXJlIGlzIGFuIGV4YW1wbGUgZm9yIGEgZ2xvYmFsIHNldHVwOgoKYGBgYmFzaAokIG5wbSBpbnN0YWxsIC1nIHJlYWN0LW9wZW5hcGktaG9va3MtZ2VuCiQgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW4gLS1pbnB1dCBteS1hcGkueWFtbCAtLW91dHB1dCBteS1hcHAvc3JjL2FwaQpgYGAKClRoaXMgd2lsbCBleHBlY3QgdGhlIGZpbGUgYG15LWFwaS55YW1sYCB0byBiZSBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnksIGFuZCB3aWxsIGdlbmVyYXRlIHRoZSBmaWxlcyBvbiBgbXktYXBwL3NyYy9hcGlgLgoKIyMgQ29uZmlndXJhdGlvbiBmaWxlIGFuZCBDTEkgYXJndW1lbnRzCgpJZiB0aGUgZmlsZSBgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW4uanNvbmAgZXhpc3RzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgaXQgd2lsbCBiZSByZWFkLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHJ1biBgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW4gLS1jb25maWcgbXktY29uZmlnLmpzb25gIChjb3VsZCBhbHNvIGJlIGAtY2ApIHRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBmaWxlLCBvciBldmVuIHNwZWNpZnkgdGhlIGlucHV0IC8gb3V0cHV0IGFzIGByZWFjdC1vcGVuYXBpLWhvb2tzLWdlbiAtaSBpbnB1dC55YW1sYCBvciBgcmVhY3Qtb3BlbmFwaS1ob29rcy1nZW4gLWkgaW5wdXQueWFtbCAtbyAvdG1wL2dlbmVyYXRpb25gLgpUaGUgb25seSByZXF1aXJlZCBjb25maWd1cmF0aW9uIHByb3BlcnR5IGlzIGBpbnB1dGAsIHdoaWNoIHNwZWNpZmllZCB0aGUgYE9wZW5BUElgIHNwZWNpZmljYXRpb24gZmlsZS4gVGhlIGRlZmF1bHQgYG91dHB1dGAgaXMgYHNyYy9hcGlgLgoKRm9yIGEgbGlzdCB3aXRoIGFsbCBwb3NzaWJsZSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHNlZSB0aGUgW0pTT04gc2NoZW1hIGZpbGVdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90ZGJyaWFuL3JlYWN0LW9wZW5hcGktaG9va3MtZ2VuL21hc3Rlci9yZWFjdC1vcGVuYXBpLWhvb2tzLWdlbi1zY2hlbWEuanNvbikuCllvdSBjYW4gYWxzbyBydW4gYHJlYWN0LW9wZW5hcGktaG9va3MtZ2VuIC0taGVscGAgdG8gc2VlIGFsbCBhdmFpbGFibGUgb3B0aW9ucy4KRWFjaCBvcHRpb24gaW4gdGhlIEpTT04gc2NoZW1hIGNhbiBiZSBwYXNzZWQgaW4gYXMgYSBDTEkgYXJndW1lbnQsIGJvdGggaW4gY2FtZWwgY2FzZSwgbGlrZSBgLS1pbmNsdWRlVGFncyB0YWcxLHRhZzIsdGFnM2AsIG9yIGluIGtlYmFiIGNhc2UsIGxpa2UgYC0tZXhjbHVkZS10YWdzIHRhZzEsdGFnMix0YWczYC4KCkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYXRpb24gZmlsZToKCmBgYGpzb24KewogICIkc2NoZW1hIjogIm5vZGVfbW9kdWxlcy9yZWFjdC1vcGVuYXBpLWhvb2tzLWdlbi9yZWFjdC1vcGVuYXBpLWhvb2tzLWdlbi1zY2hlbWEuanNvbiIsCiAgImlucHV0IjogIm15LWZpbGUuanNvbiIsCiAgIm91dHB1dCI6ICJvdXQvcGVyc29uLXBsYWNlIiwKICAiaWdub3JlVW51c2VkTW9kZWxzIjogZmFsc2UKfQpgYGAKCiMjIFNwZWNpZnlpbmcgdGhlIHJvb3QgVVJMIC8gd2ViIHNlcnZpY2UgZW5kcG9pbnQKClRCRAoKIyMgUGFzc2luZyByZXF1ZXN0IGhlYWRlcnMgLyBjdXN0b21pemluZyB0aGUgcmVxdWVzdAoKVEJECgojIyBTdXBwb3J0ZWQgdmVuZG9yIGV4dGVuc2lvbnMKCkJlc2lkZXMgdGhlIE9wZW5BUEkgMyBzcGVjaWZpY2F0aW9uLCB0aGUgZm9sbG93aW5nIHZlbmRvciBleHRlbnNpb25zIGFyZSBzdXBwb3J0ZWQ6CgotIGB4LW9wZXJhdGlvbi1uYW1lYDogRGVmaW5lZCBpbiBbTG9vcEJhY2tdKGh0dHBzOi8vbG9vcGJhY2suaW8vZG9jL2VuL2xiNC9EZWNvcmF0b3JzX29wZW5hcGkuaHRtbCksIHRoaXMgZXh0ZW5zaW9uIGNhbiBiZSB1c2VkIGluIG9wZXJhdGlvbnMgdG8gc3BlY2lmeSB0aGUgYWN0dWFsIG1ldGhvZCBuYW1lLiBUaGUgYG9wZXJhdGlvbklkYCBpcyByZXF1aXJlZCB0byBiZSB1bmlxdWUgYW1vbmcgYWxsIHRhZ3MsIGJ1dCB3aXRoIHRoaXMgZXh0ZW5zaW9uLCBhIHNob3J0ZXIgbWV0aG9kIG5hbWUgY2FuIGJlIHVzZWQgcGVyIHRhZyAoc2VydmljZSkuIEV4YW1wbGU6CgpgYGB5YW1sCnBhdGhzOgogIC91c2VyczoKICAgIGdldDoKICAgICAgdGFnczoKICAgICAgICAtIFVzZXJzCiAgICAgIG9wZXJhdGlvbklkOiBsaXN0VXNlcnMKICAgICAgeC1vcGVyYXRpb24tbmFtZTogbGlzdAogICAgICAjIC4uLgogIC9wbGFjZXM6CiAgICBnZXQ6CiAgICAgIHRhZ3M6CiAgICAgICAgLSBQbGFjZXMKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RQbGFjZXMKICAgICAgeC1vcGVyYXRpb24tbmFtZTogbGlzdAogICAgICAjIC4uLgpgYGAKCi0gYHgtZW51bU5hbWVzYDogR2VuZXJhdGVkIGJ5IFtOU3dhZ10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZyksIHRoaXMgZXh0ZW5zaW9uIGFsbG93cyBzY2hlbWFzIHdoaWNoIGFyZSBlbnVtZXJhdGlvbnMgdG8gY3VzdG9taXplIHRoZSBlbnVtIG5hbWVzLiBJdCBtdXN0IGJlIGFuIGFycmF5IHdpdGggdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBhY3R1YWwgZW51bSB2YWx1ZXMuIEV4YW1wbGU6CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIEh0dHBTdGF0dXNDb2RlOgogICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgIGVudW06CiAgICAgICAgLSAyMDAKICAgICAgICAtIDQwNAogICAgICAgIC0gNTAwCiAgICAgIHgtZW51bU5hbWVzOgogICAgICAgIC0gT0sKICAgICAgICAtIE5PVF9GT1VORAogICAgICAgIC0gSU5URVJOQUxfU0VSVkVSX0VSUk9SCmBgYAoKIyMgRGV2ZWxvcGluZyBhbmQgY29udHJpYnV0aW5nCgpUaGUgZ2VuZXJhdG9yIGl0c2VsZiBpcyB3cml0dGVuIGluIFR5cGVTY3JpcHQuIFdoZW4gYnVpbGRpbmcsIHRoZSBjb2RlIGlzIHRyYW5zcGlsZWQgdG8gSmF2YVNjcmlwdCBpbiB0aGUgYGRpc3RgIGZvbGRlci4gQW5kIHRoZSBgZGlzdGAgZm9sZGVyIGlzIHRoZSBvbmUgdGhhdCBnZXRzIHB1Ymxpc2hlZCB0byBOUE0uIEV2ZW4gdG8gcHJldmVudCBwdWJsaXNoaW5nIGZyb20gdGhlIHdyb25nIHBhdGgsIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGhhcyBgInByaXZhdGUiOiB0cnVlYCwgd2hpY2ggZ2V0cyByZXBsYWNlZCBieSBgZmFsc2VgIGluIHRoZSBidWlsZCBwcm9jZXNzLgoKT24gdGhlIG90aGVyIGhhbmQsIGZvciBkZXZlbG9waW5nIC8gcnVubmluZyB0ZXN0cywgYGphc21pbmUtdHNgIGlzIHVzZWQsIHNvIHRoZSB0ZXN0cyBydW4gZGlyZWN0bHkgZnJvbSBUeXBlU2NyaXB0LiBUaGVyZSdzIGV2ZW4gYSBjb21taXR0ZWQgVmlzdWFsU3R1ZGlvIENvZGUgZGVidWcgY29uZmlndXJhdGlvbiBmb3IgdGVzdHMuCgpBZnRlciBkZXZlbG9waW5nIHRoZSBjaGFuZ2VzLCB0byBgbGlua2AgdGhlIG1vZHVsZSBhbmQgdGVzdCBpdCB3aXRoIG90aGVyIG5vZGUgcHJvamVjdHMsIHJ1biB0aGUgZm9sbG93aW5nOgoKYGBgYmFzaApucG0gcnVuIGJ1aWxkCmNkIGRpc3QKbnBtIGxpbmsKYGBgCgpBdCB0aGF0IHBvaW50LCB0aGUgZ2xvYmFsbHkgYXZhaWxhYmxlIHJlYWN0LW9wZW5hcGktaG9va3MtZ2VuIHdpbGwgYmUgdGhlIG9uZSBjb21waWxlZCB0byB0aGUgYGRpc3RgIGZvbGRlci4K readmeEtag: '"f47549a41abff4d4e6f75ff06aa12a1a2ac879fa"' readmeLastModified: Thu, 18 Jun 2020 03:26:33 GMT repositoryId: 273115846 description: An OpenAPI 3 codegen for React Hooks using Typescript created: '2020-06-18T01:42:52Z' updated: '2020-09-20T23:35:07Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: tdbrian logo: https://avatars.githubusercontent.com/u/1131354?v=4 license: MIT repoEtag: '"df29f4eaffffc3a4fecf14e564163fc1a7bc26ac2cecd5577862b2b651a7ec9f"' repoLastModified: Sun, 20 Sep 2020 23:35:07 GMT foundInMaster: true category: - Testing - Parsers id: ae6d3cb6d80559b99967f4f833af10af - source: openapi3 tags repository: https://github.com/weaponsforge/apidocs-swagger-ui v3: true id: ca0080f7abdd181cfa141adbbb44becd repositoryMetadata: base64Readme: >- IyMgYXBpZG9jcy1zd2FnZ2VyLXVpCgoqKmFwaWRvY3Mtc3dhZ2dlci11aSoqIGZlYXR1cmVzIGEgc2ltcGxlIFRvZG8gbm90ZXMtdGFraW5nIENSVVAgQVBJIGJvcnJvd2VkIGZyb20gW2B0b2RvLW5leHRgXShodHRwczovL2dpdGh1Yi5jb20vd2VhcG9uc2ZvcmdlL3RvZG8tbmV4dCkncyBzZXJ2ZXIuCgpUaGlzIHJlcG9zaXRvcnkgYWltcyB0byB0ZXN0IHVzaW5nIFtzd2FnZ2VyLXVpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkgZm9yIGNyZWF0aW5nIG1vZGVybiwgcmVzcG9uc2l2ZSBhbmQgaW50ZXJhY3RpdmUgUkVTVCBBUEkgZG9jdW1lbnRhdGlvbnMgYW5kIHRvIGZhbWlsaWFyaXplIG9uZXNlbGYgd2l0aCB0aGUgW09wZW5BUEldKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMCkgc3BlY2lmaWNhdGlvbnMsIHYzLjEuMCBhcyBvZiB0aGlzIHdyaXRpbmcuCgohW3NjcmVlbnNob3RdKC9hc3NldHMvdGh1bWJuYWlsLnBuZykKCiMjIFJlcXVpcmVtZW50cwoKVGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgZm9yIHRoaXMgcHJvamVjdCdzIGxvY2FsaG9zdCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC4gRmVlbCBmcmVlIHRvIHVzZSBvdGhlciBkZXBlbmRlbmN5IHZlcnNpb25zIGFzIG5lZWRlZC4KCjEuIFdpbmRvd3MgMTAgT1MKMi4gbnZtIGZvciBXaW5kb3dzIHYxLjEuOQozLiBOb2RlSlMgMTYuMTQuMiBpbnN0YWxsZWQgdXNpbmcgbnZtCiAgIC0gbm9kZSB2MTYuMTQuMgogICAtIG5wbSB2OC41LjAKNC4gTW9uZ29EQiBDb21tdW5pdHkgRWRpdGlvbiAoZm9yIFdpbmRvd3MpCiAgIC0gdmVyc2lvbiA0LjQuMAogICAtIGFyY2hpdGVjdHVyZTogeDg2XzY0CgojIyMgQ29yZSBMaWJyYXJpZXMgYW5kIEZyYW1ld29ya3MKCjEuIHN3YWdnZXItdWkgdjQuMTQuMAoyLiB3ZWJwYWNrIHY1Ljc0LjAKMy4gd2VicGFjay1jbGkgdjQuMTAuMAo0LiBtb25nb29zZSB2Ni41LjIKCiMjIEluc3RhbGxhdGlvbgoKMS4gQ2xvbmUgdGhpcyByZXBvc2l0b3J5Ljxicj4KYGh0dHBzOi8vZ2l0aHViLmNvbS93ZWFwb25zZm9yZ2UvdG9kby1uZXh0LmdpdGAKCjIuIEluc3RhbGwgdGhlIGJhY2tlbmQgc2VydmVyIGRlcGVuZGVuY2llcy48YnI+CmBucG0gaW5zdGFsbGAKCjMuIEluc3RhbGwgdGhlICoqZG9jcyoqIGRlcGVuZGVuY2llcy48YnI+CmBucG0gcnVuIGRvY3M6aW5zdGFsbGAKCjQuIFNldCB1cCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBDcmVhdGUgYSBgLmVudiBgZmlsZSBpbnNpZGUgdGhlIHJvb3QgcHJvamVjdCBkaXJlY3Rvcnkgd2l0aCByZWZlcmVuY2UgdG8gdGhlIGAuZW52LmV4YW1wbGVgIGZpbGUuPGJyPgoKICAgfCBWYXJpYWJsZSBOYW1lICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAogICB8IE1PTkdPX1VSSSAgICAgICAgICAgICB8IE1vbmdvREIgY29ubmVjdGlvbiBzdHJpbmcuPGJyPkRlZmF1bHQgdmFsdWUgdXNlcyB0aGUgbG9jYWxob3N0IE1vbmdvREIgY29ubmVjdGlvbiBzdHJpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgfCBBTExPV0VEX09SSUdJTlMgICAgICAgfCBJUC9kb21haW4gb3JpZ2lucyBpbiBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBBUEkgaWYgYEFMTE9XX0NPUlM9MWAuPGJyPiBJbmNsdWRlIGBodHRwOi8vbG9jYWxob3N0OjgwODBgIGJ5IGRlZmF1bHQgdG8gYWxsb3cgQ09SUyBhY2Nlc3MgdG8gdGhlIHN3YWdnZXItdWkgZG9jdW1lbnRhdGlvbiBhcHAgaW4gdGhlICoqL2RvY3MqKiBkaXJlY3RvcnkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgIHwgQUxMT1dfQ09SUyAgICAgICAgICAgIHwgQWxsb3cgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgKENPUlMpIG9uIHRoZSBBUEkgZW5kcG9pbnRzLjxicj48YnI+RGVmYXVsdCB2YWx1ZSBpcyBgMWAsIGFsbG93aW5nIGFjY2VzcyB0byBkb21haW5zIGxpc3RlZCBpbiBgQUxMT1dFRF9PUklHSU5TYC48YnI+IFNldHRpbmcgdG8gYDBgIHdpbGwgYmxvY2sgQUpBWCBBUEkgcmVxdWVzdHMgZnJvbSBjbGllbnQgd2Vic2l0ZXMgaG9zdGVkIG9uIG90aGVyIGRvbWFpbnMsIGJ1dCB3aWxsIGFsbG93IHJlcXVlc3RzIGZyb20gUG9zdG1hbiBhbmQgb3RoZXIgdGVzdGluZyB0b29scy4gfAogICB8IEFQSV9XSU5ET1dfTVNfTUlOVVRFUyB8IFRpbWUgaW4gYG1pbnV0ZXNgIHdoZXJlIGBBUElfUkFURV9MSU1JVGAgdGltZXMgb2Ygc3VjY2Vzc2l2ZSBjYWxscyBmcm9tIGFuIElQIGFyZSBhbGxvd2VkIG9uIHRoZSBzZXJ2ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgfCBBUElfUkFURV9MSU1JVCAgICAgICAgfCBJdCdzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIEFQSSByZXF1ZXN0cyBvbiB0aGUgc2VydmVyIHBlciBgQVBJX1dJTkRPV19NU19NSU5VVEVTYC4gPGJyPlVzZXJzIHdpbGwgcmVjZWl2ZSBhIGA0MjkgLSBUb28gbWFueSByZXF1ZXN0c2Agc2VydmVyIGVycm9yIGFmdGVyIGhpdHRpbmcgdGhlIGxpbWl0Ljxicj5UaGUgbGltaXQgd2lsbCByZXNldCBhZnRlciBBUElfV0lORE9XX01TX01JTlVURVMgbWludXRlcywgYWZ0ZXIgd2hpY2ggdXNlcnMgY2FuIHJlc3VtZSBtYWtpbmcgQVBJIHJlcXVlc3RzLiAgICAgICAgICAgICAgICB8CgojIyBVc2FnZQoKMS4gUnVuIHRoZSBzZXJ2ZXIuPGJyPgpgbnBtIHN0YXJ0YAoKMS4gUnVuIHRoZSBkb2NzIGFwaSBvbiBkZXZlbG9wbWVudCBtb2RlLjxicj4KYG5wbSBydW4gZG9jczpkZXZgCgojIyBBdmFpbGFibGUgU2NyaXB0cwoKIyMjIGBucG0gc3RhcnRgCgpSdW4gdGhlIGV4cHJlc3Mgc2VydmVyIGZvciBwcm9kdWN0aW9uIG1vZGUuCgojIyMgYG5wbSBydW4gZGV2YAoKUnVuIHRoZSBzZXJ2ZXIgZm9yIGRldmVsb3BtZW50IG1vZGUgdXNpbmcgW25vZGVtb25dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL25vZGVtb24pLgoKIyMjIGBucG0gcnVuIGxpbnRgCgpMaW50IHRoZSBzZXJ2ZXIgSmF2YVNjcmlwdCBzb3VyY2UgY29kZXMuCgojIyMgYG5wbSBydW4gbGludDpmaXhgCgpGaXggdGhlIEphdmFTY3JpcHQgbGludCBlcnJvcnMuCgojIyMgYG5wbSBydW4gZG9jczppbnN0YWxsYAoKSW5zdGFsbHMgdGhlIChzd2FnZ2VyLXVpICsgd2VicGFjaykgZGVwZW5kZW5jaWVzIG9uIHRoZSAqKi9kb2NzKiogZGlyZWN0b3J5LgoKIyMjIGBucG0gcnVuIGRvY3M6ZGV2YAoKUnVucyB0aGUgKHN3YWdnZXItdWkgKyB3ZWJwYWNrKSBhcHAgaW4gZGV2ZWxvcG1lbnQgbW9kZS4KCiMjIyBgbnBtIHJ1biBkb2NzOmJ1aWxkYAoKQnVpbGRzIGFuZCBidW5kbGVzIHRoZSAoc3dhZ2dlci11aSArIHdlYnBhY2spIGFwcCBpbiB0aGUgKiovZG9jcyoqIGRpcmVjdG9yeSBmb3IgcHJvZHVjdGlvbiBtb2RlIHRvIHRoZSBgL2RvY3MvZGlzdGAgZGlyZWN0b3J5LgoKRml4IEphdmFTY3JpcHQgbGludCBlcnJvcnMuCgpAd2VhcG9uc2ZvcmdlPGJyPgoyMDIyMDgyMQo= readmeEtag: '"341743a18d945d64424aa1b64e75c7ca483c30ae"' readmeLastModified: Thu, 25 Aug 2022 03:32:30 GMT repositoryId: 527131359 description: Testing using swagger ui for api documentation created: '2022-08-21T07:04:33Z' updated: '2022-08-21T19:37:14Z' language: JavaScript archived: false stars: 1 watchers: 2 forks: 0 owner: weaponsforge logo: https://avatars.githubusercontent.com/u/56998001?v=4 repoEtag: '"4e48b6fd6cf1a1087cdf9718705f6b742f13add425f29a5b646680a474a11deb"' repoLastModified: Sun, 21 Aug 2022 19:37:14 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/codeasashu/oas.nvim v3: true id: 50e06ec9dcbadc2a1f5737d4f78619a9 repositoryMetadata: base64Readme: >- IyMgT3BlbiBBUEkgZm9yIG5lb3ZpbQoKVGhpcyBwbHVnaW4gcHJvdmlkZXMgc3VwcG9ydCBmb3Igb3BlbmFwaSwgc3VjaCBhczoKCi0gW3hdIFByZXZpZXdzICh2aWEgUmVkb2MpIAotIFsgXSBUcmVlIG5hdmlnYXRvciBpbiBuZW92aW0KCiMjIyBJbnN0YWxsYXRpb24KCjEuIEluc3RhbGwgcmVkb2NseSBjbGk6CiAgICBgYGBzaCAKICAgIG5wbSBpbnN0YWxsIC1nIEByZWRvY2x5L2NsaQogICAgYGBgCgoyLiBBZGQgdGhlIGZvbGxvd2luZyBpbiBsYXp5LnZpbToKICAgIGBgYGx1YQogICAgeyAiY29kZWFzYXNodS9vYXMubnZpbSIgfQogICAgYGBgCgoKIyMjIFByZXZpZXcKCk9wZW4gcmV2aWV3IGJ5IG9wZW5pbmcgYW55IG9wZW5hcGkgZmlsZSBhbmQgY2FsbGluZyBjb21tYW5kIGA6T0FTUHJldmlld2AuIApUbyBzdG9wIHRoZSBwcmV2aWV3LCBzaW1wbHkgY2FsbCBjb21tYW5kOiBgOk9BU1ByZXZpZXdTdG9wYAo= readmeEtag: '"6bd899896c24b8c466ce33424439e40c76a89c97"' readmeLastModified: Fri, 07 Jun 2024 19:42:23 GMT repositoryId: 812023049 description: Openapi support in neovim created: '2024-06-07T19:40:34Z' updated: '2024-06-09T02:31:59Z' language: Lua archived: false stars: 1 watchers: 1 forks: 0 owner: codeasashu logo: https://avatars.githubusercontent.com/u/1492350?v=4 repoEtag: '"6e7c30f8246c4f6d9c5cec75f52d8507572ee0e7d83cfcfbdadde5e4096a53df"' repoLastModified: Sun, 09 Jun 2024 02:31:59 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/mwczapski/swagger_editor_3_docker_container v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyX0VkaXRvcl8zX0RvY2tlcl9Db250YWluZXIKClRoZSBpbnRlbnQgb2YgdGhpcyByZXBvc2l0b3J5IGlzIHRvIGhvc3QgcmVzb3VyY2VzIHRoYXQgcHJvdmlkZSB0aGUgbWVhbnMgdG8gY3JlYXRlIGEgc2VsZi1jb250YWluZWQgRG9ja2VyIGNvbnRhaW5lciBmb3IgQVBJLUZpcnN0IGRldmVsb3BtZW50IHVzaW5nIHRoZSBsYXRlc3QgU3dhZ2dlciBFZGl0b3IgKDMueCkgYW5kIE9wZW5BUEkgKDIgb3IgMykuCgpUaGUgZm9sbG93aW5nIHJlc291cmNlcyBhcmUgYXZhaWxhYmxlIGluIHRoaXMgcmVwb3NpdG9yeToKCjEuIFtTdGVwcyB0byBjcmVhdGUgdGhlIHJlYWR5LXRvLWdvIFN3YWdnZXIgRWRpdG9yIDMuMCBEb2NrZXIgSW1hZ2UgYW5kIGEgcmVhZHktdG8tZ28gU3dhZ2dlciBFZGl0b3IgMy4wIERvY2tlciBDb250YWluZXJdKFN3YWdnZXJfRWRpdG9yX0RvY2tlcl9Db250YWluZXJfZm9yX0FQSS1GaXJzdF9EZXZlbG9wbWVudC5tZCkKMi4gW1N0YXJ0IERvY2tlciBDb250YWluZXIgYW5kIHdvcmsgd2l0aCB0aGUgU3dhZ2dlciBFZGl0b3Igc2VydmVkIGZyb20gdGhlIGNvbnRhaW5lcl0oSG93X1RvX1VzZV9Td2FnZ2VyX0VkaXRvcl9Eb2NrZXJfSW1hZ2UubWQpCjMuIFtTZXQgdXAgU3dhZ2dlciBFZGl0b3Igb24gV2luZG93cyAxMCB3aXRoIG5vIERvY2tlciBvciBXaW5kb3dzIFN1YnN5c3RlbSBmb3IgTGludXggZGVwZW5kZW5jaWVzXShzd2FnZ2VyX2VkaXRvcl9sb2NhbC5tZCkKClRoZSBEb2NrZXIgSW1hZ2UgY3JlYXRlZCBpbiAoMSkgYW5kIHVzZWQgaW4gKDIpIGlzIGF2YWlsYWJsZSBhdCBbbXdjemFwc2tpL3N3YWdnZXItZWRpdG9yOjEuMC4wXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbXdjemFwc2tpL3N3YWdnZXJfZWRpdG9yKSBvbiBEb2NrZXIgSHViLgo= readmeEtag: '"49ef209172c2bf86f70df7d8f3082e2102499edd"' readmeLastModified: Sat, 01 Aug 2020 07:59:21 GMT repositoryId: 277014482 description: >- The intent of this repository is to host resources that provide the means to create a self-contained Docker container for API-First development using latest Swagger Editor (3.x) and OpenAPI (2 or 3). created: '2020-07-04T01:06:47Z' updated: '2024-06-04T23:42:23Z' language: Dockerfile archived: false stars: 1 watchers: 1 forks: 0 owner: mwczapski logo: https://avatars.githubusercontent.com/u/57377978?v=4 license: MIT repoEtag: '"69a25bd6b06a63a479931e2c5a964ddc164d08378c6439ecc401737876c70af4"' repoLastModified: Tue, 04 Jun 2024 23:42:23 GMT foundInMaster: true category: - Code Generators - Server Implementations id: c9649f9445377cd8e5eafe406ec84cc5 - source: openapi3 tags repository: https://github.com/anshulsharma1610/trendr-news_summarization v3: true id: 5eef97e04c181100276e394f5a472198 repositoryMetadata: base64Readme: >- WyFbUmV2aWV3IEFzc2lnbm1lbnQgRHVlIERhdGVdKGh0dHBzOi8vY2xhc3Nyb29tLmdpdGh1Yi5jb20vYXNzZXRzL2RlYWRsaW5lLXJlYWRtZS1idXR0b24tMjRkZGMwZjVkNzUwNDZjNTYyMjkwMTczOWU3YzVkZDUzMzE0M2IwYzhlOTU5ZDY1MjIxMjM4MGNlZGIxZWEzNi5zdmcpXShodHRwczovL2NsYXNzcm9vbS5naXRodWIuY29tL2EvMHdyc3g0SmIpDQoNCiMjIFRyZW5kciAtIFN0YXkgYWhlYWQgb2YgdGhlIG5ld3MgDQoNCg0KUFJFU0VOVEFUSU9OIFZJREVPIExJTks6IGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9maWxlL2QvMUNyaVZOd1hROWp2MWw0aEdEOHV5dHRTUDlneTFrUk1SL3ZpZXc/dXNwPXNoYXJpbmcNCg0KICMjIyBQcm9qZWN0IERlc2NyaXB0aW9uOiBUcmVuZHINCg0KVGhpcyBwcm9qZWN0IGlzIGEgbmV3cyBhcHBsaWNhdGlvbiB0aGF0IGFsbG93cyB1c2VycyB0byBjcmVhdGUgYW4gYWNjb3VudCBhbmQgbG9nIGluIHdpdGggYSB1bmlxdWUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLiBVc2VycyBjYW4gdGhlbiBzZXQgYW5kIGNoYW5nZSB0aGVpciBwcmVmZXJlbmNlcyBmb3IgbmV3cyBjYXRlZ29yaWVzIGFuZCBzb3VyY2VzLg0KVGhlIG5ld3MgZmVlZCBkaXNwbGF5cyBuZXdzIHN1bW1hcmllcyBiYXNlZCBvbiB0aGUgdXNlcidzIHByZWZlcmVuY2VzLiBBZGRpdGlvbmFsbHksIHRoZSBhcHBsaWNhdGlvbiBzaG93cyB0b3AgdHdlZXRzIGJhc2VkIG9uIHRoZSB1c2VyJ3MgbmV3cyBwcmVmZXJlbmNlIGFuZCB0b3AgbmV3cyBoZWFkbGluZXMgaW4gdGhlIHRyZW5kaW5nIHNlY3Rpb24gaXJyZXNwZWN0aXZlIG9mIHRoZWlyIHByZWZlcmVuY2VzLg0KVXNlcnMgY2FuIGxpa2UsIGNvbW1lbnQsIGFuZCBzaGFyZSBuZXdzIGFydGljbGVzIGFuZCBhbHNvIHNhdmUvYm9va21hcmsgYXJ0aWNsZXMgZm9yIGxhdGVyIHJlYWRpbmcuIFRoZSBhcHBsaWNhdGlvbiBhbHNvIGFsbG93cyB1c2VycyB0byBzZWFyY2ggZm9yIG5ld3MgYXJ0aWNsZXMgYnkga2V5d29yZHMgYW5kIGNhdGVnb3JpZXMgYW5kIHRyYW5zbGF0ZSBhcnRpY2xlcyBpbnRvIG90aGVyIGxhbmd1YWdlcy4NCkluIHRlcm1zIG9mIHN1YnNjcmlwdGlvbiBtYW5hZ2VtZW50LCB1c2VycyBjYW4gZW5yb2xsIGFuZCBtYW5hZ2UgdGhlaXIgYXBwIHN1YnNjcmlwdGlvbi4gUGFpZCBzdWJzY3JpYmVycyBjYW4gYmUgdmlld2VkIGJ5IHRoZSBhZG1pbi4NClRoZSBhZG1pbiBmZWF0dXJlcyBpbmNsdWRlIHRoZSBhYmlsaXR5IHRvIGFkZCBuZXdzIGFydGljbGVzIHRvIHRoZSB3ZWJzaXRlLCBtYW5hZ2UgdXNlcnMsIHZpZXcgYW5hbHl0aWNzIGRhc2hib2FyZCwgYW5kIGFkZCBvdGhlciBhZG1pbnMuIE1vZGVyYXRpb24gZmVhdHVyZXMgaW5jbHVkZSB0aGUgYWJpbGl0eSBmb3IgbW9kZXJhdG9ycyB0byBkZWxldGUgY29tbWVudHMgYW5kIGJsb2NrIHVzZXJzLg0KVGhlIGFuYWx5dGljcyBkYXNoYm9hcmQgcHJvdmlkZXMgaW5zaWdodHMgb24gd2Vic2l0ZSB0cmFmZmljIGFuZCB1c2VyIGJlaGF2aW9yLCB3aGljaCBjYW4gYmUgdXNlZCB0byBtYWtlIGRhdGEtZHJpdmVuIGRlY2lzaW9ucy4NClRoaXMgbmV3cyBhcHBsaWNhdGlvbiBwcm92aWRlcyBhIGNvbXByZWhlbnNpdmUgbmV3cyBleHBlcmllbmNlIGZvciB1c2VycyB3aGlsZSBvZmZlcmluZyBwb3dlcmZ1bCBtYW5hZ2VtZW50IHRvb2xzIGZvciB0aGUgYWRtaW4uDQoNCg0KIA0KICMjIyBPYmplY3QgTW9kZWwgRGlhZ3JhbQ0KDQoNCg0KDQohW1RyZW5kZXIgZHJhd2lvXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS80MjY2ODk3OS8yMjY5OTE0MjYtOTA2ZWUwOWItNTQzZS00YWE4LWE4NGItZDgzOGNjYzNkNWEyLnBuZykNCg0KDQojIyMgRXh0ZXJuYWwgQVBJcw0KDQpodHRwczovL25ld3NkYXRhLmlvLyAgPGJyPg0KaHR0cHM6Ly9wbGF0Zm9ybS5vcGVuYWkuY29tLyA8YnI+DQpodHRwczovL3N0cmlwZS5jb20vZG9jcy9wYXltZW50cyA8YnI+DQpodHRwczovL3Jhem9ycGF5LmNvbS9kb2NzLyNob21lLXBheW1lbnRzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICMjIyBJbnN0cnVjdGlvbnMgdG8gdXNlIHRoZSByZXBvDQoNCi0gWW91IGNhbiBjbG9uZSB0aGUgcmVwbyBieSB1c2luZyBIVFRQOiANCg0KaHR0cHM6Ly9naXRodWIuY29tL25ldS1taXMtaW5mby02MTUwLXNwcmluZy0yMDIzL2ZpbmFsLXByb2plY3QtZ3JvdXAtd2ViX3dlYXZlcnMuZ2l0DQoNCk9SIHNldCB1cCB0aGUgU1NIIEtleSB1c2luZzogDQoNCmdpdEBnaXRodWIuY29tOm5ldS1taXMtaW5mby02MTUwLXNwcmluZy0yMDIzL2ZpbmFsLXByb2plY3QtZ3JvdXAtd2ViX3dlYXZlcnMuZ2l0DQoNCkNvbW1hbmRzIHRvIHVzZTogDQoNCmdpdCBjbG9uZSBgPHVzZSBIVFRQIExpbmsgb3IgU1NIIExpbms+YA0KDQojIyMjIFRvIHJ1biBTdHJpcGUgV2ViaG9vayB0aHJvdWdodCBTdHJpcGUgQ0xJIG9uIGxvY2FsOiBzdHJpcGUgbGlzdGVuIC0tZm9yd2FyZC10byBsb2NhbGhvc3Q6NDI0Mi93ZWJob29rIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0K readmeEtag: '"e7cb8e461e4ab9101163c2fa79c762412314f3ba"' readmeLastModified: Sun, 10 Mar 2024 06:41:02 GMT repositoryId: 638790054 description: >- News application that provides users with a concise summary of the latest news in short form. Users can view news for free, & for unlimited articles, they can purchase a subscription. It has both an admin panel & user panel, allowing administrators to manage and update news content, and users to customize news preferences and track subscriptions. created: '2023-05-10T05:40:52Z' updated: '2023-12-23T07:05:22Z' language: JavaScript archived: false stars: 1 watchers: 1 forks: 0 owner: anshulsharma1610 logo: https://avatars.githubusercontent.com/u/114267698?v=4 repoEtag: '"5385700a0e542e31444d13160c048a0df7e2b14cc06d16202c65f1365afe0607"' repoLastModified: Sat, 23 Dec 2023 07:05:22 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/ja88a/feecollector-report v3: true id: daf26ae63c37c2a3ed3b91d86764fe67 repositoryMetadata: base64Readme: >- IyBMaUZpIEZlZUNvbGxlY3RvciBFdmVudHMgUmVwb3J0ZXIKCiMjIE92ZXJ2aWV3CgojIyMgUHVycG9zZQoKVGhpcyBpcyBhIG1vbm8tcmVwb3NpdG9yeSBmb3IgZGV2ZWxvcGluZyBhbmQgcnVubmluZyAyIG1haW4gYmFja2VuZCBzZXJ2aWNlcywgb24gdG9wIG9mIHRoZSBbTGlGaSBwcm90b2NvbF0oaHR0cHM6Ly9saS5maSk6CgoxLiBBIHNlcnZlcmxlc3Mgc2NyYXBlciBvZiBvbi1jaGFpbiBldmVudHM6IGBGZWVDb2xsZWN0ZWRgIGV2ZW50cyBlbWl0dGVkIGJ5IHRoZSBMaUZpIGBGZWVDb2xsZWN0b3JgIGNvbnRyYWN0cyBkZXBsb3llZCBvbiBzZXZlcmFsIGJsb2NrY2hhaW5zLiBBIHNjcmFwaW5nIHNlc3Npb24gY2FuIGJlIHRyaWdnZXJlZCBtYW51YWxseSBvciBzY2hlZHVsZWQgdG8gcnVuIHBlcmlvZGljYWxseSBvbiBhIGdpdmVuIGJsb2NrY2hhaW4uCgoyLiBBIGJhY2tlbmQgUkVTVC9qc29uIEFQSSB0byByZXBvcnQgdGhlIGZlZXMgY29sbGVjdGVkIGJ5IHRoZSBpbnRlZ3JhdG9ycyBvZiB0aGUgTGlGaSBwcm90b2NvbAoKQSBkYXRhYmFzZSBzdG9yZXMgYW5kIGluZGV4ZXMgdGhlIGNvbGxlY3RlZCBvbmNoYWluIGV2ZW50cywgYXMgd2VsbCBhcyB0aGUgc3VwcG9ydGVkIGNoYWlucycgY29uZmlndXJhdGlvbi4gVGhlIHNjcmFwZXIgZmVlZHMgdGhlIERCIHdoaWxlIHRoZSByZXBvcnRlciBjb25zdW1lcyBpdHMgZGF0YSwgdG93YXJkcyBjbGllbnRzLgoKIyMjIFRlY2huaWNhbCBTdGFjawoKIVtEZXBsb3ltZW50IGFyY2hpdGVjdHVyZSBvdmVydmlld10oLi9kb2MvYXNzZXRzL2xpZmktZmVlc2NvbGxlY3Rvci1yZXBvcnRlcl9hcmNoLW92ZXJ2aWV3X3YxLnBuZykKClRoZSBgRmVlQ29sbGVjdGVkYCBldmVudHMgYXJlIHN0b3JlZCBpbiBhIFtNb25nb0RCXShodHRwczovL21vbmdvZGIuY29tLykgZGF0YWJhc2UvY2x1c3Rlci4gW1R5cGVnb29zZV0oaHR0cHM6Ly90eXBlZ29vc2UuZ2l0aHViLmlvL3R5cGVnb29zZS8pIGlzIHVzZWQsIG9uIHRvcCBvZiB0aGUgW01vbmdvb3NlXShodHRwczovL21vbmdvb3NlanMuY29tLykgT0RNLCBhcyB3ZWxsIGFzIHRoZSBbR3JhcGVvZmZKUy9raW5kYWdvb3NlXShodHRwczovL2dpdGh1Yi5jb20vR3JhcGVvZmZKUy9raW5kYWdvb3NlKSBmb3IgdGhlIE5lc3RKUyBpbnRlZ3JhdGlvbi4KClRoZSBbTmVzdEpTXShodHRwczovL2dpdGh1Yi5jb20vbmVzdGpzL25lc3QpIGRldmVsb3BtZW50IGZyYW1ld29yayBpcyB1c2VkIGFzIG9uZSBvZiB0aGUgbWFpbiBmb3VuZGF0aW9uIGZvciBkZXZlbG9waW5nIHRoZSBiYWNrZW5kIG1vZHVsZXMuCgpUaGUgW1NlcnZlcmxlc3NdKGh0dHBzOi8vc2VydmVybGVzcy5jb20vKSBmcmFtZXdvcmsvdG9vbGluZyBpcyB1c2VkIGZvciBkZXZlbG9waW5nIGxvY2FsbHkgdGhlIGV2ZW50cyBzY3JhcGVyIGFuZCBkZXBsb3lpbmcgdGhlIGZ1bmN0aW9ucyBvbiBBV1MgTGFtYmRhIGZvciBpbnN0YW5jZS4KCltEb2NrZXJdKGh0dHBzOi8vZG9ja2VyLmNvbSkgY29udGFpbmVycyBhcmUgdXNlZCBmb3IgcGFja2FnaW5nIGFuZCBmb3IgZWFzaWx5IG1hbmFnaW5nIHRoZSBjb21wb3NpdGlvbiBvZiBzZXJ2ZXJzIHRvIHJ1biBsb2NhbGx5LgoKIyMgSW5zdGFsbGF0aW9uCgpbTm9kZS5qc10oaHR0cHM6Ly9ub2RlanMub3JnLykgbXVzdCBiZSBpbnN0YWxsZWQgb24geW91ciBPUy4gTG93ZXIgdmVyc2lvbnMgdGhhbiBgMTgueGAgaGF2ZSBub3QgYmVlbiB0ZXN0ZWQuIFRoZSB1c2FnZSBvZiBbTlZNXShodHRwczovL2dpdGh1Yi5jb20vbnZtLXNoL252bSkgaXMgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBhbmQgbWFuYWdlIHlvdXIgTm9kZS5qcyBlbnZpcm9ubWVudHMuCgpbcG5wbV0oaHR0cHM6Ly9wbnBtLmlvLykgaXMgdXNlZCBhcyB0aGUgcGFja2FnZSBtYW5hZ2VyIGZvciB0aGlzIHByb2plY3QsIGFzIHdlbGwgYXMgZm9yIG1hbmFnaW5nIHRoaXMgbW9uby1yZXBvc2l0b3J5IHdvcmtzcGFjZXMuIFBsZWFzZSByZWZlciB0byBpdHMgW2luc3RhbGxhdGlvbl0oaHR0cHM6Ly9wbnBtLmlvL2luc3RhbGxhdGlvbikgaW5zdHJ1Y3Rpb25zLgoKVG8gaW5zdGFsbCBhbGwgdGhlIG5lY2Vzc2FyeSBwYWNrYWdlcyBhbmQgdG9vbGluZyBkZXBlbmRlbmNpZXMsIHJ1bjoKCmBgYGJhc2gKcG5wbSBwcm9qZWN0OmluaXQKYGBgCgpXaGljaCBpcyBlcXVpdmFsZW50IHRvIHRoZSBmb2xsb3dpbmcgaW5kaXZpZHVhbCBjb21tYW5kczoKCmBgYGJhc2gKIyBJbml0IHRoZSBHaXQgc3VibW9kdWxlKHMpLCBlLmcuIExpRmkgY29udHJhY3QgdHlwZXMKJCBnaXQgc3VibW9kdWxlIGluaXQKCiMgRG93bmxvYWQvaW5zdGFsbCBhbGwgcGFja2FnZSBkZXBlbmRlbmNpZXMKJCBwbnBtIGluc3RhbGwKCiMgQnVpbGQgLyB0c2MgY29tcGlsYXRpb24gdG8gc3ViIGRpcnMgYGRpc3RgCiQgcG5wbSAtciBidWlsZApgYGAKCiMjIFJ1bm5pbmcgdGhlIEFwcHMgTG9jYWxseQoKIyMjIFN0YXJ0IE1vbmdvREIgdmlhIERvY2tlciBDb21wb3NlCgpSdW4gbG9jYWxseSBvbmx5IHRoZSBNb25nbyBEYXRhYmFzZToKCmBgYGJhc2gKZG9ja2VyIGNvbXBvc2UgdXAgZmNycy1kYgpgYGAKClJ1biBsb2NhbGx5IHRoZSBDb2xsZWN0ZWRGZWVzIFJlcG9ydGVyIEFQSSwgYSBNb25nbyBEQiBhbmQgYSBSZWRpcyBjYWNoZSBzZXJ2ZXI6CgpgYGBiYXNoCmRvY2tlciBjb21wb3NlIHVwCmBgYAoKTm90ZSB0aGF0IHRoZSBldmVudHMgc2NyYXBlciByZW1haW5zIHRvIGJlIG1hbnVhbGx5IHN0YXJ0ZWQuCgojIyMgU3RhcnQgYW4gRXZlbnRzIFNjcmFwaW5nIHNlc3Npb24KCiMjIyMgQXMgYSBOb2RlanMtYmFzZWQgQ0xJIGNvbW1hbmQKClRoZSBibG9ja3Mgb2YgdGhlIHNwZWNpZmllZCB0YXJnZXQgYmxvY2tjaGFpbiBhcmUgc2Nhbm5lZCBhbmQgdGhlIGZvdW5kIGBGZWVDb2xsZWN0b3IuRmVlQ29sbGVjdGVkYCBldmVudHMgYXJlIGltcG9ydGVkIGludG8gTW9uZ29EQi4KCmBgYGJhc2gKY2QgLi9ldmVudHMtc2NyYXBlciAmJiBwbnBtIHN0YXJ0CmBgYAoKVGhlIGRlZmF1bHQgdGFyZ2V0IGJsb2NrY2hhaW4gaXMgdGhlbiAnUG9seWdvbiBtYWlubmV0JyAoa2V5OiBgcG9sYCksIGFuZCB0aGUgdGFyZ2V0IExpRmkgRmVlQ29sbGVjdG9yIGNvbnRyYWN0IGlzIFtgMHhiRDZDN0IwZDJmNjhjMmI3ODA1ZDg4Mzg4MzE5Y2ZCNkVjQjUwZUE5YF0oaHR0cHM6Ly9wb2x5Z29uc2Nhbi5jb20vYWRkcmVzcy8weGJENkM3QjBkMmY2OGMyYjc4MDVkODgzODgzMTljZkI2RWNCNTBlQTkjZXZlbnRzKS4KClJlZmVyIHRvIFtldmVudHMtc2NyYXBlciBtYWluXSguL2V2ZW50cy1zY3JhcGVyL3NyYy9tYWluLnRzKSBhbmQgdGhlIGNoYWlucycgY29uZmlndXJhdGlvbiBpbiBbZmVlLWNvbGxlY3Rvci5jb25maWddKC4vY29tbW9uL3NyYy9jb25maWcvZmVlLWNvbGxlY3Rvci5jb25maWcudHMpIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBjb25maWcuCgojIyMjIFVzaW5nIHRoZSBTZXJ2ZXJsZXNzIE9mZmxpbmUgRnJhbWV3b3JrCgpZb3UgY2FuIHVzZSB0aGUgbG9jYWwgU2VydmVybGVzcyBvZmZsaW5lIHJ1bnRpbWUgZnJhbWV3b3JrLCBydW46CgpgYGBiYXNoCiMgU3RhcnQgYWxsIGF2YWlsYWJsZSBzZXJ2ZXJsZXNzIGZ1bmN0aW9ucwokIHBucG0gc2VydmVybGVzczpvZmZsaW5lCgojIEZyb20gdGhlIHN1Yi1wcm9qZWN0CiQgY2QgLi9ldmVudHMtc2NyYXBlciAmJiBwbnBtIHNlcnZlcmxlc3Mgb2ZmbGluZQpgYGAKClRoZW4geW91IHRyaWdnZXIgdGhlIHNjcmFwaW5nIGZ1bmN0aW9uIHVzaW5nIGEgR0VUIHJlcXVlc3QgW2BodHRwOi8vbG9jYWxob3N0OjMwMDMvZGV2L2NvbGxlY3RlZGZlZXMvc2NyYXAve2NoYWluS2V5fWBdKGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMy9kZXYvY29sbGVjdGVkZmVlcy9zY3JhcC9wb2wpCgojIyMgU3RhcnQgdGhlIENvbGxlY3RlZCBGZWVzIFJlcG9ydGVyIEFQSQoKRm9yIGxvY2FsbHkgcnVubmluZyB0aGUgc2VydmljZSwgcnVuOgoKYGBgYmFzaApjZCAuL2ZlZXMtcmVwb3J0ZXIgJiYgcG5wbSBzdGFydApgYGAKCllvdSBjYW4gdGhlbiByZXF1ZXN0IGZvciBhIHJlcG9ydCBvbiBmZWVzIGNvbGxlY3RlZCBieSBhIGdpdmVuIGludGVncmF0b3IsIGUuZy4gW2BodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbGxlY3RlZGZlZXMvaW50ZWdyYXRvcnMvMHhENWUyMzBjRWE2ZEEyRjBDNjJiZGVFRDJDZjg1MzI2RjEwNjNlMjdEYF0oaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb2xsZWN0ZWRmZWVzL2ludGVncmF0b3JzLzB4RDVlMjMwY0VhNmRBMkYwQzYyYmRlRUQyQ2Y4NTMyNkYxMDYzZTI3RCkKCkEgc2FtcGxlIHJlc3BvbnNlIChKU09OKSB0byBhIHJlcXVlc3QgZm9yIHRoZSBjb2xsZWN0ZWQgZmVlcyBieSBhbiBpbnRlZ3JhdG9yIGlzIGF2YWlsYWJsZSBbaGVyZV0oLi9kb2Mvc2FtcGxlcy9HRVQtQ29sbGVjdGVkRmVlc0J5SW50ZWdyYXRvcl9zYW1wbGUtUkVTUF92MS5qc29uYykuCgpBbiBvcHRpb25hbCBTd2FnZ2VyL09wZW5BUEl2MyBkb2N1bWVudGF0aW9uIG9mIHRoZSBSRVNUIEFQSSBpcyBwdWJsaXNoZWQgd2hlbiBoYXZpbmcgdGhlIGVudiB2YXJpYWJsZSBgT1BFTkFQSV9QVUJMSVNIYCBzZXQgdG8gYHRydWVgOgoKLSBXZWIgVUk6IFsvYXBpXShodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpLykKLSBqc29uOiBbL2FwaS1qc29uXShodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpLWpzb24pCgpBIHNjcmVlbnNob3Qgb2YgdGhlIFdlYiB2aWV3IGlzIGF2YWlsYWJsZSBbaGVyZV0oLi9kb2MvYXNzZXRzL0ZlZUNvbGxlY3RvclJlcG9ydGVyQVBJX1N3YWdnZXJEb2Mtc2NyZWVuc2hvdC5wbmcpLgoKIyMgVGVzdAoKX0FjdHVhbCB0ZXN0aW5nIGZyYW1ld29yayBpcyBub3QgbXVjaCBkZXZlbG9wcGVkIHlldC5fCgpgYGBiYXNoCiMgdW5pdCB0ZXN0cwokIHBucG0gcnVuIHRlc3QKCiMgZTJlIHRlc3RzCiQgcG5wbSBydW4gdGVzdDplMmUKCiMgdGVzdCBjb3ZlcmFnZQokIHBucG0gcnVuIHRlc3Q6Y292CmBgYAoKIyMgTGljZW5zZQoKVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBbR05VIEFHUEwtdjNdKExJQ0VOU0UpLgo= readmeEtag: '"2a0db0319e678c35722da32c66fe738ae00005d5"' readmeLastModified: Fri, 15 Mar 2024 15:25:40 GMT repositoryId: 764755634 description: >- Scraper of onchain events for Li.Fi FeeCollector contracts. Serverless ethers-based scanning of EVM chains, MongoDB storage and support for REST API queries created: '2024-02-28T16:46:48Z' updated: '2024-03-15T15:00:16Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: ja88a logo: https://avatars.githubusercontent.com/u/80005689?v=4 license: AGPL-3.0 repoEtag: '"062f24079f2f46efe08d7058065cd28d05a5d7c1f1c9ef62e58d0974ef987a79"' repoLastModified: Fri, 15 Mar 2024 15:00:16 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/didifive/peoplehub v3: true id: 2c68bc982c9ec4a2c8ad771526ffcb10 repositoryMetadata: base64Readme: >- IVtSZXBvc2l0b3J5IGxhbmd1YWdlIGNvdW50XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYW5ndWFnZXMvY291bnQvZGlkaWZpdmUvcGVvcGxlaHViKQohW1JlcG9zaXRvcnkgY29kZSBzaXplXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYW5ndWFnZXMvY29kZS1zaXplL2RpZGlmaXZlL3Blb3BsZWh1YikKWyFbR2l0SHViIGxhc3QgY29tbWl0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC9kaWRpZml2ZS9wZW9wbGVodWI/Y29sb3I9Ymx1ZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9kaWRpZml2ZS9wZW9wbGVodWIvY29tbWl0cy9tYXN0ZXIpCgohW2NvdmVyYWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvdmVyYWdlLTEwMCUyNS1ncmVlbikKWyFbTWFkZSBieSBEaWRpXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL21hZGUlMjBieS1EaWRpLWdyZWVuKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL2x1aXMtY2FybG9zLXphbmNhbmVsYS8pCgohW1JlcG9zaXRvcnkgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9kaWRpZml2ZS9wZW9wbGVodWIpCgpbIVtJbnRlbGxpSiBJREVBXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ludGVsbGlKSURFQS0wMDAwMDAuc3ZnP2xvZ289aW50ZWxsaWotaWRlYSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5qZXRicmFpbnMuY29tL2lkZWEvKQoKIVt0ZWNobm9sb2d5IEphdmFdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2NvbG9yPXJlZCZsYWJlbD1UZWNobm9sb2d5Jm1lc3NhZ2U9SmF2YSZzdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDMEFBQUF0Q0FZQUFBQTZHdUthQUFBQUJHZEJUVUVBQUsvSU53V0s2UUFBQUJsMFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1NXMWhaMlZTWldGa2VYSEpaVHdBQUFaUlNVUkJWSGphWXZ6Ly96OER6UUVqb3ppUW5BTEVDUXovLzMrbDFEaUFBR0ppb0EvNEJzU3VRQnhBRGNNQUFvaGVqZ2Jad3dQRUh0UXdEQ0NBNk9Wb0pTQm1CbUoxWUZKaHB0UXdnQUNpbDZQZG9UUWIxUEVVQVlBQVlxSlRKc3lBOGw0QThXOUtqUVFJSUNZYU81Z2ZTTTRHWW5tb3lHRUdLaFJYQUFFRU5vTW1tSUhCQkloUEFmRi9LSDRDeERMVU1Cc2dnR2psNEJRZ2Zvdms0TDlBSEVBdDh3RUNpTnFPRlFiaUpVaU9oZUVzSkRYc1VFOWxrV3NQUUFCUjA4RWFRSHdDemJIZmdUZ1Z6YkdYb05pQlhMc0FBb2hhRHBZSDRwdG9EbjRCeE81UWVRY2dQZ1lWM3czRW9wVFlCeEJBMUhBd0R4QWZSWFB3QlNEV2djcDNBL0VmcVBoVUlHYWwxRTZBQUtLR295dlJITHdQaUNYQWptTmdXSWNrM2d2RWpOU0lXWUFBb3RUQmdrRDhHTWxoeDRHWUh5bzNHVWw4RXpVelBFQUFVZXBvTDdSaURaYUdUWUg0TjFUOEt4QnJVdFBSQUFGRWFZM0lqOFQrQzhUUG9XeExJR2FCc3I4RDhVTnFWclFBQVVTcG8yOEI4VDhvRytSSVNTajdDNUlhSVNDT3BxYWpBUUtJVWtkZmhtSndTd09JTmFEc0M5Q1FoNG5YQTlzaDB0UnlORUFBTVZIWWNQa0ZiUkRCZ0FXVXZnakU1NURFUVE0dXBwYWpBUUtJR2tVZUZ4QWZnV2E2NTBBc0FCVVBSaXNLWHdPeENEVXlJa0FBVWF0RzFBYmlWMURISlNDSnowWXJYZlNwWVI5QUFGR3o3ZUVFeEorQitBeThFbUZnNEFUaWMxQkh2NkcwK29aaGdBQmlvbUk2Mndja0k0RllGWWk5b0dLZzR1NEJWTVZzSVA4MWpzNkNGQkE3QWJFYk1Sa1dJSUFZaWU1SU1ESnlBMGx0SU5hRTlrUmtvZjI5TTBESFRFTlNad1VrMllGaSs2RjY3a083V2JaQXNZOVl1bUs5UUJ3QzFnTUJyNEM0REtoMklTNm5BQVFRTWRIT0NNU0pRSHdEcVpZRFpiaFpRQndKeElwNDlQb0E4UUZ3T3h0Vm5BbUl4YUU0R29qTGtETHpmNmc5cHJqTUJRZ2d3aUhOeUFnSzBVZG9BeThUZ0hndkVMK0JkbFJCaHZ5QjBzelFpb1lOUEdRQTRYK0RWanhTUUt3SWphMFBRQndGZE1WTHFEMGdQZTFBWEFLMVp5NVFMZ1dia3dBQ2lKaVE1Z2JpN1ZoNkl5RDhENGgvQWZFUElQNEd4YUNHLzA5b2MvUVBGajB2Z2JnTGlLV3cyR1VJTFdWQTZwN2hjaE5BQUxFUWtjRytBa01oQ01pS0JlSkFJRFlGWWs1b0NJTFNJU3NlM1grZ3NYRUppSThBOFNFZ1BnazA4d3NPOWQ1SUZkNGxYSVlDQkJBanlUMTZ5TENBRzlRRHg0SDRKelFwTUVJZCtSUGE5bmdMeE0vQVNZdVlRVWRHUmhjZ3VRYmFDQU1sT1JlZ3ZrUFlsQUlFRURubGNRVVFQNFUyOW5rSXFHVUdZamtnOWdUaUdpQmVCTVMrV05RNUEvRUhhTElBSmJFWWZPWUNCQkJwSWMzSXlBRWtid0t4SERRMFFKbm9LUkMvQStJZjBFWVNLTWx4QWJFZ05QT0pBREVIbWttZ0RGY05jUUZqQm5RWUdKVGNkZ0p4SzFEOE1ENW5BQVFRT1NGdEI4UjdvQm51UDVINEo3U0hzeHZhb3dFVmxTeEEzQTZ0L2xmQU94QkVZSUFBWWlSN2xJcVJVUkxhcW9OVk5rTFFVUDRKTGM1ZXd0TTBBOE05SUg0TXRQRWJrbjVRaGpPQ3B2bFhwRmdORUVEa09acVJrUmZhc05jQzRoYWlMR1ZrWklNMlpTa0dBQUhFUXFhK09xUkt3QURvb0NQZ2tJU1VHTitoYVpzWG12WlZvTlUvcUgweENValBRZ2x4TWdCQUFKSGJvbXNsSVQyajQvTkFMRTFKS3c4Z2dGaUlLSk5Wb1JoVW5ZTWFRQWVCdUFOYU5VZEFRNUtEUU5qOGhqYWFUZ0R4SGlEK2lNTStOV2dhLzRIUE1JQUF3cDZtR1JsQjBWb0x4SjdRb2d2VW05NFA3VWJ0QlJwNkY2cU9IZHFXVUlXMkswQ1prUSthN0VBV3Y0ZG14dHZnVHZELy81L3hCQkRJbmgzZ0N1Yi8vMjU4amdZSUlGelJmeEFwT3QrQ1J6aEJMVExxZFJpNHdLMURZTTBLeEVWQXZBemFIUVBaRnc1dkNlTFFEeEJBdUVLNkFkeURSZ1Zmb1pudEpyUVlldzZ0VkQ1RGs4cFBhRFgrRDZtVnh3SE5rUHpRU2tZS21qbGhNWU04LzNJQWlOdkFiUk5RQlFOc3BBRmR1QTFiUUFNRUVMN1FDSVZXSXA4b3lIVDRLcHRiUUx3QWlHT0JXQjNjRldOZ1NBTGl1OUJtQXM1WkE0QUFJcVk5clFDdFFKU1Eyc1JjU0NISkFtMlpNVUViVGIrZ0dlODNOQVpBbWU0VE5IMkRLaHhRbCtzSnRGRWxBRFhiRVlqOW9MRnhEVndIL1A5L0FaZVRBQUtJMUxhSE1KQ2NCSTF5VnFpRC8wQXozUzlvK2Z3YnFVTUF3MHhRRDRJeXFSaDBIRVFLYmR3Rk5FNnlERnFPZjhibkRJQUFJdFhSckZETGxLRkZuU0xVQWFDK25pZzA3ZkpDMjl1czBEVDdEK3FScjlBUWZ3dk5EMCtoL1VkUVNYUVZYTlgvLy8rWEdHY0FCQmdBSWt1M2c0cDlaVjhBQUFBQVNVVk9SSzVDWUlJPSkKIVt0ZWNobm9sb2d5IFNwcmluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9zdGF0aWMvdjE/Y29sb3I9NkRCMzNGJmxhYmVsPVRlY2hub2xvZ3kmbWVzc2FnZT1TcHJpbmcmc3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXNwcmluZykKCiMgQVBJIFBlb3BsZSBIdWIg8J+RqfCfkagKCkFQSSBSRVNUZnVsIGNvbnN0cnXDrWRhIGNvbSBKYXZhIDIxIGUgU3ByaW5nIEJvb3QgMy4yLjQuCgotLS0KCiMjIPCfjq8gT2JqZXRpdm8gCkEgQVBJIGRlc2Vudm9sdmlkYSBkZXZlIHBlcm1pdGlyOgotIENyaWFyLCBlZGl0YXIgZSBjb25zdWx0YXIgdW1hIG91IG1haXMgcGVzc29hczsKLSBDcmlhciwgZWRpdGFyIGUgY29uc3VsdGFyIHVtIG91IG1haXMgZW5kZXJlw6dvcyBkZSB1bWEgcGVzc29hOyBlCi0gUG9kZXIgaW5kaWNhciBxdWFsIGVuZGVyZcOnbyBzZXLDoSBjb25zaWRlcmFkbyBvIHByaW5jaXBhbCBkZSB1bWEgcGVzc29hLgoKVW1hIHBlc3NvYSBkZXZlIHBvc3N1aXIgb3Mgc2VndWludGVzIGRhZG9zOgotIE5vbWUgY29tcGxldG8KLSBEYXRhIGRlIG5hc2NpbWVudG8KLSBFbmRlcmXDp29zOgogIC0gTG9ncmFkb3VybwogIC0gQ0VQCiAgLSBOw7ptZXJvCiAgLSBDaWRhZGUKICAtIEVzdGFkbwoKT3V0cm9zIHBvbnRvcyBjb25zaWRlcmFkb3M6IAotIEF0aW5naXIgbyBtw6F4aW1vIGRlIGNvYmVydHVyYSBkbyBjw7NkaWdvLgotIENvbnN0cnVpciBBUEkgbm8gZm9ybWF0byBSRVNULgotIEJvYXMgcHLDoXRpY2FzIGRlIHByb2dyYW1hw6fDo28KCiMjIPCflKcgUHJpbmNpcGFpcyB0ZWNub2xvZ2lhcyB1dGlsaXphZGFzCi0gKipKYXZhIDIxKio6IFZlcnPDo28gTFRTIG1haXMgcmVjZW50ZSBkbyBKYXZhIHBhcmEgdGlyYXIgdmFudGFnZW0gZGFzIMO6bHRpbWFzIGlub3Zhw6fDtWVzIHF1ZSBlc3NhIGxpbmd1YWdlbSByb2J1c3RhIGUgYW1wbGFtZW50ZSB1dGlsaXphZGEgb2ZlcmVjZTsKLSAqKlNwcmluZyBCb290IDMqKjogVmVyc8OjbyBkbyBTcHJpbmcgQm9vdCwgcXVlIG1heGltaXphIGEgcHJvZHV0aXZpZGFkZSBkbyBkZXNlbnZvbHZlZG9yIHBvciBtZWlvIGRlIHN1YSBwb2Rlcm9zYSBwcmVtaXNzYSBkZSBhdXRvY29uZmlndXJhw6fDo287Ci0gKipTcHJpbmcgRGF0YSBKUEEqKjogRmVycmFtZW50YSBwb2RlIHNpbXBsaWZpY2FyIGEgY2FtYWRhIGRlIGFjZXNzbyBhb3MgZGFkb3MsIGZhY2lsaXRhbmRvIGEgaW50ZWdyYcOnw6NvIGNvbSBiYW5jb3MgZGUgZGFkb3MgU1FMOwotICoqRmx5V2F5Kio6IEZlcnJhbWVudGEgcXVlIHBlcm1pdGUgdmVyc2lvbmFyIGUgbWlncmFyIHNldSBiYW5jbyBkZSBkYWRvcyBjb20gc2NyaXB0cyBTUUwgc2ltcGxlcyBvdSBKYXZhOwoKLS0tCgojIyDwn5SjIERpYWdyYW1hIGRlIENsYXNzZXMgCgpEaWFncmFtYSBkZSBjbGFzc2VzIG5hIHNpbnRheGUgW01lcm1haWRdLgoKYGBgbWVybWFpZApjbGFzc0RpYWdyYW0KICAgIGNsYXNzIEJhc2ljRW50aXR5IHsKICAgICAgICA8PEFic3RyYWN0Pj4KICAgICAgICAtIFN0cmluZyBpZAogICAgfQoKICAgIGNsYXNzIFBlcnNvbiB7CiAgICAgICAgLSBTdHJpbmcgbmFtZQogICAgICAgIC0gTG9jYWxEYXRlIGJpcnRoRGF0ZQogICAgICAgIC0gTGlzdH5BZGRyZXNzfiBhZHJlc3NlcwogICAgICAgICsgT3B0aW9uYWx+QWRkcmVzc34gZ2V0TWFpbkFkZHJlc3MoKQogICAgfQoKICAgIGNsYXNzIEFkZHJlc3MgewogICAgICAgIC0gU3RyaW5nIHB1YmxpY1BsYWNlCiAgICAgICAgLSBJbnRlZ2VyIG51bWJlcgogICAgICAgIC0gU3RyaW5nIGNpdHkKICAgICAgICAtIFN0cmluZyB6aXBDb2RlCiAgICAgICAgLSBTdGF0ZSBzdGF0ZQogICAgICAgIC0gQWRkcmVzc1R5cGUgYWRkcmVzc1R5cGUKICAgICAgICAtIGJvb2xlYW4gbWFpbgogICAgfQoKICAgIGNsYXNzIEFkZHJlc3NUeXBlIHsKICAgICAgICA8PEVudW1lcmF0aW9uPj4KICAgICAgICBDT01NRVJDSUFMKCJDb21lcmNpYWwiKQogICAgICAgIEhPTUUoIlJlc2lkZW5jaWFsIikKICAgICAgICBNQUlMSU5HKCJDb3JyZXNwb25kw6puY2lhIikKICAgIH0KCiAgICBCYXNpY0VudGl0eSA8LS0gUGVyc29uCiAgICBCYXNpY0VudGl0eSA8LS0gQWRkcmVzcwogICAgUGVyc29uICIxIiAqLS0gIjAuLm4iIEFkZHJlc3MKICAgIEFkZHJlc3MgLS0+IEFkZHJlc3NUeXBlCmBgYCAKCi0tLQoKIyMg8J+TtyBQcmludHMgZG8gUHJvamV0bwoKQmFubmVyIGRvIFNwcmluZyBwZXJzb25hbGl6YWRvICAKIVtTcHJpbmcgQmFubmVyXShkb2NzL2Jhbm5lci5QTkc/cmF3PXRydWUgIlNwcmluZyBCYW5uZXIiKSAgCgoqKkNvdmVyYWdlIGNvbSAxMDAlKiogLSByZWxhdMOzcmlvIGdlcmFkbyBwZWxvIHBsdWdpbiBkbyBKYWNvY28gIAohW0phY29jbyBSZXBvcnRdKGRvY3MvamFjb2NvMTAwLlBORz9yYXc9dHJ1ZSAiSmFjb2NvIFJlcG9ydCIpICAKClN3YWdnZXIgZG9jdW1lbnRhbmRvIGVuZHBvaW50cyAgCiFbU3dhZ2dlcl0oZG9jcy9zd2FnZ2VyLlBORz9yYXc9dHJ1ZSAiU3dhZ2dlciIpICAKCi0tLQoKIyMg4pyU77iPIFRlc3RlcwoKT3MgdGVzdGVzIGZvcmFtIGZlaXRvcyB1dGlsaXphbmRvIEpVbml0IDUsIE1vY2tpdG8gZSBNb2NrTVZDIGNvbSBIYW1jcmVzdC4KCi0gUGFyYSBleGVjdXRhciBvcyB0ZXN0ZXMgcG9kZSBleGVjdXRhciBzdWEgSURFIG91Ci0gVXRpbGl6YW5kbyBvIHRlcm1pbmFsIChQb3dlclNoZWxsLCBCYXNoIG91IHNpbWlsaWFyKSwgYmFzdGEgZXhlY3V0YXIgbmEgcGFzdGEgZG8gcHJvamV0byBvIGNvbWFuZG8gYWJhaXhvOgoKICAgIGBgYHNoZWxsCiAgICAuL212bncgY2xlYW4gdGVzdAogICAgYGBgCgpfQXDDs3MgbyB0ZXN0ZSBmaW5hbGl6YWRvIGNvbSBzdWNlc3NvLCDDqSBwb3Nzw612ZWwgdmVyaWZpY2FyIHJlbGF0w7NyaW8gZGUgY292ZXJhZ2UgZW06IHRhcmdldC9zaXRlL2phY29jby9pbmRleC5odG1sXwoKIyMg4pqZIEV4ZWN1dGFuZG8gbyBwcm9qZXRvIGxvY2FsbWVudGUKCkFudGVzIGRlIG1haXMgbmFkYSwgw6kgcHJlY2lzbyBQb3NzdWlyIG5vIG3DrW5pbW8gSkRLIDIxIExUUyBpbnN0YWxhZG8gbmEgbcOhcXVpbmEgZW0gcXVlIGlyw6EgZXhlY3V0YXIuCkEgZXhlY3XDp8OjbyBkbyBwcm9qZXRvIHBvZGUgc2VyIGZlaXRhIHV0aWxpemFuZG8gcmVjdXJzbyBkZSBzdWEgSURFIG91IGNvbSBjb21hbmRvIChkZW1vbnN0cmFkbyBubyBwcsOzeGltbyBpdGVtKS4KCiMjIyDimqEgRXhlY3V0YW5kbyBjb20gcGVyZmlsIERFVgoKYGBgYmFzaAouL212bncgc3ByaW5nLWJvb3Q6cnVuIC1Ec3ByaW5nX3Byb2ZpbGVzX2FjdGl2ZT1kZXYKYGBgCgojIyMg8J+TmiBPcGVuQXBpIC8gU3dhZ2dlcgoKU3dhZ2dlciBPcGVuQVBJIHYzLjEsIGxpbmsgcGFyYSBhY2Vzc2FyIGEgcMOhZ2luYSBkbyBTd2FnZ2VyIGV4ZWN1dGFuZG8gbyBwcm9qZXRvIGxvY2FsbWVudGU6IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKCiMjIyDwn5GqIFBvcHVsYXRlCgpQYXJhIHBvcHVsYXIgZGFkb3MgYXV0b21hdGljYW1lbnRlIGZvaSBjcmlhZGEgYSBtaWdyYXRpb24gZG8gRmx5V2F5IGBWM19fUG9wdWxhdGUuc3FsYC4KCi0tLQoKIyMg4piB77iPIERlcGxveSBuYSBOdXZlbQoKRXNzZSBwcm9qZXRvIGZvaSBpbXBsYW50YWRvIG5vIFtSYWlsd2F5XSBxdWUgZmF6IGludGVncmHDp8OjbyBjb20gbyByZXBvc2l0w7NyaW8gZG8gR2l0SHViLgpVUkwgZG8gU3dhZ2dlciBuYSBudXZlbTogaHR0cHM6Ly9wZW9wbGVodWItcHJvZHVjdGlvbi51cC5yYWlsd2F5LmFwcC9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKCi0tLQoK8J+TiyBRdWFscXVlciBkw7p2aWRhLCBzdWdlc3TDo28gb3UgY3LDrXRpY2Egw6kgc8OzIGVudHJhciBlbSBjb250YXRvIG91IGFicmlyIHVtYSBJc3N1ZSAoaHR0cHM6Ly9naXRodWIuY29tL2RpZGlmaXZlKS4gIArwn5KaIEZlaXRvIGNvbSBtdWl0YSBkZWRpY2HDp8Ojby4gI0Vuam95VGhpcwoKW01lcm1haWRdOiBodHRwczovL21lcm1haWQuanMub3JnLwpbUmFpbHdheV06IGh0dHBzOi8vcmFpbHdheS5hcHAvCg== readmeEtag: '"1e11af5686bb0b18a852e63610847b9192e7da84"' readmeLastModified: Thu, 11 Apr 2024 12:10:52 GMT repositoryId: 784670275 description: 'PeopleHub: Registration of people and addresses API' created: '2024-04-10T10:11:53Z' updated: '2024-04-15T16:34:35Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: didifive logo: https://avatars.githubusercontent.com/u/78564001?v=4 license: Apache-2.0 repoEtag: '"cccee05e6438df3489d7d902a801e49e72e0c6a515a446e0d61406e366a11e0b"' repoLastModified: Mon, 15 Apr 2024 16:34:35 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/aminya/auth0-openapi v3: true id: 60f931a08da3cd657c9bc563625ec5f0 repositoryMetadata: base64Readme: >- IyBBdXRoMCBBdXRoZW50aWNhdGlvbiBBUEkKClRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZm9yIHRoZSBBdXRoMCBBdXRoZW50aWNhdGlvbiBBUEkuCgojIyBPcGVuQVBJIFNwZWNpZmljYXRpb24KCkluIHRoaXMgcmVwb3NpdG9yeSwgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiB0aGF0IGRlc2NyaWJlcyB0aGUgQXV0aDAgQXV0aGVudGljYXRpb24gQVBJIGlzIHByb3ZpZGVkLgoKVGhlIEF1dGgwIEF1dGhlbnRpY2F0aW9uIEFQSSBlbmFibGVzIHlvdSB0byBtYW5hZ2UgYWxsIGFzcGVjdHMgb2YgdXNlciBpZGVudGl0eSB3aGVuIHlvdSB1c2UgQXV0aDAuIEl0IG9mZmVycyBlbmRwb2ludHMgc28geW91ciB1c2VycyBjYW4gbG9nIGluLCBzaWduIHVwLCBsb2cgb3V0LCBhY2Nlc3MgQVBJcywgYW5kIG1vcmUuIFRoZSBBUEkgc3VwcG9ydHMgdmFyaW91cyBpZGVudGl0eSBwcm90b2NvbHMsIGxpa2UgT3BlbklEIENvbm5lY3QsIE9BdXRoIDIuMCwgYW5kIFNBTUwuCgpUaGlzIHNwZWNpZmljYXRpb24gY2FuIGJlIHVzZWQgZm9yIHZhcmlvdXMgcHVycG9zZXMsIHN1Y2ggYXM6CgotIEdlbmVyYXRlIGNsaWVudCBsaWJyYXJpZXMgaW4gbWFueSBsYW5ndWFnZXMgKHZpYSBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC8pKS4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0aGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHRoYXQgYXJlIG5vdCBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBBdXRoMC4KCi0gR2VuZXJhdGUgc2VydmVyIHN0dWJzIGluIG1hbnkgbGFuZ3VhZ2VzICh2aWEgW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvKSkKCi0gR2VuZXJhdGUgaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbiAodmlhIFtTd2FnZ2VyIFVJXShodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci11aS8pLCBbUmFwaURvY10oaHR0cHM6Ly9yYXBpZG9jd2ViLmNvbS8pLCBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKSkKCiMjIENvbnRyaWJ1dGluZwoKVGhpcyBzcGVjaWZpY2F0aW9uIGlzIHdyaXR0ZW4gYmFzZWQgb24gdGhlIFtBdXRoMCBBUEldKGh0dHBzOi8vYXV0aDAuY29tL2RvY3MvYXBpKSBkb2N1bWVudGF0aW9uLiBQbGVhc2UgY29udHJpYnV0ZSB0byBpbXByb3ZpbmcgdGhpcyBzcGVjaWZpY2F0aW9uIGJ5IG9wZW5pbmcgcHVsbCByZXF1ZXN0cy4KCllvdSBjYW4gc3BvbnNvciBteSB3b3JrIGhlcmU6CgpodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvYW1pbnlhCg== readmeEtag: '"d7cf69511301b21e03ee3782bc3f4c3815b22eea"' readmeLastModified: Fri, 26 Apr 2024 04:54:31 GMT repositoryId: 789388710 description: Auth0 OpenAPI specification created: '2024-04-20T12:07:57Z' updated: '2024-04-26T04:54:37Z' language: null archived: false stars: 1 watchers: 1 forks: 0 owner: aminya logo: https://avatars.githubusercontent.com/u/16418197?v=4 license: Apache-2.0 repoEtag: '"065c934567e71cd33cb7a879041b8ed0af975b95a6f4b1953113cee54e782c0a"' repoLastModified: Fri, 26 Apr 2024 04:54:37 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/ellizio/kiota.autogen v3: true id: 55ce9e3e33d8b88a9f0d10a826199a80 repositoryMetadata: base64Readme: >- IyA8cCBhbGlnbj0iY2VudGVyIj4gS2lvdGEuQXV0b2dlbiA8L3A+DQoNCjxwIGFsaWduPSJjZW50ZXIiPiBBIHNldCBvZiBsaWJyYXJpZXMgZm9yIGF1dG8tZ2VuZXJhdGluZyBBUEkgY2xpZW50cyB1c2luZyA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tpb3RhIj5LaW90YTwvYT4gPC9wPg0KDQotLS0NCg0KIyMgTGlicmFyaWVzIGxpc3QNCg0KLSBbIVtLaW90YS5BdXRvZ2VuLlN3YWdnZXJdKGh0dHBzOi8vYnVpbGRzdGF0cy5pbmZvL251Z2V0L0tpb3RhLkF1dG9nZW4uU3dhZ2dlcildKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9LaW90YS5BdXRvZ2VuLlN3YWdnZXIvKSBbS2lvdGEuQXV0b2dlbi5Td2FnZ2VyXShzcmMvS2lvdGEuQXV0b2dlbi5Td2FnZ2VyKSBmb3IgZ2VuZXJhdGluZyBBUEkgY2xpZW50IGJhc2VkIG9uIFtTd2FzaGJ1Y2tsZS5Bc3BOZXRDb3JlXShodHRwczovL2dpdGh1Yi5jb20vZG9tYWluZHJpdmVuZGV2L1N3YXNoYnVja2xlLkFzcE5ldENvcmUpDQoNCiMjIEJhc2ljIFVzYWdlDQoNCjEuIEFkZCBhIGBDbGFzcyBMaWJyYXJ5YCBwcm9qZWN0IHRvIHRoZSBzb2x1dGlvbiB0aGF0IGNvbnRhaW5zIFdlYkFwaSBwcm9qZWN0DQoyLiBBZGQgV2ViQXBpIHByb2plY3QgcmVmZXJlbmNlIHdpdGggYEV4Y2x1ZGVBc3NldHM9IkFsbCJgDQpgYGB4bWwNCjxJdGVtR3JvdXA+DQogICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cRXhhbXBsZVNlcnZpY2UuQXBpXEV4YW1wbGVTZXJ2aWNlLkFwaS5jc3Byb2oiIEV4Y2x1ZGVBc3NldHM9IkFsbCIgLz4NCjwvSXRlbUdyb3VwPg0KYGBgDQozLiBJbnN0YWxsIGBLaW90YS5BdXRvZ2VuLlN3YWdnZXJgIHdpdGggYFByaXZhdGVBc3NldHM9IkFsbCJgDQpgYGB4bWwNCjxJdGVtR3JvdXA+DQogICAgPFBhY2thZ2VSZWZlcmVuY2UgSW5jbHVkZT0iS2lvdGEuQXV0b2dlbi5Td2FnZ2VyIiBWZXJzaW9uPSIxLjE2LjEiIFByaXZhdGVBc3NldHM9IkFsbCIgLz4NCjwvSXRlbUdyb3VwPg0KYGBgDQo0LiBJbnN0YWxsIGZvbGxvd2luZyBgS2lvdGFgIHBhY2thZ2VzDQpgYGB4bWwNCjxJdGVtR3JvdXA+DQogICAgPFBhY2thZ2VSZWZlcmVuY2UgSW5jbHVkZT0iTWljcm9zb2Z0Lktpb3RhLkFic3RyYWN0aW9ucyIgVmVyc2lvbj0iMS45LjExIiAvPg0KICAgIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9Ik1pY3Jvc29mdC5LaW90YS5IdHRwLkh0dHBDbGllbnRMaWJyYXJ5IiBWZXJzaW9uPSIxLjkuMTEiIC8+DQogICAgPFBhY2thZ2VSZWZlcmVuY2UgSW5jbHVkZT0iTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uRm9ybSIgVmVyc2lvbj0iMS45LjExIiAvPg0KICAgIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9Ik1pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLkpzb24iIFZlcnNpb249IjEuOS4xMSIgLz4NCiAgICA8UGFja2FnZVJlZmVyZW5jZSBJbmNsdWRlPSJNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5NdWx0aXBhcnQiIFZlcnNpb249IjEuOS4xMSIgLz4NCiAgICA8UGFja2FnZVJlZmVyZW5jZSBJbmNsdWRlPSJNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5UZXh0IiBWZXJzaW9uPSIxLjkuMTEiIC8+DQo8L0l0ZW1Hcm91cD4NCmBgYA0KNS4gQ3JlYXRlIGEgYGdlbnNldHRpbmdzLmpzb25gIGZpbGUgd2l0aCB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZQ0KYGBganNvbmMNClsNCiAgew0KICAgICJuYW1lIjogIldlYXRoZXJDbGllbnQiLCAvLyBBUEkgY2xpZW50IG5hbWUgdG8gYmUgZ2VuZXJhdGVkDQogICAgIm5hbWVzcGFjZSI6ICJXZWF0aGVyLkNsaWVudCIsIC8vIEFQSSBjbGllbnQgbmFtZXNwYWNlDQogICAgInZlcnNpb24iOiAidjEiIC8vIFdlYkFwaSBTd2FnZ2VyIGRvY3VtZW50IHZlcnNpb24NCiAgfSwNCiAgew0KICAgICJuYW1lIjogIldlYXRoZXJDbGllbnROZXciLA0KICAgICJuYW1lc3BhY2UiOiAiV2VhdGhlci5DbGllbnQuTmV3IiwNCiAgICAidmVyc2lvbiI6ICJ2MiINCiAgfQ0KXQ0KYGBgDQo2LiBTZXQgdXAgYENsYXNzIGxpYnJhcnlgIHByb2plY3QgdG8gYnVpbGQgYXMgYSBudWdldCBwYWNrYWdlDQpgYGB4bWwNCjxQcm9wZXJ0eUdyb3VwPg0KICAgIC4uLiBvdGhlciBwcm9wZXJ0aWVzDQoNCiAgICA8SXNQYWNrYWJsZT50cnVlPC9Jc1BhY2thYmxlPg0KICAgIDxQYWNrYWdlSWQ+RXhhbXBsZVNlcnZpY2UuQ2xpZW50PC9QYWNrYWdlSWQ+DQo8L1Byb3BlcnR5R3JvdXA+DQpgYGANCjcuIFBhY2sgYENsYXNzIGxpYnJhcnlgIHByb2plY3QNCjguIEVuam95IHVzaW5nIEFQSSBjbGllbnQNCmBgYGNzaGFycA0KdXNpbmcgTWljcm9zb2Z0Lktpb3RhLkFic3RyYWN0aW9ucy5BdXRoZW50aWNhdGlvbjsNCnVzaW5nIE1pY3Jvc29mdC5LaW90YS5IdHRwLkh0dHBDbGllbnRMaWJyYXJ5Ow0KdXNpbmcgV2VhdGhlci5DbGllbnQ7DQoNCnVzaW5nIHZhciBodHRwQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQoKTsNCmh0dHBDbGllbnQuQmFzZUFkZHJlc3MgPSBuZXcgVXJpKCJodHRwOi8veW91cl9zZXJ2aWNlX3VybCIpOw0KDQp2YXIgcHJvdmlkZXIgPSBuZXcgQW5vbnltb3VzQXV0aGVudGljYXRpb25Qcm92aWRlcigpOw0KdXNpbmcgdmFyIGFkYXB0ZXIgPSBuZXcgSHR0cENsaWVudFJlcXVlc3RBZGFwdGVyKHByb3ZpZGVyLCBodHRwQ2xpZW50OiBodHRwQ2xpZW50KTsNCnZhciBjbGllbnQgPSBuZXcgV2VhdGhlckNsaWVudChhZGFwdGVyKTsNCg0KdmFyIGZvcmVjYXN0cyA9IGF3YWl0IGNsaWVudC5XZWF0aGVyZm9yZWNhc3QuR2V0QXN5bmMoKTsNCmBgYA0KDQpTZWUgW2Z1bGwgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL2VsbGl6aW8vS2lvdGEuQXV0b2dlbi1FeGFtcGxlcy90cmVlL21hc3Rlci8xLiUyMFN3YWdnZXIpDQoNCiMjIEFkdmFuY2VkIFVzYWdlDQoNCllvdSBjYW4gcHJvdmlkZSB5b3VyIG93biBpbXBsZW1lbnRhdGlvbnMgb2YgYE1pY3Jvc29mdC5LaW90YS5BYnN0cmFjdGlvbnNgIGZyb20gdGhlIGBDbGFzcyBsaWJyYXJ5YCBwcm9qZWN0IGlmIHlvdSBuZWVkXA0KVXNhZ2U6DQpgYGBjc2hhcnANCnVzaW5nIE1pY3Jvc29mdC5LaW90YS5BYnN0cmFjdGlvbnMuQXV0aGVudGljYXRpb247DQp1c2luZyBNaWNyb3NvZnQuS2lvdGEuSHR0cC5IdHRwQ2xpZW50TGlicmFyeTsNCnVzaW5nIFdlYXRoZXIuQ2xpZW50Ow0KDQp1c2luZyB2YXIgaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KCk7DQpodHRwQ2xpZW50LkJhc2VBZGRyZXNzID0gbmV3IFVyaSgiaHR0cDovL3lvdXJfc2VydmljZV91cmwiKTsNCg0KdmFyIHByb3ZpZGVyID0gbmV3IEFub255bW91c0F1dGhlbnRpY2F0aW9uUHJvdmlkZXIoKTsNCnVzaW5nIHZhciBhZGFwdGVyID0gbmV3IEh0dHBDbGllbnRSZXF1ZXN0QWRhcHRlcihwcm92aWRlciwgbmV3IFdlYXRoZXJQYXJzZU5vZGVGYWN0b3J5KCksIG5ldyBXZWF0aGVyU2VyaWFsaXphdGlvbldyaXRlckZhY3RvcnkoKSwgaHR0cENsaWVudDogaHR0cENsaWVudCk7DQp2YXIgY2xpZW50ID0gbmV3IFdlYXRoZXJDbGllbnQoYWRhcHRlcik7DQoNCnZhciBmb3JlY2FzdHMgPSBhd2FpdCBjbGllbnQuV2VhdGhlcmZvcmVjYXN0LkdldEFzeW5jKCk7DQpgYGANCg0KU2VlIFtmdWxsIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9lbGxpemlvL0tpb3RhLkF1dG9nZW4tRXhhbXBsZXMvdHJlZS9tYXN0ZXIvMi4lMjBBZHZhbmNlZCkNCg0KIyMgTW9yZSBFeGFtcGxlcw0KDQpTZWUgbW9yZSBleGFtcGxlcyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2VsbGl6aW8vS2lvdGEuQXV0b2dlbi1FeGFtcGxlcykNCg0KIyMgQWRkaXRpb25hbCBSZWZlcmVuY2VzDQoNCi0gW0NoYW5nZWxvZ10oQ0hBTkdFTE9HLm1kKQ0KLSBbS2lvdGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2lvdGEpDQotIFtTd2FzaGJ1Y2tsZS5Bc3BOZXRDb3JlXShodHRwczovL2dpdGh1Yi5jb20vZG9tYWluZHJpdmVuZGV2L1N3YXNoYnVja2xlLkFzcE5ldENvcmUpDQo= readmeEtag: '"354c1c289a6da35b5c86a8ba66f5929abd6d6469"' readmeLastModified: Wed, 31 Jul 2024 08:19:54 GMT repositoryId: 814793618 description: A set of libraries for auto-generating API clients using Kiota created: '2024-06-13T18:06:04Z' updated: '2024-07-31T08:19:59Z' language: C# archived: false stars: 1 watchers: 1 forks: 0 owner: ellizio logo: https://avatars.githubusercontent.com/u/48138666?v=4 license: MIT repoEtag: '"dfc01a31550beda8ff3d48a5a7e42c61d01887cbd7f274b5a866dbe32d7ad380"' repoLastModified: Wed, 31 Jul 2024 08:19:59 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/andrewwgordon/ddd-northwind-api v3: true repositoryMetadata: base64Readme: >- IyBEb21haW4tRHJpdmVuIERlc2lnbiBDUVJTIE1pY3Jvc2VydmljZSBPcGVuQVBJIERlbW8KIyMgT3ZlcnZpZXcKVGhpcyBwcm9qZWN0IGlzIGFuIGV4YW1wbGUgW0RvbWFpbi1Ecml2ZW4gRGVzaWduXShodHRwczovL21hcnRpbmZvd2xlci5jb20vYmxpa2kvRG9tYWluRHJpdmVuRGVzaWduLmh0bWwpIFtNaWNyb3NlcnZpY2VdKGh0dHBzOi8vbWljcm9zZXJ2aWNlcy5pby9pbmRleC5odG1sKSBzdXBwb3J0aW5nIFtPcGVuQVBJXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKS4gVGhlIHB1cnBvc2Ugb2YgdGhlIHByb2plY3QgaXMgYW4gZWR1Y2F0aW9uICJ0b3kiIGFwcGxpY2F0aW9uIHRvIGFydGljdWxhdGUgREREIGFuZCBNaWNyb3NlcnZpY2UgYmVzdCBwcmFjdGljZXMuCgpUaGUgcHJvamVjdCBpcyBidWlsdCB1cG9uIHRoZSBbQ29ubmV4aW9uIE9wZW5BUEldKGh0dHBzOi8vY29ubmV4aW9uLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8pIGZyYW1ld29yaywgaXRzZWxmIGxldmVyYWdpbmcgW0ZsYXNrXShodHRwczovL2ZsYXNrLnBhbGxldHNwcm9qZWN0cy5jb20vZW4vMi4wLngvKS4gW1dhaXRyZXNzXShodHRwczovL2RvY3MucHlsb25zcHJvamVjdC5vcmcvcHJvamVjdHMvd2FpdHJlc3MvZW4vbGF0ZXN0LykgaXMgY29uZmlndXJlZCBhcyB0aGUgZGVmYXVsdCBbV1NHSV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2ViX1NlcnZlcl9HYXRld2F5X0ludGVyZmFjZSkgSFRUUCBTZXJ2ZXIgYW5kIGlzIHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIGRlcGxveW1lbnQuCiMjIFF1aWNrIFN0YXJ0CgojIyMgUHJlcXVpc2l0ZXMKUHl0aG9uID49IDMuNwojIyMgSW5zdGFsbApDbG9uZSB0aGlzIHJlcG8uCmBgYGJhc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyZXd3Z29yZG9uL2RkZC1ub3J0aHdpbmQtYXBpLmdpdApgYGAKQ3JlYXRlIGEgUHl0aG9uIHZpcnR1YWwgZW52aXJvbm1lbnQgYW5kIGFjdGl2YXRlIGl0LgpgYGBiYXNoCnB5dGhvbiAtbSB2ZW52IHZlbnYKLlx2ZW52XFNjcmlwdHNcYWN0aXZhdGUgKFdpbmRvd3MpCi4vdmVudi9iaW4vYWN0aXZhdGUgKExpbnV4KQpgYGAKSW5zdGFsbCBkZXBlbmRlbmNpZXMKYGBgYmFzaApweXRob24gLW0gcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dApgYGAKIyMjIERlcGxveSB0aGUgTm9ydGh3aW5kIFNRTGl0ZSBEYXRhYmFzZQpEb3dubG9hZCB0aGUgW1NRTGl0ZTMgTm9ydGh3aW5kIGRhdGFiYXNlXShodHRwczovL2dpdGh1Yi5jb20vanB3aGl0ZTMvbm9ydGh3aW5kLVNRTGl0ZTMvYmxvYi9tYXN0ZXIvTm9ydGh3aW5kX2xhcmdlLnNxbGl0ZS56aXApLCB1bnBhY2sgdGhlIGFyY2hpdmUgYW5kIGRlcGxveSB0byAuL25vcnRod2luZC9yZXNvdXJjZXMvZGF0YWJhc2UvTm9ydGh3aW5kLnNxbGl0ZS4KIyMjIENvbmZpZ3VyZSBMb2dnaW5nCk5vdGU6IFlvdSBhbHNvIG1heSBuZWVkIHRvIGNyZWF0ZSBhIC4vbG9nLyBkaXJlY3RvcnkgaW4gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uIGRpcmVjdG9yeS4gTG9nZ2luZyBwYXRoIGNhbiBiZSBjb25maWd1cmVkIGluIC4vbm9ydGh3aW5kL3Jlc291cmNlcy9sb2dnaW5nLmNvbmYuCiMjIyBSdW4gdGhlIFRlc3QgU3VpdGUKYGBgYmFzaApweXRob24gLW0gcHl0ZXN0IC1zIC12CmBgYApOb3RlOiBUaGUgY3VycmVudCBlMmUgUkVTVCBBUEkgdGVzdCBzcGlucyB1cCBhIEZsYXNrIEFwcCBpbnN0YW5jZSBhcyBhIE9TIHN1YiBwcm9jZXNzLiBJdCBhdHRlbXB0cyB0byB0ZXJtaW5hdGUgaXQgb24gdGVzdCBjb21wbGV0aW9uLCBidXQgeW91IG1heSBuZWVkIHRvIGtpbGwgdGhlIHByb2Nlc3MuCiMjIyBTdGFydCB0aGUgU2VydmljZQpTdGFydCB0aGUgc2VydmljZQpgYGBiYXNoCnB5dGhvbiBhcHAucHkKYGBgCgoKTmF2aWdhdGUgdG8gdGhlIFN3YWdnZXIgVUkgdmlhIHlvdXIgYnJvd3NlcgpgYGBiYXNoCmh0dHA6Ly9sb2NhbGhvc3Q6ODA5OC92MS91aQpgYGAKTm90ZTogVGhlIGRlZmF1bHQgcG9ydCBmb3IgdGhlIEhUVFAgU2VydmVyIGlzIDgwOTguIFlvdSBjYW4gY2hhbmdlIHRoaXMgc2V0dGluZyBpbiB0aGUgbm9ydGh3aW5kLnByb3BlcnRpZXMgZmlsZSBpbiAuL25vcnRod2luZC9yZXNvdXJjZXMvLgoKQmFzaWMgYXV0aGVudGljYXRpb24gaXMgZW5hYmxlZCBhbmQgYSB1c2VybmFtZSAvIHBhc3N3b3JkIGhhcyB0byBiZSBzdXBwbGllZCBmb3IgYW55IFJFU1QgQVBJIHNlcnZpY2UgdG8gcmVzcG9uZC4gQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCB2ZXJpZnkgY3JlZGVudGlhbHMgYW5kIGNhbiBhY2NlcHQgYW55IHVzZXJuYW1lIGFuZCBwYXNzd29yZC4= readmeEtag: '"1c3e1bb741cf7b5c0638cf0e4776fd6e82bd58f6"' readmeLastModified: Sun, 12 Sep 2021 14:54:09 GMT repositoryId: 404850974 description: >- This project is an example Domain-Driven Design, Microservice supporting OpenAPI .The purpose of the project is an education "toy" application to articulate DDD and Microservice best practices. created: '2021-09-09T19:48:05Z' updated: '2023-07-03T11:22:44Z' language: Python archived: false stars: 1 watchers: 2 forks: 1 owner: andrewwgordon logo: https://avatars.githubusercontent.com/u/51337698?v=4 license: MIT repoEtag: '"67fab01d57a15cebb5ad5a4a9e1350e48c189100d8a9da8bbc6eb89b7d9bc4c3"' repoLastModified: Mon, 03 Jul 2023 11:22:44 GMT foundInMaster: true category: Server Implementations id: ccb4b38a335394fa1fe0a6efc48b58e4 - source: openapi3 tags repository: https://github.com/jitunayak/sukuawali-backend v3: true repositoryMetadata: base64Readme: >- IyMgU3VrdWF3YWxpIGJhY2tlbmQgLVJFU1QgUG9pbnRzCgotICMjIyBTaG93IGFsbCBpdGVtcwoKYGBgaHR0cCByZXF1ZXN0CkdFVCBodHRwOi8vbG9jYWxob3N0OjgwODAvc3VrdWFzL2FsbApgYGAKCi0gIyMjIEFkZCBuZXcgaXRlbQoKYGBgaHR0cCByZXF1ZXN0ClBPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N1a3Vhcy9hZGQKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCmBgYAoKYGBganNvbgp7CiAgIm5hbWUiOiAiV2hpdGUgbGVnIHByYXduIiwKICAiZGVzY3JpcHRpb24iOiAiU3VwZXIgZGVsaWNpb3VzIiwKICAicHJpY2UiOiA0OTAsCiAgImltYWdlVVJMIjogImh0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UvMi9qcGciLAogICJxdWFudGl0eSI6IDEKfQpgYGAKCi0gIyMjIFVwZGF0ZSBleGlzdGluZyBpdGVtCgpgYGBodHRwIHJlcXVlc3QKUFVUIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zdWt1YXMvdXBkYXRlCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbgpgYGAKCmBgYGpzb24KewogICJpZCI6IDEsCiAgIm5hbWUiOiAiVGlnZXIgZmlzaCBsYXJnZSIsCiAgImRlc2NyaXB0aW9uIjogIlN1cGVyIGRlbGljaW91cyIsCiAgInByaWNlIjogMjUwLAogICJpbWFnZVVSTCI6ICJodHRwczovL2V4YW1wbGUuY29tL2ltYWdlLzEvanBnIiwKICAicXVhbnRpdHkiOiAxCn0KYGBgCgotICMjIyBQbGFjZSBhIG5ldyBvcmRlcgoKYGBgaHR0cCByZXF1ZXN0ClBPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDgwL29yZGVycy9hZGQKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCmBgYAoKYGBganNvbgp7CiAgImxvY2F0aW9uIjogIlBhdGlhIiwKICAiaXRlbXMiOiBbCiAgICB7CiAgICAgICJpZCI6IDEsCiAgICAgICJuYW1lIjogIldoaXRlIGxlZyBwcmF3biIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTdXBlciBkZWxpY2lvdXMiLAogICAgICAicHJpY2UiOiA0OTAsCiAgICAgICJpbWFnZVVSTCI6ICJodHRwczovL2V4YW1wbGUuY29tL2ltYWdlLzIvanBnIiwKICAgICAgInF1YW50aXR5IjogMQogICAgfQogIF0sCiAgImRlbGl2ZXJ5Q2hhcmdlcyI6IDMwLAogICJ0b3RhbEFtb3VudCI6IDUwMAp9CmBgYAoKLSAjIyMgT3JkZXIgZGVsaXZlcmVkCgpgYGBodHRwIHJlcXVlc3QKUFVUIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9vcmRlcnMvZGVsaXZlcmVkL3tpZH0KYGBgCgotICMjIyBVc2VyIHJlZ2lzdHJhdGlvbgoKYGBgaHR0cCByZXF1ZXN0ClBVVCBodHRwOi8vbG9jYWxob3N0OjgwODAvdXNlcnMvcmVnaXN0ZXIKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uCmBgYAoKYGBganNvbgp7CiAgInVzZXJuYW1lIjogInVsdHJhMiIsCiAgInBhc3N3b3JkIjogInVsdHJhMiIsCiAgImlzQWN0aXZlIjogdHJ1ZSwKICAicm9sZXMiOiBbCiAgICB7CiAgICAgICJyb2xlIjogIlVTRVIiCiAgICB9LAogICAgewogICAgICAicm9sZSI6ICJBRE1JTiIKICAgIH0KICBdCn0KCmBgYApgYGBodHRwIHJlcXVlc3QKREVMRVRFIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC91c2Vycy9kZWxldGUve3VzZXJfaWR9CmBgYAoKIyMjIyBPbmx5IEFETUlOIGNhbiBhZGQgbmV3IHVzZXJzICYmIERFTElWRVJZX0dVWSBjYW4gY29tcGxldGUgdGhlIGRlbGl2ZXJ5 readmeEtag: '"c1783a82446e8d6f3517b33b88c1a5824a9d3771"' readmeLastModified: Wed, 21 Jul 2021 16:21:50 GMT repositoryId: 385692879 description: null created: '2021-07-13T18:01:00Z' updated: '2021-07-21T16:21:53Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: jitunayak logo: https://avatars.githubusercontent.com/u/35754866?v=4 repoEtag: '"307367318bd418dbb02fc17fc46747ed8406fd002ca1452e720b1c8f3e6bec0e"' repoLastModified: Wed, 21 Jul 2021 16:21:53 GMT foundInMaster: true category: Data Validators id: e347e71a8024aa0361c70e88a26d1a0f - source: openapi3 tags repository: https://github.com/marcelofilipov/filipov-food-api v3: true repositoryMetadata: base64Readme: >- IVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvbWFyY2Vsb2ZpbGlwb3YvZmlsaXBvdi1mb29kLWFwaSkKIVtHaXRIdWIgcmVwbyBzaXplXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9yZXBvLXNpemUvbWFyY2Vsb2ZpbGlwb3YvZmlsaXBvdi1mb29kLWFwaSkKCiMgRm9vZCBBUEkK readmeEtag: '"6ec02247692ff097ee735ee4b19656ac371ea915"' readmeLastModified: Sun, 06 Aug 2023 16:37:28 GMT repositoryId: 221706322 description: ':hamburger: :fries: Food API - Java/SpringBoot | Training and PoC' created: '2019-11-14T13:39:17Z' updated: '2023-12-21T11:04:20Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: marcelofilipov logo: https://avatars.githubusercontent.com/u/42516768?v=4 license: MIT repoEtag: '"6c62d43bf72fdea93062cb8c712beddccaa6e4fbc55a4e20c7b4f3debb2ec439"' repoLastModified: Thu, 21 Dec 2023 11:04:20 GMT foundInMaster: true category: - Description Validators - SDK id: 8728365f77c1420470cdebd745aa6080 - source: openapi3 tags repository: https://github.com/zoeastra/file-path-api v3: true id: 3fd89fddc49f196bd5a6e31f23ad59cd repositoryMetadata: base64Readme: >- IyBmaWxlLXBhdGgtYXBpCgpUaGUgZmlsZS1wYXRoLWFwaSBSRVNUZnVsIEFQSSBjYW4gYmUgc3RhcnRlZCBieSBjYWxsaW5nIGAuXHJ1bi5wczFgIGluIGEgV2luZG93cyBQb3dlclNoZWxsIGVudmlyb25tZW50LCBvciBgYmFzaCBydW4uc2hgIGluIGEgTWFjL0xpbnV4IGVudmlyb25tZW50LiBUaGUgc2NyaXB0IHRha2VzIGFuIGFic29sdXRlIHBhdGggYXMgYW4gYXJndW1lbnQsIGJ1aWxkcyBhIGRvY2tlciBpbWFnZSwgYW5kIHBhc3NlcyB0aGUgcGF0aCAob3IgdGhlIGRlZmF1bHQgInRlc3RkaXIiIGluY2x1ZGVkIGluIHRoZSBwcm9qZWN0LCBpZiBubyBvdGhlciBwYXRoIGlzIHNwZWNpZmllZCkgYWxvbmcgdG8gZG9ja2VyIGNvbXBvc2UgdG8gdXNlIGFzIGEgYmluZCBtb3VudC4KClRoaXMgQVBJIGlzIGRvY3VtZW50ZWQgaW4gdGhlIFN3YWdnZXIvT3BlbkFQSSAzLjAuMyBmb3JtYXQsIGxvY2F0ZWQgaW4gdGhlIGBhcGlkb2NzLnltbGAgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3RvcnkuIFRoZSBZQU1MIGZpbGUgaGFzIGFsc28gYmVlbiBjb252ZXJ0ZWQgdG8gSlNPTiwgYW5kIHNlcnZlZCB1cCBhcyBhIFN3YWdnZXIgVUkgc3RhdGljIHdlYnBhZ2UsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCBbaHR0cDovL2xvY2FsaG9zdDo1MDAwL3N0YXRpYy9pbmRleC5odG1sXShodHRwOi8vbG9jYWxob3N0OjUwMDAvc3RhdGljL2luZGV4Lmh0bWwpIHdoZW4gdGhlIHdlYnNpdGUgaXMgcnVubmluZy4KClNvbWUgb2YgdGhlIHRlc3RzIGFyZSBraW5kIG9mIHdvbmt5LiBDb21wYXJpbmcgdGhlIHJlc3VsdHMgaXMgaGFyZCB3aGVuIHNvbWV0aW1lcyB0aGUgb3JkZXIgb2YgdGhlIHJlc3VsdCBjaGFuZ2VzLCBhcyB3ZWxsIGFzIGZvciBzb21lIHJlYXNvbiBpdCByZWZ1c2luZyB0byBwcm9wZXJseSBkbyBQT1NUcywgUFVUcywgYW5kIERFTEVURXMuIEFsbCBtZXRob2RzIHdvcmsgcGVyZmVjdGx5IGluIHBvc3RtYW4sIHNvIGl0IG11c3QgYmUgc29tZXRoaW5nIGluIHRoZSB0ZXN0cy4gSWYgSSB3ZXJlIHdpbGxpbmcgdG8gc3BlbmQgbW9yZSB0aW1lIG9uIHRoaXMsIEknZCBmaW5kIGEgbW9yZSByb2J1c3QvZWFzaWVyIHdheSBvZiB0ZXN0aW5nIEFQSSByZXN1bHRzLiAKClNpbmNlIGl0IG1heSBoZWxwLCBJIGRpZCBpbmNsdWRlIGFuIGV4cG9ydCBvZiBteSBwb3N0bWFuIHRlc3RzIGZvciB0aGlzIHByb2plY3QsIGBmaWxlLXBhdGgtYXBpLnBvc3RtYW5fY29sbGVjdGlvbi5qc29uYCwgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC4KCkkgcHJvYmFibHkgc3BlbnQgbG9uZ2VyIHRoYW4gSSBzaG91bGQgaGF2ZSBvbiB0aGlzLCBhYm91dCA4IGhvdXJzLCB0aG91Z2ggYSBmYWlyIGJpdCBvZiB0aGF0IHdhcyBkdWUgdG8gbXkgdW5mYW1pbGlhcml0eSB3aXRoIGNyZWF0aW5nIEFQSXMgaW4gRmxhc2ssIHNldmVyYWwgY29uZnVzaW5nIGJ1Z3MsIGFzIHdlbGwgYXMgYmVpbmcgYSBiaXQgKG9yIGEgbG90KSBvZiBhIHBlcmZlY3Rpb25pc3QuCg== readmeEtag: '"318b96349e9108d161f07cfa20a9b9bf30a85b14"' readmeLastModified: Mon, 03 Oct 2022 17:29:00 GMT repositoryId: 544972237 description: >- A little file manipulation API I made in Flask, dockerized, and documented in OpenAPI/Swagger. created: '2022-10-03T15:01:03Z' updated: '2022-10-03T15:10:59Z' language: Python archived: false stars: 1 watchers: 1 forks: 0 owner: ZoeAstra logo: https://avatars.githubusercontent.com/u/11560387?v=4 repoEtag: '"7d402545967edf91477e24092128f46ceda2e14bf098fe6e82258f692720386a"' repoLastModified: Mon, 03 Oct 2022 15:10:59 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/asera286/file-path-api - source: openapi3 tags repository: https://github.com/alexbugrimov/rented-apartment v3: true repositoryMetadata: base64Readme: >- IyMg0J/RgNC+0LXQutGCIC0gItCh0YrQtdC80L3QsNGPINC60LLQsNGA0YLQuNGA0LAiIC0gUkVTVCBBUEkgc2VydmljZQoK0J/RgNC+0LXQutGCINGB0L7RgdGC0L7QuNGCINC40LcgMi3RhSDQvNC+0LTRg9C70LXQuToKKiBmcm9udGVuZAoqIHJlc3QtYXBpCgrQodC+0LTQtdGA0LbQuNGCINC40L3RhNC+0YDQvNCw0YbQuNGOCiog0YLQsNGA0LjRhNGLINC30LAg0YPRgdC70YPQs9C4INC/0L4g0YHRh9C10YLRh9C40LrQsNC8OgogICAgKiDRjdC70LXQutGC0YDQvi3RjdC90LXRgNCz0LjRjgogICAgKiDRhdC+0LvQvtC00L3QsNGPINCy0L7QtNCwCiAgICAqINCz0L7RgNGP0YfQsNGPINCy0L7QtNCwCiAgICAqINCy0L7QtNC+0L7RgtCy0LXQtNC10L3QuNC1Ciog0LXQttC10LzQtdGB0Y/Rh9C90YvQtSDQv9C+0LrQsNC30LDQvdC40Y8g0YHRh9C10YLRh9C40LrQvtCyICsg0YHQutGA0LjQvdGLOgogICAgKiDRjdC70LXQutGC0YDQvi3RjdC90LXRgNCz0LjRjgogICAgKiDRhdC+0LvQvtC00L3QsNGPINCy0L7QtNCwCiAgICAqINCz0L7RgNGP0YfQsNGPINCy0L7QtNCwCiog0YHRg9C80LzRiyDQtNC70Y8g0YDQsNGB0YfQtdGC0LAg0LfQsCDQvNC10YHRj9GGCiAgICAqINGN0LvQtdC60YLRgNC+LdGN0L3QtdGA0LPQuNGOCiAgICAqINGF0L7Qu9C+0LTQvdCw0Y8g0LLQvtC00LAKICAgICog0LPQvtGA0Y/Rh9Cw0Y8g0LLQvtC00LAKICAgICog0L7QsdGJ0LDRjyDRgdGD0LzQvNCwINC30LAg0LzQtdGB0Y/RhgoqINCy0YvQs9GA0YPQt9C60LAg0LTQsNC90L3Ri9GFINCyIFBERi3QvtGC0YfQtdGCCg== readmeEtag: '"98f985a743cf8c3faa82b474ec2fc9480d2e76a9"' readmeLastModified: Mon, 12 Oct 2020 16:25:09 GMT repositoryId: 248840821 description: Съемная квартира created: '2020-03-20T19:56:47Z' updated: '2020-10-12T16:25:12Z' language: Java archived: false stars: 1 watchers: 3 forks: 0 owner: AlexBugrimov logo: https://avatars.githubusercontent.com/u/30559567?v=4 repoEtag: '"e23c402141c60232712675476d2e3e88e6c771551b5cac90be5afe12ade257b6"' repoLastModified: Mon, 12 Oct 2020 16:25:12 GMT foundInMaster: true category: DSL id: 4aecd85d2c2ac753e61e3b2ea4d58e2d - source: openapi3 tags repository: https://github.com/membrane-php/membrane-core v3: true id: f7a3f57a79b6b3b13e5ff19c0dd5fd7a repositoryMetadata: base64Readme: >- IyBNZW1icmFuZQoKTWVtYnJhbmUgaXMgYSBsaWdodHdlaWdodCBpbnB1dCB2YWxpZGF0aW9uIGxheWVyIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFuc3dlciB0aGUgcXVlc3Rpb24gIklzIHRoaXMgaW5wdXQgc29tZXRoaW5nIHdlCm1pZ2h0IGJlIGFibGUgdG8gcHJvY2Vzcz8iLiBJdHMKcHVycG9zZSBpcyB0byByZWNlaXZlICJyYXciIHVzZXIgaW5wdXQgYW5kIHByb2R1Y2UgYSBjbGVhbmVkIHVwLCBmdWxseSB2YWxpZGF0ZWQgb2JqZWN0IG9yIGFycmF5IHJlcHJlc2VudGluZyB0aGF0IGRhdGEsCndoaWNoIHRoZSByZXN0IG9mIHlvdXIgYXBwbGljYXRpb24KY2FuIHVzZSB3aXRoIGNvbmZpZGVuY2UuCgpJdCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgYSBmdWxseSBmZWF0dXJlZCB2YWxpZGF0aW9uIGxpYnJhcnksIGJ1dCBpbnN0ZWFkIGZvY3VzIG9uIGVuc3VyaW5nIHRoYXQgdGhlIGRhdGEgeW91IGhhdmUKcmVjZWl2ZWQgbG9va3MgY29ycmVjdCBieSBmb2N1c2luZwpvbiBkYXRhIHR5cGVzLCByYW5nZXMgYW5kIGZvcm1hdHMuCgpUbyBwdXQgdGhpcyBpbiBjb250ZXh0LCBtZW1icmFuZSBjb3VsZCBiZSB1c2VkIHRvIHZhbGlkYXRlIHRoYXQgYSB1c2VyIHN1Ym1pdHRpbmcgYSByZXF1ZXN0IHRvIGVkaXQgYSBibG9nIHBvc3QgaGFzOgoKLSBhbiBpbnRlZ2VyIGlkLCBncmVhdGVyIHRoYW4gemVybzsKLSBhIHN0cmluZyB0aXRsZSBiZXR3ZWVuIDEwIGFuZCA4MCBjaGFyYWN0ZXJzOwotIGEgc3RyaW5nIHBvc3QgYm9keSBhdCBsZWFzdCAyNSBjaGFyYWN0ZXJzIGxvbmc7Ci0gYSBsaXN0IG9mIG5vIG1vcmUgdGhhbiA1IHN0cmluZyB0YWdzLCBlYWNoIHdpdGggYSBsZW5ndGggYmV0d2VlbiAzIGFuZCAxNSBjaGFyYWN0ZXJzLgoKSG93ZXZlciwgaXQgc2hvdWxkIG5vdCBiZSB1c2VkIHRvIHZhbGlkYXRlIHRoYXQ6CgotIHRoZSBibG9nIHBvc3QgYWxyZWFkeSBleGlzdHM7Ci0gdGhhdCB0aGUgdXNlciBoYXMgcGVybWlzc2lvbiB0byBlZGl0IHRoZSBibG9nIHBvc3Q7Ci0gdGhhdCB0aGUgYmxvZyBwb3N0IGlzIHVucHVibGlzaGVkIGFuZCB0aHVzIHN0aWxsIGFsbG93ZWQgdG8gYmUgZWRpdGVkLgoKVGhlc2UgYXJlIGFsbCBidXNpbmVzcyBydWxlcyB3aGljaCBzaG91bGQgYmUgdGFrZW4gY2FyZSBvZiBpbiBhIHNlcGFyYXRlIGxheWVyLgoKTWVtYnJhbmUgd2lsbCB1c3VhbGx5IGJlIHlvdXIgZmlyc3QgbGluZSBiZXR3ZWVuIGEgd2ViIHJlcXVlc3QgYW5kIHlvdXIgYXBwbGljYXRpb24sIHNvIEkgaGF2ZSBtYWRlIHRoZSBkZXNpZ24gZGVjaXNpb24KdGhhdCBtZW1icmFuZSB3aWxsICpORVZFUiogdGhyb3cgYW4KZXhjZXB0aW9uIGJlY2F1c2Ugb2YgYmFkIHVzZXIgZGF0YS4gRXhjZXB0aW9ucyB3aWxsIG9ubHkgYmUgdGhyb3duIGR1ZSB0byBtZW1icmFuZSBiZWluZyBzZXR1cCBpbmNvcnJlY3RseSBieSB0aGUKZGV2ZWxvcGVyLiBBcyBzdWNoLCB5b3Ugd2lsbCBhbHdheXMgZ2V0IGEKcmVzdWx0IG9iamVjdCBiYWNrIHdoZW4gdmFsaWRhdGluZyB1c2VyIGlucHV0IGV2ZW4gaWYgdGhlIGlucHV0IHdhcyBjb21wbGV0ZSBnYXJiYWdlLgo= readmeEtag: '"fb9d6c89006ebdfbf89771a413a72160129e683a"' readmeLastModified: Thu, 25 Apr 2024 16:02:54 GMT repositoryId: 485017464 description: >- Membrane is a general purpose input validation library, supports both PHP Attributes and OpenAPI specifications created: '2022-04-24T12:10:16Z' updated: '2024-04-25T16:03:00Z' language: PHP archived: false stars: 1 watchers: 2 forks: 2 owner: membrane-php logo: https://avatars.githubusercontent.com/u/104306108?v=4 license: NOASSERTION repoEtag: '"6cad1ecdb5bba4880286ea757ad44fe6454507638d2cb63f586919ff91df3047"' repoLastModified: Thu, 25 Apr 2024 16:03:00 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/vbguard/restful-api-boilerplate v3: true repositoryMetadata: base64Readme: >- IyBSRVNUZnVsLUFQSS1ib2lsZXJwbGF0ZQrim5NUZW1wbGF0ZSBmb3IgZmFzdCBzdGFydCBvZiB3cml0aW5nIFJFU1RmdWwgQVBJIPCfmoAK readmeEtag: '"4ef7d7e4c02bd4bc94553e55a18af5adeab08bb7"' readmeLastModified: Fri, 25 Oct 2019 21:59:33 GMT repositoryId: 197930485 description: ⛓Template for fast start of writing RESTful API 🚀 created: '2019-07-20T12:57:55Z' updated: '2024-06-04T23:58:26Z' language: JavaScript archived: false stars: 1 watchers: 0 forks: 2 owner: vbguard logo: https://avatars.githubusercontent.com/u/3513401?v=4 license: Apache-2.0 repoEtag: '"ef7f1eef50ad4e0501775459b0d006e30fd87eb669acface39472a7f4ec40414"' repoLastModified: Tue, 04 Jun 2024 23:58:26 GMT foundInMaster: true category: - Server - Parsers - Server Implementations id: 36c9644a6987d511428b5ae00f48dcb4 - source: openapi3 tags repository: https://github.com/verbasu/rocketchat-roles v3: true id: e6c45a76693dbef7b36c86b55f9ae3c7 repositoryMetadata: base64Readme: >- IyBDcmVhdGUgY3VzdG9tIHZpZXdzIGZvciBSb2NrZXRDaGF0IGRhdGFiYXNlIGNvbGxlY3Rpb25zIChNb25nbykKCldlIHVzZSBSb2NrZXQgOikgd2ViIGZyYW1ld29yayB3cml0dGVuIGluIFJ1c3QKCk5vdyB3ZSBoYXZlIE9wZW5BUEkgZm9yIHJvbGVzICh0aGFua3MgdG8gYGp1aGFrdSAvIHV0b2lwYWApIGFuZCB3ZWIgaW50ZXJmYWNlIHVzaW5nIEhUTVggYW5kIFRlcmEgdGVtcGxhdGVzLgoKLS0tCgpgYGBzaGVsbApjdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC91c2Vycy8gfCBqcQpgYGAKCmBgYGpzb24KWwogIHsKICAgICJfaWQiOiAicm9ja2V0LmNhdCIsCiAgICAicm9sZXMiOiBbCiAgICAgICJib3QiCiAgICBdLAogICAgInN0YXR1cyI6ICJvbmxpbmUiLAogICAgInVzZXJuYW1lIjogInJvY2tldC5jYXQiLAogICAgImFjdGl2ZSI6IHRydWUKICB9LAogIHsKICAgICJfaWQiOiAiRzdSWEtYYTN3OXBNbjNSTXQiLAogICAgInJvbGVzIjogWwogICAgICAidXNlciIsCiAgICAgICJhZG1pbiIKICAgIF0sCiAgICAic3RhdHVzIjogIm9mZmxpbmUiLAogICAgInVzZXJuYW1lIjogImRwbCIsCiAgICAiYWN0aXZlIjogdHJ1ZQogIH0KXQpgYGAKCmBgYHNoZWxsCmN1cmwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Blcm1pc3Npb25zLyB8IGpxCmBgYAoKYGBganNvbgpbCiAgewogICAgIl9pZCI6ICJhY2Nlc3MtcGVybWlzc2lvbnMiLAogICAgInJvbGVzIjogWwogICAgICAiYWRtaW4iCiAgICBdCiAgfSwKICB7CiAgICAiX2lkIjogImFjY2Vzcy1tYXJrZXRwbGFjZSIsCiAgICAicm9sZXMiOiBbCiAgICAgICJhZG1pbiIsCiAgICAgICJ1c2VyIgogICAgXQogIH0sCiAgewogICAgIl9pZCI6ICJhY2Nlc3Mtc2V0dGluZy1wZXJtaXNzaW9ucyIsCiAgICAicm9sZXMiOiBbCiAgICAgICJhZG1pbiIKICAgIF0KICB9LAogIHsKICAgICJfaWQiOiAiYWRkLW9hdXRoLXNlcnZpY2UiLAogICAgInJvbGVzIjogWwogICAgICAiYWRtaW4iCiAgICBdCiAgfSwKICB7CiAgICAiX2lkIjogImFkZC11c2VyLXRvLWpvaW5lZC1yb29tIiwKICAgICJyb2xlcyI6IFsKICAgICAgImFkbWluIiwKICAgICAgIm93bmVyIiwKICAgICAgIm1vZGVyYXRvciIKICAgIF0KICB9LAogIHsKICAgICJfaWQiOiAiYWRkLXVzZXItdG8tYW55LWMtcm9vbSIsCiAgICAicm9sZXMiOiBbCiAgICAgICJhZG1pbiIKICAgIF0KICB9LAogIHsKICAgICJfaWQiOiAia2ljay11c2VyLWZyb20tYW55LWMtcm9vbSIsCiAgICAicm9sZXMiOiBbCiAgICAgICJhZG1pbiIKICAgIF0KICB9LAogIHsKICAgICJfaWQiOiAiYXBpLWJ5cGFzcy1yYXRlLWxpbWl0IiwKICAgICJyb2xlcyI6IFsKICAgICAgImFkbWluIiwKICAgICAgImJvdCIsCiAgICAgICJhcHAiCiAgICBdCiAgfSwKICB7CiAgICAiX2lkIjogImFyY2hpdmUtcm9vbSIsCiAgICAicm9sZXMiOiBbCiAgICAgICJhZG1pbiIsCiAgICAgICJvd25lciIKICAgIF0KICB9LAogIHsKICAgICJfaWQiOiAiYXNzaWduLWFkbWluLXJvbGUiLAogICAgInJvbGVzIjogWwogICAgICAiYWRtaW4iCiAgICBdCiAgfSwKICB7CiAgICAiX2lkIjogImFzc2lnbi1yb2xlcyIsCiAgICAicm9sZXMiOiBbCiAgICAgICJhZG1pbiIKICAgIF0KICB9LAogIHsKICAgICJfaWQiOiAiYmFuLXVzZXIiLAogICAgInJvbGVzIjogWwogICAgICAiYWRtaW4iLAogICAgICAib3duZXIiLAogICAgICAibW9kZXJhdG9yIgogICAgXQogIH0sCi4uLgpgYGAKCmBgYHNoZWxsCmN1cmwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3JvbGVzLyB8IGpxCmBgYAoKYGBganNvbgpbCiAgewogICAgIl9pZCI6ICJhZG1pbiIsCiAgICAic2NvcGUiOiAiVXNlcnMiLAogICAgIm5hbWUiOiAiYWRtaW4iCiAgfSwKICB7CiAgICAiX2lkIjogIm1vZGVyYXRvciIsCiAgICAic2NvcGUiOiAiU3Vic2NyaXB0aW9ucyIsCiAgICAibmFtZSI6ICJtb2RlcmF0b3IiCiAgfSwKICB7CiAgICAiX2lkIjogImxlYWRlciIsCiAgICAic2NvcGUiOiAiU3Vic2NyaXB0aW9ucyIsCiAgICAibmFtZSI6ICJsZWFkZXIiCiAgfSwKICB7CiAgICAiX2lkIjogIm93bmVyIiwKICAgICJzY29wZSI6ICJTdWJzY3JpcHRpb25zIiwKICAgICJuYW1lIjogIm93bmVyIgogIH0sCiAgewogICAgIl9pZCI6ICJ1c2VyIiwKICAgICJzY29wZSI6ICJVc2VycyIsCiAgICAibmFtZSI6ICJ1c2VyIgogIH0sCiAgewogICAgIl9pZCI6ICJib3QiLAogICAgInNjb3BlIjogIlVzZXJzIiwKICAgICJuYW1lIjogImJvdCIKICB9LAogIHsKICAgICJfaWQiOiAiYXBwIiwKICAgICJzY29wZSI6ICJVc2VycyIsCiAgICAibmFtZSI6ICJhcHAiCiAgfSwKICB7CiAgICAiX2lkIjogImd1ZXN0IiwKICAgICJzY29wZSI6ICJVc2VycyIsCiAgICAibmFtZSI6ICJndWVzdCIKICB9LAogIHsKICAgICJfaWQiOiAiYW5vbnltb3VzIiwKICAgICJzY29wZSI6ICJVc2VycyIsCiAgICAibmFtZSI6ICJhbm9ueW1vdXMiCiAgfSwKICB7CiAgICAiX2lkIjogImxpdmVjaGF0LWFnZW50IiwKICAgICJzY29wZSI6ICJVc2VycyIsCiAgICAibmFtZSI6ICJsaXZlY2hhdC1hZ2VudCIKICB9LAogIHsKICAgICJfaWQiOiAibGl2ZWNoYXQtbWFuYWdlciIsCiAgICAic2NvcGUiOiAiVXNlcnMiLAogICAgIm5hbWUiOiAibGl2ZWNoYXQtbWFuYWdlciIKICB9LAogIHsKICAgICJfaWQiOiAibGl2ZWNoYXQtbW9uaXRvciIsCiAgICAic2NvcGUiOiAiVXNlcnMiLAogICAgIm5hbWUiOiAibGl2ZWNoYXQtbW9uaXRvciIKICB9Cl0KYGBgCg== readmeEtag: '"a6a406a117a93b8707b897442409c08dc575ca58"' readmeLastModified: Thu, 06 Jun 2024 12:18:33 GMT repositoryId: 795627333 description: RocketChat roles and permissions research created: '2024-05-03T17:22:26Z' updated: '2024-06-06T12:19:56Z' language: Rust archived: false stars: 1 watchers: 1 forks: 0 owner: verbasu logo: https://avatars.githubusercontent.com/u/144282650?v=4 repoEtag: '"16e118723c721031df06065c8c7900cfafecef2b7344acc6929d2793d0b36c2c"' repoLastModified: Thu, 06 Jun 2024 12:19:56 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/allixender/ogcapi-dggs-webdev-python v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIGdlbmVyYXRlZCBzZXJ2ZXIgZm9yIE9HQyBER0dTIEFQSSB0ZXN0aW5nCgojIyBPdmVydmlldwoKVGhpcyBzZXJ2ZXIgd2FzIGdlbmVyYXRlZCBieSB0aGUgW3N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikgcHJvamVjdC4gQnkgdXNpbmcgdGhlCltPcGVuQVBJLVNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvd2lraSkgZnJvbSBhIHJlbW90ZSBzZXJ2ZXIsIHlvdSBjYW4gZWFzaWx5IGdlbmVyYXRlIGEgc2VydmVyIHN0dWIuICBUaGlzCmlzIGFuIGV4YW1wbGUgb2YgYnVpbGRpbmcgYSBzd2FnZ2VyLWVuYWJsZWQgRmxhc2sgc2VydmVyLgoKVGhpcyBleGFtcGxlIHVzZXMgdGhlIFtDb25uZXhpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS96YWxhbmRvL2Nvbm5leGlvbikgbGlicmFyeSBvbiB0b3Agb2YgRmxhc2suCgpUaGUgT3BlbkFQSSB0YXJnZXQgZGVmaW5pdGlvbiBpcyBvZiBER0dTIEFQSSAwLjAuNiBvZiB0aGUgREdHUyBTV0cgW3dpcC1vZ2NfYXBpX2RnZ3Nfem9uZV9xdWVyeV9wcm9jZXNzX3N0eWxlXShodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzL2dlb2Zpenp5ZHJpbmsvd2lwLW9nY19hcGlfZGdnc196b25lX3F1ZXJ5X3Byb2Nlc3Nfc3R5bGUvMC4wLjYpCgpUaGUgbGF0ZXN0IGl0ZXJhdGlvbiBvZiB0aGF0IHNwZWMgaXMgYWN0dWFsbHkgW29nY19hcGlfZGdncywgdW5mb3J0dW5hdGVseSBhbHNvIDAuMC42XShodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzL2dlb2Zpenp5ZHJpbmsvb2djX2FwaV9kZ2dzLzAuMC42KS4gVGhpcyByZXBvIGlzIG5vdCB5ZXQgaW1wbGVtZW50aW5nIHRoaXMuIEFzIHBhcnQgb2YgdGhlIFtPY3RvYmVyIDIwMjEgb2djYXBpLWNvZGUtc3ByaW50XShodHRwczovL2dpdGh1Yi5jb20vb3Blbmdlb3NwYXRpYWwvb2djYXBpLWNvZGUtc3ByaW50LTIwMjEtMTAvaXNzdWVzLzEpIEkvd2UgYXJlIGFpbWluZyB0byBzdXBwb3J0IHRoZSBuZXcgQVBJIFNQRUMuIFN0YXkgdHVuZWQgb3IgcHVsbCByZXF1ZXN0LgoKIyMgUmVxdWlyZW1lbnRzClB5dGhvbiAzLjUuMisKCiMjIFVzYWdlCgpXZSBuZWVkIGFuIGVudiB2YXIgbmFtZWQgVEFCTEVTX0NPTkZJRwp0aGlzIFRBQkxFU19DT05GSUcgdmFyIHNob3VsZCBob2xkIHRoZSBwYXRoIHRvIGEgZmlsZSMgYmFzZWQgb24gdGhlCnRhYmxlcy50ZW1wbGF0ZS5jb25mIHdpY2ggaG9sZHMgdGhlIGFjY2VzcyBpbmZvIHRvIHRoZSBkYXRhYmFzZSBkZWZpbml0aW9uLgoKVGhlIG1vc3QgdXNlZnVsIGlzIHRoZSBkZW1vIHRlc3Quc2IgU1FsaXRlIGRhdGFiYXNlLgoKYGBgCiMgZm9yIGV4YW1wbGUKZXhwb3J0IFRBQkxFU19DT05GSUc9JEhPTUUvdGFibGVzLmNvbmYKCmBgYAoKClRvIHJ1biB0aGUgc2VydmVyLCBwbGVhc2UgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5OgoKYGBgCnBpcDMgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0CgojIGNvbmZpZ3VyZSBjbGlja2hvdXNlIGRiIGFjY2VzcwpleHBvcnQgVEFCTEVTX0NPTkZJRz10YWJsZXMudGVtcGxhdGUuY29uZgoKcHl0aG9uMyAtbSBkZ2dzX2FwaV9zZXJ2ZXIKCiMgb3IgZm9yIGRldiBhbmQgdGVzdGluZwojIHB5dGhvbiBzZXJ2ZXIucHkKYGBgCgphbmQgb3BlbiB5b3VyIGJyb3dzZXIgdG8gaGVyZToKCmBgYApodHRwOi8vbG9jYWxob3N0OjgwODAvZGdncy1hcGkvdWkvCmBgYAoKWW91ciBTd2FnZ2VyIGRlZmluaXRpb24gbGl2ZXMgaGVyZToKCmBgYApodHRwOi8vbG9jYWxob3N0OjgwODAvZGdncy1hcGkvb3BlbmFwaS5qc29uCmBgYAoKVG8gbGF1bmNoIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0cywgdXNlIHRveDoKYGBgCnN1ZG8gcGlwIGluc3RhbGwgdG94CnRveApgYGAKCipSZW1hcms6IEkgaGF2ZW4ndCBoYWQgdGltZSB0byB1cGRhdGUgdGhlIHRlc3RzLCBwbGVhc2UgZmVlbCBmcmVlIHRvIGRvIHNvKgoKIyMgUnVubmluZyB3aXRoIERvY2tlcgoKVG8gcnVuIHRoZSBzZXJ2ZXIgb24gYSBEb2NrZXIgY29udGFpbmVyLCBwbGVhc2UgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5OgoKYGBgYmFzaAojIGJ1aWxkaW5nIHRoZSBpbWFnZQpkb2NrZXIgYnVpbGQgLXQgZGdnc19hcGlfc2VydmVyIC4KCiMgc3RhcnRpbmcgdXAgYSBjb250YWluZXIKZG9ja2VyIHJ1biAtcCA4MDgwOjgwODAgZGdnc19hcGlfc2VydmVyCmBgYAoKQSByZWNlbnQgZGVtbyBpbnN0YW5jZSB3aXRoIHRoZSBzcWxpdGUzIHRlc3QuZGIgaXMgcnVubmluZyBhdDogaHR0cHM6Ly9kZ2dzLWFwaS1ib3plYTNjc3BhLWV3LmEucnVuLmFwcC9kZ2dzLWFwaS8K readmeEtag: '"e5b11c166385e274e3eaaf5ecf9d9f2cf27bc8b4"' readmeLastModified: Fri, 29 Apr 2022 12:45:05 GMT repositoryId: 378910222 description: >- Testing Python code generated servers for ogcapi-discrete-global-grid-systems created: '2021-06-21T11:39:33Z' updated: '2024-08-19T14:03:12Z' language: Jupyter Notebook archived: false stars: 1 watchers: 2 forks: 0 owner: allixender logo: https://avatars.githubusercontent.com/u/4483885?v=4 repoEtag: '"065002023a9a7978025f534d3f87b9c2d18165659f54a04ca8021b35ea261637"' repoLastModified: Mon, 19 Aug 2024 14:03:12 GMT foundInMaster: true category: Server Implementations id: a69484dbdfba2f19352bbc6aa2284c34 - source: openapi3 tags repository: https://github.com/traefik/hub v3: true id: 055ce36733aaa4fb20b0e349443e94ea repositoryMetadata: base64Readme: >- IyBUcmFlZmlrIEh1YgoKPGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luOiAzMHB4OyI+CjxhIGhyZWY9Imh0dHBzOi8vaHViLnRyYWVmaWsuaW8vIj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9kb2MudHJhZWZpay5pby90cmFlZmlrLWh1Yi9pbWcvdHJhZWZpay1odWItbG9nby5zdmciIHN0eWxlPSJ3aWR0aDoyNTBweDsiIGFsaWduPSJjZW50ZXIiIC8+CjwvYT4KPGJyIC8+CjxiciAvPgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KICAgIDxhIGhyZWY9Imh0dHBzOi8vaHViLnRyYWVmaWsuaW8iPkxvZyBJbjwvYT4gfAogICAgPGEgaHJlZj0iaHR0cHM6Ly9kb2MudHJhZWZpay5pby90cmFlZmlrLWh1YiI+RG9jdW1lbnRhdGlvbjwvYT4KPC9kaXY+CjwvZGl2PgoKPGJyIC8+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+VHJhZWZpayBIdWI8L3N0cm9uZz4KCjxiciAvPgo8YnIgLz4KPC9kaXY+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPldlbGNvbWUgdG8gdGhpcyByZXBvc2l0b3J5ITwvZGl2PgoKIyMgOmluZm9ybWF0aW9uX3NvdXJjZTogQWJvdXQKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBzb3VyY2UgY29kZSBzaG93aW5nIGhvdyB0byB1c2U6CgoxLiBUcmFlZmlrIEh1YiBBUEkgR2F0ZXdheQoyLiBUcmFlZmlrIEh1YiBBUEkgTWFuYWdlbWVudAoKCiMjIDphbGVtYmljOiBBUElzIHVzZWQgaW4gdGhpcyByZXBvc2l0b3J5CgpBbGwgQVBJcyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgYSB0aW55IEpTT04gc2VydmVyIGluIEdvOyB0aGUgc291cmNlIGNvZGUgaXMgW2hlcmVdKC4vc3JjL2FwaS1zZXJ2ZXIpLgoKVGhpcyBKU09OIHNlcnZlciBpcyB1c2VkIHRvIGRlcGxveSBKU09OIEFQSXMgdXNpbmcgYSBjb25maWdtYXAuCgpUaGUgS3ViZXJuZXRlcyBtYW5pZmVzdHMgKFlBTUwpIHRvIGRlcGxveSB0aG9zZSBhcHBzIGFyZSBbaGVyZV0oLi9zcmMvbWFuaWZlc3RzKS4KCiMjIDpjb25zdHJ1Y3Rpb25fd29ya2VyOiBXaGVyZSB0byBzdGFydCA/CgpUaGUgam91cm5leSBjYW4gc3RhcnQgW2hlcmVdKFdBTEtUSFJPVUdILm1kKSBmb3IgYSBxdWlja3N0YXJ0IHdpdGggYSBnbG9iYWwgb3ZlcnZpZXcKCiMjIPCfk5IgUmVwb3NpdG9yeSBTdHJ1Y3R1cmUKCmBgYHNoZWxsCi4K4pSc4pSA4pSAIGFwaS1nYXRld2F5ICAgICAgICAgICAgICAgICAgICAgICAjIFRyYWVmaWsgSHViIEFQSSBHYXRld2F5IHR1dG9yaWFscwrilILCoMKgIOKUnOKUgOKUgCAxLWdldHRpbmctc3RhcnRlZArilILCoMKgIOKUnOKUgOKUgCAyLXNlY3VyZS1hcHBsaWNhdGlvbnMK4pSc4pSA4pSAIGFwaS1tYW5hZ2VtZW50ICAgICAgICAgICAgICAgICAgICAjIFRyYWVmaWsgSHViIEFQSSBNYW5hZ2VtZW50IHR1dG9yaWFscwrilILCoMKgIOKUnOKUgOKUgCAxLWdldHRpbmctc3RhcnRlZArilILCoMKgIOKUnOKUgOKUgCAyLWFjY2Vzcy1jb250cm9sCuKUgsKgwqAg4pSc4pSA4pSAIDMtYXBpLWxpZmVjeWNsZS1tYW5hZ2VtZW50CuKUgsKgwqAg4pSU4pSA4pSAIDQtcHJvdGVjdC1hcGktaW5mcmFzdHJ1Y3R1cmUgKFdJUCkK4pSU4pSA4pSAIHNyYwogwqDCoCDilJzilIDilIAgYXBpLXNlcnZlciAgICAgICAgICAgICAgICAgICAgIyBBUEkgc2VydmVyIHNvdXJjZSBjb2RlCiDCoMKgIOKUlOKUgOKUgCBtYW5pZmVzdHMgICAgICAgICAgICAgICAgICAgICAjIFlhbWwgdG8gZGVwbG95IGFsbCBhcHBzCmBgYAo= readmeEtag: '"b67f6209219e73cb840ad496f8cf63b12a9b3edd"' readmeLastModified: Fri, 16 Aug 2024 14:18:03 GMT repositoryId: 335312873 description: Traefik Hub Tutorials created: '2021-02-02T14:18:58Z' updated: '2024-09-03T15:19:20Z' language: Go archived: false stars: 1 watchers: 7 forks: 6 owner: traefik logo: https://avatars.githubusercontent.com/u/14280338?v=4 license: Apache-2.0 repoEtag: '"6767cd3f749da06c2485a0f94844bff9176b86c9b61fea305c58b9ca8bde9928"' repoLastModified: Tue, 03 Sep 2024 15:19:20 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/justedlev/bridgewayhub v3: true id: af0bcffeb9100735d4b9e67241d85444 repositoryMetadata: base64Readme: >- PGRpdiBpZD0iaGVhZGVyIiBhbGlnbj0iY2VudGVyIj4KICAgIDxoMT5CcmlkZ2VXYXkgSHViPC9oMT4KICAgIDxoMz7wn6exIEFQSSBHYXRld2F5PC9oMz4KPC9kaXY+Cgo8ZGl2IGlkPSJiYWRnZXMiIGFsaWduPSJjZW50ZXIiPgoKWyFbbGFuZ3VhZ2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvSmF2YSUyMDE3LWU2ODkyZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0ZWRsZXYvYnJpZGdld2F5aHViKQpbIVtmcmFtZXdvcmtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU3ByaW5nJTIwRnJhbWV3b3JrJTIwNi02Y2I1MmQpXShodHRwczovL2dpdGh1Yi5jb20vSnVzdGVkbGV2L2JyaWRnZXdheWh1YikKWyFbZnJhbWV3b3JrXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NwcmluZyUyMEJvb3QlMjAzLTZjYjUyZCldKGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0ZWRsZXYvYnJpZGdld2F5aHViKQpbIVtsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL0p1c3RlZGxldi9icmlkZ2V3YXlodWIpXShodHRwczovL2dpdGh1Yi5jb20vSnVzdGVkbGV2L2JyaWRnZXdheWh1YikKWyFbc3RhcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3N0YXJzL0p1c3RlZGxldi9icmlkZ2V3YXlodWIpXShodHRwczovL2dpdGh1Yi5jb20vSnVzdGVkbGV2L2JyaWRnZXdheWh1Yi9zdGFyKQpbIVtpc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9KdXN0ZWRsZXYvYnJpZGdld2F5aHViKV0oaHR0cHM6Ly9naXRodWIuY29tL0p1c3RlZGxldi9icmlkZ2V3YXlodWIvaXNzdWVzKQoKPC9kaXY+CgojIyDwn5OLIEFib3V0CgpfX0JyaWRnZVdheSBIdWJfXyBpdCdzIGFuICpBUEkgR2F0ZXdheSogZm9yIGVhc3kgbGF1bmNoIGFuZCB1c2luZywgYmFzZWQgb24gdGhlIFNwcmluZyBmcmFtZXdvcmsgNiwKa2V5Y2xvYWsgYXMgYSBzZWN1cml0eSBsYXllciBhbmQgZXVyZWthIGNsaWVudCBmb3IgcmVnaXN0cmF0aW9uIGluIHRoZSBzZXJ2aWNlIGRpc2NvdmVyeSwgZXRjLgpZb3UgY2FuIHNlZSB0aGUgYWxsIGRlcGVuZGVuY2llcyBbaGVyZV0oLi4vcG9tLnhtbCkKCiMjIOKaoO+4jyBSZXF1aXJlbWVudHMKCkJlZm9yZSBydW5uaW5nIHRoZSBhcHAgeW91IG5lZWQgdG8gY29uZmlndXJlIHRoZSBuZXh0IHNlcnZpY2VzIHRoYXQgZGVwZW5kcyBvbjoKCi0gS2V5Y2xvYWsKLSBEQiBmb3IgS2V5Y2xvYWsgaWYgbmVlZGVkCi0gRXVyZWthIFNlcnZlciwgbXkgW3NvbHV0aW9uXShodHRwczovL2dpdGh1Yi5jb20vSnVzdGVkbGV2L3NpbXBsZS1ldXJla2Etc2VydmVyKQoKIyMg4pa277iPIFJ1bgoKIyMjIPCfm6DvuI8gSW50ZWxsaWoKCkNsb25lIHRoZSByZXBvc2l0b3J5IHVzaW5nIGBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL0p1c3RlZGxldi9icmlkZ2V3YXlodWIuZ2l0YCBhbmQgYWZ0ZXIgdGhhdCBydW4gdGhlIGFwcCBsb2NhbCwKeW91IGNhbiB1c2UgdGhlIHNpbXBsZSBbcnVuIGNvbmZpZ3VyYXRpb25dKC5ydW4lMkZEZWZhdWx0LnJ1bi54bWwpLCB0aGF0IGJhc2VkIG9uIFsuZW52XSguLi8uZW52KQphbmQgW2p2bSBvcHRpb25zXSguLi8udm1vcHRpb25zKSwgbWFrZSBzdXJlIHRoYXQgdGhlIHNlcnZpY2UgcmVnaXN0cnkgKGV1cmVrYSBzZXJ2aWNlKSBhbHJlYWR5IHN0YXJ0ZWQKb3IgZGlzYWJsZSB0aGUgZGVwZW5kZW5jeSBpbiBbcG9tLnhtbF0oLi4vcG9tLnhtbCkKCiMjIyDwn5qiIERvY2tlcgoKSSBoYXZlIGEgcmVwb3NpdG9yeSBvbiBbRG9ja2VyIEh1Yl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yZXBvc2l0b3J5L2RvY2tlci9qdXN0ZWRsZXYvYnJpZGdld2F5aHViL2dlbmVyYWwpCgojIyMg8J+Xgu+4jyBEb2NrZXIgY29tcG9zZQoKU2ltcGxlIGNvbW1hbmQgdG8gcnVuIHRoZSBjb250YWluZXI6IGBkb2NrZXIgY29tcG9zZSB1cCAtZCAtLWJ1aWxkYAoKVGhlIGZ1bGwgY29tcG9zZS55YW1sIHRoYXQgSSBwZXJzb25hbGx5IHVzZQoKYGBgeWFtbApuYW1lOiBqdXN0ZWRsZXYtbWljcm9zZXJ2aWNlCnNlcnZpY2VzOgogIGJyaWRnZXdheWh1YjoKICAgIGNvbnRhaW5lcl9uYW1lOiBicmlkZ2V3YXlodWIKICAgIGltYWdlOiBqdXN0ZWRsZXYvYnJpZGdld2F5aHViOjAuMC4xLVNOQVBTSE9UCiAgICBidWlsZDoKICAgICAgY29udGV4dDogLi4KICAgIGVudmlyb25tZW50OgogICAgICBTRVJWSUNFX1JFR0lTVFJZOiBodHRwOi8ve2V4YW1wbGV9OntleGFtcGxlfUBzZXJ2aWNlLWRpc2NvdmVyeTo4NzYxL2V1cmVrYQogICAgICBPUklHSU5TOiBodHRwOi8vc2VydmljZS1kaXNjb3Zlcnk6ODc2MSxodHRwOi8vbG9jYWxob3N0Ojg3NjEsaHR0cDovL2xvY2FsaG9zdDozMDAwCiAgICAgIFVTRVJOQU1FOiAie2V4YW1wbGV9IgogICAgICBQQVNTV09SRDogIntleGFtcGxlfSIKICAgICAgUk9MRVM6IGFkbWluLHVzZXIsZWRpdG9yLG93bmVyCiAgICAgIEtFWUNMT0FLX0hPU1Q6IGh0dHA6Ly9zc286OTMyMQogICAgICBLRVlDTE9BS19SRUFMTTogIntleGFtcGxlfSIKICAgICAgS0VZQ0xPQUtfSVNTVUVSX1VSSTogJHtLRVlDTE9BS19IT1NUfS9yZWFsbXMvJHtLRVlDTE9BS19SRUFMTX0KICAgICAgS0VZQ0xPQUtfSldLU19VUkk6ICR7S0VZQ0xPQUtfSVNTVUVSX1VSSX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvY2VydHMKICAgICAgS0VZQ0xPQUtfVE9LRU5fRU5EUE9JTlQ6ICR7S0VZQ0xPQUtfSVNTVUVSX1VSSX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4KICAgICAgS0VZQ0xPQUtfSU5UUk9TUEVDVElPTl9FTkRQT0lOVDogJHtLRVlDTE9BS19JU1NVRVJfVVJJfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbi9pbnRyb3NwZWN0CiAgICAgIEtFWUNMT0FLX0NMSUVOVF9JRDogIntleGFtcGxlfSIKICAgICAgS0VZQ0xPQUtfQ0xJRU5UX1NFQ1JFVDogIntleGFtcGxlfSIKICAgIHBvcnRzOgogICAgICAtIDgxMjM6ODEyMwogICAgZGVwZW5kc19vbjoKICAgICAgLSBzc28KICAgICAgLSBzZXJ2aWNlLWRpc2NvdmVyeQoKICAjIFNlcnZpY2UgZGlzY292ZXJ5CiAgc2VydmljZS1kaXNjb3Zlcnk6CiAgICBjb250YWluZXJfbmFtZTogc2VydmljZS1kaXNjb3ZlcnkKICAgIGltYWdlOiBqdXN0ZWRsZXYvc2ltcGxlLWV1cmVrYS1zZXJ2ZXI6MS4wLjAtU05BUFNIT1QKICAgIGVudmlyb25tZW50OgogICAgICBVU0VSTkFNRTogIntleGFtcGxlfSIKICAgICAgUEFTU1dPUkQ6ICJ7ZXhhbXBsZX0iCiAgICBwb3J0czoKICAgICAgLSA4NzYxOjg3NjEKCiAgIyBTU08gc2VydmljZSAoa2V5Y2xvYWspCiAgc3NvOgogICAgY29udGFpbmVyX25hbWU6IGtleWNsb2FrCiAgICBpbWFnZTogcXVheS5pby9rZXljbG9hay9rZXljbG9hazoyNC4wLjIKICAgIGNvbW1hbmQ6IFsgInN0YXJ0LWRldiIsICItLWh0dHAtcG9ydD05MzIxIiBdCiAgICBlbnZpcm9ubWVudDoKICAgICAgS0VZQ0xPQUtfQURNSU46ICJ7ZXhhbXBsZX0iCiAgICAgIEtFWUNMT0FLX0FETUlOX1BBU1NXT1JEOiAie2V4YW1wbGV9IgogICAgICBLQ19IRUFMVEhfRU5BQkxFRDogdHJ1ZQogICAgICBLQ19IT1NUTkFNRTogbG9jYWxob3N0CiAgICAgIEtDX0RCOiBwb3N0Z3JlcwogICAgICBLQ19EQl9VUkw6IGpkYmM6cG9zdGdyZXNxbDovL3Bvc3RncmVzOjU0MzIve2V4YW1wbGV9CiAgICAgIEtDX0RCX1VTRVJOQU1FOiAie2V4YW1wbGV9IgogICAgICBLQ19EQl9QQVNTV09SRDogIntleGFtcGxlfSIKICAgICAgS0NfREJfU0NIRU1BOiBrZXljbG9hawogICAgZGVwZW5kc19vbjoKICAgICAgLSBwb3N0Z3JlcwogICAgcG9ydHM6CiAgICAgIC0gOTMyMTo5MzIxCgogICMgUG9zdGdyZXMgREIKICBwb3N0Z3JlczoKICAgIGNvbnRhaW5lcl9uYW1lOiBwb3N0Z3JlcwogICAgaW1hZ2U6IHBvc3RncmVzOjE2LjItYWxwaW5lCiAgICBlbnZpcm9ubWVudDoKICAgICAgUE9TVEdSRVNfREI6ICJ7ZXhhbXBsZX0iCiAgICAgIFBPU1RHUkVTX1VTRVI6ICJ7ZXhhbXBsZX0iCiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiAie2V4YW1wbGV9IgogICAgdm9sdW1lczoKICAgICAgLSBkYi1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YQogICAgcG9ydHM6CiAgICAgIC0gNTQzMjo1NDMyCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDogWyAiQ01EIiwgInBnX2lzcmVhZHkiLCAiLVUge2V4YW1wbGV9IiwgIi1kIiBdCiAgICAgIGludGVydmFsOiAxNXMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDUKICAgICAgc3RhcnRfcGVyaW9kOiAxMnMKICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkCiAgICBkZXBsb3k6CiAgICAgIHJlc291cmNlczoKICAgICAgICBsaW1pdHM6CiAgICAgICAgICBjcHVzOiAiMSIKICAgICAgICAgIG1lbW9yeTogMjUwTUIKCnZvbHVtZXM6CiAgZGItZGF0YToKYGBgCg== readmeEtag: '"759e1528fea9d7313f0e3c12bab75a3a83e7aad8"' readmeLastModified: Sat, 27 Jul 2024 15:53:35 GMT repositoryId: 786112920 description: 🧱 API Gateway created: '2024-04-13T13:22:10Z' updated: '2024-08-30T12:50:53Z' language: Java archived: false stars: 1 watchers: 2 forks: 0 owner: justedlev logo: https://avatars.githubusercontent.com/u/59051661?v=4 license: Apache-2.0 repoEtag: '"ba4d0823ad3e42f1a582bf0c5133e1b29ba5ea6f82b1f2fb84d90b96d6f22b52"' repoLastModified: Fri, 30 Aug 2024 12:50:53 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/vymalo/api-watcher-ui v3: true id: 684700fb41dc7baa6aa5c582db3b7d1f repositoryMetadata: base64Readme: IyBBUEkgV2F0Y2hlciBVSQoKTW9yZSBpbmZvIGNvbWluZyBuZXh0 readmeEtag: '"8fa1b3915a2f7f25879f885ae703db717eac481b"' readmeLastModified: Sat, 11 Nov 2023 08:14:24 GMT repositoryId: 620795170 description: UI App for the SMS API Watcher, a Stub server for APIs created: '2023-03-29T11:44:33Z' updated: '2023-04-14T23:18:55Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: vymalo logo: https://avatars.githubusercontent.com/u/128943481?v=4 repoEtag: '"51c489fc4bdd1215487155c0aba4c5797a39b48f88b4b8f3b039cd18ed768487"' repoLastModified: Fri, 14 Apr 2023 23:18:55 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/owainlewis/openapi v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJCgpIYXNrZWxsIHR5cGVzIGZvciB3b3JraW5nIHdpdGggYW5kIG1hbmlwdWxhdGluZyBPcGVuQVBJIHNwZWNpZmljYXRpb24gZG9jdW1lbnRzLgo= readmeEtag: '"e6218aeac6d357cd500e5aa2d6ce15bd1664c856"' readmeLastModified: Sat, 02 Nov 2019 20:23:26 GMT repositoryId: 216896190 description: >- Parse, manipulate and construct OpenAPI specification documents using Haskell created: '2019-10-22T19:42:07Z' updated: '2023-09-08T17:59:22Z' language: Haskell archived: false stars: 1 watchers: 3 forks: 0 owner: owainlewis logo: https://avatars.githubusercontent.com/u/733944?v=4 license: BSD-3-Clause repoEtag: '"b559b863a082b9ca0f5fb8fe23542bbb8600cca79a6b685c8ef7afd4d52cbd76"' repoLastModified: Fri, 08 Sep 2023 17:59:22 GMT foundInMaster: true category: Parsers id: 6fc09913925582445df2c5f3949bd738 - source: openapi3 tags repository: https://github.com/karthikairam/account-transaction-service v3: true id: 525b82762c7e108c88a0c9d3d3c42738 repositoryMetadata: base64Readme: >- IVtKYXZhIENJIHdpdGggTWF2ZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJ0aGlrYWlzZWx2YW4vYWNjb3VudC10cmFuc2FjdGlvbi1zZXJ2aWNlL3dvcmtmbG93cy9KYXZhJTIwQ0klMjB3aXRoJTIwTWF2ZW4vYmFkZ2Uuc3ZnKSAhW01hdmVuIFBhY2thZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJ0aGlrYWlzZWx2YW4vYWNjb3VudC10cmFuc2FjdGlvbi1zZXJ2aWNlL3dvcmtmbG93cy9NYXZlbiUyMFBhY2thZ2UvYmFkZ2Uuc3ZnKSAhW0RvY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2thcnRoaWthaXNlbHZhbi9hY2NvdW50LXRyYW5zYWN0aW9uLXNlcnZpY2Uvd29ya2Zsb3dzL0RvY2tlci9iYWRnZS5zdmcpIAoKIyBNaWNyb3NlcnZpY2U6IGFjY291bnQtdHJhbnNhY3Rpb24tc2VydmljZQpUaGlzIGlzIGEgZGVtbyBtaWNyb3NlcnZpY2UgZm9yIHRoZSBhY2NvdW50IHRyYW5zYWN0aW9uIGFzIHBhcnQgb2YgbW9iaWxlIGNoYWxsZW5nZXJzIGJhbmtpbmcuCgojIyMgVGVjaCBzdGFjayB1c2VkOgoxLiBKYXZhIDExCjIuIFNwcmluZyBCb290IDIuNC4xCjMuIFNwcmluZyBSRVNUIEFQSSAoU3ByaW5nIFdlYikKNC4gTG9tYm9rIDEuMTguMTYKNS4gU3ByaW5nIERhdGEgSlBBICYgSDIgaW4tbWVtb3J5IGRhdGFiYXNlIChleHBvc2VkIHRoZSBjbGllbnQgZGFzaGJvYXJkIHRvIHNlZSB0aGUgcmVjb3JkcykKNi4gc3ByaW5nZG9jLW9wZW5hcGktdWkgLSBBdXRvIGdlbmVyYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiB1c2luZyBPcGVuQVBJIDMuMCBhbmQgZXhwb3NlZCBTd2FnZ2VyIFVJIGZvciB0aGUgc2FtZSAoUmVmZXIgdGhlIGxpbmsgYXQgdGhlIGJvdHRvbSBvZiB0aGlzIHBhZ2UpCjcuIERvY2tlcml6ZWQgKERvY2tlcmZpbGUgaXMgaW5jbHVkZWQgYW5kIHVzZWQgdGhlIGxhdGVzdCBjb25jZXB0IGNhbGxlZCBtdWx0aS1sYXllcmVkIGltYWdlIGJ1aWxkaW5nIGZvciBvcHRpbWl6ZWQgYnVpbGQgdGltZSkKOC4gVEREIGFwcHJvYWNoIHVzaW5nIEpVbml0IDUsIE1vY2tpdG8sIGFuZCBTcHJpbmcgQm9vdCBUZXN0CjkuIEphQ29DbyBmb3IgY29kZSBjb3ZlcmFnZQoxMC4gU3ByaW5nIGJvb3Qgc3RhcnRlciB2YWxpZGF0aW9uIGZvciByZXF1ZXN0IHZhbGlkYXRpb24gIAoKLS0tCiMjIyBKYUNvQ28gY29kZSBjb3ZlcmFnZSBpczogYGBgIDEwMCAlIGBgYCAgCiFbSmFDb0NvX1JlcG9ydCBpbWcgbWlzc2luZ10oaHR0cHM6Ly9naXRodWIuY29tL2thcnRoaWthaXNlbHZhbi9hY2NvdW50LXRyYW5zYWN0aW9uLXNlcnZpY2UvYmxvYi9tYWluL2ltZy9KYUNvQ29fUmVwb3J0LmpwZz9yYXc9dHJ1ZSkgIAoKLS0tCiMjIyBTdGVwcyB0byBidWlsZCB0aGUgRG9ja2VyIEltYWdlOgojIyMjIyBTdGVwIDE6IEVudGVyIHRoZSBwcm9qZWN0IGRpcmVjdG9yeSwgCiAgICBjZCA8cHJvamVjdF9kaXJlY3Rvcnk+CgojIyMjIyBTdGVwIDI6IFRvIGNsZWFuIGFuZCBwYWNrYWdlIHRoZSBtaWNyby1zZXJ2aWNlIGxvY2FsbHkKICAgIG12biBjbGVhbiBwYWNrYWdlCiAKIyMjIyMgU3RlcCAzOiBCdWlsZCB0aGUgZG9ja2VyIGltYWdlIGFuZCBzdG9yZSBpdCBpbiBhIGxvY2FsIHJlcG9zaXRvcnkgKERvY2tlcmZpbGUgaXMgdGhlcmUgaW4gdGhlIHJvb3Qgb2YgdGhlIGRpcmVjdG9yeSBpdHNlbGYpCiAgICBkb2NrZXIgYnVpbGQgLiAtLXRhZyBhY2NvdW50LXRyYW5zYWN0aW9uLXNlcnZpY2UKCiMjIyMjIFN0ZXAgNDogUnVuIHRoZSBtaWNyby1zZXJ2aWNlIGFzIGEgY29udGFpbmVyIGluIHRoZSBkb2NrZXI6CiAgICBkb2NrZXIgcnVuIC1pdCAtcCA4MDgwOjgwODAgYWNjb3VudC10cmFuc2FjdGlvbi1zZXJ2aWNlOmxhdGVzdAoKTm90ZTogSSBoYXZlIHVzZWQgbXVsdGktbGF5ZXJlZCBhcHByb2FjaCBpbiBkb2NrZXIgYW5kIHNwcmluZy4KCi0tLQojIyMgT3BlbkFQSSAzLjAgRG9jdW1lbnRhdGlvbiBVUkw6IApodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS9pbmRleC5odG1sP2NvbmZpZ1VybD0vdjMvYXBpLWRvY3Mvc3dhZ2dlci1jb25maWcgIAohW0FQSV9Eb2N1bWVudGF0aW9uIGltZyBtaXNzaW5nXShodHRwczovL2dpdGh1Yi5jb20va2FydGhpa2Fpc2VsdmFuL2FjY291bnQtdHJhbnNhY3Rpb24tc2VydmljZS9ibG9iL21haW4vaW1nL0FQSV9Eb2N1bWVudGF0aW9uLmpwZz9yYXc9dHJ1ZSkKCk5vdGU6IEFsc28gW1Bvc3RtYW4gQ29sbGVjdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2thcnRoaWthaXNlbHZhbi9hY2NvdW50LXRyYW5zYWN0aW9uLXNlcnZpY2UvYmxvYi9tYWluL2FjY291bnQtdHJhbnNhY3Rpb24tc2VydmljZS5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbikgaGFzIGJlZW4gcHVzaGVkIGludG8gdGhlIHJlcG9zaXRvcnkgZm9yIHlvdXIgcmVmZXJlbmNlLgoKLS0tCiMjIyBJbi1NZW1vcnkgRGF0YWJhc2UgRGFzaGJvYXJkOgpodHRwOi8vbG9jYWxob3N0OjgwODAvaDItY29uc29sZS9sb2dpbi5qc3AgICAKIVtIMl9EQl9Db25zb2xlIGltZyBtaXNzaW5nXShodHRwczovL2dpdGh1Yi5jb20va2FydGhpa2Fpc2VsdmFuL2FjY291bnQtdHJhbnNhY3Rpb24tc2VydmljZS9ibG9iL21haW4vaW1nL0gyX0RCX0NvbnNvbGUuanBnP3Jhdz10cnVlKQoKTm90ZTogVXNlcm5hbWUgYW5kIFBhc3N3b3JkIGZvciB0aGUgaW4tbWVtb3J5IEgyIGRhdGFiYXNlIGNhbiBiZSBzZXQgZGlmZmVyZW50bHkgYnkgcGFzc2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbmFtZWx5IGBgYERCX1VTRVJgYGAgYW5kIGBgYERCX1BXRGBgYCBpZiByZXF1aXJlZCwgZWxzZSBIMiBkYiBwcm92aWRlZCBkZWZhdWx0IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB3aWxsIGJlIHVzZWQuIEZvciBtb3JlIGRldGFpbHMgcGxlYXNlIHJlZmVyOiBbYXBwbGljYXRpb24ueW1sXShodHRwczovL2dpdGh1Yi5jb20va2FydGhpa2Fpc2VsdmFuL2FjY291bnQtdHJhbnNhY3Rpb24tc2VydmljZS9ibG9iL21haW4vc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbCNMMykKCi0tLQo= readmeEtag: '"6da22f219b8186d10310c0796142308ed599e23b"' readmeLastModified: Wed, 09 Feb 2022 18:18:26 GMT repositoryId: 327923839 description: >- This is a demo micro-service for account transaction as part of mobile challengers banking. created: '2021-01-08T14:22:37Z' updated: '2022-10-05T11:11:04Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: karthikairam logo: https://avatars.githubusercontent.com/u/10527779?v=4 repoEtag: '"4b9d45998f822dafee5d94d65f597235474dc193535b65ffc09b4250fbb76e82"' repoLastModified: Wed, 05 Oct 2022 11:11:04 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/onmax/openapi-graph-core v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJLWdyYXBoLWNvcmUKCkEgVFMgbGlicmFyeSB0byBtYW5hZ2UgbGFyZ2UgQVBJIHByb2plY3RzIGRlZmluZWQgYnkgT3BlbkFQSXYzIHNwZWNpZmljYXRpb24uCgojIyBJbnN0YWxsYXRpb24KCkp1c3QgcnVuCgo+IG5wbSBpbnN0YWxsIG9wZW5hcGktZ3JhcGgtY29yZQoKYW5kIHlvdSBhcmUgZ29vZCB0byBnby4KCiMjIENMSQoKVGhpcyBgUkVBRE1FLm1kYCBpcyBvbmx5IGZvciB0aGUgQVBJIG9mIHRoaXMgbGlicmFyeS4gWW91IGNhbiBjaGVjayB0aGUgY2xpIHRvIHJ1biBpdCBpbiB0aGUgY29uc29sZSBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL29ubWF4L29wZW5BUEktZ3JhcGgtY2xpKQoKIyMgQVBJCgpPcGVuQVBJLWdyYXBoIHByb3ZpZGUgdHdvIG1ham9yIGNsYXNzZXMgdGhhdCBhcmUgYWNjZXNpYmxlIGNhbGxlZDogW2BPcGVuQVBJR3JhcGhzYF0oI09wZW5BUElHcmFwaHMpIGFuZCBbYEFuYWx5emVyYF0oI0FuYWx5emVyKS4KCiMjIyBPcGVuQVBJR3JhcGhzCgpUaGlzIGNsYXNzIHdpbGwgY3JlYXRlIHRoZSBncmFwaHMgb2YgdGhlIEFQSXMuIFlvdSBjYW4gcHJvdmlkZSBhIHJvb3QgcGF0aCwgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIGxvb2sgZm9yIHRoZSBBUEkgc3BlY2lmaWNhdGlvbnMuIEZvciBleGFtcGxlLCBhIHZhbGlkIHJvb3QgcGF0aCBpZiB3ZSB1c2Ugb25lIG9mIHRoZSBleGFtcGxlcyB3b3VsZCBiZToKCmBgYGphdmFzY3JpcHQKY29uc3QgT3BlbkFQSUdyYWhDb3JlID0gcmVxdWlyZSgnb3BlbmFwaS1ncmFwaC1jb3JlJyk7CgooYXN5bmMgKCkgPT4gewogICAgY29uc3QgZ3JhcGhzID0gYXdhaXQgbmV3IE9wZW5BUElHcmFoQ29yZS5PcGVuQVBJR3JhcGhzKCcuL3Rlc3RzL3Jlc291cmNlcy9zb2NpYWwtbmV0d29yaycpLmJ1aWxkKCkKCiAgICAvKiBJdCB3aWxsIHJldHVybiAKICAgIAogICAgewogICAgICAgICJzb2NpYWwtbmV0d29yay55YW1sIjogeyBPbWl0dGluZyBncmFwaCAuLi4gfSwKICAgICAgICAiLi9wb3N0cy9wb3N0cy55YW1sIjogeyBPbWl0dGluZyBncmFwaCAuLi4gfSwKICAgICAgICAiLi91c2Vycy91c2Vycy55YW1sIjogeyBPbWl0dGluZyBncmFwaCAuLi4gfSwKICAgIH0KICAgICovCn0pKCk7CmBgYAoKIyMjIEFuYWx5emVyCgpJdCB3aWxsIGFuYWx5emUgdGhlIGdyYXBocyBjaGVja2luZyBkaWZmZXJlbnQgY29uZGl0aW9ucy4gWW91IGNhbiBpbml0aWF6bGllIGFzIGZvbGxvd3MgKHlvdSBuZWVkIHRvIGluaXRpYWxpemUgYE9wZW5BUElHcmFocHNgKToKCmBgYGphdmFzY3JpcHQKY29uc3QgT3BlbkFQSUdyYWhDb3JlID0gcmVxdWlyZSgnb3BlbmFwaS1ncmFwaC1jb3JlJyk7CgooYXN5bmMgKCkgPT4gewogICAgY29uc3QgZ3JhcGhzID0gYXdhaXQgbmV3IE9wZW5BUElHcmFoQ29yZS5PcGVuQVBJR3JhcGhzKCcuL3Rlc3RzL3Jlc291cmNlcy9zb2NpYWwtbmV0d29yaycpLmJ1aWxkKCkKICAgIGNvbnN0IGFuYWx5emVyID0gT3BlbkFQSUdyYWhDb3JlLkFuYWx5emVyKGdyYXBocykKfSkoKTsKYGBgCkZvciBub3csIHRoZXNlIGZ1bmN0aW9uIGhhdmUgYmVlbiBkZXZlbG9wZWQ6CgojIyMjIFVudXNlZCBzY2hlbWFzCgp8IEZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICB8IFJldHVybnMgIHwgCnwtLS18LS0tfC0tLXwKfCBnZXRVbnVzZWRTY2hlbWFzKCkgICAgICAgICAgICAgICAgfCBJdCB3aWxsIGNoZWNrIGFsbCB0aGUgc2NoZW1hcyBkZWNsYXJlZCBidXQgbm90IGJlaW5nIHVzZWQgaW4gdGhlIGNvbXBvbmVudHMuc2NoZW1hcyBjb250YWluZXIgIHwgW0pTT05dKGh0dHBzOi8vZ2l0aHViLmNvbS9vbm1heC9vcGVuYXBpLWdyYXBoLXR5cGVzL2Jsb2IvbWFpbi9zcmMvbW9kZWwvQW5hbHl6ZXIudHMjTDYpICB8CnwgZ2V0RGVwcmVjYXRlZFNjaGVtYXNCZWluZ1VzZWQoKSAgIHwgSXQgd2lsbCBjaGVjayBhbGwgdGhlIGRlcHJlY2F0ZWQgc2NoZW1hcyBkZWNsYXJlZCBiZWluZyBpbiB1c2VkICB8IFtKU09OXShodHRwczovL2dpdGh1Yi5jb20vb25tYXgvb3BlbmFwaS1ncmFwaC10eXBlcy9ibG9iL21haW4vc3JjL21vZGVsL0FuYWx5emVyLnRzI0w3KSAgfAoK readmeEtag: '"e4974465255ad92f22ddc0e63e698f3197b48eab"' readmeLastModified: Fri, 11 Nov 2022 03:27:27 GMT repositoryId: 349407768 description: >- A TS library to manage large API projects defined by OpenAPIv3 specification. created: '2021-03-19T11:59:15Z' updated: '2022-11-11T03:27:33Z' language: TypeScript archived: false stars: 1 watchers: 1 forks: 0 owner: onmax logo: https://avatars.githubusercontent.com/u/22072217?v=4 license: MIT repoEtag: '"bae18896eccbd5ef2d221541670f2eafdda9701a1702107068ad48442995fe39"' repoLastModified: Fri, 11 Nov 2022 03:27:33 GMT foundInMaster: true category: Parsers id: c162d187112cfc2cc016217575c122c3 - source: openapi3 tags repository: https://github.com/paulotrc/svc-clientes v3: true id: b8040ffd94e6ae8c4efd564aa9305ecc repositoryMetadata: base64Readme: IyBzdmMtY2xpZW50ZXM= readmeEtag: '"47605a8b32112a5b4b446cb3256e5094ea9e5aa4"' readmeLastModified: Tue, 21 Feb 2023 03:20:31 GMT repositoryId: 595183977 description: Microservice clientes created: '2023-01-30T15:15:27Z' updated: '2023-02-14T03:17:05Z' language: Java archived: false stars: 1 watchers: 1 forks: 0 owner: paulotrc logo: https://avatars.githubusercontent.com/u/21349130?v=4 license: Apache-2.0 repoEtag: '"f602bb19d6b964fa164b3f3fa64d16b4ff32056d16b5fab916c63287a485740a"' repoLastModified: Tue, 14 Feb 2023 03:17:05 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sudokuru/sudokuru v3: true id: 88726e2bfb53ac81a29d3f16ff3a6a14 repositoryMetadata: base64Readme: >- IVtTdWRva3VydSBMb2dvXShodHRwczovL3N1ZG9rdXJ1LnMzLmFtYXpvbmF3cy5jb20vZ29sZExvZ29UZXh0LnBuZykKIyBTdWRva3UgUHV6emxlIEdlbmVyYXRvcgpbIVtOUE0gdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9zdWRva3VydS5zdmc/c3R5bGU9ZmxhdCldKGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2Uvc3Vkb2t1cnUpClshW05QTSBkb3dubG9hZHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL3N1ZG9rdXJ1LnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZS9zdWRva3VydSkKIVtOUE0gTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9zdWRva3VydSkKWyFbUGlwZWxpbmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9TdWRvS3VydS9TdWRva3VydS9hY3Rpb25zL3dvcmtmbG93cy9waXBlbGluZS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL1N1ZG9LdXJ1L1N1ZG9rdXJ1L2FjdGlvbnMvd29ya2Zsb3dzL3BpcGVsaW5lLnltbCkKWyFbQ292ZXJhbGxzIENvdmVyYWdlXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvU3Vkb0t1cnUvU3Vkb2t1cnUvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL1N1ZG9LdXJ1L1N1ZG9rdXJ1P2JyYW5jaD1tYWluKQpbIVtDb2RlY292IENvdmVyYWdlXShodHRwczovL2NvZGVjb3YuaW8vZ2gvU3Vkb0t1cnUvU3Vkb2t1cnUvZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPVNJU1M4NVRYMjApXShodHRwczovL2NvZGVjb3YuaW8vZ2gvU3Vkb0t1cnUvU3Vkb2t1cnUpCgoKPiBHZW5lcmF0ZSBkYXRhIGFib3V0IFN1ZG9rdSBwdXp6bGVzIGFuZCB1cGxvYWQgaXQgdmlhIFBPU1QgcmVxdWVzdHMKCiMgVGFibGUgb2YgQ29udGVudHMKCiogICBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQoqICAgW1VzYWdlXSgjdXNhZ2UpCiAgICAqICAgW0phdmFTY3JpcHRdKCNqYXZhc2NyaXB0KQogICAgICAgICogICBbSGludCBGaWxlXSgjaGludC1maWxlKQogICAgICAgICAgICAqICAgW2dldEhpbnQoKV0oI2dldGhpbnQpCiAgICAgICAgKiAgIFtQdXp6bGVEYXRhIEZpbGVdKCNwdXp6bGVkYXRhLWZpbGUpCiAgICAgICAgICAgICogICBbZ2V0UHV6emxlRGF0YSgpXSgjZ2V0cHV6emxlZGF0YSkKKiAgIFtoaW50IE9iamVjdCBQcm9wZXJ0aWVzXSgjaGludC1vYmplY3QtcHJvcGVydGllcykKICAgICogICBbRXhhbXBsZSAxOiBBbWVuZCBOb3Rlc10oI2V4YW1wbGUtMS1hbWVuZC1ub3RlcykKICAgICAgICAqICAgW3N0cmF0ZWd5XSgjc3RyYXRlZ3kpCiAgICAgICAgKiAgIFtjYXVzZV0oI2NhdXNlKQogICAgICAgICogICBbZ3JvdXBzXSgjZ3JvdXBzKQogICAgICAgICogICBbcGxhY2VtZW50c10oI3BsYWNlbWVudHMpCiAgICAgICAgKiAgIFtyZW1vdmFsc10oI3JlbW92YWxzKQogICAgICAgICogICBbaW5mb10oI2luZm8pCiAgICAgICAgKiAgIFthY3Rpb25dKCNhY3Rpb24pCiAgICAqICAgW0V4YW1wbGUgMjogU2ltcGxpZnkgTm90ZXNdKCNleGFtcGxlLTItc2ltcGxpZnktbm90ZXMpCiAgICAgICAgKiAgIFtzdHJhdGVneV0oI3N0cmF0ZWd5LTEpCiAgICAgICAgKiAgIFtjYXVzZV0oI2NhdXNlLTEpCiAgICAgICAgKiAgIFtncm91cHNdKCNncm91cHMtMSkKICAgICAgICAqICAgW3BsYWNlbWVudHNdKCNwbGFjZW1lbnRzLTEpCiAgICAgICAgKiAgIFtyZW1vdmFsc10oI3JlbW92YWxzLTEpCiAgICAgICAgKiAgIFtpbmZvXSgjaW5mby0xKQogICAgICAgICogICBbYWN0aW9uXSgjYWN0aW9uLTEpCiAgICAqICAgW0V4YW1wbGUgMzogTmFrZWQgU2luZ2xlXSgjZXhhbXBsZS0zLW5ha2VkLXNpbmdsZSkKICAgICAgICAqICAgW3N0cmF0ZWd5XSgjc3RyYXRlZ3ktMikKICAgICAgICAqICAgW2NhdXNlXSgjY2F1c2UtMikKICAgICAgICAqICAgW2dyb3Vwc10oI2dyb3Vwcy0yKQogICAgICAgICogICBbcGxhY2VtZW50c10oI3BsYWNlbWVudHMtMikKICAgICAgICAqICAgW3JlbW92YWxzXSgjcmVtb3ZhbHMtMikKICAgICAgICAqICAgW2luZm9dKCNpbmZvLTIpCiAgICAgICAgKiAgIFthY3Rpb25dKCNhY3Rpb24tMikKICAgICogICBbRXhhbXBsZSA0OiBOYWtlZCBQYWlyXSgjZXhhbXBsZS00LW5ha2VkLXBhaXIpCiAgICAgICAgKiAgIFtzdHJhdGVneV0oI3N0cmF0ZWd5LTMpCiAgICAgICAgKiAgIFtjYXVzZV0oI2NhdXNlLTMpCiAgICAgICAgKiAgIFtncm91cHNdKCNncm91cHMtMykKICAgICAgICAqICAgW3BsYWNlbWVudHNdKCNwbGFjZW1lbnRzLTMpCiAgICAgICAgKiAgIFtyZW1vdmFsc10oI3JlbW92YWxzLTMpCiAgICAgICAgKiAgIFtpbmZvXSgjaW5mby0zKQogICAgICAgICogICBbYWN0aW9uXSgjYWN0aW9uLTMpCiAgICAqICAgW0V4YW1wbGUgNTogT3RoZXIgTmFrZWQgU2V0c10oI2V4YW1wbGUtNS1vdGhlci1uYWtlZC1zZXRzKQogICAgICAgICogICBbc3RyYXRlZ3ldKCNzdHJhdGVneS00KQogICAgICAgICogICBbc3RyYXRlZ3ldKCNzdHJhdGVneS01KQogICAgKiAgIFtFeGFtcGxlIDY6IEhpZGRlbiBTaW5nbGVdKCNleGFtcGxlLTYtaGlkZGVuLXNpbmdsZSkKICAgICAgICAqICAgW3N0cmF0ZWd5XSgjc3RyYXRlZ3ktNikKICAgICAgICAqICAgW2NhdXNlXSgjY2F1c2UtNCkKICAgICAgICAqICAgW2dyb3Vwc10oI2dyb3Vwcy00KQogICAgICAgICogICBbcGxhY2VtZW50c10oI3BsYWNlbWVudHMtNCkKICAgICAgICAqICAgW3JlbW92YWxzXSgjcmVtb3ZhbHMtNCkKICAgICAgICAqICAgW2luZm9dKCNpbmZvLTQpCiAgICAgICAgKiAgIFthY3Rpb25dKCNhY3Rpb24tNCkKICAgICogICBbRXhhbXBsZSA3OiBIaWRkZW4gUGFpcl0oI2V4YW1wbGUtNy1oaWRkZW4tcGFpcikKICAgICAgICAqICAgW3N0cmF0ZWd5XSgjc3RyYXRlZ3ktNykKICAgICAgICAqICAgW2NhdXNlXSgjY2F1c2UtNSkKICAgICAgICAqICAgW2dyb3Vwc10oI2dyb3Vwcy01KQogICAgICAgICogICBbcGxhY2VtZW50c10oI3BsYWNlbWVudHMtNSkKICAgICAgICAqICAgW3JlbW92YWxzXSgjcmVtb3ZhbHMtNSkKICAgICAgICAqICAgW2luZm9dKCNpbmZvLTUpCiAgICAgICAgKiAgIFthY3Rpb25dKCNhY3Rpb24tNSkKICAgICogICBbRXhhbXBsZSA4OiBPdGhlciBIaWRkZW4gU2V0c10oI2V4YW1wbGUtOC1vdGhlci1oaWRkZW4tc2V0cykKICAgICAgICAqICAgW3N0cmF0ZWd5XSgjc3RyYXRlZ3ktOCkKICAgICAgICAqICAgW3N0cmF0ZWd5XSgjc3RyYXRlZ3ktOSkKICAgICogICBbRXhhbXBsZSA5OiBQb2ludGluZyBQYWlyXSgjZXhhbXBsZS05LXBvaW50aW5nLXBhaXIpCiAgICAgICAgKiAgIFtzdHJhdGVneV0oI3N0cmF0ZWd5LTEwKQogICAgICAgICogICBbY2F1c2VdKCNjYXVzZS02KQogICAgICAgICogICBbZ3JvdXBzXSgjZ3JvdXBzLTYpCiAgICAgICAgKiAgIFtwbGFjZW1lbnRzXSgjcGxhY2VtZW50cy02KQogICAgICAgICogICBbcmVtb3ZhbHNdKCNyZW1vdmFscy02KQogICAgICAgICogICBbaW5mb10oI2luZm8tNikKICAgICAgICAqICAgW2FjdGlvbl0oI2FjdGlvbi02KQoqICAgW1B1enpsZURhdGEgT2JqZWN0IFByb3BlcnRpZXNdKCNwdXp6bGVkYXRhLW9iamVjdC1wcm9wZXJ0aWVzKQogICAgKiAgIFtzb2x1dGlvbl0oI3NvbHV0aW9uKQogICAgKiAgIFtkaWZmaWN1bHR5XSgjZGlmZmljdWx0eSkKKiAgIFtEZXZlbG9wZXIgVG9vbHNdKCNkZXZlbG9wZXItdG9vbHMpCgojIEluc3RhbGxhdGlvbgoKYGBgc2hlbGwKbnBtIGluc3RhbGwgc3Vkb2t1cnUKYGBgCgojIFVzYWdlCgojIyBKYXZhU2NyaXB0CgojIyMgSGludCBGaWxlCgojIyMjIGdldEhpbnQoKQoxLiBTZXR1cDogCiAgICBgYGB0eXBlc2NyaXB0CiAgICBpbXBvcnQge2dldEhpbnR9IGZyb20gJ3N1ZG9rdXJ1JzsKICAgIGBgYAoyLiBEZXNjcmlwdGlvbjogUmV0dXJucyBhIGhpbnQgYmFzZWQgb24gdGhlIHB1enpsZSBhbmQgbm90ZXMgcHJvdmlkZWQKMy4gU3ludGF4CiAgICBgYGB0eXBlc2NyaXB0CiAgICBnZXRIaW50KGJvYXJkLCBub3Rlcywgc3RyYXRlZ2llcywgc29sdXRpb24pOwogICAgYGBgCjQuIFBhcmFtZXRlcnM6CiAgICAtIGJvYXJkOiAyZCBib2FyZCBhcnJheSAoOSBhcnJheXMsIG9uZSBmb3IgZWFjaCByb3csIGVhY2ggd2l0aCA5IHN0cmluZ3MgcmVwcmVzZW50aW5nIHZhbHVlcyBvciAiMCIgaWYgZW1wdHkpCiAgICAtIG5vdGVzOiAyZCBub3RlcyBhcnJheSAoODEgYXJyYXlzLCBvbmUgZm9yIGVhY2ggY2VsbCBjb250YWluaW5nIGVhY2ggbm90ZSB0aGF0IGlzIGxlZnQgaW4gaXQpCiAgICAtIHN0cmF0ZWdpZXM6IG9wdGlvbmFsIHBhcmFtZXRlciBzcGVjaWZ5aW5nIHdoaWNoIHN0cmF0ZWdpZXMgYXJlIGFsbG93ZWQgdG8gYmUgdXNlZCBpbiB0aGUgaGludCBnaXZlbiBpbiBvcmRlciBvZiBwcmVjZWRlbmNlIChhbGxvd2VkIHZhbHVlcyBhcmUgdGhlIHN0cmluZ3MgaW4gdGhlIFN0cmF0ZWd5RW51bSBpbiBTdWRva3UudHMpCiAgICAtIHNvbHV0aW9uOiBvcHRpb25hbCBwYXJhbWV0ZXIgc3BlY2lmeWluZyBib2FyZHMgc29sdXRpb24gc28gdGhhdCBhbWVuZCBub3RlcyBoaW50cyBjYW4gY29ycmVjdCB1c2VycyBtaXN0YWtlcwo1LiBSZXR1cm4gVmFsdWU6IFtoaW50XSgjaGludC1vYmplY3QtcHJvcGVydGllcykKCiMjIyBQdXp6bGVEYXRhIEZpbGUKMS4gU2V0dXA6IAogICAgYGBgdHlwZXNjcmlwdAogICAgaW1wb3J0IHtnZXRQdXp6bGVEYXRhfSBmcm9tICdzdWRva3VydSc7CiAgICBgYGAKMi4gRGVzY3JpcHRpb246IFJldHVybnMgZGF0YSBhYm91dCBhIGdpdmVuIHB1enpsZQozLiBTeW50YXgKICAgIGBgYHR5cGVzY3JpcHQKICAgIGdldFB1enpsZURhdGEoYm9hcmQpOwogICAgYGBgCjQuIFBhcmFtZXRlcnM6CiAgICAtIGJvYXJkOiBwdXp6bGUgYm9hcmQgc3RyaW5nICg4MSBjaGFyYWN0ZXJzLCBvbmUgZm9yIGVhY2ggY2VsbCBjb250YWluaW5nIGVhY2ggdmFsdWUgb3IgIjAiIGlmIGVtcHR5LCBsZWZ0IHRvIHJpZ2h0IHRvcCB0byBib3R0b20pCjUuIFJldHVybiBWYWx1ZTogW3B1enpsZURhdGFdKCNwdXp6bGVkYXRhLW9iamVjdC1wcm9wZXJ0aWVzKQoKIyBoaW50IE9iamVjdCBQcm9wZXJ0aWVzCiMjIEV4YW1wbGUgMTogQW1lbmQgTm90ZXMKIVtFeGFtcGxlIDFdKGh0dHBzOi8vc3Vkb2t1cnUuczMuYW1hem9uYXdzLmNvbS9oaW50RXhhbXBsZTEtVjIucG5nKQojIyMgc3RyYXRlZ3kKYGBganNvbgoiQU1FTkRfTk9URVMiCmBgYApOYW1lIG9mIHN0cmF0ZWd5IHVzZWQgYnkgdGhlIGhpbnQuIEFtZW5kIG5vdGVzIHdvcmtzIHJlbW92aW5nIGFsbCBub3RlcyBmcm9tIGEgY2VsbCB0aGVuIGFkZGluZyBiYWNrIGluIGp1c3QgdGhlIG9uZXMgdGhhdCBkb24ndCBjb25mbGljdCB3aXRoIHBsYWNlZCB2YWx1ZXMgaW4gdGhlIHNhbWUgcm93LCBjb2x1bW4sIGFuZCBib3ggYXMgdGhlIGNlbGwuIEluIHRoZSBwaWN0dXJlIHRoZSBjZWxsIHdpdGggdGhlIHJlZCBib3JkZXIgd2FzIHByZXZpb3VzbHkgZW1wdHkgYW5kIGFtZW5kIG5vdGVzIHdhcyBhYmxlIHRvIGFkZCBpbiB0aGUgMiBhbmQgOCBvbmx5IGFzIHRoZSBvdGhlcnMgY29uZmxpY3RlZCB3aXRoIHRoZSBoaWdobGlnaHRlZCBjZWxscy4KIyMjIGNhdXNlCmBgYGpzb24KW1s3LDRdLFs3LDVdLFs3LDZdLFs3LDhdLFs0LDJdLFs4LDBdLFs4LDFdXQpgYGAKQ29vcmRpbmF0ZXMgb2YgY2VsbHMgdGhhdCAiY2F1c2UiIHN0cmF0ZWd5IHRvIGJlIGFwcGxpY2FibGUuIFRoaXMgaXMgYSAyZCBhcnJheSBzbyBjYXVzZVswXSBpcyBbNywgNF0gcmVmZXJyaW5nIHRvIHRoZSBjZWxsIHdpdGggdGhlIDkgaGlnaGxpZ2h0ZWQgaW4gYmx1ZSBpbiB0aGUgbmV4dCB0byBsYXN0IHJvdyAocm93cyBhbmQgY29sdW1ucyBhcmUgemVyby1pbmRleGVkKS4gY2F1c2VbMF1bMF0gcmVmZXJzIHRvIGl0IGJlaW5nIGluIHRoZSA4dGggcm93IGFuZCBjYXVzZVswXVsxXSByZWZlcnMgdG8gaXQgYmVpbmcgaW4gdGhlIDV0aCBjb2x1bW4uIFNpbWlsYXJseSB0aGUgbGFzdCBjZWxsIGNhdXNlWzZdIGlzIHRoZSBoaWdobGlnaHRlZCAzIHRoYXQgaXQgc2hhcmVzIGEgYm94IHdpdGguCiMjIyBncm91cHMKYGBganNvbgpbWzAsN10sWzEsMl0sWzIsNl1dCmBgYApHcm91cCB0eXBlIGFuZCBpbmRleCBvZiBncm91cHMgdGhhdCAiY2F1c2Ugc3RyYXRlZ3kiLiBUaGlzIGlzIGEgMmQgYXJyYXkgc28gZ3JvdXBbMF0gaXMgWzAsIDddIHJlZmVycmluZyB0byB0aGUgbmV4dCB0byBuZXh0IHRvIGxhc3Qgcm93IHdpdGggZ3JlZW4gYm9yZGVycy4gZ3JvdXBbMF1bMF0gcmVmZXJzIHRvIHRoZSBncm91cCB0eXBlICgwID0gcm93LCAxID0gY29sdW1uLCAyID0gYm94KSBhbmQgZ3JvdXBbMF1bMV0gcmVmZXJzIHRvIGl0IGJlaW5nIHRoZSA4dGggcm93LiBTaW1pbGFybHkgdGhlIGxhc3QgZ3JvdXAgZ3JvdXBbMl0gaXMgdGhlIGJvdHRvbSBsZWZ0IGJveCB3aG9zZSBjZWxscyBhbHNvIGhhdmUgZ3JlZW4gYm9yZGVycy4KIyMjIHBsYWNlbWVudHMKYGBganNvbgpbXQpgYGAKUm93LCBjb2x1bW4sIGFuZCB2YWx1ZXMgZm9yIGNlbGxzIHRoYXQgaGF2ZSBoYWQgdmFsdWVzIHBsYWNlZCBpbiB0aGVtIGFzIHJlc3VsdCBvZiBzdHJhdGVneS4gVGhpcyBkb2VzIG5vdCBhcHBseSB0byB0aGlzIHN0cmF0ZWd5LgojIyMgcmVtb3ZhbHMKYGBganNvbgpbWzcsMiwxLDMsNCw1LDYsNyw5XV0KYGBgCk5vdGVzIHRoYXQgY2FuIGJlIHJlbW92ZWQgZnJvbSBjZWxscyBhbG9uZyB3aXRoIHRoZWlyIHJvdyBhbmQgY29sdW1ucy4gVGhlIGZpcnN0IHR3byB2YWx1ZXMgcmVwcmVzZW50IHRoZSByb3cgYW5kIGNvbHVtbiByZXNwZWN0aXZlbHkgc28gcmVtb3ZhbHNbMF1bMF0gYW5kIHJlbW92YWxzWzBdWzFdIHJlZmVyIHRvIHRoZSAzcmQgY2VsbCBpbiB0aGUgOHRoIHJvdy4gVGhlIHJlc3Qgb2YgdGhlIG51bWJlcnMgaW4gdGhlIHN1YmFycmF5IGFyZSB0aGUgbm90ZXMgdG8gYmUgcmVtb3ZlZCB3aGljaCBpcyBldmVyeSBudW1iZXIgYnV0IDIgYW5kIDguIEFtZW5kIG5vdGVzIGlzIHVuaXF1ZSBpbiB0aGF0IGV2ZXJ5IG5vdGUgdGhhdCBzaG91bGRuJ3QgYmUgcmVtb3ZlZCBzaG91bGQgYmUgYWRkZWQgYmFjayBpbiAoMiBhbmQgOCBpbiB0aGlzIGV4YW1wbGUpLiBJbiB0aGlzIGV4YW1wbGUgdGhlIGNlbGwgaGFkIG5vIG5vdGVzIGluIGl0IGJlZm9yZSBhbWVuZCBub3Rlcy4KIyMjIGluZm8KYGBganNvbgoiQW1lbmQgbm90ZXMgYXJlIHdoZW4geW91IHJlc2V0IGEgY2VsbCdzIG5vdGVzIHRvIGNvbnRhaW4gZXZlcnkgbm9uY29uZmxpY3RpbmcgbnVtYmVyIgpgYGAKSW5mbyBhYm91dCB0aGUgc3RyYXRlZ3kgYmVpbmcgdXNlZCBieSB0aGUgaGludC4KIyMjIGFjdGlvbgpgYGBqc29uCiJXaGVuIHlvdSBzZWUgYW4gYW1lbmQgbm90ZXMgeW91IGNhbiByZW1vdmUgYWxsIG5vdGVzIHRoZW4gYWRkIGFsbCBub25jb25mbGljdGluZyBudW1iZXJzIHRvIGl0cyBub3RlcyIKYGBgCkRlc2NyaWJlcyB0aGUgYWN0aW9uIHRoYXQgdGhlIGhpbnQgaXMgc3VnZ2VzdGluZy4KIyMgRXhhbXBsZSAyOiBTaW1wbGlmeSBOb3RlcwohW0V4YW1wbGUgMl0oaHR0cHM6Ly9zdWRva3VydS5zMy5hbWF6b25hd3MuY29tL2hpbnRFeGFtcGxlMi1WMi5wbmcpCiMjIyBzdHJhdGVneQpgYGBqc29uCiJTSU1QTElGWV9OT1RFUyIKYGBgCk5hbWUgb2Ygc3RyYXRlZ3kgdXNlZCBieSB0aGUgaGludC4gU2ltcGxpZnkgbm90ZXMgd29ya3MgYnkgdXNpbmcgYSBjZWxsIHdpdGggYSBwbGFjZWQgdmFsdWUgKHRoZSBibHVlIGhpZ2hsaWdodGVkIDgpIHRvIHJlbW92ZSBhIG5vdGUgb2YgdGhlIHNhbWUgdmFsdWUgZnJvbSBhIGNlbGwgc2hhcmluZyBhIGdyb3VwICh0aGUgcmVkIDggbm90ZSBpbiBhIGNlbGwgaW4gdGhlIHNhbWUgY29sdW1uKS4KIyMjIGNhdXNlCmBgYGpzb24KW1s3LDBdXQpgYGAKQ29vcmRpbmF0ZXMgb2YgY2VsbHMgdGhhdCAiY2F1c2UiIHN0cmF0ZWd5IHRvIGJlIGFwcGxpY2FibGUuIFRoaXMgaXMgYSAyZCBhcnJheSBzbyBjYXVzZVswXSBpcyBbNywgMF0gcmVmZXJyaW5nIHRvIHRoZSBjZWxsIHdpdGggdGhlIDggaGlnaGxpZ2h0ZWQgaW4gYmx1ZSBpbiB0aGUgbmV4dCB0byBsYXN0IHJvdyAocm93cyBhbmQgY29sdW1ucyBhcmUgemVyby1pbmRleGVkKS4gY2F1c2VbMF1bMF0gcmVmZXJzIHRvIGl0IGJlaW5nIGluIHRoZSA4dGggcm93IGFuZCBjYXVzZVswXVsxXSByZWZlcnMgdG8gaXQgYmVpbmcgaW4gdGhlIDFzdCBjb2x1bW4uCiMjIyBncm91cHMKYGBganNvbgpbWzEsMF1dCmBgYApHcm91cCB0eXBlIGFuZCBpbmRleCBvZiBncm91cHMgdGhhdCAiY2F1c2Ugc3RyYXRlZ3kiLiBUaGlzIGlzIGEgMmQgYXJyYXkgc28gZ3JvdXBbMF0gaXMgWzEsIDBdIHJlZmVycmluZyB0byB0aGUgZmlyc3QgY29sdW1uIHdpdGggZ3JlZW4gYm9yZGVycy4gZ3JvdXBbMF1bMF0gcmVmZXJzIHRvIHRoZSBncm91cCB0eXBlICgwID0gcm93LCAxID0gY29sdW1uLCAyID0gYm94KSBhbmQgZ3JvdXBbMF1bMV0gcmVmZXJzIHRvIGl0IGJlaW5nIHRoZSAxc3QgY29sdW1uLgojIyMgcGxhY2VtZW50cwpgYGBqc29uCltdCmBgYApSb3csIGNvbHVtbiwgYW5kIHZhbHVlcyBmb3IgY2VsbHMgdGhhdCBoYXZlIGhhZCB2YWx1ZXMgcGxhY2VkIGluIHRoZW0gYXMgcmVzdWx0IG9mIHN0cmF0ZWd5LiBUaGlzIGRvZXMgbm90IGFwcGx5IHRvIHRoaXMgc3RyYXRlZ3kuCiMjIyByZW1vdmFscwpgYGBqc29uCltbMSwwLDhdXQpgYGAKTm90ZXMgdGhhdCBjYW4gYmUgcmVtb3ZlZCBmcm9tIGNlbGxzIGFsb25nIHdpdGggdGhlaXIgcm93IGFuZCBjb2x1bW5zLiBUaGUgZmlyc3QgdHdvIHZhbHVlcyByZXByZXNlbnQgdGhlIHJvdyBhbmQgY29sdW1uIHJlc3BlY3RpdmVseSBzbyByZW1vdmFsc1swXVswXSBhbmQgcmVtb3ZhbHNbMF1bMV0gcmVmZXIgdG8gdGhlIDFzdCBjZWxsIGluIHRoZSAybmQgcm93LiBUaGUgcmVzdCBvZiB0aGUgbnVtYmVycyBpbiB0aGUgc3ViYXJyYXkgYXJlIHRoZSBub3RlcyB0byBiZSByZW1vdmVkIHdoaWNoIGlzIGp1c3QgOC4KIyMjIGluZm8KYGBganNvbgoiWW91IGNhbiBzaW1wbGlmeSBub3RlcyB1c2luZyB2YWx1ZXMgYWxyZWFkeSBwbGFjZWQgaW4gY2VsbHMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBnYW1lIgpgYGAKSW5mbyBhYm91dCB0aGUgc3RyYXRlZ3kgYmVpbmcgdXNlZCBieSB0aGUgaGludC4KIyMjIGFjdGlvbgpgYGBqc29uCiJXaGVuIHRoZXJlIGlzIGEgdmFsdWUgYWxyZWFkeSBwbGFjZWQgaW4gYSBjZWxsIHRoYW4gaXQgY2FuIGJlIHJlbW92ZWQgZnJvbSBhbGwgb3RoZXIgY2VsbHMgbm90ZXMgaW4gaXRzIHJvdywgY29sdW1uLCBhbmQgYm94IgpgYGAKRGVzY3JpYmVzIHRoZSBhY3Rpb24gdGhhdCB0aGUgaGludCBpcyBzdWdnZXN0aW5nLgojIyBFeGFtcGxlIDM6IE5ha2VkIFNpbmdsZQohW0V4YW1wbGUgM10oaHR0cHM6Ly9zdWRva3VydS5zMy5hbWF6b25hd3MuY29tL2hpbnRFeGFtcGxlMy1WMS5wbmcpCiMjIyBzdHJhdGVneQpgYGBqc29uCiJOQUtFRF9TSU5HTEUiCmBgYApOYW1lIG9mIHN0cmF0ZWd5IHVzZWQgYnkgdGhlIGhpbnQuIE5ha2VkIHNpbmdsZSB3b3JrcyBieSBwbGFjaW5nIGEgdmFsdWUgaW4gYSBjZWxsIHdoZXJlIGl0IGlzIHRoZSBvbmx5IHJlbWFpbmluZyBwb3NzaWJpbGl0eS4gSW4gdGhlIGV4YW1wbGUgdGhlIGdyZWVuIGhpZ2hsaWdodGVkIDIgaXMgdGhlIGxhc3QgcmVtYWluaW5nIHBvc3NpYmlsaXR5IGluIHRoZSBibHVlIGhpZ2hsaWdodGVkIGNlbGwuCiMjIyBjYXVzZQpgYGBqc29uCltbNywyXV0KYGBgCkNvb3JkaW5hdGVzIG9mIGNlbGxzIHRoYXQgImNhdXNlIiBzdHJhdGVneSB0byBiZSBhcHBsaWNhYmxlLiBUaGlzIGlzIGEgMmQgYXJyYXkgc28gY2F1c2VbMF0gaXMgWzcsIDJdIHJlZmVycmluZyB0byB0aGUgM3JkIGNlbGwgaW4gdGhlIG5leHQgdG8gbGFzdCByb3cgKHJvd3MgYW5kIGNvbHVtbnMgYXJlIHplcm8taW5kZXhlZCkuIGNhdXNlWzBdWzBdIHJlZmVycyB0byBpdCBiZWluZyBpbiB0aGUgOHRoIHJvdyBhbmQgY2F1c2VbMF1bMV0gcmVmZXJzIHRvIGl0IGJlaW5nIGluIHRoZSAzcmQgY29sdW1uLgojIyMgZ3JvdXBzCmBgYGpzb24KW10KYGBgCkdyb3VwIHR5cGUgYW5kIGluZGV4IG9mIGdyb3VwcyB0aGF0ICJjYXVzZSBzdHJhdGVneSIuIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gdGhpcyBzdHJhdGVneS4KIyMjIHBsYWNlbWVudHMKYGBganNvbgpbWzcsMiwyXV0KYGBgClJvdywgY29sdW1uLCBhbmQgdmFsdWVzIGZvciBjZWxscyB0aGF0IGhhdmUgaGFkIHZhbHVlcyBwbGFjZWQgaW4gdGhlbSBhcyByZXN1bHQgb2Ygc3RyYXRlZ3kuIFRoaXMgaXMgYSAyZCBhcnJheSBzbyBwbGFjZW1lbnRzWzBdIHJlZmVycyB0byB0aGUgZmlyc3QgdmFsdWUgdGhhdCBuZWVkcyB0byBiZSBwbGFjZWQuIFRoZSBmaXJzdCB2YWx1ZSBpbiB0aGUgc3ViYXJyYXkgcmVmZXJzIHRvIHRoZSBjZWxscyByb3csIHRoZSBuZXh0IHZhbHVlIGlzIHRoZSBjb2x1bW4sIGFuZCB0aGUgZmluYWwgdmFsdWUgaXMgdGhlIHZhbHVlIHRvIGJlIHBsYWNlZCAoIjIiIGluIHRoaXMgY2FzZSkuCiMjIyByZW1vdmFscwpgYGBqc29uCltdCmBgYApOb3RlcyB0aGF0IGNhbiBiZSByZW1vdmVkIGZyb20gY2VsbHMgYWxvbmcgd2l0aCB0aGVpciByb3cgYW5kIGNvbHVtbnMuIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gdGhpcyBzdHJhdGVneS4KIyMjIGluZm8KYGBganNvbgoiTmFrZWQgc2luZ2xlcyBhcmUgd2hlbiB5b3Ugb25seSBoYXZlIG9uZSBudW1iZXIgbGVmdCBhcyBhIHBvc3NpYmlsaXR5IGluIGEgY2VsbCIKYGBgCkluZm8gYWJvdXQgdGhlIHN0cmF0ZWd5IGJlaW5nIHVzZWQgYnkgdGhlIGhpbnQuCiMjIyBhY3Rpb24KYGBganNvbgoiV2hlbiB5b3Ugc2VlIGEgbmFrZWQgc2luZ2xlIHlvdSBjYW4gZmlsbCBpdCBpbiB3aXRoIGl0cyBsYXN0IHJlbWFpbmluZyBwb3NzaWJpbGl0eSIKYGBgCkRlc2NyaWJlcyB0aGUgYWN0aW9uIHRoYXQgdGhlIGhpbnQgaXMgc3VnZ2VzdGluZy4KIyMgRXhhbXBsZSA0OiBOYWtlZCBQYWlyCiFbRXhhbXBsZSA0XShodHRwczovL3N1ZG9rdXJ1LnMzLmFtYXpvbmF3cy5jb20vaGludEV4YW1wbGU0LVYxLnBuZykKIyMjIHN0cmF0ZWd5CmBgYGpzb24KIk5BS0VEX1BBSVIiCmBgYApOYW1lIG9mIHN0cmF0ZWd5IHVzZWQgYnkgdGhlIGhpbnQuIE5ha2VkIHBhaXIgd29ya3MgdXNpbmcgdHdvIGNlbGxzIHRoYXQgc2hhcmUgYSBncm91cCBhbmQgb25seSBoYXZlIHRoZSBzYW1lIHR3byBub3RlcyBsZWZ0IGFzIHBvc3NpYmlsaXRpZXMgdG8gZWxpbWluYXRlIHRob3NlIG5vdGVzIGZyb20gb3RoZXIgY2VsbHMgaW4gdGhlIGdyb3VwLiBJbiB0aGUgZXhhbXBsZSA3IGFuZCA4IGFyZSB0aGUgbGFzdCByZW1haW5pbmcgcG9zc2liaWxpdGllcyBpbiB0aGUgYmx1ZSBoaWdobGlnaHRlZCBjZWxscyB3aGljaCBhcmUgdXNlZCB0byByZW1vdmUgYWxsIHRoZSBvdGhlciA3IGFuZCA4cyBpbiB0aGUgY29sdW1uIHNob3duIGhpZ2hsaWdodGVkIGluIHJlZC4KIyMjIGNhdXNlCmBgYGpzb24KW1sxLDhdLFs2LDhdXQpgYGAKQ29vcmRpbmF0ZXMgb2YgY2VsbHMgdGhhdCAiY2F1c2UiIHN0cmF0ZWd5IHRvIGJlIGFwcGxpY2FibGUuIFRoaXMgaXMgYSAyZCBhcnJheSBzbyBjYXVzZVswXSBpcyBbMSwgOF0gcmVmZXJyaW5nIHRvIHRoZSA5dGggY2VsbCBpbiB0aGUgc2Vjb25kIHJvdyAocm93cyBhbmQgY29sdW1ucyBhcmUgemVyby1pbmRleGVkKS4gY2F1c2VbMF1bMF0gcmVmZXJzIHRvIGl0IGJlaW5nIGluIHRoZSAybmQgcm93IGFuZCBjYXVzZVswXVsxXSByZWZlcnMgdG8gaXQgYmVpbmcgaW4gdGhlIDl0aCBjb2x1bW4uCiMjIyBncm91cHMKYGBganNvbgpbWzEsOF1dCmBgYApHcm91cCB0eXBlIGFuZCBpbmRleCBvZiBncm91cHMgdGhhdCAiY2F1c2Ugc3RyYXRlZ3kiLiBUaGlzIGlzIGEgMmQgYXJyYXkgc28gZ3JvdXBbMF0gaXMgWzEsIDhdIHJlZmVycmluZyB0byB0aGUgbGFzdCBjb2x1bW4gd2l0aCBncmVlbiBib3JkZXJzLiBncm91cFswXVswXSByZWZlcnMgdG8gdGhlIGdyb3VwIHR5cGUgKDAgPSByb3csIDEgPSBjb2x1bW4sIDIgPSBib3gpIGFuZCBncm91cFswXVsxXSByZWZlcnMgdG8gaXQgYmVpbmcgdGhlIDl0aCBjb2x1bW4uCiMjIyBwbGFjZW1lbnRzCmBgYGpzb24KW10KYGBgClJvdywgY29sdW1uLCBhbmQgdmFsdWVzIGZvciBjZWxscyB0aGF0IGhhdmUgaGFkIHZhbHVlcyBwbGFjZWQgaW4gdGhlbSBhcyByZXN1bHQgb2Ygc3RyYXRlZ3kuIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gdGhpcyBzdHJhdGVneS4KIyMjIHJlbW92YWxzCmBgYGpzb24KW1szLDgsNyw4XSxbNCw4LDcsOF1dCmBgYApOb3RlcyB0aGF0IGNhbiBiZSByZW1vdmVkIGZyb20gY2VsbHMgYWxvbmcgd2l0aCB0aGVpciByb3cgYW5kIGNvbHVtbnMuIFRoZSBmaXJzdCB0d28gdmFsdWVzIGluIGVhY2ggc3ViYXJyYXkgcmVwcmVzZW50IHRoZSByb3cgYW5kIGNvbHVtbiByZXNwZWN0aXZlbHkgc28gcmVtb3ZhbHNbMF1bMF0gYW5kIHJlbW92YWxzWzBdWzFdIHJlZmVyIHRvIHRoZSA5dGggY2VsbCBpbiB0aGUgNHRoIHJvdy4gVGhlIHJlc3Qgb2YgdGhlIG51bWJlcnMgaW4gdGhlIHN1YmFycmF5IGFyZSB0aGUgbm90ZXMgdG8gYmUgcmVtb3ZlZCB3aGljaCBpcyA3IGFuZCA4IChhbHRob3VnaCBvbmx5IDggaXMgdGhlcmUgdG8gYmVnaW4gd2l0aCBhbmQgaXMgaGlnaGxpZ2h0ZWQgaW4gcmVkKS4KIyMjIGluZm8KYGBganNvbgoiTmFrZWQgcGFpcnMgYXJlIHdoZW4geW91IG9ubHkgaGF2ZSB0aGUgc2FtZSB0d28gbnVtYmVycyBsZWZ0IGFzIGEgcG9zc2liaWxpdHkgaW4gdHdvIGNlbGxzIGluIHRoZSBzYW1lIHJvdywgY29sdW1uLCBvciBib3giCmBgYApJbmZvIGFib3V0IHRoZSBzdHJhdGVneSBiZWluZyB1c2VkIGJ5IHRoZSBoaW50LgojIyMgYWN0aW9uCmBgYGpzb24KIldoZW4geW91IHNlZSBhIG5ha2VkIHBhaXIgeW91IGNhbiByZW1vdmUgdGhlbSBmcm9tIHRoZSBub3RlcyBvZiBldmVyeSBvdGhlciBjZWxsIGluIHRoZSByb3csIGNvbHVtbiwgb3IgYm94IHRoYXQgdGhleSBzaGFyZSIKYGBgCkRlc2NyaWJlcyB0aGUgYWN0aW9uIHRoYXQgdGhlIGhpbnQgaXMgc3VnZ2VzdGluZy4KIyMgRXhhbXBsZSA1OiBPdGhlciBOYWtlZCBTZXRzCiMjIyBzdHJhdGVneQpgYGBqc29uCiJOQUtFRF9UUklQTEVUIgpgYGAKIyMjIHN0cmF0ZWd5CmBgYGpzb24KIk5BS0VEX1FVQURSVVBMRVQiCmBgYApOYW1lIG9mIHN0cmF0ZWd5IHVzZWQgYnkgdGhlIGhpbnQuIE5ha2VkIHRyaXBsZXRzIHRocm91Z2ggb2N0dXBsZXRzIGFyZSBzY2FsZWQgdXAgdmVyc2lvbnMgb2YgbmFrZWQgcGFpcnMgZXhjZXB0IGluc3RlYWQgb2YgdXNpbmcgdHdvIGNlbGxzIGFuZCBub3RlcyB0aGV5IHNoYXJlIDMtOC4gTm90ZTogd2hpbGUgY2VsbHMgaW4gc2F5IGEgbmFrZWQgcXVhZHJ1cGxldCBtdXN0IHNoYXJlIHRoZSBzYW1lIDQgbm90ZXMgdGhlIDQgY2VsbHMgZG9uJ3QgaGF2ZSB0byBpbmRpdmlkdWFsbHkgaGF2ZSBhbGwgNCBub3RlcyB0aGV5IGp1c3QgY2FuJ3QgaGF2ZSBhbnkgb3RoZXIgbm90ZXMuCiMjIEV4YW1wbGUgNjogSGlkZGVuIFNpbmdsZQohW0V4YW1wbGUgNl0oaHR0cHM6Ly9zdWRva3VydS5zMy5hbWF6b25hd3MuY29tL2hpbnRFeGFtcGxlNS1WMS5wbmcpCiMjIyBzdHJhdGVneQpgYGBqc29uCiJISURERU5fU0lOR0xFIgpgYGAKTmFtZSBvZiBzdHJhdGVneSB1c2VkIGJ5IHRoZSBoaW50LiBIaWRkZW4gc2luZ2xlIHdvcmtzIGJ5IGhhdmluZyBvbmx5IG9uZSBjZWxsIGluIGEgZ3JvdXAgdGhhdCBzdGlsbCBoYXMgYSBudW1iZXIgYXMgYSBwb3NzaWJpbGl0eSBpbiB3aGljaCBjYXNlIGFsbCBvdGhlciBub3RlcyBjYW4gYmUgcmVtb3ZlZCBmcm9tIGl0LiBUaGlzIGlzIHNob3duIGJ5IHRoZSA4IG5ha2VkIHNpbmdsZSB3aGljaCBpbiB0aGUgb25seSA4IG5vdGUgaW4gdGhlIGJveCB3aXRoIHRoZSBncmVlbiBib3JkZXIuIFRoZXJlZm9yZSwgdGhlIG90aGVyIG5vdGVzIGhpZ2hsaWdodGVkIGluIHJlZCBjYW4gYmUgcmVtb3ZlZC4KIyMjIGNhdXNlCmBgYGpzb24KW1szLDhdLFs0LDhdLFs1LDZdLFs1LDhdXQpgYGAKQ29vcmRpbmF0ZXMgb2YgY2VsbHMgdGhhdCAiY2F1c2UiIHN0cmF0ZWd5IHRvIGJlIGFwcGxpY2FibGUuIFRoaXMgaXMgYSAyZCBhcnJheSBzbyBjYXVzZVswXSBpcyBbMywgOF0gcmVmZXJyaW5nIHRvIHRoZSA5dGggY2VsbCBpbiB0aGUgNHRoIHJvdyAocm93cyBhbmQgY29sdW1ucyBhcmUgemVyby1pbmRleGVkKS4gY2F1c2VbMF1bMF0gcmVmZXJzIHRvIGl0IGJlaW5nIGluIHRoZSA0dGggcm93IGFuZCBjYXVzZVswXVsxXSByZWZlcnMgdG8gaXQgYmVpbmcgaW4gdGhlIDl0aCBjb2x1bW4uCiMjIyBncm91cHMKYGBganNvbgpbWzIsNV1dCmBgYApHcm91cCB0eXBlIGFuZCBpbmRleCBvZiBncm91cHMgdGhhdCAiY2F1c2Ugc3RyYXRlZ3kiLiBUaGlzIGlzIGEgMmQgYXJyYXkgc28gZ3JvdXBbMF0gaXMgWzIsIDVdIHJlZmVycmluZyB0byB0aGUgNnRoIGJveCB3aXRoIGdyZWVuIGJvcmRlcnMgKGJveGVzIGFyZSB6ZXJvLWluZGV4ZWQgc3RhcnRpbmcgd2l0aCB0aGUgdG9wIGxlZnQgYW5kIGdvaW5nIGxlZnQgdG8gcmlnaHQgdG9wIHRvIGJvdHRvbSkuIGdyb3VwWzBdWzBdIHJlZmVycyB0byB0aGUgZ3JvdXAgdHlwZSAoMCA9IHJvdywgMSA9IGNvbHVtbiwgMiA9IGJveCkgYW5kIGdyb3VwWzBdWzFdIHJlZmVycyB0byBpdCBiZWluZyB0aGUgNnRoIGJveC4KIyMjIHBsYWNlbWVudHMKYGBganNvbgpbXQpgYGAKUm93LCBjb2x1bW4sIGFuZCB2YWx1ZXMgZm9yIGNlbGxzIHRoYXQgaGF2ZSBoYWQgdmFsdWVzIHBsYWNlZCBpbiB0aGVtIGFzIHJlc3VsdCBvZiBzdHJhdGVneS4gVGhpcyBkb2VzIG5vdCBhcHBseSB0byB0aGlzIHN0cmF0ZWd5LgojIyMgcmVtb3ZhbHMKYGBganNvbgpbWzMsNiwxLDIsMyw5XV0KYGBgCk5vdGVzIHRoYXQgY2FuIGJlIHJlbW92ZWQgZnJvbSBjZWxscyBhbG9uZyB3aXRoIHRoZWlyIHJvdyBhbmQgY29sdW1ucy4gVGhlIGZpcnN0IHR3byB2YWx1ZXMgaW4gZWFjaCBzdWJhcnJheSByZXByZXNlbnQgdGhlIHJvdyBhbmQgY29sdW1uIHJlc3BlY3RpdmVseSBzbyByZW1vdmFsc1swXVswXSBhbmQgcmVtb3ZhbHNbMF1bMV0gcmVmZXIgdG8gdGhlIDd0aCBjZWxsIGluIHRoZSA0dGggcm93LiBUaGUgcmVzdCBvZiB0aGUgbnVtYmVycyBpbiB0aGUgc3ViYXJyYXkgYXJlIHRoZSBub3RlcyB0byBiZSByZW1vdmVkIHdoaWNoIGlzIDEsIDIsIDMsIGFuZCA5IChhbHRob3VnaCBvbmx5IDEgYW5kIDMgYXJlIHByZXNlbnQgYW5kIGFyZSBoaWdobGlnaHRlZCBpbiByZWQpLgojIyMgaW5mbwpgYGBqc29uCiJIaWRkZW4gc2luZ2xlcyBhcmUgd2hlbiB5b3Ugb25seSBoYXZlIG9uZSBjZWxsIGxlZnQgc3RpbGwgY29udGFpbmluZyBhIHNwZWNpZmljIHZhbHVlIGluIGEgcm93LCBjb2x1bW4sIG9yIGJveCIKYGBgCkluZm8gYWJvdXQgdGhlIHN0cmF0ZWd5IGJlaW5nIHVzZWQgYnkgdGhlIGhpbnQuCiMjIyBhY3Rpb24KYGBganNvbgoiV2hlbiB5b3Ugc2VlIGEgaGlkZGVuIHNpbmdsZSB5b3UgY2FuIHJlbW92ZSBhbGwgbm90ZXMgb3RoZXIgdGhhbiB0aGUgc2luZ2xlIGZyb20gdGhlIGNlbGwiCmBgYApEZXNjcmliZXMgdGhlIGFjdGlvbiB0aGF0IHRoZSBoaW50IGlzIHN1Z2dlc3RpbmcuCiMjIEV4YW1wbGUgNzogSGlkZGVuIFBhaXIKIVtFeGFtcGxlIDddKGh0dHBzOi8vc3Vkb2t1cnUuczMuYW1hem9uYXdzLmNvbS9oaW50RXhhbXBsZTYtVjEucG5nKQojIyMgc3RyYXRlZ3kKYGBganNvbgoiSElEREVOX1BBSVIiCmBgYApOYW1lIG9mIHN0cmF0ZWd5IHVzZWQgYnkgdGhlIGhpbnQuIEhpZGRlbiBwYWlyIHdvcmtzIGJ5IGhhdmluZyBvbmx5IHR3byBjZWxscyBpbiBhIGdyb3VwIHRoYXQgc3RpbGwgaGF2ZSB0d28gc3BlY2lmaWMgbnVtYmVycyBhcyBwb3NzaWJpbGl0aWVzIGluIHdoaWNoIGNhc2UgYWxsIG90aGVyIG5vdGVzIGNhbiBiZSByZW1vdmVkIGZyb20gdGhlIHBhaXIgb2YgY2VsbHMuIFRoaXMgaXMgc2hvd24gYnkgdGhlIG5ha2VkIHBhaXIgaW4gdGhlIHRvcCByaWdodCBpbiB3aGljaCB0aGV5IGhhdmUgdGhlIG9ubHkgMiBhbmQgMydzIGluIHRoZSBib3ggd2l0aCB0aGUgZ3JlZW4gYm9yZGVyLiBUaGVyZWZvcmUsIHRoZSBvdGhlciBub3RlcyBoaWdobGlnaHRlZCBpbiByZWQgY2FuIGJlIHJlbW92ZWQuCiMjIyBjYXVzZQpgYGBqc29uCltbMCw3XSxbMSw3XSxbMSw4XV0KYGBgCkNvb3JkaW5hdGVzIG9mIGNlbGxzIHRoYXQgImNhdXNlIiBzdHJhdGVneSB0byBiZSBhcHBsaWNhYmxlLiBUaGlzIGlzIGEgMmQgYXJyYXkgc28gY2F1c2VbMF0gaXMgWzAsIDddIHJlZmVycmluZyB0byB0aGUgOHRoIGNlbGwgaW4gdGhlIDFzdCByb3cgKHJvd3MgYW5kIGNvbHVtbnMgYXJlIHplcm8taW5kZXhlZCkuIGNhdXNlWzBdWzBdIHJlZmVycyB0byBpdCBiZWluZyBpbiB0aGUgMXN0IHJvdyBhbmQgY2F1c2VbMF1bMV0gcmVmZXJzIHRvIGl0IGJlaW5nIGluIHRoZSA4dGggY29sdW1uLgojIyMgZ3JvdXBzCmBgYGpzb24KW1syLDJdXQpgYGAKR3JvdXAgdHlwZSBhbmQgaW5kZXggb2YgZ3JvdXBzIHRoYXQgImNhdXNlIHN0cmF0ZWd5Ii4gVGhpcyBpcyBhIDJkIGFycmF5IHNvIGdyb3VwWzBdIGlzIFsyLCAyXSByZWZlcnJpbmcgdG8gdGhlIDNyZCBib3ggd2l0aCBncmVlbiBib3JkZXJzIChib3hlcyBhcmUgemVyby1pbmRleGVkIHN0YXJ0aW5nIHdpdGggdGhlIHRvcCBsZWZ0IGFuZCBnb2luZyBsZWZ0IHRvIHJpZ2h0IHRvcCB0byBib3R0b20pLiBncm91cFswXVswXSByZWZlcnMgdG8gdGhlIGdyb3VwIHR5cGUgKDAgPSByb3csIDEgPSBjb2x1bW4sIDIgPSBib3gpIGFuZCBncm91cFswXVsxXSByZWZlcnMgdG8gaXQgYmVpbmcgdGhlIDNyZCBib3guCiMjIyBwbGFjZW1lbnRzCmBgYGpzb24KW10KYGBgClJvdywgY29sdW1uLCBhbmQgdmFsdWVzIGZvciBjZWxscyB0aGF0IGhhdmUgaGFkIHZhbHVlcyBwbGFjZWQgaW4gdGhlbSBhcyByZXN1bHQgb2Ygc3RyYXRlZ3kuIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gdGhpcyBzdHJhdGVneS4KIyMjIHJlbW92YWxzCmBgYGpzb24KW1swLDYsMSw3LDhdLFsyLDYsMSw3LDhdXQpgYGAKTm90ZXMgdGhhdCBjYW4gYmUgcmVtb3ZlZCBmcm9tIGNlbGxzIGFsb25nIHdpdGggdGhlaXIgcm93IGFuZCBjb2x1bW5zLiBUaGUgZmlyc3QgdHdvIHZhbHVlcyBpbiBlYWNoIHN1YmFycmF5IHJlcHJlc2VudCB0aGUgcm93IGFuZCBjb2x1bW4gcmVzcGVjdGl2ZWx5IHNvIHJlbW92YWxzWzBdWzBdIGFuZCByZW1vdmFsc1swXVsxXSByZWZlciB0byB0aGUgN3RoIGNlbGwgaW4gdGhlIDFzdCByb3cuIFRoZSByZXN0IG9mIHRoZSBudW1iZXJzIGluIHRoZSBzdWJhcnJheSBhcmUgdGhlIG5vdGVzIHRvIGJlIHJlbW92ZWQgd2hpY2ggaXMgMSwgNywgYW5kIDggKGFsdGhvdWdoIG9ubHkgMSBhbmQgOCBhcmUgcHJlc2VudCBhbmQgYXJlIGhpZ2hsaWdodGVkIGluIHJlZCBpbiB0aGUgY2VsbCBpbiB0aGUgZmlyc3Qgcm93KS4KIyMjIGluZm8KYGBganNvbgoiSGlkZGVuIHBhaXJzIGFyZSB3aGVuIHlvdSBvbmx5IGhhdmUgdHdvIGNlbGxzIGxlZnQgc3RpbGwgY29udGFpbmluZyB0d28gc3BlY2lmaWMgdmFsdWVzIGluIGEgc2hhcmVkIHJvdywgY29sdW1uLCBvciBib3giCmBgYApJbmZvIGFib3V0IHRoZSBzdHJhdGVneSBiZWluZyB1c2VkIGJ5IHRoZSBoaW50LgojIyMgYWN0aW9uCmBgYGpzb24KIldoZW4geW91IHNlZSBhIGhpZGRlbiBwYWlyIHlvdSBjYW4gcmVtb3ZlIGFsbCBub3RlcyBvdGhlciB0aGFuIHRoZSBwYWlyIGZyb20gdGhlIGNlbGxzIgpgYGAKRGVzY3JpYmVzIHRoZSBhY3Rpb24gdGhhdCB0aGUgaGludCBpcyBzdWdnZXN0aW5nLgojIyBFeGFtcGxlIDg6IE90aGVyIEhpZGRlbiBTZXRzCiMjIyBzdHJhdGVneQpgYGBqc29uCiJISURERU5fVFJJUExFVCIKYGBgCiMjIyBzdHJhdGVneQpgYGBqc29uCiJISURERU5fUVVBRFJVUExFVCIKYGBgCk5hbWUgb2Ygc3RyYXRlZ3kgdXNlZCBieSB0aGUgaGludC4gSGlkZGVuIHRyaXBsZXRzIHRocm91Z2ggb2N0dXBsZXRzIGFyZSBzY2FsZWQgdXAgdmVyc2lvbnMgb2YgaGlkZGVuIHBhaXJzIGV4Y2VwdCBpbnN0ZWFkIG9mIHVzaW5nIHR3byBjZWxscyBhbmQgbm90ZXMgdGhleSBzaGFyZSAzLTguIE5vdGU6IHdoaWxlIGNlbGxzIGluIHNheSBhIGhpZGRlbiBxdWFkcnVwbGV0IG11c3Qgc2hhcmUgdGhlIHNhbWUgNCBub3RlcyB0aGUgNCBjZWxscyBkb24ndCBoYXZlIHRvIGluZGl2aWR1YWxseSBoYXZlIGFsbCA0IG5vdGVzIHRoZXkganVzdCBoYXZlIHRvIGJlIHRoZSBvbmx5IGNlbGxzIGluIHRoZSBncm91cCB0aGF0IGhhdmUgdGhvc2Ugbm90ZXMuCiMjIEV4YW1wbGUgOTogUG9pbnRpbmcgUGFpcgohW0V4YW1wbGUgOF0oaHR0cHM6Ly9zdWRva3VydS5zMy5hbWF6b25hd3MuY29tL2hpbnRFeGFtcGxlNy1WMS5wbmcpCiMjIyBzdHJhdGVneQpgYGBqc29uCiJQT0lOVElOR19QQUlSIgpgYGAKTmFtZSBvZiBzdHJhdGVneSB1c2VkIGJ5IHRoZSBoaW50LiBQb2ludGluZyBwYWlyIHdvcmtzIGJ5IGhhdmluZyBvbmx5IHR3byBjZWxscyBpbiBhIGJveCB0aGF0IHN0aWxsIGhhdmUgYSBzcGVjaWZpYyBudW1iZXJzIGFzIGEgcG9zc2liaWxpdHkgYW5kIGFsc28gc2hhcmUgYSByb3cgb3IgY29sdW1uIGluIHdoaWNoIGNhc2UgYWxsIG90aGVyIG5vdGVzIGNhbiBiZSByZW1vdmVkIGZyb20gYW55IG90aGVyIGNlbGxzIGluIHRoZSBzaGFyZWQgcm93IG9yIGNvbHVtbiBleGNlcHQgZm9yIHRoZSBwb2ludGluZyBwYWlyIHRoZW1zZWxmLiBUaGlzIGlzIHNob3duIGJ5IHRoZSBwb2ludGluZyBwYWlyIGluIHRoZSB0b3AgcmlnaHQgaW4gd2hpY2ggdGhleSBoYXZlIHRoZSBvbmx5IDYncyBpbiB0aGUgYm94IGFyZSBpbiB0aGUgdHdvIGNlbGxzIGhpZ2hsaWdodGVkIGluIGJsdWUgb24gdGhlIHNhbWUgcm93LiBUaGVyZWZvcmUsIHRoZSBvdGhlciBub3RlcyBoaWdobGlnaHRlZCBpbiByZWQgY2FuIGJlIHJlbW92ZWQuCiMjIyBjYXVzZQpgYGBqc29uCltbMCw2XSxbMCw4XV0KYGBgCkNvb3JkaW5hdGVzIG9mIGNlbGxzIHRoYXQgImNhdXNlIiBzdHJhdGVneSB0byBiZSBhcHBsaWNhYmxlLgojIyMgZ3JvdXBzCmBgYGpzb24KW1swLDBdLFsyLDJdXQpgYGAKR3JvdXAgdHlwZSBhbmQgaW5kZXggb2YgZ3JvdXBzIHRoYXQgImNhdXNlIHN0cmF0ZWd5Ii4KIyMjIHBsYWNlbWVudHMKYGBganNvbgpbXQpgYGAKUm93LCBjb2x1bW4sIGFuZCB2YWx1ZXMgZm9yIGNlbGxzIHRoYXQgaGF2ZSBoYWQgdmFsdWVzIHBsYWNlZCBpbiB0aGVtIGFzIHJlc3VsdCBvZiBzdHJhdGVneS4gVGhpcyBkb2VzIG5vdCBhcHBseSB0byB0aGlzIHN0cmF0ZWd5LgojIyMgcmVtb3ZhbHMKYGBganNvbgpbWzAsMSw2XSxbMCwyLDZdXQpgYGAKTm90ZXMgdGhhdCBjYW4gYmUgcmVtb3ZlZCBmcm9tIGNlbGxzIGFsb25nIHdpdGggdGhlaXIgcm93IGFuZCBjb2x1bW5zLiBUaGUgZmlyc3QgdHdvIHZhbHVlcyBpbiBlYWNoIHN1YmFycmF5IHJlcHJlc2VudCB0aGUgcm93IGFuZCBjb2x1bW4gcmVzcGVjdGl2ZWx5LgojIyMgaW5mbwpgYGBqc29uCiJQb2ludGluZyBwYWlycyBhcmUgd2hlbiB5b3Ugb25seSBoYXZlIHR3byBjZWxscyBpbiBhIHJvdyBvciBjb2x1bW4gbGVmdCBzdGlsbCBjb250YWluaW5nIGEgc3BlY2lmaWMgdmFsdWUgYW5kIHRoZSBjZWxscyBhbHNvIHNoYXJlIGEgYm94IgpgYGAKSW5mbyBhYm91dCB0aGUgc3RyYXRlZ3kgYmVpbmcgdXNlZCBieSB0aGUgaGludC4KIyMjIGFjdGlvbgpgYGBqc29uCiJXaGVuIHlvdSBzZWUgYSBwb2ludGluZyBwYWlyIHlvdSBjYW4gcmVtb3ZlIGFsbCBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNoYXJlZCBub3RlIGZyb20gdGhlIGJveCAoZXhjZXB0IGZvciB0aG9zZSBpbiB0aGUgcGFpciB0aGVtc2VsZikiCmBgYApEZXNjcmliZXMgdGhlIGFjdGlvbiB0aGF0IHRoZSBoaW50IGlzIHN1Z2dlc3RpbmcuCiMgUHV6emxlRGF0YSBPYmplY3QgUHJvcGVydGllcwojIyBzb2x1dGlvbgo4MSBjaGFyYWN0ZXIgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgc29sdXRpb24gdG8gdGhlIHB1enpsZSAobGVmdCB0byByaWdodCB0b3AgdG8gYm90dG9tKQojIyBkaWZmaWN1bHR5Ck51bWJlciByZXByZXNlbnRpbmcgdGhlIGRpZmZpY3VsdHkgb2YgdGhlIHB1enpsZSAoaGlnaGVyIGlzIGhhcmRlcikKIyMgZ2l2ZW5zQ291bnQKTnVtYmVyIHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIGdpdmVucyBpLmUuIHByZS1maWxsZWQgY2VsbHMgaW4gdGhlIHB1enpsZQojIyBwdXp6bGVTdHJhdGVnaWVzCkJvb2xlYW4gYXJyYXkgcmVwcmVzZW50aW5nIHdoaWNoIHN0cmF0ZWdpZXMgd2VyZSB1c2VkIHRvIHNvbHZlIHRoZSBwdXp6bGUgaW4gZm9sbG93aW5nIG9yZGVyIChzdWJzZXQgb2YgU3RyYXRlZ3lFbnVtKToKLSAwOiBOQUtFRF9TSU5HTEUsCi0gMTogSElEREVOX1NJTkdMRSwKLSAyOiBOQUtFRF9QQUlSLAotIDM6IEhJRERFTl9QQUlSLAotIDQ6IFBPSU5USU5HX1BBSVIsCi0gNTogTkFLRURfVFJJUExFVCwKLSA2OiBISURERU5fVFJJUExFVCwKLSA3OiBQT0lOVElOR19UUklQTEVULAotIDg6IE5BS0VEX1FVQURSVVBMRVQsCi0gOTogSElEREVOX1FVQURSVVBMRVQsCiMjIGRyaWxscwotIDFEIG51bWJlciBhcnJheSByZXByZXNlbnRpbmcgbGFzdCB0aW1lIHN0cmF0ZWd5IGNhbiBiZSByZWFzb25hYmx5IHVzZWQgYXMgZHJpbGwgb3IgLTEgaWYgaXQgY2FuJ3QgYmUgdXNlZCBhcyBhIGRyaWxsCi0gRWFjaCBpbmRleCBpcyBkZWZpbmVkIGFzIHRoZSBwdXp6bGUgd2hlbiBpdCBoYXMgYSBjZXJ0YWluIG51bWJlciBvZiBjZWxscyBmaWxsZWQgaW4gKHNvIGluZGV4IDMwIGhhcyAzMCBjZWxscyBmaWxsZWQgaW4gaW5jbHVkaW5nIGdpdmVucykuCi0gUmVhc29uYWJseSBpcyBkZWZpbmVkIGFzIHRvIG1lYW4gcmVtb3Zpbmcgc3RyYXRlZ2llcyBpZiB0aGV5IG92ZXJsYXAgd2l0aCB0aGVpciBwcmVyZXFzIChpLmUuIGlmIGEgbmFrZWQgcGFpciBpcyBtYWRlIHVwIG9mIHR3byBuYWtlZCBzaW5nbGVzIHRoZSBwYWlyIHdpbGwgYmUgZXhjbHVkZWQpIGFuZCBub3QgY291bnRpbmcgYSBzdHJhdGVneSBpZiBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgaXQgYXJlIHByZXNlbnQgc28gdGhlaXIgaXMgb25seSBvbmUgY29ycmVjdCBhbnN3ZXIuCi0gVGhlIHNhbWUgbnVtYmVyIGluZGV4IHRvIHN0cmF0ZWd5IG1hcHBpbmcgYXMgcHV6emxlU3RyYXRlZ2llcyBpcyB1c2VkLgoKIyBEZXZlbG9wZXIgVG9vbHMKCkNsb25lIFJlcG9zaXRvcnkKYGBgc2hlbGwKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9TdWRvS3VydS9TdWRva3VydS5naXQKYGBgCgpgYGBzaGVsbApidW4gaW5zdGFsbCAjIG9yIG5wbSBpbnN0YWxsCmBgYAoKW0luc3RhbGwgcHJlLWNvbW1pdCBob29rc10oaHR0cHM6Ly9wcmUtY29tbWl0LmNvbS8jaW5zdGFsbCkKClJ1biB0aGUgYmVsb3cgY29tbWFuZCB0byBzZXR1cCBwcmUtY29tbWl0IGhvb2tzOgoKYGBgc2hlbGwKcHJlLWNvbW1pdCBpbnN0YWxsCmBgYAoKUHJlLWNvbW1pdCBob29rcyBjYW4gYmUgcnVuIG1hbnVhbGx5IHdpdGggYmVsb3cgY29tbWFuZCwgYnV0CndpbGwgYWx3YXlzIHJ1biBiZWZvcmUgZ2l0IGNvbW1pdCBhbmQgZ2l0IHB1c2ggaWYgc2V0dXAgY29ycmVjdGx5LgoKYGBgc2hlbGwKbnBtIHJ1biBwcmUtY29tbWl0CmBgYAoKYGBgYnVuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLlBhc3NlZGBgYAoKU2hvdWxkIGFwcGVhciBpbiB0aGUgZ2l0IG91dHB1dCBsb2dzIGFmdGVyIGEgY29tbWl0LgoKCmBgYHNoZWxsCiMgSW5zdGFsbCBEZXZlbG9wZXIgRGVwZW5kZW5jaWVzCmJ1biBpbnN0YWxsCmBgYAoKUnVuIFRlc3RzCgpDb3ZlcmFnZSByZXBvcnRzIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBjYW4gY2FuIGJlIHZpZXdlZCBpbiBgamVzdC1jb3ZlcmFnZWAgZm9sZGVyCmBgYHNoZWxsCm5wbSBydW4gdGVzdApgYGAKUnVuIFRlc3RzIHdpdGhvdXQgY292ZXJhZ2UgKGZhc3RlcikKYGBgc2hlbGwKYnVuIHRlc3QKYGBgCgpCdWlsZCBkaXN0IEZvbGRlcgpgYGBzaGVsbApidW4gYnVpbGQKYGBgCgpDcmVhdGUgTG9jYWwgVHlwZURvYyBEb2N1bWVudGF0aW9uCmBgYHNoZWxsCmJ1biB1cGRhdGUtZG9jcwpgYGAKClRoZSBmb2xsb3dpbmcgY2FuIGFsc28gYmUgZG9uZSBhZnRlciBpbnN0YWxsaW5nIHRoZSBucG0gcGFja2FnZSBieSBuYXZpZ2F0aW5nIHRvIG5vZGVfbW9kdWxlcy9zdWRva3VydQoKUnVuIERlbW8gU2VydmVyIG9uIGh0dHA6Ly9sb2NhbGhvc3Q6MzEwMC8KYGBgc2hlbGwKYnVuIHN0YXJ0CmBgYApgYGBzaGVsbAojIENhbiBvcGVuIGludGVyYWN0aXZlIFNvbHZlciBEZW1vIGluIGJyb3dzZXIgd2hpbGUgRGVtbyBTZXJ2ZXIgaXMgcnVubmluZyAoR2VuZXJhdG9yL0RlbW8vZGVtby5odG1sKQoKIyBEZW1vIFNlcnZlciBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGZha2VzIGZvciBQdXp6bGUgQ2xhc3MgKHVzZSBodHRwOi8vbG9jYWxob3N0OjMxMDAvIGFzIHVybCkKIyBQdXp6bGVzLnN0YXJ0R2FtZSgpOiBXaWxsIG92ZXJ3cml0ZSB0ZXh0IGZpbGUgd2l0aCBhY3RpdmVHYW1lIGNvbnN0YW50IGFuZCByZXR1cm4gaXQgdG8gdXNlcgojIFB1enpsZXMuZ2V0R2FtZSgpOiBXaWxsIHJldHVybiB0aGUgYWN0aXZlR2FtZSBmcm9tIHRleHQgZmlsZSBvciByZXR1cm4gNDA0IGVycm9yIGlmIHRoZSB0ZXh0IGZpbGUgZG9lc24ndCBleGlzdAojIFB1enpsZXMuc2F2ZUdhbWUoKTogQXR0ZW1wdHMgdG8gc2F2ZSBjaGFuZ2VzIHRvIGFjdGl2ZUdhbWUgc3RvcmVkIGxvY2FsbHkgaW4gYSB0ZXh0IGZpbGUgYW5kIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsCiMgUHV6emxlcy5maW5pc2hHYW1lKCk6IEF0dGVtcHRzIHRvIGRlbGV0ZSBhY3RpdmVHYW1lIHN0b3JlZCBsb2NhbGx5IGluIGEgdGV4dCBmaWxlIGFuZCByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bAojIERyaWxscy5nZXRHYW1lKCk6IFdpbGwgcmV0dXJuIGEgcHV6emxlIHN0cmluZyBjb25zdGFudAoKIyBDYW4gbW9kaWZ5IGEgbGVzc29ucyBieSBkb2luZyB0aGUgZm9sbG93aW5nOgoxLiBMb2cgaW50byBBV1MgQ29uc29sZSB1c2luZyB0ZWFtIElBTSB1c2VyCjIuIE5hdmlnYXRlIHRvIFMzCjMuIE5hdmlnYXRlIHRvIHN1ZG9rdXJ1IGJ1Y2tldAo0LiBOYXZpZ2F0ZSB0byBMZXNzb25zIGZvbGRlcgo1LiBEb3dubG9hZCB0aGUgbGVzc29ucyBqc29uIGZpbGUgZS5nLiBBTUVORF9OT1RFUy5qc29uCjYuIE1ha2UgY2hhbmdlcyBsb2NhbGx5IHRvIHRoZSBqc29uIGZpbGUKNy4gVXBsb2FkIHRoZSBqc29uIGZpbGUgKGl0IHdpbGwgb3ZlcndyaXRlIHRoZSBvbGQgdmVyc2lvbikKCiMgQ2FuIGFkZCBhIGxlc3NvbiBieSBkb2luZyB0aGUgZm9sbG93aW5nOgoxLiBOYXZpZ2F0ZSB0byBTMyBzdWRva3VydSBidWNrZXQgTGVzc29ucyBmb2xkZXIgc2FtZSBhcyBpbiBtb2RpZnlpbmcgbGVzc29uIGluc3RydWN0aW9ucyBhYm92ZQoyLiBVcGxvYWQgdGhlIG5ldyBsZXNzb24ganNvbiBmaWxlIHVzaW5nIHRoZSBzYW1lIGZvcm1hdCBhcyB0aGUgZXhpc3Rpbmcgb25lcwozLiBEb3dubG9hZCBzdHJhdGVnaWVzLmpzb24KNC4gQWRkIHRoZSBuZXcgc3RyYXRlZ2llcyBuYW1lIChzYW1lIGFzIHVwbG9hZGVkIGZpbGUgbmFtZSkgdG8gc3RyYXRlZ2llcy5qc29uIGxvY2FsbHkKNS4gVXBsb2FkIHRoZSBqc29uIGZpbGUgKGl0IHdpbGwgb3ZlcndyaXRlIHRoZSBvbGQgdmVyc2lvbikKYGBgCk9mZmljaWFsIFR5cGVEb2MgRG9jdW1lbnRhdGlvbiBpcyBIb3N0ZWQgSGVyZTogaHR0cHM6Ly9zdWRva3VydS5naXRodWIuaW8vU3Vkb2t1UHV6emxlR2VuZXJhdG9yLwoK readmeEtag: '"493eb23c218bef4ad24629291b66771b116f358f"' readmeLastModified: Tue, 03 Sep 2024 00:16:08 GMT repositoryId: 559359396 description: >- Code for generating data to be stored in the database related to Sudoku Puzzles. created: '2022-10-29T21:38:29Z' updated: '2024-09-03T00:16:12Z' language: TypeScript archived: false stars: 1 watchers: 2 forks: 0 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"86515d8e7755237ef94d060c0eeac11ffeed1bf5f2ae53f24619c1283df6090f"' repoLastModified: Tue, 03 Sep 2024 00:16:12 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/sudokuru/sudokupuzzlegenerator - source: openapi3 tags repository: https://github.com/nitesh232/rest-api_documentation_with_openapi_3 v3: true id: fdadc87cbad758bec90c823d63cf13f5 repositoryMetadata: base64Readme: >- IyBSRVNULUFQSV9Eb2N1bWVudGF0aW9uX3dpdGhfT3BlbkFQSV8zCgpUaGlzIHByb2plY3Qgc2hvd3MgdGhlIGRvY3VtZW50YXRpb24gb2YgUkVTVF9BUElzIGJ5IHVzaW5nIE9wZW5BcGlfMyBzcGVjaWZpY2F0aW9uLgoKRHVyaW5nIHRoaXMgcHJvamVjdCBJIGhhdmUgdXNlZCB0aGUgVGlja2V0IEJvb2tpbmcgUkVTVC1BUEkgd2hpY2ggSSBoYXZlIGNyZWF0ZWQgZWFybGllciB5b3UgY2FuIGZpbmQgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9OaXRlc2gyMzIvUkVTVC1BUElfRm9yX1RpY2tldF9Cb29raW5nKSAuCgoKUkVTVCBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCB0byBVUkwgOiBodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS9pbmRleC5odG1sCgoKQmVsb3cgSSBhbSBhdHRhY2hpbmcgaW1hZ2Ugb2YgZG9jdW1lbnRhdGlvbi4KCjxpbWcgc3JjPWh0dHBzOi8vZ2l0aHViLmNvbS9OaXRlc2gyMzIvUkVTVC1BUElfRG9jdW1lbnRhdGlvbl93aXRoX09wZW5BUElfMy9ibG9iL21haW4vc3dhZ2dlci5QTkcgd2lkdGg9IjEzMDAiID4KCgpCZWxvdyBpcyBhdHRhY2hlZCBpbWFnZSBmb3IgZW5kcG9pbnQgd2l0aCBQT1NUIG1ldGhvZC4KCgo8aW1nIHNyYz1odHRwczovL2dpdGh1Yi5jb20vTml0ZXNoMjMyL1JFU1QtQVBJX0RvY3VtZW50YXRpb25fd2l0aF9PcGVuQVBJXzMvYmxvYi9tYWluL3Bvc3QuUE5HIHdpZHRoPSIxMzAwIiA+Cg== readmeEtag: '"bbe624cac51cdc4c305f4f4de6b4cdcf1197b122"' readmeLastModified: Sun, 02 Jul 2023 08:56:42 GMT repositoryId: 661241530 description: >- This project shows the documentation of REST_APIs by using OpenApi_3 specification. created: '2023-07-02T08:26:09Z' updated: '2023-07-02T09:06:54Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: Nitesh232 logo: https://avatars.githubusercontent.com/u/92843270?v=4 repoEtag: '"fbc805cb3aee470f02aba219a81363fddf05844193279556267baa08c9c8288a"' repoLastModified: Sun, 02 Jul 2023 09:06:54 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/ekoulemaneng/openapi-inputs-validator v3: true id: dfbd7e4a55a13df24b1ec2dc9f31970e repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIElucHV0cyBWYWxpZGF0b3IKQW4gdW5vcGluaW9uYXRlZCBUeXBlU2NyaXB0IGxpYnJhcnkgdGhhdCBwcm92aWRlcyBpbnB1dHMgZGF0YSB2YWxpZGF0b3JzIGluIGNvbXBsaWFuY2Ugd2l0aCBhIGdpdmVuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gRm9yIDMuMS54IGFuZCAzLjAueCBPcGVuQVBJIHZlcnNpb25zLgoKIyMgSW5zdGFsbGF0aW9uCgpgYGAKbnBtIGluc3RhbGwgb3BlbmFwaS1pbnB1dHMtdmFsaWRhdG9yCmBgYApvciAKYGBgCnlhcm4gYWRkIG9wZW5hcGktaW5wdXRzLXZhbGlkYXRvcgpgYGAKCiMjIFVzYWdlCgpgYGB0eXBlc2NyaXB0CmltcG9ydCBzY2hlbWFSZXRyaWV2ZXIgZnJvbSAnb3BlbmFwaS1zY2hlbWEtcmV0cmlldmVyJwppbXBvcnQgeyBjb21waWxlLCB2YWxpZGF0ZSB9IGZyb20gJ29wZW5hcGktaW5wdXRzLXZhbGlkYXRvcicKCmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7CgogICAgLy8gU2V0dXAgYW4gb3BlbmFwaSBzcGVjaWZpY2F0aW9uCiAgICBjb25zdCBzY2hlbWEgPSBhd2FpdCBzY2hlbWFSZXRyaWV2ZXIoJy4vb3BlbmFwaS55YW1sJywgX19kaXJuYW1lKQoKICAgIC8vIEdlbmVyYXRlIHZhbGlkYXRvcnMgZnJvbSBhbiBvcGVuYXBpIHNwZWNpZmljYXRpb24KICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBhd2FpdCBjb21waWxlKHNjaGVtYSkKCiAgICAvLyBTZXQgcGFyYW1ldGVycwogICAgY29uc3QgcGF0aCA9ICcvdXNlcnMnCiAgICBjb25zdCBvcGVyYXRpb24gPSAnZ2V0JwogICAgY29uc3QgaW5wdXRzID0gewogICAgICAgIHBhdGg6IHsKICAgICAgICAgICAgLy8gLi4uLi4uLi4KICAgICAgICB9LAogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICAgLy8gLi4uLi4uLgogICAgICAgIH0sCiAgICAgICAgY29va2llczogewogICAgICAgICAgICAvLyAuLi4uLi4uCiAgICAgICAgfSwKICAgICAgICBxdWVyeTogewogICAgICAgICAgICAvLyAuLi4uLi4uCiAgICAgICAgfSwKICAgICAgICBib2R5OiAvLyAuLi4uLi4KICAgIH0KCiAgICAvLyBWYWxpZGF0ZQogICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRlKHBhdGgsIG9wZXJhdGlvbiwgaW5wdXRzLCB2YWxpZGF0b3JzKQoKICAgIGNvbnNvbGUubG9nKHZhbGlkYXRpb25SZXN1bHQpIC8vID0+IHsgdmFsaWQ6IGJvb2xlYW4sIGVycm9yczogbnVsbCB8IHN0cmluZyB8IHsuLi59IHwgdW5kZWZpbmVkIH0KCn0KYGBgCgojIyBMaWNlbnNlClRoaXMgcGFja2FnZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgW01JVCBMaWNlbnNlXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdCkuCgojIyBDb250YWN0CklmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgb3IgaXNzdWVzLCBwbGVhc2UgY29udGFjdCB0aGUgcGFja2FnZSBtYWludGFpbmVyIGF0IGVrb3VsZW1hbmVuZ0BnbWFpbC5jb20u readmeEtag: '"3c897dd652961a605e77ecf982cf951221a054de"' readmeLastModified: Mon, 15 May 2023 17:25:55 GMT repositoryId: 633462766 description: >- TypeScript library providing inputs data validators in accordance with a given OpenAPI specification. For 3.1.x and 3.0.x OpenAPI versions. created: '2023-04-27T14:50:04Z' updated: '2023-05-11T12:30:16Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: ekoulemaneng logo: https://avatars.githubusercontent.com/u/12666431?v=4 license: MIT repoEtag: '"64b82690ba15e94d228c2d4932a44f4a43dc4b769630aedc22fafd7de959cca5"' repoLastModified: Thu, 11 May 2023 12:30:16 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/refitter/generate-nupkg v3: true id: 8e8df31870ab1dad33f850d25cd99557 repositoryMetadata: base64Readme: >- IyBHZW5lcmF0ZS1OdXBrZwpHZW5lcmF0ZSBhIFJlZml0IGNsaWVudCBpbnRlcmZhY2UgYW5kIGNvbnRyYWN0cyBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZG9jdW1lbnQgdXNpbmcgW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpLgoKIyMgSW5wdXRzCgojIyMgYG9wZW5hcGktZmlsZWAKVGhlIHBhdGggdG8gdGhlIE9wZW5BUEkgZG9jdW1lbnQgKGJvdGggSlNPTiBhbmQgWUFNTCBhcmUgc3VwcG9ydGVkKS4gRGVmYXVsdHMgdG8gIm9wZW5hcGkuanNvbiIgKGkuZS4gYSBmaWxlIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBjYWxsZWQgb3BlbmFwaS5qc29uKS4gUGF0aHMgdGhhdCBkbyBub3Qgc3RhcnQgd2l0aCBgL2AgYXJlIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIHJlcG9zaXRvcnkuCgojIyMgYG9wZW5hcGktdXJsYApUaGUgVVJMIHRvIGxvYWQgdGhlIE9wZW5BUEkgZG9jdW1lbnQgZnJvbS4gSWYgc2V0LCBgb3BlbmFwaS1maWxlYCB3aWxsIGJlIGlnbm9yZWQuCgojIyMgYG5hbWVzcGFjZWAKVGhlIGRlZmF1bHQgbmFtZXNwYWNlIHVzZWQgZm9yIHRoZSBnZW5lcmF0ZWQgdHlwZXMgKGRlZmF1bHQ6IGBHZW5lcmF0ZWRDb2RlYCkKCiMjIyBgdXNlLWFwaS1yZXNwb25zZWAKUmV0dXJuIGBUYXNrPElBcGlSZXNwb25zZTxUPj5gIGluc3RlYWQgb2YgYFRhc2s8VD5gCgojIyMgYGNhbmNlbGxhdGlvbi10b2tlbnNgClVzZSBjYW5jZWxsYXRpb24gdG9rZW5zCgojIyMgYG11bHRpcGxlLWludGVyZmFjZXNgCkdlbmVyYXRlIGEgUmVmaXQgaW50ZXJmYWNlIGZvciBlYWNoIGVuZHBvaW50LiBNYXkgYmUgb25lIG9mIGBCeUVuZHBvaW50YCwgYEJ5VGFnYAoKIyMjIGBjb21tYW5kLWFyZ3NgCkFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdGhyb3VnaCB0byB0aGUgW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIENMSSB0b29sLgoKIyMjIGBwdWJsaXNoLWFydGlmYWN0c2AKUHVibGlzaCB0aGUgZ2VuZXJhdGVkIG51Z2V0IHBhY2thZ2UgYXMgYSBidWlsZCBhcnRpZmFjdAoKIyMjIGBvdXRwdXQtZmlsZW5hbWVgCk5vIG91dHB1dHMgYXJlIHJldHVybmVkLiBUaGUgZ2VuZXJhdGVkIGNsaWVudCBpcyBwbGFjZWQgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCB1c2luZyB0aGUgYG91dHB1dC1maWxlbmFtZWAgKERlZmF1bHQ6ICoqYE91dHB1dC5jc2AqKikgdmFsdWUuIFRoZSBvdXRwdXQgZmlsZSBjb250YWlucyBib3RoIHRoZSBSZWZpdCBpbnRlcmZhY2UgYW5kIHRoZSBjb250cmFjdCB0eXBlcyB1c2VkIGJ5IHRoZSBBUEkKCiMjIyBgdmVyc2lvbmAKVGhlIHZlcnNpb24gbnVtYmVyIHVzZWQgZm9yIHRoZSBOdUdldCBwYWNrYWdlIChkZWZhdWx0OiBgMS4wLiR7eyBnaXRodWIucnVuX251bWJlciB9fWApCgojIyMgYHRhcmdldC1mcmFtZXdvcmtgClRoZSB0YXJnZXQgZnJhbWV3b3JrIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBDbGllbnQgU0RLIChkZWZhdWx0OiBgbmV0Ni4wYCkKCiMjIyBgcGFja2FnZS1pZGAKVGhlIHZhbHVlIHVzZWQgYXMgYDxQYWNrYWdlSWQ+YCBmb3IgcGFja2FnZSB0aGUgZ2VuZXJhdGVkIGNvZGUgaW50byBhIE51R2V0IHBhY2thZ2UKCiMjIyBgdGl0bGVgClRoZSB2YWx1ZSB1c2VkIGFzIGA8VGl0bGU+YCBmb3IgcGFja2FnZSB0aGUgZ2VuZXJhdGVkIGNvZGUgaW50byBhIE51R2V0IHBhY2thZ2UKCiMjIyBgcm9vdC1uYW1lc3BhY2VgClRoZSB2YWx1ZSB1c2VkIGFzIGA8Um9vdE5hbWVzcGFjZT5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIC0gYSBOdUdldCBwYWNrYWdlCgojIyMgYGFzc2VtYmx5YApUaGUgdmFsdWUgdXNlZCBhcyBgPEFzc2VtYmx5TmFtZT5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgLSBOdUdldCBwYWNrYWdlCgojIyMgYGF1dGhvcnNgClRoZSB2YWx1ZSB1c2VkIGFzIGA8QXV0aG9ycz5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgTnVHZXQgLSBwYWNrYWdlCgojIyMgYGNvbXBhbnlgClRoZSB2YWx1ZSB1c2VkIGFzIGA8Q29tcGFueT5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgTnVHZXQgLSBwYWNrYWdlCgojIyMgYHByb2R1Y3RgClRoZSB2YWx1ZSB1c2VkIGFzIGA8UHJvZHVjdD5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgTnVHZXQgLSBwYWNrYWdlCgojIyMgYGRlc2NyaXB0aW9uYApUaGUgdmFsdWUgdXNlZCBhcyBgPERlc2NyaXB0aW9uPmAgZm9yIHBhY2thZ2UgdGhlIGdlbmVyYXRlZCBjb2RlIGludG8gYSAtIE51R2V0IHBhY2thZ2UKCiMjIyBgbGljZW5zZWAKVGhlIHZhbHVlIHVzZWQgYXMgYDxQYWNrYWdlTGljZW5zZUV4cHJlc3Npb24+YCBmb3IgcGFja2FnZSB0aGUgZ2VuZXJhdGVkIGNvZGUgLSBpbnRvIGEgTnVHZXQgcGFja2FnZQoKIyMjIGBwcm9qZWN0LXVybGAKVGhlIHZhbHVlIHVzZWQgYXMgYDxQYWNrYWdlUHJvamVjdFVybD5gIGFuZCBgPFJlcG9zaXRvcnlVcmw+YCBmb3IgcGFja2FnZSAtIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgTnVHZXQgcGFja2FnZQoKIyMjIGByZXBvc2l0b3J5LXR5cGVgClRoZSB2YWx1ZSB1c2VkIGFzIGA8UmVwb3NpdG9yeVR5cGU+YCBmb3IgcGFja2FnZSB0aGUgZ2VuZXJhdGVkIGNvZGUgaW50byBhIE51R2V0IHBhY2thZ2UKCgojIEV4YW1wbGVzCgojIyMgVXNpbmcgYSBVUkwgYW5kIHByb2R1Y2luZyBhIENsaWVudCBTREsgTnVHZXQgcGFja2FnZQoKYGBgeWFtbApqb2JzOgogIHNtb2tlLXRlc3QtdXJsLXdpdGgtY2xpZW50LXNkazoKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHN0ZXBzOgogICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjMKICAgICAgCiAgICAgICMgVXNlIHRoZSBhY3Rpb24gdG8gZ2VuZXJhdGUgYSBSZWZpdCBjbGllbnQgaW50ZXJmYWNlCiAgICAgICMgVGhpcyBwcm9kdWNlcyBhIE51R2V0IHBhY2thZ2UgYXMgYSBidWlsZCBhcnRpZmFjdAogICAgICAtIHVzZXM6IHJlZml0dGVyL2dlbmVyYXRlLW51cGtnQHYxCiAgICAgICAgbmFtZTogR2VuZXJhdGUgUmVmaXQgQ2xpZW50IFNESwogICAgICAgIHdpdGg6CiAgICAgICAgICBvcGVuYXBpLXVybDogaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uCiAgICAgICAgICBuYW1lc3BhY2U6IENocmlzdGlhbkhlbGxlLkV4YW1wbGVzLlBldHN0b3JlLnYzCiAgICAgICAgICBjbGllbnQtc2RrOiB0cnVlCiAgICAgICAgICB2ZXJzaW9uOiAzLjAuJHt7IGdpdGh1Yi5ydW5fbnVtYmVyIH19CiAgICAgICAgICBwYWNrYWdlLWlkOiBDaHJpc3RpYW5IZWxsZS5FeGFtcGxlcy5QZXRzdG9yZS52MwogICAgICAgICAgdGl0bGU6IENocmlzdGlhbkhlbGxlLkV4YW1wbGVzLlBldHN0b3JlLnYzCiAgICAgICAgICByb290LW5hbWVzcGFjZTogQ2hyaXN0aWFuSGVsbGUuRXhhbXBsZXMuUGV0c3RvcmUudjMKICAgICAgICAgIGFzc2VtYmx5OiBDaHJpc3RpYW5IZWxsZS5FeGFtcGxlcy5QZXRzdG9yZS52MwogICAgICAgICAgcHJvZHVjdDogQ2hyaXN0aWFuSGVsbGUuRXhhbXBsZXMuUGV0c3RvcmUudjMKICAgICAgICAgIGF1dGhvcnM6IENocmlzdGlhbiBSZXNtYSBIZWxsZQogICAgICAgICAgY29tcGFueTogQ2hyaXN0aWFuIFJlc21hIEhlbGxlCiAgICAgICAgICBkZXNjcmlwdGlvbjogRXhhbXBsZSBnZW5lcmF0ZWQgY29kZSB1c2luZyBSZWZpdHRlciBhbmQgdGhlIFN3YWdnZXIgUGV0c3RvcmUgdjMgZXhhbXBsZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zCiAgICAgICAgICBwcm9qZWN0LXVybDogaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyCmBgYAo= readmeEtag: '"18958a595b0c2bf07721ee7267c591d3d7fa7224"' readmeLastModified: Tue, 08 Aug 2023 11:30:22 GMT repositoryId: 671892173 description: >- Generate NuGet package containing a Refit client interface and contracts from an OpenAPI specifications document using Refitter. created: '2023-07-28T11:37:10Z' updated: '2023-07-28T11:59:23Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: Refitter logo: https://avatars.githubusercontent.com/u/140486945?v=4 license: GPL-3.0 repoEtag: '"1f1f4ae19d22ad7615d599a9e0fc6467d6f6cb8b8df83de2f12e4e145259dc96"' repoLastModified: Fri, 28 Jul 2023 11:59:23 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/noplagiarism/openvk-openapi v3: true id: f7ace7da5bef860cd67f73660240e79f repositoryMetadata: base64Readme: >- IyBvcGVudmstb3BlbmFwaQpPcGVuLUFwaSBvZiBPcGVuVksuIFVzZSBbSW5zb21uaWFdKGh0dHBzOi8vaW5zb21uaWEucmVzdC8pIHRvIGltcG9ydCBpdAo= readmeEtag: '"059278c11c782edcd06cf91f76879100e9cbec07"' readmeLastModified: Tue, 31 Jan 2023 08:26:38 GMT repositoryId: 579141510 description: Open-Api of OpenVK. Use insomnia to use it created: '2022-12-16T19:10:06Z' updated: '2022-12-16T19:23:58Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: NoPlagiarism logo: https://avatars.githubusercontent.com/u/37241775?v=4 repoEtag: '"05ee543aaa030061455da965bec62e1eea5489c75568677bb6c7b04152a16eb8"' repoLastModified: Fri, 16 Dec 2022 19:23:58 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/christianhelle/refitter-action v3: true id: 896749e54ed5a10569450d472c645c45 repositoryMetadata: base64Readme: >- IyBSZWZpdHRlciBHaXRodWIgQWN0aW9uCkdlbmVyYXRlIGEgUmVmaXQgY2xpZW50IGludGVyZmFjZSBhbmQgY29udHJhY3RzIGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBkb2N1bWVudCB1c2luZyBbUmVmaXR0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikuCgojIyBJbnB1dHMKCiMjIyBgb3BlbmFwaS1maWxlYApUaGUgcGF0aCB0byB0aGUgT3BlbkFQSSBkb2N1bWVudCAoYm90aCBKU09OIGFuZCBZQU1MIGFyZSBzdXBwb3J0ZWQpLiBEZWZhdWx0cyB0byAib3BlbmFwaS5qc29uIiAoaS5lLiBhIGZpbGUgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGNhbGxlZCBvcGVuYXBpLmpzb24pLiBQYXRocyB0aGF0IGRvIG5vdCBzdGFydCB3aXRoIGAvYCBhcmUgYXNzdW1lZCB0byBiZSByZWxhdGl2ZSB0byB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeS4KCiMjIyBgb3BlbmFwaS11cmxgClRoZSBVUkwgdG8gbG9hZCB0aGUgT3BlbkFQSSBkb2N1bWVudCBmcm9tLiBJZiBzZXQsIGBvcGVuYXBpLWZpbGVgIHdpbGwgYmUgaWdub3JlZC4KCiMjIyBgbmFtZXNwYWNlYApUaGUgZGVmYXVsdCBuYW1lc3BhY2UgdXNlZCBmb3IgdGhlIGdlbmVyYXRlZCB0eXBlcyAoZGVmYXVsdDogYEdlbmVyYXRlZENvZGVgKQoKIyMjIGB1c2UtYXBpLXJlc3BvbnNlYApSZXR1cm4gYFRhc2s8SUFwaVJlc3BvbnNlPFQ+PmAgaW5zdGVhZCBvZiBgVGFzazxUPmAKCiMjIyBgY2FuY2VsbGF0aW9uLXRva2Vuc2AKVXNlIGNhbmNlbGxhdGlvbiB0b2tlbnMKCiMjIyBgY29tbWFuZC1hcmdzYApBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRocm91Z2ggdG8gdGhlIFtSZWZpdHRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyKSBDTEkgdG9vbC4KCiMjIyBgcHVibGlzaC1hcnRpZmFjdHNgClNldHRpbmcgdGhpcyB3aWxsIHB1Ymxpc2ggdGhlIGdlbmVyYXRlZCBjb2RlIGFzIEMjIGZpbGVzIGFzIGJ1aWxkIGFydGlmYWN0cwoKIyMjIGBjbGllbnQtc2RrYApTZXR0aW5nIHRoaXMgd2lsbCBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgTnVHZXQgcGFja2FnZSBhbmQgcHVibGlzaCB0aGlzIGFzIGEgYnVpbGQgYXJ0aWZhY3QuIFRoZSBmb2xsb3dpbmcgaW5wdXRzIGFyZSAqKipSZXF1aXJlZCoqKiB3aGVuIGBjbGllbnQtc2RrYCBpcyBlbmFibGVkCgotICMjIyBgY2xpZW50LXNkay12ZXJzaW9uYCAtIFRoZSB2ZXJzaW9uIG51bWJlciB1c2VkIGZvciB0aGUgTnVHZXQgcGFja2FnZSAoZGVmYXVsdDogYDEuMC4ke3sgZ2l0aHViLnJ1bl9udW1iZXIgfX1gKQotICMjIyBgY2xpZW50LXNkay10YXJnZXQtZnJhbWV3b3JrYCAtIFRoZSB0YXJnZXQgZnJhbWV3b3JrIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBDbGllbnQgU0RLIChkZWZhdWx0OiBgbmV0Ni4wYCkKLSAjIyMgYGNsaWVudC1zZGstcGFja2FnZS1pZGAgLSBUaGUgdmFsdWUgdXNlZCBhcyBgPFBhY2thZ2VJZD5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgTnVHZXQgcGFja2FnZQotICMjIyBgY2xpZW50LXNkay10aXRsZWAgLSBUaGUgdmFsdWUgdXNlZCBhcyBgPFRpdGxlPmAgZm9yIHBhY2thZ2UgdGhlIGdlbmVyYXRlZCBjb2RlIGludG8gYSBOdUdldCBwYWNrYWdlCi0gIyMjIGBjbGllbnQtc2RrLXJvb3QtbmFtZXNwYWNlYCAtIFRoZSB2YWx1ZSB1c2VkIGFzIGA8Um9vdE5hbWVzcGFjZT5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIC0gYSBOdUdldCBwYWNrYWdlCi0gIyMjIGBjbGllbnQtc2RrLWFzc2VtYmx5YCAtIFRoZSB2YWx1ZSB1c2VkIGFzIGA8QXNzZW1ibHlOYW1lPmAgZm9yIHBhY2thZ2UgdGhlIGdlbmVyYXRlZCBjb2RlIGludG8gYSAtIE51R2V0IHBhY2thZ2UKLSAjIyMgYGNsaWVudC1zZGstYXV0aG9yc2AgLSBUaGUgdmFsdWUgdXNlZCBhcyBgPEF1dGhvcnM+YCBmb3IgcGFja2FnZSB0aGUgZ2VuZXJhdGVkIGNvZGUgaW50byBhIE51R2V0IC0gcGFja2FnZQotICMjIyBgY2xpZW50LXNkay1jb21wYW55YCAtIFRoZSB2YWx1ZSB1c2VkIGFzIGA8Q29tcGFueT5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgTnVHZXQgLSBwYWNrYWdlCi0gIyMjIGBjbGllbnQtc2RrLXByb2R1Y3RgIC0gVGhlIHZhbHVlIHVzZWQgYXMgYDxQcm9kdWN0PmAgZm9yIHBhY2thZ2UgdGhlIGdlbmVyYXRlZCBjb2RlIGludG8gYSBOdUdldCAtIHBhY2thZ2UKLSAjIyMgYGNsaWVudC1zZGstZGVzY3JpcHRpb25gIC0gVGhlIHZhbHVlIHVzZWQgYXMgYDxEZXNjcmlwdGlvbj5gIGZvciBwYWNrYWdlIHRoZSBnZW5lcmF0ZWQgY29kZSBpbnRvIGEgLSBOdUdldCBwYWNrYWdlCi0gIyMjIGBjbGllbnQtc2RrLWxpY2Vuc2VgIC0gVGhlIHZhbHVlIHVzZWQgYXMgYDxQYWNrYWdlTGljZW5zZUV4cHJlc3Npb24+YCBmb3IgcGFja2FnZSB0aGUgZ2VuZXJhdGVkIGNvZGUgLSBpbnRvIGEgTnVHZXQgcGFja2FnZQotICMjIyBgY2xpZW50LXNkay1wcm9qZWN0LXVybGAgLSBUaGUgdmFsdWUgdXNlZCBhcyBgPFBhY2thZ2VQcm9qZWN0VXJsPmAgYW5kIGA8UmVwb3NpdG9yeVVybD5gIGZvciBwYWNrYWdlIC0gdGhlIGdlbmVyYXRlZCBjb2RlIGludG8gYSBOdUdldCBwYWNrYWdlCi0gIyMjIGBjbGllbnQtc2RrLXJlcG9zaXRvcnktdHlwZWAgLSBUaGUgdmFsdWUgdXNlZCBhcyBgPFJlcG9zaXRvcnlUeXBlPmAgZm9yIHBhY2thZ2UgdGhlIGdlbmVyYXRlZCBjb2RlIGludG8gYSBOdUdldCBwYWNrYWdlCgojIyBPdXRwdXRzCk5vIG91dHB1dHMgYXJlIHJldHVybmVkLiBUaGUgZ2VuZXJhdGVkIGNsaWVudCBpcyBwbGFjZWQgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBjYWxsZWQgKipPdXRwdXQuY3MqKiB3aGljaCBjb250YWlucyBib3RoIHRoZSBSZWZpdCBpbnRlcmZhY2UgYW5kIHRoZSBjb250cmFjdCB0eXBlcyB1c2VkIGJ5IHRoZSBBUEkKCgojIEV4YW1wbGVzCgojIyMgVXNpbmcgYSBGaWxlIGZvciBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGRvY3VtZW50CgpgYGB5YW1sCmpvYnM6CiAgc21va2UtdGVzdC11cmw6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYzCiAgICAgIAogICAgICAjIFVzZSB0aGUgYWN0aW9uIHRvIGdlbmVyYXRlIGEgUmVmaXQgY2xpZW50IGludGVyZmFjZQogICAgICAjIFRoaXMgcHJvZHVjZXMgYSBmaWxlIGNhbGxlZCBPdXRwdXQuY3MgYXMgYSBidWlsZCBhcnRpZmFjdAogICAgICAtIHVzZXM6IGNocmlzdGlhbmhlbGxlL3JlZml0dGVyLWFjdGlvbkBtYWluCiAgICAgICAgbmFtZTogR2VuZXJhdGUgUmVmaXQgQ2xpZW50CiAgICAgICAgd2l0aDogICAgICAgIAogICAgICAgICAgb3BlbmFwaS1maWxlOiBvcGVuYXBpLmpzb24KICAgICAgICAgIG5hbWVzcGFjZTogQ2hyaXN0aWFuSGVsbGUuRXhhbXBsZXMuUGV0c3RvcmUudjMKICAgICAgCiAgICAgICMgRG8gc29tZXRoaW5nIHdpdGggdGhlIGdlbmVyYXRlZCBjbGllbnQgKGxpa2UgaW5jbHVkZSBpdCBpbiBhbiBleGlzdGluZyBwcm9qZWN0KQogICAgICAtIHJ1bjogR2V0LUNvbnRlbnQgT3V0cHV0LmNzIHwgV3JpdGUtSG9zdAogICAgICAgIHNoZWxsOiBwd3NoCmBgYAoKIyMjIFVzaW5nIGEgVVJMIGFuZCBwcm9kdWNpbmcgYSBDbGllbnQgU0RLIE51R2V0IHBhY2thZ2UKCmBgYHlhbWwKam9iczoKICBzbW9rZS10ZXN0LXVybC13aXRoLWNsaWVudC1zZGs6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYzCiAgICAgIAogICAgICAjIFVzZSB0aGUgYWN0aW9uIHRvIGdlbmVyYXRlIGEgUmVmaXQgY2xpZW50IGludGVyZmFjZQogICAgICAjIFRoaXMgcHJvZHVjZXMgYSBOdUdldCBwYWNrYWdlIGFzIGEgYnVpbGQgYXJ0aWZhY3QKICAgICAgLSB1c2VzOiBjaHJpc3RpYW5oZWxsZS9yZWZpdHRlci1hY3Rpb25AbWFpbgogICAgICAgIG5hbWU6IEdlbmVyYXRlIFJlZml0IENsaWVudCBTREsKICAgICAgICB3aXRoOgogICAgICAgICAgb3BlbmFwaS11cmw6IGh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbgogICAgICAgICAgbmFtZXNwYWNlOiBDaHJpc3RpYW5IZWxsZS5FeGFtcGxlcy5QZXRzdG9yZS52MwogICAgICAgICAgY2xpZW50LXNkazogdHJ1ZQogICAgICAgICAgY2xpZW50LXNkay12ZXJzaW9uOiAzLjAuJHt7IGdpdGh1Yi5ydW5fbnVtYmVyIH19CiAgICAgICAgICBjbGllbnQtc2RrLXBhY2thZ2UtaWQ6IENocmlzdGlhbkhlbGxlLkV4YW1wbGVzLlBldHN0b3JlLnYzCiAgICAgICAgICBjbGllbnQtc2RrLXRpdGxlOiBDaHJpc3RpYW5IZWxsZS5FeGFtcGxlcy5QZXRzdG9yZS52MwogICAgICAgICAgY2xpZW50LXNkay1yb290LW5hbWVzcGFjZTogQ2hyaXN0aWFuSGVsbGUuRXhhbXBsZXMuUGV0c3RvcmUudjMKICAgICAgICAgIGNsaWVudC1zZGstYXNzZW1ibHk6IENocmlzdGlhbkhlbGxlLkV4YW1wbGVzLlBldHN0b3JlLnYzCiAgICAgICAgICBjbGllbnQtc2RrLXByb2R1Y3Q6IENocmlzdGlhbkhlbGxlLkV4YW1wbGVzLlBldHN0b3JlLnYzCiAgICAgICAgICBjbGllbnQtc2RrLWF1dGhvcnM6IENocmlzdGlhbiBSZXNtYSBIZWxsZQogICAgICAgICAgY2xpZW50LXNkay1jb21wYW55OiBDaHJpc3RpYW4gUmVzbWEgSGVsbGUKICAgICAgICAgIGNsaWVudC1zZGstZGVzY3JpcHRpb246IEV4YW1wbGUgZ2VuZXJhdGVkIGNvZGUgdXNpbmcgUmVmaXR0ZXIgYW5kIHRoZSBTd2FnZ2VyIFBldHN0b3JlIHYzIGV4YW1wbGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucwogICAgICAgICAgY2xpZW50LXNkay1wcm9qZWN0LXVybDogaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyLWFjdGlvbgpgYGA= readmeEtag: '"9494f135d029b64e34399b1799b5c43cc0b2c2ff"' readmeLastModified: Mon, 12 Jun 2023 21:49:28 GMT repositoryId: 640287071 description: Generate Refit API Client using Refitter created: '2023-05-13T15:34:09Z' updated: '2023-05-15T20:33:59Z' language: null archived: false stars: 0 watchers: 3 forks: 0 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: GPL-3.0 repoEtag: '"7985e40165a4dc984c061daebfc547b23bc2a2395d30e37b74e78abda1acfba5"' repoLastModified: Mon, 15 May 2023 20:33:59 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/ekoulemaneng/openapi-security-retriever v3: true id: b19330aebed83b7c5d395eacf404f955 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNlY3VyaXR5IFJldHJpZXZlcgoKVHlwZXNjcmlwdCBwYWNrYWdlIHRvIHJldHJpZXZlIHNlY3VyaXR5IG1lY2hhbmlzbSBpbmZvcm1hdGlvbnMgZnJvbSBhbiBvcGVyYXRpb24gaW4gY29tcGxpYW5jZSB3aXRoIGFuIE9wZW5BcGkgc3BlY2lmaWNhdGlvbi4gRm9yIDMuMS54IGFuZCAzLjAueCBPcGVuQVBJIHZlcnNpb25zLgoKIyMgSW5zdGFsbGF0aW9uCmBgYHR5cGVzY3JpcHQKbnBtIGluc3RhbGwgb3BlbmFwaS1zZWN1cml0eS1yZXRyaWV2ZXIgCmBgYApvcgpgYGB0eXBlc2NyaXB0Cnlhcm4gYWRkIG9wZW5hcGktc2VjdXJpdHktcmV0cmlldmVyCmBgYAoKIyMgVXNhZ2UKYGBgdHlwZXNjcmlwdAppbXBvcnQgc2VjdXJpdHlSZXRyaWV2ZXIgZnJvbSAnb3BlbmFwaS1zZWN1cml0eS1yZXRyaWV2ZXInCmltcG9ydCBzY2hlbWFSZXRyaWV2ZXIgZnJvbSAnb3BlbmFwaS1zY2hlbWEtcmV0cmlldmVyJwoKbGV0IHNjaGVtYQoKY29uc3QgbWFpbiA9IGFzeW5jICgpID0+IHsKCiAgICAvKiBGaXJzdCwgYnkgc2NoZW1hUmV0cmlldmVyLCBnZXQsIGNoZWNrIGFuZCBwYXJzZSB0aGUgb3BlbmFwaSBzcGVjaWZpY2F0aW9uIHRoYXQgY2FuIGJlIGFuIG9iamVjdCBvciBhbiBmaWxlIHBhdGggc3RyaW5nLgogICAgICogSWYgdGhlIHNwZWNpZmljYXRpb24gaW5wdXQgaXMgYSBmaWxlIHBhdGggc3RyaW5nLCBhIHNlY29uZCBhcmd1bWVudCBzdGFuZGluZyBmb3IgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgaXMgbWFuZGF0b3J5LgogICAgICogV2UgcmVjb21tZW5kIHRvIHVzZSAnX19kaXJuYW1lJyBhcyBzZWNvbmQgYXJndW1lbnQuCiAgICAgKiBUaGUgZmlsZSBtdXN0IGJlIGVpdGhlciBhIGpzb24sIGEgeWFtbCBvciBhIHltbCBmaWxlLiAKICAgICAqIHNwZWNCdWlsZGVyIHJldHVybnMgYW4gb2JqZWN0IGluIGFjY29yZGFuY2Ugd2l0aCBPcGVuQVBJIHNjcGVjaWZpY2F0aW9uLgogICAgKi8KICAgIGNvbnN0IHNjaGVtYSA9IGF3YWl0IHNjaGVtYVJldHJpZXZlcignLi9vcGVuYXBpLnlhbWwnLCBfX2Rpcm5hbWUpCgogICAgLyoKICAgICAqIHNlY3VyaXR5UmV0cmlldmVyIHRha2VzIDMgbWFuZGF0b3J5IGFyZ3VtZW50czogYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIG9iamVjdCwgYSBzdHJpbmcgYXMgYSBzY2hlbWEgcGF0aCwgYW5kIGEgc3RyaW5nIGFzIGEgaHR0cCByZXF1ZXN0IG1ldGhvZC4KICAgICovCiAgICBjb25zdCBzZWN1cml0eSA9IHNlY3VyaXR5UmV0cmlldmVyKHNjaGVtYSwgJy9wcm9kdWN0cycsICdnZXQnKQoKICAgIGNvbnNvbGUubG9nKHNlY3VyaXR5KSAvLyA9PiB7IHNlY3VyZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgc2VjdXJpdGllczogWyBKd3RPYXV0aDogeyB0eXBlOiAnaHR0cCcsIHNjaGVtZTogJ2JlYXJlcicsIHNjb3BlczogWydhZG1pbiddIH0gXSB9IHwgbnVsbCAKICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAnbnVsbCcgaWYgb3BlcmF0aW9uIGlzIG5vdCBmb3VuZCBpbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uCn0KCm1haW4oKQpgYGAKCiMjIE91dHB1dCBzdHJ1Y3R1cmUKClRoZSBvdXRwdXQgb2YgdGhlIG1vZHVsZSwgb25jZSBjYWxsZWQsIGlzIGFuIG9iamVjdCB3aG9zZSB0aGUgc3RydWN0dXJlIGlzOgpgYGB0eXBlc2NyaXB0CnsKICAgIHNlY3VyZWQ6IGJvb2xlYW4sIC8vIGluZGljYXRlcyB3aGV0aGVyIHRoZSBvcGVyYXRpb24gcmVxdWlyZXMgYXV0aGVudGljYXRpb24KICAgIG9wdGlvbmFsOiBib29sZWFuLCAvLyBpbmRpY2F0ZXMgd2hldGhlciBhdXRoZW50aWNhdGlvbiBpcyBvcHRpb25hbCBvciBtYW5kYXRvcnkKICAgIHNlY3VyaXRpZXM6IFtPYmplY3RdIC8vIGdpdmVzIGxpc3Qgb2Ygc2VjdXJpdHkgbWVjaGFuaXNtcwp9CmBgYApUaGUgYWJvdmUtbWVudGlvbmVkIE9iamVjdCBpcyBzdHJ1Y3R1cmVkIGFzIGZvbGxvd3M6CmBgYHR5cGVzY3JpcHQKewogICAge25hbWV9OiB7CiAgICAgICAgICAgICAgICB0eXBlOiAnYXBpS2V5JywKICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZywKICAgICAgICAgICAgICAgIGluOiBzdHJpbmcsCiAgICAgICAgICAgICAgICBzY29wZXM6IFtzdHJpbmddCiAgICAgICAgICAgIH0gfCB7CiAgICAgICAgICAgICAgICB0eXBlOiAnaHR0cCcsCiAgICAgICAgICAgICAgICBzY2hlbWU6IHN0cmluZywKICAgICAgICAgICAgICAgIGJlYXJlckZvcm1hdD86IHN0cmluZywKICAgICAgICAgICAgICAgIHNjb3BlczogW3N0cmluZ10KICAgICAgICAgICAgfSB8IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdvYXV0aDInLAogICAgICAgICAgICAgICAgZmxvd3M6IHsKICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGljaXQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvblVybDogc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoVXJsPzogc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZXM6IFtzdHJpbmddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlblVybDogc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoVXJsPzogc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZXM6IFtzdHJpbmddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRDcmVkZW50aWFsczogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlblVybDogc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoVXJsPzogc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZXM6IFtzdHJpbmddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uQ29kZTogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uVXJsOiBzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuVXJsOiBzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hVcmw/OiBzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlczogW3N0cmluZ10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgc2NvcGVzOiBbc3RyaW5nXQogICAgICAgICAgICB9IHwgewogICAgICAgICAgICAgICAgdHlwZTogJ29wZW5JZENvbm5lY3QnLAogICAgICAgICAgICAgICAgb3BlbklkQ29ubmVjdFVybDogc2VjdXJpdHlTY2hlbWUub3BlbklkQ29ubmVjdFVybCwKICAgICAgICAgICAgICAgIHNjb3BlczogW3N0cmluZ10KICAgICAgICAgICAgfQp9CmBgYAoKIyMgTGljZW5zZQpUaGlzIHBhY2thZ2UgaXMgbGljZW5zZWQgdW5kZXIgdGhlIFtNSVQgTGljZW5zZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQpLgoKIyMgQ29udGFjdApJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIG9yIGlzc3VlcywgcGxlYXNlIGNvbnRhY3QgdGhlIHBhY2thZ2UgbWFpbnRhaW5lciBhdCBla291bGVtYW5lbmdAZ21haWwuY29tLgo= readmeEtag: '"6b55383fbd5b3d8307eb75ca010458989956b94c"' readmeLastModified: Mon, 08 May 2023 15:25:58 GMT repositoryId: 637176290 description: >- Typescript package to retrieve security mechanism information from an operation in compliance with an OpenApi specification. For 3.1.x and 3.0.x OpenAPI versions. created: '2023-05-06T18:38:00Z' updated: '2023-05-12T04:02:56Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: ekoulemaneng logo: https://avatars.githubusercontent.com/u/12666431?v=4 license: MIT repoEtag: '"a54b2c7f0ed51be5168058e54723f062e83507d6ed6bbe72951ce1c0c37320f7"' repoLastModified: Fri, 12 May 2023 04:02:56 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/lordent/openapi-doc v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWRvYwpPcGVuQVBJIHYzIGRvYyBkZWNvcmF0b3JzIGZvciBhc3luYyBzYW5pYyB3ZWJmcmFtZWZvcmsK readmeEtag: '"f3c1d56ecc056bff36106ef7a17268fda52a5c5a"' readmeLastModified: Thu, 29 Mar 2018 14:50:33 GMT repositoryId: 118631521 description: OpenAPI v3 doc decorators created: '2018-01-23T15:44:55Z' updated: '2018-03-29T14:50:45Z' language: Python archived: false stars: 0 watchers: 2 forks: 0 owner: lordent logo: https://avatars.githubusercontent.com/u/2070895?v=4 license: MIT repoEtag: '"ee32c30854accff26f7a74fb9989c0ce1fbcd80dd3f75bd0fc3e518f211cf2e5"' repoLastModified: Thu, 29 Mar 2018 14:50:45 GMT foundInMaster: true category: - Server - Parsers id: 58b6dd27f3974aae0e40f151d315bd7a - source: openapi3 tags repository: https://github.com/magnayn/belvedere v3: true repositoryMetadata: base64Readme: >- IyBCZWx2ZWRlcmUKCj4gQSBidWlsZGluZywgb3IgYXJjaGl0ZWN0dXJhbCBmZWF0dXJlIG9mIGEgYnVpbGRpbmcsIGRlc2lnbmVkIGFuZCBzaXR1YXRlZCB0byBsb29rIG91dCB1cG9uIGEgcGxlYXNpbmcgc2NlbmUuCgojIyBXcml0ZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGEgYmV0dGVyIHdheQoKKiogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGlzLCB2ZXJ5IG11Y2gsIGEgd29yayBpbiBwcm9ncmVzcyBhbmQgbm90IGEgZmluaXNoZWQgYXJ0aWNsZSEgKioKCiMjIERvY3VtZW50YXRpb24KW0luZGV4XShkb2NzL1JFQURNRS5tZCkKCgojIyMgT3BlbkFQSQoKT3BlbkFQSSBpcyBhbiBleHRyZW1lbHkgdXNlZnVsIHdheSB0byBkb2N1bWVudCB0aGUgX3NwZWNpZmljYXRpb25fIGZvciBhbiBBUEkgLSBwYXJ0aWN1bGFybHkgYmVjYXVzZSBpdCBjcmVhdGVzIGFuIGltcGxlbWVudGF0aW9uLW5ldXRyYWwgYXJ0aWZhY3QgdGhhdCBkb2N1bWVudHMgYm90aCB0aGUgY2FsbHMgYW5kIHBhcmFtZXRlcnMsIGJ1dCBhbHNvIGV4YW1wbGVzIGFuZCB1c2VmdWwgZG9jdW1lbnRhdGlvbi4KClRoZXJlIGFyZSBtYXkgZ3JlYXQgZ2VuZXJhdG9ycyAtIGRvaW5nIHRoZSB3b3JrIG9mIGltcGxlbWVudGluZyB0byBzcGVjIGluIGEgcmVsaWFibGUgd2F5LCBhbmQgZG9jdW1lbnRhdGlvbiAvIGV4cGxvcmF0aW9uIHRvb2xzLCB0aGF0IGFsbG93IHlvdSB0byBjb21tdW5pY2F0ZSB5b3VyIEFQSSB0byBhIHdpZGVyIGF1ZGllbmNlLgoKKkhvd2V2ZXIqIC0gYXMgYW4gX2F1dGhvcmluZ18gc29sdXRpb24gaXQgbGVhdmVzIG11Y2ggdG8gYmUgZGVzaXJlZC4gCgotIFRoZSB0d28gbmF0aXZlIGZvcm1hdHMgLSBKU09OIGFuZCBZQU1MIC0gYXJlIGhhcmQgdG8gd29yayB3aXRoLgoKWW91IGVuZCB1cCBlaXRoZXIgcGxheWluZyAnaHVudCB0aGUgY3VybHkgYnJhY2Ugb3IgbWlzc2luZyBxdW90ZScgb3IgZXJyb3JzIGluIGdldHRpbmcgdGhlIGluZGVudGF0aW9uIHdyb25nIGluIFlBTUwuCgotIFRoZSBuYXRpdmUgZm9ybWF0cyBhcmUgdmVyeSB2ZXJib3NlCgpUaGlzIGlzIGluZXZpdGFibGUgZ2l2ZW4gdGhhdCB0aGV5IGFyZSBsaWdodHdlaWdodCBzZXJpYWxpemF0aW9ucyB0byBhbiB1bmRlcmx5aW5nIGRhdGEgbW9kZWwuIEJ1dCwgcGFydGljdWxhcmx5IGZvciBkYXRhIHN0cnVjdHVyZXMsIGl0IGZlZWxzIGxpa2UgYSBsb3Qgb2YgbGluZXMgYXJlIHJlcXVpcmVkIHRvIHNwZWNpZnkgZXZlbiB2ZXJ5IHNpbXBsZSBEVE9zLgoKLSB2ZXJ5IGhhcmQgdG8gYnJlYWsgYXBhcnQgQVBJcyBpbnRvIG11bHRpcGxlIGZpbGVzIGFuZC9vciByZS11c2UgZXhpc3RpbmcgY29tcG9uZW50cy4gCgpUaGVyZSBhcmUgc29tZSB3YXlzIG9mIHJlZmVyZW5jaW5nIGl0ZW1zIHRocm91Z2ggWUFNTCBmaWxlIHJlZmVyZW5jZXMsIGJ1dCB0aGlzIGlzIGxpbWl0ZWQgKHBsYWNlcyB3aGVyZSBhICRyZWYgaXMgYWxsb3dlZCkuIEV2ZW4gd2hlbiBub3QgbmVlZGluZyByZS11c2UsIGl0IHdvdW9sZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8gc3BsaXQgdXAgbGFyZ2UgQVBJcyBpbnRvIHNlcGFyYXRlIHNlY3Rpb25zLgoKLSBzdWZmZXJzIGZyb20gYSBsb3Qgb2YgJ0RSWScgLSBkb24ndCByZXBlYXQgeW91cnNlbGYuIAoKRS5nOiBJZiBhbiBBUEkgaGFzIGEgc3RhbmRhcmQgcmVzcG9uc2UgdG8gYSByZXF1ZXN0IHdoaWNoIGlzICc0MDQnLCB0aGVuIHRoaXMgbWF5IGJlIHJlcGVhdGVkIG1hbnkgdGltZXMgb3ZlciAod2hpY2ggbWFrZXMgaXQgaGFyZGVyIHRvIG1ha2UgZ2xvYmFsIGNoYW5nZXMpLgoKLSBoYXJkIGlmIHlvdSB3YW50IG11bHRpcGxlIHZhcmlhbnRzCgpFLmc6IERlcGxveWluZyBpbnRvIGEgZnJvbnQtZW5kIGdhdGV3YXkgKGUuZyBBV1MgQVBJIEdhdGV3YXkpIG1heSByZXF1aXJlIGFkZGl0aW9uYWwgZXh0ZW5zaW9uIHZhbHVlcyBpbiB0aGUgT3BlbkFQSSBkZWZpbml0aW9uLiBJZGVhbGx5IHdlJ2QgbGlrZSB0byBhdXRob3IgdGhlc2UgaW4gb25lIHBsYWNlLCBidXQgd2UgZG9uJ3QgcGFydGljdWxhcmx5IHdhbnQgdGhlc2UgdG8gYmUgYSBwYXJ0IG9mIHRoZSBBUEkgZGVmaW5pdGlvbiB3ZSBnaXZlIHRvIHRoZSBwdWJsaWMuIEFsc28sIHdlIG1heSB3aXNoIHRvIGhhdmUgJ3B1YmxpYycgYW5kICdwcml2YXRlJyBtZXRob2RzIHdpdGhpbiB0aGUgc2FtZSBBUEkgLSBhdXRob3JlZCBpbiB0aGUgc2FtZSBwbGFjZSwgYnV0IHB1Ymxpc2hlZCBhcyB0d28gc2VwYXJhdGUgdmFyaWFudHMuCgojIyMgT25lIGFsdGVybmF0aXZlCgpPbmUgYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gZGVzaWduIHRoZSBBUEkgaW4gYSBzcGVjaWZpYyBsYW5ndWFnZSAoc2F5LCBKYXZhKSwgdGhlbiB1c2UgdGhlIHRvb2xpbmcgKHdoaWNoIGV4aXN0cyBhbHJlYWR5KSB0byBhdXRvLWRvY3VtZW50ICJ3aGF0IGl0IHNlZXMiLgoKVGhpcyBtYXkgaGF2ZSBpdCdzIHVzZXMgLSBhbmQgaW5kZWVkIHRoaXMgdG9vbCBtYXkgYmUgZXh0ZW5kZWQgdG8gYWxsb3cgZGVmaW5pdGlvbnMgaW4gbXVsdGlwbGUgZm9ybWF0cyAtIGJ1dCwgaWYgeW91IGxvb2sgYXQgdGhlIGNvZGUgZ2VuZXJhdGVkIGZvciwgc2F5LCBKYXZhIC0gaXQgaXMgdmVyeSBhbm5vdGF0aW9uLWhlYXZ5LCBhbmQgaXRzZWxmIG5vdCBuZWNjZXNhcmlseSBhIHBsZWFzYW50IHdheSB0byBfYXV0aG9yXyBzcGVjaWZpY2F0aW9uLgoKIyMgQmVsdmVkZXJlCgpCZWx2ZWRlcmUgbGV2ZXJhZ2VzIGdyb292eSB0byBkZWZpbmUgYSBEU0wgKERvbWFpbiBTcGVjaWZpYyBMYW5ndWFnZSkgZm9yIHNwZWNpZnlpbmcgT3BlbkFQSSBzdHJ1Y3R1cmVzLiBUaHVzLCB0aGUgaW5wdXQgaXMgJ0JlbHZlZGVyZSBEU0wnLCBhbmQgdGhlIG91dHB1dCBpcyAnT3BlbkFQSSBZQU1MJy4gCgpTaW5jZSBpdCBpcyBidWlsdCBhcyBhIERTTCwgdGhpcyBlbmFibGVzIGxhbmd1YWdlIGZlYXR1cmVzIHRvIHNpbXBsaWZ5IEFQSSBzcGVjaWZpY2F0aW9ucywgYW5kIGV2ZW4gYWRkIG1ldGFwcm9ncmFtbWluZyBpbiBtb3JlIGNvbXBsZXggc2NlbmFyaW9zLgoKVGhlIERTTCBpcyBkaXJlY3RseSBtYXBwZWQgdG8gdGhlIHVuZGVybHlpbmcgT3BlbkFQSSBtb2RlbCAtIHNvIGl0IHNob3VsZCBiZSB2ZXJ5IGZhbWlsaWFyIHRvIGV4aXN0aW5nIGF1dGhvcnMuIFRoZXJlIHdpbGwgYWxzbyBiZSBjb252ZXJ0ZXJzIHRvIGFjY2VwdCBPcGVuQVBJIEFQSSBkZWZpbml0aW9ucyBhbmQgY29udmVydCB0aGVzZSB0byB0aGUgRFNMIGF1dGhvcmluZyBmb3JtYXQuCgojIyMgRXhhbXBsZXMKClRoaXMgWUFNTDoKYGBgeWFtbAppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IFN3YWdnZXIgUGV0c3RvcmUKICBsaWNlbnNlOgogICAgbmFtZTogTUlUCmBgYAogICAgCmlzIGVxdWl2YWxlbnQgdG8gdGhpcyBEU0wKCmBgYGdyb292eQppbmZvIHsgICAgICAgIAogICAgICAgIHRpdGxlICJTd2FnZ2VyIFBldHN0b3JlIgogICAgICAgIHZlcnNpb24gIjEuMC4wIgogICAgICAgIGxpY2Vuc2UgewogICAgICAgICAgICBuYW1lICJNSVQiCiAgICAgICAgfQogICAgfQpgYGAgICAgCiAgICAKIyMgRGVmaW5pbmcgYSBwYXRoOgoKYGBgZ3Jvb3Z5CgpwYXRoKCIvcGV0cy97aWR9IikgewogICAgICAgCiAgICAgICAgb3BlcmF0aW9uKE9wZXJhdGlvblR5cGUuR0VULCAnZ2V0UGV0JykgewogICAgICAgICAgICByZXNwb25zZSgnMjAwJykgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBldCBzdWNjZXNzZnVsbHkgZm91bmQiCiAgICAgICAgICAgICAgICBjb250ZW50KCdhcHBsaWNhdGlvbi9qc29uJykgewogICAgICAgICAgICAgICAgICAgIHNjaGVtYSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlZiBzY2hlbWE6ICdQZXQnCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogIC8qIC4uIG1vcmUgQVBJcyAuLiAqLwp9CmBgYAoKIyMgQXZvaWRpbmcgRFJZCgpZb3UgY2FuIGRlZmluZSBmdW5jdGlvbnMsIHRoZW4gZXZhbHVhdGUgdGhlbSBpbiBldmVyeSBkZWNsYXJlZCBvcGVyYXRpb24gdG8gYXZvaWQgcmVwZWF0ZWQgc3BlY2lmaWNhdGlvbi4gRS5nOgoKYGBgZ3Jvb3Z5CnBhdGgoIi9wZXRzL3tpZH0iKSB7CgogICAgICAgIGNvbW1vbl9wYXJhbWV0ZXJzID0gewogICAgICAgICAgICB0YWdzICJQZXRzIgoKICAgICAgICAgICAgcGFyYW1ldGVyKGlkOiBTdHJpbmcsIGluOiAncGF0aCcpIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgSUQgb2YgdGhlIHBldCIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzcG9uc2UoJzQwNCcpIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgcGV0IHdhcyBub3QgZm91bmQiCiAgICAgICAgICAgIH0KCgogICAgICAgIH0KCiAgICAgICAgb3BlcmF0aW9uKE9wZXJhdGlvblR5cGUuR0VULCAnZ2V0UGV0JykgewogICAgICAgICAgICBldmFsdWF0ZSBjb21tb25fcGFyYW1ldGVyczsgLy8gPC0tIEluY2x1ZGUgZXZlcnl0aGluZyBhYm92ZQoKICAgICAgICAgICAgcmVzcG9uc2UoJzIwMCcpIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQZXQgc3VjY2Vzc2Z1bGx5IGZvdW5kIgogICAgICAgICAgICAgICAgY29udGVudCgnYXBwbGljYXRpb24vanNvbicpIHsKICAgICAgICAgICAgICAgICAgICBzY2hlbWEgewogICAgICAgICAgICAgICAgICAgICAgICByZWYgc2NoZW1hOiAnUGV0JwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gICAKfQpgYGAKCiMjIEluY2x1ZGluZyBmaWxlcwoKRmlsZXMgY2FuIGJlIGluY2x1ZGVkIHRocm91Z2ggdGhlaXIgcmVsYXRpdmUgcGF0aDoKCmBgYGdyb292eQogICBjb21wb25lbnRzIHsKICAgICAgICBpbmNsdWRlICdzY2hlbWEvY29tbW9uL0FzeW5jUmVzcG9uc2Uuc2NoZW1hJyAvLyBJbmNsdWRlZCBmaWxlCiAgICAgICAgCiAgICAgICAgLy8gT3Igc3BlY2lmeSBkaXJlY3RseSBoZXJlCiAgICAgICAgc2NoZW1hKCdUaGluZycpIHsKICAgICAgICAgICAgcmVxdWlyZWQgc2NoZW1hIChpZDpTdHJpbmcpIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJJZGVudGlmaWVyIGZvciB0aGlzIHRoaW5nIgogICAgICAgICAgICB9CgogICAgICAgICAgICBzY2hlbWEoJ3JlYXNvbic6U3RyaW5nKSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiUmVhc29uIGZvciB0aGUgcmVxdWVzdCIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc2NoZW1hKCdyZXF1aXJlbWVudHMnKSB7CiAgICAgICAgICAgICAgICBzY2hlbWEobmFtZTpTdHJpbmcpCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICB9CmBgYCAgIAoKIyMjIFF1aWNrc3RhcnQ6CgoKIyMjIyBVc2UgdGhyb3VnaCBkb2NrZXIKCiogQ29udmVydGluZyBhIHNpbmdsZSwgaXNvbGF0ZWQgZmlsZSAobm90IHN1aXRhYmxlIGlmIHlvdSB1c2UgaW5jbHVkZXMpCgpgYGBiYXNoIApkb2NrZXIgcnVuIC1pIG1hZ25heW4vYmVsdmVkZXJlIGNvbnZlcnQgLSA8ICB+L215ZmlsZS5hcGkgID4gfi9teWZpbGUueWFtbApgYGAKCiogQ29udmVydGluZyBhIGZpbGUKCmBgYGJhc2gKZG9ja2VyIHJ1biAtdiB+L2FwaTovYXBpIC1pIG1hZ25heW4vYmVsdmVkZXJlIGNvbnZlcnQgLWYgL2FwaS9jcnVkMS5hcGkgPiB+L2FwaS9jcnVkMS55YW1sCmBgYAoK readmeEtag: '"a94e4fab266465b754d41e2020bed730dff92543"' readmeLastModified: Fri, 21 Feb 2020 11:35:05 GMT repositoryId: 202089566 description: Write OpenAPI specifications an easier way created: '2019-08-13T07:31:50Z' updated: '2020-02-21T11:35:18Z' language: Groovy archived: false stars: 0 watchers: 3 forks: 1 owner: magnayn logo: https://avatars.githubusercontent.com/u/53653?v=4 license: Apache-2.0 repoEtag: '"88dffa9e67f340010835fe012607442e4f64975a9bb61ce54a286cf2ea485f81"' repoLastModified: Fri, 21 Feb 2020 11:35:18 GMT foundInMaster: true category: Parsers id: 01f3b0bfcfe34c56388b7931774c15a3 - source: openapi3 tags repository: https://github.com/britishgas-engineering/openapi3-joiner v3: true repositoryMetadata: base64Readme: >- IyBPcGVuIEFQSSAzIGpvaW5lcgpOb2RlIHNjcmlwdCB0byBtZXJnZSBtdWx0aXBsZSBPcGVuIEFQSSAzIHNwZWNpZmljYXRpb25zIGludG8gc2luZ2xlIHNwZWNpZmljYXRpb24KCkluIGEgbWljcm9zZXJ2aWNlIGFyY2hpdGVjdHVyZSwgZWFjaCBtaWNyb3NlcnZpY2UgaGFzIGl0cyBvd24gQVBJIGRvY3VtZW50YXRpb24uCk9mdGVuIHRoZSBhcGlzIGFyZSBleHBvc2VkIGJlaGluZCBhbiBBUEkgZ2F0ZXdheSB0byBnaXZlIHNpbmdsZSBpbnRlcmZhY2UgdG8gdGhlIGNsaWVudHMuClRoYXQgY3JlYXRlcyBhIG5lZWQgdG8gaGF2ZSBhIHNpZ2xlIEFQSSBzcGVjaWZpY2F0aW9uLgoKVGhpcyBzY3JpcHQgaXMgYSB0b29sIHRvIG1lcmdlIG11bHRpcGxlIE9wZW4gQVBJIDMgc3BlY2lmaWNhdGlvbnMgKGpzb24gb3IgeWFtbCkgCmludG8gYSBzaW5nbGUgc3BlY2lmaWNhdGlvbgoKIyBIb3cgdG8gcnVuPwpgbnBtIGluc3RhbGxgCgpgbm9kZSBpbnZva2UuanNgCihQbGVhc2UgcmVmZXIgW2ludm9rZS5qc10oLi9pbnZva2UuanMpIGZvciBtb3JlIGRldGFpbHMpCgo= readmeEtag: '"bee7a1f0b50224fa98824fe5cdc94275b5a2d7ec"' readmeLastModified: Fri, 15 Feb 2019 15:19:00 GMT repositoryId: 170882510 description: >- Node script to merge multiple Open API 3 specifications into single specification created: '2019-02-15T15:03:48Z' updated: '2019-11-08T11:17:52Z' language: JavaScript archived: false stars: 0 watchers: 4 forks: 0 owner: britishgas-engineering logo: https://avatars.githubusercontent.com/u/23475527?v=4 license: MIT repoEtag: '"c7fe5ffc9652e239bad4d9ad3a4303be49dd6b3233adcf6c4704024db9bc14cd"' repoLastModified: Fri, 08 Nov 2019 11:17:52 GMT foundInMaster: true category: - Documentation - Parsers - Server Implementations id: 902a9f21d76febce5d2241c568a39909 - source: openapi3 tags repository: https://github.com/zemanlx/openapi-spec-validator v3: true repositoryMetadata: base64Readme: >- IyBEb2NrZXIgaW1hZ2UgZm9yIG9wZWFuYXBpLXNwZWMtdmFsaWRhdG9yCgpJbWFnZXMgYXJlIGJhc2VkIG9uIFB5dGhvbiBvbiBBbHBpbmUgYW5kIGNvbnRhaW5zIG9ubHkgYWRkZWQgW29wZW5hcGktc3BlYy12YWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9wMWMydS9vcGVuYXBpLXNwZWMtdmFsaWRhdG9yKS4KClRhZ3MgYXJlIGNvcHlpbmcgdmFsaWRhdG9yIHZlcnNpb24uCgojIyBVc2FnZQoKTGV0cyBzYXkgdGhhdCB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBpcyBpbiB5b3VyIGN1cnJlbnQgZm9sZGVyIGluIGZvbGRlciBgc3BlY2AgaW4gZmlsZSBgb3BlbmFwaS55YW1sYC4gVG8gdmFsaWRhdGUgaXQgcnVuCgpgYGBiYXNoCmRvY2tlciBydW4gXAogIC0tcm0gXAogIC0tdm9sdW1lICR7UFdEfS9zcGVjOi9zcGVjIFwKICB6ZW1hbmx4L29wZW5hcGktc3BlYy12YWxpZGF0b3I6MC4yLjAgXAogIC9zcGVjL29wZW5hcGkueWFtbApgYGAK readmeEtag: '"01c77261c4619ab000864863fc22b4e89c22c75b"' readmeLastModified: Fri, 18 May 2018 12:55:41 GMT repositoryId: 133953552 description: Docker image for opeanapi-spec-validator created: '2018-05-18T12:48:32Z' updated: '2018-05-18T14:14:49Z' language: Shell archived: false stars: 0 watchers: 2 forks: 0 owner: zemanlx logo: https://avatars.githubusercontent.com/u/18702153?v=4 license: MIT repoEtag: '"8854d40ce8a411b0573456ac2be5e8d2b2a4ad5b082f24269a68bbe2c63a0724"' repoLastModified: Fri, 18 May 2018 14:14:49 GMT foundInMaster: true category: - Description Validators - Parsers id: 9457be94322926df039e28ee1f8dfa63 - source: openapi3 tags repository: https://github.com/shaswatsaxena/task-management v3: true repositoryMetadata: base64Readme: >- IyMgRGVzY3JpcHRpb24KClRhc2sgTWFuYWdlbWVudCBBUEkuCgojIyBJbnN0YWxsYXRpb24KCmBgYGJhc2gKJCBucG0gaW5zdGFsbApgYGAKCi0gUmVxdWlyZXMgUG9zdGdyZVNRTCBpbnN0YW5jZSBydW5uaW5nCi0gUHJvdmlkZSB2YWx1ZXMgdG8gYWxsIHNhbXBsZS5lbnYgdmFyaWFibGVzCi0gUmVuYW1lIHNhbXBsZS5lbnYgdG8gLmVudgoKIyMgUnVubmluZyB0aGUgYXBwCgpgYGBiYXNoCiMgZGV2ZWxvcG1lbnQKJCBucG0gcnVuIHN0YXJ0CgojIHdhdGNoIG1vZGUKJCBucG0gcnVuIHN0YXJ0OmRldgoKIyBwcm9kdWN0aW9uIG1vZGUKJCBucG0gcnVuIHN0YXJ0OnByb2QKYGBgCgojIyBUZXN0CgpDcmVhdGUgYSBkYXRhYmFzZSBuYW1lZCAiZTJlX3Rlc3QiIHRvIGJlIHVzZWQgZm9yIHRlc3RpbmcuCgpgYGBiYXNoCiMgZW5kIHRvIGVuZCB0ZXN0cwokIG5wbSBydW4gdGVzdApgYGAKCi0gQXV0aG9yIC0gU2hhc3dhdCBTYXhlbmEK readmeEtag: '"852e77d5c4fd229bb6e650486e50919dc3503886"' readmeLastModified: Thu, 04 Feb 2021 16:25:01 GMT repositoryId: 266953057 description: 'Task Management API ' created: '2020-05-26T05:32:20Z' updated: '2021-04-10T14:14:21Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: shaswatsaxena logo: https://avatars.githubusercontent.com/u/12628996?v=4 repoEtag: '"0b2bc6f3294f01cbeca276c0aeb445d5f4a5c705ebf6c5f2c5ab0c2a86eda10b"' repoLastModified: Sat, 10 Apr 2021 14:14:21 GMT foundInMaster: true category: - Converters - Server Implementations id: 01c6c5eceb2b5bf710c27e0da567911f - source: openapi3 tags repository: https://github.com/eoinkane/penny-calc-backend v3: true repositoryMetadata: base64Readme: >- IyBfX1Blbm55LUNhbGMgQmFja2VuZF9fCgpUaGlzIHByb2plY3QgaGVscHMgYSB1c2VyIGNvbXBsZXRlIHRoZSAxcCBzYXZpbmcgY2hhbGxlbmdlczoKCiogVGhlIDFwIFNhdmluZ3MgQ2hhbGxlbmdlClsqbW9yZSBpbmZvKl0oaHR0cHM6Ly9tb256by5jb20vYmxvZy8xcC1zYXZpbmdzLWNoYWxsZW5nZS0yMDIwICdsaW5rJykgIAoqIFRoZSBSZXZlcnNlIDFwIFNhdmluZ3MgQ2hhbGxlbmdlClsqbW9yZSBpbmZvKl0oaHR0cHM6Ly9tb256by5jb20vYmxvZy8yMDE5LzA2LzA0L3JldmVyc2UtMXAtc2F2aW5ncy1jaGFsbGVuZ2UtbW9uem8gJ2xpbmsnKQoKX19UaGlzIHByb2plY3QgaGFzIDIgc2VjdGlvbnM6X18gIAoKKiBfX0JhY2tlbmQgQ29kZV9fCiogX19JbmZyYXN0cnVjdHVyZSBhcyBDb2RlIChDREspX18KCiMjIF9fQmFja2VuZCBDb2RlX18KClRoZSBsb2dpYyBjb2RlIGlzIHdyaXR0ZW4gaW4gcHl0aG9uIGFuZCBzdG9yZWQgaW4gYC4vYXBwYAoKIyMjIF9fTGlzdCBvZiBTY3JpcHRzX18KCiogX19gYW1vdW50L3VudGlsL25leHRfcGF5ZGF5YF9fCgogICAgVGhpcyBsYW1iZGEgY2FsY3VsYXRlcyBob3cgbWFueSBkYXlzIHRpbGwgbmV4dCBwYXlkYXkgdGhlbiByZXR1cm5zIHRoZSBhbW91bnQgdGhhdCBuZWVkcyB0byBiZSBzYXZlZCBiZXR3ZWVuIG5vdyBhbmQgdGhlbiAgCiAgICBUaGlzIGludm9sdmVzIG11bHRpcGx5aW5nIHRoZSBudW1iZXIgZGF5cyBieSB0aGUgZGFpbHkgc2F2aW5nIGFtb3VudCAoMy42NikgIAogICAgVGhlIGZpbGUgaXMgYGFwcC9zcmMvYW1vdW50L3VudGlsL25leHRfcGF5ZGF5L2FwcC5weWAgIAogICAgVGhlIGVudHJ5cG9pbnQgaXMgYGxhbWJkYV9oYW5kbGVyYAoKIyMgX19JbmZyYXN0cnVjdHVyZSBhcyBDb2RlIChDREspX18KClRoZSBDREsgaXMgd3JpdHRlbiBpbiBUeXBlU2NyaXB0ICAKClRoaXMgcHJvamVjdCBoYXMgYmVlbiBidWlsdCB1c2luZyBBV1MgQ0RLIHZlcnNpb24gX18xLjYxLjFfXyAgClRoZSBjZGsgY2xpIHRvb2wgcmVxdWlyZXMgYXdzIGNyZWRlbnRpYWxzLiAgCkkgdXNlIGFuIEFXUyBlZHVjYXRlIGFjY291bnQgW21vcmUgaW5mb10oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9lZHVjYXRpb24vYXdzZWR1Y2F0ZS9zdHVkZW50cy8gJ2xpbmsnKSAgCkJ1dCBhbnkgYWNjb3VudCB0aGF0IGhhcyB0aGVzZSBjcmVkZW50aWFsczogKmF3c19hY2Nlc3Nfa2V5X2lkKjsgKmF3c19zZWNyZXRfYWNjZXNzX2tleSo7ICphd3Nfc2Vzc2lvbl90b2tlbio7IHdpbGwgZG8KCklmIHlvdSBoYXZlIG5vdCB1c2VkIENESyBpbiB5b3VyIEFXUyBhY2NvdW50IGJlZm9yZSBwbGVhc2UgcnVuIGBjZGsgYm9vdHN0cmFwYCBiZWZvcmUgc3RhcnRpbmcKCiMjIyBfX0NvbXBvbmVudHNfXwoKVGhlIENESyBpbmNsdWRlcyAyIGNvbXBvbmVudHMKCiogX19BUEkgR2F0ZXdheV9fCiogX19MYW1iZGEgRnVuY3Rpb25fXwoKIyMjIF9fTGFtYmRhIEZ1bmN0aW9uX18KClRoZSBTZXJ2ZXJsZXNzIGZ1bmN0aW9uIGFsbG93cyB1cyB0byBjYWxsIG91ciBTY3JpcHRzCgojIyMjIF9fTGlzdCBvZiBMYW1iZGFzX18gIAoKKiBfX2BwZW5ueS1jYWxjLWFtb3VudC11bnRpbC1uZXh0LXBheWRheS1sYW1iZGFgX18gIAogICAgVGhpcyBsYW1iZGEgcnVucyB0aGUgYGFtb3VudC91bnRpbC9uZXh0X3BheWRheWAgc2NyaXB0ICAKCiMjIyBfX0FQSSBHYXRld2F5X18KClRoZSBBUEkgR2F0ZXdheSBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGJhY2tlbmQgdGhyb3VnaCBSZXN0IEFQSSBjYWxscy4gIAoKIyMjIyBfX0VuZHBvaW50c19fCgoqIF9fYC9hbW91bnQvdW50aWwvbmV4dC1wYXlkYXlgX18KICAgIFRoaXMgZW5kcG9pbnQgaXMgYSBHRVQgbWV0aG9kIGVuZHBvaW50ICAKICAgIFVzaW5nIGFuIEFXU19QUk9YWSBsYW1kYmEgaW50ZWdyYXRpb24gIAogICAgVGhpcyBlbmRwb2ludCBsaW5rcyB1cCB0byB0aGUgbGFtYmRhIG5hbWVkIGBwZW5ueS1jYWxjLWFtb3VudC11bnRpbC1uZXh0LXBheWRheS1sYW1iZGFgCgojIyBfX0NvbWFuZHNfXwoKSXQgaXMgcmVjY29tbWVuZGVkIHRvIGluc3RhbGwgdGhlIHBhY2thZ2VzIHJlcXVpcmVkICAKKnJ1biB0aGVzZSBjb21tYW5kcyB0byBnZXQgc3RhcnRlZCogIAoKKiBgUElQRU5WX1ZFTlZfSU5fUFJPSkVDVD0xIHBpcGVudiBpbnN0YWxsIC0tZGV2YCAgCiogYFBJUEVOVl9WRU5WX0lOX1BST0pFQ1Q9MSBwaXBlbnYgaW5zdGFsbGAgIAoqIGBucG0gaW5zdGFsbGAKKiBgZXhwb3J0ICQoY2F0IC5lbnYgfCB4YXJncylgCgpFdmVyeSB0aW1lIHlvdSBjaGFuZ2UgdmFsdWVzIGluIGAvLmVudmAgcnVuIGBleHBvcnQgJChjYXQgLmVudiB8IHhhcmdzKWAKCkEgbnVtYmVyIG9mIHRoZSBjb21tYW5kcyByZWx5IG9uIHRoZSBjZGsgY2xpIGFuZCBzbyBwbGVhc2UgaGF2ZSBhIHZhbGlkIHNlc3Npb24vdG9rZW4gZnJvbSBBV1MKCiMjIyBfX0xpc3Qgb2YgQ29tYW5kc19fCgoqIF9fYG5wbSBydW4gYnVpbGRgX18KICAgIFJ1bnMgdGhlIGZvbGxvd2luZyBjb21tYW5kcwoKICAqIGBidWlsZC1weXRob25gCiAgKiBgYnVpbGQtY2RrYAoKKiBfX2BucG0gcnVuIGJ1aWxkLXB5dGhvbmBfXyAgCiAgICBUaGlzIGNvbW1hbmQgYnVpbGRzIHRoZSBweXRob24gY29kZSB3aXRoIHRoZSBwYWNrYWdlcyBpbnN0YWxsZWQgaW50byB0aGUgYnVpbGQgZGlyZWN0b3J5CiogX19gbnBtIHJ1biBidWlsZC1jZGtgX18gIAogICAgUnVucyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzCgogICogYGNsZWFuLWNka2AKICAqIGBjZGstc3ludGhgCgoqIF9fYG5wbSBydW4gY2RrLXN5bnRoYF9fICAKICAgIFRoaXMgY29tbWFuZCBidWlsZHMgYSBjbG91ZGZvcm1hdGlvbiB0ZW1wbGF0ZSBmcm9tIHRoZSBDREsgc3RhY2sgIAogICAgKlByZXF1aXNpdGU6IGBidWlsZC1weXRob25gKgoqIF9fYG5wbSBydW4gY2RrLWRpZmZgX18gIAogICAgVGhpcyBjb21tYW5kIHNob3dzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGxhdGVzdCB0ZW1wbGF0ZSBhbmQgdGhlIHByZXZpb3VzIG9uZQoqIF9fYG5wbSBydW4gZGVwbG95YF9fICAKICAgIFRoaXMgY29tbWFuZCBkZXBsb3lzIHRoZSBjbG91ZGZvcm1hdGlvbiBzdGFjayAgCiAgICAqUHJlcXVpc2l0ZTogYGNrZC1zeW50aGAqCiogX19gbnBtIHJ1biBkZXBsb3ktY2lgX18gIAogICAgRm9sbG93cyB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgYGNkay1kZXBsb3lgIGJ1dCBkb2VzIG5vdCBhc2sgZm9yIGNvbmZpcm1hdGlvbiAgCiAgICAqUHJlcXVpc2l0ZTogYGNrZC1zeW50aGAqCiogX19gbnBtIHJ1biB0ZXN0LWNka2BfXyAgCiAgICBUZXN0cyB0aGUgQ0RLIHN0YWNrCiAgICAqUmVmZXIgdG8gdGhlIFRlc3RpbmcgU2VjdGlvbioKKiBfX2BucG0gcnVuIHRlc3QtcHl0aG9uYF9fICAKICAgIFRlc3RzIHRoZSBQeXRob24gc2NyaXB0cwogICAgKlJlZmVyIHRvIHRoZSBUZXN0aW5nIFNlY3Rpb24qCiogX19gbnBtIHJ1biB0c2NgX18gIAogICAgUnVucyB0aGUgdHlwZXNjcmlwdCBjb21wbGllcgoqIF9fYG5wbSBydW4gY2xlYW5gX18gIAogICAgUnVucyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzCgogICogYGNsZWFuLXRlc3RzYAogICogYGNsZWFuLWJ1aWxkYAogICogYGNsZWFuLWNka2AKCiogX19gbnBtIHJ1biBjbGVhbi10ZXN0c2BfXyAgCiAgICBSZW1vdmVzIHRlbXBvcmFyeSB0ZXN0IGZpbGVzCiogX19gbnBtIHJ1biBjbGVhbi1idWlsZGBfXyAgCiAgICBSZW1vdmVzIHRlbXBvcmFyeSBidWlsZCBmaWxlcwoqIF9fYG5wbSBydW4gY2xlYW4tY2RrYF9fICAKICAgIFJlbW92ZXMgdGVtcG9yYXJ5IGNkayBmaWxlcwoqIF9fYG5wbSBydW4gcnVuLWxhbWJkYS1sb2NhbGBfXyAgCiAgICBSdW5zIHRoZSBsYW1iZGEgbG9jYWxseQoKIyMgX19UZXN0aW5nX18KClRoZXJlIGFyZSB0ZXN0cyBmb3IgYm90aCB0aGUgY2RrIHN0YWNrIGFuZCBiYWNrZW5kIGNvZGUgIAoKKiBfX0NESyB0ZXN0c19fCiAgICBfX2BucG0gcnVuIHRlc3QtY2RrYF9fCiAgICBXcml0dGVuIGluIFR5cGVTY3JpcHQgYW5kIHVzaW5nIGplc3QgYXMgdGhlIHRlc3QgcnVubmVyCiogX19QeXRob24gdGVzdHNfXwogICAgX19gbnBtIHJ1biB0ZXN0LXB5dGhvbmBfXwogICAgV3JpdHRlbiBpbiBweXRob24gYW5kIHVzaW5nIHB5dGVzdCBhcyB0aGUgdGVzdCBydW5uZXIKCgojIyBXZWxjb21lIHRvIHlvdXIgQ0RLIFR5cGVTY3JpcHQgcHJvamVjdAoKVGhpcyBpcyBhIGJsYW5rIHByb2plY3QgZm9yIFR5cGVTY3JpcHQgZGV2ZWxvcG1lbnQgd2l0aCBDREsuCgpUaGUgYGNkay5qc29uYCBmaWxlIHRlbGxzIHRoZSBDREsgVG9vbGtpdCBob3cgdG8gZXhlY3V0ZSB5b3VyIGFwcC4KCiMjIFVzZWZ1bCBjb21tYW5kcwoKKiBgbnBtIHJ1biBidWlsZGAgICBjb21waWxlIHR5cGVzY3JpcHQgdG8ganMKKiBgbnBtIHJ1biB3YXRjaGAgICB3YXRjaCBmb3IgY2hhbmdlcyBhbmQgY29tcGlsZQoqIGBucG0gcnVuIHRlc3RgICAgIHBlcmZvcm0gdGhlIGplc3QgdW5pdCB0ZXN0cwoqIGBjZGsgZGVwbG95YCAgICAgIGRlcGxveSB0aGlzIHN0YWNrIHRvIHlvdXIgZGVmYXVsdCBBV1MgYWNjb3VudC9yZWdpb24KKiBgY2RrIGRpZmZgICAgICAgICBjb21wYXJlIGRlcGxveWVkIHN0YWNrIHdpdGggY3VycmVudCBzdGF0ZQoqIGBjZGsgc3ludGhgICAgICAgIGVtaXRzIHRoZSBzeW50aGVzaXplZCBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZQo= readmeEtag: '"8797870617f94a1a8ebbd2ed544618d2d823e952"' readmeLastModified: Fri, 04 Sep 2020 14:44:27 GMT repositoryId: 292794834 description: 'This project helps a user complete the 1p saving challenges:' created: '2020-09-04T08:33:56Z' updated: '2020-09-04T14:44:51Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: eoinkane logo: https://avatars.githubusercontent.com/u/10391408?v=4 repoEtag: '"d3c9d1f0e86fdd2bb777f814b0fa6120b9a80501031b154f236a4dd75ac98c69"' repoLastModified: Fri, 04 Sep 2020 14:44:51 GMT foundInMaster: true category: Server Implementations id: c22999086a3109365e79e2907ee01912 - source: openapi3 tags repository: https://github.com/nielsbergsma/haskell-api-prototype v3: true repositoryMetadata: base64Readme: >- IyBIYXNrZWxsIEFQSSBwcm90b3R5cGUKCiMjIFdoYXQgaXMgdGhpcz8KVGhpcyBpcyBteSByZXNlYXJjaCBpbnRvIHRoZSB3b3JsZCBvZiBIYXNrZWxsLiBTcGVjaWNpZmljbHkgaG93IHRvIGJ1aWxkIG1vZGVybiBhcHBsaWNhdGlvbnMgKGFyY2hpdGVjdHVyZXMpIHdpdGggSGFza2VsbCwgZnVuY3Rpb25hbCBzdHlsZS4gVG9waWNzIHdpbGwgaW5jbHVkZSwgYnV0IG5vdCBsaW1pdGVkIHRvOgotIHJlc3RmdWwgQVBJCi0gZG9tYWluIGRyaXZlbiBkZXNpZ24KLSBDUVJTIC8gZXZlbnQgc291cmNpbmcKLSBzcGVjaWZpY2F0aW9uIGJ5IGV4YW1wbGUKLSBhbmQgc28gb24gLi4uCgpUaGlzIHJlcG9zaXRvcnkgaXMgKGN1cnJlbnRseSkgbWVyZWx5IGEgcmVjb3JkaW5nIG9mIG15IHByb2dyZXNzLgoKIyMgV2hhdCdzIGRvbmU/IGFuZCB3aGF0J3MgbmV4dD8KLSBbeF0gbGlnaHR3ZWlnaHQgYWJzdHJhY3Rpb24gb24gdG9wIG9mIFdBSSwgYXMgYSBtaWNybyBSZXN0ZnVsIGxpYnJhcnkKLSBbeF0gYXV0by1nZW5lcmF0ZSBBUEkgYmFzZWQgb3AgT3BlbkFQSSB2MyBzcGVjCi0gW3hdIHZhbGlkYXRlIHVybCArIHF1ZXJ5IHBhcmFtZXRlcnMKLSBbeF0gdmFsaWRhdGUganNvbiBib2R5LCBiYXNlZCBvbiBPcGVuQVBJIHYzIHNwZWMKLSBbeF0gdHJhbnNmb3JtIGJvZHkgdG8gdHJhbnNmZXIgb2JqZWN0cyAoZm9yIGJvdGggcHJvZHVjdCBhbmQgc3VtIHR5cGVzKQotIFt4XSBjb21wcmVoZW5zaXZlIHZhbGlkYXRpb24gRFNMIChqc29uIGJvZHksIHVybCArIHF1ZXJ5IHBhcmFtZXRlcnMpCi0gW3hdIHN0cm9uZyB0eXBlZCBlcnJvciBtZXNzYWdlcyAoaHVtYW4gKyBtYWNoaW5lIGludGVycHJldGFibGUpLCBpbmNsdWRlcyBKU09OIHBhdGggZm9yIFJlcXVlc3QgQm9keSBlcnJvciBtZXNzYWdlcwotIFt4XSBKV1QgYXV0aG9yaXphdGlvbiAvIGF1dGhlbnRpY2F0aW9uLCByb2xlIGJhc2VkIHdpdGggSldLIHZhbGlkYXRpb24KLSBbIF0gImF1dG8gd2lyZSIgdHJhbnNmZXIgb2JqZWN0cyB0byBjb21tYW5kcwotIFsgXSBjb21tYW5kIGhhbmRsZXJzLCBzYWdhcywgcHJvY2VzcyBtYW5hZ2VycwotIFsgXSBhZ2dyZWdhdGVzLCBzdGF0ZSwgcGVyc2lzdGVuY2UKLSBbIF0gZXZlbnQsIGV2ZW50IGhhbmRsZXJzCi0gWyBdIC4uLiBtb3JlIHRvIGNvbWUKCiMjIFVzZSBvciBpbXByb3ZlPwpTdXJlLCBqdXN0IHNob290IG1lIGEgbWVzc2FnZS4= readmeEtag: '"68d393938c8d8f6c4815c954c6655f92bf103441"' readmeLastModified: Sun, 12 Apr 2020 18:10:37 GMT repositoryId: 255094421 description: haskell rest api prototype created: '2020-04-12T14:00:16Z' updated: '2020-04-12T18:10:45Z' language: Haskell archived: false stars: 0 watchers: 2 forks: 0 owner: nielsbergsma logo: https://avatars.githubusercontent.com/u/1736958?v=4 repoEtag: '"bd6f0bdb8899c854a64010b4a5be509b50f03696efa1d94ac55aab406e706237"' repoLastModified: Sun, 12 Apr 2020 18:10:45 GMT foundInMaster: true category: - Parsers - Server Implementations id: 7755d8920695da9bde7e7b085bd2f691 - source: openapi3 tags repository: https://github.com/hcloward/casc-bundle-management v3: true repositoryMetadata: repositoryId: 303161948 description: >- This repository includes an OpenAPI file I created using Stoplight, while completing Tom Johson's API documentation course. created: '2020-10-11T16:19:18Z' updated: '2020-10-23T16:27:40Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: HCloward logo: https://avatars.githubusercontent.com/u/17242298?v=4 repoEtag: '"23f4ec381489d68f561f6a7b7edcd89a64849f612da5f6afe91bf4021f97d11e"' repoLastModified: Fri, 23 Oct 2020 16:27:40 GMT foundInMaster: true id: 61ea4572af4f152e072a62c8539d9795 - source: openapi3 tags repository: https://github.com/hoangnx30/sample-express-with-swagger v3: true repositoryMetadata: base64Readme: >- KipBIGV4YW1wbGUgYWJvdXQgdXNpbmcgc3dhZ2dlci11aSBpbiBub2RlanMgdG8gdGVzdCBhcGkqKgo= readmeEtag: '"b6c28f8d1dcfcc41f123b7c7b15d940efea6107d"' readmeLastModified: Sun, 08 Nov 2020 10:50:14 GMT repositoryId: 311039169 description: Example about express mongodb swagger created: '2020-11-08T10:41:16Z' updated: '2020-11-08T10:50:24Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: hoangnx30 logo: https://avatars.githubusercontent.com/u/43129138?v=4 repoEtag: '"05d9f1c7d8699877aebe245388a45188fca06ce4104e9ef092509b9bf255080c"' repoLastModified: Sun, 08 Nov 2020 10:50:24 GMT foundInMaster: true category: - Low-level Tooling - Parsers - Server Implementations id: dbbd8e27197f94d32201d8b6795a5100 - source: openapi3 tags repository: https://github.com/semestry/oas3-lint v3: true repositoryMetadata: base64Readme: >- IyBvYXMzLWxpbnQKR2l0SHViIEFjdGlvbiBmb3IgbGludGluZyBPcGVuQVBJIFNwZWNpZmljYXRpb24gMyBmaWxlcyB1c2luZyBbU3BlY3RyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbCkuCgojIyBVc2FnZQpgYGB5YW1sCmpvYnM6CiAgbGludDoKICAgIG5hbWU6IExpbnQKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKCiAgICBzdGVwczoKICAgICAgLSBuYW1lOiBDaGVja291dAogICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKCiAgICAgIC0gdXNlczogZXZlb2gvb2FzMy1saW50QHYxCiAgICAgICAgd2l0aDoKICAgICAgICAgIHNwZWM6IHBhdGgvdG8vc3BlYy55YW1sCiAgICAgICAgICB0b2tlbjogJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19CmBgYAoKIyMjIE9wdGlvbnMKCiMjIyMgc3BlYyAocmVxdWlyZWQpClRoZSBwYXRoIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZpbGUgKE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLCBZQU1MKSB0aGF0IHNob3VsZCBiZSBsaW50ZWQuCgoqRXhhbXBsZToqCmBgYHlhbWwKd2l0aDoKICBzcGVjOiBwYXRoL3RvL3NwZWMueWFtbApgYGAKCiMjIyMgdG9rZW4gKHJlcXVpcmVkKQpUaGUgR2l0SHViIHRva2VuIHRoYXQgaXMgdXNlZCB0byBjcmVhdGUgdGhlIENoZWNrIFJ1biB1c2luZyB0aGUgR2l0SHViIENoZWNrcyBBUEkuClNob3VsZCBiZSBzZXQgdG8gdGhlIGBHSVRIVUJfVE9LRU5gIHNlY3JldCB0aGF0IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSB0aGUgR2l0SHViIEFjdGlvbnMgcnVubmVyLgogICAgICAgICAgCipFeGFtcGxlOioKYGBgeWFtbAp3aXRoOgogIHRva2VuOiAke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX0KYGBgCgojIyMjIHJ1bGVzZXQKUGF0aCB0byB0aGUgcnVsZXNldCBmaWxlLgoKKkV4YW1wbGU6KgpgYGB5YW1sCndpdGg6CiAgcnVsZXNldDogcGF0aC90by8uc3BlY3RyYWwueWFtbApgYGAK readmeEtag: '"5bff17f2d76c1d82c3a5850d19327ea036ed6a44"' readmeLastModified: Sun, 01 Jan 2023 12:26:01 GMT repositoryId: 323617929 description: GitHub Action for linting OpenAPI Specification 3 files created: '2020-12-22T12:20:30Z' updated: '2023-01-05T13:18:32Z' language: JavaScript archived: true stars: 0 watchers: 4 forks: 0 owner: semestry logo: https://avatars.githubusercontent.com/u/1628298?v=4 repoEtag: '"4ed6355c474fb8c266271814df5526a00427a91494b0fb4d358db564755737f8"' repoLastModified: Thu, 05 Jan 2023 13:18:32 GMT foundInMaster: true category: - Description Validators - Parsers id: 0c3ba285fd8078e1381b58fcabe3b0b0 - source: openapi3 tags repository: https://github.com/hendrik-scholz/express-app-generator v3: true repositoryMetadata: base64Readme: >- IyBleHByZXNzLWFwcC1nZW5lcmF0b3IKOndyZW5jaDogRXhwcmVzcyBBcHAgR2VuZXJhdG9yCg== readmeEtag: '"0074037831f798fe74474908b2f12595e4e70e41"' readmeLastModified: Wed, 07 Jul 2021 17:32:28 GMT repositoryId: 383877179 description: ':wrench: Express App Generator' created: '2021-07-07T17:32:27Z' updated: '2021-07-22T17:54:15Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: hendrik-scholz logo: https://avatars.githubusercontent.com/u/12932871?v=4 license: MIT repoEtag: '"219c3d4bbd5b42a8941227dde00480022a0f4c294baecf6508a606f55d9848d6"' repoLastModified: Thu, 22 Jul 2021 17:54:15 GMT foundInMaster: true category: - Server - Server Implementations id: c9f62406196b884d044bb7341f89f128 - source: openapi3 tags repository: https://github.com/zeet-co/go-artifacthub v3: true repositoryMetadata: base64Readme: >- IyBnby1hcnRpZmFjdGh1YgoKQXV0byBnZW5lcmF0ZWQgdXNpbmcgaHR0cHM6Ly9naXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuIGZyb20gaHR0cHM6Ly9hcnRpZmFjdGh1Yi5pby9kb2NzL2FwaS8KCiMjIFVzYWdlCgpgYGAKY2xpZW50LCBlcnIgOj0gYXJ0aWZhY3RodWIuTmV3Q2xpZW50V2l0aFJlc3BvbnNlcygiaHR0cHM6Ly9hcnRpZmFjdGh1Yi5pby9hcGkvdjEiLCBhcnRpZmFjdGh1Yi5XaXRoUmVxdWVzdEVkaXRvckZuKGZ1bmMoY3R4IGNvbnRleHQuQ29udGV4dCwgcmVxICpodHRwLlJlcXVlc3QpIGVycm9yIHsKICByZXEuSGVhZGVyLlNldCgiWC1BUEktS0VZLUlEIiwgIktFWV9JRCIpCiAgcmVxLkhlYWRlci5TZXQoIlgtQVBJLUtFWS1TRUNSRVQiLCAiS0VZX1NFQ1JFVCIpCiAgcmV0dXJuIG5pbAp9KSkKaWYgZXJyICE9IG5pbCB7CiAgcmV0dXJuIG5pbCwgZXJyCn0KCnJlc3AsIGVyciA6PSBjbGllbnQuR2V0SGVsbVBhY2thZ2VEZXRhaWxzV2l0aFJlc3BvbnNlKGN0eCwgInJlcG8iLCAicGFja2FnZSIpCmlmIGVyciAhPSBuaWwgewogIHJldHVybiBuaWwsIGVycgp9CmBgYAo= readmeEtag: '"300551ecf0f8255bb007cf0bc91d1746f91829a9"' readmeLastModified: Wed, 22 Sep 2021 19:13:21 GMT repositoryId: 409325296 description: artifacthub go client created: '2021-09-22T19:07:41Z' updated: '2021-09-22T19:16:05Z' language: Makefile archived: false stars: 0 watchers: 2 forks: 0 owner: zeet-co logo: https://avatars.githubusercontent.com/u/74479726?v=4 license: MIT repoEtag: '"e4225cc4de9fd924be2bc40e6e29d067b229f43ee7fb642cfc7d79135abf2504"' repoLastModified: Wed, 22 Sep 2021 19:16:05 GMT foundInMaster: true category: Data Validators id: 19d546adc3b9f0775d5d82791295eba2 - source: openapi3 tags repository: https://github.com/romabilka/generate-openapi-go-server v3: true repositoryMetadata: base64Readme: >- IyBHZW5lcmF0ZSBPcGVuYXBpIEdPIFNlcnZlcgoKIyNFeGFtcGxlIEdPIFNlcnZlciAoZ2VuZXJhdGUgYnkgT3BlbmFwaSkKCiMjIExpY2Vuc2UKW01JVCBsaWNlbnNlXShMSUNFTlNFLm1kKS4= readmeEtag: '"baa4ade4d4aed6af409ccf9cbc211f6fb2a27f42"' readmeLastModified: Thu, 03 Mar 2022 08:14:13 GMT repositoryId: 443337799 description: null created: '2021-12-31T12:11:33Z' updated: '2022-03-03T10:02:45Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: RomaBilka logo: https://avatars.githubusercontent.com/u/28790784?v=4 license: NOASSERTION repoEtag: '"613cc99ce4a777f264280dce94712a7f93bb04d3a7f5ecb027e35e45090902d5"' repoLastModified: Thu, 03 Mar 2022 10:02:45 GMT foundInMaster: true category: Parsers id: cad28d84ec361611943bc98615e109d5 - source: openapi3 tags repository: https://github.com/himenon/datadog-typescript-openapi v3: true repositoryMetadata: base64Readme: >- IyBAaGltZW5vbi9kYXRhZG9nLXR5cGVzY3JpcHQtb3BlbmFwaQoKYGBgYmFzaAojIHlhcm4KeWFybiBhZGQgLUQgQGhpbWVub24vZGF0YWRvZy10eXBlc2NyaXB0LW9wZW5hcGkKCiMgcG5wbQpwbnBtIGFkZCAtRCBAaGltZW5vbi9kYXRhZG9nLXR5cGVzY3JpcHQtb3BlbmFwaQpgYGAKCiMjIFVzYWdlCgpgYGB0cwppbXBvcnQgeyBDbGllbnQgfSBmcm9tICJAaGltZW5vbi9kYXRhZG9nLXR5cGVzY3JpcHQtb3BlbmFwaS92MS4wLjAtYmV0YS45IjsKYGBgCgojIyBCdWlsZAoKYGBgdHMKcG5wbSBidWlsZApgYGAKCiMjIE9wZW5BUEkgU291cmNlIGZvciBEYXRhRG9nCgotIDxodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWFwaS1jbGllbnQtdHlwZXNjcmlwdC90cmVlL21hc3Rlci8uZ2VuZXJhdG9yL3NjaGVtYXMvdjI+CgojIyBPcGVuQVBJIFR5cGVTY3JpcHQgQ29kZSBHZW5lcmF0b3IKCi0gW0BoaW1lbm9uL29wZW5hcGktdHlwZXNjcmlwdC1jb2RlLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL0hpbWVub24vb3BlbmFwaS10eXBlc2NyaXB0LWNvZGUtZ2VuZXJhdG9yKQoKWW91IGNhbiBhbHNvIGp1c3QgdXNlIHRoZSB0eXBlIGRlZmluaXRpb24KCiMjIFVzZSBBbm90aGVyIFZlcnNpb24KCkVkaXQgW2NvbmZpZy50c10oLi9zY3JpcHRzL2NvbmZpZy50cykKCiMjIExJQ0VOQ0UKCltASGltZW5vbi9kYXRhZG9nLXR5cGVzY3JpcHQtb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL0hpbWVub24vZGF0YWRvZy10eXBlc2NyaXB0LW9wZW5hcGkp44O7TUlUCg== readmeEtag: '"6721b07de5708a13bbab6aac30497c66f7eb5787"' readmeLastModified: Tue, 22 Mar 2022 12:12:29 GMT repositoryId: 472745541 description: Implementation of TypeScript generated from DataDog OpenAPI created: '2022-03-22T11:53:49Z' updated: '2022-03-22T12:13:27Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: Himenon logo: https://avatars.githubusercontent.com/u/6715229?v=4 license: MIT repoEtag: '"92bd4383b515423562593ce012d66845208b3959e5cb8f5ba34787bd90f36d63"' repoLastModified: Tue, 22 Mar 2022 12:13:27 GMT foundInMaster: true category: SDK id: 62bcee4c699acc36654248a08ffb9e05 - source: openapi3 tags repository: https://github.com/alexeyco/oaconv v3: true id: 15b5cf8af4664222a31d8391f12d9eb7 repositoryMetadata: base64Readme: IyBvYWNvbnY= readmeEtag: '"e3c28a47162c6303f92e9d1aa7855499fad2d796"' readmeLastModified: Mon, 23 May 2022 11:34:44 GMT repositoryId: 495383639 description: Convert openapi v2 to v3 created: '2022-05-23T11:34:43Z' updated: '2022-05-23T11:35:45Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: alexeyco logo: https://avatars.githubusercontent.com/u/496179?v=4 license: MIT repoEtag: '"027d61a4c73c2baf1e951492a044d60d1cdee9a33c1b558fc74673a424e49b80"' repoLastModified: Mon, 23 May 2022 11:35:45 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/jinxapi/querylizer v3: true repositoryMetadata: base64Readme: >- IyBxdWVyeWxpemVyCgpSdXN0IHNlcmRlIGxpYnJhcnkgZm9yIE9wZW5BUEkgdjMgcGFyYW1ldGVyIHN0eWxlcy4KClVzZSBgc2VyZGVgIHRvIHByb3ZpZGUgdGhlIGRpZmZlcmVudCBzdHlsZXMgc3VwcG9ydGVkIGluIE9wZW5BUEkgcGFyYW1ldGVycy4KCk9wZW5BUEkgcHJvdmlkZXMgbXVsdGlwbGUgc3R5bGVzIGZvciBvcGVyYXRpb24gcGFyYW1ldGVycy4gIGBxdWVyeWxpemVyYApwcm92aWRlcyBhIHNlcmRlIFNlcmlhbGl6ZXIgZm9yIGVhY2ggc3R5bGUuCgpDdXJyZW50bHkgc3VwcG9ydGVkIHN0eWxlcyBhcmU6Ci0gYGRlZXBPYmplY3RgCi0gYGZvcm1gCi0gYHNpbXBsZWAKClRoZXJlIGlzIGFsc28gYSBgZGVlcGZvcm1gIHN0eWxlIHRoYXQgaXMgdXNlZnVsIGZvciBPcGVuQVBJIHJlcXVlc3QgYm9kaWVzIHRoYXQgbWl4IGBmb3JtYCBhbmQgYGRlZXBPYmplY3RgIHN0eWxlcy4K readmeEtag: '"2a7c64b6cff9f61565c49f694f25d66409a442b4"' readmeLastModified: Fri, 25 Mar 2022 12:41:27 GMT repositoryId: 464859030 description: Rust serde serializers for OpenAPI parameter styles created: '2022-03-01T11:06:26Z' updated: '2022-03-30T08:17:25Z' language: Rust archived: false stars: 0 watchers: 1 forks: 0 owner: jinxapi logo: https://avatars.githubusercontent.com/u/100527532?v=4 license: Apache-2.0 repoEtag: '"0b261fe0acb3577ffcdff8a3111336b9758cb38ad879639ee77a15683631cf5f"' repoLastModified: Wed, 30 Mar 2022 08:17:25 GMT foundInMaster: true category: - Server - Parsers id: c9bc1750dce1973ff6b28823453ffbe1 - source: openapi3 tags repository: >- https://github.com/jorgealfonsogarcia/uan-spec-sweng-architecture-2-lab-01-layered v3: true id: cd5729218b4c6502196132907ce427f3 repositoryMetadata: base64Readme: >- IyB1YW4tc3BlYy1zd2VuZy1hcmNoaXRlY3R1cmUtMi1sYWItMDEtbGF5ZXJlZAoKIyMgRVMg8J+HqvCfh7gKCiMjIyBDb250ZXh0bwoKUHJveWVjdG8gcmVhbGl6YWRvIHBhcmEgbGEgVW5pdmVyc2lkYWQgQW50b25pbyBOYXJpw7FvLCBFc3BlY2lhbGl6YWNpw7NuIGVuIEluZ2VuaWVyw61hIGRlIFNvZnR3YXJlLCBBcnF1aXRlY3R1cmEgZGUKU29mdHdhcmUgSUksIGNvcnJlc3BvbmRpZW50ZSBhbCBMYWJvcmF0b3JpbyBOby4xIGFjZXJjYSBkZSBBcnF1aXRlY3R1cmEgZGUgQ2FwYXMgeSBlbCBwYXRyw7NuIEJ1c2luZXNzIERlbGVnYXRlLgoKIyMjIEF1dG9yZXMKCiogSm9yZ2UgR2FyY8OtYQoqIERpZWdvIFBvdmVkYQoKIyMjIExpY2VuY2lhCgpbR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0VdKExJQ0VOU0UubWQpCgojIyMgUmVxdWlzaXRvcwoKKiBKYXZhIDE3LCBkaXNwb25pYmxlIGVuIGh0dHBzOi8vYWRvcHRpdW0ubmV0L2VzL3RlbXVyaW4vcmVsZWFzZXMgCiogQXBhY2hlIE1hdmVuIDMsIGRpc3BvbmlibGUgZW4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2Rvd25sb2FkLmh0bWwgCiogVGVuZXIgbG9jYWxtZW50ZSBkaXNwb25pYmxlIGVsIHB1ZXJ0byA4MDgwCgojIyMgQ29uc3RydWNjacOzbgoKKiBFamVjdXRhciBlbiBsYSBjb25zb2xhIGRlbCBzaXN0ZW1hIGxhIHNpZ3VpZW50ZSBpbnN0cnVjY2nDs246CgpgYGBzaGVsbAptdm4gY2xlYW4gY29tcGlsZSBwYWNrYWdlIApgYGAKCiogRWwgYXJjaGl2byBKQVIgbG8gZW5jb250cmFyw6EgZW4gbGEgY2FycGV0YSBgdGFyZ2V0YC4KCiMjIyBFamVjdWNpw7NuCgoqIEVqZWN1dGFyIGVuIGxhIGNvbnNvbGEgZGVsIHNpc3RlbWEgbGEgc2lndWllbnRlIGluc3RydWNjacOzbjoKCmBgYHNoZWxsCmphdmEgLWphciB1YW4tc3BlYy1zd2VuZy1hcmNoaXRlY3R1cmUtMi1sYWItMDEtbGF5ZXJlZC0xLjAuMC5qYXIgCmBgYAoKKiBJbmdyZXNlIGEgbGEgVVJMOiBodHRwOi8vbG9jYWxob3N0OjgwODAvbGFiLTAxLWxheWVyZWQvc3dhZ2dlci11aS9pbmRleC5odG1sCiogRW4gbGEgY29uc29sYSB3ZWIgZGUgT3BlbkFQSSBlbmN1ZW50cmEgbGFzIGRpZmVyZW50ZXMgYWNjaW9uZXMgZGlzcG9uaWJsZXMgcGFyYSBpbnRlcmFjdHVhciBjb24gbG9zIHNlcnZpY2lvcyBSRVNUIGRlCiAgbGEgYXBsaWNhY2nDs24uCiogVGFtYmnDqW4gcHVlZGUgaW50ZXJhY3R1YXIgY29uIGxhIGFwbGljYWNpw7NuIG1lZGlhbnRlIHVuIGNsaWVudGUgSFRUUCAoZWouIFBvc3RtYW4pIGluZGljYW5kbyBjb21vIFVSTAogIGJhc2UgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2xhYi0wMS1sYXllcmVkLwoqIFBhcmEgaW50ZXJhY3R1YXIgY29uIGxhIGJhc2UgZGUgZGF0b3MsIGluZ3Jlc2UgYSBsYSBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2xhYi0wMS1sYXllcmVkL2gyLWNvbnNvbGUgLiBMb3MgZGF0b3MgZGUKICBhY2Nlc28gc29uIGxvcyBzaWd1aWVudGVzOgoKfCBDYW1wbyAgICB8IFZhbG9yIHwKfC0tLS0tLS0tLS18LS0tLS0tLXwKfCAqKkNvbnRyb2xhZG9yKiogIHwgb3JnLmgyLkRyaXZlciB8CnwgKipVUkwgSkRCQyoqIHwgamRiYzpoMjptZW06bGFiLTAxLWxheWVyZWQgIHwKfCAqKk5vbWJyZSBkZSB1c3VhcmlvKiogfCB1YW4gIHwKfCAqKkNvbnRyYXNlw7FhKiogfCBhcmNoaXRlY3R1cmUgIHwKCiMjIyBEaXNlw7FvCgojIyMjIERpYWdyYW1hIGRlIENsYXNlcwoKRWwgZGlhZ3JhbWEgcmVwcmVzZW50YSBlbCB1c28gZGVsIHBhdHLDs24gKkJ1c2luZXNzIERlbGVnYXRlKiBjb24gYmFzZSBlbiBlbCBwYXRyw7NuICpQcm94eSogcGFyYSBsYSBzZXBhcmFjacOzbiBkZSBsYSBjYXBhCmRlIG5lZ29jaW8uIExvcyBjb250cm9sYWRvcmVzIHkgZWwgYEluaXREYXRhTG9hZGVyYCDDum5pY2FtZW50ZSBpbnRlcmFjdMO6YW4gY29uIGxhIGNsYXNlIGBCdXNpbmVzc0RlbGVnYXRlYCBwYXJhIG9idGVuZXIKYWNjZXNvIGEgbGEgbMOzZ2ljYSBkZSBuZWdvY2lvLiBgQnVzaW5lc3NEZWxlZ2F0ZWAgYSBzdSB2ZXogdXRpbGl6YSBsYSBjbGFzZSBgQnVzaW5lc3NMb29rdXBgIHBhcmEgdGVuZXIgYWNjZXNvIGEgbGEgY2xhc2UKZGUgc2VydmljaW8gY29ycmVzcG9uZGllbnRlIGEgbGEgc29saWNpdHVkLgoKIVtEaWFncmFtYSBkZSBDbGFzZXNdKHVtbC9jbGFzc2VzL2NsYXNzZXMucG5nKQoKIyMjIyBEaWFncmFtYSBkZSBTZWN1ZW5jaWEKCkVsIGRpYWdyYW1hIHJlcHJlc2VudGEgbGEgc2VjdWVuY2lhIGNvcnJlc3BvbmRpZW50ZSBhIGxhIGLDunNxdWVkYSBkZSB0b2RvcyBsb3MgZW1wbGVhZG9zIHJlZ2lzdHJhZG9zIGVuIGxhIGJhc2UgZGUgZGF0b3MKZGUgbGEgYXBsaWNhY2nDs24sIHV0aWxpemFuZG8gbGEgY2xhc2UgYEJ1c2luZXNzRGVsZWdhdGVgIGNvbW8gw7puaWNvIHB1bnRvIGRlIGludGVyYWNjacOzbiBkZXNkZSBsb3MgY29udHJvbGFkb3JlcywgeSBjb21vCmVzdGUgaGFjZSB1c28gZGUgbGEgY2xhc2UgYEJ1c2luZXNzTG9va1VwYCBwYXJhIGVuY29udHJhciBlbCBzZXJ2aWNpbyBjb3JyZXNwb25kaWVudGUuCgohW0RpYWdyYW1hIGRlIFNlY3VlbmNpYV0odW1sL3NlcXVlbmNlL3NlcXVlbmNlLnBuZykKCiMjIyBSZWZlcmVuY2lhcwoKKiBNaXRyYSwgUy4gKDIwMTgpLiBMYXllcmVkIEFyY2hpdGVjdHVyZSBVcCBhbmQgUnVubmluZyBqdXN0IGluIDUgbWludXRlczo6IFNwcmluZyBCb290IFBhcnQgMSB8IE1ha2UgJiBLbm93IEphdmEuCiAgQmxvZ3Nwb3QuY29tLiBodHRwOi8vamF2YW9uZmx5LmJsb2dzcG90LmNvbS8yMDE4LzA5L2xheWVyZWQtYXJjaGl0ZWN0dXJlLXVwLWFuZC1ydW5uaW5nLmh0bWwKKiBNaXRyYSwgUy4gKDIwMTgsIE9jdG9iZXIgMTcpLiBCdWlsZGluZyBMYXllcmVkIEFyY2hpdGVjdHVyZSBpbiBKdXN0IDMgTWludXRlczogRmluYWwgUGFydC4gRHpvbmUuY29tOwogIERab25lLiBodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9idWlsZGluZy1sYXllcmVkLWFyY2hpdGVjdHVyZS1qdXN0LWluLTMtbWludXRlcy1maS0xCiogQ29yZSBKMkVFIFBhdHRlcm5zIC0gQnVzaW5lc3MgRGVsZWdhdGUuICgyMDE4KS4KICBPcmFjbGUuY29tLiBodHRwczovL3d3dy5vcmFjbGUuY29tL2phdmEvdGVjaG5vbG9naWVzL2J1c2luZXNzLWRlbGVnYXRlLmh0bWwKKiBEZXNpZ24gUGF0dGVybnMgLSBCdXNpbmVzcyBEZWxlZ2F0ZSBQYXR0ZXJuLiAoMjAyMikuCiAgVHV0b3JpYWxzcG9pbnQuY29tLiBodHRwczovL3d3dy50dXRvcmlhbHNwb2ludC5jb20vZGVzaWduX3BhdHRlcm4vYnVzaW5lc3NfZGVsZWdhdGVfcGF0dGVybi5odG0KKiBiYWVsZHVuZy4gKDIwMTksIEFwcmlsIDE4KS4gU3ByaW5nIEJvb3QgV2l0aCBIMiBEYXRhYmFzZSB8IEJhZWxkdW5nLgogIEJhZWxkdW5nLiBodHRwczovL3d3dy5iYWVsZHVuZy5jb20vc3ByaW5nLWJvb3QtaDItZGF0YWJhc2UKKiBQcm94eS4gKDIwMTQpLiBSZWZhY3RvcmluZy5ndXJ1LiBodHRwczovL3JlZmFjdG9yaW5nLmd1cnUvZXMvZGVzaWduLXBhdHRlcm5zL3Byb3h5Cgo= readmeEtag: '"9227b0098a515d9d30428ab98b3f9d81029428a5"' readmeLastModified: Fri, 26 Aug 2022 03:15:34 GMT repositoryId: 528579446 description: >- Project for the Antonio Nariño University, Specialization in Software Engineering, Software Architecture II, corresponding to Laboratory No.1 about Layer Architecture and the Business Delegate pattern. created: '2022-08-24T20:12:48Z' updated: '2022-08-27T01:49:56Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: jorgealfonsogarcia logo: https://avatars.githubusercontent.com/u/3460617?v=4 license: GPL-3.0 repoEtag: '"0a821a3a1d35660afaaf76e1a91acaf359ee1a9cb868606d2bbe508024b23dce"' repoLastModified: Sat, 27 Aug 2022 01:49:56 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/calebtracey/rugby-data-api v3: true id: fbb953f9bdb8e6cc5c8e79501e8dc063 repositoryMetadata: base64Readme: >- IyBydWdieS1kYXRhLWFwaQoKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL0NhbGViVHJhY2V5L3J1Z2J5LWRhdGEtYXBpL2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj03MTQ5SUlUWjgxKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL0NhbGViVHJhY2V5L3J1Z2J5LWRhdGEtYXBpKQoKIyMjIFtTd2FnZ2VyIERvY3NdKGh0dHBzOi8vY2FsZWJ0cmFjZXkuZ2l0aHViLmlvL3J1Z2J5LWRhdGEtYXBpL3N3YWdnZXItdWkvKQoKW3J1Z2J5LW1vZGVsc10oaHR0cHM6Ly9naXRodWIuY29tL0NhbGViVHJhY2V5L3J1Z2J5LW1vZGVscykgdXNlZCBmb3IgY29tbW9uIGRhdGEgdHlwZXMKCltjb25maWcteWFtbF0oaHR0cHM6Ly9naXRodWIuY29tL0NhbGViVHJhY2V5L2NvbmZpZy15YW1sKSB1c2VkIGZvciBlbnZpcm9ubWVudCBjb25maWdzIGFuZCBzZXJ2aWNlL2RiIGluaXRpYWxpemF0aW9uCgoqKkJhc2ljIHNldHVwKioKMS4gQ3JlYXRlIGEgbG9jYWwgUG9zdGdyZXMgZGF0YWJhc2UgYW5kIHVwZGF0ZSB0aGUgY29uZmlnLnlhbWwgZmlsZSB3aXRoIHRoZSBkZXRhaWxzCjIuIFVwZGF0ZSBnby5tb2QgYW5kIGZpbGUgaW1wb3J0cyB3aXRoIHlvdXIgcmVwbyBuYW1lCjMuIFJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIHRvIHVwZGF0ZSBkZXBlbmRlbmNpZXM6CgogICBgZ28gZ2V0IC11IC4vLi4uYAoKICAgIGBnbyBtb2QgdGlkeWAKNC4gTWFrZSBhIHJ1biBjb25maWd1cmF0aW9uIGFzIHNlZW4gYmVsb3cgd2l0aCB5b3VyIHJlcG8gbmFtZToKCiFbUnVuIENvbmZpZ10oLi9pbWFnZXMvcnVuLWNvbmZpZy5wbmcpCgojIyMjIE5vdyB5b3UgY2FuIHN0YXJ0IHRoZSBBUEkgYW5kIGFjY2VzcyBodHRwOi8vbG9jYWxob3N0OjYwODAvc3dhZ2dlci11aS8gZm9yIHN3YWdnZXIgZG9jdW1lbnRhdGlvbiBhbmQgdGVzdGluZwo= readmeEtag: '"1460d98dfafdca53aa89632802b7421350fa20e9"' readmeLastModified: Sun, 04 Dec 2022 18:45:32 GMT repositoryId: 569336302 description: Go API for accessing rugby stats created: '2022-11-22T15:42:10Z' updated: '2022-11-24T15:10:43Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: CalebTracey logo: https://avatars.githubusercontent.com/u/59851860?v=4 license: MIT repoEtag: '"ec8cdcc8fa1b6aa93ea3ad12af437ebc922350a8c8d622f378fe293cb8962260"' repoLastModified: Thu, 24 Nov 2022 15:10:43 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/honzabit/pactum-api-coverage v3: true id: dd33f534d3f7250729ac4ca3fc575c62 repositoryMetadata: base64Readme: >- IyBwYWN0dW0tYXBpLWNvdmVyYWdlCgohW1BsYXRmb3JtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25vZGUvdi9wYWN0dW0pCgpBUEkgY292ZXJhZ2UgcmVwb3J0ZXIgZm9yIFtQYWN0dW1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3BhY3R1bSkgdGVzdHMuIEFjY2VwdHMgU3dhZ2dlci9PQVMgc3BlYyBkYXRhIGluIEpTT04gZm9ybWF0LgoKIyMgSW5zdGFsbGF0aW9uCgpgYGBzaGVsbApucG0gaW5zdGFsbCAtLXNhdmUtZGV2IHBhY3R1bSBwYWN0dW0tYXBpLWNvdmVyYWdlCmBgYAoKIyMgVXNhZ2UKCmBgYGphdmFzY3JpcHQKY29uc3QgcGFjdHVtID0gcmVxdWlyZSgncGFjdHVtJyk7CmNvbnN0IHBzYyA9IHJlcXVpcmUoJ3BhY3R1bS1hcGktY292ZXJhZ2UnKTsKY29uc3QgcmVwb3J0ZXIgPSBwYWN0dW0ucmVwb3J0ZXI7CgovLyBnbG9iYWwgYmVmb3JlIGJsb2NrCmJlZm9yZSgoKSA9PiB7CiAgcHNjLnNwZWNEYXRhID0gcmVxdWlyZSgiLi9zcGVjcy92MS9vYXMuanNvbiIpOwogIHJlcG9ydGVyLmFkZChwc2MpOwp9KTsKCi8vIGdsb2JhbCBhZnRlciBibG9jawphZnRlcigoKSA9PiB7CiAgcmV0dXJuIHJlcG9ydGVyLmVuZCgpOwp9KTsKYGBgCgojIyBSZXBvcnRlciBPcHRpb25zCgpgYGBqYXZhc2NyaXB0CmNvbnN0IHBzYyA9IHJlcXVpcmUoJ3BhY3R1bS1hcGktY292ZXJhZ2UnKTsKCi8vIG5hbWUgb2YgdGhlIHJlcG9ydCBmaWxlIC0gZGVmYXVsdHMgdG8gImFwaS1jb3YtcmVwb3J0Lmpzb24iCnBzYy5maWxlID0gJ3JlcG9ydC1uYW1lLmpzb24nOwoKLy8gZm9sZGVyIHBhdGggZm9yIHRoZSByZXBvcnQgZmlsZSAtIGRlZmF1bHRzIHRvICIuL3JlcG9ydHMiCnBzYy5wYXRoID0gJy4vcmVwb3J0cy1wYXRoJzsKCi8vIExvYWQgYSBsb2NhbCBKU09OIHNwZWMgZmlsZSAob3IgYSByZW1vdGUgb25lKQpwc2Muc3BlY0RhdGEgPSByZXF1aXJlKCIuL3NwZWNzL3YxL29hcy5qc29uIik7CgovLyBJZ25vcmUgc3BlY2lmaWMgcmVzcG9uc2UgY29kZXMKcHNjLmlnbm9yZVJlc3BvbnNlQ29kZXMgPSBbIDQyOSwgNTAwXQpgYGAKCiMjIyBSZXBvcnQgSnNvbiBPdXRwdXQgKGV4YW1wbGUpCmBgYGphdmFzY3JpcHQKewogICJiYXNlUGF0aCI6ICIvdjEiLAogICJjb3ZlcmFnZSI6IDAuNSwKICAiY292ZXJlZEFwaUNvdW50IjogNCwKICAibWlzc2VkQXBpQ291bnQiOiA0LAogICJ0b3RhbEFwaUNvdW50IjogOCwKICAiY292ZXJlZEFwaUxpc3QiOiBbCiAgICAiMjAwfGdldHwvdjEvaGVhbHRoIiwKICAgICIyMDB8Z2V0fC92MS9nZXRhbGxuaW5qYXMiLAogICAgIjIwMHxnZXR8L3YxL2dldG5pbmphcy97cmFua30iLAogICAgIjIwMHxnZXR8L3YxL2dldG5pbmphL3tyYW5rfS97bmFtZX0iCiAgXSwKICAibWlzc2VkQXBpTGlzdCI6IFsKICAgICIyMDB8cG9zdHwvdjEvaGVhbHRoIiwKICAgICIyMDB8Z2V0fC92MS9nZXRuaW5qYXMve2NsYW59L3tyYW5rfSIsCiAgICAiNDAwfGdldHwvdjEvZ2V0bmluamFzL3tjbGFufS97cmFua30iLAogICAgIjIwMHxnZXR8L3YxL2dldG5pbmphL3tuYW1lfSIKICBdCn0KYGBgCgojIyBOb3RlcwoKUmVhZCBtb3JlIGFib3V0IFBhY3R1bSBbaGVyZV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvcGFjdHVtKS4KCgpDb3BpZWQgZnJvbSBbcGFjdHVtLXN3YWdnZXItY292ZXJhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYWN0dW1qcy9wYWN0dW0tc3dhZ2dlci1jb3ZlcmFnZSkgYW5kIGFsdGVyZWQuCg== readmeEtag: '"17f4a8c494f7f7d0b33ba5d804ddd7bd55c85abe"' readmeLastModified: Thu, 26 Jan 2023 00:14:40 GMT repositoryId: 590919446 description: >- API Coverage Reporter for Pactum. Provides operation & response level coverage and supports JSON schemas for swagger/OAS specs. created: '2023-01-19T14:22:05Z' updated: '2023-01-25T19:42:47Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: honzabit logo: https://avatars.githubusercontent.com/u/65507986?v=4 license: MIT repoEtag: '"77286aa18abcaf3275bd99b3b24df9434c6c11f57eb691b5a6efb4284d6b8a9a"' repoLastModified: Wed, 25 Jan 2023 19:42:47 GMT category: Data Validators foundInMaster: true - source: openapi3 tags repository: https://github.com/guillermoleonpy/springboot-demo v3: true id: 91dbc7b2103912a7577b69224b9380aa repositoryMetadata: base64Readme: >- c3ByaW5nIGJvb3QgZGVtbyBhcHAKCmFjdHVhdG9yIHVybDogaHR0cDovL2xvY2FsaG9zdDo4MTgxL2FjdHVhdG9yOyB0byBjaGVjayB0aGUgYXBwbGljYXRpb24gc3RhdHVzIGFuZCBoZWFsdGgKIyMjClJhYmJpdCBNUSB0ZXN0CmNvbnNvbGU6IGh0dHA6Ly9sb2NhbGhvc3Q6MTU2NzIvIy9xdWV1ZXMKCgpTd2FnZ2VyCmh0dHA6Ly9sb2NhbGhvc3Q6ODE4MS9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKCg== readmeEtag: '"cbd0e9e4adc1e25834624293f9cf146df17dd829"' readmeLastModified: Wed, 05 Apr 2023 00:03:41 GMT repositoryId: 622243393 description: >- springboot-demo rest api interaction with rabbit mq, apache kafka and jpa. Exemplifies asynchronous processing. End points documented using OpenAPI 3 specification created: '2023-04-01T14:43:51Z' updated: '2023-04-05T08:57:23Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: GuillermoLeonPy logo: https://avatars.githubusercontent.com/u/75272198?v=4 repoEtag: '"6d71405a8d246c9b41f1f1f62a57bdbabfef9a918cf1bb979fa654e3b34eba4d"' repoLastModified: Wed, 05 Apr 2023 08:57:23 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/arldka/go-artifacthub v3: true id: 873de07499c4cced37621c9e193642f0 repositoryMetadata: base64Readme: >- IyBnby1hcnRpZmFjdGh1YgoKQXV0byBnZW5lcmF0ZWQgdXNpbmcgaHR0cHM6Ly9naXRodWIuY29tL2RlZXBtYXAvb2FwaS1jb2RlZ2VuIGZyb20gaHR0cHM6Ly9hcnRpZmFjdGh1Yi5pby9kb2NzL2FwaS8KCiMjIFVzYWdlCgpgYGAKY2xpZW50LCBlcnIgOj0gYXJ0aWZhY3RodWIuTmV3Q2xpZW50V2l0aFJlc3BvbnNlcygiaHR0cHM6Ly9hcnRpZmFjdGh1Yi5pby9hcGkvdjEiLCBhcnRpZmFjdGh1Yi5XaXRoUmVxdWVzdEVkaXRvckZuKGZ1bmMoY3R4IGNvbnRleHQuQ29udGV4dCwgcmVxICpodHRwLlJlcXVlc3QpIGVycm9yIHsKICByZXEuSGVhZGVyLlNldCgiWC1BUEktS0VZLUlEIiwgIktFWV9JRCIpCiAgcmVxLkhlYWRlci5TZXQoIlgtQVBJLUtFWS1TRUNSRVQiLCAiS0VZX1NFQ1JFVCIpCiAgcmV0dXJuIG5pbAp9KSkKaWYgZXJyICE9IG5pbCB7CiAgcmV0dXJuIG5pbCwgZXJyCn0KCnJlc3AsIGVyciA6PSBjbGllbnQuR2V0SGVsbVBhY2thZ2VEZXRhaWxzV2l0aFJlc3BvbnNlKGN0eCwgInJlcG8iLCAicGFja2FnZSIpCmlmIGVyciAhPSBuaWwgewogIHJldHVybiBuaWwsIGVycgp9CmBgYAo= readmeEtag: '"300551ecf0f8255bb007cf0bc91d1746f91829a9"' readmeLastModified: Sun, 06 Aug 2023 15:33:01 GMT repositoryId: 674820001 description: artifacthub go client created: '2023-08-04T21:44:40Z' updated: '2023-08-05T21:17:50Z' language: Makefile archived: false stars: 0 watchers: 0 forks: 0 owner: arldka logo: https://avatars.githubusercontent.com/u/43825600?v=4 license: MIT repoEtag: '"a74e2a21baa916c6fae3ffbb8975690bc695c413884b122aab7fa8dbfef95977"' repoLastModified: Sat, 05 Aug 2023 21:17:50 GMT category: Data Validators foundInMaster: true - source: openapi3 tags repository: https://github.com/hamedstack/hamedstack.openapi v3: true id: 59f071793cf1fbf863200c84206aef74 repositoryMetadata: base64Readme: IyBIYW1lZFN0YWNrLk9wZW5BcGk= readmeEtag: '"cc98a298ec37efbe3e094df3373a2febc3070190"' readmeLastModified: Mon, 02 Oct 2023 20:34:28 GMT repositoryId: 694755067 description: >- An extension library for Microsoft OpenAPI offering a collection of utility methods and enhancements for API development. created: '2023-09-21T16:15:52Z' updated: '2023-10-02T20:34:39Z' language: C# archived: false stars: 0 watchers: 1 forks: 0 owner: HamedStack logo: https://avatars.githubusercontent.com/u/145189717?v=4 license: MIT repoEtag: '"0a8288aa36fa15279e21fd0b07c67854060939350bfafb136156003dc056c76e"' repoLastModified: Mon, 02 Oct 2023 20:34:39 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/centeredge/centeredge.textpay v3: true repositoryMetadata: base64Readme: >- IyBDZW50ZXJFZGdlLlRleHRQYXkKCk5vdGU6IFRleHRQYXkgKGEuay5hLiBEYXNoTm93KSBpcyBub3cga25vd24gYXMgSHlmaW4uCgpPcGVuQVBJIDMuMCBzcGVjIGJhc2VkIG9uIFtIeWZpbiBkb2N1bWVudGF0aW9uXShodHRwczovL2NlbnRlcmVkZ2UuaHlmaW4uYXBwL2RvY3MvMi4wYy9pbnRyb2R1Y3Rpb24pLgo= readmeEtag: '"7f5feeb34d530e97cc3e8429d81d05d396f45946"' readmeLastModified: Mon, 20 Nov 2023 19:58:14 GMT repositoryId: 446992249 description: OpenAPI 3 specification and C# SDK for the TextPay API created: '2022-01-11T21:52:37Z' updated: '2022-01-21T13:17:48Z' language: null archived: false stars: 0 watchers: 3 forks: 0 owner: CenterEdge logo: https://avatars.githubusercontent.com/u/7118733?v=4 repoEtag: '"4f1ef5d835c4d8d7dc0195c0338b280085938f1ad567cc46339c3a0a94cf808d"' repoLastModified: Fri, 21 Jan 2022 13:17:48 GMT foundInMaster: true category: Server id: af095871df8bb9408585fb1b3445e4cb - source: openapi3 tags repository: https://github.com/jayllyz/openapi-fastify-petstore v3: true id: 636893cb11fb040ae0d25aa7a39dd8a6 repositoryMetadata: base64Readme: >- IyMgVGVjaCBTdGFjawoKLSBOb2RlLmpzCi0gVHlwZVNjcmlwdAotIEZhc3RpZnkKLSBvcGVuQVBJIDMKLSBQcmlzbWEKLSBQb3N0Z3JlU1FMCi0gRG9ja2VyCgojIyBSdW4gbG9jYWxseQoKVG8gcnVuIHRoZXNlIGNvbW1hbmRzIHlvdSBuZWVkIHRvIGluc3RhbGwgOgpbdGFza10oaHR0cHM6Ly90YXNrZmlsZS5kZXYvIy9pbnN0YWxsYXRpb24pCgpgYGBiYXNoCiMgU3RhcnQgZG9ja2VyCnRhc2sgZG9ja2VyCgojIEluc3RhbGwgZGVwZW5kZW5jaWVzCnRhc2sgaW5zdGFsbAoKIyBJbml0IGRhdGFiYXNlCnRhc2sgcHJpc21hCgojIFN0YXJ0IHNlcnZlcgp0YXNrIGRldgpgYGAKCiMjIEFQSSBEb2N1bWVudGF0aW9uCgotIDxodHRwOi8vbG9jYWxob3N0OjMwMDAvZG9jPgo= readmeEtag: '"c72e7442bf6f8781d74dc8bbb22ba6411194745d"' readmeLastModified: Mon, 11 Dec 2023 08:32:10 GMT repositoryId: 648663642 description: openAPI & Fastify learning project created: '2023-06-02T13:53:42Z' updated: '2024-01-05T13:58:34Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: Jayllyz logo: https://avatars.githubusercontent.com/u/16305216?v=4 repoEtag: '"92d02f97efa6b7ced7472514e4fdc1d4634635c1d881340f3269ab62564462ea"' repoLastModified: Fri, 05 Jan 2024 13:58:34 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/karsei/spring-swagger-snippet v3: true id: 3aa12468a60813b680865beef054f91b repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIOyCrOyaqSDqtIDroKggc25pcHBldCDrqqjsnYwKCmh0dHBzOi8vc3ByaW5nZG9jLm9yZy8KCiMjIOyEpOyglQoK7J2Y7KG07ISxIOy2lOqwgAoKYGBgZ3Jvb3Z5Ci8vIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNwcmluZ2RvYy9zcHJpbmdkb2Mtb3BlbmFwaS11aQppbXBsZW1lbnRhdGlvbiBncm91cDogJ29yZy5zcHJpbmdkb2MnLCBuYW1lOiAnc3ByaW5nZG9jLW9wZW5hcGktdWknLCB2ZXJzaW9uOiAnMS42LjEyJwpgYGAKCiog6riw67O4IOqyveuhnDogaHR0cDovL2xvY2FsaG9zdDo4MDgwL3YzL2FwaS1kb2NzLyAKICArIEpTT04g7Jy866GcIO2RnO2YhOuQmOyWtCDsnojsnYwKICArIGBhcHBsaWNhdGlvbi55bWxgIOyXkOyEnCBgc3ByaW5nZG9jLmFwaS1kb2NzLnBhdGhgIOyGjeyEseydhCDthrXtlbQg67OA6rK97ZWgIOyImCDsnojri6QuCiogVUkg6rK966GcOiBodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sCiAgKyBgYXBwbGljYXRpb24ueW1sYCDsl5DshJwgYHNwcmluZ2RvYy5zd2FnZ2VyLXVpLnBhdGhgIOyGjeyEseydhCDthrXtlbQg67OA6rK97ZWgIOyImCDsnojri6QuCgoKCgo= readmeEtag: '"fa9bca56aca32530625aaa5edaf164b2e87f8a55"' readmeLastModified: Tue, 25 Oct 2022 11:27:19 GMT repositoryId: 539034967 description: Spring Swagger(springdoc) 사용 관련 snippet created: '2022-09-20T14:34:10Z' updated: '2024-01-06T03:46:39Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: Karsei logo: https://avatars.githubusercontent.com/u/10175382?v=4 repoEtag: '"605c046dca25117cf9b64a785f6c458acd57261a888f4393ab7fc01acf440ac7"' repoLastModified: Sat, 06 Jan 2024 03:46:39 GMT category: - Low-level Tooling - Server Implementations foundInMaster: true oldLocations: - https://github.com/karsei/spring-swagger-example - source: openapi3 tags repository: https://github.com/ryusuke410/spicy-input v3: true id: ae51cb1bed0966edbcf5af77b2dd939e repositoryMetadata: base64Readme: >- IyMgU3BpY3kgSW5wdXQgKFN3YWdnZXIgVUkgUGx1Z2luKQoKVGhlcmUgaXMgbm8gc3RyYWlnaHRmb3J3YXJkIG1ldGhvZCBpbiB0aGUgc3RhbmRhcmQgZmVhdHVyZXMgb2YgU3dhZ2dlciBVSSB0byBwcm9ncmFtbWF0aWNhbGx5IG1hbmlwdWxhdGUgdXNlciBpbnB1dHMgc3VjaCBhcyBxdWVyeSBwYXJhbWV0ZXJzIGFuZCByZXF1ZXN0IGJvZGllcy4gU3BpY3kgSW5wdXQgcHJvdmlkZXMgYSBjb25jaXNlIGludGVyZmFjZSBmb3IgcmV0cmlldmluZywgc2V0dGluZywgYW5kIHN1YnNjcmliaW5nIHRvIHRoZXNlIHVzZXIgaW5wdXRzLgoKRnVydGhlcm1vcmUsIHVzZXIgaW5wdXRzIGFyZSBjb21wbGV0ZWx5IGxvc3QgdXBvbiByZWxvYWRpbmcgU3dhZ2dlciBVSS4gRHVyaW5nIEFQSSBkZXZlbG9wbWVudCwgdGhlcmUgaXMgb2Z0ZW4gYSBkZXNpcmUgdG8gcmVtZW1iZXIgdGhlIGlucHV0dGVkIGNvbnRlbnQuIFNwaWN5IElucHV0IG1ha2VzIGl0IGVhc3kgdG8gcmV0YWluIHRoZXNlIHVzZXIgaW5wdXRzLiBTd2FnZ2VyIFVJIGludGVsbGlnZW50bHkgc2F2ZXMgdXNlciBpbnB1dHMgYmFzZWQgb24gZWFjaCBBUEkgaW50ZXJmYWNlLCBzbyBpdCB3b3JrcyB3ZWxsIGluIG1vc3QgY2FzZXMgZXZlbiBpbiB1c2UgY2FzZXMgd2hlcmUgbXVsdGlwbGUgc3BlY3MgYXJlIGR5bmFtaWNhbGx5IHN3YXBwZWQuIEZvciB0aGUgc2FtZSByZWFzb24sIGlmIHRoZSBkZXRhaWxzIG9mIHRoZSBpbnRlcmZhY2UsIHN1Y2ggYXMgdGhlIHR5cGUgb2YgaW5wdXQgdmFsdWVzLCBhcmUgY2hhbmdlZCwgdGhlIHVzZXIgaW5wdXRzIGFyZSBub3QgcmV0YWluZWQuCgojIyBCYXNpYyBVc2FnZQoKIyMjIFdpdGggbnBtCgpgYGBzaGVsbApucG0gaSBzcGljeS1pbnB1dApgYGAKClBhc3MgdGhpcyBwbHVnaW4gdG8gb3B0aW9ucy4KCmBgYGpzCmNvbnN0IHNwaWN5SW5wdXQgPSByZXF1aXJlKCdzcGljeS1pbnB1dCcpCgpTd2FnZ2VyVUkoewogIHBsdWdpbnM6IFsKICAgIHNwaWN5SW5wdXQuZ2V0UGx1Z2luKCkKICBdCn0pCmBgYAoKVHlwZVNjcmlwdDoKCmBgYHR5cGVzY3JpcHQKaW1wb3J0ICogYXMgc3BpY3lJbnB1dCBmcm9tICdzcGljeS1pbnB1dCc7CgpTd2FnZ2VyVUkoewogIHBsdWdpbnM6IFsKICAgIHNwaWN5SW5wdXQuZ2V0UGx1Z2luKCkKICBdCn0pCmBgYAoKIyMjIFdpdGggVU5QS0cKCmBgYGh0bWwKPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cHM6Ly91bnBrZy5jb20vc3dhZ2dlci11aS1kaXN0L3N3YWdnZXItdWkuY3NzIiAvPgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vdW5wa2cuY29tL3N3YWdnZXItdWktZGlzdC9zd2FnZ2VyLXVpLWJ1bmRsZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3VucGtnLmNvbS9zcGljeS1pbnB1dCI+PC9zY3JpcHQ+Cgo8c2NyaXB0Pgp3aW5kb3cub25sb2FkID0gKCkgPT4gewogIFN3YWdnZXJVSUJ1bmRsZSh7CiAgICBwbHVnaW5zOiBbCiAgICAgIHNwaWN5SW5wdXQuZ2V0UGx1Z2luKCkKICAgIF0KICB9KQp9Cjwvc2NyaXB0PgpgYGAKCiMjIyBXaXRoIGpzRGVsaXZyCgpgYGBodG1sCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vc3dhZ2dlci11aS1kaXN0L3N3YWdnZXItdWkuY3NzIiAvPgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vc3dhZ2dlci11aS1kaXN0L3N3YWdnZXItdWktYnVuZGxlLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vc3BpY3ktaW5wdXQiPjwvc2NyaXB0PgoKPHNjcmlwdD4Kd2luZG93Lm9ubG9hZCA9ICgpID0+IHsKICBTd2FnZ2VyVUlCdW5kbGUoewogICAgcGx1Z2luczogWwogICAgICBzcGljeUlucHV0LmdldFBsdWdpbigpCiAgICBdCiAgfSkKfQo8L3NjcmlwdD4KYGBgCgojIyBPcHRpb25zCgojIyMgcGVyc2lzdFVzZXJJbnB1dHMKCllvdSBjYW4gY2hvb3NlIHRvIGFjdGl2YXRlIHRoZSBtZW1vcnkgZnVuY3Rpb24gZm9yIHVzZXIgaW5wdXRzIGJ5IHNwZWNpZnlpbmcgb3B0aW9ucy4gSXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0LgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgKiBhcyBzcGljeUlucHV0IGZyb20gJ3NwaWN5LWlucHV0JzsKClN3YWdnZXJVSSh7CiAgcGx1Z2luczogWwogICAgLy8gRGlzYWJsZSB0aGUgbWVtb3J5IG9mIHVzZXIgaW5wdXRzLgogICAgc3BpY3lJbnB1dC5nZXRQbHVnaW4oeyBwZXJzaXN0VXNlcklucHV0czogZmFsc2UgfSkKICBdCn0pCmBgYAoKIyMjIHByZWZpeAoKQnkgc3BlY2lmeWluZyBhbiBpbnRlcm5hbCBwcmVmaXgsIFNwaWN5IElucHV0IGNhbiBzZXBhcmF0ZSBuYW1lc3BhY2VzIGZvciBzdG9yaW5nIHZhcmlvdXMgdHlwZXMgb2YgZGF0YS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYChkZWZhdWx0KWAuIFRoaXMgZmVhdHVyZSBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGRlcGxveWluZyB0aGUgc2FtZSBzcGVjIEFQSSBhY3Jvc3MgbXVsdGlwbGUgZW52aXJvbm1lbnRzIGFuZCB2aWV3aW5nIHRoZW0gaW5kaXZpZHVhbGx5IHRocm91Z2ggU3dhZ2dlciBVSSBhcnJhbmdlZCB1bmRlciB0aGUgc2FtZSBkb21haW4gZm9yIGVhY2ggZW52aXJvbm1lbnQuIE5vcm1hbGx5LCB0aGVyZSBpcyBubyBuZWVkIHRvIHNwZWNpZnkgdGhpcy4KCmBgYHR5cGVzY3JpcHQKaW1wb3J0ICogYXMgc3BpY3lJbnB1dCBmcm9tICdzcGljeS1pbnB1dCc7CgpTd2FnZ2VyVUkoewogIHBsdWdpbnM6IFsKICAgIHNwaWN5SW5wdXQuZ2V0UGx1Z2luKHsgcHJlZml4OiAibXktZW52IiB9KQogIF0KfSkKYGBgCgojIyBBUElzCgpZb3UgY2FuIG1hbmlwdWxhdGUgdXNlciBpbnB1dHMgdGhyb3VnaCB0aGUgc3lzdGVtLgoKYGBgdHlwZXNjcmlwdApjb25zdCBzeXN0ZW0gPSBTd2FnZ2VyVUkoewogIHBsdWdpbnM6IFsKICAgIHNwaWN5SW5wdXQuZ2V0UGx1Z2luKCkKICBdCn0pCmBgYAoKIyMjIEdldCB1c2VyIGlucHV0cwoKWW91IGNhbiBnZXQgYWxsIGN1cnJlbnQgdXNlciBpbnB1dHMuCgpgYGB0eXBlc2NyaXB0CmNvbnN0IHNwaWN5SW5wdXRTZWxlY3RvcnMgPSBzcGljeUlucHV0LnNlbGVjdG9ycyhzeXN0ZW0pOwpjb25zdCBpbnB1dHMgPSBzcGljeUlucHV0U2VsZWN0b3JzLmlucHV0cygpOwpjb25zb2xlLmxvZyhpbnB1dHMpOwpgYGAKCiMjIyBTZXQgdXNlciBpbnB1dHMKCllvdSBjYW4gc2V0IHVzZXIgaW5wdXRzIHByb2dyYW1hdGljYWxseS4KCmBgYHR5cGVzY3JpcHQKY29uc3Qgc3BpY3lJbnB1dEFjdGlvbnMgPSBzcGljeUlucHV0LmFjdGlvbnMoc3lzdGVtKTsKCi8vIFNldCBwYXJhbWV0ZXIKc3BpY3lJbnB1dEFjdGlvbnMuc2V0UGFyYW1ldGVycygiL2NhdC97aWR9IiwgImdldCIsIHsKICAicGF0aC5pZC5oYXNoLTEwNDg3MDU4ODUiOiB7CiAgICAidmFsdWUiOiAieHh4eHgiCiAgfSwKfSk7Ci8vIE90aGVyIGZ1bmN0aW9ucwpzcGljeUlucHV0QWN0aW9ucy5zZXRSZXF1ZXN0Qm9keVZhbHVlOwpzcGljeUlucHV0QWN0aW9ucy5zZXRSZXF1ZXN0Q29udGVudFR5cGU7CnNwaWN5SW5wdXRBY3Rpb25zLnNldFJlc3BvbnNlQ29udGVudFR5cGU7CmBgYAoKWW91IGNhbiBpbmZlciB3aGF0IHNwZWNpZmljIHZhbHVlcyB0byBzZXQgYmFzZWQgb24gdGhlIGN1cnJlbnQgaW5wdXQgdmFsdWVzLgoKIyMjIFN1YnNjcmlwdGlvbgoKWW91IGNhbiBzdWJzY3JpYmUgdG8gY2hhbmdlcyBpbiB1c2VyIGlucHV0cy4KCmBgYHR5cGVzY3JpcHQKY29uc3Qgc3BpY3lJbnB1dEZuID0gc3BpY3lJbnB1dC5mbihzeXN0ZW0pOwovLyBzdWJzY3JpYmUKY29uc3QgdW5zdWJzY3JpYmUgPSBzcGljeUlucHV0Rm4uc3Vic2NyaWJlKCgpID0+IHsKICBjb25zdCBzcGljeUlucHV0U2VsZWN0b3JzID0gc3BpY3lJbnB1dC5zZWxlY3RvcnMoc3lzdGVtKTsKICBjb25zdCBpbnB1dHMgPSBzcGljeUlucHV0U2VsZWN0b3JzLmlucHV0cygpOwogIGNvbnNvbGUubG9nKGlucHV0cyk7Cn0pOwovLyB1bnN1YnNjcmliZQp1bnN1YnNjcmliZSgpOwpgYGAKCiMjIyBJbXBvcnQKCllvdSBjYW4gaW1wb3J0IHNhdmVkIHVzZXIgaW5wdXRzLgoKYGBgdHlwZXNjcmlwdApjb25zdCBzcGljeUlucHV0U2VsZWN0b3JzID0gc3BpY3lJbnB1dC5zZWxlY3RvcnMoc3lzdGVtKTsKLy8gR2V0IGlucHV0cwpjb25zdCBpbnB1dHMgPSBzcGljeUlucHV0U2VsZWN0b3JzLmlucHV0cygpOwoKLy8gLi4uCgpjb25zdCBzcGljeUlucHV0Rm4gPSBzcGljeUlucHV0LmZuKHN5c3RlbSk7Ci8vIEltcG9ydCBpbnB1dHMKc3BpY3lJbnB1dEZuLmltcG9ydElucHV0cyhpbnB1dHMpOwpgYGAK readmeEtag: '"dc8f5de6d85e6edb6447f2f709d54b4f179f57ec"' readmeLastModified: Mon, 08 Jan 2024 11:04:43 GMT repositoryId: 739820154 description: >- Spicy Input provides a concise interface for retrieving, setting, and subscribing to these user inputs. created: '2024-01-06T16:39:11Z' updated: '2024-01-23T13:16:16Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: ryusuke410 logo: https://avatars.githubusercontent.com/u/23029273?v=4 repoEtag: '"af28b9c9253a28157baa00f7892003f535a876d33cd4c2ef1941d56cf37d5e14"' repoLastModified: Tue, 23 Jan 2024 13:16:16 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/dog-egg/django-openapi v3: true id: 723c6dbf9a8a25ea1e4a110ec80b6c42 repositoryMetadata: base64Readme: >- IyMjIERlcHJlY2F0ZWQKClRoZSBsYXRlc3QgY29kZSBoYXMgYmVlbiBtb3ZlZCBpbnRvIHRoaXMgcHJvamVjdCAoW2RqYW5nby1vYXNpc10oaHR0cHM6Ly9naXRodWIuY29tL0RvZy1FZ2cvZGphbmdvLW9hc2lzKSkuCg== readmeEtag: '"a2ff9b7055d11ec3f7c5fc46c1cfa6e878ad6603"' readmeLastModified: Tue, 12 Mar 2024 01:37:47 GMT repositoryId: 507220717 description: null created: '2022-06-25T05:18:36Z' updated: '2024-03-12T01:41:41Z' language: Python archived: true stars: 0 watchers: 1 forks: 0 owner: Dog-Egg logo: https://avatars.githubusercontent.com/u/34474847?v=4 license: MIT repoEtag: '"ef90e280f9ecee435727363fc2024040d3c6ee6c8505822243368cb25f120839"' repoLastModified: Tue, 12 Mar 2024 01:41:41 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/faaizz/code_demos v3: true id: d7b43de508370ff60c841810e5859577 repositoryMetadata: base64Readme: >- IyBDb2RlIERlbW9zCkEgY2F0YWxvZyBvZiBkZW1vbnN0cmF0aW9uYWwgYXBwbGljYXRpb25zIGZvciBsZWFybmluZyBwdXJwb3Nlcy4KCi0gW0dvOiBTaW1wbGUgQm9va3MgQVBJXSguL2dvX2Jvb2tzX2FwaSkKLSBbR286IFNpbXBsZSBDaGF0IEFwcCBBUEldKC4vZ29fc2ltcGxlX2NoYXRfYXBwX2FwaSkKLSBbR286IFNpbXBsZSBXZWJzaXRlXSguL2dvX3NpbXBsZV93ZWJzaXRlKQo= readmeEtag: '"b8a4fb92e43fb259378e8288997ef1c5b8a0e135"' readmeLastModified: Thu, 28 Mar 2024 21:41:16 GMT repositoryId: 680496485 description: A catalog of demonstrational applications for learning purposes. created: '2023-08-19T12:39:49Z' updated: '2024-03-28T21:41:20Z' language: HTML archived: false stars: 0 watchers: 1 forks: 0 owner: Faaizz logo: https://avatars.githubusercontent.com/u/35711052?v=4 license: MIT repoEtag: '"87b58091ec301fe10dcfac769e0bc4d49394f6e6b061a5d5fcddcce4e0560824"' repoLastModified: Thu, 28 Mar 2024 21:41:20 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/cdn77/patroni-openapi v3: true id: aa12a36dcec3c4ba970075cd2afb2722 repositoryMetadata: base64Readme: >- IyBQYXRyb25pIE9wZW5BUEkgdjMgc3BlYwoKW1BhdHJvbmkgQVBJIERvY3NdKGh0dHBzOi8vcGF0cm9uaS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvcmVzdF9hcGkuaHRtbCkgYW5kIGl0cyBbc291cmNlXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vemFsYW5kby9wYXRyb25pL21hc3Rlci9kb2NzL3Jlc3RfYXBpLnJzdCkK readmeEtag: '"c6b76ad790ea9f89c5fcf910affee7b390d993ee"' readmeLastModified: Fri, 26 Apr 2024 09:10:40 GMT repositoryId: 754571505 description: Patroni OpenApi v3 spec created: '2024-02-08T10:42:41Z' updated: '2024-04-26T09:10:48Z' language: null archived: false stars: 0 watchers: 3 forks: 0 owner: cdn77 logo: https://avatars.githubusercontent.com/u/7156390?v=4 repoEtag: '"f4c340f23218ca1bf78dedaa7650a73a493500520874e3114a0f354e34b5524f"' repoLastModified: Fri, 26 Apr 2024 09:10:48 GMT foundInMaster: true category: Server Implementations - source: openapi3 tags repository: https://github.com/jalgos/gaard-api-docs v3: true repositoryMetadata: base64Readme: >- IyBHYWFyZCBBUEkgZG9jdW1lbnRhdGlvbgoKVGhlIEFQSSBkb2N1bWVudGF0aW9uIGlzIGJhc2VkIG9uIFtPcGVuQVBJIDMuMC4wXShodHRwczovL3N3YWdnZXIuaW8vKS4KCi0gQVBJIHNlcnZlcjogW2h0dHBzOi8vdmlzaW9uLmdhYXJkLmFpL3YxXShodHRwczovL3Zpc2lvbi5nYWFyZC5haS92MSkKLSBBUEkgZG9jdW1lbnRhdGlvbiB3ZWJzaXRlIFtodHRwczovL2RvY3MuZ2FhcmQuYWldKGh0dHBzOi8vZG9jcy5nYWFyZC5haSkKCiMjIFdvcmsgd2l0aCBBUEkKClRvIHdvcmsgd2l0aCBBUEkgeW91IG5lZWQgYEFQSV9LRVlgLiBQbGVhc2UgY29udGFjdCB1cyBjb250YWN0QGphbGdvcy5jb20gdG8gaGF2ZSBhY2Nlc3MuCgpUaGUgY2xhc3NpZmljYXRpb24gdXNlcyBgYW5hbHlzZV9pZGAgcGFyYW1ldGVyIHRoYXQgc2hvdWxkIGJlIGEgdW5pcXVlIG51bWJlciBmb3IgZWFjaCByZXF1ZXN0LiBZb3UgY2FuIHVzZSBhIGNvbnRpbnVvdXNseSBncm93aW5nIGNvdW50ZXIuCgojIyBVc2Ugc2NyaXB0cwoKQ2xhc3NpZmljYXRpb24gQVBJIGlzIGFzeW5jaHJvbm91cy4gVGhlIGdlbmVyYWwgZmxvdyBpcyB0byBzZW5kIHZpZGVvIHRvIGNsYXNzaWZpY2F0aW9uIGFuZCByZWNlaXZlIHRoZSByZXN1bHQgYnkgY2FsbGluZyBgL3Jlc3VsdGAgZW5kcG9pbnQgb3IgdXNpbmcgd2ViaG9vawoKQ2xvbmUgcmVwb3NpdG9yeQoKYGBgYmFzaApnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206amFsZ29zL2dhYXJkLWFwaS1kb2NzLmdpdApjZCBnYWFyZC1hcGktZG9jcwpgYGAKCkFkZCBgQVBJX0tFWWAgdG8gZW52aXJvbm1lbnQgdmFyaWFibGVzCgpgYGBiYXNoCmV4cG9ydCBBUElfS0VZPSJZT1VSIEFQSSBLRVkiCmBgYAoKIyMjIFBvc3QgdmlkZW8KClVzYWdlCgpgYGBiYXNoCmJpbi9wb3N0LXZpZGVvIFt2aWRlb19wYXRoXSBbYW5hbHlzZV9pZF0gW21ldGFkYXRhX3BhdGhdCmBgYAoKRXhhbXBsZXMKCmBgYGJhc2gKYmluL3Bvc3QtdmlkZW8KYmluL3Bvc3QtdmlkZW8gYmluL3ZpZGVvLm1vdgpiaW4vcG9zdC12aWRlbyBiaW4vdmlkZW8ubW92IDEyNTQ0NDgKYmluL3Bvc3QtdmlkZW8gYmluL3ZpZGVvLm1vdiAxMjU0NDQ4IGJpbi9tZXRhZGF0YS5qc29uCmBgYAoKIyMjIEdldCByZXN1bHRzCgpVc2FnZQoKYGBgYmFzaApiaW4vZ2V0LXJlc3VsdCBhbmFseXNlX2lkCmBgYAoKRXhhbXBsZQoKYGBgYmFzaApiaW4vZ2V0LXJlc3VsdCAxMjU0NDQ4CmBgYAoKIyMgTGljZW5zZXMKCkFuIGV4YW1wbGUgYGJpbi92aWRlby5tb3ZgIGlzIGEgcGFydCBvZiBbVGhlIFZJUkFUIFZpZGVvIERhdGFzZXRdKGh0dHBzOi8vdmlyYXRkYXRhLm9yZy8pCg== readmeEtag: '"6dda2275603cf249d3cd0b2c7705c1e094059da8"' readmeLastModified: Fri, 17 May 2024 08:34:10 GMT repositoryId: 249956431 description: Ukpik API documentation created: '2020-03-25T11:08:38Z' updated: '2024-05-17T08:34:17Z' language: Shell archived: false stars: 0 watchers: 6 forks: 0 owner: jalgos logo: https://avatars.githubusercontent.com/u/8981259?v=4 license: MIT repoEtag: '"28e1a8be042954160a46d2988e9c77fea34088f6f930a45e44b52b051e2b8251"' repoLastModified: Fri, 17 May 2024 08:34:17 GMT foundInMaster: true category: - Documentation - Server Implementations id: f5a7d4cdc09b86e19a1e7bee7b694ae2 oldLocations: - https://github.com/jalgos/ukpik-api-docs - source: openapi3 tags repository: https://github.com/antoniocesarlopes/bank-file-processor v3: true id: c5eddecb5c104cd3c4b53404d25dee68 repositoryMetadata: base64Readme: >- IyBiYW5rLWZpbGUtcHJvY2Vzc29yClBvQyBhaW1pbmcgdG8gdGVzdCBhIGZpbGUgcHJvY2Vzc2luZyBmbG93IGNvbnRhaW5pbmcgYmFua2luZyBpbmZvcm1hdGlvbiB1c2luZyBKYXZhLCBTcHJpbmcsIGFuZCB2YXJpb3VzIEFXUyByZXNvdXJjZXMuCg== readmeEtag: '"d07e4218923a55de1ad1009b37dbf0d54d99f37b"' readmeLastModified: Tue, 09 Jul 2024 02:38:57 GMT repositoryId: 826044403 description: >- PoC aiming to test a file processing flow containing banking information using Java, Spring, and various AWS resources. created: '2024-07-09T02:27:47Z' updated: '2024-07-09T02:39:20Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: antoniocesarlopes logo: https://avatars.githubusercontent.com/u/1909180?v=4 license: Apache-2.0 repoEtag: '"3c00de7baad0b04da9de887a72080210d3db43dde697b0e926fd66e32b8ee3d0"' repoLastModified: Tue, 09 Jul 2024 02:39:20 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/open-banking/offers v3: true repositoryMetadata: base64Readme: >- IyBvZmZlcnMKT3BlbiBCYW5raW5nIE9mZmVycyBBUEkgYnVpbHQgb24gdG9wIG9mIGxpZ2h0LTRqCg== readmeEtag: '"3dae9a104ad5caaf69e3ac2e18c1205dc6881761"' readmeLastModified: Thu, 25 Jul 2024 20:09:55 GMT repositoryId: 235865977 description: Open Banking Offers API built on top of light-4j created: '2020-01-23T19:06:03Z' updated: '2024-09-04T18:31:47Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"a1ce820ae393e5bd49cdb32215f0323d0fa65bc23ca5d72729008a10b2b17879"' repoLastModified: Wed, 04 Sep 2024 18:31:47 GMT foundInMaster: true category: - Documentation - Server - Parsers id: 3d4a34accc0845683d2874d3aef8f9fa - source: openapi3 tags repository: https://github.com/renatosouzaan/renatosouza-back-end-mvp v3: true id: 308c1c7d283c0184b97ebf0f381185f6 repositoryMetadata: base64Readme: >- IyBCYWNrLUVuZCAoQVBJKQoKVGhpcyBBUEkgaXMgYSBGbGFzay1iYXNlZCBSRVNUZnVsIEFQSSBmb3IgbWFuYWdpbmcgcHJvZHVjdHMgaW4gYSBtYXJrZXQgZGF0YWJhc2UuIEl0IGluY2x1ZGVzIHVzZXIgYXV0aGVudGljYXRpb24sIGFkbWluIGZ1bmN0aW9uYWxpdHksIGFuZCBDUlVEIG9wZXJhdGlvbnMgZm9yIHByb2R1Y3RzLiBUaGUgQVBJIGlzIGRvY3VtZW50ZWQgdXNpbmcgT3BlbkFQSSAzIGFuZCBpcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggYSBzZXBhcmF0ZSBmcm9udC1lbmQgYXBwbGljYXRpb24uIC0tIFRoZSBmcm9udC1lbmQgaGFzIGl0IG93biByZXBvc2l0b3J5LCB0aGUgbGluayBmb3IgaXMgYmVsb3cgLS0KCkZyb250LWVuZCByZXBvc2l0b3J5OiBodHRwczovL2dpdGh1Yi5jb20vUmVuYXRvU291emFBTi9SZW5hdG9Tb3V6YS9mcm9udC1lbmQtbXZwCgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSAgIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQotICAgW1NldHVwXSgjc2V0dXApCiAgICAtICAgW1ByZXJlcXVpc2l0ZXNdKCNwcmVyZXF1aXNpdGVzKQogICAgLSAgIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgICAtICAgW0V4cGxhbmF0aW9uXSgjZXhwbGFuYXRpb24pCi0gICBbQ29uZmlndXJhdGlvbl0oI2NvbmZpZ3VyYXRpb24pCi0gICBbUnVubmluZyB0aGUgU2VydmVyXSgjcnVubmluZy10aGUtc2VydmVyKQotICAgW0FQSSBEb2N1bWVudGF0aW9uXSgjYXBpLWRvY3VtZW50YXRpb24pCi0gICBbQVBJIEVuZHBvaW50c10oI2FwaS1lbmRwb2ludHMpCiAgICAtICAgW0dldCBhbGwgcHJvZHVjdHNdKCNnZXQtYWxsLXByb2R1Y3RzKQogICAgLSAgIFtBZGQgYSBwcm9kdWN0XSgjYWRkLWEtcHJvZHVjdCkKICAgIC0gICBbVXBkYXRlIGEgcHJvZHVjdF0oI3VwZGF0ZS1hLXByb2R1Y3QpCiAgICAtICAgW0RlbGV0ZSBhIHByb2R1Y3RdKCNkZWxldGUtYS1wcm9kdWN0KQogICAgLSAgIFtTZXQgdXNlciBhcyBhbiBhZG1pbl0oI3NldC11c2VyLWFzLWFuLWFkbWluKQogICAgLSAgIFtMb2dpbiBpbnRvIGFuIGFjY291bnRdKCNsb2dpbi1pbnRvLWFuLWFjY291bnQpCiAgICAtICAgW0xvZ291dCBmcm9tIGFjY291bnRdKCNsb2dvdXQtZnJvbS1hY2NvdW50KQogICAgLSAgIFtHZXQgYWxsIHVzZXJzXSgjZ2V0LWFsbC11c2VycykKLSAgIFtSZXNwb25zZXNdKCNyZXNwb25zZXMpCi0gICBbQXV0aGVudGljYXRpb25dKCNhdXRoZW50aWNhdGlvbikKLSAgIFtUZWNobm9sb2d5IFN0YWNrXSgjdGVjaG5vbG9neS1zdGFjaykKLSAgIFtDb250cmlidXRvcnNdKCNjb250cmlidXRvcnMpCi0gICBbTGljZW5zZV0oI2xpY2Vuc2UpCgojIyBGZWF0dXJlcwoKLSAgIFVzZXIgYXV0aGVudGljYXRpb24gd2l0aCBBdXRoMAotICAgQWRtaW4gdXNlciBtYW5hZ2VtZW50Ci0gICBDUlVEIG9wZXJhdGlvbnMgZm9yIHByb2R1Y3RzCi0gICBVc2VyLXNwZWNpZmljIHByb2R1Y3QgbWFuYWdlbWVudAotICAgT3BlbkFQSSAzIGRvY3VtZW50YXRpb24KCiMjIFNldHVwCgojIyMgUHJlcmVxdWlzaXRlcwoKLSAgIFB5dGhvbiAzLnggaW5zdGFsbGVkCi0gICBQaXAgcGFja2FnZSBtYW5hZ2VyCi0gICBBdXRoMCBhY2NvdW50IGFuZCBhcHBsaWNhdGlvbiBzZXR1cAoKIyMjIEluc3RhbGxhdGlvbgoKSXQncyBoaWdobHkgcmVjb21tZW5kZWQgdG8gdXNlIGEgdmlydHVhbCBlbnZpcm9ubWVudC4KCjEuIENsb25lIHRoZSByZXBvc2l0b3J5OgoKICAgIGBgYAogICAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5hdG9Tb3V6YUFOL1JlbmF0b1NvdXphLWJhY2stZW5kLW12cC5naXQKICAgIGNkIFJlbmF0b1NvdXphLWJhY2stZW5kLW12cAogICAgYGBgCgoyLiBDcmVhdGUgdmlydHVhbCBlbnZpcm9ubWVudCAoT3B0aW9uYWwpOgoKICAgIGBgYAogICAgcHl0aG9uIC1tIHZlbnYgZW52CiAgICBgYGAKCjMuIEFjY2VzcyB2aXJ0dWFsIGVudmlyb25tZW50IChPcHRpb25hbCk6CgogICAgT24gUG93ZXJzaGVsbDoKCiAgICBgYGAKICAgIC5cZW52XFNjcmlwdHNcYWN0aXZhdGUKICAgIGBgYAoKICAgIE9uIGJhc2g6CgogICAgYGBgCiAgICBzb3VyY2UgXGVudlxTY3JpcHRzXGFjdGl2YXRlCiAgICBgYGAKCjQuIEluc3RhbGwgZGVwZW5kZW5jaWVzOgoKICAgIGBgYAogICAgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dAogICAgYGBgCgo1LiBTZXQgdXAgdGhlIGRhdGFiYXNlOgogICAgYGBgCiAgICBmbGFzayBkYiBpbml0CiAgICBmbGFzayBkYiBtaWdyYXRlCiAgICBmbGFzayBkYiB1cGdyYWRlCiAgICBgYGAKCiMjIyBFeHBsYW5hdGlvbjoKClRoZXNlIGNvbW1hbmRzIChgZmxhc2sgZGIgaW5pdGAsIGBmbGFzayBkYiBtaWdyYXRlYCwgYGZsYXNrIGRiIHVwZ3JhZGVgKSBhcmUgdXNlZCB3aXRoIEZsYXNrLU1pZ3JhdGUgdG8gaW5pdGlhbGl6ZSBhIG1pZ3JhdGlvbnMgZGlyZWN0b3J5LCBnZW5lcmF0ZSBtaWdyYXRpb24gc2NyaXB0cyBiYXNlZCBvbiBjaGFuZ2VzIGluIHlvdXIgbW9kZWxzLCBhbmQgYXBwbHkgdGhvc2UgbWlncmF0aW9ucyB0byB5b3VyIGRhdGFiYXNlIHNjaGVtYS4KCi0gICAqKmBmbGFzayBkYiBpbml0YCoqOiBJbml0aWFsaXplcyBhIG5ldyBtaWdyYXRpb24gcmVwb3NpdG9yeSBpbiB5b3VyIHByb2plY3QsIGNyZWF0aW5nIGEgYG1pZ3JhdGlvbnNgIGRpcmVjdG9yeSB3aGVyZSBtaWdyYXRpb24gc2NyaXB0cyB3aWxsIGJlIHN0b3JlZC4KLSAgICoqYGZsYXNrIGRiIG1pZ3JhdGVgKio6IEFuYWx5emVzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHlvdXIgbW9kZWxzIGFuZCBnZW5lcmF0ZXMgYSBtaWdyYXRpb24gc2NyaXB0IHRoYXQgb3V0bGluZXMgdGhlIGNoYW5nZXMgbmVlZGVkIHRvIHN5bmNocm9uaXplIHRoZSBkYXRhYmFzZSBzY2hlbWEgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB5b3VyIG1vZGVscy4KLSAgICoqYGZsYXNrIGRiIHVwZ3JhZGVgKio6IEFwcGxpZXMgdGhlIG1pZ3JhdGlvbiBzY3JpcHQgdG8gdGhlIGRhdGFiYXNlLCBtYWtpbmcgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIHRvIHRoZSBzY2hlbWEgdG8gcmVmbGVjdCB0aGUgY2hhbmdlcyBpbiB5b3VyIG1vZGVscy4KClRoZXNlIHN0ZXBzIGFyZSBjcnVjaWFsIHdoZW5ldmVyIHlvdSBtYWtlIGNoYW5nZXMgdG8geW91ciBkYXRhYmFzZSBtb2RlbHMgKGBtb2RlbHMucHlgIGluIHRoaXMgY2FzZSkgdG8gZW5zdXJlIHRoYXQgeW91ciBkYXRhYmFzZSBzY2hlbWEgc3RheXMgdXAtdG8tZGF0ZSB3aXRoIHlvdXIgYXBwbGljYXRpb24ncyBkYXRhIG1vZGVsLgoKIyMjIENvbmZpZ3VyYXRpb24KCjEuIENyZWF0ZSBhIGAuZW52YCBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVudDoKICAgYGBgCiAgIEFVVEgwX0RPTUFJTj15b3VyX2F1dGgwX2RvbWFpbgogICBBUElfQVVESUVOQ0U9eW91cl9hcGlfYXVkaWVuY2UKICAgQ0xJRU5UX0lEPXlvdXJfY2xpZW50X2lkCiAgIENMSUVOVF9TRUNSRVQ9eW91cl9jbGllbnRfc2VjcmV0CiAgIGBgYAoKIyMjIFJ1bm5pbmcgdGhlIFNlcnZlcgoKVG8gc3RhcnQgdGhlIEZsYXNrIHNlcnZlcjoKCmBgYApmbGFzayBydW4KYGBgCgpvcgoKYGBgCnB5dGhvbiBydW4ucHkKYGBgCgpUaGUgQVBJIHdpbGwgYmUgYWNjZXNzaWJsZSBhdCBgaHR0cDovL2xvY2FsaG9zdDo1MDAwYC4KCiMjIyBBUEkgRG9jdW1lbnRhdGlvbgoKT3BlbkFQSSAzIGlzIGludGVncmF0ZWQgZm9yIEFQSSBkb2N1bWVudGF0aW9uLiBBZnRlciBzdGFydGluZyB0aGUgc2VydmVyLCB2aXNpdCBodHRwOi8vbG9jYWxob3N0OjUwMDAvb3BlbmFwaSB0byBleHBsb3JlIHRoZSBBUEkgZW5kcG9pbnRzIGFuZCBpbnRlcmFjdCB3aXRoIHRoZW0uCgojIyBLZXkgQVBJIEVuZHBvaW50cwoKIyMjIEdldCBhbGwgcHJvZHVjdHMKCi0gICAqKkdFVCoqIGAvcHJvZHVjdHNgCiAgICAtICAgUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHByb2R1Y3RzIGluIHRoZSBkYXRhYmFzZS4KCiMjIyBBZGQgYSBwcm9kdWN0CgotICAgKipQT1NUKiogYC9wcm9kdWN0cy9jcmVhdGVgCiAgICAtICAgQWRkcyBhIG5ldyBwcm9kdWN0IHRvIHRoZSBkYXRhYmFzZS4gUmVxdWlyZXMgSlNPTiBwYXlsb2FkIHdpdGggYG5hbWVgLCBgcHJpY2VgLCBhbmQgYHF1YW50aXR5YC4gKGF1dGhlbnRpY2F0ZWQpCgojIyMgVXBkYXRlIGEgcHJvZHVjdAoKLSAgICoqUFVUKiogYC9wcm9kdWN0cy88cHJvZHVjdF9pZD4vdXBkYXRlYAogICAgLSAgIFVwZ3JhZGVzIHRoZSBwcm9kdWN0IHdpdGggdGhlIHNwZWNpZmllZCBgcHJvZHVjdF9pZGAgZnJvbSB0aGUgZGF0YWJhc2UuIFJlcXVpcmVzIGEgSlNPTiBwYXlsb2FkIHdpdGggYW55IG9mIHRoZSBmb2xsb3dpbmcgZmllbGRzOiBkZXNjcmlwdGlvbiwgcHJpY2UsIG9yIHF1YW50aXR5LiAoYXV0aGVudGljYXRlZCkKCiMjIyBEZWxldGUgYSBwcm9kdWN0CgotICAgKipERUxFVEUqKiBgL3Byb2R1Y3RzLzxwcm9kdWN0X2lkPi9kZWxldGVgCiAgICAtICAgRGVsZXRlcyB0aGUgcHJvZHVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgYHByb2R1Y3RfaWRgIGZyb20gdGhlIGRhdGFiYXNlLiAoYXV0aGVudGljYXRlZCkKCiMjIyBTZXQgdXNlciBhcyBhbiBhZG1pbgotICAgKipQT1NUKiogYC9hZG1pbi9zZXRgCiAgICAtICAgQ2hhbmdlcyB0aGUgcHJpdmlsZWdlcyBvZiBhIHVzZXIgYnkgc2V0dGluZyBpdCBhcyBhbiBhZG1pbiAoYXV0aGVudGljYWRlZCkgKGFkbWluIG9ubHkpCgojIyMgTG9naW4gaW50byBhbiBhY2NvdW50Ci0gICAqKkdFVCoqIGAvbG9naW5gCiAgICAtICAgSW5pdGlhdGUgbG9naW4gcHJvY2VzcyBieSByZXF1ZXN0aW5nIGF1dGhlbnRpY2F0aW9uIHRocm91Z2ggQXV0aDAgQVBJCgojIyMgTG9nb3V0IGZyb20gYWNjb3VudAotICAgKipHRVQqKiBgL2xvZ291dGAKICAgIC0gICBMb2dzIG91dCB0aGUgY3VycmVudCBsb2dnZWQgdXNlciBieSByZXF1ZXN0aW5nIEF1dGgwIEFQSQoKIyMjIEdldCBhbGwgdXNlcnMKLSAgICoqR0VUKiogYC9hZG1pbi91c2Vyc2AKICAgIC0gICBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdXNlciBpbiB0aGUgZGF0YWJhc2UuIChhdXRoZW50aWNhZGVkKSAoYWRtaW4gb25seSkKCiMjIFJlc3BvbnNlcwoKLSAgIFN1Y2Nlc3NmdWwgcmVzcG9uc2VzIGluY2x1ZGUgYXBwcm9wcmlhdGUgSFRUUCBzdGF0dXMgY29kZXMgYW5kIEpTT04gcGF5bG9hZHMuCi0gICBFcnJvciByZXNwb25zZXMgcHJvdmlkZSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIGFuZCBzdGF0dXMgY29kZXMuCgojIyBBdXRoZW50aWNhdGlvbgoKVGhpcyBBUEkgdXNlcyBBdXRoMCBmb3IgYXV0aGVudGljYXRpb24uIFVzZXJzIG5lZWQgdG8gYXV0aGVudGljYXRlIHRocm91Z2ggdGhlIGAvbG9naW5gIGVuZHBvaW50LCB3aGljaCB3aWxsIHJlZGlyZWN0IHRvIEF1dGgwIGZvciBsb2dpbi4gQWZ0ZXIgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbiwgdXNlcnMgcmVjZWl2ZSBhIEpXVCB0b2tlbiB3aGljaCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIgZm9yIGF1dGhlbnRpY2F0ZWQgcmVxdWVzdHMuCgojIyBUZWNobm9sb2d5IFN0YWNrCgotICAgKipGbGFzayoqOiBNaWNybyB3ZWIgZnJhbWV3b3JrIGZvciBQeXRob24uCi0gICAqKkZsYXNrLVNRTEFsY2hlbXkqKjogU1FMQWxjaGVteSBleHRlbnNpb24gZm9yIEZsYXNrLgotICAgKipGbGFzay1NaWdyYXRlKio6IERhdGFiYXNlIG1pZ3JhdGlvbnMgZm9yIEZsYXNrIGFwcGxpY2F0aW9ucy4KLSAgICoqRmxhc2stQ09SUyoqOiBDT1JTIHN1cHBvcnQgZm9yIEZsYXNrLgotICAgKipGbGFzay1PcGVuQVBJMyoqOiBPcGVuQVBJIDMgaW50ZWdyYXRpb24gZm9yIEFQSSBkb2N1bWVudGF0aW9uLgotICAgKipBdXRobGliKio6IE9BdXRoIGFuZCBPcGVuSUQgQ29ubmVjdCBsaWJyYXJ5IGZvciBQeXRob24uCi0gICAqKlNRTGl0ZSoqOiBMaWdodHdlaWdodCwgc2VydmVybGVzcyBkYXRhYmFzZSBlbmdpbmUuCgojIyBDb250cmlidXRvcnMKCi0gICBSZW5hdG8gU291emEgZGUgQWxtZWlkYSBOZXRvIDxyZW5hdG9zb3V6YS5hbkBnbWFpbC5jb20+CgojIyBMaWNlbnNlCgpUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIC0gc2VlIHRoZSBbTElDRU5TRV0oUmVuYXRvU291emEtYmFjay1lbmQtbXZwXExJQ0VOU0UpIGZpbGUgZm9yIGRldGFpbHMuCg== readmeEtag: '"d4bd27a6b69ea3274fe382ee011cb2a934a8d3c0"' readmeLastModified: Fri, 30 Aug 2024 21:34:18 GMT repositoryId: 818426871 description: >- Back-end of the MVP developed for the Sprint: Advanced Back-end Development course at PUC-Rio. created: '2024-06-21T20:40:10Z' updated: '2024-09-02T20:47:54Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: RenatoSouzaAN logo: https://avatars.githubusercontent.com/u/85565491?v=4 license: MIT repoEtag: '"f9cb793ddc9a31c1db7f2caf3b8adf17ea54a5f937c8e4d788de8af91766a722"' repoLastModified: Mon, 02 Sep 2024 20:47:54 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mermade/openapi2js v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJMmpzCgpDb252ZXJ0IE9wZW5BcGkgKFN3YWdnZXIpIDIuMCAvIDMuMC54IEpTT04vWUFNTCBkZWZpbml0aW9uIHRvIHNpbXBsZSBKYXZhc2NyaXB0IEFQSSwgY29tcGxldGUgd2l0aCBKU0RPQywgc3VpdGFibGUgZm9yIHVzZSB3aXRoIHRoZSBPcGVuIE5pdHJvIFNESwoKIyMgVXNhZ2U6CgpgYGBqYXZhc2NyaXB0CiAgICB2YXIgb2EyanMgPSByZXF1aXJlKCdvcGVuYXBpMmpzJyk7CiAgICBvYTJqcy5vcGVuQVBJMmpzKGluRmlsZW5hbWUsb3V0RmlsZW5hbWUpOwpgYGAKCm9yCgpgYGBqYXZhc2NyaXB0CiAgICB2YXIgb2EyanMgPSByZXF1aXJlKCdvcGVuYXBpMmpzJyk7CiAgICB2YXIganNTdHIgPSBvYTJqcy5vcGVuQVBJMmpzKHN3YWdnZXJPYmplY3QpOwpgYGAKCg== readmeEtag: '"78076fdc01b5658a5434032d359652095c33b8cd"' readmeLastModified: Tue, 28 Apr 2020 14:33:31 GMT repositoryId: 61999590 description: Create simple JS SDK from OpenAPI (Swagger) 2.0/3.0.x json/yaml document created: '2016-06-26T17:09:25Z' updated: '2020-04-28T14:33:42Z' language: JavaScript archived: false stars: 0 watchers: 3 forks: 1 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause repoEtag: '"683c04de1d0c9151ff356281b5a04385cd1d029df1f5fc8010ac0f8e569d3712"' repoLastModified: Tue, 28 Apr 2020 14:33:42 GMT foundInMaster: true category: Parsers id: cc756d5b3fdee2221f89b92f3bb0a204 - source: openapi3 tags repository: https://github.com/arya-oss/swaggerui-addon v3: true repositoryMetadata: base64Readme: >- IyMgU3dhZ2dlciBVSSBGaXJlZm94IEFkZG9uCgpOb3QgcHVibGlzaGVkIHlldCB0byB0ZXN0IGluIGZpcmVmb3ggYnJvd3NlcgoKMS4gT3BlbiBGaXJlZm94IGFuZCBvcGVuIHRoaXMgbGluayBgYWJvdXQ6ZGVidWdnaW5nYC4KMi4gYExvYWQgVGVtcGVyb3J5IGFkZG9uYCBhbmQgc2VsZWN0IGBtYW5pZmVzdC5qc29uYCBmcm9tIGNvZGUgcmVwb3NpdG9yeS4KCiMjIyBPbiBPcGVyYSBvciBDaHJvbWUKMS4gb3BlbiBDaHJvbWUgb3IgT3BlcmEgYW5kIG9wZW4gdGhpcyBsaW5rIGBjaHJvbWU6Ly9leHRlbnNpb25zYAoyLiBgTG9hZCBVbnBhY2tlZCBFeHRlbnNpb25zYCBhbmQgc2VsZWN0IGB0aGlzIHJlcG9zaXRvcnkgZGlyYCBmcm9tIGNvZGUgcmVwby4K readmeEtag: '"502d80f581dee084d169388d0fa396d1eeefa46e"' readmeLastModified: Wed, 04 Apr 2018 06:45:52 GMT repositoryId: 127413705 description: Swagger UI addons to browse OpenAPI spec APIs created: '2018-03-30T10:09:45Z' updated: '2018-04-04T06:45:54Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: arya-oss logo: https://avatars.githubusercontent.com/u/8657040?v=4 license: MIT repoEtag: '"af0e4e461c290fa53c0aba842b042bc3de49d8e2f20061f8af752f402c1b5eb1"' repoLastModified: Wed, 04 Apr 2018 06:45:54 GMT foundInMaster: true category: Documentation id: 1b0b9179f7b33d4642a34006cdbd6439 - source: openapi3 tags repository: https://github.com/encima/openape v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBFClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kuY29tL2VuY2ltYS9vcGVuYXBlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kuY29tL2VuY2ltYS9vcGVuYXBlKQpbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZW5jaW1hL29wZW5hcGUpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZW5jaW1hL29wZW5hcGUpClshW0dvRG9jXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2VuY2ltYS9vcGVuYXBlP3N0YXR1cy5zdmcpXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2VuY2ltYS9vcGVuYXBlKQoKT3BlbkFQRSBpcyBkZXNpZ25lZCB0byBiZSBhIHNlcnZlciBleHRlbnNpb24gb2YgdGhlIGBPcGVuQVBJYCBzcGVjaWZpY2F0aW9uLCByZWFkaW5nIGluIGEgYFN3YWdnZXJgIGZpbGUgYW5kIGEgY29uZmlnIGFuZCBPcGVuQVBFIHdpbGwgZG8gYWxsIHRoZSBgY29kZSBtb25rZXlgIHN0dWZmIGZvciB5b3U6IGJ1aWxkaW5nIHRoZSByb3V0ZXMsIGFkZGluZyB0aGUgbW9kZWxzIHRvIGEgZGF0YWJhc2UsIHZhbGlkYXRpb24gZXRjLgoKTXVjaCBvZiB3ZWIgZGV2ZWxvcG1lbnQgY29uc2lzdHMgb2YgY3JlYXRpbmcgYW5kIG1haW50YWluaW5nIGFuIEFQSSB0aGF0IGlzIG1hcmdpbmFsbHkgZGlmZmVyZW50IGZyb20gdGhlIGxhc3Qgb25lPyBgU3dhZ2dlcmAgYW5kIGBPcGVuQVBJYCBoYXMgbWFkZSB0aGlzIG11Y2ggZWFzaWVyIHdpdGggY29kZSBnZW5lcmF0aW9uIHRvb2xzIGFuZCBmcmFtZXdvcmtzIHN1Y2ggYXMgYExvb3BiYWNrYC4gQWxtb3N0IGFsbCBtb2RlbHMgY3JlYXRlZCByZXF1aXJlIHRoZSBiYXNpYyBIVFRQIHZlcmJzIGFuZCBzdXBwb3J0ZWQgYWN0aW9ucyAoYFBVVGAsIGBERUxFVEVgIGV0YykgYnV0IG1vc3QgZXhpc3RpbmcgdG9vbHMgb25seSBnZW5lcmF0ZSBtZXRob2Qgc3R1YnMgc3RpbGwgcmVxdWlyaW5nIGFkZGl0aW9uIGNvZGUgZnJvbSBkZXZlbG9wZXJzIHRoaXMgYWltcyB0byBzb2x2ZSB0aGF0LgoKLS0tCgojIyBDb250cmlidXRpbmcKClBScyBhcmUgd2VsY29tZSwgdGhpcyBpcyBhIHN1cGVyIGVhcmx5IHZlcnNpb24gYW5kIGlzIGZhciBmcm9tIHBlcmZlY3QuCgpJZiB5b3UgYXJlIGEgYmVnaW5uZXIsIGNoZWNrIG91dCB0aGUgW2xhYmVsbGVkIG9wZW4gaXNzdWVzXShodHRwczovL2dpdGh1Yi5jb20vZW5jaW1hL29wZW5hcGUvaXNzdWVzP3E9aXMlM0Fpc3N1ZStpcyUzQW9wZW4rbGFiZWwlM0ElMjJnb29kK2ZpcnN0K2lzc3VlJTIyKS4KCi0tLQoKIyMgUmVxdWlyZW1lbnRzCgoqIFBvc3RncmVzIChyZW1vdGUgb3IgbG9jYWwpCiogR28KKiBBIGNvbmZpZyBmaWxlIChleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgYGNvbmZpZ2AgZm9sZGVyCgojIyBHRVQgU1RBUlRFRAoKMS4gYGdvIGdldCBnaXRodWIuY29tL2VuY2ltYS9vcGVuYXBlYAoyLiBgYGAKICAgIHBhY2thZ2UgbWFpbgoKICAgIGltcG9ydCAoCiAgICAgICAgImdpdGh1Yi5jb20vZW5jaW1hL29wZW5hcGUiCiAgICApCgogICAgZnVuYyBtYWluKCkgewogICAgICAgIG9wZW5hcGUuTmV3U2VydmVyKCJQQVRIL1RPL0NPTkZJRyIpCiAgICB9CiAgICBgYGAK readmeEtag: '"94b4fe835195b361031bdcb2c21946d996ada7c0"' readmeLastModified: Tue, 30 Oct 2018 10:19:44 GMT repositoryId: 140843698 description: >- Go get rid of your code monkey duties. Generate servers using only an OpenAPI spec created: '2018-07-13T12:20:39Z' updated: '2023-07-25T14:18:31Z' language: Go archived: false stars: 0 watchers: 2 forks: 1 owner: encima logo: https://avatars.githubusercontent.com/u/517923?v=4 license: GPL-3.0 repoEtag: '"7a38af669667fdd7eee63187c612c8284a679c9abc0b7e762b0cb049410b8ab5"' repoLastModified: Tue, 25 Jul 2023 14:18:31 GMT foundInMaster: true category: Parsers id: 0b24bbe6a0313b94cd166918598a6cb4 - source: openapi3 tags repository: https://github.com/quetz-al/quetzal-openapi-client v3: true repositoryMetadata: base64Readme: >- IyBxdWV0emFsLW9wZW5hcGktY2xpZW50ClF1ZXR6YWw6IGFuIEFQSSB0byBtYW5hZ2UgZGF0YSBmaWxlcyBhbmQgdGhlaXIgYXNzb2NpYXRlZCBtZXRhZGF0YS4KClRoaXMgUHl0aG9uIHBhY2thZ2UgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSBwcm9qZWN0OgoKLSBBUEkgdmVyc2lvbjogMC41LjAKLSBQYWNrYWdlIHZlcnNpb246IDAuNS4wCi0gQnVpbGQgcGFja2FnZTogb3JnLm9wZW5hcGl0b29scy5jb2RlZ2VuLmxhbmd1YWdlcy5QeXRob25DbGllbnRDb2RlZ2VuCkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlzaXQgW2h0dHBzOi8vcXVldHouYWxdKGh0dHBzOi8vcXVldHouYWwpCgojIyBSZXF1aXJlbWVudHMuCgpQeXRob24gMi43IGFuZCAzLjQrCgojIyBJbnN0YWxsYXRpb24gJiBVc2FnZQojIyMgcGlwIGluc3RhbGwKCllvdSBjYW4gaW5zdGFsbCBkaXJlY3RseSB3aXRoIGBgcGlwYGA6CgpgYGBzaApwaXAgaW5zdGFsbCBxdWV0emFsLW9wZW5hcGktY2xpZW50CmBgYAoKVGhlbiBpbXBvcnQgdGhlIHBhY2thZ2U6CmBgYHB5dGhvbgppbXBvcnQgcXVldHphbC5vcGVuYXBpX2NsaWVudCAKYGBgCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClBsZWFzZSBmb2xsb3cgdGhlIFtpbnN0YWxsYXRpb24gcHJvY2VkdXJlXSgjaW5zdGFsbGF0aW9uLS11c2FnZSkgYW5kIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmc6CgpgYGBweXRob24KaW1wb3J0IHF1ZXR6YWwub3BlbmFwaV9jbGllbnQKZnJvbSBxdWV0emFsLm9wZW5hcGlfY2xpZW50LnJlc3QgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIHBwcmludCBpbXBvcnQgcHByaW50Cgpjb25maWd1cmF0aW9uID0gcXVldHphbC5vcGVuYXBpX2NsaWVudC5Db25maWd1cmF0aW9uKCkKIyBDb25maWd1cmUgSFRUUCBiYXNpYyBhdXRob3JpemF0aW9uOiBiYXNpYwpjb25maWd1cmF0aW9uLnVzZXJuYW1lID0gJ1lPVVJfVVNFUk5BTUUnCmNvbmZpZ3VyYXRpb24ucGFzc3dvcmQgPSAnWU9VUl9QQVNTV09SRCcKCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xhc3MKYXBpX2luc3RhbmNlID0gcXVldHphbC5vcGVuYXBpX2NsaWVudC5BdXRoZW50aWNhdGlvbkFwaShxdWV0emFsLm9wZW5hcGlfY2xpZW50LkFwaUNsaWVudChjb25maWd1cmF0aW9uKSkKCnRyeToKICAgICMgTG9naW4uCiAgICBhcGlfcmVzcG9uc2UgPSBhcGlfaW5zdGFuY2UuYXV0aF9nZXRfdG9rZW4oKQogICAgcHByaW50KGFwaV9yZXNwb25zZSkKZXhjZXB0IEFwaUV4Y2VwdGlvbiBhcyBlOgogICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQXV0aGVudGljYXRpb25BcGktPmF1dGhfZ2V0X3Rva2VuOiAlc1xuIiAlIGUpCgpgYGAKCiMjIERvY3VtZW50YXRpb24gZm9yIEFQSSBFbmRwb2ludHMKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkucXVldHouYWwvYXBpL3YxKgoKQ2xhc3MgfCBNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKkF1dGhlbnRpY2F0aW9uQXBpKiB8IFsqKmF1dGhfZ2V0X3Rva2VuKipdKGRvY3MvQXV0aGVudGljYXRpb25BcGkubWQjYXV0aF9nZXRfdG9rZW4pIHwgKipQT1NUKiogL2F1dGgvdG9rZW4gfCBMb2dpbi4KKkF1dGhlbnRpY2F0aW9uQXBpKiB8IFsqKmF1dGhfbG9nb3V0KipdKGRvY3MvQXV0aGVudGljYXRpb25BcGkubWQjYXV0aF9sb2dvdXQpIHwgKipQT1NUKiogL2F1dGgvbG9nb3V0IHwgTG9nb3V0LgoqRGF0YUFwaSogfCBbKipwdWJsaWNfZmlsZV9kZXRhaWxzKipdKGRvY3MvRGF0YUFwaS5tZCNwdWJsaWNfZmlsZV9kZXRhaWxzKSB8ICoqR0VUKiogL2RhdGEvZmlsZXMve3V1aWR9IHwgRmV0Y2ggcHVibGljIGZpbGUuCipEYXRhQXBpKiB8IFsqKnB1YmxpY19maWxlX2ZldGNoKipdKGRvY3MvRGF0YUFwaS5tZCNwdWJsaWNfZmlsZV9mZXRjaCkgfCAqKkdFVCoqIC9kYXRhL2ZpbGVzLyB8IExpc3QgcHVibGljIGZpbGVzLgoqRGF0YUFwaSogfCBbKipwdWJsaWNfcXVlcnlfY3JlYXRlKipdKGRvY3MvRGF0YUFwaS5tZCNwdWJsaWNfcXVlcnlfY3JlYXRlKSB8ICoqUE9TVCoqIC9kYXRhL3F1ZXJpZXMvIHwgUHJlcGFyZSBhIHF1ZXJ5LgoqRGF0YUFwaSogfCBbKipwdWJsaWNfcXVlcnlfZGV0YWlscyoqXShkb2NzL0RhdGFBcGkubWQjcHVibGljX3F1ZXJ5X2RldGFpbHMpIHwgKipHRVQqKiAvZGF0YS9xdWVyaWVzL3txaWR9IHwgUXVlcnkgZGV0YWlscy4KKkRhdGFBcGkqIHwgWyoqcHVibGljX3F1ZXJ5X2ZldGNoKipdKGRvY3MvRGF0YUFwaS5tZCNwdWJsaWNfcXVlcnlfZmV0Y2gpIHwgKipHRVQqKiAvZGF0YS9xdWVyaWVzLyB8IExpc3QgcHVibGljIHF1ZXJpZXMuCipEYXRhQXBpKiB8IFsqKndvcmtzcGFjZV9jb21taXQqKl0oZG9jcy9EYXRhQXBpLm1kI3dvcmtzcGFjZV9jb21taXQpIHwgKipQVVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2NvbW1pdCB8IENvbW1pdCB3b3Jrc3BhY2UuCipEYXRhQXBpKiB8IFsqKndvcmtzcGFjZV9jcmVhdGUqKl0oZG9jcy9EYXRhQXBpLm1kI3dvcmtzcGFjZV9jcmVhdGUpIHwgKipQT1NUKiogL2RhdGEvd29ya3NwYWNlcy8gfCBDcmVhdGUgd29ya3NwYWNlLgoqRGF0YUFwaSogfCBbKip3b3Jrc3BhY2VfZGVsZXRlKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2VfZGVsZXRlKSB8ICoqREVMRVRFKiogL2RhdGEvd29ya3NwYWNlcy97d2lkfSB8IERlbGV0ZSB3b3Jrc3BhY2UuCipEYXRhQXBpKiB8IFsqKndvcmtzcGFjZV9kZXRhaWxzKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2VfZGV0YWlscykgfCAqKkdFVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0gfCBXb3Jrc3BhY2UgZGV0YWlscy4KKkRhdGFBcGkqIHwgWyoqd29ya3NwYWNlX2ZldGNoKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2VfZmV0Y2gpIHwgKipHRVQqKiAvZGF0YS93b3Jrc3BhY2VzLyB8IExpc3Qgd29ya3NwYWNlcy4KKkRhdGFBcGkqIHwgWyoqd29ya3NwYWNlX2ZpbGVfY3JlYXRlKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2VfZmlsZV9jcmVhdGUpIHwgKipQT1NUKiogL2RhdGEvd29ya3NwYWNlcy97d2lkfS9maWxlcy8gfCBVcGxvYWQgZmlsZS4KKkRhdGFBcGkqIHwgWyoqd29ya3NwYWNlX2ZpbGVfZGVsZXRlKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2VfZmlsZV9kZWxldGUpIHwgKipERUxFVEUqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2ZpbGVzL3t1dWlkfSB8IERlbGV0ZSBhIGZpbGUuCipEYXRhQXBpKiB8IFsqKndvcmtzcGFjZV9maWxlX2RldGFpbHMqKl0oZG9jcy9EYXRhQXBpLm1kI3dvcmtzcGFjZV9maWxlX2RldGFpbHMpIHwgKipHRVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2ZpbGVzL3t1dWlkfSB8IEZldGNoIGZpbGUuCipEYXRhQXBpKiB8IFsqKndvcmtzcGFjZV9maWxlX2ZldGNoKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2VfZmlsZV9mZXRjaCkgfCAqKkdFVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vZmlsZXMvIHwgTGlzdCBmaWxlcy4KKkRhdGFBcGkqIHwgWyoqd29ya3NwYWNlX2ZpbGVfc2V0X21ldGFkYXRhKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2VfZmlsZV9zZXRfbWV0YWRhdGEpIHwgKipQVVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2ZpbGVzL3t1dWlkfSB8IFJld3JpdGUgbWV0YWRhdGEuCipEYXRhQXBpKiB8IFsqKndvcmtzcGFjZV9maWxlX3VwZGF0ZV9tZXRhZGF0YSoqXShkb2NzL0RhdGFBcGkubWQjd29ya3NwYWNlX2ZpbGVfdXBkYXRlX21ldGFkYXRhKSB8ICoqUEFUQ0gqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2ZpbGVzL3t1dWlkfSB8IE1vZGlmeSBtZXRhZGF0YS4KKkRhdGFBcGkqIHwgWyoqd29ya3NwYWNlX3F1ZXJ5X2NyZWF0ZSoqXShkb2NzL0RhdGFBcGkubWQjd29ya3NwYWNlX3F1ZXJ5X2NyZWF0ZSkgfCAqKlBPU1QqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L3F1ZXJpZXMvIHwgUHJlcGFyZSBhIHF1ZXJ5LgoqRGF0YUFwaSogfCBbKip3b3Jrc3BhY2VfcXVlcnlfZGV0YWlscyoqXShkb2NzL0RhdGFBcGkubWQjd29ya3NwYWNlX3F1ZXJ5X2RldGFpbHMpIHwgKipHRVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L3F1ZXJpZXMve3FpZH0gfCBRdWVyeSBkZXRhaWxzLgoqRGF0YUFwaSogfCBbKip3b3Jrc3BhY2VfcXVlcnlfZmV0Y2gqKl0oZG9jcy9EYXRhQXBpLm1kI3dvcmtzcGFjZV9xdWVyeV9mZXRjaCkgfCAqKkdFVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vcXVlcmllcy8gfCBMaXN0IHF1ZXJpZXMuCipEYXRhQXBpKiB8IFsqKndvcmtzcGFjZV9zY2FuKipdKGRvY3MvRGF0YUFwaS5tZCN3b3Jrc3BhY2Vfc2NhbikgfCAqKlBVVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vc2NhbiB8IFVwZGF0ZSB2aWV3cy4KKlB1YmxpY0FwaSogfCBbKipwdWJsaWNfZmlsZV9kZXRhaWxzKipdKGRvY3MvUHVibGljQXBpLm1kI3B1YmxpY19maWxlX2RldGFpbHMpIHwgKipHRVQqKiAvZGF0YS9maWxlcy97dXVpZH0gfCBGZXRjaCBwdWJsaWMgZmlsZS4KKlB1YmxpY0FwaSogfCBbKipwdWJsaWNfZmlsZV9mZXRjaCoqXShkb2NzL1B1YmxpY0FwaS5tZCNwdWJsaWNfZmlsZV9mZXRjaCkgfCAqKkdFVCoqIC9kYXRhL2ZpbGVzLyB8IExpc3QgcHVibGljIGZpbGVzLgoqUHVibGljQXBpKiB8IFsqKnB1YmxpY19xdWVyeV9jcmVhdGUqKl0oZG9jcy9QdWJsaWNBcGkubWQjcHVibGljX3F1ZXJ5X2NyZWF0ZSkgfCAqKlBPU1QqKiAvZGF0YS9xdWVyaWVzLyB8IFByZXBhcmUgYSBxdWVyeS4KKlB1YmxpY0FwaSogfCBbKipwdWJsaWNfcXVlcnlfZmV0Y2gqKl0oZG9jcy9QdWJsaWNBcGkubWQjcHVibGljX3F1ZXJ5X2ZldGNoKSB8ICoqR0VUKiogL2RhdGEvcXVlcmllcy8gfCBMaXN0IHB1YmxpYyBxdWVyaWVzLgoqUHVibGljQXBpKiB8IFsqKndvcmtzcGFjZV9jcmVhdGUqKl0oZG9jcy9QdWJsaWNBcGkubWQjd29ya3NwYWNlX2NyZWF0ZSkgfCAqKlBPU1QqKiAvZGF0YS93b3Jrc3BhY2VzLyB8IENyZWF0ZSB3b3Jrc3BhY2UuCipQdWJsaWNBcGkqIHwgWyoqd29ya3NwYWNlX2ZldGNoKipdKGRvY3MvUHVibGljQXBpLm1kI3dvcmtzcGFjZV9mZXRjaCkgfCAqKkdFVCoqIC9kYXRhL3dvcmtzcGFjZXMvIHwgTGlzdCB3b3Jrc3BhY2VzLgoqUXVlcnlBcGkqIHwgWyoqcHVibGljX3F1ZXJ5X2NyZWF0ZSoqXShkb2NzL1F1ZXJ5QXBpLm1kI3B1YmxpY19xdWVyeV9jcmVhdGUpIHwgKipQT1NUKiogL2RhdGEvcXVlcmllcy8gfCBQcmVwYXJlIGEgcXVlcnkuCipRdWVyeUFwaSogfCBbKipwdWJsaWNfcXVlcnlfZGV0YWlscyoqXShkb2NzL1F1ZXJ5QXBpLm1kI3B1YmxpY19xdWVyeV9kZXRhaWxzKSB8ICoqR0VUKiogL2RhdGEvcXVlcmllcy97cWlkfSB8IFF1ZXJ5IGRldGFpbHMuCipRdWVyeUFwaSogfCBbKipwdWJsaWNfcXVlcnlfZmV0Y2gqKl0oZG9jcy9RdWVyeUFwaS5tZCNwdWJsaWNfcXVlcnlfZmV0Y2gpIHwgKipHRVQqKiAvZGF0YS9xdWVyaWVzLyB8IExpc3QgcHVibGljIHF1ZXJpZXMuCipRdWVyeUFwaSogfCBbKip3b3Jrc3BhY2VfcXVlcnlfY3JlYXRlKipdKGRvY3MvUXVlcnlBcGkubWQjd29ya3NwYWNlX3F1ZXJ5X2NyZWF0ZSkgfCAqKlBPU1QqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L3F1ZXJpZXMvIHwgUHJlcGFyZSBhIHF1ZXJ5LgoqUXVlcnlBcGkqIHwgWyoqd29ya3NwYWNlX3F1ZXJ5X2RldGFpbHMqKl0oZG9jcy9RdWVyeUFwaS5tZCN3b3Jrc3BhY2VfcXVlcnlfZGV0YWlscykgfCAqKkdFVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vcXVlcmllcy97cWlkfSB8IFF1ZXJ5IGRldGFpbHMuCipRdWVyeUFwaSogfCBbKip3b3Jrc3BhY2VfcXVlcnlfZmV0Y2gqKl0oZG9jcy9RdWVyeUFwaS5tZCN3b3Jrc3BhY2VfcXVlcnlfZmV0Y2gpIHwgKipHRVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L3F1ZXJpZXMvIHwgTGlzdCBxdWVyaWVzLgoqV29ya3NwYWNlQXBpKiB8IFsqKnB1YmxpY19xdWVyeV9kZXRhaWxzKipdKGRvY3MvV29ya3NwYWNlQXBpLm1kI3B1YmxpY19xdWVyeV9kZXRhaWxzKSB8ICoqR0VUKiogL2RhdGEvcXVlcmllcy97cWlkfSB8IFF1ZXJ5IGRldGFpbHMuCipXb3Jrc3BhY2VBcGkqIHwgWyoqd29ya3NwYWNlX2NvbW1pdCoqXShkb2NzL1dvcmtzcGFjZUFwaS5tZCN3b3Jrc3BhY2VfY29tbWl0KSB8ICoqUFVUKiogL2RhdGEvd29ya3NwYWNlcy97d2lkfS9jb21taXQgfCBDb21taXQgd29ya3NwYWNlLgoqV29ya3NwYWNlQXBpKiB8IFsqKndvcmtzcGFjZV9kZXRhaWxzKipdKGRvY3MvV29ya3NwYWNlQXBpLm1kI3dvcmtzcGFjZV9kZXRhaWxzKSB8ICoqR0VUKiogL2RhdGEvd29ya3NwYWNlcy97d2lkfSB8IFdvcmtzcGFjZSBkZXRhaWxzLgoqV29ya3NwYWNlQXBpKiB8IFsqKndvcmtzcGFjZV9mZXRjaCoqXShkb2NzL1dvcmtzcGFjZUFwaS5tZCN3b3Jrc3BhY2VfZmV0Y2gpIHwgKipHRVQqKiAvZGF0YS93b3Jrc3BhY2VzLyB8IExpc3Qgd29ya3NwYWNlcy4KKldvcmtzcGFjZUFwaSogfCBbKip3b3Jrc3BhY2VfZmlsZV9jcmVhdGUqKl0oZG9jcy9Xb3Jrc3BhY2VBcGkubWQjd29ya3NwYWNlX2ZpbGVfY3JlYXRlKSB8ICoqUE9TVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vZmlsZXMvIHwgVXBsb2FkIGZpbGUuCipXb3Jrc3BhY2VBcGkqIHwgWyoqd29ya3NwYWNlX2ZpbGVfZGVsZXRlKipdKGRvY3MvV29ya3NwYWNlQXBpLm1kI3dvcmtzcGFjZV9maWxlX2RlbGV0ZSkgfCAqKkRFTEVURSoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vZmlsZXMve3V1aWR9IHwgRGVsZXRlIGEgZmlsZS4KKldvcmtzcGFjZUFwaSogfCBbKip3b3Jrc3BhY2VfZmlsZV9kZXRhaWxzKipdKGRvY3MvV29ya3NwYWNlQXBpLm1kI3dvcmtzcGFjZV9maWxlX2RldGFpbHMpIHwgKipHRVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2ZpbGVzL3t1dWlkfSB8IEZldGNoIGZpbGUuCipXb3Jrc3BhY2VBcGkqIHwgWyoqd29ya3NwYWNlX2ZpbGVfZmV0Y2gqKl0oZG9jcy9Xb3Jrc3BhY2VBcGkubWQjd29ya3NwYWNlX2ZpbGVfZmV0Y2gpIHwgKipHRVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2ZpbGVzLyB8IExpc3QgZmlsZXMuCipXb3Jrc3BhY2VBcGkqIHwgWyoqd29ya3NwYWNlX2ZpbGVfc2V0X21ldGFkYXRhKipdKGRvY3MvV29ya3NwYWNlQXBpLm1kI3dvcmtzcGFjZV9maWxlX3NldF9tZXRhZGF0YSkgfCAqKlBVVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vZmlsZXMve3V1aWR9IHwgUmV3cml0ZSBtZXRhZGF0YS4KKldvcmtzcGFjZUFwaSogfCBbKip3b3Jrc3BhY2VfZmlsZV91cGRhdGVfbWV0YWRhdGEqKl0oZG9jcy9Xb3Jrc3BhY2VBcGkubWQjd29ya3NwYWNlX2ZpbGVfdXBkYXRlX21ldGFkYXRhKSB8ICoqUEFUQ0gqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L2ZpbGVzL3t1dWlkfSB8IE1vZGlmeSBtZXRhZGF0YS4KKldvcmtzcGFjZUFwaSogfCBbKip3b3Jrc3BhY2VfcXVlcnlfY3JlYXRlKipdKGRvY3MvV29ya3NwYWNlQXBpLm1kI3dvcmtzcGFjZV9xdWVyeV9jcmVhdGUpIHwgKipQT1NUKiogL2RhdGEvd29ya3NwYWNlcy97d2lkfS9xdWVyaWVzLyB8IFByZXBhcmUgYSBxdWVyeS4KKldvcmtzcGFjZUFwaSogfCBbKip3b3Jrc3BhY2VfcXVlcnlfZGV0YWlscyoqXShkb2NzL1dvcmtzcGFjZUFwaS5tZCN3b3Jrc3BhY2VfcXVlcnlfZGV0YWlscykgfCAqKkdFVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vcXVlcmllcy97cWlkfSB8IFF1ZXJ5IGRldGFpbHMuCipXb3Jrc3BhY2VBcGkqIHwgWyoqd29ya3NwYWNlX3F1ZXJ5X2ZldGNoKipdKGRvY3MvV29ya3NwYWNlQXBpLm1kI3dvcmtzcGFjZV9xdWVyeV9mZXRjaCkgfCAqKkdFVCoqIC9kYXRhL3dvcmtzcGFjZXMve3dpZH0vcXVlcmllcy8gfCBMaXN0IHF1ZXJpZXMuCipXb3Jrc3BhY2VBcGkqIHwgWyoqd29ya3NwYWNlX3NjYW4qKl0oZG9jcy9Xb3Jrc3BhY2VBcGkubWQjd29ya3NwYWNlX3NjYW4pIHwgKipQVVQqKiAvZGF0YS93b3Jrc3BhY2VzL3t3aWR9L3NjYW4gfCBVcGRhdGUgdmlld3MuCgoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgTW9kZWxzCgogLSBbQmFzZU1ldGFkYXRhXShkb2NzL0Jhc2VNZXRhZGF0YS5tZCkKIC0gW0Vycm9yXShkb2NzL0Vycm9yLm1kKQogLSBbRmlsZUNvbnRlbnRzXShkb2NzL0ZpbGVDb250ZW50cy5tZCkKIC0gW01ldGFkYXRhQnlGYW1pbHldKGRvY3MvTWV0YWRhdGFCeUZhbWlseS5tZCkKIC0gW1BhZ2luYXRlZEZpbGVzXShkb2NzL1BhZ2luYXRlZEZpbGVzLm1kKQogLSBbUGFnaW5hdGVkUXVlcmllc10oZG9jcy9QYWdpbmF0ZWRRdWVyaWVzLm1kKQogLSBbUGFnaW5hdGVkV29ya3NwYWNlc10oZG9jcy9QYWdpbmF0ZWRXb3Jrc3BhY2VzLm1kKQogLSBbUGFnaW5hdGlvbkVudmVsb3BlXShkb2NzL1BhZ2luYXRpb25FbnZlbG9wZS5tZCkKIC0gW1F1ZXJ5XShkb2NzL1F1ZXJ5Lm1kKQogLSBbUXVlcnlOb1Jlc3VsdHNdKGRvY3MvUXVlcnlOb1Jlc3VsdHMubWQpCiAtIFtUb2tlbl0oZG9jcy9Ub2tlbi5tZCkKIC0gW1dvcmtzcGFjZV0oZG9jcy9Xb3Jrc3BhY2UubWQpCgoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgQXV0aG9yaXphdGlvbgoKCiMjIGFwaUtleQoKLSAqKlR5cGUqKjogQVBJIGtleQotICoqQVBJIGtleSBwYXJhbWV0ZXIgbmFtZSoqOiBYLUFQSS1LRVkKLSAqKkxvY2F0aW9uKio6IEhUVFAgaGVhZGVyCgoKIyMgYmFzaWMKCi0gKipUeXBlKio6IEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24KCgojIyBiZWFyZXIKCi0gKipUeXBlKio6IEJlYXJlciBhdXRoZW50aWNhdGlvbgoKCiMjIEF1dGhvcgoKc3VwcG9ydEBxdWV0ei5hbAoKCg== readmeEtag: '"a307d4ef7f078d19d06e81ef5fa413627c835ccd"' readmeLastModified: Thu, 17 Oct 2019 12:49:40 GMT repositoryId: 172245557 description: Autogenerated Python client for the Quetzal API created: '2019-02-23T17:55:11Z' updated: '2019-10-17T12:50:29Z' language: Python archived: false stars: 0 watchers: 1 forks: 1 owner: quetz-al logo: https://avatars.githubusercontent.com/u/47522179?v=4 license: BSD-3-Clause repoEtag: '"302d8987cf2fb123c6d87e03927f05386433c7e4aaad3246cc45a30602abc901"' repoLastModified: Thu, 17 Oct 2019 12:50:29 GMT foundInMaster: true category: Description Validators id: 5fbdc491c2818ac4f76e96167dc5fde6 - source: openapi3 tags repository: https://github.com/ucl/isenseflu-openapi v3: true repositoryMetadata: base64Readme: >- IyBpc2Vuc2VmbHUtb3BlbmFwaQoKT3BlbkFQSSBEZWZpbml0aW9ucyBmb3IgaS1zZW5zZSBmbHUgQVBJCgpTcGVjaWZpY2F0aW9uOiBodHRwOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMgoKIyMgVmFsaWRhdGlvbgoKVXNlIHRoZSBbT3BlbiBBUEkgRW5mb3JjZXIgQ0xJXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLWVuZm9yY2VyLWNsaS8pIHRvb2wgZm9yIHZhbGlkYXRpb24uIEluc3RhbGwgd2l0aCBgbnBtYDoKCmBgYApucG0gaW5zdGFsbCAtZyBvcGVuYXBpLWVuZm9yY2VyLWNsaQpgYGAKClZhbGlkYXRlIHRoZSBkZWZpbml0aW9ucyBmaWxlOgoKYGBgCm9wZW5hcGktZW5mb3JjZXIgdmFsaWRhdGUgb3BlbmFwaS55YW1sCmBgYAoKIyMgQ29weXJpZ2h0CgomY29weTsgMjAxOSBVQ0wgKFtodHRwczovL3d3dy51Y2wuYWMudWtdKGh0dHBzOi8vd3d3LnVjbC5hYy51aykpLgoKIyMgTGljZW5zZQoKWyFbTGljZW5zZTogR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtR1BMdjMtYmx1ZS5zdmcpXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjApCgpHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRSAgClZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgpUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K readmeEtag: '"3eaebec6e4b740e9d144d1fa175af428132da576"' readmeLastModified: Thu, 06 Jun 2019 15:43:49 GMT repositoryId: 190232496 description: OpenAPI Definitions for i-sense flu API created: '2019-06-04T15:42:42Z' updated: '2019-06-06T15:43:57Z' language: null archived: false stars: 0 watchers: 3 forks: 0 owner: UCL logo: https://avatars.githubusercontent.com/u/2951150?v=4 license: GPL-3.0 repoEtag: '"c31728d51e2979cff72a7b452df2266dd53100f5291b0e44b986352bd6caa0dc"' repoLastModified: Thu, 06 Jun 2019 15:43:57 GMT foundInMaster: true category: - Server - Parsers id: d293478945a898b421f0b65793024fbe - source: openapi3 tags repository: https://github.com/serialberry/openapispec v3: true repositoryMetadata: base64Readme: >- IyBHb2xhbmcgc3RydWN0cyBmb3IgT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiB2MwoKVGhlcmUgYXJlIG1hbnkgb3BlbnNvdXJjZSBnb2xhbmcgcGFja2FnZXMgaW1wbGVtZW50IE9wZW4gQVBJIHYzIHRvb2xpbmcgZm9yIHZhbGlkYXRpb24sIG1hcnNoYWwsIGFuZCB1bm1hcnNoYWwgZnVuY3Rpb25zLgoKTW9zdCBvZiB0aG9zZSBwcm9qZWN0cyBhZGRyZXNzIHNwZWNpZmljIHByb2JsZW0sIG9yIGltcGxlbWVudCBmdW5jdGlvbmFsaXR5IGFyb3VuZCB0b29saW5nIHN1cHBvcnQsIHRoZXJlZm9yZSB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBibG9hdGVkIHdpdGggc3BlY2lmaWMgbWV0aG9kIGltcGxlbWVudGF0aW9ucy4KCkFpbSBvZiB0aGlzIHJlcG9zaXRvcnkgdG8gbWFpbnRhaW4gZ29sYW5nIGRhdGEgc3RydWN0dXJlIGZvciBPcGVuIEFQSSBzcGVjaWZpY2F0aW9uIHZlcnNpb24gMy54IHdpdGhvdXQgc3BlY2lmaWMgdG9vbGluZyBmdW5jdGlvbnMuCgpQYXJzaW5nLCB2YWxpZGF0aW9uLCBhbmQgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25zIGFyZSB1cHRvIHRoZSByZWZlcmVuY2UgcHJvamVjdC4KCkhvd2V2ZXIsIHBsZWFzZSBub3RlIGF0IHRoZSBtb21lbnQgdGhpcyBpcyBhbiBleHBlcmltZW50YWwgcmVwb3NpdG9yeS4KCiMjIFByb2plY3Qgc3R1Y3R1cmUKClByb2plY3Qgc3RydWN0dXJlIGlzIGJhc2VkIG9uIFtnb2xhbmctc3RhbmRhcmRzXShodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nLXN0YW5kYXJkcy9wcm9qZWN0LWxheW91dCkgcmVmZXJlbmNlIGRvY3MuCgojIyMgW3BrZ10oaHR0cHM6Ly9naXRodWIuY29tL01haGlmZXJuYW5kby9vcGVuYXBpc3BlYy90cmVlL21hc3Rlci9wa2cpCgpQcm92aWRlcyBkYXRhIHN0cnVjdHVyZXMgZm9yIFtPcGVuIEFQSSBzcGVjaWZpY2F0aW9uIHZlcnNpb24gMy4wLjNdKGh0dHA6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zKQ== readmeEtag: '"5d5c7832c291597aa140438fb778534906f13778"' readmeLastModified: Sat, 27 Jun 2020 19:35:17 GMT repositoryId: 266426426 description: Open API 3.0 spec Golang package created: '2020-05-23T21:59:30Z' updated: '2020-06-27T19:35:26Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: serialberry logo: https://avatars.githubusercontent.com/u/49234321?v=4 repoEtag: '"ea627fb802b75a12bd1dde8e666ffc4bc85c4a49f48ef118fb8da0324111cf5d"' repoLastModified: Sat, 27 Jun 2020 19:35:26 GMT foundInMaster: true category: Parsers id: d4476af9dc7e5b842f16249529c19e64 - source: openapi3 tags repository: https://github.com/b1a9id/open-api-sample v3: true repositoryMetadata: base64Readme: >- IyBTYW1wbGUgZm9yIHNwcmluZ2RvYy1vcGVuYXBpCjxhIGhyZWY9Imh0dHBzOi8vdHJhY2tnaXQuY29tIj4KPGltZyBzcmM9Imh0dHBzOi8vc2Z5LmN4L3UveGRmIiBhbHQ9InRyYWNrZ2l0LXZpZXdzIiAvPgo8L2E+CgojIyBUcnkgaXQKUnVuIEFwcApgYGAKJCAuL2dyYWRsZXcgY2xlYW4gYm9vdFJ1bgpgYGAKClBhdGhzCmBgYApHRVQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS92My9hcGktZG9jcy8KICBPcGVuQVBJIGRvY3VtZW50YXRpb24gaW4gSlNPTiBmb3JtYXQKICAKR0VUIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvdjMvYXBpLWRvY3MueWFtbAogIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBpbiBZQU1MIGZvcm1hdAogIApHRVQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS9zd2FnZ2VyLXVpLmh0bWwKICBTd2FnZ2VyIFVJIEhUTUwgZG9jdW1lbnRhdGlvbgpgYGAK readmeEtag: '"4548b91fd02b699b03a721461db516f22a47d4ed"' readmeLastModified: Sun, 25 Oct 2020 07:58:27 GMT repositoryId: 295139675 description: Sample for springdoc-openapi created: '2020-09-13T11:45:33Z' updated: '2020-10-25T07:58:30Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: b1a9id logo: https://avatars.githubusercontent.com/u/19252181?v=4 repoEtag: '"9559b5d7b0b7f7f9ff16558d209009577891b69c2c59590b07f605028873c598"' repoLastModified: Sun, 25 Oct 2020 07:58:30 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: 2d23b950c126fb81e9b8209e48e86ec6 - source: openapi3 tags repository: https://github.com/banedd/api-template v3: true repositoryMetadata: base64Readme: >- IyBFeHByZXNzIEFQSSBUZW1wbGF0ZQoKVGhpcyBpcyBhIHNpbXBsZSBFeHByZXNzIEFQSSB0ZW1wbGF0ZSB0byB1c2UgZm9yIEFQSSBkZXZlbG9wbWVudC4gRmVhdHVyZXM6CgotIENvbnRhaW5lcml6ZWQgZm9yIHVzZSB3aXRoIERvY2tlcgotIE5vZGVtb24gZm9yIGRldmVsb3BtZW50IHRvIGFsbG93IGVhc3kgcmVsb2FkaW5nIG9uIGNoYW5nZQotIEluY2x1ZGVzIFN3YWdnZXIgVUkgYW5kIEpTT05kb2MgYXV0b2dlbmVyYXRpb24KLSBMb2dnaW5nIHNlcnZpY2UgdG8gYSByb2xsaW5nIGZpbGUKLSBSZXF1ZXN0IGxvZ3MKLSBDb25zb2xlIGxvZ2dpbmcgZm9yIGRldmVsb3BtZW50IG1vZGUKLSBTUUxpdGUgYXMgdGhlIGRhdGFiYXNlIGZvciB0aGUgZXhhbXBsZSwgY2FuIGJlIGNoYW5nZWQgdG8gZGlmZmVyZW50IGRhdGEgc291cmNlIGFzIGRlc2lyZWQKLSBWUyBDb2RlIGRlYnVnZ2luZyBjb25maWd1cmF0aW9uCgojIEJ1aWxkaW5nIGFuZCBydW5uaW5nIHRoZSBwcm9qZWN0CgotIFJ1biBgbnBtIGluc3RhbGxgIHRvIGluc3RhbGwgYWxsIHRoZSBwcm9qZWN0IGRlcGVuZGVuY2llcwotIFJ1biBgc3RhcnQuc2hgIHRvIHJ1biB0aGUgcHJvamVjdCBsb2NhbGx5CgpOT1RFOiBUbyBlbmFibGUgU3dhZ2dlciBVSSBzZXQgKipOT0RFX0VOVioqIHRvICoqZGV2ZWxvcG1lbnQqKgo= readmeEtag: '"8226bbe5eb4fba9669a52202e8894e5b1d89826f"' readmeLastModified: Tue, 31 Mar 2020 14:50:13 GMT repositoryId: 240870348 description: Express API Template created: '2020-02-16T10:16:17Z' updated: '2020-03-31T14:50:22Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: baneDD logo: https://avatars.githubusercontent.com/u/661366?v=4 repoEtag: '"6ed3254ade30335372649a0c9ef0ad209df21bf02e8911b1fb1bca8194ae5708"' repoLastModified: Tue, 31 Mar 2020 14:50:22 GMT foundInMaster: true category: Server Implementations id: a406abd521e3706405bf7f0d846b56da - source: openapi3 tags repository: https://github.com/amitvsavant/jinja-template-2-open-api v3: true repositoryMetadata: base64Readme: >- IyBKaW5qYSBUZW1wbGF0ZSB0byBPcGVuIEFQSSAzLjAgWUFNTApUaGlzIHJlcG9zaXRvcnkgcHJvdmlkZXMgc2FtcGxlIFB5dGhvbiAzLjcgY29kZSB0byBnZW5lcmF0ZSBPcGVuIEFQSSAzLjAgc3BlY2lmaWNhdGlvbiBZQU1MIGZpbGVzIHVzaW5nIEppbmphMiB0ZW1wbGF0ZS4gSXQgc2hvd3MgaG93IHRvIGdlbmVyYXRlIG11bHRpcGxlIHNpbWlsYXIgQVBJIHNwZWNpZmljYXRpb25zIGZyb20gYnkgYXBwbHlpbmcgZGF0YSBpbiBKc29uIGZvcm1hdCB0byBhIEppbmphMiB0ZW1wbGF0ZSBvZiBhbiBPcGVuIEFQSSBzcGVjaWZpY2F0aW9uIGZpbGUuIFRoZSBjb2RlIGdlbmVyYXRlcyBBUEkgc3BlY2lmaWNhdGlvbnMgZm9yIHNpbXBsZSBQZXQgU3RvcmUgYW5kIEJvb2sgU3RvcmUgQVBJcyB1c2luZyBhIGdlbmVyaWMgU3RvcmUgdGVtcGxhdGUgZmlsZS4KCiMjIFN0cnVjdHVyZSBvZiB0aGUgcHJvamVjdAoKIyMjIGRhdGEgZm9sZGVyCgoqKmRhdGEuanNvbjoqKiAgVGhlIEpzb24gZmlsZSBjb250YWluaW5nIHRoZSBkYXRhIG9mIG11bHRpcGxlIEFQSSBzcGVjaWZpY2F0aW9ucyB0byBiZSBnZW5lcmF0ZWQuCgojIyMgdGVtcGxhdGVzIGZvbGRlcgoqKnN0b3JlLXRlbXBsYXRlLnlhbWw6KiogR2VuZXJpYyB0ZW1wbGF0ZSBmaWxlIG9mIGEgU3RvcmUgQVBJLgoKIyMjIGdlbmVyYXRlZC1zcGVjIGZvbGRlcgpUaGUgZGVzdGluYXRpb24gZm9sZGVyIHdoZXJlIHRoZSBmaW5hbCBzcGVjaWZpY2F0aW9uIGZpbGVzIHdpbGwgYmUgY3JlYXRlZCBhZnRlciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBwcm9ncmFtLgoqKnN0b3JlLXRlbXBsYXRlLnlhbWw6KiogR2VuZXJpYyB0ZW1wbGF0ZSBmaWxlIG9mIGEgU3RvcmUgQVBJLgoKIyMgTGljZW5zZQotIFRoZSBzb3VyY2UgY29kZSBpbiB0aGlzIHByb2plY3QgaXMgcHVibGlzaGVkIHVuZGVyIFtNSVQgTGljZW5zZV0oaHR0cHM6Ly9naXRodWIuY29tL2FtaXR2c2F2YW50L2ppbmphLXRlbXBsYXRlLTItb3Blbi1hcGkvYmxvYi9tYXN0ZXIvTElDRU5TRS5tZCku readmeEtag: '"bf594ca21dffe3f58f07b4b03466a31d7542c6c3"' readmeLastModified: Wed, 30 Dec 2020 20:39:11 GMT repositoryId: 325632221 description: Jinja Template to Open API 3.0 YAML created: '2020-12-30T19:31:30Z' updated: '2020-12-30T20:41:32Z' language: Python archived: false stars: 0 watchers: 1 forks: 1 owner: amitvsavant logo: https://avatars.githubusercontent.com/u/30230131?v=4 license: MIT repoEtag: '"9341bf1c92122d64f6856ee600d76f5dff6f23d66a85311bffca94125a759510"' repoLastModified: Wed, 30 Dec 2020 20:41:32 GMT foundInMaster: true category: - Testing - Parsers id: 4b5cc797d55cc42f1877fa0657359f84 - source: openapi3 tags repository: https://github.com/claudiocifuentesalonso/spring-cloud-service-discovery v3: true repositoryMetadata: base64Readme: >- IyBzcHJpbmctY2xvdWQtc2VydmljZS1kaXNjb3ZlcnkKSW4gdGhpcyByZXBvc2l0b3J5IHdlIGhhdmUgdGhyZWUgbWljcm9zZXJ2aWNlcyB0byBpbXBsZW1lbnQgc2VydmljZSBkaXNjb3ZlcnkgdXNpbmcgc3ByaW5nIGNsb3VkLgoKIyMgVXNhZ2UKClR3byBvcHRpb25zIHRvIHJ1biB0aGUgYXBwbGljYXRpb25zOgoxLiBFeGVjdXRlIGVhY2ggYXBwbGljYXRpb24gc2VwYXJldGx5IGluIG9yZGVyIChldXJla2Etc2VydmVyLCBvcGVuLWFwaS1zcHJpbmdkb2MgYW5kIG9wZW4tYXBpLWNsaWVudCkgdXNpbmc6CgpgYGBiYXNoCm12biBzcHJpbmctYm9vdDpydW4KYGBgCgoyLiBCdWlsZCBkb2NrZXIgaW1hZ2VzIChEb2NrZXJmaWxlIHByZXNlbnQgZm9yIGVhY2ggYXBwbGljYXRpb24pIGFuZCBleGVjdXRlIHRoZSBhcHBsaWNhdGlvbnMgdXNpbmcgZG9ja2VyIGNvbXBvc2UgKGBgYGRvY2tlci1jb21wb3NlLXltbGBgYCBmaWxlKToKYGBgCmRvY2tlci1jb21wb3NlIHVwCmBgYAo= readmeEtag: '"fba2f44b0689de19be3bc8bbbf38fd459cd0d9b6"' readmeLastModified: Mon, 01 Feb 2021 01:29:43 GMT repositoryId: 333291815 description: >- In this repository we have three microservices to implement service discovery using spring cloud. created: '2021-01-27T03:28:13Z' updated: '2021-02-01T01:36:08Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: ClaudioCifuentesAlonso logo: https://avatars.githubusercontent.com/u/31392117?v=4 repoEtag: '"2297b1a0c2ee173629b1dd05826e3c167ad9ee4d2f1fe33a31cb548124dea583"' repoLastModified: Mon, 01 Feb 2021 01:36:08 GMT foundInMaster: true category: - Server - Server Implementations id: f59f91b9c34d83fff8f1dd6fc14a1d11 - source: openapi3 tags repository: https://github.com/hbhb-devloper/fund-center v3: true repositoryMetadata: base64Readme: IyBmdW5kLWNlbnRlcgoK5a6i5oi36LWE6YeRCg== readmeEtag: '"867d964240e298943475ac76d178e072b48681d9"' readmeLastModified: Sat, 20 Mar 2021 11:13:49 GMT repositoryId: 349701643 description: 财务管理系统-后端服务-客户资金 created: '2021-03-20T11:08:07Z' updated: '2021-03-20T12:23:49Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"adaa25718e000389c0dee6a18e05dbf0042114eda0e345f6f784a3c3b89c6269"' repoLastModified: Sat, 20 Mar 2021 12:23:49 GMT foundInMaster: true category: - Server - Parsers id: 1d0ac0e131ecd3bc50ae91c067464b7c - source: openapi3 tags repository: https://github.com/tanqidong1992/code-doc-tool v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJ5paH5qGj5bel5YW3Cui/meaYr+S4gOS4quWIhuaekFNwcmluZ+mhueebruS4reeahEphdmHmupDku6PnoIEo5rOo6YeKKeS7peWPimNsYXNz5paH5Lu255Sf5oiQT3BlbkFQSeaOpeWPo+aWh+aho+eahOW3peWFty4KIyMg5Yqf6IO954m55oCnCi0g5o+Q5L6b6ZuG5Lit5byP55qE5o6l5Y+j5paH5qGj566h55CG5bel5YW3KOmbhuaIkFN3YWdnZXItVUnvvIxTd2FnZ2VyLUVkaXRvcinjgIIKLSDliIbmnpDms6jph4rnlJ/miJBPcGVuQVBJ5o6l5Y+j5paH5qGj77yM5peg6ZyAU3dhZ2dlcuazqOino+OAggotIOaUr+aMgeWIhuaekE1hdmVu5aSW6YOo5rqQ5Luj56CBSmFy5paH5Lu244CCCi0g5o+Q5L6bTWF2ZW7mj5Lku7bnlKjkuo7pobnnm67pm4bmiJDjgIIKLSDmlK/mjIHnlJ/miJBNYXJrZG93buaWh+aho+OAggotIOaUr+aMgU9wZW5BUEnmoKHpqozjgIIKIyMg5L2/55SoCiMjIyDpg6jnvbLmjqXlj6PmlofmoaPnrqHnkIblt6XlhbcKMS4g57yW6K+R5oiQZG9ja2Vy6ZWc5YOPCiAgIGBgYHNoZWxsCiAgIGNkIG9wZW5hcGktdWkKICAgbXZuIGNvbXBpbGUgamliOmJ1aWxkVGFyCiAgIGBgYAoyLiDlr7zlhaVkb2NrZXLplZzlg48KICAgYGBgc2hlbGwKICAgZG9ja2VyIGltYWdlIGxvYWQgLWkgdGFyZ2V0L2ppYi1pbWFnZS50YXIgCiAgIGBgYAozLiDphY3nva7ov5DooYwKICAgYGBgc2hlbGwKICAgZG9ja2VyIHJ1biAtLXJtIC10aSAtZSBTWVNURU1fTkFNRT0iWFhY57O757uf5o6l5Y+j5paH5qGjIiAtcCA4MDgwOjgwL3RjcCBobnZtbnMvb3BlbmFwaS11aTowLjAuMgogICBgYGAKICAgZG9ja2VyLWNvbXBvc2Xlj4LogIMKICAgYGBgeW1sCiAgIHZlcnNpb246ICIyLjQiCiAgIHNlcnZpY2VzOgogICAgIHRlc3Q6CiAgICAgIGltYWdlOiBobnZtbnMvb3BlbmFwaS11aTowLjAuMgogICAgICByZXN0YXJ0OiBhbHdheXMKICAgICAgcG9ydHM6CiAgICAgICAgLSA5MDAwOjgwL3RjcAogICAgICB2b2x1bWVzOgogICAgICAgIC0gL2RhdGEvYXBwL2FwaWRvYy90ZXN0L2RhdGE6L2RhdGEKICAgICAgICAtIC9kYXRhL2FwcC9hcGlkb2MvdGVzdC9oaXN0b3J5Oi9oaXN0b3J5CiAgICAgIG1lbV9saW1pdDogIjEwMjRNIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBTWVNURU1fTkFNRTogIlhYWOezu+e7n+aOpeWPo+aWh+ahoyIKICAgYGBgCjQuIOaJk+W8gOa1j+iniOWZqOiuv+mXruS4u+mhte+8mmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9kb2MvCiMjIyDpobnnm67pm4bmiJBNYXZlbuaPkuS7tgoxLiDliqDlhaXmj5Lku7blnZDmoIcKICAgYGBgeG1sCiAgICAgICAgICAgIDxwbHVnaW4+CiAgICAgICAgICAgICAgICA8Z3JvdXBJZD5jb20uaG5nZC50b29sPC9ncm91cElkPgogICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29kZWdlbi1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjYuMC1TTkFQU0hPVDwvdmVyc2lvbj4KICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gY29udHJvbGxlcuexu+aJgOWcqOWMheWQjeensCAtLT4KICAgICAgICAgICAgICAgICAgICA8cGFja2FnZUZpbHRlcj5jb20uaG5nZC53ZWIuY29udHJvbGxlcjwvcGFja2FnZUZpbHRlcj4KICAgICAgICAgICAgICAgICAgICA8IS0tIOmFjee9rueUn+aIkG9wZW5hcGnmlofmoaPnmoTln7rnoYDkv6Hmga/phY3nva7mlofku7bmiYDlnKjkvY3nva4gCiAgICAgICAgICAgICAgICAgICAgPGNvbmZGaWxlUGF0aD4ke3Byb2plY3QuYmFzZWRpcn0vYnVpbGQtY29uZmlnL29wZW5hcGkuanNvbjwvY29uZkZpbGVQYXRoPiAtLT4KICAgICAgICAgICAgICAgICAgICA8IS0tT3BlbkFQSSBVSSDmnI3liqHlnLDlnYAs6YWN572u5ZCO5o6l5Y+j5paH5qGj5bCG6Ieq5Yqo5LiK5Lyg5Yiw6K+l5pyN5YqhIC0tPgogICAgICAgICAgICAgICAgICAgIDxvcGVuQVBJVUlTZXJ2ZXI+bG9jYWxob3N0OjgwODA8L29wZW5BUElVSVNlcnZlcj4KICAgICAgICAgICAgICAgICAgICA8IS0tIOa6kOeggeWIhuaekOaOkumZpOi3r+W+hCAtLT4KICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZXM+KiovY29tL2huZ2QvbW9kZWwvKkV4YW1wbGUuamF2YSwqKi9jb20vaG5nZC9kYW8vKi5qYXZhPC9leGNsdWRlcz4KICAgICAgICAgICAgICAgICAgICA8IS0tIOa6kOeggeWIhuaekOWMheWQq+i3r+W+hCAtLT4KICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZXM+KiovY29tL2huZ2QvKiovKi5qYXZhLGNvbS9obmdkLyoqLyouamF2YTwvaW5jbHVkZXM+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBvcGVuYXBp5o6l5Y+j5Z+656GA5Zyw5Z2AIC0tPgogICAgICAgICAgICAgICAgICAgIDxvcGVuQVBJU2VydmVyVVJMPmh0dHBzOi8vbG9jYWxob3N0OjgwODAvYXBpPC9vcGVuQVBJU2VydmVyVVJMPgogICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgogICAgICAgICAgICA8L3BsdWdpbj4KICAgYGBgCjIuIOeUn+aIkOaOpeWPo+aWh+aho+W5tuS4iuS8oOWIsOaOpeWPo+aWh+aho+euoeeQhuW3peWFtwogICBgYGBzaGVsbAogICBtdm4gY29tcGlsZSBjb2RlZ2VuOm9wZW5hcGkKICAgYGBgCjMuIOWcqOebruW9lSR7YmFzZWRpcn0vdGFyZ2V0L29wZW5hcGnkuIvlj6/ku6XnnIvliLDovpPlh7rnmoRvcGVuYXBpIGpzb27mlofmoaM= readmeEtag: '"ad59ba1e8e950dd586f32b82e279657f9b4ab208"' readmeLastModified: Tue, 28 Sep 2021 06:36:33 GMT repositoryId: 367232700 description: 这是一个分析Spring项目中的Java源代码(注释)以及class文件生成OpenAPI接口文档的工具. created: '2021-05-14T02:54:23Z' updated: '2021-09-28T06:36:51Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: tanqidong1992 logo: https://avatars.githubusercontent.com/u/9072280?v=4 repoEtag: '"bd1ad19cd8800b897684a361fe2d12b8b3ffed1ebc192e6fa36c359b47687cf4"' repoLastModified: Tue, 28 Sep 2021 06:36:51 GMT foundInMaster: true category: Code Generators id: 8a2230e05d970d422958625db817d08c - source: openapi3 tags repository: https://github.com/sylvain12/mven-project v3: true repositoryMetadata: base64Readme: >- IyBNVkVOIChNb25nb0RCLCBWdWUuSlMsIEV4cHJlc3MsIE5vZGUuSlMpIFBST0pFQ1QKCnRoZSBwcm9qZWN0IGltcGxlbWVudCBDUlVEIG9wZXJhdGlvbnMgb24gY2xpZW50cyBhbmQgcHJvdmlkZXJzLgoKLS0tCiMjIDEuIFJlcXVpcmVtZW50cwoKRm9yIGRldmVsb3BtZW50LCB5b3Ugd2lsbCBvbmx5IG5lZWQgYE5vZGUuanNgIGFuZCBhIG5vZGUgZ2xvYmFsIHBhY2thZ2UsIGBucG1gLCBgZ2l0YCwgYG1vbmdvZGJgIChGb3IgZGF0YWJhc2UpIGluc3RhbGxlZCBpbiB5b3VyIGVudmlyb25tZW50LgoKIyMjIGBOb2RlLmpzIC8gbnBtYAotICMjIyMgTm9kZSBpbnN0YWxsYXRpb24gb24gV2luZG93cwoKICBKdXN0IGdvIG9uIFtvZmZpY2lhbCBOb2RlLmpzIHdlYnNpdGVdKGh0dHBzOi8vbm9kZWpzLm9yZy8pIGFuZCBkb3dubG9hZCB0aGUgaW5zdGFsbGVyLgoKLSAjIyMjIE5vZGUgaW5zdGFsbGF0aW9uIG9uIExpbnV4IChVYnVudHUpCgogIFlvdSBjYW4gaW5zdGFsbCBub2RlanMgYW5kIG5wbSBlYXNpbHkgd2l0aCBhcHQgaW5zdGFsbCwganVzdCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kcy4KCiAgICAgICQgc3VkbyBhcHQgdXBkYXRlCiAgICAgICQgc3VkbyBhcHQgaW5zdGFsbCBub2RlanMKICAgICAgJCBzdWRvIGFwdCBpbnN0YWxsIG5wbQoKLSAjIyMjIE90aGVyIE9wZXJhdGluZyBTeXN0ZW1zCiAgWW91IGNhbiBmaW5kIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGluc3RhbGxhdGlvbiBvbiB0aGUgW29mZmljaWFsIE5vZGUuanMgd2Vic2l0ZV0oaHR0cHM6Ly9ub2RlanMub3JnLykgYW5kIHRoZSBbb2ZmaWNpYWwgTlBNIHdlYnNpdGVdKGh0dHBzOi8vbnBtanMub3JnLykuCgpJZiB0aGUgaW5zdGFsbGF0aW9uIHdhcyBzdWNjZXNzZnVsLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZC4KCiAgICAkIG5vZGUgLS12ZXJzaW9uCiAgICB2OC4xMS4zCgogICAgJCBucG0gLS12ZXJzaW9uCiAgICA2LjEuMAoKSWYgeW91IG5lZWQgdG8gdXBkYXRlIGBucG1gLCB5b3UgY2FuIG1ha2UgaXQgdXNpbmcgYG5wbWAhIENvb2wgcmlnaHQ/IEFmdGVyIHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kLCBqdXN0IG9wZW4gYWdhaW4gdGhlIGNvbW1hbmQgbGluZSBhbmQgYmUgaGFwcHkuCgogICAgJCBucG0gaW5zdGFsbCBucG0gLWcKCiMjIyBgR2l0YAotICMjIyMgR2l0IGluc3RhbGxhdGlvbiBvbiBXaW5kb3dzClZpc2l0OiB0aGlzIHNpdGUgaHR0cHM6Ly9naXQtc2NtLmNvbS8gYW5kIGRvd25sb2FkIGV4ZWN1dGFibGUgZmlsZSBhbmQgcnVuIGl0CgotICMjIyMgR2l0IGluc3RhbGxhdGlvbiBvbiBMaW51eChVYnVudHUpCgogICAgICAgJCBzdWRvIGFwdC1nZXQgaW5zdGFsbCBnaXQKCkFmdGVyIHlvdSBjYW4gcnVuIHRoaXMgY29tbWFuZCB0byBjaGVjawoKICAgICAgJCBnaXQgLS12ZXJzaW9uCiAgICAgIGdpdCB2ZXJzaW9uIDIuMjUuMQoKIyMjIGBNb25nb0RCYAoKVmlzaXQgdGhpcyBsaW5rIGFuZCBmb2xsb3cgdGhlIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgZm9yIHlvdXIgT1MKCj0+IFtVYnVudHUgaW5zdGFsbGF0aW9uIGxpbmtdKGh0dHBzOi8vZG9jcy5tb25nb2RiLmNvbS9tYW51YWwvdHV0b3JpYWwvaW5zdGFsbC1tb25nb2RiLW9uLXVidW50dS8pCgo9PiBbV2luZG93cyBpbnN0YWxsYXRpb24gbGlua10oaHR0cHM6Ly9kb2NzLm1vbmdvZGIuY29tL21hbnVhbC90dXRvcmlhbC9pbnN0YWxsLW1vbmdvZGItb24td2luZG93cy8pCgo9PiBbbWFjT1MgaW5zdGFsbGF0aW9uIGxpbmtdKGh0dHBzOi8vZG9jcy5tb25nb2RiLmNvbS9tYW51YWwvdHV0b3JpYWwvaW5zdGFsbC1tb25nb2RiLW9uLW9zLXgtdGFyYmFsbC8pCgpBZnRlciBtb25nb0RCIGluc3RhbGxpbmcgcnVuCgogICAgJCBtb25nbyAtLXZlcnNpb24KCiAgICAgIEJ1aWxkIEluZm86IHsKICAgICAgInZlcnNpb24iOiAiNC40LjQiLAogICAgICAiZ2l0VmVyc2lvbiI6ICI4ZGIzMGE2M2RiMWE5ZDg0YmRjYWQwYzgzMzY5NjIzZjcwOGUwMzk3IiwKICAgICAgIm1vZHVsZXMiOiBbXSwKICAgICAgImFsbG9jYXRvciI6ICJzeXN0ZW0iLAogICAgICAiZW52aXJvbm1lbnQiOiB7CiAgICAgICAgICAiZGlzdGFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJ0YXJnZXRfYXJjaCI6ICJ4ODZfNjQiCiAgICAgIH0KCkNvbm5lY3QgdG8gbW9uZ29EQiBzaGVsbAoKICAgICQgbW9uZ28KICAgID4gc2hvdyBkYnMKCiAgICBhZG1pbiAgICAgICAgIDAuMDAwR0IKICAgIGNsaWVudC1hcHAgICAgMC4wMDBHQgogICAgY29uZmlnICAgICAgICAwLjAwMEdCCiAgICBsb2NhbCAgICAgICAgIDAuMDAwR0IKCi0tLQojIyAyLiBJbnN0YWxsIHByb2plY3QKCgpDbG9uZSB0aGUgcHJvamVjdCBjb2RlIG9uIHlvdXIgbWFjaGluZQoKICAgICQgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9zeWx2YWluMTIvbXZlbi1wcm9qZWN0CiAgICAkIGNkIG12ZW4tcHJvamVjdAogICAgJCBscwogICAgUmVhZG1lLm1kICAgY2xpZW50ICAgY29uZmlnLmV4YW1wbGUuZW52IG1vZGVscyAgIHBhY2thZ2UtbG9jay5qc29uICByb3V0ZXMgICAgIHV0aWxzIGFwcC5qcyAgICBjb25maWcuZW52ICAgIGNvbnRyb2xsZXJzICAgcGFja2FnZS5qc29uICBzZXJ2ZXIuanMKCiMjIDMuIENvbmZpZ3VyYXRvbgogIyMjIGBOb2RlIENvbmZpZ3VyYXRpb25gCiBBdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBydW4gOgoKICAgICQgbnBtIGluc3RhbGwKICMjIyBgQ2xpZW50IHNpZGUgKFZ1ZS5KUykgQ29uZmlndXJhdGlvbmAKICAgICQgY2QgY2xpZW50CiAgICAkIG5wbSBpbnN0YWxsCgogIyMjIGBEYXRhYmFzZSBDb25maWd1cmF0aW9uYApDb25uZWN0IHRvIG1vbmdvREIgYW5kIGNyZWF0ZSBhIGRhdGFiYXNlCgogICAgJCBtb25nbwogICAgPiB1c2UgPGRhdGFiYXNlX25hbWU+CiAgICBzd2l0Y2hlZCB0byBkYiA8ZGF0YWJhc2VfbmFtZT4KICAgID4gcXVpdCgpCiAgICAkIAogICAgCiMjIyBgRW52aXJvbm1lbnQgdmFyaWFibGVzIGNvbmZpZ3VyYXRpb25gCm1vdmUgdGhlIGBjb25maWcuZXhhbXBsZS5lbnZgIHRvIGBjb25maWcuZW52YApNYWtlIHN1cmUgdG8gaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QKCiAgICAkIG12IGNvbmZpZy5leGFtcGxlLmVudiBjb25maWcuZW52CgpvcGVuIHRoZSBgY29uZmlnLmVudmAgZmlsZSBhbmQgc2V0IHZhcmlhYmxlIGVudmlyb25tZW50CgpSZXBsYWNlIGFsbCB0aGUgdmFyaWFibGUgYmV0d2VlbiB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsdWUKCiAgICBQT1JUPTxOT0RFX1NFUlZFUl9QT1JUPgogICAgREFUQUJBU0VfTE9DQUw9bW9uZ29kYjovL2xvY2FsaG9zdDo8TU9OR09EQl9QT1JUPi88REFUQUJBU0VfTkFNRT4KICAgIERBVEFCQVNFX1BST0Q9PFBST0RVQ1RJT05fREFUQUJBU0VfVVJJPgogICAgTk9ERV9FTlY9ZGV2ZWxvcG1lbnQKTkI6IGZvciBkZXBsb3ltZW50IHdlIHVzZSBgcHJvZHVjdGlvbmAKCkFmdGVyIHZhcmlhYmxlcyBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uLCBzZXQgYE5PREVfUE9SVGAgb24gdnVlLmpzIGNvbmZpZyB0byBwcm94eSBub2RlLmpzIHNlcnZlciBBUEkuIE1ha2Ugc3VyZSB0byBiZSBvbiBjbGllbnQgZm9sZGVyLCBhbmQgb3BlbiBgdnVlLmNvbmZpZy5qc2AgZmlsZS4KCiAgICAkIG5hbm8gdnVlLmNvbmZpZy5qcwoKICAgIHByb3h5OiB7CiAgICAgICcvYXBpL3YxJzogewogICAgICAgIHRhcmdldDogYGh0dHA6Ly9sb2NhbGhvc3Q6PE5PREVfUE9SVD5gCiAgICAgIH0KICAgIH0KRG9uJ3QgZm9yZ2V0IHRvIHNhdmUgdGhlIGZpbGUuCgojIyA0LiBSdW5uaW5nIHRoZSBwcm9qZWN0CgojIyMgYGRldmVsb3BtZW50YAogICAgJCBucG0gcnVuIGRldgoKICBgTE9DQUxfU0VSVkVSYCA6IGBsb2NhbGhvc3Q6Tk9ERV9QT1JUYAoKICBgQVBJX1JPVVRFYCA6IGBsb2NhbGhvc3Q6Tk9ERV9QT1JUL2FwaS1kb2NzYAoKICBgQ0xJRU5UX0FQUGAgOiBgbG9jYWxob3N0OjgwMDBgCiAgCgojIyAtIFBST0pFQ1QgQVBJIApWaXNpdCB0aGlzIGFkZHJlc3Mgb24geW91ciB3ZWIgYnJvd3NlciBmb3IgcHJvamVjdCBBUEkgZG9jdW1lbnRhdGlvbiB3aXRoIFtzd2FnZ2VyXShodHRwczovL3N3YWdnZXIuaW8vKSBhbmQgW29wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pCgoKIyBgbG9jYWxob3N0OjxOT0RFX1BPUlQ+L2FwaS1kb2NzYAoKPCEtLSAjIyMgYHByb2R1Y3Rpb25gCiAgICAkIG5wbSBydW4gcHJvZCAtLT4KCgojIyA1LiBUZXN0aW5nCkNvbWluZyBzb29uLi4uIQ== readmeEtag: '"ec76da3d87edfb7e7f608e5bc7d5db08534a2dbe"' readmeLastModified: Fri, 23 Apr 2021 00:58:55 GMT repositoryId: 358070233 description: MVEN STACK project (Mongodb, Vue.JS, Express, Node.JS) created: '2021-04-14T23:35:46Z' updated: '2021-04-23T00:59:09Z' language: Vue archived: false stars: 0 watchers: 2 forks: 0 owner: sylvain12 logo: https://avatars.githubusercontent.com/u/26870715?v=4 repoEtag: '"810bb1261a44a135f88f6cef8ee21b9476a0afa4b048c2a84d87b9718b29b289"' repoLastModified: Fri, 23 Apr 2021 00:59:09 GMT foundInMaster: true category: - Server - Server Implementations id: 5e44a9a1f0e2d5629b2e6650fc04a96f - source: openapi3 tags repository: https://github.com/mizyind/saunter v3: true repositoryMetadata: base64Readme: >- IyBzYXVudGVyCgpbIVtHb10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZ28tbW9kL2dvLXZlcnNpb24vbWl6eWluZC9zYXVudGVyP3N0eWxlPWZvci10aGUtYmFkZ2UmbGFiZWw9JmNvbG9yPTAwYWRkOCZsb2dvPWdvJmxvZ29Db2xvcj1mZmYpXShodHRwczovL2dvbGFuZy5vcmcpCgpTYXVudGVyIGlzIGFuIG9waW5pb25hdGVkIFN3YWdnZXIgMy4wIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIGZvciBHbydzIEdpbiBmcmFtZXdvcmsuCgojIyBBdXRob3IKCm1pWnlpbmQgPG1penlpbmRAZ21haWwuY29tPgoKIyMgTElDRU5TRQoKTGljZW5zZWQgdW5kZXIgdGhlIFtNSVRdKExJQ0VOU0UpIExpY2Vuc2UuCg== readmeEtag: '"cae269dbf1d7470871d1cc5d275ed23744c72b13"' readmeLastModified: Thu, 21 Jan 2021 11:10:25 GMT repositoryId: 312517706 description: >- Saunter is an opinionated Swagger 3.0 documentation generator for Go's Gin framework. created: '2020-11-13T08:32:58Z' updated: '2023-01-28T05:33:54Z' language: Go archived: true stars: 0 watchers: 2 forks: 0 owner: miZyind logo: https://avatars.githubusercontent.com/u/21041375?v=4 license: MIT repoEtag: '"c7e80fdfb6c51d719f56cddc4966c7bb3617e8fa9038fec50cf19e3aae3afcf1"' repoLastModified: Sat, 28 Jan 2023 05:33:54 GMT foundInMaster: true category: - Data Validators - Server Implementations id: d3ff2966a56845108bcd9932be1376d3 - source: openapi3 tags repository: https://github.com/jeanpierm/rest-api-spring-jpa v3: true repositoryMetadata: base64Readme: >- IyBSRVNUZnVsIEFQSSBTcHJpbmcgQm9vdA0KDQohW1NwcmluZyBCb290ICsgSlBBXShodHRwczovL21pcm8ubWVkaXVtLmNvbS9tYXgvMTMzMi8wKmllR3RGZVRBd3FwMGl6azAucG5nKQ0KDQojIyBUZWNobm9sb2dpZXMgdXNlZA0KDQotIEphdmEgMTENCi0gU3ByaW5nIEJvb3QgKFNwcmluZyBXZWIpDQotIFNwcmluZyBTZWN1cml0eSAoc3RhdGVsZXNzIHdpdGggSldUIGFuZCByb2xlcykNCi0gSlBBIChoaWJlcm5hdGUpDQotIEphdmF4IFZhbGlkYXRpb25zIHRvIHZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBlbnRpdGllcyBpbiB0aGUgcmVxdWVzdHMuDQotIFBvc3RncmVTUUwgMTQgKyBwZ0FkbWluICh3aXRoIGRvY2tlcikNCi0gT3BlbkFQSSAzIFtzcHJpbmdkb2NdKGh0dHBzOi8vc3ByaW5nZG9jLm9yZy8pDQotIE1vZGVsTWFwcGVyIChmb3IgbWFwcGluZyBkdG9zIHRvIGpwYSBlbnRpdGllcyBlYXNpbHkpDQoNCiMjIFJ1biBQb3N0Z3JlU1FMICsgcGdBZG1pbiB3aXRoIERvY2tlcg0KDQpgYGBiYXNoDQojIHVwIGNvbnRhaW5lcnMNCiQgZG9ja2VyLWNvbXBvc2UgdXAgLWQgcG9zdGdyZXMgcGdhZG1pbg0KDQojIGRvd24gY29udGFpbmVycw0KJCBkb2NrZXItY29tcG9zZSBkb3duDQpgYGANCg0KIyMgTWljcm9zZXJ2aWNlIChEb2NrZXJpemF0aW9uKQ0KDQpgYGBiYXNoDQpkb2NrZXIgYnVpbGQgLXQgamVhbnAwL3Jlc3QtYXBpLXNwcmluZy1ib290IC4NCmBgYA0KDQpSdW4gYSAqKnBvc3RncmVzKiosICoqcGdhZG1pbioqIGFuZCAqKnNwcmluZy1hcHAqKiBpbWFnZXMgd2l0aCBkb2NrZXItY29tcG9zZS4gVGhlICoqc3ByaW5nLWFwcCoqIGltYWdlIGlzIGJ1aWx0IGF1dG9tYXRpY2FsbHkgaWYgaXQgZG9lc24ndCBleGlzdC4NCg0KYGBgYmFzaA0KIyB1cCBjb250YWluZXJzDQokIGRvY2tlci1jb21wb3NlIHVwIC1kDQoNCiMgZG93biBjb250YWluZXJzDQokIGRvY2tlci1jb21wb3NlIGRvd24NCg0KIyB2aWV3IGxvZ3MNCiQgZG9ja2VyLWNvbXBvc2UgbG9ncyAtZg0KYGBgDQoNCiMjIENhcHR1cmVzDQoNCiMjIyBBcHBsaWNhdGlvbiBydW5uaW5nIHdpdGggRG9ja2VyIHZpYSBkb2NrZXItY29tcG9zZQ0KDQohW0FwcGxpY2F0aW9uIHJ1bm5pbmcgd2l0aCBEb2NrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZWFucGllcm0vcmVzdC1hcGktc3ByaW5nLWJvb3QvYmxvYi9tYWluL2NhcHR1cmVzLzkucG5nP3Jhdz10cnVlKQ0KDQojIyMgU3dhZ2dlciBVSQ0KDQohW1N3YWdnZXIgVUldKGh0dHBzOi8vZ2l0aHViLmNvbS9qZWFucGllcm0vcmVzdC1hcGktc3ByaW5nLWJvb3QvYmxvYi9tYWluL2NhcHR1cmVzLzEucG5nP3Jhdz10cnVlKQ0KDQojIyMgU2NoZW1hcyBieSBPcGVuQVBJIDMNCg0KIVtTY2hlbWFzIGJ5IE9wZW5BUEkgM10oaHR0cHM6Ly9naXRodWIuY29tL2plYW5waWVybS9yZXN0LWFwaS1zcHJpbmctYm9vdC9ibG9iL21haW4vY2FwdHVyZXMvMi5wbmc/cmF3PXRydWUpDQoNCiMjIyBTdWNjZXNzIGxvZ2luDQoNCiFbU3VjY2VzcyBsb2dpbl0oaHR0cHM6Ly9naXRodWIuY29tL2plYW5waWVybS9yZXN0LWFwaS1zcHJpbmctYm9vdC9ibG9iL21haW4vY2FwdHVyZXMvMy5wbmc/cmF3PXRydWUpDQoNCiMjIyBGYWlsIGxvZ2luDQoNCiFbRmFpbCBsb2dpbl0oaHR0cHM6Ly9naXRodWIuY29tL2plYW5waWVybS9yZXN0LWFwaS1zcHJpbmctYm9vdC9ibG9iL21haW4vY2FwdHVyZXMvNC5wbmc/cmF3PXRydWUpDQoNCiMjIyBHRVQgd2l0aCB0b2tlbiBleHBpcmVkDQoNCiFbR0VUIHdpdGggdG9rZW4gZXhwaXJlZF0oaHR0cHM6Ly9naXRodWIuY29tL2plYW5waWVybS9yZXN0LWFwaS1zcHJpbmctYm9vdC9ibG9iL21haW4vY2FwdHVyZXMvNS5wbmc/cmF3PXRydWUpDQoNCiMjIyBHRVQgd2l0aG91dCB0b2tlbg0KDQohW0dFVCB3aXRob3V0IHRva2VuXShodHRwczovL2dpdGh1Yi5jb20vamVhbnBpZXJtL3Jlc3QtYXBpLXNwcmluZy1ib290L2Jsb2IvbWFpbi9jYXB0dXJlcy82LnBuZz9yYXc9dHJ1ZSkNCg0KIyMjIEdFVCB3aXRoIHZhbGlkIHRva2VuDQoNCiFbR0VUIHdpdGggdmFsaWQgdG9rZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9qZWFucGllcm0vcmVzdC1hcGktc3ByaW5nLWJvb3QvYmxvYi9tYWluL2NhcHR1cmVzLzcucG5nP3Jhdz10cnVlKQ0KDQojIyMgUmVmcmVzaCB0b2tlbg0KDQohW1JlZnJlc2ggdG9rZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9qZWFucGllcm0vcmVzdC1hcGktc3ByaW5nLWJvb3QvYmxvYi9tYWluL2NhcHR1cmVzLzgucG5nP3Jhdz10cnVlKQ0K readmeEtag: '"4e3ce46becc95584e38a710017c9203c9a43dc08"' readmeLastModified: Tue, 09 Aug 2022 02:22:10 GMT repositoryId: 410396224 description: >- RESTful API with JWT & Swagger. Built with Spring Boot, JPA, Spring Security, PostgreSQL and dockerized. created: '2021-09-25T22:37:44Z' updated: '2021-12-09T01:48:04Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: jeanpierm logo: https://avatars.githubusercontent.com/u/67121413?v=4 repoEtag: '"1949ea701d498c99a03848538d75ef09875156690f3554ecbe98f598fea86718"' repoLastModified: Thu, 09 Dec 2021 01:48:04 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: f1f18180bc7393a0e6a8d5ee9b252979 - source: openapi3 tags repository: https://github.com/maxstanley/xeffect_backend v3: true repositoryMetadata: base64Readme: IyB4ZWZmZWN0X2JhY2tlbmQKQmFja2VuZCBmb3IgdGhlIFhFZmZlY3QK readmeEtag: '"9d62e1d641c85cbfd5138de1b2c765d26f3bc9df"' readmeLastModified: Wed, 29 Dec 2021 21:48:04 GMT repositoryId: 441542078 description: Backend for the XEffect created: '2021-12-24T19:34:43Z' updated: '2021-12-29T21:48:08Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: maxstanley logo: https://avatars.githubusercontent.com/u/66874003?v=4 license: MIT repoEtag: '"505ecd16b7a52b552630cf92f7b7ebe40f273ac2e4e1f425fd43b52bbb47732a"' repoLastModified: Wed, 29 Dec 2021 21:48:08 GMT foundInMaster: true category: - Server - Server Implementations id: c3aaf516fc90134a965d89b84d0b7c61 - source: openapi3 tags repository: https://github.com/burgalon/fezto v3: true id: 7baea5051107a6d799f91ea77fbfbe59 repositoryMetadata: base64Readme: >- IyBGcm9udGVuZCBaZXJvIHRvIE9uZQpBbiBhdXRvbWF0aWMgb24tdGhlLWZseSBhcHAgZ2VuZXJhdG9yIGZyb20gT3BlbkFQSSAzLjAgc3BlYyAob3IgU3dhZ2dlciAyLjApIAoKRkVaVE8gcGFyc2VzIHRoZSBPcGVuQVBJIHNwZWMgYW5kIHRyaWVzIHRvIGRldGVybWluZSB3aGljaCByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSB0byBwcmVzZW50LCBhbmQgY3JlYXRlcyBDUlVEIHNjcmVlbiBmb3IgY3JlYXRpbmcsIHJlYWRpbmcgYW5kIHVwZGF0aW5nIGVudGl0aWVzLiBJdCBhbHNvIHRyaWVzIHRvIHJlc29sdmUgZm9yZWlnbiBrZXlzIHRvIGNyZWF0ZSBkcm9wZG93bnMgYW5kIGFkZCBsaW5rYWJsZSByZXNvdXJjZXMuCgo= readmeEtag: '"24a49c25bac7949f72d53910052d0734574f512a"' readmeLastModified: Thu, 26 May 2022 09:00:36 GMT repositoryId: 496548279 description: Frontend Zero to One created: '2022-05-26T08:56:21Z' updated: '2022-05-26T09:01:38Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: burgalon logo: https://avatars.githubusercontent.com/u/47217?v=4 repoEtag: '"28f71afe0916702da8480aeaced43f1cd57dc1fb37cb98da016bde38c64f2329"' repoLastModified: Thu, 26 May 2022 09:01:38 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/raghav2211/bug-tracker v3: true id: 6c75b861ec7154f50bdd7f1654ac41a2 repositoryMetadata: base64Readme: >- IyBidWctdHJhY2tlcgpodHRwOi8vbG9jYWxob3N0OjgwODAvd2ViamFycy9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwjLwo= readmeEtag: '"dec33c4cb803cd3e538999e841474f6913327102"' readmeLastModified: Sun, 22 Jan 2023 10:50:40 GMT repositoryId: 564781575 description: null created: '2022-11-11T13:38:12Z' updated: '2022-12-19T14:05:14Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: Raghav2211 logo: https://avatars.githubusercontent.com/u/7526431?v=4 repoEtag: '"2e77eeb92bb657c67cb0b8bed9344605b38797a7f37221b7951345650e5caf72"' repoLastModified: Mon, 19 Dec 2022 14:05:14 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/hailiangxie/myopenapi_codegen_resourceserver_proj v3: true id: a1222678295875fc2f572b4810f1ce63 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIENvZGUgR2VuZXJhdGlvbiBhbmQgT0F1dGgyIFJlc291cmNlIFNlcnZlcgpUaGlzIGlzIGEgZGVtbyBhcHBsaWNhdGlvbiB0byBnZW5lcmF0ZSB0aGUgUkVTVCBBUElzIHdpdGggT3BlbkFQSSBhbmQgcHJvdGVjdCB0aGVtIHdpdGggT0F1dGgyIFJlb3VzcmNlIFNlcnZlci4gSW4gdGhpcyBkZW1vIGFwcGxpY2F0aW9uLCB3ZSBnZW5lcmF0ZSB0aGUgY3VzdG9tZXIgQVBJcyBhbmQgaW1wbGVtZW50IHRoZW0uIEFmdGVyIHRoYXQgd2UgcHJvdGVjdCB0aG9zZSBBUElzIGJ5IGNvbmZpZ3VyaW5nIHRoZSBPQXV0aDIgUmVzb3VyY2UgU2VydmVyLiBUbyBhY2Nlc3MgdGhvc2UgQVBJcywgd2UgaGF2ZSB0byBwcml2ZWQgdGhlIHNpZ25lZCBKV1QgYWNjZXNzIHRva2VuIHdoaWNoIGhhZCBiZWVuIGlzc3VlZCBieSB0aGUgQXV0aG9yaXphdGlvbiBTZXJ2ZXIuCjwvYnI+CjwvYnI+ClBsZWFzZSByZWFkIHRoZSBkb2N1bWVudHMgdG8gZmluZCBtb3JlIGRldGFpbHMgYWJvdXQgW09wZW5BUEkgU3BlY2ZpY2lhdGlvbl0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKSBhbmQgW09BdXRoMi4wXShodHRwczovL29hdXRoLm5ldC8yLykuCjwvYnI+CjwvYnI+ClByZXJlcXVpc2l0ZXM6IFtKYXZhOCBvciBhYm92ZV0oaHR0cHM6Ly9vcGVuamRrLm9yZy8pCiMjIEdldHRpbmcgU3RhcnRlZApUbyBpbnN0YWxsIHRoaXMgZGVtbyBhcHBsaWNhdGlvbiwgcGxlYXNlIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gYSB0ZXJtaW5hbCB3aW5kb3c6CmBgYGNtZApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2hhaWxpYW5neGllL215b3BlbmFwaV9jb2RlZ2VuX3Jlc291cmNlc2VydmVyX3Byb2ouZ2l0CmNkIG15b3BlbmFwaV9jb2RlZ2VuX3Jlc291cmNlc2VydmVyX3Byb2oKYGBgCiMjIEdlbmVyYXRpbmcgQVBJcwpUbyBnZW5lcmF0ZSBBUElzLCBmaXJzdCB3ZSBuZWVkIHRvIGNyZWF0ZSBhbiBBUEkgU3BlYyBmaWxlIGNhbGxlZCBgYXBpLnlhbWxgIGFuZCBwdXQgaXQgdG8gYHNyYy9tYWluL3Jlb3VzcmNlcy9hcGlgOgpgYGB5YW1sCm9wZW5hcGk6IDMuMC4yCmluZm86CiAgdGl0bGU6IEN1c3RvbWVyIC0gT3BlbkFQSSAzLjAKICBkZXNjcmlwdGlvbjogfC0KICAgIFRoaXMgaXMgYSBzYW1wbGUgQ3VzdG9tZXIgU2VydmVyIGJhc2VkIG9uIHRoZSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uLiAgWW91IGNhbiBmaW5kIG91dCBtb3JlIGFib3V0CiAgICBTd2FnZ2VyIGF0IFtodHRwOi8vc3dhZ2dlci5pb10oaHR0cDovL3N3YWdnZXIuaW8pLgoKICB2ZXJzaW9uOiAxLjAuMApleHRlcm5hbERvY3M6CiAgZGVzY3JpcHRpb246IEZpbmQgb3V0IG1vcmUgYWJvdXQgU3dhZ2dlcgogIHVybDogaHR0cDovL3N3YWdnZXIuaW8Kc2VydmVyczoKICAtIHVybDogL2FwaS92Mwp0YWdzOgogIC0gbmFtZTogY3VzdG9tZXIKICAgIGRlc2NyaXB0aW9uOiBFdmVyeXRoaW5nIGFib3V0IHRoZSBjdXN0b21lcnMKICAgIGV4dGVybmFsRG9jczoKICAgICAgZGVzY3JpcHRpb246IEZpbmQgb3V0IG1vcmUKICAgICAgdXJsOiBodHRwOi8vc3dhZ2dlci5pbwpgYGAKU2Vjb25kIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSBBUEkgcGFja2FnZSBpbiB0aGUgcHJvamVjdCBgcG9tYCBmaWxlOgpgYGB4bWwKPHBsdWdpbj4KICAgIAkJCTxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICAJCQk8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAJCQk8dmVyc2lvbj40LjIuMjwvdmVyc2lvbj4KICAgIAkJCTxleGVjdXRpb25zPgogICAgICAgIAkJCTxleGVjdXRpb24+CiAgICAgICAgICAgIAkJCTxnb2Fscz4KICAgICAgICAgICAgICAgIAkJCTxnb2FsPmdlbmVyYXRlPC9nb2FsPgogICAgICAgICAgICAJCQk8L2dvYWxzPgogICAgICAgICAgICAJCQk8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgICAgIAkJCTxpbnB1dFNwZWM+JHthcGkuc3BlYy5maWxlfTwvaW5wdXRTcGVjPgogICAgICAgICAgICAgICAgCQkJPG91dHB1dD4ke3Byb2plY3QuYnVpbGQuZGlyZWN0b3J5fS9nZW5lcmF0ZWQvb3Blbi1hcGk8L291dHB1dD4KICAgICAgICAgICAgICAgIAkJCTxnZW5lcmF0b3JOYW1lPnNwcmluZzwvZ2VuZXJhdG9yTmFtZT4KICAgICAgICAgICAgICAgIAkJCTxhcGlQYWNrYWdlPnhpZS5oYWlsaWFuZy5yZXNvdXJjZXNlcnZlci5hcGk8L2FwaVBhY2thZ2U+CiAgICAgICAgICAgICAgICAJCQk8bW9kZWxQYWNrYWdlPnhpZS5oYWlsaWFuZy5yZXNvdXJjZXNlcnZlci5tb2RlbDwvbW9kZWxQYWNrYWdlPgogICAgICAgICAgICAgICAgCQkJPGludm9rZXJQYWNrYWdlPnhpZS5oYWlsaWFuZy5yZXNvdXJjZXNlcnZlci5oYW5kbGVyPC9pbnZva2VyUGFja2FnZT4KICAgICAgICAgICAgICAgIAkJCTxtb2RlbE5hbWVTdWZmaXg+SnNvbjwvbW9kZWxOYW1lU3VmZml4PgogICAgICAgICAgICAgICAgCQkJPGNvbmZpZ09wdGlvbnM+CiAgICAgICAgICAgICAgICAgICAgCQkJPGRlbGVnYXRlUGF0dGVybj50cnVlPC9kZWxlZ2F0ZVBhdHRlcm4+CiAgICAgICAgICAgICAgICAJCQk8L2NvbmZpZ09wdGlvbnM+CiAgICAgICAgICAgIAkJCTwvY29uZmlndXJhdGlvbj4KICAgICAgICAJCQk8L2V4ZWN1dGlvbj4KICAgIAkJCTwvZXhlY3V0aW9ucz4KCQkJPC9wbHVnaW4+CmBgYApBbmQgZmluYWxseSB3ZSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiBhIHRlcm1pbmFsIHdpbmRvdzoKYGBgY21kCmNkIG15b3BlbmFwaV9jb2RlZ2VuX3Jlc291cmNlc2VydmVyX3Byb2oKLi9tdm53IGluc3RhbGwKYGBgClRoZSBjdXN0b21lciBBUElzIHNob3VsZCBiZSBnZW5lcmF0ZWQuCiMjIEltcGxlbWVudGluZyBBUElzClRvIGltcGxlbWVudCB0aGUgZ2VuZXJhdGVkIFJFU1QgQVBJcywgd2UgbmVlZCB0byBpbXBsZW1lbnQgdGhlIGdlbmVyYXRlZCBkZWxlZ2F0ZSBpbnRlcmZhY2UgYEN1c3RvbWVyQXBpRGVsZWdhdGVgOgpgYGBqYXZhCkBDb21wb25lbnQKcHVibGljIGNsYXNzIEN1c3RvbWVyQXBpRGVsZWdhdGVJbXBsIGltcGxlbWVudHMgQ3VzdG9tZXJBcGlEZWxlZ2F0ZSB7CiAgLy8gaW1wbGVtZW50IHRoZSBtZXRob2RzIGRlY2xhcmVkIGluIEN1c3RvbWVyQXBpRGVsZWdhdGUKfQpgYGAKIyMgUHJvdGVjdGluZyBBUElzClRvIHByb3RlY3QgdGhlIGdlbmVyYXRlZCBSRVNUIEFQSXMsIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSBPQXV0aDIgUmVzb3VyY2UgU2VydmVyIGluIHRoZSBwcm9qZWN0Ogo8L2JyPgpGaXJzdCB3ZSBhZGQgdGhlIE9BdXRoMiBhbmQgUmVvdXNyY2UgU2VydmVyIGRlcGVuZGVuY2llcyB0byB0aGUgcG9yamVjdCBgcG9tYC4KYGBgeG1sCjxkZXBlbmRlbmN5PgogICAJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CiAgIAkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItb2F1dGgyLXJlc291cmNlLXNlcnZlcjwvYXJ0aWZhY3RJZD4KCQk8L2RlcGVuZGVuY3k+CgkJPGRlcGVuZGVuY3k+CiAgIAkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuY2xvdWQ8L2dyb3VwSWQ+CiAgIAkJCTxhcnRpZmFjdElkPnNwcmluZy1jbG91ZC1zdGFydGVyLW9hdXRoMjwvYXJ0aWZhY3RJZD4KICAgCQkJPHZlcnNpb24+Mi4yLjUuUkVMRUFTRTwvdmVyc2lvbj4KCQk8L2RlcGVuZGVuY3k+CmBgYApTZWNvbmQgd2UgYWRkIHRoZSBgUmVzb3VyY2VTZXJ2ZXJDb25maWdgIGNsYXNzIHRvIGVuYWJsZSBSZXNvdXJjZSBTZXJ2ZXIgZnVuY3Rpb25hbGl0eS4KYGBgamF2YQpAQ29uZmlndXJhdGlvbgpARW5hYmxlUmVzb3VyY2VTZXJ2ZXIKcHVibGljIGNsYXNzIFJlc291cmNlU2VydmVyQ29uZmlnIGV4dGVuZHMgUmVzb3VyY2VTZXJ2ZXJDb25maWd1cmVyQWRhcHRlciB7Cn0KYGBgCkFuZCB0aGlyZCB3ZSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgY3J5cHRvZ3JhcGhpYyBwdWJsaWMga2V5IGluIGBzcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sYC4KPC9icj4KVGhlIHB1YmxpYyBrZXkgd2FzIGdlbmVyYXRlZCBieSBjYWxsaW5nIHRoZSBlbmRwb2ludCBgL29hdXRoL3Rva2VuX2tleWAgZnJvbSB0aGUgW0F1dGhyb2l6YXRpb24gU2VydmVyXShodHRwczovL2dpdGh1Yi5jb20vaGFpbGlhbmd4aWUvbXlvYXV0aDJhdXRob3JpemF0aW9uX3Byb2opLgpgYGB5bWwKand0a2V5OiAKICBwdWJsaWNLZXk6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuLi4uXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0iCmBgYApUaGUgUmVzb3VyY2UgU2VydmVyIHByb3RlY3RzIHRoZSBBUElzIGJ5IHZhbGlkYXRpbmcgdGhhdCBpZiB0aGUgY2xpZW50IGhhcyBhIHZhbGlkIEpXVCBhY2Nlc3MgdG9rZW4uCiMjIFJ1biB0aGUgQXBwbGljYXRpb24KVG8gcnVuIHRoaXMgZGVtbyBhcHBsaWNhdGlvbiwgcGxlYXNlIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gYSB0ZXJtaW5hbCB3aW5kb3c6CmBgYGNtZApjZCBteW9wZW5hcGlfY29kZWdlbl9yZXNvdXJjZXNlcnZlcl9wcm9qCi4vbXZudyBzcHJpbmctYm9vdDpydW4KYGBgCkFmdGVyIGV2ZXJ5dGhpbmcgc3RhcnRzLCB3ZSBzaG91bGQgYmUgYWJsZSB0byB0ZXN0IHRoZSBBcHBsaWNhdGlvbi4KIyMgVGVzdApOb3cgd2Ugc2hvdWxiZSBiZSBhYmxlIHRvIHRlc3QgdGhlIGN1c3RvbWVyIFJFU1QgQVBJcy4gVG8gdmlldyB0aGUgQVBJIGRvY3MgYW5kIHRlc3QgdGhlIEFQSXMgd2UgY2FuIG9wZW4gdGhlIHN3YWdnZXItdWkgYnkgYWNjZXNzaW5nIHRoZSB1cmwgYGh0dHA6Ly9sb2NhbGhvc3Q6ODA5MS9zd2FnZ2VyLXVpLmh0bWxgIGluIHRoZSB3ZWIgYnJvd3Nlci4gQW5kIGFsc28gd2UgY2FuIHRlc3QgdGhlIEFQSXMgd2l0aCBvdGhlciB0b29scyAoZS5nLiwgYGN1cmxgLCBgcG9zdG1hbmApLiBGb3IgZXhhbXBsZSwgd2UgdGVzdCB0aGUgQVBJIGAvYXBpL3YzL2N1c3RvbWVyYCB0byBhZGQgYSBuZXcgY3VzdG9tZXIuCi0gQWNjZXNzIHRoZSBBUEkgYGh0dHA6Ly9sb2NhbGhvc3Q6ODA5MS9hcGkvdjMvY3VzdG9tZXJgIHdpdGhvdXQgYSB0b2tlbjoKYGBgClJlcXVlc3QgTWV0aG9kOiBQb3N0CkFjY2VwdDogYXBwbGljYXRpb24vanNvbgpDb250ZW50VHlwZTogYXBwbGljYXRpb24vanNvbgpDb250ZW50OiBUaGUgbmV3IGN1c3RvbWVyIGpzb24gc3RyaW5nCkV4cGVjdDogSXQgc2hvdWxkIHJldHVybiBzdGF0dXMgNDAxIFVuYXV0aG9yaXplZApgYGAKLSBBY2Nlc3MgdGhlIEFQSSBgaHR0cDovL2xvY2FsaG9zdDo4MDkxL2FwaS92My9jdXN0b21lcmAgd2l0aG91dCBhbiBpbnZhbGlkIHRva2VuOgpgYGAKUmVxdWVzdCBNZXRob2Q6IFBvc3QKSGVhZGVyOiBBdXRob3JpemF0aW9uOiBCZWFyZXIgaXRpc2FuaW52YWxpZHRva2VuCkFjY2VwdDogYXBwbGljYXRpb24vanNvbgpDb250ZW50VHlwZTogYXBwbGljYXRpb24vanNvbgpDb250ZW50OiBUaGUgbmV3IGN1c3RvbWVyIGpzb24gc3RyaW5nCkV4cGVjdDogSXQgc2hvdWxkIHJldHVybiBzdGF0dXMgNDAxIFVuYXV0aG9yaXplZApgYGAKLSBBY2Nlc3MgdGhlIEFQSSBgaHR0cDovL2xvY2FsaG9zdDo4MDkxL2FwaS92My9jdXN0b21lcmAgd2l0aCBhIHZhbGlkIHRva2VuIChieSBjYWxsaW5nIHRoZSBlbmRwb2ludCBgL29hdXRoL3Rva2VuYCBmcm9tIHRoZSBbQXV0aG9yaXphdGlvbiBTZXJ2ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9oYWlsaWFuZ3hpZS9teW9hdXRoMmF1dGhvcml6YXRpb25fcHJvaikpOgpgYGAKUmVxdWVzdCBNZXRob2Q6IFBvc3QKSGVhZGVyOiBBdXRob3JpemF0aW9uOiBCZWFyZXIgPFZhbGlkIHRva2VuPgpBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24KQ29udGVudFR5cGU6IGFwcGxpY2F0aW9uL2pzb24KQ29udGVudDogVGhlIG5ldyBjdXN0b21lciBqc29uIHN0cmluZwpFeHBlY3Q6IEl0IHNob3VsZCByZXR1cm4gc3RhdHVzIDIwMCBhbmQgdGhlIG5ldyBjdXN0b21lciBjcmVhdGVkCmBgYAojIyBTZWUgQWxzbwpUaGUgZm9sbG93aW5nIGd1aWRlcyBtYXkgYWxzbyBiZSBoZWxwZnVsOgotIFtTd2FnZ2VyIFVJXShodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci11aS8pCi0gW0pTT04gV2ViIFRva2Vuc10oaHR0cHM6Ly9qd3QuaW8vKQo= readmeEtag: '"7fa28cbe4dc55de21ba18d5d8e7b0fbf40b2ab37"' readmeLastModified: Sat, 01 Oct 2022 15:51:28 GMT repositoryId: 542639581 description: >- This is a demo application to generate and implement REST APIs with OpenAPI and protect them with Oauth2.0 Resource Server created: '2022-09-28T14:42:25Z' updated: '2022-09-29T04:07:27Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: hailiangxie logo: https://avatars.githubusercontent.com/u/113340734?v=4 repoEtag: '"8c3440514bc554ae110046d1cc0baece0cbf7e7028983ceae4f1ffb816c5e486"' repoLastModified: Thu, 29 Sep 2022 04:07:27 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/d1brov/runningeventsapp v3: true id: 36d550b207b518584e81a18b0c52433d repositoryMetadata: base64Readme: >- IyBSdW5uaW5nRXZlbnRzV2ViQXBwCgotLS0KClJFU1RmdWxsIHdlYiBhcHAgZm9yIGNyZWF0aW5nIHJ1bm5pbmcgZXZlbnRzIChleGlzdGluZyBzZXJ2aWNlcyBleGFtcGxlczogW3RoaXNdKGh0dHBzOi8vYXRobGV0aWMtZXZlbnRzLmNvbS9jYWxlbmRhcikgb3IgW3RoaXNdKGh0dHBzOi8vd3d3LnJ1bmJyaXRhaW5yYW5raW5ncy5jb20vcmVzdWx0cy9yZXN1bHRzbG9va3VwLmFzcHgpKS4KCkl0IGlzIGFuIGVkdWNhdGlvbmFsIHByb2plY3QgdG8gbGVhcm4gU3ByaW5nIGZyYW1ld29yayAoTVZDLCBwZXJzaXN0ZW5jZSwgc2VjdXJpdHkgZXRjKS4KCldPUksgSU4gW1BST0dSRVNTXSgjcHJvZ3Jlc3MpCgoKIyMgVE9DCiogW1RlY2ggc3RhY2tdKCN0ZWNoLXN0YWNrKQoqIFtQcm9ncmVzc10oI3Byb2dyZXNzKQogICogW0dlbmVyYWxdKCNnZW5lcmFsKQogICogW1NlY3VyaXR5XSgjc2VjdXJpdHkpCiAgKiBbVGVzdGluZ10oI3Rlc3RpbmcpCiogW0VuZHBvaW50c10oI2VuZHBvaW50cykKKiBbQ3VycmVudCBEQiBzY2hlbWFdKCNjdXJyZW50LWRiLXNjaGVtYSkKCiMjIFRlY2ggc3RhY2sKPGRldGFpbHM+CiA8c3VtbWFyeT5MaXN0PC9zdW1tYXJ5PgoKKiBCdWlsZGluZyB0b29sOgogICogR3JhZGxlCgoKKiBNVkM6CiAgKiBTcHJpbmcgYm9vdCBzdGFydGVyIHdlYgoKCiogU2VjdXJpdHk6CiAgKiBTcHJpbmcgYm9vdCBzdGFydGVyIHNlY3VyaXR5CgoKLSBQZXJzaXN0ZW5jZToKICAqIFBvc3RncmVTUUwgZGF0YWJhc2UgKEkgcnVuIGl0IGluIERvY2tlciBjb250YWluZXIpCiAgKiBGbHl3YXkgTWlncmF0aW9ucwogICogSlBBIGZvciBoaWdoIGxldmVsIGRhdGEgQ1JVRAoKCiogRGV2IHRvb2xzOgogICogTG9tYm9rCgoKKiBEb2N1bWVudGF0aW9uCiAgKiBPcGVuQVBJIDMuMAogICogU3dhZ2dlcgoKPC9kZXRhaWxzPgoKIyMgUHJvZ3Jlc3MKCk15IHRvZG8gbGlzdCByaWdodCBub3c6CjEuIGltcGxlbWVudCBbZW5kcG9pbnRzXSgjZW5kcG9pbnRzKS4gSnVzdCB0byBtYWtlIGl0IHdvcmsuCjIuIGltcGxlbWVudCBKV1QKMy4gc2V0dXAgU3dhZ2dlciBzZWN1cml0eQo0LiBkb2N1bWVudCBlbmRwb2ludHMgZm9yIFN3YWdnZXIKNS4gd3JpdGUgdGVzdHMgJiByZWZhY3RvcgoKIyMjIEdlbmVyYWwKLSBbeF0gc2V0dXAgcHJvamVjdHMgcGx1Z2lucyh0ZXN0IGNvdmVyYWdlLCBjb2RlIHF1YWxpdHkpCi0gW3hdIHNldHVwIFBvc3RncmVTUUwgREIgKEkgcnVuIERvY2tlciBpbWFnZSkKLSBbeF0gc2V0dXAgRmx5d2F5IHRvIG1hbmFnZSBEQiBtaWdyYXRpb25zCi0gW3hdIHNldHVwIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiB3aXRoIFN3YWdnZXIKLSBpbXBsZW1lbnQgZW5kcG9pbnRzIChzZWUgW0VuZHBvaW50c10oI2VuZHBvaW50cykgZm9yIGRldGFpbHMpCi0gd3JpdGUgU3dhZ2dlciBkb2N1bWVudGF0aW9uIGZvciBlbmRwb2ludHMKLSBpbXBsZW1lbnQgZW1haWwgbm90aWZpY2F0aW9ucyBvbiAocmVnaXN0cmF0aW9uL3NpZ24tdXAvdXBkYXRlL2NhbmNlbC9kZWxldGUpLiBVc2UgRG9ja2VyIHdpdGggTWFpbEhvZyBmb3IgdGVzdGluZwoKIyMjIFNlY3VyaXR5Ci0gW3hdIHJvbGVzIChBRE1JTiwgRVZFTlRfQURNSU4sIFVTRVIpICYgcGVybWlzc2lvbnMgYWNjZXNzIHNlcGFyYXRpb24gKHNlZSBbRW5kcG9pbnRzXSgjZW5kcG9pbnRzKSBmb3IgZGV0YWlscykKLSBpbXBsZW1lbnQgSldUCi0gaW1wbGVtZW50IHJlZ2lzdHJhdGlvbiBjb25maXJtYXRpb24gYnkgZW1haWwKLSBjb25maWd1cmUgU3dhZ2dlciBzZWN1cml0eQoKIyMjIFRlc3RpbmcKKkhhdmVuJ3QgZG9uZSBhbnkgdGVzdGluZyB5ZXQuIE1vc3QgdGhpbmdzIGFyZSBuZXcgZm9yIG1lLCBzbyBJJ20gdHJ5aW5nIHRvIG1ha2UgaXQgd29yayBmb3Igbm93LiBUREQgb25lIGxvdmUgOikqCgotIHVuaXQgdGVzdGluZwogIC0gdW5pdCB0ZXN0aW5nIG9mIFJvbGVSZXBvc2l0b3J5CiAgLSB1bml0IHRlc3Rpbmcgb2YgVXNlckNyZWRlbnRpYWxzUmVwb3NpdG9yeQogIC0gdW5pdCB0ZXN0aW5nIG9mIEV2ZW50UmVwb3NpdG9yeQogIC0gdW5pdCB0ZXN0aW5nIG9mIFVzZXJSZXBvc2l0b3J5CgoKLSBpbnRlZ3JhdGlvbiB0ZXN0aW5nCiAgLSBpbnRlZ3JhdGlvbiB0ZXN0aW5nIGZvciAvZXZlbnRzIGVuZHBvaW50CiAgLSBpbnRlZ3JhdGlvbiB0ZXN0aW5nIGZvciAvcmVnaXN0ZXIgZW5kcG9pbnQKICAtIGludGVncmF0aW9uIHRlc3RpbmcgZm9yIC91c2VycyBlbmRwb2ludHMKICAtIGludGVncmF0aW9uIHRlc3RpbmcgZm9yIC9hY2NvdW50cyBlbmRwb2ludHMKCgotIHNlY3VyaXR5IHRlc3RpbmcKICAgIC0gc2VjdXJpdHkgdGVzdGluZyBmb3IgL3JlZ2lzdGVyIGVuZHBvaW50CiAgICAtIHNlY3VyaXR5IHRlc3RpbmcgZm9yIC9ldmVudHMgZW5kcG9pbnQKICAgIC0gc2VjdXJpdHkgdGVzdGluZyBmb3IgL3VzZXJzIGVuZHBvaW50cwogICAgLSBzZWN1cml0eSB0ZXN0aW5nIGZvciAvYWNjb3VudHMgZW5kcG9pbnQKCgotIGVuZC10by1lbmQgdGVzdGluZwogIC0gcmVnaXN0cmF0aW9uCiAgLSB1c2VyIGFjY291bnQgb3BlcmF0aW9ucyAoZ2V0LCB1cGRhdGUsIGRlbGV0ZSkKICAtIHVzZXIgZXZlbnQgb3BlcmF0aW9ucyAoc2lnbi11cCwgc2hvdyBldmVudHMsIHNob3cgdXBjb21pbmcgZXZlbnRzKQogIC0gZXZlbnQgb3BlcmF0aW9ucyAoY3JlYXRlIGV2ZW50LCB1cGRhdGUgZXZlbnQsIGRlbGV0ZSBldmVudCkKCiMjIEVuZHBvaW50cwohW10oL3JlYWRtZV9pbWFnZXMvZW5kcG9pbnRzLnBuZykKCiMjIEN1cnJlbnQgREIgc2NoZW1hCiFbXSgvcmVhZG1lX2ltYWdlcy9kYl9zY2hlbWEucG5nKQ== readmeEtag: '"728b2011f92f6ab69db120ce4babc662796b37ca"' readmeLastModified: Sun, 11 Sep 2022 17:24:53 GMT repositoryId: 535371452 description: RESTfull service for creating and managing running events. created: '2022-09-11T17:21:10Z' updated: '2022-10-06T13:21:07Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: d1brov logo: https://avatars.githubusercontent.com/u/36695956?v=4 repoEtag: '"bee0173d95a3a721f5a9670c28b7fb054fa1ef7816579ac889f506ee5502ec69"' repoLastModified: Thu, 06 Oct 2022 13:21:07 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/nickfallon/catalyst v3: true id: a05953d17866a75dbaf494b9c80c8b03 repositoryMetadata: base64Readme: >- IyAhW0NhdGFseXN0XShsb2dvLnN2ZykgQ2F0YWx5c3QKCkFuIE9wZW5BUEktY29tcGF0aWJsZSBSRVNUIEFQSSBnZW5lcmF0b3IgZm9yIG5vZGUvcG9zdGdyZXMKCiMjIFdoYXQgaXQgZG9lcwoKV2hlbiBwcm92aWRlZCB3aXRoIGEgUG9zdGdyZXMgZGF0YWJhc2UsIENhdGFseXN0IGRvZXMgdGhlIGZvbGxvd2luZzoKCi0gQ3JlYXRlcyBhbiBPcGVuQVBJMyBzcGVjaWZpY2F0aW9uIGZyb20gdGhlIHRhYmxlcyBhbmQga2V5cyBhbmQgc2F2ZXMgdGhlIHJlc3VsdCB0byBgb3BlbmFwaS4zLjAuMC5qc29uYCBpbiB0aGUgcm9vdCBmb2xkZXIuCgotIENyZWF0ZXMgYSBSRVNUIEFQSSB0aGF0IGNvbnN1bWVzIHRoZSBPcGVuQVBJIHNwZWMgYW5kIHB1dHMgdGhlIGF1dG9nZW5lcmF0ZWQgY29kZSBpbiB0aGUgYC9hcGlgIGZvbGRlci4gQWxsIEFQSSBlbmRwb2ludHMgYXJlIHByZWNlZGVkIHdpdGggdGhlIGNvbW1vbiBwYXRoIGAvYXBpL3YxL2AuCgotIENyZWF0ZXMgaW50ZXJhY3RpdmUgU3dhZ2dlciBkb2NzIGF0IGAvYXBpL3YxL2FwaS1kb2NzYC4KCiMjIFNldHRpbmcgdXAKIyMjIEdlbmVyYXRpbmcgY2VydGlmaWNhdGVzCgpUaGlzIHN0ZXAgZ2VuZXJhdGVzIHR3byBmaWxlcywgYGxvY2FsaG9zdC5wZW1gIGFuZCBgbG9jYWxob3N0LWtleS5wZW1gIGluIHRoZSBmb2xkZXIgYGNlcnRzYC4KVGhpcyBtYWtlcyB0aGUgbG9jYWwgd2ViIGFwcCB3b3JrIG92ZXIgSFRUUFMKCkNyZWF0ZSBhIGZvbGRlciBjYWxsZWQgYGNlcnRzYCBpbiB0aGUgbWFpbiBkaXJlY3RvcnkgYW5kIG1vdmUgdG8gaXQ6CgpgJCBta2RpciBjZXJ0c2AKCmAkIGNkIGNlcnRzYAoKSW5zdGFsbCB0aGUgYG1rY2VydGAgcGFja2FnZToKCmAkIGJyZXcgaW5zdGFsbCBta2NlcnRgCgpgJCBta2NlcnQgLWluc3RhbGxgCgpHZW5lcmF0ZSB0aGUga2V5IGZpbGVzOgoKYCQgbWtjZXJ0IGxvY2FsaG9zdGAKCgojIyMgVXBkYXRlIC5lbnYgZmlsZQoKUmVuYW1lIGAuZW52LmV4YW1wbGVgIHRvIGAuZW52YCBhbmQgc2V0IHRoZSBwb3N0Z3JlcyBjb25uZWN0aW9uIGluZm8uCgojIyBIb3cgdG8gcnVuCgpVc2U6IAoKYG5wbSBydW4gZGV2YAoKIyMjIEdlbmVyYXRpbmcgdGhlIEFQSSAKCipXaGVuIHJ1bm5pbmcgZm9yIHRoZSBmaXJzdCB0aW1lOioKCkluIGEgYnJvd3NlciwgZ28gdG8gW2h0dHBzOi8vbG9jYWxob3N0OjkwMDAvYXBpL2dlbmVyYXRvci9idWlsZF0oaHR0cHM6Ly9sb2NhbGhvc3Q6OTAwMC9hcGkvZ2VuZXJhdG9yL2J1aWxkKQoKVGhlIGdlbmVyYXRvciBjb25uZWN0cyB0byBhIHBvc3RncmVzIGRhdGFiYXNlIHVzaW5nIHRoZSBjcmVkZW50aWFscyBpbiBgLmVudmAgZmlsZS4KSXQgdGhlbiBjcmVhdGVzIGEgZmlsZSBgb3BlbmFwaS4zLjAuMC5qc29uYCBhbmQgd3JpdGVzIGNvZGUgdG8gdGhlIGAvYXBpYCBmb2xkZXIgdG8gcGVyZm9ybSBTUUwgcXVlcmllcy4KClJlLXJ1bm5pbmcgYC9hcGkvZ2VuZXJhdG9yL2J1aWxkYCB3aWxsIG92ZXJ3cml0ZSB0aGUgZmlsZXMgY3JlYXRlZCBpbiBgL2FwaWAgYW5kIHRoZSBgb3BlbmFwaS4zLjAuMC5qc29uYCBmaWxlLgoKKk5vdGU6KiBEb24ndCB1c2Ugbm9kZW1vbiB3aGVuIGdlbmVyYXRpbmcgdGhlIEFQSSwgc2luY2UgZHluYW1pYyBjaGFuZ2VzIHRvIHRoZSBzb3VyY2UgdHJpZ2dlciBhIHJlc3RhcnQgd2hpY2ggc3RvcHMgdGhlIGdlbmVyYXRvci4KCgojIyMgVXNpbmcgdGhlIEFQSSAKClJlLXN0YXJ0IHRoZSBhcHAuIEV4cHJlc3Mgcm91dGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byB0aGUgZ2VuZXJhdGVkIGAvYXBpYCBmb2xkZXIgY29kZS4KCkluIGEgYnJvd3NlciwgZ28gdG8gIFtodHRwczovL2xvY2FsaG9zdDo5MDAwL2FwaS92MS9hcGktZG9jc10oaHR0cHM6Ly9sb2NhbGhvc3Q6OTAwMC9hcGkvdjEvYXBpLWRvY3MpIHRvIHNlZSBpbnRlcmFjdGl2ZSBBUEkgZG9jcy4KCipOb3RlOiogWW91IG11c3QgcHJvdmlkZSBhbiBBdXRob3JpemF0aW9uIEJlYXJlciBoZWFkZXIgdG8gcGVyZm9ybSBjYWxscy4gKHNlZSBbU2VjdXJpdHkgYW5kIHJlc3RyaWN0aW9uIG9mIGRhdGEgYWNjZXNzXSgjc2VjdXJpdHktYW5kLXJlc3RyaWN0aW9uLW9mLWRhdGEtYWNjZXNzKSBmb3IgZGV0YWlscykuCgoKIyMgRmVhdHVyZXMKCkRhdGEgdHlwZXMgYXJlIHZhbGlkYXRlZCBhbmQgZW5mb3JjZWQgYnkgdGhlIEFQSS4KCkJlYXJlciB0b2tlbiBhdXRob3JpemF0aW9uIGlzIGVuZm9yY2VkIGZvciBhbGwgQVBJIGNhbGxzLgoKYEdFVGAgZW5kcG9pbnRzIGFyZSBhdmFpbGFibGUgZm9yIGFsbCB0YWJsZXMsIGVnLiBgL2ludm9pY2VgCgpgR0VUIGJ5IHV1aWRgIGVuZHBvaW50cyBhcmUgZ2VuZXJhdGVkIGZvciBhbGwgdGFibGVzIHdoaWNoIGhhdmUgYSBgdXVpZGAgY29sdW1uLiAKCmBHRVQgYnkgaWRgIGVuZHBvaW50cyBhcmUgZ2VuZXJhdGVkIGZvciBhbGwgdGFibGVzIHdoaWNoIGhhdmUgYSBgaWRgIGNvbHVtbiBidXQgbm8gYHV1aWRgIGNvbHVtbi4KCmBQT1NUYCAoY3JlYXRlKSBlbmRwb2ludHMgYXJlIGF2YWlsYWJsZSBmb3IgYWxsIHRhYmxlcy4KCmBQVVRgICh1cGRhdGUpIGVuZHBvaW50cyBhcmUgYXZhaWxhYmxlIGZvciB0YWJsZXMgd2l0aCBhIGB1dWlkYCBmaWVsZC4KCmBHZXQgY2hpbGQgY29sbGVjdGlvbnNgIEZvcmVpZ24ga2V5cyBhcmUgdXNlZCB0byBjcmVhdGUgQVBJIHBhdGhzIGluIHRoZSBmb3JtIGAvcGFyZW50L3twYXJlbnRfdXVpZH0vY2hpbGRgLgoKYEVudW1zYCBhcmUgY3JlYXRlZCBpbiBgYXBpL2VudW1zL2AgZm9yIGFsbCB0YWJsZXMgd2l0aCBuYW1lcyBlbmRpbmcgaW4gYF9zdGF0dXNgIG9yIGBfdHlwZWAuCgojIyMgUGFnaW5nIGFuZCBmaWx0ZXJpbmcKCkdFVCBlbmRwb2ludHMgd2hpY2ggdGFrZSBubyBwYXJhbWV0ZXJzIChzby1jYWxsZWQgJ2dldCBhbGwnIGVuZHBvaW50cykgZWcuIGAvaW52b2ljZWAgcHJvdmlkZSBvcHRpb25hbCBwYWdpbmcgYW5kIGZpbHRlcmluZyBxdWVyeXN0cmluZyBwYXJhbWV0ZXJzLCBhcyBmb2xsb3dzOgoKLSBwYWdlc2l6ZSAoaW50ZWdlciwgb3B0aW9uYWwpIDogVGhlIG51bWJlciBvZiByb3dzIHRvIGJlIHJldHVybmVkLiBEZWZhdWx0IGlzIDEwLiBNYXhpbXVtIGlzIDEwMC4KCi0gcGFnZSAoaW50ZWdlciwgb3B0aW9uYWwpIDogVGhlIHBhZ2UgdG8gYmUgcmV0dXJuZWQuIERlZmF1bHQgaXMgMC4gSWYgYSBub24temVybyBwYWdlIGlzIHNwZWNpZmllZCwgKHBhZ2VzaXplICogcGFnZSkgcm93cyBhcmUgc2tpcHBlZCB3aGVuIHBlcmZvcm1pbmcgdGhlIHF1ZXJ5LgoKLSBmaWx0ZXIgKHN0cmluZywgb3B0aW9uYWwpIDogVXNlZCBmb3Igc2VhcmNoaW5nIGZvciBzcGVjaWZpYyBkYXRhLiBJZiBzcGVjaWZpZWQsIG9ubHkgcm93cyB3aGljaCBjb250YWluIHRoZSBmaWx0ZXIgc3RyaW5nIGluIGFueSBvZiB0aGUgYHRleHRgIGNvbHVtbnMgYXJlIHJldHVybmVkLiBJZiBubyBkYXRhIGNhbiBiZSBmb3VuZCwgYW4gZW1wdHkgYXJyYXkgaXMgcmV0dXJuZWQuCgoKCiMjIEFzc3VtcHRpb25zL29waW5pb25zCgotIHRhYmxlcyBhcmUgYXNzdW1lZCB0byBoYXZlIGFuIGBpZGAgZmllbGQgb2YgdHlwZSBzZXJpYWwgKHByaW1hcnkga2V5KSwgCmFuZCBvcHRpb25hbGx5IGEgYHV1aWRgIGZpZWxkLCB3aGljaCBzaG91bGQgYmUgYE5PVCBOVUxMYC4KCi0gdGFibGUgbmFtZXMgZW5kaW5nIGluIGBfc3RhdHVzYCBvciBgX3R5cGVgIGFyZSBhc3N1bWVkIHRvIGhhdmUgYW4gYGlkYCBmaWVsZCBhbmQgYSBkZXNjcmlwdGlvbiBjb2x1bW4gd2hpY2ggYXJlIGl0ZXJhdGVkIGluIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSBhdCBgYXBpL2VudW1zL2luZGV4LmpzYCBzbyB0aGV5IGNhbiBiZSB1c2VkIGluIGNvZGUgdG8gcmVmZXIgdG8gc3RhdHVzIG9yIHR5cGUgdmFsdWVzLgoKLSBgUFVUYCAodXBkYXRlKSBBUEkgY2FsbHMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIHRhYmxlcyB3aXRob3V0IGEgYHV1aWRgIGZpZWxkIChlZy4gc3RhdHVzIHRhYmxlcykuCgotIGlmIGEgYHdoaXRlbGlzdC5qc29uYCBmaWxlIGlzIGluY2x1ZGVkIGluIHRoZSBgL2FwcGAgZm9sZGVyLCBpdCB3aWxsIGNhdXNlIHRoZSBnZW5lcmF0b3IgdG8gaW5jbHVkZQpvbmx5IHRob3NlIHRhYmxlcyBsaXN0ZWQgaW5zaWRlLiBFeGFtcGxlIGZvcm1hdDoKCmBgYApbCiAgICB7CiAgICAgICAgInRhYmxlIjogImludm9pY2UiCiAgICB9LAogICAgewogICAgICAgICJ0YWJsZSI6ICJpbnZvaWNlX3N0YXR1cyIKICAgIH0sCiAgICB7CiAgICAgICAgInRhYmxlIjogInByb2R1Y3QiCiAgICB9Cl0KYGBgCgojIyMgU2VjdXJpdHkgYW5kIHJlc3RyaWN0aW9uIG9mIGRhdGEgYWNjZXNzCgpBbiBhc3N1bXB0aW9uIGlzIG1hZGUgdGhhdCBhIGB1c2VyYCB0YWJsZSBleGlzdHMgY29udGFpbmluZyBhIHJvdyBmb3IgZWFjaCB1c2VyLCBhbmQgdGhhdCBhIGBiZWFyZXJfdG9rZW5gIGNvbHVtbiBpcyBwcmVzZW50IG9uIHRoYXQgdGFibGUgd2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgQVBJIGNhbGxlciBieSBtYXRjaGluZyBpdCB3aXRoIHRoZSBwcm92aWRlZCBhdXRob3JpemF0aW9uIGhlYWRlci4gVGhpcyBtZWFucyB0aGF0IHRoZSBBUEkgY2FuIGFsd2F5cyBpZGVudGlmeSB0aGUgdXNlciBwZXJmb3JtaW5nIHRoZSBjYWxsLiBUaGUgYHVzZXJgIHRhYmxlIG5hbWUgY2FuIGJlIGNoYW5nZWQgaW4gdGhlIGAuZW52YCB2YXJpYWJsZSBgSk9JTl9VU0VSX1RBQkxFYC4KCldoZW4gcXVlcnlpbmcgYW55IGVudGl0eSwgdGhlIFNRTCBxdWVyeSB3aWxsIGFsd2F5cyBqb2luIHRvIHRoZSBgdXNlcmAgdGFibGUsIGVpdGhlciBkaXJlY3RseSBvciBpbmRpcmVjdGx5LCBpZiBpdCdzIHBvc3NpYmxlIHRvIGRvIHNvLiBUaGUgQVBJIGNvZGUgZ2VuZXJhdG9yIGRpc2NvdmVycyB3aGljaCB0YWJsZXMgYXJlIG5lZWRlZCB0byBqb2luIGluIG9yZGVyIHRvIHJlYWNoIHRoZSBgdXNlcmAgdGFibGUgdXNpbmcgYHJlY3Vyc2Vfam9pbl9jaGFpbigpYCBpbiBbZ2VuZXJhdG9yLmpzXShodHRwczovL2dpdGh1Yi5jb20vbmlja2ZhbGxvbi9jYXRhbHlzdC9ibG9iL21haW4vYXBwL2dlbmVyYXRvci5qcykuIFRoaXMgbWVhbnMgdGhhdCBmb3IgZGF0YWJhc2VzIHdoZXJlIG11bHRpcGxlIGRvbWFpbnMsIG9yZ2FuaXNhdGlvbnMsIGNvbXBhbmllcywgYWNjb3VudHMgb3Igb3RoZXIga2luZHMgb2Ygc2lsbyBleGlzdCwgcmVndWxhciB1c2VycyB3aWxsIG9ubHkgYmUgYWJsZSB0byByZXRyaWV2ZSB0aGUgZGF0YSBpbiB0aGVpciBvd24gc2lsby4KCgojIyMgQnVncy90by1kbwoKLSBgdXNlcmAgdGFibGUgKG9yIGAuZW52LkpPSU5fVVNFUl9UQUJMRWAgZXF1aXZhbGVudCkgY2FuIGJlIG9wZW5seSBxdWVyaWVkLiByZXN0cmljdCB0byBhZG1pbiBvbmx5IG9yIGFkZCBlbnZpcm9ubWVudCB2YXJpYWJsZS9saXN0IG9mIHJlc3RyaWN0ZWQgdGFibGVzLgoKLSBNYWtlIHN1cmUgeW91ciBmb3JlaWduIGtleXMgaGF2ZSB1bmlxdWUgbmFtZXMsIG90aGVyd2lzZSBlbmRwb2ludHMgYmV0d2VlbiB0YWJsZXMgdGhhdCBkb24ndCBoYXZlIHJlbGF0aW9uc2hpcHMgd2lsbCBiZSBnZW5lcmF0ZWQu readmeEtag: '"147cc7b326ce422b783ee484f258cbef0b570844"' readmeLastModified: Sun, 16 Jun 2024 00:46:26 GMT repositoryId: 675363467 description: >- Catalyst auto-generates an OpenAPI specification, a REST API that consumes it, and interactive Swagger docs from any provided Postgres database. created: '2023-08-06T17:05:01Z' updated: '2024-06-16T00:46:30Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: nickfallon logo: https://avatars.githubusercontent.com/u/15161343?v=4 repoEtag: '"e4e85fc8dad36c0dc3c55dce0725973b36b464fed5e798405e03ac2ff53b6d04"' repoLastModified: Sun, 16 Jun 2024 00:46:30 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/edmartt/django-task-backend v3: true id: f3e05424d2465ec5e28b82c267a8bf36 repositoryMetadata: base64Readme: >- IyBEamFuZ28gVGFzayBCYWNrZW5kCgpEamFuZ28gVGFzayBCYWNrZW5kIGlzIGEgc21hbGwgcHJvamVjdCBmb3Igc3RvcmluZyBkYWlseSB0YXNrcy4gSSB3YXMgbWFpbmx5IGludGVyZXN0ZWQgaW4gdGVzdGluZyB0aGUgcG93ZXIgb2YgRGphbmdvIHdpdGhvdXQgdXNpbmcgYW55IGV4dGVuc2lvbiB0byBtYWtlIGEgcmVzdGZ1bCBiYWNrZW5kIHNlcnZpY2UuCgojIyMgRmVhdHVyZXMKCi0gUmVnaXN0ZXIgZW5kcG9pbnQgZm9yIG5ldyB1c2VycwotIExvZ2luIGVuZHBvaW50IGZvciBleGlzdGFudCB1c2VycwotIEFmdGVyIGxvZ2dpbmcgaW4sIHRoZSByZXNwb25zZSBpcyBhIEpXVCB0byBiZSBhYmxlIHRvIGNyZWF0ZSBuZXcgdGFza3Mgb3IgY2hlY2sgZXhpc3Rpbmcgb25lcwotIEVhY2ggdXNlciBoYXMgdW5pcXVlIHRhc2tzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZSBvd25lciBvZiB0aGUgdGFza3MKCiMjIFJlcXVpcmVtZW50cwoKLSBQeXRob24gMy4xMSsKLSBTUUxpdGUKLSBodHRwIGNsaWVudDogUE9TVE1BTiwgSW5zb21uaWEsIGNVUkwKCiMjIyBSdW5uaW5nIExvY2FsbHkKCmBgYApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL0VkbWFydHQvZGphbmdvLXRhc2stYmFja2VuZC5naXQKYGBgCgpvciBzc2ggaW5zdGVhZDoKCmBgYApnaXQgY2xvbmUgZ2l0QGdpdGh1Yi5jb206RWRtYXJ0dC9kamFuZ28tdGFzay1iYWNrZW5kLmdpdApgYGAKCmJyb3dzZSBpbnRvIHByb2plY3QgZGlyZWN0b3J5OgoKYGBgCmNkIGRqYW5nby10YXNrLWJhY2tlbmQvCmBgYAoKY3JlYXRlIHZpcnR1YWwgZW52aXJvbm1lbnQKCmBgYApweXRob24gLW0gdmVudiBlbnYKYGBgCmFjdGl2YXRlIHZpcnR1YWwgZW52aXJvbm1lbnQKCmBgYAouIGVudi9iaW4vYWN0aXZhdGUgCmBgYAppbnN0YWxsIGRlcGVuZGVuY2llcwoKYGBgCnBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKYGBgCgpzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvbGxvd2luZyB0aGUgWy5lbnZyYy5leGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vRWRtYXJ0dC9kamFuZ28tdGFzay1iYWNrZW5kL2Jsb2IvbWFpbi8uZW52cmMuZXhhbXBsZSkgZmlsZSBhbmQgcnVuCgphcHBseSBtaWdyYXRpb25zCmBgYApweXRob24gbWFuYWdlLnB5IG1pZ3JhdGUKYGBgCgpydW4KCmBgYApweXRob24gbWFuYWdlLnB5IHJ1bnNlcnZlcgpgYGAKCgojIyMjIE5vdGUKCmFwaSBkb2N1bWVudGF0aW9uIGluOiBgL2FwaS92MS9zd2FnZ2VyYAo= readmeEtag: '"ca701ef7a1f0029300a934c7acd1e42bed8398d9"' readmeLastModified: Sat, 03 Aug 2024 19:31:41 GMT repositoryId: 738866392 description: Django Task Backend is a small project for storing daily tasks created: '2024-01-04T08:20:55Z' updated: '2024-08-03T19:31:45Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: Edmartt logo: https://avatars.githubusercontent.com/u/47486245?v=4 repoEtag: '"ccc0a5a59eefe3c0ed0a38561d88aeb13bfb7fc13502e5e1b5dd2cf3ba98d89d"' repoLastModified: Sat, 03 Aug 2024 19:31:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/open-banking/products v3: true repositoryMetadata: base64Readme: >- IyBwcm9kdWN0cwpPcGVuIEJhbmtpbmcgUHJvZHVjdHMgQVBJIGJ1aWx0IG9uIHRvcCBvZiBsaWdodC00ago= readmeEtag: '"c2fc536f7babe6a3ca208d30901d2c731eb423cc"' readmeLastModified: Thu, 25 Jul 2024 20:09:52 GMT repositoryId: 235865331 description: Open Banking Products API built on top of light-4j created: '2020-01-23T19:02:29Z' updated: '2024-09-04T18:31:45Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"00aef46f6279306519cb3be55b12022da0b32c544dcb9fbfddb887160a997c22"' repoLastModified: Wed, 04 Sep 2024 18:31:45 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 38262f9c9ca5153fa80b425418311ff0 - source: openapi3 tags repository: https://github.com/vincenzo-racca/spring-boot-openapi v3: true repositoryMetadata: repositoryId: 291784837 description: >- Java project with Spring Boot 2, Swagger 3 with the OpenAPI specification and a self-generated client. created: '2020-08-31T17:48:07Z' updated: '2021-04-10T15:59:33Z' language: Java archived: false stars: 0 watchers: 1 forks: 2 owner: vincenzo-racca logo: https://avatars.githubusercontent.com/u/69170382?v=4 repoEtag: '"a7fa84a4b37aecabf134abce10e80d6c8fa8a25b1cdc6b471a78308584038000"' repoLastModified: Sat, 10 Apr 2021 15:59:33 GMT foundInMaster: true id: 069b27ff6187547339fe168ff01e3981 - source: openapi3 tags repository: https://github.com/agranya99/product-management-system v3: true repositoryMetadata: base64Readme: >- IyBQcm9kdWN0IE1hbmFnZW1lbnQgU3lzdGVtCgpBIHNjYWxhYmxlIFJFU1QgQVBJIGRldmVsb3BlZCBpbiBOb2RlLkpzIHRvIGZhY2lsaXRhdGUgQ1JVRCBhbmQgdXRpbGl0eSBvcGVyYXRpb25zIG9uIHByb2R1Y3RzLCBjYXRlZ29yaWVzLCBwcm92aWRlcnMgKEJ1c2luZXNzIFBhcnRuZXJzKS4KClRoZSBzeXN0ZW0gZGVzaWduIGlzIHN1Y2ggdGhhdCBpdCBzdXBwb3J0cyBhbGwga2luZHMgb2YgUHJvZHVjdHMgKGZyb20gc3RhdGlvbmVyeSBpdGVtcyB0byBvbmxpbmUgTU9PQ3MpLCB3aXRoIHRoZSB1c2Ugb2YgbmVzdGVkIGBhdHRyaWJ1dGVzYCBvYmplY3QgdGhhdCBzdXBwb3J0cyBzZWFyY2hpbmcgdG9vLiBFYWNoIHByb2R1Y3QgY2FuIGhhdmUgaXRzIG93biBhdHRyaWJ1dGVzLiBUaGUgbW9kZWwgcHJvdmlkZXMgZ2VuZXJhbGl6YXRpb24gYW5kIHNwZWNpZmljYXRpb24gYXMgdGhlIGNhdGVnb3JpZXMgc3VwcG9ydCBzdWItY2F0ZWdvcmllcyBhbmQgc28gb24uIAoKQXV0aG9yaXphdGlvbiBpcyBwZXJmb3JtZWQgdmlhICoqT0F1dGggMi4wIChDbGllbnQgQ3JlZGVudGlhbHMgRmxvdykqKiBhbmQgUmVxdWVzdCBWYWxpZGF0aW9uIGlzIHBlcmZvcm1lZCB1c2luZyAqKkhhcGkvSk9JKiouIFRoZSBBUEkgdXNlcyBNb25nb0RCIGFzIGJhY2stZW5kIGRhdGFiYXNlIHdpdGggKipNb25nb29zZSoqIGZyYW1ld29yayBmb3IgZGF0YSBtb2RlbGxpbmcsIHF1ZXJ5aW5nIGFuZCB2YWxpZGF0aW9uLiAKCioqT3BlbkFQSSAzLjAgU3BlY2lmaWNhdGlvbioqIGlzIHdyaXR0ZW4gZm9yIHRoZSBBUEkuIDxodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzL2FncmFueWE5OS9Qcm9kdWN0LU1hbmFnZW1lbnQtU3lzdGVtLzEuMC4wPgoKIyMgU29mdHdhcmVzIGFuZCBGcmFtZXdvcmtzCi0gT3BlbkFQSSAzLjAgU3BlY2lmaWNhdGlvbgotIGV4cHJlc3MuanMKLSBPQXV0aCAyLjAgKE9rdGEgQXV0aG9yaXphdGlvbiBTZXJ2ZXIpCi0gSk9JIAotIE1vbmdvb3NlCi0gTW9uZ29EQiBBdGxhcwoKIyMgSG93IHRvIFJ1bgoKIyMjIEluc3RhbGxhdGlvbgoKLSBDbG9uZSB0aGlzIEdpdEh1YiByZXBvIHRvICdkaXInCi0gTmF2aWdhdGUgdG8gJ2RpcicKLSBSdW4gYG5wbSBpbnN0YWxsYCB0byBpbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMKLSBSdW4gYG5vZGVtb24gLlxzZXJ2ZXIuanNgIG9yIGBub2RlIC5cc2VydmVyLmpzYCB0byBzdGFydCBhIHNlcnZlciBpbnN0YW5jZSBvZiB0aGUgcHJvamVjdAoKIyMjIEF1dGhvcml6YXRpb24KCi0gQ3JlYXRlIGEgUE9TVCBSZXF1ZXN0IHRvIGB7IElTU1VFUiB9L3YxL3Rva2VuYCA9PSA8aHR0cHM6Ly9kZXYtOTQxNTcxLm9rdGEuY29tL29hdXRoMi9hdXM0NnB5bnQwTUlOV0hobTR4Ni92MS90b2tlbj4gIHdpdGgKICAtIFBhc3MgYEJhc2ljYCBBdXRob3JpemF0aW9uIEhlYWRlcjogYHsgY2xpZW50SUQgfWAgYW5kIGB7IGNsaWVudFNlY3JldCB9YCBmcm9tIC5lbnYKICAtIFBhc3MgUGFyYW1ldGVyczogYHNjb3BlYCBmcm9tIC5lbnYgYW5kIGBncmFudF90eXBlID0gY2xpZW50X2NyZWRlbnRpYWxzYAogICFbUG9zdG1hbiBBdXRoIEltYWdlXShodHRwczovL2dpdGh1Yi5jb20vYWdyYW55YTk5L1Byb2R1Y3QtTWFuYWdlbWVudC1TeXN0ZW0vYmxvYi9tYXN0ZXIvc2NyZWVuc2hvdHMvZ2V0QWNjZXNzVG9rZW4ucG5nICJQb3N0bWFuIEV4YW1wbGUiKQogIAotIElmIGNyZWRlbnRpYWxzIGFyZSB2YWxpZCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVjZWl2ZSBiYWNrIGEgcmVzcG9uc2Ugd2l0aCBgQmVhcmVyYCB0b2tlbiAoYXJvdW5kIDgwMCBjaGFyYWN0ZXJzKQogIC0gYGBgCiAgICB7CiAgICAiYWNjZXNzX3Rva2VuIjogImV5SmhiR1suLi5dMUxRIiwKICAgICJ0b2tlbl90eXBlIjogIkJlYXJlciIsCiAgICAiZXhwaXJlc19pbiI6IDg2NDAwLAogICAgInNjb3BlIjogInBtcyIKICAgIH0KICAgIGBgYAogICAgCi0gUGFzcyB0aGlzIGBCZWFyZXJgIHRva2VuIGFzIFJlcXVlc3QgSGVhZGVyIG9mIHlvdXIgcmVxdWVzdHMgdG8gdGhlIFJFU1QgQVBJCiAgCgojIyBGZWF0dXJlcyBhbmQgTml0dHkgR3JpdHRpZXMKCiMjIyBPcGVuQVBJIDMuMCBTcGVjaWZpY2F0aW9uCkRldGFpbGVkIEFQSSBEZXNjcmlwdGlvbiAtIGF2YWlsYWJsZSBlbmRwb2ludHMgYW5kIHBvc3NpYmxlIG9wZXJhdGlvbnMgb24gdGhlIGVuZHBvaW50cyB3aXRoIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGRldGFpbHMuCgpUaGUgc3BlY2lmaWNhdGlvbiBpcyBidWlsdCB1c2luZyByZS11c2FibGUgYHNjaGVtYXNgLCBgcGFyYW1ldGVyc2AsIGByZXF1ZXN0Qm9kaWVzYCBhbmQgYHJlc3BvbnNlc2AgYW5kIGluY2x1ZGVzIGBzZWN1cml0eVNjaGVtZXNgIGZvciBPQXV0aDIuMC4KCkNoZWNrb3V0IDxodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzL2FncmFueWE5OS9Qcm9kdWN0LU1hbmFnZW1lbnQtU3lzdGVtLzEuMC4wPiBvciBvcGVuYXBpLXNwZWMueWFtbAoKIyMjIEdlbmVyYWxpemF0aW9uIGFuZCBTcGVjaWZpY2F0aW9uIChzY2FsYWJpbGl0eSEpCgpUaGUgUHJvZHVjdHMgZmVhdHVyZSBgYXR0cmlidXRlc2Agb2JqZWN0IHdoaWNoIGNhbiBjb250YWluIGFueSBudW1iZXIgb2YgYXR0cmlidXRlcyB3aXRoIG11bHRpcGxlIHZhbHVlcwoKTGlrZToKYGBgCmF0dHJpYnV0ZXM6IHsgImNvbG9ycyI6IFsid2hpdGUiLCAiYmxhY2siXSwgInNpemVzIjogWyIxM2luIiwgIjE1aW4iXSAuLi4gfQpgYGAKClRoZSBDYXRlZ29yaWVzIGZlYXR1cmUgYHBhcmVudENhdGVnb3J5SURgIHdoaWNoIGFsbG93cyBicmFuY2hpbmcgb2YgY2F0ZWdvcmllcyBpbnRvIG1vcmUgc3BlY2lmaWMgb25lcywgbGlrZSBwZXJpcGhlcmFscyBpcyBhIHN1Yi1jYXRlZ29yeSBvZiBjb21wdXRlcnMgYWdhaW4gaXMgYSBzdWItY2F0ZWdvcnkgb2YgZWxlY3Ryb25pY3MuCgojIyMgcVRhZ3MgLSBUYWdzIGFzc29jaWF0ZWQgd2l0aCBhIHByb2R1Y3QKCmBxVGFnc2AgaGVscCB3aXRoIHNlYXJjaGluZyBhbmQgZmluZGluZyBzaW1pbGFyIHByb2R1Y3RzLiBUaGVzZSBhcmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyB3aXRoIHRlcm1zIGxvb3NlbHkgYXNzb2NpYXRlZCB3aXRoIGEgcHJvZHVjdC4KCkxpa2U6CmBgYAogICAgewogICAgICAgICJxVGFncyI6IFsibGFwdG9wIiwgImdhbWluZyIsICJzdHVkZW50IiwgImNyZWF0b3IiXSwKICAgICAgICAiaW1hZ2VVUkxzIjogWyJEOi9ibGFkZS9pbWFnZTAwMS5wbmciXSwKICAgICAgICAicHJvdmlkZXJJRCI6IDEsCiAgICAgICAgInN0YXR1cyI6ICJhdmFpbGFibGUiLAogICAgICAgICJza3UiOiAiMTIzYWJjNDUiLAogICAgICAgICJuYW1lIjogIkJsYWRlIFN0ZWFsdGgiLAogICAgICAgICJjYXRlZ29yeUlEIjogMSwKICAgICAgICAiYXR0cmlidXRlcyI6IHsgImNvbG9ycyI6IFsid2hpdGUiLCAiYmxhY2siLCAic2lsdmVyIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzaXplcyI6IFsiMTNpbiIsICIxNWluIl0gfSwKICAgICAgICAicHJpY2UiOiAxMTU5OTksCiAgICAgICAgImxhdW5jaERhdGUiOiAiMjAyMC0wMy0xNVQwMDowMDowMC4wMDBaIiwKICAgICAgICAic3RvY2siOiAzNTAwCiAgICB9CmBgYAoKIyMjIEZldGNoaW5nLCBTZWFyY2hpbmcgYW5kIFBhZ2luYXRpb24KYGxpbWl0YCBhbmQgYG9mZnNldGAgcGFyYW1ldGVycyBjYW4gYmUgcGFzc2VkIGFzIHF1ZXJ5IHN0cmluZyB0byBzZXQgYSBsaW1pdCBvbiBudW1iZXIgb2YgcmVjb3JkcyB0byBmZXRjaCBhdCBvbmNlIHdoaWxlIGJlaW5nIGFibGUgdG8gbmF2aWdhdGUgdGhyb3VnaCB0aGUgd2hvbGUgc2V0LiBUaGlzIGhlbHBzIHdpdGggKipzY2FsYWJpbGl0eSoqLiAKCkxpa2U6Ci0gYGxvY2FsaG9zdDozMDAwL3Byb2R1Y3RzP29mZnNldD0wJmxpbWl0PTI1YCwKLSBgbG9jYWxob3N0OjMwMDAvY2F0ZWdvcmllcz9vZmZzZXQ9MSZsaW1pdD0xMGAsCi0gYGxvY2FsaG9zdDozMDAwL3Byb3ZpZGVycz9saW1pdD0xMGAKCioqR0VUIC9wcm9kdWN0cyoqCkZldGNoIGEgbGlzdCBvZiBQcm9kdWN0cyB2aWEgKipxdWVyaWVzKioKCkxpa2U6Ci0gYGxvY2FsaG9zdDozMDAwL3Byb2R1Y3RzP25hbWU9QmxhZGUgU3RlYWx0aGAsCi0gYGxvY2FsaG9zdDozMDAwL3Byb2R1Y3RzP3Byb3ZpZGVyPVJhemVyYCwKLSBgbG9jYWxob3N0OjMwMDAvcHJvZHVjdHM/cVRhZ3M9bWFya2VyJmF0dHJpYnV0ZXNbY29sb3JzXT1ibGFja2AKCioqR0VUIC9jYXRlZ29yaWVzKioKRmV0Y2ggTGlzdCBvZiBDYXRlZ29yeSBvYmplY3RzIHVzaW5nICoqcXVlcmllcyoqCgpMaWtlOgotIGBsb2NhbGhvc3Q6MzAwMC9jYXRlZ29yaWVzP25hbWU9UGVyaXBoZXJhbHNgCgoqKkdFVCAvcHJvdmlkZXJzKioKRmV0Y2ggYSBsaXN0IG9mIFByb3ZpZGVycyAoUGFydG5lciBCdXNpbmVzc2VzKSB2aWEgKipxdWVyaWVzKioKCkxpa2U6Ci0gYGxvY2FsaG9zdDozMDAwL3Byb3ZpZGVycz9uYW1lPVJhemVyYAoKfCAhW3NlYXJjaFByb2R1Y3RzQnlxVGFnc0FuZEF0dHJpYnV0ZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hZ3JhbnlhOTkvUHJvZHVjdC1NYW5hZ2VtZW50LVN5c3RlbS9ibG9iL21hc3Rlci9zY3JlZW5zaG90cy9zZWFyY2hQcm9kdWN0c0J5cVRhZ3NBbmRBdHRyaWJ1dGVzLlBORyAic2VhcmNoUHJvZHVjdHNCeXFUYWdzQW5kQXR0cmlidXRlcyIpIHwgIVtzZWFyY2hDYXRlZ29yaWVzQnlOYW1lXShodHRwczovL2dpdGh1Yi5jb20vYWdyYW55YTk5L1Byb2R1Y3QtTWFuYWdlbWVudC1TeXN0ZW0vYmxvYi9tYXN0ZXIvc2NyZWVuc2hvdHMvc2VhcmNoQ2F0ZWdvcmllc0J5TmFtZS5QTkcgInNlYXJjaENhdGVnb3JpZXNCeU5hbWUiKSB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8ICFbcGFnaW5hdGVQcm9kdWN0c10oaHR0cHM6Ly9naXRodWIuY29tL2FncmFueWE5OS9Qcm9kdWN0LU1hbmFnZW1lbnQtU3lzdGVtL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL3BhZ2luYXRlUHJvZHVjdHMuUE5HICJwYWdpbmF0ZVByb2R1Y3RzIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAhW2dldFNpbWlsYXJQcm9kdWN0c10oaHR0cHM6Ly9naXRodWIuY29tL2FncmFueWE5OS9Qcm9kdWN0LU1hbmFnZW1lbnQtU3lzdGVtL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL2dldFNpbWlsYXJQcm9kdWN0cy5QTkcgImdldFNpbWlsYXJQcm9kdWN0cyIpICAgICAgICAgICAgIHwKCgoKfCBNZXRob2QgfCBFbmRwb2ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgR0VUICAgIHwgL3Byb2R1Y3RzL3tza3V9ICAgICAgICAgICAgICAgICAgICAgICAgfCBHZXQgdGhlIGRldGFpbHMgb2YgYSBwcm9kdWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHRVQgICAgfCAvY2F0ZWdvcmllcy97Y2F0ZWdvcnlJRH0gICAgICAgICAgICAgICB8IEdldCB0aGUgZGV0YWlscyBvZiBhIGNhdGVnb3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdFVCAgICB8IC9jYXRlZ29yaWVzL3tjYXRlZ29yeUlEfS9zdWJDYXRlZ29yaWVzIHwgR2V0IHN1YiBjYXRlZ29yaWVzIG9mIGEgY2F0ZWdvcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR0VUICAgIHwgL2NhdGVnb3JpZXMve2NhdGVnb3J5SUR9L3Byb2R1Y3RzICAgICAgfCBHZXQgYWxsIHByb2R1Y3RzIGluIGEgY2F0ZWdvcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHRVQgICAgfCAvcHJvZHVjdHMve3NrdX0vc2ltaWxhciAgICAgICAgICAgIHwgR2V0IHNpbWlsYXIgcHJvZHVjdHMgdG8gYSBwYXJ0aWN1bGFyIHByb2R1Y3QgKEJhc2VkIG9uIFF1ZXJ5IFRhZ3MgLSAgcVRhZ3MgYXR0cmlidXRlKSB8CnwgR0VUICAgIHwgL3Byb3ZpZGVycy97cHJvdmlkZXJJRH0gICAgICAgICAgICAgICAgfCBHZXQgdGhlIGRldGFpbHMgb2YgYSBQcm92aWRlciAoUGFydG5lciBCdXNpbmVzcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCgojIyMgUmVjb3JkcyBNYW5pcHVsYXRpb24KTW9uZ29EQiBkYXRhYmFzZSBpcyB1c2VkIGZvciBzdG9yaW5nIHJlY29yZHMuICoqTW9uZ29vc2UqKiBpcyB1c2VkICB0byBtb2RlbCB0aGUgZGF0YS4gSXQgaW5jbHVkZXMgYnVpbHQtaW4gdHlwZSBjYXN0aW5nLCB2YWxpZGF0aW9uLCBxdWVyeSBidWlsZGluZy4gUmVmZXIgT3BlbkFQSSBTcGVjIGZvciByZXF1ZXN0IGJvZGllcyBhbmQgcGFyYW1ldGVycy4KCioqUmVzcG9uc2VzIGFyZSBjb25zaXN0ZW50KioKClBPU1QKLSBgMjAwYCB3aXRoIHsgYHNrdWAsIGBzdGF0dXNgLCBgbWVzc2FnZWAgfSBmb3Igc3VjY2Vzc2Z1bCBvcGVyYXRpb24KLSBgNDAwYCB3aXRoIHsgYHN0YXR1c2AsIGBtZXNzYWdlYCB9IGZvciBJbnZhbGlkIFJlcXVlc3QgLyBEdXBsaWNhdGUgS2V5IEVycm9yCgpQVVQKLSBgMjAwYCB3aXRoIHVwZGF0ZWQgYHByb2R1Y3RgLCBgY2F0ZWdvcnlgIG9yIGBwcm92aWRlcmAgb2JqZWN0IGZvciBzdWNjZXNzZnVsIG9wZXJhdGlvbgotIGA0MDRgIGZvciBOb3QgRm91bmQgRXJyb3Igb24gdGhlIHJlc291cmNlIHRvIGJlIHVwZGF0ZWQKLSBgNDAwYCB3aXRoIHsgYHN0YXR1c2AsIGBtZXNzYWdlYCB9IGZvciBJbnZhbGlkIFJlcXVlc3QKCkRFTEVURQotIGAyMDBgIHdpdGggeyBgc2t1YCwgYHN0YXR1c2AsIGBtZXNzYWdlYCB9IGZvciBzdWNjZXNzZnVsIG9wZXJhdGlvbgotIGA0MDRgIGZvciBOb3QgRm91bmQgRXJyb3Igb24gdGhlIHJlc291cmNlIHRvIGJlIHVwZGF0ZWQKLSBgNDAwYCB3aXRoIHsgYHN0YXR1c2AsIGBtZXNzYWdlYCB9IGZvciBJbnZhbGlkIFJlcXVlc3QKClZhbGlkYXRpb24gRXJyb3JzCi0gYDQwMGAgcmVzcG9uc2Ugd2l0aCB7IGBzdGF0dXNgLCBgbWVzc2FnZWAgfSBkZXNjcmliaW5nIHdoYXQgY2F1c2VkIHRoZSB2YWxpZGF0aW9uIHRvIGZhaWwKCkludGVybmFsIFNlcnZlciBFcnJvcnMKLSBgNTAwYCByZXNwb25zZSB3aXRoIHsgYHN0YXR1c2AsIGBtZXNzYWdlYCB9LCBubyBkZXNjcmlwdGlvbiBvZiBlcnJvcgoKfCAhW2NyZWF0ZVByb2R1Y3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9hZ3JhbnlhOTkvUHJvZHVjdC1NYW5hZ2VtZW50LVN5c3RlbS9ibG9iL21hc3Rlci9zY3JlZW5zaG90cy9jcmVhdGVQcm9kdWN0LlBORyAiY3JlYXRlUHJvZHVjdCIpIHwgIVtjcmVhdGVDYXRlZ29yeV0oaHR0cHM6Ly9naXRodWIuY29tL2FncmFueWE5OS9Qcm9kdWN0LU1hbmFnZW1lbnQtU3lzdGVtL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL2NyZWF0ZUNhdGVnb3J5LlBORyAiY3JlYXRlQ2F0ZWdvcnkiKSB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAoKCnwgTWV0aG9kIHwgRW5kcG9pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IFBPU1QgICB8IC9wcm9kdWN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQWRkIGEgbmV3IHByb2R1Y3QgdmlhIEpTT04gcmVxdWVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUFVUICAgIHwgL3Byb2R1Y3RzL3tza3V9ICAgICAgICAgICAgICAgICAgICAgICAgfCBVcGRhdGUgYW4gZXhpc3RpbmcgcHJvZHVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBERUxFVEUgfCAvcHJvZHVjdHMve3NrdX0gICAgICAgICAgICAgICAgICAgICAgICB8IERlbGV0ZSBhbiBleGlzdGluZyBwcm9kdWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBPU1QgICB8IC9jYXRlZ29yaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQWRkIGEgbmV3IGNhdGVnb3J5IHZpYSBKU09OIHJlcXVlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUFVUICAgIHwgL2NhdGVnb3JpZXMve2NhdGVnb3J5SUR9ICAgICAgICAgICAgICAgfCBVcGRhdGUgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBERUxFVEUgfCAvY2F0ZWdvcmllcy97Y2F0ZWdvcnlJRH0gICAgICAgICAgICAgICB8IERlbGV0ZSBhbiBleGlzdGluZyBjYXRlZ29yeSBhbmQgYWxsIGl0cyBzdWJjYXRlZ29yaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBPU1QgICB8IC9wcm92aWRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQWRkIGEgbmV3IFByb3ZpZGVyIChQYXJ0bmVyIEJ1c2luZXNzKSB2aWEgSlNPTiByZXF1ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBVVCAgICB8IC9wcm92aWRlcnMve3Byb3ZpZGVySUR9ICAgICAgICAgICAgICAgIHwgVXBkYXRlIGFuIGV4aXN0aW5nIFByb3ZpZGVyIChQYXJ0bmVyIEJ1c2luZXNzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgREVMRVRFIHwgL3Byb3ZpZGVycy97cHJvdmlkZXJJRH0gICAgICAgICAgICAgICAgfCBEZWxldGUgYW4gZXhpc3RpbmcgUHJvdmlkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIyBBdXRob3JpemF0aW9uIAoqKk9BdXRoIDIuMCBDbGllbnQgQ3JlZGVudGlhbHMgR3JhbnQqKiBpcyBpbXBsZW1lbnRlZCB1c2luZyBPa3RhIEF1dGhvcml6YXRpb24gc2VydmVyLiBJdCBoZWxwcyB3aXRoIGdyYW50aW5nIGxpbWl0ZWQgYWNjZXNzIHdpdGhvdXQgdXNlciBjcmVkZW50aWFscywgc2V0IHJhdGUgbGltaXRzLCBldGMuCgpUaGUgY2xpZW50IChkYWVtb24pIG5lZWRzIHRvIGZldGNoIGEgdmFsaWQgYHRva2VuYCBmcm9tIHRoZSBva3RhIGF1dGhvcml6YXRpb24gc2VydmVyIGJ5IHNlbmRpbmcgYSByZXF1ZXN0IHdpdGggYGNsaWVudElEYCwgYGNsaWVudFNlY3JldGAsIGFuZCBgc2NvcGVgLgoKVGhlIHJlY2VpdmVkIHRva2VuICh3aG9zZSB2YWxpZGl0eSBjYW4gYmUgc2V0IGluIHRoZSBhdXRob3JpemF0aW9uIHNlcnZlciwgbWF4ID0gMSBkYXkpIGlzIHRoZW4gcGFzc2VkIGFzIGhlYWRlciAoYGJlYXJlcmApIHRvIHRoZSBBUEkgc2VydmVyIHdpdGggZWFjaCByZXF1ZXN0LgoKIyMjIFJlcXVlc3QgVmFsaWRhdGlvbgoqKkhhcGkvSk9JKiogaXMgdXNlZCB0byBwZXJmb3JtIHNjaGVtYS1iYXNlZCByZXF1ZXN0IHZhbGlkYXRpb24uIEl0IGhlbHBzIGVuZm9yY2Ugc3RhbmRhcmRzIGFuZCBwcmV2ZW50IHVuZXhwZWN0ZWQgZXJyb3JzLgoKQ2hlY2tvdXQ6IDxodHRwczovL2dpdGh1Yi5jb20vYWdyYW55YTk5L1Byb2R1Y3QtTWFuYWdlbWVudC1TeXN0ZW0vdHJlZS9tYXN0ZXIvc2NyZWVuc2hvdHMvZXJyb3JzPgoKCiMjIE1pc2NlbGxhbmVvdXMKCioqR0VUIC8qKgpGZXRjaCBhIGxpc3Qgb2YgYWxsIHZhbGlkIGVuZHBvaW50cwoKYEdFVGAgYFBPU1RgIGBQVVRgIGBERUxFVEVgIC8qIApJbnZhbGlkIFVSTCBoYW5kbGVkLiBMaXN0IG9mIHZhbGlkIGVuZHBvaW50cyByZXR1cm5lZC4K readmeEtag: '"dfbb8d3c1b36efc2371231e499d6d306015222bc"' readmeLastModified: Fri, 20 Mar 2020 17:32:16 GMT repositoryId: 248045592 description: >- A scalable REST API developed in Node.Js to facilitate CRUD and utility operations on products, categories, providers (Business Partners). OpenAPI 3.0 Specification: created: '2020-03-17T18:34:43Z' updated: '2020-03-20T17:32:19Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: agranya99 logo: https://avatars.githubusercontent.com/u/35340618?v=4 repoEtag: '"eb6ab7cea4f5b01c50e34b7addbc94b9dbcfe44f0f1f5676c1b57c412699cbdc"' repoLastModified: Fri, 20 Mar 2020 17:32:19 GMT foundInMaster: true category: Server Implementations id: 95b027c6e559274844c25f5bbc89a71d - source: openapi3 tags repository: https://github.com/mwczapski/swagger_codegen_3_docker_container v3: true repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyX0NvZGVnZW5fMy4wX0RvY2tlcl9Db250YWluZXIKClRoZSBpbnRlbnQgb2YgdGhpcyByZXBvc2l0b3J5IGlzIHRvIGhvc3QgcmVzb3VyY2VzIHRoYXQgcHJvdmlkZSB0aGUgbWVhbnMgdG8gY3JlYXRlIGEgc2VsZi1jb250YWluZWQgRG9ja2VyIGNvbnRhaW5lciBmb3IgQVBJLUZpcnN0IGRldmVsb3BtZW50IHVzaW5nIHRoZSBsYXRlc3QgU3dhZ2dlciBDb2RlZ2VuICgzLngpIGFuZCBPcGVuQVBJICgyIG9yIDMpLgoKVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGlzIHJlcG9zaXRvcnk6CgoxLiBbQ3JlYXRlIERvY2tlciBJbWFnZV0oU3dhZ2dlcl9Db2RlZ2VuX0RvY2tlcl9Db250YWluZXJfZm9yX0FQSS1GaXJzdF9EZXZlbG9wbWVudC5tZCkgLSBTdGVwcyB0byBjcmVhdGUgdGhlIHJlYWR5LXRvLWdvIFN3YWdnZXIgQ29kZWdlbiBEb2NrZXIgQ29udGFpbmVyLgoyLiBbVXNlIFN3YWdnZXIgQ29kZWdlbiBEb2NrZXIgQ29udGFpbmVyXShIb3dfVG9fVXNlX1N3YWdnZXJfQ29kZWdlbl9Eb2NrZXJfSW1hZ2UubWQpIC0gQ3JlYXRlIGFuZCB1c2UgdGhlIGNvbnRhaW5lcgozLiBbQ3JlYXRlIFN3YWdnZXIgQ29kZWdlbiBFbnZpcm9ubWVudCBpbiBBbHBpbmUgV1NMXShjcmVhdGVfc3dhZ2dlcl9jb2RlZ2VuX2luX3dzbF9hbHBpbmUubWQpIC0gQ3JlYXRlIFN3YWdnZXIgQ29kZWdlbiBlbnZpcm9ubWVudCBpbiBXaW5kb3dzIFdTTDIgdXNpbmcgQWxwaW5lIExpbnV4IGRpc3RyaWJ1dGlvbgoKVGhlIERvY2tlciBJbWFnZSBjcmVhdGVkIGluICgxKSBhbmQgdXNlZCBpbiAoMikgaXMgYXZhaWxhYmxlIGF0IFttd2N6YXBza2kvc3dhZ2dlci1jb2RlZ2VuOjEuMC4wXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbXdjemFwc2tpL3N3YWdnZXJfY29kZWdlbikgb24gRG9ja2VyIEh1Yi4K readmeEtag: '"1e40b981af605d7a572789fff5a2c7f516a4215b"' readmeLastModified: Sun, 09 Aug 2020 03:27:08 GMT repositoryId: 278782925 description: >- The intent of this repository is to host resources that provide the means to create a self-contained Docker container for API-First development using the latest Swagger Codegen (3.x) and OpenAPI (2 or 3). created: '2020-07-11T03:50:21Z' updated: '2020-08-09T03:28:59Z' language: Shell archived: false stars: 0 watchers: 1 forks: 0 owner: mwczapski logo: https://avatars.githubusercontent.com/u/57377978?v=4 license: MIT repoEtag: '"d84cd038426124a7bbd95c839485bfc6e497c2e7ff4d61d5f801b431bd7ff9a5"' repoLastModified: Sun, 09 Aug 2020 03:28:59 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 353287ebae45b064ba880934bb30c6f9 - source: openapi3 tags repository: https://github.com/zit0un/geojson-oas3 v3: true repositoryMetadata: base64Readme: >- IyBHZW9KU09OLU9BUzMKKkdlb0pTT04gZGVmaW5pdGlvbiB3aXRoIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiB2My4wKgoKVGhpcyBkb2N1bWVudCBkZWZpbmVzIHRoZSBHZW9KU09OIGZvcm1hdCBhcyBhbiBPcGVuQVBJIHYzLgpJdCBjb250YWlucyB0aGUgZGVmaW5pdGlvbnMgZm9yICdGZWF0dXJlJyBvYmplY3QgYW5kICdGZWF0dXJlQ29sbGVjdGlvbicKb2JqZWN0cywgYXMgd2VsbCBhcyB0aGUgZGVmaW5pdGlvbnMgZm9yIGFsbCAnR2VvbWV0cnknIG9iamVjdHMuCkl0IGNvbmZvcm1zIHdpdGggdGhlICdSRkMtNzk0Nicgc3RhbmRhcmQgZnJvbSBJRVRGIChBdWd1c3QgMjAxNiB2ZXJzaW9uKQo8YnIvPmh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3OTQ2CgpLdWRvcyB0byBAYnViYm9ibmUgYW5kIEBpZGt3IHdob3NlIGNvZGUgaGVscGVkIG1lIG5vdCBzdGFydCBmcm9tIHNjcmF0Y2gKPGJyLz5odHRwczovL2dpc3QuZ2l0aHViLmNvbS9idWJib2JuZS9mZTVmMmRiNjVhY2YwMzliZTZhOWZkOTJmYzljNzIzMwo= readmeEtag: '"0673d964ed14f3c99e3e4e9c2192999e1543205b"' readmeLastModified: Wed, 30 Jun 2021 07:19:40 GMT repositoryId: 327877838 description: OAS3 definitions for GeoJSON created: '2021-01-08T11:00:03Z' updated: '2021-06-30T07:21:11Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: zit0un logo: https://avatars.githubusercontent.com/u/23296627?v=4 license: MIT repoEtag: '"59f23e0934d87fe333161d4a214c91cc012845538ddc3b79f920ce3e50644eb6"' repoLastModified: Wed, 30 Jun 2021 07:21:11 GMT foundInMaster: true category: Parsers id: 97e3320b6415a877c8152e14611b7933 - source: openapi3 tags repository: https://github.com/spider101/imagegram v3: true repositoryMetadata: base64Readme: >- IyBJbWFnZWdyYW0KCiMjIE92ZXJ2aWV3CgpUaGlzIGlzIGEgc2ltcGxlIGFwcGxpY2F0aW9uIGV4cG9zaW5nIGEgUkVTVCBBUEkgdG8gbWFuYWdlIHBvc3RzIG1hZGUgYnkgdXNlcnMgd2hpY2ggaW5jbHVkZSBpbWFnZXMgYW5kIGNvbW1lbnRzLiBUaGUgdXNlcnMgY2FuIGNyZWF0ZSB0aGVpciBvd24gYWNjb3VudCwgY3JlYXRlIG5ldyBwb3N0cyBmcm9tIHRoZWlyIGFjY291bnQgYW5kIGV2ZW4gYWRkIGNvbW1lbnRzIG9uIHZhcmlvdXMgcG9zdHMsIGluY2x1ZGluZyB0aGVpciBvd24uIEVhY2ggcG9zdCBjb25zaXN0cyBvZiBhIGNhcHRpb24gYW5kIGFuIGltYWdlIGFuZCB0aGUgdXNlciBjYW4gYWNjZXNzIGFsbCB0aGUgcG9zdHMgaW4gdGhlIGFwcGxpY2F0aW9uIHZpYSBhIHNpbmdsZSBlbmRwb2ludC4gRmluYWxseSwgdG8gc2FmZWd1YXJkIHRoZSB1c2VyJ3MgcHJpdmFjeSwgdGhleSBhcmUgYWxzbyBnaXZlbiB0aGUgY2FwYWJpbGl0eSBvZiBkZWFjdGl2YXRpbmcgdGhlaXIgYWNjb3VudCB3aGljaCBhbHNvIGRlbGV0ZXMgYWxsIGRhdGEgKHBvc3RzIGFuZCBjb21tZW50cykgYXNzb2NpYXRlZCB3aXRoIHRoZWlyIGFjY291bnQuCgojIyBQcmVyZXF1aXNpdGVzCgpZb3UgbXVzdCBoYXZlIERvY2tlciBpbnN0YWxsZWQgb24geW91ciBjb21wdXRlci4gWW91IGNhbiBmb2xsb3cgdGhlc2UgW2luc3RydWN0aW9uc10oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZGVza3RvcCkgdG8gaGF2ZSBpdCBxdWlja2x5IGluc3RhbGxlZC4gWW91IG11c3QgYWxzbyBoYXZlIGEgYC5lbnZgIGNyZWF0ZWQgYXQgdGhlIHJvb3Qgb2YgdGhlIHJlcG9zaXRvcnkuIFlvdSBjYW4gcmVmZXIgdG8gdGhlIGAuZW52YCBbZXhhbXBsZSBmaWxlXSguZW52LmV4YW1wbGUpIGZvciB0aGUgdmFyaWFibGVzIHlvdSBuZWVkIHRvIGluY2x1ZGUuCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCk9uY2UgeW91IGhhdmUgRG9ja2VyIHNldHVwLiBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kcyBvbiB5b3VyIHRlcm1pbmFsIHRvIHNwaW4gdXAgdGhlIGNvbnRhaW5lcnMgdGhhdCB3aWxsIGNvbXBvc2UgdGhlIGFwcGxpY2F0aW9uLgoKYGBgc2hlbGwKZG9ja2VyLWNvbXBvc2UgYnVpbGQKZG9ja2VyLWNvbXBvc2UgdXAKYGBgCgpUbyB2ZXJpZnkgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcsIHlvdSBjYW4gaGl0IHRoZSBmb2xsb3dpbmcgZW5kcG9pbnQgdG8gcGVyZm9ybSBhIGBoZWFsdGNoZWNrYDoKCmBgYHNoZWxsCmN1cmwgLS1sb2NhdGlvbiAtLXJlcXVlc3QgR0VUICdsb2NhbGhvc3Q6MzAwMS9oZWFsdGhjaGVjaycKYGBgCgpUaGVyZWFmdGVyLCB5b3UgY2FuIGludGVyYWN0IHdpdGggdGhlIGFwcGxpY2F0aW9uIG9uIHRoZSBmb2xsb3dpbmcgZW5kcG9pbnRzOgoKKiBQT1NUIGAvYWNjb3VudHNgIHRvIGNyZWF0ZSBuZXcgYWNjb3VudHMKKiBERUxFVEUgYC9hY2NvdW50cy86YWNjb3VudElkYCB0byBkZWxldGUgYW4gYWNjb3VudCBhbmQgYWxsIHBvc3QgYW5kIGNvbW1lbnQgZGF0YSBhc3NvY2lhdGVkIHdpdGggaXQKKiBQT1NUIGAvcG9zdHNgIHRvIGNyZWF0ZSBuZXcgcG9zdHMKKiBHRVQgYC9wb3N0c2AgdG8gZmV0Y2ggYWxsIHBvc3RzIGluIHRoZSBhcHBsaWNhdGlvbgoqIFBPU1QgYC9jb21tZW50c2AgdG8gYWRkIG5ldyBjb21tZW50cyBvbiBwb3N0cwoKWW91IGNhbiBmaW5kIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIGJ1aWxkIHRoZSByZXNwZWN0aXZlIGNVUkwgY2FsbHMgYnkgZm9sbG93aW5nIHRoZSBPcGVuQVBJIHNwZWMgZm91bmQgW2hlcmVdKHNyYy9hcGkvb3BlbmFwaS55YW1sKQoKVG8gc3RvcCB0aGUgYXBwbGljYXRpb24sIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gc3RvcCB0aGUgcnVubmluZyBjb250YWluZXJzIGFuZCByZW1vdmUgdGhlbS4KCmBgYHNoZWxsCmRvY2tlci1jb21wb3NlIHN0b3AKYGBg readmeEtag: '"85e0652d8eaade5d29b17255f716763f730c6368"' readmeLastModified: Thu, 18 Nov 2021 15:06:54 GMT repositoryId: 412525316 description: >- A simple application exposing a REST API to manage posts made by users which include images and comments. created: '2021-10-01T15:42:06Z' updated: '2021-11-18T15:07:07Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: Spider101 logo: https://avatars.githubusercontent.com/u/6288118?v=4 repoEtag: '"464e00aff879f4291ec46103481c3474765c6241cf7188211f49d2b7106516a8"' repoLastModified: Thu, 18 Nov 2021 15:07:07 GMT foundInMaster: true category: Server Implementations id: be2ee1b145265eeb87a69c0a430c8acd - source: openapi3 tags repository: https://github.com/alxael/product-api v3: true id: 616741f2748aee446ee398254bb6e602 repositoryMetadata: base64Readme: >- IyBQcm9kdWN0IEFQSQoKVGhpcyBwcm9qZWN0IGlzIGEgUkVTVGZ1bCBBUEkgZGVzaWduZWQgZm9yIHRoZSBtYW5hZ2VtZW50IG9mIGFuIG9ubGluZSBzaG9wLgoKIyMgVGVjaG5vbG9naWVzIHVzZWQKClRoZSBwcm9qZWN0IHVzZXMgdGhlIGZvbGxvd2luZyB0ZWNobm9sb2dpZXMgdG8gd29yazoKCi0gW05vZGVKU10oaHR0cHM6Ly9ub2RlanMub3JnL2VuLykKLSBbRXhwcmVzc10oaHR0cHM6Ly9leHByZXNzanMuY29tLykKLSBbTW9uZ29EQl0oaHR0cHM6Ly93d3cubW9uZ29kYi5jb20vKQotIFtTd2FnZ2VyXShodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci1jb2RlZ2VuLykKLSBbQXp1cmUgRGV2T3BzXShodHRwczovL2F6dXJlLm1pY3Jvc29mdC5jb20vZW4tdXMvc2VydmljZXMvZGV2b3BzLykKCiMjIEZlYXR1cmVzCgpBdCB0aGUgbW9tZW50LCB0aGUgQVBJIGhhcyBlbmRwb2ludHMgZm9yIHByb2R1Y3RzLCB1c2VycyBhbmQgdXNlciByb2xlcy4gVGhlIEFQSSB1c2VzIEpXVCB0byBzaWduIGNsYWltcyBzZWN1cmVseS4KCk5vZGVKUyBpcyB1c2VkIHRvIHJ1biB0aGUgd2hvbGUgYXBwbGljYXRpb24uIEV4cHJlc3MgaXMgdXNlZCB0byBwcm92aWRlIHNlcnZlci1zaWRlIGxvZ2ljIGZvciB0aGUgd2ViIGFwcGxpY2F0aW9uLiBNb25nb0RCIGlzIHVzZWQgdG8gaGFuZGxlIHRoZSBzdG9yYWdlIGFuZCBtYW5hZ2VtZW50IG9mIHRoZSBkYXRhLiBTd2FnZ2VyIGlzIHVzZWQgdG8gZG9jdW1lbnQgYW5kIGludGVyYWN0IG1hbnVhbGx5IHdpdGggdGhlIEFQSS4gQXp1cmUgRGV2T3BzIGlzIHVzZWQgd2l0aCBhZ2lsZSBtZXRob2RvbG9naWVzIHRvIGVuc3VyZSBhIHNtb290aCBkZXZlbG9wbWVudCBwcm9jZXNzLgoKIyMgSW5zdGFsbGF0aW9uCgojIyMgU3RlcCAxCgpUaGUgQVBJIHJlcXVpcmVzIFtOb2RlSlNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi8pIHZlcnNpb24gMTQgb3IgbmV3ZXIgdG8gd29yayBhbmQgW01vbmdvREJdKGh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tLykuIEVuc3VyZSB0aGVzZSB0ZWNob25sb2dpZXMgYXJlIGluc3RhbGxlZC4KCiMjIyBTdGVwIDIKCkNsb25lIHRoZSByZXBvc2l0b3J5LgoKYGBgY29uc29sZQpnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2FseGFlbC9ib2lsZXJwbGF0ZS1iYWNrZW5kLmdpdApgYGAKCiMjIyBTdGVwIDMKCkVudGVyIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIHJlcG9zaXRvcnkgd2FzIGNsb25lZC4gSW5zdGFsbCB0aGUgcGFja2FnZXMgd2l0aCBgYGBucG0gaW5zdGFsbGBgYC4gVGhlbiwgYWRkIGEgYGBgLmVudmBgYCBmaWxlIGJ5IHJ1bm5pbmcgdGhlIGBgYHRvdWNoIC5lbnZgYGAgY29tbWFuZC4gVGhpcyBmaWxlIHNob3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOgoKYGBgZG9zaW5pCk5PREVfRU5WPWRldmVsb3BtZW50ClBPUlQ9NDAwMApEQl9MSU5LPW1vbmdvZGI6Ly9sb2NhbGhvc3Q6MjcwMTcvbXlhcHAKVE9LRU5fS0VZPSpyYW5kb20gdGV4dCoKU0lHTlVQX1JPTEU9Y2xpZW50CmBgYAoKIyMjIFN0ZXAgNAoKT3BlbiBhIHRlcm1pbmFsIHdpbmRvdyBhbmQgc3RhcnQgdGhlIE1vbmdvREIgc2VydmVyIGJ5IHJ1bm5pbmcgdGhlIGBgYG1vbmdvZGBgYCBjb21tYW5kLiBJbiBhIHNlcGFyYXRlIHRlcm1pbmFsIHdpbmRvdywgb3BlbiB0aGUgTW9uZ28gQ0xJIGJ5IHJ1bm5pbmcgdGhlIGBgYG1vbmdvYGBgIGNvbW1hbmQuIFRoZW4gcnVuIHRoZSBgYGBzaG93IGRic2BgYCBjb21tYW5kIHRvIHZpZXcgYWxsIGRhdGFiYXNlcy4gTm93LCBydW4gdGhlIGBgYHVzZSBteWFwcGBgYCBjb21tYW5kLgoKIyMjIFN0ZXAgNQoKTm93IHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBqYXZhc2NyaXB0CmRiLnVzZXJyb2xlcy5pbnNlcnQoCiAgWwogICAge3VzZXJSb2xlOiAiY2xpZW50In0sCiAgICB7dXNlclJvbGU6ICJtb2RlcmF0b3IifSwKICAgIHt1c2VyUm9sZTogImFkbWluaXN0cmF0b3IifQogIF0KKQpgYGAKClRoaXMgd2lsbCBjcmVhdGUgdGhlIHVzZXIgcm9sZXMsIHdoaWNoIHVwb24gcnVubmluZyB0aGUgYGBgZGIudXNlcnJvbGVzLmZpbmQoKS5wcmV0dHkoKWBgYCBjb21tYW5kIHNob3VsZCBsb29rIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzoKCmBgYGpzb24KeyAKICAgICJfaWQiIDogT2JqZWN0SWQoIjYxNTZiZTA0NTZjMDhlY2NkNjI5YzZmOCIpLAogICAgInVzZXJSb2xlIiA6ICJjbGllbnQiCiAgICB9CnsKICAgICJfaWQiIDogT2JqZWN0SWQoIjYxNTZiZTA0NTZjMDhlY2NkNjI5YzZmOSIpLAogICAgInVzZXJSb2xlIiA6ICJtb2RlcmF0b3IiIAp9CnsKICAgICJfaWQiIDogT2JqZWN0SWQoIjYxNTZiZTA0NTZjMDhlY2NkNjI5YzZmYSIpLAogICAgInVzZXJSb2xlIiA6ICJhZG1pbmlzdHJhdG9yIgp9CmBgYAoKIyMjIFN0ZXAgNgoKTm93LCBpbiB0aGUgYXBwbGljYXRpb24gZmlsZXMsIG1vZGlmeSB0aGUgYGBgU0lHTlVQX1JPTEVgYGAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYGBgYWRtaW5pc3RyYXRvcmBgYCBvciBgYGBtb2RlcmF0b3JgYGAgYW5kIGNyZWF0ZSBhbiBhY2NvdW50IHdpdGggdGhvc2UgcGVybWlzc2lvbnMuIE1ha2Ugc3VyZSB0byBjaGFuZ2UgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGJhY2sgdG8gYGBgY2xpZW50YGBgIGFmdGVyIGZpbmlzaGluZyB0aGlzIGluaXRpYWwgcHJvY2Vzcy4KCiMjIyBTdGVwIDcKClNpZ24gaW4gaW50byBhbiBhZG1pbmlzdHJhdG9yIGFjY291bnQgdG8gdXNlIHRoZSB3aG9sZSBhcHBsaWNhdGlvbi4gVXNlIHRoZSBgYGBQT1NUIC91c2VyL2xvZ2luYGBgIGVuZHBvaW50IHRvIGxvZyBpbi4gQWZ0ZXIgbG9naW4sIHlvdSB3aWxsIGJlIGdyYW50ZWQgYSBKV1QgdG9rZW4uIENvcHkgc2FpZCB0b2tlbiBpbnRvIHRoZSB3aW5kb3cgdGhhdCBwb3BzIHVwIHdoZW4geW91IHByZXNzIHRoZSBgYGBBdXRob3JpemVgYGAgYnV0dG9uLCBpbiB0aGUgcmlnaHQgaGFuZCBzaWRlLiBLZWVwIHRoaXMgdG9rZW4gc2F2ZWQgc29tZXdoZXJlIGFuZCB1cGRhdGUgaXQgZXZlcnkgdGltZSB5b3UgbG9nIGluLCBhcyB5b3Ugd2lsbCBuZWVkIGl0IHRvIHVzZSBtb3N0IG9mIHRoZSBlbmRwb2ludHMgb2YgdGhlIEFQSS4KCkNvbmdyYXR1bGF0aW9ucyEgWW91IGFyZSBub3cgYWxsIHNldCB1cCB0byB1c2UgdGhlIEFQSS4KCiMjIExpY2Vuc2UKClRoZSBwcm9qZWN0IGlzIGN1cnJlbnRseSB1c2luZyB0aGUgW01JVF0oaHR0cHM6Ly9jaG9vc2VhbGljZW5zZS5jb20vbGljZW5zZXMvbWl0LykgbGljZW5zZS4K readmeEtag: '"e47e3ec3de120c4d12352f90ccdce8d57898f5b3"' readmeLastModified: Sun, 15 Oct 2023 14:15:50 GMT repositoryId: 410784269 description: Product management API. created: '2021-09-27T07:28:57Z' updated: '2023-10-15T14:17:20Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: alxael logo: https://avatars.githubusercontent.com/u/78294861?v=4 license: MIT repoEtag: '"f0311d20abf87a51e7398d0359f57d11da645f280fec53329219e382c901ad4a"' repoLastModified: Sun, 15 Oct 2023 14:17:20 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/cant-code/parking-app-backend v3: true repositoryMetadata: base64Readme: >- IyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyBSZXF1aXJlbWVudHMKKiBKYXZhIDExIChNaW4gdmVyc2lvbiA4LCBjaGFuZ2UgdGhlIEphdmEgdmVyc2lvbiBpbiB0aGUgcG9tLnhtbCBmaWxlIGFjY29yZGluZ2x5KQoqIFJlbGF0aW9uYWwgREIgLSBQb3N0Z3JlU1FMCiogSUFNIC0gS2V5Y2xvYWsKCiMjIyBFbnZpcm9ubWVudCBWYXJpYWJsZXMKUmVxdWlyZWQgRW52aXJvbm1lbnQgVmFyaWFibGVzOgoKKiBEQl9BRERSIC0gUHJvdmlkZSB0aGUgY29tcGxldGUgSkRCQyBVUkkgZm9yIHRoZSBEQi4KKiBLRVlDTE9BS19TRVJWRVIgLSBUaGUgVVJJIHRvIHRoZSBhdXRoIGVuZHBvaW50IG9mIHRoZSBLZXljbG9hayBTZXJ2ZXIuCiogS0VZQ0xPQUtfU0VDUkVUIC0gVGhlIGtleWNsb2FrIGNsaWVudCBTZWNyZXQKCk9wdGlvbmFsIEVudmlyb25tZW50IFZhcmlhYmxlczoKCiogREJfVVNFUiAtIERCIHVzZXIgdXNlcm5hbWUuIChEZWZhdWx0IC0gcG9zdGdyZXMpCiogREJfUEFTUyAtIERCIHVzZXIgcGFzc3dvcmQuIChEZWZhdWx0IC0gbXlzZWNyZXRwYXNzd29yZCkKKiBLRVlDTE9BS19SRUFMTSAtIFRoZSBrZXljbG9hayByZWFsbSBmb3IgdGhlIGFwcGxpY2F0aW9uLiAoRGVmYXVsdCAtIGVjb21tZXJjZSkKKiBLRVlDTE9BS19SRVNPVVJDRSAtIFRoZSBjbGllbnQgY3JlYXRlZCBmb3IgdGhlIGFwcGxpY2F0aW9uLiAoRGVmYXVsdCAtIGxvZ2luLWFwcCkKCiMjIyBTdGVwcyB0byBydW4KMS4gQ2xvbmUgdGhlIHJlcG8gb3IgZG93bmxvYWQgdGhlIHNvdXJjZQoyLiBVc2UgYG12biBzcHJpbmctYm9vdDpydW5gCiAgICBvcgogICBgbXZudyBzcHJpbmctYm9vdDpydW5gCiAgICBmcm9tIHRoZSBiYXNlIGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdCB0byBydW4gdGhlIHByb2plY3QKICAgCiMjIyBTdGVwcyB0byBkZXBsb3kKVXNpbmcgRG9ja2VyOgoxLiBCdWlsZCB0aGUgcHJvamVjdCB1c2luZyBgbXZuIHBhY2thZ2VgIG9yIGBtdm53IHBhY2thZ2VgCjIuIEJ1aWxkIGEgZG9ja2VyIGltYWdlIHVzaW5nOgpgYGAKZG9ja2VyIGJ1aWxkIC10IDxpbWFnZS1uYW1lPjo8dGFnPiAuCmBgYAozLiBSdW4gdGhlIGltYWdlIHVzaW5nOgpgYGAKZG9ja2VyIHJ1biAtcCA4MDgwOjgwODAgLWUgREJfQUREUj08dmFsdWU+IC1lIEtFWUNMT0FLX1NFUlZFUj08dmFsdWU+IC1lIEtFWUNMT0FLX1NFQ1JFVD08dmFsdWU+IC1kIDxpbWFnZS1uYW1lPjo8dGFnPgpgYGAKCkRlcGxveSBqYXIgZmlsZToKMS4gQnVpbGQgdGhlIHByb2plY3QgdXNpbmcgYG12biBwYWNrYWdlYCBvciBgbXZudyBwYWNrYWdlYAoyLiBDb3B5IHRoZSAuamFyIGdlbmVyYXRlZCBmcm9tIHRoZSAvdGFyZ2V0IGZvbGRlciB0byB5b3VyIGRlc2lyZWQgbG9jYXRpb24uCjMuIFJ1biB0aGUgcHJvZ3JhbSB1c2luZyBgamF2YSAtamFyIDxmaWxlbmFtZT4uamFyYAo= readmeEtag: '"cdb4f5ffd4c34ad4e91b0c85c4cd6dc772b28878"' readmeLastModified: Sat, 26 Aug 2023 12:41:27 GMT repositoryId: 449337717 description: null created: '2022-01-18T15:22:52Z' updated: '2022-01-23T11:37:25Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: cant-code logo: https://avatars.githubusercontent.com/u/38918278?v=4 repoEtag: '"c29bb1a8d1938d2e7e44843c67ac80976820f59b1c5fdaa70cef6a082658283e"' repoLastModified: Sun, 23 Jan 2022 11:37:25 GMT foundInMaster: true category: Server Implementations id: 4dae94b5dd42661aa1c4c79ef6282ff0 - source: openapi3 tags repository: >- https://github.com/marinimau/public_administration_blockchain_certified_document_sharing v3: true repositoryMetadata: base64Readme: >- WyFbTGljZW5zZTogQ0MwLTEuMF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUNDMCUyMDEuMC1saWdodGdyZXkuc3ZnKV0oaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLykKCiMgUHVibGljIEFkbWluaXN0cmF0aW9uIEJsb2NrY2hhaW4gQ2VydGlmaWVkIERvY3VtZW50IFNoYXJpbmcKCkEgZEFwcCB0byBkaXN0cmlidXRlIGJsb2NrY2hhaW4gY2VydGlmaWVkIGRvY3VtZW50cyBmcm9tIFBBcyB0byBjaXRpemVucy4gQWxsIHRoZSBmZWF0dXJlcyBhcmUgYWNjZXNzaWJsZSB2aWEgUkVTVCBhcGkuCgpDaXRpemVuIHJlbGF0ZWQgZmVhdHVyZXMgYXJlIGFjY2Vzc2libGUgYWxzbyB2aWEgZnJvbnRlbmQuCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCmBgYGJhc2gKJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL21hcmluaW1hdS9wdWJsaWNfYWRtaW5pc3RyYXRpb25fYmxvY2tjaGFpbl9jZXJ0aWZpZWRfZG9jdW1lbnRfc2hhcmluZy5naXQKJCBjZCBwdWJsaWNfYWRtaW5pc3RyYXRpb25fYmxvY2tjaGFpbl9jZXJ0aWZpZWRfZG9jdW1lbnRfc2hhcmluZwokIHB5dGhvbjMgLW0gdmVudiB2ZW52CiQgc291cmNlIHZlbnYvYmluL2FjdGl2YXRlCiQgcGlwMyBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKJCBweXRob24zIG1hbmFnZS5weSBtYWtlbWlncmF0aW9ucyB1c2VyCiQgcHl0aG9uMyBtYW5hZ2UucHkgbWFrZW1pZ3JhdGlvbnMgZG9jdW1lbnQKJCBweXRob24zIG1hbmFnZS5weSBtYWtlbWlncmF0aW9ucyB0cmFuc2FjdGlvbgokIHB5dGhvbjMgbWFuYWdlLnB5IG1pZ3JhdGUKJCBweXRob24zIG1hbmFnZS5weSBydW5zZXJ2ZXIKYGBgCgpOb3RlIHRoYXQgeW91IHdpbGwgbmVlZCB0byBjcmVhdGUgYSBzdXBlciB1c2VyICh1c2luZyAiY3JlYXRlc3VwZXJ1c2VyIiBjb21tYW5kKSBhbmQgdGhlbiB5b3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSBQQSwgb3BlcmF0b3IsIGFuZCBjaXRpemVuIHVzaW5nIHRoZSBhZG1pbiBpbnRlcmZhY2UgIGF0IGBgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZG1pbi9gYGAuCgpJTVBPUlRBTlQ6IHVzZSB2YWxpZCBFdGhlcnVtIGNyZWRlbnRpYWwgZm9yIHRoZSBvcGVyYXRvciwgYW5kIGVuc3VyZSB0aGF0IGhlIGFzIHNvbWUgRXRoZXIgaW4gaGlzIGJhbGFuY2UgKGRlZmF1bHQgdGVzdG5ldCBpcyBSaW5rZWJ5LCB5b3UgY2FuIGNoYW5nZSBpdCBpbiBzZXR0aW5ncykKCiMjIFRlc3QgdGhlIHByb2plY3QKCmBgYGJhc2gKJCBweXRob24zIG1hbmFnZS5weSB0ZXN0CmBgYAoKCiMjIEZlYXR1cmVzCgoqIENpdGl6ZW5zIGFuZCBQQSBvcGVyYXRvcnMgbWFuYWdlbWVudAoqIERvY3VtZW50IGNyZWF0aW9uIGFuZCB1cGRhdGUgKGJ5IHZlcnNpb24gY3JlYXRpb24pCiogUHVibGljIGFuZCBwcml2YXRlIGRvY3VtZW50czogaWYgYSBkb2N1bWVudCBpcyBwcml2YXRlIGNpdGl6ZW4gbXVzdCBoYXZlIHJlYWQgcGVybWlzc2lvbgoqIERvY3VtZW50IHZlcnNpb24gaW5oZXJpdHMgcGVybWlzc2lvbnMgZnJvbSBkb2N1bWVudAoqIFBhIG1hbmFnZW1lbnQ6IGFuIG9wZXJhdG9yIGNhbiB1cGRhdGUgKGNyZWF0ZSB2ZXJzaW9ucykgb25seSBmb3IgZG9jdW1lbnRzIG93bmVkIGJ5IGhpcyBQQSwgYW4gb3BlcmF0b3IgY2FuIHZpZXcgb25seSBwdWJsaWMgZG9jdW1lbnRzIG9yIHByaXZhdGUgZG9jdW1lbnRzIChpZiB0aGV5IGFyZSBvd25lZCBieSBoaXMgUEEpCiogQXV0b21hdGljIGRvY3VtZW50IFNDIGFuZCBkb2N1bWVudCB2ZXJzaW9uICh0cmFuc2FjdGlvbiBpbiB0aGUgZG9jdW1lbnQgU0MpIGRlcGxveQoqIEF1dG9tYXRpYyBmaW5nZXJwcmludCB2YWxpZGF0aW9uIGluIGRvd25sb2FkIHBoYXNlLgoqIFNDIG9wZXJhdG9yIGF1dGhlbnRpY2F0aW9uIGJhc2VkIG9uIHdoaXRlbGlzdAoqIENpdGl6ZW4gY2FuIGFkZCB0byBmYXZvcml0ZXMgZG9jdW1lbnRzCgoKIyMgT3BlbkFwaSBkb2N1bWVudGF0aW9uCgpUaGUgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgYXQgYGBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2RvY3VtZW50YXRpb24vYGBgLgoKTm90ZSB0aGF0IG9ubHkgZW5kcG9pbnRzIGFjY2Vzc2libGUgd2l0aCBjdXJyZW50IGF1dGhvcml6YXRpb24gYXJlIHNob3duOgoqIGlmIHlvdSBhcmUgdW5hdXRob3JpemVkIHlvdSBzZWUgb25seSBwdWJsaWMgZW5kcG9pbnRzCiogaWYgeW91IGFyZSBhdXRob3JpemVkIGFzIGNpdGl6ZW4geW91IHNlZSBwdWJsaWMgKyBjaXRpemVuIGVuZHBvaW50cwoqIGlmIHlvdSBhcmUgYXV0aG9yaXplZCBhcyBwYSBvcGVyYXRvciB5b3Ugc2VlIHB1YmxpYyArIG9wZXJhdG9yIGVuZHBvaW50cwoKIyMgQXV0aG9yCgoqIFtNYXVybyBNYXJpbmldKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJpbmltYXUpCg== readmeEtag: '"1dee51232b6b7eb25a1c85828f2a0e9f91f1b25e"' readmeLastModified: Tue, 03 Aug 2021 15:08:03 GMT repositoryId: 378353674 description: >- A dApp to distribute blockchain certified documents from PAs to citizens. All the features are accessible via REST api. created: '2021-06-19T07:39:48Z' updated: '2021-08-03T15:08:07Z' language: HTML archived: false stars: 0 watchers: 2 forks: 0 owner: marinimau logo: https://avatars.githubusercontent.com/u/37106877?v=4 license: NOASSERTION repoEtag: '"344b8329cb9aca8cc0675c8b6d847ce6ce61834d720bf599ff77ec19ade96e6e"' repoLastModified: Tue, 03 Aug 2021 15:08:07 GMT foundInMaster: true category: - Parsers - Server Implementations id: e4e2b5afe9011c1dd92de5fc3f9843ac - source: openapi3 tags repository: https://github.com/phuntime/aws-lambda-openapi v3: true repositoryMetadata: base64Readme: >- IyBhd3MtbGFtYmRhLW9wZW5hcGkKQWxsIEFXUyBMYW1iZGEgT3BlbkFQSSBmaWxlcyBjb21iaW5lZC4gCgoKU3dhZ2dlciBVSTogaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8/dXJsPWh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9waHVudGltZS9hd3MtbGFtYmRhLW9wZW5hcGkvbWFpbi9vcGVuYXBpLnlhbWwKCiMjIFNvdXJjZXM6Ci0gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtYXBpLmh0bWwKLSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9ydW50aW1lcy1leHRlbnNpb25zLWFwaS5odG1sCi0gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtbG9ncy1hcGkuaHRtbAoKIyMgTGljZW5zZQoKaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8K readmeEtag: '"35248c14072202ae8e76ba1d2343156afb65d01e"' readmeLastModified: Mon, 09 Aug 2021 22:54:08 GMT repositoryId: 394451824 description: All AWS Lambda OpenAPI files combined created: '2021-08-09T22:06:34Z' updated: '2021-08-09T22:54:11Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: phuntime logo: https://avatars.githubusercontent.com/u/66830795?v=4 repoEtag: '"ebfb56d3f1d38ceafd2a063d97f5ae6b37205c9cb0dc94190387946a4fe1a820"' repoLastModified: Mon, 09 Aug 2021 22:54:11 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 93e78feb1ebe295e4ee84b1f0a83d009 - source: openapi3 tags repository: https://github.com/rosario-fiorella/vuejs-calendar v3: true repositoryMetadata: base64Readme: >- IyB2dWVqcy1jYWxlbmRhcgoKIyMgUHJvamVjdCBzZXR1cApgYGAKbnBtIGluc3RhbGwKYGBgCnVzZSBub2RlanMgdmVyc2lvbiAxNiBMVFMKCiMjIyBDb21waWxlcyBhbmQgaG90LXJlbG9hZHMgZm9yIGRldmVsb3BtZW50CmBgYApucG0gcnVuIHNlcnZlCmBgYAoKIyMjIENvbXBpbGVzIGFuZCBtaW5pZmllcyBmb3IgcHJvZHVjdGlvbgpgYGAKbnBtIHJ1biBidWlsZApgYGAKCiMjIyBMaW50cyBhbmQgZml4ZXMgZmlsZXMKYGBgCm5wbSBydW4gbGludApgYGAKCiMjIyBDdXN0b21pemUgY29uZmlndXJhdGlvbgpTZWUgW0NvbmZpZ3VyYXRpb24gUmVmZXJlbmNlXShodHRwczovL2NsaS52dWVqcy5vcmcvY29uZmlnLykuCgojIyBBUEkgU2VydmljZXMKIyMjIE1vY2sgQVBJIHJlcXVlc3QvcmVzcG9uc2UgbW9kZWwKVGhlIGRlZmF1bHQgc2V0dGluZ3MgdXNlIGEgc2ltdWxhdGVkIGFwaSByZXNwb25zZSB0ZW1wbGF0ZSwgaWYgeW91IHdhbnQgdG8gdXNlIGEgcmVhbCBBUEkgcmVxdWVzdC9yZXNwb25zZSB5b3UgbmVlZCB0byBlZGl0IHRoZSAiLmVudiIgZmlsZSBhbmQgZW50ZXIgdGhlIGFwaSBVUkwgd2hpY2ggaW1wbGVtZW50cyB0aGUgZGF0YSBtb2RlbCBzdWdnZXN0ZWQgYnkgdGhlIGZpbGUgW29wZWFuYXBpM10oZG9jL29wZW5hcGkuMy4wLjIueW1sKS4gCj4gVGhpcyBwcm9qZWN0IGRvZXMgbm90IGltcGxlbWVudCBzZXJ2ZXIgc2lkZSBiYWNrZW5kIGFwaSBzZXJ2aWNlcyAKCiMjIyBFbnZpcm9ubWVudApWVUVfQVBQX05PREVfRU5WOiBzZWUgInNyYy9jb21tb24vZW51bS5qcyIsIHVzZSAiZGVtbyIgdG8gdXNlIG1vY2sgYXBpCgpWVUVfQVBQX1RJVExFPWBgYHN0cmluZ2BgYAoKVlVFX0FQUF9BUElfQkFTRV9VUkw9YGBgdXJsYGBgIChleGFtcGxlOiBodHRwOi8vbG9jYWxob3N0L2FwaS8pCgpWVUVfQVBQX0FQSV9CT09LSU5HPWBgYHN0cmluZ2BgYCAoZXhhbXBsZTogYm9va2luZykKClZVRV9BUFBfQVBJX0NPTlRFTlRTPWBgYHN0cmluZ2BgYCAoZXhhbXBsZTogY29udGVudHMpCgpWVUVfQVBQX0FQSV9EQVRBPWBgYHN0cmluZ2BgYCAoZXhhbXBsZTogYXBwKQoKVlVFX0FQUF9BUElfRU5USVRJRVM9YGBgc3RyaW5nYGBgIChleGFtcGxlOiBlbnRpdGllcykKClZVRV9BUFBfTElOS19QUklWQUNZX1RFUk09YGBgdXJsYGBgCgpWVUVfQVBQX0xJTktfUFJJVkFDWV9DT05ESVRJT049YGBgdXJsYGBgCgpWVUVfQVBQX0xJTktfUFJJVkFDWV9QT0xJQ1k9YGBgdXJsYGBgCgpWVUVfQVBQX0FQSV9QRVJfUEFHRT1gYGBudW1iZXJgYGAKClZVRV9BUFBfQVBJX0tFWT1gYGBzdHJpbmdgYGAKCiMjIEljb25zClttZGldKGh0dHBzOi8vcGljdG9ncmFtbWVycy5naXRodWIuaW8vQG1kaS9mb250LzUuNC41NS8pCgpbbWF0ZXJpYWwtZGVzaWduLWljb25zLWljb25mb250XShodHRwczovL2pvc3NlZi5naXRodWIuaW8vbWF0ZXJpYWwtZGVzaWduLWljb25zLWljb25mb250LykKCiMjIFBvc3QgYnVpbGQKW2NsaS52dWVqcy5vcmddKGh0dHBzOi8vY2xpLnZ1ZWpzLm9yZy9ndWlkZS9kZXBsb3ltZW50Lmh0bWwpCgojIyBDSEFOR0UgVEhFTUUgQ09MT1IKRWRpdCBmaWxlIFtjb2xvcnNdKHNyYy9jb21tb24vY29sb3JzLmpzKQoKIyMgREVNTyBURU1QTEFURQohWzEtaG9tZS1kaWFsb2ddKGRvYy9kZW1vLzEtaG9tZS1kaWFsb2cucG5nKQohWzItaG9tZV0oZG9jL2RlbW8vMi1ob21lLnBuZykKIVszLWhvbWUtc2VsZWN0ZWRdKGRvYy9kZW1vLzMtaG9tZS1zZWxlY3RlZC5wbmcpCiFbNC1ob21lLWJvb2tpbmddKGRvYy9kZW1vLzQtaG9tZS1ib29raW5nLnBuZykK readmeEtag: '"e7fb76e1fb46db26b1b7d0e85bf979a501e2742b"' readmeLastModified: Wed, 09 Aug 2023 11:03:08 GMT repositoryId: 400177668 description: >- Front-end booking system template built with VueJs and VuetifyJs - Single Page Application (SPA), dummy data used to simulate API response. created: '2021-08-26T13:24:32Z' updated: '2023-08-09T10:34:31Z' language: Vue archived: false stars: 0 watchers: 1 forks: 1 owner: rosario-fiorella logo: https://avatars.githubusercontent.com/u/41728059?v=4 license: MIT repoEtag: '"dbbb365bdbcae7943d1f5bfd731129da5467f866b1816416ea0050a82a5a7c32"' repoLastModified: Wed, 09 Aug 2023 10:34:31 GMT foundInMaster: true category: Testing id: e5071ac76f7c1501aeddbdd50c3cc6d1 oldLocations: - https://github.com/rosario-fiorella/calendar-fe - source: openapi31 tags repository: https://github.com/juhaku/utoipa v3: true repositoryMetadata: base64Readme: >- IyB1dG9pcGEgLSBBdXRvLWdlbmVyYXRlZCBPcGVuQVBJIGRvY3VtZW50YXRpb24KClshW1V0b2lwYSBidWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55YW1sKQpbIVtjcmF0ZXMuaW9dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvdXRvaXBhLnN2Zz9sYWJlbD1jcmF0ZXMuaW8mY29sb3I9b3JhbmdlJmxvZ289cnVzdCldKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy91dG9pcGEpClshW2RvY3MucnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPWRvY3MucnMmbWVzc2FnZT11dG9pcGEmY29sb3I9Ymx1ZSZsb2dvPWRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QnliMnhsUFNKcGJXY2lJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkbWxsZDBKdmVEMGlNQ0F3SURVeE1pQTFNVElpUGp4d1lYUm9JR1pwYkd3OUlpTm1OV1kxWmpVaUlHUTlJazAwT0RndU5pQXlOVEF1TWt3ek9USWdNakUwVmpFd05TNDFZekF0TVRVdE9TNHpMVEk0TGpRdE1qTXVOQzB6TXk0M2JDMHhNREF0TXpjdU5XTXRPQzR4TFRNdU1TMHhOeTR4TFRNdU1TMHlOUzR6SURCc0xURXdNQ0F6Tnk0MVl5MHhOQzR4SURVdU15MHlNeTQwSURFNExqY3RNak11TkNBek15NDNWakl4Tkd3dE9UWXVOaUF6Tmk0eVF6a3VNeUF5TlRVdU5TQXdJREkyT0M0NUlEQWdNamd6TGpsV016azBZekFnTVRNdU5pQTNMamNnTWpZdU1TQXhPUzQ1SURNeUxqSnNNVEF3SURVd1l6RXdMakVnTlM0eElESXlMakVnTlM0eElETXlMaklnTUd3eE1ETXVPUzAxTWlBeE1ETXVPU0ExTW1NeE1DNHhJRFV1TVNBeU1pNHhJRFV1TVNBek1pNHlJREJzTVRBd0xUVXdZekV5TGpJdE5pNHhJREU1TGprdE1UZ3VOaUF4T1M0NUxUTXlMakpXTWpnekxqbGpNQzB4TlMwNUxqTXRNamd1TkMweU15NDBMVE16TGpkNlRUTTFPQ0F5TVRRdU9Hd3RPRFVnTXpFdU9YWXROamd1TW13NE5TMHpOM1kzTXk0emVrMHhOVFFnTVRBMExqRnNNVEF5TFRNNExqSWdNVEF5SURNNExqSjJMalpzTFRFd01pQTBNUzQwTFRFd01pMDBNUzQwZGkwdU5ucHRPRFFnTWpreExqRnNMVGcxSURReUxqVjJMVGM1TGpGc09EVXRNemd1T0hZM05TNDBlbTB3TFRFeE1td3RNVEF5SURReExqUXRNVEF5TFRReExqUjJMUzQyYkRFd01pMHpPQzR5SURFd01pQXpPQzR5ZGk0MmVtMHlOREFnTVRFeWJDMDROU0EwTWk0MWRpMDNPUzR4YkRnMUxUTTRMamgyTnpVdU5IcHRNQzB4TVRKc0xURXdNaUEwTVM0MExURXdNaTAwTVM0MGRpMHVObXd4TURJdE16Z3VNaUF4TURJZ016Z3VNbll1Tm5vaVBqd3ZjR0YwYUQ0OEwzTjJaejRLKV0oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhLykKIVtNU1JWXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1NU1JWJm1lc3NhZ2U9MS43NSZjb2xvcj1vcmFuZ2UmbG9nbz1ydXN0KQoKUHJvbm91bmNlZCAqKl8vdTrLiHRvyoo6aS5wyZEvXyoqIG9yICoqXy91OsuIdG/KisuMYcmqLnBpy4hlyaovXyoqIHdoYXRldmVyIHdvcmtzIGJldHRlciBmb3IgeW91LgoKV2FudCB0byBoYXZlIHlvdXIgQVBJIGRvY3VtZW50ZWQgd2l0aCBPcGVuQVBJPyBCdXQgZG9uJ3Qgd2FudCB0byBiZSBib3RoZXJlZAp3aXRoIG1hbnVhbCBZQU1MIG9yIEpTT04gdHdlYWtpbmc/IFdvdWxkIGxpa2UgaXQgdG8gYmUgc28gZWFzeSB0aGF0IGl0IHdvdWxkIGFsbW9zdApiZSB1dG9waWM/IERvbid0IHdvcnJ5OiB1dG9pcGEgaXMgaGVyZSB0byBmaWxsIHRoaXMgZ2FwLiBJdCBhaW1zIHRvIGRvLCBpZiBub3QgYWxsLCB0aGVuCm1vc3Qgb2YgdGhlIGhlYXZ5IGxpZnRpbmcgZm9yIHlvdSwgZW5hYmxpbmcgeW91IHRvIGZvY3VzIG9uIHdyaXRpbmcgdGhlIGFjdHVhbCBBUEkgbG9naWMgaW5zdGVhZCBvZgpkb2N1bWVudGF0aW9uLiBJdCBhaW1zIHRvIGJlIF9taW5pbWFsXywgX3NpbXBsZV8gYW5kIF9mYXN0Xy4gSXQgdXNlcyBzaW1wbGUgYHByb2NgIG1hY3JvcyB3aGljaAp5b3UgY2FuIHVzZSB0byBhbm5vdGF0ZSB5b3VyIGNvZGUgdG8gaGF2ZSBpdGVtcyBkb2N1bWVudGVkLgoKVGhlIGB1dG9pcGFgIGNyYXRlIHByb3ZpZGVzIGF1dG8tZ2VuZXJhdGVkIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBmb3IgUnVzdCBSRVNUIEFQSXMuIEl0IHRyZWF0cwpjb2RlLWZpcnN0IGFwcHJvYWNoIGFzIGEgZmlyc3QgY2xhc3MgY2l0aXplbiBhbmQgc2ltcGxpZmllcyBBUEkgZG9jdW1lbnRhdGlvbiBieSBwcm92aWRpbmcKc2ltcGxlIG1hY3JvcyBmb3IgZ2VuZXJhdGluZyB0aGUgZG9jdW1lbnRhdGlvbiBmcm9tIHlvdXIgY29kZS4KCkl0IGFsc28gY29udGFpbnMgUnVzdCB0eXBlcyBvZiB0aGUgT3BlbkFQSSBzcGVjLCBhbGxvd2luZyB5b3UgdG8gd3JpdGUgdGhlIE9wZW5BUEkgc3BlYyBvbmx5IHVzaW5nClJ1c3QgaWYgYXV0byBnZW5lcmF0aW9uIGlzIG5vdCB5b3VyIGZsYXZvciBvciBkb2VzIG5vdCBmaXQgeW91ciBwdXJwb3NlLgoKTG9uZyB0ZXJtIGdvYWwgb2YgdGhlIGxpYnJhcnkgaXMgdG8gYmUgdGhlIHBsYWNlIHRvIGdvIHdoZW4gT3BlbkFQSSBkb2N1bWVudGF0aW9uIGlzIG5lZWRlZCBpbiBhbnkgUnVzdApjb2RlYmFzZS4KClV0b2lwYSBpcyBmcmFtZXdvcmstYWdub3N0aWMsIGFuZCBjb3VsZCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggYW55IHdlYiBmcmFtZXdvcmssIG9yIGV2ZW4gd2l0aG91dCBvbmUuIFdoaWxlCmJlaW5nIHBvcnRhYmxlIGFuZCBzdGFuZGFsb25lLCBvbmUgb2YgaXRzIGtleSBhc3BlY3RzIGlzIHNpbXBsZSBpbnRlZ3JhdGlvbiB3aXRoIHdlYiBmcmFtZXdvcmtzLgoKIyMgQ2hvb3NlIHlvdXIgZmxhdm9yIGFuZCBkb2N1bWVudCB5b3VyIEFQSSB3aXRoIGljZS1jb2xkIElQQQoKUmVmZXIgdG8gdGhlIGV4aXN0aW5nIFtleGFtcGxlc10oLi9leGFtcGxlcykgZm9yIGJ1aWxkaW5nIHRoZSAidG9kbyIgYXBwIGluIHRoZSBmb2xsb3dpbmcgZnJhbWV3b3JrczoKCi0gKipbYWN0aXgtd2ViXShodHRwczovL2dpdGh1Yi5jb20vYWN0aXgvYWN0aXgtd2ViKSoqCi0gKipbYXh1bV0oaHR0cHM6Ly9naXRodWIuY29tL3Rva2lvLXJzL2F4dW0pKioKLSAqKlt3YXJwXShodHRwczovL2dpdGh1Yi5jb20vc2Vhbm1vbnN0YXIvd2FycCkqKgotICoqW3RpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9odHRwLXJzL3RpZGUpKioKLSAqKltyb2NrZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L1JvY2tldCkqKiAoYDAuNGAgYW5kIGAwLjVgKQoKQWxsIGV4YW1wbGVzIGluY2x1ZGUgYSBbU3dhZ2dlci1VSV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkpIHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLgoKVGhlcmUgYXJlIGFsc28gZXhhbXBsZXMgb2YgYnVpbGRpbmcgbXVsdGlwbGUgT3BlbkFQSSBkb2NzIGluIG9uZSBhcHBsaWNhdGlvbiwgZWFjaCBzZXBhcmF0ZWQgaW4gU3dhZ2dlciBVSS4KVGhlc2UgZXhhbXBsZXMgZXhpc3Qgb25seSBmb3IgdGhlICoqYWN0aXgqKiBhbmQgKip3YXJwKiogZnJhbWV3b3Jrcy4KCkV2ZW4gaWYgdGhlcmUgaXMgbm8gZXhhbXBsZSBmb3IgeW91ciBmYXZvdXJpdGUgZnJhbWV3b3JrLCBgdXRvaXBhYCBjYW4gYmUgdXNlZCB3aXRoIGFueQp3ZWIgZnJhbWV3b3JrIHdoaWNoIHN1cHBvcnRzIGRlY29yYXRpbmcgZnVuY3Rpb25zIHdpdGggbWFjcm9zIHNpbWlsYXJseSB0byB0aGUgKip3YXJwKiogYW5kICoqdGlkZSoqIGV4YW1wbGVzLgoKIyMjIENvbW11bml0eSBleGFtcGxlcwoKLSAqKltncmFwaHVsXShodHRwczovL2dpdGh1Yi5jb20vZ3JhcGh1bC1ycy9ncmFwaHVsL3RyZWUvbWFpbi9leGFtcGxlcy91dG9pcGEtc3dhZ2dlci11aSkqKgotICoqW3NhbHZvXShodHRwczovL2dpdGh1Yi5jb20vc2Fsdm8tcnMvc2Fsdm8vdHJlZS9tYWluL2V4YW1wbGVzL3RvZG9zLXV0b2lwYSkqKgotICoqW3Zpel0oaHR0cHM6Ly9naXRodWIuY29tL3Zpei1ycy92aXovdHJlZS9tYWluL2V4YW1wbGVzL3JvdXRpbmcvb3BlbmFwaSkqKgotICoqW250ZXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9sZW9uM3MvbnRleC1yZXN0LWFwaS1leGFtcGxlKSoqCgojIyBXaGF0J3MgdXAgd2l0aCB0aGUgd29yZCBwbGF5PwoKVGhlIG5hbWUgY29tZXMgZnJvbSB0aGUgd29yZHMgYHV0b3BpY2AgYW5kIGBhcGlgIHdoZXJlIGB1dG9gIGFyZSB0aGUgZmlyc3QgdGhyZWUgbGV0dGVycyBvZiBfdXRvcGljXwphbmQgdGhlIGBpcGFgIGlzIF9hcGlfIHJldmVyc2VkLiBBYWFuZC4uLiBgaXBhYCBpcyBhbHNvIGFuIGF3ZXNvbWUgdHlwZSBvZiBiZWVyIDpiZWVyOi4KCiMjIENyYXRlIEZlYXR1cmVzCgotICoqYG1hY3Jvc2AqKiBFbmFibGUgYHV0b2lwYS1nZW5gIG1hY3Jvcy4gKipUaGlzIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4qKgotICoqYHlhbWxgKio6IEVuYWJsZXMgKipzZXJkZV95YW1sKiogc2VyaWFsaXphdGlvbiBvZiBPcGVuQVBJIG9iamVjdHMuCi0gKipgYWN0aXhfZXh0cmFzYCoqOiBFbmhhbmNlcyBbYWN0aXgtd2ViXShodHRwczovL2dpdGh1Yi5jb20vYWN0aXgvYWN0aXgtd2ViLykgaW50ZWdyYXRpb24gd2l0aCBiZWluZyBhYmxlIHRvCiAgcGFyc2UgYHBhdGhgLCBgcGF0aGAgYW5kIGBxdWVyeWAgcGFyYW1ldGVycyBmcm9tIGFjdGl4IHdlYiBwYXRoIGF0dHJpYnV0ZSBtYWNyb3MuIFNlZQogIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvYXR0ci5wYXRoLmh0bWwjYWN0aXhfZXh0cmFzLXN1cHBvcnQtZm9yLWFjdGl4LXdlYikgb3IgW2V4YW1wbGVzXSguL2V4YW1wbGVzKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqYHJvY2tldF9leHRyYXNgKio6IEVuaGFuY2VzIFtyb2NrZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L1JvY2tldCkgZnJhbWV3b3JrIGludGVncmF0aW9uIHdpdGggYmVpbmcKICBhYmxlIHRvIHBhcnNlIGBwYXRoYCwgYHBhdGhgIGFuZCBgcXVlcnlgIHBhcmFtZXRlcnMgZnJvbSByb2NrZXQgcGF0aCBhdHRyaWJ1dGUgbWFjcm9zLiBTZWUgW2RvY3NdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9hdHRyLnBhdGguaHRtbCNyb2NrZXRfZXh0cmFzLXN1cHBvcnQtZm9yLXJvY2tldCkKICBvciBbZXhhbXBsZXNdKC4vZXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuCi0gKipgYXh1bV9leHRyYXNgKio6IEVuaGFuY2VzIFtheHVtXShodHRwczovL2dpdGh1Yi5jb20vdG9raW8tcnMvYXh1bSkgZnJhbWV3b3JrIGludGVncmF0aW9uIGFsbG93aW5nIHVzZXJzIHRvIHVzZSBgSW50b1BhcmFtc2Agd2l0aG91dAogIGRlZmluaW5nIHRoZSBgcGFyYW1ldGVyX2luYCBhdHRyaWJ1dGUuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2F0dHIucGF0aC5odG1sI2F4dW1fZXh0cmFzLWZlYXR1cmUtc3VwcG9ydC1mb3ItYXh1bSkKICBvciBbZXhhbXBsZXNdKC4vZXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuCi0gKipgZGVidWdgKio6IEFkZCBleHRyYSB0cmFpdHMgc3VjaCBhcyBkZWJ1ZyB0cmFpdHMgdG8gb3BlbmFwaSBkZWZpbml0aW9ucyBhbmQgZWxzZXdoZXJlLgotICoqYGNocm9ub2AqKjogQWRkIHN1cHBvcnQgZm9yIFtjaHJvbm9dKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9jaHJvbm8pIGBEYXRlVGltZWAsIGBEYXRlYCwgYE5haXZlRGF0ZWAsIGBOYWl2ZURhdGVUaW1lYCwgYE5haXZlVGltZWAgYW5kIGBEdXJhdGlvbmAKICB0eXBlcy4gQnkgZGVmYXVsdCB0aGVzZSB0eXBlcyBhcmUgcGFyc2VkIHRvIGBzdHJpbmdgIHR5cGVzIHdpdGggYWRkaXRpb25hbCBgZm9ybWF0YCBpbmZvcm1hdGlvbi4KICBgZm9ybWF0OiBkYXRlLXRpbWVgIGZvciBgRGF0ZVRpbWVgIGFuZCBgTmFpdmVEYXRlVGltZWAgYW5kIGBmb3JtYXQ6IGRhdGVgIGZvciBgRGF0ZWAgYW5kIGBOYWl2ZURhdGVgIGFjY29yZGluZwogIFtSRkMzMzM5XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMzMzOSNzZWN0aW9uLTUuNikgYXMgYElTTy04NjAxYC4gVG8KICBvdmVycmlkZSBkZWZhdWx0IGBzdHJpbmdgIHJlcHJlc2VudGF0aW9uIHVzZXJzIGhhdmUgdG8gdXNlIGB2YWx1ZV90eXBlYCBhdHRyaWJ1dGUgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuCiAgU2VlIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLlRvU2NoZW1hLmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCi0gKipgdGltZWAqKjogQWRkIHN1cHBvcnQgZm9yIFt0aW1lXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvdGltZSkgYE9mZnNldERhdGVUaW1lYCwgYFByaW1pdGl2ZURhdGVUaW1lYCwgYERhdGVgLCBhbmQgYER1cmF0aW9uYCB0eXBlcy4KICBCeSBkZWZhdWx0IHRoZXNlIHR5cGVzIGFyZSBwYXJzZWQgYXMgYHN0cmluZ2AuIGBPZmZzZXREYXRlVGltZWAgYW5kIGBQcmltaXRpdmVEYXRlVGltZWAgd2lsbCB1c2UgYGRhdGUtdGltZWAgZm9ybWF0LiBgRGF0ZWAgd2lsbCB1c2UKICBgZGF0ZWAgZm9ybWF0IGFuZCBgRHVyYXRpb25gIHdpbGwgbm90IGhhdmUgYW55IGZvcm1hdC4gVG8gb3ZlcnJpZGUgZGVmYXVsdCBgc3RyaW5nYCByZXByZXNlbnRhdGlvbiB1c2VycyBoYXZlIHRvIHVzZSBgdmFsdWVfdHlwZWAgYXR0cmlidXRlCiAgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqYGRlY2ltYWxgKio6IEFkZCBzdXBwb3J0IGZvciBbcnVzdF9kZWNpbWFsXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcnVzdF9kZWNpbWFsKSBgRGVjaW1hbGAgdHlwZS4gKipCeSBkZWZhdWx0KioKICBpdCBpcyBpbnRlcnByZXRlZCBhcyBgU3RyaW5nYC4gSWYgeW91IHdpc2ggdG8gY2hhbmdlIHRoZSBmb3JtYXQgeW91IG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuCiAgU2VlIHRoZSBgdmFsdWVfdHlwZWAgaW4gW2NvbXBvbmVudCBkZXJpdmUgZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKS4KLSAqKmBkZWNpbWFsX2Zsb2F0YCoqOiBBZGQgc3VwcG9ydCBmb3IgW3J1c3RfZGVjaW1hbF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RfZGVjaW1hbCkgYERlY2ltYWxgIHR5cGUuICoqQnkgZGVmYXVsdCoqCiAgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYE51bWJlcmAuIFRoaXMgZmVhdHVyZSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCAqKmRlY2ltYWwqKiBhbmQgYWxsb3cgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHR5cGUgdXNlZCBpbiB5b3VyCiAgZG9jdW1lbnRhdGlvbiBmb3IgYERlY2ltYWxgIG11Y2ggbGlrZSBgc2VyZGVfd2l0aF9mbG9hdGAgZmVhdHVyZSBleHBvc2VkIGJ5IHJ1c3RfZGVjaW1hbC4KLSAqKmB1dWlkYCoqOiBBZGQgc3VwcG9ydCBmb3IgW3V1aWRdKGh0dHBzOi8vZ2l0aHViLmNvbS91dWlkLXJzL3V1aWQpLiBgVXVpZGAgdHlwZSB3aWxsIGJlIHByZXNlbnRlZCBhcyBgU3RyaW5nYCB3aXRoCiAgZm9ybWF0IGB1dWlkYCBpbiBPcGVuQVBJIHNwZWMuCi0gKipgdWxpZGAqKjogQWRkIHN1cHBvcnQgZm9yIFt1bGlkXShodHRwczovL2dpdGh1Yi5jb20vZHlsYW5oYXJ0L3VsaWQtcnMpLiBgVWxpZGAgdHlwZSB3aWxsIGJlIHByZXNlbnRlZCBhcyBgU3RyaW5nYCB3aXRoCiAgZm9ybWF0IGB1bGlkYCBpbiBPcGVuQVBJIHNwZWMuCi0gKipgdXJsYCoqOiBBZGQgc3VwcG9ydCBmb3IgW3VybF0oaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3J1c3QtdXJsKS4gYFVybGAgdHlwZSB3aWxsIGJlIHByZXNlbnRlZCBhcyBgU3RyaW5nYCB3aXRoCiAgZm9ybWF0IGB1cmlgIGluIE9wZW5BUEkgc3BlYy4KLSAqKmBzbWFsbHZlY2AqKjogQWRkIHN1cHBvcnQgZm9yIFtzbWFsbHZlY10oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3NtYWxsdmVjKS4gYFNtYWxsVmVjYCB3aWxsIGJlIHRyZWF0ZWQgYXMgYFZlY2AuCi0gKipgb3BlbmFwaV9leHRlbnNpb25zYCoqOiBBZGRzIHRyYWl0cyBhbmQgZnVuY3Rpb25zIHRoYXQgcHJvdmlkZSBleHRyYSBjb252ZW5pZW5jZSBmdW5jdGlvbnMuCiAgU2VlIHRoZSBbYHJlcXVlc3RfYm9keWAgZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL29wZW5hcGkvcmVxdWVzdF9ib2R5KSBmb3IgYW4gZXhhbXBsZS4KLSAqKmByZXByYCoqOiBBZGQgc3VwcG9ydCBmb3IgW3JlcHJfc2VyZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3NlcmRlLXJlcHIpJ3MgYHJlcHIodSopYCBhbmQgYHJlcHIoaSopYCBhdHRyaWJ1dGVzIHRvIHVuaXQgdHlwZSBlbnVtcyBmb3IKICBDLWxpa2UgZW51bSByZXByZXNlbnRhdGlvbi4gU2VlIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLlRvU2NoZW1hLmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCi0gKipgcHJlc2VydmVfb3JkZXJgKio6IFByZXNlcnZlIG9yZGVyIG9mIHByb3BlcnRpZXMgd2hlbiBzZXJpYWxpemluZyB0aGUgc2NoZW1hIGZvciBhIGNvbXBvbmVudC4KICBXaGVuIGVuYWJsZWQsIHRoZSBwcm9wZXJ0aWVzIGFyZSBsaXN0ZWQgaW4gb3JkZXIgb2YgZmllbGRzIGluIHRoZSBjb3JyZXNwb25kaW5nIHN0cnVjdCBkZWZpbml0aW9uLgogIFdoZW4gZGlzYWJsZWQsIHRoZSBwcm9wZXJ0aWVzIGFyZSBsaXN0ZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLgotICoqYHByZXNlcnZlX3BhdGhfb3JkZXJgKio6IFByZXNlcnZlIG9yZGVyIG9mIE9wZW5BUEkgUGF0aHMgYWNjb3JkaW5nIHRvIG9yZGVyIHRoZXkgaGF2ZSBiZWVuCiAgaW50cm9kdWNlZCB0byB0aGUgYCNbb3BlbmFwaShwYXRocyguLi4pKV1gIG1hY3JvIGF0dHJpYnV0ZS4gSWYgZGlzYWJsZWQgdGhlIHBhdGhzIHdpbGwgYmUKICBvcmRlcmVkIGluIGFscGhhYmV0aWNhbCBvcmRlci4gKipIb3dldmVyKiogdGhlIG9wZXJhdGlvbnMgb3JkZXIgdW5kZXIgdGhlIHBhdGggKip3aWxsKiogYmUgYWx3YXlzIGNvbnN0YW50IGFjY29yZGluZyB0byBbc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvbGF0ZXN0Lmh0bWwjZml4ZWQtZmllbGRzLTYpCi0gKipgaW5kZXhtYXBgKio6IEFkZCBzdXBwb3J0IGZvciBbaW5kZXhtYXBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9pbmRleG1hcCkuIFdoZW4gZW5hYmxlZCBgSW5kZXhNYXBgIHdpbGwgYmUgcmVuZGVyZWQgYXMgYSBtYXAgc2ltaWxhciB0bwogIGBCVHJlZU1hcGAgYW5kIGBIYXNoTWFwYC4KLSAqKmBub25fc3RyaWN0X2ludGVnZXJzYCoqOiBBZGQgc3VwcG9ydCBmb3Igbm9uLXN0YW5kYXJkIGludGVnZXIgZm9ybWF0cyBgaW50OGAsIGBpbnQxNmAsIGB1aW50OGAsIGB1aW50MTZgLCBgdWludDMyYCwgYW5kIGB1aW50NjRgLgotICoqYHJjX3NjaGVtYWAqKjogQWRkIGBUb1NjaGVtYWAgc3VwcG9ydCBmb3IgYEFyYzxUPmAgYW5kIGBSYzxUPmAgdHlwZXMuICoqTm90ZSEqKiBzZXJkZSBgcmNgIGZlYXR1cmUgZmxhZyBtdXN0IGJlIGVuYWJsZWQgc2VwYXJhdGVseSB0byBhbGxvdwogIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbiBvZiBgQXJjPFQ+YCBhbmQgYFJjPFQ+YCB0eXBlcy4gU2VlIG1vcmUgYWJvdXQgW3NlcmRlIGZlYXR1cmUgZmxhZ3NdKGh0dHBzOi8vc2VyZGUucnMvZmVhdHVyZS1mbGFncy5odG1sKS4KClV0b2lwYSBpbXBsaWNpdGx5IGhhcyBwYXJ0aWFsIHN1cHBvcnQgZm9yIGBzZXJkZWAgYXR0cmlidXRlcy4gU2VlIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLlRvU2NoZW1hLmh0bWwjcGFydGlhbC1zZXJkZS1hdHRyaWJ1dGVzLXN1cHBvcnQpIGZvciBtb3JlIGRldGFpbHMuCgojIyBJbnN0YWxsCgpBZGQgbWluaW1hbCBkZXBlbmRlbmN5IGRlY2xhcmF0aW9uIHRvIGBDYXJnby50b21sYC4KCmBgYHRvbWwKW2RlcGVuZGVuY2llc10KdXRvaXBhID0gIjQiCmBgYAoKVG8gZW5hYmxlIG1vcmUgZmVhdHVyZXMgc3VjaCBhcyB1c2UgYWN0aXggZnJhbWV3b3JrIGV4dHJhcyB5b3UgY291bGQgZGVmaW5lIHRoZQpkZXBlbmRlbmN5IGFzIGZvbGxvd3MuCgpgYGB0b21sCltkZXBlbmRlbmNpZXNdCnV0b2lwYSA9IHsgdmVyc2lvbiA9ICI0IiwgZmVhdHVyZXMgPSBbImFjdGl4X2V4dHJhcyJdIH0KYGBgCgoqKk5vdGUhKiogVG8gdXNlIGB1dG9pcGFgIHRvZ2V0aGVyIHdpdGggU3dhZ2dlciBVSSB5b3UgY2FuIHVzZSB0aGUgW3V0b2lwYS1zd2FnZ2VyLXVpXShodHRwczovL2RvY3MucnMvdXRvaXBhLXN3YWdnZXItdWkvKSBjcmF0ZS4KCiMjIEV4YW1wbGVzCgpDcmVhdGUgYSBzdHJ1Y3QsIG9yIGl0IGNvdWxkIGFsc28gYmUgYW4gZW51bS4gQWRkIGBUb1NjaGVtYWAgZGVyaXZlIG1hY3JvIHRvIGl0LCBzbyBpdCBjYW4gYmUgcmVnaXN0ZXJlZAphcyBhbiBPcGVuQVBJIHNjaGVtYS4KCmBgYHJ1c3QKdXNlIHV0b2lwYTo6VG9TY2hlbWE7CgojW2Rlcml2ZShUb1NjaGVtYSldCnN0cnVjdCBQZXQgewogICBpZDogdTY0LAogICBuYW1lOiBTdHJpbmcsCiAgIGFnZTogT3B0aW9uPGkzMj4sCn0KYGBgCgpDcmVhdGUgYSBoYW5kbGVyIHRoYXQgd291bGQgaGFuZGxlIHlvdXIgYnVzaW5lc3MgbG9naWMgYW5kIGFkZCBgcGF0aGAgcHJvYyBhdHRyaWJ1dGUgbWFjcm8gb3ZlciBpdC4KCmBgYHJ1c3QKbW9kIHBldF9hcGkgewogICAgLy8vIEdldCBwZXQgYnkgaWQKICAgIC8vLwogICAgLy8vIEdldCBwZXQgZnJvbSBkYXRhYmFzZSBieSBwZXQgaWQKICAgICNbdXRvaXBhOjpwYXRoKAogICAgICAgIGdldCwKICAgICAgICBwYXRoID0gIi9wZXRzL3tpZH0iLAogICAgICAgIHJlc3BvbnNlcygKICAgICAgICAgICAgKHN0YXR1cyA9IDIwMCwgZGVzY3JpcHRpb24gPSAiUGV0IGZvdW5kIHN1Y2Nlc3NmdWxseSIsIGJvZHkgPSBQZXQpLAogICAgICAgICAgICAoc3RhdHVzID0gTk9UX0ZPVU5ELCBkZXNjcmlwdGlvbiA9ICJQZXQgd2FzIG5vdCBmb3VuZCIpCiAgICAgICAgKSwKICAgICAgICBwYXJhbXMoCiAgICAgICAgICAgICgiaWQiID0gdTY0LCBQYXRoLCBkZXNjcmlwdGlvbiA9ICJQZXQgZGF0YWJhc2UgaWQgdG8gZ2V0IFBldCBmb3IiKSwKICAgICAgICApCiAgICApXQogICAgYXN5bmMgZm4gZ2V0X3BldF9ieV9pZChwZXRfaWQ6IHU2NCkgLT4gUGV0IHsKICAgICAgICBQZXQgewogICAgICAgICAgICBpZDogcGV0X2lkLAogICAgICAgICAgICBhZ2U6IE5vbmUsCiAgICAgICAgICAgIG5hbWU6ICJsaWdodG5pbmciLnRvX3N0cmluZygpLAogICAgICAgIH0KICAgIH0KfQpgYGAKClV0b2lwYSBoYXMgc3VwcG9ydCBmb3IgW2h0dHBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9odHRwKSBgU3RhdHVzQ29kZWAgaW4gcmVzcG9uc2VzLgoKX1RoaXMgYXR0cmlidXRlIG1hY3JvIHdpbGwgY3JlYXRlIGFub3RoZXIgc3RydWN0IG5hbWVkIHdpdGggYF9fcGF0aF9gIHByZWZpeCArIGhhbmRsZXIgZnVuY3Rpb24gbmFtZS4KU28gd2hlbiB5b3UgaW1wbGVtZW50IGBzb21lX2hhbmRsZXJgIGZ1bmN0aW9uIGluIGRpZmZlcmVudCBmaWxlIGFuZCB3YW50IHRvIGV4cG9ydCB0aGlzLCBtYWtlIHN1cmUgYF9fcGF0aF9zb21lX2hhbmRsZXJgCmluIHRoZSBtb2R1bGUgY2FuIGFsc28gYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSByb290Ll8KClRpZSB0aGUgYFNjaGVtYWAgYW5kIHRoZSBlbmRwb2ludCBhYm92ZSB0byB0aGUgT3BlbkFQSSBzY2hlbWEgd2l0aCBmb2xsb3dpbmcgYE9wZW5BcGlgIGRlcml2ZSBwcm9jIG1hY3JvLgoKYGBgcnVzdAp1c2UgdXRvaXBhOjpPcGVuQXBpOwoKI1tkZXJpdmUoT3BlbkFwaSldCiNbb3BlbmFwaShwYXRocyhwZXRfYXBpOjpnZXRfcGV0X2J5X2lkKSwgY29tcG9uZW50cyhzY2hlbWFzKFBldCkpKV0Kc3RydWN0IEFwaURvYzsKCnByaW50bG4hKCJ7fSIsIEFwaURvYzo6b3BlbmFwaSgpLnRvX3ByZXR0eV9qc29uKCkudW53cmFwKCkpOwpgYGAKClRoaXMgd291bGQgcHJvZHVjZSBhbiBBUEkgZG9jIHNvbWV0aGluZyBzaW1pbGFyIHRvOgoKYGBganNvbgp7CiAgIm9wZW5hcGkiOiAiMy4xLjAiLAogICJpbmZvIjogewogICAgInRpdGxlIjogImFwcGxpY2F0aW9uIG5hbWUgZnJvbSBDYXJnby50b21sIiwKICAgICJkZXNjcmlwdGlvbiI6ICJkZXNjcmlwdGlvbiBmcm9tIENhcmdvLnRvbWwiLAogICAgImNvbnRhY3QiOiB7CiAgICAgICJuYW1lIjogImF1dGhvciBuYW1lIGZyb20gQ2FyZ28udG9tbCIsCiAgICAgICJlbWFpbCI6ICJhdXRob3IgZW1haWwgZnJvbSBDYXJnby50b21sIgogICAgfSwKICAgICJsaWNlbnNlIjogewogICAgICAibmFtZSI6ICJsaWNlbnNlIGZyb20gQ2FyZ28udG9tbCIKICAgIH0sCiAgICAidmVyc2lvbiI6ICJ2ZXJzaW9uIGZyb20gQ2FyZ28udG9tbCIKICB9LAogICJwYXRocyI6IHsKICAgICIvcGV0cy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInBldF9hcGkiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJHZXQgcGV0IGJ5IGlkIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiR2V0IHBldCBmcm9tIGRhdGFiYXNlIGJ5IHBldCBpZCIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldF9wZXRfYnlfaWQiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlBldCBkYXRhYmFzZSBpZCB0byBnZXQgUGV0IGZvciIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImZvcm1hdCI6ICJpbnQ2NCIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGV0IGZvdW5kIHN1Y2Nlc3NmdWxseSIsCiAgICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogewogICAgICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvUGV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDQiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQZXQgd2FzIG5vdCBmb3VuZCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogICJjb21wb25lbnRzIjogewogICAgInNjaGVtYXMiOiB7CiAgICAgICJQZXQiOiB7CiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAiaWQiLAogICAgICAgICAgIm5hbWUiCiAgICAgICAgXSwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICJhZ2UiOiB7CiAgICAgICAgICAgICJ0eXBlIjogWwogICAgICAgICAgICAgICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZvcm1hdCI6ICJpbnQzMiIKICAgICAgICAgIH0sCiAgICAgICAgICAiaWQiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAiZm9ybWF0IjogImludDY0IiwKICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICB9LAogICAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgojIyBNb2RpZnkgT3BlbkFQSSBhdCBydW50aW1lCgpZb3UgY2FuIG1vZGlmeSBnZW5lcmF0ZWQgT3BlbkFQSSBhdCBydW50aW1lIGVpdGhlciB2aWEgZ2VuZXJhdGVkIHR5cGVzIGRpcmVjdGx5IG9yIHVzaW5nCltNb2RpZnldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS90cmFpdC5Nb2RpZnkuaHRtbCkgdHJhaXQuCgpfTW9kaWZ5IGdlbmVyYXRlZCBPcGVuQVBJIHZpYSB0eXBlcyBkaXJlY3RseS5fCgpgYGBydXN0CiNbZGVyaXZlKE9wZW5BcGkpXQojW29wZW5hcGkoCiAgICBpbmZvKGRlc2NyaXB0aW9uID0gIk15IEFwaSBkZXNjcmlwdGlvbiIpLAopXQpzdHJ1Y3QgQXBpRG9jOwoKbGV0IG11dCBkb2MgPSBBcGlEb2M6Om9wZW5hcGkoKTsKZG9jLmluZm8udGl0bGUgPSBTdHJpbmc6OmZyb20oIk15IEFwaSIpOwpgYGAKCl9Zb3UgY2FuIGV2ZW4gY29udmVydCB0aGUgZ2VuZXJhdGVkIFtPcGVuQXBpXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvb3BlbmFwaS9zdHJ1Y3QuT3BlbkFwaS5odG1sKSB0byBbT3BlbkFwaUJ1aWxkZXJdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9vcGVuYXBpL3N0cnVjdC5PcGVuQXBpQnVpbGRlci5odG1sKS5fCgpgYGBydXN0CmxldCBidWlsZGVyOiBPcGVuQXBpQnVpbGRlciA9IEFwaURvYzo6b3BlbmFwaSgpLmludG8oKTsKYGBgCgpTZWUgW01vZGlmeV0oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL3RyYWl0Lk1vZGlmeS5odG1sKSB0cmFpdCBmb3IgZXhhbXBsZXMgb24gaG93IHRvIG1vZGlmeSBnZW5lcmF0ZWQgT3BlbkFQSSB2aWEgaXQuCgojIyBHbyBiZXlvbmQgdGhlIHN1cmZhY2UKCi0gU2VlIGhvdyB0byBzZXJ2ZSBPcGVuQVBJIGRvYyB2aWEgU3dhZ2dlciBVSSBjaGVjayBbdXRvaXBhLXN3YWdnZXItdWldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEtc3dhZ2dlci11aS8pIGNyYXRlIGZvciBtb3JlIGRldGFpbHMuCi0gQnJvd3NlIHRvIFtleGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvdHJlZS9tYXN0ZXIvZXhhbXBsZXMpIGZvciBtb3JlIGNvbXByZWhlbnNpdmUgZXhhbXBsZXMuCi0gQ2hlY2sgW0ludG9SZXNwb25zZXNdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9kZXJpdmUuSW50b1Jlc3BvbnNlcy5odG1sKSBhbmQgW1RvUmVzcG9uc2VdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9kZXJpdmUuVG9SZXNwb25zZS5odG1sKSBmb3IgZXhhbXBsZXMgb24gZGVyaXZpbmcgcmVzcG9uc2VzLgotIE1vcmUgYWJvdXQgT3BlbkFQSSBzZWN1cml0eSBpbiBbc2VjdXJpdHkgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL29wZW5hcGkvc2VjdXJpdHkvaW5kZXguaHRtbCkuCi0gRHVtcCBnZW5lcmF0ZWQgQVBJIGRvYyB0byBmaWxlIGF0IGJ1aWxkIHRpbWUuIFNlZSBbaXNzdWUgMjE0IGNvbW1lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWhha3UvdXRvaXBhL2lzc3Vlcy8yMTQjaXNzdWVjb21tZW50LTExNzk1ODkzNzMpLgoKIyMgRkFRCgojIyMgU3dhZ2dlciBVSSByZXR1cm5zIDQwNCBOb3RGb3VuZCBmcm9tIGJ1aWx0IGJpbmFyeQoKVGhpcyBpcyBoaWdobHkgcHJvYmFibHkgZHVlIHRvIGBSdXN0RW1iZWRgIG5vdCBlbWJlZGRpbmcgdGhlIFN3YWdnZXIgVUkgdG8gdGhlIGV4ZWN1dGFibGUuIFRoaXMgaXMgbmF0dXJhbCBzaW5jZSB0aGUgYFJ1c3RFbWJlZGAKbGlicmFyeSAqKmRvZXMgbm90KiogYnkgZGVmYXVsdCBlbWJlZCBmaWxlcyBvbiBkZWJ1ZyBidWlsZHMuIFRvIGdldCBhcm91bmQgdGhpcyB5b3UgY2FuIGRvIG9uZSBvZiB0aGUgZm9sbG93aW5nLgoKMS4gQnVpbGQgeW91ciBleGVjdXRhYmxlIGluIGAtLXJlbGVhc2VgIG1vZGUKMi4gb3IgYWRkIGBkZWJ1Zy1lbWJlZGAgZmVhdHVyZSBmbGFnIHRvIHlvdXIgYENhcmdvLnRvbWxgIGZvciBgdXRvaXBhLXN3YWdnZXItdWlgLiBUaGlzIHdpbGwgZW5hYmxlIHRoZSBgZGVidWctZW1lYmVkYCBmZWF0dXJlIGZsYWcgZm9yCiAgIGBSdXN0RW1iZWRgIGFzIHdlbGwuIFJlYWQgbW9yZSBhYm91dCB0aGlzIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9pc3N1ZXMvNTI3I2lzc3VlY29tbWVudC0xNDc0MjE5MDk4KSBhbmQgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWhha3UvdXRvaXBhL2lzc3Vlcy8yNjgpLgoKRmluZCBgdXRvaXBhLXN3YWdnZXItdWlgIFtmZWF0dXJlIGZsYWdzIGhlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWhha3UvdXRvaXBhL3RyZWUvbWFzdGVyL3V0b2lwYS1zd2FnZ2VyLXVpI2NyYXRlLWZlYXR1cmVzKS4KCiMjIyBIb3cgdG8gaW1wbGVtZW50IGBUb1NjaGVtYWAgZm9yIGV4dGVybmFsIHR5cGU/CgpUaGVyZSBhcmUgZmV3IHdheXMgYXJvdW5kIHRoaXMgdGhhdCBhcmUgZWxhYm9yYXRlZCBbaGVyZSBpbiBkZXRhaWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWhha3UvdXRvaXBhL2lzc3Vlcy83OTAjaXNzdWVjb21tZW50LTE3ODc3NTQxODUpLgoKIyMjIEhvdyB0byB1c2UgUnVzdCdzIHR5cGUgYWxpYXNlcz8KCkF0IHRoZSBtb21lbnQgdGhhdCBpcyBub3QgcG9zc2libGUgZHVlIHRvIHRoZXJlIGlzIG5vIHdheSB0byBldmFsdWF0ZSB0aGUgYWN0dWFsIHR5cGUgYmVoaW5kIHRoZSB0eXBlIHRva2VuIHRoYXQgaXMgdmlzaWJsZSB0byB0aGUgcHJvYyBtYWNybyBjb2RlIGdlbmVyYXRpb24uClRoaXMgbWlnaHQgYmUgcG9zc2libGUgaW4gZnV0dXJlIGlmIGEgZ2xvYmFsIGFsaWFzIHJlZ2lzdHJ5IGNhbiBiZSBpbXBsZW1lbnRlZC4gSGVyZSBpcyBhbiBpc3N1ZSByZWxhdGVkIHRvIHRoZSB0b3BpYyBbIzc2Nl0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvaXNzdWVzLzc2NikuCgojIyMgQXV0byBkaXNjb3ZlciBmb3IgT3BlbkFQSSBzY2hlbWFzIGFuZCBwYXRocz8KCkN1cnJlbnRseSB0aGVyZSBpcyBubyBidWlsZCBpbiBzb2x1dGlvbiB0byBhdXRvbWF0aWNhbGx5IGRpc2NvdmVyIHRoZSBPcGVuQVBJIHR5cGVzIGJ1dCBmb3IgeW91ciBsdWNrIHRoZXJlIGlzIGEgcHJldHR5IG5lYXQgY3JhdGUgdGhhdCAKanVzdCBkb2VzIHRoaXMgZm9yIHlvdSBjYWxsZWQgW3V0b2lwYXV0b10oaHR0cHM6Ly9naXRodWIuY29tL1Byb2JhYmx5Q2xlbS91dG9pcGF1dG8pLgoKIyMgTGljZW5zZQoKTGljZW5zZWQgdW5kZXIgZWl0aGVyIG9mIFtBcGFjaGUgMi4wXShMSUNFTlNFLUFQQUNIRSkgb3IgW01JVF0oTElDRU5TRS1NSVQpIGxpY2Vuc2UgYXQgeW91ciBvcHRpb24uCgpVbmxlc3MgeW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLCBhbnkgY29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhpcyBjcmF0ZQpieSB5b3UsIHNoYWxsIGJlIGR1YWwgbGljZW5zZWQsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4K readmeEtag: '"9093e2bfc7bae64f886acdf61f842aaa37405d13"' readmeLastModified: Thu, 05 Sep 2024 17:06:15 GMT repositoryId: 412240914 description: >- Simple, Fast, Code first and Compile time generated OpenAPI documentation for Rust created: '2021-09-30T22:00:31Z' updated: '2024-09-06T01:17:10Z' language: Rust archived: false stars: 2152 watchers: 8 forks: 165 owner: juhaku logo: https://avatars.githubusercontent.com/u/26358664?v=4 license: Apache-2.0 repoEtag: '"586adaae9ebef0e00b82a49359a133fa45e44bd7e854125faf72607360659ea4"' repoLastModified: Fri, 06 Sep 2024 01:17:10 GMT foundInMaster: true category: Parsers id: 14269a89115b3be71493769fca4d995e v3_1: true - source: openapi31 tags repository: https://github.com/bump-sh-examples/train-travel-api v3_1: true id: ae6b3dd61fddf7877ad70e617d1625ac repositoryMetadata: base64Readme: >- IyBUcmFpbiBUcmF2ZWwgQVBJCgpUaGlzIEFQSSBkb2VzIG5vdCBleGlzdCwgYnV0IGV4aXN0cyB0byBoZWxwIHBlb3BsZSBsZWFybiBPcGVuQVBJIGJ5IGRlc2NyaWJpbmcgYSByZWFsaXN0aWMgQVBJIGluIGEgcmVhbGlzdGljIHdheS4KCiMjIEJhY2tncm91bmQKClRoZSB3b3JsZCBvZiBPcGVuQVBJIGhhcyBiZWVuIHBsYWd1ZWQgYnkgIlRoZSBQZXQgU3RvcmUiLCBhbiBvbGQgQVBJIGRlc2NyaXB0aW9uIHVzZWQgYXMgYSBkZW1vIGluIGV2ZXJ5IHByb2plY3QgZXZlci4gSXQgZGVzY3JpYmVzIGEgUlBDLWVzcXVlIEFQSSB0aGF0J3MgbWFzY2VyYWRpbmcgYXMgUkVTVCwgYW5kIGRlc2NyaWJlcyBpdCBwb29ybHksIHVzaW5nIG9sZCBPcGVuQVBJIDIuMCB3aGljaCBoYXMgYmVlbiB1cGdyYWRlZCB0byBPcGVuQVBJIHYzLjAgd2l0aG91dCB0YWtpbmcgYWR2YW50YWdlIG9mIGFueSBvZiB0aGUgbmV3IGZlYXR1cmVzLgoKVGhpcyBleGFtcGxlIEFQSSBoYXMgYmVlbiB3cml0dGVuIGJ5IHNvbWVib2R5IHdobyB1c2VzIE9wZW5BUEkgZXZlcnkgZGF5LCBhbmQgaGFzIGRlc2NyaWJlZCAxMDBzIG9mIEFQSXMuIAoKIyMgR29hbHMKCkluc3RlYWQgb2Ygc2h5aW5nIGF3YXkgb2YgdG91Z2ggZGVjaXNpb25zLCB0aGlzIE9wZW5BUEkgZ2V0cyBzdHVjayBpbnRvIGFkdmFuY2VkIHRvcGljcyBsaWtlOgoKLSBIb3cgdG8gc3BsaXQgZmlsZXMgdXAgd2l0aCAkcmVmIHRvIGF2b2lkIHJlcGVhdGluZyBvdXJzZWx2ZXMuCi0gSG93IHRvIHJldXNlIHRoZSBzYW1lIG1vZGVsIGZvciByZWFkIGFuZCB3cml0ZSBvcGVyYXRpb25zLgotIEhvdyB0byB3cmFwIGRhdGEgd2l0aCBhIHdyYXBwZXIgbGlrZSBgeyBkYXRhOiBbXSwgbGlua3M6IHt9IH1gLgoKVGhpcyBtaWdodCBub3QgYmUgdGhlIGVhc2llc3QgQVBJIGRlc2NyaXB0aW9uIHRvIHJlYWQgaW4gYSB0ZXh0IGVkaXRvciwgYnV0IGl0IGxvb2tzIHdvbmRlcmZ1bCB3aGVuIHB1dCB0aHJvdWdoIFtCdW1wLnNoXShodHRwczovL2J1bXAuc2gvKS4KCioqW1ByZXZpZXcgdGhpcyBPcGVuQVBJIG9uIEJ1bXAuc2hdKGh0dHBzOi8vYnVtcC5zaC9idW1wLWV4YW1wbGVzL2RvYy90cmFpbi10cmF2ZWwtYXBpLykqKgoKT3IgW2Rvd25sb2FkIGl0IHlvdXJzZWxmXShodHRwczovL2dpdGh1Yi5jb20vYnVtcC1zaC1leGFtcGxlcy90cmFpbi10cmF2ZWwtYXBpL2FyY2hpdmUvcmVmcy9oZWFkcy9tYWluLnppcCkgYW5kIGhhdmUgYSBwb2tlIGFyb3VuZC4KCiMjIExpY2Vuc2UKClRoZSBjb250ZW50cyBvZiB0aGlzIHJlcG9zaXRvcnkgYXJlIGxpY2Vuc2VkIHVuZGVyIFtDQyBCWS1OQy1TQQogIDQuMF0oLi9MSUNFTlNFX0NDLUJZLU5DLVNBLTQuMCku readmeEtag: '"386afc96834d98a63d55cbaa4803ce63553bb174"' readmeLastModified: Thu, 15 Aug 2024 14:18:03 GMT repositoryId: 751352638 description: >- Sample OpenAPI description to use for whatever you like, as a hopefully more modern and useful alternative to the Petstore. created: '2024-02-01T12:49:32Z' updated: '2024-08-29T12:38:27Z' language: JavaScript archived: false stars: 44 watchers: 5 forks: 6 owner: bump-sh-examples logo: https://avatars.githubusercontent.com/u/157144805?v=4 license: NOASSERTION repoEtag: '"dafb23ba3aaabe18d7ef2e6206e96dc7e1271ac7c699e722ebb84410f066aa03"' repoLastModified: Thu, 29 Aug 2024 12:38:27 GMT category: Server Implementations foundInMaster: true - source: openapi31 tags repository: https://github.com/a-chacon/oas_rails v3_1: true id: 4f2556a5a26e04f5a4be6c77a48b61ac repositoryMetadata: base64Readme: >- IVtHZW0gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9nZW0vdi9vYXNfcmFpbHM/Y29sb3I9RTk1NzNGKQohW0dpdEh1YiBMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2EtY2hhY29uL29hc19yYWlscz9jb2xvcj1ibHVlKQohW0dpdEh1YiBBY3Rpb25zIFdvcmtmbG93IFN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMvYS1jaGFjb24vb2FzX3JhaWxzLy5naXRodWIlMkZ3b3JrZmxvd3MlMkZydWJ5b25yYWlscy55bWwpCiFbR2VtIFRvdGFsIERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9nZW0vZHQvb2FzX3JhaWxzKQohW1N0YXRpYyBCYWRnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9SYWlscy0lM0UlM0Q3LjAuMC0lMjNFOTU3M0YpCiFbU3RhdGljIEJhZGdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1J1YnktJTNFJTNEMy4xLjAtJTIzRTk1NzNGKQoKIyBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uIEZvciBSYWlscwoKT2FzUmFpbHMgaXMgYSBSYWlscyBlbmdpbmUgZm9yIGdlbmVyYXRpbmcgKiphdXRvbWF0aWMgaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbiBmb3IgeW91ciBSYWlscyBBUElzKiouIEl0IGdlbmVyYXRlcyBhbiAqKk9BUyAzLjEqKiBkb2N1bWVudCBhbmQgZGlzcGxheXMgaXQgdXNpbmcgKipbUmFwaURvY10oaHR0cHM6Ly9yYXBpZG9jd2ViLmNvbSkqKi4KCiFbU2NyZWVuc2hvdF0oaHR0cHM6Ly9hLWNoYWNvbi5jb20vYXNzZXRzL2ltYWdlcy9vYXNfcmFpbHNfdWkucG5nKQoKIyMgUmVsYXRlZCBQcm9qZWN0cwoKLSAqKltBcGlQaWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BcGlwaWUvYXBpcGllLXJhaWxzKSoqOiBEb2Vzbid0IHN1cHBvcnQgT0FTIDMuMSwgcmVxdWlyZXMgbGVhcm5pbmcgYSBEU0wsIGxhY2tzIGEgbmljZSBVSQotICoqW3N3YWdnZXJfeWFyZC1yYWlsc10oaHR0cHM6Ly9naXRodWIuY29tL2xpdmluZ3NvY2lhbC9zd2FnZ2VyX3lhcmQtcmFpbHMpKio6IFNlZW1zIGFiYW5kb25lZCwgYnV0IHNlcnZlcyBhcyBpbnNwaXJhdGlvbgotICoqW1Jzd2FnXShodHRwczovL2dpdGh1Yi5jb20vcnN3YWcvcnN3YWcpKio6IE5vdCBhdXRvbWF0aWMsIGRlcGVuZHMgb24gUlNwZWM7IE1hbnkgZGV2ZWxvcGVycyBub3cgdXNlIE1pbml0ZXN0IGFzIGl0J3MgdGhlIGRlZmF1bHQgdGVzdCBmcmFtZXdvcmsKLSAqKltncmFwZS1zd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vcnVieS1ncmFwZS9ncmFwZS1zd2FnZ2VyKSoqOiBSZXF1aXJlcyBHcmFwZQotICoqW3JzcGVjX2FwaV9kb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vemlwbWFyay9yc3BlY19hcGlfZG9jdW1lbnRhdGlvbikqKjogUmVxdWlyZXMgUlNwZWMgYW5kIGEgY29tbWFuZCB0byBnZW5lcmF0ZSB0aGUgZG9jcwoKIyMgV2hhdCBTZXRzIE9hc1JhaWxzIEFwYXJ0PwoKLSAqKkR5bmFtaWMqKjogTm8gY29tbWFuZCByZXF1aXJlZCB0byBnZW5lcmF0ZSBkb2NzCi0gKipTaW1wbGUqKjogQ29tcGxlbWVudCBkZWZhdWx0IGRvY3VtZW50YXRpb24gd2l0aCBhIGZldyBjb21tZW50czsgbm8gbmVlZCB0byBsZWFybiBhIGNvbXBsZXggRFNMCi0gKipQdXJlIFJ1Ynkgb24gUmFpbHMgQVBJcyoqOiBObyBhZGRpdGlvbmFsIGZyYW1ld29ya3MgbmVlZGVkIChlLmcuLCBHcmFwZSwgUlNwZWMpCgojIyBNb3RpdmF0aW9uCgpBZnRlciBleHBlcmllbmNpbmcgdGhlIGludGVyYWN0aXZlIGRvY3VtZW50YXRpb24gaW4gUHl0aG9uJ3MgZmFzdC1hcGkgZnJhbWV3b3JrLCBJIHNvdWdodCBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgaW4gUnVieSBvbiBSYWlscy4gVW5hYmxlIHRvIGZpbmQgYSBzdWl0YWJsZSBzb2x1dGlvbiwgSSBbYXNrZWQgb24gU3RhY2sgT3ZlcmZsb3ddKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzcxOTQ3MDE4L2lzLXRoZXJlLWEtd2F5LXRvLWdlbmVyYXRlLWFuLWludGVyYWN0aXZlLWRvY3VtZW50YXRpb24tZm9yLXJhaWxzLWFwaXMpIHllYXJzIGFnby4gTm93LCB3aXRoIHNvbWUgZnJlZSB0aW1lIHdoaWxlIGZyZWVsYW5jaW5nIGFzIGFuIEFQSSBkZXZlbG9wZXIsIEkgZGVjaWRlZCB0byBidWlsZCBteSBvd24gdG9vbC4KCioqTm90ZTogVGhpcyBpcyBub3QgeWV0IGEgcHJvZHVjdGlvbi1yZWFkeSBzb2x1dGlvbi4gVGhlIGNvZGUgbWF5IGJlIHJvdWdoIGFuZCBiZWhhdmUgdW5leHBlY3RlZGx5LCBidXQgSSBhbSBhY3RpdmVseSB3b3JraW5nIG9uIGltcHJvdmluZyBpdC4gSWYgeW91IGxpa2UgdGhlIGlkZWEsIHBsZWFzZSBjb25zaWRlciBjb250cmlidXRpbmcgdG8gaXRzIGRldmVsb3BtZW50LioqCgpUaGUgZ29hbCBpcyB0byBtaW5pbWl6ZSB0aGUgZWZmb3J0IHJlcXVpcmVkIHRvIGNyZWF0ZSBjb21wcmVoZW5zaXZlIGRvY3VtZW50YXRpb24uIEJ5IGZvbGxvd2luZyBSRVNUIHByaW5jaXBsZXMgaW4gUmFpbHMsIHdlIGJlbGlldmUgdGhpcyBpcyBhY2hpZXZhYmxlLiBZb3UgY2FuIGVuaGFuY2UgdGhlIGRvY3VtZW50YXRpb24gdXNpbmcgW1lhcmRdKGh0dHBzOi8veWFyZG9jLm9yZy8pIHRhZ3MuCgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQotIFtDb25maWd1cmF0aW9uXSgjY29uZmlndXJhdGlvbikKICAtIFtCYXNpYyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgQVBJXSgjYmFzaWMtaW5mb3JtYXRpb24tYWJvdXQtdGhlLWFwaSkKICAtIFtTZXJ2ZXJzIEluZm9ybWF0aW9uXSgjc2VydmVycy1pbmZvcm1hdGlvbikKICAtIFtUYWcgSW5mb3JtYXRpb25dKCN0YWctaW5mb3JtYXRpb24pCiAgLSBbT3B0aW9uYWwgU2V0dGluZ3NdKCNvcHRpb25hbC1zZXR0aW5ncykKICAtIFtBdXRoZW50aWNhdGlvbiBTZXR0aW5nc10oI2F1dGhlbnRpY2F0aW9uLXNldHRpbmdzKQogIC0gW0RlZmF1bHQgUmVzcG9uc2VzIChFcnJvcnMpXSgjZGVmYXVsdC1yZXNwb25zZXMpCi0gW1VzYWdlXSgjdXNhZ2UpCiAgLSBbRG9jdW1lbnRpbmcgWW91ciBFbmRwb2ludHNdKCNkb2N1bWVudGluZy15b3VyLWVuZHBvaW50cykKICAtIFtFeGFtcGxlXSgjZXhhbXBsZS1vZi1kb2N1bWVudGVkLWVuZHBvaW50cykKLSBbU2VjdXJpbmcgdGhlIE9hc1JhaWxzIEVuZ2luZV0oI3NlY3VyaW5nLXRoZS1vYXNyYWlscy1lbmdpbmUpCi0gW0N1c3RvbWl6aW5nIHRoZSBWaWV3XSgjY3VzdG9taXppbmctdGhlLXZpZXcpCi0gW0NvbnRyaWJ1dGluZ10oI2NvbnRyaWJ1dGluZykKICAtIFtSb2FkbWFwIGFuZCBJZGVhcyBmb3IgSW1wcm92ZW1lbnRdKCNyb2FkbWFwLWFuZC1pZGVhcy1mb3ItaW1wcm92ZW1lbnQpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgSW5zdGFsbGF0aW9uCgoxLiBBZGQgdGhpcyBsaW5lIHRvIHlvdXIgUmFpbHMgYXBwbGljYXRpb24ncyBHZW1maWxlOgoKICAgYGBgcnVieQogICBnZW0gIm9hc19yYWlscyJgCiAgIGBgYAoKMi4gRXhlY3V0ZToKCiAgIGBgYGJhc2gKICAgYnVuZGxlCiAgIGBgYAoKMy4gTW91bnQgdGhlIGVuZ2luZSBpbiB5b3VyIGNvbmZpZy9yb3V0ZXMucmIgZmlsZQoKICAgYGBgcnVieQogICBtb3VudCBPYXNSYWlsczo6RW5naW5lID0+ICcvZG9jcycKICAgYGBgCgpZb3UnbGwgbm93IGhhdmUgKipiYXNpYyBkb2N1bWVudGF0aW9uKiogYmFzZWQgb24geW91ciByb3V0ZXMgYW5kIGF1dG9tYXRpY2FsbHkgZ2F0aGVyZWQgaW5mb3JtYXRpb24gYXQgYGxvY2FsaG9zdDozMDAwL2RvY3NgLiBUbyBlbmhhbmNlIGl0LCBjcmVhdGUgYW4gaW5pdGlhbGl6ZXIgZmlsZSBhbmQgYWRkIFtZYXJkXShodHRwczovL3lhcmRvYy5vcmcvKSB0YWdzIHRvIHlvdXIgY29udHJvbGxlciBtZXRob2RzLgoKIyMgQ29uZmlndXJhdGlvbgoKVG8gY29uZmlndXJlIE9hc1JhaWxzLCB5b3UgTVVTVCBjcmVhdGUgYW4gaW5pdGlhbGl6ZXIgZmlsZSBpbmNsdWRpbmcgYWxsIHlvdXIgc2V0dGluZ3MuIFRoZSBmaXJzdCBzdGVwIGlzIHRvIGNyZWF0ZSB5b3VyIGluaXRpYWxpemVyIGZpbGUsIHdoaWNoIHlvdSBjYW4gZWFzaWx5IGRvIHdpdGg6CgpgYGBiYXNoCnJhaWxzIGdlbmVyYXRlIG9hc19yYWlsczpjb25maWcKYGBgCgpUaGVuIGZpbGwgaXQgd2l0aCB5b3VyIGRhdGEuIEJlbG93IGFyZSB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9uczoKCiMjIyBCYXNpYyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgQVBJCgotIGBjb25maWcuaW5mby50aXRsZWA6IFRoZSB0aXRsZSBvZiB5b3VyIEFQSSBkb2N1bWVudGF0aW9uLgotIGBjb25maWcuaW5mby5zdW1tYXJ5YDogQSBicmllZiBzdW1tYXJ5IG9mIHlvdXIgQVBJLgotIGBjb25maWcuaW5mby5kZXNjcmlwdGlvbmA6IEEgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgeW91ciBBUEkuIFRoaXMgY2FuIGluY2x1ZGUgbWFya2Rvd24gZm9ybWF0dGluZyBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgcHJvbWluZW50bHkgaW4geW91ciBkb2N1bWVudGF0aW9uLgotIGBjb25maWcuaW5mby5jb250YWN0Lm5hbWVgOiBUaGUgbmFtZSBvZiB0aGUgY29udGFjdCBwZXJzb24gb3Igb3JnYW5pemF0aW9uLgotIGBjb25maWcuaW5mby5jb250YWN0LmVtYWlsYDogVGhlIGNvbnRhY3QgZW1haWwgYWRkcmVzcy4KLSBgY29uZmlnLmluZm8uY29udGFjdC51cmxgOiBUaGUgVVJMIGZvciBtb3JlIGluZm9ybWF0aW9uIG9yIHN1cHBvcnQuCgojIyMgU2VydmVycyBJbmZvcm1hdGlvbgoKLSBgY29uZmlnLnNlcnZlcnNgOiBBbiBhcnJheSBvZiBzZXJ2ZXIgb2JqZWN0cywgZWFjaCBjb250YWluaW5nIGB1cmxgIGFuZCBgZGVzY3JpcHRpb25gIGtleXMuIEZvciBtb3JlIGRldGFpbHMsIHJlZmVyIHRvIHRoZSBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy9sYXRlc3QuaHRtbCNzZXJ2ZXItb2JqZWN0KS4KCiMjIyBUYWcgSW5mb3JtYXRpb24KCi0gYGNvbmZpZy50YWdzYDogQW4gYXJyYXkgb2YgdGFnIG9iamVjdHMsIGVhY2ggY29udGFpbmluZyBgbmFtZWAgYW5kIGBkZXNjcmlwdGlvbmAga2V5cy4gRm9yIG1vcmUgZGV0YWlscywgcmVmZXIgdG8gdGhlIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL2xhdGVzdC5odG1sI3RhZy1vYmplY3QpLgoKIyMjIE9wdGlvbmFsIFNldHRpbmdzCgotIGBjb25maWcuZGVmYXVsdF90YWdzX2Zyb21gOiBEZXRlcm1pbmVzIHRoZSBzb3VyY2Ugb2YgZGVmYXVsdCB0YWdzIGZvciBvcGVyYXRpb25zLiBDYW4gYmUgc2V0IHRvIGA6bmFtZXNwYWNlYCBvciBgOmNvbnRyb2xsZXJgLgotIGBjb25maWcuYXV0b2Rpc2NvdmVyX3JlcXVlc3RfYm9keWA6IEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyByZXF1ZXN0IGJvZGllcyBmb3IgY3JlYXRlL3VwZGF0ZSBtZXRob2RzLiBEZWZhdWx0IGlzIGB0cnVlYC4KLSBgY29uZmlnLmF1dG9kaXNjb3Zlcl9yZXNwb25zZXNgOiBBdXRvbWF0aWNhbGx5IGRldGVjdHMgcmVzcG9uc2VzIGZyb20gY29udHJvbGxlciByZW5kZXJzLiBEZWZhdWx0IGlzIGB0cnVlYC4KLSBgY29uZmlnLmFwaV9wYXRoYDogU2V0cyB0aGUgQVBJIHBhdGggaWYgeW91ciBBUEkgaXMgdW5kZXIgYSBkaWZmZXJlbnQgbmFtZXNwYWNlLgotIGBjb25maWcuaWdub3JlZF9hY3Rpb25zYDogU2V0cyBhbiBhcnJheSB3aXRoIHRoZSBjb250cm9sbGVyIG9yIGNvbnRyb2xsZXIjYWN0aW9uLiBObyBuZWNlc3NhcnkgdG8gYWRkIGFwaV9wYXRoIGJlZm9yZS4KCiMjIyBBdXRoZW50aWNhdGlvbiBTZXR0aW5ncwoKLSBgY29uZmlnLmF1dGhlbnRpY2F0ZV9hbGxfcm91dGVzX2J5X2RlZmF1bHRgOiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXV0aGVudGljYXRlIGFsbCByb3V0ZXMgYnkgZGVmYXVsdC4gRGVmYXVsdCBpcyBgdHJ1ZWAuCi0gYGNvbmZpZy5zZWN1cml0eV9zY2hlbWFgOiBUaGUgZGVmYXVsdCBzZWN1cml0eSBzY2hlbWEgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIENob29zZSBhIHByZWRlZmluZWQgc2VjdXJpdHkgc2NoZW1hIGZyb20gYFs6YXBpX2tleV9jb29raWUsIDphcGlfa2V5X2hlYWRlciwgOmFwaV9rZXlfcXVlcnksIDpiYXNpYywgOmJlYXJlciwgOmJlYXJlcl9qd3QsIDptdXR1YWxfdGxzXWAuCi0gYGNvbmZpZy5zZWN1cml0eV9zY2hlbWFzYDogQ3VzdG9tIHNlY3VyaXR5IHNjaGVtYXMuIEZvbGxvdyB0aGUgW09wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvbGF0ZXN0Lmh0bWwjc2VjdXJpdHktc2NoZW1lLW9iamVjdCkgZm9yIGRlZmluaW5nIHRoZXNlIHNjaGVtYXMuCgojIyMgRGVmYXVsdCBFcnJvcnMKCi0gYGNvbmZpZy5zZXRfZGVmYXVsdF9yZXNwb25zZXNgOiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYWRkIGRlZmF1bHQgZXJyb3JzIHJlc3BvbnNlcyB0byBlbmRwb2ludC4gRGVmYXVsdCBpcyBgdHJ1ZWAuCgotIGBjb25maWcucG9zc2libGVfZGVmYXVsdF9yZXNwb25zZXNgOiBBcnJheSB3aXRoIHBvc3NpYmxlIGRlZmF1bHQgZXJyb3JzLihTb21lIHdpbGwgYmUgYWRkZWQgZGVwZW5kaW5nIG9uIHRoZSBlbmRwb2ludCwgZXhhbXBsZTogbm90X2ZvdW5kIG9ubHkgd29ya3Mgd2l0aCBzaG93L3VwZGF0ZS9kZWxldGUpLiBEZWZhdWx0OiBbOm5vdF9mb3VuZCwgOnVuYXV0aG9yaXplZCwgOmZvcmJpZGRlbl0uIEl0IHNob3VsZCBiZSBIVFRQIHN0YXR1cyBjb2RlIHN5bWJvbHMgZnJvbSB0aGUgbGlzdDogYFs6bm90X2ZvdW5kLCA6dW5hdXRob3JpemVkLCA6Zm9yYmlkZGVuLCA6aW50ZXJuYWxfc2VydmVyX2Vycm9yLCA6dW5wcm9jZXNzYWJsZV9lbnRpdHldYAoKLSBgY29uZmlnLnJlc3BvbnNlX2JvZHlfb2ZfZGVmYXVsdGA6IGJvZHkgZm9yIHVzZSBpbiBkZWZhdWx0IHJlc3BvbnNlcy4gSXQgbXVzdCBiZSBhIFN0cmluZyBoYXNoIGxpa2UgdGhlIHVzZWQgaW4gcmVxdWVzdCBib2R5IHRhZ3MuIERlZmF1bHQ6ICJ7IG1lc3NhZ2U6IFN0cmluZyB9IgoKIyMgVXNhZ2UKCkluIGFkZGl0aW9uIHRvIHRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBpbiB0aGUgaW5pdGlhbGl6ZXIgZmlsZSBhbmQgdGhlIGRhdGEgdGhhdCBjYW4gYmUgZXh0cmFjdGVkIGZyb20gdGhlIHJvdXRlcyBhbmQgbWV0aG9kcyBhdXRvbWF0aWNhbGx5LCBpdCBpcyBlc3NlbnRpYWwgdG8gZG9jdW1lbnQgeW91ciBBUEkgaW4gdGhlIGZvbGxvd2luZyB3YXkuIFRoZSBkb2N1bWVudGF0aW9uIGlzIGNyZWF0ZWQgKip3aXRoIHRoZSBoZWxwIG9mIFlBUkQqKiwgc28gdGhlIG1ldGhvZHMgYXJlIGRvY3VtZW50ZWQgd2l0aCAqKmNvbW1lbnQgdGFncyoqLgoKIyMjIERvY3VtZW50aW5nIFlvdXIgRW5kcG9pbnRzCgpBbG1vc3QgZXZlcnkgZGVzY3JpcHRpb24gaW4gYW4gT0FTIGZpbGUgc3VwcG9ydHMgc2ltcGxlIG1hcmtkb3duLiBUaGUgZm9sbG93aW5nIHRhZ3MgYXJlIGF2YWlsYWJsZSBmb3IgZG9jdW1lbnRpbmcgeW91ciBlbmRwb2ludHM6Cgo8ZGV0YWlscz4KPHN1bW1hcnkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDEuMmVtOyI+QHN1bW1hcnk8L3N1bW1hcnk+CgoqKlN0cnVjdHVyZSoqOiBgQHN1bW1hcnkgdGV4dGAKClVzZWQgdG8gYWRkIGEgc3VtbWFyeSB0byB0aGUgZW5kcG9pbnQuIEl0IHJlcGxhY2VzIHRoZSBkZWZhdWx0IHN1bW1hcnkvdGl0bGUgb2YgdGhlIGVuZHBvaW50LgoKKipFeGFtcGxlKio6CmAjIEBzdW1tYXJ5IFRoaXMgZW5kcG9pbnQgY3JlYXRlcyBhIFVzZXJgCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KPHN1bW1hcnkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDEuMmVtOyI+QHBhcmFtZXRlcjwvc3VtbWFyeT4KCioqU3RydWN0dXJlKio6IGBAcGFyYW1ldGVyIG5hbWUocG9zaXRpb24pIFt0eXBlXSB0ZXh0YAoKUmVwcmVzZW50cyBhIHBhcmFtZXRlciBmb3IgdGhlIGVuZHBvaW50LiBUaGUgcG9zaXRpb24gY2FuIGJlOiBgaGVhZGVyYCwgYHBhdGhgLCBgY29va2llYCwgb3IgYHF1ZXJ5YC4gVGhlIHR5cGUgc2hvdWxkIGJlIGEgdmFsaWQgUnVieSBjbGFzczogYFN0cmluZ2AsIGBJbnRlZ2VyYCwgYEFycmF5PFN0cmluZz5gLCBldGMuIEFkZCBhIGAhYCBhZnRlciB0aGUgY2xhc3MgdG8gaW5kaWNhdGUgYSByZXF1aXJlZCBwYXJhbWV0ZXIuCgoqKkV4YW1wbGVzKio6CmAjIEBwYXJhbWV0ZXIgcGFnZShxdWVyeSkgW0ludGVnZXJdIFRoZSBwYWdlIG51bWJlci5gCmAjIEBwYXJhbWV0ZXIgc2x1ZyhwYXRoKSBbU3RyaW5nIV0gU2x1ZyBvZiB0aGUgUHJvamVjdC5gCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KPHN1bW1hcnkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDEuMmVtOyI+QHJlcXVlc3RfYm9keTwvc3VtbWFyeT4KCioqU3RydWN0dXJlKio6IGBAcmVxdWVzdF9ib2R5IHRleHQgW3R5cGU8c3RydWN0dXJlPl1gCgpEb2N1bWVudHMgdGhlIHJlcXVlc3QgYm9keSBuZWVkZWQgYnkgdGhlIGVuZHBvaW50LiBUaGUgc3RydWN0dXJlIGlzIG9wdGlvbmFsIGlmIHlvdSBwcm92aWRlIGEgdmFsaWQgQWN0aXZlIFJlY29yZCBjbGFzcy4gVXNlIGAhYCB0byBpbmRpY2F0ZSBhIHJlcXVpcmVkIHJlcXVlc3QgYm9keS4KCioqRXhhbXBsZSoqOgoKYCMgQHJlcXVlc3RfYm9keSBUaGUgdXNlciB0byBiZSBjcmVhdGVkIFshSGFzaHt1c2VyOiBIYXNoe25hbWU6IFN0cmluZywgYWdlOiBJbnRlZ2VyLCBwYXNzd29yZDogU3RyaW5nfX1dYAoKYCMgQHJlcXVlc3RfYm9keSBUaGUgdXNlciB0byBiZSBjcmVhdGVkIFshVXNlcl1gCgpgIyBAcmVxdWVzdF9ib2R5IFRoZSB1c2VyIHRvIGJlIGNyZWF0ZWQgW1VzZXJdYAoKYCMgQHJlcXVlc3RfYm9keSBUaGUgdXNlciB0byBiZSBjcmVhdGVkIFshSGFzaHt1c2VyOiBIYXNoe25hbWU6IFN0cmluZywgYWdlOiBJbnRlZ2VyLCBwYXNzd29yZDogU3RyaW5nLCBzdXJuYW1lczogQXJyYXk8U3RyaW5nPiwgY29vcmRzOiBIYXNoe2xhdDogU3RyaW5nLCBsbmc6IFN0cmluZ319fV1gCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KPHN1bW1hcnkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDEuMmVtOyI+QHJlcXVlc3RfYm9keV9leGFtcGxlPC9zdW1tYXJ5PgoKKipTdHJ1Y3R1cmUqKjogYEByZXF1ZXN0X2JvZHlfZXhhbXBsZSB0ZXh0IFt0eXBlXSBzdHJ1Y3R1cmVgCgpBZGRzIGV4YW1wbGVzIHRvIHRoZSBwcm92aWRlZCByZXF1ZXN0IGJvZHkuCgoqKkV4YW1wbGUqKjoKYCMgQHJlcXVlc3RfYm9keV9leGFtcGxlIEEgY29tcGxldGUgVXNlci4gW0hhc2hdIHt1c2VyOiB7bmFtZTogJ0x1aXMnLCBhZ2U6IDMwLCBwYXNzd29yZDogJ015V2Vha1Bhc3N3b3JkMTIzJ319YAoKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5IHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxLjJlbTsiPkByZXNwb25zZTwvc3VtbWFyeT4KCioqU3RydWN0dXJlKio6IGBAcmVzcG9uc2UgdGV4dChjb2RlKSBbdHlwZTxzdHJ1Y3R1cmU+XWAKCkRvY3VtZW50cyB0aGUgcmVzcG9uc2VzIG9mIHRoZSBlbmRwb2ludCBhbmQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IHJlc3BvbnNlcyBmb3VuZCBieSB0aGUgZW5naW5lLgoKKipFeGFtcGxlKio6CgpgIyBAcmVzcG9uc2UgVXNlciBub3QgZm91bmQgYnkgdGhlIHByb3ZpZGVkIElkKDQwNCkgW0hhc2h7c3VjY2VzczogQm9vbGVhbiwgbWVzc2FnZTogU3RyaW5nfV1gCgpgIyBAcmVzcG9uc2UgVmFsaWRhdGlvbiBlcnJvcnMoNDIyKSBbSGFzaHtzdWNjZXNzOiBCb29sZWFuLCBlcnJvcnM6IEFycmF5PEhhc2h7ZmllbGQ6IFN0cmluZywgdHlwZTogU3RyaW5nLCBkZXRhaWw6IEFycmF5PFN0cmluZz59Pn1dYAoKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5IHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxLjJlbTsiPkByZXNwb25zZV9leGFtcGxlPC9zdW1tYXJ5PgoKKipTdHJ1Y3R1cmUqKjogYEByZXNwb25zZV9leGFtcGxlIHRleHQoY29kZSkgW1N0cmluZyBIYXNoXWAKCkRvY3VtZW50cyByZXNwb25zZSBleGFtcGxlcyBvZiB0aGUgZW5kcG9pbnQgYXNzb2NpYXRlZCB0byBhIHJlc3BvbnNlIGNvZGUuCgoqKkV4YW1wbGUqKjoKCmAjIEByZXNwb25zZV9leGFtcGxlIEludmFsaWRhIEVtYWlsKDQyMikgW3tzdWNjZXNzOiAiZmFsc2UiLCBlcnJvcnM6IFt7ZmllbGQ6ICJlbWFpbCIsIHR5cGU6ICJlbWFpbCIsIGRldGFpbDogWyJJbnZhbGlkIGVtYWlsIl19XSB9XWAKCmAjIEByZXNwb25zZV9leGFtcGxlIElkIG5vdCBleGlzdHMgKDQwNCkgW3tzdWNjZXNzOiAiZmFsc2UiLCBtZXNzYWdlOiAiTm90aGluZyBmb3VuZCB3aXRoIHRoZSBwcm92aWRlZCBJRC4iIH1dYAoKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5IHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxLjJlbTsiPkB0YWc8L3N1bW1hcnk+CgoqKlN0cnVjdHVyZSoqOiBgQHRhZyB0ZXh0YAoKVGFncyB5b3VyIGVuZHBvaW50cy4gWW91IGNhbiBjb21wbGV0ZSB0aGUgdGFnIGRvY3VtZW50YXRpb24gaW4gdGhlIGluaXRpYWxpemVyIGZpbGUgYnkgZGVmaW5pbmcgdGhlc2UgdGFncyBiZWZvcmVoYW5kLiBJdCdzIG5vdCBuZWNlc3NhcnkgZm9yIHRoZSB0YWcgdG8gZXhpc3QgaW4geW91ciBpbml0aWFsaXplciBmaWxlIGJlZm9yZSB1c2UuCgoqKkV4YW1wbGUqKjoKYCMgQHRhZyBVc2Vyc2AKCjwvZGV0YWlscz4KCjxkZXRhaWxzPgo8c3VtbWFyeSBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7IGZvbnQtc2l6ZTogMS4yZW07Ij5Abm9fYXV0aDwvc3VtbWFyeT4KCioqU3RydWN0dXJlKio6IGBAbm9fYXV0aGAKClRoaXMgdGFnIHdpbGwgcmVtb3ZlIGFueSBzZWN1cml0eSByZXF1aXJlbWVudCBmcm9tIHRoZSBlbmRwb2ludC4gVXNlZnVsIHdoZW4gbW9zdCBvZiB5b3VyIGVuZHBvaW50cyByZXF1aXJlIGF1dGhlbnRpY2F0aW9uIGFuZCBvbmx5IGEgZmV3IGRvIG5vdC4oRXg6IExvZ2luLCBSZWdpc3RyYXRpb24uLi4pCgoqKkV4YW1wbGUqKjoKYCMgQG5vX2F1dGhgCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KPHN1bW1hcnkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDEuMmVtOyI+QGF1dGg8L3N1bW1hcnk+CgoqKlN0cnVjdHVyZSoqOiBgQGF1dGggW3R5cGVzXWAKClRoaXMgdGFnIHdpbGwgc2V0IHdoaWNoIHNlY3VyaXR5IG1lY2hhbmlzbXMgY2FuIGJlIHVzZWQgZm9yIHRoZSBlbmRwb2ludC4gVGhlIHNlY3VyaXR5IG1lY2hhbmlzbXMgTVVTVCBiZSBkZWZpbmVkIHByZXZpb3VzbHkgaW4gdGhlIGluaXRpYWxpemVyIGZpbGUuCgoqKkV4YW1wbGUqKjoKYCMgQGF1dGggW2JlYXJlciwgYmFzaWNdYAoKPC9kZXRhaWxzPgoKWW91IGNhbiB1c2UgdGhlc2UgdGFncyBpbiB5b3VyIGNvbnRyb2xsZXIgbWV0aG9kcyB0byBlbmhhbmNlIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLiBSZW1lbWJlciB0byB1c2UgbWFya2Rvd24gZm9ybWF0dGluZyBpbiB5b3VyIGRlc2NyaXB0aW9ucyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5IGluIHRoZSBnZW5lcmF0ZWQgT0FTIGRvY3VtZW50LgoKIyMjIEV4YW1wbGUgb2YgZG9jdW1lbnRlZCBlbmRwb2ludHMKCmBgYHJ1YnkKY2xhc3MgVXNlcnNDb250cm9sbGVyIDwgQXBwbGljYXRpb25Db250cm9sbGVyCiAgYmVmb3JlX2FjdGlvbiA6c2V0X3VzZXIsIG9ubHk6ICVpW3Nob3cgdXBkYXRlIGRlc3Ryb3ldCgogICMgQHN1bW1hcnkgUmV0dXJucyBhIGxpc3Qgb2YgVXNlcnMuCiAgIwogICMgQHBhcmFtZXRlciBvZmZzZXQocXVlcnkpIFtJbnRlZ2VyXSAgVXNlZCBmb3IgcGFnaW5hdGlvbiBvZiByZXNwb25zZSBkYXRhIChkZWZhdWx0OiAyNSBpdGVtcyBwZXIgcmVzcG9uc2UpLiBTcGVjaWZpZXMgdGhlIG9mZnNldCBvZiB0aGUgbmV4dCBibG9jayBvZiBkYXRhIHRvIHJlY2VpdmUuCiAgIyBAcGFyYW1ldGVyIHN0YXR1cyhxdWVyeSkgW0FycmF5PFN0cmluZz5dICAgRmlsdGVyIGJ5IHN0YXR1cy4gKGUuZy4gc3RhdHVzW109aW5hY3RpdmUmc3RhdHVzW109ZGVsZXRlZCkuCiAgIyBAcGFyYW1ldGVyIFgtZnJvbnQoaGVhZGVyKSBbU3RyaW5nXSBIZWFkZXIgZm9yIGlkZW50aWZ5IHRoZSBmcm9udC4KICBkZWYgaW5kZXgKICAgIEB1c2VycyA9IFVzZXIuYWxsCiAgZW5kCgogICMgQHN1bW1hcnkgR2V0IGEgdXNlciBieSBpZC4KICAjIEBhdXRoIFtiZWFyZXJdCiAgIwogICMgVGhpcyBtZXRob2Qgc2hvdyBhIFVzZXIgYnkgSUQuIFRoZSBpZCBtdXN0IGV4aXN0IG9mIG90aGVyIHdheSBpdCB3aWxsIGJlIHJldHVybmluZyBhICoqYDQwNGAqKi4KICAjCiAgIyBAcGFyYW1ldGVyIGlkKHBhdGgpIFtJbnRlZ2VyXSBVc2VkIGZvciBpZGVudGlmeSB0aGUgdXNlci4KICAjIEByZXNwb25zZSBSZXF1ZXN0ZWQgVXNlcigyMDApIFtIYXNoe3VzZXI6IHtuYW1lOiBTdHJpbmcsIGVtYWlsOiBTdHJpbmcsIGNyZWF0ZWRfYXQ6IERhdGVUaW1lIH19XQogICMgQHJlc3BvbnNlIFVzZXIgbm90IGZvdW5kIGJ5IHRoZSBwcm92aWRlZCBJZCg0MDQpIFtIYXNoe3N1Y2Nlc3M6IEJvb2xlYW4sIG1lc3NhZ2U6IFN0cmluZ31dCiAgIyBAcmVzcG9uc2UgWW91IGRvbid0IGhhdmUgdGhlIHJpZ2h0IHBlcm1pc3Npb24gZm9yIGFjY2VzcyB0byB0aGlzIHJlc291cmNlKDQwMykgW0hhc2h7c3VjY2VzczogQm9vbGVhbiwgbWVzc2FnZTogU3RyaW5nfV0KICBkZWYgc2hvdwogICAgcmVuZGVyIGpzb246IEB1c2VyCiAgZW5kCgogICMgQHN1bW1hcnkgQ3JlYXRlIGEgVXNlcgogICMgQG5vX2F1dGgKICAjCiAgIyBAcmVxdWVzdF9ib2R5IFRoZSB1c2VyIHRvIGJlIGNyZWF0ZWQuIEF0IGxlYXN0IGluY2x1ZGUgYW4gYGVtYWlsYC4gWyFVc2VyXQogICMgQHJlcXVlc3RfYm9keV9leGFtcGxlIGJhc2ljIHVzZXIgW0hhc2hdIHt1c2VyOiB7bmFtZTogIkx1aXMiLCBlbWFpbDogImx1aXNAZ21haWwub2NvbSJ9fQogIGRlZiBjcmVhdGUKICAgIEB1c2VyID0gVXNlci5uZXcodXNlcl9wYXJhbXMpCgogICAgaWYgQHVzZXIuc2F2ZQogICAgICByZW5kZXIganNvbjogQHVzZXIsIHN0YXR1czogOmNyZWF0ZWQKICAgIGVsc2UKICAgICAgcmVuZGVyIGpzb246IHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogQHVzZXIuZXJyb3JzIH0sIHN0YXR1czogOnVucHJvY2Vzc2FibGVfZW50aXR5CiAgICBlbmQKICBlbmQKCiAgIyBBIGB1c2VyYCBjYW4gYmUgdXBkYXRlZCB3aXRoIHRoaXMgbWV0aG9kCiAgIyAtIFRoZXJlIGlzIG5vIG9wdGlvbgogICMgLSBJdCBtdXN0IHdvcmsKICAjIEB0YWdzIHVzZXJzLCB1cGRhdGUKICAjIEByZXF1ZXN0X2JvZHkgVXNlciB0byBiZSBjcmVhdGVkIFshSGFzaHt1c2VyOiB7IG5hbWU6IFN0cmluZywgZW1haWw6ICFTdHJpbmcsIGFnZTogSW50ZWdlciwgYXZhaWxhYmxlX2RhdGVzOiBBcnJheTxEYXRlPn19XQogICMgQHJlcXVlc3RfYm9keV9leGFtcGxlIFVwZGF0ZSB1c2VyIFtIYXNoXSB7dXNlcjoge25hbWU6ICJMdWlzIiwgZW1haWw6ICJsdWlzQGdtYWlsLmNvbSJ9fQogICMgQHJlcXVlc3RfYm9keV9leGFtcGxlIENvbXBsZXRlIFVzZXIgW0hhc2hdIHt1c2VyOiB7bmFtZTogIkx1aXMiLCBlbWFpbDogImx1aXNAZ21haWwuY29tIiwgYWdlOiAyMX19CiAgZGVmIHVwZGF0ZQogICAgaWYgQHVzZXIudXBkYXRlKHVzZXJfcGFyYW1zKQogICAgICByZW5kZXIganNvbjogQHVzZXIKICAgIGVsc2UKICAgICAgcmVuZGVyIGpzb246IEB1c2VyLmVycm9ycywgc3RhdHVzOiA6dW5wcm9jZXNzYWJsZV9lbnRpdHkKICAgIGVuZAogIGVuZAoKICAjIEBzdW1tYXJ5IERlbGV0ZSBhIFVzZXIKICAjIERlbGV0ZSBhIHVzZXIgYW5kIGhpcyBhc3NvY2lhdGVkIGRhdGEuCiAgZGVmIGRlc3Ryb3kKICAgIEB1c2VyLmRlc3Ryb3khCiAgICByZWRpcmVjdF90byB1c2Vyc191cmwsIG5vdGljZTogJ1VzZXIgd2FzIHN1Y2Nlc3NmdWxseSBkZXN0cm95ZWQuJywgc3RhdHVzOiA6c2VlX290aGVyCiAgZW5kCgogIHByaXZhdGUKCiAgIyBVc2UgY2FsbGJhY2tzIHRvIHNoYXJlIGNvbW1vbiBzZXR1cCBvciBjb25zdHJhaW50cyBiZXR3ZWVuIGFjdGlvbnMuCiAgZGVmIHNldF91c2VyCiAgICBAdXNlciA9IFVzZXIuZmluZChwYXJhbXNbOmlkXSkKICBlbmQKCiAgIyBPbmx5IGFsbG93IGEgbGlzdCBvZiB0cnVzdGVkIHBhcmFtZXRlcnMgdGhyb3VnaC4KICBkZWYgdXNlcl9wYXJhbXMKICAgIHBhcmFtcy5yZXF1aXJlKDp1c2VyKS5wZXJtaXQoOm5hbWUsIDplbWFpbCkKICBlbmQKZW5kCmBgYAoKIyMgU2VjdXJpbmcgdGhlIE9hc1JhaWxzIEVuZ2luZQoKVG8gc2VjdXJlIHRoZSBPYXNSYWlscyBlbmdpbmUsIHdoaWNoIGV4cG9zZXMgYW4gZW5kcG9pbnQgZm9yIHNob3dpbmcgdGhlIE9BUyBkZWZpbml0aW9uLCB5b3UgY2FuIGNvbmZpZ3VyZSBhdXRoZW50aWNhdGlvbiB0byBlbnN1cmUgdGhhdCBvbmx5IGF1dGhvcml6ZWQgdXNlcnMgaGF2ZSBhY2Nlc3MuIEhlcmUgYXJlIGEgZmV3IG1ldGhvZHMgdG8gYWNoaWV2ZSB0aGlzOgoKIyMjIDEuIFVzaW5nIEJhc2ljIEF1dGhlbnRpY2F0aW9uCgpVc2UgYmFzaWMgYXV0aGVudGljYXRpb24gdG8gcHJvdGVjdCB0aGUgT2FzUmFpbHMgZW5kcG9pbnQuIFlvdSBjYW4gc2V0IHRoaXMgdXAgaW4gYW4gaW5pdGlhbGl6ZXI6CgpgYGBydWJ5CiMgY29uZmlnL2luaXRpYWxpemVycy9vYXNfcmFpbHMucmIKT2FzUmFpbHM6OkVuZ2luZS5taWRkbGV3YXJlLnVzZShSYWNrOjpBdXRoOjpCYXNpYykgZG8gfHVzZXJuYW1lLCBwYXNzd29yZHwKICBBY3RpdmVTdXBwb3J0OjpTZWN1cml0eVV0aWxzLnNlY3VyZV9jb21wYXJlKFJhaWxzLmFwcGxpY2F0aW9uLmNyZWRlbnRpYWxzLm9hc19yYWlsc191c2VybmFtZSwgdXNlcm5hbWUpICYKICAgIEFjdGl2ZVN1cHBvcnQ6OlNlY3VyaXR5VXRpbHMuc2VjdXJlX2NvbXBhcmUoUmFpbHMuYXBwbGljYXRpb24uY3JlZGVudGlhbHMub2FzX3JhaWxzX3Bhc3N3b3JkLCBwYXNzd29yZCkKZW5kCmBgYAoKIyMjIDIuIFVzaW5nIERldmlzZSdzIGBhdXRoZW50aWNhdGVgIEhlbHBlcgoKWW91IGNhbiB1c2UgRGV2aXNlJ3MgYGF1dGhlbnRpY2F0ZWAgaGVscGVyIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgT2FzUmFpbHMgZW5kcG9pbnQuIEZvciBleGFtcGxlLCB5b3UgY2FuIGFsbG93IG9ubHkgYWRtaW4gdXNlcnMgdG8gYWNjZXNzIHRoZSBlbmRwb2ludDoKCmBgYHJ1YnkKIyBjb25maWcvcm91dGVzLnJiCiMgLi4uCmF1dGhlbnRpY2F0ZSA6dXNlciwgLT4odXNlcikgeyB1c2VyLmFkbWluPyB9IGRvCiAgbW91bnQgT2FzUmFpbHM6OkVuZ2luZSwgYXQ6ICcvZG9jcycKZW5kCmBgYAoKIyMjIDMuIEN1c3RvbSBBdXRoZW50aWNhdGlvbgoKVG8gc3VwcG9ydCBjdXN0b20gYXV0aGVudGljYXRpb24sIHlvdSBjYW4gZXh0ZW5kIHRoZSBPYXNSYWlscycgQXBwbGljYXRpb25Db250cm9sbGVyIHVzaW5nIGEgaG9vay4gVGhpcyBhbGxvd3MgeW91IHRvIGFkZCBjdXN0b20gYmVmb3JlIGFjdGlvbnMgdG8gY2hlY2sgZm9yIHNwZWNpZmljIHVzZXIgcGVybWlzc2lvbnM6CgpgYGBydWJ5CiMgY29uZmlnL2luaXRpYWxpemVycy9vYXNfcmFpbHMucmIKCkFjdGl2ZVN1cHBvcnQub25fbG9hZCg6b2FzX3JhaWxzX2FwcGxpY2F0aW9uX2NvbnRyb2xsZXIpIGRvCiAgIyBjb250ZXh0IGhlcmUgaXMgT2FzUmFpbHM6OkFwcGxpY2F0aW9uQ29udHJvbGxlcgoKICBiZWZvcmVfYWN0aW9uIGRvCiAgICByYWlzZSBBY3Rpb25Db250cm9sbGVyOjpSb3V0aW5nRXJyb3IubmV3KCdOb3QgRm91bmQnKSB1bmxlc3MgY3VycmVudF91c2VyJi5hZG1pbj8KICBlbmQKCiAgZGVmIGN1cnJlbnRfdXNlcgogICAgIyBMb2FkIHRoZSBjdXJyZW50IHVzZXIKICAgIFVzZXIuZmluZChzZXNzaW9uWzp1c2VyX2lkXSkgIyBBZGp1c3QgYWNjb3JkaW5nIHRvIHlvdXIgYXV0aGVudGljYXRpb24gbG9naWMKICBlbmQKZW5kCmBgYAoKIyMgQ3VzdG9taXppbmcgdGhlIFZpZXcKClRoZSBPYXNSYWlscyBlbmdpbmUgcHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gZGlzcGxheSB5b3VyIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAoT0FTKSB3aXRoaW4geW91ciBSYWlscyBhcHBsaWNhdGlvbi4gQnkgZGVmYXVsdCwgaXQgaW5jbHVkZXMgYW4gYGluZGV4YCB2aWV3IGluIHRoZSBgT2FzUmFpbHNDb250cm9sbGVyYCB0aGF0IGRpc3BsYXlzIFtSYXBpRG9jXShodHRwczovL3JhcGlkb2N3ZWIuY29tLykgdGhyb3VnaCBhIENETiB3aXRoIGRlZmF1bHQgY29uZmlndXJhdGlvbnMuIFlvdSBjYW4gZWFzaWx5IG92ZXJyaWRlIHRoaXMgdmlldyB0byByZXBsYWNlIFJhcGlEb2MgZW50aXJlbHkgb3IgY29uZmlndXJlIGl0IGRpZmZlcmVudGx5LgoKIyMjIyBPdmVycmlkaW5nIHRoZSBgaW5kZXhgIFZpZXcKClRvIG92ZXJyaWRlIHRoZSBgaW5kZXhgIHZpZXcgcHJvdmlkZWQgYnkgdGhlIE9hc1JhaWxzIGVuZ2luZSwgZm9sbG93IHRoZXNlIHN0ZXBzOgoKMS4gKipDcmVhdGUgdGhlIE92ZXJyaWRlIFZpZXcgRmlsZSoqOiBJbiB5b3VyIGhvc3QgYXBwbGljYXRpb24sIGNyZWF0ZSBhIG5ldyBmaWxlIGF0IHRoZSBwYXRoIGBhcHAvdmlld3Mvb2FzX3JhaWxzL29hc19yYWlscy9pbmRleC5odG1sLmVyYmAuIElmIHRoZSBkaXJlY3RvcmllcyBkbyBub3QgZXhpc3QsIHlvdSB3aWxsIG5lZWQgdG8gY3JlYXRlIHRoZW0uCgoyLiAqKkN1c3RvbWl6ZSB0aGUgVmlldyoqOiBPcGVuIHRoZSBuZXdseSBjcmVhdGVkIGBpbmRleC5odG1sLmVyYmAgZmlsZSBhbmQgYWRkIHlvdXIgY3VzdG9tIEhUTUwgYW5kIEVSQiBjb2RlIHRvIGRpc3BsYXkgdGhlIE9BUyBhcyBkZXNpcmVkLiBZb3UgY2FuIHJlZmVyIHRvIHRoZSBzb3VyY2UgY29kZSBvZiB0aGlzIHByb2plY3QgZm9yIGd1aWRhbmNlLgoKIyMjIyBVc2luZyB0aGUgQ3VzdG9tIFZpZXcKCk9uY2UgdGhlIGN1c3RvbSB2aWV3IGZpbGUgaXMgaW4gcGxhY2UsIFJhaWxzIHdpbGwgYXV0b21hdGljYWxseSB1c2UgaXQgaW5zdGVhZCBvZiB0aGUgdmlldyBwcm92aWRlZCBieSB0aGUgT2FzUmFpbHMgZW5naW5lLiBUaGlzIGFsbG93cyB5b3UgdG8gZnVsbHkgY3VzdG9taXplIHRoZSBwcmVzZW50YXRpb24gb2YgdGhlIE9BUyB3aXRob3V0IG1vZGlmeWluZyB0aGUgZW5naW5lJ3MgY29kZS4KCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2hhdCBtYWtlIHRoZSBvcGVuIHNvdXJjZSBjb21tdW5pdHkgc3VjaCBhbiBhbWF6aW5nIHBsYWNlIHRvIGxlYXJuLCBpbnNwaXJlLCBhbmQgY3JlYXRlLiBBbnkgY29udHJpYnV0aW9ucyB5b3UgbWFrZSBhcmUgKipncmVhdGx5IGFwcHJlY2lhdGVkKiouIElmIHlvdSBoYXZlIGEgc3VnZ2VzdGlvbiB0aGF0IHdvdWxkIG1ha2UgdGhpcyBiZXR0ZXIsIHBsZWFzZSBmb3JrIHRoZSByZXBvIGFuZCBjcmVhdGUgYSBwdWxsIHJlcXVlc3QuIFlvdSBjYW4gYWxzbyBzaW1wbHkgb3BlbiBhbiBpc3N1ZSB3aXRoIHRoZSB0YWcgImVuaGFuY2VtZW50Ii4gRG9uJ3QgZm9yZ2V0IHRvIGdpdmUgdGhlIHByb2plY3QgYSBzdGFy4q2QISBUaGFua3MgYWdhaW4hCgoxLiBGb3JrIHRoZSBQcm9qZWN0CjIuIENyZWF0ZSB5b3VyIEZlYXR1cmUgQnJhbmNoIChgZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUvQW1hemluZ0ZlYXR1cmVgKQozLiBDb21taXQgeW91ciBDaGFuZ2VzIChgZ2l0IGNvbW1pdCAtbSAnQWRkIHNvbWUgQW1hemluZ0ZlYXR1cmUnYCkKNC4gUHVzaCB0byB0aGUgQnJhbmNoIChgZ2l0IHB1c2ggb3JpZ2luIGZlYXR1cmUvQW1hemluZ0ZlYXR1cmVgKQo1LiBPcGVuIGEgUHVsbCBSZXF1ZXN0CgojIyMgUm9hZG1hcCBhbmQgSWRlYXMgZm9yIEltcHJvdmVtZW50CgotIENsZWFuLCBkb2N1bWVudCBhbmQgc3RydWN0dXJlIHRoZSBjb2RlCi0gW3hdIFN1cHBvcnQgZG9jdW1lbnRhdGlvbiBvZiBhdXRoZW50aWNhdGlvbiBtZXRob2RzCi0gRGVmaW5lIEdsb2JhbCBUYWdzL0NvbmZpZ3VyYXRpb24gKGUuZy4sIGNvbW1vbiByZXNwb25zZXMgbGlrZSA0MDQgZXJyb3JzKQotIFBvc3QtcHJvY2VzcyB0aGUgSlNPTiBhbmQgcmVwbGFjZSBjb21tb24gb2JqZWN0cyB3aXRoIHJlZmVyZW5jZXMgdG8gY29tcG9uZW50cwotIENyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlIHdpdGggdGhlIEpTT04gaW4gcHJvZHVjdGlvbiBtb2RlIHRvIGF2b2lkIHJlYnVpbGRpbmcgaXQgb24gZXZlcnkgcmVxdWVzdAotIENyZWF0ZSB0YWdzIGZvciBwb3B1bGFyIGdlbXMgdXNlZCBpbiBBUElzIChlLmcuLCBhIGBAcGFneWAgdGFnIGZvciBjb21tb24gcGFnaW5hdGlvbiBwYXJhbWV0ZXJzKQotIFt4XSBBZGQgYmFzaWMgYXV0aGVudGljYXRpb24gdG8gT0FTIGFuZCBVSSBmb3Igc2VjdXJpdHkgcmVhc29ucyAoU29sdXRpb24gZG9jdW1lbnRlZCwgbm90IG5lZWQgdG8gYmUgbWFuYWdlZCBieSB0aGUgZW5naW5lKQotIEltcGxlbWVudCBhYmlsaXR5IHRvIGRlZmluZSBPQVMgYnkgbmFtZXNwYWNlcyAoZS5nLiwgZ2VuZXJhdGUgT0FTIGZvciBzcGVjaWZpYyByb3V0ZXMgbGlrZSBgL2FwaWAgb3Igc2VwYXJhdGUgdmVyc2lvbnMgVjEgYW5kIFYyKQoKIyMgTGljZW5zZQoKVGhlIGdlbSBpcyBhdmFpbGFibGUgYXMgb3BlbiBzb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbR1BMLTMuMF0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmVuLmh0bWwjbGljZW5zZS10ZXh0KS4K readmeEtag: '"9c7b09bed73ce2aa3b74f68334ad3f620e07fe9f"' readmeLastModified: Thu, 29 Aug 2024 18:36:30 GMT repositoryId: 831796203 description: >- Rails engine for generate automatic interactive documentation in your rails APIs. created: '2024-07-21T16:44:36Z' updated: '2024-09-05T11:42:36Z' language: Ruby archived: false stars: 50 watchers: 3 forks: 2 owner: a-chacon logo: https://avatars.githubusercontent.com/u/39093711?v=4 license: GPL-3.0 repoEtag: '"d7550cd20fd9cd197b5ae517018f62c167622f49015f92b6d78d24f7ab3c361b"' repoLastModified: Thu, 05 Sep 2024 11:42:36 GMT category: Parsers foundInMaster: true - source: openapi31 tags repository: https://github.com/x52dev/oas3-rs v3_1: true id: 652ad18d642d9b05bb22ef2bacf1d425 repositoryMetadata: base64Readme: >- IyBPQVMzCgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KClshW2NyYXRlcy5pb10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvdi9vYXMzP2xhYmVsPWxhdGVzdCldKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9vYXMzKQpbIVtEb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MucnMvb2FzMy9iYWRnZS5zdmc/dmVyc2lvbj0wLjEwLjApXShodHRwczovL2RvY3MucnMvb2FzMy8wLjEwLjApClshW2RlcGVuZGVuY3kgc3RhdHVzXShodHRwczovL2RlcHMucnMvY3JhdGUvb2FzMy8wLjEwLjAvc3RhdHVzLnN2ZyldKGh0dHBzOi8vZGVwcy5ycy9jcmF0ZS9vYXMzLzAuMTAuMCkKIVtNSVQgb3IgQXBhY2hlIDIuMCBsaWNlbnNlZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvbC9vYXMzLnN2ZykKPGJyIC8+ClshW0NJXShodHRwczovL2dpdGh1Yi5jb20veDUyZGV2L29hczMvYWN0aW9ucy93b3JrZmxvd3MvY2kueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS94NTJkZXYvb2FzMy9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC94NTJkZXYvb2FzMy9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gveDUyZGV2L29hczMpCiFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvbXNydi9vYXMzLnN2ZykKWyFbRG93bmxvYWRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL2Qvb2FzMy5zdmcpXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvb2FzMykKCjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gY2FyZ28tcmRtZSBzdGFydCAtLT4KClN0cnVjdHVyZXMgYW5kIHRvb2xzIHRvIHBhcnNlLCBuYXZpZ2F0ZSBhbmQgdmFsaWRhdGUgW09wZW5BUEkgdjMuMV0gc3BlY2lmaWNhdGlvbnMuCgpOb3RlIHRoYXQgZHVlIHRvIHYzLjEgYmVpbmcgYSBicmVha2luZyBjaGFuZ2UgZnJvbSB2My4wLCB5b3UgbWF5IGhhdmUgdHJvdWJsZSBjb3JyZWN0bHkgcGFyc2luZwpzcGVjcyBpbiB0aGUgb2xkZXIgZm9ybWF0LgoKIyMgRXhhbXBsZQoKYGBgcnVzdAptYXRjaCBvYXMzOjpmcm9tX3BhdGgoInBhdGgvdG8vb3BlbmFwaS55bWwiKSB7CiAgT2soc3BlYykgPT4gcHJpbnRsbiEoInNwZWM6IHs6P30iLCBzcGVjKSwKICBFcnIoZXJyKSA9PiBwcmludGxuISgiZXJyb3I6IHt9IiwgZXJyKQp9CmBgYAoKW09wZW5BUEkgdjMuMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvSEVBRC92ZXJzaW9ucy8zLjEuMC5tZAoKPCEtLSBjYXJnby1yZG1lIGVuZCAtLT4K readmeEtag: '"fcee9b78e7d3f7c7982eff0d376e69a9e84e270c"' readmeLastModified: Fri, 30 Aug 2024 03:53:48 GMT repositoryId: 303455500 description: >- Structures and tools to parse, navigate and validate OpenAPI v3.1 specifications. created: '2020-10-12T16:49:47Z' updated: '2024-09-02T03:05:22Z' language: Rust archived: false stars: 32 watchers: 4 forks: 13 owner: x52dev logo: https://avatars.githubusercontent.com/u/140988044?v=4 license: MIT repoEtag: '"e47922e6b30e8eeac6432b2194122e7468f9ff817942ce24b6c2f43cd9f83ef8"' repoLastModified: Mon, 02 Sep 2024 03:05:22 GMT category: Parsers foundInMaster: true - source: openapi31 tags repository: https://github.com/andrewwalsh/at-your-service v3: false id: 4306c9c5ce54843afcd1be9822783721 repositoryMetadata: base64Readme: >- PCEtLSBJbXByb3ZlZCBjb21wYXRpYmlsaXR5IG9mIGJhY2sgdG8gdG9wIGxpbms6IFNlZTogaHR0cHM6Ly9naXRodWIuY29tL290aG5laWxkcmV3L0Jlc3QtUkVBRE1FLVRlbXBsYXRlL3B1bGwvNzMgLS0+Cgo8YSBuYW1lPSJyZWFkbWUtdG9wIj48L2E+CgpbIVtNSVQgTGljZW5zZV1bbGljZW5zZS1zaGllbGRdXVtsaWNlbnNlLXVybF0KPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvYXQteW91ci1zZXJ2aWNlIj48aW1nIGFsdD0ibnBtIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvYXQteW91ci1zZXJ2aWNlP3N0eWxlPWZvci10aGUtYmFkZ2UiPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9hdHlvdXJzZXJ2aWNlLmF3YWxzaC5pby8iPjxpbWcgYWx0PSJucG0iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9WaWV3JTIwLUxpdmUlMjBEZW1vLTQyMjY2Mj9zdHlsZT1mb3ItdGhlLWJhZGdlIj48L2E+Cgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlL2FjdGlvbnMiPjxpbWcgYWx0PSJucG0iIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL0FuZHJld1dhbHNoL2F0LXlvdXItc2VydmljZS9hY3Rpb25zL3dvcmtmbG93cy9ub2RlLmpzLnltbC9iYWRnZS5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL0FuZHJld1dhbHNoL2F0LXlvdXItc2VydmljZS90ZXN0X2NvdmVyYWdlIj48aW1nIHNyYz0iaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy81NmZhMWY5OWRhNzUwOTczNWNlZS90ZXN0X2NvdmVyYWdlIiAvPjwvYT4KCjwhLS0gUFJPSkVDVCBMT0dPIC0tPgo8YnIgLz4KPGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlIj4KICAgIDxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlL21haW4vcmVzb3VyY2VzL2xvZ28tZmxvb3IucG5nIiBhbHQ9IkxvZ28iPgogIDwvYT4KCiAgPGJyIC8+CiAgPGgyIGFsaWduPSJjZW50ZXIiPmF0LXlvdXItc2VydmljZTwvaDI+CiAgPGJyIC8+CgogIDxwIGFsaWduPSJjZW50ZXIiPgogICAgPGJsb2NrcXVvdGU+CiAgICAgICAgQSBkZXZlbG9wZXIgdG9vbCBmb3IgQVBJIG9ic2VydmFiaWxpdHkgb24gdGhlIGJyb3dzZXIuIEdlbmVyYXRlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgYW5kIGNvZGUgZnJvbSBuZXR3b3JrIHRyYWZmaWMKICAgICAgICA8YnIgLz4KICAgICAgICA8YnIgLz4KICAgICAgICBEZXNpZ25lZCBmb3IgZWFzZSBvZiB1c2UuIE5vIG5lZWQgdG8gaW50ZWdyYXRlIHdpdGggZXhpc3RpbmcgY29kZQogICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgIDxiciAvPgogICAgICA8YnIgLz4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hdHlvdXJzZXJ2aWNlLmF3YWxzaC5pby8iPlZpZXcgdGhlIExpdmUgRGVtbzwvYT4KICAgICAgPGJyIC8+CiAgICAgIDxiciAvPgogICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlL2lzc3VlcyI+UmVwb3J0IEJ1ZzwvYT4KICAgICAgwrcKICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvYXQteW91ci1zZXJ2aWNlIj5WaWV3IG9uIG5wbTwvYT4KICAgICAgwrcKICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1TLUJYcGdoYUViMCI+WW91VHViZSBEZW1vPC9hPgogIDwvcD4KPC9kaXY+Cgo8YnIgLz4KPGhyIC8+CjxiciAvPgoKPCEtLSBUQUJMRSBPRiBDT05URU5UUyAtLT4KCjxkZXRhaWxzIG9wZW4+CiAgPHN1bW1hcnk+VGFibGUgb2YgQ29udGVudHM8L3N1bW1hcnk+CiAgPG9sPgogICAgPGxpPgogICAgICA8YSBocmVmPSIjYWJvdXQtdGhlLXByb2plY3QtYW5kLXdoeSI+QWJvdXQgdGhlIFByb2plY3QgYW5kIFdoeTwvYT4KICAgIDwvbGk+CiAgICA8bGk+CiAgICAgIDxhIGhyZWY9IiNmZWF0dXJlcyI+RmVhdHVyZXM8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICA8YSBocmVmPSIjZ2V0dGluZy1zdGFydGVkIj5HZXR0aW5nIFN0YXJ0ZWQ8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICA8YSBocmVmPSIjaG93LWl0LXdvcmtzIj5Ib3cgSXQgV29ya3M8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICA8YSBocmVmPSIjY29udHJpYnV0aW5nIj5Db250cmlidXRpbmc8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICA8YSBocmVmPSIjbGltaXRhdGlvbnMiPkxpbWl0YXRpb25zPC9hPgogICAgPC9saT4KICAgIDxsaT4KICAgICAgPGEgaHJlZj0iI2xpY2Vuc2UiPkxpY2Vuc2U8L2E+CiAgICA8L2xpPgogIDwvb2w+CjwvZGV0YWlscz4KCjxiciAvPgoKPCEtLSBBQk9VVCBUSEUgUFJPSkVDVCBBTkQgV0hZIC0tPgoKIyMgQWJvdXQgdGhlIFByb2plY3QgYW5kIFdoeQoKPGEgaHJlZj0iaHR0cHM6Ly9hdHlvdXJzZXJ2aWNlLmF3YWxzaC5pby8iPjxpbWcgYWx0PSJucG0iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9WaWV3JTIwLUxpdmUlMjBEZW1vLTQyMjY2MiI+PC9hPgoKClRoaXMgdG9vbCBpcyBkZXNpZ25lZCB0byBoZWxwIHRhY2tsZSBwcm9ibGVtcyB0aGF0IGFyaXNlIGZyb20gYSBsYWNrIG9mIGF3YXJlbmVzcyBvbiBBUEkgYmVoYXZpb3VyLgoKSXQgcmVjb3JkcyBuZXR3b3JrIHJlcXVlc3RzIHVuZGVyIHRoZSBob29kIHVzaW5nIGEgc2VydmljZSB3b3JrZXIgcHJveHkuIEFzIHRoZSB0b29sIG1ha2VzIG9ic2VydmF0aW9ucyBvZiBuZXR3b3JrIHRyYWZmaWMgb3ZlciB0aW1lLCBpdCBsZWFybnMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgdW5kZXJseWluZyBBUEkuCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gRkVBVFVSRVMgLS0+CgojIyBGZWF0dXJlcwoKLSAqKlNwZWMgZ2VuKio6IGF1dG9nZW5lcmF0ZSBbT3BlbkFQSSAzLjFdKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy9ibG9nLzIwMjEvMDIvMTgvb3BlbmFwaS1zcGVjaWZpY2F0aW9uLTMtMS1yZWxlYXNlZCkgc3BlY2lmaWNhdGlvbnMgZnJvbSBuZXR3b3JrIHRyYWZmaWMKLSAqKkNvZGUgZ2VuKio6IFtjb252ZXJ0XShodHRwczovL2dpdGh1Yi5jb20vcXVpY2t0eXBlL3F1aWNrdHlwZSkgbmV0d29yayByZXNwb25zZSBib2RpZXMgaW50byBjb2RlIGZvciAxMCsgbGFuZ3VhZ2VzIGluY2x1ZGluZyBUeXBlU2NyaXB0LCBQeXRob24sIGFuZCBKU09OIFNjaGVtYQotICoqQVBJIE9ic2VydmFiaWxpdHkqKjogZXhwbG9yZSB0aGUgbmV0d29yayBsYXllciB3aXRoIGVuaGFuY2VkIHRvb2xpbmcKLSAqKkVhc3kgaW5zdGFsbGF0aW9uKio6IGRlc2lnbmVkIHRvIHBsdWcgaW4gYW5kIGdvIHdpdGggYW4gZXhpc3RpbmcgYXBwbGljYXRpb24KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiNyZWFkbWUtdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKPCEtLSBHRVRUSU5HIFNUQVJURUQgLS0+CgojIyBHZXR0aW5nIFN0YXJ0ZWQKCmBhdC15b3VyLXNlcnZpY2VgIGZlYXR1cmVzIGEgQ0xJIHRvb2wgdGhhdCBwbGFjZXMgaXRzIHNlcnZpY2Ugd29ya2VyIGZpbGUgaW50byBhIGRpcmVjdG9yeS4gWW91IGxpa2VseSB3aXNoIHRvIHBsYWNlIHRoaXMgaW4gYHB1YmxpY2Agb3IgYHN0YXRpY2AuIFNlZSBbbW9yZSBpbmZvcm1hdGlvbiBoZXJlXShodHRwczovL21zd2pzLmlvL2RvY3MvZ2V0dGluZy1zdGFydGVkL2ludGVncmF0ZS9icm93c2VyI3doZXJlLWlzLW15LXB1YmxpYy1kaXJlY3RvcnkpIG9uIGNvbW1vbiBsb2NhdGlvbnMgZm9yIHN0YXRpYyBmaWxlcy4KClRoZSBzZXJ2aWNlIHdvcmtlciBtdXN0IGJlIHNlcnZlZCBmcm9tIHRoZSByb290IG9mIHlvdXIgc2l0ZS4gT25jZSB0aGlzIGlzIGluc3RhbGxlZCBydW4gdGhlIHN0YXJ0IHNjcmlwdCBpbiB5b3VyIGFwcGxpY2F0aW9uIGNvZGUuCgoxLiBJbnN0YWxsIHRoZSBucG0gcGFja2FnZQogICBgYGBzaAogICBucG0gaW5zdGFsbCAtRCBhdC15b3VyLXNlcnZpY2VAbGF0ZXN0CiAgIGBgYAoyLiBBZGQgc2VydmljZSB3b3JrZXIgdG8geW91ciBgcHVibGljYCwgYHN0YXRpY2AsIG9yIG90aGVyd2lzZSByb290IGRpcmVjdG9yeQogICBgYGBzaAogICBucHggYXQteW91ci1zZXJ2aWNlQGxhdGVzdCA8ZGlyZWN0b3J5PgogICBgYGAKMy4gUnVuIHRoZSBzdGFydCBzY3JpcHQgaW4geW91ciBhcHBsaWNhdGlvbgoKICAgYGBgdHMKICAgaW1wb3J0IHsgc3RhcnRBdFlvdXJTZXJ2aWNlIH0gZnJvbSAiYXQteW91ci1zZXJ2aWNlIjsKCiAgIHN0YXJ0QXRZb3VyU2VydmljZSgpOwogICBgYGAKCjQuIEEgYnV0dG9uIHRvIG9wZW4gdGhlIGRyYXdlciB3aWxsIGJlIHZpc2libGUgb24geW91ciBzaXRlCjUuIFlvdSBjYW4gdmlldyBjb3BpZWQgT3BlbkFQSSAzLjEgc3BlY2lmaWNhdGlvbnMgaW4gW2VkaXRvci1uZXh0LnN3YWdnZXIuaW9dKGh0dHBzOi8vZWRpdG9yLW5leHQuc3dhZ2dlci5pby8pLiBBdCB0aGUgdGltZSBvZiB3cml0aW5nLCB5b3UgbmVlZCB0byBtYW51YWxseSBjaGFuZ2UgdGhlIHZlcnNpb24gZnJvbSBgMy4xLjBgIHRvIGAzLjAuMGAgYWZ0ZXIgcGFzdGluZyB0aGUgc3BlY2lmaWNhdGlvbi4gU3VwcG9ydCBmb3IgdGhlIG5ldyB2ZXJzaW9uIG9mIHRoZSBzcGVjaWZjYXRpb24gaXMgYW4gb25nb2luZyBwcm9jZXNzCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gSE9XIElUIFdPUktTIC0tPgoKIyMgSG93IEl0IFdvcmtzCgpNb3JlIGluZm9ybWF0aW9uIG9uIHRoZSByYXRpb25hbGUsIGZ1bmN0aW9uYWxpdHksIGFuZCBhcmNoaXRlY3R1cmUgb2YgdGhlIHRvb2wgW2NhbiBiZSBmb3VuZCBoZXJlXShodHRwczovL2F3YWxzaC5pby9wb3N0cy9kZXZlbG9wZXItdG9vbC1hcGktZGlzY292ZXJ5LW9ic2VydmFiaWxpdHktZnJvbnRlbmQvKS4KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiNyZWFkbWUtdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKPCEtLSBDT05UUklCVVRJTkcgLS0+CgojIyBDb250cmlidXRpbmcKCkEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgZXhpc3RzIGluIGBkZW1vYCwgd2hpY2ggd2hlbiBidWlsdCBpcyB0aGUgbGFuZGluZyBwYWdlIGZvciB0aGUgbGlicmFyeS4KCklmIHlvdSBoYXZlIGEgc3VnZ2VzdGlvbiB0aGF0IHdvdWxkIG1ha2UgdGhpcyBiZXR0ZXIsIHBsZWFzZSBmb3JrIHRoZSByZXBvIGFuZCBjcmVhdGUgYSBwdWxsIHJlcXVlc3QuCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gTElNSVRBVElPTlMgLS0+CgojIyBMaW1pdGF0aW9ucwoKVGhlIGxpYnJhcnkgY3JlYXRlcyBzcGVjaWZpY2F0aW9ucyB0aGF0IGFyZSBvbmx5IGFzIGFjY3VyYXRlIGFzIHRoZSB1bmRlcmx5aW5nIG9ic2VydmF0aW9ucy4gSWYgeW91ciBhcHBsaWNhdGlvbiByZWxpZXMgb24gYSByZXNwb25zZSBib2R5IHRoYXQgaGFzIG5vdCBiZWVuIG9ic2VydmVkLCB0aGVuIHR5cGUgaW5mb3JtYXRpb24gZm9yIGl0IHdpbGwgbm90IGJlIGF2YWlsYWJsZS4KCk92ZXJhbGwgdGhlIGludGVudCBpcyB0byBwcm9kdWNlIGEgKmJlc3QgZ3Vlc3MqIHRoYXQgcmV2ZWFscyBBUEkgYmVoYXZpb3VyLiBUaGlzIHdpbGwgbmV2ZXIgYmUgYSByZXBsYWNlbWVudCBmb3IgcHJvcGVyIGRvY3VtZW50YXRpb24uCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjcmVhZG1lLXRvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gTElDRU5TRSAtLT4KCiMjIExpY2Vuc2UKCkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIGBMSUNFTlNFYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiNyZWFkbWUtdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKPCEtLSBNQVJLRE9XTiBMSU5LUyAmIElNQUdFUyAtLT4KPCEtLSBodHRwczovL3d3dy5tYXJrZG93bmd1aWRlLm9yZy9iYXNpYy1zeW50YXgvI3JlZmVyZW5jZS1zdHlsZS1saW5rcyAtLT4KCltjb250cmlidXRvcnMtc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvY29udHJpYnV0b3JzL0FuZHJld1dhbHNoL2F0LXlvdXItc2VydmljZS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZQpbY29udHJpYnV0b3JzLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9BbmRyZXdXYWxzaC9hdC15b3VyLXNlcnZpY2UvZ3JhcGhzL2NvbnRyaWJ1dG9ycwpbZm9ya3Mtc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZm9ya3MvQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlCltmb3Jrcy11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlL25ldHdvcmsvbWVtYmVycwpbc3RhcnMtc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvc3RhcnMvQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlCltzdGFycy11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlL3N0YXJnYXplcnMKW2lzc3Vlcy1zaGllbGRdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9pc3N1ZXMvQW5kcmV3V2Fsc2gvYXQteW91ci1zZXJ2aWNlLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlCltpc3N1ZXMtdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL0FuZHJld1dhbHNoL2F0LXlvdXItc2VydmljZS9pc3N1ZXMKW2xpY2Vuc2Utc2hpZWxkXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9BbmRyZXdXYWxzaC9hdC15b3VyLXNlcnZpY2Uuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UKW2xpY2Vuc2UtdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL0FuZHJld1dhbHNoL2F0LXlvdXItc2VydmljZS9ibG9iL21hc3Rlci9MSUNFTlNFCg== readmeEtag: '"2d772b63d454663f3137fb9de442d1300338f385"' readmeLastModified: Sun, 10 Sep 2023 00:55:38 GMT repositoryId: 564572432 description: >- Generate OpenAPI 3.1 specifications from network requests in browser environments created: '2022-11-11T02:02:37Z' updated: '2024-07-09T03:47:38Z' language: TypeScript archived: true stars: 13 watchers: 3 forks: 3 owner: AndrewWalsh logo: https://avatars.githubusercontent.com/u/15863952?v=4 license: MIT repoEtag: '"eaa4e6368c080267fe5eda56f7a567335a59ee8be85216f9e38383ff636c5e00"' repoLastModified: Tue, 09 Jul 2024 03:47:38 GMT foundInMaster: true v3_1: true name: at-your-service link: https://atyourservice.awalsh.io/ language: TypeScript source_description: > A developer tool for API observability on the browser. Generate OpenAPI specifications and code from network traffic v2: false category: Server Implementations - source: openapi31 tags repository: https://github.com/up9inc/oas-diff v3_1: true repositoryMetadata: base64Readme: >- WyFbYWNjZXB0YW5jZSB0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL3VwOWluYy9vYXMtZGlmZi9hY3Rpb25zL3dvcmtmbG93cy9hY2NlcHRhbmNlX3Rlc3RzLnltbC9iYWRnZS5zdmc/YnJhbmNoPWRldmVsb3ApXShodHRwczovL2dpdGh1Yi5jb20vdXA5aW5jL29hcy1kaWZmL2FjdGlvbnMvd29ya2Zsb3dzL2FjY2VwdGFuY2VfdGVzdHMueW1sKQojIE9BUy1ESUZGIApPQVMgMy4xIFZhbGlkYXRpb24gYW5kIERpZmYgVG9vbAoKIyMgRGVwZW5kZW5jaWVzCi0gR2l0Ci0gTWFrZQotIEdvIDEuMTgrCgojIyBCdWlsZAotIEJ1aWxkCiAgICBgYGBgCiAgICBtYWtlIGJ1aWxkCiAgICBgYGBgCi0gUnVuCiAgICBgYGBgCiAgICAuL2J1aWxkL29hc2RpZmYgLS12ZXJzaW9uCiAgICBgYGBgCiMjIE9wdGlvbnMKLSBWYWxpZGF0ZQogICAgYGBgYAogICAgLS1iYXNlLWZpbGUgdmFsdWUsIC0tZjEgdmFsdWUgICAgcGF0aCBvZiB0aGUgYmFzZSBPQVMgMy4xIGZpbGUKICAgIC0taGVscCwgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3cgaGVscCAoZGVmYXVsdDogZmFsc2UpCiAgIGBgYGAKLSBEaWZmCiAgICBgYGBgCiAgICAtLWJhc2UtZmlsZSB2YWx1ZSwgLS1mMSB2YWx1ZSAgICBwYXRoIG9mIHRoZSBiYXNlIE9BUyAzLjEgZmlsZQogICAgLS1zZWNvbmQtZmlsZSB2YWx1ZSwgLS1mMiB2YWx1ZSAgcGF0aCBvZiB0aGUgc2Vjb25kIE9BUyAzLjEgZmlsZQogICAgLS10eXBlLWZpbHRlciB2YWx1ZSwgLS10ZiB2YWx1ZSAgY2hhbmdlbG9nIFR5cGUgZmlsdGVyIChjcmVhdGUvdXBkYXRlL2RlbGV0ZSkKICAgIC0tb3V0cHV0LWh0bWwsIC0tb2ggICAgICAgICAgICAgIHNhdmUgYW4gaHRtbCByZXBvcnQgKGRlZmF1bHQ6IGZhbHNlKQogICAgLS1vdXRwdXQtZW5kcG9pbnQsIC0tb2UgICAgICAgICAgZW5kcG9pbnQgYmFzZWQgY2hhbmdlbG9nIG91dHB1dCAoZGVmYXVsdDogZmFsc2UpCiAgICAtLWxvb3NlLCAtbCAgICAgICAgICAgICAgICAgICAgICBsb29zZWx5IGRpZmYsIGlnbm9yZXMgZ2xvYmFsIGNhc2Ugc2Vuc2l0aXZpdHkgZm9yIHN0cmluZ3MgY29tcGFyaXNvbnMgYW5kIGlnbm9yZSBoZWFkZXJzIHRoYXQgc3RhcnQgd2l0aCAneC0nIGFuZCAndXNlci1hZ2VudCcgKGRlZmF1bHQ6IGZhbHNlKQogICAgLS1pbmNsdWRlLWZpbGUtcGF0aCwgLS1pZnAgICAgICAgd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZnVsbCBmaWxlIHBhdGggZnJvbSB0aGUgZGlmZiBjaGFuZ2Vsb2cgKGRlZmF1bHQ6IGZhbHNlKQogICAgLS1pZ25vcmUtZGVzY3JpcHRpb25zLCAtLWlkICAgICAgd2hldGhlciBvciBub3QgdG8gaWdub3JlIGRlc2NyaXB0aW9ucyB3aGVuIHBlcmZvcm1pbmcgdGhlIGRpZmYgKGRlZmF1bHQ6IGZhbHNlKQogICAgLS1pZ25vcmUtZXhhbXBsZXMsIC0taWUgICAgICAgICAgd2hldGhlciBvciBub3QgdG8gaWdub3JlIGV4YW1wbGVzIHdoZW4gcGVyZm9ybWluZyB0aGUgZGlmZiAoZGVmYXVsdDogZmFsc2UpCiAgICAtLWhlbHAsIC1oICAgICAgICAgICAgICAgICAgICAgICBzaG93IGhlbHAgKGRlZmF1bHQ6IGZhbHNlKQogICAgYGBgYAojIyBFeGFtcGxlcwotIFZlcnNpb24KICAgIGBgYGAKICAgIC4vYnVpbGQvb2FzZGlmZiAtdgogICAgYGBgYAotIEF2YWlsYWJsZSBDb21tYW5kcwogICAgYGBgYAogICAgLi9idWlsZC9vYXNkaWZmCiAgICBgYGBgCi0gVmFsaWRhdGUKICAgIGBgYGAKICAgIC4vYnVpbGQvb2FzZGlmZiB2YWxpZGF0ZSAtLWJhc2UtZmlsZSBleGFtcGxlcy9pbnZhbGlkLmpzb24KICAgIC4vYnVpbGQvb2FzZGlmZiB2YWxpZGF0ZSAtLWYxIGV4YW1wbGVzL2ludmFsaWQuanNvbgogICAgYGBgYAotIERpZmYKICAgIGBgYGAKICAgIC4vYnVpbGQvb2FzZGlmZiBkaWZmIC0tYmFzZS1maWxlIGV4YW1wbGVzL3NpbXBsZS5qc29uIC0tc2Vjb25kLWZpbGUgZXhhbXBsZXMvc2ltcGxlMi5qc29uCiAgICAuL2J1aWxkL29hc2RpZmYgZGlmZiAtLWJhc2UtZmlsZSBleGFtcGxlcy9zaW1wbGUuanNvbiAtLXNlY29uZC1maWxlIGV4YW1wbGVzL3NpbXBsZTIuanNvbiAtLWxvb3NlCiAgICAuL2J1aWxkL29hc2RpZmYgZGlmZiAtLWYxIGV4YW1wbGVzL3NpbXBsZS5qc29uIC0tZjIgZXhhbXBsZXMvc2ltcGxlMi5qc29uIC0tdHlwZS1maWx0ZXIgY3JlYXRlCiAgICAuL2J1aWxkL29hc2RpZmYgZGlmZiAtLWYxIGV4YW1wbGVzL3NpbXBsZS5qc29uIC0tZjIgZXhhbXBsZXMvc2ltcGxlMi5qc29uIC0tdHlwZS1maWx0ZXIgdXBkYXRlCiAgICAuL2J1aWxkL29hc2RpZmYgZGlmZiAtLWYxIGV4YW1wbGVzL3NpbXBsZS5qc29uIC0tZjIgZXhhbXBsZXMvc2ltcGxlMi5qc29uIC0tdHlwZS1maWx0ZXIgZGVsZXRlCiAgICAuL2J1aWxkL29hc2RpZmYgZGlmZiAtLWYxIGV4YW1wbGVzL3NpbXBsZS5qc29uIC0tZjIgZXhhbXBsZXMvc2ltcGxlMi5qc29uIC0taWdub3JlLWRlc2NyaXB0aW9ucwogICAgLi9idWlsZC9vYXNkaWZmIGRpZmYgLS1mMSBleGFtcGxlcy9zaW1wbGUuanNvbiAtLWYyIGV4YW1wbGVzL3NpbXBsZTIuanNvbiAtLWlnbm9yZS1leGFtcGxlcwogICAgLi9idWlsZC9vYXNkaWZmIGRpZmYgLS1mMSBleGFtcGxlcy9zaW1wbGUuanNvbiAtLWYyIGV4YW1wbGVzL3NpbXBsZTIuanNvbiAtLWxvb3NlIC0taWdub3JlLWRlc2NyaXB0aW9ucyAtLWlnbm9yZS1leGFtcGxlcwogICAgLi9idWlsZC9vYXNkaWZmIGRpZmYgLS1mMSBleGFtcGxlcy9zaW1wbGUuanNvbiAtLWYyIGV4YW1wbGVzL3NpbXBsZTIuanNvbiAtLW91dHB1dC1odG1sCiAgICAuL2J1aWxkL29hc2RpZmYgZGlmZiAtLWYxIGV4YW1wbGVzL3NpbXBsZS5qc29uIC0tZjIgZXhhbXBsZXMvc2ltcGxlMi5qc29uIC0tb3V0cHV0LWVuZHBvaW50CiAgICAuL2J1aWxkL29hc2RpZmYgZGlmZiAtLWYxIGV4YW1wbGVzL3NpbXBsZS5qc29uIC0tZjIgZXhhbXBsZXMvc2ltcGxlMi5qc29uIC0tb3V0cHV0LWVuZHBvaW50IC0tb3V0cHV0LWh0bWwgLS10eXBlLWZpbHRlciB1cGRhdGUKICAgIGBgYGAKCiMjIEFycmF5IElkZW50aWZpZXJzCiBBcnJheSBpZGVudGlmaWVycyBhcmUgdXNlZCBvbmx5IGZvciBhcnJheXMgdG8gY29tcGFyZSBhcnJheXMgYnkgYSBtYXRjaGluZyBpZGVudGlmaWVyIGFuZCBub3QgYmFzZWQgb24gb3JkZXIuIElmIGFuIGlkZW50aWZpYWJsZSBlbGVtZW50IGlzIGZvdW5kIGluIGJvdGggdGhlIGZyb20gYW5kIHRvIHN0cnVjdHVyZXMsIHRoZXkgd2lsbCBiZSBkaXJlY3RseSBjb21wYXJlZAoKLSBTZXJ2ZXJzCiAgICBgYGBgCiAgICBVUkwgICAgICAgICBzdHJpbmcgICAgICAgICAgICAgYGpzb246InVybCxvbWl0ZW1wdHkiIGRpZmY6InVybCxpZGVudGlmaWVyImAKICAgIGBgYGAKLSBUYWdzCiAgICBgYGBgCiAgICBOYW1lICAgICAgICAgc3RyaW5nICAgICAgICBganNvbjoibmFtZSxvbWl0ZW1wdHkiIGRpZmY6Im5hbWUsaWRlbnRpZmllciJgCiAgICBgYGBgCi0gUGFyYW1ldGVycwogICAgYGBgYAogICAgTmFtZSAgICAgICAgIHN0cmluZyAgICAgICAgYGpzb246Im5hbWUsb21pdGVtcHR5IiBkaWZmOiJuYW1lLGlkZW50aWZpZXIiYAogICAgYGBgYAoKIyMgQ2hhbmdlbG9nIFJ1bGVzCi0gQXJyYXlzCiAgICBgYGBgCiAgICBDUkVBVEUvREVMRVRFIC0+IEFsd2F5cyB0aGUgZW50aXJlIGVsZW1lbnQKICAgIFVQREFURSAtPiBPbmx5IHRoZSBwcm9wZXJ0eSwgZXhjZXB0aW9uIGlmIHRoZSBwcm9wZXJ0eSBpcyB0aGUgaWRlbnRpZmllcgogICAgYGBgYAoKIyMgTGltaXRhdGlvbnMKLSBgb3BlbmFwaWAgZmllbGQgaXMgbm90IGEgcGFydCBvZiB0aGUgY2hhbmdlbG9nLCB3ZSBvbmx5IHN1cHBvcnQgT0FTIHZlcnNpb24gMy4xLCBzbyBhbnkgY2hhbmdlcyB3aWxsIGNhdXNlIGEgdmFsaWRhdGlvbiBmYWlsdXJlCi0gYGpzb25TY2hlbWFEaWFsZWN0YCBmaWVsZCBpcyBub3QgYSBwYXJ0IG9mIHRoZSBjaGFuZ2Vsb2csIHdlIG9ubHkgc3VwcG9ydCBPQVMgdmVyc2lvbiAzLjEgYW5kIGl0IHVzZXMgYEpTT04gU2NoZW1hIFZhbGlkYXRpb24gRHJhZnQgMjAyMC0xMmAKLSBgU3BlY2lmaWNhdGlvbiBFeHRlbnNpb25zYCBhcmUgbm90IHN1cHBvcnRlZCAoVE9ETykKLSBgcGFyYW1ldGVyc2AgYXJyYXkgb2YgYFJlZmVyZW5jZSBPYmplY3RgIGFyZSBub3Qgc3VwcG9ydGVkIChUT0RPKQ== readmeEtag: '"bbde2a9d823fdc2d4e23883c3402ef9d76eb4542"' readmeLastModified: Sun, 12 Jun 2022 12:25:54 GMT repositoryId: 457402945 description: OAS 3.1 Validation and Diff CLI Tool created: '2022-02-09T14:54:00Z' updated: '2024-06-10T19:03:18Z' language: Go archived: false stars: 10 watchers: 4 forks: 0 owner: up9inc logo: https://avatars.githubusercontent.com/u/51116998?v=4 repoEtag: '"05219d67b2b26333b74985f6db4604607375324610b5118e4c0d791ac2a911ee"' repoLastModified: Mon, 10 Jun 2024 19:03:18 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: d626b1c63ecbfe1be8f891819fb740bf - source: openapi31 tags repository: https://github.com/hasanqq/openapi-starter v3_1: true id: 831fdb2a0ad33b8049fee532d28cee56 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFN0YXJ0ZXIKClVwZ3JhZGVkIHZlcnNpb24gb2YgUmVkb2NseSdzIFtvcGVuYXBpLXN0YXJ0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L29wZW5hcGktc3RhcnRlcikgcmVwb3NpdG9yeSB3aXRoIHNvbWUgZmVhdHVyZXMgbGlrZToKCi0gICBHZW5lcmF0ZSBwb3N0bWFuIGNvbGxlY3Rpb24gb24gYnVpbGQKLSAgIFZpc3VhbCBpbXByb3ZlbWVudHMgKGZvbnQsIGJvcmRlci1yYWRpdXMsIHBhZGRpbmcgZXRjLikKLSAgIEdpdEh1YiB3b3JrZmxvdyBmb3IgbGludAoKIyMgU2NyZWVuc2hvdAoKIVtTY3JlZW5zaG90XSguLy5naXRodWIvc2NyZWVuc2hvdC5wbmcpCgojIyBDb21tYW5kcwoKTGlzdCBvZiBhdmFpbGFibGUgY29tbWFuZHMuCgp8IENvbW1hbmQgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBgbnBtIHJ1biBkZXZgICAgICB8IFN0YXJ0IGEgZGV2IHNlcnZlciB3aXRoIGF1dG8gcmVmcmVzaC4gfAp8IGBucG0gcnVuIGJ1aWxkYCAgIHwgQnVpbGQgc3RhdGljIGZpbGVzLiAgICAgICAgICAgICAgICAgICB8CnwgYG5wbSBydW4gcHJldmlld2AgfCBQcmV2aWV3IHRoZSBidWlsZGVkIHZlcnNpb24uICAgICAgICAgIHwKfCBgbnBtIHJ1biBsaW50YCAgICB8IENoZWNrIHRoZSBPcGVuQVBJIHNwZWMuICAgICAgICAgICAgICAgfAoKIyMgQ29uZmlndXJhdGlvbgoKTGlzdCBvZiBhdmFpbGFibGUgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKfCBGaWxlICAgICAgICAgICAgICAgICAgICAgfCBEb2N1bWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYHJlZG9jbHkueWFtbGAgICAgICAgICAgIHwgW1ZpZXddKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9yZWRvYy9jb25maWcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgcG9zdG1hbi1jb252ZXJ0ZXIuanNvbmAgfCBbVmlld10oaHR0cHM6Ly9naXRodWIuY29tL3Bvc3RtYW5sYWJzL29wZW5hcGktdG8tcG9zdG1hbi9ibG9iL0hFQUQvT1BUSU9OUy5tZCkgfAo= readmeEtag: '"5f47a86bf2c9357e2d11aab2ee29e99e6acc4b8f"' readmeLastModified: Fri, 23 Aug 2024 16:23:53 GMT repositoryId: 846624183 description: >- API documentation boilerplate for redoc (OpenAPI) with some extra features like automatically generated postman collection. created: '2024-08-23T15:47:58Z' updated: '2024-09-04T08:07:45Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: HasanQQ logo: https://avatars.githubusercontent.com/u/44672191?v=4 repoEtag: '"463504f33be446f59d742193af76c811858b3fa71bab6dbd1593698cc7ab4d18"' repoLastModified: Wed, 04 Sep 2024 08:07:45 GMT category: Server Implementations foundInMaster: true - source: openapi31 tags repository: https://github.com/cedric05/swagger2har v3_1: true id: e5a20892c281663f25c6b50cecd202f7 repositoryMetadata: base64Readme: IyBzd2FnZ2VyMmhhcg== readmeEtag: '"52a2b7aaa2a0ec9d7ff8a336fca1b7ee6edcfccc"' readmeLastModified: Tue, 16 Jul 2024 13:44:05 GMT repositoryId: 829025450 description: null created: '2024-07-15T15:49:19Z' updated: '2024-07-16T13:44:15Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: cedric05 logo: https://avatars.githubusercontent.com/u/11557066?v=4 repoEtag: '"28d50afb174afea4d767a349cd064d021d2655c45857809d80582b80660f248a"' repoLastModified: Tue, 16 Jul 2024 13:44:15 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/devalurum/messenger-system v3: true id: eddf19a5eabf7da6555b7ecd8143127d repositoryMetadata: base64Readme: >- IyBNZXNzZW5nZXIgUkVTVGZ1bCBBUEkKCtCh0LXRgNCy0LXRgNC90LDRjyDRh9Cw0YHRgtGMINC00LjQv9C70L7QvNC90L7QuSDRgNCw0LHQvtGC0Ysg0L/QviDRgtC10LzQtSAKItCg0LDQt9GA0LDQsdC+0YLQutCwINGB0L/RgNCw0LLQvtGH0L3Qvi3QutC+0LzQvNGD0L3QuNC60LDRhtC40L7QvdC90L7QuSDRgdC40YHRgtC10LzRiyDQtNC70Y8g0L/QsNGG0LjQtdC90YLQvtCyINGB0YLQsNGG0LjQvtC90LDRgNCwLiIKCiMjIyDQodGC0Y3QuiDRgtC10YXQvdC+0LvQvtCz0LjQuQotIEphdmEgMTEKLSBTcHJpbmcgQm9vdAotIFNwcmluZyBTZWN1cml0eSAoSldUKQotIFNwcmluZyBEYXRhIEpQQQotIFNwcmluZyBXZWIKLSBTd2FnZ2VyIChPcGVuQVBJIDMuMCkKLSBQb3N0Z3Jlc3FsICgrUG9zdEdpcykKLSBEb2NrZXIKLSBNYXBTdHJ1Y3QKLSBMb21ib2sKLSBHcmFkbGUKCjwhLS0KIyMg0KHQsdC+0YDQutCwINC/0YDQuNC70L7QttC10L3QuNGPCmBgYHNoZWxsIHNjcmlwdAojINCh0LrQu9C+0L3QuNGA0L7QstCw0YLRjCDQv9GA0L7QtdC60YIg0Log0YHQtdCx0LUKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9kZXZhbHVydW0vbWVzc2VuZ2VyLXN5c3RlbS5naXQKCiMg0L/QvtC00L3Rj9GC0Ywg0LrQvtC90YLQtdC50L3QtdGAIGMgUG9zdGdyZXNxbCgrUG9zdGdpcykg0LggUGdBZG1pbiAKZG9ja2VyLWNvbXBvc2UgdXAgLWQKCiMg0LfQsNCz0YDRg9C20LDQtdGCIGdyYWRsZSB3cmFwcGVyCmdyYWRsZXcgd3JhcHBlcgoKIyDRgdCx0L7RgNC60LAg0L/RgNC+0LXQutGC0LAKZ3JhZGxldyBjbGVhbiBidWlsZCAKCiMg0LfQsNC/0YPRgdC6IFNwcmluZyDRgdC10YDQstC40YHQsApqYXZhIC1qYXIgYnVpbGQvbGlicy9tZXNzZW5nZXItc3lzdGVtLmphciAKYGBgCi0tPgojIyBEZXBsb3ltZW50CtCf0YDQuNC70L7QttC10L3QuNC1INC30LDQtNC10L/Qu9C+0LXQvdC+INC90LAgW2hlcm9rdV0oaHR0cHM6Ly9tZXNzZW5nZXItcmVzdGZ1bC5oZXJva3VhcHAuY29tL21lc3Nlbmdlci1zeXN0ZW0vc3dhZ2dlci11aS9pbmRleC5odG1sCikg0L/QviDQsNC00YDQtdGB0YM6CgpodHRwczovL21lc3Nlbmdlci1yZXN0ZnVsLmhlcm9rdWFwcC5jb20vbWVzc2VuZ2VyLXN5c3RlbS9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKIyMg0KHQsdC+0YDQutCwINC/0YDQuNC70L7QttC10L3QuNGPCmBgYHNoZWxsIHNjcmlwdAojINCh0LrQu9C+0L3QuNGA0L7QstCw0YLRjCDQv9GA0L7QtdC60YIsINC70LjQsdC+INC/0YDQvtGB0YLQviDRgdC60LDRh9Cw0YLRjCDRhNCw0LnQuyAiZG9ja2VyLWNvbXBvc2UueW1sIgpnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2RldmFsdXJ1bS9tZXNzZW5nZXItc3lzdGVtLmdpdAoKIyDQv9C+0LTQvdGP0YLRjCDQutC+0L3RgtC10LnQvdC10YDRiyBjIFBvc3RncmVTUUwoK1Bvc3RnaXMpINC4IFNwcmluZyBCb290IApkb2NrZXItY29tcG9zZSB1cCAtZApgYGAK0J7RgtC60YDRi9GC0Ywg0LIg0LHRgNCw0YPQt9C10YDQtSBTd2FnZ2VyOiBodHRwOi8vbG9jYWxob3N0OjgwODAvbWVzc2FuZ2VyLXN5c3RlbS9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKCiMjIE9wZW5BUEkg0L7Qv9C40YHQsNC90LjQtQoxLiDQntGC0LrRgNC+0LnRgtC1INCw0LTRgNC10YEg0LIg0LHRgNCw0YPQt9C10YDQtSBodHRwOi8vbG9jYWxob3N0OjgwODAvbWVzc2FuZ2VyLXN5c3RlbS9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKMi4g0JLRi9C/0L7Qu9C90LjRgtC1INGA0LXQs9C40YHRgtGA0LDRhtC40Y4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9tZXNzZW5nZXItc3lzdGVtL3N3YWdnZXItdWkvaW5kZXguaHRtbCMvQXV0aGVudGljYXRpb24vcmVnaXN0ZXIKMy4g0KHQutC+0L/QuNGA0YPQudGC0LUg0YLQvtC60LXQvSDQuCDQsNCy0YLQvtGA0LjQt9C40YDRg9C10YLQtdGB0Ywg0LIgU3dhZ2dlciBVSS4g0J/QvtGB0LvQtSDRh9C10LPQviAqKnRva2VuKiog0LHRg9C00LXRgiDQstGB0YLQsNCy0LvQtdC9INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INCyINC30LDQv9GA0L7RgdGLLgo0LiBwZ0FkbWluIChHVUkg0LTQu9GPIHBvc3RncmVzcWwpIGh0dHA6Ly9sb2NhbGhvc3Q6NTA1MAogICAxLiBsb2dpbjogYWRtaW5AYWRtaW4uY29tCiAgIDIuIHBhc3N3b3JkOiBhZG1pbgogICAgICAxLiBob3N0OiBob3N0LmRvY2tlci5pbnRlcm5hbCAo0YDQtdCz0LjRgdGC0YDQsNGG0LjRjyDQsdCw0LfRiyDQtNCw0L3QvdGL0YUpCiog0J/QvtC70Y8gdGltZSwgaWQsIHNlbmRlciDQv9GA0LggcG9zdC9wYXRjaCDQt9Cw0L/RgNC+0YHQsNGFINC6INGB0YPRidC90L7RgdGC0Y/QvCDQuNCz0L3QvtGA0LjRgNGD0Y7RgtGB0Y8sINGCLtC6INCz0LXQvdC10YDQuNGA0YPRjtGC0YHRjyDQvdCwINGB0YLQvtGA0L7QvdC1INGB0LXRgNCy0LXRgNCwLgoqINCk0L7RgNC80LDRgiDQstGA0LXQvNC10L3QuCDQsiBPcGVuQVBJINCz0LXQvdC10YDQuNGA0YPRjtGC0YHRjyDQvdC10L/RgNCw0LLQuNC70YzQvdC+ICjQv9C+0LrQsCDQvdC1INC/0L7QvdGP0YLQvdC+INC60LDQuiDQv9C+0LzQtdC90Y/RgtGMINC/0LDRgtGC0LXRgNC9KSwg0L/QvtGN0YLQvtC80YMg0L/QvtC70Y8gdGltZSDQu9GD0YfRiNC1INGD0LTQsNC70Y/RgtGMINC/0YDQuCDQvtGC0L/RgNCw0LLQutC1INC30LDQv9GA0L7RgdC+0LIuCiMjIyBUb2RvOgotINCg0LDQt9C+0LHRgNCw0YLRjNGB0Y8sINC/0L7Rh9C10LzRgyDQvdC1INGA0LDQsdC+0YLQsNC10YIg0LDQvdC90L7RgtCw0YbQuNGPIFJvbGVzQWxsb3dlZCDQsiDQutC+0L3RgtGA0L7Qu9C70LXRgNCw0YUuCi0g0J3QsNC/0LjRgdCw0YLRjCDRgtC10YHRgtGLLiDQn9C+0L/RgNC+0LHQvtCy0LDRgtGMIFRlc3Rjb250YWluZXJzINC70LjQsdC+IEgyR2lzINC00LvRjyDRgtC10YHRgtC40YDQvtCy0LDQvdC40Y8g0YDQtdC/0L7Qt9C40YLQvtGA0LjQtdCyLgotINCg0LDQt9C00LXQu9C40YLRjCBEVE8g0L3QsCBSZXF1ZXN0cyDQuCBSZXNwb25zZXMgKNCS0L7Qt9C80L7QttC90L4pLCDQtNC70Y8g0YPQtNCw0LvQtdC90LjRjyDQvdC10LLQsNC70LjQtNC90YvRhSDQv9C+0LvQtdC5INC/0YDQuCDQt9Cw0L/RgNC+0YHQsNGFLgotINCg0LDQt9C+0LHRgNCw0YLRjNGB0Y8g0L/QvtC00YDQvtCx0L3QtdC1INGBINC80LDQv9C/0LjQvdCz0L7QvCBEVE8g0YfQtdGA0LXQtyBNYXBTdHJ1Y3QrTG9tYm9rLgotINCg0LXRhNCw0LrRgtC+0YDQuNC90LMuCg== readmeEtag: '"920eff866933bb7d04bf03c6e367e9f25bb3fbad"' readmeLastModified: Sun, 19 Jun 2022 06:53:31 GMT repositoryId: 489871474 description: RESTful API для функционирования чата. created: '2022-05-08T07:05:35Z' updated: '2022-05-17T03:29:58Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: devalurum logo: https://avatars.githubusercontent.com/u/33903810?v=4 repoEtag: '"752860bbf5421dfeba078bfc286a774bd8df9e0eb2baac680ff487bc5d0296b7"' repoLastModified: Tue, 17 May 2022 03:29:58 GMT category: Low-level Tooling foundInMaster: true - source: openapi3 tags repository: https://github.com/borjatur/money-master-api v3: true id: 468f50c95f456880d3c26b72d0a577b8 repositoryMetadata: base64Readme: >- IyBtb25leS1tYXN0ZXItYXBpCgpCYWNrZW5kIHNlcnZpY2UgZm9yIE1vbmV5IE1hc3RlciwgYSBzaWRlIHByb2plY3QgY3JlYXRlZCBieSBtZSAoYm9yamEudHVyQGdtYWlsKSBmb3IgbGVhcm5pbmcgcHVycG9zZXMuIEJ1aWx0IGZvbGxvd2luZyAiQ2xlYW4gQXJjaGl0ZWN0dXJlIiBwcmluY2lwbGVzIGRlc2NyaWJlZCBieSBSb2JlcnQgQy4gTWFydGluIChha2EgVW5jbGUgQm9iKSwgaWYgeW91IHdhbnQgdG8ga25vdyBtb3JlIHNlZSBodHRwczovL2dpdGh1Yi5jb20vYm9yamF0dXIvY2xlYW4tYXJjaGl0ZWN0dXJlLWZhc3RpZnktbW9uZ29kYiBhbmQgaHR0cHM6Ly9ib3JqYXR1ci5jb20vMjAyMy8wMy8wNy95ZXQtYW5vdGhlci12aXNpb24tb2YtY2xlYW4tYXJjaGl0ZWN0dXJlLyB0aGF0IHdhcyB1c2VkIGFzIGJhc2UgdGVtcGxhdGUgZm9yIGJ1aWxkaW5nIHRoaXMgcHJvamVjdC4KCiMjIFdoYXQgY2FuIHlvdSBmaW5kIGluIHRoaXMgcHJvamVjdD8KCi0gW3hdICJDbGVhbiBBcmNoaXRlY3R1cmUiIHByaW5jaXBsZXMgaW4gcHJhY3RpY2UKLSBbeF0gQnVpbHQgaW4gVHlwZXNjcmlwdAotIFt4XSBCbGF6aW5nIGZhc3QgTm9kZS5qcyBmcmFtZXdvcmssIEZhc3RpZnkKLSBbeF0gRmFuY3kgYXV0byBnZW5lcmF0ZWQgZG9jcyB1c2luZyBPcGVuQVBJIHNwZWNpZmljYXRpb24gdjMKLSBbeF0gTW9uZ29EQiB3aXRoIE1vbmdvb3NlCi0gW3hdIENvbmZpZ3VyZWQgd2l0aCBFc2xpbnQgYW5kIEplc3Qgb3V0IHRoZSBib3gKLSBbeF0gRWFzeSB0byByZWFzb24gYWJvdXQgZm9sZGVyIHN0cnVjdHVyZQotIFsgXSBUZXN0aW5nIChXSVApCi0gWyBdIEF1dGhlbnRpY2F0aW9uL0F1dGhvcml6YXRpb24gKFdJUCkKCiMjIExpdmUgRGVtbwpWaXNpdCBodHRwczovL21vbmV5LW1hc3Rlci1hcGkuYm9yamF0dXIuY2xvdWQvZG9jcyBmb3IgYSBsaXZlIGRlbW8gb2YgdGhpcyBwcm9qZWN0LCB5b3UgY2FuIGFsc28gZmluZCB0aGUgZnJvbnRlbmQgYXBwbGljYXRpb24gYXZhaWxhYmxlIGF0IGh0dHBzOi8vbW9uZXktbWFzdGVyLmJvcmphdHVyLmNsb3VkIGFzIGEgY29uc3VtZXIgb2YgdGhpcyBBUEkKCkRlbW8gc2VydmljZXMgYXJlIHJ1bm5pbmcgb24gbXkgb3duIHBlcnNvbmFsIGt1YmVybmV0ZXMgY2x1c3RlciBkZXBsb3llZCBpbjoKClshW0RpZ2l0YWxPY2VhbiBSZWZlcnJhbCBCYWRnZV0oaHR0cHM6Ly93ZWItcGxhdGZvcm1zLnNmbzIuZGlnaXRhbG9jZWFuc3BhY2VzLmNvbS9XV1cvQmFkZ2UlMjAyLnN2ZyldKGh0dHBzOi8vd3d3LmRpZ2l0YWxvY2Vhbi5jb20vP3JlZmNvZGU9ZTNhMjdkZWVhMmFjJnV0bV9jYW1wYWlnbj1SZWZlcnJhbF9JbnZpdGUmdXRtX21lZGl1bT1SZWZlcnJhbF9Qcm9ncmFtJnV0bV9zb3VyY2U9YmFkZ2UpCgpUaGVyZSBpcyBzb21lIGRlbW8gZGF0YSBhdmFpbGFibGUgdGhhdCB3aWxsIGJlIHJlc3RvcmVkIGluIGEgc2NoZWR1bGVkIGJhc2UuCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCiogZG9ja2VyLWNvbXBvc2UgdXAgLS1mb3JjZS1yZWNyZWF0ZSAtLWJ1aWxkCgpPciBhbHRlcm5hdGl2ZWx5IGEgbW9uZ29kYiBpbnN0YW5jZSBydW5uaW5nIHNvbWV3aGVyZSwgdXBkYXRlIHRoZSBjb25uZWN0aW9uIHVybCBhY2NvcmRpbmdseSBhbmQ6CgoqIG5wbSBpbnN0YWxsCiogbnBtIHJ1biBidWlsZCAmJiBucG0gc3RhcnQKKiB2aXNpdCBodHRwOi8vbG9jYWxob3N0OjUwNTAvZG9jcyBhbmQgZW5qb3kh readmeEtag: '"e7e16cb40572a8d84eb032e0fbec49c3bb86878c"' readmeLastModified: Thu, 16 Nov 2023 17:59:57 GMT repositoryId: 613068520 description: >- rest api following clean architecture principles for Money Master, side project by Borja Tur created: '2023-03-12T19:40:13Z' updated: '2023-04-25T17:00:19Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: borjatur logo: https://avatars.githubusercontent.com/u/15380585?v=4 repoEtag: '"86c1dca21d4366570eb95c9d8ba933fbcb5cbdb4370d895c3181d4b9ac34dddb"' repoLastModified: Tue, 25 Apr 2023 17:00:19 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/swrlab/swrlab v3: true id: 75fd16ecc0ecd5ba9a0051b517b3bdaa repositoryMetadata: base64Readme: >- IyBTV1IgQXVkaW8gTGFiCgojIyBQcmluY2lwbGVzCgpMZWFybiBhYm91dCBvdXIgRW5naW5lZXJpbmcgYW5kIFByb2plY3QgUHJpbmNpcGxlcyBpbiBbUFJJTkNJUExFUy5tZF0oUFJJTkNJUExFUy5tZCkuCgojIyBNb3JlIGZyb20gdGhlIEF1ZGlvIExhYgoKLSBPdXIgTm9kZUpTIHRvb2xzOiBbYEBzd3JsYWIvbm9kZS11dGlsc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd3JsYWIvbm9kZS11dGlscykgLyBvbiBbbnBtIGBAc3dybGFiL3V0aWxzYF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQHN3cmxhYi91dGlscykKLSBQdWJsaWMgcmVwb3NpdG9yaWVzIG9uIEdpdEh1YjogW3N3cmxhYi9yZXBvc2l0b3JpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL3N3cmxhYi9yZXBvc2l0b3JpZXM/cT0mdHlwZT1wdWJsaWMmbGFuZ3VhZ2U9JnNvcnQ9bmFtZSkKLSBQdWJsaWMgcGFja2FnZXMgb24gbnBtOiBbbnBtanMuY29tL29yZy9zd3JsYWJdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9vcmcvc3dybGFiKQoKIyMgUHVibGljIEtleQoKWW91IGNhbiBmaW5kIG91ciBwdWJsaWMga2V5IGZvciBgbGFiIFthdF0gc3dyLmRlYCBvbiBba2V5cy5vcGVucGdwLm9yZ10oaHR0cHM6Ly9rZXlzLm9wZW5wZ3Aub3JnL3NlYXJjaD9xPWxhYiU0MHN3ci5kZSkuCg== readmeEtag: '"34d717782e4b50612edcaabd42453ab3d4264abc"' readmeLastModified: Tue, 20 Aug 2024 11:29:35 GMT repositoryId: 208029195 description: 🤝 SWR Audio Lab created: '2019-09-12T10:52:47Z' updated: '2024-08-26T11:39:23Z' language: null archived: false stars: 6 watchers: 4 forks: 0 owner: swrlab logo: https://avatars.githubusercontent.com/u/55231245?v=4 repoEtag: '"596394dde5e0c1a214a3815e75599c2995fd2e24210102dfa86072b93b643883"' repoLastModified: Mon, 26 Aug 2024 11:39:23 GMT category: - Low-level Tooling - Server Implementations foundInMaster: true oldLocations: - https://github.com/swrlab/swr-radiohub-docs - source: openapi3 tags repository: https://github.com/aosolorzano/city-tasks-lambda-native-with-dynamodb v3: true id: 08b61c6defc33bd561b2ba03a057fa95 repositoryMetadata: base64Readme: >- CiMjIEVEQSB1c2luZyBTcHJpbmcgQm9vdCBhbmQgU3ByaW5nIENsb3VkIEZ1bmN0aW9ucyB0byBkZXBsb3kgbmF0aXZlIGV4ZWN1dGFibGVzIG9uIEVDUyBhbmQgTGFtYmRhIHJlc3BlY3RpdmVseS4KCiogKipBdXRob3IqKjogW0FuZHJlcyBTb2xvcnphbm9dKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9hb3NvbG9yemFuby8pLgoqICoqTGV2ZWwqKjogQWR2YW5jZWQuCiogKipUZWNobm9sb2dpZXMqKjogSmF2YSAxNywgU3ByaW5nIEJvb3QgMywgU3ByaW5nIENsb3VkIDQsIFNwcmluZyBOYXRpdmUsIFNwcmluZyBXZWJGbHV4LCBTcHJpbmcgT0F1dGgyLCBRdWFydHosIEZseXdheSwgTG9tYm9rLCBUZXN0Y29udGFpbmVycywgTG9jYWxTdGFjaywgQVdTIENvcGlsb3QgQ0xJLCBBV1MgU0FNLUNMSSwgQW1hem9uIENvZ25pdG8sIEFtYXpvbiBBdXJvcmEgKHdpdGggUG9zdGdyZVNRTCksIER5bmFtb0RCLCBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBFdmVudEJyaWRnZSwgTGFtYmRhLCBhbmQgRG9ja2VyLgoKIVtdKHV0aWxzL2ltYWdlcy9zb2x1dGlvbnNfYXJjaGl0ZWN0dXJlX3Y1LnBuZykKCllvdSBjYW4gcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzIGZyb20gbXkgKipNZWRpdW0uY29tKiogYWNjb3VudCB0byBnZXQgbW9yZSBwcm9qZWN0IGRldGFpbHM6CgoxLiBbTXVsdGktQWNjb3VudCBlbnZpcm9ubWVudCBvbiBBV1MgdXNpbmcgSUFNIElkZW50aXR5IENlbnRlcl0oaHR0cHM6Ly9hb3NvbG9yemFuby5tZWRpdW0uY29tL2ltcGxlbWVudGluZy1hLW11bHRpLWFjY291bnQtZW52aXJvbm1lbnQtd2l0aC1hd3Mtb3JnYW5pemF0aW9ucy1hbmQtdGhlLWlhbS1pZGVudGl0eS1jZW50ZXItZDFjZGI0MGJkZjRkKS4KMi4gW09BdXRoMiBpbiBTcHJpbmcgQm9vdCBOYXRpdmUgbWljcm9zZXJ2aWNlXShodHRwczovL2Fvc29sb3J6YW5vLm1lZGl1bS5jb20vb2F1dGgyLWluLXNwcmluZy1ib290LW5hdGl2ZS1yZWFjdGl2ZS1taWNyb3NlcnZpY2Utd2l0aC1hbWF6b24tY29nbml0by1hcy1vaWRjLXNlcnZpY2UtYzQ1NGQ4NGE1MjM0KS4KMy4gW0RlcGxveWluZyBTcHJpbmcgQm9vdCBOYXRpdmUgbWljcm9zZXJ2aWNlIHVzaW5nIENyb3NzLUFjY291bnQgZGVwbG95bWVudF0oaHR0cHM6Ly9hb3NvbG9yemFuby5tZWRpdW0uY29tL3NwcmluZy1ib290LW5hdGl2ZS1taWNyb3NlcnZpY2Utb24tZWNzLWZhcmdhdGUtdXNpbmctYXdzLWNvcGlsb3QtY2xpLWZvci1jcm9zcy1hY2NvdW50LWRlcGxveW1lbnQtNzNiMTgzNmYyMWY3KS4KNC4gW0VuZC10by1FbmQgRW5jcnlwdGlvbiB1c2luZyBUTFMgRUNEU0EgY2VydGlmaWNhdGUgYW5kIEFDTSB3aXRoIENvcGlsb3QgQ0xJXShodHRwczovL2Fvc29sb3J6YW5vLm1lZGl1bS5jb20vZW5kLXRvLWVuZC1lbmNyeXB0aW9uLXVzaW5nLXRscy1lY2RzYS1jZXJ0aWZpY2F0ZS1hY20tYW5kLWF3cy1jb3BpbG90LWNsaS02NGY1ZGFhZmU5NzcpLgo1LiBbRURBIHVzaW5nIEFtYXpvbiBFdmVudEJyaWRnZSwgTGFtYmRhLCBhbmQgU0FNLUNMSSwgd2l0aCBGYXJnYXRlIEVDUyBhcyBFdmVudCBTb3VyY2VdKGh0dHBzOi8vYW9zb2xvcnphbm8ubWVkaXVtLmNvbS9lZGEtd2l0aC1ldmVudGJyaWRnZS1hbmQtbGFtYmRhLXVzaW5nLXNhbS1jbGktd2l0aC1zcHJpbmctYm9vdC1tcy1vbi1mYXJnYXRlLWVjcy1hcy1ldmVudC1zb3VyY2UtOWFiZWUyMzdiZTA4KS4KNi4gW1N0b3JpbmcgRURBIGV2ZW50cyBpbiBEeW5hbW9EQiBmcm9tIGEgTmF0aXZlIExhbWJkYSBGdW5jdGlvbiB1c2luZyBTcHJpbmcgQ2xvdWQgRnVuY3Rpb25zXShodHRwczovL2Fvc29sb3J6YW5vLm1lZGl1bS5jb20vc3RvcmluZy1lZGEtZXZlbnRzLWluLWR5bmFtb2RiLXVzaW5nLWEtbmF0aXZlLWxhbWJkYS1mdW5jdGlvbi13aXRoLWdyYWFsdm0tc3ByaW5nLWNsb3VkLWZ1bmN0aW9ucy1jMzJjZWU0Nzc1ZmMpLgoKLS0tCgojIyBEZXNjcmlwdGlvbi4KVGhpcyBwcm9qZWN0IHVzZXMgU3ByaW5nIEJvb3QgdG8gbWFuYWdlIFF1YXJ0eiBKb2JzIHdpdGggdGhlIGhlbHAgb2YgU3ByaW5nIFdlYmZsdXggYW5kIFNwcmluZyBOYXRpdmUuClRoZSBRdWFydHogbGlicmFyeSBpcyBjb25maWd1cmVkIGZvciBhIGNsdXN0ZXJlZCBlbnZpcm9ubWVudCwgc28gaXQgbmVlZHMgUG9zdGdyZXMgdG8gc3RvcmUgYW5kIG1hbmFnZSBKb2JzIGV4ZWN1dGlvbnMuCldoZW4gYSBRdWFydHogSm9iIGlzIGV4ZWN1dGVkLCB0aGUgY2FsbGluZyBtZXRob2QgcmV0cmlldmVzIHRoZSBEZXZpY2UgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIFRhc2tzIGFuZCB1cGRhdGVzIGl0cyBzdGF0ZSBpbiBEeW5hbW9EQi4KVG8gcGVyZm9ybSBhbGwgdGhlc2UgYWN0aXZpdGllcywgdGhlIHVzZXJzIG11c3QgaGF2ZSBhIHZhbGlkIGFjY2VzcyB0b2tlbiAoSldUKSB0byBhY2Nlc3MgdGhlIGVuZHBvaW50cy4KQWxsIHRlc3QgY2FzZXMgdXNlIFRERCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRldmVsb3BtZW50LCBhbmQgb25seSBJbnRlZ3JhdGlvbiBUZXN0cyBhcmUgZXhlY3V0ZWQgd2l0aCB0aGUgc3VwcG9ydCBvZiBUZXN0Y29udGFpbmVycyBhbmQgTG9jYWxTdGFjayB0byB0cnkgdG8gY292ZXIgcmVhbC13b3JsZCBzY2VuYXJpb3MuClRoaXMgcHJvamVjdCBhbHNvIHVzZXMgRG9ja2VyIENvbXBvc2UgdG8gZGVwbG95IGEgbG9jYWwgY2x1c3RlciB3aXRoIHRoZSByZXF1aXJlZCBzZXJ2aWNlcyBmb3IgbG9jYWwgdGVzdGluZy4KCi0tLQoKIyMgUHJlcmVxdWlzaXRlcy4KLSBHaXQuCi0gQVdTIENMSSAodmVyc2lvbiAyLjExLispLgotIEFXUyBDb3BpbG90IENMSSAodmVyc2lvbiAxLjI3LispLgotIEFXUyBTQU0gQ0xJICh2ZXJzaW9uIDEuOTAuKykuCi0gT3BlbkpESyAodmVyc2lvbiAxNy4wLispLiBZb3UgY2FuIHVzZSBTREtNQU4uCi0gQXBhY2hlIE1hdmVuICh2ZXJzaW9uIDMuOS4rKSBZb3UgY2FuIHVzZSBTREtNQU4uCi0gU3ByaW5nIEJvb3QgKHZlcnNpb24gMy4xLispCi0gRG9ja2VyIGFuZCBEb2NrZXIgQ29tcG9zZS4KCi0tLQoKIyMgUHJvamVjdCBTdHJ1Y3R1cmUuClRoZSBwcm9qZWN0IGlzIGRpdmlkZWQgaW50byB0aGUgZm9sbG93aW5nIGRpcmVjdG9yaWVzOgotICoqc3JjKio6IENvbnRhaW5zIHNvdXJjZSBjb2RlIG9mIHRoZSByZXF1aXJlZCBwcm9qZWN0cy4KLSAqKmNvcGlsb3QqKjogQ29udGFpbnMgdGhlIENvcGlsb3QgY29uZmlndXJhdGlvbiBmaWxlcy4KLSAqKnRlbXBsYXRlLnlhbWwqKjogQ29udGFpbnMgdGhlIFNBTSBjb25maWd1cmF0aW9uLgotICoqZG9ja2VyLWNvbXBvc2UueW1sKio6IENvbnRhaW5zIHRoZSBEb2NrZXIgQ29tcG9zZSBmaWxlIHRvIGRlcGxveSB0aGUgbG9jYWwgY2x1c3Rlci4KLSAqKnBvbS54bWwqKjogQ29udGFpbnMgdGhlIHByb2plY3QncyBkZXBlbmRlbmNpZXMuCi0gKip1dGlscyoqOiBDb250YWlucyB0aGUgc2NyaXB0cyB0byBkZXBsb3kgdGhlIGFwcGxpY2F0aW9uIGxvY2FsbHkgb3IgaW4gQVdTLgoKLS0tCgojIyBEZXBsb3ltZW50IE9wdGlvbnMuCllvdSBuZWVkIHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kIGZyb20gdGhlIHByb2plY3QncyByb290IGRpcmVjdG9yeToKYGBgYmFzaAouL3J1bi1zY3JpcHRzLnNoCmBgYAoKVGhlIHNjcmlwdCB3aWxsIGFzayB5b3UgZm9yIHRoZSByZXF1aXJlZCBBV1MgcHJvZmlsZXMgdG8gZGVwbG95IHRoZSBhcHBsaWNhdGlvbiBsb2NhbGx5IG9yIGluIEFXUzoKIVtdKHV0aWxzL2ltYWdlcy9iYXNoX3NjcmlwdF9lbnRlcmluZ192YXJpYWJsZXMucG5nKQoKVGhlbiwgdGhlIHNjcmlwdCBzaG93cyBhIG1haW4gbWVudSB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKIVtdKHV0aWxzL2ltYWdlcy9iYXNoX3NjcmlwdF9tYWluX21lbnUucG5nKQoKSWYgeW91IGNob29zZSBvcHRpb24gJ2gnIGZvciAnSGVscGVyIE1lbnUsJwp5b3UgY2FuIGNyZWF0ZS9kZXBsb3kgZGVwZW5kZW50IHJlc291cmNlcyByZXF1aXJlZCBiZWZvcmUgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbiBvbiBBV1MuCgotLS0KCiMjIEludGVybmFsIERvY3VtZW50YXRpb24uClRoZSBpbnRlcm5hbCBwcm9qZWN0IGRvY3VtZW50YXRpb24gaXMgZGl2aWRlZCBpbnRvIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3JpZXM6Ci0gKip1dGlscy9kb2NzKio6IENvbnRhaW5zIHRoZSBwcm9qZWN0J3MgZG9jdW1lbnRhdGlvbi4KLSAqKnV0aWxzL2RvY3MvaW1hZ2VzKio6IENvbnRhaW5zIHNvbHV0aW9uJ3MgYXJjaGl0ZWN0dXJlIGltYWdlcy4KClRoZSBtYXJrZG93biBkb2N1bWVudGF0aW9uIGZvciBpbmRpdmlkdWFsIHByb2plY3RzIGlzIGF2YWlsYWJsZSBhdDoKLSBbVGFza3MgQVBJIHdpdGggQ29waWxvdCBDTEldKHNyYy9jaXR5LXRhc2tzLWFwaS9SRUFETUUubWQpLgotIFtUYXNrcyBFdmVudCB3aXRoIFNBTSBDTEldKHNyYy9jaXR5LXRhc2tzLWV2ZW50cy1mdW5jdGlvbi9SRUFETUUubWQpLgo= readmeEtag: '"4ca8f19c899c799682d9488dc10224c79415d381"' readmeLastModified: Sun, 19 Nov 2023 19:50:17 GMT repositoryId: 667132451 description: >- Lambda Native Function using Java and GraalVM, which stores EDA events on Amazon DynamoDB. created: '2023-07-16T18:38:56Z' updated: '2023-08-20T18:25:09Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: aosolorzano logo: https://avatars.githubusercontent.com/u/5817871?v=4 license: Apache-2.0 repoEtag: '"76ee66b191d097d863d945ca8f620793f21336590d802be679648335f19bcf19"' repoLastModified: Sun, 20 Aug 2023 18:25:09 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/thenriquedb/todo-list-with-spring v3: true id: 95e8cced8900d0116e77c182daa46c25 repositoryMetadata: base64Readme: >- IVtpbWcucG5nXShoZWFkZXIucG5nKQoKIyBUb2RvIExpc3QgUkVTVCBBUEkKIVtKYXZhXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmEtJTIzRUQ4QjAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289b3BlbmpkayZsb2dvQ29sb3I9d2hpdGUpIVtTcHJpbmddKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3ByaW5nLSUyMzZEQjMzRi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXNwcmluZyZsb2dvQ29sb3I9d2hpdGUpIVtTd2FnZ2VyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLy1Td2FnZ2VyLSUyM0Nsb2p1cmU/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXN3YWdnZXImbG9nb0NvbG9yPXdoaXRlKSFbUmVuZGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JlbmRlci0lNDZFM0I3LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289cmVuZGVyJmxvZ29Db2xvcj13aGl0ZSkKCkVzdGUgcHJvamV0byBmb2kgZGVzZW52b2x2aWRvIGNvbW8gcGFydGUgZG8gY3Vyc28gZ3JhdHVpdG8gZGUgSmF2YSBvZmVyZWNpZG8gcGVsYSBSb2NrZXRzZWF0LiBUcmF0YS1zZSBkZSB1bWEgQVBJIFJlc3QgcGFyYSBnZXJlbmNpYW1lbnRvIGRlIGxpc3RhIGRlIHRhcmVmYXMsIGNvbnN0cnXDrWRhIGVtIEphdmEgY29tIG8gZnJhbWV3b3JrIFNwcmluZyBCb290LgoKCiMjIENhcmFjdGVyw61zdGljYXMgZG8gUHJvamV0bwotICoqU2VwYXJhw6fDo28gZGUgUmVzcG9uc2FiaWxpZGFkZXMqKjogSW1wbGVtZW50YW1vcyB1bWEgZXN0cnV0dXJhIGRlIGPDs2RpZ28gcXVlIHNlZ3VlIGFzIGJvYXMgcHLDoXRpY2FzIGRlIHNlcGFyYcOnw6NvIGRlIHJlc3BvbnNhYmlsaWRhZGVzIGVudHJlIGNvbnRyb2xsZXJzIGUgcmVwb3NpdMOzcmlvcy4gSXNzbyB0b3JuYSBvIGPDs2RpZ28gbWFpcyBvcmdhbml6YWRvIGUgZGUgZsOhY2lsIG1hbnV0ZW7Dp8Ojby4KLSAqKkZpbHRybyBwYXJhIEF1dGVudGljYcOnw6NvIGUgVmFsaWRhw6fDo28qKjogQ3JpYW1vcyB1bSBmaWx0cm8gcGFyYSBhIHJvdGEgYC90YXNrc2AgcXVlIGdhcmFudGUgYSBhdXRlbnRpY2HDp8OjbyBkbyB1c3XDoXJpbyBlIHZhbGlkYSBhcyBzb2xpY2l0YcOnw7Vlcy4gSXNzbyBhdW1lbnRhIGEgc2VndXJhbsOnYSBlIGEgaW50ZWdyaWRhZGUgZG9zIGRhZG9zLgotICoqRXJyb3IgSGFuZGxlcioqOiBEZXNlbnZvbHZlbW9zIHVtIG1lY2FuaXNtbyBkZSB0cmF0YW1lbnRvIGRlIGVycm9zIHBhcmEgZm9ybmVjZXIgcmVzcG9zdGFzIGNsYXJhcyBlIGFkZXF1YWRhcyBlbSBjYXNvIGRlIHByb2JsZW1hcyBkdXJhbnRlIGFzIHNvbGljaXRhw6fDtWVzLgoKIyMjIFJlcXVpc2l0b3MKLSAqKkphdmEgPj0gMTcqKjsKLSAqKk1hdmVuKio7Ci0gKipSZXN0IGNsaWVudCoqOwoKIyMjIERlcGVkw6puY2lhcwotICoqU3ByaW5nIEpQQSoqOwotICoqTG9tYm9rKio7Ci0gKipCQ3J5cHQqKjsKLSAqKkgyIERhdGFiYXNlKio7CgojIyBBUEkKCiMjIyBQT1NUIGBgL3VzZXJzYGAKCioqUmVxdWVzdCBib2R5KioKYGBganNvbgogIHsKICAgICAgICAibmFtZSI6IHN0cmluZywKICAgICAgICAidXNlcm5hbWUiOiBzdHJpbmcsCiAgICAgICAgInBhc3N3b3JkIjogc3RyaW5nCiAgfQpgYGAKCioqUmVzcG9uc2UqKgpgYGBqc29uCiAgICB7CiAgICAgICAgImlkIjogVVVJRCwKICAgICAgICAidXNlcm5hbWUiOiBzdHJpbmcsCiAgICAgICAgIm5hbWUiOiBzdHJpbmcsCiAgICAgICAgImNyZWF0ZWRBdCI6IFlZWVktTU0tRERUaGg6bW06c3MKICAgIH0KYGBgCgojIyMgUE9TVCBgYC90YXNrc2BgCgoqKkhlYWRlcioqCmBgYApBdXRob3JpemF0aW9uOiBCYXNpYyBCYXNlNjQgKHVzZXJuYW1lOnBhc3N3b3JkKQpgYGAKCioqUmVxdWVzdCoqCgpgYGBqc29uCiAgewogICAgICAidGl0bGUiOiBzdHJpbmcsCiAgICAgICJkZXNjcmlwdGlvbiI6IHN0cmluZywKICAgICAgInByaW9yaXR5IjogMCB8IDEgfCAyIHwgMyB8IDQsCiAgICAgICJzdGFydEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgImVuZEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcwogIH0KCmBgYCAKKipSZXNwb25zZSoqCgpgYGBqc29uCiAgewogICAgICAgICJpZCI6IFVVSUQsCiAgICAgICAgInRpdGxlIjogc3RyaW5nLAogICAgICAgICJkZXNjcmlwdGlvbiI6IHN0cmluZywKICAgICAgICAicHJpb3JpdHkiOiAwIHwgMSB8IDIgfCAzIHwgNCwKICAgICAgICAic3RhcnRBdCI6IFlZWVktTU0tRERUaGg6bW06c3MsCiAgICAgICAgImVuZEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgICAiY3JlYXRlZEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgICAidXNlcklkIjogVVVJRAogIH0KYGBgCgojIyMgUE9TVCBgYC90YXNrc2BgCgoqKkhlYWRlcioqCmBgYApBdXRob3JpemF0aW9uOiBCYXNpYyBCYXNlNjQgKHVzZXJuYW1lOnBhc3N3b3JkKQpgYGAKKipSZXNwb25zZSoqCgpgYGBqc29uCiAgewogICAgICAgICJpZCI6IFVVSUQsCiAgICAgICAgInRpdGxlIjogc3RyaW5nLAogICAgICAgICJkZXNjcmlwdGlvbiI6IHN0cmluZywKICAgICAgICAicHJpb3JpdHkiOiAwIHwgMSB8IDIgfCAzIHwgNCwKICAgICAgICAic3RhcnRBdCI6IFlZWVktTU0tRERUaGg6bW06c3MsCiAgICAgICAgImVuZEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgICAiY3JlYXRlZEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgICAidXNlcklkIjogVVVJRAogIH1bXQpgYGAKCiMjIyBQVVQgYGAvdGFza3Mve2lkfWBgCgoqKkhlYWRlcioqCmBgYApBdXRob3JpemF0aW9uOiBCYXNpYyBCYXNlNjQgKHVzZXJuYW1lOnBhc3N3b3JkKQpgYGAKCgoqKlJlc3BvbnNlKioKCmBgYGpzb24KICB7CiAgICAgICAgImlkIjogVVVJRCwKICAgICAgICAidGl0bGUiOiBzdHJpbmcsCiAgICAgICAgImRlc2NyaXB0aW9uIjogc3RyaW5nLAogICAgICAgICJwcmlvcml0eSI6IDAgfCAxIHwgMiB8IDMgfCA0LAogICAgICAgICJzdGFydEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgICAiZW5kQXQiOiBZWVlZLU1NLUREVGhoOm1tOnNzCiAgfQpgYGAKKipSZXNwb25zZSoqCgpgYGBqc29uCiAgewogICAgICAgICJpZCI6IFVVSUQsCiAgICAgICAgInRpdGxlIjogc3RyaW5nLAogICAgICAgICJkZXNjcmlwdGlvbiI6IHN0cmluZywKICAgICAgICAicHJpb3JpdHkiOiAwIHwgMSB8IDIgfCAzIHwgNCwKICAgICAgICAic3RhcnRBdCI6IFlZWVktTU0tRERUaGg6bW06c3MsCiAgICAgICAgImVuZEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgICAiY3JlYXRlZEF0IjogWVlZWS1NTS1ERFRoaDptbTpzcywKICAgICAgICAidXNlcklkIjogVVVJRAogIH0KYGBgCgojIyBNZWxob3JpYXMKLSBbWF0gQWRpY2lvbmFyIGVuZHBvaW50IHBhcmEgZXhjbHVpciB0YXJlZmE7Ci0gW1hdIERvY3VtZW50YXIgYSBBUEkgdXRpbGl6YW5kbyBTd2FnZ2VyOwotIFsgXSBBZGljaW9uYXIgdGVzdGVzIHBhcmEgY2FkYSBlbmRwb2ludDsKLSBbIF0gU3Vic3RpdHVpciBvIEgyIHBhcmEgbyBQb3N0Z3Jlc3M7Ci0gWyBdIE1lbGhvcmFyIG8gcHJvY2Vzc28gZGUgYXV0ZW50aWNhw6fDo28uCg== readmeEtag: '"d689f7ab5f5361cc9cea81f1fd44969c3c6e4bf9"' readmeLastModified: Wed, 25 Oct 2023 22:00:18 GMT repositoryId: 702747708 description: ' API Rest para gerenciamento de lista de tarefas, construída em Java com o framework Spring Boot.' created: '2023-10-09T23:55:51Z' updated: '2023-10-18T02:35:18Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: thenriquedb logo: https://avatars.githubusercontent.com/u/39653866?v=4 repoEtag: '"39900b00c0442a4f18e5ae681289509e5230fcf1ba12e4efb2471e9240fcce70"' repoLastModified: Wed, 18 Oct 2023 02:35:18 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/omar122/openapiparser v3: true id: e6e927daf21ea1784f3ba9aee768b1a7 repositoryMetadata: base64Readme: >- IyBTaW1wbGUgamF2YSBPcGVuQVBJIDIgYW5kIE9wZW5BUEkgMyBQYXJzZXIKc2ltcGxlIGphdmEgcGFyc2VyIGZvciBPcHJuQVBJIDIuCg== readmeEtag: '"6568ff70e6f875bd68dfc67105e931a985e0bba0"' readmeLastModified: Sat, 08 Jun 2024 16:51:11 GMT repositoryId: 809965626 description: Simple Java OpenAPI Parser created: '2024-06-03T19:43:12Z' updated: '2024-06-08T16:51:50Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: Omar122 logo: https://avatars.githubusercontent.com/u/13061733?v=4 repoEtag: '"f652abc01c21979b91d13283219c2098f5c7397da0678843062f3a0aa97c31d6"' repoLastModified: Sat, 08 Jun 2024 16:51:50 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/rebecabl/iagenerativa-pipeline-etlpython v3: true id: 0d59d04f3e10ecfd7831c52b9c92cac7 repositoryMetadata: base64Readme: >- CiMgRGVzY3JpcHRpb246CgpUaGlzIFB5dGhvbiBzY3JpcHQgdXRpbGl6ZXMgdGhlIFBhbmRhcyBsaWJyYXJ5IHRvIGNyZWF0ZSBhIHNhbXBsZSBEYXRhRnJhbWUgcmVwcmVzZW50aW5nIHVzZXIgZGF0YSwgaW5jbHVkaW5nIFVzZXJJRCwgTmFtZSwgQWdlLCBFbWFpbCwgYW5kIFRlbGVwaG9uZS4gVGhlIHNjcmlwdCB0aGVuIHJldHJpZXZlcyBhZGRpdGlvbmFsIHVzZXIgaW5mb3JtYXRpb24gZnJvbSBhIGh5cG90aGV0aWNhbCBBUEkgZW5kcG9pbnQgdXNpbmcgdGhlIHJlcXVlc3RzIGxpYnJhcnkuIFRoZSBvYnRhaW5lZCB1c2VyIGRhdGEgaXMgcHJvY2Vzc2VkIHRocm91Z2ggT3BlbkFJJ3MgR1BULTMgZW5naW5lIHRvIGdlbmVyYXRlIHBlcnNvbmFsaXplZCBtYXJrZXRpbmcgbWVzc2FnZXMgZW5jb3VyYWdpbmcgZmluYW5jaWFsIGludmVzdG1lbnQuIFRoZSBtZXNzYWdlcyBhcmUgdGFpbG9yZWQgdG8gZWFjaCB1c2VyLCBpbmNvcnBvcmF0aW5nIHRoZWlyIG5hbWVzIGluIGEgcG9zaXRpdmUgaW52ZXN0bWVudC1mb2N1c2VkIHByb21wdC4KClRoZSBzY3JpcHQgY29uY2x1ZGVzIGJ5IHVwZGF0aW5nIHVzZXIgcHJvZmlsZXMgb24gdGhlIHNhbWUgaHlwb3RoZXRpY2FsIEFQSSB3aXRoIHRoZSBnZW5lcmF0ZWQgbWFya2V0aW5nIG1lc3NhZ2VzLCBpbmRpY2F0aW5nIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBmb3IgZWFjaCB1c2VyLiBUaGUgaW50ZWdyYXRpb24gb2YgUGFuZGFzLCByZXF1ZXN0cywgYW5kIE9wZW5BSSBzaG93Y2FzZXMgYSB2ZXJzYXRpbGUgYXBwcm9hY2ggZm9yIGRhdGEgbWFuaXB1bGF0aW9uLCBleHRlcm5hbCBBUEkgaW50ZXJhY3Rpb24sIGFuZCBBSS1wb3dlcmVkIGNvbnRlbnQgZ2VuZXJhdGlvbiBpbiB0aGUgY29udGV4dCBvZiBwZXJzb25hbGl6ZWQgZmluYW5jaWFsIG1lc3NhZ2luZy4K readmeEtag: '"c83e2760e49d6d4998e3f46be0c4eaa94dae91a9"' readmeLastModified: Sun, 21 Jan 2024 18:45:53 GMT repositoryId: 694912783 description: >- Python Project uses Pandas, Requests and GPT-3 to create personalized marketing messages encouraging investments. Messages are integrated into user profiles in a dummy API. created: '2023-09-22T00:31:11Z' updated: '2024-01-21T18:50:07Z' language: Jupyter Notebook archived: false stars: 0 watchers: 1 forks: 0 owner: Rebecabl logo: https://avatars.githubusercontent.com/u/107273033?v=4 repoEtag: '"9a2e94fada4471f5a1263161f1a536e84d7f8da9f4ce579e65ff7dd3764ac594"' repoLastModified: Sun, 21 Jan 2024 18:50:07 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mcpride/widdershins-templates-asciidoc v3: true id: cd2d1a7ae3adbcc895d7b0abcaf86aa1 repositoryMetadata: base64Readme: >- IyBDb252ZXJ0IE9wZW5BUEkgMyBkZWZpbml0aW9ucyB0byBBU0NJSURPQyBkb2N1bWVudGF0aW9uIHdpdGggd2lkZGVyc2hpbnMKCiMjIEluZm9ybWF0aW9uCgpUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgdGhlIFt3aWRkZXJzaGluc10oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvd2lkZGVyc2hpbnMvKSBbb3BlbmFwaTMgdGVtcGxhdGVzXShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS93aWRkZXJzaGlucy90cmVlL21haW4vdGVtcGxhdGVzL29wZW5hcGkzKSBvZiB2ZXJzaW9uIDQuMDEgLSBtb2RpZmllZCwgdG8gcHJvZHVjZSBhIHZhbGlkIHNpbmdsZSBbQVNDSUlET0NdKGh0dHBzOi8vYXNjaWlkb2Mub3JnLykgZG9jdW1lbnQsIHdoaWNoIGNhbiBiZSBpbmNsdWRlZCBpbnRvIG90aGVyIGRvY3MgYW5kIGNvbnZlcnRlZCB0byBkaXZlcnNlIHRhcmdldCBmb3JtYXRzLiAKClVuZm9ydHVuYXRlbHkgdGhlIGNvbnZlcnNpb24gcmF0ZSBpcyBub3QgMTAwJSEgRm9yIGV4YW1wbGUgbWFya2Rvd24gaW4gZGVzY3JpcHRpb25zIHdpbGwgbm90IGJlIHByb3Blcmx5IGNvbnZlcnRlZCwgYnV0IGl0IGhlbHBzIG1lIGFuZCBteSB0ZWFtIHRvIHByb2R1Y2UgdmFsaWQgaHVtYW4gcmVhZGFibGUgaW50ZXJmYWNlIGRvY3VtZW50YXRpb24uCgpUaGVyZSBpcyBhIHBldHN0b3JlIDMgZXhhbXBsZSBpbmNsdWRlZCB0byBjaGVjayB0aGUgcmVzdWx0cy4KCkZlZWwgZnJlZSB0byB1c2UgaXQgLi4uIGJ1dCB3aXRob3V0IGd1YXJhbnRlZXMgOy0p readmeEtag: '"96699182b8b81d3ca21ae4f7d2ef573a38c2ac0e"' readmeLastModified: Tue, 14 May 2024 07:27:44 GMT repositoryId: 800360164 description: Widdershins templates for AsciiDoc created: '2024-05-14T07:25:27Z' updated: '2024-05-14T07:32:32Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: mcpride logo: https://avatars.githubusercontent.com/u/1053528?v=4 license: MIT repoEtag: '"f07fe651e35f56d69ddd0ee1337af42102da9bda086c6e1a28d5f49f5c713800"' repoLastModified: Tue, 14 May 2024 07:32:32 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/mcpikon/cinemarustback v3: true id: 35dfae36d7a4349b51973290867a72f6 repositoryMetadata: base64Readme: >- IyBDaW5lbWFSdXN0QmFjawoKWyFbUnVzdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8yMDIxLWJsYWNrP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1ydXN0JmxvZ29Db2xvcj13aGl0ZSZsYWJlbD1SdXN0JmxhYmVsQ29sb3I9YmxhY2smY29sb3I9d2hpdGUpXShodHRwczovL3d3dy5ydXN0LWxhbmcub3JnL2VzKSAmbmJzcDsKWyFbQWN0aXggV2ViXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLzQuOC4wKy1ibGFjaz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289YWN0aXgmbG9nb0NvbG9yPXdoaXRlJmxhYmVsPUFjdGl4JTIwV2ViJmxhYmVsQ29sb3I9YmxhY2smY29sb3I9d2hpdGUpXShodHRwczovL2FjdGl4LnJzLykgJm5ic3A7ClshW01vbmdvREJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTW9uZ29EQi02LjArLTAwNjg0QT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bW9uZ29kYiZsb2dvQ29sb3I9d2hpdGUmbGFiZWxDb2xvcj0xMDEwMTApXShodHRwczovL3d3dy5tb25nb2RiLmNvbSkgJm5ic3A7ClshW1N3YWdnZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU3dhZ2dlci1PQVMzLSUyMzg1RUEyRD9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289c3dhZ2dlciZsb2dvQ29sb3I9JTIzRkZGRkZGJmxhYmVsQ29sb3I9JTIzMDAwMDAwKV0oaHR0cHM6Ly9zd2FnZ2VyLmlvLykgJm5ic3A7ClshW1JlZG9jXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JlZG9jLU9BUzMtZ3JheT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289c3dhZ2dlciZsb2dvQ29sb3I9JTIzRkZGRkZGJmxhYmVsQ29sb3I9JTIzMDAwMDAwKV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS8pICZuYnNwOwpbIVtTY2FsYXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2NhbGFyLU9BUzMtYmx1ZT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289c3dhZ2dlciZsb2dvQ29sb3I9JTIzRkZGRkZGJmxhYmVsQ29sb3I9JTIzMDAwMDAwKV0oaHR0cHM6Ly9zY2FsYXIuY29tLykKCiMjIPCfmYvigI3imYLvuI8gQXV0b3IKCiogW0phdmllciBQaWPDs25dKGh0dHBzOi8vZ2l0aHViLmNvbS9NQ1Bpa29uKQoKIyMg4pyoIERlc2NyaXBjacOzbgoKQVBJIFJFU1QgZGUgcGVsw61jdWxhcywgc2VyaWVzIHkgcmVzZcOxYXMgZGUgbGFzIG1pc21hcy4KCj4gWyFOT1RFXQo+IEVzdGUgcHJveWVjdG8gdXRpbGl6YSBbU3dhZ2dlciBVSV0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS9zd2FnZ2VyLXVpLyksIFtSZWRvY10oaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS9yZWRvYykgeSBbU2NhbGFyXShodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL3NjYWxhcikgcGFyYSBsYSBkb2N1bWVudGFjacOzbi4KCiMjIPCfkqEgQ8OzbW8gZnVuY2lvbmEKCkVzdGUgcHJveWVjdG8gcmVhbGl6YSB1biBDUlVEIChDcmVhciwgT2J0ZW5lciwgTW9kaWZpY2FyIHkgRWxpbWluYXIpIGRlIFBlbMOtY3VsYXMsIFNlcmllcyB5IHN1cyBSZXNlw7Fhcy4gRGlzcG9uZW4gZGUgZW50aWRhZGVzLCBEVE9zLCByZXBvc2l0b3Jpb3MsIHNlcnZpY2lvcyBlIGltcGxlbWVudGFjaW9uZXMgZGUgbG9zIG1pc21vcy4KCiMjIPCfm6AgVGVjbm9sb2fDrWFzCgoqIFJ1c3QgKDIwMjEgRWRpdGlvbikKKiBBY3RpeCBXZWIgNC44LjAKKiBfKipEZXBlbmRlbmNpYXMgKENyYXRlcyk6KipfCiAgICAqIGFzeW5jLXRyYWl0ICgwLjEuODApCiAgICAqIGNocm9ubyAoMC40LjM4KQogICAgKiBkZXJpdmVfbW9yZSAoMC45OS4xOCkKICAgICogZG90ZW52ICgwLjE1LjApCiAgICAqIGVudl9sb2dnZXIgKDAuMTEuMykKICAgICogZnV0dXJlcy11dGlsICgwLjMuMzApCiAgICAqIGxhenlfc3RhdGljICgxLjUuMCkKICAgICogbG9nICgwLjQuMjEpCiAgICAqIG1vbmdvZGIgKDIuOC4yKQogICAgKiByZWdleCAoMS4xMC41KQogICAgKiBzZXJkZSAoMS4wLjIwMykKICAgICogc2VyZGVfanNvbiAoMS4wLjExOCkKICAgICogdXRvaXBhICg0LjIuMykKICAgICogdXRvaXBhLXJlZG9jICg0LjAuMCkKICAgICogdXRvaXBhLXNjYWxhciAoMC4xLjApCiAgICAqIHV0b2lwYS1zd2FnZ2VyLXVpICg3LjEuMCkKICAgICogdmFsaWRhdG9yICgwLjE4LjEpCiAgICAqIG1vY2thbGwgKDAuMTIuMSkKCiMjIPCfk4QgTGljZW5jaWEKCkVzdGUgcHJveWVjdG8gZXMgZGUgY8OzZGlnbyBhYmllcnRvIHkgZXN0w6EgZGlzcG9uaWJsZSBiYWpvIGxhIFtMaWNlbmNpYSAyLjAgZGUgQXBhY2hlXShMSUNFTlNFKS4K readmeEtag: '"78f236f109c92b69da7a6fa893d603ecc15d1719"' readmeLastModified: Fri, 19 Jul 2024 13:15:31 GMT repositoryId: 810446094 description: >- REST API related to movies, series and its reviews created with Rust and Actix Web. created: '2024-06-04T18:00:24Z' updated: '2024-07-19T13:15:39Z' language: Rust archived: false stars: 0 watchers: 2 forks: 0 owner: MCPikon logo: https://avatars.githubusercontent.com/u/82212139?v=4 license: Apache-2.0 repoEtag: '"34366e695c8cf1c51853cbb8c2ef8125b94f761d6837323f0752be4931c22524"' repoLastModified: Fri, 19 Jul 2024 13:15:39 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/productdock/build-apis-made-easy v3: true id: 7a05367e8ece888a40c50a1d22c84fb3 repositoryMetadata: base64Readme: >- IyBCdWlsZGluZyBhcGlzIG1hZGUgZWFzeQoKIyMgUHJlcmVxdWlzaXRlcwoKLSBUeXBlc3BlYzogYG5wbSBpbnN0YWxsIC1nIEB0eXBlc3BlYy9jb21waWxlcmAKLSBvYXBpLWNvZGVnZW46IGBnbyBpbnN0YWxsIGdpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vdjIvY21kL29hcGktY29kZWdlbkBsYXRlc3RgCi0gUG9zdG1hbgoKIyMgUnVuIGV4YW1wbGVzCgpBZnRlciBjbG9uaW5nIHRoaXMgcmVwb3NpdG9yeSwgY2hlY2sgTWFrZWZpbGUgZmlyc3QuIAoKQ2hvb3NlIHNlcnZlciBleGFtcGxlOgoKLSBSdW4gZ29sYW5nIGFwaSAocG9ydCA4MDg0KTogYG1ha2UgcnVuLWdvYAoKLSBSdW4gc3ByaW5nIGJvb3QgYXBpIChwb3J0IDgwODQpOiBgbWFrZSBydW4tanZtYAoKSW1wb3J0IGBldmVudHMtcG9zdG1hbi1jb2xsZWN0aW9uLmpzb25gIHRvIHBvc3RtYW4gdG8gdGVzdCB0aGUgQVBJLg== readmeEtag: '"62ec12ee863507c9778be2e3305ae52db2164600"' readmeLastModified: Tue, 06 Aug 2024 12:16:09 GMT repositoryId: 815105500 description: >- Building APIs Made Easy: From Specification to Code Generation and Testing blog post created: '2024-06-14T11:12:07Z' updated: '2024-08-06T12:16:17Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: ProductDock logo: https://avatars.githubusercontent.com/u/86293668?v=4 repoEtag: '"adbc11eac33c264668c4add9a182e0b770989586704e59d68527f96aed53ad8d"' repoLastModified: Tue, 06 Aug 2024 12:16:17 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/hackolade/eventbridge v3: true repositoryMetadata: base64Readme: >- IyBBV1MgRXZlbnRCcmlkZ2UgU2NoZW1hIFJlZ2lzdHJ5CgpQbHVnaW4gdG8gZW5hYmxlIEV2ZW50QnJpZGdlIFNjaGVtYSBSZWdpc3RyeSBhcyBhIHRhcmdldCBpbiBbSGFja29sYWRlXShodHRwczovL2hhY2tvbGFkZS5jb20pIGRhdGEgbW9kZWxpbmcuICBSZXF1aXJlcyBwcmlvciBkb3dubG9hZCBvZiB0aGUgSGFja29sYWRlIGFwcGxpY2F0aW9uIGZyb20gb3VyIFtkb3dubG9hZCBwYWdlXShodHRwczovL2hhY2tvbGFkZS5jb20vZG93bmxvYWQuaHRtbCkKClRoaXMgcGx1Z2luIGlzIGZvciBPcGVuQVBJIDMgc2NoZW1hcyBzdG9yZWQgaW4gdGhlIFNjaGVtYSBSZWdpc3RyeSBvZiBBV1MgRXZlbnRCcmlkZ2UuICAKCkhhY2tvbGFkZSBleHBvc2VzIGl0cyBjb3JlIGRhdGEgbW9kZWxpbmcgZW5naW5lIHRocm91Z2ggYSBwbHVnaW4gYXJjaGl0ZWN0dXJlLiAgRWFjaCBwbHVnaW4gYXBwbGllcyB0aGUgSGFja29sYWRlIGRhdGEgbW9kZWxpbmcgY2FwYWJpbGl0aWVzIHRvIGEgc3BlY2lmaWMgdGFyZ2V0IHRlY2hub2xvZ3ksIHdoZXRoZXIgZm9yIGRhdGEtYXQtcmVzdCAoZGF0YWJhc2VzKSBvciBkYXRhLWluLW1vdGlvbiAoY29tbXVuaWNhdGlvbnMuKSAgRWFjaCBwbHVnaW4gbWF0Y2hlcyB0aGUgc3BlY2lmaWMgYXNwZWN0cyBvZiB0aGUgdGFyZ2V0IGluIHRlcm1zIG9mIHRlcm1pbm9sb2d5LCBzdG9yYWdlIG1vZGVsLCBkYXRhIHR5cGVzLCBhbmQgY29tbXVuaWNhdGlvbiBwcm90b2NvbC4KClRvIGVuYWJsZSBkYXRhIG1vZGVsaW5nIGNhcGFiaWxpdGllcyBmb3IgYSB0YXJnZXQsIHlvdSBtdXN0IGZpcnN0IGRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBwbHVnaW4sIGZvbGxvd2luZyB0aGVzZSBbaW5zdHJ1Y3Rpb25zXShodHRwczovL2hhY2tvbGFkZS5jb20vaGVscC9Eb3dubG9hZGFkZGl0aW9uYWxEQnRhcmdldHBsdWdpbi5odG1sICJQbHVnaW4gZG93bmxvYWQgaW5zdHJ1Y3Rpb25zIikuCgpQbHVnaW5zIGNhbiBiZSBjdXN0b21pemVkIGJ5IGZvbGxvd2luZyB0aGVzZSBbaW5zdHJ1Y3Rpb25zXShodHRwczovL2hhY2tvbGFkZS5jb20vaGVscC9Vc2VyZGVmaW5lZGN1c3RvbXByb3BlcnRpZXMuaHRtbCAiUGx1Z2luIGN1c3RvbWl6YXRpb24gaW5zdHJ1Y3Rpb25zIikuCg== readmeEtag: '"abfe7ebc8c4b41dc8cea01b071ca978632b79e91"' readmeLastModified: Fri, 09 Aug 2024 17:24:32 GMT repositoryId: 271966005 description: >- Hackolade(https://hackolade.com) plugin for AWS EventBridge Schema Registry created: '2020-06-13T07:58:44Z' updated: '2024-09-05T18:54:41Z' language: JavaScript archived: false stars: 0 watchers: 6 forks: 8 owner: hackolade logo: https://avatars.githubusercontent.com/u/20265734?v=4 license: NOASSERTION repoEtag: '"1f1ef8b63ebd68e4cbcae9f8a48a0bb5d273138a769db0d3fae852be377c798b"' repoLastModified: Thu, 05 Sep 2024 18:54:41 GMT foundInMaster: true category: - Server - Server Implementations id: a0a295c1b32b9cbaeb72282a09c7dcf2 - name: Bitstream API Analytics source: Tooling repository issues source_description: >- Bitstream is an API analytics platform designed to provide insights into API usage, performance, and security. It offers tools for monitoring and alerting, collaboration and intelligent features to automate API management.- Repository: https://github.com/bitstreamapis link: https://www.bitstreamapis.com v3_1: true v3: true v2: true sourceIssueMetadata: issueNumber: 158 author: hedleysmith createdAt: '2024-07-30T22:56:42Z' updatedAt: '2024-07-30T22:56:42Z' url: https://github.com/OAI/tools.openapis.org/issues/158 status: open id: b75cd921cb6a42d3f0e6456c2a9e6bd9 foundInMaster: true - source: https://openapi.tools/ name: orval category: - Code Generators - Mock language: - Typescript - React - Vue - Svelte - Angular source_description: >- orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. Generate, valid, cache and mock in your frontend applications all with your OpenAPI specification. 🍺 link: https://orval.dev repository: https://github.com/orval-labs/orval v2: true v3: true id: 72b4e3cc7ddcef07aadfe99a81245653 repositoryMetadata: base64Readme: >- WyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9vcnZhbC5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvb3J2YWwpCiFbTlBNIERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vb3J2YWw/Y29sb3I9cHVycGxlKQpbIVtMaWNlbnNlOiBNSVRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQpbIVt0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55YW1sKQpbIVtvcnZhbF0oaHR0cHM6Ly9zbnlrLmlvL2Fkdmlzb3IvbnBtLXBhY2thZ2Uvb3J2YWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9zbnlrLmlvL2Fkdmlzb3IvbnBtLXBhY2thZ2Uvb3J2YWwpCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0iLi9sb2dvL29ydmFsLWxvZ28taG9yaXpvbnRhbC5zdmc/cmF3PXRydWUiIHdpZHRoPSI1MDAiIGhlaWdodD0iMTYwIiBhbHQ9Im9ydmFsIC0gUmVzdGZ1bGwgQ2xpZW50IEdlbmVyYXRvciIgLz4KPC9wPgo8aDEgYWxpZ249ImNlbnRlciI+CiAgVmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9vcnZhbC5kZXYiIHRhcmdldD0iX2JsYW5rIj5vcnZhbC5kZXY8L2E+IGZvciBkb2NzLCBndWlkZXMsIEFQSSBhbmQgYmVlciEKPC9oMT4KCuKaoO+4jyBBY3RpdmVseSBzZWFyY2hpbmcgZm9yIGNvbnRyaWJ1dG9ycywgaWYgeW91IHdhbnQgdG8gaGVscCwgcGxlYXNlIGNvbnRhY3QgbWUgb24gW2Rpc2NvcmRdKGh0dHBzOi8vZGlzY29yZC5nZy82ZkMyc2pEVTd3KSDimqDvuI8KCiMjIyBDb2RlIEdlbmVyYXRpb24KCmBvcnZhbGAgaXMgYWJsZSB0byBnZW5lcmF0ZSBjbGllbnQgd2l0aCBhcHByb3ByaWF0ZSB0eXBlLXNpZ25hdHVyZXMgKFR5cGVTY3JpcHQpIGZyb20gYW55IHZhbGlkIE9wZW5BUEkgdjMgb3IgU3dhZ2dlciB2MiBzcGVjaWZpY2F0aW9uLCBlaXRoZXIgaW4gYHlhbWxgIG9yIGBqc29uYCBmb3JtYXRzLgoKYEdlbmVyYXRlYCwgYHZhbGlkYCwgYGNhY2hlYCBhbmQgYG1vY2tgIGluIHlvdXIgUmVhY3QsIFZ1ZSwgU3ZlbHRlIGFuZCBBbmd1bGFyIGFwcGxpY2F0aW9ucyBhbGwgd2l0aCB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KCiMjIyBTYW1wbGVzCgpZb3UgY2FuIGZpbmQgYmVsb3cgc29tZSBzYW1wbGVzOgoKLSBbcmVhY3QgYXBwXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL3JlYWN0LWFwcCkKLSBbcmVhY3QgcXVlcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcnZhbC1sYWJzL29ydmFsL3RyZWUvbWFzdGVyL3NhbXBsZXMvcmVhY3QtcXVlcnkpCi0gW3N2ZWx0ZSBxdWVyeV0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy9zdmVsdGUtcXVlcnkpCi0gW3Z1ZSBxdWVyeV0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy92dWUtcXVlcnkpCi0gW3JlYWN0IGFwcCB3aXRoIHN3cl0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy9yZWFjdC1hcHAtd2l0aC1zd3IpCi0gW2FuZ3VsYXIgYXBwXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL2FuZ3VsYXItYXBwKQotIFtob25vXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL2hvbm8pCi0gW25leHQgYXBwIHdpdGggZmV0Y2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcnZhbC1sYWJzL29ydmFsL3RyZWUvbWFzdGVyL3NhbXBsZXMvbmV4dC1hcHAtd2l0aC1mZXRjaCkKCiMjIyBQbGF5Z3JvdW5kCgpUcnkgT3J2YWwgb3V0IGZvciB5b3Vyc2VsZiB1c2luZyBvdXIgW1BsYXlncm91bmRdKGh0dHBzOi8vb3J2YWwuZGV2L3BsYXlncm91bmQpIGFwcGxpY2F0aW9uIQoKIyMgU3RhciBIaXN0b3J5Cgo8YSBocmVmPSJodHRwczovL3N0YXItaGlzdG9yeS5jb20vI29ydmFsLWxhYnMvb3J2YWwmRGF0ZSI+CiAgPHBpY3R1cmU+CiAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vYXBpLnN0YXItaGlzdG9yeS5jb20vc3ZnP3JlcG9zPW9ydmFsLWxhYnMvb3J2YWwmdHlwZT1EYXRlJnRoZW1lPWRhcmsiIC8+CiAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIgc3Jjc2V0PSJodHRwczovL2FwaS5zdGFyLWhpc3RvcnkuY29tL3N2Zz9yZXBvcz1vcnZhbC1sYWJzL29ydmFsJnR5cGU9RGF0ZSIgLz4KICAgIDxpbWcgYWx0PSJTdGFyIEhpc3RvcnkgQ2hhcnQiIHNyYz0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9b3J2YWwtbGFicy9vcnZhbCZ0eXBlPURhdGUiIC8+CiAgPC9waWN0dXJlPgo8L2E+CgojIyMgQWxsIFRoYW5rcyBUbyBPdXIgQ29udHJpYnV0b3JzOgoKPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvZ3JhcGhzL2NvbnRyaWJ1dG9ycyI+CiAgPGltZyBzcmM9Imh0dHBzOi8vY29udHJpYi5yb2Nrcy9pbWFnZT9yZXBvPWFueW1hbmlheC9vcnZhbCIgLz4KPC9hPgo= readmeEtag: '"a476e741ab83c365e64f07059f738433addaca17"' readmeLastModified: Mon, 19 Aug 2024 07:49:28 GMT repositoryId: 238402553 description: >- orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺 created: '2020-02-05T08:31:50Z' updated: '2024-09-05T22:28:06Z' language: TypeScript archived: false stars: 2798 watchers: 12 forks: 310 owner: orval-labs logo: https://avatars.githubusercontent.com/u/176128704?v=4 license: MIT repoEtag: '"c03a413b2509c60d500dd5d44ea3f50c0e5a260b1d0ebc2bedef293f7ff89c11"' repoLastModified: Thu, 05 Sep 2024 22:28:06 GMT foundInMaster: true oldLocations: - https://github.com/anymaniax/orval - source: openapi3 tags repository: https://github.com/domapic/domapic-base v3: true repositoryMetadata: base64Readme: >- IVtEb21hcGljIEJhc2VdW2RvbWFwaWMtYmFzZS1sb2dvLWltYWdlXQoKIyBEb21hcGljIEJhc2UKCkJhc2UgZm9yIERvbWFwaWMgTm9kZS5qcyBwYWNrYWdlcy4KClshW0J1aWxkIHN0YXR1c11bdHJhdmlzY2ktaW1hZ2VdXVt0cmF2aXNjaS11cmxdIDwhLS0gWyFbQ292ZXJhZ2UgU3RhdHVzXVtjb3ZlcmFsbHMtaW1hZ2VdXVtjb3ZlcmFsbHMtdXJsXSBbIVtRdWFsaXR5IEdhdGVdW3F1YWxpdHktZ2F0ZS1pbWFnZV1dW3F1YWxpdHktZ2F0ZS11cmxdIC0tPiBbIVtqcy1zdGFuZGFyZC1zdHlsZV1bc3RhbmRhcmQtaW1hZ2VdXVtzdGFuZGFyZC11cmxdCgpbIVtOUE0gZGVwZW5kZW5jaWVzXVtucG0tZGVwZW5kZW5jaWVzLWltYWdlXV1bbnBtLWRlcGVuZGVuY2llcy11cmxdIFshW0xhc3QgY29tbWl0XVtsYXN0LWNvbW1pdC1pbWFnZV1dW2xhc3QtY29tbWl0LXVybF0gPCEtLSBbIVtMYXN0IHJlbGVhc2VdW3JlbGVhc2UtaW1hZ2VdXVtyZWxlYXNlLXVybF0gLS0+CgpbIVtOUE0gZG93bmxvYWRzXVtucG0tZG93bmxvYWRzLWltYWdlXV1bbnBtLWRvd25sb2Fkcy11cmxdIFshW1dlYnNpdGVdW3dlYnNpdGUtaW1hZ2VdXVt3ZWJzaXRlLXVybF0gWyFbTGljZW5zZV1bbGljZW5zZS1pbWFnZV1dW2xpY2Vuc2UtdXJsXQoKLS0tCgojIyBUYWJsZSBvZiBDb250ZW50cwoKKiBbSW50cm9kdWN0aW9uXSgjaW50cm9kdWN0aW9uKQoqIFtRdWljayBTdGFydF0oI3F1aWNrLXN0YXJ0KQoqIFtPcHRpb25zXSgjb3B0aW9ucykKCSogW0dldCBjb25maWddKCNnZXQtY29uZmlnKQoJKiBbU2V0IGNvbmZpZ10oI3NldC1jb25maWcpCgkqIFtDdXN0b20gY29uZmlnXSgjY3VzdG9tLWNvbmZpZykKKiBbU2VydmVyXSgjc2VydmVyKQoqIFtBZGRpbmcgQVBJIHJlc291cmNlc10oI2FkZGluZy1hcGktcmVzb3VyY2VzKQoJKiBbT3BlbiBBUEkgZGVmaW5pdGlvbnNdKCNvcGVuLWFwaS1kZWZpbml0aW9ucykKCSogW09wZXJhdGlvbnNdKCNvcGVyYXRpb25zKQogICogW0N1c3RvbSBtaWRkbGV3YXJlc10oI2N1c3RvbS1taWRkbGV3YXJlcykKKiBbQ2xpZW50XSgjY2xpZW50KQoqIFtUcmFjZXNdKCN0cmFjZXMpCiogW0Vycm9yc10oI2Vycm9ycykKKiBbU3RvcmFnZV0oI3N0b3JhZ2UpCiogW1V0aWxzXSgjdXRpbHMpCiogW0luZm9dKCNpbmZvKQoqIFtBdXRoZW50aWNhdGlvbl0oI2F1dGhlbnRpY2F0aW9uKQoJKiBbQXBpIEtleV0oI2FwaS1rZXkpCgkqIFtKd3RdKCNqd3QpCgkqIFtBdXRob3JpemF0aW9uXSgjYXV0aG9yaXphdGlvbikKKiBbQ0xJXSgjY29tbWFuZC1saW5lLWludGVyZmFjZSkKCSogW0ltcGxlbWVudGF0aW9uXSgjaW1wbGVtZW50YXRpb24pCgkqIFtVc2FnZV0oI3VzYWdlKQoJKiBbQ3VzdG9tIG9wdGlvbnMgYW5kIGNvbW1hbmRzXSgjY3VzdG9tLW9wdGlvbnMtYW5kLWNvbW1hbmRzKQoqIFtUZXN0IHN1aXRlc10oI3Rlc3Qtc3VpdGVzKQoKLS0tCgojIyBJbnRyb2R1Y3Rpb24KClRoaXMgcGFja2FnZSBpcyB1c2VkIGFzIGEgYmFzZSBmb3IgW19fZG9tYXBpYy1jb250cm9sbGVyX19dW2RvbWFwaWMtY29udHJvbGxlci11cmxdIGFuZCBbX19kb21hcGljLXNlcnZpY2VfX11bZG9tYXBpYy1zZXJ2aWNlLXVybF0gcGFja2FnZXMuCgpNYXliZSB5b3XCtGxsIGJldHRlciB3YW50IHRvIHJlYWQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGF0IHBpZWNlcyBhbmQgbGVhcm4gaG93IHVzZSB0aGVtIGRpcmVjdGx5LCBiZWNhdXNlIHRoaXMgaXMgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeS4gQW55d2F5LCBpZiB5b3UgdGhpbmsgaXQgY2FuIGJlIHVzZWZ1bCBmb3IgeW91IHNlcGFyYXRlbHkuLi4KCkl0IHByb3ZpZGVzOgoKKiBfX1NlcnZlcl9fIHdpdGggYW4gZXh0ZW5zaWJsZSBBUEk6CgkqIE9wdGlvbmFsIHNzbCBwcm90b2NvbCwganVzdCBwcm92aWRlIHNzbCBjZXJ0aWZpY2F0ZSBhbmQga2V5IHBhdGhzLgoJKiBPQVVUSC4gSnd0IGFuZC9vciBhcGlLZXkgY3VzdG9taXphYmxlIGF1dGhlbnRpY2F0aW9uIHRvIGFwaSByZXNvdXJjZXMgb2YgY2hvaWNlLgoJKiBBdXRoZW50aWNhdGlvbiBjYW4gYmUgZGlzYWJsZWQgaW4gYSByYW5nZSBvZiBJUHMgb2YgY2hvaWNlLCBvciBjb21wbGV0ZWx5LgoJKiBDdXN0b21pemFibGUgYXV0aG9yaXphdGlvbiBsZXZlbCBmb3IgZWFjaCBBUEkgcmVzb3VyY2UuCgkqIEFkZCBBUEkgcmVzb3VyY2VzIHVzaW5nIE9wZW5BcGkgMy4wIGRlZmluaXRpb25zLgoJKiBIdHRwIE9QVElPTlMgbWV0aG9kIGNyZWF0ZWQgZm9yIGVhY2ggQVBJIHJlc291cmNlLCBhdXRvIGRlc2NyaWJpbmcgaXQuCgkqIEF1dG9tYXRpYyBhcGkgcGFyYW1ldGVycyBhbmQgYm9keSB2YWxpZGF0aW9uIHVzaW5nIHRoZSBvcGVuYXBpIHNjaGVtYXMuCgkqIEFQSSBvcGVyYXRpb25zIGFzIFByb21pc2VzLgoJKiBBdXRvbWF0aWMgZXJyb3IgaGFuZGxpbmcgbWFwcGVkIHRvIEhUVFAgZXJyb3JzLgoJKiBPcGVuYXBpLmpzb24gYXV0byBnZW5lcmF0ZWQgYW5kIHNlcnZlZC4KCSogQnVpbHQtaW4gX1N3YWdnZXJfIHdlYiBpbnRlcmZhY2UuCiAgKiBBbGxvd3Mgc2VydmluZyBzdGF0aWNzIHVuZGVyIHBhdGhzIG9mIHlvdXIgY2hvaWNlLgoqIF9fQ2xpZW50X18gdG8gb3RoZXIgRG9tYXBpYyBzZXJ2aWNlczoKCSogQXV0b21hdGljIGF1dGhlbnRpY2F0aW9uIGlmIEFQSSByZXNvdXJjZSByZXF1aXJlcyBpdC4KCSogUmVxdWVzdHMgYXMgUHJvbWlzZXMuCiogX19Db25maWd1cmF0aW9uX18KCSogQnVpbHQtaW4gc2VydmljZSBjb21tYW5kIGxpbmUgb3B0aW9ucy4gKHBvcnQsIGhvc3QsIGV0Yy4uLikuCgkqIEZ1bGx5IGV4dGVuc2libGUgd2l0aCB5b3VyIG93biBvcHRpb25zLgoJKiBTdG9yYWJsZS4gTmV4dCBleGVjdXRpb25zIHdpbGwgcmVtZW1iZXIgb3B0aW9ucyBpZiBgLS1zYXZlQ29uZmlnYCBpcyBzcGVjaWZpZWQgaW4gb25lIGV4ZWN1dGlvbi4KKiBfX1RyYWNlc19fCgkqIFNpeCBkaWZmZXJlbnQgbG9nIGxldmVscy4KCSogQW5zaSBjb2xvcmVkLCBhdCB5b3VyIGNob2ljZS4KCSogRGFpbHkgZmlsZSwgbGFzdCB0ZW4gc3RvcmVkLgoqIF9fRXJyb3JzX18KCSogQ3VzdG9tIGVycm9ycyBmb3IgZWFzeSBlcnJvciBoYW5kbGluZy4KCSogTWFwcGluZyB0byBIVFRQIGVycm9ycy4KKiBfX1N0b3JhZ2VfXwoJKiBKYXZhc2NyaXB0IG9iamVjdHMgdG8gSlNPTiBhdCBmaWxlIHN5c3RlbSBhbmQgdmljZXZlcnNhLgoJKiBGaWxlIHN5c3RlbSBhY2Nlc3Mgc2NvcGVkIHRvIHVuaXF1ZSBzZXJ2aWNlIGluc3RhbmNlIGZvbGRlci4KKiBfX0NMSV9fLiBFYXN5IGltcGxlbWVudGFibGUgaW4geW91ciBvd24gcGFja2FnZSwgaXQgcHJvdmlkZXM6CgkqIElmIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQgdXNpbmcgdGhlIENMSSwgdGhlIHByb2Nlc3Mgd2lsbCBiZSBleGVjdXRlZCBpbiBiYWNrZ3JvdW5kLCBhbmQgbWFuYWdlZCB1c2luZyBbX1BNMl9dW3BtMi11cmxdLgoJKiBNdWx0aS1pbnN0YW5jaWFibGUuIFN0YXJ0IG1hbnkgc2VydmljZXMgaW5zdGFuY2VzIHByb3ZpZGluZyBkaWZmZXJlbnQgbmFtZXMuCgkqIENMSSBjb21tYW5kcyB0byBzdG9wIG9yIGRpc3BsYXkgbG9ncy4KCSogRXh0ZW5zaWJsZSB3aXRoIHlvdXIgb3duIGNvbW1hbmRzLgoKLS0tCgojIyBRdWljayBzdGFydAoKYGBganMKLy8gc2VydmVyLmpzIGZpbGUKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKQpjb25zdCBkb21hcGljID0gcmVxdWlyZSgnZG9tYXBpYy1iYXNlJykKCmRvbWFwaWMuU2VydmljZSh7CiAgcGFja2FnZVBhdGg6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUpLAogIHR5cGU6ICdtb2R1bGUnCn0pLnRoZW4oc2VydmljZSA9PiB7CiAgcmV0dXJuIHNlcnZpY2Uuc2VydmVyLnN0YXJ0KCkKfSkKYGBgCgoqIFRoZSBgcGFja2FnZVBhdGhgIG9wdGlvbiBtdXN0IGJlIHRoZSBwYXRoIHdoZXJlIHlvdXIgcGFja2FnZS5qc29uIGZpbGUgaXMsIGluIG9yZGVyIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBgL2FwaS9hYm91dGAgYXBpIHJlc291cmNlIHRoYXQgY2FuIHByb3ZpZGUgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwYWNrYWdlIHRvIG90aGVyIGRvbWFwaWMgc2VydmljZXMuCiogVGhlIGB0eXBlYCBvcHRpb24gd2lsbCBiZSBleHBvc2VkIGluIHRoZSBgYXBpL2Fib3V0YCBhcGkgcmVzb3VyY2UgZGlyZWN0bHksIGluIG9yZGVyIHRvIGluZm9ybSBhYm91dCB0aGUgc2VydmljZSB0eXBlLgoKYGBgc2hlbGwKIyBTdGFydCBzZXJ2ZXIKbm9kZSAuL3NlcnZlci5qcwpgYGAKCkJyb3dzZSB0byBodHRwOi8vbG9jYWxob3N0OjMwMDAgdG8gb3BlbiBfU3dhZ2dlcl8gaW50ZXJmYWNlIGFuZCBpbnNwZWN0IEFQSS4KCltiYWNrIHRvIHRvcF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLS0tCgojIyBPcHRpb25zCgpgYGBzaGVsbAojIERpc3BsYXkgaGVscCB3aXRoIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGFsbCBvcHRpb25zCm5vZGUgLi9zZXJ2ZXIuanMgLS1oZWxwCmBgYAoKb3B0aW9uIHwgdHlwZSB8IGRlc2NyaXB0aW9uIHwgZGVmYXVsdAotLS0gfCAtLS0gfCAtLS0gfCAtLS0KYG5hbWVgIHwgU3RyaW5nIHwgU2VydmljZSBpbnN0YW5jZSBuYW1lLiBJZiBub3QgcmVjZWl2ZWQsIHRoZSBzZXJ2aWNlIG5hbWUgd2lsbCBiZSB0aGUgcGFja2FnZSBuYW1lIHwgLQpgcG9ydGAgfCBOdW1iZXIgfCBIdHRwIHBvcnQgdXNlZCB8IDMwMDAKYGhvc3ROYW1lYCB8IFN0cmluZyB8IEhvc3RuYW1lIGZvciB0aGUgc2VydmVyIHwgLQpgc3NsQ2VydGAgfCBTdHJpbmcgfCBQYXRoIHRvIGFuIHNzbCBjZXJ0aWZpY2F0ZSB8IC0KYHNzbEtleWAgfCBTdHJpbmcgfCBQYXRoIHRvIGFuIHNzbCBrZXkgfCAtIApgYXV0aERpc2FibGVkYCB8IEFycmF5IHwgQXJyYXkgb2YgSVBzIG9yIENJRFIgSVAgcmFuZ2VzIHdpdGggYXV0aGVudGljYXRpb24gZGlzYWJsZWQgfCBbJzEyNy4wLjAuMScsICc6OjEvMTI4J10KYGF1dGhgIHwgQm9vbGVhbiB8IElmIGZhbHNlLCB0aGUgYXV0aGVudGljYXRpb24gd2lsbCBiZSBkaXNhYmxlZCBmb3IgYWxsIGFwaSByZXNvdXJjZXMgYW5kIG9yaWdpbnMgfCB0cnVlCmBjb2xvcmAgfCBCb29sZWFuIHwgVXNlIEFOU0kgY29sb3JzIGluIHRyYWNlcyB8IHRydWUKYGxvZ0xldmVsYCB8IFN0cmluZyB8IFRyYWNpbmcgbGV2ZWwuIENob2ljZXMgYXJlICdsb2cnLCAndHJhY2UnLCAnZGVidWcnLCAnaW5mbycsICd3YXJuJyBhbmQgJ2Vycm9yJyB8IGluZm8KYHBhdGhgIHwgU3RyaW5nIHwgUGF0aCB0byBiZSB1c2VkIGFzIGhvbWUgcGF0aCwgaW5zdGVhZCBvZiB1c2VywrRzIGRlZmF1bHQgKC5kb21hcGljIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWQgaW5zaWRlKSB8IH4KYHNhdmVDb25maWdgIHwgQm9vbGVhbiB8IFNhdmUgY3VycmVudCBvcHRpb25zIGZvciBuZXh0IGV4ZWN1dGlvbiAoZXhjZXB0IGBuYW1lYCBhbmQgYHBhdGhgKSB8IGZhbHNlCmByZWplY3RVbnRydXN0ZWRgIHwgQm9vbGVhbiB8IFJlamVjdCB1bnRydXN0ZWQgc3NsIGNlcnRpZmljYXRlcyB3aGVuIHVzaW5nIGJ1aWx0LWluIGNsaWVudCB0byBtYWtlIHJlcXVlc3RzIHRvIGFub3RoZXIgc2VydmljZXMgfCBmYWxzZQoKRXhhbXBsZSBvZiBzZXR0aW5nIG9wdGlvbnMgZnJvbSBjb21tYW5kIGxpbmU6CmBgYHNoZWxsCm5vZGUgLi9zZXJ2ZXIuanMgLS1uYW1lPWZvb05hbWUgLS1hdXRoRGlzYWJsZWQ9MTkyLjE2OC4xLjEgMTcyLjAuMC4xIC0tbG9nTGV2ZWw9ZGVidWcgLS1jb2xvcj1mYWxzZSAtLWF1dGg9dHJ1ZQpgYGAKCiMjIyBHZXQgY29uZmlnCgpPcHRpb25zIGRlZmluZWQgZnJvbSBjb21tYW5kIGxpbmUgYXJlIGF2YWlsYWJsZSBpbiB0aGUgYGNvbmZpZ2Agb2JqZWN0IG9mIHRoZSBzZXJ2aWNlLgoKYHNlcnZpY2UuY29uZmlnLmdldChba2V5XSlgCgpgYGBqcwpkb21hcGljLlNlcnZpY2UoewogIHBhY2thZ2VQYXRoOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lKQp9KS50aGVuKHNlcnZpY2UgPT4gewogIHJldHVybiBzZXJ2aWNlLmNvbmZpZy5nZXQoKQp9KS50aGVuKGNvbmZpZ3VyYXRpb24gPT4gewogIGNvbnNvbGUubG9nKGNvbmZpZ3VyYXRpb24pCn0pCmBgYAoKIyMjIFNldCBjb25maWcKCkl0IGlzIG5vdCByZWNvbW1lbmRlZCwgYnV0LCBpdCBpZiBoYXMgc2Vuc2UsIGBjb25maWdgIHByb3BlcnRpZXMgY2FuIGJlIG1vZGlmaWVkIHByb2dyYW1tYXRpY2FsbHkuIElmIHlvdSB3YW50IHRvIHN0b3JlIHNvbWUgZGF0YSwgeW91wrRsbCBiZXR0ZXIgd2FudCB0byByZWFkIGFib3V0IHRoZSBbc3RvcmFnZSBmZWF0dXJlXSgjc3RvcmFnZSkuIAoKYHNlcnZpY2UuY29uZmlnLnNldChrZXkgWywgdmFsdWVdKWAKCmBgYGpzCmRvbWFwaWMuU2VydmljZSh7CiAgcGFja2FnZVBhdGg6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUpCn0pLnRoZW4oc2VydmljZSA9PiB7CiAgcmV0dXJuIHNlcnZpY2UuY29uZmlnLnNldCgnZm9vS2V5JywgJ2Zvb1ZhbHVlJykKICAgIC50aGVuKHZhbHVlID0+IHsKICAgICAgY29uc29sZS5sb2codmFsdWUpCiAgICAgIC8vIGZvb1ZhbHVlCiAgICB9KQp9KQpgYGAKCiMjIyBDdXN0b20gY29uZmlnCgpZb3UgY2FuIGFkZCB5b3VyIG93biBjdXN0b20gY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGV5IHdpbGwgYmUgc2V0ZWFibGUgZnJvbSBjb21tYW5kIGxpbmUgZXhlY3V0aW9uLCBkaXNwbGF5ZWQgaW4gaGVscCBhbmQgdmFsaWRhdGVkIGFzIHRoZSByZXN0IG9mIG9wdGlvbnMuIFVzZSBgY3VzdG9tQ29uZmlnYCBwYXJhbWV0ZXIgdG8gZGVmaW5lIHRoZW0uCgpbX1lhcmdzX11beWFyZ3MtdXJsXSBpcyB1c2VkIGFzIHVuZGVybGF5ZXIgdG8gbWFuYWdlIG9wdGlvbnMsIHNvIHlvdSBjYW4gcmVhZCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIGFib3V0IGhvdyB0byBkZWZpbmUgdGhlbToKCmBgYGpzCi8vIFVzYWdlIG9mIGN1c3RvbUNvbmZpZyBwYXJhbWV0ZXIKZG9tYXBpYy5TZXJ2aWNlKHsKICBwYWNrYWdlUGF0aDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSksCiAgY3VzdG9tQ29uZmlnOiB7CiAgICBmb29PcHRpb246IHsKICAgICAgdHlwZTogJ2Jvb2xlYW4nLAogICAgICBhbGlhczogWydmb28tb3B0aW9uJ10sCiAgICAgIGRlc2NyaWJlOiAnVGVzdGluZyBhIGN1c3RvbSBjb25maWd1cmF0aW9uIG9wdGlvbicsCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0KICB9Cn0pLnRoZW4oc2VydmljZSA9PiB7CiAgcmV0dXJuIHNlcnZpY2UuY29uZmlnLmdldCgpCn0pLnRoZW4oY29uZmlndXJhdGlvbiA9PiB7CiAgY29uc29sZS5sb2coY29uZmlndXJhdGlvbikKfSkKYGBgCmBgYHNoZWxsCm5vZGUgLi9zZXJ2ZXIuanMgLS1mb29PcHRpb249ZmFsc2UKYGBgCgpDdXN0b20gb3B0aW9ucyBkZWZpbmVkIGZvciBhIHNlcnZpY2Ugc2hvdWxkIGJlIGRlZmluZWQgaW4gQ0xJIGltcGxlbWVudGF0aW9uIHRvbywgdG8gbWFrZSB0aGVtIGF2YWlsYWJsZSBmcm9tIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UuIFJlYWQgdGhlIFtDTEkgY3VzdG9tIG9wdGlvbnMgYW5kIGNvbW1hbmRzXSgjY3VzdG9tLW9wdGlvbnMtYW5kLWNvbW1hbmRzKSBjaGFwdGVyIGZvciBmdXJ0aGVyIGluZm8uCgpEZWZhdWx0IG9wdGlvbnMgdmFsdWVzIChvciBzYXZlZCB2YWx1ZXMgaWYgdGhlIGAtLXNhdmVDb25maWdgIG9wdGlvbiBpcyB1c2VkKSBhcmUgc2F2ZWQgaW50byBhIGZpbGUgYXQgYH4vLmRvbWFwaWMvPHNlcnZpY2VOYW1lPi9jb25maWcvc2VydmljZS5qc29uYC4gVGhpcyBmaWxlIGNhbiBiZSBlZGl0ZWQgbWFudWFsbHksIGFuZCB0aGUgbmV3IHZhbHVlcyB3aWxsIGJlIGFwcGxpZWQgbmV4dCB0aW1lIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQuCgpbYmFjayB0byB0b3BdKCN0YWJsZS1vZi1jb250ZW50cykKCi0tLQoKIyMgU2VydmVyCgpUaGUgYHNlcnZpY2Uuc2VydmVyYCBvYmplY3QgaGFzIG1ldGhvZHM6CgoqIGBzdGFydGAgLSBTdGFydHMgdGhlIHNlcnZlci4gUmV0dXJucyBhIHByb21pc2UsIHJlc29sdmVkIHdoZW4gdGhlIHNlcnZlciBpcyBydW5uaW5nLiBPbmNlIHRoZSBzZXJ2ZXIgaXMgc3RhcnRlZCwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGFkZCBtb3JlIG9wZW4gYXBpIGRlZmluaXRpb25zLCBvcGVyYXRpb25zLCBvciBhdXRoZW50aWNhdGlvbiBpbXBsZW1lbnRhdGlvbnMuCiogYGluaXRgIC0gT25seSBpbml0aWFsaXplIHRoZSBzZXJ2ZXIsIGFkZGluZyBhbGwgaW50ZXJuYWwgbWlkZGxld2FyZXMgYW5kIHJvdXRlcnMsIGFuZCByZXR1cm5zIHRoZSBzZXJ2ZXIgaW5zdGFuY2UuIFRoaXMgYWxsb3dzIHlvdSB0byBhZGQgbW9yZSBjdXN0b20gbWlkZGxld2FyZXMsIHNvY2tldHMsIGV0Yy4gVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBqdXN0IGJlZm9yZSBjYWxsaW5nIHRvIHRoZSAic3RhcnQiIG1ldGhvZC4KKiBgZXh0ZW5kT3BlbkFwaWAgLSBBZGQgb3BlbiBhcGkgZGVmaW5pdGlvbnMgdG8gdGhlIHNlcnZlci4gUmVhZCB0aGUgW0FkZGluZyBBUEkgcmVzb3VyY2VzXSgjYWRkaW5nLWFwaS1yZXNvdXJjZXMpIGNoYXB0ZXIgZm9yIGZ1cnRoZXIgaW5mby4KKiBgYWRkT3BlcmF0aW9uc2AgLSBBZGQgb3BlcmF0aW9ucyByZWxhdGVkIHRvIGFwaSBwYXRocy4gUmVhZCBbQWRkaW5nIEFQSSByZXNvdXJjZXNdKCNhZGRpbmctYXBpLXJlc291cmNlcykpLgoqIGBhZGRBdXRoZW50aWNhdGlvbmAgLSBBZGQgYXV0aGVudGljYXRpb24gaW1wbGVtZW50YXRpb25zLiBSZWFkIFtBdXRoZW50aWNhdGlvbl0oI2F1dGhlbnRpY2F0aW9uKS4KKiBgYWRkQXV0aG9yaXphdGlvbmAgLSBBZGQgYXV0aG9yaXphdGlvbiByb2xlcy4gUmVhZCBbQXV0aGVudGljYXRpb25dKCNhdXRoZW50aWNhdGlvbikuCiogYGFkZE1pZGRsZXdhcmVgIC0gQWRkIGN1c3RvbSBtaWRkbGV3YXJlcyB0byBhcGkuIFJlYWQgW0N1c3RvbSBtaWRkbGV3YXJlc10oI2N1c3RvbS1taWRkbGV3YXJlcykuCiogYGFkZFN0YXRpY2AgLSBTZXJ2ZSBzdGF0aWNzLiBGaXJzdCBhcmd1bWVudCBkZWZpbmVzIHNlcnZlciBwYXRoLCBzZWNvbmQgYXJndW1lbnQgZGVmaW5lcyBmaWxlU3lzdGVtIHBhdGguIGBhZGRTdGF0aWMoIi9hc3NldHMiLCBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAiYXNzZXRzIikpYC4gU3RhdGljcyBhZGRlZCB3aXRoIHRoaXMgbWV0aG9kIHdpbGwgYmUgc2VydmVkIHVzaW5nIGd6aXAgY29tcHJlc3Npb24uCgpbYmFjayB0byB0b3BdKCN0YWJsZS1vZi1jb250ZW50cykKCi0tLQoKIyMgQWRkaW5nIEFQSSByZXNvdXJjZXMKCllvdSBjYW4gYWRkIHlvdXIgb3duIEFQSSByZXNvdXJjZXMuIFRoZXkgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBvcGVuYXBpLmpzb24gZGVmaW5pdGlvbiwgYW5kIHdpbGwgYmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBgL2FwaWAgcGF0aCBvZiB0aGUgc2VydmVyLgoKYGBganMKLy8gc2VydmVyLmpzIGZpbGUKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKQpjb25zdCBkb21hcGljID0gcmVxdWlyZSgnZG9tYXBpYy1iYXNlJykKCmNvbnN0IG15T3BlbkFwaSA9IHJlcXVpcmUoJy4vYXBpL215T3BlbkFwaS5qc29uJykKCmRvbWFwaWMuU2VydmljZSh7CiAgcGFja2FnZVBhdGg6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUpCn0pLnRoZW4oc2VydmljZSA9PiB7CiAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgIHNlcnZpY2Uuc2VydmVyLmV4dGVuZE9wZW5BcGkobXlPcGVuQXBpKSwKICAgIHNlcnZpY2Uuc2VydmVyLmFkZE9wZXJhdGlvbnMoewogICAgICBteUFwaU9wZXJhdGlvbjogewogICAgICAgIGhhbmRsZXI6IChwYXJhbXMsIGJvZHksIHJlcykgPT4gewogICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7CiAgICAgICAgICAgIGhlbGxvOiAnd29ybGQnCiAgICAgICAgICB9KQogICAgICAgIH0KICAgICAgfQogICAgfSkKICBdKS50aGVuKCgpID0+IHsKICAgIHJldHVybiBzZXJ2aWNlLnNlcnZlci5zdGFydCgpCiAgfSkKfSkKYGBgCgojIyMgT3BlbiBBUEkgZGVmaW5pdGlvbnMKCmBzZXJ2aWNlLnNlcnZlci5leHRlbmRPcGVuQXBpKG9wZW5BcGlEZWZpbml0aW9uKWAKCk9wZW5hcGkgMy4wIHNwZWMgaXMgdXNlZCB0byBkZWZpbmUgbmV3IEFQSSBwYXRocy4gUmVhZCBtb3JlIGFib3V0IGhvdyB0byBkZWZpbmUgcGF0aHMgaW4gW19Td2FnZ2VyXyBzcGVjaWZpY2F0aW9uIGRvY3NdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykuIFlvdSBjYW4gZXZlbiB1c2UgdGhlIFtfU3dhZ2dlcl8gZWRpdG9yXShodHRwczovL3N3YWdnZXIuaW8vc3dhZ2dlci1lZGl0b3IvKSB0byBkZWZpbmUgYW5kIGRlc2lnbiB5b3VyIEFQSSwgYW5kIGFmdGVyd2FyZHMsIGxvYWQgdGhlIHJlc3VsdGFudCAuanNvbiBmaWxlcyBpbiBfZG9tYXBpYyBiYXNlXy4KCllvdSBjYW4gYWRkIGFzIG1hbnkgb3BlbkFwaSBkZWZpbml0aW9ucyBhcyB5b3Ugd2FudCwgYW5kIGZvciBlYWNoIG9uZSB5b3UgY2FuIGRlZmluZSAiY29tcG9uZW50cyIsICJ0YWdzIiwgb3IgInBhdGhzIi4gVGhlIHJlc3VsdGFudCBgb3BlbmFwaS5qc29uYCB3aWxsIGJlIHRoZSByZXN1bHQgb2YgZXh0ZW5kaW5nIGFsbCBvZiB0aGVtLCBhZnRlciBhZGRpbmcgYWxsIG5lZWRlZCBiYXNlIHByb3BlcnRpZXMuCgpTZWUgaGVyZSBhbiBbb3BlbkFwaSBkZWZpbml0aW9uIGV4YW1wbGVdKGxpYi9hcGkvYWJvdXQvb3BlbmFwaS5qc29uKSwgd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGNyZWF0ZSB0aGUgYnVpbHQtaW4gYC9hYm91dGAgYXBpIHJlc291cmNlLgoKIyMjIE9wZXJhdGlvbnMKCmBzZXJ2aWNlLnNlcnZlci5hZGRPcGVyYXRpb25zKGFwaU9wZXJhdGlvbnNPYmplY3QpYAoKRWFjaCBvcGVuQXBpIHBhdGggc2hvdWxkIGNvbnRhaW4gYSBwcm9wZXJ0eSBjYWxsZWQgYG9wZXJhdGlvbklkYC4gVGhpcyB2YWx1ZSBkZWZpbmVzIHdoaWNoIG9wZXJhdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGFwaSByZXNvdXJjZSBpcyByZXF1ZXN0ZWQuCgpVc2UgdGhlIGBhZGRPcGVyYXRpb25zYCBzZXJ2ZXIgbWV0aG9kIHRvIGFkZCB0aGUgb3BlcmF0aW9ucy4gVGhlIG9wZXJhdGlvbiBrZXkgc2hvdWxkIG1hdGNoIHdpdGggdGhlIG9wZW5BcGkgYG9wZXJhdGlvbklkYCBwcm9wZXJ0eS4KCkVhY2ggb3BlcmF0aW9uIGNhbiBoYXZlIHByb3BlcnRpZXM6CgoqIGBoYW5kbGVyYCAtIFRoZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgYXBpIHJlc291cmNlIGlzIHJlcXVlc3RlZC4gTWFuZGF0b3J5LgoJKiBBcmd1bWVudHM6CgkJKiBwYXJhbXMgLSBSZXF1ZXN0IHBhcmFtZXRlcnMuIGBwYXJhbXMucGF0aGAgYW5kIGBwYXJhbXMucXVlcnlgLgoJCSogYm9keSAtIFJlcXVlc3QgYm9keQoJCSogcmVzIC0gQWxsb3dzIHRvIHNldCBjdXN0b20gaGVhZGVycyBhbmQgc3RhdHVzQ29kZSB0byByZXNwb25zZS4gRXhhbXBsZXM6IGByZXMuc3RhdHVzKDIwMSlgLCBgcmVzLmhlYWRlcignbG9jYXRpb24nLCAnL2FwaS9ib29rcy9uZXctYm9vaycpYAoJCSogdXNlckRhdGEgLSBJZiB1c2VyIGlzICJsb2dnZWQgaW4iLCBUaGUgdXNlckRhdGEgcmV0dXJuZWQgYnkgdGhlIGNvcnJlc3BvbmRhbnQgYXV0aGVudGljYXRpb24gbWV0aG9kIGB2ZXJpZnlgIGhhbmRsZXIgd2lsbCBiZSByZWNlaXZlZCBpbiB0aGlzIHByb3BlcnR5LgoJKiBSZXR1cm5zOgoJCSogQ2FuIHJldHVybiBhIFByb21pc2UuIElmIHJlamVjdGVkLCB0aGUgZXJyb3Igd2lsbCBiZSBtYXBwZWQgdG8gYSBjb3JyZXNwb25kYW50IGh0bWwgZXJyb3IuIElmIHJlc29sdmVkLCB0aGUgcmVzb2x2ZWQgdmFsdWUgd2lsbCBiZSByZXR1cm5lZCBhcyByZXNwb25zZSBib2R5LgoJCSogSWYgcmV0dXJucyBhIHZhbHVlLCB0aGUgdmFsdWUgd2lsbCBiZSByZXR1cm5lZCBhcyByZXNwb25zZSBib2R5LgoJCSogSWYgdGhyb3dzIGFuIGVycm9yLCB0aGUgZXJyb3Igd2lsbCBiZSBtYXBwZWQgdG8gYSBjb3JyZXNwb25kYW50IGh0bWwgZXJyb3IuCiogYHBhcnNlYCAtIFBhcnNlIHBhcmFtZXRlcnMgZnJvbSByZXF1ZXN0LgoJKiBJdCBtdXN0IGJlIGFuIG9iamVjdCwgd2l0aCBmaXJzdCBsZXZlbCBrZXlzIGFzIHJlcXVlc3Qgb2JqZWN0IHdoZXJlIHRoZSBwYXJhbWV0ZXIgd2lsbCBiZSBmb3VuZCwgYW5kIHNlY29uZCBsZXZlbCBrZXlzIGFzIHBhcmFtZXRlciBuYW1lIHRvIGJlIHBhcnNlZC4gVGhlIGBwYXJzZXJgIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSB0aGUgb3JpZ2luYWwgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhcmd1bWVudCwgYW5kIHNob3VsZCByZXR1cm4gdGhlIHBhcnNlZCB2YWx1ZS4KCSogVXNlZnVsLCBmb3IgZXhhbXBsZSwgdG8gY29udmVydCBudW1lcmljIHZhbHVlcyBmcm9tIHJlcXVlc3QgcGFyYW1zIG9yIHF1ZXJ5IHN0cmluZ3MsIHRoYXQgYXJlIHJlY2VpdmVkIGFzIHN0cmluZ3MsIHRvIHJlYWwgbnVtYmVycy4KKiBgYXV0aGAgLSBUaGlzIG1ldGhvZCB3aWxsIGJlIGV4ZWN1dGVkIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBlbm91Z2ggcGVybWlzc2lvbnMgdG8gcGVyZm9ybSBhbiBvcGVyYXRpb24uIENhbiBiZSBhIGZ1bmN0aW9uLCBvciBhIHN0cmluZyB0aGF0IGRlZmluZXMgd2hpY2ggYXV0aG9yaXphdGlvbiByb2xlIGZ1bmN0aW9uIGhhcyB0byBiZSBleGVjdXRlZC4gSWYgdGhpcyBtZXRob2QgaXMgbm90IGRlZmluZWQsIHRoZSBhcGkgcmVzb3VyY2Ugd2lsbCBiZSBhdmFpbGFibGUgZm9yIGFsbCB1c2Vycy4gUmVhZCBbQXV0aGVudGljYXRpb25dKCNhdXRoZW50aWNhdGlvbikgZm9yIGZ1cnRoZXIgaW5mby4KCSogQXJndW1lbnRzOgoJCSogdXNlckRhdGEgLSBUaGUgZGVjb2RlZCBkYXRhIGFib3V0IHRoZSB1c2VyIHRoYXQgaXMgbWFraW5nIHRoZSByZXF1ZXN0LgoJCSogcGFyYW1zIC0gUmVxdWVzdCBwYXJhbWV0ZXJzLiBgcGFyYW1zLnBhdGhgIGFuZCBgcGFyYW1zLnF1ZXJ5YC4KCQkqIGJvZHkgLSBSZXF1ZXN0IGJvZHkKCSogUmV0dXJuczogCgkJKiBQcm9taXNlLnJlc29sdmUsIG9yIGB0cnVlYCB0byB2YWxpZGF0ZSB0aGUgdXNlci4KCQkqIEFueSBvdGhlciByZXR1cm5lZCB2YWx1ZSB3aWxsIHJlc3VsdCBpbiBhICJGb3JiaWRkZW4iIHJlc3BvbnNlLgoKYGBganMKc2VydmljZS5zZXJ2ZXIuYWRkT3BlcmF0aW9ucyh7CiAgbXlBcGlPcGVyYXRpb246IHsKICAgIGF1dGg6ICh1c2VyRGF0YSwgcGFyYW1zLCBib2R5KSA9PiB7CiAgICAgIGlmICh1c2VySXNBbGxvd2VkKHVzZXJEYXRhKSkgewogICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQogICAgICB9CiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpCiAgICB9LAogICAgaGFuZGxlcjogKHBhcmFtcywgYm9keSwgcmVzLCB1c2VyRGF0YSkgPT4gewogICAgICByZXMuc3RhdHVzKDIwMSkKICAgICAgcmVzLmhlYWRlcignbG9jYXRpb24nLCAnL2FwaS9ib29rcy9uZXctYm9vaycpCiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoewogICAgICAgIGhlbGxvOiAnd29ybGQnCiAgICAgIH0pCiAgICB9LAogICAgcGFyc2U6IHsKICAgICAgcGFyYW1zOiB7CiAgICAgICAgaWQ6IChpZCkgPT4gewogICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGlkLCAxMCkKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHF1ZXJ5OiB7CiAgICAgICAgcGFnZTogKHBhZ2UpID0+IHsKICAgICAgICAgIHJldHVybiBwYXJzZUludChwYWdlLCAxMCkKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0pCmBgYAoKIyMjIEN1c3RvbSBtaWRkbGV3YXJlcwoKYHNlcnZpY2Uuc2VydmVyLmFkZE1pZGRsZXdhcmUoZXhwcmVzc01pZGRsZXdhcmUpYAoKQ3VzdG9tIGV4cHJlc3MgbWlkZGxld2FyZXMgY2FuIGJlIGFkZGVkLiBXaWxsIGJlIGFkZGVkIGJlZm9yZSBhbGwgb3RoZXIgaW50ZXJuYWwgbWlkZGxld2FyZXMsIHN1Y2ggYXMgb3BlcmF0aW9uIGhhbmRsZXJzLgoKYGBganMKc2VydmljZS5zZXJ2ZXIuYWRkTWlkZGxld2FyZSgocmVxLCByZXMsIG5leHQpID0+IHsKICBjb25zb2xlLmxvZygnRXhlY3V0aW5nIG1pZGRsZXdhcmUgYmVmb3JlIG9wZXJhdGlvbicpCiAgbmV4dCgpCn0pCmBgYAoKCltiYWNrIHRvIHRvcF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLS0tCgojIyBDbGllbnQKCk1ha2UgcmVxdWVzdHMgdG8gb3RoZXIgX0RvbWFwaWNfIHNlcnZpY2VzLiBBdXRvbWF0aWMgYXV0aGVudGljYXRpb24gYW5kIGVycm9yIGhhbmRsaW5nIGlzIHByb3ZpZGVkLgoKYGBganMKZG9tYXBpYy5TZXJ2aWNlKCkudGhlbihzZXJ2aWNlID0+IHsKICBjb25zdCBjbGllbnQgPSBuZXcgc2VydmljZS5jbGllbnQuQ29ubmVjdGlvbignaHR0cDovL2xvY2FsaG9zdDozMDAwJykKICByZXR1cm4gY2xpZW50LmdldCgnL2Fib3V0JykudGhlbihyZXNwb25zZSA9PiB7CiAgICBjb25zb2xlLmxvZyhyZXNwb25zZSkKICB9KQp9KQpgYGAKCmBgYGpzCi8vIENsaWVudCB3aXRoIHR3byBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGV4YW1wbGUKZG9tYXBpYy5TZXJ2aWNlKCkudGhlbihzZXJ2aWNlID0+IHsKICBjb25zdCBjbGllbnQgPSBuZXcgc2VydmljZS5jbGllbnQuQ29ubmVjdGlvbignaHR0cDovL2xvY2FsaG9zdDozMDAwJyx7CiAgICBhcGlLZXk6ICd0aGlzSXNhRm9vQXBpS2V5JywKICAgIGp3dDogewogICAgICB1c2VyOiAnZm9vVXNlck5hbWUnLAogICAgICBwYXNzd29yZDogJ2Zvb1Bhc3N3b3JkJwogICAgfQogIH0pCiAgcmV0dXJuIGNsaWVudC5nZXQoJy9hYm91dCcpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgY29uc29sZS5sb2cocmVzcG9uc2UpCiAgfSkKfSkKYGBgCgpbYmFjayB0byB0b3BdKCN0YWJsZS1vZi1jb250ZW50cykKCi0tLQoKIyMgVHJhY2VzCgpUaGVyZSBhcmUgc2l4IGRpZmZlcmVudCBsZXZlbHMgb2YgdHJhY2VzLiBEZXBlbmRpbmcgb2YgdGhlIGNob2ljZWQgbG9nIGxldmVsIHdoZW4gc3RhcnRlZCB0aGUgc2VydmljZSwgdGhlIHRyYWNlIHdpbGwgYmUgcHJpbnRlZCB0byB0aGUgY29uc29sZSBhbmQgd3JpdHRlbiB0byB0aGUgZGFpbHkgZmlsZSBvciBub3QuCgpBbGwgdHJhY2VzIGluIGEgZGF5IGFyZSBzYXZlZCB0byBhIGZpbGUsIGludG8gYH4vLmRvbWFwaWMvPHNlcnZpY2VOYW1lPi9sb2dzLzxzZXJ2aWNlTmFtZT4uPGRhdGU+LmxvZ2AuIFRyYWNlIGZpbGVzIG9sZGVyIHRoYW4gdGVuIGRheXMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4KCldoZW4gdGhlIHNlcnZpY2UgaXMgc3RhcnRlZCBhdCBiYWNrZ3JvdW5kIHVzaW5nIHRoZSBidWlsdC1pbiBDTEksIGxvZ3MgYXJlIGFsc28gc2F2ZWQgdG8gYSBmaWxlIGF0IGB+Ly5kb21hcGljLzxzZXJ2aWNlTmFtZT4vbG9ncy88c2VydmljZU5hbWU+LnBtMi5sb2dgLiBJdCBpcyByZWNvbW1lbmRlZCB0byBpbnN0YWxsIFtfUE0yIGxvZyByb3RhdGVfXShodHRwczovL2dpdGh1Yi5jb20va2V5bWV0cmljcy9wbTItbG9ncm90YXRlKSB0byBhdm9pZCB0aGlzIGZpbGUgZ3Jvd2luZyB0b28gbXVjaC4KClNvcnRlZCB0cmFjZXIgbGV2ZWxzIGFyZTogJ2xvZycsICd0cmFjZScsICdkZWJ1ZycsICdpbmZvJywgJ3dhcm4nIGFuZCAnZXJyb3InLgoKVHJhY2VyIHVzYWdlOgoKYGBganMKZG9tYXBpYy5TZXJ2aWNlKCkudGhlbihzZXJ2aWNlID0+IHsKICByZXR1cm4gc2VydmljZS50cmFjZXIuZGVidWcoJ3Rlc3RpbmcnKS50aGVuKCgpID0+IHsKICAgIHJldHVybiBzZXJ2aWNlLnRyYWNlci5sb2coJ3Rlc3RpbmcgbG9nJykKICB9KS50aGVuKCgpID0+IHsKICAgIHJldHVybiBzZXJ2aWNlLnRyYWNlci53YXJuKCdUaGlzIGlzIGEgd2FybmluZycsICdUaGlzIGlzIHBhcnQgb2YgdGhlIHNhbWUgd2FybmluZycpCiAgfSkudGhlbigoKSA9PiB7CiAgICByZXR1cm4gc2VydmljZS50cmFjZXIuZXJyb3IobmV3IEVycm9yKCdUaGlzIHdpbGwgcHJpbnQgdGhlIGVycm9yIHN0YWNrJykpCiAgfSkudGhlbigoKSA9PiB7CiAgICByZXR1cm4gc2VydmljZS50cmFjZXIuZXJyb3IoJ1ByaW50ZWQgd2l0aCBlcnJvciBzdHlsZSwgYnV0IG5vIHN0YWNrJykKICB9KQp9KQpgYGAKClRoZXJlIGlzIGFuIGV4dHJhIG1ldGhvZCBjYWxsZWQgYGdyb3VwYCwgdGhhdCBhbGxvd3MgdG8gaW52b3F1ZSBkaWZmZXJlbnQgbGV2ZWxzIG9mIHRyYWNlcnMgYXQgYSB0aW1lOgoKYGBganMKZG9tYXBpYy5TZXJ2aWNlKCkudGhlbihzZXJ2aWNlID0+IHsKICByZXR1cm4gc2VydmljZS50cmFjZXIuZ3JvdXAoWwogICAgewogICAgICBsb2c6ICdUaGlzIGlzIGEgbG9nJwogICAgfSwKICAgIHsKICAgICAgdHJhY2U6ICdUaGlzIGlzIGEgdHJhY2UnCiAgICB9LAogICAgewogICAgICB3YXJuOiAnVGhpcyBpcyBhIHdhcm4nCiAgICB9CiAgXSkKfSkKYGBgCgpbYmFjayB0byB0b3BdKCN0YWJsZS1vZi1jb250ZW50cykKCi0tLQoKIyMgRXJyb3JzCgpDdXN0b20gZXJyb3JzIGNvbnN0cnVjdG9ycyBhcmUgcHJvdmlkZWQgdGhyb3VnaCB0aGUgYHNlcnZpY2UuZXJyb3JzYCBvYmplY3QuCgpDdXN0b20gZXJyb3JzIHVzYWdlOgoKYGBganMKY29uc3QgUHJvbWlzZSA9IHJlcXVpcmUoJ2JsdWViaXJkJykKCmRvbWFwaWMuU2VydmljZSgpLnRoZW4oc2VydmljZSA9PiB7CiAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBzZXJ2aWNlLmVycm9ycy5CYWREYXRhKCdSZWNlaXZlZCBiYWQgZGF0YScpKQogICAgLmNhdGNoKHNlcnZpY2UuZXJyb3JzLkJhZERhdGEsICgpID0+IHsKICAgICAgY29uc29sZS5sb2coJ0JhZCBkYXRhIGVycm9yIGNhdWdodCcpCiAgICAgIHRocm93IG5ldyBzZXJ2aWNlLmVycm9ycy5CYWRJbXBsZW1lbnRhdGlvbigpCiAgICB9KQp9KQpgYGAKCkNvbnN1bHQgW2FsbCBhdmFpbGFibGUgZXJyb3IgY29uc3RydWN0b3JzXShsaWIvYmFzZXMvY29yZS9FcnJvcnMuanMpIGFuZCBpdHMgY29ycmVzcG9uZGVuY2VzIHdpdGggaHRtbCBlcnJvcnMuCgpJbiBhZGRpdGlvbiB0byBlcnJvciBjb25zdHJ1Y3RvcnMsIHRocmVlIG1ldGhvZHMgYXJlIHByb3ZpZGVkIGluIHRoZSBgZXJyb3JzYCBvYmplY3QuIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgaW50ZXJuYWxseSBieSBfZG9tYXBpYy1iYXNlXyBpbiBvcmRlciB0byBtYXAgdGhlIHJldHVybmVkIGVycm9ycyB0byBIVE1MIGVycm9ycyBhbmQgdmljZXZlcnNhOgoKKiBgaXNDb250cm9sbGVkYCAtIEFsbG93cyB0byBrbm93IGlmIGVycm9yIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBhIGN1c3RvbSBlcnJvciBjb25zdHJ1Y3RvcgoJKiBgc2VydmljZS5lcnJvcnMuaXNDb250cm9sbGVkKGVycm9yKWAKCQpgYGBqcwpjb25zdCBlcnJvciA9IG5ldyBzZXJ2aWNlLmVycm9ycy5Db25mbGljdCgpCmNvbnNvbGUubG9nKHNlcnZpY2UuZXJyb3JzLmlzQ29udHJvbGxlZChlcnJvcikpCi8vIHRydWUKCmVycm9yID0gbmV3IEVycm9yKCkKY29uc29sZS5sb2coc2VydmljZS5lcnJvcnMuaXNDb250cm9sbGVkKGVycm9yKSkKLy8gZmFsc2UKYGBgCgoqIGBGcm9tQ29kZWAgLSBSZXR1cm5zIGFuIGVycm9yIGNyZWF0ZWQgd2l0aCB0aGUgY29uc3RydWN0b3IgY29ycmVzcG9uZGVudCB0byB0aGUgcHJvdmlkZWQgaHRtbCBlcnJvciBzdGF0dXMgY29kZToKCSogYHNlcnZpY2UuZXJyb3JzLkZyb21Db2RlKGNvZGUsIG1lc3NhZ2UgWywgc3RhY2tdIFssIGV4dHJhRGF0YV0pYAoJCmBgYGpzCnJldHVybiBQcm9taXNlLnJlamVjdChzZXJ2aWNlLmVycm9ycy5Gcm9tQ29kZSg0MDMsICdDdXN0b20gbWVzc2FnZScpKQogIC5jYXRjaChzZXJ2aWNlLmVycm9ycy5Gb3JiaWRkZW4sIGVycm9yID0+IHsKICAgIGNvbnNvbGUubG9nKCdGb3JiaWRkZW4gZXJyb3IgY2F1Z2h0JykKICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpCiAgICAvLyBDdXN0b20gbWVzc2FnZQogIH0pCmBgYAoKKiBgdG9IVE1MYCAtIFJldHVybnMgYSBbX0Jvb21pZmllZF9dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2Jvb20pIGVycm9yIGNvcnJlc3BvbmRlbnQgdG8gdGhlIHVzZWQgZXJyb3IgY29uc3RydWN0b3IuIEVhY2ggZXJyb3IgY29uc3RydWN0b3IgaXMgbWFwcGVkIHRvIGFuIHNwZWNpZmljIHN0YXR1cyBjb2RlLCByZWFkeSB0byBiZSByZXR1cm5lZCBieSB0aGUgQVBJOgoJKiBgc2VydmljZS5lcnJvcnMudG9IVE1MKGVycm9yKWAKCmBgYGpzCmNvbnN0IGVycm9yID0gc2VydmljZS5lcnJvcnMuRm9yYmlkZGVuKCkKY29uc29sZS5sb2coIHNlcnZpY2UuZXJyb3JzLnRvSFRNTChlcnJvcikub3V0cHV0LnBheWxvYWQuc3RhdHVzQ29kZSApCi8vIDQwMwpgYGAKCltiYWNrIHRvIHRvcF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLS0tCgojIyBTdG9yYWdlCgpTdG9yYWdlIG1ldGhvZHMgcmVhZCBhbmQgc2F2ZSBqc29uIGRhdGEgZnJvbSBhIGZpbGUgc3RvcmVkIGFzIGB+Ly5kb21hcGljLzxzZXJ2aWNlTmFtZT4vc3RvcmFnZS9zZXJ2aWNlLmpzb25gLgoKYGBganMKc2VydmljZS5zdG9yYWdlLnNldCgnZm9vUHJvcGVydHknLCB7dGVzdDogJ3Rlc3RpbmcnfSkKICAudGhlbigoKSA9PiB7CiAgICByZXR1cm4gc2VydmljZS5zdG9yYWdlLmdldCgnZm9vUHJvcGVydHknKQogIH0pCiAgLnRoZW4oZGF0YSA9PiB7CiAgICBjb25zb2xlLmxvZyhkYXRhKQogICAgLy8ge3Rlc3Q6ICd0ZXN0aW5nJ30KICAgIHJldHVybiBzZXJ2aWNlLnN0b3JhZ2UucmVtb3ZlKCdmb29Qcm9wZXJ0eScpCiAgfSkKYGBgCgpNZXRob2RzCgoqIGBnZXRgIC0gUmVhZCBkYXRhIGZyb20gc3RvcmFnZSBmaWxlLgoJKiBgc2VydmljZS5zdG9yYWdlLmdldChba2V5XSlgCgkqIEFyZ3VtZW50czoKCQkqIGtleSAtIE9wdGlvbmFsLCBrZXkgb2YgdGhlIG9iamVjdCB0byBnZXQuIElmIG5vIHByb3ZpZGVkLCBlbnRpcmUgZGF0YSBpcyByZXR1cm5lZC4KCSogUmV0dXJuczogCgkJKiBBIHByb21pc2UsIHJlc29sdmVkIHdpdGggdGhlIGNvcnJlc3BvbmRhbnQgZGF0YS4KKiBgc2V0YCAtIFNhdmUgZGF0YSBpbnRvIHRoZSBzdG9yYWdlIGZpbGUuCgkqIGBzZXJ2aWNlLnN0b3JhZ2Uuc2V0KFtrZXksXSB2YWx1ZSlgCgkqIEFyZ3VtZW50czoKCQkqIGtleSAtIE9wdGlvbmFsLiBLZXkgb2YgdGhlIG9iamVjdCB0byBzZXQuIElmIG5vIHByb3ZpZGVkLCBlbnRpcmUgZGF0YSBpcyBvdmVyd3JpdHRlbiBieSB0aGUgZ2l2ZW4gdmFsdWUuCgkJKiB2YWx1ZSAtIERhdGEgdG8gYmUgc2F2ZWQuCiogYHJlbW92ZWAgLSBSZW1vdmVzIGEgcHJvcGVydHkgZnJvbSB0aGUgc3RvcmVkIG9iamVjdC4KCSogYHNlcnZpY2Uuc3RvcmFnZS5yZW1vdmUoa2V5KWAKCSogQXJndW1lbnRzOgoJCSoga2V5IC0gS2V5IG9mIHRoZSBvYmplY3QgdG8gYmUgcmVtb3ZlZC4KKiBgZ2V0UGF0aGAgLSBHZXQgc3RvcmFnZSBmb2xkZXIuCgkqIFJldHVybnM6IAoJCSogQSBwcm9taXNlLCByZXNvbHZlZCB3aXRoIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBzdG9yYWdlIGZvbGRlci4KCltiYWNrIHRvIHRvcF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLS0tCgojIyBVdGlscwoKU2V0IG9mIHV0aWxpdGllczoKCiogYHRlbXBsYXRlc2AKCSogYGNvbXBpbGVgIC0gUmVjZWl2ZWQgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYSBzZXQgb2YgYGtleTonc3RyaW5nJ2AsIHdpbGwgdXNlIFtfSGFuZGxlYmFyc19dKGh0dHA6Ly9oYW5kbGViYXJzanMuY29tLykgdG8gY29tcGlsZSBlYWNoIHN0cmluZywgYW5kIHJldHVybiBhbiBvYmplY3Qgd2l0aCBzYW1lIGtleXMsIGJ1dCBjb250YWluaW5nIHRoZSBjb21waWxlZCB0ZW1wbGF0ZXMuCgkqIGBjb21waWxlZGAgLSBTZXQgb2YgcHJlY29tcGlsZWQgdGVtcGxhdGVzLCB1c2VkIGludGVybmFsbHkuCmBgYGpzCmNvbnN0IHRlbXBsYXRlcyA9IHNlcnZpY2UudXRpbHMudGVtcGxhdGVzLmNvbXBpbGUoewogIG15VGVtcGxhdGUxOiAnVmFsdWUgaXM6IHt7dmFsdWV9fScKfSkKY29uc29sZS5sb2codGVtcGxhdGVzLm15VGVtcGxhdGUxKHsKICB2YWx1ZTogMTIzCn0pKQovLyBWYWx1ZSBpczogMTIzCmBgYAoqIGBjbGlgCgkqIGB1c2VkQ29tbWFuZGAgLSBVc2VkIGludGVybmFsbHkgYnkgQ0xJLiBSZXR1cm5zIHRoZSBjb21tYW5kIHVzZWQgdG8gc3RhcnQgdGhlIGN1cnJlbnQgcHJvY2Vzcy4KKiBgc2VydmljZXNgIC0gU2V0IG9mIHV0aWxpdGllcyB1c2VkIGludGVybmFsbHkgdG8gbm9ybWFsaXplIHNlcnZpY2VzIG5hbWVzLCBldGMuLgoKW2JhY2sgdG8gdG9wXSgjdGFibGUtb2YtY29udGVudHMpCgotLS0KCiMjIEluZm8KClN0YXRpYyBvYmplY3QgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGFja2FnZSwgZnJvbSB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS4KCiogYG5hbWVgIC0gTWFuZGF0b3J5LiBUaGUgYHBhY2thZ2UuanNvbmAgbXVzdCBjb250YWluIHRoaXMgcHJvcGVydHkuCiogYHR5cGVgIC0gQ2F0ZWdvcnkgb2YgdGhlIHNlcnZpY2UuIEl0IGlzIGRlZmluZWQgd2l0aCBhbiBhcmd1bWVudCB3aGVuIHNlcnZpY2UgaXMgY3JlYXRlZC4gUG9zc2libGUgdmFsdWVzIHdoZW4gdXNpbmcgRG9tYXBpYyBwYWNrYWdlcyBhcmUgYG1vZHVsZWAsIGBjb250cm9sbGVyYCBvciBgcGx1Z2luYC4KKiBgdmVyc2lvbmAgLSBNYW5kYXRvcnkuIFRoZSBgcGFja2FnZS5qc29uYCBtdXN0IGNvbnRhaW4gdGhpcyBwcm9wZXJ0eS4KKiBgZGVzY3JpcHRpb25gIC0gTWFuZGF0b3J5LiBUaGUgYHBhY2thZ2UuanNvbmAgbXVzdCBjb250YWluIHRoaXMgcHJvcGVydHkuCiogYGhvbWVwYWdlYAoqIGBhdXRob3JgCiogYGxpY2Vuc2VgCgpgYGBqcwpjb25zb2xlLmxvZyhzZXJ2aWNlLmluZm8pCmBgYAoKW2JhY2sgdG8gdG9wXSgjdGFibGUtb2YtY29udGVudHMpCgotLS0KCiMjIEF1dGhlbnRpY2F0aW9uCgpUaGUgc2VydmVyIHN1cHBvcnRzIHR3byB0eXBlcyBvZiBPQVVUSCBhdXRoZW50aWNhdGlvbiBtZXRob2RzLCB3aXRoIGJ1aWx0LWluIGFwaSAibG9naW4iIHVybHMgYW5kIHRva2VuIHZhbGlkYXRpb25zLgoKRWFjaCBhdXRoZW50aWNhdGlvbiBzdHJhdGVneSBuZWVkIHNvbWUgZGlmZmVyZW50IG1ldGhvZHMgdG8gYmUgcHJvdmlkZWQgaW4gb3JkZXIgdG8gYmUgYWN0aXZhdGVkLiBUaGlzIGV4dGVybmFsbHkgcHJvdmlkZWQgbWV0aG9kcyBoYXZlIHRoZSByZXNwb25zaWJpbGl0eSBvZiBjaGVja2luZyB0aGUgdXNlciBkYXRhLCBhbmQgdGhlbiBkZWxlZ2F0ZSB0aGUgcmVzdCBvZiB0aGUgZmxvdyBpbnRvIHRoZSBidWlsdC1pbiBzZWN1cml0eSBtb2R1bGVzLiBJbiB0aGUgY2FzZSBvZiBKc29uIFdlYiBUb2tlbiwgYXMgdGhlIHJlc3Qgb2YgdGhlIHByb2Nlc3MgaXMgInRva2VuLWJhc2VkIiwgdGhpcyBtZXRob2RzIHdpbGwgYmUgb25seSBpbnZvcXVlZCBhdCAibG9naW4iIG9yICJyZWZyZXNoIHRva2VuIiBwb2ludHMuCgpUbyByZXF1aXJlIGFuIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBpbiB5b3VyIEFQSSBvcGVyYXRpb25zLCB5b3UgbXVzdCBkZWZpbmUgdGhlIG9wZW5hcGkgYHNlY3VyaXR5YCBwcm9wZXJ0eSBpbiB0aGUgY29ycmVzcG9uZGFudCBBUEkgcGF0aDoKCmBgYGpzb24KInBhdGhzIjogewogICIvZm9vT3BlcmF0aW9uUGF0aCI6IHsKICAgICJwb3N0IjogewogICAgICAic2VjdXJpdHkiOiBbewogICAgICAgICJqd3QiOiBbXQogICAgICB9LCB7CiAgICAgICAgImFwaUtleSI6IFtdCiAgICAgIH1dCiAgICB9CiAgfQp9CmBgYAoKVXNlIHRoZSBzZXJ2ZXIgYGFkZEF1dGhlbnRpY2F0aW9uYCBtZXRob2QgdG8gZGVmaW5lIHlvdXIgYXV0aGVudGljYXRpb24gaW1wbGVtZW50YXRpb25zLiBUaGUgcGFyYW1ldGVyIG11c3QgYmUgYW4gb2JqZWN0IGNvbnRhaW5pbmcga2V5cyBgand0YCwgYGFwaUtleWAgYW5kL29yIGBkaXNhYmxlZGAsIHdoaWNoIHdpbGwgY29udGFpbiB0aGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmb3IgZWFjaCBtZXRob2Q6Cgpgc2VydmljZS5zZXJ2ZXIuYWRkQXV0aGVudGljYXRpb24oYXV0aENvbmZpZ09iamVjdClgCgojIyMgQXBpIGtleQoKTXVzdCBjb250YWluIHByb3BlcnRpZXM6CgoqIGB2ZXJpZnlgLSBDaGVja3MgaWYgdGhlIHJlY2VpdmVkIGFwaSBrZXkgaXMgc3RpbGwgYWxsb3dlZCB0byBiZSB1c2VkLgoJKiBBcmd1bWVudHM6CgkJKiBhcGlLZXkgLSAgQXBpIGtleSByZWNlaXZlZCBpbiB0aGUgcmVxdWVzdCBoZWFkZXIuCgkqIFJldHVybnM6CgkJKiBQcm9taXNlLnJlc29sdmUodXNlckRhdGEpIC0+IEFsbG93ZWQsIHBhc3MgdGhlIHVzZXIgZGF0YSB0byBhdXRob3JpemF0aW9uIG1ldGhvZHMuCgkJKiBSZWplY3RlZCBwcm9taXNlIC0+IFVuYXV0aG9yaXplZC4KKiBgYXV0aGVudGljYXRlYCAtIEFQSSBvcGVyYXRpb24gZm9yIHJlcXVlc3RpbmcgYSBuZXcgYXBpIGtleS4gVGhpcyBhcGkgcG9pbnQgbmVlZHMgYXV0aGVudGljYXRpb24gYXMgd2VsbCwgc28sIGlmIHlvdXIgc3lzdGVtICBhdXRoZW50aWNhdGlvbiBpcyBvbmx5IGFwaSBrZXkgYmFzZWQsIHlvdSBoYXZlIHRvIGRlZmluZSBhbiBpbml0aWFsIGFwaSBrZXkgdGhhdCBjb3VsZCBiZSB1c2VkIHRvIHJlcXVlc3QgbW9yZSBpbiBjYXNlIGl0wrRzIG5lZWRlZC4gVGhpcyBtZXRob2Qgc3VwcG9ydHMgX0pzb24gV2ViIFRva2VuXyBhdXRoZW50aWNhdGlvbiBhcyB3ZWxsLCBpZiBpdCBpcyBpbXBsZW1lbnRlZC4KCSogYGF1dGhgIC0gQXV0aG9yaXphdGlvbiBtZXRob2QgZm9yIHRoZSBgL2FwaS9hdXRoL2FwaWtleWAgX1BPU1RfIGFwaSByZXNvdXJjZS4KCQkqIEFyZ3VtZW50czoKCQkJKiB1c2VyRGF0YSAtIFRoZSBkZWNvZGVkIGRhdGEgYWJvdXQgdGhlIHVzZXIgdGhhdCBpcyBtYWtpbmcgdGhlIHJlcXVlc3QuCgkJCSogcGFyYW1zIC0gUmVxdWVzdCBwYXJhbWV0ZXJzLiBgcGFyYW1zLnBhdGhgIGFuZCBgcGFyYW1zLnF1ZXJ5YC4KCQkJKiBib2R5IC0gUmVxdWVzdCBib2R5CgkqIGBoYW5kbGVyYCAtIE9wZXJhdGlvbiBoYW5kbGVyIGZvciB0aGUgYC9hcGkvYXV0aC9hcGlrZXlgIF9QT1NUXyBhcGkgcmVzb3VyY2UuCgkJKiBBcmd1bWVudHM6CgkJCSogcGFyYW1zIC0gUmVxdWVzdCBwYXJhbWV0ZXJzLiBgcGFyYW1zLnBhdGhgIGFuZCBgcGFyYW1zLnF1ZXJ5YC4KCQkJKiBib2R5IC0gUmVxdWVzdCBib2R5CgkJCSogcmVzIC0gQWxsb3dzIHRvIHNldCBjdXN0b20gaGVhZGVycyBhbmQgc3RhdHVzQ29kZSB0byByZXNwb25zZS4gRXhhbXBsZXM6IGByZXMuc3RhdHVzKDIwMSlgLCBgcmVzLmhlYWRlcignbG9jYXRpb24nLCAnL2FwaS9ib29rcy9uZXctYm9vaycpYAoJCQkqIHVzZXJEYXRhIC0gSWYgdXNlciBpcyAibG9nZWQiLCBoZXJlIHdpbGwgYmUgcmVjZWl2ZWQgdGhlIHVzZXJEYXRhIHJldHVybmVkIGJ5IHRoZSBjb3JyZXNwb25kYW50IGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBgdmVyaWZ5YCBoYW5kbGVyLgoJCSogU2hvdWxkIHJldHVybiBhIG5ldyBhcGkga2V5LgoqIGByZXZva2VgIC0gQVBJIG9wZXJhdGlvbiBmb3IgcmVtb3ZpbmcgYW4gYXBpIGtleS4gVGhpcyBhcGkgcmVzb3VyY2UgbmVlZHMgYXV0aGVudGljYXRpb24gYXMgd2VsbC4KCSogYGF1dGhgIC0gQXV0aG9yaXphdGlvbiBtZXRob2QgZm9yIHRoZSBgL2FwaS9hdXRoL2FwaWtleWAgX0RFTEVURV8gYXBpIHJlc291cmNlLgoJCSogQXJndW1lbnRzOgoJCQkqIHVzZXJEYXRhIC0gVGhlIGRlY29kZWQgZGF0YSBhYm91dCB0aGUgdXNlciB0aGF0IGlzIG1ha2luZyB0aGUgcmVxdWVzdC4KCQkJKiBwYXJhbXMgLSBSZXF1ZXN0IHBhcmFtZXRlcnMuIGBwYXJhbXMucGF0aGAgYW5kIGBwYXJhbXMucXVlcnlgLgoJCQkqIGJvZHkgLSBSZXF1ZXN0IGJvZHkKCSogYGhhbmRsZXJgIC0gT3BlcmF0aW9uIGhhbmRsZXIgZm9yIHRoZSBgL2FwaS9hdXRoL2FwaWtleWAgX0RFTEVURV8gYXBpIHJlc291cmNlLgoJCSogQXJndW1lbnRzOgoJCQkqIHBhcmFtcyAtIFJlcXVlc3QgcGFyYW1ldGVycy4gYHBhcmFtcy5wYXRoYCBhbmQgYHBhcmFtcy5xdWVyeWAuCgkJCSogYm9keSAtIFJlcXVlc3QgYm9keQoJCQkqIHJlcyAtIEFsbG93cyB0byBzZXQgY3VzdG9tIGhlYWRlcnMgYW5kIHN0YXR1c0NvZGUgdG8gcmVzcG9uc2UuIEV4YW1wbGVzOiBgcmVzLnN0YXR1cygyMDEpYCwgYHJlcy5oZWFkZXIoJ2xvY2F0aW9uJywgJy9hcGkvYm9va3MvbmV3LWJvb2snKWAKCQkJKiB1c2VyRGF0YSAtIElmIHVzZXIgaXMgImxvZ2VkIiwgaGVyZSB3aWxsIGJlIHJlY2VpdmVkIHRoZSB1c2VyRGF0YSByZXR1cm5lZCBieSB0aGUgY29ycmVzcG9uZGFudCBhdXRoZW50aWNhdGlvbiBtZXRob2QgYHZlcmlmeWAgaGFuZGxlci4KCQkqIEFueSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlIGlnbm9yZWQsIGFuZCBub3QgZXhwb3NlZCB0byB0aGUgYXBpIHJlc3BvbnNlLgoKSW1wbGVtZW50YXRpb24gZXhhbXBsZToKCmBgYGpzCnNlcnZpY2Uuc2VydmVyLmFkZEF1dGhlbnRpY2F0aW9uKHsKICBhcGlLZXk6IHsKICAgIHZlcmlmeTogYXBpS2V5ID0+IHsKICAgICAgLy8gQ2hlY2sgaWYgYXBpS2V5IGlzIGFsbG93ZWQsIGFuZCByZXR1cm4gY29ycmVzcG9uZGFudCB1c2VyIGRhdGEsIG9yIHJlamVjdC4KICAgICAgcmV0dXJuIGdldFVzZXJEYXRhRnJvbUFwaUtleShhcGlLZXkpCiAgICB9LAogICAgYXV0aGVudGljYXRlOiB7CiAgICAgIGF1dGg6ICh1c2VyRGF0YSwgcGFyYW1zLCBib2R5KSA9PiB7CiAgICAgICAgLy8gQ2hlY2sgaWYgdXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBhIG5ldyBhcGkga2V5LCByZXNvbHZlIG9yIHJlamVjdAogICAgICAgIHJldHVybiBjaGVja1VzZXJQZXJtaXNzaW9uVG9NYW5hZ2VBcGlLZXlzKHVzZXJEYXRhKQogICAgICB9LAogICAgICBoYW5kbGVyOiAocGFyYW1zLCBib2R5LCByZXMsIHVzZXJEYXRhKSA9PiB7CiAgICAgICAgLy8gUmV0dXJucyBhIG5ldyBhcGkga2V5CiAgICAgICAgcmV0dXJuIGdldE5ld0FwaUtleSgpCiAgICAgIH0KICAgIH0sCiAgICByZXZva2U6IHsKICAgICAgYXV0aDogKHVzZXJEYXRhLCBwYXJhbXMsIGJvZHkpID0+IHsKICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGFsbG93ZWQgdG8gcmVtb3ZlIGFuIGV4aXN0YW50IGFwaSBrZXksIHJlc29sdmUgb3IgcmVqZWN0CiAgICAgICAgcmV0dXJuIGNoZWNrVXNlclBlcm1pc3Npb25Ub01hbmFnZUFwaUtleXModXNlckRhdGEpCiAgICAgIH0sCiAgICAgIGhhbmRsZXI6IChwYXJhbXMsIGJvZHksIHJlcywgdXNlckRhdGEpID0+IHsKICAgICAgICAvLyBSZW1vdmUgZXhpc3RhbnQgYXBpIGtleQogICAgICAgIHJldHVybiByZW1vdmVBcGlLZXkoYm9keS5hcGlLZXkpCiAgICAgIH0KICAgIH0KICB9Cn0pCmBgYAoKIyMjIEpXVAoKUHJvcGVydGllczoKCiogYHNlY3JldGAgLSBPcHRpb25hbC4gU3RyaW5nIHVzZWQgdG8gZ2VuZXJhdGUgdG9rZW5zLiBJZiBub3QgcHJvdmlkZWQsIGEgcmFuZG9tIHNlY3JldCBpcyB1c2VkLgoqIGBleHBpcmVzSW5gIC0gTnVtYmVyLiBUaW1lIG9mIHRva2VucyBleHBpcmF0aW9uIHRpbWUgaW4gbWlsaXNlY29uZHMuIEJ5IGRlZmF1bHQsIDMwMCB3aWxsIGJlIHVzZWQgaWYgdGhpcyBvcHRpb24gaXMgbm90IHByb3ZpZGVkLiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gdXNlIGEgaGlnaCB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uIFRva2VucyBzaG91bGQgZXhwaXJlIGluIHNob3J0IHRpbWUsIGFuZCB0aGVuLCByZWZyZXNoIHRva2VucyBzaG91bGQgYmUgdXNlZCB0byByZXF1ZXN0IGEgbmV3IHRva2VuIGFnYWluLgoqIGBhdXRoZW50aWNhdGVgIC0gQVBJIG9wZXJhdGlvbiBmb3IgcmVxdWVzdGluZyBhIG5ldyB0b2tlbi4gV2lsbCByZWNlaXZlIGB1c2VyYCBhbmQgYHBhc3N3b3JkYCwgb3IgYHJlZnJlc2hUb2tlbmAuIFlvdXIgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIGFibGUgdG8gaWRlbnRpZnkgdGhlIHVzZXIsIGFuZCB0aGVuIHJldHVybiB0aGUgY29ycmVzcG9uZGFudCBkYXRhIHRoYXQgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIF9Kc29uIFdlYiBUb2tlbl8uIEFmdGVyd2FyZHMsIHRoZSBBUEkgd2lsbCB1c2UgdGhhdCBkYXRhIGluIGVhY2ggcmVxdWVzdCB0byBhcHBseSB0aGUgY29ycmVzcG9uZGFudCBhdXRob3JpemF0aW9uIHBvbGljeSBmb3IgZWFjaCBhcGkgcmVzb3VyY2UuIF9SZWZyZXNoIFRva2VuXyBpcyB1c2VkIHRvIHJlbmV3IHRoZSB1c2VyIGNyZWRlbnRpYWxzIHdpdGhvdXQgcHJvdmlkaW5nIHRoZSB1c2VyIGRhdGEgYWdhaW4gd2hlbiB0aGUgdG9rZW4gZXhwaXJlcy4KCSogYGhhbmRsZXJgIC0gT3BlcmF0aW9uIGhhbmRsZXIgZm9yIHRoZSBgL2FwaS9hdXRoL2p3dGAgX1BPU1RfIGFwaSByZXNvdXJjZS4KCQkqIEFyZ3VtZW50czoKCQkJKiBwYXJhbXMgLSBSZXF1ZXN0IHBhcmFtZXRlcnMuIGBwYXJhbXMucGF0aGAgYW5kIGBwYXJhbXMucXVlcnlgLgoJCQkqIGJvZHkgLSBSZXF1ZXN0IGJvZHkKCQkJKiByZXMgLSBBbGxvd3MgdG8gc2V0IGN1c3RvbSBoZWFkZXJzIGFuZCBzdGF0dXNDb2RlIHRvIHJlc3BvbnNlLiBFeGFtcGxlczogYHJlcy5zdGF0dXMoMjAxKWAsIGByZXMuaGVhZGVyKCdsb2NhdGlvbicsICcvYXBpL2Jvb2tzL25ldy1ib29rJylgCgkJKiBTaG91bGQgcmV0dXJuIGFuIG9iamVjdCBjb250YWluaW5nIGB1c2VyRGF0YWAgKGFuIG9iamVjdCB3aXRoIGFsbCB1c2VyIGRhdGEgdGhhdCB3aWxsIGJlIHBhc3NlZCBhcyBhcmd1bWVudCB0byB0aGUgQVBJIHJlc291cmNlcyBhdXRob3JpemF0aW9uIGhhbmRsZXJzKSwgYW5kIGByZWZyZXNoVG9rZW5gIGlmIHRoZSByZXF1ZXN0IGhhcyBub3QgcmVjZWl2ZWQgaXQuCiogYHJldm9rZWAgLSBBUEkgb3BlcmF0aW9uIGZvciByZW1vdmluZyBhIHJlZnJlc2ggdG9rZW4uIFRoaXMgYXBpIHJlc291cmNlIG5lZWRzIGF1dGhlbnRpY2F0aW9uIGFzIHdlbGwsIGFuZCBpdCBvbmx5IHN1cHBvcnRzIHRoZSBgand0YCBhdXRoZW50aWNhdGlvbiBtZXRob2QuCgkqIGBhdXRoYCAtIEF1dGhvcml6YXRpb24gbWV0aG9kIGZvciB0aGUgYC9hcGkvYXV0aC9qd3RgIF9ERUxFVEVfIGFwaSByZXNvdXJjZS4KCQkqIEFyZ3VtZW50czoKCQkJKiB1c2VyRGF0YSAtIFRoZSBkZWNvZGVkIGRhdGEgYWJvdXQgdGhlIHVzZXIgdGhhdCBpcyBtYWtpbmcgdGhlIHJlcXVlc3QuCgkJCSogcGFyYW1zIC0gUmVxdWVzdCBwYXJhbWV0ZXJzLiBgcGFyYW1zLnBhdGhgIGFuZCBgcGFyYW1zLnF1ZXJ5YC4KCQkJKiBib2R5IC0gUmVxdWVzdCBib2R5CgkqIGBoYW5kbGVyYCAtIE9wZXJhdGlvbiBoYW5kbGVyIGZvciB0aGUgYC9hcGkvYXV0aC9qd3RgIF9ERUxFVEVfIGFwaSByZXNvdXJjZS4KCQkqIEFyZ3VtZW50czoKCQkJKiBwYXJhbXMgLSBSZXF1ZXN0IHBhcmFtZXRlcnMuIGBwYXJhbXMucGF0aGAgYW5kIGBwYXJhbXMucXVlcnlgLgoJCQkqIGJvZHkgLSBSZXF1ZXN0IGJvZHkKCQkJKiByZXMgLSBBbGxvd3MgdG8gc2V0IGN1c3RvbSBoZWFkZXJzIGFuZCBzdGF0dXNDb2RlIHRvIHJlc3BvbnNlLiBFeGFtcGxlczogYHJlcy5zdGF0dXMoMjAxKWAsIGByZXMuaGVhZGVyKCdsb2NhdGlvbicsICcvYXBpL2Jvb2tzL25ldy1ib29rJylgCgkJCSogdXNlckRhdGEgLSBJZiB1c2VyIGlzICJsb2dlZCIsIGhlcmUgd2lsbCBiZSByZWNlaXZlZCB0aGUgdXNlckRhdGEgcmV0dXJuZWQgYnkgdGhlIGNvcnJlc3BvbmRhbnQgYXV0aGVudGljYXRpb24gbWV0aG9kIGB2ZXJpZnlgIGhhbmRsZXIuCgkJKiBBbnkgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBpZ25vcmVkLCBhbmQgbm90IGV4cG9zZWQgdG8gdGhlIGFwaSByZXNwb25zZS4KCkltcGxlbWVudGF0aW9uIGV4YW1wbGU6CgpgYGBqcwpzZXJ2aWNlLnNlcnZlci5hZGRBdXRoZW50aWNhdGlvbih7CiAgand0OiB7CiAgICBzZWNyZXQ6ICd0aGlzSXNOb3RhUmVhbFRva2VuU2VjcmV0UGxlYXNlUmVwbGFjZUl0JywKICAgIGV4cGlyZXNJbjogMTgwLAogICAgYXV0aGVudGljYXRlOiB7CiAgICAgIGhhbmRsZXI6IChwYXJhbXMsIGJvZHksIHJlcykgPT4gewogICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaGFzIHJpZ2h0IGNyZWRlbnRpYWxzLCBvciByZWZyZXNoIHRva2VuLiBSZXR1cm5zIHVzZXIgZGF0YSAod2l0aCBuZXcgcmVmcmVzaCB0b2tlbiBpZiBub3QgcHJvdmlkZWQpCiAgICAgICAgaWYgKGJvZHkucmVmcmVzaFRva2VuKSB7CiAgICAgICAgICByZXR1cm4gZ2V0VXNlckRhdGFGcm9tUmVmcmVzaFRva2VuKGJvZHkucmVmcmVzaFRva2VuKQogICAgICAgIH0KICAgICAgICByZXR1cm4gY2hlY2tVc2VyRGF0YSh7CiAgICAgICAgICBuYW1lOiBib2R5LnVzZXIsCiAgICAgICAgICBwYXNzd29yZDogYm9keS5wYXNzd29yZAogICAgICAgIH0pLnRoZW4oKHVzZXJEYXRhKSA9PiB7CiAgICAgICAgICByZXR1cm4gY3JlYXRlTmV3UmVmcmVzaFRva2VuKHVzZXJEYXRhKQogICAgICAgICAgICAudGhlbigocmVmcmVzaFRva2VuKSA9PiB7CiAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7CiAgICAgICAgICAgICAgICB1c2VyRGF0YTogdXNlckRhdGEsCiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbgogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0pCiAgICAgICAgfSkKICAgICAgfQogICAgfSwKICAgIHJldm9rZTogewogICAgICBhdXRoOiAodXNlckRhdGEsIHBhcmFtcywgYm9keSkgPT4gewogICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgYWxsb3dlZCB0byByZW1vdmUgYW4gZXhpc3RhbnQgcmVmcmVzaCB0b2tlbgogICAgICAgIHJldHVybiBjaGVja1VzZXJQZXJtaXNzaW9uVG9NYW5hZ2VBcGlLZXlzKHVzZXJEYXRhKQogICAgICB9LAogICAgICBoYW5kbGVyOiAocGFyYW1zLCBib2R5LCByZXMsIHVzZXJEYXRhKSA9PiB7CiAgICAgICAgLy8gUmVtb3ZlIGV4aXN0YW50IHJlZnJlc2ggdG9rZW4KICAgICAgICByZXR1cm4gcmVtb3ZlUmVmcmVzaFRva2VuKGJvZHkucmVmcmVzaFRva2VuKQogICAgICB9CiAgICB9CiAgfQp9KQpgYGAKCiMjIyBEaXNhYmxlZAoKV2hlbiBhdXRoZW50aWNhdGlvbiBpcyBkaXNhYmxlZCBmb3IgYW4gc3BlY2lmaWMgb3JpZ2luIGJlY2F1c2Ugb2YgdGhlIGBhdXRoRGlzYWJsZWRgLCBvciBgYXV0aGAgb3B0aW9ucywgdGhlIGF1dGhvcml6YXRpb24gaGFuZGxlcnMgd2lsbCBub3QgYmUgZXhlY3V0ZWQuIEJ5IGRlZmF1bHQsIGFuIHVzZXIgd2l0aCB0aGUgZm9ybWF0IGB7dXNlcjogJ2Fub255bW91cyd9YCB3aWxsIGJlIHBhc3NlZCB0byBhY3Rpb24gaGFuZGxlcnMsIGJ1dCB5b3UgY2FuIGRlZmluZSB5b3VyIG93biAiZGlzYWJsZWQiIHN0cmF0ZWd5LCBhbmQgcmV0dXJuIGFuIHVzZXIgb2YgeW91ciBjb252ZW5pZW5jZSB0byBiZSBwYXNzZWQuCgpQcm9wZXJ0aWVzOgoKKiBgdmVyaWZ5YC0gRnVuY3Rpb24gdGhhdCBzaG91bGQgcmV0dXJuIHRoZSB1c2VyIHRvIGJlIHBhc3NlZCB0byBhY3Rpb24gaGFuZGxlcnMgd2hlbiBhdXRoZW50aWNhdGlvbiBpcyBkaXNhYmxlZCBmb3IgYW4gc3BlY2lmaWMgb3JpZ2luLgoKSW1wbGVtZW50YXRpb24gZXhhbXBsZToKCmBgYGpzCnNlcnZpY2Uuc2VydmVyLmFkZEF1dGhlbnRpY2F0aW9uKHsKICBkaXNhYmxlZDogewogICAgdmVyaWZ5OiAoKSA9PiBQcm9taXNlLnJlc29sdmUoewogICAgICBuYW1lOiAneW91ci1hdXRoLWRpc2FibGVkLXVzZXInLAogICAgICByb2xlOiAneW91ci1hbm9ueW1vdXMtcm9sZScKICAgIH0pCiAgfQp9KQpgYGAKCiMjIyBBdXRob3JpemF0aW9uCgpBYm91dCBhdXRob3JpemF0aW9uLCBlYWNoIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBBUEkgY2FuIGhhdmUgaXRzIG93biBgYXV0aGAgbWV0aG9kLCB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgZGVjb2RlZCB1c2VyIGRhdGEgYXMgYXJndW1lbnQgZm9yIGVhY2ggcmVxdWVzdCwgYWxsb3dpbmcgdG8gcmVqZWN0IG9yIGFsbG93IGFuIHNwZWNpZmljIHJlcXVlc3QgYmFzZWQgb24geW91ciBvd24gc2VjdXJpdHkgcG9saWN5IGltcGxlbWVudGF0aW9uLgoKVGhlIGF1dGhvcml6YXRpb24gbWV0aG9kIGlzIGFnbm9zdGljIGluIHJlbGF0aW9uIHdpdGggdGhlIHVzZWQgYXV0aGVudGljYXRpb24gbWV0aG9kLCBiZWNhdXNlIGl0IG9ubHkgcmVjZWl2ZXMgdGhlIHVzZXIgZGF0YSwgbm8gbWF0dGVyIHRoZSBtZXRob2QgdXNlZCB0byBzdG9yZSBvciByZWNvdmVyIHRoaXMgZGF0YSBmcm9tIHRoZSByZXF1ZXN0LgoKUmVhZCBtb3JlIGFib3V0IGhvdyB0byBkZWZpbmUgYW5kIHVzZSB0aGUgYGF1dGhgIG1ldGhvZHMgaW4gdGhlIFtvcGVyYXRpb25zIGNoYXB0ZXJdKCNvcGVyYXRpb25zKS4KCkFuIG9wZXJhdGlvbiBgYXV0aGAgbWV0aG9kIGNhbiBiZSBkZWZpbmVkIGFzIGEgZnVuY3Rpb24sIG9yIGFzIGEgc3RyaW5nIHRoYXQgZGVmaW5lcyB3aGljaCAiYXV0aG9yaXphdGlvbiByb2xlIiBmdW5jdGlvbiBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoaXMgImF1dGhvcml6YXRpb24gcm9sZXMiIG11c3QgdG8gYmUgZGVmaW5lZCBpbiB0aGUgc2VydmVyLCB1c2luZyB0aGUgYGFkZEF1dGhvcml6YXRpb25gIG1ldGhvZDoKCmBzZXJ2aWNlLnNlcnZlci5hZGRBdXRob3JpemF0aW9uKHJvbGVOYW1lLCBhdXRoSGFuZGxlcilgCgpgYGBqcwpzZXJ2aWNlLnNlcnZlci5hZGRBdXRob3JpemF0aW9uKCdmb29Sb2xlTmFtZScsIHVzZXJEYXRhID0+IHsKICBpZiAocm9sZUlzQWxsb3dlZCh1c2VyRGF0YS5yb2xlKSkgewogICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpCiAgICAvLyBFeGVjdXRlIHRoZSBvcGVyYXRpb24gaGFuZGxlcgogIH0KICByZXR1cm4gZmFsc2UKICAvLyBGb3JiaWRkZW4gcmVzcG9uc2UKfSkudGhlbigoKSA9PiB7CiAgcmV0dXJuIHNlcnZpY2Uuc2VydmVyLmFkZE9wZXJhdGlvbnMoewogICAgZm9vT3BlcmF0aW9uOiB7CiAgICAgIGF1dGg6ICdmb29Sb2xlTmFtZScsCiAgICAgIGhhbmRsZXI6ICgpID0+IHsKICAgICAgICByZXR1cm4ge30KICAgICAgfQogICAgfQogIH0pCn0pCmBgYAoKW2JhY2sgdG8gdG9wXSgjdGFibGUtb2YtY29udGVudHMpCgotLS0KCiMjIENvbW1hbmQgTGluZSBJbnRlcmZhY2UKCkEgYnVpbHQtaW4gQ0xJIGlzIHByb3ZpZGVkLCBidXQgaXQgbmVlZHMgc29tZSBzdGVwcyBpbiB5b3VyIHBhY2thZ2UgaW4gb3JkZXIgdG8gZXhwb3NlIGl0LiBPbmNlIGl0IGlzIGltcGxlbWVudGVkLCBpdCBhbGxvd3MgdG8gc3RhcnQgdGhlIHNlcnZpY2UgaW4gYmFja2dyb3VuZCwgbWFuYWdlZCB1c2luZyBbX1BNMl9dW3BtMi11cmxdLiBJdCBhbHNvIHByb3ZpZGVzIGxvZ3MgZGlzcGxheWluZywgYW5kIGEgY29tbWFuZCB0byBzdG9wIHRoZSBzZXJ2aWNlLgpBbHNvIGFuIEFQSSBpcyBhdCB5b3VyIGRpc3Bvc2FsIGZvciBkZWZpbmluZyBuZXcgY29tbWFuZHMuCgojIyMgSW1wbGVtZW50YXRpb24KCkZvbGxvdyB0aGVzZSBzdGVwcyB0byBpbXBsZW1lbnQgdGhlIGJ1aWx0LWluIENMSSBpbiB5b3VyIHBhY2thZ2U6CgoqIENyZWF0ZSBhIGAvYmluLzx5b3VyLWNsaS1uYW1lPmAgZmlsZSBpbiB5b3VyIHBhY2thZ2UuIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgY29tbWFuZCBuYW1lIHRoYXQgeW91IHdhbnQgdG8gdXNlIGZvciB5b3VyIENMSS4gVGhlIGNvbnRlbnQgb2YgdGhpcyBmaWxlIG11c3QgYmU6CgpgYGBzaGVsbAojIS91c3IvYmluL2VudiBub2RlCnJlcXVpcmUoJy4uL2NsaS9pbmRleCcpCmBgYAoKKiBBZGQgYSBgYmluYCBwcm9wZXJ0eSB0byB5b3VyIGBwYWNrYWdlLmpzb25gLCBhbmQgYWRkIGFuIG5wbSBzY3JpcHQgdG8gYWxsb3cgdXNpbmcgdGhlIENMSSB0aHJvdWdoIG5wbSBhbHRlcm5hdGl2ZWx5OgoKYGBganNvbgogICJiaW4iOiB7CiAgICAieW91ci1jbGktbmFtZSI6ICIuL2Jpbi95b3VyLWNsaS1uYW1lIgogIH0sCiAgInNjcmlwdHMiOiB7CiAgICAieW91ci1jbGktbmFtZSI6ICIuL2Jpbi95b3VyLWNsaS1uYW1lIgogIH0KYGBgCgoqIENyZWF0ZSBhIGAvY2xpL2luZGV4LmpzYCBmaWxlIGluIHlvdXIgcGFja2FnZS4gSXQgbXVzdCBjb250YWlucyB0aGUgQ0xJIGluaXRpYWxpemF0aW9uOgoKYGBganMKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKQpjb25zdCBkb21hcGljID0gcmVxdWlyZSgnZG9tYXBpYy1iYXNlJykKCmRvbWFwaWMuY2xpKHsKICBzY3JpcHQ6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICdzZXJ2ZXIuanMnKQp9KQpgYGAKVGhlIGBzY3JpcHRgIHBhcmFtZXRlciBtdXN0IGJlIHRoZSBwYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHlvdSBoYXZlIHlvdXIgc2VydmljZSBpbml0aWFsaXphdGlvbi4gVGhpcyB3aWxsIGJlIHRoZSBwcm9jZXNzIHRoYXQgd2lsbCBiZSBzdGFydGVkIGluIGJhY2tncm91bmQuCgojIyMgVXNhZ2UKCk9uY2UgeW91IGhhdmUgaW5zdGFsbGVkIGdsb2JhbGx5IHlvdXIgcGFja2FnZSwgeW91wrRsbCBoYXZlIHRoZSBDTEkgYXZhaWxhYmxlIGZyb20gY29tbWFuZCBsaW5lLiBJZiBub3QgaW5zdGFsbGVkIGdsb2JhbGx5LCBhbGwgYXZhaWxhYmxlIGNvbW1hbmRzIGNhbiBiZSBleGVjdXRlZCBhcyB3ZWxsIHVzaW5nIG5wbSBzY3JpcHRzLCBvciBleGVjdXRpbmcgZGlyZWN0bHkgdGhlIGAvYmluL3lvdXItY2xpLW5hbWVgIGZpbGUuIE5leHQsIHRoZSBgc3RhcnRgIGV4YW1wbGUgaW5jbHVkZSB0aGUgZGlmZmVyZW50IGludm9jYXRpb24gbWV0aG9kcyBleGFtcGxlcy4KCkRlZmF1bHQgYXZhaWxhYmxlIGNvbW1hbmRzIGFyZToKCiogYGhlbHBgCgpgYGBzaGVsbAp5b3VyLWNsaS1uYW1lIGhlbHAKIyBEaXNwbGF5cyBoZWxwCgp5b3VyLWNsaS1uYW1lIHN0YXJ0IC0taGVscAojIERpc3BsYXlzIGhlbHAgZm9yIHN0YXJ0IGNvbW1hbmQKYGBgCgoqIGBzdGFydGAgLSBTdGFydHMgdGhlIHNlcnZpY2UgcHJvY2VzcyBpbiBiYWNrZ3JvdW5kLiBBIGN1c3RvbSBuYW1lIGZvciB0aGUgcHJvY2VzcyBpbnN0YW5jZSBjYW4gYmUgcHJvdmlkZWQgYXMgZmlyc3QgYXJndW1lbnQsIG9yIHVzaW5nIHRoZSBgLS1uYW1lYCBvcHRpb24uCgpgYGBzaGVsbAovLyBnbG9iYWwgY2xpCnlvdXItY2xpLW5hbWUgc3RhcnQgZm9vTmFtZSAtLWxvZ0xldmVsPWRlYnVnCmBgYAoKYGBgc2hlbGwKLy8gbnBtIHNjcmlwdApucG0gcnVuIHlvdXItY2xpLW5hbWUgc3RhcnQgZm9vTmFtZSAtLSAtLWxvZ0xldmVsPWRlYnVnCmBgYAoKYGBgc2hlbGwKLy8gYmluIGV4ZWN1dGlvbgouL2Jpbi95b3VyLWNsaS1uYW1lIHN0YXJ0IGZvb05hbWUgLS1sb2dMZXZlbD1kZWJ1ZwpgYGAKCkFsbCBhdmFpbGFibGUgb3B0aW9ucyBmb3IgdGhlIGBzdGFydGAgY29tbWFuZCBhcmUgZGVzY3JpYmVkIGluIHRoZSBbb3B0aW9ucyBjaGFwdGVyXSgjb3B0aW9ucykgb2YgdGhpcyBkb2N1bWVudGF0aW9uLgoKKiBgc3RvcGAgLSBTdG9wcyBhIGJhY2tncm91bmQgc2VydmljZSBpbnN0YW5jZToKCmBgYHNoZWxsCnlvdXItY2xpLW5hbWUgc3RvcAoKIyMgSWYgbmFtZSB3YXMgcHJvdmlkZWQgd2hlbiBzdGFydGVkLCBpZiBtdXN0IGJlIHByb3ZpZGVkIHRvIHN0b3A6CnlvdXItY2xpLW5hbWUgc3RvcCBmb29OYW1lCmBgYAoKKiBgbG9nc2AgLSBEaXNwbGF5cyBsb2dzIG9mIGEgYmFja2dyb3VuZCBzZXJ2aWNlIGluc3RhbmNlOgoKYGBgc2hlbGwKeW91ci1jbGktbmFtZSBsb2dzCiMgRGlzcGxheXMgbG9ncwoKeW91ci1jbGktbmFtZSBsb2dzIC0tbGluZXM9MzAwCiMgRGlzcGxheXMgMzAwIGxhc3QgbGluZXMgb2YgbG9ncyAoMzAgYnkgZGVmYXVsdCwgaWYgb3B0aW9uIGlzIG5vdCBwcm92aWRlZCkKCiMjIElmIG5hbWUgd2FzIHByb3ZpZGVkIHdoZW4gc3RhcnRlZCwgaWYgbXVzdCBiZSBwcm92aWRlZCB0byBzdG9wOgp5b3VyLWNsaS1uYW1lIGxvZ3MgZm9vTmFtZSAtLWxpbmVzPTMwMApgYGAKCiMjIyBDdXN0b20gb3B0aW9ucyBhbmQgY29tbWFuZHMKCiogQ3VzdG9tIGNvbmZpZ3VyYXRpb24KCUEgYGN1c3RvbUNvbmZpZ2AgcHJvcGVydHkgY2FuIGJlIGRlZmluZWQgaW4gaW5pdGlhbGl6YXRpb24gb2JqZWN0IGluIG9yZGVyIHRvIGRlZmluZSB0aGUgY3VzdG9tIG9wdGlvbnMgb2YgeW91ciBzZXJ2aWNlOgoKYGBganMKY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKQpjb25zdCBkb21hcGljID0gcmVxdWlyZSgnZG9tYXBpYy1iYXNlJykKY29uc3QgY3VzdG9tQ29uZmlnID0gcmVxdWlyZSgnLi9jdXN0b21Db25maWcnKQoKZG9tYXBpYy5jbGkoewogIHNjcmlwdDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ3NlcnZlci5qcycpLAogIGN1c3RvbUNvbmZpZzogY3VzdG9tQ29uZmlnCn0pCmBgYAoKUmVhZCBtb3JlIGFib3V0IGhvdyB0byBkZWZpbmUgdGhlbSBpbiB0aGUgW0N1c3RvbSBvcHRpb25zIGNoYXB0ZXJdKCNjdXN0b20tY29uZmlnKQoKKiBDdXN0b20gY29tbWFuZHMKCUEgYGN1c3RvbUNvbW1hbmRzYCBwcm9wZXJ0eSBjYW4gYmUgZGVmaW5lZCBpbiBpbml0aWFsaXphdGlvbiBvYmplY3QgaW4gb3JkZXIgdG8gZXh0ZW5kIHRoZSBDTEkgZmVhdHVyZXMuIEl0IG11c3QgYmUgYW4gb2JqZWN0LCB3aG9zZSBrZXlzIHdpbGwgYmUgdGhlIG5hbWVzIG9mIHRoZSBjdXN0b20gY29tbWFuZHMuIEVhY2ggY29tbWFuZCBtdXN0IGhhdmUgcHJvcGVydGllczoKCgkqIGBwcm9jZXNzTmFtZWAgLSBfU3RyaW5nXy4gQSByZWZlcmVuY2UgbmFtZSBmb3IgdGhlIGNvcmUgaW4gb3JkZXIgdG8gc2F2ZSB0aGUgY29tbWFuZCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIGV0Yy4uLiBBcyBleGFtcGxlczogYHNlcnZpY2VgLCBgbG9nc2AsIGV0Yy4uLgoJKiBgZGVzY3JpYmVgIC0gRGVzY3JpcHRpb24gZm9yIHRoZSBjb21tYW5kLiBVc2VkIHdoZW4gZGlzcGxheWluZyBoZWxwLgoJKiBgY2xpYCAtIENvbW1hbmQgbmFtZSBhbmQgYXJndW1lbnRzIGV4cHJlc3Npb24uIFtfWWFyZ3NfXVt5YXJncy11cmxdIGlzIHVzZWQgYXMgdW5kZXJsYXllciB0byBtYW5hZ2UgY29tbWFuZHMsIHNvIHlvdSBjYW4gcmVhZCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIGFib3V0IGhvdyB0byBkZWZpbmUgdGhlbS4KCSogYG9wdGlvbnNgIC0gQXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBjb21tYW5kLiBBbGwgY29tbWFuZHMgd2lsbCBpbmhlcml0IHRoZSBvcHRpb25zIGBuYW1lYCwgYGNvbG9yYCwgYGxvZ0xldmVsYCwgYHBhdGhgIGFuZCBgc2F2ZUNvbmZpZ2AuIFJlYWQgW19ZYXJnc19dW3lhcmdzLXVybF0gZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvIGFib3V0IGRlZmluaW5nIHlvdXIgb3duIG9wdGlvbnMuCgkqIGBjb21tYW5kYCAtIEhhbmRsZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gY29tbWFuZCBpcyBpbnZvcXVlZC4KCQkqIEFyZ3VtZW50czoKCQkJKiBgY29uZmlnYCAtIEFuIG9iamVjdCBjb250YWluaW5nIGRlZmF1bHQgY29uZmlnLCBleHRlbmRlZCB3aXRoIHN0b3JlZCBjb25maWcgYW5kIGV4dGVuZGVkIHdpdGggZXhwbGljaXRseSBkZWZpbmVkIG9wdGlvbnMgaW4gdGhlIGNvbW1hbmQgZXhlY3V0aW9uLgoJCQkqIGBjbGlVdGlsc2AgLSBBIHNldCBvZiBtZXRob2RzOgoJCQkJKiBgdHJhY2VyYCAtIEEgYHRyYWNlcmAgb2JqZWN0LCBhcyBbZGVzY3JpYmVkIGhlcmVdKCN0cmFjZXMpLgoJCQkJKiBgZXJyb3JzYCAtIEFuIGBlcnJvcnNgIG9iamVjdCwgYXMgW2Rlc2NyaWJlZCBoZXJlXSgjZXJyb3JzKS4KCQkJCSogYGNvbmZpZ2AgLSBBIGBjb25maWdgIG9iamVjdCwgYXMgW2Rlc2NyaWJlZCBoZXJlXSgjZ2V0LWNvbmZpZykuCgkJCQkqIGB1dGlsc2AgLSBBbiBgdXRpbHNgIG9iamVjdCwgYXMgW2Rlc2NyaWJlZCBoZXJlXSgjdXRpbHMpLgoJCQkJKiBgcHJvY2Vzc2AgLSBBbiBvYmplY3QgdGhhdCBhbGxvd3MgdG8gbWFuYWdlIHRoZSByZWxhdGVkIGBzY3JpcHRgIHByb3BlcnR5IF9wbTJfIHByb2Nlc3MgaW5zdGFuY2UgcmVsYXRlZCB0byBwcm92aWRlZCBtYW5kYXRvcnkgb3B0aW9uIGAtLW5hbWVgLiBJdCBoYXMgbWV0aG9kczoKCQkJCQkqIGBzdGFydGAgLSBTdGFydHMgdGhlIHByb2Nlc3MuCgkJCQkJKiBgc3RvcGAgLSBTdG9wcyB0aGUgcHJvY2Vzcy4KCQkJCQkqIGBsb2dzYCAtIERpc3BsYXlzIG91dCBsb2dzIHdoaWxlIGFyZSBiZWluZyByZWNlaXZlZC4KCglFeGFtcGxlIG9mIGN1c3RvbSBjb21tYW5kIGRlZmluaXRpb246CgpgYGBqcwpjb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpCmNvbnN0IGRvbWFwaWMgPSByZXF1aXJlKCdkb21hcGljLWJhc2UnKQoKZG9tYXBpYy5jbGkoewogIHNjcmlwdDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ3NlcnZlci5qcycpLAogIGN1c3RvbUNvbW1hbmRzOiB7CiAgICByZXN0YXJ0OiB7CiAgICAgIHByb2Nlc3NOYW1lOiAnc3RvcEN1c3RvbScsCiAgICAgIGRlc2NyaWJlOiAnRXhhbXBsZSBvZiBhIGN1c3RvbSBjb21tYW5kJywKICAgICAgY2xpOiAnc3RvcEN1c3RvbSA8Zm9vT3B0aW9uMT4nLAogICAgICBvcHRpb25zOiB7CiAgICAgICAgZm9vT3B0aW9uMjogewogICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLAogICAgICAgICAgZGVzY3JpYmU6ICdGb28gb3B0aW9uIGZvciBjb21tYW5kIGV4YW1wbGUnLAogICAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICAgIH0KICAgICAgfSwKICAgICAgY29tbWFuZDogKGNvbmZpZywgY2xpVXRpbHMpID0+IHsKICAgICAgICByZXR1cm4gY2xpVXRpbHMudHJhY2VyLmluZm8oSlNPTi5zdHJpbmdpZnkoY29uZmlnKSkKICAgICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgICAgY2xpVXRpbHMucHJvY2Vzcy5zdG9wKCkKICAgICAgICAgIH0pCiAgICAgIH0KICAgIH0KICB9Cn0pCmBgYAoKRXhhbXBsZSBvZiBjdXN0b20gY29tbWFuZCB1c2FnZToKCmBgYHNoZWxsCnlvdXItY2xpLW5hbWUgc3RvcEN1c3RvbSB2YWx1ZTEgLS1mb29PcHRpb24yPWZhbHNlIC0tbmFtZT10ZXN0aW5nCiMgV2lsbCBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXN0b20gY29tbWFuZCwgYW5kIHRoZW4gc3RvcCB0aGUgcHJvY2VzcyBvZiBzY3JpcHQgInNlcnZlci5qcyIgd2l0aCBuYW1lICJ0ZXN0aW5nIgpgYGAKCltiYWNrIHRvIHRvcF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLS0tCgojIyBUZXN0IFN1aXRlcwoKVGhpcyBwYWNrYWdlIHVzZXMgW05hcnZhbF1bbmFydmFsLXVybF0gYXMgdGVzdCBzdWl0ZXMgcnVubmVyLgoKRGlmZmVyZW50IHRlc3Qgc3VpdGVzIGFyZSBpbmNsdWRlZCwgY2F0ZWdvcml6ZWQgaW4gInVuaXQiLCAiaW50ZWdyYXRpb24iLCBhbmQgImVuZC10by1lbmQiIHRlc3RzLiBGb3IgZnVydGhlciBkZXRhaWxzLCByZWFkIHRoZSBgLm5hcnZhbC55bWxgLCBhbmQsIGlmIG5lZWRlZCwgeW91IGNhbiBsZWFybiBtb3JlIGFib3V0IE5hcnZhbCBjb25maWd1cmF0aW9uIGF0IFtpdHMgb3duIGRvY3VtZW50YXRpb25dW25hcnZhbC11cmxdLgoKUnVuIHRlc3RzOgoKYGBgc2hlbGwKbnBtIHRlc3QKYGBgCgpbYmFjayB0byB0b3BdKCN0YWJsZS1vZi1jb250ZW50cykKCltkb21hcGljLWJhc2UtbG9nby1pbWFnZV06IGh0dHA6Ly9kb21hcGljLmNvbS9hc3NldHMvZG9tYXBpYy1sb2dvLnBuZwoKW2NvdmVyYWxscy1pbWFnZV06IGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9kb21hcGljL2RvbWFwaWMtYmFzZS9iYWRnZS5zdmcKW2NvdmVyYWxscy11cmxdOiBodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvZG9tYXBpYy9kb21hcGljLWJhc2UKW3RyYXZpc2NpLWltYWdlXTogaHR0cHM6Ly90cmF2aXMtY2kub3JnL2RvbWFwaWMvZG9tYXBpYy1iYXNlLnN2Zz9icmFuY2g9bWFzdGVyClt0cmF2aXNjaS11cmxdOiBodHRwczovL3RyYXZpcy1jaS5vcmcvZG9tYXBpYy9kb21hcGljLWJhc2UKW2xhc3QtY29tbWl0LWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFzdC1jb21taXQvZG9tYXBpYy9kb21hcGljLWJhc2Uuc3ZnCltsYXN0LWNvbW1pdC11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vZG9tYXBpYy9kb21hcGljLWJhc2UvY29tbWl0cwpbbGljZW5zZS1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvZG9tYXBpYy1iYXNlLnN2ZwpbbGljZW5zZS11cmxdOiBodHRwczovL2dpdGh1Yi5jb20vZG9tYXBpYy9kb21hcGljLWJhc2UvYmxvYi9tYXN0ZXIvTElDRU5TRQpbbnBtLWRvd25sb2Fkcy1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2RtL2RvbWFwaWMtYmFzZS5zdmcKW25wbS1kb3dubG9hZHMtdXJsXTogaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZG9tYXBpYy1iYXNlCltucG0tZGVwZW5kZW5jaWVzLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kYXZpZC9kb21hcGljL2RvbWFwaWMtYmFzZS5zdmcKW25wbS1kZXBlbmRlbmNpZXMtdXJsXTogaHR0cHM6Ly9kYXZpZC1kbS5vcmcvZG9tYXBpYy9kb21hcGljLWJhc2UKW3F1YWxpdHktZ2F0ZS1pbWFnZV06IGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWRvbWFwaWMtYmFzZSZtZXRyaWM9YWxlcnRfc3RhdHVzCltxdWFsaXR5LWdhdGUtdXJsXTogaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1kb21hcGljLWJhc2UKW3JlbGVhc2UtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9yZWxlYXNlLWRhdGUvZG9tYXBpYy9kb21hcGljLWJhc2Uuc3ZnCltyZWxlYXNlLXVybF06IGh0dHBzOi8vZ2l0aHViLmNvbS9kb21hcGljL2RvbWFwaWMtYmFzZS9yZWxlYXNlcwpbc3RhbmRhcmQtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvZGUlMjBzdHlsZS1zdGFuZGFyZC1icmlnaHRncmVlbi5zdmcKW3N0YW5kYXJkLXVybF06IGh0dHA6Ly9zdGFuZGFyZGpzLmNvbS8KClt3ZWJzaXRlLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby93ZWJzaXRlLXVwLWRvd24tZ3JlZW4tcmVkL2h0dHAvZG9tYXBpYy5jb20uc3ZnP2xhYmVsPWRvbWFwaWMuY29tClt3ZWJzaXRlLXVybF06IGh0dHA6Ly9kb21hcGljLmNvbS8KCltwbTItdXJsXTogaHR0cDovL3BtMi5rZXltZXRyaWNzLmlvLwpbeWFyZ3MtdXJsXTogaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UveWFyZ3MKW25hcnZhbC11cmxdOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9uYXJ2YWwKW2RvbWFwaWMtY29udHJvbGxlci11cmxdOiBodHRwczovL25wbWpzLmNvbS9kb21hcGljLWNvbnRyb2xsZXIKW2RvbWFwaWMtc2VydmljZS11cmxdOiBodHRwczovL25wbWpzLmNvbS9kb21hcGljLXNlcnZpY2UK readmeEtag: '"f13e9614ca50c99137e109ba65ec4340bc85ed97"' readmeLastModified: Sat, 02 Mar 2019 11:30:57 GMT repositoryId: 121413231 description: Base for Domapic Node.js packages created: '2018-02-13T17:31:30Z' updated: '2019-05-26T09:26:31Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: domapic logo: https://avatars.githubusercontent.com/u/36418970?v=4 license: MIT repoEtag: '"6aba8e504b840ef8c918fa7035f9cae6a06223f59a2e166c48d1b7a0044f3237"' repoLastModified: Sun, 26 May 2019 09:26:31 GMT foundInMaster: true id: fbd71be97b54eacae0bec76ede6f9a40 - source: openapi3 tags repository: https://github.com/chunghha/lb-poc v3: true repositoryMetadata: base64Readme: >- IyBsYi1wb2MKClshW0xvb3BCYWNrXShodHRwczovL2dpdGh1Yi5jb20vc3Ryb25nbG9vcC9sb29wYmFjay1uZXh0L3Jhdy9tYXN0ZXIvZG9jcy9zaXRlL2ltZ3MvYnJhbmRpbmcvUG93ZXJlZC1ieS1Mb29wQmFjay1CYWRnZS0oYmx1ZSktQDJ4LnBuZyldKGh0dHA6Ly9sb29wYmFjay5pby8pCgohW29hc2dyYXBoXSguL29hc2dyYXBoLnBuZykK readmeEtag: '"136082fa6fe940a6ac5cd14b5207ed75ca3ba56f"' readmeLastModified: Mon, 30 Mar 2020 14:57:28 GMT repositoryId: 153759478 description: Loopback 4 POC created: '2018-10-19T09:33:11Z' updated: '2023-01-28T03:27:42Z' language: TypeScript archived: true stars: 0 watchers: 2 forks: 0 owner: chunghha logo: https://avatars.githubusercontent.com/u/24458075?v=4 repoEtag: '"a6c236dd7c422c992f9c566b62dabc088df4544212cbe4ee0d54150474a302bb"' repoLastModified: Sat, 28 Jan 2023 03:27:42 GMT foundInMaster: true category: Server id: 0aeabccd199aadf54cfdb62290aed132 - source: openapi3 tags repository: https://github.com/bepopov/intelligent_agent v3: true repositoryMetadata: repositoryId: 185402874 description: An intelligent agent for course creating created: '2019-05-07T13:00:33Z' updated: '2019-05-07T13:04:19Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: bepopov logo: https://avatars.githubusercontent.com/u/20209992?v=4 repoEtag: '"7ad59d1f7c94590b8a9e0252fa75885897d24114d43943a1a9e2ea131c71b4d6"' repoLastModified: Tue, 07 May 2019 13:04:19 GMT foundInMaster: true id: 2f9a60bc091a5b228cf32f7105aa82c4 - source: openapi3 tags repository: https://github.com/epiphone/express-openapi-typer v3: true repositoryMetadata: base64Readme: >- IyBleHByZXNzLW9wZW5hcGktdHlwZXIKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9lcGlwaG9uZS9leHByZXNzLW9wZW5hcGktdHlwZXIvd29ya2Zsb3dzL0NJL2JhZGdlLnN2ZykgWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leHByZXNzLW9wZW5hcGktdHlwZXIuc3ZnKV0oaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL2V4cHJlc3Mtb3BlbmFwaS10eXBlcikKCiMjIENhdXRpb24hIEFscGhhLWxldmVsIHNvZnR3YXJlIGFoZWFkLiBVc2UgYXQgeW91ciBvd24gcGVyaWwKQ29kZS1nZW5lcmF0aW9uLWZyZWUgY29udmVyc2lvbiBvZiAqKk9wZW5BUEkgdjMuMSoqIHNjaGVtYSBpbnRvICoqdHlwZS1jaGVja2VkIEV4cHJlc3MgcmVxdWVzdCBoYW5kbGVycyoqLgoKRGVyaXZlIEV4cHJlc3MgaGFuZGxlciB0eXBlcyBmcm9tIGFuIE9wZW5BUEkgc2NoZW1hIHRvIGdldAotIHR5cGUgZXJyb3JzIHdoZW4gYSBoYW5kbGVyIGRvZXNuJ3QgbWF0Y2ggdGhlIHNjaGVtYSwgYW5kCi0gYXV0by1jb21wbGV0aW9uIG9uIGhhbmRsZXIgcGF0aCwgYHJlcS5wYXJhbWAsIGByZXEucXVlcnlgLCBgcmVxLmJvZHlgLCBgcmVzLnNlbmQoKWAsIGByZXMuanNvbigpYCBldGMuCgpOb3RlIHRoYXQgdGhlIGxpYnJhcnkgKipkb2VzIG5vdCBwZXJmb3JtIHJ1bnRpbWUgdmFsaWRhdGlvbioqIGFnYWluc3QgdGhlIE9wZW5BUEkgc2NoZW1hOiBhZGQgc29tZXRoaW5nIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL0hpbHp1L2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0ZSBmb3IgdGhhdCBwdXJwb3NlLgoKKipSZXF1aXJlcyBPcGVuQVBJIHYzLjEqKi4gVGhpcyBsaWJyYXJ5IHJlbGllcyBoZWF2aWx5IG9uIGV4aXN0aW5nIEpTT04gU2NoZW1hIHRvb2xpbmcgd2hlcmVhcyBlYXJsaWVyIE9wZW5BUEkgdmVyc2lvbnMgdXNlIHRoZSBbT3BlbkFQSSBTY2hlbWEgT2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCNzY2hlbWFPYmplY3QpIGluc3RlYWQgb2YgcHVyZSBKU09OIFNjaGVtYS4gT3BlbkFQSSBgdjMuMWAgaXMgeWV0IHVucHVibGlzaGVkOyB0cmFjayBwcm9ncmVzcyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vaXNzdWVzLzIwMjUpLiBSZWFkIG1vcmUgYWJvdXQgdGhlIE9wZW5BUEkvSlNPTiBTY2hlbWEgZGl2ZXJnZW5jZSBhdCBodHRwczovL2FwaXN5b3V3b250aGF0ZS5jb20vYmxvZy9vcGVuYXBpLWFuZC1qc29uLXNjaGVtYS1kaXZlcmdlbmNlLXBhcnQtMSBhbmQgaG93IGB2My4xYCBzb2x2ZXMgaXQgYXQgaHR0cHM6Ly9waGlsLnRlY2gvMjAxOS8wOS8wNy91cGRhdGUtb3BlbmFwaS1qc29uLXNjaGVtYS8uCgojIyBJbnN0YWxsCgpgeWFybiBhZGQgZXhwcmVzcy1vcGVuYXBpLXR5cGVyYAoKIyMgVXNhZ2UKCkZpcnN0IGRlZmluZSB5b3VyIE9wZW5BUEkgc2NoZW1hIGFzIGEgVHlwZVNjcmlwdCB0eXBlOgoKYGBgdHlwZXNjcmlwdAppbnRlcmZhY2UgUGV0U3RvcmVTY2hlbWEgewogIG9wZW5hcGk6ICczLjEuMCcKICBpbmZvOiB7IC4uLiB9CiAgcGF0aHM6IHsKICAgICcvcGV0cyc6IHsKICAgICAgICBnZXQ6IHsgLi4ufQogICAgfSwKICAgIC4uLgogIH0KfQpgYGAKClRoZW4gb3ZlcnJpZGUgeW91ciBFeHByZXNzIHJvdXRlcidzIHR5cGUgZnJvbQoKYGBgdHlwZXNjcmlwdApjb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpCmBgYAoKaW50byB0aGUgZm9sbG93aW5nOgoKYGBgdHlwZXNjcmlwdAppbXBvcnQgeyBPcGVuQVBJUm91dGVyIH0gZnJvbSAnZXhwcmVzcy1vcGVuYXBpLXR5cGVyJwoKY29uc3Qgcm91dGVyID0gKGV4cHJlc3MuUm91dGVyKCkgYXMgdW5rbm93bikgYXMgT3BlbkFQSVJvdXRlcjxQZXRTdG9yZVNjaGVtYT4KYGBgCgpIYW5kbGVyIGZ1bmN0aW9ucyBpbiBgcm91dGVyYCBub3cgZ2V0IHR5cGUtY2hlY2tlZCBhcyBwZXIgYFBldFN0b3JlU2NoZW1hYCEgRm9yIGV4YW1wbGUgd2hlbiB1c2luZyBbdGhlIGZ1bGwgc2FtcGxlIFBldFN0b3JlIHNjaGVtYV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvZXhhbXBsZXMvdjMuMC9wZXRzdG9yZS1leHBhbmRlZC55YW1sKSB3ZSBlbmQgdXAgd2l0aCB0aGUgZm9sbG93aW5nOgoKIVtVc2FnZSBzYW1wbGVdKC4vZG9jL3VzYWdlLmdpZikKCiMjIyBBY2Nlc3MgT3BlbkFQSSBzY2hlbWEgdHlwZSBmcm9tIGEgcnVudGltZSB2YWx1ZQoKSXQgY2FuIGJlIHVzZWZ1bCB0byBpbnN0YW50aWF0ZSB0aGUgT3BlbkFQSSBzY2hlbWEgYXMgYSBydW50aW1lIHZhbHVlIGluc3RlYWQgb2YganVzdCBkZWZpbmluZyBhIHR5cGUuIEZvciBleGFtcGxlIHdoZW4gc2VydmluZyB0aGUgc2NoZW1hIGFzIGRvY3VtZW50YXRpb24gb3IgaGFuZGxpbmcgdmFsaWRhdGlvbiB3ZSBuZWVkIHRvIGFjY2VzcyB0aGUgc2NoZW1hIGF0IHJ1bnRpbWUuIEluIGNhc2VzIGxpa2UgdGhlc2UgY29tYmluZSBgdHlwZW9mYCBhbmQgW2BhcyBjb25zdGBdKGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL3JlbGVhc2Utbm90ZXMvdHlwZXNjcmlwdC0zLTQuaHRtbCNjb25zdC1hc3NlcnRpb25zKSB0byBhY2Nlc3MgdGhlIHNjaGVtYSB2YWx1ZSdzIHR5cGU6CgpgYGB0eXBlc2NyaXB0CmNvbnN0IHBldFN0b3JlU2NoZW1hID0gewogIG9wZW5hcGk6ICczLjEuMCcsCiAgaW5mbzogeyAuLi4gfSwKICBwYXRoczogewogICAgJy9wZXRzJzogewogICAgICAgIGdldDogeyAuLi4gfQogICAgfSwKICAgIC4uLgogIH0KfSBhcyBjb25zdCAvLyA8LS0gaW1wb3J0YW50IQoKdHlwZSBQZXRTdG9yZVNjaGVtYSA9IHR5cGVvZiBwZXRTdG9yZVNjaGVtYQpgYGAKCiMjIyBBbGxvdyBhZGRpdGlvbmFsIHBhdGhzCgpCeSBkZWZhdWx0IGBPcGVuQVBJUm91dGVyYCBkb2Vzbid0IGFsbG93IGFueSBhZGRpdGlvbmFsIGhhbmRsZXJzIG5vdCBkZWZpbmVkIGluIHRoZSBPcGVuQVBJIHNjaGVtYS4gVG8gbG9vc2VuIHRoaXMgcmVzdHJpY3Rpb24geW91IGNhbiBleHBhbmQgdGhlIHR5cGUgYXMgZm9sbG93czoKCmBgYHR5cGVzY3JpcHQKaW1wb3J0ICogYXMgZXhwcmVzcyBmcm9tICdleHByZXNzJwoKY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKSBhcyBPcGVuQVBJUm91dGVyPFBldFN0b3JlU2NoZW1hPiAmIGV4cHJlc3MuUm91dGVyCmBgYAoKWW91IGNhbiBhbHNvIHNlbGVjdCBhIHN1YnNldCBvZiBgZXhwcmVzcy5Sb3V0ZXJgIHdpdGggW2BQaWNrYC9gT21pdGBdKGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL3V0aWxpdHktdHlwZXMuaHRtbCNwaWNrdGspIHdoZW4gYWxsb3dpbmcgYWRkaXRpb25hbCBtZXRob2RzIG9ubHkgZm9yIGEgc3BlY2lmaWMgSFRUUCBtZXRob2QsIGZvciBleGFtcGxlLgoKIyMgVE9ETwotIEFsbCB0aGUgbGltaXRhdGlvbnMgZnJvbSBbYGpzb24tc2NoZW1hLXR5cGUtbWFwcGVyYF0oaHR0cHM6Ly9naXRodWIuY29tL2VwaXBob25lL2pzb24tc2NoZW1hLXR5cGUtbWFwcGVyKSBhcHBseSBoZXJlIGFzIHdlbGwKLSBIYW5kbGUgcmVxdWVzdCBoZWFkZXIgcGFyYW1ldGVycz8KLSBBUEkgY2xpZW50IHR5cGUgY2hlY2tpbmcsIHVzaW5nIEF4aW9zPwotIEZpZ3VyZSBhIHdheSBvdXQgb2YgdGhlIHVuZm9ydHVuYXRlIGBhcyB1bmtub3duYCBjYXN0Ci0gU3VwcG9ydCBwYXRoLWJhc2VkIGAkcmVmYHMsIG5vdCBqdXN0IGAkaWRgLWJhc2VkIG9uZXMKICAtIHJlcXVpcmVzIHNvbWUgc29ydCBvZiBtYW51YWwgbWFwcGluZyBhcyB3ZSBjYW4ndCB0YWtlIGAiIy9jb21wb25lbnRzL3NjaGVtYXMvTmV3VXNlciJgIGFwYXJ0IGF0IHR5cGUtbGV2ZWwKCiMjIFJlbGF0ZWQgcHJvamVjdHMKLSBDaGVjayBvdXQgW3Jlc3R5cGVkXShodHRwczovL2dpdGh1Yi5jb20vcmF3cm1hYW4vcmVzdHlwZWQpIGFuZCBbcmVzdC50c10oaHR0cHM6Ly9naXRodWIuY29tL2htaWwvcmVzdC50cykgZm9yIGRpZmZlcmVudCBhcHByb2FjaGVzIHRvIHR5cGUtc2FmZSBSRVNUIEFQSXMK readmeEtag: '"d0b621a6479949518dfec26510268a2f56d41cd8"' readmeLastModified: Mon, 09 Dec 2019 14:29:43 GMT repositoryId: 222856268 description: >- Code-generation-free conversion of OpenAPI schema into typed Express request handlers created: '2019-11-20T05:15:33Z' updated: '2019-12-09T14:29:50Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: epiphone logo: https://avatars.githubusercontent.com/u/1923531?v=4 license: MIT repoEtag: '"fa5738a71538bdb99e0cda48235c31944a7ab68206464705fd111f8c8e699fef"' repoLastModified: Mon, 09 Dec 2019 14:29:50 GMT foundInMaster: true category: Parsers id: 3dc9d32a30d29bdcebf1249a3ca227f9 - source: openapi3 tags repository: https://github.com/sudokuru/frontend v3: true id: 69e0ef6db084252188c93ab7716b9309 repositoryMetadata: base64Readme: >- IVtTdWRva3VydSBMb2dvXShodHRwczovL3N1ZG9rdXJ1LnMzLmFtYXpvbmF3cy5jb20vZ29sZExvZ29UZXh0LnBuZykKCiMgVGhlIE9mZmljaWFsIENyb3NzLVBsYXRmb3JtIEZyb250ZW5kIGZvciBvdXIgRnJlZSBPcGVuIFNvdXJjZSBTdWRva3UgUHJvamVjdAoKIyDwn5K7IFRyeSBvdXIgREVWIHNpdGUgYXQ6IGh0dHBzOi8vc3Vkb2t1cnUucGFnZXMuZGV2LwoKIyDirIfvuI8gRG93bmxvYWQgb3VyIGFscGhhIPCfk7FBbmRyb2lkLCDwn5CnTGludXgsIGFuZCDwn6qfV2luZG93cyBhcHAgYnVpbGRzIGF0OiBodHRwczovL3N1ZG9rdXJ1Lml0Y2guaW8vc3Vkb2t1cnUKClshW1BpcGVsaW5lXShodHRwczovL2dpdGh1Yi5jb20vU3Vkb0t1cnUvRnJvbnRlbmQvYWN0aW9ucy93b3JrZmxvd3MvcGlwZWxpbmUueW1sL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vZ2l0aHViLmNvbS9TdWRvS3VydS9Gcm9udGVuZC9hY3Rpb25zL3dvcmtmbG93cy9waXBlbGluZS55bWwpClshW0NvdmVyYWxscyBDb3ZlcmFnZV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL1N1ZG9LdXJ1L0Zyb250ZW5kL2JhZGdlLnN2Zz9icmFuY2g9bWFpbildKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9TdWRvS3VydS9Gcm9udGVuZD9icmFuY2g9bWFpbikKWyFbQ29kZWNvdiBDb3ZlcmFnZV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL1N1ZG9LdXJ1L0Zyb250ZW5kL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj1YUVNUS1BUQkZGKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL1N1ZG9LdXJ1L0Zyb250ZW5kKQpbIVtGT1NTQSBTdGF0dXNdKGh0dHBzOi8vYXBwLmZvc3NhLmNvbS9hcGkvcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRlN1ZG9LdXJ1JTJGRnJvbnRlbmQuc3ZnP3R5cGU9c2hpZWxkJmlzc3VlVHlwZT1saWNlbnNlKV0oaHR0cHM6Ly9hcHAuZm9zc2EuY29tL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZTdWRvS3VydSUyRkZyb250ZW5kP3JlZj1iYWRnZV9zaGllbGQmaXNzdWVUeXBlPWxpY2Vuc2UpClshW0NvZGVGYWN0b3JdKGh0dHBzOi8vd3d3LmNvZGVmYWN0b3IuaW8vcmVwb3NpdG9yeS9naXRodWIvc3Vkb2t1cnUvZnJvbnRlbmQvYmFkZ2UpXShodHRwczovL3d3dy5jb2RlZmFjdG9yLmlvL3JlcG9zaXRvcnkvZ2l0aHViL3N1ZG9rdXJ1L2Zyb250ZW5kKQpbIVtDb2RhY3kgQmFkZ2VdKGh0dHBzOi8vYXBwLmNvZGFjeS5jb20vcHJvamVjdC9iYWRnZS9HcmFkZS8xMzQyZjg0MmExNGY0MGNjYTg1NmQ2ZTgxMjA0ZjhhYyldKGh0dHBzOi8vYXBwLmNvZGFjeS5jb20vZ2gvU3Vkb2t1cnUvRnJvbnRlbmQvZGFzaGJvYXJkP3V0bV9zb3VyY2U9Z2gmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY29udGVudD0mdXRtX2NhbXBhaWduPUJhZGdlX2dyYWRlKQpbIVtNYWludGFpbmFiaWxpdHldKGh0dHBzOi8vYXBpLmNvZGVjbGltYXRlLmNvbS92MS9iYWRnZXMvNGNkMWQxMDI3YjdiMjUzMmM2ODAvbWFpbnRhaW5hYmlsaXR5KV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL1N1ZG9rdXJ1L0Zyb250ZW5kL21haW50YWluYWJpbGl0eSkKCiMjIFN1ZG9rdXJ1IGlzIGFuIG9wZW4tc291cmNlIHByb2plY3QgZm9jdXNlZCBvbiBkZXZlbG9waW5nIGEgd29ybGQtY2xhc3MsIGNyb3NzLXBsYXRmb3JtIFN1ZG9rdSBhcHAuIFdlIGFpbSB0byBwcm92aWRlIGEgZGVsaWdodGZ1bCB1c2VyIGV4cGVyaWVuY2Ugd2hpbGUgYWxzbyBjb250cmlidXRpbmcgdG8gdGhlIGNvbW11bml0eSBieSBidWlsZGluZyBhIGNvbGxlY3Rpb24gb2YgcmV1c2FibGUgc29mdHdhcmUgbW9kdWxlcy4gVGhlc2UgbW9kdWxlcyBhcmUgZGVzaWduZWQgdG8gYmUgZnJlZSwgd2VsbC1kb2N1bWVudGVkLCBtb2Rlcm4sIGFuZCBpbnRlcm9wZXJhYmxlLCBhbGxvd2luZyBkZXZlbG9wZXJzIHRvIGVhc2lseSBpbmNvcnBvcmF0ZSB0aGVtIGludG8gdGhlaXIgb3duIFN1ZG9rdS1yZWxhdGVkIHByb2plY3RzLgoKIyMjIFRoaXMgZnJvbnRlbmQgbW9kdWxlIGlzIHRoZSBwcmltYXJ5IHVzZXIgaW50ZXJmYWNlIGZvciBTdWRva3VydSwgcHJvdmlkaW5nIGEgY3Jvc3MtcGxhdGZvcm0gU3Vkb2t1IGV4cGVyaWVuY2UgYnVpbHQgd2l0aCBSZWFjdCBOYXRpdmUgV2ViIGFuZCBUeXBlU2NyaXB0LiBJdCBvZmZlcnMgYSBjbGVhbiwgaW50dWl0aXZlIGRlc2lnbiB3aXRoIGZlYXR1cmVzIHN1Y2ggYXM6CgotIPCfjq4gUGxheSBTdWRva3UgYWNyb3NzIDkgZGlmZmVyZW50IGRpZmZpY3VsdHkgbGV2ZWxzIGdlbmVyYXRlZCBieSB0aGUgU3Vkb2t1cnUgQ2xlYXJpbmdob3VzZSBtb2R1bGUKLSDwn46TIExlYXJuIGhvdyB0byBwbGF5IFN1ZG9rdSB3aXRoIGxlc3NvbnMgZnJvbSB0aGUgYmFzaWNzIGFsbCB0aGUgd2F5IHRvIGFkdmFuY2VkIHN0cmF0ZWdpZXMKLSDwn5OKIFN0YXRpc3RpY3MgdG8gdHJhY2sgeW91ciBwcm9ncmVzcwotIOKame+4jyBTZW5zaWJsZSBkZWZhdWx0IHNldHRpbmdzIGZvciBjYXN1YWwgcGxheWVycyB3aXRoIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSBwbGF5aW5nIGV4cGVyaWVuY2UgZm9yIHVzZXJzIHdpdGggZGlmZmVyZW50IHBsYXlzdHlsZXMKLSDwn5OFIF9VcGNvbWluZ186IGN1c3RvbSBzdHJhdGVneSBiYXNlZCBoaW50cyBmcm9tIHRoZSBTdWRva3VydSBucG0gbGlicmFyeSBtb2R1bGUKLSDwn5OFIF9VcGNvbWluZ186IGRyaWxscyB3aGljaCBsZXQgeW91IHByYWN0aWNlIGluZGl2aWR1YWwgc3RyYXRlZ2llcyBhbHNvIHBvd2VyZWQgYnkgdGhlIFN1ZG9rdXJ1IG5wbSBsaWJyYXJ5IG1vZHVsZQoKIyDwn5al77iPIFN1cHBvcnRlZCBQbGF0Zm9ybXMKCiMjIFRpZXIgMSBTdXBwb3J0CgojIyMg8J+aoiBXZWIKCiMjIFRpZXIgMiBTdXBwb3J0CgojIyMg4pqS77iPIEFuZHJvaWQKCiMjIyDimpLvuI8gV2luZG93cwoKIyMjIOKaku+4jyBMaW51eAoKIyMgUGxhbm5lZCBTdXBwb3J0CgojIyMg8J+ThSBpT1MKCiMjIyDwn5OFIE1hY09TCgojIyBMZWdlbmQKCiMjIyDwn5qiIFRpZXIgMSBTdXBwb3J0IC0gV2UgaGF2ZSBmdWxsIGVuZCB0byBlbmQgdGVzdCBjb3ZlcmFnZSBmb3IgYWxsIG5ldyBhbmQgZXhpc3RpbmcgZnVuY3Rpb25hbGl0eS4gV2UgZG8gbWFudWFsIHRlc3Rpbmcgb2YgbmV3IGZlYXR1cmVzIGJlZm9yZSBkZXBsb3ltZW50LgoKIyMjIOKaku+4jyBUaWVyIDIgU3VwcG9ydCAtIFdlIGhhdmUgcGFydGlhbCBvciB6ZXJvIGVuZCB0byBlbmQgdGVzdCBjb3ZlcmFnZSBmb3IgbmV3IGFuZCBleGlzdGluZyBmdW5jdGlvbmFsaXR5LiBXZSBtYXkgbm90IGFsd2F5cyBkbyBtYW51YWwgdGVzdGluZyBvZiBuZXcgZmVhdHVyZXMgYmVmb3JlIGRlcGxveW1lbnQuCgojIyMg8J+ThSBQbGFubmVkIFN1cHBvcnQgLSBXZSBkbyBub3QgY3VycmVudGx5IHN1cHBvcnQgdGhpcyBwbGF0Zm9ybSwgYnV0IHdlIHBsYW4gb24gc3VwcG9ydGluZyBpbiB0aGUgZnV0dXJlLgoKIyDwn5ug77iPIExvY2FsIGRldmVsb3BtZW50CgojIyDimpnvuI8gR2VuZXJhbCBTZXR1cDoKCjEuIEdpdCBjbG9uZSB0aGlzIHJlcG9zaXRvcnkKMi4gSW5zdGFsbCBOb2RlLmpzIGB2MTkuNS4wYCBvciBsYXRlcgozLiBJbnN0YWxsIG5wbSBgOS4zLjFgIG9yIGxhdGVyCjQuIFJ1biBgbnBtIGlgIGluIHRoZSByb290IGZvbGRlcgoKIyMg8J+TsiBNb2JpbGUgU2V0dXAgKG5vdCBuZWVkZWQgdG8gcnVuIHdlYnNpdGUpOgoKMS4gQ29udGFjdCBUaG9tYXMgdG8gZ2V0IGFkZGVkIHRvIHRoZSBFeHBvIG9yZ2FuaXphdGlvbiBzbyB0aGF0IHlvdSBjYW4gbG9nIGluIHdpdGggeW91ciBvd24gZW1haWwgYW5kIHBhc3N3b3JkLgoyLiBEb3dubG9hZCB0aGUgZXhwbyBhcHAgb24geW91ciBtb2JpbGUgZGV2aWNlLgozLiBPbiB5b3VyIGRldmVsb3BtZW50IGRldmljZSwgZS5nLiwgbGFwdG9wLCBsb2dpbiBieSBydW5uaW5nOiBgZXhwbyBsb2dpbmAgYW5kIGZpbGwgb3V0IHRoZSBwYXJhbWV0ZXJzLgoKIyMg8J+Pg+KAjeKZgu+4jyBSdW5uaW5nIHRoZSBBcHBsaWNhdGlvbiBMb2NhbGx5CgoxLiBSdW4gYG5wbSBydW4gc3RhcnRgIGZyb20gdGhpcyByZXBvc2l0b3JpZXMgcm9vdCBmb2xkZXIKMi4gRm9yIGlPUywgc2NhbiB0aGUgUVIgY29kZSB3aXRoIHlvdXIgY2FtZXJhIGFwcCwgZm9yIEFuZHJvaWQgeW91IHdpbGwgbmVlZCB0byBzY2FuIHRoZSBjb2RlIGZyb20gd2l0aGluIHRoZSBFeHBvIGFwcC4KMy4gRm9yIFdlYiwgaGl0IHRoZSB3IGtleSB0byBzdGFydCB1cCB0aGUgd2Vic2l0ZSBhdCBgbG9jYWxob3N0OjE5MDAwYAoKIyMg8J+OrSBQbGF5d3JpZ2h0IEUyRSBUZXN0cwoKIyMjIOKame+4jyBTZXR1cAoKMS4gUnVuIGBucHggcGxheXdyaWdodCBpbnN0YWxsYCB0byBpbnN0YWxsIHBsYXl3cmlnaHQgZGVwZW5kZW5jaWVzCjIuIENyZWF0ZSBhIGAuZW52YCBmaWxlIGluIGZvciBsb2NhbCBkZXZlbG9wbWVudCBiYXNlZCBvbiB2YWx1ZXMgaW4gYC5lbnYuZXhhbXBsZWAKCiMjIyDwn4+D4oCN4pmC77iPIFJ1bm5pbmcgdGhlIFRlc3RzCgotIOKaoO+4jyBNYWtlIHN1cmUgdGhhdCB0aGUgd2Vic2l0ZSBpcyBydW5uaW5nIGxvY2FsbHkgKG9yIGNoYW5nZSBiYXNlVVJMIHRvIG1hdGNoIHdoZXJlIHlvdSB3YW50IHRvIHRlc3QpCi0g8J+SuyBSdW4gYG5wbSBydW4gcGxheXdyaWdodDp1aWAgdG8gcnVuIHRlc3RzIHVzaW5nIHBsYXl3cmlnaHQgdWkKLSDijKjvuI8gUnVuIGBucG0gcnVuIHBsYXl3cmlnaHQ6dGVzdGAgdG8gcnVuIHRlc3RzIHVzaW5nIHBsYXl3cmlnaHQgY2xpCi0g8J+TiyBSdW4gYG5wbSBydW4gcGxheXdyaWdodDpyZXBvcnRgIHRvIHZpZXcgcGxheXdyaWdodCByZXBvcnQKCiMjIyDwn5SnIFNldHVwIHRvIHVzZSBhIFNpbmdsZSBQdXp6bGUgZm9yIERlYnVnZ2luZwoKLSBJbiB0aGUgYGFwcC9BcGkvUHV6emxlcy50c2AgZmlsZSwgdGhlIGBzdGFydEdhbWVgIGZ1bmN0aW9uIGNhbiBiZSBtb2RpZmllZCBzbyB0aGF0IG9ubHkgYSBzaW5nbGUgZ2FtZSBpcyB1c2VkLgotIFJlcGxhY2UgYHJldHVybkdhbWVPZkRpZmZpY3VsdHkoZGlmZmljdWx0eSlgIHdpdGggYHJldHVybkdhbWVPZkRpZmZpY3VsdHkoImRldiIpYCBhbmQgdGhlIGRldiBwdXp6bGUgd2lsbCBiZSByZXRyaWV2ZWQuCi0gVGhlIGByZXR1cm5HYW1lT2ZEaWZmaWN1bHR5YCBmdW5jdGlvbiBjYW4gYWxzbyBiZSBtb2RpZmllZCB0byByZXR1cm4gYSBkZXNpcmVkIHB1enpsZS4gQnkgZGVmYXVsdCwgaXQgcmV0dXJucyB0aGUgZmlyc3QgYG5vdmljZWAgcHV6emxlLgoKIyMjIOKaoO+4jyBDeXByZXNzIEUyRSBUZXN0cyDimqDvuI8gKFdlIGFyZSBwaGFzaW5nIG91dCBDeXByZXNzIFRlc3RzKQoKUnVuIGBucG0gcnVuIHdlYjpkZXZgICAKVGhpcyBzdGFydHMgdGhlIHdlYnNpdGUgaW4gZGV2ZWxvcG1lbnQgbW9kZSwgd2l0aCBhY2Nlc3MgdG8gdGhlIGRldmVsb3BtZW50IHBsdWdpbnMuICAKUnVuIGBucG0gcnVuIG9wZW46Y3lwcmVzc2Agb3IgYG5weCBjeXByZXNzIG9wZW5gIHRvIG9wZW4gdXAgdGhlIGN5cHJlc3MgdGVzdGluZyBpbnRlcmZhY2UuICAKKipOb3RlOiBSdW5uaW5nIGluZGl2aWR1YWwgc3BlYyBmaWxlcyB3aWxsIG92ZXJyaWRlIHRoZSBjb2RlIGNvdmVyYWdlIG9mIHRoZSBwcmV2aW91cyBzcGVjIGZpbGUqKiAgClRvIGdlbmVyYXRlIGEgY29kZS1jb3ZlcmFnZSByZXBvcnQgZm9yIGFsbCBzcGVjIGZpbGVzLCBydW4gdGhlIGNvbW1hbmQgYG5weCBjeXByZXNzIHJ1bmAuIFRoaXMgd2lsbCBydW4gYWxsIG9mIHRoZSB0ZXN0cyBhdCB0aGUgc2FtZSB0aW1lIGFuZCBvdXRwdXQgYSBjb21iaW5lZCBjb2RlLWNvdmVyYWdlIHJlcG9ydCBhdCB0aGUgZW5kLiAgClRvIGRpc2FibGUgc2NyZWVuc2hvdHMgYW5kIHZpZGVvIGZvciBjeXByZXNzIHRlc3RzIHJ1biBgbnBtIHJ1biB0ZXN0OmN5cHJlc3NgICAKQWZ0ZXIgcnVubmluZyB0ZXN0cywgYC5ueWNfb3V0cHV0YCBhbmQgYGNvdmVyYWdlYCBmb2xkZXJzIGFyZSBnZW5lcmF0ZWQuIFRoZSBjb3ZlcmFnZSBmb2xkZXIgY29udGFpbnMgYWxsIG9mIHRoZSBjb2RlIGNvdmVyYWdlIHJlc3VsdHMgZnJvbSB0aGUgdGVzdHMuICAKTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQgW2N5cHJlc3MgZG9jc10oaHR0cHM6Ly9naXRodWIuY29tL2N5cHJlc3MtaW8vY29kZS1jb3ZlcmFnZSkuICAKVGhlIGJlc3Qgd2F5IHRvIHZpZXcgY292ZXJhZ2UgcmVzdWx0cyBsb2NhbGx5IGlzIHRvIG9wZW4gdGhlIGBjb3ZlcmFnZS9sY292LXJlcG9ydC9pbmRleC5odG1sYCBmaWxlLgoKIyMg8J+boe+4j/CfkLYgUnVuIFNueWsgc2NhbnMKClRoZSBjb21tYW5kIHRvIHJ1biBhIFNueWsgT3BlbiBTb3VyY2Ugc2NhbiBpcyBgbnBtIHJ1biBzbnlrOm9wZW5zb3VyY2VgCgpUaGUgY29tbWFuZCB0byBydW4gYSBTbnlrIGNvZGUgc2NhbiBpcyBgbnBtIHJ1biBzbnlrOmNvZGVgCgpFeGlzdGluZyBpc3N1ZXMgaW4gdGhlIG1haW4gYnJhbmNoIGNhbiBiZSBbdmlld2VkIGhlcmVdKGh0dHBzOi8vYXBwLnNueWsuaW8vb3JnL3N1ZG9rdXJ1KQoKIyDwn5uj77iPIFJvYWRtYXAKCiMjIEdpdGh1YiBQcm9qZWN0IEthbmJhbiBCb2FyZHMKCldlIG9yZ2FuaXplIG91ciBmdXR1cmUgd29yayB1c2luZyB0aGUgW0Zyb250ZW5kIEdpdGh1YiBQcm9qZWN0IEJvYXJkXShodHRwczovL2dpdGh1Yi5jb20vb3Jncy9TdWRva3VydS9wcm9qZWN0cy80L3ZpZXdzLzEpIHdoaWNoIHdlIGN1cnJlbnRseSBoYXZlIGRpdmlkZWQgaW50byB0aGUgZm9sbG93aW5nIGNvbHVtbnMuIFdlIGFsc28gYXBwbHkgbGFiZWxzIHdoaWNoIGFyZSBbZG9jdW1lbnRlZCBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vU3Vkb2t1cnUvRnJvbnRlbmQvbGFiZWxzKSBhbmQgd29yayB0b3dhcmRzIG1pbGVzdG9uZXMgW2xpc3RlZCBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vU3Vkb2t1cnUvRnJvbnRlbmQvbWlsZXN0b25lcykuCgojIyMg8J+SoSBCYWNrbG9nCgpUaGlzIGlzIHRoZSBnZW5lcmFsIGJ1Y2tldCBmb3IgZXZlcnl0aGluZyB0aGF0IHdlIGFyZSBjb25zaWRlcmluZyBkb2luZyBzb21lZGF5IGJ1dCBkb2VzIG5vdCBmaXQgaW50byBhbnkgb2YgdGhlIGZvbGxvd2luZyBib2FyZHMuCgojIyMg4pqZ77iPIEluIGRldmVsb3BtZW50CgpUaGlzIGlzIGZvciBhbGwgdGhlIHRpY2tldHMgd2UgYXJlIGN1cnJlbnRseSB3b3JraW5nLiBSZXF1aXJlcyBhbiBhY2NlcHRhbmNlIGNyaXRlcmlhIHRvIGJlIGFkZGVkIHRvIHRoZSBkZXNjcmlwdGlvbiBhdCB0aGlzIHN0YWdlLgoKIyMjIPCfmqIgU2hpcHBlZAoKVGhpcyBpcyBmb3IgYWxsIHRoZSBjb29sIHRoaW5ncyB3ZSBoYXZlIGFscmVhZHkgYWNjb21wbGlzaGVkIQo= readmeEtag: '"6354eb450e7226f37a0144ffb453e4ccd84ff260"' readmeLastModified: Fri, 30 Aug 2024 01:26:44 GMT repositoryId: 559579865 description: null created: '2022-10-30T14:59:36Z' updated: '2024-08-30T01:26:47Z' language: TypeScript archived: false stars: 2 watchers: 1 forks: 1 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"08aa0a74d61f386949e3f8d67300d621af0e70f5d4be249179c0d428f6e1feb0"' repoLastModified: Fri, 30 Aug 2024 01:26:47 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/seandavi/cmgd_web v3: true repositoryMetadata: repositoryId: 296348041 description: Web portal and API for the Curated Metagenomics Data project created: '2020-09-17T14:16:44Z' updated: '2024-07-12T06:24:26Z' language: Python archived: false stars: 0 watchers: 4 forks: 0 owner: seandavi logo: https://avatars.githubusercontent.com/u/92435?v=4 repoEtag: '"f7f1499b2dab2862b87502f78a9489292a175f26c6f190c967ef09efc3533052"' repoLastModified: Fri, 12 Jul 2024 06:24:26 GMT foundInMaster: true id: fb4fed9b0a7ae53a122c03126af2f4d0 - source: openapi3 tags repository: https://github.com/aqib1/currencyconvertor v3: true repositoryMetadata: base64Readme: >- IyBDdXJyZW5jeUNvbnZlcnRvcgoKIyBUYXNrCkxldCdzIHdhbGsgdGhyb3VnaCB0aGlzIHRhc2s6IAoxLiBDcmVhdGUgYSBuZXcgSmF2YSAvIEtvdGxpbiBNaWNyby1TZXJ2aWNlIEFwcGxpY2F0aW9uLCB1dGlsaXppbmcgU3ByaW5nIEJvb3QuIAoyLiBTZXJ2ZSB0aGUgZm9sbG93aW5nIEFQSSBlbmRwb2ludHM6IAogICBPdXRwdXQgdGhlIGN1cnJlbnQgdGltZSAoYXMgdmFsaWQgSlNPTikgQ29udmVydCBjdXJyZW5jeSBpbnB1dHMgZW5kcG9pbnQ6ICAvYXBpL2N1cnJlbmN5L2NvbnZlcnQgCiAgIGlucHV0czoKICAgICAgICBhbW91bnQgKGluIHNvdXJjZS1jdXJyZW5jeSksIHNvdXJjZS1jdXJyZW5jeSwgdGFyZ2V0LWN1cnJlbmN5IAogICBvdXRwdXQ6IAogICAgICAgIGFtb3VudCBpbiB0YXJnZXQtY3VycmVuY3kgKGFzIHZhbGlkIEpTT04pIHlvdSBtYXkgdXNlIHN0YXRpYyBjb252ZXJzaW9uIGRhdGEgb3IgY29ubmVjdCB0byBhIHB1YmxpYyBjb252ZXJ0ZXIgKGUuZy4gaHR0cHM6Ly9jdXJyZW5jeWxheWVyLmNvbS9kb2N1bWVudGF0aW9uKSBWYWxpZGF0ZSBhIFZBVCBpbnB1dCBhbmQgcmV0dXJuIGlucHV0OiBwb3RlbnRpYWwgVkFUIG51bWJlciBvdXRwdXQ6IGNvdW50cnkgKGNvZGUpIGZvciBWQVQgbnVtYmVyIChhcyB2YWxpZCBKU09OKSB5b3UgbWF5IHVzZSBhIHN0YXRpYyBtYXBwaW5nIG9yIGNvbm5lY3QgdG8gYSBwdWJsaWMgYXBpIChlLmcuIGh0dHBzOi8vYXBpLmNsb3VkbWVyc2l2ZS5jb20vc3dhZ2dlci9pbmRleC5odG1sPyB1cmxzLnByaW1hcnlOYW1lPVZhbGlkYXRlJTIwQVBJKSAKMy4gQWRkIHVuaXQtdGVzdCBjb3ZlcmFnZSBhcyBhcHByb3ByaWF0ZS4gCjQuIEVuc3VyZSB0aGUgc2VydmljZSBjYW4gYmUgYnVpbHQsIHRlc3RlZCwgYW5kIHJ1bi4gVGhlIHNlcnZpY2Ugc2hvdWxkIHJ1biBvbiBwb3J0IDgwODEgCgpCT05VUzogCmluY29ycG9yYXRlIGFuIGVtYmVkZGVkIERCL2NhY2hpbmcgbGF5ZXIgZm9yIHlvdXIgQVBJIGVuZHBvaW50cyAKQk9OVVM6IApUaGUgc2VydmljZSBpbmNsdWRlcyBhdXRvZ2VuZXJhdGVkIHN3YWdnZXIgZG9jdW1lbnRhdGlvbi4gCgo1LiBBZGQgYSBSRUFETUUgdG86IGRlc2NyaWJlIHRoZSBhcHBsaWNhdGlvbiwgdGhlIHByZS1yZXF1aXNpdGVzLCBob3cgdG8gcnVuIGl0LCBhZGRpdGlvbmFsIG5vdGVzLCBldGMuIAo2LiBQYWNrYWdlIHRoZSBhcHAgYW5kIHNoYXJlIGEgZG93bmxvYWQgbGluayB0byB0aGUgc291cmNlLWNvZGUgb3IgcHJpdmF0ZSBHaXRIdWIgcmVwb3NpdG9yeS4gCgpXQVJOSU5HOiBETyBOT1QgSU5DTFVERSBUSEUgQlVJTEQvT1VUUFVULiBXZSBleHBlY3QgdG8gYmUgYWJsZSB0byBidWlsZCwgdGVzdCwgYW5kIHJ1biBpdCBvdXJzZWx2ZXMuIFBsZWFzZSBkbyBub3QgbWFrZSB0aGUgc291cmNlLWNvZGUgcHVibGljLiAKQk9OVVM6IGRvY2tlcml6ZSB5b3VyIGFwcGxpY2F0aW9uIChpLmUuIGluY2x1ZGUgYSBEb2NrZXLvrIFsZSwgZG9ja2VyLWNvbXBvc2UueW1sLCBhbmQgcmVsZXZhbnQgUkVBRE1FIGluc3RydWN0aW9ucykKCiMgU29sdXRpb24KRm9yIGltcGxlbWVudGF0aW9uIGFzIE1pY3JvLXNlcnZpY2UgYXJjaGl0ZWN0dXJlLCBTcHJpbmcgY2xvdWQgdGVjaG5vbG9neSBpcyB1c2VkLCBOZXRmbGl4IEV1cmVrYSBzZXJ2ZXIgaXMgdXNlZCBmb3Igc2VydmljZSByZWdpc3RyeS4gCkZvciB0aGUgc2FrZSBvZiB0aGlzIHRhc2ssIGEgc2luZ2xlIG1pY3JvLXNlcnZpY2UgYXMgdGhlIGV1cmVrYSBjbGllbnQgaXMgY3JlYXRlZCBhbG9uZyB3aXRoIGEgZXVyZWthIHNlcnZlci4KVGhlIGNvbXBsZXRlIGFwcGxpY2F0aW9uIGlzIGNyZWF0ZWQgdXNpbmcgdGhlIHRlc3QtZHJpdmVuIGFwcHJvYWNoLiBUaGF0J3MgaXMgdGhlIHJlYXNvbiBhcHBsaWNhdGlvbiBjb250YWlucyBhIGxhcmdlIG51bWJlciBvZiB0ZXN0IGNhc2VzLgpJbiBuZXRmbGl4LWNsaWVudCwgdHdvIGNvbnRyb2xsZXJzIGFyZSB3cml0dGVuLCB3aGljaCBkZXRhaWxzIG9uIGFic3RyYWN0aW9uIGxldmVsIGlzIGdpdmVuIGhlcmVpbmFmdGVyLiBBUEkgaXMgY29uZmlndXJlZCBvbiBwb3J0IDgwODEKIC0gQ3VycmVuY3lDb252ZXJ0ZXJDb250cm9sbGVyCiAtIFZBVENvbnRyb2xsZXIKIApDdXJyZW5jeUNvbnZlcnRlckNvbnRyb2xsZXIgaXMgYSByZXN0IGNvbnRyb2xsZXIgd2hpY2ggZnVydGhlciBjb25zaXN0cyBvZiB0d28gdHlwZXMgb2YgQVBJLCBrZWVwIGluIG1pbmQgdGhhdCBlYWNoIHJlc3QgQVBJIGlzIGNyZWF0ZWQgd2hpbGUga2VlcGluZyBpbiBtaW5kIG9mIHRoZSAybmQtZGVncmVlIG1hdHVyaXR5IGxldmVsIG9mICBSZXN0IEFQSSBsZXZlbCBkZWZpbmVkIGJ5IFJpY2hhcmRzb24sIEluIGZ1dHVyZSBjb21taXRzLCBBUEkgd2lsbCBiZSB1cGdyYWRlZCB0byAzcmQgZGVncmVlIHVzaW5nIEhBVEVPQVMuCgoxLSBBUEkgZG9jdW1lbnRhdGlvbnMgYW5kIGRldGFpbHMgYXJlIGNyZWF0ZWQgdXNpbmcgc3dhZ2dlciAzLjAsIGNvbW1vbiBvYmplY3RzIGFyZSB1c2luZyBjcmVhdGVkIGJ5IHN3YWdnZXIgMy4wLiBTd2FnZ2VyIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBwbGFjZWQgdW5kZXIgcmVzb3VyY2VzIHdpdGggdGhlIG5hbW1lIG9mIGFwaS55YW1sCgoyLSBMb2dnaW5nIGFsc28gaW1wbGVtZW50YXRlZCB3aXRoIHJvbGxpbmcgZmlsZSBwb2xpY3kuIGl0cyBjb25maWd1cmF0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHJlc291cmNlIGZvbGRlci4KCjMtIEtlZXAgaW4gbWluZCB0aGF0IHlvdSBhcmUgbm90IGFibGUgdG8gcnVuIGFwcGxpY2F0aW9uIHVudGlsIHlvdSBkaWQgbm90IHN0YXJ0IHRoZSBldXJla2Egc2VydmVyLCBhcyB0aGUgY2xpZW50IG5lZWRzIHRvIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIHRoZSBzZXJ2ZXIgKGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQgaW4gdGhlIGFwcGxpY2F0aW9uKS4KCjQtIEZvciBjdXJyZW5jeSBjb252ZXJzaW9uIGFuZCB2YXQgdmFsaWRhdGlvbiB0d28gZGlmZmVyZW50IGZyZWUgQVBJIHVzZWQsIFRob3NlIEFQSSBhcmUgY29ubmVjdGVkIHVzaW5nIE5ldGZsaXgtRmVpZ24gZGVjbGFyYXRpdmUgSFRUUCBjbGllbnQgd2hpY2ggaXMgYWxzbyB0aGUgcGFydCBvZiBTcHJpbmcgY2xvdWQgdGVjaG5vbG9neS4KCjUtIEZvciBjYWNoZSBIMi1EYXRhYmFzZSB1c2VkIGFzIGluIG1lbW9yeSBkYXRhYmFzZS4gVG8gYXZvaWQgYW55IGRpcnR5IHJlYWRzL3dyaXRlLCBwaGFudG9tIHJlYWRzLCByZXBlYXRlZCByZWFkcywgSmF2YSBSZWFkV3JpdGVSZWVudGVyZW50TG9jayBpcyB1c2VkLgoKNi0gQ29udHJvbGxlciBhZHZpY2UgaXMgd3JpdHRlbiB0byBoYW5kbGUgZXhjZXB0aW9uIGFuZCBzZW5kIHJlc3BlY3RpdmUgcmVzcG9uc2UuCgo3LSBTcHJpbmcgQU9QIGlzIHVzZWQgdG8gbG9nZ2luZyBlYWNoIG1ldGhvZCBlbnRlcmVuY2UgYW5kIGV4aXQuCgo4LSBTcHJpbmcgc2NoZWR1bGVyIGlzIHdyaXR0ZXIgdG8gc2NoZWR1bGUgY2FjaGUgcmVmcmVzaGVyIHdpdGggYSBzcGVjaWZpYyB0aW1lIGludGVydmFsLgoKOS0gU3ByaW5nIGJvb3QgZG9ja2VyaXphdGlvbiBpcyBhZGRlZCB1c2luZyBzcG90aWZ5IG1hdmVuIHBsdWdpbiBmb3IgZG9ja2VyLCBieSBydW5uaW5nIGNvbW1hbmQgbXZuIHBhY2thZ2UgZG9ja2VyOmJ1aWxkLgpBZnRlciBjcmVhdGluZyBpbWFnZSB5b3UgY2FuIHNlZSBpbWFnZSBpbiB5b3VyIGRvY2tlciBieSBkb2NrZXIgaW1hZ2UgbHMuIE5vdyBsZXRzIGFkZCB0YWcgdG8gdGhhdCBpbWFnZSBieSBjb21tYW5kIGRvY2tlciB0YWcgaW1hZ2VfaWQgVEFHX05BTUUuIEFmdGVyIHRoYXQgeW91IGNhbiBwdXNoIGltYWdlIHRvIHlvdXIgZG9ja2VyIGh1YiBieSBkb2NrZXIgcHVzaCBUQUdfTkFNRQoKIyBEb2NrZXIgaW1hZ2UKQXBwbGljYXRpb24gaXMgY29tcGxldGVseSBkb2NrZXJpemUgYW5kIGltYWdlcyBhcmUgdXBsb2FkZWQgdG8gZG9ja2VyLWh1YiB3aXRoIHRoZSBuYW1lIGFxaWJidXR0MzA3OC9jY3ZhdGFwaSBmb3IgbWljcm8tc2VydmljZSBldXJla2EgY2xpZW50IGFuZCBhcWliYnV0dDMwNzgvY2N2YXRhcGlfZXVyZWthIGZvciBldXJrYSBzZXJ2ZXIKIAojIEN1cnJlbmN5IENvbnZlcnRlcgpDdXJyZW5jeSBDb252ZXJ0ZXIgQVBJIGNvbnNpc3RzIG9uIHR3byBBUEkncyAKLSAvYXBpL2N1cnJlbmN5L2NvbnZlcnQ/c291cmNlPVNPVVJDRV9DT1VOVFJZX0NPREUmdGFyZ2V0PVRBUkdFVF9DT1VOVFJZX0NPREUmYW1vdW50PUFNT1VOVF9OVU1CRVIKLSAvYXBpL2N1cnJlbmN5L2NvbnZlcnQvZGV0YWlscz9zb3VyY2U9U09VUkNFX0NPVU5UUllfQ09ERSZ0YXJnZXQ9VEFSR0VUX0NPVU5UUllfQ09ERSZhbW91bnQ9QU1PVU5UX05VTUJFUgoKRmlyc3QgQVBJIHdpbGwgZ29pbmcgdG8gcmV0dXJuIGNvbnZlcnRpb24gZGV0YWlsZXMgYXMgaXQgd2FzIGFza2VkIGluIHRhc2ssIHNlY29uZCBBUEkgcmV0dXJuIGRldGFpbHMgd2l0aCBzb21lIGFkZGl0aW9uYWwgaW5WQVRfSUQKIyBWQVRDb250cm9sbGVyClZBVENvbnRyb2xsZXIgYWxzbyBwcm92aWRlcyB0d28gQVBJJ3MgCi0gL2FwaS92YXQvdmFsaWRhdGU/dmF0PVZBVF9JRAotIC9hcGkvdmF0L3ZhbGlkYXRlL2RldGFpbHM/dmF0PVZBVF9JRAojIFRlc3RpbmcKRm9yIGVhY2ggY2xhc3MsIG1ldGhvZHMgdW5pdCB0ZXN0cyBhcmUgcHJvdmlkZWQuIEFzIGFwcGxpY2F0aW9uIGlzIGJ1aWxkIHVzaW5nIHJlZC1ncmVlbi1yZWZhY3RvciBzb3J0IG9mIHRlc3QgZHJpdmVuIGFwcHJvYWNoLCBzbyB0aGF0cyBhIHJlYXNvbiBpdCBoYXZlIGFsb3Qgb2YgdGVzdCBjYXNlcy4KSW50ZWdyYXRpb24gdGVzdCBmb3IgUmVzdCBBUEkgaXMgcHJvdmlkZWQgc2VwcmVhdGx5LgojIEFsbCBjdXJyZW5jaWVzIHN1cHBvcnRlZApQbGVhc2UgY2xpY2sgdGhlIHVybCB0byBzZWUgYWxsIGN1cnJlbmNpZXMgbGlzdApodHRwczovL2ZyZWUuY3VycmNvbnYuY29tL2FwaS92Ny9jb3VudHJpZXM/YXBpS2V5PTQ3NTRjOGZhOGMwZDhlMDhjNjU4Cg== readmeEtag: '"ddf9047507cbc3aff90980958bcdfe61d4ab89b9"' readmeLastModified: Thu, 26 Sep 2019 07:33:04 GMT repositoryId: 208506319 description: null created: '2019-09-14T21:31:22Z' updated: '2019-10-17T02:23:17Z' language: HTML archived: false stars: 0 watchers: 2 forks: 0 owner: aqib1 logo: https://avatars.githubusercontent.com/u/8742169?v=4 repoEtag: '"5022ceb316482d6bba95d09a307eee5d3bf4108c6caccebaad9b54fae2347a0f"' repoLastModified: Thu, 17 Oct 2019 02:23:17 GMT foundInMaster: true category: Server Implementations id: b21b7ab96e0c1b7078783685d6213fed - source: openapi3 tags repository: https://github.com/nicesi/openapi-ui-single-file v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFVJCgoqIFNpbmdsZSBmaWxlCiogVWx0cmEgbGlnaHQtd2VpZ2h0CgpDYW4gdXNlIGl0IGluIDMgZGlmZmVyZW50IHdheXMKCjEuIEdvIHRvIGh0dHBzOi8vbmljZXNpLmNvbS9vcGVuYXBpLXVpIGFuZCBlbnRlciBvcGVuYXBpKHN3YWdnZXIpIGZpbGUgdXJsCjIuIGh0dHBzOi8vbmljZXNpLmNvbS9vcGVuYXBpLXVpP3VybD1odHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uCjMuIEVkaXQgdXJsIGZpZWxkIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNlc2kvb3BlbmFwaS11aS1zaW5nbGUtZmlsZS9ibG9iL21hc3Rlci9pbmRleC5odG1sI0wzOSAuL3N3YWdnZXIuanNvbiAoZmlsZXBhdGgpIE9SIGh0dHBzOi8veW91ci1vcGVuYXBpLWZpbGUuanNvbiAoVVJMKQo= readmeEtag: '"b0c9424a417ed1ff99789241acc650421daac773"' readmeLastModified: Mon, 05 Oct 2020 18:00:23 GMT repositoryId: 291342065 description: null created: '2020-08-29T20:13:23Z' updated: '2020-10-05T18:00:49Z' language: HTML archived: false stars: 0 watchers: 2 forks: 0 owner: nicesi logo: https://avatars.githubusercontent.com/u/13571949?v=4 license: MIT repoEtag: '"db6dad3be082607f93c6b3a64bac1d35bd32611760a59f4a4e1c691edfbf537e"' repoLastModified: Mon, 05 Oct 2020 18:00:49 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: b790e4afd85397b8d62572064ce78d3a - source: openapi3 tags repository: https://github.com/david-rojo/pvp-manager v3: true repositoryMetadata: base64Readme: >- IyBQVlAgTWFuYWdlcgoKVGhpcyBpcyBhIEphdmEgOCBwcm9qZWN0IHRoYXQgZXhwb3NlcyBhIFJFU1QgQVBJIGRvY3VtZW50ZWQgd2l0aCBPcGVuQVBJLCBkZXZlbG9wZWQgd2l0aCBTcHJpbmdCb290IDIuMy4xIHVzaW5nIEgyIGRhdGFiYXNlIGZvciBwZXJzaXN0ZW5jeSB3aXRoIGFuIGluaXRpYWwgbG9hZCBvZiBkYXRhLiBJdCBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgW3NjZW5hcmlvXShkb2Mvc2NlbmFyaW8ubWQpLiAKCkl0IGhhcyBiZWVuIGRvbmUgZm9sbG93aW5nIHRoZSBNVkMgZGVzaWduIHBhdHRlcm4gYW5kIHVzaW5nIFtTcHJpbmcgVG9vbCBTdWl0ZSA0XShodHRwczovL3NwcmluZy5pby90b29scykKCiMjIEgyIGRhdGFiYXNlCgpGb3IgKipwcmltYXJ5IGtleSoqIG9mIHRoZSAqKlBSSUNFUyoqIHRhYmxlIGhhcyBiZWVuIGNob3NlbiB0aHJlZSBmaWVsZHM6IEJSQU5EX0lELCBQUk9EVUNUX0lEIGFuZCBQUklDRV9MSVNULiBUaGlzIGRlY2lzaW9uIGhhcyBiZWVuIGRvbmUgdGhpbmtpbmcgdGhhdCBjYW5ub3QgYmUgYSByb3cgaW4gdGhlIHRhYmxlIHRoYXQgaGFzIHRoZSBzYW1lIHZhbHVlcyBmb3IgdGhlc2UgZmllbGRzLgoKRGF0YSB0eXBlcyBmb3IgZWFjaCBmaWVsZDoKCnwgRklFTEQgICAgICB8IERBVEEgVFlQRSAgICB8CnwtLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18CnwgQlJBTkRfSUQgICB8IElOVEVHRVIgICAgICB8CnwgUFJJQ0VfTElTVCB8IElOVEVHRVIgICAgICB8CnwgUFJPRFVDVF9JRCB8IElOVEVHRVIgICAgICB8CnwgUFJJT1JJVFkgICB8IElOVEVHRVIgICAgICB8CnwgU1RBUlRfREFURSB8IFRJTUVTVEFNUCAgICB8CnwgRU5EX0RBVEUgICB8IFRJTUVTVEFNUCAgICB8CnwgUFJJQ0UgICAgICB8IERPVUJMRSAgICAgICB8CnwgQ1VSUiAgICAgICB8IFZBUkNIQVIoMjU1KSB8CgojIyBEZXBsb3ltZW50CgpPbmNlIHRoYXQgdGhlIHJlcG9zaXRvcnkgaGFzIGJlZW4gY2xvbmVkOgoKYGBgCiQgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZpZC1yb2pvL3B2cC1tYW5hZ2VyLmdpdApgYGAKCmltcG9ydCB0aGUgcHJvamVjdCBpbiB5b3VyIElERSBhbmQgdG8gZXhlY3V0ZSBpdCwgcmlnaHQgY2xpY2sgb2YgdGhlIG1vdXNlIGluICoqc3ByaW5nLWJvb3QtcHZwbWFuYWdlcioqIGZvbGRlciBpbiBQYWNrYWdlIEV4cGxvcmVyIHdpbmRvdyBhbmQgc2VsZWN0ICpSdW4gYXMgPiBTcHJpbmcgQm9vdCBBcHAqCgpUaGUgcHJvamVjdCBpcyBkZXBsb3llZCBhbmQgcmVhZHkgdG8gdmVyaWZ5IHRoYXQgaW1wbGVtZW50cyB0aGUgcmVxdWVzdGVkIHNjZW5hcmlvLiBZb3UgY2FuIGFjY2VzcyB0byBpdHMgZXhwb3NlZCBBUEkgaGVyZTogW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9wdnAtbWFuYWdlci1hcGkuaHRtbF0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3B2cC1tYW5hZ2VyLWFwaS5odG1sKQoKIVtQVlAgTUFOQUdFUiBPUEVOIEFQSV0oZG9jL2ltZy9wdnAtbWFuYWdlci1vcGVuYXBpLnBuZykKClRvIHZlcmlmeSB0aGUgc2NlbmFyaW8sIHlvdSBjYW4gdGVzdCBpbiB0aGUgT3BlbkFQSSBVc2VyIEludGVyZmFjZSwgdGhlIGdldCBtZXRob2QgaW4gKipwdnAqKiBncm91cCB3cml0aW5nIG1hbnVhbGx5IGFsbCB0aGUgdmFsdWVzIG9yIHlvdSBjYW4gc2ltcGx5IGNsaWNrIGluIHRoZSBmb2xsb3dpbmcgbGlua3MgdGhhdCB1c2UgdGhlIHNhbWUgZGF0YSB0aGF0IGlzIHVzZWQgaW4gZWFjaCB0ZXN0OgoKKiAqKlRlc3QxKio6IGhhcyB0byByZXR1cm4gcHJpY2VMaXN0IDEKICAqIGlucHV0IGRhdGE6IGBgYGJyYW5kSWQgPSAxLCBwcm9kdWN0SWQ9MzU0NTUsIGRhdGU9MjAyMC0wNi0xNC0xMC4wMC4wMGBgYAogICogVVJMOiBbaHR0cDovL2xvY2FsaG9zdDo4MDgwL3B2cC1tYW5hZ2VyL3B2cC8xLzM1NDU1LzIwMjAtMDYtMTQtMTAuMDAuMDBdKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9wdnAtbWFuYWdlci9wdnAvMS8zNTQ1NS8yMDIwLTA2LTE0LTEwLjAwLjAwKQogICogb3V0cHV0IGRhdGE6IAogIGBgYHsicHJpY2VMaXN0IjoxLCJicmFuZElkIjoxLCJwcm9kdWN0SWQiOjM1NDU1LCJzdGFydERhdGUiOiIyMDIwLTA2LTE0VDAwOjAwOjAwIiwiZW5kRGF0ZSI6IjIwMjAtMTItMzFUMjM6NTk6NTkiLCJwcmljZSI6MzUuNSwiY3VycmVuY3kiOiJFVVIifWBgYAoKKiAqKlRlc3QyKio6ICBoYXMgdG8gcmV0dXJuIHByaWNlTGlzdCAyCiAgKiBpbnB1dCBkYXRhOiBgYGBicmFuZElkID0gMSwgcHJvZHVjdElkPTM1NDU1LCBkYXRlPTIwMjAtMDYtMTQtMTYuMDAuMDBgYGAKICAqIFVSTDogW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9wdnAtbWFuYWdlci9wdnAvMS8zNTQ1NS8yMDIwLTA2LTE0LTE2LjAwLjAwXShodHRwOi8vbG9jYWxob3N0OjgwODAvcHZwLW1hbmFnZXIvcHZwLzEvMzU0NTUvMjAyMC0wNi0xNC0xNi4wMC4wMCkKICAqIG91dHB1dCBkYXRhOiAKICBgYGB7InByaWNlTGlzdCI6MiwiYnJhbmRJZCI6MSwicHJvZHVjdElkIjozNTQ1NSwic3RhcnREYXRlIjoiMjAyMC0wNi0xNFQxNTowMDowMCIsImVuZERhdGUiOiIyMDIwLTA2LTE0VDE4OjMwOjAwIiwicHJpY2UiOjI1LjQ1LCJjdXJyZW5jeSI6IkVVUiJ9YGBgCiAgCiogKipUZXN0MyoqOiAgaGFzIHRvIHJldHVybiBwcmljZUxpc3QgMQogICogaW5wdXQgZGF0YTogYGBgYnJhbmRJZCA9IDEsIHByb2R1Y3RJZD0zNTQ1NSwgZGF0ZT0yMDIwLTA2LTE0LTIxLjAwLjAwYGBgCiAgKiBVUkw6IFtodHRwOi8vbG9jYWxob3N0OjgwODAvcHZwLW1hbmFnZXIvcHZwLzEvMzU0NTUvMjAyMC0wNi0xNC0yMS4wMC4wMF0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3B2cC1tYW5hZ2VyL3B2cC8xLzM1NDU1LzIwMjAtMDYtMTQtMjEuMDAuMDApCiAgKiBvdXRwdXQgZGF0YTogCiAgYGBgeyJwcmljZUxpc3QiOjEsImJyYW5kSWQiOjEsInByb2R1Y3RJZCI6MzU0NTUsInN0YXJ0RGF0ZSI6IjIwMjAtMDYtMTRUMDA6MDA6MDAiLCJlbmREYXRlIjoiMjAyMC0xMi0zMVQyMzo1OTo1OSIsInByaWNlIjozNS41LCJjdXJyZW5jeSI6IkVVUiJ9YGBgCiAgCiogKipUZXN0NCoqOiAgaGFzIHRvIHJldHVybiBwcmljZUxpc3QgMwogICogaW5wdXQgZGF0YTogYGBgYnJhbmRJZCA9IDEsIHByb2R1Y3RJZD0zNTQ1NSwgZGF0ZT0yMDIwLTA2LTE1LTEwLjAwLjAwYGBgCiAgKiBVUkw6IFtodHRwOi8vbG9jYWxob3N0OjgwODAvcHZwLW1hbmFnZXIvcHZwLzEvMzU0NTUvMjAyMC0wNi0xNS0xMC4wMC4wMF0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3B2cC1tYW5hZ2VyL3B2cC8xLzM1NDU1LzIwMjAtMDYtMTUtMTAuMDAuMDApCiAgKiBvdXRwdXQgZGF0YTogCiAgYGBgeyJwcmljZUxpc3QiOjMsImJyYW5kSWQiOjEsInByb2R1Y3RJZCI6MzU0NTUsInN0YXJ0RGF0ZSI6IjIwMjAtMDYtMTVUMDA6MDA6MDAiLCJlbmREYXRlIjoiMjAyMC0wNi0xNVQxMTowMDowMCIsInByaWNlIjozMC41LCJjdXJyZW5jeSI6IkVVUiJ9YGBgCiAgCiogKipUZXN0NSoqOiBoYXMgdG8gcmV0dXJuIHByaWNlTGlzdCA0CiAgKiBpbnB1dCBkYXRhOiBgYGBicmFuZElkID0gMSwgcHJvZHVjdElkPTM1NDU1LCBkYXRlPTIwMjAtMDYtMTYtMjEuMDAuMDBgYGAKICAqIFVSTDogW2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9wdnAtbWFuYWdlci9wdnAvMS8zNTQ1NS8yMDIwLTA2LTE2LTIxLjAwLjAwXShodHRwOi8vbG9jYWxob3N0OjgwODAvcHZwLW1hbmFnZXIvcHZwLzEvMzU0NTUvMjAyMC0wNi0xNi0yMS4wMC4wMCkKICAqIG91dHB1dCBkYXRhOiAKICBgYGB7InByaWNlTGlzdCI6NCwiYnJhbmRJZCI6MSwicHJvZHVjdElkIjozNTQ1NSwic3RhcnREYXRlIjoiMjAyMC0wNi0xNVQxNjowMDowMCIsImVuZERhdGUiOiIyMDIwLTEyLTMxVDIzOjU5OjU5IiwicHJpY2UiOjM4Ljk1LCJjdXJyZW5jeSI6IkVVUiJ9YGBgCgpJbXBsZW1lbnRhdGlvbiBvZiB0aGUgY29udHJvbGxlciBjYW4gYmUgZXhhbWluYXRlZCBpbiBbUHZwQXBpQ29udHJvbGxlcl0oc3ByaW5nLWJvb3QtcHZwbWFuYWdlci9zcmMvbWFpbi9qYXZhL2NvbS9wdnBtYW5hZ2VyL3NwcmluZ2Jvb3QvYXBwL2NvbnRyb2xsZXIvUHZwQXBpQ29udHJvbGxlci5qYXZhKSBjbGFzcwoKIyMjIEFkZGl0aW9uYWwgd29yawoKR29pbmcgYmV5b25kIHRoZSBzY29wZSBvZiB0aGUgc2NlbmFyaW8sIGEgZnVsbCBDUlVEIHNldCBvZiBvcGVyYXRpb25zIGhhcyBiZWVuIGltcGxlbWVudGVkIGZvciB0aGUgYXBwbGljYXRpb24gaW4gb3JkZXIgdG8gbWFuYWdlICoqUFJJQ0VTKiogdGFibGU6CgotIEFkZCBhIG5ldyBwcmljZS4KLSBVcGRhdGUgYW4gZXhpc3RpbmcgcHJpY2UuCi0gRGVsZXRlIGFuIGV4aXN0aW5nIHByaWNlIGJ5IElELgotIEdldCBhbGwgcHJpY2VzIGluIHRoZSB0YWJsZS4KCkltcGxlbWVudGlvbiBjYW4gYmUgZXhhbWluYXRlZCBpbiBbUHJpY2VBcGlDb250cm9sbGVyXShzcHJpbmctYm9vdC1wdnBtYW5hZ2VyL3NyYy9tYWluL2phdmEvY29tL3B2cG1hbmFnZXIvc3ByaW5nYm9vdC9hcHAvY29udHJvbGxlci9QcmljZUFwaUNvbnRyb2xsZXIuamF2YSkgY2xhc3MKCiMjIEFjY2VzcyB0byBoMiBjb25zb2xlCgpXaGVuIHRoZSBwcm9qZWN0IGlzIGRlcGxveWVkLCBhbHNvIGlzIGF2YWlsYWJsZSBoMiBjb25zb2xlOiBbaHR0cDovL2xvY2FsaG9zdDo4MDgwL2gyLWNvbnNvbGVdKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9oMi1jb25zb2xlKSBpbiBvcmRlciB0byBjb25uZWN0IHRoZXJlIGFuZCB2ZXJpZnkgdGhhdCB0aGUgZGF0YWJhc2UgaW5pdGlhbGx5IGhhcyB0aGUgcmVxdWVzdGVkIGNvbnRlbnQuIAoKIVtIMiBDT05TT0xFXShkb2MvaW1nL2gyLWNvbnNvbGUtbG9naW4ucG5nKQoKVGhpcyBkYXRhIGNhbiBiZSB1c2VkIHRvIGxvZ2luOgpgYGAKRHJpdmVyIENsYXNzOglvcmcuaDIuRHJpdmVyCkpEQkMgVVJMOglqZGJjOmgyOm1lbTpwdnBtYW5hZ2VyZGI7REJfQ0xPU0VfT05fRVhJVD1GQUxTRQpVc2VyIE5hbWU6CXNhClBhc3N3b3JkOglwYXNzd29yZApgYGAKT25jZSB3ZSBhcmUgbG9nZ2VkLCB3ZSBjYW4gY2hlY2sgdGhlIGNvbnRlbnQgb2YgKipQUklDRVMqKiB0YWJsZSBleGVjdXRpbmcgdGhpcyBxdWVyeToKCmBgYApTRUxFQ1QgKiBGUk9NIFBSSUNFUyAKYGBgCgohW1BSSUNFUyBUQUJMRSBDT05URU5UXShkb2MvaW1nL2gyLXRhYmxlLWNvbnRlbnQucG5nKQoKIyMgRXhlY3V0aW5nIEpVbml0IHRlc3RzCgpUbyBydW4gdGhlIHJlcXVlc3RlZCB0ZXN0cyB3ZSBjYW4gZG8gaXQgZXhlY3V0aW5nIHRoaXMgY29tbWFuZCBmcm9tICoqc3ByaW5nLWJvb3QtcHZwbWFuYWdlcioqIGZvbGRlcjoKCmBgYAokIG12biB0ZXN0IApgYGAKPiAqKk5vdGU6KiogbXZuIGhhcyB0byBiZSBpbnN0YWxsZWQgaW4gb3JkZXIgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZAoKTmVhciBvZiB0aGUgZW5kIG9mIHRoZSBleGVjdXRpb24gbG9nLCB3ZSBjYW4gZmluZCB0aGlzIGxpbmU6CgpgYGAKW0lORk9dIFJlc3VsdHM6CltJTkZPXSAKW0lORk9dIFRlc3RzIHJ1bjogMTIsIEZhaWx1cmVzOiAwLCBFcnJvcnM6IDAsIFNraXBwZWQ6IDAKW0lORk9dIApgYGAKRGV0YWlsIG9mIGVhY2ggdGVzdCBjYW4gYmUgZm91bmQgcHJldmlvdXNseSBvZiB0aGlzIHRleHQgYWJvdmUuCgpGaXZlIHRlc3RzIGhhcyBiZWVuIHJlcXVlc3RlZCBpbiB0aGUgc2NlbmFyaW8sIHRlc3RpbmcgdGhlIHJlc3QgZW5kcG9pbnQsIGJ1dCB0aGUgcHJvamVjdCBjb250YWlucyBhbHNvIGFkZGl0aW9uYWwgdGVzdHMgdG8gY2hlY2sgdGhhdCBzZWxlY3Qgb3BlcmF0aW9ucyB0byBkYXRhYmFzZSB3b3JrcyBmaW5lLgoKSlVuaXRUZXN0cyBjbGFzc2VzOgoKKiBbUHZwQXBpQ29udHJvbGxlckludGVncmF0aW9uVGVzdHNdKHNwcmluZy1ib290LXB2cG1hbmFnZXIvc3JjL3Rlc3QvamF2YS9jb20vcHZwbWFuYWdlci9zcHJpbmdib290L2FwcC9QdnBBcGlDb250cm9sbGVySW50ZWdyYXRpb25UZXN0cy5qYXZhKTogCiAgICogdGVzdCB0aGUgcmVzdCBlbmRwb2ludC4gCiAgICogdXNpbmcgYGBgTW9ja012Y2BgYAogICAqICoqcmVxdWlyZWQqKiB0ZXN0cy4KCiogW0lQcmljZURhb1Rlc3RzXShzcHJpbmctYm9vdC1wdnBtYW5hZ2VyL3NyYy90ZXN0L2phdmEvY29tL3B2cG1hbmFnZXIvc3ByaW5nYm9vdC9hcHAvSVByaWNlRGFvVGVzdHMuamF2YSk6IAogICAqIHRlc3QgdGhlIHNlbGVjdCBvcGVyYXRpb25zIHRvIGRhdGFiYXNlLiAKICAgKiB1c2luZyBgYGBARGF0YUpwYVRlc3RgYGAKICAgKiAqKmFkZGl0aW9uYWwqKiB0ZXN0cwoK readmeEtag: '"158bc5f66afe1158aab583c50c4b6ab8d6ca5b9f"' readmeLastModified: Fri, 14 May 2021 23:47:29 GMT repositoryId: 274145786 description: >- Spring Boot project that exposes a REST API documented with OpenAPI, using H2 database for deployment and testing. created: '2020-06-22T13:32:52Z' updated: '2021-05-14T23:47:32Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: david-rojo logo: https://avatars.githubusercontent.com/u/24654236?v=4 license: MIT repoEtag: '"5a3876dcb80a83dda72686465c3d9770b3b9dc8d4781e63974ea8a81e8ab76b0"' repoLastModified: Fri, 14 May 2021 23:47:32 GMT foundInMaster: true category: Server Implementations id: 14028bea2f0274f45664e49ab5ab1f5b - source: openapi3 tags repository: https://github.com/aiveraiva/api-documents v3: true id: d8f6d3f5ec884958073766300cb69d0d repositoryMetadata: base64Readme: >- IyBpbSBsYXp5IHRvIGZpbmlzaCB0aGlzIGJ1dCBpIHdpbGwKCmBgYHlhbWwKdHlwZTogb2JqZWN0CnByb3BlcnRpZXM6CiAgaWQ6IAogICAgZGVzY3JpcHRpb246IFRoZSBjdXN0b21lciBpZGVudGlmaWVyIHN0cmluZwogICAgcmVhZE9ubHk6IHRydWUKICAgIGFsbE9mOgogICAgICAtICRyZWY6IC4vUmVzb3VyY2VJZC55YW1sCiAgd2Vic2l0ZUlkOgogICAgZGVzY3JpcHRpb246IFRoZSB3ZWJzaXRlJ3MgSUQKICAgIGFsbE9mOgogICAgICAtICRyZWY6IC4vUmVzb3VyY2VJZC55YW1sCiAgcGF5bWVudFRva2VuOgogICAgdHlwZTogc3RyaW5nCiAgICB3cml0ZU9ubHk6IHRydWUKICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgIEEgd3JpdGUtb25seSBwYXltZW50IHRva2VuOyBpZiBzdXBwbGllZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBhCiAgICAgIHBheW1lbnQgaW5zdHJ1bWVudCBhbmQgYmUgc2V0IGFzIHRoZSBgZGVmYXVsdFBheW1lbnRJbnN0cnVtZW50YC4gVGhlCiAgICAgIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgd2lsbCBvdmVycmlkZSB0aGUgYGRlZmF1bHRQYXltZW50SW5zdHJ1bWVudGAKICAgICAgaW4gdGhlIGNhc2UgdGhhdCBib3RoIGFyZSBzdXBwbGllZC4gVGhlIHRva2VuIG1heSBvbmx5IGJlIHVzZWQgb25jZQogICAgICBiZWZvcmUgaXQgaXMgZXhwaXJlZC4KICBkZWZhdWx0UGF5bWVudEluc3RydW1lbnQ6CiAgICAkcmVmOiAuL1BheW1lbnRJbnN0cnVtZW50LnlhbWwKICBjcmVhdGVkVGltZToKICAgIGRlc2NyaXB0aW9uOiBUaGUgY3VzdG9tZXIgY3JlYXRlZCB0aW1lCiAgICBhbGxPZjoKICAgICAgLSAkcmVmOiAuL1NlcnZlclRpbWVzdGFtcC55YW1sCiAgdXBkYXRlZFRpbWU6CiAgICBkZXNjcmlwdGlvbjogVGhlIGN1c3RvbWVyIHVwZGF0ZWQgdGltZQogICAgYWxsT2Y6CiAgICAgIC0gJHJlZjogLi9TZXJ2ZXJUaW1lc3RhbXAueWFtbAogIHRhZ3M6CiAgICBkZXNjcmlwdGlvbjogQSBsaXN0IG9mIGN1c3RvbWVyJ3MgdGFncwogICAgcmVhZE9ubHk6IHRydWUKICAgIHR5cGU6IGFycmF5CiAgICBpdGVtczoKICAgICAgJHJlZjogLi9UYWdzL1RhZy55YW1sCiAgcmV2aXNpb246CiAgICBkZXNjcmlwdGlvbjogPgogICAgICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBjdXN0b21lciBkYXRhIGhhcyBiZWVuIG1vZGlmaWVkLgoKICAgICAgVGhlIHJldmlzaW9uIGlzIHVzZWZ1bCB3aGVuIGFuYWx5emluZyB3ZWJob29rIGRhdGEgdG8gZGV0ZXJtaW5lIGlmIHRoZQogICAgICBjaGFuZ2UgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgogICAgdHlwZTogaW50ZWdlcgogICAgcmVhZE9ubHk6IHRydWUKICBfbGlua3M6CiAgICB0eXBlOiBhcnJheQogICAgZGVzY3JpcHRpb246IFRoZSBsaW5rcyByZWxhdGVkIHRvIHJlc291cmNlCiAgICByZWFkT25seTogdHJ1ZQogICAgbWluSXRlbXM6IDMKICAgIGl0ZW1zOgogICAgICBhbnlPZjoKICAgICAgICAtICRyZWY6IC4vTGlua3MvU2VsZkxpbmsueWFtbAogICAgICAgIC0gJHJlZjogLi9MaW5rcy9Ob3Rlc0xpbmsueWFtbAogICAgICAgIC0gJHJlZjogLi9MaW5rcy9EZWZhdWx0UGF5bWVudEluc3RydW1lbnRMaW5rLnlhbWwKICAgICAgICAtICRyZWY6IC4vTGlua3MvTGVhZFNvdXJjZUxpbmsueWFtbAogICAgICAgIC0gJHJlZjogLi9MaW5rcy9XZWJzaXRlTGluay55YW1sCiAgX2VtYmVkZGVkOgogICAgdHlwZTogYXJyYXkKICAgIGRlc2NyaXB0aW9uOiA+LQogICAgICBBbnkgZW1iZWRkZWQgb2JqZWN0cyBhdmFpbGFibGUgdGhhdCBhcmUgcmVxdWVzdGVkIGJ5IHRoZSBgZXhwYW5kYAogICAgICBxdWVyeXN0cmluZyBwYXJhbWV0ZXIuCiAgICByZWFkT25seTogdHJ1ZQogICAgbWluSXRlbXM6IDEKICAgIGl0ZW1zOgogICAgICBhbnlPZjoKICAgICAgICAtICRyZWY6IC4vRW1iZWRzL0xlYWRTb3VyY2VFbWJlZC55YW1sCgpgYGAKCmBgYHlhbWwKZ2V0OgogIHRhZ3M6CiAgICAtIEN1c3RvbWVycwogIHN1bW1hcnk6IFJldHJpZXZlIGEgbGlzdCBvZiBjdXN0b21lcnMKICBvcGVyYXRpb25JZDogR2V0Q3VzdG9tZXJDb2xsZWN0aW9uCiAgZGVzY3JpcHRpb246IHwKICAgIFlvdSBjYW4gaGF2ZSBhIG1hcmtkb3duIGRlc2NyaXB0aW9uIGhlcmUuCiAgcGFyYW1ldGVyczoKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25MaW1pdC55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uT2Zmc2V0LnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25GaWx0ZXIueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvblF1ZXJ5LnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25FeHBhbmQueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkZpZWxkcy55YW1sCiAgcmVzcG9uc2VzOgogICAgJzIwMCc6CiAgICAgIGRlc2NyaXB0aW9uOiBBIGxpc3Qgb2YgQ3VzdG9tZXJzIHdhcyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5CiAgICAgIGhlYWRlcnM6CiAgICAgICAgUmF0ZS1MaW1pdC1MaW1pdDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9SYXRlLUxpbWl0LUxpbWl0LnlhbWwKICAgICAgICBSYXRlLUxpbWl0LVJlbWFpbmluZzoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9SYXRlLUxpbWl0LVJlbWFpbmluZy55YW1sCiAgICAgICAgUmF0ZS1MaW1pdC1SZXNldDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9SYXRlLUxpbWl0LVJlc2V0LnlhbWwKICAgICAgICBQYWdpbmF0aW9uLVRvdGFsOgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1BhZ2luYXRpb24tVG90YWwueWFtbAogICAgICAgIFBhZ2luYXRpb24tTGltaXQ6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUGFnaW5hdGlvbi1MaW1pdC55YW1sCiAgICAgICAgUGFnaW5hdGlvbi1PZmZzZXQ6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUGFnaW5hdGlvbi1PZmZzZXQueWFtbAogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvc2NoZW1hcy9DdXN0b21lci55YW1sCiAgICAgICAgdGV4dC9jc3Y6CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvc2NoZW1hcy9DdXN0b21lci55YW1sCiAgICAnNDAxJzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvQWNjZXNzRm9yYmlkZGVuLnlhbWwKICB4LWNvZGUtc2FtcGxlczoKICAgIC0gbGFuZzogUEhQCiAgICAgIHNvdXJjZToKICAgICAgICAkcmVmOiAuLi9jb2RlX3NhbXBsZXMvUEhQL2N1c3RvbWVycy9nZXQucGhwCnBvc3Q6CiAgdGFnczoKICAgIC0gQ3VzdG9tZXJzCiAgc3VtbWFyeTogQ3JlYXRlIGEgY3VzdG9tZXIgKHdpdGhvdXQgYW4gSUQpCiAgb3BlcmF0aW9uSWQ6IFBvc3RDdXN0b21lcgogIGRlc2NyaXB0aW9uOiBBbm90aGVyIG1hcmtkb3duIGRlc2NyaXB0aW9uIGhlcmUuCiAgcmVxdWVzdEJvZHk6CiAgICAkcmVmOiAuLi9jb21wb25lbnRzL3JlcXVlc3RCb2RpZXMvQ3VzdG9tZXIueWFtbAogIHJlc3BvbnNlczoKICAgICcyMDEnOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9DdXN0b21lci55YW1sCiAgICAnNDAxJzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvQWNjZXNzRm9yYmlkZGVuLnlhbWwKICAgICc0MDknOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9Db25mbGljdC55YW1sCiAgICAnNDIyJzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvSW52YWxpZERhdGFFcnJvci55YW1sCiAgeC1jb2RlLXNhbXBsZXM6CiAgICAtIGxhbmc6IFBIUAogICAgICBzb3VyY2U6CiAgICAgICAgJHJlZjogLi4vY29kZV9zYW1wbGVzL1BIUC9jdXN0b21lcnMvcG9zdC5waHAKYGBgCg== readmeEtag: '"c0a4150d348bc6e71584a55135f8b63c6c1b14ae"' readmeLastModified: Sun, 12 Nov 2023 06:57:19 GMT repositoryId: 704369516 description: The documentation for my api created: '2023-10-13T05:48:34Z' updated: '2023-11-12T06:38:29Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: AiverAiva logo: https://avatars.githubusercontent.com/u/43096905?v=4 license: MIT repoEtag: '"fcc92c057e0632e7e4e8a22c743b65550d5fec6fe4a7d0a84db9080353dd6075"' repoLastModified: Sun, 12 Nov 2023 06:38:29 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/aiveraiva/documents - source: openapi3 tags repository: https://github.com/robert-dzikowski/api-smoke-test v3: true id: e5e5c07daf5797c09a6fbcec3aa5a2f2 repositoryMetadata: base64Readme: >- IyBJbnRyb2R1Y3Rpb24gClRoaXMgcmVwbyBjb250YWlucyBzbW9rZSB0ZXN0IHdoaWNoIHRlc3RzIGFsbCBlbmRwb2ludHMgZm91bmQgaW4gT3BlbkFQSSB2LjMgc3BlYyBmaWxlIChpdCB3YXNuJ3QgdGVzdGVkIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkFQSSkuIApJdCB3YXMgdGVzdGVkIHdpdGggU3BvdGlmeSBBUEkgKGh0dHBzOi8vZ2l0aHViLmNvbS9zb25hbGx1eC9zcG90aWZ5LXdlYi1hcGkpLgogIAojIEdldHRpbmcgU3RhcnRlZApJbnN0YWxsIFB5dGhvbiAzLjkgb3IgbmV3ZXIuCgpUbyBpbnN0YWxsIHBhY2thZ2VzIGdsb2JhbGx5IChmb3IgYWxsIHVzZXJzKSwKcnVuICdwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0JyBpbiBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5LgoKIyBSdW4KcHl0aG9uIGFwaS1zbW9rZS10ZXN0XHNtb2tlX3Rlc3QucHkgbmFtZV9vZl9hX3NwZWNfZmlsZSBbLS1hdXRoXSBbLS1sb2NhbGhvc3RdIFstLW9ubHktZ2V0XSBbLS1yZXF1ZXN0LXBhcmFtPV0gCgpvcgoKcHl0aG9uIGFwaS1zbW9rZS10ZXN0XHNtb2tlX3Rlc3QucHkgdXJsX29mX2Ffc3BlY19maWxlIFstLWF1dGhdIC4uLgoKLS1hdXRoIFNtb2tlIHRlc3QgbmVlZHMgYXV0aG9yaXphdGlvbiB0byBtYWtlIEFQSSByZXF1ZXN0cy4gQWxzbyB5b3UgbmVlZCB0byBmaWxsIGNvbmZpZy5weSB3aXRoIGFwcHJvcHJpYXRlIHZhbHVlcy4KCi0tbG9jYWxob3N0IEFQSSBpcyBydW5pbmcgb24gYSBsb2NhbCBtYWNoaW5lLiAKSW4gbXkgY2FzZSBsb2NhbCBBUEkgdXNlcyBIVFRQIGluc3RlYWQgb2YgSFRUUFMsIHNvIHlvdSBzaG91bGQgYWRhcHQgbXkgY29kZSB0byB5b3VyIG5lZWRzLgoKLS1vbmx5LWdldCBUZXN0IG9ubHkgR0VUIG1ldGhvZHMuCgotLXJlcXVlc3QtcGFyYW09IFNldCB2YWx1ZSBmb3IgcmVxdWVzdHMgcGFyYW1ldGVycywgCmUuZy4gaWYgLS1yZXF1ZXN0LXBhcmFtPTcgdGhlbiBmb3IgL2FsYnVtcy97aWR9IGVuZHBvaW50IHRlc3Qgd2lsbCBzZW5kIHJlcXVlc3QgdG8gL2FsYnVtcy83LgoKCiMgVE9ETwpBZGQgYWJpbGl0eSB0byBzZWxlY3QgYXV0aG9yaXphdGlvbiBtZXRob2Q6IAotIGNsaWVudCBpZCBhbmQgc2VjcmV0IChkZWZhdWx0LCB1c2VkIGJ5IFNwb3RpZnkgQVBJKQotIGNsaWVudCBpZCBhbmQgc2VjcmV0LCB1c2VyIG5hbWUgYW5kIHBhc3N3b3JkCg== readmeEtag: '"d6c8e39c9f9e56a2d993b3fa9aed96f7d259aaf9"' readmeLastModified: Sat, 27 May 2023 16:47:59 GMT repositoryId: 330251410 description: Smoke test for APIs that use OpenAPI v.3 specification created: '2021-01-16T20:36:00Z' updated: '2023-10-02T10:04:56Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: robert-dzikowski logo: https://avatars.githubusercontent.com/u/12864860?v=4 license: MIT repoEtag: '"b6c64620be30c8d7b108d21b682bfb4ae8ad7b70096460098ef200b0f72ad242"' repoLastModified: Mon, 02 Oct 2023 10:04:56 GMT category: Server Implementations foundInMaster: true - source: openapi31 tags repository: https://github.com/purrproof/etherscan-openapi v3_1: true id: adf589eca87efb4e4ec9d2bc3507f096 repositoryMetadata: base64Readme: >- LSBbRXRoZXJzY2FuLmlvIEFQSSBTcGVjaWZpY2F0aW9uIGluIE9wZW5BUEkgMy4xIEZvcm1hdF0oI2V0aGVyc2NhbmlvLWFwaS1zcGVjaWZpY2F0aW9uLWluLW9wZW5hcGktMzEtZm9ybWF0KQogIC0gW1doYXQgaXMgaXQ/XSgjd2hhdC1pcy1pdCkKICAtIFtXaGF0IGlzIGl0IGZvcj9dKCN3aGF0LWlzLWl0LWZvcikKICAtIFtJcyB0aGUgRXRoZXJzY2FuIEFQSSBjb21wbGV0ZWx5IGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbj9dKCNpcy10aGUtZXRoZXJzY2FuLWFwaS1jb21wbGV0ZWx5LWRlc2NyaWJlZC1pbi10aGUtc3BlY2lmaWNhdGlvbikKICAgIC0gW0FjY291bnRzXSgjYWNjb3VudHMpCiAgICAtIFtDb250cmFjdHNdKCNjb250cmFjdHMpCiAgICAtIFtUcmFuc2FjdGlvbnNdKCN0cmFuc2FjdGlvbnMpCiAgICAtIFtCbG9ja3NdKCNibG9ja3MpCiAgICAtIFtMb2dzXSgjbG9ncykKICAgIC0gW0dldGgvUGFyaXR5IFByb3h5XSgjZ2V0aHBhcml0eS1wcm94eSkKICAgIC0gW1Rva2Vuc10oI3Rva2VucykKICAgIC0gW0dhcyBUcmFja2VyXSgjZ2FzLXRyYWNrZXIpCiAgICAtIFtTdGF0c10oI3N0YXRzKQogIC0gW0RyYXdiYWNrc10oI2RyYXdiYWNrcykKICAgIC0gW1BhdGhzIGNvbnRhaW4gcXVlcnkgZWxlbWVudHNdKCNwYXRocy1jb250YWluLXF1ZXJ5LWVsZW1lbnRzKQogICAgLSBbVGhlcmUgYXJlIG5vIDR4eCByZXNwb25zZXMgZGVzY3JpYmVkXSgjdGhlcmUtYXJlLW5vLTR4eC1yZXNwb25zZXMtZGVzY3JpYmVkKQogICAgLSBbVGhlIHRhZy1kZXNjcmlwdGlvbiBsaW50ZXIgcnVsZSBpcyBkaXNhYmxlZC5dKCN0aGUtdGFnLWRlc2NyaXB0aW9uLWxpbnRlci1ydWxlLWlzLWRpc2FibGVkKQogIC0gW0ZvciBkZXZlbG9wZXJzXSgjZm9yLWRldmVsb3BlcnMpCgojIEV0aGVyc2Nhbi5pbyBBUEkgU3BlY2lmaWNhdGlvbiBpbiBPcGVuQVBJIDMuMSBGb3JtYXQKCiMjIFdoYXQgaXMgaXQ/CgoqKltUaGUgc3BlY2lmaWNhdGlvbl0oZXRoZXJzY2FuLW9wZW5hcGkzMS1idW5kbGVkLnltbCkqKiBpcyBhIFlBTUwgZmlsZSBpbiBPcGVuQVBJIDMuMSBmb3JtYXQsIGJhc2VkIG9uIHRoZSBbRXRoZXJzY2FuIEFQSXMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmV0aGVyc2Nhbi5pby8pLgoKIyMgV2hhdCBpcyBpdCBmb3I/CgpUaGVyZSBhcmUgYSBudW1iZXIgb2YgRXRoZXJzY2FuIEFQSSBIVFRQLWNsaWVudHMgYXZhaWxhYmxlIGluIGRpZmZlcmVudCBsYW5ndWFnZXMsIGVhY2ggdmFyeWluZyBpbiBjb21wbGV0ZW5lc3MgYW5kIHVwZGF0ZSBmcmVxdWVuY3kuIFdpdGggdGhlIEFQSSBzcGVjaWZpY2F0aW9uLCB5b3UgY2FuIGdlbmVyYXRlIGFuIEFQSSBIVFRQLWNsaWVudCBpbiBhIHN1cHBvcnRlZCBsYW5ndWFnZSB1c2luZyB2YXJpb3VzIGdlbmVyYXRvcnMuIEhlcmUgYXJlIGEgZmV3IGV4YW1wbGVzIG9mIHN1Y2ggZ2VuZXJhdG9yczogIAoKKiB0eXBlc2NyaXB0OgogICogW09wZW5hcGktVHlwZXNjcmlwdF0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGktdHMvb3BlbmFwaS10eXBlc2NyaXB0KSwgc2VlIFtleGFtcGxlXSh0ZXN0cy9vcGVuYXBpLXRzL2ludGVncmF0aW9uL2FjY291bnQuYmFsYW5jZS50ZXN0LnRzKQogICogW09ydmFsXShodHRwczovL2dpdGh1Yi5jb20vYW55bWFuaWF4L29ydmFsKQoqIG11bHRpcGxlIGxhbmd1YWdlczogW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSwgW1N3YWdnZXItQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbiksIFtLaW90YV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YSkKCiMjIElzIHRoZSBFdGhlcnNjYW4gQVBJIGNvbXBsZXRlbHkgZGVzY3JpYmVkIGluIHRoZSBzcGVjaWZpY2F0aW9uPwoKQWxtb3N0LiBBbGwgcmVxdWVzdHMgYXJlIGZ1bGx5IGRlc2NyaWJlZCwgaW5jbHVkaW5nICoqUFJPKiogZW5kcG9pbnRzLiBIb3dldmVyLCBzb21lIHJlc3BvbnNlcyBhcmUgb25seSBwYXJ0aWFsbHkgZGVzY3JpYmVkOgoKIyMjIEFjY291bnRzCnwgTW9kdWxlLkFjdGlvbiB8IElzIHJlc3BvbnNlIGRlc2NyaWJlZD8gfAp8LS0tfC0tLXwKfCBhY2NvdW50LmJhbGFuY2UgIHwgKyB8CnwgYWNjb3VudC5iYWxhbmNlbXVsdGkgIHwgKyB8CnwgYWNjb3VudC50eGxpc3QgIHwgcGFydGlhbGx5IHwKfCBhY2NvdW50LnR4bGlzdGludGVybmFsIHwgcGFydGlhbGx5IHwKfCBhY2NvdW50LnRva2VudHggfCBwYXJ0aWFsbHkgfAp8IGFjY291bnQudG9rZW5uZnR0eCB8IHBhcnRpYWxseSB8CnwgYWNjb3VudC50b2tlbjExNTV0eCB8IHBhcnRpYWxseSB8CnwgYWNjb3VudC5nZXRtaW5lZGJsb2NrcyB8IHBhcnRpYWxseSB8CnwgYWNjb3VudC50eHNCZWFjb25XaXRoZHJhd2FsIHwgcGFydGlhbGx5IHwKfCBhY2NvdW50LmJhbGFuY2VoaXN0b3J5IHwgKyB8CiMjIyBDb250cmFjdHMKfCBNb2R1bGUuQWN0aW9uIHwgUmVzcG9uc2UgZGVzY3JpYmVkIHwKfC0tLXwtLS18CnwgY29udHJhY3QuZ2V0YWJpIHwgKyB8CnwgY29udHJhY3QuZ2V0c291cmNlY29kZSB8IHBhcnRpYWxseSB8CnwgY29udHJhY3QuZ2V0Y29udHJhY3RjcmVhdGlvbiB8ICsgfAp8IGNvbnRyYWN0LnZlcmlmeXNvdXJjZWNvZGUgfCArIHwKfCBjb250cmFjdC5jaGVja3ZlcmlmeXN0YXR1cyB8ICsgfAojIyMgVHJhbnNhY3Rpb25zCnwgTW9kdWxlLkFjdGlvbiB8IFJlc3BvbnNlIGRlc2NyaWJlZCB8CnwtLS18LS0tfAp8IHRyYW5zYWN0aW9uLmdldHN0YXR1cyB8IHBhcnRpYWxseSB8CnwgdHJhbnNhY3Rpb24uZ2V0dHhyZWNlaXB0c3RhdHVzIHwgcGFydGlhbGx5IHwKIyMjIEJsb2Nrcwp8IE1vZHVsZS5BY3Rpb24gfCBSZXNwb25zZSBkZXNjcmliZWQgfAp8LS0tfC0tLXwKfCBibG9jay5nZXRibG9ja3Jld2FyZCAgICAgfCBwYXJ0aWFsbHkgfAp8IGJsb2NrLmdldGJsb2NrY291bnRkb3duICB8ICsgfAp8IGJsb2NrLmdldGJsb2Nrbm9ieXRpbWUgICB8ICsgfAp8IHN0YXRzLmRhaWx5YXZnYmxvY2tzaXplICB8ICsgfAp8IHN0YXRzLmRhaWx5YmxrY291bnQgICAgICB8ICsgfAp8IHN0YXRzLmRhaWx5YmxvY2tyZXdhcmRzICB8ICsgfAp8IHN0YXRzLmRhaWx5YXZnYmxvY2t0aW1lICB8ICsgfAp8IHN0YXRzLmRhaWx5dW5jbGVibGtjb3VudCB8ICsgfAojIyMgTG9ncwp8IE1vZHVsZS5BY3Rpb24gfCBSZXNwb25zZSBkZXNjcmliZWQgfAp8LS0tfC0tLXwKfCBsb2dzLmdldExvZ3MgfCBwYXJ0aWFsbHkgfAojIyMgR2V0aC9QYXJpdHkgUHJveHkKfCBNb2R1bGUuQWN0aW9uIHwgUmVzcG9uc2UgZGVzY3JpYmVkIHwKfC0tLXwtLS18CnwgcHJveHkuZXRoX2Jsb2NrTnVtYmVyIHwgKyB8CnwgcHJveHkuZXRoX2dldEJsb2NrQnlOdW1iZXIgfCBwYXJ0aWFsbHkgfAp8IHByb3h5LmV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleCB8IHBhcnRpYWxseSB8CnwgcHJveHkuZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyIHwgKyB8CnwgcHJveHkuZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoIHwgcGFydGlhbGx5IHwKfCBwcm94eS5ldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXggfCBwYXJ0aWFsbHkgfAp8IHByb3h5LmV0aF9nZXRUcmFuc2FjdGlvbkNvdW50IHwgKyB8CnwgcHJveHkuZXRoX3NlbmRSYXdUcmFuc2FjdGlvbiB8ICsgfAp8IHByb3h5LmV0aF9nZXRUcmFuc2FjdGlvblJlY2VpcHQgfCArIHwKfCBwcm94eS5ldGhfY2FsbCB8ICsgfAp8IHByb3h5LmV0aF9nZXRDb2RlIHwgKyB8CnwgcHJveHkuZXRoX2dldFN0b3JhZ2VBdCB8ICsgfAp8IHByb3h5LmV0aF9lc3RpbWF0ZUdhcyB8ICsgfAojIyMgVG9rZW5zCnwgTW9kdWxlLkFjdGlvbiB8IFJlc3BvbnNlIGRlc2NyaWJlZCB8CnwtLS18LS0tfAp8IHN0YXRzLnRva2Vuc3VwcGx5ICAgICAgICAgICAgICAgIHwgKyB8CnwgYWNjb3VudC50b2tlbmJhbGFuY2UgICAgICAgICAgICAgfCArIHwKfCBzdGF0cy50b2tlbnN1cHBseWhpc3RvcnkgICAgICAgICB8ICsgfAp8IGFjY291bnQudG9rZW5iYWxhbmNlaGlzdG9yeSAgICAgIHwgKyB8CnwgdG9rZW4udG9rZW5ob2xkZXJsaXN0ICAgICAgICAgICAgfCArIHwKfCB0b2tlbi50b2tlbmluZm8gICAgICAgICAgICAgICAgICB8ICsgfAp8IGFjY291bnQuYWRkcmVzc3Rva2VuYmFsYW5jZSAgICAgIHwgKyB8CnwgYWNjb3VudC5hZGRyZXNzdG9rZW5uZnRiYWxhbmNlICAgfCArIHwKfCBhY2NvdW50LmFkZHJlc3N0b2tlbm5mdGludmVudG9yeSB8ICsgfAoKIyMjIEdhcyBUcmFja2VyCnwgTW9kdWxlLkFjdGlvbiB8IFJlc3BvbnNlIGRlc2NyaWJlZCB8CnwtLS18LS0tfAp8IGdhc3RyYWNrZXIuZ2FzZXN0aW1hdGUgfCArIHwKfCBnYXN0cmFja2VyLmdhc29yYWNsZSAgIHwgKyB8Cnwgc3RhdHMuZGFpbHlhdmdnYXNsaW1pdCB8ICsgfAp8IHN0YXRzLmRhaWx5Z2FzdXNlZCAgICAgfCArIHwKfCBzdGF0cy5kYWlseWF2Z2dhc3ByaWNlIHwgKyB8CiMjIyBTdGF0cwp8IE1vZHVsZS5BY3Rpb24gfCBSZXNwb25zZSBkZXNjcmliZWQgfAp8LS0tfC0tLXwKfCBzdGF0cy5ldGhzdXBwbHkgICAgICAgICAgICAgfCArIHwKfCBzdGF0cy5ldGhzdXBwbHkyICAgICAgICAgICAgfCArIHwKfCBzdGF0cy5ldGhwcmljZSAgICAgICAgICAgICAgfCArIHwKfCBzdGF0cy5jaGFpbnNpemUgICAgICAgICAgICAgfCArIHwKfCBzdGF0cy5ub2RlY291bnQgICAgICAgICAgICAgfCArIHwKfCBzdGF0cy5kYWlseXR4bmZlZSAgICAgICAgICAgfCArIHwKfCBzdGF0cy5kYWlseW5ld2FkZHJlc3MgICAgICAgfCArIHwKfCBzdGF0cy5kYWlseW5ldHV0aWxpemF0aW9uICAgfCArIHwKfCBzdGF0cy5kYWlseWF2Z2hhc2hyYXRlICAgICAgfCArIHwKfCBzdGF0cy5kYWlseXR4ICAgICAgICAgICAgICAgfCArIHwKfCBzdGF0cy5kYWlseWF2Z25ldGRpZmZpY3VsdHkgfCArIHwKfCBzdGF0cy5ldGhkYWlseW1hcmtldGNhcCAgICAgfCArIHwKfCBzdGF0cy5ldGhkYWlseXByaWNlICAgICAgICAgfCArIHwKCiMjIERyYXdiYWNrcwoKIyMjIFBhdGhzIGNvbnRhaW4gcXVlcnkgZWxlbWVudHMKCkFsbCBFdGhlcnNjYW4gQVBJIGVuZHBvaW50IFVSTHMgZm9sbG93IHRoZSBwYXR0ZXJuIGAuLi5ldGhlcnNjYW4uaW8vYXBpP21vZHVsZT1Nb2R1bGVOYW1lJmFjdGlvbj1BY3Rpb25OYW1lJi4uLmAuCgpIb3dldmVyLCBpbiB0ZXJtcyBvZiBPcGVuQVBJIDMuMSwgZW5kcG9pbnQgcGF0aHMgbXVzdCBiZSB1bmlxdWUuIFRvIG1lZXQgdGhpcyByZXF1aXJlbWVudCB3aGlsZSBzdGlsbCBkaXN0aW5ndWlzaGluZyBwYXRoIGl0ZW1zLCBJIGhhdmUgZGVzY3JpYmVkIHBhdGhzIGluIHRoZSBzcGVjaWZpY2F0aW9uIGxpa2UgdGhpczoKCmBgYApwYXRoczoKICAvP2FjY291bnQuYmFsYW5jZToKICAgIGdldDoKICAgIC4uLgogIC8/YWNjb3VudC5iYWxhbmNlbXVsdGk6CiAgICBnZXQ6CiAgICAuLi4KYGBgCgpUbyBtYWtlIHRoZSBsaW50ZXIgaWdub3JlIGl0LCBJIGhhdmUgdG8gZGlzYWJsZSBbcGF0aC1ub3QtaW5jbHVkZS1xdWVyeV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcy9wYXRoLW5vdC1pbmNsdWRlLXF1ZXJ5KSBydWxlLgoKIyMjIFRoZXJlIGFyZSBubyA0eHggcmVzcG9uc2VzIGRlc2NyaWJlZAoKVGhpcyBpcyBiZWNhdXNlIEV0aGVyc2NhbiBBUEkgZG9lcyBub3QgcmV0dXJuIHN1Y2ggcmVzcG9uc2VzLiBBbGwgcmVzcG9uc2VzIGhhdmUgYSAyMDAtT0sgY29kZS4gVG8gbWFrZSB0aGUgbGludGVyIGlnbm9yZSB0aGlzLCBJIGhhdmUgdG8gZGlzYWJsZSBbb3BlcmF0aW9uLTR4eC1yZXNwb25zZV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcy9vcGVyYXRpb24tNHh4LXJlc3BvbnNlKSBydWxlLgoKIyMjIFRoZSBbdGFnLWRlc2NyaXB0aW9uXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzL3RhZy1kZXNjcmlwdGlvbikgbGludGVyIHJ1bGUgaXMgZGlzYWJsZWQuCgpBY2NvcmRpbmcgdG8gdGhlIE9BMy4xIHNwZWNpZmljYXRpb24sIFt0YWdzXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy9sYXRlc3QuaHRtbCN0YWctb2JqZWN0KSBhcmUgYWxsb3dlZCB0byBoYXZlIG5vIGRlc2NyaXB0aW9uLiBIb3dldmVyLCB0aGUgUmVkb2MgbGludGVyIGFjdGl2YXRlcyB0aGlzIHJ1bGUgYnkgZGVmYXVsdCwgc28gSSBuZWVkIHRvIGRpc2FibGUgaXQuCgojIyBGb3IgZGV2ZWxvcGVycwoKYGBgCnBucG0gaW5zdGFsbApwbnBtIGNsaWVudApwbnBtIHRlc3QKYGBgCgpJc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgYXJlIHdlbGNvbWUuCgpVc2UgdGhpcyBhdCB5b3VyIG93biByaXNrIGFuZCByZXNwb25zaWJpbGl0eS4gUGxlYXNlIHJlc3BlY3QgdGhlIFtUZXJtcyBvZiBTZXJ2aWNlXShodHRwczovL2V0aGVyc2Nhbi5pby90ZXJtcykgb2YgRXRoZXJzY2FuLmlvLg== readmeEtag: '"2b45dad6bb3a02db3b873e83abfb12ce659799b1"' readmeLastModified: Fri, 12 Jul 2024 18:11:18 GMT repositoryId: 822090786 description: Etherscan.io API Specification in OpenAPI 3.1 Format. created: '2024-06-30T09:35:35Z' updated: '2024-08-16T11:19:08Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: PurrProof logo: https://avatars.githubusercontent.com/u/149718167?v=4 repoEtag: '"b2e9fb23cea88834f6dc2c2a996ae5b3d7e39631b9feda32435416ad55788d1d"' repoLastModified: Fri, 16 Aug 2024 11:19:08 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/migoya2020/ecommerce-marketplace-api v3: true repositoryMetadata: base64Readme: >- IyBlY29tbWVyY2UtbWFya2V0cGxhY2UtYXBpCmVjb21tZXJjZSBBUEkgZGVzaWduLiBzdG9wbGlnaHQuaW8KCgojIHNjcmVlbnNob290CgohW2Rlc2lnbl0oZGVzaWduLnBuZykKZWNvbW1lcmNlIEFQSSBkZXNpZ24uCg== readmeEtag: '"98e1710fa6863d080593f518463bc4e005f03fa9"' readmeLastModified: Mon, 25 Nov 2019 07:28:51 GMT repositoryId: 217833221 description: ecommerce API design. stoplight.io created: '2019-10-27T09:39:04Z' updated: '2019-11-25T07:31:17Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: migoya2020 logo: https://avatars.githubusercontent.com/u/23479444?v=4 repoEtag: '"9386ed1582fec0ceb7c1e4f26bd1208e687227f0c0380dadb5f78da6b30c6d13"' repoLastModified: Mon, 25 Nov 2019 07:31:17 GMT foundInMaster: true category: - Documentation - Server Implementations id: 6e08ecdc8e0e5279b1e7510d40e29a51 - source: openapi3 tags repository: https://github.com/mrxz/javalin-openapi-apt v3: true repositoryMetadata: base64Readme: >- IyBqYXZhbGluLW9wZW5hcGktYXB0CkFubm90YXRpb24gcHJvY2Vzc2luZyB0byBnZW5lcmF0ZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gZnJvbSBzb3VyY2UgY29kZSB1c2luZyBbSmF2YWxpbl0oaHR0cHM6Ly9qYXZhbGluLmlvKS4KClRoaXMgYW5ub3RhdGlvbiBwcm9jZXNzb3IgdXNlcyBbSmF2YVBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL2phdmFwYXJzZXIvamF2YXBhcnNlcikgdG8gYW5hbHl6ZSB0aGUgd2F5IGEgcHJvamVjdCB1c2VzIEphdmFsaW4gYW5kIHRvIGdlbmVyYXRlIGEgY29ycmVzcG9uZGluZyBPcGVuQVBJIHYzIGRvY3VtZW50LgpJdCBjYW4gZGVyaXZlIHRoZSBwYXRocyAoaW5jbHVkaW5nIHBhdGggcGFyYW1ldGVycyksIHF1ZXJ5IHBhcmFtZXRlcnMsIHJlcXVlc3QgYm9keSBhbmQgdGhlIHJlc3BvbnNlIGJvZHkgKHdpdGggdGhlIGFwcHJvcGlhdGUgc2NoZW1hKS4KU29tZSBzaWduaWZpY2FudCBsaW1pdGF0aW9ucyBhcHBseSAoc2VlIExpbWl0YXRpb25zIHNlY3Rpb24gYmVsb3cpLiBUaGlzIHByb2plY3QgaXMgYSBwcm9vZiBvZiBjb25jZXB0LCBzbyB1c2FnZSBpbiBwcm9kdWN0aW9uIGlzIF9ub3RfIHJlY29tbWVuZGVkLgoKIyMgTGltaXRhdGlvbnMKKiBUaGUgcHJvY2Vzc29yIG9ubHkgd29ya3Mgd2l0aCBgamF2YWNgLgoqIFRoZSBgQXBpQnVpbGRlcmAgb2YgSmF2YWxpbiBtdXN0IGJlIHVzZWQgdG8gY29uc3RydWN0IHRoZSBwYXRocy4gT25seSBhIHNpbmdsZSBtZXRob2QgZm9yIHRoZSBmdWxsIHJvdXRpbmcgdHJlZSBpcyBzdXBwb3J0ZWQuCiogSGFuZGxlcnMgbXVzdCBiZSBwYXNzZWQgYXMgbWV0aG9kIHJlZmVyZW5jZXMgdG8gdGhlIGBBcGlCdWlsZGVyYCBtZXRob2RzLgoqIFBvbHltb3JwaGljIG1vZGVscyB3aWxsIG9ubHkgaGF2ZSB0aGVpciBiYXNlIGNsYXNzIGluIHRoZSByZXN1bHRpbmcgT3BlbkFQSSBkb2N1bWVudC4KKiBSZXF1aXJlZCBwcm9wZXJ0eSBvZiBwYXJhbWV0ZXJzIG9yIGZpZWxkcyBvbiBhIG1vZGVsIGFyZSBub3Qgc3VwcG9ydGVkLgoqIEhhbmRsZXJzIHRoYXQgY29uZGl0aW9uYWxseSByZXNwb25kIHdpdGggZGlmZmVyZW50IHR5cGVzIG9mIGJvZGllcyBvciByZXF1aXJlcyBkaWZmZXJlbnQgcGFyZW1ldGVycyBhcmVuJ3Qgc3VwcG9ydGVkLgoKVGhlIHByb2Nlc3NvciB0cmllcyB0byBncmFjZWZ1bGx5IGhhbmRsZSB1bnN1cHBvcnRlZCBjb25zdHJ1Y3Rpb25zIGJ5IHByb2R1Y2luZyBhIGRlc2NyaXB0aXZlIGVycm9yLgo= readmeEtag: '"7175c25bae3e489006cb92dfadaced8f7db704fc"' readmeLastModified: Sat, 23 Nov 2019 18:00:00 GMT repositoryId: 219295656 description: >- Annotation processing to generate OpenAPI specification from source code using Javalin created: '2019-11-03T12:13:49Z' updated: '2019-11-23T18:00:15Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: mrxz logo: https://avatars.githubusercontent.com/u/8823461?v=4 license: NOASSERTION repoEtag: '"897e3bd9326ce75807ba6c41a6e12ee4d656f97bb133a714038f85d08186bb7d"' repoLastModified: Sat, 23 Nov 2019 18:00:15 GMT foundInMaster: true category: Parsers id: fa727f7dd55a2b01c344fe34370ad87b - source: openapi3 tags repository: https://github.com/dkirrane/ibm-openapi-validator-docker v3: true repositoryMetadata: base64Readme: >- IyBpYm0tb3BlbmFwaS12YWxpZGF0b3IKCkRvY2tlciBJbWFnZSBmb3IgaHR0cHM6Ly9naXRodWIuY29tL0lCTS9vcGVuYXBpLXZhbGlkYXRvcgo= readmeEtag: '"24161c42814b30fde65f6cbcfe58125e82a6d91d"' readmeLastModified: Mon, 21 Oct 2019 14:43:40 GMT repositoryId: 216578889 description: Docker Image for https://github.com/IBM/openapi-validator created: '2019-10-21T13:45:19Z' updated: '2019-10-21T14:43:46Z' language: Dockerfile archived: false stars: 0 watchers: 1 forks: 2 owner: dkirrane logo: https://avatars.githubusercontent.com/u/1280116?v=4 license: Apache-2.0 repoEtag: '"ce3fa57d7d3e82f2278c0a6923d1ca448b972574b45e920ec48c1d150ecb03a4"' repoLastModified: Mon, 21 Oct 2019 14:43:46 GMT foundInMaster: true category: Description Validators id: 03eba9bbb724766e0c2b82ed9d1a9b71 - source: openapi3 tags repository: https://github.com/aqib1/subscription-api v3: true repositoryMetadata: base64Readme: >- IyBTdWJzY3JpcHRpb24gU2VydmljZQpUaGUgaW1wbGVtZW50YWNpb24gb2YgU3Vic2NyaXB0aW9uIFNlcnZpY2UgaGFzIGJlZW4gbWFkZSB1c2luZyBhIG1pY3Jvc2VydmljZSBhcHByb2FjaC4gVGhpcyBzZXZpY2UgaXMgbWFkZSBvZiAzIHNlcnZpY2VzLiBUaGUgbWFpbiBzZXZpY2UgaXMgdGhlIFN1YnNjcmlwdGlvbiBtaWNyb3NlcnZpY2Ugd2hpY2ggaXMgdGhlIG9ubHkgdGhhdCBpcyByZWFjaGFibGUgc2luY2UgYSBwdWJsaWMgbmV0d29yay4gVGhpcyBzZXZpY2UgaW50ZXJhY3Qgd2l0aCBvbmUgaW50ZXJuYWwgc2VydmljZSwgRW1haWwgbWljcm9zZXZpY2UsIGFuZCBhIGRhdGFiYXNlIHRvIGNyZWF0ZSBzdWJzY3JpcHRpb25zLiBJZiBhbGwgcHJvY2VzcyBpcyBjb3JyZWN0LCB0aGUgbmV3IHN1YnNjcmlwdGlvbiBpZGVudGlmaWVyIGlzIHJldHVybmVkLiBUaGUgRW1haWwgbWljcm9zZXZpY2UgYXJlIG5vdCByZWFjaGFibGUgaWYgeW91IHVzZSBkb2NrZXIgcHJvZmlsZS4gVGhlIERvY2tlci9hcHAueW1sIGlzIG1ha2UgZm9yIHRoZSBjb211bmljYXRpb24gYW1vbmcgdGhlIHJlc3Qgb2YgdGhlIHNlcnZpY2VzLCBFdXJla2EgU2VydmVyLiBJbiB0aGlzLCB0aGUgRW1haWwgTWljcm9zZXJ2aWNlIGlzIHJlZ2lzdGVyZWQgdG8gYmUgYWNjZXNzaWJsZSBieSB0aGUgU3Vic2NyaXB0aW9uIE1pY3Jvc2VydmljZS4KCkluIHRoaXMgZGV2ZWxvcG1lbnQgaGFzIGJlZW4gdXNlZCB0aGUgZm9sbG93aW5nIHRlY2hub2xvZ2llcyBhbmQgbGlicmFyaWVzOgoKLSBTcHJpbmcgQ2xvdWQKaXQgaGFzIGJlZW4gdXNlZCB0byBkZXZlbG9wIHRoZSBhcmNoaXRlY3R1cmUgb2YgbWljcm9zZXJ2aWNlcy4gSXQgbWFrZSBwb3NzaWJsZSB0aGUgZWFzeSBkZXZlbG9wbWVudCBvZiBhbiBFdXJla2EgU2VydmVyIGFuZCB0aGUgcmVnaXN0cmF0aW9uIG9mIGRpZmZlcmVudCBzZXJ2aWNlcyBvbiBpdC4gVXNlZCBOZXRmbGl4IGZlaWduIGZvciBkZWNsYXJhdGl2ZSBjb21taWNhdGlvbiB3aXRoIG1pY3Jvc2VydmljZXMuIE5ldGZsaXggcmliYm9uIGlzIHVzZWQgZm9yCmxvYWQgYmFsYW5jaW5nLiBOZXRmbGl4IGh5c3RyaXggaXMgdXNlZCBmb3IgY2lyY3VpdCBicmVha2VyLgoKLSBTcHJpbmcgQm9vdCAKaXQgbWFrZXMgaXQgZWFzeSB0byBjcmVhdGUgc3RhbmQtYWxvbmUgYXBwbGljYXRpb24sIHdoaWNoIGNhbiBiZSBleGVjdXRlZCBsaWtlIHdpdGhvdXQgbmVjZXNzaXR5IG9mIGEgYXBwbGljYXRpb24gd2ViIHNlcnZlciBsaWtlIHRvbWNhdC4KCi0gU3ByaW5nIERhdGEgSlBBCnRvIHJlZHVjZSB0aGUgYW1vdW50IG9mIGJvaWxlcnBsYXRlIGNvZGUgcnF1aXJlZCB0byBpbXBsZW1lbnQgZGF0YSBhY2Nlc3MgZm9yIHZhcmlvdXMgcGVyc2lzdGVuY2Ugc3RvcmVzLiBJbiB0aGlzIGNhc2UsIGR1cmluZyB0aGUgZGV2ZWxvcG1lbnQgaGFzIGJlZW4gdXNlZCBIMiBkYXRhYmFzZS4KCi0gU3dhZ2dlcgp0byBkZXZlbG9wIHRoZSBBUEkgZG9jdW1lbnRhdGlvbnMgYW5kIHJlYWwgdGltZSBvYmplY3RzIG9mIGNvbW1vbiBvdmVyIG1pY3Jvc2VydmljZXMuCgotIEgyIGRhdGFiYXNlCml0IGlzIHRoZSBkYXRhYmFzZSB1c2VkIGluIHRoZSBkZXZlbG9wbWVudCBwcm9jY2Vzcy4KCi0gU3ByaW5nIEFPUAppcyB1c2VkIGZvciBsb2dnaW5nIG1ldGhvZCBpbm5lciBvdXRlciBzdGF0ZW1lbnRzCgotIEphdmFNYWlsIAppcyB1c2VkIHRvIHNlbmQgcmVhbCB0aW1lIGVtYWlscwoKLSBKdW5pdCAKaXMgdXNlZCB0byBkbyB1bml0IHRlc3RpbmcgYXMgYXBwbGljYXRpb24gaXMgYnVpbGQgdXNpbmcgdGVzdC1kcml2ZW4gYXBwcm9hY2ggCgotIE1vY2tpdG8gZnJhbWV3b3JrIAppcyB1c2VkIHRvIG1vY2sgb2JqZWN0cywgc2VydmljZXMgaW4gdW5pdCB0ZXN0aW5nCgotIE1hcFN0cnVjdAppcyB1c2VkIHRvIHBlcmZvcm0gaW50ZXItbWFwcGluZyBvZiBvYmplY3RzCgotIE9wZW4gUE9KTwppcyB1c2VkIHRvIHBlcmZvcm0gdW5pdCB0ZXN0aW5nIGFnYWluc3QgamF2YSBvYmplY3RzCgojIEJ1aWxkaW5nIGZvciBkZXZlbG9wbWVudApUbyBidWlsZCB0aGUgU3Vic2NyaXB0aW9uIFNlcnZpY2UgZm9yIGRldmVsb3BtZW50IHlvdSBtdXN0IGJ1aWxkIHRoZSBmb3VyIHNlcnZpY2VzLiBUbyBidWlsZCB0aGUgU3Vic2NyaXB0aW9uIE1pY3Jvc2VydmljZSB5b3UgbXVzdCBiZSBpbiB0aGUgU3Vic2NyaXB0aW9uTWljcm9zZXJ2aWNlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCwKCm12biBjbGVhbiBwYWNrYWdlIC1QIGRldgpUaGUgcHJvY2Nlc3MgaXMgdGhlIHNhbWUgZm9yIHRoZSBvdGhlciBzZXJ2aWNlcy4KClJ1bm5pbmcgdGhlIFN1YnNjcmlwdGlvbiBTZXJ2aWNlIGZvciBkZXZlbG9tZW50Ckl0IGlzIG5lY2Nlc3NhcnkgcnVuIHRoZSBzZXJ2aWNlcyBmb2xsb3dpbmcgYW4gb3JkZXIsCgotIEV1cmVrYSBTZXJ2ZXIKCkl0IGlzIG5lY2Vzc2FyeSB3YWl0IHRvIEV1cmVrYSBTZXJ2ZXMgYXJlIGNvbXBsZXRseSBkZXBsb3llZCBiZWZvcmUgc3RhdGluZyB0byBydW4gdGhlIHJlc3Qgb2Ygc2VydmljZXMuCmphdmEgLWphciB0YXJnZXQvZXVyZWthLXNlcnZlci0wLjAuMS5qYXIKCi0gRW1haWwgTWljcm9zZXJ2aWNlCgpqYXZhIC1qYXIgdGFyZ2V0L2FkaWRhcy1lbWFpbC1hcGktMC4wLjEtU05BUFNIT1QuamFyCgotIFN1YnNjcmlwdGlvbiBNaWNyb3NlcnZpY2UKCmphdmEgLWphciB0YXJnZXQvYWRpZGFzLXN1YnNjcmlwdGlvbi1hcGktMC4wLjEtU05BUFNIT1QuamFyCgpVc2luZyBTdWJzY3JpcHRpb24gU2VydmljZSBpbiBkZXZlbG9wbWVudApJZiB5b3Ugd2FudCB0byBhY2Nlc3MgdG8gRXVyZWthIFNlcnZlciB0byBzZWUgdGhlIHJlZ2lzdHJlZCBzZXJ2aWNlcywgaHR0cDovL2xvY2FsaG9zdDo4NzYxIGluIHlvdXIgYnJvd3Nlci4KClRvIGFkZCBhIG5ldyBTdWJzY3JpcHRpb24sIGl0IGlzIG5lY2Vzc2FyeSB0byBtYWtlIGEgUE9TVCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4My9zdWJzY3JpcHRpb24uIAoKIyBVc2luZyBEb2NrZXIKWW91IGNhbiBkb2NrZXJpY2UgdGhlIFN1YnNjcmlwdGlvbiBTZXJ2aWNlLiBUbyBhY2hpZXZlIHRoaXMsIGZpcnN0IGJ1aWxkIGEgZG9ja2VyIGltYWdlIG9mIGVhY2ggb2YgdGhlIHNlcnZpY2UgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gdGhlIG1haW4gZm9sZGVyIG9mIGVhY2ggc2VydmljZS4KCm12biBjbGVhbiBwYWNrYWdlIC1QIGRvY2tlciBkb2NrZXI6YnVpbGQKQWZ0ZXIgZXhlY3V0aW5nIHRoZSBiZWxvdyBjb21tYW5kLCB5b3UgbXVzdCB0byBnbyB0byB0aGUgZG9ja2VyIGZvbGRlciwgYW5kIHJ1bjoKCmRvY2tlci1jb21wb3NlIC1mIGFwcC55bWwgdXAgLWQKVGhpcyBjb21tYW5kIHdpbGwgY3JlYXRlIGZvdXIgZG9ja2VyIGNvbnRhaW5lciBpbiB3aGljaCB0aGUgdGhyZWUgbWljcm9zZXJ2aWNlcyBhbmQgdGhlIEV1cmVrYSBTZXJ2ZXIgd2lsbCBiZSBleGVjdXRlZC4gSW4gYWRkaXRpb24sIGl0IHdpbGwgYmUgY3JlYXRlIGEgaW50ZXJuYWwgZG9ja2VyIG5ldHdvcmsgd2hpY2ggdG8gcG9zc2libGUgdGhlIGNvbW11bmljYXRpb24gYW1vbmcgYWxsIGNvaW50YWluZXJzLiBGaW5hbGx5LCBhbm90aGVyIGNvaW50YWluZXIgaXMgY3JlYXRlZCB3aGljaCBsaWUgdGhlIFBvc3RncmVTUUwuIE9ubHkgdGhlIHBvcnQgODA4MCBvZiB0aGUgY29udGFpbmVyIHdoZXJlIHdpbGwgYmUgZXhlY3V0ZWQgdGhlIFN1YnNjcmlwdGlvbiBNaWNyb3NlcnZpY2UgYW5kIHRoZSBzYW1lIHBvcnQgb2YgdGhlIEV1cmVrYSBTZXJ2ZXIgaGF2ZSBiZWVuIHB1Ymxpc2hlZCB0byBiZSByZWFjaGFibGUgc2luY2UgYSBleHRlcm5hbCBuZXR3b3JrLiBTbyBpdCBpcyBpbXBvc3NpYmxlIHRoYXQgdGhlIGRhdGFiYXNlLCB0aGUgRW1haWwgTWljcm9zZXJ2aWNlIGFuZCB0aGUgRXZlbnQgTWljcm9zZXJ2aWNlIHdhcyByZWFjaGFibGUgYnkgb3RoZXIgcHJvY2Nlc3MgdGhhdCBkbyBub3QgYmUgdGhlIFN1YmNyaXB0aW9uIE1pY3Jvc2VydmljZS4KClRvIGFjY2VzcyB0byBFdXJla2EgU2VydmVyIHRvIHNlZSB0aGUgcmVnaXN0cmVkIHNlcnZpY2VzLCBodHRwOi8vbG9jYWxob3N0OjgwODEKVG8gYWRkIGEgbmV3IFN1YnNjcmlwdGlvbiwgaXQgaXMgbmVjZXNzYXJ5IHRvIG1ha2UgYSBQT1NUIHJlcXVlc3QgdG8gaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N1YnNjcmlwdGlvbgoKIyBTd2FnZ2VyIERvY3VtZW50YXRpb24KU3dhZ2dlciBkb2N1bWVudGF0aW9uIGlzIGJ1aWxkIGFuZCBjb21taXRlZCBpbiBkb2N1bWVuYXRpb24gZm9sZGVyIHdoaWNoIGNvbnRhaW4gYWxsIGRldGFpbHMgYW5kIGVuZCBwb2ludHMgb2YgYWxsIG1pY3JvLXNlcnZpY2VzLgpJdCBpcyBidWlsZCB1c2luZyBzd2FnZ2VyLWh1Yi4K readmeEtag: '"15cad2ce98fe35576f7b45f301c30ddca2d226c3"' readmeLastModified: Thu, 13 Feb 2020 20:54:11 GMT repositoryId: 214656319 description: 'Micro-service API for Subscriptions and email ' created: '2019-10-12T13:58:31Z' updated: '2020-02-13T20:54:16Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: aqib1 logo: https://avatars.githubusercontent.com/u/8742169?v=4 repoEtag: '"7b9c9b8f71e9611a2b22b003eb76c7f3dc2acfb42942ef5f3b19aeea74599cd9"' repoLastModified: Thu, 13 Feb 2020 20:54:16 GMT foundInMaster: true category: Server Implementations id: 1065ef5a8c3a7843dee99fca1e7c8381 - source: openapi3 tags repository: https://github.com/aqib1/idealotask v3: true repositoryMetadata: base64Readme: >- IyBJZGVhbG9UYXNrClRoZXNlIGFyZSB0aGUgZGV0YWlscyByZWdhcmRpbmcgdGFza3MuIEkgcGljayB0aGUgdGFzayAzIHdoaWNoIGlzIHRoZSBmb2xsb3dpbmcgYmVsb3cuIFRoZSBwcm9qZWN0IGlzIGNvbXBsZXRlbHkgZG9ja2VyaXplIHdpdGggYSBwdWJsaWMgaW1hZ2UgYXZhaWxhYmxlIG9uIGRvY2tlciBodWIgcGxlYXNlIHVzZSB0aGUgY29tbWFuZCA8Yj5kb2NrZXIgcHVsbCBhcWliYnV0dDMwNzgvdG95cm9ib3Q6aW1hZ2U8L2I+IHRvIHB1bGwgdGhlIGltYWdlLCBpZiB5b3UgbGlrZSB0byBydW4gaXQgZnJvbSBkb2NrZXIgc2hlbGwuCiMgVGFzayAzCgpDb2RlIHByb2JsZW0gZGV0YWlsczoKLSBUaGUgYXBwbGljYXRpb24gaXMgYSBzaW11bGF0aW9uIG9mIGEgdG95IHJvYm90IG1vdmluZyBvbiBhIHNxdWFyZSB0YWJsZXRvcCwgb2YKZGltZW5zaW9ucyA1IHggNSB1bml0cy4KLSBUaGVyZSBhcmUgbm8gb3RoZXIgb2JzdHJ1Y3Rpb25zIG9uIHRoZSB0YWJsZSBzdXJmYWNlLgotIFRoZSByb2JvdCBpcyBmcmVlIHRvIHJvYW0gYXJvdW5kIHRoZSBzdXJmYWNlIG9mIHRoZSB0YWJsZSwgYnV0IG11c3QgYmUgcHJldmVudGVkIGZyb20KZmFsbGluZyB0byBkZXN0cnVjdGlvbi4gQW55IG1vdmVtZW50IHRoYXQgd291bGQgcmVzdWx0IGluIHRoZSByb2JvdCBmYWxsaW5nIGZyb20gdGhlIHRhYmxlIG11c3QKYmUgcHJldmVudGVkLCBob3dldmVyIGZ1cnRoZXIgdmFsaWQgbW92ZW1lbnQgY29tbWFuZHMgbXVzdCBzdGlsbCBiZSBhbGxvd2VkLgpDcmVhdGUgYW4gYXBwbGljYXRpb24gdGhhdCBjYW4gcmVhZCBpbiBjb21tYW5kcyBvZiB0aGUgZm9sbG93aW5nIGZvcm06Ci0gUExBQ0UgWCxZLEYKLSBNT1ZFCi0gTEVGVAotIFJJR0hUCi0gUkVQT1JUClBMQUNFIHdpbGwgcHV0IHRoZSB0b3kgcm9ib3Qgb24gdGhlIHRhYmxlIGluIHBvc2l0aW9uIFgsWSBhbmQgZmFjaW5nIE5PUlRILApTT1VUSCwgRUFTVCBvciBXRVNULiBUaGUgb3JpZ2luICgwLDApIGNhbiBiZSBjb25zaWRlcmVkIHRvIGJlIHRoZSBTT1VUSCBXRVNUCm1vc3QgY29ybmVyLgpNT1ZFIHdpbGwgbW92ZSB0aGUgdG95IHJvYm90IG9uZSB1bml0IGZvcndhcmQgaW4gdGhlIGRpcmVjdGlvbiBpdCBpcyBjdXJyZW50bHkgZmFjaW5nLgpMRUZUIGFuZCBSSUdIVCB3aWxsIHJvdGF0ZSB0aGUgcm9ib3QgOTAgZGVncmVlcyBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdGlvbiB3aXRob3V0CmNoYW5naW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgcm9ib3QuClJFUE9SVCB3aWxsIGFubm91bmNlIHRoZSBYLFkgYW5kIEYgb2YgdGhlIHJvYm90LiAKQ29uc3RyYWludHM6Ci0gVGhlIGFwcGxpY2F0aW9uIG11c3QgYmUgYSBTcHJpbmctQm9vdC1BcHBsaWNhdGlvbgotIElucHV0IG11c3QgYmUgcmVhbGlzZWQgb3ZlciB0aGUgUkVTVC1BUEksIHRha2UgY2FyZSB3aGVuIGRlc2lnbmluZyB0aGUgUkVTVC1BUEkKLSBUaGUgcm9ib3QgdGhhdCBpcyBub3Qgb24gdGhlIHRhYmxlIGNhbiBjaG9vc2UgdGhlIGlnbm9yZSB0aGUgTU9WRSwgTEVGVCwgUklHSFQKYW5kIFJFUE9SVCBjb21tYW5kcy4KLSBUaGUgcm9ib3QgbXVzdCBub3QgZmFsbCBvZmYgdGhlIHRhYmxlIGR1cmluZyBtb3ZlbWVudC4gVGhpcyBhbHNvIGluY2x1ZGVzIHRoZSBpbml0aWFsCnBsYWNlbWVudCBvZiB0aGUgdG95IHJvYm90LgotIEFueSBtb3ZlIHRoYXQgd291bGQgY2F1c2UgdGhlIHJvYm90IHRvIGZhbGwgbXVzdCBiZSBpZ25vcmVkLgotIEl0IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIGFueSBncmFwaGljYWwgb3V0cHV0IHNob3dpbmcgdGhlIG1vdmVtZW50IG9mIHRoZSB0b3kKcm9ib3QuIApEZWxpdmVyYWJsZXM6IAotIHRoZSB3aG9sZSBwcm9qZWN0LCBleGFtcGxlIHJlcXVlc3RzIHRvIHRlc3QgYSByb2JvdC1hcHBsaWNhdGlvbiBpbiBmb3JtIG9mIFBvc3RtYW5Db2xsZWN0aW9uIG9yIGluIGZvcm0gb2YgYSB0ZXh0IGZpbGUuCg== readmeEtag: '"57b6a5f60fbbeca3908f6e510e099b5d558ecb3d"' readmeLastModified: Wed, 11 Sep 2019 01:08:14 GMT repositoryId: 203261645 description: null created: '2019-08-19T22:55:03Z' updated: '2019-10-17T02:25:03Z' language: HTML archived: false stars: 0 watchers: 2 forks: 0 owner: aqib1 logo: https://avatars.githubusercontent.com/u/8742169?v=4 repoEtag: '"1e2f3f5ae9248f1bdb6bfb89d116c3387225dd72ba5a2b195596a421fdb104cf"' repoLastModified: Thu, 17 Oct 2019 02:25:03 GMT foundInMaster: true category: Server Implementations id: 3dd9aa2756dfd980f28501062f14c68a - source: openapi3 tags repository: https://github.com/marcomicera/rns v3: true repositoryMetadata: base64Readme: >- IyBgcm5zYDogUm9hZCBOYXZpZ2F0aW9uIFNlcnZpY2VzCmBybnNgIGlzIGEgd2ViIHNlcnZpY2UgZGV2ZWxvcGVkIGFzIGFuIGFzc2lnbm1lbnQgZm9yIHRoZSBEaXN0cmlidXRlZCBQcm9ncmFtbWluZyBJSSBjb3Vyc2UgYXQgdGhlIFBvbHl0ZWNobmljIFVuaXZlcnNpdHkgb2YgVHVyaW4uCgojIyMjIFVzZWZ1bCBsaW5rcwotIFtDb3Vyc2Ugd2Vic2l0ZV0oaHR0cHM6Ly9wYWQucG9saXRvLml0OjgwODAvZW5naW5mcmFtZS9kcDIvZHAyLnhtbCkKICAtIFtBc3NpZ25tZW50cyBGQVFzXShodHRwczovL3BhZC5wb2xpdG8uaXQ6ODA4MC9lbmdpbmZyYW1lL2RwMi9kcDIueG1sP191cmk9Ly9kcDIvYXNzaWdubWVudF9mYXFzKQogIC0gW0V4YW1wbGVzXShodHRwczovL3BhZC5wb2xpdG8uaXQ6ODA4MC9lbmdpbmZyYW1lL2RwMi9kcDIueG1sP191cmk9Ly9kcDIvbWF0ZXJpYWwpCi0gW2BpdC5wb2xpdG8uZHAyLlJOU2AgcGFja2FnZV0oaHR0cHM6Ly9wYWQucG9saXRvLml0OjgwODAvZW5naW5mcmFtZS9kcDIvYXNzaWdubWVudHMvbGFiMS9kb2MvaW5kZXguaHRtbCkKLSBbU3dhZ2dlciBBUElzXShodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzL21hcmNvbWljZXJhL1Juc1N5c3RlbS8yLjAtb2FzMykKICAtIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYWJvdXQvKQotIFtMaXN0IG9mIEhUVFAgc3RhdHVzIGNvZGVzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX0hUVFBfc3RhdHVzX2NvZGVzKQotIFtQVVQgdnMuIFBPU1QgaW4gUkVTVF0oaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjMwNDUzL3B1dC12cy1wb3N0LWluLXJlc3QpCgojIyMjIFNvZnR3YXJlCi0gYG9wZW5qZGstOC1qZGtgCi0gW0FwYWNoZSBBbnQgMS45LjZdKGh0dHBzOi8vYXJjaGl2ZS5hcGFjaGUub3JnL2Rpc3QvYW50L2JpbmFyaWVzL2FwYWNoZS1hbnQtMS45LjYtYmluLnRhci5neikgCi0gW05lbzRKIDMuMi4zXShodHRwczovL25lbzRqLmNvbS9kb3dubG9hZC10aGFua3MvP2VkaXRpb249Y29tbXVuaXR5JnJlbGVhc2U9My4yLjMmZmxhdm91cj11bml4KQogIC0gW0Rpc2FibGUgYXV0aGVudGljYXRpb25dKGh0dHBzOi8vbmVvNGouY29tL2RvY3Mvb3BlcmF0aW9ucy1tYW51YWwvY3VycmVudC9hdXRoZW50aWNhdGlvbi1hdXRob3JpemF0aW9uL2VuYWJsZS8pCi0gW0FwYWNoZSBUb21jYXQgOC41LjIwXShodHRwczovL2FyY2hpdmUuYXBhY2hlLm9yZy9kaXN0L3RvbWNhdC90b21jYXQtOC92OC41LjIwL2Jpbi9hcGFjaGUtdG9tY2F0LTguNS4yMC50YXIuZ3opCiAgLSAqKkltcG9ydGFudCoqOiBzZXQgYHNoYXJlZC5sb2FkZXI9L29wdC9kcDIvc2hhcmVkL2xpYi8qLmphcmAgaW4gYHRvbWNhdF9kaXIvY29uZi9jYXRhbGluYS5wcm9wZXJ0aWVzYAo= readmeEtag: '"fb68e949435176fcf46001df4ed55eeb9519f0cf"' readmeLastModified: Sat, 11 Apr 2020 13:40:14 GMT repositoryId: 183401765 description: Road Navigation Services created: '2019-04-25T09:28:59Z' updated: '2023-01-28T15:05:33Z' language: Java archived: true stars: 0 watchers: 2 forks: 0 owner: marcomicera logo: https://avatars.githubusercontent.com/u/13918587?v=4 license: MIT repoEtag: '"47ff5828159f54b8f9dde0fa627890e9fea53e677a2533c70849c9e5642b2933"' repoLastModified: Sat, 28 Jan 2023 15:05:33 GMT foundInMaster: true category: Code Generators id: c697198760415f3a02305c92e624b53c - source: openapi3 tags repository: https://github.com/sumant86/node-rest-api v3: true repositoryMetadata: base64Readme: >- IyBOb2RlIFJFU1QgQVBJCgpBIGtpY2sgc3RhcnQgcHJvamVjdCBmb3IgaW1wbGVtZW50YXRpb24gb2YgUkVTVGZ1bCBBUEkgd2l0aCBOb2RlLmpzIHVzaW5nIEVTNi4KRmVhdHVyZXMgaW5jbHVkZToKCi0gICBVc2Ugb2YgdGhlIEhleGFnb25hbCBBcmNoaXRlY3R1cmUgdG8gYXJyYW5nZSB0aGUgYXBwbGljYXRpb24gaW50byBsb2dpY2FsCiAgICBsYXllcnMsIHdpdGggd2VsbC1kZWZpbmVkIHJlc3BvbnNpYmlsaXRpZXMuCi0gICBSRVNUZnVsIEFQSXMgYXJlIGltcGxlbWVudGVkIHVzaW5nIHRoZSBbRXhwcmVzc10oaHR0cDovL2V4cHJlc3Nqcy5jb20vKQogICAgZnJhbWV3b3JrLgotICAgUGVyc2lzdGVuY2UgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYW4gaW4tbWVtb3J5IHJlcG9zaXRvcnkgbGF5ZXIuIFRoaXMgY2FuIGJlCiAgICBzdWJzdGl0dXRlZCB3aXRoIGFueSBwZXJzaXN0ZW5jZSB0ZWNobm9sb2d5IG9mIHlvdXIgY2hvaWNlLgotICAgTVNTUUwgJiBNeVNxbCBhZGFwdG9ycyBhcmUgcHJvdmlkZWQgZm9yIGZsZXhpYmxpdHkgdG8gY29ubmVjdCB3aXRoIGRhdGFiYXNlLgogICAgRGF0YWJhc2UgY3JlZGVudGlhbHMgbmVlZCB0byBiZSB1cGRhdGVkIHRvIGAuZW52YCBmaWxlCgojIyBEZXYgQnVpbGQKCmBgYGJhc2gKJCBucG0gaW5zdGFsbAokIG5wbSBzdGFydApgYGAKClRoZSBkZXYgYnVpbGQgc3RhcnRzIHRoZSBhcHBsaWNhdGlvbiBpbiB3YXRjaCBtb2RlLiBJZiB5b3UgbWFrZSBhbnkgY2hhbmdlcyB0bwp0aGUgc291cmNlIGZpbGVzLCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWNvbXBpbGUgYW5kIHJlc3RhcnQuCgpUbyB2ZXJpZnkgdGhhdCB0aGUgYXBwbGljYXRpb24gaXMgd29ya2luZyBjb3JyZWN0bHksIHBvaW50IHlvdXIgYnJvd3NlciB0bwpbaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS9wcm9kdWN0cy8xXShodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3Byb2R1Y3RzLzEpIC0KeW91IHNob3VsZCBzZWUgYSByZXNwb25zZSB3aXRoIG9uZSBwcm9kdWN0IGluIEpTT04gZm9ybWF0LgoKWW91IGNhbiBzZWUgYSBPcGVuQVBJIChTd2FnZ2VyKSBkZWZpbml0aW9uIG9mIHRoZSBSRVNUIEFQSSBhdApbaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS1kb2NzL10oaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS1kb2NzLykuIFRoaXMKaW50ZXJmYWNlIGFsc28gYWxsb3dzIHlvdSB0byBpbnRlcmFjdCB3aXRoIHRoZSBBUEkuIFBvc3RtYW4gQ29sbGVjdGlvbiBwcm92aWRlZAp3aXRoIHRoaXMgcmVwb3NpdG9yeS4KClRvIGRlYnVnIHRoZSBhcHBsaWNhdGlvbiBpbiBDaHJvbWUsIHBvaW50IHRoZSBicm93c2VyIHRvIGNocm9tZTovL2luc3BlY3QgYW5kCmNsaWNrIG9uICJPcGVuIGRlZGljYXRlZCBEZXZUb29scyBmb3IgTm9kZSIuCgojIyBQcm9kdWN0aW9uIEJ1aWxkCgpgYGBiYXNoCiQgbnBtIHJ1biBwcmV0dGllcgokIG5wbSBydW4gYnVpbGQKJCBucG0gcnVuIHNlcnZlCmBgYAoKIyMgUHJldHRpZXIKCmBgYGJhc2gKJCBucG0gcnVuIHByZXR0aWVyCmBgYAoKIyMgRm9sZGVyIFN0cnVjdHVyZQoKYGBgCi9zcmMKICAgIC9yb3V0ZXMKICAgIC9zZXJ2aWNlcwogICAgL3JlcG9zaXRvcmllcwogICAgL2Nvbm5lY3RvcnMKICAgIC91dGlscwpgYGAKClRoZSBzb3VyY2UgZm9sZGVyIGNvbnRhaW5zIHN1Yi1mb2xkZXJzIHRoYXQgYXJyYW5nZSB0aGUgYXBwbGljYXRpb24gaW50byBsb2dpY2FsCmxheWVyczoKCi0gICBgcm91dGVzYDogVGhpcyBpcyB0aGUgYWRhcHRlciBsYXllciBvZiB0aGUgSGV4YWdvbmFsIEFyY2hpdGVjdHVyZS4gSXQgYWRhcHRzCiAgICB0aGUgSFRUUCB0cmFuc2Zvcm1zIHRoZSBIVFRQIHJlcXVlc3RzIGZyb20gdGhlIGV4dGVybmFsIHdvcmxkIHRvIHRoZSBzZXJ2aWNlCiAgICBsYXllciBhbmQgdHJhbnNmb3JtcyB0aGUgb2JqZWN0cyByZXR1cm5lZCBieSB0aGUgc2VydmljZSBsYXllciB0byBIVFRQCiAgICByZXNwb25zZXMuCgotICAgYHNlcnZpY2VzYDogVGhlIHNlcnZpY2UgbGF5ZXIgY29vcmRpbmF0ZXMgaGlnaC1sZXZlbCBhY3Rpdml0aWVzIHN1Y2ggYXMKICAgIGNyZWF0aW9uIG9mIGRvbWFpbiBvYmplY3RzIGFuZCBhc2tpbmcgdGhlbSB0byBwZXJmb3JtIHRhc2tzIHJlcXVlc3RlZCBieSB0aGUKICAgIGV4dGVybmFsIHdvcmxkLiBJdCBpbnRlcmFjdHMgd2l0aCB0aGUgcmVwb3NpdG9yeSBsYXllciB0byBzYXZlIGFuZCByZXN0b3JlCiAgICBvYmplY3RzLgoKLSAgIGByZXBvc2l0b3JpZXNgOiBUaGUgcmVwb3NpdG9yeSBsYXllciBpcyByZXNwb25zaWJsZSBmb3IgcGVyc2lzdGluZyBkb21haW4KICAgIG9iamVjdHMgYW5kIHBlcmZvcm1pbmcgQ1JVRCBvcGVyYXRpb25zIG9uIHRoZW0uIFRoaXMgdGVtcGxhdGUgdXNlcyBpbi1tZW1vcnkKICAgIHBlcnNpc3RlbmNlIGZvciBwcm9kdWN0cyAmIE15c3FsICYgTVNTcWwgY29ubmVjdG9yIHRvIGNvbm5lY3Qgd2l0aCBkYXRhYmFzZS4KCi0gICBgY29ubmVjdG9yc2A6IFRoZSBjb25uZWN0b3IgbGF5ZXIgYWxsb3dzIGFwcGxpY2F0aW9uIHRvIGNvbm5lY3Qgd2l0aAogICAgZGF0YWJhc2UgZm9yIGFsbCBxdWVyaWVzLiBDdXJyZW50bHkgY29ubmVjdG9ycyBhcmUgYXZhaWxhYmxlIGZvciBgTXlTcWxgICYKICAgIGBNc3NxbGAuIE15c3FsIGNvbm5lY3RvciBpcyB1c2luZyBgbXlzcWxgIGRyaXZlci4gTVNTcWwgY29ubmVjdG9yIGlzIHVzaW5nCiAgICBgbXNzcWxgICYgYHRlZGlvdXNgIGRyaXZlciwgaXQgaXMgdXBvbiB1c2VyIHRvIGNob29zZSB0aGUgZHJpdmVycyBiYXNlZCBvbgogICAgZmxleGlibGl0eS4KCi0gICBUaGUgYHV0aWxzYCBmb2xkZXIgY29udGFpbnMgdXNlZnVsIHV0aWxpdGllcyBhbmQgaGVscGVycy4K readmeEtag: '"57cf6e528c666d7f4c34a56fc4480cb1bbce580a"' readmeLastModified: Wed, 11 May 2022 08:12:07 GMT repositoryId: 268822901 description: >- A kick start project for implementation of RESTful API with Node.js using ES6. created: '2020-06-02T14:26:38Z' updated: '2022-02-06T09:00:11Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: sumant86 logo: https://avatars.githubusercontent.com/u/3600265?v=4 repoEtag: '"87a2060b2355ddff536d95e6f3e7e819287a3065cdba2678bed8e66967daad50"' repoLastModified: Sun, 06 Feb 2022 09:00:11 GMT foundInMaster: true category: Server Implementations id: 1eae6eee2c342724345c837c65b692e2 - source: openapi3 tags repository: https://github.com/mtkhawaja/spring-boot-3-openapi-archetype v3: true id: a0cf3aea3870ae92510ec88f50ce5008 repositoryMetadata: base64Readme: >- IyBzcHJpbmctYm9vdC0zLW9wZW5hcGktYXJjaGV0eXBlCgpNYXZlbiBBcmNoZXR5cGUgZm9yIGdlbmVyYXRpbmcgYmFzaWMgSmF2YSAxNyBTcHJpbmcgQm9vdCAzIHByb2plY3RzIHdpdGggT3BlbkFQSSBzdXBwb3J0LgoKIyMgR2V0dGluZyBTdGFydGVkCgohW0phdmEgMTddKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvamF2YS0xNy1vcmFuZ2UpCgojIyMgQnVpbGQKCmBgYGJhc2gKIyEvdXNyL2Jpbi9lbnYgYmFzaAouL212bncgY2xlYW4gaW5zdGFsbApgYGAKCiMjIyBVc2FnZQoKYGBgYmFzaAojIS91c3IvYmluL2VudiBiYXNoCgptdm4gYXJjaGV0eXBlOmdlbmVyYXRlIFwKICAtRGFyY2hldHlwZUdyb3VwSWQ9ImNvbS5tdW5lZWJraGF3YWphIiBcCiAgLURhcmNoZXR5cGVBcnRpZmFjdElkPSJzcHJpbmctYm9vdC0zLW9wZW5hcGktYXJjaGV0eXBlIiBcCiAgLURhcmNoZXR5cGVWZXJzaW9uPSIxLjAuMCIgXAogIC1EZ3JvdXBJZD0iY29tLmV4YW1wbGUiIFwKICAtRGFydGlmYWN0SWQ9ImFwaSIgXAogIC1EcGFja2FnZT0iY29tLmV4YW1wbGUuYXBpIiBcCiAgLUR2ZXJzaW9uPSIwLjAuMS1TTkFQU0hPVCIgXAogIC1CCgpgYGAKCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGRvY2tlciBhbmQgdm9sdW1lIGJpbmRpbmcgdG8gZ2VuZXJhdGUgdGhlIHByb2plY3Q6CgpgYGBiYXNoCiMhL3Vzci9iaW4vZW52IGJhc2gKCmRvY2tlciBidWlsZCAtdCBtdGtoYXdhamEvc3ByaW5nLWJvb3QtMy1vcGVuYXBpLWFyY2hldHlwZTpsYXRlc3QgLgpkb2NrZXIgcnVuIFwKICAtdiAuLzovb3B0L2FwcGxpY2F0aW9uL2dlbmVyYXRlZCBcCiAgLWUgR0VORVJBVEVEX0dST1VQX0lEPSJjb20uZXhhbXBsZSIgXAogIC1lIEdFTkVSQVRFRF9BUlRJRkFDVF9JRD0iYXBpIiBcCiAgLWUgR0VORVJBVEVEX1BBQ0tBR0U9ImNvbS5leGFtcGxlLmFwaSIgXAogIC1lIEdFTkVSQVRFRF9WRVJTSU9OPSIwLjAuMS1TTkFQU0hPVCIgXAogIG10a2hhd2FqYS9zcHJpbmctYm9vdC0zLW9wZW5hcGktYXJjaGV0eXBlOmxhdGVzdAoKYGBgCgpUaGlzIHdpbGwgZ2VuZXJhdGUgYSBwcm9qZWN0IHdpdGggdGhlIGZvbGxvd2luZyBkaXJlY3Rvcnkgc3RydWN0dXJlOgoKYGBgYmFzaAojIS91c3IvYmluL2VudiBiYXNoCgp0cmVlIC1hIC4vYXBpCmBgYAoKYGBgcGxhaW50ZXh0Ci4vYXBpLwrilJzilIDilIAgLmdpdGlnbm9yZQrilJzilIDilIAgLm12bgrilIIgICDilJTilIDilIAgd3JhcHBlcgrilIIgICAgICAg4pSU4pSA4pSAIG1hdmVuLXdyYXBwZXIucHJvcGVydGllcwrilJzilIDilIAgRG9ja2VyZmlsZQrilJzilIDilIAgTElDRU5TRQrilJzilIDilIAgUkVBRE1FLm1kCuKUnOKUgOKUgCBkb2NrZXItY29tcG9zZS55YW1sCuKUnOKUgOKUgCBtdm53CuKUnOKUgOKUgCBtdm53LmNtZArilJzilIDilIAgcG9tLnhtbArilJTilIDilIAgc3JjCiAgICDilJzilIDilIAgbWFpbgogICAg4pSCICAg4pSc4pSA4pSAIGphdmEKICAgIOKUgiAgIOKUgiAgIOKUlOKUgOKUgCBjb20KICAgIOKUgiAgIOKUgiAgICAgICDilJTilIDilIAgZXhhbXBsZQogICAg4pSCICAg4pSCICAgICAgICAgICDilJTilIDilIAgYXBpCiAgICDilIIgICDilIIgICAgICAgICAgICAgICDilJzilIDilIAgQXBwbGljYXRpb24uamF2YQogICAg4pSCICAg4pSCICAgICAgICAgICAgICAg4pSU4pSA4pSAIEV4YW1wbGVDb250cm9sbGVyLmphdmEKICAgIOKUgiAgIOKUlOKUgOKUgCByZXNvdXJjZXMKICAgIOKUgiAgICAgICDilJzilIDilIAgYXBwbGljYXRpb24ueWFtbAogICAg4pSCICAgICAgIOKUnOKUgOKUgCBsb2diYWNrLnhtbAogICAg4pSCICAgICAgIOKUlOKUgOKUgCBzd2FnZ2VyLnlhbWwKICAgIOKUlOKUgOKUgCB0ZXN0CiAgICAgICAg4pSU4pSA4pSAIGphdmEKICAgICAgICAgICAg4pSU4pSA4pSAIGNvbQogICAgICAgICAgICAgICAg4pSU4pSA4pSAIGV4YW1wbGUKICAgICAgICAgICAgICAgICAgICDilJTilIDilIAgYXBpCiAgICAgICAgICAgICAgICAgICAgICAgIOKUnOKUgOKUgCBBcHBsaWNhdGlvblNtb2tlVGVzdC5qYXZhCiAgICAgICAgICAgICAgICAgICAgICAgIOKUlOKUgOKUgCBFeGFtcGxlQ29udHJvbGxlclRlc3QuamF2YQpgYGAKCiMjIExpY2Vuc2UKCltBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMF0oLi9MSUNFTlNFKQ== readmeEtag: '"a662790df6529dfde16e7703612ff5241c810ccc"' readmeLastModified: Wed, 14 Jun 2023 03:20:06 GMT repositoryId: 649925362 description: >- Maven Archetype for generating Spring Boot 3 projects with OpenAPI support. created: '2023-06-06T00:19:12Z' updated: '2024-03-11T10:37:33Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: mtkhawaja logo: https://avatars.githubusercontent.com/u/36654508?v=4 license: Apache-2.0 repoEtag: '"10a8bf264a35d8e63def6d50fe184968b62a58bc02b78969a8a4df5f63483a69"' repoLastModified: Mon, 11 Mar 2024 10:37:33 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/calebtracey/rugby-crawler-api v3: true id: 2fba72e912abd94c76e3860abaa6215b repositoryMetadata: base64Readme: >- IyBydWdieS1jcmF3bGVyLWFwaQoKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL0NhbGViVHJhY2V5L3J1Z2J5LWNyYXdsZXItYXBpL2JyYW5jaC9tYWluL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj04S08xWVQzQ09NKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL0NhbGViVHJhY2V5L3J1Z2J5LWNyYXdsZXItYXBpKQoKIyMjIEdvIFJFU1QgQVBJIGZvciBzY3JhcGluZyBydWdieSBzdGF0cwojIyMgW1N3YWdnZXIgRG9jc10oaHR0cHM6Ly9jYWxlYnRyYWNleS5naXRodWIuaW8vcnVnYnktY3Jhd2xlci1hcGkvc3dhZ2dlci11aS8pCi0tLQoKW3J1Z2J5LW1vZGVsc10oaHR0cHM6Ly9naXRodWIuY29tL0NhbGViVHJhY2V5L3J1Z2J5LW1vZGVscykgdXNlZCBmb3IgY29tbW9uIGRhdGEgdHlwZXMKCltjb25maWcteWFtbF0oaHR0cHM6Ly9naXRodWIuY29tL0NhbGViVHJhY2V5L2NvbmZpZy15YW1sKSB1c2VkIGZvciBlbnZpcm9ubWVudCBjb25maWdzIGFuZCBzZXJ2aWNlL2RiIGluaXRpYWxpemF0aW9uCgoqKkJhc2ljIHNldHVwKioKMS4gQ3JlYXRlIGEgbG9jYWwgUG9zdGdyZXMgZGF0YWJhc2UgYW5kIHVwZGF0ZSB0aGUgY29uZmlnLnlhbWwgZmlsZSB3aXRoIHRoZSBkZXRhaWxzCjIuIFVwZGF0ZSBnby5tb2QgYW5kIGZpbGUgaW1wb3J0cyB3aXRoIHlvdXIgcmVwbyBuYW1lCjMuIFJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIHRvIHVwZGF0ZSBkZXBlbmRlbmNpZXM6CgogICBgZ28gZ2V0IC11IC4vLi4uYAoKICAgIGBnbyBtb2QgdGlkeWAKNC4gTWFrZSBhIHJ1biBjb25maWd1cmF0aW9uIGFzIHNlZW4gYmVsb3cgd2l0aCB5b3VyIHJlcG8gbmFtZToKCiFbUnVuIENvbmZpZ10oLi9pbWFnZXMvcnVuLWNvbmZpZy5wbmcpCgojIyMjIE5vdyB5b3UgY2FuIHN0YXJ0IHRoZSBBUEkgYW5kIGFjY2VzcyBodHRwOi8vbG9jYWxob3N0OjYwODAvc3dhZ2dlci11aS8gZm9yIHN3YWdnZXIgZG9jdW1lbnRhdGlvbiBhbmQgdGVzdGluZwo= readmeEtag: '"a537cddfbc77d2c961e0f8b1ab325ad877520676"' readmeLastModified: Fri, 09 Dec 2022 00:27:00 GMT repositoryId: 570243924 description: Go API for scraping and storing rugby stats created: '2022-11-24T17:17:01Z' updated: '2022-11-25T05:42:19Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: CalebTracey logo: https://avatars.githubusercontent.com/u/59851860?v=4 repoEtag: '"591d22645d8a540376683d8673849fa7a4b4fe430fe5572778badeedc97d79b7"' repoLastModified: Fri, 25 Nov 2022 05:42:19 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mukul273/springboot-react v3: true repositoryMetadata: base64Readme: >- IyBzcHJpbmdib290LXJlYWN0ClNwcmluZyBib290IHdpdGggUmVhY3RKcyBmdWxsIHN0YWNrCgpUaGlzIHByb2plY3QgdXNlcyBTcHJpbmcgYm9vdCAyLjMuNiwgUmVhY3RKcywgTXlTcWwsIFNwcmluZyBEYXRhIEpQQSwgSmF2YSA4LCBsb21ib2sgZXRjLgoKVGhpcyBpcyBFbXBsb3llZSBhZGQsIFVwZGF0ZSwgZGVsZXRlIGFuZCByZWFkIChDUlVEKSBVc2UgY2FzZSBhcHBsaWNhdGlvbiAKClRoaXMgYXBwbGljYXRpb24gaGFzIGJlZW4gdXBkYXRlZCB3aXRoIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gIApHbyB0byAqIFtMb2NhbEhvc3QgT3BlbkFQSV0oaHR0cDovL2xvY2FsaG9zdDo4MDgxL3YzL2FwaS1kb2NzKSAqKiBQbGVhc2UgY2hhbmdlIHlvdXIgcG9ydCAgICAKClRPIGNoYW5nZSB0aGUgQVBJIGRvYyBVUkwgYWJvdmUKUGxlYXNlIHJlZmVyIHRvIHRoZSBhcHBsaWNhdGlvbi5wcm9wZXJ0aWVzIGZpbGUKTG9vayBmb3Igc3ByaW5nZG9jLmFwaS1kb2NzLnBhdGggcGFyYW0gYW5kIGNvbmZpZ3VyZSB5b3VyIHZhbHVlCioqIFBsZWFzZSByZW1lbWJlciB0aGF0IG9uY2UgeW91IGN1c3RvbWl6ZSB0aGUgQVBJIHVybCB0aGVuIHRoZSBkZWZhdWx0IHYzL2FwaS1kb2NzIHdpbGwgIApub3Qgd29yay4KCioqIFBsZWFzZSBhcHBlbmQgLnlhbWwgdG8gdGhlIE9wZW5BUEkgdG8gZG93bmxvYWQgdGhlIEFQSSBzcGVjaWZpY2F0aW9uIGZpbGUsCgpTd2FnZ2VyIGRvY3VtZW50YXRpb24gaXMgc3RpbGwgYXZhaWxhYmxlCkdvIHRvICogW0xvY2FsSG9zdCBTd2FnZ2VyRG9jXShodHRwOi8vbG9jYWxob3N0OjgwODEvc3dhZ2dlci11aS5odG1sKSAqKiBQbGVhc2UgY2hhbmdlIHlvdXIgcG9ydCAKUGxlYXNlIHNwZWNpZnkgL2VtcGxveWVlLWFwaSBpbiB0aGUgZXhwbG9yZSBzZWFyY2gKCgo= readmeEtag: '"1a41b889454036a875abef2b8194c293915552ae"' readmeLastModified: Tue, 01 Dec 2020 16:23:42 GMT repositoryId: 315981861 description: Spring boot with ReactJs full stack created: '2020-11-25T15:35:50Z' updated: '2020-12-01T17:05:49Z' language: Java archived: false stars: 0 watchers: 3 forks: 0 owner: mukul273 logo: https://avatars.githubusercontent.com/u/5340977?v=4 repoEtag: '"644b45621bc2ec085408f88ad3252c49a94c48f63a1de5f96ca076a267b2dbe4"' repoLastModified: Tue, 01 Dec 2020 17:05:49 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: 7e6beb62a5584cefa8c1563cd30bd3e9 - source: openapi3 tags repository: https://github.com/camptocamp/geoserver-rest-openapi v3: true repositoryMetadata: base64Readme: >- IyBHZW9TZXJ2ZXIgSmF2YSBSRVNUIGNsaWVudAoKIyMgUnVuIGludGVncmF0aW9uIHRlc3RzOgoKYGBgCm12biB2ZXJpZnkgLVBkb2NrZXIKYGBgCgpXaWxsIGZpcmUgdXAgdGhlIGdlb3NlcnZlciBkb2NrZXIgY29udGFpbmVyIGF0IHByZS1pbnRlZ3JhdGlvbi10ZXN0cywgcnVuIHRoZSB0ZXN0cyBhdAppbnRlZ3JhdGlvbi10ZXN0LCBhbmQgc2h1dCB0aGUgY29udGFpbmVyIGRvd24gYXQgcG9zdC1pbnRlZ3JhdGlvbi10ZXN0cy4KCiMjIFJ1biBmcm9tIElERToKCkhhdmUgdGhlIEdlb1NlcnZlciBkb2NrZXIgY29udGFpbmVyIHJ1bm5pbmcgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdHMgZnJvbSB0aGUgSURFOgoKYGBgCmRvY2tlciBydW4gLWl0IC0tcm0gLS1uYW1lIGdzdGVzdHMgLXA4MDgwOjgwODAgb3NjYXJmb250cy9nZW9zZXJ2ZXI6Mi4xNS40CmBgYAoKUGFzcyB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSB0ZXN0IHJ1biBjb25maWd1cmF0aW9uIG9uIHRoZSBJREU6CgpgYGAKLURnZW9zZXJ2ZXJfYXBpX3VybD1odHRwOi8vbG9jYWxob3N0OjgwODAvZ2Vvc2VydmVyL3Jlc3QKYGBgCgo= readmeEtag: '"152af872e3611bddd0e7b7a6478a499726385d23"' readmeLastModified: Thu, 18 Feb 2021 01:33:52 GMT repositoryId: 335228268 description: >- GeoServer REST client based on curated OpenAPI 3 document, using openapi-codegen to generate the client, and customized code to simplify it. created: '2021-02-02T09:03:44Z' updated: '2021-02-18T01:36:05Z' language: Java archived: false stars: 0 watchers: 24 forks: 4 owner: camptocamp logo: https://avatars.githubusercontent.com/u/28109?v=4 repoEtag: '"fc332e20752d5c3594c8a4268fb26bf4f893aa4116a9388b6446efcd15506663"' repoLastModified: Thu, 18 Feb 2021 01:36:05 GMT foundInMaster: true category: - Code Generators - Server Implementations id: f1ffebfb85dc3b1b4b7d576a63d13259 - source: openapi3 tags repository: https://github.com/akscodebay/announcement-api v3: true repositoryMetadata: base64Readme: >- IyBhbm5vbm5jZW1lbnQtYXBpCkFubm91bmNlbWVudCBBUEkgZm9yIHN0b3JpbmcgYW5kIHJldHJpZXZpbmcgYW5ub3VuY2VtZW50cy4gRGVwbG95YWJsZSBvbiBBV1MuCg== readmeEtag: '"6e97fad2f453b945a07f178371fcd07bd01dbce5"' readmeLastModified: Thu, 10 Dec 2020 16:57:56 GMT repositoryId: 320334399 description: >- Announcement API for storing and retrieving announcements. Deployable on AWS. created: '2020-12-10T16:53:08Z' updated: '2020-12-10T17:00:13Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: akscodebay logo: https://avatars.githubusercontent.com/u/35652014?v=4 repoEtag: '"0fdec6731d3d9e960786b835a190a40cccab3066b2945748c7b0bc1f3b8c3bd5"' repoLastModified: Thu, 10 Dec 2020 17:00:13 GMT foundInMaster: true category: - Server - Server Implementations id: d10619272f684cdb44d5b014ce5092dd - source: openapi3 tags repository: https://github.com/pexmor/demo-openapi3 v3: true repositoryMetadata: base64Readme: >- IyBkZW1vLW9wZW5hcGkzCgpDb25jZXB0dWFsIGRlbW8gb2Ygc2ltcGxlIG9wZW5hcGkzIHVzaW5nIGNvbm5leGlvbiBmb3IgcXVpY2sgcHJvdG90eXBpbmcuCgoqIFtBUEkgYXQgZ2xhbmNlXShodHRwczovL3BleG1vci5naXRodWIuaW8vZGVtby1vcGVuYXBpMy9lbGVtZW50cy5odG1sKQoqIFtHaXRodWIgcGFnZXNdKGh0dHBzOi8vcGV4bW9yLmdpdGh1Yi5pby9kZW1vLW9wZW5hcGkzLykKCiMjIEN1cmwgdGVzdHMKCl9fSlNPTl9fCgpgYGBiYXNoCmN1cmwgLVggJ1BPU1QnIFwKICAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL3YxL2pzb24vdXNlcl8wMDclNDBleGFtcGxlLmNvbScgXAogIC1IICdhY2NlcHQ6ICovKicgXAogIC1IICdYLUF1dGg6IGFiY2QnIFwKICAtSCAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyBcCiAgLWQgJ3sKICAiZGF0YSI6ICJJeUV2WW1sdUwySmhjMmdLQ2taTVFWTkxYMFJGUWxWSFBURWdURTlIVEVWV1JVdzlSRVZDVlVjZ2NIbDBhRzl1TXlCaGNHbFRjbll1Y0hrSyIsCiAgImhhc2giOiAiY2U5NGE5ZTg1NWNkYWEwNGQ5NWRhMTkzNjExMjM2YjZhZGVjMTYyNTY4NjU2NjJhM2QyMTA1ODU4YjAwZmI0MiIsCiAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICJ2YXJzIjogewogICAgImluZnJhIjogIm9uZSIsCiAgICAiaXB2NCI6IFsKICAgICAgIjEuMi4zLjQvMzIiCiAgICBdLAogICAgInNzaF9wdWJfa2V5IjogWwogICAgICAic3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCZ1FETC4uLj0geW91ci1pZCIsCiAgICAgICJzc2gtcnNhIEFBQUFCM056YUMxeWMyRUFBQUFEQVFBQkFBQUJnUURMLi4uPSB5b3VyLWlkMiIKICAgIF0KICB9Cn0nCmBgYAoKX19NdWx0aXBhcnQgZm9ybV9fCgpgYGBiYXNoCmN1cmwgLVggJ1BPU1QnIFwKICAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL3YxL211bHRpcGFydC91c2VyXzAwNyU0MGV4YW1wbGUuY29tJyBcCiAgLUggJ2FjY2VwdDogKi8qJyBcCiAgLUggJ1gtQXV0aDogYWJjZCcgXAogIC1IICdDb250ZW50LVR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGEnIFwKICAtRiAnZGF0YT1ATElDRU5TRTt0eXBlPXRleHQvcGxhaW4nIFwKICAtRiAnaGFzaD1jZTk0YTllODU1Y2RhYTA0ZDk1ZGExOTM2MTEyMzZiNmFkZWMxNjI1Njg2NTY2MmEzZDIxMDU4NThiMDBmYjQyJyBcCiAgLUYgJ2hhc2hfdHlwZT1zaGEyNTYnIFwKICAtRiAndmFycz17CiAgImluZnJhIjogIm9uZSIsCiAgImlwdjQiOiBbCiAgICAiMS4yLjMuNC8zMiIKICBdLAogICJzc2hfcHViX2tleSI6IFsKICAgICJzc2gtcnNhIEFBQUFCM056YUMxeWMyRUFBQUFEQVFBQkFBQUJnUURMLi4uPSB5b3VyLWlkIiwKICAgICJzc2gtcnNhIEFBQUFCM056YUMxeWMyRUFBQUFEQVFBQkFBQUJnUURMLi4uPSB5b3VyLWlkMiIKICBdCn0nCmBgYAo= readmeEtag: '"0d3c55869a0f236707e216f4567b0f34e0c8f512"' readmeLastModified: Tue, 26 Oct 2021 08:51:16 GMT repositoryId: 421329326 description: Conceptual demo of simple openapi3 using connexion for quick prototyping. created: '2021-10-26T07:45:44Z' updated: '2021-10-26T08:51:22Z' language: Python archived: false stars: 0 watchers: 2 forks: 0 owner: PexMor logo: https://avatars.githubusercontent.com/u/9293161?v=4 license: MIT repoEtag: '"ff811f1f718bb9183ba971b95640371912752da0579b9ddfc66f4ab8bd1bf6bf"' repoLastModified: Tue, 26 Oct 2021 08:51:22 GMT foundInMaster: true category: Data Validators id: eabb62135bdb48adc356243dae621cd9 - source: openapi3 tags repository: https://github.com/txemac/intelistyle v3: true repositoryMetadata: base64Readme: >- IyBpbnRlbGlzdHlsZSB0YXNrOgpZb3VyIHRhc2sgaXMgdG8gYnVpbGQgYSAoc2luZ2xlIHBhZ2UpIHdlYnNpdGUgdGhhdCBJIGNhbiBzZWFyY2ggZm9yIGEgZ2FybWVudCAoZS5nLiBibGFjayBoYXQpIGFuZCBpdCBzaG91bGQgZGlzcGxheSB0aGUgZ2FybWVudHMgdGhhdCBtYXRjaCB0aGUgc2VhcmNoIGNyaXRlcmlhLgoKIyMgVGhlIHNvbHV0aW9uOgpUaGUgd2Vic2l0ZSBzaG91bGQgbG9hZCBnYXJtZW50cyBmcm9tIGEgTW9uZ29EQiBkYXRhYmFzZS4gWW91IGNhbiBsb2FkIGRhdGEgaW50byB5b3VyIGRhdGFiYXNlIGZyb20gdGhpcyBmaWxlOgoKaHR0cHM6Ly9zdHlsci1haS1lbmdpbmUtc3J2LWRhdGEuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vL3Nydi9kYXRhL25ld19zY3JhcGVzL3Nob3BzdHlsZS0xNjg5LW1lbi0xOC0wMy0yMDE5L2dhcm1lbnRfaXRlbXMuamwKCllvdSBoYXZlIHRoZSBmcmVlZG9tIHRvIHVzZSBhbnkgYnVpbGQgdG9vbGNoYWluIG9yIGhlbHBlciBsaWJyYXJpZXMgbmVjZXNzYXJ5LCBidXQgeW91IG11c3Qgc3RpY2sgdG8gb3VyIGNvcmUgdGVjaG5vbG9naWVzIG9mIFJlYWN0SlMgZm9yIHRoZSBmcm9udGVuZCBhbmQgTm9kZUpTIG9yIFB5dGhvbiBmb3IgdGhlIGJhY2tlbmQuCgpBcyBwYXJ0IG9mIHRoZSBkZWxpdmVyYWJsZSwgdGhlcmUgc2hvdWxkIGJlIGF1dG9tYXRlZCB0ZXN0cyBmb3IgYWxsIHRoZSBwb3NzaWJsZSB1c2UgY2FzZXMgb2YgdGhlIHRhc2suCgojIyBTdWNjZXNzIENyaXRlcmlhOgotIEFwcGxpY2F0aW9uIGFyY2hpdGVjdHVyZSBhbmQgZnJhbWV3b3JrIGJlc3QgcHJhY3RpY2VzIGZvciB0aGUgZnJhbWV3b3JrIGluIHVzZSBhcmUgZm9sbG93ZWQgYW5kIHVuZGVyc3Rvb2QuCi0gQ29kZSBpcyBmb3JtYXR0ZWQgd2VsbCBhbmQgZWFzeSB0byBmb2xsb3cuIFZhcmlhYmxlIGFuZCBmdW5jdGlvbiBuYW1lcyBtYWtlIHNlbnNlCi0gQXBwbGljYXRpb24gZ3JhY2VmdWxseSBoYW5kbGVzIGRhdGFiYXNlIGVycm9yIGNhc2VzIGFuZCBpcyByZXNpc3RhbnQgdG8gdW5leHBlY3RlZCBtZXNzYWdlcy4KLSBEYXRhYmFzZSBxdWVyaWVzIGFyZSBvcHRpbWlzZWQgZm9yIHBlcmZvcm1hbmNlCi0gVGVzdCBjb3ZlcmFnZSBvZiB0aGUgd2ViIHBhZ2UgaXMgc3VmZmljaWVudCBhbmQgdGhvdWdodCBoYXMgYmVlbiBwdXQgaW50byB3aGF0IGFyZWFzIG9mIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYW5kCiAgc2hvdWxkbuKAmXQgYmUgdGVzdGVkLgoKIyMgQm9udXMgUG9pbnRzIChvcHRpb25hbCk6CgotIERlc2lnbiBhbiBpbmZyYXN0cnVjdHVyZSBhcmNoaXRlY3R1cmUgZGlhZ3JhbSB0aGF0IGNhbiBiZSB1c2VkIHRvIHNjYWxlIHRoZSB3ZWJzaXRlIHRvIHRob3VzYW5kcyBvZiBzZWFyY2hlcyBwZXIKICBzZWNvbmQKCiMjIFN1Ym1pc3Npb24gUmVxdWlyZW1lbnRzOgoKLSBTZW5kIGFuIGVtYWlsIHRvIHlvdXIgcmVjcnVpdGVyIHdpdGggYSBsaW5rIHRvIGEgcHVibGljIGdpdCByZXBvc2l0b3J5IChpbiBHaXRIdWIvQml0QnVja2V0L0dpdExhYiwgZXRjKSB3aXRoIHRoZQogIG5hbWUgW2ZpcnN0bmFtZV0tW3N1Ym1pc3Npb24gZGF0ZV0uCi0gUHJvdmlkZSBhIGxpbmsgdG8gYSBob3N0ZWQgdmVyc2lvbiBvZiB0aGUgcHJvamVjdAotIFlvdSB3aWxsIGJlIGFza2VkIHRvIHNjcmVlbiBzaGFyZSBhbmQgd2FsayB0aHJvdWdoIHRoaXMgYXBwICYgY29kZSBpbiB5b3VyIG5leHQgaW50ZXJ2aWV3LCBwbGVhc2UgaGF2ZSBpdCByZWFkeSB0byBiZQogIHJ1biBwcmlvciB0byB0aGUgaW50ZXJ2aWV3LgoKIyMgUnVuCgpTZXQgZW52aXJvbm1lbnQgdmFyaWFibGU6CgpgYGBzaGVsbCBzY3JpcHQKZXhwb3J0IE1PTkdPREJfVVJMPTxtb25nbyBkYiBVUkw+CmV4cG9ydCBNT05HT0RCX0RCX05BTUU9PG1vbmdvIGRiIGRhdGFiYXNlIG5hbWU+CmV4cG9ydCBNT05HT0RCX0NPTExFQ1RJT049Pm1vbmdvIGRiIGNvbGxlY3Rpb24+CmBgYAoKIyMjIFRlcm1pbmFsIHdpdGggdmlydHVhbCBlbnYKCklmIHlvdSB3YW50IHRvIHJ1biB0aGUgYXBwIGluIGEgdGVybWluYWwsIHdyaXRlOgoKYGBgc2hlbGwgc2NyaXB0CmNkIHNyYwp1dmljb3JuIG1haW46YXBwIC0tcmVsb2FkIC0td29ya2VycyAxIC0taG9zdCAwLjAuMC4wIC0tcG9ydCA4MDAwCmBgYAoKVGVzdDoKCmBgYHNoZWxsIHNjcmlwdApweXRlc3QgLXZ2dgpgYGAKCiMjIyBEb2NrZXIKClJ1bjoKCmBgYHNoZWxsIHNjcmlwdAptYWtlIHJ1bgpgYGAKClN0b3A6CgpgYGBzaGVsbCBzY3JpcHQKbWFrZSBzdG9wCmBgYAoKQ2hlY2sgdGhlIEFQSSB3aXRoIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9oZWFsdGgKCiMjIERvY3VtZW50YXRpb24KCmh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9kb2NzCg== readmeEtag: '"902d7b76650334d75ed4c6a4ac7e0dd7a7d05049"' readmeLastModified: Thu, 14 Jul 2022 09:09:38 GMT repositoryId: 423989830 description: FastAPI, mongoDB, docker, docker-compose, API created: '2021-11-02T20:30:18Z' updated: '2021-12-09T12:02:03Z' language: Python archived: false stars: 0 watchers: 2 forks: 0 owner: txemac logo: https://avatars.githubusercontent.com/u/10089585?v=4 license: GPL-3.0 repoEtag: '"d531353d5e76af9b0e2b5d3c151814c9c39a404ef47336170669113df95deaa4"' repoLastModified: Thu, 09 Dec 2021 12:02:03 GMT foundInMaster: true category: Server Implementations id: 7cf19b0c1288631db49c5a9670fe1f64 - source: openapi3 tags repository: https://github.com/mdmuradhossain/modern-ecommerce v3: true repositoryMetadata: base64Readme: >- IyBNb2Rlcm4gRWNvbW1lcmNlCgojIyBNb2Rlcm4gRWNvbW1lcmNlIFdlYiBBcHBsaWNhdGlvbgotLS0KIyMjIFRlY2hub2xvZ3kgYW5kIFRvb2xzIFVzZWQKLSBbSkRLIDE1XShodHRwczovL3d3dy5vcmFjbGUuY29tL2phdmEvdGVjaG5vbG9naWVzL2phdmFzZS9qZGsxNS1hcmNoaXZlLWRvd25sb2Fkcy5odG1sKQotIFtTcHJpbmcgQm9vdCAtIDIuNS40XShodHRwczovL3NwcmluZy5pby9wcm9qZWN0cy9zcHJpbmctYm9vdCkKLSBbU3ByaW5nIEJvb3QgRGF0YSBKUEFdKGh0dHBzOi8vc3ByaW5nLmlvL3Byb2plY3RzL3NwcmluZy1kYXRhLWpwYSkKLSBbU3ByaW5nIFNlY3VyaXR5XShodHRwczovL3NwcmluZy5pby9wcm9qZWN0cy9zcHJpbmctc2VjdXJpdHkpCi0gW1RoeW1lbGVhZl0oaHR0cHM6Ly93d3cudGh5bWVsZWFmLm9yZy8pCi0gW0phdmEgTWFpbCBTZW5kZXJdKGh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWZyYW1ld29yay9kb2NzL2N1cnJlbnQvamF2YWRvYy1hcGkvb3JnL3NwcmluZ2ZyYW1ld29yay9tYWlsL2phdmFtYWlsL0phdmFNYWlsU2VuZGVyLmh0bWwpCi0gW015U1FMIDhdKGh0dHBzOi8vd3d3Lm15c3FsLmNvbS8pCi0gW0xvbWJva10oaHR0cHM6Ly9wcm9qZWN0bG9tYm9rLm9yZy8pCi0gW01hcHN0cnVjdF0oaHR0cHM6Ly9tYXBzdHJ1Y3Qub3JnLykKLSBbSldUXShodHRwczovL2dpdGh1Yi5jb20vand0ay9qand0KQotIFtTdHJpcGVdKGh0dHBzOi8vc3RyaXBlLmNvbS9kb2NzKQotIFtGbHl3YXldKGh0dHBzOi8vZmx5d2F5ZGIub3JnLykKLSBbU3ByaW5nIEJvb3QgQ2FjaGVdKGh0dHBzOi8vc3ByaW5nLmlvL2d1aWRlcy9ncy9jYWNoaW5nLykgIAotIFtPcGVuQVBJIDNdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykKLS0tCiMjIyBJbnN0YWxsYXRpb24KLSBgbXZuIGNsZWFuIGluc3RhbGxgCi0gYG12biBzcHJpbmctYm9vdDpydW5gCi0tLQojIyMgRmVhdHVyZXMKLSBbeF0gU2lnbiBVcCBhbmQgU2lnbiBJbiBTeXN0ZW0gCi0gW3hdIEFkbWluIGFuZCBVc2VyIHN5c3RlbQotIFt4XSBBZGQgQWRtaW4gYW5kIFJvbGUgYW5kIFByaXZpbGVnZQotIFt4XSBNYW5hZ2UgUHJvZHVjdHMgZnJvbSBBZG1pbgotIFt4XSBNYW5hZ2UgQ2F0ZWdvcnkgZnJvbSBBZG1pbgotIFt4XSBNYW5hZ2UgU3ViQ2F0ZWdvcnkgZnJvbSBBZG1pbgotIFt4XSBNYW5hZ2UgQnJhbmQgZnJvbSBBZG1pbgotIFt4XSBNYW5hZ2UgT3JkZXJzCi0gW3hdIE1hbmFnZSBDYXJ0cwotIFt4XSBNYW5hZ2UgT3JkZXIgSXRlbQotIFt4XSBTdHJpcGUgUGF5bWVudCBTeXN0ZW0KCi0tLQoKIyMjIFN3YWdnZXIgVUkKIVtBUElzXShodHRwczovL2dpdGh1Yi5jb20vbWRtdXJhZGhvc3NhaW4vbW9kZXJuLWVjb21tZXJjZS9ibG9iL21haW4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9pbWFnZXMvc3dhZ2dlci11aS11cGRhdGUucG5nKQotLS0KIyMjIFBvc3RtYW4gQVBJIFRlc3RpbmcKIVtQb3N0bWFuIHRlc3RpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9tZG11cmFkaG9zc2Fpbi9tb2Rlcm4tZWNvbW1lcmNlL2Jsb2IvbWFpbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2ltYWdlcy9hdXRocmVzcG9uc2UucG5nKQoKLS0tCiMjIyBDb250cmlidXRlCj4gVGhpcyBpcyBvcGVuIHNvdXJjZSBNb2Rlcm4gRWNvbW1lcmNlIHdlYiBhcHBsaWNhdGlvbiwgYW55IGtpbmQgY29udHJpYnV0aW9uIGlzIHdlbGNvbWUuIEkgZGlkbid0IHRlc3QgdGhlIGFwcGxpY2F0aW9uIHlldC4gQ29udHJpYnV0aW9uIG9mIHRlc3RpbmcgY2FuIGJlIGRvbmUgd2l0aCBKdW5pdCBhbmQgTW9ja2l0by4gVGhhbmsgeW91Lg== readmeEtag: '"379b6aeb43530f4868458b9dac091b8cb30da61c"' readmeLastModified: Tue, 21 Dec 2021 15:45:01 GMT repositoryId: 398491331 description: Modern E-commerce Web Application created: '2021-08-21T07:07:38Z' updated: '2023-02-17T08:31:51Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: mdmuradhossain logo: https://avatars.githubusercontent.com/u/20659502?v=4 repoEtag: '"bb3384a0ce0e7eaf0ce0e805f158d99e95a8500a792961eda4d64aa2c8b0fe6c"' repoLastModified: Fri, 17 Feb 2023 08:31:51 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: d448d1c32de34d2cdac394afc2b94c90 - source: openapi3 tags repository: https://github.com/umatare5/logbook-api-router-impl v3: true repositoryMetadata: base64Readme: >- IyBsb2dib29rLWFwaS1yb3V0ZXItaW1wbAoKKipETyBOT1QgRURJVCBUSElTIENPREUgTUFOVUFMTFkhKioKCmxvZ2Jvb2stYXBpLWZyYW1ld29yay1pbXBsIGlzIEdvIGltcGxlbWVudGF0aW9uIGZvciBbTG9nYm9vayBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS91bWF0YXJlNS9sb2dib29rLWFwaSkuCgpUaGUgY29kZSB3YXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgdXNpbmcgW2xvZ2Jvb2stb3BlbmFwaS1zcmNdKGh0dHBzOi8vZ2l0aHViLmNvbS91bWF0YXJlNS9sb2dib29rLW9wZW5hcGktc3JjKS4KCiMjIFVzYWdlCgpgYGBzaApnbyBnZXQgZ2l0aHViLmNvbS91bWF0YXJlNS9sb2dib29rLWFwaS1yb3V0ZXItaW1wbApgYGAK readmeEtag: '"9f238625480e32825ba8316c2b7e296a8541dcb2"' readmeLastModified: Wed, 26 Jan 2022 17:19:41 GMT repositoryId: 449646146 description: Implementation for routes in my Logbook API created: '2022-01-19T10:29:45Z' updated: '2022-02-15T13:53:41Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: umatare5 logo: https://avatars.githubusercontent.com/u/72645163?v=4 repoEtag: '"fc1196ccd1377f9f5a89d9605d2e8ae8ce31568388b35a6aa6e5ca758e998f87"' repoLastModified: Tue, 15 Feb 2022 13:53:41 GMT foundInMaster: true category: Code Generators id: 599d3436d37e07d48888ad50b21f2473 - source: https://openapi.tools/ name: EvoMaster category: Testing language: - Java - Kotlin repository: https://github.com/webfuzzing/evomaster source_description: >- A tool for automatically generating system-level test cases for RESTful APIs, using Evolutionary Algorithms and Dynamic Program Analysis. v2: true v3: true repositoryMetadata: base64Readme: >- IyBFdm9NYXN0ZXI6IEEgVG9vbCBGb3IgQXV0b21hdGljYWxseSBHZW5lcmF0aW5nIFN5c3RlbS1MZXZlbCBUZXN0IENhc2VzCgoKIVtdKGRvY3MvaW1nL2NhcmwtY2Vyc3RyYW5kLTEzNjgxMF9jb21wcmVzc2VkLmpwZyAgIlBob3RvIGJ5IENhcmwgQ2Vyc3RyYW5kIG9uIFVuc3BsYXNoIikKClshW01hdmVuIENlbnRyYWxdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9vcmcuZXZvbWFzdGVyL2V2b21hc3Rlci1jbGllbnQtamF2YS9iYWRnZS5zdmcpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvb3JnLmV2b21hc3Rlci9ldm9tYXN0ZXItY2xpZW50LWphdmEpClshW2phdmFkb2NdKGh0dHBzOi8vamF2YWRvYy5pby9iYWRnZTIvb3JnLmV2b21hc3Rlci9ldm9tYXN0ZXItY2xpZW50LWphdmEtY29udHJvbGxlci9qYXZhZG9jLnN2ZyldKGh0dHBzOi8vamF2YWRvYy5pby9kb2Mvb3JnLmV2b21hc3Rlci9ldm9tYXN0ZXItY2xpZW50LWphdmEtY29udHJvbGxlcikKIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL1dlYkZ1enppbmcvRXZvTWFzdGVyL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9XZWJGdXp6aW5nL0V2b01hc3Rlci9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZyldKGh0dHBzOi8vY29kZWNvdi5pby9naC9XZWJGdXp6aW5nL0V2b01hc3RlcikKWyFbRE9JXShodHRwczovL3plbm9kby5vcmcvYmFkZ2UvOTIzODU5MzMuc3ZnKV0oaHR0cHM6Ly96ZW5vZG8ub3JnL2JhZGdlL2xhdGVzdGRvaS85MjM4NTkzMykKWyFbTGljZW5zZTogTEdQTCB2M10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUxHUExfdjMtYmx1ZS5zdmcpXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMy4wKQpbIVtHaXRodWIgQWxsIFJlbGVhc2VzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9kb3dubG9hZHMvV2ViRnV6emluZy9ldm9tYXN0ZXIvdG90YWwuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL1dlYkZ1enppbmcvRXZvTWFzdGVyL3JlbGVhc2VzKQoKCiMjIyBTdW1tYXJ5CgpfRXZvTWFzdGVyXyAoW3d3dy5ldm9tYXN0ZXIub3JnXShodHRwOi8vZXZvbWFzdGVyLm9yZykpIGlzIHRoZSBmaXJzdCAoMjAxNikgb3Blbi1zb3VyY2UgQUktZHJpdmVuIHRvb2wKdGhhdCBhdXRvbWF0aWNhbGx5ICpnZW5lcmF0ZXMqIHN5c3RlbS1sZXZlbCB0ZXN0IGNhc2VzCmZvciB3ZWIvZW50ZXJwcmlzZSBhcHBsaWNhdGlvbnMuClRoaXMgaXMgcmVsYXRlZCB0byBbRnV6emluZ10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRnV6emluZykuCk5vdCBvbmx5IF9Fdm9NYXN0ZXJfIGNhbiBnZW5lcmF0ZSBpbnB1dHMgdGhhdCBmaW5kIHByb2dyYW0gY3Jhc2hlcywgYnV0IGFsc28gaXQgZ2VuZXJhdGVzIHNtYWxsIGVmZmVjdGl2ZSB0ZXN0IHN1aXRlcyAoZS5nLiwgaW4gSlVuaXQgZm9ybWF0KSB0aGF0IGNhbiBiZSB1c2VkIGZvciBfcmVncmVzc2lvbiB0ZXN0aW5nXy4KCl9Fdm9NYXN0ZXJfIGlzIGFuIEFJIGRyaXZlbiB0b29sLgpJbiBwYXJ0aWN1bGFyLCBpbnRlcm5hbGx5IGl0IHVzZXMgYW4gW0V2b2x1dGlvbmFyeSBBbGdvcml0aG1dKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V2b2x1dGlvbmFyeV9hbGdvcml0aG0pCmFuZCBbRHluYW1pYyBQcm9ncmFtIEFuYWx5c2lzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9EeW5hbWljX3Byb2dyYW1fYW5hbHlzaXMpICB0byBiZQphYmxlIHRvIGdlbmVyYXRlIGVmZmVjdGl2ZSB0ZXN0IGNhc2VzLgpUaGUgYXBwcm9hY2ggaXMgdG8gKmV2b2x2ZSogdGVzdCBjYXNlcyBmcm9tIGFuIGluaXRpYWwgcG9wdWxhdGlvbiBvZgpyYW5kb20gb25lcywgdHJ5aW5nIHRvIG1heGltaXplIG1lYXN1cmVzIGxpa2UgY29kZSBjb3ZlcmFnZSBhbmQgZmF1bHQgZGV0ZWN0aW9uLgpfRXZvTWFzdGVyXyB1c2VzIHNldmVyYWwga2luZHMgb2YgQUkgaGV1cmlzdGljcyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlIGV2ZW4gZnVydGhlciwKYnVpbGRpbmcgb24gZGVjYWRlcyBvZiByZXNlYXJjaCBpbiB0aGUgZmllbGQgb2YgW1NlYXJjaC1CYXNlZCBTb2Z0d2FyZSBUZXN0aW5nXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TZWFyY2gtYmFzZWRfc29mdHdhcmVfZW5naW5lZXJpbmcpLgoKCl9fS2V5IGZlYXR1cmVzX186CgoqIF9XZWIgQVBJc186IEF0IHRoZSBtb21lbnQsIF9Fdm9NYXN0ZXJfIGNhbiBnZW5lcmF0ZSB0ZXN0IGNhc2VzIGZvciBfX1JFU1RfXywgX19HcmFwaFFMX18gYW5kIF9fUlBDX18gKGUuZy4sIF9fZ1JQQ19fIGFuZCBfX1RocmlmdF9fKSBBUElzLgoKKiBfQmxhY2stQm94XyB0ZXN0aW5nIG1vZGU6IGNhbiBydW4gb24gYW55IEFQSSAocmVnYXJkbGVzcyBvZiBpdHMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIGUuZy4sIFB5dGhvbiBhbmQgR28pLgogIEhvd2V2ZXIsIHJlc3VsdHMgZm9yIGJsYWNrLWJveCB0ZXN0aW5nIHdpbGwgYmUgd29yc2UgdGhhbiB3aGl0ZS1ib3ggdGVzdGluZyAoZS5nLiwgZHVlIHRvIGxhY2sgb2YgY29kZSBhbmFseXNpcykuCiAgRGVmYXVsdCB0ZXN0IGNhc2Ugb3V0cHV0IGlzIGluIFB5dGhvbiwgYnV0IG90aGVyIGZvcm1hdHMgYXJlIGF2YWlsYWJsZSBhcyB3ZWxsLiAKCiogX1doaXRlLUJveF8gdGVzdGluZyBtb2RlOiBjYW4gYmUgdXNlZCBmb3IgQVBJcyBjb21waWxlZCB0bwogIEpWTSAoZS5nLiwgSmF2YSBhbmQgS290bGluKS4gX0V2b01hc3Rlcl8gYW5hbHlzZXMgdGhlIGJ5dGVjb2RlIG9mIHRoZSB0ZXN0ZWQgYXBwbGljYXRpb25zLCBhbmQgdXNlcwogIHNldmVyYWwgaGV1cmlzdGljcyBzdWNoIGFzIF90ZXN0YWJpbGl0eSB0cmFuc2Zvcm1hdGlvbnNfIGFuZCBfdGFpbnQgYW5hbHlzaXNfIHRvIGJlIGFibGUgdG8gZ2VuZXJhdGUKICBtb3JlIGVmZmVjdGl2ZSB0ZXN0IGNhc2VzLiBXZSBzdXBwb3J0IEpESyBfXzhfXyBhbmQgdGhlIG1ham9yIExUUyB2ZXJzaW9ucyBhZnRlciB0aGF0IChjdXJyZW50bHkgSkRLIF9fMjFfXykuIE1pZ2h0IHdvcmsgb24gb3RoZXIgSlZNIHZlcnNpb25zLCBidXQgd2UgcHJvdmlkZSBfX05PX18gc3VwcG9ydCBmb3IgaXQuCiAgTm90ZTogdGhlcmUgd2FzIGluaXRpYWwgc3VwcG9ydCBmb3Igb3RoZXIgbGFuZ3VhZ2VzIGFzIHdlbGwsIGxpa2UgZm9yIGV4YW1wbGUgSmF2YVNjcmlwdC9UeXBlU2NyaXB0IGFuZCBDIywgYnV0IHRoZXkgYXJlIG5vdCBpbiBhIHN0YWJsZSwgZmVhdHVyZS1jb21wbGV0ZSBzdGF0ZS4gVGhlIHN1cHBvcnQgZm9yIHRob3NlIGxhbmd1YWdlcyBmb3Igd2hpdGUtYm94IHRlc3RpbmcgaGFzIGJlZW4gZHJvcHBlZCwgYXQgbGVhc3QgZm9yIHRoZSB0aW1lIGJlaW5nLiAKCiogX0luc3RhbGxhdGlvbl86IHdlIHByb3ZpZGUgaW5zdGFsbGVycyBmb3IgdGhlIG1haW4gb3BlcmF0aW5nIHN5c3RlbXM6IF9XaW5kb3dzXyAoYC5tc2lgKSwKICBfT1NYXyAoYC5kbWdgKSBhbmQgX0xpbnV4XyAoYC5kZWJgKS4gV2UgYWxzbyBwcm92aWRlIGFuIHViZXItZmF0IEpBUiBmaWxlLgogIFRvIGRvd25sb2FkIHRoZW0sIHNlZSB0aGUgW1JlbGVhc2UgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL1dlYkZ1enppbmcvRXZvTWFzdGVyL3JlbGVhc2VzKS4KICBSZWxlYXNlIG5vdGVzIGFyZSBwcmVzZW50IGluIHRoZSBmaWxlIFtyZWxlYXNlX25vdGVzLm1kXShodHRwczovL2dpdGh1Yi5jb20vV2ViRnV6emluZy9Fdm9NYXN0ZXIvYmxvYi9tYXN0ZXIvcmVsZWFzZV9ub3Rlcy5tZCkuCiAgSWYgeW91IGFyZSB1c2luZyBKREsgMTcgb3IgbGF0ZXIsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBvbmUgb2YgdGhlIGluc3RhbGxlcnMsIGluc3RlYWQgb2YgdXNpbmcgZGlyZWN0bHkgdGhlIHViZXItZmF0IEpBUiAob3RoZXJ3aXNlIHlvdSB3aWxsIG5lZWQgdG8gZGVhbCB3aXRoIHRoZSBbdXNhYmlsaXR5IGxpbWl0YXRpb25zXShkb2NzL2pka3MubWQpIG9mIHRoZSBsYXRlc3QgSkRLcykuIAogICBXaGVuIHlvdSB1c2Ugb25lIG9mIHRoZSBpbnN0YWxsZXJzLCBrZWVwIGluIG1pbmQgdGhhdCBjdXJyZW50bHkgdGhleSBkbyBub3QgdXBkYXRlIHRoZSBgUEFUSGAgdmFyaWFibGUuIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSBtYW51YWxseSwgW3NlZSBkb2N1bWVudGF0aW9uXShkb2NzL2Rvd25sb2FkLm1kKS4gCgoqIF9TdGF0ZS1vZi10aGUtYXJ0XzogYW4gW2luZGVwZW5kZW50IHN0dWR5ICgyMDIyKV0oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIyMDQuMDgzNDgpLCBjb21wYXJpbmcgMTAgZnV6emVycyBvbiAyMCBSRVNUZnVsIEFQSXMsIHNob3dzIHRoYXQgX0V2b01hc3Rlcl8gZ2l2ZXMgdGhlIGJlc3QgcmVzdWx0cy4KCiogX1NjaGVtYV86IFJFU1QgQVBJcyBtdXN0IHByb3ZpZGUgYSBzY2hlbWEgaW4gW09wZW5BUEkvU3dhZ2dlcl0oaHR0cHM6Ly9zd2FnZ2VyLmlvKQogIGZvcm1hdCAoZWl0aGVyIF92Ml8gb3IgX3YzXykuCgoqIF9PdXRwdXRfOiB0aGUgdG9vbCBnZW5lcmF0ZXMgX0pVbml0XyAodmVyc2lvbiA0IG9yIDUpIHRlc3RzLCB3cml0dGVuIGluIGVpdGhlciBKYXZhIG9yIEtvdGxpbiwgYXMgd2VsbCBhcyB0ZXN0IHN1aXRlcyBpbiBQeXRob24gYW5kIEphdmFTY3JpcHQuIEZvciBhIGNvbXBsZXRlIGxpc3QsIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIENMSSBwYXJhbWV0ZXIgWy0tb3V0cHV0Rm9ybWF0XShkb2NzL29wdGlvbnMubWQpLgoKKiBfRmF1bHQgZGV0ZWN0aW9uXzogX0V2b01hc3Rlcl8gY2FuIGdlbmVyYXRlIHRlc3RzIGNhc2VzIHRoYXQgcmV2ZWFsIGZhdWx0cy9idWdzIGluIHRoZSB0ZXN0ZWQgYXBwbGljYXRpb25zLgogIERpZmZlcmVudCBoZXVyaXN0aWNzIGFyZSBlbXBsb3llZCwgbGlrZSBjaGVja2luZyBmb3IgNTAwIHN0YXR1cyBjb2RlcyBhbmQgbWlzbWF0Y2hlcyBmcm9tIHRoZSBBUEkgc2NoZW1hcy4KCiogX1NlbGYtY29udGFpbmVkIHRlc3RzXzogZm9yIHdoaXRlLWJveCB0ZXN0aW5nLCB0aGUgZ2VuZXJhdGVkIHRlc3RzIGRvIHN0YXJ0L3N0b3AgdGhlIGFwcGxpY2F0aW9uLCBiaW5kaW5nIHRvIGFuIGVwaGVtZXJhbCBwb3J0LgogIFRoaXMgbWVhbnMgdGhhdCB0aGUgZ2VuZXJhdGVkIHRlc3RzIGNhbiBiZSB1c2VkIGZvciBfcmVncmVzc2lvbiB0ZXN0aW5nXyAoZS5nLiwgYWRkZWQgdG8gdGhlIEdpdCByZXBvc2l0b3J5CiAgb2YgdGhlIGFwcGxpY2F0aW9uLCBhbmQgcnVuIHdpdGggYW55IGJ1aWxkIHRvb2wgc3VjaCBhcyBNYXZlbiBhbmQgR3JhZGxlKS4KICBGb3IgYmxhY2stYm94IHRlc3RpbmcsIHlvdSB3aWxsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBhcHBsaWNhdGlvbiBpcyB1cCBhbmQgcnVubmluZyBiZWZvcmUgZXhlY3V0aW5nIHRoZSB0ZXN0cy4gCgoKKiBfU1FMIGhhbmRsaW5nXzogZm9yIHdoaXRlLWJveCB0ZXN0aW5nLCBfRXZvTWFzdGVyXyBjYW4gaW50ZXJjZXB0IGFuZCBhbmFseXNlIGFsbCBjb21tdW5pY2F0aW9ucyBkb25lIHdpdGggU1FMIGRhdGFiYXNlcywgYW5kIHVzZQogIHN1Y2ggaW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgaGlnaGVyIGNvZGUgY292ZXJhZ2UgdGVzdCBjYXNlcy4gRnVydGhlcm1vcmUsIGl0IGNhbiBnZW5lcmF0ZSBkYXRhIGRpcmVjdGx5CiAgaW50byB0aGUgZGF0YWJhc2VzLCBhbmQgaGF2ZSBzdWNoIGluaXRpYWxpemF0aW9uIGF1dG9tYXRpY2FsbHkgYWRkZWQgaW4gdGhlIGdlbmVyYXRlZCB0ZXN0cy4KICBBdCB0aGUgbW9tZW50LCBfRXZvTWFzdGVyXyBzdXBwb3J0cyBfUG9zdGdyZXNfLCBfTXlTUUxfIGFuZCBfSDJfICBkYXRhYmFzZXMuCgoKKiBfQXV0aGVudGljYXRpb25fOiB3ZSBzdXBwb3J0IGF1dGggYmFzZWQgb24gYXV0aGVudGljYXRpb24gaGVhZGVycyBhbmQgY29va2llcy4KICBCZXNpZGVzIHVzaW5nIGZpeGVkIEhUVFAgaGVhZGVycywgCiAgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBkZWNsYXJhdGl2ZWx5IHNwZWNpZnkgd2hpY2ggbG9naW4gZW5kcG9pbnQgc2hvdWxkIGJlIHVzZWQgdG8gZHluYW1pY2FsbHkgb2J0YWluIGF1dGhlbnRpY2F0aW9uIGluZm8gKGUuZy4sIGF1dGggdG9rZW5zIG9yIGNvb2tpZXMpIGZvciBlYWNoIHRlc3QgZXhlY3V0aW9uLiBbU2VlIGRvY3VtZW50YXRpb25dKGRvY3MvYXV0aC5tZCkuCgpfX0tub3duIGxpbWl0YXRpb25zX186CgoqIF9Ecml2ZXJfOiB0byBiZSB1c2VkIGZvciBfd2hpdGUtYm94XyB0ZXN0aW5nLCB1c2VycyBuZWVkIHRvIHdyaXRlIGEgW2RyaXZlciBtYW51YWxseV0oZG9jcy93cml0ZV9kcml2ZXIubWQpLgogIFdlIHJlY29tbWVuZCB0byB0cnkgX2JsYWNrLWJveF8gbW9kZSBmaXJzdCAoc2hvdWxkIGp1c3QgbmVlZCBhIGZldyBtaW51dGVzIHRvIGdldCBpdCB1cCBhbmQgcnVubmluZykgdG8gZ2V0CiAgYW4gaWRlYSBvZiB3aGF0IF9Fdm9NYXN0ZXJfIGNhbiBkbyBmb3IgeW91LgoKKiBfSkRLIDkrXzogd2hpdGUtYm94IHRlc3RpbmcgcmVxdWlyZXMgYnl0ZWNvZGUgbWFuaXB1bGF0aW9uLiAKICAgICAgICAgICAgRWFjaCBuZXcgcmVsZWFzZSBvZiB0aGUgSkRLIG1ha2VzIGRvaW5nIHRoaXMgaGFyZGVyIGFuZCBoYXJkZXIuIAogICAgICAgICAgICBEZWFsaW5nIHdpdGggSkRLcyBhYm92ZSBfXzhfXyBpcyBkb2FibGUsIGJ1dCBpdCByZXF1aXJlcyBzb21lIHNldHRpbmdzLgogICAgICAgICAgICBbU2VlIGRvY3VtZW50YXRpb25dKGRvY3MvamRrcy5tZCkuCgoqIF9FeGVjdXRpb24gdGltZV86IHRvIGdldCBnb29kIHJlc3VsdHMsIHlvdSBtaWdodCBuZWVkIHRvIHJ1biB0aGUgc2VhcmNoIGZvciBzZXZlcmFsIGhvdXJzLgogIFdlIHJlY29tbWVuZCB0byBmaXJzdCB0cnkgdGhlIHNlYXJjaCBmb3IgMTAgbWludXRlcywganVzdCB0byBnZXQgYW4gaWRlYSBvZiB3aGF0IHR5cGUgb2YgdGVzdHMgY2FuIGJlIGdlbmVyYXRlZC4KICBCdXQsIHRoZW4sIHlvdSBzaG91bGQgcnVuIF9Fdm9NYXN0ZXJfIGZvciBzb21ldGhpbmcgbGlrZSBiZXR3ZWVuIDEgYW5kIDI0IGhvdXJzICh0aGUgbG9uZ2VyIHRoZSBiZXR0ZXIsIGJ1dAogIGl0IGlzIHVubGlrZWx5IHRvIGdldCBiZXR0ZXIgcmVzdWx0cyBhZnRlciAyNCBob3VycykuCgoqIF9SUEMgQVBJc186IGZvciB0aGUgbW9tZW50LCB3ZSBkbyBub3QgZGlyZWN0bHkgc3VwcG9ydCBSUEMgc2NoZW1hIGRlZmluaXRpb25zLiBGdXp6aW5nIFJQQyBBUElzIHJlcXVpcmVzIHRvIHdyaXRlIGEgZHJpdmVyLCB1c2luZyB0aGUgY2xpZW50IGxpYnJhcnkgb2YgdGhlIEFQSSB0byBtYWtlIHRoZSBjYWxscy4KCiogX0V4dGVybmFsIHNlcnZpY2VzXzogKGUuZy4sIG90aGVyIFJFU1RmdWwgQVBJcykgY3VycmVudGx5IHRoZXJlIGlzIG5vIHN1cHBvcnQgZm9yIHRoZW0gKGUuZy4sIHRvIGF1dG9tYXRpY2FsbHkgbW9jayB0aGVtKS4KICBJdCBpcyB3b3JrIGluIHByb2dyZXNzLgoKKiBfTm9TUUwgZGF0YWJhc2VzXzogKGUuZy4sIE1vbmdvREIpIGN1cnJlbnRseSBubyBzdXBwb3J0LiBJdCBpcyB3b3JrIGluIHByb2dyZXNzLgoKKiBfRmFpbGluZyB0ZXN0c186IHRoZSB0ZXN0cyBnZW5lcmF0ZWQgYnkgX0V2b01hc3Rlcl8gc2hvdWxkIGFsbCBwYXNzLCBhbmQgbm90IGZhaWwsIGV2ZW4gd2hlbiB0aGV5IGRldGVjdCBhIGZhdWx0LgogIEluIHRob3NlIGNhc2VzLCBjb21tZW50cy90ZXN0LW5hbWVzIHdvdWxkIHBvaW50IG91dCB0aGF0IGEgdGVzdCBpcyByZXZlYWxpbmcgYSBwb3NzaWJsZSBmYXVsdCwgd2hpbGUgc3RpbGwgcGFzc2luZy4KICBIb3dldmVyLCBpbiBzb21lIGNhc2VzIHRoZSBnZW5lcmF0ZWQgdGVzdHMgbWlnaHQgZmFpbC4gVGhpcyBpcyBkdWUgdG8gdGhlIHNvIGNhbGxlZCBfZmxha3lfIHRlc3RzLCBlLmcuLCB3aGVuCiAgYSB0ZXN0IGhhcyBhc3NlcnRpb25zIGJhc2VkIG9uIHRoZSB0aW1lIGNsb2NrIChlLmcuLCBkYXRlcyBhbmQgdGltZXN0YW1wcykuCiAgVGhlcmUgaXMgb25nb2luZyBlZmZvcnQgdG8gYWRkcmVzcyB0aGlzIHByb2JsZW0sIGJ1dCBpdCBpcyBzdGlsbCBub3QgZnVsbHkgc29sdmVkLgoKPCEtLSMjIyBWaWRlb3MtLS0+IAo8IS0tIAo8ZGl2Pkljb25zIG1hZGUgYnkgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmxhdGljb24uY29tL2F1dGhvcnMvZnJlZXBpayIgdGl0bGU9IkZyZWVwaWsiPkZyZWVwaWs8L2E+IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmxhdGljb24uY29tLyIgdGl0bGU9IkZsYXRpY29uIj53d3cuZmxhdGljb24uY29tPC9hPjwvZGl2PiAKLS0+CgoKIyMjIFZpZGVvcwoKIVtdKGRvY3MvaW1nL3ZpZGVvLXBsYXllci1mbGF0aWNvbi5wbmcpCgoqIEEgW3Nob3J0IHZpZGVvXShodHRwczovL3lvdXR1LmJlLzNtWXhqZ25oTEVvKSAoNSBtaW51dGVzKQogIHNob3dzIHRoZSB1c2Ugb2YgX0V2b01hc3Rlcl8gb24gb25lIG9mIHRoZQogIGNhc2Ugc3R1ZGllcyBpbiBbRU1CXShodHRwczovL2dpdGh1Yi5jb20vV2ViRnV6emluZy9FTUIpLgoKKiBUaGlzIFsxMy1taW51dGUgdmlkZW9dKGh0dHBzOi8veW91dHUuYmUvT1J4Wm9ZdzdMbk0pCiAgc2hvd3MgaG93IHRvIHdyaXRlIGEgd2hpdGUtYm94IGRyaXZlciBmb3IgRXZvTWFzdGVyLCBmb3IgdGhlCiAgW3Jlc3QtYXBpLWV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJGdXp6aW5nL3Jlc3QtYXBpLWV4YW1wbGUpLgoKKiBIb3cgdG8gW0Rvd25sb2FkIGFuZCBJbnN0YWxsIEV2b01hc3RlciBvbiBXaW5kb3dzIDEwXShodHRwczovL3lvdXR1LmJlL3VoX1h6R3h3czlvKSwgdXNpbmcgaXRzIF8ubXNpXyBpbnN0YWxsZXIuCgoqIFtTaG9ydCBwcmVzZW50YXRpb25dKGh0dHBzOi8veW91dHUuYmUvaVFTQWxyci1QWm8pICg1IG1pbnV0ZXMpIGFib3V0IHZlcnNpb24gMi4wLjAuIAoKIyMjIEFsdGVybmF0aXZlcwoKSW4gdGhlIGxhc3QgZmV3IHllYXJzLCBzZXZlcmFsIGZldyB0b29scyBoYXZlIGJlZW4gcHJvcG9zZWQgaW4gdGhlIGFjYWRlbWljIGxpdGVyYXR1cmUgYW5kIGluIHRoZSBvcGVuLXNvdXJjZSBjb21tdW5pdHkuCllvdSBjYW4gcmVhZCBtb3JlIGRldGFpbHMgaW4gdGhpcyBbMjAyMyBzdXJ2ZXldKGRvY3MvcHVibGljYXRpb25zLzIwMjNfdG9zZW1fc3VydmV5LnBkZikgb24gUkVTVCBBUEkgdGVzdGluZy4KCkV4aXN0aW5nIG9wZW4tc291cmNlIHRvb2xzIGZvciBSRVNUIEFQSSBmdXp6aW5nIGFyZSBmb3IgZXhhbXBsZSAoaW4gYWxwaGFiZXRpYyBvcmRlcik6CltEcmVkZF0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWFyeWlvL2RyZWRkKSwKW0Z1enotbGlnaHR5ZWFyXShodHRwczovL2dpdGh1Yi5jb20vWWVscC9mdXp6LWxpZ2h0eWVhciksCltSZXNUZXN0XShodHRwczovL2dpdGh1Yi5jb20vaXNhLWdyb3VwL1JFU1Rlc3QpLApbUmVzdENUXShodHRwczovL2dpdGh1Yi5jb20vR0lTVC1OSlUvUmVzdENUKSwKW1Jlc3RsZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvcmVzdGxlci1mdXp6ZXIpLApbUmVzdFRlc3RHZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9TZVVuaVZyL1Jlc3RUZXN0R2VuKSwKYW5kCltTY2hlbWF0aGVzaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2hlbWF0aGVzaXMvc2NoZW1hdGhlc2lzKS4KCkFsbCB0aGVzZSB0b29scyBhcmUgX2JsYWNrLWJveF8sIGkuZS4sIHRoZXkgZG8gbm90IGFuYWx5emUgdGhlIHNvdXJjZS1jb2RlIG9mIHRoZSB0ZXN0ZWQgQVBJcyB0byBnZW5lcmF0ZSBtb3JlIGVmZmVjdGl2ZSB0ZXN0IGRhdGEuCkFzIHdlIGFyZSB0aGUgYXV0aG9ycyBvZiBFdm9NYXN0ZXIsIHdlIGFyZSB0b28gYmlhc2VkIHRvIGNvbXBhcmUgaXQgcHJvcGVybHkgd2l0aCB0aG9zZSBvdGhlciBibGFjay1ib3ggdG9vbHMuCkhvd2V2ZXIsIGFuIFtpbmRlcGVuZGVudCBzdHVkeSAoMjAyMildKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yMjA0LjA4MzQ4KSBzaG93cyB0aGF0IEV2b01hc3RlciBpcyBhbW9uZyB0aGUgYmVzdCBwZXJmb3JtYW50LgpGdXJ0aGVybW9yZSwgaWYgeW91ciBBUElzIGFyZSBydW5uaW5nIG9uIHRoZSBKVk0gKGUuZy4sIHdyaXR0ZW4gaW4gSmF2YSBvciBLb3RsaW4pLCB0aGVuIEV2b01hc3RlciBoYXMgY2xlYXJseSBhbiBhZHZhbnRhZ2UsIGFzIGl0IHN1cHBvcnRzIF93aGl0ZS1ib3hfIHRlc3RpbmcuIAoKPCEtLS0KIyMjIEhpcmluZwoKRGVwZW5kaW5nIG9uIHRoZSB5ZWFyLCB3ZSBtaWdodCBoYXZlIGZ1bmRpbmcgZm9yIF9wb3N0ZG9jXyBhbmQgX1BoRCBzdHVkZW50XyBwb3NpdGlvbnMgdG8gd29yayBvbiB0aGlzIHByb2plY3QgKGluIE9zbG8sIE5vcndheSkuCgpDdXJyZW50IG9wZW4gcG9zaXRpb25zOiBub25lLgo8ICEtLS0KKiAyMDIzOiBQaEQgc3R1ZGVudCBwb3NpdGlvbnMuIE5vIG5ldyBjYWxscyBzY2hlZHVsZWQgZm9yIHRoZSBtb21lbnQuCiogMjAyMzogUG9zdGRvYyBwb3NpdGlvbnMuIE5vIG5ldyBjYWxscyBzY2hlZHVsZWQgZm9yIHRoZSBtb21lbnQuCi0tLSA+CgpGb3IgcXVlc3Rpb25zIG9uIHRoZXNlIHBvc2l0aW9ucywgcGxlYXNlIGNvbnRhY3QgUHJvZi4gQW5kcmVhIEFyY3VyaS4KCjwgIS0tLQpGb3IgbW9yZSBkZXRhaWxzIG9uIGN1cnJlbnQgdmFjYW5jaWVzLCBzZWUgb3VyIGdyb3VwIHBhZ2UgYXQgW0FJU0UgTGFiXShodHRwczovL2VtcmVzZWFyY2guZ2l0aHViLmlvLykuCi0tLT4KCgoKIyMjIERvY3VtZW50YXRpb24KCklmIHlvdSBhcmUgdHJ5aW5nIHRvIHVzZSBfRXZvTWFzdGVyXywgYnV0IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhpcyBkb2N1bWVudGF0aW9uIGFyZSBub3QgZW5vdWdoIHRvIGdldCB5b3Ugc3RhcnRlZCwgb3IgdGhleSBhcmUgdG9vIHVuY2xlYXIsIHRoZW4gaXQgbWVhbnMgaXQgaXMgYSBfYnVnXyBpbiB0aGUgZG9jdW1lbnRhdGlvbiwgd2hpY2ggdGhlbiB3b3VsZCBuZWVkIHRvIGJlIGNsYXJpZmllZCBhbmQgdXBkYXRlZC4gSW4gc3VjaCBjYXNlcywgcGxlYXNlIGNyZWF0ZSBhIG5ldyBbaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJGdXp6aW5nL0V2b01hc3Rlci9pc3N1ZXMpLgoKQWxzbywgZmVlbCBmcmVlIHRvIHN0YXJ0IG5ldyBkaXNjdXNzaW9uIHRvcGljcyBpbiB0aGUgW0Rpc2N1c3Npb25zIGZvcnVtXShodHRwczovL2dpdGh1Yi5jb20vV2ViRnV6emluZy9Fdm9NYXN0ZXIvZGlzY3Vzc2lvbnMpLgpJZiB5b3UgaGF2ZSB0aW1lLCBwbGVhc2UgY29uc2lkZXIgYW5zd2VyaW5nIHRoZSBwb2xscyB0aGVyZS4KCgoqIFtFeGFtcGxlIG9mIGdlbmVyYXRlZCB0ZXN0c10oZG9jcy9leGFtcGxlLm1kKQoqIFtEb3dubG9hZCBhbmQgSW5zdGFsbCBFdm9NYXN0ZXJdKGRvY3MvZG93bmxvYWQubWQpCiogW0J1aWxkIEV2b01hc3RlciBmcm9tIHNvdXJjZV0oZG9jcy9idWlsZC5tZCkKKiBbQ29tbWFuZC1MaW5lIEludGVyZmFjZSAoQ0xJKSBvcHRpb25zXShkb2NzL29wdGlvbnMubWQpCiogW09wZW5BcGkvU3dhZ2dlciBTY2hlbWFdKGRvY3Mvb3BlbmFwaS5tZCkKKiBbVXNpbmcgRXZvTWFzdGVyIGZvciBCbGFjay1Cb3ggVGVzdGluZyAoZWFzaWVyIHRvIHNldHVwLCBidXQgd29yc2UgcmVzdWx0cyldKGRvY3MvYmxhY2tib3gubWQpCiogW1VzaW5nIEV2b01hc3RlciBmb3IgV2hpdGUtQm94IFRlc3RpbmcgKGhhcmRlciB0byBzZXR1cCwgYnV0IGJldHRlciByZXN1bHRzKV0oZG9jcy93aGl0ZWJveC5tZCkKICAqIFtXcml0ZSBhbiBFdm9NYXN0ZXIgRHJpdmVyIGZvciBXaGl0ZS1Cb3ggVGVzdGluZ10oZG9jcy93cml0ZV9kcml2ZXIubWQpCiAgKiBbRGVhbGluZyB3aXRoIEpES3MgYWJvdmUgdmVyc2lvbiA4XShkb2NzL2pka3MubWQpCiogW0NvbnNvbGUgb3V0cHV0XShkb2NzL2NvbnNvbGVfb3V0cHV0Lm1kKQoqIFtMaWJyYXJ5IGRlcGVuZGVuY2llcyBmb3IgdGhlIGdlbmVyYXRlZCB0ZXN0c10oZG9jcy9saWJyYXJ5X2RlcGVuZGVuY2llcy5tZCkKKiBbSG93IHRvIGNvbnRyaWJ1dGVdKGRvY3MvY29udHJpYnV0ZS5tZCkKICAqIFtUZWNobmljYWwgbm90ZXMgZm9yIGRldmVsb3BlcnMgY29udHJpYnV0aW5nIHRvIEV2b01hc3Rlcl0oZG9jcy9mb3JfZGV2ZWxvcGVycy5tZCkKKiBUcm91Ymxlc2hvb3RpbmcKICAqIFtXaW5kb3dzIGFuZCBuZXR3b3JraW5nXShkb2NzL3Ryb3VibGVzaG9vdGluZy93aW5kb3dzLm1kKQoqIE1vcmUgSW5mbwogICogW0FjYWRlbWljIHBhcGVycyByZWxhdGVkIHRvIEV2b01hc3Rlcl0oZG9jcy9wdWJsaWNhdGlvbnMubWQpCiAgKiBbU2xpZGVzIG9mIHByZXNlbnRhdGlvbnMvc2VtaW5hcnNdKGRvY3MvcHJlc2VudGF0aW9ucy5tZCkKICAqIFtSZXBsaWNhdGluZyBzdHVkaWVzXShkb2NzL3JlcGxpY2F0aW5nX3N0dWRpZXMubWQpCgoKCgoKCiMjIyBGdW5kaW5nCgpfRXZvTWFzdGVyXyBoYXMgYmVlbiBmdW5kZWQgYnk6CiogMjAyMC0yMDI1OiBhIDIgbWlsbGlvbiBFdXJvIGdyYW50IGJ5IHRoZSBFdXJvcGVhbiBSZXNlYXJjaCBDb3VuY2lsIChFUkMpLAogIGFzIHBhcnQgb2YgdGhlICpFUkMgQ29uc29saWRhdG9yKiBwcm9qZWN0CiAgPGk+VXNpbmcgRXZvbHV0aW9uYXJ5IEFsZ29yaXRobXMgdG8gVW5kZXJzdGFuZCBhbmQgU2VjdXJlIFdlYi9FbnRlcnByaXNlIFN5c3RlbXM8L2k+LgoqICAyMDE4LTIwMjE6IGEgNy44IG1pbGxpb24gTm9yd2VnaWFuIEtyb25lciBncmFudCAgYnkgdGhlIFJlc2VhcmNoIENvdW5jaWwgb2YgTm9yd2F5IChSQ04pLAogICBhcyBwYXJ0IG9mIHRoZSBGcmluYXRlayBwcm9qZWN0IDxpPkV2b2x1dGlvbmFyeSBFbnRlcnByaXNlIFRlc3Rpbmc8L2k+LgoKCjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vV2ViRnV6emluZy9Fdm9NYXN0ZXIvYmxvYi9tYXN0ZXIvZG9jcy9pbWcvTE9HT19FUkMtRkxBR19FVV8uanBnP3Jhdz10cnVlIiB3aWR0aD0iMjAwIiA+CgoKVGhpcyBwcm9qZWN0IGhhcyByZWNlaXZlZCBmdW5kaW5nIGZyb20gdGhlIEV1cm9wZWFuIFJlc2VhcmNoIENvdW5jaWwgKEVSQykgdW5kZXIgdGhlIEV1cm9wZWFuIFVuaW9u4oCZcyBIb3Jpem9uIDIwMjAgcmVzZWFyY2ggYW5kIGlubm92YXRpb24gcHJvZ3JhbW1lIChncmFudCBhZ3JlZW1lbnQgTm8gODY0OTcyKS4KCgojIyMgTGljZW5zZQpfRXZvTWFzdGVyXydzIHNvdXJjZSBjb2RlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBMR1BMICh2MykgbGljZW5zZS4KRm9yIGEgbGlzdCBvZiB0aGUgdXNlZCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMsIHlvdSBjYW4gZGlyZWN0bHkgc2VlIHRoZSByb290IFtwb20ueG1sXSguL3BvbS54bWwpIGZpbGUuCkZvciBhIGxpc3Qgb2YgY29kZSBkaXJlY3RseSBpbXBvcnRlZCAoYW5kIHRoZW4gcG9zc2libHkgbW9kaWZpZWQvdXBkYXRlZCkgZnJvbQpvdGhlciBvcGVuLXNvdXJjZSBwcm9qZWN0cywgc2VlIFtoZXJlXSguL2RvY3MvcmV1c2VkX2NvZGUubWQpLgoKCjwhLS0KIyMjICFbXShodHRwczovL3d3dy55b3Vya2l0LmNvbS9pbWFnZXMveWtsb2dvLnBuZykKCllvdXJLaXQgc3VwcG9ydHMgb3BlbiBzb3VyY2UgcHJvamVjdHMgd2l0aCBpdHMgZnVsbC1mZWF0dXJlZCBKYXZhIFByb2ZpbGVyLgpZb3VyS2l0LCBMTEMgaXMgdGhlIGNyZWF0b3Igb2YKPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91cmtpdC5jb20vamF2YS9wcm9maWxlci8iPllvdXJLaXQgSmF2YSBQcm9maWxlcjwvYT4KYW5kCjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXJraXQuY29tLy5uZXQvcHJvZmlsZXIvIj5Zb3VyS2l0IC5ORVQgUHJvZmlsZXI8L2E+LAppbm5vdmF0aXZlIGFuZCBpbnRlbGxpZ2VudCB0b29scyBmb3IgcHJvZmlsaW5nIEphdmEgYW5kIC5ORVQgYXBwbGljYXRpb25zLgotLT4KCg== readmeEtag: '"e35afecbe8b5754805eb40b8fc5f4b2ebde08e28"' readmeLastModified: Fri, 16 Aug 2024 19:22:46 GMT repositoryId: 92385933 description: >- The first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift). created: '2017-05-25T09:11:23Z' updated: '2024-09-06T03:15:57Z' language: Kotlin archived: false stars: 482 watchers: 24 forks: 81 owner: WebFuzzing logo: https://avatars.githubusercontent.com/u/29148026?v=4 license: LGPL-3.0 repoEtag: '"eacb177edc9a295b10af6ab7ccfbd822757a3a282b2cca9d1f4dfece2461cc0a"' repoLastModified: Fri, 06 Sep 2024 03:15:57 GMT foundInMaster: true id: d1d3d85149c4a9437dbdbf157cf3d7c7 oldLocations: - https://github.com/emresearch/evomaster - source: openapi3 tags repository: https://github.com/tiblazy/escribo.inovation.teste_2 v3: true id: 86a37bb88c331b52e3d21038f42efc17 repositoryMetadata: repositoryId: 722276761 description: escribo.inovation database created: '2023-11-22T19:52:38Z' updated: '2024-06-12T06:32:19Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: tiblazy logo: https://avatars.githubusercontent.com/u/96823878?v=4 repoEtag: '"76ad99d5f069808292fa4ac603b8c0fdb75c34b60f11c2a1a06c6398266e33a5"' repoLastModified: Wed, 12 Jun 2024 06:32:19 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/nakajima97/letter-box-api v3: true repositoryMetadata: base64Readme: >- IyDjgqLjg5fjg6rmpoLopoEKCiMjIExldHRlciBCb3gg44Gr44Gk44GE44GmCgrpoaflrqLjgYzlvpPmpa3lk6Hjgavlr77jgZfjgabljL/lkI3jgafjg6Hjg4Pjgrvjg7zjgrjjgpLpgIHjgozjgovjgqLjg5fjg6rjgIIgIArjg6Hjg4Pjgrvjg7zjgrjjgpLjgoTjgorlj5bjgorjgZnjgovmqZ/og73jga/jgarjgYTjgYwgIArjg63jgrDjgqTjg7PkuI3opoHjgafoqrDjgavpgIHjgovjga7jgYvjgYxVUkzjgavlj43mmKDjgZXjgozjgovjgIIgIArjgZ3jga7jgZ/jgoHjgIFRUuOCs+ODvOODieOCkuiqreOBv+WPluOCi+OBoOOBkeOBp+ODoeODg+OCu+ODvOOCuOOCkuiqsOOBq+mAgeOCi+OBruOBi+aMh+WumuOBp+OBjeOCi+OAgiAgCgojIyBMZXR0ZXIgQm94IOOCkuani+aIkOOBmeOCi+imgee0oAoKTGV0dGVyIEJveCDjga/ku6XkuIs044Gk44Gu44Oq44Od44K444OI44Oq44Gn5qeL5oiQ44GV44KM44KLCgojIyMg5a6i5YG044OV44Ot44Oz44OI44Ko44Oz44OJCgrpoaflrqLjgYzjg6Hjg4Pjgrvjg7zjgrjjgpLkvJ3jgYjjgovpmpvjgavliKnnlKjjgZnjgovnlLvpnaIgIApodHRwczovL2dpdGh1Yi5jb20veXVkYWktbmFrYWppbWEvbGV0dGVyLWJveC1mcm9udGVuZC1jbGllbnQKCiMjIyDnrqHnkIbnlLvpnaLjg5Xjg63jg7Pjg4jjgqjjg7Pjg4kKCuW+k+alreWToeOBjOODoeODg+OCu+ODvOOCuOOCkueiuuiqjeOBmeOCi+OBn+OCgeOBrueUu+mdoiAgCmh0dHBzOi8vZ2l0aHViLmNvbS95dWRhaS1uYWthamltYS9sZXR0ZXItYm94LWZyb250ZW5kLW1hbmFnZW1lbnQvYmxvYi9tYWluL1JFQURNRS5tZAoKIyMjIOODkOODg+OCr+OCqOODs+ODiQoKTGV0dGVyIEJveCDjga7jg5Djg4Pjgq/jgqjjg7Pjg4kK44OV44Ot44Oz44OI44Ko44Oz44OJ44Gv5a6i5YG044O7566h55CG55S76Z2i44Go5YiG44GL44KM44KL44GM44CB44OQ44OD44Kv44Ko44Oz44OJ44GvIDEg44Gk44Gu44G/ICAKaHR0cHM6Ly9naXRodWIuY29tL3l1ZGFpLW5ha2FqaW1hL2xldHRlci1ib3gtYmFja2VuZAoKIyMjIEFQSSDku5Xmp5jmm7gK4oC75pys44Oq44Od44K444OI44OqICAKaHR0cHM6Ly9naXRodWIuY29tL3l1ZGFpLW5ha2FqaW1hL2xldHRlci1ib3gtYXBpCgojIOS9nOaIkOebrueahArlupflk6Hjgavlr77jgZfjgabmsJfou73jgavjg6Hjg4Pjgrvjg7zjgrjjgpLpgIHjgozjgovjgqLjg5fjg6rjgYzjgYLjgaPjgZ/jgokK5oSf6Kyd44Gu5rCX5oyB44Gh44Go44GL5Lyd44GI44KE44GZ44GE44KI44Gq44Go5oCd44Gj44Gf44Gf44KB44CCCgojIyMgQVBJIOS7leanmOabuArigLvmnKzjg6rjg53jgrjjg4jjg6oKCiMg5L2c5oiQ55uu55qECuW6l+WToeOBq+WvvuOBl+OBpuaEn+isneOCkuawl+i7veOBq+S8neOBiOOCi+aJi+auteOCkuaPkOS+m+OBmeOCi+OCouODl+ODquOCkumWi+eZuuOBl+OBn+OBhOOBqOaAneOBo+OBn+OBn+OCgQo= readmeEtag: '"51dbd667ab4953f28dcd9be7f070cd3667368c0a"' readmeLastModified: Wed, 22 Sep 2021 02:26:07 GMT repositoryId: 380894274 description: letter-boxで開発するAPIの仕様書 created: '2021-06-28T03:27:50Z' updated: '2023-06-12T11:21:48Z' language: null archived: true stars: 0 watchers: 1 forks: 0 owner: nakajima97 logo: https://avatars.githubusercontent.com/u/25247800?v=4 repoEtag: '"b2fe83c5a7c265e11bd8e55b6442611f29424dc55fd2645b8a5377a1d29b51e4"' repoLastModified: Mon, 12 Jun 2023 11:21:48 GMT foundInMaster: true category: Testing id: c40c4729753bf9c561b875f1151bcee8 oldLocations: - https://github.com/yudai-nakajima/letter-box-api - source: openapi3 tags repository: https://github.com/hikmatullahehsan/wefox-node-js-assessment v3: true repositoryMetadata: base64Readme: >- IyBXZWZveC1ub2RlLWpzLWFzc2Vzc21lbnQKQSBkZW1vIGFwcGxpY2F0aW9uIGRldmVsb3BlZCB3aXRoIE5vZGVKUwoKIyMgSG93IHRvIGluc3RhbGw/IApgYGBiYXNoCiQgbnBtIGluc3RhbGwgCmBgYAojIyBIb3cgdG8gcnVuPwpgYGBiYXNoCiQgbnBtIHN0YXJ0IApgYGAKCiMjIENyZWF0aW5nIGFuIC5lbnYgZmlsZSB3aXRoIHRoZXNlIHByb3BlcnRpZXMgYW5kIGluaXRpYWxpemUgdGhlaXIgdmFsdWVzIHJlbGF0ZWQgdG8geW91ciBlbnZpcm9ubWVudApgYGBqYXZhc2NyaXB0CkFQSV9QT1JUICAgICAgICAgICAgPSBudWxsCk1PTkdPX1VSSSAgICAgICAgICAgPSBudWxsClRPS0VOX0tFWSAgICAgICAgICAgPSBudWxsCk9QRU5fV0VBVEhFUl9BUElfSUQgPSBudWxsCmBgYAoKIyMgT3BlbkFQSSBTd2FnZ2VyIERvY3VtZW50YXRpb24gCmBgYGJhc2gKaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS1kb2NzCmBgYAoKIyMgUmVxdWlyZW1lbnRzCiogTm9kZSB2MC4xMC4zMiBvciBhYm92ZQoqIEV4cHJlc3MgNCBvciBhYm92ZQoqIE1vbmdvREIKCiMjIFRlc3RpbmcKCiogYG5wbSBpbnN0YWxsYAoqIGBucG0gdGVzdAoKCiMjIERvY2tlciBJbWFnZSAKYGBgYmFzaApodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvaGVrbWF0MjEvd2Vmb3gtbm9kZS1hc3Nlc3NtZW50CmBgYAoKCgoKCgoK readmeEtag: '"4db7e322fe5d0d37f998cc7f30ee2b218c23dcc0"' readmeLastModified: Sun, 05 Sep 2021 18:41:43 GMT repositoryId: 403301474 description: A general and simple NodeJS application for a demo purpose created: '2021-09-05T12:22:16Z' updated: '2021-09-05T18:41:46Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: HikmatullahEhsan logo: https://avatars.githubusercontent.com/u/23573173?v=4 repoEtag: '"1b2154da39b8b0e4376fb6652e91e7e4374deecb960c79552b7d18910165eb49"' repoLastModified: Sun, 05 Sep 2021 18:41:46 GMT foundInMaster: true category: - Documentation - Server Implementations id: 6fa7281b9b0763b069ffb1bd05e51341 - source: openapi3 tags repository: https://github.com/bharathbhargavgb/short-url v3: true repositoryMetadata: base64Readme: >- IyBzaG9ydC11cmwKQSBzaW1wbGUgVVJMIHNob3J0ZW5lciBpbXBsZW1lbnRlZCBpbiBHbyB1c2luZyBBV1MgTGFtYmRhIGFuZCBEeW5hbW9EQi4KClshW0FjdGlvbiBzdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9iaGFyYXRoYmhhcmdhdmdiL3Nob3J0LXVybC93b3JrZmxvd3MvR28vYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2JoYXJhdGhiaGFyZ2F2Z2Ivc2hvcnQtdXJsL2FjdGlvbnMpCgojIyBPcGVuQVBJIDMuMCBzcGVjcwpodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzLWRvY3MvcmVzdXJnZW5jZS9zaG9ydGVuLzEuMC4wCg== readmeEtag: '"85efb9dc81c0411a0b4b552231dea96091e5c18c"' readmeLastModified: Sun, 13 Jun 2021 16:27:53 GMT repositoryId: 363583561 description: URL shortener using Go | AWS created: '2021-05-02T06:33:28Z' updated: '2021-06-13T16:28:05Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: bharathbhargavgb logo: https://avatars.githubusercontent.com/u/6514305?v=4 repoEtag: '"86cc995166f8a3df5c3bf642a35345c866aef889bc955305021fce7110f15490"' repoLastModified: Sun, 13 Jun 2021 16:28:05 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: d480043fd92044205b6775531c1bc411 - source: openapi3 tags repository: https://github.com/ivolimmen/apidoc v3: true repositoryMetadata: base64Readme: >- IyBBcGlEb2MKCkkgd2FzIG1pc3NpbmcgYSBzaW1wbGUgdG9vbCB0aGF0IGNhbiBjb252ZXJ0IGFuIE9wZW5BUEkgMyBKU09OIGZpbGUgdG8gYSBuaWNlIGxvb2tpbmcgZG9jdW1lbnQuIFNpbmNlIEkgbGlrZSBBc2NpaURvYyBJIGRlY2lkZWQgdG8gb3V0cHV0IGl0IHRvIHRoYXQgZm9ybWF0LgoKIyMgRXhhbXBsZQoKSWYgeW91IGRvd25sb2FkIHRoZSBPcGVuQVBJIHBldHN0b3JlIGV4bWFwbGUgYW5kIGNvbnZlcnQgaXQgdG8gQXNjaWlEb2MgdXNpbmcgdGhpcyB0b29sIHlvdSBnZXQgdGhlIGZvbGxvd2luZzoKCiFbcGV0c3RvcmUgZXhhbXBsZV0oZG9jcy9leGFtcGxlLW91dHB1dC5wbmcgIlBldHN0b3JlIGV4YW1wbGUiKQoKIyMgUmVxdWlyZW1lbnRzCgpNaW5pbWFsIHJlcXVpcmVtZW50czoKCiogSmF2YSAxMSBvciBoaWdoZXIKKiBNYXZlbiAzLjguKiBvciBoaWdoZXIKCiMjIEJ1aWxkaW5nIHRoZSBhcHBsaWNhdGlvbgoKUnVuOgoKICAgIG12biBjbGVhbiBpbnN0YWxsCgpUaGlzIHdpbGwgY3JlYXRlIGFuIGV4ZWN1dGFibGUgSkFSIGluIGBhcHAvdGFyZ2V0L2FwaWRvYy1hcHAtMC4xLmphcmAKCiMjIFJ1bm5pbmcgdGhlIGFwcGxpY2F0aW9uCgpBZnRlciBjb21waWxpbmcgeW91IGNhbiBydW46CgogICAgamF2YSAtamFyIGFwcC90YXJnZXQvYXBpZG9jLWFwcC0wLjEuamFyCgojIyMgQ29udmVydCBtdWx0aXBsZSBBUEkgSlNPTiBmaWxlcwoKVGhlIGFwcGxpY2F0aW9uIGNhbiBjb252ZXJ0IG11bHRpcGxlIEpTT04gZmlsZXMgaW4gb25lIGdvIGJ5IHNwZWZpY3lpbmcgb25lIG91dHB1dCBhbmQgbXVsdGlwbGUgaW5wdXQgZmlsZXMuCgogICAgamF2YSAtamFyIGFwaWRvYy1hcHAtMC4xLmphciAtLW91dHB1dD1+L0Rvd25sb2FkcyBkYXRhL2V4YW1wbGUxLmpzb24gZGF0YS9leGFtcGxlMi5qc29uIGRhdGEvZXhhbXBsZTMuanNvbiBkYXRhL2V4YW1wbGU0Lmpzb24KClRoaXMgd2lsbCBjcmVhdGU6IGBleGFtcGwxLmFkb2NgLCBgZXhhbXBsMi5hZG9jYCwgYGV4YW1wbDMuYWRvY2AgYW5kIGBleGFtcGw0LmFkb2NgIGluIGB+L0Rvd25sb2Fkc2AKClRoZSBhcHBsaWNhdGlvbiBjYW4gYWxzbyB0YWtlIGluIFVSTCdzOgoKICAgIGphdmEgLWphciBhcGlkb2MtYXBwLTAuMS5qYXIgLS1vdXRwdXQ9fi9Eb3dubG9hZHMgaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMvb3BlbmFwaS5qc29uCgpUaGlzIHdpbGwgY3JlYXRlIGBwZXRzdG9yZTMuYWRvY2AgYXMgZmlsZSBhcyBpdCB0YWtlcyB0aGUgaG9zdCBuYW1lIGFzIGZpbGUuCgpJZiB5b3UgbGlrZSB0byBjaGFuZ2UgdGhlIGZpbGUgbmFtZSB5b3UgY2FuIGRvIHRoZSBmb2xsb3dpbmc6CgogICAgamF2YSAtamFyIGFwaWRvYy1hcHAtMC4xLmphciAtLW91dHB1dD1+L0Rvd25sb2FkcyBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLmpzb258b3V0cHV0Lmpzb24KClRoaXMgd2lsbCBjcmVhdGUgYG91dHB1dC5hZG9jYCBhcyBmaWxlLgoKVGhlc2UgYXJndW1lbnRzIGNhbiBiZSBjb21iaW5lZCBhcyB3ZWxsLgoKIyMgV2hhdCBkb2VzIHRoaXMgdG9vbCBjb252ZXJ0PwoKVGhlIGZvbGxvd2luZyBtb2RlbHMgZnJvbSBPcGVuQVBJIGFyZSBiZWluZyBjb252ZXJ0ZWQgdG8gQXNjaWlEb2M6CgoqIEluZm8KICAqIFRpdGxlCiAgKiBEZXNjcmlwdGlvbgogICogVmVyc2lvbgogICogQ29udGFjdCBpbmZvcm1hdGlvbgoqIFBhdGhzIChzb3J0ZWQhKQogICogUGVyIHBhdGggdGhlIG9wZXJhdGlvbnMgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgb3JkZXI6CiAgICAqIGRlbGV0ZQogICAgKiBnZXQKICAgICogaGVhZAogICAgKiBvcHRpb25zCiAgICAqIHBhdGNoCiAgICAqIHBvc3QKICAgICogcHV0CiAgICAqIHRyYWNlCiogUGVyIG9wZXJhdGlvbjoKICAqIHRoZSBjdXJyZW50IHBhdGgKICAqIHRoZSBjYWxsIChtZXRob2QgYW5kIHBhdGgpCiAgKiBJZiB0aGUgbWV0aG9kIGlzIGRlcHJlY2F0ZWQgKHdhcm5pbmcpCiAgKiBEZXNjcmlwdGlvbgogICogU3VtbWFyeQogICogUmVxdWVzdEJvZHkKICAgICogRGVzY3JpcHRpb24KICAgICogSWYgdGhlIGJvZHkgaXMgcmVxdWlyZWQKICAgICogU2hvd3Mgb2JqZWN0IHJlZmVyZW5jZXMgcGVyIG1lZGlhIHR5cGUKICAqIFBhcmFtZXRlcnMKICAgICogTGlzdHMgdHlwZSxuYW1lLGRlc2NyaXB0aW9uLHNjaGVtYSBhbmQgZGVmYXVsdAogICAgKiBBbHNvIGFkZHMgZXhhbXBsZXMgaW4gdGhlIGRlZmF1bHQgY29sdW1uCiAgKiBSZXNwb25zZXMKICAgICogU2hvd3Mgb2JqZWN0IHJlZmVyZW5jZXMgcGVyIG1lZGlhIHR5cGUKICAgICogQ3VycmVudGx5IGRvZXMgbm90IGxpc3QgYW5vbnltb3VzIHR5cGVzCgpUaGUgZm9sbG93aW5nIHN0dWZmIGlzIG5vdCAoeWV0PykgaGFuZGxlZDoKICAqIEV4dGVybmFsIGV4YW1wbGVzCiAgKiBIZWFkZXJzCiAgKiBTZWN1cml0eQogICogU2VydmVycwogICogVGFncw== readmeEtag: '"fe1ed7ca1ade0a6835fce2db966af39e34da3330"' readmeLastModified: Tue, 26 Oct 2021 15:21:25 GMT repositoryId: 419874172 description: Generate AsciiDoc using a OpenAPI 3.0 json file created: '2021-10-21T20:55:18Z' updated: '2023-09-14T08:55:44Z' language: Java archived: true stars: 0 watchers: 3 forks: 0 owner: IvoLimmen logo: https://avatars.githubusercontent.com/u/196375?v=4 repoEtag: '"655b626af43a04a54ecc271eab2f18db23b70255dbb6a3fb9f1d27f2e2ad5019"' repoLastModified: Thu, 14 Sep 2023 08:55:44 GMT foundInMaster: true category: Parsers id: 84079117079f066573106b694a50dd9b - source: openapi3 tags repository: https://github.com/umatare5/logbook-openapi-src v3: true repositoryMetadata: base64Readme: >- IyBsb2dib29rLW9wZW5hcGktc3JjCgpsb2dib29rLW9wZW5hcGktc3JjIGlzIGEgc291cmNlIGdlbmVyYXRlcyBsaWJyYXJpZXMgZm9yIFtMb2dib29rIEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL3VtYXRhcmU1L2xvZ2Jvb2stYXBpKS4KClRoaXMgY29kZSBnZW5lcmF0ZXMgZm9sbG93aW5nIHR3byBtb2R1bGVzOwoKLSBbbG9nYm9vay1nb10oaHR0cHM6Ly9naXRodWIuY29tL3VtYXRhcmU1L2xvZ2Jvb2stZ28pCgogIEdvIENsaWVudCB0byB1c2UgTG9nYm9vayBBUEkuCgotIFtsb2dib29rLWFwaS1mcmFtZXdvcmstaW1wbF0oaHR0cHM6Ly9naXRodWIuY29tL3VtYXRhcmU1L2xvZ2Jvb2stYXBpLWZyYW1ld29yay1pbXBsKQoKICBJbXBsZW1lbnRhdGlvbiBmb3IgZnJhbWV3b3JrIGxheWVyIGluIExvZ2Jvb2sgQVBJLgoKIyMgRGV2ZWxvcG1lbnQKCiMjIyBTZXR1cAoKLSBJbnN0YWxsIGBzd2FnZ2VyLWNsaWAgZm9yIGJ1bmRsZSBkaXZpZGVkIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMuCgogIGBgYHNoCiAgbnBtIGluc3RhbGwKICBgYGAKCi0gSW5zdGFsbCBgb2FwaS1jb2RlZ2VuYCBmb3IgYnVpbGQgdGhlIGNsaWVudC4KCiAgYGBgc2gKICBnbyBpbnN0YWxsIGdpdGh1Yi5jb20vZGVlcG1hcC9vYXBpLWNvZGVnZW4vY21kL29hcGktY29kZWdlbkBsYXRlc3QKICBgYGAKCiMjIyBCdWlsZAoKYGBgc2gKbWFrZSBidWlsZApgYGAKCiMjIyBSZWxlYXNlCgpgYGBzaApnaXQgYnVtcAptYWtlIHJlbGVhc2UKYGBgCg== readmeEtag: '"afe21a21a6cae423c7612bfa5df62f99ddb28aa9"' readmeLastModified: Thu, 27 Jan 2022 11:41:41 GMT repositoryId: 449611422 description: Source of libraries to use Logbook API created: '2022-01-19T08:39:29Z' updated: '2022-02-15T13:53:10Z' language: Shell archived: false stars: 0 watchers: 1 forks: 0 owner: umatare5 logo: https://avatars.githubusercontent.com/u/72645163?v=4 repoEtag: '"75fca054c74e757d919beb54e33c0a90bfb101a40f64b0bede54113eecb8c283"' repoLastModified: Tue, 15 Feb 2022 13:53:10 GMT foundInMaster: true category: Code Generators id: 75906f5f428a76f4ed3ebdc42f111e54 - source: openapi3 tags repository: https://github.com/takeshi-kishima/map-experiment v3: true id: fc8c64bdcd6d624586eebbb056e26213 repositoryMetadata: base64Readme: >- IyBtYXAtZXhwZXJpbWVudAojIyMgRG9ja2Vy5YaF44Gn6ZaL55m644GZ44KL44Gq44KJCiogRG9ja2Vy55Kw5aKDCiogW1JlbW90ZSAtIENvbnRhaW5lcnNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1tcy12c2NvZGUtcmVtb3RlLnJlbW90ZS1jb250YWluZXJzKQoK44KS5L2/44GE44G+44GZCgojIyMgW1JlbW90ZSAtIENvbnRhaW5lcnNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1tcy12c2NvZGUtcmVtb3RlLnJlbW90ZS1jb250YWluZXJzKQpWU2NvZGXjga7mi6HlvLXmqZ/og73jgafjgZnjgIJGMSA+CmBgYApSZW1vdGUtQ29udGFpbmVyczogT3BlbiBGb2xkZXIgaW4gQ29udGFpbmVyLi4uCmBgYArjgafjgZPjga7jg5Xjgqnjg6vjg4DjgpLplovjgZHjgbDjgIFEb2NrZXLlhoXjgafplovnmbrnkrDlooPkvb/jgYjjgb7jgZnjgIIgIAoqIOOBk+OBruaLoeW8teapn+iDveOBruioreWumuODleOCoeOCpOODq+e+pOOBry5kZXZjb250YWluZXLjg5Xjgqnjg6vjg4DlhoXjgavlhaXjgaPjgabjgYrjgorjgb7jgZnjgIIgIAoqIOODl+ODreOCreOCt+eSsOWig+OBoOOBo+OBn+OBruOBp+OAgS5lbnbjgafoqK3lrprjgZfjgabjgb7jgZnjgIIgIAoqIOS9v+OBo+OBpuOBquOBhOOCk+OBp+OBmeOBjOOAgVBvc3RncmVz44KC56uL44Gh5LiK44GM44KK44G+44GZ4oCm77yI44GE44Gk44GL57mL44GS44Gm44KE44KK5Y+W44KK44GX44Gf44GE44Gq44Go6ICD44GI44Gm77yJCgojIyMgT3BlbkFQSSAoU3dhZ2dlcikKT3BlbkFQSeOBrkRvY2tlcuOCs+ODs+ODhuODiuOBjOeri+OBoeS4iuOBjOOBo+OBpuOBiuOCiuOBvuOBmQp8IOOCs+ODs+ODhuODinwg44Ob44K544OIOuODneODvOODiCB8CnwgLS0tLSB8IC0tLS0gfAp8IHN3YWdnZXItZWRpdG9yICAgICAgICAgICAgICAgICAgIHwgbG9jYWxob3N0OjgwMDEgfAp8IHN3YWdnZXItdWkgICAgICAgICAgICAgICAgICAgICAgIHwgbG9jYWxob3N0OjgwMDIgfAp8IHN0b3BsaWdodC9wcmlzbShBUEnjg6Ljg4Pjgq/jgrXjg7zjg5ApICB8IGxvY2FsaG9zdDo4MDAzIHwKCuOCs+ODnuODs+ODiQpgYGAKbnBtIHJ1biBvcGVuYXBpCmBgYArjgafjgIEvc3JjL2dlbmVyYXRlZC/phY3kuIvjgatBUElDbGllbnTjgafjgYLjgotUeXBlU2NyaXB044Gu44Kz44O844OJ44KS44KS55Sf5oiQ44GX44G+44GZ44CCCgrjgZnjgbnjgabjgIEvYXBpL29wZW5hcGkueW1s44KS5Y+C54Wn44GX44Gm44G+44GZCg== readmeEtag: '"58516d1fc2ffaffff87607556511980884f5e027"' readmeLastModified: Wed, 10 Aug 2022 02:33:20 GMT repositoryId: 501450034 description: ReactでGoogleMapの実験場。いろいろと付け足してみたい created: '2022-06-09T00:15:08Z' updated: '2022-06-29T00:34:11Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: takeshi-kishima logo: https://avatars.githubusercontent.com/u/63081424?v=4 repoEtag: '"e025353ef5406c1fd2078fb91f767d75087de8ece5744f805a47f6a775bd0213"' repoLastModified: Wed, 29 Jun 2022 00:34:11 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/sabo99/laravel-restfulapi v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9sYXJhdmVsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbGFyYXZlbC9hcnQvbWFzdGVyL2xvZ28tbG9ja3VwLzUlMjBTVkcvMiUyMENNWUsvMSUyMEZ1bGwlMjBDb2xvci9sYXJhdmVsLWxvZ29sb2NrdXAtY215ay1yZWQuc3ZnIiB3aWR0aD0iNDAwIj48L2E+PC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vdHJhdmlzLWNpLm9yZy9sYXJhdmVsL2ZyYW1ld29yayI+PGltZyBzcmM9Imh0dHBzOi8vdHJhdmlzLWNpLm9yZy9sYXJhdmVsL2ZyYW1ld29yay5zdmciIGFsdD0iQnVpbGQgU3RhdHVzIj48L2E+CjxhIGhyZWY9Imh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9sYXJhdmVsL2ZyYW1ld29yayI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L2R0L2xhcmF2ZWwvZnJhbWV3b3JrIiBhbHQ9IlRvdGFsIERvd25sb2FkcyI+PC9hPgo8YSBocmVmPSJodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvbGFyYXZlbC9mcmFtZXdvcmsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC92L2xhcmF2ZWwvZnJhbWV3b3JrIiBhbHQ9IkxhdGVzdCBTdGFibGUgVmVyc2lvbiI+PC9hPgo8YSBocmVmPSJodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvbGFyYXZlbC9mcmFtZXdvcmsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC9sL2xhcmF2ZWwvZnJhbWV3b3JrIiBhbHQ9IkxpY2Vuc2UiPjwvYT4KPC9wPgoKPGJyPgoKIyMg8J+agCBBUEkgRG9jdW1lbnRhdGlvbgoKLSAgIFtWaWV3IERvY3VtZW50YXRpb25dKGh0dHBzOi8vYXBwLnN3YWdnZXJodWIuY29tL2FwaXMtZG9jcy9zYWJvOTkvTGFyYXZlbFJFU1RmdWxBUEkvMS4wIy8pCgo8YnI+CgojIyDwn5qAIFF1aWNrIHN0YXJ0IChDbG9uZSBQcm9qZWN0KQoKMS4gICoqRmlyc3QgQ2xvbmUgUHJvamVjdCoqCgogICAgQ2xvbmUgcHJvamVjdCB3aXRoIHRoaXMgbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fibzk5L2xhcmF2ZWwtcmVzdGZ1bGFwaS5naXQKCjIuICAqKkluc3RhbGwgRGVwZWRlbmNpZXMqKgoKICAgIFJlcXVpcmVkIGBjb21wb3NlcmAKCiAgICBgYGBzaGVsbAogICAgY29tcG9zZXIgaW5zdGFsbAogICAgYGBgCjMuICAqKkNvbmZpZyBFbnZpcm9ubWVudCoqCgogICAgQ29weSBgLmVudi5leGFtcGxlYCB0byBuZXcgZmlsZSBgLmVudmAKICAgIGBgYHNoZWxsCiAgICBjcCAuZW52LmV4YW1wbGUgLmVudgogICAgYGBgCgo0LiAgKipSZWFkeSB0byBsYXVuY2ggb24gbG9jYWwgc2VydmVyKioKCiAgICBgYGBzaGVsbAogICAgcGhwIGFydGlzYW4gc2VydmUKICAgIGBgYAoKICAgIFlvdXIgc2l0ZSBpcyBub3cgcnVubmluZyBhdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAKCjUuICAqKkxlYXJuIG1vcmUqKgoKICAgIC0gICBbTGFyYXZlbCBEb2N1bWVudGF0aW9uXShodHRwczovL2xhcmF2ZWwuY29tL2RvY3MvOS54LykKCiMjIExpY2Vuc2UKClRoZSBMYXJhdmVsIGZyYW1ld29yayBpcyBvcGVuLXNvdXJjZWQgc29mdHdhcmUgbGljZW5zZWQgdW5kZXIgdGhlIFtNSVQgbGljZW5zZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgo= readmeEtag: '"51d210f64930913796715365723af111e729de94"' readmeLastModified: Thu, 05 May 2022 13:38:03 GMT repositoryId: 463057012 description: >- Backend Restful API with Framework Laravel 9 | API Documentation Link below created: '2022-02-24T07:54:51Z' updated: '2022-02-27T13:19:46Z' language: PHP archived: false stars: 0 watchers: 1 forks: 0 owner: sabo99 logo: https://avatars.githubusercontent.com/u/49272368?v=4 repoEtag: '"265ee97231d934a9ff581c896eec0795c5bf4eba2d153404e0c5d7ca6ccaeef1"' repoLastModified: Sun, 27 Feb 2022 13:19:46 GMT foundInMaster: true category: - Testing - Server Implementations id: 5b2cfcb738d836f99e8d100b603771ba - source: openapi3 tags repository: https://github.com/dahang/uci_djs v3: true id: 0da9c939d7fb10d818215dd9bd77eb9e repositoryMetadata: base64Readme: >- IyBSQkMgVUNJIERvdyBKb25lcyBJbmRleCBkYXRhIHNldCB3aXRoIHNwcmluZy1ib290LTIgd2ViZmx1eAoKIyMgQnVpbGRpbmcgYXBwbGljYXRpb24KCiMjIyBQcmUtcmVxdWlzaXRlcwotIEpESyAxNysKLSBtYXZlbiAzCi0gZG9ja2VyIENMSQoKIyMgT3B0aW9uIDEgcnVuaW5nIGZyb20gbG9jYWwKCmBgYHNoCiAgICBjZCBiYWNrZW5kCiAgICBtdm4gY2xlYW4gcGFja2FnZQogICAgbXZuIHNwcmluZy1ib290OnJ1bgogICAgZ290byBodHRwOi8vbG9jYWxob3N0OjgwODAvd2ViamFycy9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKYGBgCgojIyBPcHRpb24gMjogVXNpbmcgc2NyaXB0CgpgYGBzaAogICAgLi9iYWNrZW5kL2J1aWxkLnNoCiAgICAuL3N0YXJ0LnNoCgpgYGAKCgojIyBPcHRpb24gMzogQnVpbGRpbmcgRXhlY3V0YWJsZSBKQVIKVG8gY3JlYXRlIGFuIGBleGVjdXRhYmxlIGphcmAsIHNpbXBseSBydW46CgpgYGBzaAogbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgojIyMjIFRvIGNyZWF0ZSBhIG5vbi1uYXRpdmUgZG9ja2VyIGltYWdlLCBzaW1wbHkgcnVuOgoKYGBgc2gKbXZuIGNsZWFuIHNwcmluZy1ib290OmJ1aWxkLWltYWdlCmBgYAoKIyMjIyBUbyBydW4gdGhlIGRlbW8gdXNpbmcgZG9ja2VyLCBpbnZva2UgdGhlIGZvbGxvd2luZzoKCmBgYHNoCmRvY2tlciBydW4gLS1ybSAtcCA4MDgwOjgwODAgZGpzOjEuMC4wLVNOQVBTSE9UCmBgYAo= readmeEtag: '"0040595c1c357acffccd43e8292b2faed633b02a"' readmeLastModified: Mon, 24 Oct 2022 11:46:02 GMT repositoryId: 556718039 description: DEMO for OpenAPI3 Spring boot 2.7.x Webflux. R2DBC created: '2022-10-24T11:37:14Z' updated: '2022-10-24T12:16:24Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: dahang logo: https://avatars.githubusercontent.com/u/1457798?v=4 license: MIT repoEtag: '"cb83c4d3283d232b4d9fe23723bec3dbe8ec71887ede8a52526d69cfea959dd1"' repoLastModified: Mon, 24 Oct 2022 12:16:24 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/veselovnd88/websocketroomproject v3: true id: b83f5b1f55deaae47e0ebad1f20d8484 repositoryMetadata: repositoryId: 613807194 description: >- Part of Harvex Project. My part is responsible for Room catalog, room settings, chat and events, and also controlling player settings between all users created: '2023-03-14T10:06:12Z' updated: '2023-07-10T13:42:44Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: Veselovnd88 logo: https://avatars.githubusercontent.com/u/63257041?v=4 repoEtag: '"00d0f25c4ebf1f7d13ebe15efe749925e69863a3ab601f796083b63106ef9498"' repoLastModified: Mon, 10 Jul 2023 13:42:44 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/irealworlds/laravel-openapi v3: true id: d955812d6ad9842a4e1dba2cb659e942 repositoryMetadata: repositoryId: 673433766 description: OpenApi generation for Laravel applications. created: '2023-08-01T15:59:35Z' updated: '2023-08-08T13:45:40Z' language: PHP archived: false stars: 0 watchers: 1 forks: 0 owner: irealworlds logo: https://avatars.githubusercontent.com/u/28299559?v=4 license: MIT repoEtag: '"4a09a34fedbf7f7b1cc58eacb050bceaa746869831701d9f6718f10afd7c5058"' repoLastModified: Tue, 08 Aug 2023 13:45:40 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/asis2016/amaharjande v3: true id: 514fac05bafc5ae153e267cfd3c2b487 repositoryMetadata: base64Readme: >- IyB3d3cuYW1haGFyamFuLmRlCgojIyBBIHNob3J0IG5vdGUgb24gQ2xvdWQgY29tcHV0aW5nCi0gW1JlYWQgdGhpcyBhcnRpY2xlXShjbG91ZC1jb25jZXB0cy9SRUFETUUubWQpCgojIyBPcmdhbml6ZSBtYXJrZG93biB3aXRoIFB5dGhvbgotIFN0ZXAtYnktc3RlcCBndWlkZSB0byBvcmdhbml6aW5nIHlvdXIgbWFya2Rvd24gZmlsZXMgYW5kIGNvbXBpbGluZyB0aGVtIGludG8gYSBzaW5nbGUgUkVBRE1FLm1kIHVzaW5nIFB5dGhvbi4gW1JlYWQgbW9yZV0ob3JnYW5pemUtbWFya2Rvd24td2l0aC1weXRob24vUkVBRE1FLm1kKQoKIyMgUmV2ZXJzZSBwcm94eQotIFRoaXMgcHJvamVjdCBkZW1vbnN0cmF0ZXMgcmV2ZXJzZSBwcm94eSB1c2luZyBEamFuZ28sIEZsYXNrIGFuZCBMaW51eC4gW1JlYWQgbW9yZV0ocmV2ZXJzZS1wcm94eS9SRUFETUUubWQpCgojIyBTZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSBzZXR1cCBvbiBuZ2lueAotIFRoaXMgYXJ0aWNsZSBzaG93cyB5b3UgaG93IHlvdSBjYW4gY3JlYXRlIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgZm9yIG5naW54LiBbUmVhZCBtb3JlXShzZWxmLXNpZ25lZC1jZXJ0aWZpY2F0ZS1uZ2lueC9SRUFETUUubWQpCgojIyB3aGF0aXNteWlwCi0gVGhpcyBwcm9qZWN0IHNob3dzIHlvdSBob3cgeW91IGNhbiBidWlsZCB5b3VyIG93biBwdWJsaWMgSVAgYWRkcmVzcyB2aWV3ZXIgdXNpbmcgRmxhc2suIFtSZWFkIG1vcmVdKHdoYXRpc215aXAvUkVBRE1FLm1kKQ== readmeEtag: '"943e272826af771c8e7b238224481232cb3ab7b2"' readmeLastModified: Sat, 20 Jan 2024 06:35:50 GMT repositoryId: 451885030 description: >- This repository is a part of www.amaharjan.de blogging which provides tutorial on various topics. created: '2022-01-25T13:19:15Z' updated: '2023-12-17T14:40:22Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: asis2016 logo: https://avatars.githubusercontent.com/u/19593234?v=4 repoEtag: '"368bfa70eb3c016a6ba2da4b68b7ff4975b7bb228ca5df8ce4b205c15ba6ea6b"' repoLastModified: Sun, 17 Dec 2023 14:40:22 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/himenon/openapi-parameter-formatter v3: true repositoryMetadata: base64Readme: >- IyBAaGltZW5vbi9vcGVuYXBpLXBhcmFtZXRlci1mb3JtYXR0ZXIKCkEgbGlicmFyeSB0aGF0IHNlcmlhbGl6ZXMgT3BlbkFQSSBwYXJhbWV0ZXIgb2JqZWN0cy4KSXQgaXMgaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgc3R5bGUgZGVmaW5pdGlvbi4KCi0gaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4xLjAubWQjc3R5bGUtZXhhbXBsZXMKCiMjIFVzYWdlCgpgYGB0cwppbXBvcnQgeyBQYXRoUGFyYW1ldGVyIH0gZnJvbSAiQGhpbWVub24vb3BlbmFwaS1wYXJhbWV0ZXItZm9ybWF0dGVyIjsKClBhdGhQYXJhbWV0ZXIuZ2VuZXJhdGUoImNvbG9yIiwgewogIHZhbHVlOiB7CiAgICBSOiAxMDAsCiAgICBHOiAyMDAsCiAgICBCOiAxNTAsCiAgfSwKICBzdHlsZTogImxhYmVsIiwKICBleHBsb2RlOiB0cnVlLAp9KTsKYGBgCgpgYGB0cwppbXBvcnQgeyBRdWVyeVBhcmFtZXRlciB9IGZyb20gIkBoaW1lbm9uL29wZW5hcGktcGFyYW1ldGVyLWZvcm1hdHRlciI7CgpRdWVyeVBhcmFtZXRlci5nZW5lcmF0ZSgiY29sb3IiLCB7CiAgdmFsdWU6IHsKICAgIFI6ICIjMTAwIiwKICAgIEc6ICIjMjAwIiwKICAgIEI6ICIjMTUwIiwKICB9LAogIHN0eWxlOiAiZm9ybSIsCiAgZXhwbG9kZTogdHJ1ZSwKfSk7CgovLyBSPSUyMzEwMCZHPSUyMzIwMCZCPSUyMzE1MApgYGAKCmBgYHRzCmltcG9ydCB7IFF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAiQGhpbWVub24vb3BlbmFwaS1wYXJhbWV0ZXItZm9ybWF0dGVyIjsKClF1ZXJ5UGFyYW1ldGVyLmdlbmVyYXRlKCJjb2xvciIsIHsKICB2YWx1ZTogWyIjYmx1ZSIsICIjYmxhY2siLCAiI2Jyb3duIl0sCiAgc3R5bGU6ICJzcGFjZURlbGltaXRlZCIsCiAgZXhwbG9kZTogZmFsc2UsCn0pOwoKLy8gY29sb3I9JTIzYmx1ZSUyMCUyM2JsYWNrJTIwJTIzYnJvd24KYGBgCgpgYGB0cwppbXBvcnQgeyBRdWVyeVBhcmFtZXRlciB9IGZyb20gIkBoaW1lbm9uL29wZW5hcGktcGFyYW1ldGVyLWZvcm1hdHRlciI7CgpRdWVyeVBhcmFtZXRlci5nZW5lcmF0ZSgiY29sb3IiLCB7CiAgdmFsdWU6IFsiI2JsdWUiLCAiI2JsYWNrIiwgIiNicm93biJdLAogIHN0eWxlOiAicGlwZURlbGltaXRlZCIsCiAgZXhwbG9kZTogZmFsc2UsCn0pOwoKLy8gY29sb3I9JTIzYmx1ZSU3QyUyM2JsYWNrJTdDJTIzYnJvd24KYGBgCgpgYGB0cwppbXBvcnQgeyBRdWVyeVBhcmFtZXRlciB9IGZyb20gIkBoaW1lbm9uL29wZW5hcGktcGFyYW1ldGVyLWZvcm1hdHRlciI7CgpRdWVyeVBhcmFtZXRlci5nZW5lcmF0ZSgiY29sb3IiLCB7CiAgdmFsdWU6IHsKICAgIFI6IDEwMCwKICAgIEc6IDIwMCwKICAgIEI6IDE1MCwKICB9LAogIHN0eWxlOiAiZGVlcE9iamVjdCIsCiAgZXhwbG9kZTogdHJ1ZSwKfSk7CgovLyBjb2xvciU1QlIlNUQ9MTAwJmNvbG9yJTVCRyU1RD0yMDAmY29sb3IlNUJCJTVEPTE1MApgYGAKCmBgYHRzCmltcG9ydCB7IEhlYWRlclBhcmFtZXRlciB9IGZyb20gIkBoaW1lbm9uL29wZW5hcGktcGFyYW1ldGVyLWZvcm1hdHRlciI7CgpIZWFkZXJQYXJhbWV0ZXIuZ2VuZXJhdGUoImNvbG9yIiwgewogIHZhbHVlOiBbImJsdWUiLCAiYmxhY2siLCAiYnJvd24iXSwKICBzdHlsZTogInNpbXBsZSIsCiAgZXhwbG9kZTogZmFsc2UsCn0pOwovLyAiYmx1ZSxibGFjayxicm93biIKYGBgCgpgYGB0cwppbXBvcnQgeyBDb29raWVQYXJhbWV0ZXIgfSBmcm9tICJAaGltZW5vbi9vcGVuYXBpLXBhcmFtZXRlci1mb3JtYXR0ZXIiOwoKQ29va2llUGFyYW1ldGVyLmdlbmVyYXRlKCJjb2xvciIsIHsKICB2YWx1ZTogWyJibHVlIiwgImJsYWNrIiwgImJyb3duIl0sCiAgc3R5bGU6ICJmb3JtIiwKICBleHBsb2RlOiBmYWxzZSwKfSk7Ci8vICJjb2xvcj1SLDEwMCxHLDIwMCxCLDE1MCIKYGBgCgojIyBMSUNFTkNFCgpbQGhpbWVub24vb3BlbmFwaS1wYXJhbWV0ZXItZm9ybWF0dGVyXShodHRwczovL2dpdGh1Yi5jb20vSGltZW5vbi9vcGVuYXBpLXBhcmFtZXRlci1mb3JtYXR0ZXIp44O7TUlUCg== readmeEtag: '"6e23c7b3fe5566ce18caf7e0402dc380297c0bb4"' readmeLastModified: Tue, 19 Mar 2024 12:15:25 GMT repositoryId: 328625019 description: OpenAPI Query and Path Parameter Formatter. created: '2021-01-11T10:19:36Z' updated: '2022-04-29T12:10:16Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 2 owner: Himenon logo: https://avatars.githubusercontent.com/u/6715229?v=4 license: MIT repoEtag: '"9029f2e541ce5fcbe84aec989ae5e12b31a98b4c7a97416b2e3a2b90b30d4fa0"' repoLastModified: Fri, 29 Apr 2022 12:10:16 GMT foundInMaster: true category: Data Validators id: 2db87929392a80657903864a4b385784 - source: openapi3 tags repository: https://github.com/laurosilveira/sify-flix-api v3: true id: 8e919ac798391627da92325cb87fa471 repositoryMetadata: base64Readme: >- IyBzaWZ5LWZsaXgtYXBpCgojIyBBYm91dCB0aGlzIHByb2plY3QKKiBbQWJvdXRdKCNhYm91dCkKKiBbQXJjaGl0ZWN0dXJlXSgjQXJjaGl0ZWN0dXJlKQoqIFtUZWNobm9sb2dpZXNdKCNUZWNobm9sb2dpZXMpCiogW1N3YWdnZXIgRG9jdW1lbnRhdGlvbl0oI1N3YWdnZXItZG9jdW1lbnRhdGlvbikKKiBbU2VjdXJpdHldKCNTZWN1cml0eSkKKiBbSG93IHRvIHJ1bl0oI2hvdy10by1ydW4pCiAgICAqIFtSdW4gd2l0aCBEb2NrZXJdKCNydW4td2l0aC1kb2NrZXItY29tcG9zZSkKICAgICogW1J1biB3aXRoIG12biBzcHJpbmctYm9vdDpydW5dKCNydW4td2l0aC1tdm4tc3ByaW5nLWJvb3QpCiogW2hvdyB0byBydW4gVGVzdF0oI3J1bi10ZXN0cykKKiBbQ29udHJpYnV0b3JzXSgjY29udHJpYnV0b3JzKQoKIyBBYm91dApUaGlzIGlzIGEgUmVzdCBBUEkgZGV2ZWxvcGVkIGJhc2VkIG9uIHRoZSByZXF1aXJlbWVudHMgZ2l2ZW4gZm9yIHRoZSBzZWxlY3Rpb24gcHJvY2VzcyBieSB0aGUgY29tcGFueSBXMk0uClRoaXMgQVBJIHdhcyBidWlsdCB3aXRoIEphdmEgMjEsIFNwcmluZyBCb290LCBIMiBEYXRhYmFzZSwgRmx5d2F5IE1pZ3JhdGlvbiwgU3ByaW5nIERvYyBPcGVuQVBJLCBEb2NrZXIgYW5kIERvY2tlci1jb21wb3NlLgoKIyBBcmNoaXRlY3R1cmUKVGhlIGFwcGxpY2F0aW9uIGlzIGJ1aWx0IGZvbGxvd2luZyB0aGUgKipNVkMqKiBkZXNpZ24gcGF0dGVybi4KRWFjaCBvZiB0aGUgY29tcG9uZW50cyB3aWxsIGJlIGRlc2NyaWJlZCBiZWxvdzoKKiAqKlZpZXcqKjogY29udGFpbnMgcmVzcG9uc2UgZnJvbSB0aGUgUmVzdCBjb250cm9sbGVyIHRoYXQgd2lsbCBiZSBzaG93biBpbiBKU09OIGZvcm1hdCB0byB0aGUgY2xpZW50LgoqICoqUmVzdCBDb250cm9sbGVyKio6IHJlc3BvbnNpYmxlIGZvciByZWNlaXZpbmcgY2FsbHMgYW5kIGRpcmVjdGluZyB0aGVtIHRvIHRoZSBjb3JyZWN0IHNlcnZpY2UuCiogKipTZXJ2aWNlKio6IGEgZGVzaWduIHBhdHRlcm4gbGF5ZXIgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgdGhlIHNlcnZpY2UgZnJvbSB0aGUgcmVwb3NpdG9yeSBsYXllci4KKiAqKlJlcG9zaXRvcnkqKjogdGhpcyBsYXllciBpcyByZXNwb25zaWJsZSBmb3IgY29ubmVjdGluZyB0byB0aGUgZGF0YWJhc2UgYW5kIGZvciBwZXJzaXN0aW5nLCByZXRyaWV2aW5nLCB1cGRhdGluZyBhbmQgZGVsZXRpbmcgZGF0YS4KCiMgVGVjaG5vbG9naWVzCi0gSmF2YSAyMQotIFNwcmluZyBCb290IDMuMi4yCi0gU3ByaW5nIFNlY3VyaXR5IC0gQmFzaWMgQXV0aGVudGljYXRpb24KLSBTcHJpbmcgT3BlbkFQSQotIEgyIERhdGFiYXNlCi0gRmx5d2F5IE1pZ3JhdGlvbgotIERvY2tlcgotIERvY2tlci1jb21wb3NlCi0gQXNzZXJ0SiwgTW9ja2l0bwoKIyBTd2FnZ2VyIERvY3VtZW50YXRpb24KClRoZSBkb2N1bWVudGF0aW9uIGlzIGdlbmVyYXRlZCBieSBTcHJpbmcgT3BlbmFwaS4gT25jZSB5b3UgaGF2ZSBzdGFydGVkIHRoZSBhcHBsaWNhdGlvbiB0aGUgdXJsOiBgYGBodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sYGBgCgohW3NwYWNlLXNoaXAtcmVzY29udHJvbGxlci5wbmddKGRhdGEvc3BhY2Utc2hpcC1yZXN0Y29udHJvbGxlci5wbmcpCgojIFNlY3VyaXR5ClRoaXMgQVBJIGlzIHByb3RlY3RlZCB3aXRoIFNwcmluZyBTZWN1cml0eSB1c2luZyBiYXNpYyBhdXRob3JpemF0aW9uLgpUaGlzIEFQSSBpcyBjb25maWd1cmVkIHRvIG5vdCBzYXZlIHNlc3Npb25zLgpPbmNlIHlvdSBoYXZlIGFjY2Vzc2VkIFN3YWdnZXIsIHNpbXBseSBhdXRoZW50aWNhdGUgd2l0aCB5b3VyIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4KTm90ZXM6IEJhc2ljIGF1dGhvcml6YXRpb24gbW9kZSBpcyAqKm5vdCByZWNvbW1lbmRlZCoqLCBhcyBpdCBpcyBub3QgdGhlIG1vc3Qgc2VjdXJlLgpXaGVuIHN0YXJ0aW5nIHRoZSBhcHBsaWNhdGlvbiwgYSB1c2VyIGBgYHVzZXI6IGFkbWluIHBhc3N3b3JkOjEyMzRgYGAgd2l0aCB0aGUgYWRtaW4gcm9sZSB3aWxsIGFscmVhZHkgYmUgYXZhaWxhYmxlLgoKIyBIb3cgdG8gUnVuClRoZXJlIHR3byBvcHRpb25zIHRvIHJ1biB0aGlzIGFwcGxpY2F0aW9uLCBydW4gYnkgZG9ja2VyLWNvbXBvc2Ugb3IgcnVuIGFzIHNwcmluZy1ib290LgoKIyMjIFJ1biB3aXRoIGRvY2tlci1jb21wb3NlCk1ha2Ugc3VyZSB5b3UgaGF2ZSAqKkRvY2tlcioqIGluc3RhbGxlZCBhbmQgZXhlY3V0ZSB0aGUgY29tbWFuZC4KCmBgYApkb2NrZXItY29tcG9zZSB1cApgYGAKIyMjIFJ1biB3aXRoIG12biBzcHJpbmctYm9vdApgYGBzaGVsbAptdm4gc3ByaW5nLWJvb3Q6cnVuCmBgYAoKIyBSdW4gdGVzdHMKClRoaXMgYXBwbGljYXRpb24gaGFzIHVuaXR5IHRlc3RzIGFuZCBpbnRlZ3JhdGlvbiB0ZXN0cywgb25jZSBpdCB1c2UgTWF2ZW4ganVzdCBydW46CgpgYGAKbXZuIHRlc3QKYGBgCgojIyBDb250cmlidXRvcnMKW0BMYXVyb1NpbHZlaXJhXShodHRwczovL2dpdGh1Yi5jb20vTGF1cm9TaWx2ZWlyYSkK readmeEtag: '"a58dff38848d87c48aaf24840a06ce946dbabded"' readmeLastModified: Mon, 24 Jun 2024 07:47:59 GMT repositoryId: 761306430 description: >- An API REST built with Spring boot, spring security about movies and series of spaceships created: '2024-02-21T16:14:56Z' updated: '2024-06-24T07:48:03Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: LauroSilveira logo: https://avatars.githubusercontent.com/u/10181673?v=4 repoEtag: '"f67105d8b754b6c2605cac13fafe194d6b1d5b009874ebce4b20eed7e0076c3c"' repoLastModified: Mon, 24 Jun 2024 07:48:03 GMT category: Server Implementations foundInMaster: true - source: https://openapi.tools/ name: Apitive Studio category: - Documentation - GUI Editors - Mock language: - Angular 7.0 - Java - Saas link: https://www.apitive.com source_description: > A platform for Digital Product Managers and API Consultants to design REST APIs with in-built mock and documentation. v2: true v3: true foundInMaster: true id: 2fa64050f1dc133ee8b33c58c25298bf - source: https://openapi.tools/ name: LucyBot api-spec-converter category: Converters language: Node.js link: https://www.npmjs.com/package/api-spec-converter repository: https://github.com/lucybot-inc/api-spec-converter source_description: Convert between API description formats such as OpenAPI and RAML. v2: true v3: true repositoryMetadata: base64Readme: >- IyBhcGktc3BlYy1jb252ZXJ0ZXIKPiBUaGlzIHByb2plY3QgaXMgbG9va2luZyBmb3IgYSBuZXcgbWFpbnRhaW5lciEgTGV0IHVzIGtub3cgaWYgeW91J3JlIGludGVyZXN0ZWQgaW4gdGFraW5nIGl0IG92ZXIuCgpbIVtTaGFyZSBvbiBUd2l0dGVyXVt0d2l0dGVyLWltYWdlXV1bdHdpdHRlci1saW5rXQoKWyFbQ2hhdCBvbiBnaXR0ZXJdW2dpdHRlci1pbWFnZV1dW2dpdHRlci1saW5rXQpbIVtOUE0gdmVyc2lvbl1bbnBtLWltYWdlXV1bbnBtLWxpbmtdClshW0J1aWxkIHN0YXR1c11bdHJhdmlzLWltYWdlXV1bdHJhdmlzLWxpbmtdCgpbIVtEZXBlbmRlbmN5IHN0YXR1c11bZGVwcy1pbWFnZV1dW2RlcHMtbGlua10KWyFbZGV2RGVwZW5kZW5jeSBzdGF0dXNdW2RldmRlcHMtaW1hZ2VdXVtkZXZkZXBzLWxpbmtdCgpDb252ZXJ0IGJldHdlZW4gQVBJIGRlc2NyaXB0aW9uIGZvcm1hdHMgc3VjaCBhcyBbU3dhZ2dlcl0oaHR0cDovL3N3YWdnZXIuaW8vKSBhbmQgW1JBTUxdKGh0dHA6Ly9yYW1sLm9yZy8pCgoqKkN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIGNvbnZlcnNpb24gdG8gT3BlbkFQSShma2EgU3dhZ2dlcikgMi4wIGZvcm1hdCwgYW5kIGZyb20gT3BlbkFQSSAyLjAgdG8gT3BlbkFQSSAzLjAueCoqCgpZb3UgY2FuIGFsc28gdXNlIHRoZSBvbmxpbmUgdmVyc2lvbiBhdCBodHRwczovL2x1Y3lib3QtaW5jLmdpdGh1Yi5pby9hcGktc3BlYy1jb252ZXJ0ZXIvLgoKIyMgSW5zdGFsbGF0aW9uCgojIyMgQ29tbWFuZCBMaW5lCj4gUHJvYmxlbXM/IFNlZSBbaXNzdWUgIzEzMl0oaHR0cHM6Ly9naXRodWIuY29tL0x1Y3lCb3QtSW5jL2FwaS1zcGVjLWNvbnZlcnRlci9pc3N1ZXMvMTMyKQpgYGBiYXNoCm5wbSBpbnN0YWxsIC1nIGFwaS1zcGVjLWNvbnZlcnRlcgpgYGAKCiMjIyBOb2RlSlMvQnJvd3NlcgpgYGBiYXNoCm5wbSBpbnN0YWxsIC0tc2F2ZSBhcGktc3BlYy1jb252ZXJ0ZXIKYGBgCgojIyBVc2FnZQoKIyMjIENvbW1hbmQgTGluZQpgYGBiYXNoCiQgYXBpLXNwZWMtY29udmVydGVyIC1oCgogIFVzYWdlOiBhcGktc3BlYy1jb252ZXJ0ZXIgW29wdGlvbnNdIDxVUkx8ZmlsZW5hbWU+CgogIENvbnZlcnQgQVBJIGRlc2NyaXB0aW9ucyBiZXR3ZWVuIHBvcHVsYXIgZm9ybWF0cy4KCiAgU3VwcG9ydGVkIGZvcm1hdHM6CiAgICAqIHN3YWdnZXJfMQogICAgKiBzd2FnZ2VyXzIKICAgICogb3BlbmFwaV8zCiAgICAqIGFwaV9ibHVlcHJpbnQKICAgICogaW9fZG9jcwogICAgKiBnb29nbGUKICAgICogcmFtbAogICAgKiB3YWRsCgogIE9wdGlvbnM6CgogICAgLWgsIC0taGVscCAgICAgICAgICAgICAgb3V0cHV0IHVzYWdlIGluZm9ybWF0aW9uCiAgICAtViwgLS12ZXJzaW9uICAgICAgICAgICBvdXRwdXQgdGhlIHZlcnNpb24gbnVtYmVyCiAgICAtZiwgLS1mcm9tIDxmb3JtYXQ+ICAgICBTcGVjaWZpZXMgZm9ybWF0IHRvIGNvbnZlcnQKICAgIC10LCAtLXRvIDxmb3JtYXQ+ICAgICAgIFNwZWNpZmllcyBvdXRwdXQgZm9ybWF0CiAgICAtcywgLS1zeW50YXggW3N5bnRheF0gICBTcGVjaWZpZXMgb3V0cHV0IGRhdGEgc3ludGF4OiBqc29uIG9yIHlhbWwuIERlZmF1bHRzIHRvIGpzb24KICAgIC1vLCAtLW9yZGVyIFtzb3J0T3JkZXJdIFNwZWNpZmllcyB0b3AgZmllbGRzIG9yZGVyaW5nOiBvcGVuYXBpIG9yIGFscGhhLiBEZWZhdWx0cyB0byBvcGVuYXBpCiAgICAtYywgLS1jaGVjayAgICAgICAgICAgICBDaGVjayBpZiByZXN1bHQgaXMgdmFsaWQgc3BlYwogICAgLWQsIC0tZHVtbXkgICAgICAgICAgICAgRmlsbCBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcyB3aXRoIGR1bW15IGRhdGEKYGBgCgpFeGFtcGxlOgpgYGBiYXNoCiQgYXBpLXNwZWMtY29udmVydGVyIC0tZnJvbT1zd2FnZ2VyXzEgLS10bz1zd2FnZ2VyXzIgLS1zeW50YXg9eWFtbCAtLW9yZGVyPWFscGhhIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9MdWN5Qm90LUluYy9hcGktc3BlYy1jb252ZXJ0ZXIvbWFzdGVyL3Rlc3QvaW5wdXQvc3dhZ2dlcl8xL3BldHN0b3JlL3BldC5qc29uID4gc3dhZ2dlci5qc29uCmBgYAoKIyMjIE5vZGVKUwoKIyMjIE9wdGlvbnMKKiBgZnJvbWAgLSBzb3VyY2UgZm9ybWF0IChzZWUgZm9ybWF0cyBiZWxvdykKKiBgdG9gIC0gZGVzaXJlZCBmb3JtYXQgKHNlZSBmb3JtYXRzIGJlbG93KQoqIGBzb3VyY2VgIC0gRmlsZW5hbWUsIFVSTCwgb3IgSlMgb2JqZWN0IGZvciB0aGUgc291cmNlCiMjIyBTaW1wbGUgZXhhbXBsZToKYGBganMKdmFyIENvbnZlcnRlciA9IHJlcXVpcmUoJ2FwaS1zcGVjLWNvbnZlcnRlcicpOwoKQ29udmVydGVyLmNvbnZlcnQoewogIGZyb206ICdzd2FnZ2VyXzEnLAogIHRvOiAnc3dhZ2dlcl8yJywKICBzb3VyY2U6ICdodHRwczovL2FwaS5nZXR0eWltYWdlcy5jb20vc3dhZ2dlci9hcGktZG9jcycsCn0sIGZ1bmN0aW9uKGVyciwgY29udmVydGVkKSB7CiAgY29uc29sZS5sb2coY29udmVydGVkLnN0cmluZ2lmeSgpKTsKICAvLyBGb3IgeWFtbCBhbmQvb3IgT3BlbkFwaSBmaWVsZCBvcmRlciBvdXRwdXQgcmVwbGFjZSBhYm92ZSBsaW5lCiAgLy8gd2l0aCBhbiBvcHRpb25zIG9iamVjdCBsaWtlIGJlbG93CiAgLy8gICB2YXIgIG9wdGlvbnMgPSB7c3ludGF4OiAneWFtbCcsIG9yZGVyOiAnb3BlbmFwaSd9CiAgLy8gICBjb25zb2xlLmxvZyhjb252ZXJ0ZWQuc3RyaW5naWZ5KG9wdGlvbnMpKTsKfSkKYGBgCiMjIyBDYWxsYmFjayB2cyBQcm9taXNlcwpUaGlzIGxpYnJhcnkgaGFzIGZ1bGwgc3VwcG9ydCBmb3IgYm90aCBjYWxsYmFjayBhbmQgcHJvbWlzZXMuCkFsbCBhc3luYyBmdW5jdGlvbnMgcmV0dXJuIHByb21pc2VzIGJ1dCBhbHNvIHdpbGwgZXhlY3V0ZSBjYWxsYmFjayBpZiBwcm92aWRlZC4KCmBgYGpzCnZhciBDb252ZXJ0ZXIgPSByZXF1aXJlKCdhcGktc3BlYy1jb252ZXJ0ZXInKTsKCkNvbnZlcnRlci5jb252ZXJ0KHsKICBmcm9tOiAnc3dhZ2dlcl8xJywKICB0bzogJ3N3YWdnZXJfMicsCiAgc291cmNlOiAnaHR0cHM6Ly9hcGkuZ2V0dHlpbWFnZXMuY29tL3N3YWdnZXIvYXBpLWRvY3MnLAp9KQoudGhlbihmdW5jdGlvbihjb252ZXJ0ZWQpIHsKICBjb25zb2xlLmxvZyhjb252ZXJ0ZWQuc3RyaW5naWZ5KCkpOwp9KTsKYGBgCiMjIyBBZHZhbmNlZCBmZWF0dXJlczoKYGBganMKdmFyIENvbnZlcnRlciA9IHJlcXVpcmUoJ2FwaS1zcGVjLWNvbnZlcnRlcicpOwpDb252ZXJ0ZXIuY29udmVydCh7CiAgZnJvbTogJ3N3YWdnZXJfMScsCiAgdG86ICdzd2FnZ2VyXzInLAogIHNvdXJjZTogJ2h0dHBzOi8vYXBpLmdldHR5aW1hZ2VzLmNvbS9zd2FnZ2VyL2FwaS1kb2NzJywKfSkKICAudGhlbihmdW5jdGlvbihjb252ZXJ0ZWQpIHsKICAgIC8vIFtPcHRpb25hbF0gRmlsbCBtaXNzaW5nIGZpZWxkcyB3aXRoIGR1bW15IHZhbHVlcwogICAgY29udmVydGVkLmZpbGxNaXNzaW5nKCk7CgogICAgLy8gW09wdGlvbmFsXSBWYWxpZGF0ZSBjb252ZXJ0ZWQgc3BlYwogICAgcmV0dXJuIGNvbnZlcnRlZC52YWxpZGF0ZSgpCiAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICAgICBpZiAocmVzdWx0LmVycm9ycykKICAgICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KGVycm9ycywgbnVsbCwgMikpOwogICAgICAgIGlmIChyZXN1bHQud2FybmluZ3MpCiAgICAgICAgICByZXR1cm4gY29uc29sZS5lcnJvcihKU09OLnN0cmluZ2lmeSh3YXJuaW5ncywgbnVsbCwgMikpOwoKICAgICAgICBmcy53cml0ZUZpbGVTeW5jKCdzd2FnZ2VyMi5qc29uJywgY29udmVydGVkLnN0cmluZ2lmeSgpKTsKICAgICAgfSk7CiAgfSk7CmBgYAoKIyMjIEJyb3dzZXIKYGBganMKPHNjcmlwdCBzcmM9Im5vZGVfbW9kdWxlcy9hcGktc3BlYy1jb252ZXJ0ZXIvZGlzdC9hcGktc3BlYy1jb252ZXJ0ZXIuanMiPjwvc2NyaXB0PgpBUElTcGVjQ29udmVydGVyLmNvbnZlcnQoLi4uKQpgYGAKCiMjIFN1cHBvcnRlZCBGb3JtYXRzCgoqIFtTd2FnZ2VyIDEueF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMS4yLm1kKSAoc3dhZ2dlcl8xKQoqIFtPcGVuQVBJKGZrYSBTd2FnZ2VyKSAyLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCkgKHN3YWdnZXJfMikKKiBbT3BlbkFQSSAzLjAueF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjAubWQpIChvcGVuYXBpXzMpCiogW0kvTyBEb2NzXShodHRwczovL2dpdGh1Yi5jb20vbWFzaGVyeS9pb2RvY3MpIChpb19kb2NzKQoqIFtBUEkgQmx1ZXByaW50XShodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vYXBpLWJsdWVwcmludC9ibG9iL21hc3Rlci9BUEklMjBCbHVlcHJpbnQlMjBTcGVjaWZpY2F0aW9uLm1kKSAoYXBpX2JsdWVwcmludCkKKiBbR29vZ2xlIEFQSSBEaXNjb3ZlcnldKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgKGdvb2dsZSkKKiBbUkFNTF0oaHR0cDovL3JhbWwub3JnL3NwZWMuaHRtbCkgKHJhbWwpCiogW1dBRExdKGh0dHA6Ly93d3cudzMub3JnL1N1Ym1pc3Npb24vd2FkbC8pICh3YWRsKQoKCiMjIENvbnZlcnNpb24gVGFibGUKCnxmcm9tOiAgICAgICAgICAgICB8c3dhZ2dlcl8xfHN3YWdnZXJfMnxvcGVuYXBpXzN8aW9fZG9jc3xhcGlfYmx1ZXByaW50fGdvb2dsZXxyYW1sfHdhZGx8Ci0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS06fDotLS0tLS0tOnw6LS0tLS06fDotLS0tLTp8Oi0tLS0tLS0tLS0tOnw6LS0tLTp8Oi0tOnw6LS06fAp8dG8gc3dhZ2dlcl8xICAgICAgfCAgbi9hICAgIHwgICAgICAgICB8ICAgICAgIHwgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgfCAgICB8ICAgIHwKfHRvIHN3YWdnZXJfMiAgICAgIHwgOndoaXRlX2NoZWNrX21hcms6IHwgICAgbi9hICB8IDp3aGl0ZV9jaGVja19tYXJrOiAgfCA6d2hpdGVfY2hlY2tfbWFyazogfCA6d2hpdGVfY2hlY2tfbWFyazogfCA6d2hpdGVfY2hlY2tfbWFyazogfCA6d2hpdGVfY2hlY2tfbWFyazogfCA6d2hpdGVfY2hlY2tfbWFyazogfAp8dG8gb3BlbmFwaV8zICAgICAgfCAgIDplaWdodF9zcG9rZWRfYXN0ZXJpc2s6ICAgICB8IDp3aGl0ZV9jaGVja19tYXJrOiB8ICBuL2EgIHwgICA6ZWlnaHRfc3Bva2VkX2FzdGVyaXNrOiAgfCA6ZWlnaHRfc3Bva2VkX2FzdGVyaXNrOiB8ICA6ZWlnaHRfc3Bva2VkX2FzdGVyaXNrOiAgIHwgOmVpZ2h0X3Nwb2tlZF9hc3RlcmlzazogIHwgOmVpZ2h0X3Nwb2tlZF9hc3RlcmlzazogIHwKfHRvIGlvX2RvY3MgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICB8ICBuL2EgIHwgICAgICAgICAgICAgfCAgICAgIHwgICAgfCAgICB8Cnx0byBhcGlfYmx1ZXByaW50ICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgfCAgICAgICB8ICAgIG4vYSAgICAgIHwgICAgICB8ICAgIHwgICAgfAp8dG8gZ29vZ2xlICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgIHwgICAgICAgfCAgICAgICAgICAgICB8ICBuL2EgfCAgICB8ICAgIHwKfHRvIHJhbWwgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgIHwgbi9hfCAgICB8Cnx0byB3YWRsICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgfCAgICAgICB8ICAgICAgICAgICAgIHwgICAgICB8ICAgIHwgbi9hfAoKIyMjIyBLZXkKKiA6d2hpdGVfY2hlY2tfbWFyazogLSBkaXJlY3QgY29udmVyc2lvbgoqIDplaWdodF9zcG9rZWRfYXN0ZXJpc2s6IC0gY29udmVyc2lvbiB2aWEgc3dhZ2dlcl8yCgojIyBDb250cmlidXRpbmcKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSBhbmQgZW5jb3VyYWdlZC4KCiMjIyBUZXN0aW5nClBsZWFzZSBhZGQgYSB0ZXN0IGNhc2UgaWYgeW91J3JlIGFkZGluZyBmZWF0dXJlcyBvciBmaXhpbmcgYnVncy4gVG8gcnVuIHRoZSB0ZXN0czoKCmBgYGJhc2gKbnBtIHRlc3QKYGBgCgpJbiBjYXNlIHlvdSBuZWVkIHRvIG92ZXJyaWRlIHRoZSBleHBlY3RlZCBvdXRwdXRzLCBkdWUgdG8gYSBqdXN0aWZpZWQgYW5kIHZlcmlmaWVkIGNoYW5nZSwgcnVuIHRoaXM6CmBgYGJhc2gKV1JJVEVfR09MREVOPXRydWUgbnBtIHRlc3QKYGBgCiMjIyBSZWxlYXNlcwpgYGAKbnBtIHJ1biBicm93c2VyaWZ5CmdpdCBjb21taXQgLWEgLW0gIkJ1aWxkIGJyb3dzZXIgZGlzdHJpYnV0aW9uIgpucG0gdmVyc2lvbiBtaW5vciAjIG9yIG1ham9yL3BhdGNoCm5wbSBwdWJsaXNoCmdpdCBwdXNoIC0tZm9sbG93LXRhZ3MKYGBgCgpbdHdpdHRlci1pbWFnZV06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHdpdHRlci91cmwvaHR0cC9sdWN5Ym90LmdpdGh1Yi5pby9hcGktc3BlYy1jb252ZXJ0ZXIuc3ZnP3N0eWxlPXNvY2lhbApbdHdpdHRlci1saW5rXTogaHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ/dGV4dD1Db252ZXJ0K2JldHdlZW4rQVBJK2Rlc2NyaXB0aW9uK2Zvcm1hdHMrc3VjaCthcytTd2FnZ2VyK2FuZCtSQU1MOiZ1cmw9aHR0cCUzQSUyRiUyRmx1Y3lib3QuZ2l0aHViLmlvJTJGYXBpLXNwZWMtY29udmVydGVyCltnaXR0ZXItaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdHRlci9yb29tL2x1Y3lib3QvYXBpLXNwZWMtY29udmVydGVyLnN2ZwpbZ2l0dGVyLWxpbmtdOiBodHRwczovL2dpdHRlci5pbS9sdWN5Ym90L2FwaS1zcGVjLWNvbnZlcnRlcgpbbnBtLWltYWdlXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9hcGktc3BlYy1jb252ZXJ0ZXIuc3ZnCltucG0tbGlua106IGh0dHBzOi8vbnBtanMub3JnL3BhY2thZ2UvYXBpLXNwZWMtY29udmVydGVyClt0cmF2aXMtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3RyYXZpcy9MdWN5Qm90LUluYy9hcGktc3BlYy1jb252ZXJ0ZXIuc3ZnClt0cmF2aXMtbGlua106IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9MdWN5Qm90LUluYy9hcGktc3BlYy1jb252ZXJ0ZXIKW2RlcHMtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2RhdmlkL2x1Y3lib3QvYXBpLXNwZWMtY29udmVydGVyLnN2ZwpbZGVwcy1saW5rXTogaHR0cHM6Ly9kYXZpZC1kbS5vcmcvbHVjeWJvdC9hcGktc3BlYy1jb252ZXJ0ZXIKW2RldmRlcHMtaW1hZ2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2RhdmlkL2Rldi9sdWN5Ym90L2FwaS1zcGVjLWNvbnZlcnRlci5zdmcKW2RldmRlcHMtbGlua106IGh0dHBzOi8vZGF2aWQtZG0ub3JnL2x1Y3lib3QvYXBpLXNwZWMtY29udmVydGVyI2luZm89ZGV2RGVwZW5kZW5jaWVzCg== readmeEtag: '"7dbd3b0e8b5ff05e10f04d7d2e337385db68efd6"' readmeLastModified: Wed, 08 Jun 2022 13:14:35 GMT repositoryId: 35116903 description: >- Convert API descriptions between popular formats such as OpenAPI(fka Swagger), RAML, API Blueprint, WADL, etc. created: '2015-05-05T18:30:05Z' updated: '2024-08-21T06:44:20Z' language: JavaScript archived: false stars: 1107 watchers: 22 forks: 179 owner: LucyBot-Inc logo: https://avatars.githubusercontent.com/u/26313641?v=4 license: MIT repoEtag: '"48b6c244dee02e4589c9e53d2e6c670ac02871c376472f02fb5d4f84e66d0477"' repoLastModified: Wed, 21 Aug 2024 06:44:20 GMT foundInMaster: true id: dccbe92257187d6d136bb4b5f304d6fe - source: https://openapi.tools/ name: LucyBot DocGen category: - Documentation - Server Implementations repository: https://github.com/lucybot-inc/documentation-starter link: https://lucybot.com/docgen language: JavaScript source_description: >- Generate a customizable website, with API documentation, console, and interactive workflows, from an OpenAPI spec v2: true v3: true repositoryMetadata: base64Readme: >- IyBMdWN5Qm90IFN0YXJ0ZXIgQVBJIENvbnNvbGUKVGhpcyBpcyB0aGUgZGVmYXVsdCBidWlsZCBmb3IgW0x1Y3lCb3QncyBBUEkgRG9jdW1lbnRhdGlvbl0oaHR0cDovL2x1Y3lib3QuY29tKS4KSXQgY2FuIGJlIHVzZWQgaW4gbm9uLWNvbW1lcmNpYWwgcHJvamVjdHMsIG9yIGZvciBkZW1vIHB1cnBvc2VzLgoKQ2hlY2sgb3V0IHRoZSBbUGV0IFN0b3JlIGRlbW9dKGh0dHA6Ly9kZW1vLmx1Y3lib3QuY29tKQoKQ29tbWVyY2lhbCBsaWNlbnNlcyBhbmQgYWRkaXRpb25hbCBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlIGF0IFtsdWN5Ym90LmNvbV0oaHR0cDovL2x1Y3lib3QuY29tKQoKIyMgVXNhZ2UKU2ltcGx5IGZvcmsgdGhpcyByZXBvc2l0b3J5IGFuZCByZXBsYWNlIGBvcGVuYXBpLmpzb25gIHdpdGggeW91cgpbT3BlbkFQSSBzcGVjaWZpY2F0aW9uXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKS4KCmBgYGJhc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9MdWN5Qm90LUluYy9kb2N1bWVudGF0aW9uLXN0YXJ0ZXIKY3AgL3BhdGgvdG8vbXkvb3BlbmFwaS5qc29uIGRvY3VtZW50YXRpb24tc3RhcnRlci9vcGVuYXBpLmpzb24KYGBgCgo+IEhhdmUgUkFNTCwgV0FETCwgQVBJIEJsdWVwcmludCwgb3IgSS9PIERvY3M/Cj4gQ2hlY2sgb3V0IFthcGktc3BlYy1jb252ZXJ0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWN5Ym90L2FwaS1zcGVjLWNvbnZlcnRlcikKCiMjIFNlcnZpbmcKWW91IGNhbiBzZXJ2ZSB0aGUgd2Vic2l0ZSB3aXRoIGFueSBzdGF0aWMgSFRUUCBzZXJ2ZXIuCgplLmcuIHdpdGggW2h0dHAtc2VydmVyXShodHRwczovL2dpdGh1Yi5jb20vaW5kZXh6ZXJvL2h0dHAtc2VydmVyKQpgYGAKbnBtIGluc3RhbGwgLWcgaHR0cC1zZXJ2ZXIKaHR0cC1zZXJ2ZXIgLi9kb2N1bWVudGF0aW9uLXN0YXJ0ZXIKYGBgCgpvciB3aXRoIFBIUDoKYGBgCnBocCAtUyAwLjAuMC4wOjgwIC10IC4vZG9jdW1lbnRhdGlvbi1zdGFydGVyCmBgYAoKVGhlIGVhc2llc3Qgd2F5IHRvIHNlcnZlIHRoZSBkb2N1bWVudGF0aW9uIHB1YmxpY2x5IGlzIHdpdGggR2l0SHViIHBhZ2VzOgppbiB5b3VyIGZvcmssIHZpc2l0IHRoZSBTZXR0aW5ncyBwYWdlLCBhbmQgY2hvb3NlICJtYXN0ZXIgYnJhbmNoIiBhcyB0aGUgc291cmNlIGluIHRoZQpHaXRIdWIgUGFnZXMgc2VjdGlvbi4gWW91IGNhbiBhbHNvIHNldCBhIGN1c3RvbSBkb21haW4gdGhlcmUuCgpZb3UgY2FuIGFsc28gc2VydmUgdGhpcyBkaXJlY3Rvcnkgd2l0aCBBcGFjaGUsIE5vZGVKUyBFeHByZXNzLCBldGMuCgojIyBDdXN0b21pemF0aW9uCiMjIyBUaXRsZSBhbmQgRGVzY3JpcHRpb24KVGhlIEFQSSB0aXRsZSBhbmQgZGVzY3JpcHRpb24gYXJlIGNvbnRyb2xsZWQgYnkKdGhlIGBpbmZvYCBmaWVsZCBpbiBgb3BlbmFwaS5qc29uYC4gIFlvdSBjYW4gdXNlCltNYXJrZG93bl0oaHR0cHM6Ly9naXRodWIuY29tL2FkYW0tcC9tYXJrZG93bi1oZXJlL3dpa2kvTWFya2Rvd24tQ2hlYXRzaGVldCkKaW4gdGhlIGRlc2NyaXB0aW9uLgoKIyMjIFRoZW1lcwpZb3UgY2FuIHVzZSB5b3VyIG93biBCb290c3RyYXAgdGhlbWUgdG8gY3VzdG9taXplIGNvbG9ycywgZm9udHMsIHNpemVzLCBhbmQgbW9yZS4KSnVzdCByZXBsYWNlIGBkaXN0L2Jvb3RzdHJhcC5jc3NgIHdpdGggeW91ciBvd24gYm9vdHN0cmFwLmNzcwoKWW91IGNhbiBnZW5lcmF0ZSBhIGJvb3RzdHJhcC5jc3MgZmlsZSB1c2luZzoKKiBbU3RyYXBwaW5nIV0oaHR0cDovL2JvYmJ5LWJyZW5uYW4uZ2l0aHViLmlvL3N0cmFwcGluZykKKiBbQm9vdHN0cmFwIExpdmUgQ3VzdG9taXplcl0oaHR0cDovL2Jvb3RzdHJhcC1saXZlLWN1c3RvbWl6ZXIuY29tLykKCiMjIyBNb3JlClRoZSBmdWxsIGNvbW1lcmNpYWwgdmVyc2lvbiBvZmZlcnMgc2V2ZXJhbCBhZGRpdGlvbmFsIGZlYXR1cmVzOgoqIEFkZGl0aW9uYWwgTWFya2Rvd24vSFRNTCBzZWN0aW9ucwoqIEN1c3RvbSBuYXZiYXIgYW5kIGZvb3RlcgoqIEN1c3RvbSBob21lcGFnZQoqIEV2ZW50IHRyYWNraW5nCiogU0VPIChgPG1ldGE+YCBhbmQgYDx0aXRsZT5gIHRhZ3MsIGBzaXRlbWFwLnhtbGApCiogVXNlciBhdXRoZW50aWNhdGlvbgoqIEdhbGxlcmllcyBmb3IgbXVsdGlwbGUgQVBJcwoKRm9yIGEgZnVsbCBsaXN0IG9mIGZlYXR1cmVzIGF2YWlsYWJsZSBzZWUgW2x1Y3lib3QuY29tXShodHRwOi8vbHVjeWJvdC5jb20pCgojIyBMaWNlbnNlCltDcmVhdGl2ZSBDb21tb25zIDQuMCAtIE5vbi1jb21tZXJjaWFsXShodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktbmMvNC4wLykKCkZvciBhIGNvbW1lcmNpYWwgbGljZW5zZSwgW2NvbnRhY3QgdXNdKGh0dHA6Ly9sdWN5Ym90LmNvbS8jQ29udGFjdCkK readmeEtag: '"286e205f17131d81bf83f5514388a05e39e5a11c"' readmeLastModified: Fri, 14 Jul 2017 20:36:34 GMT repositoryId: 36742809 description: Interactive REST API Documentation created: '2015-06-02T15:30:49Z' updated: '2024-07-25T15:59:29Z' language: HTML archived: false stars: 175 watchers: 13 forks: 58 owner: LucyBot-Inc logo: https://avatars.githubusercontent.com/u/26313641?v=4 license: NOASSERTION repoEtag: '"e4512b6b9590c26ac157c159ab1382cdbb97d747964e28b5ea5477d81eb27e6f"' repoLastModified: Thu, 25 Jul 2024 15:59:29 GMT foundInMaster: true id: 006c5eda16efc55f050049e1c4964881 - source: https://openapi.tools/ name: Senya Editor category: Text Editors language: Java link: https://senya.io source_description: > JetBrains IDE plugin to show Swagger UI as a preview, for visual feedback as you edit. v2: true v3: true foundInMaster: true id: 0c1c17e79f2ccf9a2140cd587e84a115 v3_1_link: >- https://youtrack.jetbrains.com/issue/IDEA-294782/Add-support-for-OpenAPI-31-in-OpenAPI-Specifications-plugin v3_1: true - source: https://openapi.tools/ name: Sandbox category: - Mock - Server language: - SaaS - Java link: https://getsandbox.com/ repository: https://github.com/getsandbox/sandbox source_description: >- SaaS, self-hosted, or CLI tool for turning OpenAPI (and other) descriptions into a mock server, where you can modify behaviour, simulate downtime, and any other nonsense you can think of thanks to a built-in code editor! v2: true v3: true repositoryMetadata: base64Readme: >- IyBTYW5kYm94IFJ1bnRpbWUgKHJlcGxhY2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRzYW5kYm94L3dvcmtlcikK readmeEtag: '"20279c716c1a9c12c8c3c6f23c5a8402ce03c2af"' readmeLastModified: Sat, 23 May 2020 00:06:45 GMT repositoryId: 266231189 description: null created: '2020-05-23T00:06:26Z' updated: '2024-06-04T23:50:57Z' language: null archived: true stars: 6 watchers: 4 forks: 5 owner: getsandbox logo: https://avatars.githubusercontent.com/u/7564336?v=4 repoEtag: '"d82348c0409fff77bfc2688a5a92e7970ee2034d04cd18307eeb7ae441d877f3"' repoLastModified: Tue, 04 Jun 2024 23:50:57 GMT foundInMaster: true id: e3edf7a2bc59affaf60207c200c1d0fa - source: https://openapi.tools/ name: APIMatic CodeGen category: - Code Generators - SDK language: SaaS link: https://www.apimatic.io/code-generation-as-a-service source_description: >- Bring in your API description (OAI v2/v3, RAML, API Blueprint, WSDL, etc.) to generate fully functional SDKs in over 10 languages. v2: true v3: true v3_1: true id: b8e1a40af7908548779970a8aa9baba1 foundInMaster: true - source: https://openapi.tools/ name: Meta-API link: https://www.meta-api.io language: SaaS source_description: >- A SaaS platform to integrate APIs using OpenAPI documents, and manipulation of data with online code editor, and automating configuration, authentication, deployment and monitoring. v2: true v3: true v3_1: true foundInMaster: true id: af55f5fdf1f9faca3fd81d5b351523d9 - source: openapi3 tags repository: https://github.com/sergiorodenas/laravel-testdoc v3: true repositoryMetadata: base64Readme: >- IyDwn5KO8J+UkiBMYXJhdmVsIEZ1bmN0aW9uYWwgVGVzdHMgRG9jcyBHZW5lcmF0b3IKClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9Sb2RlbmFzdHlsZS9sYXJhdmVsLXRlc3Rkb2MvYmFkZ2VzL2J1aWxkLnBuZz9iPW1hc3RlcildKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvUm9kZW5hc3R5bGUvbGFyYXZlbC10ZXN0ZG9jL2J1aWxkLXN0YXR1cy9tYXN0ZXIpClshW0xhdGVzdCBWZXJzaW9uIG9uIFBhY2thZ2lzdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9wYWNrYWdpc3Qvdi9yb2RlbmFzdHlsZS9sYXJhdmVsLXRlc3Rkb2Muc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL3JvZGVuYXN0eWxlL2xhcmF2ZWwtdGVzdGRvYykKWyFbUXVhbGl0eSBTY29yZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9zY3J1dGluaXplci9nL3JvZGVuYXN0eWxlL2xhcmF2ZWwtdGVzdGRvYy5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3NjcnV0aW5pemVyLWNpLmNvbS9nL1JvZGVuYXN0eWxlL2xhcmF2ZWwtdGVzdGRvYy8/YnJhbmNoPW1hc3RlcikKWyFbQ29kZSBDb3ZlcmFnZV0oaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9Sb2RlbmFzdHlsZS9sYXJhdmVsLXRlc3Rkb2MvYmFkZ2VzL2NvdmVyYWdlLnBuZz9iPW1hc3RlcildKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvUm9kZW5hc3R5bGUvbGFyYXZlbC10ZXN0ZG9jLz9icmFuY2g9bWFzdGVyKQpbIVtMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC9sL1JvZGVuYXN0eWxlL2xhcmF2ZWwtdGVzdGRvYy5zdmcpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvUm9kZW5hc3R5bGUvbGFyYXZlbC10ZXN0ZG9jKQoKIyMgTGljZW5zZQpUaGlzIGxpYnJhcnkgaXMgcmVsZWFzZWQgdW5kZXIgW01JVF0oaHR0cDovL3d3dy50bGRybGVnYWwuY29tL2xpY2Vuc2UvbWl0LWxpY2Vuc2UpIGxpY2Vuc2Uu readmeEtag: '"a8914aed3e183ac97d50debbd8a6e39aca1f0441"' readmeLastModified: Thu, 14 Feb 2019 14:43:52 GMT repositoryId: 166667642 description: 💎🔒 Laravel Functional Tests Docs Generator created: '2019-01-20T13:59:16Z' updated: '2019-02-14T14:44:10Z' language: PHP archived: false stars: 0 watchers: 1 forks: 1 owner: sergiorodenas logo: https://avatars.githubusercontent.com/u/2689890?v=4 license: MIT repoEtag: '"8647ae615bb9c0086b6f3d0c7a4c8d8f1ceea71e95cc9fae3324b265d70981be"' repoLastModified: Thu, 14 Feb 2019 14:44:10 GMT foundInMaster: true category: Testing id: 70c8bd1fe35383a5fb2454caa5d06703 - source: openapi3 tags repository: https://github.com/pauliorandall/go-qlueless-api v3: true repositoryMetadata: base64Readme: >- IyBHbyBRbHVlbGVzcyBBUEkKClwqXCpcKioqRGlzY29udGludWVkOiBhcmNoaXZlZCBmb3IgcmVmZXJlbmNlIG9ubHkuKipcKlwqXCoKCkEgR28gaW1wbGVtZW50YXRpb24gb2YgYSBzaW1wbGUgQVBJIHRvIHN0b3JlIGFuZCBhY2Nlc3MgS2FuYmFuIHJlbGF0ZWQgZW50aXRpZXMgYW5kIGV2ZW50cy4KCi0gVGhpcyBwcm9qZWN0IGlzIHVuZGVydGFrZW4gd2l0aCB0aGUgYXVkaWJsZSBhaWQgb2YgW0F2YW50YXNpYV0oaHR0cHM6Ly93d3cuYXZhbnRhc2lhLm5ldCkgYW5kIFtEcmVhbSBUaGVhdGVyXShodHRwOi8vZHJlYW10aGVhdGVyLm5ldCkKLSBUaGlzIFJFQURNRSB3YXMgc3RydWN0dXJlZCBvbiBhIHRlbXBsYXRlIGJ5IFtQdXJwbGVCb290aF0oaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vUHVycGxlQm9vdGgvMTA5MzExYmIwMzYxZjMyZDg3YTIpCgojIyBXaHkgaXMgdGhlIHByb2plY3QgY2FsbGVkICdRbHVlbGVzcyc/CgpJIGFwb2xvZ2lzZSwgaXQncyBhIHBvb3IgcGxheSBvbiB3b3JkcyBhdHRlbXB0aW5nIHRvIGNvbWJpbmU6CgoxLiBgQ2x1ZWxlc3NgOiBPbmUgb2YgdGhlIHByb2plY3RzIHB1cnBvc2VzIGlzIHRvIGxlYXJuIGFuZCBleHBlcmltZW50IHdpdGggdGVjaG5vbG9naWVzIHN1Y2ggYXMgR28sIFJlYWN0LCBhbmQgcHVibGljIHBpcGVsaW5lIHRvb2xzOyBJJ20gbW9kZXJhdGVseSBjbHVlbGVzcyBhYm91dCB0aGUgbGF0dGVyIHR3by4KMi4gYFF1ZXVlbGVzc2A6IEkgd2FudCB0byBleHBlcmltZW50IHdpdGggd2F5cyBvZiB2aXN1YWxpc2luZyBhbmQgZW1waGFzaXNpbmcgd29yayBpbiBwcm9ncmVzcyB0aGF0IGlzIG5vdCwgaW4gZmFjdCwgYmVpbmcgcHJvZ3Jlc3NlZCwgaS5lLiBoYWxmIGZpbmlzaGVkIHdvcmsgc2l0dGluZyBpbiBxdWV1ZXMgd2FpdGluZyBmb3Igc29tZW9uZSB0byBmaW5pc2ggdGhlbS4gT25jZSB2aXNpYmxlIGFuZCBiZWluZyBtZWFzdXJlZCBJIGNhbiBzdGFydCB0byBhbmFseXplIGl0LCBhbmQgZXhwZXJpbWVudCB3aXRoIHdheXMgb2YgcmVkdWNpbmcgYW5kIGF2b2lkaW5nIGl0IQoKIyMgR2V0dGluZyBTdGFydGVkCgojIyMgUHJlcmVxdWlzaXRlcwoKLSBHbzogW2h0dHBzOi8vZ29sYW5nLm9yZy9kbC9dCi0gR2l0OiBbaHR0cHM6Ly9naXQtc2NtLmNvbV0KLSBBbiBpbnRlcm5ldCBjb25uZWN0aW9uCi0gQSBkZWNlbnQgd2ViIGJyb3dzZXIKCiMjIyBSdW5uaW5nCgpOYXZpZ2F0ZSB0byBhIHN1aXRhYmxlIGRpcmVjdG9yeSwgb3BlbiBhIHRlcm1pbmFsLCBhbmQgY29weStwYXN0ZSB0aGUgZm9sbG93aW5nOgoKYGBgCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vUGF1bGlvUmFuZGFsbC9nby1xbHVlbGVzcy1hcGkuZ2l0CmNkIGdvLXFsdWVsZXNzLWFwaS9zY3JpcHRzCi4vYnVpbGQtdGVzdC1hcGktcnVuLmdvCmBgYAoKSW4gb3JkZXIsIHRoaXMgd2lsbDoKCjEuIENsb25lIHRoZSBzb3VyY2UgY29kZSByZXBvc2l0b3J5CjIuIE5hdmlnYXRlIHRvIHRoZSB1c2VyIGBzY3JpcHRzYCBkaXJlY3RvcnkKMy4gRXhlY3V0ZSBhIGJ1aWxkIG9mIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24KNC4gRXhlY3V0ZSBhIGJ1aWxkIG9mIHRoZSBhcHBsaWNhdGlvbgo1LiBFeGVjdXRlIHVuaXQgdGVzdHMgd2l0aGluIHRoZSBhcHBsaWNhdGlvbgo2LiBFeGVjdXRlIGJsYWNrIGJveCBBUEkgdGVzdHMgb24gdGhlIGFwcGxpY2F0aW9uCjcuIFN0YXJ0cyB0aGUgYXBwbGljYXRpb24KCiMjIyBSdW5uaW5nIHVuaXQgdGVzdHMKCk9wZW4gYSB0ZXJtaW5hbCBhdCB0aGUgcHJvamVjdCByb290OgoKYGBgCmNkIC9zY3JpcHRzCi4vYnVpbGQtdGVzdC5nbwpgYGAKCiMjIyBSdW5uaW5nIEFQSSB0ZXN0cwoKT3BlbiBhIHRlcm1pbmFsIGF0IHRoZSBwcm9qZWN0IHJvb3Q6CgpgYGAKY2QgL3NjcmlwdHMKLi9idWlsZC10ZXN0LWFwaS5nbwpgYGAKCiMjIyBEZXBsb3ltZW50IAoKPiBDb21pbmcgc29vbiEgU2VlICoqUnVubmluZyoqIGluIHRoZSBtZWFudGltZS4KCiMjIEJ1aWx0IFdpdGgKCi0gW09wZW5BUEldKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYWJvdXQvKQotIFtHb10oaHR0cHM6Ly9nb2xhbmcub3JnKQotIFt0ZXN0aWZ5XShodHRwczovL2dpdGh1Yi5jb20vc3RyZXRjaHIvdGVzdGlmeSkKLSBbbWFwc3RydWN0dXJlXShodHRwczovL2dpdGh1Yi5jb20vbWl0Y2hlbGxoL21hcHN0cnVjdHVyZSkKCiMjIENvbnRyaWJ1dGluZwoKPiBOb3QgYXBwbGljYWJsZS4KCiMjIFZlcnNpb25pbmcKClRoaXMgcHJvamVjdHMgQVBJIFtDSEFOR0VMT0ddKGh0dHBzOi8vZ2l0aHViLmNvbS9QYXVsaW9SYW5kYWxsL2dvLXFsdWVsZXNzLWFwaS9ibG9iL21hc3Rlci9hcGkvQ0hBTkdFTE9HLm1kKSBmb3JtYXQgaXMgYmFzZWQgb24gW0tlZXAgYSBDaGFuZ2Vsb2ddKGh0dHBzOi8va2VlcGFjaGFuZ2Vsb2cuY29tL2VuLzEuMC4wLyksIGFuZCB0aGUgQVBJIGFkaGVyZXMgdG8gW1NlbWFudGljIFZlcnNpb25pbmddKGh0dHBzOi8vc2VtdmVyLm9yZy9zcGVjL3YyLjAuMC5odG1sKS4KCiMjIEF1dGhvcnMKCi0gW01lXShodHRwczovL2dpdGh1Yi5jb20vUGF1bGlvUmFuZGFsbCkKCiMjIExpY2Vuc2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgW01JVCBMaWNlbnNlXShodHRwczovL2dpdGh1Yi5jb20vUGF1bGlvUmFuZGFsbC9nby1xbHVlbGVzcy1hcGkvYmxvYi9tYXN0ZXIvTElDRU5TRSkuCgojIyBBY2tub3dsZWRnbWVudHMKCi0gSW5mbHVlbmNlcwogIC0gJ1RoZSBHb2FsJyBieSBFbGl5aGFodSBNLiBHb2xkcmF0dAogIC0gQ29udGludW91cyBJbnRlZ3JhdGlvbgogIC0gQ29udGludW91cyBEZWxpdmVyeQo= readmeEtag: '"01258343092071f176e349ea063f7ac82371e8bb"' readmeLastModified: Thu, 23 Jan 2020 15:01:18 GMT repositoryId: 174692654 description: >- *Discontinued* Experimenting with ideas by building a simple Go web server exposing a TODO lists created: '2019-03-09T12:38:15Z' updated: '2023-01-28T16:01:15Z' language: Go archived: true stars: 0 watchers: 0 forks: 0 owner: PaulioRandall logo: https://avatars.githubusercontent.com/u/29413800?v=4 license: MIT repoEtag: '"aee2d3b713ba04e0e93aa9b0d013f25eaa478fb610cf1aaadfdeb58d80da14a8"' repoLastModified: Sat, 28 Jan 2023 16:01:15 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 62d045a14fd3d45cc95b98891af82e47 - source: openapi3 tags repository: https://github.com/senor-artemisio/tendershins v3: true repositoryMetadata: base64Readme: >- IyB0ZW5kZXJzaGlucwoKV3JhcHBlciBmb3Igc2hpbnMgZ2VuZXJhdG9yczoKCiogW1dpZGRlcnNoaW5zXShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS93aWRkZXJzaGlucykKKiBbU2hpbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9NZXJtYWRlL3NoaW5zKQoKR2VuZXJhdGVzIEhUTUwgZG9jdW1lbnRhdGlvbiBmcm9tIE9wZW5BUEkgLyBTd2FnZ2VyIC8gQXN5bmNBUEkgLyBTZW1vYXNhIGRlZmluaXRpb24uCgojIyBUbyBpbnN0YWxsCgpDbG9uZSB0aGUgZ2l0IHJlcG9zaXRvcnksIG9yIHVzZSBucG0gaW5zdGFsbApgYGAKbnBtIGluc3RhbGwgdGVuZGVyc2hpbnMgLS1zYXZlCmBgYAoKIyMgVXNhZ2UKClRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb24gY3JlYXRlIGEgc3BlY2lmaWNhdGlvbiBmaWxlIGluIHRoZSBzdXBwb3J0ZWQgZm9ybWF0IGFuZCBydW4gdGVuZGVyc2hpbnM6CgpgYGAKbnB4IHRlbmRlcnNoaW5zIDxzcGVjX2ZpbGU+IDx0YXJnZV9wYXRoPiBbbG9nb19wYXRoXQpgYGAKCkV4YW1wbGVzIG9mIHNwZWNpZmljYXRpb24gZmlsZXMgc2VlIGluIFtPcGVuQVBJIHJlcG9zaXRvcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL3RyZWUvbWFzdGVyL2V4YW1wbGVzL3YzLjApLiAKCg== readmeEtag: '"58461ac1021e0eabc2af0083eb1619128be5ea89"' readmeLastModified: Thu, 25 Jul 2019 08:52:04 GMT repositoryId: 188308754 description: Wrapper for shins documentation generators created: '2019-05-23T21:24:25Z' updated: '2019-07-25T08:52:07Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: senor-artemisio logo: https://avatars.githubusercontent.com/u/1178789?v=4 license: MIT repoEtag: '"db15c2462bf40b6b3d087642de1f6e20d99dc092b2ec30c4352bdd820287dfc7"' repoLastModified: Thu, 25 Jul 2019 08:52:07 GMT foundInMaster: true category: - Documentation - Parsers id: 80bfcd36c0804b44af58f551da173a30 - source: openapi3 tags repository: https://github.com/sloopsight-com/sandbox v3: true repositoryMetadata: base64Readme: >- IyBUaGUgU2FuZGJveAojIyBBUEkgc2FuZGJveCB0byBzcGVlZCB1cCBpbnRlZ3JhdGlvbnMuCgpBUEkgU2FuZG94IHwgRW5hYmxlIHlvdSBjYW4gdG8gY3JlYXRlIEFQSSBzdHViIG9ubGluZSB3aXRoIG9wZW5hcGkgMy4wIHNwZWMuClN1cHBvcnRzIGxkYXAgYXV0aGVudGljYXRpb24uCkJ1aXQgb24gCgoKIyMgTW9kdWxlcwoKLSBCYWNrZW5kCi0gVUkKey5sbmtzLWxpc3R9CgojIyBUZWNobm9sb2d5IFN0YWNrCgotIFtWdWVKcyAqRnJvbnRlbmQgZnJhbWV3b3JrKl0oIykKLSBbU3ByaW5nYm9vdCAqRm9yIGJ1c2luZXNzIEFwaSpdKCMpCi0gW0NhbWVsIFNlcnZsZXQgKkZvciBzYW5kYm94IGFwaSByb3V0aW5nKl0oIykKLSBbTmFzaGhvcm4gKkZvciBBUEkgQnVzaW5lc3MgTG9naWMgRXhlY3V0aW9uKl0oIykKLSBbSFNRTC9NeXNxbCAqRm9yIGZvciBzdG9yaW5nIGRhdGEqXSgjKQotIFtTd2F5ZGIgKlRUTCBiYXNlZCBrZXktdmFsdWUgc3RvcmUqXShodHRwOi8vc3dheWRiLmlvLz9sYW5ndWFnZT1zY2FsYS8pCi0gW1N3YWdnZXIgRG9jdW1lbnRhdGlvbiAqVG8gZ2VuZXJhdGUgbW9ja2VkIGFwaSBkb2N1bWVudGF0aW9uKl0oaHR0cHM6Ly9naXRodWIuY29tL3NvbmdyZ2cvc3dhZ2dlcmRlbW8pCg== readmeEtag: '"914f1619dccb7147fd7956f11c92e55ee70976dd"' readmeLastModified: Wed, 07 Jul 2021 10:50:27 GMT repositoryId: 281899357 description: >- API Sandox | Enable you can to create API stub online with openapi 3.0 spec. created: '2020-07-23T08:46:24Z' updated: '2021-08-11T07:17:06Z' language: Vue archived: false stars: 0 watchers: 0 forks: 0 owner: sloopsight-com logo: https://avatars.githubusercontent.com/u/68685917?v=4 repoEtag: '"3f05a10c6986059c6b1aa029e422c600e1816c13826bc8d6e5a393d2121606ba"' repoLastModified: Wed, 11 Aug 2021 07:17:06 GMT foundInMaster: true category: - Server - Server Implementations id: 57b7f4b92935a93a909854865e1cb20b - source: openapi3 tags repository: https://github.com/v3rmine/legifrance-api-swagger v3: true repositoryMetadata: base64Readme: >- IyBsZWdpZnJhbmNlLWFwaS1zd2FnZ2VyCgpTcMOpY2lmaWNhdGlvbnMgKE9wZW5BUEkgMy4wLjEpIGRlIGwnW0FQSSBCZXRhIDAuMy4xIGRlIEzDqWdpZnJhbmNlXShodHRwczovL2FwaS5nb3V2LmZyL2xlcy1hcGkvRElMQV9hcGlfTGVnaWZyYW5jZSkuCgpBY2Nlc3NpYmxlIGdyw6JjZSDDoCBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKSBpY2kgOiBbbGVnaWZyYW5jZS5yZXRhLnJlXShodHRwczovL2xlZ2lmcmFuY2UucmV0YS5yZS8pCg== readmeEtag: '"546a5a17b5d6d962e8f8a01ffe35d359c5165520"' readmeLastModified: Fri, 19 Feb 2021 13:46:06 GMT repositoryId: 277805259 description: DILA - Légifrance Beta == OpenAPI 3.0.1 created: '2020-07-07T12:04:50Z' updated: '2021-02-19T13:47:15Z' language: HTML archived: false stars: 0 watchers: 3 forks: 0 owner: v3rmine logo: https://avatars.githubusercontent.com/u/11839373?v=4 repoEtag: '"9364e7c6e38e899795fbda5b58c054ec4031c63b84bbae6f927ef339c9dcfc45"' repoLastModified: Fri, 19 Feb 2021 13:47:15 GMT foundInMaster: true category: Code Generators id: 50fac8b036c677a3628ed680ccdcfb1c oldLocations: - https://github.com/joxcat/legifrance-api-swagger - source: openapi3 tags repository: https://github.com/lucasavila00/beff v3: true id: c1cab811e9accd4842010fbcdbfc7bcc repositoryMetadata: base64Readme: >- IyDwn6qEIEJlZmYKCkVmZmljaWVudCB2YWxpZGF0b3JzIGZyb20gVHlwZXNjcmlwdCB0eXBlcyBnZW5lcmF0ZWQgYnkgYSBibGF6aW5nIGZhc3QgY29tcGlsZXIuCgotIFR5cGVzY3JpcHQgRWZmaWNpZW50OiBVbmxpa2Ugem9kLCBpby10cyBhbmQgc2ltaWxhciwgYmVmZiBkb2Vzbid0IGdlbmVyYXRlIGFueSBleHRyYSB3b3JrIGZvciB0aGUgdHlwZXNjcmlwdCBjb21waWxlci4gR2V0IGEgZmFzdCBlZGl0b3IgYW5kIGZhc3QgY29tcGlsZSB0aW1lcy4KLSBGYXN0OiBCZWZmIGlzIHdyaXR0ZW4gaW4gUnVzdCBhbmQgY29tcGlsZWQgdG8gV0FTTS4gSXQgaXMgc3VwcG9ydGVkIGJ5IGV2ZXJ5IE9TIGFuZCBzaG91bGQgd29yayBmb3IgeW91IQotIFJlYWxseSBmYXN0OiBCZWZmIGNvbXBpbGVzIGEgaGVsbG8td29ybGQgcHJvamVjdCBpbiA1bXMuIEEgYmlnIHByb2plY3Qgd2l0aCArMjAwIHR5cGVzIGlzIGNvbXBpbGVkIGluIDIwMG1zLgotIENvbXBhdGlibGU6IEJlZmYgdXNlcyB0aGUgVHlwZXNjcmlwdCBjb21waWxlciBmb3IgcGF0aCByZXNvbHV0aW9uLiBJZiB5b3VyIGVkaXRvciBjYW4gZmluZCB0aGUgdHlwZXMsIHNvIGNhbiBiZWZmLgotIEVmZmljaWVudCBnZW5lcmF0ZWQgY29kZTogQmVmZiBnZW5lcmF0ZXMgb3B0aW1hbCB2YWxpZGF0b3IgY29kZSwgYXBwbHlpbmcgbWFueSBvcHRpbWl6YXRpb25zIHRvIGl0IGF0IGNvbXBpbGUgdGltZS4KLSBIZWxwZnVsOiBCZWZmIGdlbmVyYXRlcyBjbGVhciBlcnJvciBtZXNzYWdlcyBhdCBjb21waWxlIHRpbWUgYW5kIGF0IHZhbGlkYXRpb24gdGltZS4KLSBQb3dlcmZ1bDogQmVmZiBzdXBwb3J0cyByZWN1cnNpdmUgdHlwZXMsIGdlbmVyaWMgdHlwZXMsIG1hcHBlZCB0eXBlcywgY29uZGl0aW9uYWwgdHlwZXMsIGBPbWl0YCwgYEV4Y2x1ZGVgLCBgUGFydGlhbGAsIGBSZXF1aXJlZGAsIGBSZWNvcmRgIGFuZCBhIGxvdCBtb3JlLiBJZiBpdCBtYWtlcyBzZW5zZSB0byBoYXZlIGEgcnVudGltZSB2YWxpZGF0b3IgZm9yIHRoYXQgdHlwZSwgYmVmZiB3aWxsIHVuZGVyc3RhbmQgaXQuCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyAxLiBJbnN0YWxsCgpJbnN0YWxsIGBAYmVmZi9jbGlgIGFuZCBgQGJlZmYvY2xpZW50YCBmcm9tIG5wbS4KCmBgYHNoZWxsCm5wbSBpIEBiZWZmL2NsaSBAYmVmZi9jbGllbnQKYGBgCgojIyMgMi4gQ29uZmlndXJlCgpDcmVhdGUgYSBqc29uIGZpbGUgdG8gY29uZmlndXJlIGJlZmYuIFRoZSBmaWxlIGNhbiBoYXZlIGFueSBuYW1lLCBidXQgaXQncyBzdGFuZGFyZCBwcmFjdGljZSB0byBuYW1lIGlmIGBiZWZmLmpzb25gLgoKYGBganNvbgp7CiAgInBhcnNlciI6ICIuL3NyYy9wYXJzZXIudHMiLAogICJvdXRwdXREaXIiOiAiLi9zcmMvZ2VuZXJhdGVkIgp9CmBgYAoKIyMjIDMuIENyZWF0ZSB0aGUgcGFyc2VyIGZpbGUKCkNyZWF0ZSBhIHR5cGVzY3JpcHQgZmlsZSB0aGF0IGxpc3RzIHRoZSB0eXBlcyBmb3Igd2hpY2ggYmVmZiBzaG91bGQgZ2VuZXJhdGUgdmFsaWRhdG9yIGZvci4KCkl0J3Mgc3RhbmRhcmQgcHJhY3RpY2UgdG8gY2FsbCBpdCBgcGFyc2VyLnRzYAoKYGBgdHMKaW1wb3J0IHBhcnNlIGZyb20gIi4vZ2VuZXJhdGVkL3BhcnNlciI7Cgp0eXBlIFVzZXIgPSB7CiAgbmFtZTogc3RyaW5nOwogIGFnZTogbnVtYmVyOwp9OwoKZXhwb3J0IGNvbnN0IFBhcnNlcnMgPSBwYXJzZS5idWlsZFBhcnNlcnM8ewogIFVzZXI6IFVzZXI7Cn0+KCk7CmBgYAoKIyMjIDQuIEdlbmVyYXRlIHRoZSBwYXJzZXIgY29kZQoKYEBiZWZmL2NsaWAgaW5zdGFsbHMgYSBgYmVmZmAgYmluYXJ5LgoKYGBgc2hlbGwKbnB4IGJlZmYgLXAgYmVmZi5qc29uCmBgYAoKIyMjIDUuIFVzZSB0aGUgdmFsaWRhdG9ycwoKYGBgdHMKaW1wb3J0IHsgUGFyc2VycyB9IGZyb20gIi4vcGFyc2VyLnRzIjsKCmNvbnN0IHVzZXIxID0gUGFyc2Vycy5Vc2VyLnBhcnNlKHsKICBuYW1lOiAiSm9obiBEb2UiLAogIGFnZTogNDIsCn0pOwoKY29uc3QgbWF5YmVVc2VyID0gUGFyc2VyLlVzZXIuc2FmZVBhcnNlKG51bGwpOwpgYGAKCiMjIENMSSBPcHRpb25zCgpUaGUgYGJlZmZgIGJpbmFyeSBjYW4gcnVuIGluIHdhdGNoIG1vZGUsIHRvby4KCmBgYHNoZWxsCiQgbnB4IGJlZmYgLWgKVXNhZ2U6IGJlZmYgW29wdGlvbnNdCgpHZW5lcmF0ZSB2YWxpZGF0b3JzIGZyb20gdHlwZXNjcmlwdCB0eXBlcwoKT3B0aW9uczoKICAtcCwgLS1wcm9qZWN0IDxzdHJpbmc+ICBQYXRoIHRvIHRoZSBwcm9qZWN0IGZpbGUKICAtdiwgLS12ZXJib3NlICAgICAgICAgICBQcmludCB2ZXJib3NlIG91dHB1dAogIC13LCAtLXdhdGNoICAgICAgICAgICAgIFdhdGNoIGZvciBmaWxlIGNoYW5nZXMKICAtaCwgLS1oZWxwICAgICAgICAgICAgICBkaXNwbGF5IGhlbHAgZm9yIGNvbW1hbmQKYGBgCgojIyBGZWF0dXJlcwoKIyMjIEpzb24gU2NoZW1hCgpHZW5lcmF0ZSBmbGF0IEpTT04gc2NoZW1hIGZyb20gdHlwZXMuCgpSZWN1cnNpdmUgdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYW5kIGJlY29tZSB0aGUgZXF1aXZhbGVudCBvZiBgYW55YCBpbiB0aGUgc2Vjb25kIHRpbWUgdGhleSBhcHBlYXIuCgpDb25maWd1cmUgeW91ciBgYmVmZi5qc29uYAoKYGBganNvbgp7CiAgInBhcnNlciI6ICIuL3NyYy9wYXJzZXIudHMiLAogICJvdXRwdXREaXIiOiAiLi9zcmMvZ2VuZXJhdGVkIgp9CmBgYAoKSW1wb3J0IHRoZSBnZW5lcmF0ZWQgY29kZSBhbmQgY29uZmlndXJlIHR5cGVzIHRoYXQgd2lsbCBiZSBleHBvcnRlZC4KCmBgYHRzCmltcG9ydCBzIGZyb20gIi4vZ2VuZXJhdGVkL3NjaGVtYSI7Cgp0eXBlIFByb2ZpbGVEYXRhID0gewogIG5hbWU6IHN0cmluZzsKfTsKCnR5cGUgVXNlciA9IHsKICBwcm9maWxlOiBQcm9maWxlRGF0YTsKICBhZ2U6IG51bWJlcjsKfTsKCmV4cG9ydCBjb25zdCBTY2hlbWFzID0gcy5idWlsZFNjaGVtYXM8ewogIFVzZXI6IFVzZXI7Cn0+KCk7Cgpjb25zb2xlLmxvZyhTY2hlbWFzLlVzZXIpOyAvLyBKU09OIFNjaGVtYSB3aXRob3V0IHJlZmVyZW5jZXMKYGBgCgojIyMgQ3VzdG9tIFN0cmluZyBGb3JtYXRzCgpDb25maWd1cmUgeW91ciBgYmVmZi5qc29uYAoKYGBganNvbgp7CiAgInBhcnNlciI6ICIuL3NyYy9wYXJzZXIudHMiLAogICJvdXRwdXREaXIiOiAiLi9zcmMvZ2VuZXJhdGVkIiwKICAiY3VzdG9tRm9ybWF0cyI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiVmFsaWRDdXJyZW5jeSIKICAgIH0KICBdCn0KYGBgCgpVc2UgdGhlIGhlbHBlciBgU3RyaW5nRm9ybWF0YCB0byBjcmVhdGUgdGhlIHR5cGUuIEl0IGNyZWF0ZXMgYSBicmFuZGVkIHR5cGVzY3JpcHQgdHlwZS4KRGVmaW5lIHRoZSBydW50aW1lIHZhbGlkYXRvciBpbiB0aGUgYnVpbGQgcGFyc2VycyBjYWxsLgoKYGBgdHMKaW1wb3J0IHBhcnNlIGZyb20gIi4vZ2VuZXJhdGVkL3BhcnNlciI7CmltcG9ydCB7IFN0cmluZ0Zvcm1hdCB9IGZyb20gIkBiZWZmL2NsaSI7CmV4cG9ydCB0eXBlIFZhbGlkQ3VycmVuY3kgPSBTdHJpbmdGb3JtYXQ8IlZhbGlkQ3VycmVuY3kiPjsKCmV4cG9ydCBjb25zdCBQYXJzZXJzID0gcGFyc2UuYnVpbGRQYXJzZXJzPHsKICBWYWxpZEN1cnJlbmN5OiBWYWxpZEN1cnJlbmN5Owp9Pih7CiAgY3VzdG9tRm9ybWF0czogewogICAgVmFsaWRDdXJyZW5jeTogKGlucHV0OiBzdHJpbmcpID0+IHsKICAgICAgaWYgKFZBTElEX0NVUlJFTkNJRVMuaW5jbHVkZShpbnB1dCkpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogIH0sCn0pOwpgYGAKCiMjIyBBZC1ob2MsIG9uZS1vZmYgdmFsaWRhdG9yIGdlbmVyYXRvcgoKQmVmZiBzdXBwb3J0cyBhIHR5cGUgY3JlYXRpb24gQVBJIHNpbWlsYXIgdG8gYHpvZGAsIGBpby10c2AgYW5kIHNpbWlsYXIuCgpIb3dldmVyLCBCZWZmJ3MgdHlwZSBjcmVhdGlvbiBBUEkgaXMgdmVyeSBsaW1pdGVkIGFuZCBvbmx5IHN1cHBvcnRzIGEgZmV3IHR5cGVzLgoKV2l0aCBCZWZmLCBjb21wbGV4IHR5cGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQgYnkgY29tcGlsaW5nIFR5cGVzY3JpcHQgdHlwZXMuCgpUeXBlcyBnZW5lcmF0ZWQgd2l0aCB0aGUgYWQtaG9jIEFQSSBoYXZlIHRoZSBzYW1lIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgYXMgcmVndWxhciBjb21waWxlZCB0eXBlcy4KCmBgYHRzCmltcG9ydCB7IGIgfSBmcm9tICJAYmVmZi9jbGllbnQiOwoKY29uc3QgQWRIb2NJdGVtID0gYi5PYmplY3QoewogIHN0cjogYi5TdHJpbmcoKSwKICBudW06IGIuTnVtYmVyKCksCiAgYm9vbDogYi5Cb29sZWFuKCksCiAgdW5kZWZpbmVkOiBiLlVuZGVmaW5lZCgpLAogIG51bGw6IGIuTnVsbCgpLAogIGFueTogYi5BbnkoKSwKICB1bmtub3duOiBiLlVua25vd24oKSwKfSk7Cgpjb25zdCBBZEhvY0xpc3QgPSBiLkFycmF5KEFkSG9jSXRlbSk7Cgpjb25zdCBscyA9IEFkSG9jTGlzdC5wYXJzZShbXSk7CmBgYAoKIyMjIFpvZCBDb21wYXRpYmlsaXR5CgpDYWxsIGAuem9kKClgIG9uIGEgcGFyc2VyIHRvIGNyZWF0ZSBhIGB6b2RgIHR5cGUuCgpVc2VmdWwgZm9yIGdyYWR1YWxseSBtaWdyYXRpbmcgZnJvbSBgem9kYC4KCmBgYHRzCmltcG9ydCB7IFBhcnNlcnMgfSBmcm9tICIuL3BhcnNlci50cyI7CmltcG9ydCB7IHogfSBmcm9tICJ6b2QiOwoKY29uc3QgdXNlcnMgPSB6LmFycmF5KFBhcnNlcnMuVXNlci56b2QoKSkucGFyc2UoewogIG5hbWU6ICJKb2huIERvZSIsCiAgYWdlOiA0MiwKfSk7CmBgYAoKIyMgQ29udHJpYnV0aW5nCgpQbGVhc2UgcmVhZCBbQ09OVFJJQlVUSU5HLm1kXSgvQ09OVFJJQlVUSU5HLm1kKQo= readmeEtag: '"edaf476ae49f72fedab395eda3dcf3b392eef947"' readmeLastModified: Wed, 26 Jun 2024 23:15:20 GMT repositoryId: 683896092 description: >- Efficient validators from Typescript types generated by a blazing fast compiler created: '2023-08-28T02:32:08Z' updated: '2024-06-26T23:15:25Z' language: Rust archived: false stars: 4 watchers: 1 forks: 1 owner: lucasavila00 logo: https://avatars.githubusercontent.com/u/12750442?v=4 repoEtag: '"2a4740bbf44648540aa803e1febd4d80b6e1366155dd16dd0613b89bc33553c4"' repoLastModified: Wed, 26 Jun 2024 23:15:25 GMT category: - Server Implementations - Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/modyuan/openapitomarkdown v3: true repositoryMetadata: base64Readme: >- IyBvcGVuYXBpVG9NYXJrZG93bgpjb252ZXJ0IG9wZW5BcGkzIGpzb24gZmlsZSB0byBtYXJrZG93biBmaWxlCgrmiopPcGVuQVBJM+eahGpzb27moLzlvI/vvIwg6L2s5o2i5Li6bWFya2Rvd27moLzlvI/vvIzmlrnkvr/pnZnmgIHlgqjlrZjjgIIKCuaehOaIkOaWueazleWPguiAg+S6hltzd2FnZ2VyLWJvb3RzdHJhcC11aV0oaHR0cHM6Ly9naXRodWIuY29tL3hpYW95bWluL3N3YWdnZXItYm9vdHN0cmFwLXVpKQoK readmeEtag: '"8255735b14cf295527465f2296b79918227f7116"' readmeLastModified: Sat, 11 Jul 2020 23:53:38 GMT repositoryId: 278960180 description: convert openApi3 json file to markdown file created: '2020-07-11T23:50:06Z' updated: '2020-07-11T23:55:19Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: modyuan logo: https://avatars.githubusercontent.com/u/18202493?v=4 license: MIT repoEtag: '"863ca948a6848b29d4cc169ac5890fc64b838d24b0ca5f32029248ada884c11e"' repoLastModified: Sat, 11 Jul 2020 23:55:19 GMT foundInMaster: true category: - Documentation - Parsers id: 0c2f2d8d4ff22b3acb1bc1233560000a - source: openapi3 tags repository: https://github.com/hw0k-play/openapi-codegen-example v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIENvZGVnZW4gZm9yIFR5cGVTY3JpcHQKCiMjIyBTZXR1cAoKMS4gQ2xvbmUgdGhpcyByZXBvCjIuIFJ1biBgeWFybmAKMy4gUnVuIGB5YXJuIGdlbmVyYXRlOm9wZW5hcGktdHlwZXNgCjQuIENoZWNrIGRpcmVjdG9yeSBgX19nZW5lcmF0ZWRfXy9gCg== readmeEtag: '"e49f9264ee329f9b636a9a0468d53d3932deb713"' readmeLastModified: Sun, 14 Mar 2021 17:35:03 GMT repositoryId: 347705066 description: OpenAPI Codegen for TypeScript created: '2021-03-14T17:28:09Z' updated: '2021-03-14T17:35:05Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: hw0k-play logo: https://avatars.githubusercontent.com/u/67791654?v=4 repoEtag: '"c3df050800eb895e9e74d4711dd4b6afc4e6561e2625eb4a8b3d18c090a8faba"' repoLastModified: Sun, 14 Mar 2021 17:35:05 GMT foundInMaster: true category: - Code Generators - Server Implementations id: c87341ab86f5d534eaf397c5fe5865d6 - source: openapi3 tags repository: https://github.com/tumanina/reportingsystem v3: true repositoryMetadata: repositoryId: 311774106 description: null created: '2020-11-10T20:15:25Z' updated: '2021-03-07T13:22:56Z' language: C# archived: false stars: 0 watchers: 1 forks: 0 owner: tumanina logo: https://avatars.githubusercontent.com/u/17797666?v=4 repoEtag: '"25358d48f1b8bbe553084f7e7c2593c972978fdf231b5c551f64b4730991d115"' repoLastModified: Sun, 07 Mar 2021 13:22:56 GMT foundInMaster: true id: 70ffeb9c48f7540976ec44d120898b27 - source: openapi3 tags repository: https://github.com/mikuhuyo/sms-service v3: true id: 9471c9b57775e278d57d1cf4ac284039 repositoryMetadata: base64Readme: >- IyDnn63kv6HmnI3liqHkvb/nlKjmiYvlhowKClshW0dpdEh1YiBsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL21pa3VodXlvL3Ntcy1zZXJ2aWNlKV0oaHR0cHM6Ly9naXRodWIuY29tL21pa3VodXlvL3Ntcy1zZXJ2aWNlL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpClshW0dpdEh1YiBpc3N1ZXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy9taWt1aHV5by9zbXMtc2VydmljZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1aHV5by9zbXMtc2VydmljZS9pc3N1ZXMpClshW0dpdEh1YiBzdGFyc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvc3RhcnMvbWlrdWh1eW8vc21zLXNlcnZpY2UpXShodHRwczovL2dpdGh1Yi5jb20vbWlrdWh1eW8vc21zLXNlcnZpY2Uvc3RhcmdhemVycykKWyFbR2l0SHViIGZvcmtzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9mb3Jrcy9taWt1aHV5by9zbXMtc2VydmljZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1aHV5by9zbXMtc2VydmljZS9uZXR3b3JrKQohW0phdmEgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9KZGstMTEteWVsbG93KQohW1NwcmluZ0Jvb3QgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9TcHJpbmdCb290LTIuMy4xMi5SRUxFQVNFLWJyaWdodGdyZWVuKQoKIyMg5L+u5pS5cmVkaXPnm7jlhbPphY3nva4KCuWwhuS4i+mdomByZWRpc2Dnm7jlhbPphY3nva7kv67mlLnkuLrkvaDnmoRgcmVkaXNg55u45YWz6YWN572uOgoKYGBgeWFtbApzcHJpbmc6CiAgY2FjaGU6CiAgICB0eXBlOiBSRURJUwogIHJlZGlzOgogICAgaG9zdDogMTI3LjAuMC4xCiAgICBwYXNzd29yZDogeXVlbGltaW52Y0BvdXRsb29rLmNvbQogICAgcG9ydDogNjM3OQogICAgZGF0YWJhc2U6IDAKICAgIHRpbWVvdXQ6IDMwMDBtcwogICAgbGV0dHVjZToKICAgICAgcG9vbDoKICAgICAgICBtYXgtaWRsZTogOAogICAgICAgIG1pbi1pZGxlOiAxCiAgICAgICAgbWF4LWFjdGl2ZTogOAogICAgICAgIG1heC13YWl0OiAzMDAwMG1zCiAgICAgIHNodXRkb3duLXRpbWVvdXQ6IDEwMDAwbXMKYGBgCgojIyDkv67mlLnohb7orq/kupHnm7jlhbPphY3nva4KCuWwhmBhcHBsaWNhdGlvbi55bWxg5paH5Lu25Lit6IW+6K6v5LqR6YWN572u6YOo5YiG5L+u5pS55Li65L2g55qE6YWN572uOgoKYGBgeWFtbApzbXM6CiAgZGVmYXVsdEV4cGlyZTogMzAwCiAgcWNsb3VkOgogICAgIyB5b3VyIGFwcCBpZAogICAgYXBwSWQ6IDAwMDAwMAogICAgYXBwS2V5OiAneW91cl9hcHBfa2V5JwogICAgdGVtcGxhdGVJZDogJ3lvdXJfc21zX3RlbXBsYXRlJwogICAgc2lnbjogJ3lvdXJfdGVuY2VudF9jbG91ZF9zbXNfc2lnbicKICAgICMgdGVuY2VudCBzbXMgYXBpCiAgICB1cmw6ICdodHRwczovL3l1bi50aW0ucXEuY29tL3Y1L3Rsc3Ntc3N2ci9zZW5kc21zJwpgYGAKCiMjIOaOpeWPo+ivt+axggoKPiBodHRwOi8vMTI3LjAuMC4xOjUyMDAwL3N3YWdnZXItdWkuaHRtbAoKPiDojrflj5bpqozor4HnoIEgaHR0cDovLzEyNy4wLjAuMTo1MjAwMC9zbXMvdGVuY2VudC9nZW5lcmF0L3tlZmZlY3RpdmVUaW1lfQoK5Y+C5pWwYGVmZmVjdGl2ZVRpbWVgOiDov4fmnJ/ml7bpl7QsIOWNleS9jeenkiwg5b+F6YCJ6aG5Cgror7fmsYLkvZM6CgpgYGBqc29uCnsKICAibW9iaWxlIjogIjE1NzExMTExMTExIgp9CmBgYAoK6L+U5Zue5YC8OgoKYGBganNvbgp7CiAgImNvZGUiOiAwLAogICJtc2ciOiAic3VjY2VzcyIsCiAgInJlc3VsdCI6IHsKICAgICJrZXkiOiAidGVuY2VudDpzbXM6PyIKICB9Cn0KYGBgCgo+IOmqjOivgeeggeagoemqjCBodHRwOi8vMTI3LjAuMC4xOjUyMDAwL3Ntcy90ZW5jZW50L3ZlcmlmaWNhdGlvbi97a2V5fS97Y29kZX0KCuWPguaVsGBrZXlgOiDnlJ/miJDnmoTnrb7lkI0KCuWPguaVsGBjb2RlYDog55Sf5oiQ55qE6aqM6K+B56CBCgrov5Tlm57lgLw6CgpgYGBqc29uCnsKICAiY29kZSI6IDAsCiAgIm1zZyI6ICJzdWNjZXNzIiwKICAicmVzdWx0IjogdHJ1ZSAvLyB0cnVl6KGo56S65oiQ5YqfLCBmYWxzZeihqOekuuWksei0pQp9CmBgYAoKIyMg54m55Yir6bij6LCiCgojIyMg5YWz5rOo6ICFCgpbIVtTdGFyZ2F6ZXJzIHJlcG8gcm9zdGVyIGZvciBAbWlrdWh1eW8vc21zLXNlcnZpY2VdKGh0dHBzOi8vcmVwb3Jvc3Rlci5jb20vc3RhcnMvbWlrdWh1eW8vc21zLXNlcnZpY2UpXShodHRwczovL2dpdGh1Yi5jb20vbWlrdWh1eW8vc21zLXNlcnZpY2Uvc3RhcmdhemVycykKCiMjIyDmlLbol4/ogIUKClshW0ZvcmtlcnMgcmVwbyByb3N0ZXIgZm9yIEBtaWt1aHV5by9zbXMtc2VydmljZV0oaHR0cHM6Ly9yZXBvcm9zdGVyLmNvbS9mb3Jrcy9taWt1aHV5by9zbXMtc2VydmljZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9taWt1aHV5by9zbXMtc2VydmljZS9uZXR3b3JrL21lbWJlcnMpCgojIyDor7fov5nkuKpi5Zad5p2v5rC0PwoKIVtBbGlwYXldKC4vaW1hZ2UvYWxpcGF5cy5wbmcpCgotLS0KCiFbV2VDaGF0UGF5XSguL2ltYWdlL3dlY2hhdHMucG5nKQ== readmeEtag: '"18c610dbecd677759ff12d4083ffb15351cd0d98"' readmeLastModified: Mon, 27 Feb 2023 12:47:19 GMT repositoryId: 400815235 description: 单纯的短信服务, 目前仅仅集成了腾讯云短信(人在电信外包, 差点没了) created: '2021-08-28T14:39:39Z' updated: '2023-02-27T13:14:52Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: mikuhuyo logo: https://avatars.githubusercontent.com/u/42843191?v=4 repoEtag: '"2c3507141cbc8b0ad5c6c04d35e5f05b0729d9c852051d28b29f8b0aa9b3e022"' repoLastModified: Mon, 27 Feb 2023 13:14:52 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/umatare5/atmos-openapi-src v3: true repositoryMetadata: base64Readme: >- IyBhdG1vcy1vcGVuYXBpLXNyYwoKYXRtb3Mtb3BlbmFwaS1zcmMgaXMgYSBzb3VyY2UgZ2VuZXJhdGVzIGxpYnJhcmllcyBmb3IgW0FUTU9TIFBsYXRmb3JtIEFQSV0oaHR0cHM6Ly93d3cuYXRtb3MuYXBwLykuCgpUaGlzIGNvZGUgZ2VuZXJhdGVzIGZvbGxvd2luZyBtb2R1bGU7CgotIFthdG1vcy1nb10oaHR0cHM6Ly9naXRodWIuY29tL3VtYXRhcmU1L2F0bW9zLWdvKQoKICBHbyBDbGllbnQgdG8gdXNlIEFUTU9TIFBsYXRmb3JtIEFQSS4KCiMjIFByZXJlcXVpc2l0ZQoKLSBGUUROIG9mIEFUTU9TIFBsYXRmb3JtIEFQSQotIEFjY2Vzcy10b2tlbiB0byB1c2UgQVRNT1MgUGxhdGZvcm0gQVBJCgpCb3RoIHBhcmFtZXRlcnMgYXJlIGhpZGRlbiB5ZXQuIExldCdzIHdhaXQgZm9yIG9mZmljaWFsIHJlbGVhc2UuCgojIyBEZXZlbG9wbWVudAoKIyMjIFNldHVwCgotIEluc3RhbGwgYHN3YWdnZXItY2xpYCBmb3IgYnVuZGxlIGRpdmlkZWQgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucy4KCiAgYGBgc2gKICBucG0gaW5zdGFsbAogIGBgYAoKLSBJbnN0YWxsIGBvYXBpLWNvZGVnZW5gIGZvciBidWlsZCB0aGUgY2xpZW50LgoKICBgYGBzaAogIGdvIGluc3RhbGwgZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbi9jbWQvb2FwaS1jb2RlZ2VuQGxhdGVzdAogIGBgYAoKIyMjIEJ1aWxkCgpgYGBzaAptYWtlIGJ1aWxkCmBgYAoKIyMjIFJlbGVhc2UKCmBgYHNoCmdpdCBidW1wCm1ha2UgcmVsZWFzZQpgYGAK readmeEtag: '"dc535c242a98d9868eee28c456b5d3fefbc7f465"' readmeLastModified: Wed, 26 Jan 2022 12:55:55 GMT repositoryId: 446084686 description: Source of libraries to use ATMOS Platform API created: '2022-01-09T12:41:06Z' updated: '2022-02-15T13:54:38Z' language: Shell archived: false stars: 0 watchers: 1 forks: 0 owner: umatare5 logo: https://avatars.githubusercontent.com/u/72645163?v=4 repoEtag: '"445964358cf1f4638e8773f51a49301a17ac297a5a0c67c791a8af80eaba1089"' repoLastModified: Tue, 15 Feb 2022 13:54:38 GMT foundInMaster: true category: Code Generators id: a367768e9e245603e703c3d4dc71e4ea - source: openapi3 tags repository: https://github.com/nexys-system/openapi-to-idl v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHRvIGludGVyZmFjZSBkZWZpbml0aW9uIGxhbmd1YWdlIChJREwpCgpbIVtUZXN0XShodHRwczovL2dpdGh1Yi5jb20vbmV4eXMtc3lzdGVtL29wZW5hcGktdG8taWRsL2FjdGlvbnMvd29ya2Zsb3dzL3Rlc3QueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9uZXh5cy1zeXN0ZW0vb3BlbmFwaS10by1pZGwvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55bWwpClshW0RlcGxveV0oaHR0cHM6Ly9naXRodWIuY29tL25leHlzLXN5c3RlbS9vcGVuYXBpLXRvLWlkbC9hY3Rpb25zL3dvcmtmbG93cy9kZXBsb3kueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9uZXh5cy1zeXN0ZW0vb3BlbmFwaS10by1pZGwvYWN0aW9ucy93b3JrZmxvd3MvZGVwbG95LnltbCkKCkdlbmVyYXRlIGEgdHlwZXNjcmlwdCBmaWxlLiBkaXJlY3RseSBmcm9tIHRoZSBPcGVuQVBJIGRlZmluaXRpb24gZmlsZS4gVGhlIGdlbmVyYXRlZCBmaWxlIGNhbiBiZSBpbnRlZ3JhdGVkIGluIGEgcHJvamVjdCB0aHVzIG9mZmVyaW5nIGFuIGVhc3kgYW5kIHR5cGVzYWZlIHdheSB0byBpbnRlZ3JhdGUgd2l0aCBhbnkgQVBJLgoK readmeEtag: '"28f64c3a265f395ca2d3ab60212c10442e231324"' readmeLastModified: Fri, 04 Mar 2022 10:52:29 GMT repositoryId: 465714656 description: turn OpenAPI specs into an IDL created: '2022-03-03T12:43:50Z' updated: '2022-03-03T21:24:18Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: nexys-system logo: https://avatars.githubusercontent.com/u/71571169?v=4 license: MIT repoEtag: '"615b13e209b49c9f309463c00d4f3f735478b54fe9589033bd06108e03d487a3"' repoLastModified: Thu, 03 Mar 2022 21:24:18 GMT foundInMaster: true category: - Server - Testing id: 43a0f97b9da42fde1cd7e39dd518a21f - source: openapi3 tags repository: https://github.com/dmitrytokyo/cities_api v3: true repositoryMetadata: base64Readme: >- IyBSRVNUIEFQSSBDaXRpZXMgYXBwbGljYXRpb24KClRoaXMgUkVTVCBBUEkgcHJvdmlkZXMgdGhlIGhhbmRsZXIgZm9yIHNob3dpbmcsIHNhdmluZywgZmV0Y2hpbmcgYW5kIG1hbmFnaW5nIGNpdHkgZGF0YS4gVGhlIGFwcGxpY2F0aW9uIHdhcyBpbXBsZW1lbnRlZCBieSB0ZXN0IHRhc2sgZG9jdW1lbnRhdGlvbgpmb3IgdGhlIHZhY2FuY3kgb2YgcHl0aG9uIGRldmVsb3Blci4KCiMjIEdldCBzdGFydGVkCkZvciBsYXVuY2ggdGhpcyBhcHBsaWNhdGlvbiB5b3Ugc2hvdWxkIGJlIGluc3RhbGxlZCBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzOgotIFByb2dyYW1taW5nIGxhbmd1YWdlIGlzIFtQeXRob24gMy4xMC4wXShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy9yZWxlYXNlL3B5dGhvbi0zMTAwLykuCi0gQWxsIGRlcGVuZGVuY2llcyBpbnN0YWxsIGZyb20gYHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy9yZXF1aXJlbWVudHMudHh0IC0tdXNlLWRlcHJlY2F0ZWQ9bGVnYWN5LXJlc29sdmVyYC4KClRoaXMgYXBwbGljYXRpb24gdXNlcyBnb29nbGUgYW5kIHlhbmRleC4gWW91IHNob3VsZCByZWdpc3RlciB5b3VyIGFwcGxpY2F0aW9uIGluIHNlcnZpY2VzCi0gW0dvb2dsZV0oaHR0cHM6Ly9jb25zb2xlLmNsb3VkLmdvb2dsZS5jb20vcHJvamVjdGNyZWF0ZT9wcmV2aW91c1BhZ2U9JTJGcHJvamVjdHNlbGVjdG9yMiUyRmdvb2dsZSUyRm1hcHMtYXBpcyUyRmNyZWRlbnRpYWxzJTNGX2dhJTNEMi4xNTUzMjI2ODEuMzg4MTM0MDQ5LjE2NDQ3MTkyNDQtMjAwODMzMzk1Mi4xNjQ0NDk5OTgyKQotIFtZYW5kZXhdKGh0dHBzOi8veWFuZGV4LmNvbS9kZXYvbWFwcy9nZW9jb2Rlci8/ZnJvbT1tYXBzYXBpKQoKRGVjbGFyZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiAuZW52IGZpbGUuIFJlYWQgbW9yZSBpbiBbZGphbmdvLWVudmlyb25dKGh0dHBzOi8vZGphbmdvLWVudmlyb24ucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Lyk6Ci0gU0VDUkVUX0tFWSAtIHNlY3JldCBrZXkgZm9yIGEgcGFydGljdWxhciBEamFuZ28gaW5zdGFsbGF0aW9uLgotIERFQlVHIC0gZGVidWcgbW9kZS4KLSBHT09HTEVfQVBJX0tFWSAtIEdvb2dsZSBtYXAgYXBpIGtleSBbR29vZ2xlIGNyZWF0ZSBBUGkgS2V5XShodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9nb29nbGUvbWFwcy1hcGlzKQotIEdPT0dMRV9FTEVWQVRJT05fQVBJX0tFWSAtIEdvb2dsZSBtYXAgZWxldmF0aW9uIGFwaSBrZXkgW0dvb2dsZSBjcmVhdGUgQVBpIEtleV0oaHR0cHM6Ly9jb25zb2xlLmNsb3VkLmdvb2dsZS5jb20vZ29vZ2xlL21hcHMtYXBpcykKLSBZQU5ERVhfQVBJX0tFWSAtIFlhbmRleCBhcGkga2V5IFtZYW5kZXggY3JlYXRlIGFwaSBrZXldKGh0dHBzOi8veWFuZGV4LmNvbS9kZXYvbWFwcy9nZW9jb2Rlci8/ZnJvbT1tYXBzYXBpKQotIEFMTE9XX0hPU1QgLSBhbGxvdyBhcHBsaWNhdGlvbiBob3N0cwoKIyMgSG93IHRvIHVzZSBpbiBsb2NhbApCZWZvcmUgcnVuIHRoZSBhcHBsaWNhdGlvbiBpdCByZWNvbW1lbmRzIGluc3RhbGxpbmcgdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQuIEluIHRoZSBMaW51eCBpdCBjYW4gYmUgZG9pbmcgbGlrZSB0aGlzOgpgYGBzaApweXRob24zIC1tIHZlbnYgdmVudgpzb3VyY2UgdmVudi9iaW4vYWN0aXZhdGUKYGBgCgpNYWtlIGEgbWlncmF0aW9uOgpgYGBzaAouL21hbmFnZS5weSBtaWdyYXRlCmBgYApBbmQgcnVuIGFwcGxpY2F0aW9uCmBgYHNoCi4vbWFuYWdlLnB5IHJ1bnNlcnZlcgpgYGAKCkFsc28sIHlvdSBjYW4gbWFrZSBzdXBlcnVzZXIgZm9yIG1hbmFnZSBkYXRhYmFzZSB1c2VkIHRoZSBhZG1pbiBwYWdlCmBgYHNoCi4vbWFuYWdlLnB5IGNyZWF0ZXN1cGVydXNlcgpgYGAKCllvdSBjYW4gY2hlY2sgcHJvamVjdCB1c2luZyBmbGFrZTgKYGBgc2gKbWFrZSBzdHlsZQpgYGAKCiMjIEhvdyB0byBydW4gaW4gRG9ja2VyCgpZb3UgaGF2ZSB0byBpbnN0YWxsZWQgW2RvY2tlcl0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vKSBvbiB5b3VyIG1hY2hpbmUuCgoxLiBZb3UgbmVlZCB0byBiaWxkIGRvY2tlciBpbWFnZToKYGBgYmFzaApkb2NrZXIgYnVpbGQgLXQgY2l0aWVzX2FwcCAuCmBgYAoyLiBZb3UgbmVlZCB0byBsYXVuY2ggYXBwbGljYXRpb24gYnkgcnVuIHRoZSBkb2NrZXIgY29udGFpbmVyIGJ5IGNvbW1hbmQKYGBgc2hlbGwKZG9ja2VyIHJ1biAtLWVudi1maWxlIC5lbnYgLXAgODAwMDo4MDAwIGNpdGllc19hcHAKYGBgCgoKIyMgQVBJIFJlZmVyZW5jZToKCiMjIyBVUkwgU3ludGF4CkNpdGllcyBhcHBsaWNhdGlvbiBwcm92aWRlcyBmb2xsb3cgc3ludGF4IG9mIHVybCAoYmVmb3JlIGRlcGxveSBhbGwgZXhhbXBsZXMgYmFzZWQgb24gbG9jYWxob3N0KQoKYGBgc2gKaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwaS92MS9jaXRpZXMvPHBrPls/PHBhcmFtZXRlcj12YWx1ZT4mPHBhcmFtZXRlcj12YWx1ZT5dCmBgYAoKb3IgaWYgbGF1bmNoIGluIGRvY2tlcjoKCmBgYHNoZWxsCmh0dHA6Ly8wLjAuMC4wOjgwMDAvYXBpL3YxL2NpdGllcy88cGs+Wz88cGFyYW1ldGVyPXZhbHVlPiY8cGFyYW1ldGVyPXZhbHVlPl0KYGBgCndoZXJlOgoKLSBgYXBpL3YxL2NpdGllcy9gIC0gYmFzZSB1cmwgZm9yIGFjY2VzcyBjaXRpZXMgUkVTVCBBUEkgcmVzb3VyY2VzLgotIGBwa2AgLSBpZCBvZiBjaXR5IG9iamVjdCBpbiBkYXRhYmFzZS4KLSBgWz88cGFyYW1ldGVyPXZhbHVlPiY8cGFyYW1ldGVyPXZhbHVlPl1gIC0gcXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIGNpdGllcyBxdWVyeS4KCiMjIyBFbmRwb2ludHMKCnwgRW5kcG9pbnQgbmFtZSAgICAgfCBFbmRwb2ludCB8IEVuZHBvaW50IHR5cGUgfCBOb3RlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8ICpDcmVhdGUgY2l0eSogICAgIHwgYFBPU1QgL2NpdGllc2AgfCBgYXBwbGljYXRpb24vanNvbmAgfCBSZXF1aXJlZCBwYXJhbWV0ZXJzICJ0aXRsZSIgKGNpdHkgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqQWxsIGNpdGllcyBsaXN0KiB8IGBHRVQgL2NpdGllc2AgfCBgYXBwbGljYXRpb24vanNvbmAgfCBRdWVyeSBwYXJhbWV0ZXJzOiAqKmxhdCoqPSwgKipsb24qKj0uIERhdGEgc2hvdWxkIHBhc3MgYXMgaW50IG9yIGZsb2F0IG51bWJlciB8CnwgKlJldHJlaXZlIGNpdHkqICAgfCBgR0VUIC9jaXRpZXMve2NpdHlfaWR9YCB8IGBhcHBsaWNhdGlvbi9qc29uYCB8IFBhcmFtZXRlcjogKipjaXR5X2lkKiogfAp8ICpEZWxldGUgY2l0eSogICB8IGBERUxFVEUgL2NpdGllcy97Y2l0eV9pZH1gIHwgYGFwcGxpY2F0aW9uL2pzb25gIHwgUGFyYW1ldGVyOiAqKmNpdHlfaWQqKiB8CgojIyMgU3dhZ2dlciBzY2hlbWEKCllvdSBjYW4gZmluZCBzd2FnZ2VyIHNjaGVtYSBieSB1cmw6IApgYGBzaGVsbApodHRwOi8vMTI3LjAuMC4xOjgwMDAvYXBpL3NjaGVtYS9zd2FnZ2VyLXVpCmBgYAoKb3IgaWYgbGF1bmNoIGluIGRvY2tlcjoKYGBgc2hlbGwKaHR0cDovLzAuMC4wLjA6ODAwMC9hcGkvc2NoZW1hL3N3YWdnZXItdWkKYGBgCgohW1N3YWdnZXJdKGNpdGllcy9tZWRpYS9hcGlfc2NoZW1hX3NjcmVlbnNob3QucG5nKQojIyBMaWNlbnNlCgpZb3UgY2FuIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSB0aGUgc29mdHdhcmUu readmeEtag: '"b484cdf166cd6159c5d6cafd2bddb07eaa9c3b8e"' readmeLastModified: Sun, 27 Mar 2022 14:41:27 GMT repositoryId: 458748953 description: Public REST API - city application created: '2022-02-13T08:13:54Z' updated: '2022-03-27T14:42:48Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: DmitryTokyo logo: https://avatars.githubusercontent.com/u/56811509?v=4 repoEtag: '"12900ac6b38d9f2c836a189c64566d3ba3a0555e5289d55f735425c3ee1a24db"' repoLastModified: Sun, 27 Mar 2022 14:42:48 GMT foundInMaster: true category: Server Implementations id: 738c2480863baa84889eefb79167aa19 - source: openapi3 tags repository: https://github.com/da0hn/bossabox-code-challenge v3: true id: 9d18581223a55a2c643b3c7f5d717e2d repositoryMetadata: base64Readme: >- IyBCb3NzYUJveCBjb2RlIGNoYWxsZW5nZQoKKiBJbXBsZW1lbnRhdGlvbiBvZiBWVVRUUiAoVmVyeSBVc2VmdWwgVG9vbHMgdG8gUmVtZW1iZXIpIHVzaW5nIHN0YWNrCiAgYEphdmEgMTdgLCBgU3ByaW5nIEJvb3QgMi43LjVgIGFuZCBgTmVvNGogR3JhcGggRGF0YWJhc2VgLgoKKiBBUEkgRG9jczogYHtiYXNlVXJsfS9hcGkvdnV0dHItc2VydmljZS92My9hcGktZG9jc2AKKiBTd2FnZ2VyIFVJOiBge2Jhc2VVcmx9L2FwaS92dXR0ci1zZXJ2aWNlL3N3YWdnZXItdWkvaW5kZXguaHRtbGAKKiBUbyBzdGFydCBkYXRhYmFzZSB1c2UgY29tbWFuZCBgZG9ja2VyLWNvbXBvc2UgdXAgLS1idWlsZGAgKF9gLS1idWlsZGAgaXMgcmVxdWlyZWRfKQoKCiogVGhlIHJlcXVpcmVtZW50cyBhcmUgZGVzY3JpYmUgaW4gW25vdGlvbl0oaHR0cHM6Ly93d3cubm90aW9uLnNvL0JhY2stZW5kLTBiMmM0NWYxYTAwZTRhODQ5ZWVmZTNiMWQ1N2YyM2M2KS4KCjxkZXRhaWxzPgogIDxzdW1tYXJ5PlJlZmVyZW5jZXM8L3N1bW1hcnk+CiAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWRhdGEvbmVvNGovZG9jcy82LjMuNS9yZWZlcmVuY2UvaHRtbC8iPk5lbzRqIFNwcmluZyBEYXRhIHY2LjMuNS48L2E+PC9saT4KPC9kZXRhaWxzPgo= readmeEtag: '"4865ba45a121a691c156137ffa2c656ebf8bf603"' readmeLastModified: Mon, 29 May 2023 02:13:05 GMT repositoryId: 546942908 description: BossaBox code challenge implementation created: '2022-10-06T22:45:10Z' updated: '2023-05-09T17:23:02Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: da0hn logo: https://avatars.githubusercontent.com/u/40874826?v=4 repoEtag: '"922b60d7798afe8a6b3d088ae688ae2734ec38c2575ed997343d7bb6849141ed"' repoLastModified: Tue, 09 May 2023 17:23:02 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/white1027/micro-service-workspace v3: true id: 7f52e71b35c7508746e16559cb6f53e4 repositoryMetadata: base64Readme: >- IyBNaWNyb1NlcnZpY2VXb3Jrc3BhY2UKCiMjIOWwiOahiOebrueahOiIh+iqquaYjgotIOS7peW+ruacjeWLmeeCuuS4u+eahOWwiOahiOaetuaniwotIOeUseaWvOS5i+WJjeeahOaetuaniyDmnIPlsIfmr4/lgIvlvq7mnI3li5npg73plovkuIDloIblsIjmoYjomZXnkIYg6YCg5oiQ566h55CG5LiK55qE5Zuw6ZujIOaJgOS7peW4jOacm+iDveWwh+WkmuWAi+W+ruacjeWLmeaUvuWcqOWQjOS4gOWAi+WwiOahiCDkvb/lhbbovIPlrrnmmJPnrqHnkIYKLSDlupXkuIvlpoLmnpzmnInpnIDopoEg5Y+v5Lul5pS555SoIGdpdCBzdWJtb2R1bGUg566h55CGCi0gKipnYXRld2F5Kiog5piv5YWl5Y+jIOmAmuW4uOWPquacg+acieS4gOWAiyAo5aaC5p6c5pyJ5LiN5ZCM55qE5pyN5YuZ5oOz6KaB5o6l57O757WxIOWPr+S7peiAg+aFruWPpuWklumWi+S4gOWAiyBnYXRld2F5KQotICoqbGliKiog5YWx55So5Ye95byP5bqrIOmAmuW4uOaUvuaJgOacieaooee1hOmDveacg+eUqOWIsOeahCAo5aaC5p6c5piv5L2/55SoIFNwcmluZyBKUEEg5LmL6aGe55qEIOmcgOimgeWPpuWkluWGjemWi+S4gOWAiyDlj6rntaYgbW9kdWxlcyDkvb/nlKgpCi0gKiptb2R1bGVzKiog5ZCE5YCL5b6u5pyN5YuZIOWPr+S7peS6kuebuOmAmuioigotICoqZGF0YWJhc2UqKiDpoJDoqIjmr4/lgIvlvq7mnI3li5npg73mnIPmnInoh6rlt7HnmoRkYXRhYmFzZQotIOacgOW+jOWwseaYryDpgJnpgorpg73mlL7miJHoh6rlt7Hoprrlvpflpb3nlKjnmoQg5omA5Lul5bCx5pW05ZCI5oiQ5LiA5YCL5bCI5qGIIOS4puWwh+S4gOS6m+W4uOeUqOeahOaSsOWvq+aWueazleaUvuWFpQoKIyMg5L2/55So55qEIExpYnJhcnkKCiMjIyBHYXRld2F5Ci0gKipTcHJpbmcgQWN0dWF0b3IqKiDnm6PmjqfnlKgKLSAqKlNwcmluZyBXZWJmbHV4KiogUmVhY3RpdmUgd2ViICjlmJfoqabkvb/nlKgpCi0gKipKZXR0eSoqIOaQremFjSBXZWJmbHV4Ci0gKipEdWJibyoqIOW+ruacjeWLmemAmuioiueUqCAgIAotICoqWm9va2VlcGVyKiog5b6u5pyN5YuZ6Ki75YaK55SoCi0gKipPcGVuQXBpICsgUmVkb2MqKgotICoqU2EtVG9rZW4qKiDnmbvlhaXpqZforYnnlKgKICAgCiMjIyBDb21tb25MaWJyYXJ5Ci0gKipMb21ib2sqKiDlpb3nlKjnmoQgZ2V0dGVyIHNldHRlciDlt6XlhbcKCiMjIyBNb2R1bGVzCi0gKipTcHJpbmcgQWN0dWF0b3IqKiDnm6PmjqfnlKgKLSAqKkR1YmJvKiog5b6u5pyN5YuZ6YCa6KiK55SoCi0gKipab29rZWVwZXIqKiDlvq7mnI3li5noqLvlhornlKgKLSAqKk15YmF0aXMqKiBEQueahE9STeW3peWFtwotICoqUG9zdGdyZXMqKiDnm67liY3lvJXnlKjnmoRKREJDCi0gKipGbHl3YXkqKiBEQueJiOaOp+W3peWFtwoKIyMg6ZaL55m85pa55rOVCjEuIOWVn+WLlSBab29rZWVwZXIKMi4g5ZWf5YuVIOWQhOW+ruacjeWLmQozLiDllZ/li5UgR2F0ZXdheSBQb3J0IOmgkOioreeCuiA4MDk5CjQuIOiHsyBsb2NhbGhvc3Q6ODA5OS9pbmRleC5odG1sIOWPr+S7peeci+WIsCBBcGkg5YiX6KGoCgojIyDkvb/nlKjms6jmhI/kuovpoIUKLSDlsIjmoYjlpKrlpJrlsI7oh7QgZ3JhZGxlIG9vbQotIE1vZGVsIOeahOmhnuWIpeWPr+S7peS9v+eUqCBSZWNvcmQg5oiWIEBEYXRhIOaIliBAQnVpbGRlciwgbXliYXRpcyBkdWJibyDpg73lj6/ku6Xop6PmnpAKLSBTYS1Ub2tlbiDlj6/ku6XmkK3phY0gZHViYm8g5L2/55SoCgojIyDlrpjmlrnmlofku7YKLSBNeWJhdGlzIFvli5XmhYtTUUxdKGh0dHBzOi8vbXliYXRpcy5vcmcvbXliYXRpcy0zL3poL2R5bmFtaWMtc3FsLmh0bWwpCi0gRHViYm8gW+WumOe2sl0oaHR0cHM6Ly9jbi5kdWJiby5hcGFjaGUub3JnL3poLWNuL292ZXJ2aWV3L2hvbWUvKQotIFJlZG9jIFtHaXRodWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKQotIFpvb2tlZXBlciBbRG9ja2VyXShodHRwczovL2h1Yi5kb2NrZXIuY29tL18vem9va2VlcGVyKQotIFNhLVRva2VuIFvlrpjntrJdKGh0dHBzOi8vc2EtdG9rZW4uY2MvKQoKIyMjIOWll+S7tuS9v+eUqOazqOaEj+S6i+mghQotICoqRmx5d2F5Kiog55uu5YmN6Kit5a6a54K6IOWwiOahiOWVn+WLleWwseacg+iHquWLleabtOaWsOebruaomURCCgojIyDnt6jora/mjIfku6Tot5/nmbzooYwKCiMjIyDnt6jora/miJBKQVIKLSBgIGdyYWRsZSBidWlsZGAKCiMjIyMgSmFyIOS9jee9rgotIGdhdGV3YXkvY29yZS1nYXRld2F5L2J1aWxkL2xpYnMvY29yZS1nYXRld2F5OjAuMC4xLVNOQVBTSE9UCi0gbW9kdWxlcy9jb3JlLW1vZHVsZS9idWlsZC9saWJzL2NvcmUtbW9kdWxlOjAuMC4xLVNOQVBTSE9UCi0gbW9kdWxlcy91c2VyLW1vZHVsZS9idWlsZC9saWJzL3VzZXItbW9kdWxlOjAuMC4xLVNOQVBTSE9UCgoKIyMjIGdyYWFsdm0gTmF0aXZlCi0gYGdyYWRsZSA6Z2F0ZXdheTpjb3JlLWdhdGV3YXk6Ym9vdEJ1aWxkSW1hZ2UgOm1vZHVsZXM6Y29yZS1tb2R1bGU6Ym9vdEJ1aWxkSW1hZ2UgOm1vZHVsZXM6dXNlci1tb2R1bGU6Ym9vdEJ1aWxkSW1hZ2VgCm9yCi0gYGdyYWRsZSA6Z2F0ZXdheTpjb3JlLWdhdGV3YXk6Ym9vdEJ1aWxkSW1hZ2VgCi0gYGdyYWRsZSA6bW9kdWxlczpjb3JlLW1vZHVsZTpib290QnVpbGRJbWFnZWAKLSBgZ3JhZGxlIDptb2R1bGVzOnVzZXItbW9kdWxlOmJvb3RCdWlsZEltYWdlYAojIyMjIGltYWdlIOmgkOioreS9jee9rgotIGRvY2tlci5pby9saWJyYXJ5L2NvcmUtZ2F0ZXdheTowLjAuMS1TTkFQU0hPVAotIGRvY2tlci5pby9saWJyYXJ5L2NvcmUtbW9kdWxlOjAuMC4xLVNOQVBTSE9UCi0gZG9ja2VyLmlvL2xpYnJhcnkvdXNlci1tb2R1bGU6MC4wLjEtU05BUFNIT1QKCgojIyBUT0RPCi0gWyBdIG15YmF0aXMg5YiH5o+bIHNjaGVtYQotIFsgXSBkdWJibyBzZXJ2aWNlIG1lc2gKLSBbIF0gZHViYm8gYXBpIGRvY3MKLSBbIF0g5Zau5YWD5ris6KmmICjnm67liY0gZHViYm8g5pyD5aSx5pWXKQotIFsgXSBEb2NrZXIgQ29tcG9zZSDmjqXplovnmbw= readmeEtag: '"36a52bd464a7ef2a60a0831c677e1e4256614975"' readmeLastModified: Tue, 07 Nov 2023 04:12:56 GMT repositoryId: 710117294 description: 一個Workspace放多個微服務 created: '2023-10-26T03:51:50Z' updated: '2023-11-14T04:12:56Z' language: Java archived: false stars: 0 watchers: 1 forks: 1 owner: white1027 logo: https://avatars.githubusercontent.com/u/4639053?v=4 license: MIT repoEtag: '"058f4f1df07856e4e9171dc29eb2490568ab50f515a4ee4abe6c1647e4d61c3a"' repoLastModified: Tue, 14 Nov 2023 04:12:56 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/gogvale/timbre_api v3: true id: 88f762db0b11e5b1426d7c6ca95975e7 repositoryMetadata: base64Readme: >- IyBUaW1icmUgQVBJCiFbUmFpbHMgQ0kgQmFkZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb2d2YWxlL3RpbWJyZV9hcGkvYWN0aW9ucy93b3JrZmxvd3MvcnVieW9ucmFpbHMueW1sL2JhZGdlLnN2ZykKCiMjIyBEZXBlbmRlbmNpZXM6CiogcnVieSAzLjEuMnAyMAoqIFJhaWxzIDcuMC40CiogUG9zdGdyZVNRTCAxNC41CgpUaGluZ3MgeW91IG1heSB3YW50IHRvIGNvdmVyOgoKIyMjICBEYXRhYmFzZSBjcmVhdGlvbiArIG1pZ3JhdGlvbnMKYGBgc2hlbGwKJCBiaW4vcmFpbHMgZGI6bWlncmF0ZTpyZXNldApgYGAKCiMjIyBSdW5uaW5nIHRlc3RzCmBgYHNoZWxsCiQgYmluL2J1bmRsZSByc3BlYyAoc3BlY3xwYXRoX3RvX2ZpbGU6bGluZSkKYGBgCiMjIyBEZXBsb3ltZW50IGluc3RydWN0aW9ucwooVE9ETykK readmeEtag: '"3b21dac9b1033bd0081128b4bf9e8d170fa74d3b"' readmeLastModified: Wed, 19 Oct 2022 01:10:17 GMT repositoryId: 551710663 description: >- Social app API where clients search and contact musicians for events (work in progress) created: '2022-10-14T23:59:18Z' updated: '2022-10-17T23:58:39Z' language: Ruby archived: false stars: 0 watchers: 1 forks: 0 owner: gogvale logo: https://avatars.githubusercontent.com/u/23729423?v=4 license: GPL-3.0 repoEtag: '"268f5069b0007edb12b016a88519cfe97c2f3b3baa4b8609a0651e9087c75d29"' repoLastModified: Mon, 17 Oct 2022 23:58:39 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/oltionzefi/nestjs-mailer-handlebars v3: true id: 9d609acb6d4b267d9806cffc4d70a11b repositoryMetadata: base64Readme: >- IyBOZXN0anMgTWFpbGVyIEhhbmRsZWJhcnMKCiMjIERlc2NyaXB0aW9uCgpQcm9qZWN0IHdoaWNoIGludGVncmF0ZXMgW25lc3Rqcy5jb21dKGh0dHBzOi8vbmVzdGpzLmNvbSksIFtuZXN0LW1vZHVsZXMvbWFpbGVyL10oaHR0cHM6Ly9uZXN0LW1vZHVsZXMuZ2l0aHViLmlvL21haWxlci8pIAphbmQgW2hhbmRsZWJhcnNdKGh0dHBzOi8vaGFuZGxlYmFyc2pzLmNvbSkKCiMjIFJ1bm5pbmcgdGhlIGFwcAoKVGhpcyBwcm9qZWN0IGlzIGJ1aWxkIHdpdGggRG9ja2VyIGFuZCBkb2NrZXIgY29tcG9zZSwgYW5kIHRvIHJ1biB0aGUgYXBwIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kLgoKYGBgYmFzaApkb2NrZXIgY29tcG9zZSB1cAoKIyBvcgoKZG9ja2VyIGNvbXBvc2UgdXAgLWQKYGBgCgpBZnRlciB0aGF0IG9wZW4gdGhlIE9wZW5BUEkgdXJsOiBgYGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGlgYAoKIVtvcGVuYXBpXSguL2ltYWdlcy9zY3JlZW5jYXB0dXJlLWxvY2FsaG9zdC1vcGVuYXBpLnBuZykKCndoZXJlIHlvdSBjYW4gc2VlIHRoZSBhcGkgd2hpY2ggdGhpcyBwcm9qZWN0IGNvbnRhaW5zLgoKSWYgeW91IG9wZW4gaW4gcGFyYWxsZWxsIGFsc28gdGhlIHVybCBmb3IgY2hlY2tpbmcgZW1haWxzOiBgYGh0dHA6Ly9sb2NhbGhvc3Q6MTA4MGBgLCB5b3Ugd2lsbCBzZWUgZW1wdHkgbGlzdDoKCiFbZW1wdHktZW1haWxdKC4vaW1hZ2VzL3NjcmVlbmNhcHR1cmUtbG9jYWxob3N0LTEwODAucG5nKQoKVG8gZG8gYSB0ZXN0LCBnbyBhZ2FpbiB0byBPcGVuQVBJIGFuZCB0cnkgdGhlIGVuZHBvaW50LCBpbW1lZGlhdGVseSB5b3Ugd2lsbCBzZWUgZW1haWwgaW4gdGhlIG1haWxkZXYsIGZvcm1hdHRlZCBhcyBiZWxvdzoKCiFbZW1haWxdKC4vaW1hZ2VzL3NjcmVlbmNhcHR1cmUtbG9jYWxob3N0LWVtYWlsLnBuZykKCiMjIFRlc3QKCmBgYGJhc2gKIyB1bml0IHRlc3RzCm5wbSBydW4gdGVzdApgYGAKCiMjIExpY2Vuc2UKCk5lc3QgaXMgW0JTRCAzLUNsYXVzZSBMaWNlbnNlXShMSUNFTlNFKS4K readmeEtag: '"f7159ed74a6640d17be2a6d29b0de37751983f99"' readmeLastModified: Fri, 16 Dec 2022 22:49:31 GMT repositoryId: 579196028 description: Demo project with nestjs, nest-modules/mailer and handlebars created: '2022-12-16T22:48:47Z' updated: '2022-12-17T17:24:10Z' language: Handlebars archived: false stars: 0 watchers: 1 forks: 0 owner: oltionzefi logo: https://avatars.githubusercontent.com/u/13889145?v=4 license: BSD-3-Clause repoEtag: '"dbddaa49616faad5595fcfac598d14cf2f54670d054c19f3077d35b301499a68"' repoLastModified: Sat, 17 Dec 2022 17:24:10 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/kevinsdj/beertapdispenser v3: true id: 938283ab5b73c973a14440d79cc11705 repositoryMetadata: base64Readme: >- IyBCZWVyIFRhcCBEaXNwZW5zZXIgQXBpCgojIyMjIGNvbW1hbmQgdG8gcnVuIHRlc3QgYnkgcHJvZmlsZSA6Ci0gUHJvZHVjdGlvbjogIG12biBzcHJpbmctYm9vdDpydW4gLURzcHJpbmctYm9vdC5ydW4ucHJvZmlsZXM9cHJvZAotIERldmVsb3BtZW50OiBtdm4gc3ByaW5nLWJvb3Q6cnVuIC1Ec3ByaW5nLWJvb3QucnVuLnByb2ZpbGVzPWRldgotIFRlc3Rpbmc6IG12biBzcHJpbmctYm9vdDpydW4gLURzcHJpbmctYm9vdC5ydW4ucHJvZmlsZXM9dGVzdAoKIyMjIyBJZiB5b3Ugd2FudCB0byB0ZXN0IHRoZSBhcGkgZnJvbSB5b3VyIGNvbXB1dGVyIHdpdGhvdXQgaW5zdGFsbGluZyBtYXZlbiBvciBqYXZhLCB5b3UgY2FuIHVzZSBkb2NrZXIgY29tcG9zZSwgeWVzIGF0IGxlYXN0IGhhdmUgYSBkb2NrZXIgaW5zdGFsbGVyLCBkb2NrZXItY29tcG9zZQotIGRvY2tlci1jb21wb3NlIHVwICwgdG8gcnVuIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyBkZXBlbmRlbmNpZXMKLSBkb2NrZXItY29tcG9zZSBkb3duICAtLXJtaSAtdiBhbGwgdG8gc2h1dGRvd24gdGhlIGFwcGxpY2F0aW9uIGFuZCBjbGVhbiBhbGwKCiMjIyMgaW4gYW55IGNhc2UgaWYgeW91IGhhdmUgbWF2ZW4sIGphdmEgMTkgYW5kIGRvY2tlciwgdXNlIHRoZSBiYXNoIHNjcmlwdCwgKHJlY29tbWVuZGVkIG9ubHkgZm9yIGxpbnV4IHVzZXJzKQoKLS0tCgotIGJhc2UgcGF0aCA6IGxvY2FsaG9zdDo4MDgwL2JlZXItdGFwLWRpc3BlbnNlci8KLSBkb2N1bWVudGF0aW9uIGFwaSA6IGxvY2FsaG9zdDo4MDgwL2RvYy9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwK readmeEtag: '"63a5ed91d9c8b1948234bd48da2a3b2f6bde62ca"' readmeLastModified: Mon, 27 Mar 2023 03:52:24 GMT repositoryId: 617644828 description: Rviewer challenger api created: '2023-03-22T20:14:32Z' updated: '2023-03-30T12:19:21Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: KevinSDJ logo: https://avatars.githubusercontent.com/u/73322749?v=4 repoEtag: '"6bfcd7593418e9c1d5a5c22f31bfd5875fd26c2ab7cf8172176c6b4918e7ba42"' repoLastModified: Thu, 30 Mar 2023 12:19:21 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/alexscigalszky/openapi.errorcodes.library v3: true id: f3519342b60a1396502e2c74f3798fb6 repositoryMetadata: base64Readme: >- IyBPcGVuQXBpLkVycm9yQ29kZXMuTGlicmFyeQoKVGhpcyBpcyBhIGxpYnJhcnkgdG8gc2hvdyBleGFtcGxlcyBvZiBlcnJvciBjb2RlcyBmcm9tIGEgY29uc3RhbnRzIGZpbGUgdG8gYSBkZWZpbmVkIHN0cnVjdHVyZQoKCiMjIEhvdyB0byB1c2UKKiBDcmVhdGUgYW4gYXR0cmlidXRlIGV4dGVuZGluZyDCtFJlc3BvbnNlQ29kZUZyb21Db25zdGFudHNEYXRhQXR0cmlidXRlwrQgdG8gc2F2ZSB5b3VyIGRhdGEuCkV4YW1wbGUKYGBgY3NoYXJwCltBdHRyaWJ1dGVVc2FnZShBdHRyaWJ1dGVUYXJnZXRzLkZpZWxkKV0KcHVibGljIGNsYXNzIENvZGVTdWJDb2RlRGVzY3JpcHRpb25MaW5rQXR0cmlidXRlIDogUmVzcG9uc2VDb2RlRnJvbUNvbnN0YW50c0RhdGFBdHRyaWJ1dGUKewogICAgcHVibGljIGludCBDb2RlOwogICAgcHVibGljIGludD8gU3ViQ29kZTsKICAgIHB1YmxpYyBzdHJpbmcgRGVzY3JpcHRpb247CiAgICBwdWJsaWMgc3RyaW5nIExpbms7CiAgICBwdWJsaWMgQ29kZVN1YkNvZGVEZXNjcmlwdGlvbkxpbmtBdHRyaWJ1dGUoaW50IGNvZGUsIHN0cmluZyBkZXNjcmlwdGlvbiwgc3RyaW5nIGxpbmspCiAgICB7CiAgICAgICAgQ29kZSA9IGNvZGU7CiAgICAgICAgU3ViQ29kZSA9IG51bGw7CiAgICAgICAgRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKICAgICAgICBMaW5rID0gbGluazsKICAgIH0KfQpgYGAKCiogQ3JlYXRlIGEgUmVzcG9uc2UgY2xhc3MKRXhhbXBsZQoKYGBgY3NoYXJwCnB1YmxpYyBjbGFzcyBDb2RlU3ViQ29kZVJlc3BvbnNlCnsKICAgIHB1YmxpYyBpbnQgQ29kZSB7IGdldDsgc2V0OyB9CiAgICBwdWJsaWMgaW50IFN1YkNvZGUgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIHN0cmluZz8gRGVzY3JpcHRpb24geyBnZXQ7IHNldDsgfQogICAgcHVibGljIHN0cmluZz8gTGluayB7IGdldDsgc2V0OyB9Cn0KYGBgCgoqIENyZWF0ZSBhIG1hcHBpbmcgZnVuY3Rpb24KRXhhbXBsZQpgYGBjc2hhcnAKdmFyIE1hcEF0dHJpYnV0ZVRvUmVzcG9uc2UgPSAoQ29kZVN1YkNvZGVEZXNjcmlwdGlvbkxpbmtBdHRyaWJ1dGUgZGF0YSwgaW50IGNvbnN0YW50KSA9Pgp7CiAgICByZXR1cm4gbmV3IENvZGVTdWJDb2RlUmVzcG9uc2UoKQogICAgewogICAgICAgIENvZGUgPSBkYXRhLkNvZGUsCiAgICAgICAgU3ViQ29kZSA9IGNvbnN0YW50LAogICAgICAgIERlc2NyaXB0aW9uID0gZGF0YS5EZXNjcmlwdGlvbiwKICAgICAgICBMaW5rID0gZGF0YS5MaW5rCiAgICB9Owp9OwpgYGAKCiogQWRkIHRoZSBPcGVuQXBpIGZpbHRlciBpbiB5b3VyIHN0YXJ0dXAgcHJvamVjdApgYGBjc2hhcnAKYnVpbGRlci5TZXJ2aWNlcy5BZGRFbmRwb2ludHNBcGlFeHBsb3JlcigpOwpidWlsZGVyLlNlcnZpY2VzLkFkZFN3YWdnZXJHZW4oYyA9Pgp7CiAgICBjLlN3YWdnZXJEb2MoInYxIiwgbmV3KCkKICAgIHsKICAgICAgICBUaXRsZSA9IGJ1aWxkZXIuRW52aXJvbm1lbnQuQXBwbGljYXRpb25OYW1lLAogICAgICAgIFZlcnNpb24gPSAidjEiLAogICAgfSk7CiAgICAvLy8gYWRkIG5leHQgbGluZQogICAgYy5PcGVyYXRpb25GaWx0ZXI8UmVzcG9uc2VDb2RlRnJvbUNvbnN0YW50c09wZXJhdGlvbkZpbHRlcjxDb2RlU3ViQ29kZVJlc3BvbnNlLCBDb2RlU3ViQ29kZURlc2NyaXB0aW9uTGlua0F0dHJpYnV0ZT4+KE1hcEF0dHJpYnV0ZVRvUmVzcG9uc2UpOwp9KTsKYGBgCgoqIEFkZCBhdHRyaWJ1dG8gaW4geW91ciBlbmRwb2ludCBmdW5jdGlvbi4gCkl0IG5lZWRzIGEgc2VjdGlvbiBuYW1lIGFuZCB0aGUgY2xhc3Mgd2hlcmUgdGhlIGNvbnN0YW50IGNvZGVzIGFyZSBkZWZpbmVkCkV4YW1wbGUKYGBgY3NoYXJwCnZhciBIb21lRm4gPSAKICAgIC8vIGFkZCBuZXh0IGxpbmUKICAgIFtSZXNwb25zZUNvZGVGcm9tQ29uc3RhbnRzKCJMaXN0IG9mIGVycm9yIGNvZGVzIiwgdHlwZW9mKFJlc3BvbnNlU3ViQ29kZXMpKV0KKFtGcm9tQm9keV0gSW5wdXRSZXF1ZXN0IGlucHV0KSA9PiB7CgogICAgcmV0dXJuICJIZWxsbyB3b3JkIjsKfTsKYGBgCgojIyBFeGFtcGxlIG9mIGEgU3dhZ2dlciBVSQoKPGltZyBzcmM9InN3YWdnZXJ1aS5wbmciLz4KCiMjIEV4YW1wbGUgb2YgYSBPcGVuQXBpIGpzb24gZmlsZQoKYGBganNvbgp7CiAgIm9wZW5hcGkiOiAiMy4wLjEiLAogICJpbmZvIjogewogICAgInRpdGxlIjogIk9wZW5BcGkuRXJyb3JDb2Rlcy5MaWJyYXJ5LkNvbnNvbGUiLAogICAgInZlcnNpb24iOiAidjEiCiAgfSwKICAicGF0aHMiOiB7CiAgICAiLyI6IHsKICAgICAgInBvc3QiOiB7CiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAiT3BlbkFwaS5FcnJvckNvZGVzLkxpYnJhcnkuQ29uc29sZSIKICAgICAgICBdLAogICAgICAgICJyZXF1ZXN0Qm9keSI6IHsKICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvSW5wdXRSZXF1ZXN0IgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICB9LAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU3VjY2VzcyIsCiAgICAgICAgICAgICJjb250ZW50IjogewogICAgICAgICAgICAgICJ0ZXh0L3BsYWluIjogewogICAgICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICJMaXN0IG9mIGVycm9yIGNvZGVzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBudWxsLAogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL0NvZGVTdWJDb2RlUmVzcG9uc2UiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgImV4YW1wbGVzIjogewogICAgICAgICAgICAgICAgICAiMTAzMSI6IHsKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAie1wiQ29kZVwiOjIwMCxcIlN1YkNvZGVcIjoxMDMxLFwiRGVzY3JpcHRpb25cIjpcIkl0ZW0gY3JlYXRlZCFcIixcIkxpbmtcIjpcImh0dHA6Ly90YmRcIn0iCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICIyNTMxIjogewogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJ7XCJDb2RlXCI6MjAwLFwiU3ViQ29kZVwiOjI1MzEsXCJEZXNjcmlwdGlvblwiOlwiSXRlbSB1cGRhdGVkIVwiLFwiTGlua1wiOlwiaHR0cDovL3RiZFwifSIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIjkwNTQiOiB7CiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogIntcIkNvZGVcIjozMDAsXCJTdWJDb2RlXCI6OTA1NCxcIkRlc2NyaXB0aW9uXCI6XCJBIGZpZWxkIGlzIG1pc3NpbmdcIixcIkxpbmtcIjpcImh0dHA6Ly90YmRcIn0iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogICJjb21wb25lbnRzIjogewogICAgInNjaGVtYXMiOiB7CiAgICAgICJDb2RlU3ViQ29kZVJlc3BvbnNlIjogewogICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAiY29kZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJmb3JtYXQiOiAiaW50MzIiCiAgICAgICAgICB9LAogICAgICAgICAgInN1YkNvZGUiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAiZm9ybWF0IjogImludDMyIgogICAgICAgICAgfSwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgIm51bGxhYmxlIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgICJsaW5rIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAibnVsbGFibGUiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiOiBmYWxzZQogICAgICB9LAogICAgICAiSW5wdXRSZXF1ZXN0IjogewogICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgIm51bGxhYmxlIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgICJjb3VudCI6IHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJmb3JtYXQiOiAiaW50MzIiLAogICAgICAgICAgICAibnVsbGFibGUiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiOiBmYWxzZQogICAgICB9CiAgICB9CiAgfQp9CmBgYAo= readmeEtag: '"900e0974216e9f31767a79adf8a4114a03197cf3"' readmeLastModified: Thu, 24 Aug 2023 16:05:56 GMT repositoryId: 682270973 description: >- This is a library to show examples of error codes from a constants file to a defined structure created: '2023-08-23T20:11:26Z' updated: '2023-08-24T16:08:26Z' language: C# archived: false stars: 0 watchers: 2 forks: 0 owner: AlexScigalszky logo: https://avatars.githubusercontent.com/u/20727215?v=4 license: Apache-2.0 repoEtag: '"3855bb1f5842b70cc7b8eecb86172dc55ea613f6a0f8aee83d0d17f04f5c5645"' repoLastModified: Thu, 24 Aug 2023 16:08:26 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/dashotv/tvdb v3: true id: ecf31ce50b97ac527c6c494b25182994 repositoryMetadata: base64Readme: >- IyBkYXNob3R2L3R2ZGIKCkdvbGFuZyBUVkRCIENsaWVudCAoQWxwaGEpCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZHJvbmUuZGFzaG8ubmV0L2FwaS9iYWRnZXMvZGFzaG90di90dmRiL3N0YXR1cy5zdmc/cmVmPXJlZnMvaGVhZHMvbWFpbildKGh0dHBzOi8vZHJvbmUuZGFzaG8ubmV0L2Rhc2hvdHYvdHZkYikKWyFbR29Eb2NdKGh0dHBzOi8vZ29kb2Mub3JnL2dpdGh1Yi5jb20vZGFzaG90di90dmRiP3N0YXR1cy5zdmcpXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2Rhc2hvdHYvdHZkYikKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2Rhc2hvdHYvdHZkYildKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9yZXBvcnQvZ2l0aHViLmNvbS9kYXNob3R2L3R2ZGIpCiFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ibHVlLnN2ZykKCiMjIEdlbmVyYXRlZCBDb2RlCgpUaGlzIHBhY2thZ2UgaXMgZ2VuZXJhdGVkIGZyb20gdGhlIFtUVkRCIE9wZW5BUEldKGh0dHBzOi8vYXBpLnRoZXR2ZGIuY29tL3N3YWdnZXIpIHNwZWNpZmljYXRpb24gdXNpbmcgdGhlIFtTcGVha2Vhc3ldKGh0dHBzOi8vc3BlYWtlYXN5YXBpLmRldikgY29kZSBnZW5lcmF0b3IuCgpUaGUgZ2VuZXJhdGVkIGNvZGUgaXMgaW4gdGhlIGBvcGVuYXBpYCBkaXJlY3RvcnksIGFuZCBJJ3ZlIHdyaXR0ZW4gc2NyaXB0cyB0byB3cmFwCml0IHdpdGggYSBtb3JlIGNvbnZlbmllbnQgaW50ZXJmYWNlLgoKU2VlIHRoZSBgR2VuZXJhdGlvbmAgc2VjdGlvbiBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCj4gWyFOT1RFXQo+IEkgaGF2ZSBuZWVkZWQgdG8gbWFrZSBhIGZldyB0d2Vha3MgdG8gdGhlIG9wZW5hcGkgc3BlYyB0byBnZXQgdGhpbmdzIHRvIHdvcmsgY29ycmVjdGx5IGluIGdvLgoKIyMgQWRkaXRpb25hbCBEb2N1bWVudGF0aW9uCgpUaGUgU3BlYWtlYXN5IGdlbmVyYXRvciBhbHNvIGdlbmVyYXRlcyBkb2N1bWVudGF0aW9uIGZvciB0aGUgQVBJLiBUaGlzIGlzIGF2YWlsYWJsZQppbiB0aGUgb3BlbmFwaSBkaXJlY3RvcnkncyBbUkVBRE1FLm1kXShvcGVuYXBpL1JFQURNRS5tZCkgYW5kIHRoZSBbZG9jc10ob3BlbmFwaS9kb2NzKSBkaXJlY3RvcnkuCgojIyBTdGF0dXMKClRoZSBjb2RlIGlzIGN1cnJlbnRseSBpbiBhbHBoYSwgYW5kIGlzIG5vdCByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2UuIEl0IGlzIGJlaW5nIHVzZWQKYnkgdGhlIERhc2hvVFYgcHJvamVjdCwgYnV0IGlzIG5vdCB5ZXQgc3RhYmxlLgoKIyMgVXNhZ2UKCkluc3RhbGwgdGhlIHBhY2thZ2Ugd2l0aDoKCmBgYGJhc2gKZ28gZ2V0IGdpdGh1Yi5jb20vZGFzaG90di90dmRiCmBgYAoKSW1wb3J0IHRoZSBwYWNrYWdlIHdpdGg6CgpgYGBnbwppbXBvcnQgImdpdGh1Yi5jb20vZGFzaG90di90dmRiIgpgYGAKCkNyZWF0ZSBhIG5ldyBjbGllbnQgd2l0aDoKCmBgYGdvCmNsaWVudCA6PSB0dmRiLk5ldyhhcGlrZXksIHRva2VuKQpgYGAKCklmIHlvdSBkb24ndCBhbHJlYWR5IGhhdmUgYSB0b2tlbiwgeW91IGNhbiBhdXRoZW50aWNhdGUgd2l0aCB5b3VyIGBhcGlrZXlgIHVzaW5nIHRoZSBgTG9naW5gIG1ldGhvZDoKCmBgYGdvCi8vIEF1dGhlbnRpY2F0ZSB3aXRoIHlvdXIgQVBJIGtleS4gVGhpcyB3aWxsIHJldHVybiBhIGNsaWVudCB3aXRoIHRoZQovLyB0b2tlbiBhbHJlYWR5IGNvbmZpZ3VyZWQuCmNsaWVudCwgZXJyIDo9IHR2ZGIuTG9naW4oYXBpa2V5KQppZiBlcnIgIT0gbmlsIHsKICAgIC8vIGhhbmRsZSBlcnJvcgp9CmNsaWVudC5Ub2tlbiAvLyB0aGUgdG9rZW4KYGBgCgo+IFshSU1QT1JUQU5UXQo+IFlvdSBzaG91bGQgc3RvcmUgdGhlIHRva2VuIHNvbWV3aGVyZSwgYnkgZGVmYXVsdCB0aGUgdG9rZW4gaXMgdmlhYmxlIGZvciAzMCBkYXlzLiBUVkRCIGRvZXNuJ3QgYXBwZWFyIHRvIGNhcmUgaWYgeW91IGF1dGggZXZlcnkgY2FsbCwgYnV0IGl0IGFkZHMgYSBsb3Qgb2Ygb3ZlcmhlYWQuCgpJZiB5b3UgYWxyZWFkeSBoYXZlIHRoZSB0b2tlbiwgeW91IGNhbiBjcmVhdGUgYSBjbGllbnQgd2l0aCB5b3VyIGBhcGlrZXlgIGFuZCBgdG9rZW5gOgoKYGBgZ28KY2xpZW50IDo9IHR2ZGIuTmV3KGFwaWtleSwgdG9rZW4pCmBgYAoKIyMgRGV2ZWxvcG1lbnQKCkNyZWF0ZSBhIGxvY2FsIGAuZW52YCBmaWxlIHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50OgoKYGBgCiMgLmVudgpUVkRCX0FQSV9VUkw9aHR0cHM6Ly9hcGk0LnRoZXR2ZGIuY29tL3Y0ClRWREJfQVBJX0tFWT15b3VyX2FwaV9rZXkKVFZEQl9BUElfVE9LRU49eW91cl9hcGlfdG9rZW4KYGBgCgpSdW4gdGhlIGZvbGxvd2luZyB0byBnZXQgdGhlIG1ha2UgdGFyZ2V0czoKCmBgYAo+IG1ha2UgaGVscAoKVXNhZ2U6CiAgbWFrZSA8dGFyZ2V0PgoKVGFyZ2V0czoKICBHZW5lcmFsOgogICAgZ2VuZXJhdGUgICAgICAgICAgICBHZW5lcmF0ZSBjb2RlIGZyb20gb3BlbmFwaS55bWwgc3BlYwogICAgY2xlYW4gICAgICAgICAgICAgICBSZW1vdmUgYnVpbGQgcmVsYXRlZCBmaWxlCiAgVGVzdDoKICAgIHRlc3QgICAgICAgICAgICAgICAgUnVuIHRoZSB0ZXN0cyBvZiB0aGUgcHJvamVjdAogICAgY292ZXJhZ2UgICAgICAgICAgICBSdW4gdGhlIHRlc3RzIG9mIHRoZSBwcm9qZWN0IGFuZCBleHBvcnQgdGhlIGNvdmVyYWdlCiAgTGludDoKICAgIGxpbnQgICAgICAgICAgICAgICAgUnVuIGFsbCBhdmFpbGFibGUgbGludGVycwogICAgbGludC1nbyAgICAgICAgICAgICBVc2UgZ29saW50Y2ktbGludCBvbiB5b3VyIHByb2plY3QKICBIZWxwOgogICAgaGVscCAgICAgICAgICAgICAgICBTaG93IHRoaXMgaGVscC4KCmBgYAoKIyMjIEdlbmVyYXRpb24KClRvIHVwZGF0ZSB0aGUgZ2VuZXJhdGVkIGNvZGUsIGVuc3VyZSB5b3UgaGF2ZSB0aGUgZGVwZW5kZW5jaWVzIGluc3RhbGxlZDoKCi0gU3BlYWtlYXN5IENMSSAtIFNlZSBbU3BlYWtlYXN5XShodHRwczovL3NwZWFrZWFzeWFwaS5kZXYpIGZvciBtb3JlIGluZm9ybWF0aW9uLgotIFJ1YnkgLSBTZWUgW1J1YnldKGh0dHBzOi8vd3d3LnJ1YnktbGFuZy5vcmcvZW4vZG9jdW1lbnRhdGlvbi9pbnN0YWxsYXRpb24vKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KClRoZW4gcnVuOgoKYGBgYmFzaAptYWtlIGdlbmVyYXRlCmBgYAoKVGhpcyB3aWxsIHJ1biB0aGUgYHNjcmlwdHMvZ2VuZXJhdGUuc2hgIHNjcmlwdCwgd2hpY2ggd2lsbDoKCi0gUnVuIHRoZSBzcGVha2Vhc3kgY2xpIGdlbmVyYXRvcgotIFJlYXJyYW5nZSB0aGUgZ2VuZXJhdGVkIGNvZGUKLSBSdW4gYSBydWJ5IHNjcmlwdCB0byBidWlsZCB0aGUgd3JhcHBlciBjbGllbnQgY29kZQoKIyMjIE5vdGVzCgpUaGVyZSBhcmUgc2V2ZXJhbCBvcGVyYXRpb25zIG9uIHRoZSBhcGkgdGhhdCBhcmUgZGlzYWJsZWQgKHRoaXMgaXMgaGFuZGxlZCBpbiB0aGUKcnVieSBzY3JpcHQpLiBUaGVzZSBhcmUgb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgYWRkaXRpb25hbCBwcml2ZWxlZ2VzIChhY3Rpb25zIG9uCmJlaGFsZiBvZiB0aGUgdXNlcikgb3IgdGhhdCBkb24ndCB3b3JrIGNvcnJlY3RseS4gVGhlc2UgYXJlIGNvbmZpZ3VyZWQgYXMgYW4gYXJyYXkKaW4gdGhlIHJ1Ynkgc2NyaXB0Lgo= readmeEtag: '"5d37ac2e5ae85f82ecd3f3f8eb7a5289f66662ad"' readmeLastModified: Mon, 08 Jul 2024 23:12:52 GMT repositoryId: 707020724 description: DashoTV tvdb v4 client (alpha) created: '2023-10-19T04:16:17Z' updated: '2024-07-08T23:12:58Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: dashotv logo: https://avatars.githubusercontent.com/u/20273052?v=4 license: MIT repoEtag: '"8a1fad0ef6ebb6518321d6c02d2d734eeeed390f5cf81dfc6a3fa715f370763b"' repoLastModified: Mon, 08 Jul 2024 23:12:58 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/anfibiacreativa/contoso-services-typespec v3: true id: d67595587a50753676fac259324cc6ff repositoryMetadata: base64Readme: >- IyBjb250b3NvLXNlcnZpY2VzLXR5cGVzcGVjClR5cGVTcGVjIGdlbmVyYXRlZCBzZXJ2aWNlcwoKVGhpcyByZXBvIHVzZXMgaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL3R5cGVzcGVjLwoKClRvIGNyZWF0ZSB5b3VyIG93biBwcm9qZWN0LCBmb2xsb3cgdGhlc2Ugc3RlcHMuIChZb3UgbXVzdCBtYWtlIHN1cmUgdG8gaGF2ZSBbTm9kZS5qcyAxNiBMVFNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9ibG9nL3JlbGVhc2UvdjE2LjE2LjApIG9yIHVwLCBpbnN0YWxsZWQgaW4geW91ciBzeXN0ZW0sIGFuZCBhdCBsZWFzdCBbbnBtXShodHRwczovL3d3dy5ucG1qcy5jb20pIHZlcnNpb24gNysuCgojIyBTdGVwIDEgLSBJbnN0YWxsIHRoZSB0c3AgY29tcGlsZXIgcnVubmluZyBpbiB5b3VyIHRlcm1pbmFsCgpgYGAKJCBucG0gaW5zdGFsbCAtZyBAdHlwZXNwZWMvY29tcGlsZXIKYGBgCgojIyBTdGVwIDIgLSBDcmVhdGUgYSBkaXJlY3RvcnkgYW5kIGluaXRpYWxpemUgdHNwCgpgYGAKJCBta2RpciBteS10c3AtcHJvamVjdCAmJiBjZCBteS10c3AtcHJvamVjdCAmJiB0c3AgaW5pdApgYGAKV2hlbiBwcm9tcHRlZCwgc2VsZWN0IHRoZSBgR2VuZXJpYyBSZXN0IEFQSWAgdGVtcGxhdGUsIHlvdXIgcHJvamVjdCBuYW1lIGFuZCB0aGUgYEB0eXBlc3BlYy9vcGVuYXBpM2AgbGlicmFyeS4KCiMjIFN0ZXAgMyAtIEluc3RhbGwgdGhlIHRzcCBkZXBlbmRlbmNpZXMKClJ1biAKCmBgYAokIHRzcCBpbnN0YWxsCmBgYApUaGF0IHdpbGwgY3JlYXRlIGEgYmFzaWMgYHRzcGAgcHJvamVjdCBzdHJ1Y3R1cmUgdGhhdCBsb29rcyBsaWtlIHRoaXM6CgpgYGAKcGFja2FnZS5qc29uICAgICAjIFBhY2thZ2UgbWFuaWZlc3QgZGVmaW5pbmcgeW91ciB0eXBlc3BlYyBwcm9qZWN0IGFzIGEgbm9kZSBwYWNrYWdlLgp0c3Bjb25maWcueWFtbCAgICMgVHlwZVNwZWMgcHJvamVjdCBjb25maWd1cmF0aW9uIGxldHRpbmcgeW91IGNvbmZpZ3VyZSBlbWl0dGVycywgZW1pdHRlciBvcHRpb25zLCBjb21waWxlciBvcHRpb25zLCBldGMuCm1haW4udHNwICAgICAgICAgIyBUeXBlU3BlYyBlbnRyeXBvaW50LgpgYGAKRWRpdCB0aGUgYG1haW4udHNwYCBmaWxlIGFzIG5lY2Vzc2FyeSBmb3IgeW91ciBkZWZpbml0aW9uLgoKYGBgCiQgdHNwIGZvcm1hdCAqKi8qLnRzcCAjIHRoaXMgd2lsbCBmb3JtYXQgYWxsIC50c3AgZmlsZXMgaW4gdGhlIHByb2plY3QKYGBgCgpOb3cgeW91IGNhbiBjb21waWxlIHRoZSBwcm9qZWN0IHJ1bm5pbmcKCmBgYAokIHRzcCBjb21waWxlIC4KYGBgCgooaWYgeW91J3JlIGluIGEgZGlmZmVyZW50IGZvbGRlciB0aGFuIHRoZSBwcm9qZWN0IHJvb3QsIHBhc3MgdGhlIHBhdGggdG8gdGhlIGNvbXBpbGUgY29tbWFuZCkKCiMjIEVtaXQgdGhlIE9wZW5BUEkgc3BlYyBgeWFtbGAgZmlsZQoKVG8gZW1pdCB0aGUgc3BlY2lmaWNhdGlvbiBmaWxlLCBydW4KCmBgYAokIHRzcCBjb21waWxlIC4gLS1lbWl0PUB0eXBlc3BlYy9vcGVuYXBpMwpgYGAKCllvdSBzaG91bGQgaGF2ZSBhIG5ldyBmb2xkZXIgY2FsbGVkIGB0c3Atb3V0cHV0YCBieSBkZWZhdWx0LCB3aXRoIHlvdXIgc3BlYy4KCllvdSdyZSBhbGwgc2V0ISDwn5qACgoK readmeEtag: '"b8bb7f38b10f0ddaf554079ec3e124bb7afa5d6a"' readmeLastModified: Thu, 21 Sep 2023 11:10:13 GMT repositoryId: 688109520 description: >- Example of TypeSpec code to generate Contoso Real Estate API specification. created: '2023-09-06T17:08:34Z' updated: '2023-09-23T10:47:42Z' language: null archived: false stars: 0 watchers: 1 forks: 1 owner: anfibiacreativa logo: https://avatars.githubusercontent.com/u/4014025?v=4 repoEtag: '"4f5630e4b6c408a500bfd8555e502ba8c014de31b4c6934fc3d9be33eda05ccb"' repoLastModified: Sat, 23 Sep 2023 10:47:42 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sudokuru/useractivegames v3: true id: 207175dc82f84c4eeab9c89927311f5d repositoryMetadata: base64Readme: >- PiBbIUlNUE9SVEFOVF0gIAo+IFRoaXMgcmVwb3NpdG9yeSBpcyByZWFkLW9ubHkgLyBhcmNoaXZlZCBhbmQgd2lsbCBub3QgcmVjaWV2ZSB1cGRhdGVzLgoKIyBbVHlwZWRvYyBEb2N1bWVudGF0aW9uIFdlYnNpdGVdKGh0dHBzOi8vc3Vkb2t1cnUuZ2l0aHViLmlvL1VzZXJBY3RpdmVHYW1lcy8pPGJyPgoKCiMgRGV2ZWxvcGVyIFNldHVwCgoxLiBHZXQgdGhlIC5lbnYgZmlsZSBmcm9tIHRoZSBNU0IgYnVpbGRpbmcgbmV4dCB0byB0aGUgd2F0ZXIgZm91bnRhaW4uIAoyLiBJbnN0YWxsIERvY2tlciBvbiB5b3VyIG1hY2hpbmUuIFR1dG9yaWFsIGlzIGxpbmtlZCBiZWxvdzo8YnI+CiAgIFshW0RvY2tlciBUdXRvcmlhbF0oaHR0cHM6Ly9pbWcueW91dHViZS5jb20vdmkvMmV6TnFxYVNqcTgvMC5qcGcpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTJlek5xcWFTanE4KTxicj4KMi4gT25jZSBkb2NrZXIgaXMgaW5zdGFsbGVkLCB0aGUgTW9uZ28gaW1hZ2UgY2FuIGJlIHJ1biB3aXRoIHRoaXMgY29tbWFuZDo8YnI+Ck5vdGUgdXNlIGBgYHN1ZG9gYGAgb24gTGludXgvTWFjPGJyPgpgYGBjb25zb2xlCm5wbSBydW4gZG9ja2VyCmBgYAozLiBUaGUgYXBwIGNhbiB0aGVuIGJlIHJ1biB3aXRoIHRoZSBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHN0YXJ0CmBgYAo0LiBJbnRlZ3JhdGlvbiB0ZXN0cyBjYW4gYmUgcnVuIHdoZW4gdGhlIGFwcCBpcyBydW5uaW5nIHdpdGggdGhpcyBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHRlc3Q6aW50ZWdyYXRpb24KYGBgCg== readmeEtag: '"551645e2a891d8f25afe5c10c232d868e7f8455c"' readmeLastModified: Sun, 12 May 2024 16:01:44 GMT repositoryId: 606496910 description: null created: '2023-02-25T17:08:38Z' updated: '2024-05-12T16:03:12Z' language: TypeScript archived: true stars: 0 watchers: 0 forks: 0 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"39424280d935cc3743b466d22187026ac09805c2b9cb052df8857b38d2b5bc9a"' repoLastModified: Sun, 12 May 2024 16:03:12 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/matjas1231/mjapp-express v3: true id: 50e46e91c877799de3b16bcaf9749877 repositoryMetadata: base64Readme: >- V29yayBpbiBwcm9ncmVzcwoKUkVTVCBhcGkgd3JpdHRlbiBpbiB0eXBlc2NyaXB0IGJhc2VkIGV4cHJlc3MuCgpJbiBkZXYgZW52IHRoZSBBUEkgRG9jcyBhcmUgdW5kZXIgaHR0cDovLzEyNy4wLjAuMTozMDAwL2FwaS1kb2NzCg== readmeEtag: '"82263a8ddc57b82f3b1ae5a455876335b84c093f"' readmeLastModified: Fri, 01 Dec 2023 12:43:59 GMT repositoryId: 726054388 description: Work in progress. REST api written in typescript based express. created: '2023-12-01T12:45:10Z' updated: '2023-12-01T12:51:27Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: Matjas1231 logo: https://avatars.githubusercontent.com/u/65674346?v=4 repoEtag: '"fc73d7f1c194c327d2197892d5198798c81a8f05339b85df023a14e4b4dce637"' repoLastModified: Fri, 01 Dec 2023 12:51:27 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/majid-l/express-ecommerce-api v3: true id: 5b377bebb2f2eb1e1b487665beba3ecc repositoryMetadata: base64Readme: >- IyBFeHByZXNzLCBUeXBlU2NyaXB0LCBbUHJpc21hIE9STV0oaHR0cHM6Ly93d3cucHJpc21hLmlvLykgYW5kIE9wZW5BUEkgcHJvamVjdAoKVGhpcyBwcm9qZWN0IGZlYXR1cmVzIGEgKipbUkVTVGZ1bCBDUlVEIEFQSV0oaHR0cHM6Ly90YWxpcGh1cy52ZXJjZWwuYXBwL2FwaSkqKiB0aGF0IHByb2Nlc3NlcyBkYXRhIGZvciBhbiBlY29tbWVyY2UgYXBwbGljYXRpb24uCgojIyBLZXkgcHJvZHVjdCBmZWF0dXJlcwotIERlc2lnbmVkIGFuZCBmdWxseSBkb2N1bWVudGVkIHVzaW5nIFN3YWdnZXIgdG9vbHMgYW5kIE9wZW5BUEkgU3BlY2lmaWNhdGlvbi4gCiAgLSBGdWxsICoqW0FQSSBjb250cmFjdF0oLi9vcGVuYXBpLnlhbWwpKiogY2FuIGJlIGZvdW5kIFtoZXJlXSguL29wZW5hcGkueWFtbCkuCi0gUG93ZXJlZCBieSBWZXJjZWwncyBzZXJ2ZXJsZXNzIGZ1bmN0aW9ucywgaW5jbHVkaW5nIGEgUFNRTCBkYXRhYmFzZSBzZXJ2ZXIgZm9yIG1hbmFnaW5nIGFwcGxpY2F0aW9uIGRhdGEgKGNvbmZpZ3VyZWQgZm9yIFtzZXNzaW9uIHBlcnNpc3RlbmNlXSguL2F1dGgvc2Vzc2lvbi50cykpLgotIFtTZXNzaW9uIGFuZCBjb29raWUtYmFzZWQgYXV0aGVudGljYXRpb25dKC4vYXV0aC8pIGVuYWJsaW5nIHBlcnNpc3RlbnQgbG9naW5zLgotIFtNaWRkbGV3YXJlIGZ1bmN0aW9uc10oLi9taWRkbGV3YXJlKSBmb3IgZGF0YSB2YWxpZGF0aW9uIGFuZCB1c2VyIGF1dGhlbnRpY2F0aW9uLgogIC0gSW4tZGVwdGggZXJyb3IgaGFuZGxpbmcsIGNhc3RpbmcgYSB3aWRlIG5ldCBvdmVyIHBvdGVudGlhbCBlZGdlIGNhc2VzIGFuZCBzb3VyY2VzIG9mIGVycm9yLgotIFtEYXRhIG1vZGVsbGluZ10oLi9wcmlzbWEvc2NoZW1hLnByaXNtYSkgYW5kIFtkYXRhYmFzZSBtaWdyYXRpb25zXSguL3ByaXNtYS9taWdyYXRpb25zLzIwMjMwNzI4MTA1NDA4Xy9taWdyYXRpb24uc3FsKSB3aXRoIFByaXNtYSBPUk0uCi0gQ29tcHJlaGVuc2l2ZSBbaW50ZWdyYXRpb24gdGVzdGluZ10oLi9hcGlfdGVzdHMvKSwgYWNoaWV2aW5nICoqOTAlIHRlc3QgY292ZXJhZ2UqKiBhcyByZXBvcnRlZCBieSBJc3RhbmJ1bCdzICpueWMqIENMSS4KLSBQcm9ncmFtbWF0aWMgW2RhdGFiYXNlIHJlc2VlZGluZ10oL3ByaXNtYS9zZWVkLnRzKSB1c2luZyBbZHVtbXkgZGF0YV0oL3ByaXNtYS9kZXZfZGF0YS50cykuCgo8cCBmbG9hdD0ibGVmdCI+CiAgPGltZyBzcmM9Ii4vaW1hZ2VzL25vZGUuc3ZnIiB3aWR0aD0iNjAiIC8+CiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgPGltZyBzcmM9Ii4vaW1hZ2VzL3RzLnN2ZyIgd2lkdGg9IjYwIiAvPgogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwogIDxpbWcgc3JjPSIuL2ltYWdlcy9wcmlzbWEuc3ZnIiB3aWR0aD0iMTQwIiAvPgogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwogIDxpbWcgc3JjPSIuL2ltYWdlcy9wc3FsLnN2ZyIgd2lkdGg9IjYwIiAvPiAKICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICA8aW1nIHNyYz0iLi9pbWFnZXMvbW9jaGEuc3ZnIiB3aWR0aD0iNjAiIC8+IAogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwogIDxpbWcgc3JjPSIuL2ltYWdlcy9jaGFpLnN2ZyIgd2lkdGg9IjYwIiAvPgo8L3A+CgotLS0KIyMgRW5kcG9pbnRzCkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGF2YWlsYWJsZSBxdWVyeSBwYXJhbWV0ZXJzIGFuZCByZXF1ZXN0IGJvZHkgcmVxdWlyZW1lbnRzLCB2aXNpdCB0aGUgKipbQVBJIGJhc2UgdXJsXShodHRwczovL3RhbGlwaHVzLnZlcmNlbC5hcHAvYXBpKSoqLgoKTWFueSBvZiB0aGVzZSBlbmRwb2ludHMgcmVxdWlyZSBhdXRoZW50aWNhdGVkIGFjY2Vzcywgd2hpY2ggeW91IGNhbiBhY2NvbXBsaXNoIGJ5IGZpcnN0IHNpZ25pbmcgdXAgYW5kIHRoZW4gbG9nZ2luZyBpbi4KCmBgYGpzb24KLy8gMSkgU2VuZCBhIFBPU1QgcmVxdWVzdCB0byAvYXBpL3NpZ251cAp7CiAgInVzZXJuYW1lIjogLi4uLAogICJwYXNzd29yZCI6IC4uLiwKICAiZW1haWwiOiAuLi4gLAogICJuYW1lIjogLi4uCn0KCi8vIDIpIFNlbmQgYSBQT1NUIHJlcXVlc3QgdG8gL2FwaS9sb2dpbgp7CiAgInVzZXJuYW1lIjogLi4uIC8qIHlvdXIgdXNlcm5hbWUgZnJvbSBzdGVwIDEpICovLAogICJwYXNzd29yZCI6IC4uLiAvKiB5b3VyIHBhc3N3b3JkIGZyb20gc3RlcCAxKSAqLwp9CmBgYAoKfCBIVFRQIG1ldGhvZChzKSB8IFVSTAp8LS0tfC0tLXwKUE9TVCB8IC9hcGkvc2lnbnVwClBPU1QgfCAvYXBpL2xvZ2luClBPU1QgfCAvYXBpL2xvZ291dApHRVQgfCAvYXBpL3Byb2R1Y3RzCkdFVCB8IC9hcGkvcHJvZHVjdHMvYmVzdHNlbGxlcnMKR0VUIHwgL2FwaS9wcm9kdWN0cy86aWQKR0VUIHwgL2FwaS9wcm9kdWN0cy86aWQvcmV2aXdzCkdFVCwgUFVULCBERUxFVEUgfCAvYXBpL2N1c3RvbWVycy86aWQKR0VULCBQVVQgfCAvYXBpL2N1c3RvbWVycy86aWQvY2FydApHRVQsIFBVVCB8IC9hcGkvY3VzdG9tZXJzLzppZC93aXNobGlzdApHRVQsIFBPU1QgfCAvYXBpL2N1c3RvbWVycy86aWQvb3JkZXJzCkdFVCB8IC9hcGkvY3VzdG9tZXJzLzppZC9mYXZvcml0ZXMKR0VUIHwgL2FwaS9jdXN0b21lcnMvOmlkL29yZGVycy86b3JkZXJJZApHRVQgfCAvYXBpL2N1c3RvbWVycy86aWQvcmV2aWV3cwpQT1NUIHwgL2FwaS9jdXN0b21lcnMvOmlkL2FkZHJlc3NlcwpERUxFVEUgfCAvYXBpL2N1c3RvbWVycy86aWQvYWRkcmVzc2VzLzphZGRyZXNzSWQKR0VUIHwgL2FwaS9jYXRlZ29yaWVzCkdFVCB8IC9hcGkvc3VwcGxpZXJzCkdFVCwgUE9TVCB8IC9hcGkvcmV2aWV3cwpHRVQsIFBVVCwgREVMRVRFIHwgL2FwaS9yZXZpZXdzLzppZAoKLS0tCiMjIERhdGEgbW9kZWwKVGhpcyBpcyBhIHNpbXBsaWZpZWQgdmlldyBvZiB0aGUgZW50aXR5IHJlbGF0aW9uc2hpcHMgdGhhdCBleGlzdCB3aXRoaW4gdGhlIGRhdGFiYXNlLiBGb3IgYSBtb3JlIGNvbXBsZXRlIHBpY3R1cmUsIGNvbnN1bHQgdGhlICoqW3NjaGVtYSBjb25maWd1cmF0aW9uXSgvcHJpc21hL3NjaGVtYS5wcmlzbWEpKiogYW5kICoqW21pZ3JhdGlvbl0oL3ByaXNtYS8vbWlncmF0aW9ucy8yMDIzMDcyODEwNTQwOF8vbWlncmF0aW9uLnNxbCkqKiBmaWxlcy4KCjxpbWcgc3JjPSIuL2ltYWdlcy9lcmQtZGFyay5zdmciIHdpZHRoPSI5MDAiIC8+IAoKLS0tCiMjIE1haW4gcHJvamVjdCBkZXBlbmRlbmNpZXMKfCBQYWNrYWdlIHwgUHVycG9zZQp8LS0tfC0tLXwKRXhwcmVzcyB8IFdlYiBBUEkgZnJhbWV3b3JrClByaXNtYSB8IE5vZGUuanMgJiBUeXBlU2NyaXB0IE9STQpTdXBlclRlc3QgfCBJbnRlZ3JhdGlvbiB0ZXN0aW5nCk1vY2hhIHwgVGVzdCBmcmFtZXdvcmsKQ2hhaSB8IEFzc2VydGlvbiBsaWJyYXJ5ClBhc3Nwb3J0LmpzIHwgQXV0aGVudGljYXRpb24gbWlkZGxld2FyZQpleHByZXNzLXNlc3Npb24gfCBTZXNzaW9uIG1pZGRsZXdhcmUKCi0tLQojIyBSdW5uaW5nIHRoZSBwcm9qZWN0IG9uIGxvY2FsaG9zdAo+IFRoaXMgcHJvamVjdCByZXF1aXJlcyBQU1FMIHRvIGJlIGluc3RhbGxlZCBsb2NhbGx5LgoKIyMjIFNldHVwIGluc3RydWN0aW9ucwoxKSBDbG9uZSBhbmQgZm9yayB0aGUgcmVwb3NpdG9yeSBhbmQgaW5zdGFsbCBhbGwgZGVwZW5kZW5jaWVzLgoyKSBDcmVhdGUgYSBsb2NhbCBlbXB0eSBQU1FMIGRhdGFiYXNlIGNhbGxlZCAqKmVjb21tZXJjZV9kYioqLgozKSBDcmVhdGUgYSAqKi5lbnYqKiBmaWxlIGluIHRoZSByb290IG9mIHRoZSByZXBvc2l0b3J5IHdpdGggNCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CmBgYApEQVRBQkFTRV9QUklTTUFfVVJMPXBvc3RncmVzcWw6Ly88VVNFUj46PHBhc3N3b3JkPkBsb2NhbGhvc3Q6NTQzMi9lY29tbWVyY2VfZGIKREFUQUJBU0VfVVJMX05PTl9QT09MSU5HPXBvc3RncmVzcWw6Ly88VVNFUj46PHBhc3N3b3JkPkBsb2NhbGhvc3Q6NTQzMi9lY29tbWVyY2VfZGIKU0VTU0lPTl9TRUNSRVQ9c2Vzc2lvbnNlY3JldApQT1JUPTMwMDAKYGBgCjQpIEZvciB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBzdHJpbmdzLCBSZXBsYWNlIGBgYDxVU0VSPmBgYCB3aXRoIHRoZSBuYW1lIG9mIHlvdXIgbG9jYWwgZGF0YWJhc2UgdXNlciAoZS5nLiAqcG9zdGdyZXMqKSBhbmQgcmVwbGFjZSBgYGA8UEFTU1dPUkQ+YGBgIHdpdGggd2hhdGV2ZXIgcGFzc3dvcmQgeW91IHVzZWQgdG8gc2V0IHVwIHRoZSBsb2NhbCB1c2VyLgoKWW91IGNhbiBub3cgcnVuIHRoZSBzY3JpcHRzIGJlbG93IGFuZCBiZWdpbiB0byBleHBsb3JlIHRoZSBwcm9qZWN0LgoKIyMjIFJ1biB0aGUgRXhwcmVzcyBzZXJ2ZXIgaW4gZGV2ZWxvcG1lbnQgbW9kZS4KYGBgc2gKbnBtIHJ1biBkZXYKCiMgb3IKCm5wbSBydW4gc3RhcnQKYGBgCgojIyMgQ29tcGlsZSBhbmQgcnVuIE1vY2hhIHRlc3Qgc3VpdGUKYGBgc2gKbnBtIHJ1biB0ZXN0CmBgYAoKIyMjIFRlc3QgY292ZXJhZ2UgcmVwb3J0IApgYGBzaApucG0gcnVuIHRlc3Rjb3YKYGBgCgojIyMgVXBkYXRlIGRhdGFiYXNlIHNjaGVtYSAKVGhpcyBjb21tYW5kIHBlcmZvcm1zIDIgYWN0aW9uczogc3luY3MgdGhlIGRhdGFiYXNlIHNjaGVtYSB3aXRoIFByaXNtYSBzY2hlbWEgYW5kIHJlZ2VuZXJhdGVzIFByaXNtYSBDbGllbnQuCmBgYHNoCm5weCBwcmlzbWEgbWlncmF0ZSBkZXYKCiMgb3IKCnByaXNtYSBkYiBwdXNoCmBgYAoKIyMjIFNlZWQgZGF0YWJhc2UKYGBgc2gKbnB4IHByaXNtYSBkYiBzZWVkCmBgYAoKIyMjIFtQcmlzbWEgU3R1ZGlvXShodHRwczovL3d3dy5wcmlzbWEuaW8vc3R1ZGlvKSAoYnJvd3Nlci1iYXNlZCBHVUkgYW5kIGRhdGFiYXNlIHZpc3VhbGlzZXIpCmBgYHNoCm5weCBwcmlzbWEgc3R1ZGlvCmBgYA== readmeEtag: '"d9dd6f49f666a57f1365231b5059367b01abd035"' readmeLastModified: Sun, 18 Feb 2024 18:14:22 GMT repositoryId: 669093937 description: >- Express REST API featuring Prisma ORM, session-based authentication and integration testing with Mocha, Chai + SuperTest. Designed with Swagger tools and documented with OpenAPI 3.0.3. created: '2023-07-21T10:21:46Z' updated: '2023-08-05T14:13:45Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 1 owner: majid-L logo: https://avatars.githubusercontent.com/u/115797459?v=4 repoEtag: '"e6f5e5ad201cd5f69bbe1f201fdc0240549bccce4adfe25e9a67d474e9d7bf1b"' repoLastModified: Sat, 05 Aug 2023 14:13:45 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/3782291211/express-ecommerce-api - source: openapi3 tags repository: https://github.com/devolite/openapi-fetch-tauri v3: true id: d45ef2392f12b45cacd6fd21edb0594f repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWZldGNoLXRhdXJpCgpUaGlzIGxpYnJhcnkgaXMgYW4gW29wZW5hcGktZmV0Y2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9kcndwb3cvb3BlbmFwaS10eXBlc2NyaXB0L3RyZWUvbWFpbi9wYWNrYWdlcy9vcGVuYXBpLWZldGNoKSBjbG9uZSB0aGF0IHVzZXMgW1RhdXJpJ3MgSFRUUCBBUEldKGh0dHBzOi8vdGF1cmkuYXBwL3YxL2FwaS9qcy9odHRwLykuIEJlY2F1c2Ugb2YgdGhpcywgaXQgaXMgYSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciBvcGVuYXBpLWZldGNoLCBhbmQgY2FuIGJlIHVzZWQgaW4gdGhlIHNhbWUgd2F5LiAgCl9UaGFua3MsIFtAZHJ3cG93XShodHRwczovL2dpdGh1Yi5jb20vZHJ3cG93KSFfCgo+IFshQ0FVVElPTl0KPiBEdWUgdG8gbGltaXRhdGlvbnMgaW4gdGhlIFRhdXJpIEhUVFAgQVBJLCB0aGlzIGxpYnJhcnkgKipvbmx5Kiogc3VwcG9ydHMgSlNPTiByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLgoKIyMgVXNhZ2UKCkluIG9yZGVyIHRvIGdldCBzdGFydGVkLCBnZW5lcmF0ZSBhIHNwZWNpZmljYXRpb24gZmlsZSB1c2luZyBbb3BlbmFwaS10eXBlc2NyaXB0XShodHRwczovL2dpdGh1Yi5jb20vZHJ3cG93L29wZW5hcGktdHlwZXNjcmlwdC90cmVlL21haW4vcGFja2FnZXMvb3BlbmFwaS10eXBlc2NyaXB0KS4KCmBgYHNoCiMgTG9jYWwgc2NoZW1hLi4uCm5weCBvcGVuYXBpLXR5cGVzY3JpcHQgLi9wYXRoL3RvL215L3NjaGVtYS55YW1sIC1vIC4vcGF0aC90by9teS9zY2hlbSAjIG5wbQp5YXJuIGRseCBvcGVuYXBpLXR5cGVzY3JpcHQgLi9wYXRoL3RvL215L3NjaGVtYS5kLnRzIC1vIC4vcGF0aC90by9teS9zY2hlbWEudHMgIyBvciB5YXJuCnBucG0gZGx4IG9wZW5hcGktdHlwZXNjcmlwdCAuL3BhdGgvdG8vbXkvc2NoZW1hLmQudHMgLW8gLi9wYXRoL3RvL215L3NjaGVtYS50cyAjIG9yIHBucG0KIyDwn5qAIC4vcGF0aC90by9teS9zY2hlbWEueWFtbCAtPiAuL3BhdGgvdG8vbXkvc2NoZW1hLmQudHMgWzdtc10KCiMgUmVtb3RlIHNjaGVtYS4uLgpucHggb3BlbmFwaS10eXBlc2NyaXB0IGh0dHBzOi8vZXhhbXBsZS5jb20vc2NoZW1hLnlhbWwgLW8gLi9wYXRoL3RvL215L3NjaGVtYSAjIG5wbQp5YXJuIGRseCBvcGVuYXBpLXR5cGVzY3JpcHQgaHR0cHM6Ly9leGFtcGxlLmNvbS9zY2hlbWEuZC50cyAtbyAuL3BhdGgvdG8vbXkvc2NoZW1hLnRzICMgb3IgeWFybgpwbnBtIGRseCBvcGVuYXBpLXR5cGVzY3JpcHQgaHR0cHM6Ly9leGFtcGxlLmNvbS9zY2hlbWEuZC50cyAtbyAuL3BhdGgvdG8vbXkvc2NoZW1hLnRzICMgb3IgcG5wbQojIPCfmoAgaHR0cHM6Ly9leGFtcGxlLmNvbS9zY2hlbWEueWFtbCAtPiAuL3BhdGgvdG8vbXkvc2NoZW1hLmQudHMgWzdtc10KYGBgCgpUaGVuLCB1dGlsaXplIHRoZSBnZW5lcmF0ZWQgc3BlY2lmaWNhdGlvbiBmaWxlIHRvIG1ha2UgcmVxdWVzdHMuIEluIG9yZGVyIHRvIGRvIHRoaXMsIGNyZWF0ZSBhIGNsaWVudCBsaWtlIHNvOgoKYGBgdHMKaW1wb3J0IHR5cGUgeyBwYXRocyB9IGZyb20gJy4vcGF0aC90by9teS9zY2hlbWEnOwoKZXhwb3J0IGNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudDxwYXRocz4oewogIGJhc2VVcmw6ICdodHRwczovL2V4YW1wbGUuY29tJwogIC8vIC4uLiBkZWZhdWx0IG9wdGlvbnMKfSk7CgojIG9yCgpleHBvcnQgY29uc3QgeyBHRVQsIFBPU1QsIERFTEVURSAvKiwgLi4uKi8gfSA9IGNyZWF0ZUNsaWVudDxwYXRocz4oewogIGJhc2VVcmw6ICdodHRwczovL2V4YW1wbGUuY29tJwogIC8vIC4uLiBkZWZhdWx0IG9wdGlvbnMKfSk7CmBgYAoKTm93LCB5b3UgY2FuIHVzZSB0aGUgY2xpZW50IHRvIG1ha2UgcmVxdWVzdHMgdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbjoKCmBgYHRzCmltcG9ydCB7IGNsaWVudCB9IGZyb20gJy4vY2xpZW50JzsKCmNvbnN0IHsgZGF0YSwgZXJyb3IgLyosIHJlc3BvbnNlKi8gfSA9IGF3YWl0IGNsaWVudC5HRVQoJy9wYXRoL3RvL2VuZHBvaW50Jyk7CgojIG9yCgppbXBvcnQgeyBHRVQgfSBmcm9tICcuL2NsaWVudCc7Cgpjb25zdCB7IGRhdGEsIGVycm9yIC8qLCByZXNwb25zZSovICB9ID0gYXdhaXQgR0VUKCcvcGF0aC90by9lbmRwb2ludCcpOwpgYGAKCkZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIFtvcGVuYXBpLWZldGNoIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vb3BlbmFwaS10cy5wYWdlcy5kZXYvb3BlbmFwaS1mZXRjaC8pLgoKIyMgQ3JlZGl0cwoKQmlnIHRoYW5rcyB0byBbQGRyd3Bvd10oaHR0cHM6Ly9naXRodWIuY29tL2Ryd3BvdykgZm9yIGNyZWF0aW5nIHRoZSBvcmlnaW5hbCBvcGVuYXBpLWZldGNoIGFuZCBvcGVuYXBpLXR5cGVzY3JpcHQgbGlicmFyeSEK readmeEtag: '"3e7b77599e8ac5cf84dac44d0f04cb3db2bc9726"' readmeLastModified: Tue, 26 Mar 2024 13:23:46 GMT repositoryId: 770410140 description: >- 💡 Fast, typesafe fetch client for your OpenAPI schema. Works with Tauri HTTP API. created: '2024-03-11T14:01:14Z' updated: '2024-03-22T11:11:05Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 1 owner: devolite logo: https://avatars.githubusercontent.com/u/164477852?v=4 license: MIT repoEtag: '"f41e06ef2cd522667c0f0dcaa507630657fea25482dbb7a5da5107c31cc30bf6"' repoLastModified: Fri, 22 Mar 2024 11:11:05 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/bddvlpr/openapi-fetch-tauri - source: openapi3 tags repository: https://github.com/stephane-segning/sma v3: true id: 7a593313d75d782c47e19b215fc70eef repositoryMetadata: base64Readme: IyBTY2hvb2wgTWFuYWdlbWVudCBBcHAKCgo= readmeEtag: '"5b12edf2c5f3ff95a33d253df167e7411cb8fae1"' readmeLastModified: Mon, 01 Apr 2024 10:42:34 GMT repositoryId: 780374108 description: >- This project is a sample project to demonstrate the technologies. We're using ReactJS and Spring Boot. created: '2024-04-01T10:42:51Z' updated: '2024-04-01T10:46:42Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: stephane-segning logo: https://avatars.githubusercontent.com/u/26783557?v=4 repoEtag: '"5fe2e93245372ccaa263ec8512a45aff1c6557e36e5429e8c912d696b7e2f5ca"' repoLastModified: Mon, 01 Apr 2024 10:46:42 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/markelca/hui-api v3: true repositoryMetadata: base64Readme: >- IyBodWktYXBpClRoaXMgaXMgdGhlIHNlcnZlciBzaWRlIFJFU1QgQVBJIG1hZGUgZm9yIHRoZSBIVUkgUHJveWVjdC4gQnVpbHQgd2l0aCBTcHJpbmcgQm9vdCBhbmQgSGliZXJuYXRlLgoKCiMjIyBTdGFjayBvZiB0ZWNobm9sb2dpZXMgdXNlZDoKCiFbSmF2YV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhLXJlZC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWphdmEmbG9nb0NvbG9yPXdoaXRlKQohW1NwcmluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zcHJpbmctJTIzNkRCMzNGLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289c3ByaW5nJmxvZ29Db2xvcj13aGl0ZSkKIVtIaWJlcm5hdGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvaGliZXJuYXRlLWJyb3duLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289aGliZXJuYXRlJmxvZ29Db2xvcj13aGl0ZSkKIVtQb3N0bWFuXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3Bvc3RtYW4tb3JhbmdlLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289cG9zdG1hbiZsb2dvQ29sb3I9d2hpdGUpCiFbSmlyYV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qaXJhLWJsdWUuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1qaXJhJmxvZ29Db2xvcj13aGl0ZSkKIVtDb25mbHVlbmNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvbmZsdWVuY2UtZ3JleS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWNvbmZsdWVuY2UmbG9nb0NvbG9yPXdoaXRlKQohW1BIUG15YWRtaW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUEhQbXlhZG1pbi1GRjAwRkYuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1waHBteWFkbWluJmxvZ29Db2xvcj13aGl0ZSkKCgpQb3N0bWFuIEFQSSBSZWZlcmVuY2U6IGh0dHBzOi8vd3d3LnBvc3RtYW4uY29tL2h1aS1hcHAKCi0tLQoKIyMgRGV2ZWxvcG1lbnQgSW5zdGFsYXRpb24KMS4gQ29weSB0aGUgZmlsZSBgYXBwbGljYXRpb24ucHJvcGVydGllcy5zYW1wbGVgIGluIHRoZSBzYW1lIGZvbGRlciAqKGFwcC9zcmMvbWFpbi9yZXNvdXJjZXMpKiBhbmQgbmFtZSBpdCBgYXBwbGljYXRpb24ucHJvcGVydGllc2AKCjIuIENoYW5nZSB0aGUgZm9sbG93aW5nIHZhbHVlcyBmb3IgeW91ciBlbnZpcm9tZW50IG9uZXMuCi0gc2VydmVyLnBvcnQKLSAgc3ByaW5nLmRhdGFzb3VyY2UudXJsCi0gIHNwcmluZy5kYXRhc291cmNlLnVzZXJuYW1lCi0gIHNwcmluZy5kYXRhc291cmNlLnBhc3N3b3JkCmBgYHByb3BlcnRpZXMKc2VydmVyLnBvcnQ9PHBvcnQ+CnNwcmluZy5qcGEuc2hvdy1zcWw9dHJ1ZQpzcHJpbmcuanBhLnByb3BlcnRpZXMuaGliZXJuYXRlLmZvcm1hdF9zcWw9dHJ1ZQpzcHJpbmcuZGF0YXNvdXJjZS5kcml2ZXItY2xhc3MtbmFtZT1jb20ubXlzcWwuY2ouamRiYy5Ecml2ZXIKc3ByaW5nLmRhdGFzb3VyY2UudXJsPWpkYmM6bXlzcWw6Ly9sb2NhbGhvc3Q6MzMwNi88ZGF0YWJhc2U+P2NyZWF0ZURhdGFiYXNlSWZOb3RFeGlzdD10cnVlJnVzZVNTTD1mYWxzZQpzcHJpbmcuZGF0YXNvdXJjZS51c2VybmFtZT08dXNlcj4Kc3ByaW5nLmRhdGFzb3VyY2UucGFzc3dvcmQ9PHBhc3N3b3JkPgpzZXJ2ZXIuZXJyb3IuaW5jbHVkZS1tZXNzYWdlPWFsd2F5cwpzcHJpbmcuanBhLmhpYmVybmF0ZS5kZGwtYXV0bz1jcmVhdGUtZHJvcApzcHJpbmcuanBhLnByb3BlcnRpZXMuaGliZXJuYXRlLmRpYWxlY3Q9b3JnLmhpYmVybmF0ZS5kaWFsZWN0Lk15U1FMNUlubm9EQkRpYWxlY3QKc3ByaW5nLmphY2tzb24uc2VyaWFsaXphdGlvbi5GQUlMX09OX0VNUFRZX0JFQU5TPWZhbHNlCgpgYGAKMy4gUnVuIHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBwcm9wZXJ0eSBgc3ByaW5nLmpwYS5oaWJlcm5hdGUuZGRsLWF1dG89Y3JlYXRlLWRyb3BgIHRvIGNyZWF0ZSBhbmQgcG9wdWxhdGUgdGhlIGRhdGFiYXNlLCB0aGVuIGNoYW5nZSB0aGUgdmFsdWUgdG8gYHVwZGF0ZWAgaWYgeW91IGRvbnQgd2FudCB0byBjcmVhdGUgdGhlIGRhdGFiYXNlIGVhY2ggdGltZSBpdCBydW5zLgo0LiBBbHNvIGNvbW1lbnQgdGhpcyB0aHJlZSBsaW5lcyBpbiB0aGUgZmlsZSBgYXBwL3NyYy9tYWluL2phdmEvY29tL2dydXBvNS9odWlhcGkvY29uZmlnL0RCQ29uZmlnLmphdmFgIHNvIGl0IGRvZXNuJ3QgY2F1c2UgYSBjb25mbGljdCBpbnNlcnRpbmcgdGhlIGluaXRpYWwgZGF0YS4KYGBgamF2YQogQEJlYW4KICAgIENvbW1hbmRMaW5lUnVubmVyIGNvbW1hbmRMaW5lUnVubmVyKCkgewogICAgICAgIHJldHVybiBhcmdzIC0+IHsKICAgICAgICAgICAgLy9jYXRlZ29yeVJlcG9zaXRvcnkuc2F2ZUFsbCggZ2V0SW5pdGlhbENhdGVnb3JpZXMoKSApOwogICAgICAgICAgICAvL3VzZXJSZXBvc2l0b3J5LnNhdmVBbGwoIGdldEluaXRpYWxVc2VycygpICk7CiAgICAgICAgICAgIC8vZXZlbnRSZXBvc2l0b3J5LnNhdmVBbGwoIGdldEluaXRpYWxFdmVudHMoKSApOwogICAgICAgIH07CiAgICB9CmBgYAoK readmeEtag: '"42a2b1f05f7bdc249f57cfe2f7aa6e5a2f34467a"' readmeLastModified: Thu, 09 Jun 2022 14:51:42 GMT repositoryId: 463172255 description: >- Backend API using Spring Boot + Hibernate for the HUI social events management proyect. created: '2022-02-24T14:08:30Z' updated: '2024-04-28T20:51:18Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: MarkelCA logo: https://avatars.githubusercontent.com/u/76633510?v=4 repoEtag: '"299ce7bd9c9d22d98019de0c64d2b2e9cd586a5c998b60544b717d29957191a9"' repoLastModified: Sun, 28 Apr 2024 20:51:18 GMT foundInMaster: true category: - Server - Server Implementations id: d9fe16857ea3f56e142dbfb44540e084 - source: https://openapi.tools/ name: MockLab category: Mock language: SaaS link: https://www.mocklab.io/docs/getting-started/ repository: https://www.mocklab.io/docs/getting-started/ source_description: SaaS platform to upload your spec to create a mock server v2: true v3: true foundInMaster: true id: fbcb114edb9df0275737eace42893e58 - source: https://openapi.tools/ name: oas-normalize category: - Parsers - Description Validators - Converters language: - JavaScript - TypeScript repository: https://github.com/readmeio/oas-normalize source_description: >- Tooling for converting, validating, and parsing OpenAPI, Swagger, and Postman API definitions v2: true v3: true v3_1: true id: 463179f425347a95bac9bee6af02cc94 repositoryMetadata: base64Readme: >- PiAqKldhcm5pbmcqKgo+Cj4gYG9hcy1ub3JtYWxpemVgIGhhcyBtb3ZlZCEgVGhlIHNvdXJjZSBmb3IgdGhpcyBsaWJyYXJ5IG5vdyBsaXZlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vcmVhZG1laW8vb2FzLgogCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtLmltL29hcy1ub3JtYWxpemUiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzMzNzYyLzIwMDQzNDYyMi0yMzk0Njg2OS0xOTY1LTQ2ZjgtOGRlYi1mMjg0YjhkMGI5MmMucG5nIiBhbHQ9Im9hcy1ub3JtYWxpemUiIC8+CiAgPC9hPgo8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj4KICBUb29saW5nIGZvciBjb252ZXJ0aW5nLCB2YWxpZGF0aW5nLCBhbmQgcGFyc2luZyBPcGVuQVBJLCBTd2FnZ2VyLCBhbmQgUG9zdG1hbiBBUEkgZGVmaW5pdGlvbnMKPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9ucG0uaW0vb2FzLW5vcm1hbGl6ZSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvb2FzLW5vcm1hbGl6ZT9zdHlsZT1mb3ItdGhlLWJhZGdlIiBhbHQ9Ik5QTSBWZXJzaW9uIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9ucG0uaW0vb2FzLW5vcm1hbGl6ZSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbm9kZS92L29hcy1ub3JtYWxpemU/c3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJOb2RlIFZlcnNpb24iPjwvYT4KICA8YSBocmVmPSJodHRwczovL25wbS5pbS9vYXMtbm9ybWFsaXplIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9vYXMtbm9ybWFsaXplP3N0eWxlPWZvci10aGUtYmFkZ2UiIGFsdD0iTUlUIExpY2Vuc2UiPjwvYT4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcmVhZG1laW8vb2FzLW5vcm1hbGl6ZSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3JlYWRtZWlvL29hcy1ub3JtYWxpemUvY2kueW1sP2JyYW5jaD1tYWluJnN0eWxlPWZvci10aGUtYmFkZ2UiIGFsdD0iQnVpbGQgc3RhdHVzIj48L2E+CjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vcmVhZG1lLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yZWFkbWVpby8uZ2l0aHViL21haW4vb3NzLWJhZGdlLnN2ZyIgLz48L2E+CjwvcD4KCiMjIEluc3RhbGxhdGlvbgoKYGBgYmFzaApucG0gaW5zdGFsbCBvYXMtbm9ybWFsaXplCmBgYAoKIyMgVXNhZ2UKCmBgYGphdmFzY3JpcHQKaW1wb3J0IE9BU05vcm1hbGl6ZSBmcm9tICdvYXMtbm9ybWFsaXplJzsKLy8gY29uc3QgeyBkZWZhdWx0OiBPQVNOb3JtYWxpemUgfSA9IHJlcXVpcmUoJ29hcy1ub3JtYWxpemUnKTsgLy8gSWYgeW91J3JlIHVzaW5nIENKUy4KCmNvbnN0IG9hcyA9IG5ldyBPQVNOb3JtYWxpemUoCiAgJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL21hc3Rlci9leGFtcGxlcy92My4wL3BldHN0b3JlLWV4cGFuZGVkLnlhbWwnLAogIC8vIC4uLm9yIGEgc3RyaW5nLCBwYXRoLCBKU09OIGJsb2IsIHdoYXRldmVyIHlvdSd2ZSBnb3QuCik7CgpvYXMKICAudmFsaWRhdGUoKQogIC50aGVuKGRlZmluaXRpb24gPT4gewogICAgLy8gRGVmaW5pdGlvbiB3aWxsIGFsd2F5cyBiZSBKU09OLCBhbmQgdmFsaWQuCiAgICBjb25zb2xlLmxvZyhkZWZpbml0aW9uKTsKICB9KQogIC5jYXRjaChlcnIgPT4gewogICAgY29uc29sZS5sb2coZXJyKTsKICB9KTsKYGBgCgojIyMgYCNidW5kbGUoKWAKCj4gKipOb3RlKioKPgo+IEJlY2F1c2UgUG9zdG1hbiBjb2xsZWN0aW9ucyBkb24ndCBzdXBwb3J0IGAkcmVmYCBwb2ludGVycywgdGhpcyBtZXRob2Qgd2lsbCBhdXRvbWF0aWNhbGx5IHVwY29udmVydCBhIFBvc3RtYW4gY29sbGVjdGlvbiB0byBPcGVuQVBJIGlmIHN1cHBsaWVkIG9uZS4KCkJ1bmRsZSB1cCB0aGUgZ2l2ZW4gQVBJIGRlZmluaXRpb24sIHJlc29sdmluZyBhbnkgZXh0ZXJuYWwgYCRyZWZgIHBvaW50ZXJzIGluIHRoZSBwcm9jZXNzLgoKYGBganMKYXdhaXQgb2FzLmJ1bmRsZSgpLnRoZW4oZGVmaW5pdGlvbiA9PiB7CiAgY29uc29sZS5sb2coZGVmaW5pdGlvbik7Cn0pOwpgYGAKCiMjIyBgI2RlcmVmKClgCgo+ICoqTm90ZSoqCj4KPiBCZWNhdXNlIFBvc3RtYW4gY29sbGVjdGlvbnMgZG9uJ3Qgc3VwcG9ydCBgJHJlZmAgcG9pbnRlcnMsIHRoaXMgbWV0aG9kIHdpbGwgYXV0b21hdGljYWxseSB1cGNvbnZlcnQgYSBQb3N0bWFuIGNvbGxlY3Rpb24gdG8gT3BlbkFQSSBpZiBzdXBwbGllZCBvbmUuCgpEZXJlZmVyZW5jZSB0aGUgZ2l2ZW4gQVBJIGRlZmluaXRpb24sIHJlc29sdmluZyBhbGwgYCRyZWZgIHBvaW50ZXJzIGluIHRoZSBwcm9jZXNzLgoKYGBganMKYXdhaXQgb2FzLmRlcmVmKCkudGhlbihkZWZpbml0aW9uID0+IHsKICBjb25zb2xlLmxvZyhkZWZpbml0aW9uKTsKfSk7CmBgYAoKIyMjIGAjdmFsaWRhdGUoeyBjb252ZXJ0VG9MYXRlc3Q/OiBib29sZWFuIH0pYAoKVmFsaWRhdGUgYW5kIG9wdGlvbmFsbHkgY29udmVydCB0byBPcGVuQVBJLCBhIGdpdmVuIEFQSSBkZWZpbml0aW9uLiBUaGlzIHN1cHBvcnRzIFN3YWdnZXIgMi4wLCBPcGVuQVBJIDMueCBBUEkgZGVmaW5pdGlvbnMgYXMgd2VsbCBhcyBQb3N0bWFuIDIueCBjb2xsZWN0aW9ucy4KClBsZWFzZSBub3RlIHRoYXQgaWYgeW91J3ZlIHN1cHBsaWVkIGEgUG9zdG1hbiBjb2xsZWN0aW9uIHRvIHRoZSBsaWJyYXJ5IGl0IHdpbGwgKiphbHdheXMqKiBiZSBjb252ZXJ0ZWQgdG8gT3BlbkFQSSwgdXNpbmcgW0ByZWFkbWUvcG9zdG1hbi10by1vcGVuYXBpXShodHRwczovL25wbS5pbS9AcmVhZG1lL3Bvc3RtYW4tdG8tb3BlbmFwaSksIGFuZCB3ZSB3aWxsIG9ubHkgdmFsaWRhdGUgcmVzdWx0aW5nIE9wZW5BUEkgZGVmaW5pdGlvbi4KCmBgYGpzCmF3YWl0IG9hcy52YWxpZGF0ZSgpLnRoZW4oZGVmaW5pdGlvbiA9PiB7CiAgY29uc29sZS5sb2coZGVmaW5pdGlvbik7Cn0pOwpgYGAKCiMjIyMgT3B0aW9ucwoKPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CnwgT3B0aW9uIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwKfCA6LS0tIHwgOi0tLSB8IDotLS0gfAp8IGBjb252ZXJ0VG9MYXRlc3RgIHwgQm9vbGVhbiB8IEJ5IGRlZmF1bHQgYCN2YWxpZGF0ZWAgd2lsbCBub3QgdXBjb252ZXJ0IFN3YWdnZXIgQVBJIGRlZmluaXRpb25zIHRvIE9wZW5BUEkgc28gaWYgeW91IHdpc2ggZm9yIHRoaXMgdG8gaGFwcGVuLCBzdXBwbHkgYHRydWVgLiB8CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCiMjIyMgRXJyb3IgSGFuZGxpbmcKCkZvciB2YWxpZGF0aW9uIGVycm9ycywgd2hlbiBhdmFpbGFibGUsIHlvdSdsbCBnZXQgYmFjayBhbiBvYmplY3Q6CgpgYGBqcwp7CiAgImRldGFpbHMiOiBbCiAgICAvLyBBanYgcGF0aGluZyBlcnJvcnMuIEZvciBleGFtcGxlOgogICAgLyogewogICAgICAiaW5zdGFuY2VQYXRoIjogIi9jb21wb25lbnRzL3NlY3VyaXR5U2NoZW1lcy90bHNBdXRoIiwKICAgICAgInNjaGVtYVBhdGgiOiAiIy9wcm9wZXJ0aWVzL3NlY3VyaXR5U2NoZW1lcy9wYXR0ZXJuUHJvcGVydGllcy8lNUUlNUJhLXpBLVowLTklNUMuJTVDLV8lNUQlMkIlMjQvb25lT2YiLAogICAgICAia2V5d29yZCI6ICJvbmVPZiIsCiAgICAgICJwYXJhbXMiOiB7ICJwYXNzaW5nU2NoZW1hcyI6IG51bGwgfSwKICAgICAgIm1lc3NhZ2UiOiAibXVzdCBtYXRjaCBleGFjdGx5IG9uZSBzY2hlbWEgaW4gb25lT2YiCiAgICB9LCAqLwogIF0KfQpgYGAKCmBtZXNzYWdlYCBpcyBhbG1vc3QgYWx3YXlzIHRoZXJlLCBidXQgYHBhdGhgIGlzIGxlc3MgZGVwZW5kYWJsZS4KCiMjIyBgI3ZlcnNpb24oKWAKCkxvYWQgYW5kIHJldHJpZXZlIHZlcnNpb24gaW5mb3JtYXRpb24gYWJvdXQgYSBzdXBwbGllZCBBUEkgZGVmaW5pdGlvbi4KCmBgYGpzCmF3YWl0IG9hcy52ZXJzaW9uKCkudGhlbigoeyBzcGVjaWZpY2F0aW9uLCB2ZXJzaW9uIH0pID0+IHsKICBjb25zb2xlLmxvZyhzcGVjaWZpY2F0aW9uKTsgLy8gb3BlbmFwaQogIGNvbnNvbGUubG9nKHZlcnNpb24pOyAvLyAzLjEuMAp9KTsKYGBgCgojIyMgT3B0aW9ucwoKIyMjIyMgRW5hYmxlIGxvY2FsIHBhdGhzCgpGb3Igc2VjdXJpdHkgcmVhc29ucywgeW91IG5lZWQgdG8gb3B0IGludG8gYWxsb3dpbmcgZmV0Y2hpbmcgYnkgYSBsb2NhbCBwYXRoLiBUbyBlbmFibGUgaXQgc3VwcGx5IHRoZSBgZW5hYmxlUGF0aHNgIG9wdGlvbiB0byB0aGUgY2xhc3MgaW5zdGFuY2U6CgpgYGBqcwpjb25zdCBvYXMgPSBuZXcgT0FTTm9ybWFsaXplKCcuL3BldHN0b3JlLmpzb24nLCB7IGVuYWJsZVBhdGhzOiB0cnVlIH0pOwpgYGAKCiMjIyMjIENvbG9yaXplZCBlcnJvcnMKCklmIHlvdSB3aXNoIGVycm9ycyBmcm9tIGAudmFsaWRhdGUoKWAgdG8gYmUgc3R5bGVkIGFuZCBjb2xvcml6ZWQsIHN1cHBseSBgY29sb3JpemVFcnJvcnM6IHRydWVgIHRvIHlvdXIgaW5zdGFuY2Ugb2YgYE9BU05vcm1hbGl6ZWA6CgpgYGBqcwpjb25zdCBvYXMgPSBuZXcgT0FTTm9ybWFsaXplKCdodHRwczovL2V4YW1wbGUuY29tL3BldHN0b3JlLmpzb24nLCB7CiAgY29sb3JpemVFcnJvcnM6IHRydWUsCn0pOwpgYGAKCkVycm9yIG1lc3NhZ2VzIHdpbGwgbG9vayBsaWtlIHN1Y2g6Cgo8aW1nIHNyYz0iaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMzM3NjIvMTM3Nzk2NjQ4LTdlMTE1N2MyLWNlZTQtNDY2ZS05MTI5LWRkMmE3NDNkZDE2My5wbmciIHdpZHRoPSI2MDAiIC8+Cg== readmeEtag: '"792a400fc9482536a4e6b3899ff273c05ffdf20e"' readmeLastModified: Thu, 05 Oct 2023 17:29:18 GMT repositoryId: 134783835 description: >- Tooling for converting, validating, and parsing OpenAPI, Swagger, and Postman API definitions. created: '2018-05-25T00:48:24Z' updated: '2024-03-26T10:07:20Z' language: TypeScript archived: true stars: 37 watchers: 16 forks: 7 owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT repoEtag: '"f65b629a71e1ad77a8379b93c04acf19b0e9410975a431cdd5123219b3b25834"' repoLastModified: Tue, 26 Mar 2024 10:07:20 GMT foundInMaster: true - source: https://openapi.tools/ name: Fitting category: - Testing - Data Validators - Learning language: Ruby repository: https://github.com/matchtechnologies/fitting link: https://github.com/matchtechnologies/fitting source_description: >- Library add improve test log for RSpec and WebMock, validate its according to API Blueprint and Open API, show the documentation coverage with log. v2: true v3: true v3_1: true id: cc617beb32d7138f1537294767083922 repositoryMetadata: base64Readme: >- IyBGaXR0aW5nCgo8aW1nIGFsaWduPSJyaWdodCIgd2lkdGg9IjE5MiIgaGVpZ2h0PSIxOTIiCmFsdD0iRml0dGluZyBhdmF0YXI6IERvY3VtZW50cyB3aXRoIGhhbmdlcnMiCnNyYz0iLi9pbWFnZXMvbG9nby5wbmciPgoKTm90ZTogVGhlIHByb2plY3QgaGFzIGJlZW4gbW92ZWQgdG8gaHR0cHM6Ly9naXRodWIuY29tL3R1d2lsb2YvZml0dGluZwoKTGlicmFyeSBhZGQgaW1wcm92ZSB0ZXN0IGxvZywgdmFsaWRhdGUgaXRzIGFjY29yZGluZyB0byB5b3VyIEFQSSBkb2N1bWVudGF0aW9uLCBzaG93IHRoZSBkb2N1bWVudGF0aW9uIGNvdmVyYWdlIHdpdGggbG9nLgoKVGVzdCBsb2cgc2V0dGluZyBzdXBwb3J0cyBSU3BlYyB0ZXN0IGFuZCBXZWJNb2NrIHN0dWJiaW5nIGZvciBSdWJ5IE9uIFJhaWxzIGFwcGxpY2F0aW9uLCBBUEkgZG9jdW1lbnRhdGlvbiBzdXBwb3J0cyBBUEkgQmx1ZXByaW50IGFuZCBPcGVuQVBJLgoKVGhpcyByZWR1Y2VzIHRoZSBjb3N0cyBvZiBzdXBwb3J0LCB0ZXN0ZXJzIGFuZCBhbmFseXN0cy4KCkxvZwpgYGB0ZXh0CkZJVFRJTkcgaW5jb21pbmcgcmVxdWVzdCB7Im1ldGhvZCI6IlBPU1QiLCJwYXRoIjoiL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy90RVg1SmlaeWNlaXd1S01pMW9OOVNmOFMvY29udGFjdHMiLCJib2R5Ijp7fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImNvbnRlbnRfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJib2R5Ijp7InNvdXJjZV9pZCI6IjAwZGJmMThkLTg3OWUtNDdjYi1hYzQ1LWU5YWVjZTI2NmViMSIsInB1YnN1Yl90b2tlbiI6Imt0bjZZd1B1czU3SkRmNGU1OWVGUG9tNSIsImlkIjozMjkxLCJuYW1lIjoic2h5LXN1cmYtNDAxIiwiZW1haWwiOm51bGwsInBob25lX251bWJlciI6bnVsbH19LCJ0aXRsZSI6Ii4vc3BlYy9jb250cm9sbGVycy9wdWJsaWMvYXBpL3YxL2luYm94L2NvbnRhY3RzX2NvbnRyb2xsZXJfc3BlYy5yYjo5IiwiZ3JvdXAiOiIuL3NwZWMvY29udHJvbGxlcnMvcHVibGljL2FwaS92MS9pbmJveC9jb250YWN0c19jb250cm9sbGVyX3NwZWMucmIiLCJob3N0Ijoid3d3LmV4YW1wbGUuY29tIn0KRklUVElORyBvdXRnb2luZyByZXF1ZXN0IHsibWV0aG9kIjoiUE9TVCIsInBhdGgiOiIvdjEvb3JnYW5pemF0aW9ucy9vcmdfaWQvbWVldGluZyIsImJvZHkiOnt9LCJyZXNwb25zZSI6eyJzdGF0dXMiOjIwMCwiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImJvZHkiOnsic3VjY2VzcyI6dHJ1ZSwiZGF0YSI6eyJtZWV0aW5nIjp7ImlkIjoibWVldGluZ19pZCIsInJvb21OYW1lIjoicm9vbV9uYW1lIn19fX0sInRpdGxlIjoiLi9zcGVjL2NvbnRyb2xsZXJzL2FwaS92MS9hY2NvdW50cy9pbnRlZ3JhdGlvbnMvZHl0ZV9jb250cm9sbGVyX3NwZWMucmI6NTAiLCJncm91cCI6Ii4vc3BlYy9jb250cm9sbGVycy9hcGkvdjEvYWNjb3VudHMvaW50ZWdyYXRpb25zL2R5dGVfY29udHJvbGxlcl9zcGVjLnJiIiwiaG9zdCI6ImFwaS5jbHVzdGVyLmR5dGUuaW4ifQpgYGAKCnZhbGlkYXRpb24KYGBgY29uc29sZQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuRkZGLi5GRkZGRkZGRkZGLi4uLkYuLi4uLi4uRi4uLkZGLi4uLi5GLi4uRi4uLi5GLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLkZGLkYuLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuLi4uLi4uLkZGRi4uLkZGRkYuLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi4uRkZGRkZGRkZGRkYuLkZGRkZGRi4uRkZGRkZGRkZGRkZGRkZGRkYuLi4uLi4uRkZGRkZGLi4uLi4uLi4uLi4uLkZGRkZGRkZGRkZGRi4uLi5GLi4uLi4uLi5GRkYuRi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi4uLi4uLkZGLi4uLi4uLi5GRkYuLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLkZGRkZGRi4uLi4uLkYuLi4uLi4uLi4uLi5GRkZGLi4uLi4uLi5GRkZGRkZGRkZGRkZGRi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLkZGLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uRkYuLi4uLi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGLi4uRkZGRi4uLi4uLi4uLi4uLi4uLkYuRi4uLi5GRi4uRkZGRkZGRkYKCiAgMSkgRml0dGluZzo6RG9jOjpOb3RGb3VuZCBsb2cgZXJyb3I6Cgpob3N0OiB3d3cuZXhhbXBsZS5jb20KbWV0aG9kOiBQT1NUCnBhdGg6IC9wdWJsaWMvYXBpL3YxL2luYm94ZXMve2luYm94X2lkZW50aWZpZXJ9L2NvbnRhY3RzCmNvZGU6IDIwMAoKY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uCgpqc29uLXNjaGVtYTogewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicHJvcGVydGllcyI6IHsKICAgICJpZCI6IHsKICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAic291cmNlX2lkIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlc3Npb24gaWRlbnRpZmllciBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhlIGNvbnRhY3QiCiAgICB9LAogICAgImVtYWlsIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiRW1haWwgb2YgdGhlIGNvbnRhY3QiCiAgICB9LAogICAgInB1YnN1Yl90b2tlbiI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0b2tlbiB0byBiZSB1c2VkIHRvIGNvbm5lY3QgdG8gY2hhdHdvb3Qgd2Vic29ja2V0IgogICAgfQogIH0KfQoKYm9keTogewogICJzb3VyY2VfaWQiOiAiYzllOGMzMWYtMDZkZi00OWI0LThmYjktNDQ2NjQ1N2FlNjViIiwKICAicHVic3ViX3Rva2VuIjogIlpnYzdERXZhajVUa2daMWE0QzdBdkpYbyIsCiAgImlkIjogMzI5MywKICAibmFtZSI6ICJyZXN0bGVzcy1zbm93Zmxha2UtNjcwIiwKICAiZW1haWwiOiBudWxsLAogICJwaG9uZV9udW1iZXIiOiBudWxsCn0KCmVycm9yIFsKICAiVGhlIHByb3BlcnR5ICcjL2VtYWlsJyBvZiB0eXBlIG51bGwgZGlkIG5vdCBtYXRjaCB0aGUgZm9sbG93aW5nIHR5cGU6IHN0cmluZyBpbiBzY2hlbWEgZTU2YjdlNjUtZDcwYy01ZjdhLWE5NmMtOTgyZGY1ZjhmMmY3IgpdCgouLi4KCjgwNCBleGFtcGxlcywgNTY1IGZhaWx1cmUsIDAgcGVuZGluZwoKQ292ZXJhZ2U6IDY1LjUxJQpgYGAKCmFuZCBjb3ZlcgohW2V4bWFwbGVdKGltYWdlcy9iMS5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy9iMi5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy93MS5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy93Mi5wbmcpCgojIyBJbnN0YWxsYXRpb24KQWRkIHRoaXMgbGluZSB0byB5b3VyIGFwcGxpY2F0aW9uJ3MgR2VtZmlsZToKYGBgcnVieQpnZW0gJ2ZpdHRpbmcnCmBgYAoKQWZ0ZXIgdGhhdCBleGVjdXRlOgpgYGBiYXNoCiQgYnVuZGxlCmBgYAoKT3IgaW5zdGFsbCB0aGUgZ2VtIGJ5IHlvdXJzZWxmOgpgYGBiYXNoCiQgZ2VtIGluc3RhbGwgZml0dGluZwpgYGAKCiMjIFVzYWdlCiMjIyBMb2cKRmlyc3RseSwgaW1wcm92ZSBgdGVzdC5sb2dgLgoKVG8geW91ciBgc3BlY19oZWxwZXIucmJgOgoKYGBgcnVieQpyZXF1aXJlICdmaXR0aW5nJwoKRml0dGluZy5sb2dnZXIKYGBgCgpEZWxldGUgYWxsIGZpbGVzIGBsb2cvKi5sb2dgIGFuZCBydW4gcnNwZWMKCllvdSBnZXQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBpbmNvbWluZyBhbmQgb3V0Z29pbmcgcmVxdWVzdCBpbiBgbG9nL2ZpdHRpbmcqLmxvZ2AuCgpgYGB0ZXh0CkZJVFRJTkcgaW5jb21pbmcgcmVxdWVzdCB7Im1ldGhvZCI6IlBPU1QiLCJwYXRoIjoiL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy90RVg1SmlaeWNlaXd1S01pMW9OOVNmOFMvY29udGFjdHMiLCJib2R5Ijp7fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImNvbnRlbnRfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJib2R5Ijp7InNvdXJjZV9pZCI6IjAwZGJmMThkLTg3OWUtNDdjYi1hYzQ1LWU5YWVjZTI2NmViMSIsInB1YnN1Yl90b2tlbiI6Imt0bjZZd1B1czU3SkRmNGU1OWVGUG9tNSIsImlkIjozMjkxLCJuYW1lIjoic2h5LXN1cmYtNDAxIiwiZW1haWwiOm51bGwsInBob25lX251bWJlciI6bnVsbH19LCJ0aXRsZSI6Ii4vc3BlYy9jb250cm9sbGVycy9wdWJsaWMvYXBpL3YxL2luYm94L2NvbnRhY3RzX2NvbnRyb2xsZXJfc3BlYy5yYjo5IiwiZ3JvdXAiOiIuL3NwZWMvY29udHJvbGxlcnMvcHVibGljL2FwaS92MS9pbmJveC9jb250YWN0c19jb250cm9sbGVyX3NwZWMucmIiLCJob3N0Ijoid3d3LmV4YW1wbGUuY29tIn0KRklUVElORyBvdXRnb2luZyByZXF1ZXN0IHsibWV0aG9kIjoiUE9TVCIsInBhdGgiOiIvdjEvb3JnYW5pemF0aW9ucy9vcmdfaWQvbWVldGluZyIsImJvZHkiOnt9LCJyZXNwb25zZSI6eyJzdGF0dXMiOjIwMCwiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImJvZHkiOnsic3VjY2VzcyI6dHJ1ZSwiZGF0YSI6eyJtZWV0aW5nIjp7ImlkIjoibWVldGluZ19pZCIsInJvb21OYW1lIjoicm9vbV9uYW1lIn19fX0sInRpdGxlIjoiLi9zcGVjL2NvbnRyb2xsZXJzL2FwaS92MS9hY2NvdW50cy9pbnRlZ3JhdGlvbnMvZHl0ZV9jb250cm9sbGVyX3NwZWMucmI6NTAiLCJncm91cCI6Ii4vc3BlYy9jb250cm9sbGVycy9hcGkvdjEvYWNjb3VudHMvaW50ZWdyYXRpb25zL2R5dGVfY29udHJvbGxlcl9zcGVjLnJiIiwiaG9zdCI6ImFwaS5jbHVzdGVyLmR5dGUuaW4ifQpgYGAKCiMjIyBWYWxpZGF0aW9uClNlY29uZGx5LCB2YWxpZGF0ZSB0aGUgbG9nIHRvIHRoZSBkb2N1bWVudGF0aW9uLgoKQWRkIHRoaXMgdG8geW91ciBgLmZpdHRpbmcueW1sYDoKCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgdHlwZTogb3BlbmFwaTIKICAgIHBhdGg6IHN3YWdnZXIvc3dhZ2dlci5qc29uCmBgYAoKUnVuIApgYGBiYXNoCmJ1bmRsZSBlIHJha2UgZml0dGluZzp2YWxpZGF0ZQpgYGAKCkNvbnNvbGUgb3V0cHV0CgpgYGBjb25zb2xlCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi5GRkYuLkZGRkZGRkZGRkYuLi4uRi4uLi4uLi5GLi4uRkYuLi4uLkYuLi5GLi4uLkYuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuRi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi5GRi4uLi4uLi4uRkZGLi4uRkZGRi4uLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi4uLi5GRkZGRkZGRkZGRi4uRkZGRkZGLi5GRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi5GRkZGRkYuLi4uLi4uLi4uLi4uRkZGRkZGRkZGRkZGLi4uLkYuLi4uLi4uLkZGRi5GLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi4uLi4uLi4uRkYuLi4uLi4uLkZGRi4uLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLi4uRkZGRkZGLi4uLi4uRi4uLi4uLi4uLi4uLkZGRkYuLi4uLi4uLkZGRkZGRkZGRkZGRkZGLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi5GRi4uLi4uLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkYuLi5GRkZGLi4uLi4uLi4uLi4uLi4uRi5GLi4uLkZGLi5GRkZGRkZGRgoKICAxKSBGaXR0aW5nOjpEb2M6Ok5vdEZvdW5kIGxvZyBlcnJvcjoKCmhvc3Q6IHd3dy5leGFtcGxlLmNvbQptZXRob2Q6IFBPU1QKcGF0aDogL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy97aW5ib3hfaWRlbnRpZmllcn0vY29udGFjdHMKY29kZTogMjAwCgpjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24KCmpzb24tc2NoZW1hOiB7CiAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAidHlwZSI6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIjogewogICAgImlkIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBjb250YWN0IgogICAgfSwKICAgICJzb3VyY2VfaWQiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2Vzc2lvbiBpZGVudGlmaWVyIG9mIHRoZSBjb250YWN0IgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAiZW1haWwiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJFbWFpbCBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAicHVic3ViX3Rva2VuIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHRva2VuIHRvIGJlIHVzZWQgdG8gY29ubmVjdCB0byBjaGF0d29vdCB3ZWJzb2NrZXQiCiAgICB9CiAgfQp9Cgpib2R5OiB7CiAgInNvdXJjZV9pZCI6ICJjOWU4YzMxZi0wNmRmLTQ5YjQtOGZiOS00NDY2NDU3YWU2NWIiLAogICJwdWJzdWJfdG9rZW4iOiAiWmdjN0RFdmFqNVRrZ1oxYTRDN0F2SlhvIiwKICAiaWQiOiAzMjkzLAogICJuYW1lIjogInJlc3RsZXNzLXNub3dmbGFrZS02NzAiLAogICJlbWFpbCI6IG51bGwsCiAgInBob25lX251bWJlciI6IG51bGwKfQoKZXJyb3IgWwogICJUaGUgcHJvcGVydHkgJyMvZW1haWwnIG9mIHR5cGUgbnVsbCBkaWQgbm90IG1hdGNoIHRoZSBmb2xsb3dpbmcgdHlwZTogc3RyaW5nIGluIHNjaGVtYSBlNTZiN2U2NS1kNzBjLTVmN2EtYTk2Yy05ODJkZjVmOGYyZjciCl0KCi4uLgoKODA0IGV4YW1wbGVzLCA1NjUgZmFpbHVyZSwgMCBwZW5kaW5nCgpDb3ZlcmFnZTogNjUuNTElCmBgYAoKIyMjIENvdmVyYWdlCkFuZCB0YXNrIHdpbGwgY3JlYXRlIEhUTUwgKGBjb3ZlcmFnZS9maXR0aW5nLmh0bWxgKSByZXBvcnRzLgoKIVtleG1hcGxlXShpbWFnZXMvYjEucG5nKQoKIVtleG1hcGxlXShpbWFnZXMvYjIucG5nKQoKTW9yZSBpbmZvcm1hdGlvbiBvbiBhY3Rpb24gY292ZXJhZ2UKCiFbZXhtYXBsZTJdKGltYWdlcy93MS5wbmcpCgohW2V4bWFwbGUyXShpbWFnZXMvdzIucG5nKQoKIyMgU2V0dGluZ3MKCiMjIyBBUElzCgojIyMjIHR5cGUKCiMjIyMjIE9wZW5BUEkgMi4wClN3YWdnZXIKCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgdHlwZTogb3BlbmFwaTIKICAgIHBhdGg6IGRvYy9hcGkuanNvbgpgYGAKCiMjIyMjIE9wZW5BUEkgMy4wCkFsc28gT3BlbkFQSQoKYGBgeWFtbApBUElzOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICB0eXBlOiBvcGVuYXBpMwogICAgcGF0aDogZG9jL2FwaS5qc29uCmBgYAoKIyMjIyMgQVBJIEJsdWVwcmludApGaXJzdCB5b3UgbmVlZCB0byBpbnN0YWxsIFtkcmFmdGVyXShodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vZHJhZnRlcikgb3IgW2NyYWZ0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9mdW5ib3gvY3JhZnRlcikuCldvcmtzIGFmdGVyIGNvbnZlcnNpb24gZnJvbSBBUEkgQmx1ZXByaW50IHRvIEFQSSBFbGVtZW50cyAoaW4gWUFNTCBmaWxlKSB3aXRoIERyYWZ0ZXIgb3IgQ3JhZnRlci4KClRoYXQgaXMsIEkgbWVhbiB0aGF0IHlvdSBmaXJzdCBuZWVkIHRvIGRvIHRoaXMKCmBgYGJhc2gKZHJhZnRlciBkb2MuYXBpYiAtbyBkb2MueWFtbApgYGAKCm9yCgpgYGBiYXNoCm5vZGVfbW9kdWxlcy8uYmluL2NyYWZ0ZXIgZG9jLmFwaWIgPiBkb2MueWFtbApgYGAKCmFuZCB0aGVuCgpgYGB5YW1sCkFQSXM6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIHR5cGU6IGRyYWZ0ZXIKICAgIHBhdGg6IGRvYy9hcGkueWFtbApgYGAKCm9yCgpgYGB5YW1sCkFQSXM6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIHR5cGU6IGNyYWZ0ZXIKICAgIHBhdGg6IGRvYy9hcGkueWFtbApgYGAKCiMjIyMjIFRvbW9ncmFwaAoKVG8gdXNlIGFkZGl0aW9uYWwgZmVhdHVyZXMgb2YgdGhlIHByZS1jb252ZXJ0ZWQgW3RvbW9ncmFwaF0oaHR0cHM6Ly9naXRodWIuY29tL2Z1bmJveC90b21vZ3JhcGgpCgpleGFtcGxlCgpgYGBiYXNoCmJ1bmRsZSBleGVjIHRvbW9ncmFwaCAtZCBjcmFmdGVyIC0tZXhjbHVkZS1kZXNjcmlwdGlvbiBkb2MvYXBpLnltbCBkb2MvYXBpLmpzb24KYGBgCgphbmQgdGhlbgoKYGBgeWFtbApBUElzOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICB0eXBlOiB0b21vZ3JhbQogICAgcGF0aDogZG9jL2FwaS5qc29uCmBgYAoKIyMjIyBwcmVmaXgKClNldHRpbmcgdGhlIHByZWZpeCBuYW1lIGlzIG9wdGlvbmFsLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBkbyB0aGlzOgoKYGBgeWFtbApBUElzOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICBwcmVmaXg6IC9hcGkvdjMKICAgIHR5cGU6IG9wZW5hcGkyCiAgICBwYXRoOiBzd2FnZ2VyL3N3YWdnZXIuanNvbgpgYGAKCiMjIyBTa2lwVmFsaWRhdGlvbgoKIyMjIyBob3N0CgpJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGltbWVkaWF0ZWx5IGRlc2NyaWJlIGVhY2ggaG9zdCBpbiBkZXRhaWwsIHlvdSBjYW4gb25seSBzcGVjaWZ5IGl0cyBuYW1lIGFuZCBza2lwIGl0IHVudGlsIHlvdSBhcmUgcmVhZHkgdG8gZG9jdW1lbnRlZCBpdAoKYGBgeWFtbApTa2lwVmFsaWRhdGlvbjoKICAtIGhvc3Q6IGFwaS5jbHVzdGVyLmR5dGUuaW4KYGBgCgojIyMjIHByZWZpeAoKSWYgeW91IHdhbnQgdG8gc2tpcCBhIHNwZWNpZmljIHByZWZpeCBpbiB0aGUgaG9zdAoKYGBgeWFtbApTa2lwVmFsaWRhdGlvbjoKICAtIGhvc3Q6IGFwaS5jbHVzdGVyLmR5dGUuaW4KICAgIHByZWZpeDogL2FkbWluL2FwaQpgYGAKCiMjIyMgbWV0aG9kIGFuZCBwYXRoCgpJZiB5b3Ugd2FudCB0byBza2lwIGEgc3BlY2lmaWMgcmVxdWVzdCBpbiB0aGUgaG9zdAoKYGBgeWFtbApTa2lwVmFsaWRhdGlvbjoKICAtIGhvc3Q6IGFwaS5jbHVzdGVyLmR5dGUuaW4KICAgIG1ldGhvZDogR0VUCiAgICBwYXRoOiAvYXBpL3YxL2NhcnMKYGBgCgojIyMgTm9Db3YKCkl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gaW1tZWRpYXRlbHkgdGVzdCBlYWNoIGRvYyBpbiBkZXRhaWwsIHlvdSBjYW4gb25seSBzcGVjaWZ5IGl0cyBuYW1lIGFuZCBza2lwIGl0IHVudGlsIHlvdSBhcmUgcmVhZHkgdG8gdGVzdCBpdAoKIyMjIyBob3N0CmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdApgYGAKCiMjIyMgbWV0aG9kCmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKYGBgCgojIyMjIHBhdGgKYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CmBgYAoKIyMjIyBjb2RlCmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKICAgIHBhdGg6IC91c2Vycy97dXNlcklkfQogICAgY29kZTogMjAwCmBgYAoKIyMjIyBjb250ZW50LXR5cGUKYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgpgYGAKCiMjIyMgY29tYmluYXRpb24KYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgogICAgY29tYmluYXRpb246IG9uZU9mLjAKYGBgCgojIyMjIGNvbWJpbmF0aW9uX25leHQKYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgogICAgY29tYmluYXRpb246IG9uZU9mLjAKICAgIGNvbWJpbmF0aW9uX25leHQ6IG9uZU9mLjAucmVxdWlyZWQudXNlcnMKYGBgCgojIyMgRGVidWcKCklmIHlvdSBmaW5kIGJ1ZywgeW91IGNhbiBkZWJ1ZyBpdCBvciBjcmVhdGUgdGFzayBpbiB0aGlzIGdpdGh1YiBwcm9qZWN0ICB3aXRoIG5ldyBmaWxlIGBjb3ZlcmFnZS9maXR0aW5nLmRlYnVnLnltbGAKCmBgYHlhbWwKRGVidWc6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIG1ldGhvZDogR0VUCiAgICBwYXRoOiAvYXBpL3YzL3VzZXJzCiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgpgYGAKCiMjIENvbnRyaWJ1dGluZwoKQnVnIHJlcG9ydHMgYW5kIHB1bGwgcmVxdWVzdHMgYXJlIHdlbGNvbWUgb24gR2l0SHViIGF0IFtnaXRodWIuY29tL2Z1bmJveC9maXR0aW5nXShodHRwczovL2dpdGh1Yi5jb20vZnVuYm94L2ZpdHRpbmcpLgpUaGlzIHByb2plY3QgaXMgaW50ZW5kZWQgdG8gYmUgYSBzYWZlLCB3ZWxjb21pbmcgc3BhY2UgZm9yIGNvbGxhYm9yYXRpb24sIGFuZCBjb250cmlidXRvcnMgYXJlIGV4cGVjdGVkIHRvIGFkaGVyZSB0byB0aGUgW0NvbnRyaWJ1dG9yIENvdmVuYW50XShodHRwOi8vY29udHJpYnV0b3ItY292ZW5hbnQub3JnKSBjb2RlIG9mIGNvbmR1Y3QuCgojIyBMaWNlbnNlCgpUaGUgZ2VtIGlzIGF2YWlsYWJsZSBhcyBvcGVuIHNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtNSVQgTGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuCgpbIVtTcG9uc29yZWQgYnkgRnVuQm94XShodHRwczovL2Z1bmJveC5ydS9iYWRnZXMvc3BvbnNvcmVkX2J5X2Z1bmJveF9jZW50ZXJlZC5zdmcpXShodHRwczovL2Z1bmJveC5ydSkK readmeEtag: '"00e2b176ef7d96987a960eeb75f854fc49d188b1"' readmeLastModified: Wed, 03 Apr 2024 20:24:31 GMT repositoryId: 780564538 description: >- Library add improve test log for RSpec and WebMock, validate its according to API Blueprint and Open API, show the documentation coverage with log. created: '2024-04-01T18:32:22Z' updated: '2024-04-03T20:25:02Z' language: Ruby archived: true stars: 0 watchers: 0 forks: 0 owner: matchtechnologies logo: https://avatars.githubusercontent.com/u/147186495?v=4 license: MIT repoEtag: '"dd119ac8fea3f46be2b5881a8a9c1ff4e72b02fa8f3bdb95cd6d8cad57c260a1"' repoLastModified: Wed, 03 Apr 2024 20:25:02 GMT foundInMaster: true - source: https://openapi.tools/ name: kubb category: Code Generators language: Typescript source_description: >- Kubb is a tool that can generate TypeScript types, Zod schemas, react-query hooks and much more. It has support for Tanstack Query(React, Solid, Svelte and Vue), SWR(React), Zod, Zodios and Axios. Kubb is made based on a plugin system, meaning you can create your own plugin and couple it with the Kubb ecosystem. link: https://kubb.dev/ repository: https://github.com/kubb-labs/kubb v2: true v3: true v3_1: true id: 8deb5ec0f25533d10b0d6025d587f55c repositoryMetadata: base64Readme: >- PiAqKmBLdWJiYCBpcyBzZWFyY2hpbmcgZm9yIG1haW50YWluZXJzLioqCgoKPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+Cgo8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmItbGFicy9rdWJiL21haW4vYXNzZXRzL2Jhbm5lci5wbmciIGFsdD0ibG9nbyIgIGhlaWdodD0iYXV0byIgLz4KClshW25wbSB2ZXJzaW9uXVtucG0tdmVyc2lvbi1zcmNdXVtucG0tdmVyc2lvbi1ocmVmXQpbIVtucG0gZG93bmxvYWRzXVtucG0tZG93bmxvYWRzLXNyY11dW25wbS1kb3dubG9hZHMtaHJlZl0KWyFbQ292ZXJhZ2VdW2NvdmVyYWdlLXNyY11dW2NvdmVyYWdlLWhyZWZdClshW0xpY2Vuc2VdW2xpY2Vuc2Utc3JjXV1bbGljZW5zZS1ocmVmXQpbIVtTcG9uc29yc11bc3BvbnNvcnMtc3JjXV1bc3BvbnNvcnMtaHJlZl0KCjwvcD4KCjxoND4KICAgIDxhIGhyZWY9Imh0dHBzOi8vY29kZXNhbmRib3guaW8vcy9naXRodWIva3ViYi1sYWJzL2t1YmIvdHJlZS9hbHBoYS9leGFtcGxlcy90eXBlc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayI+VmlldyBEZW1vPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9rdWJiLmRldi8iIHRhcmdldD0iX2JsYW5rIj5Eb2N1bWVudGF0aW9uPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItbGFicy9rdWJiL2lzc3Vlcy8iIHRhcmdldD0iX2JsYW5rIj5SZXBvcnQgQnVnPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItbGFicy9rdWJiL2lzc3Vlcy8iIHRhcmdldD0iX2JsYW5rIj5SZXF1ZXN0IEZlYXR1cmU8L2E+CiAgPC9oND4KPC9kaXY+Cgo8YnIgLz4KCiMjIEZlYXR1cmVzCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20va3ViYi1sYWJzL2t1YmIvbWFpbi9hc3NldHMvZmVhdHVyZXMucG5nIiBhbHQ9ImZlYXR1cmVzIiAgaGVpZ2h0PSJhdXRvIiAvPgo8L2Rpdj4KCiMjIFN1cHBvcnRpbmcgS3ViYgoKS3ViYiB1c2VzIGFuIE1JVC1saWNlbnNlZCBvcGVuIHNvdXJjZSBwcm9qZWN0IHdpdGggaXRzIG9uZ29pbmcgZGV2ZWxvcG1lbnQgbWFkZSBwb3NzaWJsZSBlbnRpcmVseSBieSB0aGUgc3VwcG9ydCBvZiBTcG9uc29ycy4gSWYgeW91IHdvdWxkIGxpa2UgdG8gYmVjb21lIGEgc3BvbnNvciwgcGxlYXNlIGNvbnNpZGVyOgoKLSBbQmVjb21lIGEgU3BvbnNvciBvbiBHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9zdGlqbnZhbmh1bGxlKQoKPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3N0aWpudmFuaHVsbGUiPgogICAgPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zdGlqbnZhbmh1bGxlL3Nwb25zb3JzL21haW4vc3BvbnNvcnMuc3ZnIiBhbHQ9Ik15IHNwb25zb3JzIiAvPgogIDwvYT4KPC9wPgoKIyMgQ29udHJpYnV0b3JzIFshW0NvbnRyaWJ1dG9yc11bY29udHJpYnV0b3JzLXNyY11dW2NvbnRyaWJ1dG9ycy1ocmVmXQoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRib2R5PgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3Rpam52YW5odWxsZS5iZSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81OTA0NjgxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTdGlqbiBWYW4gSHVsbGUiLz48YnIgLz48c3ViPjxiPlN0aWpuIFZhbiBIdWxsZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItbGFicy9rdWJiL2NvbW1pdHM/YXV0aG9yPXN0aWpudmFuaHVsbGUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9mb3NzdG9kb24ub3JnL0B4cGhlbnRvbSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MDk2ODY3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJXb3V0ZXIgUm9vemVsZWVyIi8+PGJyIC8+PHN1Yj48Yj5Xb3V0ZXIgUm9vemVsZWVyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1sYWJzL2t1YmIvY29tbWl0cz9hdXRob3I9eFBoZW50b20iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9hbHVjLmlvLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTUyMDAxNT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQWxmcmVkIi8+PGJyIC8+PHN1Yj48Yj5BbGZyZWQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rdWJiLWxhYnMva3ViYi9jb21taXRzP2F1dGhvcj1iNnB6ZXVzYmM1NHR2aHc1amdweXc4cHd6Mng2Z3MiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JhdmVjbGFzc2ljIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3NDM1Njg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IktpcmlsbCBBZ2FsYWtvdiIvPjxiciAvPjxzdWI+PGI+S2lyaWxsIEFnYWxha292PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1sYWJzL2t1YmIvY29tbWl0cz9hdXRob3I9cmF2ZWNsYXNzaWMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3dpY2t5Lm5pbGxpYS5tcyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMDkxMzkwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJOaWNrIFdpbGxpYW1zIi8+PGJyIC8+PHN1Yj48Yj5OaWNrIFdpbGxpYW1zPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1sYWJzL2t1YmIvY29tbWl0cz9hdXRob3I9V2lja3lOaWxsaWFtcyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaGVsdCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzMyMTEyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJoZWx0Ii8+PGJyIC8+PHN1Yj48Yj5oZWx0PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1sYWJzL2t1YmIvY29tbWl0cz9hdXRob3I9aGVsdCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vVGktd2ViZGV2Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ3ODU2NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iVmFzaWx5IE1pa2hheWxvdnNreSIvPjxiciAvPjxzdWI+PGI+VmFzaWx5IE1pa2hheWxvdnNreTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItbGFicy9rdWJiL2NvbW1pdHM/YXV0aG9yPVRpLXdlYmRldiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NoaXB0dXMiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM4MTY1NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQ2hhaW0gTGV2LUFyaSIvPjxiciAvPjxzdWI+PGI+Q2hhaW0gTGV2LUFyaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItbGFicy9rdWJiL2NvbW1pdHM/YXV0aG9yPWNoaXB0dXMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3Byb2plY3RzLnBhZm51dHkubmFtZSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjM1Njc5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJQYXZlbCBCZWxvdXNvdiIvPjxiciAvPjxzdWI+PGI+UGF2ZWwgQmVsb3Vzb3Y8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rdWJiLWxhYnMva3ViYi9jb21taXRzP2F1dGhvcj1wYWZudXR5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kbWl0cnktYmxhY2t3YXZlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU1MjY1NDM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRtaXRyeSBCZWxvdiIvPjxiciAvPjxzdWI+PGI+RG1pdHJ5IEJlbG92PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1sYWJzL2t1YmIvY29tbWl0cz9hdXRob3I9ZG1pdHJ5LWJsYWNrd2F2ZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWJ1cmdlbCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNDE0Nzg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFsZXggQnVyZ2VsIi8+PGJyIC8+PHN1Yj48Yj5BbGV4IEJ1cmdlbDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItbGFicy9rdWJiL2NvbW1pdHM/YXV0aG9yPWFidXJnZWwiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2RnYXJjaWFtdXJpYSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84MTQ0MzMzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEYW5pZWwgR2FyY2lhIi8+PGJyIC8+PHN1Yj48Yj5EYW5pZWwgR2FyY2lhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1sYWJzL2t1YmIvY29tbWl0cz9hdXRob3I9ZGdhcmNpYW11cmlhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93dXl1YW55aTEzNSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTc2MDg3MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0id3V5dWFueWkxMzUiLz48YnIgLz48c3ViPjxiPnd1eXVhbnlpMTM1PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1sYWJzL2t1YmIvY29tbWl0cz9hdXRob3I9d3V5dWFueWkxMzUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgoKPCEtLSBtYXJrZG93bmxpbnQtcmVzdG9yZSAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtZW5kIC0tPgoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6RU5EIC0tPgoKIyMgU3RhciBIaXN0b3J5Cgo8YSBocmVmPSJodHRwczovL3N0YXItaGlzdG9yeS5jb20vI2t1YmItbGFicy9rdWJiJkRhdGUiPgogIDxwaWN0dXJlPgogICAgPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJodHRwczovL2FwaS5zdGFyLWhpc3RvcnkuY29tL3N2Zz9yZXBvcz1rdWJiLWxhYnMva3ViYiZ0eXBlPURhdGUmdGhlbWU9ZGFyayIgLz4KICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vYXBpLnN0YXItaGlzdG9yeS5jb20vc3ZnP3JlcG9zPWt1YmItbGFicy9rdWJiJnR5cGU9RGF0ZSIgLz4KICAgIDxpbWcgYWx0PSJTdGFyIEhpc3RvcnkgQ2hhcnQiIHNyYz0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9a3ViYi1sYWJzL2t1YmImdHlwZT1EYXRlIiAvPgogIDwvcGljdHVyZT4KPC9hPgoKCjwhLS0gQmFkZ2VzIC0tPgoKW25wbS12ZXJzaW9uLXNyY106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGt1YmIvY29yZT9mbGF0JmNvbG9yQT0xODE4MUImY29sb3JCPWY1ODUxNwpbbnBtLXZlcnNpb24taHJlZl06IGh0dHBzOi8vbnBtanMuY29tL3BhY2thZ2UvQGt1YmIvY29yZQpbbnBtLWRvd25sb2Fkcy1zcmNdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS9Aa3ViYi9jb3JlP2ZsYXQmY29sb3JBPTE4MTgxQiZjb2xvckI9ZjU4NTE3CltucG0tZG93bmxvYWRzLWhyZWZdOiBodHRwczovL25wbWpzLmNvbS9wYWNrYWdlL0BrdWJiL2NvcmUKW2xpY2Vuc2Utc3JjXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9rdWJiLWxhYnMva3ViYi5zdmc/ZmxhdCZjb2xvckE9MTgxODFCJmNvbG9yQj1mNTg1MTcKW2xpY2Vuc2UtaHJlZl06IGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJiLWxhYnMva3ViYi9ibG9iL21haW4vTElDRU5TRQpbYnVpbGQtc3JjXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0dXMva3ViYi1sYWJzL2t1YmIvY2kueWFtbD9zdHlsZT1mbGF0JmNvbG9yQT0xODE4MUImY29sb3JCPWY1ODUxNwpbYnVpbGQtaHJlZl06IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BrdWJiL2NvcmUKW21pbmlmaWVkLXNyY106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYnVuZGxlcGhvYmlhL21pbi9Aa3ViYi9jb3JlP3N0eWxlPWZsYXQmY29sb3JBPTE4MTgxQiZjb2xvckI9ZjU4NTE3ClttaW5pZmllZC1ocmVmXTogaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGt1YmIvY29yZQpbY292ZXJhZ2Utc3JjXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2l0aHViL2t1YmItbGFicy9rdWJiP3N0eWxlPWZsYXQmY29sb3JBPTE4MTgxQiZjb2xvckI9ZjU4NTE3Cltjb3ZlcmFnZS1ocmVmXTogaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGt1YmIvY29yZQpbY29udHJpYnV0b3JzLXNyY106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2NvbnRyaWJ1dG9ycy9zdGlqbnZhbmh1bGxlL2t1YmI/c3R5bGU9ZmxhdCZjb2xvckE9MTgxODFCJmNvbG9yQj1mNTg1MTcmbGFiZWw9JTIwCltjb250cmlidXRvcnMtaHJlZl06ICNjb250cmlidXRvcnMtCltzcG9uc29ycy1zcmNdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zcG9uc29ycy9zdGlqbnZhbmh1bGxlP3N0eWxlPWZsYXQmY29sb3JBPTE4MTgxQiZjb2xvckI9ZjU4NTE3CltzcG9uc29ycy1ocmVmXTogaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3N0aWpudmFuaHVsbGUvCg== readmeEtag: '"d05be63293f67f04228f39adfa8d340810b7c5f5"' readmeLastModified: Sun, 01 Sep 2024 18:30:39 GMT repositoryId: 586543156 description: OpenAPI to TypeScript, React-Query, Zod and Axios. created: '2023-01-08T14:15:23Z' updated: '2024-09-05T21:05:16Z' language: TypeScript archived: false stars: 632 watchers: 4 forks: 46 owner: kubb-labs logo: https://avatars.githubusercontent.com/u/122118236?v=4 license: MIT repoEtag: '"1cb7f832ee61c344d96a939335147d4241959f27d8c8dddfb404eba8216742b5"' repoLastModified: Thu, 05 Sep 2024 21:05:16 GMT foundInMaster: true oldLocations: - https://github.com/kubb-project/kubb - source: openapi3 tags repository: https://github.com/matchtechnologies/tomograph v3: true id: b656fa0887abd5cc2460fcf686e1ee21 repositoryMetadata: base64Readme: >- IyBUb21vZ3JhcGggCgpOb3RlOiBUaGUgcHJvamVjdCBoYXMgYmVlbiBtb3ZlZCB0byBodHRwczovL2dpdGh1Yi5jb20vdHV3aWxvZi90b21vZ3JhcGgKCkNvbnZlcnQgQVBJIEJsdWVwcmludCwgU3dhZ2dlciBhbmQgT3BlbkFQSSB0byBtaW5pbWFsIHJvdXRlcyB3aXRoIEpTT04gU2NoZW1hLiBGb3IgZWFzZSBvZiB1c2UgYW5kIGNyZWF0aW9uIG9mIG5ldyB0b29scy4KCldpbGwgbG9vayBsaWtlCgogIGBgYGpzb24KICBbCiAgICB7CiAgICAgICJwYXRoIjogIi9zZXNzaW9ucyIsCiAgICAgICJtZXRob2QiOiAiUE9TVCIsCiAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICJyZXF1ZXN0cyI6IFt7CiAgICAgICAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgImxvZ2luIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgInBhc3N3b3JkIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgImNhcHRjaGEiOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICJsb2dpbiIsCiAgICAgICAgICAicGFzc3dvcmQiCiAgICAgICAgXQogICAgICB9XSwKICAgICAgInJlc3BvbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAic3RhdHVzIjogIjQwMSIsCiAgICAgICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgImJvZHkiOiB7fQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInN0YXR1cyI6ICI0MjkiLAogICAgICAgICAgImNvbnRlbnQtdHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICJib2R5Ijoge30KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJzdGF0dXMiOiAiMjAxIiwKICAgICAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAiYm9keSI6IHsKICAgICAgICAgICAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgImNvbmZpcm1hdGlvbiI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgImlkIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInR5cGUiOiB7CiAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAib3BlcmF0aW9uIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgImlkIiwKICAgICAgICAgICAgICAgICAgInR5cGUiLAogICAgICAgICAgICAgICAgICAib3BlcmF0aW9uIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgImNhcHRjaGEiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAiY2FwdGNoYV9kb2VzX25vdF9tYXRjaCI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogImJvb2xlYW4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdCiAgICB9CiAgXQogIGBgYAoKIyMgSW5zdGFsbGF0aW9uCgpUaGVuIGFkZCB0aGlzIGxpbmUgdG8geW91ciBhcHBsaWNhdGlvbidzIEdlbWZpbGU6CgpgYGBydWJ5CmdlbSAndG9tb2dyYXBoJwpgYGAKCkFmdGVyIHRoYXQgZXhlY3V0ZToKCmBgYGJhc2gKJCBidW5kbGUKYGBgCgpPciBpbnN0YWxsIHRoZSBnZW0gYnkgeW91cnNlbGY6CgpgYGBiYXNoCiQgZ2VtIGluc3RhbGwgdG9tb2dyYXBoCmBgYAoKIyMgVXNhZ2UKCiMjIyBJbiBjb2RlCgojIyMjIE9wZW5BUEkgMi4wCgpBbHNvIFN3YWdnZXIKCmBgYHJ1YnkKcmVxdWlyZSAndG9tb2dyYXBoJwoKdG9tb2dyYW0gPSBUb21vZ3JhcGg6OlRvbW9ncmFtLm5ldyhvcGVuYXBpMl9qc29uX3BhdGg6ICcvcGF0aC90by9kb2MuanNvbicpCmBgYAoKIyMjIyBPcGVuQVBJIDMuMAoKQWxzbyBPcGVuQVBJCgpgYGBydWJ5CnJlcXVpcmUgJ3RvbW9ncmFwaCcKCnRvbW9ncmFtID0gVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcob3BlbmFwaTNfeWFtbF9wYXRoOiAnL3BhdGgvdG8vZG9jLnlhbWwnKQpgYGAKCiMjIyMgQVBJIEJsdWVwcmludAoKRmlyc3QgeW91IG5lZWQgdG8gaW5zdGFsbCBbZHJhZnRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2FwaWFyeWlvL2RyYWZ0ZXIpLgpXb3JrcyBhZnRlciBjb252ZXJzaW9uIGZyb20gQVBJIEJsdWVwcmludCB0byBBUEkgRWxlbWVudHMgKGluIFlBTUwgZmlsZSkgd2l0aCBEcmFmdGVyLgoKVGhhdCBpcywgSSBtZWFuIHRoYXQgeW91IGZpcnN0IG5lZWQgdG8gZG8gdGhpcwoKYGBgYmFzaApkcmFmdGVyIGRvYy5hcGliIC1vIGRvYy55YW1sCmBgYAoKYW5kIHRoZW4KCmBgYHJ1YnkKcmVxdWlyZSAndG9tb2dyYXBoJwoKdG9tb2dyYW0gPSBUb21vZ3JhcGg6OlRvbW9ncmFtLm5ldyhkcmFmdGVyX3lhbWxfcGF0aDogJy9wYXRoL3RvL2RvYy55YW1sJykKYGBgCgojIyMjIFRvbW9ncmFwaAoKVG8gdXNlIGFkZGl0aW9uYWwgZmVhdHVyZXMgb2YgdGhlIHByZS1jb252ZXJ0ZWQKCmBgYHJ1YnkKcmVxdWlyZSAndG9tb2dyYXBoJwoKdG9tb2dyYW0gPSBUb21vZ3JhcGg6OlRvbW9ncmFtLm5ldyh0b21vZ3JhbV9qc29uX3BhdGg6ICcvcGF0aC90by9kb2MuanNvbicpCmBgYAoKIyMjIyBwcmVmaXgKRGVmYXVsdDogYCcnYAoKWW91IGNhbiBzcGVjaWZ5IEFQSSBwcmVmaXggYW5kIHBhdGggdG8gdGhlIHNwZWMgdXNpbmcgb25lIG9mIHRoZSBwb3NzaWJsZSBmb3JtYXRzOgoKYGBgcnVieQpUb21vZ3JhcGg6OlRvbW9ncmFtLm5ldyhwcmVmaXg6ICcvYXBpL3YyJywgZHJhZnRlcl95YW1sX3BhdGg6ICcvcGF0aC90by9kb2MueWFtbCcpCmBgYAoKYGBgcnVieQpUb21vZ3JhcGg6OlRvbW9ncmFtLm5ldyhwcmVmaXg6ICcvYXBpL3YyJywgdG9tb2dyYW1fanNvbl9wYXRoOiAnL3BhdGgvdG8vZG9jLmpzb24nKQpgYGAKCiMjIyMgdG9fanNvbgpVc2UgYHRvX2pzb25gIGZvciBjb252ZXJ0aW5nIHRvIEpTT04sIGV4YW1wbGUgZnJvbSBBUEkgQmx1ZXByaW50OgoKYGBgcnVieQp0b21vZ3JhbS50b19qc29uCmBgYAoKPGRldGFpbHM+CiAgPHN1bW1hcnk+RXhhbXBsZSBpbnB1dDwvc3VtbWFyeT4KCiAgYGBgYXBpYgogIEZPUk1BVDogMUEKICBIT1NUOiBodHRwOi8vdGVzdC5sb2NhbAogIAogICMgcHJvamVjdAogIAogICMgR3JvdXAgcHJvamVjdAogIAogIFByb2plY3QKICAKICAjIyBBdXRoZW50aWNhdGlvbiBbL3Nlc3Npb25zXQogIAogICMjIyBTaWduIEluIFtQT1NUXQogIAogICsgUmVxdWVzdCAoYXBwbGljYXRpb24vanNvbikKICAKICAgICAgKyBBdHRyaWJ1dGVzCiAgICAgICArIGxvZ2luIChzdHJpbmcsIHJlcXVpcmVkKQogICAgICAgKyBwYXNzd29yZCAoc3RyaW5nLCByZXF1aXJlZCkKICAgICAgICsgY2FwdGNoYSAoc3RyaW5nLCBvcHRpb25hbCkKICAKICArIFJlc3BvbnNlIDQwMSAoYXBwbGljYXRpb24vanNvbikKICAKICArIFJlc3BvbnNlIDQyOSAoYXBwbGljYXRpb24vanNvbikKICAKICArIFJlc3BvbnNlIDIwMSAoYXBwbGljYXRpb24vanNvbikKICAKICAgICAgKyBBdHRyaWJ1dGVzCiAgICAgICArIGNvbmZpcm1hdGlvbiAoQ29uZmlybWF0aW9uLCBvcHRpb25hbCkKICAgICAgICsgY2FwdGNoYSAoc3RyaW5nLCBvcHRpb25hbCkKICAgICAgICsgY2FwdGNoYV9kb2VzX25vdF9tYXRjaCAoYm9vbGVhbiwgb3B0aW9uYWwpCiAgCiAgCiAgIyBEYXRhIFN0cnVjdHVyZXMKICAKICAjIyBDb25maXJtYXRpb24gKG9iamVjdCkKICAgICsgaWQgKHN0cmluZywgcmVxdWlyZWQpCiAgICArIHR5cGUgKHN0cmluZywgcmVxdWlyZWQpCiAgICArIG9wZXJhdGlvbiAoc3RyaW5nLCByZXF1aXJlZCkKICBgYGAKPC9kZXRhaWxzPgoKPGRldGFpbHM+CiAgPHN1bW1hcnk+RXhhbXBsZSBvdXRwdXQ8L3N1bW1hcnk+CgogIGBgYGpzb24KICBbCiAgICB7CiAgICAgICJwYXRoIjogIi9zZXNzaW9ucyIsCiAgICAgICJtZXRob2QiOiAiUE9TVCIsCiAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICJyZXF1ZXN0cyI6IFt7CiAgICAgICAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgImxvZ2luIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgInBhc3N3b3JkIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgImNhcHRjaGEiOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICJsb2dpbiIsCiAgICAgICAgICAicGFzc3dvcmQiCiAgICAgICAgXQogICAgICB9XSwKICAgICAgInJlc3BvbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAic3RhdHVzIjogIjQwMSIsCiAgICAgICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgImJvZHkiOiB7fQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInN0YXR1cyI6ICI0MjkiLAogICAgICAgICAgImNvbnRlbnQtdHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICJib2R5Ijoge30KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJzdGF0dXMiOiAiMjAxIiwKICAgICAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAiYm9keSI6IHsKICAgICAgICAgICAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgImNvbmZpcm1hdGlvbiI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgImlkIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInR5cGUiOiB7CiAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAib3BlcmF0aW9uIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgImlkIiwKICAgICAgICAgICAgICAgICAgInR5cGUiLAogICAgICAgICAgICAgICAgICAib3BlcmF0aW9uIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgImNhcHRjaGEiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAiY2FwdGNoYV9kb2VzX25vdF9tYXRjaCI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogImJvb2xlYW4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdCiAgICB9CiAgXQogIGBgYAo8L2RldGFpbHM+IAoKIyMjIyB0b19hCmBgYHJ1YnkKdG9tb2dyYW0udG9fYQpgYGAKCiMjIyMgZmluZF9yZXF1ZXN0CmBgYHJ1YnkKcmVxdWVzdCA9IHRvbW9ncmFtLmZpbmRfcmVxdWVzdChtZXRob2Q6ICdHRVQnLCBwYXRoOiAnL3N0YXR1cy8xP3F3ZT1ydHknKQpgYGAKCiMjIyMgZmluZF9yZXF1ZXN0X3dpdGhfY29udGVudF90eXBlCmBgYHJ1YnkKcmVxdWVzdCA9IHRvbW9ncmFtLmZpbmRfcmVxdWVzdF93aXRoX2NvbnRlbnRfdHlwZShtZXRob2Q6ICdHRVQnLCBwYXRoOiAnL3N0YXR1cy8xP3F3ZT1ydHknLCBjb250ZW50X3R5cGU6ICdhcHBsaWNhdGlvbi9qc29uJykKYGBgCgojIyMjIGBmaW5kX3Jlc3BvbnNlc2AKYGBgcnVieQpyZXNwb25zZXMgPSByZXF1ZXN0LmZpbmRfcmVzcG9uc2VzKHN0YXR1czogJzIwMCcpCmBgYAoKIyMjIyBwcmVmaXhfbWF0Y2g/ClRoaXMgbWF5IGJlIHVzZWZ1bCBpZiB5b3Ugc3BlY2lmeSBhIHByZWZpeC4KCmBgYHJ1YnkKdG9tb2dyYW0ucHJlZml4X21hdGNoPygnaHR0cDovL2xvY2FsL2FwaS92Mi91c2VycycpCmBgYAoKIyMjIyB0b19yZXNvdXJjZXMKTWFwcyByZXNvdXJjZXMgZm9yIEFQSSBCbHVlcHJpbnQgd2l0aCBwb3NzaWJsZSByZXF1ZXN0cy4KCkV4YW1wbGUgb3V0cHV0OgoKYGBgcnVieQp7CiAgJy9zZXNzaW9ucycgPT4gWydQT1NUIC9zZXNzaW9ucyddCn0KYGBgCgojIyMgQ29tbWFuZCBsaW5lIHRvb2wKCkNMSSBhbGxvd3MgeW91IHRvIGNvbnZlcnQgZmlsZXMgZnJvbSBBUEkgQmx1ZXByaW50IChBUEkgRWxlbWVudHMpLCBTd2FnZ2VyIGFuZCBPcGVuQVBJIHRvIEpTT04gU2NoZW1hLgoKUnVuIENMSSB3aXRoIGAtaGAgdG8gZ2V0IGRldGFpbGVkIGhlbHA6CgpgYGBiYXNoCnRvbW9ncmFwaCAtaApgYGAKClRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgdmVyc2lvbiB1c2UgdGhlIGAtZGAgZmxhZzoKCiMjIyMgT3BlbkFQSSAyLjAKYGBgYmFzaAp0b21vZ3JhcGggLWQgb3BlbmFwaTIgb3BlbmFwaTIuanNvbiB0b21vZ3JhbS5qc29uCmBgYAoKIyMjIyBPcGVuQVBJIDMuMApgYGBiYXNoCnRvbW9ncmFwaCAtZCBvcGVuYXBpMyBvcGVuYXBpMy55YW1sIGRvYy5qc29uCmBgYAoKIyMjIyBBUEkgQmx1ZXByaW50CmBgYGJhc2gKdG9tb2dyYXBoIC1kIDQgYXBpZWxlbWV0bnMueWFtbCBkb2MuanNvbgpgYGAKCiMjIyMgZXhjbHVkZS1kZXNjcmlwdGlvbgoKRXhjbHVkZSAiZGVzY3JpcHRpb24iIGtleXMgZnJvbSBqc29uLXNjaGVtYXMuCgpgYGBiYXNoCnRvbW9ncmFwaCAtZCA0IGFwaWVsZW1ldG5zLnlhbWwgZG9jLmpzb24gLS1leGNsdWRlLWRlc2NyaXB0aW9uCmBgYAoKIyMjIyBzcGxpdAoKU3BsaXQgb3V0cHV0IGludG8gZmlsZXMgYnkgbWV0aG9kLiBPdXRwdXQgaW4gZGlyIHBhdGguCgpgYGBiYXNoCnRvbW9ncmFwaCAtZCA0IC0tc3BsaXQgYXBpZWxlbWV0bnMueWFtbCBqc29ucy8KYGBgCgojIyBMaWNlbnNlCgpUaGUgZ2VtIGlzIGF2YWlsYWJsZSBhcyBvcGVuIHNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtNSVQgTGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuCgpbIVtTcG9uc29yZWQgYnkgRnVuQm94XShodHRwczovL2Z1bmJveC5ydS9iYWRnZXMvc3BvbnNvcmVkX2J5X2Z1bmJveF9jZW50ZXJlZC5zdmcpXShodHRwczovL2Z1bmJveC5ydSkK readmeEtag: '"7c15795b959498fe0847c9ed366f5a7c4aa3b6e5"' readmeLastModified: Wed, 03 Apr 2024 19:44:07 GMT repositoryId: 780566490 description: >- Convert API Blueprint, Swagger and OpenAPI to JSON Schema and search through it created: '2024-04-01T18:37:02Z' updated: '2024-04-03T19:44:41Z' language: Ruby archived: true stars: 0 watchers: 0 forks: 0 owner: matchtechnologies logo: https://avatars.githubusercontent.com/u/147186495?v=4 license: MIT repoEtag: '"aecf98423f09ad7eb392669482a069c8956b0fef71a705b2cc8ec7c0d8a5bd2e"' repoLastModified: Wed, 03 Apr 2024 19:44:41 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/accelbyte/extend-codegen-cli v3: true id: 9c1ac73738764bd74303bc666161d687 repositoryMetadata: base64Readme: >- IyBFeHRlbmQgQ29kZWdlbiBDTEkKCkEgdG9vbCBmb3IgZ2VuZXJhdGluZyBhbiBBY2NlbEJ5dGUgU0RLIG1vZHVsZSBvciBwbHVnaW4gZm9yIGN1c3RvbSBzZXJ2aWNlcywKc3VjaCBhcyBzZXJ2aWNlcyBjcmVhdGVkIHVzaW5nIEV4dGVuZCBTZXJ2aWNlIEV4dGVuc2lvbi4KCjpleGNsYW1hdGlvbjogKipUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgdGhlIGNvZGVnZW4gdGVtcGxhdGUgcGFjayB6aXAgCnJlbGVhc2VzIG9ubHkuKioKCiMjIE92ZXJ2aWV3CgpUaGUgRXh0ZW5kIENvZGVnZW4gY29uc2lzdHMgb2YgYSBDTEkgYXBwIGFuZCBzb21lIHRlbXBsYXRlIHBhY2tzLiBUaGUgQ0xJIGFwcCBpcwpyZWxlYXNlZCBhcyBjb250YWluZXIgaW1hZ2VzIGluIApbRG9ja2VyIEh1Yl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2FjY2VsYnl0ZS9leHRlbmQtY29kZWdlbi1jbGkpIHdoaWxlIAp0aGUgdGVtcGxhdGUgcGFjayB6aXAgZmlsZXMgYXJlIHJlbGVhc2VkIApbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0FjY2VsQnl0ZS9leHRlbmQtY29kZWdlbi1jbGkvcmVsZWFzZXMpIAppbiB0aGlzIHJlcG9zaXRvcnkuCgpBIHRlbXBsYXRlIHBhY2sgY29udGFpbnMgYSBgTWFrZWZpbGVgIGFuZCBgSmluamFgIHRlbXBsYXRlIGZpbGVzLiBXaGVuIHRoZQpgTWFrZWZpbGVgIGNvbW1hbmQgaXMgaW52b2tlZCwgdGhlIEV4dGVuZCBDb2RlZ2VuIENMSSBhcHAgaXMgZXhlY3V0ZWQgd2l0aCB0aGUKYEppbmphYCB0ZW1wbGF0ZSBmaWxlcyBhbmQgYSBnaXZlbiBjdXN0b20gc2VydmljZSBPcGVuQVBJIDIuMCBKU09OIGZpbGUgdG8gCmdlbmVyYXRlIGNvZGUuIFRoZSBgTWFrZWZpbGVgIGFsc28gZmV0Y2hlcyB0aGUgc3BlY2lmaWVkIENMSSBjb250YWluZXIgaW1hZ2UKdmVyc2lvbiBpZiBpdCBpcyBub3QgYXZhaWxhYmxlIGxvY2FsbHkgeWV0LgoKIyMgR2VuZXJhbCBVc2FnZQoKMS4gRG93bmxvYWQgdGhlIHRlbXBsYXRlIHBhY2sgemlwIGZvciB0aGUgY29ycmVzcG9uZGluZyBBY2NlbEJ5dGUgU0RLIG1vZHVsZSBvcgpwbHVnaW4gW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BY2NlbEJ5dGUvZXh0ZW5kLWNvZGVnZW4tY2xpL3JlbGVhc2VzKSAKCjIuIFVuemlwIHRoZSBkb3dubG9hZGVkIHRlbXBsYXRlIHBhY2sgemlwIGZpbGUgYW5kIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb24gaW4gCnRoZSBSRUFETUUubWQgaW5zaWRlLgoKICAg readmeEtag: '"54ff72c743cca2d217e202169a710e798ad14dc3"' readmeLastModified: Wed, 29 May 2024 03:38:44 GMT repositoryId: 684878324 description: AccelByte Extend Code Generator created: '2023-08-30T03:20:42Z' updated: '2024-05-29T03:38:50Z' language: null archived: false stars: 0 watchers: 4 forks: 0 owner: AccelByte logo: https://avatars.githubusercontent.com/u/25496952?v=4 repoEtag: '"1fd333abd170264e3ac8de42b3ff9b103d789dcd6f0d380d5e47db258b92d8a2"' repoLastModified: Wed, 29 May 2024 03:38:50 GMT category: - Code Generators - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/apicat/apicat v3: true id: c3406002d5ded68b23a583a8173c775e repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0iY2VudGVyIj4KICAgIDxpbWcgYWx0PSJBcGlDYXQiIHdpZHRoPSIzNTBweCIgc3JjPSJodHRwczovL2Nkbi5hcGljYXQubmV0L3VwbG9hZHMvMmQwMmZmMmY2YjE5ZDNkNmQzZjEzNGMxODcyNDg0YWEucG5nIi8+CjwvZGl2PgoKPHAgYWxpZ249ImNlbnRlciI+CiAgRW5nbGlzaCB8CiAgPGEgaHJlZj0iLi9SRUFETUVfQ04ubWQiPueugOS9k+S4reaWhzwvYT4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL2FwaWNhdC5haSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgIDxpbWcgYWx0PSJTdGF0aWMgQmFkZ2UiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9haS1hcGljYXQ/bG9nbz1haSZsb2dvQ29sb3I9cmVkJmxhYmVsPWFwaWNhdCZsYWJlbENvbG9yPTQ4OTRGRiZjb2xvcj1FQUVDRjAiPgogICAgPC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmdnLzZVRkJHaE51IiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgPGltZyBhbHQ9IlN0YXRpYyBCYWRnZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NoYXQtRGlzY29yZC00RTVBRjA/bG9nbz1EaXNjb3JkIj4KICAgIDwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hcGljYXQvYXBpY2F0L2Jsb2IvbWFpbi9MSUNFTlNFIj4KICAgICAgICA8aW1nIGFsdD0iU3RhdGljIEJhZGdlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtZ3JlZW4iPgogICAgPC9hPgo8L3A+CgpBcGlDYXQgaXMgYW4gQVBJIGRvY3VtZW50YXRpb24gbWFuYWdlbWVudCB0b29sIHRoYXQgaXMgZnVsbHkgY29tcGF0aWJsZSB3aXRoIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uIFdpdGggQXBpQ2F0LCB5b3UgY2FuIGZyZWVseSBhbmQgZWZmaWNpZW50bHkgbWFuYWdlIHlvdXIgQVBJcy4gSXQgaW50ZWdyYXRlcyB0aGUgY2FwYWJpbGl0aWVzIG9mIExMTSwgd2hpY2ggbm90IG9ubHkgaGVscHMgeW91IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgQVBJIGRvY3VtZW50YXRpb24gYW5kIGRhdGEgbW9kZWxzIGJ1dCBhbHNvIGNyZWF0ZXMgY29ycmVzcG9uZGluZyB0ZXN0IGNhc2VzIGJhc2VkIG9uIHRoZSBBUEkgY29udGVudC4gVXNpbmcgQXBpQ2F0LCB5b3UgY2FuIHF1aWNrbHkgYWNjb21wbGlzaCBhbnl0aGluZyBvdXRzaWRlIG9mIGNvZGluZywgYWxsb3dpbmcgeW91IHRvIGZvY3VzIHlvdXIgZW5lcmd5IG9uIHRoZSBjb2RlIGl0c2VsZi4KCiMjIFVzaW5nIG91ciBDbG91ZCBTZXJ2aWNlcwoKWW91IGNhbiB0cnkgb3V0IFtBcGlDYXRdKGh0dHBzOi8vYXBpY2F0LmFpKSBub3cuIEl0IHByb3ZpZGVzIGFsbCB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBzZWxmLWRlcGxveWVkIHZlcnNpb24uCgojIyBMb2NhbCBJbnN0YWxsYXRpb24KClRoZSBlYXNpZXN0IHdheSB0byBzdGFydCB0aGUgQXBpQ2F0IGlzIHRvIHJ1biBvdXIgZG9ja2VyLWNvbXBvc2UueWFtbCBmaWxlLiBCZWZvcmUgcnVubmluZyB0aGUgaW5zdGFsbGF0aW9uIGNvbW1hbmQsIG1ha2Ugc3VyZSB0aGF0IFtEb2NrZXJdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1kb2NrZXIvKSBhbmQgW0RvY2tlciBDb21wb3NlXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9jb21wb3NlL2luc3RhbGwvKSBhcmUgaW5zdGFsbGVkIG9uIHlvdXIgbWFjaGluZToKCmBgYGJhc2gKZG9ja2VyIGNvbXBvc2UgdXAgLWQKYGBgCgpBZnRlciBydW5uaW5nLCB5b3UgY2FuIHZpc2l0IFtodHRwOi8vbG9jYWxob3N0OjgwMDBdKGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCkgb24geW91ciBicm93c2VyIHRvIHN0YXJ0IHVzaW5nIEFwaUNhdC4KCklmIHlvdSBuZWVkIHRvIGN1c3RvbWl6ZSB0aGUgY29uZmlndXJhdGlvbiwgcGxlYXNlIHJlZmVyIHRvIG91ciBbZG9ja2VyLWNvbXBvc2UueW1sXSguL2RvY2tlci1jb21wb3NlLnlhbWwpIGZpbGUgYW5kIG1hbnVhbGx5IHNldCB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbi4gQWZ0ZXIgbWFraW5nIHRoZSBjaGFuZ2VzLCBwbGVhc2UgcnVuIGBkb2NrZXItY29tcG9zZSB1cCAtZGAgYWdhaW4uCgojIyBDb21tdW5pdHkKCklmIHlvdSBoYXZlIGFueXRoaW5nIHlvdSB3b3VsZCBsaWtlIHRvIGRpc2N1c3Mgd2l0aCB1cywgcGxlYXNlIGpvaW4gb3VyIGNvbW11bml0eS4KCi0gW0Rpc2NvcmRdKGh0dHBzOi8vZGlzY29yZC5nZy82VUZCR2hOdSkKCiMjIExpY2Vuc2UKCltNSVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGljYXQvYXBpY2F0L2Jsb2IvbWFpbi9MSUNFTlNFKQ== readmeEtag: '"b67461a0437fd05e7fb32d296c9409ded8ecb359"' readmeLastModified: Thu, 27 Jun 2024 08:43:10 GMT repositoryId: 488860709 description: >- An efficient API documentation management tool that fully adheres to the OpenAPI specification and incorporates advanced LLM technology. This tool can automate the generation of API documentation, data models, and test cases, greatly enhancing development efficiency and documentation quality. created: '2022-05-05T06:44:36Z' updated: '2024-08-18T02:19:38Z' language: Go archived: false stars: 263 watchers: 7 forks: 30 owner: apicat logo: https://avatars.githubusercontent.com/u/64158984?v=4 repoEtag: '"7055d794e16563e22bca0622d4a657786625ccf24f66f43496937e7ceb8aac83"' repoLastModified: Sun, 18 Aug 2024 02:19:38 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/fastapi/full-stack-fastapi-template v3: true repositoryMetadata: base64Readme: >- IyBGdWxsIFN0YWNrIEZhc3RBUEkgVGVtcGxhdGUKCjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0YXBpL2Z1bGwtc3RhY2stZmFzdGFwaS10ZW1wbGF0ZS9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBVGVzdCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUvd29ya2Zsb3dzL1Rlc3QvYmFkZ2Uuc3ZnIiBhbHQ9IlRlc3QiPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9jb3ZlcmFnZS1iYWRnZS5zYW11ZWxjb2x2aW4ud29ya2Vycy5kZXYvcmVkaXJlY3QvZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9jb3ZlcmFnZS1iYWRnZS5zYW11ZWxjb2x2aW4ud29ya2Vycy5kZXYvZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUuc3ZnIiBhbHQ9IkNvdmVyYWdlIj48L2E+CgojIyBUZWNobm9sb2d5IFN0YWNrIGFuZCBGZWF0dXJlcwoKLSDimqEgWyoqRmFzdEFQSSoqXShodHRwczovL2Zhc3RhcGkudGlhbmdvbG8uY29tKSBmb3IgdGhlIFB5dGhvbiBiYWNrZW5kIEFQSS4KICAgIC0g8J+nsCBbU1FMTW9kZWxdKGh0dHBzOi8vc3FsbW9kZWwudGlhbmdvbG8uY29tKSBmb3IgdGhlIFB5dGhvbiBTUUwgZGF0YWJhc2UgaW50ZXJhY3Rpb25zIChPUk0pLgogICAgLSDwn5SNIFtQeWRhbnRpY10oaHR0cHM6Ly9kb2NzLnB5ZGFudGljLmRldiksIHVzZWQgYnkgRmFzdEFQSSwgZm9yIHRoZSBkYXRhIHZhbGlkYXRpb24gYW5kIHNldHRpbmdzIG1hbmFnZW1lbnQuCiAgICAtIPCfkr4gW1Bvc3RncmVTUUxdKGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnKSBhcyB0aGUgU1FMIGRhdGFiYXNlLgotIPCfmoAgW1JlYWN0XShodHRwczovL3JlYWN0LmRldikgZm9yIHRoZSBmcm9udGVuZC4KICAgIC0g8J+SgyBVc2luZyBUeXBlU2NyaXB0LCBob29rcywgVml0ZSwgYW5kIG90aGVyIHBhcnRzIG9mIGEgbW9kZXJuIGZyb250ZW5kIHN0YWNrLgogICAgLSDwn46oIFtDaGFrcmEgVUldKGh0dHBzOi8vY2hha3JhLXVpLmNvbSkgZm9yIHRoZSBmcm9udGVuZCBjb21wb25lbnRzLgogICAgLSDwn6SWIEFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb250ZW5kIGNsaWVudC4KICAgIC0g8J+nqiBbUGxheXdyaWdodF0oaHR0cHM6Ly9wbGF5d3JpZ2h0LmRldikgZm9yIEVuZC10by1FbmQgdGVzdGluZy4KICAgIC0g8J+mhyBEYXJrIG1vZGUgc3VwcG9ydC4KLSDwn5CLIFtEb2NrZXIgQ29tcG9zZV0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbSkgZm9yIGRldmVsb3BtZW50IGFuZCBwcm9kdWN0aW9uLgotIPCflJIgU2VjdXJlIHBhc3N3b3JkIGhhc2hpbmcgYnkgZGVmYXVsdC4KLSDwn5SRIEpXVCAoSlNPTiBXZWIgVG9rZW4pIGF1dGhlbnRpY2F0aW9uLgotIPCfk6sgRW1haWwgYmFzZWQgcGFzc3dvcmQgcmVjb3ZlcnkuCi0g4pyFIFRlc3RzIHdpdGggW1B5dGVzdF0oaHR0cHM6Ly9weXRlc3Qub3JnKS4KLSDwn5OeIFtUcmFlZmlrXShodHRwczovL3RyYWVmaWsuaW8pIGFzIGEgcmV2ZXJzZSBwcm94eSAvIGxvYWQgYmFsYW5jZXIuCi0g8J+aoiBEZXBsb3ltZW50IGluc3RydWN0aW9ucyB1c2luZyBEb2NrZXIgQ29tcG9zZSwgaW5jbHVkaW5nIGhvdyB0byBzZXQgdXAgYSBmcm9udGVuZCBUcmFlZmlrIHByb3h5IHRvIGhhbmRsZSBhdXRvbWF0aWMgSFRUUFMgY2VydGlmaWNhdGVzLgotIPCfj60gQ0kgKGNvbnRpbnVvdXMgaW50ZWdyYXRpb24pIGFuZCBDRCAoY29udGludW91cyBkZXBsb3ltZW50KSBiYXNlZCBvbiBHaXRIdWIgQWN0aW9ucy4KCiMjIyBEYXNoYm9hcmQgTG9naW4KClshW0FQSSBkb2NzXShpbWcvbG9naW4ucG5nKV0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RhcGkvZnVsbC1zdGFjay1mYXN0YXBpLXRlbXBsYXRlKQoKIyMjIERhc2hib2FyZCAtIEFkbWluCgpbIVtBUEkgZG9jc10oaW1nL2Rhc2hib2FyZC5wbmcpXShodHRwczovL2dpdGh1Yi5jb20vZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUpCgojIyMgRGFzaGJvYXJkIC0gQ3JlYXRlIFVzZXIKClshW0FQSSBkb2NzXShpbWcvZGFzaGJvYXJkLWNyZWF0ZS5wbmcpXShodHRwczovL2dpdGh1Yi5jb20vZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUpCgojIyMgRGFzaGJvYXJkIC0gSXRlbXMKClshW0FQSSBkb2NzXShpbWcvZGFzaGJvYXJkLWl0ZW1zLnBuZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0YXBpL2Z1bGwtc3RhY2stZmFzdGFwaS10ZW1wbGF0ZSkKCiMjIyBEYXNoYm9hcmQgLSBVc2VyIFNldHRpbmdzCgpbIVtBUEkgZG9jc10oaW1nL2Rhc2hib2FyZC11c2VyLXNldHRpbmdzLnBuZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0YXBpL2Z1bGwtc3RhY2stZmFzdGFwaS10ZW1wbGF0ZSkKCiMjIyBEYXNoYm9hcmQgLSBEYXJrIE1vZGUKClshW0FQSSBkb2NzXShpbWcvZGFzaGJvYXJkLWRhcmsucG5nKV0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RhcGkvZnVsbC1zdGFjay1mYXN0YXBpLXRlbXBsYXRlKQoKIyMjIEludGVyYWN0aXZlIEFQSSBEb2N1bWVudGF0aW9uCgpbIVtBUEkgZG9jc10oaW1nL2RvY3MucG5nKV0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RhcGkvZnVsbC1zdGFjay1mYXN0YXBpLXRlbXBsYXRlKQoKIyMgSG93IFRvIFVzZSBJdAoKWW91IGNhbiAqKmp1c3QgZm9yayBvciBjbG9uZSoqIHRoaXMgcmVwb3NpdG9yeSBhbmQgdXNlIGl0IGFzIGlzLgoK4pyoIEl0IGp1c3Qgd29ya3MuIOKcqAoKIyMjIEhvdyB0byBVc2UgYSBQcml2YXRlIFJlcG9zaXRvcnkKCklmIHlvdSB3YW50IHRvIGhhdmUgYSBwcml2YXRlIHJlcG9zaXRvcnksIEdpdEh1YiB3b24ndCBhbGxvdyB5b3UgdG8gc2ltcGx5IGZvcmsgaXQgYXMgaXQgZG9lc24ndCBhbGxvdyBjaGFuZ2luZyB0aGUgdmlzaWJpbGl0eSBvZiBmb3Jrcy4KCkJ1dCB5b3UgY2FuIGRvIHRoZSBmb2xsb3dpbmc6CgotIENyZWF0ZSBhIG5ldyBHaXRIdWIgcmVwbywgZm9yIGV4YW1wbGUgYG15LWZ1bGwtc3RhY2tgLgotIENsb25lIHRoaXMgcmVwb3NpdG9yeSBtYW51YWxseSwgc2V0IHRoZSBuYW1lIHdpdGggdGhlIG5hbWUgb2YgdGhlIHByb2plY3QgeW91IHdhbnQgdG8gdXNlLCBmb3IgZXhhbXBsZSBgbXktZnVsbC1zdGFja2A6CgpgYGBiYXNoCmdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTpmYXN0YXBpL2Z1bGwtc3RhY2stZmFzdGFwaS10ZW1wbGF0ZS5naXQgbXktZnVsbC1zdGFjawpgYGAKCi0gRW50ZXIgaW50byB0aGUgbmV3IGRpcmVjdG9yeToKCmBgYGJhc2gKY2QgbXktZnVsbC1zdGFjawpgYGAKCi0gU2V0IHRoZSBuZXcgb3JpZ2luIHRvIHlvdXIgbmV3IHJlcG9zaXRvcnksIGNvcHkgaXQgZnJvbSB0aGUgR2l0SHViIGludGVyZmFjZSwgZm9yIGV4YW1wbGU6CgpgYGBiYXNoCmdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gZ2l0QGdpdGh1Yi5jb206b2N0b2NhdC9teS1mdWxsLXN0YWNrLmdpdApgYGAKCi0gQWRkIHRoaXMgcmVwbyBhcyBhbm90aGVyICJyZW1vdGUiIHRvIGFsbG93IHlvdSB0byBnZXQgdXBkYXRlcyBsYXRlcjoKCmBgYGJhc2gKZ2l0IHJlbW90ZSBhZGQgdXBzdHJlYW0gZ2l0QGdpdGh1Yi5jb206ZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUuZ2l0CmBgYAoKLSBQdXNoIHRoZSBjb2RlIHRvIHlvdXIgbmV3IHJlcG9zaXRvcnk6CgpgYGBiYXNoCmdpdCBwdXNoIC11IG9yaWdpbiBtYXN0ZXIKYGBgCgojIyMgVXBkYXRlIEZyb20gdGhlIE9yaWdpbmFsIFRlbXBsYXRlCgpBZnRlciBjbG9uaW5nIHRoZSByZXBvc2l0b3J5LCBhbmQgYWZ0ZXIgZG9pbmcgY2hhbmdlcywgeW91IG1pZ2h0IHdhbnQgdG8gZ2V0IHRoZSBsYXRlc3QgY2hhbmdlcyBmcm9tIHRoaXMgb3JpZ2luYWwgdGVtcGxhdGUuCgotIE1ha2Ugc3VyZSB5b3UgYWRkZWQgdGhlIG9yaWdpbmFsIHJlcG9zaXRvcnkgYXMgYSByZW1vdGUsIHlvdSBjYW4gY2hlY2sgaXQgd2l0aDoKCmBgYGJhc2gKZ2l0IHJlbW90ZSAtdgoKb3JpZ2luICAgIGdpdEBnaXRodWIuY29tOm9jdG9jYXQvbXktZnVsbC1zdGFjay5naXQgKGZldGNoKQpvcmlnaW4gICAgZ2l0QGdpdGh1Yi5jb206b2N0b2NhdC9teS1mdWxsLXN0YWNrLmdpdCAocHVzaCkKdXBzdHJlYW0gICAgZ2l0QGdpdGh1Yi5jb206ZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUuZ2l0IChmZXRjaCkKdXBzdHJlYW0gICAgZ2l0QGdpdGh1Yi5jb206ZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUuZ2l0IChwdXNoKQpgYGAKCi0gUHVsbCB0aGUgbGF0ZXN0IGNoYW5nZXMgd2l0aG91dCBtZXJnaW5nOgoKYGBgYmFzaApnaXQgcHVsbCAtLW5vLWNvbW1pdCB1cHN0cmVhbSBtYXN0ZXIKYGBgCgpUaGlzIHdpbGwgZG93bmxvYWQgdGhlIGxhdGVzdCBjaGFuZ2VzIGZyb20gdGhpcyB0ZW1wbGF0ZSB3aXRob3V0IGNvbW1pdHRpbmcgdGhlbSwgdGhhdCB3YXkgeW91IGNhbiBjaGVjayBldmVyeXRoaW5nIGlzIHJpZ2h0IGJlZm9yZSBjb21taXR0aW5nLgoKLSBJZiB0aGVyZSBhcmUgY29uZmxpY3RzLCBzb2x2ZSB0aGVtIGluIHlvdXIgZWRpdG9yLgoKLSBPbmNlIHlvdSBhcmUgZG9uZSwgY29tbWl0IHRoZSBjaGFuZ2VzOgoKYGBgYmFzaApnaXQgbWVyZ2UgLS1jb250aW51ZQpgYGAKCiMjIyBDb25maWd1cmUKCllvdSBjYW4gdGhlbiB1cGRhdGUgY29uZmlncyBpbiB0aGUgYC5lbnZgIGZpbGVzIHRvIGN1c3RvbWl6ZSB5b3VyIGNvbmZpZ3VyYXRpb25zLgoKQmVmb3JlIGRlcGxveWluZyBpdCwgbWFrZSBzdXJlIHlvdSBjaGFuZ2UgYXQgbGVhc3QgdGhlIHZhbHVlcyBmb3I6CgotIGBTRUNSRVRfS0VZYAotIGBGSVJTVF9TVVBFUlVTRVJfUEFTU1dPUkRgCi0gYFBPU1RHUkVTX1BBU1NXT1JEYAoKWW91IGNhbiAoYW5kIHNob3VsZCkgcGFzcyB0aGVzZSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBzZWNyZXRzLgoKUmVhZCB0aGUgW2RlcGxveW1lbnQubWRdKC4vZGVwbG95bWVudC5tZCkgZG9jcyBmb3IgbW9yZSBkZXRhaWxzLgoKIyMjIEdlbmVyYXRlIFNlY3JldCBLZXlzCgpTb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgYC5lbnZgIGZpbGUgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgb2YgYGNoYW5nZXRoaXNgLgoKWW91IGhhdmUgdG8gY2hhbmdlIHRoZW0gd2l0aCBhIHNlY3JldCBrZXksIHRvIGdlbmVyYXRlIHNlY3JldCBrZXlzIHlvdSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYGJhc2gKcHl0aG9uIC1jICJpbXBvcnQgc2VjcmV0czsgcHJpbnQoc2VjcmV0cy50b2tlbl91cmxzYWZlKDMyKSkiCmBgYAoKQ29weSB0aGUgY29udGVudCBhbmQgdXNlIHRoYXQgYXMgcGFzc3dvcmQgLyBzZWNyZXQga2V5LiBBbmQgcnVuIHRoYXQgYWdhaW4gdG8gZ2VuZXJhdGUgYW5vdGhlciBzZWN1cmUga2V5LgoKIyMgSG93IFRvIFVzZSBJdCAtIEFsdGVybmF0aXZlIFdpdGggQ29waWVyCgpUaGlzIHJlcG9zaXRvcnkgYWxzbyBzdXBwb3J0cyBnZW5lcmF0aW5nIGEgbmV3IHByb2plY3QgdXNpbmcgW0NvcGllcl0oaHR0cHM6Ly9jb3BpZXIucmVhZHRoZWRvY3MuaW8pLgoKSXQgd2lsbCBjb3B5IGFsbCB0aGUgZmlsZXMsIGFzayB5b3UgY29uZmlndXJhdGlvbiBxdWVzdGlvbnMsIGFuZCB1cGRhdGUgdGhlIGAuZW52YCBmaWxlcyB3aXRoIHlvdXIgYW5zd2Vycy4KCiMjIyBJbnN0YWxsIENvcGllcgoKWW91IGNhbiBpbnN0YWxsIENvcGllciB3aXRoOgoKYGBgYmFzaApwaXAgaW5zdGFsbCBjb3BpZXIKYGBgCgpPciBiZXR0ZXIsIGlmIHlvdSBoYXZlIFtgcGlweGBdKGh0dHBzOi8vcGlweC5weXBhLmlvLyksIHlvdSBjYW4gcnVuIGl0IHdpdGg6CgpgYGBiYXNoCnBpcHggaW5zdGFsbCBjb3BpZXIKYGBgCgoqKk5vdGUqKjogSWYgeW91IGhhdmUgYHBpcHhgLCBpbnN0YWxsaW5nIGNvcGllciBpcyBvcHRpb25hbCwgeW91IGNvdWxkIHJ1biBpdCBkaXJlY3RseS4KCiMjIyBHZW5lcmF0ZSBhIFByb2plY3QgV2l0aCBDb3BpZXIKCkRlY2lkZSBhIG5hbWUgZm9yIHlvdXIgbmV3IHByb2plY3QncyBkaXJlY3RvcnksIHlvdSB3aWxsIHVzZSBpdCBiZWxvdy4gRm9yIGV4YW1wbGUsIGBteS1hd2Vzb21lLXByb2plY3RgLgoKR28gdG8gdGhlIGRpcmVjdG9yeSB0aGF0IHdpbGwgYmUgdGhlIHBhcmVudCBvZiB5b3VyIHByb2plY3QsIGFuZCBydW4gdGhlIGNvbW1hbmQgd2l0aCB5b3VyIHByb2plY3QncyBuYW1lOgoKYGBgYmFzaApjb3BpZXIgY29weSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGFwaS9mdWxsLXN0YWNrLWZhc3RhcGktdGVtcGxhdGUgbXktYXdlc29tZS1wcm9qZWN0IC0tdHJ1c3QKYGBgCgpJZiB5b3UgaGF2ZSBgcGlweGAgYW5kIHlvdSBkaWRuJ3QgaW5zdGFsbCBgY29waWVyYCwgeW91IGNhbiBydW4gaXQgZGlyZWN0bHk6CgpgYGBiYXNoCnBpcHggcnVuIGNvcGllciBjb3B5IGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0YXBpL2Z1bGwtc3RhY2stZmFzdGFwaS10ZW1wbGF0ZSBteS1hd2Vzb21lLXByb2plY3QgLS10cnVzdApgYGAKCioqTm90ZSoqIHRoZSBgLS10cnVzdGAgb3B0aW9uIGlzIG5lY2Vzc2FyeSB0byBiZSBhYmxlIHRvIGV4ZWN1dGUgYSBbcG9zdC1jcmVhdGlvbiBzY3JpcHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0YXBpL2Z1bGwtc3RhY2stZmFzdGFwaS10ZW1wbGF0ZS9ibG9iL21hc3Rlci8uY29waWVyL3VwZGF0ZV9kb3RlbnYucHkpIHRoYXQgdXBkYXRlcyB5b3VyIGAuZW52YCBmaWxlcy4KCiMjIyBJbnB1dCBWYXJpYWJsZXMKCkNvcGllciB3aWxsIGFzayB5b3UgZm9yIHNvbWUgZGF0YSwgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBhdCBoYW5kIGJlZm9yZSBnZW5lcmF0aW5nIHRoZSBwcm9qZWN0LgoKQnV0IGRvbid0IHdvcnJ5LCB5b3UgY2FuIGp1c3QgdXBkYXRlIGFueSBvZiB0aGF0IGluIHRoZSBgLmVudmAgZmlsZXMgYWZ0ZXJ3YXJkcy4KClRoZSBpbnB1dCB2YXJpYWJsZXMsIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1ZXMgKHNvbWUgYXV0byBnZW5lcmF0ZWQpIGFyZToKCi0gYHByb2plY3RfbmFtZWA6IChkZWZhdWx0OiBgIkZhc3RBUEkgUHJvamVjdCJgKSBUaGUgbmFtZSBvZiB0aGUgcHJvamVjdCwgc2hvd24gdG8gQVBJIHVzZXJzIChpbiAuZW52KS4KLSBgc3RhY2tfbmFtZWA6IChkZWZhdWx0OiBgImZhc3RhcGktcHJvamVjdCJgKSBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdXNlZCBmb3IgRG9ja2VyIENvbXBvc2UgbGFiZWxzIGFuZCBwcm9qZWN0IG5hbWUgKG5vIHNwYWNlcywgbm8gcGVyaW9kcykgKGluIC5lbnYpLgotIGBzZWNyZXRfa2V5YDogKGRlZmF1bHQ6IGAiY2hhbmdldGhpcyJgKSBUaGUgc2VjcmV0IGtleSBmb3IgdGhlIHByb2plY3QsIHVzZWQgZm9yIHNlY3VyaXR5LCBzdG9yZWQgaW4gLmVudiwgeW91IGNhbiBnZW5lcmF0ZSBvbmUgd2l0aCB0aGUgbWV0aG9kIGFib3ZlLgotIGBmaXJzdF9zdXBlcnVzZXJgOiAoZGVmYXVsdDogYCJhZG1pbkBleGFtcGxlLmNvbSJgKSBUaGUgZW1haWwgb2YgdGhlIGZpcnN0IHN1cGVydXNlciAoaW4gLmVudikuCi0gYGZpcnN0X3N1cGVydXNlcl9wYXNzd29yZGA6IChkZWZhdWx0OiBgImNoYW5nZXRoaXMiYCkgVGhlIHBhc3N3b3JkIG9mIHRoZSBmaXJzdCBzdXBlcnVzZXIgKGluIC5lbnYpLgotIGBzbXRwX2hvc3RgOiAoZGVmYXVsdDogIiIpIFRoZSBTTVRQIHNlcnZlciBob3N0IHRvIHNlbmQgZW1haWxzLCB5b3UgY2FuIHNldCBpdCBsYXRlciBpbiAuZW52LgotIGBzbXRwX3VzZXJgOiAoZGVmYXVsdDogIiIpIFRoZSBTTVRQIHNlcnZlciB1c2VyIHRvIHNlbmQgZW1haWxzLCB5b3UgY2FuIHNldCBpdCBsYXRlciBpbiAuZW52LgotIGBzbXRwX3Bhc3N3b3JkYDogKGRlZmF1bHQ6ICIiKSBUaGUgU01UUCBzZXJ2ZXIgcGFzc3dvcmQgdG8gc2VuZCBlbWFpbHMsIHlvdSBjYW4gc2V0IGl0IGxhdGVyIGluIC5lbnYuCi0gYGVtYWlsc19mcm9tX2VtYWlsYDogKGRlZmF1bHQ6IGAiaW5mb0BleGFtcGxlLmNvbSJgKSBUaGUgZW1haWwgYWNjb3VudCB0byBzZW5kIGVtYWlscyBmcm9tLCB5b3UgY2FuIHNldCBpdCBsYXRlciBpbiAuZW52LgotIGBwb3N0Z3Jlc19wYXNzd29yZGA6IChkZWZhdWx0OiBgImNoYW5nZXRoaXMiYCkgVGhlIHBhc3N3b3JkIGZvciB0aGUgUG9zdGdyZVNRTCBkYXRhYmFzZSwgc3RvcmVkIGluIC5lbnYsIHlvdSBjYW4gZ2VuZXJhdGUgb25lIHdpdGggdGhlIG1ldGhvZCBhYm92ZS4KLSBgc2VudHJ5X2RzbmA6IChkZWZhdWx0OiAiIikgVGhlIERTTiBmb3IgU2VudHJ5LCBpZiB5b3UgYXJlIHVzaW5nIGl0LCB5b3UgY2FuIHNldCBpdCBsYXRlciBpbiAuZW52LgoKIyMgQmFja2VuZCBEZXZlbG9wbWVudAoKQmFja2VuZCBkb2NzOiBbYmFja2VuZC9SRUFETUUubWRdKC4vYmFja2VuZC9SRUFETUUubWQpLgoKIyMgRnJvbnRlbmQgRGV2ZWxvcG1lbnQKCkZyb250ZW5kIGRvY3M6IFtmcm9udGVuZC9SRUFETUUubWRdKC4vZnJvbnRlbmQvUkVBRE1FLm1kKS4KCiMjIERlcGxveW1lbnQKCkRlcGxveW1lbnQgZG9jczogW2RlcGxveW1lbnQubWRdKC4vZGVwbG95bWVudC5tZCkuCgojIyBEZXZlbG9wbWVudAoKR2VuZXJhbCBkZXZlbG9wbWVudCBkb2NzOiBbZGV2ZWxvcG1lbnQubWRdKC4vZGV2ZWxvcG1lbnQubWQpLgoKVGhpcyBpbmNsdWRlcyB1c2luZyBEb2NrZXIgQ29tcG9zZSwgY3VzdG9tIGxvY2FsIGRvbWFpbnMsIGAuZW52YCBjb25maWd1cmF0aW9ucywgZXRjLgoKIyMgUmVsZWFzZSBOb3RlcwoKQ2hlY2sgdGhlIGZpbGUgW3JlbGVhc2Utbm90ZXMubWRdKC4vcmVsZWFzZS1ub3Rlcy5tZCkuCgojIyBMaWNlbnNlCgpUaGUgRnVsbCBTdGFjayBGYXN0QVBJIFRlbXBsYXRlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2UuCg== readmeEtag: '"afe124f3fbab8b290687a002aef76689bc81e6bc"' readmeLastModified: Thu, 15 Aug 2024 20:43:14 GMT repositoryId: 172227885 description: >- Full stack, modern web application template. Using FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, automatic HTTPS and more. created: '2019-02-23T15:08:34Z' updated: '2024-09-06T02:29:06Z' language: TypeScript archived: false stars: 25925 watchers: 269 forks: 4488 owner: fastapi logo: https://avatars.githubusercontent.com/u/156354296?v=4 license: MIT repoEtag: '"1d19ce6e231975e72763899f918e365edc50166b13c0b4978541065e08acfcdd"' repoLastModified: Fri, 06 Sep 2024 02:29:06 GMT foundInMaster: true category: Server Implementations id: 0354007b562b4efc3f08ce3da7f03afb oldLocations: - https://github.com/tiangolo/full-stack-fastapi-template - source: openapi3 tags repository: https://github.com/istandaarden/iwlz-indicatie v3: true repositoryMetadata: base64Readme: >- IyBpV2x6LUluZGljYXRpZXJlZ2lzdGVyCioqaVdsei1JbmRpY2F0aWVyZWdpc3RlciBiZXZhdCBkZSBbR3JhcGhxbC1zY2hlbWFdKC9ncWwtc3BlY2lmaWNhdGllKSBrb3BwZWx2bGFrIHNwZWNpZmljYXRpZSB2b29yIGhldCByYWFkcGxlZ2VuIHZhbiBXbHogaW5kaWNhdGllZ2VnZXZlbnMgaW4gaGV0IGluZGljYXRpZXJlZ2lzdGVyLioqCgpIZXQgaW5kaWNhdGllcmVnaXN0ZXIgaXMgaW4gYmVoZWVyIGJpaiBoZXQgQ0laIGVuIGlzIG9uZGVyZGVlbCB2YW4gaGV0IGlXbHotbmV0d2Vya21vZGVsLgoKRGUga29wcGVsdmxhayBzcGVjaWZpY2F0aWUgdmFuIGhldCBJbmRpY2F0aWVyZWdpc3RlciBtYWFrdCBvbmRlcmRlZWwgdWl0IHZhbiBkZSAqKmlTdGFuZGFhcmQgaVdseioqLiBEZSBzcGVjaWZpY2F0aWVzIHZhbiBkZSBhbmRlcmUgb25kZXJkZWxlbiwgem9hbHMgRVJELCByZWdlbHMsIHByb2Nlc2Jlc2NocmlqdmluZywgYXV0b3Jpc2F0aWVyZWdlbHMsIG5vdGlmaWNhdGllLXR5cGVuIHN0YWFuIGluIGhldCBbSW5mb3JtYXRpZW1vZGVsIGlXbHpdKGh0dHBzOi8vaW5mb3JtYXRpZW1vZGVsLmlzdGFuZGFhcmRlbi5ubC8pIGRhdCB0ZSB2aW5kZW4gaXMgdmlhIGRlIHdlYnNpdGU6IFtodHRwczovL2luZm9ybWF0aWVtb2RlbC5pc3RhbmRhYXJkZW4ubmwvXShodHRwczovL2luZm9ybWF0aWVtb2RlbC5pc3RhbmRhYXJkZW4ubmwvKQoKPiBOLkIuIGRlIE9wZW5BUEkgc3BlY2lmaWNhdGllIGlzIG5pZXQgdm9vciBpbXBsZW1lbnRhdGllISAKCiMjIFZlcnNpZXMgZW4gU3RhdHVzIAoKRXIgemlqbiBhbHRpamQgbWluaW1hYWwgdHdlZSB2ZXJzaWVzIGFjdHVlZWwuIEVlbiB2ZXJzaWUgZGllIGluIHByb2R1Y3RpZSBpcywgc3RhdHVzIGlzICpMb3BlbmQqIGVuIGVlbiB2ZXJzaWUgZGllIGluIG9udHdpa2tlbGluZyBpcywgc3RhdHVzIGlzICpJbiBvbnR3aWtrZWxpbmcqLgoKfCBpV2x6IEluZm9ybWF0aWVtb2RlbCB8IFN0YXR1cyB8ICB2ZXJzaWUga29wcGVsdmxhayB8Cnw6LS0gfDotLSB8IDotLSB8CnwgW0luZGljYXRpZXJlZ2lzdGVyIDEgKGlXbHogMi40KV0oaHR0cHM6Ly9pbmZvcm1hdGllbW9kZWwuaXN0YW5kYWFyZGVuLm5sL2lXbHotSW5kaWNhdGllLTEvKSAgfCAqKkxvcGVuZCoqIHwgW3YxLjIuMF0oaHR0cHM6Ly9naXRodWIuY29tL2lTdGFuZGFhcmRlbi9pV2x6LWluZGljYXRpZS90cmVlL3YxLjIpIChbbWFzdGVyXShodHRwczovL2dpdGh1Yi5jb20vaVN0YW5kYWFyZGVuL2lXbHotaW5kaWNhdGllKSkgIHwKfCBbSW5kaWNhdGllcmVnaXN0ZXIgMiAoaVdseiAyLjUpXShodHRwczovL2luZm9ybWF0aWVtb2RlbC5pc3RhbmRhYXJkZW4ubmwvaVdsei1JbmRpY2F0aWUtMi8pICB8IEluIG9udHdpa2tlbGluZyB8IFt2MS40LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9pU3RhbmRhYXJkZW4vaVdsei1pbmRpY2F0aWUvdHJlZS9JbmRpY2F0aWVyZWdpc3Rlci0yKXwKClZvbGxlZGlnIHZlcnNpZSBvdmVyemljaHQgemllOiBbQ2hhbmdlbG9nXShDSEFOR0VMT0cubWQpCgojIyBEb2N1bWVudGF0aWUKT25kZXJzdGV1bmVuZGUgZG9jdW1lbnRhdGllIGlzIHRlIHZpbmRlbiBpbiBoZXQgSW5mb3JtYXRpZW1vZGVsLCB2aWEgZGUgd2Vic2l0ZSBbaHR0cHM6Ly9pbmZvcm1hdGllbW9kZWwuaXN0YW5kYWFyZGVuLm5sL10oaHR0cHM6Ly9pbmZvcm1hdGllbW9kZWwuaXN0YW5kYWFyZGVuLm5sLykgZW4gZGFhciBkZSBnZXdlbnN0ZSB2ZXJzaWUgdGUgc2VsZWN0ZXJlbiAoemllIG9vayBpbiBkZSB0YWJlbCBoaWVyYm92ZW4gdm9vciBlZW4gZGlyZWN0ZSB2ZXJ3aWp6aW5nKS4KCiMjIE1lZXIgaW5mb3JtYXRpZQoqIEFjdGllcHJvZ3JhbW1hIGlXbHo6IHZhbiBrZXRlbiBuYWFyIG5ldHdlcms6IFtoZXQgQWN0aWVwcm9ncmFtbWEgaVdsel0oaHR0cHM6Ly93d3cuaXN0YW5kYWFyZGVuLm5sL2l3bHovYWN0aWVwcm9ncmFtbWEvaW5kZXggIk92ZXIgQWN0aWVwcm9ncmFtbWEgaVdseiIpCiogSW5mb3JtYXRpZW1vZGVsIGlTdGFuZGFhcmRlbiBpV2x6OiBbSW5mb3JtYXRpZW1vZGVsbGVuXShodHRwczovL2luZm9ybWF0aWVtb2RlbC5pc3RhbmRhYXJkZW4ubmwpCiogUG9ydGFhbCB2b29yIGlTdGFuZGFhcmRlbiBpbiBkZQpab3JnIGVuIE9uZGVyc3RldW5pbmc6IFtob21lcGFnaW5hIGlTdGFuZGFhcmRlbl0oaHR0cHM6Ly93d3cuaXN0YW5kYWFyZGVuLm5sKQoKIyMgQ29udGFjdHBlcnNvbmVuOgoqIEhpbGtvIEphY29ic2UgLSBbQGhpbGtvamFjb2JzZV0oaHR0cHM6Ly9naXRodWIuY29tL0hpbGtvSmFjb2JzZSkKKiBEZW5uaXMgZGUgR291dyAtIFtAZGVubmlzZGVnb3V3XShodHRwOi8vZ2l0aHViLmNvbS9kZW5uaXNkZWdvdXcpCiogUmVtbyB2YW4gUmVzdCAtIFtAcnZhbnJlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydmFucmVzdCkKCgo= readmeEtag: '"e79caead0ca4013106a7571a36e8faed3b51e0b7"' readmeLastModified: Mon, 15 Apr 2024 12:31:12 GMT repositoryId: 204430425 description: Koppelvlak specificatie Indicatieregister created: '2019-08-26T08:25:11Z' updated: '2024-08-26T11:55:55Z' language: HTML archived: false stars: 2 watchers: 5 forks: 4 owner: iStandaarden logo: https://avatars.githubusercontent.com/u/54351663?v=4 repoEtag: '"3a12f28e6ea8c83412541eebd7e4d59ad4d3d090e15c375daff62a422270fab8"' repoLastModified: Mon, 26 Aug 2024 11:55:55 GMT foundInMaster: true category: Documentation id: 5a079f438418ad2614981480bbbba221 - source: openapi3 tags repository: https://github.com/javathought/vx-api v3: true repositoryMetadata: base64Readme: >- IyB2eC1hcGkKVGVzdGluZyB2ZXJ0eC13ZWItYXBpLWNvbnRyYWN0CgpbIVtDb2RhY3kgQmFkZ2VdKGh0dHBzOi8vYXBpLmNvZGFjeS5jb20vcHJvamVjdC9iYWRnZS9HcmFkZS84MGRlOGI2OTRkY2E0NDAxYmRmZDhjNDFmODU4YmNhNyldKGh0dHBzOi8vd3d3LmNvZGFjeS5jb20vYXBwL2phdmF0aG91Z2h0L3Z4LWFwaT91dG1fc291cmNlPWdpdGh1Yi5jb20mYW1wO3V0bV9tZWRpdW09cmVmZXJyYWwmYW1wO3V0bV9jb250ZW50PWphdmF0aG91Z2h0L3Z4LWFwaSZhbXA7dXRtX2NhbXBhaWduPUJhZGdlX0dyYWRlKQpbIVtDb2RhY3kgQmFkZ2VdKGh0dHBzOi8vYXBpLmNvZGFjeS5jb20vcHJvamVjdC9iYWRnZS9Db3ZlcmFnZS84MGRlOGI2OTRkY2E0NDAxYmRmZDhjNDFmODU4YmNhNyldKGh0dHBzOi8vd3d3LmNvZGFjeS5jb20vYXBwL2phdmF0aG91Z2h0L3Z4LWFwaT91dG1fc291cmNlPWdpdGh1Yi5jb20mdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY29udGVudD1qYXZhdGhvdWdodC92eC1hcGkmdXRtX2NhbXBhaWduPUJhZGdlX0NvdmVyYWdlKQpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9qYXZhdGhvdWdodC92eC1hcGkuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvamF2YXRob3VnaHQvdngtYXBpKQo= readmeEtag: '"150f1b56f142d0d9f0b8c8a82898e8ff9c0c60c7"' readmeLastModified: Mon, 20 Nov 2017 01:05:12 GMT repositoryId: 110819342 description: Testing vertx-web-api-contract created: '2017-11-15T10:29:10Z' updated: '2017-11-17T23:00:22Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: javathought logo: https://avatars.githubusercontent.com/u/1075135?v=4 license: Apache-2.0 repoEtag: '"6726ef37ef0b775dad5da275b4d94b2aaf975b2812a5c14e3de9c778bf714991"' repoLastModified: Fri, 17 Nov 2017 23:00:22 GMT foundInMaster: true category: Data Validators id: b1645dfb1035ae7d0d778e0cc5534f4b - source: openapi3 tags repository: https://github.com/marcusvc/backend-rest-swagger-buffer-log v3: true repositoryMetadata: base64Readme: >- IyBiYWNrZW5kLXJlc3Qtc3dhZ2dlci1idWZmZXItbG9nClRoaXMgaXMgYSBzaW1wbGUgSmF2YSBSRVNUIEFQSSBleGFtcGxlIGludGVuZGVkIHRvIHJ1biB3aXRoIFdpbGRmbHkuIEl0IGhhcyBPcGVuYXBpIDMuMCBkb2N1bWVudGF0aW9uIChTd2FnZ2VyKSBhbmQgYSBIdHRwU2VydmxldChSZXF1ZXN0L1Jlc3BvbnNlKSBidWZmZXIgaW1wbGVtZW50YXRpb24uCgojIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gKGZvcm1lcmx5IFN3YWdnZXIgc3BlY2lmaWNhdGlvbikKUHJvdmlkZXMgYSBPcGVuQVBJIDMuMCBzcGVjaWZpY2F0aW9uIHdyaXR0ZW4gaW4gWUFNTCBvciBKU09OIGNhbGxpbmcgdGhlIGZvbGxvd2luZyBVUkwsIHJlc3BlY3RpdmlseToKPiBodHRwW3NdOi8vaG9zdC9jb250ZXh0L2Jhc2VfYXBwbGljYXRpb25fcGF0aF9mb3JfYWxsX3Jlc3RfcmVzb3VyY2VzL29wZW5hcGkueWFtbAo+IGh0dHBbc106Ly9ob3N0L2NvbnRleHQvYmFzZV9hcHBsaWNhdGlvbl9wYXRoX2Zvcl9hbGxfcmVzdF9yZXNvdXJjZXMvb3BlbmFwaS5qc29uCgojIFN3YWdnZXIgVUkKU2luZ2xlIHBhZ2UgYXBwbGljYXRpb24gdGhhdCBleHBvc2VzIEFQSSBkb3VtZW50YXRpb24gYW5kIHByb3ZpZGVzIGEgdGVzdCBzdWl0ZSBiYXNlZCBvbiBvcGVuYXBpIHNwZWNpZmljYXRpb24uCgojIEh0dHBTZXJ2bGV0KFJlcXVlc3QvUmVzcG9uc2UpIGJ1ZmZlcgpUaGUgbmVlZCBvZiBhIEh0dHBTZXJ2bGV0KFJlcXVlc3QvUmVzcG9uc2UpIGlzIHRvIGxvZyB0aGUgaW5wdXRzdHJlYW0gYW5kIG91dHB1dHN0cmVhbSwgYWZ0ZXIgb3IgYmVmb3JlIHBhcnNpbmcgdGltZSwgcmVzcGVjdGl2bHkuIFRoZSBpbnB1dHN0cmVhbSBvZiBhIEh0dHBTZXJ2bGV0UmVxdWVzdCBhbmQgdGhlIG91dHB1dHN0cmVhbSBvZiBhIEh0dHBTZXJ2bGV0UmVzcG9uc2UgY2FuIG9ubHkgYmUgY29uc3VtZWQgb25jZS4gSWYgd2UgdHJ5IHRvIGNvbnN1bSBpbnB1dHN0cmVhbSBhZnRlciBwYXJzZXIsIGl0J3MgZ29ubmEgYmUgZW1wdHkuIElmIHdlIHRyeSB0byBjb25zdW0gb3V0cHV0c3RyZWFtIGJlZm9yZSBwYXJzZXIsIHRoZXJlIHdpbGwgYmUgbm8gZGF0YSB0byBwYXJzZS4gVXNpbmcgYSBIdHRwU2VydmxldChSZXF1ZXN0L1Jlc3BvbnNlKSBidWZmZXIgaW1wbGVtZW50YXRpb24sIGl0J3MgcG9zc2libGUgdG8gbG9nIHJlcXVlc3QncyBpbnB1dHN0cmVhbSAgYW5kIHJlc3BvbnNlJ3Mgb3V0cHV0c3RyZWFtIGluIHRoZSBtaWRkbGUgb2YgdGhlIHByb2Nlc3MuCg== readmeEtag: '"de3569af30c131d611a4d6cbb0cd6067d3dbc999"' readmeLastModified: Mon, 21 Jan 2019 16:44:10 GMT repositoryId: 166137544 description: >- Simple Java REST API example using OpenAPI 3.0, Swagger-UI, request and response buffer created: '2019-01-17T01:19:06Z' updated: '2019-01-21T16:45:56Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: marcusvc logo: https://avatars.githubusercontent.com/u/20482843?v=4 license: Apache-2.0 repoEtag: '"638538693b2643bb32f67a1ce4a6dcabb78f7b7ebbb6f992cde15f5a9c7d3ab4"' repoLastModified: Mon, 21 Jan 2019 16:45:56 GMT foundInMaster: true category: Parsers id: 0f686a53ed0f1513e85de5295391ef6c - source: openapi3 tags repository: https://github.com/dperez3/oapi-generator v3: true repositoryMetadata: base64Readme: >- IyBvYXBpLWdlbmVyYXRvcgoKWyFbQ29udmVudGlvbmFsIENvbW1pdHNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQ29udmVudGlvbmFsJTIwQ29tbWl0cy0xLjAuMC15ZWxsb3cuc3ZnKV0oaHR0cHM6Ly9jb252ZW50aW9uYWxjb21taXRzLm9yZykKWyFbYnVkZHkgcGlwZWxpbmVdKGh0dHBzOi8vYXBwLmJ1ZGR5LndvcmtzL2RwZXJlejNpaWkvb2FwaS1nZW5lcmF0b3IvcGlwZWxpbmVzL3BpcGVsaW5lLzE5NDM5MC9iYWRnZS5zdmc/dG9rZW49M2M3ZDQ4NGJiZTAwMDNhYmExOTE4ODQ0MjQzZjI3NTJhOTA0ZTA2Y2I1MmRjMTJiYmVkZWU5Y2VlYWU3ODY0NiAiYnVkZHkgcGlwZWxpbmUiKV0oaHR0cHM6Ly9hcHAuYnVkZHkud29ya3MvZHBlcmV6M2lpaS9vYXBpLWdlbmVyYXRvci9waXBlbGluZXMvcGlwZWxpbmUvMTk0MzkwKQoKR2VuZXJhdGUgT3BlbkFQSSBkb2N1bWVudHMgZnJvbSBtdWx0aXBsZSBTd2FnZ2VyIHYyIG9yIE9wZW4gQVBJIHYzIGRvY3VtZW50cy4KCltucG1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29hcGktZ2VuZXJhdG9yKQoKIyMgSW5zdGFsbGF0aW9uCgojIyMgSW5zdGFsbAoKYGBgYmFzaApucG0gaW5zdGFsbCAtLXNhdmUtZGV2IG9hcGktZ2VuZXJhdG9yCm5wbSBpbnN0YWxsIC0tc2F2ZS1kZXYgb3BlbmFwaS10eXBlc0AxLjMuNApgYGAKCiMjIyBDb25maWd1cmUKCiMjIyMgQ29uZmlnIEZpbGUKCkphdmFzY3JpcHQKCmBgYGpzCmNvbnN0IHYxR2VuRG9jID0geyAvKi4uLiovIH07Cgpjb25zdCB2MkdlbkRvYyA9IHsgLyouLi4qLyB9OwoKY29uc3QgY29uZmlnID0KewogIGdlbkNvbmZpZ3M6IFt2MUdlbkRvYywgdjJHZW5Eb2NdCn07CmBgYAoKT3IgVHlwZVNjcmlwdAoKYGBgdHMKaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gIm9hcGktZ2VuZXJhdG9yL2NvbmZpZ3VyYXRpb24iOwppbXBvcnQgeyBPcGVuQVBJVjMgfSBmcm9tICJvcGVuYXBpLXR5cGVzIjsKCmNvbnN0IHYxR2VuRG9jOiBDb25maWd1cmF0aW9uLklHZW5PcGVuQVBJVjNDb25maWcgPSB7IC8qLi4uKi8gfTsKCmNvbnN0IHYyR2VuRG9jOiBDb25maWd1cmF0aW9uLklHZW5PcGVuQVBJVjNDb25maWcgPSB7IC8qLi4uKi8gfTsKCmNvbnN0IGNvbmZpZzogQ29uZmlndXJhdGlvbi5JTWFueUdlbk9wZW5BUElWM0NvbmZpZ3MgPQp7CiAgZ2VuQ29uZmlnczogW3YxR2VuRG9jLCB2MkdlbkRvY10KfTsKCmV4cG9ydCA9IGNvbmZpZzsKYGBgCgpgb3BlbmFwaS10eXBlc2AgY29tYmluZWQgd2l0aCBUeXBlc1NjcmlwdCBpbnRlbGxpc2Vuc2UgcHJvdmlkZXMgdGhlIGVhc2llc3Qgd2F5IHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gQVBJLgoKIyMjIyBgcGFja2FnZS5qc29uYAoKYGBganNvbgp7CiAgInNjcmlwdHMiOiB7CiAgICAib2FwaS1nZW46cnVuIjogIm9hcGktZ2VuZXJhdG9yIC0tY29uZmlnIHtwYXRoX3RvX2Fib3ZlX2NvbmZpZ19maWxlfSIKICB9Cn0KYGBgCg== readmeEtag: '"7dae70b56b4c6e72e8570ed8f5f8d23e8d59c9bb"' readmeLastModified: Mon, 20 Apr 2020 16:34:24 GMT repositoryId: 193387986 description: >- Generate OpenAPI documents from multiple Swagger v2 or Open API v3 documents. created: '2019-06-23T19:34:08Z' updated: '2020-04-20T16:34:28Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: dperez3 logo: https://avatars.githubusercontent.com/u/7634621?v=4 license: GPL-3.0 repoEtag: '"4d03b2dc41a6110c283a08c8e835a161626f3d0ae7991e7578adbd5cc7ba1043"' repoLastModified: Mon, 20 Apr 2020 16:34:28 GMT foundInMaster: true category: - SDK - Parsers id: 4e6af3de5a8e564669f91429104028f1 - source: openapi3 tags repository: https://github.com/zaki-yama/kintone-openapi-generator v3: true repositoryMetadata: base64Readme: >- a2ludG9uZSBPcGVuQVBJIFNwZWMgR2VuZXJhdG9yCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKR2VuZXJhdGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGRvY3VtZW50IGZyb20ga2ludG9uZSdzIFJFU1QgQVBJIFNjaGVtYXMuICAKSXQgY2FuIGFsc28gbGF1bmNoIFJFU1QgQVBJIGRvY3VtZW50IHNlcnZlciBhbmQgbW9jayBzZXJ2ZXIuCgojIyBJbnN0YWxsYXRpb24KCmBgYAokIG5wbSBpbnN0YWxsCmBgYAoKIyMgVXNhZ2UKCmBgYHpzaAojIEZldGNoIGtpbnRvbmUncyBSRVNUIEFQSSBTY2hlbWFzIGFuZCBnZW5lcmF0ZSBPcGVuQVBJIFNwZWMgZG9jdW1lbnQuCiMgSXQgZ2VuZXJhdGVzIGBzcmMvZ2VuZXJhdGVkL2tpbnRvbmUtYXBpLXNjaGVtYXMuanNvbmAgYW5kIGBzcmMvZ2VuZXJhdGVkL29wZW5hcGkueWFtbGAuCiQgbnBtIHJ1biBnZW5lcmF0ZQoKIyBSdW4gUkVTVCBBUEkgZG9jdW1lbnQgc2VydmVyIChodHRwOi8vbG9jYWxob3N0OjMwMDApCiQgbnBtIHJ1biBkb2MKCiMgUnVuIG1vY2sgc2VydmVyIChodHRwOi8vbG9jYWxob3N0OjQwMTApCiQgbnBtIHJ1biBtb2NrCmBgYAo= readmeEtag: '"89d6f317dcde6f5280c576c08ef8c826d6ad5753"' readmeLastModified: Sun, 18 Sep 2022 13:52:40 GMT repositoryId: 220504408 description: Generate OpenAPI Specification Document from kintone's REST API Schema created: '2019-11-08T16:17:27Z' updated: '2023-01-27T21:08:18Z' language: TypeScript archived: true stars: 0 watchers: 2 forks: 0 owner: zaki-yama logo: https://avatars.githubusercontent.com/u/1001444?v=4 repoEtag: '"48254252aa5ee0d5a143b5add11195af443a4ae67fe1a4cd7aedfbe17346346a"' repoLastModified: Fri, 27 Jan 2023 21:08:18 GMT foundInMaster: true category: - Testing - Parsers id: f25cbbc6b37854cdf79c6df73f6ee104 - source: openapi3 tags repository: https://github.com/funkeyfreak/msgraph-openapi v3: true repositoryMetadata: repositoryId: 310755500 description: A buildable OpenAPI v3 description for Microsoft Graph created: '2020-11-07T03:01:48Z' updated: '2020-12-30T06:32:05Z' language: null archived: false stars: 0 watchers: 2 forks: 1 owner: funkeyfreak logo: https://avatars.githubusercontent.com/u/5327214?v=4 license: Apache-2.0 repoEtag: '"9d4edf3513cb841f9247f9df0c37fe6014176997d02abe0f3a81374b10fc85f2"' repoLastModified: Wed, 30 Dec 2020 06:32:05 GMT foundInMaster: true id: da9f2a7deee2c34b5bc25c19350a25a5 - source: openapi3 tags repository: https://github.com/abhishekastoorkar/nodejs-training v3: true repositoryMetadata: repositoryId: 303295453 description: >- This is a training manager app build using nodejs, express and sequelize ORM. for authentication of user AWS cognito service is used. coverage report and openApi 3 documention are also available created: '2020-10-12T06:16:22Z' updated: '2020-12-02T05:47:34Z' language: HTML archived: false stars: 0 watchers: 1 forks: 0 owner: abhishekastoorkar logo: https://avatars.githubusercontent.com/u/51363257?v=4 repoEtag: '"4b9614322eee90488edbce1fa449bb4cad32892bd6418030adbdfa855d6b1dc6"' repoLastModified: Wed, 02 Dec 2020 05:47:34 GMT foundInMaster: true id: 7feb18067ecfc3ef6d4cb1d45cb22d99 - source: openapi3 tags repository: https://github.com/teobler/openapi-swagger-demo v3: true repositoryMetadata: base64Readme: >- IyBXaGF0IGZvcgoKdGhpcyBpcyBhIGRlbW8gYWJvdXQgT3BlbkFQSSAzLjAgdG8gcHJvdmlkZSBhIHNjaGVtYSB0byBnZW5lcmF0ZSBmcm9udC1lbmQgcmVxdWVzdCBjb2RlIGJ5IHVzaW5nIFtyZWR1eC1hY3Rpb24tZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vdGVvYmxlci9yZWR1eC1hY3Rpb24tZ2VuZXJhdG9yL3RyZWUvb3BlbmFwaS0zLjApCgojIyBTdGFydAoKMS4gY2xvbmUgY29kZSB0byB5b3VyIGxvY2FsCjIuIHJ1biBgLi9ncmFkbGV3IGJvb3QgcnVuYAozLiBhY2Nlc3MgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1kb2NzIGluIHlvdXIgYnJvd3NlciB5b3UgY2FuIGdldCBPcGVuQVBJIDMuMCBzY2hlbWEKNC4gYWNjZXNzIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpL2luZGV4Lmh0bWw/Y29uZmlnVXJsPS9hcGktZG9jcy9zd2FnZ2VyLWNvbmZpZyBpbiB5b3VyIGJyb3dzZXIgeW91IGNhbiBzZWUgc3dhZ2dlciB2Mwo= readmeEtag: '"c5567ee2eb418c5809364f999c7248df727a9ec3"' readmeLastModified: Thu, 26 Mar 2020 08:13:08 GMT repositoryId: 250197701 description: >- demo about OpenAPI 3.0 to provide a schema to generate front-end request code created: '2020-03-26T08:10:01Z' updated: '2020-03-26T08:14:14Z' language: Java archived: false stars: 0 watchers: 0 forks: 0 owner: teobler logo: https://avatars.githubusercontent.com/u/26424691?v=4 repoEtag: '"a1d9e55a4f5d71aff5fade1f1d4f96650c4ba6d632f198c458cfd224f6f9a2fa"' repoLastModified: Thu, 26 Mar 2020 08:14:14 GMT foundInMaster: true category: - Code Generators - Server Implementations id: a241cb9ae9cda5f9ce71402d3b48ddc1 - source: openapi3 tags repository: https://github.com/ankitech/spring-swagger-setup v3: true repositoryMetadata: base64Readme: >- IyBzcHJpbmctc3dhZ2dlci1zZXR1cApUaGlzIGlzIGFuIHJlcG9zaXRvcnkgdGhhdCBzaG93cyBob3cgdG8gc2V0IHVwIHN3YWdnZXIgZG9jdW1lbnRhdGlvbiBpbiBhIHNwcmluZyBwcm9qZWN0Cg== readmeEtag: '"113097c395b1167de8ea097d13fba499caaf576f"' readmeLastModified: Tue, 21 Apr 2020 05:59:58 GMT repositoryId: 257364853 description: >- This is an repository that shows how to set up swagger documentation in a spring project created: '2020-04-20T18:07:03Z' updated: '2020-04-21T19:03:50Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: ankitech logo: https://avatars.githubusercontent.com/u/9432041?v=4 license: Apache-2.0 repoEtag: '"af137d55de30ad9316b3f2bf9096f68110809f1ce5ddae1dd4dd48e69c65dc61"' repoLastModified: Tue, 21 Apr 2020 19:03:50 GMT foundInMaster: true category: - Server - Server Implementations id: 8ff20053e9e7616753043f1b4b10a98c - source: openapi3 tags repository: https://github.com/thiagojacinto/bootcamp-backend-spring v3: true repositoryMetadata: base64Readme: >- IyBbQm9vdGNhbXBdKGh0dHBzOi8vZ2l0aHViLmNvbS90aGlhZ29qYWNpbnRvL3Bvcy11bml0LXBvcnRvL3RyZWUvbWFzdGVyL0Jvb3RjYW1wMik6IFByb2pldG8gZS1jb21tZXJjZSAKIEJvb3RjYW1wIEJhY2tlbmQsIHByb2pldG8gZGUgdW0gZS1jb21tZXJjZSB1dGlsaXphbmRvIFNwcmluZyBCb290LgoKICMjIFVzYW5kbwoKIE8gcHJpbWVpcm8gcGFzc28gw6kgY29uZmlndXJhciBhIGNvbmV4w6NvIGNvbSB1bSBiYW5jbyBQb3N0ZWdyZVNRTCwgY29uZmlndXJhbmRvIG8gX2FwcGxpY2F0aW9uLnByb3BlcnRpZXNfIGNvbW8gW2VzdGUgZXhlbXBsb10oaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vcHQtYnIvYXp1cmUvZGV2ZWxvcGVyL2phdmEvc3ByaW5nLWZyYW1ld29yay9jb25maWd1cmUtc3ByaW5nLWRhdGEtanBhLXdpdGgtYXp1cmUtbXlzcWwjY29uZmlndXJlLXNwcmluZy1ib290LXRvLXVzZS1henVyZS1kYXRhYmFzZS1mb3ItbXlzcWwpLgoKIEEgcGFydGlyIGRpc3NvLCDDqSBwb3Nzw612ZWwgcm9kYXIgbyBwcm9qZXRvIHBlbG8gTWF2ZW4gKGNvbW8gaW5zdGFsYXI/IFtBcXVpXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvaW5zdGFsbC5odG1sKSksIGEgcGFydGlyIGRvIGNvbWFuZG8gYG12bncgc3ByaW5nLWJvb3Q6cnVuYCByZWFsaXphbmRvIG5vIGRpcmV0w7NyaW8uCgogT3V0cmEgb3DDp8OjbyDDqSByZWFsaXphciBvIGJ1aWxkIGNvbSBvIGNvbWFuZG8gYG12bncgY2xlYW4gcGFja2FnZWAgZSBlbnTDo28gZXhlY3V0YW5kbyBvIGFycXVpdm8gSkFSIHJlc3VsdGFudGUsIGVzcGVjaWZpY2FuZG8gYSB2ZXJzw6NvIGRvIHByb2pldG8gb2J0aWRhIG5vIHBvbS54bWwsIGUgYSBVUkwgZGUgY29uZXjDo28gY29tIHVtIFNHQkQgKipQb3N0Z3JlU1FMKiouCgogYGBgCiBqYXZhIC1qYXIgdGFyZ2V0L2Vjb21tZXJjZS17VkVSU0FPfS5qYXIgLS1zcHJpbmcuZGF0YXNvdXJjZS51cmw9JHtKREJDX0RBVEFCQVNFX1VSTH0KIGBgYAoKICMjIFRlc3RhbmRvCgogVW1hIHZleiByb2RhbmRvIG8gc2VydmnDp28sIMOpIHBvc3PDrXZlbCByZWFsaXphciBjaGFtYWRhcyBIVFRQLCBjb21vIG8gZXhlbXBsbyBhYmFpeG86CgpgYGAKIGN1cmwgLVggR0VUICJodHRwOi8vbG9jYWxob3N0OjgwODAvdjEvcHJvZHV0b3MvbWFyY2EvMT9pdGVucz01JnBhZ2luYT0wIiAtSCAiYWNjZXB0OiAqLyoiIHwganNvbl9wcApgYGAKY29tIG8gcXVhbCBzZSBlc3BlcmEgcmVjZWJlciBjb21vIHJlc3Bvc3RhIHVtIEpTT04gY29uZm9ybWUgZXhlbXBsbyBzZWd1aW50ZToKYGBgCiB7CiAgICJzb3J0IiA6IHsKICAgICAgInNvcnRlZCIgOiBmYWxzZSwKICAgICAgImVtcHR5IiA6IHRydWUsCiAgICAgICJ1bnNvcnRlZCIgOiB0cnVlCiAgIH0sCiAgICJsYXN0IiA6IHRydWUsCiAgICJwYWdlYWJsZSIgOiB7IC4uLiB9LAogICAiZmlyc3QiIDogdHJ1ZSwKICAgInRvdGFsUGFnZXMiIDogMSwKICAgIm51bWJlciIgOiAwLAogICAibnVtYmVyT2ZFbGVtZW50cyIgOiAxLAogICAic2l6ZSIgOiA1LAogICAiY29udGVudCIgOiBbCiAgICAgIHsKICAgICAgICAgInByZWNvVW5pdGFyaW8iIDogNTI5Ljk5LAogICAgICAgICAiZGVzY3JpY2FvIiA6ICJVbSBwcm9kdXRvIHBhcmEgZ2VyZW5jaWFyIHBhY290ZXMiLAogICAgICAgICAibm9tZSIgOiAiTWF2ZW4iLAogICAgICAgICAiY2F0ZWdvcmlhIiA6IHsKICAgICAgICAgICAgImlkIiA6IDMsCiAgICAgICAgICAgICJhdGl2byIgOiB0cnVlLAogICAgICAgICAgICAibm9tZSIgOiAiTGl2cmFyaWEiCiAgICAgICAgIH0sCiAgICAgICAgICJtYXJjYSIgOiB7CiAgICAgICAgICAgICJkZXNjcmljYW8iIDogIlVtYSBtYXJjYSBpbm92YWRvcmEiLAogICAgICAgICAgICAiaWQiIDogMSwKICAgICAgICAgICAgIm5vbWUiIDogIlNob3cgZGUgTWFyY2EiCiAgICAgICAgIH0sCiAgICAgICAgICJpZCIgOiAyLAogICAgICAgICAiZm9ybmVjZWRvciIgOiB7CiAgICAgICAgICAgICJjbnBqIiA6ICIqKioqKioqKiIsCiAgICAgICAgICAgICJpZCIgOiAxLAogICAgICAgICAgICAiZW5kZXJlY28iIDogIlJ1YSAxIiwKICAgICAgICAgICAgImVtYWlsIiA6ICJmb3JuZWNlZG9yMUAqKioqKioqKiIsCiAgICAgICAgICAgICJ0ZWxlZm9uZSIgOiAiMTExMTExKioqKiIsCiAgICAgICAgICAgICJub21lIiA6ICJGb3JuZWNlZG9yIEZvckFsbCIKICAgICAgICAgfSwKICAgICAgICAgInVuaWRhZGUiIDogInVuaWRhZGUiCiAgICAgIH0KICAgXSwKICAgInRvdGFsRWxlbWVudHMiIDogMSwKICAgImVtcHR5IiA6IGZhbHNlCn0KIGBgYAogCiAjIyBDb250cmlidWluZG8gY29tIGVzdGUgcHJvamV0bwoKUGFyYSBjb250cmlidWlyIGNvbSBlc3RlIHByb2pldG8sIHNpZ2EgZXN0ZXMgcGFzc29zOgoKMS4gRmHDp2EgdW0gJ0ZvcmsnIGRlc3RlIHJlcG9zaXTDs3JpbzsKMi4gQ3JpZSB1bSAnQnJhbmNoJyBjb20gbyBjw7NkaWdvIG5vIHRlcm1pbmFsOiBgZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUvPE5PTUVfRE9fQlJBTkNIPmA7CjMuIEZhw6dhIHN1YXMgYWx0ZXJhw6fDtWVzIGUgcmVhbGl6ZSBvICdhZGQgJiBjb21taXQnIGNvbSBvIHNlZ3VpbnRlIGPDs2RpZ28gbm8gdGVybWluYWw6IGBnaXQgYWRkIDxhcnF1aXZvcz4gJiYgZ2l0IGNvbW1pdCAtbSAibWVuc2FnZW0iYCwgbWVuc2FnZW0gZGUgY29tbWl0IHV0aWxpemFuZG8gW0NvbnZlbnRpb25hbENvbW1pdF0oaHR0cHM6Ly93d3cuY29udmVudGlvbmFsY29tbWl0cy5vcmcvZW4vdjEuMC4wLyk7CjQuIEVudMOjbywgcmVhbGl6ZSBvICdwdXNoJyBwYXJhIG8gb3JpZ2lhbmw6IGBnaXQgcHVzaCBvcmlnaW4gPGJvb3RjYW1wLWJhY2tlbmQtc3ByaW5nPi88TE9DQUw+YDsKNS4gUG9yIGZpbSwgY3JpZSB1bSAncHVsbCByZXF1ZXN0JyBwYXJhIGVzdGUgcmVwb3NpdMOzcmlvLgoKRW0gY2FzbyBkZSBkw7p2aWRhcywgbGVpYSBhIGRvY3VtZW50YcOnw6NvIGRvIEdpdEh1YiBzb2JyZSBbY29tbyBjcmlhciBwdWxsIHJlcXVlc3RzXShodHRwczovL2hlbHAuZ2l0aHViLmNvbS9lbi9naXRodWIvY29sbGFib3JhdGluZy13aXRoLWlzc3Vlcy1hbmQtcHVsbC1yZXF1ZXN0cy9jcmVhdGluZy1hLXB1bGwtcmVxdWVzdCkuCg== readmeEtag: '"b03d3692960f83a8d6953772a9ce077009a83473"' readmeLastModified: Fri, 22 Jan 2021 03:20:43 GMT repositoryId: 304887142 description: 'Bootcamp Backend: projeto de ecommerce usando Spring Boot' created: '2020-10-17T13:45:04Z' updated: '2024-02-23T11:59:40Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: thiagojacinto logo: https://avatars.githubusercontent.com/u/46906069?v=4 license: MPL-2.0 repoEtag: '"dd743c1ace275b4ca90fdc8b702e55d14f3bcf2fa7d6927cbb8d57cfe79331f5"' repoLastModified: Fri, 23 Feb 2024 11:59:40 GMT foundInMaster: true category: Data Validators id: 032c859199b555a28058a04e38fbb9b3 - source: openapi3 tags repository: https://github.com/hbhb-devloper/publicity-manage v3: true repositoryMetadata: base64Readme: IyBwdWJsaWNpdHktbWFuYWdlCgrlrqPkvKDlk4HnrqHnkIYK readmeEtag: '"42509e6cb88617b5c870d151a58082925972a5ac"' readmeLastModified: Sat, 20 Mar 2021 11:21:48 GMT repositoryId: 349703746 description: 财务管理系统-后端服务-宣传品管理 created: '2021-03-20T11:18:19Z' updated: '2021-03-20T12:23:57Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"b6024e2f3576d6f4e2e5df54d4fad84291977bdf6a65e1c6586d6bba900e3c7c"' repoLastModified: Sat, 20 Mar 2021 12:23:57 GMT foundInMaster: true category: - Server - Server Implementations id: 390b8433914447a1879fc2ae80c5ff4b - source: openapi3 tags repository: https://github.com/hbhb-devloper/job-executor v3: true repositoryMetadata: base64Readme: IyBqb2ItZXhlY3V0b3IKCuS7u+WKoeiwg+W6pgo= readmeEtag: '"de7348dd4405327794db2bc3e99cbb0c3239852f"' readmeLastModified: Sat, 20 Mar 2021 12:08:07 GMT repositoryId: 349713111 description: 财务管理系统-后端服务-任务调度 created: '2021-03-20T12:02:34Z' updated: '2021-03-20T12:23:52Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"3a04badef3df451ad31b9b757edccc16fb5660ed53756e28e1349285171969aa"' repoLastModified: Sat, 20 Mar 2021 12:23:52 GMT foundInMaster: true category: - Low-level Tooling - Parsers - Server Implementations id: 9fae1ce1379074b14a8a8349dee62a3e - source: openapi3 tags repository: https://github.com/mal2-project/fake-shop-detection_database v3: true repositoryMetadata: base64Readme: >- IyBGYWtlLVNob3AgRGV0ZWN0aW9uIERhdGFiYXNlCgojIyBBYm91dCAvIFN5bm9wc2lzCgoqIE1hbmFnZW1lbnQgZm9yIG1hbnVhbGx5IGNsYXNzaWZ5aW5nIHJlcG9ydGVkIHdlYnNpdGVzIChlLmcuIHZpYSBmYWtlIHNob3AgZGV0ZWN0aW9uIFJFU1QgQVBJKS4KKiBQcm9qZWN0IHN0YXR1czogd29ya2luZy9wcm90b3R5cGUKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgo+ICogW1JlcXVpcmVtZW50c10oI3JlcXVpcmVtZW50cykKPiAqIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCj4gKiBbVXNhZ2VdKCN1c2FnZSkKPiAgKiBbU2NyZWVuc2hvdHNdKCNzY3JlZW5zaG90cykKPiAqIFtSRVNULUFQSV0oI3Jlc3QtYXBpKQo+ICogW1Jlc291cmNlcyAoRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgbGlua3MpXSgjcmVzb3VyY2VzLWRvY3VtZW50YXRpb24tYW5kLW90aGVyLWxpbmtzKQo+ICogW0xpY2Vuc2VdKCNsaWNlbnNlKQo+ICogW0Fib3V0IE1BTDJdKCNhYm91dC1tYWwyKQoKIyMgUmVxdWlyZW1lbnRzCgoqIFVidW50dSAxOC4wNAoqIFB5dGhvbiAzLjUKKiBQb3N0Z3JlU1FMIDEwCiogUHl0aG9uLVBhY2thZ2VzIGFzIGRlZmluZWQgaW4gW3JlcXVpcm1lbnRzLnR4dF0oZGIvcmVxdWlyZW1lbnRzLnR4dCkKCiMjIEluc3RhbGxhdGlvbgoKQ3JlYXRlIGEgUHl0aG9uIHZpcnR1YWwgZW52aXJvbm1lbnQgd2l0aCBlLmcuIFt2aXJ0dWFsZW52d3JhcHBlcl0oaHR0cHM6Ly92aXJ0dWFsZW52d3JhcHBlci5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKS4KVGhlIFB5dGhvbiB2ZXJzaW9uIHVzZWQgaXMgMy41LgoKYGBgc2hlbGwKJCBta3ZpcnR1YWxlbnYgLXAgL3BhdGgvdG8vcHl0aG9uMy41IG1hbDJEQgpgYGAKCkluc3RhbGwgdGhlIHJlcXVpcmVkIFB5dGhvbiBwYWNrYWdlcwoKYGBgc2hlbGwKcGlwIGluc3RhbGwgLXIgZGIvcmVxdWlyZW1lbnRzLnR4dApgYGAKClBvc3RncmVTUUwgMTAgaXMgdXNlZCBhcyBkYXRhYmFzZS4gQ3JlYXRlIGEgZGF0YWJhc2UgYW5kIGNoYW5nZSB0aGUgYGRiL3NldHRpbmdzL2Jhc2UucHlgIGFjY29yZGluZ2x5LgoKYGBgcHl0aG9uCkRCX0hPU1QgPSAibG9jYWxob3N0IgpEQl9VU0VSID0gIm1hbDJkYiIKREJfTkFNRSA9ICJtYWwyZGIiCkRCX1BBU1NXT1JEID0gIk1ZX1NFQ1JFVF9QQVNTV09SRCIKYGBgCgpBZnRlciB0aGF0LCB0aGUgZGF0YWJhc2UgaXMgaW5pdGlhbGl6ZWQgYXMgZm9sbG93czoKCmBgYHNoZWxsCmNkIGRiCi4vbWFuYWdlLnB5IG1pZ3JhdGUKLi9tYW5hZ2UucHkgbG9hZGRhdGEgaW5pdF9ncm91cHMKLi9tYW5hZ2UucHkgbG9hZGRhdGEgaW5pdF93ZWJzaXRlX3Jpc2Nfc2NvcmUKLi9tYW5hZ2UucHkgbG9hZGRhdGEgaW5pdF93ZWJzaXRlX3R5cGVzCi4vbWFuYWdlLnB5IGxvYWRkYXRhIGluaXRfd2Vic2l0ZV9jYXRlZ29yeQouL21hbmFnZS5weSBsb2FkZGF0YSBpbml0X3dlYnNpdGVzX3JlcG9ydGVkX2J5CmBgYAoKVGhlIGFkbWluIHVzZXIgaXMgY3JlYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYHNoZWxsCiQgLi9tYW5hZ2UucHkgY3JlYXRlc3VwZXJ1c2VyCmBgYAoKRW50ZXIgYSBtYWlsIHNlcnZlciBpbiB0aGUgYGRiL3NldHRpbmdzL2Jhc2UucHlgLgoKYGBgcHl0aG9uCkFETUlOUyA9ICgKICAgICgiTmFtZSIsICJuYW1lQGRvbWFpbi50bGQiKSwKKQoKU0VSVkVSX0VNQUlMID0gIm5hbWVAZG9tYWluLnRsZCIKCkVNQUlMX0hPU1QgPSAibWFpbC5kb21haW4udGxkIgpFTUFJTF9IT1NUX1VTRVIgPSAibWFsMkRCIgpFTUFJTF9IT1NUX1BBU1NXT1JEID0gIk1ZX1NFQ1JFVF9QQVNTV09SRCIKCkRFRkFVTFRfRlJPTV9FTUFJTCA9ICJub3JlcGx5QGRvbWFpbi50bGQiCmBgYAoKIyMjIENocm9tZS1UcmVpYmVyIGbDvHIgU2VsZW5pdW0KClRvIGNyZWF0ZSB3ZWIgcGFnZSBzY3JlZW5zaG90IHRoZSBgY2hyb21pdW0tY2hyb21lZHJpdmVyYCBpcyBuZWVkZWQuCgpgYGAKJCBhcHQgaW5zdGFsbCBjaHJvbWl1bS1jaHJvbWVkcml2ZXIKYGBgCgojIyBVc2FnZQoKTm93IHRoZSBzZXJ2ZXIgY2FuIGJlIHN0YXJ0ZWQgd2l0aCB0aGUgRGphbmdvIGNvbW1hbmQgcnVuc2VydmVyLgoKYGBgc2hlbGwKLi9tYW5hZ2UucHkgcnVuc2VydmVyCmBgYAoKSW4geW91ciBicm93c2VyLCB5b3UgY2FuIG5vdyBnbyB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAvLgoKQXR0ZW50aW9uLCB0aGlzIGlzIGZvciBkZXZlbG9wbWVudCBvbmx5LiBJbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQsIGZvciBleGFtcGxlLCBbdXdzZ2ldKGh0dHBzOi8vdXdzZ2ktZG9jcy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvV1NHSXF1aWNrc3RhcnQuaHRtbCkgY2FuIGJlIHVzZWQgd2l0aCBbYXBhY2hlMl0oaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvKS4KIyMjIFNjcmVlbnNob3RzCgohW21hbDJEQl0oc2NyZWVuc2hvdC5wbmcpCgojIyBSRVNULUFQSQoKVGhlIFJFU1QgQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcGkuCgojIyBSZXNvdXJjZXMgKERvY3VtZW50YXRpb24gYW5kIG90aGVyIGxpbmtzKQoKKiBbRGphbmdvIFdlYiBGcmFtZXdvcmtdKGh0dHBzOi8vZG9jcy5kamFuZ29wcm9qZWN0LmNvbS9lbi8yLjIvKQoqIFtEamFuZ28gUkVTVCBGcmFtZXdvcmtdKGh0dHBzOi8vd3d3LmRqYW5nby1yZXN0LWZyYW1ld29yay5vcmcvKQoKCiMjIEFib3V0IE1BTDIKClRoZSBNQUwyIHByb2plY3QgYXBwbGllcyBEZWVwIE5ldXJhbCBOZXR3b3JrcyBhbmQgVW5zdXBlcnZpc2VkIE1hY2hpbmUgTGVhcm5pbmcgdG8gYWR2YW5jZSBjeWJlcmNyaW1lIHByZXZlbnRpb24gYnkgYSkgYXV0b21hdGluZyB0aGUgZGlzY292ZXJ5IG9mIGZyYXVkdWxlbnQgZUNvbW1lcmNlIGFuZCBiKSBkZXRlY3RpbmcgUG90ZW50aWFsbHkgSGFybWZ1bCBBcHBzIChQSEFzKSBpbiBBbmRyb2lkLgpUaGUgZ29hbCBvZiB0aGUgTUFMMiBwcm9qZWN0IGlzIHRvIHByb3ZpZGUgKGkpIGFuIE9wZW4gU291cmNlIGZyYW1ld29yayBhbmQgZXhwZXJ0IHRvb2xzIHdpdGggaW50ZWdyYXRlZCBmdW5jdGlvbmFsaXR5IGFsb25nIHRoZSByZXF1aXJlZCBwaXBlbGluZSDigJMgZnJvbSBtYWxpY2lvdXMgZGF0YSBhcmNoaXZpbmcsIGZlYXR1cmUgc2VsZWN0aW9uIGFuZCBleHRyYWN0aW9uLCB0cmFpbmluZyBvZiBNYWNoaW5lIExlYXJuaW5nIGNsYXNzaWZpY2F0aW9uIGFuZCBkZXRlY3Rpb24gbW9kZWxzIHRvd2FyZHMgZXhwbGFpbmFiaWxpdHkgaW4gdGhlIGFuYWx5c2lzIG9mIHJlc3VsdHMgKGlpKSB0byBleGVjdXRlIGl0cyBjb21wb25lbnRzIGF0IHNjYWxlIGFuZCAoaWlpKSB0byBwdWJsaXNoIGFuIGFubm90YXRlZCBHcm91bmQtVHJ1dGggZGF0YXNldCBpbiBib3RoIGFwcGxpY2F0aW9uIGRvbWFpbnMuIFRvIHJhaXNlIGF3YXJlbmVzcyBmb3IgY3liZXJjcmltZSBwcmV2ZW50aW9uIGluIHRoZSBnZW5lcmFsIHB1YmxpYywgdHdvIGRlbW9uc3RyYXRvcnMsIGEgRmFrZS1TaG9wIERldGVjdGlvbiBCcm93c2VyIFBsdWdpbiBhcyB3ZWxsIGFzIGEgQW5kcm9pZCBNYWx3YXJlIERldGVjdGlvbiBBbmRyb2lkIGFwcCBhcmUgcmVsZWFzZWQgdGhhdCBhbGxvdyBsaXZlLWluc3BlY3Rpb24gYW5kIEFJIGJhc2VkIHByZWRpY3Rpb25zIG9uIHRoZSB0cnVzdHdvcnRoaW5lc3Mgb2YgZUNvbW1lcmNlIHNpdGVzIGFuZCBBbmRyb2lkIGFwcHMuCgpUaGUgd29yayBpcyBiYXNlZCBvbiByZXN1bHRzIGNhcnJpZWQgb3V0IGluIHRoZSByZXNlYXJjaCBwcm9qZWN0IFtNQUwyIHByb2plY3RdKGh0dHBzOi8vcHJvamVrdGUuZmZnLmF0L3Byb2pla3QvMzA0NDk3NSksIHdoaWNoIHdhcyBwYXJ0aWFsbHkgZnVuZGVkIGJ5IHRoZSBBdXN0cmlhbiBGZWRlcmFsIE1pbmlzdHJ5IGZvciBDbGltYXRlIEFjdGlvbiwgRW52aXJvbm1lbnQsIEVuZXJneSwgTW9iaWxpdHksIElubm92YXRpb24gYW5kIFRlY2hub2xvZ3kgKEJNSykgdGhyb3VnaCB0aGUgSUNUIG9mIHRoZSBmdXR1cmUgcmVzZWFyY2ggcHJvZ3JhbSAoNnRoIGNhbGwpIG1hbmFnZWQgYnkgdGhlIEF1c3RyaWFuIGZlZGVyYWwgZnVuZGluZyBhZ2VuY3kgKEZGRykuCiogQXVzdHJpYW4gSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kgR21iSCwgQ2VudGVyIGZvciBEaWdpdGFsIFNhZmV0eSBhbmQgU2VjdXJpdHkgW0FJVF0oaHR0cHM6Ly93d3cuYWl0LmFjLmF0LykKKiBBdXN0cmlhbiBJbnN0aXR1dGUgZm9yIEFwcGxpZWQgVGVsZWNvbW11bmljYXRpb25zIFvDlklBVF0oaHR0cHM6Ly93d3cub2lhdC5hdCkKKiBYLU5FVCBTZXJ2aWNlcyBHbWJIIFtYTkVUXShodHRwczovL3gtbmV0LmF0L2RlLykKKiBLdXJhdG9yaXVtIHNpY2hlcmVzIMOWc3RlcnJlaWNoIFtLU8OWXShodHRwczovL2t1cmF0b3JpdW0tc2ljaGVyZXMtb2VzdGVycmVpY2guYXQvKQoqIElLQVJVUyBTZWN1cml0eSBTb2Z0d2FyZSBbSUtBUlVTXShodHRwczovL3d3dy5pa2FydXNzZWN1cml0eS5jb20vKQoKTW9yZSBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgYXQgW3d3dy5tYWx6d2VpLmF0XShodHRwOi8vd3d3Lm1hbHp3ZWkuYXQpCgojIyBDb250YWN0CkZvciBkZXRhaWxzIG9uIGJlaGFsZiBvZiB0aGUgTUFMMiBjb25zb3J0aXVtIGNvbnRhY3Q6IApBbmRyZXcgTGluZGxleSAocHJvamVjdCBsZWFkKQpSZXNlYXJjaCBFbmdpbmVlciwgRGF0YSBTY2llbmNlICYgQXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2UKQ2VudGVyIGZvciBEaWdpdGFsIFNhZmV0eSBhbmQgU2VjdXJpdHksIEFJVCBBdXN0cmlhbiBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSBHbWJICkdpZWZpbmdnYXNzZSA0IHwgMTIxMCBWaWVubmEgfCBBdXN0cmlhClQgKzQzIDUwNTUwLTQyNzIgfCBNICs0MyA2NjQgODE1Nzg0OCB8IEYgKzQzIDUwNTUwLTQxNTAKYW5kcmV3LmxpbmRsZXlAYWl0LmFjLmF0IHwgd3d3LmFpdC5hYy5hdApvcgpXb2ZsZ2FuZyBFaWJuZXIsIFgtTkVUIFNlcnZpY2VzIEdtYkgsIHdlQHgtbmV0LmF0CgojIyBMaWNlbnNlClRoZSBNQUwyIFNvZnR3YXJlIHN0YWNrIGlzIGR1YWwtbGljZW5zZWQgdW5kZXIgY29tbWVyY2lhbCBhbmQgb3BlbiBzb3VyY2UgbGljZW5zZXMuIApUaGUgU29mdHdhcmUgaW4gdGhpcyByZXBvc2l0b3J5IGlzIHN1YmplY3Qgb2YgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGRlZmluZWQgaW4gZmlsZSAnTElDRU5TRS5tZCcK readmeEtag: '"54de9967b8aa28db1a60514bcaeeb716e14a9196"' readmeLastModified: Mon, 22 Mar 2021 22:44:14 GMT repositoryId: 350507329 description: >- MAL2 Fake-Shop Detection Database. Multi-User Application with OpenAPI3 Endpoints for deadling with the inspection of fake-shops created: '2021-03-22T22:25:54Z' updated: '2021-03-23T20:43:16Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: mal2-project logo: https://avatars.githubusercontent.com/u/75363498?v=4 license: NOASSERTION repoEtag: '"487e2b7c122c25b26c591e6952ba40fb9c402c3c3d2c6db728f0dbbe27e7359e"' repoLastModified: Tue, 23 Mar 2021 20:43:16 GMT foundInMaster: true category: Server Implementations id: 963af65d9b1e14f4131885f08854968f - source: openapi3 tags repository: https://github.com/brevetech/breve_drf_template v3: true repositoryMetadata: base64Readme: >- IyBicmV2ZV9kcmZfdGVtcGxhdGUKClshW0JyZXZlIFRlbXBsYXRlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2JyZXZlLXRlbXBsYXRlLW9yYW5nZT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQTNNQ0EzTUNJK1BHUmxabk0rUEhOMGVXeGxQaTVqYkhNdE1YdG1hV3hzT2lObE1EQXdOR1E3ZlM1amJITXRNbnRtYVd4c09pTm1abVk3ZlR3dmMzUjViR1UrUEM5a1pXWnpQangwYVhSc1pUNVNaV04xY25OdklERnNiMmR2SUhCaGNtRWdjR1Z5Wm1sc0lHUmxJR052Y25KbGJ6d3ZkR2wwYkdVK1BHY2dhV1E5SWtOaGNHRmZNaUlnWkdGMFlTMXVZVzFsUFNKRFlYQmhJRElpUGp4bklHbGtQU0pEWVhCaFh6RXRNaUlnWkdGMFlTMXVZVzFsUFNKRFlYQmhJREVpUGp4eVpXTjBJR05zWVhOelBTSmpiSE10TVNJZ2QybGtkR2c5SWpjd0lpQm9aV2xuYUhROUlqY3dJaTgrUEhCaGRHZ2dhV1E5SWxOMWMzUnlZV05qYWNPemJsOHlJaUJrWVhSaExXNWhiV1U5SWxOMWMzUnlZV05qYWNPemJpQXlJaUJqYkdGemN6MGlZMnh6TFRJaUlHUTlJazAwTWk0MUxEVTRZVEUyTERFMkxEQXNNQ3d4TFRZdU1qVXRNUzR5TjJ3dExqWTNMUzR6ZGkwNExqZElNalV1TXpWV01URklNelV1TlRoV01qY3VNamxzTGpZM0xTNHpZVEUyTERFMkxEQXNNQ3d4TERFM0xqWXNNeTQwTml3eE5pNHhOeXd4Tmk0eE55d3dMREFzTVMwMUxqRXNNall1TWpkQk1UWXNNVFlzTUN3d0xERXNOREl1TlN3MU9GcHRNQzB5TWk0NU5HRTJMamd4TERZdU9ERXNNQ3d4TERBc05pNDNOeXcyTGpnemRqQkJOaTQzT1N3MkxqYzVMREFzTUN3d0xEUXlMalVzTXpVdU1EVmFJaTgrUEhKbFkzUWdhV1E5SWxKbFkzVERvVzVuZFd4dlh6RXpJaUJrWVhSaExXNWhiV1U5SWxKbFkzVERvVzVuZFd4dklERXpJaUJqYkdGemN6MGlZMnh6TFRJaUlIZzlJakV4TGpVMklpQjVQU0kwTnk0M01pSWdkMmxrZEdnOUlqRXdMakl6SWlCb1pXbG5hSFE5SWpFd0xqSTRJaTgrUEM5blBqd3ZaejQ4TDNOMlp6ND0pXShodHRwczovL3d3dy5icmV2ZXRlY2guY29tLykKWyFbZm9ydGhlYmFkZ2UgbWFkZS13aXRoLXB5dGhvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYWRlX3dpdGgtcHl0aG9uLWJsdWU/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXB5dGhvbildKGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvKQpbIVtmb3J0aGViYWRnZSBkamFuZ28tcmVzdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kamFuZ28tcmVzdF9mcmFtZXdvcmstYTMwMDAwP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1kamFuZ28pXShodHRwczovL3d3dy5weXRob24ub3JnLykKWyFbZm9ydGhlYmFkZ2UgcHJlLWNvbW1pdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9wcmVfY29tbWl0LWVuYWJsZWQtZ3JlZW4/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXByZS1jb21taXQpXShodHRwczovL2dpdGh1Yi5jb20vcHJlLWNvbW1pdC9wcmUtY29tbWl0KQpbIVtmb3J0aGViYWRnZSBwcmUtY29tbWl0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3VzZXMtY29tbWl0aXplbi1FMDAwNEQ/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWdpdCldKGh0dHBzOi8vZ2l0aHViLmNvbS9jb21taXRpemVuLXRvb2xzL2NvbW1pdGl6ZW4pClshW0xpY2Vuc2U6IE1JVF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLU1JVC1ibHVlLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlKV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wKQoKLS0tCgpBIERqYW5nbyBSZXN0IEZyYW1ld29yayBiYXNlIHRlbXBsYXRlIHdpdGggY3VzdG9tIGNvbmZpZ3VyYXRpb25zLCBpbnRlbmRlZCB0byBzYXZlIHRpbWUgd2l0aCBzb21lIG9mIHRoZSBib2lsZXJwbGF0ZSBjb25maWd1cmF0aW9uLiBPcHRtaXplZCBmb3IgUHlDaGFybSBJREUgYW5kIFZTQ29kZS4KCiMjIEluZGV4CgotIFticmV2ZV9kcmZfdGVtcGxhdGVdKCNicmV2ZV9kcmZfdGVtcGxhdGUpCiAgLSBbSW5kZXhdKCNpbmRleCkKICAtIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQogIC0gW0dldHRpbmcgc3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKICAtIFtgLmVudmAgc3RydWN0dXJlXSgjZW52LXN0cnVjdHVyZSkKICAtIFtJbnN0YWxsaW5nIGFkZGl0aW9uYWwgbW9kdWxlc10oI2luc3RhbGxpbmctYWRkaXRpb25hbC1tb2R1bGVzKQogIC0gW0NyZWF0aW5nIG5ldyBhcHBdKCNjcmVhdGluZy1uZXctYXBwKQogIC0gW0VuZHBvaW50IGNsZWFuIGNvZGUgYXJjaGl0ZWN0dXJlXSgjZW5kcG9pbnQtY2xlYW4tY29kZS1hcmNoaXRlY3R1cmUpCiAgLSBbT3BlbkFQSSAzIFNjaGVtYSBEb2N1bWVudGF0aW9uXSgjb3BlbmFwaS0zLXNjaGVtYS1kb2N1bWVudGF0aW9uKQogIC0gW0F1dGhlbnRpY2F0aW9uXSgjYXV0aGVudGljYXRpb24pCiAgLSBbQ09SUyBQb2xpY3ldKCNjb3JzLXBvbGljeSkKICAtIFtwcmUtY29tbWl0IGFuZCBRQ0EgZmxvd10oI3ByZS1jb21taXQtYW5kLXFjYS1mbG93KQogIC0gW0NvbW1pdGl6ZW5dKCNjb21taXRpemVuKQogIC0gW0dpdGh1YiBBY3Rpb25zIENJL0NEIFdvcmtmbG93XSgjZ2l0aHViLWFjdGlvbnMtY2ljZC13b3JrZmxvdykKICAtIFtDb250cmlidXRpb25dKCNjb250cmlidXRpb24pCgojIyBGZWF0dXJlcwoKLSBQeXRob24gMyBhbmQgRGphbmdvIDQuMC4yIChsb2NrZWQgdG8gdGhpcyB2ZXJzaW9uIGR1ZSB0byBzZWN1cml0eSBpc3N1ZXMpLgotIGAuZW52YCBtYW5hZ2luZyB3aXRoIHJlbGV2YW50IHNhZmUgdmFyaWFibGVzIHVzaW5nIFtgZGphbmdvLWVudmlyb25gXShodHRwczovL2RqYW5nby1lbnZpcm9uLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8pIG1vZHVsZS4KLSBgcGlwZmlsZWAgcmVxdWlyZW1lbnRzIG1vZHVsZXMgaGFuZGxpbmcuCi0gU2NyaXB0IGZvciBlbmFibGluZy9kaXNhYmxpbmcgdGVtcGxhdGUgZnVuY3Rpb25pbmcuICoqVXNlIHdoZW4gaW50ZW5kZWQgdG8gY29udHJpYnV0ZSoqLgotIEVudmlyb25tZW50LXNlbnNpdGl2ZSBzZXR0aW5ncyAoYGRldmAsIGB0ZXN0YCBhbmQgYHByb2RgKS4KLSBPcGVuQVBJIDMgc2NoZW1hIGFuZCBEb2NWaWV3IHdpdGggZnVsbCBjdXN0b21pemFibGUgZW5kcG9pbnQgbWV0YWRhdGEsIHVzaW5nIFtgZHJmLXNwZWN0YWN1bGFyYF0oaHR0cHM6Ly9kcmYtc3BlY3RhY3VsYXIucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3JlYWRtZS5odG1sKS4KLSBKV1QgQXV0aGVudGljYXRpb24gcHJlY29uZmlndXJlZCB1c2luZyBbU2ltcGxlIEpXVF0oaHR0cHM6Ly9kamFuZ28tcmVzdC1mcmFtZXdvcmstc2ltcGxland0LnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8pLgotIERlZmF1bHQgW0dpdGh1YiBBY3Rpb25zXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMvYWN0aW9ucykgQ0kgd29ya2Zsb3cuCi0gYHdoaXRlbm9pc2VgIHN0YXRpY2ZpbGUgaGFuZGxpbmcgZm9yICoqSGVyb2t1KiogZGVwbG95cyBhbmQgc2ltaWxhciBvbmVzLgotIENsZWFuIGNvZGUgZW5kcG9pbnQgYXJjaGl0ZWN0dXJlLgotIEN1c3RvbSBlcnJvciBoYW5kbGluZyBmb3IgY2VudHJhbGl6ZWQgbG9nZ2luZyBhbmQgZXhjZXB0aW9uIGJlaGF2aW91ciBkZWZpbml0aW9uCi0gSlNPTiByZXNwb25zZXMgZm9yIDQwNCBhbmQgNTAwIGVycm9ycyBpbiBub24gZGVidWcgZW52aXJvbm1lbnQKLSBCb2lsZXJwbGF0ZSBhYnN0cmFjdCBtb2RlbHMgKFRpbWVzdGFtcGVkIGFuZCBQZXJzb24pLgotIEhlcm9rdSBwcm9jZmlsZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24KLSBMb2cgcmVxdWVzdCBtaWRkbGV3YXJlCgojIyBHZXR0aW5nIHN0YXJ0ZWQKClRvIHVzZSB0aGlzIHRlbXBsYXRlIHJ1biB0aGUgKippbnN0YWxsIHNoZWxsKiogcHJvdmlkZWQgaW4gdGhpcyBwcm9qZWN0LCBgZGphbmdvYCBhbmQgYHBpcGVudmAgcGFja2FnZXMgYXJlIHJlcXVpcmVkIGdsb2JhbGx5LiBJZiB5b3UgYXJlIGluIFdpbmRvd3MsIHVzZSBgZ2l0IGJhc2hgLCBQb3dlcnNoZWxsIHNjcmlwdCB2ZXJzaW9uIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQ6CgpgYGBzaAojIEV4ZWN1dGUgaW5zdGFsbCBzaGVsbCBkaXJlY3QgZnJvbSByZXBvCiQgYmFzaCA8KGN1cmwgLXMgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JyZXZldGVjaC9icmV2ZV9kcmZfdGVtcGxhdGUvbWFzdGVyL2NyZWF0ZV9wcm9qZWN0LnNoKQpgYGAKClRoaXMgd2lsbCBzdGFydCBhIG5ldyBkamFuZ28gcHJvamVjdCB3aXRoIHRoZSB0ZW1wbGF0ZSBzdHJ1Y3R1cmUuIFRvIHJ1biB0aGUgcHJvamVjdCwgeW91IG5lZWQgdG8gc2V0IHVwIHRoZSBgLmVudmAgZmlsZSBmaXJzdC4KCiMjIGAuZW52YCBzdHJ1Y3R1cmUKClRoaXMgcHJvamVjdCB1c2VzIGEgYC5lbnZgIGZpbGUgYW5kIHRoZSBbYGRqYW5nby1lbnZpcm9uYF0oaHR0cHM6Ly9kamFuZ28tZW52aXJvbi5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKSBtb2R1bGUgdG8ga2VlcCBhbGwgdGhlIHNlbnNpdGl2ZSBjb25maWd1cmF0aW9uLCBsaWtlIHNlY3JldCBrZXlzLCBkYXRhYmFzZSBVUkkncyBvciBzb21lIG90aGVyIGNyZWRlbnRpYWxzIG9mZiB2ZXJzaW9uIGNvbnRyb2wuIFRoZSBkZWZhdWx0IGAuZW52YCBzdHJ1Y3R1cmUgaW5jbHVkZXMgdGhpcyB2YXJpYWJsZXM6CgpgYGB0b21sCkRFQlVHPTx2YWx1ZT4KU0VDUkVUX0tFWT08c2VjcmV0X2tleT4KREVWX0RCX1VSTD08ZGV2X2RiX3VybD4KUFJPRF9EQl9VUkw9PHByb2RfZGJfdXJsPgpgYGAKCi0gKipERUJVRyoqIChgVHJ1ZWAsIGBGYWxzZWApIHdpbGwgZGVmaW5lIGlmIGRlYnVnIG1vZGUgaXMgZW5hYmxlZCBvciBub3QuIFVzZSBgVHJ1ZWAgZm9yIGRldmVsb3BtZW50IGFuZCB0ZXN0aW5nIHB1cnBvc2UgYW5kIGBGYWxzZWAgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuIFRoaXMgdmFyaWFibGUgYWxzbyBkZWZpbmVzIHdoaWNoIGNvbmZpZ3VyYXRpb24gaXMgYmVpbmcgdXNlZC4KLSAqKlNFQ1JFVF9LRVkqKiBpcyB0aGUgc2VlZCB1c2VkIGZvciBlbmNyeXB0aW9uIHB1cnBvc2VzLiBEamFuZ28gcmVjb21tZW5kcyB0byBrZWVwIGl0IG9mZiBzb3VyY2UgY29udHJvbC4gVG8gZ2VuZXJhdGUgYSBzZWNyZXQga2V5LCB5b3UgY2FuIGdvIHRvIFtEamVjcmV0eV0oaHR0cHM6Ly9kamVjcmV0eS5pcikuCi0gKipERVZfREJfVVJMKiogaXMgdGhlIGRldmVsb3BtZW50IGVudmlyb25tZW50IGRhdGFiYXNlIFVSTC4gRm9yIHRlc3RpbmcgcHVycG9zZSB5b3UgY2FuIHVzZSBgc3FsaXRlOi8vL2RiLnNxbGl0ZTNgIGFzIERFVl9EQl9VUkwuIElmIHlvdSB3YW50IHRvIHVzZSBhbm90aGVyIGRhdGFiYXNlIGVuZ2luZSwgcmVtZW1iZXIgdG8gKippbnN0YWxsKiogdGhlIHJlcXVpcmVkIHBhY2thZ2UgKGUuZy4gYHBzeWNvcGcyYCBmb3IgUG9zdGdyZVNRTCBkYXRhYmFzZXMpLgotICoqUFJPRF9EQl9VUkwqKiBpcyB0aGUgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCBkYXRhYmFzZSBVUkwuIEZvciB0ZXN0aW5nIHB1cnBvc2UgeW91IGNhbiB1c2UgYHNxbGl0ZTovLy9kYi5zcWxpdGUzYCBhcyBQUk9EX0RCX1VSTC4gSWYgeW91IHdhbnQgdG8gdXNlIGFub3RoZXIgZGF0YWJhc2UgZW5naW5lLCByZW1lbWJlciB0byAqKmluc3RhbGwqKiB0aGUgcmVxdWlyZWQgcGFja2FnZSAoZS5nLiBgcHN5Y29wZzJgIGZvciBQb3N0Z3JlU1FMIGRhdGFiYXNlcykuCgojIyBJbnN0YWxsaW5nIGFkZGl0aW9uYWwgbW9kdWxlcwoKVG8gaW5zdGFsbCBhIG5ldyBwYWNrYWdlLCBydW46CgpgYGBzaAojIEluc3RhbGwgcGFja2FnZQokIHBpcGVudiBpbnN0YWxsIDxwYWNrYWdlPgpgYGAKClRoaXMgd2lsbCBrZWVwIGFsbCByZXF1aXJlbWVudHMgcGFja2FnZXMgaW50byB0aGUgYFBpcGZpbGVgLCBpbXByb3ZpbmcgcHJvamVjdCBjb21wYXRpYmlsaXR5IGFjcm9zcyB0ZWFtcyBhbmQgYWxsb3dpbmcgZWFzeSB1c2Ugb2YgdmlydHVhbCBlbnZpcm9ubWVudHMuCgpUbyByZW1vdmUgYSBwYWNrYWdlLCBydW46CgpgYGBzaAojIFVuaW5zdGFsbCBwYWNrYWdlCiQgcGlwZW52IHVuaW5zdGFsbCA8cGFja2FnZT4KYGBgCgpUaGlzIHdpbGwgcmVtb3ZlIHRoZSBwYWNrYWdlIGZyb20gdGhlIGBQaXBmaWxlYC4KCiMjIENyZWF0aW5nIG5ldyBhcHAKClRoaXMgdGVtcGxhdGUgZGVmaW5lcyBhIGRpZmZlcmVudCBmb2xkZXIgc3RydWN0dXJlIGZvciBhcHBzLCBwdXR0aW5nIHRoZW0gaW4gYW4gYGFwcHNgIGRpcmVjdG9yeSBpbnNpZGUgdGhlIHByb2plY3QgZGlyZWN0b3J5LiBUaGlzIGlzIG9ubHkgZm9yIGNvbWZvcnQgcHVycG9zZXMuIEJlY2F1c2Ugb2YgdGhpcywgdG8gY3JlYXRlIGEgbmV3IGFwcCwgeW91IG5lZWQgdG8gcnVuIHRoaXM6CgpgYGBzaGVsbAojIENyZWF0aW5nIG5ldyBwcm9qZWN0IGFwcAokIG1rZGlyIHtwcm9qZWN0X25hbWV9L2FwcHMve2FwcF9uYW1lfQokIHB5dGhvbiBtYW5hZ2UucHkgc3RhcnRhcHAge2FwcF9uYW1lfSBhcHBzL3thcHBfbmFtZX0KYGBgCgpBZnRlciB0aGlzLCB5b3UgY2FuIGluc3RhbGwgdGhlIGFwcCBpbiB0aGUgYHNldHRpbmdzLmJhc2VgLCBidXQgdXNpbmcgdGhlIGZ1bGwgYXBwIG5hbWUsIG5vdCB0aGUgcmVsYXRpdmUgb25lLgoKLSB+fi5hcHB+fgotIHByb2plY3RfbmFtZS5hcHBzLmFwcAoKIyMgRW5kcG9pbnQgY2xlYW4gY29kZSBhcmNoaXRlY3R1cmUKClRoaXMgdGVtcGxhdGUgdXNlcyBhIHNwZWNpZmljIGFyY2hpdGVjdHVyZSBiYXNlZCAoa2luZGEpIG9uIE9PUCBsYW5ndWFnZXMgKipDbGVhbiBBcmNoaXRlY3R1cmUqKi4gVGhpcyBpcyB0byBrZWVwIGFsbCBidXNpbmVzcyBsb2dpYyBhbmQgdmFsaWRhdGlvbiBjb2RlIG9mZiB0aGUgdmlld3MgY29kZSwgaGF2aW5nIGNsZWFuZXIgY29kZSBhbmQgbW9yZSBtb2R1bGFyaXphdGlvbi4gVGhlIGZpbGVzIGltcGxpZWQgaGVyZSBhcmU6CgotIFNlcmlhbGl6ZXJzOiBkZWZpbmVzIGFsbCBpbnB1dCBhbmQgb3V0cHV0IG9iamVjdHMgZm9yIHRoZSBlbmRwb2ludHMuIFRoaXMgc2VyaWFsaXplcnMgY2FuIGJlIGJhc2VkIG9uIGRhdGFiYXNlIG1vZGVscyBgTW9kZWxTZXJpYWxpemVyYCBvciBjYW4gYmUgZnVsbCBjdXN0b20gc2VyaWFsaXplciBgU2VyaWFsaXplcmAuIElmIHlvdSB3YW50IHRvIHVzZSBkaWZmZXJlbnQgc2VyaWFsaXplcnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgKGUuZy4gY3JlYXRlIGEgam9pbiBxdWVyeSBmb3Igb3V0cHV0IHRoYXQgam9pbnMgbWFueSBtb2RlbHMgb3IgaGF2ZSBhIGRpZmZlcmVudCBzdHJ1Y3R1cmUgdGhhbiB0aGUgZGVmaW5lZCBpbiB0aGUgbW9kZWwgZm9yIGEgY3JlYXRlIGVuZHBvaW50KSwgeW91IHdpbGwgbmVlZCB0byB1c2UgdGhlIGBSZWFkV3JpdGVTZXJpYWxpemVyTWl4aW5gLgotIFZpZXdzOiBkZWZpbmVzIGFsbCBlbmRwb2ludHMuIFlvdSBjYW4gdXNlIEZ1bmN0aW9uIEJhc2VkIFZpZXdzIG9yIENsYXNzIEJhc2VkIFZpZXdzIChgQVBJVmlld2AsIGBWaWV3U2V0YCwgYE1vZGVsVmlld1NldGApLgotIEhhbmRsZXJzOiBkZWZpbmVzIGZ1bmN0aW9ucyB3aXRoIGFsbCBidXNpbmVzcyBsb2dpYyBhbmQgdmFsaWRhdGlvbnMsIGRhdGFiYXNlIHF1ZXJpZXMgYW5kIGRhdGFiYXNlIGNvbW1hbmRzLiBVc2UgYSBoYW5kbGVyIG9ubHkgaWYgeW91IG5lZWQgdG8gcmVkZWZpbmUgYSBjb21wbGV4IGxvZ2ljIGZvciB0aGUgZW5kcG9pbnQsIG90aGVyd2lzZSwgY2hlY2sgaWYgYE1vZGVsVmlld1NldGAgY2FuIGhlbHAuCi0gRW50aXRpZXM6IGRlZmluZXMgaW5wdXQgYW5kIG91dHB1dCBvYmplY3RzIGZvciB0aGUgaGFuZGxlcnMuCi0gRXJyb3JTZXJpYWxpemVyOiBkZWZpbmVzIHRoZSBiYXNpYyBlcnJvciBzdHJ1Y3R1cmUgZm9yIGVuZHBvaW50IHJlc3BvbnNlcy4KCkVudGl0aWVzLCBTZXJpYWxpemVycyBhbmQgaGFuZGxlcnMgYXJlIG5vdCBjcmVhdGVkIHdoZW4gdXNpbmcgYHB5dGhvbiBtYW5hZ2UucHkgc3RhcnRhcHBgLCB5b3UnbGwgbmVlZCB0byBjcmVhdGUgdGhlbSBtYW51YWxseS4KClRoZSAqKmNvbW1vbioqIHBhY2thZ2UgaXMgbWVhbnQgdG8gc3RvcmUgYWxsIGNvbW1vbiBhY2Nlc3Mgb2JqZWN0cywgbGlrZSBjbGFzc2VzLCBlcnJvciBzZXJpYWxpemVycywgbWl4aW5zLCBldGMuCgojIyBPcGVuQVBJIDMgU2NoZW1hIERvY3VtZW50YXRpb24KClRoaXMgdGVtcGxhdGUgaW5jbHVkZXMgT3BlbkFQSSAzIHNjaGVtYSBkb2N1bWVudGF0aW9uLCB1c2luZyBgLm1kYCBmaWxlcyB0byBjcmVhdGUgcmljaCB0ZXh0IGRlc2NyaXB0aW9ucy4gVGhpcyBkZXNjcmlwdGlvbnMgYXJlIHNhdmVkIGluIHRoZSAqKmFwaWRvY3MqKiBmb2xkZXIuCgpUaGUgYGluZGV4Lm1kYCBmaWxlIHJlcHJlc2VudHMgdGhlIGdlbmVyYWwgc2NoZW1hIGRlc2NyaXB0aW9uLiBNb2RpZnkgaXQgdG8gZWRpdCB0aGUgc2NoZW1hIGdlbmVyYWwgZGVzY3JpcHRpb24gdmFsdWUsIGxpa2UgaW5zdHJ1Y3Rpb25zLCBwcm9qZWN0IG9iamVjdGl2ZXMsIGV0Yy4gVGhlIHJlc3RpbmcgZ2VuZXJhbCBpbmZvcmF0aW9uIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBgU1BFQ1RBQ1VMQVJfU0VUVElOR1NgIGRpY3QgaW4gYHNldHRpbmdzLmJhc2VgOyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgW29mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZHJmLXNwZWN0YWN1bGFyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9zZXR0aW5ncy5odG1sKS4KCkZvciBldmVyeSBvdGhlciBlbmRwb2ludCB5b3UgY2FuIGNyZWF0ZSBhIGB7ZW5kcG9pbnR9Lm1kYCBmaWxlIGluIHRoZSBgYXBpZG9jcy9lbmRwb2ludHMve2FwcH1gIGZvbGRlci4gVG8gbG9hZCBpdCBpbiB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludCwgcmVhZCB0aGUgZmlsZSB2aWEgYHJlYWRfZG9jc19tZCgpYCB1dGlscyBmdW5jdGlvbiwgYW5kIGxvYWQgaXQgdmlhIGBleHRlbmRfc2NoZW1hKClgIGZ1bmN0aW9uIChpbmNsdWRlZCBpbiBbYGRyZi1zcGVjdGFjdWxhcmBdKGh0dHBzOi8vZHJmLXNwZWN0YWN1bGFyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9jdXN0b21pemF0aW9uLmh0bWwjc3RlcC0yLWV4dGVuZC1zY2hlbWEpKS4gRXhhbXBsZToKCmBgYHB5dGhvbgpAbWV0aG9kX2RlY29yYXRvcihuYW1lPSdsaXN0JywgZGVjb3JhdG9yPWV4dGVuZF9zY2hlbWEoCiAgICBzdW1tYXJ5PSJMb2NhdGlvbiBsaXN0IiwKICAgICMgbGlzdC5tZCBmaWxlIHN0b3JlcyB0aGUgYXBpIGRlc2NyaXB0aW9uIGZvciB0aGlzIGVuZHBvaW50CiAgICBkZXNjcmlwdGlvbj1yZWFkX2RvY3NfbWQoJ2VuZHBvaW50cy9jb3JlL2xpc3QnKSwKICAgIHJlc3BvbnNlcz17CiAgICAgICAgMjAwOiBMb2NhdGlvblNlcmlhbGl6ZXIobWFueT1UcnVlKSwKICAgICAgICA0MDA6IEVycm9yU2VyaWFsaXplcigpLAogICAgICAgIDUwMDogRXJyb3JTZXJpYWxpemVyKCkKICAgIH0KKSkKY2xhc3MgTG9jYXRpb25WaWV3U2V0KHZpZXdzZXRzLlZpZXdTZXQpOgpgYGAKCiMjIEF1dGhlbnRpY2F0aW9uCgpUaGlzIHRlbXBsYXRlIHVzZXMgYGRqYW5nb3Jlc3RmcmFtZXdvcmtfc2ltcGxlX2p3dGAgbW9kdWxlIGZvciBKV1QgQmVhcmVyIHRva2VuIGF1dGhlbnRpY2F0aW9uLgoKVGhpcyBtb2R1bGUgd29ya3Mgd2l0aCBhIHBhaXIgb2YgSldUIHRva2VucywgYSBgYWNjZXNzYCBvbmUsIHRoYXQgaXMgbmVlZGVkIGFzIGBBdXRob3JpemF0aW9uYCBpbiBoZWFkZXIgb2YgYW55IHJlcXVlc3QsIGFuZCBhIGByZWZyZXNoYCBvbmUgdGhhdCBpcyB1c2VkIHRvIGdldCBhIG5ldyBgYWNjZXNzYCB0b2tlbi4gQWNjZXNzIHRva2VuIGxpdmVzIGZvciA1IG1pbnV0ZXMgYnkgZGVmYXVsdCwgYW5kIHJlZnJlc2ggdG9rZW4gbGl2ZXMgZm9yIDI0IGhvdXJzIGJ5IGRlZmF1bHQ7IHRoaXMgY29uZmlndXJhdGlvbiBjYW4gYmUgc2V0IHVwIGFzIHJlcXVpcmVkLCBzZWUgW29mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGphbmdvLXJlc3QtZnJhbWV3b3JrLXNpbXBsZWp3dC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3Qvc2V0dGluZ3MuaHRtbCkuCgpUaGUgYGF1dGhfY3JlYXRlYCBlbmRwb2ludCwgZm9yIGdldHRpbmcgYW4gYWNjZXNzIGFuZCByZWZyZXNoIHRva2VuIHBhaXIgd2l0aCBhIGRqYW5nbyB1c2VyLCBhbmQgdGhlIGBhdXRoX2NyZWF0ZV9yZWZyZXNoYCwgdGhhdCBnZXRzIGEgbmV3IGFjY2VzcyB0b2tlbiBwcm92aWRpbmcgYSByZWZyZXNoIHRva2VuLCBhcmUgYm90aCBhbHJlYWR5IGV4cG9zZWQgYW5kIGNvbmZpZ3VyZWQgYnkgZGVmYXVsdC4KCiMjIENPUlMgUG9saWN5CgpUaGlzIHRlbXBsYXRlIHVzZXMgYGRqYW5nby1jb3JzLWhlYWRlcnNgIG1pZGRsZXdhcmUgZm9yIGNvcnMgaGFuZGxpbmcuIFRoZSBjb25maWd1cmF0aW9uIGlzIHNldCB1cCBpbiBgQ09SU19PUklHSU5fQUxMT1dfQUxMYCBrZXkgYXQgYHNldHRpbmdzLmJhc2VgLCBzZXQgYEZhbHNlYCBhcyBkZWZhdWx0LiBDaGFuZ2UgaXQgdG8gYFRydWVgIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcyB3aGVuIHVzaW5nIFNQQSBmcm9udGVuZHMgYW5kIHRoaXJkIHBhcnR5IGNvbnN1bWVycy4KCiMjIHByZS1jb21taXQgYW5kIFFDQSBmbG93CgpUaGlzIHRlbXBsYXRlIGludGVncmF0ZXMgYSBmdWxsIFFDQSBmbG93IHVzaW5nIGBwcmUtY29tbWl0YCBob29rcywgdGhhdCBhdXRvbWF0ZXMgY29kZSBxdWFsaXR5IHRhc2tzIG9uIGV2ZXJ5IGNvbW1pdC4gVXNpbmcgdGhpcyBpbiB5b3VyIHByb2plY3QgZnJvbSB0aGUgYmVnaW5uaW5nIGRlbGV0ZXMgdGhlIG5lZWQgdG8gd29ycnkgYWJvdXQgaXNzdWVzIGFzIHVuYXR0ZW5kZWQgd2FybmluZ3MsIGNvZGUgc3R5bGVzLCBldGMsIGRvaW5nIGl0IGF1dG9tYXRpY2FsbHkuCgpUaGUgUUNBIGZsb3cgaW50ZWdyYXRlcyB0aGlzIGhvb2tzOgoKLSBbYGlzb3J0YF0oaHR0cHM6Ly9naXRodWIuY29tL1B5Q1FBL2lzb3J0KSBmb3IgaW1wb3J0IHNvcnRpbmcKLSBbYGJsYWNrYF0oaHR0cHM6Ly9naXRodWIuY29tL3BzZi9ibGFjaykgZm9yIGNvZGUgZm9ybWF0dGluZwotIFtgYXV0b2ZsYWtlYF0oaHR0cHM6Ly9naXRodWIuY29tL1B5Q1FBL2F1dG9mbGFrZSkgZm9yIHVudXNlZCBpbXBvcnRzIGFuZCB2YXJpYWJsZXMgcmVtb3ZhbAotIFtgcHlsaW50YF0oaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvcHlsaW50LykgZm9yIFB5dGhvbiBjb21wbGFpbnQgbGludGluZwotIGBjb21taXRpemVuLWNoZWNrYCBmb3IgY29tbWl0IG1lc3NhZ2Ugc3RydWN0dXJlIGNoZWNraW5nCgpJZiBgcHJlLWNvbW1pdGAgaXMgbm90IHdvcmtpbmcgZm9yIHlvdSwgdHJ5IHRvIHJ1biBgcHJlLWNvbW1pdCBpbnN0YWxsYCBmb3IgaW5zdGFsbGluZyB0aGUgaG9va3MuIEFsbCB0aGUgaG9va3MgY29uZmlndXJhdGlvbiBpcyBpbiB0aGUgYC5wcmUtY29tbWl0LWNvbmZpZy55YW1sYCBmaWxlIGFuZCBldmVyeSB0b29sIGNvbmZpZ3VyYXRpb24gaXMgaW4gaXRzIHNwZWNpZmllZCBjb25maWcgZmlsZS4KCiMjIENvbW1pdGl6ZW4KClRoaXMgdGVtcGxhdGUgYWxzbyBpbmNsdWRlcyBbYGNvbW1pdGl6ZW5gXShodHRwczovL2NvbW1pdGl6ZW4tdG9vbHMuZ2l0aHViLmlvL2NvbW1pdGl6ZW4vKSBhcyBhIGNvbW1pdCB3cml0aW5nIGhlbHBlciwgZm9sbG93aW5nIHRoZSBbY29udmV0aW9uYWwgY29tbWl0c10oaHR0cHM6Ly93d3cuY29udmVudGlvbmFsY29tbWl0cy5vcmcvZW4vdjEuMC4wLykgc3RhbmRhcmRzIGFuZCBtYWtpbmcgY29tbWl0cyB1c2VmdWwgZm9yIHJlbGVhc2UgdGFza3MuIFRvIHVzZSBpdCwgcmVwbGFjZSBgZ2l0IGNvbW1pdGAgY29tbWFuZCB3aXRoIGBnaXQgY3ogY29tbWl0YC4gQWxsIHRlbXBsYXRlIHNwZWNzIGFuZCBjb25maWd1cmF0aW9ucyBhcmUgaW4gYHB5cHJvamVjdC50b21sYCBmaWxlLgoKIyMgR2l0aHViIEFjdGlvbnMgQ0kvQ0QgV29ya2Zsb3cKClRoaXMgdGVtcGxhdGUgaW5jbHVkZXMgYSBiYXNpYyBHaXRodWIgQWN0aW9ucyBDSSBXb3JrZmxvdywgdG9nZ2xlZCBvbiBkZXZlbG9wIGJyYW5jaCAoZ2l0IGZsb3cpIHB1c2ggYW5kIHB1bGwgcmVxdWVzdC4gSXQncyBkaXNhYmxlZCBieSBkZWZhdWx0OyB0byBlbmFibGUgaXQsIGdvIHRvIGAuZ2l0aHViL3dvcmtmbG93cy9jaS55bWxgIGFuZCB0b2dnbGUgY29tbWVudCBpbiBhbGwgZmlsZSBsaW5lcy4gSXQgYWxzbyBpbmNsdWRlcyBhIENEIHdvcmtmbG93IHRoYXQgc2ltcGx5IGJ1bXBzIHZlcnNpb24gdGFnLCBhbmQgbWFrZXMgYSByZWxlYXNlIHdpdGggY2hhbmdlbG9nLCBwb3dlcmVkIGJ5ICoqY29tbWl0aXplbioqLgoKIyMgQ29udHJpYnV0aW9uCgoqKkZvciBjb250cmlidXRpb24qKiwgYmFzZSB5b3VyIGJyYW5jaCBpbiBgZGV2ZWxvcGAuIERpc2FibGUgdGVtcGxhdGUgZmVhdHVyZXMgdXNpbmcgdGhlIHByb3ZpZGVkIGB0b2dnbGVfdGVtcGxhdGUucHlgIHNjcmlwdC4gVGhpcyB3aWxsIGZpbmQgYW5kIHJlcGxhY2UgdGhlIGBweS10cGxgIHN0cmluZ3MgYHt7cHJvamVjdF9uYW1lfX1gIHdpdGggc2ltcGxlIHN0cmluZ3MgYHByb2plY3RfbmFtZWAgaW4gYWxsIHByb2plY3QgZmlsZXMgaW4gb3JkZXIgdG8gYWxsb3cgaXQgdG8gcnVuIGFuZCB0ZXN0LgoKYGBgc2gKIyAiZGlzYWJsZSIgcmVwbGFjZXMge3twcm9qZWN0X25hbWV9fSB3aXRoIHByb2plY3RfbmFtZSwgYWxsb3dpbmcgY29kZSB0byBydW4sICJlbmFibGUiIGRpc2NhcmRzIHRoZSBmaW5kIGFuZCByZXBsYWNlIGVuYWJsaW5nIHRoZSBweS10cGwgZmVhdHVyZXMgcmVxdWlyZWQgdG8gZGphbmdvIHByb2plY3QgdGVtcGxhdGUKcHl0aG9uIHRvZ2dsZV90ZW1wbGF0ZS5weSA8ZW5hYmxlfGRpc2FibGU+CmBgYAoKV2hlbiB5b3UgZmluaXNoZWQgeW91ciBjaGFuZ2VzLCByZS1lbmFibGUgdGhlIHRlbXBsYXRlIGZlYXR1cmVzIHdpdGggcHJldmlvdXMgc2NyaXB0LCBhbmQgdGhlbiBwdWxsIHJlcXVlc3QgdG8gZGV2ZWxvcC4gKipQdWxsIHJlcXVlc3RzIHdvbid0IGJlIGFjY2VwdGVkIGlmIHRlbXBsYXRlIGZlYXR1cmVzIGFyZSBub3QgZW5hYmxlZCoqLgo= readmeEtag: '"3916d1268dbc9fa6e51c68be2de4f8e4e0e56780"' readmeLastModified: Fri, 08 Jul 2022 04:38:38 GMT repositoryId: 329782725 description: Django Rest base template created: '2021-01-15T01:58:27Z' updated: '2022-01-11T04:49:30Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: brevetech logo: https://avatars.githubusercontent.com/u/61919566?v=4 license: MIT repoEtag: '"224af7be96091cbf1f123e4f2df6ba2befc0c3eb24bc9b96b8320fa9814d5ed5"' repoLastModified: Tue, 11 Jan 2022 04:49:30 GMT foundInMaster: true category: Server Implementations id: 3252a3757181b778457575dd31338472 - source: openapi3 tags repository: https://github.com/josuablejeru/aws-openapi-ui v3: true repositoryMetadata: base64Readme: >- IyBBV1MgT3BlbmFwaSBVSQoKR2VuZXJhdGUgYW5kIHNlcnZlIGEgVUkgZm9yIHlvdXIgb3BlbmFwaSBkZWZpbml0aW9uIHdpdGggQVdTIENESwoKIyMgSW5zdGFsbGF0aW9uCmBgYGJhc2gKJCB5YXJuIGFkZCBhd3Mtb3BlbmFwaS11aQpgYGAKIyMg8J+agCBFeGFtcGxlIHVzYWdlCmBgYHR5cGVzY3JpcHQKbmV3IEF3c09wZW5hcGlVaShzY29wZSwgJ215LXNlcnZpY2UnLCB7CiAgICBvcGVuYXBpUGF0aDogJzxwYXRoLXRvLXNwZWM+JywKICAgIHNlcnZlcnM6IFsKICAgICAgICAnYXBpLmZvby5jb20nLAogICAgICAgICdkZXYuYXBpLmZvby5jb20nCiAgICBdCiAgfSkKYGBgCgoKIyMg4pyM77iPIEdldCBpbiB0b3VjaCB3aXRoIG1lCgo8YSBocmVmPSJodHRwczovL2ludG8tdGhlLWNvZGUuY29tIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBhbHQ9IlBlcnNvbmFsIFdlYnNpdGUiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9QZXJzb25hbCUyMFdlYnNpdGUtJTIzMTIxMDBFLnN2Zz8mc3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvQ29sb3I9d2hpdGUiIC8+PC9hPgo8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2pvc3VhYmxlamVydSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgYWx0PSJUd2l0dGVyIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdHdpdHRlci0lMjMxREExRjIuc3ZnPyZzdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289dHdpdHRlciZsb2dvQ29sb3I9d2hpdGUiIC8+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vam9zdWEtYmxlamVydS1hMjg3MWExNjQiIHRhcmdldD0iX2JsYW5rIj48aW1nIGFsdD0iTGlua2VkSW4iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saW5rZWRpbi0lMjMwMDc3QjUuc3ZnPyZzdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlIiAvPjwvYT4KWyFbIkJ1eSBNZSBBIENvZmZlZSJdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXNzZXRzL2ltZy9jdXN0b21faW1hZ2VzL29yYW5nZV9pbWcucG5nKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9qb3N1YWJsZWplcnUpCgojIyDwn5OdIExpY2Vuc2UKCkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExJQ0VOU0UgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyBBY2tub3dsZWRnZW1lbnRzCi0gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWk= readmeEtag: '"7b3c4db91cae4aa8e0d864699ed1419d3dd53f82"' readmeLastModified: Mon, 26 Jul 2021 10:46:30 GMT repositoryId: 388463929 description: serve your api with swagger-ui and CDK created: '2021-07-22T13:01:34Z' updated: '2022-01-28T09:22:48Z' language: HTML archived: false stars: 0 watchers: 2 forks: 0 owner: josuablejeru logo: https://avatars.githubusercontent.com/u/37913833?v=4 license: MIT repoEtag: '"8249edd52d24c303d69f2869350f5768cb865c8f09ecdd1414aa9a8f6b3baa85"' repoLastModified: Fri, 28 Jan 2022 09:22:48 GMT foundInMaster: true category: - SDK - Server Implementations id: ee2544503d1967a786a966e774f9ef25 - source: openapi3 tags repository: https://github.com/virtue-dbis/vrem-unity-interface v3: true repositoryMetadata: base64Readme: >- IyBWUkVNIFVuaXR5IEludGVyZmFjZQoKQyMgY2xpZW50IGdlbmVyYXRlZCB3aXRoIFtPcGVuQVBJXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIHRvIHByb3ZpZGUgYWNjZXNzIHRvCnRoZSBbVmlydHVhbCBFeGhpYml0aW9uIE1hbmFnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9WSVJUVUUtREJJUy92aXJ0dWFsLWV4aGliaXRpb24tbWFuYWdlcikgc2VydmVyIEFQSQppbiBbVW5pdHldKGh0dHBzOi8vdW5pdHkuY29tLykuCgojIyBTZXR1cAoKVG8gaW5jbHVkZSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlIGluIHlvdXIgVW5pdHkgcHJvamVjdCwgYWRkIHRoZSBmb2xsb3dpbmcgbGluZSB0byB5b3VyIGBtYW5pZmVzdC5qc29uYApmaWxlOgoKYGBganNvbgogICAgImNoLnVuaWJhcy5kbWkuZGJpcy52cmVtLmNsaWVudCI6ICJzc2g6Ly9naXRAZ2l0aHViLmNvbTpWSVJUVUUtREJJUy92cmVtLXVuaXR5LWludGVyZmFjZS5naXQjbWFpbiIsCmBgYAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIGFsc28gdXNlIHRoZSBVbml0eSBQYWNrYWdlIE1hbmFnZXIgYW5kIGFkZCB0aGUKVVJMIGBnaXRAZ2l0aHViLmNvbTpWSVJUVUUtREJJUy92cmVtLXVuaXR5LWludGVyZmFjZS5naXQjbWFpbmAuCgojIyBEZXZlbG9wbWVudAoKRm9yIGRldmVsb3BtZW50LCBjbG9uZSB0aGlzIHJlcG9zaXRvcnkgaW50byB0aGUgYFBhY2thZ2VzYCBkaXJlY3Rvcnkgb2YgdGhlIFVuaXR5IHByb2plY3QuICAKWW91IG1heSB3YW50IHRvIHJ1biBgLi9ncmFkbGV3IGNsZWFuIGRlcGxveUFuZFRpZHlgIHRvIGdlbmVyYXRlIHRoZSBiaW5hcmllcyBhbmQgKHJlKW9wZW4gdGhlIHByb2plY3QgaW4gVW5pdHkgaW4gb3JkZXIKdG8gZ2VuZXJhdGUgdGhlIGAubWV0YWAgZmlsZXMuCg== readmeEtag: '"797a06e730738e4fcd45887894f591d2943e8201"' readmeLastModified: Mon, 08 Nov 2021 13:56:41 GMT repositoryId: 401296924 description: OpenAPI bindings for VREM in Unity created: '2021-08-30T10:03:47Z' updated: '2021-11-08T13:56:43Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: VIRTUE-DBIS logo: https://avatars.githubusercontent.com/u/55091121?v=4 repoEtag: '"772d8517fb0b9b31af2c5348ef1e07d0a4fa148b54bdfb2544df87b5dd863517"' repoLastModified: Mon, 08 Nov 2021 13:56:43 GMT foundInMaster: true category: Code Generators id: b4f4604163ff96389f3a929b3d05bf13 - source: openapi3 tags repository: https://github.com/ans-group/laravel-api-docs v3: true id: aa2ac4e8bbb09ed6543330c6b06298ac repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVrZmFzdC5jby51ay9sb2dvcy91a2Zhc3QvNDQxeDEyNl90cmFuc3BhcmVudF9zdHJhcGxpbmUucG5nIiBhbHQ9IlVLRmFzdCBMb2dvIiB3aWR0aD0iMzUwcHgiIGhlaWdodD0iYXV0byIgLz4KCiMgTGFyYXZlbCBBUEkgRG9jcyBbQmV0YV0KCipQYWNrYWdlIGlzIHN0aWxsIGluIGJldGEgYW5kIGlzIG5vdCByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2UqCgpBdXRvbWF0aWNhbGx5IGdlbmVyYXRlIEFQSSBkb2N1bWVudGF0aW9uIGZvciB5b3VyIGxhcmF2ZWwgQVBJJ3MgYmFzZWQgb2ZmIHlvdXIgYXBwbGljYXRpb24gcm91dGVzIGFuZCBoYW5keSBQSFAgOCBhdHRyaWJ1dGVzLgoKIyMgSW5zdGFsbGF0aW9uCgpGaXJzdCwgdXNlIGNvbXBvc2VyIHRvIHJlcXVpcmUgdGhlIHBhY2thZ2UgYXMgYmVsb3c6CgpgYGAKY29tcG9zZXIgcmVxdWlyZSB1a2Zhc3QvbGFyYXZlbC1hcGktZG9jcwpgYGAKClRoZW4gYWxsIHdlIG5lZWQgdG8gZG8gaXMgdG8gcmVnaXN0ZXIgdGhlIHNlcnZpY2UgcHJvdmlkZXIgaW4gdGhlIGBwcm92aWRlcnNgIGtleSBpbiBgY29uZmlnL2FwcC5waHBgOgoKYGBgClVLRmFzdFxMYXJhdmVsQXBpRG9jc1xTZXJ2aWNlUHJvdmlkZXI6OmNsYXNzLApgYGAKCiMjIFVzYWdlCgpEb2N1bWVudGF0aW9uIGlzIGdlbmVyYXRlZCBieSBzY2FubmluZyB5b3VyIHJvdXRlcyBmaWxlIGFuZCBmaW5kaW5nIGNvbnRyb2xsZXIgbWV0aG9kcyB3aXRoIHNwZWNpYWwgZW5kcG9pbnQgYXR0cmlidXRlcyB0YWdnZWQgdG8gdGhlbS4KCldoaWxzdCB5b3UgY2FuIGVhc2lseSBkZWZpbmUgeW91ciBvd24gZW5kcG9pbnQgdHlwZXMsIHRoZSBwYWNrYWdlIGNvbWVzIHdpdGggc29tZSBzZW5zaWJsZSBkZWZhdWx0cyB0aGF0IGdlbmVyYWxseSBjb25mb3JtIHRvIGxhcmF2ZWwgZGVmYXVsdHMKCiMjIyBJbmRleAoKVGhlIGluZGV4IGVuZHBvaW50IGlzIGZvciBlbmRwb2ludHMgdGhhdCByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCwgZm9yIGV4YW1wbGU6CgpgYGBwaHAKdXNlIFVLRmFzdFxMYXJhdmVsQXBpRG9jc1xFbmRwb2ludHM7CnVzZSBBcHBcSHR0cFxSZXNvdXJjZXNcUGV0UmVzb3VyY2U7CnVzZSBBcHBcTW9kZWxzXFBldDsKCmNsYXNzIFBldENvbnRyb2xsZXIKewogICAgI1tFbmRwb2ludHNcSW5kZXgoUGV0UmVzb3VyY2U6OmNsYXNzKV0KICAgIHB1YmxpYyBmdW5jdGlvbiBpbmRleCgpCiAgICB7CiAgICAgICAgcmV0dXJuIFBldFJlc291cmNlOjpjb2xsZWN0aW9uKFBldDo6cGFnaW5hdGUoKSk7CiAgICB9Cn0KYGBgCgojIyMgQ3JlYXRlCgpUaGUgY3JlYXRlIGVuZHBvaW50IGlzIGZvciBlbmRwb2ludHMgdGhhdCBjcmVhdGUgYSBuZXcgcmVzb3VyY2UuCgpgYGBwaHAKdXNlIFVLRmFzdFxMYXJhdmVsQXBpRG9jc1xFbmRwb2ludHM7CnVzZSBBcHBcSHR0cFxSZXNvdXJjZXNcUGV0UmVzb3VyY2U7CnVzZSBBcHBcTW9kZWxzXFBldDsKCmNsYXNzIFBldENvbnRyb2xsZXIKewogICAgI1tFbmRwb2ludHNcQ3JlYXRlKFBldFJlc291cmNlOjpjbGFzcykKICAgIHB1YmxpYyBmdW5jdGlvbiBzdG9yZSgpCiAgICB7CiAgICB9Cn0KYGBgCgojIyMgU2hvdwoKVGhlIHNob3cgZW5kcG9pbnQgc2hvd3MgYW4gaW5kaXZpZHVhbCByZXNvdXJjZQoKYGBgcGhwCnVzZSBVS0Zhc3RcTGFyYXZlbEFwaURvY3NcRW5kcG9pbnRzOwp1c2UgQXBwXEh0dHBcUmVzb3VyY2VzXFBldFJlc291cmNlOwp1c2UgQXBwXE1vZGVsc1xQZXQ7CgpjbGFzcyBQZXRDb250cm9sbGVyCnsKICAgICNbRW5kcG9pbnRzXFNob3coUGV0UmVzb3VyY2U6OmNsYXNzKQogICAgcHVibGljIGZ1bmN0aW9uIHNob3coKQogICAgewogICAgfQp9CmBgYAoKIyMjIFVwZGF0ZQoKVGhlIHVwZGF0ZSBlbmRwb2ludCB1cGRhdGVzIGEgcmVzb3VyY2UKCmBgYHBocAp1c2UgVUtGYXN0XExhcmF2ZWxBcGlEb2NzXEVuZHBvaW50czsKdXNlIEFwcFxIdHRwXFJlc291cmNlc1xQZXRSZXNvdXJjZTsKdXNlIEFwcFxNb2RlbHNcUGV0OwoKY2xhc3MgUGV0Q29udHJvbGxlcgp7CiAgICAjW0VuZHBvaW50c1xVcGRhdGUoUGV0UmVzb3VyY2U6OmNsYXNzKQogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZSgpCiAgICB7CiAgICB9Cn0KYGBgCgojIyMgRGVzdHJveQoKVGhlIGRlc3Ryb3kgZW5kcG9pbnQgZGVsZXRlcyBhIHJlc291cmNlCgpgYGBwaHAKdXNlIFVLRmFzdFxMYXJhdmVsQXBpRG9jc1xFbmRwb2ludHM7CgpjbGFzcyBQZXRDb250cm9sbGVyCnsKICAgICNbRW5kcG9pbnRzXERlc3Ryb3ldCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVzdHJveSgpCiAgICB7CiAgICB9Cn0KYGBgCgojIyBDdXN0b21pc2luZyBSZXF1ZXN0IGFuZCBSZXNwb25zZSBTdHJ1Y3R1cmUKCllvdXIgQVBJIGxpa2VseSBoYXMgaXRzIG93biBmb3JtYXQgZGlmZmVyZW50IHRvIHRoZSBkZWZhdWx0cyBwcm92aWRlZCBieSB0aGlzIHBhY2thZ2UuIEJ1dCByZWRlZmluaW5nIHRoZXNlIGlzIG5vdCBkaWZmaWN1bHQuCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBhIGN1c3RvbSBpbmRleCBlbmRwb2ludDoKCmBgYHBocApuYW1lc3BhY2UgQXBwXERvY3M7Cgp1c2UgVUtGYXN0XExhcmF2ZWxBcGlEb2NzXEVuZHBvaW50Owp1c2UgQXR0cmlidXRlOwoKI1tBdHRyaWJ1dGVdCmNsYXNzIEluZGV4IGV4dGVuZHMgRW5kcG9pbnQKewogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHByb3RlY3RlZCAkcmVzb3VyY2UpCiAgICB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNwb25zZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ2RhdGEnID0+IFskdGhpcy0+cmVmKCR0aGlzLT5yZXNvdXJjZSldLAogICAgICAgICAgICAnbWV0YScgPT4gWwogICAgICAgICAgICAgICAgJ3Blcl9wYWdlJyA9PiAxNSwKICAgICAgICAgICAgICAgICd0b3RhbF9wYWdlcycgPT4gMTAsCiAgICAgICAgICAgICAgICAnY3VycmVudF9wYWdlJyA9PiAxLAogICAgICAgICAgICBdLAogICAgICAgIF07CiAgICB9Cn0KYGBgCgpFbmRwb2ludCBjbGFzc2VzIGNhbiBkZWZpbmUgdHdvIG1ldGhvZHM6IGByZXF1ZXN0YCBhbmQgYHJlc3BvbnNlYCBlYWNoIHJldHVybiBhIFBIUCBhcnJheSBvdXRsaW5pbmcgdGhlIHJlcXVlc3Qgc3RydWN0dXJlLgoKQ2FsbHMgdG8gYCR0aGlzLT5yZWZgIGNhbiBiZSBwYXNzZWQgYSBjbGFzcyBwYXRoIHRvIGEgYW55IGNsYXNzIHdpdGggdGhlICNbUmVzb3VyY2VdIGF0dHJpYnV0ZSBvbiBpdC4KCkZvciBtb3JlIGV4YW1wbGVzIGxvb2sgaW5zaWRlIHRoZSBgc3JjL0VuZHBvaW50c2AgZm9sZGVyCgojIyBDb250cmlidXRpbmcKCldlIHdlbGNvbWUgY29udHJpYnV0aW9ucyB0byB0aGlzIHBhY2thZ2UgdGhhdCB3aWxsIGJlIGJlbmVmaWNpYWwgdG8gdGhlIGNvbW11bml0eS4KCllvdSBjYW4gcmVhY2ggb3V0IHRvIG91ciBvcGVuLXNvdXJjZSB0ZWFtIHZpYSAqKm9wZW4tc291cmNlQHVrZmFzdC5jby51ayoqIHdobyB3aWxsIGdldCBiYWNrIHRvIHlvdSBhcyBzb29uIGFzIHBvc3NpYmxlLgoKUGxlYXNlIHJlZmVyIHRvIG91ciBbQ09OVFJJQlVUSU5HXShDT05UUklCVVRJTkcubWQpIGZpbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgoKIyMgU2VjdXJpdHkKCklmIHlvdSB0aGluayB5b3UgaGF2ZSBpZGVudGlmaWVkIGEgc2VjdXJpdHkgdnVsbmVyYWJpbGl0eSwgcGxlYXNlIGNvbnRhY3Qgb3VyIHRlYW0gdmlhICoqc2VjdXJpdHlAdWtmYXN0LmNvLnVrKiogd2hvIHdpbGwgZ2V0IGJhY2sgdG8geW91IGFzIHNvb24gYXMgcG9zc2libGUsIHJhdGhlciB0aGFuIHVzaW5nIHRoZSBpc3N1ZSB0cmFja2VyLgoKCiMjIExpY2VuY2UKClRoaXMgcHJvamVjdCBpcyBsaWNlbmNlZCB1bmRlciB0aGUgTUlUIExpY2VuY2UgKE1JVCkuIFBsZWFzZSBzZWUgdGhlIFtMaWNlbmNlXShMSUNFTkNFKSBmaWxlIGZvciBtb3JlIGluZm9ybWF0aW9uLgo= readmeEtag: '"5308cd3d56f09109621c48fa5e43698862a2cc7a"' readmeLastModified: Mon, 04 Jul 2022 06:17:07 GMT repositoryId: 464829158 description: >- A package to automatically generate openapi v3 documentation for your laravel rest apis created: '2022-03-01T09:36:55Z' updated: '2022-07-04T06:15:01Z' language: PHP archived: false stars: 0 watchers: 15 forks: 0 owner: ans-group logo: https://avatars.githubusercontent.com/u/46777488?v=4 repoEtag: '"7a4501ba031a8bbbc48487d0c779d02eee7ebf0ae72a310b176accb8ef595e97"' repoLastModified: Mon, 04 Jul 2022 06:15:01 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/ukfast/laravel-api-docs - source: openapi3 tags repository: https://github.com/lukearranz/challenge-alkemy v3: true id: 5a0746cd17c530f3859600be1dde6a47 repositoryMetadata: base64Readme: >- IyDinKggUGVsaWN1bGFzIENoYWxsZW5nZSAtIFJlc3RBcGkg4pyoCgpBcGkgUmVzdCBmb3IgcHJhY3RpY2UgcHVycG9zZXMKCiMjIEphdmEgKyBTcHJpbmdCb290CgotIE1hdmVuCi0gSGliZXJuYXRlCi0gTXlTcWwKLSBTcHJpbmdTZWN1cml0eQotIEpXVCBmb3Igc2VjdXJpdHkKLSBMb21ib2sKLSBKVW5pdAotIFN3YWdnZXIgJiBPcGVuQXBpIDMuMAoKIyMgSW5zdGFsbGF0aW9uCgpNYXZlbjoKYGBgYmFzaAptdm4gY2xlYW4gaW5zdGFsbApgYGAKCiMjIFVzYWdlCmBgYGphdmEKCi8vIEFwaSBkb2N1bWVudGF0aW9uCnd3dy5sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwjLwogICAgICAgIAovLyBEZWZhdWx0IFVzZXJzOgpVc2VyOiAgIHVzZXJuYW1lIC0gcGFzc3dvcmQKYGBgCgojIyBBdXRob3IKCi0gaHR0cHM6Ly93d3cubHVjYXNhcnJhbnouY29tLmFyLwotIGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9sdWNhcy1hcnJhbnotZ2FyY2lhLwoK readmeEtag: '"f42177fe8ac3f3bfc9e4a3163df14721cc0168b4"' readmeLastModified: Wed, 28 Dec 2022 20:28:36 GMT repositoryId: 531430694 description: >- Api Rest desarrollada con el fin de continuar aprendiendo el entorno Java+SpringBoot created: '2022-09-01T08:32:01Z' updated: '2022-12-15T12:04:31Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: lukearranz logo: https://avatars.githubusercontent.com/u/83666817?v=4 repoEtag: '"49aa580c77e54af7c9beec63b417e08636ec05d8aa3bb5eae717b883cb7a1e05"' repoLastModified: Thu, 15 Dec 2022 12:04:31 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/ynnckth/pizza-time v3: true id: ff9222532fea8d98b39f9133bc9694fc repositoryMetadata: base64Readme: >- IyBQaXp6YSBUaW1lIQoKIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL3lubmNrdGgvcGl6emEtdGltZS9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbC9iYWRnZS5zdmcpCgoqRXhwbG9yaW5nIHN0YXRlLW9mLXRoZS1hcnQgc3RhdGUgbWFuYWdlbWVudCBhbmQgdGVzdGluZyBwcmFjdGljZXMgZm9yIFJlYWN0SlMgaW4gMjAyMioKClRoaXMgcHJvamVjdCB3YXMgYm9vdHN0cmFwcGVkIHdpdGggW0NyZWF0ZSBSZWFjdCBBcHBdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwKSB1c2luZyB0aGUgVHlwZVNjcmlwdCB0ZW1wbGF0ZS4KCiMjIFByZS1yZXF1aXNpdGVzCgotIE9ubHkgdGVzdGVkIG9uIGEgbWFjIGRldmVsb3BtZW50IG1hY2hpbmUgKHNvbWUgc2NyaXB0cyBtaWdodCBuZWVkIGFkYXB0aW9uIHRvIHdvcmsgb24gd2luZG93cykKLSBgTm9kZWAgYW5kIG5wbSBMVFMgbXVzdCBiZSBpbnN0YWxsZWQgb24gZGV2IG1hY2hpbmUKLSBgRG9ja2VyYCBtdXN0IGJlIGluc3RhbGxlZCBvbiBkZXYgbWFjaGluZQoKIyMgQXZhaWxhYmxlIHNjcmlwdHMKCmBgYHNoZWxsCiMgR2VuZXJhdGUgY2xpZW50IGNvZGUgZm9yIG9yZGVyLXNlcnZpY2UgQVBJIChyZXF1aXJlZCBmb3IgZnJvbnRlbmQpOgouL29wZW5hcGktY29kZWdlbi5zaAoKIyBJbnN0YWxsIGRlcGVuZGVuY2llczoKbnBtIGluc3RhbGwKCiMgUnVuIGluIGRldmVsb3BtZW50IG1vZGUgKG9uIHBvcnQgMzAwMCk6Cm5wbSBzdGFydAoKIyBSdW4gdW5pdCBhbmQgaW50ZWdyYXRpb24gdGVzdHM6IApucG0gdGVzdAoKIyBSdW4gZTJlIHRlc3RzOgpucG0gcnVuIGN5cHJlc3M6b3BlbgpgYGAKCiMjIFRvcGljcyBjb3ZlcmVkIGluIHRoaXMgcHJvamVjdAoKLSBDUkEgdXNpbmcgVHlwZVNjcmlwdCB0ZW1wbGF0ZQotIFJvdXRpbmcgdXNpbmcgcmVhY3Qtcm91dGVyLWRvbSBhbmQgQnJvd3NlclJvdXRlcgotIFN0YXRlIG1hbmFnZW1lbnQgdXNpbmcgUmVkdXggVG9vbGtpdAotIFJlZHV4IG1pZGRsZXdhcmUgdXNpbmcgVGh1bmsgKGRlZmF1bHQgZnJvbSBSZWR1eCBUb29sa2l0KQotIEZldGNoaW5nIGRhdGEgdXNpbmcgUlRLIFF1ZXJ5Ci0gUmVhY3QgZXJyb3IgYm91bmRhcnkKLSBGb3JtIHZhbGlkYXRpb24gdXNpbmcgRm9ybWlrCi0gVW5pdCBhbmQgaW50ZWdyYXRpb24gdGVzdGluZyBpbmNsdWRpbmcgYSByZWFsIHN0b3JlIHVzaW5nIHJlYWN0LXRlc3RpbmctbGlicmFyeSBhbmQgbXN3IGZvciBtb2NraW5nIG5ldHdvcmsgcmVxdWVzdHMKLSBFMmUgdGVzdGluZyB1c2luZyBjeXByZXNzIChzdHViYmVkIG5ldHdvcmsgY2FsbHMpCi0gQ2xpZW50IGNvZGUgZ2VuZXJhdGlvbiBiYXNlZCBvbiBPcGVuQVBJIHNwZWNpZmljYXRpb24KLSBDSS9DRCBwaXBlbGluZSB3aXRoIEdpdEh1YiBQYWdlcywgaW5jbHVkaW5nIHRlc3RpbmcgYW5kIGRlcGxveW1lbnQKLSBFbWJlZCBidWlsZCB2ZXJzaW9uIGluZm9ybWF0aW9uIGludG8gZGVwbG95ZWQgZnJvbnRlbmQgYXJ0aWZhY3QgYmFzZWQgb24gY29tbWl0IGhhc2ggYW5kIGJ1aWxkIG51bWJlcgotIEVudmlyb25tZW50IGUyZSB0ZXN0aW5nIGZvciBmdWxsIGludGVncmF0aW9uIHRlc3RzIG9mIGZyb250LSBhbmQgYmFja2VuZAotIFZpc3VhbCByZWdyZXNzaW9uIHRlc3Rpbmcgd2l0aCBDeXByZXNzIHNuYXBzaG90IHBsdWdpbgoKIyMgTGlua3MgYW5kIHJlbGV2YW50IGRvY3VtZW50YXRpb24KLSBbUmVkdXggVG9vbGtpdCBUeXBlU2NyaXB0IHF1aWNrIHN0YXJ0XShodHRwczovL3JlZHV4LXRvb2xraXQuanMub3JnL3R1dG9yaWFscy90eXBlc2NyaXB0KQotIFtPZmZpY2lhbCBDUkEgdGVtcGxhdGUgcHJvamVjdCB1c2luZyByZWR1eCB0b29sa2l0IGFuZCB0eXBlc2NyaXB0XShodHRwczovL2dpdGh1Yi5jb20vcmVkdXhqcy9jcmEtdGVtcGxhdGUtcmVkdXgtdHlwZXNjcmlwdCkKLSBbUmVkdXggYXN5bmMgbG9naWNdKGh0dHBzOi8vcmVkdXguanMub3JnL3R1dG9yaWFscy9lc3NlbnRpYWxzL3BhcnQtNS1hc3luYy1sb2dpYykKLSBbR3VpZGVsaW5lcyBmb3Igd3JpdGluZyB0ZXN0cyBmb3IgUmVkdXhdKGh0dHBzOi8vcmVkdXguanMub3JnL3VzYWdlL3dyaXRpbmctdGVzdHMpCi0gW1JlZHV4IFRvb2xraXQgUXVlcnkgT3ZlcnZpZXddKGh0dHBzOi8vcmVkdXgtdG9vbGtpdC5qcy5vcmcvcnRrLXF1ZXJ5L292ZXJ2aWV3KQoKLS0tCgojIyBDb2RlIEdlbmVyYXRpb24KClRoaXMgcHJvamVjdCB1c2VzIFN3YWdnZXIgQ29kZUdlbiBhbmQgT3BlbkFQSSB0byBnZW5lcmF0ZSBwYXJ0cyBvZiB0aGUgY29uc3VtZXIgY29kZSBmb3IgdGhlIG9yZGVyIHNlcnZpY2UgQVBJLgoKIVtDb2RlIGdlbmVyYXRpb24gcHJvY2Vzc10oLi9kb2Mvb3BlbmFwaS1jb2RlZ2VuLnBuZykKCiMjIyBQcmVyZXF1aXNpdGVzCi0gVGhlIHByb3ZpZGVkIHNjcmlwdCBleHBlY3RzIHlvdSB0byBoYXZlIGBkb2NrZXJgIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmUgdG8gYmUgYWJsZSB0byBleGVjdXRlIHRoZSBjb2RlIGdlbmVyYXRpb24KCiMjIyBHZW5lcmF0aW5nIENsaWVudCBDb2RlCgpgYGBzaGVsbAojIEdlbmVyYXRlIHRoZSBUeXBlU2NyaXB0IGNsaWVudCBjb2RlOgouL29wZW5hcGktY29kZWdlbi5zaAojIFRoaXMgd2lsbCBjcmVhdGUgYSBmb2xkZXIgYGdlbmVyYXRlZGAgY29udGFpbmluZyB0aGUgZ2VuZXJhdGVkIGNsaWVudCBjb2RlCmBgYAoKIyMjIE9wZW4gUG9pbnRzCgotIFdoZXJlIHRvIHBsYWNlIHRoZSBnZW5lcmF0ZWQgY29kZSBpZGVhbGx5PwotIEhvdyB0byBzcGxpdCB0aGUgZ2VuZXJhdGVkIEFQSXMgaW50byBzZXBhcmF0ZSBmaWxlcyAoZS5nLiBieSBjb250cm9sbGVyKT8KLSBDdXJyZW50bHkgb25seSBjb25zdW1pbmcgZ2VuZXJhdGVkIG1vZGVscyAoaW50ZXJmYWNlcykgLT4gY2hlY2sgd2hhdCBlbHNlIGNhbiBiZSB1c2VkIGZyb20gdGhlIGdlbmVyYXRlZCBjb2RlCi0gRGlmZmVyZW5jZXMgdG8gW09wZW5BUEkgVG9vbHMgLyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcik/CgojIyMgTGlua3MgYW5kIERvY3VtZW50YXRpb24KCi0gW1N3YWdnZXIgQ29kZUdlbiBHaXRodWIgUmVwb10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikKLSBbU3dhZ2dlciBFZGl0b3IgLSBPbmxpbmVdKGh0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vKQotIFtTd2FnZ2VyIFBldCBTdG9yZSBHaXRodWIgUmVwbyAocmVmZXJlbmNlIGltcGxlbWVudGF0aW9uKV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItcGV0c3RvcmUpCi0gW25wbSBwYWNrYWdlIHRoYXQgd3JhcHMgU3dhZ2dlciBDb2RlR2VuXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkKCi0tLQoKIyMgVGVzdCBTdHJhdGVneQoKVGhpcyBhcHBsaWNhdGlvbiBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgdGVzdCBib3VuZGFyaWVzOiAKCkZyb250ZW5kOiAKLSBVbml0IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0cyB0aGF0IGNvdmVyIHRoZSBjb2xsYWJvcmF0aW9uIG9mIG9uZSBvciBtb3JlIGNvbXBvbmVudHMgaW4gY29sbGFib3JhdGlvbiB3aXRoIFJlZHV4IChpbmNsdWRpbmcgbWlkZGxld2FyZSkuIE1vY2tpbmcgaGFwcGVucyBvbiB0aGUgbmV0d29yayBsYXllci4KLSBFMmUgdGVzdHMgdXNpbmcgQ3lwcmVzcy4gVGhlc2UgdGVzdHMgY292ZXIgdGhlIGZyb250ZW5kIGUyZSBhbmQgcnVuIGFnYWluc3QgYSBmdWxseSBydW5uaW5nIGZyb250ZW5kLiBOZXR3b3JrIHJlcXVlc3RzIGFyZSBpbnRlcmNlcHRlZCBhbmQgc3R1YmJlZC4KCkJhY2tlbmQ6Ci0gVGJkCgpFMmUgZW52aXJvbm1lbnQgdGVzdHM6IAotIFRoZXNlIHRlc3RzIHJ1biBhZ2FpbnN0IGEgdGFyZ2V0IGVudmlyb25tZW50IChlLmcuIHRlc3QgZW52aXJvbm1lbnQpIGFuZCBjb3ZlciB0aGUgaW50ZWdyYXRpb24gb2YgZnJvbnQtIGFuZCBiYWNrZW5kLgotIFRoZXkgc2hvdWxkIHJ1biBhdXRvbWF0aWNhbGx5IHByaW9yIHRvIGEgcmVsZWFzZS4KCiFbVGVzdGluZyBib3VuZGFyaWVzXSguL2RvYy90ZXN0aW5nLWJvdW5kYXJpZXMucG5nKQoKLS0tCgoKIyMgUnVudGltZSBFbnZpcm9ubWVudHMKClRoZXJlIGlzIGN1cnJlbnRseSBvbmx5IG9uZSB0YXJnZXQgZW52aXJvbm1lbnQgdGhhdCBpcyBjb25maWd1cmVkIGluIHRoZSBDRCBwaXBlbGluZSBhcyBmb2xsb3dzOgoKVGhlIGJhY2tlbmQgaXMgY3VycmVudGx5IGRlcGxveWVkIHRvIEhlcm9rdSAoZnJlZSB0aWVyKTogCj4gaHR0cHM6Ly9waXp6YS10aW1lLWJhY2tlbmQuaGVyb2t1YXBwLmNvbS9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKCk1hbmFnZSB0aHJvdWdoIFtIZXJva3UgZGFzaGJvYXJkXShodHRwczovL2Rhc2hib2FyZC5oZXJva3UuY29tL2FwcHMvcGl6emEtdGltZS1iYWNrZW5kKS4KClRoZSBmcm9udGVuZCBpcyBkZXBsb3llZCBhcyBhIHN0YXRpYyBzaXRlIHRvIFZlcmNlbDogCj4gaHR0cHM6Ly9mcm9udGVuZC15bm5ja3RoLnZlcmNlbC5hcHAvCgpNYW5hZ2UgdGhyb3VnaCBbVmVyY2VsIGRhc2hib2FyZF0oaHR0cHM6Ly92ZXJjZWwuY29tL2Rhc2hib2FyZCkKCioqVGVjaCBkZWJ0KiogCi0gSXQgbG9va3MgbGlrZSBWZXJjZWwgb25seSBhbGxvd3Mgb3ZlcnJpZGluZyBvbmUgc2luZ2xlIGJ1aWxkIGNvbW1hbmQuIElmIHdlIGhhdmUgbXVsdGlwbGUgZW52aXJvbm1lbnRzLCB0aGUgY3VycmVudCBhcHByb2FjaCBvZiBvdmVycmlkaW5nIHRoZSBidWlsZCBjb21tYW5kIGluIGB2ZXJjZWwuanNvbmAgaXMgbm90IHBvc3NpYmxlLgotIFRoZSBjdXJyZW50IGZyZWUgc2VydmljZXMgY29tZSB3aXRoIHRoZWlyIGxpbWl0YXRpb25zLiBDb25zaWRlciBkZXBsb3lpbmcgdG8gYSBjbG91ZCBlbnZpcm9ubWVudCBpbnN0ZWFkLgo= readmeEtag: '"8106c5447c6b542a8741e56fe7998ad3a511aec9"' readmeLastModified: Mon, 20 Mar 2023 14:00:23 GMT repositoryId: 530479305 description: >- Exploring and implementing state-of-the-art practices and tech when using ReactJS created: '2022-08-30T03:14:01Z' updated: '2022-09-21T02:32:16Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: ynnckth logo: https://avatars.githubusercontent.com/u/5628119?v=4 repoEtag: '"399b992f3127b604bd4b1815f73940c1b29dc46bda004084f4ccf067be46bad5"' repoLastModified: Wed, 21 Sep 2022 02:32:16 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/ubhat95/usercrud v3: true id: c8168af1e613d9bbfdabba07f9092b60 repositoryMetadata: base64Readme: >- IyBVc2VyQ3J1ZAoKU3RhcnRlciBTcHJpbmdib290IHByb2plY3QuIFJ1bnMgb24gZG9ja2VyIApUaGlzIHByb2plY3QgaW1wbGVtZW50cyBSRVNUIEFQSXMgdXNpbmcgdGhlIE1WQyBtb2RlbC4gIGNvbnRyb2xsZXItc2VydmljZS1kYW87IGNvbm5lY3RzIHRvIE15U3FsIERiLiAKSGFzIGltcGxlbWVudGVkIEpQQSBNZXRob2RzLCBuYXRpdmVRdWVyaWVzIHRvIHJ1biBxdWVyaWVzLiBMb2dnaW5nLCBhY3R1YXRvciwgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZyBhcmUgaW4gcGxhY2UuIAoKVXNlciByZWdpc3RyYXRpb247IG9uZSB1c2VyIGNhbiBoYXZlIG1hbnkgZGlmZmVyZW50IGFjY291bnRzLiAKQnVzaW5lc3MgTG9naWMgbmVlZHMgd29yazsgZm9jdXNzaW5nIG9uIGRpZmZlcmVudCBhc3BlY3RzIG9mIHNwcmluZyBmb3Igbm93LiAK readmeEtag: '"cd47996c2e65d45d8d8bc7658a2683ab072c3afe"' readmeLastModified: Tue, 14 Nov 2023 18:39:45 GMT repositoryId: 713455048 description: 'Starter SpringBoot project. ' created: '2023-11-02T14:55:30Z' updated: '2023-11-14T18:37:17Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: ubhat95 logo: https://avatars.githubusercontent.com/u/53697553?v=4 repoEtag: '"a114afa6007d1e11bb023a3b33fa67999eed8f58baa4d5c693314411177abc68"' repoLastModified: Tue, 14 Nov 2023 18:37:17 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/neofoxxo/weather-api-mongodb v3: true id: edcffbe0cba3edc3a3f23c00c793b14d repositoryMetadata: base64Readme: >- IyBXZWF0aGVyIFNlbnNvciBBUEkKClRoaXMgd2VhdGhlciBzZW5zb3IgQVBJIGlzIGEgc2VjdXJlIFJFU1QgQVBJIGJ1aWx0IHdpdGggRXhwcmVzcy5qcywgTW9uZ29EQiwgYW5kIE1vbmdvb3NlLiBJdCBmZWF0dXJlcyBhIGZ1bGx5IGZ1bmN0aW9uYWwgQVBJIHdoZXJlIHVzZXJzIGNhbiBxdWVyeSB3ZWF0aGVyIGluZm9ybWF0aW9uIHN0b3JlZCBpbiBhIE1vbmdvREIgZGF0YWJhc2UuPGJyPgo8YnI+VGhpcyBBUEkgd2FzIGJ1aWx0IHVzaW5nIHRoZSBPcGVuQVBJIDMgc3RhbmRhcmQgYW5kIGl0cyBkb2N1bWVudGF0aW9uIGNhbiBiZSB2aWV3ZWQgYmVsb3c6Cjxicj48YSBocmVmPSJodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzLWRvY3Mvd2ViRGF0YUNsdXN0ZXIvV2VhdGhlckFQSS8xLjAuMCMvIj5WaWV3IEFQSSBEb2N1bWVudGF0aW9uPC9hPjxicj4KCiMjIEZlYXR1cmVzCiog8J+boe+4jyBTZWN1cmUgYXV0aGVudGljYXRpb24gd2l0aCBKV1QncwoqIPCflJIgQ3JlYXRlIGFuZCB1c2UgYWNjb3VudHMgd2l0aCBmdWxsIHBhc3N3b3JkIGVuY3J5dGlvbgoqIPCfmqogUm9sZS1iYXNlZCBhY2Nlc3MgY29udHJvbCB0byBzZWN1cmUgZW5kcG9pbnRzCiog4pyFIFZhbGlkYXRpb24gdG8gcHJldmVudCB1bmV4cGVjdGVkIGRhdGEgZnJvbSBiZWluZyBpbnNlcnRlZAoqIPCfjKHvuI8gQWRkIG5ldyB3ZWF0aGVyIHJlYWRpbmdzCiog8J+RpSBBZGQgbmV3IHVzZXJzIHdpdGggc3BlY2lmaWVkIHJvbGVzCiog8J+TiiBTZXZlbiBkaWZmZXJlbnQgZW5kcG9pbnRzIHRvIHF1ZXJ5LCBtYW5pcHVsYXRlLCBhbmQgYWRkIHdlYXRoZXIgZGF0YQoqIPCflI0gRml2ZSBkaWZmZXJlbnQgZW5kcG9pbnRzIHRvIGZpbHRlciwgY3JlYXRlLCBhbmQgbWFuaXB1bGF0ZSB1c2VyIGFjY291bnRzIAoKIyMgRW5kcG9pbnRzCjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vTmVvRm94eG8vd2VhdGhlci1hcGktbW9uZ29kYi9ibG9iL2M5ZmY3YjFlNzQ5Yzg1ZDA5NzE2ZGUwYjcxZTM5OTc3MTEwMWY3MjEvaW1hZ2VzL2VuZHBvaW50cy5wbmciIGFsdD0iZW5kcG9pbnRzIiB3aWR0aD0iMTAwJSI+CgojIyBIb3cgVG8gUnVuIEl0ClRvIHJ1biB0aGlzIG9uIHlvdXIgbG9jYWwgbWFjaGluZSwgeW91IHdpbGwgbmVlZCB0byBoYXZlIE5vZGUuanMgaW5zdGFsbGVkIGFuZCBhY2Nlc3MgdG8gYSBNb25nb0RCIGRhdGFiYXNlLgoKMS4gQ2xvbmUgdGhlIHJlcG9zaXRvcnkgdG8geW91ciBsb2NhbCBtYWNoaW5lCjIuIEltcG9ydCB0aGUgZGF0YWJhc2UgZm9sZGVyIHRvIHlvdXIgTW9uZ29EQiBzZXJ2ZXIgd2l0aCBgbW9uZ29yZXN0b3JlYAozLiBDcmVhdGUgYSBgLmVudmAgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3RvcnkgYW5kIGFkZCBhIGBEQVRBQkFTRV9VUkxgIGFuZCBgQUNDRVNTX1RPS0VOX1NFQ1JFVGAKNC4gT3BlbiB5b3VyIHRlcm1pbmFsIGFuZCBydW4gYG5wbSBpbnN0YWxsYAo1LiBSdW4gdGhlIGBucG0gcnVuIHN0YXJ0YCBjb21tYW5kCjYuIEFjY2VzcyB0aGUgQVBJIG9uIHBvcnQgNTAwMCBhbmQgZW5qb3kh readmeEtag: '"eff71d63b8f559c55d1b01e94ab3093d692cc84c"' readmeLastModified: Fri, 06 Oct 2023 03:11:29 GMT repositoryId: 685361937 description: Weather REST API built with Express.js & MongoDB created: '2023-08-31T04:12:43Z' updated: '2023-11-09T02:23:16Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: NeoFoxxo logo: https://avatars.githubusercontent.com/u/104744179?v=4 repoEtag: '"af37fc7a4866afd0f74e496e038883a16a6f54bc750fd23816d8333f89505de0"' repoLastModified: Thu, 09 Nov 2023 02:23:16 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mariama4/kvazar-tt v3: true id: 879f24a770c18a4705a679ab607098a1 repositoryMetadata: base64Readme: >- IyBrdmF6YXItdHQKCiMjINCe0L/QuNGB0LDQvdC40LUKCtCU0LDQvdC90YvQuSDQv9GA0L7QtdC60YIg0Y/QstC70Y/QtdGC0YHRjyDQt9Cw0LrQu9GO0YfQuNGC0LXQu9GM0L3QvtC5INGH0LDRgdGC0YzRjiDRgtC10YHRgtC+0LLQvtCz0L4g0LfQsNC00LDQvdC40Y8g0LTQu9GPINCa0LLQsNC30LDRgC4K0KHRg9GC0Ywg0LfQsNC00LDQvdC40Y8g0Y/QstC70Y/QtdGC0YHRjyDRgdC+0LXQtNC40L3QuNGC0Ywg0LLQvtC10LTQuNC90L4g0L/RgNC10LTRi9C00YPRidC40LUg0LzQvtC00YPQu9C4OgotIFtBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJpYW1hNC9rdmF6YXItdHQvdHJlZS9hcGkpCi0gW1VUSUxTXShodHRwczovL2dpdGh1Yi5jb20vTWFyaWFtYTQva3ZhemFyLXR0L3RyZWUvdXRpbHMpCi0gW01MXShodHRwczovL2dpdGh1Yi5jb20vTWFyaWFtYTQva3ZhemFyLXR0L3RyZWUvbWwpCgrQkCDRgtCw0Lot0LbQtSDQtNC+0LHQsNCy0LvQtdC90LjQtToKKiDQlNC+0LrRg9C80LXQvdGC0LDRhtC40Lgg0LogQVBJCiog0JTQvtC60YPQvNC10L3RgtCw0YbQuNC4INC6INCf0YDQvtC10LrRgtGDCgoqKkFQSSDRgNC10LDQu9C40LfQvtCy0LDQvdC+INC90LA6KioKKiBQeXRob24gMy4xMQoqIFNRTGl0ZQoKKirQoSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC8INGB0LvQtdC00YPRjtGJ0LjRhSDQsdC40LHQu9C40L7RgtC10Lo6KioKKiBGbGFzay1TUUxBbGNoZW15IDMuMC54CiogcHl0aG9uLWRvdGVudgoqIGZsYXNrLXN3YWdnZXItdWkKCioqVE9ETzoqKgoKKiDQo9C70YPRh9GI0LjRgtGMINC60LDRh9C10YHRgtCy0L4gZG9jc3RyaW5nCiog0KDQtdCw0LvQuNC30L7QstCw0YLRjCDRh9Cw0YHRgtGMIE1MCiog0JTQvtCx0LDQstC40YLRjCDQvtCx0YDQsNCx0L7RgtGH0LjQutC4INC+0YjQuNCx0L7QugoqINCY0YHQv9GA0LDQstC40YLRjCDQv9GA0LXQtNGD0L/RgNC10LbQtNC10L3QuNC1INCyINGC0LXRgdGC0LDRhTogdGVzdF9kZWxldGVfdXNlciAtIExlZ2FjeUFQSVdhcm5pbmcKKiDQo9C70YPRh9GI0LjRgtGMINC60LDRh9C10YHRgtCy0L4g0YLQtdGB0YLQvtCyLCDRg9Cx0YDQsNGC0Ywg0L/QvtCy0YLQvtGA0LXQvdC40Y8g0LrQvtC00LAKCioqVGVzdCBjb3ZlcmFnZToqKgoqIFN0bXRzOiA0MzYKKiBNaXNzOiA0NgoqIENvdmVyOiA4OSUKCioq0JTQvtC60YPQvNC10L3RgtCw0YbQuNGPINC6IEFQSSDQstGL0L/QvtC70L3QtdC90LAg0L3QsCBzd2FnZ2VyINC/0L4g0YHRgtCw0L3QtNCw0YDRgtGDIG9wZW5hcGkgMy4wLjAqKgoKIyMg0JfQsNC/0YPRgdC6INC/0YDQvtC10LrRgtCwCgrQp9GC0L7QsdGLINC30LDQv9GD0YHRgtC40YLRjCDQv9GA0L7QtdC60YIsINC90LXQvtCx0YXQvtC00LjQvNC+OgoKMS4g0KHQutCw0YfQsNGC0Ywg0LXQs9C+OgoKYGBgc2hlbGwKZ2l0IGNsb25lIC0tYnJhbmNoPW1hc3RlciBodHRwczovL2dpdGh1Yi5jb20vTWFyaWFtYTQva3ZhemFyLXR0LmdpdApgYGAKCjIuINCf0LXRgNC10LnRgtC4INCyINC/0LDQv9C60YMg0L/RgNC+0LXQutGC0LA6CgpgYGBzaGVsbApjZCBrdmF6YXItdHQKYGBgCgozLiDQo9GB0YLQsNC90L7QstC40YLRjCDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4OgoKYGBgc2hlbGwKcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dApgYGAKCjQuINCX0LDQv9GD0YHRgtC40YLRjCDQv9GA0L7QtdC60YI6CgpgYGBzaGVsbApweXRob24gYXBwLnB5CmBgYAoKIyDQmNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtSBBUEk6CgrQldGB0LvQuCDQstGLINGD0YHRgtCw0L3QvtCy0LjQu9C4INC4INC30LDQv9GD0YHRgtC40LvQuCDQv9GA0L7QtdC60YIsINGC0L4g0LHQvtC70LXQtSDQv9C+0LTRgNC+0LHQvdGD0Y4g0LTQvtC60YPQvNC10L3RgtCw0YbQuNGOINC80L7QttC90L4g0YPQstC40LTQtdGC0Ywg0YLRg9GCIFtodHRwOi8vMTI3LjAuMC4xOjUwMDAvYXBpL2RvY3MvXShodHRwOi8vMTI3LjAuMC4xOjUwMDAvYXBpL2RvY3MvKQoKIyMgQVBJIEFwcAoKPiBWZXJzaW9uIDEuMC4wCgpBUEkg0YEg0LzQvtC00YPQu9C10LwgVXNlcnMsINC60L7RgtC+0YDRi9C5INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiBDUlVEINC4INC/0L7Qt9Cy0L7Qu9GP0LXRgiDQv9C+0LvRg9GH0LjRgtGMINGB0LvQtdC00YPRjtGJ0YPRjiDQuNC90YTQvtGA0LzQsNGG0LjRjjoKLSDQmNGB0L/QvtC70YzQt9GD0Y8g0LTQsNC90L3Ri9C1INC40Lcg0YLQsNCx0LvQuNGG0YsgVXNlciwg0L/QvtC00YHRh9C40YLRi9Cy0LDRgtGMINC60L7Qu9C40YfQtdGB0YLQstC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LCDQt9Cw0YDQtdCz0LjRgdGC0YDQuNGA0L7QstCw0L3QvdGL0YUg0LfQsCDQv9C+0YHQu9C10LTQvdC40LUgNyDQtNC90LXQuTsKLSDQn9C+0LvRg9GH0LjRgtGMINGC0L7QvyA1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5INGBINGB0LDQvNGL0LzQuCDQtNC70LjQvdC90YvQvNC4INC40LzQtdC90LDQvNC4OwotINCf0L7Qu9GD0YfQuNGC0Ywg0L/RgNC+0YbQtdC90YIg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LksINC60L7RgtC+0YDRi9C1INC40LzQtdGO0YIg0LDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YssINC30LDRgNC10LPQuNGB0YLRgNC40YDQvtCy0LDQvdC90YvQuSDQsiDQvtC/0YDQtdC00LXQu9C10L3QvdC+0Lwg0LTQvtC80LXQvdC1ICjQvdCw0L/RgNC40LzQtdGALCAiZXhhbXBsZS5jb20iKS4KCiMjIFBhdGggVGFibGUKCnwgTWV0aG9kIHwgUGF0aCB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0gfCAtLS0gfAp8IEdFVCB8IFsvYXBpL3VzZXJzL10oI2dldGFwaXVzZXJzKSB8INCf0L7Qu9GD0YfQtdC90LjQtSDQstGB0LXRhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSB8CnwgR0VUIHwgWy9hcGkvdXNlcnNdKCNnZXRhcGl1c2VycykgfCDQn9C+0LvRg9GH0LXQvdC40LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10Lkg0YEg0L/QsNCz0LjQvdCw0YbQuNC10LkgfAp8IFBPU1QgfCBbL2FwaS91c2Vyc10oI3Bvc3RhcGl1c2VycykgfCDQodC+0LfQtNCw0L3QuNC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyB8CnwgR0VUIHwgWy9hcGkvdXNlcnMve2lkfV0oI2dldGFwaXVzZXJzaWQpIHwg0J/QvtC70YPRh9C10L3QuNC1INC/0L7Qu9GM0LvRjNC30L7QstCw0YLQtdC70Y8g0L/QviBpZCB8CnwgUEFUQ0ggfCBbL2FwaS91c2Vycy97aWR9XSgjcGF0Y2hhcGl1c2Vyc2lkKSB8INCe0LHQvdC+0LLQu9C10L3QuNC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQv9C+IGlkIHwKfCBERUxFVEUgfCBbL2FwaS91c2Vycy97aWR9XSgjZGVsZXRlYXBpdXNlcnNpZCkgfCDQo9C00LDQu9C10L3QuNC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQv9C+IGlkIHwKfCBQT1NUIHwgWy9hcGkvdXNlcnMvaW5mb10oI3Bvc3RhcGl1c2Vyc2luZm8pIHwg0J/QvtC70YPRh9C10L3QuNC1INC40L3RhNC+0YDQvNCw0YbQuNC4INC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRj9GFIHwKCiMjIFJlZmVyZW5jZSBUYWJsZQoKfCBOYW1lIHwgUGF0aCB8IERlc2NyaXB0aW9uIHwKfCAtLS0gfCAtLS0gfCAtLS0gfAp8IFVzZXIgfCBbIy9jb21wb25lbnRzL3NjaGVtYXMvVXNlcl0oI2NvbXBvbmVudHNzY2hlbWFzdXNlcikgfCAgfAoKIyMgUGF0aCBEZXRhaWxzCgoqKioKCiMjIyBbR0VUXSAvYXBpL3VzZXJzLwoKLSBTdW1tYXJ5ICAK0J/QvtC70YPRh9C10L3QuNC1INCy0YHQtdGFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5CgojIyMjIFJlc3BvbnNlcwoKLSAyMDAg0KHQv9C40YHQvtC6INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5CgpgYXBwbGljYXRpb24vanNvbmAKCmBgYGpzb24KWwogIHsKICAgICJlbWFpbCI6IHN0cmluZywKICAgICJpZCI6IGludGVnZXIsCiAgICAicmVnaXN0cmF0aW9uX2RhdGUiOiBkYXRldGltZSwKICAgICJ1c2VybmFtZSI6IHN0cmluZwogIH0sCiAgewogICAgImVtYWlsIjogc3RyaW5nLAogICAgImlkIjogaW50ZWdlciwKICAgICJyZWdpc3RyYXRpb25fZGF0ZSI6IGRhdGV0aW1lLAogICAgInVzZXJuYW1lIjogc3RyaW5nCiAgfQpdCmBgYAoKLSA0MDMg0J7RiNC40LHQutCwINC90LAg0YHRgtC+0YDQvtC90LUg0YHQtdGA0LLQtdGA0LAKCioqKgoKIyMjIFtHRVRdIC9hcGkvdXNlcnMKCi0gU3VtbWFyeSAgCtCf0L7Qu9GD0YfQtdC90LjQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSDRgSDQv9Cw0LPQuNC90LDRhtC40LXQuQoKIyMjIyBQYXJhbWV0ZXJzKFF1ZXJ5KQoKYGBgdHMKcGFnZTogaW50ZWdlcgpgYGAKCmBgYHRzCnBlcl9wYWdlOiBpbnRlZ2VyCmBgYAoKIyMjIyBSZXNwb25zZXMKCi0gMjAwINCh0L/QuNGB0L7QuiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuQoKYGFwcGxpY2F0aW9uL2pzb25gCgpgYGBqc29uClsKICB7CiAgICAiZW1haWwiOiBzdHJpbmcsCiAgICAiaWQiOiBpbnRlZ2VyLAogICAgInJlZ2lzdHJhdGlvbl9kYXRlIjogZGF0ZXRpbWUsCiAgICAidXNlcm5hbWUiOiBzdHJpbmcKICB9LAogIHsKICAgICJlbWFpbCI6IHN0cmluZywKICAgICJpZCI6IGludGVnZXIsCiAgICAicmVnaXN0cmF0aW9uX2RhdGUiOiBkYXRldGltZSwKICAgICJ1c2VybmFtZSI6IHN0cmluZwogIH0KXQpgYGAKCi0gNDAzINCe0YjQuNCx0LrQsCDQvdCwINGB0YLQvtGA0L7QvdC1INGB0LXRgNCy0LXRgNCwCgoqKioKCiMjIyBbUE9TVF0gL2FwaS91c2VycwoKLSBTdW1tYXJ5ICAK0KHQvtC30LTQsNC90LjQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8KCiMjIyMgUmVxdWVzdEJvZHkKCi0gYXBwbGljYXRpb24vanNvbgoKYGBganNvbgp7CiAgICAiZW1haWwiOiBzdHJpbmcsCiAgICAiaWQiOiBpbnRlZ2VyLAogICAgInJlZ2lzdHJhdGlvbl9kYXRlIjogZGF0ZXRpbWUsCiAgICAidXNlcm5hbWUiOiBzdHJpbmcKfQpgYGAKCiMjIyMgUmVzcG9uc2VzCgotIDIwMCDQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0YHQvtC30LTQsNC9CgpgYXBwbGljYXRpb24vanNvbmAKCmBgYGpzb24KewogICAgImVtYWlsIjogc3RyaW5nLAogICAgImlkIjogaW50ZWdlciwKICAgICJyZWdpc3RyYXRpb25fZGF0ZSI6IGRhdGV0aW1lLAogICAgInVzZXJuYW1lIjogc3RyaW5nCn0KYGBgCgotIDQwMyDQntGI0LjQsdC60LAg0L3QsCDRgdGC0L7RgNC+0L3QtSDRgdC10YDQstC10YDQsAoKKioqCgojIyMgW0dFVF0gL2FwaS91c2Vycy97aWR9CgotIFN1bW1hcnkgIArQn9C+0LvRg9GH0LXQvdC40LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC/0L4gaWQKCiMjIyMgUmVzcG9uc2VzCgotIDIwMCDQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L/QvtC70YPRh9C10L0KCmBhcHBsaWNhdGlvbi9qc29uYAoKYGBganNvbgp7CiAgICAiZW1haWwiOiBzdHJpbmcsCiAgICAiaWQiOiBpbnRlZ2VyLAogICAgInJlZ2lzdHJhdGlvbl9kYXRlIjogZGF0ZXRpbWUsCiAgICAidXNlcm5hbWUiOiBzdHJpbmcKfQpgYGAKCi0gNDAzINCe0YjQuNCx0LrQsCDQvdCwINGB0YLQvtGA0L7QvdC1INGB0LXRgNCy0LXRgNCwCgoqKioKCiMjIyBbUEFUQ0hdIC9hcGkvdXNlcnMve2lkfQoKLSBTdW1tYXJ5ICAK0J7QsdC90L7QstC70LXQvdC40LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC/0L4gaWQKCiMjIyMgUmVxdWVzdEJvZHkKCi0gYXBwbGljYXRpb24vanNvbgoKYGBganNvbgp7CiAgICAiZW1haWwiOiBzdHJpbmcsCiAgICAidXNlcm5hbWUiOiBzdHJpbmcKfQpgYGAKCiMjIyMgUmVzcG9uc2VzCgotIDIwMCDQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L/QvtC70YPRh9C10L0KCmBhcHBsaWNhdGlvbi9qc29uYAoKYGBganNvbgp7CiAgICAiZW1haWwiOiBzdHJpbmcsCiAgICAiaWQiOiBpbnRlZ2VyLAogICAgInJlZ2lzdHJhdGlvbl9kYXRlIjogZGF0ZXRpbWUsCiAgICAidXNlcm5hbWUiOiBzdHJpbmcKfQpgYGAKCi0gNDAzINCe0YjQuNCx0LrQsCDQvdCwINGB0YLQvtGA0L7QvdC1INGB0LXRgNCy0LXRgNCwCgoqKioKCiMjIyBbREVMRVRFXSAvYXBpL3VzZXJzL3tpZH0KCi0gU3VtbWFyeSAgCtCj0LTQsNC70LXQvdC40LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC/0L4gaWQKCiMjIyMgUmVzcG9uc2VzCgotIDIwMCDQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0YPQtNCw0LvQtdC9CgpgYXBwbGljYXRpb24vanNvbmAKCmBgYGpzb24KewogICJkZWxldGVkIjogYm9vbGVhbgp9CmBgYAoKLSA0MDMg0J7RiNC40LHQutCwINC90LAg0YHRgtC+0YDQvtC90LUg0YHQtdGA0LLQtdGA0LAKCioqKgoKIyMjIFtQT1NUXSAvYXBpL3VzZXJzL2luZm8KCi0gU3VtbWFyeSAgCtCf0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y/RhQoKLSBEZXNjcmlwdGlvbiAgCi0g0J/QvtC70YzQt9C+0LLQsNGC0LXQu9C4LCDQutC+0YLQvtGA0YvQtSDQt9Cw0YDQtdCz0LjRgdGC0YDQuNGA0L7QstCw0LvQuNGB0Ywg0LfQsCDQv9C+0YHQu9C10LTQvdC40LUgNyDQtNC90LXQuSAgCi0g0KLQvtC/IDUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LksINC60L7RgtC+0YDRi9C1INC40LzQtdGO0YIg0YHQsNC80YvQtSDQtNC70LjQvdC90YvQtSDQuNC80LXQvdCwICjQv9C+INGD0LHRi9Cy0LDQvdC40Y4pICAKLSDQn9GA0L7RhtC10L3RgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSwg0LrQvtGC0L7RgNGL0LUg0LjQvNC10Y7RgiDQsNC00YDQtdGBINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRiywg0LfQsNGA0LXQs9C40YHRgtGA0LjRgNC+0LLQsNC90L3Ri9C5INCyINC+0L/RgNC10LTQtdC70LXQvdC90L7QvCDQtNC+0LzQtdC90LUgKNC90LDQv9GA0LjQvNC10YAsICJleGFtcGxlLmNvbSIpLgoKIyMjIyBSZXF1ZXN0Qm9keQoKLSBhcHBsaWNhdGlvbi9qc29uCgpgYGBqc29uCnsKICAiZG9tYWluIjogc3RyaW5nCn0KYGBgCgojIyMjIFJlc3BvbnNlcwoKLSAyMDAg0JjQvdGE0L7RgNC80LDRhtC40Y8g0L/QvtC70YPRh9C10L3QsAoKYGFwcGxpY2F0aW9uL2pzb25gCgpgYGBqc29uCnsKCSJjb3VudFVzZXJzRm9yV2VlayI6IGludGVnZXIsCgkicGVyY2VudE9mRG9tYWluIjogewoJCSJkb21haW4iOiBzdHJpbmcsCgkJInBlcmNlbnQiOiBudW1iZXIKCX0sCgkidG9wVXNlcnNXaXRoTG9uZ2VzdFVzZXJuYW1lcyI6IFsKCQl7CiAgICAgICAgICAgICJlbWFpbCI6IHN0cmluZywKICAgICAgICAgICAgImlkIjogaW50ZWdlciwKICAgICAgICAgICAgInJlZ2lzdHJhdGlvbl9kYXRlIjogZGF0ZXRpbWUsCiAgICAgICAgICAgICJ1c2VybmFtZSI6IHN0cmluZwogICAgICAgIH0sCgkJewogICAgICAgICAgICAiZW1haWwiOiBzdHJpbmcsCiAgICAgICAgICAgICJpZCI6IGludGVnZXIsCiAgICAgICAgICAgICJyZWdpc3RyYXRpb25fZGF0ZSI6IGRhdGV0aW1lLAogICAgICAgICAgICAidXNlcm5hbWUiOiBzdHJpbmcKICAgICAgICB9CgldCn0KYGBgCgotIDQwMyDQntGI0LjQsdC60LAg0L3QsCDRgdGC0L7RgNC+0L3QtSDRgdC10YDQstC10YDQsAoKIyMgUmVmZXJlbmNlcwoKIyMjICMvY29tcG9uZW50cy9zY2hlbWFzL1VzZXIKCmBgYGpzb24KImlkIjogaW50ZWdlcgoidXNlcm5hbWUiOiBzdHJpbmcKImVtYWlsIjogc3RyaW5nCiJyZWdpc3RyYXRpb25fZGF0ZSI6IGRhdGV0aW1lCmBgYAo= readmeEtag: '"3dc25774993bb0ecc10128fedfe6560441c841bf"' readmeLastModified: Mon, 01 May 2023 06:24:07 GMT repositoryId: 631767888 description: Тестовое задание для "Квазар" created: '2023-04-24T02:30:25Z' updated: '2024-01-15T16:58:58Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: Mariama4 logo: https://avatars.githubusercontent.com/u/61371131?v=4 repoEtag: '"9ff85c7698fd551f07f934d33d746b14c5ffd155761c05d332e9682558b4a162"' repoLastModified: Mon, 15 Jan 2024 16:58:58 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/yoshi2no/openapi-ts v3: true id: 86bb6e0c47584b3ac9228347f46ad408 repositoryMetadata: base64Readme: >- IyB5b3NoaTJuby9vcGVuYXBpLXRzCgo+IFshSU1QT1JUQU5UXQo+VGhpcyByZXBvc2l0b3J5IGlzIGNyZWF0ZWQgZm9yIHBlcnNvbmFsIGxlYXJuaW5nIGFuZCBkZXZlbG9wbWVudCBwdXJwb3Nlcy4gSXQncyBub3QgaW50ZW5kZWQgZm9yIHByb2R1Y3Rpb24gdXNlLgoKCiMjIPCfk6YgUGFja2FnZXMKCjxhIGhyZWY9Ii4vcGFja2FnZXMvb3BlbmFwaS10cyI+PGJyIC8+CvCfmLogb3BlbmFwaS10czxiciAvPgo8L2E+CkdlbmVyYXRlcyBUeXBlU2NyaXB0IHR5cGVzIGZyb20gc3RhdGljIE9wZW5BUEkgc2NoZW1hcwoKPGEgaHJlZj0iLi9wYWNrYWdlcy9vcGVuYXBpLWZldGNoIj48YnIgLz4K8J+YuiBvcGVuYXBpLWZldGNoPGJyIC8+CjwvYT4K8J+apwoKCiMjIOKchSBTdGF0dXMKCuKchSBtZWFucyBpbXBsZW1lbnRlZAoKIyMjIEJhc2ljIEZlYXR1cmVzCgp8IGZlYXR1cmUgICAgICAgICB8IGltcGwgfCBib29rIHwKfCA6LS0tOiB8IDotLS06IHwgOi0tLTogfAp8IExvY2FsIHNjaGVtYSAgICAgICAgICAgICB8ICAgfCAgIHwKfCBSZW1vdGUgc2NoZW1hICAgICAgICAgICAgIHwgICB8ICAgfAp8IE11bHRpcGxlIHNjaGVtYXMgICAgICAgICAgICAgfCAgIHwgICB8CgoKIyMjIENvbmZpZwp8IGZlYXR1cmUgICAgICAgICB8IGltcGwgfCBib29rIHwKfCA6LS0tOiB8IDotLS06IHwgOi0tLTogfAp8IFJlZG9jIGNvbmZpZyAgICAgICAgICAgICB8ICAgfCAgIHwKCiMjIyBDTEkgT3B0aW9ucwp8IGZlYXR1cmUgICAgICAgICB8IGltcGwgfCBib29rIHwKfCA6LS0tOiB8IDotLS06IHwgOi0tLTogfAp8IC0tb3V0cHV0KC1vKSBbbG9jYXRpb25dICAgICAgICAgICAgfCAgIHwgICB8CnwgLS1oZWxwICAgICAgICAgICB8ICAgfCAgIHwKfCAtLXZlcnNpb24KfCAtLXJlZG9jICAgICAgICAgICAgfCAgIHwgICB8CnwgLS1hZGRpdGlvbmFsLXByb3BlcnRpZXMgICAgICAgICAgICB8ICAgfCAgIHwKfCAtLWFscGhhYmV0aXplICAgICAgICAgICAgfCAgIHwgICB8CnwgLS1hcnJheS1sZW5ndGggICAgICAgICAgICB8ICAgfCAgIHwKfCAtLWRlZmF1bHQtbm9uLW51bGxhYmxlICAgICAgICAgICAgfCAgIHwgICB8CnwgLS1lbXB0eS1vYmplY3RzLXVua25vd24gICAgICAgICAgICB8ICAgfCAgIHwKfCAtLWVudW0gICAgICAgICAgICB8ICAgfCAgIHwKfCAtLWV4Y2x1ZGUtZGVwcmVjYXRlZCAgICAgICAgICAgIHwgICB8ICAgfAp8IC0tZXhwb3J0LXR5cGUgICAgICAgICAgICB8ICAgfCAgIHwKfCAtLWltbXV0YWJsZSAgICAgICAgICAgIHwgICB8ICAgfAp8IC0tcGF0aC1wYXJhbXMtYXMtdHlwZXMgICAgICAgICAgICB8ICAgfCAgIHwKCiMjIPCfmY8gQWNrbm93bGVkZ2VtZW50cwoKVGhpcyBsaWJyYXJ5IGlzIGluc3BpcmVkIGJ5IGFuZCBiYXNlZCBvbiB0aGUgY29uY2VwdHMgbGVhcm5lZCBmcm9tIHRoZSBbb3BlbmFwaS10eXBlc2NyaXB0XShodHRwczovL2dpdGh1Yi5jb20vZHJ3cG93L29wZW5hcGktdHlwZXNjcmlwdCkgcmVwb3NpdG9yeS4gSSBleHRlbmQgbXkgZ3JhdGl0dWRlIHRvIHRoZSBjb250cmlidXRvcnMgb2YgYG9wZW5hcGktdHlwZXNjcmlwdGAgZm9yIHRoZWlyIGludmFsdWFibGUgd29yaywgd2hpY2ggaGFzIGJlZW4gYSBzaWduaWZpY2FudCByZWZlcmVuY2UgaW4gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgcHJvamVjdC4= readmeEtag: '"54d1c5beed9326d2eb5743c8e8f01d1864fe94a8"' readmeLastModified: Sun, 28 Jan 2024 12:48:27 GMT repositoryId: 742514577 description: >- Generate TypeScript Types from OpenAPI Specs: A Personal Learning Project by @yoshi2no. created: '2024-01-12T16:44:54Z' updated: '2024-01-23T15:20:42Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: yoshi2no logo: https://avatars.githubusercontent.com/u/57059705?v=4 repoEtag: '"6126f6e229cc52a5802c207f63ce19694f57e8ab5c087238ad41ae2c1f208b87"' repoLastModified: Tue, 23 Jan 2024 15:20:42 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/bryopsida/spring-boot-starter-tomcat v3: true id: f3d752f349e20cdb44043babfb975bb1 repositoryMetadata: base64Readme: >- IyBTcHJpbmcgQm9vdCBTdGFydGVyIEs4UyBUZW1wbGF0ZQoKIyMgV2hhdCBpcyB0aGlzPwoKVGhpcyBpcyBhIHRlbXBsYXRlIHJlcG9zaXRvcnkgZm9yIGtpY2tpbmcgb2ZmIGEgY2xvdWQgbmF0aXZlIHNwcmluZyBib290IGphdmEgbWljcm9zZXJ2aWNlLgoKIyMgV2hhdCBtYWtlcyB0aGlzIGNsb3VkIG5hdGl2ZT8KCkl0J3Mgc29sZWx5IGZvY3VzZWQgb24gZGVwbG95bWVudCB0byBrdWJlcm5ldGVzLCB0aGUgcHJpbWFyeSBidWlsZCBhcnRpZmFjdHMgb2YgdGhlIHJlcG9zaXRvcnkgYXJlIGEgT0NJIGltYWdlIGFuZCBhIGhlbG0gY2hhcnQuIFRoZSBoZWxtIGNoYXJ0IGlzIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCB1c2luZyBqa3ViZSBhbmQgaXQncyBhc3NvY2lhdGVkIGdyYWRsZSBwbHVnaW4uCgojIyBXaGF0IG9waW5pb25zIGhhdmUgYmVlbiBhZGRlZCB0byB0aGlzPwoKLSBHcmFkbGUKLSBTcHJpbmcgQm9vdAotIFNwcmluZyBNVkMKLSBTcHJpbmcgSlBBIGFuZCBKREJDCi0gVG9tY2F0Ci0gSkt1YmUgKEt1YmVybmV0ZXMgRGVwbG95bWVudCBhbmQgRGV2ZWxvcG1lbnQgVG9vbHMpCi0gTGlxdWliYXNlCgojIyBIb3cgZG8gSSBkZXBsb3k/CgpVc2UgYG1ha2UgZGVwbG95YCwgaWYgdGhlIG5hbWVzcGFjZSBkb2VzIG5vdCBleGlzdCBhbHJlYWR5IHJ1biBgbWFrZSBjcmVhdGUtbmFtZXNwYWNlYAoKIyMgSG93IGRvIEkgcnVuIGxvY2FsbHk/CgpVc2UgYG1ha2UgcnVuYC4KCiMjIEhvdyBkbyBJIHJ1biBsb2NhbGx5IG91dHNpZGUgb2YgYSBjb250YWluZXI/CgpJZiB5b3Ugd2lzaCB0byBydW4gZGlyZWN0bHkgaW4geW91ciBJREU6CgoxLiBSdW4gYGRvY2tlci1jb21wb3NlIHVwIC1kYCB0byBzdGFydCB0aGUgcG9zdGdyZXMgZGF0YWJhc2Ugc2VydmVyLgoyLiBSdW4gYC4vZ3JhZGxldyB1cGRhdGUgYm9vdFJ1bmAsIGB1cGRhdGVgIHJ1bnMgdGhlIG1pZ3JhdGlvbnMgYW5kIGBib290UnVuYCBsYXVuY2hlcyB0aGUgc3ByaW5nIGJvb3QgYXBwbGljYXRpb24KCiMjIEF2YWlsYWJsZSBNYWtlIFRhcmdldHMKCnwgVGFyZ2V0ICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGphciAgICAgICAgICAgICAgICB8IEJ1aWxkcyB0aGUgc3RhbmRhbG9uZSBqYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW1hZ2UgICAgICAgICAgICAgIHwgQnVpbGRzIHRoZSBPQ0kgaW1hZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBydW4gICAgICAgICAgICAgICAgfCBSdW5zIHRoZSBPQ0kgaW1hZ2UgdXNpbmcgZG9ja2VyIGxvY2FsbHkgICAgICAgICAgICAgICAgICAgICAgfAp8IGNyZWF0ZSAgICAgICAgICAgICB8IENyZWF0ZXMgdGhlIGt1YmVybmV0ZXMgbmFtZXNwYWNlIGEgZGVwbG95IHdpbGwgZ28gdG8gICAgICAgICB8CnwgYnVpbGQgICAgICAgICAgICAgIHwgUnVucyB0aGUgZ3JhZGxlIHRhc2tzIHRvIGJ1aWxkIHRoZSBoZWxtIGNoYXJ0ICAgICAgICAgICAgICAgIHwKfCBidWlsZC1kZXBlbmRlbmNpZXMgfCBSdW5zIHRoZSBoZWxtIHRhc2tzIHRvIHB1bGwgaW4gc3ViIGNoYXJ0IGRlcGVuZGVuY2llcyAgICAgICAgfAp8IGRlcGxveSAgICAgICAgICAgICB8IERlcGxveXMgdGhlIGNoYXJ0IHRvIHlvdXIgY3VycmVudCBrdWJlcm5ldGVzIGNvbnRleHQgICAgICAgICB8CnwgdGVtcGxhdGUgICAgICAgICAgIHwgUmVuZGVycyB0aGUgY2hhcnQgdGVtcGxhdGVzIHRvIHN0YW5kYXJkIGt1YmVybmV0ZXMgbWFuaWZlc3RzIHwKfCBraWNzICAgICAgICAgICAgICAgfCBTY2FuIHRoZSBjaGFydCByZXNvdXJjZXMgd2l0aCBLSUNTICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyBQb3N0IFRlbXBsYXRlIFVzZSBDaGVja2xpc3QKCi0gWyBdIEZpbmQgYW5kIHJlcGxhY2UgYWxsIHJlZmVyZW5jZXMgdG8gYGlvLmdpdGh1Yi5icnlvcHNpZGFgIHdpdGggYXBwcm9wcmlhdGUgdmFsdWVzIGZvciB5b3VyIHByb2plY3QKLSBbIF0gRmluZCBhbmQgcmVwbGFjZSBhbGwgcmVmZXJlbmNlcyB0byBgc3ByaW5nLWJvb3Qtc3RhcnRlcmAgd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHlvdXIgcHJvamVjdAotIFsgXSBGaW5kIGFuZCByZXBsYWNlIGFsbCByZWZlcmVuY2VzIHRvIGBzcHJpbmctYm9vdC1zdGFydGVyLXRvbWNhdGAgd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHlvdXIgcG9qZWN0Ci0gWyBdIEZpbmQgYW5kIHJlcGxhY2UgYWxsIHJlZmVyZW5jZXMgdG8gYGJyeW9wc2lkYWAgd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHlvdXIgcHJvamVjdAotIFsgXSBBZGp1c3QgcmVub3ZhdGUuanNvbiAob3IgcmVtb3ZlKSBzZXR0aW5ncyB0byBtZWV0IHlvdXIgbmVlZHMKLSBbIF0gQWZ0ZXIgYSBzdWNjZXNzZnVsIGltYWdlIGJ1aWxkLCBjcmVhdGUgeW91ciBmaXJzdCByZWxlYXNlIHRvIHRyaWdnZXIgYSBoZWxtIHB1Ymxpc2gsIHRoaXMgaXMgbmVlZGVkIGZvciB0aGUgdXBncmFkZSB0ZXN0cyB0byBwYXNzCg== readmeEtag: '"bb074d7e6f09c699c0e6f80241e81a542e6ecd25"' readmeLastModified: Wed, 14 Aug 2024 18:07:06 GMT repositoryId: 708514637 description: >- A spring boot starter template that includes a docker image, generate helm chart using jkube, and GitHub action CI created: '2023-10-22T19:25:57Z' updated: '2024-09-04T19:04:41Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: bryopsida logo: https://avatars.githubusercontent.com/u/8363252?v=4 repoEtag: '"7f9a79b48894b21f2ca5d57fd542bfcc575dc80184c62aae7839e364cb89c329"' repoLastModified: Wed, 04 Sep 2024 19:04:41 GMT category: Server Implementations foundInMaster: true - name: Ballerina OpenAPI tool source: Tooling repository issues source_description: >- The Ballerina OpenAPI tool enables the generation of Ballerina client and service skeleton from provided OpenAPI specifications (v2, v3) and facilitates the creation of OpenAPI v3 specifications for given Ballerina services.- Repository: https://github.com/ballerina-platform/openapi-tools link: https://ballerina.io/learn/openapi-tool/ v3_1: true v3: true v2: true sourceIssueMetadata: issueNumber: 136 author: lnash94 createdAt: '2024-02-11T07:22:54Z' updatedAt: '2024-02-11T07:22:54Z' url: https://github.com/OAI/Tooling/issues/136 status: open id: 15c33d6fbddbfa6964ba32d76a6119ea foundInMaster: true - name: UI Bakery source: Tooling repository issues source_description: >- A low-code platform to build user interfaces on top of OpenAPI data using drag and drop repository: https://github.com/uibakery/self-hosted link: https://uibakery.io/ v3_1: true v3: true v2: false sourceIssueMetadata: issueNumber: 137 author: lugovsky createdAt: '2024-02-14T15:49:49Z' updatedAt: '2024-02-14T15:49:49Z' url: https://github.com/OAI/Tooling/issues/137 status: open id: 103b16f99e39fe1b7754fa2921b3370b foundInMaster: true repositoryMetadata: base64Readme: >- PGgzIGFsaWduPSJjZW50ZXIiPgogIFVJIEJha2VyeSBpcyBhIGxvdy1jb2RlIHBsYXRmb3JtIHRvIGJ1aWxkIGFwcHMgYW5kIGF1dG9tYXRpb25zIHlvdSBuZXZlciBoYWQgdGltZSBmb3IKPC9oMz4KCjxoMyBhbGlnbj0iY2VudGVyIj4KICA8Yj48YSBocmVmPSJodHRwczovL2Nsb3VkLnVpYmFrZXJ5LmlvL2F1dGgvcmVnaXN0ZXI/dXRtX3NvdXJjZT1naXRodWIiPkdldCBTdGFydGVkPC9hPjwvYj4KICDigKIKICA8YSBocmVmPSJodHRwczovL2RvY3MudWliYWtlcnkuaW8/dXRtX3NvdXJjZT1naXRodWIiPkRvY3M8L2E+CiAg4oCiCiAgPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnVpYmFrZXJ5LmlvL3N0YXJ0ZXItZ3VpZGUvdHV0b3JpYWxzP3V0bV9zb3VyY2U9Z2l0aHViIj5UdXRvcmlhbHM8L2E+CiAg4oCiCiAgPGEgaHJlZj0iaHR0cHM6Ly9hcHAuZ2V0YmVhbWVyLmNvbS91aWJha2VyeS9lbj91dG1fc291cmNlPWdpdGh1YiI+V2hhdCdzIG5ldzwvYT4gCiAg4oCiCiAgPGEgaHJlZj0iaHR0cHM6Ly9yb2FkbWFwLnVpYmFrZXJ5LmlvP3V0bV9zb3VyY2U9Z2l0aHViIj5Sb2FkbWFwPC9hPiAKPC9oMz4KCjxhIGhyZWY9Imh0dHBzOi8vY2xvdWQudWliYWtlcnkuaW8vYXV0aC9yZWdpc3Rlci8/dXRtX3NvdXJjZT1naXRodWIiPjxpbWcgc3JjPSJhc3NldHMvaGVyby5wbmciIHdpZHRoPSIxMDAlIiBhbHQ9IlVJIEJha2VyeSAtIEludGVybmFsIHRvb2xzIGFuZCB3b3JrZmxvdyBhdXRvbWF0aW9ucyI+PC9hPgoKIyMgRGVwbG95aW5nIFVJIEJha2VyeSBvbi1wcmVtaXNlCgojIyMjIERlcGxveSBVSSBCYWtlcnkgbG9jYWxseSB0byBtYW5hZ2UgeW91ciBkYXRhIGZyb20geW91ciBwcml2YXRlIG5ldHdvcmsKCldlIHVuZGVyc3RhbmQgdGhhdCB5b3UgbWlnaHQgaGF2ZSBsb3RzIG9mIGRhdGEgYWNjZXNzaWJsZSBmcm9tIHlvdXIgcHJpdmF0ZSBuZXR3b3JrLCB0aGF04oCZcyB3aHkgeW91IGNhbiB1c2UgVUkgQmFrZXJ5IHNlbGYtaG9zdGVkIHZlcnNpb24gZm9yIHlvdXIgYmVuZWZpdC4KCk9uLXByZW1pc2UgdmVyc2lvbiBncmFudHMgeW91OgoKLSBBIHF1aWNrIHNldHVwIHByb2Nlc3MKLSBDdXN0b20gYnJhbmRpbmcKLSBDdXN0b20gZG9tYWluIGhvc3RpbmcKLSBPQXV0aDIgU1NPCi0gU0FNTC1iYXNlZCBpZGVudGl0eSBwcm92aWRlcnMKLSBEYXRhIGlzIHN0b3JlZCBzZWN1cmVseSB1bmRlciB5b3VyIG93biBWUFMKCjpoZWF2eV9jaGVja19tYXJrOiBVSSBCYWtlcnkgb24tcHJlbWlzZSB2ZXJzaW9uIGxpY2Vuc2Uga2V5IGNhbiBiZSBvYnRhaW5lZCBbaGVyZV0oaHR0cHM6Ly91aWJha2VyeS5pby9vbi1wcmVtaXNlLXVpLWJha2VyeSkKCjp3YXJuaW5nOiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluc3RhbGxlZCBVSSBCYWtlcnkgb24tcHJlbWlzZSB2ZXJzaW9uLCBmb2xsb3cgW3RoaXMgZ3VpZGVdKGh0dHBzOi8vZG9jcy51aWJha2VyeS5pby9vbi1wcmVtaXNlL3VwZGF0aW5nLW9uLXByZW1pc2UtdmVyc2lvbikgdG8gdXBkYXRlIHlvdXIgdmVyc2lvbi4KCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgotIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgLSBbUmVxdWlyZW1lbnRzXSgjcmVxdWlyZW1lbnRzKQogIC0gW0Jhc2ljIGluc3RhbGxhdGlvbl0oI2Jhc2ljLWluc3RhbGxhdGlvbikKICAtIFtPdGhlciBpbnN0YWxsYXRpb24gb3B0aW9uc10oI290aGVyLWluc3RhbGxhdGlvbi1vcHRpb25zKQogIAotIFtEb2N1bWVudGF0aW9uXSgjZG9jdW1lbnRhdGlvbikKCiMjIEluc3RhbGxhdGlvbgoKVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgaG93IHRvIGRlcGxveSB1aS1iYWtlcnkgb24tcHJlbSB2aWEgYGluc3RhbGwuc2hgIHNjcmlwdC4KCjp3YXJuaW5nOiBUaGUgc2NyaXB0IGluc3RhbGxzIGRvY2tlciBhbmQgZG9ja2VyLWNvbXBvc2UsIHdoaWNoIG1heSB1cGdyYWRlIHNvbWUgZGVwZW5kZW5jaWVzIHVuZGVyIHRoZSBob29kLiBQbGVhc2UgYmUgYWR2aXNlZCB0aGF0IGlmIHlvdSBydW4gdGhpcyBzY3JpcHQgb24gdGhlIE9TIHVzZWQgYXMgYSBzZXJ2ZXIgZm9yIG90aGVyIGFwcGxpY2F0aW9ucywgdGhvc2UgYXBwbGljYXRpb25zIG1heSBicmVhayBkdWUgdG8gdGhhdCBwb3RlbnRpYWwgZGVwZW5kZW5jaWVzIHVwZ3JhZGUuCgojIyMgUmVxdWlyZW1lbnRzCgotIExpbnV4LWJhc2VkIE9TIChlLmcuIFVidW50dSAxOC4wNCkuCi0gTWluaW11bSAxIGB2Q1BVc2AsIDIgYEdpQmAgbWVtb3J5IGFuZCA1IGBHaUJgIG9mIHN0b3JhZ2UuCi0gTXVzdCBoYXZlIGZ1bGwgcmlnaHRzIHRvIHVzZSAic3VkbyIuCgojIyMgQmFzaWMgaW5zdGFsbGF0aW9uCgoxLiBSdW4gdGhpcyBjb21tYW5kIHByZWZlcmFibHkgZnJvbSBgL2hvbWVgIExpbnV4IGRpcmVjdG9yeSB0byBkb3dubG9hZCwgaW5zdGFsbCBhbmQgbGF1bmNoIFVJIEJha2VyeToKCiAgIGBgYGJhc2gKICAgY3VybCAtayAtTCAtbyBpbnN0YWxsLnNoIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS91aWJha2VyeS9zZWxmLWhvc3RlZC9tYWluL2luc3RhbGwuc2ggJiYgYmFzaCAuL2luc3RhbGwuc2gKICAgYGBgCgoxLiBJbiB0aGUgcHJvY2VzcywgdXBvbiByZXF1ZXN0LCBlbnRlciB0aGUgcHJldmlvdXNseSByZWNlaXZlZCBsaWNlbnNlIGNvZGUsIGhvc3RpbmcgVVJMIGFuZCBwb3J0LgoxLiBPbmNlIHRoZSBpbnN0YWxsYXRpb24gaXMgY29tcGxldGVkLCBvcGVuIHRoZSBicm93c2VyIHVzaW5nIFVSTCBhbmQgcG9ydCBwcm92aWRlZCBlYXJsaWVyLiBCeSBkZWZhdWx0IGl0IGlzIFtodHRwOi8vbG9jYWxob3N0OjMwMzAvXShodHRwOi8vbG9jYWxob3N0OjMwMzAvKS4KCioqTk9URSoqOiBJZiBEb2NrZXIgb2YgdGhlIHZlcnNpb24gbGVzcyB0aGFuIHRoZSByZXF1aXJlZCAobWluaW11bSAyMC4xMC4xMSkgaXMgYWxyZWFkeSBpbnN0YWxsZWQgb24gdGhlIHNlcnZlciwgYW5kL29yIERvY2tlciBDb21wb3NlIChtaW5pbXVtIDEuMjkuMiksIHRoZSBzY3JpcHQgd2lsbCBiZSBzdG9wcGVkLiBZb3UgbmVlZCB0byB1cGRhdGUgdGhlIHZlcnNpb25zIG9mIGNvbXBvbmVudHMgbWFudWFsbHkgYW5kIHJ1biB0aGUgc2NyaXB0IGFnYWluLgoKIyMjIE90aGVyIGluc3RhbGxhdGlvbiBvcHRpb25zCkZvciBhZGRpdGlvbmFsIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMsIHN1Y2ggYXMgdGhvc2UgZm9yIEF6dXJlLCBBV1MsIEdDUCwgS3ViZXJuZXRlcywgYW5kIG1vcmUsIHBsZWFzZSB2aXNpdCB0aGUgW2RvY3VtZW50YXRpb24gd2Vic2l0ZV0oaHR0cHM6Ly9kb2NzLnVpYmFrZXJ5LmlvL29uLXByZW1pc2UvaW5zdGFsbGluZy1vbi1wcmVtaXNlLXZlcnNpb24pLgoKIyMgRG9jdW1lbnRhdGlvbgoKRm9yIGluc3RydWN0aW9ucyBvbiBpbnN0YWxsaW5nLCB1cGRhdGluZywgYW5kIG1hbmFnaW5nIHRoZSBvbi1wcmVtaXNlIGluc3RhbmNlLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFtkb2N1bWVudGF0aW9uIHdlYnNpdGVdKGh0dHBzOi8vZG9jcy51aWJha2VyeS5pby9vbi1wcmVtaXNlL3VpLWJha2VyeS1vbi1wcmVtaXNlKS4KCgo= readmeEtag: '"0bc6ed0b701157885370d6d50a67c001184c8d01"' readmeLastModified: Mon, 20 May 2024 19:35:14 GMT repositoryId: 507816571 description: Internal tools and workflow automations created: '2022-06-27T08:01:30Z' updated: '2024-09-05T02:14:38Z' language: Shell archived: false stars: 136 watchers: 5 forks: 11 owner: uibakery logo: https://avatars.githubusercontent.com/u/92528127?v=4 repoEtag: '"3140318423cb0fa6f9ea51b3937a39607931aba830673a0a4ef670c2c46277c3"' repoLastModified: Thu, 05 Sep 2024 02:14:38 GMT category: Server Implementations - source: openapi3 tags repository: https://github.com/intellifi-nl/brain-rest-api-spec v3: true repositoryMetadata: base64Readme: >- IyBCcmFpbiBSRVNUIEFQSSBzcGVjaWZpY2F0aW9uCgpUaGlzIHJlcG9zaXRvcnkgaG9sZHMgdGhlIEJyYWluIFJFU1QgQVBJIHJlZmVyZW5jZS4KClRoZSBCcmFpbiBBUEkgcmVmZXJlbmNlIHVzZXMgdGhlIFtPcGVuQVBJXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvKSBzdGFuZGFyZCBhbmQgYSBudW1iZXIgb2YgZG9jdW1lbnQgZ2VuZXJhdG9ycyB0byB2aXN1YWxpemUgdGhlIEFQSSBTcGVjaWZpY2F0aW9uLgoKVGhlIEJyYWluIEFQSSBzcGVjIGNhbiBiZSBmb3VuZCBpbiB0aGUgIFtgb3BlbmFwaS55bWxgXSguL29wZW5hcGkueW1sKSBmaWxlLgoKVGhlIGRvY3VtZW50YXRpb24gaXMgaG9zdGVkIHVzaW5nIFtHaXRodWIgcGFnZXNdKGh0dHBzOi8vcGFnZXMuZ2l0aHViLmNvbS8pIGF0IFtpbnRlbGxpZmktbmwuZ2l0aHViLmlvL2JyYWluLXJlc3QtYXBpLXNwZWNdKGh0dHBzOi8vaW50ZWxsaWZpLW5sLmdpdGh1Yi5pby9icmFpbi1yZXN0LWFwaS1zcGVjLykuCgpBbGwgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIExpY2Vuc2VdKC4vTElDRU5TRSkuCg== readmeEtag: '"7fa7261b24262d80b425a8c3ddbb8c1bf26e35c8"' readmeLastModified: Thu, 11 Jul 2024 12:07:18 GMT repositoryId: 149280093 description: Intellifi Brain REST API spec created: '2018-09-18T11:51:24Z' updated: '2024-07-11T12:07:22Z' language: null archived: false stars: 0 watchers: 5 forks: 0 owner: intellifi-nl logo: https://avatars.githubusercontent.com/u/9928538?v=4 license: MIT repoEtag: '"ac777df99e24d1338f3d751f6393f950ed0663bf4c23625888f8cc2fa0693273"' repoLastModified: Thu, 11 Jul 2024 12:07:22 GMT foundInMaster: true category: - Testing - Parsers id: c5bb244b2a8497d8a4a509ba783c5b59 - source: openapi3 tags repository: https://github.com/cblx/oang v3: true repositoryMetadata: base64Readme: >- IyBvYW5nCkFuZ3VsYXIgbGlicmFyeSBmb3IgaGVscGluZyB3cml0aW5nIFVJIGNvbXBvbmVudHMgYW5kIHZhbGlkYXRvcnMgYmFzZWQgb24gT3BlbiBBcGkgU2NoZW1hczoKCmh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4zLm1kI3NjaGVtYS1vYmplY3QKCkRlbW86CgpodHRwczovL2NibHhvYW5nLnoxNS53ZWIuY29yZS53aW5kb3dzLm5ldC8KClRoaXMgbGlicmFyeSBoYXMgMiBjYXBhYmlsaXRpZXM6CgoxLiBDcmVhdGVzIGEgRm9ybUdyb3VwIGZyb20gYW4gT3BlbkFwaSBzY2hlbWEgd2l0aCB2YWxpZGF0aW9ucywgZGVmYXVsdCB2YWx1ZXMgYW5kIFVJIGV4dHJhIGluZm9ybWF0aW9uLgoKMi4gUHJvdmlkZXMgYSBjb21wb25lbnQgdGhhdCB3aWxsIHJlc29sdmUgc3BlY2lmaWMgY29tcG9uZW50cyBiYXNlZCBvbiB0aGUgc2NoZW1hCgojIyBVc2FnZQoKSW5zdGFsbGluZwoKYApucG0gaW5zdGFsbCBjYmx4LmJyL29hbmcgLS1zYXZlLWRldgpgCgpJbXBvcnQgT2FuZ01vZHVsZQoKYGBgCmltcG9ydCB7IE9hbmdNYXRlcmlhbE1vZHVsZSB9IGZyb20gJ0BjYmx4LmJyL29hbmcnOwoKCkBOZ01vZHVsZSh7CiAgaW1wb3J0czogWwogICAgT2FuZ01vZHVsZSwKICBdCn0pCmV4cG9ydCBjbGFzcyBNeU1vZHVsZSB7IH0KYGBgCgojIyBDcmVhdGluZyBGb3JtR3JvdXBzIGZyb20gT3BlbkFwaSBzY2hlbWFzCgpgYGAKaW1wb3J0IHsgT2FuZ0VuZ2luZSB9IGZyb20gJ0BjYmx4LmJyL29hbmcnOwoKQENvbXBvbmVudCguLi4pCmNsYXNzIE15Q29tcG9uZW50ewogICBmb3JtR3JvdXBJbmZvOiBGb3JtR3JvdXBJbmZvOwogICBjb25zdHJ1Y3RvcihvYW5nRW5naW5lOiBPYW5nRW5naW5lKXsKICAgdGhpcy5mb3JtR3JvdXBJbmZvID0gb2FuZ0VuZ2luZS5jcmVhdGVGb3JtKHNjaGVtYUNhdGFsb2cgLyogdGhlIHNjaGVtYSBkaWN0aW9uYXJ5ICovLCAnTXlSZXF1ZXN0RHRvJyAvKiB0aGUgc2NoZW1hIG9iamVjdCBuYW1lICovKTsKfQpgYGAKClRoZSBmb3JtR3JvdXBJbmZvIGhhcyB0aGUgZm9sbG93aW5nIGZpZWxkcyBvZiBpbnRlcmVzdDoKCi0gY29udHJvbDogRm9ybUdyb3VwCi0gY29udHJvbEluZm9zOiAgeyBba2V5OnN0cmluZ106IENvbnRyb2xJbmZvIH0KCkEgQ29udHJvbEluZm8gd2lsbCBiZSBjcmVhdGVkIGZvciBlYWNoIHByb3BlcnR5IG9mIHRoZSBzY2hlbWEgb2JqZWN0CgoKCgo= readmeEtag: '"f6640d65d7cac0816af542d7e33ea6bd405f4adb"' readmeLastModified: Sat, 22 Aug 2020 20:53:41 GMT repositoryId: 238743619 description: >- Angular library for helping writing UI components and validators based on Open Api Schemas. created: '2020-02-06T17:20:19Z' updated: '2023-01-28T07:34:35Z' language: TypeScript archived: true stars: 0 watchers: 2 forks: 0 owner: cblx logo: https://avatars.githubusercontent.com/u/34380237?v=4 license: MIT repoEtag: '"f0dd5cd0e6f4c2e80abd1b63f00345e6d10d7ddb19c88295aa19114659444e31"' repoLastModified: Sat, 28 Jan 2023 07:34:35 GMT foundInMaster: true category: Parsers id: 1431f5baa7b237acc274cb122ea92fb4 - source: openapi3 tags repository: https://github.com/ragnar-oock/setlist v3: true repositoryMetadata: base64Readme: >- IyBzZXRsaXN0CgpBbiBBUEkgZHJpdmVuIGxpc3Qgb2YgYWxsIHNvbmdzIGF2YWlsYWJsZSBmb3IgcmVxdWVzdHMgb24gaHR0cHM6Ly90d2l0Y2gudHYvd2FydGhzLgoKVGhlIGNvZGUgZm9yIHRoZSBiYWNrZW5kIGlzIGF2YWlsYWJsZSBoZXJlIDogaHR0cHM6Ly9naXRodWIuY29tL1JhZ25hci1Pb2NrL3NldGxpc3RfdjJfY29ubmV4aW9uCgpWZXJzaW9uIDEgaXMgb3V0IQpjaGVjayB0aGUgbGl2ZSB2ZXJzaW9uIGF0IGh0dHBzOi8vc2V0bGlzdC53YXJ0aHMuZnIvCg== readmeEtag: '"3d3fa475b1303f1b7ee454e71f3f9421c12bf990"' readmeLastModified: Tue, 25 Jun 2024 10:06:28 GMT repositoryId: 287072772 description: >- An API-driven list of all songs available for requests on twitch.tv/warths. Currently in development. created: '2020-08-12T17:19:03Z' updated: '2024-06-25T10:06:32Z' language: Vue archived: false stars: 0 watchers: 2 forks: 0 owner: Ragnar-Oock logo: https://avatars.githubusercontent.com/u/38219333?v=4 license: MIT repoEtag: '"7ccc0c875d61165b632c4eec0cdabb6f1bf39e98be0ff9d4f587b35749bf3afd"' repoLastModified: Tue, 25 Jun 2024 10:06:32 GMT foundInMaster: true category: - Documentation - Server Implementations id: 749731d9ec54b967c7193370a6d4034e - source: openapi3 tags repository: https://github.com/iliashenkoa/openapi_express_excel_generator v3: true repositoryMetadata: base64Readme: >- IyBOb2RlLmpzIGV4cHJlc3Mgc2ltcGxlIGFwcCB3aGljaCBnZW5lcmF0ZWQgYnkgb3BlbmFwaQoKIyMgT3ZlcnZpZXcKVGhpcyBzZXJ2ZXIgd2FzIGdlbmVyYXRlZCB1c2luZyB0aGUgW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpIHByb2plY3QuICBUaGUgY29kZSBnZW5lcmF0b3IsIGFuZCBpdCdzIGdlbmVyYXRlZCBjb2RlIGFsbG93cyB5b3UgdG8gZGV2ZWxvcCB5b3VyIHN5c3RlbSB3aXRoIGFuIEFQSS1GaXJzdCBhdHRpdHVkZSwgd2hlcmUgdGhlIEFQSSBjb250cmFjdCBpcyB0aGUgYW5jaG9yIGFuZCBkZWZpbmVyIG9mIHlvdXIgcHJvamVjdCwgYW5kIHlvdXIgY29kZSBhbmQgYnVzaW5lc3MtbG9naWMgYWltcyB0byBjb21wbGV0ZSBhbmQgY29tcGx5IHRvIHRoZSB0ZXJtcyBpbiB0aGUgQVBJIGNvbnRyYWN0LgoKIyMjIHByZXJlcXVpc2l0ZXMKLSBOb2RlSlMgPj0gMTAuNAotIE5QTSA+PSA2LjEwLjAKClRoZSBjb2RlIHdhcyB3cml0dGVuIG9uIGEgbWFjLCBzbyBhc3N1bWluZyBhbGwgc2hvdWxkIHdvcmsgc21vb3RobHkgb24gTGludXgtYmFzZWQgY29tcHV0ZXJzLiBIb3dldmVyLCB0aGVyZSBpcyBubyByZWFzb24gbm90IHRvIHJ1biB0aGlzIGxpYnJhcnkgb24gV2luZG93cy1iYXNlZCBtYWNoaW5lcy4gSWYgeW91IGZpbmQgYW4gT1MtcmVsYXRlZCBwcm9ibGVtLCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBhbmQgaXQgd2lsbCBiZSByZXNvbHZlZC4KCiMjIyBSdW5uaW5nIHRoZSBzZXJ2ZXIgIApUbyBydW4gdGhlIHNlcnZlciwgcnVuOiAgCiAgCmBgYCAgCm5wbSBzdGFydCAgCmBgYAojIyMgVmlldyBhbmQgdGVzdCB0aGUgQVBJCllvdSBjYW4gc2VlIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiwgYW5kIGNoZWNrIHRoZSBhdmFpbGFibGUgZW5kcG9pbnRzIGJ5IGdvaW5nIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGktZG9jcy8uICBFbmRwb2ludHMgdGhhdCByZXF1aXJlIHNlY3VyaXR5IG5lZWQgdG8gaGF2ZSBzZWN1cml0eSBoYW5kbGVycyBjb25maWd1cmVkIGJlZm9yZSB0aGV5IGNhbiByZXR1cm4gYSBzdWNjZXNzZnVsIHJlc3BvbnNlLiBBdCB0aGlzIHBvaW50IHRoZXkgd2lsbCByZXR1cm4gWyBhIHJlc3BvbnNlIGNvZGUgb2YgNDAxXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL1N0YXR1cy80MDEpLgojIyMjIyBBdCB0aGlzIHN0YWdlIHRoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCBkb2N1bWVudCBib2R5IHNlbnQgaW4geG1sIGZvcm1hdC4gRm9ybXMgd2lsbCBiZSBzdXBwb3J0ZWQgaW4gdGhlIG5lYXIgZnV0dXJlLiAKCiMjIyBOb2RlIHZlcnNpb24gYW5kIGd1aWRlbGluZXMgClRoZSBjb2RlIHdhcyB3cml0dGVuIHVzaW5nIE5vZGUgdmVyc2lvbiAxMC42LCBhbmQgY29tcGxpZXMgdG8gdGhlIFtBaXJibmIgLmVzbGludCBndWlkaW5nIHJ1bGVzXShodHRwczovL2dpdGh1Yi5jb20vYWlyYm5iL2phdmFzY3JpcHQpLiAKCiMjIyBQcm9qZWN0IEZpbGVzCiMjIyMgUm9vdCBEaXJlY3Rvcnk6CkluIHRoZSByb290IGRpcmVjdG9yeSB3ZSBoYXZlIChiZXNpZGVzIHBhY2thZ2UuanNvbiwgY29uZmlnLmpzLCBhbmQgbG9nIGZpbGVzKToKLSAqKmxvZ2dlci5qcyoqIC0gd2hlcmUgd2UgZGVmaW5lIHRoZSBsb2dnZXIgZm9yIHRoZSBwcm9qZWN0LiBUaGUgcHJvamVjdCB1c2VzIHdpbnN0b24sIGJ1dCB0aGUgcHVycG9zZSBvZiB0aGlzIGZpbGUgaXMgdG8gZW5hYmxlIHVzZXJzIHRvIGNoYW5nZSBhbmQgbW9kaWZ5IHRoZWlyIG93biBsb2dnZXIgYmVoYXZpb3IuCi0gKippbmRleC5qcyoqIC0gVGhpcyBpcyB0aGUgcHJvamVjdCdzICdtYWluJyBmaWxlLCBhbmQgZnJvbSBoZXJlIHdlIGxhdW5jaCB0aGUgYXBwbGljYXRpb24uIFRoaXMgaXMgYSB2ZXJ5IHNob3J0IGFuZCBjb25jaXNlIGZpbGUsIGFuZCB0aGUgaWRlYSBiZWhpbmQgbGF1bmNoaW5nIGZyb20gdGhpcyBzaG9ydCBmaWxlIGlzIHRvIGFsbG93IHVzZS1jYXNlcyBvZiBsYXVuY2hpbmcgdGhlIHNlcnZlciB3aXRoIGRpZmZlcmVudCBwYXJhbWV0ZXJzIChjaGFuZ2luZyBjb25maWcgYW5kL29yIGxvZ2dlcikgd2l0aG91dCBhZmZlY3RpbmcgdGhlIHJlc3Qgb2YgdGhlIGNvZGUuIAotICoqZXhwcmVzc1NlcnZlci5qcyoqIC0gVGhlIGNvcmUgb2YgdGhlIEV4cHJlc3MuanMgc2VydmVyLiBUaGlzIGlzIHdoZXJlIHRoZSBleHByZXNzIHNlcnZlciBpcyBpbml0aWFsaXplZCwgdG9nZXRoZXIgd2l0aCB0aGUgT3BlbkFQSSB2YWxpZGF0b3IsIE9wZW5BUEkgVUksIGFuZCBvdGhlciBsaWJyYXJpZXMgbmVlZGVkIHRvIHN0YXJ0IG91ciBzZXJ2ZXIuIElmIHdlIHdhbnQgdG8gYWRkIGV4dGVybmFsIGxpbmtzLCB0aGF0J3Mgd2hlcmUgdGhleSB3b3VsZCBnby4gT3VyIHByb2plY3QgdXNlcyB0aGUgW2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3JdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IpIGxpYnJhcnkgdGhhdCBhY3RzIGFzIGEgZmlyc3Qgc3RlcCBpbiB0aGUgcm91dGluZyBwcm9jZXNzIC0gcmVxdWVzdHMgdGhhdCBhcmUgZGlyZWN0ZWQgdG8gcGF0aHMgZGVmaW5lZCBpbiB0aGUgYG9wZW5hcGkueWFtbGAgZmlsZSBhcmUgY2F1Z2h0IGJ5IHRoaXMgcHJvY2VzcywgYW5kIGl0J3MgcGFyYW1ldGVycyBhbmQgYm9keUNvbnRlbnQgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSBzY2hlbWEuIEEgc3VjY2Vzc2Z1bCByZXN1bHQgb2YgdGhpcyB2YWxpZGF0aW9uIHdpbGwgYmUgYSBuZXcgJ29wZW5hcGknIG9iamVjdCBhZGRlZCB0byB0aGUgcmVxdWVzdC4gSWYgdGhlIHBhdGggcmVxdWVzdGVkIGlzIG5vdCBwYXJ0IG9mIHRoZSBvcGVuYXBpLnlhbWwgZmlsZSwgdGhlIHZhbGlkYXRvciBpZ25vcmVzIHRoZSByZXF1ZXN0IGFuZCBwYXNzZXMgaXQgb24sIGFzIGlzLCBkb3duIHRoZSBmbG93IG9mIHRoZSBFeHByZXNzIHNlcnZlci4KCiMjIyMgYXBpLwotICoqb3BlbmFwaS55YW1sKiogLSBUaGlzIGlzIHRoZSBPcGVuQVBJIGNvbnRyYWN0IHRvIHdoaWNoIHRoaXMgc2VydmVyIHdpbGwgY29tcGx5LiBUaGUgZmlsZSB3YXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBjb2RlZ2VuLCBhbmQgc2hvdWxkIGNvbnRhaW4gZXZlcnl0aGluZyBuZWVkZWQgdG8gcnVuIHRoZSBBUEkgR2F0ZXdheSAtIG5vIHJlZmVyZW5jZXMgdG8gZXh0ZXJuYWwgbW9kZWxzL3NjaGVtYXMuIAoKIyMjIyB1dGlscy8KQ3VycmVudGx5IGEgc2luZ2xlIGZpbGU6CgotICoqb3BlbmFwaVJvdXRlci5qcyoqIC0gVGhpcyBpcyB3aGVyZSB0aGUgcm91dGluZyB0byBvdXIgYmFjay1lbmQgY29kZSBoYXBwZW5zLiBJZiB0aGUgcmVxdWVzdCBvYmplY3QgaW5jbHVkZXMgYW4gYGBgb3BlbmFwaWBgYCBvYmplY3QsIGl0IHBpY2tzIHVwIHRoZSBmb2xsb3dpbmcgdmFsdWVzICh0aGF0IGFyZSBwYXJ0IG9mIHRoZSBgYGBvcGVuYXBpLnlhbWxgYGAgZmlsZSk6ICd4LW9wZW5hcGktcm91dGVyLWNvbnRyb2xsZXInLCBhbmQgJ3gtb3BlbmFwaS1yb3V0ZXItc2VydmljZScuIFRoZXNlIHZhcmlhYmxlcyBhcmUgbmFtZXMgb2YgZmlsZXMvY2xhc3NlcyBpbiB0aGUgY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzIGRpcmVjdG9yaWVzIHJlc3BlY3RpdmVseS4gVGhlIG9wZXJhdGlvbklkIG9mIHRoZSByZXF1ZXN0IGlzIGFsc28gZXh0cmFjdGVkLiBUaGUgb3BlcmF0aW9uSWQgaXMgYSBtZXRob2QgaW4gdGhlIGNvbnRyb2xsZXIgYW5kIHRoZSBzZXJ2aWNlIHRoYXQgd2FzIGdlbmVyYXRlZCBhcyBwYXJ0IG9mIHRoZSBjb2RlZ2VuIHByb2Nlc3MuIFRoZSByb3V0aW5nIHByb2Nlc3Mgc2VuZHMgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIG9iamVjdHMgdG8gdGhlIGNvbnRyb2xsZXIsIHdoaWNoIHdpbGwgZXh0cmFjdCB0aGUgZXhwZWN0ZWQgdmFyaWFibGVzIGZyb20gdGhlIHJlcXVlc3QsIGFuZCBzZW5kIGl0IHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgc2VydmljZSwgcmV0dXJuaW5nIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2aWNlIHRvIHRoZSBjYWxsZXIuCgojIyMjIGNvbnRyb2xsZXJzLwpBZnRlciB2YWxpZGF0aW5nIHRoZSByZXF1ZXN0LCBhbmQgZW5zdXJpbmcgdGhpcyBiZWxvbmdzIHRvIG91ciBBUEkgZ2F0ZXdheSwgd2Ugc2VuZCB0aGUgcmVxdWVzdCB0byBhIGBjb250cm9sbGVyYCwgd2hlcmUgdGhlIHZhcmlhYmxlcyBhbmQgcGFyYW1ldGVycyBhcmUgZXh0cmFjdGVkIGZyb20gdGhlIHJlcXVlc3QgYW5kIHNlbnQgdG8gdGhlIHJlbGV2YW50IGBzZXJ2aWNlYCBmb3IgcHJvY2Vzc2luZy4gVGhlIGBjb250cm9sbGVyYCBoYW5kbGVzIHRoZSByZXNwb25zZSBmcm9tIHRoZSBgc2VydmljZWAgYW5kIGJ1aWxkcyB0aGUgYXBwcm9wcmlhdGUgSFRUUCByZXNwb25zZSB0byBiZSBzZW50IGJhY2sgdG8gdGhlIHVzZXIuIAoKLSAqKmluZGV4LmpzKiogLSBsb2FkIGFsbCB0aGUgY29udHJvbGxlcnMgdGhhdCB3ZXJlIGdlbmVyYXRlZCBmb3IgdGhpcyBwcm9qZWN0LCBhbmQgZXhwb3J0IHRoZW0gdG8gYmUgdXNlZCBkeW5hbWljYWxseSBieSB0aGUgYG9wZW5hcGlSb3V0ZXIuanNgLiBJZiB5b3Ugd291bGQgbGlrZSB0byBjdXN0b21pemUgeW91ciBjb250cm9sbGVyLCBpdCBpcyBhZHZpc2VkIHRoYXQgeW91IGxpbmsgdG8geW91ciBjb250cm9sbGVyIGhlcmUsIGFuZCBlbnN1cmUgdGhhdCB0aGUgY29kZWdlbiBkb2VzIG5vdCByZXdyaXRlIHRoaXMgZmlsZS4KCi0gKipDb250cm9sbGVyLmpzKiogLSBUaGUgY29yZSBwcm9jZXNzb3Igb2YgdGhlIGdlbmVyYXRlZCBjb250cm9sbGVycy4gVGhlIGdlbmVyYXRlZCBjb250cm9sbGVycyBhcmUgZGVzaWduZWQgdG8gYmUgYXMgc2xpbSBhbmQgZ2VuZXJpYyBhcyBwb3NzaWJsZSwgcmVmZXJlbmNpbmcgdG8gdGhlIGBDb250cm9sbGVyLmpzYCBmb3IgdGhlIGJ1c2luZXNzIGxvZ2ljIG9mIHBhcnNpbmcgdGhlIG5lZWRlZCB2YXJpYWJsZXMgYW5kIGFyZ3VtZW50cyBmcm9tIHRoZSByZXF1ZXN0LCBhbmQgZm9yIGJ1aWxkaW5nIHRoZSBIVFRQIHJlc3BvbnNlIHdoaWNoIHdpbGwgYmUgc2VudCBiYWNrLiBUaGUgYENvbnRyb2xsZXIuanNgIGlzIGEgY2xhc3Mgd2l0aCBzdGF0aWMgbWV0aG9kcy4gCgotICoqe3t4LW9wZW5hcGktcm91dGVyLWNvbnRyb2xsZXJ9fS5qcyoqIC0gYXV0by1nZW5lcmF0ZWQgY29kZSwgcHJvY2Vzc2luZyBhbGwgdGhlIG9wZXJhdGlvbnMuIFRoZSBDb250cm9sbGVyIGlzIGEgY2xhc3MgdGhhdCBpcyBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBzZXJ2aWNlIGNsYXNzIGl0IHdpbGwgYmUgc2VuZGluZyB0aGUgcmVxdWVzdCB0by4gRXZlcnkgcmVxdWVzdCBkZWZpbmVkIGJ5IHRoZSBgb3BlbmFwaS55YW1sYCAgaGFzIGFuIG9wZXJhdGlvbklkLiBUaGUgb3BlcmF0aW9uSWQgaXMgdGhlIG5hbWUgb2YgdGhlIG1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkLiBFdmVyeSBtZXRob2QgcmVjZWl2ZXMgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlLCBhbmQgY2FsbHMgdGhlIGBDb250cm9sbGVyLmpzYCB0byBwcm9jZXNzIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSwgYWRkaW5nIHRoZSBzZXJ2aWNlIG1ldGhvZCB0aGF0IHNob3VsZCBiZSBjYWxsZWQgZm9yIHRoZSBhY3R1YWwgYnVzaW5lc3MtbG9naWMgcHJvY2Vzc2luZy4KCiMjIyMgc2VydmljZXMvClRoaXMgaXMgd2hlcmUgdGhlIEFQSSBHYXRld2F5IGVuZHMsIGFuZCB0aGUgdW5pcXVlIGJ1c2luZXNzLWxvZ2ljIG9mIHlvdXIgYXBwbGljYXRpb24ga2lja3MgaW4uIEV2ZXJ5IGVuZHBvaW50IGluIHRoZSBgb3BlbmFwaS55YW1sYCBoYXMgYSB2YXJpYWJsZSAneC1vcGVuYXBpLXJvdXRlci1zZXJ2aWNlJywgd2hpY2ggaXMgdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgY2xhc3MgdGhhdCBpcyBnZW5lcmF0ZWQuIFRoZSBvcGVyYXRpb25JRCBvZiB0aGUgZW5kcG9pbnQgaXMgdGhlIG5hbWUgb2YgdGhlIG1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkLiBUaGUgZ2VuZXJhdGVkIGNvZGUgcHJvdmlkZXMgYSBzaW1wbGUgcHJvbWlzZSB3aXRoIGEgdHJ5L2NhdGNoIGNsYXVzZS4gQSBzdWNjZXNzZnVsIG9wZXJhdGlvbiBlbmRzIHdpdGggYSBjYWxsIHRvIHRoZSBnZW5lcmljIGBTZXJ2aWNlLmpzYCB0byBidWlsZCBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgKHBheWxvYWQgYW5kIHJlc3BvbnNlIGNvZGUpLCBhbmQgYSBmYWlsdXJlIHdpbGwgY2FsbCB0aGUgZ2VuZXJpYyBgU2VydmljZS5qc2AgdG8gYnVpbGQgYSByZXNwb25zZSB3aXRoIGFuIGVycm9yIG9iamVjdCBhbmQgdGhlIHJlbGV2YW50IHJlc3BvbnNlIGNvZGUuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGhhdmUgdGhlIHNlcnZpY2VzIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IG9uY2UsIGFuZCBhZnRlciB0aGUgaW5pdGlhbCBidWlsZCBhZGQgbWV0aG9kcyBtYW51YWxseS4KCi0gKippbmRleC5qcyoqIC0gbG9hZCBhbGwgdGhlIHNlcnZpY2VzIHRoYXQgd2VyZSBnZW5lcmF0ZWQgZm9yIHRoaXMgcHJvamVjdCwgYW5kIGV4cG9ydCB0aGVtIHRvIGJlIHVzZWQgZHluYW1pY2FsbHkgYnkgdGhlIGBvcGVuYXBpUm91dGVyLmpzYC4gSWYgeW91IHdvdWxkIGxpa2UgdG8gY3VzdG9taXplIHlvdXIgc2VydmljZSwgaXQgaXMgYWR2aXNlZCB0aGF0IHlvdSBsaW5rIHRvIHlvdXIgY29udHJvbGxlciBoZXJlLCBhbmQgZW5zdXJlIHRoYXQgdGhlIGNvZGVnZW4gZG9lcyBub3QgcmV3cml0ZSB0aGlzIGZpbGUuCgotICoqU2VydmljZS5qcyoqIC0gQSB1dGlsaXR5IGNsYXNzLCB2ZXJ5IHNpbXBsZSBhbmQgdGhpbiBhdCB0aGlzIHBvaW50LCB3aXRoIHR3byBzdGF0aWMgbWV0aG9kcyBmb3IgYnVpbGRpbmcgYSByZXNwb25zZSBvYmplY3QgZm9yIHN1Y2Nlc3NmdWwgYW5kIGZhaWxlZCByZXN1bHRzIGluIHRoZSBzZXJ2aWNlIG9wZXJhdGlvbi4gVGhlIGRlZmF1bHQgcmVzcG9uc2UgY29kZSBpcyAyMDAgZm9yIHN1Y2Nlc3MgYW5kIDUwMCBmb3IgZmFpbHVyZS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gc2VuZCBtb3JlIGFjY3VyYXRlIHJlc3BvbnNlIGNvZGVzIGFuZCBvdmVycmlkZSB0aGVzZSBkZWZhdWx0cyB3aGVuIHJlbGV2YW50LgoKLSAqKnt7eC1vcGVuYXBpLXJvdXRlci1zZXJ2aWNlfX0uanMqKiAtIGF1dG8tZ2VuZXJhdGVkIGNvZGUsIHByb3ZpZGluZyBhIHN0dWIgUHJvbWlzZSBmb3IgZWFjaCBvcGVyYXRpb25JZCBkZWZpbmVkIGluIHRoZSBgb3BlbmFwaS55YW1sYC4gRWFjaCBtZXRob2QgcmVjZWl2ZXMgdGhlIHZhcmlhYmxlcyB0aGF0IHdlcmUgZGVmaW5lZCBpbiB0aGUgYG9wZW5hcGkueWFtbGAgZmlsZSwgYW5kIHdyYXBzIGEgUHJvbWlzZSBpbiBhIHRyeS9jYXRjaCBjbGF1c2UuIFRoZSBQcm9taXNlIHJlc29sdmVzIGJvdGggc3VjY2VzcyBhbmQgZmFpbHVyZSBpbiBhIGNhbGwgdG8gdGhlIGBTZXJ2aWNlLmpzYCB1dGlsaXR5IGNsYXNzIGZvciBidWlsZGluZyB0aGUgYXBwcm9wcmlhdGUgcmVzcG9uc2UgdGhhdCB3aWxsIGJlIHNlbnQgYmFjayB0byB0aGUgQ29udHJvbGxlciBhbmQgdGhlbiB0byB0aGUgY2FsbGVyIG9mIHRoaXMgZW5kcG9pbnQuCgojIyMjIHRlc3RzLwotICoqc2VydmVyVGVzdHMuanMqKiAtIGJhc2ljIHNlcnZlciB2YWxpZGF0aW9uIHRlc3RzLCBjaGVja2luZyB0aGF0IHRoZSBzZXJ2ZXIgaXMgdXAsIHRoYXQgYSBjYWxsIHRvIGFuIGVuZHBvaW50IHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIGBvcGVuYXBpLnlhbWxgIGZpbGUgcmV0dXJucyAyMDAsIHRoYXQgYSBjYWxsIHRvIGEgcGF0aCBvdXRzaWRlIHRoYXQgc2NvcGUgcmV0dXJucyAyMDAgaWYgaXQgZXhpc3RzIGFuZCBhIDQwNCBpZiBub3QuCi0gKipyb3V0aW5nVGVzdHMuanMqKiAtIFJ1bnMgdGhyb3VnaCBhbGwgdGhlIGVuZHBvaW50cyBkZWZpbmVkIGluIHRoZSBgb3BlbmFwaS55YW1sYCwgYW5kIGNvbnN0cnVjdHMgYSBkdW1teSByZXF1ZXN0IHRvIHNlbmQgdG8gdGhlIHNlcnZlci4gQ29uZmlybXMgdGhhdCB0aGUgcmVzcG9uc2UgY29kZSBpcyAyMDAuIEF0IHRoaXMgcG9pbnQgcmVxdWVzdHMgY29udGFpbmluZyB4bWwgb3IgZm9ybURhdGEgZmFpbCAtIGN1cnJlbnRseSB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoZSByb3V0ZXIuCi0gKiphZGRpdGlvbmFsRW5kcG9pbnRzVGVzdHMuanMqKiAtIEEgdGVzdCBmaWxlIGZvciBhbGwgdGhlIGVuZHBvaW50cyB0aGF0IGFyZSBkZWZpbmVkIG91dHNpZGUgdGhlIG9wZW5hcGkueWFtbCBzY29wZS4gQ29uZmlybXMgdGhhdCB0aGVzZSBlbmRwb2ludHMgcmV0dXJuIGEgc3VjY2Vzc2Z1bCAyMDAgcmVzcG9uc2UuCgoKRnV0dXJlIHRlc3RzIHNob3VsZCBiZSB3cml0dGVuIHRvIGVuc3VyZSB0aGF0IHRoZSByZXNwb25zZSBvZiBldmVyeSByZXF1ZXN0IHNlbnQgc2hvdWxkIGNvbmZvcm0gdG8gdGhlIHN0cnVjdHVyZSBkZWZpbmVkIGluIHRoZSBgb3BlbmFwaS55YW1sYC4gVGhpcyB0ZXN0IHdpbGwgZmFpbCAxMDAlIGluaXRpYWxseSwgYW5kIHRoZSBqb2Igb2YgdGhlIGRldmVsb3BtZW50IHRlYW0gd2lsbCBiZSB0byBjbGVhciB0aGVzZSB0ZXN0cy4KCgojIyMjIG1vZGVscy8KQ3VycmVudGx5IGEgY29uY2VwdCBhd2FpdGluZyBmZWVkYmFjay4gVGhlIGlkZWEgaXMgdG8gaGF2ZSB0aGUgb2JqZWN0cyBkZWZpbmVkIGluIHRoZSBvcGVuYXBpLnlhbWwgYWN0IGFzIG1vZGVscyB3aGljaCBhcmUgcGFzc2VkIGJldHdlZW4gdGhlIGRpZmZlcmVudCBtb2R1bGVzLiBUaGlzIHdpbGwgY29uZm9ybSB0aGUgcHJvZ3JhbW1lcnMgdG8gaW50ZXJhY3QgdXNpbmcgZGVmaW5lZCBvYmplY3RzLCByYXRoZXIgdGhhbiBsb29zbGV5LWRlZmluZWQgSlNPTiBvYmplY3RzLiBHaXZlbiB0aGUgbmF0dXJlIG9mIEphdmFTY3JpcHQgcHJvZ3JtbWVycywgd2hvIHdhbnQgdG8gd29yayB3aXRoIHRoZWlyIG93biBib290c3RyYXBwZWQgcGFyYW1ldGVycywgdGhpcyBjb25jZXB0IG1pZ2h0IG5vdCB3b3JrLiBLZWVwaW5nIHRoaXMgaGVyZSBmb3IgZnV0dXJlIGRpc2N1c3Npb24gYW5kIGZlZWRiYWNrLgoKCgo= readmeEtag: '"3bdd94837a9dfdc8bc658cffd6d0a117fe325054"' readmeLastModified: Tue, 10 Mar 2020 09:11:19 GMT repositoryId: 246238533 description: null created: '2020-03-10T07:48:11Z' updated: '2020-03-10T09:13:14Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: iliashenkoa logo: https://avatars.githubusercontent.com/u/37848086?v=4 repoEtag: '"b2665bf8c5da7009821ba46eeb17623eb37293a5c0d0b455ff97a6a5c2c56191"' repoLastModified: Tue, 10 Mar 2020 09:13:14 GMT foundInMaster: true category: Server Implementations id: 0fbe268671f3d121f90e52c57d78137b - source: openapi3 tags repository: https://github.com/yjmorales/openapi-specifications v3: true id: ad429c52aa9dd2b0889b134646919780 repositoryMetadata: base64Readme: >- IyMgQVBJIERlZmluaXRpb24gYmFzZWQgb24gT3BlbkFwaSBTcGVjaWZpY2F0aW9ucyAodjMpLgoKClRoaXMgcHJvamVjdCBob2xkcyBhbiBleGFtcGxlIG9mIGFuIEFQSSBkZWZpbml0aW9uIGJhc2VkIG9uIE9wZW5BcGkgMyBTcGVjaWZpY2F0aW9ucy4gCgoKVGhlIHNwZWNpZmljYXRpb24gZmlsZSBpcyBzZWxmLWV4cGxhbmF0b3J5IGFuZCBiZWxvdyBpcyBtaW5vciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gaW5zdGFsbCB0aGlzIG9uIGEgcHJvamVjdC4KCiMjIyBJbnN0YWxsYXRpb24KCklmIHlvdSB3YW50IHRvIGFkZCB0aGlzIGN1cnJlbnQgcmVwb3NpdG9yeSB0byB0aGUgcmVwb3NpdG9yaWVzIHNlY3Rpb24gb24geW91ciBvd24gcHJvamVjdCBgY29tcG9zZXIuanNvbmAgZmlsZS4KCmBgYGAKICAgICJyZXBvc2l0b3JpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJnaXQiLAogICAgICAgICAgICAidXJsIjogImdpdEBnaXRodWIuY29tOnlqbW9yYWxlcy9vcGVuYXBpLXNwZWNpZmljYXRpb25zLmdpdCIKICAgICAgICB9CiAgICBdLApgYGBgCgpGdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBwbGVhc2UgdmlzaXQgaXRzIFtzcGVjaWZpY2F0aW9uXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pLgoKIyMjIENvbnRhY3QgbWUKClllbmllciBKaW1lbmV6Cjxicj4KaHR0cDovL3llbmllcmppbWVuZXoubmV0Cjxicj4KeWptb3JhbGVzODZAZ21haWwuY29tCgoK readmeEtag: '"fd769a2746c9e7bcfb371a6dd5c07bf0c8b609ea"' readmeLastModified: Tue, 17 Oct 2023 14:45:14 GMT repositoryId: 325404199 description: >- This project holds an example of an API definition based on OpenApi 3 Specifications. created: '2020-12-29T22:58:28Z' updated: '2023-01-22T04:57:44Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: yjmorales logo: https://avatars.githubusercontent.com/u/24995532?v=4 license: MIT repoEtag: '"4103936c269936aa5480fe62f050f0fe66bf4fe617539eea931e17585162ac7e"' repoLastModified: Sun, 22 Jan 2023 04:57:44 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/aqib1/idealotask2 v3: true repositoryMetadata: base64Readme: >- IyBJZGVhbG9UYXNrMgpSZXBvc2l0b3J5IGZvciBJZGVhbG8gdGFzayAtIGNoZWNrb3V0IGFsZ29yaXRobS4gcGxlYXNlIHNlZSBkb2N4IHJlYWRtZSBpbiBwcm9qZWN0IGZvciBkZXRhaWwgYWJvdXQgdGhpcyBwcm9qZWN0Cg== readmeEtag: '"c247f17b7cdfc398708c6d933592bc9f461dfe97"' readmeLastModified: Wed, 21 Apr 2021 05:41:17 GMT repositoryId: 329116401 description: 'Repository for Idealo task - checkout algorithm ' created: '2021-01-12T21:25:49Z' updated: '2021-04-21T05:41:19Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: aqib1 logo: https://avatars.githubusercontent.com/u/8742169?v=4 repoEtag: '"75795530ef5c756ad586a735918ae6c6ac3a861ec454a64c2d7d0e09c477c955"' repoLastModified: Wed, 21 Apr 2021 05:41:19 GMT foundInMaster: true category: - Server - Server Implementations id: 13120cf7e53c50b361e754e64ed287cc - source: openapi3 tags repository: https://github.com/hbhb-devloper/report-manage v3: true repositoryMetadata: base64Readme: IyByZXBvcnQtbWFuYWdlCgrmiqXooajnrqHnkIYK readmeEtag: '"bbe6ee024ec21bc357c54e6478b6fb152c6e1e01"' readmeLastModified: Sat, 20 Mar 2021 12:05:42 GMT repositoryId: 349712531 description: 财务管理系统-后端服务-报表管理 created: '2021-03-20T12:00:18Z' updated: '2021-03-20T12:24:02Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"30e3285288df2eb3bdcc24e118231600cdbd2cc08ec92d5b06c61f44c9164fe5"' repoLastModified: Sat, 20 Mar 2021 12:24:02 GMT foundInMaster: true category: - Data Validators - Parsers - Server Implementations id: a48d5f60406fb69693abc66e4ff507b5 - source: openapi3 tags repository: https://github.com/hbhb-devloper/flow-center v3: true repositoryMetadata: base64Readme: IyBmbG93LWNlbnRlcgoK5rWB56iL5Lit5b+DCg== readmeEtag: '"6e82b7819a59d2dcde0a68569c2a1fdc10e6dd15"' readmeLastModified: Sat, 20 Mar 2021 11:31:36 GMT repositoryId: 349705846 description: 财务管理系统-后端服务-流程中心 created: '2021-03-20T11:28:28Z' updated: '2021-03-20T12:23:46Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"697eabf250c4cf928b82e8a54859ac5eae4dbb3e4c1ac6160848b29c876c1da9"' repoLastModified: Sat, 20 Mar 2021 12:23:46 GMT foundInMaster: true category: - Documentation - Testing - Server Implementations id: c4fe4bee3d4a9ca8c664e1ccfb9f3c20 - source: openapi3 tags repository: https://github.com/guyplusplus/rfc3339-datetimeformatter v3: true repositoryMetadata: base64Readme: >- IyBSRkMzMzM5IERhdGVUaW1lRm9ybWF0dGVyCgpUaGlzIGlzIGEgdmVyeSBzaW1wbGUgSkFWQSBjb2RlIHRvIHRlc3QgYSBEYXRlVGltZUZvcm1hdHRlciBkZXNpZ25lZCB0byAqKnN0cmlja2x5KiogcGFyc2UgW1JGQzMzMzkgSW50ZXJuZXQgZGF0ZS90aW1lIGZvcm1hdF0oaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42KSwgc3VjaCBhcyBgMTk5Ni0xMi0xOVQxNjozOTo1Ny0wODowMGAuCgpUaGlzIHdvcmtzIHZlcnkgd2VsbCwgd2l0aCB0aGUgb25seSAqKmV4Y2VwdGlvbiBvZiBsZWFwIHNlY29uZCoqIGRhdGUgdGltZS4KCmBgYEpBVkEKRGF0ZVRpbWVGb3JtYXR0ZXIgcmZjMzMzOVBhcnNlciA9IG5ldyBEYXRlVGltZUZvcm1hdHRlckJ1aWxkZXIoKQogICAgICAgIC5wYXJzZUNhc2VJbnNlbnNpdGl2ZSgpCiAgICAgICAgLmFwcGVuZFZhbHVlKENocm9ub0ZpZWxkLllFQVIsIDQpCiAgICAgICAgLmFwcGVuZExpdGVyYWwoJy0nKQogICAgICAgIC5hcHBlbmRWYWx1ZShDaHJvbm9GaWVsZC5NT05USF9PRl9ZRUFSLCAyKQogICAgICAgIC5hcHBlbmRMaXRlcmFsKCctJykKICAgICAgICAuYXBwZW5kVmFsdWUoQ2hyb25vRmllbGQuREFZX09GX01PTlRILCAyKQogICAgICAgIC5hcHBlbmRMaXRlcmFsKCdUJykKICAgICAgICAuYXBwZW5kVmFsdWUoQ2hyb25vRmllbGQuSE9VUl9PRl9EQVksIDIpCiAgICAgICAgLmFwcGVuZExpdGVyYWwoJzonKQogICAgICAgIC5hcHBlbmRWYWx1ZShDaHJvbm9GaWVsZC5NSU5VVEVfT0ZfSE9VUiwgMikKICAgICAgICAuYXBwZW5kTGl0ZXJhbCgnOicpCiAgICAgICAgLmFwcGVuZFZhbHVlKENocm9ub0ZpZWxkLlNFQ09ORF9PRl9NSU5VVEUsIDIpCiAgICAgICAgLm9wdGlvbmFsU3RhcnQoKQogICAgICAgIC5hcHBlbmRGcmFjdGlvbihDaHJvbm9GaWVsZC5OQU5PX09GX1NFQ09ORCwgMiwgOSwgdHJ1ZSkgLy8ybmQgcGFyYW1ldGVyOiAyIGZvciBKUkUgKDgsIDExIExUUyksIDEgZm9yIEpSRSAoMTcgTFRTKQogICAgICAgIC5vcHRpb25hbEVuZCgpCiAgICAgICAgLmFwcGVuZE9mZnNldCgiK0hIOk1NIiwiWiIpCiAgICAgICAgLnRvRm9ybWF0dGVyKCkKICAgICAgICAud2l0aFJlc29sdmVyU3R5bGUoUmVzb2x2ZXJTdHlsZS5TVFJJQ1QpCiAgICAgICAgLndpdGhDaHJvbm9sb2d5KElzb0Nocm9ub2xvZ3kuSU5TVEFOQ0UpOwoKRGF0ZVRpbWVGb3JtYXR0ZXIgcmZjMzMzOUZvcm1hdHRlciA9IERhdGVUaW1lRm9ybWF0dGVyLklTT19PRkZTRVRfREFURV9USU1FOwpgYGA= readmeEtag: '"4e6b0136bfbbab7c688f06f2eef18fa7431c9066"' readmeLastModified: Tue, 17 Aug 2021 13:58:30 GMT repositoryId: 385612575 description: JAVA DataTimeFormatter to strictly parse (and format) RFC3339 timestamps created: '2021-07-13T13:25:08Z' updated: '2021-08-17T13:58:36Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: guyplusplus logo: https://avatars.githubusercontent.com/u/18182742?v=4 license: MIT repoEtag: '"7f884862391b2ee89573ae6e60cbb10b4163098edf967a5be1829d86618c762e"' repoLastModified: Tue, 17 Aug 2021 13:58:36 GMT foundInMaster: true category: Server Implementations id: 3f69fae4e5cc80dba4dd2f67222b4a1f - source: openapi3 tags repository: https://github.com/akiosarkiz/openapi-attributes v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFBIUCBBdHRyaWJ1dGVzCgojIyBGZWF0dXJlcwoKLSBbeF0gR2VuZXJhdGUgaW5mbwotIFt4XSBHZW5lcmF0ZSBzY2hlbWEKLSBbeF0gR2VuZXJhdGUgcGF0aHMKLSBbeF0gR2VuZXJhdGUgc2VjdXJpdHkgc2NoZW1hCi0gW3hdIEdlbmVyYXRlIHNlcnZlcnMKCgpUaGlzIENMSSBUb29sIGlzIGFibGUgdG8gZ2VuZXJhdGUgYW4gT3BlbkFwaSBKU09OIGZpbGUgZGVzY3JpcHRpb24gYWNjb3JkaW5nIHRvIFBIUCBhdHRyaWJ1dGVzIGNvbnRhaW5lZCBpbiB5b3VyIGZpbGVzLgoKCiMjIOKaoO+4jyBNaXNzaW5nIHNvbWV0aGluZyA/Ckp1c3Qgb3BlbiBhbiBpc3N1ZSBzYXlpbmcgd2hhdCdzIG1pc3NpbmcgISBGZWVsIGZyZWUgdG8gb3BlbiBhIFBSIGJ1dCB3ZSByZWNvbW1lbmQgb3BlbmluZyBhbiBpc3N1ZSBiZWZvcmVoYW5kLiAKCgojIyMgRG9jdW1lbnRhdGlvbiBbbGlua10oaHR0cHM6Ly9ha2lvc2Fya2l6LmdpdGh1Yi5pby9vcGVuYXBpLWF0dHJpYnV0ZXMvKQo= readmeEtag: '"9bfb44c9bf4d69db88bfb47dbc6fa79595594022"' readmeLastModified: Wed, 27 Oct 2021 13:32:35 GMT repositoryId: 394191942 description: null created: '2021-08-09T07:22:42Z' updated: '2021-10-27T13:32:43Z' language: PHP archived: false stars: 0 watchers: 2 forks: 0 owner: AkioSarkiz logo: https://avatars.githubusercontent.com/u/42392852?v=4 license: MIT repoEtag: '"4e0e48a952378435f60d0f43cbb813e17eead7e234ed01841341613672657026"' repoLastModified: Wed, 27 Oct 2021 13:32:43 GMT foundInMaster: true category: Parsers id: 2b99b3aec8d7b940c4aa7d20588bfc92 - source: openapi3 tags repository: https://github.com/umatare5/logbook-go v3: true repositoryMetadata: base64Readme: >- IyBsb2dib29rLWdvCgoqKkRPIE5PVCBFRElUIFRISVMgQ09ERSBNQU5VQUxMWSEqKgoKbG9nYm9vay1nbyBpcyBHbyBsaWJyYXJ5IHRvIHVzZSBbTG9nYm9vayBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS91bWF0YXJlNS9sb2dib29rLWFwaSkuCgpUaGUgY29kZSB3YXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgdXNpbmcgW2xvZ2Jvb2stb3BlbmFwaS1zcmNdKGh0dHBzOi8vZ2l0aHViLmNvbS91bWF0YXJlNS9sb2dib29rLW9wZW5hcGktc3JjKS4KCiMjIFVzYWdlCgpgYGBzaApnbyBnZXQgZ2l0aHViLmNvbS91bWF0YXJlNS9sb2dib29rLWdvCmBgYAo= readmeEtag: '"c8808e3b60074f663ef61be2f6fe55fb8ae4ad14"' readmeLastModified: Wed, 26 Jan 2022 17:19:37 GMT repositoryId: 449648100 description: Client library to use my Logbook API created: '2022-01-19T10:36:07Z' updated: '2022-02-15T13:53:30Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: umatare5 logo: https://avatars.githubusercontent.com/u/72645163?v=4 repoEtag: '"6374e38176ba6a16f57c2650e6cf96a9cc683585fb9a06f1670525a472fa5318"' repoLastModified: Tue, 15 Feb 2022 13:53:30 GMT foundInMaster: true category: - SDK - Code Generators id: d1bf1d6b555601d0f01dd1173e521e68 - source: openapi3 tags repository: https://github.com/kekos/prest-doc v3: true id: dbfb1dd556b661e6cd7878109faa7a4d repositoryMetadata: base64Readme: >- IyBQcmVzdC1kb2MKClN0YXRpYyBTaXRlIEdlbmVyYXRvciBmb3IgT3BlbkFQSSBkb2N1bWVudGF0aW9uIHdyaXR0ZW4gaW4gUEhQLgoKIyMgSW5zdGFsbAoKYGBgCmNvbXBvc2VyIGluc3RhbGwga2Vrb3MvcHJlc3QtZG9jCmBgYAoKUmVxdWlyZXMgYXQgbGVhc3QgUEhQIDguMS4KCiMjIFVzYWdlCgpgYGAKLi9iaW4vcHJlc3QtZG9jIDxpbl9kaXJlY3Rvcnk+IDxvdXRfZGlyZWN0b3J5PiA8bGF5b3V0X2ZpbGU+IFs8Y29uZmlnX2ZpbGU+XQpgYGAKCiogYDxpbl9kaXJlY3Rvcnk+YCBwb2ludHMgdG8gYSBkaXJlY3Rvcnkgd2hpY2ggUHJlc3QtZG9jIHNob3VsZCByZWFkIGFuZCBjb252ZXJ0LgoqIGA8b3V0X2RpcmVjdG9yeT5gIHBvaW50cyB0byBhIGRpcmVjdG9yeSB3aGVyZSBjb252ZXJ0ZWQgZmlsZXMgd2lsbCBiZSB3cml0dGVuLiAqKlBsZWFzZSBub3RlIHRoYXQgdGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBkZWxldGVkIGJ5IFByZXN0LWRvYyBvbiBlYWNoIHJ1bioqCiogYDxsYXlvdXRfZmlsZT5gIGlzIGEgZmlsZSBwYXRoIHRvIGxheW91dCBmaWxlLiBTZWUgdGhlIFtgZXhhbXBsZXMvYF0oZXhhbXBsZXMpIGRpcmVjdG9yeS4KKiBgPGNvbmZpZ19maWxlPmAgaXMgYSBmaWxlIHBhdGggdG8gW2NvbmZpZ3VyYXRpb25dKCNjb25maWd1cmF0aW9uKS4gKk9wdGlvbmFsKi4KCiMjIENvbmZpZ3VyYXRpb24KCiMjIyBBUEkgdGVtcGxhdGVzCgpZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IE9wZW5BUEkgTWFya2Rvd24gdGVtcGxhdGVzIGJ5IGNyZWF0aW5nIGEgY29uZmlndXJhdGlvbiBmaWxlCmFuZCBzdXBwbHkgaXQgd2l0aCB5b3VyIG93biBpbnN0YW5jZXMgb2YgdGVtcGxhdGUgaW50ZXJmYWNlczoKCmBgYHBocAo8P3BocAp1c2UgS2Vrb3NcUHJlc3REb2NcQ29uZmlndXJhdGlvbjsKdXNlIEtla29zXFByZXN0RG9jXEFwaVRlbXBsYXRlc1xDb250cmFjdHNcU2NoZW1hVGVtcGxhdGU7CgpyZXR1cm4gbmV3IENvbmZpZ3VyYXRpb24oCiAgICBhcGlfdGVtcGxhdGVzX2NsYXNzX21hcDogWwogICAgICAgIFNjaGVtYVRlbXBsYXRlOjpjbGFzcyA9PiBuZXcgTXlPd25JbXBsZW1lbnRhdGlvbk9mU2NoZW1hVGVtcGxhdGUoKSwKICAgIF0sCik7CmBgYAoKIyMjIFRvcGljcyBtZW51CgpQcmVzdC1kb2MgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBob3cgaXQgc2hvdWxkIGNyZWF0ZSB0aGUgbWFpbiBBUEkgbmF2aWdhdGlvbiwgdGhlICJ0b3BpY3MgbWVudSIuIFR3byBpbXBsZW1lbnRhdGlvbnMKYXJlIGluY2x1ZGVkLCBidXQgeW91IGNhbiBidWlsZCB5b3VyIG93biBieSBpbXBsZW1lbnRpbmcgdGhlIGludGVyZmFjZSBgXEtla29zXFByZXN0RG9jXEFwaUVudGl0aWVzXFRvcGljc1JlcG9zaXRvcnlgLgpVc2UgdGhlIGBDb25maWd1cmF0aW9uYCBjbGFzc8K0IGBhcGlfdGVtcGxhdGVzX2NsYXNzX21hcGAgcHJvcGVydHkgdG8gY29uZmlndXJlIHRoaXMuCgojIyMjIGBUYWdnZWRUb3BpY3NSZXBvc2l0b3J5YCAoZGVmYXVsdCkKCkFsbCBwYXRoIG9wZXJhdGlvbnMgbXVzdCBoYXZlIGEgdGFnIHByZWZpeGVkIHdpdGggYHRvcGljLWAuIFRoYXQgdGFnIHdpbGwgYmUgdXNlZCB0byBncm91cCBvcGVyYXRpb25zIHRvZ2V0aGVyIHVuZGVyIHRoZQpuYW1lIG9mIHRhZywgZXhjbHVkaW5nIGB0b3BpYy1gLgoKIyMjIyBgU2luZ2xlVG9waWNSZXBvc2l0b3J5YAoKQWxsIHBhdGhzIGFyZSBncm91cGVkIHRvIGEgc2luZ2xlIHRvcGljICoiT3BlcmF0aW9ucyIqLgoKIyMgRmVhdHVyZXMKCi0gW3hdIENvbnZlcnRzIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgKEpTT04pIHRvIEhUTUwuCi0gW3hdIEFsbG93cyBmb3Igb3duIEhUTUwgbGF5b3V0IHRlbXBsYXRlLCB3cml0dGVuIGluIFBIUC4KLSBbeF0gQWxsb3dzIGZvciBvd24gQ1NTIGFuZCBKYXZhU2NyaXB0LgotIFsgXSBTb3J0IHBhdGhzICh0b3BpY3MpIGluIGFuIG9yZGVyIGxvZ2ljYWwgZm9yIHlvdSBhbmQgeW91ciBhcHAuCgojIyBCdWdzIGFuZCBpbXByb3ZlbWVudHMKClJlcG9ydCBidWdzIGluIEdpdEh1YiBpc3N1ZXMgb3IgZmVlbCBmcmVlIHRvIG1ha2UgYSBwdWxsIHJlcXVlc3QgOi0pCgojIyBMaWNlbnNlCgpNSVQK readmeEtag: '"06a583722c434a4a7ff6bd98b53578045570b51e"' readmeLastModified: Wed, 03 Apr 2024 20:11:51 GMT repositoryId: 513455651 description: Static Site Generator for OpenAPI documentation created: '2022-07-13T09:17:04Z' updated: '2024-03-30T13:27:56Z' language: PHP archived: false stars: 0 watchers: 1 forks: 0 owner: Kekos logo: https://avatars.githubusercontent.com/u/914782?v=4 license: MIT repoEtag: '"00dca330191d4d2fec4009862cd29dbb845e7e0504891230adef436584dfad7d"' repoLastModified: Sat, 30 Mar 2024 13:27:56 GMT foundInMaster: true category: Parsers - source: openapi3 tags repository: https://github.com/ashaabdulkadir/spring-boot-coding-w13-assignment- v3: true id: 47b8894440a235668bf2abfc0aceec79 repositoryMetadata: base64Readme: >- IyBXZWVrMTMtQ29kaW5nQXNzaWduZW1lbnQKIyBXZWVrMTQtQ29kaW5nQXNzaWdubWVudAojIFdlZWsxNS1Db2RpbmdBc3NpZ25tZW50IAo= readmeEtag: '"173ec82f2a11db5344cb6f49baac2a0977ae8cf0"' readmeLastModified: Thu, 13 Oct 2022 20:00:32 GMT repositoryId: 542371059 description: Spring Boot assignment for week 13 @PromineoTech created: '2022-09-28T02:17:38Z' updated: '2022-10-18T05:00:49Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: AshaAbdulkadir logo: https://avatars.githubusercontent.com/u/108083155?v=4 repoEtag: '"ceedb2d4ef26949741457e9aebf8ac1ad0092f281a0fb9d3c1390bf3389ed064"' repoLastModified: Tue, 18 Oct 2022 05:00:49 GMT category: Server foundInMaster: true oldLocations: - https://github.com/ashaabdulkadir/week13-codingassignement- - source: openapi3 tags repository: https://github.com/pavlopolovyi/rick-and-morty v3: true id: d5a18e661bb41a0a8c0fea831070f0c7 repositoryMetadata: base64Readme: >- IyBSaWNrJk1vcnR5IGNoYXJhY3RlcnMgV2lraQoKPGgyPvCfk6MgUHJvamVjdCBkZXNjcmlwdGlvbiDwn5OjPC9oMj4KVGhpcyBpcyBhIHNpbXBsZSBSRVNUIEFQSSB0aGF0IGV4cG9zZXMgdHdvIGVuZG9pbnRzOiA8Yj4vcmFuZG9tPC9iPiAtIHRvIGdldCBpbmZvIGFib3V0IHJhbmRvbSBSaWNrJk1vcnR5IGNoYXJhY3RlcnMgYW5kIDxiPi9ieS1uYW1lP25hbWVMaWtlPXtxdWVyeX08L2I+IC0gdG8gZmluZCBpbmZvIGFib3V0IGNoYXJhY3RlcnMgd2hvc2UgbmFtZSBpcyBsaWtlIHF1ZXJ5IHBhdHRlcm4uIFRoZSBkYXRhIGlzIGR5bmFtaWNhbGx5IHN5bmNocm9uaXplZCB1c2luZyBhbiBleHRlcm5hbCBBUEkgKGh0dHBzOi8vcmlja2FuZG1vcnR5YXBpLmNvbS8pLiBUaGlzIGFwcGxpY2F0aW9uIGZvbGxvd3MgU09MSUQgcHJpbmNpcGxlcyBhbmQgaXMgYnVpbHQgdXAgdXNpbmcgTi10aWVyIGFyY2hpdGVjdHVyZS4KCjxoMj5GZWF0dXJlczwvaDI+CgoqIER5bmFtaWNhbCBkYXRhIHN5bmNocm9uaXphdGlvbiB1c2luZyBidWlsdCBpbiBTcHJpbmcgQm9vdCBmZWF0dXJlCgoqIFNhdmluZyBkYXRhIHRvIHRoZSBkYXRhYmFzZQoKKiAzLWxheWVyIGFyY2hpdGVjdHVyZTogQ29udHJvbGxlcnMsIFNlcnZpY2VzIGFuZCBSZXBvc2l0b3JpZXMKCiogQWxsIGVuZHBvaW50cyBhcmUgZGVzY3JpYmVkIHVzaW5nIE9wZW5BUEkgc3BlY2lmaWNhdGlvbgoKKiBTZW5kaW5nIHJlcXVlc3RzIHRvIGV4dGVybmFsIEFQSQoKKiBVc2luZyBsYXRlc3Qgc3RhYmxlIEphdmEgdmVyc2lvbiBhbmQgU3ByaW5nIEJvb3QgMwoKKiBQcm9qZWN0IGluY2x1ZGVzIHRlc3RzIGZvciBSZXBvc2l0b3J5LCBTZXJ2aWNlIGFuZCBDb250cm9sbGVyIGxheWVycwoKCjxoMj46YnJpY2tzOlByb2plY3Qgc3RydWN0dXJlOmJyaWNrczo8L2gyPgotIENvbnRyb2xsZXJzIC0gdGFrZSBtYWluIHBhcnQgaW4gcmVxdWVzdC9yZXNwb25zZSBjeWNsZSwgcmVjZWl2ZSBkYXRhIGZyb20gdXNlcnMgYW5kIGludm9rZSBidXNpbmVzcyBsb2dpYyBvZiBzZXJ2aWNlcyAKdG8gcHJvY2VzcyBpdCBhbmQgc3RvcmUgaW4gZGF0YWJhc2UuIFNlbmQgYmFjayBkYXRhIHRvIHVzZXJzLCB3aGVuIHRoZXkgcmVxdWVzdCBpdC48YnI+Ci0gU2VydmljZXMgLSB0aGlzIGxheWVyIGNvb3JkaW5hdGVzIHdvcmsgb2YgYWxsIGFwcGxpY2F0aW9uLCBwcm9jZXNzIGNvbW1hbmRzIGFuZCBwZXJmb3JtcyBkYXRhIHN5bmMuPGJyPgotIFJlcG9zaXRvcmllcyAtIGhlcmUgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGFuZCByZXRyaWV2ZWQuPGJyPgoKIyMgPGgyPlRlY2hub2xvZ2llczwvaDI+CiogSmF2YSAxNwoqIFNwcmluZyBCb290CiogU3ByaW5nIERhdGEgSlBBCiogU3ByaW5nIE1WQwoqIFBvc3RncmVTUUwKKiBIaWJlcm5hdGUKKiBEb2NrZXIKKiBMaXF1aWJhc2UKKiBPcGVuQVBJIDMuMAoqIEpVbml0LCBNb2NraXRvLCBUZXN0Y29udGFpbmVycywgU3ByaW5nIEJvb3QgVGVzdGluZwoqIEZlaWduQ2xpZW50IGZvciBzZW5kaW5nIHJlcXVlc3RzIHRvIGV4dGVybmFsIEFQSQoKCiMjIDxoMj46Ym9tYjpJbnN0cnVjdGlvbnMgZm9yIGxhdW5jaGluZyB0aGUgcHJvamVjdDpib21iOjwvaDI+CjxoND5UbyBydW4gdGhpcyBwcm9qZWN0IGxvY2FsbHksIGZvbGxvdyB0aGVzZSBzdGVwczo8L2g0PgoKMe+4j+KDoyBZb3Ugc2hvdWxkIGluc3RhbGwgPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZ2V0LWRvY2tlci8iPkRvY2tlcjwvYT4gZm9yIGVhc3kgbGF1bmNoaW5nCgoy77iP4oOjICBDbG9uZSB0aGlzIHByb2plY3QgZnJvbSBHaXRIdWIKYGBgYmFzaApodHRwczovL2dpdGh1Yi5jb20vUGF2bG9Qb2xvdnlpL3JpY2stYW5kLW1vcnR5CmBgYAoz77iP4oOjIE5hdmlnYXRlIHRvIHByb2plY3QgZm9sZGVyIGluIHRlcm1pbmFsIGFuZCBydW4gZm9sbG93aW5nIGNvbW1hbmQ6CmBgYGJhc2gKLi9tdm53IGNsZWFuIHBhY2thZ2UgLURza2lwVGVzdHMKYGBgCmlmIGl0IGhhcyBmYWlsZWQsIGluc3RhbGwgTWF2ZW4gYW5kIHJ1biBmb2xsb3dpbmcgY29tbWFuZDoKYGBgYmFzaAptdm4gcGFja2FnZSAtRHNraXBUZXN0cwpgYGAKNO+4j+KDoyBUaGVuIHJ1biBhbmQgd2FpdCB3aGlsZSBpbWFnZXMgYXJlIGJ1aWxkaW5nOgpgYGBiYXNoCmRvY2tlciBjb21wb3NlIGJ1aWxkCmBgYAo177iP4oOjIEFuZCBmaW5hbGx5IHJ1biBhcHBsaWNhdGlvbi4gU3RhcnQgdGFrZXMgYSB3aGlsZSwgYmVjYXVzZSBvZiBpbml0aWFsIGRhdGEgc3luY2hyb25pemF0aW9uOgpgYGBiYXNoCmRvY2tlciBjb21wb3NlIHVwCmBgYAo6c2l4OiBHbyB0byB0aGUgYnJvd3NlciBhbmQgdXNlIHRoZSBmb2xsb3dpbmcgdXJsIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGFuZCBzZWUgT3BlbkFQSSBkb2N1bWVudGF0aW9uLiAKYGBgYmFzaApodHRwOi8vbG9jYWxob3N0OjgwODEvc3dhZ2dlci11aS5odG1sCmBgYAo6c2V2ZW46IElmIHBvcnQgODA4MSBpcyBidXN5IG9uIHlvdXIgbWFjaGluZSwganVzdCBjaGFuZ2UgU1BSSU5HX0xPQ0FMX1BPUlQgdmFsdWUgaW4gdGhlIC5lbnYgZmlsZS4KCg== readmeEtag: '"81af7282148faacadb798d1cf8ecae1d4c8a436d"' readmeLastModified: Mon, 09 Jan 2023 15:30:50 GMT repositoryId: 586850314 description: >- This is a simple REST API that exposes two endoints and provides info about characters from Rick&Morty universe. It uses an external API to synchronize data. created: '2023-01-09T11:32:36Z' updated: '2023-01-09T13:45:22Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: PavloPolovyi logo: https://avatars.githubusercontent.com/u/96145406?v=4 repoEtag: '"93a7243e8a57818941b40106e8e983172a6adede3a01ecb679f10d44a2829b9d"' repoLastModified: Mon, 09 Jan 2023 13:45:22 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/maciek1839/spring-cloud-demo v3: true id: 4db91225301e8a967d0f7ef5ba72cc65 repositoryMetadata: base64Readme: >- IyBTcHJpbmcgQ2xvdWQgZGVtbwoKfCBCcmFuY2ggfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGlwZWxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGUgY292ZXJhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdCByZXBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ByaW5nIFJFU1QgRG9jcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbmFyQ2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cnw6LS0tLS0tOnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTp8Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06fDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06fAp8IG1hc3RlciB8IFshW3BpcGVsaW5lIHN0YXR1c10oaHR0cHM6Ly9naXRsYWIuY29tL1Nob3dNZVlvdXJDb2RlWW91VHViZS9zcHJpbmctY2xvdWQtZGVtby9iYWRnZXMvbWFzdGVyL3BpcGVsaW5lLnN2ZyldKGh0dHBzOi8vZ2l0bGFiLmNvbS9TaG93TWVZb3VyQ29kZVlvdVR1YmUvc3ByaW5nLWNsb3VkLWRlbW8vLS9jb21taXRzL21hc3RlcikgfCBbIVtjb3ZlcmFnZSByZXBvcnRdKGh0dHBzOi8vZ2l0bGFiLmNvbS9TaG93TWVZb3VyQ29kZVlvdVR1YmUvc3ByaW5nLWNsb3VkLWRlbW8vYmFkZ2VzL21hc3Rlci9jb3ZlcmFnZS5zdmcpXShodHRwczovL2dpdGxhYi5jb20vU2hvd01lWW91ckNvZGVZb3VUdWJlL3NwcmluZy1jbG91ZC1kZW1vLy0vY29tbWl0cy9tYXN0ZXIpIHwgW2xpbmtdKGh0dHBzOi8vc2hvd21leW91cmNvZGV5b3V0dWJlLmdpdGxhYi5pby9zcHJpbmctY2xvdWQtZGVtby90ZXN0LXJlcG9ydC9pbmRleC5odG1sKSB8IFtsaW5rXShodHRwczovL3Nob3dtZXlvdXJjb2RleW91dHViZS5naXRsYWIuaW8vc3ByaW5nLWNsb3VkLWRlbW8vcmVzdC1kb2NzL2NsaWVudC1hcGktZG9jcy5odG1sKSB8IFtsaW5rXShodHRwczovL3NvbmFyY2xvdWQuaW8vb3JnYW5pemF0aW9ucy9zaG93bWV5b3VyY29kZXlvdXR1YmUvcHJvamVjdHMpIHwKCgojIyBUZWNobm9sb2d5CgotIEpESyAoQVdTIENvcnJldHRvKQotIFNwcmluZyBCb290IENsb3VkCiAgICAtIE9wZW5GZWlnbgogICAgLSBSaWJib24KICAgIC0gRXVyZWthCi0gU3ByaW5nIFJFU1QgRG9jcwotIFN3YWdnZXIKLSBnUlBDCi0gR3JhcGhRTAotIFdpcmVNb2NrCi0gUmVzdEFzc3VyZWQgJiBIYW1jcmVzdAoKIyMgU2VydmljZXMgc3BlY2lmaWNhdGlvbgoKIVtpbWddKGRvY3MvaGlnaC1sZXZlbC1kZXNpZ24tZGlhZ3JhbS5kcmF3aW8ucG5nKQoKVGhlIGRpYWdyYW0gd2FzIGNyZWF0ZWQgdXNpbmcgW2h0dHBzOi8vYXBwLmRpYWdyYW1zLm5ldC9dKGh0dHBzOi8vYXBwLmRpYWdyYW1zLm5ldC8pLgoKQWxsIHNlcnZpY2VzIHVzZSBPcGVuQXBpMyAoT0FTMykuCgotIGBldXJla2Etc2VydmVyYAogIC0gVGVjaG5vbG9neTogU3ByaW5nIE1WQwogIC0gRGFzaGJvYXJkOiBodHRwOi8vbG9jYWxob3N0Ojg3NjEKICAtIFBvcnQ6IDg3NjEKLSBgc2hvcC1taWNyb3NlcnZpY2VgCiAgLSBUZWNobm9sb2d5OiBTcHJpbmcgTVZDCiAgLSBTd2FnZ2VyIFVJOiBodHRwOi8vbG9jYWxob3N0OjgxMDAvc2hvcC9zd2FnZ2VyLXVpLmh0bWwKICAtIEV1cmVrYSBzZXJ2aWNlIG5hbWU6IHNwcmluZy1jbG91ZC1ldXJla2Etc2hvcAogIC0gUG9ydDogODEwMCAoUkVTVCkKICAtIENvbnRleHQgcGF0aDogL3Nob3AKICAtIE9wZW5GZWlnbiB1c2luZyBwcm92aWRlZC9zdGF0aWMgVVJMcyBvciBob3N0cyBmcm9tIFJpYmJvbi9FdXJla2EgKHdhcmVob3VzZSkKLSBgd2FyZWhvdXNlLW1pY3Jvc2VydmljZWAKICAtIFRlY2hub2xvZ3k6IFNwcmluZyBNVkMKICAtIFN3YWdnZXIgVUk6IGh0dHA6Ly9sb2NhbGhvc3Q6ODIwMC93YXJlaG91c2Uvc3dhZ2dlci11aS5odG1sCiAgLSBFdXJla2Egc2VydmljZSBuYW1lOiBzcHJpbmctY2xvdWQtZXVyZWthLXdhcmVob3VzZQogIC0gUG9ydDogODIwMCAoUkVTVCksIDcwMDAgKGdSUEMpCiAgLSBDb250ZXh0IHBhdGg6IC93YXJlaG91c2UKICAtIEphdmEgQVBJIENsaWVudCBjb25maWd1cmF0aW9uIHVzaW5nIGEgcHJvdmlkZWQvc3RhdGljIFVSTCAoZmFjdG9yeSkKLSBgZmFjdG9yeS1taWNyb3NlcnZpY2VgCiAgLSBUZWNobm9sb2d5OiBTcHJpbmcgV2ViRmx1eAogIC0gU3dhZ2dlciBVSTogaHR0cDovL2xvY2FsaG9zdDo4MzAwL2ZhY3Rvcnkvc3dhZ2dlci11aS5odG1sCiAgLSBTcHJpbmcgUkVTVCBEb2NzOiBmYWN0b3J5LW1pY3Jvc2VydmljZS9zcmMvbWFpbi9hc2NpaWRvYwogIC0gUG9ydDogODMwMAogIC0gQ29udGV4dCBwYXRoOiAvZmFjdG9yeQotIGByZXBvcnRpbmctbWljcm9zZXJ2aWNlYAogIC0gVGVjaG5vbG9neTogU3ByaW5nIE1WQwogIC0gU3dhZ2dlciBVSTogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3JlcG9ydGluZy9zd2FnZ2VyLXVpLmh0bWwKICAtIEV1cmVrYSBzZXJ2aWNlIG5hbWU6IHNwcmluZy1jbG91ZC1ldXJla2EtcmVwb3J0aW5nCiAgLSBHcmFwaFFMCiAgICAtIEdyYXBoaVFMIC0gaHR0cDovL2xvY2FsaG9zdDo4MDAwL3JlcG9ydGluZy9ncmFwaGlxbAogICAgLSBBbHRhaXIgLSBodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVwb3J0aW5nL2FsdGFpcgogICAgLSBQbGF5Z3JvdW5kIC0gaHR0cDovL2xvY2FsaG9zdDo4MDAwL3JlcG9ydGluZy9wbGF5Z3JvdW5kCiAgICAtIFZveWFnZXIgLSBodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVwb3J0aW5nL3ZveWFnZXIKICAgIC0gR3JhcGhRTCBlbmRwb2ludCAobm90IGFjY2Vzc2libGUgd2l0aCBHRVQpIC0gaHR0cDovL2xvY2FsaG9zdDo4MDAwL3JlcG9ydGluZy9ncmFwaHFsCiAgLSBQb3J0OiA4MDAwCiAgLSBDb250ZXh0IHBhdGg6IC9yZXBvcnRpbmcKICAtIFJlc3RUZW1wbGF0ZSB1c2luZyBSaWJib24gd2l0aCBFdXJla2EKLSBgYWRtaW4tZGFzaGJvYXJkYAogIC0gVGVjaG5vbG9neTogU3ByaW5nIE1WQwogIC0gRGFzaGJvYXJkOiBodHRwOi8vbG9jYWxob3N0OjkwMDAvCiAgLSBFdXJla2Egc2VydmljZSBuYW1lOiBzcHJpbmctY2xvdWQtZXVyZWthLWFkbWluCiAgLSBQb3J0OiA5MDAwCgotLS0KCkRlc2lnbiByZW1hcmtzOgotIEluIG9yZGVyIHRvIHNpbXBsaWZ5IHRoaXMgZXhhbXBsZSwgbW9kZWxzIGFyZSByZXVzZWQgYnkgbWljcm9zZXJ2aWNlcy4gSW4gcmVhbCBhcHBsaWNhdGlvbnMgaXQgbWlnaHQgbm90IGJlIGEgZ29vZCBjaG9pY2UuCi0gVGhlIHdhcmVob3VzZSBtaWNyb3NlcnZpY2UgaXMgYSBwcm94eSBmb3J3YXJkaW5nIHJlcXVlc3RzIHRvIHRoZSBmYWN0b3J5IG1pY3Jvc2VydmljZS4KLSBUaGUgc2hvcCBtaWNyb3NlcnZpY2UgaXMgYSBwcm94eSBmb3J3YXJkaW5nIHJlcXVlc3RzIHRvIHRoZSB3YXJlaG91c2UgbWljcm9zZXJ2aWNlLgotIFRoZSBjbGllbnQgbWljcm9zZXJ2aWNlIGNhbGxzIGFyYml0cmFyeSBvdGhlciBzZXJ2aWNlcy4KCiMjIEdldHRpbmcgc3RhcnRlZAoKMS4gKE9wdGlvbmFsKSBFbmFibGUgTG9tYm9rIGFubm90YXRpb25zIGluIHlvdXIgSURFCjIuIChPcHRpb25hbCkgUnVuIGFsbCBzZXJ2ZXJzIHVzaW5nIHByZWRlZmluZWQgY29uZmlndXJhdGlvbnMgZm9yIEludGVsbGlKICgucnVuY29uZmlnKQogICAxLiBJZiB5b3VyIElERSB0aHJvd3MgZXJyb3JzIGJlY2F1c2Ugc29tZSBjbGFzc2VzIHdlcmUgbm90IGZvdW5kLCBtYXJrIGB0YXJnZXQvZ2VuZXJhdGVkLXNvdXJjZXNgIGFzIGBHZW5lcmF0ZWQgU291cmNlcyBSb290YCBpbiB5b3VyIElERS4KMy4gUnVuIHRoZSBFdXJla2Egc2VydmVyCjQuIFJ1biBtaWNyb3NlcnZpY2VzCjUuIFJ1biBhIGNsaWVudCB3aGljaCBjYWxscyBtaWNyb3NlcnZpY2VzIHVzaW5nIEV1cmVrYQoKIVtpbWddKC4vZG9jcy9zcHJpbmctYm9vdC1hZG1pbi5wbmcpCgohW2ltZ10oLi9kb2NzL3NwcmluZy1ib290LWV1cmVrYS5wbmcpCgojIyBUZXN0aW5nIFN0cmF0ZWd5Cgo+IEFjY2VwdGFuY2UgVGVzdGluZyBpcyBkb25lIGFmdGVyIHRoZSBzeXN0ZW0gdGVzdGluZy4gSXQgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBzb2Z0d2FyZSBtZWV0cyB0aGUgY3VzdG9tZXIgcmVxdWlyZW1lbnRzIG9yIG5vdC4gQWNjZXB0YW5jZSB0ZXN0aW5nIGlzIHVzZWQgYnkgdGVzdGVycywgc3Rha2Vob2xkZXJzIGFzIHdlbGwgYXMgY2xpZW50cy4KPgo+IFJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZ2Vla3Nmb3JnZWVrcy5vcmcvZGlmZmVyZW5jZS1iZXR3ZWVuLXN5c3RlbS10ZXN0aW5nLWFuZC1hY2NlcHRhbmNlLXRlc3RpbmcvCgohW2ltZ10oZG9jcy90ZXN0aW5nLXN0cmF0ZWd5LmpwZykKCltSZWZlcmVuY2VdKGh0dHBzOi8vd3d3LmdlZWtzZm9yZ2Vla3Mub3JnL2FjY2VwdGFuY2UtdGVzdGluZy1zb2Z0d2FyZS10ZXN0aW5nLykKClN5c3RlbSBhbmQgYWNjZXB0YW5jZSB0ZXN0cyBhcmUgaW4gdGhlIGB0ZXN0LXV0aWxgIG1vZHVsZS4KUnVuIHRoZW0gd2hlbiBhbGwgbWljcm9zZXJ2aWNlcyBhcmUgdXAuCgpUaGFua3MgdG8gYXV0b21hdGljIHRlc3RzIHlvdSBkb24ndCBuZWVkIHRvIG1hbnVhbGx5IHZlcmlmeSBpcyBzZXJ2aWNlcyBhcmUgZmluZSBhZnRlciBtYWtpbmcgbWFqb3IgY2hhbmdlcy4KCk90aGVyIGdvb2QgYXJ0aWNsZXMgYWJvdXQgdGVzdGluZyBsZXZlbHM6Ci0gaHR0cHM6Ly93d3cuZ3VydTk5LmNvbS9sZXZlbHMtb2YtdGVzdGluZy5odG1sCgojIyBQcmltYXJ5IFByb2plY3RzIG9mIFNwcmluZyBDbG91ZAoKIVtpbWddKGRvY3MvbWljcm9zZXJ2aWNlcy02LnN2ZykKCltSZWZlcmVuY2VdKGh0dHBzOi8vc3ByaW5nLmlvL21pY3Jvc2VydmljZXMpCgoKLSBTcHJpbmcgQ2xvdWQgQ29uZmlnCiAgLSBDZW50cmFsaXplZCBleHRlcm5hbCBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQgYmFja2VkIGJ5IGEgZ2l0IHJlcG9zaXRvcnkuIFRoZSBjb25maWd1cmF0aW9uIHJlc291cmNlcyBtYXAgZGlyZWN0bHkgdG8gU3ByaW5nIEVudmlyb25tZW50IGJ1dCBjb3VsZCBiZSB1c2VkIGJ5IG5vbi1TcHJpbmcgYXBwbGljYXRpb25zIGlmIGRlc2lyZWQuCi0gU3ByaW5nIENsb3VkIE5ldGZsaXgKICAtIEludGVncmF0aW9uIHdpdGggdmFyaW91cyBOZXRmbGl4IE9TUyBjb21wb25lbnRzIChFdXJla2EsIEh5c3RyaXgsIFp1dWwsIEFyY2hhaXVzLCBldGMuKToKICAgIC0gU2VydmljZSBEaXNjb3ZlcnkgKEV1cmVrYSkKICAgIC0gQ2lyY3VpdCBCcmVha2VyIChIeXN0cml4KQogICAgLSBJbnRlbGxpZ2VudCBSb3V0aW5nIChadXVsKQogICAgLSBDbGllbnQgU2lkZSBMb2FkIEJhbGFuY2luZyAoUmliYm9uKQotIFNwcmluZyBDbG91ZCBCdXMKICAtIEFuIGV2ZW50IGJ1cyBmb3IgbGlua2luZyBzZXJ2aWNlcyBhbmQgc2VydmljZSBpbnN0YW5jZXMgdG9nZXRoZXIgd2l0aCBkaXN0cmlidXRlZCBtZXNzYWdpbmcuIFVzZWZ1bCBmb3IgcHJvcGFnYXRpbmcgc3RhdGUgY2hhbmdlcyBhY3Jvc3MgYSBjbHVzdGVyIChlLmcuIGNvbmZpZyBjaGFuZ2UgZXZlbnRzKS4KLSBTcHJpbmcgQ2xvdWQgT3BlbiBTZXJ2aWNlIEJyb2tlcgogIC0gUHJvdmlkZXMgYSBzdGFydGluZyBwb2ludCBmb3IgYnVpbGRpbmcgYSBzZXJ2aWNlIGJyb2tlciB0aGF0IGltcGxlbWVudHMgdGhlIE9wZW4gU2VydmljZSBCcm9rZXIgQVBJLgotIFNwcmluZyBDbG91ZCBDb25zdWwKICAtIFNlcnZpY2UgZGlzY292ZXJ5IGFuZCBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQgd2l0aCBIYXNoaWNvcnAgQ29uc3VsLgotIFNwcmluZyBDbG91ZCBTbGV1dGgKICAtIERpc3RyaWJ1dGVkIHRyYWNpbmcgZm9yIFNwcmluZyBDbG91ZCBhcHBsaWNhdGlvbnMsIGNvbXBhdGlibGUgd2l0aCBaaXBraW4sIEhUcmFjZSBhbmQgbG9nLWJhc2VkIChlLmcuIEVMSykgdHJhY2luZy4KLSBTcHJpbmcgQ2xvdWQgRGF0YSBGbG93CiAgLSBBIGNsb3VkLW5hdGl2ZSBvcmNoZXN0cmF0aW9uIHNlcnZpY2UgZm9yIGNvbXBvc2FibGUgbWljcm9zZXJ2aWNlIGFwcGxpY2F0aW9ucyBvbiBtb2Rlcm4gcnVudGltZXMuIEVhc3ktdG8tdXNlIERTTCwgZHJhZy1hbmQtZHJvcCBHVUksIGFuZCBSRVNULUFQSXMgdG9nZXRoZXIgc2ltcGxpZmllcyB0aGUgb3ZlcmFsbCBvcmNoZXN0cmF0aW9uIG9mIG1pY3Jvc2VydmljZSBiYXNlZCBkYXRhIHBpcGVsaW5lcy4KLSBTcHJpbmcgQ2xvdWQgU3RyZWFtCiAgLSBBIGxpZ2h0d2VpZ2h0IGV2ZW50LWRyaXZlbiBtaWNyb3NlcnZpY2VzIGZyYW1ld29yayB0byBxdWlja2x5IGJ1aWxkIGFwcGxpY2F0aW9ucyB0aGF0IGNhbiBjb25uZWN0IHRvIGV4dGVybmFsIHN5c3RlbXMuIFNpbXBsZSBkZWNsYXJhdGl2ZSBtb2RlbCB0byBzZW5kIGFuZCByZWNlaXZlIG1lc3NhZ2VzIHVzaW5nIEFwYWNoZSBLYWZrYSBvciBSYWJiaXRNUSBiZXR3ZWVuIFNwcmluZyBCb290IGFwcHMuCi0gU3ByaW5nIENsb3VkIFN0cmVhbSBBcHBsaWNhdGlvbnMKICAtIFNwcmluZyBDbG91ZCBTdHJlYW0gQXBwbGljYXRpb25zIGFyZSBvdXQgb2YgdGhlIGJveCBTcHJpbmcgQm9vdCBhcHBsaWNhdGlvbnMgcHJvdmlkaW5nIGludGVncmF0aW9uIHdpdGggZXh0ZXJuYWwgbWlkZGxld2FyZSBzeXN0ZW1zIHN1Y2ggYXMgQXBhY2hlIEthZmthLCBSYWJiaXRNUSBldGMuIHVzaW5nIHRoZSBiaW5kZXIgYWJzdHJhY3Rpb24gaW4gU3ByaW5nIENsb3VkIFN0cmVhbS4KLSBTcHJpbmcgQ2xvdWQgVGFzawogIC0gQSBzaG9ydC1saXZlZCBtaWNyb3NlcnZpY2VzIGZyYW1ld29yayB0byBxdWlja2x5IGJ1aWxkIGFwcGxpY2F0aW9ucyB0aGF0IHBlcmZvcm0gZmluaXRlIGFtb3VudHMgb2YgZGF0YSBwcm9jZXNzaW5nLgogIC0gU2ltcGxlIGRlY2xhcmF0aXZlIGZvciBhZGRpbmcgYm90aCBmdW5jdGlvbmFsIGFuZCBub24tZnVuY3Rpb25hbCBmZWF0dXJlcyB0byBTcHJpbmcgQm9vdCBhcHBzLgotIFNwcmluZyBDbG91ZCBUYXNrIEFwcCBTdGFydGVycwogIC0gU3ByaW5nIENsb3VkIFRhc2sgQXBwIFN0YXJ0ZXJzIGFyZSBTcHJpbmcgQm9vdCBhcHBsaWNhdGlvbnMgdGhhdCBtYXkgYmUgYW55IHByb2Nlc3MgaW5jbHVkaW5nIFNwcmluZyBCYXRjaCBqb2JzIHRoYXQgZG8gbm90IHJ1biBmb3JldmVyLCBhbmQgdGhleSBlbmQvc3RvcCBhZnRlciBhIGZpbml0ZSBwZXJpb2Qgb2YgZGF0YSBwcm9jZXNzaW5nLgotIFNwcmluZyBDbG91ZCBab29rZWVwZXIKICAtIFNlcnZpY2UgZGlzY292ZXJ5IGFuZCBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQgd2l0aCBBcGFjaGUgWm9va2VlcGVyLgotIFNwcmluZyBDbG91ZCBDb250cmFjdAogIC0gU3ByaW5nIENsb3VkIENvbnRyYWN0IGlzIGFuIHVtYnJlbGxhIHByb2plY3QgaG9sZGluZyBzb2x1dGlvbnMgdGhhdCBoZWxwIHVzZXJzIGluIHN1Y2Nlc3NmdWxseSBpbXBsZW1lbnRpbmcgdGhlIENvbnN1bWVyIERyaXZlbiBDb250cmFjdHMgYXBwcm9hY2guCi0gU3ByaW5nIENsb3VkIEdhdGV3YXkKICAtIFNwcmluZyBDbG91ZCBHYXRld2F5IGlzIGFuIGludGVsbGlnZW50IGFuZCBwcm9ncmFtbWFibGUgcm91dGVyIGJhc2VkIG9uIFByb2plY3QgUmVhY3Rvci4KLSBTcHJpbmcgQ2xvdWQgT3BlbkZlaWduCiAgLSBTcHJpbmcgQ2xvdWQgT3BlbkZlaWduIHByb3ZpZGVzIGludGVncmF0aW9ucyBmb3IgU3ByaW5nIEJvb3QgYXBwcyB0aHJvdWdoIGF1dG9jb25maWd1cmF0aW9uIGFuZCBiaW5kaW5nIHRvIHRoZSBTcHJpbmcgRW52aXJvbm1lbnQgYW5kIG90aGVyIFNwcmluZyBwcm9ncmFtbWluZyBtb2RlbCBpZGlvbXMuCi0gU3ByaW5nIENsb3VkIEZ1bmN0aW9uCiAgLSBTcHJpbmcgQ2xvdWQgRnVuY3Rpb24gcHJvbW90ZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIGJ1c2luZXNzIGxvZ2ljIHZpYSBmdW5jdGlvbnMuCgotLS0KCi0gU3ByaW5nIENsb3VkIGRvY3VtZW50YXRpb25zCiAgLSBodHRwczovL3NwcmluZy5pby9wcm9qZWN0cy9zcHJpbmctY2xvdWQKLSBTcHJpbmcgQ2xvdWQgcmVsZWFzZXMKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9zcHJpbmctY2xvdWQvc3ByaW5nLWNsb3VkLXJlbGVhc2Uvd2lraQotIFNwcmluZyBCb290ICYgU3ByaW5nIENsb3VkIHN1cHBvcnRlZCB2ZXJzaW9ucwogIC0gaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZy1jbG91ZC9zcHJpbmctY2xvdWQtcmVsZWFzZS93aWtpL1N1cHBvcnRlZC1WZXJzaW9ucwoKIyMjIFNwcmluZyBDbG91ZCBOZXRmbGl4IGNvbXBvbmVudHMgcmVwbGFjZW1lbnRzCgp8IENVUlJFTlQJICAgICAgICAgICAgICAgICAgICB8IFJFUExBQ0VNRU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IEh5c3RyaXgJICAgICAgICAgICAgICAgICAgICB8IFJlc2lsaWVuY2U0aiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEh5c3RyaXggRGFzaGJvYXJkIC8gVHVyYmluZSB8IAlNaWNyb21ldGVyICsgTW9uaXRvcmluZyBTeXN0ZW0gICAgICAgICAgICAgICAgICAgfAp8IFJpYmJvbiAgICAgICAgICAgICAgICAgICAgICB8IAlTcHJpbmcgQ2xvdWQgTG9hZGJhbGFuY2VyICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFp1dWwgMQkgICAgICAgICAgICAgICAgICAgICB8IFNwcmluZyBDbG91ZCBHYXRld2F5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFyY2hhaXVzIDEJICAgICAgICAgICAgICAgICB8IFNwcmluZyBCb290IGV4dGVybmFsIGNvbmZpZyArIFNwcmluZyBDbG91ZCBDb25maWcgfAoKIyMgU2VydmljZSBEaXNjb3ZlcnkgaW4gTWljcm9zZXJ2aWNlcwoKQSBtaWNyb3NlcnZpY2UgbmVlZHMgdG8ga25vdyB0aGUgbG9jYXRpb24gKElQIGFkZHJlc3MgYW5kIHBvcnQpIG9mIGV2ZXJ5IHNlcnZpY2UgaXQgY29tbXVuaWNhdGVzIHdpdGguCklmIHdlIGRvbuKAmXQgZW1wbG95IGEgU2VydmljZSBEaXNjb3ZlcnkgbWVjaGFuaXNtLCBzZXJ2aWNlIGxvY2F0aW9ucyBiZWNvbWUgY291cGxlZCwKbGVhZGluZyB0byBhIHN5c3RlbSB0aGF04oCZcyBkaWZmaWN1bHQgdG8gbWFpbnRhaW4uCldlIGNvdWxkIHdpcmUgdGhlIGxvY2F0aW9ucyBvciBpbmplY3QgdGhlbSB2aWEgY29uZmlndXJhdGlvbiBpbiBhIHRyYWRpdGlvbmFsIGFwcGxpY2F0aW9uLApidXQgaXQgaXNu4oCZdCByZWNvbW1lbmRlZCBpbiBhIG1vZGVybiBjbG91ZC1iYXNlZCBhcHBsaWNhdGlvbiBvZiB0aGlzIGtpbmQuCgpUaGUgU2VydmljZSBEaXNjb3ZlcnkgbWVjaGFuaXNtIGhlbHBzIHVzIGtub3cgd2hlcmUgZWFjaCBpbnN0YW5jZSBpcyBsb2NhdGVkLgpJbiB0aGlzIHdheSwgYSBTZXJ2aWNlIERpc2NvdmVyeSBjb21wb25lbnQgYWN0cyBhcyBhIHJlZ2lzdHJ5IGluIHdoaWNoIHRoZSBhZGRyZXNzZXMgb2YgYWxsIGluc3RhbmNlcyBhcmUgdHJhY2tlZC4KCiMjIyBIb3cgRG9lcyBTZXJ2aWNlIERpc2NvdmVyeSBXb3Jrcz8KCiFbaW1nXShkb2NzL1NlcnZpY2UtRGlzY292ZXJ5LTEtMS5wbmcpCgpMZXTigJlzIGRlc2NyaWJlIHRoZSBzdGVwcyBpbGx1c3RyYXRlZCBpbiB0aGUgZGlhZ3JhbToKMS4gVGhlIGxvY2F0aW9uIG9mIHRoZSBTZXJ2aWNlIFByb3ZpZGVyIGlzIHNlbnQgdG8gdGhlIFNlcnZpY2UgUmVnaXN0cnkgKGEgZGF0YWJhc2UgY29udGFpbmluZyB0aGUgbG9jYXRpb25zIG9mIGFsbCBhdmFpbGFibGUgc2VydmljZSBpbnN0YW5jZXMpLgoyLiBUaGUgU2VydmljZSBDb25zdW1lciBhc2tzIHRoZSBTZXJ2aWNlIERpc2NvdmVyeSBTZXJ2ZXIgZm9yIHRoZSBsb2NhdGlvbiBvZiB0aGUgU2VydmljZSBQcm92aWRlci4KMy4gVGhlIGxvY2F0aW9uIG9mIHRoZSBTZXJ2aWNlIFByb3ZpZGVyIGlzIHNlYXJjaGVkIGJ5IHRoZSBTZXJ2aWNlIFJlZ2lzdHJ5IGluIGl0cyBpbnRlcm5hbCBkYXRhYmFzZSBhbmQgcmV0dXJuZWQgdG8gdGhlIFNlcnZpY2UgQ29uc3VtZXIuCjQuIFRoZSBTZXJ2aWNlIENvbnN1bWVyIGNhbiBub3cgbWFrZSBkaXJlY3QgcmVxdWVzdHMgdG8gdGhlIFNlcnZpY2UgUHJvdmlkZXIuCgpUaGVyZSBhcmUgdHdvIG1haW4gU2VydmljZSBEaXNjb3ZlcnkgcGF0dGVybnM6IENsaWVudOKAkVNpZGUgRGlzY292ZXJ5IGFuZCBTZXJ2ZXLigJFTaWRlIERpc2NvdmVyeS4KCiMjIyBDbGllbnQtU2lkZSBTZXJ2aWNlIERpc2NvdmVyeQoKIVtpbWddKGRvY3MvbmV0ZmxpeC1ldXJla2Etc2VydmljZS1kaXNjb3ZlcnkucG5nKQoKW1JlZmVyZW5jZV0oaHR0cHM6Ly93d3cuY29kZXByaW1lcnMuY29tL2NsaWVudC1zaWRlLXNlcnZpY2UtZGlzY292ZXJ5LWluLXNwcmluZy1ib290LXdpdGgtbmV0ZmxpeC1ldXJla2EvKQoKV2hlbiB1c2luZyBDbGllbnQtU2lkZSBEaXNjb3ZlcnksIHRoZSBTZXJ2aWNlIENvbnN1bWVyIGlzIHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgbmV0d29yayBsb2NhdGlvbnMgb2YgYXZhaWxhYmxlIHNlcnZpY2UgaW5zdGFuY2VzIGFuZCBsb2FkIGJhbGFuY2luZyByZXF1ZXN0cyBiZXR3ZWVuIHRoZW0uClRoZSBjbGllbnQgcXVlcmllcyB0aGUgU2VydmljZSBSZWdpc3Rlci4KVGhlbiB0aGUgY2xpZW50IHVzZXMgYSBsb2FkLWJhbGFuY2luZyBhbGdvcml0aG0gdG8gY2hvb3NlIG9uZSBvZiB0aGUgYXZhaWxhYmxlIHNlcnZpY2UgaW5zdGFuY2VzIGFuZCBwZXJmb3JtcyBhIHJlcXVlc3QuCgohW2ltZ10oZG9jcy9TZXJ2aWNlLURpc2NvdmVyeS1DbGllbnQtU2lkZS5wbmcpCgpHaXZpbmcgcmVzcG9uc2liaWxpdHkgZm9yIGNsaWVudC1zaWRlIGxvYWQgYmFsYW5jaW5nIGlzIGJvdGggYSBidXJkZW4gYW5kIGFuIGFkdmFudGFnZS4KSXTigJlzIGFuIGFkdmFudGFnZSBiZWNhdXNlIGl0IHNhdmVzIGFuIGV4dHJhIGhvcCB0aGF0IHdlIHdvdWxk4oCZdmUgaGFkIHdpdGggYSBkZWRpY2F0ZWQgbG9hZCBiYWxhbmNlci4KSXTigJlzIGEgZGlzYWR2YW50YWdlIGJlY2F1c2UgdGhlIFNlcnZpY2UgQ29uc3VtZXIgbXVzdCBpbXBsZW1lbnQgdGhlIGxvYWQgYmFsYW5jaW5nIGxvZ2ljLgoKV2UgY2FuIGFsc28gcG9pbnQgb3V0IHRoYXQgdGhlIFNlcnZpY2UgQ29uc3VtZXIgYW5kIHRoZSBTZXJ2aWNlIFJlZ2lzdHJ5IGFyZSBxdWl0ZSBjb3VwbGVkLgpUaGlzIG1lYW5zIHRoYXQgQ2xpZW50LVNpZGUgRGlzY292ZXJ5IGxvZ2ljIG11c3QgYmUgaW1wbGVtZW50ZWQgZm9yIGVhY2ggcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGZyYW1ld29yayB1c2VkIGJ5IHRoZSBTZXJ2aWNlIENvbnN1bWVycy4KCiMjIyBTZXJ2ZXItU2lkZSBTZXJ2aWNlIERpc2NvdmVyeQoKIVtpbWddKGRvY3MvU2VydmljZS1EaXNjb3ZlcnktU2VydmVyLVNpZGUucG5nKQoKVGhlIGFsdGVybmF0ZSBhcHByb2FjaCB0byBTZXJ2aWNlIERpc2NvdmVyeSBpcyB0aGUgU2VydmVyLVNpZGUgRGlzY292ZXJ5IG1vZGVsLAp3aGljaCB1c2VzIGFuIGludGVybWVkaWFyeSB0aGF0IGFjdHMgYXMgYSBMb2FkIEJhbGFuY2VyLgpUaGUgY2xpZW50IG1ha2VzIGEgcmVxdWVzdCB0byBhIHNlcnZpY2UgdmlhIGEgbG9hZCBiYWxhbmNlciB0aGF0IGFjdHMgYXMgYW4gb3JjaGVzdHJhdG9yLgpUaGUgbG9hZCBiYWxhbmNlciBxdWVyaWVzIHRoZSBTZXJ2aWNlIFJlZ2lzdHJ5IGFuZCByb3V0ZXMgZWFjaCByZXF1ZXN0IHRvIGFuIGF2YWlsYWJsZSBzZXJ2aWNlIGluc3RhbmNlLgoKSW4gdGhpcyBhcHByb2FjaCwgYSBkZWRpY2F0ZWQgYWN0b3IsIHRoZSBMb2FkIEJhbGFuY2VyLCBkb2VzIHRoZSBqb2Igb2YgbG9hZCBiYWxhbmNpbmcuClRoaXMgaXMgdGhlIG1haW4gYWR2YW50YWdlIG9mIHRoaXMgYXBwcm9hY2guCkluZGVlZCwgY3JlYXRpbmcgdGhpcyBsZXZlbCBvZiBhYnN0cmFjdGlvbiBtYWtlcyB0aGUgU2VydmljZSBDb25zdW1lciBsaWdodGVyLCBhcyBpdCBkb2VzbuKAmXQgaGF2ZSB0byBkZWFsIHdpdGggdGhlIGxvb2t1cCBwcm9jZWR1cmUuCkFzIGEgbWF0dGVyIG9mIGZhY3QsIHRoZXJl4oCZcyBubyBuZWVkIHRvIGltcGxlbWVudCB0aGUgZGlzY292ZXJ5IGxvZ2ljIHNlcGFyYXRlbHkgZm9yIGVhY2ggbGFuZ3VhZ2UgYW5kIGZyYW1ld29yayB0aGF0IHRoZSBTZXJ2aWNlIENvbnN1bWVyIHVzZXMuCgpPbiB0aGUgb3RoZXIgaGFuZCwgd2UgbXVzdCBzZXQgdXAgYW5kIG1hbmFnZSB0aGUgTG9hZCBCYWxhbmNlciwgdW5sZXNzIGl04oCZcyBhbHJlYWR5IHByb3ZpZGVkIGluIHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50LgoKIyMjIFdoYXQgSXMgU2VydmljZSBSZWdpc3RyeT8KClRoZSBTZXJ2aWNlIFJlZ2lzdGVyIGlzIGEgY3J1Y2lhbCBwYXJ0IG9mIHNlcnZpY2UgaWRlbnRpZmljYXRpb24uCkl04oCZcyBhIGRhdGFiYXNlIGNvbnRhaW5pbmcgdGhlIG5ldHdvcmsgbG9jYXRpb25zIG9mIHNlcnZpY2UgaW5zdGFuY2VzLgpBIFNlcnZpY2UgUmVnaXN0cnkgbXVzdCBiZSBoaWdobHkgYXZhaWxhYmxlIGFuZCB1cC10by1kYXRlLgpDbGllbnRzIGNhbiBjYWNoZSB0aGUgbmV0d29yayBwYXRocyBvYnRhaW5lZCBmcm9tIHRoZSBTZXJ2aWNlIFJlZ2lzdHJ5OyBob3dldmVyLCB0aGlzIGluZm9ybWF0aW9uIGV2ZW50dWFsbHkgYmVjb21lcyBvYnNvbGV0ZSwgYW5kIGNsaWVudHMgd29u4oCZdCByZWFjaCB0aGUgc2VydmljZSBpbnN0YW5jZXMuCkNvbnNlcXVlbnRseSwgYSBTZXJ2aWNlIFJlZ2lzdHJ5IGNvbnNpc3RzIG9mIGEgY2x1c3RlciBvZiBzZXJ2ZXJzIHRoYXQgdXNlIGEgcmVwbGljYXRpb24gcHJvdG9jb2wgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kuCgpTZXJ2aWNlIFJlZ2lzdHJhdGlvbiBvcHRpb25zOgotIFNlbGYtUmVnaXN0cmF0aW9uCi0gVGhpcmQtcGFydHkgUmVnaXN0cmF0aW9uCgojIyMgUmVmZXJlbmNlcwoKLSBodHRwczovL3d3dy5iYWVsZHVuZy5jb20vY3Mvc2VydmljZS1kaXNjb3ZlcnktbWljcm9zZXJ2aWNlcwoKIyMgU3ByaW5nIFJFU1QgRG9jcyB2cyBTcHJpbmdkb2MKClJlZmVyZW5jZTogaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL3NwcmluZy1yZXN0LWRvY3MtdnMtb3BlbmFwaQoKKipTcHJpbmcgUkVTVCBEb2NzKiogaXMgYSBmcmFtZXdvcmsgZGV2ZWxvcGVkIGJ5IHRoZSBTcHJpbmcgY29tbXVuaXR5IGluIG9yZGVyIHRvIGNyZWF0ZSBhY2N1cmF0ZSBkb2N1bWVudGF0aW9uIGZvciBSRVNUZnVsIEFQSXMuIFRoZSBvdXRwdXQgb2YgcnVubmluZyB0aGUgdGVzdHMgaXMgY3JlYXRlZCBhcyBBc2NpaURvYyBmaWxlcyB3aGljaCBjYW4gYmUgcHV0IHRvZ2V0aGVyIHVzaW5nIEFzY2lpZG9jdG9yIHRvIGdlbmVyYXRlIGFuIEhUTUwgcGFnZSBkZXNjcmliaW5nIG91ciBBUElzLgoKKipTcHJpbmdkb2MgT3BlbkFQSSBVSSoqIGNhbiBnZW5lcmF0ZSBVSSB1c2luZyBTd2FnZ2VyIFVJLgoKIyMgU3dhZ2dlciAyIHZzIE9wZW5BcGkzCgohW2ltZ10oZG9jcy9zd2FnZ2VyMi12cy1vcGVuYXBpMy5wbmcpCgoqKk9wZW5BUEkgMyBpcyB0aGUgc3VjY2Vzc29yIG9mIHRoZSB3aWRlbHkgdXNlZCBPcGVuQVBJL1N3YWdnZXIgMi4wIGZvcm1hdCwgZm9yIG1hY2hpbmUtcmVhZGFibGUgQVBJIGRlZmluaXRpb25zLioqCgotIFJlZmVyZW5jZTogaHR0cHM6Ly9kZXYudG8vZnJvbG92ZGV2L29wZW5hcGktc3BlYy1zd2FnZ2VyLXYyLXZzLXYzLTRvN2MKLSBPZmZpY2lhbCBkb2N1bWVudGF0aW9uOiBodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAKCiMjIFNwcmluZyBSRVNUIERvY3MKClNwcmluZyBSRVNUIERvY3MgaGVscHMgeW91IHRvIGRvY3VtZW50IFJFU1RmdWwgc2VydmljZXMuCgpJdCBjb21iaW5lcyBoYW5kLXdyaXR0ZW4gZG9jdW1lbnRhdGlvbiB3cml0dGVuIHdpdGggQXNjaWlkb2N0b3IgYW5kIGF1dG8tZ2VuZXJhdGVkIHNuaXBwZXRzIHByb2R1Y2VkIHdpdGggU3ByaW5nIE1WQyBUZXN0LiBUaGlzIGFwcHJvYWNoIGZyZWVzIHlvdSBmcm9tIHRoZSBsaW1pdGF0aW9ucyBvZiB0aGUgZG9jdW1lbnRhdGlvbiBwcm9kdWNlZCBieSB0b29scyBsaWtlIFN3YWdnZXIuCgpJdCBoZWxwcyB5b3UgdG8gcHJvZHVjZSBkb2N1bWVudGF0aW9uIHRoYXQgaXMgYWNjdXJhdGUsIGNvbmNpc2UsIGFuZCB3ZWxsLXN0cnVjdHVyZWQuIFRoaXMgZG9jdW1lbnRhdGlvbiB0aGVuIGFsbG93cyB5b3VyIHVzZXJzIHRvIGdldCB0aGUgaW5mb3JtYXRpb24gdGhleSBuZWVkIHdpdGggYSBtaW5pbXVtIG9mIGZ1c3MuCgpSZWY6IGh0dHBzOi8vc3ByaW5nLmlvL3Byb2plY3RzL3NwcmluZy1yZXN0ZG9jcyNvdmVydmlldwoKIVtpbWddKGRvY3Mvc3ByaW5ncy1kb2NzLWdlbmVyYXRlZC1hcGktZG9jLnBuZykKCkV4YW1wbGUgaW1wbGVtZW50YXRpb24gLSBbc3ByaW5nLXByb2plY3RzIC8gc3ByaW5nLXJlc3Rkb2NzXShodHRwczovL2dpdGh1Yi5jb20vc3ByaW5nLXByb2plY3RzL3NwcmluZy1yZXN0ZG9jcy9ibG9iLzIuMC54L3NhbXBsZXMvcmVzdC1ub3Rlcy1zcHJpbmctZGF0YS1yZXN0L3NyYy9tYWluL2FzY2lpZG9jL2FwaS1ndWlkZS5hZG9jKQoKIyMgQVBJIGFyY2hpdGVjdHVyZSBzdHlsZXMKCiMjIyBnUlBDCgpSUEMgaXMgYSBnZW5lcmljIHByb3RvY29sIGZvciByZW1vdGUgcHJvY2VkdXJlIGNhbGxzLCB3aGlsZSBnUlBDIGlzIGEgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgUlBDIHRoYXQgdXNlcyB0aGUgSFRUUC8yIHByb3RvY29sIGZvciBjb21tdW5pY2F0aW9uLgpBbHNvLCBSUEMgdXNlcyBhIGJpbmFyeSBlbmNvZGluZyBmb3JtYXQgdG8gdHJhbnNtaXQgZGF0YSwgd2hpbGUgZ1JQQyBzdXBwb3J0cyBzZXZlcmFsIHNlcmlhbGl6YXRpb24gZm9ybWF0cywgaW5jbHVkaW5nIFByb3RvY29sIEJ1ZmZlcnMsIEpTT04sIGFuZCBYTUwuCgpUaGUgZ1JQQyBwcm9ncmFtbWluZyBBUEkgaW4gbW9zdCBsYW5ndWFnZXMgY29tZXMgaW4gYm90aCBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIGZsYXZvcnMuCgohW2ltZ10oZG9jcy9ncnBjXzA0MDEucG5nKQoKIVtncnBjXShkb2NzL2dycGMucG5nKQoKUmVmZXJlbmNlczoKLSBodHRwczovL2dycGMuaW8vZG9jcy93aGF0LWlzLWdycGMvaW50cm9kdWN0aW9uLwotIGh0dHBzOi8vd3d3Lm9yZWlsbHkuY29tL2xpYnJhcnkvdmlldy9ncnBjLXVwLWFuZC85NzgxNDkyMDU4MzI4L2NoMDQuaHRtbAoKLS0tCgpQcm90b2NvbCBidWZmZXJzIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHRoZSBkZWZpbml0aW9uIGxhbmd1YWdlIChjcmVhdGVkIGluIC5wcm90byBmaWxlcyksCnRoZSBjb2RlIHRoYXQgdGhlIHByb3RvIGNvbXBpbGVyIGdlbmVyYXRlcyB0byBpbnRlcmZhY2Ugd2l0aCBkYXRhLCBsYW5ndWFnZS1zcGVjaWZpYyBydW50aW1lIGxpYnJhcmllcywKYW5kIHRoZSBzZXJpYWxpemF0aW9uIGZvcm1hdCBmb3IgZGF0YSB0aGF0IGlzIHdyaXR0ZW4gdG8gYSBmaWxlIChvciBzZW50IGFjcm9zcyBhIG5ldHdvcmsgY29ubmVjdGlvbikuCgpBZHZhbnRhZ2VzIG9mIHVzaW5nIHByb3RvY29sIGJ1ZmZlcnMgaW5jbHVkZToKLSBDb21wYWN0IGRhdGEgc3RvcmFnZQotIEZhc3QgcGFyc2luZwotIEF2YWlsYWJpbGl0eSBpbiBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcwotIE9wdGltaXplZCBmdW5jdGlvbmFsaXR5IHRocm91Z2ggYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgY2xhc3NlcwoKIVtpbWddKGRvY3MvcHJvdG9jb2wtYnVmZmVycy1jb25jZXB0cy5wbmcpCgpSZWY6IGh0dHBzOi8vcHJvdG9idWYuZGV2L292ZXJ2aWV3LwoKIyMjIyBNb3JlIGFib3V0IFJQQwoKUmVtb3RlIFByb2NlZHVyZSBDYWxsIChSUEMpIGlzIGEgcHJvdG9jb2wgdGhhdCBvbmUgcHJvZ3JhbSBjYW4gdXNlIHRvIHJlcXVlc3QgYSBzZXJ2aWNlIGZyb20gYSBwcm9ncmFtIGxvY2F0ZWQgaW4gYW5vdGhlciBjb21wdXRlciBvbiBhIG5ldHdvcmsgd2l0aG91dCBoYXZpbmcgdG8gdW5kZXJzdGFuZCB0aGUgbmV0d29yaydzIGRldGFpbHMuIEEgcHJvY2VkdXJlIGNhbGwgaXMgYWxzbyBzb21ldGltZXMga25vd24gYXMgYSBmdW5jdGlvbiBjYWxsIG9yIGEgc3Vicm91dGluZSBjYWxsLgoKUlBDIHVzZXMgdGhlIGNsaWVudC1zZXJ2ZXIgbW9kZWwuIFRoZSByZXF1ZXN0aW5nIHByb2dyYW0gaXMgYSBjbGllbnQgYW5kIHRoZSBzZXJ2aWNlIHByb3ZpZGluZyBwcm9ncmFtIGlzIHRoZSBzZXJ2ZXIuIExpa2UgYSByZWd1bGFyIG9yIGxvY2FsIHByb2NlZHVyZSBjYWxsLCBhbiBSUEMgaXMgYSBzeW5jaHJvbm91cyBvcGVyYXRpb24gcmVxdWlyaW5nIHRoZSByZXF1ZXN0aW5nIHByb2dyYW0gdG8gYmUgc3VzcGVuZGVkIHVudGlsIHRoZSByZXN1bHRzIG9mIHRoZSByZW1vdGUgcHJvY2VkdXJlIGFyZSByZXR1cm5lZC4gSG93ZXZlciwgdGhlIHVzZSBvZiBsaWdodHdlaWdodCBwcm9jZXNzZXMgb3IgdGhyZWFkcyB0aGF0IHNoYXJlIHRoZSBzYW1lIGFkZHJlc3Mgc3BhY2UgYWxsb3dzIG11bHRpcGxlIFJQQ3MgdG8gYmUgcGVyZm9ybWVkIGNvbmN1cnJlbnRseS4KCldoZW4gcHJvZ3JhbSBzdGF0ZW1lbnRzIHRoYXQgdXNlIFJQQyBmcmFtZXdvcmsgYXJlIGNvbXBpbGVkIGludG8gYW4gZXhlY3V0YWJsZSBwcm9ncmFtLCBhIHN0dWIgaXMgaW5jbHVkZWQgaW4gdGhlIGNvbXBpbGVkIGNvZGUgdGhhdCBhY3RzIGFzIHRoZSByZXByZXNlbnRhdGl2ZSBvZiB0aGUgcmVtb3RlIHByb2NlZHVyZSBjb2RlLiBXaGVuIHRoZSBwcm9ncmFtIGlzIHJ1biBhbmQgdGhlIHByb2NlZHVyZSBjYWxsIGlzIGlzc3VlZCwgdGhlIHN0dWIgcmVjZWl2ZXMgdGhlIHJlcXVlc3QgYW5kIGZvcndhcmRzIGl0IHRvIGEgY2xpZW50IHJ1bnRpbWUgcHJvZ3JhbSBpbiB0aGUgbG9jYWwgY29tcHV0ZXIuCgpSUEMgcHJvdmlkZXMgYm90aCBibG9ja2luZyAoc3luY2hyb25vdXMpIGFuZCBub24tYmxvY2tpbmcgKGFzeW5jaHJvbm91cykgY2FsbHMuCgohW3JwY10oZG9jcy9ycGMuanBnKQoKUmVmOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80OTYyODk0My9ycGMtcmVtb3RlLXByb2NlZHVyZS1jYWxsLXByb2Nlc3MKCiMjIyMgUlBDIHZzIGdSUEMKCkluIGNvbnRyYXN0IHRvIFJFU1QgYW5kIFJQQywgZ1JQQyBvdmVyY29tZXMgaXNzdWVzIHJlbGF0ZWQgdG8gc3BlZWQgYW5kIHdlaWdodCDigJQgYW5kIG9mZmVycyBncmVhdGVyIGVmZmljaWVuY3kgd2hlbiBzZW5kaW5nIG1lc3NhZ2VzIOKAlCBieSB1c2luZyB0aGUgUHJvdG9idWYgKHByb3RvY29sIGJ1ZmZlcnMpIG1lc3NhZ2luZyBmb3JtYXQuIEhlcmUgYXJlIGEgZmV3IGRldGFpbHMgYWJvdXQgUHJvdG9idWY6Ci0gUGxhdGZvcm0gYW5kIGxhbmd1YWdlIGFnbm9zdGljIGxpa2UgSlNPTgogIFNlcmlhbGl6ZXMgYW5kIGRlc2VyaWFsaXplcyBzdHJ1Y3R1cmVkIGRhdGEgdG8gY29tbXVuaWNhdGUgdmlhIGJpbmFyeQotIEFzIGEgaGlnaGx5IGNvbXByZXNzZWQgZm9ybWF0LCBpdCBkb2VzbuKAmXQgYWNoaWV2ZSBKU09O4oCZcyBsZXZlbCBvZiBodW1hbiByZWFkYWJpbGl0eQotIFNwZWVkcyB1cCBkYXRhIHRyYW5zbWlzc2lvbiBieSByZW1vdmluZyBtYW55IHJlc3BvbnNpYmlsaXRpZXMgSlNPTiBtYW5hZ2VzIHNvIGl0IGNhbiBmb2N1cyBzdHJpY3RseSBvbiBzZXJpYWxpemluZyBhbmQgZGVzZXJpYWxpemluZyBkYXRhCi0gRGF0YSB0cmFuc21pc3Npb24gaXMgZmFzdGVyIGJlY2F1c2UgUHJvdG9idWYgcmVkdWNlcyB0aGUgc2l6ZSBvZiBtZXNzYWdlcyBhbmQgc2VydmVzIGFzIGEgbGlnaHR3ZWlnaHQgbWVzc2FnaW5nIGZvcm1hdAoKUmVmOiBodHRwczovL2Jsb2cuZHJlYW1mYWN0b3J5LmNvbS9ncnBjLXZzLXJlc3QtaG93LWRvZXMtZ3JwYy1jb21wYXJlLXdpdGgtdHJhZGl0aW9uYWwtcmVzdC1hcGlzLyM6fjp0ZXh0PUluJTIwY29udHJhc3QlMjB0byUyMFJFU1QlMjBhbmQsYW5kJTIwbGFuZ3VhZ2UlMjBhZ25vc3RpYyUyMGxpa2UlMjBKU09OCgojIyMjIEpTT04tUlBDCgpKU09OLVJQQyB1c2VzIHRoZSBsaWdodHdlaWdodCBKU09OIGZvcm1hdCB0byBlbmNvZGUgZGF0YSwgd2hpbGUgWE1MLVJQQyB1c2VzIHRoZSBtb3JlIHZlcmJvc2UgWE1MIGZvcm1hdC4gVXNpbmcgSlNPTi1SUEMsIGFuIGFwcGxpY2F0aW9uIGNhbiBzZW5kIGEgbWVzc2FnZSB0byBhbm90aGVyIGFwcCByZXF1ZXN0aW5nIHRoYXQgaXQgcGVyZm9ybSBhIGZ1bmN0aW9uLCBzdWNoIGFzIHRoZSBwcm9jZXNzaW5nIG9mIGRhdGEuIFdpdGggSlNPTuKAmXMgc3Ryb25nIGNhcGFiaWxpdGllcyBpbiBkYXRhIGRlc2NyaXB0aW9uLCB0aGlzIHVzdWFsbHkgd29ya3Mgd2VsbC4gSXTigJlzIGFuIG9wZW4sIGdsb2JhbGx5IGlkZW50aWZpZWQgcHJvdG9jb2wuCgpBIEpTT04tUlBDIHJlcXVlc3QgbWVzc2FnZSBjYW4gY29udGFpbiB0aHJlZSBwb3NzaWJsZSBlbGVtZW50czogVGhlIG1ldGhvZCwgd2hpY2ggaXMgYSBzdHJpbmcgdGhhdCBuYW1lcyB0aGUgbWV0aG9kIHRvIGJlIGludm9rZWQ7IHBhcmFtcywgd2hpY2ggYXJlIG9iamVjdHMgb3IgYXJyYXlzIG9mIHZhbHVlcyB0aGF0IGdldCBwYXNzZWQgYWxvbmcgYXMgcGFyYW1ldGVycyB0byB0aGUgZGVzdGluYXRpb24gYXBwOyBhbmQgaWQsIGEgc3RyaW5nIG9yIG51bWJlciB0aGF0IG1hdGNoZXMgdGhlIHJlc3BvbnNlIHdpdGggdGhlIHJlcXVlc3QgdGhhdCBpdCBpcyByZXBseWluZyB0by4KClRoZSBhcHAgdGhhdCByZWNlaXZlcyB0aGUgSlNPTi1SUEMgcmVxdWVzdCBwcm9jZWVkcyB0byBpc3N1ZSBhIHJlc3BvbnNlLiBUaGUgcmVzcG9uc2UgaW5jbHVkZXMgYSByZXN1bHQsIHdoaWNoIGlzIHRoZSBkYXRhIGdlbmVyYXRlZCBieSB0aGUgaW52b2tlZCBtZXRob2QsIGFuZCB0aGUgcmVxdWVzdC9yZXNwb25zZSBJRC4gSXQgbWF5IGFsc28gaW5jbHVkZSBhbiBlcnJvciBpZiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgcmVjZWl2aW5nIGFwcC4KClJlZjogaHR0cHM6Ly9ub25hbWVzZWN1cml0eS5jb20vbGVhcm4td2hhdC1pcy1qc29uLXJwYwoKIyMjIyBnUlBDL1JQQyB2cyBSRVNUCgotIFJFU1QgQVBJIElzIEFuIEFyY2hpdGVjdHVyYWwgU3R5bGUsIFdoaWxlIFJQQyBJcyBBIFByb3RvY29sCi0gUkVTVCBVc2VzIEEgVW5pZm9ybSBJbnRlcmZhY2UsIFdoaWxlIFJQQyBEb2VzIE5vdC4KLSBSRVNUIElzIFN0YXRlbGVzcywgV2hpbGUgUlBDIElzIFN0YXRlZnVsLgoKYGBgClBsYWNpbmcgYW4gT3JkZXI6CgpSUEM6IGh0dHA6Ly9NeVJlc3RhdXJhbnQ6ODA4MC9PcmRlcnMvUGxhY2VPcmRlciAoUE9TVDoge1RhY29zIG9iamVjdH0pClJFU1Q6IGh0dHA6Ly9NeVJlc3RhdXJhbnQ6ODA4MC9PcmRlcnMvT3JkZXI/T3JkZXJOdW1iZXI9YXNkZiAoUE9TVDoge1RhY29zIG9iamVjdH0pCgpSZXRyaWV2aW5nIGFuIE9yZGVyOgoKUlBDOiBodHRwOi8vTXlSZXN0YXVyYW50OjgwODAvT3JkZXJzL0dldE9yZGVyP09yZGVyTnVtYmVyPWFzZGYgKEdFVCkKUkVTVDogaHR0cDovL015UmVzdGF1cmFudDo4MDgwL09yZGVycy9PcmRlcj9PcmRlck51bWJlcj1hc2RmIChHRVQpCgpVcGRhdGluZyBhbiBPcmRlcjoKClJQQzogaHR0cDovL015UmVzdGF1cmFudDo4MDgwL09yZGVycy9VcGRhdGVPcmRlciAoUFVUOiB7UGluZWFwcGxlIFRhY29zIG9iamVjdH0pClJFU1Q6IGh0dHA6Ly9NeVJlc3RhdXJhbnQ6ODA4MC9PcmRlcnMvT3JkZXI/T3JkZXJOdW1iZXI9YXNkZiAoUFVUOiB7UGluZWFwcGxlIFRhY29zIG9iamVjdH0pCmBgYAoKRG9lcyBSRVNUIGNhbiB1c2UgYmluYXJ5IGRhdGEgaW5zdGVhZCBvZiB0ZXh0PwpZZXMgYWJzb2x1dGVseS4gV2hlbiB5b3UgZGlzcGxheSBhIHdlYiBwYWdlLCB5b3VyIGJyb3dzZXIgbWFrZXMgYSBHRVQgcmVxdWVzdCBmb3IgZWFjaCBpbWFnZSBvbiB0aGUgcGFnZSwgYW5kIHJlY2VpdmVzIGJpbmFyeSBkYXRhIGluIHJldHVybi4KClJlZmVyZW5jZXM6Ci0gaHR0cHM6Ly9uYXJhc2ltbWFudGVjaC5jb20vYS1iZXR0ZXItd2F5LXRvLWJ1aWxkLWFwaXMtcmVzdC1hcGktdnMtcnBjLWFuZC1ncnBjLXZzLWdyYXBocWwvCi0gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjY4MzA0MzEvd2ViLXNlcnZpY2UtZGlmZmVyZW5jZXMtYmV0d2Vlbi1yZXN0LWFuZC1ycGMKLSBodHRwczovL2F3cy5hbWF6b24uY29tL2NvbXBhcmUvdGhlLWRpZmZlcmVuY2UtYmV0d2Vlbi1ycGMtYW5kLXJlc3QvCgojIyMgR3JhcGhRTAoKR3JhcGhRTCBpcyBhIHF1ZXJ5IGxhbmd1YWdlIGFuZCBzZXJ2ZXItc2lkZSBydW50aW1lIGZvciBhcHBsaWNhdGlvbiBwcm9ncmFtbWluZyBpbnRlcmZhY2VzIChBUElzKSB0aGF0IHByaW9yaXRpemVzCmdpdmluZyBjbGllbnRzIGV4YWN0bHkgdGhlIGRhdGEgdGhleSByZXF1ZXN0IGFuZCBubyBtb3JlLiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBSRVNULCBHcmFwaFFMIGxldHMgZGV2ZWxvcGVycyBjb25zdHJ1Y3QKcmVxdWVzdHMgdGhhdCBwdWxsIGRhdGEgZnJvbSBtdWx0aXBsZSBkYXRhIHNvdXJjZXMgaW4gYSBzaW5nbGUgQVBJIGNhbGwuCgpSZWZlcmVuY2VzOgotIGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vZW4vdG9waWNzL2FwaS93aGF0LWlzLWdyYXBocWwKLSBodHRwczovL2dyYXBocWwub3JnLwoKIVtHcmFwaHFsXSguL2RvY3MvR3JhcGhRTF9BcmNoaXRlY3R1cmUtMTAyNHg0NjEucG5nKQoKIVtHcmFwaHFsXSguL2RvY3MvcmVzdC12cy1ncmFwaHFsLmpwZykKCi0tLQoKRGV2ZWxvcG1lbnQgcmVtYXJrczoKLSBpdCdzIG5vdCBwb3NzaWJsZSB0byBub3QgcmV0dXJuIGFueXRoaW5nCiAgLSBodHRwczovL2dpdGh1Yi5jb20vYXJkYXRhbi9ncmFwaHFsLXRvb2xzL2lzc3Vlcy8yNzcKICAtIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ0NzM3MDQzL2lzLWl0LXBvc3NpYmxlLXRvLW5vdC1yZXR1cm4tYW55LWRhdGEtd2hlbi11c2luZy1hLWdyYXBocWwtbXV0YXRpb24KLSB5b3UgYWx3YXlzIG5lZWQgdG8gc3BlY2lmeSB3aGljaCBkYXRhIHlvdSB3YW50IGJhY2sgd2hpbGUgZG9pbmcgcXVlcmllcwoKIyMjIyBBbHRhaXIgdnMgR3JhcGhpUUwgdnMgVm95YWdlciB2cyBQbGF5Z3JvdW5kCgpBbGwgbWVudGlvbmVkIGFib3ZlIGNhbiBiZSBwcmltYXJpbHkgY2xhc3NpZmllZCBhcyAiR3JhcGhRTCIgdG9vbHMuCgotIEdyYXBoaVFMIGlzIGFuIGluLWJyb3dzZXIgSURFIGZvciBleHBsb3JpbmcgR3JhcGhRTC4gUmVmOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ncmFwaHFsLXZveWFnZXIKLSBBbHRhaXIgaXMgYSBHcmFwaFFMIEFQSSBjbGllbnQgdG8gZXhwbG9yZSBBUElzLiBBbHRhaXIgcHJvdmlkZXMgYSBnb29kIGFsdGVybmF0aXZlIHRvIHRyYWRpdGlvbmFsIEdyYXBoaVFMIGFuZCBQbGF5Z3JvdW5kLgotIEdyYXBoUUwgVm95YWdlciByZXByZXNlbnRzIGFueSBHcmFwaFFMIEFQSSBhcyBhbiBpbnRlcmFjdGl2ZSB2aXN1YWwuCgpCZWxvdyB0aGVyZSBpcyBhIGRlbW8gZm8gR3JhcGhRTCBWb3lhZ2VyLgohW2RlbW9dKGRvY3MvZGVtby1naWYuZ2lmKQoKIyMjIyBIVFRQIHZzIFdlYlNvY2tldAoKR3JhcGhRTCBpcyBhIHNwZWNpZmljYXRpb24gYW5kIGl0J3MgY29tbW9uIHRvIHNlZSBHcmFwaFFMIG92ZXIgSFRUUCBmb3IgcXVlcmllcyBhbmQgbXV0YXRpb25zLCBob3dldmVyIHdpdGggR3JhcGhRTApzdWJzY3JpcHRpb25zIHdlIG5lZWQgdG8gcmVjZWl2ZSBjb250aW51b3VzIHVwZGF0ZXMgZnJvbSBhbiBBUEkuIFRoYXQncyB3aGVyZSBXZWJTb2NrZXRzIGNvbWUgaW4uCgpXZWJTb2NrZXRzIGFyZSBvZnRlbiB1c2VkIGFzIGEgdHJhbnNwb3J0IHByb3RvY29sIGZvciBHcmFwaFFMIFN1YnNjcmlwdGlvbnMuCgpTdWJzY3JpcHRpb25zIGFyZSB1c2VmdWwgZm9yIG5vdGlmeWluZyB5b3VyIGNsaWVudCBpbiByZWFsIHRpbWUgYWJvdXQgY2hhbmdlcyB0byBiYWNrLWVuZCBkYXRhLCBzdWNoIGFzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBvYmplY3Qgb3IgdXBkYXRlcyB0byBhbiBpbXBvcnRhbnQgZmllbGQuCgpSZWZlcmVuY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzY3NjU5OTM3L3doYXQtYXJlLWRpZmZlcmVuY2VzLWJldHdlZW4tZ3JhcGhxbC1zdWJzY3JpcHRpb24tYW5kLXdlYnNvY2tldC1wcm90b2NvbAo= readmeEtag: '"b2fb69eb4e24580e9adf42de75f72d0d92cd22e7"' readmeLastModified: Sat, 16 Dec 2023 13:58:10 GMT repositoryId: 655553383 description: A simple Spring Cloud demo project - Eureka, Feign, Ribbon ... created: '2023-06-19T06:21:22Z' updated: '2023-09-03T01:27:23Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: maciek1839 logo: https://avatars.githubusercontent.com/u/16246708?v=4 license: MIT repoEtag: '"dfea9dfd0c717e2a02675b6ea262cbcec7595fd25a42c5c459e476833464ab95"' repoLastModified: Sun, 03 Sep 2023 01:27:23 GMT category: Server Implementations foundInMaster: true - name: Apidog source: Tooling repository issues source_description: >- Apidog is an integrated collaboration platform for API documentation, API debugging, API mocking, and API automated testing that combines Postman + Swagger + Mock + JMeter to tackle the data synchronization problem among different systems using a set of systems and a set of data. API debugging, API data mocking, and API automated testing can be directly used without redefining as long as the API documentation is well-defined. link: https://www.apidog.com v3_1: true v3: true v2: true sourceIssueMetadata: issueNumber: 107 author: YukioIkeda createdAt: '2023-12-05T08:08:51Z' updatedAt: '2024-01-26T17:28:47Z' url: https://github.com/OAI/Tooling/issues/107 status: open id: 552adcd550190c0876a18aa706dc2f42 foundInMaster: true - source: https://openapi.tools/ name: APIMatic Developer Experience Portal category: Documentation link: https://www.apimatic.io/developer-experience-portal language: SaaS source_description: >- Customizable developer portals packed with language specific documentation, client libraries, code samples, an API console and much more. v2: true v3: true v3_1: true id: 268b5835cde4b94e2507583308b4720d foundInMaster: true - source: https://openapi.tools/ name: APITree category: Documentation repository: https://github.com/apitree link: https://apitree.com/ language: SaaS source_description: >- HUB for managing and sharing APIs. Converts OpenAPI v2 / v3 files into beautiful API documentation. v2: true v3: true foundInMaster: true id: 8ec6d6f8d9a5447a64cb9059253c7196 - source: https://openapi.tools/ name: Atom/linter-swagger category: Text Editors language: JavaScript repository: https://atom.io/packages/linter-swagger license: MIT source_description: >- This plugin for Atom Linter will lint OpenAPI, both JSON and YAML using swagger-parser node package. v2: true v3: true foundInMaster: true id: 184d87fb65f889fa033f623a7b67df1a - source: https://openapi.tools/ name: Atom/linter-openapi category: Text Editors language: JavaScript repository: https://atom.io/packages/linter-openapi license: MIT source_description: >- This plugin for Atom Linter will lint OpenAPI YAML files using openapi-enforcer node package. v2: false v3: true foundInMaster: true id: 60dd32764dfe435b0eaaa2189ab1bc8c - source: https://openapi.tools/ name: Swagger Inspector category: Learning language: SaaS link: https://swagger.io/tools/swagger-inspector/ source_description: >- Run mock requests in a webapp and Swagger Inspector infers your OpenAPI description. v2: true v3: true foundInMaster: true id: 4fe9bd57d14e8597029d05f3e477dc61 - source: https://openapi.tools/ name: Swagger Inspector category: Testing language: - Self-hosted - SaaS link: https://inspector.swagger.io repository: null source_description: >- Swagger Inspector is a free online tool to quickly execute any API request, validate its responses and generate a corresponding OpenAPI Description. v2: true v3: true foundInMaster: true id: 7cb46761fe06ef24609940d2efe877fc - source: openapi3 tags repository: https://github.com/devjack/example-library-specification v3: true repositoryMetadata: base64Readme: >- IyBFeGFtcGxlIExpYnJhcnkgU3BlY2lmaWNhdGlvbgpUaGlzIHJlcG9zaXRvcnkgZGVmaW5lcyBhIHNpbXBsZSBBUEkgdXNpbmcgW09wZW5BUEkgdjMuMC4xXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMS5tZCkuCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9kZXZqYWNrL2V4YW1wbGUtbGlicmFyeS1zcGVjaWZpY2F0aW9uLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL2RldmphY2svZXhhbXBsZS1saWJyYXJ5LXNwZWNpZmljYXRpb24pCgojIFNldHVwIGFuZCBpbnN0YWxsYXRpb24KClRoZSBBUEkgc3BlYyBpcyBkZWZpbmVkIGluIGBvcGVuYXBpLnltbGAuIEVhY2ggVVJMIGhhcyBpdHMgb3duIGVuZHBvaW50IGluIGBlbmRwb2ludHMvYCBhbmQgSlNPTiByZXF1ZXN0L3Jlc3BvbnNlIHNjaGVtYXMgYXJlIGRlZmluZWQgaW4gYHNjaGVtYXMvYC4gSlNPTiBTY2hlbWEgaXMgdXNlZCB0byBkZWZpbmUgcmVzcG9uc2VzIGFuZCBjYW4gYmUgdXNlZCBmb3IgdmFsaWRhdGlvbi4KCiMjIFNldHVwIGFuZCBydW4gdGhlIGRvY3VtZW50YXRpb24KUnVuIHRoZXNlIGNvbW1hbmRzIHRvIGluc3RhbGwgbnBtIGRlcGVuZGVuY2llcyBhbmQgc2VydmUgdGhlIEFQSSBkb2N1bWVudGF0aW9uIGxvY2FsbHkuCgpgYGBzaApucG0gaW5zdGFsbApucG0gcnVuIHRlc3QKbnBtIHJ1biBzZXJ2ZQpgYGAKClRoZSBBUEkgZG9jdW1lbnRhdGlvbiB3aWxsIGJlIGF2YWlsYWJsZSBhdCBbaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMF0oaHR0cDovL2xvY2FsaG9zdDo1MDAwKS4KClRvIHJlc29sdmUgYW5kIHB1Ymxpc2ggdGhlIEFQSSBzcGVjLCBydW46CgpgYGBzaApucG0gcnVuIHJlc29sdmUKYGBgCgpBIHNpbXBsZSBIVE1MIGRvY3VtZW50IGluY2x1ZGluZyBbUmVEb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWJpbGx5L1JlRG9jKSBpcyBhdmFpbGFibGUgaW4gdGhlIGBwdWJsaWMvYCBkaXJlY3RvcnkuIFRvIGNvcHkgYWNyb3NzIHRoZSBwdWJsaXNoZWQgc3BlYyBhbmQgc2NoZW1hcywgcnVuOgoKYGBgc2gKbnBtIHJ1biBwdWJsaXNoCmBgYAoKWW91IGNhbiB0aGVuIHNlcnZlIGAvcHVibGljYCBmcm9tIGFueSBzdGF0aWMgY29udGVudCBob3N0aW5nIHNlcnZpY2UuIFRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gaXMgaG9zdGVkIG9uIE5ldGxpZnkgYXQgW2V4YW1wbGUtbGlicmFyeS1zcGVjaWZpY2F0aW9uLm5ldGxpZnkuY29tXShodHRwczovL2V4YW1wbGUtbGlicmFyeS1zcGVjaWZpY2F0aW9uLm5ldGxpZnkuY29tKQo= readmeEtag: '"25e85ab53a5680328ba38e6f15c69e46bf9835ed"' readmeLastModified: Sun, 07 Oct 2018 13:20:15 GMT repositoryId: 151935342 description: Using OpenAPI and JSON Schema to build a design-first API created: '2018-10-07T11:41:30Z' updated: '2021-11-30T21:32:02Z' language: HTML archived: false stars: 0 watchers: 1 forks: 0 owner: devjack logo: https://avatars.githubusercontent.com/u/3516066?v=4 repoEtag: '"7949343fc6e301e13dd6e0d18f4199705fbb75db2017bec70657c438eff42ebd"' repoLastModified: Tue, 30 Nov 2021 21:32:02 GMT foundInMaster: true category: Parsers id: ab8fe5700b9eb0a48246ca741696382e - source: openapi3 tags repository: https://github.com/tjbrockmeyer/oas v3: true repositoryMetadata: base64Readme: >- IyBvYXMgLSBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uCgpbIVtHb0RvY10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS90amJyb2NrbWV5ZXIvb2FzP3N0YXR1cy5zdmcpXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL3RqYnJvY2ttZXllci9vYXMpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kuY29tL3RqYnJvY2ttZXllci9vYXMuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5jb20vdGpicm9ja21leWVyL29hcykKWyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3RqYnJvY2ttZXllci9vYXMvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvdGpicm9ja21leWVyL29hcykKCkdvbGFuZyBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uIFZlcnNpb24gMyBzaW1wbGUgQVBJIHNldHVwIHBhY2thZ2UgIApDcmVhdGUganNvbiBlbmRwb2ludCBzcGVjcyBpbmxpbmUgd2l0aCB5b3VyIGNvZGUgaW1wbGVtZW50YXRpb24uICAKVGhpcyBwYWNrYWdlIHNwZWNpZmljYWxseSBzZXJ2ZXMgYW5kIGFjY2VwdHMgdGhlIGBhcHBsaWNhdGlvbi9qc29uYCBjb250ZW50IHR5cGUuCgpVSSBpcyBjcmVhdGVkIHVzaW5nIFtTd2FnZ2VyVUkuXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkKClRoZSBleGFtcGxlIGJlbG93IHdpbGwgY3JlYXRlIGFuIEFQSSBhdCBodHRwOi8vbG9jYWxob3N0OjUwMDAgdGhhdCBoYXMgMSBlbmRwb2ludCwgYEdFVCAvc2VhcmNoYCB1bmRlciAyIGRpZmZlcmVudCB0YWdzLgoKRm9yIEFQSSBkb2N1bWVudGF0aW9uLCB2aWV3IHRoZSBbR29Eb2MgUGFnZS5dKGh0dHBzOi8vZ29kb2Mub3JnL2dpdGh1Yi5jb20vdGpicm9ja21leWVyL29hcykgIAoKIyMgRXhhbXBsZTogCgpTZWUgW3RoaXMgZXhhbXBsZSBwcm9qZWN0Ll0oLi9leGFtcGxlKQ== readmeEtag: '"f9eada5ff28d48e01a49ed722803e87981d517f9"' readmeLastModified: Fri, 24 Apr 2020 17:07:31 GMT repositoryId: 193754327 description: Golang Open API Specification Version 3 simple API setup package created: '2019-06-25T17:34:26Z' updated: '2020-04-24T17:07:42Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: tjbrockmeyer logo: https://avatars.githubusercontent.com/u/18749133?v=4 repoEtag: '"881ffecb835503f29e9160351c297309f5b3e402bdf22544bcba78aa7820bdfb"' repoLastModified: Fri, 24 Apr 2020 17:07:42 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: fcced0a3f2f941997e85e0ba1b6d800a - source: openapi3 tags repository: https://github.com/andres-gr/kc-web v3: true repositoryMetadata: repositoryId: 233687856 description: KC Webapp new boilerplate setup created: '2020-01-13T20:33:41Z' updated: '2020-04-07T01:27:00Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: andres-gr logo: https://avatars.githubusercontent.com/u/26035230?v=4 repoEtag: '"6a00f234cbbf64df7a66fd717b0914987be4b838f20d7853c9a40f82ef778cb0"' repoLastModified: Tue, 07 Apr 2020 01:27:00 GMT foundInMaster: true id: e4b19b83c7127702991be56913c18374 - source: openapi3 tags repository: https://github.com/pschichtel/betterswagger v3: true repositoryMetadata: repositoryId: 272568695 description: A new code generator for OpenAPI 3 specs created: '2020-06-16T00:00:41Z' updated: '2020-11-04T16:40:44Z' language: Scala archived: false stars: 0 watchers: 3 forks: 0 owner: pschichtel logo: https://avatars.githubusercontent.com/u/526104?v=4 repoEtag: '"6567f91d86c1dcad6b4922e49d269bd36355632099ad0ac2d4312501f67e3fcf"' repoLastModified: Wed, 04 Nov 2020 16:40:44 GMT foundInMaster: true id: 3922409f14bb62251229ba475ee4be90 - source: openapi3 tags repository: https://github.com/navjotsrakhra/eventmanagementplatform v3: true id: e52c196c2a8bbc78a26da1a421c09e5e repositoryMetadata: base64Readme: >- IyBFdmVudCBNYW5hZ2VyIEFwcGxpY2F0aW9uCgpUaGlzIGlzIHRoZSBFdmVudCBNYW5hZ2VyIEFwcGxpY2F0aW9uLCBhIEphdmEtYmFzZWQgd2ViIGFwcGxpY2F0aW9uIGRlc2lnbmVkIGZvciBtYW5hZ2luZyBldmVudHMgYW5kIHVzZXIgYWNjb3VudHMuIEl0CnByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIGNyZWF0aW5nIGFuZCB2aWV3aW5nIGV2ZW50IHBvc3RzLCB1c2VyIHJlZ2lzdHJhdGlvbiBhbmQgYXV0aGVudGljYXRpb24sIGFuZCB1c2VyIG1hbmFnZW1lbnQKZm9yIGFkbWluaXN0cmF0b3JzLgoKIyBOb3RlOiBUbyBzZWUgdGhlIGRlbW8gdXNlIHRoZSBmb2xsb3dpbmcgCiAtIHVzZXJuYW1lOiBhZG1pbiwgcGFzc3dvcmQ6IGFkbWluTgogLSBUaGUgQVBJIGVuZHBvaW50cyBjYW4gYmUgZm91bmQgYXQgaHR0cHM6Ly9ldmVudG1hbmFnZW1lbnRwbGF0Zm9ybS5vbnJlbmRlci5jb20vYXBpLWluZm8KCiMjIFRhYmxlIG9mIENvbnRlbnRzCgo8IS0tIFRPQyAtLT4KCiogW0V2ZW50IE1hbmFnZXIgQXBwbGljYXRpb25dKCNldmVudC1tYW5hZ2VyLWFwcGxpY2F0aW9uKQogICAgKiBbRmVhdHVyZXNdKCNmZWF0dXJlcykKICAgICogW0RvY3VtZW50YXRpb25dKCNkb2N1bWVudGF0aW9uKQogICAgKiBbUHJlcmVxdWlzaXRlc10oI3ByZXJlcXVpc2l0ZXMpCiAgICAqIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgICAqIFtVc2FnZV0oI3VzYWdlKQogICAgKiBbTGljZW5zZV0oI2xpY2Vuc2UpCgo8IS0tIFRPQyAtLT4KCiMjIEZlYXR1cmVzCgotIENyZWF0ZSBhbmQgbWFuYWdlIGV2ZW50IHBvc3RzIHdpdGggZGV0YWlscyBzdWNoIGFzIHRpdGxlLCBjb250ZW50LCBsb2NhdGlvbiwgc3RhcnQgZGF0ZSwgYW5kIGVuZCBkYXRlLgotIFVzZXIgcmVnaXN0cmF0aW9uIGFuZCBhdXRoZW50aWNhdGlvbiB3aXRoIHJvbGUtYmFzZWQgYWNjZXNzIGNvbnRyb2wuCi0gVXNlciBtYW5hZ2VtZW50IGZvciBhZG1pbmlzdHJhdG9ycyB0byBtYW5hZ2UgdXNlciByb2xlcy4KLSBTZWN1cmUgcGFzc3dvcmQgaGFzaGluZyB1c2luZyBCQ3J5cHQuCi0gUkVTVGZ1bCBBUEkgZm9yIGV2ZW50IHBvc3RzLgotIEV4Y2VwdGlvbiBoYW5kbGluZyBmb3IgdmFsaWRhdGlvbiBhbmQgZXJyb3IgcmVzcG9uc2VzLgoKIyMgRG9jdW1lbnRhdGlvbgoKaHR0cHM6Ly9uYXZqb3RzcmFraHJhLmdpdGh1Yi5pby9FdmVudE1hbmFnZW1lbnRQbGF0Zm9ybS8KCiMjIFByZXJlcXVpc2l0ZXMKCkJlZm9yZSB5b3UgYmVnaW4sIGVuc3VyZSB5b3UgaGF2ZSBtZXQgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHM6CgotIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChKREspIDIwIG9yIGxhdGVyCi0gUG9zdGdyZVNRTCBkYXRhYmFzZQoKIyMgSW5zdGFsbGF0aW9uCgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeToKCiAgIGBgYHNoCiAgIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vTmF2am90U1Jha2hyYS9FdmVudE1hbmFnZW1lbnRQbGF0Zm9ybS5naXQKCjIuIE5hdmlnYXRlIHRvIHRoZSBwcm9qZWN0IGRpcmVjdG9yeToKICAgYGBgc2gKICAgY2QgRXZlbnRNYW5hZ2VtZW50UGxhdGZvcm0KCjMuIENvbmZpZ3VyZSB5b3VyIGRhdGFiYXNlIHNldHRpbmdzIGluIGBzcmMvbWFpbi9qYXZhL2lvL2dpdGh1Yi9uYXZqb3RzcmFraHJhL2V2ZW50bWFuYWdlci9jb25maWcvRGF0YVNvdXJjZUNvbmZpZ2AKCjQuIEJ1aWxkIHRoZSBwcm9qZWN0IHVzaW5nIE1hdmVuOgogICBgYGBzaAogICAuL212bncgY2xlYW4gaW5zdGFsbAoKIyMgVXNhZ2UKCjEuIFJ1biB0aGUgYXBwbGljYXRpb24uCiAgIGBgYHNoCiAgIG12biBzcHJpbmctYm9vdDpydW4KCjIuIEFjY2VzcyB0aGUgYXBwbGljYXRpb24gYXQgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MCcKMy4gWW91IGNhbiByZWdpc3RlciBhcyBhIG5ldyB1c2VyIG9yIHVzZSB0aGUgcHJvdmlkZWQgYWRtaW5pc3RyYXRvciBhY2NvdW50IHRvIGxvZ2luCgojIyBMaWNlbnNlCgpDb3B5cmlnaHQgKGMpIDIwMjMgTmF2am90IFNpbmdoIFJha2hyYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K readmeEtag: '"a79e926f0009a7e3a622d3d867240619f964625a"' readmeLastModified: Mon, 12 Feb 2024 20:12:47 GMT repositoryId: 677508545 description: >- Event management platform to notify about events along with the event day, time and location created: '2023-08-11T18:53:21Z' updated: '2023-09-20T20:51:52Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: NavjotSRakhra logo: https://avatars.githubusercontent.com/u/45345158?v=4 repoEtag: '"c9ddea0b4254814e3b3cf01540495cd80c4309cdd85ac001ef009d5fad9e1866"' repoLastModified: Wed, 20 Sep 2023 20:51:52 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/bwcash/web-api-spring-boot v3: true id: 35bd99787664a0ddccf56293404d6f37 repositoryMetadata: base64Readme: IiMgV2ViLUFQSS1TcHJpbmctQm9vdCIgCiIjIFdlYi1BUEktU3ByaW5nLUJvb3QiIAo= readmeEtag: '"e9b9311710d3e1ca45bddfc0653d07beea21f40a"' readmeLastModified: Fri, 20 Jan 2023 22:49:58 GMT repositoryId: 578707859 description: STS maven web API project created: '2022-12-15T17:35:23Z' updated: '2022-12-15T18:48:45Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: Bwcash logo: https://avatars.githubusercontent.com/u/112275746?v=4 repoEtag: '"c637ad007303de9bcee7cadc21ceaed7eb7910f427e165387051b79c6627e65a"' repoLastModified: Thu, 15 Dec 2022 18:48:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/hbhb-devloper/invoice-service v3: true repositoryMetadata: base64Readme: IyBpbnZvaWNlLXNlcnZpY2UKCua4oOmBk+WPkeelqAo= readmeEtag: '"57c44a786feed1d61e8117c9bb7c52f14fefef83"' readmeLastModified: Sat, 20 Mar 2021 11:37:36 GMT repositoryId: 349706746 description: 财务管理系统-后端服务-渠道发票 created: '2021-03-20T11:32:48Z' updated: '2021-03-20T12:23:51Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"ab1bd47ca983fe5b058f41fe758b09816c14ee860a308066e42f6155d1e0abff"' repoLastModified: Sat, 20 Mar 2021 12:23:51 GMT foundInMaster: true category: - Documentation - Parsers - Server Implementations id: c952527367c0467b7bc215199209da4b - source: openapi3 tags repository: https://github.com/dm1st/eatsy-api v3: true id: d13f0bc48a2f7a8abc858920b7c72fe6 repositoryMetadata: base64Readme: >- IyBFYXRzeSBBUEkKCkEgc3ByaW5nIGJvb3QgUkVTVCBBUEkgdGhhdCB1c2VyLWZhY2luZyBzZXJ2aWNlcyBjYW4gaW50ZXJmYWNlIHdpdGggZm9yIGZpbmRpbmcsIGNyZWF0aW5nIGFuZCBzaGFyaW5nIHlvdXIgZmF2b3VyaXRlCnJlY2lwZXMuCgpbIVtDaXJjbGVDSSBidWlsZF0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvRE0xc3QvZWF0c3ktYXBpL3RyZWUvZGV2ZWxvcC5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvRE0xc3QvZWF0c3ktYXBpL3RyZWUvZGV2ZWxvcCkKWyFbQ292ZXJhZ2UgU3RhdHVzXShodHRwczovL2NvdmVyYWxscy5pby9yZXBvcy9naXRodWIvRE0xc3QvZWF0c3ktYXBpL2JhZGdlLnN2Zz9icmFuY2g9ZGV2ZWxvcCldKGh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9ETTFzdC9lYXRzeS1hcGk/YnJhbmNoPWRldmVsb3ApClshW0NyZWF0ZSBhbmQgcHVibGlzaCBhIERvY2tlciBpbWFnZV0oaHR0cHM6Ly9naXRodWIuY29tL0RNMXN0L2VhdHN5LWFwaS9hY3Rpb25zL3dvcmtmbG93cy9wdWJsaXNoLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vRE0xc3QvZWF0c3ktYXBpL2FjdGlvbnMvd29ya2Zsb3dzL3B1Ymxpc2gueW1sKQoKKiBBIGxpdmUgZGVtbyB2ZXJzaW9uIG9mIHRoZSBFYXRzeSBBUEkgaXMgZGVwbG95ZWQgYW5kIHRoZSBTd2FnZ2VyIFVJIFNwZWMgZm9yIHRoZSBzZXJ2aWNlIGNhbiBiZQogIGZvdW5kIFtoZXJlXShodHRwczovL2VhdHN5LWFwaS5vbnJlbmRlci5jb20vc3dhZ2dlci11aS9pbmRleC5odG1sIy8pLiBQbGVhc2Ugbm90ZSwgdGhlIGFwcGxpY2F0aW9uIHVzZXMgZnJlZS10aWVyCiAgc2VydmljZXMsIHNvIGl0IHdpbGwgdGFrZSBhIGZldyBtaW51dGVzIGZvciB0aGUgQVBJIHNlcnZpY2UgdG8gc3BpbiB1cC4KKiBUbyB0cnkgb3V0IHRoZSBFYXRzeSBBUEkgdmlhIGEgVUksIHlvdSBjYW4gdXNlIHRoZSBbZWF0c3ktcmVhY3QtdWldKGh0dHBzOi8vZ2l0aHViLmNvbS9ETTFzdC9lYXRzeS1yZWFjdC11aS8pIHdoaWNoIGlzCiAgYSB1c2VyLWZyaWVuZGx5IFJlYWN0IGFwcGxpY2F0aW9uIHRoYXQgYWxsb3dzIHVzZXJzIHRvIGludGVyYWN0IHdpdGggdGhlIEVhdHN5IEFQSS4gQSBsaXZlIGRlbW8gdmVyc2lvbiBpcyBkZXBsb3llZAogIGFuZCBpbnRlZ3JhdGVkIHdpdGggdGhlIEVhdHN5IEFQSSBbaGVyZV0oaHR0cHM6Ly9lYXRzeS5vbnJlbmRlci5jb20pLgoKVG9nZXRoZXIsIHRoZXNlIGNvbXBvbmVudHMgKGFsb25nIHdpdGggYSBQb3N0Z3JlcyBkYXRhYmFzZSkgbWFrZSB1cCB0aGUgZW5kLXRvLWVuZCBFYXRzeSBzb2x1dGlvbiBhbmQgdGhlIGxpdmUgZGVtbwppbnN0YW5jZXMgYXJlIGhvc3RlZCBvbiB0aGUgW1JlbmRlcl0oaHR0cHM6Ly9yZW5kZXIuY29tKSBwbGF0Zm9ybS4KCiMjIEdldHRpbmcgc3RhcnRlZAoKVGhlIGxpdmUgZGVtbyB2ZXJzaW9uIG9mIHRoZSBzZXJ2aWNlIGlzIGRlcGxveWVkIHVzaW5nIHRoZSBkb2NrZXJmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QuIEhvd2V2ZXIsIHlvdSBjYW4gZGVwbG95IHlvdXIKb3duIGluc3RhbmNlIGxvY2FsbHk6CgojIyMgQnVpbGQgYW5kIGRlcGxveSB0aGUgc3ByaW5nIGJvb3Qgc2VydmljZSBsb2NhbGx5CgpUaGUgc2VydmVyIGlzIHJ1biBhcyBhIFtTcHJpbnQgQm9vdF0oaHR0cHM6Ly9zcHJpbmcuaW8vcHJvamVjdHMvc3ByaW5nLWJvb3QpIGFwcGxpY2F0aW9uLiBGb3Igc2ltcGxpY2l0eSByZWFzb25zIGl0CnVzZXMgW1RoZSBHcmFkbGUgV3JhcHBlcl0oaHR0cHM6Ly9kb2NzLmdyYWRsZS5vcmcvY3VycmVudC91c2VyZ3VpZGUvZ3JhZGxlX3dyYXBwZXIuaHRtbCkgKGVsaW1pbmF0aW5nIHRoZSBuZWVkIHRvCmluc3RhbGwgR3JhZGxlIGxvY2FsbHkpLiBUaGlzIGhlbHBzIGVuc3VyZSB2ZXJzaW9uIGNvbnNpc3RlbmN5LCBlYXN5IHNldHVwLCBidWlsZCByZXByb2R1Y2liaWxpdHksIGFuZCBpbXByb3ZlZCBidWlsZApwZXJmb3JtYW5jZS4KCiMjIyMgUHJlLXJlcXVpc2l0ZXMKCiogSkRLICh2ZXJzaW9uIDggb3IgaGlnaGVyKSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQgb24geW91ciBsb2NhbCBtYWNoaW5lIHRvIGJlIGFibGUgdG8gY29tcGxpZSBhbmQgcnVuIHRoZSBKYXZhIGNvZGUuCiogQmVmb3JlIHJ1bm5pbmcgdGhlIHNlcnZpY2UsIHlvdSB3aWxsIG5lZWQgdG8gaGF2ZSBhIFBvc3RncmVzIGluc3RhbmNlIGluc3RhbGxlZCBhbmQgbmVlZCB0byB1cGRhdGUgdGhlIFNwcmluZyBCb290CiAgYGBgYXBwbGljYXRpb24ucHJvcGVydGllc2BgYCBmaWxlIHRvIGNvbmZpZ3VyZSB0aGUgY29ubmVjdGlvbiBkZXRhaWxzIChlLmcuIGhvc3QsIHBvcnQsIHVzZXJuYW1lIGFuZCBwYXNzd29yZCkgdG8KICBhbGlnbiB0byB5b3VyIGRhdGFiYXNlIGluc3RhbmNlIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdpbGwgdXNlIHRvIGNvbm5lY3QgdG8gaXQuIEZvciBleGFtcGxlOgoKYGBgCiMjbG9jYWwgZGV2IFBvc3RncmVTUUwgZGF0YXNvdXJjZSBwcm9wZXJ0aWVzCnNwcmluZy5kYXRhc291cmNlLnVybD1qZGJjOnBvc3RncmVzcWw6Ly9sb2NhbGhvc3Q6NTQzMi9lYXRzeQpzcHJpbmcuZGF0YXNvdXJjZS51c2VybmFtZT08eW91ciBwb3N0Z3JlcyB1c2VybmFtZT4Kc3ByaW5nLmRhdGFzb3VyY2UucGFzc3dvcmQ9PHlvdXIgcG9zdGdyZXMgcGFzc3dvcmQ+CnNwcmluZy5qcGEuc2hvdy1zcWw9dHJ1ZQpgYGAKCmBgYGFwcGxpY2F0aW9uLnByb3BlcnRpZXNgYGAgY2FuIGJlIGZvdW5kIGF0OgoKYGBgPHByb2plY3RSb290PlxlYXRzeUFwcFNlcnZpY2VcZWF0c3lBcHBTZXJ2aWNlLWNvbnRyb2xsZXJcc3JjXG1haW5ccmVzb3VyY2VzXGFwcGxpY2F0aW9uLnByb3BlcnRpZXNgYGAKCiMjIyMgUnVubmluZyB0aGUgc2VydmljZSBjYW4gdGhlbiBiZSBkb25lIGZyb20gYSBiYXNoIHRlcm1pbmFsOgoKYGBgCi4vZ3JhZGxldyBjbGVhbiBidWlsZCBib290cnVuCmBgYAoKT25jZSB0aGUgc2VydmVyIGlzIHJ1bm5pbmcgbmF2aWdhdGUgdG8gaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbCB0byBzZWUgdGhlIFN3YWdnZXIgVUkgU3BlYy4KCiMjIyMgUGxlYXNlIG5vdGU6CgpJZiBpbml0aWF0aW5nIHRocm91Z2ggYW4gSURFIHN1Y2ggYXMgaW50ZWxsaUogKHJhdGhlciB0aGFuIGNvbW1hbmQgbGluZSksIHlvdSB3aWxsIG5lZWQgdG8gZW5zdXJlIHRoZSAiV29ya2luZwpEaXJlY3RvcnkiCmlzIGNvcnJlY3RseSBzZXQgKHRvIHRoZSBzYW1lIGFzIHRoZSBTcHJpbmcgQm9vdCBhcHBsaWNhdGlvbiBydW5uZXIpIG90aGVyd2lzZSB5b3Ugd2lsbCBnZXQgaW5pdGlhbGlzYXRpb24gZXJyb3JzIHdoZW4KdHJ5aW5nIHRvIGxvY2F0ZSBsb2dnaW5nIGNvbmZpZyBhbmQgb3RoZXIgcHJvcGVydGllcy4gVGhlIHdvcmtpbmcgZGlyZWN0b3J5IGluIHlvdXIgSURFIHJ1biBjb25maWd1cmF0aW9uIHNob3VsZCBiZSBzZXQKdG86CgpgYGBDOlw8bG9jYXRpb24gdG8gcmVwb3NpdG9yeSByb290PlxlYXRzeUFwcFNlcnZpY2VcZWF0c3lBcHBTZXJ2aWNlLWNvbnRyb2xsZXJgYGAKCiMjIyMgUG9wdWxhdGluZyB5b3VyIGxvY2FsIGluc3RhbmNlIHdpdGggcmFuZG9tIHJlY2lwZSB0ZXN0IGRhdGEKClJhbmRvbSByZWNpcGUgZ2VuZXJhdGlvbiBjYW4gYmUgdHJpZ2dlcmVkIGV4dGVybmFsbHkgYW5kIHBlcnNpc3RlZCBmb3IgbWFudWFsIHRlc3RpbmcgYW5kIHZlcmlmaWNhdGlvbiBwdXJwb3Nlcy4gV2l0aAp0aGUgc2VydmVyIHJ1bm5pbmcsIG9wZW4gYSBuZXcgYmFzaCB0ZXJtaW5hbCAoYXQgdGhlIHByb2plY3Qgcm9vdCkgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGAKLi9ncmFkbGV3IGdlbmVyYXRlUmFuZG9tUmVjaXBlcwpgYGAKClRoaXMgZXhlY3V0ZXMgYSBjdXN0b20gZ3JhZGxlIHRhc2sgdGhhdCBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9mIHJlY2lwZXMgKGJldHdlZW4gMSBhbmQgMTUpIHdoaWNoIHRoZW4gZ2V0IHBvc3RlZCB0bwp5b3VyIGxvY2FsIGFwcGxpY2F0aW9uJ3MgYGFkZFJlY2lwZWAgZW5kcG9pbnQuIFRoaXMgY2FuIGJlIGV4ZWN1dGVkIGFzIG1hbnkgdGltZXMgYXMgbmVlZGVkIHRvIHJlYWNoIHRoZSBsZXZlbCBvZiB0ZXN0CmRhdGEgcmVxdWlyZWQuCgpJZiB0aGVyZSBpcyBhIG5lZWQgdG8gcmVtb3ZlIGFsbCBkYXRhIGluIHRoZSBkYXRhYmFzZSwgdGhlIGZvbGxvd2luZyBjb21tYW5kcyBjYW4gYmUgdXNlZCB0byBkcm9wIGFsbCB0aGUgdGFibGVzOgoKYGBgCkRST1AgU0NIRU1BIHB1YmxpYyBDQVNDQURFOwpDUkVBVEUgU0NIRU1BIHB1YmxpYzsKYGBgCgpUaGlzIHdvcmtzIGJlY2F1c2UgYWxsIHRoZSB0YWJsZXMgYXJlIGluIGEgc2luZ2xlIHNjaGVtYSBuYW1lZCBwdWJsaWMuIElmIHlvdSBhcmUgdXNpbmcgUG9zdGdyZVNRTCA5LjMgb3IgbGF0ZXIsIHlvdSBtYXkKYWxzbyBuZWVkIHRvIHJlc3RvcmUgdGhlIGRlZmF1bHQgZ3JhbnRzLgoKYGBgCkdSQU5UIEFMTCBPTiBTQ0hFTUEgcHVibGljIFRPIHBvc3RncmVzOwpHUkFOVCBBTEwgT04gU0NIRU1BIHB1YmxpYyBUTyBwdWJsaWM7CmBgYAoKIyMgUHJvamVjdCBTdHJ1Y3R1cmUgYW5kIGNvbmZpZ3VyYXRpb24KClRoaXMgYXBwbGljYXRpb24gdXNlcyBHcmFkbGUgYXMgdGhlIGJ1aWxkIHRvb2wgYW5kIGlzIHN0cnVjdHVyZWQgYXMgR3JhZGxlIHN1Yi1wcm9qZWN0cy4gVGhpcyBoZWxwcyBzZXBhcmF0ZSB0aGUKZGlmZmVyZW50IHJlc3BvbnNpYmlsaXRpZXMgYW5kIGNvbmNlcm5zIG9mIHRoZSBhcHBsaWNhdGlvbiBpbnRvIGRpc3RpbmN0IG1vZHVsZXMuIFRoaXMgY29udHJpYnV0ZXMgdG8ga2VlcGluZyB0aGUKY29kZWJhc2Ugb3JnYW5pemVkIGFuZCBtYWludGFpbmFibGUsIGFuZCBtYWtlcyBpdCBlYXNpZXIgdG8gdGVzdCwgZGVidWcgYW5kIGRlcGxveSB0aGUgYXBwbGljYXRpb24uCgpUaGUgc3RydWN0dXJlIG9mIHRoZSBHcmFkbGUgcHJvamVjdHMgbG9va3MgbGlrZSB0aGlzLCB3aXRoIGVhY2ggc3ViLXByb2plY3QgZm9jdXNzaW5nIG9uIGEgc3BlY2lmaWMgYXNwZWN0IG9mIHRoZQphcHBsaWNhdGlvbjoKCmBgYHNoCmVhdHN5QXBwU2VydmljZSAgICAgICAgICAjIFVtYnJlbGxhIEdyYWRsZSBwcm9qZWN0CnwKfAorLS0gY29udHJvbGxlciAgICAgICAgICAgIyBDb250YWlucyB0aGUgY29udHJvbGxlcnMgb2YgdGhlIGFwcGxpY2F0aW9uLiAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgUmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIEhUVFAgcmVxdWVzdHMgYW5kIAp8ICAgICAgICAgICAgICAgICAgICAgICAgIyByZXR1cm5pbmcgdGhlIGFwcHJvcHJpYXRlIHJlc3BvbnNlLiAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgVGhleSBpbnRlcmFjdCB3aXRoIHRoZSBzZXJ2aWNlcyBvZiB0aGUgYXBwbGljYXRpb24gCnwgICAgICAgICAgICAgICAgICAgICAgICAjIHRvIHJldHJpZXZlIGRhdGEuCnwKfAorLS0gZG9tYWluICAgICAgICAgICAgICAgIyBDb250YWlucyB0aGUgZG9tYWluIG9iamVjdHMgb2YgdGhlIGFwcGxpY2F0aW9uLiAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgVGhlc2UgcmVwcmVzZW50IHRoZSBlbnRpdGllcyBhbmQgZGF0YSB0aGF0IHRoZSAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgYXBwbGljYXRpb24gbWFuaXB1bGF0ZXMuIAp8ICAgICAgICAgICAgICAgICAgICAgICAgIyBTb21lIGJ1c2luZXNzIGxvZ2ljIGlzIGFsc28gY29udGFpbmVkIGhlcmUuCnwKfAp8CistLSBtb2RlbCAgICAgICAgICAgICAgICAjIENvbnRhaW5zIHRoZSBkYXRhIHRyYW5zZmVyIG9iamVjdHMgKERUT3MpIG9mIHRoZSBhcHBsaWNhdGlvbi4gCnwgICAgICAgICAgICAgICAgICAgICAgICAjIEluIHRoaXMgY2FzZSwgdGhleSBhcmUgdXNlZCB0byBtYXAgdGhlIGRvbWFpbiBvYmplY3RzIAp8ICAgICAgICAgICAgICAgICAgICAgICAgIyB0byBhIHJlcHJlc2VudGF0aW9uIHRoYXQgY2FuIGJlIHNlbnQgdmlhIEhUVFAgcmVxdWVzdHMvcmVzcG9uc2VzCnwgICAgICAgICAgICAgICAgICAgICAgICAjIHRvIG90aGVyIGluZGVwZW5kZW50IGNvbXBvbmVudHMgdGhhdCBpbnRlcmFjdCB3aXRoIHRoaXMgQVBJLgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp8CnwKKy0tIG1vZGVsLW1hcHBlcnMgICAgICAgICMgQ29udGFpbnMgdGhlIG1hcHBlcnMgb2YgdGhlIGFwcGxpY2F0aW9uLiAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgVGhlIE1hcHBlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYXBwaW5nIGJldHdlZW4gdGhlIERUT3MsIAp8ICAgICAgICAgICAgICAgICAgICAgICAgIyBEb21haW4gb2JqZWN0cyBhbmQgRW50aXR5IG9iamVjdHMgKHRoYXQgZ2V0IHBlcnNpc3RlZCB0byAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIGRhdGFiYXNlKSBhbmQgdGhleSBwcm92aWRlIGEgd2F5IHRvIGNvbnZlcnQgYmV0d2Vlbgp8ICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGVzZSByZXByZXNlbnRhdGlvbnMgYXMgbmVlZGVkLgp8CnwKKy0tIHBlcnNpc3RlbmNlICAgICAgICAgICMgQ29udGFpbnMgdGhlIHBlcnNpc3RlbmNlIGxheWVyIG9mIHRoZSBhcHBsaWNhdGlvbi4gCnwgICAgICAgICAgICAgICAgICAgICAgICAjIFJlc3BvbnNpYmxlIGZvciBzdG9yaW5nIGFuZCByZXRyaWV2aW5nIGRhdGEgKHZpYSB0aGUgRW50aXR5IAp8ICAgICAgICAgICAgICAgICAgICAgICAgICMgb2JqZWN0cyksIGFuZCBpbnRlcmFjdGluZyB3aXRoIHRoZSBwb3N0Z3JlcyBkYXRhYmFzZS4KfAp8CnwKfAorLS0gc2VydmljZSAgICAgICAgICAgICAgIyBDb250YWlucyB0aGUgc2VydmljZXMgb2YgdGhlIGFwcGxpY2F0aW9uLiAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgVGhlc2UgYXJlIHJlc3BvbnNpYmxlIGZvciBpbXBsZW1lbnRpbmcgdGhlIGJ1c2luZXNzIGxvZ2ljIAp8ICAgICAgICAgICAgICAgICAgICAgICAgIyBvZiB0aGUgYXBwbGljYXRpb24uCnwKfAp8CnwKKy0tIHRlc3QtZGF0YS1nZW5lcmF0aW9uICMgR2VuZXJhdGVzIHJhbmRvbSB0ZXN0IGRhdGEgdGhhdCBpcyB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIAp8ICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBhbGwgdGhlIGFib3ZlIHN1Yi1wcm9qZWN0cy4gVGhpcyBzdWIgcHJvamVjdCBoZWxwcyAgCnwgICAgICAgICAgICAgICAgICAgICAgICAjIGltcHJvdmUgdGhlIHJlbGlhYmlsaXR5IG9mIHRoZSB1bml0IHRlc3RzLiAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgQnkgZ2VuZXJhdGluZyByYW5kb20gdGVzdCBkYXRhLCB0aGUgdGVzdHMgd2lsbCB0ZXN0IGVkZ2UgY2FzZXMgdGhhdCAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgbWF5IG5vdCBoYXZlIGJlZW4gY29uc2lkZXJlZCB3aXRoIGhhcmQtY29kZWQgdGVzdCBkYXRhLiAKfCAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBoZWxwcyBjYXRjaCB1bmV4cGVjdGVkIGJlaGF2aW9yIGFuZCBlbnN1cmVzIHRoYXQgCnwgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBjb2RlIHdvcmtzIGFzIGludGVuZGVkLgpgYGAKCi0gRWFjaCBzdWItcHJvamVjdCBoYXMgaXRzIG93biBidWlsZCBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcyAoaW4gdGhlIHJlc3BlY3RpdmUgYGBgYnVpbGQuZ3JhZGxlYGBgIGZpbGVzKSBhbmQgdGVzdHMKICBjYXNlcy4KLSBDaGFuZ2VzIGluIG9uZSBzdWItcHJvamVjdCB3b24ndCBhZmZlY3QgdGhlIG90aGVycy4KLSBJbXByb3ZlZCBidWlsZCBwZXJmb3JtYW5jZTogVGhpcyBHcmFkbGUgc3ViLXByb2plY3RzIHN0cnVjdHVyZSBhbGxvd3MgZm9yIGJ1aWxkaW5nIG9ubHkgdGhlIHBhcnRzIG9mIHRoZSBhcHBsaWNhdGlvbgogIHRoYXQgaGF2ZSBjaGFuZ2VkLiBUaGlzIGNhbiByZXN1bHQgaW4gZmFzdGVyIGJ1aWxkIHRpbWVzLgotIEJldHRlciBtb2R1bGFyaXR5OiBUaGlzIEdyYWRsZSBzdWItcHJvamVjdHMgc3RydWN0dXJlIGFsbG93cyB5b3UgdG8gZGV2ZWxvcCBhbmQgZGVwbG95IHlvdXIgYXBwbGljYXRpb24gYXMgbW9kdWxhcgogIGNvbXBvbmVudHMsIHdoaWNoIG1ha2VzIGl0IGVhc2llciB0byByZXVzZSBjb2RlIGFjcm9zcyBkaWZmZXJlbnQgcHJvamVjdHMgYW5kIGNyZWF0ZSBzbWFsbGVyLCBtb3JlIGZvY3VzZWQgYXJ0aWZhY3RzLgoKIyMjIExvZ2dpbmcKClRoaXMgcHJvamVjdCB1c2VzIGxvZzRKMiB3aXRoIHRoZSBsb2dnaW5nIGNvbmZpZyAoYGBgYXBwbGljYXRpb24ucHJvcGVydGllc2BgYCBhbmQgYGBgbG9nNGoyLnByb3BlcnRpZXNgYGApIGxvY2F0ZWQgaW46CgpgYGBlYXRzeUFwcFNlcnZpY2VcZWF0c3lBcHBTZXJ2aWNlLWNvbnRyb2xsZXJcc3JjXG1haW5ccmVzb3VyY2VzYGBgCgpMb2dzIGZvciBhbGwgR3JhZGxlIHN1Yi1wcm9qZWN0cyB3cml0ZSB0byBgYGBsb2dmaWxlLmxvZ2BgYCBsb2NhdGVkIGluIHRoZSBgYGBlYXRzeUFwcFNlcnZpY2UtY29udHJvbGxlcmBgYCAgcHJvamVjdDoKCmBgYFxlYXRzeUFwcFNlcnZpY2VcZWF0c3lBcHBTZXJ2aWNlLWNvbnRyb2xsZXJcbG9nc2BgYAoKTG9nZ2luZyBsZXZlbHMgZm9yIHRoZSBsb2dmaWxlIGNhbiBiZSBjaGFuZ2VkIGluIGxvZzRqMi5wcm9wZXJ0aWVzIGZpbGUuCgojIyMgVGVzdGluZwoKVGhpcyBwcm9qZWN0IHVzZXMgW0pVbml0IDVdKGh0dHBzOi8vanVuaXQub3JnL2p1bml0NS8pIGFzIHRoZSB1bml0IHRlc3QgZnJhbWV3b3JrLiBJbiBhZGRpdGlvbiwgdGhlIGJlbG93IGxpYnJhcmllcyBhbmQKZnJhbWV3b3JrcyBhcmUgYWxzbyB1c2VkIGZvciB0ZXN0aW5nOgoKIyMjIyBGYWtlcgoKW0Zha2VyXShodHRwczovL2dpdGh1Yi5jb20vRGlVUy9qYXZhLWZha2VyKSBoYXMgYmVlbiB1c2VkIGZvciBnZW5lcmF0aW5nIHJhbmRvbSwgbG9jYWxpc2VkIHRlc3QgZGF0YSBpbiBhIHZhcmlldHkgb2YKZm9ybWF0cy4gVGhlIGRhdGEgZ2VuZXJhdGVkIGlzIHVzZWQgaW4gdW5pdCB0ZXN0cyB0byB2YWxpZGF0ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGFwcGxpY2F0aW9uLiBCeSBnZW5lcmF0aW5nIHJhbmRvbSB0ZXN0CmRhdGEsIHRoZSB0ZXN0cyB3aWxsIHRlc3QgZWRnZSBjYXNlcyB0aGF0IG1heSBub3QgaGF2ZSBiZWVuIGNvbnNpZGVyZWQgd2l0aCBoYXJkLWNvZGVkIHRlc3QgZGF0YS4gVGhpcyBoZWxwcyBjYXRjaAp1bmV4cGVjdGVkIGJlaGF2aW9yIGFuZCBlbnN1cmVzIHRoYXQgdGhlIGNvZGUgd29ya3MgYXMgaW50ZW5kZWQuCgpBcyBtZW50aW9uZWQgaW4gdGhlIGdldHRpbmcgc3RhcnRlZCBzZWN0aW9uLCByYW5kb20gcmVjaXBlIGdlbmVyYXRpb24gY2FuIGFsc28gYmUgdHJpZ2dlcmVkIGV4dGVybmFsbHkgYW5kIHBlcnNpc3RlZCBmb3IKbWFudWFsIHRlc3RpbmcgYW5kIHZlcmlmaWNhdGlvbiBwdXJwb3Nlcy4KCldpdGggdGhlIHNlcnZlciBydW5uaW5nLCBvcGVuIGEgbmV3IGJhc2ggdGVybWluYWwgKGF0IHRoZSBwcm9qZWN0IHJvb3QpIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgCi4vZ3JhZGxldyBnZW5lcmF0ZVJhbmRvbVJlY2lwZXMKYGBgCgpUaGlzIGV4ZWN1dGVzIGEgY3VzdG9tIGdyYWRsZSB0YXNrIHRoYXQgZ2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBvZiByZWNpcGVzIChiZXR3ZWVuIDEgYW5kIDE1KSB3aGljaCB0aGVuIGdldCBwb3N0ZWQgdG8KeW91ciBsb2NhbCBhcHBsaWNhdGlvbidzIGBhZGRSZWNpcGVgIGVuZHBvaW50LiBUaGlzIGNhbiBiZSBleGVjdXRlZCBhcyBtYW55IHRpbWVzIGFzIG5lZWRlZCB0byByZWFjaCB0aGUgbGV2ZWwgb2YgdGVzdApkYXRhIHJlcXVpcmVkCgojIyMjIE1vY2tpdG8KCltNb2NraXRvXShodHRwczovL3NpdGUubW9ja2l0by5vcmcvKSBpcyBhIG1vY2tpbmcgZnJhbWV3b3JrIGZvciBKYXZhIHRoYXQgaGFzIGJlZW4gdXNlZCBpbiB0aGUgdW5pdCB0ZXN0cyB0byBpc29sYXRlIHRoZQpjb2RlIGJlaW5nIHRlc3RlZCBmcm9tIGl0cyBkZXBlbmRlbmNpZXMuIEJ5IHVzaW5nIG1vY2sgb2JqZWN0cyBpbiB0aGUgdW5pdCB0ZXN0cywgdGhlIHByb2plY3QgYXZvaWRzIGhhdmluZyB0byBzZXQgdXAgYQpmdWxsIHRlc3QgZW52aXJvbm1lbnQsIHdoaWNoIHNwZWVkcyB1cCB0ZXN0IGV4ZWN1dGlvbiBhbmQgbWFrZXMgdGhlIHRlc3RzIG1vcmUgZm9jdXNzZWQgb24gdGhlIHVuaXQgb2YgY29kZSB1bmRlciB0ZXN0LgoKIyMjIyBDb3ZlcmFsbHMKCltDb3ZlcmFsbHNdKGh0dHBzOi8vY292ZXJhbGxzLmlvLykgaXMgYSB3ZWItYmFzZWQgc2VydmljZSB0aGF0IHByb3ZpZGVzIHRoaXMgcHJvamVjdCB3aXRoIHRlc3QgY292ZXJhZ2UgYW5hbHlzaXMgKGFzCmlsbHVzdHJhdGVkIGluIHRoZSBjb3ZlcmFnZSBiYWRnZSBhdCB0aGUgdG9wIG9mIHRoaXMgcmVhZG1lKS4gVGhpcyBhbGxvd3MgZm9yIGNvZGViYXNlIHRlc3QgY292ZXJhZ2UgdG8gYmUgYW5hbHlzZWQgYW5kCmlkZW50aWZ5IGFyZWFzIHdoZXJlIG1vcmUgdGVzdHMgYXJlIG5lZWRlZC4gVGhpcyBoYXMgYmVlbiB1c2VkIHRvIGhlbHAgZW5zdXJlIHRoYXQgdGhlIGNvZGUgaXMgdGhvcm91Z2hseSB0ZXN0ZWQgYW5kIHRvCnJlZHVjZSB0aGUgcmlzayBvZiBidWdzIGluIHByb2R1Y3Rpb24uCgpUaGUgY292ZXJhbGxzIHRhc2sgY2FuIGJlIGV4ZWN1dGVkIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSBwcm9qZWN0IHJvb3Q6CgpgYGAgLi9ncmFkbGV3IGNvdmVyYWxscyBgYGAKClRoZSBodG1sIHJlcG9ydCBjYW4gYmUgZm91bmQgYXQgYGBgcHJvamVjdCByb290ID4gYnVpbGQgPiByZXBvcnRzID4gamFjb2NvID4gamFjb2NvUm9vdFJlcG9ydCA+IGh0bWwgPiBpbmRleC5odG1sYGBgCgojIyMgQVBJIERvY3VtZW50YXRpb24KCkEgSlNPTiBTd2FnZ2VyIHNwZWMgY2FuIGJlIGZvdW5kIGF0ICcvdjMvYXBpLWRvY3MnLiBMb2NhbGx5IHRoaXMgd2lsbCBiZSAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL3YzL2FwaS1kb2NzJy4KCkEgVUkgdmVyc2lvbiBjYW4gYmUgc2VlbiBsb2NhbGx5IHVzaW5nIHRoZSBbU3dhZ2dlciBVSSBwYWdlXShodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sKS4KClRoaXMgU3dhZ2dlciBzcGVjaWZpY2F0aW9uIGlzIGEgZmlsZSB0aGF0IHNwZWNpZmllcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBBUEkuIEl0IGlzIGEgdXNlci1mcmllbmRseSBpbnRlcmZhY2UgdGhhdApkZWZpbmVzIHRoZSBlbmRwb2ludHMsIHJlcXVlc3RzIGFuZCByZXNwb25zZSBmb3JtYXRzIGFuZCB0aGUgZGF0YSBtb2RlbHMgdGhhdCBhcmUgdXNlZCBieSB0aGUgQVBJLiBUaGlzIG1ha2VzIGl0IGVhc2llcgp0byBnZW5lcmF0ZSBjbGllbnQtc2lkZSBjb2RlIGZvciBjb25zdW1pbmcgdGhlIEFQSSAoc3VjaCBhcwp0aGUgW2VhdHN5LXJlYWN0LXVpXShodHRwczovL2dpdGh1Yi5jb20vRE0xc3QvZWF0c3ktcmVhY3QtdWkvKSkgc2luY2UgdGhlIHNwZWNpZmljYXRpb24gcHJvdmlkZXMgYWxsIG5lY2Vzc2FyeQppbmZvcm1hdGlvbiBhYm91dCB0aGUgQVBJJ3Mgc3RydWN0dXJlLCB0aGVyZWZvcmUgcmVkdWNpbmcgdGhlIHJpc2sgb2YgZGVmZWN0cy4KClRoZSBTd2FnZ2VyIFNwZWMgaXMgY3JlYXRlZCB3aXRoIHRoZSBgYGBzcHJpbmdkb2Mtb3BlbmFwaS11aWBgYCBsaWJyYXJ5IGFuZCBjb25maWd1cmVkIGluIHRoZSBgYGBvcGVuQXBpQ29uZmlndXJhdGlvbmBgYApmaWxlIGxvY2F0ZWQgaW4gdGhlIGBgYGVhdHN5QXBwU2VydmljZS1jb250cm9sbGVyYGBgIHByb2plY3QuCgojIyMjIE1hbnVhbCBpbnNwZWN0aW9uIG9mIGEgbG9jYWwgQVBJIGRlcGxveW1lbnQKCkFzIG1lbnRpb25lZCBhYm92ZSwgdGhpcyBzZXJ2aWNlIGhhcyB1bml0IHRlc3RzICh1c2luZyBbSlVuaXQgNV0oaHR0cHM6Ly9qdW5pdC5vcmcvanVuaXQ1LykKLCBbTW9ja2l0b10oaHR0cHM6Ly9zaXRlLm1vY2tpdG8ub3JnLykKYW5kIFtGYWtlcl0oaHR0cHM6Ly9naXRodWIuY29tL0RpVVMvamF2YS1mYWtlcikpIHdpdGggdGVzdCBjb3ZlcmFnZSBkaXNwbGF5ZWQgb24gdGhlIGNvdmVyYWdlIGJhZGdlIGluIHRoaXMgUmVhZE1lLgpIb3dldmVyLCB0aGlzIFN3YWdnZXIgVUkgcHJvdmlkZXMgYSB3YXkgZm9yIHRoZSBBUEkgdG8gYmUgdGVzdGVkIG1hbnVhbGx5IGJ5IG1ha2luZyByZXF1ZXN0cyBhbmQgc2VlaW5nIHRoZSByZXNwb25zZQpkaXJlY3RseSBpbiB0aGUgYnJvd3Nlci4gVGhpcyBhbGxvd3MgZm9yIGVhc2llciBkZWJ1Z2dpbmcgYW5kIHZhbGlkYXRpb24gb2YgdGhlIEFQSSdzIGJlaGF2aW91ci4gRXhhbXBsZSBiZWxvdzoKCiogT25jZSB0aGUgc2VydmljZSBpcyBydW5uaW5nIG5hdmlnYXRlIHRvIHRoZSBbU3dhZ2dlciBVSSBwYWdlXShodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sKS4KKiBTZWxlY3QgdGhlICdBcGkgQ29udHJvbGxlcicKKiBTZWxlY3QgdGhlICdQT1NUJyByZXF1ZXN0IGZvciBhZGRpbmcgYSBuZXcgcmVjaXBlLgoqIFNlbGVjdCAiVHJ5IGl0IG91dCIgYW5kIGVudGVyIGEgcmVxdWVzdCBib2R5IG9mIHlvdXIgY2hvaWNlIGFzIGEgdGVzdC4gRS5nLgoKYGBgCnsKICAiaW5ncmVkaWVudFNldCI6IFsKICAgICJCZWFucyIsICJUb2FzdCIKICBdLAogICJtZXRob2QiOiB7CiAgICAiMSI6ICJNaXJjb3dhdmUgQmVhbnMiLAogICAgIjIiOiAiVG9hc3QgQnJlYWQiLAogICAgIjMiOiAiQ29tYmluZSBCZWFucyBhbmQgVG9hc3QiCiAgfSwKICAibmFtZSI6ICJCZWFucyBvbiBUb2FzdCIKfQpgYGAKCiogU2VsZWN0ICJFeGVjdXRlIi4KKiBJbnNwZWN0IHRoZSBzZXJ2ZXIgcmVzcG9uc2UgYW5kIHRoZSByZXNwb25zZSBib2R5IHdpbGwgZGlzcGxheSB0aGUgbmV3IHJlY2lwZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBjcmVhdGVkIHdpdGggeW91cgogIGNob3NlbiBuYW1lLgoKIyMjIERlcGxveSB5b3VyIG93biBpbnN0YW5jZSAodmlhIERvY2tlciAmIERvY2tlciBDb21wb3NlKToKCioqUHJlLXJlcXVpc2l0ZToqKiBEb2NrZXIgJiBEb2NrZXIgQ29tcG9zZSBpbnN0YWxsZWQgb24geW91ciBtYWNoaW5lIGlmIHlvdSB3aXNoIHRvIGJ1aWxkIGFuZCBydW4gdGhlIERvY2tlciBpbWFnZXMgaW4KdGhlIHJlcG9zaXRvcnkuIFRoZSBtZXRob2Qgb2ZmZXJzIGFuIGFsdGVybmF0aXZlIGFwcHJvYWNoIGJ5IGFsbG93aW5nIFBvc3RncmVzLCBQZ0FkbWluIGFuZCB0aGUgRWF0c3ktQVBJIHRvIGJlIGRlcGxveWVkCmFuZCBydW4gYXMgRG9ja2VyIGNvbnRhaW5lcnMuCgpUaGUgYnVpbHQgRG9ja2VyIGltYWdlIG9mIHRoZSBFYXRzeSBBUEkgY2FuIGJlIGZvdW5kIG9uCkRvY2tlckh1YiBbaGVyZV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2RtMXN0L2VhdHN5LWFwaS1kb2NrZXIpCgotIENvcHkgdGhlIGRvY2tlci1jb21wb3NlLnltbCBmcm9tIHRoZSByZXBvc2l0b3J5IGxvY2F0ZWQgYXQ6CgpgYGA8cHJvamVjdFJvb3Q+XGFsdGVybmF0aXZlRGVwbG95bWVudE9wdGlvbnNcZG9ja2VyLWNvbXBvc2UueW1sYGBgCgoqX1BsZWFzZSBub3RlIHRoaXMgaXMgbm90IHRoZSBkb2NrZXItY29tcG9zZS55bWwgZmlsZSBsb2NhdGVkIGF0IHByb2plY3Qgcm9vdCAod2hpY2ggYnVpbGRzIHRoZSBpbWFnZSBmcm9tIHRoZQpkb2NrZXJmaWxlIHJhdGhlciB0aGFuIHRoaXMgY29uZmlnIHdoaWNoIHB1bGxzIHRoZSBsYXRlc3QgYnVpbHQgaW1hZ2UgZnJvbSBkb2NrZXJodWIpLgoKLSBUcmFuc2ZlciB0aGUgYWx0ZXJuYXRpdmVEZXBsb3ltZW50T3B0aW9uc1xkb2NrZXItY29tcG9zZS55bWwgZmlsZSB0byB5b3VyIG1hY2hpbmUgd2hlcmUgeW91IHdpbGwgYmUgcnVubmluZyB0aGUKICBzZXJ2aWNlLiAoWW91ciBtYWNoaW5lIHdpbGwgbmVlZCBEb2NrZXIgYW5kIERvY2tlci1Db21wb3NlIGluc3RhbGxlZCBhcyBkZXRhaWxlZCBpbiB0aGUgcHJlLXJlcXVpc2l0ZSkKLSBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHRoZSBkaXJlY3Rvcnkgd2hlcmUgeW91IGhhdmUgcGxhY2VkIHRoZSBkb2NrZXItY29tcG9zZS55bWwgZmlsZSB0byBydW4gdGhlIGFwcGxpY2F0aW9uOgoKYGBgCmRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAoKVGhpcyBjb21tYW5kIHdpbGwgcnVuIHRoZSBlYXRzeSBBUEkgc2VydmljZSwgdGhlIFBvc3RncmVzIERCIGFuZCBwZ0FkbWluIGluIERvY2tlciBDb250YWluZXJzLgoKRm9yIGZ1dHVyZSBkZXBsb3ltZW50cywgZXhwbGljaXRseSBjaGVjayB0aGUgZG9ja2VyaHViIHJlcG9zaXRvcnkgdG8gZW5zdXJlIHlvdSBhcmUgYnVpbGRpbmcgdGhlIGltYWdlIHdpdGggdGhlIGxhdGVzdApjaGFuZ2VzOgoKYGBgCmRvY2tlciBwdWxsIGRtMXN0L2VhdHN5LWFwaS1kb2NrZXIgJiYgZG9ja2VyLWNvbXBvc2UgdXAgLWQKYGBgCgotIFRoZSBzZXJ2aWNlIGNhbiBiZSBzcHVuIGRvd24gd2l0aCB0aGUgYGBgZG9ja2VyLWNvbXBvc2UgZG93bidgYGAgY29tbWFuZC4KCldpdGggRG9ja2VyLUNvbXBvc2UgdGhlIFBvc3RncmVzIGNvbnRhaW5lciBpcyBzdGFydGVkIGFuZCBlc3RhYmxpc2hlZCBmaXJzdCBhcyB0aGUgQVBJIHNlcnZpY2UgZGVwZW5kcyBvbiB0aGUKcG9zdGdyZXNTUUwgY29udGFpbmVyIGJlaW5nIHVwIGFuZCBoZWFsdGh5LgoKLSBOYXZpZ2F0ZSB0byB0aGUgU3dhZ2dlciBVSSBwYWdlIHRvIHNlZSB0aGUgQVBJIHNlcnZpY2UgcnVubmluZwoKYGBgaHR0cDovLzx5b3VyX2hvc3Q+OjgwODAvc3dhZ2dlci11aS5odG1sYGBgCgoqIFlvdSBjYW4gYWxzbyBmb2xsb3cgdGhlIGFib3ZlIHN0ZXBzLCBidXQgd2l0aCB0aGUgYGBgZG9ja2VyLWNvbXBvc2UueW1sYGBgIGZpbGUgbG9jYXRlZCBhdCB0aGUgcHJvamVjdCByb290IHRvIGJ1aWxkCiAgYW4gaW1hZ2UgZnJvbSB0aGUgcHJvamVjdCBkb2NrZXJmaWxlLCByYXRoZXIgdGhhbiBwdWxsaW5nIHRoZSBidWlsdCBpbWFnZSBob3N0ZWQgb24gZG9ja2VyaHViLiBJZiB1c2luZyB0aGlzIGFwcHJvYWNoLAogIHlvdSB3aWxsIG5lZWQgdGhlIGNvZGViYXNlIHN0b3JlZCBsb2NhbGx5IG9uIHlvdXIgaG9zdCAocmF0aGVyIHRoYW4ganVzdCB0aGUgZG9ja2VyLWNvbXBvc2UueW1sIGZpbGUgbG9jYXRlZCBpbiB0aGUKICBhbHRlcm5hdGl2ZURlcGxveW1lbnRPcHRpb25zIGZvbGRlcikuCgojIyMgVGhlIGxpdmUgaW5zdGFuY2Ugb2YgdGhpcyBhcHBsaWNhdGlvbiBvbiBSZW5kZXIuY29tCgpBcyBtZW50aW9uZWQgYWJvdmUsIHRoZSBFYXRzeSBBUEkgaXMgZGVwbG95ZWQgb24gUmVuZGVyIGJ5IHVzaW5nIHRoZSBgYGBkb2NrZXJmaWxlYGBgIGluIHRoZSBwcm9qZWN0IHJvb3QuIEFzIHRoaXMKcHJvamVjdCB1c2VzIHRoZSBmcmVlLXRpZXIgcHJvZHVjdHMgb24gW1JlbmRlci5jb21dKGh0dHBzOi8vcmVuZGVyLmNvbSksIHRoZXJlZm9yZSBvbmx5IHRoZSBtb3N0IGxpZ2h0d2VpZ2h0CmluZnJhc3RydWN0dXJlIGlzIGF2YWlsYWJsZS4gQXMgYSByZXN1bHQsIGluIG9yZGVyIHRvIG1ha2UgZGVwbG95bWVudCBwb3NzaWJsZSwgYW5kIHJlZHVjZSBpbWFnZSBzcGluLXVwIHRpbWVzICh3aGVuIHRoZQpzZXJ2aWNlIGlzIGNvbGQpCmV2ZXJ5IGVmZm9ydCBoYXMgYmVlbiBtYWRlIHRvIHJlZHVjZSB0aGUgZG9ja2VyIGltYWdlIHNpemUuIFRoaXMgaW5jbHVkZXM6CgoqIExheWVyaW5nIHRoZSBTcHJpbmcgYm9vdCBKYXIgZmlsZSBzbyB0aGF0IGl0IGlzIGJ1aWx0IGludG8gNCBsYXllcnMuIFRoaXMgaXMgZG9uZSBpbiB0aGUgQ29udHJvbGxlcgogIHByb2plY3QgYGBgYnVpbGQuZ3JhZGxlYGBgIGZpbGUuCiogVGhlIGRlY29tcG9zaXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIGludG8gZGlmZmVyZW50IGxheWVycyBhbGxvd3MgZm9yIHRoZSBjcmVhdGlvbiBvZiBhbiBlZmZpY2llbnQgRG9ja2VyIGltYWdlLCBieQogIGNyZWF0aW5nIGEgbXVsdGktc3RhZ2UgYGBgZG9ja2VyZmlsZWBgYCAobG9jYXRlZCBpbiB0aGUgcHJvamVjdCByb290KS4gRWZmaWNpZW5jeSBpcyBpbXByb3ZlZCBhbmQgc3RhcnQgdXAgdGltZSBvZiB0aGUKICBkb2NrZXIgaW1hZ2UgcmVkdWNlZCwgZXNwZWNpYWxseSBhcyBpdCBpcyBiZWluZyBydW4gb24gbGltaXRlZCBpbmZyYXN0cnVjdHVyZS4KCiMjIFRPRE8KCiogQWRkIEdvb2dsZSBzaG9wcGluZyBsaXN0IGludGVncmF0aW9uLgoqIEFkZCBhYmlsaXR5IHRvIHNlYXJjaCBmb3IgcmVjaXBlLgoqIEFkZCBzZWFyY2ggY2FwYWJpbGl0eSBmb3IgYmVzdCBtYXRjaCBiYXNlZCBvbiBzZWFyY2ggaW5ncmVkaWVudHMuCiogQWRkIHRoZSBjb25jZXB0IG9mIHVzZXJzLgoqIEFkZCBjb21wb25lbnQgdGVzdCBwYWNrLgo= readmeEtag: '"1237c133b1d7a02179fec8ebbf19c82a71a86be8"' readmeLastModified: Sun, 02 Apr 2023 20:27:59 GMT repositoryId: 432201412 description: 'Eatsy App Service for creating and editing your favourite recipies! ' created: '2021-11-26T14:12:29Z' updated: '2023-02-16T20:31:48Z' language: Java archived: false stars: 0 watchers: 1 forks: 1 owner: DM1st logo: https://avatars.githubusercontent.com/u/30046844?v=4 license: MIT repoEtag: '"a6657cfaf80d75a04fa176f76b92a27eabebeca685b3bc70796e39e32d4ad602"' repoLastModified: Thu, 16 Feb 2023 20:31:48 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/dm1st/eatsy - source: openapi3 tags repository: https://github.com/clustermarket/clustermarket-api v3: true repositoryMetadata: base64Readme: >- Q2x1c3Rlcm1hcmtldCBBUEkKPT09PT09PT09PT09PT09PT0KCkZ1bGwgZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUgb246IFthcGlkb2NzLmNsdXN0ZXJtYXJrZXQuY29tXShodHRwczovL2FwaWRvY3MuY2x1c3Rlcm1hcmtldC5jb20vKQo= readmeEtag: '"09a18d4280e5619f03096dcdf808eeb2a05d58e6"' readmeLastModified: Wed, 01 Mar 2023 13:42:34 GMT repositoryId: 419906738 description: Mirror of https://gitlab.com/clustermarket/clustermarket-api/ created: '2021-10-21T23:32:48Z' updated: '2022-06-24T11:32:52Z' language: JavaScript archived: false stars: 0 watchers: 0 forks: 0 owner: clustermarket logo: https://avatars.githubusercontent.com/u/82224373?v=4 repoEtag: '"ac8a39eb29fffdc245a107da22d262aab20b5cc3f9ffb0cea20d37fb1e757802"' repoLastModified: Fri, 24 Jun 2022 11:32:52 GMT foundInMaster: true category: Server id: b6fe55f17fe5c615f86cf6909318a46b - source: openapi3 tags repository: https://github.com/semestry/api-specs v3: true repositoryMetadata: base64Readme: >- IyBhcGktc3BlY3MKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBBUEkgc3BlY2lmaWNhdGlvbnMgYW5kIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIGZvciBFdmVvaCdzIEFQSXMuCgojIyBQdWJsaXNoaW5nCgpUaGUgT3BlbkFQSSAzLjAgc3BlY2lmaWNhdGlvbnMgYXJlIGdlbmVyYXRlZCB1c2luZyBSZURvYy4gClByb2R1Y3Rpb24gQVBJIGRvY3VtZW50YXRpb24gcGFnZXMgYXJlIGF1dG9tYXRpY2FsbHkgcHVibGlzaGVkIGJ5IEdpdGh1YiBQYWdlcyB3aGVuIGNoYW5nZXMgYXJlIHB1c2hlZCB0byB0aGUgYG1hc3RlcmAgYnJhbmNoLgoKIyMgRGV2ZWxvcG1lbnQKCiMjIyBWaWV3aW5nIGRvY3VtZW50YXRpb24gbG9jYWxseQoKU3BlY2lmaWNhdGlvbnMgY2FuIGJlIHNlcnZlZCBsb2NhbGx5IHVzaW5nIFlhcm4gY29tbWFuZHM6CgpgeWFybiBzZXJ2ZTo8c3BlYz5gCgpGb3IgZXhhbXBsZToKCmB5YXJuIHNlcnZlOmVjaG8td2ViaG9va3NgCgpEb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBhdCBgaHR0cDovL2xvY2FsaG9zdDozMDAwYC4KCkNoYW5nZXMgdG8gc291cmNlIGZpbGVzIGFyZSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCwgYWx0aG91Z2ggeW91ciBicm93c2VyIHNob3VsZCBiZSBtYW51YWxseSByZWZyZXNoZWQuCgojIyMgTGludGluZyBzcGVjaWZpY2F0aW9ucwoKTGludGluZyBpcyBwZXJmb3JtZWQgdXNpbmcgU3BlY2N5LgoKTGludCB0aGUgc3BlY3MgdXNpbmcgdGhlIGZvbGxvd2luZyBZYXJuIGNvbW1hbmQ6CgpgeWFybiBsaW50YAoKIyMjIEFkZGluZyBhIEFQSSBzcGVjaWZpY2F0aW9uCgotIEFkZCB0aGUgT3BlbkFQSSAzLjAgZmlsZSB0byBgL3NwZWNgLgotIENyZWF0ZSBhIEhUTUwgZmlsZSBpbiBgL2RvY3NgIHNlcnZpbmcgdGhlIHNwZWNpZmljYXRpb24uCi0gQWRkIGEgbGluayB0byB0aGUgc3BlY2lmaWNhdGlvbiBpbiBgL2RvY3MvaW5kZXguaHRtbGAuIAotIEFkZCBhIGBsaW50OjxzcGVjPmAgc2NyaXB0IGluIGBwYWNrYWdlLmpzb25gLgotIEFkZCBhIGBzZXJ2ZTo8c3BlYz5gIHNjcmlwdCBpbiBgcGFja2FnZS5qc29uYC4K readmeEtag: '"c6c5d9b0cfded6b2f34d656acbd3edec7b43aa82"' readmeLastModified: Mon, 10 Aug 2020 07:45:20 GMT repositoryId: 187231129 description: Eveoh API specifications created: '2019-05-17T14:31:35Z' updated: '2024-07-01T14:26:19Z' language: null archived: true stars: 0 watchers: 7 forks: 0 owner: semestry logo: https://avatars.githubusercontent.com/u/1628298?v=4 repoEtag: '"a19e1ce75902e018dae9a13b9d1b6dc96d223090651743862851e96b7b634351"' repoLastModified: Mon, 01 Jul 2024 14:26:19 GMT foundInMaster: true category: - Documentation - Parsers - Server Implementations id: da535d66a142ee78c5bc699dd795fd45 - source: openapi3 tags repository: https://github.com/koriit/openapi-matcher v3: true repositoryMetadata: base64Readme: >- PSBPcGVuQVBJIE1hdGNoZXIKCmltYWdlOmh0dHBzOi8vZ2l0aHViLmNvbS9Lb3JpaXQvb3BlbmFwaS1tYXRjaGVyL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnlhbWwvYmFkZ2Uuc3ZnW0J1aWxkLCBsaW5rPSJodHRwczovL2dpdGh1Yi5jb20vS29yaWl0L29wZW5hcGktbWF0Y2hlci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55YW1sIl0KaW1hZ2U6aHR0cHM6Ly93d3cuY29kZWZhY3Rvci5pby9yZXBvc2l0b3J5L2dpdGh1Yi9rb3JpaXQvb3BlbmFwaS1tYXRjaGVyL2JhZGdlW0NvZGVGYWN0b3IsbGluaz1odHRwczovL3d3dy5jb2RlZmFjdG9yLmlvL3JlcG9zaXRvcnkvZ2l0aHViL2tvcmlpdC9vcGVuYXBpLW1hdGNoZXJdCmltYWdlOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLSVFMiU5RCVBNC1GRjQwODEuc3ZnW2t0bGludCxsaW5rPWh0dHBzOi8va3RsaW50LmdpdGh1Yi5pby9dCgppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9jb20ua29yaWl0LmtvdGxpbi9vcGVuYXBpLW1hdGNoZXIuc3ZnP2xhYmVsPU1hdmVuJTIwQ2VudHJhbFtNYXZlbiBDZW50cmFsLCBsaW5rPSJodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzolMjJjb20ua29yaWl0LmtvdGxpbiUyMiUyMEFORCUyMGE6JTIyb3BlbmFwaS1tYXRjaGVyJTIyIl0KaW1hZ2U6aHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9rb3RsaW4tMS42LjEwLWJsdWUuc3ZnP2xvZ289a290bGluW0tvdGxpbiwgbGluaz1odHRwOi8va290bGlubGFuZy5vcmddCmltYWdlOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2Uva29yaWl0L29wZW5hcGktbWF0Y2hlcltHaXRIdWJdCgpXQVJOSU5HOiBGcm9tIHZlcnNpb24gMC43LjAgYWxsIHBhY2thZ2UgbmFtZXMgaGF2ZSBiZWVuIHJlbmFtZWQgdG8gbWF0Y2ggbmV3IGFydGlmYWN0IGdyb3VwIGlkLgoKT3BlbkFQSSBtYXRjaGVyIGZvciBLb3RsaW4gYWxsb3dzIGNvbXBhcmluZyAyIHNwZWNpZmljYXRpb25zIGFnYWluc3QgZWFjaCBvdGhlci4KCltXQVJOSU5HXQpUaGlzIGxpYnJhcnkgaW4gKldvcmsgSW4gUHJvZ3Jlc3MqLiBJdCBkb2Vzbid0IHN1cHBvcnQgYWxsIGVsZW1lbnRzIG9mIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiB5ZXQuIFRoZSBzdXBwb3J0IHNjb3BlIGNhbiBiZQpjaGVja2VkIGluZGl2aWR1YWxseSBmb3IgZXZlcnkgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIG9iamVjdCBpbiB0aGUgYGtvcnJpdC5rb3RsaW4ub3BlbmFwaS5tb2RlbGAgcGFja2FnZS4KCgo9PSBSZWFkaW5nIE9wZW5BUEkKVGhpcyBsaWJyYXJ5IGluY2x1ZGVzIGFuIE9wZW5BUEkgcmVhZGVyIHRoYXQgYWxsb3dzIHBhcnNpbmcgeW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24gaW4gWUFNTCBmb3JtYXQgaW50bwphbiBpbi1tZW1vcnkgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgaW4gYSBtYXRjaGVyLgoKW3NvdXJjZSxrb3RsaW5dCi0tLS0KdmFsIGRvYzogT3BlbkFQSSA9IE9wZW5BUElSZWFkZXIoKS5sb2FkKHt9LmphdmFDbGFzcy5nZXRSZXNvdXJjZUFzU3RyZWFtKCIvb3BlbmFwaS55YW1sIikpCi0tLS0KCltOT1RFXQpVbnN1cHBvcnRlZCBlbGVtZW50cyBhcmUgaWdub3JlZC4KCj09IFZhbGlkYXRpbmcgT3BlbkFQSQpPbmNlIHlvdSBoYXZlIDIgT3BlbkFQSSBvYmplY3RzIHlvdSBjYW4gbWF0Y2ggdGhlbSBjaGVja2luZyBmb3IgYW55IHNpZ25pZmljYW50IGRpZmZlcmVuY2VzLgoKQSBzaWduaWZpY2FudCBkaWZmZXJlbmNlIGlzIHVuZGVyc3Rvb2QgYXMgYSBkaXZlcmdlbmNlIHRoYXQgbGVhZHMgdG8gb3IgbWF5IGxlYWQgdG8gYSBjb21wYXRpYmlsaXR5IGJyZWFrLgoKVGhlIGdlbmVyYWwgaWRlYSBpcyB0byB2YWxpZGF0ZSB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBhZ2FpbnN0IHlvdXIgY29kZSBpbnN0ZWFkIG9mIHNwZWMvY29kZSBnZW5lcmF0aW9uLgoKW3NvdXJjZSxrb3RsaW5dCi0tLS0KdmFsIHNvdXJjZTogT3BlbkFQSSA9IC4uLiAvLyBBbmFseXplIHlvdXIgY29kZQoKTE9HLmluZm8oIlJlYWRpbmcgT3BlbkFQSSBzcGVjLi4uIikKdmFsIGRvYzogT3BlbkFQSSA9IE9wZW5BUElSZWFkZXIoKS5sb2FkKHt9LmphdmFDbGFzcy5nZXRSZXNvdXJjZUFzU3RyZWFtKCIvb3BlbmFwaS55YW1sIikpCgpMT0cuaW5mbygiVmFsaWRhdGluZyBzcGVjLi4uIikKdmFsIGVycm9ycyA9IE9wZW5BUElNYXRjaGVyKCkubWF0Y2goZG9jLCBzb3VyY2UpCgppZiAoZXJyb3JzLmlzTm90RW1wdHkoKSkgewogICAgTE9HLmluZm8oIlJlc3VsdCBvZiBjb2RlIGFuYWx5c2lzOlxue30iLCBzb3VyY2UpCgogICAgZXJyb3JzLmZvckVhY2ggewogICAgICAgIExPRy5lcnJvcihpdCkKICAgIH0KCiAgICBmYWlsKCJUaGVyZSBhcmUgJHtlcnJvcnMuc2l6ZX0gdmFsaWRhdGlvbiBlcnJvcnMhIikKfSBlbHNlIHsKICAgIExPRy5pbmZvKCJPSyEiKQp9Ci0tLS0KCg== readmeEtag: '"8f67f47d94cef85082b804cc49af58678253f961"' readmeLastModified: Sun, 30 Jan 2022 20:15:37 GMT repositoryId: 217255706 description: >- OpenApi matcher for kotlin, allows to compare 2 specifications against each other. created: '2019-10-24T08:58:03Z' updated: '2022-01-30T20:19:36Z' language: Kotlin archived: false stars: 0 watchers: 2 forks: 0 owner: Koriit logo: https://avatars.githubusercontent.com/u/8916393?v=4 license: MIT repoEtag: '"a36de620ac491f7c800a0a7d7299427c28abe1afc0fae85142d6cfa2ee19f08f"' repoLastModified: Sun, 30 Jan 2022 20:19:36 GMT foundInMaster: true category: Data Validators id: 8a1ce2f4655ce6c57fd36e72479933f1 - source: openapi3 tags repository: https://github.com/lantrix/phpipam-swagger-openapi v3: true repositoryMetadata: base64Readme: >- IyBwaHBpcGFtLXN3YWdnZXItb3BlbmFwaQoKcGhwSVBBTSBPcGVuQVBJIDMgX2FrYV8gU3dhZ2dlciBTcGVjIGJhc2VkIHVwb24gdGhlIFtwaHBJUEFNIEFQSSBEb2N1bWVudGF0aW9uXShodHRwczovL3BocGlwYW0ubmV0L2FwaS9hcGlfZG9jdW1lbnRhdGlvbi8pCgpJbXBvcnQgdGhlIE9wZW5BUEkgW1lBTUwtUmVzb2x2ZWQgc3BlY10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbnRyaXgvcGhwaXBhbS1zd2FnZ2VyLW9wZW5hcGkvbWFzdGVyL3lhbWwtcmVzb2x2ZWQvcGhwaXBhbS1zd2FnZ2VyLnlhbWwpIGludG8gdGhlIHRvb2wgb2YgeW91ciBjaG9pY2UsIGUuZy4gW0luc29tbmlhXShodHRwczovL2luc29tbmlhLnJlc3QpIG9yIFtQb3N0bWFuXShodHRwczovL3d3dy5nZXRwb3N0bWFuLmNvbSkKCkV4cG9ydCB0aGUgQ2xpZW50U0RLIG9yIFNlcnZlclN0dWIgYXMgbmVlZGVkIG92ZXIgYXQgdGhlIFtTd2FnZ2VySHViXShodHRwczovL2FwcC5zd2FnZ2VyaHViLmNvbS9hcGlzL2xhbnRyaXgvcGhwaXBhbS8pLgo= readmeEtag: '"1b0c553b7fb6f7a05dd13ba8ee4e2dfad8ce0ac8"' readmeLastModified: Wed, 02 Oct 2019 05:23:55 GMT repositoryId: 212253611 description: PHPIPAM OpenAPI 3 aka Swagger created: '2019-10-02T04:14:43Z' updated: '2019-10-02T05:23:58Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: lantrix logo: https://avatars.githubusercontent.com/u/117008?v=4 license: GPL-3.0 repoEtag: '"86e2456f8aa5724b3d05beee52d1c99f98d71b8b5847fdc0552064e0c2b429a8"' repoLastModified: Wed, 02 Oct 2019 05:23:58 GMT foundInMaster: true category: Code Generators id: 1eb337fca8933c898f918e1eef1ddc47 - source: openapi3 tags repository: https://github.com/ahelord/boilerplate-express-sequelize v3: true repositoryMetadata: base64Readme: >- IyBib2lsZXJwbGF0ZS1leHByZXNzLXNlcXVlbGl6ZQoKIyBSdW4gRG9ja2VyCi4vcnVuLWRvY2tlci5zaAoKIyBSdW4gTG9jYWwgb25seSBub2RlIDEyCi0gY2Qgc2VydmVyCi0gY2Qgc3JjCi0gbnZtIHVzZSAxMgotIG5wbSBpCi0gbnBtIHJ1biBub2RlbW9uCg== readmeEtag: '"48d9bfba956cded99f85514ad0e2f07fc0ce63e5"' readmeLastModified: Wed, 14 Aug 2024 03:36:38 GMT repositoryId: 280018723 description: 'boilerplate express sequelize swagger docker eslint husky precommit ' created: '2020-07-16T01:08:26Z' updated: '2024-08-14T03:36:42Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: ahelord logo: https://avatars.githubusercontent.com/u/21299810?v=4 repoEtag: '"4b96aab9d17a90bcca4091061d265e03831c8c6119d64857512945225f94c30a"' repoLastModified: Wed, 14 Aug 2024 03:36:42 GMT foundInMaster: true category: - Code Generators - Server Implementations id: eb31b899b4a7df11b8fd35752f563e92 - source: openapi3 tags repository: https://github.com/rgreinho/pyconsql v3: true repositoryMetadata: base64Readme: >- IyBweWNvbnNxbAoKVGhpcyBpcyBhIHNpbXBsZSBwcm9vZiBvZiBjb25jZXB0IHRvIHNob3cgaG93IHRvIGJ1aWxkIGEgbW9kZXJuIFJFU1QgQVBJIGluIHB5dGhvbi4KCiMjIEFic3RyYWN0CgpUaGlzIFBPQyB1c2VzIHRoZSBwZXRzdG9yZSBBUEkgc2NoZW1hIGFzIGFuIGV4YW1wbGUuCgpUaGUgbWFpbiBjb21wb25lbnRzIGFyZToKCiogW2Nvbm5leGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3phbGFuZG8vY29ubmV4aW9uKSB3aXRoCiAgW2Fpb2h0dHBdKGh0dHBzOi8vZG9jcy5haW9odHRwLm9yZy9lbi9zdGFibGUvKSBhcyBhIGJhY2tlbmQKKiBbZ3VuaWNvcm5dKGh0dHBzOi8vZ3VuaWNvcm4ub3JnLykgd2l0aCB0aGUKICBbdXZsb29wXShodHRwczovL2dpdGh1Yi5jb20vTWFnaWNTdGFjay91dmxvb3ApIHdvcmtlcgoqIFtPcGVuQWxjaGVteV0oaHR0cHM6Ly9naXRodWIuY29tL2pka2FuZGVyc3Nvbi9PcGVuQWxjaGVteSkgdG8gZ2VuZXJhdGUgdGhlIG1vZGVscyBvbgogIHRoZSBmbHkgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbgoqIFtTUUxBbGNoZW15XShodHRwczovL3d3dy5zcWxhbGNoZW15Lm9yZy8pIGZvciB0aGUgT1JNCiogW2FsZW1iaWNdKGh0dHBzOi8vYWxlbWJpYy5zcWxhbGNoZW15Lm9yZy9lbi9sYXRlc3QvKSB0byBtYW5hZ2UgdGhlIG1pZ3JhdGlvbnMKKiBbc2NoZW1hdGhlc2lzXShodHRwczovL2dpdGh1Yi5jb20va2l3aWNvbS9zY2hlbWF0aGVzaXMpIHRvIHRlc3Qgb3VyIEFQSQoKT3RoZXIgaW50ZXJlc3RpbmcgbGlicmFyaWVzIGFyZToKCiogW2xvZ3VydV0oaHR0cHM6Ly9naXRodWIuY29tL0RlbGdhbi9sb2d1cnUpIGZvciBiZXR0ZXIgbG9nZ2luZwoqIFt0ZW5hY2l0eV0oaHR0cHM6Ly9naXRodWIuY29tL2pkL3RlbmFjaXR5KSB0byBoYW5kbGUgcmV0cmllcwoqIFt1anNvbl0oaHR0cHM6Ly9naXRodWIuY29tL3VsdHJhanNvbi91bHRyYWpzb24pIGZvciB1bHRyYSBmYXN0IEpTT04gcHJvY2Vzc2luZyAodG8gYmUKICBjb21wYXJlZCB3aXRoIFtvcmpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9pamwvb3Jqc29uKSB0aG91Z2gsIGFzIHVqc29uIGlzIHNsaWdodGx5CiAgaW5jb21wYXRpYmxlIHdpdGggdGhlIHN0ZGxpYikKCiMjIFNldHVwCgpJbnN0YWxsIHRoZSBQT0M6CgpgYGBiYXNoCnBvZXRyeSBpbnN0YWxsCmBgYAoKUnVuIHRoZSBtaWdyYXRpb25zOgoKYGBgYmFzaAptYWtlIG1pZ3JhdGUKYGBgCgpTdGFydCB0aGUgc2VydmVyOgoKYGBgYmFzaAptYWtlIGxvY2FsLWFwaQpgYGAKCiMjIFBsYXkgd2l0aCBpdAoKRnJvbSBhbm90aGVyIHRlcm1pbmFsLCB5b3UgY2FuIG5vdyBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgYWN0aW9uczoKClBvcHVsYXRlIHRoZSBkYXRhYmFzZToKCmBgYGJhc2gKY3VybCAtWCBQT1NUICJodHRwOi8vMC4wLjAuMDo4MDAwL2FwaS9wZXRzIiBcCiAgLUggImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIgXAogIC1kICd7Im5hbWUiOiAidGlnZXIiLCAidGFnIjogIndpbGQifScKY3VybCAtWCBQT1NUICJodHRwOi8vMC4wLjAuMDo4MDAwL2FwaS9wZXRzIiBcCiAgLUggImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIgXAogIC1kICd7Im5hbWUiOiAibW9sbHkiLCAidGFnIjogImhvbWVidWRkeSJ9JwpgYGAKClJldHJpZXZlIGFsbCB0aGUgcGV0czoKCmBgYGJhc2gKY3VybCAtcyAtWCBHRVQgImh0dHA6Ly8wLjAuMC4wOjgwMDAvYXBpL3BldHMiIC1IICJhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iIHwganEKYGBgCgpSZXRyaWV2ZSBhIHNwZWNpZmljIHBldDoKCmBgYGJhc2gKY3VybCAtcyAtWCBHRVQgImh0dHA6Ly8wLjAuMC4wOjgwMDAvYXBpL3BldHMvMSIgLUggImFjY2VwdDogYXBwbGljYXRpb24vanNvbiIgfCBqcQpgYGAKCiMjIFRlc3QgaXQKCmBgYGJhc2gKcG9ldHJ5IHJ1biBzY2hlbWF0aGVzaXMgcnVuIGh0dHA6Ly8wLjAuMC4wOjgwMDAvYXBpL29wZW5hcGkuanNvbgpgYGAKClRoZSBlbmRwb2ludCBgUE9TVCAvYXBpL3BldHNgIGZhaWxzIGJlY2F1c2UgdGhlcmUgaXMgbm8gdmFsaWQgZXhhbXBsZSBhc3NvY2lhdGVkIHRvIGl0CmluIHRoZSBzcGVjaWZpY2F0aW9uIGZpbGUuCgojIyBDbGVhbiB1cAoKRGVzdHJveSB0aGUgREIgYW5kIGFzc29jaWF0ZWQgbWlncmF0aW9uczoKCmBgYGJhc2gKbWFrZSBjbGVhbnVwCmBgYAoKIyMgV2hhdCdzIG5lZWRlZCB0byBtYWtlIGl0IHByb2R1Y3Rpb24gcmVhZHkKCiogSW1wcm92ZSB0aGUgY29uZmlndXJhdGlvbiBzeXN0ZW0KICAqIFBhcmFtZXRlcnMgc2hvdWxkIGhhdmUgc2Vuc2libGUgZGVmYXVsdCB2YWx1ZXMKICAqIEFsbCB0aGUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSBpbmZlcnJlZCBvciBjYWxjdWxhdGVkIHNob3VsZCBiZSBpbmZlcnJlZCBvciBjYWxjdWxhdGVkIChpLmUuIHRoZSBzcGVjZmlsZSBwYXRoKQoqIFJlbW92ZSBHVW5pY29ybgogICogQWx0aG91Z2ggaXQgZG9lcyBub3QgYnJpbmcgbXVjaCBvdmVyaGVhZCwgaXQgaXMgbm90IG5lZWRlZCBieSBtb2Rlcm4gYXBwbGljYXRpb24gZnJhbWV3b3JrcyBhbmQgdGhlIHNjYWxpbmcvaGVhbHRoY2hlY2svcmVzdGFydCB3aWxsIGJlIGhhbmRsZWQgYnkga3ViZXJuZXRlcwoqIFNoYXJlIHRoZSBEQiBjb25uZWN0aW9uIGJldHdlZW4gY29udHJvbGxlcnMsIHZpYSB0aGUgY29ubmV4aW9uIGFwcAogICogVGhpcyBpcyBub3Qgb2ZmaWNpYWwgc3VwcG9ydGVkLCBidXQgaGVyZSBpcyBhbmljZSB3b3JrYXJvdW5kOiBbU2hhcmUgYSBEQiBjb25uZXhpb24gd2hlbiB1c2luZyBhaW9odHRwIGJhY2tlbmRdKGh0dHBzOi8vZ2l0aHViLmNvbS96YWxhbmRvL2Nvbm5leGlvbi9pc3N1ZXMvODMzKQoqIFVzZSB1bHRyYSBmYXN0IGxpYnJhcmllcwogICogUmVwbGFjZSB0aGUgZGVmYXVsdCBldmVudCBsb29wIHdpdGggVVZMb29wCiogUmVwbGFjZSB0aGUgTWFrZWZpbGUgd2l0aCBbSW52b2tlXShodHRwczovL3d3dy5weWludm9rZS5vcmcvKSB0YXNrcwoqIENyZWF0ZSBhIG5pY2UgdGVtcGxhdGUKICAqIENvb2tpZWN1dHRlciAoPykKICAqIE9ubHkgdGhlIG5hbWUgb2YgdGhlIGFwcCBzaG91bGQgYmUgcmVxdWlyZWQKCiMjIENhbiBJIHB1c2ggaXQgZXZlbiBmdXJ0aGVyPwoKSXQgc3RhcnRzIHRvIGdldCBoYXJkIHRvIG9idGFpbiBiZXR0ZXIgcGVyZm9ybWFuY2UgdXNpbmcgUHl0aG9uLCBidXQgaGVyZSBhcmUgc29tZSBwb2ludGVycyB0byBwdXNoIGFzeW5jaW8gdG8gaXRzIGxpbWl0czoKCiogVXNlIFthc3luY3BnXShodHRwczovL2dpdGh1Yi5jb20vTWFnaWNTdGFjay9hc3luY3BnKSB0byBoYW5kbGUgUG9zdGdyZVNRTC4KICAqIEl0IG9ubHkgd29ya3Mgd2l0aCBbU1FMIEFsY2hlbXkgQ29yZV0oaHR0cHM6Ly9kb2NzLnNxbGFsY2hlbXkub3JnL2VuLzEzL2NvcmUvKSB0aG91Z2gsIHRoZXJlZm9yZSB0aGVyZSBtYXkgYmUgc29tZSBhZGp1dHNtZW50cyB0byBtYWtlIHRvIHN0aWxsIGJlIGFibGUgdG8gdXNlIE9wZW4gQWxjaGVteS4KKiBVc2UgdGhlIFthaW8tbGlic10oaHR0cHM6Ly9naXRodWIuY29tL2Fpby1saWJzKSB3aGVuZXZlciBwb3NzaWJsZS4KKiBDaGVjayB0aGUgW2Fpb2h0dHAgZXh0ZW5zaW9uc10oaHR0cHM6Ly9kb2NzLmFpb2h0dHAub3JnL2VuL3N0YWJsZS90aGlyZF9wYXJ0eS5odG1sI2Fpb2h0dHAtZXh0ZW5zaW9ucykuCgojIyBJIHN0aWxsIG5lZWQgbW9yZQoKVXNlIEdvIG9yIFJ1c3QhCg== readmeEtag: '"fe582ed3c9efbc4b85ca90f432bc397fdcbab375"' readmeLastModified: Mon, 10 Aug 2020 18:45:06 GMT repositoryId: 273532058 description: A modern REST server setup wih OpenAPI 3 created: '2020-06-19T15:52:29Z' updated: '2020-08-10T18:45:09Z' language: Python archived: false stars: 0 watchers: 2 forks: 0 owner: rgreinho logo: https://avatars.githubusercontent.com/u/6969134?v=4 license: MIT repoEtag: '"5861b9ba0fec2c4ad102f0ead6819aef69e6a2a77b796a953b5175e2ecff49d7"' repoLastModified: Mon, 10 Aug 2020 18:45:09 GMT foundInMaster: true category: Server Implementations id: ae89adb4231331435d0be335778f0836 - source: openapi3 tags repository: https://github.com/iulian-stan/crud-flask-rest v3: true id: 7bb75db7936fd6fb318762046eddc7f2 repositoryMetadata: base64Readme: >- IyBGbGFzawpTaW1wbGUgQ1JVRCBhcHBsaWNhdGlvbiBpbXBsZW1lbnRlZCB1c2luZyBGbGFzayBmcmFtZXdvcmsKQWRkaXRpb25hbCBkZXBlbmRlbmNpZXMKKiBbY29ubmV4aW9uXShodHRwczovL2dpdGh1Yi5jb20vemFsYW5kby9jb25uZXhpb24pIC0gT3BlbkFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24KKiBbRmxhc2stU1FMQWxjaGVteV0oaHR0cHM6Ly9mbGFzay1zcWxhbGNoZW15LnBhbGxldHNwcm9qZWN0cy5jb20pLSBPUk0gKERCIGludGVyYWN0aW9uKQoqIFtGbGFzay1NYXJzaG1hbGxvd10oaHR0cHM6Ly9mbGFzay1tYXJzaG1hbGxvdy5yZWFkdGhlZG9jcy5pbykgLSBEYXRhIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uCgojIyBJbnN0YWxsYXRpb24KQ3JlYXRlIGEgcHl0aG9uIHZpcnR1YWwgZW52aXJvbm1lbnQgKG9wdGlvbmFsKQpgYGBiYXNoCnB5dGhvbiAtbSB2ZW52IC5lbnYKLmVudlxTY3JpcHRzXGFjdGl2YXRlCmBgYApJbnN0YWxsIG9mIHRoZSBkZXBlbmRlbmNpZXMgZnJvbSAqcmVxdWlyZW1lbnRzLnR4dCoKYGBgYmFzaApwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0CmBgYAoKIyMgVXNhZ2UKU3RhcnQgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgKm1haW4ucHkqCmBgYGJhc2gKcHl0aG9uIG1haW4ucHkKYGBgCk5hdmlnYXRlIHRvIHRoZSBmb2xsb3dpbmcgVVJMIGluIHlvdXIgd2ViIGJyb3dzZXIgLSBbaHR0cDovLzEyNy4wLjAuMTo5MDkwL3YxLjAvdWkvXShodHRwOi8vMTI3LjAuMC4xOjkwOTAvdjEuMC91aS8pLiBJdCB3aWxsIG9wZW4gdGhlIE9wZW5BUEkgZ2VuZXJhdGUgQVBJIGRvY3VtZW50YXRpb24gYmFzZWQgb24gKm9wZW5hcGkueWFtbCouIFRoZSBhcHBsaWNhdGlvbiB3aWxsIGNyZWF0ZSBhbiBpbml0aWFsbHkgZW1wdHkgREIgKHNlZSAqaW5pdC5weSopLiBVc2UgdGhlIFBPU1Qgb3IgUFVUIG1ldGhvZHMgdG8gcG9wdWxhdGUgdGhlIERCIHdpdGggc29tZSBzYW1wbGUgZGF0YSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHRlc3Qgb3RoZXIgSFRUUCBtZXRob2RzLg== readmeEtag: '"32a0c94628b1ac4637750c10a7ba7547a11d341e"' readmeLastModified: Sat, 05 Nov 2022 15:07:37 GMT repositoryId: 241997756 description: Simple CRUD application implemented using Flask framework created: '2020-02-20T21:50:48Z' updated: '2022-11-06T16:24:35Z' language: Python archived: false stars: 0 watchers: 2 forks: 0 owner: Iulian-Stan logo: https://avatars.githubusercontent.com/u/13657730?v=4 license: MIT repoEtag: '"af69800db050474e860287ce8b2cda113d9310b7e743747e953ce9fbd1a8a230"' repoLastModified: Sun, 06 Nov 2022 16:24:35 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/iulian-stan/crud-flask - https://github.com/iulian-stan/flask-crud-application - https://github.com/iulian-stan/flask-example - https://github.com/Iulian-Stan/Flask_Example - source: openapi3 tags repository: https://github.com/dernasherbrezon/jsp-openapi v3: true repositoryMetadata: base64Readme: >- IyBqc3Atb3BlbmFwaSBbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9kZXJuYXNoZXJicmV6b24vanNwLW9wZW5hcGkuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5jb20vZGVybmFzaGVyYnJlem9uL2pzcC1vcGVuYXBpKSBbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1ydS5yMmNsb3VkLm9wZW5hcGklM0Fqc3Atb3BlbmFwaSZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1ydS5yMmNsb3VkLm9wZW5hcGklM0Fqc3Atb3BlbmFwaSkKClRhZyBsaWIgZm9yIHJlbmRlcmluZyBvcGVuYXBpIHNwZWNpZmljYXRpb24uIENTUyBhbmQgamF2YXNjcmlwdCBsaWJyYXJpZXMgYXJlIG5vdCBpbmNsdWRlZC4KCiogImJvb3RzdHJhcDQtb3BlbmFwaSIuIFJlbmRlciB1c2luZyBib290c3RyYXA0LgoKIyMgVXNhZ2UKCkZvciBhIGNvbXBsZXRlIHJlZmVyZW5jZSBzZWUgdGhlIFt0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vZGVybmFzaGVyYnJlem9uL2pzcC1vcGVuYXBpL2Jsb2IvbWFzdGVyL3NyYy90ZXN0L3Jlc291cmNlcy93ZWJhcHAvaW5kZXguanNwKS4KCiMjIyBTdGVwIGJ5IHN0ZXAgZ3VpZGUKCkluY2x1ZGUgZGVwZW5kZW5jeToKCmBgYHhtbAo8ZGVwZW5kZW5jeT4KCTxncm91cElkPnJ1LnIyY2xvdWQub3BlbmFwaTwvZ3JvdXBJZD4KCTxhcnRpZmFjdElkPmpzcC1vcGVuYXBpPC9hcnRpZmFjdElkPgoJPHZlcnNpb24+MS4wPC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYAoKU2V0dXAgY29udHJvbGxlciAoZm9yIGV4YW1wbGUgU3ByaW5nIE1WQyk6CgpgYGBqYXZhCkBSZXF1ZXN0TWFwcGluZygiL2FwaSIpCnB1YmxpYyBNb2RlbEFuZFZpZXcgbG9hZCgpIHRocm93cyBFeGNlcHRpb24gewoJT3BlbkFQSSBvcGVuYXBpID0gbmV3IE9wZW5BUElWM1BhcnNlcigpLnJlYWQoTG9hZEFwaS5jbGFzcy5nZXRDbGFzc0xvYWRlcigpLmdldFJlc291cmNlKCJvcGVuYXBpLmpzb24iKS5nZXRGaWxlKCkpOwoJTWFwPFN0cmluZywgT2JqZWN0PiBtb2RlbCA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOwoJbW9kZWwucHV0KCJlbnRpdHkiLCBvcGVuYXBpKTsKCXJldHVybiBuZXcgTW9kZWxBbmRWaWV3KCJhcGkiLCBtb2RlbCk7Cn0KYGBgCgo+IE5vdGU6IGlmIEFQSSBzcGVjaWZpY2F0aW9uIGNhbm5vdCBiZSBjaGFuZ2VkIGluIHJ1bnRpbWUsIHRoZW4gaXQgaXMgYmV0dGVyIHRvIGNhY2hlIGl0IG9uIHN0YXJ0dXAuCgo+IE5vdGU6IGlvLnN3YWdnZXIudjMucGFyc2VyLk9wZW5BUElWM1BhcnNlciBpcyBhIHN3YWdnZXIgcGFyc2VyIGZvciB2MyBzcGVjaWZpY2F0aW9uLiBZb3UgY2FuIGltcGxlbWVudCB5b3VyIG93biBwYXJzZXIgb3IgdXNlIGFueSBjb21wYXRpYmxlLiBQYXJzZXIgc2hvdWxkIGJlIGFibGUgdG8gY29uc3RydWN0IGlvLnN3YWdnZXIudjMub2FzLm1vZGVscy5PcGVuQVBJIG1vZGVsLiAKCkNvbmZpZ3VyZSB0YWdsaWI6CgpgYGAKPCVAIHRhZ2xpYiBwcmVmaXg9Im9wZW5hcGkiIHVyaT0iaHR0cHM6Ly9naXRodWIuY29tL2Rlcm5hc2hlcmJyZXpvbi9qc3Atb3BlbmFwaSIgJT4KYGBgCgpVc2Ugb24gdGhlIHBhZ2U6CgpgYGBodG1sCjxib2R5PgoJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KCQk8b3BlbmFwaTpib290c3RyYXA0LW9wZW5hcGkgb3BlbmFwaT0iJHtlbnRpdHl9Ii8+Cgk8L2Rpdj4KPC9ib2R5PgpgYGAK readmeEtag: '"fc58981a9754d43efd8587b653da7f18da53bf4b"' readmeLastModified: Fri, 31 Mar 2023 20:44:12 GMT repositoryId: 224528587 description: JSP tag for rendering openapi created: '2019-11-27T22:37:39Z' updated: '2022-03-27T20:39:23Z' language: HTML archived: false stars: 0 watchers: 4 forks: 0 owner: dernasherbrezon logo: https://avatars.githubusercontent.com/u/1614424?v=4 license: Apache-2.0 repoEtag: '"ccba3e127757f9790a9ec38363bbed502a0fcb1f004ee35827e749c81b0bc2bc"' repoLastModified: Sun, 27 Mar 2022 20:39:23 GMT foundInMaster: true category: - Low-level Tooling - Parsers id: 5c313e281614ced14ecaf35afee7d90a - source: openapi3 tags repository: https://github.com/efficap-energie/liveobjects-go v3: true repositoryMetadata: base64Readme: >- IyBHbyBBUEkgY2xpZW50IGZvciBsaXZlb2JqZWN0cwoKQVBJIGRlc2NyaXB0aW9uIGZvciBMaXZlIE9iamVjdHMgc2VydmljZQoKIyMgT3ZlcnZpZXcKVGhpcyBBUEkgY2xpZW50IHdhcyBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSBwcm9qZWN0LiAgQnkgdXNpbmcgdGhlIFtPcGVuQVBJLXNwZWNdKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pIGZyb20gYSByZW1vdGUgc2VydmVyLCB5b3UgY2FuIGVhc2lseSBnZW5lcmF0ZSBhbiBBUEkgY2xpZW50LgoKLSBBUEkgdmVyc2lvbjogMi4xMy4zCi0gUGFja2FnZSB2ZXJzaW9uOiAxLjAuMAotIEJ1aWxkIHBhY2thZ2U6IG9yZy5vcGVuYXBpdG9vbHMuY29kZWdlbi5sYW5ndWFnZXMuR29DbGllbnRDb2RlZ2VuCgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXM6CgpgYGBzaGVsbApnbyBnZXQgZ2l0aHViLmNvbS9zdHJldGNoci90ZXN0aWZ5L2Fzc2VydApnbyBnZXQgZ29sYW5nLm9yZy94L29hdXRoMgpnbyBnZXQgZ29sYW5nLm9yZy94L25ldC9jb250ZXh0CmBgYAoKUHV0IHRoZSBwYWNrYWdlIHVuZGVyIHlvdXIgcHJvamVjdCBmb2xkZXIgYW5kIGFkZCB0aGUgZm9sbG93aW5nIGluIGltcG9ydDoKCmBgYGdvbGFuZwppbXBvcnQgc3cgIi4vbGl2ZW9iamVjdHMiCmBgYAoKVG8gdXNlIGEgcHJveHksIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYEhUVFBfUFJPWFlgOgoKYGBgZ29sYW5nCm9zLlNldGVudigiSFRUUF9QUk9YWSIsICJodHRwOi8vcHJveHlfbmFtZTpwcm94eV9wb3J0IikKYGBgCgojIyBDb25maWd1cmF0aW9uIG9mIFNlcnZlciBVUkwKCkRlZmF1bHQgY29uZmlndXJhdGlvbiBjb21lcyB3aXRoIGBTZXJ2ZXJzYCBmaWVsZCB0aGF0IGNvbnRhaW5zIHNlcnZlciBvYmplY3RzIGFzIGRlZmluZWQgaW4gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KCiMjIyBTZWxlY3QgU2VydmVyIENvbmZpZ3VyYXRpb24KCkZvciB1c2luZyBvdGhlciBzZXJ2ZXIgdGhhbiB0aGUgb25lIGRlZmluZWQgb24gaW5kZXggMCBzZXQgY29udGV4dCB2YWx1ZSBgc3cuQ29udGV4dFNlcnZlckluZGV4YCBvZiB0eXBlIGBpbnRgLgoKYGBgZ29sYW5nCmN0eCA6PSBjb250ZXh0LldpdGhWYWx1ZShjb250ZXh0LkJhY2tncm91bmQoKSwgc3cuQ29udGV4dFNlcnZlckluZGV4LCAxKQpgYGAKCiMjIyBUZW1wbGF0ZWQgU2VydmVyIFVSTAoKVGVtcGxhdGVkIHNlcnZlciBVUkwgaXMgZm9ybWF0dGVkIHVzaW5nIGRlZmF1bHQgdmFyaWFibGVzIGZyb20gY29uZmlndXJhdGlvbiBvciBmcm9tIGNvbnRleHQgdmFsdWUgYHN3LkNvbnRleHRTZXJ2ZXJWYXJpYWJsZXNgIG9mIHR5cGUgYG1hcFtzdHJpbmddc3RyaW5nYC4KCmBgYGdvbGFuZwpjdHggOj0gY29udGV4dC5XaXRoVmFsdWUoY29udGV4dC5CYWNrZ3JvdW5kKCksIHN3LkNvbnRleHRTZXJ2ZXJWYXJpYWJsZXMsIG1hcFtzdHJpbmddc3RyaW5newoJImJhc2VQYXRoIjogInYyIiwKfSkKYGBgCgpOb3RlLCBlbnVtIHZhbHVlcyBhcmUgYWx3YXlzIHZhbGlkYXRlZCBhbmQgYWxsIHVudXNlZCB2YXJpYWJsZXMgYXJlIHNpbGVudGx5IGlnbm9yZWQuCgojIyMgVVJMcyBDb25maWd1cmF0aW9uIHBlciBPcGVyYXRpb24KCkVhY2ggb3BlcmF0aW9uIGNhbiB1c2UgZGlmZmVyZW50IHNlcnZlciBVUkwgZGVmaW5lZCB1c2luZyBgT3BlcmF0aW9uU2VydmVyc2AgbWFwIGluIHRoZSBgQ29uZmlndXJhdGlvbmAuCkFuIG9wZXJhdGlvbiBpcyB1bmlxdWVseSBpZGVudGlmaWVsZCBieSBgIntjbGFzc25hbWV9U2VydmljZS57bmlja25hbWV9ImAgc3RyaW5nLgpTaW1pbGFyIHJ1bGVzIGZvciBvdmVycmlkaW5nIGRlZmF1bHQgb3BlcmF0aW9uIHNlcnZlciBpbmRleCBhbmQgdmFyaWFibGVzIGFwcGxpZXMgYnkgdXNpbmcgYHN3LkNvbnRleHRPcGVyYXRpb25TZXJ2ZXJJbmRpY2VzYCBhbmQgYHN3LkNvbnRleHRPcGVyYXRpb25TZXJ2ZXJWYXJpYWJsZXNgIGNvbnRleHQgbWFwcy4KCmBgYApjdHggOj0gY29udGV4dC5XaXRoVmFsdWUoY29udGV4dC5CYWNrZ3JvdW5kKCksIHN3LkNvbnRleHRPcGVyYXRpb25TZXJ2ZXJJbmRpY2VzLCBtYXBbc3RyaW5nXWludHsKCSJ7Y2xhc3NuYW1lfVNlcnZpY2Uue25pY2tuYW1lfSI6IDIsCn0pCmN0eCA9IGNvbnRleHQuV2l0aFZhbHVlKGNvbnRleHQuQmFja2dyb3VuZCgpLCBzdy5Db250ZXh0T3BlcmF0aW9uU2VydmVyVmFyaWFibGVzLCBtYXBbc3RyaW5nXW1hcFtzdHJpbmddc3RyaW5newoJIntjbGFzc25hbWV9U2VydmljZS57bmlja25hbWV9IjogewoJCSJwb3J0IjogIjg0NDMiLAoJfSwKfSkKYGBgCgojIyBEb2N1bWVudGF0aW9uIGZvciBBUEkgRW5kcG9pbnRzCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vbGl2ZW9iamVjdHMub3JhbmdlLWJ1c2luZXNzLmNvbSoKCkNsYXNzIHwgTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCipBY2NvdW50aW5nVjFBcGkqIHwgWyoqR2V0RGFpbHlTdGF0aXN0aWNzVXNpbmdHRVQyKipdKGRvY3MvQWNjb3VudGluZ1YxQXBpLm1kI2dldGRhaWx5c3RhdGlzdGljc3VzaW5nZ2V0MikgfCAqKkdldCoqIC9hcGkvdjEvYWNjb3VudGluZy9kYWlseSB8IEdldCBkYWlseSBhY2NvdW50aW5nIG1ldHJpY3MgKEJldGEpLgoqQWNjb3VudGluZ1YxQXBpKiB8IFsqKkdldE1vbnRobHlTdGF0aXN0aWNzVXNpbmdHRVQyKipdKGRvY3MvQWNjb3VudGluZ1YxQXBpLm1kI2dldG1vbnRobHlzdGF0aXN0aWNzdXNpbmdnZXQyKSB8ICoqR2V0KiogL2FwaS92MS9hY2NvdW50aW5nL21vbnRobHkgfCBHZXQgbW9udGhseSBhY2NvdW50aW5nIG1ldHJpY3MuCipBcGlLZXlzQXBpKiB8IFsqKkNyZWF0ZUFwaUtleVVzaW5nUE9TVCoqXShkb2NzL0FwaUtleXNBcGkubWQjY3JlYXRlYXBpa2V5dXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvYXBpS2V5cyB8IENyZWF0ZSBhbiBBUEkga2V5CipBcGlLZXlzQXBpKiB8IFsqKkRlbGV0ZUFwaUtleVVzaW5nREVMRVRFKipdKGRvY3MvQXBpS2V5c0FwaS5tZCNkZWxldGVhcGlrZXl1c2luZ2RlbGV0ZSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvYXBpS2V5cy97YXBpS2V5SWR9IHwgRGVsZXRlIGFuIEFQSSBrZXkKKkFwaUtleXNBcGkqIHwgWyoqR2V0QXBpS2V5RnJvbUF1dGhlbnRpY2F0aW9uVXNpbmdHRVQzKipdKGRvY3MvQXBpS2V5c0FwaS5tZCNnZXRhcGlrZXlmcm9tYXV0aGVudGljYXRpb251c2luZ2dldDMpIHwgKipHZXQqKiAvYXBpL3YwL2FwaUtleXMvY3VycmVudF9rZXkgfCBnZXRBcGlLZXlGcm9tQXV0aGVudGljYXRpb24KKkFwaUtleXNBcGkqIHwgWyoqR2V0QXBpS2V5VXNpbmdHRVQzKipdKGRvY3MvQXBpS2V5c0FwaS5tZCNnZXRhcGlrZXl1c2luZ2dldDMpIHwgKipHZXQqKiAvYXBpL3YwL2FwaUtleXMve2FwaUtleUlkfSB8IEdldCBhbiBBUEkga2V5CipBcGlLZXlzQXBpKiB8IFsqKkdldEFwaUtleXNVc2luZ0dFVDMqKl0oZG9jcy9BcGlLZXlzQXBpLm1kI2dldGFwaWtleXN1c2luZ2dldDMpIHwgKipHZXQqKiAvYXBpL3YwL2FwaUtleXMgfCBMaXN0IEFQSSBrZXlzCipBcGlLZXlzQXBpKiB8IFsqKlNldEFwaUtleURlYnVnTW9kZVVzaW5nUFVUMyoqXShkb2NzL0FwaUtleXNBcGkubWQjc2V0YXBpa2V5ZGVidWdtb2RldXNpbmdwdXQzKSB8ICoqUHV0KiogL2FwaS92MC9hcGlLZXlzL3thcGlLZXlJZH0vZGVidWdNb2RlIHwgQWN0aXZhdGUvRGVhY3RpdmF0ZSB0aGUgZGVidWcgbW9kZSBvbiBhbiBBUEkga2V5CipBcGlLZXlzQXBpKiB8IFsqKlVwZGF0ZUFwaUtleVVzaW5nUE9TVDEqKl0oZG9jcy9BcGlLZXlzQXBpLm1kI3VwZGF0ZWFwaWtleXVzaW5ncG9zdDEpIHwgKipQb3N0KiogL2FwaS92MC9hcGlLZXlzL3thcGlLZXlJZH0gfCBVcGRhdGUgYW4gQVBJIGtleQoqQXVkaXRMb2dBcGkqIHwgWyoqU2VhcmNoVXNpbmdHRVQqKl0oZG9jcy9BdWRpdExvZ0FwaS5tZCNzZWFyY2h1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvYXVkaXRsb2cvbWVzc2FnZXMgfCBSZXRyaWV2ZSBtZXNzYWdlcyBhdmFpbGFibGUgaW4geW91ciBBdWRpdExvZwoqQnVzTWFuYWdlbWVudEFwaSogfCBbKipDcmVhdGVVc2luZ1BPU1QzKipdKGRvY3MvQnVzTWFuYWdlbWVudEFwaS5tZCNjcmVhdGV1c2luZ3Bvc3QzKSB8ICoqUG9zdCoqIC9hcGkvdjAvdG9waWNzL2ZpZm8gfCBDcmVhdGUgYSBGSUZPCipCdXNNYW5hZ2VtZW50QXBpKiB8IFsqKkRlbGV0ZVVzaW5nREVMRVRFMjAqKl0oZG9jcy9CdXNNYW5hZ2VtZW50QXBpLm1kI2RlbGV0ZXVzaW5nZGVsZXRlMjApIHwgKipEZWxldGUqKiAvYXBpL3YwL3RvcGljcy9maWZvL3tmaWZvTmFtZX0gfCBEZWxldGUgYSBGSUZPCipCdXNNYW5hZ2VtZW50QXBpKiB8IFsqKkZpZm9QdWJsaXNoVXNpbmdQT1NUKipdKGRvY3MvQnVzTWFuYWdlbWVudEFwaS5tZCNmaWZvcHVibGlzaHVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL3RvcGljcy9maWZvL3tmaWZvTmFtZX0gfCBQdWJsaXNoIGEgbWVzc2FnZSBpbnRvIGEgRklGTwoqQnVzTWFuYWdlbWVudEFwaSogfCBbKipHZXRVc2luZ0dFVDE5KipdKGRvY3MvQnVzTWFuYWdlbWVudEFwaS5tZCNnZXR1c2luZ2dldDE5KSB8ICoqR2V0KiogL2FwaS92MC90b3BpY3MvZmlmby97Zmlmb05hbWV9IHwgR2V0IGEgRklGTwoqQnVzTWFuYWdlbWVudEFwaSogfCBbKipMaXN0Rmlmb1RvcGljc1VzaW5nR0VUKipdKGRvY3MvQnVzTWFuYWdlbWVudEFwaS5tZCNsaXN0Zmlmb3RvcGljc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC90b3BpY3MvZmlmbyB8IExpc3QgYWxsIEZJRk9zCipDQUNlcnRpZmljYXRlc0FwaSogfCBbKipDcmVhdGVVc2luZ1BPU1QqKl0oZG9jcy9DQUNlcnRpZmljYXRlc0FwaS5tZCNjcmVhdGV1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9jZXJ0aWZpY2F0ZXMvY2EgfCBVcGxvYWQgQ0EgY2VydGlmaWNhdGUKKkNBQ2VydGlmaWNhdGVzQXBpKiB8IFsqKkRlbGV0ZVVzaW5nREVMRVRFOSoqXShkb2NzL0NBQ2VydGlmaWNhdGVzQXBpLm1kI2RlbGV0ZXVzaW5nZGVsZXRlOSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvY2VydGlmaWNhdGVzL2NhL3tjZXJ0aWZpY2F0ZUlkfSB8IERlbGV0ZSBDQSBjZXJ0aWZpY2F0ZQoqQ0FDZXJ0aWZpY2F0ZXNBcGkqIHwgWyoqTGlzdFVzaW5nR0VUMTEqKl0oZG9jcy9DQUNlcnRpZmljYXRlc0FwaS5tZCNsaXN0dXNpbmdnZXQxMSkgfCAqKkdldCoqIC9hcGkvdjAvY2VydGlmaWNhdGVzL2NhIHwgTGlzdCBDQSBjZXJ0aWZpY2F0ZXMKKkNBQ2VydGlmaWNhdGVzQXBpKiB8IFsqKlJldHJpZXZlVXNpbmdHRVQqKl0oZG9jcy9DQUNlcnRpZmljYXRlc0FwaS5tZCNyZXRyaWV2ZXVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9jZXJ0aWZpY2F0ZXMvY2Eve2NlcnRpZmljYXRlSWR9IHwgUmV0cmlldmUgQ0EgY2VydGlmaWNhdGUKKkNhbXBhaWduTWFuYWdlbWVudEFwaSogfCBbKipDYW5jZWxDYW1wYWlnblVzaW5nUFVUKipdKGRvY3MvQ2FtcGFpZ25NYW5hZ2VtZW50QXBpLm1kI2NhbmNlbGNhbXBhaWdudXNpbmdwdXQpIHwgKipQdXQqKiAvYXBpL3YwL2RldmljZU1ndC9jYW1wYWlnbnMve2NhbXBhaWduSWR9L2NhbmNlbCB8IENhbmNlbCBhIGNhbXBhaWduCipDYW1wYWlnbk1hbmFnZW1lbnRBcGkqIHwgWyoqQ3JlYXRlQ2FtcGFpZ25Vc2luZ1BPU1QqKl0oZG9jcy9DYW1wYWlnbk1hbmFnZW1lbnRBcGkubWQjY3JlYXRlY2FtcGFpZ251c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9kZXZpY2VNZ3QvY2FtcGFpZ25zIHwgQ3JlYXRlIGEgY2FtcGFpZ24KKkNhbXBhaWduTWFuYWdlbWVudEFwaSogfCBbKipEZWxldGVDYW1wYWlnblVzaW5nREVMRVRFKipdKGRvY3MvQ2FtcGFpZ25NYW5hZ2VtZW50QXBpLm1kI2RlbGV0ZWNhbXBhaWdudXNpbmdkZWxldGUpIHwgKipEZWxldGUqKiAvYXBpL3YwL2RldmljZU1ndC9jYW1wYWlnbnMve2NhbXBhaWduSWR9IHwgRGVsZXRlIGEgY2FtcGFpZ24KKkNhbXBhaWduTWFuYWdlbWVudEFwaSogfCBbKipHZXRDYW1wYWlnbkRldGFpbHNVc2luZ0dFVCoqXShkb2NzL0NhbXBhaWduTWFuYWdlbWVudEFwaS5tZCNnZXRjYW1wYWlnbmRldGFpbHN1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvZGV2aWNlTWd0L2NhbXBhaWducy97Y2FtcGFpZ25JZH0vdGFyZ2V0cyB8IEdldCB0aGUgY2FtcGFpZ24gc3RhdHVzIHBlciBkZXZpY2UKKkNhbXBhaWduTWFuYWdlbWVudEFwaSogfCBbKipHZXRDYW1wYWlnblVzaW5nR0VUKipdKGRvY3MvQ2FtcGFpZ25NYW5hZ2VtZW50QXBpLm1kI2dldGNhbXBhaWdudXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2RldmljZU1ndC9jYW1wYWlnbnMve2NhbXBhaWduSWR9IHwgR2V0IGEgY2FtcGFpZ24KKkNhbXBhaWduTWFuYWdlbWVudEFwaSogfCBbKipMaXN0Q2FtcGFpZ25zVXNpbmdHRVQqKl0oZG9jcy9DYW1wYWlnbk1hbmFnZW1lbnRBcGkubWQjbGlzdGNhbXBhaWduc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9kZXZpY2VNZ3QvY2FtcGFpZ25zIHwgTGlzdCBhbGwgY2FtcGFpZ25zCipDYW1wYWlnbk1hbmFnZW1lbnRBcGkqIHwgWyoqVXBkYXRlQ2FtcGFpZ25Vc2luZ1BBVENIKipdKGRvY3MvQ2FtcGFpZ25NYW5hZ2VtZW50QXBpLm1kI3VwZGF0ZWNhbXBhaWdudXNpbmdwYXRjaCkgfCAqKlBhdGNoKiogL2FwaS92MC9kZXZpY2VNZ3QvY2FtcGFpZ25zL3tjYW1wYWlnbklkfSB8IFVwZGF0ZSBhIGNhbXBhaWduCipEYXRhQnVsa0luamVjdGlvbkFwaSogfCBbKipBZGREYXRhQnVsa1VzaW5nUE9TVCoqXShkb2NzL0RhdGFCdWxrSW5qZWN0aW9uQXBpLm1kI2FkZGRhdGFidWxrdXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvZGF0YS9idWxrIHwgSW5zZXJ0IGEgYnVsayBvZiBuZXcgRGF0YQoqRGF0YU1hbmFnZW1lbnRDdXN0b21QaXBlbGluZXNBcGkqIHwgWyoqRGVsZXRlVXNpbmdERUxFVEUxMSoqXShkb2NzL0RhdGFNYW5hZ2VtZW50Q3VzdG9tUGlwZWxpbmVzQXBpLm1kI2RlbGV0ZXVzaW5nZGVsZXRlMTEpIHwgKipEZWxldGUqKiAvYXBpL3YwL3BpcGVsaW5lcy97cGlwZWxpbmVJZH0gfCBEZWxldGUgYSBEYXRhTWVzc2FnZSBwaXBlbGluZQoqRGF0YU1hbmFnZW1lbnRDdXN0b21QaXBlbGluZXNBcGkqIHwgWyoqR2V0VXNpbmdHRVQxMioqXShkb2NzL0RhdGFNYW5hZ2VtZW50Q3VzdG9tUGlwZWxpbmVzQXBpLm1kI2dldHVzaW5nZ2V0MTIpIHwgKipHZXQqKiAvYXBpL3YwL3BpcGVsaW5lcy97cGlwZWxpbmVJZH0gfCBSZXRyaWV2ZSBhIERhdGFNZXNzYWdlIHBpcGVsaW5lCipEYXRhTWFuYWdlbWVudEN1c3RvbVBpcGVsaW5lc0FwaSogfCBbKipMaXN0VXNpbmdHRVQxMyoqXShkb2NzL0RhdGFNYW5hZ2VtZW50Q3VzdG9tUGlwZWxpbmVzQXBpLm1kI2xpc3R1c2luZ2dldDEzKSB8ICoqR2V0KiogL2FwaS92MC9waXBlbGluZXMgfCBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBEYXRhTWVzc2FnZSBwaXBlbGluZXMsIG9yZGVyZWQgYnkgcHJpb3JpdHlMZXZlbAoqRGF0YU1hbmFnZW1lbnRDdXN0b21QaXBlbGluZXNBcGkqIHwgWyoqUG9zdFVzaW5nUE9TVDEyKipdKGRvY3MvRGF0YU1hbmFnZW1lbnRDdXN0b21QaXBlbGluZXNBcGkubWQjcG9zdHVzaW5ncG9zdDEyKSB8ICoqUG9zdCoqIC9hcGkvdjAvcGlwZWxpbmVzIHwgQ3JlYXRlIGEgRGF0YU1lc3NhZ2UgcGlwZWxpbmUKKkRhdGFNYW5hZ2VtZW50Q3VzdG9tUGlwZWxpbmVzQXBpKiB8IFsqKlVwZGF0ZVVzaW5nUFVUNioqXShkb2NzL0RhdGFNYW5hZ2VtZW50Q3VzdG9tUGlwZWxpbmVzQXBpLm1kI3VwZGF0ZXVzaW5ncHV0NikgfCAqKlB1dCoqIC9hcGkvdjAvcGlwZWxpbmVzL3twaXBlbGluZUlkfSB8IFVwZGF0ZSBhIERhdGFNZXNzYWdlIHBpcGVsaW5lCipEYXRhTWFuYWdlbWVudERhdGFTZWFyY2hBcGkqIHwgWyoqRHNsUXVlcnlIaXRzT25seVVzaW5nUE9TVCoqXShkb2NzL0RhdGFNYW5hZ2VtZW50RGF0YVNlYXJjaEFwaS5tZCNkc2xxdWVyeWhpdHNvbmx5dXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvZGF0YS9zZWFyY2gvaGl0cyB8IFF1ZXJ5IGFuIEVsYXN0aWNzZWFyY2ggRG9tYWluIFNwZWNpZmljIExhbmd1YWdlIHJlcXVlc3QgYW5kIGdldCBvbmx5IGhpdHMgcmVzdWx0CipEYXRhTWFuYWdlbWVudERhdGFTZWFyY2hBcGkqIHwgWyoqRHNsUXVlcnlVc2luZ1BPU1QqKl0oZG9jcy9EYXRhTWFuYWdlbWVudERhdGFTZWFyY2hBcGkubWQjZHNscXVlcnl1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9kYXRhL3NlYXJjaCB8IFF1ZXJ5IGFuIEVsYXN0aWNzZWFyY2ggRG9tYWluIFNwZWNpZmljIExhbmd1YWdlIHJlcXVlc3QKKkRhdGFNYW5hZ2VtZW50RGF0YVN0b3JlQXBpKiB8IFsqKkFkZERhdGFNZXNzYWdlVXNpbmdQT1NUKipdKGRvY3MvRGF0YU1hbmFnZW1lbnREYXRhU3RvcmVBcGkubWQjYWRkZGF0YW1lc3NhZ2V1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9kYXRhL3N0cmVhbXMve3N0cmVhbUlkfSB8IEluc2VydCBhIG5ldyBEYXRhIGludG8gdGhlIHN0cmVhbQoqRGF0YU1hbmFnZW1lbnREYXRhU3RvcmVBcGkqIHwgWyoqUmV0cmlldmVEYXRhVXNpbmdHRVQqKl0oZG9jcy9EYXRhTWFuYWdlbWVudERhdGFTdG9yZUFwaS5tZCNyZXRyaWV2ZWRhdGF1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvZGF0YS9zdHJlYW1zL3tzdHJlYW1JZH0gfCBSZXRyaWV2ZSBkYXRhIGZyb20gdGhlIHN0cmVhbUlkCipEZWNvZGVyc0FwaSogfCBbKipMaXN0VXNpbmdHRVQyMioqXShkb2NzL0RlY29kZXJzQXBpLm1kI2xpc3R1c2luZ2dldDIyKSB8ICoqR2V0KiogL2FwaS92MC9kZWNvZGVycyB8IFJldHJpZXZlIHRoZSBsaXN0IG9mIGFsbCBkZWNvZGVycyAoYmluYXJ5LCBjc3YsIGpzKQoqRGVjb2RlcnNCaW5hcnlBcGkqIHwgWyoqQWN0aXZhdGVVc2luZ1BVVDgqKl0oZG9jcy9EZWNvZGVyc0JpbmFyeUFwaS5tZCNhY3RpdmF0ZXVzaW5ncHV0OCkgfCAqKlB1dCoqIC9hcGkvdjAvZGVjb2RlcnMvYmluYXJ5L3tkZWNvZGVySWR9L2VuYWJsZWQgfCBBY3RpdmF0ZSBvciBkZWFjdGl2YXRlIGEgZGVjb2RlcgoqRGVjb2RlcnNCaW5hcnlBcGkqIHwgWyoqRGVsZXRlVXNpbmdERUxFVEU4KipdKGRvY3MvRGVjb2RlcnNCaW5hcnlBcGkubWQjZGVsZXRldXNpbmdkZWxldGU4KSB8ICoqRGVsZXRlKiogL2FwaS92MC9kZWNvZGVycy9iaW5hcnkve2RlY29kZXJJZH0gfCBEZWxldGUgYSBiaW5hcnkgZGVjb2RlcgoqRGVjb2RlcnNCaW5hcnlBcGkqIHwgWyoqR2V0VXNpbmdHRVQxMCoqXShkb2NzL0RlY29kZXJzQmluYXJ5QXBpLm1kI2dldHVzaW5nZ2V0MTApIHwgKipHZXQqKiAvYXBpL3YwL2RlY29kZXJzL2JpbmFyeS97ZGVjb2RlcklkfSB8IFJldHJpZXZlIGEgYmluYXJ5IGRlY29kZXIKKkRlY29kZXJzQmluYXJ5QXBpKiB8IFsqKkxpc3RVc2luZ0dFVDEwKipdKGRvY3MvRGVjb2RlcnNCaW5hcnlBcGkubWQjbGlzdHVzaW5nZ2V0MTApIHwgKipHZXQqKiAvYXBpL3YwL2RlY29kZXJzL2JpbmFyeSB8IFJldHJpZXZlIHRoZSBsaXN0IG9mIGJpbmFyeSBkZWNvZGVycwoqRGVjb2RlcnNCaW5hcnlBcGkqIHwgWyoqUG9zdFVzaW5nUE9TVDEwKipdKGRvY3MvRGVjb2RlcnNCaW5hcnlBcGkubWQjcG9zdHVzaW5ncG9zdDEwKSB8ICoqUG9zdCoqIC9hcGkvdjAvZGVjb2RlcnMvYmluYXJ5IHwgQ3JlYXRlIGEgYmluYXJ5IGRlY29kZXIKKkRlY29kZXJzQmluYXJ5QXBpKiB8IFsqKlB1dFVzaW5nUFVUMioqXShkb2NzL0RlY29kZXJzQmluYXJ5QXBpLm1kI3B1dHVzaW5ncHV0MikgfCAqKlB1dCoqIC9hcGkvdjAvZGVjb2RlcnMvYmluYXJ5L3tkZWNvZGVySWR9IHwgVXBkYXRlIGEgYmluYXJ5IGRlY29kZXIKKkRlY29kZXJzQmluYXJ5QXBpKiB8IFsqKlRlc3RVc2luZ1BPU1QyKipdKGRvY3MvRGVjb2RlcnNCaW5hcnlBcGkubWQjdGVzdHVzaW5ncG9zdDIpIHwgKipQb3N0KiogL2FwaS92MC9kZWNvZGVycy9iaW5hcnkvdGVzdCB8IFRlc3QgYSBiaW5hcnkgZGVjb2RlciBmb3JtYXQgd2l0aCBhbiBlbmNvZGVkIHBheWxvYWQKKkRlY29kZXJzQ1NWQXBpKiB8IFsqKkFjdGl2YXRlVXNpbmdQVVQ5KipdKGRvY3MvRGVjb2RlcnNDU1ZBcGkubWQjYWN0aXZhdGV1c2luZ3B1dDkpIHwgKipQdXQqKiAvYXBpL3YwL2RlY29kZXJzL2Nzdi97ZGVjb2RlcklkfS9lbmFibGVkIHwgQWN0aXZhdGUgb3IgZGVhY3RpdmF0ZSBhIGRlY29kZXIKKkRlY29kZXJzQ1NWQXBpKiB8IFsqKkRlbGV0ZVVzaW5nREVMRVRFMTAqKl0oZG9jcy9EZWNvZGVyc0NTVkFwaS5tZCNkZWxldGV1c2luZ2RlbGV0ZTEwKSB8ICoqRGVsZXRlKiogL2FwaS92MC9kZWNvZGVycy9jc3Yve2RlY29kZXJJZH0gfCBEZWxldGUgYSBjc3YgZGVjb2RlcgoqRGVjb2RlcnNDU1ZBcGkqIHwgWyoqR2V0VXNpbmdHRVQxMSoqXShkb2NzL0RlY29kZXJzQ1NWQXBpLm1kI2dldHVzaW5nZ2V0MTEpIHwgKipHZXQqKiAvYXBpL3YwL2RlY29kZXJzL2Nzdi97ZGVjb2RlcklkfSB8IFJldHJpZXZlIGEgY3N2IGRlY29kZXIKKkRlY29kZXJzQ1NWQXBpKiB8IFsqKkxpc3RVc2luZ0dFVDEyKipdKGRvY3MvRGVjb2RlcnNDU1ZBcGkubWQjbGlzdHVzaW5nZ2V0MTIpIHwgKipHZXQqKiAvYXBpL3YwL2RlY29kZXJzL2NzdiB8IFJldHJpZXZlIHRoZSBsaXN0IG9mIGNzdiBkZWNvZGVycyBmaWx0ZXJlZCBieSB0YWdzCipEZWNvZGVyc0NTVkFwaSogfCBbKipQb3N0VXNpbmdQT1NUMTEqKl0oZG9jcy9EZWNvZGVyc0NTVkFwaS5tZCNwb3N0dXNpbmdwb3N0MTEpIHwgKipQb3N0KiogL2FwaS92MC9kZWNvZGVycy9jc3YgfCBDcmVhdGUgYSBjc3YgZGVjb2RlcgoqRGVjb2RlcnNDU1ZBcGkqIHwgWyoqUHV0VXNpbmdQVVQzKipdKGRvY3MvRGVjb2RlcnNDU1ZBcGkubWQjcHV0dXNpbmdwdXQzKSB8ICoqUHV0KiogL2FwaS92MC9kZWNvZGVycy9jc3Yve2RlY29kZXJJZH0gfCBVcGRhdGUgYSBjc3YgZGVjb2RlcgoqRGVjb2RlcnNDU1ZBcGkqIHwgWyoqVGVzdFVzaW5nUE9TVDMqKl0oZG9jcy9EZWNvZGVyc0NTVkFwaS5tZCN0ZXN0dXNpbmdwb3N0MykgfCAqKlBvc3QqKiAvYXBpL3YwL2RlY29kZXJzL2Nzdi90ZXN0IHwgVGVzdCBhIGNzdiBkZWNvZGVyIGZvcm1hdCB3aXRoIGFuIGVuY29kZWQgcGF5bG9hZAoqRGVjb2RlcnNQdWJsaWNBcGkqIHwgWyoqTGlzdFVzaW5nR0VUMjMqKl0oZG9jcy9EZWNvZGVyc1B1YmxpY0FwaS5tZCNsaXN0dXNpbmdnZXQyMykgfCAqKkdldCoqIC9hcGkvdjAvZGVjb2RlcnMvcHVibGljIHwgUmV0cmlldmUgdGhlIGxpc3Qgb2YgYWxsIHB1YmxpYyBkZWNvZGVycyAoYmluYXJ5LCBjc3YsIGpzKQoqRGVwcmVjYXRlZEJ1c01hbmFnZW1lbnRSb3V0ZXJBcGkqIHwgWyoqQWRkQmluZGluZ1VzaW5nUE9TVCoqXShkb2NzL0RlcHJlY2F0ZWRCdXNNYW5hZ2VtZW50Um91dGVyQXBpLm1kI2FkZGJpbmRpbmd1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9iaW5kaW5ncyB8IEFkZCBhIGJpbmRpbmcgZm9yIGEgRklGTyBxdWV1ZQoqRGVwcmVjYXRlZEJ1c01hbmFnZW1lbnRSb3V0ZXJBcGkqIHwgWyoqRGVsZXRlQmluZGluZ1VzaW5nREVMRVRFKipdKGRvY3MvRGVwcmVjYXRlZEJ1c01hbmFnZW1lbnRSb3V0ZXJBcGkubWQjZGVsZXRlYmluZGluZ3VzaW5nZGVsZXRlKSB8ICoqRGVsZXRlKiogL2FwaS92MC9iaW5kaW5ncy97cm91dGluZ0tleUZpbHRlcn0ve2ZpZm9OYW1lfSB8IERlbGV0ZSBhIGJpbmRpbmcKKkRlcHJlY2F0ZWRCdXNNYW5hZ2VtZW50Um91dGVyQXBpKiB8IFsqKkxpc3RCaW5kaW5nc1VzaW5nR0VUKipdKGRvY3MvRGVwcmVjYXRlZEJ1c01hbmFnZW1lbnRSb3V0ZXJBcGkubWQjbGlzdGJpbmRpbmdzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2JpbmRpbmdzIHwgTGlzdCByZWdpc3RlcmVkIGJpbmRpbmdzCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudENvbW1hbmRWMFVzZURldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxSW5zdGVhZEFwaSogfCBbKipBZGRDb21tYW5kVXNpbmdQT1NUKipdKGRvY3MvRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnRDb21tYW5kVjBVc2VEZXZpY2VNYW5hZ2VtZW50Q29tbWFuZHNWMUluc3RlYWRBcGkubWQjYWRkY29tbWFuZHVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL2Fzc2V0cy97YXNzZXROYW1lc3BhY2V9L3thc3NldElkfS9jb21tYW5kcyB8IFJlZ2lzdGVyIGEgbmV3IGNvbW1hbmQKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50Q29tbWFuZFYwVXNlRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFJbnN0ZWFkQXBpKiB8IFsqKkRlbGV0ZUNvbW1hbmRVc2luZ0RFTEVURSoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50Q29tbWFuZFYwVXNlRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFJbnN0ZWFkQXBpLm1kI2RlbGV0ZWNvbW1hbmR1c2luZ2RlbGV0ZSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvY29tbWFuZHMve2NvbW1hbmRJZH0gfCBEZWxldGUgYSBzcGVjaWZpYyBjb21tYW5kCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudENvbW1hbmRWMFVzZURldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxSW5zdGVhZEFwaSogfCBbKipHZXRBc3NldENvbW1hbmRzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudENvbW1hbmRWMFVzZURldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxSW5zdGVhZEFwaS5tZCNnZXRhc3NldGNvbW1hbmRzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2Fzc2V0cy97YXNzZXROYW1lc3BhY2V9L3thc3NldElkfS9jb21tYW5kcyB8IEdldCBhIGxpc3Qgb2YgY29tbWFuZHMgdGFyZ2V0aW5nIGEgc3BlY2lmaWMgYXNzZXQKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50Q29tbWFuZFYwVXNlRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFJbnN0ZWFkQXBpKiB8IFsqKkdldENvbW1hbmRTdGF0dXNVc2luZ0dFVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50Q29tbWFuZFYwVXNlRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFJbnN0ZWFkQXBpLm1kI2dldGNvbW1hbmRzdGF0dXN1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvY29tbWFuZHMve2NvbW1hbmRJZH0vc3RhdHVzIHwgR2V0IHRoZSBzdGF0dXMgb2YgYSBzcGVjaWZpYyBjb21tYW5kCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudENvbW1hbmRWMFVzZURldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxSW5zdGVhZEFwaSogfCBbKipHZXRDb21tYW5kVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudENvbW1hbmRWMFVzZURldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxSW5zdGVhZEFwaS5tZCNnZXRjb21tYW5kdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2NvbW1hbmRzL3tjb21tYW5kSWR9IHwgR2V0IGEgc3BlY2lmaWMgY29tbWFuZAoqRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnRDb21tYW5kVjBVc2VEZXZpY2VNYW5hZ2VtZW50Q29tbWFuZHNWMUluc3RlYWRBcGkqIHwgWyoqTGlzdENvbW1hbmRzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudENvbW1hbmRWMFVzZURldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxSW5zdGVhZEFwaS5tZCNsaXN0Y29tbWFuZHN1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvY29tbWFuZHMgfCBMaXN0IHJlZ2lzdGVyZWQgY29tbWFuZHMKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50Q29tbWFuZFYwVXNlRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFJbnN0ZWFkQXBpKiB8IFsqKlNldENvbW1hbmRTdGF0dXNVc2luZ1BVVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50Q29tbWFuZFYwVXNlRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFJbnN0ZWFkQXBpLm1kI3NldGNvbW1hbmRzdGF0dXN1c2luZ3B1dCkgfCAqKlB1dCoqIC9hcGkvdjAvY29tbWFuZHMve2NvbW1hbmRJZH0vc3RhdHVzIHwgVXBkYXRlIHRoZSBzdGF0dXMgb2Ygc3BlY2lmaWMgY29tbWFuZCAKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50RGV2aWNlc0Zpcm13YXJlc0FwaSogfCBbKipHZXREZXZpY2VGaXJtd2FyZVVzaW5nR0VUKipdKGRvY3MvRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnREZXZpY2VzRmlybXdhcmVzQXBpLm1kI2dldGRldmljZWZpcm13YXJldXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vZmlybXdhcmVzL3tmaXJtd2FyZUlkfSB8IEdldCBhIHNwZWNpZmljIGRldmljZSBmaXJtd2FyZSAodXNlIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9yZXNvdXJjZXMve3Jlc291cmNlSWR9IGluc3RlYWQpCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudERldmljZXNGaXJtd2FyZXNBcGkqIHwgWyoqR2V0RGV2aWNlUmVzb3VyY2VVcGRhdGVzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudERldmljZXNGaXJtd2FyZXNBcGkubWQjZ2V0ZGV2aWNlcmVzb3VyY2V1cGRhdGVzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vZmlybXdhcmVVcGRhdGVzIHwgR2V0IGEgbGlzdCBvZiBkZXZpY2UgZmlybXdhcmUgdXBkYXRlcyAodXNlIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9yZXNvdXJjZXMvdXBkYXRlcwoqRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnREZXZpY2VzRmlybXdhcmVzQXBpKiB8IFsqKkdldExhc3RSZXNvdXJjZVVwZGF0ZVVzaW5nR0VUKipdKGRvY3MvRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnREZXZpY2VzRmlybXdhcmVzQXBpLm1kI2dldGxhc3RyZXNvdXJjZXVwZGF0ZXVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L2Zpcm13YXJlcy97ZmlybXdhcmVJZH0vbGFzdFVwZGF0ZSB8IEdldCBpbmZvIGFib3V0IGxhc3QgdXBkYXRlIG9mIHRoaXMgZGV2aWNlIGZpcm13YXJlICh1c2UgL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L3Jlc291cmNlcy97cmVzb3VyY2VJZH0vdXBkYXRlcy9sYXRlc3QgaW5zdGVhZCkKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50RGV2aWNlc0Zpcm13YXJlc0FwaSogfCBbKipMaXN0RGV2aWNlUmVzb3VyY2VzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudERldmljZXNGaXJtd2FyZXNBcGkubWQjbGlzdGRldmljZXJlc291cmNlc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L2Zpcm13YXJlcyB8IEdldCBhIG1hcCBvZiBhbGwgZGV2aWNlIGZpcm13YXJlcyAodXNlIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9yZXNvdXJjZXMgaW5zdGVhZCkKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50RGV2aWNlc0Zpcm13YXJlc0FwaSogfCBbKipTZXREZXZpY2VSZXNvdXJjZVZlcnNpb25Vc2luZ1BPU1QqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudERldmljZXNGaXJtd2FyZXNBcGkubWQjc2V0ZGV2aWNlcmVzb3VyY2V2ZXJzaW9udXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9maXJtd2FyZXMve2Zpcm13YXJlSWR9IHwgU2V0IGRldmljZSBmaXJtd2FyZSB2ZXJzaW9ucyAodXNlIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9yZXNvdXJjZXMve3Jlc291cmNlSWR9IGluc3RlYWQpCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaSogfCBbKipDcmVhdGVBc3NldFVzaW5nUE9TVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjBVc2VEZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFJbnN0ZWFkQXBpLm1kI2NyZWF0ZWFzc2V0dXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvYXNzZXRzIHwgQ3JlYXRlIGEgZGV2aWNlCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaSogfCBbKipEZWxldGVEZXZpY2VTdGF0dXNVc2luZ0RFTEVURSoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjBVc2VEZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFJbnN0ZWFkQXBpLm1kI2RlbGV0ZWRldmljZXN0YXR1c3VzaW5nZGVsZXRlKSB8ICoqRGVsZXRlKiogL2FwaS92MC9hc3NldHMve2Fzc2V0TmFtZXNwYWNlfS97YXNzZXRJZH0gfCBEZWxldGUgYSBkZXZpY2UKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjBVc2VEZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFJbnN0ZWFkQXBpKiB8IFsqKkdldEFzc2V0U3RhdHVzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaS5tZCNnZXRhc3NldHN0YXR1c3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9hc3NldHMve2Fzc2V0TmFtZXNwYWNlfS97YXNzZXRJZH0gfCBHZXQgYSBkZXZpY2Ugc3RhdHVzCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaSogfCBbKipMaXN0QXNzZXROYW1lc3BhY2VzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaS5tZCNsaXN0YXNzZXRuYW1lc3BhY2VzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2ludmVudG9yeS9uYW1lc3BhY2VzIHwgRW51bWVyYXRlcyB0aGUgdXNlZCBhc3NldCBuYW1lc3BhY2VzCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaSogfCBbKipMaXN0QXNzZXRzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaS5tZCNsaXN0YXNzZXRzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2Fzc2V0cyB8IExpc3QgcmVnaXN0ZXJlZCBhc3NldHMgc3RhdHVzCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYwVXNlRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxSW5zdGVhZEFwaSogfCBbKipVcGRhdGVBc3NldFVzaW5nUFVUKipdKGRvY3MvRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnRJbnZlbnRvcnlWMFVzZURldmljZU1hbmFnZW1lbnRJbnZlbnRvcnlWMUluc3RlYWRBcGkubWQjdXBkYXRlYXNzZXR1c2luZ3B1dCkgfCAqKlB1dCoqIC9hcGkvdjAvYXNzZXRzL3thc3NldE5hbWVzcGFjZX0ve2Fzc2V0SWR9IHwgVXBkYXRlIGEgZGV2aWNlCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFBhcmFtZXRlclYwVXNlRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUluc3RlYWRBcGkqIHwgWyoqR2V0QXNzZXRQYXJhbVVzaW5nR0VUKipdKGRvY3MvRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnRQYXJhbWV0ZXJWMFVzZURldmljZU1hbmFnZW1lbnRDb25maWd1cmF0aW9uVjFJbnN0ZWFkQXBpLm1kI2dldGFzc2V0cGFyYW11c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvYXNzZXRzL3thc3NldE5hbWVzcGFjZX0ve2Fzc2V0SWR9L3BhcmFtcy97cGFyYW1LZXl9IHwgR2V0IGEgc3BlY2lmaWMgYXNzZXQgcGFyYW1ldGVyCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFBhcmFtZXRlclYwVXNlRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUluc3RlYWRBcGkqIHwgWyoqR2V0QXNzZXRQYXJhbXNVc2luZ0dFVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50UGFyYW1ldGVyVjBVc2VEZXZpY2VNYW5hZ2VtZW50Q29uZmlndXJhdGlvblYxSW5zdGVhZEFwaS5tZCNnZXRhc3NldHBhcmFtc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9hc3NldHMve2Fzc2V0TmFtZXNwYWNlfS97YXNzZXRJZH0vcGFyYW1zIHwgR2V0IGEgc3BlY2lmaWMgYXNzZXQgbGlzdCBvZiBwYXJhbWV0ZXJzCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFBhcmFtZXRlclYwVXNlRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUluc3RlYWRBcGkqIHwgWyoqU2V0QXNzZXRQYXJhbXNVc2luZ1BPU1QqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFBhcmFtZXRlclYwVXNlRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUluc3RlYWRBcGkubWQjc2V0YXNzZXRwYXJhbXN1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9hc3NldHMve2Fzc2V0TmFtZXNwYWNlfS97YXNzZXRJZH0vcGFyYW1zIHwgVXBkYXRlIGEgc3BlY2lmaWMgYXNzZXQgbGlzdCBvZiBwYXJhbWV0ZXJzCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFBhcmFtZXRlclYwVXNlRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUluc3RlYWRBcGkqIHwgWyoqU2V0RGV2aWNlUGFyYW1VcGRhdGVTdGF0dXNVc2luZ1BVVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50UGFyYW1ldGVyVjBVc2VEZXZpY2VNYW5hZ2VtZW50Q29uZmlndXJhdGlvblYxSW5zdGVhZEFwaS5tZCNzZXRkZXZpY2VwYXJhbXVwZGF0ZXN0YXR1c3VzaW5ncHV0KSB8ICoqUHV0KiogL2FwaS92MC9hc3NldHMve2Fzc2V0TmFtZXNwYWNlfS97YXNzZXRJZH0vcGFyYW1zL3twYXJhbUtleX0vc3RhdHVzIHwgVXBkYXRlIHRoZSBzdGF0dXMgb2YgYSBzcGVjaWZpYyBhc3NldCBwYXJhbWV0ZXIgdXBkYXRlCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFBhcmFtZXRlclYwVXNlRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUluc3RlYWRBcGkqIHwgWyoqU2V0RGV2aWNlUGFyYW1zVXBkYXRlU3RhdHVzVXNpbmdQVVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFBhcmFtZXRlclYwVXNlRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUluc3RlYWRBcGkubWQjc2V0ZGV2aWNlcGFyYW1zdXBkYXRlc3RhdHVzdXNpbmdwdXQpIHwgKipQdXQqKiAvYXBpL3YwL2Fzc2V0cy97YXNzZXROYW1lc3BhY2V9L3thc3NldElkfS9wYXJhbXMvc3RhdHVzIHwgVXBkYXRlIHRoZSBzdGF0dXMgb2YgYSBzcGVjaWZpYyBhc3NldCBwYXJhbWV0ZXJzIHVwZGF0ZQoqRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnRSZXNvdXJjZVYwVXNlRGV2aWNlTWFuYWdlbWVudFJlc291cmNlVjFJbnN0ZWFkQXBpKiB8IFsqKkNhbmNlbFJlc291cmNlVXBkYXRlVXNpbmdQT1NUKipdKGRvY3MvRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnRSZXNvdXJjZVYwVXNlRGV2aWNlTWFuYWdlbWVudFJlc291cmNlVjFJbnN0ZWFkQXBpLm1kI2NhbmNlbHJlc291cmNldXBkYXRldXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvcm0vYXNzZXQve2Fzc2V0SWROYW1lc3BhY2V9L3thc3NldElkfS9jYW5jZWxVcGRhdGUgfCBDYW5jZWwgYXNzZXQgcmVzb3VyY2UgdXBkYXRlCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFJlc291cmNlVjBVc2VEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VWMUluc3RlYWRBcGkqIHwgWyoqR2V0QWxsQXNzZXRSZXNvdXJjZXNVc2luZ0dFVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VWMFVzZURldmljZU1hbmFnZW1lbnRSZXNvdXJjZVYxSW5zdGVhZEFwaS5tZCNnZXRhbGxhc3NldHJlc291cmNlc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9ybS9hc3NldC97YXNzZXRJZE5hbWVzcGFjZX0ve2Fzc2V0SWR9IHwgTGlzdCB0aGUgYXNzZXQmIzM5O3MgcmVzb3VyY2VzICh1c2UgL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L3Jlc291cmNlcyBpbnN0ZWFkKQoqRGVwcmVjYXRlZERldmljZU1hbmFnZW1lbnRSZXNvdXJjZVYwVXNlRGV2aWNlTWFuYWdlbWVudFJlc291cmNlVjFJbnN0ZWFkQXBpKiB8IFsqKkdldExhc3RVcGRhdGVVc2luZ0dFVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VWMFVzZURldmljZU1hbmFnZW1lbnRSZXNvdXJjZVYxSW5zdGVhZEFwaS5tZCNnZXRsYXN0dXBkYXRldXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3JtL2Fzc2V0L3thc3NldElkTmFtZXNwYWNlfS97YXNzZXRJZH0vdXBkYXRlIHwgR2V0IHRoZSBhc3NldCYjMzk7cyByZXNvdXJjZXMgdXBkYXRlIHN0YXR1cyAodXNlIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9maXJtd2FyZXMve2Zpcm13YXJlSWR9L2xhc3RVcGRhdGUgaW5zdGVhZCkKKkRlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VWMFVzZURldmljZU1hbmFnZW1lbnRSZXNvdXJjZVYxSW5zdGVhZEFwaSogfCBbKipHZXRVcGRhdGVIaXN0b3J5VXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFJlc291cmNlVjBVc2VEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VWMUluc3RlYWRBcGkubWQjZ2V0dXBkYXRlaGlzdG9yeXVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9ybS9hc3NldC97YXNzZXRJZE5hbWVzcGFjZX0ve2Fzc2V0SWR9L3VwZGF0ZS9oaXN0b3J5IHwgR2V0IHRoZSBhc3NldCYjMzk7cyByZXNvdXJjZXMgdXBkYXRlIGhpc3RvcnkgKHVzZSAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vZmlybXdhcmVVcGRhdGVzIGluc3RlYWQpCipEZXByZWNhdGVkRGV2aWNlTWFuYWdlbWVudFJlc291cmNlVjBVc2VEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VWMUluc3RlYWRBcGkqIHwgWyoqU2V0QXNzZXRUYXJnZXRSZXNvdXJjZVZlcnNpb25Vc2luZ1BVVCoqXShkb2NzL0RlcHJlY2F0ZWREZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VWMFVzZURldmljZU1hbmFnZW1lbnRSZXNvdXJjZVYxSW5zdGVhZEFwaS5tZCNzZXRhc3NldHRhcmdldHJlc291cmNldmVyc2lvbnVzaW5ncHV0KSB8ICoqUHV0KiogL2FwaS92MC9ybS9hc3NldC97YXNzZXRJZE5hbWVzcGFjZX0ve2Fzc2V0SWR9L3Jlc291cmNlL3tyZXNvdXJjZUlkfS90YXJnZXR2ZXJzaW9uIHwgU2V0IGFzc2V0JiMzOTtzIHRhcmdldCByZXNvdXJjZSB2ZXJzaW9uICh1c2UgL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L3Jlc291cmNlcy97cmVzb3VyY2VJZH0gaW5zdGVhZCkKKkRlcHJlY2F0ZWRHcm91cE1hbmFnZW1lbnRWMFVzZURldmljZU1hbmFnZW1lbnRHcm91cHNWMUluc3RlYWRBcGkqIHwgWyoqQ3JlYXRlR3JvdXBVc2luZ1BPU1QqKl0oZG9jcy9EZXByZWNhdGVkR3JvdXBNYW5hZ2VtZW50VjBVc2VEZXZpY2VNYW5hZ2VtZW50R3JvdXBzVjFJbnN0ZWFkQXBpLm1kI2NyZWF0ZWdyb3VwdXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvZ3JvdXBzIHwgQ3JlYXRlIGEgZ3JvdXAKKkRlcHJlY2F0ZWRHcm91cE1hbmFnZW1lbnRWMFVzZURldmljZU1hbmFnZW1lbnRHcm91cHNWMUluc3RlYWRBcGkqIHwgWyoqRGVsZXRlR3JvdXBVc2luZ0RFTEVURSoqXShkb2NzL0RlcHJlY2F0ZWRHcm91cE1hbmFnZW1lbnRWMFVzZURldmljZU1hbmFnZW1lbnRHcm91cHNWMUluc3RlYWRBcGkubWQjZGVsZXRlZ3JvdXB1c2luZ2RlbGV0ZSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvZ3JvdXBzL3tncm91cElkfSB8IERlbGV0ZSBhIGdyb3VwCipEZXByZWNhdGVkR3JvdXBNYW5hZ2VtZW50VjBVc2VEZXZpY2VNYW5hZ2VtZW50R3JvdXBzVjFJbnN0ZWFkQXBpKiB8IFsqKkdldEdyb3VwVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkR3JvdXBNYW5hZ2VtZW50VjBVc2VEZXZpY2VNYW5hZ2VtZW50R3JvdXBzVjFJbnN0ZWFkQXBpLm1kI2dldGdyb3VwdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2dyb3Vwcy97Z3JvdXBJZH0gfCBHZXQgYSBncm91cAoqRGVwcmVjYXRlZEdyb3VwTWFuYWdlbWVudFYwVXNlRGV2aWNlTWFuYWdlbWVudEdyb3Vwc1YxSW5zdGVhZEFwaSogfCBbKipMaXN0R3JvdXBzVXNpbmdHRVQqKl0oZG9jcy9EZXByZWNhdGVkR3JvdXBNYW5hZ2VtZW50VjBVc2VEZXZpY2VNYW5hZ2VtZW50R3JvdXBzVjFJbnN0ZWFkQXBpLm1kI2xpc3Rncm91cHN1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvZ3JvdXBzIHwgTGlzdCByZWdpc3RlcmVkIGdyb3VwcwoqRGVwcmVjYXRlZEdyb3VwTWFuYWdlbWVudFYwVXNlRGV2aWNlTWFuYWdlbWVudEdyb3Vwc1YxSW5zdGVhZEFwaSogfCBbKipVcGRhdGVHcm91cFVzaW5nUFVUKipdKGRvY3MvRGVwcmVjYXRlZEdyb3VwTWFuYWdlbWVudFYwVXNlRGV2aWNlTWFuYWdlbWVudEdyb3Vwc1YxSW5zdGVhZEFwaS5tZCN1cGRhdGVncm91cHVzaW5ncHV0KSB8ICoqUHV0KiogL2FwaS92MC9ncm91cHMve2dyb3VwSWR9IHwgVXBkYXRlIGEgZ3JvdXAKKkRlcHJlY2F0ZWRSb3V0ZXJUb3BpY01hbmFnZW1lbnRBcGkqIHwgWyoqUHVibGlzaFVzaW5nUE9TVCoqXShkb2NzL0RlcHJlY2F0ZWRSb3V0ZXJUb3BpY01hbmFnZW1lbnRBcGkubWQjcHVibGlzaHVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL3RvcGljcy9yb3V0ZXIve3JvdXRpbmdLZXl9IHwgUHVibGlzaGluZyBhIG1lc3NhZ2UgaW50byBhIFJPVVRFUiB0b3BpYwoqRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckFwaSogfCBbKipTZW5kU01TVXNpbmdQT1NUKipdKGRvY3MvRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckFwaS5tZCNzZW5kc21zdXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvc21zLWNvbm5lY3Rvci9zbXMgfCBzZW5kIFNNUyBieSBTTVMgQ29ubmVjdG9yIGZvciBhIGxpc3Qgb2YgTVNJU0ROCipEZXByZWNhdGVkU01TQ29ubmVjdG9yQnVzaW5lc3NTZXR0aW5nc1VzZURldmljZU1hbmFnZW1lbnRDb25uZWN0b3JOb2Rlc1YxSW5zdGVhZEFwaSogfCBbKipDcmVhdGVCdXNpbmVzc1NldHRpbmdzVXNpbmdQT1NUKipdKGRvY3MvRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkubWQjY3JlYXRlYnVzaW5lc3NzZXR0aW5nc3VzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL3Ntcy1jb25uZWN0b3Ivc2V0dGluZ3MvYnVzaW5lc3MgfCBDcmVhdGUgYSBuZXcgYnVzaW5lc3Mgc2V0dGluZ3Mgb2YgU01TIENvbm5lY3RvciAodXNlIERldmljZSBtYW5hZ2VtZW50IC0gSW50ZXJmYWNlcyAtIFYxIGluc3RlYWQpCipEZXByZWNhdGVkU01TQ29ubmVjdG9yQnVzaW5lc3NTZXR0aW5nc1VzZURldmljZU1hbmFnZW1lbnRDb25uZWN0b3JOb2Rlc1YxSW5zdGVhZEFwaSogfCBbKipEZWxldGVCdXNpbmVzc1NldHRpbmdzQnlNc2lTRE5Vc2luZ0RFTEVURSoqXShkb2NzL0RlcHJlY2F0ZWRTTVNDb25uZWN0b3JCdXNpbmVzc1NldHRpbmdzVXNlRGV2aWNlTWFuYWdlbWVudENvbm5lY3Rvck5vZGVzVjFJbnN0ZWFkQXBpLm1kI2RlbGV0ZWJ1c2luZXNzc2V0dGluZ3NieW1zaXNkbnVzaW5nZGVsZXRlKSB8ICoqRGVsZXRlKiogL2FwaS92MC9zbXMtY29ubmVjdG9yL3NldHRpbmdzL2J1c2luZXNzL21zaXNkbiB8IERlbGV0ZSBtc2lzZG4gaW4gYnVzaW5lc3Mgc2V0dGluZ3Mgb2YgU01TIENvbm5lY3RvcgoqRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkqIHwgWyoqRGVsZXRlQnVzaW5lc3NTZXR0aW5nc0Zvck9uZU1zaVNETlVzaW5nREVMRVRFKipdKGRvY3MvRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkubWQjZGVsZXRlYnVzaW5lc3NzZXR0aW5nc2Zvcm9uZW1zaXNkbnVzaW5nZGVsZXRlKSB8ICoqRGVsZXRlKiogL2FwaS92MC9zbXMtY29ubmVjdG9yL3NldHRpbmdzL2J1c2luZXNzL3tzZXJ2ZXJQaG9uZU51bWJlcn0vbXNpc2RuL3ttc2lzZG5OdW1iZXJ9IHwgRGVsZXRlIG9uZSBtc2lzZG4gaW4gYnVzaW5lc3Mgc2V0dGluZ3Mgb2YgU01TIENvbm5lY3RvcgoqRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkqIHwgWyoqR2V0QnVzaW5lc3NTZXR0aW5nc1VzaW5nR0VUKipdKGRvY3MvRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkubWQjZ2V0YnVzaW5lc3NzZXR0aW5nc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9zbXMtY29ubmVjdG9yL3NldHRpbmdzL2J1c2luZXNzIHwgR2V0IGEgYnVzaW5lc3Mgc2V0dGluZ3Mgb2YgU01TIENvbm5lY3RvcgoqRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkqIHwgWyoqTGlzdE1zaXNkblVzaW5nR0VUKipdKGRvY3MvRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkubWQjbGlzdG1zaXNkbnVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9zbXMtY29ubmVjdG9yL3NldHRpbmdzL2J1c2luZXNzL21zaXNkbiB8IExpc3QgbXNpc2RuIG9mIGJ1c2luZXNzIHNldHRpbmdzIG9mIFNNUyBDb25uZWN0b3IKKkRlcHJlY2F0ZWRTTVNDb25uZWN0b3JCdXNpbmVzc1NldHRpbmdzVXNlRGV2aWNlTWFuYWdlbWVudENvbm5lY3Rvck5vZGVzVjFJbnN0ZWFkQXBpKiB8IFsqKkxpc3RTZXR0aW5nc1VzaW5nR0VUKipdKGRvY3MvRGVwcmVjYXRlZFNNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVc2VEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUluc3RlYWRBcGkubWQjbGlzdHNldHRpbmdzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3Ntcy1jb25uZWN0b3Ivc2V0dGluZ3MgfCBMaXN0IGFsbCB0aGUgYnVzaW5lc3Mgc2V0dGluZ3Mgb2YgdGhlIFNNU0Nvbm5lY3RvciBmb3IgYSB0ZW5hbnQKKkRlcHJlY2F0ZWRTTVNDb25uZWN0b3JCdXNpbmVzc1NldHRpbmdzVXNlRGV2aWNlTWFuYWdlbWVudENvbm5lY3Rvck5vZGVzVjFJbnN0ZWFkQXBpKiB8IFsqKlVwZGF0ZUJ1c2luZXNzU2V0dGluZ3NVc2luZ1BPU1QqKl0oZG9jcy9EZXByZWNhdGVkU01TQ29ubmVjdG9yQnVzaW5lc3NTZXR0aW5nc1VzZURldmljZU1hbmFnZW1lbnRDb25uZWN0b3JOb2Rlc1YxSW5zdGVhZEFwaS5tZCN1cGRhdGVidXNpbmVzc3NldHRpbmdzdXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvc21zLWNvbm5lY3Rvci9zZXR0aW5ncy9idXNpbmVzcy97c2VydmVyUGhvbmVOdW1iZXJ9IHwgVXBkYXRlIGJ1c2luZXNzIHNldHRpbmdzIG9mIHRoZSBTTVNDb25uZWN0b3IKKkRlcHJlY2F0ZWRTdGF0aXN0aWNzVXNlQWNjb3VudGluZ1YxQWNjb3VudGluZ0luc3RlYWRBcGkqIHwgWyoqR2V0VGVuYW50U3RhdGlzdGljc1VzaW5nR0VUMyoqXShkb2NzL0RlcHJlY2F0ZWRTdGF0aXN0aWNzVXNlQWNjb3VudGluZ1YxQWNjb3VudGluZ0luc3RlYWRBcGkubWQjZ2V0dGVuYW50c3RhdGlzdGljc3VzaW5nZ2V0MykgfCAqKkdldCoqIC9hcGkvdjAvc3RhdGlzdGljcy90ZW5hbnQve3RlbmFudElkfSB8IEdldCB0ZW5hbnQgc3RhdGlzdGljcyBmb3IgYSBzcGVjaWZpYyB0ZW5hbnQgYW5kIGEgcmFuZ2Ugb2YgZGF0ZXMKKkRlcHJlY2F0ZWRUcmlnZ2Vyc0FuZEFjdGlvbnNBcGkqIHwgWyoqQ3JlYXRlVXNpbmdQT1NUMSoqXShkb2NzL0RlcHJlY2F0ZWRUcmlnZ2Vyc0FuZEFjdGlvbnNBcGkubWQjY3JlYXRldXNpbmdwb3N0MSkgfCAqKlBvc3QqKiAvYXBpL3YwL2V2ZW50MmFjdGlvbi9hY3Rpb25Qb2xpY2llcyB8IENyZWF0ZSBhbiBBY3Rpb25Qb2xpY3kKKkRlcHJlY2F0ZWRUcmlnZ2Vyc0FuZEFjdGlvbnNBcGkqIHwgWyoqRGVsZXRlVXNpbmdERUxFVEUxMioqXShkb2NzL0RlcHJlY2F0ZWRUcmlnZ2Vyc0FuZEFjdGlvbnNBcGkubWQjZGVsZXRldXNpbmdkZWxldGUxMikgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvZXZlbnQyYWN0aW9uL2FjdGlvblBvbGljaWVzL3twb2xpY3lJZH0gfCBEZWxldGUgYW4gQWN0aW9uUG9saWN5CipEZXByZWNhdGVkVHJpZ2dlcnNBbmRBY3Rpb25zQXBpKiB8IFsqKkxpc3RVc2luZ0dFVDE0KipdKGRvY3MvRGVwcmVjYXRlZFRyaWdnZXJzQW5kQWN0aW9uc0FwaS5tZCNsaXN0dXNpbmdnZXQxNCkgfCAqKkdldCoqIC9hcGkvdjAvZXZlbnQyYWN0aW9uL2FjdGlvblBvbGljaWVzIHwgTGlzdCBBY3Rpb25Qb2xpY2llcwoqRGVwcmVjYXRlZFRyaWdnZXJzQW5kQWN0aW9uc0FwaSogfCBbKipSZXRyaWV2ZVVzaW5nR0VUMSoqXShkb2NzL0RlcHJlY2F0ZWRUcmlnZ2Vyc0FuZEFjdGlvbnNBcGkubWQjcmV0cmlldmV1c2luZ2dldDEpIHwgKipHZXQqKiAvYXBpL3YwL2V2ZW50MmFjdGlvbi9hY3Rpb25Qb2xpY2llcy97cG9saWN5SWR9IHwgUmV0cmlldmUgYW4gQWN0aW9uUG9saWN5CipEZXByZWNhdGVkVHJpZ2dlcnNBbmRBY3Rpb25zQXBpKiB8IFsqKlVwc2VydFVzaW5nUFVUKipdKGRvY3MvRGVwcmVjYXRlZFRyaWdnZXJzQW5kQWN0aW9uc0FwaS5tZCN1cHNlcnR1c2luZ3B1dCkgfCAqKlB1dCoqIC9hcGkvdjAvZXZlbnQyYWN0aW9uL2FjdGlvblBvbGljaWVzL3twb2xpY3lJZH0gfCBDcmVhdGUgb3IgdXBkYXRlIGFuIEFjdGlvblBvbGljeQoqRGVwcmVjYXRlZFRyaWdnZXJzQW5kQWN0aW9uc1Rlc3RBcGkqIHwgWyoqVGVzdEh0dHBQdXNoVXNpbmdQT1NUKipdKGRvY3MvRGVwcmVjYXRlZFRyaWdnZXJzQW5kQWN0aW9uc1Rlc3RBcGkubWQjdGVzdGh0dHBwdXNodXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvZXZlbnQyYWN0aW9uL3Rlc3QvaHR0cC1wdXNoIHwgUG9zdCBhbiBodHRwIHJlcXVlc3QgZm9yIHRlc3RpbmcgYSB3ZWJob29rCipEZXZpY2VNYW5hZ2VtZW50Q29tbWFuZHNWMUFwaSogfCBbKipBZGRDb21tYW5kVXNpbmdQT1NUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxQXBpLm1kI2FkZGNvbW1hbmR1c2luZ3Bvc3QxKSB8ICoqUG9zdCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9jb21tYW5kcyB8IFJlZ2lzdGVyIGEgbmV3IGNvbW1hbmQKKkRldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxQXBpKiB8IFsqKkRlbGV0ZUNvbW1hbmRVc2luZ0RFTEVURTEqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Q29tbWFuZHNWMUFwaS5tZCNkZWxldGVjb21tYW5kdXNpbmdkZWxldGUxKSB8ICoqRGVsZXRlKiogL2FwaS92MS9kZXZpY2VNZ3QvY29tbWFuZHMve2NvbW1hbmRJZH0gfCBEZWxldGUgYSBzcGVjaWZpYyBjb21tYW5kCipEZXZpY2VNYW5hZ2VtZW50Q29tbWFuZHNWMUFwaSogfCBbKipHZXRBc3NldENvbW1hbmRzVXNpbmdHRVQxKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFBcGkubWQjZ2V0YXNzZXRjb21tYW5kc3VzaW5nZ2V0MSkgfCAqKkdldCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9jb21tYW5kcyB8IExpc3QgY29tbWFuZHMgdGFyZ2V0aW5nIGEgc3BlY2lmaWMgZGV2aWNlCipEZXZpY2VNYW5hZ2VtZW50Q29tbWFuZHNWMUFwaSogfCBbKipHZXRDb21tYW5kU3RhdHVzVXNpbmdHRVQxKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFBcGkubWQjZ2V0Y29tbWFuZHN0YXR1c3VzaW5nZ2V0MSkgfCAqKkdldCoqIC9hcGkvdjEvZGV2aWNlTWd0L2NvbW1hbmRzL3tjb21tYW5kSWR9L3N0YXR1cyB8IEdldCB0aGUgc3RhdHVzIG9mIGEgc3BlY2lmaWMgY29tbWFuZAoqRGV2aWNlTWFuYWdlbWVudENvbW1hbmRzVjFBcGkqIHwgWyoqR2V0Q29tbWFuZFVzaW5nR0VUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxQXBpLm1kI2dldGNvbW1hbmR1c2luZ2dldDEpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9jb21tYW5kcy97Y29tbWFuZElkfSB8IEdldCBhIHNwZWNpZmljIGNvbW1hbmQKKkRldmljZU1hbmFnZW1lbnRDb21tYW5kc1YxQXBpKiB8IFsqKlNldENvbW1hbmRTdGF0dXNVc2luZ1BVVDEqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Q29tbWFuZHNWMUFwaS5tZCNzZXRjb21tYW5kc3RhdHVzdXNpbmdwdXQxKSB8ICoqUHV0KiogL2FwaS92MS9kZXZpY2VNZ3QvY29tbWFuZHMve2NvbW1hbmRJZH0vc3RhdHVzIHwgVXBkYXRlIHRoZSBzdGF0dXMgb2Ygc3BlY2lmaWMgY29tbWFuZCAKKkRldmljZU1hbmFnZW1lbnRDb25maWd1cmF0aW9uVjFBcGkqIHwgWyoqR2V0RGV2aWNlQ29uZmlnUGFyYW1ldGVyVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Q29uZmlndXJhdGlvblYxQXBpLm1kI2dldGRldmljZWNvbmZpZ3BhcmFtZXRlcnVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L2NvbmZpZy9wYXJhbWV0ZXJzL3twYXJhbUtleX0gfCBHZXQgc3RhdGUgb2YgYSBzcGVjaWZpYyBkZXZpY2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIKKkRldmljZU1hbmFnZW1lbnRDb25maWd1cmF0aW9uVjFBcGkqIHwgWyoqR2V0RGV2aWNlQ29uZmlnUGFyYW1ldGVyc1VzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUFwaS5tZCNnZXRkZXZpY2Vjb25maWdwYXJhbWV0ZXJzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vY29uZmlnL3BhcmFtZXRlcnMgfCBHZXQgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZGV2aWNlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycwoqRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUFwaSogfCBbKipHZXREZXZpY2VDb25maWd1cmF0aW9uVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Q29uZmlndXJhdGlvblYxQXBpLm1kI2dldGRldmljZWNvbmZpZ3VyYXRpb251c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9jb25maWcgfCBHZXQgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZGV2aWNlIGNvbmZpZ3VyYXRpb24KKkRldmljZU1hbmFnZW1lbnRDb25maWd1cmF0aW9uVjFBcGkqIHwgWyoqU2V0RGV2aWNlUGFyYW1VcGRhdGVTdGF0dXNVc2luZ1BVVDEqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Q29uZmlndXJhdGlvblYxQXBpLm1kI3NldGRldmljZXBhcmFtdXBkYXRlc3RhdHVzdXNpbmdwdXQxKSB8ICoqUHV0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L2NvbmZpZy9wYXJhbWV0ZXJzL3twYXJhbUtleX0vc3RhdHVzIHwgVXBkYXRlIHRoZSBzdGF0dXMgb2YgYSBzcGVjaWZpYyBkZXZpY2UgcGFyYW1ldGVyCipEZXZpY2VNYW5hZ2VtZW50Q29uZmlndXJhdGlvblYxQXBpKiB8IFsqKlNldE11bHRpcGxlRGV2aWNlQ29uZmlnUGFyYW1zVXNpbmdQT1NUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb25WMUFwaS5tZCNzZXRtdWx0aXBsZWRldmljZWNvbmZpZ3BhcmFtc3VzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vY29uZmlnIHwgU2V0IHJlcXVlc3RlZCB2YWx1ZXMgZm9yIGEgc2V0IG9mIGRldmljZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMKKkRldmljZU1hbmFnZW1lbnRDb25uZWN0b3JOb2Rlc1YxQXBpKiB8IFsqKkRlbGV0ZU5vZGVVc2luZ0RFTEVURSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRDb25uZWN0b3JOb2Rlc1YxQXBpLm1kI2RlbGV0ZW5vZGV1c2luZ2RlbGV0ZSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjEvZGV2aWNlTWd0L2Nvbm5lY3RvcnMve2Nvbm5lY3Rvcn0vbm9kZXMve25vZGVJZH0gfCBEZWxldGUgYSBjb25uZWN0b3Igbm9kZQoqRGV2aWNlTWFuYWdlbWVudENvbm5lY3Rvck5vZGVzVjFBcGkqIHwgWyoqR2V0Tm9kZVVzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudENvbm5lY3Rvck5vZGVzVjFBcGkubWQjZ2V0bm9kZXVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy97Y29ubmVjdG9yfS9ub2Rlcy97bm9kZUlkfSB8IEdldCBkZXRhaWxzIG9mIGNvbm5lY3RvciBub2RlCipEZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUFwaSogfCBbKipMaXN0Tm9kZXNVc2luZ0dFVCoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRDb25uZWN0b3JOb2Rlc1YxQXBpLm1kI2xpc3Rub2Rlc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy97Y29ubmVjdG9yfS9ub2RlcyB8IExpc3QgYWxsIGNvbm5lY3RvciBub2RlcwoqRGV2aWNlTWFuYWdlbWVudENvbm5lY3Rvck5vZGVzVjFBcGkqIHwgWyoqVXBkYXRlTm9kZVVzaW5nUEFUQ0gqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Q29ubmVjdG9yTm9kZXNWMUFwaS5tZCN1cGRhdGVub2RldXNpbmdwYXRjaCkgfCAqKlBhdGNoKiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy97Y29ubmVjdG9yfS9ub2Rlcy97bm9kZUlkfSB8IFVwZGF0ZSBhIGNvbm5lY3RvciBub2RlCipEZXZpY2VNYW5hZ2VtZW50Rm9yQ09BUExXTTJNQmV0YUFwaSogfCBbKipHZXREZXZpY2VVc2luZ0dFVDQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yQ09BUExXTTJNQmV0YUFwaS5tZCNnZXRkZXZpY2V1c2luZ2dldDQpIHwgKipHZXQqKiAvYXBpL3YwL3ZlbmRvcnMvbHdtMm0vaWRlbnRpdHkve2VwfSB8IEZpbmQgYSBkZXZpY2UKKkRldmljZU1hbmFnZW1lbnRGb3JDT0FQTFdNMk1CZXRhQXBpKiB8IFsqKkxpc3REZXZpY2VzVXNpbmdHRVQ0KipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckNPQVBMV00yTUJldGFBcGkubWQjbGlzdGRldmljZXN1c2luZ2dldDQpIHwgKipHZXQqKiAvYXBpL3YwL3ZlbmRvcnMvbHdtMm0vaWRlbnRpdGllcyB8IExpc3QgbHdtMm0gZGV2aWNlcwoqRGV2aWNlTWFuYWdlbWVudEZvckNPQVBMV00yTUJldGFBcGkqIHwgWyoqUmVnaXN0ZXJEZXZpY2VVc2luZ1BPU1QxKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckNPQVBMV00yTUJldGFBcGkubWQjcmVnaXN0ZXJkZXZpY2V1c2luZ3Bvc3QxKSB8ICoqUG9zdCoqIC9hcGkvdjAvdmVuZG9ycy9sd20ybS9pZGVudGl0aWVzIHwgUmVnaXN0ZXIgTFdNMk0vRFRMUyBpZGVudGl0eQoqRGV2aWNlTWFuYWdlbWVudEZvckNPQVBMV00yTUJldGFBcGkqIHwgWyoqVW5yZWdpc3RlckRldmljZVVzaW5nREVMRVRFMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRGb3JDT0FQTFdNMk1CZXRhQXBpLm1kI3VucmVnaXN0ZXJkZXZpY2V1c2luZ2RlbGV0ZTEpIHwgKipEZWxldGUqKiAvYXBpL3YwL3ZlbmRvcnMvbHdtMm0vaWRlbnRpdHkve2VwfSB8IFVucmVnaXN0ZXIgYSBkZXZpY2UKKkRldmljZU1hbmFnZW1lbnRGb3JDT0FQTFdNMk1CZXRhQXBpKiB8IFsqKlVwZGF0ZURldmljZVVzaW5nUFVUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckNPQVBMV00yTUJldGFBcGkubWQjdXBkYXRlZGV2aWNldXNpbmdwdXQpIHwgKipQdXQqKiAvYXBpL3YwL3ZlbmRvcnMvbHdtMm0vaWRlbnRpdHkve2VwfSB8IFVwZGF0ZSBhIGRldmljZQoqRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkqIHwgWyoqQ291bnREZXZpY2VzVXNpbmdHRVQyKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkubWQjY291bnRkZXZpY2VzdXNpbmdnZXQyKSB8ICoqR2V0KiogL2FwaS92MC92ZW5kb3JzL2xvcmEvZGV2aWNlcy9jb3VudCB8IERldmljZSBjb3VudHMKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkdldERldmljZVByb2ZpbGVzVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaS5tZCNnZXRkZXZpY2Vwcm9maWxlc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy9sb3JhL3Byb2ZpbGVzIHwgR2V0IExvUmEgZGV2aWNlIHByb2ZpbGVzCipEZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaSogfCBbKipHZXREZXZpY2VQcm9maWxlc1VzaW5nR0VUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpLm1kI2dldGRldmljZXByb2ZpbGVzdXNpbmdnZXQxKSB8ICoqR2V0KiogL2FwaS92MC92ZW5kb3JzL2xvcmEvcHJvZmlsZXMgfCBHZXQgTG9SYSBkZXZpY2UgcHJvZmlsZXMgKHVzZSAvYXBpL3YxL2RldmljZU1ndC9jb25uZWN0b3JzL2xvcmEvcHJvZmlsZXMgaW5zdGVhZCkKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkdldERldmljZVVzaW5nR0VUMyoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpLm1kI2dldGRldmljZXVzaW5nZ2V0MykgfCAqKkdldCoqIC9hcGkvdjAvdmVuZG9ycy9sb3JhL2RldmljZXMve2RldkVVSX0gfCBHZXQgYSBkZXZpY2UgKHVzZSBEZXZpY2UgbWFuYWdlbWVudCAtIENvbm5lY3RvciBub2RlcyAtIFYxIGluc3RlYWQpCipEZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaSogfCBbKipHZXRHYXRld2F5VXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaS5tZCNnZXRnYXRld2F5dXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9jb25uZWN0b3JzL2xvcmEvZ2F0ZXdheXMve2lkfSB8IEdldCBhIGdhdGV3YXkKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkdldE1lc3NhZ2VDb3VudFVzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkubWQjZ2V0bWVzc2FnZWNvdW50dXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3ZlbmRvcnMvbG9yYS9kYXRhL2NvdW50IHwgTGlzdCBvZiBtZXNzYWdlIGNvdW50cyBncm91cCBieSBwZXJpb2QKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkxpc3RDb21tYW5kVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaS5tZCNsaXN0Y29tbWFuZHVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy9sb3JhL25vZGVzL3tkZXZFVUl9L2Rvd25saW5rcyB8IExpc3QgY29tbWFuZHMKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkxpc3RDb21tYW5kVXNpbmdHRVQxKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkubWQjbGlzdGNvbW1hbmR1c2luZ2dldDEpIHwgKipHZXQqKiAvYXBpL3YwL3ZlbmRvcnMvbG9yYS9kZXZpY2VzL3tkZXZFVUl9L2NvbW1hbmRzIHwgTGlzdCBjb21tYW5kcyAodXNlIC9hcGkvdjEvZGV2aWNlTWd0L2Nvbm5lY3RvcnMvbG9yYS9ub2Rlcy97ZGV2RVVJfS9kb3dubGlua3MgaW5zdGVhZCkKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkxpc3RDb25uZWN0aXZpdHlQbGFuVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaS5tZCNsaXN0Y29ubmVjdGl2aXR5cGxhbnVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy9sb3JhL2Nvbm5lY3Rpdml0eSB8IExpc3QgY29ubmVjdGl2aXR5IHBsYW4KKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkxpc3RDb25uZWN0aXZpdHlQbGFuc1VzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkubWQjbGlzdGNvbm5lY3Rpdml0eXBsYW5zdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9jb25uZWN0b3JzL2xvcmEvY29ubmVjdGl2aXRpZXMgfCBMaXN0IGNvbm5lY3Rpdml0eSBwbGFucwoqRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkqIHwgWyoqTGlzdERldmljZXNVc2luZ0dFVDMqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaS5tZCNsaXN0ZGV2aWNlc3VzaW5nZ2V0MykgfCAqKkdldCoqIC9hcGkvdjAvdmVuZG9ycy9sb3JhL2RldmljZXMgfCBMaXN0IExvUmEgZGV2aWNlcyAodXNlIERldmljZSBtYW5hZ2VtZW50IC0gQ29ubmVjdG9yIG5vZGVzIC0gVjEgaW5zdGVhZCkKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKkxpc3RHYXRld2F5c1VzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkubWQjbGlzdGdhdGV3YXlzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9jb25uZWN0b3JzL2xvcmEvZ2F0ZXdheXMgfCBMaXN0IGdhdGV3YXlzCipEZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaSogfCBbKipSZWdpc3RlckNvbW1hbmRVc2luZ1BPU1QqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaS5tZCNyZWdpc3RlcmNvbW1hbmR1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy9sb3JhL25vZGVzL3tkZXZFVUl9L2Rvd25saW5rcyB8IFJlZ2lzdGVyIGEgY29tbWFuZAoqRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkqIHwgWyoqUmVnaXN0ZXJDb21tYW5kVXNpbmdQT1NUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpLm1kI3JlZ2lzdGVyY29tbWFuZHVzaW5ncG9zdDEpIHwgKipQb3N0KiogL2FwaS92MC92ZW5kb3JzL2xvcmEvZGV2aWNlcy97ZGV2RVVJfS9jb21tYW5kcyB8IFJlZ2lzdGVyIGEgY29tbWFuZCAodXNlIC9hcGkvdjEvZGV2aWNlTWd0L2Nvbm5lY3RvcnMvbG9yYS9ub2Rlcy97ZGV2RVVJfS9kb3dubGlua3MgaW5zdGVhZCkKKkRldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpKiB8IFsqKlJlZ2lzdGVyRGV2aWNlVXNpbmdQT1NUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkubWQjcmVnaXN0ZXJkZXZpY2V1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC92ZW5kb3JzL2xvcmEvZGV2aWNlcyB8IFJlZ2lzdGVyIGEgTG9SYSBkZXZpY2UgKHVzZSBEZXZpY2UgbWFuYWdlbWVudCAtIEludGVyZmFjZXMgLSBWMSBpbnN0ZWFkKQoqRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkqIHwgWyoqVW5yZWdpc3RlckRldmljZVVzaW5nREVMRVRFKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkubWQjdW5yZWdpc3RlcmRldmljZXVzaW5nZGVsZXRlKSB8ICoqRGVsZXRlKiogL2FwaS92MC92ZW5kb3JzL2xvcmEvZGV2aWNlcy97ZGV2RVVJfSB8IFVucmVnaXN0ZXIgYSBkZXZpY2UgKHVzZSBEZXZpY2UgbWFuYWdlbWVudCAtIENvbm5lY3RvciBub2RlcyAtIFYxIGluc3RlYWQpCipEZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaSogfCBbKipVcGRhdGVEZXZpY2VVc2luZ1BBVENIMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRGb3JMb1JhQXBpLm1kI3VwZGF0ZWRldmljZXVzaW5ncGF0Y2gxKSB8ICoqUGF0Y2gqKiAvYXBpL3YwL3ZlbmRvcnMvbG9yYS9kZXZpY2VzL3tkZXZFVUl9IHwgVXBkYXRlIGEgZGV2aWNlICh1c2UgRGV2aWNlIG1hbmFnZW1lbnQgLSBDb25uZWN0b3Igbm9kZXMgLSBWMSBpbnN0ZWFkKQoqRGV2aWNlTWFuYWdlbWVudEZvckxvUmFBcGkqIHwgWyoqVXBkYXRlR2F0ZXdheVVzaW5nUEFUQ0gqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50Rm9yTG9SYUFwaS5tZCN1cGRhdGVnYXRld2F5dXNpbmdwYXRjaCkgfCAqKlBhdGNoKiogL2FwaS92MS9kZXZpY2VNZ3QvY29ubmVjdG9ycy9sb3JhL2dhdGV3YXlzL3tpZH0gfCBVcGRhdGUgYSBnYXRld2F5LgoqRGV2aWNlTWFuYWdlbWVudEdyb3Vwc1YxQXBpKiB8IFsqKkNyZWF0ZUdyb3VwVXNpbmdQT1NUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRHcm91cHNWMUFwaS5tZCNjcmVhdGVncm91cHVzaW5ncG9zdDEpIHwgKipQb3N0KiogL2FwaS92MS9kZXZpY2VNZ3QvZ3JvdXBzIHwgQ3JlYXRlIGEgZ3JvdXAKKkRldmljZU1hbmFnZW1lbnRHcm91cHNWMUFwaSogfCBbKipEZWxldGVHcm91cFVzaW5nREVMRVRFMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRHcm91cHNWMUFwaS5tZCNkZWxldGVncm91cHVzaW5nZGVsZXRlMSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjEvZGV2aWNlTWd0L2dyb3Vwcy97aWR9IHwgRGVsZXRlIGEgZ3JvdXAKKkRldmljZU1hbmFnZW1lbnRHcm91cHNWMUFwaSogfCBbKipHZXRHcm91cFVzaW5nR0VUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRHcm91cHNWMUFwaS5tZCNnZXRncm91cHVzaW5nZ2V0MSkgfCAqKkdldCoqIC9hcGkvdjEvZGV2aWNlTWd0L2dyb3Vwcy97aWR9IHwgR2V0IGEgZ3JvdXAKKkRldmljZU1hbmFnZW1lbnRHcm91cHNWMUFwaSogfCBbKipMaXN0R3JvdXBzVXNpbmdHRVQxKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEdyb3Vwc1YxQXBpLm1kI2xpc3Rncm91cHN1c2luZ2dldDEpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9ncm91cHMgfCBMaXN0IHJlZ2lzdGVyZWQgZ3JvdXBzCipEZXZpY2VNYW5hZ2VtZW50R3JvdXBzVjFBcGkqIHwgWyoqVXBkYXRlR3JvdXBVc2luZ1BVVDEqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50R3JvdXBzVjFBcGkubWQjdXBkYXRlZ3JvdXB1c2luZ3B1dDEpIHwgKipQdXQqKiAvYXBpL3YxL2RldmljZU1ndC9ncm91cHMve2lkfSB8IFVwZGF0ZSBhIGdyb3VwCipEZXZpY2VNYW5hZ2VtZW50SW50ZXJmYWNlc1YxQXBpKiB8IFsqKkFkZEludGVyZmFjZVRvRGV2aWNlVXNpbmdQT1NUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEludGVyZmFjZXNWMUFwaS5tZCNhZGRpbnRlcmZhY2V0b2RldmljZXVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vaW50ZXJmYWNlcyB8IEFkZCBhbiBpbnRlcmZhY2UgdG8gYSByZWdpc3RlcmVkIGRldmljZQoqRGV2aWNlTWFuYWdlbWVudEludGVyZmFjZXNWMUFwaSogfCBbKipEZWxldGVJbnRlcmZhY2VVc2luZ0RFTEVURSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRJbnRlcmZhY2VzVjFBcGkubWQjZGVsZXRlaW50ZXJmYWNldXNpbmdkZWxldGUpIHwgKipEZWxldGUqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vaW50ZXJmYWNlcy97aW50ZXJmYWNlSWR9IHwgRGVsZXRlIGFuIGludGVyZmFjZQoqRGV2aWNlTWFuYWdlbWVudEludGVyZmFjZXNWMUFwaSogfCBbKipHZXRJbnRlcmZhY2VGb3JBRGV2aWNlVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50SW50ZXJmYWNlc1YxQXBpLm1kI2dldGludGVyZmFjZWZvcmFkZXZpY2V1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9pbnRlcmZhY2VzL3tpbnRlcmZhY2VJZH0gfCBHZXQgYSBzcGVjaWZpYyBpbnRlcmZhY2UgZm9yIGEgcmVnaXN0ZXJlZCBkZXZpY2UKKkRldmljZU1hbmFnZW1lbnRJbnRlcmZhY2VzVjFBcGkqIHwgWyoqTGlzdEludGVyZmFjZXNGb3JBRGV2aWNlVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50SW50ZXJmYWNlc1YxQXBpLm1kI2xpc3RpbnRlcmZhY2VzZm9yYWRldmljZXVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L2ludGVyZmFjZXMgfCBHZXQgdGhlIGludGVyZmFjZSBsaXN0IGZvciBhIHJlZ2lzdGVyZWQgZGV2aWNlCipEZXZpY2VNYW5hZ2VtZW50SW50ZXJmYWNlc1YxQXBpKiB8IFsqKlVwZGF0ZUludGVyZmFjZVVzaW5nUEFUQ0gqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50SW50ZXJmYWNlc1YxQXBpLm1kI3VwZGF0ZWludGVyZmFjZXVzaW5ncGF0Y2gpIHwgKipQYXRjaCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9pbnRlcmZhY2VzL3tpbnRlcmZhY2VJZH0gfCBVcGRhdGUgYW4gaW50ZXJmYWNlCipEZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFBcGkqIHwgWyoqQ3JlYXRlRGV2aWNlVXNpbmdQT1NUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxQXBpLm1kI2NyZWF0ZWRldmljZXVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzIHwgQ3JlYXRlIGEgZGV2aWNlCipEZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFBcGkqIHwgWyoqRGVsZXRlRGV2aWNlVXNpbmdERUxFVEUqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFBcGkubWQjZGVsZXRlZGV2aWNldXNpbmdkZWxldGUpIHwgKipEZWxldGUqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0gfCBEZWxldGUgYSBkZXZpY2UKKkRldmljZU1hbmFnZW1lbnRJbnZlbnRvcnlWMUFwaSogfCBbKipHZXREZXZpY2VTdHJlYW1zVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFBcGkubWQjZ2V0ZGV2aWNlc3RyZWFtc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L2RhdGEvc3RyZWFtcyB8IEdldCBhIGRldmljZSYjMzk7cyBzdHJlYW1JZHMKKkRldmljZU1hbmFnZW1lbnRJbnZlbnRvcnlWMUFwaSogfCBbKipHZXREZXZpY2VVc2luZ0dFVDIqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFBcGkubWQjZ2V0ZGV2aWNldXNpbmdnZXQyKSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9IHwgR2V0IGEgZGV2aWNlCipEZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFBcGkqIHwgWyoqTGlzdERldmljZXNVc2luZ0dFVDIqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50SW52ZW50b3J5VjFBcGkubWQjbGlzdGRldmljZXN1c2luZ2dldDIpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzIHwgTGlzdCByZWdpc3RlcmVkIGRldmljZXMKKkRldmljZU1hbmFnZW1lbnRJbnZlbnRvcnlWMUFwaSogfCBbKipVcGRhdGVEZXZpY2VVc2luZ1BBVENIKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudEludmVudG9yeVYxQXBpLm1kI3VwZGF0ZWRldmljZXVzaW5ncGF0Y2gpIHwgKipQYXRjaCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfSB8IFVwZGF0ZSBhIGRldmljZQoqRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkqIHwgWyoqQWRkUmVzb3VyY2VVc2luZ1BPU1QqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaS5tZCNhZGRyZXNvdXJjZXVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL3JtIHwgQWRkIGEgcmVzb3VyY2UgaW4gUmVzb3VyY2UgTWFuYWdlcgoqRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkqIHwgWyoqQWRkUmVzb3VyY2VWZXJzaW9uVXNpbmdQT1NUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkubWQjYWRkcmVzb3VyY2V2ZXJzaW9udXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvcm0ve3Jlc291cmNlSWR9L3ZlcnNpb24gfCBBZGQgYSBuZXcgdmVyc2lvbiB0byBhIHJlc291cmNlCipEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaSogfCBbKipEZWxldGVSZXNvdXJjZVVzaW5nREVMRVRFKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkubWQjZGVsZXRlcmVzb3VyY2V1c2luZ2RlbGV0ZSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvcm0ve3Jlc291cmNlSWR9IHwgRGVsZXRlIGEgcmVzb3VyY2UKKkRldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNNYW5hZ2VtZW50QXBpKiB8IFsqKkRlbGV0ZVJlc291cmNlVmVyc2lvblVzaW5nREVMRVRFKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkubWQjZGVsZXRlcmVzb3VyY2V2ZXJzaW9udXNpbmdkZWxldGUpIHwgKipEZWxldGUqKiAvYXBpL3YwL3JtL3tyZXNvdXJjZUlkfS92ZXJzaW9uL3tyZXNvdXJjZVZlcnNpb25JZH0gfCBEZWxldGUgYSByZXNvdXJjZSYjMzk7cyB2ZXJzaW9uCipEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaSogfCBbKipHZXRBbGxDb25uZWN0b3JzVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaS5tZCNnZXRhbGxjb25uZWN0b3JzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3JtL2Nvbm5lY3RvcnMgfCBHZXQgYWxsIGF2YWlsYWJsZSBjb25uZWN0b3JzCipEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaSogfCBbKipHZXRDb25uZWN0b3JNYW5kYXRvcnlBbmRPcHRpb25hbE1ldGFkYXRhVXNpbmdHRVQqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaS5tZCNnZXRjb25uZWN0b3JtYW5kYXRvcnlhbmRvcHRpb25hbG1ldGFkYXRhdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3JtL2Nvbm5lY3RvcnMve2Nvbm5lY3Rvcn0vbWV0YWRhdGEgfCBHZXQgbWFuZGF0b3J5IGFuZCBvcHRpb25hbCBtZXRhZGF0YSBvZiBhIGNvbm5lY3RvcgoqRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkqIHwgWyoqR2V0UmVzb3VyY2VDb21wYXRpYmxlVmVyc2lvbnNVc2luZ0dFVCoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNNYW5hZ2VtZW50QXBpLm1kI2dldHJlc291cmNlY29tcGF0aWJsZXZlcnNpb25zdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3JtL3tyZXNvdXJjZUlkfS9jb21wYXRpYmxlVmVyc2lvbi97Y3VycmVudFZlcnNpb259IHwgTGlzdCB0aGUgdmVyc2lvbnMgZnJvbSB3aGljaCBhIHJlc291cmNlIHVwZGF0ZSB0byB0aGUgdmVyc2lvbiBjYW4gYmUgZG9uZQoqRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkqIHwgWyoqR2V0UmVzb3VyY2VVc2luZ0dFVCoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNNYW5hZ2VtZW50QXBpLm1kI2dldHJlc291cmNldXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3JtL3tyZXNvdXJjZUlkfSB8IEdldCBhIHJlc291cmNlCipEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaSogfCBbKipHZXRSZXNvdXJjZVZlcnNpb25Vc2luZ0dFVCoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNNYW5hZ2VtZW50QXBpLm1kI2dldHJlc291cmNldmVyc2lvbnVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9ybS97cmVzb3VyY2VJZH0vdmVyc2lvbi97cmVzb3VyY2VWZXJzaW9uSWR9IHwgR2V0IGEgcmVzb3VyY2UmIzM5O3MgdmVyc2lvbgoqRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkqIHwgWyoqR2V0UmVzb3VyY2VWZXJzaW9uc1VzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkubWQjZ2V0cmVzb3VyY2V2ZXJzaW9uc3VzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC9ybS97cmVzb3VyY2VJZH0vdmVyc2lvbiB8IExpc3QgcmVzb3VyY2UmIzM5O3MgdmVyc2lvbnMKKkRldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNNYW5hZ2VtZW50QXBpKiB8IFsqKkdldFJlc291cmNlc1VzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkubWQjZ2V0cmVzb3VyY2VzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3JtIHwgTGlzdCBhbGwgcmVzb3VyY2VzCipEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzTWFuYWdlbWVudEFwaSogfCBbKipVcGRhdGVSZXNvdXJjZVVzaW5nUFVUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkubWQjdXBkYXRlcmVzb3VyY2V1c2luZ3B1dCkgfCAqKlB1dCoqIC9hcGkvdjAvcm0ve3Jlc291cmNlSWR9IHwgVXBkYXRlIGEgcmVzb3VyY2UKKkRldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNNYW5hZ2VtZW50QXBpKiB8IFsqKlVwZGF0ZVJlc291cmNlVmVyc2lvblVzaW5nUFVUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc01hbmFnZW1lbnRBcGkubWQjdXBkYXRlcmVzb3VyY2V2ZXJzaW9udXNpbmdwdXQpIHwgKipQdXQqKiAvYXBpL3YwL3JtL3tyZXNvdXJjZUlkfS92ZXJzaW9uL3tyZXNvdXJjZVZlcnNpb25JZH0gfCBVcGRhdGUgYSByZXNvdXJjZSYjMzk7cyB2ZXJzaW9uCipEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzVjFBcGkqIHwgWyoqR2V0RGV2aWNlUmVzb3VyY2VVcGRhdGVzVXNpbmdHRVQxKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc1YxQXBpLm1kI2dldGRldmljZXJlc291cmNldXBkYXRlc3VzaW5nZ2V0MSkgfCAqKkdldCoqIC9hcGkvdjEvZGV2aWNlTWd0L2RldmljZXMve2RldmljZUlkfS9yZXNvdXJjZXMvdXBkYXRlcyB8IEdldCBhIGxpc3Qgb2YgZGV2aWNlIHJlc291cmNlIHVwZGF0ZXMKKkRldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNWMUFwaSogfCBbKipHZXREZXZpY2VSZXNvdXJjZVVzaW5nR0VUKipdKGRvY3MvRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc1YxQXBpLm1kI2dldGRldmljZXJlc291cmNldXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vcmVzb3VyY2VzL3tyZXNvdXJjZUlkfSB8IEdldCBhIHNwZWNpZmljIGRldmljZSByZXNvdXJjZQoqRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc1YxQXBpKiB8IFsqKkdldExhc3RSZXNvdXJjZVVwZGF0ZVVzaW5nR0VUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNWMUFwaS5tZCNnZXRsYXN0cmVzb3VyY2V1cGRhdGV1c2luZ2dldDEpIHwgKipHZXQqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vcmVzb3VyY2VzL3tyZXNvdXJjZUlkfS91cGRhdGVzL2xhdGVzdCB8IEdldCBpbmZvIGFib3V0IGxhc3QgdXBkYXRlIG9mIHRoaXMgZGV2aWNlIHJlc291cmNlCipEZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzVjFBcGkqIHwgWyoqTGlzdERldmljZVJlc291cmNlc1VzaW5nR0VUMSoqXShkb2NzL0RldmljZU1hbmFnZW1lbnRSZXNvdXJjZXNWMUFwaS5tZCNsaXN0ZGV2aWNlcmVzb3VyY2VzdXNpbmdnZXQxKSB8ICoqR2V0KiogL2FwaS92MS9kZXZpY2VNZ3QvZGV2aWNlcy97ZGV2aWNlSWR9L3Jlc291cmNlcyB8IEdldCBhIG1hcCBvZiBhbGwgZGV2aWNlIHJlc291cmNlcwoqRGV2aWNlTWFuYWdlbWVudFJlc291cmNlc1YxQXBpKiB8IFsqKlNldERldmljZVJlc291cmNlVmVyc2lvblVzaW5nUE9TVDEqKl0oZG9jcy9EZXZpY2VNYW5hZ2VtZW50UmVzb3VyY2VzVjFBcGkubWQjc2V0ZGV2aWNlcmVzb3VyY2V2ZXJzaW9udXNpbmdwb3N0MSkgfCAqKlBvc3QqKiAvYXBpL3YxL2RldmljZU1ndC9kZXZpY2VzL3tkZXZpY2VJZH0vcmVzb3VyY2VzL3tyZXNvdXJjZUlkfSB8IFNldCBkZXZpY2UgcmVzb3VyY2UgdmVyc2lvbnMKKkV2ZW50UHJvY2Vzc2luZ0FjdGl2aXR5QXBpKiB8IFsqKkRlbGV0ZVVzaW5nREVMRVRFMTQqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdBY3Rpdml0eUFwaS5tZCNkZWxldGV1c2luZ2RlbGV0ZTE0KSB8ICoqRGVsZXRlKiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvYWN0aXZpdHkvcnVsZXMve2FjdGl2aXR5UnVsZUlkfSB8IERlbGV0ZSBhbiBBY3Rpdml0eVJ1bGUKKkV2ZW50UHJvY2Vzc2luZ0FjdGl2aXR5QXBpKiB8IFsqKkdldFN0YXRlc1VzaW5nR0VUKipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nQWN0aXZpdHlBcGkubWQjZ2V0c3RhdGVzdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9hY3Rpdml0eS9zdGF0ZXMgfCBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBhbGwgdGhlIEFjdGl2aXR5U3RhdGVzIGxpbmtlZCB0byBhIHNwZWNpZmljIGRldmljZSBhbmQvb3IgcnVsZQoqRXZlbnRQcm9jZXNzaW5nQWN0aXZpdHlBcGkqIHwgWyoqR2V0VXNpbmdHRVQxMyoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0FjdGl2aXR5QXBpLm1kI2dldHVzaW5nZ2V0MTMpIHwgKipHZXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9hY3Rpdml0eS9ydWxlcy97YWN0aXZpdHlSdWxlSWR9IHwgUmV0cmlldmUgYW4gQWN0aXZpdHlSdWxlCipFdmVudFByb2Nlc3NpbmdBY3Rpdml0eUFwaSogfCBbKipMaXN0VXNpbmdHRVQxNioqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0FjdGl2aXR5QXBpLm1kI2xpc3R1c2luZ2dldDE2KSB8ICoqR2V0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvYWN0aXZpdHkvcnVsZXMgfCBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBhbGwgdGhlIEFjdGl2aXR5UnVsZXMgb3IgZ2V0IGFuIEFjdGl2aXR5UnVsZSBieSBpdHMgbmFtZQoqRXZlbnRQcm9jZXNzaW5nQWN0aXZpdHlBcGkqIHwgWyoqTXV0ZVVzaW5nUFVUKipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nQWN0aXZpdHlBcGkubWQjbXV0ZXVzaW5ncHV0KSB8ICoqUHV0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvYWN0aXZpdHkvc3RhdGVzL211dGUgfCBNdXRlIG9yIHJlc2V0IG5leHRBbGFybSBvZiBBY3Rpdml0eVN0YXRlcyB0YXJnZXRlZCBieSBhIHNwZWNpZmljIGRldmljZUlkL2FjdGl2aXR5UnVsZUlkCipFdmVudFByb2Nlc3NpbmdBY3Rpdml0eUFwaSogfCBbKipQb3N0VXNpbmdQT1NUMTMqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdBY3Rpdml0eUFwaS5tZCNwb3N0dXNpbmdwb3N0MTMpIHwgKipQb3N0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvYWN0aXZpdHkvcnVsZXMgfCBDcmVhdGUgYW4gQWN0aXZpdHlSdWxlCipFdmVudFByb2Nlc3NpbmdBY3Rpdml0eUFwaSogfCBbKipVcGRhdGVVc2luZ1BVVDcqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdBY3Rpdml0eUFwaS5tZCN1cGRhdGV1c2luZ3B1dDcpIHwgKipQdXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9hY3Rpdml0eS9ydWxlcy97YWN0aXZpdHlSdWxlSWR9IHwgVXBkYXRlIGFuIEFjdGl2aXR5UnVsZQoqRXZlbnRQcm9jZXNzaW5nQ29udGV4dEFwaSogfCBbKipDbGVhclVzaW5nREVMRVRFKipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nQ29udGV4dEFwaS5tZCNjbGVhcnVzaW5nZGVsZXRlKSB8ICoqRGVsZXRlKiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvY29udGV4dCB8IERlbGV0ZSBhbGwgY29udGV4dCBlbnRyaWVzCipFdmVudFByb2Nlc3NpbmdDb250ZXh0QXBpKiB8IFsqKkRlbGV0ZVVzaW5nREVMRVRFMTUqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdDb250ZXh0QXBpLm1kI2RlbGV0ZXVzaW5nZGVsZXRlMTUpIHwgKipEZWxldGUqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9jb250ZXh0L3tjb250ZXh0S2V5fSB8IERlbGV0ZSBhIGNvbnRleHQga2V5CipFdmVudFByb2Nlc3NpbmdDb250ZXh0QXBpKiB8IFsqKkdldFVzaW5nR0VUMTQqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdDb250ZXh0QXBpLm1kI2dldHVzaW5nZ2V0MTQpIHwgKipHZXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9jb250ZXh0L3tjb250ZXh0S2V5fSB8IFJldHJpZXZlIGEgY29udGV4dAoqRXZlbnRQcm9jZXNzaW5nQ29udGV4dEFwaSogfCBbKipMaXN0VXNpbmdHRVQxNyoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0NvbnRleHRBcGkubWQjbGlzdHVzaW5nZ2V0MTcpIHwgKipHZXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9jb250ZXh0IHwgUmV0cmlldmUgdGhlIGxpc3Qgb2YgY29udGV4dHMgd2l0aCBvcHRpb25hbCB0YWcgZmlsdGVyaW5nCipFdmVudFByb2Nlc3NpbmdDb250ZXh0QXBpKiB8IFsqKlNhdmVVc2luZ1BVVCoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0NvbnRleHRBcGkubWQjc2F2ZXVzaW5ncHV0KSB8ICoqUHV0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvY29udGV4dC97Y29udGV4dEtleX0gfCBTYXZlIGEgY29udGV4dAoqRXZlbnRQcm9jZXNzaW5nRmlyaW5nQXBpKiB8IFsqKkRlbGV0ZVVzaW5nREVMRVRFMTYqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdGaXJpbmdBcGkubWQjZGVsZXRldXNpbmdkZWxldGUxNikgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL2ZpcmluZy1ydWxlL3tmaXJpbmdSdWxlSWR9IHwgRGVsZXRlIGEgRmlyaW5nUnVsZQoqRXZlbnRQcm9jZXNzaW5nRmlyaW5nQXBpKiB8IFsqKkdldEZpcmluZ0d1YXJkVXNpbmdHRVQqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdGaXJpbmdBcGkubWQjZ2V0ZmlyaW5nZ3VhcmR1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL2ZpcmluZy1ndWFyZC97ZmlyaW5nR3VhcmRJZH0gfCBHZXQgYSBGaXJpbmdHdWFyZAoqRXZlbnRQcm9jZXNzaW5nRmlyaW5nQXBpKiB8IFsqKkdldEZpcmluZ0d1YXJkc1VzaW5nUE9TVCoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaS5tZCNnZXRmaXJpbmdndWFyZHN1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvZmlyaW5nLWd1YXJkL3NlYXJjaCB8IEdldCBGaXJpbmdHdWFyZHMgbGlua2VkIHRvIGEgRmlyaW5nUnVsZSwgYW5kIHdoZXJlIEZpcmluZ0d1YXJkcyBzZWxlY3Rpb24gY3JpdGVyaWEgbWF0Y2guCipFdmVudFByb2Nlc3NpbmdGaXJpbmdBcGkqIHwgWyoqR2V0VXNpbmdHRVQxNSoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaS5tZCNnZXR1c2luZ2dldDE1KSB8ICoqR2V0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvZmlyaW5nLXJ1bGUve2ZpcmluZ1J1bGVJZH0gfCBSZXRyaWV2ZSBhIEZpcmluZ1J1bGUKKkV2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaSogfCBbKipMaXN0VXNpbmdHRVQxOCoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaS5tZCNsaXN0dXNpbmdnZXQxOCkgfCAqKkdldCoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL2ZpcmluZy1ydWxlIHwgUmV0cmlldmUgdGhlIGxpc3Qgb2YgYWxsIHRoZSBGaXJpbmdSdWxlcyBvciBnZXQgYSBGaXJpbmdSdWxlIGJ5IGl0cyBuYW1lCipFdmVudFByb2Nlc3NpbmdGaXJpbmdBcGkqIHwgWyoqUG9zdFVzaW5nUE9TVDE0KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nRmlyaW5nQXBpLm1kI3Bvc3R1c2luZ3Bvc3QxNCkgfCAqKlBvc3QqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9maXJpbmctcnVsZSB8IENyZWF0ZSBhIEZpcmluZ1J1bGUKKkV2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaSogfCBbKipSZW1vdmVGaXJpbmdHdWFyZFVzaW5nREVMRVRFKipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nRmlyaW5nQXBpLm1kI3JlbW92ZWZpcmluZ2d1YXJkdXNpbmdkZWxldGUpIHwgKipEZWxldGUqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9maXJpbmctZ3VhcmQve2ZpcmluZ0d1YXJkSWR9IHwgUmVtb3ZlIGEgRmlyaW5nR3VhcmQKKkV2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaSogfCBbKipSZW1vdmVGaXJpbmdHdWFyZHNVc2luZ0RFTEVURSoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaS5tZCNyZW1vdmVmaXJpbmdndWFyZHN1c2luZ2RlbGV0ZSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL2ZpcmluZy1ndWFyZCB8IFJlbW92ZSB0aGUgRmlyaW5nR3VhcmRzIGxpbmtlZCB0byBGaXJpbmdSdWxlLCBhbmQgd2hlcmUgRmlyaW5nR3VhcmRzIHNlbGVjdGlvbiBjcml0ZXJpYSBtYXRjaC4KKkV2ZW50UHJvY2Vzc2luZ0ZpcmluZ0FwaSogfCBbKipVcGRhdGVVc2luZ1BVVDgqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdGaXJpbmdBcGkubWQjdXBkYXRldXNpbmdwdXQ4KSB8ICoqUHV0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvZmlyaW5nLXJ1bGUve2ZpcmluZ1J1bGVJZH0gfCBVcGRhdGUgYSBGaXJpbmdSdWxlCipFdmVudFByb2Nlc3NpbmdHZW96b25lQXBpKiB8IFsqKkRlbGV0ZVVzaW5nREVMRVRFMTcqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdHZW96b25lQXBpLm1kI2RlbGV0ZXVzaW5nZGVsZXRlMTcpIHwgKipEZWxldGUqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9nZW96b25lcy97em9uZUlkfSB8IGRlbGV0ZSBhIGdlb2dyYXBoaWMgem9uZQoqRXZlbnRQcm9jZXNzaW5nR2Vvem9uZUFwaSogfCBbKipHZXRVc2luZ0dFVDE2KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nR2Vvem9uZUFwaS5tZCNnZXR1c2luZ2dldDE2KSB8ICoqR2V0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvZ2Vvem9uZXMve3pvbmVJZH0gfCByZXRyaWV2ZSBhIGdlb3pvbmUgZnJvbSByZXBvc2l0b3J5CipFdmVudFByb2Nlc3NpbmdHZW96b25lQXBpKiB8IFsqKkxpc3RVc2luZ0dFVDE5KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nR2Vvem9uZUFwaS5tZCNsaXN0dXNpbmdnZXQxOSkgfCAqKkdldCoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL2dlb3pvbmVzIHwgcmV0cmlldmUgcGFnaW5hdGVkIGxpc3Qgb2YgZ2Vvem9uZXMKKkV2ZW50UHJvY2Vzc2luZ0dlb3pvbmVBcGkqIHwgWyoqU2F2ZVVzaW5nUFVUMSoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ0dlb3pvbmVBcGkubWQjc2F2ZXVzaW5ncHV0MSkgfCAqKlB1dCoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL2dlb3pvbmVzL3t6b25lSWR9IHwgU2F2ZSBhIGdlb2dyYXBoaWMgem9uZQoqRXZlbnRQcm9jZXNzaW5nTWF0Y2hpbmdBcGkqIHwgWyoqRGVsZXRlVXNpbmdERUxFVEUxOCoqXShkb2NzL0V2ZW50UHJvY2Vzc2luZ01hdGNoaW5nQXBpLm1kI2RlbGV0ZXVzaW5nZGVsZXRlMTgpIHwgKipEZWxldGUqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9tYXRjaGluZy1ydWxlL3ttYXRjaGluZ1J1bGVJZH0gfCBEZWxldGUgYSBNYXRjaGluZ1J1bGUKKkV2ZW50UHJvY2Vzc2luZ01hdGNoaW5nQXBpKiB8IFsqKkdldFVzaW5nR0VUMTcqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdNYXRjaGluZ0FwaS5tZCNnZXR1c2luZ2dldDE3KSB8ICoqR2V0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvbWF0Y2hpbmctcnVsZS97bWF0Y2hpbmdSdWxlSWR9IHwgUmV0cmlldmUgYSBNYXRjaGluZ1J1bGUKKkV2ZW50UHJvY2Vzc2luZ01hdGNoaW5nQXBpKiB8IFsqKkxpc3RVc2luZ0dFVDIwKipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nTWF0Y2hpbmdBcGkubWQjbGlzdHVzaW5nZ2V0MjApIHwgKipHZXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9tYXRjaGluZy1ydWxlIHwgUmV0cmlldmUgdGhlIGxpc3Qgb2YgYWxsIHRoZSBNYXRjaGluZ1J1bGVzIG9yIGdldCBhIE1hdGNoaW5nUnVsZSBieSBpdHMgbmFtZQoqRXZlbnRQcm9jZXNzaW5nTWF0Y2hpbmdBcGkqIHwgWyoqUG9zdFVzaW5nUE9TVDE1KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nTWF0Y2hpbmdBcGkubWQjcG9zdHVzaW5ncG9zdDE1KSB8ICoqUG9zdCoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL21hdGNoaW5nLXJ1bGUgfCBDcmVhdGUgYSBNYXRjaGluZ1J1bGUKKkV2ZW50UHJvY2Vzc2luZ01hdGNoaW5nQXBpKiB8IFsqKlRlc3RVc2luZ1BPU1Q0KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nTWF0Y2hpbmdBcGkubWQjdGVzdHVzaW5ncG9zdDQpIHwgKipQb3N0KiogL2FwaS92MC9ldmVudHByb2Nlc3NpbmcvbWF0Y2hpbmctcnVsZS90ZXN0IHwgVGVzdCBhIEpzb25Mb2dpYyBwcmVkaWNhdGUgd2l0aCBzb21lIGRhdGEgc2FtcGxlCipFdmVudFByb2Nlc3NpbmdNYXRjaGluZ0FwaSogfCBbKipVcGRhdGVVc2luZ1BVVDkqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdNYXRjaGluZ0FwaS5tZCN1cGRhdGV1c2luZ3B1dDkpIHwgKipQdXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9tYXRjaGluZy1ydWxlL3ttYXRjaGluZ1J1bGVJZH0gfCBVcGRhdGUgYSBNYXRjaGluZ1J1bGUKKkV2ZW50UHJvY2Vzc2luZ1N0YXRlUHJvY2Vzc2luZ0FwaSogfCBbKipEZWxldGVVc2luZ0RFTEVURTE5KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nU3RhdGVQcm9jZXNzaW5nQXBpLm1kI2RlbGV0ZXVzaW5nZGVsZXRlMTkpIHwgKipEZWxldGUqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9zdGF0ZXByb2Nlc3NpbmctcnVsZS97c3RhdGVQcm9jZXNzaW5nUnVsZUlkfSB8IERlbGV0ZSBhIFN0YXRlUHJvY2Vzc2luZ1J1bGUKKkV2ZW50UHJvY2Vzc2luZ1N0YXRlUHJvY2Vzc2luZ0FwaSogfCBbKipHZXRVc2luZ0dFVDE4KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nU3RhdGVQcm9jZXNzaW5nQXBpLm1kI2dldHVzaW5nZ2V0MTgpIHwgKipHZXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9zdGF0ZXByb2Nlc3NpbmctcnVsZS97c3RhdGVQcm9jZXNzaW5nUnVsZUlkfSB8IFJldHJpZXZlIGEgU3RhdGVQcm9jZXNzaW5nUnVsZQoqRXZlbnRQcm9jZXNzaW5nU3RhdGVQcm9jZXNzaW5nQXBpKiB8IFsqKkxpc3RVc2luZ0dFVDIxKipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nU3RhdGVQcm9jZXNzaW5nQXBpLm1kI2xpc3R1c2luZ2dldDIxKSB8ICoqR2V0KiogL2FwaS92MC9ldmVudHByb2Nlc3Npbmcvc3RhdGVwcm9jZXNzaW5nLXJ1bGUgfCBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBhbGwgdGhlIFN0YXRlUHJvY2Vzc2luZ1J1bGVzIG9yIGdldCBhIFN0YXRlUHJvY2Vzc2luZ1J1bGUgYnkgaXRzIG5hbWUKKkV2ZW50UHJvY2Vzc2luZ1N0YXRlUHJvY2Vzc2luZ0FwaSogfCBbKipQb3N0VXNpbmdQT1NUMTYqKl0oZG9jcy9FdmVudFByb2Nlc3NpbmdTdGF0ZVByb2Nlc3NpbmdBcGkubWQjcG9zdHVzaW5ncG9zdDE2KSB8ICoqUG9zdCoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL3N0YXRlcHJvY2Vzc2luZy1ydWxlIHwgQ3JlYXRlIGEgU3RhdGVQcm9jZXNzaW5nUnVsZQoqRXZlbnRQcm9jZXNzaW5nU3RhdGVQcm9jZXNzaW5nQXBpKiB8IFsqKlRlc3RVc2luZ1BPU1Q1KipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nU3RhdGVQcm9jZXNzaW5nQXBpLm1kI3Rlc3R1c2luZ3Bvc3Q1KSB8ICoqUG9zdCoqIC9hcGkvdjAvZXZlbnRwcm9jZXNzaW5nL3N0YXRlcHJvY2Vzc2luZy1ydWxlL3Rlc3QgfCB0ZXN0IGEgIFN0YXRlIFByb2Nlc3NpbmcgZnVuY3Rpb24KKkV2ZW50UHJvY2Vzc2luZ1N0YXRlUHJvY2Vzc2luZ0FwaSogfCBbKipVcGRhdGVVc2luZ1BVVDEwKipdKGRvY3MvRXZlbnRQcm9jZXNzaW5nU3RhdGVQcm9jZXNzaW5nQXBpLm1kI3VwZGF0ZXVzaW5ncHV0MTApIHwgKipQdXQqKiAvYXBpL3YwL2V2ZW50cHJvY2Vzc2luZy9zdGF0ZXByb2Nlc3NpbmctcnVsZS97c3RhdGVQcm9jZXNzaW5nUnVsZUlkfSB8IFVwZGF0ZSBhIFN0YXRlUHJvY2Vzc2luZ1J1bGUKKk5vdGlmaWNhdGlvbkFwaSogfCBbKipTZW5kTWVzc2FnZVVzaW5nUE9TVCoqXShkb2NzL05vdGlmaWNhdGlvbkFwaS5tZCNzZW5kbWVzc2FnZXVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL2NvbnRhY3QgfCBBUEkgdG8gc2VuZCBtZXNzYWdlCipQYXJ0bmVyRGF0YVB1c2hBcGkqIHwgWyoqRGF0YVB1c2hVc2luZ1BPU1QqKl0oZG9jcy9QYXJ0bmVyRGF0YVB1c2hBcGkubWQjZGF0YXB1c2h1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9wYXJ0bmVycy9kYXRhL3N0cmVhbXMgfCBQdXNoIGRhdGEKKlBhcnRuZXJzTWFuYWdlbWVudEFwaSogfCBbKipBZGRPcHRpb25Ub1RlbmFudFVzaW5nUE9TVCoqXShkb2NzL1BhcnRuZXJzTWFuYWdlbWVudEFwaS5tZCNhZGRvcHRpb250b3RlbmFudHVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL3BhcnRuZXJzL3RlbmFudHMve3RlbmFudElkfS9vcHRpb25zIHwgU3Vic2NyaWJlIGFuIG9wdGlvbiBmb3IgYSBwYXJ0bmVyJiMzOTtzIHRlbmFudAoqUGFydG5lcnNNYW5hZ2VtZW50QXBpKiB8IFsqKkNyZWF0ZVRlbmFudEJ5UGFydG5lclVzaW5nUE9TVCoqXShkb2NzL1BhcnRuZXJzTWFuYWdlbWVudEFwaS5tZCNjcmVhdGV0ZW5hbnRieXBhcnRuZXJ1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9wYXJ0bmVycy90ZW5hbnRzIHwgQ3JlYXRlIGEgcGFydG5lciYjMzk7cyB0ZW5hbnQKKlBhcnRuZXJzVG9rZW5zTWFuYWdlbWVudEFwaSogfCBbKipDcmVhdGVQYXJ0bmVyVG9rZW5Vc2luZ1BPU1QqKl0oZG9jcy9QYXJ0bmVyc1Rva2Vuc01hbmFnZW1lbnRBcGkubWQjY3JlYXRlcGFydG5lcnRva2VudXNpbmdwb3N0KSB8ICoqUG9zdCoqIC9hcGkvdjAvb2F1dGgyL3Rva2VuIHwgUmVxdWVzdCBhIG5ldyBUb2tlbgoqVGVuYW50QWNjb3VudHNBcGkqIHwgWyoqR2V0TXlUZW5hbnRVc2luZ0dFVCoqXShkb2NzL1RlbmFudEFjY291bnRzQXBpLm1kI2dldG15dGVuYW50dXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3RlbmFudHMvbWUgfCBHZXQgZGV0YWlscyBvZiB5b3VyIGFjY291bnQKKlRyaWdnZXJzQW5kQWN0aW9uc0FwaSogfCBbKipDcmVhdGVVc2luZ1BPU1QyKipdKGRvY3MvVHJpZ2dlcnNBbmRBY3Rpb25zQXBpLm1kI2NyZWF0ZXVzaW5ncG9zdDIpIHwgKipQb3N0KiogL2FwaS92MS9ldmVudDJhY3Rpb24vYWN0aW9uUG9saWNpZXMgfCBDcmVhdGUgYW4gQWN0aW9uUG9saWN5CipUcmlnZ2Vyc0FuZEFjdGlvbnNBcGkqIHwgWyoqRGVsZXRlVXNpbmdERUxFVEUxMyoqXShkb2NzL1RyaWdnZXJzQW5kQWN0aW9uc0FwaS5tZCNkZWxldGV1c2luZ2RlbGV0ZTEzKSB8ICoqRGVsZXRlKiogL2FwaS92MS9ldmVudDJhY3Rpb24vYWN0aW9uUG9saWNpZXMve3BvbGljeUlkfSB8IERlbGV0ZSBhbiBBY3Rpb25Qb2xpY3kKKlRyaWdnZXJzQW5kQWN0aW9uc0FwaSogfCBbKipMaXN0VXNpbmdHRVQxNSoqXShkb2NzL1RyaWdnZXJzQW5kQWN0aW9uc0FwaS5tZCNsaXN0dXNpbmdnZXQxNSkgfCAqKkdldCoqIC9hcGkvdjEvZXZlbnQyYWN0aW9uL2FjdGlvblBvbGljaWVzIHwgTGlzdCBBY3Rpb25Qb2xpY2llcwoqVHJpZ2dlcnNBbmRBY3Rpb25zQXBpKiB8IFsqKlJldHJpZXZlVXNpbmdHRVQyKipdKGRvY3MvVHJpZ2dlcnNBbmRBY3Rpb25zQXBpLm1kI3JldHJpZXZldXNpbmdnZXQyKSB8ICoqR2V0KiogL2FwaS92MS9ldmVudDJhY3Rpb24vYWN0aW9uUG9saWNpZXMve3BvbGljeUlkfSB8IFJldHJpZXZlIGFuIEFjdGlvblBvbGljeQoqVHJpZ2dlcnNBbmRBY3Rpb25zQXBpKiB8IFsqKlVwc2VydFVzaW5nUFVUMSoqXShkb2NzL1RyaWdnZXJzQW5kQWN0aW9uc0FwaS5tZCN1cHNlcnR1c2luZ3B1dDEpIHwgKipQdXQqKiAvYXBpL3YxL2V2ZW50MmFjdGlvbi9hY3Rpb25Qb2xpY2llcy97cG9saWN5SWR9IHwgQ3JlYXRlIG9yIHVwZGF0ZSBhbiBBY3Rpb25Qb2xpY3kKKlRyaWdnZXJzQW5kQWN0aW9uc1Rlc3RBcGkqIHwgWyoqVGVzdEh0dHBQdXNoVXNpbmdQT1NUMSoqXShkb2NzL1RyaWdnZXJzQW5kQWN0aW9uc1Rlc3RBcGkubWQjdGVzdGh0dHBwdXNodXNpbmdwb3N0MSkgfCAqKlBvc3QqKiAvYXBpL3YxL2V2ZW50MmFjdGlvbi90ZXN0L2h0dHAtcHVzaCB8IFBvc3QgYW4gaHR0cCByZXF1ZXN0IGZvciB0ZXN0aW5nIGEgd2ViaG9vawoqVXNlckF1dGhlbnRpY2F0aW9uQXBpKiB8IFsqKkF1dGhlbnRpY2F0ZVVzZXJVc2luZ1BPU1QqKl0oZG9jcy9Vc2VyQXV0aGVudGljYXRpb25BcGkubWQjYXV0aGVudGljYXRldXNlcnVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL2F1dGggfCBBdXRoZW50aWNhdGUgYSB1c2VyCipVc2VyQXV0aGVudGljYXRpb25BcGkqIHwgWyoqQ29va2llc0RlbGV0ZVVzaW5nREVMRVRFKipdKGRvY3MvVXNlckF1dGhlbnRpY2F0aW9uQXBpLm1kI2Nvb2tpZXNkZWxldGV1c2luZ2RlbGV0ZSkgfCAqKkRlbGV0ZSoqIC9hcGkvdjAvY29va2llcyB8IGNvb2tpZXNEZWxldGUKKlVzZXJBdXRoZW50aWNhdGlvbkFwaSogfCBbKipHZXRUZW5hbnRJZFVzaW5nR0VUKipdKGRvY3MvVXNlckF1dGhlbnRpY2F0aW9uQXBpLm1kI2dldHRlbmFudGlkdXNpbmdnZXQpIHwgKipHZXQqKiAvYXBpL3YwL3dob2FtaSB8IEdldCB5b3VyIHRlbmFudCBpZAoqVXNlckF1dGhlbnRpY2F0aW9uQXBpKiB8IFsqKkxvZ291dFVzaW5nUE9TVCoqXShkb2NzL1VzZXJBdXRoZW50aWNhdGlvbkFwaS5tZCNsb2dvdXR1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC9sb2dvdXQgfCBMb2cgb3V0IG9mIHRoZSBjdXJyZW50IHNlc3Npb24KKlVzZXJBdXRoZW50aWNhdGlvbkFwaSogfCBbKipSZXNldFVzZXJQYXNzd29yZFVzaW5nUE9TVCoqXShkb2NzL1VzZXJBdXRoZW50aWNhdGlvbkFwaS5tZCNyZXNldHVzZXJwYXNzd29yZHVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL3Jlc2V0cHdkIHwgUmVzZXQgdXNlciYjMzk7cyBwYXNzd29yZAoqVXNlckF1dGhlbnRpY2F0aW9uQXBpKiB8IFsqKlVwZGF0ZVVzZXJFbWFpbFdpdGhUb2tlblVzaW5nUE9TVCoqXShkb2NzL1VzZXJBdXRoZW50aWNhdGlvbkFwaS5tZCN1cGRhdGV1c2VyZW1haWx3aXRodG9rZW51c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC91cGRhdGVFbWFpbCB8IFVwZGF0ZSB1c2VyJiMzOTtzIGVtYWlsCipVc2VyQXV0aGVudGljYXRpb25BcGkqIHwgWyoqVXBkYXRlVXNlclBhc3N3b3JkV2l0aFRva2VuVXNpbmdQT1NUKipdKGRvY3MvVXNlckF1dGhlbnRpY2F0aW9uQXBpLm1kI3VwZGF0ZXVzZXJwYXNzd29yZHdpdGh0b2tlbnVzaW5ncG9zdCkgfCAqKlBvc3QqKiAvYXBpL3YwL3NldHB3ZCB8IFVwZGF0ZSB1c2VyJiMzOTtzIHBhc3N3b3JkCipVc2Vyc01hbmFnZW1lbnRBcGkqIHwgWyoqQWN0aXZhdGVVc2VyVXNpbmdQT1NUMyoqXShkb2NzL1VzZXJzTWFuYWdlbWVudEFwaS5tZCNhY3RpdmF0ZXVzZXJ1c2luZ3Bvc3QzKSB8ICoqUG9zdCoqIC9hcGkvdjAvdXNlcnMvYWN0aXZhdGVVc2VyIHwgQWN0aXZhdGUgYSB1c2VyIGluIGEgdGVuYW50IGFjY291bnQKKlVzZXJzTWFuYWdlbWVudEFwaSogfCBbKipDcmVhdGVVc2VyQWNjb3VudFVzaW5nUE9TVDMqKl0oZG9jcy9Vc2Vyc01hbmFnZW1lbnRBcGkubWQjY3JlYXRldXNlcmFjY291bnR1c2luZ3Bvc3QzKSB8ICoqUG9zdCoqIC9hcGkvdjAvdXNlcnMgfCBDcmVhdGUgYSB1c2VyCipVc2Vyc01hbmFnZW1lbnRBcGkqIHwgWyoqRGVsZXRlVXNlclVzaW5nREVMRVRFMyoqXShkb2NzL1VzZXJzTWFuYWdlbWVudEFwaS5tZCNkZWxldGV1c2VydXNpbmdkZWxldGUzKSB8ICoqRGVsZXRlKiogL2FwaS92MC91c2Vycy97dXNlcklkfSB8IERlbGV0ZSBhIHVzZXIgaW4gYSB0ZW5hbnQgYWNjb3VudAoqVXNlcnNNYW5hZ2VtZW50QXBpKiB8IFsqKkdldEN1cnJlbnRVc2VyVXNpbmdHRVQqKl0oZG9jcy9Vc2Vyc01hbmFnZW1lbnRBcGkubWQjZ2V0Y3VycmVudHVzZXJ1c2luZ2dldCkgfCAqKkdldCoqIC9hcGkvdjAvdXNlcnMvbWUgfCBHZXQgYSBcJnF1b3Q7bXlzZWxmXCZxdW90OyB1c2VyIGRhdGEgb2YgVGVuYW50CipVc2Vyc01hbmFnZW1lbnRBcGkqIHwgWyoqR2V0VXNlclBvcnRhbERhdGFVc2luZ0dFVCoqXShkb2NzL1VzZXJzTWFuYWdlbWVudEFwaS5tZCNnZXR1c2VycG9ydGFsZGF0YXVzaW5nZ2V0KSB8ICoqR2V0KiogL2FwaS92MC91c2Vycy9tZS9wb3J0YWxkYXRhIHwgR2V0IHRoZSBwb3J0YWwgZGF0YSBvZiBtZQoqVXNlcnNNYW5hZ2VtZW50QXBpKiB8IFsqKkdldFVzZXJVc2luZ0dFVDMqKl0oZG9jcy9Vc2Vyc01hbmFnZW1lbnRBcGkubWQjZ2V0dXNlcnVzaW5nZ2V0MykgfCAqKkdldCoqIC9hcGkvdjAvdXNlcnMve3VzZXJJZH0gfCBHZXQgZGV0YWlscyBvZiBhIHVzZXIgaW4gYSB0ZW5hbnQgYWNjb3VudAoqVXNlcnNNYW5hZ2VtZW50QXBpKiB8IFsqKkxpc3RVc2Vyc1VzaW5nR0VUMSoqXShkb2NzL1VzZXJzTWFuYWdlbWVudEFwaS5tZCNsaXN0dXNlcnN1c2luZ2dldDEpIHwgKipHZXQqKiAvYXBpL3YwL3VzZXJzIHwgTGlzdCBhbGwgdXNlcnMgaW4gYSB0ZW5hbnQgYWNjb3VudAoqVXNlcnNNYW5hZ2VtZW50QXBpKiB8IFsqKlVwZGF0ZVVzZXJQYXNzd29yZFVzaW5nUE9TVCoqXShkb2NzL1VzZXJzTWFuYWdlbWVudEFwaS5tZCN1cGRhdGV1c2VycGFzc3dvcmR1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC91c2Vycy97dXNlcklkfS9wYXNzd29yZCB8IFVwZGF0ZSB1c2VyIHBhc3N3b3JkCipVc2Vyc01hbmFnZW1lbnRBcGkqIHwgWyoqVXBkYXRlVXNlclBhc3N3b3JkV2l0aFRva2VuV2l0aG91dENhcHRjaGFVc2luZ1BPU1QqKl0oZG9jcy9Vc2Vyc01hbmFnZW1lbnRBcGkubWQjdXBkYXRldXNlcnBhc3N3b3Jkd2l0aHRva2Vud2l0aG91dGNhcHRjaGF1c2luZ3Bvc3QpIHwgKipQb3N0KiogL2FwaS92MC91c2Vycy9hY3RpdmF0ZVRyaWFsIHwgVXBkYXRlIHVzZXIgcGFzc3dvcmQgd2l0aCBhIHRva2VuCipVc2Vyc01hbmFnZW1lbnRBcGkqIHwgWyoqVXBkYXRlVXNlclBvcnRhbERhdGFVc2luZ1BVVCoqXShkb2NzL1VzZXJzTWFuYWdlbWVudEFwaS5tZCN1cGRhdGV1c2VycG9ydGFsZGF0YXVzaW5ncHV0KSB8ICoqUHV0KiogL2FwaS92MC91c2Vycy9tZS9wb3J0YWxkYXRhIHwgVXBkYXRlIHRoZSBwb3J0YWwgZGF0YSBvZiBtZQoqVXNlcnNNYW5hZ2VtZW50QXBpKiB8IFsqKlVwZGF0ZVVzZXJVc2luZ1BPU1QxKipdKGRvY3MvVXNlcnNNYW5hZ2VtZW50QXBpLm1kI3VwZGF0ZXVzZXJ1c2luZ3Bvc3QxKSB8ICoqUG9zdCoqIC9hcGkvdjAvdXNlcnMve3VzZXJJZH0gfCBVcGRhdGUgYSB1c2VyCgoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgTW9kZWxzCgogLSBbQWN0aW9uUG9saWN5XShkb2NzL0FjdGlvblBvbGljeS5tZCkKIC0gW0FjdGlvblBvbGljeVYwXShkb2NzL0FjdGlvblBvbGljeVYwLm1kKQogLSBbQWN0aW9uVHJpZ2dlcnNdKGRvY3MvQWN0aW9uVHJpZ2dlcnMubWQpCiAtIFtBY3Rpb25UcmlnZ2Vyc1YwXShkb2NzL0FjdGlvblRyaWdnZXJzVjAubWQpCiAtIFtBY3Rpb25zXShkb2NzL0FjdGlvbnMubWQpCiAtIFtBY3Rpdml0eVJ1bGVdKGRvY3MvQWN0aXZpdHlSdWxlLm1kKQogLSBbQWN0aXZpdHlTdGF0ZV0oZG9jcy9BY3Rpdml0eVN0YXRlLm1kKQogLSBbQWN0aXZpdHlTdGF0ZU11dGVSZXF1ZXN0XShkb2NzL0FjdGl2aXR5U3RhdGVNdXRlUmVxdWVzdC5tZCkKIC0gW0FkZFBhcnRuZXJUZW5hbnRSZXF1ZXN0XShkb2NzL0FkZFBhcnRuZXJUZW5hbnRSZXF1ZXN0Lm1kKQogLSBbQWRtaW5JbmZvXShkb2NzL0FkbWluSW5mby5tZCkKIC0gW0FwaUtleV0oZG9jcy9BcGlLZXkubWQpCiAtIFtBcGlLZXlDcmVhdGlvblJlcVdlYl0oZG9jcy9BcGlLZXlDcmVhdGlvblJlcVdlYi5tZCkKIC0gW0FwaUtleVNldERlYnVnTW9kZVJlcVdlYl0oZG9jcy9BcGlLZXlTZXREZWJ1Z01vZGVSZXFXZWIubWQpCiAtIFtBcGlLZXlVcGRhdGVSZXFXZWJdKGRvY3MvQXBpS2V5VXBkYXRlUmVxV2ViLm1kKQogLSBbQXNzZXRdKGRvY3MvQXNzZXQubWQpCiAtIFtBc3NldEFsaWFzXShkb2NzL0Fzc2V0QWxpYXMubWQpCiAtIFtBc3NldENvbW1hbmRXZWJdKGRvY3MvQXNzZXRDb21tYW5kV2ViLm1kKQogLSBbQXNzZXRDcmVhdGVSZXFXZWJdKGRvY3MvQXNzZXRDcmVhdGVSZXFXZWIubWQpCiAtIFtBc3NldFBhcmFtZXRlcl0oZG9jcy9Bc3NldFBhcmFtZXRlci5tZCkKIC0gW0Fzc2V0UGFyYW1ldGVyVmFsdWVdKGRvY3MvQXNzZXRQYXJhbWV0ZXJWYWx1ZS5tZCkKIC0gW0Fzc2V0UGFyYW1zU3RhdHVzVXBkYXRlUmVxV2ViXShkb2NzL0Fzc2V0UGFyYW1zU3RhdHVzVXBkYXRlUmVxV2ViLm1kKQogLSBbQXNzZXRSZXNvdXJjZVdlYl0oZG9jcy9Bc3NldFJlc291cmNlV2ViLm1kKQogLSBbQXNzZXRTZXRUYXJnZXRSZXNvdXJjZVZlcnNpb25SZXFXZWJdKGRvY3MvQXNzZXRTZXRUYXJnZXRSZXNvdXJjZVZlcnNpb25SZXFXZWIubWQpCiAtIFtBc3NldFVwZGF0ZVJlcVdlYl0oZG9jcy9Bc3NldFVwZGF0ZVJlcVdlYi5tZCkKIC0gW0F1ZGl0TG9nTWVzc2FnZV0oZG9jcy9BdWRpdExvZ01lc3NhZ2UubWQpCiAtIFtBdXRoUmVxV2ViXShkb2NzL0F1dGhSZXFXZWIubWQpCiAtIFtBdXRoUmVzV2ViXShkb2NzL0F1dGhSZXNXZWIubWQpCiAtIFtBenVyZUV2ZW50SHVic0FjdGlvbl0oZG9jcy9BenVyZUV2ZW50SHVic0FjdGlvbi5tZCkKIC0gW0JpbmFyeVBheWxvYWREZXNjcmlwdGlvbl0oZG9jcy9CaW5hcnlQYXlsb2FkRGVzY3JpcHRpb24ubWQpCiAtIFtCaW5hcnlQYXlsb2FkRGVzY3JpcHRpb25UZXN0UmVxdWVzdF0oZG9jcy9CaW5hcnlQYXlsb2FkRGVzY3JpcHRpb25UZXN0UmVxdWVzdC5tZCkKIC0gW0J1c2luZXNzU2V0dGluZ3NdKGRvY3MvQnVzaW5lc3NTZXR0aW5ncy5tZCkKIC0gW0J1c2luZXNzVW5pdF0oZG9jcy9CdXNpbmVzc1VuaXQubWQpCiAtIFtDYUNlcnRpZmljYXRlXShkb2NzL0NhQ2VydGlmaWNhdGUubWQpCiAtIFtDYUNlcnRpZmljYXRlQ3JlYXRlUmVxV2ViXShkb2NzL0NhQ2VydGlmaWNhdGVDcmVhdGVSZXFXZWIubWQpCiAtIFtDYUNlcnRpZmljYXRlQ3JlYXRlUmVzV2ViXShkb2NzL0NhQ2VydGlmaWNhdGVDcmVhdGVSZXNXZWIubWQpCiAtIFtDYW1wYWlnbl0oZG9jcy9DYW1wYWlnbi5tZCkKIC0gW0NhbXBhaWduRGVmaW5pdGlvbl0oZG9jcy9DYW1wYWlnbkRlZmluaXRpb24ubWQpCiAtIFtDYW1wYWlnbkxpc3RdKGRvY3MvQ2FtcGFpZ25MaXN0Lm1kKQogLSBbQ2FtcGFpZ25PcGVyYXRpb25dKGRvY3MvQ2FtcGFpZ25PcGVyYXRpb24ubWQpCiAtIFtDYW1wYWlnbk9wZXJhdGlvblN0YXRlXShkb2NzL0NhbXBhaWduT3BlcmF0aW9uU3RhdGUubWQpCiAtIFtDYW1wYWlnbk9wZXJhdGlvblN0YXRlRXJyb3JdKGRvY3MvQ2FtcGFpZ25PcGVyYXRpb25TdGF0ZUVycm9yLm1kKQogLSBbQ2FtcGFpZ25PcHRpb25zXShkb2NzL0NhbXBhaWduT3B0aW9ucy5tZCkKIC0gW0NhbXBhaWduUGVyVGFyZ2V0XShkb2NzL0NhbXBhaWduUGVyVGFyZ2V0Lm1kKQogLSBbQ2FtcGFpZ25QZXJUYXJnZXRMaXN0XShkb2NzL0NhbXBhaWduUGVyVGFyZ2V0TGlzdC5tZCkKIC0gW0NhbXBhaWduUGxhbm5pbmddKGRvY3MvQ2FtcGFpZ25QbGFubmluZy5tZCkKIC0gW0NhbXBhaWduU3RhdHNQZXJTdGF0dXNdKGRvY3MvQ2FtcGFpZ25TdGF0c1BlclN0YXR1cy5tZCkKIC0gW0NhbXBhaWduVXBkYXRpbmddKGRvY3MvQ2FtcGFpZ25VcGRhdGluZy5tZCkKIC0gW0NsaWVudENlcnRpZmljYXRlc0NvbmZpZ3VyYXRpb25dKGRvY3MvQ2xpZW50Q2VydGlmaWNhdGVzQ29uZmlndXJhdGlvbi5tZCkKIC0gW0NvbW1hbmRdKGRvY3MvQ29tbWFuZC5tZCkKIC0gW0NvbW1hbmRBZGRSZXF1ZXN0XShkb2NzL0NvbW1hbmRBZGRSZXF1ZXN0Lm1kKQogLSBbQ29tbWFuZEhpc3RvcnldKGRvY3MvQ29tbWFuZEhpc3RvcnkubWQpCiAtIFtDb21tYW5kUG9saWN5XShkb2NzL0NvbW1hbmRQb2xpY3kubWQpCiAtIFtDb21tYW5kUmVxdWVzdF0oZG9jcy9Db21tYW5kUmVxdWVzdC5tZCkKIC0gW0NvbW1hbmRSZXNwb25zZV0oZG9jcy9Db21tYW5kUmVzcG9uc2UubWQpCiAtIFtDb21tYW5kU3RhdHVzRmlsdGVyXShkb2NzL0NvbW1hbmRTdGF0dXNGaWx0ZXIubWQpCiAtIFtDb21tYW5kU3RhdHVzVHJpZ2dlcl0oZG9jcy9Db21tYW5kU3RhdHVzVHJpZ2dlci5tZCkKIC0gW0NvbW1hbmRWMF0oZG9jcy9Db21tYW5kVjAubWQpCiAtIFtDb25uZWN0b3JBY2NvdW50aW5nXShkb2NzL0Nvbm5lY3RvckFjY291bnRpbmcubWQpCiAtIFtDb25uZWN0b3JOb2RlXShkb2NzL0Nvbm5lY3Rvck5vZGUubWQpCiAtIFtDb25uZWN0b3JTdGF0aXN0aWNzXShkb2NzL0Nvbm5lY3RvclN0YXRpc3RpY3MubWQpCiAtIFtDb25uZWN0b3JTdGF0dXNSZXNwb25zZV0oZG9jcy9Db25uZWN0b3JTdGF0dXNSZXNwb25zZS5tZCkKIC0gW0NvbnRhY3RNZXNzYWdlXShkb2NzL0NvbnRhY3RNZXNzYWdlLm1kKQogLSBbQ29udGV4dENvbnRhaW5lcl0oZG9jcy9Db250ZXh0Q29udGFpbmVyLm1kKQogLSBbQ29udGV4dENvbnRhaW5lckxpc3RdKGRvY3MvQ29udGV4dENvbnRhaW5lckxpc3QubWQpCiAtIFtDcmVhdGVGaWZvQmluZGluZ1JlcXVlc3RdKGRvY3MvQ3JlYXRlRmlmb0JpbmRpbmdSZXF1ZXN0Lm1kKQogLSBbQ3N2Q29sdW1uXShkb2NzL0NzdkNvbHVtbi5tZCkKIC0gW0Nzdk9wdGlvbnNdKGRvY3MvQ3N2T3B0aW9ucy5tZCkKIC0gW0NzdlBheWxvYWREZXNjcmlwdGlvbl0oZG9jcy9Dc3ZQYXlsb2FkRGVzY3JpcHRpb24ubWQpCiAtIFtDc3ZQYXlsb2FkRGVzY3JpcHRpb25UZXN0UmVxdWVzdF0oZG9jcy9Dc3ZQYXlsb2FkRGVzY3JpcHRpb25UZXN0UmVxdWVzdC5tZCkKIC0gW0RhdGFCdWxrSXRlbVdlYl0oZG9jcy9EYXRhQnVsa0l0ZW1XZWIubWQpCiAtIFtEYXRhTWF0Y2hSZXN1bHRdKGRvY3MvRGF0YU1hdGNoUmVzdWx0Lm1kKQogLSBbRGF0YU1hdGNoVGVzdF0oZG9jcy9EYXRhTWF0Y2hUZXN0Lm1kKQogLSBbRGF0YU1lc3NhZ2VGaWx0ZXJdKGRvY3MvRGF0YU1lc3NhZ2VGaWx0ZXIubWQpCiAtIFtEYXRhTWVzc2FnZVRyaWdnZXJdKGRvY3MvRGF0YU1lc3NhZ2VUcmlnZ2VyLm1kKQogLSBbRGF0YVN0b3JlZFdlYl0oZG9jcy9EYXRhU3RvcmVkV2ViLm1kKQogLSBbRGF0YVdlYl0oZG9jcy9EYXRhV2ViLm1kKQogLSBbRGF5TWV0cmljc10oZG9jcy9EYXlNZXRyaWNzLm1kKQogLSBbRGVmZXJyZWRMaXN0ZW5hYmxlRnV0dXJlUmVzdWx0RHNsU2VhcmNoUmVxdWVzdFJlc3BvbnNlV2l0aEhpdHNPbmx5UmVzcG9uc2VFbnRpdHlvYmplY3RdKGRvY3MvRGVmZXJyZWRMaXN0ZW5hYmxlRnV0dXJlUmVzdWx0RHNsU2VhcmNoUmVxdWVzdFJlc3BvbnNlV2l0aEhpdHNPbmx5UmVzcG9uc2VFbnRpdHlvYmplY3QubWQpCiAtIFtEZWZlcnJlZExpc3RlbmFibGVGdXR1cmVSZXN1bHRzdHJpbmdzdHJpbmddKGRvY3MvRGVmZXJyZWRMaXN0ZW5hYmxlRnV0dXJlUmVzdWx0c3RyaW5nc3RyaW5nLm1kKQogLSBbRGVmZXJyZWRSZXN1bHRWb2lkXShkb2NzL0RlZmVycmVkUmVzdWx0Vm9pZC5tZCkKIC0gW0RlZmVycmVkUmVzdWx0Ym9vbGVhbl0oZG9jcy9EZWZlcnJlZFJlc3VsdGJvb2xlYW4ubWQpCiAtIFtEZXZpY2VdKGRvY3MvRGV2aWNlLm1kKQogLSBbRGV2aWNlQWN0aXZpdHlGaWx0ZXJdKGRvY3MvRGV2aWNlQWN0aXZpdHlGaWx0ZXIubWQpCiAtIFtEZXZpY2VBY3Rpdml0eVRyaWdnZXJdKGRvY3MvRGV2aWNlQWN0aXZpdHlUcmlnZ2VyLm1kKQogLSBbRGV2aWNlQ29uZmlnV2ViXShkb2NzL0RldmljZUNvbmZpZ1dlYi5tZCkKIC0gW0RldmljZUNyZWF0ZVJlcXVlc3RdKGRvY3MvRGV2aWNlQ3JlYXRlUmVxdWVzdC5tZCkKIC0gW0RldmljZUNyZWF0ZWRGaWx0ZXJdKGRvY3MvRGV2aWNlQ3JlYXRlZEZpbHRlci5tZCkKIC0gW0RldmljZUNyZWF0ZWRUcmlnZ2VyXShkb2NzL0RldmljZUNyZWF0ZWRUcmlnZ2VyLm1kKQogLSBbRGV2aWNlRGVsZXRlZEZpbHRlcl0oZG9jcy9EZXZpY2VEZWxldGVkRmlsdGVyLm1kKQogLSBbRGV2aWNlRGVsZXRlZFRyaWdnZXJdKGRvY3MvRGV2aWNlRGVsZXRlZFRyaWdnZXIubWQpCiAtIFtEZXZpY2VGaXJtd2FyZVZlcnNpb25WYWx1ZVdlYl0oZG9jcy9EZXZpY2VGaXJtd2FyZVZlcnNpb25WYWx1ZVdlYi5tZCkKIC0gW0RldmljZUZpcm13YXJlV2ViXShkb2NzL0RldmljZUZpcm13YXJlV2ViLm1kKQogLSBbRGV2aWNlR3JvdXBdKGRvY3MvRGV2aWNlR3JvdXAubWQpCiAtIFtEZXZpY2VJbnRlcmZhY2VdKGRvY3MvRGV2aWNlSW50ZXJmYWNlLm1kKQogLSBbRGV2aWNlUGFyYW1ldGVyVmFsdWVdKGRvY3MvRGV2aWNlUGFyYW1ldGVyVmFsdWUubWQpCiAtIFtEZXZpY2VQYXJhbWV0ZXJWYWx1ZVdlYl0oZG9jcy9EZXZpY2VQYXJhbWV0ZXJWYWx1ZVdlYi5tZCkKIC0gW0RldmljZVBhcmFtZXRlcldlYl0oZG9jcy9EZXZpY2VQYXJhbWV0ZXJXZWIubWQpCiAtIFtEZXZpY2VQYXJhbWV0ZXJzU2V0UmVxdWVzdF0oZG9jcy9EZXZpY2VQYXJhbWV0ZXJzU2V0UmVxdWVzdC5tZCkKIC0gW0RldmljZVJlc291cmNlVmVyc2lvblZhbHVlV2ViXShkb2NzL0RldmljZVJlc291cmNlVmVyc2lvblZhbHVlV2ViLm1kKQogLSBbRGV2aWNlUmVzb3VyY2VXZWJdKGRvY3MvRGV2aWNlUmVzb3VyY2VXZWIubWQpCiAtIFtEZXZpY2VTZWxlY3Rvcl0oZG9jcy9EZXZpY2VTZWxlY3Rvci5tZCkKIC0gW0RldmljZVN0YXR1c0ZpbHRlcl0oZG9jcy9EZXZpY2VTdGF0dXNGaWx0ZXIubWQpCiAtIFtEZXZpY2VTdGF0dXNUcmlnZ2VyXShkb2NzL0RldmljZVN0YXR1c1RyaWdnZXIubWQpCiAtIFtEZXZpY2VTdHJlYW1zUmVzcG9uc2VXZWJdKGRvY3MvRGV2aWNlU3RyZWFtc1Jlc3BvbnNlV2ViLm1kKQogLSBbRGV2aWNlVXBkYXRlXShkb2NzL0RldmljZVVwZGF0ZS5tZCkKIC0gW0RzbFNlYXJjaFJlcXVlc3RSZXNwb25zZVdpdGhIaXRzT25seV0oZG9jcy9Ec2xTZWFyY2hSZXF1ZXN0UmVzcG9uc2VXaXRoSGl0c09ubHkubWQpCiAtIFtFbWFpbEFjdGlvbl0oZG9jcy9FbWFpbEFjdGlvbi5tZCkKIC0gW0Vycm9yUmVzcG9uc2VXZWJdKGRvY3MvRXJyb3JSZXNwb25zZVdlYi5tZCkKIC0gW0V4dGVybmFsSWRlbnRpdHldKGRvY3MvRXh0ZXJuYWxJZGVudGl0eS5tZCkKIC0gW0ZpZm9CaW5kaW5nXShkb2NzL0ZpZm9CaW5kaW5nLm1kKQogLSBbRmlmb0NyZWF0ZVJlcVdlYl0oZG9jcy9GaWZvQ3JlYXRlUmVxV2ViLm1kKQogLSBbRmlmb1B1Ymxpc2hBY3Rpb25dKGRvY3MvRmlmb1B1Ymxpc2hBY3Rpb24ubWQpCiAtIFtGaWZvVG9waWNdKGRvY3MvRmlmb1RvcGljLm1kKQogLSBbRmlyaW5nR3VhcmRdKGRvY3MvRmlyaW5nR3VhcmQubWQpCiAtIFtGaXJpbmdHdWFyZEdldFJlcXVlc3RdKGRvY3MvRmlyaW5nR3VhcmRHZXRSZXF1ZXN0Lm1kKQogLSBbRmlyaW5nR3VhcmRSZXNldFJlcXVlc3RdKGRvY3MvRmlyaW5nR3VhcmRSZXNldFJlcXVlc3QubWQpCiAtIFtGaXJpbmdSdWxlXShkb2NzL0ZpcmluZ1J1bGUubWQpCiAtIFtGaXJtd2FyZVVwZGF0ZVdlYl0oZG9jcy9GaXJtd2FyZVVwZGF0ZVdlYi5tZCkKIC0gW0dlb3pvbmVDb250YWluZXJdKGRvY3MvR2Vvem9uZUNvbnRhaW5lci5tZCkKIC0gW0dlb3pvbmVDb250YWluZXJCYXNlXShkb2NzL0dlb3pvbmVDb250YWluZXJCYXNlLm1kKQogLSBbR3JvdXBdKGRvY3MvR3JvdXAubWQpCiAtIFtHcm91cENyZWF0ZVJlcXVlc3RdKGRvY3MvR3JvdXBDcmVhdGVSZXF1ZXN0Lm1kKQogLSBbR3JvdXBQYXRoXShkb2NzL0dyb3VwUGF0aC5tZCkKIC0gW0dyb3VwVXBkYXRlUmVxdWVzdF0oZG9jcy9Hcm91cFVwZGF0ZVJlcXVlc3QubWQpCiAtIFtHd0NvbmZpZ10oZG9jcy9Hd0NvbmZpZy5tZCkKIC0gW0d3U3lzdGVtXShkb2NzL0d3U3lzdGVtLm1kKQogLSBbSHR0cFB1c2hBY3Rpb25dKGRvY3MvSHR0cFB1c2hBY3Rpb24ubWQpCiAtIFtIdHRwUHVzaFRlc3RSZXN1bHRdKGRvY3MvSHR0cFB1c2hUZXN0UmVzdWx0Lm1kKQogLSBbSHR0cFB1c2hXZWJob29rVGVzdF0oZG9jcy9IdHRwUHVzaFdlYmhvb2tUZXN0Lm1kKQogLSBbSW50ZXJmYWNlQ2FwYWJpbGl0aWVzXShkb2NzL0ludGVyZmFjZUNhcGFiaWxpdGllcy5tZCkKIC0gW0ludGVyZmFjZUNhcGFiaWxpdHldKGRvY3MvSW50ZXJmYWNlQ2FwYWJpbGl0eS5tZCkKIC0gW0xXTTJNRGV2aWNlXShkb2NzL0xXTTJNRGV2aWNlLm1kKQogLSBbTG9jYXRpb25dKGRvY3MvTG9jYXRpb24ubWQpCiAtIFtMb3JhQ29tbWFuZF0oZG9jcy9Mb3JhQ29tbWFuZC5tZCkKIC0gW0xvcmFDb21tYW5kV2ViXShkb2NzL0xvcmFDb21tYW5kV2ViLm1kKQogLSBbTG9yYUNvbm5lY3Rpdml0eU9wdGlvbnNdKGRvY3MvTG9yYUNvbm5lY3Rpdml0eU9wdGlvbnMubWQpCiAtIFtMb3JhQ29ubmVjdGl2aXR5T3B0aW9uc1dlYl0oZG9jcy9Mb3JhQ29ubmVjdGl2aXR5T3B0aW9uc1dlYi5tZCkKIC0gW0xvcmFEZXZpY2VdKGRvY3MvTG9yYURldmljZS5tZCkKIC0gW0xvcmFEZXZpY2VDcmVhdGVSZXFXZWJdKGRvY3MvTG9yYURldmljZUNyZWF0ZVJlcVdlYi5tZCkKIC0gW0xvcmFEZXZpY2VMb2NhdGlvbl0oZG9jcy9Mb3JhRGV2aWNlTG9jYXRpb24ubWQpCiAtIFtMb3JhRGV2aWNlU3RhdHNXZWJdKGRvY3MvTG9yYURldmljZVN0YXRzV2ViLm1kKQogLSBbTG9yYURldmljZVVwZGF0ZVJlcVdlYl0oZG9jcy9Mb3JhRGV2aWNlVXBkYXRlUmVxV2ViLm1kKQogLSBbTG9yYUdhdGV3YXlEYXRhXShkb2NzL0xvcmFHYXRld2F5RGF0YS5tZCkKIC0gW0xvcmFHYXRld2F5SW5mb10oZG9jcy9Mb3JhR2F0ZXdheUluZm8ubWQpCiAtIFtMb3JhR2F0ZXdheUxvY2F0aW9uXShkb2NzL0xvcmFHYXRld2F5TG9jYXRpb24ubWQpCiAtIFtMb3JhTmV0d29ya0ZpbHRlcl0oZG9jcy9Mb3JhTmV0d29ya0ZpbHRlci5tZCkKIC0gW0xvcmFOZXR3b3JrU3Vic2NyaXB0aW9uRGV0YWlsXShkb2NzL0xvcmFOZXR3b3JrU3Vic2NyaXB0aW9uRGV0YWlsLm1kKQogLSBbTG9yYU5ldHdvcmtUcmlnZ2VyXShkb2NzL0xvcmFOZXR3b3JrVHJpZ2dlci5tZCkKIC0gW0x3bTJtRGV2aWNlUGFnZVdlYl0oZG9jcy9Md20ybURldmljZVBhZ2VXZWIubWQpCiAtIFtNYXRjaGluZ0NvbnRleHRdKGRvY3MvTWF0Y2hpbmdDb250ZXh0Lm1kKQogLSBbTWF0Y2hpbmdGaXJlZEZpbHRlcl0oZG9jcy9NYXRjaGluZ0ZpcmVkRmlsdGVyLm1kKQogLSBbTWF0Y2hpbmdGaXJlZFRyaWdnZXJdKGRvY3MvTWF0Y2hpbmdGaXJlZFRyaWdnZXIubWQpCiAtIFtNYXRjaGluZ1J1bGVdKGRvY3MvTWF0Y2hpbmdSdWxlLm1kKQogLSBbTWVzc2FnZVNlbGVjdG9yXShkb2NzL01lc3NhZ2VTZWxlY3Rvci5tZCkKIC0gW01lc3NhZ2VTZWxlY3RvckZpbHRlcl0oZG9jcy9NZXNzYWdlU2VsZWN0b3JGaWx0ZXIubWQpCiAtIFtNZXRhZGF0YV0oZG9jcy9NZXRhZGF0YS5tZCkKIC0gW01ldGFkYXRhUmVzb3VyY2VDb25uZWN0b3JzXShkb2NzL01ldGFkYXRhUmVzb3VyY2VDb25uZWN0b3JzLm1kKQogLSBbTW9udGhNZXRyaWNzXShkb2NzL01vbnRoTWV0cmljcy5tZCkKIC0gW01zaXNkbnNdKGRvY3MvTXNpc2Rucy5tZCkKIC0gW05ld0RhdGFdKGRvY3MvTmV3RGF0YS5tZCkKIC0gW05ld0RldmljZUludGVyZmFjZV0oZG9jcy9OZXdEZXZpY2VJbnRlcmZhY2UubWQpCiAtIFtOZXdEZXZpY2VQYXJhbWV0ZXJWYWx1ZV0oZG9jcy9OZXdEZXZpY2VQYXJhbWV0ZXJWYWx1ZS5tZCkKIC0gW09BdXRoMkVycm9yV2ViXShkb2NzL09BdXRoMkVycm9yV2ViLm1kKQogLSBbT2ZmZXJBbmRPcHRpb25zXShkb2NzL09mZmVyQW5kT3B0aW9ucy5tZCkKIC0gW09mZmVyc0FuZE9wdGlvbnNSZXFXZWJdKGRvY3MvT2ZmZXJzQW5kT3B0aW9uc1JlcVdlYi5tZCkKIC0gW09wdGlvblBhcnRuZXJUZW5hbnRdKGRvY3MvT3B0aW9uUGFydG5lclRlbmFudC5tZCkKIC0gW1BhZ2VhYmxlQWN0aW9uUG9saWN5VjBdKGRvY3MvUGFnZWFibGVBY3Rpb25Qb2xpY3lWMC5tZCkKIC0gW1BhZ2VhYmxlQXBpS2V5XShkb2NzL1BhZ2VhYmxlQXBpS2V5Lm1kKQogLSBbUGFnZWFibGVBc3NldF0oZG9jcy9QYWdlYWJsZUFzc2V0Lm1kKQogLSBbUGFnZWFibGVBc3NldFJlc291cmNlV2ViXShkb2NzL1BhZ2VhYmxlQXNzZXRSZXNvdXJjZVdlYi5tZCkKIC0gW1BhZ2VhYmxlQ2FtcGFpZ25dKGRvY3MvUGFnZWFibGVDYW1wYWlnbi5tZCkKIC0gW1BhZ2VhYmxlQ2FtcGFpZ25QZXJUYXJnZXRdKGRvY3MvUGFnZWFibGVDYW1wYWlnblBlclRhcmdldC5tZCkKIC0gW1BhZ2VhYmxlQ29tbWFuZFYwXShkb2NzL1BhZ2VhYmxlQ29tbWFuZFYwLm1kKQogLSBbUGFnZWFibGVGaWZvQmluZGluZ10oZG9jcy9QYWdlYWJsZUZpZm9CaW5kaW5nLm1kKQogLSBbUGFnZWFibGVGaWZvVG9waWNdKGRvY3MvUGFnZWFibGVGaWZvVG9waWMubWQpCiAtIFtQYWdlYWJsZUdyb3VwXShkb2NzL1BhZ2VhYmxlR3JvdXAubWQpCiAtIFtQYWdlYWJsZUxXTTJNRGV2aWNlXShkb2NzL1BhZ2VhYmxlTFdNMk1EZXZpY2UubWQpCiAtIFtQYWdlYWJsZUxvcmFDb21tYW5kXShkb2NzL1BhZ2VhYmxlTG9yYUNvbW1hbmQubWQpCiAtIFtQYWdlYWJsZUxvcmFEZXZpY2VdKGRvY3MvUGFnZWFibGVMb3JhRGV2aWNlLm1kKQogLSBbUGFnZWFibGVMb3JhR2F0ZXdheUluZm9dKGRvY3MvUGFnZWFibGVMb3JhR2F0ZXdheUluZm8ubWQpCiAtIFtQYWdlYWJsZVJlc291cmNlXShkb2NzL1BhZ2VhYmxlUmVzb3VyY2UubWQpCiAtIFtQYWdlYWJsZVJlc291cmNlVXBkYXRlV2ViXShkb2NzL1BhZ2VhYmxlUmVzb3VyY2VVcGRhdGVXZWIubWQpCiAtIFtQYWdlYWJsZVJlc291cmNlVmVyc2lvbl0oZG9jcy9QYWdlYWJsZVJlc291cmNlVmVyc2lvbi5tZCkKIC0gW1BhZ2VhYmxlVXNlcl0oZG9jcy9QYWdlYWJsZVVzZXIubWQpCiAtIFtQYXJ0bmVyRGF0YUl0ZW1Td2FnZ2VyXShkb2NzL1BhcnRuZXJEYXRhSXRlbVN3YWdnZXIubWQpCiAtIFtQYXJ0bmVyVGVuYW50XShkb2NzL1BhcnRuZXJUZW5hbnQubWQpCiAtIFtQYXJ0bmVyVG9rZW5dKGRvY3MvUGFydG5lclRva2VuLm1kKQogLSBbUGF5bG9hZERlc2NyaXB0aW9uXShkb2NzL1BheWxvYWREZXNjcmlwdGlvbi5tZCkKIC0gW1BheWxvYWREZXNjcmlwdGlvbk1ldGFkYXRhXShkb2NzL1BheWxvYWREZXNjcmlwdGlvbk1ldGFkYXRhLm1kKQogLSBbUGF5bG9hZERlc2NyaXB0aW9uVGVzdFJlc3VsdF0oZG9jcy9QYXlsb2FkRGVzY3JpcHRpb25UZXN0UmVzdWx0Lm1kKQogLSBbUGlwZWxpbmVdKGRvY3MvUGlwZWxpbmUubWQpCiAtIFtQaXBlbGluZUZpbHRlcl0oZG9jcy9QaXBlbGluZUZpbHRlci5tZCkKIC0gW1BpcGVsaW5lU3RlcF0oZG9jcy9QaXBlbGluZVN0ZXAubWQpCiAtIFtQb2x5Z29uXShkb2NzL1BvbHlnb24ubWQpCiAtIFtSYXRlTGltaXRdKGRvY3MvUmF0ZUxpbWl0Lm1kKQogLSBbUmVzZXRQYXNzd29yZFJlcVdlYl0oZG9jcy9SZXNldFBhc3N3b3JkUmVxV2ViLm1kKQogLSBbUmVzb3VyY2VdKGRvY3MvUmVzb3VyY2UubWQpCiAtIFtSZXNvdXJjZUFkZFJlcVdlYl0oZG9jcy9SZXNvdXJjZUFkZFJlcVdlYi5tZCkKIC0gW1Jlc291cmNlVXBkYXRlUmVxV2ViXShkb2NzL1Jlc291cmNlVXBkYXRlUmVxV2ViLm1kKQogLSBbUmVzb3VyY2VVcGRhdGVXZWJdKGRvY3MvUmVzb3VyY2VVcGRhdGVXZWIubWQpCiAtIFtSZXNvdXJjZVZlcnNpb25dKGRvY3MvUmVzb3VyY2VWZXJzaW9uLm1kKQogLSBbUmVzb3VyY2VWZXJzaW9uQWRkUmVxV2ViXShkb2NzL1Jlc291cmNlVmVyc2lvbkFkZFJlcVdlYi5tZCkKIC0gW1Jlc291cmNlVmVyc2lvblVwZGF0ZVJlcVdlYl0oZG9jcy9SZXNvdXJjZVZlcnNpb25VcGRhdGVSZXFXZWIubWQpCiAtIFtSZXNwb25zZUVudGl0eV0oZG9jcy9SZXNwb25zZUVudGl0eS5tZCkKIC0gW1J1bGVdKGRvY3MvUnVsZS5tZCkKIC0gW1NNU0FjdGlvbl0oZG9jcy9TTVNBY3Rpb24ubWQpCiAtIFtTTVNDb25uZWN0b3JCdXNpbmVzc1NldHRpbmdzQ3JlYXRpb25SZXFXZWJdKGRvY3MvU01TQ29ubmVjdG9yQnVzaW5lc3NTZXR0aW5nc0NyZWF0aW9uUmVxV2ViLm1kKQogLSBbU01TQ29ubmVjdG9yQnVzaW5lc3NTZXR0aW5nc0RlbGV0ZU1zaXNkblJlcVdlYl0oZG9jcy9TTVNDb25uZWN0b3JCdXNpbmVzc1NldHRpbmdzRGVsZXRlTXNpc2RuUmVxV2ViLm1kKQogLSBbU01TQ29ubmVjdG9yQnVzaW5lc3NTZXR0aW5nc1BhZ2VXZWJdKGRvY3MvU01TQ29ubmVjdG9yQnVzaW5lc3NTZXR0aW5nc1BhZ2VXZWIubWQpCiAtIFtTTVNDb25uZWN0b3JCdXNpbmVzc1NldHRpbmdzVXBkYXRlUmVxV2ViXShkb2NzL1NNU0Nvbm5lY3RvckJ1c2luZXNzU2V0dGluZ3NVcGRhdGVSZXFXZWIubWQpCiAtIFtTTVNDb25uZWN0b3JNc2lzZG5QYWdlV2ViXShkb2NzL1NNU0Nvbm5lY3Rvck1zaXNkblBhZ2VXZWIubWQpCiAtIFtTTVNDb25uZWN0b3JTZW5kU01TUmVxV2ViXShkb2NzL1NNU0Nvbm5lY3RvclNlbmRTTVNSZXFXZWIubWQpCiAtIFtTTVNDb25uZWN0b3JTZXR0aW5nc10oZG9jcy9TTVNDb25uZWN0b3JTZXR0aW5ncy5tZCkKIC0gW1Njb3BlQXBwbGljYXRpb25dKGRvY3MvU2NvcGVBcHBsaWNhdGlvbi5tZCkKIC0gW1NlYXJjaERhdGFNZXNzYWdlXShkb2NzL1NlYXJjaERhdGFNZXNzYWdlLm1kKQogLSBbU2VsZWN0aW9uQ3JpdGVyaWFdKGRvY3MvU2VsZWN0aW9uQ3JpdGVyaWEubWQpCiAtIFtTZW5kTWVzc2FnZVJlcXVlc3RdKGRvY3MvU2VuZE1lc3NhZ2VSZXF1ZXN0Lm1kKQogLSBbU2V0dGluZ3NTZWN0aW9uXShkb2NzL1NldHRpbmdzU2VjdGlvbi5tZCkKIC0gW1NpbGVudFBvbGljeV0oZG9jcy9TaWxlbnRQb2xpY3kubWQpCiAtIFtTaW1wbGVTdHJpbmdXZWJdKGRvY3MvU2ltcGxlU3RyaW5nV2ViLm1kKQogLSBbU291cmNlXShkb2NzL1NvdXJjZS5tZCkKIC0gW1N0YXRlQ2hhbmdlRmlsdGVyXShkb2NzL1N0YXRlQ2hhbmdlRmlsdGVyLm1kKQogLSBbU3RhdGVDaGFuZ2VUcmlnZ2VyXShkb2NzL1N0YXRlQ2hhbmdlVHJpZ2dlci5tZCkKIC0gW1N0YXRlUHJvY2Vzc2luZ0Z1bmN0aW9uVGVzdF0oZG9jcy9TdGF0ZVByb2Nlc3NpbmdGdW5jdGlvblRlc3QubWQpCiAtIFtTdGF0ZVByb2Nlc3NpbmdGdW5jdGlvblRlc3RSZXN1bHRdKGRvY3MvU3RhdGVQcm9jZXNzaW5nRnVuY3Rpb25UZXN0UmVzdWx0Lm1kKQogLSBbU3RhdGVQcm9jZXNzaW5nUnVsZV0oZG9jcy9TdGF0ZVByb2Nlc3NpbmdSdWxlLm1kKQogLSBbU3RvcmVkRGF0YU1lc3NhZ2VdKGRvY3MvU3RvcmVkRGF0YU1lc3NhZ2UubWQpCiAtIFtUYXJnZXRzXShkb2NzL1RhcmdldHMubWQpCiAtIFtUZW5hbnRdKGRvY3MvVGVuYW50Lm1kKQogLSBbVGVuYW50RGF5TWV0cmljc10oZG9jcy9UZW5hbnREYXlNZXRyaWNzLm1kKQogLSBbVGVuYW50RXh0ZXJuYWxWaWV3XShkb2NzL1RlbmFudEV4dGVybmFsVmlldy5tZCkKIC0gW1RlbmFudE1vbnRoTWV0cmljc10oZG9jcy9UZW5hbnRNb250aE1ldHJpY3MubWQpCiAtIFtUZW5hbnRTZXR0aW5nc10oZG9jcy9UZW5hbnRTZXR0aW5ncy5tZCkKIC0gW1RlbmFudFNldHRpbmdzVXBkYXRlUmVxV2ViXShkb2NzL1RlbmFudFNldHRpbmdzVXBkYXRlUmVxV2ViLm1kKQogLSBbVGVuYW50U3RhdHNXZWJdKGRvY3MvVGVuYW50U3RhdHNXZWIubWQpCiAtIFtUZW5hbnRXaXRoT2ZmZXJXZWJdKGRvY3MvVGVuYW50V2l0aE9mZmVyV2ViLm1kKQogLSBbVGhyZXNob2xkc10oZG9jcy9UaHJlc2hvbGRzLm1kKQogLSBbVHJhZmZpY10oZG9jcy9UcmFmZmljLm1kKQogLSBbVXBkYXRlQ29ubmVjdG9yTm9kZVJlcXVlc3RdKGRvY3MvVXBkYXRlQ29ubmVjdG9yTm9kZVJlcXVlc3QubWQpCiAtIFtVcGRhdGVEZXZpY2VGaXJtd2FyZVJlcVdlYl0oZG9jcy9VcGRhdGVEZXZpY2VGaXJtd2FyZVJlcVdlYi5tZCkKIC0gW1VwZGF0ZURldmljZVJlc291cmNlUmVxV2ViXShkb2NzL1VwZGF0ZURldmljZVJlc291cmNlUmVxV2ViLm1kKQogLSBbVXBkYXRlRW1haWxSZXFXZWJdKGRvY3MvVXBkYXRlRW1haWxSZXFXZWIubWQpCiAtIFtVcGRhdGVJbnRlcmZhY2VSZXFXZWJdKGRvY3MvVXBkYXRlSW50ZXJmYWNlUmVxV2ViLm1kKQogLSBbVXBkYXRlUGFzc3dvcmRSZXFXZWJdKGRvY3MvVXBkYXRlUGFzc3dvcmRSZXFXZWIubWQpCiAtIFtVcGRhdGVQYXNzd29yZFdpdGhUb2tlblJlcVdlYl0oZG9jcy9VcGRhdGVQYXNzd29yZFdpdGhUb2tlblJlcVdlYi5tZCkKIC0gW1VzZXJdKGRvY3MvVXNlci5tZCkKIC0gW1VzZXJBY3RpdmF0aW9uUmVxV2ViXShkb2NzL1VzZXJBY3RpdmF0aW9uUmVxV2ViLm1kKQogLSBbVXNlckNyZWF0aW9uUmVxV2ViXShkb2NzL1VzZXJDcmVhdGlvblJlcVdlYi5tZCkKIC0gW1VzZXJVcGRhdGVSZXFXZWJdKGRvY3MvVXNlclVwZGF0ZVJlcVdlYi5tZCkKIC0gW1ZlbmRvcl0oZG9jcy9WZW5kb3IubWQpCgoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgQXV0aG9yaXphdGlvbgoKIEVuZHBvaW50cyBkbyBub3QgcmVxdWlyZSBhdXRob3JpemF0aW9uLgoKCiMjIERvY3VtZW50YXRpb24gZm9yIFV0aWxpdHkgTWV0aG9kcwoKRHVlIHRvIHRoZSBmYWN0IHRoYXQgbW9kZWwgc3RydWN0dXJlIG1lbWJlcnMgYXJlIGFsbCBwb2ludGVycywgdGhpcyBwYWNrYWdlIGNvbnRhaW5zCmEgbnVtYmVyIG9mIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGVhc2lseSBvYnRhaW4gcG9pbnRlcnMgdG8gdmFsdWVzIG9mIGJhc2ljIHR5cGVzLgpFYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB0YWtlcyBhIHZhbHVlIG9mIHRoZSBnaXZlbiBiYXNpYyB0eXBlIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byBpdDoKCiogYFB0ckJvb2xgCiogYFB0ckludGAKKiBgUHRySW50MzJgCiogYFB0ckludDY0YAoqIGBQdHJGbG9hdGAKKiBgUHRyRmxvYXQzMmAKKiBgUHRyRmxvYXQ2NGAKKiBgUHRyU3RyaW5nYAoqIGBQdHJUaW1lYAoKIyMgQXV0aG9yCgpsaXZlb2JqZWN0cy5zdXBwb3J0QG9yYW5nZS5jb20KCg== readmeEtag: '"ba9e344ed3a20d2dea4f108b23fd997553984730"' readmeLastModified: Sun, 15 Nov 2020 10:24:46 GMT repositoryId: 290238732 description: Go client library for Orange Business Services Live Objects API created: '2020-08-25T14:33:57Z' updated: '2020-11-15T18:11:31Z' language: Shell archived: false stars: 0 watchers: 1 forks: 0 owner: efficap-energie logo: https://avatars.githubusercontent.com/u/63661671?v=4 repoEtag: '"32c0a56f4c06fb147948d34bbc5995df7d4f6a56edc6b08e1c99fa8d9076ba0f"' repoLastModified: Sun, 15 Nov 2020 18:11:31 GMT foundInMaster: true category: User Interfaces id: d52e311c4d9c5e91d1cad49a09e2f179 - source: openapi3 tags repository: https://github.com/hbhb-devloper/api-gateway v3: true repositoryMetadata: base64Readme: IyBhcGktZ2F0ZXdheQoK572R5YWzCg== readmeEtag: '"e01c41cd43dbd3c54753139ed6c3363cbd63c270"' readmeLastModified: Sat, 20 Mar 2021 11:57:36 GMT repositoryId: 349710957 description: 财务管理系统-后端服务-网关 created: '2021-03-20T11:52:58Z' updated: '2021-03-20T13:23:16Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"d682b055918b5d4375b4d76b1f5b7ec7770ce9d3f8b82a1a5fb7e7d8e1be2028"' repoLastModified: Sat, 20 Mar 2021 13:23:16 GMT foundInMaster: true category: - Server - Server Implementations id: c189ece14de04fd6d41171db664402fb - source: openapi3 tags repository: https://github.com/dmotta/c3alert v3: true id: 2b53e75c670fbcb4565f5088abe0242e repositoryMetadata: base64Readme: >- IyBHbyBBUEkgU2VydmVyIGZvciBzd2FnZ2VyCgpObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKQpodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2Rlc2NyaWJpbmctcmVxdWVzdC1ib2R5LwoKCiMjIE92ZXJ2aWV3ClRoaXMgc2VydmVyIHdhcyBnZW5lcmF0ZWQgYnkgdGhlIFtzd2FnZ2VyLWNvZGVnZW5dCihodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKSBwcm9qZWN0LiAgCkJ5IHVzaW5nIHRoZSBbT3BlbkFQSS1TcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgZnJvbSBhIHJlbW90ZSBzZXJ2ZXIsIHlvdSBjYW4gZWFzaWx5IGdlbmVyYXRlIGEgc2VydmVyIHN0dWIuICAKLQoKVG8gc2VlIGhvdyB0byBtYWtlIHRoaXMgeW91ciBvd24sIGxvb2sgaGVyZToKCltSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvUkVBRE1FLm1kKQoKLSBBUEkgdmVyc2lvbjogMS4wLjAKLSBCdWlsZCBkYXRlOiAyMDIxLTA2LTAyVDA1OjAyOjAxLjgwNFpbR01UXQoKCiMjIyBSdW5uaW5nIHRoZSBzZXJ2ZXIKVG8gcnVuIHRoZSBzZXJ2ZXIsIGZvbGxvdyB0aGVzZSBzaW1wbGUgc3RlcHM6CgpgYGAKZ28gcnVuIG1haW4uZ28KYGBgCgouL2thZmthLWNvbnNvbGUtY29uc3VtZXIgLS1ib290c3RyYXAtc2VydmVyIGxvY2FsaG9zdDo5MDkyIC0tZnJvbS1iZWdpbm5pbmcgLS10b3BpYyBtb25pdG9yLWFsZXJ0 readmeEtag: '"76cc6ce20fe435a1284ccca160b2e037f9248f1a"' readmeLastModified: Fri, 31 Dec 2021 16:55:48 GMT repositoryId: 376087712 description: c3alert created: '2021-06-11T16:47:22Z' updated: '2022-07-01T17:11:47Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: dmotta logo: https://avatars.githubusercontent.com/u/85045?v=4 repoEtag: '"c67c6dba2a08fa63f9ec4c632db17c460f66f859a4399b00d9fe2d6836512d39"' repoLastModified: Fri, 01 Jul 2022 17:11:47 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/marcsechet/good-smash v3: true repositoryMetadata: base64Readme: >- WyFbQ2lyY2xlQ0ldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL01hcmNTZWNoZXQvZ29vZC1zbWFzaC5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvTWFyY1NlY2hldC9nb29kLXNtYXNoKQpbIVtDcmVhdGVkIEJhZGdlXShodHRwczovL2JhZGdlcy5wdWZsZXIuZGV2L2NyZWF0ZWQvTWFyY1NlY2hldC9nb29kLXNtYXNoKV0oaHR0cHM6Ly9naXRodWIuY29tL01hcmNTZWNoZXQvZ29vZC1zbWFzaCkKWyFbQ3JlYXRlZCBCYWRnZV0oaHR0cHM6Ly9iYWRnZXMucHVmbGVyLmRldi91cGRhdGVkL01hcmNTZWNoZXQvZ29vZC1zbWFzaCldKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJjU2VjaGV0L2dvb2Qtc21hc2gpCiFbTGluZXMgb2YgY29kZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90b2tlaS9saW5lcy9naXRodWIvTWFyY1NlY2hldC9nb29kLXNtYXNoKQohW0dpdEh1YiByZXBvIHNpemVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlcG8tc2l6ZS9NYXJjU2VjaGV0L2dvb2Qtc21hc2gpCiFbR2l0SHViXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL01hcmNTZWNoZXQvZ29vZC1zbWFzaCkKCiMgR29vZCBTbWFzaAoKUHJvamVjdHMgY29udGFpbmluZyBhIHNpbmdsZSBCTyB1c2VkIGZvciBtdWx0aXBsZSBmcm9udCBlbmQgOgotIFNtYXNoIAotIFBhcGljb2xvCi0gUMOpcGl0ZXMKCk1heWJlIHNvbWUgZGF5IHRoaXMgQk8gd2lsbCBiZSBzcGxpdCBpbnRvIG1pY3Jvc2VydmljZXMgYnV0IG5vdCBzdXJlIHRoZSBmcmVlIGhlcm9rdSBjYW4gbWFuYWdlIHRoYXQuCgpBcmNoaXRlY3R1cmU6ClRoZSBwcm9qZWN0IGhhcyB0aGUgZm9sbG93aW5nIG1vZHVsZXMgOgotIHNtYXNoLWFwcCAoY29udGFpbnMgY29uZmlnLCBjb250cm9sbGVycywgbWFwcGVycyBhbmQgdXRpbHMpCi0gc21hc2gtc2VydmljZQotIHNtYXNoLXBlcnNpc3QgKGNvbnRhaW5zIGRhbyBhbmQgZW50aXRpZXMpCi0gc21hc2gtc3BlYyAoY29udGFpbnMgb3BlbmFwaSBzcGVjcykKCkluc3RhbGwgbm90ZXMgOiAKVGhlIGdlbmVyYXRlZCBzcGVjIG1pZ2h0IG5vdCBiZSBhY2Nlc3NpYmxlIGluIG90aGVyIG1vZHVsZXMgb2YgdGhlIHByb2plY3QuIFRvIGZpeCB0aGlzLCBvbiBJbnRlbGxpSiwgeW91IGNhbiBvcGVuIHByb2plY3Qgc2V0dGluZ3MgLT4gbW9kdWxlcyAtPiBnb29kc21hc2gtYXBwIC0+IGRlcGVuZGVuY2llcyAtPiBhZGQgbW9kdWxlIGRlcGVuZGVuY3kgZ29vZHNtYXNoLXNwZWMuIElmIHlvdSBoYXZlIGFuIGVycm9yIHdoaWxlIHNhdmluZyBiZWNhdXNlIGNvbnRlbnQgcm9vdCBpcyBhbHJlYWR5IGRlZmluZWQgaW4gb3RoZXIgbW9kdWxlIHByb2plY3Qgc2V0dGluZ3MgLT4gbW9kdWxlcyAtPiBnb29kc21hc2ggLT4gc291cmNlcyAtPiByZW1vdmUgcGF0aHMgaW4gdGhlIGNvbnRlbnQgcm9vdCB0YWIgbm90IGJlbG9uZ2luZyB0byBvdGhlciBtb2R1bGVzLgoKSG93IHRvIGZpeCBTcHJpbmcgQm9vdCBNdWx0aS1Nb2R1bGUgbWF2ZW4gcHJvamVjdCByZXBhY2thZ2UgZmFpbGVkIChTcHJpbmcgcHJvamVjdHMgd2l0aCBtdWx0aSBtb2R1bGVzKSA6IHB1dCB0aGUgc3ByaW5nLWJvb3QtbWF2ZW4tcGx1Z2luIGluIHRoZSBwb20gb2YgdGhlIG1vZHVsZSBjb250YWluaW5nIHRoZSBBcHBsaWNhdGlvbiBjbGFzcyAoaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzU3OTgzODAyKQoKCiMgQ29udHJpYnV0b3JzClshW0NvbnRyaWJ1dG9ycyBEaXNwbGF5XShodHRwczovL2JhZGdlcy5wdWZsZXIuZGV2L2NvbnRyaWJ1dG9ycy9NYXJjU2VjaGV0L2dvb2Qtc21hc2g/c2l6ZT01MCZwYWRkaW5nPTUmYm90cz10cnVlKV0oaHR0cHM6Ly9naXRodWIuY29tL01hcmNTZWNoZXQvZ29vZC1zbWFzaCkK readmeEtag: '"4fdca4eb7c38046ec40a86249eb290fc660c7280"' readmeLastModified: Fri, 18 Jun 2021 22:10:27 GMT repositoryId: 366968135 description: Projects containing a single BO used for multiple front end created: '2021-05-13T07:22:40Z' updated: '2021-06-18T22:10:30Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: MarcSechet logo: https://avatars.githubusercontent.com/u/30333108?v=4 license: Apache-2.0 repoEtag: '"5a9c30ddaac2ac5098b93b030942f42de9bc8aebdb0e0dd75cd6cbfe1b047c90"' repoLastModified: Fri, 18 Jun 2021 22:10:30 GMT foundInMaster: true category: SDK id: 5e62876014bbb73e70451d51165059f0 - source: openapi3 tags repository: https://github.com/romabilka/go-crud v3: true repositoryMetadata: base64Readme: >- IyBHTyBDUlVECgojI0RhdGEgaXMgc3RvcmVkIGluIG1lbW9yeQoKIyMgSG93IHRvIHJ1bgoxLiBDbG9uZSB0aGUgcHJvamVjdAoyLiBgYGBnbyBydW4gY21kL2dvLWNydWQvbWFpbi5nb2BgYAoKIyMgVG8gdHJ5IGdvIHRvIHRoZSBsaW5rCmh0dHA6Ly9sb2NhbGhvc3QvYXBpLwoKIyMgTGljZW5zZQpbTUlUIGxpY2Vuc2VdKExJQ0VOU0UubWQpLg== readmeEtag: '"3da803779915f63984a8b0958c7ddb3d9af605f1"' readmeLastModified: Thu, 03 Mar 2022 09:35:36 GMT repositoryId: 424592171 description: null created: '2021-11-04T12:45:03Z' updated: '2022-03-03T10:01:48Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: RomaBilka logo: https://avatars.githubusercontent.com/u/28790784?v=4 license: NOASSERTION repoEtag: '"add3185066a0207368e1f6023e6fd9820888ca5c49902f7ccc2e571ead4116b3"' repoLastModified: Thu, 03 Mar 2022 10:01:48 GMT foundInMaster: true category: Server Implementations id: 3d759a8fa4c01f11a2072e83f412475b - source: openapi3 tags repository: https://github.com/nanonets/api-docs v3: true repositoryMetadata: base64Readme: >- IyBOYW5vTmV0cyBBUEkgUmVmZXJlbmNlCgpodHRwczovL25hbm9uZXRzLmNvbS9kb2N1bWVudGF0aW9uCg== readmeEtag: '"e4ae4c014bd99eefd6b2d3153ecf534ac8b176d1"' readmeLastModified: Fri, 12 Nov 2021 08:47:05 GMT repositoryId: 426224312 description: NanoNets API Reference. created: '2021-11-09T12:41:15Z' updated: '2021-11-12T08:47:21Z' language: HTML archived: false stars: 0 watchers: 5 forks: 1 owner: NanoNets logo: https://avatars.githubusercontent.com/u/30330951?v=4 license: MIT repoEtag: '"1bd2126a3e646eb972cc4296e8ec143024fd25217c8d941309b656d3c7c73de3"' repoLastModified: Fri, 12 Nov 2021 08:47:21 GMT foundInMaster: true category: Testing id: 1ac680c35c2904f43169d32e6428a45d - source: openapi3 tags repository: https://github.com/subodhjenasymbl/symbl-api v3: true id: 8893554b2dfc65220058c10804c4a356 repositoryMetadata: base64Readme: >- IyBTeW1ibCBBUEkgRG9jdW1lbnRhdGlvbgpTeW1ibCBSRVNUIEFQSSBEb2N1bWVudGF0aW9uCg== readmeEtag: '"61e74e83e83e78574e35a436b74ccf0c27c946ca"' readmeLastModified: Fri, 03 Jun 2022 07:33:38 GMT repositoryId: 499417683 description: Symbl OpenAPI3 Spec created: '2022-06-03T07:21:22Z' updated: '2022-06-03T07:32:43Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: subodhjenasymbl logo: https://avatars.githubusercontent.com/u/106313352?v=4 repoEtag: '"be532ac29dde4368e566a68ce91c1ad08017cf43a6633bdd794047cbbc4a8618"' repoLastModified: Fri, 03 Jun 2022 07:32:43 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/onmetal/openapi-extractor v3: true id: 8e0801e45b5f14df2617fa79faf4a28c repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWV4dHJhY3RvcgoKWyFbVGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL29ubWV0YWwvb3BlbmFwaS1leHRyYWN0b3IvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL29ubWV0YWwvb3BlbmFwaS1leHRyYWN0b3IvYWN0aW9ucy93b3JrZmxvd3MvdGVzdC55bWwpClshW1BScyBXZWxjb21lXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BScy13ZWxjb21lLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vbWFrZWFwdWxscmVxdWVzdC5jb20pClshW0dpdEh1YiBMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1MaWNlbnNlJm1lc3NhZ2U9QXBhY2hlLTIuMCZjb2xvcj1ibHVlJnN0eWxlPWZsYXQtc3F1YXJlKV0oTElDRU5TRSkKClRoZSBgb3BlbmFwaS1leHRyYWN0b3JgIGV4dHJhY3RzIHRoZSBPcGVuQVBJIHYyIGFuZCB2MyBzcGVjaWZpY2F0aW9ucyBvZiBhIGdpdmVuIEt1YmVybmV0ZXMgQVBJIHNlcnZlci4KCiMjIEluc3RhbGxhdGlvbgoKIyMjIEZyb20gc291cmNlCgpUbyBpbnN0YWxsIHRoZSBgb3BlbmFwaS1leHRyYWN0b3JgIGJpbmFyeSBpbnRvIHlvdXIgR28gYmluIHBhdGggcnVuCgpgYGBiYXNoCmdvIGluc3RhbGwgZ2l0aHViLmNvbS9vbm1ldGFsL29wZW5hcGktZXh0cmFjdG9yL2NtZC9vcGVuYXBpLWV4dHJhY3RvckBtYWluCmBgYAoKIyMgVXNhZ2UKCiMjIyBDb21tYW5kIGJhc2VkIGV4dHJhY3Rpb24KCkluIGNhc2UgeW91IGhhdmUgdGhlIGFwaSBzZXJ2ZXIgYmluYXJ5IHByZXNlbnQsIHlvdSBjYW4gZXh0cmFjdCB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBieSBydW5uaW5nCgpgYGBzaGVsbApvcGVuYXBpLWV4dHJhY3RvciAtLWFwaXNlcnZlci1jb21tYW5kPTxQQVRILVRPLUFQSVNFUlZFUi1CSU4+IFwKICAtLWFwaXNlcnZpY2VzPTxQQVRILVRPLUFQSVNFUlZJQ0VTLURJUj4KYGBgCgojIyMgR28gbW9kdWxlIGJhc2VkIGV4dHJhY3Rpb24KClRoZSBbYHNhbXBsZWBdKC9zYW1wbGUpIGZvbGRlciBjb250YWlucyBhbiBleGFtcGxlIG9uIGhvdyB0byBleHRyYWN0IHRoZSBPcGVuIEFQSSBzcGVjIGZyb20gYW4gYXBpIHNlcnZlciBwYWNrYWdlLiBJbiAKb3VyIGV4YW1wbGUgd2UgYXJlIHVzaW5nIHRoZSBbYG9ubWV0YWwtYXBpYF0oaHR0cHM6Ly9naXRodWIuY29tL29ubWV0YWwvb25tZXRhbC1hcGkpIGFnZ3JlZ2F0ZWQgYXBpIHNlcnZlci4KCmBgYHNoZWxsCm9wZW5hcGktZXh0cmFjdG9yIC0tYXBpc2VydmVyLXBhY2thZ2U9Z2l0aHViLmNvbS9vbm1ldGFsL29ubWV0YWwtYXBpL2NtZC9vbm1ldGFsLWFwaXNlcnZlciBcCiAgLS1hcGlzZXJ2ZXItYnVpbGQtb3B0cz1tb2QgXAogIC0tYXBpc2VydmljZXM9PFBBVEgtVE8tQVBJU0VSVklDRVMtRElSPgpgYGAKCkluIGNhc2UgeW91IHdhbnQgdG8gdXNlIHlvdXIgb3duIHBhY2thZ2UsIGZpcnN0IGBnbyBnZXRgIGl0IHNvIHlvdSBoYXZlIHRvIGNvcnJlY3QgZGVwZW5kZW5jaWVzIGluIHlvdXIgYGdvLm1vZGAgZmlsZSBhbmQKYWRqdXN0IHRoZSBgLS1hcGlzZXJ2ZXItcGFja2FnZWAgZmxhZyBhY2NvcmRpbmdseS4KCiMjIyBPdXRwdXQKClRoZSBleHRyYWN0ZWQgT3BlbkFQSSB2MiBhbmQgdjMgZmlsZXMgY2FuIGJlIGZvdW5kIGluIGN1cnJlbnQgZm9sZGVyIHdoZXJlIHRoZSB2MiB2ZXJzaW9uIHdpbGwgYmUgc3RvcmVkIGluIHRoZSBgc3dhZ2dlci5qc29uYApmaWxlIGFuZCB0aGUgdjMgdmVyc2lvbnMgd2lsbCBiZSBzdG9yZWQgaW4gaW5kaXZpZHVhbCBmaWxlcyBwZXIgZ3JvdXAgaW4gdGhlIGAuL3YzYCBmb2xkZXIuCgpUbyBvdmVycmlkZSB0aGUgbG9jYXRpb24gb2YgdGhlIG91dHB1dCBwYXNzIG9uIHRoZSBgLS1vdXRwdXRgIGZsYWcgZS5nLiB2aWEgYC0tb3V0cHV0PWRldmAgc3RvcmUgZXh0cmFjdCB0aGUgZmlsZXMgaW50bwp0aGUgYC4vZGV2YCBmb2xkZXIuCgojIyBDb250cmlidXRpbmcKCldlJ2QgbG92ZSB0byBnZXQgZmVlZGJhY2sgZnJvbSB5b3UuIFBsZWFzZSByZXBvcnQgYnVncywgc3VnZ2VzdGlvbnMgb3IgcG9zdCBxdWVzdGlvbnMgYnkgb3BlbmluZyBhIEdpdEh1YiBpc3N1ZS4KCiMjIExpY2Vuc2UKCkNvcHlyaWdodCAyMDIyLgoKTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo= readmeEtag: '"9e4b91b063630400194626098da2de0885a9adf8"' readmeLastModified: Tue, 28 Nov 2023 11:08:11 GMT repositoryId: 724646702 description: null created: '2023-11-28T14:05:19Z' updated: '2023-11-28T14:09:15Z' language: Go archived: true stars: 0 watchers: 4 forks: 0 owner: onmetal logo: https://avatars.githubusercontent.com/u/65116310?v=4 repoEtag: '"82aae59836d08592a7d72d7026b5930f2d67eaa063133b79bc01867d4bd9ae0a"' repoLastModified: Tue, 28 Nov 2023 14:09:15 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/experienced-dev/java-starter-template v3: true id: b514b5f0860f68c23c937fe5fa4afc00 repositoryMetadata: base64Readme: >- IyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyBEb2N1bWVudGF0aW9uCgpBdXRvIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uCgoqIFN3YWdnZXItIFVJIC9zd2FnZ2VyLXVpL2luZGV4Lmh0bWwKKiBPcGVuQXBpIC92My9hcGktZG9jcwo= readmeEtag: '"4f6c54b564e35aa424d4ce74f40e267e4d9502e7"' readmeLastModified: Thu, 30 Nov 2023 20:57:37 GMT repositoryId: 678730576 description: Java Starter Template created: '2023-08-15T08:33:21Z' updated: '2023-08-26T14:47:42Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: experienced-dev logo: https://avatars.githubusercontent.com/u/61656932?v=4 license: MIT repoEtag: '"f400d70a9d09bffdcdc8e9a4d112e81d62170b89cc72eebe661bd2031559599a"' repoLastModified: Sat, 26 Aug 2023 14:47:42 GMT category: - Parsers - Server Implementations foundInMaster: true - source: openapi3 tags repository: >- https://github.com/codepenguin-org/codepenguin-lab-pypl-index-data-rest-service v3: true id: 3bd8160d8212042c9ca12fb69d230e18 repositoryMetadata: base64Readme: >- IyBjb2RlcGVuZ3Vpbi1sYWItcHlwbC1pbmRleC1kYXRhLXJlc3Qtc2VydmljZQoKIyMgRGF0YQoKVGhlIGRhdGEgaXMgZXh0cmFjdGVkIGZyb20gW1BZUEwgUG9wdWxhcml0WSBvZiBQcm9ncmFtbWluZyBMYW5ndWFnZV0uCgojIyBMaWNlbnNlCgpbQXR0cmlidXRpb24gMy4wIFVucG9ydGVkIChDQyBCWSAzLjApXShodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLykgYXMgZGVmaW5lZCBieSB0aGUgb3duZXJzCm9mIFtQWVBMIFBvcHVsYXJpdFkgb2YgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VdLgoKCltQWVBMIFBvcHVsYXJpdFkgb2YgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VdOihodHRwczovL3B5cGwuZ2l0aHViLmlvKQo= readmeEtag: '"a6987d0649b1657de864a05f8226f4d8a148f70e"' readmeLastModified: Mon, 19 Sep 2022 20:22:55 GMT repositoryId: 538598355 description: Spring Boot REST application to return the Pypl Indices Data. created: '2022-09-19T16:38:23Z' updated: '2022-09-19T20:27:10Z' language: Java archived: false stars: 0 watchers: 1 forks: 1 owner: codepenguin-org logo: https://avatars.githubusercontent.com/u/33432099?v=4 license: NOASSERTION repoEtag: '"20960b6a9e358c40244ae6e7cbc37a2f4e6322408432505befdc2df0fc6f51e2"' repoLastModified: Mon, 19 Sep 2022 20:27:10 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/ibakchod/oatpp-todo v3: true id: b43c8b235c00ce710c0a040e2c74b19a repositoryMetadata: base64Readme: IyBRYXRwcCBUb2Rv readmeEtag: '"21e9a325a92b37d72af29eaf59f790cb41a2a2f5"' readmeLastModified: Sun, 07 Aug 2022 10:44:38 GMT repositoryId: 505103853 description: A light-weight To-Do restful API created: '2022-06-19T12:29:45Z' updated: '2022-08-21T09:14:06Z' language: C++ archived: false stars: 0 watchers: 1 forks: 0 owner: ibakchod logo: https://avatars.githubusercontent.com/u/107798368?v=4 license: MIT repoEtag: '"2ff23d02a2661189a2f0d41f305ea067b731042740d70c8ddb4bb31d22da047f"' repoLastModified: Sun, 21 Aug 2022 09:14:06 GMT category: - Data Validators - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/simonmicro/access-control v3: true id: 8ace88db44940eca607aace7f40c1b59 repositoryMetadata: base64Readme: >- IyBXaGF0IGlzIHRoaXM/CgohW2xvZ2luXShkb2NzL2ltZy9sb2dpbi5wbmcpCiFbZGFzaGJvYXJkXShkb2NzL2ltZy9kYXNoLnBuZykKClRoaXMgYXBwbGljYXRpb24gd2FzIGRldmVsb3BlZCB0byB3b3JrIGluc2lkZSBhIGNsb3VkLW5hdGl2ZSBlbnZpcm9ubWVudCAoS3ViZXJuZXRlcyEpIGFuZCB0byBwcm90ZWN0IGl0cyB3ZWItYXBwbGljYXRpb25zIHdpdGggYW4gYWRkaXRpb25hbCBsYXllciBvZiBzZWN1cml0eS4KClRoZXJlIGlzIG5vIG5lZWQgZm9yIGUuZy4gYSBWUE4tY2xpZW50IG9uIHRoZSBfdXNlcnNfIHNpZGUsIGluc3RlYWQgdGhlaXIgcmVxdWVzdHMgd2lsbCBzaW1wbHkgYmUgcmV3cml0dGVuIHRvIHRoZSBhdXRoZW50aWNhdGlvbiBsYXllciBvZiB0aGlzIHNvZnR3YXJlLiBUaGlzIHNvbHV0aW9uIGlzIG5vdCBwZXJmZWN0IGFuZCBvbmx5IG1lYW50IGFzIGFuIGFkZGl0aW9uYWwgb2Ygc2VjdXJpdHk6IEl0IHdvcmtzIGJ5IHdoaXRlbGlzdGluZyBfdXNlcnNfIHB1YmxpYyBJUHY0IGZvciBhIHNldCBvZiBfc2NvcGVzXyAobGlrZSBgc3R1ZmYuZXhhbXBsZS5jb21gKSBieSBwcm92aWRpbmcgYSBsaXN0IG9mIElQdjQtYWRkcmVzc2VzIGZvciB0aGUgdXNlIGluc2lkZSBjb25maWdtYXBzIChlLmcuIGZvciB1c2UgaW5zaWRlIE5naW54KS4gSXQgdGhlcmZvcmUgd29ya3MgYmVzdCBmb3IgInNtYWxsIiBhbW91bnQgb2YgX3VzZXJzXyBvbmx5LgoKIyMgU2VydmljZXMKKiBgYXBpYCBQcm92aWRlcyBhIFJFU1QtZnVsIGVuZHBvaW50IHdpdGggV2ViU29ja2V0cyBhbmQgZG9jdW1lbnRhdGlvbgoqIGBjb25maWdgIEFwcGxpZXMgYSBnaXZlbiBZQU1MIHRvIHRoZSBkYXRhYmFzZSAoc3VwcG9ydHMgbGl2ZSBjaGFuZ2VzKQoqIGBkYXNoYm9hcmRgIFByb3ZpZGVzIGEgc3RhdGljIHNldCBvZiBmaWxlcyBhcyB0aGUgZGFzaGJvYXJkLCBleHBlY3RzIHRoZSBwYXRoIGAvYXBpYCB0byBiZSByb3V0ZWQgdG8gdGhlIGBhcGlgIHNlcnZpY2UgLSB0byBjaGFuZ2UgdGhhdCAoZS5nLiB0byB1c2UgYW4gb3duIHN1Yi1kb21haW4gZm9yIHRoZSBhcGkpLCB5b3UgaGF2ZSB0byBjb21waWxlIHRoZSBkYXNoYm9hcmQgeW91cnNlbGYuLi4KKiBgcHJvdmlzaW9uYCBUaGlzIGNvbnRhaW5lciB1c2VzIHRoZSBga3ViZWN0bGAgY29tbWFuZCB0byBhcHBseSBjaGFuZ2VzIHRvIHRoZSBwb2RzIGFuZCBjb25maWdtYXBzCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCiMjIyBBUEksIERhc2hib2FyZCAmIG1vcmUKQWxsIHNlcnZpY2VzIChleGNlcHQgdGhlIGBkYXNoYm9hcmRgKSBuZWVkIGFjY2VzcyB0byBhIFJlZGlzIGRhdGFiYXNlIGluc3RhbmNlLiBUbyBydW4gc3VjaCBpbnN0YW5jZSBsb2NhbGx5LCB0cnkgdGhpcyAoYWNjb3JkaW5nIHRvIGl0cyBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL3JlZGlzKSk6CgpgYGBiYXNoCmRvY2tlciBydW4gLXYgIiQocHdkKS9yZWRpczovZGF0YSIgLXAgNjM3OTo2Mzc5IHJlZGlzIHJlZGlzLXNlcnZlciAtLXNhdmUgNjAgMSAtLWxvZ2xldmVsIHdhcm5pbmcKYGBgCgpUbyBjb25maWd1cmUgdGhlIHNlcnZpY2VzIHRvIHVzZSB0aGlzIGluc3RhbmNlLCB0YWtlIGEgbG9vayBpbnRvIHRoZSBgLmdpdGxhYi8qL0RvY2tlcmZpbGVgIGZpbGVzIGZvciB0aGUgc2VydmljZXMgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKQXMgeW91IG1heSBoYXZlIG5vdGVkLCB0aGUgc2VydmljZSBgY29uZmlnYCBleHBlY3RzIGEgWUFNTCBmaWxlIHRvIHByZXBhcmUgdGhlIF9zY29wZXNfIGFuZCBfdXNlcnNfLiBUYWtlIGEgbG9vayBpbnRvIHRoZSBgY29uZmlnLnNhbXBsZS55YW1sYCB0byBsZWFybiBtb3JlIQoKWW91IHRoZW4gaGF2ZSB0byBleHBvc2UgdGhlIGBkYXNoYm9hcmRgIGFuZCBgYXBpYCBzZXJ2aWNlcyB0byB0aGUgX3VzZXJzXyBieSBlLmcuIHVzaW5nIGEgTmdpbnggaW5zdGFjZSBhcyBhIHJldmVyc2UgcHJveHkuIEZvciB0aGUgYGRhc2hib2FyZGAganVzdCBwcm94eSByZXF1ZXN0cyB0byB0aGUgYGRhc2hib2FyZGAgc2VydmljZSBhbmQgZm9yIHRoZSBgYXBpYCwgZW5zdXJlIHRoZSBwYXRoIGAvYXBpYCBvZiB5b3VyIE5naW54IGlzIHByb3hpZWQgdG8gdGhlIGBhcGlgIHNlcnZpY2UgKHRha2UgYSBsb29rIGF0IFtVdmljb3JuIERlcGxveW1lbnRdKGh0dHBzOi8vd3d3LnV2aWNvcm4ub3JnL2RlcGxveW1lbnQvI3J1bm5pbmctYmVoaW5kLW5naW54KSBhbmQgdGhlIGFwaSBlbnZpcm9ubWVudCB2YXJpYWJsZXMpLgoKKipSYXRlIGxpbWl0cyoqIGFyZSBzdHJvbmdseSByZWNvbW1lbmRlZCB0byBhZGQgYW4gYWRkaXRpb25hbCBsYXllciBvZiBzZWN1cml0eSB0byB5b3VyIGFwaSBlbmRwb2ludCEgSGVyZSBpcyBhbiBleGFtcGxlIGZvciBhIE5naW54IGNvbmZpZ3VyYXRpb24gb2YgdGhlIGBkYXNoYm9hcmRgIHdpdGggdGhlIGBhcGlgIHNlcnZpY2UgbWFwcGVkIHRvIGAvYXBpYDoKCmBgYG5naW54CmxpbWl0X3JlcV96b25lICRiaW5hcnlfcmVtb3RlX2FkZHIgem9uZT1hY2Nlc3NfYXBpX2xpbWl0OjEwbSByYXRlPTRyL3M7CgpzZXJ2ZXIgewogICAgbGlzdGVuIDQ0MyBzc2w7CiAgICBzZXJ2ZXJfbmFtZSBhY2Nlc3MtY29udHJvbC5leGFtcGxlLmNvbTsKCiAgICBzc2xfY2VydGlmaWNhdGUgLi4uOwogICAgc3NsX2NlcnRpZmljYXRlX2tleSAuLi47CgogICAgbG9jYXRpb24gLyB7CiAgICAgICAgc2V0ICRlbmRwb2ludCBkYXNoYm9hcmQtc2VydmljZS5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsOwogICAgICAgIHJlc29sdmVyIGt1YmUtZG5zLmt1YmUtc3lzdGVtLnN2Yy5jbHVzdGVyLmxvY2FsOwogICAgICAgIHByb3h5X3Bhc3MgaHR0cDovLyRlbmRwb2ludDsKICAgIH0KCiAgICBsb2NhdGlvbiAvYXBpLyB7CiAgICAgICAgIyAtPiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzMzMjU1ODQKICAgICAgICByZXdyaXRlIF4vYXBpLyguKikgLyQxICBicmVhazsKICAgICAgICByZXNvbHZlciBrdWJlLWRucy5rdWJlLXN5c3RlbS5zdmMuY2x1c3Rlci5sb2NhbDsKICAgICAgICBwcm94eV9wYXNzIGh0dHA6Ly9hcGktc2VydmljZS5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsJHVyaSRpc19hcmdzJGFyZ3M7CiAgICAgICAgIyBMaW1pdCBpbnRlcmFjdGlvbiB0byB0aGUgQVBJCiAgICAgICAgbGltaXRfcmVxIHpvbmU9YWNjZXNzX2FwaV9saW1pdCBidXJzdD0zMiBkZWxheT04OwogICAgICAgIGxpbWl0X3JlcV9zdGF0dXMgNDI5OwogICAgICAgICMgSW5mb3JtIHRhcmdldCBob3N0IGFib3V0IHByb3h5IGNsaWVudC4uLgogICAgICAgIHByb3h5X3NldF9oZWFkZXIgSG9zdCAkaG9zdDsKICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtUmVhbC1JUCAgJHJlbW90ZV9hZGRyOwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtRm9yICRwcm94eV9hZGRfeF9mb3J3YXJkZWRfZm9yOwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtUHJvdG8gJHNjaGVtZTsKICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtRm9yd2FyZGVkLVByb3RvY29sICRzY2hlbWU7CiAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Ib3N0ICRodHRwX2hvc3Q7CiAgICAgICAgIyBTdXBwb3J0IFdlYlNvY2tldCBjb25uZWN0aW9ucy4uLgogICAgICAgIHByb3h5X2h0dHBfdmVyc2lvbiAxLjE7ICMgRGVmYXVsdCBpcyAxLjAKICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFVwZ3JhZGUgJGh0dHBfdXBncmFkZTsKICAgICAgICBwcm94eV9zZXRfaGVhZGVyIENvbm5lY3Rpb24gInVwZ3JhZGUiOwogICAgICAgICMgV2FpdCBmb3IgeCBzZWNvbmRzIGZvciB0aGUgdXBsaW5rLi4uCiAgICAgICAgcHJveHlfY29ubmVjdF90aW1lb3V0IDFkOyAjIEtlZXAgd2Vic29ja2V0cyBhbGl2ZSEKICAgICAgICBwcm94eV9zZW5kX3RpbWVvdXQgMWQ7ICMgS2VlcCB3ZWJzb2NrZXRzIGFsaXZlIQogICAgICAgIHByb3h5X3JlYWRfdGltZW91dCAxZDsgIyBLZWVwIHdlYnNvY2tldHMgYWxpdmUhCiAgICAgICAgc2VuZF90aW1lb3V0IDEwOwogICAgfQp9CmBgYAoKIyMjIENvbmZpZ3VyZSB5b3VyIE5naW54ClRoZSBgcHJvdmlzaW9uYCBzZXJ2aWNlIG9mIHRoaXMgcHJvamVjdCBpcyBjb21wYXJ0aWJsZSB3aXRoIE5naW54IGFuZCBpdHMgYGdlb19pcGAgbW9kdWxlLiBUaGlzIGlzIGFjaGlldmVkIGJ5IHVwZGF0aW5nIGEgY29uZmlnbWFwIGluc2lkZSB0aGUgS3ViZXJuZXRlcyBjbHVzdGVyLCB3aGljaCBob2xkcyBhIGxpc3Qgb2YgSVBzIGZvciB0aGUgY29uZmlndXJlZCBfc2NvcGVzXy4gQXMgeW91IG1heSBoYXZlIG5vdGVkLCBOZ2lueCBkb2VzIG5vdCByZWxvYWQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgb24gaXRzIG93biBpZiBhbnkgY2hhbmdlIG9jY3Vycy4gRm9yIHRoaXMgYSBzbWFsbCBzaWRlY2FyIGlzIHJlcXVpcmVkIChlLmcuIGJlbG93KS4gRnVydGhlcm1vcmUsIHlvdSBhbHNvIGhhdmUgdG8gY29uZmlndXJlIHlvdXIgTmdpbnggdG8gcmVzcGVjdCB0aGUgbGlzdHMgZnJvbSB0aGUgKHRoZW4gbW91bnRlZCkgY29uZmlnbWFwLiBTZWUgYmVsb3cgZm9yIGFuIGV4YW1wbGUgdG9vLgoKTmdpbnggd2l0aCBhIHNpZGVjYXIgZm9yIGF1dG9tYXRpYyByZWxvYWRzOgpgYGB5YW1sCmFwaVZlcnNpb246IGFwcHMvdjEKa2luZDogRGFlbW9uU2V0Cm1ldGFkYXRhOgogIG5hbWU6IG5naW54CnNwZWM6CiAgc2VsZWN0b3I6CiAgICBtYXRjaExhYmVsczoKICAgICAgYXBwOiBuZ2lueAogIHRlbXBsYXRlOgogICAgbWV0YWRhdGE6CiAgICAgIGxhYmVsczoKICAgICAgICBhcHA6IG5naW54CiAgICBzcGVjOgogICAgICBzaGFyZVByb2Nlc3NOYW1lc3BhY2U6IHRydWUgIyBSZXF1aXJlZCBmb3Igc2VuZGluZyB0aGUgcmVsb2FkIHNpZ25hbCB0byBOZ2lueAogICAgICBjb250YWluZXJzOgogICAgICAtIG5hbWU6IGNvbmZpZy1yZWxvYWRlcgogICAgICAgIGltYWdlOiByZWFsc2ltb25taWNyby9kZWJpYW4taW5vdGlmeXdhaXQKICAgICAgICAjIERvIE5PVCBsaXN0ZW4gdG8gYWxsIGV2ZW50cywgb3RoZXJ3aXNlIHlvdSB3aWxsIGdldCBzdHVjayBpbiBhIGxvb3AgKGJlY2F1c2UgTkdJTlggd2lsbCB0cmlnZ2VyICJjbG9zZSIgYWZ0ZXIgcmVhZGluZyB0aGVtIHdpdGggImFjY2VzcyIpLgogICAgICAgIGFyZ3M6IFsiLWMiLCAiZWNobyAnUmVhZHkgdG8gZ28hJzsgaW5vdGlmeXdhaXQgLWUgbW9kaWZ5IC1lIGNyZWF0ZSAtZSBtb2RpZnkgLWUgZGVsZXRlIC1tIC1xIC1yIC0tZm9ybWF0ICcldyVmJyAnL2dlb19pcHMvJyB8IHdoaWxlIHJlYWQgLXIgcGF0aDsgZG8gZWNobyBcIiQoZGF0ZSk6ICRwYXRoIGNoYW5nZWQhXCI7IGVjaG8gXCJcdFNraXBwaW5nICQodGltZW91dCAzIGNhdCB8IHdjIC1sKSBmdXJ0aGVyIGNoYW5nZXMuLi5cIjsga2lsbCAtcyBIVVAgJChwZ3JlcCAtbyBuZ2lueCk7IGRvbmUiXQogICAgICAgIHZvbHVtZU1vdW50czoKICAgICAgICAtIG5hbWU6IG5naW54LWNvbmZpZy1nZW8taXBzLXZvbHVtZQogICAgICAgICAgbW91bnRQYXRoOiAvZ2VvX2lwcy8KICAgICAgICAgIHJlYWRPbmx5OiB0cnVlCiAgICAgIC0gbmFtZTogbmdpbngKICAgICAgICBpbWFnZTogbmdpbngKICAgICAgICB2b2x1bWVNb3VudHM6CiAgICAgICAgLSBuYW1lOiBuZ2lueC1jb25maWctZ2VvLWlwcy12b2x1bWUKICAgICAgICAgIG1vdW50UGF0aDogL2dlb19pcHMvCiAgICAgICAgICByZWFkT25seTogdHJ1ZQogICAgICAgIHBvcnRzOgogICAgICAgIC0gY29udGFpbmVyUG9ydDogODAKICAgICAgICAtIGNvbnRhaW5lclBvcnQ6IDQ0MwogICAgICB2b2x1bWVzOgogICAgICAtIG5hbWU6IG5naW54LWNvbmZpZy1nZW8taXBzLXZvbHVtZQogICAgICAgIGNvbmZpZ01hcDoKICAgICAgICAgIG5hbWU6IG5naW54LWNvbmZpZy1nZW8taXBzCmBgYAoKTmdpbnggY29uZmlndXJhdGlvbiBmb3IgYGdlb19pcGAgbGlzdHMgZnJvbSBgL2dlb19pcHMvZHVtbXkubGlzdGA6CmBgYG5naW54CmdlbyAkZHVtbXlfbGlzdCB7CiAgICBpbmNsdWRlIC9nZW9faXBzL2R1bW15Lmxpc3Q7Cn0KCnNlcnZlciB7CiAgICBsaXN0ZW4gNDQzIHNzbDsKICAgIHNlcnZlcl9uYW1lIHNlcnZpY2UuZXhhbXBsZS5jb207CgogICAgc3NsX2NlcnRpZmljYXRlIC4uLjsKICAgIHNzbF9jZXJ0aWZpY2F0ZV9rZXkgLi4uOwoKICAgIGxvY2F0aW9uIC8gewogICAgICAgIGlmICgkZHVtbXlfbGlzdCA9IDEpIHsKICAgICAgICAgICAgIyByb290IC9zdWNjZXNzOwogICAgICAgICAgICAjIC4uLm9yIHVzZSBpbmxpbmUgSFRNTC4uLgogICAgICAgICAgICBhZGRfaGVhZGVyIENvbnRlbnQtVHlwZSB0ZXh0L2h0bWw7CiAgICAgICAgICAgIHJldHVybiAyMDAgJzxodG1sPjxib2R5PjxoMT5BY2Nlc3MgZ3JhbnRlZCE8L2gxPjwvYm9keT48L2h0bWw+JzsKICAgICAgICB9CiAgICAgICAgaWYgKCRkdW1teV9saXN0ICE9IDEpIHsKICAgICAgICAgICAgIyBZb3UgY2FuIGFsc28gdXNlIHRoZSAicmV3cml0ZSIgaW5zdGVhZCBvZiB0aGUgInJvb3QiIChvciB3aGF0ZXZlcikgc3RhdGVtZW50IHRvIGRpcmVjdGx5IHNlbmQgdGhlIHVzZXIgdG8gdGhlIGFjY2Vzcy1jb250cm9sIHdlYmludGVyZmFjZS4KICAgICAgICAgICAgIyBNYWtlIHN1cmUgdG8gaW5zZXJ0IHRoZSBleHRlcm5hbCByZWFjaGlibGUgaG9zdG5hbWUgYmVsb3chCiAgICAgICAgICAgICMgcmV3cml0ZSBeICRzY2hlbWU6Ly9FWFRFUk5BTF9IT1NUTkFNRV9PRl9JTlRFUkZBQ0UvcmVxdWVzdC8kc2NoZW1lLyRob3N0JHVyaSRpc19hcmdzJGFyZ3MgcmVkaXJlY3Q7CgogICAgICAgICAgICAjIHJvb3QgL2ZhaWx1cmU7CiAgICAgICAgICAgICMgLi4ub3IgdXNlIGlubGluZSBIVE1MLi4uCiAgICAgICAgICAgIGFkZF9oZWFkZXIgQ29udGVudC1UeXBlIHRleHQvaHRtbDsKICAgICAgICAgICAgcmV0dXJuIDQwMyAnPGh0bWw+PGJvZHk+PGgxPkFjY2VzcyBkZW5pZWQhPC9oMT48L2JvZHk+PC9odG1sPic7CiAgICAgICAgfQogICAgfQp9CmBgYA== readmeEtag: '"227a34b411f34342121dee11ad0e650701c70a6a"' readmeLastModified: Wed, 15 Mar 2023 23:11:53 GMT repositoryId: 535276710 description: An access control system for cloud-native applications. created: '2022-09-11T11:28:07Z' updated: '2022-09-11T11:36:44Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: simonmicro logo: https://avatars.githubusercontent.com/u/24966116?v=4 repoEtag: '"70e4bef0f73b43cb197b654e94f9393ed7e09153411b0358bcc345aff06ec046"' repoLastModified: Sun, 11 Sep 2022 11:36:44 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/isaguler/weather-api v3: true id: bbf658d41ec2f229226b7c500a531c82 repositoryMetadata: base64Readme: >- IyMjIGVudiBhbmQgdGVjaHMKLSBKYXZhIDE3ICYgU3ByaW5nQm9vdCAzCi0gRG9ja2VyICYgRG9ja2VyLUNvbXBvc2UKLSBQcm9tZXRoZXVzCi0gR3JhZmFuYQotIE9wZW5BUEkgRG9jCi0gV2VhdGhlclN0YWNrIEFwaQotIEgyIERhdGFiYXNlCi0gU3ByaW5nIENhY2hlCi0gUmVzaWxpZW5jZTRqCi0gU2xmNGoKCiMjIyBlbmRwb2ludHMKLSBncmFmYW5hIC0+IGxvY2FsaG9zdDozMDAwCi0gcHJvbWV0aGV1cyAtPiBsb2NhbGhvc3Q6OTA5MAotIGFjdHVhdG9yIC0+IGxvY2FsaG9zdDo5NTk1L2FjdHVhdG9yCi0gYXBwIC0+IGxvY2FsaG9zdDo5NTk1 readmeEtag: '"8088c523432ab808db31a1221ff33156caf0e32d"' readmeLastModified: Thu, 30 Mar 2023 07:42:41 GMT repositoryId: 621183272 description: Current Weather Information for Cities created: '2023-03-30T06:42:56Z' updated: '2023-04-03T14:30:06Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: isaguler logo: https://avatars.githubusercontent.com/u/96476351?v=4 repoEtag: '"7bd55d5e75ee107b304b289f4e0424a5e6495d28ac73935d8fc7d17133bde403"' repoLastModified: Mon, 03 Apr 2023 14:30:06 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/interes-group/b-vsa-ls23-project2-solution v3: true id: 316ffa1df03fb79513d3c55058386698 repositoryMetadata: base64Readme: >- IyBCLVZTQSBMUyAyMi8yMyAtIFNlbWVzdHLDoWxueSBwcm9qZWt0IDIKCiFbSmF2YSAxLjhdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvSmF2YS0xLjgtcmVkKQohW0VjbGlwc2VMaW5rIDIuNy4xMV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9FY2xpcHNlTGluay0yLjcuMTEtYmx1ZSkKIVtQb3N0Z3JlU1FMIERyaXZlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Qb3N0Z3JlU1FMLTQyLjUuNC1ncmVlbikKIVtKZXJzZXkgSkFYLVJTXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0plcnNleS0yLjM5LjEtb3JhbmdlKQpbIVtQdWJsaWMgZG9tYWluXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtVW5saWNlbnNlLWxpZ2h0Z3JheSldKGh0dHBzOi8vdW5saWNlbnNlLm9yZykKCkNpZcS+b20gMi4gc2VtZXN0csOhbG5laG8gcHJvamVrdHUgamUgaW1wbGVtZW50b3ZhxaUgamVkbm9kdWNow7ogd2Vib3bDuiBhcGxpa8OhY2l1IHB1Ymxpa3Vqw7pjdSBSRVNUIEFQSSBwb2TEvmEgZGVmaW5vdmFuZWoKxaFwZWNpZmlrw6FjaWUuIFByb2pla3QgbcOhIG5hZHbDpHpvdmHFpSBuYSAxLiBzZW1lc3Ryw6FsbnkgcHJvamVrdCwgdiBrdG9yb20gc3RlIGltcGxlbWVudG92YWxpIHNwb2plbmllIHMgU1FMIGRhdGFiw6F6b3UKcG91xb5pdMOtbSB0ZWNobm9sw7NnaWUgSlBBLCB0YWvFvmUgYWogdiB0b210byBwcm9qZWt0ZSBtYWrDuiBiecWlIGRvZHLFvmFuw6kgdnrFpWFoeSBhIGxvZ2lrYSBtZWR6aSBqZWRub3RsaXbDvW1pIGVudGl0YW1pLgoKViB0b210byBwcm9qZWt0ZSBtw7TFvnRlIHZ5Y2jDoWR6YcWlIHogdsOhxaFobyByaWXFoWVuaWEgMS4gc2VtZXN0csOhbG5laG8gcHJvamVrdHUsIGFsZWJvIHZ5dcW+acWlIHBvc2t5dG51dMO6IFtyZWZlcmVuxI1uw7ogaW1wbGVtZW50w6FjaXVdKGh0dHBzOi8vZ2l0aHViLmNvbS9JbnRlcmVzLUdyb3VwL2ItdnNhLWxzMjMtcHJvamVjdDEtc29sdXRpb24pLgpaYWNob3ZhanRlIGFzb2Npw6FjaWUgYSBvYmpla3R5IGRlZmlub3ZhbsOpIHYgMS4gcHJvamVrdGUuIE5ha2/EvmtvIMO6xI1lbG9tIHRvaHRvIHphZGFuaWEgamUgaW1wbGVtZW50w6FjaWEgUkVTVCB3ZWJvdsO9Y2ggc2x1xb5pZWIsCm3DtMW+dGUgdXByYXZpxaUgcmllxaFlbmllIHogcHJlZGNow6FkemFqw7pjZWhvIHphZGFuaWEgcG9kxL5hIHN2b2pobyBuYWpsZXDFoWllaG8gdmVkb21pYSBhIHN2ZWRvbWlhLCB0YWsgYWJ5IHNwbG5pbG8gdG90byB6YWRhbmllLgpQcmUgdnlwcmFjb3ZhbmllIHNhIG3DtMW+dGUgaW7FoXBpcm92YcWlIFtwcm9qZWt0YW1pIHogY3ZpxI1lbsOtXShodHRwczovL2dpdGh1Yi5jb20vSW50ZXJlcy1Hcm91cC9iLXZzYS1jdmljZW5pYSkuIApEYmFqdGUgbmEgZG9kcsW+aWF2YW5pZSBwb2t5bm92IHphZGFuaWEgbmFrb8S+a28gYnVkZSBvcHJhdm92YW7DqSBhdXRvbWF0aXpvdmFuZSBwb21vY291IEpVbml0IHRlc3Rvdi4gTmEga29uY2kgemFkYW5pYSBqZSBuw6F2b2QsIApha28gc2kgbG9rw6FsbmUgc3B1c3RpxaUgdHp2LiAic2FuaXR5LWNoZWNrIiB0ZXN0LCBwcmUgb3Rlc3RvdmFuaWUgc3BsbmVuaWEga29uZmlndXLDoWNpZSB2eXByYWNvdmFuaWEsIGFieSBib2wgcHJvamVrdCB0ZXN0b3ZhdGXEvm7DvS4KCiMjIMWgcGVjaWZpa8OhY2lhCgpBcGxpa8OhY2lhIG11c8OtIHB1Ymxpa292YcWlICoqUkVTVCB3ZWJvdsOpIHNsdcW+YnkqKiBkb2Ryxb5pYXZhasO6Y2UgZG9kYW7DuiBbKipPcGVuQVBJIDMgxaFwZWNpZmlrw6FjaXUqKl0oLi9zcmMvbWFpbi9yZXNvdXJjZXMvb3BlbmFwaTMuc3BlYy55YW1sKS4gCkFwbGlrw6FjaWEgdGFrIG11c8OtIHphYmV6cGXEjWnFpSBDUlVEIG9wZXLDoWNpZSBjZXogcHVibGlrb3ZhbsOpIHdlYm92w6kgc2x1xb5ieSAocyB2w71uaW1rb3UgdXBkYXRlIG9wZXLDoWNpZSkuIEFwbGlrw6FjaWEgbXVzw60KdGFrdGllxb4gcG9za3l0b3ZhxaUgd2Vib3bDqSBzbHXFvmJ5IHByZSBwcmlyYWRlbmllIGEgb2RvdnpkYW5pZSB6w6F2ZXJlxI1uZWogcHLDoWNlLCBhIHRhayBpc3RvIHByZSB2eWjEvmFkYW5pZSB6w6F2ZXJlxI1uZWogcHLDoWNlCnBvZMS+YSBwbGF0bsO9Y2gga3JpdMOpcmnDrSAodC5qLiBwb2TEvmEgxaF0dWRlbnRhLCBhbGVibyBwb2TEvmEgdcSNaXRlxL5hKS4KClByaSBpbXBsZW1lbnTDoWNpw60gcG91xb5pdGUgcHJvdG9rb2wgKipIVFRQLzEuMSoqLCBha28gZm9ybcOhdCBwcmVuw6HFoWFuw71jaCBvYmpla3RvdiBwb3XFvml0ZSAqKmFwcGxpY2F0aW9uL2pzb24qKiBzIFVURi04IGvDs2RvdmFuw61tLiAKUHJpIGNoeWJvdsO9Y2ggc3Rhdm9jaCB2csOhxaV0ZSBvYmpla3QgYE1lc3NhZ2VgIChha28gamUgdXZlZGVuw6kgdiDFoXBlY2lmaWvDoWNpaSkgcyBwcsOtc2x1xaFuw71tIGvDs2RvbSBjaHlieS4gCkvDs2Qgb2Rwb3ZlZGUgbmFzdGF2dGUgdGFrLCBhYnkgbmFqbGVwxaFpZSB2eXN0aWhsYSBwb3ZhaHUgb2Rwb3ZlZGUuIApIVFRQIGvDs2R5OiBbaHR0cHM6Ly93d3cucmVzdGFwaXR1dG9yaWFsLmNvbS9odHRwc3RhdHVzY29kZXMuaHRtbF0oaHR0cHM6Ly93d3cucmVzdGFwaXR1dG9yaWFsLmNvbS9odHRwc3RhdHVzY29kZXMuaHRtbCkuCgojIyMgQXV0ZW50aWZpa8OhY2lhCgpWIHLDoW1jaSBwcm9qZWt0dSBpbXBsZW1lbnR1anRlICoqYXV0ZW50aWZpa2HEjW7DvSBtZWNoYW5pem11cyBCYXNpYyBBY2Nlc3MgQXV0aGVudGljYXRpb24qKiBbaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFzaWNfYWNjZXNzX2F1dGhlbnRpY2F0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXNpY19hY2Nlc3NfYXV0aGVudGljYXRpb24pCihza3LDoXRlbmUgQmFzaWMgQXV0aCkuIEplZG5vdGxpdsOpIHdlYm92w6kgc2x1xb5ieSBzw7ogdiDFoXBlY2lmaWvDoWNpaSBvem5hxI1lbsOpIMSNaSBqZSBwb3RyZWJuw6EgYXV0ZW50aWZpa8OhY2lhIHByZSBpY2ggZG9weXRvdmFuaWUuIApQb3XFvsOtdmF0ZcS+b20gcmllxaFlbmlhLCBrdG9yw71tIGplIHVtb8W+bmVuw6kgcHJpaGzDoXNlbmllLCBqZSBrYcW+ZMO9IHZ5dHZvcmVuw70gxaF0dWRlbnQgYSB1xI1pdGXEvi4KQWtvIHByaWhsYXNvdmFjaWUgbWVubyBwb3XFvsOtdmF0ZcS+YSBwb3XFvml0ZSBlbWFpbCB1xI1pdGXEvmEgYWxlYm8gxaF0dWRlbnRhLiBFbnRpdHUgxaF0dWRlbnRhIGEgdcSNaXRlxL5hIHJvesWhw61ydGUgbyBhdHJpYsO6dCBgcGFzc3dvcmRgLiAKUHJpIHZ5dHZvcmVuw60gcG91xb7DrXZhdGXEvmEgbXVzw60gYnnFpSB6YWRhbsOpIGhlc2xvLiBIZXNsbyB2IGRvcHl0ZSB2eXR2b3JlbmlhIHBvdcW+w612YXRlxL5hIG5lc21pZSBiecWlIHBvc2xhbsOpIHYgb3R2b3JlbmVqIHBvZG9iZSAKYWxlIGFrbyBzdHJpbmcgZW5rw7Nkb3ZhbsO9IHYgQkFTRTY0IGvDs2RvdmFuw60uCgpQcmVkIHVsb8W+ZW7DrW0gZG8gZGF0YWLDoXp5IG11c8OtIGJ5xaUgaGVzbG8gZGVrw7Nkb3ZhbsOpIGRvIHDDtHZvZG5laiBob2Rub3R5IHZ5cG/EjcOtdGFuw70gaGFzaCBhIG7DoXNsZWRuZSBhxb4gdsO9c2xlZG7DvSBoYXNoIHJlxaVhemVjCnVsb8W+ZW7DvSBkbyBkYXRhYsOhenkgYWtvIGhvZG5vdGEgYHBhc3N3b3JkYCBhdHJpYsO6dHUuIFByaSBwcmlobMOhc2Vuw60gcG91xb7DrXZhdGXEvmEgamUgcG9yb3ZuYW7DqSBoZXNsbyB6IEhUVFAgaGxhdmnEjWt5IGBBdXRob3JpemF0aW9uYApzIHVsb8W+ZW7DvW0gaGFzaCByZcWlYXpjb20geiBkYXRhYsOhenkuIEF1dGVudGlmaWthxI1uw70gbWVjaGFuaXptdXMgbXVzw60gZG9rw6F6YcWlIHJvemzDrcWhacWlIMSNaSBpZGUgbyDFoXR1ZGVudGEgYWxlYm8gdcSNaXRlxL5hLgpQcmUgdnl0dm9yZW5pZSBoYXNoIHJlxaVhemNhIGhlc2xhIGEgbsOhc2xlZG7DuiB2ZXJpZmlrw6FjaXUgcHJpIHByaWhsw6FzZW7DrSBtw7TFvnRlIHZ5dcW+acWlIG1ldMOzZHkgdHJpZWR5IFtCQ3J5cHRTZXJ2ZXJdKC4vc3JjL21haW4vamF2YS9zay9zdHViYS9mZWkvdWltL3ZzYS9wcjIvQkNyeXB0U2VydmljZS5qYXZhKS4KClJFU1Qgc2x1xb5ieSBpbXBsZW1lbnR1anRlIGFrbyBiZXpzdGF2b3bDqS4gTmV2eXR2w6FyYWp0ZSDFvmlhZG51IHBvdcW+w612YXRlxL5za8O6IHJlbMOhY2l1IChTZXNzaW9uKSwgbmV2eXR2w6FyYWp0ZSDFvmlhZG5lIGF1dG9yaXphxI1uw6kgdG9rZW55LCAKxI1pIGluw6kgc3DDtHNvYnkgcmVsw6FjaWUgYSB1ZHLFvmlhdmFuaWEgc3RhdnUgcG91xb7DrXZhdGXEvmEgKGFrbyBuYXByLiBjb29raWVzKS4gSFRUUCBobGF2acSNa2EgYEF1dGhvcml6YXRpb25gIG11c8OtIGJ5xaUgemFzbGFuw6EgcyBrYcW+ZMO9bSBkb3B5dG9tIG5hIHNsdcW+YnkuCgpabHloYW5pZSBwcmlobMOhc2VuaWEgbcOhIHZyw6F0acWlIG9kcG92ZcSPIHMga8OzZG9tIDQwMS4KCiMjIyBBdXRvcml6w6FjaWEKClYgcsOhbWNpIHByb2pla3R1IGltcGxlbWVudHVqdGUgKiphdXRvcml6YcSNbsO9IG1lY2hhbml6bXVzKiosIGt0b3LDvSBidWRlICoqcm96bGnFoW92YcWlIG1lZHppIHByw61zdHVwb20gdcSNaXRlxL5hIGEgxaF0dWRlbnRhKiouClYgW2RvZGFuZWogT3BlbkFQSSAzIMWhcGVjaWZpa8OhY2lpXSguL3NyYy9tYWluL3Jlc291cmNlcy9vcGVuYXBpMy5zcGVjLnlhbWwpIHByaSBuaWVrdG9yw71jaCBSRVNUIHdlYm92w71jaCBzbHXFvmLDoWNoIGplIHBvcMOtc2Fuw6ksCsSNaSBtw6EgYnnFpSBpbXBsZW1lbnRvdmFuw6kgb2JtZWR6ZW5pZSBwcmUgcHLDrXN0dXAgcHJpaGzDoXNlbsOpaG8gcG91xb7DrXZhdGXEvmEgKG5hcHIuIHByaSBzbHXFvmJlIGBERUxFVEUgL2FwaS9zdHVkZW50L3tpZH1gKS4gCkFrIG5pZSBqZSB6bWllbmVuw6kgxb5pYWRuZSB0YWvDqXRvIG9ibWVkemVuaWUgcHJpIHNsdcW+YmUsIG3DtMW+ZSBqdSBkb3B5dG92YcWlIHXEjWl0ZcS+IGFqIMWhdHVkZW50IGEgc3ByYWNvdmFuaWUgaWNoIGRvcHl0dSBtdXPDrQpiecWlIHJvdm5ha8OpLiBSb3psw63FoWVuaWUgcHLDrXN0dXB1IHVyxI10ZSBuYSB6w6FrbGFkZSBhdXRlbnRpZmlrb3ZhbmVqIGVudGl0eS4gCgpWIHByw61wYWRlIG5lZG9zdGF0b8SNbsO9Y2ggb3Byw6F2bmVuw60gcHJpaGzDoXNlbsOpaG8gcG91xb7DrXZhdGXEvmEgcHJlIHZ5a29uYW5pZSBkb3B5dHUgdnLDocWldGUgb2Rwb3ZlxI8gcyBrw7Nkb20gNDAzLgoKIyMgU3B1c3RlbmllCgpXZWJvdsO6IGFwbGlrw6FjaXUgaW1wbGVtZW50dWp0ZSBwb21vY291IGZyYW1ld29ya3UgSmVyc2V5IChyZWZlcmVuxI1uw6EgaW1wbGVtZW50w6FjaWUgSkFYLVJTIMWhdGFuZGFyZHUpIGFrbyB0enYuICoqJ3N0YW5kYWxvbmUnCndlYm92w7ogYXBsaWvDoWNpdSoqLiBWw71zdHVwb20gcmllxaFlbmlhIG11c8OtIGJ5xaUgc3B1c3RpdGXEvm7DvSBKQVIgc8O6Ym9yLiBIVFRQIHNlcnZlciBhcGxpa8OhY2llIG3DoSBwb8SNw7p2YcWlIG5hIHBvcnRlIDgwODAuCgpLb25maWd1csOhY2l1IHNwdXN0ZW5pYSBIVFRQIHNlcnZlcmEgamUgbW/Fvm7DqSBuw6Fqc8WlIHYgdHJpZWRlIFtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25dKC4vc3JjL21haW4vamF2YS9zay9zdHViYS9mZWkvdWltL3ZzYS9wcjIvQXBwbGljYXRpb25Db25maWd1cmF0aW9uLmphdmEpLiAKSmVqIGhvZG5vdHkgamUgbW/Fvm7DqSBtZW5pxaUgcG9tb2NvdSB0enYuICdlbnZpcm9ubWVudCB2YXJpYWJsZXMnLiBWw71jaG9kemllIGhvZG5vdHkgamVkbm90bGl2w71jaCBhdHJpYsO6dG92IG5lbWXFiHRlLgoKVHJpZWR5IG9ic2FodWrDumNlIGRlZmluw61jaWUgamVkbm90bGl2w71jaCBzbHXFvmllYiAodHp2LiAncmVzb3VyY2UgY2xhc3MnKSBhbm90b3ZhbsOpIGFub3TDoWNpb3UgYEBQYXRoYCBhIHRyaWVkeSByb3rFoWlydWrDumNlCmZ1bmtjaW9uYWxpdHUgSFRUUCBzZXJ2ZXJhIGFub3RvdmFuw6kgYW5vdMOhY2lvdSBgQFByb3ZpZGVyYCBzw7ogYXV0b21hdGlja3kgc2tlbm92YW7DqSBhIHByaWRhbsOpIGRvIEhUVFAgc2VydmVyYSBwcmkgxaF0YXJ0ZQp0cmllZG91IFtKQVhSU0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbl0oLi9zcmMvbWFpbi9qYXZhL3NrL3N0dWJhL2ZlaS91aW0vdnNhL3ByMi9KQVhSU0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbi5qYXZhKS4KSW1wbGVtZW50w6FjaXUgdGVqdG8gdHJpZWR5IG5pZSBqZSBudXRuw6kgbWVuacWlLgoKRW1iZWRvdmFuw70gSFRUUCBzZXJ2ZXIgamUgbmFrb25maWd1cm92YW7DvSBhIHphcG51dMO9IHYgaGxhdm5laiB0cmllZGUgW1Byb2plY3QyQXBwbGljYXRpb25dKC4vc3JjL21haW4vamF2YS9zay9zdHViYS9mZWkvdWltL3ZzYS9wcjIvUHJvamVjdDJBcHBsaWNhdGlvbi5qYXZhKS4KQWsgamUgcG90cmVibsOhIGluaWNpYWxpesOhY2lhLCBhbGVibyBqZSBwb3RyZWJuw6kgc3B1c3RpxaUgxL51Ym92b2xuw70ga8OzZCBwcmkgxaF0YXJ0ZSBhcGxpa8OhY2llICh0ZXNuZSBwbyDFoXRhcnRlIEhUVFAgc2VydmVyYSkKamUgbW/Fvm7DqSB2eXXFvmnFpSBtZXTDs2R1IGBwb3N0U3RhcnQoKWAgdiB0ZWp0byB0cmllZGUuIEltcGxlbWVudMOhY2l1IG1ldMOzZCBgbWFpbmAgYSBgc3RhcnRTZXJ2ZXJgIG5lbWXFiHRlLgoKIyMgSG9kbm90ZW5pZQoKKipaYWRhbmllIGplIGhvZG5vdGVuw6kgMTUgYm9kbWkuIFZ5cHJhY292YW5pZSBqZSBudXRuw6kgb2RvdnpkYcWlIGRvIDEwLjA1LjIwMjMgMjM6NTkuKioKClphZGFuaWUgc2kgbmFrbG9udWp0ZSB6IHJlcG96aXTDoXJhIHphZGFuaWEuIFN2b2plIHZ5cHJhY292YW5pZSBuYWhyYWp0ZSBkbyB2w6HFoWhvIHJlcG96aXTDoXJhIHByZSB0b3RvIHphZGFuaWUgcG9tb2NvdQpwcm9ncmFtdSBHaXQgKGdpdCBjb21taXQgKyBnaXQgcHVzaCkuIFZ5cHJhY292YW5pZSBtw7TFvmV0ZSAicHVzaG8tdmHFpSIgcHJpZWJlxb5uZS4gTsOhem92IEphdmEgYmFsw63EjWthIG5lbWXFiHRlLiAKTmVwcmVzw7p2YWp0ZSBhbmkgbmVtZcWIdGUgc8O6Ym9yeSBwcmlwcmF2ZW7DqSB2IHphZGFuw60gcG9raWHEviBuaWUgamUgc3Rhbm92ZW7DqSBpbmFrIGFsZWJvIHNpIHRvIGltcGxlbWVudMOhY2lhIHJpZcWhZW5pYQp6YWRhbmlhIHZ5c2xvdmVuZSB2ecW+YWR1amUgKG5hcHIuIGRvcGxuZW5pZSB0cmllZCBlbnTDrXQgKGA8Y2xhc3M+YCB0YWcpIHYgc8O6Ym9yZSBgcGVyc2lzdGVuY2UueG1sYCkuCgoqKsOacHJhdnkgcG9tLnhtbCBzw7pib3J5IHPDuiB6YWvDoXphbsOpKiogbWltbyDEj2FsZWogdXZlZGVuw71jaCB6bWllbjoKCi0gUHJpZGFuaWUgesOhdmlzbG9zdGkgbmEgZHJpdmVyIGRhdGFiw6F6eSBwb2TEvmEgdmxhc3Ruw6lobyB2w71iZXJ1LiBQb3ZvbGVuw6kgU1FMIGRhdGFiw6F6eToKICAgIC0gTXlTUUwKICAgIC0gT3JhY2xlREIKICAgIC0gRGVyYnkKICAgIC0gUG9zdGdyZVNRTCAoYnVkZSBwb3XFvml0w6EgYWtvIHRlc3RvdmFjaWEgZGF0YWLDoXphIHByaSBvcHJhdmUpCiAgICAtIEgyCi0gRG9wbG5lbmllIGluZm9ybcOhY2nDrSBvIGF1dG9yb3ZpIChkZXZlbG9wZXJvdmksIHRhZyBgPGRldmVsb3BlcnM+PGRldmVsb3Blcj5gKQoKKipOw6F6b3YgYHBlcnNpc3RlbmNlLXVuaXRgKiogdiBzw7pib3JlIFtwZXJzaXN0ZW5jZS54bWxdKHNyYy9tYWluL3Jlc291cmNlcy9NRVRBLUlORi9wZXJzaXN0ZW5jZS54bWwpICoqbmVtZcWIdGUqKi4gUHJlCnZsYXN0bsOpIG90ZXN0b3ZhbmllIGFwbGlrw6FjaWUgbcO0xb50ZSBpbXBsZW1lbnRvdmHFpSB2bGFzdG7DqSBqVW5pdCB0ZXN0eSB2IHByaWXEjWlua3UgYHNyYy90ZXN0L2phdmFgIGFsZWJvIHZ5dcW+acWlIEludGVsbGlKCkhUVFAga2xpZW50YSB2IHByaWXEjWlua3UgYHNyYy90ZXN0L2h0dHBgLgpQb3XFvml0w6EgZGF0YWLDoXphIHNhIG11c8OtIHZvbGHFpSAqKnZzYV9wcjIqKiBhIG11c8OtIG1hxaUgdnl0dm9yZW7DqWhvIHBvdcW+w612YXRlxL5hIHMgKiptZW5vbSAndnNhJyBhIGhlc2xvbSAndnNhJyoqLiBQcmUKdGlldG8gw7rEjWVsaSBtw7TFvnRlIHZ5dcW+acWlIHPDumJvciBbc3RhcnRlci5wb3N0Z3Jlcy5zcWxdKGNvbmZpZ3Mvc3RhcnRlci5wb3N0Z3Jlcy5zcWwpICh1csSNZW7DvSBwcmUgZGF0YWLDoXp1IFBvc3RncmVTUUwpLgoKSW1wbGVtZW50b3ZhbsOpIHdlYm92w6kgc2x1xb5ieSBtdXNpYSBrb256dW1vdmHFpSB0ZWzDoSBkb3B5dG92IGEgcHJvZHVrb3ZhxaUgb2Rwb3ZlZGUgdm8gZm9ybcOhdGUgSlNPTiAoYXBwbGljYXRpb24vanNvbikuIApWIHLDoW1jaSBwcm9qZWt0dSBqZSBzcHJhY292YW5pZSBKU09OIGZvcm3DoXR1IHXFviBuYWtvbmZpZ3Vyb3ZhbsOpLgoKSG9kbm90acWlIHNhIGJ1ZGUgaWJhIG1hc3Rlci9tYWluIGJyYW5jaC4gS3bDtGxpIHRlc3RvbSBhIHpyw71jaGxlbml1IG9wcmF2b3ZhbmlhIGplIG51dG7DqSBkb2Ryxb5hxaUgcG9reW55IGEgxaF0cnVrdMO6cnUKcHJvamVrdHUsIGFrbyBqZSBzdGFub3ZlbsOpIHYgemFkYW7DrSEgSWJhIGvDs2QgcG9zbGVkbmVqIHZlcnppZSB2eXByYWNvdmFuaWEgKHQuai4geiBwb3NsZWRuw6lobyBjb21taXQtdSkgZG8gdGVybcOtbnUKb2RvdnpkYW5pYSBzYSBiZXJpZSBkbyDDunZhaHkuIE9rcmVtIHRlc3RvdiBzYSBidWRlIGvDs2QgYSBmdW5rY2lvbmFsaXRhIGtvbnRyb2xvdmHFpSBhaiBtYW51w6FsbmUuIEhvZG5vdGnFpSBzYSBidWTDuiBpYmEKc2tvbXBpbG92YXRlxL5uw6kgYSBzcHVzdGl0ZcS+bsOpIHJpZcWhZW5pYSEKCiMjIyBTYW5pdHkgY2hlY2sgdGVzdAoKUHJvamVrdCBvYnNhaHVqZSB0ZXN0IHR6di4gInNhbml0eS1jaGVjayIsIGt0b3LDvSBrb250cm9sdWplLCDEjWkgdsOhxaEgcHJvamVrdCBkb2Ryxb51amUgcG9reW55IHphZGFuaWEgYSB0YWsgxI1pIGJ1ZGUgCmFrY2VwdG92YW7DvSBuYSBvcHJhdnUuIFRlc3QgamUgbmFww61zYW7DvSB2IHRyaWVkZSBbU2FuaXR5Q2hlY2tUZXN0XShzcmMvdGVzdC9qYXZhL3NrL3N0dWJhL2ZlaS91aW0vdnNhL3ByMi9TYW5pdHlDaGVja1Rlc3QuamF2YSkuClByZSBzcHVzdGVuaWUgdGVzdHUgc3RhxI3DrSB2eWtvbmHFpSAqKm1hdmVuKiogbGlmZWN5Y2xlIGdvYWwgKip0ZXN0KiosIHJlc3AuIHNwdXN0acWlIHByw61rYXo6CgpgYGBzaGVsbAptdm4gdGVzdApgYGAKCkFsZWJvIG90dm9yacWlIHRlc3RvdmFjw60gc8O6Ym9yIGEgc3B1c3RpxaUgalVuaXQgdGVzdCAoemVsZW7DoSDFocOtcGthIHZlZMS+YSBuw6F6dnUgdHJpZWR5KS4gQWsgdGVzdCBza29uxI3DrSDDunNwZcWhbmUgKHQuai4gYmV6IGNoeWJ5KSwKdsOhxaEgcHJvamVrdCBqZSBwcmlwcmF2ZW7DvSBuYSBvcHJhdnUuCgojIyMgTG9nb3ZhbmllIGEgdsO9cGlzeQoKViByw6FtY2kgcHJvamVrdHUgamUgbmFrb25maWd1cm92YW7DoSBrbmnFvm5pY2EgcHJlIGxvZ292YW5pZSAoZm9ybcOhdG92YW7DqSB2w71waXN5KSBbTG9nYmFja10oaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL2xvZ2JhY2spLiBUw7p0byBrbmnFvm5pY3UgbcO0xb50ZSBwb3XFvmnFpSBuYW1pZXN0bwpKYXZhIGBTeXN0ZW0ub3V0LnByaW50bG5gIHByZSBmb3Jtw6F0b3ZhbsO9IHbDvXBpcyAobmFwcsOta2xhZCBha28gamUgdiBgU2FuaXR5Q2hlY2tUZXN0YCB0cmllZGUpLiBUw6F0byBrbmnFvm5pY2EgamUgdnl1xb5pdMOhCmFrbyBwcmltw6Fybnkgc3DDtHNvYiB2w71waXN1IHByZSBwcmlwcmF2ZW7DqSB0cmllZHkgcHJvamVrdHUuCgpLbmnFvm5pY3UgamUgcG90cmVibsOpIGluaWNpYWxpem92YcWlIHYga2HFvmRlaiB0cmllZGUga2RlIGp1IGNoY2V0ZSBwb3XFvmnFpSByaWFka29tOgoKYGBgSmF2YQpwcml2YXRlIHN0YXRpYyBmaW5hbCBvcmcuc2xmNGouTG9nZ2VyIGxvZz1vcmcuc2xmNGouTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoPG7DoXpvdiB0cmllZHkga3RvcsO6IHRyZWJhIGxvZ292YcWlPi5jbGFzcyk7CmBgYAoKTsOhc2xlZG5lIGplIG1vxb5uw6kgdnl1xb5pxaUgbWV0w7NkeSBha28gYGxvZy5pbmZvYCwgYGxvZy53YXJuYCDEjWkgYGxvZy5lcnJvcmAgdiBwcsOtcGFkZSB2w71uaW1pZWsuCgojIyBCb251cyAoM2IpCgpWIHLDoW1jaSB6YWRhbmlhIG3DoXRlIG1vxb5ub3PFpSBpbXBsZW1lbnRvdmHFpSByb3rFocOtcmVuaWUgZnVua2Npb25hbGl0eSBvIHR6di4gc3Ryw6Fua292YW5pZSBvZHBvdmVkw60gc2x1xb5pZWIgemEgMyBib251c292w6kgYm9keS4KUHJlIGltcGxlbWVudMOhY2l1IGJvbnVzdSBpbXBsZW1lbnR1anRlIFtPcGVuQVBJIDMgxaFwZWNpZmlrw6FjaXUgYm9udXNvdsO9Y2ggd2Vib3bDvWNoIHNsdcW+aWViXSguL3NyYy9tYWluL3Jlc291cmNlcy9ib251cy1vcGVuYXBpMy5zcGVjLnlhbWwpCnMgcm96xaHDrXJlbsOtbSBzdHLDoW5rb3ZhbmlhLiBTdHLDoW5rb3ZhbmllIG3DoSBwcmFjb3ZhxaUgcyB2YcWhb3UgaW1wbGVtZW50w6FjaW91IHJvemhyYW7DrSBQYWdlIGEgUGFnZWFibGUgeiAxLiBzZW1lc3Ryw6FsbmVobyBwcm9qZWt0dS4KQm9udXNvdsOhIMWhcGVjaWZpa8OhY2lhIHphaMWVxYhhIG5vdsO6IGRlZmluw61jaXUgd2Vib3ZlaiBzbHXFvmJ5IGBHRVQgL2FwaS9zZWFyY2gvdGhlc2VzYCwga3RvcsOhIG5haHLDoWR6YSBwcmVkY2jDoWR6YWrDumN1IGRlZmluw61jaXUgdGVqdG8gd2Vib3ZlagpzbHXFvmJ5IHpvIHphZGFuaWEuCgpCb251c292w6kgdnlwcmFjb3ZhbmllIGJ1ZGUgdXpuYW7DqSBqZWRpbmUgdiBwcsOtcGFkZSBhayBqZSBpbXBsZW1lbnRvdmFuw6kgY2Vsw6kgemFkYW5pZS4K readmeEtag: '"b8ade4eb277e9ce701ea3dbe537ab7589000b52e"' readmeLastModified: Sat, 27 May 2023 18:47:48 GMT repositoryId: 641824574 description: >- Referenčná implementácia a súbor testov pre hodnotenie 2. semestrálneho zadanie z predmetu B-VSA vyučovanom na FEI STU v letnom semestri akademickom roku 22/23 created: '2023-05-17T08:40:28Z' updated: '2023-05-17T21:50:29Z' language: Java archived: false stars: 0 watchers: 0 forks: 0 owner: Interes-Group logo: https://avatars.githubusercontent.com/u/62511873?v=4 license: Unlicense repoEtag: '"4aafe22837610ee293f8e283bf57016308ac39bc1d792ae3177fe17bcb33c7a5"' repoLastModified: Wed, 17 May 2023 21:50:29 GMT category: Low-level Tooling foundInMaster: true - source: openapi3 tags repository: https://github.com/wasedatime/wasedatime.github.io v3: true repositoryMetadata: base64Readme: IyB3YXNlZGF0aW1lLW9wZW5hcGk= readmeEtag: '"8760599935f7cd10bb213b376f86ca797a367548"' readmeLastModified: Wed, 13 Dec 2023 04:49:31 GMT repositoryId: 311374383 description: API documentation website using swagger-ui created: '2020-11-09T15:02:09Z' updated: '2023-07-18T09:13:10Z' language: HTML archived: false stars: 0 watchers: 2 forks: 0 owner: wasedatime logo: https://avatars.githubusercontent.com/u/32608719?v=4 repoEtag: '"851f510687c2b6cdce8d55ec2183645a3fb91f6dc9b83b0fbd706805d0fb4393"' repoLastModified: Tue, 18 Jul 2023 09:13:10 GMT foundInMaster: true category: - Data Validators - Parsers id: c13102582ceb98d5f8b9d4be146b9fb3 - source: openapi3 tags repository: https://github.com/tufanoruk/enkudo v3: true id: c97e3804452bcda11ec8d879c33f5f84 repositoryMetadata: base64Readme: >- IyBTYW1wbGUgRW5rdWRvIE5CSSBBUEkgV29yawoKVGhpcyBwcm9qZWN0IGluY2x1ZGVzIHNhbXBsZSBFbmt1ZG8gc3Vic2NyaXB0aW9uIEFQSSBkZWZpbml0aW9uIGluIE9wZW5BUEkzLjAgIFlBTUwgZG9jdW1lbnRzLgoKLSAiRW5rdWRvX0RTUF9Db21tb25EYXRhLnlhbWwiIGRlZmluZXMgY29tbW9uIGRhdGEgZGVmaW5pdGlvbnMgd2l0aGluIHRoZSBBUEkgYW5kIHJlZmVyZW5jZWQgZnJvbSBvdGhlciBBUEkgKFlBTUwpIGRvY3VtZW50cy4gWW91IGRvIG5vdCBuZWVkIHRvIHByb3ZpZGUgdGhpcyBkb2N1bWVudCBhbnkgb2YgdmFsaWRhdGlvbiBhbmQvb3IgY29kZSBnZW5lcmF0aW9uIHByb2dyYW1zLgotICJFbmt1ZG9fRFNQX1N1YnNjcmlwdGlvbi55YW1sIiBFbmt1ZG8gU3Vic2NyaXB0aW9uIEFQSSBkZWZpbml0aW9uLgoKVGhlcmUgYXJlIGFsc28gYSBjb3VwbGUgb2YgaGVscGVyIHNjcmlwdHMgdG8gdmFsaWRhdGUgdGhlIFlBTUwgZmlsZXMgd2l0aCByZXNwZWN0IHRvIE9wZW5BUEkgMy4wIHNwZWNpZmljYXRpb24gYW5kIGNvZGUgZ2VuZXJhdGlvbi4KCiJ2YWxpZGF0ZS5zaCIgdmFsaWRhdGVzIGdpdmVuIFlBTUwgZG9jdW1lbnQgdXRpbGl6aW5nIHR3byB2YWxpZGF0b3JzLgoKLSAib3BlbmFwaS1zcGVjLXZhbGlkYXRvciIgYW5kCi0gIm9wZW5hcGktZ2VuZXJhdG9yIHZhbGlkYXRlIiAKCiJnZW5jb2RlLnNoIiBpcyBhIHNpbXBsZSB3cmFwcGVyIHRvIG9wZW5hcGktZ2VuZXJhdG9yIGNvZGUgZ2VuZXJhdGlvbi4KCllvdSBuZWVkIHRvIGluc3RhbGwgdGhlc2UgdHdvIHByb2dyYW1zIGluIHlvdXIgZW52aXJvbm1lbnQuICAKClRvIGluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3IgKGFuZCBvdGhlciBMaW51eCBsaWtlIHRvb2xzKSAgb24gTWFjT1MgSSBwcmVmZXIgW2JyZXddKGh0dHBzOi8vYnJldy5zaCkuIFRvIGluc3RhbGwgaXQgdmlhIGJyZXcsCgpgYGBiYXNoCiUgYnJldyBpbnN0YWxsIG9wZW5hYXBpLWdlbmVyYXRvcgpgYGAKCiJvcGVuYXBpLXNwZWMtdmFsaWRhdG9yIiBpcyBweXRob24gc2NyaXB0LiBZb3UgY2FuIGluc3RhbGwgaXQgdmlhIHBpcC4KCmBgYGJhc2gKJSBwaXAgaW5zdGFsbCBvcGVuYXBpLXNwZWMtdmFsaWRhdG9yCmBgYAoKVG8gdmFsaWRhdGUgYSBZQU1MIGZpbGUsCgpgYGBiYXNoCi4vdmFsaWRhdGUuc2ggRW5rdWRvX0RTUF9TdWJzY3JpcHRpb24ueWFtbApgYGAKClRvIGdlbmVyYXRlIHNheSBnbyBjbGllbnQgY29kZSBmb3IgRW5rdWRvIFN1YnNjcmlwdGlvbiBOQkksCgpgYGBiYXNoCi4vZ2VuY29kZS5zaCBFbmt1ZG9fRFNQX1N1YnNjcmlwdGlvbi55YW1sIGdvCmBgYAoKVGhpcyBjb21tYW5kIGNyZWFydGVzIGEgImdvX3NyYyIgZGlyZWN0b3J5IHdpdGggY2xpZW50IEFQSSBsaWJyYXJ5IGluIGdvbGFuZy4gVGhlcmUgaXMgYWxzbyBhIHNpbXBsZSBnbyBjbGllbnQgcHJvamVjdCAoZ28tZW5rdWRvLWNsaWVudCkgd2hpY2ggdXRpbGl6ZXMgdGhpcyBvcGVuYXBpLWdlbmVyYXRvciBnZW5lcmF0ZWQgY2xpZW50IEFQSSBsaWJyYXJ5LgoKVG8gZ2V0IHRoZSBsaXN0IG9mIGxhbmd1YWdlcyB0aGF0IG9wZW5hcGktZ2VuZXJhdG9yIGNhbiBnZW5lcmF0ZSBjb2RlIGZvciBjbGllbnQgQVBJIGxpYnJhcnkgYW5kIHNlcnZlciBzdGFiLAoKYGBgYmFzaAolIG9wZW5hcGktZ2VuZXJhdG9yIGxpc3QKYGBgCgpUaGVyZSBhcmUgc2FtcGxlIGdvIHNldmVyIGFuZCBjbGllbnQgcHJvZ3JhbXMgdXRpbGl6aW5nIGdlbmVyYXRlZCBjb2RlIGJ5IG9wZW5hcGktZ2VuZXJhdG9yLgoKLSBnby1zZXJ2ZXJfc3JjIGlzIHRoZSBnZW5lcmF0ZWQgc2VydmVyIGNvZGUgZGlyZWN0b3J5LiBJdCBpbmNsdWRlcyBnby5tb2QgYW5kIG1haW4uZ28gZmlsZXMgd2hpY2ggYXJlIG1vZGlmaWVkIGZyb20gdGhlIGdlbmVyYXRlZCBjb2RlIGFuIHByZXZlbnRlZCBmcm9tIG92ZXJ3cml0dGVuIGR1cmluZyB0aGUgZm9sbG93aW5nIGNvZGUgZ2VuZXJhdGlvbnMuCi0gZ28tZW5rdWRvLWNsaWVudCBpcyBjb250YWlucyBhIHZlcnkgc2ltcGxlIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgZ29fc3JjIG9wZW5hcGktZ2VuZXJhdG9yIGdlbmVyYXRlZCBjbGllbnQgQVBJIGxpYnJhcnkuCiAKU2FtcGxlIGdvIHNlcnZlciBleGVjdXRlYWJsZSBpcyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSB1cG9uIHNlcnZlciBjb2RlIGdlbmVyYXRpb24sIGFuZCBjYW4gYmUgZXhlY3V0ZWQuIEl0IHNlcnZlcyBBUElzIGJ1dCByZXR1cm5zICJ1bmltcGxlbWVudGVkIiBmYWlsdXJlLgoKYGBgYmFzaAolIC4vZ2VuY29kZS5zaCBFbmt1ZG9fRFNQX1N1YnNjcmlwdGlvbi55YW1sIGdvLXNlcnZlcgolIGNkIGdvLXNlcnZlcl9zcmMKJSAuL2Vua3Vkby1kc3AtZ28tc2VydmVyCmBgYAoKU2FtcGxlIGdvIGZpbGUgaW4gZ28tZW5rdWRvLWNsaWVudCBleHBsYW5pcyBob3cgdG8gcHJlcGFyZSwgYnVpbGQgYW5kIHJ1biB0aGUgY2xpZW50Lgo= readmeEtag: '"ac3fac8faa165008a71d75743bd02f6140abc6b0"' readmeLastModified: Tue, 26 Jul 2022 07:08:07 GMT repositoryId: 511254274 description: null created: '2022-07-06T18:41:58Z' updated: '2022-12-21T13:25:15Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: tufanoruk logo: https://avatars.githubusercontent.com/u/1410205?v=4 repoEtag: '"92987a35b811bde79a58ea4cf09f47b76699d7693b6c434063c7af981a3b4349"' repoLastModified: Wed, 21 Dec 2022 13:25:15 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/futurum-dev/futurum.openapi-to-plantuml v3: true id: 146775bbabca2a4943d3d333afedf506 repositoryMetadata: base64Readme: >- IyBGdXR1cnVtLk9wZW5BcGkgdG8gUGxhbnRVbWwKCiFbbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9mdXR1cnVtLWRldi9mdXR1cnVtLm9wZW5hcGktdG8tcGxhbnR1bWw/c3R5bGU9Zm9yLXRoZS1iYWRnZSkKCkNyZWF0ZXMgW1BsYW50VW1sXShodHRwczovL3BsYW50dW1sLmNvbSkgZGlhZ3JhbXMgZnJvbSBbT3BlbkFwaV0oaHR0cHM6Ly93d3cub3BlbmFwaXMub3JnKSBzcGVjIGZpbGVzLgoKIyMgRXhhbXBsZSAxCltPcGVuQXBpIHNwZWNdKC4vb3BlbmFwaS9vcGVuYXBpLXBldHN0b3JlLmpzb24pIHRha2VuIGZyb20gW2hlcmVdKGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pbykKCiMjIyBPcGVuQXBpIGRpYWdyYW0KIVtPcGVuQXBpIGRpYWdyYW1dKC4vZG9jcy9vcGVuYXBpLXBldHN0b3JlLW9wZW5hcGkuc3ZnKQoKIyMjIE9wZW5BcGkgVHlwZSBkaWFncmFtCiFbT3BlbkFwaSBUeXBlIGRpYWdyYW1dKC4vZG9jcy9vcGVuYXBpLXBldHN0b3JlLW9wZW5hcGktdHlwZS5zdmcpCgojIyBFeGFtcGxlIDIKW09wZW5BcGkgc3BlY10oLi9vcGVuYXBpL29wZW5hcGktcGV0c3RvcmUtc2ltcGxlLnlhbWwpCgojIyMgT3BlbkFwaSBkaWFncmFtCiFbT3BlbkFwaSBkaWFncmFtXSguL2RvY3Mvb3BlbmFwaS1wZXRzdG9yZS1zaW1wbGUtb3BlbmFwaS5zdmcpCgojIyMgT3BlbkFwaSBUeXBlIGRpYWdyYW0KIVtPcGVuQXBpIFR5cGUgZGlhZ3JhbV0oLi9kb2NzL29wZW5hcGktcGV0c3RvcmUtc2ltcGxlLW9wZW5hcGktdHlwZS5zdmcpCgojIyBIb3cgdG8gdXNlIGl0CiMjIyBDb25zb2xlClVzZSAqZnV0dXJ1bS5vcGVuYXBpLXRvLXBsYW50dW1sLWNvbnNvbGUqIHByb2plY3QKCiMjIyMgRmlsZQpVc2UgKmZpbGUqIGZvbGxvd2VkIGJ5IGZpbGUgcGF0aApgYGAKZmlsZSAtLXBhdGggIi4uLy4uLy4uLy4uL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS5qc29uIgpgYGAKCiMjIyMgRGlyZWN0b3J5ClVzZSAqZGlyZWN0b3J5KiBmb2xsb3dlZCBieSBkaXJlY3RvcnkgcGF0aApgYGAKZGlyZWN0b3J5IC0tcGF0aCAiLi4vLi4vLi4vLi4vb3BlbmFwaSIKYGBgCgojIyMjIERpYWdyYW0gQ29uZmlndXJhdGlvbgojIyMjIFRoZW1lClVzZSAqLS10aGVtZSogdG8gc3BlY2lmeSB0aGUgUGxhbnRVbWwgdGhlbWUKYGBgCi0tdGhlbWUgImJsdWVwcmludCIKYGBgCipOT1RFIC0gZGVmYXVsdHMgdG8gbm8gdGhlbWUqCgojIyMjIFNob3cgbm90ZXMKVXNlICotLXNob3dub3RlcyogdG8gc3BlY2lmeSBpZiBQbGFudFVtbCBzaG91bGQgc2hvdyBub3RlcwpgYGAKLS1zaG93bm90ZXMgInRydWUiCmBgYAoqTk9URSAtIGRlZmF1bHRzIHRvIG5vIG5vdGVzKgoKIyMjIERvY2tlciAtIFVzZSB3aXRoIG11bHRpcGxlIE9wZW5BcGkgc3BlYyBmaWxlcwoKYGBgCmRvY2tlciBydW4gLS1ybSAtaXQgLXYgJChwd2QpL29wZW5hcGk6L29wZW5hcGkgZnV0dXJ1bS5vcGVuYXBpLXRvLXBsYW50dW1sLWRpcmVjdG9yeQpgYGAKCiMjIyMgRGlhZ3JhbSBDb25maWd1cmF0aW9uCiMjIyMgVGhlbWUKVXNlICotLXRoZW1lKiB0byBzcGVjaWZ5IHRoZSBQbGFudFVtbCB0aGVtZQpgYGAKLS10aGVtZSAiYmx1ZXByaW50IgpgYGAKKk5PVEUgLSBkZWZhdWx0cyB0byBubyB0aGVtZSoKCmUuZy4KYGBgCmRvY2tlciBydW4gLS1ybSAtaXQgLXYgJChwd2QpL29wZW5hcGk6L29wZW5hcGkgZnV0dXJ1bS5vcGVuYXBpLXRvLXBsYW50dW1sLWRpcmVjdG9yeSAtLXRoZW1lICJibHVlcHJpbnQiCmBgYAoKIyMjIyBTaG93IG5vdGVzClVzZSAqLS1zaG93bm90ZXMqIHRvIHNwZWNpZnkgaWYgUGxhbnRVbWwgc2hvdWxkIHNob3cgbm90ZXMKYGBgCi0tc2hvd25vdGVzICJ0cnVlIgpgYGAKKk5PVEUgLSBkZWZhdWx0cyB0byBubyBub3RlcyoKCmUuZy4KYGBgCmRvY2tlciBydW4gLS1ybSAtaXQgLXYgJChwd2QpL29wZW5hcGk6L29wZW5hcGkgZnV0dXJ1bS5vcGVuYXBpLXRvLXBsYW50dW1sLWRpcmVjdG9yeSAtLXNob3dub3RlcyAidHJ1ZSIKYGBgCgojIyMgRG9ja2VyIC0gVXNlIHdpdGggaW5kaXZpZHVhbCBPcGVuQXBpIHNwZWMgZmlsZXMKIyMjIyBPcGVuQXBpIGRpYWdyYW0KYGBgCmNhdCAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS5qc29uIHwgZG9ja2VyIHJ1biAtLXJtIC1hIHN0ZGluIC1hIHN0ZG91dCAtaSBmdXR1cnVtLm9wZW5hcGktdG8tcGxhbnR1bWwtc3RkLWluLW91dCBvcGVuYXBpIHw+IC4vb3BlbmFwaS9vcGVuYXBpLXBldHN0b3JlLW9wZW5hcGkucHVtbApgYGAKYGBgCmNhdCAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS1zaW1wbGUueWFtbCB8IGRvY2tlciBydW4gLS1ybSAtYSBzdGRpbiAtYSBzdGRvdXQgLWkgZnV0dXJ1bS5vcGVuYXBpLXRvLXBsYW50dW1sLXN0ZC1pbi1vdXQgb3BlbmFwaSB8PiAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS1zaW1wbGUtb3BlbmFwaS5wdW1sCmBgYAoKIyMjIyBPcGVuQXBpIFR5cGUgZGlhZ3JhbQpgYGAKY2F0IC4vb3BlbmFwaS9vcGVuYXBpLXBldHN0b3JlLmpzb24gfCBkb2NrZXIgcnVuIC0tcm0gLWEgc3RkaW4gLWEgc3Rkb3V0IC1pIGZ1dHVydW0ub3BlbmFwaS10by1wbGFudHVtbC1zdGQtaW4tb3V0IG9wZW5hcGktdHlwZSB8PiAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS1vcGVuYXBpLXR5cGUucHVtbApgYGAKYGBgCmNhdCAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS1zaW1wbGUueWFtbCB8IGRvY2tlciBydW4gLS1ybSAtYSBzdGRpbiAtYSBzdGRvdXQgLWkgZnV0dXJ1bS5vcGVuYXBpLXRvLXBsYW50dW1sLXN0ZC1pbi1vdXQgb3BlbmFwaS10eXBlIHw+IC4vb3BlbmFwaS9vcGVuYXBpLXBldHN0b3JlLXNpbXBsZS1vcGVuYXBpLXR5cGUucHVtbApgYGAKCiMjIyMgRGlhZ3JhbSBDb25maWd1cmF0aW9uCiMjIyMgVGhlbWUKVXNlICotLXRoZW1lKiB0byBzcGVjaWZ5IHRoZSBQbGFudFVtbCB0aGVtZQpgYGAKLS10aGVtZSAiYmx1ZXByaW50IgpgYGAKKk5PVEUgLSBkZWZhdWx0cyB0byBubyB0aGVtZSoKCmUuZy4KYGBgCmNhdCAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS5qc29uIHwgZG9ja2VyIHJ1biAtLXJtIC1hIHN0ZGluIC1hIHN0ZG91dCAtaSBmdXR1cnVtLm9wZW5hcGktdG8tcGxhbnR1bWwtc3RkLWluLW91dCBvcGVuYXBpIC0tdGhlbWUgImJsdWVwcmludCIgfD4gLi9vcGVuYXBpL29wZW5hcGktcGV0c3RvcmUtb3BlbmFwaS5wdW1sCmBgYAoKIyMjIyBTaG93IG5vdGVzClVzZSAqLS1zaG93bm90ZXMqIHRvIHNwZWNpZnkgaWYgUGxhbnRVbWwgc2hvdWxkIHNob3cgbm90ZXMKYGBgCi0tc2hvd25vdGVzICJ0cnVlIgpgYGAKKk5PVEUgLSBkZWZhdWx0cyB0byBubyBub3RlcyoKCmUuZy4KYGBgCmNhdCAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS5qc29uIHwgZG9ja2VyIHJ1biAtLXJtIC1hIHN0ZGluIC1hIHN0ZG91dCAtaSBmdXR1cnVtLm9wZW5hcGktdG8tcGxhbnR1bWwtc3RkLWluLW91dCBvcGVuYXBpIC0tc2hvd25vdGVzICJ0cnVlIiB8PiAuL29wZW5hcGkvb3BlbmFwaS1wZXRzdG9yZS1vcGVuYXBpLnB1bWwKYGBgCgojIyBEb2NrZXIKIyMjIEhvdyB0byBidWlsZCBpdAoKYGBgCmRvY2tlciBidWlsZCAtdCBmdXR1cnVtLm9wZW5hcGktdG8tcGxhbnR1bWwtZGlyZWN0b3J5IC1mIGZ1dHVydW0ub3BlbmFwaS10by1wbGFudHVtbC1kaXJlY3RvcnkvRG9ja2VyZmlsZSAuCmBgYApgYGAKZG9ja2VyIGJ1aWxkIC10IGZ1dHVydW0ub3BlbmFwaS10by1wbGFudHVtbC1zdGQtaW4tb3V0IC1mIGZ1dHVydW0ub3BlbmFwaS10by1wbGFudHVtbC1zdGQtaW4tb3V0L0RvY2tlcmZpbGUgLgpgYGAKCiMjIyBSZW1vdmUgaW1hZ2VzCmBgYApkb2NrZXIgcm1pIGZ1dHVydW0ub3BlbmFwaS10by1wbGFudHVtbC1kaXJlY3RvcnkKYGBgCmBgYApkb2NrZXIgcm1pIGZ1dHVydW0ub3BlbmFwaS10by1wbGFudHVtbC1zdGQtaW4tb3V0CmBgYA== readmeEtag: '"3ef37dc169d123c91a0a9fbde6ea2c89d35e698b"' readmeLastModified: Sat, 06 Aug 2022 09:35:03 GMT repositoryId: 516064302 description: Creates PlantUml diagrams from OpenApi spec files. created: '2022-07-20T16:54:11Z' updated: '2022-07-22T17:42:05Z' language: C# archived: false stars: 0 watchers: 1 forks: 0 owner: futurum-dev logo: https://avatars.githubusercontent.com/u/97805806?v=4 license: MIT repoEtag: '"d7f4740227c090e0dfdb07653222053420ae183c707c79c3b3adc1141a353446"' repoLastModified: Fri, 22 Jul 2022 17:42:05 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/deniskyashif/spring-openapi-codegen-demo v3: true id: 153ea28d4d23780b847d4c0c5340782b repositoryMetadata: base64Readme: >- IyBzcHJpbmctb3BlbmFwaS1jb2RlZ2VuLWRlbW8KClRoaXMgcmVwb3NpdG9yeSBkZW1vbnN0cmF0ZXMgaG93IHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgV2ViIEFQSSBzcGVjaWZpY2F0aW9uIGRvY3VtZW50IGZyb20gc291cmNlIGNvZGUgYW5kIGhvdyB0byBnZW5lcmF0ZSBhbiBBUEkgY2xpZW50IGFwcGxpY2F0aW9uIChpbiB2YXJpb3VzIGxhbmd1YWdlcykgZnJvbSBpdC4gCgojIyBHZW5lcmF0ZSBPcGVuQXBpIHNwZWMgdXNpbmcgY29kZSBhbm5vdGF0aW9ucwoKVGhpcyBwYXJ0IHJlcXVpcmVzIFtKYXZhIDhdKGh0dHBzOi8vd3d3Lm9yYWNsZS5jb20vamF2YS90ZWNobm9sb2dpZXMvZG93bmxvYWRzLykgYW5kIFtHcmFkbGVdKGh0dHBzOi8vZ3JhZGxlLm9yZy8pLiBbVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBFeHBsYWluZWRdKGh0dHBzOi8vb2FpLmdpdGh1Yi5pby9Eb2N1bWVudGF0aW9uL3NwZWNpZmljYXRpb24uaHRtbCkKCjEuIEFkZCBgJ29yZy5zcHJpbmdkb2M6c3ByaW5nZG9jLW9wZW5hcGktdWk6MS42LjknYCB0byBnZW5lcmF0ZSBPcGVuQVBJIFVJIGluIHRoZSBicm93c2VyCjIuIEFkZCBgJ2lvLnN3YWdnZXIuY29yZS52Mzpzd2FnZ2VyLWNvcmU6Mi4yLjInYCB0byBpbmNsdWRlIGNvZGUgYW5ub3RhdGlvbnMgZm9yIGRvY3VtZW50aW5nIEFQSSBlbmRwb2ludHMKMy4gRG9jdW1lbnQgdGhlIEFQSSBlbmRwb2ludHMgdXNpbmcgY29kZSBhbm5vdGF0aW9ucyAoc2VlIFtHcmVldGluZ0NvbnRyb2xsZXIuamF2YV0oaHR0cHM6Ly9naXRodWIuY29tL2Rlbmlza3lhc2hpZi9zcHJpbmctb3BlbmFwaS1jb2RlZ2VuLWRlbW8vYmxvYi9tYXN0ZXIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9yZXN0c2VydmljZS9HcmVldGluZ0NvbnRyb2xsZXIuamF2YSkpLgo0LiBSdW4gdGhlIHdlYiBhcHAgYGdyYWRsZSBib290UnVuYCBhbmQgbmF2aWdhdGUgdG8gYGxvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkvaW5kZXguaHRtbGAgdG8gc2VlIHRoZSBpbnRlcmFjdGl2ZSBkb2N1bWVudGF0aW9uLgo1LiBBY2Nlc3MgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBKU09OIGRvY3VtZW50IG9uIGBodHRwOi8vbG9jYWxob3N0OjgwODAvdjMvYXBpLWRvY3NgCgpUbyBnZW5lcmF0ZSB0aGUgT3BlbkFQSSBzcGVjIGFzIGEgZmlsZSwgYWRkIHRoZSBbc3ByaW5nZG9jLW9wZW5hcGktZ3JhZGxlLXBsdWdpbl0oaHR0cHM6Ly9naXRodWIuY29tL3NwcmluZ2RvYy9zcHJpbmdkb2Mtb3BlbmFwaS1ncmFkbGUtcGx1Z2luKSBhbmQgcnVuOiAgCgpgZ3JhZGxlIGNsZWFuIGdlbmVyYXRlT3BlbkFwaURvY3NgIAoKVGhlIGZpbGUgaXMgbG9jYXRlZCBpbiBgPHBhdGgtdG8tcHJvamVjdD4vYnVpbGQvb3BlbmFwaS5qc29uYC4gTWFrZSBzdXJlIG5vIG90aGVyIHByb2Nlc3MgaXMgcnVubmluZyBvbiBwb3J0IGA6ODA4MGAuIAoKIyMgR2VuZXJhdGUgYW4gQVBJIGNsaWVudCBmcm9tIGFuIE9wZW5BUEkgc3BlYwoKVGhlIE9wZW5BUEkgR2VuZXJhdG9yIHJlcXVpcmVzIFtub2RlLmpzXShodHRwczovL25vZGVqcy5vcmcvZW4vKS4gU2VlIHRoZSBpbnN0cnVjdGlvbnMgZm9yIFtpbnN0YWxsYXRpb25dKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9kb2NzL2luc3RhbGxhdGlvbikgYW5kIFt1c2FnZV0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvdXNhZ2UpLgoKTGlzdCB0aGUgYXZhaWxhYmxlIGdlbmVyYXRvcnM6ICAKYG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBsaXN0YAoKVmFsaWRhdGUgdGhlIE9wZW5BcGkgc3BlYyBmaWxlOiAgCmBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmFsaWRhdGUgLWkgPHBhdGgtdG8+L29wZW5hcGkuanNvbmAKCkdlbmVyYXRlIGEgQyMgQVBJIENsaWVudDogIApgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlIC1pIDxwYXRoLXRvPi9vcGVuYXBpLmpzb24gLWcgY3NoYXJwLW5ldGNvcmUgLW8gLi90bXAvQ2xpZW50QXBwL2AK readmeEtag: '"4bbbbb338d2fe68b62dd3f9db9850deac4b6fa5e"' readmeLastModified: Tue, 09 Aug 2022 05:33:15 GMT repositoryId: 522176786 description: >- How to automatically create a Web API specification document from source code and how to generate an API client application (in various languages) from it created: '2022-08-07T10:06:25Z' updated: '2022-08-08T09:15:30Z' language: Java archived: false stars: 0 watchers: 3 forks: 0 owner: deniskyashif logo: https://avatars.githubusercontent.com/u/5999271?v=4 repoEtag: '"6cbbd3ee30927d59557b63184fd46a3981881ba6f9944515a117d31ec07f78dc"' repoLastModified: Mon, 08 Aug 2022 09:15:30 GMT category: - Code Generators - Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/davids13/api-specification-converter v3: true repositoryMetadata: base64Readme: >- IyBvcGVuQVBJQ29udmVydGVyCkEgY29udmVydGVyIEFQSTogU3dhZ2dlciB0byBPcGVuQXBpIDMgb3IgT3BlbkFwaSAzIHRvIFN3YWdnZXIK readmeEtag: '"9f74789c588de42be5f4318d12d93a3e38223df4"' readmeLastModified: Sat, 29 Feb 2020 13:47:40 GMT repositoryId: 243976048 description: 'A converter for API specification: OAS3, swagger, raml' created: '2020-02-29T13:43:38Z' updated: '2020-07-16T22:09:46Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: davids13 logo: https://avatars.githubusercontent.com/u/19639609?v=4 repoEtag: '"71b9db745d13ae2557c77a19a50ea75a55dfe1999e3ecf2deab4c37f41635d25"' repoLastModified: Thu, 16 Jul 2020 22:09:46 GMT foundInMaster: true category: Parsers id: 225a855be04f65490701933a0597917c - source: openapi3 tags repository: https://github.com/soxyl/saferpay-openapi v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFNwZWMgZm9yIFNhZmVycGF5IEpTT04gQVBJCgpUaGlzIHJlcG9zaXRvcnkgcHJvdmlkZXMgYW4gT3BlbkFQSSAzLjAgU3BlY2lmaWNhdGlvbiBGaWxlIGRlc2NyaWJpbmcgdGhlIFNhZmVyZXBheSBKU09OIEFQSSBkb2N1bWVudGVkIGF0IGh0dHBzOi8vc2FmZXJwYXkuZ2l0aHViLmlvL2pzb25hcGkgLgoKVGhlIE9wZW5BUEkgc3BlYyBpcyBob3N0ZWQgYXQgaHR0cHM6Ly9hcHAuc3dhZ2dlcmh1Yi5jb20vYXBpcy9zb3h5bC9zYWZlcnBheQoKIyMgUmVnZW5lcmF0ZSBzcGVjCgpgYGAKJCBjb21wb3NlciBpbnN0YWxsIC0td29ya2luZy1kaXIgZ2VuZXJhdG9yCiQgZ2VuZXJhdG9yL2Jpbi9jb25zb2xlIGdlbmVyYXRlID4gb3BlbmFwaS55YW1sCmBgYAoKIyMgR2VuZXJhdGUgYSBDbGllbnQgTG9jYWxseQoKYGBgCmRvY2tlciBydW4gLS1ybSAtLXVzZXIgMTAwMDoxMDAwIC12ICR7UFdEfTovbG9jYWwgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSAvbG9jYWwvb3BlbmFwaS55YW1sIFwKICAgIC1nIHBocCBcCiAgICAtbyAvbG9jYWwvY2xpZW50LXBocApgYGAK readmeEtag: '"d28f9e28d646e975c1e3ba821ce48bf3f183e8b3"' readmeLastModified: Tue, 14 Aug 2018 10:03:28 GMT repositoryId: 144590172 description: >- This repository provides an OpenAPI 3.0 Specification File describing the Saferepay JSON API. created: '2018-08-13T14:20:57Z' updated: '2018-08-14T10:07:07Z' language: PHP archived: false stars: 0 watchers: 0 forks: 2 owner: soxyl logo: https://avatars.githubusercontent.com/u/7266755?v=4 license: MIT repoEtag: '"0e268abca1782a9e86f2b8a102fb6f94aca13dcc08a44f22d3c59fbd891b89f5"' repoLastModified: Tue, 14 Aug 2018 10:07:07 GMT foundInMaster: true category: - Code Generators - Parsers id: 81db3bb9a1951b971b0811a986670f18 - source: openapi3 tags repository: https://github.com/zweidenker/dockerengine v3: true repositoryMetadata: base64Readme: >- IyBEb2NrZXJFbmdpbmUKClRoaXMgaXMgaW1wbGVtZW50ZWQgdXNpbmcgRG9ja2VyIEVuZ2luZSBBUEkgeWFtbCBmaWxlIGZyb20KCmh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9hcGkvdjEuMzcvIwoKY29udmVydGVkIHRoZSBmaWxlIHRvIGpzb24gd2l0aAoKJCBhbGlhcyB5YW1sLXRvLWpzb249J2RvY2tlciBydW4gLWkgaW5neS95YW1sLXRvLWpzb24nCiQgY2F0IHN3YWdnZXIueWFtbCB8IHlhbWwtdG8tanNvbiB8IGpxIC4gPiBzd2FnZ2VyLmpzb24KCmFuZCBjb252ZXJ0ZWQgaXQgZnJvbSBzd2FnZ2VyIDIuMCB0byBvcGVuYXBpIDMuMC4wIHdpdGgKCmh0dHBzOi8vb3BlbmFwaS1jb252ZXJ0ZXIuaGVyb2t1YXBwLmNvbS8KCgoK readmeEtag: '"5f9cf774599a4b0073c78da91b517cc30489b7b3"' readmeLastModified: Thu, 13 Sep 2018 12:39:27 GMT repositoryId: 140084992 description: Implementation of DockerEngine API created: '2018-07-07T13:04:59Z' updated: '2018-10-09T20:32:57Z' language: Smalltalk archived: false stars: 0 watchers: 4 forks: 1 owner: zweidenker logo: https://avatars.githubusercontent.com/u/20300491?v=4 repoEtag: '"42771386b52fe77c237ca403a41fe255a4af8c91673f9ce7f0ec4db804d2d8d5"' repoLastModified: Tue, 09 Oct 2018 20:32:57 GMT foundInMaster: true category: - Code Generators - Parsers id: e39bc1e71854fd595a53e89dcbc84c4a - source: openapi3 tags repository: https://github.com/sinnerr0/mock-server-generator v3: true repositoryMetadata: base64Readme: >- IyBNb2NrIFNlcnZlciBHZW5lcmF0b3IKCiMjIE1vdGl2YXRpb24KCk9wZW4gQVBJ66W8IOyCrOyaqe2VmOuKlCDqsoPsnbQg7JWE64uI652866m0IOyEnOuyhOyqveqzvCDtgbTrnbzsnbTslrjtirjsqr3snbQg64+Z7Iuc7JeQIOqwnOuwnOydtCDsp4Ttlokg65Cc64ukLiDsnbTrn7Ag6rK97JqwIO2BtOudvOydtOyWuO2KuOyqveyXkCDrtoDri7TsnbQg7Luk7KeA64qU642wIEFQSSDsiqTtjpnsnYQg66+466asIO2ZleyduO2WiOuLpOqzoCDtlZjrjZTrnbzrj4Qg7ISc67KE6rCAIOyVhOyngSDsl4bsnLzrr4DroZwo7J6I642U652864+EIOydvOu2gOunjCkg7YG065287J207Ja47Yq47Kq9IOyekeyXheydtCDsp4Dsl7DrkJjqsbDrgpggTW9ja2luZ+ydhCDtlbTshJwg67CY7ZmY6rCS7J2EIOqwgOygle2VmOyXkCDrkZDqs6Ag6rCc67Cc7J2EIO2VtOyVvCDtlZzri6TripQg7KCQ7J2064ukLiDshJzrsoTsqr3sl5DshJwg7ZiR7J2Y65CcIEFQSSDsiqTtjpnsl5Ag66ee7LaU7Ja0IOyEnOuyhOyXkOyEnCBNb2Nr7ISc67KE66W8IOq1rO2YhO2VtCDspIDri6TrqbQg7IOB7Zmp7J20IOyigCDrgpjslYTsp4jthYzsp4Drp4wg6rCc67Cc7ZWY6riw64+EIOuwlOyBnOuNsCDsnbTrn7Dqsbgg6rWs7ZiE7ZWY64qUIOqygyDsnpDssrTqsIAg7Im97KeAIOyViuuLpC4KCiMjIFN1bW1hcnkKCuyEnOuyhOyZgOuKlCDqtIDqs4Tsl4bsnbQg7KCV7J2Y65CcIOyduO2EsO2OmOydtOyKpOyXkCDrlLDrnbwg66+466asIOqwnOuwnOydhCDsp4TtlontlaAg7IiYIOyeiOuPhOuhnSBNb2NrIFNlcnZlcuulvCDsg53shLHtlZjqs6Ag7J6Q64+Z7Jy866GcIOyDneyEseuQnCDsnZHri7XqsJLsnYQg64+M66Ck7KSA64ukLgoKIyMgQmFzZSBrbm93bGVkZ2UKCk9wZW4gQVBJIFNwZWMgMy4wLjMgaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vCgojIyBPcGVuIEFQSSBTcGVjIEZpbGUKCi0gb3BlbmFwaS55YW1sCgotIFByaXNtIG1vY2s6IER5bmFtaWMgUmVzcG9uc2UgR2VuZXJhdGlvbgoKICBodHRwczovL21ldGEuc3RvcGxpZ2h0LmlvL2RvY3MvcHJpc20vZG9jcy9ndWlkZXMvMDEtbW9ja2luZy5tZCNkeW5hbWljLXJlc3BvbnNlLWdlbmVyYXRpb24KCiMjIENyZWF0ZS9FZGl0IGZpbGUKCmh0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vCgojIyBJbnN0YWxsCgpgYGAKJCBucG0gaW5zdGFsbApgYGAKCiMjIFNwaW4gdXAgYSBtb2NrIEhUVFAgc2VydmVyCgpgYGAKJCBucG0gc3RhcnQKYGBgCgojIyBQcm94eSBSZWFsIFNlcnZlcgoKYGBgCiMgTW9kaWZ5IHJlYWwgc2VydmVyIGFkZHJlc3MgaW4gcGFja2FnZS5qc29uCiQgbnBtIHJ1biBwcm94eQpgYGAKCiMjIERvY3MgVUkKCmBgYAojIHNlcnZlIHBvcnQgNDAwMDogaHR0cDovL2xvY2FsaG9zdDo0MDAwCiQgbnBtIHJ1biBkb2NzCmBgYAo= readmeEtag: '"9a65a43fda4ddeddb9b1f8af13d01b1eb0814a38"' readmeLastModified: Fri, 28 Aug 2020 11:26:30 GMT repositoryId: 289464781 description: mock server generator & docs serve created: '2020-08-22T10:12:57Z' updated: '2022-12-09T14:36:47Z' language: HTML archived: true stars: 0 watchers: 2 forks: 0 owner: sinnerr0 logo: https://avatars.githubusercontent.com/u/6859131?v=4 repoEtag: '"f508f8f62be08155423197c4f6a14bcdfb49afb5414933b9214dc1a3822ee2bc"' repoLastModified: Fri, 09 Dec 2022 14:36:47 GMT foundInMaster: true category: - SDK - Server Implementations id: 13a5f59fc7c008ee062cd1ea9cf5aa53 - source: openapi3 tags repository: https://github.com/mikeralphson/openapi-diff v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIERpZmYKPiBBIENMSSB0b29sIHRvIGlkZW50aWZ5IGRpZmZlcmVuY2VzIGJldHdlZW4gU3dhZ2dlci9PcGVuQVBJIHNwZWNzLgoKIyMgUmVxdWlyZW1lbnRzCi0gbm9kZWpzIDYueCBvciBoaWdoZXIgKHRlc3RlZCB1c2luZyA2LngsIDgueCBhbmQgMTAueCkKLSBucG0gMy54IG9yIGhpZ2hlciAodGVzdGVkIHVzaW5nIDMueCBhbmQgNXgpCgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgdGhlIHRvb2wgdXNpbmcgbnBtIGFuZCBhZGQgaXQgdG8gdGhlIHBhY2thZ2UuanNvbgpgYGAKbnBtIGluc3RhbGwgb3BlbmFwaS1kaWZmIC0tc2F2ZS1kZXYKYGBgCgpBdm9pZCBpbnN0YWxsaW5nIHRoZSB0b29sIGdsb2JhbGx5IGFzIHRoaXMgd2lsbCBsZWFkIHRvIHByb2JsZW1zIHdoZW4gbXVsdGlwbGUgY29kZWJhc2VzIHRyeSB0byB1c2UgZGlmZmVyZW50IHZlcnNpb25zCm9mIHRoZSB0b29sIG9uIHRoZSBzYW1lIG1hY2hpbmUuCgojIyBVc2FnZQpJbnZva2UgdGhlIHRvb2wgd2l0aCB0d28gcGF0aHMgdG8gU3dhZ2dlci9PcGVuQVBJIGZpbGVzIGluIG9yZGVyIHRvIGZpbmQgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVtLCB0aGVzZSBwYXRocyBjYW4KZWl0aGVyIGJlIHBhdGhzIHRvIHRoZSBzcGVjcyBpbiB0aGUgbG9jYWwgZmlsZXN5c3RlbSBvciBVUkxzIHRvIHRoZSBzcGVjcywgYm90aCBKU09OIGFuZCBZQU1MIGFyZSBzdXBwb3J0ZWQuCmBgYAouL25vZGVfbW9kdWxlcy8uYmluL29wZW5hcGktZGlmZiAvcGF0aC90by9zb3VyY2Uvb3BlbmFwaS5qc29uIC9wYXRoL3RvL2Rlc3RpbmF0aW9uL29wZW5hcGkuanNvbgouL25vZGVfbW9kdWxlcy8uYmluL29wZW5hcGktZGlmZiAvcGF0aC90by9zb3VyY2Uvb3BlbmFwaS55bWwgL3BhdGgvdG8vZGVzdGluYXRpb24vb3BlbmFwaS55bWwKYGBgCgpUaGUgdG9vbCdzIG91dHB1dCB3aWxsIGRpc3BsYXkgdGhlIGFtb3VudCBhbmQgdHlwZSBvZiBjaGFuZ2VzLCBhbmQgdGhlbiBsaXN0IHRoZSBjaGFuZ2VzIHdpdGggdGhlIHJlbGV2YW50IGluZm8uCkNoYW5nZXMgYXJlIGNsYXNzaWZpZWQgYXMgZm9sbG93czoKCiogQnJlYWtpbmc6IGNoYW5nZXMgdGhhdCB3b3VsZCBtYWtlIGV4aXN0aW5nIGNvbnN1bWVycyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQVBJIChkZWxldGlvbiBvZiBwYXRocywgYWRkaW5nIHJlcXVpcmVkCnByb3BlcnRpZXMuLi4pCiogTm9uLWJyZWFraW5nOiBjaGFuZ2VzIHRoYXQgd291bGQgKipub3QqKiBtYWtlIGV4aXN0aW5nIGNvbnN1bWVycyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQVBJIChhZGRpdGlvbiBvZiBwYXRocywKdHVybmluZyBhIHJlcXVpcmVkIHByb3BlcnR5IGludG8gb3B0aW9uYWwuLi4pCiogVW5jbGFzc2lmaWVkOiBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIGRldGVjdGVkIGJ5IHRoZSB0b29sIGJ1dCBjYW4ndCBiZSBjbGFzc2lmaWVkIChtb2RpZmljYXRpb25zIHRvIFgtUHJvcGVydGllcyBhbmQKb3RoZXIgdW5mb3Jlc2VlbiBjaGFuZ2VzKQoKVGhlIGNvbW1hbmQgd2lsbCBleGl0IHdpdGggYW4gZXhpdCBjb2RlIDEgaWYgYW55IGJyZWFraW5nIGNoYW5nZXMgd2VyZSBmb3VuZCwgc28gdGhhdCB5b3UgY2FuIGZhaWwgYnVpbGRzIGluIENJIHdoZW4KdGhpcyBoYXBwZW5zLgoKIyMgRmVhdHVyZSBzdXBwb3J0ClNlZSBbU1BFQ19TVVBQT1JULm1kXShTUEVDX1NVUFBPUlQubWQpCg== readmeEtag: '"65efaea40e50866d1e2e96f7b078b711b27e8cf3"' readmeLastModified: Tue, 13 Nov 2018 02:34:28 GMT repositoryId: 158676563 description: Mirror of Atlassian's OpenAPI Diff (from bitbucket.org) created: '2018-11-22T09:45:42Z' updated: '2018-11-22T09:53:27Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: MikeRalphson logo: https://avatars.githubusercontent.com/u/21603?v=4 license: NOASSERTION repoEtag: '"2d8bd605248b8af66cc914639cd90d7c55a7655b247eb3bf0c1788ab6003ad2b"' repoLastModified: Thu, 22 Nov 2018 09:53:27 GMT foundInMaster: true category: Parsers id: eb4fff87cf20a81df48de3a6428af5e3 - source: openapi3 tags repository: https://github.com/yo-mah-ya/openapi-with-express v3: true id: c3b059b5ca5cb016ea4e1ea9caa8b7a7 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHdpdGggRXhwcmVzcyB3cml0dGVuIGluIFR5cGVTY3JpcHQKCk1haW4gbGlicmFyaWVzIGZvciB0aGlzIHJlcG9zaXRvcnkKCiMgQVBJIFNlcnZlcgoKLSAgIFtleHByZXNzXShodHRwOi8vZXhwcmVzc2pzLmNvbS8pCgojIE9wZW5BUEkgVmFsaWRhdGlvbiBmb3IgYm90aCByZXF1ZXN0IGFuZCByZXNwb25zZQoKLSAgIFtleHByZXNzLW9wZW5hcGktdmFsaWRhdG9yXShodHRwczovL2dpdGh1Yi5jb20vY2RpbWFzY2lvL2V4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IjcmVhZG1lKQoKIyBHZW5lcmF0ZSBUeXBlU2NyaXB0IHR5cGVzIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9uCgotICAgW29wZW5hcGktdHlwZXNjcmlwdF0oaHR0cHM6Ly9naXRodWIuY29tL2Ryd3Bvdy9vcGVuYXBpLXR5cGVzY3JpcHQjcmVhZG1lKQoKIyBVSSB0byBzZWUgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbgoKLSAgIFtzd2FnZ2VyLXVpLWV4cHJlc3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY290dGllMTk4NC9zd2FnZ2VyLXVpLWV4cHJlc3MpCg== readmeEtag: '"1aa82d583ae65e15cbca5df6ecbf09e37b3c5e9c"' readmeLastModified: Tue, 11 Apr 2023 21:00:51 GMT repositoryId: 626168947 description: OpenAPI-with-Express implemented in TypeScript created: '2023-04-11T00:02:41Z' updated: '2023-04-11T00:18:07Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: Yo-mah-Ya logo: https://avatars.githubusercontent.com/u/59109232?v=4 repoEtag: '"5c63b860b608837055d5716d4815df26bfbe87a3e3f8f490d6a2fc86bc1bbb06"' repoLastModified: Tue, 11 Apr 2023 00:18:07 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/dansilva41/currency-transaction v3: true repositoryMetadata: base64Readme: >- PGltZyBhbGlnbj0iY2VudGVyIiBzcmM9ImRvY3MvbG9nby5wbmciIGFsdD0iQ3VycmVuY3kgVHJhbnNhY3Rpb24iPgogICAgCjxoNCBhbGlnbj0iY2VudGVyIj4KICAgIDxhIGhyZWY9Imh0dHBzOi8vY3VycmVuY3ktdHJhbnNhY3Rpb24uaGVyb2t1YXBwLmNvbS9zd2FnZ2VyLXVpLmh0bWwiPkxpdmUgZGVtbzwvYT4KPC9oND4KCjxoMyBhbGlnbj0iY2VudGVyIj4KICAgIFNpbXBsZSwgZmFzdCBhbmQgcmVhY3RpdmUgYXBwbGljYXRpb24gdG8gY29udmVydCB2YWx1ZXMgYmV0d2VlbiBhbGwgY3VycmVuY2llcy4KPC9oMz4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgYWx0PSJHaXRIdWIgbGFuZ3VhZ2UgY291bnQiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGFuZ3VhZ2VzL2NvdW50L2RhbnNpbHZhNDEvY3VycmVuY3ktdHJhbnNhY3Rpb24/Y29sb3I9JTIzMDREMzYxIj4KCiAgPGltZyBhbHQ9IlJlcG9zaXRvcnkgc2l6ZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9yZXBvLXNpemUvZGFuc2lsdmE0MS9jdXJyZW5jeS10cmFuc2FjdGlvbiI+CgogIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kYW5zaWx2YTQxL2N1cnJlbmN5LXRyYW5zYWN0aW9uL2NvbW1pdHMvbWFpbiI+CiAgICA8aW1nIGFsdD0iR2l0SHViIGxhc3QgY29tbWl0IiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L2RhbnNpbHZhNDEvY3VycmVuY3ktdHJhbnNhY3Rpb24iPgogIDwvYT4KCiAgIDxpbWcgYWx0PSJMaWNlbnNlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtYnJpZ2h0Z3JlZW4iPgogICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGFuc2lsdmE0MS9jdXJyZW5jeS10cmFuc2FjdGlvbi9zdGFyZ2F6ZXJzIj4KICAgIDxpbWcgYWx0PSJNSVQgTGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9zdGFycy9kYW5zaWx2YTQxL2N1cnJlbmN5LXRyYW5zYWN0aW9uP3N0eWxlPXNvY2lhbCI+CiAgPC9hPgoKICA8YSBocmVmPSJodHRwczovL2RhbnNpbHZhNDEuZ2l0aHViLmlvIj4KICAgIDxpbWcgYWx0PSJtYWRlIGJ5IERhbmlsbyBTaWx2YSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL21hZGUlMjBieS1EYW5pbG8lMjBTaWx2YS1ibHVlIj4KICA8L2E+CgogIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVycy1mcmllbmRzLmdpdGJvb2suaW8vIj4KICAgIDxpbWcgYWx0PSJEZXZlbG9wZXIncyBGcmllbmRzIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQmxvZy1EZXZlbG9wZXJzJTIwRnJpZW5kcy1vcmFuZ2UiPgogICAgPC9hPiAKPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiA8YSBocmVmPSIjZGl6enktYWJvdXQiPkFib3V0PC9hPiDigKIKIDxhIGhyZWY9IiNtZWdhLWZlYXR1cmVzIj5GZWF0dXJlczwvYT4g4oCiIAogPGEgaHJlZj0iI3JvY2tldC10ZWNobm9sb2dpZXMtYW5kLW1vdGl2YXRpb24iPlRlY2hub2xvZ2llcyBhbmQgbW90aXZhdGlvbjwvYT4g4oCiCiA8YSBocmVmPSIjc2Nyb2xsLXN0cnVjdHVyZSI+U3RydWN0dXJlPC9hPiDigKIKIDxhIGhyZWY9IiNjb21wdXRlci1idWlsZGluZy1sb2NhbGx5Ij5CdWlsZGluZyBMb2NhbGx5PC9hPiDigKIKIDxhIGhyZWY9IiNtZW1vLWxpY2Vuc2UiPkxpY2Vuc2U8L2E+Cgo8L3A+CgojIyA6ZGl6enk6IEFib3V0CgpUaGlzIGFwcGxpY2F0aW9uIGlzIGRlc2lnbmVkIHdpdGggY3VycmVuY3ktYmFzZWQgdmFsdWUgY29udmVyc2lvbiBpbiBtaW5kLCB3aGVyZSB0aGUgZm9jdXMgaXMgdG8gZ2V0IHRoZSBjb252ZXJzaW9uIHJhdGVzIGZyb20gYW4gW2V4dGVybmFsIGFwaV0oaHR0cHM6Ly9leGNoYW5nZXJhdGVzYXBpLmlvKSwKcGVyZm9ybSB0aGUgY29udmVyc2lvbiBjYWxjdWxhdGlvbnMsIHBlcnNpc3QgdGhlIGRhdGEgYW5kIHJldHVybiB0byBjb25zaXN0ZW50IGRhdGEuCkluIGFkZGl0aW9uIHRvIG9mZmVyaW5nIHBlcmZvcm1hbmNlIGR1ZSB0byBpdHMgcmVhY3RpdmUgYmVoYXZpb3IsIHRoZSBhcHBsaWNhdGlvbiBwcm92aWRlcyBhIHdheSB0byBjb25zdWx0IHRoZSBjb252ZXJzaW9ucyBhbHJlYWR5IGNhcnJpZWQgb3V0IGJ5IHRoZSB1c2VyLgoKLS0tCiMjIDptZWdhOiBGZWF0dXJlcwoKfCAgICAgICAgICBBY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIEF2YWlsYWJsZSAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICB8IDotLS0tLS0tLS0tLS0tLS0tLTogfAp8IENvbnZlcnRpbmcgdmFsdWUgYmV0d2VlbiBhbGwgY3VycmVuY2llcyAgICAgICAgICAgfCAgICAgICAgIOKclO+4jyAgICAgICAgICAgfAp8IEdldCBhbGwgY29udmVyc2lvbnMgcGVyZm9ybWVkIGJ5IHVzZXIgICAgICAgICAgICAgfCAgICAgICAgIOKclO+4jyAgICAgICAgICAgfAoKLS0tCgojIyA6cm9ja2V0OiBUZWNobm9sb2dpZXMgYW5kIG1vdGl2YXRpb24KClRoZSBwcm9qZWN0IHdhcyBkZXZlbG9wZWQgdXNpbmcgdGhlIGZvbGxvd2luZyB0ZWNobm9sb2dpZXMKCi0gW1NwcmluZ10oKTogSXQgbWFrZXMgcHJvZ3JhbW1pbmcgaW4gSmF2YSBmYXN0ZXIsIGVhc2llciBhbmQgc2FmZXIuIENvbXBhcmVkIHRvIG90aGVyIHdlYiBlY29zeXN0ZW1zIHN1Y2ggYXMgUXVhcmt1cywgVmVydC54LCBKYXZhbGluLCBpdCBoYXMgYSB2ZXJ5IHNpbXBsZSBjb25maWd1cmF0aW9uLCB3aXRoIGEgbGFyZ2UgYW5kIHByZXNlbnQgY29tbXVuaXR5LCB3aGljaCBtYWtlcyBpdCBlYXNpZXIgaW4gdGhlIG1pZHN0IG9mIGRldmVsb3BtZW50IG1pc2hhcHMuCi0gW1NwcmluZyBXZWJGbHV4XSgpOiBJbiBvcmRlciB0byBidWlsZCBhbiBhcHBsaWNhdGlvbiBhaW1lZCBhdCB0aGUgUkVTVCBBUEksIGJ1dCB0byBicmluZyByZWFjdGl2aXR5LCBhc3luY2hyb25pc20gYW5kIHBlcmZvcm1hbmNlLCBTcHJpbmcgV2ViIEZsdXggaXMgYWJsZSB0byBwcm92aWRlIHRoaXMsIGtlZXBpbmcgdGhlIGNvZGUgY29tbW9uIHRvIHRoZSBjb252ZW50aW9uYWwgc3luY2hyb25vdXMgUmVzdCBBUEkuCi0gW1JlYWN0aXZlIE1vbmdvREIgRW1iZWRkZWRdKCk6IFByb3ZpZGUgYSBwbGF0Zm9ybS1uZXV0cmFsIHdheSB0byBydW4gZW1iZWRkZWQgbW9uZ29kYiwgbm90IHJlbHlpbmcgb24gYW4gZXh0ZXJuYWwgc2VydmVyIGZvciB0aGUgYXBwbGljYXRpb24gYW5kIHdpdGggYSB2ZXJ5IGZhc3QgYnVpbGQsIGR5bmFtaWMgYnkgaW5zdGFuY2UgYW5kIHBvd2VyZnVsIGluIHByb2Nlc3NpbmcuCi0gW09wZW4gQVBJXSgpOiBQdXJzdWluZyB0aGUgQVBJIGZpcnN0IGNvbmNlcHQsIHRoaXMgc3BlY2lmaWNhdGlvbiBlbmFibGVzIGluZGVwZW5kZW50IHdyaXRpbmcgb2YgdGhlIFJFU1QgQVBJcyBhbmQgdGhlIHJlc3VsdCBpcyBhIGNvbXBsZXRlIGRvY3VtZW50YXRpb24gb2YgcmVxdWVzdCBhbmQgcmVzcG9uc2UgZW5kcG9pbnRzIGFuZCBvYmplY3RzCi0gW1dpcmVtb2NrXSgpOiBJbiBvcmRlciB0byBwZXJmb3JtIGludGVncmF0aW9uIHRlc3RzIGluIHRoZSBhcHBsaWNhdGlvbiB2YWxpZGF0aW9uIChjaGVjayksIFdpcmVtb2NrIGluIGFuIGVtYmVkZGVkIHdheSBhbmQgd2l0aCBkeW5hbWljIHJvdXRlcywgbWFrZXMgaXQgcG9zc2libGUgdG8gdGVzdCB0aGUgZmxvd3Mgd2hlcmUgdGhlcmUgaXMgZXh0ZXJuYWwgY29tbXVuaWNhdGlvbiBhbmQgdG8gdmFsaWRhdGUgZXJyb3IgdHJlYXRtZW50cywgcmVzcG9uc2UgYm9kaWVzIGFuZCBsb2dpYy4KLSBbTG9tYm9rXSgpOiBMb21ib2sgaXMgdXNlZCB0byByZWR1Y2UgYm9pbGVycGxhdGUgY29kZSBmb3IgbW9kZWwvZGF0YSBvYmplY3RzLCBlLmcuLCBpdCBjYW4gZ2VuZXJhdGUgZ2V0dGVycyBhbmQgc2V0dGVycyBmb3IgdGhvc2Ugb2JqZWN0IGF1dG9tYXRpY2FsbHkgYnkgdXNpbmcgTG9tYm9rIGFubm90YXRpb25zLgotIFtHaXRIdWIgQWN0aW9uc10oKTogQXMgQ0kgLyBDRCBwcm9jZXNzIEdpdEh1YiBBY3Rpb25zIHByb3ZpZGVzIGEgc2ltcGxlLCBwb3dlcmZ1bCwgaW50ZWdyYXRlZCB3aXRoIHZhcmlvdXMgY2xvdWQgcHJvdmlkZXJzIGFuZCB3aXRoIHRoZSBwcm9jZXNzaW5nIHBvd2VyIGFuZCBmdWxsIGZlZWRiYWNrLCB0aGVyZWZvcmUsIGl0IGZ1bGZpbGxzIHRoZSBmaW5hbCByZWxlYXNlIG9mIHRoaXMgcHJvZHVjdC4KLSBbSGVyb2t1XSgpOiBCZWNhdXNlIGl0IGlzIGZsZXhpYmxlIGFuZCB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBkZXBsb3ltZW50IGVpdGhlciB2aWEgY29uc29sZSBvciBhcyBwYXJ0IG9mIHRoZSBDSS9DRCBkZXBsb3ltZW50IHByb2Nlc3MgZnJvbSBHaXRIdWIgQWN0aW9ucywgaXQgaXMgYWJsZSB0byBwdWJsaXNoIGEgbmV3IHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uIGZvciBmcmVlCgotLS0KCiMjIDpzY3JvbGw6IFN0cnVjdHVyZQoKYGBgdGV4dAouCuKUnOKUgOKUgCBjb2RlLXF1YWxpdHktZW5mb3JjZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yeSB0aGF0IHN0b3JlcyBmaWxlcyByZWxhdGVkIHRvIGNvZGUgcXVhbGl0eQrilJzilIDilIAgZG9jcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUFETUUubWQgZG9jdW1lbnRhdGlvbiByZWxhdGVkIGZpbGVzCuKUnOKUgOKUgCBsb2dzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbGRlciB0aGF0IHN0b3JlcyBhcHBsaWNhdGlvbiBsb2cgcmVjb3JkcwrilJzilIDilIAgc3JjCuKUgiAgIOKUnOKUgOKUgCBtYWluCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBqYXZhCuKUgiAgIOKUgiAgICDilIIgICAg4pSU4pSA4pSAIHRlY2guamF5YS5jdXJyZW5jeXRyYW5zYWN0aW9uICAgICAgICAgICAgIEFwcGxpY2F0aW9uIG1haW4gcGFja2FnZQrilIIgICDilIIgICAg4pSCICAgICAgICDilJzilIDilIAgY29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICBMYXllciB3aGVyZSB0aGUgbmVjZXNzYXJ5IGluc3RhbmNlcyBhcmUgY29uZmlndXJlZCB2aWEgRGVwZW5kZW5jeSBJbmplY3Rpb24gICAK4pSCICAg4pSCICAgIOKUgiAgICAgICAg4pSc4pSA4pSAIGNvcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gZG9tYWluIGxheWVyLiBMb2dpYywgZGVwZW5kZW50IG9iamVjdHMgYW5kIGJ1c2luZXNzIHJ1bGVzIGFyZSBmb3VuZCBoZXJlLgrilIIgICDilIIgICAg4pSCICAgICAgICDilJzilIDilIAgZGF0YXByb3ZpZGVyICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBsZW1lbnRhdGlvbiBsYXllciBpbiBkYXRhIHNlYXJjaCBhbmQgcmV0dXJuLCB3aGVyZSB0aGVyZSBpcyBhIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIGVhY2ggZXh0ZXJuYWwgcHJvdmlkZXIK4pSCICAg4pSCICAgIOKUgiAgICAgICAg4pSc4pSA4pSAIGVudHJ5cG9pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlc2VudGF0aW9uIGxheWVyIGFuZCBleHBvc3VyZSBvZiBhc3luY2hyb25vdXMgcmVzb3VyY2VzLCBhcyB3ZWxsIGFzIGhhbmRsaW5nIHJlcXVlc3RzIGFuZCBlcnJvcnMK4pSCICAg4pSCICAgIOKUgiAgICAgICAg4pSc4pSA4pSAIEN1cnJlbmN5VHJhbnNhY3Rpb25BcGlBcHBsaWNhdGlvbiAgICAgTWFpbiBjbGFzcwrilIIgICDilIIgICAg4pSU4pSA4pSAIHJlc291cmNlcwrilIIgICDilIIgICAgICAgIOKUnOKUgOKUgCBpMThuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWN0b3J5IHJlc2VydmVkIGZvciBzdG9yaW5nIGZpbGVzIGRpZmZlcmVudGlhdGVkIGJ5IGxvY2FsZSBpbiBtZXNzYWdlcyBpbnRlcnBvbGF0aW9uCuKUgiAgIOKUgiAgICAgICAg4pSCICAg4pSU4pSA4pSAIG1lc3NhZ2VzLnByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgbWVzc2FnZXMK4pSCICAg4pSCICAgICAgICDilJzilIDilIAgc3RhdGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArilIIgICDilIIgICAgICAgIOKUgiAgIOKUlOKUgOKUgCBvcGVuLWFwaS55YW1sICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGl2ZSBmaWxlIG9mIHRoZSBhcHBsaWNhdGlvbidzIEFQSSBzcGVjaWZpY2F0aW9uCuKUgiAgIOKUgiAgICAgICAg4pSc4pSA4pSAIGFwcGxpY2F0aW9uLnByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICBGaWxlIHRoYXQgc3RvcmVzIGJhc2ljIGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uCuKUgiAgIOKUgiAgICAgICAg4pSc4pSA4pSAIGFwcGxpY2F0aW9uLnlhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbiBjdXN0b20gc2V0dGluZ3MgZGVmaW5pdGlvbiBmaWxlCuKUgiAgIOKUgiAgICAgICAg4pSU4pSA4pSAIGxvZ2JhY2sueG1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIGZpbGUgZm9yIGxhdW5jaGluZyBhbmQgaGFuZGxpbmcgbG9ncwrilIIgICDilJTilIDilIAgdGVzdArilIIgICAgICAg4pSc4pSA4pSAIGphdmEvdGVjaC9qYXlhL2N1cnJlbmN5dHJhbnNhY3Rpb24gICAgICAgICAgICAgIFBhY2thZ2Ugd2hlcmUgdW5pdCB0ZXN0aW5nIGFuZCBpbnRlZ3JhdGlvbiB0ZXN0aW5nIGltcGxlbWVudGF0aW9ucyBhcmUgY29uY2VudHJhdGVkCuKUgiAgICAgICDilJTilIDilIAgcmVzb3VyY2VzCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIG1vY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWN0b3J5IHJlc2VydmVkIGZvciBzdG9yaW5nIEpTT04gZmlsZXMgdXNlZCBieSBXaXJlbW9jayBmYWtlIHJlcXVlc3RzCuKUgiAgICAgICAgICAg4pSU4pSA4pSAIGFwcGxpY2F0aW9uLXRlc3QueG1sICAgICAgICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gY3VzdG9tIHNldHRpbmdzIGRlZmluaXRpb24gZmlsZSBpbiB0aGUgY29udGV4dCBvZiB0ZXN0cwrilJzilIDilIAgdGFyZ2V0CuKUgiAgIOKUlOKUgOKUgGN1cnJlbmN5LXRyYW5zYWN0aW9uLWFwaS0wLjAuMS5qYXIgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVkIGphcgrilJzilIDilIAgcG9tLnhtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5kYW1lbnRhbCB1bml0IG9mIHdvcmsgaW4gTWF2ZW4gZm9yIGRlZmluaW5nLCByZXNvbHZpbmcgZGVwZW5kZW5jaWVzLCBhbmQgYnVpbGRpbmcgdGhlIHByb2plY3QK4pSc4pSA4pSAIExJQ0VOU0UubWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gbGljZW5zZSBkZWZpbml0aW9uCuKUlOKUgOKUgCBSRUFETUUubWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uIERvY3VtZW50YXJ5IEZpbGUKYGBgCgojIyA6Y29tcHV0ZXI6IEJ1aWxkaW5nIExvY2FsbHkKCiMjIyBSZXF1aXJlbWVudHMKCi0gW01hdmVuXSgpCi0gW0phdmEgMTFdKCkKCiMjIyBJbnN0YWxsCgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeQoKICAgYGdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTpEYW5TaWx2YTQxL2N1cnJlbmN5LXRyYW5zYWN0aW9uLmdpdGAKCjIuIEVudGVyIGRpcmVjdG9yeQogICAKICAgIGBjZCBjdXJyZW5jeS10cmFuc2FjdGlvbmAKCjMuIEluc3RhbGwgZGVwZW5kZW5jaWVzCiAgIAogICAgYG12biBjbGVhbiBpbnN0YWxsYAoKIyMjIFJ1biBhcHBsaWNhdGlvbgoKICAgIGBtdm4gc3ByaW5nYm9vdDpydW5gCgpPcGVuIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpLmh0bWwKCi0tLQoKIyMjIEFkZGl0aW9uYWwKCiMjIyMgQ2hlY2tzdHlsZQoKPGRldGFpbHM+CiAgICA8c3VtbWFyeT4wMS4gQ2hlY2tpbmcgdGhlIHByb2plY3QgdmlhIG1hdmVuIHBsdWdpbjwvc3VtbWFyeT4KCi0gVG8gcnVuIHRoZSBjaGVjayBpbiB0aGUgcHJvamVjdCwganVzdCB1c2UgdGhpcyBtYXZlbiBjb21tYW5kIGluIHNoZWxsL2NvbnNvbGUgb3IgcnVuIHZpYSBJREVBLgoKYGBgYmFzaAogICAgbXZuIGNoZWNrc3R5bGU6Y2hlY2sKYGBgCi0gVG8gZ2VuZXJhdGUgYSByZXBvcnQgZnJvbSB0aGUgYW5hbHlzaXMgb2YgY29kZSBzdHlsZSB2aW9sYXRpb25zLCBqdXN0IHVzZSB0aGlzIG1hdmVuIGNvbW1hbmQgaW4gc2hlbGwvY29uc29sZSBvciBydW4gdmlhIElERUEuCgpgYGBiYXNoCiAgICBtdm4gY2hlY2tzdHlsZTpjaGVja3N0eWxlCmBgYApSZXBvcnQgZ2VuZXJhdGVkIGluICoqdGFyZ2V0L3NpdGUvY2hlY2tzdHlsZS5odG1sKiouCgo8L2RldGFpbHM+Cgo8ZGV0YWlscz4KICAgIDxzdW1tYXJ5PjAyLiBJbnN0YWxsaW5nIHRoZSBDaGVja1N0eWxlLUlERUEgcGx1Z2luIG9uIEludGVsbGlKPC9zdW1tYXJ5PgoKV2UgY2FuIHVzZSB0aGUgQ2hlY2tTdHlsZS1JREVBIHBsdWdpbiB0byBoZWxwIGZvcm1hdHRpbmcgY29kZSBpbiB0aGUgSURFLgpUbyBjb25maWd1cmUgaXQgaXMgdmVyeSBzaW1wbGUsIGZpcnN0IGluc3RhbGwgdGhlIHBsdWdpbiB2aWEgdGhlIGxpbmsgYWJvdmUgb3Igb24gSW50ZWxsaUogYXQKKipGaWxlID4gU2V0dGluZ3MgPiBQbHVnaW5zKiouCgohW0luc3RhbGwgcGx1Z2luIENoZWNrc3R5bGUgSURFQV0oZG9jcy9jaGVja3N0eWxlL2luc3RhbGwtcGx1Z2luLWNoZWNrc3R5bGUucG5nKQoKIyMjIDAyLiBDb25maWd1cmluZyB0aGUgQ2hlY2tTdHlsZS1JREVBIHBsdWdpbgoKLSBBZnRlciBpbnN0YWxsYXRpb24sIHdlIG5lZWQgdG8gaW1wb3J0IHRoZSBzZXR0aW5ncyBkZWZpbmVkIGluIHRoZSBjaGVja3N0eWxlLnhtbCBmaWxlIGludG8gdGhlIENoZWNrU3R5bGUtSURFQSBwbHVnaW4uCiAgTmF2aWdhdGUgdG8gKipGaWxlID4gU2V0dGluZ3MgPiBUb29scyA+IENoZWNrc3R5bGUqKiBhbmQgaW4gKipDb25maWd1cmF0aW9uIEZpbGUqKiBjbGljayAqKkFkZCoqICgrIHNpZ24gb24gdGhlIHJpZ2h0KSwgaW5kaWNhdGUgdGhlIHBhdGggb2YgeW91ciBjaGVja3N0eWxlLnhtbCBhbmQgY2xpY2sgbmV4dC4KCiFbQ29uZmlndXJlIHRoZSBDaGVja3N0eWxlIElERUEgLSBGaXJzdF0oZG9jcy9jaGVja3N0eWxlL2NvbmZpZ3VyZS1jaGVja3N0eWxlLWludGVsbGlqLWZpcnN0LnBuZykKCi0gV2l0aCB0aGUgZmlsZSBpbXBvcnRlZCwgZG9uJ3QgZm9yZ2V0IHRvIGxlYXZlIGl0IHNlbGVjdGVkIGFzICoqQWN0aXZlKiouCgohW0NvbmZpZ3VyZSB0aGUgQ2hlY2tzdHlsZSBJREVBIC0gU2Vjb25kXShkb2NzL2NoZWNrc3R5bGUvY29uZmlndXJlLWNoZWNrc3R5bGUtaW50ZWxsaWotc2Vjb25kLnBuZykKCi0gTm93IGxldCdzIGFkZCB0aGUgc2FtZSBjaGVja3N0eWxlIGZpbGUgdG8gdGhlIEludGVsbGlKIHNldHRpbmdzIGl0c2VsZiwgc28gd2hlbiB3ZSB1c2UgdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzaG9ydGN1dHMgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGxvb2sgZm9yIENoZWNrc3R5bGUgTWFpbi4KICBXaXRoaW4gc2V0dGluZ3MsIGdvIHRvICoqRWRpdG9yID4gQ29kZSBTdHlsZSA+IEphdmEqKiBhbmQgaW1wb3J0IHRoZSBmaWxlIGFzIHNob3duIGluIHRoZSBpbWFnZSBiZWxvdzoKCiFbU2V0IGNvZGUgc3R5bGUgbG9vayBjaGVja3N0eWxlXShkb2NzL2NoZWNrc3R5bGUvc2V0LWNvZGUtc3R5bGUtbG9vay1jaGVja3N0eWxlLnBuZykKCi0gT25jZSB0aGVzZSBzZXR0aW5ncyBhcmUgZmluaXNoZWQsIHRoZSBDaGVja1N0eWxlIG9wdGlvbiB3aWxsIGFwcGVhciBhdCB0aGUgYm90dG9tIG9mIEludGVsbGlKIGFuZCB3aGVuIGNsaWNraW5nLCB0aGUgc2NyZWVuIGJlbG93IHdpbGwgYXBwZWFyLgogIEF0IHRoaXMgcG9pbnQsIGluIFJ1bGVzIHNlbGVjdCB0aGUgb25lIHlvdSBpbXBvcnRlZCBpbiB0aGUgcHJldmlvdXMgc3RlcHMgYW5kIHJ1biB0aGUgdmVyaWZpY2F0aW9uLgoKLSBJbiBJbnRlbGxpaiBJREVBLCBzZWxlY3QgdGhlIHByb2plY3QsIHBhY2thZ2Uocykgb3IgY2xhc3MoZXMpIGFuZCAqKlJpZ2h0IGNsaWNrID4gQW5hbHlzZSA+IEluc3BlY3QgQ29kZS4uLiA+IE9LKiogdGhlbiBwbHVnaW4gd2lsbCBpbmRpY2F0ZSB0aGUgcHJvYmxlbXMgZm91bmQuCgo8L2RldGFpbHM+CgotLS0KCiMjIDptZW1vOiBMaWNlbnNlClRoaXMgcHJvamVjdCBpcyB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSB0aGUgW0xJQ0VOU0VdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5zaWx2YTQxL2N1cnJlbmN5LXRyYW5zYWN0aW9uL2Jsb2IvbWFpbi9MSUNFTlNFKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCkRldmVsb3BlZCBieSBEYW5pbG8gU2lsdmEgOndhdmU6IFtHZXQgaW4gdG91Y2ghXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vZGFuaWxvc2lsdmFwLykKCltTcHJpbmddOiBodHRwczovL3NwcmluZy5pby8KW1NwcmluZyBXZWJGbHV4XTogaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctZnJhbWV3b3JrL2RvY3MvY3VycmVudC9yZWZlcmVuY2UvaHRtbC93ZWItcmVhY3RpdmUuaHRtbApbUmVhY3RpdmUgTW9uZ29EQiBFbWJlZGRlZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9mbGFwZG9vZGxlLW9zcy9kZS5mbGFwZG9vZGxlLmVtYmVkLm1vbmdvCltQcm9qZWN0IFJlYWN0b3JdOiBodHRwczovL3Byb2plY3RyZWFjdG9yLmlvLwpbT3BlbiBBUEldOiBodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8KW1dpcmVtb2NrXTogaHR0cDovL3dpcmVtb2NrLm9yZy8KW0xvbWJva106IGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvCltHaXRIdWIgQWN0aW9uc106IGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9hY3Rpb25zCltIZXJva3VdOiBodHRwczovL3d3dy5oZXJva3UuY29tL3doYXQKW01hdmVuXTogaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2luc3RhbGwuaHRtbApbSmF2YSAxMV06IGh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZS9kb3dubG9hZHMvaW5kZXguaHRtbA== readmeEtag: '"ac061ac9c9ff55a56d1048977aeb238dc1550477"' readmeLastModified: Sat, 20 Nov 2021 04:07:31 GMT repositoryId: 428406436 description: >- Simple, fast and reactive application to convert values between all currencies. created: '2021-11-15T20:07:30Z' updated: '2021-11-20T04:08:28Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: DanSilva41 logo: https://avatars.githubusercontent.com/u/16976267?v=4 license: MIT repoEtag: '"290e2c26a6b23a7ee5278d0b7ec05e08900c8ebf7d1b311f44daa369958d3b66"' repoLastModified: Sat, 20 Nov 2021 04:08:28 GMT foundInMaster: true category: - Description Validators - Server Implementations id: 4d3b61994b4494edb5ef3547579ccefa - source: openapi3 tags repository: https://github.com/sshehrozali/dart-swaggergen-client v3: true id: 65ced9380360fbf91458408b214cbc69 repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyClRoaXMgaXMgYSBzYW1wbGUgc2VydmVyIFBldHN0b3JlIHNlcnZlci4gIFlvdSBjYW4gZmluZCBvdXQgbW9yZSBhYm91dCAgICAgU3dhZ2dlciBhdCBbaHR0cDovL3N3YWdnZXIuaW9dKGh0dHA6Ly9zd2FnZ2VyLmlvKSBvciBvbiBbaXJjLmZyZWVub2RlLm5ldCwgI3N3YWdnZXJdKGh0dHA6Ly9zd2FnZ2VyLmlvL2lyYy8pLiAgICAgIEZvciB0aGlzIHNhbXBsZSwgeW91IGNhbiB1c2UgdGhlIGFwaSBrZXkgYHNwZWNpYWwta2V5YCB0byB0ZXN0IHRoZSBhdXRob3JpemF0aW9uICAgICBmaWx0ZXJzLgoKVGhpcyBEYXJ0IHBhY2thZ2UgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIFtTd2FnZ2VyIENvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pIHByb2plY3Q6CgotIEFQSSB2ZXJzaW9uOiAxLjAuMAotIEJ1aWxkIHBhY2thZ2U6IGlvLnN3YWdnZXIuY29kZWdlbi5sYW5ndWFnZXMuRGFydENsaWVudENvZGVnZW4KCiMjIFJlcXVpcmVtZW50cwoKRGFydCAxLjIwLjAgb3IgbGF0ZXIgT1IgRmx1dHRlciAwLjAuMjAgb3IgbGF0ZXIKCiMjIEluc3RhbGxhdGlvbiAmIFVzYWdlCgojIyMgR2l0aHViCklmIHRoaXMgRGFydCBwYWNrYWdlIGlzIHB1Ymxpc2hlZCB0byBHaXRodWIsIHBsZWFzZSBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgaW4gcHVic3BlYy55YW1sCmBgYApuYW1lOiBzd2FnZ2VyCnZlcnNpb246IDEuMC4wCmRlc2NyaXB0aW9uOiBTd2FnZ2VyIEFQSSBjbGllbnQKZGVwZW5kZW5jaWVzOgogIHN3YWdnZXI6CiAgICBnaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS8vLmdpdAogICAgICB2ZXJzaW9uOiAnYW55JwpgYGAKCiMjIyBMb2NhbApUbyB1c2UgdGhlIHBhY2thZ2UgaW4geW91ciBsb2NhbCBkcml2ZSwgcGxlYXNlIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbiBwdWJzcGVjLnlhbWwKYGBgCmRlcGVuZGVuY2llczoKICBzd2FnZ2VyOgogICAgcGF0aDogL3BhdGgvdG8vc3dhZ2dlcgpgYGAKCiMjIFRlc3RzCgpUT0RPCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClBsZWFzZSBmb2xsb3cgdGhlIFtpbnN0YWxsYXRpb24gcHJvY2VkdXJlXSgjaW5zdGFsbGF0aW9uLS11c2FnZSkgYW5kIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmc6CgpgYGBkYXJ0CmltcG9ydCAncGFja2FnZTpzd2FnZ2VyL2FwaS5kYXJ0JzsKCi8vIFRPRE8gQ29uZmlndXJlIE9BdXRoMiBhY2Nlc3MgdG9rZW4gZm9yIGF1dGhvcml6YXRpb246IHBldHN0b3JlX2F1dGgKLy9zd2FnZ2VyLmFwaS5Db25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuID0gJ1lPVVJfQUNDRVNTX1RPS0VOJzsKCnZhciBhcGlfaW5zdGFuY2UgPSBuZXcgUGV0QXBpKCk7CnZhciBib2R5ID0gbmV3IFBldCgpOyAvLyBQZXQgfCBQZXQgb2JqZWN0IHRoYXQgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIHN0b3JlCgp0cnkgewogICAgYXBpX2luc3RhbmNlLmFkZFBldChib2R5KTsKfSBjYXRjaCAoZSkgewogICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgUGV0QXBpLT5hZGRQZXQ6ICRlXG4iKTsKfQoKYGBgCgojIyBEb2N1bWVudGF0aW9uIGZvciBBUEkgRW5kcG9pbnRzCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92MioKCkNsYXNzIHwgTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCipQZXRBcGkqIHwgWyoqYWRkUGV0KipdKGRvY3MvL1BldEFwaS5tZCNhZGRwZXQpIHwgKipQT1NUKiogL3BldCB8IEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCipQZXRBcGkqIHwgWyoqZGVsZXRlUGV0KipdKGRvY3MvL1BldEFwaS5tZCNkZWxldGVwZXQpIHwgKipERUxFVEUqKiAvcGV0L3twZXRJZH0gfCBEZWxldGVzIGEgcGV0CipQZXRBcGkqIHwgWyoqZmluZFBldHNCeVN0YXR1cyoqXShkb2NzLy9QZXRBcGkubWQjZmluZHBldHNieXN0YXR1cykgfCAqKkdFVCoqIC9wZXQvZmluZEJ5U3RhdHVzIHwgRmluZHMgUGV0cyBieSBzdGF0dXMKKlBldEFwaSogfCBbKipmaW5kUGV0c0J5VGFncyoqXShkb2NzLy9QZXRBcGkubWQjZmluZHBldHNieXRhZ3MpIHwgKipHRVQqKiAvcGV0L2ZpbmRCeVRhZ3MgfCBGaW5kcyBQZXRzIGJ5IHRhZ3MKKlBldEFwaSogfCBbKipnZXRQZXRCeUlkKipdKGRvY3MvL1BldEFwaS5tZCNnZXRwZXRieWlkKSB8ICoqR0VUKiogL3BldC97cGV0SWR9IHwgRmluZCBwZXQgYnkgSUQKKlBldEFwaSogfCBbKip1cGRhdGVQZXQqKl0oZG9jcy8vUGV0QXBpLm1kI3VwZGF0ZXBldCkgfCAqKlBVVCoqIC9wZXQgfCBVcGRhdGUgYW4gZXhpc3RpbmcgcGV0CipQZXRBcGkqIHwgWyoqdXBkYXRlUGV0V2l0aEZvcm0qKl0oZG9jcy8vUGV0QXBpLm1kI3VwZGF0ZXBldHdpdGhmb3JtKSB8ICoqUE9TVCoqIC9wZXQve3BldElkfSB8IFVwZGF0ZXMgYSBwZXQgaW4gdGhlIHN0b3JlIHdpdGggZm9ybSBkYXRhCipQZXRBcGkqIHwgWyoqdXBsb2FkRmlsZSoqXShkb2NzLy9QZXRBcGkubWQjdXBsb2FkZmlsZSkgfCAqKlBPU1QqKiAvcGV0L3twZXRJZH0vdXBsb2FkSW1hZ2UgfCB1cGxvYWRzIGFuIGltYWdlCipTdG9yZUFwaSogfCBbKipkZWxldGVPcmRlcioqXShkb2NzLy9TdG9yZUFwaS5tZCNkZWxldGVvcmRlcikgfCAqKkRFTEVURSoqIC9zdG9yZS9vcmRlci97b3JkZXJJZH0gfCBEZWxldGUgcHVyY2hhc2Ugb3JkZXIgYnkgSUQKKlN0b3JlQXBpKiB8IFsqKmdldEludmVudG9yeSoqXShkb2NzLy9TdG9yZUFwaS5tZCNnZXRpbnZlbnRvcnkpIHwgKipHRVQqKiAvc3RvcmUvaW52ZW50b3J5IHwgUmV0dXJucyBwZXQgaW52ZW50b3JpZXMgYnkgc3RhdHVzCipTdG9yZUFwaSogfCBbKipnZXRPcmRlckJ5SWQqKl0oZG9jcy8vU3RvcmVBcGkubWQjZ2V0b3JkZXJieWlkKSB8ICoqR0VUKiogL3N0b3JlL29yZGVyL3tvcmRlcklkfSB8IEZpbmQgcHVyY2hhc2Ugb3JkZXIgYnkgSUQKKlN0b3JlQXBpKiB8IFsqKnBsYWNlT3JkZXIqKl0oZG9jcy8vU3RvcmVBcGkubWQjcGxhY2VvcmRlcikgfCAqKlBPU1QqKiAvc3RvcmUvb3JkZXIgfCBQbGFjZSBhbiBvcmRlciBmb3IgYSBwZXQKKlVzZXJBcGkqIHwgWyoqY3JlYXRlVXNlcioqXShkb2NzLy9Vc2VyQXBpLm1kI2NyZWF0ZXVzZXIpIHwgKipQT1NUKiogL3VzZXIgfCBDcmVhdGUgdXNlcgoqVXNlckFwaSogfCBbKipjcmVhdGVVc2Vyc1dpdGhBcnJheUlucHV0KipdKGRvY3MvL1VzZXJBcGkubWQjY3JlYXRldXNlcnN3aXRoYXJyYXlpbnB1dCkgfCAqKlBPU1QqKiAvdXNlci9jcmVhdGVXaXRoQXJyYXkgfCBDcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheQoqVXNlckFwaSogfCBbKipjcmVhdGVVc2Vyc1dpdGhMaXN0SW5wdXQqKl0oZG9jcy8vVXNlckFwaS5tZCNjcmVhdGV1c2Vyc3dpdGhsaXN0aW5wdXQpIHwgKipQT1NUKiogL3VzZXIvY3JlYXRlV2l0aExpc3QgfCBDcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheQoqVXNlckFwaSogfCBbKipkZWxldGVVc2VyKipdKGRvY3MvL1VzZXJBcGkubWQjZGVsZXRldXNlcikgfCAqKkRFTEVURSoqIC91c2VyL3t1c2VybmFtZX0gfCBEZWxldGUgdXNlcgoqVXNlckFwaSogfCBbKipnZXRVc2VyQnlOYW1lKipdKGRvY3MvL1VzZXJBcGkubWQjZ2V0dXNlcmJ5bmFtZSkgfCAqKkdFVCoqIC91c2VyL3t1c2VybmFtZX0gfCBHZXQgdXNlciBieSB1c2VyIG5hbWUKKlVzZXJBcGkqIHwgWyoqbG9naW5Vc2VyKipdKGRvY3MvL1VzZXJBcGkubWQjbG9naW51c2VyKSB8ICoqR0VUKiogL3VzZXIvbG9naW4gfCBMb2dzIHVzZXIgaW50byB0aGUgc3lzdGVtCipVc2VyQXBpKiB8IFsqKmxvZ291dFVzZXIqKl0oZG9jcy8vVXNlckFwaS5tZCNsb2dvdXR1c2VyKSB8ICoqR0VUKiogL3VzZXIvbG9nb3V0IHwgTG9ncyBvdXQgY3VycmVudCBsb2dnZWQgaW4gdXNlciBzZXNzaW9uCipVc2VyQXBpKiB8IFsqKnVwZGF0ZVVzZXIqKl0oZG9jcy8vVXNlckFwaS5tZCN1cGRhdGV1c2VyKSB8ICoqUFVUKiogL3VzZXIve3VzZXJuYW1lfSB8IFVwZGF0ZWQgdXNlcgoKCiMjIERvY3VtZW50YXRpb24gRm9yIE1vZGVscwoKIC0gW0FwaVJlc3BvbnNlXShkb2NzLy9BcGlSZXNwb25zZS5tZCkKIC0gW0NhdGVnb3J5XShkb2NzLy9DYXRlZ29yeS5tZCkKIC0gW09yZGVyXShkb2NzLy9PcmRlci5tZCkKIC0gW1BldF0oZG9jcy8vUGV0Lm1kKQogLSBbVGFnXShkb2NzLy9UYWcubWQpCiAtIFtVc2VyXShkb2NzLy9Vc2VyLm1kKQoKCiMjIERvY3VtZW50YXRpb24gRm9yIEF1dGhvcml6YXRpb24KCgojIyBhcGlfa2V5CgotICoqVHlwZSoqOiBBUEkga2V5Ci0gKipBUEkga2V5IHBhcmFtZXRlciBuYW1lKio6IGFwaV9rZXkKLSAqKkxvY2F0aW9uKio6IEhUVFAgaGVhZGVyCgojIyBwZXRzdG9yZV9hdXRoCgotICoqVHlwZSoqOiBPQXV0aAotICoqRmxvdyoqOiBpbXBsaWNpdAotICoqQXV0aG9yaXphdGlvbiBVUkwqKjogaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vb2F1dGgvZGlhbG9nCi0gKipTY29wZXMqKjogCiAtICoqd3JpdGU6cGV0cyoqOiBtb2RpZnkgcGV0cyBpbiB5b3VyIGFjY291bnQKIC0gKipyZWFkOnBldHMqKjogcmVhZCB5b3VyIHBldHMKCgojIyBBdXRob3IKCmFwaXRlYW1Ac3dhZ2dlci5pbwoKCg== readmeEtag: '"3a144a5d3bd115a160fef34ca633bbcd9e2e1335"' readmeLastModified: Thu, 23 Jun 2022 09:18:23 GMT repositoryId: 506573218 description: >- Dart client-side code generated using Swagger Codegen and OpenAPI 3.0 specifications. created: '2022-06-23T09:17:30Z' updated: '2022-09-30T09:17:03Z' language: Dart archived: false stars: 0 watchers: 1 forks: 0 owner: sshehrozali logo: https://avatars.githubusercontent.com/u/58667536?v=4 repoEtag: '"d3b54e86280585cc190190d8d7de2a5c4c00411219a59d92bbaa340c319e390a"' repoLastModified: Fri, 30 Sep 2022 09:17:03 GMT category: Parsers foundInMaster: true - source: https://openapi.tools/ name: BlocklyAutomation category: - Code Generators - SDK - Documentation - Testing link: https://ignatandrei.github.io/BlocklyAutomation/ repository: http://github.com/ignatandrei/blocklyautomation language: - Javascript - .NET source_description: >- Input any OpenAPI document to have generated Blocks in Blockly form to test and generate documentation. v3: true v3_1: true repositoryMetadata: base64Readme: >- IyBWaXN1YWxBUEkgLSBBZGQgKCB0byB5b3VyIHwgIGluc2lkZSB5b3VyICkgYXBwbGljYXRpb24gTG93Q29kZSBNYWNyb3MgZm9yIFlPVVIgQVBJIC8gSFRUUCBDYWxscwoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgpbIVtBbGwgQ29udHJpYnV0b3JzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2FsbF9jb250cmlidXRvcnMtMi1vcmFuZ2Uuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oI2NvbnRyaWJ1dG9ycy0pCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpFTkQgLS0+CgpCbG9ja2x5IEF1dG9tYXRpb24gOiAgaXMgYSB0b29sIGZvciBMb3dDb2RlIC8gYXV0b21hdGlvbiBvZiBzaXRlcyAoU3dhZ2dlciAvIE9wZW5BUEkgLyBSUEEgKSBhbmQgUEMgbWFkZSBvZiBCbG9ja2x5LiAKCiMgSG93IHRvIHVzZSBpZiB5b3UgYXJlCgojIyBhIGJhY2tlbmQgZGV2ZWxvcGVyIHdpdGggYW4gUkVTVCAvIE9wZW5BUEkgLyBTd2FnZ2VyIGVuYWJsZWQgc2l0ZSBhbmQgSSB3YW50IHRvIHNob3cgdGhlIHVzZSBvZiBteSBzaXRlCgoKVXNlIHRoZSBhcHByb3BpYXRlIHBhY2thZ2U6IAoKIyMjIFtOZXRDb3JlXShodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvbmV0Y29yZWJsb2NrbHkvKSAgLCBtYWRlIGJ5IEFuZHJlaSBJZ25hdAoKLk5FVCBDb3JlOiBbIVtOdWdldF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC9kdC9OZXRDb3JlMkJsb2NrbHkpXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV0Q29yZTJCbG9ja2x5LykKCk1vcmUgZGV0YWlscyBhdCBodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvbmV0Y29yZWJsb2NrbHkvCgoKIyMjIFtKYXZhXShodHRwczovL2dpdGh1Yi5jb20vZWNpdWNhL2Jsb2NrbHktYXV0b21hdGlvbi1zdGFydGVyLXdlYm12Yy11aSkgLCBGdWxsIGV4YW1wbGUgYnkgRW1hbnVlbCBDaXVjYSAKCkphdmEgU3ByaW5nIDogWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9tYXZlbi1jZW50cmFsL3YvaW8uZ2l0aHViLmVjaXVjYS5ibG9ja2x5L2Jsb2NrbHktYXV0b21hdGlvbi1zdGFydGVyLXdlYm12Yy11aSldKGh0dHBzOi8vY2VudHJhbC5zb25hdHlwZS5jb20vYXJ0aWZhY3QvaW8uZ2l0aHViLmVjaXVjYS5ibG9ja2x5L2Jsb2NrbHktYXV0b21hdGlvbi1zdGFydGVyLXdlYm12Yy11aS8pCgpUaGUgTWF2ZW4gaXMgaHR0cHM6Ly9jZW50cmFsLnNvbmF0eXBlLmNvbS9hcnRpZmFjdC9pby5naXRodWIuZWNpdWNhLmJsb2NrbHkvYmxvY2tseS1hdXRvbWF0aW9uLXN0YXJ0ZXItd2VibXZjLXVpLwoKVGhlIHJlcG8gd2l0aCBleGFtcGxlIGlzIGh0dHBzOi8vZ2l0aHViLmNvbS9lY2l1Y2EvYmxvY2tseS1hdXRvbWF0aW9uLXN0YXJ0ZXItd2VibXZjLXVpIAoKCiMjIyBbTm9kZV0oaHR0cHM6Ly9naXRodWIuY29tL2lnbmF0YW5kcmVpL0Jsb2NrbHlBdXRvbWF0aW9uL3dpa2kvbm9kZSkgLCBtYWRlIGJ5IEFuZHJlaSBJZ25hdAoKTm9kZTogWyFbbnBtXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L25vZGUyLWJsb2NrbHkpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ub2RlLWJsb2NrbHk/KQoKTW9yZSBkZXRhaWxzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi93aWtpL25vZGUKCiMjIyBbUEhQXShodHRwczovL2dpdGh1Yi5jb20vVHluYWVsL2xhcmF2ZWwtYmxvY2tseS1hdXRvbWF0aW9uKSAsIG1hZGUgYnkgQ2Fyb2wgUGVsdQoKCgpQYWNrYWdpc3QgOiBbIVtwaHBdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3YvY2Fyb2xwZWx1L2Jsb2NrbHktYXV0b21hdGlvbildKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9jYXJvbHBlbHUvYmxvY2tseS1hdXRvbWF0aW9uKQoKTW9yZSBkZXRhaWxzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9UeW5hZWwvbGFyYXZlbC1ibG9ja2x5LWF1dG9tYXRpb24KCgoKCiMjIERvY2tlciBFeHRlbnNpb24KCmh0dHBzOi8vb3Blbi5kb2NrZXIuY29tL2V4dGVuc2lvbnMvbWFya2V0cGxhY2U/ZXh0ZW5zaW9uSWQ9aWduYXRhbmRyZWkvYmxvY2tseS1hdXRvbWF0aW9uCgoKIyMjIE1hbnVhbAoKRG93bmxvYWQgdGhlIEhUTUwgcmVsZWFzZSBbQmxvY2tseUF1dG9tYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvcmVsZWFzZUJsb2NrbHlBdXRvbWF0aW9uLnppcC8pIC4KCkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSB3aWtpIGZpbGUuICAKCiMjIyMgW01hbnVhbCBKYXZhXShodHRwczovL2dpdGh1Yi5jb20vY29zbWlucG9wZXNjdTE0L21hdGgtb3BlcmF0aW9ucy1zd2FnZ2VyKSAsIE1hbnVhbCBleGFtcGxlIGJ5IENvc21pbiBQb3Blc2N1IAoKRXhhbXBsZSBieSBDb3NtaW4gUG9wZXNjdSBhdCBodHRwczovL2dpdGh1Yi5jb20vY29zbWlucG9wZXNjdTE0L21hdGgtb3BlcmF0aW9ucy1zd2FnZ2VyCgoKCiMjIGEgZnJvbnRlbmQgIGRldmVsb3BlciB0aGF0IGZpbmRzIGEgYnVnIGluIGEgUkVTVCAvIE9wZW5BUEkgLyBTd2FnZ2VyIGVuYWJsZWQgc2l0ZQoKWW91IHdhbnQgdG8gc2hvdyB0byB0aGUgYmFja2VuZCBkZXZlbG9wZXIgaG93IHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSAuCgpJZiB5b3UgY29udHJvbCB0aGUgc2l0ZSAsIHRoZW4geW91IGNhbiB1c2UgdGhlIFtCbG9ja2x5QXV0b21hdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL2lnbmF0YW5kcmVpL0Jsb2NrbHlBdXRvbWF0aW9uL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9yZWxlYXNlQmxvY2tseUF1dG9tYXRpb24uemlwLykgdG8gcmVwcm9kdWNlIHRoZSBwcm9ibGVtLgoKRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIHdpa2kgZmlsZS4gIAoKSWYgeW91IGRvIG5vdCBjb250cm9sIHRoZSBzaXRlLCB0aGVuIGluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIGFuZCB0aGVuIHVzZSBpdCB0byByZXByb2R1Y2UgdGhlIHByb2JsZW0uICggd2lraSBzaXRlIGNvbWluZyB3aXRoIGRldGFpbHMpIAoKIyMgYSB3ZWIgc2l0ZSBhcHBsaWNhdGlvbiB0ZXN0ZXIKSWYgeW91IGNvbnRyb2wgdGhlIHNpdGUgLCB0aGVuIGNhbiB1c2UgdGhlIGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvcmVsZWFzZUJsb2NrbHlBdXRvbWF0aW9uLnppcC8gIGFuZCB0aGVuIHVzZSBpdCB0byByZXByb2R1Y2UgdGhlIHByb2JsZW0uICggd2lraSBzaXRlIGNvbWluZyB3aXRoIGRldGFpbHMpIC4KCklmIHlvdSBkb2VzIG5vdCBjb250cm9sIHRoZSBzaXRlLCB0aGVuIGluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIGFuZCB0aGVuIHVzZSBpdCB0byBtYWtlIHRlc3QgY2FzZXMuICggd2lraSBzaXRlIGNvbWluZyB3aXRoIGRldGFpbHMpIAoKCiMjIFtEb2NrZXIgRXh0ZW5zaW9uXShodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vd2lraS9Eb2NrZXJFeHRlbnNpb24pCgpQbGVhc2Ugc2VlIFtEb2NrZXIgRXh0ZW5zaW9uXShodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vd2lraS9Eb2NrZXJFeHRlbnNpb24pClNlZSAKIyMgbm90IGEgcHJvZ3JhbW1lci4gIEkgd2FudCB0byBhdXRvbWF0ZS9nYXRoZXIgZGF0YSBmcm9tIHNldmVyYWwgc2l0ZXMgKCBwdWJsaWMgb3IgcHJpdmF0ZSApCgpZb3Ugd2FudCB0byBvYnRhaW4gc29tZSBkYXRhIGZyb20gdGhlIHdlYi4gRm9yIGV4YW1wbGUsIGV4dHJhY3QgdGhlIGV4Y2hhbmdlIGJldHdlZW4gRVVSIC8gUk9OIC4KCkluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIC4KCkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSB3aWtpIGZpbGUuCgoKIyMgbm90IGEgcHJvZ3JhbW1lciBhbmRJIHdhbnQgdG8gYXV0b21hdGUgdGhpbmdzIG9uIG15IFBDLiAKCllvdSB3YW50IHRvIG9idGFpbiBzb21lIGRhdGEgZnJvbSB5b3VyIFBDLiBGb3IgZXhhbXBsZSwgZXh0cmFjdCBhbmQgZXhwb3J0IHRvIENTViB0aGUgQ2hyb21lIEJvb2ttYXJrcy4KCkluc3RhbGwgdGhlIGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIC4KCkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSB3aWtpIGZpbGUuCgoKCiMjIFN1Z2dlc3QgYSBwdWJsaWMgQVBJIGZvciBCbG9ja2x5QXV0b21hdGlvbgoKSWYgeW91IGhhdmUgYSBwdWJsaWMgQVBJL3NpdGUgdGhhdCB5b3Ugd2FudCB0byBhdXRvbWF0ZSwgcGxlYXNlIHNlbmQgZmlsZSBhbiBpc3N1ZSBhdCBodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vaXNzdWVzIAoKCiMjIEhvdyB0byBzZWUgYSBwcmV2aWV3CgoKVG8gc2VlIHRoZSB3aG9sZSBwb3RlbnRpYWwgLCBwbGVhc2UgZ28gdG8gaHR0cDovL2JhLnNlcnZpY2lpcGV3ZWIucm8vIGFuZCBjbGljayBMYXVuY2ggLgoKSWYgeW91IHdhbnQgdG8gc2VlIHNvbWUgd2ViIERlbW8gLCBwbGVhc2UgZ28gdG8gaHR0cHM6Ly9pZ25hdGFuZHJlaS5naXRodWIuaW8vQmxvY2tseUF1dG9tYXRpb24vIGFuZCB0ZXN0IHZhcmlvdXMgSFRUUCByZXF1ZXN0LCBTd2FnZ2VycyBhbmQgbW9yZQoKIyMgSG93IHRvIGluc3RhbGwgb24geW91ciBQQwoKU2VlIFtyZWxlYXNlcyB0YWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcykKCllvdSBjYW4gZmluZCB0aGUgCgoxLiBBbmd1bGFyIHNpdGUgLCByZWFkeSB0byBiZSBkZXBsb3llZCB0byBhbnkgc2VydmVyCjIuIElJUyBzaXRlICAgLCByZWFkeSB0byBiZSBkZXBsb3llZCBvbiBJSVMKMy4gQSAuTkVUIENvcmUgc2l0ZSwgcmVhZHkgdG8gYmUgZGVwbG95ZWQgb24gTGludXggb3IgV2luZG93cywgc3RhbmRhbG9uZSAoIGFzIGEgc2VydmljZSApCgojIFlvdSBoYXZlIGEgc2l0ZSB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyLiBXaGF0IHNob3VsZCBJIGRvICA/CgpEb3dubG9hZCBmcm9tIFtyZWxlYXNlcyB0YWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9yZWxlYXNlcykgdGhlIEFuZ3VsYXIgc2l0ZS4gUHV0IGluZGV4Lmh0bWwgYW5kIGFsbCBvdGhlciBmaWxlcyBpbnRvIGEgQkxvY2tseUF1dG9tYXRpb24gZm9sZGVyIGluc2lkZSB5b3VyIHd3d3Jvb3QgIGZvbGRlciAoIG9yIGluIHlvdXIgcHJvamVjdCByb290ICkgYW5kIHlvdSBhcmUgZ29vZCB0byBnby4KCjEuIEl0IGNvdWxkIGJlIGFuIGlkZWEgdG8gbWFwIGV2ZXJ5dGhpbmcgdGhhdCBzdGFydCB3aXRoIC9CbG9ja2x5QXV0b21hdGlvbiB0byAvQmxvY2tseUF1dG9tYXRpb24vaW5kZXguaHRtbCAtIHNlZSBzcmNcTG9hZGVyc1xTaW1wbGVTaXRlIHRvIGhhdmUgYW4gQyMgZXhhbXBsZSAKICAgCjIuIE1vZGlmeSBhc3NldHMvc2V0dGluZ3MuanNvbiB0byBjaGFuZ2UgdGhlIG5hbWUgYW5kIHRoZSBzdGFydGluZyBibG9ja3MKICAgCjMuIE1vZGlmeSBhc3NldHMvbG9hZEF0U3RhcnR1cC9zd2FnZ2Vycy5qc29uIHRvIGFkZCB5b3VyIHN3YWdnZXJzCgo0LiBNb2RpZnkgYXNzZXRzL3Nob3dVc2FnZS9kZW1vQmxvY2tzL2FsbC50eHQgdG8gYWRkIHlvdXIgZGVtbyBmb3IgdGhlIGJsb2NrcyAuIAogICAoIFlvdSBjYW4gY29uc3RydWN0IGFuZCB0aGVuIGRvd25sb2FkIGFuZCBzYXZlIGFzIGZpbGVzKQoKNS4gU2VuZCBtZSBhbiBlbWFpbCB0byBoZWxwIHlvdSAgaWYgc29tZXRoaW5nICBpcyBub3Qgd29ya2luZy4KIyMgSG93IHRvIGN1c3RvbWl6ZQoKVG8gY3VzdG9taXplIHRoZSB0aXRsZSAsIGludHJvZHVjdGlvbiBhbmQgc3RhcnQgYmxvY2tzICwgc2VlIGFzc2V0cy9zZXR0aW5ncy5qc29uCgpUbyBsb2FkIHN3YWdnZXJzIGF0IHN0YXJ0dXAsIHNlZSAgYXNzZXRzL2xvYWRBdFN0YXJ0dXAvc3dhZ2dlcnMuanNvbgoKVG8gY3VzdG9taXplIGRlbW8gYmxvY2tzLGRvd25sb2FkIHlvdXIgYmxvY2tzLCBwdXQgdGhlIHR4dCBmaWxlIGluICBhc3NldHMvc2hvd1VzYWdlL2RlbW9CbG9ja3MvIGFuZCBtb2RpZnkgYXNzZXRzL3Nob3dVc2FnZS9kZW1vQmxvY2tzL2FsbC50eHQKCiMjICBIb3cgdG8gY29udHJpYnV0ZQoKSWYgeW91IGFyZSBhIGJlZ2lubmVyIHRvIGJsb2NrbHksIHNlZSAKCmh0dHBzOi8vZ2l0aHViLmNvbS9pZ25hdGFuZHJlaS9CbG9ja2x5QXV0b21hdGlvbi9pc3N1ZXM/cT1pcyUzQWlzc3VlK2lzJTNBb3BlbitsYWJlbCUzQSUyMmdvb2QrZmlyc3QraXNzdWUlMjIKCiFbR2l0SHViIGlzc3VlcyBieS1sYWJlbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2lnbmF0YW5kcmVpL0Jsb2NrbHlBdXRvbWF0aW9uL2dvb2QlMjBmaXJzdCUyMGlzc3VlKQoKWW91IHdpbGwgYmUgbWVudGlvbmVkIGJlbG93IDstKQoKCiMjIENvbnRyaWJ1dG9ycyDinKgKClRoYW5rcyBnb2VzIHRvIHRoZXNlIHdvbmRlcmZ1bCBwZW9wbGUgKFtlbW9qaSBrZXldKGh0dHBzOi8vYWxsY29udHJpYnV0b3JzLm9yZy9kb2NzL2VuL2Vtb2ppLWtleSkpOgoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vYWVueXgtZGVzaWducy5jb20vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzMzMTk2MzQxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIiLz48YnIgLz48c3ViPjxiPkJvZ2RhbiBCb2JlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZGVzaWduLWFyZWFsc2hhZG93IiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaWduYXRhbmRyZWkvQmxvY2tseUF1dG9tYXRpb24vY29tbWl0cz9hdXRob3I9YXJlYWxzaGFkb3ciIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Fkcmlhbi1iYWR1bGVzY3UiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDk0OTA5NDY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IiIvPjxiciAvPjxzdWI+PGI+QWRyaWFuIEJhZHVsZXNjdTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2V4YW1wbGUtYWRyaWFuLWJhZHVsZXNjdSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lIQ== readmeEtag: '"0b8a3b0a75a8247f4625843bda3826f655a7eb35"' readmeLastModified: Tue, 23 Jul 2024 17:48:16 GMT repositoryId: 427082891 description: >- VisualAPI - LowCode Macros for YOUR API / HTTP Calls : https://visualapi.azurewebsites.net/ created: '2021-11-11T17:14:47Z' updated: '2024-08-27T09:03:57Z' language: JavaScript archived: false stars: 36 watchers: 6 forks: 7 owner: ignatandrei logo: https://avatars.githubusercontent.com/u/153982?v=4 license: MIT repoEtag: '"b83c817fd7ce0c41182cbfc8159c13ad3c426aa71781cfe0a2be0c346fd3d8af"' repoLastModified: Tue, 27 Aug 2024 09:03:57 GMT foundInMaster: true id: aa2b2e89cc4f3ca16559d1e0a1cef89d - source: openapi3 tags repository: https://github.com/fugerit-org/yaml-doc-maven-plugin v3: true id: 45a49daf369a856447a2dd1a0edd8c87 repositoryMetadata: base64Readme: >- IyB5YW1sLWRvYy1tYXZlbi1wbHVnaW4KClNpbXBsZSBtYXZlbiBwbHVnaW4gZm9yIFt5YW1sLWRvYy10b29sXShodHRwczovL2dpdGh1Yi5jb20vZnVnZXJpdC1vcmcveWFtbC1kb2MtdG9vbCkgcHJvamVjdC4KClshW0tlZXAgYSBDaGFuZ2Vsb2cgdjEuMS4wIGJhZGdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NoYW5nZWxvZy1LZWVwJTIwYSUyMENoYW5nZWxvZyUyMHYxLjEuMC0lMjNFMDU3MzUpXShDSEFOR0VMT0cubWQpIApbIVtNYXZlbiBDZW50cmFsXShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9vcmcuZnVnZXJpdC5qYXZhL3lhbWwtZG9jLW1hdmVuLXBsdWdpbi5zdmcpXShodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5mdWdlcml0LmphdmEveWFtbC1kb2MtbWF2ZW4tcGx1Z2luKQpbIVtsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtQXBhY2hlJTIwTGljZW5zZSUyMDIuMC10ZWFsLnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMCkKWyFbUXVhbGl0eSBHYXRlIFN0YXR1c10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9ZnVnZXJpdC1vcmdfeWFtbC1kb2MtbWF2ZW4tcGx1Z2luJm1ldHJpYz1hbGVydF9zdGF0dXMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1mdWdlcml0LW9yZ195YW1sLWRvYy1tYXZlbi1wbHVnaW4pClshW0NvdmVyYWdlXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1mdWdlcml0LW9yZ195YW1sLWRvYy1tYXZlbi1wbHVnaW4mbWV0cmljPWNvdmVyYWdlKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9ZnVnZXJpdC1vcmdfeWFtbC1kb2MtbWF2ZW4tcGx1Z2luKQoKQWNjZXB0ZWQgY29uZmlnIHBhcmFtcyBhcmUgOiAgCiogY29uZmlnUGF0aAoqIGlkQ2F0YWxvZwoKSGVyZSBhIHNhbXBsZSBjb25maWd1cmF0aW9uICA6CgpgYGAKCQkJPHBsdWdpbj4KCQkJCTxncm91cElkPm9yZy5mdWdlcml0LmphdmE8L2dyb3VwSWQ+CgkJCQk8YXJ0aWZhY3RJZD55YW1sLWRvYy1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CgkJCQk8dmVyc2lvbj4ke3lhbWwtZG9jLXZlcnNpb259PC92ZXJzaW9uPgkKCQkJCTxjb25maWd1cmF0aW9uPgoJCQkJCTxjb25maWdQYXRoPnNyYy9jb25maWcveWFtbC1kb2MtY29uZmlnLnhtbDwvY29uZmlnUGF0aD4KCQkJCQk8aWRDYXRhbG9nPm9wZW5hcGk8L2lkQ2F0YWxvZz4JCQoJCQkJPC9jb25maWd1cmF0aW9uPgkJCQkJCQkKCQkJCTxleGVjdXRpb25zPgoJCQkJCTxleGVjdXRpb24+CgkJCQkJCTxpZD5vcGVuYXBpPC9pZD4KCQkJCQkJPGdvYWxzPgoJCQkJCQkJPGdvYWw+Z2VuZXJhdGU8L2dvYWw+CgkJCQkJCTwvZ29hbHM+CgkJCQkJPC9leGVjdXRpb24+CQkKCQkJCTwvZXhlY3V0aW9ucz4KCQkJPC9wbHVnaW4+CQpgYGA= readmeEtag: '"32f312ce199efe05a745c7ef0c528aada5f88e02"' readmeLastModified: Sun, 02 Jun 2024 13:46:21 GMT repositoryId: 473247612 description: Simple maven plugin for the yaml-doc-tool project created: '2022-03-23T15:26:14Z' updated: '2024-06-02T13:48:10Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: fugerit-org logo: https://avatars.githubusercontent.com/u/37816284?v=4 license: Apache-2.0 repoEtag: '"b28621a69200918ae4d4fcaf37112692c3fd4ca2ff7365bb5f45253f6fcfc926"' repoLastModified: Sun, 02 Jun 2024 13:48:10 GMT category: SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/potjerodekool/openapi-generator v3: true id: 24275a8d228f2d092e16833a20c857f4 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWdlbmVyYXRvcgpDb2RlIGdlbmVyYXRpb24gZm9yIFNwcmluZ2Jvb3QgYmFzZWQgZnJvbSBvcGVuIGFwaQoKU2VlIHRoZSBbd2lraV0oaHR0cHM6Ly9naXRodWIuY29tL3BvdGplcm9kZWtvb2wvb3BlbmFwaS1nZW5lcmF0b3Ivd2lraSkgaW5mbyBhbmQgZXhwbGFpbmF0aW9ucy4K readmeEtag: '"ad6bbf76a7e9a49ae43ec7d5b3d8fb65196197ee"' readmeLastModified: Fri, 08 Mar 2024 19:43:18 GMT repositoryId: 518195562 description: Code generation for Springboot based from open api created: '2022-07-26T19:41:26Z' updated: '2022-07-26T20:11:04Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: potjerodekool logo: https://avatars.githubusercontent.com/u/141829?v=4 license: Apache-2.0 repoEtag: '"43d0107c048e2cb039cde6b338523095fed059d2b0742be6f797262ed901ce65"' repoLastModified: Tue, 26 Jul 2022 20:11:04 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/sptrakesh/openapi2latex v3: true id: 04cdcfcdb01f0c2c253c27afe50329f7 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJMkxhVGVYCiogW1N0cnVjdHVyZV0oI3N0cnVjdHVyZSkKKiBbVXNhZ2VdKCN1c2FnZSkKICAqIFtJbnN0YWxsIERlcGVuZGVuY2llc10oI2luc3RhbGwtZGVwZW5kZW5jaWVzKQogICogW0NvbW1hbmQgTGluZSBPcHRpb25zXSgjY29tbWFuZC1saW5lLW9wdGlvbnMpCiogW0V4dGVuc2lvbl0oI2V4dGVuc2lvbnMpCiogW0xpbWl0YXRpb25zXSgjbGltaXRhdGlvbnMpCgpVdGlsaXR5IHNjcmlwdHMgdG8gZ2VuZXJhdGUgYSBMYVRlWCBmaWxlIGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uLgoKVGhlIHJhdGlvbmFsZSBmb3IgdGhpcyBzY3JpcHQgaXMgdG8gYmUgYWJsZSB0byBnZW5lcmF0ZSBhIFBERiBkb2N1bWVudCB0aGF0IGNhbiBiZSBkaXN0cmlidXRlZCB0byBpbnRlcmVzdGVkCnBhcnRpZXMsIHdoZW4gdGhlIHNvdXJjZSBzcGVjaWZpY2F0aW9ucyBhcmUgcHJvdGVjdGVkIGJ5IGFjY2VzcyBjb250cm9sIChhbmQgd2hlcmUgdGhlIHNhaWQgcGFydGllcyBkbyBub3QgbmVlZCB0bwpiZSBwcm92aWRlZCB3aXRoIHRoZSBhY2Nlc3MgY3JlZGVudGlhbHMpLgoKVGhlIHdvcmtmbG93IGlzIHRvIHVzZSB0aGVzZSBzY3JpcHRzIHRvIGdlbmVyYXRlIHRoZSB0YXJnZXQgTGFUZVggZmlsZSwgYW5kIHJ1biBgcGRmbGF0ZXhgIGEgZmV3IHRpbWVzICh1c3VhbGx5CnR3byB0aW1lcyB0byBnZXQgY3Jvc3MtcmVmZXJlbmNlcyByZXNvbHZlZCkgZm9yIHRoZSBvdXRwdXQgUERGIGRvY3VtZW50LgoKIyMgU3RydWN0dXJlClRoZSBnZW5lcmF0ZWQgTGFUZVggZmlsZSBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgKHlvdSBjYW4gb2YgY291cnNlIG1vZGlmeSB0aGUgb3V0cHV0IGZpbGUgYXMgZGVzaXJlZCk6CgoqICoqRnJvbnRtYXR0ZXIqKiAtIFRpdGxlcGFnZSBhbmQgdGFibGUgb2YgY29udGVudHMuCiogKipNYWlubWF0dGVyKiogLSBDb250YWlucyB0d28gb3IgdGhyZWUgcGFydHMuCiAgKiAqKkluZm8qKiAtIFRoZSAqaW5mbyogb2JqZWN0IGlzIHByZXNlbnRlZCBhcyB0aGUgZmlyc3QgY2hhcHRlci4gCiAgKiAqKkVuZHBvaW50cyoqIC0gUGFydCB3aXRoIHRoZSBwYXRoIG9wZXJhdGlvbnMgZ3JvdXBlZCBieSB0YWdzLiBFYWNoIHRhZyBpcyBwcmVzZW50ZWQgaW4gYSAqY2hhcHRlciouCiAgKiAqKlNjaGVtYXMqKiAtIFBhcnQgd2l0aCB0aGUgKnNjaGVtYXMqIGRlY2xhcmVkIGFuZCByZWZlcmVuY2VkIGluIHRoZSBzcGVjaWZpY2F0aW9uLiAgRWFjaCAqc2NoZW1hKiBpcyBwcmVzZW50ZWQgaW4gYQogICAgKmNoYXB0ZXIqLiAgU2NoZW1hcyBhcmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5IGJ5IHRoZWlyIGZpbGVuYW1lIGFuZCBlbnRpdHkgbmFtZS4KICAqICoqQ29kZSBTYW1wbGVzKiogLSBJZiB0aGUgYHgtY29kZVNhbXBsZXNgIGV4dGVuc2lvbiBleGlzdHMgZm9yIG9wZXJhdGlvbnMsIHRoZXNlIGFyZSBjb2xsZWN0ZWQgdG9nZXRoZXIgaW50byBhIHRoaXJkCiAgICAqcGFydCouICBDb2RlIHNhbXBsZXMgYXJlIGdyb3VwZWQgdG9nZXRoZXIgdW5kZXIgZWFjaCAqdGFnKiBncm91cCwgd2hpY2ggaXMgcHJlc2VudGVkIGFzIGEgKmNoYXB0ZXIqLgoqICoqQmFja21hdHRlcioqIC0gTGlzdCBvZiB0YWJsZXMuCgpTZWUgW3ZoLnBkZl0odmgucGRmKSBmb3IgYSBzYW1wbGUgUERGIGdlbmVyYXRlZCBieSB0aGUgc2NyaXB0LgoKIyMgVXNhZ2UKVGhlIGdlbmVyYXRvciBpcyB3cml0dGVuIGluIFtKdWxpYV0oaHR0cHM6Ly9qdWxpYWxhbmcub3JnLyksIGFuZCBoZW5jZSByZXF1aXJlcyBpdCB0byBiZSBpbnN0YWxsZWQgb24gdGhlIHRhcmdldCBjb21wdXRlci4KClRoZSBzZXQgb2Ygc2NyaXB0cyBhcmUgbm90IHBhY2thZ2VkIGFzIGEgSnVsaWEgUGFja2FnZSwgc2luY2UgaXQgaXMgbm90IGRlc2lnbmVkIGZvciByZS11c2UgaW4gb3RoZXIgc3lzdGVtcy4gIFRoZQpbUHJvamVjdC50b21sXShQcm9qZWN0LnRvbWwpIGZpbGUgbGlzdHMgYWxsIHRoZSBkZXBlbmRlbmNpZXMgYXMgcmVndWxhciBwYWNrYWdlcyB3b3VsZC4KCmBgYHNoZWxsCmNkIDxwYXRoIHRvIGNoZWNrZWQgb3V0IHNjcmlwdHM+CjxwYXRoIHRvPi9qdWxpYSBtYWluLmpsIC1pIDxwYXRoIHRvPi9vcGVuYXBpLnlhbWwgLW8gL3RtcC9vcGVuYXBpLnRleCAtZApjZCAvdG1wCnBkZmxhdGV4IG9wZW5hcGkudGV4CnBkZmxhdGV4IG9wZW5hcGkudGV4CnBkZmxhdGV4IG9wZW5hcGkudGV4ICMgaWYgb3V0cHV0IHNheXMgcnVuIGFnYWluCm9wZW4gb3BlbmFwaS5wZGYKYGBgCgojIyMgSW5zdGFsbCBEZXBlbmRlbmNpZXMKClN0YXJ0IHRoZSBKdWxpYSBQa2cgUkVQTC4KCmBgYGp1bGlhCmp1bGlhPiBdCnBrZz4gYWRkIEFyZ1BhcnNlCnBrZz4gYWRkIE9yZGVyZWRDb2xsZWN0aW9ucwpwa2c+IGFkZCBKU09OCnBrZz4gYWRkIE1pbmlMb2dnZXJzCnBrZz4gYWRkIFVSSXMKcGtnPiBhZGQgWUFNTApwa2c+IFtkZWxldGVdCmp1bGlhPiBDVFJMK2QKYGBgCgojIyMgQ29tbWFuZCBMaW5lIE9wdGlvbnMKVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIFttYWluLmpsXShtYWluLmpsKSBzY3JpcHQ6CgoqIGAtLWlucHV0IHwgLWlgIC0gKipSZXF1aXJlZCoqLiBUaGUgbWFpbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZSB0byBwYXJzZS4KKiBgLS1vdXRwdXQgfCAtb2AgLSAqKlJlcXVpcmVkKiouIFRoZSBvdXRwdXQgTGFUZVggZmlsZSB0byBnZW5lcmF0ZS4gIEJlc3QgdG8gcGxhY2UgdGhpcyBhdCBhbm90aGVyIGxvY2F0aW9uIHRoYW4gdGhlIGFwaSBzcGVjcy4KKiBgLS1hdXRob3IgfCAtYWAgLSBUaGUgYXV0aG9yIGNyZWRpdCB0byBzaG93IG9uIHRoZSB0aXRsZXBhZ2UuCiogYC0tZm9vdGVyIHwgLWZgIC0gVGhlIHJpZ2h0IHNpZGUgZm9vdGVyIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIGRvY3VtZW50LgoqIGAtLW9wZXJhdGlvbi1zdW1tYXJ5IHwgLXNgIC0gQSBmbGFnIHRvIGluZGljYXRlIHRoYXQgKipPcGVyYXRpb24qKiAqc3VtbWFyeSogc2hvdWxkIGJlIHVzZWQgYXMgc2VjdGlvbiBoZWFkaW5ncyBpbnN0ZWFkIG9mICpvcGVyYXRpb25JZCouCiogYC0tZGVidWcgfCAtZGAgLSBTaG93IGRlYnVnIGxvZyBtZXNzYWdlcy4KCiMjIEV4dGVuc2lvbnMKQSBmZXcgZXh0ZW5zaW9ucyB0byB0aGUgc3BlY2lmaWNhdGlvbnMgZGV2ZWxvcGVkIGJ5IFtSZWRvY2x5XShodHRwczovL3JlZG9jbHkuY29tLykgYXJlIHN1cHBvcnRlZC4gCgoqIFNvdXJjZSBjb2RlIHNhbXBsZXMgYXJlIHBhcnNlZCBmcm9tIHRoZSBgeC1jb2RlU2FtcGxlc2AgYXJyYXkgYXR0YWNoZWQgdG8gYW4gb3BlcmF0aW9uLiAgQWxsIGNvZGUgc2FtcGxlcyBhcmUgYXR0YWNoZWQKICB0byBhIHNlcGFyYXRlICpwYXJ0KiBvZiB0aGUgb3V0cHV0IGRvY3VtZW50LCBhbmQgZm9sbG93IHRoZSBzYW1lIGNoYXB0ZXIgb3JnYW5pc2F0aW9uIGFzIHRoZSBBUEkgdGFncy4KKiBUYWcgZ3JvdXBzIGFyZSBwYXJzZWQgZnJvbSB0aGUgYHgtdGFnR3JvdXBzYCBhcnJheSBhdHRhY2hlZCB0byB0aGUgcm9vdCBvZiB0aGUgc3BlY2lmaWNhdGlvbiBkb2N1bWVudC4gIElmIHNwZWNpZmllZAogIGFuIGluaXRpYWwgY2hhcHRlciAqKlRhZyBHcm91cHMqKiBpcyBhZGRlZCwgd2hpY2ggbGlzdHMgdGhlIGdyb3VwaW5ncyB3aXRoIGxpbmtzIHRvIHRoZSAqKlRhZyoqIGNoYXB0ZXJzLgoKIyMgTGltaXRhdGlvbnMKUHJvYmFibHkgdG9vIG1hbnkgdG8gbGlzdCwgYnV0IHRoZSBmb2xsb3dpbmcgaXRlbXMgc2hvdWxkIGJlIGtlcHQgaW4gbWluZC4KCiogVGhlc2Ugc2NyaXB0cyBhcmUgYmFzZWQgb24gdGhlIHdheSAqSSB3cml0ZSBBUEkgc3BlY2lmaWNhdGlvbnMqLCBhbmQgbWFya3VwIGRlc2NyaXB0aW9ucy4KKiBTY2hlbWEgb2JqZWN0cyBhcmUgYXNzdW1lZCB0byBtb2RlbCBjbG9zZWx5IHRoZWlyIG9yZ2FuaXNhdGlvbiBpbiBhIHNvdXJjZSBjb2RlIGltcGxlbWVudGF0aW9uLiAgVGhpcyBpbiB0dXJuIGltcGxpZXMKICB0aGF0IG5lc3RlZCBzdHJ1Y3R1cmVzIGFyZSByZXByZXNlbnRlZCBhcyBzY2hlbWEgcmVmZXJlbmNlcywgYW5kIG5vdCBsaXN0ZWQgaW4tbGluZSBpbiB0aGUgc2NoZW1hLiAgRGVlcGx5IG5lc3RlZCBpbi1saW5lCiAgc2NoZW1hcyB3b3VsZCBiZSB2ZXJ5IGhhcmQgdG8gcmVwcmVzZW50IGluIGEgcHJpbnRlZCBkb2N1bWVudCBpbiBhbnkgY2FzZS4KKiBNYWlubHkgdGVzdGVkIHdpdGggc3BlY2lmaWNhdGlvbnMgdGhhdCBhcmUgc3BsaXQgaW50byBpbmRpdmlkdWFsIGZpbGVzIC0gcmVwcmVzZW50aW5nIHBhdGhzLCBzY2hlbWFzLCBwYXJhbWV0ZXJzIGV0Yy4KICBNb3N0IHRlc3RpbmcgaGFzIGJlZW4gYWdhaW5zdCBsYXJnZSBoYW5kd3JpdHRlbiBzcGVjaWZpY2F0aW9ucywgd2hpY2ggZm9sbG93cyB0aGUgcHJpbmNpcGxlcyBsYWlkCiAgb3V0IGluIFtzcGxpdCBzcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kYXZpZGdhcmNpYS5kZXYvcG9zdHMvaG93LXRvLXNwbGl0LW9wZW4tYXBpLXNwZWMtaW50by1tdWx0aXBsZS1maWxlcy8pLiAgQSBmZXcKICBzaW1wbGUgc2luZ2xlIGZpbGUgc3BlY2lmaWNhdGlvbnMgaGF2ZSBhbHNvIGJlZW4gdGVzdGVkLgoqIE1haW5seSBzdXBwb3J0cyBPcGVuQVBJIHNwZWNpZmljYXRpb24gdmVyc2lvbiBbMy4wLjNdKGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjAuMyksIGFsdGhvdWdoIHNvbWUgcHJvcGVydGllcwogIGZyb20gWzMuMS4wXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy9sYXRlc3QuaHRtbCkgYXJlIGFsc28gaW5jbHVkZWQuICBJbiBwYXJ0aWN1bGFyLCBzY2hlbWFzIGFyZSBleHBlY3RlZCBpbgogIDMuMC4zIGZvcm1hdC4KKiBPbmx5IHN1cHBvcnRzIGxvYWRpbmcgbG9jYWwgc3BlY2lmaWNhdGlvbiBmaWxlcyBpbiBZQU1MIGZvcm1hdC4gIEpTT04gaXMgbm90IHN1cHBvcnRlZCBhdCBwcmVzZW50LgoqIE5vdCBhbGwgcHJvcGVydGllcy9hc3BlY3RzIG9mIHRoZSBzcGVjaWZpY2F0aW9uIGFyZSBvdXRwdXQgaW4gdGhlIGdlbmVyYXRlZCBMYVRlWCBmaWxlLiAgSSBzZWxlY3RlZCB3aGF0IEkgZmVsdCBhcmUKICBtb3N0IHJlbGV2YW50IHRvIGJlIHNoYXJlZC4KKiBNYXJrZG93biBtYXJrdXAgbWF5IG5vdCBiZSBmdWxseSB0cmFuc2xhdGVkIHRvIExhVGVYLiAgU2VlIFtydW50ZXN0cy5qbF0ocnVudGVzdHMuamwpIGZvciBiYXNpYyBydWxlcyBpbXBsZW1lbnRlZC4KICAqIEJvbGQvaXRhbGljIGJsb2NrcyBvZiB0ZXh0IChzcGFubmluZyBwYXJhZ3JhcGhzKSBhcmUgbm90IHN1cHBvcnRlZC4KClRoZSBvdXRwdXQgaXMgYSBMYVRlWCBmaWxlLCBhbmQgaGVuY2UgY2FuIGJlIGVhc2lseSBtb2RpZmllZCBhcyBuZWVkZWQgdG8gZnVydGhlciBjdXN0b21pc2UgdGhlIGZpbmFsIFBERiBkb2N1bWVudC4= readmeEtag: '"cc34d223d97d50532c61cf15e7e84313ab83a526"' readmeLastModified: Fri, 01 Dec 2023 23:54:07 GMT repositoryId: 579668923 description: Generate LaTeX source from OpenAPI specification. created: '2022-12-18T13:32:59Z' updated: '2022-12-19T00:19:46Z' language: Julia archived: false stars: 0 watchers: 2 forks: 0 owner: sptrakesh logo: https://avatars.githubusercontent.com/u/2648309?v=4 license: Apache-2.0 repoEtag: '"0b79c797cd69d0a3efb9a8ec9886628efdb411a36bb7eef4dbd562ed972656d4"' repoLastModified: Mon, 19 Dec 2022 00:19:46 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/saphir-lab/api_data_dictionary v3: true id: a89430440ab1168c48ce33d33170f562 repositoryMetadata: base64Readme: >- IyBhcGlfZGF0YV9kaWN0aW9uYXJ5ClRoaXMgc2NyaXB0IGJ1aWxkcyBhIGRhdGEgZGljdGlvbmFyeSBmcm9tIG9wZW5hcGkvc3dhZ2dlciBkb2N1bWVudGF0aW9uICh2ZXJzaW9uIDMueCkKClRoZSBkaWN0aW9uYXJ5IGNvbnRhaW5zIGFsbCB0aGUgcGFyYW1ldGVycy9maWVsZHMgbmFtZSBkaXNjb3ZlcmVkIGluIHRoZSBvcGVuYXBpIGZpbGUgdG9nZXRoZXIgd2l0aCB0aGVpciBjaGFyYWN0ZXJpc3RpY3MgKFJlcXVpcmVkIChZL04pLCBUeXBlcyAoc3RyaW5nLCBhcnJheSwgYm9vbGVhbiwgbnVtYmVyLCAuLi4pLCBBUEkgcGF0aCB3aGVyZSB1c2VkLCBsaXN0IG9mIGRlc2NyaXB0aW9ucywgLi4uKQoKIyMgVXNhZ2UKWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgYXJndW1lbnQgaW4gb3JkZXIgdHUgcnVuIHRoZSBzY3JpcHQocGF0aCBvZiB0aGUgb3BlbmFwaSBmaWxlKToKCmBgYGJhc2gKcHl0aG9uIG1haW4ucHkgb3BlbmFwaS5qc29uCmBgYAoKCj4qKk5vdGUqKjogKmZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHBvc3NpYmxlIHBhcmFtZXRlcnMsIHR5cGU6Kgo+Cj4gYGBgYmFzaAo+IHB5dGhvbiBtYWluLnB5IC0taGVscAo+IGBgYAo= readmeEtag: '"80d30964cf9ab7d67215acb7c410573a596c0af1"' readmeLastModified: Fri, 20 Jan 2023 12:35:18 GMT repositoryId: 538355860 description: Build a data dictionary from openapi/swagger documentation created: '2022-09-19T06:04:04Z' updated: '2023-01-19T14:26:41Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: saphir-lab logo: https://avatars.githubusercontent.com/u/99727450?v=4 license: MIT repoEtag: '"0ad270fe5453d112efad163c962ac4f1db4eed33a854b3f317a6e3748dc470b5"' repoLastModified: Thu, 19 Jan 2023 14:26:41 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/youssefjn/expense-tracker v3: true id: 62acb770808cc8cedcab29da3a9c9d5d repositoryMetadata: repositoryId: 601972677 description: REST api with swagger documentation created: '2023-02-15T08:18:03Z' updated: '2023-02-15T14:08:25Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: youssefjn logo: https://avatars.githubusercontent.com/u/59120174?v=4 repoEtag: '"dcde6a24873db840080ebb73ef9526a24e2dad598806bd8a5a8dd916bdb6a054"' repoLastModified: Wed, 15 Feb 2023 14:08:25 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/andrii-hrechyn/auto-documentation v3: true id: e97dd2eaec8fa77bafeded0f536da462 repositoryMetadata: base64Readme: >- IyBBdXRvIERvY3VtZW50YXRpb24KCkF1dG8gRG9jdW1lbnRhdGlvbiBpcyBhIGxpYnJhcnkgZm9yIGdlbmVyYXRpbmcgQVBJIGRvY3VtZW50YXRpb24gZm9yIExhcmF2ZWwuCgojIFdoYXQgSXQgRG9lcwpUaGlzIHBhY2thZ2UgYWxsb3dzIHlvdSB0byBnZW5lcmF0ZSBBUEkgZG9jdW1lbnRhdGlvbi4gQmFzZWQgb24gW09wZW5BUEkgM10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pIGFuZCBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9SZWRvY2x5L3JlZG9jKQoKT25jZSBpbnN0YWxsZWQgeW91IGNhbiBkbyBzdHVmZiBsaWtlIHRoaXM6CgpgYGBwaHAKLy8gQ3JlYXRlIGRvY3VtZW50YXRpb24gZm9yIHBhdGgKUGF0aDo6Z2V0KCcveW91ci9hcGkve2VuZHBvaW50fScsICdZb3VyIGVuZHBvaW50IG5hbWUnKQogICAgLT5ncm91cCgnU29tZSBncm91cCcpCiAgICAtPnRhZygnU29tZSB0YWcnKSAvLyBvciAtPnRhZ3MoWydGaXJzdCB0YWcnLCAnU2Vjb25kIHRhZyddKQogICAgLT5wYXJhbWV0ZXJzKFsKICAgICAgICBQYXRoUGFyYW1ldGVyOjptYWtlKCdlbmRwb2ludCcpCiAgICAgICAgICAgIC0+cmVxdWlyZWQoKQogICAgICAgICAgICAtPnR5cGUoVHlwZTo6c3RyaW5nKQogICAgICAgICAgICAtPmV4YW1wbGUoJ215R29vZEVuZHBvaW50JyksCiAgICBdKQogICAgLT5qc29uUmVxdWVzdChbCiAgICAgICAgU3RyaW5nUHJvcGVydHk6Om1ha2UoJ3NvbWVfcHJvcGVydHlfbmFtZScpLT5yZXF1aXJlZCgpCiAgICAgICAgICAgIC0+ZGVzY3JpcHRpb24oJ1lvdSBjYW4gYWRkIGRlc2NyaXB0aW9uIGZvciBlYWNoIHByb3BlcnR5JyksCiAgICAgICAgQm9vbGVhblByb3BlcnR5OjptYWtlKCdvbmVfbW9yZV9wcm9wZXJ0eScpLAogICAgXSkKICAgIC0+c3VjY2Vzc2Z1bFJlc3BvbnNlKFsKICAgICAgICBTdHJpbmdQcm9wZXJ0eTo6bWFrZSgnbWVzc2FnZScpLT5leGFtcGxlKCdTdWNjZXNzIHJlc3BvbnNlJyksCiAgICBdKQogICAgLT5zZWN1cmUoKTsKCi8vIE9yIHlvdSBjYW4gdXNlIGV4aXN0aW5nIHNjaGVtYXMKUGF0aDo6Z2V0KCcveW91ci9hcGkvZW5kcG9pbnQnLCAnWW91ciBlbmRwb2ludCBuYW1lJykKICAgIC0+Z3JvdXAoJ1NvbWUgZ3JvdXAnKQogICAgLT50YWcoJ1NvbWUgdGFnJykgLy8gb3IgLT50YWdzKFsnRmlyc3QgdGFnJywgJ1NlY29uZCB0YWcnXSkKICAgIC0+cGFyYW1ldGVycyhbRXhhbXBsZVBhcmFtZXRlcjo6bWFrZSgpXSkKICAgIC0+anNvblJlcXVlc3QoRXhhbXBsZVNjaGVtYTo6bWFrZSgpKQogICAgLT5zdWNjZXNzZnVsUmVzcG9uc2UoRXhhbXBsZVNjaGVtYTo6bWFrZSgpKQogICAgLT5zZWN1cmUoKTsKCi8vQWxzbyB5b3UgY2FuIGRvIHRoYXQgZm9yIHJvdXRlcwpSb3V0ZTo6bWFrZSgnbmFtZS5vZi55b3VyLnJvdXRlJywgJ0V4YW1wbGUgcm91dGUnKQogICAgLT5ncm91cCgnU29tZSBvdGhlciBncm91cCcpCiAgICAtPnRhZygnT3RoZXIgdGFnJykKICAgIC0+cmVxdWVzdEJvZHlGcm9tUmVxdWVzdENsYXNzKCkgLy8gR2V0IHJlcXVlc3QgYm9keSBmcm9tIHZhbGlkYXRpb24gcnVsZXMgaW4gcmVxdWVzdCBjbGFzcwogICAgLT5zdWNjZXNzZnVsUmVzcG9uc2UoRXhhbXBsZVNjaGVtYTo6bWFrZSgpKQogICAgLT5zZWN1cmUoKTsKYGBgCgojIyBJbnN0YWxsYXRpb24KCllvdSBjYW4gaW5zdGFsbCB0aGUgcGFja2FnZSB2aWEgQ29tcG9zZXI6CgpgYGBiYXNoCmNvbXBvc2VyIHJlcXVpcmUgYW5kcmlpLWhyZWNoeW4vYXV0by1kb2N1bWVudGF0aW9uCmBgYAoKVGhlbiB5b3UgY2FuIHJ1biBjb21tYW5kOgpgYGBiYXNoCnBocCBhcnRpc2FuIGF1dG8tZG9jOmluc3RhbGwKYGBgClRoaXMgY29tbWFuZCBjcmVhdGUgZm9sZGVyIGBgYGRvY3NgYGAgaW4geW91ciByb290IGZvbGRlciB3aXRoIHNvbWUgZXhhbXBsZXMgb2YgZG9jdW1lbnRhdGlvbi4KQWxzbywgdGhpcyBjb21tYW5kIHdpbGwgYWRkIGF1dG9sb2FkIHRvIHlvdXIgY29tcG9zZXIuanNvbgpgYGAKICAgIC4uLgogICAgImF1dG9sb2FkIjogewogICAgICAgICJwc3ItNCI6IHsKICAgICAgICAgICAgIkFwcFxcIjogImFwcC8iLAogICAgICAgICAgICAuLi4KICAgICAgICAgICAgIkRvY3NcXCI6ICJkb2NzIgogICAgICAgIH0KICAgIH0sCiAgICAuLi4KYGBgCmBgYGRvY3NgYGAgZm9sZGVyIGNvbnRhaW5zIGFsbCBmaWxlcyByZWxhdGVkIHRvIGRvY3VtZW50YXRpb24uCkZvbGRlciBzdHJ1Y3R1cmU6CmBgYArilJzilIDilIAgQ29tcG9uZW50cwrilILCoMKgIOKUnOKUgOKUgCBQYXJhbWV0ZXJzCuKUgsKgwqAg4pSCwqDCoCDilJTilIDilIAgRXhhbXBsZVBhcmFtZXRlci5waHAK4pSCwqDCoCDilJTilIDilIAgU2NoZW1hcwrilILCoMKgICAgICDilJzilIDilIAgRXhhbXBsZVNjaGVtYS5waHAK4pSCwqDCoCAgICAg4pSU4pSA4pSAIEV4YW1wbGVTdWJTY2hlbWEucGhwCuKUnOKUgOKUgCBQYXRocwrilILCoMKgIOKUnOKUgOKUgCB0ZXN0UGF0aHMucGhwCuKUgsKgwqAg4pSU4pSA4pSAIHRlc3RSb3V0ZS5waHAK4pSU4pSA4pSAIGluZm8ucGhwCmBgYAoKYGBgaW5mby5waHBgYGAgY29udGFpbnMgZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBBUEkgKGluZm8sIHNlcnZlcnMsIHNlY3VyaXR5LCBkZWZhdWx0IHNlY3VyaXR5IGFuZCBleHRlcm5hbCBkb2NzIGxpbmspCgojIyBVc2FnZQoKRm9yIGdlbmVyYXRlIGRvY3VtZW50YXRpb24gcnVuIGNvbW1hbmQ6CgpgYGBiYXNoCnBocCBhcnRpc2FuIGF1dG8tZG9jOmdlbmVyYXRlCmBgYApUaGlzIGNvbW1hbmQgdGFrZSBpbmZvLnBocCBmaWxlIGFuZCBhbGwgcGF0aHMgZnJvbSBgYGBkb2NzYGBgIGZvbGRlciBhbmQgZ2VuZXJhdGUgYGBgZG9jdW1lbnRhdGlvbi55YW1sYGBgIGluIGBgYHN0b3JhZ2UvYXBwL2F1dG8tZG9jc2BgYAoKIyMgQ29uZmlndXJhdGlvbgoKLi4uCgojIyBUZXN0aW5nCgouLi4KCiMjIExpY2Vuc2UKClRoaXMgbGlicmFyeSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgW0xJQ0VOU0VdKExJQ0VOU0UpIGZpbGUgZm9yIGRldGFpbHMuCgojIyBDcmVkaXRzCgotIERldmVsb3BlcjogQW5kcml5IEhyZWNoeW4KLSBFbWFpbDogYW5kcml5LmhyZWNoeW5AZ21haWwuY29t readmeEtag: '"72dc8a03e987a937a08e33494942e5c5d63b6b9c"' readmeLastModified: Wed, 23 Aug 2023 22:28:36 GMT repositoryId: 605599739 description: >- Auto Documentation is a library for generating API documentation for Laravel. created: '2023-02-23T14:00:16Z' updated: '2023-07-19T09:00:31Z' language: PHP archived: false stars: 0 watchers: 1 forks: 0 owner: andrii-hrechyn logo: https://avatars.githubusercontent.com/u/38326555?v=4 license: MIT repoEtag: '"c67f2c52b8479ce05cea812950e6f665f0ea2671fb7335d6ae362b130dd43868"' repoLastModified: Wed, 19 Jul 2023 09:00:31 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/sudokuru/usergamepreferences v3: true id: e8162c6421bf8dd56ababb8dca8ea0d3 repositoryMetadata: base64Readme: >- PiBbIUlNUE9SVEFOVF0gIAo+IFRoaXMgcmVwb3NpdG9yeSBpcyByZWFkLW9ubHkgLyBhcmNoaXZlZCBhbmQgd2lsbCBub3QgcmVjaWV2ZSB1cGRhdGVzLgoKIyBbVHlwZWRvYyBEb2N1bWVudGF0aW9uIFdlYnNpdGVdKGh0dHBzOi8vc3Vkb2t1cnUuZ2l0aHViLmlvL1VzZXJBY3RpdmVHYW1lcy8pPGJyPgoKCiMgRGV2ZWxvcGVyIFNldHVwCgoxLiBHZXQgdGhlIC5lbnYgZmlsZSBmcm9tIHRoZSBNU0IgYnVpbGRpbmcgbmV4dCB0byB0aGUgd2F0ZXIgZm91bnRhaW4uIAoyLiBJbnN0YWxsIERvY2tlciBvbiB5b3VyIG1hY2hpbmUuIFR1dG9yaWFsIGlzIGxpbmtlZCBiZWxvdzo8YnI+CiAgIFshW0RvY2tlciBUdXRvcmlhbF0oaHR0cHM6Ly9pbWcueW91dHViZS5jb20vdmkvMmV6TnFxYVNqcTgvMC5qcGcpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTJlek5xcWFTanE4KTxicj4KMi4gT25jZSBkb2NrZXIgaXMgaW5zdGFsbGVkLCB0aGUgTW9uZ28gaW1hZ2UgY2FuIGJlIHJ1biB3aXRoIHRoaXMgY29tbWFuZDo8YnI+Ck5vdGUgdXNlIGBgYHN1ZG9gYGAgb24gTGludXgvTWFjPGJyPgpgYGBjb25zb2xlCm5wbSBydW4gZG9ja2VyCmBgYAozLiBUaGUgYXBwIGNhbiB0aGVuIGJlIHJ1biB3aXRoIHRoZSBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHN0YXJ0CmBgYAo0LiBJbnRlZ3JhdGlvbiB0ZXN0cyBjYW4gYmUgcnVuIHdoZW4gdGhlIGFwcCBpcyBydW5uaW5nIHdpdGggdGhpcyBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHRlc3Q6aW50ZWdyYXRpb24KYGBgCg== readmeEtag: '"551645e2a891d8f25afe5c10c232d868e7f8455c"' readmeLastModified: Sun, 12 May 2024 16:01:41 GMT repositoryId: 609680639 description: null created: '2023-03-04T22:48:37Z' updated: '2024-05-12T16:03:54Z' language: TypeScript archived: true stars: 0 watchers: 0 forks: 0 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"1c3ac101e8a88187f689f7a90945007aa276f7e2ab22534ab5912a86fed35aab"' repoLastModified: Sun, 12 May 2024 16:03:54 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/liankui/openapi-cli v3: true id: 63cf9213dfed8a7350d6e635f45f254e repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLWNsaQoKb3BlbmFwaS1jbGkg5piv5LiA5Liq5b+r6YCf5qOA5p+l44CB5Y2H57qnc3dhZ2dlci9vcGVuQVBJ5paH5qGj55qE5bCP5bel5YW344CCCgovLyBUT0RPIHAxIOa3u+WKoOWvuXN3YWdnZXIy5paH5Lu255qE5b6q546v5L6d6LWW44CB5Lqk5Y+J5L6d6LWW55qE5qOA5rWLCi8vIFRPRE8gcDEg5re75YqgcG9zdG1hbiBqc29u5paH5Lu26L2s5YyW5Li6b3BlbmFwaTMKCiMjIOS9v+eUqOaWueW8j++8mgoKYGBgClVTQUdFOgpvcGVuYXBpLWNsaSBbY29tbWFuZF0gW2NvbW1hbmQgb3B0aW9uc10gW2FyZ3VtZW50cy4uLl0KCkNPTU1BTkRTOgpsaW50LCBsICAgICBsaW50IHN3YWdnZXIvb3BlbmFwaSBkb2N1bWVudAp1cGdyYWRlLCB1ICB1cGdyYWRlIHN3YWdnZXIyIHRvIG9wZW5hcGkzCnZlcnNpb24sIHYgIFNob3cgdmVyc2lvbgpoZWxwLCBoICAgICBTaG93cyBhIGxpc3Qgb2YgY29tbWFuZHMgb3IgaGVscCBmb3Igb25lIGNvbW1hbmQKYGBgCgojIyMg5Z+656GA5ZG95LukCgoxLiBsaW50IDxmaWxlbmFtZT7vvIzmo4Dmn6VvcGVuQVBJ5Lit5pyJ6Zeu6aKY55qE6K+t5rOV6ZSZ6K+v77ybCiAgICBgYGDFkwogICAkIC4vb3BlbmFwaS1jbGktdjAuMi4zLWRhcndpbi1hbWQ2NCBsaW50IHRlc3RkYXRhL3N3YWdnZXIyLXdyb25nLmpzb24KICAgMjAyMy0wNi0xOVQxNzoxNTowNi41OTErMDgwMCAgICBpbmZvICAgIHBrZy9saW50LmdvOjM3ICBhcGkgbGludCAgICAgICAgeyJmaWxlIjogInRlc3RkYXRhL3N3YWdnZXIyLXdyb25nLmpzb24ifQogICAyMDIzLTA2LTE5VDE3OjE1OjA2LjYxMSswODAwICAgIGluZm8gICAgcGtnL2xpbnQuZ286NDggIHZpb2xhdGlvbiAgICAgICB7InJlc3VsdCI6IHsidmFsaWQiOmZhbHNlLCJwYXRoIjoiL3BvbGljeS9jbGFzc2lmeVNhbXBsZS9nZXRMaXN0IiwibWV0aG9kIjoicG9zdCIsInN0YXJ0TGluZSI6MjYsImVuZExpbmUiOjMxLCJkZXNjcmlwdGlvbiI6Ik9wZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSB1bmlxdWUgYW5kIG5vbi1yZXBlYXRpbmcuIiwiaG93VG9GaXgiOiJNYWtlIHN1cmUgdGhhdCBhbGwgdGhlIG9wZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSB1bmlxdWUgYW5kIG5vbi1yZXBlYXRpbmcsIGRvbid0IGR1cGxpY2F0ZSBuYW1lcywgZG9uJ3RyZS11c2UgcGFyYW1ldGVyIG5hbWVzIGluIHRoZSBzYW1lIG9wZXJhdGlvbi4ifX0KICAgMjAyMy0wNi0xOVQxNzoxNTowNi42MTErMDgwMCAgICBpbmZvICAgIHBrZy9saW50LmdvOjUyICBhcGkgbGludCBmaW5pc2hlZCAgICAgICB7ImZpbGUiOiAidGVzdGRhdGEvc3dhZ2dlcjItd3JvbmcuanNvbiJ9CiAgIGBgYAoyLiB1cGdyYWRlIDxmaWxlbmFtZT7vvIzljYfnuqdzd2FnZ2VyMuWIsG9wZW5BUEkz77yI55Sf5oiQ5Li65LiA5Liq5pe26Ze05oiz5ZCO57yA55qEanNvbuaWh+S7tu+8ieOAggogICBgYGAKICAgJCAuL29wZW5hcGktY2xpLXYwLjIuMy1kYXJ3aW4tYW1kNjQgdXBncmFkZSB0ZXN0ZGF0YS9zd2FnZ2VyMi13cm9uZy5qc29uCiAgIDIwMjMtMDYtMTlUMTc6MTg6MzMuMzMzKzA4MDAgICAgaW5mbyAgICBwa2cvb3BlbmFwaTIuZ286NjUgICAgICBhcGkgdXBncmFkZSAgICAgeyJmaWxlIjogInRlc3RkYXRhL3N3YWdnZXIyLXdyb25nLmpzb24ifQogICAyMDIzLTA2LTE5VDE3OjE4OjMzLjM0NyswODAwICAgIGluZm8gICAgcGtnL29wZW5hcGkyLmdvOjE0NCAgICAgZGVsZXRlIGludmFsaWQgb3BlcmF0aW9uICAgICAgICB7Im9wZXJhdGlvbiI6IHsidmFsaWQiOmZhbHNlLCJwYXRoIjoiL3BvbGljeS9jbGFzc2lmeVNhbXBsZS9nZXRMaXN0IiwibWV0aG9kIjoicG9zdCIsInN0YXJ0TGluZSI6MSwiZW5kTGluZSI6MSwiZGVzY3JpcHRpb24iOiJPcGVyYXRpb24gcGFyYW1ldGVycyBhcmUgdW5pcXVlIGFuZCBub24tcmVwZWF0aW5nLiIsImhvd1RvRml4IjoiTWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBvcGVyYXRpb24gcGFyYW1ldGVycyBhcmUgdW5pcXVlIGFuZCBub24tcmVwZWF0aW5nLCBkb24ndCBkdXBsaWNhdGUgbmFtZXMsIGRvbid0cmUtdXNlIHBhcmFtZXRlciBuYW1lcyBpbiB0aGUgc2FtZSBvcGVyYXRpb24uIn19CiAgIDIwMjMtMDYtMTlUMTc6MTg6MzMuMzQ3KzA4MDAgICAgaW5mbyAgICBwa2cvb3BlbmFwaTIuZ286OTYgICAgICBhcGkgdXBncmFkZSBzdWNjZXNzZnVsbHkgICAgICAgIHsiZmlsZSI6ICJ0ZXN0ZGF0YS9zd2FnZ2VyMi13cm9uZy0xNjg3MTY2MzEzMzQ3Lmpzb24iLCAidmVyc2lvbiI6ICIzLjAuMyIsICJkdXJhdGlvbiI6ICIxNC4yMzUwODNtcyJ9CiAgIGBgYAoKcmVmOgpodHRwczovL2dpdGh1Yi5jb20vdXJmYXZlL2NsaQpodHRwczovL2dpdGh1Yi5jb20vTHVjeUJvdC1JbmMvYXBpLXNwZWMtY29udmVydGVyCmh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkK readmeEtag: '"93048ffbb2d2620fbb67e9b5a61d9e85b32ba6f7"' readmeLastModified: Mon, 22 Jan 2024 06:12:38 GMT repositoryId: 631874442 description: 一个快速检查、升级swagger/openAPI文档的小工具。 created: '2023-04-24T08:42:28Z' updated: '2023-06-26T05:41:44Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: liankui logo: https://avatars.githubusercontent.com/u/26359513?v=4 license: MIT repoEtag: '"a9ce400da5fa159c2e8708657cca2fd2257e7abc5ae7b45bcd9361111be5e5bb"' repoLastModified: Mon, 26 Jun 2023 05:41:44 GMT category: Parsers foundInMaster: true - source: https://openapi.tools/ name: OpenAPI Explorer category: - Documentation - Parsers source_description: >- Generate and render fully customizable API documentation, then explore and execute API requests via the integrated console. link: https://github.com/Rhosys/openapi-explorer/blob/main/README.md repository: https://github.com/authress-engineering/openapi-explorer language: - Javascript - Custom Element v2: true v3: true v3_1: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEV4cGxvcmVyCldlYiBDb21wb25lbnQgQ3VzdG9tIEVsZW1lbnQgZm9yIE9wZW4tQVBJIHNwZWMgdmlld2luZywgd2l0aCBhdXRvbWF0aWMgaW50ZWdyYXRpb24gZm9yIFJlYWN0IGFuZCBWdWUuCgpUaGlzIGlzIGFuIG9wZW4gc291cmNlIHByb2plY3QgbWFuYWdlZCBieSB0aGUgW0F1dGhyZXNzIEVuZ2luZWVyaW5nIHRlYW1dKGh0dHBzOi8vYXV0aHJlc3MuaW8pLgoKPHAgYWxpZ249ImNlbnRlciI+CiAgICA8YSBocmVmPSJodHRwczovL2F1dGhyZXNzLmlvIiBhbHQ9IkF1dGhyZXNzIEVuZ2luZWVyaW5nIj4KICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPUF1dGhyZXNzK0VuZ2luZWVyaW5nJm1lc3NhZ2U9T3BlbkFQSSUyMEV4cGxvcmVyJmNvbG9yPSUyM0ZCQUYwQiZsb2dvPWFuZHJvaWRhdXRvJmxvZ29Db2xvcj0lMjNGQkFGMEIiPjwvYT4KICAgIDxhIGhyZWY9Ii4vTElDRU5TRSIgYWx0PSJhcGFjaGUgMi4wIGxpY2Vuc2UiPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUFwYWNoZSUyMDIuMC1ibHVlLnN2ZyI+PC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly9iYWRnZS5mdXJ5LmlvL2pzL29wZW5hcGktZXhwbG9yZXIiIGFsdD0ibnBtIHZlcnNpb24iPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvb3BlbmFwaS1leHBsb3Jlci5zdmciPjwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vYXV0aHJlc3MuaW8vY29tbXVuaXR5IiBhbHQ9Im5wbSB2ZXJzaW9uIj4KICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29tbXVuaXR5LURpc2NvcmQtcHVycGxlLnN2ZyI+PC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cud2ViY29tcG9uZW50cy5vcmcvZWxlbWVudC9vcGVuYXBpLWV4cGxvcmVyIiBhbHQ9InB1Ymxpc2hlZCBvbiB3ZWJjb21wb25lbnRzLm9yZyI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvd2ViY29tcG9uZW50cy5vcmctT3BlbkFQSSUyMEV4cGxvcmVyLWJsdWUuc3ZnP3N0eWxlPXNvY2lhbCI+PC9hPgo8L3A+CgoKIyMgQmVhdXRpZnVsIGFuZCByZXNwb25zaXZlIEFQSSBleHBsb3JlciBhbmQgY29uc29sZQoKPHA+CiAgPGEgaHJlZj0iaHR0cHM6Ly9hdXRocmVzcy1lbmdpbmVlcmluZy5naXRodWIuaW8vb3BlbmFwaS1leHBsb3Jlci8jP3JvdXRlPWdldC0vdjEvdXNlcnMvLXVzZXJJZC0vcmVzb3VyY2VzLy1yZXNvdXJjZVVyaS0vcGVybWlzc2lvbnMvLXBlcm1pc3Npb24tIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIHNyYz0iLi9kb2NzL2Rlc2t0b3Atdmlldy5wbmciIGFsdD0iRGVza3RvcCBkZW1vIGltYWdlIiB3aWR0aD0iODAwcHgiPgogIDwvYT4KPC9wPgoKIyMgQ2hlY2sgb3V0IHRoZSBEZW1vCltPcGVuQVBJIEV4cGxvcmVyIERlbW9dKGh0dHBzOi8vYXV0aHJlc3MtZW5naW5lZXJpbmcuZ2l0aHViLmlvL29wZW5hcGktZXhwbG9yZXIvIz9yb3V0ZT1nZXQtL3YxL3VzZXJzLy11c2VySWQtL3Jlc291cmNlcy8tcmVzb3VyY2VVcmktL3Blcm1pc3Npb25zLy1wZXJtaXNzaW9uLSkKCihDdXJpb3VzIGFib3V0IHRoZSBbZXhhY3Qgc3R5bGluZyBvZiB0aGUgZGVtb10oLi9kb2NzL2F1dGhyZXNzLWV4YW1wbGUudnVlKSkKCiMjIEdldCBzdGFydGVkIG5vdwpgbnBtIGluc3RhbGwgb3BlbmFwaS1leHBsb3JlcmAKCiMjIyBRdWljayBzdGFydCBleGFtcGxlCiogYGltcG9ydCAnb3BlbmFwaS1leHBsb3Jlcic7YAoKYGBgaHRtbAo8b3BlbmFwaS1leHBsb3JlciA6c3BlYy11cmw9Im9wZW5hcGlTcGVjaWZpY2F0aW9uVXJsIj4KICA8ZGl2IHNsb3Q9Im92ZXJ2aWV3Ij4KICAgIDxoMT5UaGUgQVBJPC9oMT4KICA8L2Rpdj4KPC9vcGVuYXBpLWV4cGxvcmVyPgpgYGAKCiMjIEZlYXR1cmVzCi0gT3BlbkFQSSAzLlgKLSBCdWlsdCBpbiBhdXRvbWF0aWMgSW50ZXJuYXRpb25hbGl6YXRpb24gKEkxOG4pCi0gV29ya3Mgd2l0aCBhbnkgZnJhbWV3b3JrCi0gVmlldyByZXNvdXJjZXMsIG1vZGVscywgYW5kIGRpcmVjdGx5IG1ha2UgQVBJIGNhbGxzCi0gQmV0dGVyIFVzYWJpbGl0eSwgCiAgLSBSZXF1ZXN0IGZpZWxkcyBhcmUgcHJlLXBvcHVsYXRlZCB3aXRoIGRlZmF1bHQgZGF0YQogIC0gVGFrZXMgb25seSBvbmUgY2xpY2sgdG8gbWFrZSBhbiBBUEkgY2FsbAogIC0gUmVuZGVycyBTREsvY2xpZW50IGNvZGUgc2FtcGxlcwogIC0gQnJhbmRpbmcgYW5kIFBlcnNvbmFsaXphdGlvbiBmZWF0dXJlcyBtYWtlcyBpdCBlYXN5IHRvIGZvbGxvdyBhbnkgc3R5bGUgZ3VpZGUKICAtIEZ1bGx5IGN1c3RvbWl6YWJsZSB0aGVtZQotIFBsZW50eSBvZiBjdXN0b21pemF0aW9uIG9wdGlvbnMgCiAgLSBBZGQgZXh0ZXJuYWwgY29udGVudHMgdGhyb3VnaG91dCB0aGUgY29tcG9uZW50LCBleHRlbnNpYmxlIHdpdGggbWFya2Rvd24sIGltYWdlcywgbGlua3MsIGFuZCB0ZXh0CiAgLSBBbGwgcHJvcGVydGllcyBhcmUgcmVhY3RpdmUKICAtIFN0eWxlIHRoZSBlbGVtZW50IHdpdGggc3RhbmRhcmQgY3NzIChjaGFuZ2UgcGFkZGluZywgcG9zaXRpb24sIGJvcmRlciwgbWFyZ2luICkKICAtIFN0eWxlcyB0aGF0IHJlZmxlY3QgeW91ciBzaXRlIGFuZCB5b3VyIFVJL1VYIGZyYW1ld29ya3MgKFJlYWN0LCBWdWUsIHZhbmlsbGEganMsIEJvb3RzdHJhcCwgTWF0ZXJpYWwsIGFuZCBtYW55IG1vcmUuLi4pCi0gUmVzcG9uc2l2ZSBzbyBpdCB3b3JrcyBvbiBtb2JpbGUKLSBMaWdodHdlaWdodCBhbmQgZmFzdAoKCiMjIERvY3VtZW50YXRpb24KKiBbTWlncmF0aW5nIGZyb20gdjEgdG8gdjIgb2Ygb3BlbmFwaS1leHBsb3Jlcl0oLi9DSEFOR0VMT0cubWQjMi4wKSAtIFJldmlldyB0aGUgYnJlYWtpbmcgY2hhbmdlcwoqIFtQcm9wZXJ0eSBhbmQgdmFyaWFibGVzIGRvY3VtZW50YXRpb25dKC4vZG9jcy9kb2N1bWVudGF0aW9uLm1kKQoqIFtFeGFtcGxlcyAoVnVlLCBSZWFjdCwgSlMsIGFuZCBtb3JlKV0oLi9kb2NzL2V4YW1wbGVzLm1kKQoqIEdlbmVyYXRlIHRoZSBvcGVuIHNwZWNpZmljYXRpb24gZG9jdW1lbnQgbmVjZXNzYXJ5IGZvciB0aGlzIGxpYnJhcnkgLSBieSB1c2luZyBhbiBlZGl0b3Igb3IgYnkgZm9sbG93aW5nIHRoZSBbT3BlbiBBUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kKQoqIFtTdHlsaW5nIHlvdXIgb3BlbmFwaS1leHBsb3JlciBVSV0oLi9kb2NzL3N0eWxpbmcubWQpCiogW1JlY2VudCBjaGFuZ2VzIGFuZCB1cGRhdGVzXSguL0NIQU5HRUxPRy5tZCkKCiMjIFRyb3VibGVzaG9vdGluZyBpbnRlZ3JhdGlvbiBpc3N1ZXMKW0NvbW1vbiBpc3N1ZXNdKC4vZG9jcy90cm91Ymxlc2hvb3RpbmcubWQpCgoKIyMgQ29udHJpYnV0aW9uCltDb250cmlidXRpb25zIEd1aWRlXSguL0NPTlRSSUJVVElORy5tZCkKCmBgYGJhc2gKIyBDbG9uZSAvIERvd25sb2FkIHRoZSBwcm9qZWN0IHRoZW4KZ2l0IGNsb25lCgojIyBQdWxsIGluIGRlcGVuZGVuY2llcwp5YXJuCgojIGJ1aWxkIHdpbGwgZ2VuZXJhdGUgZGlzdC9vcGVuYXBpLWV4cGxvcmVyLm1pbi5qcwp5YXJuIGJ1aWxkIAoKaW1wb3J0ICdvcGVuYXBpLWV4cGxvcmVyJzsKYGBgCgoKIyMgQ29weXJpZ2h0CkNvcHlyaWdodCAyMDIzLTIwMjQgUmhvc3lzIEFHCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgcmVwb3NpdG9yeSBzb3VyY2UgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4K readmeEtag: '"7f2b683685221b735249f4ef5d85001bed473bba"' readmeLastModified: Wed, 14 Aug 2024 10:48:18 GMT repositoryId: 351849045 description: OpenAPI Web component to generate a UI from the spec. created: '2021-03-26T16:42:43Z' updated: '2024-09-05T16:18:06Z' language: JavaScript archived: false stars: 304 watchers: 7 forks: 42 owner: Authress-Engineering logo: https://avatars.githubusercontent.com/u/35577654?v=4 license: Apache-2.0 repoEtag: '"2e4adca40d75a2582a754eeb5a74098095da9cd05f0c1d509d955dad939de3a3"' repoLastModified: Thu, 05 Sep 2024 16:18:06 GMT foundInMaster: true id: c8fb58ca4a515c7e0b381f4e63d7c355 oldLocations: - https://github.com/rhosys/openapi-explorer - source: https://openapi.tools/ name: openapi-backend homepage: https://github.com/anttiviljami/openapi-backend language: Node.js + Typescript source_description: >- Build, Validate, Route, and Mock using OpenAPI specification. Framework-agnostic category: Server link: https://www.npmjs.com/package/openapi-backend repository: https://github.com/openapistack/openapi-backend v2: false v3: true v3_1: true repositoryMetadata: base64Readme: >- PHNwYW4gaWQ9Im5wbS0tZml4LWhpZGRlbi1yZWFkbWUtaGVhZGVyIj48L3NwYW4+Cgo8aDEgYWxpZ249ImNlbnRlciI+PGltZyBhbHQ9Im9wZW5hcGktYmFja2VuZCIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC9yYXcvbWFpbi9oZWFkZXIucG5nIiBzdHlsZT0ibWF4LXdpZHRoOjUwcmVtIj48L2gxPgoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBQ0kpClshW0xpY2Vuc2VdKGh0dHA6Ly9pbWcuc2hpZWxkcy5pby86bGljZW5zZS1taXQtYmx1ZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC9ibG9iL21haW4vTElDRU5TRSkKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3Yvb3BlbmFwaS1iYWNrZW5kLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktYmFja2VuZCkKWyFbbnBtIGRvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvb3BlbmFwaS1iYWNrZW5kLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL29wZW5hcGktYmFja2VuZCkKWyFbTGlicmFyaWVzLmlvIGRlcGVuZGVuY3kgc3RhdHVzIGZvciBsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9saWJyYXJpZXNpby9yZWxlYXNlL25wbS9vcGVuYXBpLWJhY2tlbmQuc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS1iYWNrZW5kP2FjdGl2ZVRhYj1kZXBlbmRlbmNpZXMpCiFbbnBtIHR5cGUgZGVmaW5pdGlvbnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3R5cGVzL29wZW5hcGktYmFja2VuZC5zdmcpClshW0J1eSBtZSBhIGNvZmZlZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb25hdGUtYnV5JTIwbWUlMjBhJTIwY29mZmVlLW9yYW5nZSldKGh0dHBzOi8vYnV5bWVhY29mZi5lZS9hbnR0aXZpbGphbWkpCgo8cCBhbGlnbj0iY2VudGVyIj48Yj5CdWlsZCwgVmFsaWRhdGUsIFJvdXRlLCBBdXRoZW50aWNhdGUsIGFuZCBNb2NrIHVzaW5nIE9wZW5BUEkgZGVmaW5pdGlvbnMuPC9iPjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgQmFja2VuZCBpcyBhIEZyYW1ld29yay1hZ25vc3RpYyBtaWRkbGV3YXJlIHRvb2wgZm9yIGJ1aWxkaW5nIGJlYXV0aWZ1bCBBUElzIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24iPk9wZW5BUEkgU3BlY2lmaWNhdGlvbjwvYT4uPC9wPgoKIyMgRmVhdHVyZXMKCi0gW3hdIEJ1aWxkIEFQSXMgYnkgZGVzY3JpYmluZyB0aGVtIGluIFtPcGVuQVBJIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kKQotIFt4XSBSZWdpc3RlciBoYW5kbGVycyBmb3IgW29wZXJhdGlvbklkc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjIubWQjZml4ZWQtZmllbGRzLTgpCnRvIHJvdXRlIHJlcXVlc3RzIGluIHlvdXIgZmF2b3VyaXRlIE5vZGUuanMgYmFja2VuZAotIFt4XSBVc2UgW0pTT04gU2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMi5tZCNkYXRhLXR5cGVzKSB0byB2YWxpZGF0ZQpBUEkgcmVxdWVzdHMgYW5kL29yIHJlc3BvbnNlcy4gT3BlbkFQSSBCYWNrZW5kIHVzZXMgdGhlIFtBSlZdKGh0dHBzOi8vYWp2LmpzLm9yZy8pIGxpYnJhcnkgdW5kZXIgdGhlIGhvb2QgZm9yIHBlcmZvcm1hbnQgdmFsaWRhdGlvbgotIFt4XSBSZWdpc3RlciBBdXRoIC8gU2VjdXJpdHkgSGFuZGxlcnMgZm9yIFtPcGVuQVBJIFNlY3VyaXR5IFNjaGVtZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI3NlY3VyaXR5U2NoZW1lT2JqZWN0KQp0byBhdXRob3JpemUgQVBJIHJlcXVlc3RzCi0gW3hdIEF1dG8tbW9jayBBUEkgcmVzcG9uc2VzIHVzaW5nIFtPcGVuQVBJIGV4YW1wbGVzIG9iamVjdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kI2V4YW1wbGUtb2JqZWN0KQpvciBbSlNPTiBTY2hlbWEgZGVmaW5pdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4yLm1kI3NjaGVtYS1vYmplY3QpCi0gW3hdIEJ1aWx0IHdpdGggVHlwZVNjcmlwdCwgdHlwZXMgaW5jbHVkZWQKLSBbeF0gT3B0aW1pc2VkIHJ1bnRpbWUgcm91dGluZyBhbmQgdmFsaWRhdGlvbi4gKipObyBnZW5lcmF0ZWQgY29kZSEqKgotIFt4XSBPcGVuQVBJIDMuMSBzdXBwb3J0CgojIyBEb2N1bWVudGF0aW9uCgoqKk5ldyEqKiBPcGVuQVBJIEJhY2tlbmQgZG9jdW1lbnRhdGlvbiBpcyBub3cgZm91bmQgb24gW29wZW5hcGlzdGFjay5jb10oaHR0cHM6Ly9vcGVuYXBpc3RhY2suY28pCgpodHRwczovL29wZW5hcGlzdGFjay5jby9kb2NzL29wZW5hcGktYmFja2VuZC9pbnRybwoKIyMgUXVpY2sgU3RhcnQKCkZ1bGwgW2V4YW1wbGUgcHJvamVjdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcykgaW5jbHVkZWQgaW4gdGhlIHJlcG8KCmBgYApucG0gaW5zdGFsbCAtLXNhdmUgb3BlbmFwaS1iYWNrZW5kCmBgYAoKYGBgamF2YXNjcmlwdAppbXBvcnQgT3BlbkFQSUJhY2tlbmQgZnJvbSAnb3BlbmFwaS1iYWNrZW5kJzsKCi8vIGNyZWF0ZSBhcGkgd2l0aCB5b3VyIGRlZmluaXRpb24gZmlsZSBvciBvYmplY3QKY29uc3QgYXBpID0gbmV3IE9wZW5BUElCYWNrZW5kKHsgZGVmaW5pdGlvbjogJy4vcGV0c3RvcmUueW1sJyB9KTsKCi8vIHJlZ2lzdGVyIHlvdXIgZnJhbWV3b3JrIHNwZWNpZmljIHJlcXVlc3QgaGFuZGxlcnMgaGVyZQphcGkucmVnaXN0ZXIoewogIGdldFBldHM6IChjLCByZXEsIHJlcykgPT4gcmVzLnN0YXR1cygyMDApLmpzb24oeyByZXN1bHQ6ICdvaycgfSksCiAgZ2V0UGV0QnlJZDogKGMsIHJlcSwgcmVzKSA9PiByZXMuc3RhdHVzKDIwMCkuanNvbih7IHJlc3VsdDogJ29rJyB9KSwKICB2YWxpZGF0aW9uRmFpbDogKGMsIHJlcSwgcmVzKSA9PiByZXMuc3RhdHVzKDQwMCkuanNvbih7IGVycjogYy52YWxpZGF0aW9uLmVycm9ycyB9KSwKICBub3RGb3VuZDogKGMsIHJlcSwgcmVzKSA9PiByZXMuc3RhdHVzKDQwNCkuanNvbih7IGVycjogJ25vdCBmb3VuZCcgfSksCn0pOwoKLy8gaW5pdGFsaXplIHRoZSBiYWNrZW5kCmFwaS5pbml0KCk7CmBgYAoKIyMjIEV4cHJlc3MKCmBgYGphdmFzY3JpcHQKaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7Cgpjb25zdCBhcHAgPSBleHByZXNzKCk7CmFwcC51c2UoZXhwcmVzcy5qc29uKCkpOwphcHAudXNlKChyZXEsIHJlcykgPT4gYXBpLmhhbmRsZVJlcXVlc3QocmVxLCByZXEsIHJlcykpOwphcHAubGlzdGVuKDkwMDApOwpgYGAKCltTZWUgZnVsbCBFeHByZXNzIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9leHByZXNzKQoKW1NlZSBmdWxsIEV4cHJlc3MgVHlwZVNjcmlwdCBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC90cmVlL21haW4vZXhhbXBsZXMvZXhwcmVzcy10eXBlc2NyaXB0KQoKIyMjIEFXUyBTZXJ2ZXJsZXNzIChMYW1iZGEpCgpgYGBqYXZhc2NyaXB0Ci8vIEFQSSBHYXRld2F5IFByb3h5IGhhbmRsZXIKbW9kdWxlLmV4cG9ydHMuaGFuZGxlciA9IChldmVudCwgY29udGV4dCkgPT4KICBhcGkuaGFuZGxlUmVxdWVzdCgKICAgIHsKICAgICAgbWV0aG9kOiBldmVudC5odHRwTWV0aG9kLAogICAgICBwYXRoOiBldmVudC5wYXRoLAogICAgICBxdWVyeTogZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzLAogICAgICBib2R5OiBldmVudC5ib2R5LAogICAgICBoZWFkZXJzOiBldmVudC5oZWFkZXJzLAogICAgfSwKICAgIGV2ZW50LAogICAgY29udGV4dCwKICApOwpgYGAKCltTZWUgZnVsbCBBV1MgU0FNIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9hd3Mtc2FtKQoKW1NlZSBmdWxsIEFXUyBDREsgZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWJhY2tlbmQvdHJlZS9tYWluL2V4YW1wbGVzL2F3cy1jZGspCgpbU2VlIGZ1bGwgU1NUIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9hd3Mtc3N0KQoKW1NlZSBmdWxsIFNlcnZlcmxlc3MgRnJhbWV3b3JrIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9zZXJ2ZXJsZXNzLWZyYW1ld29yaykKCiMjIyBBenVyZSBGdW5jdGlvbgoKYGBgamF2YXNjcmlwdAptb2R1bGUuZXhwb3J0cyA9IChjb250ZXh0LCByZXEpID0+CiAgYXBpLmhhbmRsZVJlcXVlc3QoCiAgICB7CiAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCwKICAgICAgcGF0aDogcmVxLnBhcmFtcy5wYXRoLAogICAgICBxdWVyeTogcmVxLnF1ZXJ5LAogICAgICBib2R5OiByZXEuYm9keSwKICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMsCiAgICB9LAogICAgY29udGV4dCwKICAgIHJlcSwKICApOwpgYGAKCltTZWUgZnVsbCBBenVyZSBGdW5jdGlvbiBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC90cmVlL21haW4vZXhhbXBsZXMvYXp1cmUtZnVuY3Rpb24pCgojIyMgRmFzdGlmeQoKYGBgdHMKaW1wb3J0IGZhc3RpZnkgZnJvbSAnZmFzdGlmeSc7CgpmYXN0aWZ5LnJvdXRlKHsKICBtZXRob2Q6IFsnR0VUJywgJ1BPU1QnLCAnUFVUJywgJ1BBVENIJywgJ0RFTEVURSddLAogIHVybDogJy8qJywKICBoYW5kbGVyOiBhc3luYyAocmVxdWVzdCwgcmVwbHkpID0+CiAgICBhcGkuaGFuZGxlUmVxdWVzdCgKICAgICAgewogICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsCiAgICAgICAgcGF0aDogcmVxdWVzdC51cmwsCiAgICAgICAgYm9keTogcmVxdWVzdC5ib2R5LAogICAgICAgIHF1ZXJ5OiByZXF1ZXN0LnF1ZXJ5LAogICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycywKICAgICAgfSwKICAgICAgcmVxdWVzdCwKICAgICAgcmVwbHksCiAgICApLAp9KTsKZmFzdGlmeS5saXN0ZW4oKTsKYGBgCgpbU2VlIGZ1bGwgRmFzdGlmeSBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC90cmVlL21haW4vZXhhbXBsZXMvZmFzdGlmeSkKCiMjIyBIYXBpCgpgYGBqYXZhc2NyaXB0CmltcG9ydCBIYXBpIGZyb20gJ0BoYXBpL2hhcGknOwoKY29uc3Qgc2VydmVyID0gbmV3IEhhcGkuU2VydmVyKHsgaG9zdDogJzAuMC4wLjAnLCBwb3J0OiA5MDAwIH0pOwpzZXJ2ZXIucm91dGUoewogIG1ldGhvZDogWydHRVQnLCAnUE9TVCcsICdQVVQnLCAnUEFUQ0gnLCAnREVMRVRFJ10sCiAgcGF0aDogJy97cGF0aCp9JywKICBoYW5kbGVyOiAocmVxLCBoKSA9PgogICAgYXBpLmhhbmRsZVJlcXVlc3QoCiAgICAgIHsKICAgICAgICBtZXRob2Q6IHJlcS5tZXRob2QsCiAgICAgICAgcGF0aDogcmVxLnBhdGgsCiAgICAgICAgYm9keTogcmVxLnBheWxvYWQsCiAgICAgICAgcXVlcnk6IHJlcS5xdWVyeSwKICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycywKICAgICAgfSwKICAgICAgcmVxLAogICAgICBoLAogICAgKSwKfSk7CnNlcnZlci5zdGFydCgpOwpgYGAKCltTZWUgZnVsbCBIYXBpIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9oYXBpLXR5cGVzY3JpcHQpCgoKIyMjIEtvYQoKYGBgamF2YXNjcmlwdAppbXBvcnQgS29hIGZyb20gJ2tvYSc7CmltcG9ydCBib2R5cGFyc2VyIGZyb20gJ2tvYS1ib2R5cGFyc2VyJzsKCmNvbnN0IGFwcCA9IG5ldyBLb2EoKTsKCmFwcC51c2UoYm9keXBhcnNlcigpKTsKYXBwLnVzZSgoY3R4KSA9PgogIGFwaS5oYW5kbGVSZXF1ZXN0KAogICAgY3R4LnJlcXVlc3QsCiAgICBjdHgsCiAgKSwKKTsKYXBwLmxpc3Rlbig5MDAwKTsKYGBgCgpbU2VlIGZ1bGwgS29hIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9rb2EpCgojIyBSZWdpc3RlcmluZyBIYW5kbGVycyBmb3IgT3BlcmF0aW9ucwoKSGFuZGxlcnMgYXJlIHJlZ2lzdGVyZWQgZm9yIFtgb3BlcmF0aW9uSWRzYF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4yLm1kI2ZpeGVkLWZpZWxkcy04KQpmb3VuZCBpbiB0aGUgT3BlbkFQSSBkZWZpbml0aW9ucy4gWW91IGNhbiByZWdpc3RlciBoYW5kbGVycyBhcyBzaG93biBhYm92ZSB3aXRoIFtgbmV3IE9wZW5BUElCYWNrZW5kKClgXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC9ibG9iL21haW4vRE9DUy5tZCNwYXJhbWV0ZXItb3B0c2hhbmRsZXJzKQpjb25zdHJ1Y3RvciBvcHRzLCBvciB1c2luZyB0aGUgW2ByZWdpc3RlcigpYF0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWJhY2tlbmQvYmxvYi9tYWluL0RPQ1MubWQjcmVnaXN0ZXJvcGVyYXRpb25pZC1oYW5kbGVyKQptZXRob2QuCgpgYGBqYXZhc2NyaXB0CmFzeW5jIGZ1bmN0aW9uIGdldFBldEJ5SWRIYW5kbGVyKGMsIHJlcSwgcmVzKSB7CiAgY29uc3QgaWQgPSBjLnJlcXVlc3QucGFyYW1zLmlkOwogIGNvbnN0IHBldCA9IGF3YWl0IHBldHMuZ2V0UGV0QnlJZChpZCk7CiAgcmV0dXJuIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgcmVzdWx0OiBwZXQgfSk7Cn0KYXBpLnJlZ2lzdGVyKCdnZXRQZXRCeUlkJywgZ2V0UGV0QnlJZEhhbmRsZXIpOwovLyBvcgphcGkucmVnaXN0ZXIoewogIGdldFBldEJ5SWQ6IGdldFBldEJ5SWRIYW5kbGVyLAp9KTsKYGBgCgpPcGVyYXRpb24gaGFuZGxlcnMgYXJlIHBhc3NlZCBhIHNwZWNpYWwgW0NvbnRleHQgb2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC9ibG9iL21haW4vRE9DUy5tZCNjb250ZXh0LW9iamVjdCkKYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCB3aGljaCBjb250YWlucyB0aGUgcGFyc2VkIHJlcXVlc3QsIHRoZQptYXRjaGVkIEFQSSBvcGVyYXRpb24gYW5kIGlucHV0IHZhbGlkYXRpb24gcmVzdWx0cy4gVGhlIG90aGVyIGFyZ3VtZW50cyBpbiB0aGUgZXhhbXBsZSBhYm92ZSBhcmUgRXhwcmVzcy1zcGVjaWZpYwpoYW5kbGVyIGFyZ3VtZW50cy4KCiMjIFJlcXVlc3QgdmFsaWRhdGlvbgoKVGhlIGVhc2llc3Qgd2F5IHRvIGVuYWJsZSByZXF1ZXN0IHZhbGlkYXRpb24gaW4geW91ciBBUEkgaXMgdG8gcmVnaXN0ZXIgYSBbYHZhbGlkYXRpb25GYWlsYF0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWJhY2tlbmQvYmxvYi9tYWluL0RPQ1MubWQjdmFsaWRhdGlvbmZhaWwtaGFuZGxlcikKaGFuZGxlci4KCmBgYGphdmFzY3JpcHQKZnVuY3Rpb24gdmFsaWRhdGlvbkZhaWxIYW5kbGVyKGMsIHJlcSwgcmVzKSB7CiAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKHsgc3RhdHVzOiA0MDAsIGVycjogYy52YWxpZGF0aW9uLmVycm9ycyB9KTsKfQphcGkucmVnaXN0ZXIoJ3ZhbGlkYXRpb25GYWlsJywgdmFsaWRhdGlvbkZhaWxIYW5kbGVyKTsKYGBgCgpPbmNlIHJlZ2lzdGVyZWQsIHRoaXMgaGFuZGxlciBnZXRzIGNhbGxlZCBpZiBhbnkgSlNPTiBTY2hlbWFzIGluIGVpdGhlciBvcGVyYXRpb24gcGFyYW1ldGVycyAoaW46IHBhdGgsIHF1ZXJ5LCBoZWFkZXIsCmNvb2tpZSkgb3IgcmVxdWVzdFBheWxvYWQgZG9uJ3QgbWF0Y2ggdGhlIHJlcXVlc3QuCgpUaGUgY29udGV4dCBvYmplY3QgYGNgIGdldHMgYSBgdmFsaWRhdGlvbmAgcHJvcGVydHkgd2l0aCB0aGUgW3ZhbGlkYXRpb24gcmVzdWx0XShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktYmFja2VuZC9ibG9iL21haW4vRE9DUy5tZCN2YWxpZGF0aW9ucmVzdWx0LW9iamVjdCkuCgojIyBSZXNwb25zZSB2YWxpZGF0aW9uCgpPcGVuQVBJQmFja2VuZCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgcGVyZm9ybSByZXNwb25zZSB2YWxpZGF0aW9uIGZvciB5b3VyIGhhbmRsZXJzLCBidXQgeW91IGNhbiByZWdpc3RlciBhCltgcG9zdFJlc3BvbnNlSGFuZGxlcmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL2Jsb2IvbWFpbi9ET0NTLm1kI3Bvc3RyZXNwb25zZWhhbmRsZXItaGFuZGxlcikKdG8gYWRkIGEgcmVzcG9uc2UgdmFsaWRhdGlvbiBzdGVwIHVzaW5nIFtgdmFsaWRhdGVSZXNwb25zZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL2Jsb2IvbWFpbi9ET0NTLm1kI3ZhbGlkYXRlcmVzcG9uc2VyZXMtb3BlcmF0aW9uKS4KCmBgYGphdmFzY3JpcHQKYXBpLnJlZ2lzdGVyKHsKICBnZXRQZXRzOiAoYykgPT4gewogICAgLy8gd2hlbiBhIHBvc3RSZXNwb25zZUhhbmRsZXIgaXMgcmVnaXN0ZXJlZCwgeW91ciBvcGVyYXRpb24gaGFuZGxlcnMnIHJldHVybiB2YWx1ZSBnZXRzIHBhc3NlZCB0byBjb250ZXh0LnJlc3BvbnNlCiAgICByZXR1cm4gW3sgaWQ6IDEsIG5hbWU6ICdHYXJmaWVsZCcgfV07CiAgfSwKICBwb3N0UmVzcG9uc2VIYW5kbGVyOiAoYywgcmVxLCByZXMpID0+IHsKICAgIGNvbnN0IHZhbGlkID0gYy5hcGkudmFsaWRhdGVSZXNwb25zZShjLnJlc3BvbnNlLCBjLm9wZXJhdGlvbik7CiAgICBpZiAodmFsaWQuZXJyb3JzKSB7CiAgICAgIC8vIHJlc3BvbnNlIHZhbGlkYXRpb24gZmFpbGVkCiAgICAgIHJldHVybiByZXMuc3RhdHVzKDUwMikuanNvbih7IHN0YXR1czogNTAyLCBlcnI6IHZhbGlkLmVycm9ycyB9KTsKICAgIH0KICAgIHJldHVybiByZXMuc3RhdHVzKDIwMCkuanNvbihjLnJlc3BvbnNlKTsKICB9LAp9KTsKYGBgCgpJdCdzIGFsc28gcG9zc2libGUgdG8gdmFsaWRhdGUgdGhlIHJlc3BvbnNlIGhlYWRlcnMgdXNpbmcgW2B2YWxpZGF0ZVJlc3BvbnNlSGVhZGVyc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL2Jsb2IvbWFpbi9ET0NTLm1kI3ZhbGlkYXRlcmVzcG9uc2VoZWFkZXJzaGVhZGVycy1vcGVyYXRpb24tb3B0cykuCgpgYGBqYXZhc2NyaXB0CmFwaS5yZWdpc3Rlcih7CiAgZ2V0UGV0czogKGMpID0+IHsKICAgIC8vIHdoZW4gYSBwb3N0UmVzcG9uc2VIYW5kbGVyIGlzIHJlZ2lzdGVyZWQsIHlvdXIgb3BlcmF0aW9uIGhhbmRsZXJzJyByZXR1cm4gdmFsdWUgZ2V0cyBwYXNzZWQgdG8gY29udGV4dC5yZXNwb25zZQogICAgcmV0dXJuIFt7IGlkOiAxLCBuYW1lOiAnR2FyZmllbGQnIH1dOwogIH0sCiAgcG9zdFJlc3BvbnNlSGFuZGxlcjogKGMsIHJlcSwgcmVzKSA9PiB7CiAgICBjb25zdCB2YWxpZCA9IGMuYXBpLnZhbGlkYXRlUmVzcG9uc2VIZWFkZXJzKHJlcy5oZWFkZXJzLCBjLm9wZXJhdGlvbiwgewogICAgICBzdGF0dXNDb2RlOiByZXMuc3RhdHVzQ29kZSwKICAgICAgc2V0TWF0Y2hUeXBlOiAnZXhhY3QnLAogICAgfSk7CiAgICBpZiAodmFsaWQuZXJyb3JzKSB7CiAgICAgIC8vIHJlc3BvbnNlIHZhbGlkYXRpb24gZmFpbGVkCiAgICAgIHJldHVybiByZXMuc3RhdHVzKDUwMikuanNvbih7IHN0YXR1czogNTAyLCBlcnI6IHZhbGlkLmVycm9ycyB9KTsKICAgIH0KICAgIHJldHVybiByZXMuc3RhdHVzKDIwMCkuanNvbihjLnJlc3BvbnNlKTsKICB9LAp9KTsKYGBgCgojIyBBdXRoIC8gU2VjdXJpdHkgSGFuZGxlcnMKCklmIHlvdXIgT3BlbkFQSSBkZWZpbml0aW9uIGNvbnRhaW5zIFtTZWN1cml0eSBTY2hlbWVzXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCNzZWN1cml0eVNjaGVtZU9iamVjdCkKeW91IGNhbiByZWdpc3RlciBzZWN1cml0eSBoYW5kbGVycyB0byBoYW5kbGUgYXV0aG9yaXphdGlvbiBmb3IgeW91ciBBUEk6CgpgYGB5YW1sCmNvbXBvbmVudHM6CiAgc2VjdXJpdHlTY2hlbWVzOgogIC0gQXBpS2V5OgogICAgICB0eXBlOiBhcGlLZXkKICAgICAgaW46IGhlYWRlcgogICAgICBuYW1lOiB4LWFwaS1rZXkKc2VjdXJpdHk6CiAgLSBBcGlLZXk6IFtdCmBgYAoKYGBgamF2YXNjcmlwdAphcGkucmVnaXN0ZXJTZWN1cml0eUhhbmRsZXIoJ0FwaUtleScsIChjKSA9PiB7CiAgY29uc3QgYXV0aG9yaXplZCA9IGMucmVxdWVzdC5oZWFkZXJzWyd4LWFwaS1rZXknXSA9PT0gJ1N1cGVyU2VjcmV0UGFzc3dvcmQxMjMnOwogIC8vIHRydXRoeSByZXR1cm4gdmFsdWVzIGFyZSBpbnRlcnByZXRlZCBhcyBhdXRoIHN1Y2Nlc3MKICAvLyB5b3UgY2FuIGFsc28gYWRkIGFueSBhdXRoIGluZm9ybWF0aW9uIHRvIHRoZSByZXR1cm4gdmFsdWUKICByZXR1cm4gYXV0aG9yaXplZDsKfSk7CmBgYAoKVGhlIGF1dGhvcml6YXRpb24gc3RhdHVzIGFuZCByZXR1cm4gdmFsdWVzIG9mIGVhY2ggc2VjdXJpdHkgaGFuZGxlciBjYW4gYmUKYWNjZXNzZWQgdmlhIHRoZSBbQ29udGV4dCBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL2Jsb2IvbWFpbi9ET0NTLm1kI2NvbnRleHQtb2JqZWN0KQoKWW91IGNhbiBhbHNvIHJlZ2lzdGVyIGFuIFtgdW5hdXRob3JpemVkSGFuZGxlcmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL2Jsb2IvbWFpbi9ET0NTLm1kI3VuYXV0aG9yaXplZGhhbmRsZXItaGFuZGxlcikKdG8gaGFuZGxlIHVuYXV0aG9yaXplZCByZXF1ZXN0cy4KCmBgYGphdmFzY3JpcHQKYXBpLnJlZ2lzdGVyKCd1bmF1dGhvcml6ZWRIYW5kbGVyJywgKGMsIHJlcSwgcmVzKSA9PiB7CiAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgZXJyOiAndW5hdXRob3JpemVkJyB9KQp9KTsKYGBgCgpTZWUgZXhhbXBsZXM6Ci0gW0FQSSBLZXkgYXV0aCAoZXhwcmVzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9leHByZXNzLWFwaWtleS1hdXRoKQotIFtKV1QgYXV0aCAoZXhwcmVzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL3RyZWUvbWFpbi9leGFtcGxlcy9leHByZXNzLWp3dC1hdXRoKQoKIyMgTW9ja2luZyBBUEkgcmVzcG9uc2VzCgpNb2NraW5nIEFQSXMganVzdCBnb3QgcmVhbGx5IGVhc3kgd2l0aCBPcGVuQVBJIEJhY2tlbmQhIFJlZ2lzdGVyIGEgW2Bub3RJbXBsZW1lbnRlZGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpc3RhY2svb3BlbmFwaS1iYWNrZW5kL2Jsb2IvbWFpbi9ET0NTLm1kI25vdGltcGxlbWVudGVkLWhhbmRsZXIpCmhhbmRsZXIgYW5kIHVzZSBbYG1vY2tSZXNwb25zZUZvck9wZXJhdGlvbigpYF0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWJhY2tlbmQvYmxvYi9tYWluL0RPQ1MubWQjI21vY2tyZXNwb25zZWZvcm9wZXJhdGlvbm9wZXJhdGlvbmlkLW9wdHMpCnRvIGdlbmVyYXRlIG1vY2sgcmVzcG9uc2VzIGZvciBvcGVyYXRpb25zIHdpdGggbm8gY3VzdG9tIGhhbmRsZXJzIHNwZWNpZmllZCB5ZXQ6CgpgYGBqYXZhc2NyaXB0CmFwaS5yZWdpc3Rlcignbm90SW1wbGVtZW50ZWQnLCAoYywgcmVxLCByZXMpID0+IHsKICBjb25zdCB7IHN0YXR1cywgbW9jayB9ID0gYy5hcGkubW9ja1Jlc3BvbnNlRm9yT3BlcmF0aW9uKGMub3BlcmF0aW9uLm9wZXJhdGlvbklkKTsKICByZXR1cm4gcmVzLnN0YXR1cyhzdGF0dXMpLmpzb24obW9jayk7Cn0pOwpgYGAKCk9wZW5BUEkgQmFja2VuZCBzdXBwb3J0cyBtb2NraW5nIHJlc3BvbnNlcyB1c2luZyBib3RoIE9wZW5BUEkgZXhhbXBsZSBvYmplY3RzIGFuZCBKU09OIFNjaGVtYToKYGBgeWFtbApwYXRoczoKICAnL3BldHMnOgogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogZ2V0UGV0cwogICAgICBzdW1tYXJ5OiBMaXN0IHBldHMKICAgICAgcmVzcG9uc2VzOgogICAgICAgIDIwMDoKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvcmVzcG9uc2VzL1BldExpc3RXaXRoRXhhbXBsZScKICAnL3BldHMve2lkfSc6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBnZXRQZXRCeUlkCiAgICAgIHN1bW1hcnk6IEdldCBwZXQgYnkgaXRzIGlkCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAyMDA6CiAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3Jlc3BvbnNlcy9QZXRSZXNwb25zZVdpdGhTY2hlbWEnCmNvbXBvbmVudHM6CiAgcmVzcG9uc2VzOgogICAgUGV0TGlzdFdpdGhFeGFtcGxlOgogICAgICBkZXNjcmlwdGlvbjogTGlzdCBvZiBwZXRzCiAgICAgIGNvbnRlbnQ6CiAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOgogICAgICAgICAgZXhhbXBsZToKICAgICAgICAgICAgLSBpZDogMQogICAgICAgICAgICAgIG5hbWU6IEdhcmZpZWxkCiAgICAgICAgICAgIC0gaWQ6IDIKICAgICAgICAgICAgICBuYW1lOiBPZGllCiAgICBQZXRSZXNwb25zZVdpdGhTY2hlbWE6CiAgICAgIGRlc2NyaXB0aW9uOiBBIHNpbmdsZSBwZXQKICAgICAgY29udGVudDoKICAgICAgICAnYXBwbGljYXRpb24vanNvbic6CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgIGlkOgogICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgICAgbWluaW11bTogMQogICAgICAgICAgICAgIG5hbWU6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGV4YW1wbGU6IEdhcmZpZWxkCmBgYAoKVGhlIGV4YW1wbGUgYWJvdmUgd2lsbCB5aWVsZDoKYGBgamF2YXNjcmlwdAphcGkubW9ja1Jlc3BvbnNlRm9yT3BlcmF0aW9uKCdnZXRQZXRzJyk7IC8vID0+IHsgc3RhdHVzOiAyMDAsIG1vY2s6IFt7IGlkOiAxLCBuYW1lOiAnR2FyZmllbGQnIH0sIHsgaWQ6IDIsIG5hbWU6ICdPZGllJyB9XX0KYXBpLm1vY2tSZXNwb25zZUZvck9wZXJhdGlvbignZ2V0UGV0QnlJZCcpOyAvLyA9PiB7IHN0YXR1czogMjAwLCBtb2NrOiB7IGlkOiAxLCBuYW1lOiAnR2FyZmllbGQnIH19CmBgYAoKW1NlZSBmdWxsIE1vY2sgQVBJIGV4YW1wbGUgb24gRXhwcmVzc10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWJhY2tlbmQvdHJlZS9tYWluL2V4YW1wbGVzL2V4cHJlc3MtdHMtbW9jaykKCiMjIENvbW1lcmNpYWwgc3VwcG9ydAoKRm9yIGFzc2lzdGFuY2Ugd2l0aCBpbnRlZ3JhdGluZyBvcGVuYXBpLWJhY2tlbmQgaW4geW91ciBjb21wYW55LCByZWFjaCBvdXQgYXQgc3VwcG9ydEBvcGVuYXBpc3RhY2suY28uCgojIyBDb250cmlidXRpbmcKCk9wZW5BUEkgQmFja2VuZCBpcyBGcmVlIGFuZCBPcGVuIFNvdXJjZSBTb2Z0d2FyZS4gSXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIGFyZSBtb3JlIHRoYW4gd2VsY29tZSEKCg== readmeEtag: '"df55388a5f5a2c9104f126870350480ffe5ee948"' readmeLastModified: Tue, 05 Mar 2024 06:58:46 GMT repositoryId: 154916760 description: Build, Validate, Route, Authenticate and Mock using OpenAPI created: '2018-10-27T02:31:25Z' updated: '2024-09-05T00:58:46Z' language: TypeScript archived: false stars: 605 watchers: 6 forks: 83 owner: openapistack logo: https://avatars.githubusercontent.com/u/147298423?v=4 license: MIT repoEtag: '"8c7c9e42134b851e5453999b2b748d16554f7891ae29c9964a41918c9ec41b8b"' repoLastModified: Thu, 05 Sep 2024 00:58:46 GMT foundInMaster: true id: 13cdf61fc6370ba6543e5a21256c2dfb oldLocations: - https://github.com/anttiviljami/openapi-backend - source: openapi3 tags repository: https://github.com/gruppone/stalker-server v3: true repositoryMetadata: base64Readme: >- IyBTdGFsa2VyIC0gU2VydmVyCgpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1HcnVwcE9uZV9zdGFsa2VyLXNlcnZlciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1HcnVwcE9uZV9zdGFsa2VyLXNlcnZlcikKCjwhLS0gcGVyIGNvbnRyb2xsYXJlIGNoZSBpbCBkYiBzaWEgdXA6IGVjaG8gWCB8IHRlbG5ldCAtZSBYIGxvY2FsaG9zdCAzMzA2IC0tPgoKPCEtLSBUT0RPIHNjcml2ZXJlIHJlYWRtZSAtLT4K readmeEtag: '"848fe32bae379a3bd6854b73cf0309cf49984a34"' readmeLastModified: Wed, 17 Jun 2020 22:55:53 GMT repositoryId: 245448066 description: >- Server per il capitolato C5 - Stalker del corso di Ingegneria del Software 2019/2020 @ UniPD created: '2020-03-06T15:01:47Z' updated: '2020-06-17T22:55:58Z' language: Java archived: false stars: 0 watchers: 3 forks: 0 owner: GruppOne logo: https://avatars.githubusercontent.com/u/58079551?v=4 license: GPL-3.0 repoEtag: '"925199296c79496494fd7b804c86bad252d34193ff87221b998fef49287d7474"' repoLastModified: Wed, 17 Jun 2020 22:55:58 GMT foundInMaster: true category: Server id: 55e2df1b151892ca13b3766635d427ec - source: openapi3 tags repository: https://github.com/anupama-sinha/family-asset-management v3: true repositoryMetadata: base64Readme: >- IyMjIEdldCBTdGFydGVkClRoaXMgaXMgYSBzaW1wbGUgU3ByaW5nIEJvb3QgcHJvamVjdCB3aGljaCBkaXNjcmVldGx5IHVzZXMgYmVsb3cgZmVhdHVyZXMuIFdpbGwga2VlcCBlbmhhbmNpbmcgdGhpcyBwcm9qZWN0IGZyb20gbGVhcm5pbmcgYW5kIHByYWN0aWNlIHBlcnNwZWN0aXZlLgoKIyMjIE9wZW5BcGkzIFN3YWdnZXIgRG9jdW1lbnRhdGlvbiAgCiogQWRkIGRlcGVuZGVuY3kgYW5kIEBPcGVuQVBJRGVmaW5pdGlvbiBpbiBtYWluIGNsYXNzLgoqIFRoZW4gaGl0IGJlbG93IFVSTCBhbmQgY29weSB0byBwcm9qZWN0IGFuZCBlZGl0IGFjY29yZGluZ2x5Lgo+IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC92My9hcGktZG9jcy55YW1sCiogVGhlbiBBY2Nlc3MgU3dhZ2dlciBVUkwgYmVsb3cuCj4gaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkvaW5kZXguaHRtbD9jb25maWdVcmw9L3YzL2FwaS1kb2NzL3N3YWdnZXItY29uZmlnCgojIyMgSDIgSW4gTWVtb3J5IERhdGFiYXNlCiogSW4gbWVtb3J5IERhdGFiYXNlIGhhcyBiZWVuIHVzZWQuIEl0IGNhbiBiZSBhY2Nlc3NlZCBiZWxvdy4KPiBodHRwOi8vbG9jYWxob3N0OjgwODAvaDItY29uc29sZQoKIyMjIENhY2hpbmcKKiBTcHJpbmcncyBkZWZhdWx0IGNhY2hpbmcgaGFzIGJlZW4gdXNlZCBpbiB0aGlzIHByb2plY3QgZm9yIGZyZXF1ZW50bHkgYWNjZXNzZWQgQVBJIEVuZHBvaW50cy4KKiBPbmNlIGVtcHR5LCBEQiBub3QgY2hlY2tlZCB1bnRpbCBUVEwoVGltZSB0byBMaXZlKSwgc28gcGVyZm9ybSBEQiBjaGVjayBpZiBlbXB0eS4KKiBVc2luZyBrZXlzIGFuZCBzeW5jIGlzIHJlY29tbWVuZGVkLiBSZWZlciBmdXJ0aGVyIGRldGFpbHMgYmVsb3cKPiBodHRwczovL3d3dy5mb3JlYWNoLmJlL2Jsb2cvc3ByaW5nLWNhY2hlLWFubm90YXRpb25zLXNvbWUtdGlwcy10cmlja3MKCiMjIyBTY2hlZHVsZXJzCiogSGF2ZSBrZXB0IHNjaGVkdWxlciB0byBwZXJmb3JtIHNjaGVkdWxlZCB0YXNrcy4gQ2hhbmdlIGNyb24uZXhwcmVzc2lvbiBhcyByZXF1aXJlZC4KCiMjIyBHbG9iYWwgRXhjZXB0aW9uIEhhbmRsZXIgZm9yIENvbnRyb2xsZXJzCiogVXNlZCBAUmVzdENvbnRyb2xsZXJBZHZpY2UgdG8gaGF2ZSBjZW50cmFsaXplZCBleGNlcHRpb24gaGFuZGxpbmcgYWNyb3NzIGFsbCBDb250cm9sbGVyIGNsYXNzZXMKKiBBdm9pZGVkIHVzZSBvZiBAUmVzcG9uc2VTdGF0dXMgd2hpY2ggbWFrZXMgY29kZSB0aWdodGx5IGNvdXBsZWQKKiBUb21jYXQgU2VydmxldCBDb250YWluZXIgcmVkaXJlY3RzIHRvIFxlcnJvciBieSBkZWZhdWx0CiogQWx3YXlzIGhhdmUgTm9IYW5kbGVyRm91bmRFeGNlcHRpb24gZm9yIEFQSSBFbmRwb2ludHMgbm90IGNyZWF0ZWQgc28gYXMgdG8gc2VncmVnYXRlIGl0IGZyb20gb3RoZXIgaXNzdWVzIG9mIExlZ2FjeSBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JzCiogTWV0aG9kQXJndW1lbnROb3RWYWxpZEV4Y2VwdGlvbiBmb3IgYXJndW1lbnRzIHdoZW4gZW1wdHksIG51bGwgb3Igbm90IGdpdmVuLiBQT0pPIG11c3QgaGF2ZSBAVmFsaWQgY2hlY2suIFJlZmVyIHRoaXMgW2xpbmtdKGh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nL2RvY3MvY3VycmVudC9qYXZhZG9jLWFwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL3dlYi9iaW5kL01ldGhvZEFyZ3VtZW50Tm90VmFsaWRFeGNlcHRpb24uaHRtbCkKKiBDb21tb24gZXhjZXB0aW9ucyBjYW4gYmUgY2x1YmJlZCBhcyBFeGNlcHRpb24gQXJyYXlzIGFzIHVzZWQgaW4gdGhpcyBwcm9qZWN0CgojIyMgU2VxdWVuY2UgR2VuZXJhdG9yCiogVXNlZCBJZGVudGl0eSBTdHJhdGVneSBoZXJlIHdpdGggYWxsb2NhdGlvbiBzaXplIDI1Cj4gaHR0cHM6Ly93d3cub2JqZWN0ZGIuY29tL2phdmEvanBhL2VudGl0eS9nZW5lcmF0ZWQKCiMjIyBUb3AgTGV2ZWwgSlNPTiBBcnJheXMKKiBIYXZlIGF2b2lkZWQgdXNpbmcgZGlyZWN0IEpTT04gQXJyYXlzIGluIEFQSSByZXNwb25zZS4gUGxlYXNlIGZpbmQgcmVhc29uIGJlbG93IGluIGxpbmsuCj4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzUwMzEwMi93aGF0LWFyZS10b3AtbGV2ZWwtanNvbi1hcnJheXMtYW5kLXdoeS1hcmUtdGhleS1hLXNlY3VyaXR5LXJpc2sKCiMjIyBKUEEgJiBIaWJlcm5hdGUgUmVsYXRpb25zaGlwIE1hcHBpbmcKKiBPbmUgUHJvZHVjdCBpcyBvd25lZCBieSBvbmUgbWVtYmVyIC0gQE9uZVRvT25lCiogT25lIE1lbWJlciBjYW4gb3duIG11bHRpcGxlIFByb2R1Y3RzIC0gQE9uZVRvTWFueQoqIFJlZmVyIFtOb3Rlc10oaHR0cHM6Ly9naXRodWIuY29tL2FudXBhbWEtc2luaGEvYW51cGFtYS1ub3Rlcy9ibG9iL21hc3Rlci9oaWJlcm5hdGUtbWFwcGluZy5tZCkKCiMjIyBFbWFpbC9TTVMgSW50ZWdyYXRpb24KKiBJbiBQcm9ncmVzcwoqIFtUd2lsaW8gU01TIE5vdGlmaWNhdGlvbl0oaHR0cHM6Ly93d3cudHdpbGlvLmNvbS9kb2NzL3Ntcy9xdWlja3N0YXJ0L2phdmEpCiogW0VtYWlsIEludGVncmF0aW9uXShodHRwczovL3d3dy5iYWVsZHVuZy5jb20vc3ByaW5nLWVtYWlsKQoKIyMjIEhhdGVPQVMoSHlwZXJtZWRpYSBBcyBUaGUgRW5naW5lIG9mIEFwcGxpY2F0aW9uIFN0YXRlKQoqIEluIFByb2dyZXNzCgojIyMgT3BlbkFQSSBTd2FnZ2VyIFZhbGlkYXRpb24KKiBJbiBQcm9ncmVzcwoKIyMjIFJlZmVyZW5jZSBEb2N1bWVudGF0aW9uCkZvciBmdXJ0aGVyIHJlZmVyZW5jZSwgcGxlYXNlIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnM6CgoqIFtPZmZpY2lhbCBBcGFjaGUgTWF2ZW4gZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9pbmRleC5odG1sKQoqIFtTcHJpbmcgQm9vdCBNYXZlbiBQbHVnaW4gUmVmZXJlbmNlIEd1aWRlXShodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1ib290L2RvY3MvMi4zLjQuUkVMRUFTRS9tYXZlbi1wbHVnaW4vcmVmZXJlbmNlL2h0bWwvKQoqIFtDcmVhdGUgYW4gT0NJIGltYWdlXShodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1ib290L2RvY3MvMi4zLjQuUkVMRUFTRS9tYXZlbi1wbHVnaW4vcmVmZXJlbmNlL2h0bWwvI2J1aWxkLWltYWdlKQoqIFtTcHJpbmcgV2ViXShodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1ib290L2RvY3MvMi4zLjQuUkVMRUFTRS9yZWZlcmVuY2UvaHRtbHNpbmdsZS8jYm9vdC1mZWF0dXJlcy1kZXZlbG9waW5nLXdlYi1hcHBsaWNhdGlvbnMpCiogW1NwcmluZyBCb290IERldlRvb2xzXShodHRwczovL2RvY3Muc3ByaW5nLmlvL3NwcmluZy1ib290L2RvY3MvMi4zLjQuUkVMRUFTRS9yZWZlcmVuY2UvaHRtbHNpbmdsZS8jdXNpbmctYm9vdC1kZXZ0b29scykKCiMjIyBHdWlkZXMKVGhlIGZvbGxvd2luZyBndWlkZXMgaWxsdXN0cmF0ZSBob3cgdG8gdXNlIHNvbWUgZmVhdHVyZXMgY29uY3JldGVseToKCiogW0J1aWxkaW5nIGEgUkVTVGZ1bCBXZWIgU2VydmljZV0oaHR0cHM6Ly9zcHJpbmcuaW8vZ3VpZGVzL2dzL3Jlc3Qtc2VydmljZS8pCiogW1NlcnZpbmcgV2ViIENvbnRlbnQgd2l0aCBTcHJpbmcgTVZDXShodHRwczovL3NwcmluZy5pby9ndWlkZXMvZ3Mvc2VydmluZy13ZWItY29udGVudC8pCiogW0J1aWxkaW5nIFJFU1Qgc2VydmljZXMgd2l0aCBTcHJpbmddKGh0dHBzOi8vc3ByaW5nLmlvL2d1aWRlcy90dXRvcmlhbHMvYm9va21hcmtzLykKKiBbSGliZXJuYXRlIE1hcHBpbmddKGh0dHBzOi8vc3RhY2thYnVzZS5jb20vYS1ndWlkZS10by1qcGEtd2l0aC1oaWJlcm5hdGUtcmVsYXRpb25zaGlwLW1hcHBpbmcvKQoqIFtKUEFdKGh0dHBzOi8vd3d3Lm9iamVjdGRiLmNvbS9qYXZhL2pwYSk= readmeEtag: '"1d8e34fd722e513a7f16c82c50bdf5f4c4db1b3c"' readmeLastModified: Thu, 07 Dec 2023 12:33:35 GMT repositoryId: 298004156 description: >- A simple standalone RESTful web service application done in Spring Boot framework created: '2020-09-23T14:54:07Z' updated: '2023-12-07T12:33:05Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: anupama-sinha logo: https://avatars.githubusercontent.com/u/68496768?v=4 repoEtag: '"9c616b40467299de4b743cc30218811185ab1758638ff8526c97e463bd022ba0"' repoLastModified: Thu, 07 Dec 2023 12:33:05 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: dda339640f86bc8fa2eee7992d0ae5c2 - source: openapi3 tags repository: https://github.com/rettvis/geo-spain v3: true repositoryMetadata: base64Readme: >- IyBHRU8tU3BhaW4gQVBJCgpHRU8tU3BhaW4gQVBJIGlzIGEgc2VydmljZSBhaW1lZCBhdCBwcm9ncmFtbWVycywgdG8gc2ltcGxpZnkgdGhlIHByb2Nlc3Npbmcgb2YgcG9zdGFsIGRhdGEgd2l0aGluIHRoZSBTcGFuaXNoIHRlcnJpdG9yeS4= readmeEtag: '"afe5d2dcc289e077343a8caad3c9d2e90582714c"' readmeLastModified: Thu, 15 Apr 2021 22:11:13 GMT repositoryId: 357949475 description: >- GEO-Spain API is a project that aims to facilitate the work of programmers when creating different components that require data related to the geography of Spain, such as street names, postal codes, towns, and a long etcetera. created: '2021-04-14T15:14:57Z' updated: '2021-04-16T06:37:50Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: rettvis logo: https://avatars.githubusercontent.com/u/65330314?v=4 repoEtag: '"788e640b1e73e0134deaff1194d578e14c9dd87adf99175870c9bb8d316b63aa"' repoLastModified: Fri, 16 Apr 2021 06:37:50 GMT foundInMaster: true category: - Testing - Server Implementations id: 47286ac434b8a7bcdfb0add17c319fc7 - source: openapi3 tags repository: https://github.com/pilotak/openapi-typescript-jwt v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIDMgVHlwZVNjcmlwdCBKV1QgdGVtcGxhdGUKQW4gZXhhbXBsZSBBUEkgd2l0aCBUeXBlU2NyaXB0IHN1cHBvcnQgYW5kIGJhc2ljIGxvZ2luIG1lY2hhbmlzbSBiYXNlZCBvbiBKV1QKCiMjIEluc3RhbGwKYGBgc2gKbnBtIGluc3RhbGwgJiYgbnBtIHJ1biBkZXYKYGBgCgojIyBSdW4KRmlyc3QgbG9naW4gYW5kIGNvcHkgZ2VuZXJhdGVkIHRva2VuLgoKYGBgc2gKY3VybCAtSCAnQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uJyAtWCBQT1NUIC1kICd1c2VybmFtZT10ZXN0JyBodHRwOi8vbG9jYWxob3N0OjMwMDAvdjEvbG9naW4KYGBgCgpOb3cgeW91IGNhbiBzZWUgb3BlbmFwaS5qc29uCmBgYHNoCmN1cmwgLUggJ0FjY2VwdDogYXBwbGljYXRpb24vanNvbicgLVggR0VUIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5Li4uJyBodHRwOi8vbG9jYWxob3N0OjMwMDAvdjEvZG9jcwpgYGAKCk9yIHlvdSBjYW4gbGlzdCB1c2VycwpgYGBzaApjdXJsIC1IICdBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24nIC1YIEdFVCAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIGV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLicgaHR0cDovL2xvY2FsaG9zdDozMDAwL3YxL3VzZXJzCmBgYAoKIyMgR1VJCkp1c3QgdmlzaXQgYHJlZG9jLmh0bWxgIHZpYSB5b3VyIGJyb3dzZXIK readmeEtag: '"64459c5e485f2321503f2801a5170cf89d5f842e"' readmeLastModified: Mon, 21 Jun 2021 09:08:43 GMT repositoryId: 364698867 description: Express.js OpenAPI 3 typescript JWT boilerplate created: '2021-05-05T20:32:46Z' updated: '2021-06-21T09:08:50Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: pilotak logo: https://avatars.githubusercontent.com/u/8101753?v=4 license: MIT repoEtag: '"544697a36b1ca0ca7c5334998069a45cae9dd642118d43809188cc49e8836979"' repoLastModified: Mon, 21 Jun 2021 09:08:50 GMT foundInMaster: true category: - Data Validators - Server Implementations id: 73c449d2f080f914c6266a97a3693fbd - source: openapi3 tags repository: https://github.com/glongrais/openapi_photo_management v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJX1Bob3RvX01hbmFnZW1lbnQKCiMjIFByaW5jaXBsZQoKQmFzaWMgcGhvdG8gbWFuYWdlbWVudCBBUEkgY3JlYXRlZCB3aXRoIE9wZW5BUEkgMyB0aGF0IHNlcnZlIGJhc2ljIENSVUQgdmlhIEhUVFAKCiMjIyBUYWJsZSBvZiBDb250ZW50cyAgCltSZXNzb3VyY2VzXSgjUmVzc291Y2VzKSAgCltSZXF1ZXN0c10oI1JlcXVlc3RzKSAgCltTY2hlbWFzXSgjU2NoZW1hcykgICAKW0V4YW1wbGVdKCNFeGFtcGxlKSAgIAoKCiMjIFJlc3NvdXJjZXMKCiogT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKS4KKiBCYXNpY3MgYWJvdXQgSFRUUCByZXF1ZXN0cyBhbmQgcmVzcG9uc2UgY29kZXMgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL3d3dy5yZXN0YXBpdHV0b3JpYWwuY29tL2xlc3NvbnMvaHR0cG1ldGhvZHMuaHRtbCkuCgoKIyMgUmVxdWVzdHMKCnwgVHlwZSB8IFJvdXRlIHwgUmVxdWVzdCBCb2R5IHwgUmVzcG9uc2UgQm9keSB8CnwgLS0tIHwgLS0tIHwgLS0tfCAtLS0gfAp8IFBPU1QgfCBgL3Bob3RvYHxQaG90b3w8dWw+PGxpPiAqKlN0YXR1cyBDb2RlKio6IDIwMSAtIGBTdWNjZXNzOiB7bWVzc2FnZTog4oCYUGhvdG8gc3VjY2Vzc2Z1bGx5IGNyZWF0ZWTigJksIGlkOiBwaG90b19pZH1gPC9saT48bGk+KipTdGF0dXMgQ29kZSoqOiA0MjIgLSBgRXJyb3I6IHttZXNzYWdlOiBlcnJ9YDwvbGk+PC91bD58CnwgR0VUIHxgL3Bob3Rvc2B8YWNjZXNzfDx1bD48bGk+KipTdGF0dXMgQ29kZSoqOiAyMDAgLSBgUGhvdG9zOiBbe1Bob3RvfSwgLi5dYCAgPC9saT48bGk+KipTdGF0dXMgQ29kZSoqOiA0MDQgLSAgYEVycm9yOiB7bWVzc2FnZTogZXJyfWAgIDwvbGk+PC91bD58CnwgR0VUIHxgL3Bob3RvL3twaG90b19pZH1gfC18PHVsPjxsaT4qKlN0YXR1cyBDb2RlKio6IDIwMCAtIGBQaG90bzoge2lkOiBpZCwgbmFtZTogbmFtZSwgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBhY2Nlc3M6IGFjY2VzcywgbG9jYXRpb246IGxvY2F0aW9uLCBjcmVhdGVkX2RhdGU6IGNyZWF0ZWRfZGF0ZSwgbW9kaWZpZWRfZGF0ZTogbW9kaWZpZWRfZGF0ZX1gICA8L2xpPjxsaT4qKlN0YXR1cyBDb2RlKio6IDQwNCAtICBgRXJyb3I6IHttZXNzYWdlOiBlcnJ9YCAgPC9saT48L3VsPnwKfCBQVVQgfGAvcGhvdG8ve3Bob3RvX2lkfWB8UGhvdG98PHVsPjxsaT4qKlN0YXR1cyBDb2RlKio6IDIwMCAtIGBTdWNjZXNzOiB7bWVzc2FnZTog4oCYUGhvdG8gc3VjY2Vzc2Z1bGx5IHVwZGF0ZWTigJksIGlkOiBwaG90b19pZH1gICA8L2xpPjxsaT4qKlN0YXR1cyBDb2RlKio6IDQwNCAtICBgRXJyb3I6IHttZXNzYWdlOiBlcnJ9YDwvbGk+PGxpPioqU3RhdHVzIENvZGUqKjogNDIyIC0gIGBFcnJvcjoge21lc3NhZ2U6IGVycn1gICA8L2xpPjwvdWw+fAp8IERFTEVURSB8YC9waG90by97cGhvdG9faWR9YHwtfDx1bD48bGk+KipTdGF0dXMgQ29kZSoqOiAyMDQgIDwvbGk+PGxpPioqU3RhdHVzIENvZGUqKjogNDA0IC0gIGBFcnJvcjoge21lc3NhZ2U6IGVycn1gICA8L2xpPjwvdWw+fAoKIyMgU2NoZW1hcwoKKiBgUGhvdG9gCgogICAgfCBBdHRyaWJ1dGUgfCBUeXBlIHwgQ29uZGl0aW9ucyB8CiAgICB8IC0tLSB8IC0tLSB8IC0tLSB8CiAgICB8IGlkIHwgc3RyaW5nIHwgYHJlYWRPbmx5OiB0cnVlYCB8CiAgICB8IG5hbWUgfCBzdHJpbmcgfCBgcmVxdWlyZWQ6dHJ1ZWA8L2JyPmBtYXhsZW5naHQ6IDIwYCB8CiAgICB8IGRlc2NyaXB0aW9uIHwgc3RyaW5nIHwgYG1heGxlbmdodDogMTAwYCB8CiAgICB8IGFjY2VzcyB8IHN0cmluZyB8IGByZXF1aXJlZDp0cnVlYDwvYnI+YGVudW06IFtwdWJsaWMsIHByaXZhdGVdYCB8CiAgICB8IGxvY2F0aW9uIHwgc3RyaW5nIHwgYHJlcXVpcmVkOnRydWVgIHwKICAgIHwgZmlsZSB8IHN0cmluZyB8IGByZXF1aXJlZDp0cnVlYCB8CiAgICB8IGNyZWF0ZWRfZGF0ZSB8IHN0cmluZyB8IGByZXF1aXJlZDp0cnVlYDwvYnI+YGZvcm1hdDogZGF0ZS10aW1lYCB8CiAgICB8IHVwZGF0ZWRfZGF0ZSB8IHN0cmluZyB8IGByZXF1aXJlZDp0cnVlYDwvYnI+YGZvcm1hdDogZGF0ZS10aW1lYCB8CgoqIGBQaG90b3NgCgogICAgfCBBdHRyaWJ1dGUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfAogICAgfCAtLS0gfCAtLS0gfCAtLS0gfAogICAgfCBbUGhvdG9dIHwgYXJyYXkgfCBBbiBhcnJheSBvZiBwaG90b3MgfAoKKiBgU3VjY2Vzc2AKCiAgICB8IEF0dHJpYnV0ZSB8IFR5cGUgfCBDb25kaXRpb25zIHwKICAgIHwgLS0tIHwgLS0tIHwgLS0tIHwKICAgIHwgbWVzc2FnZSB8IHN0cmluZyB8IC0gfAogICAgfCBpZCB8IHN0cmluZyB8IC0gfAoKKiBgRXJyb3JgCgogICAgfCBBdHRyaWJ1dGUgfCBUeXBlIHwgQ29uZGl0aW9ucyB8CiAgICB8IC0tLSB8IC0tLSB8IC0tLSB8CiAgICB8IG1lc3NhZ2UgfCBzdHJpbmcgfCAtIHwKCgojIyBFeGFtcGxlCgpgUGhvdG9gIHNjaGVtYToKCmBgYGpzb24KewogICJuYW1lIjogIlBob3RvXzMiLAogICJkZXNjcmlwdGlvbiI6ICJNeSBkb2cgc2VsZmllIiwKICAiYWNjZXNzIjogInB1YmxpYyIsCiAgImxvY2F0aW9uIjogIlNrb3BqZSIsCiAgImZpbGUiOiAidGVkZHlfc2VsZmllLmpwZyIsCiAgImNyZWF0ZWRfZGF0ZSI6ICIxOTk2LTA4LTIzVDE3OjMyOjI4WiIsCiAgIm1vZGlmaWVkX2RhdGUiOiAiMjAyMC0xMi0yN1QyMzo0NToyOFoiCn0KYGBgCgoK readmeEtag: '"b18af50cf255678d9a5544f5e644f6a11d4bbe4e"' readmeLastModified: Thu, 11 Nov 2021 10:08:24 GMT repositoryId: 426552432 description: >- Basic photo management API with OpenAPI 3 to serve basic CRUD via HTTP requests created: '2021-11-10T09:02:16Z' updated: '2021-11-17T16:23:05Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: glongrais logo: https://avatars.githubusercontent.com/u/34845137?v=4 repoEtag: '"d00e8577f5f6f1699e9f2198c5c58916a88d44521420c97543b6a9a9e6819306"' repoLastModified: Wed, 17 Nov 2021 16:23:05 GMT foundInMaster: true category: Description Validators id: 58070799bfdcbcf0b732a5a146acbab6 - source: - https://openapi.tools/ - openapi3 tags repository: https://github.com/funbox/fitting v3: true repositoryMetadata: base64Readme: >- IyBGaXR0aW5nCgo8aW1nIGFsaWduPSJyaWdodCIgd2lkdGg9IjE5MiIgaGVpZ2h0PSIxOTIiCmFsdD0iRml0dGluZyBhdmF0YXI6IERvY3VtZW50cyB3aXRoIGhhbmdlcnMiCnNyYz0iLi9pbWFnZXMvbG9nby5wbmciPgoKTGlicmFyeSBhZGQgaW1wcm92ZSB0ZXN0IGxvZywgdmFsaWRhdGUgaXRzIGFjY29yZGluZyB0byB5b3VyIEFQSSBkb2N1bWVudGF0aW9uLCBzaG93IHRoZSBkb2N1bWVudGF0aW9uIGNvdmVyYWdlIHdpdGggbG9nLgoKVGVzdCBsb2cgc2V0dGluZyBzdXBwb3J0cyBSU3BlYyB0ZXN0IGFuZCBXZWJNb2NrIHN0dWJiaW5nIGZvciBSdWJ5IE9uIFJhaWxzIGFwcGxpY2F0aW9uLCBBUEkgZG9jdW1lbnRhdGlvbiBzdXBwb3J0cyBBUEkgQmx1ZXByaW50IGFuZCBPcGVuQVBJLgoKVGhpcyByZWR1Y2VzIHRoZSBjb3N0cyBvZiBzdXBwb3J0LCB0ZXN0ZXJzIGFuZCBhbmFseXN0cy4KCkxvZwpgYGB0ZXh0CkZJVFRJTkcgaW5jb21pbmcgcmVxdWVzdCB7Im1ldGhvZCI6IlBPU1QiLCJwYXRoIjoiL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy90RVg1SmlaeWNlaXd1S01pMW9OOVNmOFMvY29udGFjdHMiLCJib2R5Ijp7fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImNvbnRlbnRfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJib2R5Ijp7InNvdXJjZV9pZCI6IjAwZGJmMThkLTg3OWUtNDdjYi1hYzQ1LWU5YWVjZTI2NmViMSIsInB1YnN1Yl90b2tlbiI6Imt0bjZZd1B1czU3SkRmNGU1OWVGUG9tNSIsImlkIjozMjkxLCJuYW1lIjoic2h5LXN1cmYtNDAxIiwiZW1haWwiOm51bGwsInBob25lX251bWJlciI6bnVsbH19LCJ0aXRsZSI6Ii4vc3BlYy9jb250cm9sbGVycy9wdWJsaWMvYXBpL3YxL2luYm94L2NvbnRhY3RzX2NvbnRyb2xsZXJfc3BlYy5yYjo5IiwiZ3JvdXAiOiIuL3NwZWMvY29udHJvbGxlcnMvcHVibGljL2FwaS92MS9pbmJveC9jb250YWN0c19jb250cm9sbGVyX3NwZWMucmIiLCJob3N0Ijoid3d3LmV4YW1wbGUuY29tIn0KRklUVElORyBvdXRnb2luZyByZXF1ZXN0IHsibWV0aG9kIjoiUE9TVCIsInBhdGgiOiIvdjEvb3JnYW5pemF0aW9ucy9vcmdfaWQvbWVldGluZyIsImJvZHkiOnt9LCJyZXNwb25zZSI6eyJzdGF0dXMiOjIwMCwiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImJvZHkiOnsic3VjY2VzcyI6dHJ1ZSwiZGF0YSI6eyJtZWV0aW5nIjp7ImlkIjoibWVldGluZ19pZCIsInJvb21OYW1lIjoicm9vbV9uYW1lIn19fX0sInRpdGxlIjoiLi9zcGVjL2NvbnRyb2xsZXJzL2FwaS92MS9hY2NvdW50cy9pbnRlZ3JhdGlvbnMvZHl0ZV9jb250cm9sbGVyX3NwZWMucmI6NTAiLCJncm91cCI6Ii4vc3BlYy9jb250cm9sbGVycy9hcGkvdjEvYWNjb3VudHMvaW50ZWdyYXRpb25zL2R5dGVfY29udHJvbGxlcl9zcGVjLnJiIiwiaG9zdCI6ImFwaS5jbHVzdGVyLmR5dGUuaW4ifQpgYGAKCnZhbGlkYXRpb24KYGBgY29uc29sZQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuRkZGLi5GRkZGRkZGRkZGLi4uLkYuLi4uLi4uRi4uLkZGLi4uLi5GLi4uRi4uLi5GLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLkZGLkYuLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuLi4uLi4uLkZGRi4uLkZGRkYuLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi4uRkZGRkZGRkZGRkYuLkZGRkZGRi4uRkZGRkZGRkZGRkZGRkZGRkYuLi4uLi4uRkZGRkZGLi4uLi4uLi4uLi4uLkZGRkZGRkZGRkZGRi4uLi5GLi4uLi4uLi5GRkYuRi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi4uLi4uLkZGLi4uLi4uLi5GRkYuLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLkZGRkZGRi4uLi4uLkYuLi4uLi4uLi4uLi5GRkZGLi4uLi4uLi5GRkZGRkZGRkZGRkZGRi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLkZGLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uLi4uRkYuLi4uLi4uLi4uRkZGRkZGRkZGRkZGRkZGRkZGLi4uRkZGRi4uLi4uLi4uLi4uLi4uLkYuRi4uLi5GRi4uRkZGRkZGRkYKCiAgMSkgRml0dGluZzo6RG9jOjpOb3RGb3VuZCBsb2cgZXJyb3I6Cgpob3N0OiB3d3cuZXhhbXBsZS5jb20KbWV0aG9kOiBQT1NUCnBhdGg6IC9wdWJsaWMvYXBpL3YxL2luYm94ZXMve2luYm94X2lkZW50aWZpZXJ9L2NvbnRhY3RzCmNvZGU6IDIwMAoKY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uCgpqc29uLXNjaGVtYTogewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicHJvcGVydGllcyI6IHsKICAgICJpZCI6IHsKICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAic291cmNlX2lkIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlc3Npb24gaWRlbnRpZmllciBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhlIGNvbnRhY3QiCiAgICB9LAogICAgImVtYWlsIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiRW1haWwgb2YgdGhlIGNvbnRhY3QiCiAgICB9LAogICAgInB1YnN1Yl90b2tlbiI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0b2tlbiB0byBiZSB1c2VkIHRvIGNvbm5lY3QgdG8gY2hhdHdvb3Qgd2Vic29ja2V0IgogICAgfQogIH0KfQoKYm9keTogewogICJzb3VyY2VfaWQiOiAiYzllOGMzMWYtMDZkZi00OWI0LThmYjktNDQ2NjQ1N2FlNjViIiwKICAicHVic3ViX3Rva2VuIjogIlpnYzdERXZhajVUa2daMWE0QzdBdkpYbyIsCiAgImlkIjogMzI5MywKICAibmFtZSI6ICJyZXN0bGVzcy1zbm93Zmxha2UtNjcwIiwKICAiZW1haWwiOiBudWxsLAogICJwaG9uZV9udW1iZXIiOiBudWxsCn0KCmVycm9yIFsKICAiVGhlIHByb3BlcnR5ICcjL2VtYWlsJyBvZiB0eXBlIG51bGwgZGlkIG5vdCBtYXRjaCB0aGUgZm9sbG93aW5nIHR5cGU6IHN0cmluZyBpbiBzY2hlbWEgZTU2YjdlNjUtZDcwYy01ZjdhLWE5NmMtOTgyZGY1ZjhmMmY3IgpdCgouLi4KCjgwNCBleGFtcGxlcywgNTY1IGZhaWx1cmUsIDAgcGVuZGluZwoKQ292ZXJhZ2U6IDY1LjUxJQpgYGAKCmFuZCBjb3ZlcgohW2V4bWFwbGVdKGltYWdlcy9iMS5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy9iMi5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy93MS5wbmcpCgohW2V4bWFwbGVdKGltYWdlcy93Mi5wbmcpCgojIyBJbnN0YWxsYXRpb24KQWRkIHRoaXMgbGluZSB0byB5b3VyIGFwcGxpY2F0aW9uJ3MgR2VtZmlsZToKYGBgcnVieQpnZW0gJ2ZpdHRpbmcnCmBgYAoKQWZ0ZXIgdGhhdCBleGVjdXRlOgpgYGBiYXNoCiQgYnVuZGxlCmBgYAoKT3IgaW5zdGFsbCB0aGUgZ2VtIGJ5IHlvdXJzZWxmOgpgYGBiYXNoCiQgZ2VtIGluc3RhbGwgZml0dGluZwpgYGAKCiMjIFVzYWdlCiMjIyBMb2cKRmlyc3RseSwgaW1wcm92ZSBgdGVzdC5sb2dgLgoKVG8geW91ciBgc3BlY19oZWxwZXIucmJgOgoKYGBgcnVieQpyZXF1aXJlICdmaXR0aW5nJwoKRml0dGluZy5sb2dnZXIKYGBgCgpEZWxldGUgYWxsIGZpbGVzIGBsb2cvKi5sb2dgIGFuZCBydW4gcnNwZWMKCllvdSBnZXQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBpbmNvbWluZyBhbmQgb3V0Z29pbmcgcmVxdWVzdCBpbiBgbG9nL2ZpdHRpbmcqLmxvZ2AuCgpgYGB0ZXh0CkZJVFRJTkcgaW5jb21pbmcgcmVxdWVzdCB7Im1ldGhvZCI6IlBPU1QiLCJwYXRoIjoiL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy90RVg1SmlaeWNlaXd1S01pMW9OOVNmOFMvY29udGFjdHMiLCJib2R5Ijp7fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImNvbnRlbnRfdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJib2R5Ijp7InNvdXJjZV9pZCI6IjAwZGJmMThkLTg3OWUtNDdjYi1hYzQ1LWU5YWVjZTI2NmViMSIsInB1YnN1Yl90b2tlbiI6Imt0bjZZd1B1czU3SkRmNGU1OWVGUG9tNSIsImlkIjozMjkxLCJuYW1lIjoic2h5LXN1cmYtNDAxIiwiZW1haWwiOm51bGwsInBob25lX251bWJlciI6bnVsbH19LCJ0aXRsZSI6Ii4vc3BlYy9jb250cm9sbGVycy9wdWJsaWMvYXBpL3YxL2luYm94L2NvbnRhY3RzX2NvbnRyb2xsZXJfc3BlYy5yYjo5IiwiZ3JvdXAiOiIuL3NwZWMvY29udHJvbGxlcnMvcHVibGljL2FwaS92MS9pbmJveC9jb250YWN0c19jb250cm9sbGVyX3NwZWMucmIiLCJob3N0Ijoid3d3LmV4YW1wbGUuY29tIn0KRklUVElORyBvdXRnb2luZyByZXF1ZXN0IHsibWV0aG9kIjoiUE9TVCIsInBhdGgiOiIvdjEvb3JnYW5pemF0aW9ucy9vcmdfaWQvbWVldGluZyIsImJvZHkiOnt9LCJyZXNwb25zZSI6eyJzdGF0dXMiOjIwMCwiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsImJvZHkiOnsic3VjY2VzcyI6dHJ1ZSwiZGF0YSI6eyJtZWV0aW5nIjp7ImlkIjoibWVldGluZ19pZCIsInJvb21OYW1lIjoicm9vbV9uYW1lIn19fX0sInRpdGxlIjoiLi9zcGVjL2NvbnRyb2xsZXJzL2FwaS92MS9hY2NvdW50cy9pbnRlZ3JhdGlvbnMvZHl0ZV9jb250cm9sbGVyX3NwZWMucmI6NTAiLCJncm91cCI6Ii4vc3BlYy9jb250cm9sbGVycy9hcGkvdjEvYWNjb3VudHMvaW50ZWdyYXRpb25zL2R5dGVfY29udHJvbGxlcl9zcGVjLnJiIiwiaG9zdCI6ImFwaS5jbHVzdGVyLmR5dGUuaW4ifQpgYGAKCiMjIyBWYWxpZGF0aW9uClNlY29uZGx5LCB2YWxpZGF0ZSB0aGUgbG9nIHRvIHRoZSBkb2N1bWVudGF0aW9uLgoKQWRkIHRoaXMgdG8geW91ciBgLmZpdHRpbmcueW1sYDoKCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgdHlwZTogb3BlbmFwaTIKICAgIHBhdGg6IHN3YWdnZXIvc3dhZ2dlci5qc29uCmBgYAoKUnVuIApgYGBiYXNoCmJ1bmRsZSBlIHJha2UgZml0dGluZzp2YWxpZGF0ZQpgYGAKCkNvbnNvbGUgb3V0cHV0CgpgYGBjb25zb2xlCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi5GRkYuLkZGRkZGRkZGRkYuLi4uRi4uLi4uLi5GLi4uRkYuLi4uLkYuLi5GLi4uLkYuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuRi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi5GRi4uLi4uLi4uRkZGLi4uRkZGRi4uLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi4uLi5GRkZGRkZGRkZGRi4uRkZGRkZGLi5GRkZGRkZGRkZGRkZGRkZGRi4uLi4uLi5GRkZGRkYuLi4uLi4uLi4uLi4uRkZGRkZGRkZGRkZGLi4uLkYuLi4uLi4uLkZGRi5GLi4uRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi4uLi4uLi4uRkYuLi4uLi4uLkZGRi4uLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYuLi4uRkZGRkZGLi4uLi4uRi4uLi4uLi4uLi4uLkZGRkYuLi4uLi4uLkZGRkZGRkZGRkZGRkZGLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRi4uRkYuLi4uLkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGLi4uLi5GRi4uLi4uLi4uLi5GRkZGRkZGRkZGRkZGRkZGRkYuLi5GRkZGLi4uLi4uLi4uLi4uLi4uRi5GLi4uLkZGLi5GRkZGRkZGRgoKICAxKSBGaXR0aW5nOjpEb2M6Ok5vdEZvdW5kIGxvZyBlcnJvcjoKCmhvc3Q6IHd3dy5leGFtcGxlLmNvbQptZXRob2Q6IFBPU1QKcGF0aDogL3B1YmxpYy9hcGkvdjEvaW5ib3hlcy97aW5ib3hfaWRlbnRpZmllcn0vY29udGFjdHMKY29kZTogMjAwCgpjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24KCmpzb24tc2NoZW1hOiB7CiAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIiwKICAidHlwZSI6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIjogewogICAgImlkIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBjb250YWN0IgogICAgfSwKICAgICJzb3VyY2VfaWQiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2Vzc2lvbiBpZGVudGlmaWVyIG9mIHRoZSBjb250YWN0IgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAiZW1haWwiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJFbWFpbCBvZiB0aGUgY29udGFjdCIKICAgIH0sCiAgICAicHVic3ViX3Rva2VuIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHRva2VuIHRvIGJlIHVzZWQgdG8gY29ubmVjdCB0byBjaGF0d29vdCB3ZWJzb2NrZXQiCiAgICB9CiAgfQp9Cgpib2R5OiB7CiAgInNvdXJjZV9pZCI6ICJjOWU4YzMxZi0wNmRmLTQ5YjQtOGZiOS00NDY2NDU3YWU2NWIiLAogICJwdWJzdWJfdG9rZW4iOiAiWmdjN0RFdmFqNVRrZ1oxYTRDN0F2SlhvIiwKICAiaWQiOiAzMjkzLAogICJuYW1lIjogInJlc3RsZXNzLXNub3dmbGFrZS02NzAiLAogICJlbWFpbCI6IG51bGwsCiAgInBob25lX251bWJlciI6IG51bGwKfQoKZXJyb3IgWwogICJUaGUgcHJvcGVydHkgJyMvZW1haWwnIG9mIHR5cGUgbnVsbCBkaWQgbm90IG1hdGNoIHRoZSBmb2xsb3dpbmcgdHlwZTogc3RyaW5nIGluIHNjaGVtYSBlNTZiN2U2NS1kNzBjLTVmN2EtYTk2Yy05ODJkZjVmOGYyZjciCl0KCi4uLgoKODA0IGV4YW1wbGVzLCA1NjUgZmFpbHVyZSwgMCBwZW5kaW5nCgpDb3ZlcmFnZTogNjUuNTElCmBgYAoKIyMjIENvdmVyYWdlCkFuZCB0YXNrIHdpbGwgY3JlYXRlIEhUTUwgKGBjb3ZlcmFnZS9maXR0aW5nLmh0bWxgKSByZXBvcnRzLgoKIVtleG1hcGxlXShpbWFnZXMvYjEucG5nKQoKIVtleG1hcGxlXShpbWFnZXMvYjIucG5nKQoKTW9yZSBpbmZvcm1hdGlvbiBvbiBhY3Rpb24gY292ZXJhZ2UKCiFbZXhtYXBsZTJdKGltYWdlcy93MS5wbmcpCgohW2V4bWFwbGUyXShpbWFnZXMvdzIucG5nKQoKIyMgU2V0dGluZ3MKCiMjIyBBUElzCgojIyMjIHR5cGUKCiMjIyMjIE9wZW5BUEkgMi4wClN3YWdnZXIKCmBgYHlhbWwKQVBJczoKICAtIGhvc3Q6IHd3dy5leGFtcGxlLmNvbQogICAgdHlwZTogb3BlbmFwaTIKICAgIHBhdGg6IGRvYy9hcGkuanNvbgpgYGAKCiMjIyMjIE9wZW5BUEkgMy4wCkFsc28gT3BlbkFQSQoKYGBgeWFtbApBUElzOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICB0eXBlOiBvcGVuYXBpMwogICAgcGF0aDogZG9jL2FwaS5qc29uCmBgYAoKIyMjIyMgQVBJIEJsdWVwcmludApGaXJzdCB5b3UgbmVlZCB0byBpbnN0YWxsIFtkcmFmdGVyXShodHRwczovL2dpdGh1Yi5jb20vYXBpYXJ5aW8vZHJhZnRlcikgb3IgW2NyYWZ0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9mdW5ib3gvY3JhZnRlcikuCldvcmtzIGFmdGVyIGNvbnZlcnNpb24gZnJvbSBBUEkgQmx1ZXByaW50IHRvIEFQSSBFbGVtZW50cyAoaW4gWUFNTCBmaWxlKSB3aXRoIERyYWZ0ZXIgb3IgQ3JhZnRlci4KClRoYXQgaXMsIEkgbWVhbiB0aGF0IHlvdSBmaXJzdCBuZWVkIHRvIGRvIHRoaXMKCmBgYGJhc2gKZHJhZnRlciBkb2MuYXBpYiAtbyBkb2MueWFtbApgYGAKCm9yCgpgYGBiYXNoCm5vZGVfbW9kdWxlcy8uYmluL2NyYWZ0ZXIgZG9jLmFwaWIgPiBkb2MueWFtbApgYGAKCmFuZCB0aGVuCgpgYGB5YW1sCkFQSXM6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIHR5cGU6IGRyYWZ0ZXIKICAgIHBhdGg6IGRvYy9hcGkueWFtbApgYGAKCm9yCgpgYGB5YW1sCkFQSXM6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIHR5cGU6IGNyYWZ0ZXIKICAgIHBhdGg6IGRvYy9hcGkueWFtbApgYGAKCiMjIyMjIFRvbW9ncmFwaAoKVG8gdXNlIGFkZGl0aW9uYWwgZmVhdHVyZXMgb2YgdGhlIHByZS1jb252ZXJ0ZWQgW3RvbW9ncmFwaF0oaHR0cHM6Ly9naXRodWIuY29tL2Z1bmJveC90b21vZ3JhcGgpCgpleGFtcGxlCgpgYGBiYXNoCmJ1bmRsZSBleGVjIHRvbW9ncmFwaCAtZCBjcmFmdGVyIC0tZXhjbHVkZS1kZXNjcmlwdGlvbiBkb2MvYXBpLnltbCBkb2MvYXBpLmpzb24KYGBgCgphbmQgdGhlbgoKYGBgeWFtbApBUElzOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICB0eXBlOiB0b21vZ3JhbQogICAgcGF0aDogZG9jL2FwaS5qc29uCmBgYAoKIyMjIyBwcmVmaXgKClNldHRpbmcgdGhlIHByZWZpeCBuYW1lIGlzIG9wdGlvbmFsLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBkbyB0aGlzOgoKYGBgeWFtbApBUElzOgogIC0gaG9zdDogd3d3LmV4YW1wbGUuY29tCiAgICBwcmVmaXg6IC9hcGkvdjMKICAgIHR5cGU6IG9wZW5hcGkyCiAgICBwYXRoOiBzd2FnZ2VyL3N3YWdnZXIuanNvbgpgYGAKCiMjIyBTa2lwVmFsaWRhdGlvbgoKIyMjIyBob3N0CgpJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGltbWVkaWF0ZWx5IGRlc2NyaWJlIGVhY2ggaG9zdCBpbiBkZXRhaWwsIHlvdSBjYW4gb25seSBzcGVjaWZ5IGl0cyBuYW1lIGFuZCBza2lwIGl0IHVudGlsIHlvdSBhcmUgcmVhZHkgdG8gZG9jdW1lbnRlZCBpdAoKYGBgeWFtbApTa2lwVmFsaWRhdGlvbjoKICAtIGhvc3Q6IGFwaS5jbHVzdGVyLmR5dGUuaW4KYGBgCgojIyMjIHByZWZpeAoKSWYgeW91IHdhbnQgdG8gc2tpcCBhIHNwZWNpZmljIHByZWZpeCBpbiB0aGUgaG9zdAoKYGBgeWFtbApTa2lwVmFsaWRhdGlvbjoKICAtIGhvc3Q6IGFwaS5jbHVzdGVyLmR5dGUuaW4KICAgIHByZWZpeDogL2FkbWluL2FwaQpgYGAKCiMjIyMgbWV0aG9kIGFuZCBwYXRoCgpJZiB5b3Ugd2FudCB0byBza2lwIGEgc3BlY2lmaWMgcmVxdWVzdCBpbiB0aGUgaG9zdAoKYGBgeWFtbApTa2lwVmFsaWRhdGlvbjoKICAtIGhvc3Q6IGFwaS5jbHVzdGVyLmR5dGUuaW4KICAgIG1ldGhvZDogR0VUCiAgICBwYXRoOiAvYXBpL3YxL2NhcnMKYGBgCgojIyMgTm9Db3YKCkl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gaW1tZWRpYXRlbHkgdGVzdCBlYWNoIGRvYyBpbiBkZXRhaWwsIHlvdSBjYW4gb25seSBzcGVjaWZ5IGl0cyBuYW1lIGFuZCBza2lwIGl0IHVudGlsIHlvdSBhcmUgcmVhZHkgdG8gdGVzdCBpdAoKIyMjIyBob3N0CmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdApgYGAKCiMjIyMgbWV0aG9kCmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKYGBgCgojIyMjIHBhdGgKYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CmBgYAoKIyMjIyBjb2RlCmBgYHlhbWwKTm9Db3Y6CiAgLSBob3N0OiBzc28udGVzdAogICAgbWV0aG9kOiBHRVQKICAgIHBhdGg6IC91c2Vycy97dXNlcklkfQogICAgY29kZTogMjAwCmBgYAoKIyMjIyBjb250ZW50LXR5cGUKYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgpgYGAKCiMjIyMgY29tYmluYXRpb24KYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgogICAgY29tYmluYXRpb246IG9uZU9mLjAKYGBgCgojIyMjIGNvbWJpbmF0aW9uX25leHQKYGBgeWFtbApOb0NvdjoKICAtIGhvc3Q6IHNzby50ZXN0CiAgICBtZXRob2Q6IEdFVAogICAgcGF0aDogL3VzZXJzL3t1c2VySWR9CiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgogICAgY29tYmluYXRpb246IG9uZU9mLjAKICAgIGNvbWJpbmF0aW9uX25leHQ6IG9uZU9mLjAucmVxdWlyZWQudXNlcnMKYGBgCgojIyMgRGVidWcKCklmIHlvdSBmaW5kIGJ1ZywgeW91IGNhbiBkZWJ1ZyBpdCBvciBjcmVhdGUgdGFzayBpbiB0aGlzIGdpdGh1YiBwcm9qZWN0ICB3aXRoIG5ldyBmaWxlIGBjb3ZlcmFnZS9maXR0aW5nLmRlYnVnLnltbGAKCmBgYHlhbWwKRGVidWc6CiAgLSBob3N0OiB3d3cuZXhhbXBsZS5jb20KICAgIG1ldGhvZDogR0VUCiAgICBwYXRoOiAvYXBpL3YzL3VzZXJzCiAgICBjb2RlOiAyMDAKICAgIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbgpgYGAKCiMjIENvbnRyaWJ1dGluZwoKQnVnIHJlcG9ydHMgYW5kIHB1bGwgcmVxdWVzdHMgYXJlIHdlbGNvbWUgb24gR2l0SHViIGF0IFtnaXRodWIuY29tL2Z1bmJveC9maXR0aW5nXShodHRwczovL2dpdGh1Yi5jb20vZnVuYm94L2ZpdHRpbmcpLgpUaGlzIHByb2plY3QgaXMgaW50ZW5kZWQgdG8gYmUgYSBzYWZlLCB3ZWxjb21pbmcgc3BhY2UgZm9yIGNvbGxhYm9yYXRpb24sIGFuZCBjb250cmlidXRvcnMgYXJlIGV4cGVjdGVkIHRvIGFkaGVyZSB0byB0aGUgW0NvbnRyaWJ1dG9yIENvdmVuYW50XShodHRwOi8vY29udHJpYnV0b3ItY292ZW5hbnQub3JnKSBjb2RlIG9mIGNvbmR1Y3QuCgojIyBMaWNlbnNlCgpUaGUgZ2VtIGlzIGF2YWlsYWJsZSBhcyBvcGVuIHNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFtNSVQgTGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuCgpbIVtTcG9uc29yZWQgYnkgRnVuQm94XShodHRwczovL2Z1bmJveC5ydS9iYWRnZXMvc3BvbnNvcmVkX2J5X2Z1bmJveF9jZW50ZXJlZC5zdmcpXShodHRwczovL2Z1bmJveC5ydSkK readmeEtag: '"14f5079a6ca2e159943ae83eaa2999a55977d34a"' readmeLastModified: Mon, 17 Apr 2023 17:59:53 GMT repositoryId: 701451219 description: >- Library add improve test log for RSpec and WebMock, validate its according to API Blueprint and Open API, show the documentation coverage with log. created: '2023-10-06T16:56:37Z' updated: '2024-04-01T18:31:52Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: funbox logo: https://avatars.githubusercontent.com/u/1439359?v=4 license: MIT repoEtag: '"fc792ce4ed1836374c7c53a323534093c1b19e9a6f342d174446829535d9c9d8"' repoLastModified: Mon, 01 Apr 2024 18:31:52 GMT foundInMaster: true category: - Testing - Data Validators - Learning id: 9aafc5713bc07ef13ec4f56258385ca1 name: Fitting language: Ruby link: https://github.com/funbox/fitting source_description: >- Library add improve test log for RSpec and WebMock, validate its according to API Blueprint and Open API, show the documentation coverage with log. v2: true v3_1: true - source: openapi3 tags repository: https://github.com/funbox/tomograph v3: true repositoryMetadata: base64Readme: >- IyBUb21vZ3JhcGggCgpDb252ZXJ0IEFQSSBCbHVlcHJpbnQsIFN3YWdnZXIgYW5kIE9wZW5BUEkgdG8gbWluaW1hbCByb3V0ZXMgd2l0aCBKU09OIFNjaGVtYS4gRm9yIGVhc2Ugb2YgdXNlIGFuZCBjcmVhdGlvbiBvZiBuZXcgdG9vbHMuCgpXaWxsIGxvb2sgbGlrZQoKICBgYGBqc29uCiAgWwogICAgewogICAgICAicGF0aCI6ICIvc2Vzc2lvbnMiLAogICAgICAibWV0aG9kIjogIlBPU1QiLAogICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAicmVxdWVzdHMiOiBbewogICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICJsb2dpbiI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJwYXNzd29yZCI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAibG9naW4iLAogICAgICAgICAgInBhc3N3b3JkIgogICAgICAgIF0KICAgICAgfV0sCiAgICAgICJyZXNwb25zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgInN0YXR1cyI6ICI0MDEiLAogICAgICAgICAgImNvbnRlbnQtdHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICJib2R5Ijoge30KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJzdGF0dXMiOiAiNDI5IiwKICAgICAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAiYm9keSI6IHt9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAic3RhdHVzIjogIjIwMSIsCiAgICAgICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgImJvZHkiOiB7CiAgICAgICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICJjb25maXJtYXRpb24iOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICJpZCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgImNhcHRjaGFfZG9lc19ub3RfbWF0Y2giOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXQogICAgfQogIF0KICBgYGAKCiMjIEluc3RhbGxhdGlvbgoKVGhlbiBhZGQgdGhpcyBsaW5lIHRvIHlvdXIgYXBwbGljYXRpb24ncyBHZW1maWxlOgoKYGBgcnVieQpnZW0gJ3RvbW9ncmFwaCcKYGBgCgpBZnRlciB0aGF0IGV4ZWN1dGU6CgpgYGBiYXNoCiQgYnVuZGxlCmBgYAoKT3IgaW5zdGFsbCB0aGUgZ2VtIGJ5IHlvdXJzZWxmOgoKYGBgYmFzaAokIGdlbSBpbnN0YWxsIHRvbW9ncmFwaApgYGAKCiMjIFVzYWdlCgojIyMgSW4gY29kZQoKIyMjIyBPcGVuQVBJIDIuMAoKQWxzbyBTd2FnZ2VyCgpgYGBydWJ5CnJlcXVpcmUgJ3RvbW9ncmFwaCcKCnRvbW9ncmFtID0gVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcob3BlbmFwaTJfanNvbl9wYXRoOiAnL3BhdGgvdG8vZG9jLmpzb24nKQpgYGAKCiMjIyMgT3BlbkFQSSAzLjAKCkFsc28gT3BlbkFQSQoKYGBgcnVieQpyZXF1aXJlICd0b21vZ3JhcGgnCgp0b21vZ3JhbSA9IFRvbW9ncmFwaDo6VG9tb2dyYW0ubmV3KG9wZW5hcGkzX3lhbWxfcGF0aDogJy9wYXRoL3RvL2RvYy55YW1sJykKYGBgCgojIyMjIEFQSSBCbHVlcHJpbnQKCkZpcnN0IHlvdSBuZWVkIHRvIGluc3RhbGwgW2RyYWZ0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlhcnlpby9kcmFmdGVyKS4KV29ya3MgYWZ0ZXIgY29udmVyc2lvbiBmcm9tIEFQSSBCbHVlcHJpbnQgdG8gQVBJIEVsZW1lbnRzIChpbiBZQU1MIGZpbGUpIHdpdGggRHJhZnRlci4KClRoYXQgaXMsIEkgbWVhbiB0aGF0IHlvdSBmaXJzdCBuZWVkIHRvIGRvIHRoaXMKCmBgYGJhc2gKZHJhZnRlciBkb2MuYXBpYiAtbyBkb2MueWFtbApgYGAKCmFuZCB0aGVuCgpgYGBydWJ5CnJlcXVpcmUgJ3RvbW9ncmFwaCcKCnRvbW9ncmFtID0gVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcoZHJhZnRlcl95YW1sX3BhdGg6ICcvcGF0aC90by9kb2MueWFtbCcpCmBgYAoKIyMjIyBUb21vZ3JhcGgKClRvIHVzZSBhZGRpdGlvbmFsIGZlYXR1cmVzIG9mIHRoZSBwcmUtY29udmVydGVkCgpgYGBydWJ5CnJlcXVpcmUgJ3RvbW9ncmFwaCcKCnRvbW9ncmFtID0gVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcodG9tb2dyYW1fanNvbl9wYXRoOiAnL3BhdGgvdG8vZG9jLmpzb24nKQpgYGAKCiMjIyMgcHJlZml4CkRlZmF1bHQ6IGAnJ2AKCllvdSBjYW4gc3BlY2lmeSBBUEkgcHJlZml4IGFuZCBwYXRoIHRvIHRoZSBzcGVjIHVzaW5nIG9uZSBvZiB0aGUgcG9zc2libGUgZm9ybWF0czoKCmBgYHJ1YnkKVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcocHJlZml4OiAnL2FwaS92MicsIGRyYWZ0ZXJfeWFtbF9wYXRoOiAnL3BhdGgvdG8vZG9jLnlhbWwnKQpgYGAKCmBgYHJ1YnkKVG9tb2dyYXBoOjpUb21vZ3JhbS5uZXcocHJlZml4OiAnL2FwaS92MicsIHRvbW9ncmFtX2pzb25fcGF0aDogJy9wYXRoL3RvL2RvYy5qc29uJykKYGBgCgojIyMjIHRvX2pzb24KVXNlIGB0b19qc29uYCBmb3IgY29udmVydGluZyB0byBKU09OLCBleGFtcGxlIGZyb20gQVBJIEJsdWVwcmludDoKCmBgYHJ1YnkKdG9tb2dyYW0udG9fanNvbgpgYGAKCjxkZXRhaWxzPgogIDxzdW1tYXJ5PkV4YW1wbGUgaW5wdXQ8L3N1bW1hcnk+CgogIGBgYGFwaWIKICBGT1JNQVQ6IDFBCiAgSE9TVDogaHR0cDovL3Rlc3QubG9jYWwKICAKICAjIHByb2plY3QKICAKICAjIEdyb3VwIHByb2plY3QKICAKICBQcm9qZWN0CiAgCiAgIyMgQXV0aGVudGljYXRpb24gWy9zZXNzaW9uc10KICAKICAjIyMgU2lnbiBJbiBbUE9TVF0KICAKICArIFJlcXVlc3QgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgICAgICsgQXR0cmlidXRlcwogICAgICAgKyBsb2dpbiAoc3RyaW5nLCByZXF1aXJlZCkKICAgICAgICsgcGFzc3dvcmQgKHN0cmluZywgcmVxdWlyZWQpCiAgICAgICArIGNhcHRjaGEgKHN0cmluZywgb3B0aW9uYWwpCiAgCiAgKyBSZXNwb25zZSA0MDEgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgKyBSZXNwb25zZSA0MjkgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgKyBSZXNwb25zZSAyMDEgKGFwcGxpY2F0aW9uL2pzb24pCiAgCiAgICAgICsgQXR0cmlidXRlcwogICAgICAgKyBjb25maXJtYXRpb24gKENvbmZpcm1hdGlvbiwgb3B0aW9uYWwpCiAgICAgICArIGNhcHRjaGEgKHN0cmluZywgb3B0aW9uYWwpCiAgICAgICArIGNhcHRjaGFfZG9lc19ub3RfbWF0Y2ggKGJvb2xlYW4sIG9wdGlvbmFsKQogIAogIAogICMgRGF0YSBTdHJ1Y3R1cmVzCiAgCiAgIyMgQ29uZmlybWF0aW9uIChvYmplY3QpCiAgICArIGlkIChzdHJpbmcsIHJlcXVpcmVkKQogICAgKyB0eXBlIChzdHJpbmcsIHJlcXVpcmVkKQogICAgKyBvcGVyYXRpb24gKHN0cmluZywgcmVxdWlyZWQpCiAgYGBgCjwvZGV0YWlscz4KCjxkZXRhaWxzPgogIDxzdW1tYXJ5PkV4YW1wbGUgb3V0cHV0PC9zdW1tYXJ5PgoKICBgYGBqc29uCiAgWwogICAgewogICAgICAicGF0aCI6ICIvc2Vzc2lvbnMiLAogICAgICAibWV0aG9kIjogIlBPU1QiLAogICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAicmVxdWVzdHMiOiBbewogICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICJsb2dpbiI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJwYXNzd29yZCI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAibG9naW4iLAogICAgICAgICAgInBhc3N3b3JkIgogICAgICAgIF0KICAgICAgfV0sCiAgICAgICJyZXNwb25zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgInN0YXR1cyI6ICI0MDEiLAogICAgICAgICAgImNvbnRlbnQtdHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICJib2R5Ijoge30KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJzdGF0dXMiOiAiNDI5IiwKICAgICAgICAgICJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAiYm9keSI6IHt9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAic3RhdHVzIjogIjIwMSIsCiAgICAgICAgICAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgImJvZHkiOiB7CiAgICAgICAgICAgICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICJjb25maXJtYXRpb24iOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICJpZCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiwKICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJjYXB0Y2hhIjogewogICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgImNhcHRjaGFfZG9lc19ub3RfbWF0Y2giOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXQogICAgfQogIF0KICBgYGAKPC9kZXRhaWxzPiAKCiMjIyMgdG9fYQpgYGBydWJ5CnRvbW9ncmFtLnRvX2EKYGBgCgojIyMjIGZpbmRfcmVxdWVzdApgYGBydWJ5CnJlcXVlc3QgPSB0b21vZ3JhbS5maW5kX3JlcXVlc3QobWV0aG9kOiAnR0VUJywgcGF0aDogJy9zdGF0dXMvMT9xd2U9cnR5JykKYGBgCgojIyMjIGZpbmRfcmVxdWVzdF93aXRoX2NvbnRlbnRfdHlwZQpgYGBydWJ5CnJlcXVlc3QgPSB0b21vZ3JhbS5maW5kX3JlcXVlc3Rfd2l0aF9jb250ZW50X3R5cGUobWV0aG9kOiAnR0VUJywgcGF0aDogJy9zdGF0dXMvMT9xd2U9cnR5JywgY29udGVudF90eXBlOiAnYXBwbGljYXRpb24vanNvbicpCmBgYAoKIyMjIyBgZmluZF9yZXNwb25zZXNgCmBgYHJ1YnkKcmVzcG9uc2VzID0gcmVxdWVzdC5maW5kX3Jlc3BvbnNlcyhzdGF0dXM6ICcyMDAnKQpgYGAKCiMjIyMgcHJlZml4X21hdGNoPwpUaGlzIG1heSBiZSB1c2VmdWwgaWYgeW91IHNwZWNpZnkgYSBwcmVmaXguCgpgYGBydWJ5CnRvbW9ncmFtLnByZWZpeF9tYXRjaD8oJ2h0dHA6Ly9sb2NhbC9hcGkvdjIvdXNlcnMnKQpgYGAKCiMjIyMgdG9fcmVzb3VyY2VzCk1hcHMgcmVzb3VyY2VzIGZvciBBUEkgQmx1ZXByaW50IHdpdGggcG9zc2libGUgcmVxdWVzdHMuCgpFeGFtcGxlIG91dHB1dDoKCmBgYHJ1YnkKewogICcvc2Vzc2lvbnMnID0+IFsnUE9TVCAvc2Vzc2lvbnMnXQp9CmBgYAoKIyMjIENvbW1hbmQgbGluZSB0b29sCgpDTEkgYWxsb3dzIHlvdSB0byBjb252ZXJ0IGZpbGVzIGZyb20gQVBJIEJsdWVwcmludCAoQVBJIEVsZW1lbnRzKSwgU3dhZ2dlciBhbmQgT3BlbkFQSSB0byBKU09OIFNjaGVtYS4KClJ1biBDTEkgd2l0aCBgLWhgIHRvIGdldCBkZXRhaWxlZCBoZWxwOgoKYGBgYmFzaAp0b21vZ3JhcGggLWgKYGBgCgpUbyBzcGVjaWZ5IHRoZSBoYW5kbGVyIHZlcnNpb24gdXNlIHRoZSBgLWRgIGZsYWc6CgojIyMjIE9wZW5BUEkgMi4wCmBgYGJhc2gKdG9tb2dyYXBoIC1kIG9wZW5hcGkyIG9wZW5hcGkyLmpzb24gdG9tb2dyYW0uanNvbgpgYGAKCiMjIyMgT3BlbkFQSSAzLjAKYGBgYmFzaAp0b21vZ3JhcGggLWQgb3BlbmFwaTMgb3BlbmFwaTMueWFtbCBkb2MuanNvbgpgYGAKCiMjIyMgQVBJIEJsdWVwcmludApgYGBiYXNoCnRvbW9ncmFwaCAtZCA0IGFwaWVsZW1ldG5zLnlhbWwgZG9jLmpzb24KYGBgCgojIyMjIGV4Y2x1ZGUtZGVzY3JpcHRpb24KCkV4Y2x1ZGUgImRlc2NyaXB0aW9uIiBrZXlzIGZyb20ganNvbi1zY2hlbWFzLgoKYGBgYmFzaAp0b21vZ3JhcGggLWQgNCBhcGllbGVtZXRucy55YW1sIGRvYy5qc29uIC0tZXhjbHVkZS1kZXNjcmlwdGlvbgpgYGAKCiMjIyMgc3BsaXQKClNwbGl0IG91dHB1dCBpbnRvIGZpbGVzIGJ5IG1ldGhvZC4gT3V0cHV0IGluIGRpciBwYXRoLgoKYGBgYmFzaAp0b21vZ3JhcGggLWQgNCAtLXNwbGl0IGFwaWVsZW1ldG5zLnlhbWwganNvbnMvCmBgYAoKIyMgTGljZW5zZQoKVGhlIGdlbSBpcyBhdmFpbGFibGUgYXMgb3BlbiBzb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBbTUlUIExpY2Vuc2VdKGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLgoKWyFbU3BvbnNvcmVkIGJ5IEZ1bkJveF0oaHR0cHM6Ly9mdW5ib3gucnUvYmFkZ2VzL3Nwb25zb3JlZF9ieV9mdW5ib3hfY2VudGVyZWQuc3ZnKV0oaHR0cHM6Ly9mdW5ib3gucnUpCg== readmeEtag: '"f17fc04aab49a8f7b4ad80f0907855c95335b068"' readmeLastModified: Thu, 02 Feb 2023 13:12:37 GMT repositoryId: 701451827 description: >- Convert API Blueprint, Swagger and OpenAPI to JSON Schema and search through it created: '2023-10-06T16:58:26Z' updated: '2024-04-01T18:36:44Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: funbox logo: https://avatars.githubusercontent.com/u/1439359?v=4 license: MIT repoEtag: '"e67af76bfa69eaad65420571dbb798ad90126b43015decd54d77b8756f071a7a"' repoLastModified: Mon, 01 Apr 2024 18:36:44 GMT foundInMaster: true category: Parsers id: 99ad4f595f72485cba5a861dd6812743 - source: openapi3 tags repository: https://github.com/zimmj/simple-user-service v3: true id: 0c3e0d5c0877b9f25539f349454ccc4a repositoryMetadata: base64Readme: >- IyBTaW1wbGUgVXNlciBzZXJ2aWNlCgpUaGlzIGlzIGEgZXhhbXBsZSBwcm9qZWN0IG9mIGFuIHNpbXBsZSB1c2VyIHNlcnZpY2UuCkEgdXNlciBoYXMgZm9sbG93aW5nIGZpZWxkcy4KCmBgYHltbAp1c2VyOgogIGlkOiB1dWlkCiAgbmFtZTogc3RyaW5nCiAgZW1haWw6IHN0cmluZwogIHBhc3N3b3JkOiBzdHJpbmcKYGBgCgpBcyBpdCBhIHNpbXBsZSBzaG93IG9mIGNvbmNlcHQgcHJvamVjdCwgdGhlIHBhc3N3b3JkIGFyZSBzYXZlZCBpbiBwbGFpbiB0ZXh0LgoKVGhlIHNlcnZpY2UgY29uc2lzdCBvZiB0aHJlZSBsYXllcnM6CgotIGNvbnRyb2xsZXJzCi0gc2VydmljZXMKLSBkYXRhIGxheWVyCgpUaGlzIHNlcnZpY2UgaXMgd3JpdHRlbiBpbiB0eXBlLXNjcmlwdC4KSXQgdXNlcyBleHByZXNzIGZvciBpdCdzIHNlcnZlciBmdW5jdGlvbmFsaXR5LgoKVGhlIFtvcGVuLWFwaSB5YW1sIGRlZmluaXRpb25dKC4vY29uZmlnL29wZW5hcGkueW1sKSBpcyB1c2VkIGFzIG1haW4gY29udHJhY3QuCkFsbCB0aGUgZGVmaW5lZCBlbmRwb2ludHMgYXJlIGxpbmtlZCB0byB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBpbiB0aGUgY29udHJvbGxlciBsYXllciBieSB0aGUgcGFja2FnZTogc3dhZ2dlci1yb3V0ZXMtZXhwcmVzcy4KVGhlIHJvdXRlcyBhcmUgbWF0Y2hlZCB2aWEgdGhlIGRlZmluZWQgb3BlcmF0aW9uIElkJ3MuCgpWYWxpZGF0aW9uIG9mIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBpcyBtYWRlIHdpdGggdGhlIHBhY2thZ2U6IGV4cHJlc3Mtb3BlbmFwaS12YWxpZGF0b3IuClRoaXMgYXV0b21hdGljYWxseSB2YWxpZGF0ZXMgYWxsIGRhdGEgY29taW5nIGluIGFuZCBnb2luZyBmb3IgdGhlcmUgY29ycmVjdG5lc3MgYXMgZGVzY3JpYmVkIGluIHRoZSBvcGVuLWFwaSB5YW1sLgoKV2l0aCB0aGlzLCBJIGNhbiBndWFyYW50ZWUsIHRoYXQgdGhpcyBjb250cmFjdCBpcyBjb3JyZWN0bHkgaW1wbGVtZW50ZWQgYW5kIG90aGVyIGRldmVsb3BlciBjYW4gdXNlIHRoaXMgeWFtbCB0byBnZW5lcmF0ZSB0aGUgY2xpZW50LgoKSW4gdGhlIGRhdGEgbGF5ZXIsIEkgdXNlIGRyaXp6bGUgYXMgT01SIHRvIGNvbm5lY3QgdG8gdGhlIHBvc3RncmVzIGRhdGFiYXNlLgpJdCdzIGEgZnVsbCBmbGV0Y2hlZCBPTVIgd2l0aCBtaWdyYXRpb24gYW5kIGFsbG93cyB0eXBlIHNhZmUgcXVlcmllcy4KCiMjIFJ1biB3aXRoIGRvY2tlcgoKVGhpcyByZXBvc2l0b3J5IGlzIGRvY2tlcml6ZWQsIHRoZXJlZm9yZSBjYW4gYmUgYnVpbGQgYW5kIHJ1biB3aXRoIGFueSBjb250YWluZXIgdG9vbHMuCgpBcyB0aGVyZSBpcyBhIHdvcmtpbmcgY29tcG9zZSBmaWxlLCB0aGUgc2ltcGxlc3QgaXMgdG8gcnVuIGRvY2tlci1jb21wb3NlIHVwIGluIHRoZSByb290IGRpcmVjdG9yeS4KSXQgd2lsbCBidWlsZCB0aGUgZG9ja2VyIGNvbnRhaW5lciBhbmQgcnVuIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGEgcG9zdGdyZXMgc2VydmVyIGF0dGFjaGVkIHRvIGl0LgoKVGhlIHBvc3RncmVzIGRhdGFiYXNlIGlzIGluaXRpYWxpemVkIHdpdGggdGhlIFtpbml0LnNxbF0oLi9kb2NrZXIvaW5pdC5zcWwpLgpUaGUgY29udGVudCBvZiBpdCBpcyB0aGUgbWlncmF0aW9uIG9mIGRyaXp6bGUKClRoZSB1c2VyIHNlcnZpY2UgaXMgZXhwb3NlZCBvbiB0aGUgcG9ydDogMzAwMC4KCkEgZ29vZCBlbnRyeSBwb2ludCBpcyB0aGUgW3N3YWdnZXIgdWldKGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9zd2FnZ2VyKSBhcyB5b3UgY2FuIHVzZSBpdCwgdG8gY2FsbCB0aGUgZGlmZmVyZW50IGVuZHBvaW50cy4KClRvIHJ1biBzZXJ2aWNlIHJ1biBkb2NrZXIgY29tcG9zZSB1cCBpbiB0aGUgcm9vdCBkaXJlY3Rvcnk6CgpgYGBiYXNoCmRvY2tlciBjb21wb3NlIHVwCmBgYAoKQW5vdGhlciBvcHRpb24gdG8gY2FsbCB0aGUgc2VydmljZSBpcyB0byB1c2UgdGhlIHByb3ZpZGVkIFtwb3N0bWFuIGNvbGxlY3Rpb25dKC4vY29udGVudC9zaW1wbGUtdXNlci1zZXJ2aWNlLnBvc3RtYW5fY29sbGVjdGlvbi5qc29uKS4KClRoZSBmbG93IG9mIHRoZSBzZXJ2aWNlIGlzIGFzIGZvbGxvd3MuCgoxLiBDcmVhdGUgYSB1c2VyCjIuIFNpZ24gaW4gd2l0aCB0aGUgdXNlciAtPiBnZXQgSldUIHRva2VuCgpXaXRoIHRoZSBKV1QgdG9rZW4geW91IGNhbjoKCjEuIExpc3QgYWxsIHVzZXJzCjIuIERpc3BsYXkgYSB1c2VyCjMuIE1vZGlmeSB5b3VyIHVzZXIKNC4gRGVsZXRlIHlvdXIgdXNlcgoKIyMgUnVuIGl0IGxvY2FsbHkKClRvIHJ1biB0aGlzIHNlcnZpY2UgbG9jYWxseSBhIHBvc3RncmVzIGRiIG5lZWQgdG8gcnVuLgpUaGUgZGF0YWJhc2UgY29ubmVjdGlvbiBuZWVkIHRvIGJlIGdpdmVuIGluIHRoZSBmaWxlOiBbLmVudi5kZXZdKC4vY29uZmlnLy5lbnYuZGV2KS4KUHJvdmlkZSBhcyB3ZWxsIHRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSB3aGljaCBzaG91bGQgYmUgdXNlZC4KCmBgYHlhbWwKREJfSE9TVD1sb2NhbGhvc3QKREJfUE9SVD01NDMyCkRCX1VTRVI9cG9zdGdyZXMKREJfUEFTU1dPUkQ9cm9vdApEQVRBQkFTRV9OQU1FPXNpbXBsZV91c2VyX3NlcnZpY2UKYGBgCgpCZWZvcmUgcnVubmluZyB0aGUgYXBwbGljYXRpb24sIHRoZSBtaWdyYXRpb24gbmVlZCB0byBiZSBydW4uCgpgYGBiYXNoCnlhcm4gcnVuOm1pZ3JhdGlvbgpgYGAKClRoaXMgY3JlYXRlcyB0aGUgbmVlZGVkIHRhYmxlcyBpbiB0aGUgZGF0YWJhc2UgYW5kIHRoZSBzZXJ2aWNlIGNhbiBiZSBzdGFydGVkLgoKVG8gcnVuIHRoZSBhcHBsaWNhdGlvbiBpbiBkZXZlbG9wZXIgbW9kZToKCmBgYGJhc2gKeWFybiBkZXYKYGBgCg== readmeEtag: '"fc150277921030e0cac3fbafaba5d42961f90dfc"' readmeLastModified: Mon, 07 Aug 2023 19:09:30 GMT repositoryId: 675108094 description: A simple user service, which saves password in plain text!. created: '2023-08-05T20:01:16Z' updated: '2023-09-29T06:55:32Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: zimmj logo: https://avatars.githubusercontent.com/u/33086958?v=4 repoEtag: '"c4afad01091d4f19a8dbbabdc9db1a9e69b9ec1259afbad7ea8907fb481f0c96"' repoLastModified: Fri, 29 Sep 2023 06:55:32 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/marszm/shop_backend v3: true id: dcaf755047af73489f9cf0040b0b4c86 repositoryMetadata: base64Readme: >- IyBTaW1wbGUgYmFja2VuZCBzZXJ2aWNlIGZvciBzaG9wIGFwcGxpY2F0aW9uIHdpdGggIENSVUQgb3BlcmF0aW9ucyB3cml0dGVuIGluIEphdmEgMTcsIFNwcmluZyBCb290IDMgYW5kIFNwcmluZyA2IGZyYW1ld29yayBjb25uZWN0ZWQgdG8gTXlTUUwgZGF0YWJhc2UuCiMgRG9jdW1lbnRhdGlvbiBlbmRwb2ludDogaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkvaW5kZXguaHRtbCM= readmeEtag: '"bbe36b0b63ba4b4d13c57648fe40cdcfd375e933"' readmeLastModified: Tue, 17 Jan 2023 20:09:02 GMT repositoryId: 571245518 description: >- Simple backend service for shop application with CRUD operations written in Java 17, Spring Boot 3 and Spring 6 framework connected to MySQL database. created: '2022-11-27T16:19:23Z' updated: '2023-01-10T20:31:56Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: marszm logo: https://avatars.githubusercontent.com/u/23463955?v=4 repoEtag: '"0944717cd8be2438ad0c64d4b5b11bd3f5cda4f277d758ace163e519c1c6a01e"' repoLastModified: Tue, 10 Jan 2023 20:31:56 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/abdullah2993/textsynth-openapi-v3-spec v3: true id: 5fc54a5ed241302e5a8fa86292f6e6f2 repositoryMetadata: base64Readme: >- IyB0ZXh0c3ludGgtb3BlbmFwaS12My1zcGVjCk9wZW5BUEkgVjMgU3BlY2lmaWNhdGlvbiBmb3IgaHR0cHM6Ly90ZXh0c3ludGguY29tCgpUaGlzIHJlcG9zaXRvcnkgaXMgYSBbdGVtcGxhdGUsIHlvdSBjYW4gY3JlYXRlIHlvdXIgcmVwbyBmcm9tIHRoaXMgdG8gZ2VuZXJhdGUgY2xpZW50cyBdKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL3JlcG9zaXRvcmllcy9jcmVhdGluZy1hbmQtbWFuYWdpbmctcmVwb3NpdG9yaWVzL2NyZWF0aW5nLWEtcmVwb3NpdG9yeS1mcm9tLWEtdGVtcGxhdGUpCg== readmeEtag: '"db53e9b69acda1e1dff3a60bfa996aef3a41855c"' readmeLastModified: Sat, 22 Apr 2023 00:30:46 GMT repositoryId: 631104713 description: OpenAPI V3 Specification for https://textsynth.com created: '2023-04-22T00:22:49Z' updated: '2023-04-22T00:24:01Z' language: null archived: false stars: 0 watchers: 1 forks: 0 owner: abdullah2993 logo: https://avatars.githubusercontent.com/u/5978905?v=4 license: MIT repoEtag: '"0c4e1b853a2fa1813b78f47d7e2bed3fe0c6300894f91cd0bb8c5a8994356467"' repoLastModified: Sat, 22 Apr 2023 00:24:01 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/martinmohammed/ibm-jwt-authorization v3: true id: 21ac79419d51d41dce23dee19447e764 repositoryMetadata: base64Readme: >- WyFbQ2hlY2tzXShodHRwczovL2dpdGh1Yi5jb20vYm9keS1jdWx0dXJlL2p3dC1hdXRob3JpemF0aW9uL2FjdGlvbnMvd29ya2Zsb3dzL2NoZWNrcy55YW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9ib2R5LWN1bHR1cmUvand0LWF1dGhvcml6YXRpb24vYWN0aW9ucy93b3JrZmxvd3MvY2hlY2tzLnlhbWwpCgojIEZpdG5lc3MgQXBwIFN1aXRlCgpXZWxjb21lIHRvIHRoZSBGaXRuZXNzIEFwcCBTdWl0ZSwgYSBjb2xsZWN0aW9uIG9mIGFwcGxpY2F0aW9ucyBkZXZlbG9wZWQgZHVyaW5nIG15IGludGVybnNoaXAgYXQgSUJNIGluIGNvbGxhYm9yYXRpb24gd2l0aCB0aGUgQm9keSBDdWx0dXJlIEdyb3VwIGluIERhcm1zdGFkdC4gVGhpcyBzdWl0ZSBpbmNsdWRlcyB0aGUgR3ltIE9jY3VwYW5jeSBUcmFja2VyLCBhIFN2ZWx0ZSBGcm9udGVuZCBEYXNoYm9hcmQsIGEgV2ViaG9vayBBUEkgU2VydmVyLCBhbiBBdXRob3JpemF0aW9uIFNlcnZlciB3aXRoIEpXVCwgYW5kIHRoZSBzdWNjZXNzZnVsIFdoYXRzQXBwIE1pZGRsZXdhcmUgbnBtIHBhY2thZ2UuCgojIyBPdmVydmlldwoKRHVyaW5nIG15IGludGVybnNoaXAgYXQgSUJNLCBJIHRvb2sgb24gdGhlIHJvbGUgb2YgUHJvZHVjdCBPd25lciBmb3IgYSBwcm9qZWN0IGluIGNvbGxhYm9yYXRpb24gd2l0aCB0aGUgQm9keSBDdWx0dXJlIEdyb3VwIGluIERhcm1zdGFkdC4gQm9keSBDdWx0dXJlIGlzIGEgcHJvbWluZW50IHBsYXllciBpbiB0aGUgZml0bmVzcyBpbmR1c3RyeSB3aXRoIG92ZXIgMzAwIGVtcGxveWVlcyBpbiBIZXNzZW4gYW5kIG11bHRpcGxlIHN1Yi1icmFuZHMsIGRvbWluYXRpbmcgdGhlIG1hcmtldCBpbiB0aGUgUmhpbmUtTWFpbiBBcmVhLgoKQXMgcGFydCBvZiBteSByZXNwb25zaWJpbGl0aWVzLCBJIGxlZCB0aGUgZGVzaWduIG9mIGEgY29tcHJlaGVuc2l2ZSBBV1MgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUuIFRoaXMgaW52b2x2ZWQgdmFyaW91cyB0YXNrcyBzdWNoIGFzIG5ldHdvcmtpbmcgd2l0aCBWUENzIGFuZCBpbXBsZW1lbnRpbmcgZXNzZW50aWFsIHNlcnZpY2VzIGxpa2UgQVBJIEdhdGV3YXkgYW5kIER5bmFtb0RCLiBUbyBhY2hpZXZlIHJhcGlkIGFuZCBlZmZpY2llbnQgY2xvdWQgaW5mcmFzdHJ1Y3R1cmUgZGVwbG95bWVudCBhbmQgdXBkYXRlcywgSSB1dGlsaXplZCB0aGUgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0IGFzIGFuIEluZnJhc3RydWN0dXJlIGFzIENvZGUgdGVjaG5vbG9neS4KClRoZSBwcmltYXJ5IGZvY3VzIG9mIHRoZSBwcm9qZWN0IHdhcyB0byBpbnRlZ3JhdGUgYSBjdXN0b20gV2hhdHNBcHAgQ2hhdGJvdCB1c2luZyB0aGUgTWV0YSBXaGF0c0FwcCBDbG91ZCBBUEkuIFRvIGFjY29tcGxpc2ggdGhpcywgSSBkZXZlbG9wZWQgYSBmdWxseSBmdW5jdGlvbmFsIFdoYXRzQXBwIERhc2hib2FyZCB1c2luZyBTdmVsdGUsIGEgaGlnaC1zcGVlZCBKYXZhU2NyaXB0IEZyYW1ld29yay4gRm9yIHRoZSBiYWNrZW5kLCBJIGVtcGxveWVkIFJFU1QgQVBJIGFuZCBXZWJTb2NrZXRzIGZvciByZWFsLXRpbWUgbWVzc2FnZSBjb21tdW5pY2F0aW9uLiBTZWN1cml0eSB3YXMgYSBjcnVjaWFsIGFzcGVjdCwgYW5kIEkgZW5zdXJlZCByb2J1c3QgcHJvdGVjdGlvbiBieSBpbXBsZW1lbnRpbmcgSldUIGF1dGhlbnRpY2F0aW9uIGFuZCBsZXZlcmFnaW5nIEFXUyBDb2duaXRvIHNlcnZpY2UgdG8gc2FmZWd1YXJkIHRoZSBBUEkgR2F0ZXdheS4KClRoZSBzdWNjZXNzIG9mIHRoZSBXaGF0c0FwcCBDaGF0Ym90IHdhcyBpbXByZXNzaXZlLCBhcyBpdCBnYXJuZXJlZCB3aWRlc3ByZWFkIGludGVyZXN0IGFuZCBhY2hpZXZlZCBvdmVyIDQwMDAgd2Vla2x5IGRvd25sb2FkcyBvbiBOUE0gd2l0aGluIHRoZSBmaXJzdCB0d28gd2Vla3Mgb2YgaXRzIHJlbGVhc2UuIEFkZGl0aW9uYWxseSwgSSBpbnRlZ3JhdGVkIHRoZSBXaGF0c0FwcEJvdCB3aXRoIEdvb2dsZSdzIERpYWxvZ2Zsb3csIGFsbG93aW5nIHRoZSBib3QgdG8gdXRpbGl6ZSBhcnRpZmljaWFsIGludGVsbGlnZW5jZSB0byByZXNwb25kIHRvIHVzZXIgbWVzc2FnZXMgaW4gdGhlIGZpdG5lc3Mgc3R1ZGlvcy4gVGhpcyBpbm5vdmF0aXZlIGFwcHJvYWNoIGVmZmVjdGl2ZWx5IHRyYW5zZm9ybWVkIGN1c3RvbWVyIHNlcnZpY2UgZnJvbSB0cmFkaXRpb25hbCB0ZWxlcGhvbmUgY29tbXVuaWNhdGlvbiB0byBmdWxseSBhdXRvbWF0ZWQgaW50ZXJhY3Rpb25zIHZpYSBXaGF0c0FwcEJvdCwgcmVzdWx0aW5nIGluIGluY3JlYXNlZCBjb252ZXJzaW9uIHJhdGVzIGZvciBuZXcgY3VzdG9tZXIgc2lnbi11cHMuIFVzZXJzIGNvdWxkIGVhc2lseSBzaGFyZSB0aGUgV2hhdHNBcHAgYnVzaW5lc3MgYWNjb3VudCB3aXRoIGZyaWVuZHMsIHdoaWxlIHRoZSBib3QgaGFuZGxlZCBhbGwgbWVtYmVyc2hpcC1yZWxhdGVkIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcgc2NoZWR1bGluZyBhIHN1aXRhYmxlIHNsb3Qgd2l0aGluIGEgd2Vlay4KCiMjIyBRdWljayBuYXZpZ2F0aW9uIAoKCgotIFtTdmVsdGUgRnJvbnRlbmQgRGFzaGJvYXJkIFJlcG9zaXRvcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJ0aW5Nb2hhbW1lZC9JQk0td2hhdHNhcHAtYm90LWZyb250ZW5kKQotIFtXaGF0c0FwcCBCYWNrZW5kIFNlcnZlciBSZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vTWFydGluTW9oYW1tZWQvSUJNLXdoYXRzYXBwLWJvdC1iYWNrZW5kKQotIFtHeW0gT2NjdXBhbmN5IFRyYWNrZXIgUmVwb3NpdG9yeV0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbk1vaGFtbWVkL0lCTS13aGF0c2FwcC1vY2N1cGFuY3ktc2NyYXBlcikKLSBbV2hhdHNBcHAgTWlkZGxld2FyZSBOUE0gUGFja2FnZV0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbk1vaGFtbWVkL0lCTS13aGF0c2FwcC1ib3QtbWlkZGxld2FyZS1ucG0pCgojIyBTdmVsdGUgRnJvbnRlbmQgRGFzaGJvYXJkCgpUaGUgU3ZlbHRlIEZyb250ZW5kIERhc2hib2FyZCBpcyBhIHdlYiBhcHBsaWNhdGlvbiBkZXNpZ25lZCBmb3IgdGhlIENSUyB0ZWFtIHRvIGludGVyYWN0IHdpdGggZ3ltIG1lbWJlcnMgYW5kIGZhY2lsaXRhdGUgYXV0b21hdGVkIFdoYXRzQXBwIGN1c3RvbWVyIHNlcnZpY2UuIEJ1aWx0IHdpdGggU3ZlbHRlLCBpdCB1dGlsaXplcyB3ZWJzb2NrZXRzIHRvIGZldGNoIHJlYWwtdGltZSBkYXRhIGZyb20gdGhlIGJhY2tlbmQsIGluY2x1ZGluZyByZWNlbnQgV2hhdHNBcHAgbWVzc2FnZXMuIFRoZSBwcm9kdWN0aW9uIHZlcnNpb24gaW5jbHVkZXMgYSBwZXJtaXNzaW9uIHN5c3RlbSwgZW5hYmxpbmcgYWRtaW4gcHJpdmlsZWdlcyBhbmQgaW50ZWdyYXRpb24gd2l0aCBHb29nbGUncyBEaWFsb2dmbG93IGNoYXRib3QgQUkuCgohW0xvZ2luIFNjcmVlbl0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbk1vaGFtbWVkL3doYXRhc3BwLWRhc2hib2FyZC1zdmVsdGUvYXNzZXRzLzgxNDY5NjU4LzljYzAzM2Q2LTQ4YzMtNGVmZC1iZDJkLWI4MWZjZTZkZjZjMy5wbmcpCgohW0NoYXQgU2NyZWVuXShodHRwczovL2dpdGh1Yi5jb20vTWFydGluTW9oYW1tZWQvd2hhdGFzcHAtZGFzaGJvYXJkLXN2ZWx0ZS9hc3NldHMvODE0Njk2NTgvMzc3ZjYyZDktNTgxZi00MjMwLWI2YzAtZTNmMjBmNWE0YzIzLnBuZykKIyMgV2hhdHNBcHAgQmFja2VuZCBTZXJ2ZXIKClRoZSBXaGF0c0FwcCBCYWNrZW5kIHNlcnZlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsaXZlcmluZyBuZXcgaW5jb21pbmcgbWVzc2FnZXMgdG8gdGhlIFdoYXRzQXBwIGRhc2hib2FyZCBhbmQgdGh1cyB0byB0aGUgY3VzdG9tZXIgc2VydmljZSBpbiByZWFsIHRpbWUgdXNpbmcgd2ViIHNvY2tldHMgYW5kIHNlbmRpbmcgbWVzc2FnZXMgdG8gZ3ltIG1lbWJlcnMgdmlhIHRoZSBXaGF0c0FwcCBDbG91ZCBBUEkuIEl0IHByb3ZpZGVzIGEgcHJvdGVjdGVkIFJFU1QgQVBJIGFuZCBhcyB3ZWxsIGEgd2ViIHNvY2tldCBzZXJ2ZXIuIEl0IHN0b3JlcyBhbGwgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBOb1NRTCBkYXRhYmFzZSBvbiBBV1MuCgpbTGluayB0byBXaGF0c0FwcCBCYWNrZW5kIFNlcnZlciBSZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vTWFydGluTW9oYW1tZWQvSUJNLXdoYXRzYXBwLWJvdC1iYWNrZW5kKQoKIyBQcm9qZWN0IE92ZXJ2aWV3IC0gQXV0aG9yaXphdGlvbiBTZXJ2ZXIgZm9yIFdoYXRzQXBwIEJvdCBQcm9qZWN0CgpUaGlzIHNlY3Rpb24gcmVwcmVzZW50cyB0aGUgZGVtbyBwdWJsaWMgdmVyc2lvbiBvZiB0aGUgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgZGV2ZWxvcGVkIGFzIHBhcnQgb2YgdGhlIGNvbGxhYm9yYXRpdmUgcHJvamVjdCBiZXR3ZWVuIElCTSBhbmQgQm9keSBDdWx0dXJlIEdyb3VwLiBNeSByb2xlIGluIHRoZSBwcm9qZWN0IGludm9sdmVkIHByb2plY3QgbWFuYWdlbWVudCBhbmQgdGFzayBkZWxlZ2F0aW9uLiBUaGUgcHJvamVjdCBjb21wcmlzZXMgc2V2ZXJhbCBjb21wb25lbnRzLCBpbmNsdWRpbmcgYSBjbGllbnQgU3ZlbHRlIGFwcGxpY2F0aW9uLCBhIFdoYXRzQXBwIG1pZGRsZXdhcmUgZm9yIG1lc3NhZ2UgcmVjZXB0aW9uIChwdWJsaXNoZWQgb24gbnBtKSwgYW5kIGEgYmFja2VuZCB3aXRoIGEgV2ViU29ja2V0IHNlcnZlciBhbmQgUkVTVCBBUEkuCgpUaGUgYXBwbGljYXRpb24gdXRpbGl6ZXMgdGhlIEpTT04gV2ViIFRva2VuIChKV1QpIG1lY2hhbmlzbSBmb3IgdXNlciBhdXRoZW50aWNhdGlvbiwgZW5hYmxpbmcgc2VjdXJlIGFjY2VzcyB0byB0aGUgZGFzaGJvYXJkIGFuZCBSRVNUIEFQSS4KClRoZSBBdXRoIEFQSSBpcyBhIHNlY3VyZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlIHRoYXQgZmFjaWxpdGF0ZXMgdXNlciByZWdpc3RyYXRpb24sIGxvZ2luLCBhbmQgbWFuYWdlbWVudCBvZiBhdXRoZW50aWNhdGlvbiB0b2tlbnMuIEl0IGluY29ycG9yYXRlcyB2YXJpb3VzIGVuZHBvaW50cyBmb3IgdXNlciByZWdpc3RyYXRpb24sIGxvZ2luLCB0b2tlbiByZWZyZXNoaW5nLCBhbmQgbG9nb3V0IG9wZXJhdGlvbnMuIFRvIGVuc3VyZSBzZWN1cml0eSwgdGhlIEFQSSBpbXBsZW1lbnRzIEpTT04gV2ViIFRva2VucyAoSldUKSBmb3IgYXV0aGVudGljYXRpb24gYW5kIHV0aWxpemVzIFJlZGlzIGZvciBtYW5hZ2luZyByZWZyZXNoIHRva2Vucy4KCiMjIFRhYmxlIG9mIENvbnRlbnRzCgotIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCi0gW1VzYWdlXSgjdXNhZ2UpCi0gW0FQSSBFbmRwb2ludHNdKCNhcGktZW5kcG9pbnRzKQotIFtBdXRoZW50aWNhdGlvbl0oI2F1dGhlbnRpY2F0aW9uKQotIFtFcnJvciBIYW5kbGluZ10oI2Vycm9yLWhhbmRsaW5nKQotIFtTd2FnZ2VyIFVJXSgjc3dhZ2dlci11aSkKLSBbRGVwZW5kZW5jaWVzXSgjZGVwZW5kZW5jaWVzKQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgSW5zdGFsbGF0aW9uCgpUbyBydW4gdGhlIEF1dGggQVBJLCBmb2xsb3cgdGhlc2Ugc3RlcHM6CgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeTogYGdpdCBjbG9uZSA8cmVwby11cmw+YAoyLiBJbnN0YWxsIGRlcGVuZGVuY2llczogYG5wbSBpbnN0YWxsYAozLiBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIGEgYC5lbnZgIGZpbGUgKHNlZSBgLmVudi5leGFtcGxlYCBmb3IgcmVmZXJlbmNlKS4KNC4gU3RhcnQgdGhlIHNlcnZlcjogYG5wbSBzdGFydGAKCiMjIFVzYWdlCgpPbmNlIHRoZSBBdXRoIEFQSSBpcyB1cCBhbmQgcnVubmluZywgeW91IGNhbiBhY2Nlc3MgdmFyaW91cyBlbmRwb2ludHMgdG8gcmVnaXN0ZXIgdXNlcnMsIGxvZ2luLCByZWZyZXNoIHRva2VucywgYW5kIGxvZ291dC4gRm9yIHByb3RlY3RlZCBlbmRwb2ludHMsIHRoZSBBUEkgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGUgYWNjZXNzIHRva2VuIGluIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyLgoKIyMgQVBJIEVuZHBvaW50cwoKVGhlIEF1dGggQVBJIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgZW5kcG9pbnRzOgoKMS4gKipQT1NUIC9hdXRoL3JlZ2lzdGVyKio6IFJlZ2lzdGVyIGEgbmV3IHVzZXIgYW5kIHJlY2VpdmUgYSBuZXcgcGFpciBvZiB0b2tlbnMuCjIuICoqUE9TVCAvYXV0aC9sb2dpbioqOiBMb2dpbiB3aXRoIGV4aXN0aW5nIGNyZWRlbnRpYWxzIGFuZCByZWNlaXZlIGEgbmV3IHBhaXIgb2YgdG9rZW5zLgozLiAqKlBPU1QgL2F1dGgvcmVmcmVzaC10b2tlbioqOiBHZW5lcmF0ZSBhIG5ldyBwYWlyIG9mIHRva2VucyB1c2luZyB0aGUgcmVmcmVzaCB0b2tlbi4KNC4gKipERUxFVEUgL2F1dGgvbG9nb3V0Kio6IExvZ291dCBhIHVzZXIgYW5kIGludmFsaWRhdGUgdGhlaXIgcmVmcmVzaCB0b2tlbi4KNS4gKipHRVQgL2hlYWx0aCoqOiBDaGVjayB0aGUgaGVhbHRoIHN0YXR1cyBvZiB0aGUgc2VydmljZS4KCiMjIEF1dGhlbnRpY2F0aW9uCgpUaGUgQXV0aCBBUEkgbGV2ZXJhZ2VzIEpXVCBmb3IgYXV0aGVudGljYXRpb24uIFdoZW4gYSB1c2VyIHJlZ2lzdGVycyBvciBsb2dzIGluLCB0aGUgQVBJIHJldHVybnMgYW4gYWNjZXNzIHRva2VuIGFuZCBhIHJlZnJlc2ggdG9rZW4gYXMgYSBwYWlyLiBUaGUgYWNjZXNzIHRva2VuIGlzIHVzZWQgdG8gYXV0aGVudGljYXRlIHByb3RlY3RlZCBlbmRwb2ludHMgYnkgaW5jbHVkaW5nIGl0IGluIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyIHdpdGggdGhlIGBCZWFyZXJgIHNjaGVtZS4gSW4gY2FzZSB0aGUgYWNjZXNzIHRva2VuIGV4cGlyZXMsIHVzZXJzIGNhbiB1c2UgdGhlIHJlZnJlc2ggdG9rZW4gdG8gb2J0YWluIGEgbmV3IHBhaXIgb2YgdG9rZW5zLgoKIyMgRXJyb3IgSGFuZGxpbmcKClRoZSBBdXRoIEFQSSByZXNwb25kcyB3aXRoIGFwcHJvcHJpYXRlIEhUVFAgc3RhdHVzIGNvZGVzIGFuZCBlcnJvciBtZXNzYWdlcyBpbiBKU09OIGZvcm1hdCBmb3IgdmFyaW91cyBzY2VuYXJpb3MuIENvbW1vbiBlcnJvciByZXNwb25zZXMgaW5jbHVkZSBgNDAwIEJhZCBSZXF1ZXN0YCwgYDQwMSBVbmF1dGhvcml6ZWRgLCBgNDA0IE5vdCBGb3VuZGAsIGFuZCBgNDIyIFVucHJvY2Vzc2FibGUgRW50aXR5YC4gRXJyb3IgcmVzcG9uc2VzIGluY2x1ZGUgYSBgbWVzc2FnZWAgZmllbGQgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciBhbmQgYSBgc3RhdHVzQ29kZWAgZmllbGQgaW5kaWNhdGluZyB0aGUgY29ycmVzcG9uZGluZyBIVFRQIHN0YXR1cyBjb2RlLgoKIyMgU3dhZ2dlciBVSQoKVGhlIEF1dGggQVBJIHByb3ZpZGVzIGEgU3dhZ2dlciBVSSBmb3IgQVBJIGRvY3VtZW50YXRpb24sIGFjY2Vzc2libGUgYnkgdmlzaXRpbmcgYC9hcGktZG9jc2AgYWZ0ZXIgc3RhcnRpbmcgdGhlIHNlcnZlci4gVGhlIFN3YWdnZXIgVUkgb2ZmZXJzIGEgdXNlci1mcmllbmRseSBpbnRlcmZhY2UgdG8gZXhwbG9yZSBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgQVBJIGVuZHBvaW50cy4KCiMjIERlcGVuZGVuY2llcwoKVGhlIEF1dGggQVBJIHJlbGllcyBvbiB0aGUgZm9sbG93aW5nIG1ham9yIGRlcGVuZGVuY2llczoKCi0gRXhwcmVzczogQSB3ZWIgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBoYW5kbGluZyBIVFRQIHJlcXVlc3RzIGFuZCByb3V0aW5nLgotIE1vbmdvb3NlOiBBbiBPYmplY3QgRGF0YSBNb2RlbGluZyAoT0RNKSBsaWJyYXJ5IGZvciBNb25nb0RCLgotIGJjcnlwdDogQSBsaWJyYXJ5IGZvciBoYXNoaW5nIHBhc3N3b3JkcyB1c2luZyB0aGUgQmxvd2Zpc2ggYWxnb3JpdGhtLgotIGpzb253ZWJ0b2tlbjogQSBsaWJyYXJ5IGZvciBnZW5lcmF0aW5nIGFuZCB2ZXJpZnlpbmcgSlNPTiBXZWIgVG9rZW5zIChKV1QpLgotIHJlZGlzOiBBIGxpYnJhcnkgZm9yIHdvcmtpbmcgd2l0aCBSZWRpcywgYSBrZXktdmFsdWUgc3RvcmUgdXNlZCB0byBtYW5hZ2UgcmVmcmVzaCB0b2tlbnMuCi0gc3dhZ2dlci1qc2RvYyBhbmQgc3dhZ2dlci11aS1leHByZXNzOiBMaWJyYXJpZXMgZm9yIGdlbmVyYXRpbmcgYW5kIGRpc3BsYXlpbmcgQVBJIGRvY3VtZW50YXRpb24gdXNpbmcgT3BlbkFQSSAoU3dhZ2dlcikuCgpGb3IgYSBjb21wcmVoZW5zaXZlIGxpc3Qgb2YgZGVwZW5kZW5jaWVzLCByZWZlciB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS4KCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyB0byB0aGUgQXV0aCBBUEkgYXJlIHdlbGNvbWUhIElmIHlvdSBlbmNvdW50ZXIgYW55IGlzc3VlcyBvciBoYXZlIHN1Z2dlc3Rpb25zIGZvciBpbXByb3ZlbWVudHMsIHBsZWFzZSBmZWVsIGZyZWUgdG8gc3VibWl0IGEgcHVsbCByZXF1ZXN0LgoKCiMjIEd5bSBPY2N1cGFuY3kgVHJhY2tlcgoKVGhlIEd5bSBPY2N1cGFuY3kgVHJhY2tlciBpcyBhIFB5dGhvbiBwcm9ncmFtIHRoYXQgd2ViLXNjcmFwZXMgdGhlIEZpdG5lc3MgRmFicmlrIGd5bSB3ZWJzaXRlIHRvIGV4dHJhY3QgZGF0YSBhYm91dCB0aGUgY3VycmVudCBudW1iZXIgb2YgcGVvcGxlIHRyYWluaW5nIGluIHRoZSBneW0uIEl0IHVzZXMgQmVhdXRpZnVsIFNvdXAgdG8gcGFyc2UgdGhlIEhUTUwgYW5kIGV4dHJhY3QgcmVsZXZhbnQgZGF0YS4gVGhlIHByb2dyYW0gYWxzbyBpbnRlZ3JhdGVzIHdpdGggYSBUZWxlZ3JhbSBib3QgdG8gbm90aWZ5IHVzZXJzIHdoZW4gdGhlIGd5bSBvY2N1cGFuY3kgbWVldHMgdGhlaXIgZGVzaXJlZCBjcml0ZXJpYS4KCltMaW5rIHRvIEd5bSBPY2N1cGFuY3kgVHJhY2tlciBSZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vTWFydGluTW9oYW1tZWQvSUJNLXdoYXRzYXBwLW9jY3VwYW5jeS1zY3JhcGVyKQoKIyMgV2hhdHNBcHAgTWlkZGxld2FyZSBOUE0gUGFja2FnZQoKVGhlIFdoYXRzQXBwIE1pZGRsZXdhcmUgUGFja2FnZSBpcyBhIGhpZ2hseSBzdWNjZXNzZnVsIG5wbSBwYWNrYWdlIGRldmVsb3BlZCBkdXJpbmcgbXkgaW50ZXJuc2hpcCBhdCBJQk0uIEl0IHNlcnZlcyBhcyBhIGNydWNpYWwgY29tcG9uZW50IG9mIHRoZSBGaXRuZXNzIEFwcCBTdWl0ZSwgZW5hYmxpbmcgc2VhbWxlc3MgaW50ZWdyYXRpb24gd2l0aCB0aGUgV2hhdHNBcHAgQ2hhdGJvdCBhbmQgcmVhbC10aW1lIG1lc3NhZ2UgY29tbXVuaWNhdGlvbi4KCltMaW5rIHRvIFdoYXRzQXBwIE1pZGRsZXdhcmUgTlBNIHBhY2thZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJ0aW5Nb2hhbW1lZC9JQk0td2hhdHNhcHAtYm90LW1pZGRsZXdhcmUtbnBtKQoKIyMgQ29uY2x1c2lvbgoKVGhlIEZpdG5lc3MgQXBwIFN1aXRlIGJyaW5ncyB0b2dldGhlciBhIHJhbmdlIG9mIGFwcGxpY2F0aW9ucyB0byBpbXByb3ZlIHRoZSBmaXRuZXNzIGV4cGVyaWVuY2UgZm9yIHVzZXJzIGFuZCBzdHJlYW1saW5lIGN1c3RvbWVyIHNlcnZpY2UuIEVhY2ggYXBwbGljYXRpb24gc2VydmVzIGEgc3BlY2lmaWMgcHVycG9zZSBpbiB0aGUgb3ZlcmFsbCBlY29zeXN0ZW0sIG9mZmVyaW5nIGZlYXR1cmVzIHN1Y2ggYXMgZ3ltIG9jY3VwYW5jeSB0cmFja2luZywgcmVhbC10aW1lIG5vdGlmaWNhdGlvbnMsIGFuZCBzZWN1cmUgYXV0aGVudGljYXRpb24uCgpGZWVsIGZyZWUgdG8gZXhwbG9yZSBlYWNoIGFwcGxpY2F0aW9uJ3MgcmVwb3NpdG9yeSBmb3IgbW9yZSBkZXRhaWxzIGFuZCBjb250cmlidXRpb25zLiBJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIG9yIHN1Z2dlc3Rpb25zLCBkb24ndCBoZXNpdGF0ZSB0byByZWFjaCBvdXQuIEhhcHB5IGNvZGluZyEK readmeEtag: '"8de95570564a50a3b79391b487a0ffe1d1d57044"' readmeLastModified: Fri, 28 Jul 2023 12:15:09 GMT repositoryId: 668705698 description: >- Throughout my tenure at IBM, as the product owner of a client-project in collaboration with Body Culture Group in Darmstadt, I present this repository as the public demo version of the WhatsApp jwt authorisation server. created: '2023-07-20T12:14:04Z' updated: '2023-07-28T11:54:55Z' language: TypeScript archived: false stars: 0 watchers: 0 forks: 0 owner: MartinMohammed logo: https://avatars.githubusercontent.com/u/81469658?v=4 repoEtag: '"532ade3c61b1b8b5b7977a8c3ee7fe43073a36993e2ede25e02bdfb420fb6bf1"' repoLastModified: Fri, 28 Jul 2023 11:54:55 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/livingdocsio/openapi v3: true id: 84bfb7fcfdecd08b4df5318f3517f75b repositoryMetadata: base64Readme: >- IyBMaXZpbmdkb2NzIE9wZW5BUEkgU3BlY2lmaWNhdGlvbgpPcGVuQVBJIDMgc3BlY2lmaWNhdGlvbiBmb3IgTGl2aW5nZG9jcyBQdWJsaWMgQVBJCgpUaGlzIGZpbGUgbWFrZXMgaXQgZWFzeSB0byB0ZXN0IGFuZCBzaGFyZSBvdXIgQVBJIGVucG9pbnRzLgoKSXQncyBhdmFpbGFibGUgW2hlcmVdKC9saXZpbmdkb2NzLW9wZW5hcGkuanNvbikKCiMjIFN1cHBvcnRlZCBlbnZpcm9ubWVudHMKLSBsb2NhbGhvc3QKLSBMaXZpbmdkb2NzIGRlbW8gYXQgZWRpdC5saXZpbmdkb2NzLmlvLCBkZXByZWNhdGVkIGZyb20gcmVsZWFzZS0yMDIzLTA5CgojIyBIb3cgdG8gdXNlIGl0ClRoZSBPcGVuQVBJIHNwZWMgaXMgaG9zdGVkIGJ5IEdpdGh1YiBwYWdlcyBhdDogCgpbaHR0cHM6Ly9saXZpbmdkb2NzaW8uZ2l0aHViLmlvL29wZW5hcGkvbGl2aW5nZG9jcy1vcGVuYXBpLmpzb25dKGh0dHBzOi8vbGl2aW5nZG9jc2lvLmdpdGh1Yi5pby9vcGVuYXBpL2xpdmluZ2RvY3Mtb3BlbmFwaS5qc29uKQoKVGhpcyBjYW4gYmUgaW1wb3J0ZWQgaW4gSW5zb21uaWEgb3IgUG9zdG1hbiB0byBoYXZlIGEgZnVsbCBjb2xsZWN0aW9ucyBvZiBBUEkgZW5wb2ludHMgdG8gdGVzdC4KCjxpbWcgd2lkdGg9IjE1MTIiIGFsdD0ib3BlbmFwaS1pbnNvbW5pYSIgc3JjPSJodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xNjgyODAzLzE5Njg4NjkxMC03NjBhMmRkZC05YjQ2LTQyYzMtOTI5Mi03MTk2OGQ4MGZiYWYucG5nIj4KCgpBbHRlcm5hdGl2ZWx5IHRoZSBzYW1lIGNhbiBiZSBkb25lIHdpdGggb25saW5lIHRvb2xzLiBZb3UganVzdCBuZWVkIHRvIHBhc3RlIHRoZSBPcGVuQVBJIHNwZWMgdXJsIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRvb2xzLgoKW1N3YWdnZXIgVUldKGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8pCgpbU3dhZ2dlciBFZGl0b3JdKGh0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vKQoKCiMjIyBTb21lIG90aGVyIHRvb2xzCgpbT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9vcGVuYXBpLnRvb2xzLykgbGlzdCBvZiB1c2VmdWwgdG9vbHMgcmVsYXRlZCB0byBPcGVuQVBJCgpbQXBpVHJlZV0oaHR0cHM6Ly93d3cuYXBpdHJlZS5jb20vKSBob3N0ZWQgQVBJIGRvY3VtZW50YXRpb24gYmFzZWQgb24gT3BlbkFQSQoKW09wZW5Eb2N1bWVudGVyXShodHRwczovL291cm9wZW5jb2RlLmdpdGh1Yi5pby9PcGVuRG9jdW1lbnRlci8pOgpmb3IgY3JlYXRpbmcgYSBkb2N1bWVudGF0aW9uIGZyb20gT3BlbkFQSSBzcGVjCgojIyBIb3cgdG8gZGV2ZWxvcApJbXBvcnQgdGhlIGxpdmluZ2RvY3Mtb3BlbmFwaS5qc29uIGZpbGUgaW50byBpbnNvbW5pYSBhcyBhIGRlc2lnbiBkb2N1bWVudCwgaGVyZSB5b3UgY2FuIHRlc3QgdGhlIEFQSXMgYW5kIGFkZCBuZXcgZW5kcG9pbnRzLgpGb3IgYXV0aGVudGljYXRlZCByZXF1ZXN0cyB5b3UgbmVlZCBhbiBBUEkgdG9rZW4gZnJvbSB5b3VyIExpdmluZ2RvY3MgcHJvamVjdC4KCkFsdGVybmF0aXZlbHkgeW91IGNhbiBkbyBldmVyeXRoaW5nIGluIFZTIENvZGUgdXNpbmcgdGhlIFtPcGVuQVBJIChTd2FnZ2VyKSBFeHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT00MkNydW5jaC52c2NvZGUtb3BlbmFwaSkuCgojIyMgRXhhbXBsZSBlbmRwb2ludApgYGB5YW1sCiAgL2NoYW5uZWxzL3tjaGFubmVsSGFuZGxlfToKICAgICAgZ2V0OgogICAgICAgIHNlY3VyaXR5OgogICAgICAgIC0gYmVhcmVyQXV0aDogW3B1YmxpYy1hcGk6cmVhZF0KICAgICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gbmFtZTogY2hhbm5lbEhhbmRsZQogICAgICAgICAgaW46IHBhdGgKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbCBjaGFubmVsSGFuZGxlLiBXaWxsIHJldHVybiBmaXJzdCBjaGFubmVsIG9mIGEgcHJvamVjdCBpZiBub25lIGlzIHBhc3NlZC4KICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBleGFtcGxlOiAiIgogICAgICAgIHRhZ3M6CiAgICAgICAgICAtIFByb2plY3QKICAgICAgICBzdW1tYXJ5OiBkZXRhaWxzIGFuZCBjb25maWd1cmF0aW9uIG9mIHRoaXMgcHJvamVjdC4KICAgICAgICBvcGVyYXRpb25JZDogZ2V0Q2hhbm5lbAogICAgICAgIHJlc3BvbnNlczoKICAgICAgICAgICIyMDAiOgogICAgICAgICAgIGRlc2NyaXB0aW9uOiBvawpgYGAKIyMgSG93IHRvIGNvbnRyaWJ1dGUKS2VlcCB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgb3VyIGRvY3VtZW50YXRpb24gW2RvY3NdKGh0dHBzOi8vZG9jcy5saXZpbmdkb2NzLmlvL3JlZmVyZW5jZS1kb2NzL3B1YmxpYy1hcGkvKS4KTWFueSBBUEkgZW5kcG9pbnRzIGFyZSBzdGlsbCBtaXNzaW5nLiBQbGVhc2UgbWFyayB0aGUgY2F0ZWdvcnkgYXMgY29tcGxldGVkIHdoZW4gYWxsIGl0cyBlbmRwb2ludHMgYXJlIHJlZ2lzdGVyZWQgaW4gdGhlIHNwZWMuCi0gUHJvamVjdCAgICAgICAgICAgICDinIUKLSBDb21wb3NpdGlvbiBBUEkgICAgIOKchQotIFB1YmxpY2F0aW9ucyAgICAgICAg4pyFICAgIAotIFNlYXJjaCAgICAgICAgICAgICAg4pyFCi0gRG9jdW1lbnQgTGlzdHMgICAgICDinIUKLSBEb2N1bWVudCBDYXRlZ29yaWVzIOKchQotIE1lZGlhIExpYnJhcnkgICAgICAg4pyFCi0gSW1wb3J0cyAgICAgICAgICAgICDinIUKLSBTaXRlbWFwcyAgICAgICAgICAgIOKchQotIE1lbnVzICAgICAgICAgICAgICAg4pyFCi0gUm91dGluZyAgICAgICAgICAgICDinIUKLSBBZGQgRGVsaXZlcnkgU3RhdHVzIOKchQotIEhlYWx0aCAgICAgICAgICAgICAg4pyFCgoKIyMgVE9ET3MgYW5kIGZ1dHVyZSBpZGVhcwotIGFkZCBhbGwgdGhlIFB1YmxpYyBBUEkgZW5kcG9pbnRzIGZyb20gb3VyIGRvY3Mg4pyFCi0gbWFrZSBhdmFpbGFibGUgdGhlIE9BUyBwdWJsaWNseSDinIUKLSBlbWJlZGQgdGhlIFN3YWdnZXIgVUkgaW4gb3VyIGRvY3MKLSBzdXBwb3J0IHRvIGV4dGVuZCBkb3duc3RyZWFtIHdpdGggZG93bnN0cmVhbSBkZWNsYXJhdGlvbgotIGdlbmVyYXRlIHRoZSBzcGVjIGJ5IHRoZSBzZXJ2ZXIK readmeEtag: '"b84dc2e5654effb7f8db83e254ca2257cbb122b1"' readmeLastModified: Thu, 18 Jan 2024 16:02:34 GMT repositoryId: 537367140 description: OpenAPI (Swagger) spec for Livingdocs Public API created: '2022-09-16T08:16:19Z' updated: '2022-10-20T09:26:12Z' language: null archived: false stars: 0 watchers: 6 forks: 2 owner: livingdocsIO logo: https://avatars.githubusercontent.com/u/3775168?v=4 repoEtag: '"b5d0848a757f44291d004cd6abaf1e9214ef88421917fcff4c143ebbcf03064c"' repoLastModified: Thu, 20 Oct 2022 09:26:12 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/brokenprogrammer/mswg-gen v3: true id: 299afd28415cb2ebe143e6f0e0b5f3c8 repositoryMetadata: base64Readme: >- IyBtc3dnLWdlbgpDdXN0b20gT3BlbkFQSSBnZW5lcmF0b3IgdGhhdCBpcyB1c2VkIHRvIGdlbmVyYXRlIHN3YWdnZXIgZG9jdW1lbnRhdGlvbiB1c2luZyBjb21tZW50cy4KClRoZSBwcm9qZWN0IGN1cnJlbnRseSBoYXMgc3VwcG9ydCBmb3IgQyAmIEdvIGxhbmd1YWdlIGJ1dCBjYW4gdGVjaG5pY2FsbHkgc3VwcG9ydCBhbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgCnRoYXQgbWFrZXMgdXNlIG9mIEMgc3R5bGUgY29tbWVudHMuIFNvbWUgcGFyc2luZyBoYXMgdG8gYmUgYWRkZWQgaG93ZXZlci4KClRoZSBnb2FsIG9mIHRoaXMgcHJvamVjdCBpcyB0byBoYXZlIGEgZmFzdCBzd2FnZ2VyIGdlbmVyYXRvciB0aGF0IGlzIGV4Y2x1ZGVkIGZyb20gdGhlIHByb2plY3QgdGhhdCBjYW4gZWFzaWx5IGJlIGludGVncmF0ZWQKaW50byBhbnkgYnVpbGQgcGlwZWxpbmUuCgojIyBVc2FnZQoKRmlyc3QgeW91IG5lZWQgdG8gY3JlYXRlIGEgY29uZmlnLmluaSBmaWxlIHdpdGhpbiB5b3VyIHByb2plY3QgZGlyZWN0b3J5LiBBbiBleGFtcGxlIGNvbmZpZ3VyYXRpb24gbG9va3MgbGlrZSB0aGUgZm9sbG93aW5nOgoKYGBgaW5pCjsgVGhpcyBpcyBhIGNvbW1lbnQKW21zd2dlbl0KdGl0bGUgPSBTYW1wbGUKIyBUaGlzIGlzIGFsc28gYSBjb21tZW50CmRlc2NyaXB0aW9uID0gVGhpcyBpcyBhIHNhbXBsZSBhcHBsaWNhdGlvbgp0ZXJtc29mc2VydmljZSA9IGh0dHBzOi8vZ29vZ2xlLnNlCgpbbXN3Z2VuLmNvbnRhY3RdCm5hbWUgPSBTdXBwb3J0CnVybCA9IGh0dHBzOi8vZ29vZ2xlLnNlCmVtYWlsID0gc3VwcG9ydEBnb29nbGUuc2UKClttc3dnZW4ubGljZW5zZV0KbmFtZSA9IE1JVAp1cmwgPSBodHRwczovL2dvb2dsZS5zZQoKW21zd2dlbi52ZXJzaW9uXQp2ZXJzaW9uPSB2MQpgYGAKCkV4cGxhbmF0aW9uIGZvciB0aGUgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYXJlIGV4cGxhaW5lZCBpbiB0aGUgZm9sbG93aW5nIHRhYmxlLgp8IENvbmZpZ3VyYXRpb24gfCBEZXNjcmlwdGlvbiAgIHwgRXhhbXBsZSAgICAgICB8CnwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwKfCB0aXRsZSAgfCBUaGUgdGl0bGUgb2YgeW91ciBhcHBsaWNhdGlvbi4gVGhpcyB3aWxsIGJlIGRpc3BsYXllZCBvbiB5b3VyIHN3YWdnZXIgcGFnZS4gfCBNeSBBcHBsbGljYXRpb24gfAp8IGRlc2NyaXB0aW9uICB8IERlc2NyaXB0aW9uIG9mIHlvdXIgYXBwbGljYXRpb24uIFdpbGwgYmUgZGlzcGxheWVkIG9uIHlvdXIgc3dhZ2dlciBwYWdlLiAgfCBUaGlzIGlzIGEgc2FtcGxlIGFwcGxpY2F0aW9uIHwKfCB0ZXJtc29mc2VydmljZSAgfCBBIGxpbmsgdG8gdGhlIHRlcm1zIG9mIHNlcnZpY2UgZm9yIHlvdXIgQVBJLi4gIHwgaHR0cHM6Ly9leGFtcGxlLmNvbSB8CnwgY29udGFjdC5uYW1lICB8IERpc3BsYXkgbmFtZSBmb3IgeW91ciBjb250YWN0LiAgfCBTdXBwb3J0IHwKfCBjb250YWN0LnVybCAgfCBDb250YWN0IFVSTC4uICB8IGh0dHBzOi8vZXhhbXBsZS5jb20gfAp8IGNvbnRhY3QuZW1haWwgIHwgQ29udGFjdCBlbWFpbC4gIHwgc3VwcG9ydEBleGFtcGxlLmNvbSB8CnwgbGljZW5zZS5uYW1lICB8IE5hbWUgb2YgdGhlIGxpY2Vuc2UgZm9yIHlvdXIgQVBJLiAgfCBNSVQgfAp8IGxpY2Vuc2UudXJsICB8IFVSTCB0byBsaWNlbnNlIG9mIHlvdXIgQVBJLiAgfCBodHRwczovL2V4YW1wbGUuY29tL2xpY2Vuc2UgfAp8IHZlcnNpb24udmVyc2lvbiB8IFZlcnNpb24gb2YgeW91ciBBUEkuIHwgdjEgfAoKQWZ0ZXIgeW91IGhhdmUgc2V0IHVwIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlIHlvdSBjYW4gYnVpbGQgdGhlIGFwcGxpY2F0aW9uIGJ5IGVudGVyaW5nIHRoZSBgc3JjYCBkaXJlY3RvcnkgYW5kIHJ1biBgbWFrZWAuCgpPbmNlIGRvbmUgeW91IHNob3VsZCBoYXZlIGFjY2VzcyB0byB0aGUgZXhlY3V0YWJsZSBgbXN3Z19nZW5gIHRoYXQgeW91IGNhbiBwbGFjZSB3aGVyZSB5b3Ugd2FudCBpdC4KCkZpbmFsbHkgc29tZSBtb2RpZmljYXRpb24gaXMgbmVlZGVkIGluIHRoZSBjb2RlIG9mIHlvdXIgYXBwbGljYXRpb24uIG1zd2dfZ2VuIHVzZXMgdHdvIHR5cGVzIG9mIGNvbW1lbnQgdG8gc3BlY2lmeSB0d28gZGlmZmVyZW50IEFQSSB0eXBlcyByb3V0ZXMgYW5kIHJvdXRlIHR5cGVzLgoKIyMjIFJvdXRlcwoKQSBuZXcgcm91dGUgaXMgc3BlY2lmaWVkIGJ5IHdyaXRpbmcgYSBjb21tZW50IGluIHlvdXIgY29kZSB3aXRoIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgpgYGBDCi8vIEBSb3V0ZShyb3V0ZSwgbWV0aG9kLCByZXR1cm5fdHlwZSkKYGBgCgpBbiBleGFtcGxlIHdvdWxkIGJlCgpgYGBDCi8vIEBSb3V0ZSgvYXBpL2xvZ2luLCBwb3N0LCB1c2VyX29iamVjdCkKYGBgCgpTb21lIHJvdXRlcyBkbyBub3QgcmV0dXJuIGFueSBqc29uIG9iamVjdHMgaGVuY2UgdGhlIGByZXR1cm5fdHlwZWAgY2FuIGFsc28gYmUgZW1pdHRlZWQgbGlrZSBzbzoKCmBgYEMKLy8gQFJvdXRlKC9hcGkvcmVnaXN0ZXIsIHBvc3QpCmBgYAoKIyMjIFJvdXRlIFR5cGVzCgpSb3V0ZSB0eXBlcyBhcmUgYWRkZWQgYnkgYW5ub3RhdGluZyB5b3VyIHN0cnVjdHVyZXMgdXNpbmcgdGhlIGBAUm91dGVUeXBlYCBjb21tYW5kLgpUaGlzIGFsbG93cyBtc3dnX2dlbiB0byBhZGQgdGhlIHR5cGUgdG8gdGhlIGxpc3Qgb2Yga25vd24gYHJldHVybl90eXBlc2AgZm9yIHJvdXRlcyBpbiBvcmRlciB0byBnZW5lcmF0ZSBqc29uIHdpdGhpbiBzd2FnZ2VyLgoKRXhhbXBsZToKYGBgQwovLyBAUm91dGVUeXBlCnR5cGVkZWYgc3RydWN0IHsKICAgIHVfaW50MzJfdCBzdGF0ZVs1XTsKICAgIHVfaW50NjRfdCBjb3VudDsKICAgIHVfaW50OF90IGJ1ZmZlcltTSEExX0JMT0NLX0xFTkdUSF07Cn0gU0hBMV9DVFg7CmBgYAoKIyMjIEludGVncmF0aW5nIGludG8geW91ciBwcm9qZWN0CgpUaGUgb3V0cHV0IG9mIG1zd2dfZ2VuIGNhbiBlYXNpbHkgYmUgb3V0cHV0IGluIGEgZmlsZSBsaWtlIHNvOgpgYGBiYXNoCi4vbXN3Z19nZW4gPiBleGFtcGxlLnR4dApgYGAKClRoZSBnZW5lcmF0ZWQgb3V0cHV0IGNhbiB0aGVuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCB0aGUgc3RhdGljIHN3YWdnZXIgc2l0ZSBwcm92aWRlZCAKd2l0aGluIHRoaXMgcmVwb3NpdG9yeTogPGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpPgoKVGhpcyBpcyBlYXN5IHRvIHNldCB1cCBieSBkb3dubG9hZGluZyB0aGUgbGF0ZXN0IHJlbGVhc2UgYW5kIHVzaW5nIHRoZSBzdGF0aWMgSFRNTC9KUy9DU1Mgd2l0aGluIHRoZSBkb3dubG9hZGVkIGAvZGlzdGAgZm9sZGVyLgoKIyMgRGlzY2xhaW1lcgoKVGhpcyBhcHBsaWNhdGlvbiB3YXMgd3JpdHRlbiBpbiBhIHZlcnkgc2hvcnQgZHVyYXRpb24gYW5kIGEgbG90IG9mIHNob3J0Y3V0cyB3YXMgdGFrZW4uIElmIHlvdSBmaW5kIGJ1Z3MgcGxlYXNlIGZpbGUgYW4gaXNzdWUgb3IgYSBwdWxsIHJlcXVlc3QuIAoKIyBMaWNlbnNlCgpNSVQgTGljZW5zZQoKQ29weXJpZ2h0IChjKSAyMDIyIE9za2FyIE1lbmRlbAoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQpTT0ZUV0FSRS4K readmeEtag: '"d255a8297272e5e3e5fe8a8c6069408b59852474"' readmeLastModified: Sun, 26 Jun 2022 19:51:25 GMT repositoryId: 507563615 description: >- Custom OpenAPI generator that is used to generate swagger documentation using comments. created: '2022-06-26T12:07:17Z' updated: '2022-06-26T12:39:07Z' language: C archived: false stars: 0 watchers: 1 forks: 0 owner: brokenprogrammer logo: https://avatars.githubusercontent.com/u/16289144?v=4 license: MIT repoEtag: '"fad88395ec3aecf084c966b794b5e124a4ac808a72250c5d38e1a58b23443c82"' repoLastModified: Sun, 26 Jun 2022 12:39:07 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/sinoroc/rapids v3: true repositoryMetadata: base64Readme: >- Li4KCgouLiBjb250ZW50czo6CgouLiBzZWN0bnVtOjoKCgpJbnRyb2R1Y3Rpb24KPT09PT09PT09PT09CgoqKlJFU1QgQVBJcyBkb2N1bWVudGVkIGFuZCBzZW5zaWJsZSoqCgpCdWlsZCBhdXRvbWF0aWNhbGx5IGRvY3VtZW50ZWQgUkVTVCBBUElzIHdpdGggdGhlIGBQeXJhbWlkIGZyYW1ld29ya2BfLgoKVGhpcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSBvbiB0aGUgUHl0aG9uIHBhY2thZ2UgaW5kZXggdW5kZXIgdGhlIHByb2plY3QgbmFtZQpgYHJhcGlkc2BgOgoKKiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3JhcGlkcwoKKiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvcmFwaWRzLwoKClVzYWdlCj09PT09CgouLiBjb2RlOjogcHl0aG9uCgogICAgQHJhcGlkcy5kZWNvcmF0b3JzLnJlc291cmNlKCcnLCBOb25lKQogICAgY2xhc3MgUm9vdChyYXBpZHMucmVzb3VyY2VzLkJhc2UpOgogICAgICAgIHBhc3MKCgogICAgQHB5cmFtaWQudmlldy52aWV3X2NvbmZpZyhjb250ZXh0PVJvb3QsIHJhcGlkcz0nJykKICAgIGRlZiByb290X3ZpZXcocmVzb3VyY2UsIHJlcXVlc3QpOgogICAgICAgIHJldHVybiBweXJhbWlkLmh0dHBleGNlcHRpb25zLkhUVFBOb3RGb3VuZCgpCgoKICAgIEByYXBpZHMuZGVjb3JhdG9ycy5yZXNvdXJjZSgnZm9vJywgUm9vdCkKICAgIGNsYXNzIEZvbyhyYXBpZHMucmVzb3VyY2VzLkJhc2UpOgogICAgICAgIHBhc3MKCgogICAgQHB5cmFtaWQudmlldy52aWV3X2RlZmF1bHRzKGNvbnRleHQ9Rm9vLCByYXBpZHM9JycpCiAgICBjbGFzcyBGb29WaWV3OgogICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXNvdXJjZSwgcmVxdWVzdCk6CiAgICAgICAgICAgIHBhc3MKCiAgICAgICAgQHB5cmFtaWQudmlldy52aWV3X2NvbmZpZyhyZXF1ZXN0X21ldGhvZD0nR0VUJykKICAgICAgICBkZWYgX2dldF92aWV3KHNlbGYpOgogICAgICAgICAgICByZXR1cm4gcHlyYW1pZC5odHRwZXhjZXB0aW9ucy5IVFRQT2soKQoKICAgICAgICBAcHlyYW1pZC52aWV3LnZpZXdfY29uZmlnKHJlcXVlc3RfbWV0aG9kPSdQT1NUJykKICAgICAgICBkZWYgX3Bvc3RfdmlldyhzZWxmKToKICAgICAgICAgICAgcmV0dXJuIHB5cmFtaWQuaHR0cGV4Y2VwdGlvbnMuSFRUUENyZWF0ZWQoKQoKCkhhY2tpbmcKPT09PT09PQoKVGhpcyBwcm9qZWN0IG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgYHRveGBfLCBgcHl0ZXN0YF8sIGFuZCBgR05VIE1ha2VgXy4KCgpEZXZlbG9wbWVudCBlbnZpcm9ubWVudAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVXNlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIFB5dGhvbiB2aXJ0dWFsIGVudmlyb25tZW50IHdpdGggYWxsCm5lY2Vzc2FyeSBkZXBlbmRlbmNpZXM6OgoKICAgIHRveCAtLXJlY3JlYXRlIC1lIGRldmVsb3AKClRoaXMgY3JlYXRlcyBhIFB5dGhvbiB2aXJ0dWFsIGVudmlyb25tZW50IGluIHRoZSBgYC50b3gvZGV2ZWxvcGBgIGRpcmVjdG9yeS4gSXQKY2FuIGJlIGFjdGl2YXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDo6CgogICAgLiAudG94L2RldmVsb3AvYmluL2FjdGl2YXRlCgoKUnVuIHRlc3Qgc3VpdGUKLS0tLS0tLS0tLS0tLS0KCkluIGEgUHl0aG9uIHZpcnR1YWwgZW52aXJvbm1lbnQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDo6CgogICAgbWFrZSByZXZpZXcKCk91dHNpZGUgb2YgYSBQeXRob24gdmlydHVhbCBlbnZpcm9ubWVudCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjoKCiAgICB0b3ggLS1yZWNyZWF0ZQoKCkJ1aWxkIGFuZCBwYWNrYWdlCi0tLS0tLS0tLS0tLS0tLS0tCgpJbiBhIFB5dGhvbiB2aXJ0dWFsIGVudmlyb25tZW50IHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6OgoKICAgIG1ha2UgcGFja2FnZQoKT3V0c2lkZSBvZiBhIFB5dGhvbiB2aXJ0dWFsIGVudmlyb25tZW50IHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6OgoKICAgIHRveCAtLXJlY3JlYXRlIC1lIHBhY2thZ2UKCgouLiBMaW5rcwoKLi4gX2BHTlUgTWFrZWA6IGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbWFrZS8KLi4gX2BQeXJhbWlkIGZyYW1ld29ya2A6IGh0dHBzOi8vdHJ5cHlyYW1pZC5jb20vCi4uIF9gcHl0ZXN0YDogaHR0cDovL3B5dGVzdC5vcmcvCi4uIF9gdG94YDogaHR0cHM6Ly90b3gucmVhZHRoZWRvY3MuaW8vCgoKLi4gRU9GCg== readmeEtag: '"ed92292f4de45d389528ff53f8694ca541b1ec25"' readmeLastModified: Sun, 14 Apr 2019 15:06:49 GMT repositoryId: 108432117 description: REST APIs documented and sensible created: '2017-10-26T15:44:17Z' updated: '2019-10-01T10:16:06Z' language: Python archived: false stars: 0 watchers: 3 forks: 3 owner: sinoroc logo: https://avatars.githubusercontent.com/u/5529267?v=4 license: Apache-2.0 repoEtag: '"1a5e14b623ec42dde716c6f27577335a620e2885f58d2ef29cc529aa4fdaa80b"' repoLastModified: Tue, 01 Oct 2019 10:16:06 GMT foundInMaster: true category: Server Implementations id: fa2497dec16a48c00bff1a36601fec89 - source: openapi3 tags repository: https://github.com/codessintheclassroom/api-reference-solution v3: true repositoryMetadata: repositoryId: 179300089 description: >- A specification for the API used to provide functionality for the animal shelter's web frontend created: '2019-04-03T13:50:20Z' updated: '2019-05-06T09:53:48Z' language: HTML archived: false stars: 0 watchers: 3 forks: 0 owner: codessintheclassroom logo: https://avatars.githubusercontent.com/u/49059753?v=4 repoEtag: '"359fce98850d868765944e381ceedfbbbe8bc636d18464edc527966c576a1609"' repoLastModified: Mon, 06 May 2019 09:53:48 GMT foundInMaster: true id: 81ff3479a8a482ef3a03bf6af4fb844c - source: openapi3 tags repository: https://github.com/nktks/go-oapi-gen v3: true id: c2a2af59c5cc5e67da902348ba3b5b81 repositoryMetadata: repositoryId: 234057661 description: code generator from openapi3 and go text/template created: '2020-01-15T10:39:27Z' updated: '2022-02-04T05:05:25Z' language: Smarty archived: false stars: 0 watchers: 1 forks: 0 owner: nktks logo: https://avatars.githubusercontent.com/u/7553415?v=4 repoEtag: '"66fd08e024fc6ae4a696415ac12e699171b7a8f31e61caea49ed8145357283d5"' repoLastModified: Fri, 04 Feb 2022 05:05:25 GMT foundInMaster: true oldLocations: - https://github.com/nakatamixi/go-oapi-gen - source: openapi3 tags repository: https://github.com/azargunazari/spring-boot-open-api3 v3: true repositoryMetadata: base64Readme: >- IyBPcGVuIEFwaTMgSW1wbGVtZW50YXRpb24KRGVtbyBvZiBpbXBsZW1lbnRpbmcgT3BlbiBBUEkzIG9uIFNwcmluZyBib290LgoKIyBIb3cgdG8gcnVuPwotIFRocm91Z2ggbXZuOiBgbXZuIHNwcmluZy1ib290OnJ1bmAKLSBCdWlsZCBpbWFnZSBgbXZuIHNwcmluZy1ib290OmJ1aWxkLWltYWdlYAotIFRocm91Z2ggZG9ja2VyLWNvbXBvc2U6IGBkb2NrZXItY29tcG9zZSB1cCAtZGAKCiFbXShodHRwczovL2dpdGh1Yi5jb20vQXphcmd1TmF6YXJpL1NwcmluZy1Cb290LU9wZW4tQXBpMy9ibG9iL21hc3Rlci9kb2N1bWVudGF0aW9uL3N3YWdnZXItdWkucG5nP3Jhdz10cnVlKQ== readmeEtag: '"ea7f7c0edf0413aec70b0bf79a7d2395901c93d5"' readmeLastModified: Thu, 25 Mar 2021 22:04:26 GMT repositoryId: 237673166 description: A demo of using Open API 3 specification for Spring Boot. created: '2020-02-01T20:25:03Z' updated: '2021-03-25T22:04:28Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: AzarguNazari logo: https://avatars.githubusercontent.com/u/17498897?v=4 repoEtag: '"20b8e5969076245200be25d1bfdd4c5852adb7f0385d1f413f0d5a8b9db84361"' repoLastModified: Thu, 25 Mar 2021 22:04:28 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: 09b6e6cbb9254eca724bfec84c012a07 - source: openapi3 tags repository: https://github.com/silwathge/microservices v3: true repositoryMetadata: base64Readme: >- IyBBUEkgUG9ydGFsOiBTYW1wbGUgQVBJIEltcGxlbWVudGF0aW9uIChGb3IgT3BlbkFQSSBWMykKCiMjIFNhbXBsZSBTb2x1dGlvbiBpcyBhdmFpbGFibGUgb24gQVdTIChFQzIpIGFzIGRvY2tlciBjb250YWluZXJzCgoKQXBwOiBnbG9iYWwtYXBpLW1hcmtldHBsYWNlLWFwcAoKREI6IGFwaS1wb3N0Z3JlcwoKTmV0d29yazogZ2xvYmFsLWFwaS1tYXJrZXRwbGFjZS1hcHAtbmV0d29yayhicmlkZSkKClZvbHVtZTogcG9zdGdyZXMtZGF0YWJhc2UtZGF0YS12b2x1bWUKCgojIyBTZXJ2ZXIgVVJMIGFuZCBQb3J0CgpodHRwOi8vZWMyLTEzLTIyOS02MC0yMDEuYXAtc291dGhlYXN0LTEuY29tcHV0ZS5hbWF6b25hd3MuY29tOjgwODAvCgoKIyMgUG9zdG1hbiBTY3JpcHQgCgp3aXRoIG90aGVyIGZpbGVzIHVzZWQgZm9yIHVwbG9hZGVkaW5nIHdpbGwgYmUgc2VudCBzZXBhcmF0ZWx5IHZpYSBlbWFpbC4gCgpUaGUgemlwIGZpbGUg4oCcUG9zdG1hblNjcmlwdEFuZEZpbGVzVG9VcGxvYWQuemlw4oCdIHdpbGwgYWxzbyBhdmFpbGFibGUgd2l0aCBzb3VyY2UgY29kZSBpbiB0aGUgR2l0SHViIHJlcG8KCgogMS4gVXNlIGVudmlyb25tZW50IHZhcmlhYmxlIArigJxob3N04oCdICB3aXRoIHZhbHVlIGVjMi0xMy0yMjktNjAtMjAxLmFwLXNvdXRoZWFzdC0xLmNvbXB1dGUuYW1hem9uYXdzLmNvbQoKMi4gUGxhY2Ugb3RoZXIgZmlsZXMgaW4gdGhlIFBvc3RtYW4gd29ya2luZyBkaXJlY3RvcnkKCjMuIERlZmF1bHQgdXNlciBpbiBkYiAKCgkgVXNlciA6IHVzZXJuYW1lCgkgCgkgUGFzc3dvcmQ6IHBhc3N3b3JkCgoKCgoKIyMgU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIG9uIEdpdEh1YiBhcyBhIHB1YmxpYyByZXBvIDoKCmh0dHBzOi8vZ2l0aHViLmNvbS9zaWx3YXRoZ2UvMTAxLWRpZ2l0YWwtY29kaW5nLWNoYWxsZW5nZQoKCgojIyBEb2NrZXIgaW1hZ2UgaXMgYXZhaWxhYmxlIG9uIERvY2tlSHViIDp1c2UgdGhlIG9uZSB3aXRoIGhpZ2hlc3QgdGFnCgpodHRwczovL2h1Yi5kb2NrZXIuY29tL3JlcG9zaXRvcnkvZG9ja2VyL2thcGlsYXMvZ2xvYmFsLWFwaS1tYXJrZXRwbGFjZS1hcHAKCgprYXBpbGFzL2dsb2JhbC1hcGktbWFya2V0cGxhY2UtYXBwOjAuMC4zLVNOQVBTSE9UCgoKCiMjIERvY2tlciBDb21wb3NlIEZpbGUKSXMgYXZhaWxhYmxlIHdpdGggc291cmNlIGNvZGUgaW4gdGhlIHJlcG8uCgoKIyMjIFRvIGRlcGxveSBmcm9tIGltYWdlcyBkaXJlY3RseToKCkNhbiBiZSB1c2VkIGFzIGl0IGlzIHRvIGRlcGxveSBzZXJ2aWNlIHdpdGggZGIgdG8gZG9ja2VyCgoKIyMjIFRvIGJ1aWxkIGltYWdlOgpDb21tZW50IG91dCBpbWFnZSBhbmQgdW5jb21tZW50IGFsbCB0aHJlZSBsaW5lcyB3aGljaCBpcyBjb21tZW50ZWQgb3V0IGluIHRoZSBjdXJyZW50IGZpbGUKRG8gIG12biBjbGVhbiBwYWNrYWdlCgpUaGVuIHJ1biBkb2NrZXItY29tcG9zZSB1cCAtIG5ldyBpbWFnZSB3aWxsIGJlIGNyZWF0ZWQgYW5kIHNlcnZpY2VzIHdpbGwgYmUgZGVwbG95ZWQuCgoKIyMgU2VydmVyIFVSTCBhbmQgUG9ydApodHRwOi8vZWMyLTEzLTIyOS02MC0yMDEuYXAtc291dGhlYXN0LTEuY29tcHV0ZS5hbWF6b25hd3MuY29tOjgwODAvCgoKIyMgU3dhZ2dlciBBUEkgRG9jIDoKaHR0cDovL2VjMi0xMy0yMjktNjAtMjAxLmFwLXNvdXRoZWFzdC0xLmNvbXB1dGUuYW1hem9uYXdzLmNvbTo4MDgwL3YyL2FwaS1kb2NzCgoKIyMgU3dhZ2dlciBVSSA6Cmh0dHA6Ly9lYzItMTMtMjI5LTYwLTIwMS5hcC1zb3V0aGVhc3QtMS5jb21wdXRlLmFtYXpvbmF3cy5jb206ODA4MC9zd2FnZ2VyLXVpLmh0bWwKCgojIyBBY3R1YXRvciAod2l0aCBkZWZhdWx0IGV4cG9zZWQgZW5kcG9pbnRzKSAgIDoKCmh0dHA6Ly9lYzItMTMtMjI5LTYwLTIwMS5hcC1zb3V0aGVhc3QtMS5jb21wdXRlLmFtYXpvbmF3cy5jb206ODA4MC9hY3R1YXRvcgoKCgoKCgoK readmeEtag: '"ed0bea2f80032d89d3b254886f54902b865b976f"' readmeLastModified: Sun, 12 Jul 2020 05:21:56 GMT repositoryId: 278100638 description: >- This has a Spring boot REST API built to upload Swagger API Documents as Json to web service created: '2020-07-08T13:44:12Z' updated: '2020-07-13T23:04:36Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: silwathge logo: https://avatars.githubusercontent.com/u/68016031?v=4 repoEtag: '"a22d0078aea9b3548eb9140bd616bcb118313c46b4bcbb68dd187310bc157fd6"' repoLastModified: Mon, 13 Jul 2020 23:04:36 GMT foundInMaster: true category: Server Implementations id: f4f5e6d9d29f098aaa1f521167659ce5 - source: openapi3 tags repository: https://github.com/jimleuk/uptimerobot-swagger v3: true repositoryMetadata: base64Readme: >- IyBVcHRpbWVyb2JvdC1zd2FnZ2VyCgpUaGlzIHJlcG8gY29udGFpbnMgYW4gdW5vZmZpY2lhbCBzd2FnZ2VyIGRvY3VtZW50IG9mIHRoZSBVcHRpbWVSb2JvdCBBUEkgdjIuIEl0IGlzIHdyaXR0ZW4gdG8gdGhlIFtPcGVuQXBpMyBzcGVjXShbaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9hYm91dC9dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vYWJvdXQvKSkgYW5kIHRlc3RlZCB0byByZW5kZXIgY29ycmVjdGx5IGluIFtzd2FnZ2VyLmlvIGVkaXRvcl0oW2h0dHBzOi8vZWRpdG9yLnN3YWdnZXIuaW8vXShodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLykpLgoKKipOb3RlKio6IFRoaXMgaXMgbm90IGEgMTAwJSByZXByZXNlbnRhdGlvbiBvZiB0aGUgQVBJIFNwZWMgYW5kIHVwZGF0ZXMgYXJlIGJlc3QgZWZmb3J0LiBQbGVhc2Ugc2VlIEtOT1dOX0lTU1VFUy4gUGxlYXNlIHJlZmVyIHRvIFtodHRwczovL3VwdGltZXJvYm90LmNvbS9hcGldKGh0dHBzOi8vdXB0aW1lcm9ib3QuY29tL2FwaSkgZm9yIHRoZSBvZmZpY2lhbCBBUEkgZG9jdW1lbnRhdGlvbi4KCioqTm90ZSoqOiBUaGlzIGRvY3VtZW50IGlzIG5vdCBhZmZsaWF0ZWQgd2l0aCBVcHRpbWUgUm9ib3QgU2VydmljZSBQcm92aWRlciBMdGQuIElzc3VlcyBhbmQvb3Igc3VwcG9ydCBzaG91bGQgcmVsYXRpbmcgdG8gdGhpcyBsaWJyYXJ5IGJlIGRpcmVjdGVkIHRvIHRoZSBwcm9qZWN0J3MgW2lzc3VlIHRyYWNrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1sZXVrL3VwdGltZXJvYm90LXN3YWdnZXIvaXNzdWVzKS4KCiMjIFVzYWdlCgpCZXN0IHZpZXdlZCBpbiBTd2FnZ2VyIFVJIChodHRwczovL3N3YWdnZXIuaW8vdG9vbHMvc3dhZ2dlci11aS8pLiBZb3Ugc2hvdWxkIGFsc28gYmUgYWJsZSB0byBpbXBvcnQgdGhpcyBkb2N1bWVudCB3aGVyZSBvcGVuQVBJMyBzcGVjIGlzIHN1cHBvcnRlZC4KCiMjIFJlbGF0ZWQKCiogW09mZmljaWFsIFVwdGltZXJvYm90IEFQSSBkb2N1bWVudGF0aW9uXShodHRwczovL3VwdGltZXJvYm90LmNvbS9hcGkpCiogW1Vub2ZmaWNpYWwgVXB0aW1lcm9ib3QgY2xpZW50IGZvciBub2RlL2Jyb3dzZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1sZXVrL3VwdGltZXJvYm90LWpzKQoqIFtVbm9mZmljaWFsIFVwdGltZXJvYm90IEFQSSB0eXBlc2NyaXB0IHR5cGUgZGVmaW50aW9ucyBvbmx5XShodHRwczovL2dpdGh1Yi5jb20vamltbGV1ay91cHRpbWVyb2JvdC10eXBlcykKCiMjIExJQ0VOQ0UKCk1JVA== readmeEtag: '"c7d2980456ae8724fb1e65d8372b55823e32003b"' readmeLastModified: Mon, 06 Jan 2020 23:10:28 GMT repositoryId: 229309997 description: Unofficial swagger 3.0 documentation for the UptimeRobot.com API v2 spec created: '2019-12-20T17:40:36Z' updated: '2020-01-06T23:10:47Z' language: null archived: false stars: 0 watchers: 1 forks: 1 owner: jimleuk logo: https://avatars.githubusercontent.com/u/373596?v=4 license: MIT repoEtag: '"fefb9060b75df6846b10f793d13cfc5e4ef8acea1a16f86f7fb0302d9ed478f7"' repoLastModified: Mon, 06 Jan 2020 23:10:47 GMT foundInMaster: true category: SDK id: ecc7a61b63256567835231c06282540b - source: openapi3 tags repository: https://github.com/marcbru107/openapi3-request-finder v3: true repositoryMetadata: base64Readme: >- IyBPcGVuYXBpMy1yZXF1ZXN0LWZpbmRlcgoKIyMjIyMjIE9ubHkgdGVzdGV0IGZvciBvcGVuYXBpOiAzLjAuMQoKIyMgV2h5OgoKIyMjIyBIZWxwcyB5b3UgdG8gZ2V0IHRoZSByZXF1ZXN0IG9iamVjdHMgZnJvbSBhIG9wZW5hcGktc3dhZ2dlci1maWxlICAgCgoKVXNlIGRlLmJydWNrbS5vcGVuYXBpcmVxdWVzdGZpbmRlci5PcGVuQXBpUmVxdWVzdEZpbmRlcjoKLSBwdWJsaWMgSGFzaE1hcDxTdHJpbmcsIFJlcXVlc3RzRnJvbVlhbWw+IGdldFJlcXVlc3RzTWFwKGZpbmFsIFN0cmluZyByZXF1ZXN0VHlwZSkKICAgICAqIFBhcnNlIHRoZSBvcGVuIGFwaSBpbnB1dCBmaWxlIGZvciB0aGUgcmVxdWVzdGVkIHJlcXVlc3QtdHlwZQogICAgICogQHBhcmFtIHJlcXVlc3RUeXBlIC0+IGpzb24scHJvdG9idWYsLi4KICAgICAqIEByZXR1cm4gTWFwIHdpdGggdGhlIHVybCBhcyBrZXkgYW5kIHRoZSByZXF1ZXN0IGFzIHZhbHVlIC0+IGluY2x1ZGluZyBvbmx5IGVudHJpZXMgZnJvbSB0eXAgcmVxdWVzdFR5cGUKICAgIAojIyBEZXBlbmRlbmNpZXM6CiAgICAtIG9yZy55YW1sLnNuYWtleWFtbAogICAgLSBvcmcuanVuaXQuanVwaXRlci5hcGkKICAgIC0gb3JnLnNsZjRqLkxvZ2dlcgogICAgLSBjb20uZ29vZ2xlLnByb3RvYnVmOnByb3RvYnVmLWphdmEKICAgIC0gY29tLmdvb2dsZWNvZGUucHJvdG9idWYtamF2YS1mb3JtYXQK readmeEtag: '"b4c19878a0177ddd210eb7bd56ac32126983ed4c"' readmeLastModified: Mon, 04 May 2020 21:22:59 GMT repositoryId: 260700799 description: null created: '2020-05-02T14:10:17Z' updated: '2020-05-04T21:23:02Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: MarcBru107 logo: https://avatars.githubusercontent.com/u/25484756?v=4 license: Apache-2.0 repoEtag: '"a904fcce75ecec54593ff13795ac355697d0a907094c2f474a034fde18387e43"' repoLastModified: Mon, 04 May 2020 21:23:02 GMT foundInMaster: true category: - Converters - Parsers id: 9f431e17c0f626c479ef790bc88ca437 - source: openapi3 tags repository: https://github.com/mariusconjeaud/nodejs-az-functions-api v3: true repositoryMetadata: base64Readme: >- IyBSZXF1aXJlbWVudHMKWW91IG5lZWQgdG8gaGF2ZSBpbnN0YWxsZWQgOgoqIE5vZGUuanMgdmVyc2lvbiAxMiBMVFMgZnJvbSBbaGVyZV0oaHR0cHM6Ly9ub2RlanMub3JnL2VuL2Rvd25sb2FkLykuCiogQXp1cmUgRnVuY3Rpb25zIENvcmUgVG9vbHMuIFRvIGluc3RhbGwgaXQsIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kIDoKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBhenVyZS1mdW5jdGlvbnMtY29yZS10b29scwpgYGAKCiMgU3RhcnQgQXp1cmUgRnVuY3Rpb25zCkF6dXJlIEZ1bmN0aW9ucyBDb3JlIFRvb2xzIGVuYWJsZXMgeW91IHRvIGV4ZWN1dGUgeW91ciBGdW5jdGlvbnMgcnVudGltZSBsb2NhbGx5LiBUbyBkbyBzbywgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgOgpgYGBiYXNoCmZ1bmMgc3RhcnQKYGBgCklmIGV2ZXJ5dGhpbmcgaXMgd29ya2luZyBwcm9wZXJseSwgeW91IHNob3VsZCBnZXQgdGhlIGZvbGxvd2luZyBDTEkgb3V0cHV0IDoKIVtDTEkgb3V0cHV0XShkb2NzL2Z1bmNfc3RhcnRfb3V0cHV0LnBuZyAiU3VjY2Vzc2Z1bCBDTEkgT3V0cHV0IikKVG8gdmVyaWZ5IHRoYXQgdGhlIEFQSSBpcyB3b3JraW5nIHByb3Blcmx5LCBnbyB0byB0aGUgZm9sbG93aW5nIFVSTCA6IDxodHRwOi8vbG9jYWxob3N0OjMwMDEvYXBpL2NhdHM+LgoKIyMgTm90ZSBvbiBwb3RlbnRpYWwgZXJyb3JzCkRlcGVuZGluZyBvbiB0aGUgY29uZmlndXJhdGlvbiBvZiB5b3VyIG1hY2hpbmUsIHlvdSBtaWdodCBuZWVkIHRvIGluc3RhbGwgdGhlIFsuTkVUIENvcmUgMi54IFNES10oaHR0cHM6Ly9kb3RuZXQubWljcm9zb2Z0LmNvbS9kb3dubG9hZCkuCgpUaGlzIGlzIGJlY2F1c2UgRnVuY3Rpb25zIGFyZSBidWlsdCBvbiB0b3Agb24gLk5FVCBDb3JlLiBXaGVuIHlvdSBzdGFydCB0aGUgRnVuY3Rpb25zIHJ1bnRpbWUsIGl0IHNwaW5zIHVwIGEgLk5FVCBDb3JlIHJ1bnRpbWUsIGluIHdoaWNoIHRoZSBkZXNpcmVkIHJ1bnRpbWUgb2YgeW91ciBmdW5jdGlvbnMgLSBOb2RlLmpzIGluIG91ciBjYXNlIC0gcnVucy4KCllvdSBub3JtYWxseSBkb24ndCBuZWVkIHRoaXMgd2l0aCB0aGlzIHByb2plY3QsIGFzIHdlIG1ha2UgdXNlIG9mIHRoZSBleHRlbnNpb25zIGJ1bmRsZS4gQnV0IGp1c3QgaW4gY2FzZSwgaGVyZSdzIGEgd2FybmluZy4uLgo= readmeEtag: '"0c8e8ebb75451d71452af6f766681493132d8373"' readmeLastModified: Mon, 30 Mar 2020 09:58:00 GMT repositoryId: 250509410 description: Template for Azure Functions API with Node.js runtime created: '2020-03-27T10:51:27Z' updated: '2020-03-30T09:58:42Z' language: HTML archived: false stars: 0 watchers: 1 forks: 0 owner: mariusconjeaud logo: https://avatars.githubusercontent.com/u/7679761?v=4 repoEtag: '"38af144ecac38e775e703fece8e573faa9564222e6fea12bd812d8075d15599c"' repoLastModified: Mon, 30 Mar 2020 09:58:42 GMT foundInMaster: true category: - SDK - Server Implementations id: 6f2e7cf6c04a75b2dbea1729ba73de04 - source: openapi3 tags repository: https://github.com/uuf6429/oas-php v3: true repositoryMetadata: base64Readme: >- IyBPQVMtUEhQCgpbIVtNaW5pbXVtIFBIUCBWZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3BocC0lM0UlM0QlMjA3LjQtODg5MkJGLnN2ZyldKGh0dHBzOi8vcGhwLm5ldC8pClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtYmx1ZS5zdmcpXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdXVmNjQyOS9vYXMtcGhwL21hc3Rlci9MSUNFTlNFKQpbIVtQYWNrYWdpc3RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3YvdXVmNjQyOS9vYXMtcGhwLnN2ZyldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy91dWY2NDI5L29hcy1waHApCgpPQVMtUEhQOiBQSFAgSW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5BUEkgU3BlYy4KClRoaXMgbGlicmFyeSBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgW09wZW5BUEkgdjMgc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4wLjMubWQpLgoKIyMgVXNhZ2UKClRoaXMgbGlicmFyeSBpcyBqdXN0IGEgYnVuY2ggb2YgdmFsdWUgb2JqZWN0cy4gVGhlIG1haW4gZW50cnkgcG9pbnQsIChhcyBpcyB0aGUgY2FzZSB3aXRoIHRoZSBzcGVjaWZpY2F0aW9uKSwgaXMgdGhlICoqRG9jdW1lbnQqKiBjbGFzczoKCmBgYHBocAokZG9jdW1lbnQgPSBuZXcgXHV1ZjY0MjlcT3BlbkFQSVxTcGVjXERvY3VtZW50KCk7CiRwYXRoID0gbmV3IFx1dWY2NDI5XE9wZW5BUElcUGF0aCgpOwokZG9jdW1lbnQtPnBhdGhzLT5zZXQoJy9yZXNvdXJjZScsICRwYXRoKTsKYGBgCgojIyBSZW5kZXJpbmcKCklkZWFsbHksIGl0IHNob3VsZCBiZSByZW5kZXIgd2l0aCBhIFlBTUwgc2VyaWFsaXplciAoc3VjaCBhcyBbc3ltZm9ueSdzXShodHRwczovL3N5bWZvbnkuY29tL2RvYy9jdXJyZW50L2NvbXBvbmVudHMveWFtbC5odG1sKSkuClNpbmNlIFlBTUwgaXMgYSBzdXBlcnNldCBvZiBKU09OLCBvbmUgY2FuIGFsc28gZG86CmBgYHBocAokZG9jdW1lbnQgPSBuZXcgRG9jdW1lbnQoKTsKJGpzb24gPSBqc29uX2VuY29kZSgkZG9jdW1lbnQsIEpTT05fVEhST1dfT05fRVJST1IgfCBKU09OX1BSRVRUWV9QUklOVCk7CgovLyBzYXZlIHRvIGZpbGUKZmlsZV9wdXRfY29udGVudHMoJ29wZW5hcGkueWFtbCcsICRqc29uKTsKCi8vIG9yIHNlcnZlIGl0IG91dApoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC15YW1sJyk7CmVjaG8gJGpzb247CmBgYAoKIyMgV2h5PwpUaGlzIGxpYnJhcnkgaXNuJ3QgYmV0dGVyIHRoYW4gdGhlIG11bHRpdHVkZSBvZiBnZW5lcmF0b3JzIGFuZCB3aGF0bm90IG91dCB0aGVyZS4KVGhlIGlkZWEgaXMgdGhhdCBleGlzdGluZyBhbmQgbmV3IFBIUC1iYXNlZCB0b29scyB0aGF0IGhhbmRsZSBPcGVuQVBJIGNvdWxkL3Nob3VsZCB1c2UgdGhpcyBpbXBsZW1lbnRhdGlvbiBpbnN0ZWFkIG9mIGhhdmluZyB0aGVpciBvd24gdmVyc2lvbiBvZiBPcGVuQVBJIHNwZWMuCg== readmeEtag: '"6c4738d5d4f114a6849a594aaf57cbd135c3d173"' readmeLastModified: Wed, 25 Mar 2020 19:21:33 GMT repositoryId: 250069225 description: OpenAPI Spec - PHP Implementation created: '2020-03-25T19:15:07Z' updated: '2020-03-25T19:21:55Z' language: PHP archived: false stars: 0 watchers: 2 forks: 0 owner: uuf6429 logo: https://avatars.githubusercontent.com/u/230049?v=4 license: MIT repoEtag: '"15aab3f4ed38807cef2efe9a6e2f6918a31120d628ba34f57a7a0d2e4ea7e5ec"' repoLastModified: Wed, 25 Mar 2020 19:21:55 GMT foundInMaster: true category: Parsers id: 53c737c5d2078ddb652cc0002ca0d479 - name: Traefik Hub source: Tooling repository issues source_description: >- Traefik Hub is a Kubernetes-native API Management solution for publishing, securing, and managing APIs. Configuration is driven by Kubernetes CRDs, labels, and selectors for effective GitOps.- Repository: https://github.com/traefik/traefik-hub-helm-chart link: https://doc.traefik.io/traefik-hub v3_1: false v3: true v2: true sourceIssueMetadata: issueNumber: 82 author: immanuelfodor createdAt: '2023-08-29T14:38:31Z' updatedAt: '2023-09-01T11:59:16Z' url: https://github.com/OAI/Tooling/issues/82 status: closed id: c2281522c0f2ab5084ba47e41c47d3bb foundInMaster: true - source: https://openapi.tools/ name: Apimatic Transformer category: Converters language: SaaS source_description: >- Transform API Descriptions to and from RAML, API Blueprint, OAI v2/v3, WSDL, etc. link: https://apimatic.io/transformer v2: true v3: true v3_1: true foundInMaster: true id: 4386067b4dd5088f3ab21846cc5d73a9 - source: https://openapi.tools/ name: APIMatic Developer Experience Portal category: Documentation link: https://apimatic.io/developer-experience-portal language: SaaS source_description: >- Customizable developer portals packed with language specific documentation, client libraries, code samples, an API console and much more. v2: true v3: true v3_1: true foundInMaster: true id: d79a72cfc760351d8e6bb30f5f61a750 - source: https://openapi.tools/ name: APIMatic CodeGen category: SDK language: SaaS link: https://apimatic.io/code-generation-as-a-service source_description: >- Bring in your API description (OAI v2/v3, RAML, API Blueprint, WSDL, etc.) to generate fully functional SDKs in over 10 languages. v2: true v3: true v3_1: true foundInMaster: true id: dcbfbcc9cc800167a32a0c0a400f8e89 - source: openapi3 tags repository: https://github.com/aliakkas006/fitness-training-apps v3: true id: 0a2d905098aa9a2f8eb61189712ed9f8 repositoryMetadata: base64Readme: >- WyFbY29kZSBzdHlsZTogcHJldHRpZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZV9zdHlsZS1wcmV0dGllci1mZjY5YjQuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL3ByZXR0aWVyL3ByZXR0aWVyKQoKIyBGaXRuZXNzLVRyYW5pbmlnLUFwcHMKCiMjIFtQdWJsaWMgQVBJIFJlc2VhcmNoIERvY3NdKGh0dHBzOi8vYWxpLWFra2FzLm5vdGlvbi5zaXRlL1Jlc2VhcmNoLW9uLXRoZS1wdWJsaWMtQVBJcy1vZi1Ud2l0dGVyLUdpdEh1Yi1hbmQtR29vZ2xlLTA2ZjdlN2Y3ODg5NjRjMjM5MmU1YjJiZjc0MWJhYmVlP3B2cz00KQoKIyMgW1JFU1RmdWwgQVBJIERlc2lnbiBmb3IgRml0bmVzcyBUcmFpbmluZyBBcHBsaWNhdGlvbl0oaHR0cHM6Ly9hbGktYWtrYXMubm90aW9uLnNpdGUvUkVTVGZ1bC1BUEktRGVzaWduLWZvci1GaXRuZXNzLVRyYWluaW5nLUFwcGxpY2F0aW9uLTEzNjA3ZDA2NGFiMzQzZGViMTU4ZTlkMGY3ZTFjMjAyP3B2cz00KQoKIyMgW1ByZXNlbnRhdGlvbiBiYXNlZCBvbiB0aGlzIHByb2plY3RdKGh0dHBzOi8va3VhY2JkLW15LnNoYXJlcG9pbnQuY29tLzpwOi9nL3BlcnNvbmFsLzIwMDkzNF9rdV9hY19iZC9FWVFQX3ZYZjd1TlBwZXgtbkcxUjEzTUJ5ZmcxclpHMlpXYVlNOWdLQzg1dnhBP2U9VjYySmhRKQoKIyMgT3ZlcnZpZXcKLSBEZXZlbG9wIGEgZml0bmVzcyB0cmFpbmluZyBhcHBsaWNhdGlvbiB0aGF0IHByb3ZpZGVzIHBlcnNvbmFsaXplZCB3b3Jrb3V0IHBsYW5zLuKAiwotIFRyYWNraW5nIHByb2dyZXNzIGZlYXR1cmVzIHRvIGhlbHAgaW5kaXZpZHVhbHMgdG8gYWNoaWV2ZSB0aGVpciBmaXRuZXNzIGdvYWxzLuKAiwotIEEgdHJhaW5lciBjYW4gYWRkIHNvbWUgaW1wb3J0YW50IHRyYWluaW5nIHRpcHMgZm9yIGVhY2ggd29ya291dC7igIsKLSBVc2VycyBtdXN0IGJlIGxvZ2dlZCBpbiB0byB0aGVpciBhY2NvdW50IGluIG9yZGVyIHRvIGNyZWF0ZSBwZXJzb25hbGl6ZWQgd29ya291dCBwbGFucyBhbmQgdHJhY2sgdGhlaXIgcHJvZ3Jlc3Mgb3ZlciB0aW1lLuKAiwotIFVzZXJzIGNhbiBjcmVhdGUgdGhlaXIgb3duIHByb2ZpbGUgYW5kIHNldCB0aGVpciBpbml0aWFsIGZpdG5lc3MgbGV2ZWwgYW5kIGdvYWwu4oCLCi0gVGhlIGdvYWwgaXMgdG8gY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSBmaXRuZXNzIHRvb2wgdGhhdCBtb3RpdmF0ZXMgYW5kIGd1aWRlcyB1c2VycyB0aHJvdWdoIHRoZWlyIGZpdG5lc3Mgam91cm5leS7igIsKCiMjIFRlY2hub2xvZ2llcyBVc2VkCgotIFtOb2RlLmpzXShodHRwczovL25vZGVqcy5vcmcvZW4vKSAtIE5vZGUuanPCriBpcyBhIEphdmFTY3JpcHQgcnVudGltZSBidWlsdCBvbiBDaHJvbWUncyBWOCBKYXZhU2NyaXB0IGVuZ2luZS4KLSBbRXhwcmVzcy5qc10oaHR0cHM6Ly9leHByZXNzanMuY29tLykgLSBFeHByZXNzIGlzIGEgbWluaW1hbCBhbmQgZmxleGlibGUgTm9kZS5qcyB3ZWIgYXBwbGljYXRpb24gZnJhbWV3b3JrIHRoYXQgcHJvdmlkZXMgYSByb2J1c3Qgc2V0IG9mIGZlYXR1cmVzIGZvciB3ZWIgYW5kIG1vYmlsZSBhcHBsaWNhdGlvbnMuCi0gW1R5cGVzY3JpcHRdKGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy8pIC0gVHlwZVNjcmlwdCBleHRlbmRzIEphdmFTY3JpcHQgYnkgYWRkaW5nIHR5cGVzIHRvIHRoZSBsYW5ndWFnZQotIFtNb25nb0RCXShodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy8pIC0gTW9uZ29EQiBpcyBhbiBvcGVuLXNvdXJjZSBkb2N1bWVudCBkYXRhYmFzZSBidWlsdCBvbiBhIGhvcml6b250YWwgc2NhbGUtb3V0IGFyY2hpdGVjdHVyZSB0aGF0IHVzZXMgYSBmbGV4aWJsZSBzY2hlbWEgZm9yIHN0b3JpbmcgZGF0YS4KLSBbTW9uZ29vc2VdKGh0dHBzOi8vbW9uZ29vc2Vqcy5jb20vKSAtIE1vbmdvb3NlIGlzIGEgSmF2YVNjcmlwdCBvYmplY3Qtb3JpZW50ZWQgcHJvZ3JhbW1pbmcgbGlicmFyeSB0aGF0IGNyZWF0ZXMgYSBjb25uZWN0aW9uIGJldHdlZW4gTW9uZ29EQiBhbmQgdGhlIE5vZGUuanMgSmF2YVNjcmlwdCBydW50aW1lIGVudmlyb25tZW50LgotIFtEb2NrZXJdKGh0dHBzOi8vd3d3LmRvY2tlci5jb20vKSAtIERvY2tlciBpcyBhIHBsYXRmb3JtIGRlc2lnbmVkIHRvIGhlbHAgZGV2ZWxvcGVycyBidWlsZCwgc2hhcmUsIGFuZCBydW4gY29udGFpbmVyIGFwcGxpY2F0aW9ucy4KLSBbSmVzdF0oaHR0cHM6Ly9qZXN0anMuaW8vKSAtIEplc3QgaXMgYSBKYXZhU2NyaXB0IHRlc3RpbmcgZnJhbWV3b3JrIGRlc2lnbmVkIHRvIGVuc3VyZSBjb3JyZWN0bmVzcyBvZiBhbnkgSmF2YVNjcmlwdCBjb2RlYmFzZS4KCiMjIEJhY2tlbmQgRmlsZSBTdHJ1Y3R1cmUKCmBgYApiYWNrZW5kLwoK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJzilIDilIAgZG9jcy8K4pSc4pSA4pSAIHRlc3RzCuKUlOKUgOKUgCBzcmMvCiAgICAgICAg4pSc4pSA4pSAIGluZGV4LnRzICAgICAgIC8vIGJvb3QgZmlsZQogICAgICAgIOKUnOKUgOKUgCBhcHAudHMgICAgICAgICAvLyBleHByZXNzIGFwcCByb290IGZpbGUKICAgICAgICDilJzilIDilIAgbWlkZGxld2FyZS8KICAgICAgICAgICAg4pSU4pSA4pSAIGF1dGhlbnRpY2F0ZS50cwogICAgICAgICAgICDilJTilIDilIAgYXV0aG9yaXplLnRzCiAgICAgICAgICAgIOKUlOKUgOKUgCBvd25lcnNoaXAudHMKICAgICAgICAgICAg4pSU4pSA4pSAIGluZGV4LnRzCiAgICAgICAg4pSc4pSA4pSAIHJvdXRlcy8KICAgICAgICDilIIgICDilJzilIDilIAgaW5kZXgudHMKICAgICAgICDilIIgICDilJzilIDilIAgcHVibGljLnRzCiAgICAgICAg4pSCICAg4pSc4pSA4pSAIHByaXZhdGUudHMKICAgICAgICDilIIgICDilJzilIDilIAgYWRtaW4udHMKICAgICAgICDilJzilIDilIAgYXBpLwogICAgICAgIOKUgiAgIOKUlOKUgOKUgCB2MS8KICAgICAgICDilIIgICAgICAg4pSc4pSA4pSAIGF1dGgvCiAgICAgICAg4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBpbmRleC50cwogICAgICAgIOKUgiAgICAgICDilIIgICDilJzilIDilIAgY29udHJvbGxlcnMudHMKICAgICAgICAgICAgICAgIOKUnOKUgOKUgCB3b3Jrb3V0cy8KICAgICAgICDilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGluZGV4LnRzCiAgICAgICAg4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBjb250cm9sbGVycy50cwogICAgICAgICAgICAgICAg4pSc4pSA4pSAIHByb2dyZXNzLwogICAgICAgIOKUgiAgICAgICDilIIgICDilJzilIDilIAgaW5kZXgudHMKICAgICAgICDilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGNvbnRyb2xsZXJzLnRzCiAgICAgICAgICAgICAgICDilJzilIDilIAgcHJvZmlsZS8KICAgICAgICDilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGluZGV4LnRzCiAgICAgICAg4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBjb250cm9sbGVycy50cwogICAgICAgICAgICAgICAg4pSc4pSA4pSAIHVzZXIvCiAgICAgICAg4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBpbmRleC50cwogICAgICAgIOKUgiAgICAgICDilIIgICDilJzilIDilIAgY29udHJvbGxlcnMudHMKICAgICAgICAgICAgICAgIOKUnOKUgOKUgCB0b2tlbi8KICAgICAgICDilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGluZGV4LnRzCiAgICAgICAg4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBjb250cm9sbGVycy50cwogICAgICAgIOKUnOKUgOKUgCBsaWIvCiAgICAgICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvCiAgICAgICAg4pSCICAg4pSCICAg4pSc4pSA4pSAIGluZGV4LnRzCiAgICAgICAg4pSCICAg4pSU4pSA4pSAIHdvcmtvdXQvCiAgICAgICAg4pSCICAgICAgIOKUnOKUgOKUgCBpbmRleC50cwogICAgICAgIOKUgiAgICAgICDilJzilIDilIAgcHJvZ3Jlc3MvCiAgICAgICAg4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBpbmRleC50cwogICAgICAgIOKUgiAgICAgICDilJzilIDilIAgcHJvZmlsZS8KICAgICAgICDilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGluZGV4LnRzCiAgICAgICAg4pSCICAgICAgIOKUnOKUgOKUgCB1c2VyLwogICAgICAgIOKUgiAgICAgICDilIIgICDilJzilIDilIAgaW5kZXgudHMKICAgICAgICDilIIgICAgICAg4pSc4pSA4pSAIHRva2VuLwogICAgICAgIOKUgiAgICAgICDilIIgICDilJzilIDilIAgaW5kZXgudHMKICAgICAgICDilJzilIDilIAgbW9kZWwvCiAgICAgICAg4pSCICAg4pSc4pSA4pSAIFdvcmtvdXRQbGFuLnRzCiAgICAgICAg4pSCICAg4pSc4pSA4pSAIFByb2dyZXNzLnRzCiAgICAgICAgICAgIOKUnOKUgOKUgCBQcm9maWxlLnRzCiAgICAgICAgICAgIOKUnOKUgOKUgCBVc2VyLnRzCiAgICAgICAgICAgIOKUnOKUgOKUgCBUb2tlbi50cwogICAgICAgIOKUlOKUgOKUgCB1dGlscwpgYGAKCiMjIFNldHVwCmZvbGxvdyAuZW52LmV4YW1wbGUgZmlsZSBmb3Igc2V0dXAgZW52aXJvbm1lbnQgdmFyaWFibGVzCgojIyMgUnVuIHRoZSBgTW9uZ29EQiBzZXJ2ZXJgIHdpdGggYE1vbmdvLWV4cHJlc3NgCmBgYGJhc2gKZG9ja2VyLWNvbXBvc2UgdXAgLWQKYGBgCgojIyMgUnVuIHRoZSBgYXBwbGljYXRpb24gc2VydmVyYApgYGBiYXNoCnlhcm4gcnVuIGRldgpgYGAKCiMjIyBSdW4gdGhlIGBUZXN0c2AKYGBgCnlhcm4gcnVuIHRlc3QgLlx0ZXN0c1wqKlwqKlwqCmBgYAoKCg== readmeEtag: '"3efb4596a3aee69e25b494a107b12a8ebf571390"' readmeLastModified: Fri, 24 Nov 2023 10:15:46 GMT repositoryId: 650022785 description: >- The fitness training REST API application is a collection of public API endpoints that enables users to create, manage and interact with a single builder workout plan and track their progress over time created: '2023-06-06T07:01:34Z' updated: '2023-11-24T13:31:14Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: aliakkas006 logo: https://avatars.githubusercontent.com/u/75372387?v=4 repoEtag: '"0aa375688c63fc5e1ad4f8113ccc45853d02ba2f0dc7be535095cf50059e7969"' repoLastModified: Fri, 24 Nov 2023 13:31:14 GMT category: - Testing - Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/unjello/openapi-parser v3: true repositoryMetadata: base64Readme: >- aW1hZ2U6Omh0dHA6Ly91bm1haW50YWluZWQudGVjaC9iYWRnZS5zdmdbbGluaz1odHRwOi8vdW5tYWludGFpbmVkLnRlY2gvXQ0KDQo9IERFUFJFQ0FURUQNCg0KX29wZW5hcGktcGFyc2VyXyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLCBwbGVhc2UgY29uc2lkZXIgdXNpbmcgaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItcGFyc2VyW3N3YWdnZXItcGFyc2VyXS4NCg== readmeEtag: '"5dc94a8d0e902f95a0e80e0d23c492f159b9f7f8"' readmeLastModified: Wed, 01 May 2019 08:49:54 GMT repositoryId: 128420085 description: DEPRECATED. Parser and validator for OpenAPI 3.0 created: '2018-04-06T16:37:59Z' updated: '2019-05-01T08:51:22Z' language: JavaScript archived: false stars: 0 watchers: 3 forks: 0 owner: unjello logo: https://avatars.githubusercontent.com/u/155669?v=4 license: CC0-1.0 repoEtag: '"db12884148a3aea32759c962c4ce384b0100d4cfec185a3282d411f5065503e9"' repoLastModified: Wed, 01 May 2019 08:51:22 GMT foundInMaster: true category: Code Generators id: 4aae1a6e178eff3bcd50762bb078df14 - source: openapi3 tags repository: https://github.com/shavo007/greetings-doc v3: true repositoryMetadata: base64Readme: >- IyBHcmVldGluZ3MgT3BlbkFQSSBEZWZpbml0aW9uCgojIyBXb3JraW5nIG9uIHlvdXIgT3BlbkFQSSBEZWZpbml0aW9uCgojIyMgSW5zdGFsbAoKMS4gSW5zdGFsbCBbTm9kZSBKU10oaHR0cHM6Ly9ub2RlanMub3JnLykuCjIuIENsb25lIHRoaXMgcmVwbyBhbmQgcnVuIGBucG0gaW5zdGFsbGAgaW4gdGhlIHJlcG8gcm9vdC4KCiMjIyBVc2FnZQoKIyMjIyBgbnBtIHN0YXJ0YApTdGFydHMgdGhlIHJlZmVyZW5jZSBkb2NzIHByZXZpZXcgc2VydmVyLgoKIyMjIyBgbnBtIHJ1biBidWlsZGAKQnVuZGxlcyB0aGUgZGVmaW5pdGlvbiB0byB0aGUgZGlzdCBmb2xkZXIuCgojIyMjIGBucG0gdGVzdGAKVmFsaWRhdGVzIHRoZSBkZWZpbml0aW9uLgoKIyMgQ29udHJpYnV0aW9uIEd1aWRlCgpCZWxvdyBpcyBhIHNhbXBsZSBjb250cmlidXRpb24gZ3VpZGUuIFRoZSB0b29scwppbiB0aGUgcmVwb3NpdG9yeSBkb24ndCByZXN0cmljdCB5b3UgdG8gYW55CnNwZWNpZmljIHN0cnVjdHVyZS4gQWRqdXN0IHRoZSBjb250cmlidXRpb24gZ3VpZGUKdG8gbWF0Y2ggeW91ciBvd24gc3RydWN0dXJlLiBIb3dldmVyLCBpZiB5b3UKZG9uJ3QgaGF2ZSBhIHN0cnVjdHVyZSBpbiBtaW5kLCB0aGlzIGlzIGEKZ29vZCBwbGFjZSB0byBzdGFydC4KClVwZGF0ZSB0aGlzIGNvbnRyaWJ1dGlvbiBndWlkZSBpZiB5b3UKYWRqdXN0IHRoZSBmaWxlL2ZvbGRlciBvcmdhbml6YXRpb24uCgpUaGUgYC5yZWRvY2x5LnlhbWxgIGNvbnRyb2xzIHNldHRpbmdzIGZvciB2YXJpb3VzCnRvb2xzIGluY2x1ZGluZyB0aGUgbGludCB0b29sIGFuZCB0aGUgcmVmZXJlbmNlCmRvY3MgZW5naW5lLiAgT3BlbiBpdCB0byBmaW5kIGV4YW1wbGVzIGFuZApbcmVhZCB0aGUgZG9jc10oaHR0cHM6Ly9yZWRvYy5seS9kb2NzL2NsaS9jb25maWd1cmF0aW9uLykKZm9yIG1vcmUgaW5mb3JtYXRpb24uCgoKIyMjIFNjaGVtYXMKCiMjIyMgQWRkaW5nIFNjaGVtYXMKCjEuIE5hdmlnYXRlIHRvIHRoZSBgb3BlbmFwaS9jb21wb25lbnRzL3NjaGVtYXNgIGZvbGRlci4KMi4gQWRkIGEgZmlsZSBuYW1lZCBhcyB5b3Ugd2lzaCB0byBuYW1lIHRoZSBzY2hlbWEuCjMuIERlZmluZSB0aGUgc2NoZW1hLgo0LiBSZWZlciB0byB0aGUgc2NoZW1hIHVzaW5nIHRoZSBgJHJlZmAgKHNlZSBleGFtcGxlIGJlbG93KS4KCiMjIyMjIEV4YW1wbGUgU2NoZW1hClRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBzY2hlbWEgZXhhbXBsZToKYGBgeWFtbAp0eXBlOiBzdHJpbmcKZGVzY3JpcHRpb246IFRoZSByZXNvdXJjZSBJRC4gRGVmYXVsdHMgdG8gVVVJRCB2NAptYXhMZW5ndGg6IDUwCmV4YW1wbGU6IDRmNmNmMzV4LTJjNHktNDgzei1hMGE5LTE1ODYyMWY3N2EyMQpgYGAKVGhpcyBpcyBhIG1vcmUgY29tcGxleCBzY2hlbWEgZXhhbXBsZToKYGBgeWFtbAp0eXBlOiBvYmplY3QKcHJvcGVydGllczoKICBpZDoKICAgIGRlc2NyaXB0aW9uOiBUaGUgY3VzdG9tZXIgaWRlbnRpZmllciBzdHJpbmcKICAgIHJlYWRPbmx5OiB0cnVlCiAgICBhbGxPZjoKICAgICAgLSAkcmVmOiAuL1Jlc291cmNlSWQueWFtbAogIHdlYnNpdGVJZDoKICAgIGRlc2NyaXB0aW9uOiBUaGUgd2Vic2l0ZSdzIElECiAgICBhbGxPZjoKICAgICAgLSAkcmVmOiAuL1Jlc291cmNlSWQueWFtbAogIHBheW1lbnRUb2tlbjoKICAgIHR5cGU6IHN0cmluZwogICAgd3JpdGVPbmx5OiB0cnVlCiAgICBkZXNjcmlwdGlvbjogfAogICAgICBBIHdyaXRlLW9ubHkgcGF5bWVudCB0b2tlbjsgaWYgc3VwcGxpZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIGludG8gYQogICAgICBwYXltZW50IGluc3RydW1lbnQgYW5kIGJlIHNldCBhcyB0aGUgYGRlZmF1bHRQYXltZW50SW5zdHJ1bWVudGAuIFRoZQogICAgICB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IHdpbGwgb3ZlcnJpZGUgdGhlIGBkZWZhdWx0UGF5bWVudEluc3RydW1lbnRgCiAgICAgIGluIHRoZSBjYXNlIHRoYXQgYm90aCBhcmUgc3VwcGxpZWQuIFRoZSB0b2tlbiBtYXkgb25seSBiZSB1c2VkIG9uY2UKICAgICAgYmVmb3JlIGl0IGlzIGV4cGlyZWQuCiAgZGVmYXVsdFBheW1lbnRJbnN0cnVtZW50OgogICAgJHJlZjogLi9QYXltZW50SW5zdHJ1bWVudC55YW1sCiAgY3JlYXRlZFRpbWU6CiAgICBkZXNjcmlwdGlvbjogVGhlIGN1c3RvbWVyIGNyZWF0ZWQgdGltZQogICAgYWxsT2Y6CiAgICAgIC0gJHJlZjogLi9TZXJ2ZXJUaW1lc3RhbXAueWFtbAogIHVwZGF0ZWRUaW1lOgogICAgZGVzY3JpcHRpb246IFRoZSBjdXN0b21lciB1cGRhdGVkIHRpbWUKICAgIGFsbE9mOgogICAgICAtICRyZWY6IC4vU2VydmVyVGltZXN0YW1wLnlhbWwKICB0YWdzOgogICAgZGVzY3JpcHRpb246IEEgbGlzdCBvZiBjdXN0b21lcidzIHRhZ3MKICAgIHJlYWRPbmx5OiB0cnVlCiAgICB0eXBlOiBhcnJheQogICAgaXRlbXM6CiAgICAgICRyZWY6IC4vVGFncy9UYWcueWFtbAogIHJldmlzaW9uOgogICAgZGVzY3JpcHRpb246ID4KICAgICAgVGhlIG51bWJlciBvZiB0aW1lcyB0aGUgY3VzdG9tZXIgZGF0YSBoYXMgYmVlbiBtb2RpZmllZC4KCiAgICAgIFRoZSByZXZpc2lvbiBpcyB1c2VmdWwgd2hlbiBhbmFseXppbmcgd2ViaG9vayBkYXRhIHRvIGRldGVybWluZSBpZiB0aGUKICAgICAgY2hhbmdlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbi4KICAgIHR5cGU6IGludGVnZXIKICAgIHJlYWRPbmx5OiB0cnVlCiAgX2xpbmtzOgogICAgdHlwZTogYXJyYXkKICAgIGRlc2NyaXB0aW9uOiBUaGUgbGlua3MgcmVsYXRlZCB0byByZXNvdXJjZQogICAgcmVhZE9ubHk6IHRydWUKICAgIG1pbkl0ZW1zOiAzCiAgICBpdGVtczoKICAgICAgYW55T2Y6CiAgICAgICAgLSAkcmVmOiAuL0xpbmtzL1NlbGZMaW5rLnlhbWwKICAgICAgICAtICRyZWY6IC4vTGlua3MvTm90ZXNMaW5rLnlhbWwKICAgICAgICAtICRyZWY6IC4vTGlua3MvRGVmYXVsdFBheW1lbnRJbnN0cnVtZW50TGluay55YW1sCiAgICAgICAgLSAkcmVmOiAuL0xpbmtzL0xlYWRTb3VyY2VMaW5rLnlhbWwKICAgICAgICAtICRyZWY6IC4vTGlua3MvV2Vic2l0ZUxpbmsueWFtbAogIF9lbWJlZGRlZDoKICAgIHR5cGU6IGFycmF5CiAgICBkZXNjcmlwdGlvbjogPi0KICAgICAgQW55IGVtYmVkZGVkIG9iamVjdHMgYXZhaWxhYmxlIHRoYXQgYXJlIHJlcXVlc3RlZCBieSB0aGUgYGV4cGFuZGAKICAgICAgcXVlcnlzdHJpbmcgcGFyYW1ldGVyLgogICAgcmVhZE9ubHk6IHRydWUKICAgIG1pbkl0ZW1zOiAxCiAgICBpdGVtczoKICAgICAgYW55T2Y6CiAgICAgICAgLSAkcmVmOiAuL0VtYmVkcy9MZWFkU291cmNlRW1iZWQueWFtbAoKYGBgCgojIyMjIyBVc2luZyB0aGUgYCRyZWZgCgpOb3RpY2UgaW4gdGhlIGNvbXBsZXggZXhhbXBsZSBhYm92ZSB0aGUgc2NoZW1hIGRlZmluaXRpb24gaXRzZWxmIGhhcyBgJHJlZmAgbGlua3MgdG8gb3RoZXIgc2NoZW1hcyBkZWZpbmVkLgoKSGVyZSBpcyBhIHNtYWxsIGV4Y2VycHQgd2l0aCBhbiBleGFtcGxlOgoKYGBgeWFtbApkZWZhdWx0UGF5bWVudEluc3RydW1lbnQ6CiAgJHJlZjogLi9QYXltZW50SW5zdHJ1bWVudC55YW1sCmBgYAoKVGhlIHZhbHVlIG9mIHRoZSBgJHJlZmAgaXMgdGhlIHBhdGggdG8gdGhlIG90aGVyIHNjaGVtYSBkZWZpbml0aW9uLgoKWW91IG1heSB1c2UgYCRyZWZgcyB0byBjb21wb3NlIHNjaGVtYSBmcm9tIG90aGVyIGV4aXN0aW5nIHNjaGVtYSB0byBhdm9pZCBkdXBsaWNhdGlvbi4KCllvdSB3aWxsIHVzZSBgJHJlZmBzIHRvIHJlZmVyZW5jZSBzY2hlbWEgZnJvbSB5b3VyIHBhdGggZGVmaW5pdGlvbnMuCgojIyMjIEVkaXRpbmcgU2NoZW1hcwoKMS4gTmF2aWdhdGUgdG8gdGhlIGBvcGVuYXBpL2NvbXBvbmVudHMvc2NoZW1hc2AgZm9sZGVyLgoyLiBPcGVuIHRoZSBmaWxlIHlvdSB3aXNoIHRvIGVkaXQuCjMuIEVkaXQuCgojIyMgUGF0aHMKCiMjIyMgQWRkaW5nIGEgUGF0aAoKMS4gTmF2aWdhdGUgdG8gdGhlIGBvcGVuYXBpL3BhdGhzYCBmb2xkZXIuCjIuIEFkZCBhIG5ldyBZQU1MIGZpbGUgbmFtZWQgbGlrZSB5b3VyIFVSTCBlbmRwb2ludCBleGNlcHQgcmVwbGFjaW5nIGAvYCB3aXRoIGBAYCBhbmQgcHV0dGluZyBwYXRoIHBhcmFtZXRlcnMgaW50byBjdXJseSBicmFjZXMgbGlrZSBge2V4YW1wbGV9YC4KMy4gQWRkIHRoZSBwYXRoIGFuZCBhIHJlZiB0byBpdCBpbnNpZGUgb2YgeW91ciBgb3BlbmFwaS55YW1sYCBmaWxlIGluc2lkZSBvZiB0aGUgYG9wZW5hcGlgIGZvbGRlci4KCkV4YW1wbGUgYWRkaXRpb24gdG8gdGhlIGBvcGVuYXBpLnlhbWxgIGZpbGU6CmBgYHlhbWwKJy9jdXN0b21lcnMve2lkfSc6CiAgJHJlZjogJy4vcGF0aHMvY3VzdG9tZXJzQHtpZH0ueWFtbCcKYGBgCgpIZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSBZQU1MIGZpbGUgbmFtZWQgYGN1c3RvbWVyc0B7aWR9LnlhbWxgIGluIHRoZSBgcGF0aHNgIGZvbGRlcjoKCmBgYHlhbWwKZ2V0OgogIHRhZ3M6CiAgICAtIEN1c3RvbWVycwogIHN1bW1hcnk6IFJldHJpZXZlIGEgbGlzdCBvZiBjdXN0b21lcnMKICBvcGVyYXRpb25JZDogR2V0Q3VzdG9tZXJDb2xsZWN0aW9uCiAgZGVzY3JpcHRpb246IHwKICAgIFlvdSBjYW4gaGF2ZSBhIG1hcmtkb3duIGRlc2NyaXB0aW9uIGhlcmUuCiAgcGFyYW1ldGVyczoKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25MaW1pdC55YW1sCiAgICAtICRyZWY6IC4uL2NvbXBvbmVudHMvcGFyYW1ldGVycy9jb2xsZWN0aW9uT2Zmc2V0LnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25GaWx0ZXIueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvblF1ZXJ5LnlhbWwKICAgIC0gJHJlZjogLi4vY29tcG9uZW50cy9wYXJhbWV0ZXJzL2NvbGxlY3Rpb25FeHBhbmQueWFtbAogICAgLSAkcmVmOiAuLi9jb21wb25lbnRzL3BhcmFtZXRlcnMvY29sbGVjdGlvbkZpZWxkcy55YW1sCiAgcmVzcG9uc2VzOgogICAgJzIwMCc6CiAgICAgIGRlc2NyaXB0aW9uOiBBIGxpc3Qgb2YgQ3VzdG9tZXJzIHdhcyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5CiAgICAgIGhlYWRlcnM6CiAgICAgICAgUmF0ZS1MaW1pdC1MaW1pdDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9SYXRlLUxpbWl0LUxpbWl0LnlhbWwKICAgICAgICBSYXRlLUxpbWl0LVJlbWFpbmluZzoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9SYXRlLUxpbWl0LVJlbWFpbmluZy55YW1sCiAgICAgICAgUmF0ZS1MaW1pdC1SZXNldDoKICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvaGVhZGVycy9SYXRlLUxpbWl0LVJlc2V0LnlhbWwKICAgICAgICBQYWdpbmF0aW9uLVRvdGFsOgogICAgICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9oZWFkZXJzL1BhZ2luYXRpb24tVG90YWwueWFtbAogICAgICAgIFBhZ2luYXRpb24tTGltaXQ6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUGFnaW5hdGlvbi1MaW1pdC55YW1sCiAgICAgICAgUGFnaW5hdGlvbi1PZmZzZXQ6CiAgICAgICAgICAkcmVmOiAuLi9jb21wb25lbnRzL2hlYWRlcnMvUGFnaW5hdGlvbi1PZmZzZXQueWFtbAogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvc2NoZW1hcy9DdXN0b21lci55YW1sCiAgICAgICAgdGV4dC9jc3Y6CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICRyZWY6IC4uL2NvbXBvbmVudHMvc2NoZW1hcy9DdXN0b21lci55YW1sCiAgICAnNDAxJzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvQWNjZXNzRm9yYmlkZGVuLnlhbWwKICB4LWNvZGUtc2FtcGxlczoKICAgIC0gbGFuZzogUEhQCiAgICAgIHNvdXJjZToKICAgICAgICAkcmVmOiAuLi9jb2RlX3NhbXBsZXMvUEhQL2N1c3RvbWVycy9nZXQucGhwCnBvc3Q6CiAgdGFnczoKICAgIC0gQ3VzdG9tZXJzCiAgc3VtbWFyeTogQ3JlYXRlIGEgY3VzdG9tZXIgKHdpdGhvdXQgYW4gSUQpCiAgb3BlcmF0aW9uSWQ6IFBvc3RDdXN0b21lcgogIGRlc2NyaXB0aW9uOiBBbm90aGVyIG1hcmtkb3duIGRlc2NyaXB0aW9uIGhlcmUuCiAgcmVxdWVzdEJvZHk6CiAgICAkcmVmOiAuLi9jb21wb25lbnRzL3JlcXVlc3RCb2RpZXMvQ3VzdG9tZXIueWFtbAogIHJlc3BvbnNlczoKICAgICcyMDEnOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9DdXN0b21lci55YW1sCiAgICAnNDAxJzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvQWNjZXNzRm9yYmlkZGVuLnlhbWwKICAgICc0MDknOgogICAgICAkcmVmOiAuLi9jb21wb25lbnRzL3Jlc3BvbnNlcy9Db25mbGljdC55YW1sCiAgICAnNDIyJzoKICAgICAgJHJlZjogLi4vY29tcG9uZW50cy9yZXNwb25zZXMvSW52YWxpZERhdGFFcnJvci55YW1sCiAgeC1jb2RlLXNhbXBsZXM6CiAgICAtIGxhbmc6IFBIUAogICAgICBzb3VyY2U6CiAgICAgICAgJHJlZjogLi4vY29kZV9zYW1wbGVzL1BIUC9jdXN0b21lcnMvcG9zdC5waHAKYGBgCgpZb3UnbGwgc2VlIGV4dGVuc2l2ZSB1c2FnZSBvZiBgJHJlZmBzIGluIHRoaXMgZXhhbXBsZSB0byBkaWZmZXJlbnQgdHlwZXMgb2YgY29tcG9uZW50cyBpbmNsdWRpbmcgc2NoZW1hcy4KCllvdSdsbCBhbHNvIG5vdGljZSBgJHJlZmBzIHRvIGNvZGUgc2FtcGxlcy4KCiMjIyBDb2RlIHNhbXBsZXMKCjEuIE5hdmlnYXRlIHRvIHRoZSBgb3BlbmFwaS9jb2RlX3NhbXBsZXNgIGZvbGRlci4KMi4gTmF2aWdhdGUgdG8gdGhlIGA8bGFuZ3VhZ2U+YCAoZS5nLiBQSFApIHN1Yi1mb2xkZXIuCjMuIE5hdmlnYXRlIHRvIHRoZSBgcGF0aGAgZm9sZGVyLCBhbmQgYWRkIHJlZiB0byB0aGUgY29kZSBzYW1wbGUuCgpZb3UgY2FuIGFkZCBsYW5ndWFnZXMgYnkgYWRkaW5nIG5ldyBmb2xkZXJzIGF0IHRoZSBhcHByb3ByaWF0ZSBwYXRoIGxldmVsLgoKTW9yZSBkZXRhaWxzIGluc2lkZSB0aGUgYGNvZGVfc2FtcGxlc2AgZm9sZGVyIFJFQURNRS4K readmeEtag: '"35125785da8665cd825ff9df7549125133f94bba"' readmeLastModified: Thu, 24 Sep 2020 03:44:02 GMT repositoryId: 289852836 description: >- generated by https://github.com/Redocly/create-openapi-repo to showcase open api spec v3 (swagger) created: '2020-08-24T07:02:05Z' updated: '2020-09-24T03:44:06Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: shavo007 logo: https://avatars.githubusercontent.com/u/5466825?v=4 license: MIT repoEtag: '"a392ffe42edb5852b9722c9eb22c997054f410df1825fa52fa46cf4edbf8ca3b"' repoLastModified: Thu, 24 Sep 2020 03:44:06 GMT foundInMaster: true category: Parsers id: b9070ef2123ac1514346b02aca45a305 - source: openapi3 tags repository: https://github.com/realotz/protoc-gen-openapi v3: true repositoryMetadata: base64Readme: >- CumAgueUqOS4jmtyYXRvcy1nb+eahHByb3RvYnVm55Sf5oiQb3BlbmFwaTPmlofmoaPmianlsZUKcHMg5pqC5LiN5pSv5oyBbWFw57uT5p6E77yMbWFw5a6a5LmJ5Lya6L+U5Zue5LiA5Liq56m655qEb2JqZWN0CmBgYGdvbGFuZwpnbyBnZXQgLXUgZ2l0aHViLmNvbS9yZWFsb3R6L3Byb3RvYy1nZW4tb3BlbmFwaQpgYGAK55Sf5oiQCmBgYGJpZ3F1ZXJ5CnByb3RvYyAtLXByb3RvX3BhdGg9LiAgLS1wcm90b19wYXRoPS4vdGhpcmRfcGFydHkgLS1vcGVuYXBpX291dD1wYXRocz1zb3VyY2VfcmVsYXRpdmU6LiB0ZXN0LnByb3RvCmBgYA== readmeEtag: '"5ff1574ca3fb0d49df444683c5492a48bb0148a4"' readmeLastModified: Wed, 31 Mar 2021 10:01:47 GMT repositoryId: 352942598 description: protoc-gen-openapi created: '2021-03-30T09:23:30Z' updated: '2021-03-31T10:01:55Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: realotz logo: https://avatars.githubusercontent.com/u/78065238?v=4 repoEtag: '"6924d1758efde939cbd1c4a61e2692a3bd2fb0e254f746b54fae592b1adf71b4"' repoLastModified: Wed, 31 Mar 2021 10:01:55 GMT foundInMaster: true category: - Data Validators - Parsers id: 25c1e5522b2f773662415fcbca9e279b - source: openapi3 tags repository: https://github.com/hbhb-devloper/message-hub v3: true repositoryMetadata: base64Readme: IyBtZXNzYWdlLWh1YgoK5raI5oGv5Lit5b+DCg== readmeEtag: '"1a4becf9447e8e5f93fc93efa04ccd69f8607f10"' readmeLastModified: Sat, 20 Mar 2021 12:06:53 GMT repositoryId: 349712744 description: 财务管理系统-后端服务-消息中心 created: '2021-03-20T12:01:08Z' updated: '2021-03-20T12:23:55Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"13469a9c9ba189ac1f30222bbcae203f9ac073d61d908572251650301e8c12c4"' repoLastModified: Sat, 20 Mar 2021 12:23:55 GMT foundInMaster: true category: - Data Validators - Parsers - Server Implementations id: 87c611867e98d0e7c2c0fdba5a9c8a19 - source: openapi3 tags repository: https://github.com/mal2-project/fake-shop-detection_detector-api v3: true repositoryMetadata: base64Readme: >- IyBGYWtlLVNob3AgRGV0ZWN0b3IgQVBJCgojIyBBYm91dCAvIFN5bm9wc2lzCgoqIGNlbnRyYWwgc291cmNlIGZvciBzZXJ2aW5nIGJyb3dzZXIgcGx1Z2luCiogaG9tb2dlbmVvdXNseSBpbnRlZ3JhdGVzIG11bHRpcGxlIGxvY2FsIG9yIGFwaSBwcm92aWRlcnMgb2YgdHJ1c3R3b3J0aHkgYW5kIGtub3duIGZyYXVkdWxlbnQgc2l0ZXMKKiBwcm92aWRlcyBtYWwyLW1vZGVsIHByZWRpY3Rpb24gY2FwYWJpbGl0aWVzCiogY2FjaGluZyBhbmQgbG9hZCBiYWxhbmNpbmcKKiBQcm9qZWN0IHN0YXR1czogd29ya2luZy9wcm90b3R5cGUKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgo+ICogW1JlcXVpcmVtZW50c10oI3JlcXVpcmVtZW50cykKPiAqIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCj4gKiBbVXNhZ2VdKCN1c2FnZSkKPiAqIFtSdW5uaW5nIHdpdGggRG9ja2VyXSgjUnVubmluZy13aXRoLURvY2tlcikKPiAqIFtSRVNULUFQSV0oI3Jlc3QtYXBpKQo+ICogW0Fib3V0IE1BTDJdKCNhYm91dC1tYWwyKQo+ICogW0NvbnRhY3RdKCNjb250YWN0KQo+ICogW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgUmVxdWlyZW1lbnRzCgoqIFVidW50dSAxNi4wNAoqIFB5dGhvbiAzLjgKKiBQb3N0Z3JlU1FMIDEwCiogUHl0aG9uLVBhY2thZ2VzIGFzIGRlZmluZWQgaW4gW3JlcXVpcm1lbnRzLnR4dF0oYmFja2VuZC1hcGktc2VydmVyL3JlcXVpcmVtZW50cy50eHQpCgojIyBJbnN0YWxsYXRpb24KCkNyZWF0ZSBhIFB5dGhvbiB2aXJ0dWFsIGVudmlyb25tZW50IHdpdGggZS5nLiBbdmlydHVhbGVudndyYXBwZXJdKGh0dHBzOi8vdmlydHVhbGVudndyYXBwZXIucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Lykgb3IgYW5hY29uZGEuClRoZSBQeXRob24gdmVyc2lvbiB1c2VkIGlzIDMuOC4KCmBgYHNoZWxsCiQgbWt2aXJ0dWFsZW52IC1wIC9wYXRoL3RvL3B5dGhvbjMuOCByZXN0LWFwaQpgYGAKCkluc3RhbGwgdGhlIHJlcXVpcmVkIFB5dGhvbiBwYWNrYWdlcwoKYGBgc2hlbGwKcGlwIGluc3RhbGwgLXIgYmFja2VuZC1hcGktc2VydmVyL3JlcXVpcmVtZW50cy50eHQKYGBgCgpQb3N0Z3JlU1FMIDEwIGlzIHVzZWQgYXMgZGF0YWJhc2UuIENyZWF0ZSBhIGRhdGFiYXNlIGFuZCBjaGFuZ2UgdGhlIGBiYWNrZW5kLWFwaS1zZXJ2ZXIvc3dhZ2dlcl9zZXJ2ZXIvbWFscy9kYi9oYW5kbGVyL2RiX2hhbmRsZXIucHlgIGFjY29yZGluZ2x5LgoKVGhlIGRhdGFiYXNlIGluaXRpYWxpemlhdGlvbiBpcyBkb25lIGJ5IGNhbGxpbmcgaW5pdC1tYWwyLWRiLnNoCmBgYHNoZWxsCiMhL2Jpbi9iYXNoCnNldCAtZQpwc3FsIC12IE9OX0VSUk9SX1NUT1A9MSAtLXVzZXJuYW1lICIkUE9TVEdSRVNfVVNFUiIgLS1kYm5hbWUgIiRQT1NUR1JFU19EQiIgPDwtRU9TUUwKICAgIENSRUFURSBST0xFIG1hbDJ1c2VyIFdJVEggTE9HSU4gUEFTU1dPUkQgJ2NoYW5nZV9wYXNzJyBTVVBFUlVTRVIgSU5IRVJJVCBDUkVBVEVEQiBDUkVBVEVST0xFOwogICAgQ1JFQVRFIERBVEFCQVNFIG1hbDJyZXN0ZGIgT1dORVIgbWFsMnVzZXI7CkVPU1FMCmBgYAoKIyMgVXNhZ2UKClRvIHJ1biB0aGUgc2VydmVyLCBwbGVhc2UgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGZyb20gdGhlIGJhY2tlbmQtYXBpLXNlcnZlciBkaXJlY3Rvcnk6CgpgYGAKcHl0aG9uMyAtbSBzd2FnZ2VyX3NlcnZlcgpgYGAKCmFuZCBwb2ludCB5b3VyIGJyb3dzZXIgdG86CgpgYGAKaHR0cDovL2xvY2FsaG9zdDo4MDgwL21hbHp3ZWkvZWNvbW1lcmNlLzEuMS91aS8KYGBgCgpZb3VyIFN3YWdnZXIgZGVmaW5pdGlvbiBsaXZlcyBoZXJlOgoKYGBgCmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9tYWx6d2VpL2Vjb21tZXJjZS8xLjEvc3dhZ2dlci5qc29uCmBgYAoKQXR0ZW50aW9uLCB0aGlzIGlzIGZvciBkZXZlbG9wbWVudCBvbmx5LiBJbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQsIGZvciBleGFtcGxlLCBbdXdzZ2ldKGh0dHBzOi8vdXdzZ2ktZG9jcy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvV1NHSXF1aWNrc3RhcnQuaHRtbCkgY2FuIGJlIHVzZWQgd2l0aCBbYXBhY2hlMl0oaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvKS4KCiMjIFJ1bm5pbmcgd2l0aCBEb2NrZXIKCkZvciBhIGZ1bGwgbG9jYWwgZGVwbG95bWVudCB3aXRoIGFuIGV4dGVybmFsIGRiIGxhdW5jaCB0aGUgZG9ja2VyIGJ1aWxkOgpgYGBzaGVsbAojIHN0YXJ0aW5nIHRoZSBjb250YWluZXJzCmRvY2tlci1jb21wb3NlIC1mIGRvY2tlci1jb21wb3NlLmxvY2FsX2Rldi55bWwgdXAKYGBgCgpGb3IgYSBmdWxsIHNlcnZlciBkZXBsb3ltZW50IGxhdW5jaCB0aGUgZG9ja2VyIGJ1aWxkOgpgYGBzaGVsbAojIGJ1aWxkaW5nIHRoZSBpbWFnZQpkb2NrZXItY29tcG9zZSBidWlsZCAtLWJ1aWxkLWFyZyBFTkRQT0lOVF9CQVNFPXlvdXIuc2VydmVyLmxvY2F0aW9uCgojIHN0YXJ0aW5nIHRoZSBjb250YWluZXJzCmRvY2tlci1jb21wb3NlIHVwCmBgYAoKQWxsIGRldGFpbHMgb24gdGhlIGRvY2tlciBzdGFuZC1hbG9uIG9yIGRvY2tlci1jb21wb3NlIGJ1aWxkIGFyZSBwcm92aWRlZCBpbiB0aGUgZmlsZXMKYGRvY2tlci1jb21wb3NlLnltbGAKYGRvY2tlci1jb21wb3NlLmxvY2FsX2Rldi55bWxgCmFuZApgYmFja2VuZC1hcGktc2VydmVyL2RvY2tlci9Eb2NrZXJmaWxlYAoKVGhlIGNvZGUgYXMgaXMgY29udGFpbnMgc2V0dGluZ3MgZm9yIGxvY2FsIGRldiBkZXBsb3ltZW50LiBUaGUgRG9ja2VyZmlsZSB1c2VzICdzZWQnIHRvIHByb3ZpZGUgdGhlIHByb2R1Y3Rpb24gY29uZmlndXJhdGlvbiBhbmQgZG9ja2VyLWNvbXBvc2UgdXAgdG8gc3RhcnQgdGhlIGludGVncmF0ZWQgc3lzdGVtCmBSVU4gc2VkIC1pICJzfDEyNy4wLjAuMXwkZW52X0VORFBPSU5UX0JBU0V8ZyIgc3dhZ2dlcl9zZXJ2ZXIvc3dhZ2dlci9zd2FnZ2VyLnlhbWxgCgojIyBSRVNULUFQSQoKVGhlIFJFU1QgQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MS9tYWx6d2VpL2Vjb21tZXJjZS8xLjEvdWkvLgoKUGxlYXNlIG5vdGUgYWxsIHBvcnQgY29uZmlndXJhdGlvbnMgb2YgdGhlIHNlcnZlciBhcmUgZGVmaW5lZCB3aXRoaW4gdGhlIGRvY2tlci1jb21wb3NlIGJ1aWxkIHN0YWdlLiBUaGVyZWZvcmUgbWFrZSBzdXJlIHdoZW4gYWRqdXN0aW5nIHRoZSBwb3J0cyB3aXRoaW4gZG9ja2VyLWNvbXBvc2UueW1sIHRvIGhhdmUgaWRlbnRpY2FsIHBvcnRzIGZvciBjb250YWluZXIgYW5kIGhvc3Qgd2l0aGluIHRoZSBtYWwyLXJlc3QtYXBpIHNlcnZpY2UgYXMgdGhleSBhcmUgcGFzc2VkIHRvIGNvbm5leGlvbltzd2FnZ2VyLXVpXSBhdCBidWlsZCB0aW1lLgoKIyMgQWJvdXQgTUFMMgoKVGhlIE1BTDIgcHJvamVjdCBhcHBsaWVzIERlZXAgTmV1cmFsIE5ldHdvcmtzIGFuZCBVbnN1cGVydmlzZWQgTWFjaGluZSBMZWFybmluZyB0byBhZHZhbmNlIGN5YmVyY3JpbWUgcHJldmVudGlvbiBieSBhKSBhdXRvbWF0aW5nIHRoZSBkaXNjb3Zlcnkgb2YgZnJhdWR1bGVudCBlQ29tbWVyY2UgYW5kIGIpIGRldGVjdGluZyBQb3RlbnRpYWxseSBIYXJtZnVsIEFwcHMgKFBIQXMpIGluIEFuZHJvaWQuClRoZSBnb2FsIG9mIHRoZSBNQUwyIHByb2plY3QgaXMgdG8gcHJvdmlkZSAoaSkgYW4gT3BlbiBTb3VyY2UgZnJhbWV3b3JrIGFuZCBleHBlcnQgdG9vbHMgd2l0aCBpbnRlZ3JhdGVkIGZ1bmN0aW9uYWxpdHkgYWxvbmcgdGhlIHJlcXVpcmVkIHBpcGVsaW5lIOKAkyBmcm9tIG1hbGljaW91cyBkYXRhIGFyY2hpdmluZywgZmVhdHVyZSBzZWxlY3Rpb24gYW5kIGV4dHJhY3Rpb24sIHRyYWluaW5nIG9mIE1hY2hpbmUgTGVhcm5pbmcgY2xhc3NpZmljYXRpb24gYW5kIGRldGVjdGlvbiBtb2RlbHMgdG93YXJkcyBleHBsYWluYWJpbGl0eSBpbiB0aGUgYW5hbHlzaXMgb2YgcmVzdWx0cyAoaWkpIHRvIGV4ZWN1dGUgaXRzIGNvbXBvbmVudHMgYXQgc2NhbGUgYW5kIChpaWkpIHRvIHB1Ymxpc2ggYW4gYW5ub3RhdGVkIEdyb3VuZC1UcnV0aCBkYXRhc2V0IGluIGJvdGggYXBwbGljYXRpb24gZG9tYWlucy4gVG8gcmFpc2UgYXdhcmVuZXNzIGZvciBjeWJlcmNyaW1lIHByZXZlbnRpb24gaW4gdGhlIGdlbmVyYWwgcHVibGljLCB0d28gZGVtb25zdHJhdG9ycywgYSBGYWtlLVNob3AgRGV0ZWN0aW9uIEJyb3dzZXIgUGx1Z2luIGFzIHdlbGwgYXMgYSBBbmRyb2lkIE1hbHdhcmUgRGV0ZWN0aW9uIEFuZHJvaWQgYXBwIGFyZSByZWxlYXNlZCB0aGF0IGFsbG93IGxpdmUtaW5zcGVjdGlvbiBhbmQgQUkgYmFzZWQgcHJlZGljdGlvbnMgb24gdGhlIHRydXN0d29ydGhpbmVzcyBvZiBlQ29tbWVyY2Ugc2l0ZXMgYW5kIEFuZHJvaWQgYXBwcy4KClRoZSB3b3JrIGlzIGJhc2VkIG9uIHJlc3VsdHMgY2FycmllZCBvdXQgaW4gdGhlIHJlc2VhcmNoIHByb2plY3QgW01BTDIgcHJvamVjdF0oaHR0cHM6Ly9wcm9qZWt0ZS5mZmcuYXQvcHJvamVrdC8zMDQ0OTc1KSwgd2hpY2ggd2FzIHBhcnRpYWxseSBmdW5kZWQgYnkgdGhlIEF1c3RyaWFuIEZlZGVyYWwgTWluaXN0cnkgZm9yIENsaW1hdGUgQWN0aW9uLCBFbnZpcm9ubWVudCwgRW5lcmd5LCBNb2JpbGl0eSwgSW5ub3ZhdGlvbiBhbmQgVGVjaG5vbG9neSAoQk1LKSB0aHJvdWdoIHRoZSBJQ1Qgb2YgdGhlIGZ1dHVyZSByZXNlYXJjaCBwcm9ncmFtICg2dGggY2FsbCkgbWFuYWdlZCBieSB0aGUgQXVzdHJpYW4gZmVkZXJhbCBmdW5kaW5nIGFnZW5jeSAoRkZHKS4KKiBBdXN0cmlhbiBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSBHbWJILCBDZW50ZXIgZm9yIERpZ2l0YWwgU2FmZXR5IGFuZCBTZWN1cml0eSBbQUlUXShodHRwczovL3d3dy5haXQuYWMuYXQvKQoqIEF1c3RyaWFuIEluc3RpdHV0ZSBmb3IgQXBwbGllZCBUZWxlY29tbXVuaWNhdGlvbnMgW8OWSUFUXShodHRwczovL3d3dy5vaWF0LmF0KQoqIFgtTkVUIFNlcnZpY2VzIEdtYkggW1hORVRdKGh0dHBzOi8veC1uZXQuYXQvZGUvKQoqIEt1cmF0b3JpdW0gc2ljaGVyZXMgw5ZzdGVycmVpY2ggW0tTw5ZdKGh0dHBzOi8va3VyYXRvcml1bS1zaWNoZXJlcy1vZXN0ZXJyZWljaC5hdC8pCiogSUtBUlVTIFNlY3VyaXR5IFNvZnR3YXJlIFtJS0FSVVNdKGh0dHBzOi8vd3d3LmlrYXJ1c3NlY3VyaXR5LmNvbS8pCgpNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBhdCBbd3d3Lm1hbHp3ZWkuYXRdKGh0dHA6Ly93d3cubWFsendlaS5hdCkKCiMjIENvbnRhY3QKRm9yIGRldGFpbHMgb24gYmVoYWxmIG9mIHRoZSBNQUwyIGNvbnNvcnRpdW0gY29udGFjdDogCkFuZHJldyBMaW5kbGV5IChwcm9qZWN0IGxlYWQpClJlc2VhcmNoIEVuZ2luZWVyLCBEYXRhIFNjaWVuY2UgJiBBcnRpZmljaWFsIEludGVsbGlnZW5jZQpDZW50ZXIgZm9yIERpZ2l0YWwgU2FmZXR5IGFuZCBTZWN1cml0eSwgQUlUIEF1c3RyaWFuIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5IEdtYkgKR2llZmluZ2dhc3NlIDQgfCAxMjEwIFZpZW5uYSB8IEF1c3RyaWEKVCArNDMgNTA1NTAtNDI3MiB8IE0gKzQzIDY2NCA4MTU3ODQ4IHwgRiArNDMgNTA1NTAtNDE1MAphbmRyZXcubGluZGxleUBhaXQuYWMuYXQgfCB3d3cuYWl0LmFjLmF0Cm9yCldvZmxnYW5nIEVpYm5lciwgWC1ORVQgU2VydmljZXMgR21iSCwgd2VAeC1uZXQuYXQKCiMjIExpY2Vuc2UKVGhlIE1BTDIgU29mdHdhcmUgc3RhY2sgaXMgZHVhbC1saWNlbnNlZCB1bmRlciBjb21tZXJjaWFsIGFuZCBvcGVuIHNvdXJjZSBsaWNlbnNlcy4gClRoZSBTb2Z0d2FyZSBpbiB0aGlzIHJlcG9zaXRvcnkgaXMgc3ViamVjdCBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZGVmaW5lZCBpbiBmaWxlICdMSUNFTlNFLm1kJwo= readmeEtag: '"68115733d2d46c34131acd001a2f25a70026c7bd"' readmeLastModified: Tue, 23 Mar 2021 20:58:20 GMT repositoryId: 350778457 description: >- MAL2 Fake-Shop Detector API integration of known legit and fraudulent sites, integration of detector-models, prediction, API for serving plugin interaction created: '2021-03-23T16:16:51Z' updated: '2022-02-06T02:00:28Z' language: Python archived: false stars: 0 watchers: 3 forks: 0 owner: mal2-project logo: https://avatars.githubusercontent.com/u/75363498?v=4 license: NOASSERTION repoEtag: '"b274c132974c7dec5e19d4d6dd55147e881f93f535002e5d121eeed5c37eb8d1"' repoLastModified: Sun, 06 Feb 2022 02:00:28 GMT foundInMaster: true category: Server Implementations id: 182085f26b44efedde138bc7a37bba60 - source: openapi3 tags repository: https://github.com/sharmar0790/spring-redis-docker v3: true repositoryMetadata: base64Readme: >- IyBTcHJpbmcgUmVkaXMKCiMjIFRhYmxlIG9mIENvbnRlbnRzCi0gW1doYXQgaXMgUmVkaXMuXSgjd2hhdC1pcy1yZWRpcykKLSBbVXNlIENhc2VdKCN1c2UtY2FzZSkKLSBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQogICAgKyBbVHdvIG1ldGhvZHNdKCN0d28tbWV0aG9kcykKICAgICsgW0luc3RhbGxlZCBhbmQgY29uZmlndXJlIG9uIE1BQ10oI2luc3RhbGxlZC1hbmQtY29uZmlndXJlLW9uLW1hYykKLSBbQmFja3VwXSgjYmFja3VwKQotIFtNb25pdG9yXSgjbW9uaXRvcikKLSBbUmVkaXMgU2VudGluZWxdKCNyZWRpcy1zZW50aW5lbCkKLSBbUmVkaXMgQXV0aF0oI3JlZGlzLWF1dGgpCi0gW1N0ZXBzIHRvIHJ1biB0aGUgYXBwbGljYXRpb25dKCNzdGVwcy10by1ydW4tdGhlLWFwcGxpY2F0aW9uKQogICAgKyBbUnVuIGJvdGggYXBwIGFuZCByZWRpcyBsb2NhbGx5XSgjcnVuLWJvdGgtYXBwLWFuZC1yZWRpcy1sb2NhbGx5KQogICAgKyBbUnVuIGJvdGggYXBwIGFuZCByZWRpcyBpbnNpZGUgYSBjb250YWluZXJdKCNydW4tYm90aC1hcHAtYW5kLXJlZGlzLWluc2lkZS1hLWNvbnRhaW5lcikKICAgICsgW1J1biBib3RoIGFwcCBhbmQgcmVkaXMgaW5zaWRlIGEgY29udGFpbmVyIHVzaW5nIGRvY2tlci1jb21wb3NlXSgjcnVuLWJvdGgtYXBwLWFuZC1yZWRpcy1pbnNpZGUtYS1jb250YWluZXItdXNpbmctZG9ja2VyLWNvbXBvc2UpCi0gW09wZW5BUEldKCNPcGVuQVBJKSAgICAKLSBbQVBJIEVuZHBvaW50IHRvIGFjY2VzcyB0aGUgYXBwXSgjYXBpLWVuZHBvaW50LXRvLWFjY2Vzcy10aGUtYXBwKQotIFtUTyBET10oI3RvLWRvKQoKIyMgV2hhdCBpcyBSZWRpcy4KCiAtIFJlZGlzIGlzIGEgcG93ZXJmdWwgYW5kIGV4dHJlbWVseSBmYXN0IGluIG1lbW9yeSBkYi4gICAKIC0gU3RvcmVzIGRhdGEgaW4ga2V5LXZhbHVlLiAgIAogLSBQZXJzaXN0ZW5jZS4gIAogLSBPcHRpb25hbGx5IHlvdSBjYW4gc2F2ZSB0aGUgZGF0YSB0byBkaXNrLiAgIAogLSBNYXN0ZXIgc2xhdmUgcmVwbGljYXRpb24uICAKIC0gSGlnaGx5IEF2YWlsYWJsZS4gICAKIC0gT3BlbiBzb3VyY2UuICAKIC0gSW5kZXhpbmcgKFN0aWxsIGNhbiBjcmVhdGUgb3duIGluZGV4aW5nKS4gIAogLSBObyBxdWVyeSBsYW5ndWFnZS4gIAoKCiMjIFVzZSBDYXNlCiAtIFVzZXIgU2Vzc2lvbiBNYW5hZ2VtZW50CiAtIENhY2hpbmcuCiAtIFB1Yi9TdWIgKFF1ZXVlcyAmIE5vdGlmaWNhdGlvbikKIC0gTGVhZGVyYm9hcmRzIGZvciBnYW1pbmcgYXBwcwogLSBHZW9zcGF0aWFsCgoKIyMgSW5zdGFsbGF0aW9uCiMjIyMgVHdvIG1ldGhvZHMKIC0gRG93bmxvYWQgYW5kIGluc3RhbGxlZC4gKFBsZWFzZSB1c2UgW1JlZGlzIERvd25sb2FkXShodHRwczovL3JlZGlzLmlvL2Rvd25sb2FkKSB0byBzZWUgdGhlIHN0ZXBzIHRvIGNvbmZpZ3VyZSB0aGUgcmVkaXMgaW4gb3RoZXIgT1MpCiAtIFVzaW5nIHBhY2thZ2UgbWFuYWdlciBsaWtlIGJyZXcgKG1hYykuIChJIHdpbGwgYmUgdXNpbmcgdGhpcyB0byBjb25maWd1cmUgcmVkaXMpCgoKIyMjIyBJbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZSBvbiBNQUMKIC0gT3BlbiB0aGUgdGVybWluYWwgYW5kIHR5cGUKICAgYGBgCiAgICQgYnJldyBpbnN0YWxsIHJlZGlzCiAgIGBgYAogLSBPbmNlIGl0IGRvbmUsIHR5cGUgKipyZWRpcy1zZXJ2ZXIqKiB0byBzdGFydCB0aGUgcmVkaXMgc2VydmVyIHdpdGggZGVmYXVsdCBjb25maWd1cmF0aW9uIHByb3ZpZGVkIGJ5IHJlZGlzLgogICBgYGAKICAgJCByZWRpcy1zZXJ2ZXIge3BhdGggdG8gdGhlIHJlZGlzLmNvbmZ9CiAgIGBgYCAgIAogLSBPcGVuIGFub3RoZXIgdGVybWluYWwgYW5kIHR5cGUgKipyZWRpcy1jbGkqKiwgdG8gb3BlbiB0aGUgcmVkaXMgY2xpLgogICBgYGAKICAgJCByZWRpcy1jbGkgLXAgNjM3OQogICBgYGAgIAogICBZb3Ugd2lsbCBzZWUgdGhlIG91dHB1dCBzb21ldGhpbmcgbGlrZSBiZWxvdzoKICAgYGBgCiAgICQgcmVkaXMtY2xpIC1wIDYzNzkKICAgMTI3LjAuMC4xOjYzNzk+CiAgIGBgYAogICBDaGVja2luZyByZWRpcyBzdGF0dXMgZXhlY3V0ZSBiZWxvdwogICBgYGAKICAgJCByZWRpcy1jbGkgcGluZwogICBQT05HCiAgIGBgYAogICBraWxsaW5nIHJlZGlzIHNlcnZlciBleGVjdXRlIGJlbG93CiAgIGBgYAogICAxMjcuMC4wLjE6NjM3OT4gc2h1dGRvd24KICAgYGBgCgogLSBTb21lIHNhbXBsZSBjb21tYW5kcyBvbiByZWRpcy1jbGkKICAgYGBgCiAgICAxMjcuMC4wLjE6NjM3OT4gc2V0IGNvbG9yIHJlZCAgICNzZXR0aW5nIGEgdmFsdWUgaW4gY29sb3IgKGFzIGtleSkgYW5kIHJlZCAoYXMgdmFsdWUpCiAgICBPSwogICAgMTI3LjAuMC4xOjYzNzk+IGtleXMgKiAgICMgdmVyaWZ5aW5nIHRvdGFsIG51bWJlciBvZiBrZXlzCiAgICAxKSAiXHhhY1x4ZWRceDAwXHgwNXRceDAwXHgwNEJvb2siCiAgICAyKSAiY29sb3IiCiAgICAxMjcuMC4wLjE6NjM3OT4KICAgIDEyNy4wLjAuMTo2Mzc5PgogICAgMTI3LjAuMC4xOjYzNzk+IGdldCBjb2xvciAgIyBnZXR0aW5nIHRoZSB2YWx1ZSBhc3NpZ25lZCB0byB0aGUga2V5IC0gY29sb3IKICAgICJyZWQiCiAgICAxMjcuMC4wLjE6NjM3OT4KICAgYGBgICAKCiMjIEJhY2t1cAogICBCZWxvdyBjb21tYW5kIHdpbGwgY3JlYXRlIHRoZSBkdW1wL2JhY2t1cCBhcyBwZXIgdGhlIHBhdGggc3BlY2lmaWVkIGluIHJlZGlzLmNvbmYgZmlsZS4KICAgYGBgCiAgICQgc2F2ZQogICBgYGAKCiMjIE1vbml0b3IKICAgUnVuIHRoZSBiZWxvdyBjb21tYW5kIGZyb20gdGVybWluYWwgYW5kIHlvdSdsbCBiZSBhYmUgdG8gc2VlIGV2ZXJ5dGhpbmcgaGFwcGVuaW5nIG9uIHJlZGlzCiAgIGBgYAogICAgJCByZWRpcy1jbGkgLXAgNjM3OQogICAgMTI3LjAuMC4xOjYzNzk+IE1vbml0b3IKICAgIE9LCiAgIGBgYAoKIyMgUmVkaXMgU2VudGluZWwKICAtIEl0IGlzIGEgc3lzdGVtLCBkZXNpZ25lZCB0byBoZWxwIG1hbmFnaW5nIFJlZGlzIGluc3RhbmNlcy4KICAtIEl0IGlzIHRoZXJlIHRvIHByb3ZpZGUgSEEgYnkgbW9uaXRvcmluZywgbm90aWZ5aW5nLCBhbmQgcHJvdmlkaW5nIGluc3RhbmNlcyBmYWlsb3Zlci4KICAtIEl0IGNoZWNrIHdoZXRoZXIgbWFzdGVyIGFuZCBzbGF2ZSBhcmUgd29ya2luZyBwcm9wZXJseSBvciBub3QuCiAgLSBJZiBNYXN0ZXIgZ29lcyBkb3duLCBpdCdzIHRoZSBzZW50aW5lbCByZXNwb25zaWJpbGl0eSB0byBtYWtlIG9uZSBvZiB0aGUgc2xhdmUgdG8gbWFzdGVyLiAgCgoKIyMgUmVkaXMgQXV0aAogIC0gUmVkaXMgYXV0aCBoZWxwIHRvIHNlY3VyZSBkYXRhYmFzZS4gV2UgY2FuIGRvIHRoYXQgZWl0aGVyIHZpYSByZWRpcy5jb25mIG9yIHZpYSBjbGkuCiAgLSBDbGkKICAgIGBgYAogICAgJCBjb25maWcgc2V0IHJlcXVpcmVwYXNzICR7YXV0aC1rZXl9CiAgICAkIGF1dGggJHthdXRoLWtleX0KCiAgICBgYGAKCgpFeHRyYSBsaW5rczoKIC0gVXNlIFtSZWRpc0xhYnNdKGh0dHBzOi8vcmVkaXNsYWJzLmNvbS8pIHRvIHNldHVwIHJlZGlzIG9uIGNsb3VkIGZyZWUuCiAtIFJlZGlzIEdVSSAtIFtSZWRpcyBEZXNrdG9wXShodHRwczovL3JkbS5kZXYvKS4KCgojIyBTdGVwcyB0byBydW4gdGhlIGFwcGxpY2F0aW9uCiMjIyMgUnVuIGJvdGggYXBwIGFuZCByZWRpcyBsb2NhbGx5CiAqIEZvbGxvdyBbdGhlc2Ugc3RlcHNdKCNpbnN0YWxsZWQtYW5kLWNvbmZpZ3VyZS1vbi1tYWMpIHRvIGNvbmZpZ3VyZSBhbmQgcnVuIFJlZGlzIGxvY2FsbHkuCiAqIEV4ZWN1dGUgYmVsb3cgY29tbWFuZCB0byBydW4gdGhlIGJvb3QgYXBwIGZyb20gYXBwcyBkaXJlY3RvcnkKIGBgYAogICQuL2dyYWRsZXcgYm9vdFJ1bgogYGBgCiAqIEFsdGVybmF0aXZlbHksIGZpcnN0IGJ1aWxkIHRoZSBqYXIgYW5kIHRoZW4gcnVuICoqamF2YSAtamFyKiogY29tbWFuZCBhcyBiZWxvdwogYGBgCiAgJC4vZ3JhZGxldyBidWlsZAogYGBgCiBgYGAKICAkIGphdmEgLWphciB7bmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGphcn0KIGBgYAojIyMjIFJ1biBib3RoIGFwcCBhbmQgcmVkaXMgaW5zaWRlIGEgY29udGFpbmVyCiAgKiBFeGVjdXRlIHRoZSBiZWxvdyBjb21tYW5kIGZyb20gcmVkaXMgZGlyZWN0b3J5CiAgYGBgCiAgJCBkb2NrZXIgbmV0d29yayBjcmVhdGUgcm1vZmZfc2VydmljZXMKICAkIGRvY2tlciBidWlsZCAtdCByZWRpcy1zZXJ2ZXIgLgogICQgZG9ja2VyIHJ1biAtZCAtcCA2Mzc5OjYzNzkgLS1uZXR3b3JrPXJtb2ZmX3NlcnZpY2VzIFwKICAgIC0tbmFtZSByZWRpcyBcCiAgICAtaCByZWRpcyByZWRpcy1zZXJ2ZXIKICBgYGAKICAqIEJ1aWxkIGFuIGltYWdlIG9mIHRoZSBhcHAuIEV4ZWN1dGUgYmVsb3cgY29tbWFuZCBmcm9tIGFwcHMgZGlyZWN0b3J5LgogIGBgYAogICQgZG9ja2VyIGJ1aWxkIC10IGJhY2tlbmQtc2VydmljZSAuCiAgYGBgCiAgKiBWZXJpZnkgdGhlIGltYWdlCiAgYGBgCiAgJCBkb2NrZXIgaW1hZ2UgbHMgLWEKICBgYGAKICAqIFJ1biB0aGUgYXBwCiAgYGBgCiAgJCBkb2NrZXIgcnVuIC1kIC0tbmFtZSBhcHAgLWUgIlJFRElTX0hPU1Q9cmVkaXMiIFwKICAgLXAgODA4MDo4MDgwIC0tbmV0d29yaz1ybW9mZl9zZXJ2aWNlcyBcCiAgICBiYWNrZW5kLXNlcnZpY2UKICBgYGAKIyMjIyBSdW4gYm90aCBhcHAgYW5kIHJlZGlzIGluc2lkZSBhIGNvbnRhaW5lciB1c2luZyBkb2NrZXItY29tcG9zZQogIGBgYAogICQgZG9ja2VyLWNvbXBvc2UgLWYgZG9ja2VyLWNvbXBvc2Utc3RhY2sueWFtbCB1cCAtZAogIGBgYAojIyMjIFJ1biBib3RoIGluIEs4cwogICogRXhlY3V0ZSBiZWxvdyBjb21tYW5kIHRvIGRlcGxveSB0aGUgYXBwbGljYXRpb24gaW4gazhzIGFuZCBleHBvc2UgdGhlIHNhbWUgdmlhIHNlcnZpY2UgdXNpbmcgbm9kZXBvcnQuCiAgYGBgCiAgJCBrdWJlY3RsIGFwcGx5IC1mIGs4cy1kZXBsb3ltZW50LnlhbWwKICBgYGAgIAoKIyMgT3BlbkFQSQogICogaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbAogICogaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1kb2NzICAKCiMjIEFQSSBFbmRwb2ludCB0byBhY2Nlc3MgdGhlIGFwcAogIC0gaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS9oZWFsdGgKICAtIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvYm9vay9zYXZlCiAgLSBodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL2Jvb2svYWxsCiAgLSBodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpL2Jvb2svZGVsZXRlL3tpZH0gICAgIAoKICMjIFRPIERPCgogKiBBZGQgc3RlcHMgdG8gcnVuIGJvdGggY29udGFpbmVyIGluIEs4cy4K readmeEtag: '"3811ac68249c10669b75264a31fb8d8ef08fbb31"' readmeLastModified: Thu, 01 Apr 2021 19:49:13 GMT repositoryId: 342413578 description: Sample implementation of spring with redis. created: '2021-02-26T00:07:40Z' updated: '2021-04-01T19:49:15Z' language: Java archived: false stars: 0 watchers: 1 forks: 1 owner: sharmar0790 logo: https://avatars.githubusercontent.com/u/30017762?v=4 repoEtag: '"0a4a49f5c6e3b951ad272035d92a570cc8d708f731c9c66676242f4534aaa281"' repoLastModified: Thu, 01 Apr 2021 19:49:15 GMT foundInMaster: true category: Server Implementations id: cadbd8f02a695a30bcfd68f30eb6933d - source: openapi3 tags repository: https://github.com/openapi-it/tutorials v3: true repositoryMetadata: base64Readme: >- IyBPcGVuYXBpLml0IC0gVFVUT1JJQUxTCgpbIVtOfFNvbGlkXShodHRwczovL29wZW5hcGkuaXQvcHVibGljL2Fzc2V0cy9pbWcvbG9nby5wbmcpXShodHRwczovL29wZW5hcGkuaXQvKQoKVW5hIGxpc3RhIGNvbXBsZXRhIGRpIHZpZGVvIHR1dG9yaWFsIGFjY29tcGFnbmF0aSBkYSBlc2VtcGkgcHJhdGljaSBuZWkgbGluZ3VhZ2dpIHBpw7kgdXRpbGl6emF0aS4KCiMjIEVsZW5jbyBkZWkgdmlkZW8KCnwgVGVtYSB8IExpbmd1YWdnaW8gfCBMaW5rIHwgRXNlbXBpIHwKfCAtLS0tLS0gfCAtLS0tLS0gfCAtLS0tLS0gfCAtLS0tLS0gfAp8IE90dGVuaW1lbnRvIGRpIHVuIHRva2VuIHwgV0VCIHwgW2h0dHBzOi8veW91dHUuYmUvYTNZU05TaW9DREVdIHwgLS0tLS0tIHwKfCBPdHRlbmltZW50byBkaSB1biB0b2tlbiB1c2FuZG8gY1VSTCB8IFBIUCB8IFtodHRwczovL3lvdXR1LmJlLzg3MWt4VVZEN0JZXSB8IFtwaHAvdG9rZW4ucGhwXVtQSFAxXSB8CgoKCgpbUEhQMV06IDxodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaS1pdC90dXRvcmlhbHMvdHJlZS9tYWluL3BocC90b2tlbi5waHA+Cg== readmeEtag: '"e957520f527148c1613825de1d96871b2371e244"' readmeLastModified: Wed, 03 Mar 2021 09:47:50 GMT repositoryId: 343882485 description: >- Un elenco di video tutorial accompagnati da esempi pratici in vari linguaggi di programmazione created: '2021-03-02T19:04:00Z' updated: '2021-03-03T09:59:19Z' language: PHP archived: false stars: 0 watchers: 2 forks: 1 owner: openapi-it logo: https://avatars.githubusercontent.com/u/67429652?v=4 repoEtag: '"e5ab3d2272eadfdb69705bfa673a73075ddd2b478275d28f5f120af058712359"' repoLastModified: Wed, 03 Mar 2021 09:59:19 GMT foundInMaster: true category: Description Validators id: d07bd686576b56438cb889c400667933 - source: openapi3 tags repository: https://github.com/daimaou92/gate v3: true repositoryMetadata: base64Readme: >- IyBHYXRlCgotLS0KCiMjIyBUaGlzIGlzIGFscGhhIGdyYWRlIHNvZnR3YXJlCgotLS0KCk9waW5pb25hdGVkIGxpYiBiYXNlZCBvbiBbaHR0cHJvdXRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2p1bGllbnNjaG1pZHQvaHR0cHJvdXRlcikgdG8gYnVpbGQgUkVTVCBBUElzLgoKIyMgVXNhZ2UKCi0tLQoKVXNpbmcgYEdhdGVgIGlzIGEgbGl0dGxlIGRpZmZlcmVudCB0aGFuIG1vc3Qgb3RoZXIgZnJhbWV3b3Jrcy4gVXNpbmcgaXQgY29ycmVjdGx5CnJlcXVpcmVzIHRoYXQgb25lIGRlY2lkZSB0aGUgcmVxdWVzdCwgcmVzcG9uc2UgYW5kIHF1ZXJ5IHBheWxvYWQgd2hpbGUgZGVzaWduaW5nCmFuIEFQSSB0byB0aGUgbWF4aW11bSBleHRlbnQgZmVhc2libGUuIFdoZW4gZXhwbGljaXRseSBkZWZpbmVkLCBhcyBpbiB0aGUgZXhhbXBsZQpiZWxvdywgYW5kIGxhdGVyIGZldGNoZWQgdXNpbmcgdGhlIGBHYXRlYCBwcm92aWRlZCBhdHRyaWJ1dGUgLSBvbmUgaXMgc2F2aW5nCm9uIHJlLWFsbG9jYXRpb25zLgoKYEdhdGVgIG1haW50YWlucyBhIHBvb2wgb2YgYWxsIHRoZSBzdHJ1Y3R1cmVzIGV4cGxpY2l0bHkgcHJvdmlkZWQgd2hlbiB3cml0aW5nCnRoZSBlbmRwb2ludHMuIFRoZXNlIHBvb2xzIGFyZSB1c2VkIHRvIHJlZmxlY3QgYmFjayBhIHByZS1hbGxvY2F0ZWQgdmFsdWUsCndoZW4gcHJlc2VudCwgaW4gdGhlIGFyZ3VtZW50IG9mIHR5cGUgYFJlcXVlc3REYXRhYCBsYXRlciByZWNlaXZlZCBpbiB0aGUgaGFuZGxlci4KRnJlc2ggYWxsb2NhdGlvbiBvY2N1cnMgaWYgbmVlZGVkLiBNb3JlIG9uIGdvbGFuZyBzeW5jIHBvb2xzIFtoZXJlXShodHRwczovL3BrZy5nby5kZXYvc3luYyNQb29sKQoKIyMgT3BlbiBBUEkKCi0tLQoKVXNpbmcgYEdhdGVgIGFzIGludGVuZGVkIGxldHMgdXMgZ2VuZXJhdGUgYW4gT3BlbkFQSSBiYXNlZCBkb2MgcmlnaHQgZnJvbSB5b3VyIGNvZGUuCldvcmsgaXMgdW5kZXJ3YXkgdG8gYWNoaWV2ZSB0aGlzLiBUaGlzIGZlYXR1cmUgaXMgaW5zcGlyZWQgYnkgW0Ryb3BzaG90XShodHRwczovL2dpdGh1Yi5jb20vb3hpZGVjb21wdXRlci9kcm9wc2hvdCkuCgojIyBFeGFtcGxlCgotLS0KCkhlcmUncyBob3cgYSBQT1NUIHJlcXVlc3QgbG9va3MgaW4gR2F0ZQoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAoJImVuY29kaW5nL2pzb24iCgkibG9nIgoKCSJnaXRodWIuY29tL2RhaW1hb3U5Mi9nYXRlIgoJImdpdGh1Yi5jb20vZ2V0a2luL2tpbi1vcGVuYXBpL29wZW5hcGkzIgopCgovKiBnYXRlIHByb3ZpZGVzIGEgUGF5bG9hZCBpbnRlcmZhY2UgdGhhdCBtdXN0IGJlIHVzZWQKaW4gQVBJIGRlZmluaXRpb25zIGFuZCB0aGVpciBoYW5kbGVycyB0byBhY2Nlc3Mgc2FpZCBkYXRhLgpTaW5jZSBnZW5lcmljcyBhcmUgc3RpbGwgYSBsaXR0bGUgYml0IGF3YXkgdGhlIGRlZmluaXRpb25zCm5lZWQgdG8gdXNlIGEgaW50aWFsaXplZCBpbnN0YW5jZSBvZiBzYWlkIHBheWxvYWQuCkhlcmUncyBob3cgYWxsIHRoYXQgbG9va3MqLwoKLy8gRGVmaW5lIGEgcGF5bG9hZCB0eXBlCnR5cGUgU3RyaW5nSlNPTiBzdHJpbmcKCmZ1bmMgKHNqIFN0cmluZ0pTT04pIE1hcnNoYWwoKSAoW11ieXRlLCBlcnJvcikgewoJcmV0dXJuIGpzb24uTWFyc2hhbChzaikKfQpmdW5jIChzaiAqU3RyaW5nSlNPTikgVW5tYXJzaGFsKHNyYyBbXWJ5dGUpIGVycm9yIHsKCXZhciB2IHN0cmluZwoJaWYgZXJyIDo9IGpzb24uVW5tYXJzaGFsKHNyYywgJnYpOyBlcnIgIT0gbmlsIHsKCQlyZXR1cm4gZXJyCgl9Cgkqc2ogPSBTdHJpbmdKU09OKHYpCglyZXR1cm4gbmlsCn0KZnVuYyAoU3RyaW5nSlNPTikgQ29udGVudFR5cGUoKSBnYXRlLkNvbnRlbnRUeXBlIHsKCXJldHVybiBnYXRlLkNvbnRlbnRUeXBlSlNPTgp9Ci8vIFRoZSBhYm92ZSB0aHJlZSBmdW5jdGlvbnMgTWFyc2hhbCwgVW5tYXJzaGFsIGFuZAovLyBDb250ZW50VHlwZSBpbXBsZW1lbnQgdGhlIGdhdGUuUGF5bG9hZCBpbnRlcmZhY2UKCi8vIFRoaXMgaXMganVzdCBhIGhlbHBlciBmdW5jdGlvbiB0byBnZXQgYQovLyBTdHJpbmdKU09OIHBvaW50ZXIgLSBvciBhIGdhdGUuUGF5bG9hZApmdW5jIE5ld1N0cmluZ0pTT04ocyBzdHJpbmcpICpTdHJpbmdKU09OIHsKCXQgOj0gU3RyaW5nSlNPTihzKQoJcmV0dXJuICZ0Cn0KCi8vIGJlbG93IGlzIGEgcmVxdWVzdCBoYW5kbGVyIHRoYXQgYWNjZXB0cyBhCi8vIEpTT04gc3RyaW5nIGFuZCByZXNwb25kcyBiYWNrIHdpdGggYSBKU09OCi8vIHN0cmluZyBieSBwcmVwZW5kaW5nIHRoZSBwYXR0ZXJuICJZT0xPIgpmdW5jIHlvbG9IYW5kbGVyKHJjICpnYXRlLlJlcXVlc3RDdHgsIHJkICpnYXRlLlJlcXVlc3REYXRhKSAoZ2F0ZS5QYXlsb2FkLCBlcnJvcikgewoJc2osIG9rIDo9IHJkLkJvZHkuKCpTdHJpbmdKU09OKQoJaWYgIW9rIHsKCQkvLyByZXR1cm5pbmcgYW4gZXJyb3IgYXV0b21hdGljYWxseSByZXNwb25kcyBiYWNrIHdpdGgKCQkvLyB0aGUgY29ycmVzcG9uZGluZyBjb2RlIG9mIHRoZSBlcnJvcgoJCS8vIEhlcmUgZm9yIGV4YW1wbGUsIHRoZSBjbGllbnQgd2l0aCByZWNlaXZlIHRoZSBlcnJvciBjb2RlCgkJLy8gNDAwIGFuZCBhIHRleHQgbWVzc2FnZSAiQmFkIFJlcXVlc3QiCgkJcmV0dXJuIG5pbCwgZ2F0ZS5FcnJCYWRSZXF1ZXN0Cgl9CglzaiA9IE5ld1N0cmluZ0pTT04oIllPTE8iICsgc3RyaW5nKCpzaikpCglyZXR1cm4gc2osIG5pbAp9CgpmdW5jIG1haW4oKSB7CgkvLyBOb3cgbGV0cyBkZWZpbmUgdGhlIGFwaSBzZXJ2ZXIKCWFwcCwgZXJyIDo9IGdhdGUuTmV3KGdhdGUuQXBwT3B0aW9uc3sKCQlJbmZvOiBvcGVuYXBpMy5JbmZvewoJCQlUaXRsZTogICAic2FtcGxlQVBJIiwKCQkJVmVyc2lvbjogIjAuMC4xIiwKCQl9LAoJCUFkZHI6ICI6ODA4MCIsCgl9KQoJaWYgZXJyICE9IG5pbCB7CgkJcGFuaWMoZXJyKQoJfQoKCXNqIDo9IE5ld1N0cmluZ0pTT04oIiIpCgkvLyBUaGUgdXNhZ2Ugb2YgYHNqYCBiZWxvdyBpcyBvbmx5IHNvIHRoYXQgZ2F0ZSBrbm93cyB3aGF0CgkvLyB0eXBlIHRvIG1hcnNoYWwgYW5kIHVubWFyc2hhbCB0aGUgcGF5bG9hZHMgaW50bwoJLy8gdGhlIGluaXRpYWxpemVkIHZhbHVlIHNqIGFib3ZlIHNlcnZlcyBubyBvdGhlciBwdXJwb3NlCgkvLyBhdCB0aGUgbW9tZW50LiBNYXliZSB0aGlzJ2xsIGJlIGJldHRlciB3aXRoIGdlbmVyaWNzLgoJLy8gQnV0IHRoaXMgaXMgd2hlcmUgd2UncmUgYXQgbm93LgoJYXBwLlBvc3QoZ2F0ZS5FbmRwb2ludENvbmZpZ3sKCQlQYXRoOiAgICAiL3lvbG9meSIsCgkJSGFuZGxlcjogeW9sb0hhbmRsZXIsCgkJUGF5bG9hZDogZ2F0ZS5FbmRwb2ludFBheWxvYWR7CgkJCVJlcXVlc3RQYXlsb2FkOiAgc2osCgkJCVJlc3BvbnNlUGF5bG9hZDogc2osCgkJfSwKCX0pCglsb2cuUHJpbnRsbigiTGlzdGVuaW5nIGF0IDo4MDgwIikKCWlmIGVyciA6PSBhcHAuTGlzdGVuKCk7IGVyciAhPSBuaWwgewoJCWxvZy5GYXRhbChlcnIpCgl9Cn0KCmBgYAoKTm93IHNpbXBseSB1c2UgQ1VSTCB0byB2ZXJpZnk6CmBjdXJsIC1kICciIicgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OjgwODAveW9sb2Z5YAoKWW91IHNob3VsZCBzZWUgYCJZT0xPImAgYXMgb3V0cHV0LgoKLS0tCgojIyMgVGhpcyBkb2N1bWVudGF0aW9uIGxpa2UgdGhlIHdob2xlIHByb2plY3QgaXMgYWxzbyBhIFdJUC4gSXQgc2hvdWxkIGJlIHVwZGF0ZWQgYXMgc29vbiBhcyBJIGhhdmUgbW9yZSB0aW1lLiBUaGFuayB5b3UgZm9yIHlvdXIgcGF0aWVuY2Ug8J+ZjwoKLS0tCg== readmeEtag: '"cbd3316a6a581e44d492c16e9a5efe236a0a7be9"' readmeLastModified: Mon, 21 Mar 2022 20:17:11 GMT repositoryId: 402033009 description: Build REST APIs in Golang created: '2021-09-01T11:17:35Z' updated: '2022-03-21T19:16:51Z' language: Go archived: false stars: 0 watchers: 0 forks: 0 owner: daimaou92 logo: https://avatars.githubusercontent.com/u/43323412?v=4 license: MPL-2.0 repoEtag: '"41a197c48c1d61cb55835bf925aa5d1f3b6ab8d23f3ff61b50e93c50afeac26d"' repoLastModified: Mon, 21 Mar 2022 19:16:51 GMT foundInMaster: true category: Data Validators id: 678614fcd2ecbfe2c3d9ca05339975b8 - source: openapi3 tags repository: https://github.com/damirscorner/20220722-dotnet-swagger-null-route-param v3: true id: ccd1442d77f2e85ff14d826b3620a7af repositoryMetadata: repositoryId: 512170763 description: >- Sample project for 'ASP.NET Core nullable route params in Swagger' blogpost created: '2022-07-09T11:40:50Z' updated: '2022-07-09T12:37:01Z' language: C# archived: false stars: 0 watchers: 2 forks: 0 owner: DamirsCorner logo: https://avatars.githubusercontent.com/u/64305124?v=4 license: MIT repoEtag: '"fcea38d11dbff7767fefe0009fecc920eb3cc91c2561c6043de5599256a83aac"' repoLastModified: Sat, 09 Jul 2022 12:37:01 GMT foundInMaster: true - source: openapi3 tags repository: https://github.com/kevinbalicot/tamia v3: true id: faa19aa5ecfb91e6f2ad0aa3106ef63f repositoryMetadata: base64Readme: >- IVtsb2dvXShkb2MvbWVkaWEvbG9nby5wbmcpCgojIFRBTUlBCgpBIFJFU1QgQVBJIFNlcnZlciBkZXNpZ25lZCB3aXRoIE9wZW4gQVBJIHYzCgojIyBJbnN0YWxsYXRpb24KCmBgYAokIG5wbSBpbnN0YWxsIC0tc2F2ZSBAdGFtaWEvdGFtaWEKYGBgCgpXaXRoIGNvbm5lY3Qgb3IgZXhwcmVzcyBqcwoKYGBganMKY29uc3QgdGFtaWFBcGkgPSByZXF1aXJlKCdAdGFtaWEvdGFtaWEnKTsKCi8vIC4uLgpjb25zdCBjb25maWcgPSB7IC4uLiB9OyAvLyBPcGVuIEFQSSBzY2hlbWEsIHNlZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm8KY29uc3Qgb3B0aW9ucyA9IHsgLi4uIH07IC8vIFRhbWlhIEFQSSBvcHRpb25zCmNvbnN0IHRhbWlhID0gdGFtaWFBcGkoY29uZmlnLCBvcHRpb25zKTsKCmFwcC51c2UodGFtaWEucmVxdWVzdCk7CmBgYAoKIyMjIERvY3VtZW50YXRpb24KClN1bW1hcnkKCi0gW0NPTkZJR1VSQVRJT05dKC9kb2MvQ09ORklHVVJBVElPTi5tZCkKLSBbUExVR0lOU10oL2RvYy9QTFVHSU5TLm1kKQoKIyMjIFRlc3RzCgpgYGAKJCBucG0gdGVzdApgYGAK readmeEtag: '"494da88590aa4b0fdbc9a64d1bfb570a0725b1a9"' readmeLastModified: Tue, 29 Aug 2023 10:23:46 GMT repositoryId: 527976381 description: A REST API Server designed with Open API V3 created: '2022-08-23T12:16:29Z' updated: '2022-09-20T14:58:57Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: kevinbalicot logo: https://avatars.githubusercontent.com/u/4362142?v=4 repoEtag: '"5d344bae87b0286dec1b23fd3cdb0c0637099c0a4fcde8173d065fa8908fdc87"' repoLastModified: Tue, 20 Sep 2022 14:58:57 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/sudokuru/usergamestatistics v3: true id: 5df3ed782b4775aa1b8250e11bac82bf repositoryMetadata: base64Readme: >- PiBbIUlNUE9SVEFOVF0gIAo+IFRoaXMgcmVwb3NpdG9yeSBpcyByZWFkLW9ubHkgLyBhcmNoaXZlZCBhbmQgd2lsbCBub3QgcmVjaWV2ZSB1cGRhdGVzLgoKIyBbVHlwZWRvYyBEb2N1bWVudGF0aW9uIFdlYnNpdGVdKGh0dHBzOi8vc3Vkb2t1cnUuZ2l0aHViLmlvL1VzZXJHYW1lU3RhdGlzdGljcy8pPGJyPgoKCiMgRGV2ZWxvcGVyIFNldHVwCgoxLiBHZXQgdGhlIC5lbnYgZmlsZSBmcm9tIHRoZSBNU0IgYnVpbGRpbmcgbmV4dCB0byB0aGUgd2F0ZXIgZm91bnRhaW4uIAoyLiBJbnN0YWxsIERvY2tlciBvbiB5b3VyIG1hY2hpbmUuIFR1dG9yaWFsIGlzIGxpbmtlZCBiZWxvdzo8YnI+CiAgIFshW0RvY2tlciBUdXRvcmlhbF0oaHR0cHM6Ly9pbWcueW91dHViZS5jb20vdmkvMmV6TnFxYVNqcTgvMC5qcGcpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTJlek5xcWFTanE4KTxicj4KMi4gT25jZSBkb2NrZXIgaXMgaW5zdGFsbGVkLCB0aGUgTW9uZ28gaW1hZ2UgY2FuIGJlIHJ1biB3aXRoIHRoaXMgY29tbWFuZDo8YnI+Ck5vdGUgdXNlIGBgYHN1ZG9gYGAgb24gTGludXgvTWFjPGJyPgpgYGBjb25zb2xlCm5wbSBydW4gZG9ja2VyCmBgYAozLiBUaGUgYXBwIGNhbiB0aGVuIGJlIHJ1biB3aXRoIHRoZSBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHN0YXJ0CmBgYAo0LiBJbnRlZ3JhdGlvbiB0ZXN0cyBjYW4gYmUgcnVuIHdoZW4gdGhlIGFwcCBpcyBydW5uaW5nIHdpdGggdGhpcyBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHRlc3Q6aW50ZWdyYXRpb24KYGBgCg== readmeEtag: '"0c379c3519f92f8b16c9985566d524f6422cd956"' readmeLastModified: Sun, 12 May 2024 16:01:47 GMT repositoryId: 609680602 description: null created: '2023-03-04T22:48:20Z' updated: '2024-05-12T16:02:55Z' language: TypeScript archived: true stars: 0 watchers: 0 forks: 0 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"a0a044aeee06978df69562435c2d8772ef705dcdd12b2e945cbb7b5d369042f5"' repoLastModified: Sun, 12 May 2024 16:02:55 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/azhirov/openapi-3.0-types v3: true id: 971d273e5665ce0122911e7890fc24ea repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFR5cGVzCgpUaGlzIHBhY2thZ2UgcHJvdmlkZXMgVHlwZVNjcmlwdCB0eXBlcyBmb3IgT3BlbkFQSSAzLjAsIGJhc2VkIG9uIHRoZSBvZmZpY2lhbCBbT3BlbkFQSSBTcGVjaWZpY2F0aW9uIDMuMC4zXShodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4wLjMpLiBUaGVzZSB0eXBlcyBhbGxvdyB5b3UgdG8gdmFsaWRhdGUgYW5kIHR5cGUtY2hlY2sgeW91ciBPcGVuQVBJIGRvY3VtZW50cyBpbiBUeXBlU2NyaXB0LCBwcm92aWRpbmcgaW1wcm92ZWQgZG9jdW1lbnRhdGlvbiBhbmQgY29uZmlkZW5jZSBpbiB5b3VyIEFQSSBjb250cmFjdHMuCgojIyBJbnN0YWxsYXRpb24KCmBgYApucG0gaSAtLXNhdmUtZGV2IG9wZW5hcGktMy4wLXR5cGVzCmBgYAoKIyMgVXNhZ2UKClRvIHVzZSB0aGUgT3BlbkFQSSB0eXBlcyBpbiB5b3VyIFR5cGVTY3JpcHQgcHJvamVjdCwgc2ltcGx5IGltcG9ydCB0aGVtIGFzIG5lZWRlZDoKCmBgYHR5cGVzY3JpcHQKCmltcG9ydCB0eXBlIHsgT3BlbkFwaU9iamVjdDMgfSBmcm9tICdvcGVuYXBpLTMuMC10eXBlcyc7Cgpjb25zdCBteUFwaVNwZWM6IE9wZW5BcGlPYmplY3QzID0gewogIC8vIC4uLgp9OwpgYGAKVGhlIE9wZW5BcGlPYmplY3QzIHR5cGUgcmVwcmVzZW50cyB0aGUgcm9vdCBvYmplY3Qgb2YgYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uLiBPdGhlciB0eXBlcyBhcmUgcHJvdmlkZWQgZm9yIGVhY2ggY29tcG9uZW50IG9mIHRoZSBzcGVjaWZpY2F0aW9uLCBzdWNoIGFzIFBhdGhJdGVtT2JqZWN0MywgUGFyYW1ldGVyT2JqZWN0MywgYW5kIFJlc3BvbnNlT2JqZWN0My4KCkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBhdmFpbGFibGUgdHlwZXMsIHBsZWFzZSByZWZlciB0byB0aGUgb2ZmaWNpYWwgW09wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAuM10oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4zKS4KCiMjIEdlbmVyYXRlIGAqLmQudHNgCgoxLiBDbG9uZSB0aGlzIHJlcG9zaXRvcnkKMi4gSW5zdGFsbCB0eXBlc2NyaXB0CjMuIFJ1biBgdHNjYAoKIyMgQ29udHJpYnV0aW5nCgpJZiB5b3UgZmluZCBhIGJ1ZyBvciB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUgdG8gdGhlIHBhY2thZ2UsIHBsZWFzZSBmZWVsIGZyZWUgdG8gb3BlbiBhbiBpc3N1ZSBvciBzdWJtaXQgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIEdpdEh1YiByZXBvc2l0b3J5LgoKIyMgTGljZW5zZQpUaGlzIHBhY2thZ2UgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBmb3IgZGV0YWlscy4K readmeEtag: '"309999e9e508944cffffaec49fd397a272a5e69c"' readmeLastModified: Mon, 17 Apr 2023 01:14:30 GMT repositoryId: 628614386 description: This package provides TypeScript types for OpenAPI 3.0 created: '2023-04-16T13:59:06Z' updated: '2023-04-16T14:17:48Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: azhirov logo: https://avatars.githubusercontent.com/u/29061184?v=4 license: MIT repoEtag: '"18d57e8f2f83623f8fa08f62e2870026227331103abdd75130f172a8a8427ffa"' repoLastModified: Sun, 16 Apr 2023 14:17:48 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/jmcleodfoss/simple-rest-tester v3: true repositoryMetadata: base64Readme: >- IVtNSVQgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ncmVlbikgClshW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcGkuY29kYWN5LmNvbS9wcm9qZWN0L2JhZGdlL0dyYWRlLzAyYzkxODJmYjkyMDRhNzA5Y2JmNDcyYTg5NWI4N2ViKV0oaHR0cHM6Ly9hcHAuY29kYWN5LmNvbS9naC9KbWNsZW9kZm9zcy9zaW1wbGUtcmVzdC10ZXN0ZXI/dXRtX3NvdXJjZT1naXRodWIuY29tJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NvbnRlbnQ9Sm1jbGVvZGZvc3Mvc2ltcGxlLXJlc3QtdGVzdGVyJnV0bV9jYW1wYWlnbj1CYWRnZV9HcmFkZV9TZXR0aW5ncykgCiFbQ29kYWN5IFNlY3VyaXR5IFNjYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9KbWNsZW9kZm9zcy9zaW1wbGUtcmVzdC10ZXN0ZXIvd29ya2Zsb3dzL0NvZGFjeSUyMFNlY3VyaXR5JTIwU2Nhbi9iYWRnZS5zdmcpIAohW0NvZGVRTF0oaHR0cHM6Ly9naXRodWIuY29tL0ptY2xlb2Rmb3NzL3NpbXBsZS1yZXN0LXRlc3Rlci93b3JrZmxvd3MvQ29kZVFML2JhZGdlLnN2ZykKIVtTTCBTY2FuXShodHRwczovL2dpdGh1Yi5jb20vSm1jbGVvZGZvc3Mvc2ltcGxlLXJlc3QtdGVzdGVyL3dvcmtmbG93cy9TTCUyMFNjYW4vYmFkZ2Uuc3ZnKSAKIVtYYW5pdGl6ZXIgU2VjdXJpdHkgQW5hbHlzaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9KbWNsZW9kZm9zcy9zaW1wbGUtcmVzdC10ZXN0ZXIvd29ya2Zsb3dzL1hhbml0aXplciUyMFNlY3VyaXR5JTIwQW5hbHlzaXMvYmFkZ2Uuc3ZnKSAKIyBzaW1wbGUtcmVzdC10ZXN0ZXIKCkEgc2ltcGxpc3RpYyB0ZXN0IGhhcm5lc3MgZm9yIFJFU1QgQVBJcyB3aGljaCB1c2VzIFtub2RlLmpzXShodHRwOi8vbm9kZWpzLm9yZyksIFtNb2NoYV0oaHR0cDovL21vY2hhanMubm9kZSksIGFuZCBbQ2hhaS5qc10od3d3LmNoYWlqcy5jb20pLCBhbmQgSlNPTiBmaWxlcyBkZWZpbmluZyB0ZXN0IHBhcmFtZXRlcnMgCmFuZCBleHBlY3RlZCByZXN1bHRzIHRvIHJ1biBzaW1wbGUgUkVTVCBBUEkgdGVzdHMgd2l0aCB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcmlzdGljczoKKiAgIGEgZGV0ZXJtaW5pc3RpYyByZXR1cm4gdmFsdWUKKiAgIGEgcmVzcG9uc2UgY29kZQoKVGhlICpzaW1wbGUtcmVzdC10ZXN0ZXIqIHBhY2thZ2UgaW5jbHVkZXMgdGhyZWUgYXBwbGljYXRpb25zOgoqICAgc2ltcGxlLXJlc3QtdGVzdGVyLCB3aGljaCBydW5zIHRlc3RzIG9uIGFsbCBKU09OIGZpbGVzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgaGFuZGxpbmcgZGVwZW5kZW5jaWVzIChmb3IgdGVzdHMgd2hpY2ggdXNlIHRoZSByZXN1bHRzIG9mIG90aGVyIHRlc3RzKQoqICAgc3J0LWdlbmVyYXRvciwgd2hpY2ggY3JlYXRlcyB0ZXN0IEpTT04gZmlsZXMgZnJvbSBhbiBbT3BlbkFQSSAzXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIHNwZWNpZmljYXRpb24gd2l0aCBhIHNtYWxsIG51bWJlciBvZiB2ZW5kb3IgZXh0ZW5zaW9ucyBkZXNjcmliZWQgYmVsb3cKKiAgIHNydC1leHBhbmQtbWFjcm9zLCB3aGljaCBhbGxvd3MgeW91IHRvIHNob3cgd2hhdCBhIHRlc3QgZmlsZSBsb29rcyBsaWtlIGFmdGVyIG1hY3JvIHJlcGxhY2VtZW50IGZvciBtYWNyb3MgZGVmaW5lZCBhdCB0aGUgY29tbWFuZCBsaW5lIGFuZCB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKClRoZXJlIGlzIGFsc28gYW4gQVBJIGZvciB1c2UgaWYgeW91ciB0ZXN0aW5nIG5lZWRzIGFyZSBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gd2hhdCBjYW4gYmUgaGFuZGxlZCBieSB0aGUgKnNpbXBsZS1yZXN0LXRlc3RlciogYXBwbGljYXRpb24gKGZvciBleGFtcGxlLCB5b3UgbmVlZCB0byBydW4gdGVzdHMgaW4gYSAKc3BlY2lmaWMgb3JkZXIgZGlmZmVyZW50IGZyb20gdGhhdCB1c2VkIGJ5IHRoZSBwcm92aWRlZCBhcHBsaWNhdGlvbikuCgojIyBJbnN0YWxsYXRpb24KIyMjIEZvciBDb21tYW5kLUxpbmUgVXNlClRvIHVzZSB0aGUgdGhyZWUgYXBwbGljYXRpb25zIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgaW5zdGFsbCB1c2luZyBucG0gd2l0aCB0aGUgLWcgLyAtLWdsb2JhbCBmbGFnOgpgYGBiYXNoCm5wbSBpbnN0YWxsIC1nIHNpbXBsZS1yZXN0LXRlc3RlcgpgYGAKIyMjIFRvIFVzZSB0aGUgc2ltcGxlLXJlc3QtdGVzdGVyIEVuZ2luZSBEaXJlY3RseQpgYGBiYXNoCm5wbSBpbnN0YWxsIHNpbXBsZS1yZXN0LXRlc3RlcgpgYGAKCiMjIEpTT04gc3RydWN0dXJlClRoZSB0ZXN0IGluZm9ybWF0aW9uIGlzIHN0b3JlZCBpbiBhIEpTT04gZmlsZSB3aXRoIHRoZSBmb2xsb3dpbmcgbWVtYmVyczoKYGBgamF2YXNjcmlwdAp7CgkiZGVzY3JpcHRpb24iOiAvKiBEZXNjcmlwdGlvbiBvZiB0aGUgdGVzdCB0byBiZSBkaXNwbGF5ZWQgYnkgTW9jaGEgKi8KCSJleHBlY3RhdGlvbiI6IC8qIERlc2NyaXB0aW9uIG9mIHRoZSByZXN1bHRzIG9mIGEgc3VjY2Vzc2Z1bCB0ZXN0IHRvIGJlIGRpc3BsYXllZCBieSBNb2NoYSAqLwoJInN0YXR1cyI6IC8qIEV4cGVjdGVkIG51bWVyaWMgSFRUUCBzdGF0dXMgY29kZSwgdXNlZCBieSBhIE1vY2hhIGV4cGVjdCB0ZXN0IiAqLwoJInBhdGgtc3VmZml4IjogLyogQSBzdHJpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHBhdGggKHR5cGljYWxseSBhIHF1ZXJ5IHN0cmluZykgKi8gCgkicmVzcG9uc2VSZWdleHAiOiAvKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBkZXNjcmliaW5nIHRoZSBleHBlY3RlZCByZXNwb25zZSwgdXNlZCBieSBhIE1vY2hhIGV4cGVjdCB0ZXN0IChlLmcuIDIwMCwgMjA0LCA0MDAsIDQwMSwgNDA0LCBldGMpICovCgkic2F2ZVJlc3BvbnNlIjogLyogQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgcmVzdWx0IG9mIHRoaXMgdGVzdCBzaG91bGQgYmUgc2F2ZWQgZm9yIGxhdGVyIHVzZSBieSBhbm90aGVyIHRlc3QgaW4gdGhlIHRlc3Qgc3VpdGUgKHRydWUgb3IgZmFsc2UpICovCgkidGVzdG5hbWUiOiAvKiBVbmlxdWUgKHdpdGhpbiB0ZXN0IHN1aXRlKSBpZGVudGlmaWVyICovCgkic2NoZW1lIjogLyogdGhlIFVSTCBzY2hlbWUgdG8gdXNlIGZvciB0aGlzIHRlc3QgKGh0dHAgb3IgaHR0cHMpICovCgoJInBheWxvYWQiOiAvKiBBbiBvYmplY3QgZ2l2aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgYm9keSBvZiBhIFBPU1Qgb3IgUFVUIHJlcXVlc3QsIGlmIGFueSAqLwoJInBheWxvYWQtb3ZlcnJpZGUiOiAvKiBBbiBvYmplY3QgdGhhdCByZXBsYWNlcyBzb21lIGl0ZW1zIG9mIHRoZSBwYXlsb2FkIChub3JtYWxseSB1c2VkIGlmIHBheWxvYWQgaXMgc2V0IHRvIGFuIGV4YW1wbGUgdmFsdWUgYnV0IGEgc21hbGwgbnVtYmVyIG9mIG1lbWJlcnMgbmVlZCB0byBiZSBjaGFuZ2VkIgoKCSJvcHRpb25zIjogewoJCSJob3N0IjogLyogVGhlIG5hbWUgb3IgSVAgYWRkcmVzcyBvZiB0aGUgaG9zdCBob2xkaW5nIHRoZSBSRVNUIEFQSSBzZXJ2ZXIgdG8gYmUgdGVzdGVkICovCgkJInBvcnQiOiAvKiBUaGUgcG9ydCB0aGUgUkVTVCBBUEkgc2VydmVyIGlzIGxpc3RlbmluZyBvbiAqLwoJCSJwYXRoIjogLyogVGhlIHBhdGggb2YgdGhlIFJFU1QgQVBJIGVuZHBvaW50IHRvIGJlIHRlc3RlZCAqLwoJCSJtZXRob2QiOiAvKiBUaGUgSFRUUCBtZXRob2QgKFBPU1QsIEdFVCwgUFVULCBERUxFVEUsIGV0YykgKi8KCQkiaGVhZGVycyI6IC8qIEFuIG9iamVjdCBwcm92aWRpbmcgYW55IEhUVFAgaGVhZGVycywgZS5nLiAiYWNjZXB0IjogImFwcGxpY2F0aW9uL2pzb24iIG9yICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgKi8KCQl9Cgl9CgoJInByZXJlcXVpc2l0ZXMiOiBbXSAvKiBBbiBhcnJheSBvZiB0ZXN0bmFtZXMgZm9yIHRlc3RzIHRoYXQgaGF2ZSB0byBiZSBwZXJmb21lZCBiZWZvcmUgdGhpcyB0ZXN0LCBmb3IgY2FzZXMgd2hlcmUgdGhlcmUgYXJlIGRlcGVuZGVuY2llcyB0aGF0IGFyZSBub3QgaW4gdGhlIGZvcm0gb2YgcmV0dXJuZWQgdmFsdWVzICovCn0KYGBgCiogICBUaGUgdmFsdWUgb2YgYGRlc2NyaXB0aW9uYCBpcyBwYXNzZWQgdG8gdGhlIE1vY2hhYGRlc2NyaWJlYCBmdW5jdGlvbi4KKiAgIFRoZSB2YWx1ZSBvZiBgZXhwZWN0YXRpb25gIGlzIHBhc3NlZCB0byB0aGUgTW9jaGFgaWAgZnVuY3Rpb24uCiogICBUaGUgdmFsdWUgb2YgYHN0YXR1c2AgaXMgY29tcGFyZWQgdG8gdGhlIHN0YXR1cyBjb2RlIG9mIHRoZSBzZXJ2aWNlJ3MgcmVzcG9uc2UgdG8gdGhlIHJlcXVlc3QgaW4gYSBDaGFpLmpzYGV4cGVjYCB0ZXN0LgoqICAgVGhlIHZhbHVlIG9mIGByZXNwb25zZVJlcXVlc3RgIGlzIGNvbXBhcmVkIHRvIHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkgdGhlIHNlcnZpY2UgdG8gdGhlIHJlc3QgcmVxdWVzdCBpbiBhIENoYWkuanNgZXhwZWNgIHRlc3QuCiogICBUaGUgdmFsdWUgb2YgYHNhdmVSZXNwb25zZWAgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlciB0byB0aGlzIHJlcXVlc3Qgc2hvdWxkIGJlIHNhdmVkIGZvciB1c2UgaW4gYSBmdXR1cmUgdGVzdC4gU2VlICJtYWNyb3MiIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uLgoqICAgVGhlIHZhbHVlIG9mIGB0ZXN0bmFtZWAgaXMgdXNlZCBpbiBtYWNyb3MgdG8gcmVmZXIgdG8gcmV0dXJuZWQgcmVzdWx0cyBpbiBsYXRlciB0ZXN0cy4gU2VlICJtYWNyb3MiIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uLiBJdCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiBzYXZlUmVzcG9uc2UgaXMgdHJ1ZS4gQnkgY29udmVudGlvbiwgaXQgaGFzIHRoZSBmb3JtYXQgTUVUSE9EX3NlcnZpY2VfcmVzcG9uc2UsIGUuZy4gUE9TVF9teXNlcnZpY2VfMjAwLgoqICAgVGhlIHZhbHVlIG9mIGBzY2hlbWVgIGlzIHVzZWQgd2l0aCBhYHJlcXVpcmVgIGNvbW1hbmQgdG8gY3JlYXRlIGFuIGh0dHAgb3IgaHR0cHMgb2JqZWN0LgoqICAgVGhlIHZhbHVlIG9mIGBwYXlsb2FkYCBpcyB3cml0dGVuIGludG8gdGhlIFBPU1Qgb3IgUFVUIHJlcXVlc3QuCiogICBUaGUgYG9wdGlvbnNgIG9iamVjdCBpcyB0aGUgcGFzc2VkIGludG8gdGhlIFtodHRwLnJlcXVlc3RdKGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaHR0cC5odG1sI2h0dHBfaHR0cF9yZXF1ZXN0X29wdGlvbnNfY2FsbGJhY2spIG9yIFtodHRwcy5yZXF1ZXN0XShodHRwczovL25vZGVqcy5vcmcvYXBpL2h0dHBzLmh0bWwjaHR0cHNfaHR0cHNfcmVxdWVzdF9vcHRpb25zX2NhbGxiYWNrKSBmdW5jdGlvbi4KKiAgIFRoZSBgcHJlcmVxdWlzaXRlc2AgYXJyYXkgaXMgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgcHJlcmVxdWlzaXRlcyBjYWxjdWxhdGVkIGJhc2VkIG9uIG1hY3JvIGRlZmluaXRpb25zIHRvIGZvcmNlIHRlc3RzIHRvIGJlIHBlcmZvcm1lZCBpbiBhIHNwZWNpZmljIG9yZGVyLgoKIyMgVGVzdCBGaWxlIE5hbWVzCkJ5IGNvbnZlbnRpb24sIHRoZSBiYXNlIGZpbGUgbmFtZSBpcyB0aGUgc2FtZSBhcyB0aGUgdGVzdG5hbWUgbWVtYmVyLCB3aXRoIHRoZSBleHRlbnNpb24gImpzb24iOiBNRVRIT0Rfc2VydmljZV9yZXNwb25zZS5qc29uLCAKZS5nLiBQT1NUX215c2VydmljZV8yMDAuanNvbiwgYnV0IHlvdSBtYXkgcGljayB3aGF0ZXZlciBjb252ZW50aW9uIHlvdSBsaWtlLgpJZiB5b3UgYXJlIHVzaW5nIHNydC1nZW5lYXRvciB0byBnZW5lcmF0ZSB0ZXN0IGZpbGVzIGZyb20gYW4gb3BlbmFwaSBzcGVjaWZpY2F0aW9uLCB5b3UgbWF5IHVzZSB0aGUgZmlsZW5hbWUga2V5IHRvIHNwZWNpZnkgYSBjdXN0b20gbmFtZS4KCiMjIENyZWF0aW5nIFRlc3RzIGZyb20gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uOiBzcnQtZ2VuZXJhdG9yCiMjIyBSdW5uaW5nIHNydC1nZW5lcmF0b3IKYHNydC1nZW5lcmF0b3IgWy0taGVscHwtaF0gfCBbLS1vdmVyd3JpdGV8LU9dIFstLXF1aWV0fC1xXSBbLS1zZXJ2ZXI9I3wtcyAjXSBvcGVuYXBpLnlhbWwtMSBbb3BlbmFwaS55YW1sLTIgLi4uXWAKd2hlcmUKKiAgIC1oIC8gLS1oZWxwOiBzaG93cyBjb21tYW5kIGhlbHAKKiAgIC1PIC8gLS1vdmVyd3JpdGU6IG92ZXJ3cml0ZXMgYWxsIGV4aXN0aW5nIGZpbGVzIHdpdGhvdXQgYXNraW5nCiogICAtcSAvIC0tcXVpZXQ6IHN1cHByZXNzZXMgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyBhYm91dCB3aGljaCBmaWxlcyBhcmUgYmVpbmcgb3Zlci13cml0dGVuLCBldGMKKiAgIC1zICMgLyAtLXNlcnZlcj0jOiBwdWxsIHNjaGVtZSwgaG9zdCwgYW5kIHBvcnQgZnJvbSB0aGUgZGVmaW5pdGlvbiBmb3Igc2VydmVyIGluZGV4IGAjYCBpbnN0ZWFkIG9mIGZyb20gc2VydmVyIGluZGV4IDAKCiMjIyBTdGFuZGFyZCBFbGVtZW50cyBVc2VkCiogICBgc2VydmVyc1swXWA6IHVzZWQgdG8gZmluZCB0aGUgc2NoZW1lLCBob3N0bmFtZSwgcG9ydCwgYW5kIHBhdGggcHJlZml4LCBpZiBhbnkuCiogICBgcGF0aHMucGF0aGA6IHVzZWQgdG8gY3JlYXRlIHRoZSBgdGVzdG5hbWVgIG1lbWJlciwgdGhlIGZpbGVuYW1lLCB0aGUgdGVzdCBkZXNjcmlwdGlvbiwgYW5kIHRoZSBVUkwgYHBhdGhgIG1lbWJlciBmb3IgdGhlIGh0dHAvaHR0cHMgYG9wdGlvbnNgIG9iamVjdC4KKiAgIGBwYXRocy5wYXRoLm1ldGhvZGA6IHVzZWQgdG8gY3JlYXRlIHRoZSBgdGVzdG5hbWVgIG1lbWJlciwgdGhlIGZpbGVuYW1lLCBhbmQgdGhlIGBtZXRob2RgIG1lbWJlciBvZiB0aGUgaHR0cC9odHRwcyBgb3B0aW9uc2Agb2JqZWN0LgoqICAgYHBhdGhzLnBhdGgubWV0aG9kLnJlcXVlc3RCb2R5LmNvbnRlbnQuYXBwbGljYXRpb24vanNvbi5leGFtcGxlc2A6IHVzZWQgZm9yIHRoZSBwYXlsb2FkIGFuZCBhcyBhIHN1ZmZpeCBmb3IgdGhlIGZpbGVuYW1lIGZvciBQT1NUIGFuZCBQVVQgcmVxdWVzdHMuCiogICBgcGF0aHMubWV0aG9kLnJlc3BvbnNlcy5yZXNwb25zZWA6IHVzZWQgZm9yIHRoZSBleHBlY3RlZCByZXR1cm5lZCBzdGF0dXMgZnJvbSB0aGUgc2VydmVyCgojIyMgVmVuZG9yIEV4dGVuc2lvbnMKVGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBpbmNsdWRlIHF1aXRlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBtYWtlIHRlc3RzIHVzZWZ1bC4gVGhlIHZlbmRvciBleHRlbnNpb24gZWxlbWVudCBgeC1zcnRgIGFsbG93cyBzcnQtZ2VuZXJhdG9yIHRvIGNyZWF0ZSB0ZXN0cyB3aGljaCBhcmUgbW9yZSB0aGFuIGp1c3Qgc3R1YnMgdGhhdCBuZWVkIHRvIGJlIGZpbGxlZCBpbi4KVGhlIHgtc3J0IGVsZW1lbnQgYWxsb3dzIGFueSBlbGVtZW50IG9mIHRoZSBKU09OIHRlc3QgZmlsZSB0byBiZSBzZXQsIG92ZXJyaWRpbmcgdGhlIHZhbHVlcyB0aGF0ICpzcnQtZ2VuZXJhdG9yKiBieSBkZWZhdWx0IHB1bGxzIG91dCBvZiB0aGUgc3BlYyBmaWxlLiBUaGlzIGlzIGEgcG93ZXJmdWwgZmVhdHVyZSwgYnV0IGNhbiBhbHNvIGxlYWQgdG8gcHJvYmxlbXMgd2hpY2ggbWF5CmJlIGRpZmZpY3VsdCB0byBkZWJ1Zy4gSW4gZ2VuZXJhbCwgYSB0ZXN0IHdpbGwgbmVlZCB0byBkZWZpbmUgdGhlIGBkZXNjcmlwdGlvbmAsIGBleHBlY3RhdGlvbmAsIGByZXNwb25zZS1yZWdleHBgLCBgcGF0aC1zdWZmaXhgIGFuZCBgcGF0aC1zdWJzdGAgbWVtYmVycyBoZXJlLCBidXQgeW91IG1heSBmaW5kIHRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgc3VpdGFibGUgaW4gc29tZSBjYXNlcy4KCiMjIyMgQ2F2ZWF0Ckl0IGdvZXMgd2l0aG91dCBzYXlpbmcgdGhhdCB5b3Ugc2hvdWxkIG5vdCBwdXQgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgaW50byB5b3VyIE9wZW5BUEkgc3BlYyBmaWxlIGZvciB0ZXN0aW5nLiBVc2UgdGhlIGVudmlyb25tZW50IG1hY3JvIGZhY2lsaXR5IGRlc2NyaWJlZCBiZWxvdyBpZiB5b3UgbmVlZCB0byBwZXJmb3JtIHRlc3RzIHJlcXVpcmluZyBhdXRoZW50aWNhdGlvbi4KCiMjIyMgcGF0aHMucGF0aC5tZXRob2QucmVzcG9uc2VzLnJlc3BvbnNlLngtc3J0L2Rlc2NyaXB0aW9uClRoaXMgcHJvdmlkZXMgdGhlIGBkZXNjcmlwdGlvbmAgbWVtYmVyIG9mIHRoZSB0ZXN0IG9iamVjdC4KCiMjIyMgcGF0aHMucGF0aC5tZXRob2QucmVzcG9uc2VzLnJlc3BvbnNlLngtc3J0L2V4cGVjdGF0aW9uClRoaXMgZXh0ZW5zaW9uIGlzIHVzZWQgdG8gcHJvdmlkZSB0aGUgYGV4cGVjdGF0aW9uYCBtZW1iZXIgb2YgdGhlIHRlc3Qgb2JqZWN0LgoKIyMjIyBwYXRocy5wYXRoLm1ldGhvZC5yZXNwb25zZXMucmVzcG9uc2UueC1zcnQvZmlsZW5hbWUKVGhpcyBtYXkgYmUgdXNlZCB0byBwcm92aWRlIGEgY3VzdG9tIGZpbGVuYW1lIGZvciB0aGUgdGVzdC4KCiMjIyMgcGF0aHMucGF0aC5tZXRob2QucmVzcG9uc2VzLnJlc3BvbnNlLngtc3J0LnJlc3BvbnNlLXJlZ2V4cApUaGlzIHByb3ZpZGVzIGEgcmVnZXhwIG1hdGNoaW5nIHRoZSBleHBlY3RlZCByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuIElmIGl0IGlzIG5vdCBwcmVzZW50LCBhbGwgcmVzcG9uc2VzIGFyZSBjb25zaWRlcmVkIG1hdGNoZXMuCgojIyMjIHBhdGhzLnBhdGgubWV0aG9kLnJlc3BvbnNlcy5yZXNwb25zZS54LXNydC5wYXRoLXN1ZmZpeApUaGlzIGV4dGVuc2lvbiBpcyB1c2VkIHRvIGJ1aWxkIHRoZSBgcGF0aGAgbWVtYmVyIG9mIHRoZSB0ZXN0IG9iamVjdC4KCiMjIyMgcGF0aHMucGF0aC5tZXRob2QucmVzcG9uc2VzLnJlc3BvbnNlLngtc3J0LnNraXAtdGVzdApUaGlzIGV4dGVuc2lvbiBtYXkgYmUgdXNlZCB3aXRoIHJlc3BvbnNlcyBmb3Igd2hpY2ggbm8gdGVzdCBjYXNlIGlzIGRlc2lyZWQsIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiAxLjAuMSwgdGhpcyBpcyB1bm5lY2Vzc2FyeSBhcyBubwp0ZXN0cyB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgcmVzcG9uc2VzIHdpdGggbm8geC1zcnQgbWVtYmVyLCBidXQgaXQgcmVtYWlucyBhbmQgaXMgbm90IGRlcHJlY2F0ZWQgZm9yIHRob3NlIHdobyBjaG9vc2UgdG8gZGlzdGluZ3Vpc2gKYmV0d2VlbiByZXNwb25zZXMgd2hpY2ggaGF2ZSBub3QgYmVlbiBjb25zaWRlcmVkIGFuZCB0aG9zZSB3aGljaCBoYXZlIGJlZW4gZXhwbGljaXRseSBpZ25vcmVkLgoKIyMjIyBwYXRocy5wYXRoLm1ldGhvZC5yZXNwb25zZXMucmVzcG9uc2UueC1zcnQucGF5bG9hZApUaGlzIGV4dGVuc2lvbiBzaG91bGQgYmUgdXNlZCB0byBwcm92aWRlIGEgcGF5bG9hZCBmb3IgdGVzdHMgd2hpY2ggZG8gbm90IHVzZSB0aGUgcGF0aHMucGF0aC5tZXRob2QucmVxdWVzdEJvZHkuY29udGVudC5hcHBsaWNhdGlvbi9qc29uL2V4YW1wbGVzIGVsZW1lbnQgdG8gcHJvdmlkZSB0aGUgYm9keSBvZiBhIHJlcXVlc3QuCgojIyMjIHBhdGhzLnBhdGgubWV0aG9kLnJlc3BvbnNlcy5yZXNwb25zZS54LXNydC5wYXlsb2FkLW92ZXJyaWRlClRoaXMgZXh0ZW5zaW9uIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIHgtc3J0LnBheWxvYWQgZXh0ZW5zaW9uIHRvIG92ZXJyaWRlIHNvbWUgbWVtYmVycyBvZiB0aGUgbWFpbiBwYXlsb2FkIGV4dGVuc2lvbi4gVGhlIHVzZSBjYXNlIGZvciB0aGlzIGlzIHNldHRpbmcgdGhlIHBheWxvYWQgdG8gYSByZWZlcmVuY2UgdG8gYW4gZXhhbXBsZSBpbiB0aGUgY29tcG9uZW50IHNlY3Rpb24sIGFuZCB0aGVuIGNoYW5naW5nIGEgbWVtYmVyIHRvIGdlbmVyYXRlIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHRlc3QgKGUuZy4gY2hhbmdpbmcgYSBtZW1iZXIgdG8gYW4gaW52YWxpZCB2YWx1ZSB0byB0ZXN0IGNvZGUgcGF0aHMgaW4gdGhlIEFQSSBzZXJ2aWNlIGRlYWxpbmcgd2l0aCBiYWQgaW5wdXQpLgoKIyMjIyBwYXRocy5wYXRoLm1ldGhvZC5yZXNwb25zZXMucmVzcG9uc2UueC1zcnQucGF0aC1zdWJzdApUaGlzIGV4dGVuc2lvbi4gaWYgcHJlc2VudCwgc2hvdWxkIGJlIGEgc2V0IG9mIGtleS12YWx1ZSBwYWlycyB3aGVyZSB0aGUga2V5IHJlcHJlc2VudHMgYSBwYXJ0IG9mIHRoZSBwYXRoIHRvIGJlIHJlcGxhY2VkLCBhbmQgdGhlIHZhbHVlIGlzIHRoZSBzdWJzdGl0dXRlZCB2YWx1ZS4KCiMjIyMgcGF0aHMucGF0aC5tZXRob2QucmVzcG9uc2VzLnJlc3BvbnNlLngtc3J0LnNjaGVtZQpUaGlzIG1heSBiZSB1c2VkIHRvIG92ZXItcmlkZSB0aGUgc2NoZW1lIHVzZSBmb3IgdGVzdGluZyAoaHR0cCBvciBodHRwcykgd2hpY2ggaXMgYnkgZGVmYXVsdCBvYnRhaW5lZCBmcm9tIHRoZSBmaXJzdCBkZWZpbmVkIHNlcnZlci4KCiMjIyMgcGF0aHMucGF0aC5tZXRob2QucmVzcG9uc2VzLnJlc3BvbnNlLngtc3J0Lm9wdGlvbnMuaG9zdApUaGlzIG1heSBiZSB1c2VkIHRvIG92ZXItcmlkZSB0aGUgaG9zdCB1c2VkIGZvciB0ZXN0aW5nIHdoaWNoIGlzIG9idGFpbmVkIGZyb20gdGhlIGZpcnN0IGRlZmluZWQgc2VydmVyLgoKIyMjIyBwYXRocy5wYXRoLm1ldGhvZC5yZXNwb25zZXMucmVzcG9uc2UueC1zcnQub3B0aW9ucy5wb3J0ClRoaXMgbWF5IGJlIHVzZWQgdG8gb3Zlci1yaWRlIHRoZSBwb3J0IHVzZWQgZm9yIHRlc3Rpbmcgd2hpY2ggaXMgb2J0YWluZWQgZnJvbSB0aGUgZmlyc3QgZGVmaW5lZCBzZXJ2ZXIuCgojIyMjIHBhdGhzLnBhdGgubWV0aG9kLnJlc3BvbnNlcy5yZXNwb25zZS54LXNydC5vcHRpb25zLmhlYWRlcnMKVGhpcyBhcnJheSBjYW4gYmUgdXNlZCB0byBhZGQgaGVhZGVyIGRhdGEgdG8gdGhlIG9wdGlvbnMgb2JqZWN0IHBhc3NlZCB0byB0aGUgaHR0cC9odHRwcyByZXF1ZXN0IGZ1bmN0aW9uLiBUaGUgdmFsdWVzIHByb3ZpZGVkIGhlcmUgb3Zlci1yaWRlIGFueSBkZWZhdWx0IHZhbHVlcyBmb3IgYENvbnRlbnQtVHlwZWAgb3IgYGFjY2VwdGAuCgojIyMjIHBhdGhzLnBhdGgubWV0aG9kLnJlc3BvbnNlcy5yZXNwb25zZS54LXNydC5wcmVyZXF1aXNpdGVzClRoaXMgYXJyYXkgbGlzdHMgdGVzdG5hbWVzIGZvciB0ZXN0cyB0aGF0IG11c3QgYmUgcGVyZm9ybWVkIGJlZm9yZSB0aGUgY3VycmVudCB0ZXN0LgoKIyMgRXhhbXBsZSBPcGVuQVBJIFNwZWNpZmljYXRpb24KQW4gZXhhbXBsZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gdGhhdCBpbmNsdWRlcyB0aGUgdmVuZG9yIGV4dGVuc2lvbnMgZGVzY3JpYmVkIGFib3ZlIGNhbiBiZSBmb3VuZCBpbiB0aGUgW2V4YW1wbGVzL29wZW5hcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9KbWNsZW9kZm9zcy9zcnQtZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL2V4YW1wbGVzL29wZW5hcGlsKSBkaXJlY3Rvcnk6CmFsb25nIHdpdGggb3V0cHV0IEpTT04gZmlsZXMgc3J0LWdlbmVyYXRvciBnZW5lcmF0ZXM6CiogICBvcGVuYXBpLnlhbWwKKiAgIERFTEVURV9wb2ludF8yMDQuanNvbgoqICAgREVMRVRFX3BvaW50XzQwMS5qc29uCiogICBERUxFVEVfcG9pbnRfNDA0Lmpzb24KKiAgIEdFVF9waW5nXzIwNC5qc29uCiogICBHRVRfcG9pbnRfMjAwLmpzb24KKiAgIEdFVF9wb2ludF80MDQuanNvbgoqICAgUE9TVF9wb2ludF8yMDBfcG9pbnRPcmlnaW4uanNvbgoqICAgUE9TVF9wb2ludF80MDAuanNvbgoqICAgUFVUX3BvaW50XzIwNF9wb2ludDkwRGVncmVlcy5qc29uCiogICBQVVRfcG9pbnRfNDAwLmpzb24KKiAgIFBVVF9wb2ludF80MDEuanNvbgoqICAgUFVUX3BvaW50XzQwNC5qc29uCgoqKk5vdGUqKiB0aGF0IGdlbmVyYXRpbmcgYSBzZXJ2ZXIgdXNpbmcgKm9wZW5hcGktZ2VuZXJhdG9yKiBhbmQgcnVubmluZyBpdCwgYW5kIHRoZSBydW5uaW5nIG1vY2hhIGFnYWluc3QgdGhlc2UgdGVzdHMsIHdpbGwgKm5vdCogcmVzdWx0IGluIHRoZSBleHBlY3RlZCBiZWhhdmlvciBmb3IgdGhlIFwqNDB4Lmpzb24gZmlsZXMgYXMgdGhlcmUgaXMgbm8KY29kZSBiYWNraW5nIHRoZSBwb2ludCBzZXJ2aWNlIHRvIHJldHVybiBlcnJvciB2YWx1ZXMuCgojIyBSdW5uaW5nIFRlc3RzOiBzaW1wbGUtcmVzdC10ZXN0ZXIKT25jZSB5b3UgaGF2ZSBjcmVhdGVkIHlvdXIgdGVzdCBzcGVjaWZpY2F0aW9uIEpTT04gZmlsZXMsIGVpdGhlciBmcm9tIGFuIE9wZW5BUEkgc3BlYyBvciBtYW51YWxseSwgeW91IGNhbiBydW4geW91ciB0ZXN0cy4gRmlyc3QsIHN0YXJ0IHRoZSBzZXJ2aWNlcyB5b3UgYXJlIHRlc3RpbmcsIHRoZW4sIGZyb20gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSB0ZXN0CnNwZWNpZmljYXRpb24gZmlsZXMsIHJ1bgpgc2ltcGxlLXJlc3QtdGVzdGVyYApUaGUgYXBwbGljYXRpb24gd2lsbCBhbmFseXplIHlvdXIgdGVzdCBzcGVjaWZpY2F0aW9ucywgYXR0ZW1wdCB0byBkZXRlcm1pbmUgdGhlIG9yZGVyIGluIHdoaWNoIHRvIGNvbmR1Y3QgdGhlIHRlc3RzLCBhbmQgcnVuIE1vY2hhLmpzIG9uIGVhY2ggZGVmaW5lZCB0ZXN0LgoKIyMgTWFjcm9zCldpdGhpbiBhIGdpdmVuIHJ1biBvZiBhIHN1aXRlIG9mIHRlc3RzLCBpdCBpcyBwb3NzaWJsZSB0byBzYXZlIGluZm9ybWF0aW9uIHJldHVybmVkIGluIG9uZSB0ZXN0IGZvciB1c2UgaW4gYSBsYXRlciB0ZXN0LCBmb3IgZXhhbXBsZSwgc2F2aW5nIHRoZSByZXR1cm5lZCBpdGVtIGluZGV4IGZyb20gYSBQT1NUIHJlcXVlc3QgdG8gdXNlIGluIGEgREVMRVRFLCBHRVQsIApvciBQVVQgcmVxdWVzdC4gTWFjcm9zIG1heSBhcHBlYXIgaW4gYW55IHN0cmluZyB2YWx1ZSBpbiB0aGUgdGVzdCBvYmplY3QsIGFsdGhvdWdoIHRoZXkgYXJlIG1vc3QgdXNlZnVsIGluIHRoZSBgcGF0aGAgYW5kIGBwYXlsb2FkYCB2YWx1ZXMuCgojIyMgU2F2aW5nIFJlc3BvbnNlcwpUbyBzYXZlIHRoZSByZXNwb25zZSBmcm9tIGEgdGVzdCwgdGhlIGZvbGxvd2luZyBlbGVtZW50cyBuZWVkIHRvIGJlIGRlZmluZWQgaW4gdGhlIHRlc3Qgb2JqZWN0OgoqICAgYHNhdmVSZXNwb25zZTogdHJ1ZWAKKiAgIGB0ZXN0bmFtZTogLyogQSB1bmlxdWUgbmFtZSBmb3IgdGhlIHRlc3QsIGUuZy4gUE9TVF90YWdfMjAwICovYAoKVGhlIHRlc3QgbXVzdCByZXR1cm4gYW4gb2JqZWN0IGxpa2UgYHsiYWRkZWRJdGVtSW5kZXgiOiIxOTMifWAuCgojIyMgUmVmZXJyaW5nIHRvIFNhdmVkIERhdGEKVG8gcmVmZXIgdG8gc2F2ZWQgaW5mb3JtYXRpb24gaW4gYSBsYXRlciB0ZXN0LCB1c2UgYSBtYWNybyB3aXRoIHRoZSBmb3JtYXQgYCR7c2F2ZWQtdGVzdG5hbWV9Lm1lbWJlcmAsIGUuZy4gYCR7UE9TVF9pdGVtXzIwMH0uYWRkZWRJdGVtSW5kZXhgLiAKQWxsIG9jY3VycmVuY2VzIG9mIHRoaXMgbWFjcm8gd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgbmFtZWQgdGVzdC4KCkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBwYXRoIGNvbnRhaW5pbmcgYSBtYWNybyAoaW4gdGhlIGBvcHRpb25zYCBtZW1iZXIgb2YgdGhlIHRlc3Qgc3BlY2lmaWNhdGlvbik6CmBgYGpzb24KInBhdGgiOiAiL3YxL2l0ZW0vJHtQT1NUX2l0ZW1fMjAwfS5hZGRlZEl0ZW1JbmRleD9xdWVyeVBhcmFtZXRlcj0xIgpgYGAKQWZ0ZXIgbWFjcm8gcmVwbGFjZW1lbnQsIHRoaXMgd2lsbCBiZWNvbWUgKHVzaW5nIG91ciBleGFtcGxlIGBhZGRlZEl0ZW1JbmRleGAgZnJvbSBhYm92ZSk6CmBgYGpzb24KInBhdGgiOiAiL3YxL2l0ZW0vMTkzP3F1ZXJ5UGFyYW1ldGVyPTEiCmBgYApTaW1pbGFyIHN1YnN0aXR1dGlvbnMgY2FuIHRha2UgcGxhY2UgaW4gdGhlIHBheWxvYWQgb2JqZWN0LgoKIyMjIEdlbmVyYWwtUHVycG9zZSBKYXZhc2NyaXB0IE1hY3JvcwpTdGFyaW5nIHdpdGggdmVyc2lvbiAxLjAuMiwgeW91IG1heSBkZWZpbmUgZ2VuZXJpYyBtYWNyb3MgaW4gYSByZXNwb25zZSdzIHgtc3J0IHNlY3Rpb24uIFRoZXNlIGNvbWUgaW4gdHdvIHR5cGVzLCBkaXN0aW5ndWlzaGVkIGJ5IHRoZSBgZGVmaW5pdGlvblBoYXNlYCBtZW1iZXIuIElmIHRoZQpgZGVmaW5pdGlvblBoYXNlYCBpcyBgcHJlUmVxdWVzdGAsIHRoZW4gdGhlIG1hY3JvIGlzIGV4ZWN1dGVkIGJlZm9yZSB0aGUgaHR0cC9odHRwcyByZXF1ZXN0IGlzIG1hZGUsIGFuZCBpdCBtYXkgbW9kaWZ5IHRoZSByZXF1ZXN0LiBJZiB0aGUgYGRlZmluaXRpb25QaGFzZWAgaXMgYHBvc3RSZXNwb25zZWAsCnRoZW4gaXQgY2FuIHVzZSBjb21wb25lbnRzIG9mIHRoZSByZXNwb25zZSBpbiBpdHMgZGVmaW5pdGlvbi4KCiMjIyMgcHJlUmVxdWVzdCBKYXZhc2NyaXB0IE1hY3JvcwpUaGUgcHJlLXJlcXVlc3QgbWFjcm8gbWVjaGFuaXNtIG1heSBiZSB1c2VkLCBmb3IgZXhhbXBsZSwgdG8gYWRkIGEgY291bnRlciB0byBhIHZhbHVlIHdoaWNoIHRoZSBzZXJ2ZXIgYmVpbmcgdGVzdGVkIGFnYWluc3QgZXhwZWN0cyB0byBiZSB1bmlxdWUuIEluIHRoZSBleGFtcGxlIGJlbG93LCB0aGUgdXNlcm5hbWUKbXVzdCBiZSB1bmlxdWUuIFRoaXMgaXMgYWNjb21wbGlzaGVkIGJ5IHJlYWRpbmcgYSBjb3VudGVyIHdoaWNoIGlzIHBlcnNpc3RlZCBpbiBhIGZpbGUgaW4gdGhlIHRlc3QgZGlyZWN0b3J5IChjcmVhdGluZyBpdCBpZiBuZWNlc3NhcnkpLCBpbmNyZW1lbnRpbmcgaXQsIGFuZCByZXR1cm5pbmcgaXQsCmJ1dCBhbHNvIGFkZGluZyBpdCB0byB0aGUgdXNlck5hbWUgdmFsdWUgaW4gdGhlIHBheWxvYWQgKHdoaWNoIG9uZSBtaWdodCB3YW50IHRvIGRvIGlmIHRoZSBwYXlsb2FkIGNvbWVzIGZyb20gYW4gZXhhbXBsZSBpbiB0aGUgT3BlbkFQSSBkZWZpbml0aW9uIGZpbGUpLgpgYGB5YW1sCnBhdGhzOgogIC4uLgogIC91c2VyOgogICAgLi4uCiAgICBQT1NUOgogICAgICAuLi4KICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246ICJTdWNjZXNzZnVsbHkgYWRkZWQgdXNlcjsgcmV0dXJucyB1c2VybmFtZSBhbmQgcGFzc3dvcmQiCiAgICAgICAgICB4LXNydDoKICAgICAgICAgICAgZXhwZWN0YXRpb246ICJzaG91bGQgcmV0dXJuIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQiCiAgICAgICAgICAgIG1hY3JvRGVmOgogICAgICAgICAgICAtIG5hbWU6ICd1c2VyTmFtZUNvdW50ZXInCiAgICAgICAgICAgICAgZGVmaW5pdGlvblBoYXNlOiAncHJlUmVxdWVzdCcKICAgICAgICAgICAgICBkZWZpbml0aW9uOiB8CiAgICAgICAgICAgICAgICAocmVxRGVzY3IpID0+IHsKICAgICAgICAgICAgICAgICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpOwogICAgICAgICAgICAgICAgICBjb25zdCBmbiA9ICdwZXJzaXN0ZW50LWNvdW50ZXIudHh0JzsKICAgICAgICAgICAgICAgICAgbGV0IGNvdW50ZXIgPSBmcy5leGlzdHNTeW5jKGZuKSA/IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZuKSkgKyAxIDogMDsKICAgICAgICAgICAgICAgICAgcmVxRGVzY3IucGF5bG9hZC51c2VyTmFtZSA9IHJlcURlc2NyLnBheWxvYWQudXNlck5hbWUgKyAiLSR7dXNlck5hbWVDb3VudGVyfSI7CiAgICAgICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZm4sIEpTT04uc3RyaW5naWZ5KGNvdW50ZXIpKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXI7CiAgICAgICAgICAgICAgICB9CmBgYAoKIyMjIyBwb3N0UmVzcG9uc2UgSmF2YXNjcmlwdCBNYWNyb3MKVGhlIHBvc3QtcmVzcG9uc2UgbWFjcm8gbWVjaGFuaXNtIG1heSBiZSB1c2VkLCBmb3IgZXhhbXBsZSwgdG8gc2F2ZSBhbiBhdXRoZW50aWNhdGlvbiBzdHJpbmcgZm9yIHVzZSBpbiBhIGxhdGVyIHRlc3QuCmBgYHlhbWwKcGF0aHM6CiAgLi4uCiAgL3VzZXI6CiAgICAuLi4KICAgIHBvc3Q6CiAgICAgIC4uLgogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIlN1Y2Nlc3NmdWxseSBhZGRlZCB1c2VyOyByZXR1cm5zIHVzZXJuYW1lIGFuZCBwYXNzd29yZCIKICAgICAgICAgIHgtc3J0OgogICAgICAgICAgICBleHBlY3RhdGlvbjogInNob3VsZCByZXR1cm4gdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCIKICAgICAgICAgICAgbWFjcm9EZWY6CiAgICAgICAgICAgIC0gbmFtZTogJ2F1dGhTdHJpbmcnCiAgICAgICAgICAgICAgZGVmaW5pdGlvblBoYXNlOiAncG9zdFJlc3BvbnNlJwogICAgICAgICAgICAgIGRlZmluaXRpb246IHwKICAgICAgICAgICAgICAgICh7Y29uc3VtZXJJZCwgcGFzc3dvcmR9KSA9PiB7CiAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1aXJlKHByb2Nlc3MuY3dkKCkgKyAiL25vZGVfbW9kdWxlcy9iYXNlLTY0IikuZW5jb2RlKGNvbnN1bWVySWQgKyAiOiIgKyBwYXNzd29yZCk7CiAgICAgICAgICAgICAgICB9CiAgICAuLi4KCiAgICBwdXQ6CiAgICAgIC4uCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjA0IjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiU3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgdXNlciIKICAgICAgICAgIHgtc3J0OgogICAgICAgICAgICBleHBlY3RhdGlvbjogInNob3VsZCB1cGRhdGUgdGhlIHVzZXIgd2l0aCB0aGUgbmV3IGRlc2NyaXB0aW9uIgogICAgICAgICAgICBwYXRoLXN1YnN0OiB7ICJ7dXNlcklkfSI6ICIke1BPU1RfdXNlcl8yMDBfZXhhbXBsZVVzZXIxfS51aWQiIH0KICAgICAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgICBoZWFkZXJzOgogICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJhc2ljICR7UE9TVF91c2VyXzIwMH0uYXV0aFN0cmluZyIKYGBgClVuZm9ydHVuYXRlbHksIHN1cHBvcnQgZm9yIEphdmFzY3JpcHQgbWFjcm9zIGlzIG1hcmdpbmFsIGluIHNydC1leHBhbmQtbWFjcm9zLCBhcyBhY3R1YWxseSBldmFsdWF0aW5nIGEgbWFjcm8gbWlnaHQgaGF2ZSBwZXJtYW5lbnQgc2lkZS1lZmZlY3RzIChsaWtlIGluY3JlbWVudGluZyBhIGNvdW50ZXIpIHdoaWNoIGFyZSB1bmRlc2lyZWFibGUuCgojIyBFbnZpcm9ubWVudCBTdWJzdGl0dXRpb25zCllvdSBtYXkgcmVmZXIgdG8gZW52aXJvbm1lbnQgdmFyaWFibGUgdmFsdWVzIGluIG1hY3JvcyBvZiB0aGUgZm9ybSBgJHtlbnZ9LkVOVklST05NRU5UX1ZBUklBQkxFX05BTUV9YC4gQSB2ZXJ5IGNvbnRyaXZlZCBleGFtcGxlIGlzIGAke2Vtdn0uUEFUSGAgd2lsbCBiZSBleHBhbmRlZCB0byB5b3VyIHBhdGguCk5vdGUgKGEpIHRoYXQgY2FzZSBpcyBpbXBvcnRhbnQsIGFuZCAoYiksIGlmIHlvdSBoYXZlIGEgdGVzdCB3aGljaCBzYXZlcyByZXN1bHRzIHVuZGVyIHRoZSBwcmVmaXggYCR7ZW52fWAsIGl0IHdvbid0IGJlIHBpY2tlZCB1cC4KCiMjIFVzZXItRGVmaW5lZCBNYWNyb3MKWW91IG1heSBhbHNvIGFkZCBtYWNyb3MgcHJvZ3JhbW1hdGljYWxseSB1c2luZyB0aGUgYGFkZE1hY3Jvc2AgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gcnVubmluZyBNb2NoYS5qcyB2aWEgdGhlICpzaW1wbGUtcmVzdC10ZXN0ZXIqIGFwcGxpY2F0aW9uIGJlY2F1c2Ugb2YgCmNvbXBsaWNhdGlvbnMgYXJpc2luZyBmcm9tIE1vY2hhLmpzIGNvbW1hbmQgbGluZSBwcm9jZXNzaW5nLiBUaGVzZSBhcmUgZGVzY3JpYmVkIGluIG1vcmUgZGV0YWlsIGluIHRoZSBzZWN0aW9uICJSb2xsaW5nIFlvdXIgT3duIiwgYmVsb3cuCgojIyBEZWJ1Z2dpbmcKQmFzaWMgbG9nZ2luZyB0byBjb25zb2xlIG9mIHRoZSBwYXRoLCBwYXlsb2FkLCBzdGF0dXMgY29kZSwgYW5kIHJlc3BvbnNlLCBpcyBhdmFpbGFibGUgYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYFNSVF9URVNUPTFgIChib3RoIHdoZW4gcnVubmluZyB0aGUgKnNpbXBsZS1yZXN0LXRlc3RlciogCmFwcGxpY2F0aW9uIGFuZCB3aGVuIHJ1bm5pbmcgdGhlIHNpbXBsZS1yZXN0LXRlc3RlciBlbmdpbmUgZnJvbSB5b3VyIG93biBhcHBsaWNhdGlvbikuCgojIyBSb2xsaW5nIFlvdXIgT3duCkNyZWF0ZSBhIHRlc3Qgc3VpdGUgdXNpbmcgYSBmaWxlIGxpa2UgW2V4YW1wbGVzL3Rlc3QuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9KbWNsZW9kZm9zcy9zaW1wbGUtcmVzdC10ZXN0ZXIvYmxvYi9tYXN0ZXIvZXhhbXBsZXMvdGVzdC5qcyk6CmBgYGphdmFzY3JpcHQKInVzZSBzdHJpY3QiOwoKY29uc3Qgc3J0ID0gcmVxdWlyZSgnc2ltcGxlLXJlc3QtdGVzdGVyJyk7CgpmdW5jdGlvbiB0ZXN0KGpzb25GaWxlKQp7Cgl2YXIgcmVxRGVzY3IgPSByZXF1aXJlKGpzb25GaWxlKTsKCgl0cnkgewoJCXNydC5tb2NoYShyZXFEZXNjcik7Cgl9IGNhdGNoIChleCkgewoJCWNvbnNvbGUubG9nKGV4KTsKCX0KfQoKc3J0LmFkZE1hY3JvKCd1c2VyLWRlZmluZWQnLCAnVXNlci1kZWZpbmVkIG1hY3JvIGdvZXMgaGVyZS4nKTsKc3J0LmFkZE1hY3JvKCd0aW1lc3RhbXAnLCBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7CgovLyBPcmRlciBvZiB0ZXN0cyBpcyBpbXBvcnRhbnQgaWYgeW91IGFyZSB1c2luZyBtYWNyb3Mgb3JlIHJlbHlpbmcgb24gdGhlIGV4aXN0ZW5jZSBvZiByZXNvdXJjZXMgY3JlYXRlZCBieSBlYXJsaWVyIHRlc3RzIGluIGxhdGVyIHRlc3RzCnRlc3QoJy4vR0VUX3BpbmdfMjA0Lmpzb24nKQp0ZXN0KCcuL1BPU1Rfc2VydmljZV8yMDAuanNvbicpCnRlc3QoJy4vUE9TVF9zZXJ2aWNlXzQwMC5qc29uJykKLy8gZXRjCmBgYApUaGlzIHdpbGwgcmVzdWx0IGluIGFueSBvY2N1cnJlbmNlcyBvZiBgJHt1c2VyLWRlZmluZWR9YCBpbiB0aGUgdGVzdCBzcGVjaWZpY2F0aW9uIGJlaW5nIHJlcGxhY2VkIGJ5IHRoZSBzdHJpbmcgIlVzZXItZGVmaW5lZCBtYWNybyBnb2VzIGhlcmUuIiwgYW5kIGAke3RpbWVzdGFtcH1gIGJlaW5nIHJlcGxhY2VkIGJ5IHRoZSB0aW1lc3RhbXBlZCAKZ3JhYmJlZCBieSBub2RlIHdoZW4gdGhlIHByb2dyYW0gd2FzIGV4ZWN1dGVkLgoKSW52b2tlICptb2NoYSogaW4gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBhYm92ZSBzY3JpcHQgdG8gcnVuIHRoZSB0ZXN0cy4KCiMjIFZpZXdpbmcgTWFjcm8gU3Vic3RpdHV0aW9uczogc3J0LWV4cGFuZC1tYWNyb3MKRm9yIHRyb3VibGVzaG9vdGluZywgaXQgaXMgb2Z0ZW4gY29udmVuaWVudCB0byBzZWUgaG93IG1hY3JvcyBhcmUgZXhwYW5kZWQuIFRoaXMgY2FuIGJlIGRvbmUgdXNpbmcgdGhlICpzcnQtZXhwYW5kLW1hY3JvcyogYXBwbGljYXRpb24uCgojIyMgUnVubmluZyBzcnQtZXhwYW5kLW1hY3JvcwpgYGBiYXNoCnNydC1leHBhbmQtbWFjcm9zWy1oIHwgWy1EIG1hY3JvLTE9dmFsdWUtMSBbLUQgbWFjcm8tMj12YWx1ZTIgWy4uLl1dXSB0ZXN0LWRlZmluaXRpb24gW3Rlc3QtZGVmaW5pdGlvbiBbLi4uXV1dCmBgYAp3aGVyZQoqICAgLWggLyAtLWhlbHAgICAgICAgICAgICAgIERpc3BsYXkgdGhpcyB1c2FnZSBndWlkZQoqICAgLUQgLyAtLWRlZmluZSBzdHJpbmdbXSAgIERlZmluZSBtYWNybyBhcyBtYWNybz1zdWJzdGl0dXRpb24gKHRoaXMgY2FuIGFwcGVhciBtdWx0aXBsZSB0aW1lcykKCk1hY3JvcyBjYW4gYmUgZWl0aGVyIHJlc3BvbnNlLXN0eWxlIG1hY3JvcyAoJHthfS5iPXZhbHVlfSBvciBzaW1wbGUgc3Vic3RpdHV0aW9ucyAoJHthfT12YWx1ZSkuCgojIyBSZWxlYXNlcwojIyMgMS4wLjggMjAyMy0wNC0wNgpVcGRhdGUgZGVwZW5kZW5jaWVzIHRvIHJlbW92ZSBzZWN1cml0eSBpc3N1ZS4KRHJvcCB1bnVzZWQgbGlicmFyeSB0byByZW1vdmUgc2VjdXJpdHkgaXNzdWUuCgojIyMgMS4wLjcgMjAyMS0wNC0xOQpBZGQgYSBuZXcgZWxlbWVudCB0byBhbGxvdyB0aGUgZmlsZSBuYW1lIChhbmQgdGVzdCBuYW1lKSBjcmVhdGVkIGJ5IHNydC1nZW5lcmF0b3IgdG8gYmUgc3BlY2lmaWVkLgpBbGxvdyBERUxFVEUgbWV0aG9kcyB0byBoYXZlIGEgYm9keS4KQWxsb3cgYW4gYXJyYXkgb2YgdGVzdHMgdG8gYmUgZGVmaW5lZCBmb3IgYSByZXNwb25zZS4KQWxsb3cgYW4gYXJyYXkgb2YgcGF0aC1zdWJzdCByZXBsYWNlbWVudHMuCldoZW4gU1JUX0RFQlVHIGlzIHRydWUsIHNob3cgdGhlIG5hbWUgb2YgZWFjaCBmaWxlbmFtZSBhcyBpdCBpcyByZWFkIGluIGFuZCBwYXJzZWQuCkFkZCB2ZXJib3NlIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc3J0LWdlbmVyYXRlLCBhbmQgbGlzdCBuYW1lIG9mIGVhY2ggZmlsZSBhcyBpdCBpcyB3cml0dGVuIHdoZW4gdmVyYm9zZSBtb2RlIGlzIGFjdGl2ZS4KV2hlbiB0aGUgZXhwZWN0ZWQgc3RhdHVzIGNvZGUgaXMgbm90IGVuY291bnRlcmVkLCBsaXN0IHRoZSBleHBlY3RlZCBzdGF0dXMgY29kZSBhZnRlciB0aGUgb25lIGFjdHVhbGx5IGVuY291bnRlcmVkICh0byBhc3Npc3Qgd2l0aCBkZWJ1Z2dpbmcpLgpGaXggaGFuZGxpbmcgb2YgcGF5bG9hZC1vdmVycmlkZSBmb3Igb2JqZWN0cywgYW5kIHJldmVydCB0byB1c2luZyBKU09OLnBhcnNlIGluc3RlYWQgb2YgdXNpbmcgVk0yLgoKIyMjIDEuMC42IDIwMjEtMDItMTIKQWRkIG5ldyBlbGVtZW50IHRvIGFsbG93IHBheWxvYWQgdG8gYmUgb3Zlci1yaWRkZW4uIChUaGlzIGFsbG93cyBhIHNpbmdsZSBleGFtcGxlIHRvIGJlIHVzZWQgZm9yIG11bHRpcGxlIHRlc3RzIGJ5IG1vZGlmeWluZyB2YXJpb3VzIG9mIGl0cyBwcm9wZXJ0aWVzIGF0IHRlc3QgdGltZS4pCgojIyMgMS4wLjUgMjAyMS0wMS0yNQpJdCBpcyBub3cgcG9zc2libGUgdG8gZGVmaW5lIHByZXJlcXVpc2l0ZSB0ZXN0cyB0byBmb3JjZSBhIHRlc3QgdG8gdGFrZSBwbGFjZSBhZnRlciBhbm90aGVyIHRlc3QgZXZlbiBpZiBpdCBkb2VzIG5vdCBoYXZlIGEgZGVwZW5kZW5jeSBvbiB0aGUgb3RoZXIgdGVzdCdzIHJldHVybiB2YWx1ZS4KCiMjIyAxLjAuNCAyMDIwLTEyLTIzClVzZSBmdWxsIHBhdGggdG8gY29uc3RydWN0IHRlc3QgZmlsZW5hbWUgcmF0aGVyIHRoYW4ganVzdCB0aGUgZmlyc3QgY29tcG9uZW50LCBzbyBlLmcuIEdFVCAvdXNlci97aWR9L25hbWUgY3JlYXRlcyBhIGZpbGUgbmFtZWQgdXNlcl9pZF9uYW1lLmpzb24gcmF0aGVyIHRoYW4gdXNlci5qc29uLgpMb2cgc2NoZW1lLCBob3N0LCBhbmQgcG9ydCBpZiBkZWJ1Z2dpbmcgaXMgZW5hYmxlZC4KCiMjIyAxLjAuMyAyMDIwLTEyLTAyCkFkZCBzdXBwb3J0IGZvciBnZW5lcmFsLXB1cnBvc2UgSmF2YXNjcmlwdC1iYXNlZCBtYWNyb3MuClNob3cgaGVhZGVycyBpZiBkZWJ1Z2dpbmcgaXMgZW5hYmxlZC4KCiMjIyAxLjAuMiAyMDIwLTExLTIwCkZpeCBpc3N1ZSAjMiwgY3Jhc2ggaWYgYW4gT3BlbkFQSSBzcGVjIGZpbGUgY29udGFpbnMgYSBoZWFkZXIub3B0aW9ucyBzZWN0aW9uLgpSZXNvbHZlIHNldmVyYWwgcHJvYmxlbXMgZm91bmQgYnkgQ29kYWN5IGFuZCBYYW5pdGl6ZXIuCgojIyMgMS4wLjEgMjAyMC0xMC0xMQpGaXggdHlwbyBpbiBob21lcGFnZSBVUkwgaW4gcGFja2FnZS5qc29uLgpBZGQgYSBrZXl3b3JkIHRvIHBhY2thZ2UuanNvbgoKIyMjIyBzcnQtZ2VuZXJhdG9yCkRvbid0IGNyZWF0ZSB0ZXN0cyBmb3IgcmVzcG9uc2VzIHdpdGhvdXQgYW4geC1zcnQgZWxlbWVudC4KCiMjIyAxLjAuMCwgMjAyMC0xMC0wNwpJbml0aWFsIHJlbGVhc2UuIEZ1bmN0aW9uYWxpdHkgdG8gYmUgaW1wcm92ZWQgYXMgZGVtYW5kIHJlcXVpcmVzIGFuZCB0aW1lIHBlcm1pdHMuCg== readmeEtag: '"543ec626004f281d9bcece3671c8f03bc8f34ada"' readmeLastModified: Sun, 09 Apr 2023 12:05:45 GMT repositoryId: 297208956 description: A simplistic mocha-based test harness for REST APIs created: '2020-09-21T02:33:54Z' updated: '2021-11-03T11:11:06Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: Jmcleodfoss logo: https://avatars.githubusercontent.com/u/55663604?v=4 license: MIT repoEtag: '"66d4a6547c1b3cda437ef40264e809e9f4189406ff0c621369925597f1e464bb"' repoLastModified: Wed, 03 Nov 2021 11:11:06 GMT foundInMaster: true category: Testing id: a367f13a405f78c1ddddc5f71f16abc5 - source: openapi3 tags repository: https://github.com/locol23/swagger-github-pages v3: true id: 3d5b4219102b8161b4c37c7c4ef11e30 repositoryMetadata: base64Readme: >- IyBzd2FnZ2VyLWdpdGh1Yi1wYWdlcwoKIyMgRGVtbwoKaHR0cHM6Ly9sb2NvbDIzLmdpdGh1Yi5pby9zd2FnZ2VyLWdpdGh1Yi1wYWdlcy8KCiMjIFJlZmVyZW5jZQoKaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItdWkvYmxvYi9tYXN0ZXIvZG9jcy91c2FnZS9pbnN0YWxsYXRpb24ubWQjdW5wa2cKCg== readmeEtag: '"88098e084e37d36deec176307094b37609bea86b"' readmeLastModified: Tue, 09 May 2023 14:29:17 GMT repositoryId: 638518383 description: Visualize open api yaml with swagger-ui and deploy to GitHub pages created: '2023-05-09T14:22:21Z' updated: '2023-05-09T14:42:13Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: locol23 logo: https://avatars.githubusercontent.com/u/6946766?v=4 repoEtag: '"5b20187af3af7fd5527a2e79a70b902e8cf31a14bb2ced0c82fb9359609edb53"' repoLastModified: Tue, 09 May 2023 14:42:13 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/trebol-ecommerce/api v3: true repositoryMetadata: base64Readme: >- IyBUcsOpYm9sIGVDb21tZXJjZSBBUEkKClshW0dpdEh1YiBTdXBlci1MaW50ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90cmVib2wtZWNvbW1lcmNlL2FwaS9hY3Rpb25zL3dvcmtmbG93cy9saW50ZXIueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbWFya2V0cGxhY2UvYWN0aW9ucy9zdXBlci1saW50ZXIpCgpUaGUgY29udHJhY3QgdGhhdCBUcsOpYm9sIGFzIGEgd2hvbGUgbXVzdCBjb21wbHkgd2l0aC4KCiMjIERvY3VtZW50YXRpb24KClRoYW5rcyB0byBHaXRIdWIgQWN0aW9ucyBhbmQgW1JlZG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYyksIHlvdSBjYW4gZXhwbG9yZSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBBUEkgdGhyb3VnaCBbYSBtb2Rlcm4gd2Vic2l0ZSBkZXBsb3llZCBpbiBHaXRIdWIgUGFnZXNdKGh0dHBzOi8vdHJlYm9sLWVjb21tZXJjZS5naXRodWIuaW8vYXBpLykuCg== readmeEtag: '"3834d787e90fa0260cf757deac88586bce070e23"' readmeLastModified: Fri, 16 Aug 2024 03:48:42 GMT repositoryId: 312004563 description: eCommerce web service REST specification created: '2020-11-11T15:03:50Z' updated: '2024-08-16T03:49:06Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: trebol-ecommerce logo: https://avatars.githubusercontent.com/u/75125264?v=4 license: GPL-3.0 repoEtag: '"3bd2eea0d48eb242aa010ce40ebafd6422fb09b30062bdf74298894f2b4700e2"' repoLastModified: Fri, 16 Aug 2024 03:49:06 GMT foundInMaster: true category: - Testing - Server Implementations id: 9f9f6dc48233b4a6347515e8cd48e4fb - source: openapi3 tags repository: https://github.com/mtheusbrito/api-rest-java-spring-boot-3 v3: true id: f64d96da191ec0c694f02fedfca1496e repositoryMetadata: base64Readme: >- IyMjIyBTcHJpbmcgQm9vdCAzOiBEZXNlbnZvbHZlbmRvIHVtYSBBUEkgUmVzdCBlbSBKYXZhCgoKCiMjIyBSZXF1aXNpdG9zCgktIEphdmEgdmVyc2lvbiAxNwoJLSBtYXZlbgoJLSBNeVNRTDogNS41IH4gMTAuMy4zOC1NYXJpYURCCgkKIyMjIEJ1aWxkIAoKYGBgCmNkIHByb2plY3RfZm9sZGVyICYmIAptdm4gcGFja2FnZQpgYGAKCiMjIyBFeDogUnVuIGluIHByb2QKCmBgYApjZCBwcm9qZWN0X2ZvbGRlci90YXJnZXQgJiYKamF2YSAtRHNwcmluZy5wcm9maWxlcy5hY3RpdmU9cHJvZCAtRERBVEFTT1VSQ0VfVVJMPWpkYmM6bXlzcWw6Ly9pcF9wcm9kL2RhdGFiYXNlX3Byb2QgLUREQVRBU09VUkNFX1VTRVJOQU1FPXVzZXJuYW1lIC1EREFUQVNPVVJDRV9QQVNTV09SRD1wYXNzd29yZCAtamFyIGFwaS0wLjAuMS1TTkFQU0hPVC5qYXIKYGBg readmeEtag: '"331dc387cb79e9152313a0b3724bce99034b6ceb"' readmeLastModified: Thu, 30 Mar 2023 04:59:01 GMT repositoryId: 616289339 description: API rest utilizando Spring boot 3 created: '2023-03-20T04:51:05Z' updated: '2023-07-09T05:48:07Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: mtheusbrito logo: https://avatars.githubusercontent.com/u/13672114?v=4 repoEtag: '"38c395fbd8e96eff3ba281bd0d77dd297512d1c8e955e099951d4004d6211e7d"' repoLastModified: Sun, 09 Jul 2023 05:48:07 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/udnboss/generator v3: true id: 193b62f2938391dfcb3d229f6fad1a30 repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIEdlbmVyYXRvcg0KDQpUaGUgZm9sbG93aW5nIHNhbXBsZSBpbnB1dCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhbiBPcGVuQVBJIGRvY3VtZW50LiANCg0KYGBgDQphcGk6DQogIHRpdGxlOiBJbnZvaWNpbmcgQVBJDQogIGRlc2NyaXB0aW9uOiBJbnZvaWNpbmcgQVBJIFJlZmVyZW5jZQ0KICB2ZXJzaW9uOiAnMS4wJw0KICBwcmVmaXg6IC9hcGkvdjENCnNjcmlwdHM6DQogIG91dHB1dERpcjogLi9vdXRwdXQvaW52b2ljaW5nDQogIGZyYW1ld29yazogZXhwcmVzcyAjZXhwcmVzc3x3ZWJhcGl8ZmFzdGFwaQ0KaW50ZXJmYWNlczoNCiAgY29tcGFueToNCiAgICBpZDogDQogICAgbmFtZTogDQogICAgYWRkcmVzczogDQogICAgY3JuOiANCiAgICB0cm46IA0KICAgIGNvbnRhY3Q6IA0KICAgIG1vYmlsZTogDQogICAgZW1haWw6IHN0cnxlbWFpbA0KDQogIGNhdGVnb3J5Og0KICAgIGlkOiBzdHJpbmcNCiAgICBuYW1lOiBzdHJpbmcNCiAgICBpdGVtcz86IGl0ZW1bXQ0KDQogIGl0ZW06DQogICAgaWQ6IHN0cmluZw0KICAgIG5hbWU6IHN0cmluZw0KICAgIGNhdGVnb3J5X2lkPzogc3RyID4gY2F0ZWdvcnkuaWQNCiAgICBjYXRlZ29yeT86ID1jYXRlZ29yeQ0KYGBgDQoNClNvbWUgc3BlY2lhbCBzeW50YXggaXMgdXNlZDoNCg0KRXhhbXBsZSAxOiBgZW1haWw6IHN0cnxlbWFpbGAgbWVhbnMgdGhlIHByb3BlcnR5IGBlbWFpbGAgaGFzIGEgZGF0YSB0eXBlIGBzdHJpbmdgIGFuZCB0aGUgZm9ybWF0IGlzIGBlbWFpbGAuDQoNCkV4YW1wbGUgMjogYGNhdGVnb3J5X2lkPzogc3RyID4gY2F0ZWdvcnkuaWRgIG1lYW5zIHRoZSBgY2F0ZWdvcnlfaWRgIGlzIG9wdGlvbmFsIHByb3BlcnR5IChkdWUgdG8gZW5kaW5nIHdpdGggYD9gKSwgdGhlIGRhdGEgdHlwZSBpcyBgc3RyaW5nYCBhbmQgaXQgaXMgYSByZWZlcmVuY2UgYD5gIHRvIGFub3RoZXIgZW50aXR5IG9mIHR5cGUgYGNhdGVnb3J5YCBhbmQgdGhhdCBpdHMgdmFsdWUgaXMgaXRzIGBpZGAgcHJvcGVydHkuICh0aGluayBvZiBpdCBsaWtlIGEgZm9yZWlnbiBrZXkgcmVmZXJlbmNlIGluIGEgZGF0YWJhc2UgdGFibGUgdG8gYW5vdGhlciB0YWJsZSkuDQoNCkV4YW1wbGUgMzogYGl0ZW1zPzogaXRlbVtdYDogdGhlIGA/YCBtZWFucyBpdCBpcyBub3QgcmVxdWlyZWQsIGBpdGVtYCBtZWFucyBpdCBpcyBhIHJlZmVyZW5jZSB0byBhbm90aGVyIGtub3duIGVudGl0eSBvZiB0eXBlIGBpdGVtYCBhbmQgYFtdYCBtZWFucyBpdCBpcyBhbiBhcnJheSBvZiBpdGVtcy4NCg0KDQpZb3UgY2FuIHN0YXJ0IGJ5IHNhdmluZyBpbnB1dCBpbiBhIHlhbWwgZmlsZSwgYW5kIHJ1bm5pbmcgdGhlIGNvbW1hbmRzIHRvIHRlc3QgaXQuIEEgZnVsbCBpbnB1dCBleGFtcGxlIGlzIGxvY2F0ZWQgaW4gYHNjaGVtYXMvaW52b2ljaW5nLnltbGANCg0KUnVuIHRoaXMgY29tbWFuZCB0byB0ZXN0IGl0IChnZW5lcmF0ZSBqdXN0IE9wZW5BUEkgZG9jdW1lbnQpOg0KYHB5dGhvbiBnZW4ucHkgZG9jcyAuL3NjaGVtYXMvaW52b2ljaW5nLnltbGANCg0KWW91IGNhbiB2aWV3IGEgc2FtcGxlIG91dHB1dCBpbiBgLi9vdXRwdXQvaW52b2ljaW5nLnltbGAuDQoNClRoZSBvdXRwdXQgd2lsbCBiZSBzdG9yZWQgaW4gYC4vb3V0cHV0L2ludm9pY2luZy55bWxgLiBZb3UgY2FuIGNvcHkgdGhlIG91dHB1dCBhbmQgcGFzdGUgaXQgaW4gW1N3YWdnZXIgRWRpdG9yXShodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLykgdG8gdGVzdCBpdCBhbmQgdmFsaWRhdGUuDQoNCkV4YW1wbGUgdG8gZ2VuZXJhdGUgZXhwcmVzc0pzIGFwaSB0eXBlc2NyaXB0IGNvZGUsIChjb2RlIHdpbGwgYmUgZ2VuZXJhdGVkIGZvciB0aGUgc3BlY2lmaWVkIGZyYW1ld29yayBpbiBgc2NyaXB0cy5mcmFtZXdvcmtgKSwgcnVuOg0KYHB5dGhvbiBnZW4ucHkgYXBpIC4vc2NoZW1hcy9pbnZvaWNpbmcueW1sYA0KDQpUaGUgb3V0cHV0IHdpbGwgYmUgd3JpdHRlbiBpbiB0aGUgc3BlY2lmaWVkIGBzY3JpcHRzLm91dHB1dERpcmAgaW4gdGhlIHN1cHBsaWVkIGAueW1sYCBmaWxlLg0KDQpUaGUgZ2VuZXJhdGVkIGFwaSB3aWxsIGhhdmUgdGhlIGJhc2ljIGJ1c2luZXNzLCBpbnRlcmZhY2VzLCBjbGFzc2VzLCBhbmQgcm91dGVzLiBCYWNrZW5kIGNhbiBiZSBKU09OIG9yIFNxbGl0ZTMgKGRlZmF1bHQpIGZvciBub3cuDQoNClVwY29taW5nIGlzIHRvIGdlbmVyYXRlIHNxbCBmb3IgOnNxbGl0ZSwgcG9zdGdyZXMsIHNxbCBzZXJ2ZXIsIGV0Yy4= readmeEtag: '"d78c8f93937eafaa2012d94d79b455fb2b7ed31c"' readmeLastModified: Tue, 05 Sep 2023 18:06:12 GMT repositoryId: 675078533 description: >- A Python script to generate OpenAPI document specification for your API, based on a yaml file that is very minimal to describe your entities. created: '2023-08-05T17:44:48Z' updated: '2023-08-29T19:09:16Z' language: C# archived: false stars: 0 watchers: 1 forks: 0 owner: udnboss logo: https://avatars.githubusercontent.com/u/74108279?v=4 repoEtag: '"cb8f06f7e86ebff0a16aec82a6648661203d40440e9f51737afbe61faa9c7fbe"' repoLastModified: Tue, 29 Aug 2023 19:09:16 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/glennfaison/mcq v3: true repositoryMetadata: base64Readme: >- IyBtY3EKQSBSRVNUIEFQSSBmb3IgYW4gTUNRIHdlYiBhcHBsaWNhdGlvbiwgd2l0aCBhIE1vbmdvREIgZGF0YWJhc2UuCg== readmeEtag: '"e8e56482a046a6278990af081e911adc61869daa"' readmeLastModified: Tue, 26 May 2020 09:37:20 GMT repositoryId: 254987221 description: A REST API for an MCQ web application, with a MongoDB database. created: '2020-04-12T01:29:19Z' updated: '2020-05-26T09:37:23Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 1 owner: glennfaison logo: https://avatars.githubusercontent.com/u/17485270?v=4 repoEtag: '"3c40f6add8839031ff65be54c755214e274dbd4e170ab4db3bebed7f86e78268"' repoLastModified: Tue, 26 May 2020 09:37:23 GMT foundInMaster: true category: - Server - Server Implementations id: 92c056d9988d9c3d6b6801cb474f2cab - source: openapi3 tags repository: https://github.com/authena-ru/courses-organization v3: true repositoryMetadata: base64Readme: >- WyFbY29kZWNvdl0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2F1dGhlbmEtcnUvY291cnNlcy1vcmdhbml6YXRpb24vYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPUZZSTk3U0hUM1gpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvYXV0aGVuYS1ydS9jb3Vyc2VzLW9yZ2FuaXphdGlvbikKCiMgQXV0aGVuYSBjb3Vyc2VzIG9yZ2FuaXphdGlvbiBzZXJ2aWNlCgpDb3Vyc2VzIG9yZ2FuaXphdGlvbiBkb21haW4gZm9yIEF1dGhlbmEgY291cnNlIHBhc3NpbmcgcHJvamVjdAoKIyMgQnVpbGQgJiBSdW4gKExvY2FsbHkpCgojIyMgUHJlcmVxdWlzaXRlcwoKLSBnbyAxLjE3Ci0gRG9ja2VyCi0gZ29sYW5nY2ktbGludAoKIyMjIEVudmlyb25tZW50CgpZb3UgY2FuIGNyZWF0ZSAuZW52IGZpbGUgd2l0aCBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9yIHNldCB0aGVtIG1hbnVhbGx5OgoKYGBgZG90ZW52CkFQUF9FTlZJUk9OTUVOVD1sb2NhbCAjIEVudmlyb25tZW50IG5hbWUgYW5kIGNvbmZpZyBuYW1lIHRvIHBhcnNlCgpNT05HT19VUkk9bW9uZ29kYjovL21vbmdvZGI6MjcwMTcKTU9OR09fVVNFUk5BTUU9YWRtaW4KTU9OR09fUEFTU1dPUkQ9cXdlcnR5CmBgYAoKIyMjIENvbW1hbmRzCgotIGBgbWFrZSBvcGVuYXBpYGAg4oCUIGdlbmVyYXRlcyBib2lsZXJwbGF0ZSBjb2RlLCB0eXBlcyBhbmQgc2VydmVyIGludGVyZmFjZSB0aGF0IGNvbmZvcm1zIHRvIE9wZW5BUEkKLSBgYG1ha2UgZ28tYnVpbGRgYCDigJQgYnVpbGRzIHByb2plY3QgZm9yIEdPT1M9bGludXgKLSBgYG1ha2UgbGludGBgIOKAlCBydW5zIGxpbnRlcnMKLSBgYG1ha2UgZGV2YGAgLSBydW5zIGRldiBlbnZpcm9ubWVudAotIGBgbWFrZSB0ZXN0LXVuaXRgYCDigJQgcnVucyB1bml0IHRlc3RzIGFuZCBzYXZlIGNvdmVyIHByb2ZpbGUKLSBgYG1ha2UgdGVzdC1pbnRlZ3JhdGlvbmBgIOKAlCBydW5zIGludGVncmF0aW9uIHRlc3RzIGFuZCBzYXZlIGNvdmVyIHByb2ZpbGUKLSBgYG1ha2UgdGVzdC1jb3ZlcmBgIOKAlCBidWlsZHMgY29kZSBjb3ZlciByZXBvcnQKLSBgYG1ha2UgcnVuLXRlc3QtZGJgYCDigJQgcnVucyBEb2NrZXIgd2l0aCB0ZXN0IE1vbmdvIERCCi0gYGBtYWtlIHN0b3AtdGVzdC1kYmBgIOKAlCBzdG9wcyBEb2NrZXIgd2l0aCB0ZXN0IE1vbmdvIERCCg== readmeEtag: '"28349a3f30f7bd905cc5bed1d86d2565db602167"' readmeLastModified: Wed, 17 Nov 2021 10:26:43 GMT repositoryId: 370463122 description: Courses organization domain for Authena course passing project created: '2021-05-24T19:26:45Z' updated: '2021-11-17T10:26:47Z' language: Go archived: false stars: 0 watchers: 0 forks: 0 owner: authena-ru logo: https://avatars.githubusercontent.com/u/84408406?v=4 license: MIT repoEtag: '"b00bcacd8302c135f57ee0dd38e115326b52e4bce3f39df29ffe3c0e3619396a"' repoLastModified: Wed, 17 Nov 2021 10:26:47 GMT foundInMaster: true category: Testing id: 25b5b9e0c4ad3abfe66bac824fa1bf10 - source: openapi3 tags repository: https://github.com/hbhb-devloper/relocation-manage v3: true repositoryMetadata: base64Readme: IyByZWxvY2F0aW9uLW1hbmFnZQoK6L+B5pS5566h55CGCg== readmeEtag: '"e573039aadd831e0565fd0e378015af11c6e4379"' readmeLastModified: Sat, 20 Mar 2021 10:40:44 GMT repositoryId: 349693528 description: 财务管理系统-后端服务-迁改管理 created: '2021-03-20T10:29:26Z' updated: '2021-03-20T12:23:59Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"aca34bb94d2994945888d1411431eb6f928df31557ec9fc492301ebf378b1b86"' repoLastModified: Sat, 20 Mar 2021 12:23:59 GMT foundInMaster: true category: - Server - Server Implementations id: ab16c7f5bdd6e89dc78f6a93be1ad57a - source: openapi3 tags repository: https://github.com/juliandecoss/ymltoswaggerhtml v3: true repositoryMetadata: base64Readme: >- IyBTV0FHR0VSIEdFTkVSQVRPUiBIVE1MIEZJTEVTCgpUaGlzIFJlcG8gY3JlYXRlcyBiZWF1dGlmdWwgaHRtbCBzd2FnZ2VyIGZpbGVzLCB1c2luZyBZQU1MIGZpbGVzIGFuZCB2YWxpZGF0ZXMgdGhlbS4KCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCk1ha2Ugc3VyZSB5b3UgaGF2ZSBpbnN0YWxsZWQKCi0gW1B5dGhvbiAzLjcrXShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy8pCgoKIyMgSW5zdGFsbGF0aW9uCgpUbyBpbnN0YWxsIHRoZSBsaWJyYXJpZXMsIHJ1biBpbiB5b3VyIHRlcm1pbmFsLgoKYGBgc2gKbWFrZSBpbnN0YWxsCmBgYAoKVGhpcyB3aWxsIHNldHVwIHlvdXIgZW52aXJvbm1lbnQgdG8gYWRkIHRoZSAyIGxpYnJhcmllcyB0aGlzIHJlcG8gcmVxdWlyZXMuCgoKIyMgQWRkaW5nIHlvdXIgIFlBTUwgZG9jcwoKSW4gb3JkZXIgdG8gdmFsaWRhdGUgeW91ciBmaWxlcyBhZGQgeW91ciBkb2NzIHRvIHRoZSBkaXJlY3RvcnkgZG9jcy9vcGVuYXBpLgoKCiMjIFZhbGlkYXRpbmcgeW91ciB5YW1sIGZpbGVzCgpUbyB2YWxpZGF0ZSB5b3VyIGZpbGVzIGZpcnN0IGFkZCB0aGVtIGluIHRoZSBkaXJlY3Rvcnkgb3BlbmFwaSwgdGhlbiBydW4gaW4geW91ciB0ZXJtaW5hbDoKCmBgYHNoCm1ha2Ugc3dhZ2dlci12YWxpZGF0aW9uCmBgYAoKIyMgQ3JlYXRpbmcgeW91ciBodG1sIGJlYXV0aWZ1bCBzd2FnZ2VyIHN0YXRpYyBkb2NzCkluIG9yZGVyIHRvIGNvbm5lY3QgeW91ciBmaWxlcyBiZXR3ZWVuIGVhY2ggb25lLCBjaGFuZ2UgdGhlIGZpbGUgdGVtcGxhdGUgaW4gc2NyaXB0cy90ZW1wbGF0ZXMvc3dhZ2dlcl90ZW1wbGF0ZSwgeW91IHdpbGwgZmluZCBpbiB0aGUgbGluZSAzNiB0aGF0IHRoZXJlIGlzIGEgInNlbGVjdCIgaHRtbCBlbGVtZW50LCBhZGQgYWxsIHlvdXIgZmlsZXMgdGhlcmUsIGFzIG9wdGlvbnMgIjxvcHRpb24gdmFsdWU9Im5hbWVfb2ZfeW91cl9maWxlIj5uYW1lX29mX3lvdXJfZmlsZTwvb3B0aW9uPiIgaXRzIG5vdCBuZWNlc3NhcnkgdG8gYWRkIHRoZSBzdWZpeCBodG1sLgoKT25jZSB5b3UgZmluaXNoIHRoaXMgc3RlcCBqdXN0IHJ1biBpbiB5b3VyIHRlcm1pbmFsCgpgYGBzaAptYWtlIHN3YWdnZXItc3RhdGljCmBgYAoKCiMjIyMgQ3JlZGl0cyB0bwpUaGlzIHJlcG8gd2FzIGJ1aWx0IHVzaW5nIHRoZSBzY3JpcHQgc2hvd24gYmVsb3c6Ci0gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vb3NlaXNrYXIvZGJkNTFhMzcyN2ZjOTZkY2Y1ZWQxODlmY2E0OTFmYjM= readmeEtag: '"170112849bb6c0858b4811d69f547a5095ef07ff"' readmeLastModified: Sat, 24 Jul 2021 02:26:43 GMT repositoryId: 388936192 description: >- 📖 Generate beautiful html files with a swagger template using YAML/YML files. 🚀🚀 created: '2021-07-23T21:59:03Z' updated: '2021-07-24T22:05:11Z' language: Python archived: false stars: 0 watchers: 1 forks: 0 owner: juliandecoss logo: https://avatars.githubusercontent.com/u/72807525?v=4 license: Apache-2.0 repoEtag: '"bf3c0d1d52b8960aa0d5a47a0723b5e9d56016d23e5c086e68aa462653a36288"' repoLastModified: Sat, 24 Jul 2021 22:05:11 GMT foundInMaster: true category: - Testing - Server Implementations id: 7cece16cf56bc26a12f14a7356d46509 - source: openapi3 tags repository: https://github.com/sundalei/book-management v3: true id: c4dbc45096493794f18a9442090a78c3 repositoryMetadata: base64Readme: >- IyBib29rLW1hbmFnZW1lbnQKIyMgc3RlcCAxIHZhbGlkYXRlIHRlbXBsYXRlIHByb2plY3Qgd29ya2luZwpgYGBqYXZhCkBSZXN0Q29udHJvbGxlcgpwdWJsaWMgY2xhc3MgSGVsbG9Db250cm9sbGVyIHsKICAgIAogICAgQEdldE1hcHBpbmcoIi8iKQogICAgcHVibGljIFN0cmluZyBncmVldGluZygpIHsKICAgICAgICByZXR1cm4gImhlbGxvIHdvcmxkIjsKICAgIH0KfQpgYGAKCiMjIHN0ZXAgMiB1c2UgbW9uZ29kYiBhcyBiYWNrZW5kIHN0b3JhZ2UgYW5kIHNwcmluZyBkYXRhIG1vbmdvIApCb29rUmVwb3NpdG9yeQ== readmeEtag: '"5d701975d5d429b0f721229d19fe367320dbec87"' readmeLastModified: Sat, 28 May 2022 08:08:46 GMT repositoryId: 493049552 description: Book Management created: '2022-05-17T01:09:02Z' updated: '2022-09-09T00:46:01Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: sundalei logo: https://avatars.githubusercontent.com/u/12974121?v=4 repoEtag: '"dec561d9b4537898202e4f3b00853a2eb57029dce882101ee3d162f59b741194"' repoLastModified: Fri, 09 Sep 2022 00:46:01 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/a-sync/ocap-odata v3: true id: 8f91cbfa40dea0d3af43a84d56edb4ea repositoryMetadata: base64Readme: >- IyBvY2FwLW9kYXRhCgojIEFib3V0CiAqIHByb3ZpZGVzIE9EYXRhIHY0LjAxIEFQSSBmb3Igb2NhcC1zdGF0cyBkYXRhYmFzZQogKiBidWlsdCBvbiBsYXJhdmVsIDEwICsgbG9hZGF0YSAyCiAqIG9ubHkgYSB0aGluIGxheWVyIG9mIGVsb3F1ZW50IG1vZGVscyBhbmQgbG9kYXRhIHRyYWl0cwoKIyBEZW1vIHNpdGVzCltmbmYtb2RhdGEuZGV2cy5zcGFjZV0oaHR0cHM6Ly9mbmYtb2RhdGEuZGV2cy5zcGFjZSkgIAogJm5ic3A7ICZyZGNhOyB1c2luZyBbZm5mLXN0YXRzXShodHRwczovL2ZuZi1zdGF0cy5kZXZzLnNwYWNlKSBkYXRhYmFzZSAgCiAmbmJzcDsgJm5ic3A7ICZyZGNhOyB1c2luZyBbT0NBUDJdKGh0dHA6Ly9hYXIuZnJpZGF5bmlnaHRmaWdodC5vcmcpIGRhdGEgZnJvbSBbRk5GXShodHRwczovL3d3dy5mcmlkYXluaWdodGZpZ2h0Lm9yZykKCiMgSG9zdGluZyByZXF1aXJlbWVudHMKICogUEhQIDguMSBvciBsYXRlcgogKiBhY2Nlc3MgdG8gb2NhcC1zdGF0cyBkYXRhYmFzZSAobXlzcWwvbWFyaWFkYikKCllvdSBzaG91bGQgdXNlIGVudiB2YXJzIChlbnYuZXhhbXBsZSkgdG8gY29uZmlndXJlIHRoZSBkYXRhYmFzZSBob3N0L3VzZXIvcHcvZGJuYW1lLCBidXQgeW91IG9ubHkgbmVlZCB0byBlZGl0IHRoZSBbREJfVVJMXSguL2NvbmZpZy9kYXRhYmFzZS5waHAjTDQ4KSBnZW5lcmFsbHkuCgojIERldmVsb3BtZW50IHJlcXVpcmVtZW50cwogKiBkb2NrZXItY29tcG9zZSAyIG9yIGxhdGVyCiAqIGNvbXBvc2VyIDIuMiBvciBsYXRlcgoKIyMgU2V0dXAKSW5zdGFsbCBjb21wb3NlciBkZXBlbmRlbmNpZXMuCmBgYApjb21wb3NlciBpbnN0YWxsCmBgYAoKIyMgQ29uZmlnCkNyZWF0ZSBhIC5lbnYgZmlsZSB0byBlbmFibGUgbGFyYXZlbCBkZWJ1ZyBvcHRpb25zLgpgYGAKQVBQX0VOVj1sb2NhbApBUFBfS0VZPQpBUFBfREVCVUc9dHJ1ZQpMT0dfTEVWRUw9ZGVidWcKYGBgCgojIyBSdW5uaW5nIGxvY2FsbHkK4pqgIFlvdSBuZWVkIHRvIGNvbm5uZWN0IHRvIGFuIGV4aXN0aW5nIG9jYXAtc3RhdHMgZGF0YWJhc2UuICAKVG8gcXVpY2tseSBzcGluIHVwIHlvdXIgb3duIGxvY2FsIGRhdGFiYXNlIGhlYWQgb3ZlciB0byBbb2NhcC1zdGF0cy9TRVRVUC5tZF0oaHR0cHM6Ly9naXRodWIuY29tL2Etc3luYy9vY2FwLXN0YXRzL2Jsb2IvbWFzdGVyL1NFVFVQLm1kKSBmb3IgaW5zdHJ1Y3Rpb25zLgoKIyMjIyBTdGFydGluZyB1cCB0aGUgZGV2IGVudjoKYGBgCmRvY2tlci1jb21wb3NlIHVwCmBgYAoKIyMjIyMgU2VydmljZXMKICogV2ViIAogICAgKiBodHRwOi8vbG9jYWxob3N0Ojg1MDAvCgojIyMgQ2hlY2tpbmcgZGIgY29ubmVjdGlvbgpgYGAKcGhwIGFydGlzYW4gZGI6c2hvdwpgYGAKCiMjIyMgU2h1dHRpbmcgZG93biB0aGUgZGV2IGVudgpgYGAKZG9ja2VyLWNvbXBvc2UgZG93bgpgYGAKCiMjIyMgU3RhcnRpbmcgdXAgdGhlIGRldiBlbnYgYWdhaW4KYGBgCmRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAoKIyMjIENsZWFuIHJlc3RhcnQKYGBgCmRvY2tlci1jb21wb3NlIGRvd24gLXYKZG9ja2VyIHN5c3RlbSBwcnVuZSAtYSAtZiAtLXZvbHVtZXMKY29tcG9zZXIgaW5zdGFsbApwaHAgYXJ0aXNhbiByb3V0ZTpjbGVhcgpwaHAgYXJ0aXNhbiBjb25maWc6Y2xlYXIKcGhwIGFydGlzYW4gY2FjaGU6Y2xlYXIKZG9ja2VyLWNvbXBvc2UgYnVpbGQgLS1uby1jYWNoZQpkb2NrZXItY29tcG9zZSB1cCAtZApgYGAK readmeEtag: '"0538b3cfcb7e78f5e4f9e4f37a8eae8a6686ab3c"' readmeLastModified: Thu, 09 May 2024 20:40:38 GMT repositoryId: 450753308 description: OData API for OCAP data (ocap-stats database) created: '2022-01-22T07:55:37Z' updated: '2024-05-09T20:40:30Z' language: PHP archived: false stars: 0 watchers: 3 forks: 0 owner: a-sync logo: https://avatars.githubusercontent.com/u/14183614?v=4 repoEtag: '"4f35e9c5fdfdf177d6b987758617f99c3aefffe13333f28aacfd9b2df17c8b80"' repoLastModified: Thu, 09 May 2024 20:40:30 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/alvarosps/digital-account-server v3: true id: 78b0cbe1eaabe3d4034dcc358599c5a7 repositoryMetadata: base64Readme: >- IyBCYW5rIEFQSQoKVGhpcyBpcyBhbiBBUEkgZm9yIGEgYmFua2luZyBzeXN0ZW0gdGhhdCBhbGxvd3MgdXNlcnMgdG8gY3JlYXRlIGFuZCBtYW5hZ2UgYmFuayBhY2NvdW50cy4KCiMjIFRlY2hub2xvZ2llcwoKVGhpcyBwcm9qZWN0IHVzZXMgdGhlIGZvbGxvd2luZyB0ZWNobm9sb2dpZXM6CgotIE5vZGUuanMKLSBFeHByZXNzLmpzCi0gQVdTIER5bmFtbyBEQgoKIyMgU2V0dXAKClRvIHNldCB1cCB0aGlzIHByb2plY3QsIGZvbGxvdyB0aGVzZSBzdGVwczoKCi0gQ2xvbmUgdGhpcyByZXBvc2l0b3J5IHRvIHlvdXIgbG9jYWwgbWFjaGluZS4KLSBJbnN0YWxsIGRlcGVuZGVuY2llcyBieSBydW5uaW5nIG5wbSBpbnN0YWxsLgotIFNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGRlZmluZWQgaW4gLmVudi5leGFtcGxlLiBZb3UgY2FuIGVpdGhlciBjcmVhdGUgYSAuZW52IGZpbGUgb3Igc2V0IHRoZW0gaW4geW91ciBlbnZpcm9ubWVudC4KLSBTdGFydCB0aGUgc2VydmVyIGJ5IHJ1bm5pbmcgbnBtIHN0YXJ0LgotIFlvdSB3aWxsIG5lZWQgdG8gY3JlYXRlIGEgLmVudiBmaWxlIGluIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdCwgY29udGFpbmluZzoKYGBgCkFXU19BQ0NFU1NfS0VZX0lEPTx5b3VyIGF3cyBhY2Nlc3Mga2V5PgpBV1NfU0VDUkVUX0FDQ0VTU19LRVk9PHlvdXIgYXdzIHNlY3JldCBhY2Nlc3Mga2V5PgpBV1NfUkVHSU9OPTxhd3MgcmVnaW9uIHlvdSBhcmUgdXNpbmc+CkFVVEgwX0FVRElFTkNFPWh0dHBzOi8vc3BzZmFrZWJhbmthY2NvdW50cy5jb20vYXBpCkFVVEgwX0lTU1VFUl9CQVNFX1VSTD1odHRwczovL2Rldi1zeG1nNDA4bnduc2UwNWp1LnVzLmF1dGgwLmNvbS8KQVVUSDBfVE9LRU5fU0lHTklOR19BTEdPUklUSE09UlMyNTYKYGBgCgpTZXJ2ZXIgd2lsbCBydW4gb24gaHR0cDovL2xvY2FsaG9zdDozMDAwCgojIyBBdXRoZW50aWNhdGlvbgoKVGhpcyBBUEkgdXNlcyBhdXRoMCBhdXRoZW50aWNhdGlvbiwgeW91J2xsIG5lZWQgdG8gaGF2ZSB0aGUgaGVhZGVyICdBdXRob3JpemF0aW9uJyBpbiB0aGUgcmVxdWVzdHMgKGFuZCBBUEkgRG9jdW1lbnRhdGlvbikgdG8gdXNlIGl0LgoKIyMjIEdldHRpbmcgdGhlIGFjY2Vzc190b2tlbgoKWW91J2xsIG5lZWQgdG8gbWFrZSBhIFBPU1QgY2FsbCB0byBodHRwczovL2Rldi1zeG1nNDA4bnduc2UwNWp1LnVzLmF1dGgwLmNvbS9vYXV0aC90b2tlbgpJbiB0aGUgQm9keSBvZiB0aGUgcmVxdWVzdCwgeW91IHNob3VsZCBwdXQgKGZpbGxpbmcgaW4gdGhlIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCB3aXRoIHlvdXIgY3JlZGVudGlhbHMpOgoKYGBgCnsKICAiY2xpZW50X2lkIjogIiIsCiAgImNsaWVudF9zZWNyZXQiOiAiIiwKICAiYXVkaWVuY2UiOiAiaHR0cHM6Ly9zcHNmYWtlYmFua2FjY291bnRzLmNvbS9hcGkiLAogICJncmFudF90eXBlIjogImNsaWVudF9jcmVkZW50aWFscyIKfQoKYGBgCgpUaGlzIHdpbGwgaGF2ZSBhIHJlc3BvbnNlIGxpa2UgdGhpczoKCmBgYAp7CiAgICAiYWNjZXNzX3Rva2VuIjogIjxhY2Nlc3NfdG9rZW5fZnJvbV9hdXRoMD4iLAogICAgImV4cGlyZXNfaW4iOiA4NjQwMCwKICAgICJ0b2tlbl90eXBlIjogIkJlYXJlciIKfQpgYGAKClRoZW4sIGluIHRoZSByZXF1ZXN0cyB5b3UgbWFrZSwgeW91J2xsIGhhdmUgdGhlIGZvbGxvd2luZyBIZWFkZXI6CgpgYGAKQXV0aG9yaXphdGlvbjogQmVhcmVyIDxhY2Nlc3NfdG9rZW5fZnJvbV9hdXRoMD4KYGBgCgojIyBVc2FnZQoKT25jZSB0aGUgc2VydmVyIGlzIHVwIGFuZCBydW5uaW5nLCB5b3UgY2FuIHVzZSBhbiBBUEkgY2xpZW50IGxpa2UgUG9zdG1hbiB0byBpbnRlcmFjdCB3aXRoIHRoZSBlbmRwb2ludHMuIFRoZSBBUEkgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zOgoKLSBDcmVhdGluZyBhbiBhY2NvdW50IGhvbGRlcgotIEdldHRpbmcgYWxsIGFjY291bnQgaG9sZGVycwotIEdldHRpbmcgYW4gYWNjb3VudCBob2xkZXIgYnkgSUQKLSBVcGRhdGluZyBhbiBhY2NvdW50IGhvbGRlcgotIERlbGV0aW5nIGFuIGFjY291bnQgaG9sZGVyCi0gQ3JlYXRpbmcgYSBiYW5rIGFjY291bnQKLSBHZXR0aW5nIGFsbCBiYW5rIGFjY291bnRzCi0gR2V0dGluZyBhIGJhbmsgYWNjb3VudCBieSBJRAotIFVwZGF0aW5nIGEgYmFuayBhY2NvdW50Ci0gQ2xvc2luZyBhIGJhbmsgYWNjb3VudAotIEJsb2NraW5nIGEgYmFuayBhY2NvdW50Ci0gVW5ibG9ja2luZyBhIGJhbmsgYWNjb3VudAotIERlcG9zaXRpbmcgbW9uZXkgaW50byBhIGJhbmsgYWNjb3VudAotIFdpdGhkcmF3aW5nIG1vbmV5IGZyb20gYSBiYW5rIGFjY291bnQKCiMjIEFQSSBEb2N1bWVudGF0aW9uCgpUaGUgQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGluIHRoZSBPcGVuQVBJIGZvcm1hdCBhbmQgY2FuIGJlIGZvdW5kIGluIHRoZSAuL29wZW5hcGkvb3BlbmFwaS55bWwgZmlsZS4KCllvdSBjYW4gYWNjZXNzIGl0IG9uIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGktZG9jcyAoWW91IG5lZWQgdG8gcHV0IHRoZSBBdXRob3JpemF0aW9uIEhlYWRlciBvbiB0aGUgQnJvd3NlciB0byBhY2Nlc3MgdGhlIGRvY3VtZW50YXRpb24gZGlyZWN0bHkpCg== readmeEtag: '"cb870fa93da3693a37c2233549a48b3b0fb5d9c7"' readmeLastModified: Fri, 24 Mar 2023 19:26:39 GMT repositoryId: 618577049 description: >- A NodeJS / Typescript API Server, that uses Express, AWS Dynamo DB, Auth0 Authentication, OpenAPI for documentation created: '2023-03-24T19:22:39Z' updated: '2023-03-24T19:25:03Z' language: TypeScript archived: false stars: 0 watchers: 2 forks: 0 owner: alvarosps logo: https://avatars.githubusercontent.com/u/22122640?v=4 repoEtag: '"5ef3e29c2d5f4abeaf87ac5f7ed68ef76df5c656a8651b7d8dc250e27c90b1b7"' repoLastModified: Fri, 24 Mar 2023 19:25:03 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/fehho/mydirt-api v3: true id: 91bb2ecdeaf81379b325bec141dd9cd2 repositoryMetadata: base64Readme: >- IyBteURpUlQtYXBpCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCkZpcnN0LCBpbnN0YWxsIGRlcGVuZGVuY2llcy4KCmBgYGJhc2ggCmNwYW5tIC0taW5zdGFsbGRlcHMgLgpgYGAKClJ1biB0aGUgZGV2ZWxvcG1lbnQgd2Vic2VydmVyCgpgYGBiYXNoCm1vcmJvIHNjcmlwdC9teV9hcHAKYGBgCgpPcGVuIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvaGVhbHRoIHdpdGggeW91ciBicm93c2VyIHRvIHNlZSB0aGUgcmVzdWx0LgoKQVBJIHJvdXRlcyBjYW4gYmUgYWNjZXNzZWQgb24gaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaQoKIyMgTGVhcm4gTW9yZQoKW01vam9saWNpb3VzXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvTW9qb2xpY2lvdXMpIC0gd2ViIGZyYW1ld29yawoKW09wZW5BUEldKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykgLSBBUEkgc3RhbmRhcmQKCltEQkl4OjpDbGFzc10oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvZGlzdC9EQkl4LUNsYXNzL3ZpZXcvbGliL0RCSXgvQ2xhc3MvTWFudWFsL0RvY01hcC5wb2QpIC0gb2JqZWN0IDwtPiByZWxhdGlvbmFsIG1hcHBlci4K readmeEtag: '"df562c3fa60f68fb97e63aa2195be56f5860fcc7"' readmeLastModified: Mon, 09 Jan 2023 16:36:35 GMT repositoryId: 577360080 description: Scorpion Camp winter 2022 devjam participant created: '2022-12-12T15:07:54Z' updated: '2022-12-22T14:26:36Z' language: Perl archived: false stars: 0 watchers: 2 forks: 0 owner: fehho logo: https://avatars.githubusercontent.com/u/116404887?v=4 repoEtag: '"7c6af139fd389f90ea53bdc7209f3117301293ef3ae133902de7e233484516f2"' repoLastModified: Thu, 22 Dec 2022 14:26:36 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/edo1z/rust-axum-seaorm-sample v3: true id: 2129199cc4f3c61ca889912962cd6c67 repositoryMetadata: base64Readme: >- IyBydXN0LWF4dW0tc2Vhb3JtLXNhbXBsZQojIyBMb2NhbCBTZXR1cAoKYGBgCj4gY2QgbG9jYWwKPiBkb2NrZXItY29tcG9zZSB1cApgYGAKCi0gQVBJOiBodHRwOi8vbG9jYWxob3N0OjgwODUKLSBTd2FnZ2VyOiBodHRwOi8vbG9jYWxob3N0OjgwMDEK readmeEtag: '"363caea125308295e1deae7d4427c6478ad176e1"' readmeLastModified: Tue, 05 Jul 2022 16:15:43 GMT repositoryId: 504863913 description: Rust Axum+SeaORM Sample created: '2022-06-18T14:21:30Z' updated: '2022-07-02T14:11:17Z' language: Rust archived: false stars: 0 watchers: 1 forks: 0 owner: edo1z logo: https://avatars.githubusercontent.com/u/89882017?v=4 repoEtag: '"3f7e251f201d6b3d4a0cdf6dc2a54f48032a86ebb1e3ee42d81b2575e2637b85"' repoLastModified: Sat, 02 Jul 2022 14:11:17 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/net3i/rust-axum-seaorm-sample - source: openapi3 tags repository: https://github.com/open-banking/statements v3: true repositoryMetadata: base64Readme: >- IyBzdGF0ZW1lbnRzCk9wZW4gQmFua2luZyBTdGF0ZW1lbnRzIEFQSSBidWlsdCBvbiB0b3Agb2YgbGlnaHQtNGoK readmeEtag: '"1eefcc9eca4e906f055d6cdc1c0391035cc99499"' readmeLastModified: Thu, 25 Jul 2024 20:09:53 GMT repositoryId: 235867437 description: Open Banking Statements API built on top of light-4j created: '2020-01-23T19:14:04Z' updated: '2024-09-04T18:31:45Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"4eab3679ba2f4a9e5f1a1c2896453288668647a46fbf0865de98892adef1e844"' repoLastModified: Wed, 04 Sep 2024 18:31:45 GMT foundInMaster: true category: - SDK - Server - Parsers id: 6232a03609eccb95b6e2af51c4a66cda - source: openapi3 tags repository: https://github.com/d00nik/hypixel-sdk v3: true id: 91be572de321d556ddfa1314989c374e repositoryMetadata: base64Readme: >- IyBEaXNjbGFpbWVyCgpUaGlzIHBhY2thZ2UgaXNuJ3QgaW4gYW55IG1lYW4gYWN0aXZlbHkgc3VwcG9ydGVkIGFuZCBzaG91bGRuJ3QgYmUgdXNlIGluIGRpc3RyaWJ1dGlvbi4gSW5zdGVhZCB5b3Ugc2hvdWxkIGZldGNoIHRoZSBhcGkgeW91cnNlbGYgb3IgdXNlIFtoeXBpeGVsLnRzXShodHRwczovL2dpdGh1Yi5jb20vaHlwaXhlbHRzL2h5cGl4ZWwudHMpLiBUaGlzIHBhY2thZ2UgaXMgbWVhbnQgdG8gYmUgcHVyZWx5IHVzZWQgZm9yIHRlc3RpbmcuIENvbnRpbnVlIGF0IHlvdXIgb3duIHJpc2suCgpUaGUgcmVhc29uIGZvciAqd2VpcmQqIG5hbWluZyBhbmQgY29kZSBpcyB0aGUgd2F5IGhvdyBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIHdvcmtzLiBUaGlzIGFsbCB3YXMgZ2VuZXJhdGVkIGZyb20gSHlwaXhlbCdzIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAoU2VlIHRoZSBiZWdnaW5uaW5nIG9mIFtkb2NzXShodHRwczovL2FwaS5oeXBpeGVsLm5ldCkpCgojIFVzYWdlCgpJbnN0YWxsIGZyb20gbnBtIHdpdGg6CmBgYGJhc2gKbnBtIGkgaHlwaXhlbC1zZGsKYGBgClwKSW1wb3J0IGBDb25maWd1cmF0aW9uYCBhbmQgZGVzaXJlZCBBUEkgKGUuZy4gYFBsYXllckRhdGFBcGlgKToKYGBganMKaW1wb3J0IHsgQ29uZmlndXJhdGlvbiwgUGxheWVyRGF0YUFwaSB9IGZyb20gImh5cGl4ZWwtc2RrIjsKYGBgClwKQ3JlYXRlIGEgbmV3IGBDb25maWd1cmF0aW9uYCBhbmQgQVBJIE9iamVjdC4gKFJlbWVtYmVyIHRvIHByb3ZpZGUgeW91ciBvd24gYXBpIGtleSkKYGBganMKY29uc3QgY29uZmlnID0gbmV3IENvbmZpZ3VyYXRpb24oewogIGFwaUtleTogcHJvY2Vzcy5lbnYuSFlQSVhFTF9BUElfS0VZLAp9KTsKCmNvbnN0IHBsYXllckFwaSA9IG5ldyBQbGF5ZXJEYXRhQXBpKGNvbmZpZyk7CmBgYApcClVzZSBhbiBBUEkganVzdCBob3cgaXMgaXQgZGVzY3JpYmVkIGluIFtkb2NzXShodHRwczovL2FwaS5oeXBpeGVsLm5ldCkgZS5nLiBnZXQgcGxheWVyIGRhdGEuCmBgYGpzCmNvbnN0IHVzZXIgPSBhd2FpdCBwbGF5ZXJBcGkKICAucGxheWVyR2V0KHsKICAgIHV1aWQ6ICJlOGZlNjViZi0zYjI3LTQ1OGQtODM5Yi02ZDI5ZTE0NTcyNjEiLAogIH0pCiAgLmNhdGNoKChlcnIpID0+IGNvbnNvbGUubG9nKGVycikpOwoKY29uc29sZS5sb2codXNlcik7CmBgYAoKIwo= readmeEtag: '"960f9e55ccdac1b78d4b485501c01557ead133ba"' readmeLastModified: Sat, 12 Aug 2023 06:58:56 GMT repositoryId: 677497517 description: HypixelAPI SDK generated with OpenAPI SDK Generator created: '2023-08-11T18:14:30Z' updated: '2023-08-12T07:03:04Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: D00NIK logo: https://avatars.githubusercontent.com/u/65020944?v=4 repoEtag: '"567f5bcfc43e00860dd85e76af622994990a37bcb64aaa3a8199bbc05966d98a"' repoLastModified: Sat, 12 Aug 2023 07:03:04 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/alfabravo2013/hyper-id-backend v3: true id: a8a7f95525ed045bfdeed6531cac8b86 repositoryMetadata: base64Readme: >- IyBIeXBlcklECgojIyBIeXBlcnNraWxsIGZ1bGwgc3RhY2sgcHJvamVjdCwgYmFja2VuZCBSRVNUIEFQSQoKWyFbQnVpbGQgRXhlY3V0YWJsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGZhYnJhdm8yMDEzL2h5cGVyLWlkLWJhY2tlbmQvYWN0aW9ucy93b3JrZmxvd3MvbmF0aXZlLWFydGlmYWN0LnltbC9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlciZldmVudD13b3JrZmxvd19kaXNwYXRjaCldKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGZhYnJhdm8yMDEzL2h5cGVyLWlkLWJhY2tlbmQvYWN0aW9ucy93b3JrZmxvd3MvbmF0aXZlLWFydGlmYWN0LnltbCkKWyFbVGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGZhYnJhdm8yMDEzL2h5cGVyLWlkLWJhY2tlbmQvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGZhYnJhdm8yMDEzL2h5cGVyLWlkLWJhY2tlbmQvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueW1sKQoKIyMjIEhvdyB0byBydW4KCiMjIyMgT3B0aW9uIDEuIERvd25sb2FkIGFuIGV4ZWN1dGFibGUgZm9yIHlvdXIgT1M6CgotIFtXaW5kb3dzX3g4Nl82NF0oaHR0cHM6Ly9naXRodWIuY29tL2FsZmFicmF2bzIwMTMvaHlwZXItaWQtYmFja2VuZC9yZWxlYXNlcy9kb3dubG9hZC92MC40L2h5cGVyaWQtV2luZG93cy1zbmFwc2hvdC14ODZfNjQuemlwKQotIFtMaW51eF94ODZfNjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGZhYnJhdm8yMDEzL2h5cGVyLWlkLWJhY2tlbmQvcmVsZWFzZXMvZG93bmxvYWQvdjAuNC9oeXBlcmlkLUxpbnV4LXNuYXBzaG90LXg4Nl82NC56aXApCi0gW01hY09TX3g4Nl82NF0oaHR0cHM6Ly9naXRodWIuY29tL2FsZmFicmF2bzIwMTMvaHlwZXItaWQtYmFja2VuZC9yZWxlYXNlcy9kb3dubG9hZC92MC40L2h5cGVyaWQtbWFjT1Mtc25hcHNob3QteDg2XzY0LnppcCkKCmFuZCBydW4gb24geW91ciBjb21wdXRlci4KCiMjIyMgT3B0aW9uIDIuIERvd25sb2FkIHRoZSBleGVjdXRhYmxlIGphcjoKCi0gW2h5cGVyLWlkLWJhY2tlbmQuamFyXShodHRwczovL2dpdGh1Yi5jb20vYWxmYWJyYXZvMjAxMy9oeXBlci1pZC1iYWNrZW5kL3JlbGVhc2VzL2Rvd25sb2FkL3YwLjQvaHlwZXItaWQtYmFja2VuZC0wLjAuNC1TTkFQU0hPVC5qYXIpCgppbnN0YWxsIEpESyAxNyBhbmQgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgamFyIGZpbGUgaXMgbG9jYXRlZDoKCmBgYGJhc2gKamF2YSAtamFyIGh5cGVyLWlkLWJhY2tlbmQtMC4wLjQtU05BUFNIT1QuamFyCmBgYAoKIyMjIyBPcHRpb24gMy4gRG93bmxvYWQgdGhlIHNvdXJjZSBjb2RlOgoKLSBbLnppcF0oaHR0cHM6Ly9naXRodWIuY29tL2FsZmFicmF2bzIwMTMvaHlwZXItaWQtYmFja2VuZC9hcmNoaXZlL3JlZnMvdGFncy92MC40LnppcCkgb3IgCi0gWy50YXIuZ3pdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGZhYnJhdm8yMDEzL2h5cGVyLWlkLWJhY2tlbmQvYXJjaGl2ZS9yZWZzL3RhZ3MvdjAuNC50YXIuZ3opCgp1bnppcCBpdCwgaW5zdGFsbCBKREsgMTcgYW5kIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5OgoKYGBgYmFzaAouL2dyYWRsZXcgYm9vdFJ1bgpgYGAKClRoZSBzZXJ2ZXIgcmVzcG9uZHMgb24gYGxvY2FsaG9zdDo4MDgwYAoKVGhlIGxhbmRpbmcgcGFnZSByZWRpcmVjdHMgdG8gQVBJIGRvY3MgKFN3YWdnZXIpCg== readmeEtag: '"9897c8741cc56e3053f562f20235ad9ffcd05134"' readmeLastModified: Wed, 23 Nov 2022 23:20:10 GMT repositoryId: 563327718 description: User profile REST API created: '2022-11-08T11:41:28Z' updated: '2023-07-30T23:06:38Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: alfabravo2013 logo: https://avatars.githubusercontent.com/u/65685808?v=4 repoEtag: '"19d8f4a8417a5b13911f6f633b6fc8bff8c08b8eb1e73af8b23a00ee40c5d7e4"' repoLastModified: Sun, 30 Jul 2023 23:06:38 GMT category: Server Implementations foundInMaster: true - name: Spring Cloud Gateway for Kubernetes source: Tooling repository issues source_description: >- Spring Cloud Gateway for Kubernetes provides an implementation of Spring Cloud Gateway, along with integrating other Spring ecosystem projects such as Spring Security, Spring Session, and more. This product includes commercial-only features on top of those open source including OpenAPI auto-generated documentation. link: >- https://docs.vmware.com/en/VMware-Spring-Cloud-Gateway-for-Kubernetes/index.html v3_1: false v3: true v2: true sourceIssueMetadata: issueNumber: 70 author: Albertoimpl createdAt: '2023-03-30T09:37:02Z' updatedAt: '2023-03-30T09:50:49Z' url: https://github.com/OAI/Tooling/issues/70 status: closed id: a2f27ec087f8bf10d44fa8fe1df17518 foundInMaster: true - name: API portal source: Tooling repository issues source_description: >- API portal enables API consumers to find APIs they can use in their applications by assembling a dashboard and detailed API documentation views by ingesting OpenAPI documentation from the source URLs., And allows for managing, creating, and consuming API Keys. link: https://docs.vmware.com/en/API-portal-for-VMware-Tanzu/index.html v3_1: false v3: true v2: true sourceIssueMetadata: issueNumber: 71 author: Albertoimpl createdAt: '2023-03-30T09:37:04Z' updatedAt: '2023-03-30T09:50:37Z' url: https://github.com/OAI/Tooling/issues/71 status: closed id: 714890331a19472487abb54870be2f1d foundInMaster: true - source: openapi3 tags repository: https://github.com/open-banking/directdebits v3: true repositoryMetadata: base64Readme: >- IyBkaXJlY3REZWJpdHMKT3BlbiBCYW5raW5nIERpcmVjdCBEZWJpdHMgQVBJIGJ1aWx0IG9uIHRvcCBvZiBsaWdodC00ago= readmeEtag: '"95993e54d31406cb3edcd5c81eb1ee8c32345e50"' readmeLastModified: Thu, 25 Jul 2024 20:09:49 GMT repositoryId: 235861354 description: Open Banking Direct Debits API built on top of light-4j created: '2020-01-23T18:41:22Z' updated: '2024-09-04T18:31:42Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"8fe0cce205878533a0f085892ef296cb0c1034bb7a4806f15d1412ecc9f654c5"' repoLastModified: Wed, 04 Sep 2024 18:31:42 GMT foundInMaster: true category: Server id: a64f93855552ec18dea59e28ee58ac21 - source: openapi3 tags repository: https://github.com/open-banking/transactions v3: true repositoryMetadata: base64Readme: >- IyB0cmFuc2FjdGlvbnMKdHJhbnNhY3Rpb25zIEFQSSBidWlsdCBvbiB0b3Agb2YgbGlnaHQtNGoK readmeEtag: '"1cf0a7583f442416ac344feedfde71f94c3b30f4"' readmeLastModified: Thu, 25 Jul 2024 20:09:57 GMT repositoryId: 227717798 description: transactions API built on top of light-4j created: '2019-12-12T23:51:44Z' updated: '2024-09-04T18:31:48Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"f98eab151779553d45f3c3f6001005a338a57d2f1de57e2b90a8650e57237a17"' repoLastModified: Wed, 04 Sep 2024 18:31:48 GMT foundInMaster: true category: - Documentation - Parsers id: 92307dc3ff29d63f54325e5d3f821ed6 - source: openapi3 tags repository: https://github.com/saurhkumar/sqlcrud v3: true id: 61d4138ad7d80a7177294995cf211eb4 repositoryMetadata: base64Readme: >- PCEtLSBBQk9VVCBUSEUgUFJPSkVDVCAtLT4KCjxkaXYgaWQ9InRvcCI+PC9kaXY+CgojIyBBYm91dCBUaGUgUHJvamVjdAoKQSBmdWxsIGZsZWRnZSByZXN0IGFwcCBwb3dlcmVkIGJ5IGV4cHJlc3MuIFRoZSBpZGVhIG9mIHRoaXMgcHJvamVjdCBpcyB0byBicmluZyB1cCB5b3VyIG1pY3Jvc2VydmljZXMgZmFzdCwgd2l0aCBpbmJ1aWx0IHJlcXVlc3QgdmFsaWRhdGlvbnMsIGNvbm5lY3Rpb24gdG8gdGhlIGRhdGFiYXNlCmFuZCBmdWxseSB3b3JraW5nIHJlc3QgQVBJcy4gIAoqKk5vdGUqKiBUaGlzIHByb2plY3QgaXMgZ2VuZXJhdGVkIHRocm91Z2ggW2dlbmVyYXRvci1yZXN0LXN3YWdnZXItZXhwcmVzc10oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZ2VuZXJhdG9yLXJlc3Qtc3dhZ2dlci1leHByZXNzKSAgClRvIHNlZSBhbGwgdGhlIGFwcGxpY2F0aW9uIGZlYXR1cmVzLCBzZWUgW2ZlYXR1cmVdKCNzZXJ2aWNlLWZlYXR1cmVzKSBzZWN0aW9uOiAgCjwhLS0gR0VUVElORyBTVEFSVEVEIC0tPgoKIyMgR2V0dGluZyBTdGFydGVkCgpUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IHlvdSBtYXkgZ2l2ZSBpbnN0cnVjdGlvbnMgb24gc2V0dGluZyB1cCB5b3VyIHByb2plY3QgbG9jYWxseS4KCiMjIyBQcmVyZXF1aXNpdGVzCgotIFlvdSBuZWVkIGEgTXlTUUwgdXAgYW5kIHJ1bm5pbmcuIFRvIGRvIHRoYXQsIHVzZSBkb2NrZXIgIAogIFlvdSBjYW4gcnVuIGl0IGFzIGEgW2RvY2tlcl0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL215c3FsKSBvciBpbnN0YWxsIGl0IGFzIGEgW3N0YW5kYWxvbmUgYXBwbGljYXRpb25dKGh0dHBzOi8vd3d3Lm15c3FsLmNvbS8pLiBOb3RlIHlvdSBoYXZlIHRvIGNyZWF0ZSB0d28gYWRkaXRpb25hbCBkYXRhYmFzZXMgYWxzbyB0byBydW4gdGhpcyBwcm9qZWN0LiBUaGVyZSBpcyBvbmUgZG9ja2VyIGNvbXBvc2UgZmlsZSBpbiB0ZXN0IGZvbGRlciBkb2NrZXItY29tcG9zZS55bWwgKGAvdGVzdC9kb2NrZXItY29tcG9zZS55bWxgKSwgeW91IGNhbiB1c2UgaXQgdG8gcnVuIGFuZCBjcmVhdGUgdGhlIGRvY2tlciBpbWFnZSB3aXRoIHRoZSByZXF1aXJlZCBkYXRhYmFzZXMuIElmIHlvdSB3YW50IHRvIHVzZSB0aGUgY2xvdWQgZGF0YWJhc2UsIHRoZW4gY2hhbmdlIHRoZSBzZXR0aW5nIGluIHRoZSBkZWZhdWx0Lmpzb24gKGAvY29uZmlnL2RlZmF1bHQuanNvbmApCiAgTm90ZTogSW4geW91ciBsb2NhbCBzZXR1cCwgYnkgZGVmYXVsdCBzZXJ2aWNlIHdpbGwgY29ubmVjdCB0byB0aGUgdGVzdCBkYXRhYmFzZS4gVG8gc2VlIHRoZSBkYXRhYmFzZSBuYW1lIGFuZCBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiBkZXRhaWxzIHNlZSBkZWZhdWx0Lmpzb24gZmlsZQotIE5vZGUuanMgPiB2MTQgbmVlZGVkLiBZb3UgY2FuIGdldCBpdCBbaGVyZV0oaHR0cHM6Ly9ub2RlanMub3JnL2VuL2Rvd25sb2FkLykKLSBCZXR0ZXIgaW5zdGFsbCBtb2NoYSBvbiBnbG9iYWwgbGV2ZWwgYG5wbSBpbnN0YWxsIC0tZ2xvYmFsIG1vY2hhYAoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCiMjIyBJbnN0YWxsYXRpb24KCjEuIEdvIHRvIHlvdXIgY29tbWFuZC1saW5lIGludGVyZmFjZSBhbmQgdHlwZSBgbnBtIGluc3RhbGxgLiAoIGhlcmUgYXNzdW1wdGlvbiBpcyBzbHEgaXMgYXZhaWxhYmxlKQoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gVVNBR0UgRVhBTVBMRVMgLS0+CgojIyBVc2FnZQoKVHlwZSBgbnBtIHN0YXJ0YC4gRmV3IGxpbmVzIHdpbGwgY29tZXMgdXAgYW5kIHRoZW4gZ28gdG8gWyJodHRwOi8vbG9jYWxob3N0OjMwMDAvdXNlci1zZXJ2aWNlL2RvY3MiXShodHRwOi8vbG9jYWxob3N0OjMwMDAvdXNlci1zZXJ2aWNlL2RvY3MvIy8pLiBZb3Ugc2hvdWxkIHNlZSBzd2FnZ2VyIGRvYwoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KPCEtLSBFeHBsb3JlIC0tPgojIyBFeHBsb3JlIFRoZSBQcm9qZWN0CgpPbmNlIHlvdSBnZW5lcmF0ZSB0aGlzIHByb2plY3QgdXNpbmcgW2dlbmVyYXRvcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZ2VuZXJhdG9yLXJlc3Qtc3dhZ2dlci1leHByZXNzKSwgeW91IHdpbGwgc2VlIHRoaXMga2luZCBvZiBkaXJlY3Rvcnkgc3RydWN0dXJlLiAgClRoZSB0b3AtbGV2ZWwgd29ya2luZyBvZiB0aGlzIHByb2plY3QgaXMgbGlrZQoKYGBgCiB8LWFwcC5qcwogfC0uZXNsaW50cmMuanMKIHwtLmdpdGlnbm9yZQogfC0ucHJldHRpZXJyYy5qc29uCiB8LWxvZ2dlci5qcwogfC1wYWNrYWdlLmpzb24KIHwtUmVhZG1lLm1kCiB8LWFwaQogfCB8LWNvbnRyb2xsZXJzCiB8IHwgfC1jb250cm9sbGVyLmpzCiB8IHwgfC1tZXRyaWNDb250cm9sbGVyLmpzCiB8IHwtaGVscGVycwogfCB8IHwtc2hvcnRJZC5qcwogfCB8LXNlcnZpY2VzCiB8IHwgfC1zZXJ2aWNlLmpzCiB8IHwgfC1zeW5jU2VydmljZS5qcwogfCB8LXN3YWdnZXIKIHwgfCB8LXN3YWdnZXIuanNvbgogfC1jb25maWcKIHwgfC1jdXN0b20tZW52aXJvbm1lbnQtdmFyaWFibGVzLmpzb24KIHwgfC1kZWZhdWx0Lmpzb24KIHwgfC1kZXZlbG9wbWVudC5qc29uCiB8IHwtcHJvZHVjdGlvbi5qc29uCiB8LXRlc3QKIHwgfC10ZXN0LmpzCmBgYAoKSGVyZSBpcyBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIG1vc3Qgb2YgdGhlIGZpbGVzICAKCmBhcHAuanNgIFRoaXMgaXMgYSBzdGFydGluZyBwb2ludCBvZiB0aGUgYXBwbGljYXRpb24sIGluaXRpYWxpemluZyB0aGUgdmFsaWRhdGlvbnMgYW5kIHN3YWdnZXIgVUksIGFsbCBvZiB0aGUgUkVTVCBBUEkgcGF0aCAodXNpbmcgYC9hcGkvc3dhZ2dlci9zd2FnZ2VyLmpzb25gKQoKYC5lc2xpbnRyYy5qc2AgVGhpcyBmaWxlIGNvbnRhaW4gYWxsIFtsaW50aW5nXShodHRwczovL2VzbGludC5vcmcvKSBydWxlcyBmb3IgdGhpcyBwcm9qZWN0ICAKCmAucHJldHRpZXJyYy5qc29uYCBUaGlzIGZpbGUgY29udGFpbiBhbGwgW1ByZXR0aWVyXShodHRwczovL3ByZXR0aWVyLmlvLykgcnVsZXMgZm9yIHRoaXMgcHJvamVjdAoKYGxvZ2dlci5qc2AgVGhpcyBpcyBhIHdyYXBwZXIgYXJvdW5kIFtXaW5zdG9uXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS93aW5zdG9uKSAgCgpgL2FwaS9jb250cm9sbGVycy8qYCBUaGlzIGRpcmVjdG9yeSBoYXMgYWxsIHRoZSBjb250cm9sbGVycy4gVGhlc2UgY29udHJvbGxlcnMgYXJlIHRvIGZvcm1hdCB5b3VyIHJlcXVlc3QgYW5kIHJlc3BvbnNlLiAgCgpUaGUgYG1ldHJpY0NvbnRyb2xsZXJgIGlzIGV4cG9zaW5nIHRoZSBbUHJvbWV0aGV1c10oaHR0cHM6Ly9wcm9tZXRoZXVzLmlvLykgZGF0YSB2aWEgYC9tZXRyaWNzYCBlbmQgcG9pbnQuIElmIHlvdSB3YW50IHRvIHNlZSBzb21lIGV4YW1wbGUgY2hhcnRzLCBleHBsb3JlIHRoZSBgbWV0cmljYCBkaXJlY3RvcnkgYXQgdGhlIHJvb3QgbGV2ZWwKCmAvYXBpL3Nlcml2Y2UvKmAgVGhpcyBkaXJlY3RvcnkgaGFzIGFsbCB0aGUgc2VydmljZXMuIEV2ZXJ5IHJlc3QgZW5kIHBvaW50IGhhcyBpdHMgb3duIHNlcml2Y2UgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBhZGQgYnVzaW5lc3MgbG9naWMgb3IgdG8gaW50ZXJhY3Qgd2l0aCBleHRlcm5hbCBzZXJ2aWNlcy4gIAoKVGhlIHN5bmMgc2VydmljZSAoYC9hcGkvc2VydmljZXMvc3luY1NlcnZpY2UuanNgKSBpbml0aWxpemUgdGhlIGRhdGFiYXNlIGNvbm5lY3RvbiwgYXBhcnQgZnJvbSB0aGF0LCBpdCBjYW4gYmUgdXNlZCB0byBzdGFydCBhIGJhY2tncm91bmQgcHJvY2Vzcy4gIAoKYC9hcGkvaGVscGVycy9taWRkbGV3YXJlc2AgVGhpcyBtb2R1bGUgaXMgaW5pdGlhbGl6aW5nIFByb21ldGhldXMgbWV0cmljcyByaWdodCBub3csIGZvciBldmVyeSByZXN0IGVuZCBwb2ludC4gSW4gdGhlIHNhbWUgd2F5LCB0aGlzIG1pZGRsZXdhcmUgY2FuIGJlIHVzZWQgZm9yIGF1dGggYW5kIG90aGVyIG1ldGhvZHMgdGhhdCBuZWVkIHRvIGJlIGludm9rZWQgYmVmb3JlIGFueSBBUEkgY2FsbC4gIAoKYC9hcGkvaGVscGVycy9zcWxGaWx0ZXIucGVnanNgIGFuZCBgL2FwaS9oZWxwZXJzL3NxbEZpbHRlci5qc2AgVGhlIHBlZ2pzIGZpbGUgaXMgdGhlIGdyYW1tYXIgdGhhdCBpcyBlbXBvd2VyaW5nIEdFVCBhbmQgREVMRVRFIEFQSXMgW2ZpbHRlcl0oI2ZpbHRlcikgcGFyYW1ldGVyLiBUaGUgYHNxbEZpbHRlci5qc2AgaXMgZ2VuZXJhdGVkIHVzaW5nIHRoaXMgcGVnanMgZmlsZSwgYW5kIHRoaXMgYHNxbEZpbHRlci5qc2AgZmlsZSBjb252ZXJ0cyB0aGUgZmlsdGVyIHF1ZXJ5IGludG8gdGhlIGRhdGFiYXNlIHF1ZXJ5LiAgClRvIGdlbmVyYXRlIG9yIGN1c3RvbWl6ZSB0aGUgZmlsdGVycyBzZWUgW1BlZ2pzXShodHRwczovL3BlZ2pzLm9yZy8pICAKVG8gc2VlIHdoYXQga2luZCBvZiBxdWVyaWVzIGNhbiBiZSB1c2VkIGFuZCBob3cgdG8gdXNlIHRoaXMgc2VlIFtmaWx0ZXJdKCNmaWx0ZXIpIHNlY3Rpb24gIAoKYC9hcGkvaGVscGVycy9xdWVyeUhvb2tzanNgIHNlZSBbZmlsdGVyXSgjZmlsdGVyKSBzZWN0aW9uLiAgCgpSZXFlc3QgZmxvdyBkaWFncmFtICAKIVtBbHQgdGV4dF0oLi9mbG93RGlhZ3JhbS5kcmF3aW8uc3ZnKQoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gU2VydmljZSBGZWF0dXJlcyAtLT4KIyMgU2VydmljZSBGZWF0dXJlcwoKVGhpcyBzZXJ2aWNlIGhhcyBvdXQgb2YgdGhlIGJveCBzdXBwb3J0IFtzb3J0aW5nXSgjc29ydGluZyksIFtmaWx0ZXJdKCNmaWx0ZXIpLCBbcHJvamVjdGlvbl0oI3Byb2plY3Rpb24pIGFuZCBbcGFnaW5hdGlvbl0oI3BhZ2luYXRpb24pLCBiYWNrZ3JvdW5kIHRhc2tzLCBbTWV0cmljc10oI21ldHJpY3MpICAKQXNzdW1pbmcgdGhpcyBzZXJ2aWNlIGhhdmUgYG5hbWUsIGFnZSwgYWRkcmVzcywgY291bnRyeWAgZmllbGRzIGluIHRoZSB0aGUgc2NoZW1hLiBUaGVuIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlICAKCjwhLS0gTWFuYWdpbmcgY29uZmlndXJhdGlvbnMtLT4KCiMjIE1hbmFnaW5nIGNvbmZpZ3VyYXRpb25zCgpBbGwgdGhlIHNlcnZpY2UgY29uZmlndXJhdGlvbnMgYXJlIG1hbmFnZWQgdGhyb3VnaCBbY29uZmlnXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jb25maWcpIG5wbSBwYWNrYWdlLiBGb3IgeW91ciBsb2NhbCBkZXZlbG9wbWVudCwgYWxsIHRoZSBjb25maWd1cmF0aW9ucyBhcmUgdW5kZXIgYGNvbmZpZy9kZWZhdWx0Lmpzb25gLiBZb3UgY2FuIG92ZXJyaWRlIHRoZXNlIGluIHByb2R1Y3Rpb24gb3IgaW4gZGV2IGVudmlyb25tZW50IHVzaW5nIGBjb25maWcvcHJvZHVjdGlvbi5qc29uYG9yIGBjb25maWcvZGV2ZWxvcG1lbnQuanNvbmAuIFRoZSBjdXJyZW50IGRlZmF1bHQgZGF0YWJhc2UgY29uZmlndXJhdGlvbiBsb29rcyBsaWtlCgpgYGAKLi4uCiAgIkRhdGFiYXNlIjogewogICAgInNlcnZlciI6ICJsb2NhbGhvc3QiLCAgLS0tIGRhdGFiYXNlIHNlcnZlciBVUkwKICAgICJuYW1lIjogInRlc3QiLCAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gZGF0YWJhc2UgbmFtZQogICAgInVzZXIiOiAiYWRtaW4iLAogICAgInBhc3N3b3JkIjogImFkbWluIiwKICAgICJsb2dnaW5nIjogZmFsc2UKICB9LAouLi4KYGBgCjwhLS0gU29ydGluZyAtLT4KIyMgU29ydGluZwoKSW4gdGhlIGdldCByZXF1ZXN0LCBkb2N1bWVudHMgY2FuIHNvcnRlZCBgJHNvcnRCeWAgcGFyYW1ldGVyLiBEb2N1bWVudHMgY2FuIGJlIHNvcnRlZCBpbiBib3RoIGFzY2VuZGluZyBhbmQgZGVzY2VuZGluZyBkaXJlY3Rpb24uIEV4OiBgK2FnZSAtbmFtZWAgdG8gc29ydCB0aGUgZG9jdW1lbnRzIGJ5IGFnZSBpbiBhc2NlbmRpbmcgb3JkZXIgYW5kIG5hbWUgaXMgZGVzY2VuZGluZyBvcmRlci4gIApUbyBjb250cm9sIHdoYXQgZmllbGRzIHlvdSBjYW4gc29ydCwgZ28gdG8gYC9hcGkvaGVscGVycy9xdWVyeUhvb2tzLmpzYCBhbmQgaW5zaWRlIHRoZSBgbWFwcGluZ2AgZnVuY3Rpb24gbW9kaWZ5IHRoZSBgc29ydEZpZWxkc2Aga2V5cy4gQXNzdW1pbmcsIHlvdSB3YW50IHRvIGVuYWJsZSBgbmFtZWAgYW5kIGBhZ2VgIHNvcnRpbmcsIHRoZW4gdGhlIHNvcnRGaWVsZCBpbiB0aGUgbWFwcGluZyBmdW5jdGlvbiB3aWxsIGJlIGxpa2U6CgpgYGAKICAuLi4KICBmdW5jdGlvbiBtYXBwaW5nKCkgewogICAgcmV0dXJuIHsKICAgICAgc29ydEZpZWxkczogWyduYW1lJywgJ2FnZSddLAogIC4uLgpgYGAKCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiN0b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+Cgo8IS0tIEZpbHRlciAtLT4KIyMgRmlsdGVyCgpEb2N1bWVudHMgY2FuIGJlIGZpbHRlcmVkIHVzaW5nIHRoZSBwYXJhbWV0ZXIgYCRmaWx0ZXJgIGJ5IHdyaXRpbmcgU1FMLWxpa2Ugc3RhdGVtZW50cy4gRm9yIGV4YW1wbGUsIHRvIGdldCBhbGwgZG9jdW1lbnRzIHdoZXJlIHRoZSBhZ2UgaXMgaW4gWycyMycsICc0NSddIGFuZCBhZGRyZXNzID0gJ2FkZHJlc3MxJywgdGhlIHBhcmFtZXRlciBgJGZpbHRlcmAgc2hvdWxkIGJlIGxpa2UgYGFnZSBpbiAoICcyMycsICc0NScpIGFuZCBhZGRyZXNzID0gJ2FkZHJlc3MxJ2AuICAKSGVyZSBvbmUgdGhpbmcgdG8gbm90ZSBkb3duIGlzIHRoZSBxdW90ZXMgKGAnJ2ApIGFyb3VuZCBhbGwgdGhlIHZhbHVlcywgdGhlc2UgcXVvdGVzIGFyZSBhbHdheXMgcmVxdWlyZWQsIGZvciBldmVyeSB2YWx1ZS4gUmlnaHQgbm93IGBpbnRlZ2VyYCwgYHN0cmluZ2AsIGBib29sZWFuYCwgYW5kIGBkYXRlYCBkYXRhIHR5cGVzIGFyZSBzdXBwb3J0ZWQuIFRvIGFkZCBtb3JlIGRhdGEgdHlwZSBzdXBwb3J0LCBzZWUgYC9hcGkvaGVscGVycy9zcWxGaWx0ZXIucGVnanNgIGZpbGUuIEZvciBtb3JlIGV4YW1wbGVzIHNlZSBmaWx0ZXIgdGVzdCBjYXNlcy4gIAoKVG8gY29udHJvbCB3aGF0IGZpZWxkcyB5b3UgY2FuIGZpbHRlciwgZ28gdG8gYC9hcGkvaGVscGVycy9xdWVyeUhvb2tzLmpzYCBhbmQgaW5zaWRlIHRoZSBgbWFwcGluZ2AgZnVuY3Rpb24gbW9kaWZ5IHRoZSBgcXVlcnlGaWVsZHNgIGtleXMuIEFzc3VtaW5nLCB5b3Ugd2FudCB0byBlbmFibGUgYG5hbWVgIGFuZCBgYWdlYCBmaWx0ZXIsIHRoZW4gdGhlIHF1ZXJ5RmllbGRzIGluIHRoZSBtYXBwaW5nIGZ1bmN0aW9uIHdpbGwgYmUgbGlrZToKCmBgYAogIC4uLgogIGZ1bmN0aW9uIG1hcHBpbmcoKSB7CiAgICAuLi4KICAgICAgcXVlcnlGaWVsZHM6IFsKICAgICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3N0cmluZycgfSwKICAgICAgICB7IG5hbWU6ICdhZ2UnLCB0eXBlOiAnaW50JyB9CiAgICAgIF0sCiAgICAuLi4KICAuLi4KYGBgCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKPCEtLSBQcm9qZWN0aW9uIC0tPgojIyBQcm9qZWN0aW9uCgpQcm9qZWN0aW9uIGlzIGEgd2F5IHRvIHNlbGVjdCBvbmx5IHRoZSBuZWNlc3NhcnkgZGF0YSByYXRoZXIgdGhhbiBzZWxlY3RpbmcgZXZlcnkgY29sdW1uLiBVc2UgdGhlIGAkcHJvamVjdGlvbmAgcGFyYW1ldGVyIHRvIGRlZmluZSB0aGUgcHJvamVjdGlvbiBmaWVsZHMuIEFzc3VtaW5nIHlvdSB3YW50IHRvIGdldCBvbmx5IGBhZ2VgIGFuZCBgbmFtZWAgb3V0IG9mIGFsbCB0aGUgYXZhaWxhYmxlIGNvbHVtbnMgaW4gdGhlIGRhdGFiYXNlLCB0aGVuIHRoZSBgJHByb2plY3Rpb25gIHBhcmFtZXRlciB3aWxsIGJlIGxpa2UgYGFnZSBuYW1lYC4gRm9yIG1vcmUgZXhhbXBsZXMgc2VlIGZpbHRlciB0ZXN0IGNhc2VzLiAgCgo8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKPCEtLSBQYWdpbmF0aW9uIC0tPgojIyBQYWdpbmF0aW9uCgogQnkgRGVmYXVsdCBhcHBsaWNhdGlvbnMgZXhwb3NlcywgcGFnaW5hdGlvbiBwYXJhbWV0ZXJzIFskdG9wXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2FwaS1ndWlkZWxpbmVzL2Jsb2Ivdk5leHQvR3VpZGVsaW5lcy5tZCM5ODItY2xpZW50LWRyaXZlbi1wYWdpbmcpIGFuZCBbJHNraXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvYXBpLWd1aWRlbGluZXMvYmxvYi92TmV4dC9HdWlkZWxpbmVzLm1kIzk4Mi1jbGllbnQtZHJpdmVuLXBhZ2luZykuCgogPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gUGFnaW5hdGlvbiAtLT4KIyMgU3dhZ2dlciBVSQoKIFRvIHZpc3VhbGl6ZSBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgQVBJ4oCZcyByZXNvdXJjZXMgZ28gdG8gWyJodHRwOi8vbG9jYWxob3N0OjMwMDAvdXNlci1zZXJ2aWNlL2RvY3MiXShodHRwOi8vbG9jYWxob3N0OjMwMDAvdXNlci1zZXJ2aWNlL2RvY3MvIy8pCgogPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gUmVxdWVzdCBhbmQgcmVzcG9uc2UgdmFsaWRhdGlvbiAtLT4KIyMgUmVxdWVzdCBhbmQgcmVzcG9uc2UgdmFsaWRhdGlvbgoKRGVmaW5lIHlvdXIgcmVxdWVzdCBib2R5IG9yIHJlcXVlc3QgcGFyYW1ldGVyIGluIHRoZSBzd2FnZ2VyIGZpbGUgKGBhcGkvc3dhZ2dlci9zd2FnZ2VyLmpzb25gKS4gVG8ga25vdyBtb3JlIGFib3V0IHRoZSBkZWZpbml0aW9ucywgc2VlIFtTd2FnZ2VyIERvY3VtZW50YXRpb25dKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLykuIEFjY29yZGluZyB0byB0aGUgZGVmaW5pdGlvbnMgZGVmaW5lZCBpbiB0aGUgc3dhZ2dlciwgYWxsIHRoZSB2YWxpZGF0aW9ucyB3aWxsIGJlIHBlcmZvcm1lZC4KCiA8cCBhbGlnbj0icmlnaHQiPig8YSBocmVmPSIjdG9wIj5iYWNrIHRvIHRvcDwvYT4pPC9wPgoKPCEtLSBBcHBsaWNhdGlvbiBNZXRyaWNzIC0tPgojIyBNZXRyaWNzCgpBbGwgdGhlIGFwcGxpY2F0aW9uIG1ldHJpY3MgbGlrZSBDUFUgdXNhZ2VzLCBldmVudCBsYWcgZGVsYXksIFRQTSwgYW5kIHA5NSBhcmUgYXZhaWxhYmxlLgoKVGhlIGFwcGxpY2F0aW9uIGAvbWV0cmljc2AgZW5kIHBvaW50IGdpdmVzIHRoZSBbcHJvbWV0aGV1c10oaHR0cHM6Ly9wcm9tZXRoZXVzLmlvLykgY29tcGF0aWJsZSBkYXRhLiBJZiB5b3Ugd2FudCB0byBzZWUgd2hhdCBpdCB3aWxsIGxvb2sgbGlrZXMsIGp1c3QgaW5zaWRlIHRoZSBgbWV0cmljYCBmb2xkZXIgYW5kIGRvY2tlci1jb21wb3NlLXVwIGNvbW1hbmQuIEl0IHdpbGwgcnVuIFByb21ldGhldXMgb24gdGhlIDkwOTAgcG9ydCBhbmQgR3JhZmFubiBvbiB0aGUgOTAwMCBwb3J0LiBHbyB0byBHcmFmYW5hIGRhc2hib2FyZC4gR28gdG8gZ3JhZmFuYSBkYXNoYm9hcmQgW2xvY2FsbHldKGh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC8pLiBZb3Ugc2hvdWxkIHNlZSBzb21ldGhpbmcgbGlrZToKIVtTYW1wbGUgR3JhZmFuIERhc2hib2FyZF0obWV0cmljcy9DYXB0dXJlLlBORyAiU2FtcGxlIEdyYWZhbiBEYXNoYm9hcmQiKQoKPHAgYWxpZ249InJpZ2h0Ij4oPGEgaHJlZj0iI3RvcCI+YmFjayB0byB0b3A8L2E+KTwvcD4KCjwhLS0gQ09OVFJJQlVUSU5HIC0tPgojIyBDb250cmlidXRpbmcKCkNvbnRyaWJ1dGlvbnMgYXJlIHdoYXQgbWFrZSB0aGUgb3BlbiBzb3VyY2UgY29tbXVuaXR5IHN1Y2ggYW4gYW1hemluZyBwbGFjZSB0byBsZWFybiwgaW5zcGlyZSwgYW5kIGNyZWF0ZS4gQW55IGNvbnRyaWJ1dGlvbnMgeW91IG1ha2UgYXJlICoqZ3JlYXRseSBhcHByZWNpYXRlZCoqLgoKSWYgeW91IGhhdmUgYSBzdWdnZXN0aW9uIHRoYXQgd291bGQgbWFrZSB0aGlzIGJldHRlciwgcGxlYXNlIGZvcmsgdGhlIHJlcG8gYW5kIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdC4gWW91IGNhbiBhbHNvIHNpbXBseSBvcGVuIGFuIGlzc3VlIHdpdGggdGhlIHRhZyAiZW5oYW5jZW1lbnQiLgpEb24ndCBmb3JnZXQgdG8gZ2l2ZSB0aGUgcHJvamVjdCBhIHN0YXIhIFRoYW5rcyBhZ2FpbiEKCjEuIEZvcmsgdGhlIFByb2plY3QKMi4gQ3JlYXRlIHlvdXIgRmVhdHVyZSBCcmFuY2ggKGBnaXQgY2hlY2tvdXQgLWIgZmVhdHVyZS9BbWF6aW5nRmVhdHVyZWApCjMuIENvbW1pdCB5b3VyIENoYW5nZXMgKGBnaXQgY29tbWl0IC1tICdBZGQgc29tZSBBbWF6aW5nRmVhdHVyZSdgKQo0LiBQdXNoIHRvIHRoZSBCcmFuY2ggKGBnaXQgcHVzaCBvcmlnaW4gZmVhdHVyZS9BbWF6aW5nRmVhdHVyZWApCjUuIE9wZW4gYSBQdWxsIFJlcXVlc3QKCjxwIGFsaWduPSJyaWdodCI+KDxhIGhyZWY9IiN0b3AiPmJhY2sgdG8gdG9wPC9hPik8L3A+Cg== readmeEtag: '"dce681d1136e57d85d0998f7aa3c2a4c76ddf72d"' readmeLastModified: Wed, 24 Apr 2024 00:33:47 GMT repositoryId: 442657761 description: >- A simple rest microservice with Open API spec 3.0 and SQL backend. Supports out of the box filtering, along with sorting and projection support created: '2021-12-29T04:18:26Z' updated: '2024-04-24T00:33:51Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: saurhkumar logo: https://avatars.githubusercontent.com/u/2967058?v=4 license: MIT repoEtag: '"bd9f36a8e26b795e22259f7b4682d1f910aaf1f2a96fd49d5631812eba57cf1e"' repoLastModified: Wed, 24 Apr 2024 00:33:51 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/saurbkumar/sqlcrud - source: openapi3 tags repository: https://github.com/foxfriends/openfetch v3: true repositoryMetadata: base64Readme: >- IyBPcGVuRmV0Y2gKClshW2NpXShodHRwczovL2dpdGh1Yi5jb20vZm94ZnJpZW5kcy9vcGVuZmV0Y2gvYWN0aW9ucy93b3JrZmxvd3MvY2kueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZm94ZnJpZW5kcy9vcGVuZmV0Y2gvYWN0aW9ucy93b3JrZmxvd3MvY2kueWFtbCkKCkZldGNoLWxpa2UgT3BlbkFQSSBjbGllbnQgbGlicmFyeS4gU3VwcG9ydHMgW09wZW5BUEkgM10oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vKSBvbmx5LgoKSW5zdGFsbCBmcm9tIE5QTTogYG5wbSBpbnN0YWxsIG9wZW5mZXRjaGAKCiMjIFVzYWdlCgpgYGBqcwppbXBvcnQgKiBhcyBvcGVuZmV0Y2ggZnJvbSAnb3BlbmZldGNoJzsKCi8vIEJ1aWxkIGFuIEFQSSBiYXNlZCBvbiB0aGUgc3BlYy4gU2hvd24gYmVsb3cgYXJlIHRoZSBkZWZhdWx0IG9wdGlvbnM6CmNvbnN0IGFwaSA9IG9wZW5mZXRjaC5jcmVhdGUoU1BFQywgewogIC8vIFRoZSBiYXNlIFVSTCBmcm9tIHdoaWNoIHRvIG1ha2UgcmVxdWVzdHMuCiAgdXJsLAogIC8vIEVuYWJsZSBsb2dnaW5nLiBWYWxpZGF0aW9uIGVycm9ycyB3aWxsIGJlIGxvZ2dlZCB0byB0aGUgY29uc29sZS4KICBsb2dnaW5nOiBmYWxzZSwKICAvLyBUaGUgY29uc29sZSwgcHJvdmlkaW5nIHRoZSBsb2cgbWV0aG9kcyAob25seSBgd2FybmAgaXMgdXNlZCkuCiAgY29uc29sZTogd2luZG93LmNvbnNvbGUsCiAgLy8gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgZmV0Y2ggdG8gdXNlIGZvciBtYWtpbmcgcmVxdWVzdHMuCiAgZmV0Y2g6IHdpbmRvdy5mZXRjaCwKfSk7CgovLyBJZiB5b3VyIHNwZWMgaXMgaG9zdGVkLCBpdCBjYW4gYmUgcmV0cmlldmVkIGF1dG9tYXRpY2FsbHkuCmNvbnN0IGFwaSA9IGF3YWl0IG9wZW5mZXRjaC5ob3N0ZWQoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIHsKICAvLyAuLi4gc2FtZSBvcHRzIGFzIGFib3ZlCn0pOwoKLy8gQ3JlYXRlIGFuIGludm9jYXRpb24gY29udGV4dCB3aXRoIGNyZWRlbnRpYWxzIGFuZCBzdWNoLiBUaGUga2V5cyBvZiB0aGUgY3JlZGVudGlhbHMKLy8gb2JqZWN0IGFyZSBuYW1lcyBvZiBzZWN1cml0eSBzY2hlbWVzLCBhbmQgdGhlIHZhbHVlcyBhcmUgdGhlaXIgdmFsdWVzLi4uCi8vICogICBIVFRQIEJhc2ljIEF1dGggZXhwZWN0cyB0aGUgdmFsdWUgdG8gYmUgYHsgdXNlciwgcGFzcyB9YAovLyAqICAgSFRUUCBCZWFyZXIgQXV0aCBleHBlY3RzIHRoZSB2YWx1ZSB0byBiZSBqdXN0IHRoZSB0b2tlbiAoaS5lLiBub3QgaW5jbHVkaW5nIHRoZSAiQmVhcmVyIiBwcmVmaXgpCi8vICogICBPdGhlciBIVFRQIGF1dGggZXhwZWN0cyB0aGUgZnVsbCBoZWFkZXIgdmFsdWUgKGkuZS4gaW5jbHVkaW5nIHRoZSBzY2hlbWUgbmFtZSkKLy8gKiAgIE9BdXRoMiB3aWxsIHBhc3MgdGhlIHRva2VuIHZpYSBBdXRvcml6YXRpb24gaGVhZGVyCmNvbnN0IGludm9rZSA9IG9wZW5mZXRjaC5jbGllbnQoewogIC8vIE92ZXJyaWRlIHRoZSBiYXNlIFVSTCBmcm9tIHdoaWNoIHRvIG1ha2UgcmVxdWVzdHMKICB1cmwsCiAgLy8gT3ZlcnJpZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBmZXRjaGAgYWdhaW4uIFRoaXMgdmFsdWUgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBvbmUKICAvLyBwYXNzZWQgdG8gYGNyZWF0ZWAsIGlmIGJvdGggd2VyZSBwcm92aWRlZC4KICBmZXRjaCwKICAvLyBUaGUgY3JlZGVudGlhbHMgdG8gdXNlIHRvIHNhdGlzZnkgc2VjdXJpdHkgcmVxdWlyZW1lbnRzCiAgY3JlZGVudGlhbHM6IHt9LAp9KTsKCi8vIEludm9rZSBhbiBvcGVyYXRpb24gYnkgYG9wZXJhdGlvbklkYCAoaGVyZTogYGdldFVzZXJgKToKLy8gKiAgIFBhcmFtZXRlciBhcmUgc3VwcGxpZWQgYnkgbmFtZQovLyAqICAgT3B0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZmV0Y2gsIHdpdGggYSBmZXcgYmVpbmcgc3VwcGxpZWQgYXV0b21hdGljYWxseToKLy8gICAgICogICBgQ29udGVudC1UeXBlYCB3aWxsIGJlIGRldGVybWluZWQgYXV0b21hdGljYWxseSBpZiB0aGUgc3BlYyBvbmx5IGRlZmluZXMgb25lIHJlcXVlc3QgYm9keQovLyAgICAgICAgIHR5cGUsIG90aGVyd2lzZSBpdCBtdXN0IGJlIHN1cHBsaWVkIHZpYSBgaGVhZGVyc2AuCi8vICAgICAqICAgSWYgYENvbnRlbnQtVHlwZWAgaXMgSlNPTiwgYGJvZHlgIHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggYEpTT04uc3RyaW5naWZ5YC4KLy8gICAgICAgICBObyBwcm9jZXNzaW5nIHdpbGwgYmUgZG9uZSB0byBhbnkgb3RoZXIgYm9kaWVzLgovLyAgICAgKiAgIFRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIHNlY3VyaXR5IHJlcXVpcmVtZW50cy4KLy8gICAgICogICBTZXQgdGhlIGBBY2NlcHRgIGhlYWRlciBtYW51YWxseSB0byBzcGVjaWZ5IHdoaWNoIHJlc3BvbnNlIGZvcm1hdCB0byByZWNlaXZlLgpjb25zdCByZXNwb25zZSA9IGF3YWl0IGludm9rZShhcGkuZ2V0VXNlcih7IGlkOiAnZm94ZnJpZW5kcycgfSwgeyBoZWFkZXJzLCBib2R5IH0pKTsKCi8vIFRoZSByZXNwb25zZSBpcyB3aGF0ZXZlciBpcyByZXR1cm5lZCBieSB0aGUgcHJvdmlkZWQgaW1wbGVtZW50YXRpb24gb2YgYGZldGNoYC4gUmVmZXIgdG8gdGhlCi8vIHJlbGV2YW50IGRvY3VtZW50YXRpb24gb24gaG93IHRvIGhhbmRsZSB0aGF0IHJlc3BvbnNlLiBJbiBwYXJ0aWN1bGFyOgovLyAqICAgVGhlIHJlc3BvbnNlIGJvZHkgaXMgbm90IGludGVycHJldGVkIGF0IGFsbCAoZS5nLiBKU09OIGlzIG5vdCBwYXJzZWQgYXV0b21hdGljYWxseSkKLy8gKiAgIFRoZSByZXNwb25zZSBzdGF0dXMgaXMgbm90IGludGVycHJldGVkIGF0IGFsbCAoZS5nLiA0WFgvNVhYIHJlcG9uc2VzIGRvIG5vdCB0aHJvdykKY29uc29sZS5hc3NlcnQocmVzcG9uc2UgaW5zdGFuY2VvZiBSZXNwb25zZSkKYGBgCgpQb2ludHMgdG8gbm90ZToKKiAgIFRoaXMgcGFja2FnZSBhc3N1bWVzIHlvdXIgT3BlbkFQSSBzcGVjIGlzIHZhbGlkL2NvcnJlY3QsIGFuZCB0aGF0IHlvdSBhcmUgKGZvciB0aGUgbW9zdCBwYXJ0KQogICAgY2FsbGluZyBpdCB3aXRoIHNlbnNpYmxlIHZhbHVlcy4gVW5kZWZpbmVkIGJlaGF2aW91ciB3aWxsIG9jY3VyIGlmIHlvdSBkZXZpYXRlIGZyb20gc3BlYy4KKiAgIFRoZSBgc2VydmVyc2AgZmllbGQgb2YgdGhlIHNwZWMgaXMgaWdub3JlZC4gUHJvdmlkZSBhIGNvcnJlY3QgYHVybGAgb24geW91ciBvd24uCiogICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gc3VwcG9ydCBmb3IgYW55IGV4dGVuc2lvbnMsIGJ1dCB0byBiZSBhYmxlIHRvIGltcGxlbWVudCB0aG9zZSBhcyBwbHVnaW5zCiAgICBpcyBzb21ldGhpbmcgdGhhdCBpcyBiZWluZyBjb25zaWRlcmVkLgoKIyMgVGVzdGluZwoKU28gZmFyLi4uIHZlcnkgbGl0dGxlIHRlc3RpbmcgaGFzIGJlZW4gZG9uZS4gSnVzdCBhIGJpdCBvZiBtYW51YWwgc3R1ZmYuIFRydXN0IHRoaXMgcHJvamVjdCBhdCB5b3VyCm93biByaXNrIGZvciBub3csIHVudGlsIEkgZmVlbCBsaWtlIHdyaXRpbmcgYSBwcm9wZXIgdGVzdCBzdWl0ZS4KCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSEgUGxlYXNlIHNlbmQgYSBQUiBvciBjcmVhdGUgaXNzdWVzIGlmIHlvdSB3b3VsZCBsaWtlIHNvbWV0aGluZyBpbXByb3ZlZC4K readmeEtag: '"619eab1536312eb7b6cf628bcde5a720b3f9cc17"' readmeLastModified: Mon, 17 Jun 2024 13:19:34 GMT repositoryId: 349907093 description: Fetch-like OpenAPI client library created: '2021-03-21T05:20:39Z' updated: '2024-06-17T13:19:38Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: foxfriends logo: https://avatars.githubusercontent.com/u/6126521?v=4 repoEtag: '"88d069d24f1a55242bc3c7cf998ab8f4fe79f58a2dbfa2edfda4372a2dea0881"' repoLastModified: Mon, 17 Jun 2024 13:19:38 GMT foundInMaster: true category: - Testing - Server Implementations id: 029d9dfa2a96b566f6723dddab2c917b - source: openapi3 tags repository: https://github.com/open-banking/parties v3: true repositoryMetadata: base64Readme: IyBwYXJ0aWVzCnBhcnRpZXMgQVBJIGJ1aWx0IG9uIHRvcCBvZiBsaWdodC00ago= readmeEtag: '"4af5d3ee73f4ea1ff7562baf4d82d3f75ab83666"' readmeLastModified: Thu, 25 Jul 2024 20:09:47 GMT repositoryId: 227717632 description: parties API built on top of light-4j created: '2019-12-12T23:50:14Z' updated: '2024-09-04T18:31:40Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: open-banking logo: https://avatars.githubusercontent.com/u/38990562?v=4 license: Apache-2.0 repoEtag: '"3fa54414735f473481d24ef22da8cdc161388ffa7fe8ca3b73c4ac2ebf1d0198"' repoLastModified: Wed, 04 Sep 2024 18:31:40 GMT foundInMaster: true category: - Documentation - Server - Parsers id: 6f9a462dcee9c3601ba0dfb6aec30ba1 - source: openapi3 tags repository: https://github.com/istandaarden/iwlz-generiek v3: true repositoryMetadata: base64Readme: >- IyBpV2x6LWdlbmVyaWVrCktvcHBlbHZsYWsgc3BlY2lmaWNhdGllcyBtZXQgbmV0d2VyayBicmVkZSBmdW5jdGlvbmFsaXRlaXQuCgoKKiBLb3BwZWx2bGFrIE5ldHdlcmtwdW50CiAgICAqIFZlcnplbmRlbiB2YW4gbm90aWZpY2F0aWUKICAgICogVmVyemVuZGVuIHZhbiAoZm91dCkgbWVsZGluZwoKCiMjIFZlcnNpZXMKCnxWZXJzaWUgfCBTdGF0dXMgfCAgVG9lbGljaHRpbmcgfAp8Oi0tIHw6LS0gfCA6LS0gfAp8IHZlcnNpZSB2MS4wIC0gMTItMDQtMjAyNCAgfCAgZWVyc3RlIHZlcnNpZSB2b29yIGltcGxlbWVudGF0aWUgPGJyPiAtIFtSRkMwMDA4IC0gTm90aWZpY2F0aWVzXShodHRwczovL2dpdGh1Yi5jb20vaVN0YW5kYWFyZGVuL2lXbHotUkZDL2Jsb2IvbWFpbi9SRkMvUkZDMDAwOCUyMC0lMjBOb3RpZmljYXRpZXMubWQpICA8YnI+IC0gW1JGQzAwMTggLSBGb3V0bWVsZGluZ2VuXShodHRwczovL2dpdGh1Yi5jb20vaVN0YW5kYWFyZGVuL2lXbHotUkZDL2Jsb2IvbWFpbi9SRkMvUkZDMDAxOCUyMC0lMjBNZWxkZW4lMjB2YW4lMjBmb3V0ZW4lMjBpbiUyMGdlZ2V2ZW5zJTIwdm9sZ2VucyUyMGlTdGFuZGFhcmQlMjBpV2x6Lm1kKSAgfCBbdjEuMC4wXShodHRwczovL2dpdGh1Yi5jb20vaVN0YW5kYWFyZGVuL2lXbHotZ2VuZXJpZWsvcmVsZWFzZXMvdGFnL2lXbHotZ2VuLXYxLjAuMCkoW21hc3Rlcl0oaHR0cHM6Ly9naXRodWIuY29tL2lTdGFuZGFhcmRlbi9pV2x6LWdlbmVyaWVrKSkgfAoKQHRvZG8KLSBbIF0gQ2hhbmdlbG9nIGJpandlcmtlbgoKICAKCiMjIERvY3VtZW50YXRpZQotIERvY3VtZW50YXRpZSBvdmVyIE5vdGlmaWNhdGllczogW1JGQzAwMDhdKGh0dHBzOi8vZ2l0aHViLmNvbS9pU3RhbmRhYXJkZW4vaVdsei1SRkMvYmxvYi9tYWluL1JGQy9SRkMwMDA4JTIwLSUyME5vdGlmaWNhdGllcy5tZCkKLSBEb2N1bWVudGF0aWUgb3ZlciBNZWxkZW4gdmFuIGZvdXRlbiBpbiBnZWdldmVucyB2b2xnZW5zIGlTdGFuZGFhcmQgaVdsejogW1JGQzAwMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9pU3RhbmRhYXJkZW4vaVdsei1SRkMvYmxvYi9tYWluL1JGQy9SRkMwMDE4JTIwLSUyME1lbGRlbiUyMHZhbiUyMGZvdXRlbiUyMGluJTIwZ2VnZXZlbnMlMjB2b2xnZW5zJTIwaVN0YW5kYWFyZCUyMGlXbHoubWQpCgojIyBCcm9ubmVuCiogQWN0aWVwcm9ncmFtbWEgaVdsejogdmFuIGtldGVuIG5hYXIgbmV0d2VyazogW2xlZXMgaGllciBtZWVyIG92ZXIgaGV0IEFjdGllcHJvZ3JhbW1hIGlXbHpdKGh0dHBzOi8vd3d3LmlzdGFuZGFhcmRlbi5ubC9hY3RpZXByb2dyYW1tYS1pd2x6ICJBY3RpZXByb2dyYW1tYSBpV2x6IikKKiBJbmZvcm1hdGllbW9kZWwgaVN0YW5kYWFyZGVuIDogW0luZm9ybWF0aWVtb2RlbGxlbl0oaHR0cHM6Ly9pbmZvcm1hdGllbW9kZWwuaXN0YW5kYWFyZGVuLm5sLykKKiBQb3J0YWFsIHZvb3IgaVN0YW5kYWFyZGVuIGluIGRlIFpvcmcgZW4gT25kZXJzdGV1bmluZzogW2hvbWVwYWdpbmEgaVN0YW5kYWFyZGVuXShodHRwczovL3d3dy5pc3RhbmRhYXJkZW4ubmwpCgojIyBDb250YWN0cGVyc29uZW46CiogSGlsa28gSmFjb2JzZSAgLSBbQGhpbGtvamFjb2JzZV0oaHR0cHM6Ly9naXRodWIuY29tL0hpbGtvSmFjb2JzZSkKKiBSZW1vIHZhbiBSZXN0ICAtIFtAcnZhbnJlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydmFucmVzdCkKKiBEZW5uaXMgZGUgR291dyAtIFtAZGVubmlzZGVnb3V3XShodHRwczovL2dpdGh1Yi5jb20vZGdvdXcpCgojIyBMaWNlbnRpZQpDb3B5cmlnaHQgJmNvcHk7IGlTdGFuZGFhcmRlbiAyMDIxCg== readmeEtag: '"5e3e63d3617920ce0a1e02b21caa6ec4aaa56a15"' readmeLastModified: Fri, 12 Apr 2024 13:38:32 GMT repositoryId: 331606386 description: Koppelvlak specificaties met netwerk brede functionaliteit created: '2021-01-21T11:27:03Z' updated: '2024-03-13T16:08:24Z' language: null archived: false stars: 3 watchers: 6 forks: 2 owner: iStandaarden logo: https://avatars.githubusercontent.com/u/54351663?v=4 license: GPL-3.0 repoEtag: '"3837ba494377a53ec19b61baf42e5ed6cd2c18be2a1752c88ec77fa941a4b083"' repoLastModified: Wed, 13 Mar 2024 16:08:24 GMT foundInMaster: true category: Low-level Tooling id: 64b110c525b84712e1e71d3932e88126 - source: openapi3 tags repository: https://github.com/mermade/semoasa-tools v3: true repositoryMetadata: base64Readme: >- IyBzZW1vYXNhLXRvb2xzCgpUb29scyBmb3IgbWFuaXB1bGF0aW5nIFtTZW1vYXNhXShodHRwczovL2dpdGh1Yi5jb20vUmVwcmVaZW4vU2Vtb2FzYSkgZG9jdW1lbnRzLgoKIyMgc2Vtb2FzYS1jb21iaW5lCgpDb21iaW5lIG11bHRpcGxlIFNlbW9hc2EgZG9jdW1lbnRzIGludG8gb25lLgoKIyMjIFVzZS1jYXNlCgpCdW5kbGluZyBtdWx0aXBsZSBTZW1vYXNhIGRvY3VtZW50cyBpbnRvIGEgY29tYmluZWQgZG9jdW1lbnQgZm9yIHVzZSBpbiBTZW1vYXNhLQpjb21wbGlhbnQgYXBwbGljYXRpb25zLgoKIyMjIFVzYWdlOgoKYGBgCnNlbW9hc2EgW2ZpbGUuLi5dID4gb3V0cHV0LnlhbWwKYGBgCgojIyMgTm90ZXMKClRoZSBvdXRwdXQgU2Vtb2FzYSB2ZXJzaW9uIG51bWJlciAoYG9wZW5hcGlFeHRlbnNpb25Gb3JtYXRgKSB3aWxsIGJlIHNldCB0byB0aGUgaGlnaGVzdCB2ZXJzaW9uIHNlZW4gaW4gdGhlIGlucHV0IGZpbGVzLCBhY2NvcmRpbmcKdG8gW3NlbXZlcl0oaHR0cDovL3NlbXZlci5vcmcvKS4gTm8gYXR0ZW1wdCBpcyAqY3VycmVudGx5KiBtYWRlIHRvIHZhbGlkYXRlIG9yIHVncmFkZSBlYXJsaWVyIHZlcnNpb25zIHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4KCkNsYXNoaW5nIGRlZmluaXRpb25zIGluIGxhdGVyIGlucHV0IGZpbGVzIHdpbGwgYmUgKiptZXJnZWQqKiB3aXRoIHRob3NlIGluIGVhcmxpZXIgZmlsZXMuIFByZWNlZGVuY2UgaXMgaW1wb3J0YW50LgoKIyMgc2Vtb2FzYS1zcGxpdAoKIyMjIFVzZSBjYXNlCgpTcGxpdHRpbmcgYSBidW5kbGVkIFNlbW9hc2EgZG9jdW1lbnQgYmFjayBpbnRvIGl0cyBjb21wb25lbnQgcGFydHMsIGJhc2VkIG9uIG5hbWVzcGFjZS4KCiMjIyBVc2FnZQoKYHNlbW9hc2Etc3BsaXQgW2ZpbGUuLi5dYAoKIyMjIE5vdGVzCgpOYW1lc3BhY2VzIGV4aXN0aW5nIGluIG11bHRpcGxlIGlucHV0IGZpbGVzIHdpbGwgb3ZlcndyaXRlIHRoZSBzYW1lIG91dHB1dCBkb2N1bWVudChzKS4KCiMjIHNlbW9hc2EtdmFsaWRhdGUKCipDb21pbmcgc29vbioKCiMjIHNlbW9hc2EtdXBncmFkZQoKKkNvbWluZyBzb29uKgoK readmeEtag: '"62a641d925fbf1f2d7048300927b2e19ca490553"' readmeLastModified: Mon, 26 Jul 2021 09:12:13 GMT repositoryId: 107004998 description: Tools to manipulate Semoasa documents created: '2017-10-15T11:08:27Z' updated: '2021-07-26T09:12:21Z' language: JavaScript archived: false stars: 0 watchers: 3 forks: 1 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause repoEtag: '"0dca9f82f29b496f1b70adeaec10083db5a173f0a4bd5673ce46eec7e7c48acb"' repoLastModified: Mon, 26 Jul 2021 09:12:21 GMT foundInMaster: true category: Parsers id: feef30c4b998bddca2a34ab95d12e192 - source: openapi3 tags repository: https://github.com/unitedeffects/ue-civic-api_srvc v3: true repositoryMetadata: base64Readme: >- IyBVRS1DaXZpYy1BUElfU3J2YwoKQSB3cmFwcGVyIHdpdGggY2FjaGluZyBmb3IgdGhlIGdvb2dsZWFwaSBjaXZpYyBzZXJ2aWNlIHRvIGFsbG93IHlvdSB0byByZXNwb25kIHF1aWNrbHkgYW5kIGFsc28gdG8gZW5mb3JjZSBodHRwcyBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgc29tZSBvZiB0aGUgY2l2aWMgYXBpIGNvbnRlbnQgcHJvdmlkZWQgYnkgZ29vZ2xlIGlzIG9ubHkgaHR0cC4gSSBkbyBtb2RpZnkgdGhlIHJldHVybiBzbGlnaHRseSB0byBtYWtlIGl0IGVhc2llciB0byByZWZlcmVuY2Ugb2ZmaWNpYWxzIGFuZCB0aXRsZXMgdG9nZXRoZXIuCgojIyBEb2N1bWVudGF0aW9uCgpodHRwczovL2NpdmljcWEubWFpbG15dm9pY2UuY29tCgojIyBMb2NhbCBEZXYKCiogY2xvbmUgdGhpcyByZXBvCiogeWFybgoqIGNwIHNyYy9jb25maWdfY2hhbmdlbWUuanMgc3JjL2NvbmZpZy5qcwoqIG1vZGlmeSBjb25maWcuanMgd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZXMKKiB5YXJuIHJ1biBkZXYKCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gYnVpbGQgd2l0aCBiYWJsZSBhbmQgcnVuIGZvcm0gZGlzdAoKKiB5YXJuIGJ1aWxkCiogeWFybiBydW4gZGlzdAoKQXZhaWxhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6NDA1MAoKIyMgTGFtYmRhCgpUaGlzIGlzIGFuIGV4cHJlc3Mgc2VydmljZSB3cmFwcGVkIGFzIGEgbGFtYmRhIGZ1bmN0aW9uLiBZb3UgY2FuIGZpbmQgYW4gZXhhbXBsZSBhbmQgZGV0YWlscyBoZXJlOiBodHRwczovL21lZGl1bS5jb20vQHRoZUJvRWZmZWN0L3BvcnRpbmctbm9kZS1leHByZXNzLWs4LXNlcnZpY2UtdG8tbGFtYmRhLXdpdGgtc2VydmVybGVzcy1hLWZldy1leHRyYS1sZXNzb25zLWxlYXJuZWQtYTlkZGVkM2U2ZDExCgoqIEVuc3VyZSB5b3UgaGF2ZSB0aGUgc2VydmVybGVzcy5jb20gZnJhbWV3b3JrIGluc3RhbGxlZAoqIEVuc3VyZSB5b3UgaGF2ZSBhbiBhd3MgYWNjb3VudCBhbmQgY29uZmlndXJlZCB3aXRoIHNlcnZlcmxlc3MKKiBjaGFuZ2UgdGhlIGRpcmVjdG9yeSAuZW52X2NoYW5nZW1lIHRvIC5lbnYKKiBjaGFuZ2UgdGhlIGpzb24gZmlsZSB2YWx1ZXMgaW4gLmVudi9lbnYucWEuanNvbiB0byBtYXRjaCB5b3VyIGNvbmZpZy5qcyBmaWxlCiogaW4gYXdzLCBtYWtlIHN1cmUgeW91J3ZlIGNyZWF0ZWQgYW4gU0xTIGNlcnRpZmljYXRlIGZvciB5b3VyIHJvdXRlNTMgZG9tYWluCiogU0xTX0VOVj1xYSBzbHMgY3JlYXRlX2RvbWFpbiAoaWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSkKKiBTTFNfRU5WPXFhIHlhcm4gZGVwbG95CgpJdCBtYXkgdGFrZSB1cCB0byA0MCBtaW51dGVzIGZvciB0aGUgZG9tYWluIHlvdSBjcmVhdGUgdG8gYmUgYXZhaWxhYmxlLgoKIyMgRG9ja2VyCgpUaGlzIHNlcnZpY2UgY2FuIGFsc28gYmUgdXNlZCBhcyBhIGRvY2tlciBjb250YWluZXIuIERvY2tlcmZpbGUgcHJvdmlkZWQuCgoqIGRvY2tlciBidWlsZCAtdCB5b3UvY2l2aWMgLgoqIHNldCBhbGwgZW52IHBhcmFtZXRlcnMgZnJvbSBjb25maWcuanMgb3IganVzdCBjcmVhdGUgYSBkb2NrZXItY29tcG9zZSBmaWxlIChub3QgcHJvdmlkZWQpCiogaWYgeW91IG1hbnVhbGx5IHNldCBwYXJhbWV0ZXJzOiBkb2NrZXIgcnVuIC1wIDQwNTA6NDA1MCB5b3UvY2l2aWMKKiBvdGhlcndpc2UsIGlmIHlvdSBjcmVhdGVkIHRoZSBjb21wb3NlIGZpbGU6IGRvY2tlci1jb21wb3NlIHVwCgpBdmFpbGFibGUgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDUwCgojIyBUb2RvCgoqIDxzdHJpa2U+dXBkYXRlIGNvbmZpZ3MKKiBnZXQgbG9ncyB3aXRoIHN3YWdnZXIgcnVubmluZwoqIGNvbnZlcnQgY29kZSBiYXNlIGFuZCB1cGRhdGUgc3dhZ2dlcgoqIHVwZGF0ZSByb2xlIGJhc2VkIGFjY2VzcwoqIHVwZGF0ZSBhdXRoIHJlcXVpcmVtZW50cyBmb3IgYW5vbiB1c2VycwoqIGltcGxlbWVudCBhbmQgdGVzdAoqIGRlcGxveSB0byBRQQoqIG1lcmdlIHYyCiogZml4IFJFQURNRTwvc3RyaWtlPgoqIHB1c2ggdG8gcHJvZA== readmeEtag: '"ef9e904fa781c96d0454a810a05bad13e90b3b1e"' readmeLastModified: Mon, 10 May 2021 16:35:45 GMT repositoryId: 85435430 description: >- A wrapper with caching for the googleapi civic service to allow you to respond quickly and also to enforce https despite the fact that some of the civic api content provided by google is only http. created: '2017-03-18T22:14:57Z' updated: '2021-05-10T16:35:48Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: UnitedEffects logo: https://avatars.githubusercontent.com/u/15662367?v=4 license: MIT repoEtag: '"8c46fb2eabab8694460e7783ffd7c2822266da24d45607f854d2314b91c60aba"' repoLastModified: Mon, 10 May 2021 16:35:48 GMT foundInMaster: true category: Server Implementations id: 5b1331246b87de0b0f8db0f6ad8139b8 - source: openapi3 tags repository: https://github.com/bradrmarshall/openlms v3: true repositoryMetadata: base64Readme: IyBPcGVuTE1TCkFuIE9wZW4gTGVhcm5pbmcgTWFuYWdlbWVudCBTeXN0ZW0K readmeEtag: '"437ad6f8aebcf946d3e625e3f6fa6885ff2bba6a"' readmeLastModified: Sun, 03 Feb 2019 21:26:23 GMT repositoryId: 168995367 description: An Open Learning Management System created: '2019-02-03T21:26:23Z' updated: '2019-02-03T21:26:57Z' language: null archived: false stars: 0 watchers: 0 forks: 0 owner: bradrmarshall logo: https://avatars.githubusercontent.com/u/47306005?v=4 license: Apache-2.0 repoEtag: '"d75864bc8b8f5b74df01693a765f7a88eae0394d55e737466ce34860418265f5"' repoLastModified: Sun, 03 Feb 2019 21:26:57 GMT foundInMaster: true category: - SDK - Server Implementations id: 275b9cfe1d57dc446054d25ed7baae74 - source: openapi3 tags repository: https://github.com/fibercrypto/fibercryptopy v3: true repositoryMetadata: repositoryId: 219072349 description: Python client library for FiberCrypto wallet API classes created: '2019-11-01T22:33:39Z' updated: '2019-11-01T22:55:42Z' language: null archived: false stars: 0 watchers: 4 forks: 1 owner: fibercrypto logo: https://avatars.githubusercontent.com/u/47309509?v=4 license: GPL-3.0 repoEtag: '"12b008f4fa498692dcb0cfa9eedbc53158894374a8e74f79013e96324d8d457d"' repoLastModified: Fri, 01 Nov 2019 22:55:42 GMT foundInMaster: true id: 75d4914cf4c403c9f6649e9ee4c3f3c8 - source: openapi3 tags repository: https://github.com/elipzis/aping v3: true repositoryMetadata: base64Readme: >- IyBhUGluZyBbIVtHaXRIdWIgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9lbGlwemlzL2FQaW5nLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbGlwemlzL2FwaW5nL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpIFshW0dpdEh1YiAocHJlLSlyZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3JlbGVhc2UtMC40LjAteWVsbG93LnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbGlwemlzL2FwaW5nL3JlbGVhc2VzL3RhZy8wLjQuMCkgWyFbRG9uYXRlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0RvbmF0ZS1QYXlQYWwtZ3JlZW4uc3ZnKV0oaHR0cHM6Ly93d3cucGF5cGFsLm1lL2VsaXB6aXMpCkEgc2ltcGxlIEFQSSBQaW5nIHRvb2wgdG8gZmVlZCBhIFN3YWdnZXIvT3BlbkFQSSAzLjAgZG9jdW1lbnQgZmlsZSwgY2FsbCBhbGwgcGF0aHMgYW5kIHJlY29yZCB0aW1lIGFuZCByZXNwb25zZXMsIGUuZy4gdG8gYmVuY2htYXJrIGFuIGVuZHBvaW50LgoKIyMgRmVhdHVyZXMKKiBSZWFkIFtTd2FnZ2VyL09wZW5BUEkgMy4wXVsyXSBhcGkgZGVmaW5pdGlvbiBmaWxlcyBhbmQgY2FsbCBhbGwgcGF0aHMKKiBQaW5nIGFsbCBwYXRocyBpbiBwYXJhbGxlbCB3b3JrZXJzIGFuZC9vciBvdmVyIHNldmVyYWwgbG9vcHMKKiBQYXNzIGN1c3RvbSBoZWFkZXJzLCBlLmcuIGBBdXRob3JpemF0aW9uYAoqIENyZWF0ZSByYW5kb20gYGludGVnZXJgIGFuZCBgc3RyaW5nYCBwYXJhbWV0ZXJzIGZvciB1cmxzCiogVHJhY2sgdGhlIHRpbWUgYW5kIHJlc3BvbnNlIGJvZHkgcGVyIHJlcXVlc3QKKiBPdXRwdXQgdGhlIHJlc3VsdHMgdG8gY29uc29sZSwgQ1NWLCBIVE1MLCBKU09OIG9yIE1hcmtkb3duCgojIyBMYXRlc3QgVmVyc2lvbnMKKiAwLjQuMAogICogQWRkZWQgcmVndWxhciBleHByZXNzaW9uIGZpbHRlciBvcHRpb24gZm9yIHBhdGhzCiAgKiBBZGRlZCByZXNwb25zZSB0aW1lIG1pbGxpc2Vjb25kcyB0aHJlc2hvbGQKKiAwLjMuMAogICogQWRkZWQgYXZlcmFnZSBtcyBjYWxjdWxhdGlvbiBmb3IgbXVsdGlwbGUgbG9vcHMKICAqIEFkZGVkIEJvb3RzdHJhcCBIVE1MIHRlbXBsYXRlIHdpdGggc29ydGFibGUgdGFibGUKICAqIEFkZGVkIEpTT04gb3V0cHV0CiogMC4yLjAKICAqIEFkZGVkIGFuIG9wdGlvbiB0byBjb25maWd1cmUgaW5jbHVkZWQgcXVlcnkgbWV0aG9kcwogIApEb3dubG9hZCB0aGUgbGF0ZXN0IFtyZWxlYXNlIGhlcmVdWzNdLgoKIyMgVXNhZ2UKRm9yIGEgcXVpY2sgc3RhcnQgZG93bmxvYWQgYSBbcmVsZWFzZV1bM10sIGNoYW5nZSBpbnRvIHRoZSBkaXJlY3RvcnkgYW5kIGV4ZWN1dGUgdGhlIGJpbmFyeSB3aXRoIHlvdXIgb3B0aW9ucywgZS5nLjoKYGBgc2hlbGwgc2NyaXB0Ci4vYXBpbmcgLWlucHV0PSJjYWxscy5qc29uIiAtaGVhZGVyPSd7XCJBdXRob3JpemF0aW9uXCI6IFwiQmVhcmVyIGV5WFlaXCJ9JyAtcmVzcG9uc2UgLWJhc2U9aHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaSAtb3V0PWh0bWwgLWw9NSAtdz01CmBgYAoKRXhhbXBsZSBwcm9ncmVzcyBvdXRwdXQ6CmBgYApQaW5naW5nICdSRVNUIEFQSSBEb2N1bWVudGF0aW9uIC0gQmFja2VuZCcKUGluZ2luZyAxMjIgcm91dGVzIChSb3VuZCAxKSAuLi4gZG9uZSEgWzEyMiBpbiAxMS41ODZzXQpQaW5naW5nIDEyMiByb3V0ZXMgKFJvdW5kIDIpIC4uLiBkb25lISBbMTIyIGluIDIzLjMxNXNdClBpbmdpbmcgMTIyIHJvdXRlcyAoUm91bmQgMykgLi4uIGRvbmUhIFsxMjIgaW4gMzcuMjYyc10KUGluZ2luZyAxMjIgcm91dGVzIChSb3VuZCA0KSAuLi4gZG9uZSEgWzEyMiBpbiA0OC42MTZzXQpQaW5naW5nIDEyMiByb3V0ZXMgKFJvdW5kIDUpIC4uLiAyNy45JSDilZHilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilojilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilpHilZEgWzM0IGluIDFtMS4zODZzXQpgYGAKCiMjIyBPcHRpb25zCmBgYHNoZWxsIHNjcmlwdApVc2FnZQogIC1pbnB1dCBzdHJpbmcKICAgICAgICAqVGhlIHBhdGgvdXJsIHRvIHRoZSBTd2FnZ2VyL09wZW5BUEkgMy4wIGlucHV0IHNvdXJjZQogIC1iYXNlIHN0cmluZwogICAgICAgIFRoZSBiYXNlIHVybCB0byBxdWVyeQogIC1oZWFkZXIgc3RyaW5nCiAgICAgICAgUGFzcyBhIGN1c3RvbSBoZWFkZXIgYXMgSlNPTiBzdHJpbmcsIGUuZy4gJ3tcIkF1dGhvcml6YXRpb25cIjogXCJCZWFyZXIgVE9LRU5cIn0nIChkZWZhdWx0ICJ7fSIpCiAgLWxvb3AgaW50CiAgICAgICAgSG93IG9mdGVuIHRvIGxvb3AgdGhyb3VnaCBhbGwgY2FsbHMgKGRlZmF1bHQgMSkKICAtb3V0IHN0cmluZwogICAgICAgIFRoZSBvdXRwdXQgZm9ybWF0LiBPcHRpb25zOiBjb25zb2xlLCBjc3YsIGh0bWwsIG1kLCBqc29uIChkZWZhdWx0ICJjb25zb2xlIikKICAtcmVzcG9uc2UKICAgICAgICBJbmNsdWRlIHRoZSByZXNwb25zZSBib2R5IGluIHRoZSBvdXRwdXQKICAtdGltZW91dCBpbnQKICAgICAgICBUaGUgdGltZW91dCBpbiBzZWNvbmRzIHBlciByZXF1ZXN0IChkZWZhdWx0IDUpCiAgLXdvcmtlciBpbnQKICAgICAgICBUaGUgYW1vdW50IG9mIHBhcmFsbGVsIHdvcmtlcnMgdG8gdXNlIChkZWZhdWx0IDEpCiAgLW1ldGhvZHMgc3RyaW5nCiAgICAgICAgQW4gYXJyYXkgb2YgcXVlcnkgbWV0aG9kcyB0byBpbmNsdWRlLCBlLmcuICdbXCJHRVRcIiwgXCJQT1NUXCJdJyAoZGVmYXVsdCAiW1wiR0VUXCIsXCJQT1NUXCJdIikKICAtdGhyZXNob2xkIGludAogICAgICAgIE9ubHkgY29sbGVjdCBwaW5ncyBhYm92ZSB0aGlzIHJlc3BvbnNlIHRocmVzaG9sZCBpbiBtaWxsaXNlY29uZHMgKGRlZmF1bHQgLTEpCiAgLWZpbHRlciBzdHJpbmcKICAgICAgICBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBmaWx0ZXIgcGF0aHMuIE9ubHkgbWF0Y2hlcyB3aWxsIGJlIHBpbmdlZCEKYGBgCgojIyMjIElucHV0ClJlZmVyZW5jZSBhIGZpbGUgaW5wdXQgc29tZXdoZXJlIHJlYWNoYWJsZSBieSB5b3VyIG1hY2hpbmUuIApSZWZlcmVuY2VzIGluIHRoZSBbT3BlbkFQSV1bMl0gc3BlY2lmaWNhdGlvbiBjYW4gYmUgcmVzb2x2ZWQgaWYgYWJzb2x1dGUgb3IgcmVsYXRpdmUgdG8gdGhlIG1haW4gZmlsZS4KCiMjIyMgQmFzZQpQYXNzIGEgYmFzZSB1cmwgc3VjaCBhcyBgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaWAuCklmIG5vbiBpcyBnaXZlbiB0aGUgYHNlcnZlcnNgIGFycmF5IG9mIHRoZSBbT3BlbkFQSV1bMl0gc3BlY2lmaWNhdGlvbiB3aWxsIGJlIHByZXNlbnRlZCB0byBwaWNrIGEgc2VydmVyIGZyb20uCgojIyMjIEhlYWRlcgpQYXNzIGN1c3RvbSBoZWFkZXJzIHRvIHNlbmQgd2l0aCBldmVyeSByZXF1ZXN0IGFzIGFuIGVzY2FwZWQgSlNPTiBzdHJpbmcgc3VjaCBhcyBgJ3tcIkF1dGhvcml6YXRpb25cIjogXCJCZWFyZXIgZXlYWVpcIn0nYC4KClRoZSBkZWZhdWx0IGhlYWRlcnMgYXJlCmBgYAoiQWNjZXB0IjogICAgICAgIiovKiIKIkNvbm5lY3Rpb24iOiAgICJLZWVwLUFsaXZlIgoiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iCiJVc2VyLUFnZW50IjogICAiYVBpbmciCmBgYAoKWW91IGNhbiBvdmVycmlkZSB0aGVzZSBvcHRpb25zIGJ5IHBhc3NpbmcgdGhlIHNhbWUga2V5LgoKIyMjIyBXb3JrZXIKSG93IG1hbnkgcGFyYWxsZWwgcHJvY2Vzc2VzIHNob3VsZCBiZSBzcGF3bmVkIHRvIHF1ZXJ5IHlvdXIgZW5kcG9pbnRzLgoKKkVuc3VyZSB0aGF0IHlvdXIgZW5kcG9pbnQgY2FuIGhhbmRsZSBtdWx0aXBsZSByZXF1ZXN0cywgb3RoZXJ3aXNlIG11bHRpcGxlIHdvcmtlcnMgbWlnaHQgcnVuIGludG8gdGhlIHRpbWVvdXQuKgoKIyMjIyBPdXRwdXQKRGVmaW5lIGFuIG91dHB1dCBmb3JtYXQuIFRoZSBvdXRwdXQgaXMgd3JpdHRlbiB0byBhIGxvY2FsIGBhcGluZy5YWVpgIGZpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGNob2ljZS4KClRoZSBvdXRwdXQgY29udGFpbnMgKGF0IG1vc3QpOgoqIFRoZSBwaW5nZWQgcGF0aAoqIFRoZSBlZmZlY3RpdmUgVVJMKnMqIChiYXNlICsgcGF0aCkKKiBUaGUgcXVlcnkgbWV0aG9kCiogVGhlIGF2ZXJhZ2UgbWlsbGlzZWNvbmRzCiogVGhlIHJlc3BvbnNlKnMqCgpTb21lIGRhdGEgaXMgb25seSBhdmFpbGFibGUgd2l0aCB0aGVpciBhY2NvcmRpbmcgZmxhZ3MsIGkuZS4gYGxvb3BgIGFuZCBgcmVzcG9uc2VgCgojIyMjIExvb3AKKklmIGBsb29wID4gMWAgaXMgbWl4ZWQgd2l0aCBgcmVzcG9uc2VgIGFsbCByZXNwb25zZXMgYXJlIGxvZ2dlZCwgaWYgdGhlIHBhdGggaGFzIHBhcmFtZXRlcnMhKgoKIyMgQnVpbGQKW0Rvd25sb2FkIGFuZCBpbnN0YWxsXVs1XSBHb2xhbmcgZm9yIHlvdXIgcGxhdGZvcm0uCgpDbG9uZSB0aGlzIHJlcG9zaXRvcnkgYW5kIGJ1aWxkIHlvdXIgb3duIHZlcnNpb246CmBgYHNoZWxsIHNjcmlwdApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2VsaXBaaXMvYVBpbmcuZ2l0CmdvIGJ1aWxkIC1vIGFwaW5nIGdpdGh1Yi5jb20vZWxpcFppcy9hUGluZwpgYGAKCiMjIyBDb21wYXRpYmlsaXR5CmFQaW5nIGhhcyBiZWVuIHRlc3RlZCB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKiBXaW5kb3dzIDEwIFByb2Zlc3Npb25hbCAoNjQtYml0KQoKIyMgTWlzc2luZy9VcGNvbWluZyBGZWF0dXJlcwphUGluZyBpcyBub3QgZnVsbHktZmxlZGdlZCAoeWV0KS4gU29tZSBmdW5jdGlvbmFsaXR5IGlzIG1pc3NpbmcgYW5kIGVycm9ycyBtYXkgb2NjdXIuCgpLbm93biBpc3N1ZXMgYXJlOgoqIFBhdGhzIGhhdmluZyByZXF1ZXN0IGJvZGllcyBhcmUgbm90IHBpbmdlZAoqIFBhcmFtZXRlcnMgYmVzaWRlcyBgaW50ZWdlcmAgYW5kIGBzdHJpbmdgIGFyZSBub3QgcGluZ2VkIAoKIyMgTGljZW5zZSBhbmQgQ3JlZGl0cwphUGluZyBpcyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgYnkgW2VsaXBaaXNdWzFdLgoKVGhpcyBwcm9ncmFtIHVzZXMgbXVsdGlwbGUgb3RoZXIgbGlicmFyaWVzLiBDcmVkaXRzIGFuZCB0aGFua3MgdG8gYWxsIHRoZSBkZXZlbG9wZXJzIHdvcmtpbmcgb24gdGhlc2UgZ3JlYXQgcHJvamVjdHM6CiogU3dhZ2dlci9PcGVuQVBJIDMuMCBwYXJzZXIgW2tpbi1vcGVuYXBpXVs2XQoqIFByZXR0eSBjb25zb2xlIHByaW50ZXIgW2dvLXByZXR0eV1bN10KCiMjIERpc2NsYWltZXIKVGhpcyBzb3VyY2UgYW5kIHRoZSB3aG9sZSBwYWNrYWdlIGNvbWVzIHdpdGhvdXQgYSB3YXJyYW50eS4gCkl0IG1heSBvciBtYXkgbm90IGhhcm0geW91ciBjb21wdXRlci4gUGxlYXNlIHVzZSB3aXRoIGNhcmUuIApBbnkgZGFtYWdlIGNhbm5vdCBiZSByZWxhdGVkIGJhY2sgdG8gdGhlIGF1dGhvci4gClRoZSBzb3VyY2UgaGFzIGJlZW4gdGVzdGVkIG9uIGEgdmlydHVhbCBlbnZpcm9ubWVudCBhbmQgc2Nhbm5lZCBmb3IgdmlydXNlcyBhbmQgaGFzIHBhc3NlZCBhbGwgdGVzdHMuCgogIFsxXTogaHR0cHM6Ly9lbGlwWmlzLmNvbQogIFsyXTogaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vCiAgWzNdOiBodHRwczovL2dpdGh1Yi5jb20vZWxpcFppcy9hUGluZy9yZWxlYXNlcwogIFs0XTogaHR0cHM6Ly9naXRodWIuY29tL2VsaXBaaXMvYVBpbmcvd2lraS9WZXJzaW9uLUhpc3RvcnkKICBbNV06IGh0dHBzOi8vZ29sYW5nLm9yZy9kbC8KICBbNl06IGh0dHBzOi8vZ2l0aHViLmNvbS9nZXRraW4va2luLW9wZW5hcGkKICBbN106IGh0dHBzOi8vZ2l0aHViLmNvbS9qZWRpYjB0L2dvLXByZXR0eQo= readmeEtag: '"9aa8d3f94c0c9f487833ccf647394382fe18d40a"' readmeLastModified: Thu, 13 Aug 2020 14:50:01 GMT repositoryId: 281031032 description: >- 📲 A simple API Ping tool to feed a Swagger/OpenAPI 3.0 document file, call all paths and record time and responses created: '2020-07-20T06:17:44Z' updated: '2020-08-13T14:50:04Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: elipZis logo: https://avatars.githubusercontent.com/u/46478237?v=4 license: MIT repoEtag: '"32946b5f85c2df7b6fa30c401bc1b282c5238e23985ffbfd7a9a2d7b711720f5"' repoLastModified: Thu, 13 Aug 2020 14:50:04 GMT foundInMaster: true category: Server Implementations id: ad419c774f086dbba8ab197d314b40fe - source: openapi3 tags repository: https://github.com/ragnar-oock/setlist_v2_connexion v3: true repositoryMetadata: base64Readme: >- IyBzZXRsaXN0X3YyX2Nvbm5leGlvbgoKIyMgU2V0dXAKCi0gaW5zdGFsbCByZXF1aXJlbWVudDogIApgcGlwZW52IGluc3RhbGxgCi0gVXBkYXRlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGluIGBzZXRpbmcucHlgCi0gUnVuIGBtYWluLnB5YCBvbmNlIHRoZW4gc2h1dCBpdCBkb3duLgotIFJ1biB0aGUgZm9sbG93aW5nIHF1ZXJpZXMgaW4gdGhlIGRhdGFiYXNlIHRvIHNldHVwIHRoZSBkaWZmZXJlbnRzIElOREVYIGFuZCBhdXRvZ2VuZXJhdGVkIGZpZWxkczogIApgYGBzcWwKLS0gYWRkIGZ0c19jb2wgYW5kIGdpc3QgaW5kZXgKQUxURVIgVEFCTEUgc29uZyBBREQgQ09MVU1OIGZ0c19jb2wgVGV4dAogICAgR0VORVJBVEVEIEFMV0FZUyBBUyAoY29hbGVzY2UobmFtZSwgJycpIHx8JyAnfHwgY29hbGVzY2UoYXJ0aXN0LCAnJykgfHwnICd8fCBjb2FsZXNjZShhbGJ1bSwgJycpKSBTVE9SRUQ7CkNPTU1FTlQgT04gQ09MVU1OIHNvbmcuZnRzX2NvbAogICAgSVMgJ2FnZ3JlZ2F0aW9uIG9mIG5hbWUsIGFydGlzdCBhbmQgYWxidW0gY29sdW1ucyB0byBiZSBpbmRleGVkIGZvciBmYXN0ZXIgdHJpZ3JhbSBzZWFyY2gnOwpDUkVBVEUgSU5ERVggT04gc29uZyBVU0lORyBHaVNUIChmdHNfY29sIGdpc3RfdHJnbV9vcHMpOwoKLS0gY3JlYXRlIGF1dG9pbmNyZW1lbnQgb24gc29uZy5pbmRleApBTFRFUiBUQUJMRSBwdWJsaWMuc29uZwogICAgQUxURVIgQ09MVU1OIGluZGV4IEFERCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZICggSU5DUkVNRU5UIDEgU1RBUlQgMCBNSU5WQUxVRSAwICk7YGBg readmeEtag: '"e8b48ce073ea7c86f5745068ad25d0046bf6086d"' readmeLastModified: Tue, 02 Mar 2021 15:23:45 GMT repositoryId: 321718670 description: API back-end for Ragnar-Oock/setlist created: '2020-12-15T16:04:36Z' updated: '2021-03-22T17:20:52Z' language: Python archived: false stars: 0 watchers: 2 forks: 0 owner: Ragnar-Oock logo: https://avatars.githubusercontent.com/u/38219333?v=4 license: MIT repoEtag: '"a4d4fb13a803a599ce7e3a2a60aaead64732046f36cef09b6b1de2332c8041ce"' repoLastModified: Mon, 22 Mar 2021 17:20:52 GMT foundInMaster: true category: Server Implementations id: 6804b783d69b4dbf63629b5dfbb94ba4 - source: openapi3 tags repository: https://github.com/karthikeyan-ng/learn-open-api v3: true repositoryMetadata: base64Readme: >- IyBsZWFybi1vcGVuLWFwaQpUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgaG93IGRldmVsb3AgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGJhc2VkIFJFU1QgQVBJcy4K readmeEtag: '"e73a85d1889595141623015bf0f359ac4a10210b"' readmeLastModified: Tue, 11 Feb 2020 16:36:14 GMT repositoryId: 237742792 description: >- This repository contains how to develop OpenAPI specification based REST APIs. created: '2020-02-02T08:46:32Z' updated: '2020-04-10T11:46:13Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: karthikeyan-ng logo: https://avatars.githubusercontent.com/u/39563373?v=4 repoEtag: '"8d425176738ee7246c402223a655bd114e301ccf504fd8759cf873b4a6b4a985"' repoLastModified: Fri, 10 Apr 2020 11:46:13 GMT foundInMaster: true category: - Server - Server Implementations id: ce2a86eb20bd1ae4de9b956c346fcecd - source: openapi3 tags repository: >- https://github.com/nicolaslopez82/java-springboot-docker-microservices-skeleton v3: true repositoryMetadata: base64Readme: >- IyBKYXZhIDggU3ByaW5nLUJvb3QgMiBNaWNyb3NlcnZpY2UgUHJvamVjdAoKVGhlIGdvYWxzIGhlcmUgYXJlIHRvIHVwZGF0ZSB0ZWNobm9sb2dpZXMgYW5kIG5ldyBjb25jZXB0cyBhYm91dCBtaWNyby1zZXJ2aWNlczoKCiMjIFRoZSBTd2FnZ2VyIFVJIFJFU1QgQVBJIERvY3VtZW50YXRpb24KCgpgPGxpbms+YCA6IDxodHRwczovL25pY29sYXNsb3BlejgyLmdpdGh1Yi5pby9qYXZhLXNwcmluZ2Jvb3QtZG9ja2VyLW1pY3Jvc2VydmljZXMtc2tlbGV0b24vPgoKIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNvbGFzbG9wZXo4Mi9qYXZhLXNwcmluZ2Jvb3QtZG9ja2VyLW1pY3Jvc2VydmljZXMtc2tlbGV0b24vYmxvYi9tYXN0ZXIvc3dhZ2dlci11aS5wbmcpCgojIyBUZWNobm9sb2dpZXMgYW5kIG5ldyBjb25jZXB0cyB1cGRhdGVkLgoKKiBKYXZhIDguCiogU3ByaW5nLUJvb3QgMi4KKiBTcHJpbmcgRGF0YSBKUEEuCiogU3ByaW5nIFNlY3VyaXR5LgoqIFNwcmluZyBSRVNULgoqIFNwcmluZyBNVkMuCiogTG9nZ2VyIHdpdGggTG9nQmFjayBBcHBlbmRlciBSb2xsaW5nRmlsZS4KKiBTd2FnZ2VyIFVJLgoqIE9wZW5BUEkgdjMuCiogSlNPTiBXZWIgVG9rZW4gKEpXVCkuCiogUGFzc3dvcmQgRW5jcnlwdGlvbi4KKiBNb2NraXRvIFRlc3RpbmcuCiogSlVuaXQgVGVzdGluZy4KKiBJbnRlZ3JhdGlvbiBUZXN0aW5nLgoqIEh5cGVybWVkaWEgRHJpdmVuIFJFU1RmdWwuCiogUGFnaW5nIGFuZCBTb3J0aW5nLgoqIFNlY3VyaW5nIEFQSXMuCiogQ29udHJvbGxpbmcgQVBJcyBleHBvc3VyZS4KKiBEb2NrZXIgSW1hZ2UuCiogRG9ja2VyIENvbnRhaW5lcnMuCiogRG9ja2VyIENvbnRhaW5lcnMgRGF0YWJhc2VzLgoqIERvY2tlciBNaWdyYXRpb24gRGF0YWJhc2Ugd2l0aCBGbHl3YXkuCiogRG9ja2VyIEh1Yi4K readmeEtag: '"22e2e1f5efee2ad4a8d24d058a6df68ae6053779"' readmeLastModified: Sun, 20 Dec 2020 04:41:41 GMT repositoryId: 278491784 description: >- Java Spring Boot Microservices Project. Spring Data JPA, Spring Security, Spring REST, and Docker. Please, see the README file for more details. created: '2020-07-09T23:23:37Z' updated: '2020-12-20T04:41:44Z' language: Java archived: false stars: 0 watchers: 0 forks: 0 owner: nicolaslopez82 logo: https://avatars.githubusercontent.com/u/6266503?v=4 repoEtag: '"7010df94f2cac9968fa72b2c8cd7c858e911832be8fb5e6548243eca16f0d935"' repoLastModified: Sun, 20 Dec 2020 04:41:44 GMT foundInMaster: true category: - Low-level Tooling - Server Implementations id: 4a412b648722eee99f3b719824e04d0a - source: openapi3 tags repository: >- https://github.com/joergschultzelutter/openapi-to-robot-framework-datadriver-testgenerator v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIHRvIFJvYm90RnJhbWV3b3JrIERhdGFEcml2ZXIgdGVzdCBnZW5lcmF0b3IKClshW0xpY2Vuc2U6IEdQTCB2M10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUdQTHYzLWJsdWUuc3ZnKV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wKSBbIVtDb2RlIHN0eWxlOiBibGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9wc2YvYmxhY2spIFshW0NvZGVRTF0oaHR0cHM6Ly9naXRodWIuY29tL2pvZXJnc2NodWx0emVsdXR0ZXIvb3BlbmFwaS10by1yb2JvdC1mcmFtZXdvcmstZGF0YWRyaXZlci10ZXN0Z2VuZXJhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL2NvZGVxbC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2pvZXJnc2NodWx0emVsdXR0ZXIvb3BlbmFwaS10by1yb2JvdC1mcmFtZXdvcmstZGF0YWRyaXZlci10ZXN0Z2VuZXJhdG9yL2FjdGlvbnMvd29ya2Zsb3dzL2NvZGVxbC55bWwpCgpUaGlzIHByb2dyYW0gZ2VuZXJhdGVzIGEgZnVsbHktZmxlZGdlZCBFeGNlbC1iYXNlZCBSb2JvdCBGcmFtZXdvcmsgRGF0YWRyaXZlciB0ZXN0IGNhc2UgZnJvbSBhbiBPcGVuQVBJIGZpbGUuCgohW0RlbW9dKGRvY3MvaW1nL2RlbW8uanBnKQoKIyMgR2VuZXJhbCBmZWF0dXJlcwogIAotIFN1cHBvcnRzIE9wZW5BUEkgVjMgWUFNTCBhbmQgSlNPTiBpbnB1dCBmaWxlIGZvcm1hdHMuIFYyIGZpbGUgZm9ybWF0IHN1cHBvcnQgY2FuIGJlIGFjaGlldmVkIHRocm91Z2ggbGlicmFyeSByZWNvbmZpZ3VyYXRpb24uCi0gVGhlIHByb2dyYW0gd2lsbCByZWFkIGEgdmFsaWQgT3BlbkFQSSBmaWxlIGFuZCB0aGVuIHRyaWVzIHRvIGdlbmVyYXRlIHRoZSBmb2xsb3dpbmcgb3V0cHV0IGZpbGVzIGZvciB5b3U6CiAgLSBBIFJvYm90IEZyYW1ld29yayB0ZXN0IGZpbGUsIGNvbnRhaW5pbmcgYWxsIHRlc3RzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIE9wZW5BUEkgZmlsZQogIC0gQSBnZW5lcmljIFJGICdpbmNsdWRlJyBmaWxlCiAgLSBBbiBFeGNlbCBmaWxlIHdoaWNoIHdpbGwgYmUgdXNlZCBieSB0aGUgUm9ib3QgRnJhbWV3b3JrIHRlc3QgYXMgaW5wdXQgZGF0YQogIC0gT3B0aW9uYWw6IGdlbmVyYXRlIEppcmEgLyBYUmF5IFRlc3QgLyBUZXN0IEV4Y2V1dGlvbiB0aWNrZXRzIGFuZCBhc3NvY2lhdGUgdGhlbSB3aXRoIHRoZSBSb2JvdCBGcmFtZXdvcmsgdGVzdAotIEFsbCBpbnB1dCBkYXRhIGlzIHRlbXBsYXRlLWJhc2VkLCBtZWFuaW5nIHRoYXQgeW91IGNhbiBhcHBseSBzaW1wbGUgbW9kaWZpY2F0aW9ucyB0byBKaXJhIC8gUm9ib3QgdGVtcGxhdGUgZmlsZXMgd2hpY2ggd2lsbCB0aGVuIHJlcHJlc2VudCB0aGUgZm91bmRhdGlvbiBmb3IgdGhlIGZ1dHVyZSBFeGNlbC9Sb2JvdCB0ZXN0IGZpbGUKLSBBbGwgcmVzdWx0aW5nIGZpbGVzIHdpbGwgbm8gbG9uZ2VyIGJlIGRlcGVuZGVudCBvbiB0aGUgaW5pdGlhbCBPcGVuQVBJIGlucHV0IGZpbGUuIFRoZSBpZGVhIGZvciB0aGlzIHByb2dyYW0gaXMgdGhhdCBpdCB3aWxsIGdlbmVyYXRlIHRoZSBtYWpvcml0eSBvZiByZXF1aXJlZCBjb2RlIGZvciB5b3UgYW5kIHRoYXQgeW91IGN1c3RvbWl6ZSB0aGF0IGNvZGUgbGF0ZXIgb24gZm9yIHlvdXIgbmVlZHMuCgojIyBFeGNlbCBmZWF0dXJlcwoKLSBGb3IgZWFjaCBBUEkgY2FsbCwgdGhlIHByb2dyYW0gd2lsbCB0cnkgdG8gZGV0ZXJtaW5lIHRoZSBzdXBwb3J0ZWQgb3B0aW9uYWwgYW5kIHJlcXVpcmVkIHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0IGJvZHk6CiAgLSBfX1JlZF9fIGZpZWxkcyBpbmRpY2F0ZSBhIG1hbmRhdG9yeSBwYXJhbWV0ZXIKICAtIF9fR3JlZW5fXyBmaWVsZHMgaW5kaWNhdGUgb3B0aW9uYWwgcGFyYW1ldGVycwogIC0gX19HcmV5X18gZmllbGRzIGluZGljYXRlIGZpZWxkcyB3aGljaCBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBBUEkgY2FsbAogIC0gX19CZWlnZV9fIGZpZWxkcyBpbmRpY2F0ZSB0ZXN0IHBhcmFtZXRlcnMgc3VjaCBhcyB0ZXN0IG5hbWUsIHRhZ3MgZXRjCiAgLSBZb3UgY2FuIGVhc2lseSBjdXN0b21pemUgdGhlc2UgdmFsdWVzIGluIHRoZSBwcm9ncmFtLgotIElmIGEgcGFyYW1ldGVyIGhhcyBiZWVuIGFzc2lnbmVkIHdpdGggYW4gX2VudW1fIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCB0aGUgcHJvZ3JhbSB3aWxsIGFkZCB0aGVzZSB2YWx1ZXMgYXMgYSBwcmUtcG9wdWxhdGVkIGRyb3Bkb3duIHRvIHRoZSBFeGNlbCBsaXN0LiBVc2VycyBjYW4gc2VsZWN0IGEgdmFsdWUgZnJvbSB0aGF0IGxpc3QgKGJ1dCBhcmUgc3RpbGwgYWJsZSB0byBvdmVyd3JpdGUgdGhhdCB2YWx1ZSkKLSBCeSBkZWZhdWx0LCB0aGUgcHJvZ3JhbSB3aWxsIG9ubHkgaGlnaGxpZ2h0IHRoZSBvcHRpb25hbC9tYW5kYXRvcnkgcGFyYW1ldGVyIGZpZWxkcyAoYnV0IHdpbGwgbm90IHBvcHVsYXRlIHRoZW0gd2l0aCBhbnkgY29udGVudCkuIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBzZXR0aW5nIGFuZCB0ZWxsIHRoZSBwcm9ncmFtIHRvIHByZS1wb3B1bGF0ZSB0aGUgcGFyYW1ldGVycyB3aXRoIGV4YW1wbGUgZGF0YSBzdHJhaWdodCBmcm9tIHlvdXIgT3BlbkFQSSBmaWxlLgotIEV4cGVjdGVkIEhUVFAgcmVzcG9uc2UgY29kZXMgYXJlIGV4dHJhY3RlZCBmcm9tIHRoZSBPcGVuQVBJIGZpbGUgYW5kIGFkZGVkIHRvIHRoZSBFeGNlbCBzaGVldCBhcyBkZWZhdWx0IHZhbHVlCi0gQWxsIE9wZW5BUEkgaW5wdXQgcGFyYW1ldGVycyBpbiB0aGUgRXhjZWwgZmlsZSBhcmUgYWxwaGFiZXRpY2FsbHkgc29ydGVkIGZvciBhIGJldHRlciB1c2VyIGNvbnZlbmllbmNlIHdoZW4gaXQgY29tZXMgdG8gcG9wdWxhdGluZyB0aGUgc2hlZXQgd2l0aCBkYXRhLgoKIyMgUm9ib3QgZmVhdHVyZXMKCi0gVGhlIHByb2dyYW0gd2lsbCB0cnkgdG8gY3JlYXRlIGEgZnVsbHktZmxlZGdlZCBSb2JvdCBGcmFtZXdvcmsgdGVzdCBjYXNlIGZvciB5b3UuCiAgLSBFYWNoIEFQSSBjYWxsIHdpbGwgYmUgdGFpbG9yZWQgdG8gdGhlIHJlc3BlY3RpdmUgQVBJIHNlcnZpY2UgbWV0aG9kLCBtZWFuaW5nIHRoYXQKICAgIC0gYSBKU09OIHJlcXVlc3QgYm9keSB3aWxsIG9ubHkgYmUgc2VudCB0byB0aGUgQVBJIGlmIHRoZSByZXNwZWN0aXZlIEFQSSBzZXJ2aWNlIG1ldGhvZCBzdXBwb3J0cyBpdAogICAgLSB0aGUgSlNPTiByZXF1ZXN0IGJvZHkgd2lsbCBvbmx5IGNvbnRhaW4gcGFyYW1ldGVycyB0aGF0IGJlbG9uZyB0byB0aGlzIHNwZWNpZmljIEFQSSBzZXJ2aWNlIG1ldGhvZAogICAgLSBJZiBhIHNlcnZpY2UgbWV0aG9kIHJlcXVpcmVzIHBhcmFtZXRlcnMgdG8gYmUgc2VudCBhcyBwYXJ0IG9mIHRoZSBBUEkncyBVUkwsIHRoZSBwcm9ncmFtIHdpbGwgZ2VuZXJhdGUgdGhlc2UgVVJMcyBmb3IgeW91LgotIFNvbWUgbWlub3IgYWRqdXN0bWVudHMgdG8gdGhlIFJvYm90IGZpbGUocykgbWF5IHN0aWxsIGJlIG5lY2Vzc2FyeSAoZS5nLiBpbml0aWFsIEFQSSBzZXR1cCwgbmVzdGVkIGRhdGEgc3RydWN0dXJlcykgLSBzZWUga25vd24gaXNzdWVzLgoKIyMgRG9jdW1lbnRhdGlvbgoKLSBbSW5zdGFsbGF0aW9uIGFuZCBmaXJzdCBwcm9ncmFtIHJ1bl0oZG9jcy9JTlNUQUxMQVRJT04ubWQpCi0gW0N1c3RvbWl6YXRpb24gYW5kIHByb2dyYW0gY29uZmlndXJhdGlvbl0oZG9jcy9DT05GSUdVUkFUSU9OLm1kKQotIFtDb21tYW5kIGxpbmUgcGFyYW1ldGVycyBhbmQga25vd24gaXNzdWVzXShkb2NzL1VTQUdFLm1kKQo= readmeEtag: '"a25f1e5eed12a0286b50a33926c63c3176576e3e"' readmeLastModified: Wed, 16 Mar 2022 18:28:55 GMT repositoryId: 429881762 description: >- Generates a fully-fledged Robot Framework Datadriver test and (optional) Jira/XRay test tickets from an OpenAPI V3 JSON/YAML schema file. created: '2021-11-19T17:28:35Z' updated: '2022-09-22T22:18:26Z' language: Python archived: false stars: 0 watchers: 3 forks: 1 owner: joergschultzelutter logo: https://avatars.githubusercontent.com/u/76180229?v=4 license: GPL-3.0 repoEtag: '"ec8849d918497d48c662be3db2a2da66d15d52ee698d63d9216a476e1ecdc72c"' repoLastModified: Thu, 22 Sep 2022 22:18:26 GMT foundInMaster: true category: Testing id: b6921e1b63c62319faa55662e3947a27 - source: openapi3 tags repository: https://github.com/butley/plugin-resolver v3: true id: 06f4819aa00a24869163fcbaddf54ee1 repositoryMetadata: base64Readme: >- IyMgcGx1Z2luLXJlc29sdmVyCgpUaGUgUGx1Z2luUmVzb2x2ZXIgY2xhc3MgaXMgYSB1dGlsaXR5IGZvciByZXNvbHZpbmcgcGx1Z2lucyBpbiB0aGUgY29udGV4dCBvZiBhbiBBSS1iYXNlZCBjb252ZXJzYXRpb24uIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBmaW5kaW5nIGEgc3VpdGFibGUgcGx1Z2luIGJhc2VkIG9uIHRoZSBnaXZlbiBjb250ZXh0IG1lc3NhZ2VzIGFuZCB1c2VyIG1lc3NhZ2UuIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG1ha2VzIHVzZSBvZiB0aGUgZ3B0LTMuNS10dXJiby0wMzAxIG1vZGVsIGFuZCBlbXBsb3lzIGN1c3RvbSBwcm9tcHRzIHRvIGV2YWx1YXRlIGRpZmZlcmVudCBPcGVuQVBJIFlBTUwgc3BlY2lmaWNhdGlvbnMuIEl0IHRoZW4gZXh0cmFjdHMgdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGZyb20gdGhlIHBsdWdpbidzIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBhbmQgZ2VuZXJhdGVzIGEgcmVxdWVzdCBwYXlsb2FkIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2FsbCB0aGUgY29ycmVzcG9uZGluZyBBUEkuIFRoZSBjbGFzcyBhbHNvIGtlZXBzIHRyYWNrIG9mIE9wZW5BSSB1c2FnZSB0aHJvdWdob3V0IHRoZSBwcm9jZXNzLgoKIyMjIEtleSBmZWF0dXJlcyBvZiB0aGUgUGx1Z2luUmVzb2x2ZXI6CgoqIGBnZW5lcmF0ZV9wYXRoKClgOiBHZW5lcmF0ZXMgYSBwYXRoIGJhc2VkIG9uIHRoZSBnaXZlbiBPcGVuQVBJIHBhdGhzIHNlY3Rpb24sIGNvbnRleHQgbWVzc2FnZXMsIGFuZCB1c2VyIG1lc3NhZ2UuCiogYGdlbmVyYXRlX3BheWxvYWRfZnJvbV9jb21wb25lbnRzX2FuZF90YXJnZXRfcGF0aCgpYDogR2l2ZW4gdGhlIGNvbnRleHQgbWVzc2FnZXMsIHVzZXIgbWVzc2FnZSwgYW5kIGV4dHJhY3RlZCBjb21wb25lbnRzLCB0aGlzIG1ldGhvZCBnZW5lcmF0ZXMgYSByZXF1ZXN0IHBheWxvYWQgZm9yIHRoZSB0YXJnZXQgQVBJLgoqIGByZXNvbHZlKClgOiBSZXNvbHZlcyB0aGUgYXBwcm9wcmlhdGUgcGx1Z2luLCBleHRyYWN0cyB0aGUgcmVsZXZhbnQgcGF0aCBhbmQgY29tcG9uZW50cywgYW5kIGdlbmVyYXRlcyBhIHJlcXVlc3QgcGF5bG9hZCBieSBjYWxsaW5nIHRoZSBhcHByb3ByaWF0ZSBtZXRob2RzLiBJdCBhbHNvIGNhbGN1bGF0ZXMgdGhlIE9wZW5BSSB1c2FnZSBhbmQgdXBkYXRlcyB0aGUgUGx1Z2luUmVzb2x1dGlvblJlc3BvbnNlLgoKVGhlIFBsdWdpblJlc29sdmVyIGNsYXNzIGlzIGRlc2lnbmVkIHRvIGJlIGEgaGlnaC1sZXZlbCBpbnRlcmZhY2UgZm9yIHdvcmtpbmcgd2l0aCBwbHVnaW5zIGluIGFuIEFJLWRyaXZlbiBjb252ZXJzYXRpb24gc3lzdGVtLiBJdHMgbWFpbiBnb2FsIGlzIHRvIHNpbXBsaWZ5IHRoZSBwcm9jZXNzIG9mIGZpbmRpbmcgdGhlIGFwcHJvcHJpYXRlIHBsdWdpbiwgZXh0cmFjdGluZyB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uLCBhbmQgZ2VuZXJhdGluZyBhIHJlcXVlc3QgcGF5bG9hZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGludGVyYWN0IHdpdGggdGhlIHRhcmdldCBBUEkubyB3b3JrIHdpdGggQUkgcGx1Z2lucyB0aGF0IGZvbGxvdyB0aGUgT3BlbkFQSSBzdGFuZGFyZCwgYW5kIGl0IHV0aWxpemVzIHRoZSBBSSdzIG5hdHVyYWwgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZyBjYXBhYmlsaXRpZXMgdG8gaWRlbnRpZnkgdGhlIGNvcnJlY3QgQVBJIHBhdGggYW5kIGdlbmVyYXRlIHJlcXVlc3QgcGF5bG9hZHMgYmFzZWQgb24gdXNlciBtZXNzYWdlcwoKVXNhZ2UgZXhhbXBsZToKCmBgYApzeXN0ZW1fbWVzc2FnZSA9IHsicm9sZSI6ICJzeXN0ZW0iLCAiY29udGVudCI6ICJVc2VyIGlkOiA0NSJ9CmNvbnRleHRfbWVzc2FnZXMgPSBbc3lzdGVtX21lc3NhZ2VdCgptZXNzYWdlID0gJ1JlbWVtYmVyIG15IG1vbSBiaXJ0aGRheSBpcyBKYW51YXJ5IDEzdGgnCgpyZXNwb25zZSA9IFBsdWdpblJlc29sdmVyKCkucmVzb2x2ZShjb250ZXh0X21lc3NhZ2VzLCBtZXNzYWdlLCAnaHR0cHM6Ly9ob3N0Ly53ZWxsLWtub3duL2FpLXBsdWdpbi5qc29uJykKcHJpbnQocmVzcG9uc2UpCmBgYAoKIyMjIEV2YWx1YXRpbmcgdGhlIHJlc3BvbnNlCgpUaGUgYFBsdWdpblJlc29sdXRpb25SZXNwb25zZWAgY2xhc3MgaXMgYSBkYXRhIGNsYXNzIHRoYXQgY291bGQgY29udGFpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGx1Z2luIHRoYXQgd2FzIHJlc29sdmVkLCAKdGhlIHBhdGggdGhhdCB3YXMgZXh0cmFjdGVkLCB0aGUgY29tcG9uZW50cyB0aGF0IHdlcmUgZXh0cmFjdGVkLCBhbmQgdGhlIHJlcXVlc3QgcGF5bG9hZCB0aGF0IHdhcyBnZW5lcmF0ZWQuIEl0IGFsc28gY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIE9wZW5BSSB1c2FnZSB0aHJvdWdob3V0IHRoZSBwcm9jZXNzLgoKCiMjIyBGcmFtZXdvcmsKClRoaXMgcHJvamVjdCB3aWxsIHByb3ZpZGUgYmFzZSBtb2RlbHMgdG8gYmUgcmV1c2VkIGluIG90aGVyIHByb2plY3RzLiAKVGhlIGJhc2UgbW9kZWxzIGFyZToKCiogYEJhc2VNZXNzYWdlYDogQmFzZSBjbGFzcyBmb3IgYWxsIG1lc3NhZ2VzCiogYEh1bWFuTWVzc2FnZWA6IENsYXNzIGZvciBtZXNzYWdlcyBmcm9tIGh1bWFucwoqIGBBaU1lc3NhZ2VgOiBDbGFzcyBmb3IgbWVzc2FnZXMgZnJvbSBBSQoqIGBBaUV2YWx1YXRpb25NZXNzYWdlYDogQ2xhc3MgZm9yIG1lc3NhZ2VzIGZyb20gQUkgZXZhbHVhdGlvbiB0aGF0IGFyZSB1c2VkIGluIGludGVybWVkaWF0ZSBzdGVwcy4gCgpUaGUgYEFpRXZhbHVhdGlvbk1lc3NhZ2VgIGFyZSB2ZXJ5IGltcG9ydGFudCBiZWNhdXNlIHRoZXkgaW1wb3NlIGEgZ3JlYXQgd2VpZ2h0IGluIHRoZSBPcGVuQUkgQVBJIHVzYWdlLgoKCgojIyMgTGltaXRhdGlvbnMKCkdpdmVuIHRoZSBkeW5hbWljIG5hdHVyZSBvZiB0aGUgcmVzb2x2ZXIsIGlkZW50aWZ5aW5nIGFuZCB1c2luZyBhbiBhcHByb3ByaWF0ZSBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20gaXMgYSBjaGFsbGVuZ2UuClNvLCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvbmx5IHN1cHBvcnRzIHVuYXV0aGVudGljYXRlZCBBUElzLgoKIyMgU2V0dGluZyB1cCB0aGUgcG9ldHJ5IGVudmlyb25tZW50CgpUbyBzZXQgdXAgdGhlIHBvZXRyeSBlbnZpcm9ubWVudCBmb3IgdGhpcyBwcm9qZWN0LCBmb2xsb3cgdGhlc2Ugc3RlcHM6CgoxLiBFbnN1cmUgeW91IGhhdmUgW1BvZXRyeV0oaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy8pIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gSWYgbm90LCB5b3UgY2FuIGluc3RhbGwgaXQgdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgoKYGBgYmFzaApjdXJsIC1zU0wgaHR0cHM6Ly9pbnN0YWxsLnB5dGhvbi1wb2V0cnkub3JnIHwgcHl0aG9uMyAtCmBgYAoKTmF2aWdhdGUgdG8gdGhlIHByb2plY3QncyByb290IGRpcmVjdG9yeSAod2hlcmUgdGhlIHB5cHJvamVjdC50b21sIGZpbGUgaXMgbG9jYXRlZCkuCgpJbnN0YWxsIHRoZSBwcm9qZWN0IGRlcGVuZGVuY2llcyB1c2luZyBQb2V0cnk6CiAgICAKYGBgYmFzaApwb2V0cnkgaW5zdGFsbApgYGAKCkFjdGl2YXRlIHRoZSB2aXJ0dWFsIGVudmlyb25tZW50IGNyZWF0ZWQgYnkgUG9ldHJ5OgoKYGBgYmFzaApwb2V0cnkgc2hlbGwKYGBgCgpZb3Ugc2hvdWxkIG5vdyBoYXZlIGEgZnVsbHkgY29uZmlndXJlZCBwb2V0cnkgZW52aXJvbm1lbnQgd2l0aCBhbGwgbmVjZXNzYXJ5IGRlcGVuZGVuY2llcyBpbnN0YWxsZWQuCgojIyBCdWlsZGluZyB0aGUgd2hlZWwgZmlsZQpUbyBidWlsZCBhIHdoZWVsIGZpbGUgZm9yIHRoaXMgcHJvamVjdCwgZm9sbG93IHRoZXNlIHN0ZXBzOgoKRW5zdXJlIHlvdSBhcmUgaW4gdGhlIHByb2plY3QncyByb290IGRpcmVjdG9yeS4KCkJ1aWxkIHRoZSB3aGVlbCBmaWxlIHVzaW5nIFBvZXRyeToKYGBgYmFzaApwb2V0cnkgYnVpbGQgLWYgd2hlZWwKYGBgCgpUaGlzIHdpbGwgZ2VuZXJhdGUgYSAud2hsIGZpbGUgaW4gdGhlIGRpc3QgZm9sZGVyIHdpdGhpbiB0aGUgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5LgoKSW1wb3J0aW5nIHRoZSB3aGVlbCBmaWxlIGludG8gYW5vdGhlciBwcm9qZWN0ClRvIGltcG9ydCB0aGUgZ2VuZXJhdGVkIHdoZWVsIGZpbGUgaW50byBhbm90aGVyIHByb2plY3QsIGZvbGxvdyB0aGVzZSBzdGVwczoKCkNvcHkgdGhlIC53aGwgZmlsZSBmcm9tIHRoZSBkaXN0IGZvbGRlciBvZiB0aGUgY3VycmVudCBwcm9qZWN0IHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgdGFyZ2V0IHByb2plY3QuCgpJbnN0YWxsIHRoZSB3aGVlbCBmaWxlIGluIHRoZSB0YXJnZXQgcHJvamVjdCB1c2luZyBwaXA6CmBgYGJhc2gKcGlwIGluc3RhbGwgPHdoZWVsLWZpbGUtbmFtZT4ud2hsCmBgYAoKWW91IGNhbiBub3cgdXNlIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoaXMgcHJvamVjdCBpbiB0aGUgdGFyZ2V0IHByb2plY3QgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgbW9kdWxlcyBhbmQgY2xhc3Nlcy4KCg== readmeEtag: '"3c43e51dd1a9b64d4d2b214b67ee46bdf0588658"' readmeLastModified: Sat, 08 Apr 2023 03:55:10 GMT repositoryId: 623116677 description: >- Project provides functionality to receive a message and try to identify which path and operation to use from an openapi spec created: '2023-04-03T18:19:54Z' updated: '2023-04-08T03:27:20Z' language: Python archived: false stars: 0 watchers: 0 forks: 0 owner: butley logo: https://avatars.githubusercontent.com/u/127567134?v=4 repoEtag: '"b4ed8b0ebc3384e435c56736f88ca12700008c25cd30c2e607b56a0250322d1b"' repoLastModified: Sat, 08 Apr 2023 03:27:20 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sudokuru/userprofile v3: true id: d448cdd7fbb737c0adcff01770e1454e repositoryMetadata: base64Readme: >- PiBbIUlNUE9SVEFOVF0gIAo+IFRoaXMgcmVwb3NpdG9yeSBpcyByZWFkLW9ubHkgLyBhcmNoaXZlZCBhbmQgd2lsbCBub3QgcmVjaWV2ZSB1cGRhdGVzLgoKIyBbVHlwZWRvYyBEb2N1bWVudGF0aW9uIFdlYnNpdGVdKGh0dHBzOi8vc3Vkb2t1cnUuZ2l0aHViLmlvL1VzZXJBY3RpdmVHYW1lcy8pPGJyPgoKCiMgRGV2ZWxvcGVyIFNldHVwCgoxLiBHZXQgdGhlIC5lbnYgZmlsZSBmcm9tIHRoZSBNU0IgYnVpbGRpbmcgbmV4dCB0byB0aGUgd2F0ZXIgZm91bnRhaW4uIAoyLiBJbnN0YWxsIERvY2tlciBvbiB5b3VyIG1hY2hpbmUuIFR1dG9yaWFsIGlzIGxpbmtlZCBiZWxvdzo8YnI+CiAgIFshW0RvY2tlciBUdXRvcmlhbF0oaHR0cHM6Ly9pbWcueW91dHViZS5jb20vdmkvMmV6TnFxYVNqcTgvMC5qcGcpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTJlek5xcWFTanE4KTxicj4KMi4gT25jZSBkb2NrZXIgaXMgaW5zdGFsbGVkLCB0aGUgTW9uZ28gaW1hZ2UgY2FuIGJlIHJ1biB3aXRoIHRoaXMgY29tbWFuZDo8YnI+Ck5vdGUgdXNlIGBgYHN1ZG9gYGAgb24gTGludXgvTWFjPGJyPgpgYGBjb25zb2xlCm5wbSBydW4gZG9ja2VyCmBgYAozLiBUaGUgYXBwIGNhbiB0aGVuIGJlIHJ1biB3aXRoIHRoZSBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHN0YXJ0CmBgYAo0LiBJbnRlZ3JhdGlvbiB0ZXN0cyBjYW4gYmUgcnVuIHdoZW4gdGhlIGFwcCBpcyBydW5uaW5nIHdpdGggdGhpcyBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHRlc3Q6aW50ZWdyYXRpb24KYGBgCg== readmeEtag: '"551645e2a891d8f25afe5c10c232d868e7f8455c"' readmeLastModified: Sat, 11 May 2024 15:14:39 GMT repositoryId: 609680674 description: null created: '2023-03-04T22:48:51Z' updated: '2024-05-11T15:14:58Z' language: TypeScript archived: true stars: 0 watchers: 0 forks: 0 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"bec15b0038009bd7309cba74931ebc413f783c21542f97c2d842862731e4fd9d"' repoLastModified: Sat, 11 May 2024 15:14:58 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/edavis25/crypto_history_api v3: true repositoryMetadata: base64Readme: >- IyBDcnlwdG8gSGlzdG9yeSBBUEkKVGhpcyBwcm9qZWN0IGV4cG9zZXMgY3J5cHRvIHByaWNlIGhpc3RvcnkgSSBwZXJzb25hbGx5IHNjcmFwZWQgZnJvbSB2YXJpb3VzIGV4Y2hhbmdlcyBpbnRvIGEgY29uc2lzdGVudCBhbmQgZXh0ZW5kYWJsZSBBUEkuIEl0IHByb3ZpZGVzIGEgbGF5ZXIgb2YgYWJzdHJhY3Rpb24gZm9yIEluZmx1eERCIG1lYXN1cmVtZW50cyB0aGF0IGhhdmUgdmFyeWluZyBzY2hlbWFzIGFuZCBkYXRhIHBvaW50cy4KCgojIyMgSnVzdCBsb29raW5nIGZvciB0aGUgQVBJIGRvY3VtZW50YXRpb24/CltWaWV3IHRoZSBBUEkgRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9lZGF2aXMyNS5naXRodWIuaW8vY3J5cHRvX2hpc3RvcnlfYXBpLykKCl9fXyAKIyMjIExvb2tpbmcgdG8gc3RhbmQgdXAgb3duIHZlcnNpb24gb2YgdGhlIHByb2plY3Q/CkRpZCB5b3UgcmFuZG9tbHkgZmVlbCBjb21wZWxsZWQgdG8gc2NyYXBlIGEgYnVuY2ggb2YgaGlzdG9yaWNhbCBjcnlwdG8gcHJpY2UgZGF0YT8gRGlkIHlvdSBhbHNvIGRlY2lkZSB0byB1c2UgYW4gb2JzY3VyZSB0aW1lc2VyaWVzIGRhdGFiYXNlLCBJbmZsdXhEQj8gRGlkIHlvdSBmaW5hbGx5IGRlY2lkZSB5b3Ugd2FudGVkIGEgY29uc2lzdGVudCBBUEkgdG8gcmV0cmlldmUgdGhlIGhvZGdlLXBvZGdlIGRhdGEgeW91IHNjcmFwZWQ/IENvb2wsIG1lIHRvby4gTGV0J3MgYmUgZnJpZW5kcy4gQWxzbywga2VlcCByZWFkaW5nIHRvIHVzZSB0aGlzIHByb2plY3QgdG8gc3RhbmQgdXAgYW4gQVBJIGZvciB5b3VyIHZlcnkgb3duIEluZmx1eERCIGRhdGEgaG9hcmQuCgojIyBQcmUgUmVxcwpUaGlzIHByb2plY3QgYXNzdW1lcyB5b3UgaGF2ZSBhbiBpbnN0YW5jZSBvZiBJbmZsdXhEQiBydW5uaW5nIGEgc2luZ2xlIGRhdGFiYXNlIHRoYXQgY29udGFpbnMgZGlmZmVyZW50ICJtZWFzdXJlbWVudHMiIChJbmZsdXggdGVybWlub2xvZ3kpIGZvciByZWNvcmRpbmcgcHJpY2VzIGZyb20gZGlmZmVyZW50IGV4Y2hhZ2VzLiBGb3IgZXhhbXBsZSwgbXkgZGF0YWJhc2UgY29udGFpbnMgT3Blbi9DbG9zZS9IaWdoL0xvdy9ldGMgZGF0YSBmb3IgdGhlIFBvbG9uaWV4IGV4Y2hhbmdlIHVuZGVyIGEgc2luZ2xlIEluZmx1eCBtZWFzdXJlbWVudC4gTWVhc3VyZW1lbnRzIGNhbiBiZSBsb29zZWx5IHRob3VnaHQgb2YgYXMgdGFibGVzIGFuZCBpbiB0aGlzIGNhc2UsIG91ciB0YWJsZSBjb250YWlucyBoaXN0b3JpYyBwcmljZSBkYXRhIGZyb20gdGhlIFBvbG9uaWV4IGV4Y2hhbmdlIChhbmQgb25seSBQb2xvbmlleCkuIERpZmZlcmVudCBtZWFzdXJlbWVudHMgY2FuIGJlIGNyZWF0ZWQgZm9yIGRpZmZlcmVudCBleGNoYW5nZXMgYW5kIGVhY2ggcmVjb3JkIHNob3VsZCBjb250YWluIGEgdGltZXN0YW1wLCB3aGF0ZXZlciBwcmljZSBkYXRhIHlvdSB3YW50LCBhbmQgYSB0YWcgZm9yIHRoZSB0cmFkaW5nICJwYWlyIiAoYnRjX3VzZCkuCgpGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnRlZCB0byBnZXQgcHJpY2UgaGlzdG9yeSBmb3IgYnRjX3VzZCBvbiB0aGUgUG9sb25pZXggZXhjaGFuZ2UsIHlvdSBjYW4gaW1hZ2luZSBhbiBTUUwgcXVlcnk6IGBTRUxFQ1QgKiBGUk9NIHBvbG9uaWV4X2V4Y2hhbmdlIFdIRVJFIHBhaXIgPSAnYnRjX3VzZCdgIGZvciB0aGlzIHNldHVwLgoKVExEUjsgQ3JlYXRlIGEgc2luZ2xlIEluZmx1eCBkYXRhYmFzZSB3aXRoIGRpZmZlcmVudCBtZWFzdXJlbWVudHMgZm9yIGV2ZXJ5IGRpZmZlcmVudCBleGNoYW5nZSdzIHByaWNlIGRhdGEuIEVhY2ggcmVjb3JkIG5lZWRzIHRvIGNvbnRhaW4gd2hhdGV2ZXIgcHJpY2UgZGF0YSB5b3Ugd2FudCBhbmQgYW4gW0luZmx1eCB0YWddKGh0dHBzOi8vZG9jcy5pbmZsdXhkYXRhLmNvbS9pbmZsdXhkYi92MS44L2NvbmNlcHRzL2dsb3NzYXJ5LyN0YWcta2V5KSByZWZlcmVuY2luZyB0aGUgdHJhZGluZyBwYWlyLiBUaGlzIHByb2plY3QgYXNzdW1lcyB5b3UgbmFtZWQgeW91ciB0YWc6IGBwYWlyYCBidXQgdGhpcyBpcyBjdXN0b21pemFibGUgaWYgeW91IGFyZSBhIG1hc29jaGlzdC4KCiMjIEluc3RhbGxhdGlvbgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeTxicj5gZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9lZGF2aXMyNS9jcnlwdG9faGlzdG9yeV9hcGkuZ2l0YAoyLiBJbnN0YWxsIHByb2plY3QgZGVwZW5kZW5jaWVzPGJyPmBjb21wb3NlciBpbnN0YWxsYAozLiBDcmVhdGUgeW91ciBlbnZpcm9ubWVudCdzIGNvbmZpZ3VyYXRpb24gZmlsZQo8YnI+YGNwIC4vLmVudi5leGFtcGxlIC4vLmVudmAKPGJyPjxicj4gVGhlIG1vc3QgaW1wb3J0YW50IHBhcnQgb2YgdGhpcyBzdGVwIGlzIGNvbmZpZ3VyaW5nIHlvdXIgY29ubmVjdGlvbiB0byBJbmZsdXhEQjoKYGBgCklORkxVWERCX0hPU1Q9MTI3LjAuMC4xCklORkxVWERCX1BPUlQ9ODA4NgpJTkZMVVhEQl9TU0w9ZmFsc2UKSU5GTFVYREJfVkVSSUZZU1NMPWZhbHNlCklORkxVWERCX1RJTUVPVVQ9MApJTkZMVVhEQl9EQk5BTUU9Y3J5cHRvX3ByaWNlX2hpc3RvcnkgIyBBbGwgbWVhc3VyZW1lbnRzIG11c3QgYmUgaW5zaWRlIHNpbmdsZSBkYXRhYmFzZQpgYGAKNC4gUnVuIHRoZSBMYXJhdmVsIG1pZ3JhdGlvbnMuCjxicj5gcGhwIGFydGlzYW4gbWlncmF0ZWAKCiMjIFNldHVwIEluZmx1eERCIG1lYXN1cmVtZW50cyBmb3IgdGhlIEFQSQpOb3cgdGhhdCB5b3VyIGVudmlyb25tZW50IGlzIHNldHVwLCB3ZSBjYW4gYmVnaW4gbWFwcGluZyBvdXIgSW5mbHV4REIgbWVhc3VyZW1lbnRzIGZvciB1c2UgaW4gdGhlIEFQSS4gVG8gZG8gdGhpcywgd2Ugd2lsbCBuZWVkIHRvIGRvIGEgZmV3IHRoaW5nczoKMS4gQ3JlYXRlIGEgbmV3IHNlcnZpY2UgdGhhdCBmdWxmaWxscyB0aGUgYEluZmx1eERCTWVhc3VyZW1lbnRgIGNvbnRyYWN0CjIuIENyZWF0ZSBbSlNPTiByZXNvdXJjZXNdKGh0dHBzOi8vbGFyYXZlbC5jb20vZG9jcy84LngvZWxvcXVlbnQtcmVzb3VyY2VzKSBmb3Igb3VyIHJlc3BvbnNlIGRhdGEgc2NoZW1hcwozLiBNYXAgb3VyIG5ldyBzZXJ2aWNlIGNsYXNzIGluc2lkZSB0aGUgYGluZmx1eGRiLnBocGAgY29uZmlnIGZpbGUuCgojIyMjIDEuIENyZWF0aW5nIHRoZSBzZXJ2aWNlCkV2ZXJ5IEluZmx1eERCIG1lYXN1cmVtZW50IHdpbGwgbmVlZCBpdHMgb3duIHNlcnZpY2UgaW1wbGVtZW50aW5nIHRoZSBgSW5mbHV4REJNZWFzdXJlbWVudGAgY29udHJhY3Qgc28gdGhhdCBpdCBjYW4gYmUgZHluYW1pY2FsbHkgaW5qZWN0ZWQgaW50byB0aGUgY29udHJvbGxlcnMuIEFzIGEgc3RhcnRpbmcgcG9pbnQsIHlvdSBjYW4gY3JlYXRlIGEgY2xhc3MgdGhhdCBleHRlbmRzIHRoZSBgQmFzZU1lYXN1cmVtZW50U2VydmljZWAgd2hpY2ggd2lsbCBmdWxmaWxsIGEgbWFqb3JpdHkgb2YgdGhlIGNvbnRyYWN0J3MgZnVuY3Rpb25hbGl0eS4KPGJyPgpgYGAKY2xhc3MgUG9sb25pZXhNZWFzdXJlbWVudFNlcnZpY2UgZXh0ZW5kcyBCYXNlTWVhc3VyZW1lbnRTZXJ2aWNlCnsKICAgIC8vIHRoZSBuYW1lIG9mIHRoZSBtZWFzdXJlbWVudCBpbnNpZGUgb2YgSW5mbHV4REIKICAgIHB1YmxpYyBmdW5jdGlvbiBtZWFzdXJlbWVudCgpOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJ3BvbG9uaWV4X2V4Y2hhbmdlJzsKICAgIH0KCiAgICAvLyBhIGh1bWFuLWZyaWVuZGx5IHZlcnNpb24gb2YgdGhlIG1lYXN1cmVtZW50J3MgbmFtZSBmb3IgZGlzcGxheSBwdXJwb3NlcwogICAgcHVibGljIGZ1bmN0aW9uIGRpc3BsYXlOYW1lKCk6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAnUG9sb25pZXgnOwogICAgfQogICAgCiAgICAvLyByZXNwb25zaWJsZSBmb3IgdHJhbnNmb3JtaW5nIHRoZSBkYXRhIGZyb20gdGhlIG1lYXN1cmVtZW50J3Mgc2NoZW1hIGludG8gYSBzdGFuZGFyZGl6ZWQgSlNPTiByZXNvdXJjZS4KICAgIHB1YmxpYyBmdW5jdGlvbiBidWlsZFJlc291cmNlKGFycmF5ICRkYXRhKTogSnNvblJlc291cmNlCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBQb2xvbmlleE1lYXN1cmVtZW50KCRkYXRhKTsKICAgIH0KCiAgICAvLyByZXNwb25zaWJsZSBmb3IgYnVpbGRpbmcgYSBjb2xsZWN0aW9uIG9mIG11bHRpcGxlIEpTT04gcmVzb3VyY2VzLgogICAgcHVibGljIGZ1bmN0aW9uIGJ1aWxkUmVzb3VyY2VDb2xsZWN0aW9uKGFycmF5ICRkYXRhLCBib29sICRoYXNfbmV4dF9wYWdlKTogUmVzb3VyY2VDb2xsZWN0aW9uCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBQb2xvbmlleE1lYXN1cmVtZW50Q29sbGVjdGlvbigkZGF0YSwgJGhhc19uZXh0X3BhZ2UpOwogICAgfQogICAKfQpgYGAKCkF0IHRoZSB2ZXJ5IGxlYXN0LCBlYWNoIHNlcnZpY2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCB0aGUgbWV0aG9kcyBzaG93biBhYm92ZSBpbmRpdmlkdWFsbHkuIElmIHlvdSBtb3N0bHkgZm9sbG93IHRoZSBJbmZsdXhEQiBzZXR1cCBleHBsYWluZWQgYWJvdmUsIHlvdSBjYW4gcmVseSBvbiB0aGUgYEJhc2VNZWFzdXJlbWVudFNlcnZpY2VgIHRvIGZ1bGZpbGwgbW9zdCBvZiB0aGUgY29udHJhY3QuIElmIHlvdSBuZWVkIG1vcmUgY3VzdG9taXphdGlvbiwgeW91IGNhbiBvdmVycmlkZSB0aGUgZnVuY3Rpb25zIGluc2lkZSB0aGUgYEJhc2VNZWFzdXJlbWVudFNlcnZpY2VgIGFzIG5lY2Vzc2FyeS4KCiMjIyMgMi4gQ3JlYXRpbmcgdGhlIEpTT04gcmVzb3VyY2VzCklmIHlvdSBub3RpY2VkIGluIHRoYXQgbGFzdCBzdGVwIHRoYXQgd2Ugd2VyZSBidWlsZGluZyByZXNvdXJjZXMgdGhhdCBkaWRuJ3QgZXhpc3QgeWV0LCBnb29kIGV5ZXMuIExldCdzIGRvIHRoYXQgbm93LgoKSWYgeW91IGFyZSBsaWtlIG1lLCB5b3UgbWF5IGhhdmUgdmFyaW91cyBtZWFzdXJlbWVudHMgZWFjaCBjb250YWluaW5nIHZhcnlpbmcgZGF0YSBwb2ludHMgd2l0aCBkaWZmZXJlbnQgbmFtZXMuIFRoZSBtYWluIHB1cnBvc2Ugb2YgY3JlYXRpbmcgdGhlc2UgcmVzb3VyY2VzIGlzIHRvIHRyYW5zZm9ybSBkYXRhIGZyb20gb3VyIEluZmx1eERCIG1lYXN1cmVtZW50IHNjaGVtYXMgaW50byBjb25zaXN0ZW50IEFQSSByZXNwb25zZXMuIFRoZXJlIGlzbid0IHJlYWxseSBhbnl0aGluZyBmYW5jeSBnb2luZyBvbiBoZXJlLCB3ZSBqdXN0IG5lZWQgdG8gbWFwIHRoZSBkYXRhIHdlIHdhbnQgZnJvbSBJbmZsdXhEQiBpbnRvIFtMYXJhdmVsJ3MgbmF0aXZlIEFQSSBSZXNvdXJjZXNdKGh0dHBzOi8vbGFyYXZlbC5jb20vZG9jcy84LngvZWxvcXVlbnQtcmVzb3VyY2VzKS4KCmBgYApjbGFzcyBQb2xvbmlleE1lYXN1cmVtZW50IGV4dGVuZHMgSnNvblJlc291cmNlCnsKICAgIC8vIFRyYW5zZm9ybSB0aGUgcmVzb3VyY2UgaW50byBhbiBhcnJheSB1c2VkIGluIHRoZSByZXNwb25zZS4KICAgIHB1YmxpYyBmdW5jdGlvbiB0b0FycmF5KCRyZXF1ZXN0KQogICAgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICd0aW1lJyAgID0+IChzdHJpbmcpICR0aGlzLT5yZXNvdXJjZVsndGltZSddLAogICAgICAgICAgICAncGFpcicgICA9PiAoc3RyaW5nKSAkdGhpcy0+cmVzb3VyY2VbJ3BhaXInXSwKICAgICAgICAgICAgJ29wZW4nICAgPT4gKGZsb2F0KSAkdGhpcy0+cmVzb3VyY2VbJ29wZW4nXSwKICAgICAgICAgICAgJ2Nsb3NlJyAgPT4gKGZsb2F0KSAkdGhpcy0+cmVzb3VyY2VbJ2Nsb3NlJ10sCiAgICAgICAgICAgICdsb3cnICAgID0+IChmbG9hdCkgJHRoaXMtPnJlc291cmNlWydsb3cnXSwKICAgICAgICAgICAgJ2hpZ2gnICAgPT4gKGZsb2F0KSAkdGhpcy0+cmVzb3VyY2VbJ2hpZ2gnXSwKICAgICAgICAgICAgJ3ZvbHVtZV9mcm9tJyA9PiAoZmxvYXQpICR0aGlzLT5yZXNvdXJjZVsndm9sdW1lJ10sCiAgICAgICAgICAgICd2b2x1bWVfdG8nID0+IChmbG9hdCkgJHRoaXMtPnJlc291cmNlWydxdW90ZV92b2x1bWUnXSwKICAgICAgICBdOwogICAgfQp9CmBgYAoKLy8gdG9kbyBmaWxsIGluIHNvbWUgaW5mbyBhYm91dCBjcmVhdGluZyBjb2xsZWN0aW9ucyB3aXRoIHBhZ2luYXRpb24gdXNpbmcgdGhlIHRyYWl0cy4KCiMjIyMgMy4gQ29uZmlndXJhdGlvbgpUaGUgZmluYWwgc3RlcCBpcyBtYXBwaW5nIG91ciBzZXJ2aWNlIHRvIGFuIGVuZHBvaW50IGluIHRoZSBgaW5mbHV4ZGIucGhwYCBjb25maWcgZmlsZS4gTmF2aWdhdGUgdG8gdGhlIGZpbGUgYW5kIGxvb2sgZm9yIHRoZSBgbWVhc3VyZW1lbnRzYCBhcnJheS4gVGhpcyBhcnJheSB3aWxsIGNvbnRhaW4ga2V5PT52YWx1ZSBwYWlycyB3aGVyZSB5b3VyIG1lYXN1cmVtZW50IGlzIHRoZSBrZXkgYW5kIHRoZSBuYW1lc3BhY2Ugb2YgeW91ciBzZXJ2aWNlIGNsYXNzIGlzIHRoZSB2YWx1ZToKYGBgCi8qCiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHwgTWVhc3VyZW1lbnRzCiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHwgLi4uPHJlbW92ZWQgZm9yIGJyZXZpdHk+Li4uCiovCiAnbWVhc3VyZW1lbnRzJyA9PiBbCiAgICAncG9sb25pZXhfZXhjaGFuZ2UnID0+IFxBcHBcU2VydmljZXNcUG9sb25pZXhNZWFzdXJlbWVudFNlcnZpY2U6OmNsYXNzLAogXSwKYGBgCkJvb20hIE9uY2UgeW91ciBtYXBwaW5nIGhhcyBiZWVuIGNyZWF0ZWQsIHlvdSBjYW4gdXNlIHRoZSBBUEkgdG8gcXVlcnkgeW91ciBkYXRhIHVzaW5nIHRoZSBrZXkgbmFtZSBhcyB5b3VyIGVuZHBvaW50Ogo8YnI+IGAxMjcuMC4wLjEvYXBpL3BvbG9uaWV4X2V4Y2hhbmdlL3BhaXJzYAoKIyMjIyBSb3V0ZSBhbGlhc2VzCkkga25vdyB3aGF0IHlvdSdyZSB0aGlua2luZywgdGhhdCBVUkwgaXMgdWdseT8gV2VsbCBJIHRob3VnaHQgc28gdG9vLCBhbmQgaW5zdGVhZCBvZiBgcG9sb25pZXhfZXhjaGFuZ2VgIHdvdWxkbid0IGl0IGJlIGNsZWFuZXIganVzdCBiZWluZzogYC9hcGkvcG9sb25pZXgvcGFpcnNgPyBPZiBjb3Vyc2UgaXQgd291bGQuIFRvIGRvIHRoaXMsIHlvdSBjYW4gdXNlIHRoZSBgcm91dGVfYWxpYXNlc2AgYXJyYXkgaW4gdGhlIHNhbWUgY29uZmlnIGZpbGUuIFRoaXMgYXJyYXkgd2lsbCBhZ2FpbiBiZSBrZXk9PnBhaXIgdmFsdWVzIHdoZXJlIHRoZSBrZXkgYmVjb21lcyB0aGUgbmV3IGVuZHBvaW50IGFuZCB0aGUgdmFsdWUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIG1lYXN1cmVtZW50IG5hbWUuCmBgYAovKgp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfCBSb3V0ZSBPdmVycmlkZXMKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgLi4uPHJlbW92ZWQgZm9yIGJyZXZpdHk+Li4uCiovCnJvdXRlX2FsaWFzZXMnID0+IFsKICAgICdwb2xvbmlleCcgPT4gJ3BvbG9uaWV4X2V4Y2hhbmdlJwpdCmBgYApXaXRoIHRoaXMgYWxpYXMsIHdlIGNhbiBub3cgdXNlIHRoZSBBUEkgdG8gcXVlcnkgdGhlIGAxMjcuMC4wLjEvYXBpL3BvbG9uaWV4L3BhaXJzYCBlbmRwb2ludCBpbnN0ZWFkIGFuZCByZWdhbGUgaW4gdGhlIGJlYXV0eSBvZiB0aGUgVVJMLgoKIyMgVGhlIGVuZCAuLi4/ClRoaXMgaXMgYWxsIHN0aWxsIHZlcnkgbXVjaCBhIHdvcmsgaW4gcHJvZ3Jlc3MgYW5kIEknbSBob3BpbmcgdG8gYWRkIHByaWNlIGhpc3RvcnkgZm9yIGRpZmZlcmVudCBleGNoYW5nZXMuIElmIHlvdSB3ZXJlIGNyYXp5IGVub3VnaCB0byBhY3R1YWxseSByZWFkIHRocm91Z2ggdGhpcyBzY2F0dGVyLWJyYWluZWQgZG9jdW1lbnRhdGlvbiBhbmQgZW5kIHVwIGNyZWF0aW5nIHlvdXIgb3duIGV4Y2hhbmdlIHNlcnZpY2VzLCBmZWVsIGZyZWUgdG8gb3BlbiBhIFBSIQoK readmeEtag: '"bdb2a5065519ca052ad0d93b25ef6a74ebb55c20"' readmeLastModified: Sat, 19 Jun 2021 09:16:24 GMT repositoryId: 375711453 description: >- API for retrieving personally scraped historic crypto price data from various exchanges. created: '2021-06-10T13:41:39Z' updated: '2023-03-13T07:17:39Z' language: PHP archived: false stars: 0 watchers: 2 forks: 1 owner: edavis25 logo: https://avatars.githubusercontent.com/u/14096584?v=4 repoEtag: '"aa4aad89a2e4c6021b0108c242077613fe03a4e449afec2db3f1a0b6ff5cde4c"' repoLastModified: Mon, 13 Mar 2023 07:17:39 GMT foundInMaster: true category: Server Implementations id: 6f7d4c178d5853c9a7a96bc6d029137e - source: openapi3 tags repository: https://github.com/ekoulemaneng/openapi-schema-retriever v3: true id: 5f0055e058a71ad791dc6310d364782b repositoryMetadata: base64Readme: >- IyBPcGVuYXBpIFNjaGVtYSBSZXRyaWV2ZXIKClR5cGVzY3JpcHQgcGFja2FnZSB0byBnZXQgYW4gT3BlbkFwaS1zcGVjaWZpY2F0aW9uLWNvbXBsaWFudCBkZXJlZmVyZW5jZWQgb2JqZWN0IGZyb20gYW4gb2JqZWN0IG9yIGFuIGpzb24sIHlhbWwgb3IgeW1sIGZpbGUgcGF0aCBzdHJpbmcuIEZvciAzLjEueCBhbmQgMy4wLnggT3BlbkFQSSB2ZXJzaW9ucy4KCiMjIEluc3RhbGxhdGlvbgpgYGB0eXBlc2NyaXB0Cm5wbSBpbnN0YWxsIG9wZW5hcGktc2NoZW1hLXJldHJpZXZlciAKYGBgCm9yCmBgYHR5cGVzY3JpcHQKeWFybiBhZGQgb3BlbmFwaS1zY2hlbWEtcmV0cmlldmVyCmBgYAoKIyMgVXNhZ2UKYGBgdHlwZXNjcmlwdAppbXBvcnQgc2NoZW1hUmV0cmlldmVyIGZyb20gJ29wZW5hcGktc2NoZW1hLXJldHJpZXZlcicKCmNvbnN0IG1haW4gPSBhc3luYyAoKSA9PiB7CgogICAgLyogc2NoZW1hUmV0cmlldmVyICBnZXRzLCBjaGVja3MgYW5kIHBhcnNlcyB0aGUgb3BlbmFwaSBzcGVjaWZpY2F0aW9uIHRoYXQgY2FuIGJlIGFuIG9iamVjdCBvciBhbiBmaWxlIHBhdGggc3RyaW5nLgogICAgICogSWYgdGhlIHNwZWNpZmljYXRpb24gaW5wdXQgaXMgYSBmaWxlIHBhdGggc3RyaW5nLCBhIHNlY29uZCBhcmd1bWVudCBzdGFuZGluZyBmb3IgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgaXMgbWFuZGF0b3J5LgogICAgICogV2UgcmVjb21tZW5kIHRvIHVzZSAnX19kaXJuYW1lJyBhcyBzZWNvbmQgYXJndW1lbnQuCiAgICAgKiBUaGUgZmlsZSBtdXN0IGJlIGVpdGhlciBhIGpzb24sIGEgeWFtbCBvciBhIHltbCBmaWxlLiAKICAgICAqIHNjaGVtYVJldHJpZXZlciByZXR1cm5zIGFuIGRlcmVmZXJlbmNlZCBvYmplY3QgaW4gYWNjb3JkYW5jZSB3aXRoIE9wZW5BUEkgc2NwZWNpZmljYXRpb24uCiAgICAqLwogICAgY29uc3Qgc2NoZW1hID0gYXdhaXQgc2NoZW1hUmV0cmlldmVyKCcuL29wZW5hcGkueWFtbCcsIF9fZGlybmFtZSkKCiAgICBjb25zb2xlLmxvZyhzY2hlbWEpIC8qID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuYXBpOiAnMy4xLjAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLi4uLi4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKi8KfQoKbWFpbigpCmBgYAoKIyMgTGljZW5zZQpUaGlzIHBhY2thZ2UgaXMgbGljZW5zZWQgdW5kZXIgdGhlIFtNSVQgTGljZW5zZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQpLgoKIyMgQ29udGFjdApJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIG9yIGlzc3VlcywgcGxlYXNlIGNvbnRhY3QgdGhlIHBhY2thZ2UgbWFpbnRhaW5lciBhdCBla291bGVtYW5lbmdAZ21haWwuY29tLgo= readmeEtag: '"e7ace22fa28615c3b4c8fe6d8f96c2812af10026"' readmeLastModified: Sat, 06 May 2023 18:52:26 GMT repositoryId: 636995451 description: >- Typescript package to get an OpenApi-specification-compliant dereferenced object from an object or an json, yaml or yml file path string. For 3.1.x and 3.0.x OpenAPI versions. created: '2023-05-06T07:25:03Z' updated: '2023-05-06T12:22:05Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: ekoulemaneng logo: https://avatars.githubusercontent.com/u/12666431?v=4 license: MIT repoEtag: '"44eca18590e3833df76eac10e98cd650057512f84568c2235d1ec1157cebb148"' repoLastModified: Sat, 06 May 2023 12:22:05 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/afshinparhizkari/issuetracker v3: true repositoryMetadata: base64Readme: >- IyBpc3N1ZXRyYWNrZXIKc29tZSBzaW1wbGUgcHJvamVjdCBmb3IgdHJhY2tpbmcgaXNzdWVzKHN0b3JpZXMgYW5kIGJ1Z3MpCg== readmeEtag: '"a8720708490c9e35797e440f01d30d7737e96e5c"' readmeLastModified: Wed, 08 Nov 2023 11:20:54 GMT repositoryId: 446873964 description: some simple project for tracking issues(stories and bugs) created: '2022-01-11T15:22:37Z' updated: '2022-05-05T07:26:46Z' language: Java archived: false stars: 0 watchers: 1 forks: 1 owner: AfshinParhizkari logo: https://avatars.githubusercontent.com/u/32636285?v=4 license: Apache-2.0 repoEtag: '"f0db7dc58d26aeb35913bed13fa4378f61f7ce368f92f142ca9dfa34c65cd850"' repoLastModified: Thu, 05 May 2022 07:26:46 GMT foundInMaster: true category: - Low-level Tooling - Server - Server Implementations id: edae04f136ed5f6a77f930858ab72307 - source: https://openapi.tools/ name: ReadMe category: Documentation link: https://readme.com language: SaaS source_description: Build beautiful, personalized, interactive developer hubs. 🦉 v2: true v3: true v3_1: true foundInMaster: true id: 8959152e98349ff9aac5f6154d972854 - source: openapi3 tags repository: https://github.com/yo-mah-ya/backendapp-with-openapiv3-postgresql v3: true id: 5afcf31043674dac8b7f7cd69ef58990 repositoryMetadata: base64Readme: >- IyBJbnRyb2R1Y3Rpb25zCgppbnN0YWxsIHBhY2thZ2VzIGFuZCBjb21waWxlIGFsbCB3b3Jrc3BhY2UgcGFja2FnZXMKCmBgYHNoCnlhcm4gaW5zdGFsbApgYGAKClRoZSBjb21tb24gcGFja2FnZSBpcyBsaW5rZWQgYXMgYSBzeW1ib2xpYyBsaW5rCmNoZWNrIGl0IG91dAoKYGBgCmNkIC4vbm9kZV9tb2R1bGVzL0BiYWNrZW5kCmxuIC1zIC4uLy4uL3BhY2thZ2VzL2NvbW1vbiAuCmBgYAoKIyBsb2NhbCBkZXZlbG9wbWVudAoKIyMgY29tbW9uCgpjcmVhdGUgdGFibGVzIGFuZCBpbnNlcnQgc2FtcGxlIGRhdGEKCmBgYApzZXJ2aWNlIHBvc3RncmVzcWwgc3RhcnQKLi9yZXNvdXJjZXMvY29tbW9uL2RkbC5zaApgYGAKCiMjIGFwaQoKIyMjIGJ1aWxkIGFuZCBzdGFydCBvciBkbyB0ZXN0cwoKYGBgCnlhcm4gd29ya3NwYWNlIEBiYWNrZW5kL2FwaSBidWlsZAp5YXJuIHdvcmtzcGFjZSBAYmFja2VuZC9hcGkgc3RhcnQKeWFybiB3b3Jrc3BhY2UgQGJhY2tlbmQvYXBpIHRlc3QKYGBgCgojIyMgd2l0aCBlbnZpcm9ubWVudCB2YWx1ZXMKCmBgYAouL3Jlc291cmNlcy9hcGkvbG9jYWxfZGV2LnNoIGNvbXBpbGUKLi9yZXNvdXJjZXMvYXBpL2xvY2FsX2Rldi5zaCBzdGFydAouL3Jlc291cmNlcy9hcGkvbG9jYWxfZGV2LnNoIHRlc3QKYGBgCgojIyMgYWRkIGxpYnJhcmllcyB0byB0aGUgZW50aXJlIHByb2plY3QKCmBgYAp5YXJuIGFkZCBgc29tZSBwYWNrYWdlYCAtVwpvcgp5YXJuIGFkZCAtLWRldiBgc29tZSBwYWNrYWdlYCAtVwpgYGAKCiMjIyBPcGVuQVBJIGRvY3MKCm9wZW4gc2hvd24gYmVsb3cgb24gdGhlIFdlYiBicm93c2VyCgpgYGAKbG9jYWxob3N0OjMwMDAvYXBpLWRvY3MvIwpgYGAKCiMgRGlyZWN0b3JpZXMKCnRyZWUgLUkgIm5vZGVfbW9kdWxlc3xidWlsZCIK readmeEtag: '"73eab30e10700867d04993b37d8b74614f9b7502"' readmeLastModified: Fri, 17 Nov 2023 04:49:23 GMT repositoryId: 437560745 description: BackendApp with OpenAPIV3 PostgreSQL implemented with TypeScript created: '2021-12-12T13:59:56Z' updated: '2023-01-27T05:53:16Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: Yo-mah-Ya logo: https://avatars.githubusercontent.com/u/59109232?v=4 repoEtag: '"68e5702c327a43a3a445266d67adb53eba5876877d786ed9a979ba6699030e70"' repoLastModified: Fri, 27 Jan 2023 05:53:16 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/thesis-system/thesis-images v3: true id: c92d7d67a5d3c331bd1702b10fd7fda8 repositoryMetadata: base64Readme: IyB0aGVzaXMtaW1hZ2Vz readmeEtag: '"47dba36aca3c977235d0b448e1bcab267848b51b"' readmeLastModified: Thu, 19 Jan 2023 06:55:34 GMT repositoryId: 590771118 description: Сервис для работы с изображениями для "Thesis System" created: '2023-01-19T06:55:34Z' updated: '2023-01-20T14:07:45Z' language: null archived: false stars: 0 watchers: 0 forks: 0 owner: thesis-system logo: https://avatars.githubusercontent.com/u/121764583?v=4 repoEtag: '"30da6a5a04e92661dd167fa13a590781b586f8f890e8a399f47f48ec8398afc0"' repoLastModified: Fri, 20 Jan 2023 14:07:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/mulekick/ocr-argent-bank-frontend v3: true id: c15db9c54d4b423c100a74f71b262916 repositoryMetadata: base64Readme: >- IyBDcmVhdGUgUmVhY3QgQXBwIGN1c3RvbWl6YXRpb25zIDoKMS4gdXNlIHRoZSByZWR1eCB0ZW1wbGF0ZSBmb3IgY3JlYXRlLXJlYWN0LWFwcApgYGBiYXNoCm5weCBjcmVhdGUtcmVhY3QtYXBwIG9jci1hcmdlbnQtYmFuay1mcm9udGVuZCAtLXRlbXBsYXRlIHJlZHV4CmBgYAoyLiByZW1vdmUgdXNlbGVzcyBkZXBlbmRlbmNpZXMKYGBgYmFzaApucG0gdW5pbnN0YWxsIC0tc2F2ZSBAdGVzdGluZy1saWJyYXJ5L2plc3QtZG9tIEB0ZXN0aW5nLWxpYnJhcnkvcmVhY3QgQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50IHdlYi12aXRhbHMKYGBgCjMuIGluc3RhbGwgcHJvamVjdCBkZXYgZGVwZW5kZW5jaWVzCmBgYGJhc2gKbnBtIGluc3RhbGwgLS1zYXZlLWRldiBAbXVsZWtpY2svZXNsaW50LWNvbmZpZy1tdWxlc2xpbnQKYGBgCjQuIGluc3RhbGwgcHJvamVjdCBkZXBlbmRlbmNpZXMKYGBgYmFzaApucG0gaW5zdGFsbCAtLXNhdmUgcmVhY3Qtcm91dGVyLWRvbQpgYGAKNS4gdXBkYXRlIHBhY2thZ2UuanNvbiA6CiAgIC0gYWRkIGN1c3RvbSBwYWNrYWdlLmpzb24gc2NyaXB0cwogICAtIHJlbW92ZSBgYGBlc2xpbnRDb25maWdgYGAga2V5CiAgIC0gc3dpdGNoIHRvIEVTTSBtb2R1bGVzIHVzZSA6YGBgInR5cGUiOiAibW9kdWxlImBgYAogICAtIGFkZCBpbmZvcm1hdGlvbmFsIGVudHJpZXMKNi4gYWRkIGN1c3RvbSBgYGAuZXNsaW50cmMuanNvbmBgYCBmaWxlCjcuIGZpbGUgc3lzdGVtIGNsZWFudXAKYGBgYmFzaApybSBzcmMvc2V0dXBUZXN0cy5qcyBzcmMvcmVwb3J0V2ViVml0YWxzLmpzIHNyYy9BcHAudGVzdC5qcyBzcmMvZmVhdHVyZXMvY291bnRlci9jb3VudGVyU2xpY2Uuc3BlYy5qcyBwdWJsaWMvbG9nbyogcHVibGljL21hbmlmZXN0Lmpzb24gcHVibGljL3JvYm90cy50eHQKYGBgCgojIEdldHRpbmcgU3RhcnRlZCB3aXRoIENyZWF0ZSBSZWFjdCBBcHAgYW5kIFJlZHV4CgpUaGlzIHByb2plY3Qgd2FzIGJvb3RzdHJhcHBlZCB3aXRoIFtDcmVhdGUgUmVhY3QgQXBwXShodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcCksIHVzaW5nIHRoZSBbUmVkdXhdKGh0dHBzOi8vcmVkdXguanMub3JnLykgYW5kIFtSZWR1eCBUb29sa2l0XShodHRwczovL3JlZHV4LXRvb2xraXQuanMub3JnLykgdGVtcGxhdGUuCgojIyBBdmFpbGFibGUgU2NyaXB0cwoKSW4gdGhlIHByb2plY3QgZGlyZWN0b3J5LCB5b3UgY2FuIHJ1bjoKCiMjIyBgbnBtIHN0YXJ0YAoKUnVucyB0aGUgYXBwIGluIHRoZSBkZXZlbG9wbWVudCBtb2RlLlwKT3BlbiBbaHR0cDovL2xvY2FsaG9zdDozMDAwXShodHRwOi8vbG9jYWxob3N0OjMwMDApIHRvIHZpZXcgaXQgaW4geW91ciBicm93c2VyLgoKVGhlIHBhZ2Ugd2lsbCByZWxvYWQgd2hlbiB5b3UgbWFrZSBjaGFuZ2VzLlwKWW91IG1heSBhbHNvIHNlZSBhbnkgbGludCBlcnJvcnMgaW4gdGhlIGNvbnNvbGUuCgojIyMgYG5wbSB0ZXN0YAoKTGF1bmNoZXMgdGhlIHRlc3QgcnVubmVyIGluIHRoZSBpbnRlcmFjdGl2ZSB3YXRjaCBtb2RlLlwKU2VlIHRoZSBzZWN0aW9uIGFib3V0IFtydW5uaW5nIHRlc3RzXShodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9jcmVhdGUtcmVhY3QtYXBwL2RvY3MvcnVubmluZy10ZXN0cykgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMgYG5wbSBydW4gYnVpbGRgCgpCdWlsZHMgdGhlIGFwcCBmb3IgcHJvZHVjdGlvbiB0byB0aGUgYGJ1aWxkYCBmb2xkZXIuXApJdCBjb3JyZWN0bHkgYnVuZGxlcyBSZWFjdCBpbiBwcm9kdWN0aW9uIG1vZGUgYW5kIG9wdGltaXplcyB0aGUgYnVpbGQgZm9yIHRoZSBiZXN0IHBlcmZvcm1hbmNlLgoKVGhlIGJ1aWxkIGlzIG1pbmlmaWVkIGFuZCB0aGUgZmlsZW5hbWVzIGluY2x1ZGUgdGhlIGhhc2hlcy5cCllvdXIgYXBwIGlzIHJlYWR5IHRvIGJlIGRlcGxveWVkIQoKU2VlIHRoZSBzZWN0aW9uIGFib3V0IFtkZXBsb3ltZW50XShodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9jcmVhdGUtcmVhY3QtYXBwL2RvY3MvZGVwbG95bWVudCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMgYG5wbSBydW4gZWplY3RgCgoqKk5vdGU6IHRoaXMgaXMgYSBvbmUtd2F5IG9wZXJhdGlvbi4gT25jZSB5b3UgYGVqZWN0YCwgeW91IGNhbid0IGdvIGJhY2shKioKCklmIHlvdSBhcmVuJ3Qgc2F0aXNmaWVkIHdpdGggdGhlIGJ1aWxkIHRvb2wgYW5kIGNvbmZpZ3VyYXRpb24gY2hvaWNlcywgeW91IGNhbiBgZWplY3RgIGF0IGFueSB0aW1lLiBUaGlzIGNvbW1hbmQgd2lsbCByZW1vdmUgdGhlIHNpbmdsZSBidWlsZCBkZXBlbmRlbmN5IGZyb20geW91ciBwcm9qZWN0LgoKSW5zdGVhZCwgaXQgd2lsbCBjb3B5IGFsbCB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhbmQgdGhlIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzICh3ZWJwYWNrLCBCYWJlbCwgRVNMaW50LCBldGMpIHJpZ2h0IGludG8geW91ciBwcm9qZWN0IHNvIHlvdSBoYXZlIGZ1bGwgY29udHJvbCBvdmVyIHRoZW0uIEFsbCBvZiB0aGUgY29tbWFuZHMgZXhjZXB0IGBlamVjdGAgd2lsbCBzdGlsbCB3b3JrLCBidXQgdGhleSB3aWxsIHBvaW50IHRvIHRoZSBjb3BpZWQgc2NyaXB0cyBzbyB5b3UgY2FuIHR3ZWFrIHRoZW0uIEF0IHRoaXMgcG9pbnQgeW91J3JlIG9uIHlvdXIgb3duLgoKWW91IGRvbid0IGhhdmUgdG8gZXZlciB1c2UgYGVqZWN0YC4gVGhlIGN1cmF0ZWQgZmVhdHVyZSBzZXQgaXMgc3VpdGFibGUgZm9yIHNtYWxsIGFuZCBtaWRkbGUgZGVwbG95bWVudHMsIGFuZCB5b3Ugc2hvdWxkbid0IGZlZWwgb2JsaWdhdGVkIHRvIHVzZSB0aGlzIGZlYXR1cmUuIEhvd2V2ZXIgd2UgdW5kZXJzdGFuZCB0aGF0IHRoaXMgdG9vbCB3b3VsZG4ndCBiZSB1c2VmdWwgaWYgeW91IGNvdWxkbid0IGN1c3RvbWl6ZSBpdCB3aGVuIHlvdSBhcmUgcmVhZHkgZm9yIGl0LgoKIyMgTGVhcm4gTW9yZQoKWW91IGNhbiBsZWFybiBtb3JlIGluIHRoZSBbQ3JlYXRlIFJlYWN0IEFwcCBkb2N1bWVudGF0aW9uXShodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9jcmVhdGUtcmVhY3QtYXBwL2RvY3MvZ2V0dGluZy1zdGFydGVkKS4KClRvIGxlYXJuIFJlYWN0LCBjaGVjayBvdXQgdGhlIFtSZWFjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0anMub3JnLykuCg== readmeEtag: '"2c85d204e7da428e7a5780e72744622894e3faba"' readmeLastModified: Wed, 22 Feb 2023 21:35:21 GMT repositoryId: 590762652 description: >- 'Connect to a Back End with an API Using React' - OpenClassRooms project #13 created: '2023-01-19T06:23:03Z' updated: '2023-07-08T11:31:44Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: mulekick logo: https://avatars.githubusercontent.com/u/24319237?v=4 license: MIT repoEtag: '"3ea12d35692f861f7e22784a08cc10a775be7202013dc798764002044debed65"' repoLastModified: Sat, 08 Jul 2023 11:31:44 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/artemovskiy/pumapi v3: true repositoryMetadata: base64Readme: >- IyBuZXN0LWpzb24tYXBpCkEgdG9vbCBmb3IgZWFzeSBidWlsZGluZyBBUEkgYWNvcmRpbmcgW0pTT05BUEkgU1BFQ10oaHR0cHM6Ly9qc29uYXBpLm9yZy8pLgoKRmVhdHVyZXM6CiogQXV0b21hdGljIHNlcmlhbGl6YXRpb24KKiBBdXRvbWF0aWMgZGVzZXJpYWxpemF0aW9uCiogQXV0b21hdGljIGJ1aWxkaW5nIG9mIEFQSSBzcGVjCg== readmeEtag: '"c30f1c9b70918584d8207b0cf254de9c6072a9e3"' readmeLastModified: Fri, 17 Mar 2023 05:42:27 GMT repositoryId: 475965997 description: A tool for easy building API according the JSONAPI spec created: '2022-03-30T16:37:56Z' updated: '2022-03-30T16:57:42Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: artemovskiy logo: https://avatars.githubusercontent.com/u/16016725?v=4 repoEtag: '"d9cea6511342f387c03d58d77750525bb333d75fc131978538e006ba9fcd6929"' repoLastModified: Wed, 30 Mar 2022 16:57:42 GMT foundInMaster: true category: - Server - Server Implementations id: 7263baf7be8c738f6cbe4ac487c08c7e oldLocations: - https://github.com/xydens/pumapi - source: openapi3 tags repository: https://github.com/mrigankaghosh/crudapp-with-rest-api v3: true id: 87aab7ae0b65208e063a70d8a51187bd repositoryMetadata: base64Readme: >- IyBDcnVkYXBwLXdpdGgtUkVTVC1BUEkNCg0KQ3J1ZGFwcCBpcyBhIGJhc2ljIFJlc3QgQVBJIHRoYXQgY2FuIHBlcmZvcm0gYSBidW5jaCBvZiBjcnVkIG9wZXJhdGlvbnMgYXMgZm9sbG93czoNCjEuIEFkZCBhIFVzZXINCjIuIERlbGV0ZSBhIFVzZXINCjMuIFNob3cgYWxsIFVzZXJzDQo0LiBDb3VudCB0aGUgbnVtYmVyIG9mIFVzZXJzDQo1LiBTaG93IFVzZXJzIGJ5IHRoZWlyIElkcw0KNi4gU2hvdyBVc2VycyBieSB0aGVpciBuYW1lcw0KNy4gU2hvdyBVc2VycyBieSB0aGVpciBwaG9uZSBudW1iZXINCjguIFNob3cgVXNlcnMgYnkgdGhlaXIgZW1haWwNCg0KVGhlIGRvY3VtZW50YXRpb24gZm9yIHRoaXMgUkVTVCBBUEkgaXMgaW4gdGhlIGZpbGUgbmFtZWQgZG9jdW1lbnRhdGlvbi55YW1sIA0KDQpUaGUgbGFuZ3VhZ2UsIGZyYW1ld29ya3MgYW5kIGRldmVsb3BtZW50IHRvb2xzIHVzZWQgYXJlOg0KMS4gSmF2YQ0KMi4gU3ByaW5nICYgU3ByaW5nIEJvb3QgKGFwcGxpY2F0aW9uIGZyYW1ld29yaykNCjMuIFNwcmluZyBNVkMNCjQuIFNwcmluZyBEYXRhIEpQQSB3aXRoIEhpYmVybmF0ZQ0KNS4gTXlTcWwgKHNxbCBkYXRhYmFzZSkNCjYuIEFwYWNoZSBNYXZlbiAoYnVpbGQgYXV0b21hdGlvbiB0b29sKQ0KNy4gQXBhY2hlIFRvbWNhdCAod2ViIGFwcGxpY2F0aW9uIHNlcnZlcikNCg0KSWYgeW91IHdhbnQgdG8gY2xvbmUgdGhpcyByZXBvIGFuZCBydW4gaXQgb24geW91ciBsb2NhbCBtYWNoaW5lLCB5b3Ugc2hvdWxkIGluc3RhbGwgamF2YSAxNyBvbiB5b3VyIHN5c3RlbS4gQWxzbywgeW91J2xsIGhhdmUgdG8gDQppbnN0YWxsIG1hdmVuIGluIG9yZGVyIHRvIGRvd25sb2FkIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHlvdXIgbG9jYWwgbWFjaGluZS4gWW91IHdvbid0IGJlIG5lZWRpbmcgYSB0b21jYXQgc2VydmVyIGluc3RhbGxlZCBiZWNhdXNlIA0KdGhlcmUgaXMgYW4gaW4tYnVpbGQgc2VydmVyIHByb3ZpZGVkIGJ5IHRoZSBzcHJpbmcgYm9vdCBzdGFydGVyIHBhY2suIEJ5IGRlZmF1bHQsIHRoZSBBUEkgd291bGQgYmUgIHJ1bm5pbmcgb24gbG9jYWxob3N0IHBvcnQgODA5MC4NCkhvd2V2ZXIsIGlmIHRoaXMgcG9ydCBpcyBidXN5IGluIHlvdXIgbWFjaGluZSwgeW91IGNhbiBjaGFuZ2UgdGhlIHBvcnQgbnVtYmVyIGJ5IGdvaW5nIHRvIHNyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi5wcm9wZXJ0aWVzIA0KYW5kIGNoYW5nZSBzZXJ2ZXIucG9ydD04MDkwIHRvIGFueSBhdmFpbGFibGUgcG9ydC4gSGFwcHkgQ3J1ZGRpbmchISENCg0KSSBoYXZlIHBhc3RlZCBzb21lIG9mIHRoZSBzY3JlZW5zaG90cyBzaG93aW5nIHRoZSB2YXJpb3VzIHVyaSBwYXR0ZXJucyBpbiBhY2NvcmRhbmNlIHRvIHRoZSBvcGVuYXBpIHNwZWNpZmljYXRpb25zOg0KDQoxLiBFbnRpdHkgQ2xhc3Nlcw0KIVsyMDIzLTA0LTIzICgxKV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vNTY5NzY2MzUvMjMzODU5MzM4LTFlYzY0NTgwLTFmM2QtNDFiZC1iOWU1LTYzNmZmMTMxOWY2Ny5wbmcpDQoNCjIuIENSVUQgb3BlcmF0aW9uIFVSSSBwYXR0ZXJuczoNCiFbMjAyMy0wNC0yMyAoMildKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzU2OTc2NjM1LzIzMzg1OTM5My1mM2ZhZTUxYy1mMTRkLTQ4NWEtODU3Zi05NTI5NGZhZjc5OTkucG5nKQ0K readmeEtag: '"011f883516f63ecbbe747abe9022570e3e80bb23"' readmeLastModified: Sun, 23 Apr 2023 19:00:37 GMT repositoryId: 630581426 description: >- Crudapp is a basic Rest API that can perform a bunch of crud operations and it follows all the openapi specifications. The entire API is developed with Java language and Spring, Spring Boot, Spring MVC and Spring Data JPA as its frameworks. created: '2023-04-20T17:30:06Z' updated: '2023-04-23T19:08:02Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: MrigankaGhosh logo: https://avatars.githubusercontent.com/u/56976635?v=4 repoEtag: '"d2e13aac289f7695d4f8e24cb0d482fdc19b311d9d2ace026f39c4bc4ef3713c"' repoLastModified: Sun, 23 Apr 2023 19:08:02 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/czasg/pywss v3: true id: 589a36843824543c6b39b9e4a63c23bb repositoryMetadata: base64Readme: >- PGRpdiBhbGlnbj0nY2VudGVyJz4KCiFbcHl3c3NdKC4vcHl3c3MucG5nKQogIAo8YnIvPgogIAohW1Byb2plY3Qgc3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi0zLjYrLWdyZWVuLnN2ZykKIVtQeVBJXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9weXdzcz9jb2xvcj1ncmVlbikKIVtDb2RlY292XShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvY3phc2cvcHl3c3M/dG9rZW49SlNYSVFYWTFFUSkKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2N6YXNnL3B5d3NzKV0oaHR0cHM6Ly9naXRodWIuY29tL2N6YXNnL3B5d3NzL2lzc3VlcykKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzLWNsb3NlZC9jemFzZy9weXdzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jemFzZy9weXdzcy9pc3N1ZXMtY2xvc2VkKQpbIVtHaXRIdWIgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9jemFzZy9weXdzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jemFzZy9weXdzcy9ibG9iL21haW4vTElDRU5TRSkKICAKPGJyLz4KICAKPC9kaXY+CgojIyBQeXdzcyDnroDku4sKClB5d3Nz77yI5Y+R6Z+zIC9wacuQd2HJqnov77yM57G75Ly8ICoqcH53aHlzKirvvInmmK/kuIDkuKrovbvph4/nuqfnmoQgUHl0aG9uIFdlYiDmoYbmnrbvvIzlroPln7rkuo4gUHl0aG9uMy42KyDnibnmgKfmnoTlu7rjgIIKCuS4jiBGbGFza+OAgURqYW5nbyDnrYnkuLvmtYHmoYbmnrbkuI3lkIznmoTmmK/vvIxQeXdzcyDnmoTlupXlsYLlubbmsqHmnInlrp7njrAgV1NHSSDmjqXlj6PljY/orq7jgIIK5YW257yW56iL6aOO5qC85Lmf5pu057G75Ly85LqOIEdpbuOAgUlyaXMg562J5qGG5p6277yM5Zug5q2k5a+55LqO54af5oKJ6L+Z5Lqb5qGG5p6255qE5byA5Y+R6ICF5p2l6K+077yMUHl3c3Mg5piv5LiA5Liq6Z2e5bi45YC85b6X5o6i57Si55qE6aG555uu44CCCgrlhbblhbPplK7nibnmgKfmnInvvJoKLSAqKueugOWNlSoq77ya5ouS57ud5rW36YeP5Y+C5pWw77yM5YeP5bCR5b+D5pm66LSf5ouF44CC5LqG6Kej5LiK5LiL5paHIGBweXdzcy5Db250ZXh0YCDljbPliLvlkK/nqIvjgIIKLSAqKuW/q+mAnyoq77ya5byV5YWl57q/56iL5rGg5py65Yi277yM5YeP5bCR5bm25Y+R5Zy65pmv5LiL57q/56iL5Yib5bu6L+mUgOavgeW8gOmUgOOAggotICoq5LyY6ZuFKirvvJpgY3R4Lm5leHRgIOecn+eahOWkquS8mOmbheS6huOAguWmguaenOS9oOS5n+WSjOaIkeS4gOagt+WWnOasou+8jOmCo+aIkeinieW+l+i/meS7tuS6i+aDhe+8jCoq5rOw6KOk6L6j77yB77yBKioKLSAqKuagh+WHhuWMlioq77ya6ZuG5oiQ5LqG6YOo5YiGIE9wZW5BUEnvvIhTd2FnZ2Vy77yJ6IO95Yqb77yM5pa55L6/5byA5Y+R6ICF5b+r6YCf55Sf5oiQIEFQSSDmlofmoaPlubbov5vooYzosIPor5XjgIIKLSAqKuaUr+aMgVdlYlNvY2tldCoq77ya5byA566x5Y2z55So55qEICoqV2ViU29ja2V0Kiog6IO95Yqb44CCCi0gKirmjqXlj6PmtYvor5UqKu+8muW8gOeuseWNs+eUqOeahCAqKkFQSSDmtYvor5XmqKHlnZcqKu+8jOS4jeWQr+WKqOacjeWKoeS5n+iDvea1i+ivleaOpeWPo+WKn+iDvei+o++8gQoKKipf5Zyo57q/5paH5qGjXyoqIFsqKl9odHRwczovL2N6YXNnLmdpdGh1Yi5pby9weXdzcy9fKipdKGh0dHBzOi8vY3phc2cuZ2l0aHViLmlvL3B5d3NzLykKCjxici8+CgojIyDlv6vpgJ/lvIDlp4sKCiMjIyAx44CB5a6J6KOFIHB5d3NzCmBgYHNoZWxsCnBpcDMgaW5zdGFsbCBweXdzcwpgYGAKCiMjIyAy44CB5pCt5bu6IHdlYiDlupTnlKggICAgCummluWFiOWIm+W7uiBgbWFpbi5weWAg5paH5Lu277yM5bm25YaZ5YWl5Lul5LiL5Luj56CB77yaCmBgYHB5dGhvbgppbXBvcnQgdGltZQppbXBvcnQgcHl3c3MKCmRlZiBsb2dfaGFuZGxlcihjdHg6IHB5d3NzLkNvbnRleHQpOgogICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCiAgICBjdHgubmV4dCgpCiAgICBwcmludCgKICAgICAgICBmIlJvdXRlOiB7Y3R4LnJvdXRlfSwgIgogICAgICAgIGYiTWV0aG9kOiB7Y3R4Lm1ldGhvZH0sICIKICAgICAgICBmIlN0YXR1czoge2N0eC5yZXNwb25zZV9zdGF0dXNfY29kZX0sICIKICAgICAgICBmIlRpbWU6IHt0aW1lLnRpbWUoKSAtIHN0YXJ0X3RpbWU6LjNmfXMiCiAgICApCgpkZWYgaGFuZGxlcihjdHg6IHB5d3NzLkNvbnRleHQpOgogIGN0eC53cml0ZSgiaGVsbG9+IikKCmRlZiBtYWluKCk6CiAgICBhcHAgPSBweXdzcy5BcHAoKQogICAgYXBwLmdldCgiL2hlbGxvIiwgaGFuZGxlcikgICMgY3VybCBsb2NhbGhvc3Q6ODA4MC9oZWxsbwogICAgYXBwLmFueSgiKiIsIGxvZ19oYW5kbGVyLCBoYW5kbGVyKSAgIyBjdXJsIC1YIFBPU1QgbG9jYWxob3N0OjgwODAvaGVsbG8KICAgIGFwcC5ydW4oKQoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIG1haW4oKQpgYGAK5o6l552A5ZCv5Yqo5pyN5YqhOgpgYGBzaGVsbApweXRob24zIG1haW4ucHkKYGBgCgroh7PmraTvvIzkuIDkuKrnroDljZXnmoQgd2ViIOW6lOeUqOacjeWKoeWwseWujOaIkOS6huOAggoK5pu05aSa5Yqf6IO96KeBW+WcqOe6v+aWh+aho10oaHR0cHM6Ly9jemFzZy5naXRodWIuaW8vcHl3c3MvKeOAggogIAo8YnIvPgoKIyMgQWN0aXZpdHkKCiFbQWx0XShodHRwczovL3JlcG9iZWF0cy5heGlvbS5jby9hcGkvZW1iZWQvMDY0N2RjZTBjMTY5YmE4NThiMzU5MjkzODM3NmU0MWQyMGRjM2U2Zi5zdmcgIlJlcG9iZWF0cyBhbmFseXRpY3MgaW1hZ2UiKQo= readmeEtag: '"e19f5a1dadbfd75cb2f55bdc520f3033e96295b1"' readmeLastModified: Mon, 05 Aug 2024 14:10:59 GMT repositoryId: 214977479 description: 一个轻量级的 Python Web 框架 created: '2019-10-14T07:33:17Z' updated: '2024-09-05T04:02:07Z' language: Python archived: false stars: 96 watchers: 3 forks: 17 owner: czasg logo: https://avatars.githubusercontent.com/u/44974561?v=4 license: MIT repoEtag: '"f68dd79b89bdb2b6a05aa780d84ebb1860c54c9d9217e94a71d2903ce7e05c3a"' repoLastModified: Thu, 05 Sep 2024 04:02:07 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/zero88/bean.x v3: true id: df9f8fc3d0e3cb58fe42f9b34925e1f4 repositoryMetadata: base64Readme: >- PSBCZWFueAp6ZXJvODgKOnJlcG86IHplcm84OC9iZWFuLngKOmFydGlmYWN0OiBpby5naXRodWIuemVybzg4L2JlYW54Cjpzb25hcktleTogemVybzg4X2JlYW54CgppbWFnZTpodHRwczovL2dpdGh1Yi5jb20ve3JlcG99L2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmdbe3JlcG99LGxpbms9aHR0cHM6Ly9naXRodWIuY29tL3tyZXBvfS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWxdCmltYWdlOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS97cmVwb30/c29ydD1zZW12ZXJbR2l0SHViIHJlbGVhc2UgKGxhdGVzdCBTZW1WZXIpXQppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL25leHVzL3Ive2FydGlmYWN0fT9zZXJ2ZXI9aHR0cHMlM0ElMkYlMkZvc3Muc29uYXR5cGUub3JnW1NvbmF0eXBlIE5leHVzIChSZWxlYXNlcyldCmltYWdlOmh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbmV4dXMvcy97YXJ0aWZhY3R9P3NlcnZlcj1odHRwcyUzQSUyRiUyRm9zcy5zb25hdHlwZS5vcmdbU29uYXR5cGUgTmV4dXMgKFNuYXBzaG90cyldCgppbWFnZTpodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD17c29uYXJLZXl9Jm1ldHJpYz1uY2xvY1tMaW5lcyBvZiBDb2RlLGxpbms9aHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD17c29uYXJLZXl9XQppbWFnZTpodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD17c29uYXJLZXl9Jm1ldHJpYz1jb3ZlcmFnZVtDb3ZlcmFnZSxsaW5rPWh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9e3NvbmFyS2V5fV0KaW1hZ2U6aHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9e3NvbmFyS2V5fSZtZXRyaWM9c3FhbGVfcmF0aW5nW01haW50YWluYWJpbGl0eSBSYXRpbmcsbGluaz1odHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPXtzb25hcktleX1dCmltYWdlOmh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXtzb25hcktleX0mbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZ1tSZWxpYWJpbGl0eSBSYXRpbmcsbGluaz1odHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPXtzb25hcktleX1dCmltYWdlOmh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXtzb25hcktleX0mbWV0cmljPXNlY3VyaXR5X3JhdGluZ1tTZWN1cml0eSBSYXRpbmcsbGluaz1odHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPXtzb25hcktleX1dCmltYWdlOmh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PXtzb25hcktleX0mbWV0cmljPWFsZXJ0X3N0YXR1c1tRdWFsaXR5IEdhdGUgU3RhdHVzLGxpbms9aHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD17c29uYXJLZXl9XQo= readmeEtag: '"80a51293ea37fd846392a4651a499b2d875d9728"' readmeLastModified: Mon, 24 Jul 2023 11:56:16 GMT repositoryId: 618250421 description: vert.x + Java Bean = bean.x (jsr-380 + schema generator) created: '2023-03-24T04:01:58Z' updated: '2023-07-24T04:37:41Z' language: Kotlin archived: false stars: 0 watchers: 1 forks: 0 owner: zero88 logo: https://avatars.githubusercontent.com/u/10863525?v=4 license: Apache-2.0 repoEtag: '"c0c76482196ae176a5f102cbac8bbaa62acd43399054d034d0c5e95649f76dc0"' repoLastModified: Mon, 24 Jul 2023 04:37:41 GMT category: Server foundInMaster: true oldLocations: - https://github.com/zero88/beanx - source: openapi3 tags repository: https://github.com/vanch3d/nvl-slim v3: true repositoryMetadata: base64Readme: >- WyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvdmFuY2gzZC9udmwtc2xpbS5zdmc/YnJhbmNoPW1hc3RlciZzdHlsZT1mbGF0KV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3ZhbmNoM2QvbnZsLXNsaW0pClshW0dpdEh1YiByZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi90YWcvdmFuY2gzZC9udmwtc2xpbS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vdmFuY2gzZC9udmwtc2xpbS90YWdzKQpbIVtsaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL3ZhbmNoM2QvbnZsLXNsaW0uc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoM2QvbnZsLXNsaW0vYmxvYi9tYXN0ZXIvTElDRU5TRSkKWyFbV2Vic2l0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby93ZWJzaXRlLXVwLWRvd24tZ3JlZW4tcmVkL2h0dHAvbnZsLmNhbHF1ZXMzZC5vcmcuc3ZnP2xhYmVsPW52bC5jYWxxdWVzM2Qub3JnJnN0eWxlPWZsYXQpXShodHRwOi8vbnZsLmNhbHF1ZXMzZC5vcmcpCgpudmwtc2xpbQo9PT09PT09PQoKUGVyc29uYWwvcHJvZmVzc2lvbmFsIHdlYnNpdGUKCgojIyBDaGFuZ2Vsb2cKCiMjIFRPRE8KLSBwcm9qZWN0cyBuZWVkIGEgcHJvcGVyIHN1bW1hcnksIHJhdGhlciB0aGF0IHVzaW5nIGRvdGRvdGRvdCAK readmeEtag: '"e72685aa8db8eb29e3a4b663bd474305bea07905"' readmeLastModified: Tue, 06 Mar 2018 15:46:24 GMT repositoryId: 114134828 description: >- Playing around with twig, PHP Slim and several APIs (Zotero, GitHub, LinkedIn, Piwigo, etc.) to get a research projects mashup created: '2017-12-13T15:05:13Z' updated: '2018-04-04T08:53:51Z' language: HTML archived: false stars: 0 watchers: 0 forks: 0 owner: vanch3d logo: https://avatars.githubusercontent.com/u/2743481?v=4 license: MIT repoEtag: '"b7220f26290359d718f916ed7a9536e2b0da896b370e249c077a645d62bee2e5"' repoLastModified: Wed, 04 Apr 2018 08:53:51 GMT foundInMaster: true category: Description Validators id: 55b295a3a4c029013dee377fddb80118 - source: openapi3 tags repository: https://github.com/tjbrockmeyer/oasm v3: true repositoryMetadata: base64Readme: >- IyBvYXNtIC0gT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBNb2RlbHMKClshW0dvRG9jXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL3RqYnJvY2ttZXllci9vYXNtP3N0YXR1cy5zdmcpXShodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL3RqYnJvY2ttZXllci9vYXNtKQoKR29sYW5nIE1vZGVscyBmb3IgdGhlIE9wZW4gQVBJIFNwZWNpZmljYXRpb24gVmVyc2lvbiAzCgpBbGwgbW9kZWxzIGFyZSBmdWxseSBpbXBsZW1lbnRlZCBpbmNsdWRpbmcgbmVhcmx5IGFsbCBkZXNjcmlwdGlvbnMgZm91bmQgaW4gdGhlIFtPcGVuIEFQSSAzIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kKSAgCkVudW1lcmF0ZWQgZmllbGRzIGFyZSBpbXBsZW1lbnRlZCBhcyBjb25zdGFudHMuICAKTWlub3IsIG5vbi1tYW5kYXRvcnkgdmFsaWRhdGlvbiBmdW5jdGlvbnMgYXJlIGluIHBsYWNlLgo= readmeEtag: '"77ee926629604012223a39bba5d185179dde3163"' readmeLastModified: Sat, 29 Feb 2020 19:34:55 GMT repositoryId: 193645799 description: Golang Models for the Open API Specification Version 3 created: '2019-06-25T06:13:10Z' updated: '2020-02-29T19:35:05Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: tjbrockmeyer logo: https://avatars.githubusercontent.com/u/18749133?v=4 license: NOASSERTION repoEtag: '"168cfa795c597470a098107c0c6c6b0167e1e116051839d2d1a55670649e2fa8"' repoLastModified: Sat, 29 Feb 2020 19:35:05 GMT foundInMaster: true category: Parsers id: 9fb21004d969a5b6579de77d062d8bf7 - source: openapi3 tags repository: https://github.com/phyunsj/web-thing-swagger-page v3: true repositoryMetadata: base64Readme: >- IyBNb3ppbGxhIFdlYlRoaW5ncyAtIE9wZW5BUEkgdmVyc2lvbgoKIyMgW1N3YWdnZXIgRWRpdG9yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IpCgpDcmVhdGUvZWRpdCBPcGVuQVBJIHZlcnNpb24gb2YgV2ViIENvbm5lY3RlZCBMYW1wIChFeGFtcGxlIDIpIGZyb20gW01vemlsbGEgV29UXShodHRwczovL2lvdC5tb3ppbGxhLm9yZy93b3QvKQoKR2l0SHViIFBhZ2UgOiBbcGh5dW5zai5naXRodWIuaW8vd2ViLXRoaW5nLXN3YWdnZXItcGFnZV0oaHR0cHM6Ly9waHl1bnNqLmdpdGh1Yi5pby93ZWItdGhpbmctc3dhZ2dlci1wYWdlKSBPbmx5IGBHRVQgYCBtZXRob2QgaXMgcGVybWl0dGVkLgoKPHAgYWxpZ249ImxlZnQiPgo8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3BoeXVuc2ovd2ViLXRoaW5nLXN3YWdnZXItcGFnZS9ibG9iL21hc3Rlci9pbWFnZXMvd290LW9wZW5hcGktc3dhZ2dlci1lZGl0b3IucG5nIiB3aWR0aD0iNzAwcHgiLz4KPC9wPgoKIyMjIyBJbnN0YWxsICYgUnVuIHN3YWdnZXIgZWRpdG9yCgpgYGAKJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItZWRpdG9yLmdpdAokIGNkIHN3YWdnZXItZWRpdG9yCiQgbnBtIGluc3RhbGwKJCBucG0gcnVuIGJ1aWxkCiQgbnBtIHN0YXJ0IC0+IG9wZW4gdGhlIGJyb3dzZXIgOiBodHRwOi8vbG9jYWxob3N0OjMwMDEKYGBgCgojIyBOb2RlLVJFRCBSRVNUIFNlcnZlcgoKPHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vcGh5dW5zai93ZWItdGhpbmctc3dhZ2dlci1wYWdlL2Jsb2IvbWFzdGVyL2ltYWdlcy93b3Qtbm9kZS1yZWQucG5nIiB3aWR0aD0iNzUwcHgiLz4KPC9wPgoKCiMjIyMgQ29yZSBub2RlIGNoYW5nZXMgZm9yIHRoaXMgZGVtbwoKLSBgbm9kZXMvY29yZS9pby8yMS1odHRwaW4uanNgIDogY29uc29saWRhdGUgYWxsIGh0dHAgbm9kZXMgaW50byBhIHNpbmdsZSBub2RlIHVzaW5nIGBhbGwoKWAgcm91dGluZyBtZXRob2QgZnJvbSBgZXhwcmVzc2AgKGBSRUQuaHR0cE5vZGVgIGlzIGFuIGluc3RhbmNlIG9mIGBleHByZXNzYCkgaW5zdGVhZCBvZiBjcmVhdGluZyBtdXRpcGxlIGh0dHAgbm9kZXMuIAoKYGBgCmZ1bmN0aW9uIEhUVFBJbihuKSB7CiAgLi4uCiAgdGhpcy5jYWxsYmFjayA9IGZ1bmN0aW9uKHJlcSxyZXMpIHsKICAgICB2YXIgbXNnaWQgPSBSRUQudXRpbC5nZW5lcmF0ZUlkKCk7CiAgICAgcmVzLl9tc2dpZCA9IG1zZ2lkOwogICAgIGlmIChub2RlLm1ldGhvZC5tYXRjaCgvXihwb3N0fGRlbGV0ZXxwdXR8b3B0aW9uc3xwYXRjaCkkLykpIHsKICAgICAgICAgbm9kZS5zZW5kKHtfbXNnaWQ6bXNnaWQscmVxOnJlcSxyZXM6Y3JlYXRlUmVzcG9uc2VXcmFwcGVyKG5vZGUscmVzKSxwYXlsb2FkOnJlcS5ib2R5fSk7CiAgICAgfSBlbHNlIGlmIChub2RlLm1ldGhvZCA9PSAiZ2V0IikgewogICAgICAgICBub2RlLnNlbmQoe19tc2dpZDptc2dpZCxyZXE6cmVxLHJlczpjcmVhdGVSZXNwb25zZVdyYXBwZXIobm9kZSxyZXMpLHBheWxvYWQ6cmVxLnF1ZXJ5fSk7CisgICAgfSBlbHNlIGlmIChub2RlLm1ldGhvZCA9PSAiYWxsIikgIHsKKyAgICAgICAgaWYgKCByZXEubWV0aG9kLm1hdGNoKC9eKFBPU1R8REVMRVRFfFBVVHxPUFRJT05TfFBBVENIKSQvKSkgeworICAgICAgICAgICAgbm9kZS5zZW5kKHtfbXNnaWQ6bXNnaWQscmVxOnJlcSxyZXM6Y3JlYXRlUmVzcG9uc2VXcmFwcGVyKG5vZGUscmVzKSxwYXlsb2FkOnJlcS5ib2R5fSk7CisgICAgICAgIH0gZWxzZSBpZiAocmVxLm1ldGhvZCA9PSAiR0VUIikgeworICAgICAgICAgICAgbm9kZS5zZW5kKHtfbXNnaWQ6bXNnaWQscmVxOnJlcSxyZXM6Y3JlYXRlUmVzcG9uc2VXcmFwcGVyKG5vZGUscmVzKSxwYXlsb2FkOnJlcS5xdWVyeX0pOworICAgICAgICB9CiAgICB9IGVsc2UgeyAKICAgICAgICBub2RlLnNlbmQoe19tc2dpZDptc2dpZCxyZXE6cmVxLHJlczpjcmVhdGVSZXNwb25zZVdyYXBwZXIobm9kZSxyZXMpfSk7CiAgICB9CiAgfTsgICAgICAgICAgCiAgLi4uICAgICAgICAKICBpZiAodGhpcy5tZXRob2QgPT0gImdldCIpIHsKICAuLi4gICAgIAorIH0gZWxzZSBpZiAodGhpcy5tZXRob2QgPT0gImFsbCIpIHsKKyAgICAgUkVELmh0dHBOb2RlLmFsbCh0aGlzLnVybCxjb29raWVQYXJzZXIoKSwuLi4sdGhpcy5jYWxsYmFjayx0aGlzLmVycm9ySGFuZGxlcik7CisgfSAKICAuLi4KfQpgYGAKCi0gYG5vZGVzL2NvcmUvaW8vMjEtaHR0cGluLmh0bWxgIDogYWRkICoqQUxMKiogb3B0aW9uLiAKCmBgYAogIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgPGxhYmVsIGZvcj0ibm9kZS1pbnB1dC1tZXRob2QiPjxpIGNsYXNzPSJmYSBmYS10YXNrcyI+PC9pPgogICAgICAgICAgPHNwYW4gZGF0YS1pMThuPSJodHRwaW4ubGFiZWwubWV0aG9kIj48L3NwYW4+PC9sYWJlbD4KICAgICAgPHNlbGVjdCB0eXBlPSJ0ZXh0IiBpZD0ibm9kZS1pbnB1dC1tZXRob2QiIHN0eWxlPSJ3aWR0aDo3MCU7Ij4KICAgICAgPG9wdGlvbiB2YWx1ZT0iZ2V0Ij5HRVQ8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0icG9zdCI+UE9TVDwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSJwdXQiPlBVVDwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSJkZWxldGUiPkRFTEVURTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSJwYXRjaCI+UEFUQ0g8L29wdGlvbj4KKyAgICAgPG9wdGlvbiB2YWx1ZT0iYWxsIj5BTEw8L29wdGlvbj4KICAgICAgPC9zZWxlY3Q+CiAgPC9kaXY+CmBgYAoKc2V0IFVSTCBhcyBge2Jhc2VQYXRofS8qYCB3aXRoICoqQUxMKiogb3B0aW9uLiBiYXNlUGF0aCBpc2AvdGhpbmdzL2xhbXAvdjFgLgoKYGBgClJFRC5odHRwTm9kZS5hbGwoICIvdGhpbmdzL2xhbXAvdjEvKiIgLyogPC0gdGhpcy51cmwgKi8gLCAuLi4sIGhhbmRsZXIpOwogLyogIAogICAvdGhpbmdzL2xhbXAvdjEgICAgICAgPC0gd2lsbCBiZSBpZ25vcmVkCiAgCiAgVGhlIGZvbGxvd2luZyBVUkwgd2lsbCBiZSBhY2NlcHRlZC4KICAgL3RoaW5ncy9sYW1wL3YxLwogICAvdGhpbmdzL2xhbXAvdjEvYWN0aW9ucwogICAvdGhpbmdzL2xhbXAvdjEvcHJvcGVydGllcyAKICovCmBgYAoKLSBgbm9kZXMvY29yZS9jb3JlLzgwLWZ1bmN0aW9uLmpzYCA6IGFsbG93IHRvIHVzZSBgbmVkYmAgbW9kdWxlIGRpcmVjdGx5IGluIGBmdW5jdGlvbmAgbm9kZS4gYWNjZXNzIGAkSE9NRVxhY3Rpb25zLmRiYCBhbmQgYCRIT01FXGV2ZW50cy5kYmAgdG8gZ2VuZXJhdGUgR0VUL1BPU1QgcmVzcG9uc2VzLiBUaGlzIGlzIG5vdCBhbiBpZGVhbCBhcHByb2FjaCBidXQgaXQgaXMgZ29vZCBlbm91Z2ggdG8gdGVzdCBSRVNUIEFQSXMuCgpgYGAKZnVuY3Rpb24gRnVuY3Rpb25Ob2RlKG4pIHsKICAgLi4uCiAgIHZhciBzYW5kYm94ID0gewogICAgICAgICAgICBjb25zb2xlOmNvbnNvbGUsCiAgICAgICAgICAgIHV0aWw6dXRpbCwKICAgICAgICAgICAgQnVmZmVyOkJ1ZmZlciwKICAgICAgICAgICAgRGF0ZTogRGF0ZSwKICAgICAgICAgICAgUkVEOiB7CiAgICAgICAgICAgICAgICB1dGlsOiBSRUQudXRpbAogICAgICAgICAgICB9LAorICAgICAgICAgICAgcmVxdWlyZSA6IHJlcXVpcmUsCiAgIC4uLgp9CmBgYAoKKipFeGFtcGxlKiogOiBmdW5jdGlvbiBub2RlICI1NWQ3NjljNC40NjgzODgiCmBgYApjb25zdCBob21lRGlyID0gcmVxdWlyZSgnb3MnKS5ob21lZGlyKCk7CnZhciBEYXRhc3RvcmUgPSByZXF1aXJlKCduZWRiJyk7CnZhciBkYiA9IG5ldyBEYXRhc3RvcmUoaG9tZURpcisnL2FjdGlvbnMuZGInKTsKZGIubG9hZERhdGFiYXNlKCk7CgovLyBjb252ZXJ0ICJwZW5kaW5nIiB0byAiY29tcGxldGUiIGZvciBtc2cucGF5bG9hZCAoIDwtIHRyYW5zYWNpdGlvbi1pZCkgCmRiLnVwZGF0ZSh7IGhyZWY6IG1zZy5wYXlsb2FkIH0sIHsgJHNldDogeyBzdGF0dXM6ICdjb21wbGV0ZScsdGltZUNvbXBsZXRlZCA6IGRhdGVTdHIrJyAnK3RpbWVTdHIgfSB9LCB7IH0sIGZ1bmN0aW9uIChlcnIsIG51bVJlcGxhY2VkKSB7CiAgICAvLyBEbyBzb21ldGhpbmcgaWYgYW55IAp9KTsKYGBgCgojIyBIb3N0IHN3YWdnZXIgZWRpdG9yIChkaXN0IHZlcnNpb24pIG9uIEdpdEh1YiBQYWdlCgoxLiBjcmVhdGUgYSByZXBvc2l0b3J5CjIuIGdlbmVyYXRlIGB3b3QueWFtbGAKMy4gaW5kZXguaHRtbAoKYGBgCiAgICBjb25zdCBlZGl0b3IgPSBTd2FnZ2VyRWRpdG9yQnVuZGxlKHsKICsgICAgdXJsOiAnd290LnlhbWwnLAogICAgICBkb21faWQ6ICcjc3dhZ2dlci1lZGl0b3InLAogICAgICBsYXlvdXQ6ICdTdGFuZGFsb25lTGF5b3V0JywKICAgICAgcHJlc2V0czogWwogICAgICAgIFN3YWdnZXJFZGl0b3JTdGFuZGFsb25lUHJlc2V0CiAgICAgIF0KICAgIH0pCmBgYAo0LiB1cGxvYWQgYGluZGV4Lmh0bWxgICYgYHdvdC55YW1sYCAmIGBkaXN0LypgCjUuIEdpdEh1YiBSZXBvc2l0b3J5IFNldHRpbmdzCgo8cCBhbGlnbj0ibGVmdCI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vcGh5dW5zai93ZWItdGhpbmctc3dhZ2dlci1wYWdlL2Jsb2IvbWFzdGVyL2ltYWdlcy9naXRodWItcGFnZS1zZXR0aW5nLnBuZyIgd2lkdGg9IjMwMHB4Ii8+CjwvcD4KCjYuIHZpc2l0IGBodHRwczovLzx5b3VyLW5hbWU+LmdpdGh1Yi5pby88cmVwb3NpdG9yeS1uYW1lPmAKCiMjIyMgIFJlbGF0ZWQgUG9zdHMKCi0gW01vemlsbGEgV2ViVGhpbmcgQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vaW90Lm1vemlsbGEub3JnL3dvdC8pCi0gW0RvY3VtZW50aW5nIEFQSXM6IEEgZ3VpZGUgZm9yIHRlY2huaWNhbCB3cml0ZXJzIGFuZCBlbmdpbmVlcnNdKGh0dHBzOi8vaWRyYXRoZXJiZXdyaXRpbmcuY29tL2xlYXJuYXBpZG9jLykKLSBbU3dhZ2dlcl0oaHR0cHM6Ly9zd2FnZ2VyLmlvLykKLSBbc3dhZ2dlci1lZGl0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWVkaXRvcikKLSBbQXN5bmNBUEkgLSBNZXNzc2FnZSBEcml2ZSBBUEldKGh0dHBzOi8vd3d3LmFzeW5jYXBpLmNvbS8pCi0gW1J1biBDaHJvbWUgYnJvd3NlciB3aXRob3V0IENPUlNdKGh0dHBzOi8vYWxmaWxhdG92LmNvbS9wb3N0cy9ydW4tY2hyb21lLXdpdGhvdXQtY29ycy8pIDogZGlzYWJsZSBDT1JTIGlmIHlvdSB3aXNoIHRvIHJ1biBzd2FnZ2VyLWVkaXRvciAmIE5vZGUtUkVEIHNlcnZlciBvbiB0aGUgc2FtZSBtYWNoaW5lIHRvIHByZXZlbnQgZmV0Y2ggZXJyb3IuCi0gW25lZGIgOiBKU09OIGRhdGFiYXNlXShodHRwczovL2dpdGh1Yi5jb20vbG91aXNjaGF0cmlvdC9uZWRiKQo= readmeEtag: '"c509b97c403bfd405b6ba633a31b81bbffa108bf"' readmeLastModified: Wed, 03 Apr 2019 21:14:36 GMT repositoryId: 178950853 description: Mozilla WebThing Specification - OpenAPI version created: '2019-04-01T21:38:05Z' updated: '2023-01-28T11:52:17Z' language: HTML archived: true stars: 0 watchers: 2 forks: 0 owner: phyunsj logo: https://avatars.githubusercontent.com/u/3989465?v=4 repoEtag: '"3857cf4a9af303c7777e14466d426dc9801a026ac7446f0eb13fcde15d97eaeb"' repoLastModified: Sat, 28 Jan 2023 11:52:17 GMT foundInMaster: true category: Data Validators id: 23d57efc8ee051d7d995380e2300b6e2 - source: openapi3 tags repository: https://github.com/neidigsi/mvm1914_backend v3: true repositoryMetadata: base64Readme: >- IVtNdXNpa3ZlcmVpbiAxOTE0IE3DvG5zdGVyIGUuIFYuXShyZWFkbWUvYmFubmVyLnBuZykKIyBXb3JkcHJlc3MtUkVTVC1BUEkgfCBNdXNpa3ZlcmVpbiAxOTE0IE3DvG5zdGVyIGUuIFYuClRoZSBtdXNpYyBjbHViICJNdXNpa3ZlcmVpbiAxOTE0IE3DvG5zdGVyIGUuIFYuIiBwcm92aWRlcyBpdHMgbWVtYmVycyBhbmQgaW50ZXJlc3RlZCBwZXJzb25zIHNpbmNlIDIwMTkgYW4gb3duIGFuZHJvaWQgYXBwLiAKVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIHRoZSBjdXN0b20gZGV2ZWxvcGVkIHdvcmRwcmVzcy1wbHVnaW4gd2hpY2ggcHJvdmlkZXMgYSByZXN0LWFwaSBmb3IgdGhpcyBtZW50aW9uZWQgYXBwLiAKVGhlIGFuZHJvaWQgYXBwIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gZ29vZ2xlIHBsYXkgYXQgdGhlIGZvbGxvd2luZyBsaW5rOiA8cD4KW0dvb2dsZSBQbGF5IFN0b3JlXShodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9ZGUubXZtMTkxNC5tdXNpa3ZlcmVpbjE5MTRtbnN0ZXJldikKCkluIHRoZSBjdXJyZW50IHZlcnNpb24sIHRoZSBhcHAgYWxsb3dzIHVzZXJzIHRvIGluZm9ybSB0aGVtc2VsdmVzIGFib3V0IG91ciBhc3NvY2lhdGlvbiB0aHJvdWdoIGN1cnJlbnQgYXJ0aWNsZXMgYW5kIGV2ZW50cywgYXMgd2VsbCBhcyBhbiB1cC10by1kYXRlIGdhbGxlcnkuCgojIyBJbnN0YWxsYXRpb24KVG8gaW5zdGFsbCB0aGlzIFdvcmRwcmVzcy1QbHVnaW4gaXQgaXMgbmVjZXNzYXJ5IHRvIGRvd25sb2FkIHRoZSBwcm9ncmFtIGNvZGUgb2YgdGhpcyByZXBvc2l0b3J5IGF0IGZpcnN0LiA8cD4gSW4gdGhlIHNlY29uZCBzdGVwLCB0aGUgZG93bmxvYWRlZApmb2xkZXIgd2l0aCB0aGUgY29kZSBuZWVkcyB0byBiZSBtb3ZlZCB0byB0aGUgZGlyZWN0b3J5ICIvd3AtY29udGVudC9wbHVnaW5zIiBvZiB0aGUgV29yZHByZXNzLUluc3RhbmNlIChlLmcuIHZpYSBhbiBGVFAgY29ubmVjdGlvbikuIDxwPgpGaW5hbGx5LCB0aGUgcGx1Z2luIG5hbWVkICJSRVNUZnVsIEFQSSAtIE11c2lrdmVyZWluIDE5MTQgTcO8bnN0ZXIgZS4gVi4iIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCBpbiB0aGUgc2VjdGlvbiAiUGx1Z2lucyIgb2YgV29yZHByZXNzJ3MgYWRtaW5pc3RyYXRpb24gaW50ZXJmYWNlLgoKIyMgRG9jdW1lbnRhdGlvbgpUaGUgQVBJIGRvY3VtZW50YXRpb24gaXMgd3JpdHRlbiBpbiBPcGVuQVBJIDMgYW5kIGNvdWxkIGJlIGZvdW5kIGluIHRoZSBmb2xkZXIgImRvY3VtZW50YXRpb24iLg== readmeEtag: '"233cfb61ab64d72cfc2d373e19f3faf5ae988e99"' readmeLastModified: Sat, 07 Nov 2020 11:10:06 GMT repositoryId: 247324473 description: >- The music club "Musikverein 1914 Münster e. V." provides its members and interested persons since 2019 an own android app. This repository contains the custom developed wordpress-plugin which provides a rest-api for this mentioned app. The android app can be downloaded from google play. created: '2020-03-14T17:43:07Z' updated: '2021-02-03T13:41:10Z' language: PHP archived: false stars: 0 watchers: 0 forks: 0 owner: neidigsi logo: https://avatars.githubusercontent.com/u/19466013?v=4 repoEtag: '"1f52104fba8c10f2992d5bbe3c5b671fee8551c18fa6e914bbbd2c6958cf6ea8"' repoLastModified: Wed, 03 Feb 2021 13:41:10 GMT foundInMaster: true category: - Server - Server Implementations id: 74c77a3f133c4710e01284db66670112 - source: openapi3 tags repository: https://github.com/kamo1010/openapigen v3: true repositoryMetadata: repositoryId: 264130346 description: >- This is a sample of how to generate the OpenApi documentation for a RESTful web service implemented in Java 8 created: '2020-05-15T07:46:33Z' updated: '2020-08-26T19:00:11Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: kamo1010 logo: https://avatars.githubusercontent.com/u/43334955?v=4 repoEtag: '"3d4b4a0629cd7564946ba5cc2c844ca266518f62b330863613d62449ee36a332"' repoLastModified: Wed, 26 Aug 2020 19:00:11 GMT foundInMaster: true id: 4f9ddc3292fce5d9b3614e500017beb5 oldLocations: - https://github.com/i-mo-k/openapigen - source: openapi3 tags repository: https://github.com/apprexp/govsg2oas v3: true repositoryMetadata: base64Readme: >- IyBHb3ZTRy0yLU9BUwoKPiAqKlRoaXMgcHJvamVjdCBpcyB1bmRlciBoZWF2eSBkZXZlbG9wbWVudC4gRXhwZWN0IG1hbnkgYnJlYWtpbmcgY2hhbmdlcy4qKgoKIVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvYXBwcmV4cC9nb3ZzZzJvYXM/c3R5bGU9ZmxhdC1zcXVhcmUpClshW0NvbnRyaWJ1dG9yIENvdmVuYW50XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dG9yJTIwQ292ZW5hbnQtdjEuNCUyMGFkb3B0ZWQtZmY2OWI0LnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGNvZGUtb2YtY29uZHVjdC5tZCkKWyFbc2VtYW50aWMtcmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8lMjAlMjAlRjAlOUYlOTMlQTYlRjAlOUYlOUElODAtc2VtYW50aWMtLXJlbGVhc2UtZTEwMDc5LnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1yZWxlYXNlL3NlbWFudGljLXJlbGVhc2UpCiFbT1NTIExpZmVjeWNsZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9vc3NsaWZlY3ljbGUvYXBwcmV4cC9nb3ZzZzJvYXM/c3R5bGU9ZmxhdC1zcXVhcmUpClshW0ZPU1NBIFN0YXR1c10oaHR0cHM6Ly9hcHAuZm9zc2EuaW8vYXBpL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZhcHByZXhwJTJGZ292c2cyb2FzLnN2Zz90eXBlPXNoaWVsZCldKGh0dHBzOi8vYXBwLmZvc3NhLmlvL3Byb2plY3RzL2dpdCUyQmdpdGh1Yi5jb20lMkZhcHByZXhwJTJGZ292c2cyb2FzP3JlZj1iYWRnZV9zaGllbGQpCgpUaGUgR292U0ctMi1PQVMgYWltcyB0byBkb2N1bWVudCBwdWJsaWNseS1hY2Nlc3NpYmxlIGdvdmVybm1lbnQgQVBJcyBpbnRvIGEgd2VsbC1lc3RhYmxpc2hlZCBmb3JtYXQ6IE9wZW5BUEkgMy4KClRoaXMgaXMgdG8gZW5jb3VyYWdlIGF1dG9tYXRpYyBjb2RlIGdlbmVyYXRpb24gYW5kIGluY3JlYXNlZCByZWFkYWJpbGl0eSBvZiBBUEkgZG9jdW1lbnRhdGlvbiBhY3Jvc3MgZ292ZXJubWVudCBhZ2VuY2llcy4KCiMjIEZBUQoKIyMjIENhbiB5b3UgYWRkIERhdGEuZ292LnNnIGR5bmFtaWMgZGF0YXNldHM/CgpDdXJyZW50bHkgbm8uIFRoZXJlJ3MgYWxyZWFkeSBhbiBbb2ZmaWNpYWwgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChPQVMpIDMuMC4wXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZGF0YWdvdnNnL2RhdGFnb3ZzZy1kYXRhc2V0cy9tYXN0ZXIvZG9jdW1lbnRhdGlvbi9zd2FnZ2VyLnltbCkgZm9yIHRob3NlIGRhdGFzZXRzLiBJZiB0aGVyZSdzIGEgbmV3IHJlYXNvbiBmb3IgdXMgdG8gbWFpbnRhaW4gb3VyIG93biB2ZXJzaW9uIChlLmcuIGl0J3Mgbm8gbG9uZ2VyIG1haW50YWluZWQpLCB0aGVuIFtvcGVuIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vYXBwcmV4cC9nb3ZzZzJvYXMvaXNzdWVzL25ldykgc28gdGFodCB3ZSBjYW4gbG9vayBpbnRvIGl0LgoKIyMjIENhbiB5b3UgYWRkIFggZGF0YXNldD8KCldlJ3JlIGFsd2F5cyBvcGVuIHRvIGFjY2VwdGluZyBuZXcgZGF0YXNldHMhIFtvcGVuIGEgbmV3IGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vYXBwcmV4cC9nb3ZzZzJvYXMvaXNzdWVzL25ldykgYW5kIHdlJ2xsIHRha2UgYSBsb29rIGF0IGl0LgoKIyMjIFdoeSBhcmUgeW91IG1haW50YWluaW5nIHRoZXNlPwoKVGhlIG1pc3Npb24gb2YgQXBwUkV4cCBpcyB0byBkZXZlbG9wIHRvb2xzIHRvIHNlcnZlIGEgcHVycG9zZSBvZiBtYWtpbmcgdGhlIGxpdmVzIG9mIHlvdXRocyBpbiBTaW5nYXBvcmUgYmV0dGVyLiBXZSBiZWxpZXZlIHRoYXQgdGhpcyBwcm9qZWN0IHdpbGwgaGVscCB1cyBhY2NvbXBsaXNoIHRoaXMgZ29hbC4KCiMjIyBIb3cgb2Z0ZW4gd2lsbCB5b3UgdXBkYXRlIHRoaXM/CgpXaGlsZSB3ZSBjYW5ub3QgbWFrZSBhbnkgZ3VhcmFudGVlLCB3ZSBwcm9taXNlIGl0IHdpbGwgYmUgdXBkYXRlZCBvbiBhIGJlc3QtZWZmb3J0IGJhc2lzLiBXZSB3aWxsIHVzdWFsbHkgcmVzcG9uZCB0byBuZXcgaXNzdWVzIHdpdGhpbiAzIGRheXMuIE90aGVyd2lzZSwgeW91IG1heSByZWFjaCBvdXQgdG8gW1JpZmEgb24gVHdpdHRlcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9hY2hyaW56YSkgd2hvc2Ugc3BlYXJoZWFkaW5nIHRoZSBwcm9qZWN0LgoKIyMgQ29udHJpYnV0b3JzCgoqIFtSaWZhIEFjaHJpbnphXShodHRwczovL2dpdGh1Yi5jb20vYWNocmluemEpIChNYWluIGNvbnRyaWJ1dG9yKQoKCiMjIExpY2Vuc2UKWyFbRk9TU0EgU3RhdHVzXShodHRwczovL2FwcC5mb3NzYS5pby9hcGkvcHJvamVjdHMvZ2l0JTJCZ2l0aHViLmNvbSUyRmFwcHJleHAlMkZnb3ZzZzJvYXMuc3ZnP3R5cGU9bGFyZ2UpXShodHRwczovL2FwcC5mb3NzYS5pby9wcm9qZWN0cy9naXQlMkJnaXRodWIuY29tJTJGYXBwcmV4cCUyRmdvdnNnMm9hcz9yZWY9YmFkZ2VfbGFyZ2Up readmeEtag: '"214f549f851d5662d5f6228397936ba05992d1a3"' readmeLastModified: Sun, 10 May 2020 17:18:57 GMT repositoryId: 222053059 description: >- A project which aims to convert existing government public-facing APIs into the OpenAPI 3 specs. created: '2019-11-16T05:42:25Z' updated: '2020-05-10T17:19:01Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 2 owner: apprexp logo: https://avatars.githubusercontent.com/u/34160960?v=4 license: Apache-2.0 repoEtag: '"fa25934a853fc026d8591bfae49ddab94f6f474e9b890fc7af5d27ea632bf759"' repoLastModified: Sun, 10 May 2020 17:19:01 GMT foundInMaster: true category: Server id: 18443aee0439fc15022dfa20fc623dc9 - source: openapi3 tags repository: https://github.com/sam-kruglov/basic v3: true repositoryMetadata: base64Readme: >- IyBCYXNlClRoaXMgaXMgYSBiYXNlL3RlbXBsYXRlIGZvciBhbnkgYXBwIHRoYXQgcmVxdWlyZXMgdXNlci1yb2xlLWJhc2VkIHNlY3VyaXR5LgpJdCBpcyBidWlsdCBvbiB0b3Agb2YgU3ByaW5nIEJvb3QgMi40IHVzaW5nIHRoZSBmb2xsb3dpbmcgdGVjaDoKLSBTUUwgZGF0YWJhc2UgKEgyKQotIHNjaGVtYSB2ZXJzaW9uaW5nIChGbHl3YXkpCi0gT1JNIChIaWJlcm5hdGUpCi0gY2FjaGUgKEhhemVsY2FzdCkKLSBzZXJ2bGV0cyAoU3ByaW5nIE1WQykKLSBKV1Qgc2VjdXJpdHkgKFNwcmluZyBTZWN1cml0eSBhbmQgYSBjb3VwbGUgb2YgU3ByaW5nIE9BdXRoMiBkZXBlbmRlbmNpZXMpCi0gYXV0b21hdGljIE9wZW5BUEkgdjMgZG9jdW1lbnRhdGlvbiAoU3ByaW5nRG9jKSArIFVJIChTd2FnZ2VyKSArIGdlbmVyYXRlZCBBUEkgQ2xpZW50IChvcGVuYXBpLWdlbmVyYXRvcikKLSBpbnRlZ3JhdGlvbiB0ZXN0cyAobm90aGluZyBtb2NrZWQpIG9uIHRoZSBBUEkgbGV2ZWwgdXNpbmcgdGhlIGdlbmVyYXRlZCBjbGllbnQ= readmeEtag: '"ea43fd27ffd41fe894bf9a99d754baa55b19ce0d"' readmeLastModified: Tue, 22 Dec 2020 11:13:56 GMT repositoryId: 313208050 description: Template for role-based secured backend created: '2020-11-16T06:15:40Z' updated: '2021-06-28T17:16:23Z' language: Java archived: false stars: 0 watchers: 2 forks: 0 owner: Sam-Kruglov logo: https://avatars.githubusercontent.com/u/23556336?v=4 repoEtag: '"b32f500712dbe2452303e6dfef9833643b001f5d96238671ff6f294484c0438c"' repoLastModified: Mon, 28 Jun 2021 17:16:23 GMT foundInMaster: true category: Server Implementations id: c24e0a659c09346626ade2fee44c8fb7 - source: openapi3 tags repository: https://github.com/vanathin/dubai-task v3: true repositoryMetadata: base64Readme: >- IyBNaWNyb3NlcnZpY2U6IGNvbnN1bWVyLXByb2R1Y2VyLXNlcnZpY2UKVGhpcyBpcyBhIGRlbW8gbWljcm9zZXJ2aWNlIGZvciB0aGUgY29uc3VtZXJzLXByb2R1Y2VycyBjdXJyZW50bHkgYWNjZXNzaW5nIGF0b21pYyBjb3VudGVyLgoKIyMjIFRlY2ggc3RhY2sgdXNlZDoKMS4gSmF2YSA4CjIuIFNwcmluZyBCb290IDIuNC4yCjMuIFNwcmluZyBSRVNUIEFQSSAoU3ByaW5nIFdlYikKNC4gTG9tYm9rIDEuMTguMTYKNS4gU3ByaW5nIERhdGEgSlBBICYgTXlTUUwtOAo3LiBEb2NrZXJpemVkIChkb2NrZXItY29tcG9zZS55bWwgYW5kIERvY2tlcmZpbGUgaXMgaW5jbHVkZWQpCjguIFRERCBhcHByb2FjaCB1c2luZyBKVW5pdCA1LCBNb2NraXRvLCBhbmQgU3ByaW5nIEJvb3QgVGVzdAoxMC4gU3ByaW5nIGJvb3Qgc3RhcnRlciB2YWxpZGF0aW9uIGZvciByZXF1ZXN0IHZhbGlkYXRpb24gIAoKIyMjIFN0ZXBzIHRvIHJ1biBtaWNyby1zZXJ2aWNlIGFsb25nIHdpdGggYE15U1FMYCBhcyBjb250YWluZXJzIGluIGRvY2tlciB1c2luZyBgZG9ja2VyIGNvbXBvc2VgOgojIyMjIyBTdGVwIDE6IE9wZW4gdGhlIHRlcm1pbmFsIChvcikgQ29tbWFuZCBQcm9tcHQKIyMjIyMgU3RlcCAyOiBFbnRlciB0aGUgcHJvamVjdCBkaXJlY3RvcnksIAogICAgY2QgPHByb2plY3RfZGlyZWN0b3J5PgoKIyMjIyMgU3RlcCAzOiBUbyBjbGVhbiBhbmQgcGFja2FnZSB0aGUgbWljcm8tc2VydmljZSBsb2NhbGx5CiAgICBtdm53IGNsZWFuIHBhY2thZ2UKCiMjIyMjIFN0ZXAgNDogVXNlIGBkb2NrZXIgY29tcG9zZWAgdG8gYnVpbGQgYW5kIHJ1biBib3RoIE15U1FMICYgbWljcm8tc2VydmljZSBhcyBhIGRvY2tlciBjb250YWluZXJzOgogICAgZG9ja2VyLWNvbXBvc2UgdXAgLS1idWlsZApOb3RlOiBBYm92ZSBkb2NrZXIgY29tcG9zZSBjb21tYW5kIHdpbGwgcnVuIHRoZSBjb250YWluZXJzIG5hbWVseSwKICAgMS4gYGVrYXItbXlzcWxgIGNvbnRhaW5lciBmb3IgbXlzcWwgYW5kIGl0cyBwb3J0IGlzIGAzMzA2YAogICAyLiBgZWthci1wcm9kdWNlci1jb25zdW1lci1zZXJ2aWNlYCBjb250YWluZXIgZm9yIG1pY3Jvc2VydmljZSBhbmQgaXRzIHBvcnQgaXMgYDgwODBgCgotLS0KCiMjIyBPcGVuQVBJIDMuMCBEb2N1bWVudGF0aW9uIFVSTDoKCmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zd2FnZ2VyLXVpL2luZGV4Lmh0bWw/Y29uZmlnVXJsPS92My9hcGktZG9jcy9zd2FnZ2VyLWNvbmZpZyAgCiFbQVBJX0RvY3VtZW50YXRpb24gaW1nIG1pc3NpbmddKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS92YW5hdGhpbi9la2FyLXByb2R1Y2VyLWNvbnN1bWVyLXNlcnZpY2UvbWFpbi9pbWcvc3dhZ2dlci11aS5qcGcpCk5vdGU6IEFsc28gW1Bvc3RtYW4gQ29sbGVjdGlvbl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3ZhbmF0aGluL2VrYXItcHJvZHVjZXItY29uc3VtZXItc2VydmljZS9tYWluL0VrYXIucG9zdG1hbl9jb2xsZWN0aW9uLmpzb24pIGhhcyBiZWVuIHB1c2hlZCBpbnRvIHRoZSByZXBvc2l0b3J5IGZvciB5b3VyIHJlZmVyZW5jZS4KCi0tLQoKIyMjIE15U1FMIERhdGFiYXNlIENMSSB0byB2ZXJpZnkgdGhlIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uOgojIyMjIyBQcmVyZXF1aXNpdGU6IApEb2NrZXIgaGFzIHRvIGJlIHRoZXJlIG9uIHRoZSBob3N0IG1hY2hpbmUKIyMjIyMgU3RlcCAxOiBPcGVuIGEgbmV3IHRlcm1pbmFsIChvcikgbmV3IENvbW1hbmQgUHJvbXB0ICh3aXRob3V0IGRpc3R1cmJpbmcgdGhlIGVhcmxpZXIgb25lKQojIyMjIyBTdGVwIDI6IENvbm5lY3QgdG8gYGVrYXItbXlzcWxgIGNvbnRhaW5lciB1c2luZyBkb2NrZXIgY2xpIGNvbW1hbmQsIAogICAgZG9ja2VyIGV4ZWMgLWl0IGVrYXItbXlzcWwgL2Jpbi9iYXNoCiMjIyMjIFN0ZXAgMzogQ29ubmVjdCB0byBteXNxbCBzZXJ2ZXIKICAgIG15c3FsIC11c2EgLXBwYXNzd29yZCAtaCBsb2NhbGhvc3QgLVAzMzA2CiMjIyMjIFN0ZXAgNDogRGlzcGxheSBhbGwgdGhlIGF2YWlsYWJsZSBkYXRhYmFzZXMsCiAgICBzaG93IGRhdGFiYXNlczsKIyMjIyMgU3RlcCA1OiBTd2l0Y2ggdG8gZWthcmRiCiAgICB1c2UgZWthcmRiOwojIyMjIyBTdGVwIDY6IExpc3QgYWxsIHRoZSBhdmFpbGFibGUgdGFibGVzCiAgICBzaG93IHRhYmxlczsKIyMjIyMgU3RlcCA3OiBSdW4gdGhlIHNlbGVjdCBxdWVyaWVzIHRvIHZlcmlmeSB0aGUgZGF0YQogICAgc2VsZWN0ICogZnJvbSByZXF1ZXN0X2xvZzsgc2VsZWN0ICogZnJvbSBjb3VudGVyX2xvZzsKTm90ZTogUHJlc2VydmUgdGhpcyBzdGF0ZSB1bnRpbCB5b3UgY29tcGxldGUgeW91ciB0ZXN0aW5nLgojIyMjIyBTdGVwIDg6IEV4aXQgZnJvbSB0aGUgbXlzcWwgY2xpCiAgICBleGl0CiMjIyMjIFN0ZXAgOTogRXhpdCBmcm9tIHRoZSBteXNxbCBjb250YWluZXIKICAgIGV4aXQKCiFbTXlTUUwgQ0xJIE91dHB1dF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3ZhbmF0aGluL2VrYXItcHJvZHVjZXItY29uc3VtZXItc2VydmljZS9tYWluL2ltZy9teXNxbF9kYl9sb2cuanBnKQoKLS0tCgoKIyMjIFByb2dyYW0gb3V0cHV0cwoKIyMjIyBMZXNzIGNvbnN1bWVycyBhbmQgbW9yZSBwcm9kdWNlcnMKIVtMZXNzIGNvbnN1bWVycyBhbmQgbW9yZSBwcm9kdWNlcnNdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS92YW5hdGhpbi9la2FyLXByb2R1Y2VyLWNvbnN1bWVyLXNlcnZpY2UvbWFpbi9pbWcvTW9yZV9Qcm9kdWNlcl9MZXNzX0NvbnN1bWVyLkpQRykKCiMjIyMgTW9yZSBjb25zdW1lcnMgYW5kIGxlc3MgcHJvZHVjZXJzCiFbTW9yZSBjb25zdW1lcnMgYW5kIGxlc3MgcHJvZHVjZXJzXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdmFuYXRoaW4vZWthci1wcm9kdWNlci1jb25zdW1lci1zZXJ2aWNlL21haW4vaW1nL0xlc3NfUHJvZHVjZXJfTW9yZV9Db25zdW1lci5KUEcpCgojIyMjIEVxdWFsIGNvbnN1bWVycyBhbmQgcHJvZHVjZXJzCiFbRXF1YWwgY29uc3VtZXJzIGFuZCBwcm9kdWNlcnNdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS92YW5hdGhpbi9la2FyLXByb2R1Y2VyLWNvbnN1bWVyLXNlcnZpY2UvbWFpbi9pbWcvRXF1YWxfUHJvZHVjZXJfQ29uc3VtZXIuSlBHKQoKLS0tCg== readmeEtag: '"b36de953644fc2470e15a5a8737b8f1c45aaba09"' readmeLastModified: Mon, 18 Jan 2021 00:47:53 GMT repositoryId: 330501920 description: Demo project for producer & consumer with counters, created: '2021-01-17T22:46:03Z' updated: '2021-01-29T14:43:46Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: vanathin logo: https://avatars.githubusercontent.com/u/10528013?v=4 repoEtag: '"e031282de76d6fd018fb21a11f38e8cfa0d81bea6e99bbd9d688cb5892020437"' repoLastModified: Fri, 29 Jan 2021 14:43:46 GMT foundInMaster: true category: - Code Generators - Server Implementations id: 98c89ef6075b3eb38e72cd151757380a - source: IMPLEMENTATIONS.md name: swagger-models homepage: >- https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-models language: Java source_description: OpenAPI 3.0 Java Pojos category: - Low-level Tooling - Code Generators foundInMaster: true repository: >- https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-models repositoryMetadata: base64Readme: >- IyBTd2FnZ2VyIENvcmUgPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLmlvL3dvcmRwcmVzcy9pbWFnZXMvYXNzZXRzL1NXLWxvZ28tY2xyLnBuZyIgaGVpZ2h0PSI1MCIgYWxpZ249InJpZ2h0Ij4KCioqTk9URToqKiBJZiB5b3UncmUgbG9va2luZyBmb3IgU3dhZ2dlciBDb3JlIDEuNS5YIGFuZCBPcGVuQVBJIDIuMCwgcGxlYXNlIHJlZmVyIHRvIFsxLjUgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvMS41KS4KCioqTk9URToqKiBTaW5jZSB2ZXJzaW9uIDIuMS43LCBTd2FnZ2VyIENvcmUgYWxzbyBzdXBwb3J0cyB0aGUgSmFrYXJ0YSBuYW1lc3BhY2UuIFRoZXJlIGFyZSBhIHBhcmFsbGVsIHNldCBvZiBhcnRpZmFjdHMgd2l0aCB0aGUgYC1qYWthcnRhYCBzdWZmaXgsIHByb3ZpZGluZyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGFzIHRoZSB1bnN1ZmZpeGVkIChpLmUuOiBgamF2YXhgKSBhcnRpZmFjdHMuClBsZWFzZSBzZWUgdGhlIFtXaWtpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3dpa2kvU3dhZ2dlci0yLlgtLS1HZXR0aW5nLXN0YXJ0ZWQpIGZvciBtb3JlIGRldGFpbHMuCgoqKk5PVEU6KiogU2luY2UgdmVyc2lvbiAyLjIuMCBTd2FnZ2VyIENvcmUgc3VwcG9ydHMgT3BlbkFQSSAzLjE7IHNlZSBbdGhpcyBwYWdlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3dpa2kvU3dhZ2dlci0yLlgtLS1PcGVuQVBJLTMuMSkgZm9yIGRldGFpbHMKCiFbQnVpbGQgVGVzdCBEZXBsb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvd29ya2Zsb3dzL0J1aWxkJTIwVGVzdCUyMERlcGxveSUyMG1hc3Rlci9iYWRnZS5zdmc/YnJhbmNoPW1hc3RlcikKWyFbTWF2ZW4gQ2VudHJhbF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2lvLnN3YWdnZXIuY29yZS52My9zd2FnZ2VyLXByb2plY3QvYmFkZ2Uuc3ZnP3N0eWxlPXBsYXN0aWMpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvaW8uc3dhZ2dlci5jb3JlLnYzL3N3YWdnZXItcHJvamVjdCkKClN3YWdnZXIgQ29yZSBpcyBhIEphdmEgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbi4gQ3VycmVudCB2ZXJzaW9uIHN1cHBvcnRzICpKQVgtUlMyKiAoYGphdmF4YCBhbmQgYGpha2FydGFgIG5hbWVzcGFjZXMpLgoKIyMgR2V0IHN0YXJ0ZWQgd2l0aCBTd2FnZ2VyIENvcmUhClNlZSB0aGUgZ3VpZGUgb24gW2dldHRpbmcgc3RhcnRlZCB3aXRoIFN3YWdnZXIgQ29yZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS93aWtpL1N3YWdnZXItMi5YLS0tR2V0dGluZy1zdGFydGVkKSB0byBnZXQgc3RhcnRlZCB3aXRoIGFkZGluZyBTd2FnZ2VyIHRvIHlvdXIgQVBJLgoKIyMgU2VlIHRoZSBXaWtpIQpUaGUgW2dpdGh1YiB3aWtpXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3dpa2kpIGNvbnRhaW5zIGRvY3VtZW50YXRpb24sIHNhbXBsZXMsIGNvbnRyaWJ1dGlvbnMsIGV0Yy4gU3RhcnQgdGhlcmUuCgojIyBDb21wYXRpYmlsaXR5ClRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gaGFzIHVuZGVyZ29uZSBzZXZlcmFsIHJldmlzaW9ucyBzaW5jZSBpbml0aWFsIGNyZWF0aW9uIGluIDIwMTAuICBUaGUgU3dhZ2dlciBDb3JlIHByb2plY3QgaGFzIHRoZSBmb2xsb3dpbmcgY29tcGF0aWJpbGl0aWVzIHdpdGggdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKClN3YWdnZXIgY29yZSBWZXJzaW9uICAgICAgfCBSZWxlYXNlIERhdGUgfCBPcGVuQVBJIFNwZWMgY29tcGF0aWJpbGl0eSB8IE5vdGVzIHwgU3RhdHVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tIHwgLS0tLQoyLjIuMjMgKCoqY3VycmVudCBzdGFibGUqKil8IDIwMjQtMDgtMjggICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIzKSB8IFN1cHBvcnRlZAoyLjIuMjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjQtMDUtMTUgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIyKSB8IFN1cHBvcnRlZAoyLjIuMjEgICAgICAgICAgICAgICAgICAgICB8IDIwMjQtMDMtMjAgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIxKSB8IFN1cHBvcnRlZAoyLjIuMjAgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTItMTkgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjIwKSB8IFN1cHBvcnRlZAoyLjIuMTkgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTEtMTAgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE5KSB8IFN1cHBvcnRlZAoyLjIuMTggICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTAtMjUgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE4KSB8IFN1cHBvcnRlZAoyLjIuMTcgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMTAtMTIgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE3KSB8IFN1cHBvcnRlZAoyLjIuMTYgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDktMTggICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE2KSB8IFN1cHBvcnRlZAoyLjIuMTUgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDctMDggICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE1KSB8IFN1cHBvcnRlZAoyLjIuMTQgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMjYgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjE0KSB8IFN1cHBvcnRlZAoyLjIuMTMgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMjQgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjEzKSB8IFN1cHBvcnRlZAoyLjIuMTIgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMTMgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjEyKSB8IFN1cHBvcnRlZAoyLjIuMTEgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDYtMDEgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjExKSB8IFN1cHBvcnRlZAoyLjIuMTAgICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDUtMTUgICB8IDMueCAgICAgICAgICAgfCBbdGFnIHYyLjIuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjEwKSB8IFN1cHBvcnRlZAoyLjIuOSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMy0wMy0yMCAgfCAzLnggICAgICAgICAgIHwgW3RhZyB2Mi4yLjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4yLjggICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDEtMDYgIHwgMy54ICAgICAgICAgICB8IFt0YWcgdjIuMi44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMi44KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMi43ICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTExLTE1ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjIuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjIuNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjIuNiAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0xMS0wMiAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4yLjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4yLjUgICAgICAgICAgICAgICAgICAgICB8IDIwMjItMTEtMDIgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMi41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMi41KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMi40ICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTEwLTE2ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjIuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjIuNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjIuMyAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0wOS0yNyAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4yLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4yLjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjItMDctMjAgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMi4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMi4yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMi4xICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTA2LTE1ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjIuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjIuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjIuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0wNC0wNCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4yLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4yLjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjEzICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTAyLTA3ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjEzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuMTIgICAgICAgICAgICAgICAgICAgICB8IDIwMjEtMTItMjMgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS4xMSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMS0wOS0yOSAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjExXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS4xMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjEwICAgICAgICAgICAgICAgICAgICAgfCAyMDIxLTA2LTI4ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuOSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMS0wNC0yMCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjggICAgICAgICAgICAgICAgICAgICB8IDIwMjEtMDQtMTggIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS44KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS43ICAgICAgICAgICAgICAgICAgICAgfCAyMDIxLTAyLTE4ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuNiAgICAgICAgICAgICAgICAgICAgIHwgMjAyMC0xMi0wNCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjUgICAgICAgICAgICAgICAgICAgICB8IDIwMjAtMTAtMDEgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS41KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS40ICAgICAgICAgICAgICAgICAgICAgfCAyMDIwLTA3LTI0ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuMyAgICAgICAgICAgICAgICAgICAgIHwgMjAyMC0wNi0yNyAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4xLjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjAtMDQtMDEgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMS4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMS4yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMS4xICAgICAgICAgICAgICAgICAgICAgfCAyMDIwLTAxLTAyICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjEuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjEuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjEuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0xMS0xNiAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4xLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4xLjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjEwICAgICAgICAgICAgICAgICAgICB8IDIwMTktMTAtMTEgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4xMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC45ICAgICAgICAgICAgICAgICAgICAgfCAyMDE5LTA4LTIyICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuOCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0wNC0yNCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjcgICAgICAgICAgICAgICAgICAgICB8IDIwMTktMDItMTggIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC43XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC43KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC42ICAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTExLTI3ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuNSAgICAgICAgICAgICAgICAgICAgIHwgMjAxOC0wOS0xOSAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjQgICAgICAgICAgICAgICAgICAgICB8IDIwMTgtMDktMDUgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC40KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC4zICAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTA4LTA5ICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMTQgKCoqY3VycmVudCBzdGFibGUqKil8IDIwMjQtMDMtMTkgICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjE0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMTMgICAgICAgICAgICAgICAgICAgIHwgMjAyNC0wMS0yNiAgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi4xM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuMTMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi4xMiAgICAgICAgICAgICAgICAgICAgfCAyMDIzLTEwLTE0ICAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjEyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi4xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjExICAgICAgICAgICAgICAgICAgICB8IDIwMjMtMDUtMTUgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi4xMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuMTEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi4xMCAgICAgICAgICAgICAgICAgICAgfCAyMDIzLTAzLTIxICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuOSAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0xMS0xNSAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjggICAgICAgICAgICAgICAgICAgICB8IDIwMjItMTAtMTYgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi44KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi43ICAgICAgICAgICAgICAgICAgICAgfCAyMDIyLTA5LTI3ICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuNiAgICAgICAgICAgICAgICAgICAgIHwgMjAyMi0wNC0wNCAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjUgICAgICAgICAgICAgICAgICAgICB8IDIwMjItMDItMDcgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi41KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi40ICAgICAgICAgICAgICAgICAgICAgfCAyMDIxLTEyLTIzICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMyAgICAgICAgICAgICAgICAgICAgIHwgMjAyMS0wOS0yOSAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS42LjIgICAgICAgICAgICAgICAgICAgICB8IDIwMjAtMDctMDEgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNi4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNi4yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNi4xICAgICAgICAgICAgICAgICAgICAgfCAyMDIwLTA0LTAxICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjYuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjYuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjYuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0xMS0xNiAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS42LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS42LjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS41LjI0ICAgICAgICAgICAgICAgICAgICB8IDIwMTktMTAtMTEgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNS4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjUuMjQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4yMyAgICAgICAgICAgICAgICAgICAgfCAyMDE5LTA4LTIyICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjIzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjUuMjIgICAgICAgICAgICAgICAgICAgIHwgMjAxOS0wMi0xOCAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS41LjIyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNS4yMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS41LjIxICAgICAgICAgICAgICAgICAgICB8IDIwMTgtMDgtMDkgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNS4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjUuMjEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4yMCAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTA1LTIzICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjIwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuMiAgICAgICAgICAgICAgICAgICAgIHwgMjAxOC0wNS0yMyAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjEgICAgICAgICAgICAgICAgICAgICB8IDIwMTgtMDQtMTYgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4xXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC4xKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4xOSAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTA0LTE2ICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjE5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuMCAgICAgICAgICAgICAgICAgICAgIHwgMjAxOC0wMy0yMCAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjAtcmM0ICAgICAgICAgICAgICAgICB8IDIwMTgtMDEtMjIgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4wLXJjNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMC1yYzQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjIuMC4wLXJjMyAgICAgICAgICAgICAgICAgfCAyMDE3LTExLTIxICB8IDMuMCAgICAgICAgICAgfCBbdGFnIHYyLjAuMC1yYzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92Mi4wLjAtcmMzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoyLjAuMC1yYzIgICAgICAgICAgICAgICAgIHwgMjAxNy0wOS0yOSAgfCAzLjAgICAgICAgICAgIHwgW3RhZyB2Mi4wLjAtcmMyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjIuMC4wLXJjMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMi4wLjAtcmMxICAgICAgICAgICAgICAgICB8IDIwMTctMDgtMTcgIHwgMy4wICAgICAgICAgICB8IFt0YWcgdjIuMC4wLXJjMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YyLjAuMC1yYzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuNS4xOCAgICAgICAgICAgICAgICAgICAgfCAyMDE4LTAxLTIyICB8IDIuMCAgICAgICAgICAgfCBbdGFnIHYxLjUuMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS41LjE4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjUuMTcgICAgICAgICAgICAgICAgICAgIHwgMjAxNy0xMS0yMSAgfCAyLjAgICAgICAgICAgIHwgW3RhZyB2MS41LjE3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvdjEuNS4xNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTdXBwb3J0ZWQKMS41LjE2ICAgICAgICAgICAgICAgICAgICB8IDIwMTctMDctMTUgIHwgMi4wICAgICAgICAgICB8IFt0YWcgdjEuNS4xNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29yZS90cmVlL3YxLjUuMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3VwcG9ydGVkCjEuMy4xMiAgICAgICAgICAgICAgICAgICAgfCAyMDE0LTEyLTIzICB8IDEuMiAgICAgICAgICAgfCBbdGFnIHYxLjMuMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS4zLjEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFN1cHBvcnRlZAoxLjIuNCAgICAgICAgICAgICAgICAgICAgIHwgMjAxMy0wNi0xOSAgfCAxLjEgICAgICAgICAgIHwgW3RhZyBzd2FnZ2VyLXByb2plY3RfMi4xMC4wLTEuMi40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb3JlL3RyZWUvc3dhZ2dlci1wcm9qZWN0XzIuMTAuMC0xLjIuNCkgfCBEZXByZWNhdGVkCjEuMC4wICAgICAgICAgICAgICAgICAgICAgfCAyMDExLTEwLTE2ICB8IDEuMCAgICAgICAgICAgfCBbdGFnIHYxLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvdHJlZS92MS4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlcHJlY2F0ZWQKCgojIyMgQ2hhbmdlIEhpc3RvcnkKSWYgeW91J3JlIGludGVyZXN0ZWQgaW4gdGhlIGNoYW5nZSBoaXN0b3J5IG9mIHN3YWdnZXIgYW5kIHRoZSBTd2FnZ2VyIENvcmUgZnJhbWV3b3JrLCBzZWUgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvcmUvcmVsZWFzZXMpLgoKIyMjIFByZXJlcXVpc2l0ZXMKWW91IG5lZWQgdGhlIGZvbGxvd2luZyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBpbiB5b3VyICRQQVRIOgoKKiBKYXZhIDExCiogQXBhY2hlIG1hdmVuIDMuMC40IG9yIGdyZWF0ZXIKKiBKYWNrc29uIDIuNC41IG9yIGdyZWF0ZXIKCgojIyMgVG8gYnVpbGQgZnJvbSBzb3VyY2UgKGN1cnJlbnRseSAyLjIuMjQtU05BUFNIT1QpCmBgYAojIGZpcnN0IHRpbWUgYnVpbGRpbmcgbG9jYWxseQptdm4gLU4KYGBgCgpTdWJzZXF1ZW50IGJ1aWxkczoKYGBgCm12biBpbnN0YWxsCmBgYAoKVGhpcyB3aWxsIGJ1aWxkIHRoZSBtb2R1bGVzLgoKT2YgY291cnNlIGlmIHlvdSBkb24ndCB3YW50IHRvIGJ1aWxkIGxvY2FsbHkgeW91IGNhbiBncmFiIGFydGlmYWN0cyBmcm9tIG1hdmVuIGNlbnRyYWw6CgpgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL2lvL3N3YWdnZXIvY29yZS9gCgojIyBTYW1wbGUgQXBwcwpUaGUgc2FtcGxlcyBoYXZlIG1vdmVkIHRvIFthIG5ldyByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1zYW1wbGVzL3RyZWUvMi4wKSBhbmQgY29udGFpbiB2YXJpb3VzIGludGVncmF0aW9ucyBhbmQgY29uZmlndXJhdGlvbnMuCgojIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4K readmeEtag: '"a87ea4465f0bbcd4c610fb92bdc74dd1e1f1f529"' readmeLastModified: Wed, 28 Aug 2024 11:53:22 GMT repositoryId: 2003641 description: >- Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API created: '2011-07-05T23:44:11Z' updated: '2024-09-02T15:00:35Z' language: Java archived: false stars: 7375 watchers: 310 forks: 2173 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 repoEtag: '"80a22dc83052ab8bfb4655027344018d934a8c686fa28b970054bdc385dcba72"' repoLastModified: Mon, 02 Sep 2024 15:00:35 GMT id: 266d60df2d48ad8a47539de3c1071f3a - source: IMPLEMENTATIONS.md name: Microsoft.OpenApi.net homepage: https://github.com/microsoft/openapi.net/ language: dotnet source_description: C# based parser with definition validation and migration support from V2 category: - Low-level Tooling - Parsers foundInMaster: true repository: https://github.com/microsoft/openapi.net/ repositoryMetadata: base64Readme: >- IVtDYXRlZ29yeSBvdmVydmlldyBzY3JlZW5zaG90XShkb2NzL2ltYWdlcy9vYWluZXQucG5nICJNaWNyb3NvZnQgKyBPcGVuQVBJID0gTG92ZSIpDQoNCiMgT3BlbkFQSS5ORVQgDQoNCnxQYWNrYWdlfE51Z2V0fA0KfC0tfC0tfA0KfE1vZGVscyBhbmQgV3JpdGVyc3xbIVtudWdldF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9udWdldC92L01pY3Jvc29mdC5PcGVuQXBpLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS8pIHwNCnxSZWFkZXJzIHwgWyFbbnVnZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9NaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzLykgfA0KfEhpZGl8WyFbbnVnZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9NaWNyb3NvZnQuT3BlbkFwaS5IaWRpLnN2ZyldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS5IaWRpLykNCg0KDQpUaGUgKipPcGVuQVBJLk5FVCoqIFNESyBjb250YWlucyBhIHVzZWZ1bCBvYmplY3QgbW9kZWwgZm9yIE9wZW5BUEkgZG9jdW1lbnRzIGluIC5ORVQgYWxvbmcgd2l0aCBjb21tb24gc2VyaWFsaXplcnMgdG8gZXh0cmFjdCByYXcgT3BlbkFQSSBKU09OIGFuZCBZQU1MIGRvY3VtZW50cyBmcm9tIHRoZSBtb2RlbC4NCg0KKipTZWUgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGFuZCBpdHMgaGlzdG9yeSBoZXJlOiA8YSBocmVmPSJodHRwczovL3d3dy5vcGVuYXBpcy5vcmciPk9wZW5BUEkgSW5pdGlhdGl2ZTwvYT4qKg0KDQpQcm9qZWN0IE9iamVjdGl2ZXMgDQoNCi0gUHJvdmlkZSBhIHNpbmdsZSBzaGFyZWQgb2JqZWN0IG1vZGVsIGluIC5ORVQgZm9yIE9wZW5BUEkgZGVzY3JpcHRpb25zLg0KLSBJbmNsdWRlIHRoZSBtb3N0IHByaW1pdGl2ZSBSZWFkZXIgZm9yIGluZ2VzdGluZyBPcGVuQVBJIEpTT04gYW5kIFlBTUwgZG9jdW1lbnRzIGluIGJvdGggVjIgYW5kIFYzIGZvcm1hdHMuDQotIFByb3ZpZGUgT3BlbkFQSSBkZXNjcmlwdGlvbiB3cml0ZXJzIGZvciBib3RoIFYyIGFuZCBWMyBzcGVjaWZpY2F0aW9uIGZvcm1hdHMuDQotIEVuYWJsZSBkZXZlbG9wZXJzIHRvIGNyZWF0ZSBSZWFkZXJzIHRoYXQgdHJhbnNsYXRlIGRpZmZlcmVudCBkYXRhIGZvcm1hdHMgaW50byBPcGVuQVBJIGRlc2NyaXB0aW9ucy4gDQoNCiMgSW5zdGFsbGF0aW9uDQoNCi0gSW5zdGFsbCBjb3JlIE51Z2V0IHBhY2thZ2UgWyoqTWljcm9zb2Z0Lk9wZW5BcGkqKl0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5PcGVuQXBpKQ0KLSBJbnN0YWxsIHJlYWRlcnMgTnVnZXQgcGFja2FnZSBbKipNaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzKipdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuT3BlbkFwaS5SZWFkZXJzKQ0KDQojIFByb2Nlc3NvcnMNClRoZSBPcGVuQVBJLk5FVCBwcm9qZWN0IGhvbGRzIHRoZSBiYXNlIG9iamVjdCBtb2RlbCBmb3IgcmVwcmVzZW50aW5nIE9wZW5BUEkgZG9jdW1lbnRzIGFzIC5ORVQgb2JqZWN0cy4gU29tZSBkZXZlbG9wZXJzIGhhdmUgZm91bmQgdGhlIG5lZWQgdG8gd3JpdGUgcHJvY2Vzc29ycyB0aGF0IGNvbnZlcnQgb3RoZXIgZGF0YSBmb3JtYXRzIGludG8gdGhpcyBPcGVuQVBJLk5FVCBvYmplY3QgbW9kZWwuIFdlJ2QgbGlrZSB0byBjdXJhdGUgdGhhdCBsaXN0IG9mIHByb2Nlc3NvcnMgaW4gdGhpcyBzZWN0aW9uIG9mIHRoZSByZWFkbWUuIA0KDQpUaGUgYmFzZSBKU09OIGFuZCBZQU1MIHByb2Nlc3NvcnMgYXJlIGJ1aWx0IGludG8gdGhpcyBwcm9qZWN0LiBCZWxvdyBpcyB0aGUgbGlzdCBvZiB0aGUgb3RoZXIgc3VwcG9ydGVkIHByb2Nlc3NvciBwcm9qZWN0cy4NCg0KLSBbKipDIyBDb21tZW50IC8gQW5ub3RhdGlvbiBQcm9jZXNzb3IqKl0oaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9PcGVuQVBJLk5FVC5DU2hhcnBBbm5vdGF0aW9ucykgOiBDb252ZXJ0cyBzdGFuZGFyZCAuTkVUIGFubm90YXRpb25zICggLy8vIGNvbW1lbnRzICkgZW1pdHRlZCBmcm9tIHlvdXIgYnVpbGQgKE1TQnVpbGQuZXhlKSBpbnRvIE9wZW5BUEkuTkVUIGRvY3VtZW50IG9iamVjdC4gDQoNCi0gWyoqT0RhdGEgQ1NETCBQcm9jZXNzb3IqKl0oaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9PcGVuQVBJLk5FVC5PRGF0YSkgOiBDb252ZXJ0cyB0aGUgWE1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBFbnRpdHkgRGF0YSBNb2RlbCAoRURNKSBkZXNjcmliaW5nIGFuIE9EYXRhIFNlcnZpY2UgaW50byBPcGVuQVBJLk5FVCBkb2N1bWVudCBvYmplY3QuIA0KDQojIEV4YW1wbGUgVXNhZ2UNCg0KQ3JlYXRpbmcgYW4gT3BlbkFQSSBEb2N1bWVudA0KDQpgYGBDIw0KdmFyIGRvY3VtZW50ID0gbmV3IE9wZW5BcGlEb2N1bWVudA0Kew0KICAgIEluZm8gPSBuZXcgT3BlbkFwaUluZm8NCiAgICB7DQogICAgICAgIFZlcnNpb24gPSAiMS4wLjAiLA0KICAgICAgICBUaXRsZSA9ICJTd2FnZ2VyIFBldHN0b3JlIChTaW1wbGUpIiwNCiAgICB9LA0KICAgIFNlcnZlcnMgPSBuZXcgTGlzdDxPcGVuQXBpU2VydmVyPg0KICAgIHsNCiAgICAgICAgbmV3IE9wZW5BcGlTZXJ2ZXIgeyBVcmwgPSAiaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vYXBpIiB9DQogICAgfSwNCiAgICBQYXRocyA9IG5ldyBPcGVuQXBpUGF0aHMNCiAgICB7DQogICAgICAgIFsiL3BldHMiXSA9IG5ldyBPcGVuQXBpUGF0aEl0ZW0NCiAgICAgICAgew0KICAgICAgICAgICAgT3BlcmF0aW9ucyA9IG5ldyBEaWN0aW9uYXJ5PE9wZXJhdGlvblR5cGUsIE9wZW5BcGlPcGVyYXRpb24+DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgW09wZXJhdGlvblR5cGUuR2V0XSA9IG5ldyBPcGVuQXBpT3BlcmF0aW9uDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9ICJSZXR1cm5zIGFsbCBwZXRzIGZyb20gdGhlIHN5c3RlbSB0aGF0IHRoZSB1c2VyIGhhcyBhY2Nlc3MgdG8iLA0KICAgICAgICAgICAgICAgICAgICBSZXNwb25zZXMgPSBuZXcgT3BlbkFwaVJlc3BvbnNlcw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBbIjIwMCJdID0gbmV3IE9wZW5BcGlSZXNwb25zZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0gIk9LIg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfTsNCmBgYA0KDQpSZWFkaW5nIGFuZCB3cml0aW5nIGFuIE9wZW5BUEkgZGVzY3JpcHRpb24NCg0KYGBgQyMNCnZhciBodHRwQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQNCnsNCiAgICBCYXNlQWRkcmVzcyA9IG5ldyBVcmkoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uLyIpDQp9Ow0KDQp2YXIgc3RyZWFtID0gYXdhaXQgaHR0cENsaWVudC5HZXRTdHJlYW1Bc3luYygibWFzdGVyL2V4YW1wbGVzL3YzLjAvcGV0c3RvcmUueWFtbCIpOw0KDQovLyBSZWFkIFYzIGFzIFlBTUwNCnZhciBvcGVuQXBpRG9jdW1lbnQgPSBuZXcgT3BlbkFwaVN0cmVhbVJlYWRlcigpLlJlYWQoc3RyZWFtLCBvdXQgdmFyIGRpYWdub3N0aWMpOw0KDQovLyBXcml0ZSBWMiBhcyBKU09ODQp2YXIgb3V0cHV0U3RyaW5nID0gb3BlbkFwaURvY3VtZW50LlNlcmlhbGl6ZShPcGVuQXBpU3BlY1ZlcnNpb24uT3BlbkFwaTJfMCwgT3BlbkFwaUZvcm1hdC5Kc29uKTsNCg0KYGBgDQoNCiMgVmFsaWRhdGluZy9UZXN0aW5nIE9wZW5BUEkgZGVzY3JpcHRpb25zDQpJbiBvcmRlciB0byB0ZXN0IHRoZSB2YWxpZGl0eSBvZiBhbiBPcGVuQXBpIGRvY3VtZW50LCB3ZSBhdmFpbCB0aGUgZm9sbG93aW5nIHRvb2xzOg0KLSBbTWljcm9zb2Z0Lk9wZW5BcGkuSGlkaV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5PcGVuQXBpLkhpZGkpDQoNCiAgICBBIGNvbW1hbmRsaW5lIHRvb2wgZm9yIHZhbGlkYXRpbmcgYW5kIHRyYW5zZm9ybWluZyBPcGVuQVBJIGRlc2NyaXB0aW9ucy4gW0luc3RhbGxhdGlvbiBndWlkZWxpbmVzIGFuZCBkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L09wZW5BUEkuTkVUL2Jsb2Ivdm5leHQvc3JjL01pY3Jvc29mdC5PcGVuQXBpLkhpZGkvcmVhZG1lLm1kKQ0KDQotIE1pY3Jvc29mdC5PcGVuQXBpLldvcmtiZW5jaA0KDQogICAgQSB3b3JrYmVuY2ggdG9vbCBjb25zaXN0aW5nIG9mIGEgR1VJIHdoZXJlIHlvdSBjYW4gdGVzdCBhbmQgY29udmVydCBPcGVuQVBJIGRlc2NyaXB0aW9ucyBpbiBib3RoIEpTT04gYW5kIFlBTUwgZnJvbSB2Mi0tPnYzIGFuZCB2aWNlIHZlcnNhLg0KDQogICAgIyMjIyBJbnN0YWxsYXRpb24gZ3VpZGVsaW5lczoNCiAgICAxLiBDbG9uZSB0aGUgcmVwbyBsb2NhbGx5IGJ5IHJ1bm5pbmcgdGhpcyBjb21tYW5kOg0KICAgICAgICBgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvT3BlbkFQSS5ORVQuZ2l0YA0KICAgIDIuIE9wZW4gdGhlIHNvbHV0aW9uIGZpbGUgYCguc2xuKWAgaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3Qgd2l0aCBWaXN1YWwgU3R1ZGlvDQogICAgMy4gTmF2aWdhdGUgdG8gdGhlIGBzcmMvTWljcm9zb2Z0Lk9wZW5BcGkuV29ya2JlbmNoYCBkaXJlY3RvcnkgYW5kIHNldCBpdCBhcyB0aGUgc3RhcnR1cCBwcm9qZWN0DQogICAgNC4gUnVuIHRoZSBwcm9qZWN0IGFuZCB5b3UnbGwgc2VlIGEgR1VJIHBvcCB1cCByZXNlbWJsaW5nIHRoZSBvbmUgYmVsb3c6DQogICAgDQogICAgDQogICAgPGltZyBzcmM9Imh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM2Nzg3NjQ1LzIzNTg4NDQ0MS1mNDVkMmVmNy1jMjdiLTRlMWEtYTg5MC1kNmY3ZmJlZjg3YzMucG5nIiB3aWR0aD0iNzAwIiBoZWlnaHQ9IjUwMCI+DQogICAgDQogICAgNS4gQ29weSBhbmQgcGFzdGUgeW91ciBPcGVuQVBJIGRlc2NyaXB0aW9ucyBpbiB0aGUgKipJbnB1dCBDb250ZW50Kiogd2luZG93IG9yIHBhc3RlIHRoZSBwYXRoIHRvIHRoZSBkZXNjcmlwdGlvbnMgZmlsZSBpbiB0aGUgKipJbnB1dCBGaWxlKiogdGV4dGJveCBhbmQgY2xpY2sgb24gYENvbnZlcnRgIHRvIHJlbmRlciB0aGUgcmVzdWx0cy4NCg0KIyBDb250cmlidXRpbmcNCg0KVGhpcyBwcm9qZWN0IHdlbGNvbWVzIGNvbnRyaWJ1dGlvbnMgYW5kIHN1Z2dlc3Rpb25zLiAgTW9zdCBjb250cmlidXRpb25zIHJlcXVpcmUgeW91IHRvIGFncmVlIHRvIGENCkNvbnRyaWJ1dG9yIExpY2Vuc2UgQWdyZWVtZW50IChDTEEpIGRlY2xhcmluZyB0aGF0IHlvdSBoYXZlIHRoZSByaWdodCB0bywgYW5kIGFjdHVhbGx5IGRvLCBncmFudCB1cw0KdGhlIHJpZ2h0cyB0byB1c2UgeW91ciBjb250cmlidXRpb24uIEZvciBkZXRhaWxzLCB2aXNpdCBodHRwczovL2NsYS5taWNyb3NvZnQuY29tLg0KDQpXaGVuIHlvdSBzdWJtaXQgYSBwdWxsIHJlcXVlc3QsIGEgQ0xBLWJvdCB3aWxsIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHdoZXRoZXIgeW91IG5lZWQgdG8gcHJvdmlkZQ0KYSBDTEEgYW5kIGRlY29yYXRlIHRoZSBQUiBhcHByb3ByaWF0ZWx5IChlLmcuLCBsYWJlbCwgY29tbWVudCkuIFNpbXBseSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucw0KcHJvdmlkZWQgYnkgdGhlIGJvdC4gWW91IHdpbGwgb25seSBuZWVkIHRvIGRvIHRoaXMgb25jZSBhY3Jvc3MgYWxsIHJlcG9zIHVzaW5nIG91ciBDTEEuDQoNClRoaXMgcHJvamVjdCBoYXMgYWRvcHRlZCB0aGUgW01pY3Jvc29mdCBPcGVuIFNvdXJjZSBDb2RlIG9mIENvbmR1Y3RdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvKS4NCkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgW0NvZGUgb2YgQ29uZHVjdCBGQVFdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvZmFxLykgb3INCmNvbnRhY3QgW29wZW5jb2RlQG1pY3Jvc29mdC5jb21dKG1haWx0bzpvcGVuY29kZUBtaWNyb3NvZnQuY29tKSB3aXRoIGFueSBhZGRpdGlvbmFsIHF1ZXN0aW9ucyBvciBjb21tZW50cy4NCg0KVG8gcHJvdmlkZSBmZWVkYmFjayBhbmQgYXNrIHF1ZXN0aW9ucyB5b3UgY2FuIHVzZSBTdGFjayBPdmVyZmxvdyB3aXRoIHRoZSBbT3BlbkFQSS5ORVRdKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zL3RhZ2dlZC9vcGVuYXBpLm5ldCkgdGFnLg0K readmeEtag: '"c804787c1a0abcbcadc19d4c697c76a95fad82d3"' readmeLastModified: Tue, 13 Aug 2024 22:18:42 GMT repositoryId: 97175798 description: >- The OpenAPI.NET SDK contains a useful object model for OpenAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model. created: '2017-07-14T00:24:14Z' updated: '2024-09-05T21:59:27Z' language: C# archived: false stars: 1379 watchers: 64 forks: 231 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT repoEtag: '"d29905670462ecce4115ed53be829bd75cc14b8c5c0a5485b979e31b07b508de"' repoLastModified: Thu, 05 Sep 2024 21:59:27 GMT id: f3215034d64cfcbcc28a4bdb0205a075 - source: IMPLEMENTATIONS.md name: openapi-validator homepage: https://gitlab.com/mmalawski/openapi-validator language: PHP source_description: Validates response against OpenAPI schema category: Low-level Tooling foundInMaster: true id: efecab7adc90e5b1b9e902939ab0a319 - source: IMPLEMENTATIONS.md name: OpenAPI-Delphi homepage: https://github.com/paolo-rossi/OpenAPI-Delphi language: Delphi source_description: >- Delphi implementation of a generator, parser and validator for the OpenAPI 3 Specification category: - Low-level Tooling - Parsers foundInMaster: true repository: https://github.com/paolo-rossi/openapi-delphi repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIGZvciBEZWxwaGkgLSBPcGVuQVBJIDMuMCBmb3IgRGVscGhpCgo8YnIgLz4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vcGFvbG8tcm9zc2kvT3BlbkFQSS1EZWxwaGkvYmxvYi9tYXN0ZXIvb3BlbmFwaS1kZWxwaGkucG5nIiBhbHQ9Ik9wZW5BUEkgRGVscGhpIExpYnJhcnkiIHdpZHRoPSI0MDAiIC8+CjwvcD4KCiMjIFdoYXQgaXMgT3BlbkFQSS1EZWxwaGkKCioqT3BlbkFQSS1EZWxwaGkqKiBpcyBhbiBPcGVuQVBJIDMuMCBsaWJyYXJ5IGZvciBbRGVscGhpXShodHRwczovL3d3dy5lbWJhcmNhZGVyby5jb20vcHJvZHVjdHMvZGVscGhpKSB0aGF0IGhlbHBzIHlvdSB0byBnZW5lcmF0ZSAoYW5kIGxvYWQpIE9wZW5BUEkgMy4wIGRvY3VtZW50YXRpb24gKGluIEpTT04pIHN0YXJ0aW5nIGZyb20gcGxhaW4gRGVscGhpIGNsYXNzZXMuIERlbHBoaS1PcGVuQVBJIHVzZXMgdGhlIFtOZW9uXShodHRwczovL2dpdGh1Yi5jb20vcGFvbG8tcm9zc2kvZGVscGhpLW5lb24pIHNlcmlhbGl6YXRpb24gbGlicmFyeSB0byB0cmFuc2Zvcm0gdGhlIE9wZW5BUEkgbW9kZWxzIGZyb20gRGVscGhpIGNsYXNzZXMgdG8gSlNPTiBhbmQgdG8gbG9hZCBhIE9wZW5BUEkgZG9jdW1lbnQgaW50byBhIERlbHBoaSAoT3BlbkFQSSkgb2JqZWN0LiBQbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIERlbW8gdG8gc2VlIE9wZW5BUEktRGVscGhpIGluIGFjdGlvbi4KCiMjIEdlbmVyYWwgRmVhdHVyZXMKCi0gT3BlbkFQSSBkb2N1bWVudCBnZW5lcmF0aW9uIChKU09OKSBmcm9tIGEgRGVscGhpIChPcGVuQVBJKSBvYmplY3QgCi0gT3BlbkFQSSBsb2FkaW5nIGFuZCBwYXJzaW5nIGludG8gYSBEZWxwaGkgKE9wZW5BUEkpIG9iamVjdCAoOnN0YXIyOiBuZXcgaW4gMi4wKQotIFVzZSBwbGFpbiBEZWxwaGkgY2xhc3NlcyB0byBzZXQgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBzZWN0aW9ucyAmIGZpZWxkcwotIFN1cHBvcnQgZm9yIEpTT04gU2NoZW1hICh0aGUgT3BlbkFQSSB2ZXJzaW9uKQotIFN1cHBvcnQgZm9yIFNjaGVtYSBmaWVsZCByZWN1cnNpb24gKDpzdGFyMjogbmV3IGluIDIuMCkKLSBGdWxsIFN1cHBvcnQgZm9yIGVudW0gb2YgYW55IHR5cGUgKDpzdGFyMjogbmV3IGluIDIuMCkKLSBVc2UgMS1saW5lIGNvZGUgKHVzaW5nIHRoZSBbTmVvbl0oaHR0cHM6Ly9naXRodWIuY29tL3Bhb2xvLXJvc3NpL2RlbHBoaS1uZW9uKSBsaWJyYXJ5KSB0byB0cmFuc2Zvcm0gZnJvbSBhbmQgdG8gSlNPTiBkb2N1bWVudHMKCiMjIERlbHBoaSBDb21wYXRpYmlsaXR5ClRoaXMgbGlicmFyeSBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCAqKkRlbHBoaSAxMiBBdGhlbnMqKiwgKipEZWxwaGkgMTEgQWxleGFuZHJpYSoqLCAqKkRlbHBoaSAxMC40IFN5ZG5leSoqLCAqKkRlbHBoaSAxMC4zIFJpbyoqLCAqKkRlbHBoaSAxMC4yIFRva3lvKiouCgoKIyMgVG9kbwotIEZ1bGwgdmFsaWRhdGlvbiBmb3IgdGhlIE9wZW5BUEkgbW9kZWxzCgo= readmeEtag: '"ed3c74637bbd0f70dcb7ad950270331fd2793c36"' readmeLastModified: Sat, 04 May 2024 08:36:53 GMT repositoryId: 190047866 description: >- The Delphi-OpenAPI library is an OpenAPI 3.0 document generator and parser for Delphi created: '2019-06-03T17:07:21Z' updated: '2024-08-12T17:14:38Z' language: Pascal archived: false stars: 96 watchers: 15 forks: 30 owner: paolo-rossi logo: https://avatars.githubusercontent.com/u/4686497?v=4 license: Apache-2.0 repoEtag: '"9f754fec64ea8633a430559e88d95798dd27e30c5b583abe8b604fb650f691c6"' repoLastModified: Mon, 12 Aug 2024 17:14:38 GMT id: 29fab7d64d0321c64910ca260c8a92d1 - source: IMPLEMENTATIONS.md name: openapi-runtime-expression homepage: https://github.com/char0n/openapi-runtime-expression language: JavaScript source_description: OpenAPI Runtime Expressions parser and validator. category: - Low-level Tooling - Parsers repository: https://github.com/char0n/openapi-runtime-expression id: 7bf551f44c6116e3b8d2498be8358fa3 repositoryMetadata: base64Readme: >- IyBvcGVuYXBpLXJ1bnRpbWUtZXhwcmVzc2lvbgoKW1J1bnRpbWUgRXhwcmVzc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNydW50aW1lRXhwcmVzc2lvbikgYWxsb3cgZGVmaW5pbmcgdmFsdWVzIGJhc2VkIG9uIGluZm9ybWF0aW9uIHRoYXQgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSB3aXRoaW4gdGhlIEhUVFAgbWVzc2FnZSBpbiBhbiBhY3R1YWwgQVBJIGNhbGwuClRoaXMgbWVjaGFuaXNtIGlzIHVzZWQgYnkgW0xpbmsgT2JqZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI2xpbmtPYmplY3QpIGFuZCBbQ2FsbGJhY2sgT2JqZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI2NhbGxiYWNrT2JqZWN0KQpvZiBbT3BlbkFQSSBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikuCgpgb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb25gIGlzIGEgKipwYXJzZXIqKiBhbmQgKip2YWxpZGF0b3IqKiBmb3IgT3BlbkFQSSBSdW50aW1lIEV4cHJlc3Npb25zLiBJdCBzdXBwb3J0cwpSdW50aW1lIEV4cHJlc3Npb25zIGRlZmluZWQgaW4gZm9sbG93aW5nIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uczoKCi0gW09wZW5BUEkgMy4wLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMC5tZCNydW50aW1lRXhwcmVzc2lvbikKLSBbT3BlbkFQSSAzLjAuMV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMC4xLm1kI3J1bnRpbWVFeHByZXNzaW9uKQotIFtPcGVuQVBJIDMuMC4yXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21haW4vdmVyc2lvbnMvMy4wLjIubWQjcnVudGltZUV4cHJlc3Npb24pCi0gW09wZW5BUEkgMy4wLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjAuMy5tZCNydW50aW1lRXhwcmVzc2lvbikKLSBbT3BlbkFQSSAzLjEuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3J1bnRpbWVFeHByZXNzaW9uKQoKIyMgVGFibGUgb2YgQ29udGVudHMKCi0gW0dldHRpbmcgc3RhcnRlZF0oI2dldHRpbmctc3RhcnRlZCkKICAtIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgLSBbVXNhZ2VdKCN1c2FnZSkKICAgIC0gW0V4dHJhY3Rpb25dKCNleHRyYWN0aW9uKQogICAgLSBbUGFyc2luZ10oI3BhcnNpbmcpCiAgICAtIFtWYWxpZGF0aW9uXSgjdmFsaWRhdGlvbikKICAgIC0gW0dyYW1tYXJdKCNncmFtbWFyKQotIFtNb3JlIGFib3V0IE9wZW5BUEkgcnVudGltZSBleHByZXNzaW9uc10oI21vcmUtYWJvdXQtb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb25zKQotIFtMaWNlbnNlXSgjbGljZW5zZSkKLSBbU29mdHdhcmUgQmlsbCBPZiBNYXRlcmlhbHMgKFNCT00pXSgjc29mdHdhcmUtYmlsbC1vZi1tYXRlcmlhbHMtc2JvbSkKCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCiMjIyBJbnN0YWxsYXRpb24KCllvdSBjYW4gaW5zdGFsbCBgb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb25gIHVzaW5nIGBucG1gOgoKYGBgc2gKICQgbnBtIGluc3RhbGwgb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24KYGBgCgpHaXZlbiB0aGF0IGBvcGVuYXBpLXJ1bnRpbWUtZXhwcmVzc2lvbmAgaXMgYSBbcHVyZSBFU00gcGFja2FnZV0oaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vc2luZHJlc29yaHVzL2EzOTc4OWY5ODgwMWQ5MDhiYmM3ZmYzZWNjOTlkOTljKQp5b3UgY2FuIGFsc28gaW5zdGFsbCBpdCBkaXJlY3RseSBmcm9tIEdpdEh1Yi4KCmBgYHNoCiAkIG5wbSBpbnN0YWxsIGdpdGh1YjpjaGFyMG4vb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24KYGBgCgojIyMgVXNhZ2UKCmBvcGVuYXBpLXJ1bnRpbWUtZXhwcmVzc2lvbmAgY3VycmVudGx5IHN1cHBvcnRzICoqZXh0cmFjdGlvbioqLCAqKnBhcnNpbmcqKiBhbmQgKip2YWxpZGF0aW9uKiouCkJvdGggcGFyc2VyIGFuZCB2YWxpZGF0b3IgYXJlIGJhc2VkIG9uIGEgc3VwZXJzZXQgb2YgW0FCTkZdKGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM1MjM0KSAoW1NBQk5GXShodHRwczovL2NzLmdpdGh1Yi5jb20vbGR0aG9tYXMvYXBnLWpzMi9ibG9iL21hc3Rlci9TQUJORi5tZCkpCmFuZCB1c2UgW2FwZy1qc10oaHR0cHM6Ly9naXRodWIuY29tL2xkdGhvbWFzL2FwZy1qcykgcGFyc2VyIGdlbmVyYXRvci4KCiMjIyMgRXh0cmFjdGlvbgoKT3BlbkFQSSBlbWJlZHMgUnVudGltZSBFeHByZXNzaW9ucyBpbnRvIHN0cmluZyB2YWx1ZXMgc3Vycm91bmRlZCB3aXRoIGB7fWAgY3VybHkgYnJhY2VzLgpUbyBleHRyYWN0IFJ1bnRpbWUgRXhwcmVzc2lvbnMgZnJvbSB0aGlzIGVtYmVkZGVkIGZvcm0sIHVzZSB0aGUgKipleHRyYWN0KiogZnVuY3Rpb24uCkV4dHJhY3RlZCBSdW50aW1lIEV4cHJlc3Npb24gY2FuIGJlIHVzZWQgZm9yIGZ1cnRoZXIgcGFyc2luZyBvZiB2YWxpZGF0aW9uLgoKYGBganMKaW1wb3J0IHsgZXh0cmFjdCwgdGVzdCwgcGFyc2UgfSBmcm9tICdvcGVuYXBpLXJ1bnRpbWUtZXhwcmVzc2lvbic7Cgpjb25zdCBleHByZXNzaW9uID0gZXh0cmFjdCgneyRyZXF1ZXN0LmhlYWRlci5hY2NlcHR9Jyk7IC8vID0+ICckcmVxdWVzdC5oZWFkZXIuYWNjZXB0JwoKdGVzdChleHByZXNzaW9uKTsgLy8gPT4gdHJ1ZQpwYXJzZShleHByZXNzaW9uKTsgLy8gPT4geyByZXN1bHQsIGFzdCB9CmBgYAoKIyMjIyBQYXJzaW5nCgpQYXJzaW5nIGEgUnVudGltZSBFeHByZXNzaW9uIGlzIGFzIHNpbXBsZSBhcyBpbXBvcnRpbmcgdGhlICoqcGFyc2UqKiBmdW5jdGlvbgphbmQgY2FsbGluZyBpdC4KCmBgYGpzCmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24nOwoKY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZSgnJHJlcXVlc3QuaGVhZGVyLmFjY2VwdCcpOwpgYGAKCioqcGFyc2VSZXN1bHQqKiB2YXJpYWJsZSBoYXMgdGhlIGZvbGxvd2luZyBzaGFwZToKCmBgYAp7CiAgcmVzdWx0OiB7CiAgICBzdWNjZXNzOiB0cnVlLAogICAgc3RhdGU6IDEwMSwKICAgIGxlbmd0aDogMjIsCiAgICBtYXRjaGVkOiAyMiwKICAgIG1heE1hdGNoZWQ6IDIyLAogICAgbWF4VHJlZURlcHRoOiAxNCwKICAgIG5vZGVIaXRzOiAxNTIsCiAgICBpbnB1dExlbmd0aDogMjIsCiAgICBzdWJCZWdpbjogMCwKICAgIHN1YkVuZDogMjIsCiAgICBzdWJMZW5ndGg6IDIyCiAgfSwKICBhc3Q6IGV4cG9ydHNBc3QgewogICAgY2FsbGJhY2tzOiBbCiAgICAgIGV4cHJlc3Npb246IFtGdW5jdGlvbjogZXhwcmVzc2lvbl0sCiAgICAgIHNvdXJjZTogW0Z1bmN0aW9uOiBzb3VyY2VdLAogICAgICAnaGVhZGVyLXJlZmVyZW5jZSc6IFtGdW5jdGlvbjogaGVhZGVyUmVmZXJlbmNlXSwKICAgICAgJ3F1ZXJ5LXJlZmVyZW5jZSc6IFtGdW5jdGlvbjogcXVlcnlSZWZlcmVuY2VdLAogICAgICAncGF0aC1yZWZlcmVuY2UnOiBbRnVuY3Rpb246IHBhdGhSZWZlcmVuY2VdLAogICAgICAnYm9keS1yZWZlcmVuY2UnOiBbRnVuY3Rpb246IGJvZHlSZWZlcmVuY2VdLAogICAgICAnanNvbi1wb2ludGVyJzogW0Z1bmN0aW9uOiBqc29uUG9pbnRlcl0sCiAgICAgICdyZWZlcmVuY2UtdG9rZW4nOiBbRnVuY3Rpb246IHJlZmVyZW5jZVRva2VuXSwKICAgICAgbmFtZTogW0Z1bmN0aW9uOiBuYW1lXSwKICAgICAgdG9rZW46IFtGdW5jdGlvbjogdG9rZW5dCiAgICBdLAogICAgYXN0T2JqZWN0OiAnYXN0T2JqZWN0JywKICAgIGluaXQ6IFtGdW5jdGlvbjogaW5pdF0sCiAgICBydWxlRGVmaW5lZDogW0Z1bmN0aW9uOiBydWxlRGVmaW5lZF0sCiAgICB1ZHREZWZpbmVkOiBbRnVuY3Rpb246IHVkdERlZmluZWRdLAogICAgZG93bjogW0Z1bmN0aW9uOiBkb3duXSwKICAgIHVwOiBbRnVuY3Rpb246IHVwXSwKICAgIHRyYW5zbGF0ZTogW0Z1bmN0aW9uOiB0cmFuc2xhdGVdLAogICAgc2V0TGVuZ3RoOiBbRnVuY3Rpb246IHNldExlbmd0aF0sCiAgICBnZXRMZW5ndGg6IFtGdW5jdGlvbjogZ2V0TGVuZ3RoXSwKICAgIHRvWG1sOiBbRnVuY3Rpb246IHRvU21sXSwKICAgIHBocmFzZXM6IFtGdW5jdGlvbjogcGhyYXNlc10KICB9Cn0KYGBgCgojIyMjIyMgSW50ZXJwcmV0aW5nIEFTVCBhcyBsaXN0IG9mIGVudHJpZXMKCmBgYGpzCmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24nOwoKY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZSgnJHJlcXVlc3QuaGVhZGVyLmFjY2VwdCcpOwpjb25zdCBwYXJ0cyA9IFtdOwoKcGFyc2VSZXN1bHQuYXN0LnRyYW5zbGF0ZShwYXJ0cyk7CmBgYAoKQWZ0ZXIgcnVubmluZyB0aGUgYWJvdmUgY29kZSwgKipwYXJ0cyoqIHZhcmlhYmxlIGhhcyB0aGUgZm9sbG93aW5nIHNoYXBlOgoKYGBganMKWwogIFsnZXhwcmVzc2lvbicsICckcmVxdWVzdC5xdWVyeS5xdWVyeVVybCcgXSwKICBbJ3NvdXJjZScsICdxdWVyeS5xdWVyeVVybCddLAogIFsncXVlcnktcmVmZXJlbmNlJywgJ3F1ZXJ5LnF1ZXJ5VXJsJ10sCiAgWyduYW1lJywgJ3F1ZXJ5VXJsJ10sCl0KYGBgCgojIyMjIyMgSW50ZXJwcmV0aW5nIEFTVCBhcyBYTUwKCmBgYGpzCmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24nOwoKY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZSgnJHJlcXVlc3QuaGVhZGVyLmFjY2VwdCcpOwpjb25zdCB4bWwgPSBwYXJzZVJlc3VsdC5hc3QudG9YbWwoKTsKYGBgCgpBZnRlciBydW5uaW5nIHRoZSBhYm92ZSBjb2RlLCAqKnhtbCoqIHZhcmlhYmxlIGhhcyB0aGUgZm9sbG93aW5nIGNvbnRlbnQ6CgpgYGB4bWwKPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJvb3Qgbm9kZXM9IjQiIGNoYXJhY3RlcnM9IjIzIj4KPCEtLSBpbnB1dCBzdHJpbmcsIGRlY2ltYWwgaW50ZWdlciBjaGFyYWN0ZXIgY29kZXMgLS0+CiAgMzYsMTE0LDEwMSwxMTMsMTE3LDEwMSwxMTUsMTE2LDQ2LDExMywxMTcsMTAxLDExNCwxMjEsNDYsMTEzLDExNywxMDEsMTE0LDEyMSw4NSwxMTQsMTA4CiA8bm9kZSBuYW1lPSJleHByZXNzaW9uIiBpbmRleD0iMCIgbGVuZ3RoPSIyMyI+CiAgIDM2LDExNCwxMDEsMTEzLDExNywxMDEsMTE1LDExNiw0NiwxMTMsMTE3LDEwMSwxMTQsMTIxLDQ2LDExMywxMTcsMTAxLDExNCwxMjEsODUsMTE0LDEwOAogIDxub2RlIG5hbWU9InNvdXJjZSIgaW5kZXg9IjkiIGxlbmd0aD0iMTQiPgogICAgMTEzLDExNywxMDEsMTE0LDEyMSw0NiwxMTMsMTE3LDEwMSwxMTQsMTIxLDg1LDExNCwxMDgKICAgPG5vZGUgbmFtZT0icXVlcnktcmVmZXJlbmNlIiBpbmRleD0iOSIgbGVuZ3RoPSIxNCI+CiAgICAgMTEzLDExNywxMDEsMTE0LDEyMSw0NiwxMTMsMTE3LDEwMSwxMTQsMTIxLDg1LDExNCwxMDgKICAgIDxub2RlIG5hbWU9Im5hbWUiIGluZGV4PSIxNSIgbGVuZ3RoPSI4Ij4KICAgICAgMTEzLDExNywxMDEsMTE0LDEyMSw4NSwxMTQsMTA4CiAgICA8L25vZGU+PCEtLSBuYW1lPSJuYW1lIiAtLT4KICAgPC9ub2RlPjwhLS0gbmFtZT0icXVlcnktcmVmZXJlbmNlIiAtLT4KICA8L25vZGU+PCEtLSBuYW1lPSJzb3VyY2UiIC0tPgogPC9ub2RlPjwhLS0gbmFtZT0iZXhwcmVzc2lvbiIgLS0+Cjwvcm9vdD4KYGBgCgo+IE5PVEU6IEFTVCBjYW4gYWxzbyBiZSB0cmF2ZXJzZWQgaW4gY2xhc3NpY2FsIHdheSB1c2luZyBbZGVwdGggZmlyc3QgdHJhdmVyc2FsXShodHRwczovL3d3dy50dXRvcmlhbHNwb2ludC5jb20vZGF0YV9zdHJ1Y3R1cmVzX2FsZ29yaXRobXMvZGVwdGhfZmlyc3RfdHJhdmVyc2FsLmh0bSkuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgb3B0aW9uIHBsZWFzZSByZWZlciB0byBbYXBnLWpzXShodHRwczovL2dpdGh1Yi5jb20vbGR0aG9tYXMvYXBnLWpzKSBhbmQgW2FwZy1qcy1leGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL2xkdGhvbWFzL2FwZy1qcy1leGFtcGxlcykuCgojIyMjIFZhbGlkYXRpb24KClZhbGlkYXRpbmcgYSBSdW50aW1lIEV4cHJlc3Npb24gaXMgYXMgc2ltcGxlIGFzIGltcG9ydGluZyB0aGUgKip0ZXN0KiogZnVuY3Rpb24KYW5kIGNhbGxpbmcgaXQuCgpgYGBqcwppbXBvcnQgeyB0ZXN0IH0gZnJvbSAnb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24nOwoKdGVzdCgnJHJlcXVlc3QuaGVhZGVyLmFjY2VwdCcpOyAvLyA9PiB0cnVlCnRlc3QoJ25vbnNlbnNpY2FsIHN0cmluZycpOyAvLyA9PiBmYWxzZQpgYGAKCiMjIyMgR3JhbW1hcgoKTmV3IGdyYW1tYXIgaW5zdGFuY2UgY2FuIGJlIGNyZWF0ZWQgaW4gZm9sbG93aW5nIHdheToKCmBgYGpzCmltcG9ydCB7IEdyYW1tYXIgfSBmcm9tICdvcGVuYXBpLXJ1bnRpbWUtZXhwcmVzc2lvbic7Cgpjb25zdCBncmFtbWFyID0gbmV3IEdyYW1tYXIoKTsKYGBgCgpUbyBvYnRhaW4gb3JpZ2luYWwgQUJORiAoU0FCTkYpIGdyYW1tYXIgYXMgYSBzdHJpbmc6CgpgYGBqcwppbXBvcnQgeyBHcmFtbWFyIH0gZnJvbSAnb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24nOwoKY29uc3QgZ3JhbW1hciA9IG5ldyBHcmFtbWFyKCk7CgpncmFtbWFyLnRvU3RyaW5nKCk7Ci8vIG9yClN0cmluZyhncmFtbWFyKTsKYGBgCgojIyBNb3JlIGFib3V0IE9wZW5BUEkgcnVudGltZSBleHByZXNzaW9ucwoKVGhlIHJ1bnRpbWUgZXhwcmVzc2lvbiBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgW0FCTkZdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0KSBzeW50YXgKCmBgYGFibmYKZXhwcmVzc2lvbiA9ICggIiR1cmwiIC8gIiRtZXRob2QiIC8gIiRzdGF0dXNDb2RlIiAvICIkcmVxdWVzdC4iIHNvdXJjZSAvICIkcmVzcG9uc2UuIiBzb3VyY2UgKQpzb3VyY2UgPSAoIGhlYWRlci1yZWZlcmVuY2UgLyBxdWVyeS1yZWZlcmVuY2UgLyBwYXRoLXJlZmVyZW5jZSAvIGJvZHktcmVmZXJlbmNlICkKaGVhZGVyLXJlZmVyZW5jZSA9ICJoZWFkZXIuIiB0b2tlbgpxdWVyeS1yZWZlcmVuY2UgPSAicXVlcnkuIiBuYW1lCnBhdGgtcmVmZXJlbmNlID0gInBhdGguIiBuYW1lCmJvZHktcmVmZXJlbmNlID0gImJvZHkiIFsiIyIganNvbi1wb2ludGVyIF0KanNvbi1wb2ludGVyICAgID0gKiggIi8iIHJlZmVyZW5jZS10b2tlbiApCnJlZmVyZW5jZS10b2tlbiA9ICooIHVuZXNjYXBlZCAvIGVzY2FwZWQgKQp1bmVzY2FwZWQgICAgICAgPSAleDAwLTJFIC8gJXgzMC03RCAvICV4N0YtMTBGRkZGCiAgIDsgJXgyRiAoJy8nKSBhbmQgJXg3RSAoJ34nKSBhcmUgZXhjbHVkZWQgZnJvbSAndW5lc2NhcGVkJwplc2NhcGVkICAgICAgICAgPSAifiIgKCAiMCIgLyAiMSIgKQogIDsgcmVwcmVzZW50aW5nICd+JyBhbmQgJy8nLCByZXNwZWN0aXZlbHkKbmFtZSA9ICooIENIQVIgKQp0b2tlbiA9IDEqdGNoYXIKdGNoYXIgPSAiISIgLyAiIyIgLyAiJCIgLyAiJSIgLyAiJiIgLyAiJyIgLyAiKiIgLyAiKyIgLyAiLSIgLyAiLiIgLwogICJeIiAvICJfIiAvICJgIiAvICJ8IiAvICJ+IiAvIERJR0lUIC8gQUxQSEEKYGBgCgpIZXJlLCBganNvbi1wb2ludGVyYCBpcyB0YWtlbiBmcm9tIFtSRkM2OTAxXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjkwMSksIGBjaGFyYCBmcm9tIFtSRkM3MTU5XShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzE1OSNzZWN0aW9uLTcpIGFuZCBgdG9rZW5gIGZyb20gW1JGQzcyMzBdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMwI3NlY3Rpb24tMy4yLjYpLgoKVGhlIGBuYW1lYCBpZGVudGlmaWVyIGlzIGNhc2Utc2Vuc2l0aXZlLCB3aGVyZWFzIGB0b2tlbmAgaXMgbm90LgoKVGhlIHRhYmxlIGJlbG93IHByb3ZpZGVzIGV4YW1wbGVzIG9mIHJ1bnRpbWUgZXhwcmVzc2lvbnMgYW5kIGV4YW1wbGVzIG9mIHRoZWlyIHVzZSBpbiBhIHZhbHVlOgoKIyMjIyMgRXhhbXBsZXMKClNvdXJjZSBMb2NhdGlvbiB8IGV4YW1wbGUgZXhwcmVzc2lvbiAgfCBub3RlcwotLS18Oi0tLXw6LS0tfApIVFRQIE1ldGhvZCAgICAgICAgICAgIHwgYCRtZXRob2RgICAgICAgICAgfCBUaGUgYWxsb3dhYmxlIHZhbHVlcyBmb3IgdGhlIGAkbWV0aG9kYCB3aWxsIGJlIHRob3NlIGZvciB0aGUgSFRUUCBvcGVyYXRpb24uClJlcXVlc3RlZCBtZWRpYSB0eXBlIHwgYCRyZXF1ZXN0LmhlYWRlci5hY2NlcHRgICAgICAgICB8ClJlcXVlc3QgcGFyYW1ldGVyICAgICAgfCBgJHJlcXVlc3QucGF0aC5pZGAgICAgICAgIHwgUmVxdWVzdCBwYXJhbWV0ZXJzIE1VU1QgYmUgZGVjbGFyZWQgaW4gdGhlIGBwYXJhbWV0ZXJzYCBzZWN0aW9uIG9mIHRoZSBwYXJlbnQgb3BlcmF0aW9uIG9yIHRoZXkgY2Fubm90IGJlIGV2YWx1YXRlZC4gVGhpcyBpbmNsdWRlcyByZXF1ZXN0IGhlYWRlcnMuClJlcXVlc3QgYm9keSBwcm9wZXJ0eSAgIHwgYCRyZXF1ZXN0LmJvZHkjL3VzZXIvdXVpZGAgICB8IEluIG9wZXJhdGlvbnMgd2hpY2ggYWNjZXB0IHBheWxvYWRzLCByZWZlcmVuY2VzIG1heSBiZSBtYWRlIHRvIHBvcnRpb25zIG9mIHRoZSBgcmVxdWVzdEJvZHlgIG9yIHRoZSBlbnRpcmUgYm9keS4KUmVxdWVzdCBVUkwgICAgICAgICAgICB8IGAkdXJsYCAgICAgICAgICAgIHwKUmVzcG9uc2UgdmFsdWUgICAgICAgICB8IGAkcmVzcG9uc2UuYm9keSMvc3RhdHVzYCAgICAgICB8ICBJbiBvcGVyYXRpb25zIHdoaWNoIHJldHVybiBwYXlsb2FkcywgcmVmZXJlbmNlcyBtYXkgYmUgbWFkZSB0byBwb3J0aW9ucyBvZiB0aGUgcmVzcG9uc2UgYm9keSBvciB0aGUgZW50aXJlIGJvZHkuClJlc3BvbnNlIGhlYWRlciAgICAgICAgfCBgJHJlc3BvbnNlLmhlYWRlci5TZXJ2ZXJgIHwgIFNpbmdsZSBoZWFkZXIgdmFsdWVzIG9ubHkgYXJlIGF2YWlsYWJsZQoKUnVudGltZSBleHByZXNzaW9ucyBwcmVzZXJ2ZSB0aGUgdHlwZSBvZiB0aGUgcmVmZXJlbmNlZCB2YWx1ZS4KRXhwcmVzc2lvbnMgY2FuIGJlIGVtYmVkZGVkIGludG8gc3RyaW5nIHZhbHVlcyBieSBzdXJyb3VuZGluZyB0aGUgZXhwcmVzc2lvbiB3aXRoIGB7fWAgY3VybHkgYnJhY2VzLgoKIyMgTGljZW5zZQoKYG9wZW5hcGktcnVudGltZS1leHByZXNzaW9uYCBpcyBsaWNlbnNlZCB1bmRlciBbQXBhY2hlIDIuMCBsaWNlbnNlXShodHRwczovL2dpdGh1Yi5jb20vY2hhcjBuL29wZW5hcGktcnVudGltZS1leHByZXNzaW9uL2Jsb2IvbWFpbi9MSUNFTlNFKS4KYG9wZW5hcGktcnVudGltZS1leHByZXNzaW9uYCBjb21lcyB3aXRoIGFuIGV4cGxpY2l0IFtOT1RJQ0VdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFyMG4vb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24vYmxvYi9tYWluL05PVElDRSkgZmlsZQpjb250YWluaW5nIGFkZGl0aW9uYWwgbGVnYWwgbm90aWNlcyBhbmQgaW5mb3JtYXRpb24uCgojIyBTb2Z0d2FyZSBCaWxsIE9mIE1hdGVyaWFscyAoU0JPTSkKClNvZnR3YXJlIEJpbGwgT2YgbWF0ZXJpYWxzIGlzIGF2YWlsYWJsZSBpbiBbc2JvbS5zcGR4LnlhbWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFyMG4vb3BlbmFwaS1ydW50aW1lLWV4cHJlc3Npb24vYmxvYi9tYWluL3Nib20uc3BkeC55YW1sKSB1c2luZyBbU1BEWF0oaHR0cHM6Ly9zcGR4LmRldi8pIGxhbmd1YWdlLgo= readmeEtag: '"093b40842cf5af335d70abe6bc13e3d014b63ffb"' readmeLastModified: Fri, 09 Aug 2024 20:47:48 GMT repositoryId: 558798413 description: OpenAPI Runtime Expressions parser and validator. created: '2022-10-28T10:18:43Z' updated: '2024-08-28T20:29:10Z' language: JavaScript archived: false stars: 5 watchers: 2 forks: 0 owner: char0n logo: https://avatars.githubusercontent.com/u/193286?v=4 license: Apache-2.0 repoEtag: '"5f00b9f8d7dbea9f1205291525de983c64ba2fedbc145a7b6fe986fd927788cb"' repoLastModified: Wed, 28 Aug 2024 20:29:10 GMT foundInMaster: true - source: IMPLEMENTATIONS.md name: Oxygen OpenAPI Editor homepage: https://www.oxygenxml.com/openapi.html language: Java source_description: >- OpenAPI editor with a variety of editing features and helper views. Support for validation and editing OpenAPI 2.0, 3.0, and 3.1 based on JSON Schema specification. Includes a tool for generating documentations and a tool for testing OpenAPIs. category: Editors id: d874e7661794cdbf6243becfabd4d71d foundInMaster: true - source: IMPLEMENTATIONS.md name: Visual Studio Code extension homepage: https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi language: TypeScript source_description: >- Extends VS Code to provide OpenAPI 2.0 and 3.0 navigation, code snippets, new API creation category: Editors foundInMaster: true id: 43647cd83453a9aa9ecc87f45fb01dfb - source: IMPLEMENTATIONS.md name: RepreZen API Studio homepage: https://www.reprezen.com/OpenAPI language: Java source_description: Commercial desktop IDE for API design, documentation & development category: Editors foundInMaster: true id: a89ec3ac594d929307e2c40ef58a899b - source: IMPLEMENTATIONS.md name: SwaggerHub homepage: https://swaggerhub.com language: - API Design and Documentation Platform - Built For Teams category: Editors foundInMaster: true id: 5c8b1a8e6d59b3b055d5083f29dedfbc - source: IMPLEMENTATIONS.md name: Remain OpenAPI Studio homepage: >- https://remainsoftware.com/extranet/download-type/openapi-studio-download
Or via Eclipse MarketPlace https://marketplace.eclipse.org/content/openapi-studio-rich-oas3-editor language: Java source_description: >- A user-friendly, visually rich studio supporting all features defined by the OpenAPI 3. Easy but powerful UI-based components creation, API testing, import, export, code generation and much more. category: Editors foundInMaster: true id: ebacf52793f49b2084d381fdf64da69f - source: IMPLEMENTATIONS.md name: lincoln homepage: https://github.com/temando/open-api-renderer language: React.js source_description: A React renderer for OpenAPI v3 category: - User Interfaces - Parsers foundInMaster: true repository: https://github.com/temando/open-api-renderer repositoryMetadata: base64Readme: >- IyBMaW5jb2xuCgo8aW1nIHNyYz0nYXNzZXRzL2xpbmNvbG4tbG9nby13aGl0ZS5wbmcnIGFsdD0nTGluY29sbicgaGVpZ2h0PSI5NiIgd2lkdGg9Ijk2IiAvPgoKWyFbTlBNXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L3JlYWN0LWxpbmNvbG4uc3ZnKV0oaHR0cHM6Ly9ucG1qcy5vcmcvcGFja2FnZXMvcmVhY3QtbGluY29sbi8pClshW1RyYXZpcyBDSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvdGVtYW5kby9vcGVuLWFwaS1yZW5kZXJlci5zdmcpXShodHRwczovL3RyYXZpcy1jaS5vcmcvdGVtYW5kby9vcGVuLWFwaS1yZW5kZXJlcikKWyFbTUlUIExpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvdGVtYW5kby9vcGVuLWFwaS1yZW5kZXJlci5zdmcpXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZSkKWyFbSmF2YVNjcmlwdCBTdHlsZSBHdWlkZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlX3N0eWxlLXN0YW5kYXJkLWJyaWdodGdyZWVuLnN2ZyldKGh0dHBzOi8vc3RhbmRhcmRqcy5jb20pCgpNZWV0IExpbmNvbG4sIGEgW1JlYWN0XShodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9yZWFjdC8pIGNvbXBvbmVudCBmb3IgcmVuZGVyaW5nIFtPcGVuQVBJXShodHRwczovL3d3dy5vcGVuYXBpcy5vcmcpIGRvY3VtZW50cy4gVGhlIHByb2plY3QgaXMgdHJhY2tpbmcgYWdhaW5zdCBbdjMuMC4wXShkb2NzL29wZW4tYXBpLXYzLXN1cHBvcnQubWQpIG9mIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uCgpMaW5jb2xuIGFpbXMgdG8gc3VwcG9ydCBldmVyZ3JlZW4gYnJvd3NlcnMsIHN1Y2ggYXMgQ2hyb21lLCBGaXJlZm94LCBTYWZhcmkgYW5kIElFMTErLiBJdCBpcyByZXNwb25zaXZlIGFuZCBzaG91bGQgYmUgdXNhYmxlIG9uIG1vc3QgbW9kZXJuIGRldmljZXMuCgpbRGVtb10oaHR0cHM6Ly90ZW1hbmRvLmdpdGh1Yi5pby9vcGVuLWFwaS1yZW5kZXJlci9kZW1vLz91cmw9aHR0cHM6Ly90ZW1hbmRvLmdpdGh1Yi5pby9vcGVuLWFwaS1yZW5kZXJlci9wZXRzdG9yZS1vcGVuLWFwaS12My4wLjAtUkMyLmpzb24pCgojIyBJbnN0YWxsYXRpb24KCmBgYHNoCm5wbSBpbnN0YWxsIC0tc2F2ZSByZWFjdCByZWFjdC1kb20gcmVhY3QtbGluY29sbgpgYGAKCiMjIFVzYWdlCgpUbyB1c2UgTGluY29sbiBpbiB5b3VyIFJlYWN0IHByb2plY3Q6CgpgYGBqcwppbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnCmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nCmltcG9ydCBMaW5jb2xuIGZyb20gJ3JlYWN0LWxpbmNvbG4nCgpSZWFjdERPTS5yZW5kZXIoCiAgPExpbmNvbG4gZGVmaW5pdGlvblVybD0naHR0cHM6Ly90ZW1hbmRvLmdpdGh1Yi5pby9vcGVuLWFwaS1yZW5kZXJlci9wZXRzdG9yZS1vcGVuLWFwaS12My4wLjAtUkMyLmpzb24nIC8+LAogIGRvY3VtZW50LmJvZHkKKQpgYGAKCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gcGFzcyB0aGUgY29udGVudHMgb2YgdGhlIGRlZmluaXRpb24gZGlyZWN0bHkgdG8gTGluY29sbjoKCmBgYGpzCmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCcKaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbScKaW1wb3J0IExpbmNvbG4gZnJvbSAncmVhY3QtbGluY29sbicKaW1wb3J0IGRlZmluaXRpb24gZnJvbSAnLi9teUFwaS55bWwnCgpSZWFjdERPTS5yZW5kZXIoPExpbmNvbG4gZGVmaW5pdGlvbj17ZGVmaW5pdGlvbn0gLz4sIGRvY3VtZW50LmJvZHkpCmBgYAoKIyMgQ29uZmlndXJhdGlvbgoKVGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGF2YWlsYWJsZToKCnwgcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICB8IHJlcXVpcmVkIHwgdHlwZSAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0gfCAtLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGBkZWZpbml0aW9uVXJsYCBvciBgZGVmaW5pdGlvbmAgfCDinJQgICAgICAgIHwgc3RyaW5nICB8IENPUlMtZW5hYmxlZCBVUkwgdG8sIG9yIGNvbnRlbnRzIG9mLCBPcGVuQVBJIHYzIGRvY3VtZW50IHRvIHJlbmRlci4gU3VwcG9ydHMgSlNPTiBvciBZQU1MLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgbmF2U29ydGAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCBlbnVtICAgIHwgVGhpcyBwcm9wZXJ0eSBhcHBsaWVzIHdoZW4geW91ciBkZWZpbml0aW9uIHVzZXMgYHRhZ3NgLiBWYWxpZCB2YWx1ZXMgYXJlIGBhbHBoYWAgd2hpY2ggc29ydHMgYnkgSFRUUCBtZXRob2QsIHRoZW4gcGF0aCBvciBgZmFsc2VgLCB3aGljaCB3aWxsIGRpc3BsYXkgcGF0aHMgYXMgZGVmaW5lZC4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGB2YWxpZGF0ZWAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8IGJvb2xlYW4gfCBJZiBgdHJ1ZWAsIHVzZXMgW01lcm1hZGVdKGh0dHBzOi8vb3BlbmFwaS1jb252ZXJ0ZXIuaGVyb2t1YXBwLmNvbS8pIHRvIHZhbGlkYXRlIGRlZmluaXRpb24uIERlZmF1bHRzIHRvIGBmYWxzZWAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGluaXRpYWxTY2hlbWFUcmVlRGVwdGhgICAgICAgICB8ICAgICAgICAgIHwgbnVtYmVyICB8IFRoZSBpbml0aWFsIG9wZW5lZCB0cmVlIGRlcHRoIGZvciBzY2hlbWEgdmlzdWFsaXNlciB3aGVuIGZpcnN0IHJlbmRlcmVkLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHRoZSBzY2hlbWEncyBhY3R1YWwgY29udGVudHMgaXMgYSBjb3VwbGUgb2YgbGV2ZWxzIGRlZXAsIGFuZCB5b3Ugd2FudCB0byBleHBhbmQgdGhlIHRyZWUgdG8gdGhlIGNvbnRlbnRzIGF1dG9tYXRpY2FsbHkuIERlZmF1bHRzIHRvIDAuIHwKfCBgbmF2aWdhdGlvbk1ldGhvZERpc3BsYXlUeXBlYCAgIHwgICAgICAgICAgfCBzdHJpbmcgIHwgUmVndWxhdGVzIGhvdyB0aGUgbmF2aWdhdGlvbiBpdGVtcyBhcmUgcmVuZGVyZWQgLSBwYXRoIG9ubHksIHN1bW1hcnkgb25seSwgb3IgYm90aC4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYHN1bW1hcnlgIChkZWZhdWx0KSwgYHBhdGhgLCBvciBgYWxsYC4gSW4gY2FzZSBvZiBhbnkgb3RoZXIgdmFsdWUgb25seSB0aGUgc3VtbWFyeSBpcyByZW5kZXJlZC4gICAgICAgICAgICAgICAgICAgICAgICAgfAoKIyMgUGhpbG9zb3BoeQoKV2hpbGUgdGhpcyBwcm9qZWN0IGlzIGN1cnJlbnRseSBmb2N1c2VkIG9uIHZpc3VhbGlzaW5nIE9wZW5BUEkgVjMgc3BlY2lmaWNhdGlvbnMsIGl0IGlzIGFyY2hpdGVjdGVkIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGUgUmVhY3QgY29tcG9uZW50cyBkZWFsIHdpdGggYSBgVUlSZWFkeVNjaGVtYWAsIHdoaWNoIGlzIGEgZ2VuZXJpYyBzcGVjaWZpY2F0aW9uIChhZG1pdHRlZGx5IGhlYXZpbHkgYmFzZWQgb24gT3BlbkFQSSBWMykuCgpUaGUgZHJlYW0gaXMgdGhhdCB0aGlzIHJlbmRlcmVyIGNvdWxkIHZpc3VhbGlzZSBvdGhlciBmb3JtYXRzIGJ5IGludHJvZHVjaW5nIG5ldyBwYXJzZXJzIHdoaWNoIHRyYW5zZm9ybSBkb2N1bWVudHMgaW50byB0aGUgY29tbW9uIGBVSVJlYWR5U2NoZW1hYCBmb3JtYXQuIFRoaXMgYXBwcm9hY2ggYWxsb3dzIHVzIHRvIGJ1aWxkIHNvbWV0aGluZyBzdXN0YWluYWJsZSBhbmQgc2NhbGFibGUsIHdoZXJlIHRoZSBjb21tdW5pdHkgY2FuIGhlbHAgY29udHJpYnV0ZSBuZXcgcGFyc2VycyAoYW1vbmcgb3RoZXIgdGhpbmdzISkgYXMgcmVxdWlyZWQuCgpUaGUgcHJvamVjdCBpcyBkZWZpbml0ZWx5IGluIGl0cyBpbmZhbmN5IGFuZCB3ZSBhcmUgbm90IHJlYWR5IGZvciB0aGF0IHlldCwgYnV0IHdlIGhvcGUgYnkgc2hhcmluZyB0aGlzIHZpc2lvbiBlYXJseSwgb3RoZXJzIGNhbiBoZWxwIG1ha2UgaXQgYSByZWFsaXR5LiBGb3IgY29udHJpYnV0aW5nIGluZm9ybWF0aW9uLCBzZWUgW0NPTlRSSUJVVElORy5tZF0oQ09OVFJJQlVUSU5HLm1kKS4KCiMjIENyZWRpdAoKLSBUaGUgW1JlRG9jXShodHRwczovL2dpdGh1Yi5jb20vUmViaWxseS9SZURvYykgcHJvamVjdCBpbnNwaXJlZCBMaW5jb2xuLiBJZiB5b3UncmUgbG9va2luZyBmb3IgYW4gYWx0ZXJuYXRpdmUgcmVuZGVyZXIsIGdpdmUgUmVEb2MgYSB0cnkhCi0gW3N3YWdnZXIyb3BlbmFwaV0oaHR0cHM6Ly9naXRodWIuY29tL21lcm1hZGUvc3dhZ2dlcjJvcGVuYXBpKSB3aGljaCBMaW5jb2xuIHVzZXMgdG8gdmFsaWRhdGUgZGVmaW5pdGlvbnMuCgojIyBNYWludGFpbmVycwoKTGluY29sbiBpcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IGZyb20gW1RlbWFuZG9dKGh0dHA6Ly90ZW1hbmRvLmNvbS8pJ3MgRGV2ZWxvcGVyIEV4cGVyaWVuY2UgdGVhbS4gVGVtYW5kbyBjb25uZWN0cyBjYXJyaWVycyB3aXRoIHJldGFpbGVycyBhbmQgcmV0YWlsZXJzIHRvIHBlb3BsZS4gVGhlIFRlbWFuZG8gUGxhdGZvcm0gY29tYmluZXMgc2hpcHBpbmcgZXhwZXJpZW5jZXMsIG11bHRpLWNhcnJpZXIgY29ubmVjdGl2aXR5IGFuZCBsaWdodG5pbmcgZmFzdCBmdWxmaWxsbWVudCBpbiBvbmUgc29sdXRpb24uIElmIHRoaXMgc291bmRzIGxpa2UgZnVuLCBbd29yayB3aXRoIHVzXShodHRwOi8vdGVtYW5kby5jb20vZW4vYWJvdXQvY2FyZWVycykhCg== readmeEtag: '"11de7dad148f4d27dd30ee8f3c12fc1ebcc37f80"' readmeLastModified: Tue, 05 Mar 2019 18:56:03 GMT repositoryId: 86389954 description: 🎩 A React renderer for OpenAPI v3. created: '2017-03-27T22:26:14Z' updated: '2024-08-01T09:16:04Z' language: JavaScript archived: false stars: 149 watchers: 11 forks: 10 owner: temando logo: https://avatars.githubusercontent.com/u/2232135?v=4 license: MIT repoEtag: '"a1ce9bebde6789acbda2867c17c085da64d28bdd90cc4b57cc594f307f175067"' repoLastModified: Thu, 01 Aug 2024 09:16:04 GMT id: 094e7e36be3a7e482c070bf15c50dd04 - source: IMPLEMENTATIONS.md name: WebSphere Liberty homepage: https://developer.ibm.com/wasdev/downloads/ language: - JavaScript - Java EE source_description: - >- Includes a native OpenAPI v3 UI which allows for customization of its banners and URL - Generates OpenAPI v3 documentation from Java EE applications category: - User Interfaces - Code Generators foundInMaster: true id: 8fcbff34d56152d1d872d7c64c002c7e - source: IMPLEMENTATIONS.md name: Tcases for OpenAPI homepage: >- https://github.com/Cornutum/tcases/blob/master/tcases-openapi/README.md#tcases-for-openapi-from-rest-ful-to-test-ful language: Java source_description: >- Generates test cases directly from an OpenAPI 3.0.X definition. Creates tests executable using various test frameworks. Bonus: Semantic linter reports elements that are inconsistent, superfluous, or dubious. category: - Testing Tools - Testing foundInMaster: true repository: >- https://github.com/Cornutum/tcases/blob/master/tcases-openapi/README.md#tcases-for-openapi-from-rest-ful-to-test-ful repositoryMetadata: base64Readme: >- IyBUY2FzZXM6IEEgTW9kZWwtQmFzZWQgVGVzdCBDYXNlIEdlbmVyYXRvciAjCgpbIVtNYXZlbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYXZlbi00LjAuNS1ncmVlbi5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9dGNhc2VzLXNoZWxsKQpbIVtKYXZhZG9jXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmFkb2MtNC4wLjUtZ3JlZW4uc3ZnKV0oaHR0cHM6Ly9qYXZhZG9jLmlvL2RvYy9vcmcuY29ybnV0dW0udGNhc2VzL3RjYXNlcy1zaGVsbCkKCiMjIFdoYXQncyBOZXc/ICMjCiAgKiBUaGUgbGF0ZXN0IHZlcnNpb24gKFtUY2FzZXMgNC4wLjVdKFJlbGVhc2VOb3Rlcy5tZCM0MDUpKSBpcyBub3cgYXZhaWxhYmxlIGF0IHRoZSBNYXZlbiBDZW50cmFsIFJlcG9zaXRvcnkuCiAgICBTZWUgWypIb3cgVG8gRG93bmxvYWQgVGNhc2VzKl0oSG93VG9Eb3dubG9hZC5tZCkgZm9yIGRvd25sb2FkIGluc3RydWN0aW9ucy4KCiAgKiBIYXZpbmcgdHJvdWJsZSB3aXRoIFRjYXNlcz8gQ2hlY2sgb3V0IFt0aGVzZSB0aXBzXSguL1Ryb3VibGVzaG9vdGluZy1GQVFzLm1kKS4KCiAgKiBHb3QgYSBxdWVzdGlvbj8gTmVlZCBzb21lIGd1aWRhbmNlPyBTdGFydCBhIFtkaXNjdXNzaW9uXShodHRwczovL2dpdGh1Yi5jb20vQ29ybnV0dW0vdGNhc2VzL2Rpc2N1c3Npb25zKS4KCiMjIFdoYXQgRG9lcyBJdCBEbz8gIyMKClRjYXNlcyBpcyBhIHRvb2wgZm9yIGRlc2lnbmluZyB0ZXN0cy4gSXQgZG9lc24ndCBtYXR0ZXIgd2hhdCBraW5kIG9mIHN5c3RlbSB5b3UgYXJlIHRlc3RpbmcgLS0gVUksIGNvbW1hbmQgbGluZSwKW1JFU1QtZnVsIEFQSV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKSwgb3IgYmFja2VuZC4gIE5vciBkb2VzIGl0IG1hdHRlcgp3aGF0IGxldmVsIG9mIHRoZSBzeXN0ZW0geW91IGFyZSB0ZXN0aW5nIC0tIHVuaXQsIHN1YnN5c3RlbSwgb3IgZnVsbCBzeXN0ZW0uIFlvdSBjYW4gdXNlIFRjYXNlcyB0byBkZXNpZ24geW91ciB0ZXN0cyBpbiBhbnkgb2YKdGhlc2Ugc2l0dWF0aW9ucy4gV2l0aCBUY2FzZXMsIHlvdSBkZWZpbmUgdGhlIGlucHV0IHNwYWNlIGZvciB5b3VyIHN5c3RlbS11bmRlci10ZXN0IGFuZCB0aGUgbGV2ZWwgb2YgY292ZXJhZ2UgdGhhdCB5b3UKd2FudC4gVGhlbiBUY2FzZXMgZ2VuZXJhdGVzIGEgbWluaW1hbCBzZXQgb2YgdGVzdCBjYXNlcyB0aGF0IG1lZXRzIHlvdXIgcmVxdWlyZW1lbnRzLgoKVGNhc2VzIGlzIHByaW1hcmlseSBhIHRvb2wgZm9yIGJsYWNrLWJveCB0ZXN0IGRlc2lnbi4gRm9yIHN1Y2ggdGVzdHMsIHRoZSBjb25jZXB0IG9mICJjb3ZlcmFnZSIgaXMgZGlmZmVyZW50IGZyb20gc3RydWN0dXJhbAp0ZXN0aW5nIGNyaXRlcmlhIHN1Y2ggYXMgbGluZSBjb3ZlcmFnZSwgYnJhbmNoIGNvdmVyYWdlLCBldGMuIEluc3RlYWQsIFRjYXNlcyBpcyBndWlkZWQgYnkgY292ZXJhZ2Ugb2YgdGhlIGlucHV0IHNwYWNlIG9mIHlvdXIKc3lzdGVtLgoKVGNhc2VzIGdpdmVzIHlvdSBhIHdheSB0byBkZWZpbmUgdGhlIGlucHV0IHNwYWNlIGZvciB5b3VyIHN5c3RlbSBpbiBhIGZvcm0gdGhhdCBpcyBjb25jaXNlIGJ1dCBjb21wcmVoZW5zaXZlLiBUaGVuIFRjYXNlcyBhbGxvd3MKeW91IHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzIGluIHlvdXIgc2FtcGxlIHN1YnNldCBieSBzcGVjaWZ5aW5nIHRoZSBsZXZlbCBvZiBjb3ZlcmFnZSB5b3Ugd2FudC4gWW91IGNhbiBzdGFydCB3aXRoIGEKYmFzaWMgbGV2ZWwgb2YgY292ZXJhZ2UsIGFuZCBUY2FzZXMgd2lsbCBnZW5lcmF0ZSBhIHNtYWxsIHNldCBvZiB0ZXN0IGNhc2VzIHRoYXQgdG91Y2hlcyBldmVyeSBzaWduaWZpY2FudCBlbGVtZW50IG9mIHRoZSBpbnB1dApzcGFjZS4gVGhlbiB5b3UgY2FuIGltcHJvdmUgeW91ciB0ZXN0cyBieSBzZWxlY3RpdmVseSBhZGRpbmcgY292ZXJhZ2UgaW4gc3BlY2lmaWMgaGlnaC1yaXNrIGFyZWFzLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBzcGVjaWZ5CnBhaXJ3aXNlIGNvdmVyYWdlIG9yIGhpZ2hlci1vcmRlciBjb21iaW5hdGlvbnMgb2Ygc2VsZWN0ZWQgaW5wdXQgdmFyaWFibGVzLgoKIyMgSG93IERvZXMgSXQgV29yaz8gIyMKCkZpcnN0LCB5b3UgY3JlYXRlIGEgc3lzdGVtIGlucHV0IGRlZmluaXRpb24sIGEgZG9jdW1lbnQgdGhhdCBkZWZpbmVzIHlvdXIgc3lzdGVtIGFzIGEgc2V0IG9mIGZ1bmN0aW9ucy4gRm9yIGVhY2ggc3lzdGVtCmZ1bmN0aW9uLCB0aGUgc3lzdGVtIGlucHV0IGRlZmluaXRpb24gZGVmaW5lcyB0aGUgdmFyaWFibGVzIHRoYXQgY2hhcmFjdGVyaXplIHRoZSBmdW5jdGlvbiBpbnB1dCBzcGFjZS4gSWYgeW91IGFyZSB0ZXN0aW5nIGEgV2ViCnNlcnZpY2UgQVBJLCB5b3UgY2FuIGV2ZW4gW2dlbmVyYXRlIGEgc3lzdGVtIGlucHV0IGRlZmluaXRpb24gYXV0b21hdGljYWxseV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKQpmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbi4KClRoZW4sIHlvdSBjYW4gY3JlYXRlIGEgZ2VuZXJhdG9yIGRlZmluaXRpb24uIFRoYXQncyBhbm90aGVyIGRvY3VtZW50IHRoYXQgZGVmaW5lcyB0aGUgY292ZXJhZ2UgeW91IHdhbnQgZm9yIGVhY2ggc3lzdGVtCmZ1bmN0aW9uLiBUaGUgZ2VuZXJhdG9yIGRlZmluaXRpb24gaXMgb3B0aW9uYWwuIFlvdSBjYW4gc2tpcCB0aGlzIHN0ZXAgYW5kIHN0aWxsIGdldCBhIGJhc2ljIGxldmVsIG9mIGNvdmVyYWdlLgoKRmluYWxseSwgeW91IHJ1biBUY2FzZXMuIFRjYXNlcyBpcyBhIEphdmEgcHJvZ3JhbSB0aGF0IHlvdSBjYW4gcnVuIGZyb20gdGhlIGNvbW1hbmQgbGluZSBvciB1c2luZyB0aGUKW1RjYXNlcyBNYXZlbiBQbHVnaW5dKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL3RjYXNlcy1tYXZlbi1wbHVnaW4vKS4gVGhlIGNvbW1hbmQgbGluZSB2ZXJzaW9uIG9mIFRjYXNlcyBjb21lcyB3aXRoIGJ1aWx0LWluCnN1cHBvcnQgZm9yIHJ1bm5pbmcgdXNpbmcgYSBzaGVsbCBzY3JpcHQgb3IgYW4gYW50IHRhcmdldC4gVXNpbmcgeW91ciBpbnB1dCBkZWZpbml0aW9uIGFuZCB5b3VyIGdlbmVyYXRvciBkZWZpbml0aW9uLCBUY2FzZXMKZ2VuZXJhdGVzIGEgc3lzdGVtIHRlc3QgZGVmaW5pdGlvbi4gVGhlIHN5c3RlbSB0ZXN0IGRlZmluaXRpb24gaXMgYSBkb2N1bWVudCB0aGF0IGxpc3RzLCBmb3IgZWFjaCBzeXN0ZW0gZnVuY3Rpb24sIGEgc2V0IG9mIHRlc3QKY2FzZXMgdGhhdCBwcm92aWRlcyB0aGUgc3BlY2lmaWVkIGxldmVsIG9mIGNvdmVyYWdlLiBFYWNoIHRlc3QgY2FzZSBkZWZpbmVzIGEgc3BlY2lmaWMgdmFsdWUgZm9yIGV2ZXJ5IGZ1bmN0aW9uIGlucHV0CnZhcmlhYmxlLiBUY2FzZXMgZ2VuZXJhdGVzIG5vdCBvbmx5IHZhbGlkIGlucHV0IHZhbHVlcyB0aGF0IGRlZmluZSBzdWNjZXNzZnVsIHRlc3QgY2FzZXMgYnV0IGFsc28gaW52YWxpZCB2YWx1ZXMgZm9yIHRoZSB0ZXN0cwpjYXNlcyB0aGF0IGFyZSBuZWVkZWQgdG8gdmVyaWZ5IGV4cGVjdGVkIGVycm9yIGhhbmRsaW5nLgoKT2YgY291cnNlLCB0aGUgc3lzdGVtIHRlc3QgZGVmaW5pdGlvbiBpcyBub3Qgc29tZXRoaW5nIHlvdSBjYW4gZXhlY3V0ZSBkaXJlY3RseS4gKFVubGVzcyBpdCB3YXMKW2Rlcml2ZWQgYXV0b21hdGljYWxseSBmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbl0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI2hvdy1kby15b3UtcnVuLWdlbmVyYXRlZC1hcGktdGVzdC1jYXNlcykhKQpCdXQgaXQgZm9sbG93cyBhIHdlbGwtZGVmaW5lZCBzY2hlbWEsIHdoaWNoIG1lYW5zIHlvdSBjYW4gdXNlIGEgdmFyaWV0eSBvZiB0cmFuc2Zvcm1hdGlvbiB0b29scyB0byBjb252ZXJ0IGl0IGludG8gYSBmb3JtIHRoYXQKaXMgc3VpdGFibGUgZm9yIHRlc3RpbmcgeW91ciBzeXN0ZW0uIEZvciBleGFtcGxlLCBUY2FzZXMgY29tZXMgd2l0aCBhIGJ1aWx0LWluIHRyYW5zZm9ybWVyIHRoYXQgY29udmVydHMgYSBzeXN0ZW0gdGVzdApkZWZpbml0aW9uIGludG8gYSBKYXZhIHNvdXJjZSBjb2RlIHRlbXBsYXRlIGZvciBhIEpVbml0IG9yIFRlc3RORyB0ZXN0IGNsYXNzLgoKIyMgR2V0IFN0YXJ0ZWQhICMjCgogICogKipUaGUgTG93ZG93bioqCiAgICAqIFtUY2FzZXM6IFRoZSBDb21wbGV0ZSBHdWlkZV0oLi9UY2FzZXMtR3VpZGUubWQjdGNhc2VzLXRoZS1jb21wbGV0ZS1ndWlkZSkKICAgICogW1RjYXNlcyBmb3IgT3BlbkFQSV0odGNhc2VzLW9wZW5hcGkvUkVBRE1FLm1kI3RjYXNlcy1mb3Itb3BlbmFwaS1mcm9tLXJlc3QtZnVsLXRvLXRlc3QtZnVsKTogVGVzdGluZyBhIFJFU1QtZnVsIEFQST8gR2VuZXJhdGUgdGVzdCBjYXNlcyBkaXJlY3RseSBmcm9tIHlvdXIgT3BlbkFQSSB2MyBkZWZpbml0aW9uLgogICAgKiBbVGhlIFRjYXNlcyBNYXZlbiBQbHVnaW5dKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL3RjYXNlcy1tYXZlbi1wbHVnaW4vKQoKICAqICoqSGVscGZ1bCBHdWlkZXMqKgogICAgKiBbSG93IFRvIERvd25sb2FkIFVzaW5nIE1hdmVuXShIb3dUb0Rvd25sb2FkLm1kKQogICAgKiBbSG93IFRvIFNldHVwIGEgVGNhc2VzIFdlYiBTZXJ2aWNlXSguL1RjYXNlcy1XZWItU2VydmljZS5tZCkKICAgICogW1VzaW5nIFRoZSBUY2FzZXMgQVBJXSguL1VzaW5nLVRjYXNlcy1BUEkubWQpCiAgICAqIFtUcm91Ymxlc2hvb3RpbmcgRkFRXSguL1Ryb3VibGVzaG9vdGluZy1GQVFzLm1kI3Ryb3VibGVzaG9vdGluZy1mYXFzKQogICAgKiBbUmVsZWFzZSBOb3Rlc10oUmVsZWFzZU5vdGVzLm1kKQoKICAqICoqTW9yZSBJbmZvKioKICAgICogW01vZGVsLURyaXZlbiBUZXN0aW5nIFVzaW5nIFRjYXNlc10oTW9kZWxEcml2ZW5UZXN0aW5nRm9yQWdpbGVUZWFtcy5tZCkKICAgICogSmF2YWRvYzogW1RjYXNlcyBBUEldKGh0dHA6Ly93d3cuY29ybnV0dW0ub3JnL3RjYXNlcy9kb2NzL2FwaS9pbmRleC5odG1sKQoKIyMgQ29udHJpYnV0b3JzICMjCgpUaGFua3MgdG8gdGhlIGZvbGxvd2luZyBwZW9wbGUsIHdobyBoYXZlIGNvbnRyaWJ1dGVkIHNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBUY2FzZXMuCgogICogW0tlcnJ5IEtpbWJyb3VnaF0oaHR0cHM6Ly9naXRodWIuY29tL2tlcnJ5a2ltYnJvdWdoKSAocHJvamVjdCBmb3VuZGVyKQogICogW0p1Z2xhcl0oaHR0cHM6Ly9naXRodWIuY29tL2p1Z2xhcikKICAqIFtUaGliYXVsdCBLcnVzZV0oaHR0cHM6Ly9naXRodWIuY29tL3RrcnVzZSkK readmeEtag: '"f230676de22e22cd64556f829daff2ce7cc58112"' readmeLastModified: Sat, 06 Apr 2024 16:58:48 GMT repositoryId: 32223373 description: A model-based test case generator created: '2015-03-14T17:22:38Z' updated: '2024-08-10T02:42:35Z' language: Java archived: false stars: 215 watchers: 20 forks: 52 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT repoEtag: '"221153f820cc6cbf4fe0bd4ad9a4e694a12f4718779d7a0ef7c06426d65fc534"' repoLastModified: Sat, 10 Aug 2024 02:42:35 GMT id: 14da7572a7632f9a9fb1c1ab2acef586 - source: IMPLEMENTATIONS.md name: Vert.x Web API Contract homepage: http://vertx.io/docs/#web language: - Java - Kotlin - JavaScript - Groovy - Ruby - Ceylon - Scala source_description: >- Create an API endpoint with Vert.x 3 and OpenAPI 3 with automatic requests validation category: Server Implementations foundInMaster: true id: f991830834ff7a8fdec302b6ff07ec42 - source: IMPLEMENTATIONS.md name: Modern homepage: https://github.com/modern-project/modern-ruby language: Ruby source_description: >- OpenAPI 3-based Rack framework with automatic OAS generation and requests/response validation category: Server Implementations foundInMaster: true repository: https://github.com/modern-project/modern-ruby repositoryMetadata: base64Readme: >- IyBNb2Rlcm4gIwoKIyMgVXNpbmcgTW9kZXJuICMjCkEgZGV0YWlsZWQgZGVzY3JpcHRpb24gaXMgb24gdGhlIHdheS4gRm9yIG5vdywgcGxlYXNlIGZlZWwgZnJlZSB0byBwZXJ1c2Ugb3VyClt0ZXN0IGNhc2VzXSBhbmQgdGhlIGJlZ2lubmluZ3Mgb2Ygb3VyIFttYW51YWxdIHRvIGdldCBhbiBpZGVhIG9mIE1vZGVybiBhbmQgaG93Cml0IHdvcmtzLgoKIyMgVmVyc2lvbmluZyAjIwpUaGlzIHByb2plY3QgZm9sbG93cyB0aGUgW1NlbWFudGljIFZlcnNpb25pbmddLCB2ZXJzaW9uIDIuMC4wLCB3aXRoIG9uZQphZGRlbmR1bTogdW50aWwgdGhlIHByb2plY3QgcmVhY2hlcyB0aGUgMS4wLjAgbWFyaywgdGhlIG1pbm9yIHZlcnNpb24gbnVtYmVyCihpLmUuLCAwLnkuKikgZGVub3RlcyBhbiBBUEktYnJlYWtpbmcgY2hhbmdlLgoKIyMgQ29udHJpYnV0aW5nICMjCkJ1ZyByZXBvcnRzIGFuZCBwdWxsIHJlcXVlc3RzIGFyZSB3ZWxjb21lIFtvbiBHaXRIdWJdLiBUaGlzIHByb2plY3QgaXMgaW50ZW5kZWQKdG8gYmUgYSBzYWZlLCB3ZWxjb21pbmcgc3BhY2UgZm9yIGNvbGxhYm9yYXRpb24sIGFuZCBjb250cmlidXRvcnMgYXJlIGV4cGVjdGVkCnRvIGFkaGVyZSB0byB0aGUgW0NvbnRyaWJ1dG9yIENvdmVuYW50XSBjb2RlIG9mIGNvbmR1Y3QuCgpUaGUgYmVzdCB3YXkgdG8gc3RhcnQgY29udHJpYnV0aW5nIGlzIHRvIGxvb2sgZm9yIGBUT0RPYCBjb21tZW50cyBpbiB0aGUgY29kZTsKdGhleSdyZSBzcHJpbmtsZWQgbGliZXJhbGx5IHdoZXJldmVyIGl0IGRpZG4ndCBxdWl0ZSBtYWtlIHNlbnNlIHRvIGRvIHNvbWV0aGluZwp5ZXQgYnV0IHNvbWUgaWRlYXMgbWlnaHQgYmUgbHVya2luZyB0aGF0IGRlc2NyaWJlIGhvdyBpdCBjb3VsZCBiZSBoYW5kbGVkLiBJZgpub3Q/IEZpbGUgYW4gaXNzdWUgYW5kIGxldCdzIGNoYXQgYWJvdXQgaXQhCgojIyBMaWNlbnNlICMjClRoZSBnZW0gaXMgYXZhaWxhYmxlIGFzIG9wZW4gc291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgW01JVCBMaWNlbnNlXS4KCiMjIENvZGUgb2YgQ29uZHVjdCAjIwpFdmVyeW9uZSBpbnRlcmFjdGluZyBpbiB0aGUgTW9kZXJuIHByb2plY3TigJlzIGNvZGViYXNlcywgaXNzdWUgdHJhY2tlcnMsIGNoYXQKcm9vbXMgYW5kIG1haWxpbmcgbGlzdHMgaXMgZXhwZWN0ZWQgdG8gZm9sbG93IHRoZSBbY29kZSBvZiBjb25kdWN0XS4KClt0ZXN0IGNhc2VzXTogaHR0cHM6Ly9naXRodWIuY29tL2Vyb3BwbGUvbW9kZXJuL3RyZWUvbWFzdGVyL3NwZWMvbW9kZXJuClttYW51YWxdOiBodHRwczovL2dpdGh1Yi5jb20vZXJvcHBsZS9tb2Rlcm4vdHJlZS9tYXN0ZXIvbWFudWFsCltTZW1hbnRpYyBWZXJzaW9uaW5nXTogaHR0cHM6Ly9zZW12ZXIub3JnLwpbb24gR2l0SHViXTogaHR0cHM6Ly9naXRodWIuY29tL2Vyb3BwbGUvbW9kZXJuCltDb250cmlidXRvciBDb3ZlbmFudF06IGh0dHA6Ly9jb250cmlidXRvci1jb3ZlbmFudC5vcmcKW01JVCBMaWNlbnNlXTogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKW2NvZGUgb2YgY29uZHVjdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9lcm9wcGxlL21vZGVybi9ibG9iL21hc3Rlci9DT0RFX09GX0NPTkRVQ1QubWQ= readmeEtag: '"f0baa1b74cb7dfb9be1bc8727966e62d1c6260fc"' readmeLastModified: Tue, 26 Feb 2019 05:25:01 GMT repositoryId: 121304397 description: An OpenAPI-first web server for Ruby/Rack. created: '2018-02-12T21:30:10Z' updated: '2021-03-19T23:47:47Z' language: Ruby archived: false stars: 15 watchers: 4 forks: 1 owner: modern-project logo: https://avatars.githubusercontent.com/u/36420497?v=4 license: MIT repoEtag: '"8b278cd19e430cb0905a0bc8d79b9e1036a74e91ec952cc74e2319d20dac0d75"' repoLastModified: Fri, 19 Mar 2021 23:47:47 GMT id: 8bc7fa880ea28bdf448ee5dfd659e352 - source: IMPLEMENTATIONS.md name: Exegesis homepage: https://github.com/exegesis-js/exegesis language: Node.js source_description: OpenAPI 3 server-side framework for express and other frameworks. category: Server Implementations foundInMaster: true repository: https://github.com/exegesis-js/exegesis repositoryMetadata: base64Readme: >- IyBFeGVnZXNpcyBPcGVuQVBJIEVuZ2luZQoKWyFbTlBNIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leGVnZXNpcy5zdmcpXShodHRwczovL25wbWpzLm9yZy9wYWNrYWdlL2V4ZWdlc2lzKQohW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL3dvcmtmbG93cy9HaXRIdWIlMjBDSS9iYWRnZS5zdmcpClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZXhlZ2VzaXMtanMvZXhlZ2VzaXMvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vci9leGVnZXNpcy1qcy9leGVnZXNpcykKWyFbR3JlZW5rZWVwZXIgYmFkZ2VdKGh0dHBzOi8vYmFkZ2VzLmdyZWVua2VlcGVyLmlvL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzLnN2ZyldKGh0dHBzOi8vZ3JlZW5rZWVwZXIuaW8vKQpbIVtzZW1hbnRpYy1yZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLyUyMCUyMCVGMCU5RiU5MyVBNiVGMCU5RiU5QSU4MC1zZW1hbnRpYy0tcmVsZWFzZS1lMTAwNzkuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3NlbWFudGljLXJlbGVhc2Uvc2VtYW50aWMtcmVsZWFzZSkKCj4gIyMgX2V4ZWdlc2lzXwo+Cj4gX24uXyBBbiBleHBsYW5hdGlvbiBvciBjcml0aWNhbCBpbnRlcnByZXRhdGlvbiBvZiBhIHRleHQsIGVzcGVjaWFsbHkgYW4KPiBBUEkgZGVmaW5pdGlvbiBkb2N1bWVudC4KPgo+IC0tIE5vIGRpY3Rpb25hcnkgZXZlcgoKVGhpcyBsaWJyYXJ5IGltcGxlbWVudHMgYSBmcmFtZXdvcmstYWdub3N0aWMgc2VydmVyIHNpZGUgaW1wbGVtZW50YXRpb24gb2YKW09wZW5BUEkgMy54XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMS5tZCNyZXF1ZXN0Qm9keU9iamVjdCkuCgojIyBEZXNjcmlwdGlvbgoKRXhlZ2VzaXMgaXMgYSBsaWJyYXJ5IGZvciBpbXBsZW1lbnRpbmcgc2VydmVyLXNpZGUgT3BlbkFQSSAzLnggVGhlIGxpYnJhcnkgaGFzIGJlZW4Kd3JpdHRlbiBpbiBzdWNoIGEgd2F5IHRoYXQgaG9wZWZ1bGx5IGl0IHdpbGwgYWxzbyBiZSB1c2VkIHRvIGltcGxlbWVudCBmdXR1cmUKdmVyc2lvbnMgb2YgT3BlbkFQSSwgb3IgcG9zc2libHkgZXZlbiBvdGhlciBBUEkgZGVzY3JpcHRpb24gc3RhbmRhcmRzIGFsdG9nZXRoZXIuCgpZb3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBiZSB1c2luZyB0aGlzIGxpYnJhcnkgZGlyZWN0bHkuIEhhdmUgYSBsb29rIGF0OgoKLSBbZXhlZ2VzaXMtZXhwcmVzc10oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzLWV4cHJlc3MpIC0gTWlkZGxld2FyZQogIGZvciBzZXJ2aW5nIE9wZW5BUEkgMy54IEFQSXMgZnJvbSBbZXhwcmVzc10oaHR0cHM6Ly9leHByZXNzanMuY29tLykgb3IKICBbY29ubmVjdF0oaHR0cHM6Ly9naXRodWIuY29tL3NlbmNoYWxhYnMvY29ubmVjdCkuCi0gW2V4ZWdlc2lzLWtvYV0oaHR0cHM6Ly9naXRodWIuY29tL2NvbmZ1c2VyL2V4ZWdlc2lzLWtvYSkgLSBNaWRkbGV3YXJlCiAgZm9yIHNlcnZpbmcgT3BlbkFQSSAzLnggQVBJcyBmcm9tIFtrb2FdKGh0dHBzOi8va29hanMuY29tLykuCgojIyBGZWF0dXJlcwoKLSBGdWxsIHN1cHBvcnQgZm9yIE9wZW5BUEkgMy54LnggKHNlZSBbaXNzdWVzIHRhZ2dlZCB3aXRoIGNvbmZvcm1hbmNlXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvaXNzdWVzP3E9aXMlM0Fpc3N1ZStpcyUzQW9wZW4rbGFiZWwlM0Fjb25mb3JtYW5jZSkgZm9yIGFyZWFzIHdoaWNoIGNvdWxkIHVzZSBzb21lIGltcHJvdmVtZW50KS4KLSBCdWlsdCBpbiBzdXBwb3J0IGZvciAiYXBwbGljYXRpb24vanNvbiIgYW5kICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIHJlcXVlc3RzCi0gQ2FuIHVzZSBleHByZXNzIFtib2R5IHBhcnNlciBtaWRkbGV3YXJlc10oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT3B0aW9ucy5tZCNtaW1ldHlwZXBhcnNlcnMpCi0gW1Jlc3BvbnNlIHZhbGlkYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9leGVnZXNpcy1qcy9leGVnZXNpcy9ibG9iL21hc3Rlci9kb2NzL09wdGlvbnMubWQjb25yZXNwb25zZXZhbGlkYXRpb25lcnJvcikKLSBbQXV0aGVudGljYXRpb24gc3VwcG9ydF0oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT0FTMyUyMFNlY3VyaXR5Lm1kKQotIFtQbHVnaW5zXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvdHJlZS9tYXN0ZXIvZG9jcykgYWxsb3cgZWFzeSBleHRlbnNpYmlsaXR5Ci0gRWFzeSBzdXBwb3J0IGZvciBbdmFsaWRhdGluZyBjdXN0b20gZm9ybWF0c10oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT3B0aW9ucy5tZCNjdXN0b21mb3JtYXRzKQoKIyMgVHV0b3JpYWwKCkNoZWNrIG91dCB0aGUgdHV0b3JpYWwgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9leGVnZXNpcy1qcy9leGVnZXNpcy9ibG9iL21hc3Rlci9kb2NzL1R1dG9yaWFsLm1kKS4KCiMjIEFQSQoKIyMjIGNvbXBpbGVBcGkob3BlbkFwaURvYywgb3B0aW9uc1ssIGRvbmVdKQoKVGhpcyBmdW5jdGlvbiB0YWtlcyBhbiBBUEkgZG9jdW1lbnQgYW5kIGEgc2V0IG9mCltvcHRpb25zXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvYmxvYi9tYXN0ZXIvZG9jcy9PcHRpb25zLm1kKSwKYW5kIHJldHVybnMgYSBjb25uZWN0LXN0eWxlIG1pZGRsZXdhcmUgZnVuY3Rpb24gd2hpY2ggd2lsbCBleGVjdXRlIHRoZSBBUEkuCgpgb3BlbkFwaURvY2AgaXMgZWl0aGVyIGEgcGF0aCB0byB5b3VyIG9wZW5hcGkueWFtbCBvciBvcGVuYXBpLmpzb24gZmlsZSwKb3IgaXQgY2FuIGJlIGEgSlNPTiBvYmplY3Qgd2l0aCB0aGUgY29udGVudHMgb2YgeW91ciBPcGVuQVBJIGRvY3VtZW50LiBUaGlzCnNob3VsZCBoYXZlIHRoZSBbYHgtZXhlZ2VzaXMtY29udHJvbGxlcmBdKGh0dHBzOi8vZ2l0aHViLmNvbS9leGVnZXNpcy1qcy9leGVnZXNpcy9ibG9iL21hc3Rlci9kb2NzL09BUzMlMjBTcGVjaWZpY2F0aW9uJTIwRXh0ZW5zaW9ucy5tZCkKZXh0ZW5zaW9uIGRlZmluZWQgb24gYW55IHBhdGhzIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gYWNjZXNzLgoKYG9wdGlvbnNgIGlzIGRlc2NyaWJlZCBpbiBkZXRhaWwgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9leGVnZXNpcy1qcy9leGVnZXNpcy9ibG9iL21hc3Rlci9kb2NzL09wdGlvbnMubWQpLiBBdCBhCm1pbmltdW0sIHlvdSdsbCBwcm9iYWJseSB3YW50IHRvIHByb3ZpZGUgYG9wdGlvbnMuY29udHJvbGxlcnNgLCBhIHBhdGggdG8gd2hlcmUKeW91ciBbY29udHJvbGxlciBtb2R1bGVzXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvYmxvYi9tYXN0ZXIvZG9jcy9FeGVnZXNpcyUyMENvbnRyb2xsZXJzLm1kKQpjYW4gYmUgZm91bmQuIElmIHlvdSBoYXZlIGFueSBzZWN1cml0eSByZXF1aXJlbWVudHMgZGVmaW5lZCwgeW91J2xsIGFsc28Kd2FudCB0byBwYXNzIGluIHNvbWUgW2F1dGhlbnRpY2F0b3JzXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvYmxvYi9tYXN0ZXIvZG9jcy9PQVMzJTIwU2VjdXJpdHkubWQpLgpUbyBlbmFibGUgcmVzcG9uc2UgdmFsaWRhdGlvbiwgeW91J2xsIHdhbnQgdG8gcHJvdmlkZSBhIHZhbGlkYXRpb24gY2FsbGJhY2sKZnVuY3Rpb24gdmlhIFtgb25SZXNwb25zZVZhbGlkYXRpb25FcnJvcigpYF0oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT3B0aW9ucy5tZCNvbnJlc3BvbnNldmFsaWRhdGlvbmVycm9yKS4KRXhlZ2VzaXMncyBmdW5jdGlvbmFsaXR5IGNhbiBhbHNvIGJlIGV4dGVuZGVkIHVzaW5nIFtwbHVnaW5zXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvdHJlZS9tYXN0ZXIvZG9jcyksCndoaWNoIHJ1biBvbiBldmVyeSByZXF1ZXN0LiBQbHVnaW5zIGxldCB5b3UgYWRkIGZ1bmN0aW9uYWxpdHkgbGlrZQpbcm9sZSBiYXNlIGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9leGVnZXNpcy1qcy9leGVnZXNpcy1wbHVnaW4tcm9sZXMpLApvciBDT1JTLgoKIyMjIGNvbXBpbGVSdW5uZXIob3BlbkFwaURvYywgb3B0aW9uc1ssIGRvbmVdKQoKVGhpcyBmdW5jdGlvbiBpcyBzaW1pbGFyIHRvIGBjb21waWxlQXBpYDsgaXQgdGFrZXMgYW4gQVBJIGRvY3VtZW50IGFuZCBhIHNldCBvZgpbb3B0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT3B0aW9ucy5tZCksCmFuZCByZXR1cm5zIGEgInJ1bm5lciIuIFRoZSBydW5uZXIgaXMgYSBgZnVuY3Rpb24gcnVubmVyKHJlcSwgcmVzKWAsIHdoaWNoIHRha2VzCmluIGEgc3RhbmRhcmQgbm9kZSBIVFRQIHJlcXVlc3QgYW5kIHJlc3BvbnNlLiBJdCB3aWxsIG5vdCBtb2RpZnkgdGhlIHJlc3BvbnNlLApob3dldmVyLiBJbnN0ZWFkIGl0IHJldHVybnMgKGVpdGhlciB2aWEgY2FsbGJhY2sgb3IgUHJvbWlzZSkgYW5kIGBIdHRwUmVzdWx0YApvYmplY3QuIFRoaXMgaXMgYSBge2hlYWRlcnMsIHN0YXR1cywgYm9keX1gIG9iamVjdCwgd2hlcmUgYGJvZHlgIGlzIGEgcmVhZGFibGUKc3RyZWFtLCByZWFkIHRvIGJlIHBpcGVkIHRvIHRoZSByZXNwb25zZS4KCiMjIyB3cml0ZUh0dHBSZXN1bHQoaHR0cFJlc3VsdCwgcmVzWywgZG9uZV0pCgpBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciB3cml0aW5nIGFuIGBIdHRwUmVzdWx0YCBmcm9tIGEgcnVubmVyIG91dCB0byB0aGUKcmVzcG9uc2UuCgojIyBFeGFtcGxlCgpgYGBqcwppbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnOwppbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnOwppbXBvcnQgKiBhcyBleGVnZXNpcyBmcm9tICdleGVnZXNpcyc7CgovLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL2RvY3MvT3B0aW9ucy5tZApjb25zdCBvcHRpb25zID0gewogIGNvbnRyb2xsZXJzOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9zcmMvY29udHJvbGxlcnMnKSwKfTsKCi8vIGBjb21waWxlQXBpKClgIGNhbiBlaXRoZXIgYmUgdXNlZCB3aXRoIGEgY2FsbGJhY2ssIG9yIGlmIG5vbmUgaXMgcHJvdmlkZWQsCi8vIHdpbGwgcmV0dXJuIGEgUHJvbWlzZS4KZXhlZ2VzaXMuY29tcGlsZUFwaSgKICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9vcGVuYXBpL29wZW5hcGkueWFtbCcpLAogIG9wdGlvbnMsCiAgKGVyciwgbWlkZGxld2FyZSkgPT4gewogICAgaWYgKGVycikgewogICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjcmVhdGluZyBtaWRkbGV3YXJlJywgZXJyLnN0YWNrKTsKICAgICAgcHJvY2Vzcy5leGl0KDEpOwogICAgfQoKICAgIGNvbnN0IHNlcnZlciA9IGh0dHAuY3JlYXRlU2VydmVyKChyZXEsIHJlcykgPT4KICAgICAgbWlkZGxld2FyZShyZXEsIHJlcywgKGVycikgPT4gewogICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgIHJlcy53cml0ZUhlYWQoZXJyLnN0YXR1cyB8fCA1MDApOwogICAgICAgICAgcmVzLmVuZChgSW50ZXJuYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlcy53cml0ZUhlYWQoNDA0KTsKICAgICAgICAgIHJlcy5lbmQoKTsKICAgICAgICB9CiAgICAgIH0pCiAgICApOwoKICAgIHNlcnZlci5saXN0ZW4oMzAwMCk7CiAgfQopOwpgYGAKCiMjIEludGVybmFsIFdvcmtpbmdzCgpJbnRlcm5hbGx5LCB3aGVuIHlvdSAiY29tcGlsZSIgYW4gQVBJLCBFeGVnZXNpcyBwcm9kdWNlcyBhbgpbQXBpSW50ZXJmYWNlXShodHRwczovL2dpdGh1Yi5jb20vZXhlZ2VzaXMtanMvZXhlZ2VzaXMvYmxvYi9mNTI2NmRmZDI3Y2RiNDBjNWViZjgwNjMzMDNhY2JmNDgzZDc4ZWQ5L3NyYy90eXBlcy9pbnRlcm5hbC50cyNMNTApIG9iamVjdC4KVGhpcyBpcyBhbiBvYmplY3QgdGhhdCwgZ2l2ZW4gYSBtZXRob2QsIHVybCwgYW5kIGhlYWRlcnMsIHJldHVybnMgYQpbYHJlc29sdmVkT3BlcmF0aW9uYF0oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvZjUyNjZkZmQyN2NkYjQwYzVlYmY4MDYzMzAzYWNiZjQ4M2Q3OGVkOS9zcmMvdHlwZXMvaW50ZXJuYWwudHMjTDIxKSAtCmVzc2VudGlhbGx5IGEgY29sbGVjdGlvbiBvZiBmdW5jdGlvbnMgdGhhdCB3aWxsIHBhcnNlIGFuZCB2YWxpZGF0ZSB0aGUgYm9keSBhbmQKcGFyYW1ldGVycywgaGFzIHRoZSBjb250cm9sbGVyIHRoYXQgZXhlY3V0ZXMgdGhlIGZ1bmN0aW9uYWxpdHksIGV0Yy4uLiBUaGUgb25seQpjdXJyZW50IGltcGxlbWVudGF0aW9uIGZvciBhbiBBcGlJbnRlcmZhY2UgaXMgdGhlCltgb2FzMy9PcGVuQXBpYCBjbGFzc10oaHR0cHM6Ly9naXRodWIuY29tL2V4ZWdlc2lzLWpzL2V4ZWdlc2lzL2Jsb2IvbWFzdGVyL3NyYy9vYXMzL09wZW5BcGkudHMpLgpFc3NlbnRpYWxseSB0aGlzIGNsYXNzJ3Mgam9iIGlzIHRvIHRha2UgaW4gYW4gT3BlbkFQSSAzLngueCBkb2N1bWVudCwgYW5kIHR1cm4gaXQKYW4gQXBpSW50ZXJmYWNlIHRoYXQgRXhlZ2VzaXMgY2FuIHVzZS4gSW4gdGhlb3J5LCBob3dldmVyLCB3ZSBjb3VsZCBwYXJzZSBzb21lCm90aGVyIEFQSSBkb2N1bWVudCBmb3JtYXQsIHByb2R1Y2UgYW4gQXBpSW50ZXJmYWNlLCBhbmQgRXhlZ3NpcyB3b3VsZCBzdGlsbCBiZQphYmxlIHRvIHJ1biBpdC4K readmeEtag: '"03673cbb061ddf9537f09b6542f23203b4f5732b"' readmeLastModified: Thu, 27 Jun 2024 19:51:44 GMT repositoryId: 130414902 description: Tools for implementing server-side OpenAPI 3.0.0 created: '2018-04-20T21:19:56Z' updated: '2024-08-28T20:43:17Z' language: TypeScript archived: false stars: 139 watchers: 9 forks: 36 owner: exegesis-js logo: https://avatars.githubusercontent.com/u/38572273?v=4 license: MIT repoEtag: '"2e69c948d6e2bb5ccb9747d740c77eb06d97264536b7185ebf659f6c2a34f918"' repoLastModified: Wed, 28 Aug 2024 20:43:17 GMT id: 3621b0c839384ca811a54a6d5e4f4c0c - source: IMPLEMENTATIONS.md name: PHP-CRUD-API homepage: https://github.com/mevdschee/php-crud-api language: PHP source_description: Automatic CRUD API with OpenAPI 3 docs category: Server Implementations foundInMaster: true repository: https://github.com/mevdschee/php-crud-api repositoryMetadata: base64Readme: >- IyBQSFAtQ1JVRC1BUEkKClNpbmdsZSBmaWxlIFBIUCBzY3JpcHQgdGhhdCBhZGRzIGEgUkVTVCBBUEkgdG8gYSBNeVNRTC9NYXJpYURCLCBQb3N0Z3JlU1FMLCBTUUwgU2VydmVyIG9yIFNRTGl0ZSBkYXRhYmFzZS4gCgpIb3d0bzogVXBsb2FkICJgYXBpLnBocGAiIHRvIHlvdXIgd2Vic2VydmVyLCBjb25maWd1cmUgaXQgdG8gY29ubmVjdCB0byB5b3VyIGRhdGFiYXNlLCBoYXZlIGFuIGluc3RhbnQgZnVsbC1mZWF0dXJlZCBSRVNUIEFQSS4KCk5COiBUaGlzIGlzIHRoZSBbVHJlZVFMXShodHRwczovL3RyZWVxbC5vcmcpIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBpbiBQSFAuCgojIyBSZXF1aXJlbWVudHMKCiAgLSBQSFAgNy4yIG9yIGhpZ2hlciB3aXRoIFBETyBkcml2ZXJzIGVuYWJsZWQgZm9yIG9uZSBvZiB0aGVzZSBkYXRhYmFzZSBzeXN0ZW1zOgogICAgLSBNeVNRTCA1LjcgLyBNYXJpYURCIDEwLjAgb3IgaGlnaGVyIGZvciBzcGF0aWFsIGZlYXR1cmVzIGluIE15U1FMCiAgICAtIFBvc3RncmVTUUwgOS41IG9yIGhpZ2hlciB3aXRoIFBvc3RHSVMgMi4yIG9yIGhpZ2hlciBmb3Igc3BhdGlhbCBmZWF0dXJlcwogICAgLSBTUUwgU2VydmVyIDIwMTcgb3IgaGlnaGVyICgyMDE5IGFsc28gaGFzIExpbnV4IHN1cHBvcnQpCiAgICAtIFNRTGl0ZSAzLjE2IG9yIGhpZ2hlciAoc3BhdGlhbCBmZWF0dXJlcyBOT1Qgc3VwcG9ydGVkKQoKIyMgSW5zdGFsbGF0aW9uCgpEb3dubG9hZCB0aGUgImBhcGkucGhwYCIgZmlsZSBmcm9tIHRoZSBsYXRlc3QgcmVsZWFzZToKCmh0dHBzOi8vZ2l0aHViLmNvbS9tZXZkc2NoZWUvcGhwLWNydWQtYXBpL3JlbGVhc2VzL2xhdGVzdCBvciBkaXJlY3QgZnJvbTogIApodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbWV2ZHNjaGVlL3BocC1jcnVkLWFwaS9tYWluL2FwaS5waHAKClRoaXMgaXMgYSBzaW5nbGUgZmlsZSBhcHBsaWNhdGlvbiEgVXBsb2FkICJgYXBpLnBocGAiIHNvbWV3aGVyZSBhbmQgZW5qb3khCgpGb3IgbG9jYWwgZGV2ZWxvcG1lbnQgeW91IG1heSBydW4gUEhQJ3MgYnVpbHQtaW4gd2ViIHNlcnZlcjoKCiAgICBwaHAgLVMgbG9jYWxob3N0OjgwODAKClRlc3QgdGhlIHNjcmlwdCBieSBvcGVuaW5nIHRoZSBmb2xsb3dpbmcgVVJMOgoKICAgIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkucGhwL3JlY29yZHMvcG9zdHMvMQoKRG9uJ3QgZm9yZ2V0IHRvIG1vZGlmeSB0aGUgY29uZmlndXJhdGlvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLgoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIGludGVncmF0ZSB0aGlzIHByb2plY3QgaW50byB0aGUgd2ViIGZyYW1ld29yayBvZiB5b3VyIGNob2ljZSwgc2VlOgoKLSBbQXV0b21hdGljIFJFU1QgQVBJIGZvciBMYXJhdmVsXShodHRwczovL3RxZGV2LmNvbS8yMDE5LWF1dG9tYXRpYy1yZXN0LWFwaS1sYXJhdmVsKQotIFtBdXRvbWF0aWMgUkVTVCBBUEkgZm9yIFN5bWZvbnkgNF0oaHR0cHM6Ly90cWRldi5jb20vMjAxOS1hdXRvbWF0aWMtcmVzdC1hcGktc3ltZm9ueSkKLSBbQXV0b21hdGljIFJFU1QgQVBJIGZvciBTbGltUEhQIDRdKGh0dHBzOi8vdHFkZXYuY29tLzIwMTktYXV0b21hdGljLWFwaS1zbGltcGhwLTQpCgpJbiB0aGVzZSBpbnRlZ3JhdGlvbnMgW0NvbXBvc2VyXShodHRwczovL2dldGNvbXBvc2VyLm9yZy8pIGlzIHVzZWQgdG8gbG9hZCB0aGlzIHByb2plY3QgYXMgYSBkZXBlbmRlbmN5LgoKRm9yIHBlb3BsZSB0aGF0IGRvbid0IHVzZSBjb21wb3NlciwgdGhlIGZpbGUgImBhcGkuaW5jbHVkZS5waHBgIiBpcyBwcm92aWRlZC4gVGhpcyBmaWxlIGNvbnRhaW5zIGV2ZXJ5dGhpbmcgCmZyb20gImBhcGkucGhwYCIgZXhjZXB0IHRoZSBjb25maWd1cmF0aW9uIGZyb20gImBzcmMvaW5kZXgucGhwYCIgYW5kIGNhbiBiZSB1c2VkIGJ5IFBIUCdzICJpbmNsdWRlIiBmdW5jdGlvbi4KCiMjIENvbmZpZ3VyYXRpb24KCkVkaXQgdGhlIGZvbGxvd2luZyBsaW5lcyBpbiB0aGUgYm90dG9tIG9mIHRoZSBmaWxlICJgYXBpLnBocGAiOgoKICAgICRjb25maWcgPSBuZXcgQ29uZmlnKFsKICAgICAgICAndXNlcm5hbWUnID0+ICd4eHgnLAogICAgICAgICdwYXNzd29yZCcgPT4gJ3h4eCcsCiAgICAgICAgJ2RhdGFiYXNlJyA9PiAneHh4JywKICAgIF0pOwoKVGhlc2UgYXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB0aGVpciBkZWZhdWx0IHZhbHVlIGJldHdlZW4gYnJhY2tldHM6CgotICJkcml2ZXIiOiBgbXlzcWxgLCBgcGdzcWxgLCBgc3Fsc3J2YCBvciBgc3FsaXRlYCAoYG15c3FsYCkKLSAiYWRkcmVzcyI6IEhvc3RuYW1lIChvciBmaWxlbmFtZSkgb2YgdGhlIGRhdGFiYXNlIHNlcnZlciAoYGxvY2FsaG9zdGApCi0gInBvcnQiOiBUQ1AgcG9ydCBvZiB0aGUgZGF0YWJhc2Ugc2VydmVyIChkZWZhdWx0cyB0byBkcml2ZXIgZGVmYXVsdCkKLSAidXNlcm5hbWUiOiBVc2VybmFtZSBvZiB0aGUgdXNlciBjb25uZWN0aW5nIHRvIHRoZSBkYXRhYmFzZSAobm8gZGVmYXVsdCkKLSAicGFzc3dvcmQiOiBQYXNzd29yZCBvZiB0aGUgdXNlciBjb25uZWN0aW5nIHRvIHRoZSBkYXRhYmFzZSAobm8gZGVmYXVsdCkKLSAiZGF0YWJhc2UiOiBEYXRhYmFzZSB0aGUgY29ubmVjdGluZyBpcyBtYWRlIHRvIChubyBkZWZhdWx0KQotICJjb21tYW5kIjogRXh0cmEgU1FMIHRvIGluaXRpYWxpemUgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gKG5vbmUpCi0gInRhYmxlcyI6IENvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHRhYmxlcyB0byBwdWJsaXNoIChkZWZhdWx0cyB0byAnYWxsJykKLSAibWFwcGluZyI6IENvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHRhYmxlL2NvbHVtbiBtYXBwaW5ncyAobm8gbWFwcHBpbmcpCi0gImdlb21ldHJ5U3JpZCI6IFNSSUQgYXNzdW1lZCB3aGVuIGNvbnZlcnRpbmcgZnJvbSBXS1QgdG8gZ2VvbWV0cnkgKGA0MzI2YCkKLSAibWlkZGxld2FyZXMiOiBMaXN0IG9mIG1pZGRsZXdhcmVzIHRvIGxvYWQgKGBjb3JzYCkKLSAiY29udHJvbGxlcnMiOiBMaXN0IG9mIGNvbnRyb2xsZXJzIHRvIGxvYWQgKGByZWNvcmRzLGdlb2pzb24sb3BlbmFwaSxzdGF0dXNgKQotICJjdXN0b21Db250cm9sbGVycyI6IExpc3Qgb2YgdXNlciBjdXN0b20gY29udHJvbGxlcnMgdG8gbG9hZCAobm8gZGVmYXVsdCkKLSAib3BlbkFwaUJhc2UiOiBPcGVuQVBJIGluZm8gKGB7ImluZm8iOnsidGl0bGUiOiJQSFAtQ1JVRC1BUEkiLCJ2ZXJzaW9uIjoiMS4wLjAifX1gKQotICJjYWNoZVR5cGUiOiBgVGVtcEZpbGVgLCBgUmVkaXNgLCBgTWVtY2FjaGVgLCBgTWVtY2FjaGVkYCBvciBgTm9DYWNoZWAgKGBUZW1wRmlsZWApCi0gImNhY2hlUGF0aCI6IFBhdGgvYWRkcmVzcyBvZiB0aGUgY2FjaGUgKGRlZmF1bHRzIHRvIHN5c3RlbSdzIHRlbXAgZGlyZWN0b3J5KQotICJjYWNoZVRpbWUiOiBOdW1iZXIgb2Ygc2Vjb25kcyB0aGUgY2FjaGUgaXMgdmFsaWQgKGAxMGApCi0gImpzb25PcHRpb25zIjogT3B0aW9ucyB1c2VkIGZvciBlbmNvZGluZyBKU09OIChgSlNPTl9VTkVTQ0FQRURfVU5JQ09ERWApCi0gImRlYnVnIjogU2hvdyBlcnJvcnMgaW4gdGhlICJYLUV4Y2VwdGlvbiIgaGVhZGVycyAoYGZhbHNlYCkKLSAiYmFzZVBhdGgiOiBVUkkgYmFzZSBwYXRoIG9mIHRoZSBBUEkgKGRldGVybWluZWQgdXNpbmcgUEFUSF9JTkZPIGJ5IGRlZmF1bHQpCgpBbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBhbHNvIGF2YWlsYWJsZSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFdyaXRlIHRoZSBjb25maWcgb3B0aW9uIHdpdGggY2FwaXRhbHMsIGEgIlBIUF9DUlVEX0FQSV8iIHByZWZpeCBhbmQgdW5kZXJzY29yZXMgZm9yIHdvcmQgYnJlYWtlcywgc28gZm9yIGluc3RhbmNlOgoKLSBQSFBfQ1JVRF9BUElfRFJJVkVSPW15c3FsCi0gUEhQX0NSVURfQVBJX0FERFJFU1M9bG9jYWxob3N0Ci0gUEhQX0NSVURfQVBJX1BPUlQ9MzMwNgotIFBIUF9DUlVEX0FQSV9EQVRBQkFTRT1waHAtY3J1ZC1hcGkKLSBQSFBfQ1JVRF9BUElfVVNFUk5BTUU9cGhwLWNydWQtYXBpCi0gUEhQX0NSVURfQVBJX1BBU1NXT1JEPXBocC1jcnVkLWFwaQotIFBIUF9DUlVEX0FQSV9ERUJVRz0xCgpUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBQSFAgY29uZmlndXJhdGlvbi4KCiMjIExpbWl0YXRpb25zCgpUaGVzZSBsaW1pdGF0aW9uIGFuZCBjb25zdHJhaW5zIGFwcGx5OgoKICAtIFByaW1hcnkga2V5cyBzaG91bGQgZWl0aGVyIGJlIGF1dG8taW5jcmVtZW50IChmcm9tIDEgdG8gMl41Mykgb3IgVVVJRAogIC0gQ29tcG9zaXRlIHByaW1hcnkgYW5kIGNvbXBvc2l0ZSBmb3JlaWduIGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQKICAtIENvbXBsZXggd3JpdGVzICh0cmFuc2FjdGlvbnMpIGFyZSBub3Qgc3VwcG9ydGVkCiAgLSBDb21wbGV4IHF1ZXJpZXMgY2FsbGluZyBmdW5jdGlvbnMgKGxpa2UgImNvbmNhdCIgb3IgInN1bSIpIGFyZSBub3Qgc3VwcG9ydGVkCiAgLSBEYXRhYmFzZSBtdXN0IHN1cHBvcnQgYW5kIGRlZmluZSBmb3JlaWduIGtleSBjb25zdHJhaW50cwogIC0gU1FMaXRlIGNhbm5vdCBoYXZlIGJpZ2ludCB0eXBlZCBhdXRvIGluY3JlbWVudGluZyBwcmltYXJ5IGtleXMKICAtIFNRTGl0ZSBkb2VzIG5vdCBzdXBwb3J0IGFsdGVyaW5nIHRhYmxlIGNvbHVtbnMgKHN0cnVjdHVyZSkKICAgIAojIyBGZWF0dXJlcwoKVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgoKICAtIENvbXBvc2VyIGluc3RhbGwgb3Igc2luZ2xlIFBIUCBmaWxlLCBlYXN5IHRvIGRlcGxveS4KICAtIFZlcnkgbGl0dGxlIGNvZGUsIGVhc3kgdG8gYWRhcHQgYW5kIG1haW50YWluCiAgLSBTdXBwb3J0cyBQT1NUIHZhcmlhYmxlcyBhcyBpbnB1dCAoeC13d3ctZm9ybS11cmxlbmNvZGVkKQogIC0gU3VwcG9ydHMgYSBKU09OIG9iamVjdCBhcyBpbnB1dAogIC0gU3VwcG9ydHMgYSBKU09OIGFycmF5IGFzIGlucHV0IChiYXRjaCBpbnNlcnQpCiAgLSBTYW5pdGl6ZSBhbmQgdmFsaWRhdGUgaW5wdXQgdXNpbmcgdHlwZSBydWxlcyBhbmQgY2FsbGJhY2tzCiAgLSBQZXJtaXNzaW9uIHN5c3RlbSBmb3IgZGF0YWJhc2VzLCB0YWJsZXMsIGNvbHVtbnMgYW5kIHJlY29yZHMKICAtIE11bHRpLXRlbmFudCBzaW5nbGUgYW5kIG11bHRpIGRhdGFiYXNlIGxheW91dHMgYXJlIHN1cHBvcnRlZAogIC0gTXVsdGktZG9tYWluIENPUlMgc3VwcG9ydCBmb3IgY3Jvc3MtZG9tYWluIHJlcXVlc3RzCiAgLSBTdXBwb3J0IGZvciByZWFkaW5nIGpvaW5lZCByZXN1bHRzIGZyb20gbXVsdGlwbGUgdGFibGVzCiAgLSBTZWFyY2ggc3VwcG9ydCBvbiBtdWx0aXBsZSBjcml0ZXJpYQogIC0gUGFnaW5hdGlvbiwgc29ydGluZywgdG9wIE4gbGlzdCBhbmQgY29sdW1uIHNlbGVjdGlvbgogIC0gUmVsYXRpb24gZGV0ZWN0aW9uIHdpdGggbmVzdGVkIHJlc3VsdHMgKGJlbG9uZ3NUbywgaGFzTWFueSBhbmQgSEFCVE0pCiAgLSBBdG9taWMgaW5jcmVtZW50IHN1cHBvcnQgdmlhIFBBVENIIChmb3IgY291bnRlcnMpCiAgLSBCaW5hcnkgZmllbGRzIHN1cHBvcnRlZCB3aXRoIGJhc2U2NCBlbmNvZGluZwogIC0gU3BhdGlhbC9HSVMgZmllbGRzIGFuZCBmaWx0ZXJzIHN1cHBvcnRlZCB3aXRoIFdLVCBhbmQgR2VvSlNPTgogIC0gTWFwcGluZyB0YWJsZSBhbmQgY29sdW1uIG5hbWVzIHRvIHN1cHBvcnQgbGVnYWN5IHN5c3RlbXMKICAtIEdlbmVyYXRlIEFQSSBkb2N1bWVudGF0aW9uIHVzaW5nIE9wZW5BUEkgdG9vbHMKICAtIEF1dGhlbnRpY2F0aW9uIHZpYSBBUEkga2V5LCBKV1QgdG9rZW4gb3IgdXNlcm5hbWUvcGFzc3dvcmQKICAtIERhdGFiYXNlIGNvbm5lY3Rpb24gcGFyYW1ldGVycyBtYXkgZGVwZW5kIG9uIGF1dGhlbnRpY2F0aW9uCiAgLSBTdXBwb3J0IGZvciByZWFkaW5nIGRhdGFiYXNlIHN0cnVjdHVyZSBpbiBKU09OCiAgLSBTdXBwb3J0IGZvciBtb2RpZnlpbmcgZGF0YWJhc2Ugc3RydWN0dXJlIHVzaW5nIFJFU1QgZW5kcG9pbnQKICAtIFNlY3VyaXR5IGVuaGFuY2luZyBtaWRkbGV3YXJlIGlzIGluY2x1ZGVkCiAgLSBTdGFuZGFyZCBjb21wbGlhbnQ6IFBTUi00LCBQU1ItNywgUFNSLTEyLCBQU1ItMTUgYW5kIFBTUi0xNwoKIyMgUmVsYXRlZCBwcm9qZWN0cyBhbmQgcG9ydHMKClJlbGF0ZWQgcHJvamVjdHM6CgogIC0gW1BIUC1DUlVELUFQSSBRdWljayBTdGFydF0oaHR0cHM6Ly9naXRodWIuY29tL25pazIyMDgvcGhwLWNydWQtYXBpLXF1aWNrLXN0YXJ0KTogQSBjdXN0b21pemFibGUsIHJlYWR5IHRvIGdvLCBkb2NrZXIgY29tcG9zZSBmaWxlIGZlYXR1cmluZyBQSFAtQ1JVRC1BUEkuCiAgLSBbUEhQLUNSVUQtQVBJIGZpbHRlciBnZW5lcmF0b3JdKGh0dHBzOi8vdGhpcGFnZXMuZ2l0aHViLmlvL2pjYS1maWx0ZXIvIyk6IEEgSmF2YVNjcmlwdCBsaWJyYXJ5IGNyZWF0aW5nIFBIUC1DUlVELUFQSSBmaWx0ZXJzIGZyb20gZXhwcmVzc2lvbnMuCiAgLSBbSlMtQ1JVRC1BUEldKGh0dHBzOi8vZ2l0aHViLmNvbS90aGlwYWdlcy9qcy1jcnVkLWFwaSk6IEEgSmF2YVNjcmlwdCBjbGllbnQgbGlicmFyeSBmb3IgdGhlIEFQSSBvZiBQSFAtQ1JVRC1BUEkKICAtIFtQSFAtQVBJLUFVVEhdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXZkc2NoZWUvcGhwLWFwaS1hdXRoKTogU2luZ2xlIGZpbGUgUEhQIHNjcmlwdCB0aGF0IGlzIGFuIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVyIGZvciBQSFAtQ1JVRC1BUEkKICAtIFtQSFAtQ1JVRC1VSV0oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9waHAtY3J1ZC11aSk6IFNpbmdsZSBmaWxlIFBIUCBzY3JpcHQgdGhhdCBhZGRzIGEgVUkgdG8gYSBQSFAtQ1JVRC1BUEkgcHJvamVjdC4KICAtIFtQSFAtQ1JVRC1BRE1JTl0oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9waHAtY3J1ZC1hZG1pbik6IFNpbmdsZSBmaWxlIFBIUCBzY3JpcHQgdGhhdCBhZGRzIGEgZGF0YWJhc2UgYWRtaW4gaW50ZXJmYWNlIHRvIGEgUEhQLUNSVUQtQVBJIHByb2plY3QuCiAgLSBbUEhQLVNQLUFQSV0oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9waHAtc3AtYXBpKTogU2luZ2xlIGZpbGUgUEhQIHNjcmlwdCB0aGF0IGFkZHMgYSBSRVNUIEFQSSB0byBhIFNRTCBkYXRhYmFzZS4KICAtIFtkZXhpZS1teXNxbC1zeW5jXShodHRwczovL2dpdGh1Yi5jb20vc2NyaXB0UGlsb3QvZGV4aWUtbXlzcWwtc3luYyk6IFN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIGxvY2FsIEluZGV4ZWREQiBhbmQgTXlTUUwgRGF0YWJhc2UuIAogIC0gW3JhLWRhdGEtdHJlZXFsXShodHRwczovL2dpdGh1Yi5jb20vbmthcHBsZXIvcmEtZGF0YS10cmVlcWwpOiBOUE0gcGFja2FnZSB0aGF0IHByb3ZpZGVzIGEgW0RhdGEgUHJvdmlkZXJdKGh0dHBzOi8vbWFybWVsYWIuY29tL3JlYWN0LWFkbWluL0RhdGFQcm92aWRlckludHJvZHVjdGlvbi5odG1sKSBmb3IgW1JlYWN0IEFkbWluXShodHRwczovL21hcm1lbGFiLmNvbS9yZWFjdC1hZG1pbi8pLgogIC0gW3NjcmlwdFBpbG90L3Z1ZXVzZV0oaHR0cHM6Ly9naXRodWIuY29tL3NjcmlwdFBpbG90L3Z1ZXVzZS8pOiBWdWUgW0NvbXBvc2FibGVzXShodHRwczovL3Z1ZWpzLm9yZy9ndWlkZS9yZXVzYWJpbGl0eS9jb21wb3NhYmxlcy5odG1sKSBpbiBhZGRpdGlvbiB0byBbVnVlVXNlLm9yZ10oaHR0cHM6Ly92dWV1c2Uub3JnLykgKHRoYXQgc3VwcG9ydCBQSFAtQ1JVRC1BUEkpLgogIC0gW3NjcmlwdFBpbG90L2FkZC1waHAtYmFja2VuZF0oaHR0cHM6Ly9naXRodWIuY29tL3NjcmlwdFBpbG90L2FkZC1waHAtYmFja2VuZCk6IEFkZCBNeVNRTCwgcGhwTXlBZG1pbiBhbmQgUEhQLUNSVUQtQVBJIHRvIHlvdXIgZGV2IGVudmlyb25tZW50LiAKICAtIFtWVUUtQ1JVRC1VSV0oaHR0cHM6Ly9naXRodWIuY29tL25sd2FyZS92dWUtY3J1ZC11aSk6IFNpbmdsZSBmaWxlIFZ1ZS5qcyBzY3JpcHQgdGhhdCBhZGRzIGEgVUkgdG8gYSBQSFAtQ1JVRC1BUEkgcHJvamVjdC4KICAKVGhlcmUgYXJlIGFsc28gcG9ydHMgb2YgdGhpcyBzY3JpcHQgaW46CgotIFtHby1DUlVELUFQSV0oaHR0cHM6Ly9naXRodWIuY29tL2RyYW5paC9nby1jcnVkLWFwaSkgKHdvcmsgaW4gcHJvZ3Jlc3MpCi0gW0phdmEgSkRCQyBieSBJdmFuIEtvbGNoYWdvdl0oaHR0cHM6Ly9naXRodWIuY29tL2tvbGNoYWdvdi9qYXZhLWNydWQtYXBpKSAodjEpCi0gW0phdmEgU3ByaW5nIEJvb3QgKyBqT09RXShodHRwczovL2dpdGh1Yi5jb20vbWV2ZHNjaGVlL2phdmEtY3J1ZC1hcGkvdHJlZS9tYXN0ZXIvZnVsbCkgKHYyOiB3b3JrIGluIHByb2dyZXNzKQoKVGhlcmUgYXJlIGFsc28gcHJvb2Ytb2YtY29uY2VwdCBwb3J0cyBvZiB0aGlzIHNjcmlwdCB0aGF0IG9ubHkgc3VwcG9ydCBiYXNpYyBSRVNUIENSVUQgZnVuY3Rpb25hbGl0eSBpbjoKW1BIUF0oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9waHAtY3J1ZC1hcGkvYmxvYi9tYXN0ZXIvZXh0cmFzL2NvcmUucGhwKSwKW0phdmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXZkc2NoZWUvamF2YS1jcnVkLWFwaS9ibG9iL21hc3Rlci9jb3JlL3NyYy9tYWluL2phdmEvY29tL3RxZGV2L0NydWRBcGlIYW5kbGVyLmphdmEpLApbR29dKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXZkc2NoZWUvZ28tY3J1ZC1hcGkvYmxvYi9tYXN0ZXIvYXBpLmdvKSwKW0MjIC5uZXQgY29yZV0oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9jb3JlLWRhdGEtYXBpL2Jsb2IvbWFzdGVyL1Byb2dyYW0uY3MpLApbTm9kZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9qcy1jcnVkLWFwaS9ibG9iL21hc3Rlci9hcHAuanMpIGFuZApbUHl0aG9uXShodHRwczovL2dpdGh1Yi5jb20vbWV2ZHNjaGVlL3B5LWNydWQtYXBpL2Jsb2IvbWFzdGVyL2FwaS5weSkuCgojIyBDb21waWxhdGlvbgoKWW91IGNhbiBpbnN0YWxsIGFsbCBkZXBlbmRlbmNpZXMgb2YgdGhpcyBwcm9qZWN0IHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCiAgICBwaHAgaW5zdGFsbC5waHAKCllvdSBjYW4gY29tcGlsZSBhbGwgZmlsZXMgaW50byBhIHNpbmdsZSAiYGFwaS5waHBgIiBmaWxlIHVzaW5nOgoKICAgIHBocCBidWlsZC5waHAKCk5vdGUgdGhhdCB5b3UgZG9uJ3QgdXNlIGNvbXBpbGF0aW9uIHdoZW4geW91IGludGVncmF0ZSB0aGlzIHByb2plY3QgaW50byBhbm90aGVyIHByb2plY3Qgb3IgZnJhbWV3b3JrICh1c2UgQ29tcG9zZXIgaW5zdGVhZCkuCgojIyMgRGV2ZWxvcG1lbnQKCllvdSBjYW4gYWNjZXNzIHRoZSBub24tY29tcGlsZWQgY29kZSBhdCB0aGUgVVJMOgoKICAgIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zcmMvcmVjb3Jkcy9wb3N0cy8xCgpUaGUgbm9uLWNvbXBpbGVkIGNvZGUgcmVzaWRlcyBpbiB0aGUgImBzcmNgIiBhbmQgImB2ZW5kb3JgIiBkaXJlY3Rvcmllcy4gVGhlICJgdmVuZG9yYCIgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBkZXBlbmRlbmNpZXMuCgojIyMgVXBkYXRpbmcgZGVwZW5kZW5jaWVzCgpZb3UgY2FuIHVwZGF0ZSBhbGwgZGVwZW5kZW5jaWVzIG9mIHRoaXMgcHJvamVjdCB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgogICAgcGhwIHVwZGF0ZS5waHAKClRoaXMgc2NyaXB0IHdpbGwgaW5zdGFsbCBhbmQgcnVuIFtDb21wb3Nlcl0oaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcvKSB0byB1cGRhdGUgdGhlIGRlcGVuZGVuY2llcy4KCk5COiBUaGUgdXBkYXRlIHNjcmlwdCB3aWxsIHBhdGNoIHRoZSBkZXBlbmRlbmNpZXMgaW4gdGhlIHZlbmRvciBkaXJlY3RvcnkgZm9yIFBIUCA3LjAgY29tcGF0aWJpbGl0eS4KCiMjIFRyZWVRTCwgYSBwcmFnbWF0aWMgR3JhcGhRTAoKW1RyZWVRTF0oaHR0cHM6Ly90cmVlcWwub3JnKSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBhICJ0cmVlIiBvZiBKU09OIG9iamVjdHMgYmFzZWQgb24geW91ciBTUUwgZGF0YWJhc2Ugc3RydWN0dXJlIChyZWxhdGlvbnMpIGFuZCB5b3VyIHF1ZXJ5LgoKSXQgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUkVTVCBzdGFuZGFyZCBhbmQgYWxzbyBpbnNwaXJlZCBieSBqc29uOmFwaS4KCiMjIyBDUlVEICsgTGlzdAoKVGhlIGV4YW1wbGUgcG9zdHMgdGFibGUgaGFzIG9ubHkgYSBhIGZldyBmaWVsZHM6CgogICAgcG9zdHMgIAogICAgPT09PT09PQogICAgaWQgICAgIAogICAgdGl0bGUgIAogICAgY29udGVudAogICAgY3JlYXRlZAoKVGhlIENSVUQgKyBMaXN0IG9wZXJhdGlvbnMgYmVsb3cgYWN0IG9uIHRoaXMgdGFibGUuCgojIyMjIENyZWF0ZQoKSWYgeW91IHdhbnQgdG8gY3JlYXRlIGEgcmVjb3JkIHRoZSByZXF1ZXN0IGNhbiBiZSB3cml0dGVuIGluIFVSTCBmb3JtYXQgYXM6IAoKICAgIFBPU1QgL3JlY29yZHMvcG9zdHMKCllvdSBoYXZlIHRvIHNlbmQgYSBib2R5IGNvbnRhaW5pbmc6CgogICAgewogICAgICAgICJ0aXRsZSI6ICJCbGFjayBpcyB0aGUgbmV3IHJlZCIsCiAgICAgICAgImNvbnRlbnQiOiAiVGhpcyBpcyB0aGUgc2Vjb25kIHBvc3QuIiwKICAgICAgICAiY3JlYXRlZCI6ICIyMDE4LTAzLTA2VDIxOjM0OjAxWiIKICAgIH0KCkFuZCBpdCB3aWxsIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHByaW1hcnkga2V5IG9mIHRoZSBuZXdseSBjcmVhdGVkIHJlY29yZDoKCiAgICAyCgojIyMjIFJlYWQKClRvIHJlYWQgYSByZWNvcmQgZnJvbSB0aGlzIHRhYmxlIHRoZSByZXF1ZXN0IGNhbiBiZSB3cml0dGVuIGluIFVSTCBmb3JtYXQgYXM6CgogICAgR0VUIC9yZWNvcmRzL3Bvc3RzLzEKCldoZXJlICIxIiBpcyB0aGUgdmFsdWUgb2YgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByZWNvcmQgdGhhdCB5b3Ugd2FudCB0byByZWFkLiBJdCB3aWxsIHJldHVybjoKCiAgICB7CiAgICAgICAgImlkIjogMQogICAgICAgICJ0aXRsZSI6ICJIZWxsbyB3b3JsZCEiLAogICAgICAgICJjb250ZW50IjogIldlbGNvbWUgdG8gdGhlIGZpcnN0IHBvc3QuIiwKICAgICAgICAiY3JlYXRlZCI6ICIyMDE4LTAzLTA1VDIwOjEyOjU2WiIKICAgIH0KCk9uIHJlYWQgb3BlcmF0aW9ucyB5b3UgbWF5IGFwcGx5IGpvaW5zLgoKIyMjIyBVcGRhdGUKClRvIHVwZGF0ZSBhIHJlY29yZCBpbiB0aGlzIHRhYmxlIHRoZSByZXF1ZXN0IGNhbiBiZSB3cml0dGVuIGluIFVSTCBmb3JtYXQgYXM6CgogICAgUFVUIC9yZWNvcmRzL3Bvc3RzLzEKCldoZXJlICIxIiBpcyB0aGUgdmFsdWUgb2YgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByZWNvcmQgdGhhdCB5b3Ugd2FudCB0byB1cGRhdGUuIFNlbmQgYXMgYSBib2R5OgoKICAgIHsKICAgICAgICAidGl0bGUiOiAiQWRqdXN0ZWQgdGl0bGUhIgogICAgfQoKVGhpcyBhZGp1c3RzIHRoZSB0aXRsZSBvZiB0aGUgcG9zdC4gQW5kIHRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIG51bWJlciBvZiByb3dzIHRoYXQgYXJlIHNldDoKCiAgICAxCgojIyMjIERlbGV0ZQoKSWYgeW91IHdhbnQgdG8gZGVsZXRlIGEgcmVjb3JkIGZyb20gdGhpcyB0YWJsZSB0aGUgcmVxdWVzdCBjYW4gYmUgd3JpdHRlbiBpbiBVUkwgZm9ybWF0IGFzOgoKICAgIERFTEVURSAvcmVjb3Jkcy9wb3N0cy8xCgpBbmQgaXQgd2lsbCByZXR1cm4gdGhlIG51bWJlciBvZiBkZWxldGVkIHJvd3M6CgogICAgMQoKIyMjIyBMaXN0CgpUbyBsaXN0IHJlY29yZHMgZnJvbSB0aGlzIHRhYmxlIHRoZSByZXF1ZXN0IGNhbiBiZSB3cml0dGVuIGluIFVSTCBmb3JtYXQgYXM6CgogICAgR0VUIC9yZWNvcmRzL3Bvc3RzCgpJdCB3aWxsIHJldHVybjoKCiAgICB7CiAgICAgICAgInJlY29yZHMiOlsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogMSwKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJIZWxsbyB3b3JsZCEiLAogICAgICAgICAgICAgICAgImNvbnRlbnQiOiAiV2VsY29tZSB0byB0aGUgZmlyc3QgcG9zdC4iLAogICAgICAgICAgICAgICAgImNyZWF0ZWQiOiAiMjAxOC0wMy0wNVQyMDoxMjo1NloiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9CgpPbiBsaXN0IG9wZXJhdGlvbnMgeW91IG1heSBhcHBseSBmaWx0ZXJzIGFuZCBqb2lucy4KCiMjIyBGaWx0ZXJzCgpGaWx0ZXJzIHByb3ZpZGUgc2VhcmNoIGZ1bmN0aW9uYWxpdHksIG9uIGxpc3QgY2FsbHMsIHVzaW5nIHRoZSAiZmlsdGVyIiBwYXJhbWV0ZXIuIFlvdSBuZWVkIHRvIHNwZWNpZnkgdGhlIGNvbHVtbgpuYW1lLCBhIGNvbW1hLCB0aGUgbWF0Y2ggdHlwZSwgYW5vdGhlciBjb21tYSBhbmQgdGhlIHZhbHVlIHlvdSB3YW50IHRvIGZpbHRlciBvbi4gVGhlc2UgYXJlIHN1cHBvcnRlZCBtYXRjaCB0eXBlczoKCiAgLSAiY3MiOiBjb250YWluIHN0cmluZyAoc3RyaW5nIGNvbnRhaW5zIHZhbHVlKQogIC0gInN3Ijogc3RhcnQgd2l0aCAoc3RyaW5nIHN0YXJ0cyB3aXRoIHZhbHVlKQogIC0gImV3IjogZW5kIHdpdGggKHN0cmluZyBlbmQgd2l0aCB2YWx1ZSkKICAtICJlcSI6IGVxdWFsIChzdHJpbmcgb3IgbnVtYmVyIG1hdGNoZXMgZXhhY3RseSkKICAtICJsdCI6IGxvd2VyIHRoYW4gKG51bWJlciBpcyBsb3dlciB0aGFuIHZhbHVlKQogIC0gImxlIjogbG93ZXIgb3IgZXF1YWwgKG51bWJlciBpcyBsb3dlciB0aGFuIG9yIGVxdWFsIHRvIHZhbHVlKQogIC0gImdlIjogZ3JlYXRlciBvciBlcXVhbCAobnVtYmVyIGlzIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRvIHZhbHVlKQogIC0gImd0IjogZ3JlYXRlciB0aGFuIChudW1iZXIgaXMgaGlnaGVyIHRoYW4gdmFsdWUpCiAgLSAiYnQiOiBiZXR3ZWVuIChudW1iZXIgaXMgYmV0d2VlbiB0d28gY29tbWEgc2VwYXJhdGVkIHZhbHVlcykKICAtICJpbiI6IGluIChudW1iZXIgb3Igc3RyaW5nIGlzIGluIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHZhbHVlcykKICAtICJpcyI6IGlzIG51bGwgKGZpZWxkIGNvbnRhaW5zICJOVUxMIiB2YWx1ZSkKCllvdSBjYW4gbmVnYXRlIGFsbCBmaWx0ZXJzIGJ5IHByZXBlbmRpbmcgYSAibiIgY2hhcmFjdGVyLCBzbyB0aGF0ICJlcSIgYmVjb21lcyAibmVxIi4gCkV4YW1wbGVzIG9mIGZpbHRlciB1c2FnZSBhcmU6CgogICAgR0VUIC9yZWNvcmRzL2NhdGVnb3JpZXM/ZmlsdGVyPW5hbWUsZXEsSW50ZXJuZXQKICAgIEdFVCAvcmVjb3Jkcy9jYXRlZ29yaWVzP2ZpbHRlcj1uYW1lLHN3LEludGVyCiAgICBHRVQgL3JlY29yZHMvY2F0ZWdvcmllcz9maWx0ZXI9aWQsbGUsMQogICAgR0VUIC9yZWNvcmRzL2NhdGVnb3JpZXM/ZmlsdGVyPWlkLG5ndCwxCiAgICBHRVQgL3JlY29yZHMvY2F0ZWdvcmllcz9maWx0ZXI9aWQsYnQsMCwxCiAgICBHRVQgL3JlY29yZHMvY2F0ZWdvcmllcz9maWx0ZXI9aWQsaW4sMCwxCgpPdXRwdXQ6CgogICAgewogICAgICAgICJyZWNvcmRzIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IDEKICAgICAgICAgICAgICAgICJuYW1lIjogIkludGVybmV0IgogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfQoKSW4gdGhlIG5leHQgc2VjdGlvbiB3ZSBkaXZlIGRlZXBlciBpbnRvIGhvdyB5b3UgY2FuIGFwcGx5IG11bHRpcGxlIGZpbHRlcnMgb24gYSBzaW5nbGUgbGlzdCBjYWxsLgoKIyMjIE11bHRpcGxlIGZpbHRlcnMKCkZpbHRlcnMgY2FuIGJlIGEgYnkgYXBwbGllZCBieSByZXBlYXRpbmcgdGhlICJmaWx0ZXIiIHBhcmFtZXRlciBpbiB0aGUgVVJMLiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIFVSTDogCgogICAgR0VUIC9yZWNvcmRzL2NhdGVnb3JpZXM/ZmlsdGVyPWlkLGd0LDEmZmlsdGVyPWlkLGx0LDMKCndpbGwgcmVxdWVzdCBhbGwgY2F0ZWdvcmllcyAid2hlcmUgaWQgPiAxIGFuZCBpZCA8IDMiLiBJZiB5b3Ugd2FudGVkICJ3aGVyZSBpZCA9IDIgb3IgaWQgPSA0IiB5b3Ugc2hvdWxkIHdyaXRlOgoKICAgIEdFVCAvcmVjb3Jkcy9jYXRlZ29yaWVzP2ZpbHRlcjE9aWQsZXEsMiZmaWx0ZXIyPWlkLGVxLDQKICAgIApBcyB5b3Ugc2VlIHdlIGFkZGVkIGEgbnVtYmVyIHRvIHRoZSAiZmlsdGVyIiBwYXJhbWV0ZXIgdG8gaW5kaWNhdGUgdGhhdCAiT1IiIGluc3RlYWQgb2YgIkFORCIgc2hvdWxkIGJlIGFwcGxpZWQuCk5vdGUgdGhhdCB5b3UgY2FuIGFsc28gcmVwZWF0ICJmaWx0ZXIxIiBhbmQgY3JlYXRlIGFuICJBTkQiIHdpdGhpbiBhbiAiT1IiLiBTaW5jZSB5b3UgY2FuIGFsc28gZ28gb25lIGxldmVsIGRlZXBlcgpieSBhZGRpbmcgYSBsZXR0ZXIgKGEtZikgeW91IGNhbiBjcmVhdGUgYWxtb3N0IGFueSByZWFzb25hYmx5IGNvbXBsZXggY29uZGl0aW9uIHRyZWUuCgpOQjogWW91IGNhbiBvbmx5IGZpbHRlciBvbiB0aGUgcmVxdWVzdGVkIHRhYmxlIChub3Qgb24gaXQncyBpbmNsdWRlZCB0YWJsZXMpIGFuZCBmaWx0ZXJzIGFyZSBvbmx5IGFwcGxpZWQgb24gbGlzdCBjYWxscy4KCiMjIyBDb2x1bW4gc2VsZWN0aW9uCgpCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBzZWxlY3RlZC4gV2l0aCB0aGUgImluY2x1ZGUiIHBhcmFtZXRlciB5b3UgY2FuIHNlbGVjdCBzcGVjaWZpYyBjb2x1bW5zLiAKWW91IG1heSB1c2UgYSBkb3QgdG8gc2VwYXJhdGUgdGhlIHRhYmxlIG5hbWUgZnJvbSB0aGUgY29sdW1uIG5hbWUuIE11bHRpcGxlIGNvbHVtbnMgc2hvdWxkIGJlIGNvbW1hIHNlcGFyYXRlZC4gCkFuIGFzdGVyaXNrICgiKiIpIG1heSBiZSB1c2VkIGFzIGEgd2lsZGNhcmQgdG8gaW5kaWNhdGUgImFsbCBjb2x1bW5zIi4gU2ltaWxhciB0byAiaW5jbHVkZSIgeW91IG1heSB1c2UgdGhlICJleGNsdWRlIiBwYXJhbWV0ZXIgdG8gcmVtb3ZlIGNlcnRhaW4gY29sdW1uczoKCmBgYApHRVQgL3JlY29yZHMvY2F0ZWdvcmllcy8xP2luY2x1ZGU9bmFtZQpHRVQgL3JlY29yZHMvY2F0ZWdvcmllcy8xP2luY2x1ZGU9Y2F0ZWdvcmllcy5uYW1lCkdFVCAvcmVjb3Jkcy9jYXRlZ29yaWVzLzE/ZXhjbHVkZT1jYXRlZ29yaWVzLmlkCmBgYAoKT3V0cHV0OgoKYGBgCiAgICB7CiAgICAgICAgIm5hbWUiOiAiSW50ZXJuZXQiCiAgICB9CmBgYAoKTkI6IENvbHVtbnMgdGhhdCBhcmUgdXNlZCB0byBpbmNsdWRlIHJlbGF0ZWQgZW50aXRpZXMgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgYW5kIGNhbm5vdCBiZSBsZWZ0IG91dCBvZiB0aGUgb3V0cHV0LgoKIyMjIE9yZGVyaW5nCgpXaXRoIHRoZSAib3JkZXIiIHBhcmFtZXRlciB5b3UgY2FuIHNvcnQuIEJ5IGRlZmF1bHQgdGhlIHNvcnQgaXMgaW4gYXNjZW5kaW5nIG9yZGVyLCBidXQgYnkgc3BlY2lmeWluZyAiZGVzYyIgdGhpcyBjYW4gYmUgcmV2ZXJzZWQ6CgpgYGAKR0VUIC9yZWNvcmRzL2NhdGVnb3JpZXM/b3JkZXI9bmFtZSxkZXNjCkdFVCAvcmVjb3Jkcy9jYXRlZ29yaWVzP29yZGVyPWlkLGRlc2Mmb3JkZXI9bmFtZQpgYGAKCk91dHB1dDoKCmBgYAogICAgewogICAgICAgICJyZWNvcmRzIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IDMKICAgICAgICAgICAgICAgICJuYW1lIjogIldlYiBkZXZlbG9wbWVudCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogMQogICAgICAgICAgICAgICAgIm5hbWUiOiAiSW50ZXJuZXQiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9CmBgYAoKTkI6IFlvdSBtYXkgc29ydCBvbiBtdWx0aXBsZSBmaWVsZHMgYnkgdXNpbmcgbXVsdGlwbGUgIm9yZGVyIiBwYXJhbWV0ZXJzLiBZb3UgY2FuIG5vdCBvcmRlciBvbiAiam9pbmVkIiBjb2x1bW5zLgoKIyMjIExpbWl0IHNpemUKClRoZSAic2l6ZSIgcGFyYW1ldGVyIGxpbWl0cyB0aGUgbnVtYmVyIG9mIHJldHVybmVkIHJlY29yZHMuIFRoaXMgY2FuIGJlIHVzZWQgZm9yIHRvcCBOIGxpc3RzIHRvZ2V0aGVyIHdpdGggdGhlICJvcmRlciIgcGFyYW1ldGVyICh1c2UgZGVzY2VuZGluZyBvcmRlcikuCgpgYGAKR0VUIC9yZWNvcmRzL2NhdGVnb3JpZXM/b3JkZXI9aWQsZGVzYyZzaXplPTEKYGBgCgpPdXRwdXQ6CgpgYGAKICAgIHsKICAgICAgICAicmVjb3JkcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiAzCiAgICAgICAgICAgICAgICAibmFtZSI6ICJXZWIgZGV2ZWxvcG1lbnQiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9CmBgYAoKTkI6IElmIHlvdSBhbHNvIHdhbnQgdG8ga25vdyB0byB0aGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgeW91IG1heSB3YW50IHRvIHVzZSB0aGUgInBhZ2UiIHBhcmFtZXRlci4KCiMjIyBQYWdpbmF0aW9uCgpUaGUgInBhZ2UiIHBhcmFtZXRlciBob2xkcyB0aGUgcmVxdWVzdGVkIHBhZ2UuIFRoZSBkZWZhdWx0IHBhZ2Ugc2l6ZSBpcyAyMCwgYnV0IGNhbiBiZSBhZGp1c3RlZCAoZS5nLiB0byA1MCkuCgpgYGAKR0VUIC9yZWNvcmRzL2NhdGVnb3JpZXM/b3JkZXI9aWQmcGFnZT0xCkdFVCAvcmVjb3Jkcy9jYXRlZ29yaWVzP29yZGVyPWlkJnBhZ2U9MSw1MApgYGAKCk91dHB1dDoKCmBgYAogICAgewogICAgICAgICJyZWNvcmRzIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IDEKICAgICAgICAgICAgICAgICJuYW1lIjogIkludGVybmV0IgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiAzCiAgICAgICAgICAgICAgICAibmFtZSI6ICJXZWIgZGV2ZWxvcG1lbnQiCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXN1bHRzIjogMgogICAgfQpgYGAKClRoZSBlbGVtZW50ICJyZXN1bHRzIiBob2xkcyB0byB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgdGFibGUsIHdoaWNoIHdvdWxkIGJlIHJldHVybmVkIGlmIG5vIHBhZ2luYXRpb24gd291bGQgYmUgdXNlZC4KCk5COiBTaW5jZSBwYWdlcyB0aGF0IGFyZSBub3Qgb3JkZXJlZCBjYW5ub3QgYmUgcGFnaW5hdGVkLCBwYWdlcyB3aWxsIGJlIG9yZGVyZWQgYnkgcHJpbWFyeSBrZXkuCgojIyMgSm9pbnMKCkxldCdzIHNheSB0aGF0IHlvdSBoYXZlIGEgcG9zdHMgdGFibGUgdGhhdCBoYXMgY29tbWVudHMgKG1hZGUgYnkgdXNlcnMpIGFuZCB0aGUgcG9zdHMgY2FuIGhhdmUgdGFncy4KCiAgICBwb3N0cyAgICBjb21tZW50cyAgdXNlcnMgICAgIHBvc3RfdGFncyAgdGFncwogICAgPT09PT09PSAgPT09PT09PT0gID09PT09PT0gICA9PT09PT09PT0gID09PT09PT0gCiAgICBpZCAgICAgICBpZCAgICAgICAgaWQgICAgICAgIGlkICAgICAgICAgaWQKICAgIHRpdGxlICAgIHBvc3RfaWQgICB1c2VybmFtZSAgcG9zdF9pZCAgICBuYW1lCiAgICBjb250ZW50ICB1c2VyX2lkICAgcGhvbmUgICAgIHRhZ19pZAogICAgY3JlYXRlZCAgbWVzc2FnZQoKV2hlbiB5b3Ugd2FudCB0byBsaXN0IHBvc3RzIHdpdGggdGhlaXIgY29tbWVudHMgdXNlcnMgYW5kIHRhZ3MgeW91IGNhbiBhc2sgZm9yIHR3byAidHJlZSIgcGF0aHM6CgogICAgcG9zdHMgLT4gY29tbWVudHMgIC0+IHVzZXJzCiAgICBwb3N0cyAtPiBwb3N0X3RhZ3MgLT4gdGFncwoKVGhlc2UgcGF0aHMgaGF2ZSB0aGUgc2FtZSByb290IGFuZCB0aGlzIHJlcXVlc3QgY2FuIGJlIHdyaXR0ZW4gaW4gVVJMIGZvcm1hdCBhczoKCiAgICBHRVQgL3JlY29yZHMvcG9zdHM/am9pbj1jb21tZW50cyx1c2VycyZqb2luPXRhZ3MKCkhlcmUgeW91IGFyZSBhbGxvd2VkIHRvIGxlYXZlIG91dCB0aGUgaW50ZXJtZWRpYXRlIHRhYmxlIHRoYXQgYmluZHMgcG9zdHMgdG8gdGFncy4gSW4gdGhpcyBleGFtcGxlCnlvdSBzZWUgYWxsIHRocmVlIHRhYmxlIHJlbGF0aW9uIHR5cGVzIChoYXNNYW55LCBiZWxvbmdzVG8gYW5kIGhhc0FuZEJlbG9uZ3NUb01hbnkpIGluIGVmZmVjdDoKCi0gInBvc3QiIGhhcyBtYW55ICJjb21tZW50cyIKLSAiY29tbWVudCIgYmVsb25ncyB0byAidXNlciIKLSAicG9zdCIgaGFzIGFuZCBiZWxvbmdzIHRvIG1hbnkgInRhZ3MiCgpUaGlzIG1heSBsZWFkIHRvIHRoZSBmb2xsb3dpbmcgSlNPTiBkYXRhOgoKICAgIHsKICAgICAgICAicmVjb3JkcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiAxLAogICAgICAgICAgICAgICAgInRpdGxlIjogIkhlbGxvIHdvcmxkISIsCiAgICAgICAgICAgICAgICAiY29udGVudCI6ICJXZWxjb21lIHRvIHRoZSBmaXJzdCBwb3N0LiIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZCI6ICIyMDE4LTAzLTA1VDIwOjEyOjU2WiIsCiAgICAgICAgICAgICAgICAiY29tbWVudHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZDogMSwKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9pZDogMSwKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogIm1ldmRzY2hlZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZTogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkhpISIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDIsCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfaWQ6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfaWQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6ICJtZXZkc2NoZWUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmU6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICJIaSBhZ2FpbiEiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0YWdzIjogW10KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogMiwKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJCbGFjayBpcyB0aGUgbmV3IHJlZCIsCiAgICAgICAgICAgICAgICAiY29udGVudCI6ICJUaGlzIGlzIHRoZSBzZWNvbmQgcG9zdC4iLAogICAgICAgICAgICAgICAgImNyZWF0ZWQiOiAiMjAxOC0wMy0wNlQyMTozNDowMVoiLAogICAgICAgICAgICAgICAgImNvbW1lbnRzIjogW10sCiAgICAgICAgICAgICAgICAidGFncyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAxLAogICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAiRnVubnkiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAyLAogICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAiSW5mb3JtYXRpb25hbCIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9CgpZb3Ugc2VlIHRoYXQgdGhlICJiZWxvbmdzVG8iIHJlbGF0aW9uc2hpcHMgYXJlIGRldGVjdGVkIGFuZCB0aGUgZm9yZWlnbiBrZXkgdmFsdWUgaXMgcmVwbGFjZWQgYnkgdGhlIHJlZmVyZW5jZWQgb2JqZWN0LgpJbiBjYXNlIG9mICJoYXNNYW55IiBhbmQgImhhc0FuZEJlbG9uZ3NUb01hbnkiIHRoZSB0YWJsZSBuYW1lIGlzIHVzZWQgYSBuZXcgcHJvcGVydHkgb24gdGhlIG9iamVjdC4KCiMjIyBCYXRjaCBvcGVyYXRpb25zCgpXaGVuIHlvdSB3YW50IHRvIGNyZWF0ZSwgcmVhZCwgdXBkYXRlIG9yIGRlbGV0ZSB5b3UgbWF5IHNwZWNpZnkgbXVsdGlwbGUgcHJpbWFyeSBrZXkgdmFsdWVzIGluIHRoZSBVUkwuCllvdSBhbHNvIG5lZWQgdG8gc2VuZCBhbiBhcnJheSBpbnN0ZWFkIG9mIGFuIG9iamVjdCBpbiB0aGUgcmVxdWVzdCBib2R5IGZvciBjcmVhdGUgYW5kIHVwZGF0ZS4gCgpUbyByZWFkIGEgcmVjb3JkIGZyb20gdGhpcyB0YWJsZSB0aGUgcmVxdWVzdCBjYW4gYmUgd3JpdHRlbiBpbiBVUkwgZm9ybWF0IGFzOgoKICAgIEdFVCAvcmVjb3Jkcy9wb3N0cy8xLDIKClRoZSByZXN1bHQgbWF5IGJlOgoKICAgIFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogMSwKICAgICAgICAgICAgICAgICJ0aXRsZSI6ICJIZWxsbyB3b3JsZCEiLAogICAgICAgICAgICAgICAgImNvbnRlbnQiOiAiV2VsY29tZSB0byB0aGUgZmlyc3QgcG9zdC4iLAogICAgICAgICAgICAgICAgImNyZWF0ZWQiOiAiMjAxOC0wMy0wNVQyMDoxMjo1NloiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IDIsCiAgICAgICAgICAgICAgICAidGl0bGUiOiAiQmxhY2sgaXMgdGhlIG5ldyByZWQiLAogICAgICAgICAgICAgICAgImNvbnRlbnQiOiAiVGhpcyBpcyB0aGUgc2Vjb25kIHBvc3QuIiwKICAgICAgICAgICAgICAgICJjcmVhdGVkIjogIjIwMTgtMDMtMDZUMjE6MzQ6MDFaIgogICAgICAgICAgICB9CiAgICBdCgpTaW1pbGFybHkgd2hlbiB5b3Ugd2FudCB0byBkbyBhIGJhdGNoIHVwZGF0ZSB0aGUgcmVxdWVzdCBpbiBVUkwgZm9ybWF0IGlzIHdyaXR0ZW4gYXM6CgogICAgUFVUIC9yZWNvcmRzL3Bvc3RzLzEsMgoKV2hlcmUgIjEiIGFuZCAiMiIgYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIHByaW1hcnkga2V5cyBvZiB0aGUgcmVjb3JkcyB0aGF0IHlvdSB3YW50IHRvIHVwZGF0ZS4gVGhlIGJvZHkgc2hvdWxkIApjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBvYmplY3RzIGFzIHRoZXJlIGFyZSBwcmltYXJ5IGtleXMgaW4gdGhlIFVSTDoKCiAgICBbICAgCiAgICAgICAgewogICAgICAgICAgICAidGl0bGUiOiAiQWRqdXN0ZWQgdGl0bGUgZm9yIElEIDEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJ0aXRsZSI6ICJBZGp1c3RlZCB0aXRsZSBmb3IgSUQgMiIKICAgICAgICB9ICAgICAgICAKICAgIF0KClRoaXMgYWRqdXN0cyB0aGUgdGl0bGVzIG9mIHRoZSBwb3N0cy4gQW5kIHRoZSByZXR1cm4gdmFsdWVzIGFyZSB0aGUgbnVtYmVyIG9mIHJvd3MgdGhhdCBhcmUgc2V0OgoKICAgIFsxLDFdCgpXaGljaCBtZWFucyB0aGF0IHRoZXJlIHdlcmUgdHdvIHVwZGF0ZSBvcGVyYXRpb25zIGFuZCBlYWNoIG9mIHRoZW0gaGFkIHNldCBvbmUgcm93LiBCYXRjaCBvcGVyYXRpb25zIHVzZSBkYXRhYmFzZQp0cmFuc2FjdGlvbnMsIHNvIHRoZXkgZWl0aGVyIGFsbCBzdWNjZWVkIG9yIGFsbCBmYWlsIChzdWNjZXNzZnVsIG9uZXMgZ2V0IHJvbGxlZCBiYWNrKS4gSWYgdGhleSBmYWlsIHRoZSBib2R5IHdpbGwKY29udGFpbiB0aGUgbGlzdCBvZiBlcnJvciBkb2N1bWVudHMuIEluIHRoZSBmb2xsb3dpbmcgcmVzcG9uc2UgdGhlIGZpcnN0IG9wZXJhdGlvbiBzdWNjZWVkZWQgYW5kIHRoZSBzZWNvbmQgb3BlcmF0aW9uCm9mIHRoZSBiYXRjaCBmYWlsZWQgZHVlIHRvIGFuIGludGVncml0eSB2aW9sYXRpb246CgogICAgWyAgIAogICAgICAgIHsKICAgICAgICAgICAgImNvZGUiOiAwLAogICAgICAgICAgICAibWVzc2FnZSI6ICJTdWNjZXNzIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAiY29kZSI6IDEwMTAsCiAgICAgICAgICAgICJtZXNzYWdlIjogIkRhdGEgaW50ZWdyaXR5IHZpb2xhdGlvbiIKICAgICAgICB9CiAgICBdCgpUaGUgcmVzcG9uc2Ugc3RhdHVzIGNvZGUgd2lsbCBhbHdheXMgYmUgNDI0IChmYWlsZWQgZGVwZW5kZW5jeSkgaW4gY2FzZSBvZiBhbnkgZmFpbHVyZSBvZiBvbmUgb2YgdGhlIGJhdGNoIG9wZXJhdGlvbnMuCgpUbyBpbnNlcnQgbXVsdGlwbGUgcmVjb3JkcyBpbnRvIHRoaXMgdGFibGUgdGhlIHJlcXVlc3QgY2FuIGJlIHdyaXR0ZW4gaW4gVVJMIGZvcm1hdCBhczoKCiAgICBQT1NUIC9yZWNvcmRzL3Bvc3RzCgpUaGUgYm9keSBzaG91bGQgY29udGFpbiBhbiBhcnJheSBvZiByZWNvcmRzIHRvIGJlIGluc2VydGVkOgoKICAgIFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRpdGxlIjogIkhlbGxvIHdvcmxkISIsCiAgICAgICAgICAgICAgICAiY29udGVudCI6ICJXZWxjb21lIHRvIHRoZSBmaXJzdCBwb3N0LiIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZCI6ICIyMDE4LTAzLTA1VDIwOjEyOjU2WiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRpdGxlIjogIkJsYWNrIGlzIHRoZSBuZXcgcmVkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IjogIlRoaXMgaXMgdGhlIHNlY29uZCBwb3N0LiIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZCI6ICIyMDE4LTAzLTA2VDIxOjM0OjAxWiIKICAgICAgICAgICAgfQogICAgXQoKVGhlIHJldHVybiB2YWx1ZSBpcyBhbHNvIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHByaW1hcnkga2V5cyBvZiB0aGUgbmV3bHkgaW5zZXJ0ZWQgcmVjb3JkczoKCiAgICBbMSwyXSAKCk5vdGUgdGhhdCBiYXRjaCBvcGVyYXRpb24gZm9yIERFTEVURSBmb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgUFVULCBidXQgd2l0aG91dCBhIGJvZHkuCgojIyMgU3BhdGlhbCBzdXBwb3J0CgpGb3Igc3BhdGlhbCBzdXBwb3J0IHRoZXJlIGlzIGFuIGV4dHJhIHNldCBvZiBmaWx0ZXJzIHRoYXQgY2FuIGJlIGFwcGxpZWQgb24gZ2VvbWV0cnkgY29sdW1ucyBhbmQgdGhhdCBzdGFydGluZyB3aXRoIGFuICJzIjoKCiAgLSAic2NvIjogc3BhdGlhbCBjb250YWlucyAoZ2VvbWV0cnkgY29udGFpbnMgYW5vdGhlcikKICAtICJzY3IiOiBzcGF0aWFsIGNyb3NzZXMgKGdlb21ldHJ5IGNyb3NzZXMgYW5vdGhlcikKICAtICJzZGkiOiBzcGF0aWFsIGRpc2pvaW50IChnZW9tZXRyeSBpcyBkaXNqb2ludCBmcm9tIGFub3RoZXIpCiAgLSAic2VxIjogc3BhdGlhbCBlcXVhbCAoZ2VvbWV0cnkgaXMgZXF1YWwgdG8gYW5vdGhlcikKICAtICJzaW4iOiBzcGF0aWFsIGludGVyc2VjdHMgKGdlb21ldHJ5IGludGVyc2VjdHMgYW5vdGhlcikKICAtICJzb3YiOiBzcGF0aWFsIG92ZXJsYXBzIChnZW9tZXRyeSBvdmVybGFwcyBhbm90aGVyKQogIC0gInN0byI6IHNwYXRpYWwgdG91Y2hlcyAoZ2VvbWV0cnkgdG91Y2hlcyBhbm90aGVyKQogIC0gInN3aSI6IHNwYXRpYWwgd2l0aGluIChnZW9tZXRyeSBpcyB3aXRoaW4gYW5vdGhlcikKICAtICJzaWMiOiBzcGF0aWFsIGlzIGNsb3NlZCAoZ2VvbWV0cnkgaXMgY2xvc2VkIGFuZCBzaW1wbGUpCiAgLSAic2lzIjogc3BhdGlhbCBpcyBzaW1wbGUgKGdlb21ldHJ5IGlzIHNpbXBsZSkKICAtICJzaXYiOiBzcGF0aWFsIGlzIHZhbGlkIChnZW9tZXRyeSBpcyB2YWxpZCkKClRoZXNlIGZpbHRlcnMgYXJlIGJhc2VkIG9uIE9HQyBzdGFuZGFyZHMgYW5kIHNvIGlzIHRoZSBXS1Qgc3BlY2lmaWNhdGlvbiBpbiB3aGljaCB0aGUgZ2VvbWV0cnkgY29sdW1ucyBhcmUgcmVwcmVzZW50ZWQuCk5vdGUgdGhhdCB0aGUgU1JJRCB0aGF0IGlzIGFzc3VtZWQgd2hlbiBjb252ZXJ0aW5nIGZyb20gV0tUIHRvIGdlb21ldHJ5IGlzIHNwZWNpZmllZCBieSB0aGUgY29uZmlnIHZhcmlhYmxlIGBnZW9tZXRyeVNyaWRgIGFuZCBkZWZhdWx0cyB0byA0MzI2IChXR1MgODQpLgoKIyMjIyBHZW9KU09OCgpUaGUgR2VvSlNPTiBzdXBwb3J0IGlzIGEgcmVhZC1vbmx5IHZpZXcgb24gdGhlIHRhYmxlcyBhbmQgcmVjb3JkcyBpbiBHZW9KU09OIGZvcm1hdC4gVGhlc2UgcmVxdWVzdHMgYXJlIHN1cHBvcnRlZDoKCiAgICBtZXRob2QgcGF0aCAgICAgICAgICAgICAgICAgIC0gb3BlcmF0aW9uIC0gZGVzY3JpcHRpb24KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIEdFVCAgICAvZ2VvanNvbi97dGFibGV9ICAgICAgLSBsaXN0ICAgICAgLSBsaXN0cyByZWNvcmRzIGFzIGEgR2VvSlNPTiBGZWF0dXJlQ29sbGVjdGlvbgogICAgR0VUICAgIC9nZW9qc29uL3t0YWJsZX0ve2lkfSAtIHJlYWQgICAgICAtIHJlYWRzIGEgcmVjb3JkIGJ5IHByaW1hcnkga2V5IGFzIGEgR2VvSlNPTiBGZWF0dXJlCgpUaGUgImAvZ2VvanNvbmAiIGVuZHBvaW50IHVzZXMgdGhlICJgL3JlY29yZHNgIiBlbmRwb2ludCBpbnRlcm5hbGx5IGFuZCBpbmhlcml0cyBhbGwgZnVuY3Rpb25hbGl0eSwgc3VjaCBhcyBqb2lucyBhbmQgZmlsdGVycy4KSXQgYWxzbyBzdXBwb3J0cyBhICJnZW9tZXRyeSIgcGFyYW1ldGVyIHRvIGluZGljYXRlIHRoZSBuYW1lIG9mIHRoZSBnZW9tZXRyeSBjb2x1bW4gaW4gY2FzZSB0aGUgdGFibGUgaGFzIG1vcmUgdGhhbiBvbmUuCkZvciBtYXAgdmlld3MgaXQgc3VwcG9ydHMgdGhlICJiYm94IiBwYXJhbWV0ZXIgaW4gd2hpY2ggeW91IGNhbiBzcGVjaWZ5IHVwcGVyLWxlZnQgYW5kIGxvd2VyLXJpZ2h0IGNvb3JkaW5hdGVzIChjb21tYSBzZXBhcmF0ZWQpLgpUaGUgZm9sbG93aW5nIEdlb21ldHJ5IHR5cGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEdlb0pTT04gaW1wbGVtZW50YXRpb246CgogIC0gUG9pbnQKICAtIE11bHRpUG9pbnQKICAtIExpbmVTdHJpbmcKICAtIE11bHRpTGluZVN0cmluZwogIC0gUG9seWdvbgogIC0gTXVsdGlQb2x5Z29uCgpUaGUgR2VvSlNPTiBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBkaXNhYmxlZCB1c2luZyB0aGUgImNvbnRyb2xsZXJzIiBjb25maWd1cmF0aW9uLgoKIyMgTWFwcGluZyBuYW1lcyBmb3IgbGVnYWN5IHN5c3RlbXMKClRvIHN1cHBvcnQgY3JlYXRpbmcgYW4gQVBJIGZvciAoYSBwYXJ0IG9mKSBhIGxlZ2FjeSBzeXN0ZW0gKHN1Y2ggYXMgV29yZHByZXNzKSB5b3UgbWF5IHdhbnQgdG8gbWFwIHRoZSB0YWJsZSBhbmQgY29sdW1uIApuYW1lcyBhcyBjYW4gbm90IGltcHJvdmUgdGhlbSB3aXRob3V0IGNoYW5naW5nIHRoZSBzb2Z0d2FyZSwgd2hpbGUgdGhlIG5hbWVzIG1heSBuZWVkIHNvbWUgaW1wcm92ZW1lbnQgZm9yIGNvbnNpc3RlbmN5LgpUaGUgY29uZmlnIGFsbG93cyB5b3UgdG8gcmVuYW1lIHRhYmxlcyBhbmQgY29sdW1ucyB3aXRoIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgbWFwcGluZ3MgdGhhdCBhcmUgc3BsaXQgd2l0aCBhbiAKZXF1YWwgc2lnbiwgbGlrZSB0aGlzOgoKICAgICdtYXBwaW5nJyA9PiAnd3BfcG9zdHM9cG9zdHMsd3BfcG9zdHMuSUQ9cG9zdHMuaWQnLAoKVGhpcyBzcGVjaWZpYyBleGFtcGxlIHdpbGwgZXhwb3NlIHRoZSAiYHdwX3Bvc3RzYCIgdGFibGUgYXQgYSAiYHBvc3RzYCIgZW5kLXBvaW50IChpbnN0ZWFkIG9mICJgd3BfcG9zdHNgIikgYW5kIHRoZSAKY29sdW1uICJgSURgIiB3aXRoaW4gdGhhdCB0YWJsZSBhcyB0aGUgImBpZGAiIHByb3BlcnR5IChpbiBsb3dlciBjYXNlIGluc3RlYWQgb2YgdXBwZXIgY2FzZSkuCgpOQjogU2luY2UgdGhlc2UgdHdvIG1hcHBpbmdzIG92ZXJsYXAgdGhlIGZpcnN0IChsZXNzIHNwZWNpZmljKSBtYXBwaW5nIG1heSBiZSBvbWl0dGVkLgoKIyMgTWlkZGxld2FyZQoKWW91IGNhbiBlbmFibGUgdGhlIGZvbGxvd2luZyBtaWRkbGV3YXJlIHVzaW5nIHRoZSAibWlkZGxld2FyZXMiIGNvbmZpZyBwYXJhbWV0ZXI6CgotICJmaXJld2FsbCI6IExpbWl0IGFjY2VzcyB0byBzcGVjaWZpYyBJUCBhZGRyZXNzZXMKLSAic3NsUmVkaXJlY3QiOiBGb3JjZSBjb25uZWN0aW9uIG92ZXIgSFRUUFMgaW5zdGVhZCBvZiBIVFRQCi0gImNvcnMiOiBTdXBwb3J0IGZvciBDT1JTIHJlcXVlc3RzIChlbmFibGVkIGJ5IGRlZmF1bHQpCi0gInhzcmYiOiBCbG9jayBYU1JGIGF0dGFja3MgdXNpbmcgdGhlICdEb3VibGUgU3VibWl0IENvb2tpZScgbWV0aG9kCi0gImFqYXhPbmx5IjogUmVzdHJpY3Qgbm9uLUFKQVggcmVxdWVzdHMgdG8gcHJldmVudCBYU1JGIGF0dGFja3MKLSAiYXBpS2V5QXV0aCI6IFN1cHBvcnQgZm9yICJBUEkgS2V5IEF1dGhlbnRpY2F0aW9uIgotICJhcGlLZXlEYkF1dGgiOiBTdXBwb3J0IGZvciAiQVBJIEtleSBEYXRhYmFzZSBBdXRoZW50aWNhdGlvbiIKLSAiZGJBdXRoIjogU3VwcG9ydCBmb3IgIkRhdGFiYXNlIEF1dGhlbnRpY2F0aW9uIgotICJ3cEF1dGgiOiBTdXBwb3J0IGZvciAiV29yZHByZXNzIEF1dGhlbnRpY2F0aW9uIgotICJqd3RBdXRoIjogU3VwcG9ydCBmb3IgIkpXVCBBdXRoZW50aWNhdGlvbiIKLSAiYmFzaWNBdXRoIjogU3VwcG9ydCBmb3IgIkJhc2ljIEF1dGhlbnRpY2F0aW9uIgotICJyZWNvbm5lY3QiOiBSZWNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHdpdGggZGlmZmVyZW50IHBhcmFtZXRlcnMKLSAiYXV0aG9yaXphdGlvbiI6IFJlc3RyaWN0IGFjY2VzcyB0byBjZXJ0YWluIHRhYmxlcyBvciBjb2x1bW5zCi0gInZhbGlkYXRpb24iOiBSZXR1cm4gaW5wdXQgdmFsaWRhdGlvbiBlcnJvcnMgZm9yIGN1c3RvbSBydWxlcyBhbmQgZGVmYXVsdCB0eXBlIHJ1bGVzCi0gImlwQWRkcmVzcyI6IEZpbGwgYSBwcm90ZWN0ZWQgZmllbGQgd2l0aCB0aGUgSVAgYWRkcmVzcyBvbiBjcmVhdGUKLSAic2FuaXRhdGlvbiI6IEFwcGx5IGlucHV0IHNhbml0YXRpb24gb24gY3JlYXRlIGFuZCB1cGRhdGUKLSAibXVsdGlUZW5hbmN5IjogUmVzdHJpY3RzIHRlbmFudHMgYWNjZXNzIGluIGEgbXVsdGktdGVuYW50IHNjZW5hcmlvCi0gInBhZ2VMaW1pdHMiOiBSZXN0cmljdHMgbGlzdCBvcGVyYXRpb25zIHRvIHByZXZlbnQgZGF0YWJhc2Ugc2NyYXBpbmcKLSAiam9pbkxpbWl0cyI6IFJlc3RyaWN0cyBqb2luIHBhcmFtZXRlcnMgdG8gcHJldmVudCBkYXRhYmFzZSBzY3JhcGluZwotICJ0ZXh0U2VhcmNoIjogU2VhcmNoIGluIGFsbCB0ZXh0IGZpZWxkcyB3aXRoIGEgc2ltcGxlIHBhcmFtZXRlcgotICJjdXN0b21pemF0aW9uIjogUHJvdmlkZXMgaGFuZGxlcnMgZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGN1c3RvbWl6YXRpb24KLSAianNvbiI6IFN1cHBvcnQgcmVhZC93cml0ZSBvZiBKU09OIHN0cmluZ3MgYXMgSlNPTiBvYmplY3RzL2FycmF5cwotICJ4bWwiOiBUcmFuc2xhdGVzIGFsbCBpbnB1dCBhbmQgb3V0cHV0IGZyb20gSlNPTiB0byBYTUwKClRoZSAibWlkZGxld2FyZXMiIGNvbmZpZyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBlbmFibGVkIG1pZGRsZXdhcmVzLgpZb3UgY2FuIHR1bmUgdGhlIG1pZGRsZXdhcmUgYmVoYXZpb3IgdXNpbmcgbWlkZGxld2FyZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnM6CgotICJmaXJld2FsbC5yZXZlcnNlUHJveHkiOiBTZXQgdG8gInRydWUiIHdoZW4gYSByZXZlcnNlIHByb3h5IGlzIHVzZWQgKCIiKQotICJmaXJld2FsbC5hbGxvd2VkSXBBZGRyZXNzZXMiOiBMaXN0IG9mIElQIGFkZHJlc3NlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGNvbm5lY3QgKCIiKQotICJjb3JzLmFsbG93ZWRPcmlnaW5zIjogVGhlIG9yaWdpbnMgYWxsb3dlZCBpbiB0aGUgQ09SUyBoZWFkZXJzICgiKiIpCi0gImNvcnMuYWxsb3dIZWFkZXJzIjogVGhlIGhlYWRlcnMgYWxsb3dlZCBpbiB0aGUgQ09SUyByZXF1ZXN0ICgiQ29udGVudC1UeXBlLCBYLVhTUkYtVE9LRU4sIFgtQXV0aG9yaXphdGlvbiIpCi0gImNvcnMuYWxsb3dNZXRob2RzIjogVGhlIG1ldGhvZHMgYWxsb3dlZCBpbiB0aGUgQ09SUyByZXF1ZXN0ICgiT1BUSU9OUywgR0VULCBQVVQsIFBPU1QsIERFTEVURSwgUEFUQ0giKQotICJjb3JzLmFsbG93Q3JlZGVudGlhbHMiOiBUbyBhbGxvdyBjcmVkZW50aWFscyBpbiB0aGUgQ09SUyByZXF1ZXN0ICgidHJ1ZSIpCi0gImNvcnMuZXhwb3NlSGVhZGVycyI6IFdoaXRlbGlzdCBoZWFkZXJzIHRoYXQgYnJvd3NlcnMgYXJlIGFsbG93ZWQgdG8gYWNjZXNzICgiIikKLSAiY29ycy5tYXhBZ2UiOiBUaGUgdGltZSB0aGF0IHRoZSBDT1JTIGdyYW50IGlzIHZhbGlkIGluIHNlY29uZHMgKCIxNzI4MDAwIikKLSAieHNyZi5leGNsdWRlTWV0aG9kcyI6IFRoZSBtZXRob2RzIHRoYXQgZG8gbm90IHJlcXVpcmUgWFNSRiBwcm90ZWN0aW9uICgiT1BUSU9OUyxHRVQiKQotICJ4c3JmLmNvb2tpZU5hbWUiOiBUaGUgbmFtZSBvZiB0aGUgWFNSRiBwcm90ZWN0aW9uIGNvb2tpZSAoIlhTUkYtVE9LRU4iKQotICJ4c3JmLmhlYWRlck5hbWUiOiBUaGUgbmFtZSBvZiB0aGUgWFNSRiBwcm90ZWN0aW9uIGhlYWRlciAoIlgtWFNSRi1UT0tFTiIpCi0gImFqYXhPbmx5LmV4Y2x1ZGVNZXRob2RzIjogVGhlIG1ldGhvZHMgdGhhdCBkbyBub3QgcmVxdWlyZSBBSkFYICgiT1BUSU9OUyxHRVQiKQotICJhamF4T25seS5oZWFkZXJOYW1lIjogVGhlIG5hbWUgb2YgdGhlIHJlcXVpcmVkIGhlYWRlciAoIlgtUmVxdWVzdGVkLVdpdGgiKQotICJhamF4T25seS5oZWFkZXJWYWx1ZSI6IFRoZSB2YWx1ZSBvZiB0aGUgcmVxdWlyZWQgaGVhZGVyICgiWE1MSHR0cFJlcXVlc3QiKQotICJhcGlLZXlBdXRoLm1vZGUiOiBTZXQgdG8gIm9wdGlvbmFsIiBpZiB5b3Ugd2FudCB0byBhbGxvdyBhbm9ueW1vdXMgYWNjZXNzICgicmVxdWlyZWQiKQotICJhcGlLZXlBdXRoLmhlYWRlciI6IFRoZSBuYW1lIG9mIHRoZSBBUEkga2V5IGhlYWRlciAoIlgtQVBJLUtleSIpCi0gImFwaUtleUF1dGgua2V5cyI6IExpc3Qgb2YgQVBJIGtleXMgdGhhdCBhcmUgdmFsaWQgKCIiKQotICJhcGlLZXlEYkF1dGgubW9kZSI6IFNldCB0byAib3B0aW9uYWwiIGlmIHlvdSB3YW50IHRvIGFsbG93IGFub255bW91cyBhY2Nlc3MgKCJyZXF1aXJlZCIpCi0gImFwaUtleURiQXV0aC5oZWFkZXIiOiBUaGUgbmFtZSBvZiB0aGUgQVBJIGtleSBoZWFkZXIgKCJYLUFQSS1LZXkiKQotICJhcGlLZXlEYkF1dGgudXNlcnNUYWJsZSI6IFRoZSB0YWJsZSB0aGF0IGlzIHVzZWQgdG8gc3RvcmUgdGhlIHVzZXJzIGluICgidXNlcnMiKQotICJhcGlLZXlEYkF1dGguYXBpS2V5Q29sdW1uIjogVGhlIHVzZXJzIHRhYmxlIGNvbHVtbiB0aGF0IGhvbGRzIHRoZSBBUEkga2V5ICgiYXBpX2tleSIpCi0gImRiQXV0aC5tb2RlIjogU2V0IHRvICJvcHRpb25hbCIgaWYgeW91IHdhbnQgdG8gYWxsb3cgYW5vbnltb3VzIGFjY2VzcyAoInJlcXVpcmVkIikKLSAiZGJBdXRoLnVzZXJzVGFibGUiOiBUaGUgdGFibGUgdGhhdCBpcyB1c2VkIHRvIHN0b3JlIHRoZSB1c2VycyBpbiAoInVzZXJzIikKLSAiZGJBdXRoLmxvZ2luVGFibGUiOiBUaGUgdGFibGUgb3IgdmlldyB0aGF0IGlzIHVzZWQgdG8gcmV0cmlldmUgdGhlIHVzZXJzIGluZm8gZm9yIGxvZ2luICgidXNlcnMiKQotICJkYkF1dGgudXNlcm5hbWVDb2x1bW4iOiBUaGUgdXNlcnMgdGFibGUgY29sdW1uIHRoYXQgaG9sZHMgdXNlcm5hbWVzICgidXNlcm5hbWUiKQotICJkYkF1dGgucGFzc3dvcmRDb2x1bW4iOiBUaGUgdXNlcnMgdGFibGUgY29sdW1uIHRoYXQgaG9sZHMgcGFzc3dvcmRzICgicGFzc3dvcmQiKQotICJkYkF1dGgucmV0dXJuZWRDb2x1bW5zIjogVGhlIGNvbHVtbnMgcmV0dXJuZWQgb24gc3VjY2Vzc2Z1bCBsb2dpbiwgZW1wdHkgbWVhbnMgJ2FsbCcgKCIiKQotICJkYkF1dGgudXNlcm5hbWVGb3JtRmllbGQiOiBUaGUgbmFtZSBvZiB0aGUgZm9ybSBmaWVsZCB0aGF0IGhvbGRzIHRoZSB1c2VybmFtZSAoInVzZXJuYW1lIikKLSAiZGJBdXRoLnBhc3N3b3JkRm9ybUZpZWxkIjogVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQgdGhhdCBob2xkcyB0aGUgcGFzc3dvcmQgKCJwYXNzd29yZCIpCi0gImRiQXV0aC5uZXdQYXNzd29yZEZvcm1GaWVsZCI6IFRoZSBuYW1lIG9mIHRoZSBmb3JtIGZpZWxkIHRoYXQgaG9sZHMgdGhlIG5ldyBwYXNzd29yZCAoIm5ld1Bhc3N3b3JkIikKLSAiZGJBdXRoLnJlZ2lzdGVyVXNlciI6IEpTT04gdXNlciBkYXRhIChvciAiMSIpIGluIGNhc2UgeW91IHdhbnQgdGhlIC9yZWdpc3RlciBlbmRwb2ludCBlbmFibGVkICgiIikKLSAiZGJBdXRoLmxvZ2luQWZ0ZXJSZWdpc3RyYXRpb24iOiAxIG9yIHplcm8gaWYgcmVnaXN0ZXJlZCB1c2VycyBzaG91bGQgYmUgbG9nZ2VkIGluIGFmdGVyIHJlZ2lzdHJhdGlvbiAoIiIpCi0gImRiQXV0aC5wYXNzd29yZExlbmd0aCI6IE1pbmltdW0gbGVuZ3RoIHRoYXQgdGhlIHBhc3N3b3JkIG11c3QgaGF2ZSAoIjEyIikKLSAiZGJBdXRoLnNlc3Npb25OYW1lIjogVGhlIG5hbWUgb2YgdGhlIFBIUCBzZXNzaW9uIHRoYXQgaXMgc3RhcnRlZCAoIiIpCi0gIndwQXV0aC5tb2RlIjogU2V0IHRvICJvcHRpb25hbCIgaWYgeW91IHdhbnQgdG8gYWxsb3cgYW5vbnltb3VzIGFjY2VzcyAoInJlcXVpcmVkIikKLSAid3BBdXRoLndwRGlyZWN0b3J5IjogVGhlIGZvbGRlci9wYXRoIHdoZXJlIHRoZSBXb3JkcHJlc3MgaW5zdGFsbCBjYW4gYmUgZm91bmQgKCIuIikKLSAid3BBdXRoLnVzZXJuYW1lRm9ybUZpZWxkIjogVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQgdGhhdCBob2xkcyB0aGUgdXNlcm5hbWUgKCJ1c2VybmFtZSIpCi0gIndwQXV0aC5wYXNzd29yZEZvcm1GaWVsZCI6IFRoZSBuYW1lIG9mIHRoZSBmb3JtIGZpZWxkIHRoYXQgaG9sZHMgdGhlIHBhc3N3b3JkICgicGFzc3dvcmQiKQotICJqd3RBdXRoLm1vZGUiOiBTZXQgdG8gIm9wdGlvbmFsIiBpZiB5b3Ugd2FudCB0byBhbGxvdyBhbm9ueW1vdXMgYWNjZXNzICgicmVxdWlyZWQiKQotICJqd3RBdXRoLmhlYWRlciI6IE5hbWUgb2YgdGhlIGhlYWRlciBjb250YWluaW5nIHRoZSBKV1QgdG9rZW4gKCJYLUF1dGhvcml6YXRpb24iKQotICJqd3RBdXRoLmxlZXdheSI6IFRoZSBhY2NlcHRhYmxlIG51bWJlciBvZiBzZWNvbmRzIG9mIGNsb2NrIHNrZXcgKCI1IikKLSAiand0QXV0aC50dGwiOiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdGhlIHRva2VuIGlzIHZhbGlkICgiMzAiKQotICJqd3RBdXRoLnNlY3JldHMiOiBUaGUgc2hhcmVkIHNlY3JldChzKSB1c2VkIHRvIHNpZ24gdGhlIEpXVCB0b2tlbiB3aXRoICgiIikKLSAiand0QXV0aC5hbGdvcml0aG1zIjogVGhlIGFsZ29yaXRobXMgdGhhdCBhcmUgYWxsb3dlZCwgZW1wdHkgbWVhbnMgJ2FsbCcgKCIiKQotICJqd3RBdXRoLmF1ZGllbmNlcyI6IFRoZSBhdWRpZW5jZXMgdGhhdCBhcmUgYWxsb3dlZCwgZW1wdHkgbWVhbnMgJ2FsbCcgKCIiKQotICJqd3RBdXRoLmlzc3VlcnMiOiBUaGUgaXNzdWVycyB0aGF0IGFyZSBhbGxvd2VkLCBlbXB0eSBtZWFucyAnYWxsJyAoIiIpCi0gImp3dEF1dGguc2Vzc2lvbk5hbWUiOiBUaGUgbmFtZSBvZiB0aGUgUEhQIHNlc3Npb24gdGhhdCBpcyBzdGFydGVkICgiIikKLSAiYmFzaWNBdXRoLm1vZGUiOiBTZXQgdG8gIm9wdGlvbmFsIiBpZiB5b3Ugd2FudCB0byBhbGxvdyBhbm9ueW1vdXMgYWNjZXNzICgicmVxdWlyZWQiKQotICJiYXNpY0F1dGgucmVhbG0iOiBUZXh0IHRvIHByb21wdCB3aGVuIHNob3dpbmcgbG9naW4gKCJVc2VybmFtZSBhbmQgcGFzc3dvcmQgcmVxdWlyZWQiKQotICJiYXNpY0F1dGgucGFzc3dvcmRGaWxlIjogVGhlIGZpbGUgdG8gcmVhZCBmb3IgdXNlcm5hbWUvcGFzc3dvcmQgY29tYmluYXRpb25zICgiLmh0cGFzc3dkIikKLSAiYmFzaWNBdXRoLnNlc3Npb25OYW1lIjogVGhlIG5hbWUgb2YgdGhlIFBIUCBzZXNzaW9uIHRoYXQgaXMgc3RhcnRlZCAoIiIpCi0gInJlY29ubmVjdC5kcml2ZXJIYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgcmV0cmlldmFsIG9mIHRoZSBkYXRhYmFzZSBkcml2ZXIgKCIiKQotICJyZWNvbm5lY3QuYWRkcmVzc0hhbmRsZXIiOiBIYW5kbGVyIHRvIGltcGxlbWVudCByZXRyaWV2YWwgb2YgdGhlIGRhdGFiYXNlIGFkZHJlc3MgKCIiKQotICJyZWNvbm5lY3QucG9ydEhhbmRsZXIiOiBIYW5kbGVyIHRvIGltcGxlbWVudCByZXRyaWV2YWwgb2YgdGhlIGRhdGFiYXNlIHBvcnQgKCIiKQotICJyZWNvbm5lY3QuZGF0YWJhc2VIYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgcmV0cmlldmFsIG9mIHRoZSBkYXRhYmFzZSBuYW1lICgiIikKLSAicmVjb25uZWN0LnRhYmxlc0hhbmRsZXIiOiBIYW5kbGVyIHRvIGltcGxlbWVudCByZXRyaWV2YWwgb2YgdGhlIHRhYmxlIG5hbWVzICgiIikKLSAicmVjb25uZWN0Lm1hcHBpbmdIYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgcmV0cmlldmFsIG9mIHRoZSBuYW1lIG1hcHBpbmcgKCIiKQotICJyZWNvbm5lY3QudXNlcm5hbWVIYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgcmV0cmlldmFsIG9mIHRoZSBkYXRhYmFzZSB1c2VybmFtZSAoIiIpCi0gInJlY29ubmVjdC5wYXNzd29yZEhhbmRsZXIiOiBIYW5kbGVyIHRvIGltcGxlbWVudCByZXRyaWV2YWwgb2YgdGhlIGRhdGFiYXNlIHBhc3N3b3JkICgiIikKLSAiYXV0aG9yaXphdGlvbi50YWJsZUhhbmRsZXIiOiBIYW5kbGVyIHRvIGltcGxlbWVudCB0YWJsZSBhdXRob3JpemF0aW9uIHJ1bGVzICgiIikKLSAiYXV0aG9yaXphdGlvbi5jb2x1bW5IYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgY29sdW1uIGF1dGhvcml6YXRpb24gcnVsZXMgKCIiKQotICJhdXRob3JpemF0aW9uLnBhdGhIYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgcGF0aCBhdXRob3JpemF0aW9uIHJ1bGVzICgiIikKLSAiYXV0aG9yaXphdGlvbi5yZWNvcmRIYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgcmVjb3JkIGF1dGhvcml6YXRpb24gZmlsdGVyIHJ1bGVzICgiIikKLSAidmFsaWRhdGlvbi5oYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgdmFsaWRhdGlvbiBydWxlcyBmb3IgaW5wdXQgdmFsdWVzICgiIikKLSAidmFsaWRhdGlvbi50eXBlcyI6IFR5cGVzIHRvIGVuYWJsZSB0eXBlIHZhbGlkYXRpb24gZm9yLCBlbXB0eSBtZWFucyAnbm9uZScgKCJhbGwiKQotICJ2YWxpZGF0aW9uLnRhYmxlcyI6IFRhYmxlcyB0byBlbmFibGUgdHlwZSB2YWxpZGF0aW9uIGZvciwgZW1wdHkgbWVhbnMgJ25vbmUnICgiYWxsIikKLSAiaXBBZGRyZXNzLnRhYmxlcyI6IFRhYmxlcyB0byBzZWFyY2ggZm9yIGNvbHVtbnMgdG8gb3ZlcnJpZGUgd2l0aCBJUCBhZGRyZXNzICgiIikKLSAiaXBBZGRyZXNzLmNvbHVtbnMiOiBDb2x1bW5zIHRvIHByb3RlY3QgYW5kIG92ZXJyaWRlIHdpdGggdGhlIElQIGFkZHJlc3Mgb24gY3JlYXRlICgiIikKLSAic2FuaXRhdGlvbi5oYW5kbGVyIjogSGFuZGxlciB0byBpbXBsZW1lbnQgc2FuaXRhdGlvbiBydWxlcyBmb3IgaW5wdXQgdmFsdWVzICgiIikKLSAic2FuaXRhdGlvbi50eXBlcyI6IFR5cGVzIHRvIGVuYWJsZSB0eXBlIHNhbml0YXRpb24gZm9yLCBlbXB0eSBtZWFucyAnbm9uZScgKCJhbGwiKQotICJzYW5pdGF0aW9uLnRhYmxlcyI6IFRhYmxlcyB0byBlbmFibGUgdHlwZSBzYW5pdGF0aW9uIGZvciwgZW1wdHkgbWVhbnMgJ25vbmUnICgiYWxsIikKLSAibXVsdGlUZW5hbmN5LmhhbmRsZXIiOiBIYW5kbGVyIHRvIGltcGxlbWVudCBzaW1wbGUgbXVsdGktdGVuYW5jeSBydWxlcyAoIiIpCi0gInBhZ2VMaW1pdHMucGFnZXMiOiBUaGUgbWF4aW11bSBwYWdlIG51bWJlciB0aGF0IGEgbGlzdCBvcGVyYXRpb24gYWxsb3dzICgiMTAwIikKLSAicGFnZUxpbWl0cy5yZWNvcmRzIjogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlY29yZHMgcmV0dXJuZWQgYnkgYSBsaXN0IG9wZXJhdGlvbiAoIjEwMDAiKQotICJqb2luTGltaXRzLmRlcHRoIjogVGhlIG1heGltdW0gZGVwdGggKGxlbmd0aCkgdGhhdCBpcyBhbGxvd2VkIGluIGEgam9pbiBwYXRoICgiMyIpCi0gImpvaW5MaW1pdHMudGFibGVzIjogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRhYmxlcyB0aGF0IHlvdSBhcmUgYWxsb3dlZCB0byBqb2luICgiMTAiKQotICJqb2luTGltaXRzLnJlY29yZHMiOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyByZXR1cm5lZCBmb3IgYSBqb2luZWQgZW50aXR5ICgiMTAwMCIpCi0gInRleHRTZWFyY2gucGFyYW1ldGVyIjogVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB1c2VkIGZvciB0aGUgc2VhcmNoIHRlcm0gKCJzZWFyY2giKQotICJjdXN0b21pemF0aW9uLmJlZm9yZUhhbmRsZXIiOiBIYW5kbGVyIHRvIGltcGxlbWVudCByZXF1ZXN0IGN1c3RvbWl6YXRpb24gKCIiKQotICJjdXN0b21pemF0aW9uLmFmdGVySGFuZGxlciI6IEhhbmRsZXIgdG8gaW1wbGVtZW50IHJlc3BvbnNlIGN1c3RvbWl6YXRpb24gKCIiKQotICJqc29uLmNvbnRyb2xsZXJzIjogQ29udHJvbGxlcnMgdG8gcHJvY2VzcyBKU09OIHN0cmluZ3MgZm9yICgicmVjb3JkcyxnZW9qc29uIikKLSAianNvbi50YWJsZXMiOiBUYWJsZXMgdG8gcHJvY2VzcyBKU09OIHN0cmluZ3MgZm9yICgiYWxsIikKLSAianNvbi5jb2x1bW5zIjogQ29sdW1ucyB0byBwcm9jZXNzIEpTT04gc3RyaW5ncyBmb3IgKCJhbGwiKQotICJ4bWwudHlwZXMiOiBKU09OIHR5cGVzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBYTUwgdHlwZSBhdHRyaWJ1dGUgKCJudWxsLGFycmF5IikKCklmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZXNlIHBhcmFtZXRlcnMgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIHRoZW4gdGhlIGRlZmF1bHQgdmFsdWVzIChiZXR3ZWVuIGJyYWNrZXRzKSBhcmUgdXNlZC4KCkluIHRoZSBzZWN0aW9ucyBiZWxvdyB5b3UgZmluZCBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBidWlsdC1pbiBtaWRkbGV3YXJlLgoKIyMjIEF1dGhlbnRpY2F0aW9uCgpDdXJyZW50bHkgdGhlcmUgYXJlIGZpdmUgdHlwZXMgb2YgYXV0aGVudGljYXRpb24gc3VwcG9ydGVkLiBUaGV5IGFsbCBzdG9yZSB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGluIHRoZSBgJF9TRVNTSU9OYCBzdXBlciBnbG9iYWwuClRoaXMgdmFyaWFibGUgY2FuIGJlIHVzZWQgaW4gdGhlIGF1dGhvcml6YXRpb24gaGFuZGxlcnMgdG8gZGVjaWRlIHdldGhlciBvciBub3Qgc29tZWJvZHkgc2hvdWxkIGhhdmUgcmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gY2VydGFpbiB0YWJsZXMsIGNvbHVtbnMgb3IgcmVjb3Jkcy4KVGhlIGZvbGxvd2luZyBvdmVydmlldyBzaG93cyB0aGUga2luZHMgb2YgYXV0aGVudGljYXRpb24gbWlkZGxld2FyZSB0aGF0IHlvdSBjYW4gZW5hYmxlLgoKfCBOYW1lICAgICAgIHwgTWlkZGxld2FyZSAgIHwgQXV0aGVudGljYXRlZCB2aWEgICAgICB8IFVzZXJzIGFyZSBzdG9yZWQgaW4gfCBTZXNzaW9uIHZhcmlhYmxlICAgICAgICB8CnwgLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IEFQSSBrZXkgICAgfCBhcGlLZXlBdXRoICAgfCAnWC1BUEktS2V5JyBoZWFkZXIgICAgIHwgY29uZmlndXJhdGlvbiAgICAgICB8IGAkX1NFU1NJT05bJ2FwaUtleSddYCAgIHwKfCBBUEkga2V5IERCIHwgYXBpS2V5RGJBdXRoIHwgJ1gtQVBJLUtleScgaGVhZGVyICAgICB8IGRhdGFiYXNlIHRhYmxlICAgICAgfCBgJF9TRVNTSU9OWydhcGlVc2VyJ11gICB8CnwgRGF0YWJhc2UgICB8IGRiQXV0aCAgICAgICB8ICcvbG9naW4nIGVuZHBvaW50ICAgICAgfCBkYXRhYmFzZSB0YWJsZSAgICAgIHwgYCRfU0VTU0lPTlsndXNlciddYCAgICAgfAp8IEJhc2ljICAgICAgfCBiYXNpY0F1dGggICAgfCAnQXV0aG9yaXphdGlvbicgaGVhZGVyIHwgJy5odHBhc3N3ZCcgZmlsZSAgICB8IGAkX1NFU1NJT05bJ3VzZXJuYW1lJ11gIHwKfCBKV1QgICAgICAgIHwgand0QXV0aCAgICAgIHwgJ0F1dGhvcml6YXRpb24nIGhlYWRlciB8IGlkZW50aXR5IHByb3ZpZGVyICAgfCBgJF9TRVNTSU9OWydjbGFpbXMnXWAgICB8CgpCZWxvdyB5b3UgZmluZCBtb3JlIGluZm9ybWF0aW9uIG9uIGVhY2ggb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGVzLgoKIyMjIyBBUEkga2V5IGF1dGhlbnRpY2F0aW9uCgpBUEkga2V5IGF1dGhlbnRpY2F0aW9uIHdvcmtzIGJ5IHNlbmRpbmcgYW4gQVBJIGtleSBpbiBhIHJlcXVlc3QgaGVhZGVyLgpUaGUgaGVhZGVyIG5hbWUgZGVmYXVsdHMgdG8gIlgtQVBJLUtleSIgYW5kIGNhbiBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSAnYXBpS2V5QXV0aC5oZWFkZXInIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLgpWYWxpZCBBUEkga2V5cyBtdXN0IGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlICdhcGlLZXlBdXRoLmtleXMnIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIChjb21tYSBzZXBhcmF0ZWQgbGlzdCkuCgogICAgWC1BUEktS2V5OiAwMmMwNDJhYS1jM2MyLTRkMTEtOWRhZS0xYTZlMjMwZWE5NWUKClRoZSBhdXRoZW50aWNhdGVkIEFQSSBrZXkgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIGAkX1NFU1NJT05bJ2FwaUtleSddYCB2YXJpYWJsZS4KCk5vdGUgdGhhdCB0aGUgQVBJIGtleSBhdXRoZW50aWNhdGlvbiBkb2VzIG5vdCByZXF1aXJlIG9yIHVzZSBzZXNzaW9uIGNvb2tpZXMuCgojIyMjIEFQSSBrZXkgZGF0YWJhc2UgYXV0aGVudGljYXRpb24KCkFQSSBrZXkgZGF0YWJhc2UgYXV0aGVudGljYXRpb24gd29ya3MgYnkgc2VuZGluZyBhbiBBUEkga2V5IGluIGEgcmVxdWVzdCBoZWFkZXIgIlgtQVBJLUtleSIgKHRoZSBuYW1lIGlzIGNvbmZpZ3VyYWJsZSkuClZhbGlkIEFQSSBrZXlzIGFyZSByZWFkIGZyb20gdGhlIGRhdGFiYXNlIGZyb20gdGhlIGNvbHVtbiAiYXBpX2tleSIgb2YgdGhlICJ1c2VycyIgdGFibGUgKGJvdGggbmFtZXMgYXJlIGNvbmZpZ3VyYWJsZSkuCgogICAgWC1BUEktS2V5OiAwMmMwNDJhYS1jM2MyLTRkMTEtOWRhZS0xYTZlMjMwZWE5NWUKClRoZSBhdXRoZW50aWNhdGVkIHVzZXIgKHdpdGggYWxsIGl0J3MgcHJvcGVydGllcykgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIGAkX1NFU1NJT05bJ2FwaVVzZXInXWAgdmFyaWFibGUuCgpOb3RlIHRoYXQgdGhlIEFQSSBrZXkgZGF0YWJhc2UgYXV0aGVudGljYXRpb24gZG9lcyBub3QgcmVxdWlyZSBvciB1c2Ugc2Vzc2lvbiBjb29raWVzLgoKIyMjIyBEYXRhYmFzZSBhdXRoZW50aWNhdGlvbgoKVGhlIGRhdGFiYXNlIGF1dGhlbnRpY2F0aW9uIG1pZGRsZXdhcmUgZGVmaW5lcyBmaXZlIG5ldyByb3V0ZXM6CgogICAgbWV0aG9kIHBhdGggICAgICAgLSBwYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgIC0gZGVzY3JpcHRpb24KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgR0VUICAgIC9tZSAgICAgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcmV0dXJucyB0aGUgdXNlciB0aGF0IGlzIGN1cnJlbnRseSBsb2dnZWQgaW4KICAgIFBPU1QgICAvcmVnaXN0ZXIgIC0gdXNlcm5hbWUsIHBhc3N3b3JkICAgICAgICAgICAgICAtIGFkZHMgYSB1c2VyIHdpdGggZ2l2ZW4gdXNlcm5hbWUgYW5kIHBhc3N3b3JkCiAgICBQT1NUICAgL2xvZ2luICAgICAtIHVzZXJuYW1lLCBwYXNzd29yZCAgICAgICAgICAgICAgLSBsb2dzIGEgdXNlciBpbiBieSB1c2VybmFtZSBhbmQgcGFzc3dvcmQKICAgIFBPU1QgICAvcGFzc3dvcmQgIC0gdXNlcm5hbWUsIHBhc3N3b3JkLCBuZXdQYXNzd29yZCAtIHVwZGF0ZXMgdGhlIHBhc3N3b3JkIG9mIHRoZSBsb2dnZWQgaW4gdXNlcgogICAgUE9TVCAgIC9sb2dvdXQgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gbG9ncyBvdXQgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlcgoKQSB1c2VyIGNhbiBiZSBsb2dnZWQgaW4gYnkgc2VuZGluZyBpdCdzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byB0aGUgbG9naW4gZW5kcG9pbnQgKGluIEpTT04gZm9ybWF0KS4KVGhlIGF1dGhlbnRpY2F0ZWQgdXNlciAod2l0aCBhbGwgaXQncyBwcm9wZXJ0aWVzKSB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgYCRfU0VTU0lPTlsndXNlciddYCB2YXJpYWJsZS4KVGhlIHVzZXIgY2FuIGJlIGxvZ2dlZCBvdXQgYnkgc2VuZGluZyBhIFBPU1QgcmVxdWVzdCB3aXRoIGFuIGVtcHR5IGJvZHkgdG8gdGhlIGxvZ291dCBlbmRwb2ludC4KVGhlIHBhc3N3b3JkcyBhcmUgc3RvcmVkIGFzIGhhc2hlcyBpbiB0aGUgcGFzc3dvcmQgY29sdW1uIGluIHRoZSB1c2VycyB0YWJsZS4gWW91IGNhbiByZWdpc3RlciBhIG5ldyB1c2VyCnVzaW5nIHRoZSByZWdpc3RlciBlbmRwb2ludCwgYnV0IHRoaXMgZnVuY3Rpb25hbGl0eSBtdXN0IGJlIHR1cm5lZCBvbiB1c2luZyB0aGUgImRiQXV0aC5yZWdpc3RlclVzZXIiCmNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLgoKSXQgaXMgSU1QT1JUQU5UIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgdXNlcnMgdGFibGUgdXNpbmcgdGhlICdhdXRob3JpemF0aW9uJyBtaWRkbGV3YXJlLCBvdGhlcndpc2UgYWxsIAp1c2VycyBjYW4gZnJlZWx5IGFkZCwgbW9kaWZ5IG9yIGRlbGV0ZSBhbnkgYWNjb3VudCEgVGhlIG1pbmltYWwgY29uZmlndXJhdGlvbiBpcyBzaG93biBiZWxvdzoKCiAgICAnbWlkZGxld2FyZXMnID0+ICdkYkF1dGgsYXV0aG9yaXphdGlvbicsCiAgICAnYXV0aG9yaXphdGlvbi50YWJsZUhhbmRsZXInID0+IGZ1bmN0aW9uICgkb3BlcmF0aW9uLCAkdGFibGVOYW1lKSB7CiAgICAgICAgcmV0dXJuICR0YWJsZU5hbWUgIT0gJ3VzZXJzJzsKICAgIH0sCgpOb3RlIHRoYXQgdGhpcyBtaWRkbGV3YXJlIHVzZXMgc2Vzc2lvbiBjb29raWVzIGFuZCBzdG9yZXMgdGhlIGxvZ2dlZCBpbiBzdGF0ZSBvbiB0aGUgc2VydmVyLgoKKipMb2dpbiB1c2luZyB2aWV3cyB3aXRoIGpvaW5lZCB0YWJsZSoqCgpGb3IgbG9naW4gb3BlcmF0aW9ucywgaXQgaXMgcG9zc2libGUgdG8gdXNlIGEgdmlldyBhcyB0aGUgdXNlcnNUYWJsZS4gU3VjaCB2aWV3IGNhbiByZXR1cm4gYSBmaWx0ZXJlZCByZXN1bHQgZnJvbSB0aGUgdXNlcnMgdGFibGUsIGUuZy4sICp3aGVyZSBhY3RpdmUgPSB0cnVlKiBvciBpdCBtYXkgYWxzbyByZXR1cm4gYSByZXN1bHQgbXVsdGlwbGUgdGFibGVzIHRocnUgYSB0YWJsZSBqb2luLiBBdCBhIG1pbmltdW0sIHRoZSB2aWV3IHNob3VsZCBpbmNsdWRlIHRoZSAqKip1c2VybmFtZSoqKiBhbmQgKioqcGFzc3dvcmQqKiogYW5kIGEgZmllbGQgbmFtZWQgKioqaWQqKiouCgpIb3dldmVyLCB2aWV3cyB3aXRoIGpvaW5lZCB0YWJsZXMgYXJlIG5vdCBpbnNlcnRhYmxlIChbc2VlIGlzc3VlIDkwN10oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9waHAtY3J1ZC1hcGkvaXNzdWVzLzkwNykgKS4gQXMgYSB3b3JrYXJvdW5kLCB1c2UgdGhlIHByb3BlcnR5ICoqKmxvZ2luVGFibGUqKiogdG8gc2V0IGEgZGlmZmVyZW50IHJlZmVyZW5jZSB0YWJsZSBmb3IgbG9naW4uIFRoZSAqKnVzZXJzVGFibGUqKiB3aWxsIHN0aWxsIGJlIHNldCB0byB0aGUgbm9ybWFsLCBpbnNlcnRhYmxlIHVzZXJzIHRhYmxlLiAKCiMjIyMgV29yZHByZXNzIGF1dGhlbnRpY2F0aW9uCgpUaGUgV29yZHByZXNzIGF1dGhlbnRpY2F0aW9uIG1pZGRsZXdhcmUgZGVmaW5lcyB0aHJlZSByb3V0ZXM6CgogICAgbWV0aG9kIHBhdGggICAgICAgLSBwYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgIC0gZGVzY3JpcHRpb24KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgR0VUICAgIC9tZSAgICAgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcmV0dXJucyB0aGUgdXNlciB0aGF0IGlzIGN1cnJlbnRseSBsb2dnZWQgaW4KICAgIFBPU1QgICAvbG9naW4gICAgIC0gdXNlcm5hbWUsIHBhc3N3b3JkICAgICAgICAgICAgICAtIGxvZ3MgYSB1c2VyIGluIGJ5IHVzZXJuYW1lIGFuZCBwYXNzd29yZAogICAgUE9TVCAgIC9sb2dvdXQgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gbG9ncyBvdXQgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlcgoKQSB1c2VyIGNhbiBiZSBsb2dnZWQgaW4gYnkgc2VuZGluZyBpdCdzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byB0aGUgbG9naW4gZW5kcG9pbnQgKGluIEpTT04gZm9ybWF0KS4KVGhlIHVzZXIgY2FuIGJlIGxvZ2dlZCBvdXQgYnkgc2VuZGluZyBhIFBPU1QgcmVxdWVzdCB3aXRoIGFuIGVtcHR5IGJvZHkgdG8gdGhlIGxvZ291dCBlbmRwb2ludC4KWW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgV29yZHByZXNzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgdXNpbmcgdGhlICJ3cEF1dGgud3BEaXJlY3RvcnkiIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLgpUaGUgbWlkZGxld2FyZSBjYWxscyAid3AtbG9hZC5waHAiIHRoaXMgYWxsb3dzIHlvdSB0byB1c2UgV29yZHByZXNzIGZ1bmN0aW9ucyBpbiB0aGUgYXV0aG9yaXphdGlvbiBtaWRkbGV3YXJlLCBsaWtlOgoKLSB3cF9nZXRfY3VycmVudF91c2VyKCkKLSBpc191c2VyX2xvZ2dlZF9pbigpCi0gaXNfc3VwZXJfYWRtaW4oKQotIHVzZXJfY2FuKHdwX2dldF9jdXJyZW50X3VzZXIoKSwnZWRpdF9wb3N0cycpOwoKTm90ZSB0aGF0IHRoZSBgJF9TRVNTSU9OYCB2YXJpYWJsZSBpcyBub3QgdXNlZCBieSB0aGlzIG1pZGRsZXdhcmUuCgojIyMjIEJhc2ljIGF1dGhlbnRpY2F0aW9uCgpUaGUgQmFzaWMgdHlwZSBzdXBwb3J0cyBhIGZpbGUgKGJ5IGRlZmF1bHQgJy5odHBhc3N3ZCcpIHRoYXQgaG9sZHMgdGhlIHVzZXJzIGFuZCB0aGVpciAoaGFzaGVkKSBwYXNzd29yZHMgc2VwYXJhdGVkIGJ5IGEgY29sb24gKCc6JykuIApXaGVuIHRoZSBwYXNzd29yZHMgYXJlIGVudGVyZWQgaW4gcGxhaW4gdGV4dCB0aGV5IHdpbGwgYmUgYXV0b21hdGljYWxseSBoYXNoZWQuClRoZSBhdXRoZW50aWNhdGVkIHVzZXJuYW1lIHdpbGwgYmUgc3RvcmVkIGluIHRoZSBgJF9TRVNTSU9OWyd1c2VybmFtZSddYCB2YXJpYWJsZS4KWW91IG5lZWQgdG8gc2VuZCBhbiAiQXV0aG9yaXphdGlvbiIgaGVhZGVyIGNvbnRhaW5pbmcgYSBiYXNlNjQgdXJsIGVuY29kZWQgdmVyc2lvbiBvZiB5b3VyIGNvbG9uIHNlcGFyYXRlZCB1c2VybmFtZSBhbmQgcGFzc3dvcmQsIGFmdGVyIHRoZSB3b3JkICJCYXNpYyIuCgogICAgQXV0aG9yaXphdGlvbjogQmFzaWMgZFhObGNtNWhiV1V4T25CaGMzTjNiM0prTVEKClRoaXMgZXhhbXBsZSBzZW5kcyB0aGUgc3RyaW5nICJ1c2VybmFtZTE6cGFzc3dvcmQxIi4KCiMjIyMgSldUIGF1dGhlbnRpY2F0aW9uCgpUaGUgSldUIHR5cGUgcmVxdWlyZXMgYW5vdGhlciAoU1NPL0lkZW50aXR5KSBzZXJ2ZXIgdG8gc2lnbiBhIHRva2VuIHRoYXQgY29udGFpbnMgY2xhaW1zLiAKQm90aCBzZXJ2ZXJzIHNoYXJlIGEgc2VjcmV0IHNvIHRoYXQgdGhleSBjYW4gZWl0aGVyIHNpZ24gb3IgdmVyaWZ5IHRoYXQgdGhlIHNpZ25hdHVyZSBpcyB2YWxpZC4KQ2xhaW1zIGFyZSBzdG9yZWQgaW4gdGhlIGAkX1NFU1NJT05bJ2NsYWltcyddYCB2YXJpYWJsZS4gWW91IG5lZWQgdG8gc2VuZCBhbiAiWC1BdXRob3JpemF0aW9uIiAKaGVhZGVyIGNvbnRhaW5pbmcgYSBiYXNlNjQgdXJsIGVuY29kZWQgYW5kIGRvdCBzZXBhcmF0ZWQgdG9rZW4gaGVhZGVyLCBib2R5IGFuZCBzaWduYXR1cmUgYWZ0ZXIKdGhlIHdvcmQgIkJlYXJlciIgKFtyZWFkIG1vcmUgYWJvdXQgSldUIGhlcmVdKGh0dHBzOi8vand0LmlvLykpLiBUaGUgc3RhbmRhcmQgc2F5cyB5b3UgbmVlZCB0bwp1c2UgdGhlICJBdXRob3JpemF0aW9uIiBoZWFkZXIsIGJ1dCB0aGlzIGlzIHByb2JsZW1hdGljIGluIEFwYWNoZSBhbmQgUEhQLgoKICAgIFgtQXV0aG9yaXphdGlvbjogQmVhcmVyIGV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKOS5leUp6ZFdJaU9pSXhNak0wTlRZM09Ea3dJaXdpYm1GdFpTSTZJa3B2YUc0Z1JHOWxJaXdpWVdSdGFXNGlPblJ5ZFdVc0ltbGhkQ0k2SWpFMU16Z3lNRGMyTURVaUxDSmxlSEFpT2pFMU16Z3lNRGMyTXpWOS5aNXB4X0dUMTVUUktoSkNUSGhEdDVaNks2TFJEU0ZuTGo4VTVvazlsN2d3CgpUaGlzIGV4YW1wbGUgc2VuZHMgdGhlIHNpZ25lZCBjbGFpbXM6CgogICAgewogICAgICAic3ViIjogIjEyMzQ1Njc4OTAiLAogICAgICAibmFtZSI6ICJKb2huIERvZSIsCiAgICAgICJhZG1pbiI6IHRydWUsCiAgICAgICJpYXQiOiAiMTUzODIwNzYwNSIsCiAgICAgICJleHAiOiAxNTM4MjA3NjM1CiAgICB9CgpOQjogVGhlIEpXVCBpbXBsZW1lbnRhdGlvbiBvbmx5IHN1cHBvcnRzIHRoZSBSU0EgYW5kIEhNQUMgYmFzZWQgYWxnb3JpdGhtcy4KCiMjIyMjIENvbmZpZ3VyZSBhbmQgdGVzdCBKV1QgYXV0aGVudGljYXRpb24gd2l0aCBBdXRoMAoKRmlyc3QgeW91IG5lZWQgdG8gY3JlYXRlIGFuIGFjY291bnQgb24gW0F1dGgwXShodHRwczovL2F1dGgwLmNvbS9hdXRoL2xvZ2luKS4KT25jZSBsb2dnZWQgaW4sIHlvdSBoYXZlIHRvIGNyZWF0ZSBhbiBhcHBsaWNhdGlvbiAoaXRzIHR5cGUgZG9lcyBub3QgbWF0dGVyKS4gQ29sbGVjdCB0aGUgYERvbWFpbmAKYW5kIGBDbGllbnQgSURgIGFuZCBrZWVwIHRoZW0gZm9yIGEgbGF0ZXIgdXNlLiBUaGVuLCBjcmVhdGUgYW4gQVBJOiBnaXZlIGl0IGEgbmFtZSBhbmQgZmlsbCB0aGUKYGlkZW50aWZpZXJgIGZpZWxkIHdpdGggeW91ciBBUEkgZW5kcG9pbnQncyBVUkwuCgpUaGVuIHlvdSBoYXZlIHRvIGNvbmZpZ3VyZSB0aGUgYGp3dEF1dGguc2VjcmV0c2AgY29uZmlndXJhdGlvbiBpbiB5b3VyIGBhcGkucGhwYCBmaWxlLgpEb24ndCBmaWxsIGl0IHdpdGggdGhlIGBzZWNyZXRgIHlvdSB3aWxsIGZpbmQgaW4geW91ciBBdXRoMCBhcHBsaWNhdGlvbiBzZXR0aW5ncyBidXQgd2l0aCAqKmEKcHVibGljIGNlcnRpZmljYXRlKiouIFRvIGZpbmQgaXQsIGdvIHRvIHRoZSBzZXR0aW5ncyBvZiB5b3VyIGFwcGxpY2F0aW9uLCB0aGVuIGluICJFeHRyYSBzZXR0aW5ncyIuCllvdSB3aWxsIG5vdyBmaW5kIGEgIkNlcnRpZmljYXRlcyIgdGFiIHdoZXJlIHlvdSB3aWxsIGZpbmQgeW91ciBQdWJsaWMgS2V5IGluIHRoZSBTaWduaW5nCkNlcnRpZmljYXRlIGZpZWxkLgoKVG8gdGVzdCB5b3VyIGludGVncmF0aW9uLCB5b3UgY2FuIGNvcHkgdGhlIFthdXRoMC92YW5pbGxhLmh0bWxdKGV4YW1wbGVzL2NsaWVudHMvYXV0aDAvdmFuaWxsYS5odG1sKQpmaWxlLiBCZSBzdXJlIHRvIGZpbGwgdGhlc2UgdGhyZWUgdmFyaWFibGVzOgoKIC0gYGF1dGhVcmxgIHdpdGggeW91ciBBdXRoMCBkb21haW4KIC0gYGNsaWVudElkYCB3aXRoIHlvdXIgQ2xpZW50IElECiAtIGBhdWRpZW5jZWAgd2l0aCB0aGUgQVBJIFVSTCB5b3UgY3JlYXRlZCBpbiBBdXRoMAoKTm90ZSB0aGF0IGlmIHlvdSBkb24ndCBmaWxsIHRoZSBhdWRpZW5jZSBwYXJhbWV0ZXIsIGl0IHdpbGwgbm90IHdvcmsgYmVjYXVzZSB5b3Ugd29uJ3QgZ2V0IGEgdmFsaWQgSldULgpBbHNvIG5vdGUgdGhhdCB5b3Ugc2hvdWxkIGZpbGwgYGp3dEF1dGguYXVkaWVuY2VzYCAod2l0aCB0aGUgdmFsdWUgb2YgdGhlIGBhdWRpZW5jZWApIHRvIGVuc3VyZSB0aGUKdG9rZW5zIGFyZSB2YWxpZGF0ZWQgdG8gYmUgZ2VuZXJhdGVkIGZvciB5b3VyIGFwcGxpY2F0aW9uLgoKWW91IGNhbiBhbHNvIGNoYW5nZSB0aGUgYHVybGAgdmFyaWFibGUsIHVzZWQgdG8gdGVzdCB0aGUgQVBJIHdpdGggYXV0aGVudGljYXRpb24uCgpbTW9yZSBpbmZvXShodHRwczovL2F1dGgwLmNvbS9kb2NzL2FwaS1hdXRoL3R1dG9yaWFscy92ZXJpZnktYWNjZXNzLXRva2VuKQoKIyMjIyMgQ29uZmlndXJlIGFuZCB0ZXN0IEpXVCBhdXRoZW50aWNhdGlvbiB3aXRoIEZpcmViYXNlCgpGaXJzdCB5b3UgbmVlZCB0byBjcmVhdGUgYSBGaXJlYmFzZSBwcm9qZWN0IG9uIHRoZSBbRmlyZWJhc2UgY29uc29sZV0oaHR0cHM6Ly9jb25zb2xlLmZpcmViYXNlLmdvb2dsZS5jb20vKS4KQWRkIGEgd2ViIGFwcGxpY2F0aW9uIHRvIHRoaXMgcHJvamVjdCBhbmQgZ3JhYiB0aGUgY29kZSBzbmlwcGV0IGZvciBsYXRlciB1c2UuCgpUaGVuIHlvdSBoYXZlIHRvIGNvbmZpZ3VyZSB0aGUgYGp3dEF1dGguc2VjcmV0c2AgY29uZmlndXJhdGlvbiBpbiB5b3VyIGBhcGkucGhwYCBmaWxlLiAKVGhpcyBjYW4gYmUgZG9uZSBhcyBmb2xsb3dzOgoKYS4gTG9nIGEgdXNlciBpbiB0byB5b3VyIEZpcmViYXNlLWJhc2VkIGFwcCwgZ2V0IGFuIGF1dGhlbnRpY2F0aW9uIHRva2VuIGZvciB0aGF0IHVzZXIKYi4gR28gdG8gW2h0dHBzOi8vand0LmlvL10oaHR0cHM6Ly9qd3QuaW8vKSBhbmQgcGFzdGUgdGhlIHRva2VuIGluIHRoZSBkZWNvZGluZyBmaWVsZApjLiBSZWFkIHRoZSBkZWNvZGVkIGhlYWRlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0b2tlbiwgaXQgd2lsbCBnaXZlIHlvdSB0aGUgY29ycmVjdCBga2lkYApkLiBHcmFiIHRoZSBwdWJsaWMga2V5IHZpYSB0aGlzIFtVUkxdKGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvc2VjdXJldG9rZW5Ac3lzdGVtLmdzZXJ2aWNlYWNjb3VudC5jb20pLCB3aGljaCBjb3JyZXNwb25kcyB0byB5b3VyIGBraWRgIGZyb20gcHJldmlvdXMgc3RlcAplLiBOb3csIGp1c3QgZmlsbCBgand0QXV0aC5zZWNyZXRzYCB3aXRoIHlvdXIgcHVibGljIGtleSBpbiB0aGUgYGFwaS5waHBgCgpBbHNvIGNvbmZpZ3VyZSB0aGUgYGp3dEF1dGguYXVkaWVuY2VzYCAoZmlsbCBpbiB0aGUgRmlyZWJhc2UgcHJvamVjdCBJRCkuCgpIZXJlIGlzIGFuIGV4YW1wbGUgb2Ygd2hhdCBpdCBzaG91bGQgbG9vayBsaWtlIGluIHRoZSBjb25maWd1cmF0aW9uOgoKYGBgCi4uLiwKJ21pZGRsZXdhcmVzJyA9PiAnY29ycywgand0QXV0aCwgYXV0aG9yaXphdGlvbicsCiAgICAgICAgJ2p3dEF1dGguc2VjcmV0cycgPT4gImNlNWNlZDZlNDBkY2QxZWZmNDA3MDQ4ODY3YjFlZDFlNzA2Njg2YTA6LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG5NSUlESERDQ0FnU2dBd0lCQWdJSUV4dW45YkpTSzF3d0RRWUpLb1pJaHZjTkFRRUZCUUF3TVRFdk1DMEdBMVVFXG5BeE1tYzJWamRYSmxkRzlyWlc0dWMzbHpkR1Z0TG1kelpYSjJhV05sWVdOamIzVnVkQzVqYjIwd0hoY05NVGt4XG5Nakl5TWpFeU1UQTNXaGNOTWpBd01UQTRNRGt6TmpBM1dqQXhNUzh3TFFZRFZRUURFeVp6WldOMWNtVjBiMnRsXG5iaTV6ZVhOMFpXMHVaM05sY25acFkyVmhZMk52ZFc1MExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEXG5nZ0VQQURDQ0FRb0NnZ0VCQUtzdlZEVXdYZVlRdHlTTnZ5STEvdFpBazBzajdaeDQvMStZTFVvbXdsSzZ2bUVkXG55bDJJWE9ZT2ozVlI3RkJBMjRBOS8vbm5ycCttVjhZT1lFT2RhV1g3UFFvMFBJUEZQcWRBMHI3Q3FCVVdIUGZRXG4xV1ZIVlJRWTNHMGM3dXBNOTdVZk1lczl4T3JNcXl2ZWNNUmsxZTVTNmVUMTJaaDJvZzd5aVZzOGdQODNNMUVCXG5HcXNlVWFsdGFhZGp5VDM1dzVCME55MC83TmRMWWl2Mkc2WjBTODIxU3h2U28xL3dmbWlsbkJCS1lZbHVQMFBBXG45TlB6bldGUDZ1WG5YN2dLeHlKVDkvL2NZVnhUTzYrYjFUVDEzWXZycG0xYTRFdUNPaExyWkg2RXJIUVRjY0FNXG5oQXg4bWROdGJST3NwMGRsUEtyU2ZxTzgydUZ6NDVSWFpZbVNlUDBDQXdFQUFhTTRNRFl3REFZRFZSMFRBUUgvXG5CQUl3QURBT0JnTlZIUThCQWY4RUJBTUNCNEF3RmdZRFZSMGxBUUgvQkF3d0NnWUlLd1lCQlFVSEF3SXdEUVlKXG5Lb1pJaHZjTkFRRUZCUUFEZ2dFQkFDTnNKNW0wMGdkVHZENmo2YWhVUnNHck5aMFZKMFlSRVZRNVUySnR1YnI4XG5uMmZ1aE14a0I4MTQ3SVN6Zmk2d1pSK3lOd1BHamxyOEprQUhBQzBpK05hbTlTcVJ5ZlpMcXNtK3RIZGdGVDhoXG5wYStSL0ZvR3JyTHp4Sk5SaXYwVHJpcDhoWmpnejNQQ2x6Nkt4QlF6cUwrcmZHVjJNYndUWHVCb0V2TFUxbVlBXG5vMy9VYm9KVDdjTkdqWjhuSFhlb0tNc2VjMS9INTVsVWRjb25iVG01aU1VMXNURGYrM1N0R1l6VHdDK0g2eWMyXG5ZM3pJcTMvY1FVQ3JFVGtBTHJxenlDbkxqUnJMWVp1MzZJVE9hS1VidG1aaHdyUDk5aTJmK0g0QWIyaThqZU11XG5rNjFIRDI5bVJPWWpsOTVNa28yQnhMKzc2VG83K3BtbjczVTlhdVQreGZBPVxuLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLVxuIiwKICAgICAgICAnand0QXV0aC5hdWRpZW5jZXMnID0+ICd5b3VyLXByb2plY3QtaWQnLAogICAgICAgICdjb3JzLmFsbG93ZWRPcmlnaW5zJyA9PiAnKicsCiAgICAgICAgJ2NvcnMuYWxsb3dIZWFkZXJzJyA9PiAnWC1BdXRob3JpemF0aW9uJwpgYGAKCk5vdGVzOgogLSBUaGUgYGtpZDprZXlgIHBhaXIgaXMgZm9ybWF0dGVkIGFzIGEgc3RyaW5nCiAtIERvIG5vdCBpbmNsdWRlIHNwYWNlcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlICc6JwogLSBVc2UgZG91YmxlIHF1b3RhdGlvbiBtYXJrcyAoIikgYXJvdW5kIHRoZSBzdHJpbmcgdGV4dAogLSBUaGUgc3RyaW5nIG11c3QgY29udGFpbiB0aGUgbGluZWZlZWRzIChcbikKIC0gYGp3dEF1dGguYXVkaWVuY2VzYCBzaG91bGQgY29udGFpbiB5b3VyIEZpcmViYXNlIHByb2plY3RJZAoKVG8gdGVzdCB5b3VyIGludGVncmF0aW9uLCB5b3UgY2FuIGNvcHkgdGhlIFtmaXJlYmFzZS92YW5pbGxhLmh0bWxdKGV4YW1wbGVzL2NsaWVudHMvZmlyZWJhc2UvdmFuaWxsYS5odG1sKQpmaWxlIGFuZCB0aGUgW2ZpcmViYXNlL3ZhbmlsbGEtc3VjY2Vzcy5odG1sXShleGFtcGxlcy9jbGllbnRzL2ZpcmViYXNlL3ZhbmlsbGEtc3VjY2Vzcy5odG1sKSBmaWxlLAp1c2VkIGFzIGEgInN1Y2Nlc3MiIHBhZ2UgYW5kIHRvIGRpc3BsYXkgdGhlIEFQSSByZXN1bHQuCgpSZXBsYWNlLCBpbiBib3RoIGZpbGVzLCB0aGUgRmlyZWJhc2UgY29uZmlndXJhdGlvbiAoYGZpcmViYXNlQ29uZmlnYCBvYmplY3QpLgoKWW91IGNhbiBhbHNvIGNoYW5nZSB0aGUgYHVybGAgdmFyaWFibGUsIHVzZWQgdG8gdGVzdCB0aGUgQVBJIHdpdGggYXV0aGVudGljYXRpb24uCgpbTW9yZSBpbmZvXShodHRwczovL2ZpcmViYXNlLmdvb2dsZS5jb20vZG9jcy9hdXRoL2FkbWluL3ZlcmlmeS1pZC10b2tlbnMjdmVyaWZ5X2lkX3Rva2Vuc191c2luZ19hX3RoaXJkLXBhcnR5X2p3dF9saWJyYXJ5KQoKIyMjIEF1dGhvcml6aW5nIG9wZXJhdGlvbnMKClRoZSBBdXRob3JpemF0aW9uIG1vZGVsIGFjdHMgb24gIm9wZXJhdGlvbnMiLiBUaGUgbW9zdCBpbXBvcnRhbnQgb25lcyBhcmUgbGlzdGVkIGhlcmU6CgogICAgbWV0aG9kIHBhdGggICAgICAgICAgICAgICAgICAtIG9wZXJhdGlvbiAtIGRlc2NyaXB0aW9uCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBHRVQgICAgL3JlY29yZHMve3RhYmxlfSAgICAgIC0gbGlzdCAgICAgIC0gbGlzdHMgcmVjb3JkcwogICAgUE9TVCAgIC9yZWNvcmRzL3t0YWJsZX0gICAgICAtIGNyZWF0ZSAgICAtIGNyZWF0ZXMgcmVjb3JkcwogICAgR0VUICAgIC9yZWNvcmRzL3t0YWJsZX0ve2lkfSAtIHJlYWQgICAgICAtIHJlYWRzIGEgcmVjb3JkIGJ5IHByaW1hcnkga2V5CiAgICBQVVQgICAgL3JlY29yZHMve3RhYmxlfS97aWR9IC0gdXBkYXRlICAgIC0gdXBkYXRlcyBjb2x1bW5zIG9mIGEgcmVjb3JkIGJ5IHByaW1hcnkga2V5CiAgICBERUxFVEUgL3JlY29yZHMve3RhYmxlfS97aWR9IC0gZGVsZXRlICAgIC0gZGVsZXRlcyBhIHJlY29yZCBieSBwcmltYXJ5IGtleQogICAgUEFUQ0ggIC9yZWNvcmRzL3t0YWJsZX0ve2lkfSAtIGluY3JlbWVudCAtIGluY3JlbWVudHMgY29sdW1ucyBvZiBhIHJlY29yZCBieSBwcmltYXJ5IGtleQoKVGhlICJgL29wZW5hcGlgIiBlbmRwb2ludCB3aWxsIG9ubHkgc2hvdyB3aGF0IGlzIGFsbG93ZWQgaW4geW91ciBzZXNzaW9uLiBJdCBhbHNvIGhhcyBhIHNwZWNpYWwgCiJkb2N1bWVudCIgb3BlcmF0aW9uIHRvIGFsbG93IHlvdSB0byBoaWRlIHRhYmxlcyBhbmQgY29sdW1ucyBmcm9tIHRoZSBkb2N1bWVudGF0aW9uLgogICAgCkZvciBlbmRwb2ludHMgdGhhdCBzdGFydCB3aXRoICJgL2NvbHVtbnNgIiB0aGVyZSBhcmUgdGhlIG9wZXJhdGlvbnMgInJlZmxlY3QiIGFuZCAicmVtb2RlbCIuIApUaGVzZSBvcGVyYXRpb25zIGNhbiBkaXNwbGF5IG9yIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZGF0YWJhc2UsIHRhYmxlIG9yIGNvbHVtbi4gClRoaXMgZnVuY3Rpb25hbGl0eSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBmb3IgZ29vZCByZWFzb24gKGJlIGNhcmVmdWwhKS4gCkFkZCB0aGUgImNvbHVtbnMiIGNvbnRyb2xsZXIgaW4gdGhlIGNvbmZpZ3VyYXRpb24gdG8gZW5hYmxlIHRoaXMgZnVuY3Rpb25hbGl0eS4KCiMjIyBBdXRob3JpemluZyB0YWJsZXMsIGNvbHVtbnMgYW5kIHJlY29yZHMKCkJ5IGRlZmF1bHQgYWxsIHRhYmxlcywgY29sdW1ucyBhbmQgcGF0aHMgYXJlIGFjY2Vzc2libGUuIElmIHlvdSB3YW50IHRvIHJlc3RyaWN0IGFjY2VzcyB0byBzb21lIHRhYmxlcyB5b3UgbWF5IGFkZCB0aGUgJ2F1dGhvcml6YXRpb24nIG1pZGRsZXdhcmUgCmFuZCBkZWZpbmUgYSAnYXV0aG9yaXphdGlvbi50YWJsZUhhbmRsZXInIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyAnZmFsc2UnIGZvciB0aGVzZSB0YWJsZXMuCgogICAgJ2F1dGhvcml6YXRpb24udGFibGVIYW5kbGVyJyA9PiBmdW5jdGlvbiAoJG9wZXJhdGlvbiwgJHRhYmxlTmFtZSkgewogICAgICAgIHJldHVybiAkdGFibGVOYW1lICE9ICdsaWNlbnNlX2tleXMnOwogICAgfSwKClRoZSBhYm92ZSBleGFtcGxlIHdpbGwgcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSB0YWJsZSAnbGljZW5zZV9rZXlzJyBmb3IgYWxsIG9wZXJhdGlvbnMuCgogICAgJ2F1dGhvcml6YXRpb24uY29sdW1uSGFuZGxlcicgPT4gZnVuY3Rpb24gKCRvcGVyYXRpb24sICR0YWJsZU5hbWUsICRjb2x1bW5OYW1lKSB7CiAgICAgICAgcmV0dXJuICEoJHRhYmxlTmFtZSA9PSAndXNlcnMnICYmICRjb2x1bW5OYW1lID09ICdwYXNzd29yZCcpOwogICAgfSwKClRoZSBhYm92ZSBleGFtcGxlIHdpbGwgcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSAncGFzc3dvcmQnIGZpZWxkIG9mIHRoZSAndXNlcnMnIHRhYmxlIGZvciBhbGwgb3BlcmF0aW9ucy4KCiAgICAnYXV0aG9yaXphdGlvbi5yZWNvcmRIYW5kbGVyJyA9PiBmdW5jdGlvbiAoJG9wZXJhdGlvbiwgJHRhYmxlTmFtZSkgewogICAgICAgIHJldHVybiAoJHRhYmxlTmFtZSA9PSAndXNlcnMnKSA/ICdmaWx0ZXI9dXNlcm5hbWUsbmVxLGFkbWluJyA6ICcnOwogICAgfSwKClRoZSBhYm92ZSBleGFtcGxlIHdpbGwgZGlzYWxsb3cgYWNjZXNzIHRvIHVzZXIgcmVjb3JkcyB3aGVyZSB0aGUgdXNlcm5hbWUgaXMgJ2FkbWluJy4gClRoaXMgY29uc3RydWN0IGFkZHMgYSBmaWx0ZXIgdG8gZXZlcnkgZXhlY3V0ZWQgcXVlcnkuIAoKICAgICdhdXRob3JpemF0aW9uLnBhdGhIYW5kbGVyJyA9PiBmdW5jdGlvbiAoJHBhdGgpIHsKICAgICAgICByZXR1cm4gJHBhdGggPT09ICdvcGVuYXBpJyA/IGZhbHNlIDogdHJ1ZTsKICAgIH0sCgpUaGUgYWJvdmUgZXhhbXBsZSB3aWxsIGRpc2FibGVkIHRoZSBgL29wZW5hcGlgIHJvdXRlLgoKTkI6IFlvdSBuZWVkIHRvIGhhbmRsZSB0aGUgY3JlYXRpb24gb2YgaW52YWxpZCByZWNvcmRzIHdpdGggYSB2YWxpZGF0aW9uIChvciBzYW5pdGF0aW9uKSBoYW5kbGVyLgoKIyMjIFNRTCBHUkFOVCBhdXRob3JpemF0aW9uCgpZb3UgY2FuIGFsdGVybmF0aXZlbHkgdXNlIGRhdGFiYXNlIHBlcm1pc3NvbnMgKFNRTCBHUkFOVCBzdGF0ZW1lbnRzKSB0byBkZWZpbmUgdGhlIGF1dGhvcml6YXRpb24gbW9kZWwuIEluIHRoaXMgY2FzZSB5b3UKc2hvdWxkIG5vdCB1c2UgdGhlICJhdXRob3JpemF0aW9uIiBtaWRkbGV3YXJlLCBidXQgeW91IGRvIG5lZWQgdG8gdXNlIHRoZSAicmVjb25uZWN0IiBtaWRkbGV3YXJlLiBUaGUgaGFuZGxlcnMgb2YgdGhlCiJyZWNvbm5lY3QiIG1pZGRsZXdhcmUgYWxsb3cgeW91IHRvIHNwZWNpZnkgdGhlIGNvcnJlY3QgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLCBsaWtlIHRoaXM6CgogICAgJ3JlY29ubmVjdC51c2VybmFtZUhhbmRsZXInID0+IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gJ21ldmRzY2hlZSc7CiAgICB9LAogICAgJ3JlY29ubmVjdC5wYXNzd29yZEhhbmRsZXInID0+IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gJ3NlY3JldDEyMyc7CiAgICB9LAoKVGhpcyB3aWxsIG1ha2UgdGhlIEFQSSBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBzcGVjaWZ5aW5nICJtZXZkc2NoZWUiIGFzIHRoZSB1c2VybmFtZSBhbmQgInNlY3JldDEyMyIgYXMgdGhlIHBhc3N3b3JkLgpUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGlzIGxlc3Mgc3BlY2lmaWMgb24gYWxsb3dlZCBhbmQgZGlzYWxsb3dlZCBvcGVyYXRpb25zIHdoZW4geW91IGFyZSB1c2luZyBkYXRhYmFzZSBwZXJtaXNzaW9ucywKYXMgdGhlIHBlcm1pc3Npb25zIGFyZSBub3QgcmVhZCBpbiB0aGUgcmVmbGVjdGlvbiBzdGVwLgoKTkI6IFlvdSBtYXkgd2FudCB0byByZXRyaWV2ZSB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZyb20gdGhlIHNlc3Npb24gKHRoZSAiJF9TRVNTSU9OIiB2YXJpYWJsZSkuCgojIyMgU2FuaXRpemluZyBpbnB1dAoKQnkgZGVmYXVsdCBhbGwgaW5wdXQgaXMgYWNjZXB0ZWQgYW5kIHNlbnQgdG8gdGhlIGRhdGFiYXNlLiBJZiB5b3Ugd2FudCB0byBzdHJpcCAoY2VydGFpbikgSFRNTCB0YWdzIGJlZm9yZSBzdG9yaW5nIHlvdSBtYXkgYWRkIAp0aGUgJ3Nhbml0YXRpb24nIG1pZGRsZXdhcmUgYW5kIGRlZmluZSBhICdzYW5pdGF0aW9uLmhhbmRsZXInIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgYWRqdXN0ZWQgdmFsdWUuCgogICAgJ3Nhbml0YXRpb24uaGFuZGxlcicgPT4gZnVuY3Rpb24gKCRvcGVyYXRpb24sICR0YWJsZU5hbWUsICRjb2x1bW4sICR2YWx1ZSkgewogICAgICAgIHJldHVybiBpc19zdHJpbmcoJHZhbHVlKSA/IHN0cmlwX3RhZ3MoJHZhbHVlKSA6ICR2YWx1ZTsKICAgIH0sCgpUaGUgYWJvdmUgZXhhbXBsZSB3aWxsIHN0cmlwIGFsbCBIVE1MIHRhZ3MgZnJvbSBzdHJpbmdzIGluIHRoZSBpbnB1dC4KCiMjIyBUeXBlIHNhbml0YXRpb24KCklmIHlvdSBlbmFibGUgdGhlICdzYW5pdGF0aW9uJyBtaWRkbGV3YXJlLCB0aGVuIHlvdSAoYXV0b21hdGljYWxseSkgYWxzbyBlbmFibGUgdHlwZSBzYW5pdGF0aW9uLiBXaGVuIHRoaXMgaXMgZW5hYmxlZCB5b3UgbWF5OgoKLSBzZW5kIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgaW4gYSBub24tY2hhcmFjdGVyIGZpZWxkIChpdCB3aWxsIGJlIGlnbm9yZWQpLgotIHNlbmQgYSBmbG9hdCB0byBhbiBpbnRlZ2VyIG9yIGJpZ2ludCBmaWVsZCAoaXQgd2lsbCBiZSByb3VuZGVkKS4KLSBzZW5kIGEgYmFzZTY0dXJsIGVuY29kZWQgc3RyaW5nIChpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byByZWd1bGFyIGJhc2U2NCBlbmNvZGluZykuCi0gc2VuZCBhIHRpbWUvZGF0ZS90aW1lc3RhbXAgaW4gYW55IFtzdHJ0b3RpbWUgYWNjZXB0ZWQgZm9ybWF0XShodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9kYXRldGltZS5mb3JtYXRzLnBocCkgKGl0IHdpbGwgYmUgY29udmVydGVkKS4KCllvdSBtYXkgdXNlIHRoZSBjb25maWcgc2V0dGluZ3MgImBzYW5pdGF0aW9uLnR5cGVzYCIgYW5kICJgc2FuaXRhdGlvbi50YWJsZXNgIicgdG8gZGVmaW5lIGZvciB3aGljaCB0eXBlcyBhbmQKaW4gd2hpY2ggdGFibGVzIHlvdSB3YW50IHRvIGFwcGx5IHR5cGUgc2FuaXRhdGlvbiAoZGVmYXVsdHMgdG8gJ2FsbCcpLiBFeGFtcGxlOgoKICAgICdzYW5pdGF0aW9uLnR5cGVzJyA9PiAnZGF0ZSx0aW1lc3RhbXAnLAogICAgJ3Nhbml0YXRpb24udGFibGVzJyA9PiAncG9zdHMsY29tbWVudHMnLAoKSGVyZSB3ZSBlbmFibGUgdGhlIHR5cGUgc2FuaXRhdGlvbiBmb3IgZGF0ZSBhbmQgdGltZXN0YW1wIGZpZWxkcyBpbiB0aGUgcG9zdHMgYW5kIGNvbW1lbnRzIHRhYmxlcy4KCiMjIyBWYWxpZGF0aW5nIGlucHV0CgpCeSBkZWZhdWx0IGFsbCBpbnB1dCBpcyBhY2NlcHRlZCBhbmQgc2VudCB0byB0aGUgZGF0YWJhc2UuIElmIHlvdSB3YW50IHRvIHZhbGlkYXRlIHRoZSBpbnB1dCBpbiBhIGN1c3RvbSB3YXksIAp5b3UgbWF5IGFkZCB0aGUgJ3ZhbGlkYXRpb24nIG1pZGRsZXdhcmUgYW5kIGRlZmluZSBhICd2YWxpZGF0aW9uLmhhbmRsZXInIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGJvb2xlYW4gCmluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIHZhbHVlIGlzIHZhbGlkLgoKICAgICd2YWxpZGF0aW9uLmhhbmRsZXInID0+IGZ1bmN0aW9uICgkb3BlcmF0aW9uLCAkdGFibGVOYW1lLCAkY29sdW1uLCAkdmFsdWUsICRjb250ZXh0KSB7CiAgICAgICAgcmV0dXJuICgkY29sdW1uWyduYW1lJ10gPT0gJ3Bvc3RfaWQnICYmICFpc19udW1lcmljKCR2YWx1ZSkpID8gJ211c3QgYmUgbnVtZXJpYycgOiB0cnVlOwogICAgfSwKCldoZW4geW91IGVkaXQgYSBjb21tZW50IHdpdGggaWQgNCB1c2luZzoKCiAgICBQVVQgL3JlY29yZHMvY29tbWVudHMvNAoKQW5kIHlvdSBzZW5kIGFzIGEgYm9keToKCiAgICB7InBvc3RfaWQiOiJ0d28ifQoKVGhlbiB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIGEgJzQyMicgSFRUUCBzdGF0dXMgY29kZSBhbmQgbmljZSBlcnJvciBtZXNzYWdlOgoKICAgIHsKICAgICAgICAiY29kZSI6IDEwMTMsCiAgICAgICAgIm1lc3NhZ2UiOiAiSW5wdXQgdmFsaWRhdGlvbiBmYWlsZWQgZm9yICdjb21tZW50cyciLAogICAgICAgICJkZXRhaWxzIjogewogICAgICAgICAgICAicG9zdF9pZCI6Im11c3QgYmUgbnVtZXJpYyIKICAgICAgICB9CiAgICB9CgpZb3UgY2FuIHBhcnNlIHRoaXMgb3V0cHV0IHRvIG1ha2UgZm9ybSBmaWVsZHMgc2hvdyB1cCB3aXRoIGEgcmVkIGJvcmRlciBhbmQgdGhlaXIgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZS4KCiMjIyBUeXBlIHZhbGlkYXRpb25zCgpJZiB5b3UgZW5hYmxlIHRoZSAndmFsaWRhdGlvbicgbWlkZGxld2FyZSwgdGhlbiB5b3UgKGF1dG9tYXRpY2FsbHkpIGFsc28gZW5hYmxlIHR5cGUgdmFsaWRhdGlvbi4gClRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBlcnJvciBtZXNzYWdlczoKCnwgZXJyb3IgbWVzc2FnZSAgICAgICB8IHJlYXNvbiAgICAgICAgICAgICAgICAgICAgICB8IGFwcGxpZXMgdG8gdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBjYW5ub3QgYmUgbnVsbCAgICAgIHwgdW5leHBlY3RlZCBudWxsIHZhbHVlICAgICAgIHwgKGFueSBub24tbnVsbGFibGUgY29sdW1uKSAgICAgICAgICAgICAgICAgICB8CnwgaWxsZWdhbCB3aGl0ZXNwYWNlICB8IGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSB8IGludGVnZXIgYmlnaW50IGRlY2ltYWwgZmxvYXQgZG91YmxlIGJvb2xlYW4gfAp8IGludmFsaWQgaW50ZWdlciAgICAgfCBpbGxlZ2FsIGNoYXJhY3RlcnMgICAgICAgICAgfCBpbnRlZ2VyIGJpZ2ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBzdHJpbmcgdG9vIGxvbmcgICAgIHwgdG9vIG1hbnkgY2hhcmFjdGVycyAgICAgICAgIHwgdmFyY2hhciB2YXJiaW5hcnkgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW52YWxpZCBkZWNpbWFsICAgICB8IGlsbGVnYWwgY2hhcmFjdGVycyAgICAgICAgICB8IGRlY2ltYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGRlY2ltYWwgdG9vIGxhcmdlICAgfCB0b28gbWFueSBkaWdpdHMgYmVmb3JlIGRvdCAgfCBkZWNpbWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBkZWNpbWFsIHRvbyBwcmVjaXNlIHwgdG9vIG1hbnkgZGlnaXRzIGFmdGVyIGRvdCAgIHwgZGVjaW1hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW52YWxpZCBmbG9hdCAgICAgICB8IGlsbGVnYWwgY2hhcmFjdGVycyAgICAgICAgICB8IGZsb2F0IGRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGludmFsaWQgYm9vbGVhbiAgICAgfCB1c2UgMSwgMCwgdHJ1ZSBvciBmYWxzZSAgICAgfCBib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbnZhbGlkIGRhdGUgICAgICAgIHwgdXNlIHl5eXktbW0tZGQgICAgICAgICAgICAgIHwgZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgaW52YWxpZCB0aW1lICAgICAgICB8IHVzZSBoaDptbTpzcyAgICAgICAgICAgICAgICB8IHRpbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGludmFsaWQgdGltZXN0YW1wICAgfCB1c2UgeXl5eS1tbS1kZCBoaDptbTpzcyAgICAgfCB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBpbnZhbGlkIGJhc2U2NCAgICAgIHwgaWxsZWdhbCBjaGFyYWN0ZXJzICAgICAgICAgIHwgdmFyYmluYXJ5LCBibG9iICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgpZb3UgbWF5IHVzZSB0aGUgY29uZmlnIHNldHRpbmdzICJgdmFsaWRhdGlvbi50eXBlc2AiIGFuZCAiYHZhbGlkYXRpb24udGFibGVzYCInIHRvIGRlZmluZSBmb3Igd2hpY2ggdHlwZXMgYW5kCmluIHdoaWNoIHRhYmxlcyB5b3Ugd2FudCB0byBhcHBseSB0eXBlIHZhbGlkYXRpb24gKGRlZmF1bHRzIHRvICdhbGwnKS4gRXhhbXBsZToKCiAgICAndmFsaWRhdGlvbi50eXBlcycgPT4gJ2RhdGUsdGltZXN0YW1wJywKICAgICd2YWxpZGF0aW9uLnRhYmxlcycgPT4gJ3Bvc3RzLGNvbW1lbnRzJywKCkhlcmUgd2UgZW5hYmxlIHRoZSB0eXBlIHZhbGlkYXRpb24gZm9yIGRhdGUgYW5kIHRpbWVzdGFtcCBmaWVsZHMgaW4gdGhlIHBvc3RzIGFuZCBjb21tZW50cyB0YWJsZXMuCgpOQjogVHlwZXMgdGhhdCBhcmUgZW5hYmxlZCB3aWxsIGJlIGNoZWNrZWQgZm9yIG51bGwgdmFsdWVzIHdoZW4gdGhlIGNvbHVtbiBpcyBub24tbnVsbGFibGUuCgojIyMgTXVsdGktdGVuYW5jeSBzdXBwb3J0CgpUd28gZm9ybXMgb2YgbXVsdGktdGVuYW5jeSBhcmUgc3VwcG9ydGVkOgoKIC0gU2luZ2xlIGRhdGFiYXNlLCB3aGVyZSBldmVyeSB0YWJsZSBoYXMgYSB0ZW5hbnQgY29sdW1uICh1c2luZyB0aGUgIm11bHRpVGVuYW5jeSIgbWlkZGxld2FyZSkuCiAtIE11bHRpIGRhdGFiYXNlLCB3aGVyZSBldmVyeSB0ZW5hbnQgaGFzIGl0J3Mgb3duIGRhdGFiYXNlICh1c2luZyB0aGUgInJlY29ubmVjdCIgbWlkZGxld2FyZSkuCgpCZWxvdyBpcyBhbiBleHBsYW5hdGlvbiBvZiB0aGUgY29ycmVzcG9uZGluZyBtaWRkbGV3YXJlcy4KCiMjIyMgTXVsdGktdGVuYW5jeSBtaWRkbGV3YXJlCgpZb3UgbWF5IHVzZSB0aGUgIm11bHRpVGVuYW5jeSIgbWlkZGxld2FyZSB3aGVuIHlvdSBoYXZlIGEgc2luZ2xlIG11bHRpLXRlbmFudCBkYXRhYmFzZS4gCklmIHlvdXIgdGVuYW50cyBhcmUgaWRlbnRpZmllZCBieSB0aGUgImN1c3RvbWVyX2lkIiBjb2x1bW4sIHRoZW4geW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBoYW5kbGVyOgoKICAgICdtdWx0aVRlbmFuY3kuaGFuZGxlcicgPT4gZnVuY3Rpb24gKCRvcGVyYXRpb24sICR0YWJsZU5hbWUpIHsKICAgICAgICByZXR1cm4gWydjdXN0b21lcl9pZCcgPT4gMTJdOwogICAgfSwKClRoaXMgY29uc3RydWN0IGFkZHMgYSBmaWx0ZXIgcmVxdWlyaW5nICJjdXN0b21lcl9pZCIgdG8gYmUgIjEyIiB0byBldmVyeSBvcGVyYXRpb24gKGV4Y2VwdCBmb3IgImNyZWF0ZSIpLgpJdCBhbHNvIHNldHMgdGhlIGNvbHVtbiAiY3VzdG9tZXJfaWQiIG9uICJjcmVhdGUiIHRvICIxMiIgYW5kIHJlbW92ZXMgdGhlIGNvbHVtbiBmcm9tIGFueSBvdGhlciB3cml0ZSBvcGVyYXRpb24uCgpOQjogWW91IG1heSB3YW50IHRvIHJldHJpZXZlIHRoZSBjdXN0b21lciBpZCBmcm9tIHRoZSBzZXNzaW9uICh0aGUgIiRfU0VTU0lPTiIgdmFyaWFibGUpLgoKIyMjIyBSZWNvbm5lY3QgbWlkZGxld2FyZQoKWW91IG1heSB1c2UgdGhlICJyZWNvbm5lY3QiIG1pZGRsZXdhcmUgd2hlbiB5b3UgaGF2ZSBhIHNlcGFyYXRlIGRhdGFiYXNlIGZvciBlYWNoIHRlbmFudC4KSWYgdGhlIHRlbmFudCBoYXMgaXQncyBvd24gZGF0YWJhc2UgbmFtZWQgImN1c3RvbWVyXzEyIiwgdGhlbiB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGhhbmRsZXI6CgogICAgJ3JlY29ubmVjdC5kYXRhYmFzZUhhbmRsZXInID0+IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gJ2N1c3RvbWVyXzEyJzsKICAgIH0sCgpUaGlzIHdpbGwgbWFrZSB0aGUgQVBJIHJlY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc3BlY2lmeWluZyAiY3VzdG9tZXJfMTIiIGFzIHRoZSBkYXRhYmFzZSBuYW1lLiBJZiB5b3UgZG9uJ3Qgd2FudAp0byB1c2UgdGhlIHNhbWUgY3JlZGVudGlhbHMsIHRoZW4geW91IHNob3VsZCBhbHNvIGltcGxlbWVudCB0aGUgInVzZXJuYW1lSGFuZGxlciIgYW5kICJwYXNzd29yZEhhbmRsZXIiLgoKTkI6IFlvdSBtYXkgd2FudCB0byByZXRyaWV2ZSB0aGUgZGF0YWJhc2UgbmFtZSBmcm9tIHRoZSBzZXNzaW9uICh0aGUgIiRfU0VTU0lPTiIgdmFyaWFibGUpLgoKIyMjIFByZXZlbnQgZGF0YWJhc2Ugc2NyYXBpbmcKCllvdSBtYXkgdXNlIHRoZSAiam9pbkxpbWl0cyIgYW5kICJwYWdlTGltaXRzIiBtaWRkbGV3YXJlIHRvIHByZXZlbnQgZGF0YWJhc2Ugc2NyYXBpbmcuClRoZSAiam9pbkxpbWl0cyIgbWlkZGxld2FyZSBsaW1pdHMgdGhlIHRhYmxlIGRlcHRoLCBudW1iZXIgb2YgdGFibGVzIGFuZCBudW1iZXIgb2YgcmVjb3JkcyByZXR1cm5lZCBpbiBhIGpvaW4gb3BlcmF0aW9uLiAKSWYgeW91IHdhbnQgdG8gYWxsb3cgNSBkaXJlY3QgZGlyZWN0IGpvaW5zIHdpdGggYSBtYXhpbXVtIG9mIDI1IHJlY29yZHMgZWFjaCwgeW91IGNhbiBzcGVjaWZ5OgoKICAgICdqb2luTGltaXRzLmRlcHRoJyA9PiAxLAogICAgJ2pvaW5MaW1pdHMudGFibGVzJyA9PiA1LAogICAgJ2pvaW5MaW1pdHMucmVjb3JkcycgPT4gMjUsCgpUaGUgInBhZ2VMaW1pdHMiIG1pZGRsZXdhcmUgbGltaXRzIHRoZSBwYWdlIG51bWJlciBhbmQgdGhlIG51bWJlciByZWNvcmRzIHJldHVybmVkIGZyb20gYSBsaXN0IG9wZXJhdGlvbi4gCklmIHlvdSB3YW50IHRvIGFsbG93IG5vIG1vcmUgdGhhbiAxMCBwYWdlcyB3aXRoIGEgbWF4aW11bSBvZiAyNSByZWNvcmRzIGVhY2gsIHlvdSBjYW4gc3BlY2lmeToKCiAgICAncGFnZUxpbWl0cy5wYWdlcycgPT4gMTAsCiAgICAncGFnZUxpbWl0cy5yZWNvcmRzJyA9PiAyNSwKCk5COiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyBpcyBhbHNvIGFwcGxpZWQgd2hlbiB0aGVyZSBpcyBubyBwYWdlIG51bWJlciBzcGVjaWZpZWQgaW4gdGhlIHJlcXVlc3QuCgojIyMgU2VhcmNoIGFsbCB0ZXh0IGZpZWxkcwoKWW91IG1heSB1c2UgdGhlICJ0ZXh0U2VhcmNoIiBtaWRkbGV3YXJlIHRvIHNpbXBsaWZ5ICh3aWxkY2FyZCkgdGV4dCBzZWFyY2hlcyB3aGVuIGxpc3RpbmcgcmVjb3Jkcy4gCkl0IGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhICJzZWFyY2giIHBhcmFtZXRlciB1c2luZzoKCiAgICBHRVQgL3JlY29yZHMvcG9zdHM/c2VhcmNoPUhlbGxvCgpJdCB3aWxsIHJldHVybiBhbGwgcmVjb3JkcyBmcm9tICJwb3N0cyIgdGhhdCBjb250YWluICJIZWxsbyIgaW4gb25lIG9mIHRoZWlyIHRleHQgKHR5cGVkKSBmaWVsZHM6CgogICAgewogICAgICAgICJyZWNvcmRzIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IDEsCiAgICAgICAgICAgICAgICAidGl0bGUiOiAiSGVsbG8gd29ybGQhIiwKICAgICAgICAgICAgICAgICJjb250ZW50IjogIldlbGNvbWUgdG8gdGhlIGZpcnN0IHBvc3QuIiwKICAgICAgICAgICAgICAgICJjcmVhdGVkIjogIjIwMTgtMDMtMDVUMjA6MTI6NTZaIgogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfQoKVGhlIGV4YW1wbGUgc2VhcmNoZXMgdGhlIGZpZWxkcyAidGl0bGUiIG9yICJjb250ZW50IiBmb3IgdGhlIHN1YnN0cmluZyAiSGVsbG8iLgoKIyMjIEN1c3RvbWl6YXRpb24gaGFuZGxlcnMKCllvdSBtYXkgdXNlIHRoZSAiY3VzdG9taXphdGlvbiIgbWlkZGxld2FyZSB0byBtb2RpZnkgcmVxdWVzdCBhbmQgcmVzcG9uc2UgYW5kIGltcGxlbWVudCBhbnkgb3RoZXIgZnVuY3Rpb25hbGl0eS4KCiAgICAnY3VzdG9taXphdGlvbi5iZWZvcmVIYW5kbGVyJyA9PiBmdW5jdGlvbiAoJG9wZXJhdGlvbiwgJHRhYmxlTmFtZSwgJHJlcXVlc3QsICRlbnZpcm9ubWVudCkgewogICAgICAgICRlbnZpcm9ubWVudC0+c3RhcnQgPSBtaWNyb3RpbWUodHJ1ZSk7CiAgICB9LAogICAgJ2N1c3RvbWl6YXRpb24uYWZ0ZXJIYW5kbGVyJyA9PiBmdW5jdGlvbiAoJG9wZXJhdGlvbiwgJHRhYmxlTmFtZSwgJHJlc3BvbnNlLCAkZW52aXJvbm1lbnQpIHsKICAgICAgICByZXR1cm4gJHJlc3BvbnNlLT53aXRoSGVhZGVyKCdYLVRpbWUtVGFrZW4nLCBtaWNyb3RpbWUodHJ1ZSkgLSAkZW52aXJvbm1lbnQtPnN0YXJ0KTsKICAgIH0sCgpUaGUgYWJvdmUgZXhhbXBsZSB3aWxsIGFkZCBhIGhlYWRlciAiWC1UaW1lLVRha2VuIiB3aXRoIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0aGUgQVBJIGNhbGwgaGFzIHRha2VuLgoKIyMjIEpTT04gZW5jb2Rpbmcgb3B0aW9ucwoKWW91IGNhbiBjaGFuZ2UgdGhlIHdheSB0aGUgSlNPTiBpcyBlbmNvZGVkIGJ5IHNldHRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyICJqc29uT3B0aW9ucyIuCgogICAgJ2pzb25PcHRpb25zJyA9PiBKU09OX1BSRVRUWV9QUklOVCB8IEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTLAoKVGhlIGFib3ZlIGV4YW1wbGUgd2lsbCBzZXQgSlNPTiBvcHRpb25zIHRvIDEyOCsyNTYrNjQgPSA0NDgsIGFzIHBlciB0aGUgbGlzdCBvZiBvcHRpb25zIGJlbG93OgoKICAgIEpTT05fSEVYX1RBRyAoMSkKICAgICAgICBBbGwgPCBhbmQgPiBhcmUgY29udmVydGVkIHRvIFx1MDAzQyBhbmQgXHUwMDNFLiAKICAgIEpTT05fSEVYX0FNUCAoMikKICAgICAgICBBbGwgJiBhcmUgY29udmVydGVkIHRvIFx1MDAyNi4gCiAgICBKU09OX0hFWF9BUE9TICg0KQogICAgICAgIEFsbCAnIGFyZSBjb252ZXJ0ZWQgdG8gXHUwMDI3LiAKICAgIEpTT05fSEVYX1FVT1QgKDgpCiAgICAgICAgQWxsICIgYXJlIGNvbnZlcnRlZCB0byBcdTAwMjIuIAogICAgSlNPTl9GT1JDRV9PQkpFQ1QgKDE2KQogICAgICAgIE91dHB1dHMgYW4gb2JqZWN0IHJhdGhlciB0aGFuIGFuIGFycmF5IHdoZW4gYSBub24tYXNzb2NpYXRpdmUgYXJyYXkgaXMgdXNlZC4gCiAgICAgICAgRXNwZWNpYWxseSB1c2VmdWwgd2hlbiB0aGUgcmVjaXBpZW50IG9mIHRoZSBvdXRwdXQgaXMgZXhwZWN0aW5nIGFuIG9iamVjdCBhbmQgCiAgICAgICAgdGhlIGFycmF5IGlzIGVtcHR5LiAKICAgIEpTT05fTlVNRVJJQ19DSEVDSyAoMzIpCiAgICAgICAgRW5jb2RlcyBudW1lcmljIHN0cmluZ3MgYXMgbnVtYmVycy4gCiAgICBKU09OX1VORVNDQVBFRF9TTEFTSEVTICg2NCkKICAgICAgICBEb24ndCBlc2NhcGUgLy4gCiAgICBKU09OX1BSRVRUWV9QUklOVCAoMTI4KQogICAgICAgIFVzZSB3aGl0ZXNwYWNlIGluIHJldHVybmVkIGRhdGEgdG8gZm9ybWF0IGl0LiAKICAgIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgKDI1NikKICAgICAgICBFbmNvZGUgbXVsdGlieXRlIFVuaWNvZGUgY2hhcmFjdGVycyBsaXRlcmFsbHkgKGRlZmF1bHQgaXMgdG8gZXNjYXBlIGFzIFx1WFhYWCkuIAogICAgSlNPTl9QQVJUSUFMX09VVFBVVF9PTl9FUlJPUiAoNTEyKQogICAgICAgIFN1YnN0aXR1dGUgc29tZSB1bmVuY29kYWJsZSB2YWx1ZXMgaW5zdGVhZCBvZiBmYWlsaW5nLiAKICAgIEpTT05fUFJFU0VSVkVfWkVST19GUkFDVElPTiAoMTAyNCkKICAgICAgICBFbnN1cmVzIHRoYXQgZmxvYXQgdmFsdWVzIGFyZSBhbHdheXMgZW5jb2RlZCBhcyBhIGZsb2F0IHZhbHVlLiAKICAgIEpTT05fVU5FU0NBUEVEX0xJTkVfVEVSTUlOQVRPUlMgKDIwNDgpCiAgICAgICAgVGhlIGxpbmUgdGVybWluYXRvcnMgYXJlIGtlcHQgdW5lc2NhcGVkIHdoZW4gSlNPTl9VTkVTQ0FQRURfVU5JQ09ERSBpcyBzdXBwbGllZC4gCiAgICAgICAgSXQgdXNlcyB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgaXQgd2FzIGJlZm9yZSBQSFAgNy4xIHdpdGhvdXQgdGhpcyBjb25zdGFudC4gCiAgICAgICAgQXZhaWxhYmxlIGFzIG9mIFBIUCA3LjEuMC4gCgpTb3VyY2U6IFtQSFAncyBKU09OIGNvbnN0YW50cyBkb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9qc29uLmNvbnN0YW50cy5waHApIAoKIyMjIEpTT04gbWlkZGxld2FyZQoKWW91IG1heSB1c2UgdGhlICJqc29uIiBtaWRkbGV3YXJlIHRvIHJlYWQvd3JpdGUgSlNPTiBzdHJpbmdzIGFzIEpTT04gb2JqZWN0cyBhbmQgYXJyYXlzLgoKSlNPTiBzdHJpbmdzIGFyZSBhdXRvbWF0aWNhbGx5IGRldGVjdGVkIHdoZW4gdGhlICJqc29uIiBtaWRkbGV3YXJlIGlzIGVuYWJsZWQuCgpZb3UgbWF5IGxpbWl0IHRoZSBzY2FubmluZyBvZiBieSBzcGVjaWZ5aW5nIHNwZWNpZmljIHRhYmxlIGFuZC9vciBmaWVsZCBuYW1lczogCgogICAgJ2pzb24udGFibGVzJyA9PiAncHJvZHVjdHMnLAogICAgJ2pzb24uY29sdW1ucycgPT4gJ3Byb3BlcnRpZXMnLAoKVGhpcyB3aWxsIGNoYW5nZSB0aGUgb3V0cHV0IG9mOgoKICAgIEdFVCAvcmVjb3Jkcy9wcm9kdWN0cy8xCgpXaXRob3V0ICJqc29uIiBtaWRkbGV3YXJlIHRoZSBvdXRwdXQgd2lsbCBiZToKCiAgICB7CiAgICAgICAgImlkIjogMSwKICAgICAgICAibmFtZSI6ICJDYWxjdWxhdG9yIiwKICAgICAgICAicHJpY2UiOiAiMjMuMDEiLAogICAgICAgICJwcm9wZXJ0aWVzIjogIntcImRlcHRoXCI6ZmFsc2UsXCJtb2RlbFwiOlwiVFJYLTEyMFwiLFwid2lkdGhcIjoxMDAsXCJoZWlnaHRcIjpudWxsfSIsCiAgICB9CgpXaXRoICJqc29uIiBtaWRkbGV3YXJlIHRoZSBvdXRwdXQgd2lsbCBiZToKCiAgICB7CiAgICAgICAgImlkIjogMSwKICAgICAgICAibmFtZSI6ICJDYWxjdWxhdG9yIiwKICAgICAgICAicHJpY2UiOiAiMjMuMDEiLAogICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiZGVwdGgiOiBmYWxzZSwKICAgICAgICAgICAgIm1vZGVsIjogIlRSWC0xMjAiLAogICAgICAgICAgICAid2lkdGgiOiAxMDAsCiAgICAgICAgICAgICJoZWlnaHQiOiBudWxsCiAgICAgICAgfSwKICAgIH0KClRoaXMgYWxzbyBhcHBsaWVzIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIEpTT04gc3RyaW5nIGZpZWxkcyAoYWxzbyB3aGVuIHVzaW5nIGJhdGNoIG9wZXJhdGlvbnMpLgoKTm90ZSB0aGF0IEpTT04gc3RyaW5nIGZpZWxkcyBjYW5ub3QgYmUgcGFydGlhbGx5IHVwZGF0ZWQgYW5kIHRoYXQgdGhpcyBtaWRkbGV3YXJlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCllvdSBjYW4gZW5hYmxlIHRoZSAianNvbiIgbWlkZGxld2FyZSB1c2luZyB0aGUgIm1pZGRsZXdhcmVzIiBjb25maWd1cmF0aW9uIHNldHRpbmcuCgojIyMgWE1MIG1pZGRsZXdhcmUKCllvdSBtYXkgdXNlIHRoZSAieG1sIiBtaWRkbGV3YXJlIHRvIHRyYW5zbGF0ZSBpbnB1dCBhbmQgb3V0cHV0IGZyb20gSlNPTiB0byBYTUwuIFRoaXMgcmVxdWVzdDoKCiAgICBHRVQgL3JlY29yZHMvcG9zdHMvMQoKT3V0cHV0cyAod2hlbiAicHJldHR5IHByaW50ZWQiKToKCiAgICB7CiAgICAgICAgImlkIjogMSwKICAgICAgICAidXNlcl9pZCI6IDEsCiAgICAgICAgImNhdGVnb3J5X2lkIjogMSwKICAgICAgICAiY29udGVudCI6ICJibG9nIHN0YXJ0ZWQiCiAgICB9CgpXaGlsZSAobm90ZSB0aGUgImZvcm1hdCIgcXVlcnkgcGFyYW1ldGVyKToKCiAgICBHRVQgL3JlY29yZHMvcG9zdHMvMT9mb3JtYXQ9eG1sCgpPdXRwdXRzOgoKICAgIDxyb290PgogICAgICAgIDxpZD4xPC9pZD4KICAgICAgICA8dXNlcl9pZD4xPC91c2VyX2lkPgogICAgICAgIDxjYXRlZ29yeV9pZD4xPC9jYXRlZ29yeV9pZD4KICAgICAgICA8Y29udGVudD5ibG9nIHN0YXJ0ZWQ8L2NvbnRlbnQ+CiAgICA8L3Jvb3Q+CgpUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgbXVzdCBiZSBlbmFibGVkIHVzaW5nIHRoZSAibWlkZGxld2FyZXMiIGNvbmZpZ3VyYXRpb24gc2V0dGluZy4KCiMjIyBGaWxlIHVwbG9hZHMKCkZpbGUgdXBsb2FkcyBhcmUgc3VwcG9ydGVkIHRocm91Z2ggdGhlIFtGaWxlUmVhZGVyIEFQSV0oaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1maWxlcmVhZGVyKSwgY2hlY2sgb3V0IHRoZSBbZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL21ldmRzY2hlZS9waHAtY3J1ZC1hcGkvYmxvYi9tYXN0ZXIvZXhhbXBsZXMvY2xpZW50cy91cGxvYWQvdmFuaWxsYS5odG1sKS4KCiMjIE9wZW5BUEkgc3BlY2lmaWNhdGlvbgoKT24gdGhlICIvb3BlbmFwaSIgZW5kLXBvaW50IHRoZSBPcGVuQVBJIDMuMCAoZm9ybWVybHkgY2FsbGVkICJTd2FnZ2VyIikgc3BlY2lmaWNhdGlvbiBpcyBzZXJ2ZWQuIApJdCBpcyBhIG1hY2hpbmUgcmVhZGFibGUgaW5zdGFudCBkb2N1bWVudGF0aW9uIG9mIHlvdXIgQVBJLiBUbyBsZWFybiBtb3JlLCBjaGVjayBvdXQgdGhlc2UgbGlua3M6CgotIFtTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pIGNhbiBiZSB1c2VkIHRvIHZpZXcgYW5kIGRlYnVnIHRoZSBnZW5lcmF0ZWQgc3BlY2lmaWNhdGlvbi4KLSBbT3BlbkFQSSBzcGVjaWZpY2F0aW9uXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8pIGlzIGEgbWFudWFsIGZvciBjcmVhdGluZyBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24uCi0gW1N3YWdnZXIgUGV0c3RvcmVdKGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby8pIGlzIGFuIGV4YW1wbGUgZG9jdW1lbnRhdGlvbiB0aGF0IGlzIGdlbmVyYXRlZCB1c2luZyBPcGVuQVBJLgoKIyMgQ2FjaGUKClRoZXJlIGFyZSA0IGNhY2hlIGVuZ2luZXMgdGhhdCBjYW4gYmUgY29uZmlndXJlZCBieSB0aGUgImNhY2hlVHlwZSIgY29uZmlnIHBhcmFtZXRlcjoKCi0gVGVtcEZpbGUgKGRlZmF1bHQpCi0gUmVkaXMKLSBNZW1jYWNoZQotIE1lbWNhY2hlZAoKWW91IGNhbiBpbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBsYXN0IHRocmVlIGVuZ2luZXMgYnkgcnVubmluZzoKCiAgICBzdWRvIGFwdCBpbnN0YWxsIHBocC1yZWRpcyByZWRpcwogICAgc3VkbyBhcHQgaW5zdGFsbCBwaHAtbWVtY2FjaGUgbWVtY2FjaGVkCiAgICBzdWRvIGFwdCBpbnN0YWxsIHBocC1tZW1jYWNoZWQgbWVtY2FjaGVkCgpUaGUgZGVmYXVsdCBlbmdpbmUgaGFzIG5vIGRlcGVuZGVuY2llcyBhbmQgd2lsbCB1c2UgdGVtcG9yYXJ5IGZpbGVzIGluIHRoZSBzeXN0ZW0gInRlbXAiIHBhdGguCgpZb3UgbWF5IHVzZSB0aGUgImNhY2hlUGF0aCIgY29uZmlnIHBhcmFtZXRlciB0byBzcGVjaWZ5IHRoZSBmaWxlIHN5c3RlbSBwYXRoIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIG9yCmluIGNhc2UgdGhhdCB5b3UgdXNlIGEgbm9uLWRlZmF1bHQgImNhY2hlVHlwZSIgdGhlIGhvc3RuYW1lIChvcHRpb25hbGx5IHdpdGggcG9ydCkgb2YgdGhlIGNhY2hlIHNlcnZlci4KCiMjIFR5cGVzCgpUaGVzZSBhcmUgdGhlIHN1cHBvcnRlZCB0eXBlcyB3aXRoIHRoZWlyIGxlbmd0aCwgY2F0ZWdvcnksIEpTT04gdHlwZSBhbmQgZm9ybWF0OgoKfCB0eXBlICAgICAgIHwgbGVuZ3RoIHwgY2F0ZWdvcnkgIHwgSlNPTiB0eXBlIHwgZm9ybWF0ICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLSB8IC0tLS0tLSB8IC0tLS0tLS0tLSB8IC0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IHZhcmNoYXIgICAgfCAyNTUgICAgfCBjaGFyYWN0ZXIgfCBzdHJpbmcgICAgfCAgICAgICAgICAgICAgICAgICAgIHwKfCBjbG9iICAgICAgIHwgICAgICAgIHwgY2hhcmFjdGVyIHwgc3RyaW5nICAgIHwgICAgICAgICAgICAgICAgICAgICB8CnwgYm9vbGVhbiAgICB8ICAgICAgICB8IGJvb2xlYW4gICB8IGJvb2xlYW4gICB8ICAgICAgICAgICAgICAgICAgICAgfAp8IGludGVnZXIgICAgfCAgICAgICAgfCBpbnRlZ2VyICAgfCBudW1iZXIgICAgfCAgICAgICAgICAgICAgICAgICAgIHwKfCBiaWdpbnQgICAgIHwgICAgICAgIHwgaW50ZWdlciAgIHwgbnVtYmVyICAgIHwgICAgICAgICAgICAgICAgICAgICB8CnwgZmxvYXQgICAgICB8ICAgICAgICB8IGZsb2F0ICAgICB8IG51bWJlciAgICB8ICAgICAgICAgICAgICAgICAgICAgfAp8IGRvdWJsZSAgICAgfCAgICAgICAgfCBmbG9hdCAgICAgfCBudW1iZXIgICAgfCAgICAgICAgICAgICAgICAgICAgIHwKfCBkZWNpbWFsICAgIHwgMTksNCAgIHwgZGVjaW1hbCAgIHwgc3RyaW5nICAgIHwgICAgICAgICAgICAgICAgICAgICB8CnwgZGF0ZSAgICAgICB8ICAgICAgICB8IGRhdGUvdGltZSB8IHN0cmluZyAgICB8IHl5eXktbW0tZGQgICAgICAgICAgfCAKfCB0aW1lICAgICAgIHwgICAgICAgIHwgZGF0ZS90aW1lIHwgc3RyaW5nICAgIHwgaGg6bW06c3MgICAgICAgICAgICB8CnwgdGltZXN0YW1wICB8ICAgICAgICB8IGRhdGUvdGltZSB8IHN0cmluZyAgICB8IHl5eXktbW0tZGQgaGg6bW06c3MgfAp8IHZhcmJpbmFyeSAgfCAyNTUgICAgfCBiaW5hcnkgICAgfCBzdHJpbmcgICAgfCBiYXNlNjQgZW5jb2RlZCAgICAgIHwKfCBibG9iICAgICAgIHwgICAgICAgIHwgYmluYXJ5ICAgIHwgc3RyaW5nICAgIHwgYmFzZTY0IGVuY29kZWQgICAgICB8CnwgZ2VvbWV0cnkgICB8ICAgICAgICB8IG90aGVyICAgICB8IHN0cmluZyAgICB8IHdlbGwta25vd24gdGV4dCAgICAgfAoKTm90ZSB0aGF0IGdlb21ldHJ5IGlzIGEgbm9uLWpkYmMgdHlwZSBhbmQgdGh1cyBoYXMgbGltaXRlZCBzdXBwb3J0LgoKIyMgRGF0YSB0eXBlcyBpbiBKYXZhU2NyaXB0CgpKYXZhc2NyaXB0IGFuZCBKYXZhc2NyaXB0IG9iamVjdCBub3RhdGlvbiAoSlNPTikgYXJlIG5vdCB2ZXJ5IHdlbGwgc3VpdGVkIGZvciByZWFkaW5nIGRhdGFiYXNlIHJlY29yZHMuIERlY2ltYWwsIGRhdGUvdGltZSwgYmluYXJ5IGFuZCBnZW9tZXRyeSB0eXBlcyBtdXN0IGJlIHJlcHJlc2VudGVkIGFzIHN0cmluZ3MgaW4gSlNPTiAoYmluYXJ5IGlzIGJhc2U2NCBlbmNvZGVkLCBnZW9tZXRyaWVzIGFyZSBpbiBXS1QgZm9ybWF0KS4gQmVsb3cgYXJlIHR3byBtb3JlIHNlcmlvdXMgaXNzdWVzIGRlc2NyaWJlZC4KCiMjIyA2NCBiaXQgaW50ZWdlcnMKCkphdmFTY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCA2NCBiaXQgaW50ZWdlcnMuIEFsbCBudW1iZXJzIGFyZSBzdG9yZWQgYXMgNjQgYml0IGZsb2F0aW5nIHBvaW50IHZhbHVlcy4gVGhlIG1hbnRpc3NhIG9mIGEgNjQgYml0IGZsb2F0aW5nIHBvaW50IG51bWJlciBpcyBvbmx5IDUzIGJpdCBhbmQgdGhhdCBpcyB3aHkgYWxsIGludGVnZXIgbnVtYmVycyBiaWdnZXIgdGhhbiA1MyBiaXQgbWF5IGNhdXNlIHByb2JsZW1zIGluIEphdmFTY3JpcHQuCgojIyMgSW5mIGFuZCBOYU4gZmxvYXRzCgpUaGUgdmFsaWQgZmxvYXRpbmcgcG9pbnQgdmFsdWVzICdJbmZpbml0ZScgKGNhbGN1bGF0ZWQgd2l0aCAnMS8wJykgYW5kICdOb3QgYSBOdW1iZXInIChjYWxjdWxhdGVkIHdpdGggJzAvMCcpIGNhbm5vdCBiZSBleHByZXNzZWQgaW4gSlNPTiwgYXMgdGhleSBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgW0pTT04gc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cuanNvbi5vcmcpLiBXaGVuIHRoZXNlIHZhbHVlcyBhcmUgc3RvcmVkIGluIGEgZGF0YWJhc2UgdGhlbiB5b3UgY2Fubm90IHJlYWQgdGhlbSBhcyB0aGlzIHNjcmlwdCBvdXRwdXRzIGRhdGFiYXNlIHJlY29yZHMgYXMgSlNPTi4KCiMjIEVycm9ycwoKVGhlIGZvbGxvd2luZyBlcnJvcnMgbWF5IGJlIHJlcG9ydGVkOgoKfCBFcnJvciB8IEhUVFAgcmVzcG9uc2UgY29kZSAgICAgICAgfCBNZXNzYWdlCnwgLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0KfCAxMDAwICB8IDQwNCBOb3QgZm91bmQgICAgICAgICAgICAgfCBSb3V0ZSBub3QgZm91bmQgCnwgMTAwMSAgfCA0MDQgTm90IGZvdW5kICAgICAgICAgICAgIHwgVGFibGUgbm90IGZvdW5kIAp8IDEwMDIgIHwgNDIyIFVucHJvY2Vzc2FibGUgZW50aXR5ICB8IEFyZ3VtZW50IGNvdW50IG1pc21hdGNoIAp8IDEwMDMgIHwgNDA0IE5vdCBmb3VuZCAgICAgICAgICAgICB8IFJlY29yZCBub3QgZm91bmQgCnwgMTAwNCAgfCA0MDMgRm9yYmlkZGVuICAgICAgICAgICAgIHwgT3JpZ2luIGlzIGZvcmJpZGRlbiAKfCAxMDA1ICB8IDQwNCBOb3QgZm91bmQgICAgICAgICAgICAgfCBDb2x1bW4gbm90IGZvdW5kIAp8IDEwMDYgIHwgNDA5IENvbmZsaWN0ICAgICAgICAgICAgICB8IFRhYmxlIGFscmVhZHkgZXhpc3RzIAp8IDEwMDcgIHwgNDA5IENvbmZsaWN0ICAgICAgICAgICAgICB8IENvbHVtbiBhbHJlYWR5IGV4aXN0cyAKfCAxMDA4ICB8IDQyMiBVbnByb2Nlc3NhYmxlIGVudGl0eSAgfCBDYW5ub3QgcmVhZCBIVFRQIG1lc3NhZ2UgCnwgMTAwOSAgfCA0MDkgQ29uZmxpY3QgICAgICAgICAgICAgIHwgRHVwbGljYXRlIGtleSBleGNlcHRpb24gCnwgMTAxMCAgfCA0MDkgQ29uZmxpY3QgICAgICAgICAgICAgIHwgRGF0YSBpbnRlZ3JpdHkgdmlvbGF0aW9uIAp8IDEwMTEgIHwgNDAxIFVuYXV0aG9yaXplZCAgICAgICAgICB8IEF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkIAp8IDEwMTIgIHwgNDAzIEZvcmJpZGRlbiAgICAgICAgICAgICB8IEF1dGhlbnRpY2F0aW9uIGZhaWxlZCAKfCAxMDEzICB8IDQyMiBVbnByb2Nlc3NhYmxlIGVudGl0eSAgfCBJbnB1dCB2YWxpZGF0aW9uIGZhaWxlZCAKfCAxMDE0ICB8IDQwMyBGb3JiaWRkZW4gICAgICAgICAgICAgfCBPcGVyYXRpb24gZm9yYmlkZGVuIAp8IDEwMTUgIHwgNDA1IE1ldGhvZCBub3QgYWxsb3dlZCAgICB8IE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIAp8IDEwMTYgIHwgNDAzIEZvcmJpZGRlbiAgICAgICAgICAgICB8IFRlbXBvcmFyeSBvciBwZXJtYW5lbnRseSBibG9ja2VkIAp8IDEwMTcgIHwgNDAzIEZvcmJpZGRlbiAgICAgICAgICAgICB8IEJhZCBvciBtaXNzaW5nIFhTUkYgdG9rZW4gCnwgMTAxOCAgfCA0MDMgRm9yYmlkZGVuICAgICAgICAgICAgIHwgT25seSBBSkFYIHJlcXVlc3RzIGFsbG93ZWQgCnwgMTAxOSAgfCA0MDMgRm9yYmlkZGVuICAgICAgICAgICAgIHwgUGFnaW5hdGlvbiBGb3JiaWRkZW4gCnwgMTAyMCAgfCA0MDkgQ29uZmxpY3QgICAgICAgICAgICAgIHwgVXNlciBhbHJlYWR5IGV4aXN0cwp8IDEwMjEgIHwgNDIyIFVucHJvY2Vzc2FibGUgZW50aXR5ICB8IFBhc3N3b3JkIHRvbyBzaG9ydAp8IDEwMjIgIHwgNDIyIFVucHJvY2Vzc2FibGUgZW50aXR5ICB8IFVzZXJuYW1lIGlzIGVtcHR5CnwgOTk5OSAgfCA1MDAgSW50ZXJuYWwgc2VydmVyIGVycm9yIHwgVW5rbm93biBlcnJvciAKClRoZSBmb2xsb3dpbmcgSlNPTiBzdHJ1Y3R1cmUgaXMgdXNlZDoKCiAgICB7CiAgICAgICAgImNvZGUiOjEwMDIsCiAgICAgICAgIm1lc3NhZ2UiOiJBcmd1bWVudCBjb3VudCBtaXNtYXRjaCBpbiAnMSciCiAgICB9CgpOQjogQW55IG5vbi1lcnJvciByZXNwb25zZSB3aWxsIGhhdmUgc3RhdHVzOiAyMDAgT0sKCiMjIFN0YXR1cwoKVG8gY29ubmVjdCB0byB5b3VyIG1vbml0b3JpbmcgdGhlcmUgaXMgYSAncGluZycgZW5kcG9pbnQ6CgogICAgR0VUIC9zdGF0dXMvcGluZwoKQW5kIHRoaXMgc2hvdWxkIHJldHVybiBzdGF0dXMgMjAwIGFuZCBhcyBkYXRhOgoKICAgIHsKICAgICAgICAiZGIiOiA0MiwKICAgICAgICAiY2FjaGUiOiA5CiAgICB9CgpUaGVzZSBjYW4gYmUgdXNlZCB0byBtZWFzdXJlIHRoZSB0aW1lIChpbiBtaWNyb3NlY29uZHMpIHRvIGNvbm5lY3QgYW5kIHJlYWQgZGF0YSBmcm9tIHRoZSBkYXRhYmFzZSBhbmQgdGhlIGNhY2hlLgoKIyMgQ3VzdG9tIGNvbnRyb2xsZXIKCllvdSBjYW4gYWRkIHlvdXIgb3duIGN1c3RvbSBSRVNUIEFQSSBlbmRwb2ludHMgYnkgd3JpdGluZyB5b3VyIG93biBjdXN0b20gY29udHJvbGxlciBjbGFzcy4gClRoZSBjbGFzcyBtdXN0IHByb3ZpZGUgYSBjb25zdHJ1Y3RvciB0aGF0IGFjY2VwdHMgZml2ZSBwYXJhbWV0ZXJzLiBXaXRoIHRoZXNlIHBhcmFtZXRlcnMgeW91IGNhbiByZWdpc3Rlcgp5b3VyIG93biBlbmRwb2ludCB0byB0aGUgZXhpc3Rpbmcgcm91dGVyLiBUaGlzIGVuZHBvaW50IG1heSB1c2UgdGhlIGRhdGFiYXNlIGFuZC9vciB0aGUgcmVmbGVjdGlvbiBjbGFzcwpvZiB0aGUgZGF0YWJhc2UuCgpIZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSBjdXN0b20gY29udHJvbGxlciBjbGFzczoKCmBgYAp1c2UgUHNyXEh0dHBcTWVzc2FnZVxSZXNwb25zZUludGVyZmFjZTsKdXNlIFBzclxIdHRwXE1lc3NhZ2VcU2VydmVyUmVxdWVzdEludGVyZmFjZTsKdXNlIFRxZGV2XFBocENydWRBcGlcQ2FjaGVcQ2FjaGU7CnVzZSBUcWRldlxQaHBDcnVkQXBpXENvbHVtblxSZWZsZWN0aW9uU2VydmljZTsKdXNlIFRxZGV2XFBocENydWRBcGlcQ29udHJvbGxlclxSZXNwb25kZXI7CnVzZSBUcWRldlxQaHBDcnVkQXBpXERhdGFiYXNlXEdlbmVyaWNEQjsKdXNlIFRxZGV2XFBocENydWRBcGlcTWlkZGxld2FyZVxSb3V0ZXJcUm91dGVyOwoKY2xhc3MgTXlIZWxsb0NvbnRyb2xsZXIgewoKICAgIHByaXZhdGUgJHJlc3BvbmRlcjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoUm91dGVyICRyb3V0ZXIsIFJlc3BvbmRlciAkcmVzcG9uZGVyLCBHZW5lcmljREIgJGRiLCBSZWZsZWN0aW9uU2VydmljZSAkcmVmbGVjdGlvbiwgQ2FjaGUgJGNhY2hlKQogICAgewogICAgICAgICRyb3V0ZXItPnJlZ2lzdGVyKCdHRVQnLCAnL2hlbGxvJywgYXJyYXkoJHRoaXMsICdnZXRIZWxsbycpKTsKICAgICAgICAkdGhpcy0+cmVzcG9uZGVyID0gJHJlc3BvbmRlcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SGVsbG8oU2VydmVyUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCk6IFJlc3BvbnNlSW50ZXJmYWNlCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yZXNwb25kZXItPnN1Y2Nlc3MoWydtZXNzYWdlJyA9PiAiSGVsbG8gV29ybGQhIl0pOwogICAgfQp9CmBgYAoKQW5kIHRoZW4geW91IG1heSByZWdpc3RlciB5b3VyIGN1c3RvbSBjb250cm9sbGVyIGNsYXNzIGluIHRoZSBjb25maWcgb2JqZWN0IGxpa2UgdGhpczoKCmBgYAokY29uZmlnID0gbmV3IENvbmZpZyhbCiAgICAuLi4KICAgICdjdXN0b21Db250cm9sbGVycycgPT4gJ015SGVsbG9Db250cm9sbGVyJywKICAgIC4uLgpdKTsKYGBgCgpUaGUgYGN1c3RvbUNvbnRyb2xsZXJzYCBjb25maWcgc3VwcG9ydHMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjdXN0b20gY29udHJvbGxlciBjbGFzc2VzLgoKIyMgVGVzdHMKCkkgYW0gdGVzdGluZyBtYWlubHkgb24gVWJ1bnR1IGFuZCBJIGhhdmUgdGhlIGZvbGxvd2luZyB0ZXN0IHNldHVwczoKCiAgLSAoRG9ja2VyKSBEZWJpYW4gMTAgd2l0aCBQSFAgNy4zLCBNYXJpYURCIDEwLjMsIFBvc3RncmVTUUwgMTEuNCAoUG9zdEdJUyAyLjUpIGFuZCBTUUxpdGUgMy4yNwogIC0gKERvY2tlcikgRGViaWFuIDExIHdpdGggUEhQIDcuNCwgTWFyaWFEQiAxMC41LCBQb3N0Z3JlU1FMIDEzLjQgKFBvc3RHSVMgMy4xKSBhbmQgU1FMaXRlIDMuMzQKICAtIChEb2NrZXIpIERlYmlhbiAxMiB3aXRoIFBIUCA4LjIsIE1hcmlhREIgMTAuMTEsIFBvc3RncmVTUUwgMTUuMyAoUG9zdEdJUyAzLjMpIGFuZCBTUUxpdGUgMy40MAogIC0gKERvY2tlcikgUm9ja3lMaW51eCA4IHdpdGggUEhQIDcuMiwgTWFyaWFEQiAxMC4zIGFuZCBTUUxpdGUgMy4yNgogIC0gKERvY2tlcikgUm9ja3lMaW51eCA5IHdpdGggUEhQIDguMCwgTWFyaWFEQiAxMC41IGFuZCBTUUxpdGUgMy4zNAogIC0gKERvY2tlcikgVWJ1bnR1IDE4LjA0IHdpdGggUEhQIDcuMiwgTXlTUUwgNS43LCBQb3N0Z3JlU1FMIDEwLjQgKFBvc3RHSVMgMi40KSBhbmQgU1FMaXRlIDMuMjIKICAtIChEb2NrZXIpIFVidW50dSAyMC4wNCB3aXRoIFBIUCA3LjQsIE15U1FMIDguMCwgUG9zdGdyZVNRTCAxMi4xNSAoUG9zdEdJUyAzLjApIGFuZCBTUUxpdGUgMy4zMSBhbmQgU1FMIFNlcnZlciAyMDE5CiAgLSAoRG9ja2VyKSBVYnVudHUgMjIuMDQgd2l0aCBQSFAgOC4xLCBNeVNRTCA4LjAsIFBvc3RncmVTUUwgMTQuMiAoUG9zdEdJUyAzLjIpIGFuZCBTUUxpdGUgMy4zNyAKICAtIChEb2NrZXIpIFVidW50dSAyNC4wNCB3aXRoIFBIUCA4LjMsIE15U1FMIDguMCwgUG9zdGdyZVNRTCAxNi4yIChQb3N0R0lTIDMuNCkgYW5kIFNRTGl0ZSAzLjQ1CgpUaGlzIGNvdmVycyBub3QgYWxsIGVudmlyb25tZW50cyAoeWV0KSwgc28gcGxlYXNlIG5vdGlmeSBtZSBvZiBmYWlsaW5nIHRlc3RzIGFuZCByZXBvcnQgeW91ciBlbnZpcm9ubWVudC4gCkkgd2lsbCB0cnkgdG8gY292ZXIgbW9zdCByZWxldmFudCBzZXR1cHMgaW4gdGhlICJkb2NrZXIiIGZvbGRlciBvZiB0aGUgcHJvamVjdC4KCiMjIyBSdW5uaW5nCgpUbyBydW4gdGhlIGZ1bmN0aW9uYWwgdGVzdHMgbG9jYWxseSB5b3UgbWF5IHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgoKICAgIHBocCBidWlsZC5waHAKICAgIHBocCB0ZXN0LnBocAoKVGhpcyBydW5zIHRoZSBmdW5jdGlvbmFsIHRlc3RzIGZyb20gdGhlICJ0ZXN0cyIgZGlyZWN0b3J5LiBJdCB1c2VzIHRoZSBkYXRhYmFzZSBkdW1wcyAoZml4dHVyZXMpIGFuZApkYXRhYmFzZSBjb25maWd1cmF0aW9uIChjb25maWcpIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgc3ViZGlyZWN0b3JpZXMuCgojIyBQcmV0dHkgVVJMCgpZb3UgbWF5ICJyZXdyaXRlIiB0aGUgVVJMIHRvIHJlbW92ZSB0aGUgImFwaS5waHAiIGZyb20gdGhlIFVSTC4KCiMjIyBBcGFjaGUgY29uZmlnIGV4YW1wbGUKCkVuYWJsZSBtb2RfcmV3cml0ZSBhbmQgYWRkIHRoZSBmb2xsb3dpbmcgdG8geW91ciAiLmh0YWNjZXNzIiBmaWxlOgoKYGBgClJld3JpdGVFbmdpbmUgT24KUmV3cml0ZUNvbmQgJXtSRVFVRVNUX0ZJTEVOQU1FfSAhLWQKUmV3cml0ZUNvbmQgJXtSRVFVRVNUX0ZJTEVOQU1FfSAhLWYKUmV3cml0ZVJ1bGUgXiguKikkIGFwaS5waHAvJDEgW0wsUVNBXQpgYGAKClRoZSAiLmh0YWNjZXNzIiBmaWxlIG5lZWRzIHRvIGdvIGluIHRoZSBzYW1lIGZvbGRlciBhcyAiYXBpLnBocCIuCgojIyMgTmdpbnggY29uZmlnIGV4YW1wbGUKClVzZSB0aGUgZm9sbG93aW5nIGNvbmZpZyB0byBzZXJ2ZSB0aGUgQVBJIHVuZGVyIE5naW54IGFuZCBQSFAtRlBNOgoKYGBgCnNlcnZlciB7CiAgICBsaXN0ZW4gODAgZGVmYXVsdF9zZXJ2ZXI7CiAgICBsaXN0ZW4gWzo6XTo4MCBkZWZhdWx0X3NlcnZlcjsKCiAgICByb290IC92YXIvd3d3L2h0bWw7CiAgICBpbmRleCBpbmRleC5waHAgaW5kZXguaHRtbCBpbmRleC5odG0gaW5kZXgubmdpbngtZGViaWFuLmh0bWw7CiAgICBzZXJ2ZXJfbmFtZSBzZXJ2ZXJfZG9tYWluX29yX0lQOwoKICAgIGxvY2F0aW9uIC8gewogICAgICAgIHRyeV9maWxlcyAkdXJpICR1cmkvID00MDQ7CiAgICB9CgogICAgbG9jYXRpb24gfiBbXi9dXC5waHAoL3wkKSB7CiAgICAgICAgZmFzdGNnaV9zcGxpdF9wYXRoX2luZm8gXiguK1wucGhwKSgvLispJDsKICAgICAgICB0cnlfZmlsZXMgJGZhc3RjZ2lfc2NyaXB0X25hbWUgPTQwNDsKICAgICAgICBzZXQgJHBhdGhfaW5mbyAkZmFzdGNnaV9wYXRoX2luZm87CiAgICAgICAgZmFzdGNnaV9wYXJhbSBQQVRIX0lORk8gJHBhdGhfaW5mbzsKICAgICAgICBmYXN0Y2dpX2luZGV4IGluZGV4LnBocDsKICAgICAgICBpbmNsdWRlIGZhc3RjZ2kuY29uZjsKICAgICAgICBmYXN0Y2dpX3Bhc3MgdW5peDovcnVuL3BocC9waHA3LjAtZnBtLnNvY2s7CiAgICB9CgogICAgbG9jYXRpb24gfiAvXC5odCB7CiAgICAgICAgZGVueSBhbGw7CiAgICB9Cn0KYGBgCgojIyMgRG9ja2VyIHRlc3RzCgpJbnN0YWxsIGRvY2tlciB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGFuZCB0aGVuIGxvZ291dCBhbmQgbG9naW4gZm9yIHRoZSBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0OgoKICAgIHN1ZG8gYXB0IGluc3RhbGwgZG9ja2VyLmlvIGRvY2tlci1idWlsZHgKICAgIHN1ZG8gdXNlcm1vZCAtYUcgZG9ja2VyICR7VVNFUn0KClRvIHJ1biB0aGUgZG9ja2VyIHRlc3RzIHJ1biAiYnVpbGRfYWxsLnNoIiBhbmQgInJ1bl9hbGwuc2giIGZyb20gdGhlIGRvY2tlciBkaXJlY3RvcnkuIFRoZSBvdXRwdXQgc2hvdWxkIGJlOgoKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgRGViaWFuIDEwIChQSFAgNy4zKQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBbMS80XSBTdGFydGluZyBNYXJpYURCIDEwLjMgLi4uLi4gZG9uZQogICAgWzIvNF0gU3RhcnRpbmcgUG9zdGdyZVNRTCAxMS40IC4uIGRvbmUKICAgIFszLzRdIFN0YXJ0aW5nIFNRTFNlcnZlciAyMDE3IC4uLiBza2lwcGVkCiAgICBbNC80XSBDbG9uaW5nIFBIUC1DUlVELUFQSSB2MiAuLi4gc2tpcHBlZAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBteXNxbDogMTIwIHRlc3RzIHJhbiBpbiA5MjEgbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHBnc3FsOiAxMjAgdGVzdHMgcmFuIGluIDEwNTggbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHNxbHNydjogc2tpcHBlZCwgZHJpdmVyIG5vdCBsb2FkZWQKICAgIHNxbGl0ZTogMTIwIHRlc3RzIHJhbiBpbiA3NTIgbXMsIDEzIHNraXBwZWQsIDAgZmFpbGVkCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIERlYmlhbiAxMSAoUEhQIDcuNCkKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgWzEvNF0gU3RhcnRpbmcgTWFyaWFEQiAxMC41IC4uLi4uIGRvbmUKICAgIFsyLzRdIFN0YXJ0aW5nIFBvc3RncmVTUUwgMTMuNCAuLiBkb25lCiAgICBbMy80XSBTdGFydGluZyBTUUxTZXJ2ZXIgMjAxNyAuLi4gc2tpcHBlZAogICAgWzQvNF0gQ2xvbmluZyBQSFAtQ1JVRC1BUEkgdjIgLi4uIHNraXBwZWQKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgbXlzcWw6IDEyMCB0ZXN0cyByYW4gaW4gOTE0IG1zLCAxIHNraXBwZWQsIDAgZmFpbGVkCiAgICBwZ3NxbDogMTIwIHRlc3RzIHJhbiBpbiA5OTcgbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHNxbHNydjogc2tpcHBlZCwgZHJpdmVyIG5vdCBsb2FkZWQKICAgIHNxbGl0ZTogMTIwIHRlc3RzIHJhbiBpbiA3MzUgbXMsIDEzIHNraXBwZWQsIDAgZmFpbGVkCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIERlYmlhbiAxMiAoUEhQIDguMikKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgWzEvNF0gU3RhcnRpbmcgTWFyaWFEQiAxMC4xMSAuLi4uIGRvbmUKICAgIFsyLzRdIFN0YXJ0aW5nIFBvc3RncmVTUUwgMTUuMyAuLiBkb25lCiAgICBbMy80XSBTdGFydGluZyBTUUxTZXJ2ZXIgMjAxOSAuLi4gc2tpcHBlZAogICAgWzQvNF0gQ2xvbmluZyBQSFAtQ1JVRC1BUEkgdjIgLi4uIHNraXBwZWQKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgbXlzcWw6IDEyMCB0ZXN0cyByYW4gaW4gMTAxNiBtcywgMSBza2lwcGVkLCAwIGZhaWxlZAogICAgcGdzcWw6IDEyMCB0ZXN0cyByYW4gaW4gMTA0MSBtcywgMSBza2lwcGVkLCAwIGZhaWxlZAogICAgc3Fsc3J2OiBza2lwcGVkLCBkcml2ZXIgbm90IGxvYWRlZAogICAgc3FsaXRlOiAxMjAgdGVzdHMgcmFuIGluIDczMyBtcywgMTMgc2tpcHBlZCwgMCBmYWlsZWQKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgUm9ja3lMaW51eCA4IChQSFAgNy4yKQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBbMS80XSBTdGFydGluZyBNYXJpYURCIDEwLjMgLi4uLi4gZG9uZQogICAgWzIvNF0gU3RhcnRpbmcgUG9zdGdyZVNRTCAxMSAuLi4uIHNraXBwZWQKICAgIFszLzRdIFN0YXJ0aW5nIFNRTFNlcnZlciAyMDE3IC4uLiBza2lwcGVkCiAgICBbNC80XSBDbG9uaW5nIFBIUC1DUlVELUFQSSB2MiAuLi4gc2tpcHBlZAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBteXNxbDogMTIwIHRlc3RzIHJhbiBpbiA5MzUgbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHBnc3FsOiBza2lwcGVkLCBkcml2ZXIgbm90IGxvYWRlZAogICAgc3Fsc3J2OiBza2lwcGVkLCBkcml2ZXIgbm90IGxvYWRlZAogICAgc3FsaXRlOiAxMjAgdGVzdHMgcmFuIGluIDc0NiBtcywgMTMgc2tpcHBlZCwgMCBmYWlsZWQKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgUm9ja3lMaW51eCA5IChQSFAgOC4wKQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBbMS80XSBTdGFydGluZyBNYXJpYURCIDEwLjUgLi4uLi4gZG9uZQogICAgWzIvNF0gU3RhcnRpbmcgUG9zdGdyZVNRTCAxMiAuLi4uIHNraXBwZWQKICAgIFszLzRdIFN0YXJ0aW5nIFNRTFNlcnZlciAyMDE3IC4uLiBza2lwcGVkCiAgICBbNC80XSBDbG9uaW5nIFBIUC1DUlVELUFQSSB2MiAuLi4gc2tpcHBlZAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBteXNxbDogMTIwIHRlc3RzIHJhbiBpbiA5MjggbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHBnc3FsOiBza2lwcGVkLCBkcml2ZXIgbm90IGxvYWRlZAogICAgc3Fsc3J2OiBza2lwcGVkLCBkcml2ZXIgbm90IGxvYWRlZAogICAgc3FsaXRlOiAxMjAgdGVzdHMgcmFuIGluIDcyOCBtcywgMTMgc2tpcHBlZCwgMCBmYWlsZWQKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgVWJ1bnR1IDE4LjA0IChQSFAgNy4yKQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBbMS80XSBTdGFydGluZyBNeVNRTCA1LjcgLi4uLi4uLi4gZG9uZQogICAgWzIvNF0gU3RhcnRpbmcgUG9zdGdyZVNRTCAxMC40IC4uIGRvbmUKICAgIFszLzRdIFN0YXJ0aW5nIFNRTFNlcnZlciAyMDE3IC4uLiBza2lwcGVkCiAgICBbNC80XSBDbG9uaW5nIFBIUC1DUlVELUFQSSB2MiAuLi4gc2tpcHBlZAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBteXNxbDogMTIwIHRlc3RzIHJhbiBpbiAxMjk2IG1zLCAxIHNraXBwZWQsIDAgZmFpbGVkCiAgICBwZ3NxbDogMTIwIHRlc3RzIHJhbiBpbiAxMDU2IG1zLCAxIHNraXBwZWQsIDAgZmFpbGVkCiAgICBzcWxzcnY6IHNraXBwZWQsIGRyaXZlciBub3QgbG9hZGVkCiAgICBzcWxpdGU6IDEyMCB0ZXN0cyByYW4gaW4gNzcyIG1zLCAxMyBza2lwcGVkLCAwIGZhaWxlZAogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBVYnVudHUgMjAuMDQgKFBIUCA3LjQpCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIFsxLzRdIFN0YXJ0aW5nIE15U1FMIDguMCAuLi4uLi4uLiBkb25lCiAgICBbMi80XSBTdGFydGluZyBQb3N0Z3JlU1FMIDEyLjIgLi4gZG9uZQogICAgWzMvNF0gU3RhcnRpbmcgU1FMU2VydmVyIDIwMTkgLi4uIGRvbmUKICAgIFs0LzRdIENsb25pbmcgUEhQLUNSVUQtQVBJIHYyIC4uLiBza2lwcGVkCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIG15c3FsOiAxMjAgdGVzdHMgcmFuIGluIDEzNzUgbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHBnc3FsOiAxMjAgdGVzdHMgcmFuIGluIDg2OCBtcywgMSBza2lwcGVkLCAwIGZhaWxlZAogICAgc3Fsc3J2OiAxMjAgdGVzdHMgcmFuIGluIDU3MTMgbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHNxbGl0ZTogMTIwIHRlc3RzIHJhbiBpbiA3MzMgbXMsIDEzIHNraXBwZWQsIDAgZmFpbGVkCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIFVidW50dSAyMi4wNCAoUEhQIDguMSkKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgWzEvNF0gU3RhcnRpbmcgTXlTUUwgOC4wIC4uLi4uLi4uIGRvbmUKICAgIFsyLzRdIFN0YXJ0aW5nIFBvc3RncmVTUUwgMTQuMiAuLiBkb25lCiAgICBbMy80XSBTdGFydGluZyBTUUxTZXJ2ZXIgMjAxOSAuLi4gc2tpcHBlZAogICAgWzQvNF0gQ2xvbmluZyBQSFAtQ1JVRC1BUEkgdjIgLi4uIHNraXBwZWQKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgbXlzcWw6IDEyMCB0ZXN0cyByYW4gaW4gMTM3MiBtcywgMSBza2lwcGVkLCAwIGZhaWxlZAogICAgcGdzcWw6IDEyMCB0ZXN0cyByYW4gaW4gMTA2NCBtcywgMSBza2lwcGVkLCAwIGZhaWxlZAogICAgc3Fsc3J2OiBza2lwcGVkLCBkcml2ZXIgbm90IGxvYWRlZAogICAgc3FsaXRlOiAxMjAgdGVzdHMgcmFuIGluIDcyNyBtcywgMTMgc2tpcHBlZCwgMCBmYWlsZWQKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgVWJ1bnR1IDI0LjA0IChQSFAgOC4zKQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBbMS80XSBTdGFydGluZyBNeVNRTCA4LiAuLi4uLi4uLiBkb25lCiAgICBbMi80XSBTdGFydGluZyBQb3N0Z3JlU1FMIDE2LjIgLi4gZG9uZQogICAgWzMvNF0gU3RhcnRpbmcgU1FMU2VydmVyIDIwMTkgLi4uIHNraXBwZWQKICAgIFs0LzRdIENsb25pbmcgUEhQLUNSVUQtQVBJIHYyIC4uLiBza2lwcGVkCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIG15c3FsOiAxMjAgdGVzdHMgcmFuIGluIDEzNDQgbXMsIDEgc2tpcHBlZCwgMCBmYWlsZWQKICAgIHBnc3FsOiAxMjAgdGVzdHMgcmFuIGluIDg1NiBtcywgMSBza2lwcGVkLCAwIGZhaWxlZAogICAgc3Fsc3J2OiBza2lwcGVkLCBkcml2ZXIgbm90IGxvYWRlZAogICAgc3FsaXRlOiAxMjAgdGVzdHMgcmFuIGluIDcyMiBtcywgMTMgc2tpcHBlZCwgMCBmYWlsZWQKClRoZSBhYm92ZSB0ZXN0IHJ1biAoaW5jbHVkaW5nIHN0YXJ0aW5nIHVwIHRoZSBkYXRhYmFzZXMpIHRha2VzIGxlc3MgdGhhbiA1IG1pbnV0ZXMgb24gbXkgc2xvdyBsYXB0b3AuCgogICAgJCAuL3J1bi5zaAogICAgMSkgZGViaWFuMTAKICAgIDIpIGRlYmlhbjExCiAgICAzKSBkZWJpYW4xMgogICAgNCkgcm9ja3lsaW51eDgKICAgIDUpIHJvY2t5bGludXg5CiAgICA2KSB1YnVudHUxOAogICAgNykgdWJ1bnR1MjAKICAgIDgpIHVidW50dTIyCiAgICA+IDYKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgVWJ1bnR1IDE4LjA0IChQSFAgNy4yKQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICBbMS80XSBTdGFydGluZyBNeVNRTCA1LjcgLi4uLi4uLi4gZG9uZQogICAgWzIvNF0gU3RhcnRpbmcgUG9zdGdyZVNRTCAxMC40IC4uIGRvbmUKICAgIFszLzRdIFN0YXJ0aW5nIFNRTFNlcnZlciAyMDE3IC4uLiBza2lwcGVkCiAgICBbNC80XSBDbG9uaW5nIFBIUC1DUlVELUFQSSB2MiAuLi4gc2tpcHBlZAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBteXNxbDogMTIwIHRlc3RzIHJhbiBpbiAxMjk2IG1zLCAxIHNraXBwZWQsIDAgZmFpbGVkCiAgICBwZ3NxbDogMTIwIHRlc3RzIHJhbiBpbiAxMDU2IG1zLCAxIHNraXBwZWQsIDAgZmFpbGVkCiAgICBzcWxzcnY6IHNraXBwZWQsIGRyaXZlciBub3QgbG9hZGVkCiAgICBzcWxpdGU6IDEyMCB0ZXN0cyByYW4gaW4gNzcyIG1zLCAxMyBza2lwcGVkLCAwIGZhaWxlZAogICAgcm9vdEBiN2FiOTQ3MmUwOGY6L3BocC1jcnVkLWFwaSMgCgpBcyB5b3UgY2FuIHNlZSB0aGUgInJ1bi5zaCIgc2NyaXB0IGdpdmVzIHlvdSBhY2Nlc3MgdG8gYSBwcm9tcHQgaW4gdGhlIGNob3NlbiBkb2NrZXIgZW52aXJvbm1lbnQuCkluIHRoaXMgZW52aXJvbm1lbnQgdGhlIGxvY2FsIGZpbGVzIGFyZSBtb3VudGVkLiBUaGlzIGFsbG93cyBmb3IgZWFzeSBkZWJ1Z2dpbmcgb24gZGlmZmVyZW50IGVudmlyb25tZW50cy4KWW91IG1heSB0eXBlICJleGl0IiB3aGVuIHlvdSBhcmUgZG9uZS4KCiMjIyBEb2NrZXIgaW1hZ2UKClRoZXJlIGlzIGEgYERvY2tlcmZpbGVgIGluIHRoZSByZXBvc2l0b3J5IHRoYXQgaXMgdXNlZCB0byBidWlsZCBhbiBpbWFnZSBhdDoKCltodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbWV2ZHNjaGVlL3BocC1jcnVkLWFwaV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL21ldmRzY2hlZS9waHAtY3J1ZC1hcGkpCgpJdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgYnVpbGQgb24gZXZlcnkgcmVsZWFzZS4gVGhlICJsYXRlc3QiIHRhZyBwb2ludHMgdG8gdGhlIGxhc3QgcmVsZWFzZS4KClRoZSBkb2NrZXIgaW1hZ2UgYWNjZXB0cyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25maWd1cmF0aW9uLgoKIyMjIERvY2tlciBjb21wb3NlCgpUaGlzIHJlcG9zaXRvcnkgYWxzbyBjb250YWlucyBhIGBkb2NrZXItY29tcG9zZS55bWxgIGZpbGUgdGhhdCB5b3UgY2FuIGluc3RhbGwvYnVpbGQvcnVuIHVzaW5nOgoKICAgIHN1ZG8gYXB0IGluc3RhbGwgZG9ja2VyLWNvbXBvc2UKICAgIGRvY2tlci1jb21wb3NlIGJ1aWxkCiAgICBkb2NrZXItY29tcG9zZSB1cAoKVGhpcyB3aWxsIHNldHVwIGEgZGF0YWJhc2UgKE15U1FMKSBhbmQgYSB3ZWJzZXJ2ZXIgKEFwYWNoZSkgYW5kIHJ1bnMgdGhlIGFwcGxpY2F0aW9uIHVzaW5nIHRoZSBibG9nIGV4YW1wbGUgZGF0YSB1c2VkIGluIHRoZSB0ZXN0cy4KClRlc3QgdGhlIHNjcmlwdCAocnVubmluZyBpbiB0aGUgY29udGFpbmVyKSBieSBvcGVuaW5nIHRoZSBmb2xsb3dpbmcgVVJMOgoKICAgIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9yZWNvcmRzL3Bvc3RzLzEKCiMjIyBTdGFyIEhpc3RvcnkKClshW1N0YXIgSGlzdG9yeSBDaGFydF0oaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9bWV2ZHNjaGVlL3BocC1jcnVkLWFwaSZ0eXBlPURhdGUpXShodHRwczovL3N0YXItaGlzdG9yeS5jb20vI21ldmRzY2hlZS9waHAtY3J1ZC1hcGkmRGF0ZSkKCkVuam95IQo= readmeEtag: '"9490fdf11d047e5517fce279fcb1b236d311b0c2"' readmeLastModified: Mon, 29 Jul 2024 21:53:15 GMT repositoryId: 30567860 description: Single file PHP script that adds a REST API to a SQL database created: '2015-02-10T01:08:52Z' updated: '2024-09-04T01:52:24Z' language: PHP archived: false stars: 3581 watchers: 171 forks: 1006 owner: mevdschee logo: https://avatars.githubusercontent.com/u/1288217?v=4 license: MIT repoEtag: '"3bf6b139de889442e88f39af73eebeea92c13c9f29835d2f1b9d11634a06558b"' repoLastModified: Wed, 04 Sep 2024 01:52:24 GMT id: 84a7be428932f7789a8ad1a220b22216 - source: IMPLEMENTATIONS.md name: Fastify OpenAPI v3 homepage: https://gitlab.com/m03geek/fastify-oas language: Node.JS source_description: >- Fastify OpenAPI v3+ plugin. Generates OpenAPI specification from fastify schemas and routes. Also serves swagger ui and spec in json/yaml formats. category: Server Implementations foundInMaster: true id: c78fe82304e392d33668f4af87119380 - source: IMPLEMENTATIONS.md name: JSONSchema::Validator homepage: >- https://github.com/skbkontur/perl-jsonschema-validator](https://github.com/skbkontur/perl-jsonschema-validator language: Perl source_description: OpenAPI 3 request/response validation category: Server Implementations foundInMaster: true repository: >- https://github.com/skbkontur/perl-jsonschema-validator](https://github.com/skbkontur/perl-jsonschema-validator repositoryMetadata: base64Readme: >- IyBOQU1FCgpKU09OU2NoZW1hOjpWYWxpZGF0b3IgLSBWYWxpZGF0b3IgZm9yIEpTT04gU2NoZW1hIERyYWZ0NC9EcmFmdDYvRHJhZnQ3IGFuZCBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wCgojIFZFUlNJT04KCnZlcnNpb24gMC4wMTEKCiMgU1lOT1BTSVMKCiAgICAjIHRvIGdldCBPcGVuQVBJIHZhbGlkYXRvciBpbiBZQU1MIGZvcm1hdAogICAgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHJlc291cmNlID0+ICdmaWxlOi8vL3NvbWUvcGF0aC90by9vYXMzMC55bWwnKTsKICAgIG15ICgkcmVzdWx0LCAkZXJyb3JzLCAkd2FybmluZ3MpID0gJHZhbGlkYXRvci0+dmFsaWRhdGVfcmVxdWVzdCgKICAgICAgICBtZXRob2QgPT4gJ0dFVCcsCiAgICAgICAgb3BlbmFwaV9wYXRoID0+ICcvdXNlci97aWR9L3Byb2ZpbGUnLAogICAgICAgIHBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICBwYXRoID0+IHsKICAgICAgICAgICAgICAgIGlkID0+IDEyMzQKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcXVlcnkgPT4gewogICAgICAgICAgICAgICAgZGV0YWlscyA9PiAnc2hvcnQnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGhlYWRlciA9PiB7CiAgICAgICAgICAgICAgICBoZWFkZXIgPT4gJ2hlYWRlciB2YWx1ZScKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY29va2llID0+IHsKICAgICAgICAgICAgICAgIG5hbWUgPT4gJ3ZhbHVlJwogICAgICAgICAgICB9LAogICAgICAgICAgICBib2R5ID0+IFskaXNfZXhpc3RzLCAkY29udGVudF90eXBlLCAkZGF0YV0KICAgICAgICB9CiAgICApOwogICAgbXkgKCRyZXN1bHQsICRlcnJvcnMsICR3YXJuaW5ncykgPSAkdmFsaWRhdG9yLT52YWxpZGF0ZV9yZXNwb25zZSgKICAgICAgICBtZXRob2QgPT4gJ0dFVCcsCiAgICAgICAgb3BlbmFwaV9wYXRoID0+ICcvdXNlci97aWR9L3Byb2ZpbGUnLAogICAgICAgIHN0YXR1cyA9PiAnMjAwJywKICAgICAgICBwYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgaGVhZGVyID0+IHsKICAgICAgICAgICAgICAgIGhlYWRlciA9PiAnaGVhZGVyIHZhbHVlJwogICAgICAgICAgICB9LAogICAgICAgICAgICBib2R5ID0+IFskaXNfZXhpc3RzLCAkY29udGVudF90eXBlLCAkZGF0YV0KICAgICAgICB9CiAgICApCgogICAgIyB0byBnZXQgSlNPTiBTY2hlbWEgRHJhZnQ0L0RyYWZ0Ni9EcmFmdDcgdmFsaWRhdG9yIGluIEpTT04gZm9ybWF0CiAgICAkdmFsaWRhdG9yID0gSlNPTlNjaGVtYTo6VmFsaWRhdG9yLT5uZXcocmVzb3VyY2UgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbS9kcmFmdDQvc2NoZW1hLmpzb24nKQogICAgbXkgKCRyZXN1bHQsICRlcnJvcnMpID0gJHZhbGlkYXRvci0+dmFsaWRhdGVfc2NoZW1hKCRvYmplY3RfdG9fdmFsaWRhdGUpCgojIERFU0NSSVBUSU9OCgpPcGVuQVBJIHNwZWNpZmljYXRpb24gYW5kIEpTT04gU2NoZW1hIERyYWZ0NC9EcmFmdDYvRHJhZnQ3IHZhbGlkYXRvcnMgd2l0aCBtaW5pbXVtIGRlcGVuZGVuY2llcy4KCiMgTUVUSE9EUwoKIyMgbmV3CgpDcmVhdGVzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbGlkYXRvcnM6IEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6RHJhZnQ0LCBKU09OU2NoZW1hOjpWYWxpZGF0b3I6OkRyYWZ0NiwgSlNPTlNjaGVtYTo6VmFsaWRhdG9yOjpEcmFmdDcsIEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6T0FTMzAuCgogICAgbXkgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHJlc291cmNlID0+ICdmaWxlOi8vL3NvbWUvcGF0aC90by9vYXMzMC55bWwnKTsKICAgIG15ICR2YWxpZGF0b3IgPSBKU09OU2NoZW1hOjpWYWxpZGF0b3ItPm5ldyhyZXNvdXJjZSA9PiAnaHR0cDovL2V4YW1wbGUuY29tL2RyYWZ0NC9zY2hlbWEuanNvbicpOwogICAgbXkgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHNjaGVtYSA9PiB7JyRzY2hlbWEnID0+ICdwYXRoL3RvL3NjaGVtYScsIC4uLn0pOwogICAgbXkgJHZhbGlkYXRvciA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+bmV3KHNjaGVtYSA9PiB7Li4ufSwgc3BlY2lmaWNhdGlvbiA9PiAnRHJhZnQ0Jyk7CgppZiBwYXJhbWV0ZXIgYHNwZWNpZmljYXRpb25gIGlzIG5vdCBzcGVjaWZpZWQgdGhlbiB0eXBlIG9mIHZhbGlkYXRvciB3aWxsIGJlIGRldGVybWluZWQgYnkgYCRzY2hlbWFgIGtleQpmb3IgSlNPTiBTY2hlbWEgRHJhZnQ0L0RyYWZ0Ni9EcmFmdDcgYW5kIGJ5IGBvcGVuYXBpYCBrZXkgZm9yIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAgaW4gYHNjaGVtYWAgcGFyYW1ldGVyLgoKUGFyYW1ldGVyczoKCi0gcmVzb3VyY2VzCgogICAgVG8gZ2V0IHNjaGVtYSBieSB1cmkKCi0gc2NoZW1hCgogICAgVG8gZ2V0IGV4cGxpY2l0bHkgc3BlY2lmaWVkIHNjaGVtYQoKLSBzcGVjaWZpY2F0aW9uCgogICAgVG8gc3BlY2lmeSBzcGVjaWZpY2F0aW9uIG9mIHNjaGVtYQoKLSB2YWxpZGF0ZVxfc2NoZW1hCgogICAgRG8gbm90IHZhbGlkYXRlIHNwZWNpZmllZCBzY2hlbWEKCi0gYmFzZVxfdXJpCgogICAgVG8gc3BlY2lmeSBiYXNlIHVyaSBvZiBzY2hlbWEuCiAgICBUaGlzIHBhcmFtZXRlciB1c2VkIHRvIGJ1aWxkIGFic29sdXRlIHBhdGggYnkgcmVsYXRpdmUgcmVmZXJlbmNlIGluIHNjaGVtYS4KICAgIEJ5IGRlZmF1bHQgYGJhc2VfdXJpYCBpcyBlcXVhbCB0byB0aGUgcmVzb3VyY2UgcGF0aCBpZiB0aGUgcmVzb3VyY2UgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBvdGhlcndpc2UgdGhlIGAkaWRgIGtleSBpbiB0aGUgc2NoZW1hLgoKQWRkaXRpb25hbCBwYXJhbWV0ZXJzIG5lZWQgdG8gYmUgbG9va2VkIGF0IGluIGEgc3BlY2lmaWMgdmFsaWRhdG9yIGNsYXNzLgpDdXJyZW50bHkgdGhlcmUgYXJlIHZhbGlkYXRvcnM6IEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6RHJhZnQ0LCBKU09OU2NoZW1hOjpWYWxpZGF0b3I6OkRyYWZ0NiwgSlNPTlNjaGVtYTo6VmFsaWRhdG9yOjpEcmFmdDcsIEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6T0FTMzAuCgojIyB2YWxpZGF0ZVxfcGF0aHMKClZhbGlkYXRlcyBhbGwgZmlsZXMgc3BlY2lmaWVkIGJ5IHBhdGggZ2xvYnMuCgogICAgbXkgJHJlc3VsdCA9IEpTT05TY2hlbWE6OlZhbGlkYXRvci0+dmFsaWRhdGVfcGF0aHMoWycvc29tZS9wYXRoL3RvL29wZW5hcGkuKi55YW1sJywgJy9zb21lL3BhdGgvdG8vanNvbnNjaGVtYS4qLmpzb24nXSk7CiAgICBmb3IgbXkgJGZpbGUgKGtleXMgJSRyZXN1bHQpIHsKICAgICAgICBteSAoJHJlcywgJGVycm9ycykgPSBAeyRyZXN1bHQtPnskZmlsZX19OwogICAgfQoKIyMgdmFsaWRhdGVcX3Jlc291cmNlCgojIyB2YWxpZGF0ZVxfcmVzb3VyY2VcX3NjaGVtYQoKIyBDQVZFQVRTCgojIyBZQU1MICYgYm9vbGVhbnMKCldoZW4gcmVhZGluZyBzY2hlbWEgZGVmaW5pdGlvbnMgZnJvbSBZQU1MLCBwbGVhc2Ugbm90ZSB0aGF0IHRoZSBzdGFuZGFyZApiZWhhdmlvdXIgb2YgW1lBTUw6OlBQXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvWUFNTCUzQSUzQVBQKSBhbmQgW1lBTUw6OlhTXShodHRwczovL21ldGFjcGFuLm9yZy9wb2QvWUFNTCUzQSUzQVhTKSBpcyB0byByZWFkIHZhbHVlcyB3aGljaCBldmFsdWF0ZQp0byBgdHJ1ZWAgb3IgYGZhbHNlYCBpbiBhIHBlcmwgY29udGV4dC4gVGhlc2UgdmFsdWVzIGhhdmUgbm8gcmVjb2duaXphYmxlCidib29sZWFuIHR5cGUnLiBUaGlzIGlzIGluc3VmZmljaWVudCBmb3IgSlNPTiBzY2hlbWEgdmFsaWRhdGlvbi4KClRvIG1ha2UgdGhlIFlBTUwgcmVhZGVycyBhbmQgYm9vbGVhbnMgd29yayB3aXRoIGBKU09OU2NoZW1hOjpWYWxpZGF0b3JgLAp5b3UgbmVlZCB0byB1c2UgdGhlIGBKU09OOjpQUGAgKGluY2x1ZGVkIGluIFBlcmwncyBzdGFuZGFyZCBsaWJyYXJ5KSBtb2R1bGUKYXMgZm9sbG93czoKCiAgICAjIGZvciBZQU1MOjpQUAogICAgdXNlIFlBTUw6OlBQOwoKICAgIG15ICRyZWFkZXIgPSBZQU1MOjpQUC0+bmV3KCBib29sZWFuID0+ICdKU09OOjpQUCcgKTsKICAgICMgZnJvbSBoZXJlLCB5b3UgY2FuIGZyZWVseSB1c2UgdGhlIHJlYWRlciB0bwogICAgIyByZWFkICYgd3JpdGUgYm9vbGVhbnMgYXMgJ3RydWUnIGFuZCAnZmFsc2UnCgoKICAgICMgZm9yIFlBTUw6OlhTCiAgICB1c2UgWUFNTDo6WFM7CgogICAgbXkgJHJlYWRlciA9IFlBTUw6OlhTLT5uZXc7CgogICAgIyBhbmQgd2hlbmV2ZXIgeW91IHJlYWQgWUFNTCB3aXRoIHRoaXMgcmVhZGVyLCBkbzoKICAgIG15ICR5YW1sID0gZG8gewogICAgICBsb2NhbCAkWUFNTDo6WFM6OkJvb2xlYW4gPSAnSlNPTjo6UFAnOwogICAgICAkcmVhZGVyLT5Mb2FkKCRzdHJpbmcpOyAjIG9yICRyZWFkZXItPkxvYWRGaWxlKCdmaWxlbmFtZScpOwogICAgfTsKClRoaXMgaXNuJ3QgYSBwcm9ibGVtIHdoZW4geW91IHVzZSB0aGUgYHJlc291cmNlYCBhcmd1bWVudCB0byB0aGUKYEpTT05TY2hlbWE6OlZhbGlkYXRvcjo6bmV3YCBjb25zdHJ1Y3RvciwgYnV0IGlmIHlvdSByZWFkIHlvdXIgb3duCnNjaGVtYSBhbmQgdXNlIHRoZSBgc2NoZW1hYCBhcmd1bWVudCwgdGhpcyBpcyBzb21ldGhpbmcgdG8gYmUgYXdhcmUgb2YuCgojIyBhbGxvd1xfYmlnbnVtID0+IDEKClRoZSBgYWxsb3dfYmlnbnVtID1gIDE+IHNldHRpbmcgKGF2YWlsYWJsZSBvbiBbSlNPTjo6WFNdKGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9KU09OJTNBJTNBWFMpIGFuZApbQ3BhbmVsOjpKU09OOjpYU10oaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL0NwYW5lbCUzQSUzQUpTT04lM0ElM0FYUykpIG9uIGRlc2VyaWFsaXplcnMgaXMgbm90IHN1cHBvcnRlZC4KCldoZW4gZGVzZXJpYWxpemluZyBhIHJlcXVlc3QgYm9keSB3aXRoIGEgSlNPTiBwYXJzZXIgY29uZmlndXJlZCB3aXRoCmBhbGxvd19iaWdudW0gPWAgMT4sIGZsb2F0cyAtIGV2ZW4gb25lcyB3aGljaCBmaXQgaW50byB0aGUgcmVndWxhcgpmbG9hdCByYW5nZXMgLSB3aWxsIGJlIGRlc2VyaWFsaXplZCBhcyBgTWF0aDo6QmlnRmxvYXRgLiBTaW1pbGFybHksCmludGVnZXJzIG91dHNpZGUgb2YgdGhlIGludGVybmFsIGludGVnZXIgcmFuZ2UgYXJlIGRlc2VyaWFsaXplZCBhcwpgTWF0aDo6QmlnSW50YC4gTnVtYmVycyByZXByZXNlbnRlZCBhcyBgTWF0aDo6QmlnKmAgb2JqZWN0cyBhcmUgbm90CnJlY29nbml6ZWQgYXMgYWN0dWFsIG51bWJlcnMgYW5kIHdpbGwgZmFpbCB2YWxpZGF0aW9uLgoKIyBBVVRIT1JTCgotIEFsZXhleSBTdGF2cm92IDxsb2dpb25pekB5YS5ydT4KLSBJdmFuIFB1dGludHNldiA8dWlkQHJ5ZGxhYi5ydT4KLSBBbnRvbiBGZWRvdG92IDx0b3NoYS5mZWRvdG92LjIwMDBAZ21haWwuY29tPgotIERlbmlzIEliYWV2IDxkaW9ueXNAZ21haWwuY29tPgotIEFuZHJleSBLaG96b3YgPGFuZHJleUByeWRsYWIucnU+CgojIENPTlRSSUJVVE9SUwoKLSBFcmlrIEh1ZWxzbWFubiA8ZWh1ZWxzQGdtYWlsLmNvbT4KLSBKYW1lcyBXYXRlcnMgPGphbWVzQGpjd2F0ZXJzLmNvLnVrPgoKIyBDT1BZUklHSFQgQU5EIExJQ0VOU0UKClRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDIxIGJ5IEFsZXhleSBTdGF2cm92LgoKVGhpcyBpcyBmcmVlIHNvZnR3YXJlLCBsaWNlbnNlZCB1bmRlcjoKCiAgICBUaGUgTUlUIChYMTEpIExpY2Vuc2UK readmeEtag: '"32131c216eadce854b63f2683e969d148b8f6a5b"' readmeLastModified: Fri, 09 Sep 2022 20:43:45 GMT repositoryId: 382338785 description: JSON Schema and OpenAPI data validator for Perl created: '2021-07-02T12:25:14Z' updated: '2024-04-12T09:18:53Z' language: Perl archived: true stars: 8 watchers: 8 forks: 4 owner: skbkontur logo: https://avatars.githubusercontent.com/u/5087073?v=4 license: NOASSERTION repoEtag: '"ff215f3bd7fdfcd72416a95fe0a601626e5c122b4486c3845d91058163c1a6bb"' repoLastModified: Fri, 12 Apr 2024 09:18:53 GMT id: 79a86285955c77cec16d44dfcef0121d - source: IMPLEMENTATIONS.md name: openapi-client-axios homepage: https://github.com/anttiviljami/openapi-client-axios language: - JavaScript - TypeScript source_description: >- JavaScript client library for consuming OpenAPI-enabled APIs with axios. Types included. category: - Client Implementations - Parsers foundInMaster: true repository: https://github.com/openapistack/openapi-client-axios repositoryMetadata: base64Readme: >- PGgxIGFsaWduPSJjZW50ZXIiPjxpbWcgYWx0PSJvcGVuYXBpLWNsaWVudC1heGlvcyIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktY2xpZW50LWF4aW9zL3Jhdy9tYWluL2hlYWRlci5wbmc/cmF3PXRydWUiIHN0eWxlPSJtYXgtd2lkdGg6NTByZW0iPjwvaDE+CgpbIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWNsaWVudC1heGlvcy93b3JrZmxvd3MvQ0kvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWNsaWVudC1heGlvcy9hY3Rpb25zP3F1ZXJ5PXdvcmtmbG93JTNBQ0kpClshW0xpY2Vuc2VdKGh0dHA6Ly9pbWcuc2hpZWxkcy5pby86bGljZW5zZS1taXQtYmx1ZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXN0YWNrL29wZW5hcGktY2xpZW50LWF4aW9zL2Jsb2IvbWFpbi9MSUNFTlNFKQpbIVtucG0gdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9vcGVuYXBpLWNsaWVudC1heGlvcy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLWNsaWVudC1heGlvcykKWyFbbnBtIGRvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZHcvb3BlbmFwaS1jbGllbnQtYXhpb3Muc3ZnKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS1jbGllbnQtYXhpb3MpClshW2J1bmRsZSBzaXplXShodHRwczovL2ltZy5zaGllbGRzLmlvL2J1bmRsZXBob2JpYS9taW56aXAvb3BlbmFwaS1jbGllbnQtYXhpb3Muc3ZnP2xhYmVsPWd6aXAlMjBidW5kbGUpXShodHRwczovL2J1bmRsZXBob2JpYS5jb20vcGFja2FnZS9vcGVuYXBpLWNsaWVudC1heGlvcykKWyFbTGlicmFyaWVzLmlvIGRlcGVuZGVuY3kgc3RhdHVzIGZvciBsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9saWJyYXJpZXNpby9yZWxlYXNlL25wbS9vcGVuYXBpLWNsaWVudC1heGlvcy5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLWNsaWVudC1heGlvcz9hY3RpdmVUYWI9ZGVwZW5kZW5jaWVzKQohW25wbSB0eXBlIGRlZmluaXRpb25zXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS90eXBlcy9vcGVuYXBpLWNsaWVudC1heGlvcy5zdmcpClshW0J1eSBtZSBhIGNvZmZlZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb25hdGUtYnV5JTIwbWUlMjBhJTIwY29mZmVlLW9yYW5nZSldKGh0dHBzOi8vYnV5bWVhY29mZi5lZS9hbnR0aXZpbGphbWkpCgo8cCBhbGlnbj0iY2VudGVyIj5KYXZhU2NyaXB0IGNsaWVudCBsaWJyYXJ5IGZvciBjb25zdW1pbmcgT3BlbkFQSS1lbmFibGVkIEFQSXMgd2l0aCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXhpb3MvYXhpb3MiIHRhcmdldD0iX2JsYW5rIj5heGlvczwvYT4uIFR5cGVzIGluY2x1ZGVkLjwvcD4KCiMjIEZlYXR1cmVzCgotIFt4XSBDcmVhdGUgQVBJIGNsaWVudHMgZnJvbSBbT3BlbkFQSSB2MyBkZWZpbml0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24pCi0gW3hdIENsaWVudCBpcyBjb25maWd1cmVkIGluIHJ1bnRpbWUuICoqTm8gZ2VuZXJhdGVkIGNvZGUhKioKLSBbeF0gR2VuZXJhdGUgVHlwZVNjcmlwdCBkZWZpbml0aW9ucyAoLmQudHMpIGZvciB5b3VyIEFQSXMgd2l0aCBmdWxsIEludGVsbGlTZW5zZSBzdXBwb3J0Ci0gW3hdIEVhc3kgdG8gdXNlIEFQSSB0byBjYWxsIEFQSSBvcGVyYXRpb25zIHVzaW5nIEphdmFTY3JpcHQgbWV0aG9kcwogIC0gYGNsaWVudC5nZXRQZXQoMSlgCiAgLSBgY2xpZW50LnNlYXJjaFBldHMoKWAKICAtIGBjbGllbnQuc2VhcmNoUGV0cyh7IGlkczogWzEsIDIsIDNdIH0pYAogIC0gYGNsaWVudC51cGRhdGVQZXQoMSwgcGF5bG9hZClgCi0gW3hdIEJ1aWx0IG9uIHRvcCBvZiB0aGUgcm9idXN0IFtheGlvc10oaHR0cHM6Ly9naXRodWIuY29tL2F4aW9zL2F4aW9zKSBKYXZhU2NyaXB0IGxpYnJhcnkKLSBbeF0gSXNvbW9ycGhpYywgd29ya3MgYm90aCBpbiBicm93c2VyIGFuZCBOb2RlLmpzCgojIyBEb2N1bWVudGF0aW9uCgoqKk5ldyEqKiBPcGVuQVBJIENsaWVudCBBeGlvcyBkb2N1bWVudGF0aW9uIGlzIG5vdyBmb3VuZCBvbiBbb3BlbmFwaXN0YWNrLmNvXShodHRwczovL29wZW5hcGlzdGFjay5jbykKCmh0dHBzOi8vb3BlbmFwaXN0YWNrLmNvL2RvY3Mvb3BlbmFwaS1jbGllbnQtYXhpb3MvaW50cm8KCiMjIFF1aWNrIFN0YXJ0CgpgYGAKbnBtIGluc3RhbGwgLS1zYXZlIGF4aW9zIG9wZW5hcGktY2xpZW50LWF4aW9zCmBgYAoKYGBgCnlhcm4gYWRkIGF4aW9zIG9wZW5hcGktY2xpZW50LWF4aW9zCmBgYAoKV2l0aCBwcm9taXNlcyAvIENvbW1vbkpTIHN5bnRheDoKCmBgYGphdmFzY3JpcHQKY29uc3QgT3BlbkFQSUNsaWVudEF4aW9zID0gcmVxdWlyZSgnb3BlbmFwaS1jbGllbnQtYXhpb3MnKS5kZWZhdWx0OwoKY29uc3QgYXBpID0gbmV3IE9wZW5BUElDbGllbnRBeGlvcyh7IGRlZmluaXRpb246ICdodHRwczovL2V4YW1wbGUuY29tL2FwaS9vcGVuYXBpLmpzb24nIH0pOwphcGkuaW5pdCgpCiAgLnRoZW4oY2xpZW50ID0+IGNsaWVudC5nZXRQZXRCeUlkKDEpKQogIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZygnSGVyZSBpcyBwZXQgaWQ6MSBmcm9tIHRoZSBhcGknLCByZXMuZGF0YSkpOwpgYGAKCldpdGggYXN5bmMtYXdhaXQgLyBFUzYgc3ludGF4OgoKYGBgamF2YXNjcmlwdAppbXBvcnQgT3BlbkFQSUNsaWVudEF4aW9zIGZyb20gJ29wZW5hcGktY2xpZW50LWF4aW9zJzsKCmNvbnN0IGFwaSA9IG5ldyBPcGVuQVBJQ2xpZW50QXhpb3MoeyBkZWZpbml0aW9uOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9hcGkvb3BlbmFwaS5qc29uJyB9KTsKYXBpLmluaXQoKTsKCmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVBldCgpIHsKICBjb25zdCBjbGllbnQgPSBhd2FpdCBhcGkuZ2V0Q2xpZW50KCk7CiAgY29uc3QgcmVzID0gYXdhaXQgY2xpZW50LmNyZWF0ZVBldChudWxsLCB7IG5hbWU6ICdHYXJmaWVsZCcgfSk7CiAgY29uc29sZS5sb2coJ1BldCBjcmVhdGVkJywgcmVzLmRhdGEpOwp9CmBgYAoKIyMgVHlwZXNhZmUgQ2xpZW50cwoKIVtUeXBlU2NyaXB0IEludGVsbGlTZW5zZV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGlzdGFjay9vcGVuYXBpLWNsaWVudC1heGlvcy9ibG9iL21haW4vcGFja2FnZXMvdHlwZWdlbi9pbnRlbGxpc2Vuc2UuZ2lmKQoKYG9wZW5hcGktY2xpZW50LWF4aW9zYCBjb21lcyB3aXRoIGEgQ0xJIGNvbW1hbmQgYG9wZW5hcGljbWQgdHlwZWdlbmAgdG8gZ2VuZXJhdGUgVHlwZXNjcmlwdCB0eXBlcyBmb3IgdHlwZSBzYWZldHkgYW5kIGNvZGUgYXV0b2NvbXBsZXRlLgoKYGBgCm5weCBvcGVuYXBpY21kIHR5cGVnZW4gLi9vcGVuYXBpLnlhbWwgPiBzcmMvdHlwZXMvb3BlbmFwaS5kLnRzCmBgYAoKVGhlIG91dHB1dCBvZiBgdHlwZWdlbmAgZXhwb3J0cyBhIHR5cGUgY2FsbGVkIGBDbGllbnRgLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgaW5zdGFuY2VzIGNyZWF0ZWQgd2l0aCBgT3BlbkFQSUNsaWVudEF4aW9zYC4KCkJvdGggdGhlIGBhcGkuZ2V0Q2xpZW50KClgIGFuZCBgYXBpLmluaXQoKWAgbWV0aG9kcyBzdXBwb3J0IHBhc3NpbmcgaW4gYSBDbGllbnQgdHlwZS4KCmBgYHR5cGVzY3JpcHQKaW1wb3J0IHsgQ2xpZW50IGFzIFBldFN0b3JlQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQuZC50cyc7Cgpjb25zdCBjbGllbnQgPSBhd2FpdCBhcGkuaW5pdDxQZXRTdG9yZUNsaWVudD4oKTsKY29uc3QgY2xpZW50ID0gYXdhaXQgYXBpLmdldENsaWVudDxQZXRTdG9yZUNsaWVudD4oKTsKYGBgCgpgb3BlbmFwaWNtZCB0eXBlZ2VuYCBzdXBwb3J0cyB1c2luZyBib3RoIGxvY2FsIGFuZCByZW1vdGUgVVJMcyBmb3IgT3BlbkFQSSBkZWZpbml0aW9uIGZpbGVzLgoKYGBgCiQgbnB4IG9wZW5hcGljbWQgdHlwZWdlbiAuL3BldHN0b3JlLnlhbWwKJCBucHggb3BlbmFwaWNtZCB0eXBlZ2VuIGh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzL29wZW5hcGkuanNvbgpgYGAKCiMjIENvbW1lcmNpYWwgc3VwcG9ydAoKRm9yIGFzc2lzdGFuY2Ugd2l0aCBvcGVuYXBpLWNsaWVudC1heGlvcyBpbiB5b3VyIGNvbXBhbnksIHJlYWNoIG91dCBhdCBzdXBwb3J0QG9wZW5hcGlzdGFjay5jby4KCiMjIENvbnRyaWJ1dGluZwoKT3BlbkFQSSBDbGllbnQgQXhpb3MgaXMgRnJlZSBhbmQgT3BlbiBTb3VyY2UgU29mdHdhcmUuIElzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBhcmUgbW9yZSB0aGFuIHdlbGNvbWUhCg== readmeEtag: '"4f973e3fa064f50ede67e7b355607b79a6cdcde7"' readmeLastModified: Wed, 12 Jun 2024 09:33:11 GMT repositoryId: 157976175 description: JavaScript client library for consuming OpenAPI-enabled APIs with axios created: '2018-11-17T11:04:15Z' updated: '2024-09-03T17:30:12Z' language: TypeScript archived: false stars: 550 watchers: 6 forks: 67 owner: openapistack logo: https://avatars.githubusercontent.com/u/147298423?v=4 license: MIT repoEtag: '"b662c3996827dbc84431c33223f87b869730273fd5af1edb1b2c6c2e3ed26a85"' repoLastModified: Tue, 03 Sep 2024 17:30:12 GMT id: a3b46b452de775b27f5ce966a69ccfa3 oldLocations: - https://github.com/anttiviljami/openapi-client-axios - source: IMPLEMENTATIONS.md name: serverless-openapi-documentation homepage: https://github.com/temando/serverless-openapi-documentation language: TypeScript source_description: >- Serverless 1.0 plugin to generate OpenAPI V3 documentation from serverless configuration category: - Code Generators - Parsers foundInMaster: true repository: https://github.com/temando/serverless-openapi-documentation repositoryMetadata: base64Readme: >- IyBTZXJ2ZXJsZXNzIE9wZW5BUEkgRG9jdW1lbnRhdGlvbiBQbHVnaW4KClshW05QTV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbi5zdmcpXShodHRwczovL25wbWpzLm9yZy9wYWNrYWdlcy9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbi8pClshW1RyYXZpcyBDSV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvdGVtYW5kby9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbi5zdmcpXShodHRwczovL3RyYXZpcy1jaS5vcmcvdGVtYW5kby9zZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbikKWyFbSmF2YVNjcmlwdCBTdHlsZSBHdWlkZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlX3N0eWxlLXN0YW5kYXJkLWJyaWdodGdyZWVuLnN2ZyldKGh0dHBzOi8vc3RhbmRhcmRqcy5jb20pCgpHZW5lcmF0ZXMgWyoqT3BlbkFQSSAzLjAuMCoqXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iLzMuMC4wL3ZlcnNpb25zLzMuMC4wLm1kKSBkb2N1bWVudGF0aW9uIGZyb20gc2VydmVybGVzcyBjb25maWd1cmF0aW9uIGZpbGVzLiBPcGVuQVBJIGlzIGZvcm1lcmx5IGtub3duIGFzIFN3YWdnZXIuIFRoZSBjb25maWd1cmF0aW9uIGlzIGluc3BpcmVkIGJ5IHRoZSBmb3JtYXQgdXNlZCBpbiBbc2VydmVybGVzcy1hd3MtZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc2VydmVybGVzcy1hd3MtZG9jdW1lbnRhdGlvbikuCgpXb3JrcyB3ZWxsIHdpdGggW0xpbmNvbG4gT3BlbkFQSSBSZW5kZXJlcl0oaHR0cHM6Ly9naXRodWIuY29tL3RlbWFuZG8vb3Blbi1hcGktcmVuZGVyZXIpLgoKLS0tCgotIFtVc2FnZV0oI3VzYWdlKQogIC0gW09wdGlvbnNdKCNvcHRpb25zKQogIC0gW0NvbmZpZ3VyYXRpb25dKCNjb25maWd1cmF0aW9uKQogICAgLSBbTW9kZWxzXSgjbW9kZWxzKQogICAgLSBbRnVuY3Rpb25zXSgjZnVuY3Rpb25zKQogICAgLSBbYHF1ZXJ5UGFyYW1zYF0oI3F1ZXJ5cGFyYW1zKQogICAgLSBbYHBhdGhQYXJhbXNgXSgjcGF0aHBhcmFtcykKICAgIC0gW2Bjb29raWVQYXJhbXNgXSgjY29va2llcGFyYW1zKQogICAgLSBbYHJlcXVlc3RNb2RlbHNgXSgjcmVxdWVzdG1vZGVscykKICAgIC0gW2BtZXRob2RSZXNwb25zZXNgXSgjbWV0aG9kcmVzcG9uc2VzKQotIFtFeGFtcGxlIENvbmZpZ3VyYXRpb25dKCNleGFtcGxlLWNvbmZpZ3VyYXRpb24pCi0gW0luc3RhbGxdKCNpbnN0YWxsKQoKLS0tCgojIyBVc2FnZQoKVGhpcyBwbHVnaW4gcmVxdWlyZXMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHRvIHVzZSwgc2VlIHRoZSAiW0NvbmZpZ3VyYXRpb25dKCNjb25maWd1cmF0aW9uKSIgc2VjdGlvbiBmb3IgaG93IHRvIGNvbmZpZ3VyZSB0aGUgcGx1Z2luIHRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb24uCgpCZWxvdyBhcmUgdGhlIGNvbW1hbmRsaW5lIG9wdGlvbnMgdG8gcnVuIHRoZSBnZW5lcmF0b3I6CgpgYGBiYXNoCnNlcnZlcmxlc3Mgb3BlbmFwaSBnZW5lcmF0ZSBbb3B0aW9uc10KYGBgCgojIyMgT3B0aW9ucwoKYGBgYmFzaApQbHVnaW46IFNlcnZlcmxlc3NPcGVuQVBJRG9jdW1lbnRhdGlvbgpvcGVuYXBpIGdlbmVyYXRlICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uIEdlbmVyYXRlIE9wZW5BUEkgdjMgRG9jdW1lbnRhdGlvbgogICAgLS1vdXRwdXQgLyAtbyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uIE91dHB1dCBmaWxlIGxvY2F0aW9uIFtkZWZhdWx0OiBvcGVuYXBpLnltbHxqc29uXQogICAgLS1mb3JtYXQgLyAtZiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uIE9wZW5BUEkgZmlsZSBmb3JtYXQgKHltbHxqc29uKSBbZGVmYXVsdDogeW1sXQogICAgLS1pbmRlbnQgLyAtaSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uIEZpbGUgaW5kZW50YXRpb24gaW4gc3BhY2VzIFtkZWZhdWx0OiAyXQogICAgLS1oZWxwIC8gLWggICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uIEhlbHAKYGBgCgojIyMgQ29uZmlndXJhdGlvbgoKVG8gY29uZmlndXJlIHRoaXMgcGx1Z2luIHRvIGdlbmVyYXRlIHZhbGlkIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiB0aGVyZSBhcmUgdHdvIHBsYWNlcyB5b3UnbGwgbmVlZCB0byBtb2RpZnkgaW4geW91ciBgc2VydmVybGVzcy55bWxgIGZpbGUsIHRoZSBgY3VzdG9tYCB2YXJpYWJsZXMgc2VjdGlvbiBhbmQgdGhlIGBodHRwYCBldmVudCBzZWN0aW9uIGZvciBlYWNoIGdpdmVuIGZ1bmN0aW9uIGluIHlvdXIgc2VydmljZS4KClRoaXMgcGx1Z2luIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgc2FtZSBkb2N1bWVudGF0aW9uIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIGluIFtzZXJ2ZXJsZXNzLWF3cy1kb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zZXJ2ZXJsZXNzLWF3cy1kb2N1bWVudGF0aW9uKSBhbmQgY2FuIHJ1biBiZXNpZGUgaXQuCgpUaGUgYGN1c3RvbWAgc2VjdGlvbiBvZiB5b3VyIGBzZXJ2ZXJsZXNzLnltbGAgY2FuIGJlIGNvbmZpZ3VyZWQgYXMgYmVsb3c6CgpgYGB5bWwKY3VzdG9tOgogIGRvY3VtZW50YXRpb246CiAgICB2ZXJzaW9uOiAnMScKICAgIHRpdGxlOiAnTXkgQVBJJwogICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIG15IEFQSScKICAgIG1vZGVsczoge30KYGBgCgpUaGVzZSBjb25maWd1cmF0aW9ucyBjYW4gYmUgcXVpdGUgdmVyYm9zZTsgeW91IGNhbiBzZXBhcmF0ZSBpdCBvdXQgaW50byBpdCdzIG93biBmaWxlLCBzdWNoIGFzIGBzZXJ2ZXJsZXNzLmRvYy55bWxgIGFzIGJlbG93OgoKYGBgeW1sCmN1c3RvbToKICBkb2N1bWVudGF0aW9uOiAke2ZpbGUoc2VydmVybGVzcy5kb2MueW1sKTpkb2N1bWVudGF0aW9ufQoKZnVuY3Rpb25zOgogIG15RnVuYzoKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgICAgcGF0aDogZ2V0U3R1ZmYKICAgICAgICAgIG1ldGhvZDogZ2V0CiAgICAgICAgICBkb2N1bWVudGF0aW9uOiAke2ZpbGUoc2VydmVybGVzcy5kb2MueW1sKTplbmRwb2ludHMubXlGdW5jfQpgYGAKCkZvciBtb3JlIGluZm8gb24gYHNlcnZlcmxlc3MueW1sYCBzeW50YXgsIHNlZSB0aGVpciBkb2NzLgoKIyMjIyBNb2RlbHMKCk1vZGVscyBjb250YWluIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdGhhdCB5b3UgY2FuIHVzZSB0byBkZWZpbmUgc2NoZW1hcyBmb3IgZW5kcG9pbnRzLiAgWW91IG11c3QgZGVmaW5lIHRoZSAqY29udGVudCB0eXBlKiBmb3IgZWFjaCBzY2hlbWEgdGhhdCB5b3UgcHJvdmlkZSBpbiB0aGUgbW9kZWxzLgoKVGhlICpyZXF1aXJlZCogZGlyZWN0aXZlcyBmb3IgdGhlIG1vZGVscyBzZWN0aW9uIGFyZSBhcyBmb2xsb3c6CgoqIGBuYW1lYDogdGhlIG5hbWUgb2YgdGhlIHNjaGVtYQoqIGBkZXNjcmlwdGlvbmA6IGEgZGVzY3JpcHRpb24gb2YgdGhlIHNjaGVtYQoqIGBjb250ZW50VHlwZWA6IHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIGRlc2NyaWJlZCByZXF1ZXN0L3Jlc3BvbnNlIChpZS4gYGFwcGxpY2F0aW9uL2pzb25gIG9yIGBhcHBsaWNhdGlvbi94bWxgKS4KKiBgc2NoZW1hYDogVGhlIEpTT04gU2NoZW1hIChbd2Vic2l0ZV0oaHR0cDovL2pzb24tc2NoZW1hLm9yZy8pKSB0aGF0IGRlc2NyaWJlcyB0aGUgbW9kZWwuIFlvdSBjYW4gZWl0aGVyIHVzZSBpbmxpbmUgYFlBTUxgIHRvIGRlZmluZSB0aGVzZSwgb3IgcmVmZXIgdG8gYW4gZXh0ZXJuYWwgc2NoZW1hIGZpbGUgYXMgYmVsb3cKCmBgYHltbApjdXN0b206CiAgZG9jdW1lbnRhdGlvbjoKICAgIG1vZGVsczoKICAgICAgLSBuYW1lOiAiRXJyb3JSZXNwb25zZSIKICAgICAgICBkZXNjcmlwdGlvbjogIlRoaXMgaXMgYW4gZXJyb3IiCiAgICAgICAgY29udGVudFR5cGU6ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIHNjaGVtYTogJHtmaWxlKG1vZGVscy9FcnJvclJlc3BvbnNlLmpzb24pfQogICAgICAtIG5hbWU6ICJQdXREb2N1bWVudFJlc3BvbnNlIgogICAgICAgIGRlc2NyaXB0aW9uOiAiUFVUIERvY3VtZW50IHJlc3BvbnNlIG1vZGVsIChleHRlcm5hbCByZWZlcmVuY2UgZXhhbXBsZSkiCiAgICAgICAgY29udGVudFR5cGU6ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIHNjaGVtYTogJHtmaWxlKG1vZGVscy9QdXREb2N1bWVudFJlc3BvbnNlLmpzb24pfQogICAgICAtIG5hbWU6ICJQdXREb2N1bWVudFJlcXVlc3QiCiAgICAgICAgZGVzY3JpcHRpb246ICJQVVQgRG9jdW1lbnQgcmVxdWVzdCBtb2RlbCAoaW5saW5lIGV4YW1wbGUpIgogICAgICAgIGNvbnRlbnRUeXBlOiAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBzY2hlbWE6CiAgICAgICAgICAkc2NoZW1hOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIgogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgU29tZU9iamVjdDoKICAgICAgICAgICAgICB0eXBlOiAib2JqZWN0IgogICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICBTb21lQXR0cmlidXRlOgogICAgICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIgpgYGAKCiMjIyMgRnVuY3Rpb25zCgpUbyBkZWZpbmUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGEgZ2l2ZW4gZnVuY3Rpb24gZXZlbnQsIHlvdSBuZWVkIHRvIGNyZWF0ZSBhIGBkb2N1bWVudGF0aW9uYCBhdHRyaWJ1dGUgZm9yIHlvdXIgaHR0cCBldmVudCBpbiB5b3VyIGBzZXJ2ZXJsZXNzLnltbGAgZmlsZS4KClRoZSBgZG9jdW1lbnRhdGlvbmAgc2VjdGlvbiBvZiB0aGUgZXZlbnQgY29uZmlndXJhdGlvbiBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CgoqIGBzdW1tYXJ5YDogYSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgbWV0aG9kCiogYGRlc2NyaXB0aW9uYDogYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgbWV0aG9kCiogYHRhZ3NgOiBhbiBhcnJheSBvZiB0YWdzIGZvciB0aGlzIGV2ZW50CiogYGRlcHJlY2F0ZWRgOiBib29sZWFuIGluZGljYXRvciB0aGF0IGluZGljYXRlcyBjbGllbnRzIHNob3VsZCBtaWdyYXRlIGF3YXkgZnJvbSB0aGlzIGZ1bmN0aW9uCiogYHJlcXVlc3RCb2R5YDogY29udGFpbnMgZGVzY3JpcHRpb24gb2YgdGhlIHJlcXVlc3QKICAgICogYGRlc2NyaXB0aW9uYDogYSBkZXNjcmlwdGlvbiBvZiB0aGUgcmVxdWVzdCBib2R5CiogYHJlcXVlc3RNb2RlbHNgOiBhIGxpc3Qgb2YgbW9kZWxzIHRvIGRlc2NyaWJlIHRoZSByZXF1ZXN0IGJvZGllcyAoc2VlIFtyZXF1ZXN0TW9kZWxzXSgjcmVxdWVzdG1vZGVscykgYmVsb3cpCiogYHF1ZXJ5UGFyYW1zYDogYSBsaXN0IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgKHNlZSBbcXVlcnlQYXJhbXNdKCNxdWVyeXBhcmFtcykgYmVsb3cpCiogYHBhdGhQYXJhbXNgOiBhIGxpc3Qgb2YgcGF0aCBwYXJhbWV0ZXJzIChzZWUgW3BhdGhQYXJhbXNdKCNwYXRocGFyYW1zKSBiZWxvdykKKiBgY29va2llUGFyYW1zYDogYSBsaXN0IG9mIGNvb2tpZSBwYXJhbWV0ZXJzIChzZWUgW2Nvb2tpZVBhcmFtc10oI2Nvb2tpZXBhcmFtcykgYmVsb3cpCiogYG1ldGhvZFJlc3BvbnNlc2A6IGFuIGFycmF5IG9mIHJlc3BvbnNlIG1vZGVscyBhbmQgYXBwbGljYWJsZSBzdGF0dXMgY29kZXMKICAqIGBzdGF0dXNDb2RlYDogYXBwbGljYWJsZSBodHRwIHN0YXR1cyBjb2RlIChpZS4gMjAwLzQwNC81MDAgZXRjLikKICAqIGByZXNwb25zZUJvZHlgOiBjb250YWlucyBkZXNjcmlwdGlvbiBvZiB0aGUgcmVzcG9uc2UKICAgICogYGRlc2NyaXB0aW9uYDogYSBkZXNjcmlwdGlvbiBvZiB0aGUgYm9keSByZXNwb25zZQogICogYHJlc3BvbnNlSGVhZGVyc2A6IGEgbGlzdCBvZiByZXNwb25zZSBoZWFkZXJzIChzZWUgW3Jlc3BvbnNlSGVhZGVyc10oI3Jlc3BvbnNlaGVhZGVycykgYmVsb3cpCiAgKiBgcmVzcG9uc2VNb2RlbHNgOiBhIGxpc3Qgb2YgbW9kZWxzIHRvIGRlc2NyaWJlIHRoZSByZXF1ZXN0IGJvZGllcyAoc2VlIFtyZXNwb25zZU1vZGVsc10oI3Jlc3BvbnNlbW9kZWxzKSBiZWxvdykgZm9yIGVhY2ggYENvbnRlbnQtVHlwZWAKCmBgYHltbApmdW5jdGlvbnM6CiAgY3JlYXRlVXNlcjoKICAgIGhhbmRsZXI6ICJoYW5kbGVyLmNyZWF0ZSIKICAgIGV2ZW50czoKICAgICAgLSBodHRwOgogICAgICAgIHBhdGg6ICJjcmVhdGUiCiAgICAgICAgbWV0aG9kOiAicG9zdCIKICAgICAgICBkb2N1bWVudGF0aW9uOgogICAgICAgICAgc3VtbWFyeTogIkNyZWF0ZSBVc2VyIgogICAgICAgICAgZGVzY3JpcHRpb246ICJDcmVhdGVzIGEgdXNlciBhbmQgdGhlbiBzZW5kcyBhIGdlbmVyYXRlZCBwYXNzd29yZCBlbWFpbCIKICAgICAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgICAgICBkZXNjcmlwdGlvbjogIkEgdXNlciBpbmZvcm1hdGlvbiBvYmplY3QiCiAgICAgICAgICByZXF1ZXN0TW9kZWxzOgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOiAiUHV0RG9jdW1lbnRSZXF1ZXN0IgogICAgICAgICAgcGF0aFBhcmFtczoKICAgICAgICAgICAgLSBuYW1lOiAidXNlcm5hbWUiCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJUaGUgdXNlcm5hbWUgZm9yIGEgdXNlciB0byBjcmVhdGUiCiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICAgICAgICAgIHBhdHRlcm46ICJeWy1hLXowLTlfXSskIgogICAgICAgICAgcXVlcnlQYXJhbXM6CiAgICAgICAgICAgIC0gbmFtZTogIm1lbWJlcnNoaXBUeXBlIgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVGhlIHVzZXIncyBNZW1iZXJzaGlwIFR5cGUiCiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgICAgIC0gInByZW1pdW0iCiAgICAgICAgICAgICAgICAgIC0gInN0YW5kYXJkIgogICAgICAgICAgY29va2llUGFyYW1zOgogICAgICAgICAgICAtIG5hbWU6ICJTZXNzaW9uSWQiCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJBIFNlc3Npb24gSUQgdmFyaWFibGUiCiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICAgIG1ldGhvZFJlc3BvbnNlczoKICAgICAgICAgICAgLSBzdGF0dXNDb2RlOiAyMDEKICAgICAgICAgICAgICByZXNwb25zZUJvZHk6CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkEgdXNlciBvYmplY3QgYWxvbmcgd2l0aCBnZW5lcmF0ZWQgQVBJIEtleXMiCiAgICAgICAgICAgICAgcmVzcG9uc2VNb2RlbHM6CiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOiAiUHV0RG9jdW1lbnRSZXNwb25zZSIKICAgICAgICAgICAgLSBzdGF0dXNDb2RlOiA1MDAKICAgICAgICAgICAgICByZXNwb25zZUJvZHk6CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkFuIGVycm9yIG1lc3NhZ2Ugd2hlbiBjcmVhdGluZyBhIG5ldyB1c2VyIgogICAgICAgICAgICAgIHJlc3BvbnNlTW9kZWxzOgogICAgICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjogIkVycm9yUmVzcG9uc2UiCmBgYAoKIyMjIyBgcXVlcnlQYXJhbXNgCgpRdWVyeSBwYXJhbWV0ZXJzIGNhbiBiZSBkZXNjcmliZWQgYXMgZm9sbG93OgoKKiBgbmFtZWA6IHRoZSBuYW1lIG9mIHRoZSBxdWVyeSB2YXJpYWJsZQoqIGBkZXNjcmlwdGlvbmA6IGEgZGVzY3JpcHRpb24gb2YgdGhlIHF1ZXJ5IHZhcmlhYmxlCiogYHJlcXVpcmVkYDogd2hldGhlciB0aGUgcXVlcnkgcGFyYW1ldGVyIGlzIG1hbmRhdG9yeSAoYm9vbGVhbikKKiBgc2NoZW1hYDogSlNPTiBzY2hlbWEgKGlubGluZSBvciBmaWxlKQoKYGBgeW1sCnF1ZXJ5UGFyYW1zOgogIC0gbmFtZTogImZpbHRlciIKICAgIGRlc2NyaXB0aW9uOiAiVGhlIGZpbHRlciBwYXJhbWV0ZXIiCiAgICByZXF1aXJlZDogdHJ1ZQogICAgc2NoZW1hOgogICAgICB0eXBlOiAic3RyaW5nIgpgYGAKCiMjIyMgYHBhdGhQYXJhbXNgCgpQYXRoIHBhcmFtZXRlcnMgY2FuIGJlIGRlc2NyaWJlZCBhcyBmb2xsb3c6CgoqIGBuYW1lYDogdGhlIG5hbWUgb2YgdGhlIHF1ZXJ5IHZhcmlhYmxlCiogYGRlc2NyaXB0aW9uYDogYSBkZXNjcmlwdGlvbiBvZiB0aGUgcXVlcnkgdmFyaWFibGUKKiBgc2NoZW1hYDogSlNPTiBzY2hlbWEgKGlubGluZSBvciBmaWxlKQoKYGBgeW1sCnBhdGhQYXJhbXM6CiAgLSBuYW1lOiAidXNlcm5hbWVJZCIKICAgIGRlc2NyaXB0aW9uOiAiVGhlIHVzZXJuYW1lSWQgcGFyYW1ldGVyIgogICAgc2NoZW1hOgogICAgICB0eXBlOiAic3RyaW5nIgpgYGAKCiMjIyMgYGNvb2tpZVBhcmFtc2AKCkNvb2tpZSBwYXJhbWV0ZXJzIGNhbiBiZSBkZXNjcmliZWQgYXMgZm9sbG93OgoKKiBgbmFtZWA6IHRoZSBuYW1lIG9mIHRoZSBxdWVyeSB2YXJpYWJsZQoqIGBkZXNjcmlwdGlvbmA6IGEgZGVzY3JpcHRpb24gb2YgdGhlIHF1ZXJ5IHZhcmlhYmxlCiogYHJlcXVpcmVkYDogd2hldGhlciB0aGUgcXVlcnkgcGFyYW1ldGVyIGlzIG1hbmRhdG9yeSAoYm9vbGVhbikKKiBgc2NoZW1hYDogSlNPTiBzY2hlbWEgKGlubGluZSBvciBmaWxlKQoKYGBgeW1sCmNvb2tpZVBhcmFtczoKICAtIG5hbWU6ICJzZXNzaW9uSWQiCiAgICBkZXNjcmlwdGlvbjogIlRoZSBzZXNzaW9uSWQgcGFyYW1ldGVyIgogICAgcmVxdWlyZWQ6IHRydWUKICAgIHNjaGVtYToKICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyMjIGByZXF1ZXN0TW9kZWxzYAoKVGhlIGByZXF1ZXN0TW9kZWxzYCBwcm9wZXJ0eSBhbGxvd3MgeW91IHRvIGRlZmluZSBtb2RlbHMgZm9yIHRoZSBIVFRQIFJlcXVlc3Qgb2YgdGhlIGZ1bmN0aW9uIGV2ZW50LiBZb3UgY2FuIGRlZmluZSBhIGRpZmZlcmVudCBtb2RlbCBmb3IgZWFjaCBkaWZmZXJlbnQgYENvbnRlbnQtVHlwZWAuIFlvdSBjYW4gZGVmaW5lIGEgcmVmZXJlbmNlIHRvIHRoZSByZWxldmFudCByZXF1ZXN0IG1vZGVsIG5hbWVkIGluIHRoZSBgbW9kZWxzYCBzZWN0aW9uIG9mIHlvdXIgY29uZmlndXJhdGlvbiAoc2VlIFtEZWZpbmluZyBNb2RlbHNdKCNtb2RlbHMpIHNlY3Rpb24pLgoKYGBgeW1sCnJlcXVlc3RNb2RlbHM6CiAgYXBwbGljYXRpb24vanNvbjogIkNyZWF0ZVJlcXVlc3QiCiAgYXBwbGljYXRpb24veG1sOiAiQ3JlYXRlUmVxdWVzdFhNTCIKYGBgCgojIyMjIGBtZXRob2RSZXNwb25zZXNgCgpZb3UgY2FuIGRlZmluZSB0aGUgcmVzcG9uc2Ugc2NoZW1hcyBieSBkZWZpbmluZyBwcm9wZXJ0aWVzIGZvciB5b3VyIGZ1bmN0aW9uIGV2ZW50LgoKRm9yIGFuIGV4YW1wbGUgb2YgYSBgbWV0aG9kUmVzcG9uc2VzYCBjb25maWd1cmF0aW9uIGZvciBhbiBldmVudCBzZWUgYmVsb3c6CgpgYGB5bWwKbWV0aG9kUmVzcG9uc2U6CiAgLSBzdGF0dXNDb2RlOiAyMDAKICAgIHJlc3BvbnNlSGVhZGVyczoKICAgICAgLSBuYW1lOiAiQ29udGVudC1UeXBlIgogICAgICAgIGRlc2NyaXB0aW9uOiAiQ29udGVudCBUeXBlIGhlYWRlciIKICAgICAgICBzY2hlbWE6CiAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgcmVzcG9uc2VNb2RlbHM6CiAgICAgIGFwcGxpY2F0aW9uL2pzb246ICJDcmVhdGVSZXNwb25zZSIKICAgICAgYXBwbGljYXRpb24veG1sOiAiQ3JlYXRlUmVzcG9uc2VYTUwiCmBgYAoKIyMjIyMgYHJlc3BvbnNlTW9kZWxzYAoKVGhlIGByZXNwb25zZU1vZGVsc2AgcHJvcGVydHkgYWxsb3dzIHlvdSB0byBkZWZpbmUgbW9kZWxzIGZvciB0aGUgSFRUUCBSZXNwb25zZSBvZiB0aGUgZnVuY3Rpb24gZXZlbnQuIFlvdSBjYW4gZGVmaW5lIGEgZGlmZmVyZW50IG1vZGVsIGZvciBlYWNoIGRpZmZlcmVudCBgQ29udGVudC1UeXBlYC4gWW91IGNhbiBkZWZpbmUgYSByZWZlcmVuY2UgdG8gdGhlIHJlbGV2YW50IHJlc3BvbnNlIG1vZGVsIG5hbWVkIGluIHRoZSBgbW9kZWxzYCBzZWN0aW9uIG9mIHlvdXIgY29uZmlndXJhdGlvbiAoc2VlIFtEZWZpbmluZyBNb2RlbHNdKCNtb2RlbHMpIHNlY3Rpb24pLgoKYGBgeW1sCnJlc3BvbnNlTW9kZWxzOgogIGFwcGxpY2F0aW9uL2pzb246ICJDcmVhdGVSZXNwb25zZSIKICBhcHBsaWNhdGlvbi94bWw6ICJDcmVhdGVSZXNwb25zZVhNTCIKYGBgCgojIyMjIyBgcmVzcG9uc2VIZWFkZXJzYCBhbmQgYHJlcXVlc3RIZWFkZXJzYAoKVGhlIGByZXNwb25zZUhlYWRlcnMvcmVxdWVzdEhlYWRlcnNgIHNlY3Rpb24gb2YgdGhlIGNvbmZpZ3VyYXRpb24gYWxsb3dzIHlvdSB0byBkZWZpbmUgdGhlIEhUVFAgaGVhZGVycyBmb3IgdGhlIGZ1bmN0aW9uIGV2ZW50LgoKVGhlIGF0dHJpYnV0ZXMgZm9yIGEgaGVhZGVyIGFyZSBhcyBmb2xsb3c6CgoqIGBuYW1lYDogdGhlIG5hbWUgb2YgdGhlIEhUVFAgSGVhZGVyCiogYGRlc2NyaXB0aW9uYDogYSBkZXNjcmlwdGlvbiBvZiB0aGUgSFRUUCBIZWFkZXIKKiBgc2NoZW1hYDogSlNPTiBzY2hlbWEgKGlubGluZSBvciBmaWxlKQoKYGBgeW1sCnJlc3BvbnNlSGVhZGVyczoKICAtIG5hbWU6ICJDb250ZW50LVR5cGUiCiAgICBkZXNjcmlwdGlvbjogIkNvbnRlbnQgVHlwZSBoZWFkZXIiCiAgICBzY2hlbWE6CiAgICAgIHR5cGU6ICJzdHJpbmciCnJlcXVlc3RIZWFkZXJzOgogIC0gbmFtZTogIkNvbnRlbnQtVHlwZSIKICAgIGRlc2NyaXB0aW9uOiAiQ29udGVudCBUeXBlIGhlYWRlciIKICAgIHNjaGVtYToKICAgICAgdHlwZTogInN0cmluZyIKYGBgCgojIyBFeGFtcGxlIGNvbmZpZ3VyYXRpb24KClBsZWFzZSB2aWV3IHRoZSBleGFtcGxlIFtzZXJ2ZXJsZXNzLnltbF0odGVzdC9wcm9qZWN0L3NlcnZlcmxlc3MueW1sKS4KCiMjIEluc3RhbGwKClRoaXMgcGx1Z2luIHdvcmtzIGZvciBTZXJ2ZXJsZXNzIDEueCBhbmQgdXAuIFNlcnZlcmxlc3MgMC41IGlzIG5vdCBzdXBwb3J0ZWQuCgpUbyBhZGQgdGhpcyBwbHVnaW4gdG8geW91ciBwYWNrYWdlLmpzb246CgoqKlVzaW5nIG5wbToqKgpgYGBiYXNoCm5wbSBpbnN0YWxsIHNlcnZlcmxlc3Mtb3BlbmFwaS1kb2N1bWVudGF0aW9uIC0tc2F2ZS1kZXYKYGBgCgoqKlVzaW5nIFlhcm46KioKYGBgYmFzaAp5YXJuIGFkZCBzZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbiAtLWRldgpgYGAKCk5leHQgeW91IG5lZWQgdG8gYWRkIHRoZSBwbHVnaW4gdG8gdGhlIGBwbHVnaW5zYCBzZWN0aW9uIG9mIHlvdXIgYHNlcnZlcmxlc3MueW1sYCBmaWxlLgoKYGBgeW1sCnBsdWdpbnM6CiAgLSBzZXJ2ZXJsZXNzLW9wZW5hcGktZG9jdW1lbnRhdGlvbgpgYGAKCllvdSBjYW4gY29uZmlybSB0aGUgcGx1Z2luIGlzIGNvcnJlY3RseSBpbnN0YWxsZWQgYnkgcnVubmluZzoKCmBgYGJhc2gKc2VydmVybGVzcyB8IGdyZXAgLWkgIlNlcnZlcmxlc3NPcGVuQVBJRG9jdW1lbnRhdGlvbiIKYGBgCgpJdCBzaG91bGQgcmV0dXJuIGBTZXJ2ZXJsZXNzT3BlbkFQSURvY3VtZW50YXRpb25gIGFzIG9uZSBvZiB0aGUgcGx1Z2lucyBvbiB0aGUgbGlzdC4KCj4gTm90ZTogQWRkIHRoaXMgcGx1Z2luIF9hZnRlcl8gYHNlcnZlcmxlc3Mtb2ZmbGluZWAgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBgU3RyaW5nLnJlcGxhY2VBbGxgIGJlaW5nIG92ZXJyaWRkZW4gaW5jb3JyZWN0bHkuCgojIyBMaWNlbnNlCgpNSVQK readmeEtag: '"1ba5c61b0e0ab2906c7c7041c4ccdcce5fb7f172"' readmeLastModified: Fri, 22 Jun 2018 11:16:06 GMT repositoryId: 96071001 description: >- Serverless 1.0 plugin to generate OpenAPI V3 documentation from serverless configuration created: '2017-07-03T04:44:51Z' updated: '2024-06-27T13:55:14Z' language: TypeScript archived: false stars: 93 watchers: 8 forks: 127 owner: temando logo: https://avatars.githubusercontent.com/u/2232135?v=4 license: MIT repoEtag: '"e366ca35d0b962a254b6d125975bd58d1f296da981d6d11d851d744d2105f60b"' repoLastModified: Thu, 27 Jun 2024 13:55:14 GMT id: 6b703add76932c2d3d042f15bd0fe577 - source: IMPLEMENTATIONS.md name: zero-rails_openapi homepage: https://github.com/zhandao/zero-rails_openapi language: Ruby source_description: >- Provide concise DSL for generating the OpenAPI Specification 3 documentation file for Rails application category: Code Generators foundInMaster: true repository: https://github.com/zhandao/zero-rails_openapi repositoryMetadata: base64Readme: >- IyBaUk86IE9wZW5BcGkgMyBKU09OLURvYyBHZW5lcmF0b3IgZm9yIFJhaWxzCgogIFshW0dlbSBWZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcmIvemVyby1yYWlsc19vcGVuYXBpLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9yYi96ZXJvLXJhaWxzX29wZW5hcGkpCiAgWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvemhhbmRhby96ZXJvLXJhaWxzX29wZW5hcGkuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvemhhbmRhby96ZXJvLXJhaWxzX29wZW5hcGkpCiAgWyFbTWFpbnRhaW5hYmlsaXR5XShodHRwczovL2FwaS5jb2RlY2xpbWF0ZS5jb20vdjEvYmFkZ2VzLzQ3MWZkNjBmNmViN2IwMTljZWVkL21haW50YWluYWJpbGl0eSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi96aGFuZGFvL3plcm8tcmFpbHNfb3BlbmFwaS9tYWludGFpbmFiaWxpdHkpCiAgWyFbVGVzdCBDb3ZlcmFnZV0oaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy80NzFmZDYwZjZlYjdiMDE5Y2VlZC90ZXN0X2NvdmVyYWdlKV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL3poYW5kYW8vemVyby1yYWlsc19vcGVuYXBpL3Rlc3RfY292ZXJhZ2UpCgogIENvbmNpc2UgRFNMIGZvciBnZW5lcmF0aW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzICgqKk9BUzMqKiwgZm9ybWVybHkgU3dhZ2dlcjMpIEpTT04gZG9jdW1lbnRhdGlvbiBmb3IgUmFpbHMgYXBwbGljYXRpb24uCiAgCiAgYGBgcnVieQogIGNsYXNzIEFwaTo6RXhhbXBsZXNDb250cm9sbGVyIDwgQXBpQ29udHJvbGxlcgogICAgYXBpIDp1cGRhdGUsICdQT1NUIHVwZGF0ZSBzb21lIHRoaW5nJyBkbwogICAgICBwYXRoICA6aWQsIEludGVnZXIKICAgICAgcXVlcnkgOnRva2VuLCBTdHJpbmcsIGRlc2M6ICdhcGkgdG9rZW4nLCBsZW5ndGg6IDE2CiAgICAgIGZvcm0gZGF0YTogeyBwaG9uZTogU3RyaW5nIH0KICAgIGVuZAogIGVuZAogIGBgYAoKIyMgQ29udHJpYnV0aW5nCgogICoqSGksIGhlcmUgaXMgWmhhbkRhbyA9IOKWvSA9ICAKICBJdCBtYXkgYmUgYSB2ZXJ5IHVzZWZ1bCB0b29sIGlmIHlvdSB3YW50IHRvIHdyaXRlIEFQSSBkb2N1bWVudCBjbGVhcmx5LiAgCiAgSSdtIGxvb2tpbmcgZm9yd2FyZCB0byB5b3VyIGlzc3VlIGFuZCBQUiEqKgogIAogIChUZXN0IGNhc2VzIGFyZSByaWNoLCBsaWtlOiBbYXBpIERTTF0oc3BlYy9hcGlfc3BlYy5yYikgYW5kIFtzY2hlbWEgT2JqXShzcGVjL29hc19vYmpzL3NjaGVtYV9vYmpfc3BlYy5yYikpCgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbQWJvdXQgT0FTXSgjYWJvdXQtb2FzKSAoT3BlbkFQSSBTcGVjaWZpY2F0aW9uKQotIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCi0gW0NvbmZpZ3VyZV0oI2NvbmZpZ3VyZSkKLSBbRFNMIFVzYWdlXSgjZHNsLXVzYWdlKQogIC0gW2EuQmFzaWMgRFNMXSgjYmFzaWMtZHNsKQogICAgLSBbYS4xLiByb3V0ZV9iYXNlXSgjMS1yb3V0ZV9iYXNlLXJlcXVpcmVkLWlmLXlvdXJlLW5vdC13cml0aW5nLWRzbC1pbi1jb250cm9sbGVyKQogICAgLSBbYS4yLiBkb2NfdGFnXSgjMi1kb2NfdGFnLW9wdGlvbmFsKQogICAgLSBbYS4zLiBjb21wb25lbnRzXSgjMy1jb21wb25lbnRzLW9wdGlvbmFsKQogICAgLSBbYS40LiBhcGldKCM0LWFwaS1yZXF1aXJlZCkKICAgIC0gW2EuNS4gYXBpX2RyeV0oIzUtYXBpX2RyeS1vcHRpb25hbCkKICAtIFtiLiBEU0xzIHdyaXR0ZW4gaW5zaWRlIGBhcGlgIGFuZCBgYXBpX2RyeWAncyBibG9ja10oI2RzbHMtd3JpdHRlbi1pbnNpZGUtYXBpLWFuZC1hcGlfZHJ5cy1ibG9jaykKICAgIC0gW2IuMS4gdGhpc19hcGlfaXNfaW52YWxpZCFdKCMxLXRoaXNfYXBpX2lzX2ludmFsaWQtYW5kLWl0cy1hbGlhc2VzKQogICAgLSBbYi4yLiBkZXNjXSgjMi1kZXNjLWRlc2NyaXB0aW9uLWZvci10aGUtY3VycmVudC1hcGkpCiAgICAtIFtiLjMuIHBhcmFtIGZhbWlseSBtZXRob2RzXSgjMy1wYXJhbS1mYW1pbHktbWV0aG9kcy1vYXMtLS1wYXJhbWV0ZXItb2JqZWN0KQogICAgLSBbYi40LiByZXF1ZXN0X2JvZHkgZmFtaWx5IG1ldGhvZHNdKCM0LXJlcXVlc3RfYm9keS1mYW1pbHktbWV0aG9kcy1vYXMtLS1yZXF1ZXN0LWJvZHktb2JqZWN0KQogICAgLSBbYi41LiByZXNwb25zZSBmYW1pbHkgbWV0aG9kc10oIzUtcmVzcG9uc2UtZmFtaWx5LW1ldGhvZHMtb2FzLS0tcmVzcG9uc2Utb2JqZWN0KQogICAgLSBbYi42LiBjYWxsYmFja10oIzYtY2FsbGJhY2stb2FzLS0tY2FsbGJhY2stb2JqZWN0KQogICAgLSBbYi43LiBBdXRoZW50aWNhdGlvbiBhbmQgQXV0aG9yaXphdGlvbl0oIzctYXV0aGVudGljYXRpb24tYW5kLWF1dGhvcml6YXRpb24pCiAgICAtIFtiLjguIHNlcnZlcl0oIzgtb3ZlcnJpZGluZy1nbG9iYWwtc2VydmVycy1ieS1zZXJ2ZXIpCiAgICAtIFtiLjkuIGRyeV0oIzktZHJ5KQogIC0gW2MuIERTTHMgd3JpdHRlbiBpbnNpZGUgYGNvbXBvbmVudHNgJ3MgYmxvY2tdKCNkc2xzLXdyaXR0ZW4taW5zaWRlLWNvbXBvbmVudHNzLWJsb2NrKQogIC0gW2QuIFNjaGVtYSBhbmQgVHlwZV0oI3NjaGVtYS1hbmQtdHlwZSkKICAgIC0gW2QuMS4gKFNjaGVtYSkgVHlwZV0oI3NjaGVtYS10eXBlKQogICAgLSBbZC4yLiBTY2hlbWFdKCNzY2hlbWEpCiAgICAtIFtkLjMuIENvbWJpbmVkIFNjaGVtYV0oI2NvbWJpbmVkLXNjaGVtYSkKLSBbUnVuISAtIEdlbmVyYXRlIEpTT04gZG9jdW1lbnRhdGlvbiBmaWxlXSgjcnVuLS0tZ2VuZXJhdGUtanNvbi1kb2N1bWVudGF0aW9uLWZpbGUpCi0gW1VzZSBTd2FnZ2VyIFVJKHZlcnkgYmVhdXRpZnVsIHdlYiBwYWdlKSB0byBzaG93IHlvdXIgRG9jdW1lbnRhdGlvbl0oI3VzZS1zd2FnZ2VyLXVpdmVyeS1iZWF1dGlmdWwtd2ViLXBhZ2UtdG8tc2hvdy15b3VyLWRvY3VtZW50YXRpb24pCi0gW1RyaWNrc10oI3RyaWNrcykKICAgIC0gW1dyaXRlIERTTCBzb21ld2hlcmUgZWxzZV0oI3RyaWNrMS0tLXdyaXRlLXRoZS1kc2wtc29tZXdoZXJlLWVsc2UpCiAgICAtIFtHbG9iYWwgRFJZaW5nXSgjdHJpY2syLS0tZ2xvYmFsLWRyeWluZykKICAgIC0gW0F1dG8gZ2VuZXJhdGUgZGVzY3JpcHRpb24gZm9ybSBlbnVtXSgjdHJpY2szLS0tYXV0by1nZW5lcmF0ZS1kZXNjcmlwdGlvbi1mb3JtLWVudW0pCiAgICAtIFtTa2lwIG9yIFVzZSBwYXJhbWV0ZXJzIGRlZmluZSBpbiBgYXBpX2RyeWBdKCN0cmljazQtLS1za2lwLW9yLXVzZS1wYXJhbWV0ZXJzLWRlZmluZS1pbi1hcGlfZHJ5KQogICAgLSBbQXR1byBHZW5lcmF0ZSBpbmRleC9zaG93IEFjdGlvbnMncyBSZXNwb25zZXMgQmFzZWQgb24gREIgU2NoZW1hXSgjdHJpY2s1LS0tYXV0by1nZW5lcmF0ZS1pbmRleHNob3ctYWN0aW9uc3MtcmVzcG9uc2UtdHlwZXMtYmFzZWQtb24tZGItc2NoZW1hKQotIFtUcm91Ymxlc2hvb3RpbmddKCN0cm91Ymxlc2hvb3RpbmcpCi0gW0Fib3V0IGBPcGVuQXBpLmRvY3NgIGFuZCBgT3BlbkFwaS5yb3V0ZXNfaW5kZXhgXSgjYWJvdXQtb3BlbmFwaWRvY3MtYW5kLW9wZW5hcGlyb3V0ZXNfaW5kZXgpCgojIyBBYm91dCBPQVMKCiAgRXZlcnl0aGluZyBhYm91dCBPQVMzIGlzIG9uIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvT3BlbkFQSS5uZXh0L3ZlcnNpb25zLzMuMC4wLm1kKQoKICBZb3UgY2FuIGdldHRpbmcgc3RhcnRlZCBmcm9tIFtzd2FnZ2VyLmlvXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2Jhc2ljLXN0cnVjdHVyZS8pCgogICoqSSBzdWdnZXN0IHlvdSBzaG91bGQgdW5kZXJzdGFuZCB0aGUgYmFzaWMgc3RydWN0dXJlIG9mIE9BUzMgYXQgbGVhc3QuKioKICBzdWNoIGFzIGNvbXBvbmVudCAoY2FuIGhlbHAgeW91IHJldXNlIERTTCBjb2RlLCB3aGVuIHlvdXIgYXBpcyBhcmUgdXNlZCB3aXRoIHRoZQogIHNhbWUgZGF0YSBzdHJ1Y3R1cmUpLgoKIyMgSW5zdGFsbGF0aW9uCgogIEFkZCB0aGlzIGxpbmUgdG8geW91ciBSYWlscydzIEdlbWZpbGU6CgogIGBgYHJ1YnkKICBnZW0gJ3plcm8tcmFpbHNfb3BlbmFwaScKICAjIG9yCiAgZ2VtICd6ZXJvLXJhaWxzX29wZW5hcGknLCBnaXRodWI6ICd6aGFuZGFvL3plcm8tcmFpbHNfb3BlbmFwaScKICBgYGAKCiAgQW5kIHRoZW4gZXhlY3V0ZToKCiAgICAgICQgYnVuZGxlCgojIyBDb25maWd1cmUKCiAgQ3JlYXRlIGFuIGluaXRpYWxpemVyLCBjb25maWd1cmUgWlJPIGFuZCBkZWZpbmUgeW91ciBPcGVuQXBpIGRvY3VtZW50cy4KCiAgVGhpcyBpcyB0aGUgc2ltcGxlc3QgZXhhbXBsZToKCiAgYGBgcnVieQogICMgaW4gY29uZmlnL2luaXRpYWxpemVycy9vcGVuX2FwaS5yYgogIHJlcXVpcmUgJ29wZW5fYXBpJwoKICBPcGVuQXBpOjpDb25maWcuY2xhc3NfZXZhbCBkbwogICAgIyBQYXJ0IDE6IGNvbmZpZ3Mgb2YgdGhpcyBnZW0KICAgIHNlbGYuZmlsZV9vdXRwdXRfcGF0aCA9ICdwdWJsaWMvb3Blbl9hcGknCgogICAgIyBQYXJ0IDI6IGNvbmZpZyAoRFNMKSBmb3IgZ2VuZXJhdGluZyBPcGVuQXBpIGluZm8KICAgIG9wZW5fYXBpIDpkb2NfbmFtZSwgYmFzZV9kb2NfY2xhc3NlczogW0FwaURvY10KICAgIGluZm8gdmVyc2lvbjogJzEuMC4wJywgdGl0bGU6ICdIb21lcGFnZSBBUElzJyMsIGRlc2NyaXB0aW9uOiAuLgogICAgIyBzZXJ2ZXIgJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGRlc2M6ICdJbnRlcm5hbCBzdGFnaW5nIHNlcnZlciBmb3IgdGVzdGluZycKICAgICMgYmVhcmVyX2F1dGggOkF1dGhvcml6YXRpb24KICBlbmQKICBgYGAKICAKIyMjIFBhcnQgMTogY29uZmlncyBvZiB0aGlzIGdlbQoKICAxLiBgZmlsZV9vdXRwdXRfcGF0aGAocmVxdWlyZWQpOiBUaGUgbG9jYXRpb24gd2hlcmUgLmpzb24gZG9jIGZpbGUgd2lsbCBiZSBvdXRwdXQuCiAgMi4gYGRlZmF1bHRfcnVuX2RyeWA6IGRlZmF1bHRzIHRvIHJ1biBkcnkgYmxvY2tzIGV2ZW4gaWYgdGhlIGBkcnlgIG1ldGhvZCBpcyBub3QgY2FsbGVkIGluIHRoZSAoQmFzaWMpIERTTCBibG9jay4gZGVmYXVsdHMgdG8gYGZhbHNlYC4KICAzLiBgZG9jX2xvY2F0aW9uYDogZ2l2ZSByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBmaWxlIG9yIGZvbGRlciBwYXRocy4gYERpcltkb2NfbG9jYXRpb25dYCB3aWxsIGJlIGByZXF1aXJlYCBiZWZvcmUgZG9jdW1lbnQgZ2VuZXJhdGVzLgogICAgICB0aGlzIG9wdGlvbiBpcyBvbmx5IGZvciBub3Qgd3JpdGluZyBzcGVjIGluIGNvbnRyb2xsZXJzLgogIDQuIGByYWlsc19yb3V0ZXNfZmlsZWA6IGdpdmUgYSB0eHQncyBmaWxlIHBhdGggKHdoaWNoJ3MgY29udGVudCBpcyB0aGUgY29weSBvZiBgcmFpbHMgcm91dGVzYCdzIG91dHB1dCkuIFRoaXMgd2lsbCBzcGVlZCB1cCBkb2N1bWVudCBnZW5lcmF0aW9uLiAKICA1LiBgbW9kZWxfYmFzZWA6IFRoZSBwYXJlbnQgY2xhc3Mgb2YgbW9kZWxzIGluIHlvdXIgYXBwbGljYXRpb24uIFRoaXMgb3B0aW9uIGlzIGZvciBhdXRvIGxvYWRpbmcgc2NoZW1hIGZyb20gZGF0YWJhc2UuCiAgNi4gYGZpbGVfZm9ybWF0YAoKIyMjIFBhcnQgMjogY29uZmlnIChEU0wpIGZvciBnZW5lcmF0aW5nIE9wZW5BcGkgaW5mbwoKICBgYGBydWJ5CiAgIyAxLiBvcGVuX2FwaQogICMgICBiYXNlX2RvY19jbGFzc2VzIHNob3VsZCBiZSBhbiBhcnJheSBvZiBiYXNlIGNsYXNzZXMgb2YgdGhlIGNsYXNzZXMgeW91IHdyaXRlIHRoZSBPcGVuQXBpIHNwZWMgaW4sIAogICMgICBsaWtlIFtBY3Rpb25Db250cm9sbGVyOjpCYXNlXSAoaWYgeW91IHdyaXRlIHNwZWMgaW4gY29udHJvbGxlcnMpLgogIG9wZW5fYXBpIGRvY19uYW1lLCBiYXNlX2RvY19jbGFzc2VzOiBbXQogIAogICMgMi4gaW5mbwogIGluZm8gdmVyc2lvbjosIHRpdGxlOiwgZGVzYzogJycsICoqYWRkaXRpb24KICAKICAjIDMuIHNlcnZlcgogICMgNC4gc2VjdXJpdHlfc2NoZW1lIC8gYmFzZV9hdXRoIC8gYmVhcmVyX2F1dGggLyBhcGlfa2V5CiAgIyA1LiBnbG9iYWxfc2VjdXJpdHlfcmVxdWlyZQogIGBgYAoKICBTZWUgYWxsIHRoZSBEU0xzOiBbY29uZmlnX2RzbC5yYl0obGliL29wZW5fYXBpL2NvbmZpZ19kc2wucmIpCgojIyBEU0wgVXNhZ2UKCiAgVGhlcmUgYXJlIHR3byBraW5kcyBvZiBEU0wgZm9yIHRoaXMgZ2VtOiAqKmJhc2ljKiogYW5kICoqaW5zaWRlIGJhc2ljKiouCiAgMS4gQmFzaWMgRFNMcyBhcmUgY2xhc3MgbWV0aG9kcyB3aGljaCBpcyBmb3IgZGVjbGFyaW5nIHlvdXIgQVBJcywgY29tcG9uZW50cywgYW5kIHNwZWMgY29kZSBEUllpbmcgLi4uCiAgMi4gRFNMcyB3cml0dGVuIGluc2lkZSB0aGUgYmxvY2sgb2YgQmFzaWMgRFNMcywgaXMgZm9yIGRlY2xhcmluZyB0aGUgcGFyYW1ldGVycywgcmVzcG9uc2VzIChhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpZWQgQVBJIGFuZCBjb21wb25lbnQuCgojIyMgRmlyc3Qgb2YgYWxsLCBgaW5jbHVkZSBPcGVuQXBpOjpEU0xgIGluIHlvdXIgYmFzZSBjbGFzcyAod2hpY2ggaXMgZm9yIHdyaXRpbmcgc3BlYyk6CgogIEZvciBleGFtcGxlOgogIGBgYHJ1YnkKICAjIGluIGFwcC9jb250cm9sbGVycy9hcGkvYXBpX2NvbnRyb2xsZXIucmIKICBjbGFzcyBBcGlDb250cm9sbGVyIDwgQWN0aW9uQ29udHJvbGxlcjo6QVBJCiAgICBpbmNsdWRlIE9wZW5BcGk6OkRTTAogIGVuZAogIGBgYAoKIyMjIERTTCBVc2FnZSBFeGFtcGxlCgogIEhlcmUgaXMgdGhlIHNpbXBsZXN0IHVzYWdlOgoKICBgYGBydWJ5CiAgY2xhc3MgQXBpOjpFeGFtcGxlc0NvbnRyb2xsZXIgPCBBcGlDb250cm9sbGVyCiAgICBhcGkgOmluZGV4LCAnR0VUIGxpc3QnIGRvCiAgICAgIHF1ZXJ5IDpwYWdlLCBJbnRlZ2VyIywgcmFuZ2U6IHsgZ2U6IDEgfSwgZGVmYXVsdDogMQogICAgICBxdWVyeSA6cm93cywgSW50ZWdlciMsIGRlc2M6ICdwZXIgcGFnZScsIHJhbmdlOiB7IGdlOiAxIH0sIGRlZmF1bHQ6IDEwCiAgICBlbmQKICBlbmQKICBgYGAKCiMjIyBCYXNpYyBEU0wKCiAgW3NvdXJjZSBjb2RlXShsaWIvb3Blbl9hcGkvZHNsLnJiKQoKIyMjIyAoMSkgYHJvdXRlX2Jhc2VgIFtyZXF1aXJlZCBpZiB5b3UncmUgbm90IHdyaXRpbmcgRFNMIGluIGNvbnRyb2xsZXJdCgogIGBgYHJ1YnkKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICByb3V0ZV9iYXNlIHBhdGgKICAjICoqIFVzYWdlCiAgcm91dGVfYmFzZSAnYXBpL3YxL2V4YW1wbGVzJwogIGBgYAoKICBbVXNhZ2VdKCN0cmljazEtLS13cml0ZS10aGUtZHNsLXNvbWV3aGVyZS1lbHNlKTogd3JpdGUgdGhlIERTTCBzb21ld2hlcmUgZWxzZSB0byBzaW1wbGlmeSB0aGUgY3VycmVudCBjb250cm9sbGVyLgoKIyMjIyAoMikgYGRvY190YWdgIFtvcHRpb25hbF0KCiAgYGBgcnVieQogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIGRvY190YWcgbmFtZTogbmlsLCAqKnRhZ19pbmZvCiAgIyAqKiBVc2FnZQogIGRvY190YWcgbmFtZTogJ0V4YW1wbGVUYWdOYW1lJywgZGVzY3JpcHRpb246ICJFeGFtcGxlc0NvbnRyb2xsZXIncyBBUElzIiMsIGV4dGVybmFsRG9jczogLi4uCiAgYGBgCiAgVGhpcyBtZXRob2QgYWxsb3dzIHlvdSB0byBzZXQgdGhlIFRhZyAod2hpY2ggaXMgYSBub2RlIG9mIFtPcGVuQXBpIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9PcGVuQVBJLm5leHQvdmVyc2lvbnMvMy4wLjAubWQjb3BlbmFwaS1vYmplY3QpKQogIG9mIGFsbCB0aGUgQVBJcyBpbiB0aGUgY2xhc3MuCgogIFRhZydzIG5hbWUgZGVmYXVsdHMgdG8gY29udHJvbGxlcl9uYW1lLgoKIyMjIyAoMykgYGNvbXBvbmVudHNgIFtvcHRpb25hbF0KCiAgYGBgcnVieQogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIGNvbXBvbmVudHMoJmJsb2NrKQogICMgKiogVXNhZ2UKICBjb21wb25lbnRzIGRvCiAgICAjIChibG9jayBpbnNpZGUpIERTTCBmb3IgZGVmaW5pbmcgY29tcG9uZW50cwogICAgc2NoZW1hIDpEb2dTY2hlbWEgPT4gWyB7IGlkOiBJbnRlZ2VyLCBuYW1lOiBTdHJpbmcgfSwgZGZ0OiB7IGlkOiAxLCBuYW1lOiAncGV0JyB9IF0KICAgIHF1ZXJ5ISA6VWlkUXVlcnkgID0+IFsgOnVpZCwgU3RyaW5nLCBkZXNjOiAndWlkJyBdCiAgICByZXNwb25zZSA6QmFkUnFSZXNwID0+IFsgJ2JhZCByZXF1ZXN0JywgOmpzb24gXQogIGVuZAoKICAjIHRvIHVzZSBjb21wb25lbnQKICBhcGkgOmFjdGlvbiBkbwogICAgcXVlcnkgOmRvZ2UsIDpEb2dTY2hlbWEgIyB0byB1c2UgYSBTY2hlbWEgY29tcG9uZW50CiAgICBwYXJhbV9yZWYgOlVpZFF1ZXJ5ICAgICAjIHRvIHVzZSBhIFBhcmFtZXRlciBjb21wb25lbnQKICAgIHJlc3BvbnNlX3JlZiA6QmFkUnFSZXNwICMgdG8gdXNlIGEgUmVzcG9uc2UgY29tcG9uZW50CiAgZW5kCiAgYGBgCiAgRWFjaCBSZWZPYmogaXMgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudHMgdGhyb3VnaCBjb21wb25lbnQga2V5LgoKICBXZSBzdWdnZXN0IHRoYXQgY29tcG9uZW50IGtleXMgc2hvdWxkIGJlIGNhbWVsaXplZCwgYW5kICoqbXVzdCBiZSBTeW1ib2wqKi4KCiMjIyMgKDQpIGBhcGlgIFtyZXF1aXJlZF0KCiAgRm9yIGRlZmluaW5nIEFQSSAob3Igd2UgY291bGQgc2F5IGNvbnRyb2xsZXIgYWN0aW9uKS4KCiAgYGBgcnVieQogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIGFwaSBhY3Rpb25fbmFtZSwgc3VtbWFyeSA9ICcnLCBpZDogbmlsLCB0YWc6IG5pbCwgaHR0cDogbmlsLCBkcnk6IENvbmZpZy5kZWZhdWx0X3J1bl9kcnksICZibG9jawogICMgKiogVXNhZ2UKICBhcGkgOmluZGV4LCAnKFNVTU1BUlkpIHRoaXMgYXBpIGJsYWggYmxhaCAuLi4nLCAjIGJsb2NrIC4uLgogIGBgYAogIAogIFBhcmFtZXRlcnMgZXhwbGFuYXRpb246CiAgMS4gYWN0aW9uX25hbWU6IG11c3QgYmUgdGhlIHNhbWUgYXMgY29udHJvbGxlciBhY3Rpb24gbmFtZQogIDIuIGlkOiBvcGVyYXRpb25JZAogIDMuIGh0dHA6IEhUVFAgbWV0aG9kIChsaWtlOiAnR0VUJyBvciAnR0VUfFBPU1QnKQogIAojIyMjICg1KSBgYXBpX2RyeWAgW29wdGlvbmFsXQoKICBUaGlzIG1ldGhvZCBpcyBmb3IgRFJZaW5nLgogIFRoZSBibG9ja3MgcGFzc2VkIHRvIGBhcGlfZHJ5YCB3aWxsIGJlIGV4ZWN1dGVkIHRvIHRoZSBzcGVjaWZpZWQgQVBJcyB3aGljaCBhcmUgaGF2aW5nIHRoZSBhY3Rpb25zIG9yIHRhZ3MgaW4gdGhlIGNsYXNzLgoKICBgYGBydWJ5CiAgIyAqKiBNZXRob2QgU2lnbmF0dXJlCiAgYXBpX2RyeSBhY3Rpb25fb3JfdGFncyA9IDphbGwsICZibG9jawogICMgKiogVXNhZ2UKICBhcGlfZHJ5IDphbGwsICdjb21tb24gcmVzcG9uc2UnICMgYmxvY2sgLi4uCiAgYXBpX2RyeSA6aW5kZXggIyBibG9jayAuLi4KICBhcGlfZHJ5IDpUYWdBICMgYmxvY2sgLi4uCgogIGFwaV9kcnkgWzppbmRleCwgOnNob3ddIGRvCiAgICBxdWVyeSAjLi4uCiAgZW5kCiAgYGBgCiAgCiAgQW5kIHRoZW4geW91IHNob3VsZCBjYWxsIGBkcnlgIG1ldGhvZCAoW2RldGFpbGVkIGluZm9dKCM5LWRyeSkpIGZvciBleGVjdXRpbmcgdGhlIGRlY2xhcmVkIGRyeSBibG9ja3M6CiAgYGBgcnVieQogIGFwaSA6aW5kZXggZG8KICAgIGRyeQogIGVuZAogIGBgYAoKIyMjIERTTHMgd3JpdHRlbiBpbnNpZGUgW2FwaV0oIzQtYXBpLXJlcXVpcmVkKSBhbmQgW2FwaV9kcnldKCM1LWFwaV9kcnktb3B0aW9uYWwpJ3MgYmxvY2sKCiAgW3NvdXJjZSBjb2RlXShsaWIvb3Blbl9hcGkvZHNsL2FwaS5yYikKCiAgVGhlc2UgZm9sbG93aW5nIG1ldGhvZHMgaW4gdGhlIGJsb2NrIGRlc2NyaWJlIHRoZSBzcGVjaWZpZWQgQVBJIGFjdGlvbjogZGVzY3JpcHRpb24sIHZhbGlkPywKICBwYXJhbWV0ZXJzLCByZXF1ZXN0IGJvZHksIHJlc3BvbnNlcywgc2VjdXJpdGllcyBhbmQgc2VydmVycy4KCiAgKEhlcmUgY29ycmVzcG9uZHMgdG8gT0FTIFtPcGVyYXRpb24gT2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL09wZW5BUEkubmV4dC92ZXJzaW9ucy8zLjAuMC5tZCNvcGVyYXRpb25PYmplY3QpKQoKIyMjIyAoMSkgYHRoaXNfYXBpX2lzX2ludmFsaWQhYCwgYW5kIGl0cyBhbGlhc2VzOgogIGBgYAogIHRoaXNfYXBpX2lzX2V4cGlyZWQhCiAgdGhpc19hcGlfaXNfdW51c2VkIQogIHRoaXNfYXBpX2lzX3VuZGVyX3JlcGFpciEKICBgYGAKCiAgYGBgcnVieQogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIHRoaXNfYXBpX2lzX2ludmFsaWQhKCopCiAgIyAqKiBVc2FnZQogIHRoaXNfYXBpX2lzX2ludmFsaWQhICdjYXVzZSBvbGQgdmVyc2lvbicKICBgYGAKCiAgQWZ0ZXIgdGhhdCwgYGRlcHJlY2F0ZWRgIGZpZWxkIG9mIHRoaXMgQVBJIHdpbGwgYmUgc2V0IHRvIHRydWUuCgojIyMjICgyKSBgZGVzY2A6IGRlc2NyaXB0aW9uIGZvciB0aGUgY3VycmVudCBBUEkKCiAgYGBgcnVieQogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIGRlc2Mgc3RyaW5nCiAgIyAqKiBVc2FnZQogIGRlc2MgImN1cnJlbnQgQVBJJ3MgZGVzY3JpcHRpb24iCiAgYGBgCgojIyMjICgzKSBgcGFyYW1gIGZhbWlseSBtZXRob2RzIChPQVMgLSBbUGFyYW1ldGVyIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9PcGVuQVBJLm5leHQvdmVyc2lvbnMvMy4wLjAubWQjcGFyYW1ldGVyT2JqZWN0KSkKCiAgVG8gZGVmaW5lIHBhcmFtZXRlciBmb3IgQVBJcy4KICBgYGAKICBwYXJhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMS4gbm9ybWFsIHVzYWdlCiAgcGFyYW1fcmVmICAgICAgICAgICAgICAgICAgICAgICAgICAjIDIuIGxpbmtzIHNlcGNpZmllZCBSZWZPYmpzIChieSBjb21wb25lbnQga2V5cykgdG8gY3VycmVudCBwYXJhbWV0ZXJzLgogIGhlYWRlciwgIHBhdGgsICBxdWVyeSwgIGNvb2tpZSAgICAgIyAzLiBwYXNzZXMgc3BlY2lmaWVkIHBhcmFtZXRlciBsb2NhdGlvbiAobGlrZSBoZWFkZXIpIHRvIGBwYXJhbWAKICBoZWFkZXIhLCBwYXRoISwgcXVlcnkhLCBjb29raWUhICAgICMgNC4gYmFuZyBtZXRob2Qgb2YgYWJvdmUgbWV0aG9kcwogIGluXyogYnk6IHsgcGFyYW1ldGVyX2RlZmluYXRpb25zIH0gIyA1LiBiYXRjaCBkZWZpbml0aW9uLCBzdWNoIGFzIGBpbl9wYXRoYCwgYGluX3F1ZXJ5YAogIGV4YW1wbGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgIyA2LiBleGFtcGxlcyBvZiBwYXJhbWV0ZXJzCiAgYGBgCiAgKipUaGUgYmFuZyBtZXRob2QgYW5kIHBhcmFtX25hbWUgKHdoaWNoJ3MgbmFtZSBpcyBlbmQgb2YgYSBleGNsYW1hdGlvbiBwb2ludCBgIWApIG1lYW5zIHRoaXMgcGFyYW0gaXMgcmVxdWlyZWQuIFdpdGhvdXQgYCFgIG1lYW5zIG9wdGlvbmFsLiBUSEUgU0FNRSBCRUxPVy4qKgoKICBgYGBydWJ5CiAgIyBQYXJ0IDEKICAjIHBhcmFtX3R5cGU6ICBsb2NhdGlvbiBvZiBwYXJhbWV0ZXIsIGxpa2U6IHF1ZXJ5LCBwYXRoIFtBXQogICMgcGFyYW1fbmFtZTogIG5hbWUgb2YgcGFyYW1ldGVyLCBpdCBjYW4gYmUgU3ltYm9sIG9yIFN0cmluZyBbQl0KICAjIHNjaGVtYV90eXBlOiB0eXBlIG9mIHBhcmFtZXRlciwgbGlrZTogU3RyaW5nLCBJbnRlZ2VyIChtdXN0IGJlIGEgY29uc3RhbnQpLiBzZWUgI3NjaGVtYS1hbmQtdHlwZQogICMgcmVxdWlyZWQ6ICAgIDpyZXF1aXJlZCAvIDpyZXEgT1IgOm9wdGlvbmFsIC8gOm9wdAogICMgc2NoZW1hOiAgICAgIHNlZSAjc2NoZW1hLWFuZC10eXBlIChpbmNsdWRpbmcgY29tYmluZWQgc2NoZW1hKQogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIHBhcmFtIHBhcmFtX3R5cGUsIHBhcmFtX25hbWUsIHNjaGVtYV90eXBlLCByZXF1aXJlZCwgc2NoZW1hID0geyB9CiAgIyAqKiBVc2FnZQogIHBhcmFtIDpxdWVyeSwgOnBhZ2UsIEludGVnZXIsIDpyZXEsICByYW5nZTogeyBndDogMCwgbGU6IDUgfSwgZGVzYzogJ3BhZ2UgbnVtYmVyJwoKICAjIFBhcnQgMgogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIHBhcmFtX3JlZiAqY29tcG9uZW50X2tleSAjIHNob3VsZCBwYXNzIGF0IGxlYXN0IDEga2V5CiAgIyAqKiBVc2FnZQogIHBhcmFtX3JlZiA6SWRQYXRoIywgOk5hbWVRdWVyeSwgOlRva2VuSGVhZGVyCgogICMgUGFydCAzICYgNAogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIGhlYWRlciBwYXJhbV9uYW1lLCBzY2hlbWFfdHlwZSA9IG5pbCwgKipzY2hlbWEKICBxdWVyeSEgcGFyYW1fbmFtZSwgc2NoZW1hX3R5cGUgPSBuaWwsICoqc2NoZW1hCiAgIyAqKiBVc2FnZQogIGhlYWRlciA6J1gtVG9rZW4nLCBTdHJpbmcKICBxdWVyeSEgOnJlYWRlZCwgQm9vbGVhbiwgZGVmYXVsdDogZmFsc2UKICAjIFRoZSBzYW1lIGVmZmVjdCBhcyBhYm92ZSwgYnV0IG5vdCBjb25jaXNlCiAgcGFyYW0gOnF1ZXJ5LCA6cmVhZGVkLCBCb29sZWFuLCA6cmVxLCBkZWZhdWx0OiBmYWxzZQoKICAjIFBhcnQgNSAKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBpbl9xdWVyeSAqKnBhcmFtc19hbmRfc2NoZW1hCiAgIyAqKiBVc2FnZQogIGluX3F1ZXJ5KAogICAgc2VhcmNoX3R5cGU6IFN0cmluZywKICAgICBzZWFyY2hfdmFsOiBTdHJpbmcsCiAgICAgICAgZXhwb3J0ITogeyB0eXBlOiBCb29sZWFuLCBkZXNjOiAnZXhwb3J0IGFzIHBkZicgfQogICkKICAjIFRoZSBzYW1lIGVmZmVjdCBhcyBhYm92ZQogIHF1ZXJ5ICA6c2VhcmNoX3R5cGUsIFN0cmluZwogIHF1ZXJ5ICA6c2VhcmNoX3ZhbCwgU3RyaW5nCiAgcXVlcnkhIDpleHBvcnQsIEJvb2xlYW4sIGRlc2M6ICdleHBvcnQgYXMgcGRmJwoKICAjIFBhcnQgNgogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIGV4YW1wbGVzIGV4cF9wYXJhbXMgPSA6YWxsLCBleGFtcGxlc19oYXNoCiAgIyAqKiBVc2FnZQogICMgU3VwcG9zZSB3ZSBoYXZlIHRocmVlIHBhcmFtZXRlcnM6IGlkLCBuYW1lLCBhZ2UKICAjICogbm9ybWFsCiAgZXhhbXBsZXMoCiAgICByaWdodF9pbnB1dDogWyAxLCAndXNlcicsIDI2IF0sCiAgICB3cm9uZ19pbnB1dDogWyAyLCAncmVzdScsIDM1IF0KICApCiAgIyAqIHVzaW5nIGV4cF9wYXJhbXMKICBleGFtcGxlcyBbOmlkLCA6bmFtZV0sIHsKICAgIHJpZ2h0X2lucHV0OiBbIDEsICd1c2VyJyBdLAogICAgd3JvbmdfaW5wdXQ6IFsgMiwgJ3Jlc3UnIF0KICB9CiAgYGBgCgogIFtBXSBPcGVuQVBJIDMuMCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXIgdHlwZXMgYmFzZWQgb24gdGhlIHBhcmFtZXRlciBsb2NhdGlvbjogCiAgICAgICoqaGVhZGVyLCBwYXRoLCBxdWVyeSwgY29va2llKiouIFttb3JlIGluZm9dKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGVzY3JpYmluZy1wYXJhbWV0ZXJzLykKCiAgW0JdIElmIGBwYXJhbV90eXBlYCBpcyBwYXRoLCBmb3IgZXhhbXBsZTogaWYgdGhlIEFQSSBwYXRoIGlzIGAvZ29vZC86aWRgLCB5b3UgaGF2ZSB0byBkZWNsYXJlIGEgcGF0aCBwYXJhbWV0ZXIgbmFtZWQgYGlkYAoKIyMjIyAoNCkgYHJlcXVlc3RfYm9keWAgZmFtaWx5IG1ldGhvZHMgKE9BUyAtIFtSZXF1ZXN0IEJvZHkgT2JqZWN0XShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL09wZW5BUEkubmV4dC92ZXJzaW9ucy8zLjAuMC5tZCNyZXF1ZXN0Qm9keU9iamVjdCkpCgogIE9wZW5BUEkgMy4wIHVzZXMgdGhlIHJlcXVlc3RCb2R5IGtleXdvcmQgdG8gZGlzdGluZ3Vpc2ggdGhlIHBheWxvYWQgZnJvbSBwYXJhbWV0ZXJzLgogIAogIE5vdGljZTogRWFjaCBBUEkgaGFzIG9ubHkgT05FIHJlcXVlc3QgYm9keSBvYmplY3QuIEVhY2ggcmVxdWVzdCBib2R5IG9iamVjdCBjYW4gaGFzIG11bHRpcGxlIG1lZGlhIHR5cGVzLgogIEl0IG1lYW5zOiBjYWxsIGByZXF1ZXN0X2JvZHlgIG11bHRpcGxlIHRpbWVzLCAoc2NoZW1hcykgd2lsbCBiZSBkZWVwbHkgbWVyZ2VkIChsZXQncyBjYWxsIGl0IFtmdXNpb25dKCNmdXNpb24pKSBpbnRvIGEgcmVxdWVzdCBib2R5IG9iamVjdC4KICBgYGAKICByZXF1ZXN0X2JvZHkgICMgMS4gbm9ybWFsIHVzYWdlCiAgYm9keV9yZWYgICAgICAjIDIuIGl0IGxpbmtzIHNlcGNpZmllZCBSZWZPYmpzIChieSBjb21wb25lbnQga2V5cykgdG8gdGhlIGJvZHkuCiAgYm9keSwgYm9keSEgICAjIDMuIGFsaWFzIG9mIHJlcXVlc3RfYm9keQogIGZvcm0sIGZvcm0hICAgIyA0LiB0byBkZWZpbmUgYSBtdWx0aXBhcnQvZm9ybS1kYXRhIHJlcXVlc3RfYm9keQogIGpzb24sIGpzb24hICAgIyA1LiB0byBkZWZpbmUgYSBhcHBsaWNhdGlvbi9qc29uIHJlcXVlc3RfYm9keQogIGRhdGEgICAgICAgICAgIyA1LiB0byBkZWZpbmUgW2FdIHByb3BlcnR5IGluIHRoZSBmb3JtLWRhdGEgcmVxdWVzdF9ib2R5CiAgYGBgCiAgQmFuZyBtZXRob2RzKCEpIG1lYW5zIHRoZSBzcGVjaWZpZWQgbWVkaWEtdHlwZSBib2R5IGlzIHJlcXVpcmVkLgoKICBgYGBydWJ5CiAgIyBQYXJ0IDEKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICAjIGEuIGBkYXRhYCBjb250YWlucyB0aGUgYXR0cmlidXRlcyAocGFyYW1zLCBvciBwcm9wZXJ0aWVzKSBhbmQgdGhlaXIgc2NoZW1hcyByZXF1aXJlZCBieSB0aGUgcmVxdWVzdCBib2R5CiAgIyBiLiBgYXR0cl9uYW1lIWAgbWVhbnMgaXQgaXMgcmVxdWlyZWQsIHdpdGhvdXQgJyEnIG1lYW5zIG9wdGlvbmFsCiAgIyBjLiBvcHRpb25zOiBkZXNjIC8gZXhwX3BhcmFtcyBhbmQgZXhhbXBsZXMKICAjIGQuIGF2YWlsYWJsZSBgbWVkaWFfdHlwZWAgc2VlOiAKICAjICAgaHR0cHM6Ly9naXRodWIuY29tL3poYW5kYW8vemVyby1yYWlsc19vcGVuYXBpL2Jsb2IvbWFzdGVyL2xpYi9vYXNfb2Jqcy9tZWRpYV90eXBlX29iai5yYiNMMjkKICByZXF1ZXN0X2JvZHkgcmVxdWlyZWQsIG1lZGlhX3R5cGUsIGRhdGE6IHsgfSwgZGVzYzogJycsICoqb3B0aW9ucwogICMgKiogVXNhZ2UKICByZXF1ZXN0X2JvZHkgOm9wdCwgOmZvcm0sIGRhdGE6IHsKICAgIGlkITogSW50ZWdlciwKICAgIG5hbWU6IHsgdHlwZTogU3RyaW5nLCBkZXNjOiAnbmFtZScgfQogIH0sIGRlc2M6ICdhIGZvcm0tZGF0YScKCiAgIyBQYXJ0IDIKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBib2R5X3JlZiBjb21wb25lbnRfa2V5CiAgIyAqKiBVc2FnZQogIGJvZHlfcmVmIDpVcGRhdGVVc2VyQm9keQoKICAjIFBhcnQgMwogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIGJvZHkhIG1lZGlhX3R5cGUsIGRhdGE6IHsgfSwgKipvcHRpb25zCiAgIyAqKiBVc2FnZQogIGJvZHkgOmpzb24KCiAgIyBQYXJ0IDQKICAjICoqIG1ldGhvZCBJbXBsZW1lbnQKICBkZWYgZm9ybSBkYXRhOiwgKipvcHRpb25zICMgb3IgYGZvcm0hYAogICAgYm9keSA6Zm9ybSwgZGF0YTogZGF0YSwgKipvcHRpb25zCiAgZW5kCiAgIyAqKiBVc2FnZQogIGZvcm0hIGRhdGE6IHsKICAgICAgICAgbmFtZSE6IFN0cmluZywKICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogU3RyaW5nLCBwYXR0ZXJuOiAvWzAtOV17NiwxMH0vIH0sCiAgfQogIGpzb24gZGF0YTogeyBuYW1lITogU3RyaW5nIH0KCiAgIyBQYXJ0IDUKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBkYXRhIG5hbWUsIHR5cGUgPSBuaWwsIHNjaGVtYSA9IHsgfQogICMgKiogVXNhZ2UKICBkYXRhIDpwYXNzd29yZCEsIFN0cmluZywgcGF0dGVybjogL1swLTldezYsMTB9LwogIGBgYAoKICA8YSBuYW1lPSJmdXNpb24iPjwvYT4gCiAgSG93ICoqZnVzaW9uKiogd29ya3M6CiAgMS4gRGlmZmVyZW5jZSBtZWRpYSB0eXBlcyB3aWxsIGJlIG1lcmdlZCBpbnRvIGByZXF1ZXN0Qm9keVsiY29udGVudCJdYAoKICBgYGBydWJ5CiAgZm9ybSBkYXRhOiB7IH0KICBib2R5IDpqc29uLCBkYXRhOiB7IH0KICAjIHdpbGwgZ2VuZXJhdGU6ICJjb250ZW50IjogeyAibXVsdGlwYXJ0L2Zvcm0tZGF0YSI6IHsgfSwgImFwcGxpY2F0aW9uL2pzb24iOiB7IH0gfQogIGBgYAoKICAyLiBUaGUgc2FtZSBtZWRpYS10eXBlcyB3aWxsIGJlIGRlZXBseSBtZXJnZWQgdG9nZXRoZXIsIGluY2x1ZGluZyB0aGVpciBgcmVxdWlyZWRgIGFycmF5OiAgCiAgICAgKFNvIHRoYXQgeW91IGNhbiBjYWxsIGBmb3JtYCBtdWx0aXBsZSB0aW1lcykKCiAgYGBgcnVieQogIGRhdGEgOnBhcmFtX2EhLCBTdHJpbmcKICBkYXRhIDpwYXJhbV9iLCAgSW50ZWdlcgogICMgb3Igc2FtZSBhczoKICBmb3JtIGRhdGE6IHsgOnBhcmFtX2EhID0+IFN0cmluZyB9CiAgZm9ybSBkYXRhOiB7IDpwYXJhbV9iICA9PiBJbnRlZ2VyIH0KICAjIHdpbGwgZ2VuZXJhdGU6IHsgInBhcmFtX2EiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgInBhcmFtX2IiOiB7ICJ0eXBlIjogImludGVnZXIiIH0gfSAoY2FsbCBpdCBYKQogICMgdGhlcmVmb3JlOgogICMgICAiY29udGVudCI6IHsgIm11bHRpcGFydC9mb3JtLWRhdGEiOgogICMgICAgIHsgInNjaGVtYSI6IHsgInR5cGUiOiAib2JqZWN0IiwgInByb3BlcnRpZXMiOiB7IFggfSwgInJlcXVpcmVkIjogWyAicGFyYW1fYSIgXSB9CiAgIyAgIH0KICBgYGAKCiMjIyMgKDUpIGByZXNwb25zZWAgZmFtaWx5IG1ldGhvZHMgKE9BUyAtIFtSZXNwb25zZSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvT3BlbkFQSS5uZXh0L3ZlcnNpb25zLzMuMC4wLm1kI3Jlc3BvbnNlLW9iamVjdCkpCgogIFRvIGRlZmluZSB0aGUgcmVzcG9uc2UgZm9yIEFQSXMuCiAgYGBgCiAgcmVzcG9uc2UgICAgICAjIDEuIGFsaWFzZXM6IGByZXNwYCBhbmQgYGVycm9yYAogIHJlc3BvbnNlX3JlZiAgIyAyLiBpdCBsaW5rcyBzZXBjaWZpZWQgUmVmT2JqcyAoYnkgY29tcG9uZW50IGtleXMpIHRvIHRoZSByZXNwb25zZS4KICBgYGAKCiAgYGBgcnVieQogICMgKiogTWV0aG9kIFNpZ25hdHVyZQogIHJlc3BvbnNlIGNvZGUsIGRlc2MsIG1lZGlhX3R5cGUgPSBuaWwsIGhlYWRlcnM6IHsgfSwgZGF0YTogeyB9LCAqKm9wdGlvbnMKICAjICoqIFVzYWdlCiAgcmVzcCAyMDAsICdzdWNjZXNzJywgOmpzb24sIGRhdGE6IHsgbmFtZTogJ3Rlc3QnIH0KICByZXNwb25zZSAyMDAsICdxdWVyeSByZXN1bHQnLCA6cGRmLCBkYXRhOiBGaWxlCiAgcmVzcG9uc2UgOnN1Y2Nlc3MsICdzdWNjJywgOmpzb24sIGhlYWRlcnM6IHsgJ1gtUmVxdWVzdC1TdGFydCc6IFN0cmluZyB9LCBkYXRhOiB7IH0KCiAgIyAqKiBNZXRob2QgU2lnbmF0dXJlCiAgcmVzcG9uc2VfcmVmIGNvZGVfYW5kX2NvbXBrZXlfaGFzaAogICMgKiogVXNhZ2UKICByZXNwb25zZV9yZWYgNzAwID0+IDpBUmVzcCwgODAwID0+IDpCUmVzcAogIGBgYAoKIyMjICg2KSBDYWxsYmFjayAoT0FTIC0gW0NhbGxiYWNrIE9iamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9PcGVuQVBJLm5leHQvdmVyc2lvbnMvMy4wLjAubWQjY2FsbGJhY2stb2JqZWN0KSkKCiAgW0Fib3V0IENhbGxiYWNrc10oaHR0cHM6Ly9zd2FnZ2VyLmlvL2RvY3Mvc3BlY2lmaWNhdGlvbi9jYWxsYmFja3MvKQogID4gSW4gT3BlbkFQSSAzIHNwZWNzLCB5b3UgY2FuIGRlZmluZSBjYWxsYmFja3Mg4oCTIGFzeW5jaHJvbm91cywgb3V0LW9mLWJhbmQgcmVxdWVzdHMgdGhhdCB5b3VyIHNlcnZpY2Ugd2lsbCBzZW5kIHRvIHNvbWUgb3RoZXIgc2VydmljZSBpbiByZXNwb25zZSB0byBjZXJ0YWluIGV2ZW50cy4gVGhpcyBoZWxwcyB5b3UgaW1wcm92ZSB0aGUgd29ya2Zsb3cgeW91ciBBUEkgb2ZmZXJzIHRvIGNsaWVudHMuICAKICAgIEEgdHlwaWNhbCBleGFtcGxlIG9mIGEgY2FsbGJhY2sgaXMgYSBzdWJzY3JpcHRpb24gZnVuY3Rpb25hbGl0eSAuLi4geW91IGNhbiBkZWZpbmUgdGhlIGZvcm1hdCBvZiB0aGUg4oCcc3Vic2NyaXB0aW9u4oCdIG9wZXJhdGlvbiBhcyB3ZWxsIGFzIHRoZSBmb3JtYXQgb2YgY2FsbGJhY2sgbWVzc2FnZXMgYW5kIGV4cGVjdGVkIHJlc3BvbnNlcyB0byB0aGVzZSBtZXNzYWdlcy4gIAogICAgVGhpcyBkZXNjcmlwdGlvbiB3aWxsIHNpbXBsaWZ5IGNvbW11bmljYXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgc2VydmVycyBhbmQgd2lsbCBoZWxwIHlvdSBzdGFuZGFyZGl6ZSB1c2Ugb2Ygd2ViaG9va3MgaW4geW91ciBBUEkuICAKICBbQ29tcGxldGUgWUFNTCBFeGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9leGFtcGxlcy92My4wL2NhbGxiYWNrLWV4YW1wbGUueWFtbCkKICAKICBUaGUgc3RydWN0dXJlIG9mIENhbGxiYWNrIE9iamVjdDoKICBgYGAKICBjYWxsYmFja3M6CiAgICBFdmVudDE6CiAgICAgIHBhdGgxOgogICAgICAgIC4uLgogICAgICBwYXRoMjoKICAgICAgIC4uLgogICAgRXZlbnQyOgogICAgICAuLi4KICBgYGAKICAKICBgY2FsbGJhY2tgIG1ldGhvZCBpcyBmb3IgZGVmaW5pbmcgY2FsbGJhY2tzLgogIGBgYHJ1YnkKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBjYWxsYmFjayBldmVudF9uYW1lLCBodHRwX21ldGhvZCwgY2FsbGJhY2tfdXJsLCAmYmxvY2sKICAjICoqIFVzYWdlCiAgY2FsbGJhY2sgOm15RXZlbnQsIDpwb3N0LCAnbG9jYWxob3N0OjMwMDAvYXBpL2dvb2RzJyBkbwogICAgcXVlcnkgOm5hbWUsIFN0cmluZwogICAgZGF0YSA6dG9rZW4sIFN0cmluZwogICAgcmVzcG9uc2UgMjAwLCAnc3VjY2VzcycsIDpqc29uLCBkYXRhOiB7IG5hbWU6IFN0cmluZywgZGVzY3JpcHRpb246IFN0cmluZyB9CiAgZW5kCiAgYGBgCiAgCiAgVXNlIHJ1bnRpbWUgZXhwcmVzc2lvbnMgaW4gY2FsbGJhY2tfdXJsOgogIGBgYHJ1YnkKICBjYWxsYmFjayA6bXlFdmVudCwgOnBvc3QsICd7Ym9keSBjYWxsYmFja19hZGRyfS9hcGkvZ29vZHMve3F1ZXJ5IGlkfScKICAjIHRoZSBmaW5hbCBVUkwgd2lsbCBiZTogeyRyZXF1ZXN0LmJvZHkjL2NhbGxiYWNrX2FkZHJ9L2FwaS9nb29kcy97JHJlcXVlc3QucXVlcnkuaWR9CiAgIyBOb3RlOiBPdGhlciBleHByZXNzaW9ucyBvdXRzaWRlICIkcmVxdWVzdCIgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0CiAgYGBgCgojIyMjICg3KSBBdXRoZW50aWNhdGlvbiBhbmQgQXV0aG9yaXphdGlvbgoKICBGaXJzdCBvZiBhbGwsIHBsZWFzZSBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSByZWFkIG9uZSBvZiB0aGUgZm9sbG93aW5nIGRvY3VtZW50czoKICBbT3BlbkFwaSBBdXRoXShodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL2F1dGhlbnRpY2F0aW9uLykKICBvciBbc2VjdXJpdHlTY2hlbWVPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzMuMC4wLm1kI3NlY3VyaXR5U2NoZW1lT2JqZWN0KQoKICAjIyMjIyBEZWZpbmUgU2VjdXJpdHkgU2NoZW1lCgogIFVzZSB0aGVzZSBEU0wgKippbiB5b3VyIGluaXRpYWxpemVyIGNvbmZpZyBvciBgY29tcG9uZW50c2AgYmxvY2sqKjoKICBgYGAKICBzZWN1cml0eV9zY2hlbWUgIyBhbGlhcyBgYXV0aF9zY2hlbWVgCiAgYmFzZV9hdXRoICAgICAgICMgd2lsbCBjYWxsIGBzZWN1cml0eV9zY2hlbWVgCiAgYmVhcmVyX2F1dGggICAgICMgd2lsbCBjYWxsIGBzZWN1cml0eV9zY2hlbWVgCiAgYXBpX2tleSAgICAgICAgICMgd2lsbCBjYWxsIGBzZWN1cml0eV9zY2hlbWVgCiAgYGBgCiAgSXQncyB2ZXJ5IHNpbXBsZSB0byB1c2UgKGlmIHlvdSB1bmRlcnN0YW5kIHRoZSBhYm92ZSBkb2N1bWVudCkKICBgYGBydWJ5CiAgIyAqKiBNZXRob2QgU2lnbmF0dXJlCiAgc2VjdXJpdHlfc2NoZW1lIHNjaGVtZV9uYW1lLCBvdGhlcl9pbmZvCiAgIyAqKiBVc2FnZQogIHNlY3VyaXR5X3NjaGVtZSA6QmFzaWNBdXRoLCB7IHR5cGU6ICdodHRwJywgc2NoZW1lOiAnYmFzaWMnLCBkZXNjOiAnYmFzaWMgYXV0aCcgfQoKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBiYXNlX2F1dGggc2NoZW1lX25hbWUsIG90aGVyX2luZm8gPSB7IH0KICBiZWFyZXJfYXV0aCBzY2hlbWVfbmFtZSwgZm9ybWF0ID0gJ0pXVCcsIG90aGVyX2luZm8gPSB7IH0KICBhcGlfa2V5IHNjaGVtZV9uYW1lLCBmaWVsZDosIGluOiwgKipvdGhlcl9pbmZvCiAgIyAqKiBVc2FnZQogIGJhc2VfYXV0aCA6QmFzaWNBdXRoLCBkZXNjOiAnYmFzaWMgYXV0aCcgIyB0aGUgc2FtZSBlZmZlY3QgYXMgYWJvdmUKICBiZWFyZXJfYXV0aCA6VG9rZW4KICBhcGlfa2V5IDpBcGlLZXlBdXRoLCBmaWVsZDogJ1gtQVBJLUtleScsIGluOiAnaGVhZGVyJywgZGVzYzogJ3Bhc3MgYXBpIGtleSB0byBoZWFkZXInCiAgYGBgCgogICMjIyMjIEFwcGx5IFNlY3VyaXR5CgogIGBgYAogICMgVXNlIGluIGluaXRpYWxpemVyIChHbG9iYWwgZWZmZWN0aXZlbmVzcykKICBnbG9iYWxfc2VjdXJpdHlfcmVxdWlyZSAjIGFsaWFzOiBnbG9iYWxfc2VjdXJpdHkgJiBnbG9iYWxfYXV0aAoKICAjIFVzZSBpbiBgYXBpYCdzIGJsb2NrIChPbmx5IHZhbGlkIGZvciB0aGUgY3VycmVudCBjb250cm9sbGVyKQogIHNlY3VyaXR5X3JlcXVpcmUgIyBhbGlhcyBzZWN1cml0eSAmIGF1dGhfd2l0aAogIGBgYAogIGBgYHJ1YnkKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBzZWN1cml0eV9yZXF1aXJlIHNjaGVtZV9uYW1lLCBzY29wZXM6IFsgXQogICMgKiogVXNhZ2UKICBnbG9iYWxfYXV0aCA6VG9rZW4KICBhdXRoX3dpdGggICA6T0F1dGgsIHNjb3BlczogJXdbIHJlYWRfZXhhbXBsZSBhZG1pbiBdCiAgYGBgCgojIyMjICg4KSBPdmVycmlkaW5nIEdsb2JhbCBTZXJ2ZXJzIGJ5IGBzZXJ2ZXJgCgogIGBgYHJ1YnkKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBzZXJ2ZXIgdXJsLCBkZXNjOiAnJwogICMgKiogVXNhZ2UKICBzZXJ2ZXIgJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGRlc2M6ICdsb2NhbCcKICBgYGAKICAKIyMjIyAoOSkgYGRyeWAKCiAgWW91IGhhdmUgdG8gY2FsbCBgZHJ5YCBtZXRob2QgaW5zaWRlIGBhcGlgIGJsb2NrLCBvciBwYXNzIGBkcnk6IHRydWVgIGFzIHBhcmFtZXRlciBvZiBgYXBpYCwKICBmb3IgZXhlY3V0aW5nIHRoZSBkcnkgYmxvY2tzIHlvdSBkZWNsYXJlZCBiZWZvcmUuIE90aGVyd2lzZSBub3RoaW5nIHdpbGwgaGFwcGVuLgogIAogIGBgYHJ1YnkKICAjICoqIE1ldGhvZCBTaWduYXR1cmUKICBkcnkgb25seTogbmlsLCBza2lwOiBuaWwsIG5vbmU6IGZhbHNlCiAgCiAgIyAqKiBVc2FnZQogICMgSW4gZ2VuZXJhbCwganVzdDoKICBkcnkKICAjIFRvIHNraXAgc29tZSBwYXJhbXMgZGVjbGFyZWQgaW4gZHJ5IGJsb2NrczoKICBkcnkgc2tpcDogWzppZCwgOm5hbWVdCiAgIyBgb25seWAgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIHBhcmFtZXRlcnMgd2lsbCBiZSB0YWtlbiBmcm9tIGRyeSBibG9ja3MKICBkcnkgb25seTogWzppZF0KICBgYGAKCiMjIyBEU0xzIHdyaXR0ZW4gaW5zaWRlIFtjb21wb25lbnRzXSgjMy1jb21wb25lbnRzLW9wdGlvbmFsKSdzIGJsb2NrCiAgW2NvZGUgc291cmNlXShsaWIvb3Blbl9hcGkvZHNsL2NvbXBvbmVudHMucmIpIChIZXJlIGNvcnJlc3BvbmRzIHRvIE9BUyBbQ29tcG9uZW50cyBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvT3BlbkFQSS5uZXh0L3ZlcnNpb25zLzMuMC4wLm1kI2NvbXBvbmVudHNPYmplY3QpKQoKICBJbnNpZGUgYGNvbXBvbmVudHNgJ3MgYmxvY2ssCiAgeW91IGNhbiB1c2UgdGhlIHNhbWUgRFNMcyBhcyBbRFNMcyB3cml0dGVuIGluc2lkZSBgYXBpYCBhbmQgYGFwaV9kcnlgJ3MgYmxvY2tdKCNkc2xzLXdyaXR0ZW4taW5zaWRlLWFwaS1hbmQtYXBpX2RyeXMtYmxvY2spLiAgCiAgQnV0IG5vdGljZSB0aGVyZSBhcmUgdHdvIGRpZmZlcmVuY2VzOgoKICAoMSkgRWFjaCBtZXRob2QgbmVlZHMgdG8gcGFzcyBvbmUgbW9yZSBwYXJhbWV0ZXIgYGNvbXBvbmVudF9rZXlgIChhcyB0aGUgZmlyc3QgcGFyYW1ldGVyKSwKICAgICAgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSByZWZlcmVuY2UgbmFtZSBmb3IgdGhlIGNvbXBvbmVudC4KCiAgYGBgcnVieQogIHF1ZXJ5ISA6VWlkUXVlcnksIDp1aWQsIFN0cmluZ++8jCBkZXNjOiAnaXQgaXMgYSBjb21wb25lbnQnCiAgIyAgICAgICAgIOKGkSAgICAgICAgIOKGkQogICMgY29tcG9uZW50X2tleSAgcGFyYW1fbmFtZQogIAogICMgWW91IGNhbiBhbHNvIHVzZSAiYXJyb3cgd3JpdGluZyIsIGl0IG1heSBiZSBlYXNpZXIgdG8gdW5kZXJzdGFuZAogIHF1ZXJ5ISA6VWlkUXVlcnkgPT4gWzp1aWQsIFN0cmluZywgZGVzYzogJyddCiAgYGBgCgogICgyKSBZb3UgY2FuIHVzZSBgc2NoZW1hYCB0byBkZWZpbmUgYSBTY2hlbWEgQ29tcG9uZW50LgoKICBgYGBydWJ5CiAgIyAqKiBNZXRob2QgU2lnbmF0dXJlCiAgc2NoZW1hIGNvbXBvbmVudF9rZXksIHR5cGUgPSBuaWwsICoqc2NoZW1hCiAgIyAqKiBVc2FnZQogIHNjaGVtYSA6RG9nICA9PiBbIFN0cmluZywgZGVzYzogJ2RvZ2UnIF0KICAjIGFkdmFuY2UgdXNhZ2UKICBzY2hlbWEgOkRvZyA9PiBbCiAgICAgIHsKICAgICAgICAgICBpZCE6IEludGVnZXIsCiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFN0cmluZywgZGVzYzogJ2RvZ2UgbmFtZScgfQogICAgICB9LCBkZWZhdWx0OiB7IGlkOiAxLCBuYW1lOiAncGV0JyB9CiAgXQogICMgb3IgZmxhdHRlbiB3cml0aW5nCiAgc2NoZW1hIDpEb2csIHsgaWQhOiBJbnRlZ2VyLCBuYW1lOiBTdHJpbmcgfSwgZGVmYXVsdDogeyBpZDogMSwgbmFtZTogJ3BldCcgfQogICMKICAjIHBhc3MgYSBBY3RpdmVSZWNvcmQgY2xhc3MgY29uc3RhbnQgYXMgYGNvbXBvbmVudF9rZXlgLAogICMgICBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgbG9hZCBzY2hlbWEgZnJvbSBkYXRhYmFzZSBhbmQgdGhlbiBnZW5lcmF0ZSB0aGUgY29tcG9uZW50LgogIHNjaGVtYSBVc2VyICMgZWFzeSEgQW5kIHRoZSBjb21wb25lbnRfa2V5IHdpbGwgYmUgOlVzZXIKICBgYGAKICBUbyBlbmFibGUgbG9hZCBzY2hlbWEgZnJvbSBkYXRhYmFzZSwgeW91IG11c3Qgc2V0IFttb2RlbCBiYXNlXSgjcGFydC0xLWNvbmZpZ3Mtb2YtdGhpcy1nZW0pIGNvcnJlY3RseS4KICAKIyMjIFNjaGVtYSBhbmQgVHlwZQoKICBzY2hlbWEgYW5kIHR5cGUgLS0gY29udGFpbiBlYWNoIG90aGVyCgojIyMjIChTY2hlbWEpIFR5cGUKCiAgU3VwcG9ydCBhbGwgW2RhdGEgdHlwZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvT3BlbkFQSS5uZXh0L3ZlcnNpb25zLzMuMC4wLm1kI2RhdGFUeXBlcykgaW4gT0FTLiAgIAoKICAxLiBTdHJpbmcgLyAnYmluYXJ5JyAvICdiYXNlNjQnIC8gJ3VyaScKICAyLiBJbnRlZ2VyIC8gTG9uZyAvICdpbnQzMicgLyAnaW50NjQnIC8gRmxvYXQgLyBEb3VibGUKICAzLiBGaWxlIChpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBgeyB0eXBlOiAnc3RyaW5nJywgZm9ybWF0OiBDb25maWcuZmlsZV9mb3JtYXQgfWApCiAgNC4gRGF0ZSAvIERhdGVUaW1lCiAgNS4gJ2Jvb2xlYW4nCiAgNi4gQXJyYXkgLyBBcnJheVtcPFR5cGVcPl0gKGxpa2U6IGBBcnJheVtTdHJpbmddYCwgYFtTdHJpbmddYCkKICA3LiBOZXN0ZWQgQXJyYXkgKGxpa2U6IGBbW1tJbnRlZ2VyXV1dYCkKICA4LiBPYmplY3QgLyBIYXNoIChPYmplY3Qgd2l0aCBwcm9wZXJ0aWVzKSAgCiAgICAgRXhhbXBsZTogYHsgaWQhOiBJbnRlZ2VyLCBuYW1lOiBTdHJpbmcgfWAKICA5LiBOZXN0ZWQgSGFzaDogYHsgaWQhOiBJbnRlZ2VyLCBuYW1lOiB7IGZpcnN0OiBTdHJpbmcsIGxhc3Q6IFN0cmluZyB9IH1gCiAgMTAuIE5lc3RlZCBBcnJheVtOZXN0ZWQgSGFzaF06IGBbW3sgaWQhOiBJbnRlZ2VyLCBuYW1lOiB7IGZpcnN0OiBTdHJpbmcsIGxhc3Q6IFN0cmluZyB9IH1dXWAKICAxMS4gU3ltYm9sIFZhbHVlOiBpdCB3aWxsIGdlbmVyYXRlIGEgU2NoZW1hIFJlZmVyZW5jZSBPYmplY3QgbGluayB0byB0aGUgY29tcG9uZW50IGNvcnJlc3BvbmQgdG8gQ29tcG9uZW50S2V5LCBsaWtlOiA6SWRQYXRoLCA6TmFtZVF1ZXJ5CiAgCiAgKipOb3RpY2UqKiB0aGF0IFN5bWJvbCBpcyBub3QgYWxsb3dlZCBpbiBhbGwgY2FzZXMgZXhjZXB0IDExLgogIAojIyMjIFNjaGVtYQoKICBbT0FTIFNjaGVtYSBPYmplY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvT3BlbkFQSS5uZXh0L3ZlcnNpb25zLzMuMC4wLm1kI3NjaGVtYU9iamVjdCkKICBhbmQgW3NvdXJjZSBjb2RlXShodHRwczovL2dpdGh1Yi5jb20vemhhbmRhby96ZXJvLXJhaWxzX29wZW5hcGkvYmxvYi9tYXN0ZXIvbGliL29hc19vYmpzL3NjaGVtYV9vYmoucmIpCiAgCiAgU2NoZW1hIChIYXNoKSBpcyBmb3IgZGVmaW5pbmcgcHJvcGVydGllcyBvZiBwYXJhbWV0ZXJzLCByZXNwb25zZXMgYW5kIHJlcXVlc3QgYm9kaWVzLgogIAogIFRoZSBmb2xsb3dpbmcgcHJvcGVydHkga2V5cyB3aWxsIGJlIHByb2Nlc3Mgc2xpZ2h0bHk6CiAgMS4gZGVzYyAvIGRlc2NyaXB0aW9uIC8gZAogIDIuIGVudW0gLyBpbiAvIHZhbHVlcyAvIGFsbG93YWJsZV92YWx1ZXMgIAogICAgIHNob3VsZCBiZSBBcnJheSBvciBSYW5nZQogIDMuIHJhbmdlOiBhbGxvdyB2YWx1ZSBpbiB0aGlzIGNvbnRpbnVvdXMgcmFuZ2UgIAogICAgIHNob3VsZCBiZSBSYW5nZSBvciBsaWtlIGB7IGd0OiAwLCBsZTogNSB9YAogIDQuIGxlbmd0aCAvIHNpemUgLyBsdGggIAogICAgIHNob3VsZCBiZSBhbiBJbnRlZ2VyLCBJbnRlZ2VyIEFycmF5LCBJbnRlZ2VyIFJhbmdlLCAKICAgICBvciB0aGUgZm9sbG93aW5nIGZvcm1hdCBTeW1ib2w6IGA6Z3RfYCwgYDpnZV9gLCBgOmx0X2AsIGA6bGVfYCAoOmdlXzUgbWVhbnMgImdyZWF0ZXIgdGhhbiBvciBlcXVhbCA1IjsgOmx0XzkgbWVhbnMgImxvd2VyIHRoYW4gOSIpCiAgNS4gcGF0dGVybiAvIHJlZ3hwCiAgNi4gYWRkaXRpb25hbF9wcm9wZXJ0aWVzIC8gYWRkX3Byb3AgLyB2YWx1ZXNfdHlwZQogIDcuIGV4YW1wbGUKICA4LiBleGFtcGxlcwogIDkuIGZvcm1hdAogIDEwLiBkZWZhdWx0OiBkZWZhdWx0IHZhbHVlCiAgMTEuIHR5cGUKCiAgVGhlIG90aGVyIGtleXMgd2lsbCBiZSBkaXJlY3RseSBtZXJnZWQuIFN1Y2ggYXM6CiAgMS4gYHRpdGxlOiAnUHJvcGVydHkgVGl0bGUnYAogIDIuIGBteUN1c3RvbUtleTogJ1ZhbHVlJ2AKCiMjIyMgQ29tYmluZWQgU2NoZW1hCgogIFZlcnkgZWFzeSB0byB1c2U6CiAgYGBgcnVieQogIHF1ZXJ5IDpjb21iaW5hdGlvbiwgb25lX29mOiBbIDpHb29kU2NoZW1hLCBTdHJpbmcsIHsgdHlwZTogSW50ZWdlciwgZGVzYzogJ2ludGVnZXIgaW5wdXQnIH0gXQoKICBmb3JtIGRhdGE6IHsKICAgICAgOmNvbWJpbmF0aW9uX2luX2Zvcm0gPT4geyBhbnlfb2Y6IFsgSW50ZWdlciwgU3RyaW5nIF0gfQogIH0KCiAgc2NoZW1hIDpQZXRTY2hlbWEgPT4gWyBub3Q6IFsgSW50ZWdlciwgQm9vbGVhbiBdIF0KICBgYGAKCiAgT0FTOiBbbGluazFdKGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vZGF0YS1tb2RlbHMvb25lb2YtYW55b2YtYWxsb2Ytbm90LyksCiAgW2xpbmsyXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8zLjAuMC5tZCNzY2hlbWFPYmplY3QpCgojIyBSdW4hIC0gR2VuZXJhdGUgSlNPTiBEb2N1bWVudGF0aW9uIEZpbGUKCiAgVXNlIGBPcGVuQXBpLndyaXRlX2RvY3NgOgoKICBgYGBydWJ5CiAgT3BlbkFwaS53cml0ZV9kb2NzIyBpZjogIVJhaWxzLmVudi5wcm9kdWN0aW9uPwogIGBgYAoKICBgaWZgIG9wdGlvbiBpcyB1c2VkIHRvIGNvbnRyb2wgd2hldGhlciBhIEpTT04gZG9jdW1lbnQgaXMgZ2VuZXJhdGVkIG9yIG5vdC4KICAKICBUaGVuIHRoZSBKU09OIGZpbGVzIHdpbGwgYmUgd3JpdHRlbiB0byB0aGUgZGlyZWN0b3JpZXMgeW91IHNldC4gKEVhY2ggQVBJIGEgZmlsZS4pCgojIyBVc2UgU3dhZ2dlciBVSSh2ZXJ5IGJlYXV0aWZ1bCB3ZWIgcGFnZSkgdG8gc2hvdyB5b3VyIERvY3VtZW50YXRpb24KCiAgRG93bmxvYWQgW1N3YWdnZXIgVUldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKSAodmVyc2lvbiA+PSAyLjMuMCBzdXBwb3J0IHRoZSBPQVMzKQogIHRvIHlvdXIgcHJvamVjdCwKICBjaGFuZ2UgdGhlIGRlZmF1bHQgSlNPTiBmaWxlIHBhdGgodXJsKSBpbiBpbmRleC5odG1sLgogIEluIG9yZGVyIHRvIHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGVuYWJsZSBDT1JTLCBbc2VlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSNjb3JzLXN1cHBvcnQpCgojIyBUcmlja3MKCiMjIyBUcmljazEgLSBXcml0ZSB0aGUgRFNMIFNvbWV3aGVyZSBFbHNlCgogIERvZXMgeW91ciBkb2N1bWVudGF0aW9uIHRha2UgdG9vIG1hbnkgbGluZXM/ICAKICBEbyB5b3Ugd2FudCB0byBzZXBhcmF0ZSBkb2N1bWVudGF0aW9uIGZyb20gY29udHJvbGxlciB0byBzaW1wbGlmeSBib3RoPyAgCiAgVmVyeSBlYXN5ISBKdXN0IGZvbGxvdwoKICBgYGBydWJ5CiAgIyBjb25maWcvaW5pdGlhbGl6ZXJzL29wZW5fYXBpLnJiCiAgIyBpbiB5b3VyIGNvbmZpZ3VyYXRpb24KICBiYXNlX2RvY19jbGFzc2VzOiBbQXBpRG9jXQoKICAjIGFwcC9hcGlfZG9jL2FwaV9kb2MucmIKICByZXF1aXJlICdvcGVuX2FwaS9kc2wnCgogIGNsYXNzIEFwaURvYyA8IE9iamVjdAogICAgaW5jbHVkZSBPcGVuQXBpOjpEU0wKICBlbmQKCiAgIyBhcHAvYXBpX2RvYy92MS9leGFtcGxlc19kb2MucmIKICBjbGFzcyBWMTo6RXhhbXBsZXNEb2MgPCBBcGlEb2MKICAgIHJvdXRlX2Jhc2UgJ2FwaS92MS9leGFtcGxlcycKCiAgICBhcGkgOmluZGV4IGRvCiAgICAgICMgLi4uCiAgICBlbmQKICBlbmQKICBgYGAKCiAgRXhwbGFpbjogVGhlc2UgZm91ciBzdGVwcyBhcmUgbmVjZXNzYXJ5OgogIDEuIGNyZWF0ZSBhIGNsYXNzLCBsaWtlIEFwaURvYywgYW5kIG1ha2UgaXQgaW5jbHVkZSBPcGVuQXBpOjpEU0wgKHRoZW4gaXQgY291bGQgYmUgdGhlIGJhc2UgY2xhc3MgZm9yIHdyaXRpbmcgQXBpIHNwZWMpLgogIDIuIHNldCB0aGUgc3BlY2lmaWVkIEFwaSBzcGVjJ3MgYmFzZV9kb2NfY2xhc3NlcyB0byBBcGlEb2MuCiAgMy4gbGV0IHlvdXIgZG9jIGNsYXNzIChsaWtlIFYxOjpFeGFtcGxlc0RvYykgaW5oZXJpdCB0aGUgYmFzZV9kb2NfY2xhc3NlcyAoQXBpRG9jKS4KICA0LiBzZXQgdGhlIHJvdXRlX2Jhc2UgKHRvIHJvdXRlIHBhdGggYXBpL3YxL2V4YW1wbGVzIG9mIHRoYXQgY29udHJvbGxlciBBcGk6OlYxOjpFeGFtcGxlc0NvbnRyb2xsZXIpIGluc2lkZSBWMTo6RXhhbXBsZXNEb2MuCiAgCiAgTm90ZXM6IGZpbGUgbmFtZSBlbmRzIGluIGBfZG9jLnJiYCBieSBkZWZhdWx0LCBidXQgeW91IGNhbiBjaGFuZ2UgaXQgYnkgc2V0dGluZyBgQ29uZmlnLmRvY19sb2NhdGlvbmAKICAgIChpdCBzaG91bGQgYmUgZmlsZSBwYXRocywgZGVmYXVsdHMgdG8gYC4vYXBwLyoqLypfZG9jLnJiYCkuCgojIyMgVHJpY2syIC0gR2xvYmFsIERSWWluZwoKICBNZXRob2QgYGFwaV9kcnlgIGlzIGZvciBEUlkgYnV0IGl0cyBzY29wZSBpcyBsaW1pdGVkIHRvIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIuCgogIEkgaGF2ZSBubyBpZGVhIG9mIGJlc3QgcHJhY3RpY2VzLCBCdXQgeW91IGNhbiBsb29rIGF0IHRoaXMgW2ZpbGVdKGV4YW1wbGVzL2F1dG9fZ2VuX2RvYy5yYikuICAKICBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGZpbGUgaXM6IGRvIGBhcGlfZHJ5YCB3aGVuIGluaGVyaXRzIHRoZSBiYXNlIGNvbnRyb2xsZXIgaW5zaWRlIGBpbmhlcml0ZWRgIG1ldGhvZC4KCiAgWW91IGNhbiB1c2UgYHNvcnRgIHRvIHNwZWNpZnkgdGhlIG9yZGVyIG9mIHBhcmFtZXRlcnMuCgojIyMgVHJpY2szIC0gQXV0byBHZW5lcmF0ZSBEZXNjcmlwdGlvbiBmcm9tIEVudW0KCiAgSnVzdCB1c2UgYGVudW0hYDoKICBgYGBydWJ5CiAgcXVlcnkgOnNlYXJjaF90eXBlLCBTdHJpbmcsIGRlc2M6ICdzZWFyY2ggZmllbGQsIGFsbG93c++8mjxici8+JywgZW51bSE6ICV3W25hbWUgY3JlYXRvciBjYXRlZ29yeSBwcmljZV0KICAjIGl0IHdpbGwgZ2VuZXJhdGU6IAogICJzZWFyY2ggZmllbGQsIGFsbG93c++8mjxici8+MS8gbmFtZTxici8+Mi8gY3JlYXRvciw8YnIvPjMvIGNhdGVnb3J5PGJyLz40LyBwcmljZTxici8+IgogIGBgYAogIE9yIEhhc2ggYGVudW0hYDoKICBgYGBydWJ5CiAgcXVlcnkgOnZpZXcsIFN0cmluZywgZGVzYzogJ2FsbG93cyB2YWx1ZXM8YnIvPicsIGVudW0hOiB7CiAgICAgICAgICAnYWxsIGdvb2RzIChkZWZhdWx0KSc6IDphbGwsCiAgICAgICAgICAgICAgICAgICdvbmx5IG9ubGluZSc6IDpvbmxpbmUsCiAgICAgICAgICAgICAgICAgJ29ubHkgb2ZmbGluZSc6IDpvZmZsaW5lLAogICAgICAgICAgICAgICdleHBlbnNpdmUgZ29vZHMnOiA6Z2V0LAogICAgICAgICAgICAgICAgICAnY2hlYXAgZ29vZHMnOiA6Ym9ycm93LAogIH0KICBgYGAKCiMjIFRyb3VibGVzaG9vdGluZwoKLSAqKllvdSB3cm90ZSBkb2N1bWVudCBvZiB0aGUgY3VycmVudCBBUEksIGJ1dCBub3QgZmluZCBpbiB0aGUgZ2VuZXJhdGVkIGpzb24gZmlsZT8qKiAgCiAgQ2hlY2sgeW91ciByb3V0aW5nIHNldHRpbmdzLgoKLSAqKlJlcG9ydCBlcnJvciB3aGVuIHJlcXVpcmUgYHJvdXRlcy5yYmA/KioqCiAgMS4gUnVuIGByYWlscyByb3V0ZXNgLgogIDIuIENvcHkgdGhlIG91dHB1dCB0byBhIGZpbGUsIGZvciBleGFtcGxlIGBjb25maWcvcm91dGVzLnR4dGAuCiAgICAgSWdub3JlIHRoZSBmaWxlIGBjb25maWcvcm91dGVzLnR4dGAuCiAgMy4gUHV0IGBjLnJhaWxzX3JvdXRlc19maWxlID0gJ2NvbmZpZy9yb3V0ZXMudHh0J2AgdG8geW91ciBaUk8gY29uZmlnLgoKCiMjIEFib3V0IGBPcGVuQXBpLmRvY3NgIGFuZCBgT3BlbkFwaS5yb3V0ZXNfaW5kZXhgCgogIEFmdGVyIGBPcGVuQXBpLndyaXRlX2RvY3NgLCB0aGUgYWJvdmUgdHdvIG1vZHVsZSB2YXJpYWJsZXMgd2lsbCBiZSBnZW5lcmF0ZWQuCgogIGBPcGVuQXBpLmRvY3NgOiBBIEhhc2ggd2l0aCBBUEkgbmFtZXMgYXMga2V5cywgYW5kIGRvY3VtZW50cyBvZiBlYWNoIEFQSXMgYXMgdmFsdWVzLiAgCiAgZG9jdW1lbnRzIGFyZSBpbnN0YW5jZXMgb2YgQWN0aXZlU3VwcG9ydDo6SGFzaFdpdGhJbmRpZmZlcmVudEFjY2Vzcy4KCiAgYE9wZW5BcGkucm91dGVzX2luZGV4YDogSW52ZXJ0ZWQgaW5kZXggb2YgY29udHJvbGxlciBwYXRoIHRvIEFQSSBuYW1lIG1hcHBpbmdzLiAgCiAgTGlrZTogYHsgJ2FwaS92MS9leGFtcGxlcycgPT4gOmhvbWVwYWdlX2FwaSB9YCAgCiAgSXQncyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBsb29rIHVwIGEgZG9jdW1lbnQgYmFzZWQgb24gYSBjb250cm9sbGVyIGFuZCBkbyBzb21ldGhpbmcuCgojIyBEZXZlbG9wbWVudAoKICBBZnRlciBjaGVja2luZyBvdXQgdGhlIHJlcG8sIHJ1biBgYmluL3NldHVwYCB0byBpbnN0YWxsIGRlcGVuZGVuY2llcy4gVGhlbiwgcnVuIGByYWtlIHNwZWNgIHRvIHJ1biB0aGUgdGVzdHMuIFlvdSBjYW4gYWxzbyBydW4gYGJpbi9jb25zb2xlYCBmb3IgYW4gaW50ZXJhY3RpdmUgcHJvbXB0IHRoYXQgd2lsbCBhbGxvdyB5b3UgdG8gZXhwZXJpbWVudC4KCiAgVG8gaW5zdGFsbCB0aGlzIGdlbSBvbnRvIHlvdXIgbG9jYWwgbWFjaGluZSwgcnVuIGBidW5kbGUgZXhlYyByYWtlIGluc3RhbGxgLiBUbyByZWxlYXNlIGEgbmV3IHZlcnNpb24sIHVwZGF0ZSB0aGUgdmVyc2lvbiBudW1iZXIgaW4gYHZlcnNpb24ucmJgLCBhbmQgdGhlbiBydW4gYGJ1bmRsZSBleGVjIHJha2UgcmVsZWFzZWAsIHdoaWNoIHdpbGwgY3JlYXRlIGEgZ2l0IHRhZyBmb3IgdGhlIHZlcnNpb24sIHB1c2ggZ2l0IGNvbW1pdHMgYW5kIHRhZ3MsIGFuZCBwdXNoIHRoZSBgLmdlbWAgZmlsZSB0byBbcnVieWdlbXMub3JnXShodHRwczovL3J1YnlnZW1zLm9yZykuCgojIyBMaWNlbnNlCgogIFRoZSBnZW0gaXMgYXZhaWxhYmxlIGFzIG9wZW4gc291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgW01JVCBMaWNlbnNlXShodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuCgojIyBDb2RlIG9mIENvbmR1Y3QKCiAgRXZlcnlvbmUgaW50ZXJhY3RpbmcgaW4gdGhlIFplcm8tUmFpbHNPcGVuQXBpIHByb2plY3TigJlzIGNvZGViYXNlcywgaXNzdWUgdHJhY2tlcnMsIGNoYXQgcm9vbXMgYW5kIG1haWxpbmcgbGlzdHMgaXMgZXhwZWN0ZWQgdG8gZm9sbG93IHRoZSBbY29kZSBvZiBjb25kdWN0XShDT0RFX09GX0NPTkRVQ1QubWQpLgo= readmeEtag: '"0c9f9b900b7b94594b7b271215105f3bb1081310"' readmeLastModified: Mon, 26 Feb 2024 09:23:03 GMT repositoryId: 103143995 description: >- Concise DSL for generating OpenAPI Specification 3 (OAS3) JSON documentation for Ruby application. created: '2017-09-11T14:09:24Z' updated: '2024-07-24T12:40:29Z' language: Ruby archived: false stars: 166 watchers: 4 forks: 20 owner: zhandao logo: https://avatars.githubusercontent.com/u/24402029?v=4 license: MIT repoEtag: '"f3a16dc08dc7188d6fe5840dc86b306908d529a6ca53969d1ebd1d2e5a070f1f"' repoLastModified: Wed, 24 Jul 2024 12:40:29 GMT id: b6b6454891a26e88286d7f79814c63b0 - source: IMPLEMENTATIONS.md name: slush-vertx homepage: https://github.com/pmlopes/slush-vertx language: - Java - Kotlin - Groovy source_description: >- Generate server skeleton for [Vert.x Web API Contract](http://vertx.io/docs/#web) and API Client based on [Vert.x 3 Web Client](http://vertx.io/docs/#web) category: Code Generators foundInMaster: true repository: https://github.com/pmlopes/slush-vertx repositoryMetadata: base64Readme: >- IyBUaGlzIHByb2plY3QgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBodHRwczovL2dpdGh1Yi5jb20vcG1sb3Blcy92ZXJ0eC1zdGFydGVyCgoKIyBzbHVzaC12ZXJ0eAoKWyFbTlBNXShodHRwczovL25vZGVpLmNvL25wbS9zbHVzaC12ZXJ0eC5wbmc/ZG93bmxvYWRzPXRydWUmZG93bmxvYWRSYW5rPXRydWUmc3RhcnM9dHJ1ZSldKGh0dHBzOi8vbm9kZWkuY28vbnBtL3NsdXNoLXZlcnR4LykKClshW1R3aXR0ZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHdpdHRlci91cmwvaHR0cHMvZ2l0aHViLmNvbS9wbWxvcGVzL3NsdXNoLXZlcnR4LnN2Zz9zdHlsZT1zb2NpYWwpXShodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD90ZXh0PVdvdzomdXJsPSU1Qm9iamVjdCUyME9iamVjdCU1RCkKClNjYWZmb2xkIHdpdGggW1NsdXNoXVtzbHVzaC11cmxdIHlvdXIgbmV3IFZlcnQueCBhcHBsaWNhdGlvbiEKCnNsdXNoLXZlcnR4IGlzIGEgY29sbGVjdGlvbiBvZiB0ZW1wbGF0ZSBkcml2ZW4gY29kZSBnZW5lcmF0b3JzIHRvIHNjYWZmb2xkIFZlcnQueCBwcm9qZWN0cyBiYXNlZCBvbiBsYW5ndWFnZSBhbmQgYnVpbGQgdG9vbCB1c2VkLgoKIyMgR2VuZXJhdG9ycwoKfCBHZW5lcmF0b3IgfCBEZXNjcmlwdGlvbiB8IEphdmEgfCBLb3RsaW4gfCBKYXZhc2NyaXB0IHwgR3Jvb3Z5IHwgUnVieSB8CnwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLXwtLS0tLS0tLXwtLS0tLS0tLS0tLS18LS0tLS0tLS18LS0tLS0tfAp8ICoqVmVydC54IFN0YXJ0ZXIgcHJvamVjdCoqIHwgR2VuZXJhdGUgYW4gZW1wdHkgcHJvamVjdCBjb25maWd1cmVkIGZvciBWZXJ0LnggMyBGcmFtZXdvcmsgfDpoZWF2eV9jaGVja19tYXJrOiB8IDpoZWF2eV9jaGVja19tYXJrOiB8IDpoZWF2eV9jaGVja19tYXJrOiB8IDpoZWF2eV9jaGVja19tYXJrOiB8IDpoZWF2eV9jaGVja19tYXJrOiB8CnwgKipWZXJ0LnggV2ViIFNlcnZlciBTdGFydGVyKiogfCBHZW5lcmF0ZSBhIHNrZWxldG9uIHdpdGggc291cmNlcyBhbmQgdGVzdHMgZm9yIFZlcnQueCAzIFdlYiBwb3dlcmVkIFJFU1Qgc2VydmVyIHwgOmhlYXZ5X2NoZWNrX21hcms6IHwgOmhlYXZ5X2NoZWNrX21hcms6IHwgOmhlYXZ5X2NoZWNrX21hcms6IHwgOng6IHwgOng6IHwKfCAqKlZlcnQueCBXZWIgU2VydmVyIE9wZW5BUEkgcHJvamVjdCoqIHwgR2VuZXJhdGUgYSBza2VsZXRvbiBiYXNlZCBvbiBTd2FnZ2VyIDIvT3BlbkFQSSAzIHNwZWNpZmljYXRpb24gd2l0aCBzb3VyY2VzIGFuZCB0ZXN0cyBmb3IgVmVydC54IDMgV2ViIHBvd2VyZWQgUkVTVCBzZXJ2ZXIgfCA6aGVhdnlfY2hlY2tfbWFyazogfCA6aGVhdnlfY2hlY2tfbWFyazogfCA6eDogfCA6aGVhdnlfY2hlY2tfbWFyazogfCA6eDogfAp8ICoqVmVydC54IFdlYiBDbGllbnQgT3BlbkFQSSBwcm9qZWN0KiogfCBHZW5lcmF0ZSBhIGNsaWVudCBiYXNlZCBvbiBhIFN3YWdnZXIgMi9PcGVuQVBJIDMgc3BlY2lmaWNhdGlvbiB8IDpoZWF2eV9jaGVja19tYXJrOiB8IDpoZWF2eV9jaGVja19tYXJrOiB8IDp4OiB8IDpoZWF2eV9jaGVja19tYXJrOiB8IDp4OiB8CgpMaXN0IG9mIHN1cHBvcnRlZCBidWlsZCB0b29sczoKCiogTWF2ZW4KKiBHcmFkbGUKKiBOUE0KKiBOUE0gd2l0aCBqYXIgcGFja2FnaW5nICh0aGFua3MgdG8gW1ZlcnQueCBXZWJwYWNrIHBsdWdpbl0oaHR0cHM6Ly9naXRodWIuY29tL3BtbG9wZXMvd2VicGFjay12ZXJ0eC1wbHVnaW4pKQoKSWYgeW91IHdhbnQgdG8gYWRkIHlvdXIgb3duIGdlbmVyYXRvciBhbmQvb3IgYnVpbGQgdG9vbCBnaXZlIGEgbG9vayBhdCBbaG93IHRvIGNvbnRyaWJ1dGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9wbWxvcGVzL3NsdXNoLXZlcnR4L3dpa2kvSG93LXRvLWNvbnRyaWJ1dGUpCgojIyBJbnN0YWxsCgoxLiBJbnN0YWxsIFtgZ3VscC5qc2BdW2d1bHAtdXJsXQoyLiBJbnN0YWxsIFtTbHVzaF1bc2x1c2gtdXJsXQozLiBJbnN0YWxsIHRoZSBbYHNsdXNoLXZlcnR4YF1bZ2VuZXJhdG9yLXVybF0gZ2VuZXJhdG9yCgpgYGBzaAokIG5wbSBpbnN0YWxsIC1nIGd1bHAgc2x1c2ggc2x1c2gtdmVydHgKYGBgCgojIyBVc2FnZQoKRXhhbXBsZSBvZiBWZXJ0LnggU3RhcnRlciBnZW5lcmF0b3IKWyFbYXNjaWljYXN0XSguL2RlbW8uZ2lmKV0oaHR0cHM6Ly9hc2NpaW5lbWEub3JnL2EvbFIyM09Rck1uRFk2elpOZ2doOGtnVUFFNCkKCkV4YW1wbGUgb2YgVmVydC54IFdlYiBTdGFydGVyIGdlbmVyYXRvcgpbIVthc2NpaWNhc3RdKC4vZGVtbzIuZ2lmKV0oaHR0cHM6Ly9hc2NpaW5lbWEub3JnL2EvRE9aNjM5elV4a3NvTW80UHhEVWMxMnNOTykKCiMjIENvbnRyaWJ1dGUKCklmIHlvdSB3YW50IHRvIGFkZCBhIGdlbmVyYXRvciwgYWRkIHRlbXBsYXRlcyB0byBhbiBleGlzdGluZyBnZW5lcmF0b3Igb3Igc29tZXRoaW5nIGVsc2UgZ2l2ZSBhIGxvb2sgYXQgW2hvdyB0byBjb250cmlidXRlXShodHRwczovL2dpdGh1Yi5jb20vcG1sb3Blcy9zbHVzaC12ZXJ0eC93aWtpL0hvdy10by1jb250cmlidXRlKQoKIyMgQ2hhbmdlbG9nCgojIyMgMC4wLjMKCiogRml4ZWQgdGVtcGxhdGVzIGZvciBWZXJ0LnggMy41LjAgcmVsZWFzZQoqIFVwZGF0ZWQgYHN3YWdnZXIyb3BlbmFwaWAKCiMjIyAwLjAuMgoKKiBOZXcgbGlmZSB0byB0aGUgcHJvamVjdCEKCiMjIExpY2Vuc2UKCk1JVCDCqSBbUGF1bG8gTG9wZXNdKGh0dHA6Ly9qZXRkcm9uZS54eXopIGFuZCBbRnJhbmNlc2NvIEd1YXJkaWFuaV0oaHR0cDovL3NsaW5reWRldmVsb3Blci5naXRodWIuaW8pCgpbc2x1c2gtdXJsXTogaHR0cDovL3NsdXNoanMuZ2l0aHViLmlvCltndWxwLXVybF06IGh0dHA6Ly9ndWxwanMuY29tCltnZW5lcmF0b3ItdXJsXTogaHR0cHM6Ly9naXRodWIuY29tL3BtbG9wZXMvc2x1c2gtdmVydHgK readmeEtag: '"03060079455dd3a6a0461f53b538a4eb20e65fa9"' readmeLastModified: Tue, 26 Mar 2019 10:34:45 GMT repositoryId: 88743692 description: null created: '2017-04-19T12:42:00Z' updated: '2023-01-28T18:43:48Z' language: JavaScript archived: true stars: 36 watchers: 10 forks: 4 owner: pmlopes logo: https://avatars.githubusercontent.com/u/849467?v=4 repoEtag: '"b30239b3d9261b4c61e6a38205a844d313fe95503204eda369670417812c7e43"' repoLastModified: Sat, 28 Jan 2023 18:43:48 GMT id: d98d45414234c8d035261bf960a46a04 - source: IMPLEMENTATIONS.md name: swac homepage: https://github.com/swaggest/swac language: - PHP - Go source_description: Generates clients for Go and PHP from OpenAPI 2/3. category: Code Generators foundInMaster: true repository: https://github.com/swaggest/swac repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIDMuMCAvIFN3YWdnZXIgMi4wIGNvbXBpbGVyCgpBIHRvb2wgdG8gcmVuZGVyIEFQSSBzcGVjIGFzIGNvZGUuCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9zd2FnZ2VzdC9zd2FjLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3N3YWdnZXN0L3N3YWMpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9zd2FnZ2VzdC9zd2FjL2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3N3YWdnZXN0L3N3YWMpClshW0ltYWdlIFNpemVdKGh0dHBzOi8vaW1hZ2VzLm1pY3JvYmFkZ2VyLmNvbS9iYWRnZXMvaW1hZ2Uvc3dhZ2dlc3Qvc3dhYy5zdmcpXShodHRwczovL21pY3JvYmFkZ2VyLmNvbS9pbWFnZXMvc3dhZ2dlc3Qvc3dhYykKIVtDb2RlIGxpbmVzXShodHRwczovL3Nsb2MueHl6L2dpdGh1Yi9zd2FnZ2VzdC9zd2FjLz9jYXRlZ29yeT1jb2RlKQohW0NvbW1lbnRzXShodHRwczovL3Nsb2MueHl6L2dpdGh1Yi9zd2FnZ2VzdC9zd2FjLz9jYXRlZ29yeT1jb21tZW50cykKCiMjIEluc3RhbGxhdGlvbgoKIyMjIFBoYXIKCkRvd25sb2FkIGBzd2FjYCBmcm9tIFtyZWxlYXNlc10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXN0L3N3YWMvcmVsZWFzZXMpIHBhZ2UuCgojIyMgRG9ja2VyCgpgYGBiYXNoCmRvY2tlciBydW4gLS1ybSBzd2FnZ2VzdC9zd2FjIHN3YWMgLS1oZWxwCmBgYAoKYGBgCnYwLjEuMjggc3dhYwpPcGVuQVBJL1N3YWdnZXIgY29tcGlsZXIsIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9zd2FjClVzYWdlOiAKICAgc3dhYyA8YWN0aW9uPgogICBhY3Rpb24gICBBY3Rpb24gbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBBbGxvd2VkIHZhbHVlczogcGhwLWd1enpsZS1jbGllbnQsIGdvLWNsaWVudCwganMtY2xpZW50LCBtYXJrZG93bgouLi4KYGBgCgpFeGFtcGxlCgpgYGBiYXNoCm1rZGlyIHBldHN0b3JlICYmIGNkIHBldHN0b3JlCmRvY2tlciBydW4gLXYgJChwd2QpOi9jb2RlIC11IDEwMDA6MTAwMCBzd2FnZ2VzdC9zd2FjIHN3YWMgcGhwLWd1enpsZS1jbGllbnQgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFzdGVyL2V4YW1wbGVzL3YyLjAvanNvbi9wZXRzdG9yZS5qc29uIC0tbmFtZXNwYWNlIE15QXBwXFxQZXRzdG9yZQpgYGAKClNjaGVtYSBjYW4gYmUgcGFzc2VkIGJ5IFNURElOIHVzaW5nIGAtYCBhcyBmaWxlIHBhdGguCgpgYGBiYXNoCmNhdCAuL29wZW5hcGkuanNvbiB8IGRvY2tlciBydW4gLWkgLS1ybSBzd2FnZ2VzdC9zd2FjIHN3YWMgbWFya2Rvd24gLQpgYGAKCiMjIyBDb21wb3NlcgoKW0luc3RhbGwgUEhQIENvbXBvc2VyXShodHRwczovL2dldGNvbXBvc2VyLm9yZy9kb2MvMDAtaW50cm8ubWQpCgpgYGBiYXNoCmNvbXBvc2VyIGdsb2JhbCByZXF1aXJlIHN3YWdnZXN0L3N3YWMKYGBgCgojIyBVc2FnZQoKIyMjIFBIUCBDbGllbnQKCmBgYApzd2FjIHBocC1ndXp6bGUtY2xpZW50IC0taGVscApgYGAKCmBgYAp2MC4xLjAgc3dhYyBwaHAtZ3V6emxlLWNsaWVudApPcGVuQVBJL1N3YWdnZXIgY29tcGlsZXIsIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9zd2FjClVzYWdlOiAKICAgc3dhYyBwaHAtZ3V6emxlLWNsaWVudCA8c2NoZW1hUGF0aD4gLS1uYW1lc3BhY2UgPG5hbWVzcGFjZT4KICAgc2NoZW1hUGF0aCAgIFBhdGgvVVJMIHRvIE9wZW5BUEkvU3dhZ2dlciBzY2hlbWEKICAgCk9wdGlvbnM6IAogICAtLW9wZXJhdGlvbnMgPG9wZXJhdGlvbnM+ICAgICAgT3BlcmF0aW9ucyBmaWx0ZXIgaW4gZm9ybSBvZiBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBtZXRob2QvcGF0aCwgZGVmYXVsdCBlbXB0eQogICAtLXByb2plY3QtcGF0aCA8cHJvamVjdFBhdGg+ICAgUGF0aCB0byBwcm9qZWN0IHJvb3QsIGRlZmF1bHQgLi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAtLW5hbWVzcGFjZSA8bmFtZXNwYWNlPiAgICAgICAgUHJvamVjdCBuYW1lc3BhY2UKYGBgCgpUaGUgZ2VuZXJhdGVkIGNsaWVudCBkZXBlbmRzIG9uIFtgc3dhZ2dlc3QvcmVzdC1jbGllbnRgXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlc3QvcGhwLXJlc3QtY2xpZW50KSwKYGd1enpsZWh0dHAvZ3V6emxlYCA2LCBhbmQgW2Bzd2FnZ2VzdC9qc29uLXNjaGVtYWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9waHAtanNvbi1zY2hlbWEpLgoKW0V4YW1wbGVzXSgvZXhhbXBsZXMvcGhwLWd1enpsZS1jbGllbnQpLgoKIyMjIEdvIENsaWVudAoKYGBgCnN3YWMgZ28tY2xpZW50IC0taGVscCAKYGBgCgpgYGAKdjAuMS4xNCBzd2FjIGdvLWNsaWVudApPcGVuQVBJL1N3YWdnZXIgY29tcGlsZXIsIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9zd2FjClVzYWdlOiAKICAgc3dhYyBnby1jbGllbnQgPHNjaGVtYVBhdGg+CiAgIHNjaGVtYVBhdGggICBQYXRoL1VSTCB0byBPcGVuQVBJL1N3YWdnZXIgc2NoZW1hCiAgIApPcHRpb25zOiAKICAgLS1vcGVyYXRpb25zIDxvcGVyYXRpb25zPiAgICAgICAgICAgICAgIE9wZXJhdGlvbnMgZmlsdGVyIGluIGZvcm0gb2YgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgbWV0aG9kL3BhdGgsIGRlZmF1bHQgZW1wdHkgICAgICAgICAgICAgICAgICAKICAgLS1vdXQgPG91dD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gb3V0cHV0IHBhY2thZ2UsIGRlZmF1bHQgLi9jbGllbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1wa2ctbmFtZSA8cGtnTmFtZT4gICAgICAgICAgICAgICAgICAgIE91dHB1dCBwYWNrYWdlIG5hbWUsIGRlZmF1bHQgImNsaWVudCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1za2lwLWRlZmF1bHQtYWRkaXRpb25hbC1wcm9wZXJ0aWVzICAgIERvIG5vdCBhZGQgZmllbGQgcHJvcGVydHkgZm9yIHVuZGVmaW5lZCBgYWRkaXRpb25hbFByb3BlcnRpZXNgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1za2lwLWRvLW5vdC1lZGl0ICAgICAgICAgICAgICAgICAgICAgIFNraXAgYWRkaW5nICJETyBOT1QgRURJVCIgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1hZGQtcmVxdWVzdC10YWdzICAgICAgICAgICAgICAgICAgICAgIEFkZCBmaWVsZCB0YWdzIHdpdGggbmFtZSBhbmQgbG9jYXRpb24gdG8gcmVxdWVzdCBzdHJ1Y3R1cmUgcHJvcGVydGllcywgZS5nLiAnSUQgaW50IGBxdWVyeToiaWQiYCcKICAgLS1zaG93LWNvbnN0LXByb3BlcnRpZXMgICAgICAgICAgICAgICAgIFNob3cgcHJvcGVydGllcyB3aXRoIGNvbnN0YW50IHZhbHVlcywgaGlkZGVuIGJ5IGRlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1rZWVwLXBhcmVudC1pbi1wcm9wZXJ0eS1uYW1lcyAgICAgICAgIEtlZXAgcGFyZW50IHByZWZpeCBpbiBwcm9wZXJ0eSBuYW1lLCByZW1vdmVkIGJ5IGRlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1pZ25vcmUtbnVsbGFibGUgICAgICAgICAgICAgICAgICAgICAgIEFkZCBgb21pdGVtcHR5YCB0byBudWxsYWJsZSBwcm9wZXJ0aWVzLCByZW1vdmVkIGJ5IGRlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1pZ25vcmUteGdvLXR5cGUgICAgICAgICAgICAgICAgICAgICAgIElnbm9yZSBgeC1nby10eXBlYCBpbiBzY2hlbWEgdG8gc2tpcCBnZW5lcmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS13aXRoLXplcm8tdmFsdWVzICAgICAgICAgICAgICAgICAgICAgIFVzZSBwb2ludGVyIHR5cGVzIHRvIGF2b2lkIHplcm8gdmFsdWUgYW1iaWd1aXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1mbHVlbnQtc2V0dGVycyAgICAgICAgICAgICAgICAgICAgICAgIEFkZCBmbHVlbnQgc2V0dGVycyB0byBzdHJ1Y3QgZmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1pZ25vcmUtcmVxdWlyZWQgICAgICAgICAgICAgICAgICAgICAgIElnbm9yZSBpZiBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIGRlY2lkaW5nIG9uIHBvaW50ZXIgdHlwZSBvciBvbWl0ZW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1yZW5hbWVzIDxyZW5hbWVzLi4uPiAgICAgICAgICAgICAgICAgIE1hcCBvZiBleHBvcnRlZCBzeW1ib2wgcmVuYW1lcywgZXhhbXBsZSBGcm9tOlRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS13aXRoLXRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlICh1biltYXJzaGFsaW5nIHRlc3RzIGZvciBlbnRpdGllcyAoZXhwZXJpbWVudGFsIGZlYXR1cmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1yZXF1aXJlLXhnZW5lcmF0ZSAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlIHByb3BlcnRpZXMgd2l0aCBgeC1nZW5lcmF0ZTogdHJ1ZWAgb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS12YWxpZGF0ZS1yZXF1aXJlZCAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlIHZhbGlkYXRpb24gY29kZSB0byBjaGVjayByZXF1aXJlZCBwcm9wZXJ0aWVzIGR1cmluZyB1bm1hcnNoYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAKYGBgCgpbRXhhbXBsZXNdKC9leGFtcGxlcy9nby1jbGllbnQpLgoKVGhlIGdlbmVyYXRlZCBjbGllbnQgaXMgYSBzaW5nbGUgcGFja2FnZSB3aXRob3V0IGV4dGVybmFsIGRlcGVuZGVuY2llcy4KCiMjIyBKYXZhU2NyaXB0IENsaWVudAoKYGBgCnN3YWMganMtY2xpZW50IC0taGVscCAKYGBgCgpgYGAKdjAuMS4yMSBzd2FjIGpzLWNsaWVudApPcGVuQVBJL1N3YWdnZXIgY29tcGlsZXIsIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9zd2FjClVzYWdlOiAKICAgc3dhYyBqcy1jbGllbnQgPHNjaGVtYT4KICAgc2NoZW1hICAgUGF0aC9VUkwgdG8gT3BlbkFQSS9Td2FnZ2VyIHNjaGVtYQogICAKT3B0aW9uczogCiAgIC0tb3BlcmF0aW9ucyA8b3BlcmF0aW9ucz4gICAgICBPcGVyYXRpb25zIGZpbHRlciBpbiBmb3JtIG9mIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1ldGhvZC9wYXRoLCBkZWZhdWx0IGVtcHR5ICAgICAgICAgCiAgIC0taWdub3JlLW9wZXJhdGlvbi1pZCAgICAgICAgICBJZ25vcmUgb3BlcmF0aW9uSWQgYW5kIGFsd2F5cyBuYW1lIG9wZXJhdGlvbnMgdXNpbmcgbWV0aG9kIGFuZCBwYXRoICAgICAgICAgICAgICAgICAgICAgCiAgIC0tY2xpZW50LW5hbWUgPGNsaWVudE5hbWU+ICAgICBOYW1lIG9mIGdlbmVyYXRlZCBjbGllbnQgY2xhc3MsIGRlZmF1bHQgQVBJQ2xpZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgIC0tdHlwZXMtcHJlZml4IDx0eXBlc1ByZWZpeD4gICBQcmVmaXggZ2VuZXJhdGVkIGpzZG9jIGNsYXNzIG5hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgIC0tb3V0IDxvdXQ+ICAgICAgICAgICAgICAgICAgICBQYXRoIHRvIG91dHB1dCBmaWxlcywgZGVmYXVsdCAuL2NsaWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgIC0tcGF0Y2hlcyA8cGF0Y2hlcy4uLj4gICAgICAgICBKU09OIHBhdGNoZXMgdG8gYXBwbHkgdG8gc2NoZW1hIGZpbGUgYmVmb3JlIHByb2Nlc3NpbmcsIG1lcmdlIHBhdGNoZXMgYXJlIGFsc28gc3VwcG9ydGVkCmBgYAoKW0V4YW1wbGVzXSgvZXhhbXBsZXMvanMtY2xpZW50KS4KCmBgYApzd2FjIGpzLWNsaWVudCBvcGVuYXBpLmpzb24gLS1vdXQgLi8gLS1jbGllbnQtbmFtZSBCYWNrZW5kIC0tdHlwZXMtcHJlZml4IHhoCmBgYAoKVGhlIGdlbmVyYXRlZCBjbGllbnQgaXMgYSBFUzUgY2xhc3MgdXNpbmcgYFhNTEh0dHBSZXF1ZXN0YCBhbmQgYGpzZG9jYCB0eXBlIGRlZmluaXRpb25zIHdpdGhvdXQgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzCnN1aXRhYmxlIGZvciBkaXJlY3QgdXNhZ2UgaW4gYnJvd3NlcnMuCgojIyMgTWFya2Rvd24KCmBgYApzd2FjIG1hcmtkb3duIC0taGVscApgYGAKYGBgCnYwLjEuMjQgc3dhYyBtYXJrZG93bgpPcGVuQVBJL1N3YWdnZXIgY29tcGlsZXIsIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VzdC9zd2FjClVzYWdlOiAKICAgc3dhYyBtYXJrZG93biA8c2NoZW1hPgogICBzY2hlbWEgICBQYXRoL1VSTCB0byBPcGVuQVBJL1N3YWdnZXIgc2NoZW1hCiAgIApPcHRpb25zOiAKICAgLS1vcGVyYXRpb25zIDxvcGVyYXRpb25zPiAgICAgICAgIE9wZXJhdGlvbnMgZmlsdGVyIGluIGZvcm0gb2YgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgbWV0aG9kL3BhdGgsIGRlZmF1bHQgZW1wdHkgICAgICAgICAKICAgLS1pZ25vcmUtb3BlcmF0aW9uLWlkICAgICAgICAgICAgIElnbm9yZSBvcGVyYXRpb25JZCBhbmQgYWx3YXlzIG5hbWUgb3BlcmF0aW9ucyB1c2luZyBtZXRob2QgYW5kIHBhdGggICAgICAgICAgICAgICAgICAgICAKICAgLS1jbGllbnQtbmFtZSA8Y2xpZW50TmFtZT4gICAgICAgIE5hbWUgb2YgZ2VuZXJhdGVkIGNsaWVudCBjbGFzcywgZGVmYXVsdCBBUElDbGllbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1hZGQtc2NoZW1hLXVybCA8YWRkU2NoZW1hVXJsPiAgIEFkZCBzY2hlbWEgbGluayB0byB0aGUgZG9jdW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS10eXBlcy1wcmVmaXggPHR5cGVzUHJlZml4PiAgICAgIFByZWZpeCBnZW5lcmF0ZWQgdHlwZSBuYW1lcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1vdXQgPG91dD4gICAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gb3V0cHV0IGZpbGVzLCBkZWZhdWx0IC4vY2xpZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgLS1wYXRjaGVzIDxwYXRjaGVzLi4uPiAgICAgICAgICAgIEpTT04gcGF0Y2hlcyB0byBhcHBseSB0byBzY2hlbWEgZmlsZSBiZWZvcmUgcHJvY2Vzc2luZywgbWVyZ2UgcGF0Y2hlcyBhcmUgYWxzbyBzdXBwb3J0ZWQKIApgYGAKCltFeGFtcGxlc10oL2V4YW1wbGVzLykuCgpgYGAKc3dhYyBtYXJrZG93biBvcGVuYXBpLmpzb24gLS1vdXQgLi9BUEktRG9jcy5tZCAtLXR5cGVzLXByZWZpeCB4aApgYGAKCg== readmeEtag: '"e29647ec6c25983479f1116c193104ad3253a656"' readmeLastModified: Mon, 19 Feb 2024 17:36:15 GMT repositoryId: 215669955 description: 🤖 OpenAPI/Swagger client generator for PHP, Go and JavaScript (ES5) created: '2019-10-17T00:32:59Z' updated: '2024-05-03T11:21:40Z' language: PHP archived: false stars: 9 watchers: 2 forks: 3 owner: swaggest logo: https://avatars.githubusercontent.com/u/19609628?v=4 license: MIT repoEtag: '"18878da575aaf773021d9dcfc920450d359bb186ce2c1662b35b20dcbf899f1e"' repoLastModified: Fri, 03 May 2024 11:21:40 GMT id: 1486b541e99b5e3e5827ff4adf62f77a - source: openapi3 tags repository: https://github.com/silohub/product-apis v3: true repositoryMetadata: base64Readme: >- WyFbUHVibGlzaCBBUEkgUGFja2FnZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaWxvaHViL3Byb2R1Y3QtYXBpcy9hY3Rpb25zL3dvcmtmbG93cy9wYWNrYWdlcy1wdWJsaXNoLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vc2lsb2h1Yi9wcm9kdWN0LWFwaXMvYWN0aW9ucy93b3JrZmxvd3MvcGFja2FnZXMtcHVibGlzaC55bWwpClshW3BhZ2VzLWJ1aWxkLWRlcGxveW1lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaWxvaHViL3Byb2R1Y3QtYXBpcy9hY3Rpb25zL3dvcmtmbG93cy9wYWdlcy9wYWdlcy1idWlsZC1kZXBsb3ltZW50L2JhZGdlLnN2Zz9icmFuY2g9Z2gtcGFnZXMpXShodHRwczovL2dpdGh1Yi5jb20vc2lsb2h1Yi9wcm9kdWN0LWFwaXMvYWN0aW9ucy93b3JrZmxvd3MvcGFnZXMvcGFnZXMtYnVpbGQtZGVwbG95bWVudCkKCiMjIFNldHVwIGRlbCByZXBvc2l0b3JpbwpQYXJhIGNvbXBpbGFyIGVzdGUgcmVwb3NpdG9yaW8gc2UgbmVjZXNpdGFuIHVuIHBhciBkZSBjb25maWd1cmFjaW9uZXMgYWRpY2lvbmFsZXM6CiMjIyBDb25zZWd1aXIgdW4gUGVyc29uYWwgYWNjZXNzIHRva2VuIChQQVQpIGRlIEdpdEh1YgpDb21vIG5vcyB0ZW5lbW9zIHF1ZSBjb25lY3RhciBhbCByZXBvc2l0b3JpbyBkZSBwYXF1ZXRlcyBwcml2YWRvIGRlIEdpdGh1YiwgbmVjZXNpdGFzIHR1IHVzdWFyaW8geSB1biBQQVQgcGFyYSBhdXRlbnRpY2FydGUuCi0gQWPDoSBzZSBnZW5lcmFuIGxvcyBQZXJzb25hbCBhY2Nlc3MgdG9rZW5zOiAoaHR0cHM6Ly9naXRodWIuY29tL3NldHRpbmdzL3Rva2VucykKLSBIYXkgcXVlIGdlbmVyYXIgdW4gdG9rZW4gY29uIGVsIHNjb3BlICoqcmVhZDpwYWNrYWdlcyoqIHBvciBsbyBtZW5vcwotIExhIGV4cGlyYWNpw7NuIHB1ZWRlbiBkZWphcmxhIGVuICoqIk5vIGV4cGlyYXRpb24iKiogc2kgZXMgcXVlIGRlamFuIHNvbG8gZWwgcGVybWlzbyBwYXJhIGxlZXIKLSBsdWVnbyB0ZW7DqXMgcXVlIGNyZWFyIGRvcyBwcm9waWVkYWRlcyBlbiB0dSBzaGVsbAogIC0gKipTSEdIX1VTRVIqKjogdHUgdXN1YXJpbyBHaXRIdWIKICAtICoqU0hHSF9UT0tFTioqOiBlbCBQQVQgcXVlIHRlIGJhamFzdGUgcmVjacOpbgotIEVzdGUgbWlzbW8gdG9rZW4gdmEgYSBzZXJ2aXIgcGFyYSBjb25lY3RhcnNlIGVuIGVsIHJlcG8gZGUgZnJvbnRlbmRzLCBiYWNrZW5kcy4uLiA6LSkKCiMgRXN0cnVjdHVyYSBkZSBkaXJlY3RvcmlvcwotIFsqKm9wZW5hcGkqKl0ob3BlbmFwaS9SRUFETUUubWQpOiB0aWVuZSBsYXMgZnVlbnRlcyBkZSBsYXMgQVBJLiBTZXBhcmFkYXMgZW4gbGEgZXN0cnVjdHVyYSBzdWdlcmlkYSBwb3IgT3BlbkFQSS4KICAtIF9fKi55YW1sX186IGxhIHBhcGE6IGFjw6EgZXN0w6FuIGxhcyBBUEkgZGVjbGFyYWRhcywgcXVlIHVzYW4gcGF0aHMgeSBjb21wb25lbnRzCiAgLSBbKipwYXRocyoqXShvcGVuYXBpL3BhdGhzL1JFQURNRS5tZCk6IHRpZW5lIGxhIGRlZmluaWNpw7NuIGRlIGxhcyBvcGVyYWNpb25lcwogIC0gWyoqY29tcG9uZW50cyoqXShvcGVuYXBpL2NvbXBvbmVudHMvUkVBRE1FLm1kKTogdGllbmUgcGFyw6FtZXRyb3MsIHJlcXVlc3RzLCByZXNwb25zZXMsIGV0Yy4uLiBBc29jaWFkYXMgYSBsb3MgcGF0aHMuCgoqKlVuYSBkZWZpbmljacOzbiBpbXBvcnRhbnRlLi4uKio6IGxvcyBmdWVudGVzIGFkZW50cm8gZGUgb3BlbmFwaSBmdW5jaW9uYW4gZGlyZWN0bywgbm8gaGF5IHF1ZSBnZW5lcmFyIG5hZGEsIHNlIHB1ZWRlbiB2ZXIgeSBuYXZlZ2FyIHNpbiBwcm9ibGVtYS4gCkxhcyBBUEkgZW4geWFtbCBubyBzZSB0b2NhbiBlbiBlbCBidWlsZC4gU2UgdG9jYW4gcG9yIGFmdWVyYSBjb24gc2NyaXB0cywgcGVybyBsb3MgeWFtbCBubyBjYW1iaWFuIGR1cmFudGUgZWwgYnVpbGQuCgojIyBRdWUgZ2VuZXJhbW9zCi0gdW4gb3BlbmFwaS55YW1sIGNvbXBsZXRvIHBvciBjYWRhIEFQSSwgcXVlIG5vIGRlcGVuZGUgZGUgb3Ryb3MgYXJjaGl2b3MsIGNvbW8gZXN0w6FuIGxvcyBvcmlnaW5hbGVzCi0gdW5hIGNsYXNlIGFic3RyYWN0YSBjb21vIHNlcnZlciBwdWJsaWNhZGEgY29tbyBwYXF1ZXRlIGVuIEdpdGh1YiAKLSB1bmEgY2xpZW50ZSBqYXZhc2NyaXB0IGNvbiBBeGlvcyBwYXJhIGVsIGZyb250LiBwdWJsaWNhZG8gY29tbyBwYXF1ZXRlIGVuIEdpdGh1YgotIGVsIHNpdGlvIGRlIGRvY3VtZW50YWNpw7NuLCBwb3IgYWhvcmEgc3ViaWRvIGEgZ2l0aHViIHBhZ2VzCgojIFZlcnNpb25hZG8gZGUgQVBJcwpMYXMgQVBJIG5vIHNlIHZlcnNpb25hbiBjb21vIGVsIGPDs2RpZ28sIHNpbm8gcXVlIG5vc290cm9zIGRlY2lkaW1vcyBjYW1iaWFyIGxhIHZlcnNpb24uIAoKIyBEZXBlbmRlbmNpYXMKQWxndW5hcyBkZSBsYXMgY29zYXMgcXVlIHVzYW1vcyBwYXJhIHB1YmxpY2FyIGxhcyBBUEkKLSBbUmFwaURvY10oaHR0cHM6Ly9tcmluOS5naXRodWIuaW8vUmFwaURvYy8pIGVzdG8gc2lydmEgcGFyYSBtb3N0cmFyIGxhIGFwaSBZYW1sIGVuIGZvcm1hdG8gZW50ZW5kaWJsZS4uLiDCoWVzdMOhIG11eSBidWVuYSEKCiMgTW9kaWZpY2FyIHRlbXBsYXRlcwotIHBhcmEgZXh0cmFlciBsb3MgdGVtcGxhdGVzIGRlIHNlcnZlcjogYHBucG0gZXhlYyBvcGVuYXBpLWdlbmVyYXRvci1jbGkgYXV0aG9yIHRlbXBsYXRlIC0tZ2VuZXJhdG9yLW5hbWUgamF2YS1taWNyb25hdXQtc2VydmVyIC0tb3V0cHV0IC5zaWxvaHViL3RlbXBsYXRlcy9zZXJ2ZXItcGFja2FnZXMvZ2VuZXJhdG9yYAotIHBhcmEgZXh0cmFlciBsb3MgdGVtcGxhdGVzIGRlIGNsaWVudCBqczogYHBucG0gZXhlYyBvcGVuYXBpLWdlbmVyYXRvci1jbGkgYXV0aG9yIHRlbXBsYXRlIC0tZ2VuZXJhdG9yLW5hbWUgdHlwZXNjcmlwdC1heGlvcyAtLW91dHB1dCAuc2lsb2h1Yi90ZW1wbGF0ZXMvY2xpZW50LWphdmFzY3JpcHQtcGFja2FnZXMvZ2VuZXJhdG9yYAotIHBhcmEgZXh0cmFlciBsb3MgdGVtcGxhdGVzIGRlIGNsaWVudCBqYXZhOiBgcG5wbSBleGVjIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBhdXRob3IgdGVtcGxhdGUgLS1nZW5lcmF0b3ItbmFtZSBqYXZhLW1pY3JvbmF1dC1jbGllbnQgLS1vdXRwdXQgLnNpbG9odWIvdGVtcGxhdGVzL2NsaWVudC1qYXZhLXBhY2thZ2VzL2dlbmVyYXRvcmAKLSBwYXJhIGV4dHJhZXIgbG9zIHRlbXBsYXRlcyBkZSBhcGktZmlsZXM6IGBwbnBtIGV4ZWMgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGF1dGhvciB0ZW1wbGF0ZSAtLW91dHB1dCBidWlsZC90ZW1wbGF0ZXMvYXBpLWZpbGVzIC0tZ2VuZXJhdG9yLW5hbWUgb3BlbmFwaS15YW1sYAo= readmeEtag: '"fb466307aa679925c9623e311f08e44d66c95e99"' readmeLastModified: Thu, 02 Jun 2022 14:03:18 GMT repositoryId: 395638198 description: APIs del producto created: '2021-08-13T12:00:44Z' updated: '2022-02-02T22:09:01Z' language: Mustache archived: false stars: 0 watchers: 1 forks: 0 owner: silohub logo: https://avatars.githubusercontent.com/u/88662712?v=4 license: MIT repoEtag: '"691da21e17490670156e04eea0a0d9f6510ddf3d63b73ae5a0151fce19b4df89"' repoLastModified: Wed, 02 Feb 2022 22:09:01 GMT foundInMaster: true category: SDK id: a0ff9d2b34f7567c2fbbc3d4cfd79238 - source: openapi3 tags repository: https://github.com/unjello/openapi-mock-server v3: true repositoryMetadata: base64Readme: >- aW1hZ2U6Omh0dHA6Ly91bm1haW50YWluZWQudGVjaC9iYWRnZS5zdmdbbGluaz1odHRwOi8vdW5tYWludGFpbmVkLnRlY2gvXQ0KDQo9IERFUFJFQ0FURUQNCg0KX29wZW5hcGktbW9jay1zZXJ2ZXJfIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQsIHBsZWFzZSBjb25zaWRlciB1c2luZyBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1wYXJzZXJbc3dhZ2dlci1wYXJzZXJdLg0K readmeEtag: '"4dbd01d7084b7379956c760183af4a64ada7198f"' readmeLastModified: Wed, 01 May 2019 08:49:23 GMT repositoryId: 128439257 description: DEPRECATED. Create mock server based on Open API 3.0 specification file created: '2018-04-06T18:39:09Z' updated: '2019-05-01T08:50:53Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 1 owner: unjello logo: https://avatars.githubusercontent.com/u/155669?v=4 license: CC0-1.0 repoEtag: '"2e34e0a401edcb0fc64de861f59eb45a48c45d390c956652b6579e94f6350626"' repoLastModified: Wed, 01 May 2019 08:50:53 GMT foundInMaster: true category: - SDK - Code Generators id: a25664802eb7f4926581fd1e48ca435b - source: openapi3 tags repository: https://github.com/marioruiz/api-testing-example v3: true repositoryMetadata: base64Readme: >- IyBBUEkgdGVzdGluZyBleGFtcGxlCgpUaGUgcHVycG9zZSBvZiB0aGlzIGRvY3VtZW50IGlzIHRvIGJlIGFuIGVhc3kgZ3VpZGUgZm9yIGRldnMgYW5kIHRlc3RlcnMgdG8gc3RhcnQgdGVzdGluZyBSRVNUIEFQSXMganVzdCBpbiBtaW51dGVzLgoKRm9yIHRoZSBleGFtcGxlcyB3ZSB3aWxsIGJlIHRlc3RpbmcgdGhlIFsqKlViZXIqKl0oaHR0cHM6Ly9hcGkudWJlci5jb20pIEFQSSB1c2luZyBhIFlBTUwgU3dhZ2dlciAvIE9wZW4gQVBJIGZpbGUgYW5kIFsqKlJlcXJlcyoqXShodHRwczovL3JlcXJlcy5pbi8pIEFQSSB1c2luZyBhIG5vcm1hbCBSZXF1ZXN0IEhhc2ggZmlsZS4KClRvIGdlbmVyYXRlIHRoZSBSZXF1ZXN0IEhhc2hlcyBmcm9tIGEgKipTd2FnZ2VyKiogLyAqKk9wZW4gQVBJIGZpbGUqKiwgcnVuIHRoZSBmaWxlIC4vdXRpbHMvaW1wb3J0X3N3YWdnZXIucmIgb3IgdXNlIHRoZSAqKm9wZW5fYXBpX2ltcG9ydCoqIGNvbW1hbmQgbGluZSBleGVjdXRhYmxlLgoKSWYgeW91IHdhbnQgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBSU3BlYyB0ZXN0cyBmb3IgZXZlcnkgZW5kIHBvaW50IG9mIHlvdXIgU3dhZ2dlciBmaWxlLCB1c2UgdGhlIGNyZWF0ZV90ZXN0cyBnZW06IGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJpb1J1aXovY3JlYXRlX3Rlc3RzCgojIEluc3RhbGxhdGlvbgoKMS4gSW5zdGFsbCBSdWJ5ID49Mi40LiBSZWNvbW1lbmRlZCBsYXN0IDIuNSBzdGFibGUgcmVsZWFzZS4gVG8gc2VlIHdoaWNoIHZlcnNpb24geW91IGFscmVhZHkgaGF2ZSBpbnN0YWxsZWQ6IGBydWJ5IC12YAogICAgKiBbUnVieSBJbnN0YWxsYXRpb25dKGh0dHBzOi8vd3d3LnJ1YnktbGFuZy5vcmcvZW4vZG9jdW1lbnRhdGlvbi9pbnN0YWxsYXRpb24vKQoKMi4gSW5zdGFsbCB0aGUgbGlicmFyaWVzIHdlIHVzZSBieSBydW5uaW5nIGZyb20gcm9vdCBmb2xkZXI6CiAgICBgYGBiYXNoCiAgICBidW5kbGUgaW5zdGFsbAogICAgYGBgICAgIAogICAgCiMgRG9jdW1lbnRhdGlvbgoKIyMgR2VuZXJhbCAKICAqIFtSdWJ5IGluIDIwIG1pbnV0ZXNdKGh0dHBzOi8vd3d3LnJ1YnktbGFuZy5vcmcvZW4vZG9jdW1lbnRhdGlvbi9xdWlja3N0YXJ0LykKICAqIFtSdWJ5IGZyb20gb3RoZXIgbGFuZ3VhZ2VzXShodHRwczovL3d3dy5ydWJ5LWxhbmcub3JnL2VuL2RvY3VtZW50YXRpb24vcnVieS1mcm9tLW90aGVyLWxhbmd1YWdlcy8pCiAgKiBbUnVieSBDaGVhdCBTaGVldF0oaHR0cHM6Ly9sZWFybnhpbnltaW51dGVzLmNvbS9kb2NzL3J1YnkvKQoKIyMgTGlicmFyaWVzCiAgKiBbUlNwZWNdKGh0dHA6Ly9yc3BlYy5pbmZvLyksIFtSU3BlYyBDaGVhdFNoZWV0XShodHRwczovL2RldmhpbnRzLmlvL3JzcGVjKQogICogW25pY2VfaHR0cF0oaHR0cHM6Ly9naXRodWIuY29tL01hcmlvUnVpei9uaWNlX2h0dHApCiAgKiBbbmljZV9oYXNoXShodHRwczovL2dpdGh1Yi5jb20vTWFyaW9SdWl6L25pY2VfaGFzaCkKICAqIFtvcGVuX2FwaV9pbXBvcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJpb1J1aXovb3Blbl9hcGlfaW1wb3J0KQogICogW2NyZWF0ZV90ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL01hcmlvUnVpei9jcmVhdGVfdGVzdHMpCgojIFJ1bm5pbmcgdGVzdHMKClRvIHJ1biBhbGwgdGhlIHRlc3RzOgpgYGBiYXNoCnJzcGVjCmBgYAoKVG8gcnVuIGEgcGFydGljdWxhciB0ZXN0IGZpbGU6CmBgYGJhc2gKcnNwZWMgLi9zcGVjL215X3Rlc3Rfc3BlYy5yYgpgYGAKClRvIHJ1biBhIHBhcnRpY3VsYXIgdGVzdCAoZXhhbXBsZSkgaW5zaWRlIGEgdGVzdCBmaWxlLCBhZGQgdGhlIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSB0ZXN0IGlzOgpgYGBiYXNoCnJzcGVjIC4vc3BlYy9teV90ZXN0X3NwZWMucmI6NDIKYGBgCgpUaGUgZGVmYXVsdCB2YWx1ZXMgdG8gc2V0IGFsbCB0ZXN0cyBhcmUgb24gYHNldHRpbmdzYCBmb2xkZXIuIFlvdSBjYW4gcGFzcyBwYXJhbWV0ZXJzIHRvIG92ZXJ3cml0ZSB0aGUgc2V0dGluZ3MgaW4gY29tbWFuZCBsaW5lIG9yIEVOViB2YXJpYWJsZXMuCgpgYGBiYXNoCkhPU1Q9MTAuMjAuMzAuNTAgcnNwZWMgLi9zcGVjL215X3Rlc3Rfc3BlYy5yYgpgYGAK readmeEtag: '"a98c8c59ec2fc91e4612b66728595907eb251818"' readmeLastModified: Thu, 14 Mar 2019 11:36:47 GMT repositoryId: 170314956 description: >- Example using RSpec and nice_http to test REST APIs. (Uber API and Reqres API) created: '2019-02-12T12:33:54Z' updated: '2019-03-14T11:37:03Z' language: Ruby archived: false stars: 0 watchers: 2 forks: 0 owner: MarioRuiz logo: https://avatars.githubusercontent.com/u/459564?v=4 repoEtag: '"6908b14489ded4e9405cf5c43053116500aa2d084b4b2399bb40bb02c93e509e"' repoLastModified: Thu, 14 Mar 2019 11:37:03 GMT foundInMaster: true category: Testing id: cf282c3053c42bb7de2bfa9100ac7b1f - source: openapi3 tags repository: https://github.com/tomi77/sent-geo-openapi v3: true repositoryMetadata: base64Readme: IyBzZW50LWdlby1vcGVuYXBpClNFTlQgR0VPIE9wZW5BUEl2MyBzY2hlbWEK readmeEtag: '"c9374ddec23048acf9518419e6959bf796b6837b"' readmeLastModified: Fri, 15 May 2020 09:28:00 GMT repositoryId: 263333160 description: SENT GEO OpenAPIv3 schema created: '2020-05-12T12:42:15Z' updated: '2020-05-15T09:29:44Z' language: null archived: false stars: 0 watchers: 2 forks: 0 owner: tomi77 logo: https://avatars.githubusercontent.com/u/490094?v=4 license: MIT repoEtag: '"5b122e5fc2fff537b7b60add4e8639ac1276cc75a719ec1684edf5735742f283"' repoLastModified: Fri, 15 May 2020 09:29:44 GMT foundInMaster: true category: - Data Validators - Parsers id: b9dba61fa79179577c35d58901bca143 - source: openapi3 tags repository: https://github.com/cakirmuha/auction-bid-tracker v3: true repositoryMetadata: base64Readme: >- IyBhdWN0aW9uLWJpZC10cmFja2VyCgpTZXJ2ZXIgZm9yIEF1Y3Rpb24gQmlkIFRyYWNrZXIKCiMjIyBCdWlsZAoKICAgICMgQ2xvbmUKICAgIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vY2FraXJtdWhhL2F1Y3Rpb24tYmlkLXRyYWNrZXIuZ2l0CiAgICBjZCBhdWN0aW9uLWJpZC10cmFja2VyCgogICAgZXhwb3J0IEdPMTExTU9EVUxFPW9uCgogICAgIyBHZW5lcmF0ZSBhc3NldHMKICAgIGdvIGdlbmVyYXRlIC4vY21kL2F1Y3Rpb24tYmlkLXRyYWNrZXIvYXNzZXRzL2dlbi5nbyAKCiAgICAjIENvbXBpbGUKICAgIGdvIGJ1aWxkIC4vY21kL2F1Y3Rpb24tYmlkLXRyYWNrZXIKCiMjIyBSdW4KICAgCiAgICBTZXQgdXAgZW52IHZhcnMsIHRoZW46CiAgIAogICAgLi9hdWN0aW9uLWJpZC10cmFja2VyCgojIyMgT3B0aW9ucwoKICAgIFVzYWdlIG9mIC4vYXVjdGlvbi1iaWQtdHJhY2tlcjoKICAgICAgLWxpc3RlbiBzdHJpbmcKICAgICAgICAgICAgTGlzdGVuIGFkZHIgKGRlZmF1bHQgIjo4MTgxIikKICAgICAgLWxvZyBzdHJpbmcKICAgICAgICAgICAgTG9nIGxldmVsIChkZWJ1ZywgaW5mbywgd2FybiwgZXJyb3IpIChkZWZhdWx0ICJkZWJ1ZyIpCiAgICAgICAgICAgIAojIyMgQ29uY3VycmVuY3kgVGVzdAoKICAgICBnbyB0ZXN0IC4vY21kL2JpZC50cmFja2VyL2NvbmN1cnJlbmN5X3Rlc3QuZ28KICAgICAgICAgICAgCiMjIyBHZW5lcmF0ZQoKR2VuZXJhdGVkIEFQSSBzcGVjIChvcGVuYXBpLnltbCkgaXMgc2VydmVkIGF0IGAvYXBpL3YxL2Fzc2V0cy9vcGVuYXBpLnltbGAKCiMjIyBHbyBWZXQKCiAgICBnbyB2ZXQgLi8uLi4KCiMjIFNvbHV0aW9uIEluc3RydWN0aW9uCgpJbiB0aGlzIHRhc2ssIHdlIGhhdmUgMyBvYmplY3RzKFVzZXIsIEl0ZW0sIEJpZCkuIAoxMDAgbW9jayB1c2VycyBhbmQgNCBtb2NrIGl0ZW1zIGFyZSBjcmVhdGVkIGJ5IHN0YXJ0aW5nIHRoZSBhcHBsaWNhdGlvbi4gTWFwIGRhdGEgc3RydWN0dXJlIGlzIHVzZWQgdG8gYWNjZXNzIGFsbCAzIG9iamVjdHMuIApNYXBzIGFyZSBub3QgdGhyZWFkLXNhZmUgYnkgZGVmYXVsdCBpbiBnb2xhbmcsIHNvIHN5bmMuTWFwIGNhbiBiZSB1c2VkIHRvIGhhbmRsZSBjb25jdXJyZW5jeSBwcm9ibGVtcy4gRGVmYXVsdCBtYXAgaXMgcHJlZmVyZWQgdG8gaGFuZGxlIGNvbmN1cnJlbmN5IGlzc3VlcyBieSBjb2RlIGluIHNvbWUgcGFydCBvZiB0aGUgY29kZS4KLSBVc2VyIG1hcCh0byBhY2Nlc3MgdXNlciBlbGVtZW50cyBmb3IgYSB1c2VyKSAgICAtIGRlZmF1bHQgbWFwOiBzeW5jLlJXTXV0ZXggaXMgdXNlZCB0byByZWFkIHVzZXIgZGF0YS4KICAtIGtleTogdXNlcmlkLCB2YWx1ZTogVXNlciBvYmplY3QKLSBJdGVtIG1hcCh0byBhY2Nlc3MgaXRlbSBlbGVtZW50cyBmb3IgYW4gaXRlbSkgICAtIGRlZmF1bHQgbWFwOiBzeW5jLlJXTXV0ZXggaXMgdXNlZCB0byByZWFkIGl0ZW0gZGF0YS4KICAtIGtleTogaXRlbWlkLCB2YWx1ZTogSXRlbSBvYmplY3QKLSBJdGVtQmlkIG1hcCh0byBhY2Nlc3MgYmlkIGVsZW1lbnRzIGZvciBhbiBpdGVtKSAtIHN5bmMuTWFwOiBObyBuZWVkIHRvIGNvbnNpZGVyIGNvbmN1cnJlbmN5IHByb2JsZW1zIGxpa2UgZGVhZGxvY2ssIHN5bmNocm9uaXphdGlvbi4uLgogIC0ga2V5OiBpdGVtaWQsIHZhbHVlOiBMaXN0IG9mIGJpZHMKICAtIExpc3Qgb2YgYmlkczogTGlua2VkIGxpc3QgaXMgY2hvc2VuIHRvIGFjY2VzcyBiaWRzIGZvciBhbiBpdGVtLiBXaGVuIGEgbmV3IGJpZCBjb21lLCBiaWQgaXMgcHJlcGVuZGVkIHRvIGxpc3QsIHNvIGhlYWQgb2YgbGlzdCB3aWxsIGJlIHRoZSBsYXN0IGJpZCBhbmQvb3IgdGhlIGJpZCBoYXZpbmcgdGhlIGhpZ2hlc3QgYW1vdW50LiBTbGljZSBjYW4gYWxzbyBiZSB1c2VkIGZvciBsaXN0IG9mIGJpcmRzLCBidXQgaXQgd2lsbCBiZSBzb3J0ZWQgYnkgYXNjZW5kaW5nKG5vdCBzbyBpbXBvcnRhbnQgc2luY2Ugd2UgYWx3YXlzIG5lZWQgdG8gYWNjZXNzIHRoZSBoaWdoZXN0IGVsZW1lbnQgdG8gY2hlY2sgYmlkIGFtb3VudCwgYW5kIGl0IGlzIGVhc2lseSBhY2Nlc3NpYmxlIGJ5IGJvdGggbGlua2VkIGxpc3QgYW5kIHNsaWNlIHdpdGhvdXQgdmlzaXRpbmcgbGlzdCkuIElmIHdlIHdhbnQgdG8gZGVsZXRlIGEgdXNlciBhbmQvb3IgcmVtb3ZlIGFsbCBiaWRzIG9mIHVzZXIgZm9yIGFuIGl0ZW0sIHRoZSBjb3N0IG9mIGRlbGV0ZS9hZGQgb2YgbGlua2VkIGxpc3QgaXMgbG93ZXIgdGhhbiBzbGljZShpdCBjYW4gYmUgdGhvdWdodCBhcyB0aGUgcGx1cyBvZiBsaW5rZWQgbGlzdCkuCgojIyMgU29sdXRpb24gdGVzdAoKQXBwbGljYXRpb24gY2FuIGJlIHRlc3RlZCB1c2luZyBHb3JvdXRpbmVzKGVnLiBgZ28gdGVzdCAuL2NtZC9iaWQudHJhY2tlci9jb25jdXJyZW5jeV90ZXN0LmdvYCkuIEJpZCByZXF1ZXN0IGlzIHNlbnQgYnkgYWxsIDEwMCBtb2NrIHVzZXJzIGZvciBhbiBpdGVtLCB0aGVyZSB3aWxsIGJlIG5vIHJ1bnRpbWUgZXJyb3IsIGFuZCB3aW5uaW5nIGJpZCB3aWxsIGJlIGVxdWFsIHRvIHRoZSBoaWdoZXN0IGJpZCBhbW91bnQgb2YgdXNlcnMuCg== readmeEtag: '"c467d2d3031390bb4adffc3c2e046fda6651bb60"' readmeLastModified: Sun, 05 Apr 2020 10:40:19 GMT repositoryId: 252986832 description: null created: '2020-04-04T12:09:02Z' updated: '2020-04-16T07:26:20Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: cakirmuha logo: https://avatars.githubusercontent.com/u/6494452?v=4 license: MIT repoEtag: '"1ca0c0d420aa9f8ca330129395a3390641492ba655dc3b89a47295931208d098"' repoLastModified: Thu, 16 Apr 2020 07:26:20 GMT foundInMaster: true category: Testing id: 7e4760fa3b2c99c3838842cebd762686 - source: openapi3 tags repository: https://github.com/ideadapt/intellij-swagger-annotations v3: true repositoryMetadata: repositoryId: 295204974 description: >- Intellij plugin providing editor features related to swagger and openapi annotations created: '2020-09-13T17:44:50Z' updated: '2020-09-25T18:18:04Z' language: Java archived: false stars: 0 watchers: 3 forks: 0 owner: ideadapt logo: https://avatars.githubusercontent.com/u/1071386?v=4 repoEtag: '"9e4f9e4050288625d02cd552a5e21767b87c7d853c1dc1e5b5ee8ff39fcb7ce7"' repoLastModified: Fri, 25 Sep 2020 18:18:04 GMT foundInMaster: true id: 8ac9057379e79f6ded4e8a73116a1e47 - source: openapi3 tags repository: https://github.com/hbhb-devloper/auth-server v3: true repositoryMetadata: base64Readme: IyBhdXRoLXNlcnZlcgoK6K6k6K+B5Lit5b+DCg== readmeEtag: '"7ccf10407de295044bf7253e2f7d9a731aa58e3e"' readmeLastModified: Sat, 20 Mar 2021 11:50:05 GMT repositoryId: 349709392 description: 财务管理系统-后端服务-认证中心 created: '2021-03-20T11:45:24Z' updated: '2021-03-20T12:23:43Z' language: Java archived: false stars: 0 watchers: 2 forks: 1 owner: hbhb-devloper logo: https://avatars.githubusercontent.com/u/68075210?v=4 repoEtag: '"1568e1fbe3f6a9626bd0d346c68123b9a525d6b5c2fcf6746a1d800ccdd37402"' repoLastModified: Sat, 20 Mar 2021 12:23:43 GMT foundInMaster: true category: - Server - Server Implementations id: dcb93a0a9731c47ba2690319b12a6d15 - source: openapi3 tags repository: https://github.com/witguild/spring-boot-rest-api-h2-jpa-security v3: true repositoryMetadata: repositoryId: 339035926 description: null created: '2021-02-15T10:09:18Z' updated: '2021-02-15T11:07:41Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: witguild logo: https://avatars.githubusercontent.com/u/62769457?v=4 repoEtag: '"64b79232160dbf1c14cc95fb684a8c3c4381a040aa237de1bd6c5c4960d930cc"' repoLastModified: Mon, 15 Feb 2021 11:07:41 GMT foundInMaster: true id: 877a6f167d8f020d30a4e974c750aa08 - source: openapi3 tags repository: https://github.com/nexys-system/postman-openapi-ui v3: true id: 44b760c78f35f82d9790c9f325a67a64 repositoryMetadata: base64Readme: >- IyBQb3N0bWFuIHRvIE9wZW5BUEkgVUkKClRoaXMgaXMgYSB3cmFwcGVyIGFyb3VuZCBbcG9zdG1hbi10by1vcGVuYXBpXShodHRwczovL2dpdGh1Yi5jb20vam9vbGZlL3Bvc3RtYW4tdG8tb3BlbmFwaSkgc28gdGhhdCB0aGUgb3BlbiBhcGkgZmlsZSBjYW4gYmUgZ2VuZXJhdGVkIGRpcmVjdGx5IGZyb20gd2l0aGluIHRoZSBicm93c2VyCgpbIVtUZXN0XShodHRwczovL2dpdGh1Yi5jb20vbmV4eXMtc3lzdGVtL3Bvc3RtYW4tb3BlbmFwaS11aS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbmV4eXMtc3lzdGVtL3Bvc3RtYW4tb3BlbmFwaS11aS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0LnltbCkKWyFbLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95LnltbF0oaHR0cHM6Ly9naXRodWIuY29tL25leHlzLXN5c3RlbS9wb3N0bWFuLW9wZW5hcGktdWkvYWN0aW9ucy93b3JrZmxvd3MvZGVwbG95LnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbmV4eXMtc3lzdGVtL3Bvc3RtYW4tb3BlbmFwaS11aS9hY3Rpb25zL3dvcmtmbG93cy9kZXBsb3kueW1sKQoKIyMgR2V0IHN0YXJ0ZWQKCmh0dHBzOi8vbmV4eXMtc3lzdGVtLmdpdGh1Yi5pby9wb3N0bWFuLW9wZW5hcGktdWkvCg== readmeEtag: '"e9ef6c792b3c639b5f17070cd0f2005294c2ff35"' readmeLastModified: Thu, 21 Jul 2022 07:08:50 GMT repositoryId: 513859855 description: generate Open API from Postman collection created: '2022-07-14T10:39:45Z' updated: '2022-07-16T11:07:42Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: nexys-system logo: https://avatars.githubusercontent.com/u/71571169?v=4 repoEtag: '"0e18b89da27caf92192d851412b3d0d1655d3cad7a7c507fca07adb1c0339b90"' repoLastModified: Sat, 16 Jul 2022 11:07:42 GMT category: Testing foundInMaster: true - source: openapi3 tags repository: https://github.com/fromsi/example_laravel_rest_api v3: true id: 24d47d3e0ba1cc7f2b8064a1bc0a3f79 repositoryMetadata: base64Readme: >- IyMg0KPRgdGC0LDQvdC+0LLQutCwINC/0YDQvtC10LrRgtCwCi0g0KHQutC70L7QvdC40YDQvtCy0LDRgtGMINC/0YDQvtC10LrRggotINCX0LDQv9GD0YHRgtC40YLRjCDQtNC+0LrQtdGACi0g0JfQsNC/0YPRgdGC0LjRgtGMINC60L7QvNCw0L3QtNGDINCyINC60L7RgNC90LUg0L/RgNC+0LXQutGC0LAgYG1ha2UgaW5zdGFsbGAKCiMjINCX0LDQtNCw0YfQsArQldGB0YLRjCDQu9C+0LrQsNGG0LjQuC4g0JIg0LvQvtC60LDRhtC40Y/RhSDRhdGA0LDQvdC40LvQuNGJ0LAuINCSINGF0YDQsNC90LjQu9C40YnQsNGFINGC0LXQvNC/0LXRgNCw0YLRg9GA0LAg0Lgg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9C5INC+0LHRitC10Lwg0LLQvNC10YHRgtC40LzQvtGB0YLQuC4g0J/QvtC70L3QvtC1INC+0L/QuNGB0LDQvdC40LUgW0lORk8ubWRdKElORk8ubWQpCgojIyDQndGD0LbQvdC+INC+0LHRj9C30LDRgtC10LvRjNC90L4g0LjQvNC10YLRjAotIERvY2tlciAodjIwKykKLSBEb2NrZXItQ29tcG9zZSAodjEuMjkrKQotIEdOVSBNYWtlICh2MyspCgojIyDQltC10LvQsNGC0LXQu9GM0L3QviDQuNC80LXRgtGMINGB0LLQvtCx0L7QtNC90YvQtSDQv9C+0YDRgtGLCtCV0YHQu9C4INC/0L7RgNGCINC30LDQvdGP0YIsINC80L7QttC90L4g0LjQt9C80LXQvdC40YLRjCDQv9C+0YDRgtGLINCyIGBkb2NrZXIvZG9ja2VyLWNvbXBvc2Uub3ZlcnJpZGUueW1sYCDQuCBgLmVudmAg0L/QvtGB0LvQtSDQutC+0LzQsNC90LTRiyBgbWFrZSBpbnN0YWxsYC4KLSA4MAotIDQ0MwotIDU0MzIKLSA4MDgwCgojIyBYZGVidWcg0LTQu9GPIFBocFN0b3JtCtCSIGBQaHBTdG9ybSA+IFByZWZlcmVuY2VzID4gU2VydmVycyA+ICtgCi0g0JIgTmFtZSDQvdGD0LbQvdC+INC30LDQv9C40YHQsNGC0YwgYGNoYXRgCi0g0JIgSG9zdCDQvdGD0LbQvdC+INC30LDQv9C40YHQsNGC0YwgYGxvY2FsaG9zdGAKLSDQndCw0LnRgtC4INCyIGBQcm9qZWN0IGZpbGVzYCDQtNC40YDQtdC60YLQvtGA0LjRjiDQv9GA0L7QtdC60YLQsCDQuCDQv9GA0L7Qv9C40YHQsNGC0Ywg0Y3RgtC+0Lkg0LTQuNGA0LXQutGC0L7RgNC40LggYC92YXIvd3d3YAoKIyMg0KTQuNC70YzRgtGA0LDRhtC40Y8g0LIgUkVTVCBBUEkK0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINCx0LjQsdC70LjQvtGC0LXQutCwIFtzcGF0aWUvbGFyYXZlbC1xdWVyeS1idWlsZGVyXShodHRwczovL2dpdGh1Yi5jb20vc3BhdGllL2xhcmF2ZWwtcXVlcnktYnVpbGRlcikKCtCf0YDQuNC80LXRgNGLOgotINCh0L7RgNGC0LjRgNC+0LLQutCwIOKAkyBgL2VuZHBvaW50P3NvcnQ9aWRgCi0g0KTQuNC70YzRgtGA0LDRhtC40Y8g4oCTIGAvZW5kcG9pbnQ/ZmlsdGVyW25hbWVdPUZyaWRnZWAKLSDQn9C+0LTQutC70Y7Rh9C10L3QuNC1INGB0YPRidC90L7RgdGC0LXQuSDigJMgYC9lbmRwb2ludD9pbmNsdWRlPXN1YmplY3RgCgojIyDQpdC+0YHRgtGLINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0L/RgNC+0LXQutGC0L7QvAotIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCDigJMg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQkdCUCi0gaHR0cDovL2xvY2FsaG9zdCDigJMg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSBSRVNUIEFQSQoKIyMg0KPQv9GA0LDQstC70LXQvdC40LUg0L/RgNC+0LXQutGC0L7QvAotIGBtYWtlIGluc3RhbGxgIOKAkyDRg9GB0YLQsNC90L7QstC60LAg0L/RgNC+0LXQutGC0LAg0YfQtdGA0LXQtyBEb2NrZXIKLSBgbWFrZSBydW5gIOKAkyDQt9Cw0L/Rg9GB0Log0L/RgNC+0LXQutGC0LAg0YfQtdGA0LXQtyBEb2NrZXIKLSBgbWFrZSBzdG9wYCDigJMg0L7RgdGC0LDQvdC+0LLQutCwINC/0YDQvtC10LrRgtCwINGH0LXRgNC10LcgRG9ja2VyCi0gYG1ha2UgcGhwYCDigJMg0L/QtdGA0LXQudGC0Lgg0LIg0LrQvtC90YLQtdC50L3QtdGAINGBIHBocCDRh9C10YDQtdC3IERvY2tlcgoKIyMg0JLQvtC30LzQvtC20L3QvtGB0YLQuCDQv9GA0L7QtdC60YLQsCwg0LrQvtGC0L7RgNGL0LUg0YLQtdCx0Y8g0LfQsNC40L3RgtC10YDQtdGB0YPRjtGCCi0g0J/QvtC00L3Rj9GC0LjQtSDQv9GA0L7QtdC60YLQsCDQvdCw0L/QuNGB0LDQsiDQstGB0LXQs9C+INC70LjRiNGMINC+0LTQvdGDINC60L7QvNCw0L3QtNGDCi0g0JfQsNC/0YDQvtGB0Ysg0L7QsdGA0LDQsdCw0YLRi9Cy0LDRjtGC0YHRjyDQv9C+INCw0YDRhdC40YLQtdC60YLRg9GA0L3QvtC80YMg0YHRgtC40LvRjiBSRVNUIEFQSQotIEhUVFAgZW5kcG9pbnQn0Ysg0L/QvtC00LTQtdGA0LbQuNCy0LDRjtGCINCy0LXRgNGB0LjQvtC90L3QvtGB0YLRjCwg0YHQvtGA0YLQuNGA0L7QstC60YMsINGE0LjQu9GM0YLRgNCw0YbQuNGOINC4INC/0L7QtNC60LvRjtGH0LXQvdC40LUg0YHRg9GJ0L3QvtGB0YLQtdC5Ci0g0JTQvtC60YPQvNC10L3RgtCw0YbQuNGPINC/0YDQvtC10LrRgtCwLCDQv9C+0LTQtNC10YDQttC60LAg0YLQuNC/0LjQt9Cw0YbQuNC4INC4INC00LLQuNC20LXQvdC40Y8g0LIg0L3QvtCz0YMg0YHQviDQstGA0LXQvNC10L3QtdC8IFBIUDhcTGFyYXZlbDkKLSDQodC40LTQtdGA0Ysg0YEg0YTQsNCx0YDQuNC60LDQvNC4INC00LvRjyDQt9Cw0L/QvtC70L3QtdC90LjRjyDQtNCw0L3QvdGL0LzQuCDRh9C10YDQtdC3IGZha2VyCi0g0KDQtdCz0LjRgdGC0YDQsNGG0LjRjy/QkNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNGPL9CS0L7RgdGB0YLQsNC90L7QstC70LXQvdC40LUv0JjQt9C80LXQvdC10L3QuNC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjwotINCb0L7QutCw0YbQuNC4INCz0L7RgNC+0LTQvtCyINC4INGB0YLRgNCw0L0K readmeEtag: '"c928334b69760d3685ef9e7d75877cbf282f0537"' readmeLastModified: Sat, 23 Jul 2022 14:43:49 GMT repositoryId: 514539373 description: Example PHP Laravel created: '2022-07-16T09:54:41Z' updated: '2023-04-02T17:42:12Z' language: PHP archived: true stars: 0 watchers: 1 forks: 0 owner: FromSi logo: https://avatars.githubusercontent.com/u/22871855?v=4 repoEtag: '"efe304843ba88ba779e7a4ffedcc63b3299ae0b92ec3bb1ce9c442a64e107eb7"' repoLastModified: Sun, 02 Apr 2023 17:42:12 GMT category: Mock foundInMaster: true - source: openapi3 tags repository: https://github.com/francescopatriziozampetti/forum-backend v3: true id: f646f71f0035791fd821722725b682ef repositoryMetadata: base64Readme: >- IyBmb3J1bS1iYWNrZW5kCiFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2J1aWxkLXN1Y2Nlc3MtYnJpZ2h0Z3JlZW4uc3ZnKQoKQSBmb3J1bSBiYWNrLWVuZCBjcmVhdGVkIHdpdGggU3ByaW5nIEJvb3QuCgojIFN0YWNrCgohW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhXzExLeKcky1ibHVlLnN2ZykKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3ByaW5nX2Jvb3Qt4pyTLWJsdWUuc3ZnKQohW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9wb3N0Z3Jlc3FsLeKcky1ibHVlLnN2ZykKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uva2V5Y2xvYWst4pyTLWJsdWUuc3ZnKQohW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9PQVNfMy4wLeKcky1ibHVlLnN2ZykKIVtdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvSEFURU9BUy3inJMtYmx1ZS5zdmcpCiFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JlZGlzLeKcky1ibHVlLnN2ZykKCiMjIEEgRm9ydW0gYmFjay1lbmQgY3JlYXRlZCB3aXRoIFNwcmluZyBCb290LiAKVGhlIGtleSBmZWF0dXJlcyBhcmU6Ci0gS2V5Y2xvYWsgYXV0aGVudGljYXRpb24gd2l0aCBib3RoIG5vcm1hbCBhbmQgc29jaWFsIGxvZ2luIChHb29nbGUsIEZhY2Vib29rLCBHaXRIdWIpLgotIFNlcnZlci1TZW50IEV2ZW50cyAoU1NFKSBmb3IgcmVhbC10aW1lIG5vdGlmaWNhdGlvbnMuCi0gUmVkaXMgYXMgbWVzc2FnZSBicm9rZXIgYW5kIGluLW1lbW9yeSBkYXRhIHN0b3JlIGZvciBzY2FsYWJpbGl0eSBhbmQgcGVyZm9ybWFuY2UuCi0gSEFURU9BUyAoSHlwZXJtZWRpYSBhcyB0aGUgRW5naW5lIG9mIEFwcGxpY2F0aW9uIFN0YXRlKSBmb3IgUkVTVCBlbmRwb2ludHMuCi0gU3dhZ2dlciAoT0FTIDMuMCkgaW50ZWdyYXRpb24uCi0gQWxsIHRoZSBiYXNpYyBmZWF0dXJlcyBvZiBhIGZvcnVtOiB0b3BpYyBjcmVhdGlvbiBhbmQgc2VhcmNoLCBwb3N0IGNyZWF0aW9uIGFuZCBlbWFpbCBub3RpZmljYXRpb25zLgoKIyMgTGlua3MKLSBGb3J1bTogaHR0cHM6Ly9mb3J1bS5ibGFja3Bob2VuaXhwcm9kdWN0aW9ucy5jb20vCi0gRm9ydW0tQVBJOiBodHRwczovL2ZvcnVtLmJsYWNrcGhvZW5peHByb2R1Y3Rpb25zLmNvbTo4MDgzL3N3YWdnZXItdWkvaW5kZXguaHRtbAoKSWYgeW91IGRvbid0IHdhbnQgdG8gcmVnaXN0ZXIgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyB0ZXN0IHVzZXIgdG8gbG9nIGluIHRoZSBhcHA6Ci0gVXNlcm5hbWU6IHRlc3QtdXNlci0xCi0gUGFzc3dvcmQ6IHRlc3QxMjM0CgpUaGUgZnJvbnQtZW5kIHByb2plY3QgaXMgYWxzbyBhdmFpYmxlIG9uIEdpdEh1YiBhdDogaHR0cHM6Ly9naXRodWIuY29tL0ZyYW5jZXNjb1BhdHJpemlvWmFtcGV0dGkvZm9ydW0tZnJvbnRlbmQK readmeEtag: '"48d6bfe0787712f7de99e8032aa576900564c647"' readmeLastModified: Fri, 22 Dec 2023 15:00:27 GMT repositoryId: 489116725 description: A forum back-end created with Spring Boot created: '2022-05-05T20:27:11Z' updated: '2022-06-18T10:18:00Z' language: Java archived: false stars: 0 watchers: 1 forks: 0 owner: FrancescoPatrizioZampetti logo: https://avatars.githubusercontent.com/u/43603838?v=4 repoEtag: '"eb108cea3f25dd3095aa55791944a7ce22235e84bf989dd6c4c7b8d7c91a6081"' repoLastModified: Sat, 18 Jun 2022 10:18:00 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/romabilka/blogo v3: true id: a9c8b26cad59924f6aa6fffaf25640f4 repositoryMetadata: base64Readme: >- IyBCbG9HbwoKIyMjIEV4YW1wbGVzIGRpZmZlcmVudCBjb2RlIGZvciBibG9nCgoqIERpZmZlcmVudCBwcm9qZWN0cyBzdHJ1Y3R1cmUgW3Byb2plY3QtbGF5b3V0XSgvcHJvamVjdC1sYXlvdXQvKQoqIEV4YW1wbGVzIFt0ZXN0c10oL3Rlc3RzLykKKiBFeGFtcGxlIFtXZWJTb2NrZXQgdGVzdF0oL3Rlc3Qtd2Vic29ja2V0LykKKiBBdXRvbWF0ZWQgSW5pdGlhbGl6YXRpb24gaW4gR28gd2l0aCBbd2lyZV0oL2V4YW1wbGUtd2lyZS8pCiogRXhhbXBsZSB1c2Ugc3RydWN0IFt0YWdzXSgvc3RydWN0LXRhZ3MvKQoKCiMjIExpY2Vuc2UKW01JVCBsaWNlbnNlXShMSUNFTlNFLm1kKS4= readmeEtag: '"616329cb0211a6ce089620d4fb7fd28625ffa4e0"' readmeLastModified: Fri, 27 May 2022 11:48:23 GMT repositoryId: 462227574 description: null created: '2022-02-22T09:35:04Z' updated: '2022-12-13T19:47:59Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: RomaBilka logo: https://avatars.githubusercontent.com/u/28790784?v=4 license: NOASSERTION repoEtag: '"0e83938f666734c4b0a02dc6ff7b17e2dfd970011a7561ec2ffb55d5f803e7d0"' repoLastModified: Tue, 13 Dec 2022 19:47:59 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/sudokuru/useractivegamesbff v3: true id: 40f15de6f7736dbdb83303d3d0c2f28f repositoryMetadata: base64Readme: >- PiBbIUlNUE9SVEFOVF0gIAo+IFRoaXMgcmVwb3NpdG9yeSBpcyByZWFkLW9ubHkgLyBhcmNoaXZlZCBhbmQgd2lsbCBub3QgcmVjaWV2ZSB1cGRhdGVzLgoKIyBbVHlwZWRvYyBEb2N1bWVudGF0aW9uIFdlYnNpdGVdKGh0dHBzOi8vc3Vkb2t1cnUuZ2l0aHViLmlvL0JhY2tlbmQvKTxicj4KCiMgVG9kbwoKLSBbIF0gQWRkIGxpY2Vuc2UgZmlsZSBhbmQgZGlzdHJpYnV0ZSB0byBhbGwgcmVwb3MgdXNpbmcgR2l0SHViIEFjdGlvbiAoVGhvbWFzKQotIFsgXSBGaW5pc2ggd3JpdGluZyBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgcHV6emxlIGVuZHBvaW50IChUaG9tYXMpCi0gWyBdIFdyaXRlIEdpdEh1YiBob29rIHRvIHJ1biBhbGwgdGVzdHMgYmVmb3JlIFB1c2ggdG8gcmVwbyAoVGhvbWFzKQotIFt4XSBTZXQgdXAgRGV2IGFuZCBQcm9kIExhbWJkYSBlbnZpcm9ubWVudHMgKFRob21hcy9HcmVnb3J5KQotIFsgXSBBZGQgTWVybWFpZCBkb2N1bWVudGF0aW9uIGFuZCBkaXN0cmlidXRlIHRvIGFsbCByZXBvcyB1c2luZyBHaXRIdWIgQWN0aW9uIChUaG9tYXMpCi0gWyBdIENsZWFuIHVwIGRvY2tlciBpbXBsZW1lbnRhdGlvbiAoYXV0by1yZWJ1aWxkKSAoVGhvbWFzKQotIFsgXSBEaXNwbGF5IGludGVncmF0aW9uIHRlc3QgcmVzdWx0cyB3aXRoIHJlcG9ydGVyIChUaG9tYXMpCi0gWyBdIERlY2lkZSBvbiBpbml0aWFsIEpTT04gc3RydWN0dXJlIGZvciByZW1haW5pbmcgZW5kcG9pbnRzIChUZWFtKQotIFsgXSBXcml0ZSBsb2dpYyBmb3IgcmVtYWluaW5nIGVuZHBvaW50cyAoRGFuaWVsKQotIFsgXSBXcml0ZSBzYW5pdGF0aW9uIGFuZCB2YWxpZGF0aW9uIGZvciByZW1haW5pbmcgZW5kcG9pbnRzIChEYW5pZWwpCi0gWyBdIFdyaXRlIFBvc3RtYW4gaW50ZWdyYXRpb24gdGVzdHMgZm9yIHJlbWFpbmluZyBlbmRwb2ludHMgKERhbmllbCkKLSBbIF0gU2V0IHVwIEF1dGgwIHRva2VuIGF1dGhlbnRpY2F0aW9uIChUaG9tYXMvRGFuaWVsKQotIFsgXSBXcml0ZSB1cCBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGZvciBlbmRwb2ludHMgKFRob21hcy9EYW5pZWwpCi0gWyBdIFJlc29sdmUgcmVtYWluaW5nIGBgYC8vdG9kb2BgYCBpdGVtcyAoVGhvbWFzL0RhbmllbCkKLSBbIF0gRGV0ZXJtaW5lIGhvdyB0byBzZXQgUHJvZCBlbnZpcm9ubWVudCB0byB1c2UgdmVyc2lvbmluZyBjb250cm9sIChUaG9tYXMvR3JlZ29yeSkKLSBbIF0gSW1wbGVtZW50IHVuaXQgdGVzdHMgaWYgbmVlZGVkIChUaG9tYXMvRGFuaWVsKQoKIyBEZXZlbG9wZXIgU2V0dXAKCjEuIEluc3RhbGwgRG9ja2VyIG9uIHlvdXIgbWFjaGluZS4gVHV0b3JpYWwgaXMgbGlua2VkIGJlbG93Ojxicj4KICAgWyFbRG9ja2VyIFR1dG9yaWFsXShodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS8yZXpOcXFhU2pxOC8wLmpwZyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9MmV6TnFxYVNqcTgpPGJyPgoyLiBMb2dpbiB0byBkb2NrZXIgd2l0aCB0aGUgY29tbWFuZCBgYGBkb2NrZXIgbG9naW4gLS11c2VybmFtZSA8R2l0SHViX1VzZXJuYW1lPmBgYDxicj4KICAgWW91IHdpbGwgYmUgYXNrZWQgZm9yIHlvdXIgcGFzc3dvcmQsIHdoaWNoIGlzIHlvdXIgR2l0SHViIFRva2VuLiBNYWtlIHN1cmUgeW91ciBHaXRIdWIgVG9rZW4gaGFzIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBHaXRIdWIncyBDb250YWluZXIgUmVnaXN0cnkhPGJyPgogICBUaGUgbmVlZGVkIHNjb3BlIGlzIGBgYHJlYWQ6cGFja2FnZXNgYGA8YnI+CiAgIFRoaXMgY29tbWFuZCBzaG91bGQgYmUgcnVuIGluIHRoZSB0ZXJtaW5hbCBpbiB0aGUgcm9vdCBmb2xkZXIgb2YgdGhpcyBwcm9qZWN0Ljxicj4KMy4gRm9sbG93IHRoaXMgdHV0b3JpYWwgaGVyZSBmb3IgZW5zdXJpbmcgZG9ja2VyIGltYWdlcyBhcmUgdXAgdG8gZGF0ZTogW0RvY2tlciBpbWFnZSB0dXRvcmlhbF0oaHR0cHM6Ly9waG9lbml4bmFwLmNvbS9rYi91cGRhdGUtZG9ja2VyLWltYWdlLWNvbnRhaW5lcik8YnI+CjQuIFRoZSBNb25nbyBpbWFnZSBjYW4gYmUgcnVuIHdpdGggdGhpcyBjb21tYW5kIGluIHRoZSByb290IGZvbGRlcjo8YnI+CiAgIE5vdGUgdXNlIGBgYHN1ZG9gYGAgb24gTGludXgvTWFjPGJyPgpgYGBjb25zb2xlCm5wbSBydW4gZG9ja2VyCmBgYAo1LiBDcmVhdGUgLmVudiBmaWxlIHdpdGggZW52aXJvbm1lbnQgdmFyaWFibGVzCjYuIFJ1biBucG0gaQo3LiBUaGUgYXBwIGNhbiB0aGVuIGJlIHJ1biB3aXRoIHRoZSBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHN0YXJ0CmBgYAo4LiBJbnRlZ3JhdGlvbiB0ZXN0cyBjYW4gYmUgcnVuIHdoZW4gdGhlIGFwcCBpcyBydW5uaW5nIHdpdGggdGhpcyBjb21tYW5kOjxicj4KYGBgY29uc29sZQpucG0gcnVuIHRlc3Q6aW50ZWdyYXRpb24KYGBgCgojIEVuZHBvaW50IERvY3VtZW50YXRpb24KCiMjIyBHRVQgbmV3R2FtZSBlbmRwb2ludDo8YnI+CkNyZWF0ZXMgYSBuZXdHYW1lIGZvciB0aGUgdXNlci48YnI+CkV4YW1wbGU6PGJyPgptZXRob2Q6IEdFVDxicj4KdXJsOiBgYGBodHRwOi8vbG9jYWxob3N0OjI5MDEvYXBpL3YxL25ld0dhbWU/ZGlmZmljdWx0eT0xYGBgIDxicj4KSGVhZGVyOiBgYGBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIgKyBhY2Nlc3NUb2tlbmBgYCA8YnI+CgpSZXR1cm5zOiA8YnI+CmBgYGpzb24KWwogICAgewogICAgICAgICJ1c2VySUQiOiAiYXV0aDB8NjM5NDQwYzhmMjkwNjc3NTA3OWM3MjU0IiwKICAgICAgICAicHV6emxlIjogIjMxMDA4NDAwMjIwMDE1MDAwNjU3MDAwMzAxMDQyMzcwODA5NTc2MDAzMDAwMDAwOTU2MjAzMDA1MDAwNjA3MDAwNzAwMDkwMDAwMDAwMTUwMCIsCiAgICAgICAgImN1cnJlbnRUaW1lIjogMCwKICAgICAgICAibnVtSGludHNBc2tlZEZvciI6IDAsCiAgICAgICAgIm51bVdyb25nQ2VsbHNQbGF5ZWQiOiAwLAogICAgICAgICJfaWQiOiAiNjQxMTA5YTE5YTE1NWI1NzEyNmZlNjQ3IiwKICAgICAgICAibW92ZXMiOiBbXSwKICAgICAgICAiX192IjogMAogICAgfQpdCmBgYApwdXp6bGUgY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZSBmb2xsb3dpbmc6PGJyPgpgYGByZXNwb25zZVswXS5wdXp6bGVgYGAgPGJyPgoKCgo= readmeEtag: '"7f4fe4972ec8b3b817658530d4042b28f9675f75"' readmeLastModified: Sun, 12 May 2024 16:01:49 GMT repositoryId: 599639630 description: null created: '2023-02-09T15:12:56Z' updated: '2024-05-12T16:02:32Z' language: TypeScript archived: true stars: 0 watchers: 0 forks: 0 owner: Sudokuru logo: https://avatars.githubusercontent.com/u/114212382?v=4 license: GPL-3.0 repoEtag: '"1573f9b3ee78d5bf85bd34928ed4f1bee6612af4d69e7eba4acf734fb344eeef"' repoLastModified: Sun, 12 May 2024 16:02:32 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/sudokuru/bff - source: openapi3 tags repository: https://github.com/av1m/uberoo-openapi v3: true id: eee1268d6e1d07582ae9e9b773d757b4 repositoryMetadata: base64Readme: >- IyBVYmVyb28gT3BlbkFQSQoKWyFbRGVwbG95IFViZXJvb0FQSSB0byBHaXRIdWIgUGFnZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hdjFtL3ViZXJvby1vcGVuYXBpL2FjdGlvbnMvd29ya2Zsb3dzL2doLXBhZ2VzLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2F2MW0vdWJlcm9vLW9wZW5hcGkvYWN0aW9ucy93b3JrZmxvd3MvZ2gtcGFnZXMueWFtbCkKWyFbTGluayBvZiBkb2NzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1kb2NzJm1lc3NhZ2U9UmVkb2NseSZjb2xvcj1ncmVlbildKGh0dHBzOi8vYXYxbS5naXRodWIuaW8vdWJlcm9vLW9wZW5hcGkvKQoKVGFibGUgb2YgQ29udGVudHM6ICAKCi0gW1ViZXJvbyBPcGVuQVBJXSgjdWJlcm9vLW9wZW5hcGkpCiAgLSBbR2V0IHN0YXJ0ZWRdKCNnZXQtc3RhcnRlZCkKICAtIFtQYWNrYWdlLmpzb25dKCNwYWNrYWdlanNvbikKICAgIC0gW0J1aWxkIGRpcmVjdG9yeV0oI2J1aWxkLWRpcmVjdG9yeSkKICAgIC0gW0NvbW1hbmRzXSgjY29tbWFuZHMpCiAgLSBbQ0kvQ0RdKCNjaWNkKQoKIyMgR2V0IHN0YXJ0ZWQKClRoZSBwcmVyZXF1aXNpdGVzIGFyZToKCi0gW25vZGUuanNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi8pCi0gW2RvY2tlcl0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pCi0gW2RvY2tlci1jb21wb3NlXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9jb21wb3NlL2luc3RhbGwvKQotIFtweXRob25dKGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvKSAob25seSBpZiB5b3UgdXNlIGBucG0gcnVuIHN3YWdnZXItcHl0aG9uYCkKCk9uY2UgeW91IGhhdmUgdGhlIHByZXJlcXVpc2l0ZXMgaW5zdGFsbGVkLCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgoKYGBgYmFzaApucG0gcnVuIHN0YXJ0CmBgYAoKVGhpcyBjb21tYW5kIHdpbGwgZ2VuZXJhdGUgYG9wZW5hcGkuanNvbmAgZmlsZSBhbmQgc3RhcnQgdGhlIHNlcnZlciAodGhyb3VnaCBEb2NrZXIpLgpUaGUgc2VydmVyIGlzIGF2YWlsYWJsZSBhdCBbaHR0cDovL2xvY2FsaG9zdDo4MDgwXShodHRwOi8vbG9jYWxob3N0OjgwODApLgoKIyMgUGFja2FnZS5qc29uCgojIyMgQnVpbGQgZGlyZWN0b3J5CgpBbGwgdGhlIGZpbGVzIGFyZSBnZW5lcmF0ZWQgaW4gdGhlIGAuYnVpbGRgIGRpcmVjdG9yeS4KVGhlIGAuYnVpbGRgIGRpcmVjdG9yeSBpcyBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgd2hlbiB5b3UgcnVuIGBucG0gcnVuIGJ1aWxkYC4KClRoZSBmaW5hbCBmaWxlIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUgYHNyY2AgZGlyZWN0b3J5OyBUaGUgb3VwdXQgZm9ybWF0IGlzIGRldGVybWluZWQgYnkgdGhlIGBjb25maWcuZXh0ZW5zaW9uYCBvcHRpb24gaW4gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUuCkFjdHVlbGx5LCB0aGUgb3V0cHV0IGZvcm1hdCBhdmFpbGFibGUgYXJlIGBqc29uYCBhbmQgYHlhbWxgLgpUbyBjaGFuZ2UgdGhlIG91dHB1dCBmb3JtYXQsIHlvdSBjYW4gY2hhbmdlIHRoZSBgY29uZmlnLmV4dGVuc2lvbmAgb3B0aW9uIGluIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIG9yIGNoZWNrIHRoZSBuZXh0IHNlY3Rpb24uCgojIyMgQ29tbWFuZHMKClRoZSBbcGFja2FnZS5qc29uXShwYWNrYWdlLmpzb24pIGZpbGUgY29udGFpbnMgbWFueSBjb21tYW5kIGxpbmUgdG9vbHMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbi4KClRvIGdldCBhIHF1aWNrIGRldGFpbHMgb2YgdGhlIGF2YWlsYWJsZSBjb21tYW5kczoKCi0gKipgYnVpbGRgKiogLSBHZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbiBmcm9tIHRoZSBgc3JjYCBkaXJlY3RvcnkgaW4gdGhlIGAuYnVpbGQgZGlyZWN0b3J5YC4gVGhlIGZpbGVzIHdpbGwgYmUgYC5qc29uYCBvciBgLnlhbWxgIGRlcGVuZGluZyBvbiB0aGUgYGNvbmZpZy5leHRlbnNpb25gIG9wdGlvbiBpbiB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS4KLSAqKmB3YXRjaGAqKiAtIFJlZ2VuZXJhdGUgdGhlIGRvY3VtZW50YXRpb24gd2hlbiB0aGUgYHNyY2AgZGlyZWN0b3J5IGNoYW5nZXMuCi0gKipgdGVzdGAqKiAtIEJ1aWxkIHRoZSBkb2N1bWVudGF0aW9uIGFuZCB0ZXN0IHRoZSBvdXB1dCBmaWxlICh0aGF0IGlzIGluIHRoZSBgLmJ1aWxkYCBkaXJlY3RvcnkpCi0gKipgY2xlYW5gKiogLSBSZW1vdmUgdGhlIGAuYnVpbGRgIGRpcmVjdG9yeQotICoqYHN3YWdnZXItZG9ja2VyYCoqICAtIEJ1aWxkcywgKHJlKWNyZWF0ZXMsIHN0YXJ0cywgYW5kIGF0dGFjaGVzIGNvbnRhaW5lcnMuIFRoZXJlIGlzIHR3byBjb250YWluZXJzIGluIHRoZSBEb2NrZXJmaWxlOiBgc3dhZ2dlci11aWAgYW5kIGBzd2FnZ2VyLWFwaWAuIFRoZSBgc3dhZ2dlci11aWAgY29udGFpbmVyIGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgdGhlIGBzd2FnZ2VyLWFwaWAgY29udGFpbmVyIGlzIHVzZWQgdG8gc2VydmUgYSBzYW1wbGUgb2YgdGhlIEFQSSAodGhyb3VnaCBbYXBpc3Byb3V0XShodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvZGFuaWVsZ3RheWxvci9hcGlzcHJvdXQpKS4KLSAqKmBzd2FnZ2VyLXB5dGhvbmAqKiAgLSBDcmVhdGUgYSBzZXJ2ZXIgd2l0aCB0aGUgU3dhZ2dlciBBUEkgaW4gUHl0aG9uICh1c2UgW2Nvbm5leGlvbl0oaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2Nvbm5leGlvbi8pIG1vZHVsZSkuCi0gKipgcmVkb2MtcHJldmlld2AqKiAgLSBSdW4gYSBzZXJ2ZXIgd2l0aCB0aGUgUmVkb2MgQVBJIGluIHRoZSBicm93c2VyLiBUaGUgc2VydmVyIGlzIGF2YWlsYWJsZSBhdCBbaHR0cDovL2xvY2FsaG9zdDo1MDAwXShodHRwOi8vbG9jYWxob3N0OjUwMDApLgotICoqYHJlZG9jLWh0bWxgKiogIC0gR2VuZXJhdGUgdGhlIGRvY3VtZW50YXRpb24gZnJvbSB0aGUgYHNyY2AgZGlyZWN0b3J5IGluIHRoZSBgLmJ1aWxkIGRpcmVjdG9yeWAgaW4gdGhlIGBodG1sYCBmb3JtYXQgd2l0aCBSZWRvY2x5LiBUaGUgb3V0cHV0IGZpbGUgaXMgW2AuYnVpbGQvaW5kZXguaHRtbGBdKC5idWlsZC9pbmRleC5odG1sKS4KLSAqKmB1c2UteWFtbGAqKiAgLSBDaGFuZ2UgdGhlIG91dHB1dCBmb3JtYXQgdG8gYHlhbWxgLiBUaGUgZmlsZSB3aWxsIGJlWy5idWlsZC9vcGVuYXBpLnlhbWxdKC5idWlsZC9vcGVuYXBpLnlhbWwpLgotICoqYHVzZS1qc29uYCoqICAtIENoYW5nZSB0aGUgb3V0cHV0IGZvcm1hdCB0byBganNvbmAuIFRoZSBmaWxlIHdpbGwgYmUgW2AuYnVpbGQvb3BlbmFwaS5qc29uYF0oLmJ1aWxkL29wZW5hcGkuanNvbikuCi0gKipgc3RhcnRgKiogLSBDaGFuZ2UgdGhlIG91dHB1dCBmb3JtYXQgdG8gYGpzb25gLCBydW4gdGhlIGBzd2FnZ2VyLWRvY2tlcmAgY29tbWFuZCBhbmQgcnVuIHRoZSB3YXRjaGVyICh0aHJvdWdoIGBucG0gcnVuIHdhdGNoYCkuCi0gKipgc3RvcGAqKiAtIFN0b3BzIGNvbnRhaW5lcnMgYW5kIHJlbW92ZXMgY29udGFpbmVycwoKIyMgQ0kvQ0QKCkFzIG1lbnRpb25uZWQgYWJvdmUsIHlvdSBjYW4gdGVzdCB0aGUgZG9jdW1lbnRhdGlvbiB3aXRoIHRoZSBgbnBtIHRlc3RgIGNvbW1hbmQuCgpPbmNlIHlvdSBwdXNoIHlvdXIgY29kZSB0byB0aGUgcmVwb3NpdG9yeSwgYSBHaXRodWIgQWN0aW9ucyBpcyB0cmlnZ2VyZWQuCgpGaXJzdCwgdGhlIGNvZGUgaXMgdGVzdGVkIGJlZm9yZSBjcmVhdGluZyB0aGUgZG9jdW1lbnRhdGlvbi4KClRoZW4sIHRoZSBBY3Rpb24gd2lsbCBidWlsZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgcHVzaCBpdCB0byB0aGUgcmVwb3NpdG9yeSAoW2doLXBhZ2VzXShodHRwczovL2dpdGh1Yi5jb20vYXYxbS91YmVyb28tb3BlbmFwaS90cmVlL2doLXBhZ2VzKSBicmFuY2hlcykuClNvLCB0aGUgZG9jdW1lbnRhdGlvbiB3aWxsIGJlIGF2YWlsYWJsZSBhdCBbYXYxbS5naXRodWIuaW8vdWJlcm9vLW9wZW5hcGldKGh0dHBzOi8vYXYxbS5naXRodWIuaW8vdWJlcm9vLW9wZW5hcGkvKS4KCkZpbmFsbHksIHRoZSBhY3Rpb24gd2lsbCBwdXNoIGFuIGFydGlmYWN0IChvcGVuYXBpLnlhbWwpIHRvIHRoZSByZXBvc2l0b3J5Lgo= readmeEtag: '"63309943e70fdcf86d8cc290b141da95916beed3"' readmeLastModified: Sun, 26 Jun 2022 21:25:16 GMT repositoryId: 500824612 description: This repository contains OpenAPI specifications for the Uberoo API created: '2022-06-07T12:09:18Z' updated: '2023-01-23T10:04:29Z' language: JavaScript archived: true stars: 0 watchers: 2 forks: 1 owner: av1m logo: https://avatars.githubusercontent.com/u/36456709?v=4 repoEtag: '"ce0511e8bab78244a5e163f3dc69fbca615f81f8cdf874021d413bb7763872e4"' repoLastModified: Mon, 23 Jan 2023 10:04:29 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/rosario-fiorella/http-dispatcher-framework v3: true id: 9597cb2ff22d9709642a2c56942cad72 repositoryMetadata: base64Readme: >- IyBIdHRwIERpc3BhdGNoZXIgRnJhbWV3b3JrCgojIyBBYm91dAo+ICoqIUlNUE9SVEFOVDoqKiB0aGlzIGlzIGFuIGV4cGVyaW1lbnRhbCB2ZXJzaW9uIG5vdCB0byBiZSB1c2VkIGZvciBwcm9kdWN0aW9uIGRldmVsb3BtZW50CgpUaGlzIGh0dHAtYmFzZWQgZnJhbWV3b3JrIGltcGxlbWVudHMgdGhlIFtEaXNwYXRjaGVyIHBhdHRlcm4gKG1vcmUgaW5mbyBmcm9tIE9yYWNsZSBKYXZhKV0oaHR0cHM6Ly93d3cub3JhY2xlLmNvbS9qYXZhL3RlY2hub2xvZ2llcy9mcm9udC1jb250cm9sbGVyLmh0bWwpIGFuZCBjYW4gYmUgY29uZmlndXJlZCBhcyBhIGZyb250LWNvbnRyb2xsZXIgb3IgZGVsZWdhdGUgdGhlIHJlcXVlc3QgdG8gYW4gYXBwbGljYXRpb24uIFN1aXRhYmxlIGZvciBSRVNUIEFQSSBzZXJ2aWNlcyBvciBtb25vbGl0aGljIHNlcnZlci1zaWRlIHJlbmRlcmluZy4KCiMjIEZyYW1ld29yayBmZWF0dXJlcwotIEZpbHRlcnMsIHJlZ2lzdGVyIGN1c3RvbSBIdHRwIEZpbHRlcgotIEludGVyY2VwdG9ycywgcmVnaXN0ZXIgY3VzdG9tIGh0dHAgaW50ZXJjZXB0b3JzCi0gTmVnb3RpYXRpb24sIHZhbGlkYXRlIHJlcXVlc3QgY29udGVudAotIExvY2FsaXphdGlvbiwgdXNlIFtQT0VESVRdKGh0dHBzOi8vcG9lZGl0Lm5ldC8pIHRvIHRyYW5zbGF0ZSBzdHJpbmdzIG9yIGFkZCBuZXcgbGFuZ3VhZ2VzLiAoTm90ZTogcmVxdWlyZWQgZW5hYmxlIHBocCBleHRlbnNpb25zIGBgYGdldHRleHRgYGAsIGBgYGludGxgYGAsIGBgYG1ic3RyaW5nYGBgIFttb3JlIGluZm9dKCNyZXF1aXJlbWVudHMpKQotIFBvd2VyZnVsIGNvbmZpZ3VyYXRpb24gdXNpbmcgRC5JLiwgcmVnaXN0ZXJpbmcgYSBjdXN0b20gYXBwbGljYXRpb24gdG8gaGFuZGxlIHNwZWNpZmljIGVuZHBvaW50IHJlcXVlc3RzIG9yIHNpbXBseSB1c2luZyBmcm9udC1jb250cm9sbGVycyAoYmVzdCBmb3IgYXBpKQotIERJIC0gZGVwZW5kZW5jeSBpbmplY3Rpb24KLSBTZXJ2aWNlIExvY2F0b3IgW3NlZSBcQ29yZVxVdGlsc1xPYmplY3RTdG9yYWdlXSgvQ29yZS9VdGlscy9PYmplY3RTdG9yYWdlLnBocCkKLSBTaW5nbGV0b24gb25seSB1c2VkIGZvciBbc2VlIFxDb3JlXEJvb3RcUmVnaXN0cnldKC9Db3JlL0Jvb3QvUmVnaXN0cnkucGhwKSwgbm8gb3RoZXIgY2xhc3MgdXNlcyBzaW5nbGV0b24KCiMjIFJlcXVpcmVtZW50cwpQSFAgPj0gOC4yCgpOb3RlOiBpZiB1c2luZyBBcGFjaGUgZW5hYmxlZCBgYGBtb2RfcmV3cml0ZWBgYAoKRW5hYmxlZCBQSFAgZXh0ZW5zaW9ucwotIGZpbHRlcgotIGdldHRleHQKLSBpY29udgotIGludGwKLSBqc29uCi0gbWJzdHJpbmcKLSByZWZsZWN0aW9uCi0gc3BsCgojIyBMZWFybmluZyAtIENhc2UgU3R1ZHkKCiMjIyBEaXNwYXRjaGVyIGxpZmVjeWNsZSBtYW5hZ2VtZW50IAohW3dvcmtmbG93XShodHRwczovL2dpdGh1Yi5jb20vcm9zYXJpby1maW9yZWxsYS9odHRwLWRpc3BhdGNoZXItZnJhbWV3b3JrL2Fzc2V0cy80MTcyODA1OS84YjcyNzE1Yy01YmM2LTQxZWQtYjdjOC04NjFiYjIyMTAwMjEpCgojIyMgRXhhbXBsZSAxOiBEaXNwYXRjaGVyIGFzIEZyb250LUNvbnRyb2xsZXIKY2FzZSBzdHVkeTogW2Rpc3BhdGNoZXIgYXMgZnJvbnQgY29udHJvbGxlciB3aXRob3V0IHByb3h5IGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vcm9zYXJpby1maW9yZWxsYS9taWNyby1mcmFtZXdvcmstaHR0cC9ibG9iL2ZlYXR1cmUvZnJvbnQtY29udHJvbGxlci8wMS1leGFtcGxlLWRpc3BhdGNoZXItYXMtZnJvbnQtY29udHJvbGxlci9pbmRleC5waHApCgojIyMgRXhhbXBsZSAyOiBEaXNwYXRjaGVyIGFzIFByb3h5IHVzaW5nIEFwcGxpY2F0aW9uCmNhc2Ugc3R1ZHk6IFtkaXNwYXRjaGVyIGFzIHByb3h5IHVzaW5nIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vcm9zYXJpby1maW9yZWxsYS9taWNyby1mcmFtZXdvcmstaHR0cC90cmVlL2ZlYXR1cmUvZnJvbnQtY29udHJvbGxlci8wMi1leGFtcGxlLWRpc3BhdGNoZXItYXMtcHJveHktdXNpbmctYXBwbGljYXRpb24pCgojIyBTZWN1cml0eSBWdWxuZXJhYmlsaXRpZXMKRm9yIGJldHRlciBzZWN1cml0eSBzZXR1cCwgYWRkIHRoZSBmb2xsb3dpbmcgaHR0cCByZXNwb25zZSBoZWFkZXJzIFttb3JlIGluZm9dKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvSGVhZGVycykgZWRpdCAqKi5odGFjY2VzcyoqIGlmIHVzaW5nICoqQXBhY2hlKiogb3IgKipkZWZhdWx0LmNvbmZpZyoqIG9uICoqTmdpbngqKiwgb3IgdXNlIFtgYGBcQ29yZVxIdHRwXFJlc3BvbnNlOjpzZXRIZWFkZXJgYGBdKC9Db3JlL0h0dHAvUmVzcG9uc2UucGhwKSBtZXRob2QgaW4geW91ciBjb250cm9sbGVyCgotIGBgYFgtRnJhbWUtT3B0aW9uczogU0FNRU9SSUdJTmBgYAotIGBgYFgtWFNTLVByb3RlY3Rpb246ICIxOyBtb2RlPWJsb2NrImBgYAotIGBgYFgtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmZgYGAKLSBgYGBSZWZlcnJlci1Qb2xpY3k6IHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW5gYGAKCkRlYnVnZ2luZyBlbmFibGVkICoqbG9jYWwgZGV2ZWxvcG1lbnQgb25seSoqCgpIaWRlIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBpbiBodHRwIHJlcXVlc3RzL3Jlc3BvbnNlCgpIaWRlIGZpbGUgcGF0aCBpbmZvcm1hdGlvbiBpbiBodHRwIHJlcXVlc3RzL3Jlc3BvbnNlcwoKQWx3YXlzIHZhbGlkYXRlL2VzY2FwZSB1c2VyIGlucHV0IG9mIHJlcXVlc3RzCgpEbyBub3QgYWxsb3cgZGlyZWN0IGFjY2VzcyB0byBmaWxlcyBhbmQgZm9sZGVycwoKIyMgTGljZW5zZQpbc2VlIGxpY2Vuc2UgaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL3Jvc2FyaW8tZmlvcmVsbGEvbWljcm8tZnJhbWV3b3JrLWh0dHAvYmxvYi9tYXN0ZXIvTElDRU5TRSk= readmeEtag: '"75badb986cb7ab0dd8fa70cbcc472b99feed3c1e"' readmeLastModified: Sun, 23 Jul 2023 13:54:30 GMT repositoryId: 591982605 description: >- The http-based PHP framework implements the Dispatcher pattern and can be configured as a front-controller or delegate the request to an application. Suitable for REST API services or monolithic server-side rendering. created: '2023-01-22T15:08:59Z' updated: '2023-07-29T10:21:38Z' language: PHP archived: false stars: 0 watchers: 1 forks: 0 owner: rosario-fiorella logo: https://avatars.githubusercontent.com/u/41728059?v=4 license: MIT repoEtag: '"df7046564b0d51ffff46993e00c46bd6ade2e7c363764a6e7b0136dc42e0b773"' repoLastModified: Sat, 29 Jul 2023 10:21:38 GMT category: Server Implementations foundInMaster: true oldLocations: - https://github.com/rosario-fiorella/micro-framework-http - source: https://openapi.tools/ name: BOATS category: - DSL - SDK link: https://www.npmjs.com/package/boats repository: https://github.com/j-d-carmichael/boats language: Node.js source_description: > BOATS allows for larger teams to contribute to multi-file OpenAPI definitions by writing Nunjucks tpl syntax in yaml with a few important helpers to ensure stricter consistency, eg operationId: <$ uniqueOpId() $>. v2: true v3: true repositoryMetadata: base64Readme: >- IyBCT0FUUwoKIVtCb2F0c10oYm9hdHMuanBnKQoKQW4gT3BlbkFQSSAmIEFzeW5jQVBJIHRlbXBsYXRpbmcgc3lzdGVtIHdpdGggTnVuanVja3MuLi4gd3JpdGUgbGVzcyBZQU1MLi4uIGRvIG1vcmUuCl9fXwoKIyMgV2hhdCBpcyBpdD8KCk9wZW5BUEkgYW5kIEFzeW5jQVBJIGFyZSBncmVhdCwgd3JpdGluZyB5YW1sIGlzIGZhc3QuLi4gaG93ZXZlciwgdGhlcmUgaXMgYSBsb3Qgb2YgY29weS9wYXN0ZSByZXF1aXJlZC4gQWRkaXRpb25hbGx5LCBtYW5hZ2luZyBtYW55IHJvdXRlcyBpbiBhIHNpbmdsZSBmaWxlIGlzIHBhaW5mdWwuIEJPQVRTIGFsbG93cyB5b3UgdG8gcmVkdWNlIHRoZSBjb3B5IGFuZCBwYXN0aW5nIHdpdGggbWFueSBidWlsdCBpbiBoZWxwZXJzIHdoaWxlIGF0IHRoZSBzYW1lIHRpbWUgYnJlYWtpbmcgdGhlIDEgbGFyZ2VyIGZpbGUgZG93biBpbnRvIG1hbnkgc21hbGwgZmlsZXMuIFRoZSBvdXRwdXQgZnJvbSBCT0FUUyBpcyBhbHNvIHZhbGlkYXRlZCB2aWEgW0BhcGlkZXZ0b29sc10oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzKSBvciBbQGFzeW5jYXBpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkpLgoKIyMgUXVpY2sgc3RhcnQKMS4gSW5pdGlhbGl6ZSBhIG5ldyBwcm9qZWN0OiBucG0gaW5pdCAteQoyLiBTZXQgdXAgQk9BVFM6IG5weCBib2F0cyAtLWluaXQgKGZvbGxvdyB0aGUgcHJvbXB0cykKMy4gQnVpbGQgdGhlIHByb2plY3Q6IG5wbSBydW4gYnVpbGQgKG91dHB1dHMgaW4gLi9idWlsZCkKCiMjIERvY3MgJiBDaGFuZ2Vsb2cKW0Z1bGwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9qLWQtY2FybWljaGFlbC5naXRodWIuaW8vYm9hdHMpCgpbQ2hhbmdlbG9nXShodHRwczovL2otZC1jYXJtaWNoYWVsLmdpdGh1Yi5pby9ib2F0cy8jLz9pZD1jaGFuZ2Vsb2cpCgojIyBCT0FUUyBDTEkKCldyaXRpbmcgeWFtbCBmaWxlcyBmb3IgQk9BVFMgaXMgZWFzaWVyIHRoYW4gbWFuYWdpbmcgYSBzaW5nbGUgZmlsZSwgYnV0IHRvIG1ha2Ugd3JpdGluZyBCT0FUUyB5bWwgZmlsZXMgZXZlbiBlYXNpZXIuLi4gdGhlcmUgaXMgbm93IGEgQk9BVFMgQ0xJIHRvb2w6CgpodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AYWNyb250dW0vYm9hdHMtY2xpCgojIyBFeGFtcGxlcwpTaW1wbGUgZXhhbXBsZXMgY2FuIGJlIGZvdW5kIGhlcmU6Ci0gW0FzeW5jIEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL2otZC1jYXJtaWNoYWVsL2JvYXRzL3RyZWUvbWFpbi9pbml0LWZpbGVzL2FzeW5jYXBpKQotIFtPcGVuIEFQSSAyXShodHRwczovL2dpdGh1Yi5jb20vai1kLWNhcm1pY2hhZWwvYm9hdHMvdHJlZS9tYWluL2luaXQtZmlsZXMvb2EyKQotIFtPcGVuIEFQSSAzXShodHRwczovL2dpdGh1Yi5jb20vai1kLWNhcm1pY2hhZWwvYm9hdHMvdHJlZS9tYXN0ZXIvc3JjT0EzKQoKKFJlZmVyIHRvIHRoZSBbZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9qLWQtY2FybWljaGFlbC5naXRodWIuaW8vYm9hdHMpIGZvciBhZGRpdGlvbmFsIGZlYXR1cmVzIGFuZCBkZXRhaWxzLikKCiMjIFRoYW5rcyBUbwpCT0FUUyBpcyBub3RoaW5nIHdpdGhvdXQgdGhlIHN1cHBvcnQgb2Y6Ci0gRXZlcnkgW2NvbnRyaWJ1dG9yXShodHRwczovL2dpdGh1Yi5jb20vai1kLWNhcm1pY2hhZWwvYm9hdHMvZ3JhcGhzL2NvbnRyaWJ1dG9ycykgJiBbaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qLWQtY2FybWljaGFlbC9ib2F0cy9pc3N1ZXMpIQotIFtAYXBpZGV2dG9vbHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scykKLSBbQGFzeW5jYXBpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkpCi0gW2pzLXlhbWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvanMteWFtbCkKLSBNb3ppbGxhIFtOdWp1Y2tzXShodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9udW5qdWNrcykKLSBKZXRicmFpbnMgW09wZW4gU291cmNlIERldmVsb3BtZW50IC0gQ29tbXVuaXR5IFN1cHBvcnRdKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vY29tbXVuaXR5L29wZW5zb3VyY2UvI3N1cHBvcnQpIQoKClshW0pldGJyYWluc10oaHR0cHM6Ly9yZXNvdXJjZXMuamV0YnJhaW5zLmNvbS9zdG9yYWdlL3Byb2R1Y3RzL2NvbXBhbnkvYnJhbmQvbG9nb3MvamJfYmVhbS5zdmcpXShodHRwczovL3d3dy5qZXRicmFpbnMuY29tL2NvbW11bml0eS9vcGVuc291cmNlLyNzdXBwb3J0KSBbIVtHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL21vZHVsZXMvZGFzaGJvYXJkL29uYm9hcmRpbmcvZ2gtZGVza3RvcC5wbmcpXShodHRwczovL2dpdGh1Yi5jb20vKSBbIVthcGlkZXZ0b29sc10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzNzUwMDc0P3M9MjAwJnY9NCldKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scykgWyFbYXN5bmNhcGldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjQwMTMzND9zPTIwMCZ2PTQpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkpIFshW051anVja3NdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzE1MjQ/cz0yMDAmdj00KV0oaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvbnVuanVja3MpCgo= readmeEtag: '"16162014ee30fce0badddab4f3e8e74a914d4515"' readmeLastModified: Thu, 08 Aug 2024 17:13:04 GMT repositoryId: 179890990 description: Beautiful Open Api Template System created: '2019-04-06T21:56:58Z' updated: '2024-08-08T17:13:10Z' language: TypeScript archived: false stars: 57 watchers: 3 forks: 8 owner: j-d-carmichael logo: https://avatars.githubusercontent.com/u/49351986?v=4 license: MIT repoEtag: '"5aeee813c12596b0dfb504d47e17a124e9ff726ac983cbd2967308cacfba718a"' repoLastModified: Thu, 08 Aug 2024 17:13:10 GMT foundInMaster: true id: 8049f9d9f009ed969457a47b97bb22a5 oldLocations: - https://github.com/johndcarmichael/boats - source: https://openapi.tools/ name: APIClarity category: - Learning - Server Implementations language: - Golang - JavaScript link: https://apiclarity.io/ repository: https://github.com/openclarity/apiclarity source_description: >- Reconstruct Open API Specifications from real-time workload traffic seamlessly. v2: true v3: true v3_link: https://github.com/apiclarity/apiclarity/issues/39 repositoryMetadata: base64Readme: >- IyBBUElDbGFyaXR5CgohW0FQSUNsYXJpdHldKEFQSV9jbGFyaXR5LnN2ZyAiQVBJQ2xhcml0eSIpCgpBUElDbGFyaXR5IGlzIGEgbW9kdWxhciB0b29sIHRoYXQgYWRkcmVzc2VzIHNldmVyYWwgYXNwZWN0cyBvZiBBUEkgU2VjdXJpdHksIGZvY3VzaW5nIHNwZWNpZmljYWxseSBvbiBbT3BlbkFQSV0oaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvbGF0ZXN0Lmh0bWwpIGJhc2VkIEFQSXMuCgpBUElDbGFyaXR5IGFwcHJvYWNoZXMgQVBJIFNlY3VyaXR5IGluIDIgZGlmZmVyZW50IHdheXM6Ci0gQ2FwdHVyZXMgYWxsIEFQSSB0cmFmZmljIGluIGEgZ2l2ZW4gZW52aXJvbm1lbnQgYW5kIHBlcmZvcm1zIGEgc2V0IG9mIHNlY3VyaXR5IGFuYWx5c2lzIHRvIGRpc2NvdmVyIGFsbCBwb3RlbnRpYWwgc2VjdXJpdHkgcHJvYmxlbXMgd2l0aCBkZXRlY3RlZCBBUElzCi0gQWN0aXZlbHkgdGVzdHMgQVBJIGVuZHBvaW50cyB0byBkZXRlY3Qgc2VjdXJpdHkgaXNzdWVzIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzdWNoIEFQSXMuCgojIyBPcGVuQVBJIGF1dG9tYXRpYyByZWNvbnN0cnVjdGlvbgpCb3RoIGFwcHJvYWNoZXMgZGVzY3JpYmVkIGFib3ZlIGFyZSB3YXkgbW9yZSBlZmZlY3RpdmUgd2hlbiBBUElDbGFyaXR5IGlzIHByaW1lZCB3aXRoIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb25zIG9mIHRoZSBBUElzIGFuYWx5emVkIG9yIHRlc3RlZC4gSG93ZXZlciwgbm90IGFsbCBhcHBsaWNhdGlvbnMgaGF2ZSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb24gYXZhaWxhYmxlLiBGb3IgdGhpcyByZWFzb24gb25lIG9mIHRoZSBtYWluIGZ1bmN0aW9uYWxpdHkgb2YgQVBJQ2xhcml0eSBpcyB0aGUgYXV0b21hdGljIHJlY29uc3RydWN0aW9uIG9mIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgYmFzZWQgb24gb2JzZXJ2ZWQgQVBJIHRyYWZmaWMuIEluIHRoaXMgY2FzZSwgdXNlcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byByZXZpZXcgYW5kIGFwcHJvdmUgdGhlIHJlY29uc3RydWN0ZWQgc3BlY2lmaWNhdGlvbnMuCgojIyBTZWN1cml0eSBNb2R1bGVzCkFQSUNsYXJpdHkgaXMgc3RydWN0dXJlZCBpbiBhIG1vZHVsYXIgYXJjaGl0ZWN0dXJlLCB3aGljaCBhbGxvd3MgdG8gZWFzaWx5IGFkZCBuZXcgZnVuY3Rpb25hbGl0aWVzLgoKSW4gdGhlIGZvbGxvd2luZyBhIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBtb2R1bGVzIGN1cnJlbnRseSBpbXBsZW1lbnRlZDoKCi0gKipTcGVjIERpZmZzKiogVGhpcyBtb2R1bGUgY29tcGFyZXMgdGhlIEFQSSB0cmFjZXMgd2l0aCB0aGUgT0FQSSBzcGVjaWZpY2F0aW9ucyBwcm92aWRlZCBieSB0aGUgdXNlciBvciBwcmV2aW91c2x5IHJlY29uc3RydWN0ZWQuIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wYXJpc29uIHByb3ZpZGVzOgogICAgLSBMaXN0IG9mIEFQSSBlbmRwb2ludHMgdGhhdCBhcmUgb2JzZXJ2ZWQgYnV0IG5vdCBkb2N1bWVudGVkIGluIHRoZSBzcGVjcywgaS5lLiBfU2hhZG93IEFQSXNfOwogICAgLSBMaXN0IG9mIEFQSSBlbmRwb2ludHMgdGhhdCBhcmUgb2JzZXJ2ZWQgYnV0IG1hcmtlZCBhcyBkZXByZWNhdGVkIGluIHRoZSBzcGVjcywgaS5lLiBfWm9tYmllIEFQSXNfOwogICAgLSBMaXN0IG9mIGRpZmZlcmVuY2UgYmV0d2VlbiBvZiB0aGUgQVBJcyBvYnNlcnZlZCBhbmQgdGhlaXIgZG9jdW1lbnRlZCBzcGVjaWZpY2F0aW9uLgotIFsqKlRyYWNlIEFuYWx5emVyKipdKC4vYmFja2VuZC9wa2cvbW9kdWxlcy9pbnRlcm5hbC90cmFjZWFuYWx5emVyL1JFQURNRS5tZCkgVGhpcyBtb2R1bGUgYW5hbHl6ZXMgcGF0aCwgaGVhZGVycyBhbmQgYm9keSBvZiBBUEkgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcyB0byBkaXNjb3ZlciBwb3RlbnRpYWwgc2VjdXJpdHkgaXNzdWVzLCBzdWNoIGFzIHdlYWsgYXV0aGVudGljYXRpb25zLCBleHBvc3VyZSBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24sIHBvdGVudGlhbCBCcm9rZW4gT2JqZWN0IExldmVsIEF1dGhvcml6YXRpb25zIChCT0xBKSBldGMuCi0gWyoqQkZMQSBEZXRlY3RvcioqXSguL2JhY2tlbmQvcGtnL21vZHVsZXMvaW50ZXJuYWwvYmZsYS9SRUFETUUubWQpIFRoaXMgbW9kdWxlIGRldGVjdHMgcG90ZW50aWFsIEJyb2tlbiBGdW5jdGlvbiBMZXZlbCBBdXRob3JpemF0aW9uLiBJbiBwYXJ0aWN1bGFyIGl0IG9ic2VydmVzIHRoZSBBUEkgaW50ZXJhY3Rpb25zIGFuZCBidWlsZCBhbiBhdXRob3JpemF0aW9uIG1vZGVsIHRoYXQgY2FwdHVyZXMgd2hhdCBjbGllbnRzIGFyZSBzdXBwb3NlZCB0byBiZSBhdXRob3JpemVkIHRvIG1ha2UgdGhlIHZhcmlvdXMgQVBJIGNhbGxzLiBCYXNlZCBvbiBzdWNoIGF1dGhvcml6YXRpb24gbW9kZWwgaXQgdGhlbiBzaWduYWxzIHZpb2xhdGlvbnMgd2hpY2ggbWF5IHJlcHJlc2VudCBwb3RlbnRpYWwgaXNzdWVzIGluIHRoZSBBUEkgYXV0aG9yaXphdGlvbiBwcm9jZWR1cmVzLgotICoqRnV6emVyKiogVGhpcyBtb2R1bGUgYWN0aXZlbHkgdGVzdHMgQVBJIGVuZHBvaW50cyBiYXNlZCBvbiB0aGVpciBzcGVjaWZpY2F0aW9uIGF0dGVtcHRpbmcgaW4gZGlzY292ZXJpbmcgc2VjdXJpdHkgaXNzdWVzIGluIHRoZSBBUEkgc2VydmVyIGltcGxlbWVudGF0aW9uLgoKIyMgSGlnaCBsZXZlbCBhcmNoaXRlY3R1cmUKCiFbSGlnaCBsZXZlbCBhcmNoaXRlY3R1cmVdKGRpYWdyYW0ucG5nICJIaWdoIGxldmVsIGFyY2hpdGVjdHVyZSIpCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCiMjIyBTdXBwb3J0ZWQgdHJhZmZpYyBzb3VyY2UgaW50ZWdyYXRpb25zCgpBUElDbGFyaXR5IHN1cHBvcnRzIGludGVncmF0aW5nIHdpdGggdGhlIGZvbGxvd2luZyB0cmFmZmljIHNvdXJjZXMuIEluc3RhbGwgQVBJQ2xhcml0eSBhbmQgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgcGVyIHJlcXVpcmVkIGludGVncmF0aW9uLgoKKiBJc3RpbyBTZXJ2aWNlIE1lc2gKICAqIE1ha2Ugc3VyZSB0aGF0IElzdGlvIDEuMTArIGlzIGluc3RhbGxlZCBhbmQgcnVubmluZyBpbiB5b3VyIGNsdXN0ZXIuCiAgU2VlIHRoZSBbT2ZmaWNpYWwgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9uc10oaHR0cHM6Ly9pc3Rpby5pby9sYXRlc3QvZG9jcy9zZXR1cC9nZXR0aW5nLXN0YXJ0ZWQvI2luc3RhbGwpCiAgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgoqIFRhcCB2aWEgYSBEYWVtb25TZXQKICAqIFtJbnRlZ3JhdGlvbiBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L3RyZWUvbWFzdGVyL3BsdWdpbnMvdGFwZXIpCgoqIEtvbmcgQVBJIEdhdGV3YXkKICAqIFtJbnRlZ3JhdGlvbiBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L3RyZWUvbWFzdGVyL3BsdWdpbnMvZ2F0ZXdheS9rb25nKQoKKiBUeWsgQVBJIEdhdGV3YXkKICAqIFtJbnRlZ3JhdGlvbiBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L3RyZWUvbWFzdGVyL3BsdWdpbnMvZ2F0ZXdheS90eWspCgoqIE9wZW5UZWxlbWV0cnkgQ29sbGVjdG9yICh0cmFjZXMgb25seSkKICAqIFtJbnRlZ3JhdGlvbiBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L3RyZWUvbWFzdGVyL3BsdWdpbnMvb3RlbC1jb2xsZWN0b3IpCgpUaGUgaW50ZWdyYXRpb25zIChwbHVnaW5zKSBmb3IgdGhlIHN1cHBvcnRlZCB0cmFmZmljIHNvdXJjZXMgYWJvdmUgYXJlIGxvY2F0ZWQgaW4gdGhlIFtwbHVnaW5zIGRpcmVjdG9yeSB3aXRoaW4gdGhlIGNvZGViYXNlXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmNsYXJpdHkvYXBpY2xhcml0eS90cmVlL21hc3Rlci9wbHVnaW5zKSBhbmQgaW1wbGVtZW50IHRoZSBbcGx1Z2lucyBBUEldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L3RyZWUvbWFzdGVyL3BsdWdpbnMvYXBpKSB0byBleHBvcnQgdGhlIEFQSSBldmVudHMgdG8gQVBJQ2xhcml0eS4gVG8gZW5hYmxlIGFuZCBjb25maWd1cmUgdGhlIHN1cHBvcnRlZCB0cmFmZmljIHNvdXJjZXMsIHBsZWFzZSBjaGVjayB0aGUgYGBgdHJhZmZpY1NvdXJjZTpgYGAgc2VjdGlvbiBpbiBbSGVsbSB2YWx1ZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L2Jsb2IvbWFzdGVyL2NoYXJ0cy9hcGljbGFyaXR5L3ZhbHVlcy55YW1sKS4KQ29udHJpYnV0aW9ucyBvZiBpbnRlZ3JhdGlvbnMgd2l0aCBhZGRpdGlvbmFsIHRyYWZmaWMgc291cmNlcyBhcmUgbW9yZSB0aGFuIHdlbGNvbWUhCgojIyMgSW5zdGFsbCBBUElDbGFyaXR5IGluIGEgSzhzIGNsdXN0ZXIgdXNpbmcgSGVsbToKCjEuIEFkZCBIZWxtIHJlcG8KCiAgIGBgYHNoZWxsCiAgIGhlbG0gcmVwbyBhZGQgYXBpY2xhcml0eSBodHRwczovL29wZW5jbGFyaXR5LmdpdGh1Yi5pby9hcGljbGFyaXR5CiAgIGBgYAoKMi4gU2F2ZSBBUElDbGFyaXR5IGRlZmF1bHQgY2hhcnQgdmFsdWVzCgogICAgYGBgc2hlbGwKICAgIGhlbG0gc2hvdyB2YWx1ZXMgYXBpY2xhcml0eS9hcGljbGFyaXR5ID4gdmFsdWVzLnlhbWwKICAgIGBgYAoKMy4gVXBkYXRlIGB2YWx1ZXMueWFtbGAgd2l0aCB0aGUgcmVxdWlyZWQgdHJhZmZpYyBzb3VyY2UgdmFsdWVzCgo0LiBEZXBsb3kgQVBJQ2xhcml0eSB3aXRoIEhlbG0gZm9yIHRoZSBzZWxlY3RlZCB0cmFmZmljIHNvdXJjZQoKICAgYGBgc2hlbGwKICAgaGVsbSBpbnN0YWxsIC0tdmFsdWVzIHZhbHVlcy55YW1sIC0tY3JlYXRlLW5hbWVzcGFjZSBhcGljbGFyaXR5IGFwaWNsYXJpdHkvYXBpY2xhcml0eSAtbiBhcGljbGFyaXR5CiAgIGBgYAoKNS4gUG9ydCBmb3J3YXJkIHRvIEFQSUNsYXJpdHkgVUk6CgogICBgYGBzaGVsbAogICBrdWJlY3RsIHBvcnQtZm9yd2FyZCAtbiBhcGljbGFyaXR5IHN2Yy9hcGljbGFyaXR5LWFwaWNsYXJpdHkgOTk5OTo4MDgwCiAgIGBgYAoKNi4gT3BlbiBBUElDbGFyaXR5IFVJIGluIHRoZSBicm93c2VyOiA8aHR0cDovL2xvY2FsaG9zdDo5OTk5Lz4KNy4gR2VuZXJhdGUgc29tZSB0cmFmZmljIGluIHRoZSB0cmFjZWQgYXBwbGljYXRpb25zIGFuZCBjaGVjayB0aGUgQVBJQ2xhcml0eSBVSSA6KQoKIyMjIFVuaW5zdGFsbCBBUElDbGFyaXR5IGZyb20gYSBLOHMgY2x1c3RlciB1c2luZyBIZWxtOgoKMS4gSGVsbSB1bmluc3RhbGwKCiAgIGBgYHNoZWxsCiAgIGhlbG0gdW5pbnN0YWxsIGFwaWNsYXJpdHkgLW4gYXBpY2xhcml0eQogICBgYGAKCjIuIENsZWFuIHJlc291cmNlcwoKICAgIEJ5IGRlZmF1bHQsIEhlbG0gd2lsbCBub3QgcmVtb3ZlIHRoZSBQVkNzIGFuZCBQVnMgZm9yIHRoZSBTdGF0ZWZ1bFNldHMuIFJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gZGVsZXRlIHRoZW0gYWxsOgoKICAgIGBgYHNoZWxsCiAgICBrdWJlY3RsIGRlbGV0ZSBwdmMgLWwgYXBwLmt1YmVybmV0ZXMuaW8vaW5zdGFuY2U9YXBpY2xhcml0eSAtbiBhcGljbGFyaXR5CiAgICBgYGAKCiMjIENvbmZpZ3VyYXRpb25zCgpUaGUgZmlsZSBbdmFsdWVzLnlhbWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L2Jsb2IvbWFzdGVyL2NoYXJ0cy9hcGljbGFyaXR5L3ZhbHVlcy55YW1sKSBpcyB1c2VkIHRvIGRlcGxveSBhbmQgY29uZmlndXJlIEFQSUNsYXJpdHkgb24geW91ciBjbHVzdGVyIHZpYSBIZWxtLgpbVGhpcyBDb25maWdNYXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L2Jsb2IvbWFzdGVyL2NoYXJ0cy9hcGljbGFyaXR5L3RlbXBsYXRlcy9jb25maWdtYXAueWFtbCkgaXMgdXNlZCB0byBkZWZpbmUgdGhlIGxpc3Qgb2YgaGVhZGVycyB0byBpZ25vcmUgd2hlbiByZWNvbnN0cnVjdGluZyB0aGUgc3BlYy4KCiMjIFRlc3Rpbmcgd2l0aCBhIGRlbW8gYXBwbGljYXRpb24KCkEgZ29vZCBkZW1vIGFwcGxpY2F0aW9uIHRvIHRyeSBBUElDbGFyaXR5IHdpdGggaXMgdGhlIFtTb2NrIFNob3AgRGVtb10oaHR0cHM6Ly9taWNyb3NlcnZpY2VzLWRlbW8uZ2l0aHViLmlvLykuCgpUbyBkZXBsb3kgdGhlIFNvY2sgU2hvcCBEZW1vLCBmb2xsb3cgdGhlc2Ugc3RlcHM6CgoxLiBDcmVhdGUgdGhlIGBzb2NrLXNob3BgIG5hbWVzcGFjZSBhbmQgZW5hYmxlIElzdGlvIGluamVjdGlvbjoKCiAgIGBgYHNoZWxsCiAgIGt1YmVjdGwgY3JlYXRlIG5hbWVzcGFjZSBzb2NrLXNob3AKICAga3ViZWN0bCBsYWJlbCBuYW1lc3BhY2VzIHNvY2stc2hvcCBpc3Rpby1pbmplY3Rpb249ZW5hYmxlZAogICBgYGAKCjIuIERlcGxveSB0aGUgU29jayBTaG9wIERlbW8gdG8geW91ciBjbHVzdGVyOgoKICAgYGBgc2hlbGwKICAga3ViZWN0bCBhcHBseSAtZiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbWljcm9zZXJ2aWNlcy1kZW1vL21pY3Jvc2VydmljZXMtZGVtby9tYXN0ZXIvZGVwbG95L2t1YmVybmV0ZXMvY29tcGxldGUtZGVtby55YW1sCiAgIGBgYAoKMy4gRGVwbG95IEFQSUNsYXJpdHkgaW4gdGhlIGBzb2NrLXNob3BgIG5hbWVzcGFjZSAoZS5nLiBJc3RpbyBzZXJ2aWNlLW1lc2ggdHJhZmZpYyBzb3VyY2UpOgoKICAgYGBgc2hlbGwKICAgaGVsbSByZXBvIGFkZCBhcGljbGFyaXR5IGh0dHBzOi8vb3BlbmNsYXJpdHkuZ2l0aHViLmlvL2FwaWNsYXJpdHkKICAgYGBgCgogICBgYGBzaGVsbAogICBoZWxtIGluc3RhbGwgLS1zZXQgJ3RyYWZmaWNTb3VyY2UuZW52b3lXYXNtLmVuYWJsZWQ9dHJ1ZScgLS1zZXQgJ3RyYWZmaWNTb3VyY2UuZW52b3lXYXNtLm5hbWVzcGFjZXM9e3NvY2stc2hvcH0nIC0tY3JlYXRlLW5hbWVzcGFjZSBhcGljbGFyaXR5IGFwaWNsYXJpdHkvYXBpY2xhcml0eSAtbiBhcGljbGFyaXR5CiAgIGBgYAoKNC4gUG9ydCBmb3J3YXJkIHRvIFNvY2sgU2hvcCdzIGZyb250LWVuZCBzZXJ2aWNlIHRvIGFjY2VzcyB0aGUgU29jayBTaG9wIERlbW8gQXBwOgoKICAgYGBgc2hlbGwKICAga3ViZWN0bCBwb3J0LWZvcndhcmQgLW4gc29jay1zaG9wIHN2Yy9mcm9udC1lbmQgNzc3Nzo4MAogICBgYGAKCiAgIE9wZW4gdGhlIFNvY2sgU2hvcCBEZW1vIEFwcCBVSSBpbiB0aGUgYnJvd3NlciAoPGh0dHA6Ly9sb2NhbGhvc3Q6Nzc3Ny8+KSBhbmQgcnVuCiAgIHNvbWUgdHJhbnNhY3Rpb25zIHRvIGdlbmVyYXRlIGRhdGEgdG8gcmV2aWV3IG9uIHRoZSBBUElDbGFyaXR5IGRhc2hib2FyZC4KCiMjIEJ1aWxkaW5nCgojIyMgQnVpbGRpbmcgZnJvbSBzb3VyY2U6CgpCdWlsZCBhbmQgcHVzaCB0aGUgaW1hZ2UgdG8geW91ciByZXBvOgoKYGBgc2hlbGwKRE9DS0VSX0lNQUdFPTx5b3VyIGRvY2tlciByZWdpc3RyeT4vYXBpY2xhcml0eSBET0NLRVJfVEFHPTx5b3VyIHRhZz4gbWFrZSBwdXNoLWRvY2tlcgpgYGAKClVwZGF0ZSBbdmFsdWVzLnlhbWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L2Jsb2IvbWFzdGVyL2NoYXJ0cy9hcGljbGFyaXR5L3ZhbHVlcy55YW1sKSBhY2NvcmRpbmdseS4KCiMjIFJ1bm5pbmcgbG9jYWxseSB3aXRoIGRlbW8gZGF0YQoKMS4gQnVpbGQgVUkgJiBiYWNrZW5kIGxvY2FsbHkgYXMgZGVzY3JpYmVkIGFib3ZlOgoKICAgYGBgc2hlbGwKICAgbWFrZSB1aSAmJiBtYWtlIGJhY2tlbmQKICAgYGBgCgoyLiBDb3B5IHRoZSBidWlsdCBzaXRlOgoKICAgYGBgc2hlbGwKICAgY3AgLXIgLi91aS9idWlsZCAuL3NpdGUKICAgYGBgCgozLiBSdW4gYmFja2VuZCBhbmQgZnJvbnRlbmQgbG9jYWxseSB1c2luZyBkZW1vIGRhdGE6CgogICBOb3RlOiBZb3UgbWlnaHQgbmVlZCB0byBkZWxldGUgdGhlIG9sZCBsb2NhbCBzdGF0ZSBmaWxlIGFuZCBsb2NhbCBkYjoKCiAgIGBgYHNoZWxsCiAgIHJtIHN0YXRlLmdvYjsgcm0gZGIuZGIKICAgYGBgCgogICBgYGBzaGVsbAogICBEQVRBQkFTRV9EUklWRVI9TE9DQUwgSzhTX0xPQ0FMPXRydWUgRkFLRV9UUkFDRVM9dHJ1ZSBGQUtFX1RSQUNFU19QQVRIPS4vYmFja2VuZC9wa2cvdGVzdC90cmFjZV9maWxlcyBcCiAgIEVOQUJMRV9EQl9JTkZPX0xPR1M9dHJ1ZSAuL2JhY2tlbmQvYmluL2JhY2tlbmQgcnVuCiAgIGBgYAogICBOb3RlOiB0aGlzIGNvbW1hbmQgcmVxdWlyZXMgYSBwcm9wZXIgS1VCRUNPTkZJRyBpbiB5b3VyIGVudmlyb25tZW50IHdoZW4gX19LOFNfTE9DQUw9dHJ1ZV9fIGlzIHVzZWQuIElmIHlvdSB3YW50IHRvIHJ1biB3aXRob3V0IGs4cywgdXNlIF9fRU5BQkxFX0s4Uz1mYWxzZV9fIGluc3RlYWQuCgo0LiBPcGVuIEFQSUNsYXJpdHkgVUkgaW4gdGhlIGJyb3dzZXI6IDxodHRwOi8vbG9jYWxob3N0OjgwODAvPgoKIyMgRW5hYmxpbmcgRXh0ZXJuYWwgVHJhY2UgU291cmNlcyBTdXBwb3J0CkVuYWJsaW5nIGV4dGVybmFsIHRyYWNlIHNvdXJjZXMgc3VwcG9ydCwgQVBJQ2xhcml0eSBjYW4gcmVjZWl2ZSB0aGUgdHJhY2Ugc291cmNlcyBmcm9tIHRoZSBlbnRpdGl0ZXMgdGhhdCBhcmUgZXh0ZXJuYWwgdG8gdGhlIEs4cyBjbHVzdGVyLiBFeHRlcm5hbCB0cmFjZSBzb3VyY2VzIHN1Y2ggYXMgR2F0ZXdheXMsIExvYWQgYmFsYW5jZXJzLCBldGMuIGNhbiBjb21tdW5pY2F0ZSB3aXRoIEFQSUNsYXJpdHkgdG8gcmVwb3J0IEFQSXMgYW5kIHNlbmQgdGhlIHRyYWNlcy4gCgpUaGUgZm9sbG93aW5nIHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byBkZXBsb3kgQVBJQ2xhcml0eSB3aXRoIHRoZSBzdXBwb3J0IGZvciBleHRlcm5hbCB0cmFjZSBzb3VyY2VzCjEuCUFkZCBIZWxtIFJlcG8KYGBgc2hlbGwKaGVsbSByZXBvIGFkZCBhcGljbGFyaXR5IGh0dHBzOi8vb3BlbmNsYXJpdHkuZ2l0aHViLmlvL2FwaWNsYXJpdHkKYGBgCgoyLglVcGRhdGUgdmFsdWVzLnlhbWwgd2l0aCAKYGBgc2hlbGwKQXBpY2xhcml0eSAtPiB0bHMgLT4gZW5hYmxlZCBhcyB0cnVlCnN1cHBvcnRFeHRlcm5hbFRyYWNlU291cmNlIC0+IGVuYWJsZWQgYXMgdHJ1ZQpgYGAKCjMuCURlcGxveSBBUElDbGFyaXR5IHdpdGggdGhlIEhlbG0gZW5hYmxpbmcgZXh0ZXJuYWwgdHJhZmZpYyBzb3VyY2VzCmBgYHNoZWxsCmhlbG0gaW5zdGFsbCAtLXZhbHVlcyB2YWx1ZXMueWFtbCAtLWNyZWF0ZS1uYW1lc3BhY2UgYXBpY2xhcml0eSBhcGljbGFyaXR5L2FwaWNsYXJpdHkgLW4gYXBpY2xhcml0eQpgYGAKCjQuCVBvcnQgZm9yd2FyZCB0byBBUElDbGFyaXR5IFVJOgpgYGBzaGVsbAprdWJlY3RsIHBvcnQtZm9yd2FyZCAtbiBhcGljbGFyaXR5IHN2Yy9hcGljbGFyaXR5LWFwaWNsYXJpdHkgOTk5OTo4MDgwCmBgYAoKNS4JT3BlbiBBUElDbGFyaXR5IFVJIGluIHRoZSBicm93c2VyOgpgYGBzaGVsbApodHRwOi8vbG9jYWxob3N0Ojk5OTkgCmBgYAoKVGhlIGZvbGxvd2luZyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8gcmVnaXN0ZXIgYSBuZXcgZXh0ZXJuYWwgdHJhY2Ugc291cmNlLiBBbmQgdGhpcyBzZWN0aW9uIGluY2x1ZGVzIGhvdyB0byBhY2Nlc3MgdGhlIHNlcnZpY2UsIHJlZ2lzdGVyIGEgbmV3IHRyYWNlIHNvdXJjZSwgYW5kIGhvdyB0byByZWNlaXZlIHRoZSB0b2tlbiBhbmQgY2VydGlmaWNhdGUuCjEuCVBvcnQgZm9yd2FyZCBmb3Igc2VydmljZSBhdCA4NDQzCmBgYHNoZWxsCmt1YmVjdGwgcG9ydC1mb3J3YXJkIC1uIGFwaWNsYXJpdHkgc3ZjL2FwaWNsYXJpdHktYXBpY2xhcml0eSA4NDQzOjg0NDMKYGBgCgoyLglSZWdpc3RlciBhIG5ldyBleHRlcm5hbCB0cmFjZSBzb3VyY2UgYW5kIHJlY2VpdmUgdGhlIHRva2VuIApgYGBzaGVsbApUUkFDRV9TT1VSQ0VfVE9LRU49JChjdXJsIC0taHR0cDEuMSAtLWluc2VjdXJlIC1zIC1IICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIC1kICd7Im5hbWUiOiJhcGlnZWVfZ2F0ZXdheSIsInR5cGUiOiJBUElHRUVfWCJ9JyBodHRwczovL2xvY2FsaG9zdDo4NDQzL2FwaS9jb250cm9sL3RyYWNlU291cmNlc3xqcSAtciAnLnRva2VuJykKYGBgCgozLiBSZWNlaXZlIHRoZSBjZXJ0aWZpY2F0ZQpUbyByZWNlaXZlIHRoZSBjZXJ0aWZpY2F0ZSwgZ2V0IHRoZSBFeHRlcm5hbC1JUCBmb3IgdGhlIHNlcnZpY2UgbmFtZWQgYXMgYXBpY2xhcml0eS1leHRlcm5hbApgYGBzaGVsbAprdWJlY3RsIGdldCBzZXJ2aWNlcyAtbiBhcGljbGFyaXR5CmBgYApUaGVuLCB1c2UgdGhlIEV4dGVybmFsLUlQIGFkZHJlc3Mgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQsIHRoZW4gZXh0cmFjdCB0aGUgY2VydGlmaWNhdGUgd2l0aCAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0gYW5kIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0gYW5kIHNhdmUgdG8gc2VydmVyLmNydApgYGBzaGVsbApvcGVuc3NsIHNfY2xpZW50IC1zaG93Y2VydHMgLWNvbm5lY3QgPEV4dGVybmFsLUlQPjoxMDQ0MwpgYGAKClVzZSB0aGUgYWJvdmUgZXh0cmFjdGVkIHRva2VuIGF0IHRoZSBzdGVwLTIgYW5kIGNlcnRpZmljYXRlIGF0IHN0ZXAtMyBmb3IgY29uZmlndXJpbmcgc3Vic2VxdWVudCBleHRlcm5hbCB0cmFjZSBzb3VyY2VzIHN1Y2ggYXMgQXBpZ2VlIFggR2F0ZXdheSBhbmQgQklHLUlQIExUTSBMb2FkIGJhbGFuY2VyCgojIyBTdXBwb3J0ZWQgVHJhY2UgU291cmNlcwpBUElDbGFyaXR5IGNhbiBzdXBwb3J0IHdpdGggdGhlIGZvbGxvd2luZyB0cmFjZSBzb3VyY2VzIGFuZCBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBwZXIgcmVxdWlyZWQgaW50ZWdyYXRpb24uCgoqIEFwaWdlZSBYIEdhdGV3YXkKICAqIFtJbnRlZ3JhdGlvbiBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L3RyZWUvbWFzdGVyL3BsdWdpbnMvZ2F0ZXdheS9hcGlnZWV4KQoqIEJJRy1JUCBMVE0gTG9hZCBiYWxhbmNlcgogICogW0ludGVncmF0aW9uIGluc3RydWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5jbGFyaXR5L2FwaWNsYXJpdHkvdHJlZS9tYXN0ZXIvcGx1Z2lucy9nYXRld2F5L2Y1LWJpZ2lwKQoqIEtvbmcKICAqIFtJbnRlZ3JhdGlvbiBpbnN0cnVjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY2xhcml0eS9hcGljbGFyaXR5L3RyZWUvbWFzdGVyL3BsdWdpbnMvZ2F0ZXdheS9rb25nKQoqIFR5awogICogW0ludGVncmF0aW9uIGluc3RydWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5jbGFyaXR5L2FwaWNsYXJpdHkvdHJlZS9tYXN0ZXIvcGx1Z2lucy9nYXRld2F5L3R5aykKCiMjIENvbnRyaWJ1dGluZwoKUHVsbCByZXF1ZXN0cyBhbmQgYnVnIHJlcG9ydHMgYXJlIHdlbGNvbWUuCgpGb3IgbGFyZ2VyIGNoYW5nZXMgcGxlYXNlIGNyZWF0ZSBhbiBJc3N1ZSBpbiBHaXRIdWIgZmlyc3QgdG8gZGlzY3VzcyB5b3VyCnByb3Bvc2VkIGNoYW5nZXMgYW5kIHBvc3NpYmxlIGltcGxpY2F0aW9ucy4KCiMjIENvbnRyaWJ1dG9ycwoKaHR0cHM6Ly9wYW5vcHRpY2EuYXBwCgojIyBMaWNlbnNlCgpbQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wXShodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQo= readmeEtag: '"e8e7d2fe52e0a9d51ecf4a445a3c52482e9f6883"' readmeLastModified: Wed, 03 Jul 2024 09:43:36 GMT repositoryId: 402435051 description: "An API security tool to capture and analyze API traffic, test API endpoints, reconstruct Open API specification, and identify API security risks.\_" created: '2021-09-02T13:41:19Z' updated: '2024-08-29T06:31:17Z' language: Go archived: false stars: 504 watchers: 21 forks: 64 owner: openclarity logo: https://avatars.githubusercontent.com/u/89657786?v=4 license: Apache-2.0 repoEtag: '"be986b628581de5253afce56a469d5124e8052a15926785b3d93d064f2057c2d"' repoLastModified: Thu, 29 Aug 2024 06:31:17 GMT foundInMaster: true id: 68b981acc13af75d4eb8c04143885e13 oldLocations: - https://github.com/apiclarity/apiclarity - source: https://openapi.tools/ name: Unmock category: - Mock - Testing link: https://unmock.io language: Node.js repository: https://github.com/meeshkan/unmock-js source_description: >- API integration testing library that intercepts outgoing requests and serves back mock data based on the OpenAPI descriptions. v2: false v3: true repositoryMetadata: base64Readme: >- IyBbVW5tb2NrXShodHRwczovL3d3dy51bm1vY2suaW8vKSAoSmF2YVNjcmlwdCBTREspCgpbIVtDaXJjbGVDSV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvbWVlc2hrYW4vdW5tb2NrLWpzLnN2Zz9zdHlsZT1zdmcpXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9tZWVzaGthbi91bm1vY2stanMpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC91bm1vY2svdW5tb2NrLWpzL2JyYW5jaC9kZXYvZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL3VubW9jay91bm1vY2stanMpClshW0tub3duIFZ1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zbnlrLmlvL3Rlc3QvZ2l0aHViL3VubW9jay91bm1vY2stanMvYmFkZ2Uuc3ZnP3RhcmdldEZpbGU9cGFja2FnZS5qc29uKV0oaHR0cHM6Ly9zbnlrLmlvL3Rlc3QvZ2l0aHViL3VubW9jay91bm1vY2stanM/dGFyZ2V0RmlsZT1wYWNrYWdlLmpzb24pClshW0NoYXQgb24gR2l0dGVyXShodHRwczovL2JhZGdlcy5naXR0ZXIuaW0vZ2l0dGVySFEvZ2l0dGVyLnBuZyldKGh0dHBzOi8vZ2l0dGVyLmltL3VubW9jay9jb21tdW5pdHkpCgpGdXp6IHRlc3QgeW91ciBSRVNUIEFQSSBjYWxscy4KCiogW0luc3RhbGxdKCNpbnN0YWxsKQoqIFtXaGF0IERvZXMgVW5tb2NrIERvXSgjd2hhdC1kb2VzLXVubW9jay1kbykKKiBbV2hlbiBUbyBVc2UgVW5tb2NrXSgjd2hlbi10by11c2UtdW5tb2NrKQoqIFtUaGUgRG9jc10oI3RoZS1kb2NzKQoqIFtVc2FnZV0oI3VzYWdlKQogICsgW1NwZWNpZnlpbmcgaG9zdG5hbWVdKCNzcGVjaWZ5aW5nLWhvc3RuYW1lKQogICsgW1NwZWNpZnlpbmcgdGhlIHBhdGhdKCNzcGVjaWZ5aW5nLXRoZS1wYXRoKQogICsgW1NwZWNpZnlpbmcgcmVxdWVzdCBib2R5XSgjc3BlY2lmeWluZy1yZXF1ZXN0LWJvZHkpCiAgKyBbU3BlY2lmeWluZyByZXF1ZXN0IHF1ZXJ5IHN0cmluZ10oI3NwZWNpZnlpbmctcmVxdWVzdC1xdWVyeS1zdHJpbmcpCiAgKyBbU3BlY2lmeWluZyBSZXF1ZXN0IEhlYWRlcnNdKCNzcGVjaWZ5aW5nLXJlcXVlc3QtaGVhZGVycykKICArIFtTcGVjaWZ5aW5nIHJlcGxpZXNdKCNzcGVjaWZ5aW5nLXJlcGxpZXMpCiAgKyBbU3BlY2lmeWluZyByZXBseSBoZWFkZXJzXSgjc3BlY2lmeWluZy1yZXBseS1oZWFkZXJzKQogICsgW0NoYWluaW5nXSgjY2hhaW5pbmcpCiAgKyBbSWdub3JhYmxlIEFQSSBjYWxsc10oI2lnbm9yYWJsZS1hcGktY2FsbHMpCiogW0V4cGVjdGF0aW9uc10oI2V4cGVjdGF0aW9ucykKKiBbSW5pdGlhbGl6aW5nIE1vY2tzXSgjaW5pdGlhbGl6aW5nLW1vY2tzKQoqIFtGYWtlciBBUEldKCNmYWtlci1hcGkpCiogW1J1bm5lcl0oI3J1bm5lcikKKiBbT3BlbkFQSV0oI29wZW5hcGkpCiogW1R1dG9yaWFsc10oI3R1dG9yaWFscykKKiBbQ29udHJpYnV0aW5nXSgjY29udHJpYnV0aW5nKQoqIFtEZXZlbG9wbWVudF0oI2RldmVsb3BtZW50KQoqIFtMaWNlbnNlXSgjbGljZW5zZSkKCiMjIEluc3RhbGwKCmBgYHNoCiQgbnBtIGluc3RhbGwgLS1zYXZlLWRldiB1bm1vY2sKYGBgCgojIyBXaGF0IERvZXMgVW5tb2NrIERvCgpVbm1vY2sgaGVscHMgeW91IGZ1enogdGVzdCBSRVNUIEFQSSBjYWxscy4gRnV6eiB0ZXN0aW5nLCBvciBmdXp6aW5nLCBpcyBhIGZvcm0gb2YgdGVzdGluZyB3aGVyZSB5b3UgdmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiBjb2RlIGJ5IGFzc2VydGluZyB0aGF0IGl0IGJlaGF2ZXMgY29ycmVjdGx5IHdpdGggdmFyaWFibGUgYW5kIHVuZXhwZWN0ZWQgaW5wdXQuIFRoZSByZXNwb25zZSBvZiBhIFJFU1QgQVBJIGlzIG1vc3Qgb2Z0ZW4gdmFyaWFibGUgYW5kIHVuZXhwZWN0ZWQuIFNvLCBpbiBtb3N0IGNhc2VzLCBmdXp6IHRlc3RpbmcgaXMgYSB1c2VmdWwgd2F5IHRvIHRlc3QgaW50ZWdyYXRpb25zIHdpdGggQVBJcy4KCiMjIFdoZW4gVG8gVXNlIFVubW9jawoKQmVsb3cgYXJlIHNvbWUgcXVlc3Rpb25zIHRvIGFzayB3aGVuIGRldGVybWluaW5nIGlmIFVubW9jayBpcyBhIGdvb2QgZml0IGZvciB5b3VyIGRldmVsb3BtZW50IHByb2Nlc3MuCgotIElzIG15IGNvZGUgYmFzZSBpbiBKYXZhU2NyaXB0IG9yIFR5cGVTY3JpcHQ/Ci0gRG9lcyBteSBjb2RlIGJhc2UgaGF2ZSB0ZXN0cyB3cml0dGVuIGluIEplc3QsIE1vY2hhLCBKYXNtaW5lLCBUYXAgb3IgQXZhPwotIERvIEkgbWFrZSBhIG5ldHdvcmsgY2FsbCBmcm9tIG15IGNvZGViYXNlIHRvIGEgUkVTVCBBUEk/CgpJZiB0aGUgYW5zd2VyIGlzIHllcyB0byBhbGwgb2YgdGhlc2UgcXVlc3Rpb25zLCBVbm1vY2sgY291bGQgaGVscCB5b3UgdGVzdCBjb2RlIHBhdGhzIGluIHlvdXIgY29kZSB0aGF0IG1ha2UgUkVTVCBBUEkgY2FsbHMgYW5kIHVzZSB0aGUgcmVzcG9uc2VzIGZyb20gdGhvc2UgQVBJLgoKIyMgVGhlIERvY3MKCklmIHlvdSBkb24ndCBsaWtlIHJlYWRpbmcgUkVBRE1FcywgY2hlY2sgb3V0IG91ciBbZG9jc10oaHR0cHM6Ly91bm1vY2suaW8vZG9jcy9pbnRyb2R1Y3Rpb24pIQoKIyMgVXNhZ2UKCkhlcmUgaXMgYSBtb2NrIGRlZmluZWQgdXNpbmcgdW5tb2NrLCBhIGZ1bmN0aW9uIHRvIGJlIHRlc3RlZCwgYW5kIGEgdGVzdCB3cml0dGVuIGluIGplc3QuIFRoZSBjb21tZW50ZWQgbnVtYmVycyBhcmUgZXhwbGFpbmVkIGluIHRoZSB0ZXh0IGJlbG93IHRoaXMgY29kZSBleGFtcGxlLgoKYGBganMKY29uc3QgZmV0Y2ggPSByZXF1aXJlKCJub2RlLWZldGNoIik7CmNvbnN0IHVubW9jayA9IHJlcXVpcmUoInVubW9jayIpOwpjb25zdCB7IHJ1bm5lciwgdHJhbnNmb3JtLCB1IH0gPSB1bm1vY2s7CmNvbnN0IHsgd2l0aENvZGVzIH0gPSB0cmFuc2Zvcm07Cgp1bm1vY2sKICAubW9jaygiaHR0cHM6Ly96b2RpYWMuY29tIiwgInpvZGlhYyIpCiAgLmdldCgiL2hvcm9zY29wZS97c2lnbn0iKSAvLyAxCiAgLnJlcGx5KDIwMCwgewogICAgaG9yb3Njb3BlOiB1LnN0cmluZygpLCAvLyAyCiAgICBhc2NlbmRhbnQ6IHUub3B0KHUuc3RyaW5nKCkpIC8vIDMKICB9KQogIC5yZXBseSg0MDQsIHsgbWVzc2FnZTogIk5vdCBhdXRob3JpemVkIiB9KTsgLy8gNAoKYXN5bmMgZnVuY3Rpb24gZ2V0SG9yb3Njb3BlKHNpZ24pIHsKICAvLyB1c2UgdW5tb2NrLmZldGNoLCByZXF1ZXN0LCBmZXRjaCwgYXhpb3Mgb3IgYW55IHNpbWlsYXIgbGlicmFyeQogIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZldGNoKCJodHRwczovL3pvZGlhYy5jb20vaG9yb3Njb3BlLyIgKyBzaWduKTsKICBjb25zdCBqc29uID0gYXdhaXQgcmVzdWx0Lmpzb24oKTsKICByZXR1cm4geyAuLi5qc29uLCBzZWVuOiBmYWxzZSB9Owp9CgpsZXQgem9kaWFjOwpiZWZvcmVBbGwoKCkgPT4gewogIHpvZGlhYyA9IHVubW9jay5kZWZhdWx0Lm9uKCkuc2VydmljZXMuem9kaWFjOwp9KTsKYWZ0ZXJBbGwoKCkgPT4gdW5tb2NrLmRlZmF1bHQub2ZmKCkpOwoKZGVzY3JpYmUoImdldEhvcm9zY29wZSIsICgpID0+IHsKICBpdCgKICAgICJhdWdtZW50cyB0aGUgQVBJIGNhbGwgd2l0aCBzZWVuPWZhbHNlIiwKICAgIHJ1bm5lcihhc3luYyAoKSA9PiB7IC8vIDUKICAgICAgem9kaWFjLnN0YXRlKHdpdGhDb2RlcygyMDApKTsgLy8gNgogICAgICBjb25zdCByZXMgPSBhd2FpdCBnZXRIb3Jvc2NvcGUoKTsKICAgICAgZXhwZWN0KHJlcykudG9NYXRjaE9iamVjdChKU09OLnBhcnNlKHpvZGlhYy5zcHkuZ2V0UmVzcG9uc2VCb2R5KCkpKTsgLy8gNwogICAgICBleHBlY3QocmVzLnNlZW4pLnRvQmUoZmFsc2UpOwogICAgfSksCiAgKTsKfSk7CmBgYAoKV2l0aCB1bm1vY2ssIHlvdSBjYW4gKDEpIG92ZXJyaWRlIGEgUkVTVCBlbmRwb2ludCB0byBwcm92aWRlICgyKSB2YXJpYWJsZSBhbmQgKDMpIG9wdGlvbmFsIHJlc3BvbnNlcyBpbiBhZGRpdGlvbiB0byAoNCkgZGlmZmVyZW50IHN0YXR1cyBjb2Rlcy4gVGhlbiwgb25lIHVzZXMgdGhlICg1KSBydW5uZXIgdG8gYXV0b21hdGljYWxseSBydW4gYSB0ZXN0IG11bHRpcGxlIHRpbWVzIHdpdGggc3VidGx5IGRpZmZlcmVudCByZXNwb25zZXMgZnJvbSB0aGUgQVBJLiBPbmUgY2FuIGFsc28gKDYpIGluaXRpYWxpemUgdGhlIEFQSSB0byBhIGdpdmVuIHN0YXRlIGFuZCAoNykgbWFrZSBhc3NlcnRpb25zIGFib3V0IGhvdyBhbiBBUEkgd2FzIHVzZWQuCgojIyMgU3BlY2lmeWluZyBob3N0bmFtZQoKVGhlIHJlcXVlc3QgaG9zdG5hbWUgc2hvdWxkIGJlIGEgc3RyaW5nLgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20nKQogIC5nZXQoJy9yZXNvdXJjZScpCiAgLnJlcGx5KDIwMCwgdS5pbnRlZ2VyKCkpCmBgYAoKVW5tb2NrIHdpbGwgdGhlbiByZWZlciB0byB0aGUgc2VydmljZSBhcyBgZXhhbXBsZWAuIFRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgYXMgYGZvb2AsIHdlIHdvdWxkIHdyaXRlLgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20nLCAnZm9vJykKICAuZ2V0KCcvcmVzb3VyY2UnKQogIC5yZXBseSgyMDAsIHUuc3RyaW5nKCkpCmBgYAoKVG8gbWF0Y2ggbXVsdGlwbGUgcHJvdG9jb2xzIG9yIFVSTHMsIHVzZSBgYXNzb2NpYXRlYC4KCmBgYGpzCnVubW9jay5kZWZhdWx0LmFzc29jaWF0ZSgnaHR0cHM6Ly93d3cyLmV4YW1wbGUuY29tJywgJ2ZvbycpCmBgYAoKIyMjIFNwZWNpZnlpbmcgdGhlIHBhdGgKClRoZSByZXF1ZXN0IHBhdGggc2hvdWxkIGJlIGEgc3RyaW5nLCBhbmQgeW91IGNhbiB1c2UgYW55IFtIVFRQIHZlcmJdKCNodHRwLXZlcmJzKS4gV2lsZC1jYXJkcyBpbiB0aGUgc3RyaW5nIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBjdXJseSBicmFjZXMuCgpgYGBqcwp1bm1vY2subW9jaygnaHR0cDovL3d3dy5leGFtcGxlLmNvbScpCiAgLmdldCgnL3Jlc291cmNlL3tpZH0nKQogIC5yZXBseSgyMDAsIHUuc3RyaW5nKCkpCmBgYAoKQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gYXJyYXkgb2YgcGF0aCBzZWdtZW50cywgd2hlcmUgZWFjaCBzZWdtZW50IGlzIGVpdGhlciBhIHN0cmluZywgYSBzdHJpbmcgaW4gY3VybHktYnJhY2VzIGZvciBhbiBvcGVuIHBhcmFtZXRlciwgb3IgYSBrZXkvdmFsdWUgcGFpciBhc3NvY2lhdGluZyBhIG5hbWUgb2YgYSBwYXRoIHBhcmFtZXRlciB0byBhIHJlZ2V4IG1hdGNoaW5nIGl0LgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20nKQogIC5nZXQoWyJ1c2VycyIsIC9bMC05XSsvLCAic3RhdHVzIl0pIC8vICIvdXNlcnMve2lkfS9zdGF0dXMiCiAgLnJlcGx5KDIwMCwgdS5zdHJpbmcoKSkKYGBgCgojIyMgU3BlY2lmeWluZyByZXF1ZXN0IGJvZHkKCllvdSBjYW4gc3BlY2lmeSB0aGUgcmVxdWVzdCBib2R5IHRvIGJlIG1hdGNoZWQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgYGdldGAsIGBwb3N0YCwgYHB1dGAgb3IgYGRlbGV0ZWAgc3BlY2lmaWNhdGlvbnMuIFRoZSBhcmd1bWVudCBjYW4gYmUgYW55IHZhbGlkIEpTT04sIFtganNvbi1zY2hlbWEtcG9ldGBdKGh0dHBzOi8vZ2l0aHViLmNvbS91bm1vY2svanNvbi1zY2hlbWEtcG9ldCkgdXNpbmcgdGhlIGB1YCBzeW50YXgoYHUuaW50ZWdlcigpYCwgYHUuc3RyaW5nKClgKSBvciBhbnkgY29tYmluYXRpb24gdGhlcmVvZi4KCkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIHBvc3QgcmVxdWVzdCB0aGF0IHdpbGwgb25seSB2YWxpZGF0ZSBpZiBpdCBjb250YWlucyBhIHRva2VuLgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20nKQogIC5wb3N0KCcvbG9naW4nLCB1LnR5cGUoeyB0b2tlbjogdS5zdHJpbmcoKX0sIHtleHBpcmVzOiB1LmludGVnZXIoKX0pKQogIC5yZXBseSgyMDAsIHsgaWQ6IHUuc3RyaW5nKCkgfSkKYGBgCgo+IFVubW9jayBkb2VzIG5vdCBzdXBwb3J0IGJvZHkgZW5jb2RpbmdzIG90aGVyIHRoYW4gImFwcGxpY2F0aW9uL2pzb24iIGF0IHRoaXMgcG9pbnQuCgojIyMgU3BlY2lmeWluZyByZXF1ZXN0IHF1ZXJ5IHN0cmluZwoKVW5tb2NrIGF1dG9tYXRpY2FsbHkgaWdub3JlcyBxdWVyeSBzdHJpbmdzLiBIb3dldmVyLCBpdCB1bmRlcnN0YW5kcyBxdWVyeSBzdHJpbmdzIGlmIHlvdSB3b3VsZCBsaWtlIHRvIG1hdGNoIGFnYWluc3QgdGhlbS4KCj4gV2hlbiBxdWVyeSBzdHJpbmdzIGFyZSBpbmNsdWRlZCBpbiBVbm1vY2ssIHRoZXkgd2lsbCBhY3QgYXMgaWYgdGhleSBhcmUgcmVxdWlyZWQuIE1vc3QgQVBJcyBkbyBub3QgaGF2ZSByZXF1aXJlZCBxdWVyeSBzdHJpbmdzLCBzbyBtYWtlIHN1cmUgdG8gZG91YmxlLWNoZWNrIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBiZWZvcmUgaW5kaWNhdGluZyBhIHJlcXVpcmVkIHF1ZXJ5IHN0cmluZy4KClRoZXNlIHBhcmFtZXRlcnMgY2FuIGJlIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlIHBhdGg6CgpgYGBqcwp1bm1vY2subW9jaygnaHR0cDovL2V4YW1wbGUuY29tJykKICAuZ2V0KCcvdXNlcnM/Zm9vPWJhcicpCiAgLnJlcGx5KDIwMCkKYGBgCgpJbnN0ZWFkIG9mIHBsYWNpbmcgdGhlIGVudGlyZSBVUkwsIHlvdSBjYW4gc3BlY2lmeSB0aGUgcXVlcnkgcGFydCBhcyBhbiBvYmplY3Q6CgpgYGBqcwp1bm1vY2subW9jaygnaHR0cDovL2V4YW1wbGUuY29tJykKICAuZ2V0KCcvdXNlcnMnKQogIC5xdWVyeSh7IG5hbWU6dS5zdHJpbmcoKSwgc3VybmFtZTogdS5zdHJpbmcoKSB9KQogIC5yZXBseSgyMDAsIHsgcmVzdWx0czogdS5hcnJheSh7aWQ6IHUuaW50ZWdlcigpIH0pIH0pCmBgYAoKIyMjIFNwZWNpZnlpbmcgUmVxdWVzdCBIZWFkZXJzCgpZb3UgY2FuIHNwZWNpZnkgdGhlIHJlcXVlc3QgaGVhZGVycyBsaWtlIHRoaXM6CgpgYGBqcwp1bm1vY2subW9jaygnaHR0cDovL3d3dy5leGFtcGxlLmNvbScsIHsKICByZXFoZWFkZXJzOiB7CiAgICBhdXRob3JpemF0aW9uOiAnQmFzaWMgQXV0aCcsCiAgfSwKfSkKICAuZ2V0KCcvJykKICAucmVwbHkoMjAwKQpgYGAKCk9yIHlvdSBjYW4gdXNlIGEgcmVndWxhciBleHByZXNzaW9uIHRvIGNoZWNrIHRoZSBoZWFkZXIgdmFsdWVzLgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20nLCB7CiAgcmVxaGVhZGVyczogewogICAgJ1gtTXktQXdlc29tZS1IZWFkZXInOiAvQXdlc29tZS9pLAogIH0sCn0pCiAgLmdldCgnLycpCiAgLnJlcGx5KDIwMCkKYGBgCgpIZWFkZXJzIGluIHVubW9jayBhcmUgYWx3YXlzIGEgcGFydGlhbCBtYXRjaCwgbWVhbmluZyB0aGF0IGFkZGl0aW9uYWwgaGVhZGVycyBhcmUgaWdub3JlZC4gVGhpcyBtZWFucyB0aGF0IHlvdSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IG1hdGNoaW5nIGFnYWluc3QgY29tbW9uIGhlYWRlcnMgbGlrZSBgQ29udGVudC1UeXBlYCBhbmQgYEhvc3RgLgoKIyMjIFNwZWNpZnlpbmcgcmVwbGllcwoKWW91IGNhbiBzcGVjaWZ5IHRoZSByZXR1cm4gc3RhdHVzIGNvZGUgZm9yIGEgcGF0aCBvbiB0aGUgZmlyc3QgYXJndW1lbnQgb2YgcmVwbHkgbGlrZSB0aGlzOgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly9teWFwcC5pcmlzY291Y2guY29tJykKICAuZ2V0KCcvdXNlcnMvMScpCiAgLnJlcGx5KDQwNCkKYGBgCgpZb3UgY2FuIGFsc28gc3BlY2lmeSB0aGUgcmVwbHkgYm9keSBhcyB2YWxpZCBKU09OLCBganNvbi1zY2hlbWEtcG9ldGAsIG9yIGFueSBjb21iaW5hdGlvbiB0aGVyZW9mLgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly93d3cuZ29vZ2xlLmNvbScpCiAgLmdldCgnLycpCiAgLnJlcGx5KDIwMCwgdS5zdHJpbmdFbnVtKFsnSGVsbG8gZnJvbSBHb29nbGUhJywgJ0RvIG5vIGV2aWwnXSkpCmBgYAoKSWYgeW91IHdvdWxkIGxpa2UgdG8gdHJhbnNmb3JtIGFueSBwYXJ0IG9mIGEgY29uc3RhbnQgcmVwbHkgKGllIGEgZml4dHVyZSByZWNvcmRlZCBmcm9tIHJlYWwgQVBJIHRyYWZmaWMpIGludG8gYSB2YXJpYWJsZSB2ZXJzaW9uIG9mIGl0c2VsZiwgdXNlIGB1LmZ1enpgLiBUaGlzIGNvbW1hbmQgaW5mZXJzIHRoZSB0eXBlIG9mIGl0cyBpbnB1dCBhbmQgcHJvZHVjZXMgb3V0cHV0IGZvbGxvd2luZyB0aGUgc2FtZSBzY2hlbWEuCgpgYGBqcwp1bm1vY2subW9jaygnaHR0cDovL3d3dy5mb28uY29tJykKICAuZ2V0KCcvJykKICAvLyBwcm9kdWNlcyB7IGZpcnN0TmFtZTogImEgcmFuZG9tIHN0cmluZyIsIGxhc3ROYW1lOiAiYW5vdGhlciByYW5kb20gc3RyaW5nIiB9CiAgLnJlcGx5KDIwMCwgdS5mdXp6KHsgZmlyc3ROYW1lOiAiQm9iIiwgbGFzdE5hbWU6ICJTbWl0aCIgfSkpCmBgYAoKIyMjIFNwZWNpZnlpbmcgcmVwbHkgaGVhZGVycwoKWW91IGNhbiBzcGVjaWZ5IHRoZSByZXBseSBoZWFkZXJzIGxpa2UgdGhpczoKCmBgYGpzCnVubW9jay5tb2NrKCdodHRwczovL2FwaS5naXRodWIuY29tJykKICAuZ2V0KCcvcmVwb3MvYXRvbS9hdG9tL2xpY2Vuc2UnKQogIC5yZXBseSgyMDAsIHsgbGljZW5zZTogJ01JVCcgfSwgeyAnWC1SYXRlTGltaXQtUmVtYWluaW5nJzogdS5pbnRlZ2VyKCkgfSkKYGBgCgojIyMgQ2hhaW5pbmcKCllvdSBjYW4gY2hhaW4gYmVoYXZpb3IgbGlrZSB0aGlzOgoKYGBganMKdW5tb2NrLm1vY2soJ2h0dHA6Ly9teWFwcC5pcmlzY291Y2guY29tJykKICAuZ2V0KCcvdXNlcnMvMScpCiAgLnJlcGx5KDQwNCkKICAucG9zdCgnL3VzZXJzJywgewogICAgdXNlcm5hbWU6IHUuc3RyaW5nKCksCiAgICBlbWFpbDogdS5zdHJpbmcoKSwKICB9KQogIC5yZXBseSgyMDEsIHsKICAgIG9rOiB1LmJvb2xlYW4oKSwKICAgIGlkOiB1LnN0cmluZygpLAogICAgcmV2OiB1LnN0cmluZygpLAogIH0pCiAgLmdldCgnL3VzZXJzLzEyM0FCQycpCiAgLnJlcGx5KDIwMCwgewogICAgX2lkOiB1LnN0cmluZygpLAogICAgX3JldjogdS5zdHJpbmcoKSwKICAgIHVzZXI6IHUuc3RyaW5nKCksCiAgICBuYW1lOiB1LnN0cmluZygpCiAgfSkKYGBgCgojIyMgSWdub3JhYmxlIEFQSSBjYWxscwoKRm9yIGlnbm9yYWJsZSBBUEkgY2FsbHMgd2hlcmUgeW91IGFyZSBwYXNzaW5nIHRocm91Z2ggaW5mb3JtYXRpb24gYnV0IGRvbid0IGNhcmUgYWJvdXQgYSByZXNwb25zZSwgeW91IGNhbiBpbnN0cnVjdCB1bm1vY2sgdG8gc2VydmUgcmFuZG9tIGAyMDBgIHJlc3BvbnNlcyB0byB0aG9zZSByZXF1ZXN0cyB1c2luZyBgdGxkcmAuCgpgYGBqcwp1bm1vY2sKICAgLm1vY2soImh0dHBzOi8vbXktYW5hbHl0aWNzLWFwaS52ZW5kb3IuY29tKQogIC50bGRyKCk7CmBgYAoKIyMgRXhwZWN0YXRpb25zCgpVbm1vY2sgdXNlcyBbYHNpbm9uYF0oaHR0cHM6Ly9zaW5vbmpzLm9yZykgc3BpZXMgdG8gaGVscCB5b3UgY29tcG9zZSAoZ3JlYXQpIGV4cGVjdGF0aW9ucy4KCj4gSW4gZ2VuZXJhbCwgdHJ5IHRvIHdyaXRlIGV4cGVjdGF0aW9ucyB1c2luZyBzcGllcyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZXMuIEluc3RlYWQgb2YgYGV4cGVjdChyZXMpLnRvRXF1YWwoe2ZvbzogImJhciIsIGJhejogdHJ1ZSB9KWAsIGZhdm9yIGBleHBlY3QocmVzKS50b0VxdWFsKHsgLi4uc3B5LmdldFJlcXVlc3RCb2R5KCksIGJhejogdHJ1ZSB9KWAKCkFzc3VtaW5nIHlvdSBoYXZlIGRlZmluZWQgYSBzZXJ2aWNlIHVzaW5nIHVubW9jaywgeW91IGNhbiB1c2Ugc3BpZXMgZm9sbG93aW5nIHRoZSBgPHZlcmI+PFJlcXVlc3R8UmVzcG9uc2U+PFRoaW5nPmAgY29udmVudGlvbi4gRm9yIGV4YW1wbGUsIGBnZXRSZXNwb25zZUJvZHlgIG9yIGBkZWxldGVSZXF1ZXN0UGF0aGAuIE5vbnNlbnNpY2FsIHRoaW5ncyBsaWtlIGBnZXRSZXF1c2V0Qm9keWAgYXJlIG5vdCBkZWZpbmVkLgoKYGBganMKdGVzdCgiYW5hbHl0aWNzIEFQSSB3YXMgY2FsbGVkIiwgYXN5bmMgKCkgPT4gewogIGF3YWl0IG15RnVuY3Rpb24oKQogIGV4cGVjdChhbmFseXRpY3NTZXJ2aWNlLnNweS5wb3N0UmVxdWVzdEJvZHkoKSkKICAgIC50b01hdGNoT2JqZWN0KHsgZXZlbnQ6ICJWSVNJVEVEIiB9KQp9KQpgYGAKClRoZSBmb2xsb3dpbmcgZ2V0dGVyIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBvbiB0aGUgc3B5IG9iamVjdC4KCi0gYGdldFJlcXVlc3RQYXRobmFtZWAKLSBgZ2V0UmVxdWVzdFBhdGhgCi0gYGdldFJlcXVlc3RIZWFkZXJzYAotIGBnZXRSZXF1ZXN0UXVlcnlgCi0gYGdldFJlcXVlc3RQcm90b2NvbGAKLSBgZ2V0UmVzcG9uc2VCb2R5YAotIGBnZXRSZXNwb25zZUNvZGVgCi0gYGdldFJlc3BvbnNlSGVhZGVyc2AKLSBgcG9zdFJlcXVlc3RCb2R5YAotIGBwb3N0UmVxdWVzdFBhdGhuYW1lYAotIGBwb3N0UmVxdWVzdFBhdGhgCi0gYHBvc3RSZXF1ZXN0SGVhZGVyc2AKLSBgcG9zdFJlcXVlc3RRdWVyeWAKLSBgcG9zdFJlcXVlc3RQcm90b2NvbGAKLSBgcG9zdFJlc3BvbnNlQm9keWAKLSBgcG9zdFJlc3BvbnNlQ29kZWAKLSBgcG9zdFJlc3BvbnNlSGVhZGVyc2AKLSBgcHV0UmVxdWVzdEJvZHlgCi0gYHB1dFJlcXVlc3RQYXRobmFtZWAKLSBgcHV0UmVxdWVzdFBhdGhgCi0gYHB1dFJlcXVlc3RIZWFkZXJzYAotIGBwdXRSZXF1ZXN0UXVlcnlgCi0gYHB1dFJlcXVlc3RQcm90b2NvbGAKLSBgcHV0UmVzcG9uc2VCb2R5YAotIGBwdXRSZXNwb25zZUNvZGVgCi0gYHB1dFJlc3BvbnNlSGVhZGVyc2AKLSBgZGVsZXRlUmVxdWVzdFBhdGhuYW1lYAotIGBkZWxldGVSZXF1ZXN0UGF0aGAKLSBgZGVsZXRlUmVxdWVzdEhlYWRlcnNgCi0gYGRlbGV0ZVJlcXVlc3RRdWVyeWAKLSBgZGVsZXRlUmVxdWVzdFByb3RvY29sYAotIGBkZWxldGVSZXNwb25zZUJvZHlgCi0gYGRlbGV0ZVJlc3BvbnNlQ29kZWAKLSBgZGVsZXRlUmVzcG9uc2VIZWFkZXJzYAoKSW4gYWRkaXRpb24sIHNwaWVzIGFyZSBmdWxsLWZsZWRnZWQgc2lub24gc3BpZXMuIE1vcmUgYWJvdXQgdGhlaXIgdXNhZ2UgaW4gVW5tb2NrIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly93d3cudW5tb2NrLmlvL2RvY3MvZXhwZWN0YXRpb25zKSwgYW5kIG1vcmUgaW5mb3JtYXRpb24gb24gc2lub24gY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL3Npbm9uanMub3JnLykuCgojIyBJbml0aWFsaXppbmcgTW9ja3MKClVubW9jayBzdXBwb3J0cyB0aGUgaW5pdGlhbGl6YXRpb24gb2Ygc2VydmljZXMgdG8gYXJiaXRyYXJ5IHN0YXRlcy4gVGhpcyBpcyBoZWxwZnVsLCBmb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gdGVzdCBob3cgeW91ciBjb2RlIGJlaGF2ZXMgd2hlbiBhIGdpdmVuIHNlcnZpY2UgcmV0dXJucyAqZXhhY3RseSogZml2ZSBpdGVtcyBvciB3aGVuIGEgcGFydGljaXVsYXIgZmllbGQgaW4gYW4gb2JqZWN0IGlzIG1pc3Npbmcgb3IgcHJlc2VudC4KClRvIGRvIHRoaXMsIHNldCB0aGUgYHN0YXRlYCBwcm9wZXJ0eSBvZiBhIHNlcnZpY2UuIFRoZSBzdGF0ZSBwcm9wZXJ0eSBpcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSByZXF1ZXN0IGFuZCBhbiBPcGVuQVBJIHNjaGVtYSBhcyBpbnB1dCBhbmQgcmV0dXJucyBhbiBPcGVuQVBJIHNjaGVtYSBhbmQgb3V0cHV0LiAgTWFueSB1dGlsaXR5IGZ1bmN0aW9ucyBoYXZlIGJlZW4gY3JlYXRlZCBmb3IgdGhlIG1vc3QgY29tbW9uIHN0YXRlIG1hbmlwdWxhdGlvbnMuIEZvciBleGFtcGxlLCB0byB0ZXN0IHRoZSBvdXRjb21lIHdpdGggb25seSBjZXJ0YWluIGNvZGVzLCB1c2UgYHdpdGhDb2Rlc2AuCgpgYGBqcwpjb25zdCB1bm1vY2sgPSByZXF1aXJlKCd1bm1vY2snKTsKY29uc3Qgd2l0aENvZGVzID0gdW5tb2NrLnRyYW5zZm9ybS53aXRoQ29kZXM7CmNvbnN0IGdpdGh1YiA9IHVubW9jay5kZWZhdWx0Lm9uKCkuc2VydmljZXMuZ2l0aHViOwpnaXRodWIuc3RhdGUod2l0aENvZGVzKFsyMDAsIDIwMSwgNDA0XSkpOwpgYGAKCkJlY2F1c2UgYHdpdGhDb2Rlc2AgcmV0dXJucyBhIGZ1bmN0aW9uLCB0aGUgc2FtZSB0aGluZyBjb3VsZCBoYXZlIGJlZW4gd3JpdHRlbi4KCmBgYGpzCmNvbnN0IHVubW9jayA9IHJlcXVpcmUoJ3VubW9jaycpOwpjb25zdCB3aXRoQ29kZXMgPSB1bm1vY2sudHJhbnNmb3JtLndpdGhDb2RlczsKY29uc3QgZ2l0aHViID0gdW5tb2NrLmRlZmF1bHQub24oKS5zZXJ2aWNlcy5naXRodWI7CmdpdGh1Yi5zdGF0ZSgocmVxLCBzY2hlbWEpID0+IHdpdGhDb2RlcyhbMjAwLCAyMDEsIDQwNF0pKHJlcSwgc2NoZW1hKSk7CmBgYAoKVGhpcyBpcyB1c2VmdWwsIGZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byB0ZXN0IGEgY2VydGFpbiBjb2RlIG9ubHkgaWYgYSBnaXZlbiBoZWFkZXIgaXMgcHJlc2VudC4KCmBgYGpzCmNvbnN0IHVubW9jayA9IHJlcXVpcmUoJ3VubW9jaycpOwpjb25zdCB3aXRoQ29kZXMgPSB1bm1vY2sudHJhbnNmb3JtLndpdGhDb2RlczsKY29uc3QgZ2l0aHViID0gdW5tb2NrLmRlZmF1bHQub24oKS5zZXJ2aWNlcy5naXRodWI7CmdpdGh1Yi5zdGF0ZSgocmVxLCBzY2hlbWEpID0+CiAgd2l0aENvZGVzKFsyMDAsIC4uLihyZXEuaGVhZGVycy5NeUhlYWRlciA/IFs0MDRdIDogW10pXSkocmVxLCBzY2hlbWEpKTsKYGBgCgpUaGUgdW5tb2NrIFtkb2N1bWVudGF0aW9uXShodHRwczovL3d3dy51bm1vY2suaW8vZG9jcy9zZXR0aW5nLXN0YXRlKSBjb250YWlucyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGluaXRpYWxpemluZyB0aGUgc3RhdGUuCgojIyBGYWtlciBBUEkKCmBVbm1vY2tGYWtlcmAgY2xhc3MgcHJvdmlkZXMgYSBsb3dlci1sZXZlbCBBUEkgZm9yIHdvcmtpbmcgd2l0aCBtb2Nrcy4gWW91IGNhbiBjcmVhdGUgYSBuZXcgYFVubW9ja0Zha2VyYCB2aWEgYHVubW9jay5mYWtlcigpYDoKCmBgYHRzCmNvbnN0IHVubW9jaywgeyBTZXJ2aWNlLCBJU2VyaWFsaXplZFJlcXVlc3R9ID0gcmVxdWlyZSgidW5tb2NrIik7Ci8vIGltcG9ydCB1bm1vY2sgZnJvbSAidW5tb2NrIjsgIC8vIEVTNgoKY29uc3QgZmFrZXIgPSB1bm1vY2suZmFrZXIoKTsKYGBgCgpUbyB1c2UgdGhlIGZha2VyIGZvciBtb2NraW5nLCB5b3UgbmVlZCB0byBhZGQgc2VydmljZXMuIFRoZSBmaXJzdCBvcHRpb24gaXMgdG8gdXNlIHRoZSBgbW9ja2AgbWV0aG9kOgoKYGBgdHMKZmFrZXIKICAubW9jaygiaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8iLCAicGV0c3RvcmUiKQogIC5nZXQoIi92MS9wZXRzIikKICAucmVwbHkoMjAwLCB7IGZvbzogdS5zdHJpbmcoKSB9KTsKYGBgCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNyZWF0ZSBhIHNlcnZpY2UgZnJvbSBPcGVuQVBJIHNwZWNpZmljYXRpb24gd2l0aCBgU2VydmljZS5mcm9tT3BlbkFQSWA6CgpgYGB0cwpjb25zdCB7IFNlcnZpY2UgfSA9IHJlcXVpcmUoInVubW9jayIpOwoKY29uc3Qgc2NoZW1hOiBPcGVuQVBJT2JqZWN0ID0gLi4uOyAvLyBMb2FkIE9wZW5BUElPYmplY3QKY29uc3QgcGV0c3RvcmVTZXJ2aWNlID0gU2VydmljZS5mcm9tT3BlbkFQSSh7IHNjaGVtYSwgbmFtZTogInBldHN0b3JlIiB9KQoKLy8gQWRkIHNlcnZpY2UgdG8gYGZha2VyYApmYWtlci5hZGQocGV0c3RvcmVTZXJ2aWNlKTsKYGBgCgpZb3UgY2FuIHRoZW4gYWxzbyBtb2RpZnkgdGhlIHN0YXRlIG9mIHRoZSBwZXRzdG9yZSBzZXJ2aWNlIHZpYSBgc3RhdGVgIHByb3BlcnR5OgoKYGBgdHMKY29uc3QgeyB0cmFuc2Zvcm0gfSA9IHJlcXVpcmUoInVubW9jayIpOwovLyBTZXJ2aWNlIHNob3VsZCBhbHdheXMgcmV0dXJuIGNvZGUgMjAwCnBldHN0b3JlLnN0YXRlKHRyYW5zZm9ybS53aXRoQ29kZXMoMjAwKSk7CmBgYAoKT25jZSB5b3UgaGF2ZSBhZGRlZCBhIHNlcnZpY2UsIHlvdSBjYW4gdXNlIGBmYWtlci5nZW5lcmF0ZWAgbWV0aG9kIHRvIGNyZWF0ZSBhIG1vY2sgZm9yIGFueSBgUmVxdWVzdGAgb2JqZWN0OgoKYGBgdHMKY29uc3QgeyBVbm1vY2tSZXF1ZXN0LCBVbm1vY2tSZXNwb25zZSB9ID0gcmVxdWlyZSgidW5tb2NrIik7Cgpjb25zdCByZXE6IFVubW9ja1JlcXVlc3QgPSB7CiAgaG9zdDogInBldHN0b3JlLnN3YWdnZXIuaW8iLAogIHByb3RvY29sOiAiaHR0cCIsCiAgbWV0aG9kOiAiZ2V0IiwKICBwYXRoOiAiL3YxL3BldHMiLAogIHBhdGhuYW1lOiAiL3YxL3BldHMiLAogIGhlYWRlcnM6IHt9LAogIHF1ZXJ5OiB7fSwKfQoKY29uc3QgcmVzOiBVbm1vY2tSZXNwb25zZSA9IGZha2VyLmdlbmVyYXRlKHJlcSk7CgovLyBBY2Nlc3MgcmVzLnN0YXR1c0NvZGUsIHJlcy5oZWFkZXJzLCByZXMuYm9keSwgZXRjLgpleHBlY3QocmVzLnN0YXR1c0NvZGUpLnRvQmUoMjAwKTsKYGBgCgojIyBSdW5uZXIKCldpdGggdGhlIFtVbm1vY2sgYHJ1bm5lcmBdKHBhY2thZ2VzL3VubW9jay1ydW5uZXIpLCB5b3UgY2FuIHJ1biBhbnkgdGVzdCBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVudCBwb3RlbnRpYWwgb3V0Y29tZXMgZnJvbSB0aGUgQVBJLiBBbGwgb2YgeW91ciB1bm1vY2sgdGVzdHMgc2hvdWxkIHVzZSB0aGUgYHJ1bm5lcmAgdW5sZXNzIHlvdSBhcmUgYWJzb2x1dGVseSBjZXJ0YWluIHRoYXQgdGhlIEFQSSByZXNwb25zZSB3aWxsIGJlIHRoZSBzYW1lIGV2ZXJ5IHRpbWUuCgojIyMgRGVmYXVsdAoKQnkgZGVmYXVsdCwgdGhlIGBydW5uZXJgIGlzIHNldCB0byBydW4geW91ciB0ZXN0IDIwIHRpbWVzLiBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhpcyB2YWx1ZSwgcGxlYXNlIHJlZmVyIHRvIG91ciBkb2NzIG9uIFtjaGFuZ2luZyB0aGUgYHJ1bm5lcmAgZGVmYXVsdF0oaHR0cHM6Ly9naXRodWIuY29tL01lZXNoa2FuL3VubW9jay1qcy9ibG9iL3VubW9jay1ydW5uZXItZG9jcy9wYWNrYWdlcy91bm1vY2stcnVubmVyL1JFQURNRS5tZCNjaGFuZ2luZy10aGUtZGVmYXVsdCkuCgojIyMgSmVzdAoKQSBKZXN0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBgcnVubmVyYCBpcyBhdmFpbGFibGUgdGhyb3VnaCBhIHNlcGFyYXRlIFtgdW5tb2NrLWplc3QtcnVubmVyYF0oaHR0cHM6Ly9naXRodWIuY29tL21lZXNoa2FuL3VubW9jay1qZXN0LXJ1bm5lcikgcGFja2FnZS4gV2hpbGUgdGhlIHN0YW5kYXJkIGB1bm1vY2stcnVubmVyYCBpcyBhdmFpbGFibGUgdmlhIE5QTSwgeW91J2xsIHdhbnQgdG8gdXNlIHRoZSBgdW5tb2NrLWplc3QtcnVubmVyYCB3aGVuIGV4ZWN1dGluZyB5b3VyIHRlc3RzIHRvIGVuc3VyZSBwcm9wZXIgZXJyb3IgaGFuZGxpbmcuIAoKVGhlIGB1bm1vY2stamVzdC1ydW5uZXJgIGNhbiBiZSBpbnN0YWxsZWQgdmlhIE5QTSBvciBZYXJuOgoKYGBgCm5wbSBpbnN0YWxsIC1EIHVubW9jay1qZXN0LXJ1bm5lcgp5YXJuIGFkZCB1bm1vY2stamVzdC1ydW5uZXIKYGBgCgpPbmNlIGluc3RhbGxlZCwgdGhlIGBydW5uZXJgIGNhbiBiZSBpbXBvcnRlZCBhcyBhIGRlZmF1bHQgYW5kIHVzZWQgYXMgYSB3cmFwcGVyIGZvciB5b3VyIHRlc3RzOgoKYGBganMKY29uc3QgcnVubmVyID0gcmVxdWlyZSgidW5tb2NrLWplc3QtcnVubmVyIikuZGVmYXVsdDsKCnRlc3QoIm15IEFQSSBhbHdheXMgd29ya3MgYXMgZXhwZWN0ZWQiLCBydW5uZXIoYXN5bmMgKCkgPT4gewogIGNvbnN0IHJlcyA9IGF3YWl0IG15QXBpRnVuY3Rpb24oKTsKICAvLyBzb21lIGV4cGVjdGF0aW9ucwp9KSk7CmBgYAoKIyMjIE90aGVyIGNvbmZpZ3VyYXRpb25zCgpBcyBvZiBub3csIEplc3QgaXMgdGhlIG9ubHkgcGFja2FnZSB3ZSBoYXZlIGF2YWlsYWJsZS4gCgpIb3dldmVyLCB3ZSdyZSBjdXJyZW50bHkgYnVpbGRpbmcgb3V0IHN1cHBvcnQgZm9yIFtNb2NoYV0oaHR0cHM6Ly9naXRodWIuY29tL01lZXNoa2FuL3VubW9jay1qcy9pc3N1ZXMvMjk5KSBhbmQgW1FVbml0XShodHRwczovL2dpdGh1Yi5jb20vTWVlc2hrYW4vdW5tb2NrLWpzL2lzc3Vlcy8zMDApLiBZb3UgY2FuIGZvbGxvdyB0aGUgcHJvZ3Jlc3Mgb2YgdGhvc2UgaW1wbGVtZW50YXRpb25zIGluIHRoZSBjb3JyZXNwb25kaW5nIGlzc3Vlcy4KCiMjIE9wZW5BUEkKClVubW9jayBzdXBwb3J0cyB0aGUgcmVhZGluZyBvZiBPcGVuQVBJIHNwZWNpZmljYXRpb25zIG91dCBvZiB0aGUgYm94LiBQbGFjZSB5b3VyIHNwZWNpZmljYXRpb24gaW4gYSBmb2xkZXIgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGNhbGxlZCBgX191bm1vY2tfXy88bXlzcGVjbmFtZT5gLCB3aGVyZSBgPG15c3BlY25hbWU+YCBpcyB0aGUgbmFtZSBvZiB0aGUgc3BlYyBvbiB0aGUgYHVubW9jay5vbigpLnNlcnZpY2VzYCBvYmplY3QuICBTZXZlcmFsIGV4YW1wbGVzIG9mIHRoaXMgZXhpc3Qgb24gdGhlIGludGVybmV0LCBtb3N0IG5vdGFibHkgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS91bm1vY2svdW5tb2NrLWV4YW1wbGVzL3RyZWUvbWFzdGVyL3VzaW5nLXNlcnZpY2UtcmVwb3NpdG9yeSkuCgojIyBUdXRvcmlhbHMKCi0gW1VubW9jayB0cyBrb2Fuc10oaHR0cHM6Ly9naXRodWIuY29tL21lZXNoa2FuL3VubW9jay10cy1rb2FucykKLSBbVW5tb2NrIGpzIGthdGFjb2RhXShodHRwczovL3d3dy5rYXRhY29kYS5jb20vdW5tb2NrL3NjZW5hcmlvcy9pbnRyb2R1Y3Rpb24pCgojIyBDb250cmlidXRpbmcKClRoYW5rcyBmb3Igd2FudGluZyB0byBjb250cmlidXRlISBUYWtlIGEgbG9vayBhdCBvdXIgW0NvbnRyaWJ1dGluZyBHdWlkZV0oQ09OVFJJQlVUSU5HLm1kKSBmb3Igbm90ZXMgb24gb3VyIGNvbW1pdCBtZXNzYWdlIGNvbnZlbnRpb25zIGFuZCBob3cgdG8gcnVuIHRlc3RzLgoKUGxlYXNlIG5vdGUgdGhhdCB0aGlzIHByb2plY3QgaXMgZ292ZXJuZWQgYnkgdGhlIFtNZWVzaGthbiBDb21tdW5pdHkgQ29kZSBvZiBDb25kdWN0XShodHRwczovL2dpdGh1Yi5jb20vbWVlc2hrYW4vY29kZS1vZi1jb25kdWN0KS4gQnkgcGFydGljaXBhdGluZyBpbiB0aGlzIHByb2plY3QsIHlvdSBhZ3JlZSB0byBhYmlkZSBieSBpdHMgdGVybXMuCgojIyBEZXZlbG9wbWVudAoKLSBTZWUgW3B1Ymxpc2gubWRdKC4vcHVibGlzaC5tZCkgZm9yIGluc3RydWN0aW9ucyBob3cgdG8gbWFrZSBhIG5ldyByZWxlYXNlCgojIyBMaWNlbnNlCgpbTUlUXShMSUNFTlNFKQoKQ29weXJpZ2h0IChjKSAyMDE44oCTMjAxOSBbTWVlc2hrYW5dKGh0dHA6Ly9tZWVzaGthbi5jb20pIGFuZCBvdGhlciBbY29udHJpYnV0b3JzXShodHRwczovL2dpdGh1Yi5jb20vdW5tb2NrL3VubW9jay1qcy9ncmFwaHMvY29udHJpYnV0b3JzKS4K readmeEtag: '"b12af4fce603397889647bea7d9ab4fe5823e80f"' readmeLastModified: Mon, 23 Nov 2020 10:05:08 GMT repositoryId: 158103154 description: Fuzz test your REST API calls created: '2018-11-18T16:24:30Z' updated: '2023-10-19T15:30:47Z' language: TypeScript archived: true stars: 93 watchers: 8 forks: 8 owner: meeshkan logo: https://avatars.githubusercontent.com/u/32298527?v=4 repoEtag: '"d5978b2c67eefe8a3891b6e66811e723f5c5bf522cb8f7e85449f76eccbe6bb1"' repoLastModified: Thu, 19 Oct 2023 15:30:47 GMT foundInMaster: true id: e200bd53331c006b83cf719eb34ec292 oldLocations: - https://github.com/unmock/unmock-js - source: https://openapi.tools/ name: OpenAPI Enforcer Middleware category: - Server - Parsers language: Node.js link: https://www.npmjs.com/package/openapi-enforcer-middleware repository: https://github.com/gi60s/openapi-enforcer-middleware source_description: >- An express middleware that makes it easy to write web services that follow an OpenAPI specification by leveraging the tools provided in the openapi-enforcer package. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuIEFQSSBFbmZvcmNlciBNaWRkbGV3YXJlCgpBbiBleHByZXNzIG1pZGRsZXdhcmUgdGhhdCBtYWtlcyBpdCBlYXN5IHRvIHdyaXRlIHdlYiBzZXJ2aWNlcyB0aGF0IGZvbGxvdyBhbiBPcGVuIEFQSSBzcGVjaWZpY2F0aW9uIGJ5IGxldmVyYWdpbmcgdGhlIHRvb2xzIHByb3ZpZGVkIGluIHRoZSBbb3BlbmFwaS1lbmZvcmNlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvb3BlbmFwaS1lbmZvcmNlcikgcGFja2FnZS4KCiMjIEZlYXR1cmVzCgotIFN1cHBvcnRzIE9wZW5BUEkgKFN3YWdnZXIpIDIuMCBhbmQgMy54Ci0gRXhwcmVzcyBtaWRkbGV3YXJlCi0gQXV0b21hdGljYWxseSBsaW5rIEphdmFTY3JpcHQgZnVuY3Rpb25zIHRvIHBhdGggZW5kcG9pbnRzCi0gUGFyc2VzIGFuZCB2YWxpZGF0ZXMgaW5jb21pbmcgcmVxdWVzdHMKLSBWYWxpZGF0ZXMgcmVzcG9uc2VzIHByaW9yIHRvIHNlbmRpbmcKLSBBdXRvbWF0aWMgcmVzcG9uc2UgbW9ja2luZyBpbiBkZXZlbG9wbWVudAotIE9wdGlvbiBmb3IgbWFudWFsIHJlc3BvbnNlIG1vY2tpbmcgaW4gcHJvZHVjdGlvbgotIEhpZ2hseSBjb25maWd1cmFibGUKLSBBY2NlcHRzIG1pZGRsZXdhcmUgcGx1Z2lucwoKIyMgSW5zdGFsbGF0aW9uCgpUaGlzIHBhY2thZ2UgaGFzIFtvcGVuYXBpLWVuZm9yY2VyXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcGVuYXBpLWVuZm9yY2VyKSBhcyBhIHBlZXIgZGVwZW5kZW5jeSwgc28gYm90aCBtdXN0IGJlIGluc3RhbGxlZC4KCmBgYGJhc2gKbnBtIGluc3RhbGwgb3BlbmFwaS1lbmZvcmNlciBvcGVuYXBpLWVuZm9yY2VyLW1pZGRsZXdhcmUKYGBgCgojIyBEb2N1bWVudGF0aW9uCgpodHRwczovL2J5dS1vaXQuZ2l0aHViLmlvL29wZW5hcGktZW5mb3JjZXItbWlkZGxld2FyZS8K readmeEtag: '"09e2cf7abd1e26e27ccbf007cbd2d88ed08ee946"' readmeLastModified: Thu, 17 Feb 2022 21:06:17 GMT repositoryId: 120667667 description: >- An express middleware that makes it easy to write web services that follow an Open API specification. created: '2018-02-07T20:28:20Z' updated: '2022-12-05T04:32:04Z' language: JavaScript archived: false stars: 17 watchers: 4 forks: 10 owner: Gi60s logo: https://avatars.githubusercontent.com/u/714117?v=4 license: Apache-2.0 repoEtag: '"e9e81124e839ba5e6c7c26607c36f040d307ad8118ebe7af92dcbc96adfddd96"' repoLastModified: Mon, 05 Dec 2022 04:32:04 GMT foundInMaster: true id: b7b2f24374c433724155eceeced5fb7c oldLocations: - https://github.com/byu-oit/openapi-enforcer-middleware - source: https://openapi.tools/ name: BigstickCarpet/swagger-cli category: - Description Validators - Parsers repository: https://github.com/apidevtools/swagger-cli language: - Node.js - CLI source_description: >- Simple validation for OpenAPI files, supporting JSON/YAML and v2/v3 description documents. v2: true v3: true repositoryMetadata: base64Readme: >- U3dhZ2dlci9PcGVuQVBJIENMSQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQGFwaWRldnRvb2xzL3N3YWdnZXItY2xpLnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BhcGlkZXZ0b29scy9zd2FnZ2VyLWNsaSkKWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AYXBpZGV2dG9vbHMvc3dhZ2dlci1jbGkuc3ZnKV0oTElDRU5TRSkKWyFbQnV5IHVzIGEgdHJlZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9UcmVld2FyZS0lRjAlOUYlOEMlQjMtbGlnaHRncmVlbildKGh0dHBzOi8vcGxhbnQudHJlZXdhcmUuZWFydGgvQVBJRGV2VG9vbHMvc3dhZ2dlci1jbGkpCgoKPiDimqDvuI8gU3dhZ2dlciBDTEkgaGFzIGJlZW4gZGVwcmVjYXRlZCwgZHVlIHRvIHRoZSBtYWludGVuYW5jZSBidXJuZGVuIG9mIHRyeWluZyB0byBrZWVwIHVwIHdpdGggZXhwZWN0YXRpb25zIG9mIGEgaHVnZSB1c2VyYmFzZSB3aXRoIGxpdHRsZSB0byBubyBwdWxsIHJlcXVlc3RzIG9yIHN1cHBvcnQuIFtSZWRvY2x5IENMSV0oaHR0cHM6Ly9yZWRvY2x5LmNvbS9yZWRvY2x5LWNsaS8pIGNvdmVycyBhbGwgb2YgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSwgYW5kIGhhcyBtb3JlIGFkdmFuY2VkIGxpbnRpbmcgd2l0aCBjdXN0b20gcnVsZXMsIGFuZCB3ZSBoaWdobHkgcmVjb21tZW5kIHVzaW5nIHRoYXQgaW5zdGVhZC4gVGhleSBoYXZlIGNvbnZlbmllbnRseSBwcm92aWRlZCBhIFttaWdyYXRpb24gZ3VpZGVdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvZ3VpZGVzL21pZ3JhdGUtZnJvbS1zd2FnZ2VyLWNsaS8pIGZvciBleGlzdGluZyBTd2FnZ2VyIENMSSB1c2Vycy4gUmVhZCB0aGUgcmV2aWV3IG9mIFtSZWRvY2x5IENMSSBmcm9tIEFQSXMgWW91IFdvbid0IEhhdGVdKGh0dHBzOi8vYXBpc3lvdXdvbnRoYXRlLmNvbS9ibG9nL3JlZG9jbHktY2xpLykuCgpGZWF0dXJlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFZhbGlkYXRlIFN3YWdnZXIvT3BlbkFQSSBmaWxlcyBpbiAqKkpTT04gb3IgWUFNTCoqIGZvcm1hdAotIFN1cHBvcnRzIG11bHRpLWZpbGUgQVBJIGRlZmluaXRpb25zIHZpYSBgJHJlZmAgcG9pbnRlcnMKLSBCdW5kbGUgbXVsdGlwbGUgU3dhZ2dlci9PcGVuQVBJIGZpbGVzIGludG8gb25lIGNvbWJpbmVkIGZpbGUKCgoKUmVsYXRlZCBQcm9qZWN0cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFtTd2FnZ2VyIFBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL3N3YWdnZXItcGFyc2VyKQotIFtTd2FnZ2VyIEV4cHJlc3MgTWlkZGxld2FyZV0oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL3N3YWdnZXItZXhwcmVzcy1taWRkbGV3YXJlKQoKCgpJbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5zdGFsbCB1c2luZyBbbnBtXShodHRwczovL2RvY3MubnBtanMuY29tL2Fib3V0LW5wbS8pOgoKYGBgYmFzaApucG0gaW5zdGFsbCAtZyBAYXBpZGV2dG9vbHMvc3dhZ2dlci1jbGkKYGBgCgoKClVzYWdlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpgYGAKc3dhZ2dlci1jbGkgPGNvbW1hbmQ+IFtvcHRpb25zXSA8ZmlsZT4KCkNvbW1hbmRzOgogICAgdmFsaWRhdGUgICAgICAgICAgICAgICAgVmFsaWRhdGVzIGFuIEFQSSBkZWZpbml0aW9uIGluIFN3YWdnZXIgMi4wIG9yIE9wZW5BUEkgMy4wIGZvcm1hdAoKICAgIGJ1bmRsZSAgICAgICAgICAgICAgICAgIEJ1bmRsZXMgYSBtdWx0aS1maWxlIEFQSSBkZWZpbml0aW9uIGludG8gYSBzaW5nbGUgZmlsZQoKT3B0aW9uczoKICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIFNob3cgaGVscCBmb3IgYW55IGNvbW1hbmQKICAgIC12LCAtLXZlcnNpb24gICAgICAgICAgIE91dHB1dCB0aGUgQ0xJIHZlcnNpb24gbnVtYmVyCiAgICAtZCwgLS1kZWJ1ZyBbZmlsdGVyXSAgICBTaG93IGRlYnVnIG91dHB1dCwgb3B0aW9uYWxseSBmaWx0ZXJlZCAoZS5nLiAiKiIsICJzd2FnZ2VyOioiLCBldGMuKQpgYGAKCgojIyMgVmFsaWRhdGUgYW4gQVBJCgpUaGUgYHN3YWdnZXItY2xpIHZhbGlkYXRlYCBjb21tYW5kIHdpbGwgdmFsaWRhdGUgeW91ciBTd2FnZ2VyL09wZW5BUEkgZGVmaW5pdGlvbiBhZ2FpbnN0IHRoZSBbU3dhZ2dlciAyLjAgc2NoZW1hXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9zY2hlbWFzL3YyLjAvc2NoZW1hLmpzb24pIG9yIFtPcGVuQVBJIDMuMCBTY2hlbWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3NjaGVtYXMvdjMuMC9zY2hlbWEuanNvbikuICBJdCBhbHNvIHBlcmZvcm1zIGFkZGl0aW9uYWwgdmFsaWRhdGlvbnMgYWdhaW5zdCB0aGUgW3NwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3ZlcnNpb25zLzIuMC5tZCksIHdoaWNoIHdpbGwgY2F0Y2ggc29tZSB0aGluZ3MgdGhhdCBhcmVuJ3QgY292ZXJlZCBieSB0aGUgc2NoZW1hLCBzdWNoIGFzIGR1cGxpY2F0ZSBwYXJhbWV0ZXJzLCBpbnZhbGlkIE1JTUUgdHlwZXMsIGV0Yy4KClRoZSBjb21tYW5kIHdpbGwgZXhpdCB3aXRoIGEgbm9uLXplcm8gY29kZSBpZiB0aGUgQVBJIGlzIGludmFsaWQuCgpgYGAKc3dhZ2dlci1jbGkgdmFsaWRhdGUgW29wdGlvbnNdIDxmaWxlPgoKT3B0aW9uczoKICAgIC0tbm8tc2NoZW1hICAgICAgICAgICAgIERvIE5PVCB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBTd2FnZ2VyL09wZW5BUEkgSlNPTiBzY2hlbWEKCiAgICAtLW5vLXNwZWMgICAgICAgICAgICAgICBEbyBOT1QgdmFsaWRhdGUgYWdhaW5zdCB0aGUgU3dhZ2dlci9PcGVuQVBJIHNwZWNpZmljYXRpb24KYGBgCgojIyMjIEdpdCBwcmUtY29tbWl0IGhvb2sKClRoZXJlIGlzIGEgdXNlZnVsIFB5dGhvbiB0b29sIGNhbGxlZCBbcHJlLWNvbW1pdF0oaHR0cHM6Ly9wcmUtY29tbWl0LmNvbS8pIHRoYXQgY2FuIGJlIHVzZWQgdG8gZXhlY3V0ZSBhIHdpZGUgc3VpdGUgb2YgcHJlLWNvbW1pdCBjaGVja3MuIFRoZSBgc3dhZ2dlci1jbGkgdmFsaWRhdGVgIGNvbW1hbmQgY2FuIGJlIGludGVncmF0ZWQgYXMgcGFydCBvZiBhIGdpdCBwcmUtY29tbWl0IGhvb2sgYnkgYWRkaW5nIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbiB0byB0aGUgYHJlcG9zYCBlbnRyeSBvZiBhbiBleGlzdGluZyBgLnByZS1jb21taXQtY29uZmlnLnlhbWxgIGZpbGUuCgpgYGAKLSAgIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLWNsaQogICAgcmV2OiB2Mi4yLjEKICAgIGhvb2tzOgogICAgLSBpZDogc3dhZ2dlci12YWxpZGF0aW9uCiAgICAgIGFyZ3M6IFsidmFsaWRhdGUiLCAiPHBhdGggdG8gcm9vdCBzd2FnZ2VyPiJdCmBgYAoKVGhlIGludGVudGlvbiBpcyB0byBwb2ludCB0byBzaW5nbGUgcm9vdCBzd2FnZ2VyIHRoYXQgcmVmZXJlbmNlcyBtdWx0aXBsZSBzd2FnZ2VyIGRlZmluaXRpb25zLiBUaGUgYWJvdmUgaG9vayB3aWxsIGV4ZWN1dGUgdGhlIGBzd2FnZ2VyLWNsaSB2YWxpZGF0aW9uYCBhZ2FpbnN0IHRoZSByb290IHN3YWdnZXIgYW55dGltZSB0aGF0IGEgZmlsZSBtYXRjaGluZyB0aGUgcGF0dGVybiBgLipzd2FnZ2VyLipcLihqc29ufHlhbWx8eW1sKWAgaXMgbW9kaWZpZWQuIEFueSBmYWlsdXJlcyBpbiB0aGlzIHZhbGlkYXRpb24gd2lsbCBwcmV2ZW50IHRoZSBnaXQgY29tbWl0IGZyb20gYmVpbmcgcHJvY2Vzc2VkLgoKIyMjIENvbWJpbmUgTXVsdGlwbGUgRmlsZXMKClRoZSBTd2FnZ2VyIGFuZCBPcGVuQVBJIHNwZWNzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBBUEkgZGVmaW5pdGlvbiBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMgdXNpbmcgW2AkcmVmYCBwb2ludGVyc10oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kI3JlZmVyZW5jZS1vYmplY3QpIHRvIHJlZmVyZW5jZSBlYWNoIGZpbGUuIFlvdSBjYW4gdXNlIHRoZSBgc3dhZ2dlci1jbGkgYnVuZGxlYCBjb21tYW5kIHRvIGNvbWJpbmUgYWxsIG9mIHRob3NlIHJlZmVyZW5jZWQgZmlsZXMgaW50byBhIHNpbmdsZSBmaWxlLCB3aGljaCBpcyB1c2VmdWwgZm9yIGRpc3RyaWJ1dGlvbiBvciBpbnRlcm9wZXJhdGlvbiB3aXRoIG90aGVyIHRvb2xzLgoKQnkgZGVmYXVsdCwgdGhlIGBzd2FnZ2VyLWNsaSBidW5kbGVgIGNvbW1hbmQgdHJpZXMgdG8ga2VlcCB0aGUgb3V0cHV0IGZpbGUgc2l6ZSBhcyBzbWFsbCBhcyBwb3NzaWJsZSwgYnkgb25seSBlbWJlZGRpbmcgZWFjaCByZWZlcmVuY2VkIGZpbGUgX29uY2VfLiAgSWYgdGhlIHNhbWUgZmlsZSBpcyByZWZlcmVuY2VkIG11bHRpcGxlIHRpbWVzLCB0aGVuIGFueSBzdWJzZXF1ZW50IHJlZmVyZW5jZXMgYXJlIHNpbXBseSBtb2RpZmllZCB0byBwb2ludCB0byB0aGUgX3NpbmdsZV8gaW5saW5lZCBjb3B5IG9mIHRoZSBmaWxlLiAgSWYgeW91IHdhbnQgdG8gcHJvZHVjZSBhIGJ1bmRsZWQgZmlsZSB3aXRob3V0IF9hbnlfIGAkcmVmYCBwb2ludGVycywgdGhlbiBhZGQgdGhlIGAtLWRlcmVmZXJlbmNlYCBvcHRpb24uICBUaGlzIHdpbGwgcmVzdWx0IGluIGEgbGFyZ2VyIGZpbGUgc2l6ZSwgc2luY2UgbXVsdGlwbGUgcmVmZXJlbmNlcyB0byB0aGUgc2FtZSBmaWxlIHdpbGwgcmVzdWx0IGluIHRoYXQgZmlsZSBiZWluZyBlbWJlZGRlZCBtdWx0aXBsZSB0aW1lcy4KCklmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgLS1vdXRmaWxlYCBvcHRpb24sIHRoZW4gdGhlIGJ1bmRsZWQgQVBJIHdpbGwgYmUgd3JpdHRlbiB0byBzdGRvdXQsIHdoaWNoIG1lYW5zIHlvdSBjYW4gcGlwZSBpdCB0byBvdGhlciBjb21tYW5kcy4KClRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2QgYnkgZGVmYXVsdCBpcyB3cml0dGVuIGFzIEpTT04uIEl0IGNhbiBiZSBjaGFuZ2VkIHRvIFlBTUwgd2l0aCB0aGUgYC0tdHlwZWAgb3B0aW9uLCBieSBwYXNzaW5nIHRoZSBgeWFtbGAgdmFsdWUuCgpgYGAKc3dhZ2dlci1jbGkgYnVuZGxlIFtvcHRpb25zXSA8ZmlsZT4KCk9wdGlvbnM6CiAgICAtbywgLS1vdXRmaWxlIDxmaWxlPiAgICAgICAgVGhlIG91dHB1dCBmaWxlCgogICAgLXIsIC0tZGVyZWZlcmVuY2UgICAgICAgICAgIEZ1bGx5IGRlcmVmZXJlbmNlIGFsbCAkcmVmIHBvaW50ZXJzCgogICAgLWYsIC0tZm9ybWF0IDxzcGFjZXM+ICAgICAgIEZvcm1hdHMgdGhlIG91dHB1dCB1c2luZyB0aGUgZ2l2ZW4gbnVtYmVyIG9mIHNwYWNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGUgZGVmYXVsdCBpcyAyIHNwYWNlcykKCiAgICAtdCwgLS10eXBlIDxmaWxldHlwZT4gICAgICAgRGVmaW5lcyB0aGUgb3V0cHV0IGZpbGUgdHlwZS4gVGhlIHZhbGlkIHZhbHVlcyBhcmU6IGpzb24sIHlhbWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhlIGRlZmF1bHQgaXMgSlNPTikKCiAgICAtdywgLS13cmFwIDxjb2x1bW4+ICAgICAgICAgU2V0IHRoZSBsaW5lIGxlbmd0aCBmb3IgWUFNTCBzdHJpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoZSBkZWZhdWx0IGlzIG5vIHdyYXBwaW5nKQpgYGAKCgoKQ29udHJpYnV0aW5nCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkkgd2VsY29tZSBhbnkgY29udHJpYnV0aW9ucywgZW5oYW5jZW1lbnRzLCBhbmQgYnVnLWZpeGVzLiAgW09wZW4gYW4gaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BUElEZXZUb29scy9zd2FnZ2VyLWNsaS9pc3N1ZXMpIG9uIEdpdEh1YiBhbmQgW3N1Ym1pdCBhIHB1bGwgcmVxdWVzdF0oaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL3N3YWdnZXItY2xpL3B1bGxzKS4KCiMjIyMgQnVpbGRpbmcvVGVzdGluZwpUbyBidWlsZC90ZXN0IHRoZSBwcm9qZWN0IGxvY2FsbHkgb24geW91ciBjb21wdXRlcjoKCjEuICoqQ2xvbmUgdGhpcyByZXBvKio8YnI+CmBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL0FQSURldlRvb2xzL3N3YWdnZXItY2xpLmdpdGAKCjIuICoqSW5zdGFsbCBkZXBlbmRlbmNpZXMqKjxicj4KYG5wbSBpbnN0YWxsYAoKMy4gKipSdW4gdGhlIHRlc3RzKio8YnI+CmBucG0gdGVzdGAKCgoKTGljZW5zZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpTd2FnZ2VyIENMSSBpcyAxMDAlIGZyZWUgYW5kIG9wZW4tc291cmNlLCB1bmRlciB0aGUgW01JVCBsaWNlbnNlXShMSUNFTlNFKS4gVXNlIGl0IGhvd2V2ZXIgeW91IHdhbnQuCgpUaGlzIHBhY2thZ2UgaXMgW1RyZWV3YXJlXShodHRwOi8vdHJlZXdhcmUuZWFydGgpLiBJZiB5b3UgdXNlIGl0IGluIHByb2R1Y3Rpb24sIHRoZW4gd2UgYXNrIHRoYXQgeW91IFsqKmJ1eSB0aGUgd29ybGQgYSB0cmVlKipdKGh0dHBzOi8vcGxhbnQudHJlZXdhcmUuZWFydGgvQVBJRGV2VG9vbHMvc3dhZ2dlci1jbGkpIHRvIHRoYW5rIHVzIGZvciBvdXIgd29yay4gQnkgY29udHJpYnV0aW5nIHRvIHRoZSBUcmVld2FyZSBmb3Jlc3QgeW914oCZbGwgYmUgY3JlYXRpbmcgZW1wbG95bWVudCBmb3IgbG9jYWwgZmFtaWxpZXMgYW5kIHJlc3RvcmluZyB3aWxkbGlmZSBoYWJpdGF0cy4KCgoKQmlnIFRoYW5rcyBUbwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGFua3MgdG8gdGhlc2UgYXdlc29tZSBjb21wYW5pZXMgZm9yIHRoZWlyIHN1cHBvcnQgb2YgT3BlbiBTb3VyY2UgZGV2ZWxvcGVycyDinaQKClshW1RyYXZpcyBDSV0oaHR0cHM6Ly9qc3Rvb2xzLmRldi9pbWcvYmFkZ2VzL3RyYXZpcy1jaS5zdmcpXShodHRwczovL3RyYXZpcy1jaS5jb20pClshW1NhdWNlTGFic10oaHR0cHM6Ly9qc3Rvb2xzLmRldi9pbWcvYmFkZ2VzL3NhdWNlLWxhYnMuc3ZnKV0oaHR0cHM6Ly9zYXVjZWxhYnMuY29tKQpbIVtDb3ZlcmFsbHNdKGh0dHBzOi8vanN0b29scy5kZXYvaW1nL2JhZGdlcy9jb3ZlcmFsbHMuc3ZnKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8pCg== readmeEtag: '"b6366f698af1bbc5531a38cc611e28aa3c438a1b"' readmeLastModified: Wed, 15 Nov 2023 11:23:27 GMT repositoryId: 36670476 description: Swagger 2.0 and OpenAPI 3.0 command-line tool created: '2015-06-01T15:36:25Z' updated: '2024-08-05T11:40:25Z' language: JavaScript archived: true stars: 515 watchers: 14 forks: 69 owner: APIDevTools logo: https://avatars.githubusercontent.com/u/43750074?v=4 license: MIT repoEtag: '"fadf050222bbc87c456e5f9041a967dc9a317221b7be693982de084766ba460c"' repoLastModified: Mon, 05 Aug 2024 11:40:25 GMT foundInMaster: true id: 1861975d6734eb6c3e0ab0980e241853 oldLocations: - https://github.com/bigstickcarpet/swagger-cli - source: https://openapi.tools/ name: OpenAPI Enforcer category: - Data Validators - Description Validators - Server - Testing - Parsers language: Node.js link: https://www.npmjs.com/package/openapi-enforcer repository: https://github.com/gi60s/openapi-enforcer source_description: >- Validate your OpenAPI document, serialize, deserialize, and validate incoming requests and outgoing responses, and simplify response building. You can even produce mock data. v2: true v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJLUVuZm9yY2VyCgpUb29scyBmb3IgdXNpbmcgdGhlIE9wZW4gQVBJIFNwZWNpZmljYXRpb24gKE9BUykKCioqU3VwcG9ydHMgT0FTIDIuMCAoZm9ybWVybHkgU3dhZ2dlcikgYW5kIE9BUyAzLngueCoqCgojIyBGZWF0dXJlcwoKLSBDcmVhdGUgYW4gQVBJLgotIFZhbGlkYXRlIHlvdXIgT0FTIGRvY3VtZW50cy4KLSBTZXJpYWxpemUsIGRlc2VyaWFsaXplLCBhbmQgdmFsaWRhdGUgdmFsdWVzIGFnYWluc3QgT0FTIHNjaGVtYXMuCi0gSWRlbnRpZnkgdGhlIG9wZXJhdGlvbiBhc3NvY2lhdGVkIHdpdGggYSByZXF1ZXN0LgotIFBhcnNlLCBkZXNlcmlhbGl6ZSwgYW5kIHZhbGlkYXRlIHJlcXVlc3QgcGFyYW1ldGVycy4KLSBGYWNpbGl0YXRlZCByZXNwb25zZSBidWlsZGluZy4KLSBHZW5lcmF0ZSByYW5kb20gdmFsaWQgdmFsdWVzIGZvciBhIHNjaGVtYS4KLSBQbHVnaW4gZW52aXJvbm1lbnQgZm9yIGN1c3RvbSBkb2N1bWVudCB2YWxpZGF0aW9uIGFuZCBleHRlbmRlZCBmdW5jdGlvbmFsaXR5IGluY2x1ZGluZyBjdXN0b20gZGF0YSB0eXBlIGZvcm1hdHMuCgojIyBXZWJzaXRlIC0gW29wZW5hcGktZW5mb3JjZXIuY29tXShodHRwczovL29wZW5hcGktZW5mb3JjZXIuY29tLykKCiMjIEluc3RhbGxhdGlvbgoKYGBgc2hlbGwKbnBtIGluc3RhbGwgb3BlbmFwaS1lbmZvcmNlcgpgYGAKCiMjIEV4YW1wbGVzCgojIyMgTG9hZGluZyBhbmQgVmFsaWRhdGluZyBhIERvY3VtZW50CgpVc2UgdGhlIEVuZm9yY2VyIHRvIGxvYWQgYW5kIHJlc29sdmUgYWxsICRyZWYgdmFsdWVzIGFuZCB0aGVuIHRvIHZhbGlkYXRlIHRoZSBjb21wbGV0ZSBkb2N1bWVudC4KCmBgYGpzCmNvbnN0IEVuZm9yY2VyID0gcmVxdWlyZSgnb3BlbmFwaS1lbmZvcmNlcicpCgphc3luYyBmdW5jdGlvbiBydW4gKCkgewogIGNvbnN0IFtvcGVuYXBpLCBlcnJvciwgd2FybmluZ10gPSBhd2FpdCBFbmZvcmNlcignLi9wYXRoL3RvL29wZW5hcGkueW1sJywgewogICAgZnVsbFJlc3VsdDogdHJ1ZQogIH0pCiAgaWYgKGVycm9yICE9PSB1bmRlZmluZWQpIGNvbnNvbGUuZXJyb3IoZXJyb3IpCiAgaWYgKHdhcm5pbmcgIT09IHVuZGVmaW5lZCkgY29uc29sZS53YXJuKHdhcm5pbmcpCiAgaWYgKG9wZW5hcGkgIT09IHVuZGVmaW5lZCkgY29uc29sZS5sb2coJ0RvY3VtZW50IGlzIHZhbGlkJykKfQoKcnVuLmNhdGNoKGNvbnNvbGUuZXJyb3IpCmBgYAoKIyMjIFByb2Nlc3NpbmcgYW4gSW5jb21pbmcgUmVxdWVzdAoKYGBganMKY29uc3QgRW5mb3JjZXIgPSByZXF1aXJlKCdvcGVuYXBpLWVuZm9yY2VyJykKCmFzeW5jIGZ1bmN0aW9uIHJ1biAoKSB7CiAgLy8gQmVjYXVzZSB3ZSBkb24ndCBzcGVjaWZ5IGBmdWxsUmVzdWx0OiB0cnVlYCwgYW55IGVycm9ycyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBhbmQKICAvLyB3YXJuaW5ncyB3aWxsIGJlIGxvZ2dlZCB0byB0aGUgY29uc29sZS4KICBjb25zdCBvcGVuYXBpID0gYXdhaXQgRW5mb3JjZXIoJy4vcGF0aC90by9vcGVuYXBpLnltbCcpCgogIC8vIElmIHRoZSByZXF1ZXN0IGlzIHZhbGlkIHRoZW4gdGhlIHJlcSBvYmplY3Qgd2lsbCBjb250YWluIHRoZSBwYXJzZWQgYW5kIHZhbGlkYXRlZCByZXF1ZXN0LgogIC8vIElmIGl0IGlzIGludmFsaWQgdGhlbiB0aGUgZXJyb3Igd2lsbCBjb250YWluIGRldGFpbHMgYWJvdXQgd2hhdCB3YXMgd3Jvbmcgd2l0aCB0aGUKICAvLyByZXF1ZXN0IGFuZCB0aGVzZSBkZXRhaWxzIGFyZSBzYWZlIHRvIHJldHVybiB0byB0aGUgY2xpZW50IHRoYXQgbWFkZSB0aGUgcmVxdWVzdC4KICBjb25zdCBbIHJlcSwgZXJyb3IgXSA9IG9wZW5hcGkucmVxdWVzdCh7CiAgICBtZXRob2Q6ICdQT1NUJywKICAgIHBhdGg6ICcvdGFza3MnLAogICAgLy8gdGhlIGJvZHkgc2hvdWxkIGJlIHBhcnNlZCBieSBhIEpTT04ucGFyc2UoKSBwcmlvciB0byBwYXNzaW5nIGluIChpZiBhcHBsaWNhYmxlKS4KICAgIGJvZHk6IHsgdGFzazogJ0J1eSBNaWxrJywgcXVhbnRpdHk6IDIgfQogIH0pCgogIC8vIFlvdSBjYW4gdXNlIHRoZSByZXEub3BlcmF0aW9uIHByb3BlcnR5IHRvIGxvb2sgYXQgdGhlIHByb3BlcnRpZXMgZnJvbSB5b3VyIE9wZW5BUEkgZG9jdW1lbnQuCiAgLy8gQSBnb29kIHVzZSBvZiB0aGlzIGlzIHRvIGxvb2sgYXQgdGhlIG9wZXJhdGlvbklkIHlvdSBkZWZpbmVkIHRoZXJlIHRvIGRldGVybWluZSB3aGljaCBwYXRoCiAgLy8gaXMgYmVpbmcgdXNlZCB0byBoYW5kbGUgdGhlIHJlcXVlc3QuCiAgaWYgKHJlcS5vcGVyYXRvbi5vcGVyYXRpb25JZCA9PT0gJ215LW9wZXJhdGlvbi1pZCcpIHsKICAgIC8vIC4uLiBhZGRpdGlvbmFsIHJlcXVlc3QgcHJvY2Vzc2luZwogIH0KfQoKcnVuLmNhdGNoKGNvbnNvbGUuZXJyb3IpCmBgYAoKIyMjIFByb2R1Y2luZyBhIFZhbGlkIFJlc3VsdAoKYGBganMKY29uc3QgRW5mb3JjZXIgPSByZXF1aXJlKCdvcGVuYXBpLWVuZm9yY2VyJykKCmFzeW5jIGZ1bmN0aW9uIHJ1biAoKSB7CiAgY29uc3Qgb3BlbmFwaSA9IGF3YWl0IEVuZm9yY2VyKCcuL3BhdGgvdG8vb3BlbmFwaS55bWwnKQoKICBjb25zdCBbIHJlcSBdID0gb3BlbmFwaS5yZXF1ZXN0KHsKICAgIG1ldGhvZDogJ1BPU1QnLAogICAgcGF0aDogJy90YXNrcycsCiAgICAvLyB0aGUgYm9keSBzaG91bGQgYmUgcGFyc2VkIGJ5IGEgSlNPTi5wYXJzZSgpIHByaW9yIHRvIHBhc3NpbmcgaW4gKGlmIGFwcGxpY2FibGUpLgogICAgYm9keTogeyB0YXNrOiAnQnV5IE1pbGsnLCBxdWFudGl0eTogMiB9CiAgfSkKCiAgY29uc3QgYm9keSA9IHsgaWQ6IDEsIHRhc2s6ICdCdXkgTWlsaycsIHF1YW50aXR5OiAyLCBkYXRlQ29tcGxldGVkOiBudWxsIH0KICBjb25zdCBoZWFkZXJzID0ge30KCiAgLy8gVGhpcyB3aWxsIHZhbGlkYXRlIHRoZSByZXNwb25zZSBjb2RlLCBib2R5LCBhbmQgaGVhZGVycy4gSXQgd2lsbCBhbHNvIGNvcnJlY3RseSBzZXJpYWxpemUKICAvLyB0aGUgYm9keSBhbmQgaGVhZGVycyBmb3Igc2VuZGluZyB0byB0aGUgY2xpZW50IHRoYXQgbWFkZSB0aGUgcmVxdWVzdC4gVXNpbmcgdGhpcyBtZXRob2QKICAvLyB5b3UnbGwgbmV2ZXIgc2VuZCBiYWNrIGEgcmVzcG9uc2UgdGhhdCBkb2VzIG5vdCBtYXRjaCB3aGF0IHlvdXIgT3BlbkFQSSBkb2N1bWVudCBkZWZpbmVzLgogIGNvbnN0IFsgcmVzLCBlcnJvciBdID0gcmVxLnJlc3BvbnNlKDIwMCwgYm9keSwgaGVhZGVycykKICBjb25zb2xlLmxvZyhyZXMuYm9keSwgcmVzLmhlYWRlcnMpCn0KCnJ1bi5jYXRjaChjb25zb2xlLmVycm9yKQpgYGAK readmeEtag: '"379b08da4f96adbeb6c3864a5d5536393476a12b"' readmeLastModified: Sat, 02 Mar 2024 00:36:43 GMT repositoryId: 120373530 description: null created: '2018-02-05T23:06:16Z' updated: '2024-02-20T08:49:20Z' language: JavaScript archived: false stars: 94 watchers: 7 forks: 22 owner: Gi60s logo: https://avatars.githubusercontent.com/u/714117?v=4 license: Apache-2.0 repoEtag: '"cd27fea65290d1ff57571425fa0f67e53f635846962d7abbf8d863973567e36e"' repoLastModified: Tue, 20 Feb 2024 08:49:20 GMT foundInMaster: true id: d154dd3ce5cfba35ca50effbfd386d73 oldLocations: - https://github.com/byu-oit/openapi-enforcer - source: https://openapi.tools/ name: guardrail category: SDK link: https://github.com/twilio/guardrail repository: https://github.com/guardrail-dev/guardrail language: - Scala - Java - ... source_description: Principled code generation from OpenAPI descriptions v2: true v3: true repositoryMetadata: base64Readme: >- Z3VhcmRyYWlsIFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL2d1YXJkcmFpbC1kZXYvZ3VhcmRyYWlsL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZ3VhcmRyYWlsLWRldi9ndWFyZHJhaWwvYWN0aW9ucz9xdWVyeT13b3JrZmxvdyUzQSUyMkNJJTIyKSB8IFshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9ndWFyZHJhaWwtZGV2L2d1YXJkcmFpbC9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2Zz90b2tlbj1zc0xZWWtWQmd2KV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2d1YXJkcmFpbC1kZXYvZ3VhcmRyYWlsKSB8IFshW01hdHJpeCBjaGF0XShodHRwczovL2ltZy5zaGllbGRzLmlvL21hdHJpeC9ndWFyZHJhaWw6bWF0cml4Lm9yZy5zdmc/bGFiZWw9bWF0cml4JnNlcnZlcl9mcWRuPW1hdHJpeC5vcmcpXShodHRwczovL21hdHJpeC50by8jLyNndWFyZHJhaWw6bWF0cml4Lm9yZykgfCBbIVtKb2luIHRoZSBjaGF0IGF0IGh0dHBzOi8vZ2l0dGVyLmltL2d1YXJkcmFpbC1kZXYvZ3VhcmRyYWlsXShodHRwczovL2JhZGdlcy5naXR0ZXIuaW0vZ3VhcmRyYWlsLWRldi9ndWFyZHJhaWwuc3ZnKV0oaHR0cHM6Ly9naXR0ZXIuaW0vZ3VhcmRyYWlsLWRldi9ndWFyZHJhaWw/dXRtX3NvdXJjZT1iYWRnZSZ1dG1fbWVkaXVtPWJhZGdlJnV0bV9jYW1wYWlnbj1wci1iYWRnZSZ1dG1fY29udGVudD1iYWRnZSkgfCBbIVtTY2FsYSBTdGV3YXJkIGJhZGdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1NjYWxhX1N0ZXdhcmQtaGVscGluZy1ibHVlLnN2Zz9zdHlsZT1mbGF0JmxvZ289ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBNEFBQUFRQ0FNQUFBQVJTcjRJQUFBQVZGQk1WRVVBQUFDSGpvamxPeTVOV2xyS3pjWVJLakdGaklicDI5M1l5Y3VMYTNwWVkyTFNxcWw0ZjNwQ1VGVGdTak5vZFlSbWNYVXNQRC9OVFRialJTKzJqb21oZ256TmMyMjNjR3ZaUzBIYVNEMFhMamJhU2pFbGhJcitBQUFBQVhSU1RsTUFRT2JZWmdBQUFIbEpSRUZVQ05kTnlvc093eUFJaFdIQVFTMVZ0N2E3Ny8zZmN4eGRtdjB4d21ja3V0QVIxbmttNGdnYnlFY2cvd1dtbEdMREFBM29MNTB4aTZmazVmZlozRTJFM1FmWkRDY0NOMll0YkVXWnQrRHJjNnU2cmxxdjdVazBMZEtxcXI1cmsyVUNSWE9rMHZtUUtHZmM5NG5PSnlRam91RjlIL3dDYzlnRUNFWWZPTm9BQUFBQVNVVk9SSzVDWUlJPSldKGh0dHBzOi8vc2NhbGEtc3Rld2FyZC5vcmcpCj09PQoKZ3VhcmRyYWlsIGlzIGEgY29kZSBnZW5lcmF0aW9uIHRvb2wsIGNhcGFibGUgb2YgcmVhZGluZyBmcm9tIE9wZW5BUEkvU3dhZ2dlciBzcGVjaWZpY2F0aW9uIGZpbGVzIGFuZCBnZW5lcmF0aW5nIGJvdGggU2NhbGEgYW5kIEphdmEgc291cmNlIGNvZGUsIHRhcmdldGluZyB2YXJpb3VzIGxpYnJhcmllcyBhbmQgZnJhbWV3b3JrcyBsaXN0ZWQgaGVyZToKCi0gU2NhbGE6IGBha2thLWh0dHBgIGFuZCBgaHR0cDRzYCwgYm90aCBiYWNrZWQgYnkgYGNpcmNlYCwgYXMgd2VsbCBhcyBgZHJvcHdpemFyZGAgYmFja2VkIGJ5IGBqYWNrc29uYAotIEphdmE6IGBkcm9wd2l6YXJkYCBhbmQgYHNwcmluZy1tdmNgLCBib3RoIGJhY2tlZCBieSBgamFja3NvbmAKCkJ1aWxkIHRvb2wgcGx1Z2lucwotLS0tLS0tLS0tLS0tLS0tLS0KCnwgUGx1Z2lucyB8IHZlcnNpb25zIHwgZG9jcyB8CnwtLS18LS0tfC0tLXwKfCBbYGd1YXJkcmFpbC1kZXYvc2J0LWd1YXJkcmFpbGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ndWFyZHJhaWwtZGV2L3NidC1ndWFyZHJhaWwpIHwgWyFbc2J0LWd1YXJkcmFpbF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2Rldi5ndWFyZHJhaWwvc2J0LWd1YXJkcmFpbC9iYWRnZS5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzpkZXYuZ3VhcmRyYWlsJTIwYTpzYnQtZ3VhcmRyYWlsKSB8IFtkb2NzXShkb2NzL3BsdWdpbnMvc2J0Lm1kKSB8CnwgW2BndWFyZHJhaWwtZGV2L2d1YXJkcmFpbC1tYXZlbi1wbHVnaW5gXShodHRwczovL2dpdGh1Yi5jb20vZ3VhcmRyYWlsLWRldi9ndWFyZHJhaWwtbWF2ZW4tcGx1Z2luKSB8IFshW2d1YXJkcmFpbC1tYXZlbi1wbHVnaW5dKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9kZXYuZ3VhcmRyYWlsL2d1YXJkcmFpbC1tYXZlbi1wbHVnaW4vYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL3NlYXJjaD9xPWc6ZGV2Lmd1YXJkcmFpbCUyMGE6Z3VhcmRyYWlsLW1hdmVuLXBsdWdpbikgfCBbZG9jc10oZG9jcy9wbHVnaW5zL21hdmVuLm1kKSB8CnwgW2BndWFyZHJhaWwtZGV2L2d1YXJkcmFpbC1ncmFkbGUtcGx1Z2luYF0oaHR0cHM6Ly9naXRodWIuY29tL2d1YXJkcmFpbC1kZXYvZ3VhcmRyYWlsLWdyYWRsZS1wbHVnaW4pIHwgYGd1YXJkcmFpbC1ncmFkbGUtcGx1Z2luYCB8IFtQbHVnaW4gUG9ydGFsXShodHRwczovL3BsdWdpbnMuZ3JhZGxlLm9yZy9wbHVnaW4vZGV2Lmd1YXJkcmFpbCkgfCBbZG9jc10oZG9jcy9wbHVnaW5zL2dyYWRsZS5tZCkgfAp8IFtDTEkgc3VwcG9ydF0oLi9tb2R1bGVzL2NsaSkgfCBMYXRlc3QgfCBbYGNzIGluc3RhbGwgZ3VhcmRyYWlsYF0oaHR0cHM6Ly9nZXQtY291cnNpZXIuaW8vZG9jcy9jbGktaW5zdGFsbCksIFtkb2NzXShkb2NzL3BsdWdpbnMvbWFrZS5tZCkgfAoKTmV3IHRvIGd1YXJkcmFpbD8KLS0tCgpDaGVjayBvdXQgdGhlIFtkb2NzXShodHRwczovL2d1YXJkcmFpbC5kZXYvKSEKCkNvbXBhdGlibGUgbGlicmFyeSB2ZXJzaW9ucyBhcmUgbGlzdGVkIGluIFtDT01QQVRJQklMSVRZLm1kXShDT01QQVRJQklMSVRZLm1kKQoKZ3VhcmRyYWlsIG1vZHVsZSB2ZXJzaW9ucwotLS0KCmd1YXJkcmFpbCBpcyBtb2R1bGFyaXplZCwgdXNpbmcgW2BzYnQtdmVyc2lvbi1wb2xpY3lgXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFjZW50ZXIvc2J0LXZlcnNpb24tcG9saWN5KSB0byBlbnN1cmUgYmluYXJ5IGNvbXBhdGliaWxpdHkgYmV0d2VlbiBkZXBlbmRlbnQgbW9kdWxlcy4KClRoZSBkZXBlbmRlbmN5IGNoYWluIGFuZCB2ZXJzaW9ucyBvZiBwdWJsaXNoZWQgbW9kdWxlcyBhcmUgbGlzdGVkIGJlbG93IGZvciByZWZlcmVuY2U6Cgp8IG1vZHVsZSAgfCB2ZXJzaW9uICB8IGRlcGVuZHMgb24gfAp8LS0tLS18LS0tLS18LS0tLS18CnwgZ3VhcmRyYWlsLWNvcmUgfCBbIVtndWFyZHJhaWwtY29yZV0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2Rldi5ndWFyZHJhaWwvZ3VhcmRyYWlsLWNvcmVfMi4xMi9iYWRnZS5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzpkZXYuZ3VhcmRyYWlsJTIwYTpndWFyZHJhaWwtY29yZV8yLjEyKSB8ICB8CnwgZ3VhcmRyYWlsLWphdmEtc3VwcG9ydCB8IFshW2d1YXJkcmFpbC1qYXZhLXN1cHBvcnRdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9kZXYuZ3VhcmRyYWlsL2d1YXJkcmFpbC1qYXZhLXN1cHBvcnRfMi4xMi9iYWRnZS5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzpkZXYuZ3VhcmRyYWlsJTIwYTpndWFyZHJhaWwtamF2YS1zdXBwb3J0XzIuMTIpIHwgY29yZSB8CnwgZ3VhcmRyYWlsLWphdmEtYXN5bmMtaHR0cCB8IFshW2d1YXJkcmFpbC1qYXZhLWFzeW5jLWh0dHBdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9kZXYuZ3VhcmRyYWlsL2d1YXJkcmFpbC1qYXZhLWFzeW5jLWh0dHBfMi4xMi9iYWRnZS5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzpkZXYuZ3VhcmRyYWlsJTIwYTpndWFyZHJhaWwtamF2YS1hc3luYy1odHRwXzIuMTIpIHwgamF2YS1zdXBwb3J0IHwKfCBndWFyZHJhaWwtamF2YS1kcm9wd2l6YXJkIHwgWyFbZ3VhcmRyYWlsLWphdmEtZHJvcHdpemFyZF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2Rldi5ndWFyZHJhaWwvZ3VhcmRyYWlsLWphdmEtZHJvcHdpemFyZF8yLjEyL2JhZGdlLnN2ZyldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9zZWFyY2g/cT1nOmRldi5ndWFyZHJhaWwlMjBhOmd1YXJkcmFpbC1qYXZhLWRyb3B3aXphcmRfMi4xMikgfCBqYXZhLXN1cHBvcnQsIGphdmEtYXN5bmMtaHR0cCB8CnwgZ3VhcmRyYWlsLWphdmEtc3ByaW5nLW12YyB8IFshW2d1YXJkcmFpbC1qYXZhLXNwcmluZy1tdmNdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9kZXYuZ3VhcmRyYWlsL2d1YXJkcmFpbC1qYXZhLXNwcmluZy1tdmNfMi4xMi9iYWRnZS5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzpkZXYuZ3VhcmRyYWlsJTIwYTpndWFyZHJhaWwtamF2YS1zcHJpbmctbXZjXzIuMTIpIHwgamF2YS1zdXBwb3J0IHwKfCBndWFyZHJhaWwtc2NhbGEtc3VwcG9ydCB8IFshW2d1YXJkcmFpbC1zY2FsYS1zdXBwb3J0XShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvZGV2Lmd1YXJkcmFpbC9ndWFyZHJhaWwtc2NhbGEtc3VwcG9ydF8yLjEyL2JhZGdlLnN2ZyldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9zZWFyY2g/cT1nOmRldi5ndWFyZHJhaWwlMjBhOmd1YXJkcmFpbC1zY2FsYS1zdXBwb3J0XzIuMTIpIHwgY29yZSB8CnwgZ3VhcmRyYWlsLXNjYWxhLWFra2EtaHR0cCB8IFshW2d1YXJkcmFpbC1zY2FsYS1ha2thLWh0dHBdKGh0dHBzOi8vbWF2ZW4tYmFkZ2VzLmhlcm9rdWFwcC5jb20vbWF2ZW4tY2VudHJhbC9kZXYuZ3VhcmRyYWlsL2d1YXJkcmFpbC1zY2FsYS1ha2thLWh0dHBfMi4xMi9iYWRnZS5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzpkZXYuZ3VhcmRyYWlsJTIwYTpndWFyZHJhaWwtc2NhbGEtYWtrYS1odHRwXzIuMTIpIHwgc2NhbGEtc3VwcG9ydCB8CnwgZ3VhcmRyYWlsLXNjYWxhLWRyb3B3aXphcmQgfCBbIVtndWFyZHJhaWwtc2NhbGEtZHJvcHdpemFyZF0oaHR0cHM6Ly9tYXZlbi1iYWRnZXMuaGVyb2t1YXBwLmNvbS9tYXZlbi1jZW50cmFsL2Rldi5ndWFyZHJhaWwvZ3VhcmRyYWlsLXNjYWxhLWRyb3B3aXphcmRfMi4xMi9iYWRnZS5zdmcpXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvc2VhcmNoP3E9ZzpkZXYuZ3VhcmRyYWlsJTIwYTpndWFyZHJhaWwtc2NhbGEtZHJvcHdpemFyZF8yLjEyKSB8IHNjYWxhLXN1cHBvcnQgfAp8IGd1YXJkcmFpbC1zY2FsYS1odHRwNHMgfCBbIVtndWFyZHJhaWwtc2NhbGEtaHR0cDRzXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvZGV2Lmd1YXJkcmFpbC9ndWFyZHJhaWwtc2NhbGEtaHR0cDRzXzIuMTIvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL3NlYXJjaD9xPWc6ZGV2Lmd1YXJkcmFpbCUyMGE6Z3VhcmRyYWlsLXNjYWxhLWh0dHA0c18yLjEyKSB8IHNjYWxhLXN1cHBvcnQgfAp8IGd1YXJkcmFpbC1jbGkgfCBbIVtndWFyZHJhaWwtY2xpXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvZGV2Lmd1YXJkcmFpbC9ndWFyZHJhaWwtY2xpXzIuMTIvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL3NlYXJjaD9xPWc6ZGV2Lmd1YXJkcmFpbCUyMGE6Z3VhcmRyYWlsLWNsaV8yLjEyKSB8IGd1YXJkcmFpbC1jb3JlIHwKCkludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nPwotLS0KCltDT05UUklCVVRJTkcubWRdKENPTlRSSUJVVElORy5tZCkgcHJvdmlkZXMgYW4gb3ZlcnZpZXcgb2YgaG93IHRoZSBwcm9qZWN0IGlzIHN0cnVjdHVyZWQsIGV4cGVjdGF0aW9ucywgYW5kIGluZm9ybWF0aW9uIGFyb3VuZCB3cml0aW5nIG5ldyBpbnRlZ3JhdGlvbiB0ZXN0cy4KVGhlIFtpc3N1ZSB0cmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vZ3VhcmRyYWlsLWRldi9ndWFyZHJhaWwvaXNzdWVzKSBhbHNvIGhhcyB0YWdzIGZvciBbYGhlbHAgd2FudGVkYF0oaHR0cHM6Ly9naXRodWIuY29tL2d1YXJkcmFpbC1kZXYvZ3VhcmRyYWlsL2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpIGFuZCBbYGdvb2QgZmlyc3QgaXNzdWVgXShodHRwczovL2dpdGh1Yi5jb20vZ3VhcmRyYWlsLWRldi9ndWFyZHJhaWwvaXNzdWVzP3E9aXMlM0Fpc3N1ZStpcyUzQW9wZW4rbGFiZWwlM0ElMjJnb29kK2ZpcnN0K2lzc3VlJTIyKS4KCkFkb3B0ZXJzCj09PT09PT09CgotIFtBdmFzdF0oaHR0cHM6Ly93d3cuYXZhc3QuY29tLykKLSBbVHdpbGlvXShodHRwczovL3d3dy50d2lsaW8uY29tLykKCkNvbnRyaWJ1dG9ycwo9PT09PT09PT09PT0KCldlIHVzZWQgdG8gaGF2ZSBhIGxpc3Qgb2YgY29udHJpYnV0b3JzIGhlcmUsIGJ1dCBbZ2l0aHViJ3MgQ29udHJpYnV0b3JzIHBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9ndWFyZHJhaWwtZGV2L2d1YXJkcmFpbC9ncmFwaHMvY29udHJpYnV0b3JzKSBpcyBtdWNoIG1vcmUgYWNjdXJhdGUuIFRoYW5rcyB0byB0aG9zZSB3aG8gY29udHJpYnV0ZWQgYmVmb3JlIHRoZSBwcm9qZWN0IHdhcyBvcGVuIHNvdXJjZWQhCg== readmeEtag: '"f6b23074c7d0e522514219d62aa01792c01b934b"' readmeLastModified: Tue, 30 Jul 2024 13:56:35 GMT repositoryId: 102150798 description: Principled code generation from OpenAPI specifications created: '2017-09-01T20:31:36Z' updated: '2024-08-30T06:22:17Z' language: Scala archived: false stars: 522 watchers: 25 forks: 132 owner: guardrail-dev logo: https://avatars.githubusercontent.com/u/77855402?v=4 license: MIT repoEtag: '"17dfc8a458d51c7282cc9135adb7c1bb23bf468eaaa782e39d1b6087c12dfd9b"' repoLastModified: Fri, 30 Aug 2024 06:22:17 GMT foundInMaster: true id: 5a3fd6a978abf3303c9cce3950582502 oldLocations: - https://github.com/twilio/guardrail - source: https://openapi.tools/ name: LoopBack 4 category: Server language: Node.js + TypeScript link: https://loopback.io/ repository: https://github.com/loopbackio/loopback-next source_description: > A highly extensible object-oriented Node.js and TypeScript framework for building APIs and microservices with tight OpenAPI 3 integration. Serves Swagger UI and OpenAPI 3 spec out of the box. Generate code to interact with other OpenAPI-compliant APIs, or generate new API endpoints based on existing OpenAPI specs. repositoryMetadata: base64Readme: >- PGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sb29wYmFja2lvL2xvb3BiYWNrLmlvL2doLXBhZ2VzL2ltYWdlcy9icmFuZGluZy9sb2dvL2JsdWUvbG9vcGJhY2stc20ucG5nIiBhbHQ9Ikxvb3BCYWNrNCBsb2dvIiB3aWR0aD0iNDAwIi8+CgpbIVtDb250aW51b3VzIEludGVncmF0aW9uIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL2xvb3BiYWNraW8vbG9vcGJhY2stbmV4dC9hY3Rpb25zL3dvcmtmbG93cy9jb250aW51b3VzLWludGVncmF0aW9uLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbG9vcGJhY2tpby9sb29wYmFjay1uZXh0L2FjdGlvbnMvd29ya2Zsb3dzL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24ueW1sKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9sb29wYmFja2lvL2xvb3BiYWNrLW5leHQvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL2NvdmVyYWxscy5pby9naXRodWIvbG9vcGJhY2tpby9sb29wYmFjay1uZXh0P2JyYW5jaD1tYXN0ZXIpClshW0NvZGVRTCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb29wYmFja2lvL2xvb3BiYWNrLW5leHQvd29ya2Zsb3dzL0NvZGVRTC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbG9vcGJhY2tpby9sb29wYmFjay1uZXh0L2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FDb2RlUUwpCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL3R3aXR0ZXIvZm9sbG93L3N0cm9uZ2xvb3Auc3ZnP3N0eWxlPXNvY2lhbCZsYWJlbD1Gb2xsb3clMjAlNDBzdHJvbmdsb29wKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zdHJvbmdsb29wKQpbIVtGYWNlYm9va10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9TdHJvbmdMb29wLXdoaXRlP2xvZ289ZmFjZWJvb2smY29sb3I9MTg3N0YyJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zdHJvbmdsb29wKQpbIVtMaW5rZWRJbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Gb2xsb3clMjB1cy13aGl0ZT9sb2dvPWxpbmtlZEluJmNvbG9yPTAwNzdCNSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vZ3JvdXBzLzUwNDY1MjUvKQpbIVtTbGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zbGFjay1Kb2luJTIwd29ya3NwYWNlLSUyMzRBMTU0Qj9sb2dvPXNsYWNrKV0oaHR0cHM6Ly9qb2luLnNsYWNrLmNvbS90L2xvb3BiYWNraW8vc2hhcmVkX2ludml0ZS96dC04bGJvdzczci1TS0FLejYxVmRhb35fckdmOTFwY3N3KQoKTG9vcEJhY2sgbWFrZXMgaXQgZWFzeSB0byBidWlsZCBtb2Rlcm4gYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBjb21wbGV4CmludGVncmF0aW9ucy4KCi0gRmFzdCwgc21hbGwsIHBvd2VyZnVsLCBleHRlbnNpYmxlIGNvcmUKLSBHZW5lcmF0ZSByZWFsIEFQSXMgd2l0aCBhIHNpbmdsZSBjb21tYW5kCi0gRGVmaW5lIHlvdXIgZGF0YSBhbmQgZW5kcG9pbnRzIHdpdGggT3BlbkFQSQotIE5vIG1haW50ZW5hbmNlIG9mIGdlbmVyYXRlZCBjb2RlCgojIyBTdGF0dXM6IEdlbmVyYWwgQXZhaWxhYmlsaXR5CgpMb29wQmFjayA0IEdBIChHZW5lcmFsIEF2YWlsYWJpbGl0eSkgaGFzIGJlZW4gcmVsZWFzZWQgaW4gT2N0b2JlciAyMDE4LCByZWFkCm1vcmUgaW4gW3RoZSBhbm5vdW5jZW1lbnQgcG9zdF0oaHR0cDovL3N0cm9uZ2xvb3AuY29tL3N0cm9uZ2Jsb2cvbG9vcGJhY2stNC1nYSkuCgpUaGUgZG9jdW1lbnRhdGlvbiB3ZWJzaXRlIGlzIGh0dHBzOi8vbG9vcGJhY2suaW8vZG9jL2VuL2xiNC8uCgpMZWFybiBhYm91dCB0aGUgbGF0ZXN0IGFuZCBncmVhdGVzdApbZmVhdHVyZXMgYW5kIHRlY2hub2xvZ2llcyBpbiBMb29wQmFjayA0XShodHRwczovL2xvb3BiYWNrLmlvL2RvYy9lbi9sYjQvQ3JhZnRpbmctTG9vcEJhY2stNC5odG1sKQpieSB1c2luZyBpdCBmb3IgeW91ciBuZXh0IHByb2plY3QuIFN0YXJ0IGJ5IGhhdmluZyBhIGxvb2sgYXQKW0dldHRpbmcgU3RhcnRlZF0oaHR0cHM6Ly9sb29wYmFjay5pby9kb2MvZW4vbGI0L0dldHRpbmctc3RhcnRlZC5odG1sKS4KCkNoZWNrIHRoZSBbQVBJIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbG9vcGJhY2suaW8vZG9jL2VuL2xiNC9hcGlkb2NzLmluZGV4Lmh0bWwpCmZvciBhbGwgdGhlIEFQSSB1c2FnZXMgaW4gZWFjaCBwYWNrYWdlLgoKIyMjIExvbmcgVGVybSBTdXBwb3J0CgpXZSBkb24ndCBwcm92aWRlIGFueSBMVFMgdmVyc2lvbiBmb3IgTG9vcEJhY2sgNCB5ZXQuIFBsZWFzZSBqb2luIHRoZSBkaXNjdXNzaW9uCmluIFtsb29wYmFjay1uZXh0IzQzOThdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb29wYmFja2lvL2xvb3BiYWNrLW5leHQvaXNzdWVzLzQzOTgpCmlmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBhIHZlcnNpb24gdGhhdCdzIGxlc3MgZnJlcXVlbnRseSBjaGFuZ2VkLgoKfCBWZXJzaW9uICAgIHwgU3RhdHVzICAgICAgfCBQdWJsaXNoZWQgfCBFT0wgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IExvb3BCYWNrIDQgfCBDdXJyZW50ICAgICB8IE9jdCAyMDE4ICB8IEFwciAyMDI2IF8obWluaW11bSlfIHwKfCBMb29wQmFjayAzIHwgRW5kLW9mLUxpZmUgfCBEZWMgMjAxNiAgfCBEZWMgMjAyMCAgICAgICAgICAgICB8CnwgTG9vcEJhY2sgMiB8IEVuZC1vZi1MaWZlIHwgSnVsIDIwMTQgIHwgQXByIDIwMTkgICAgICAgICAgICAgfAoKUGxlYXNlIHJlZmVyIHRvIG91cgpbTG9uZyBUZXJtIFN1cHBvcnQgUG9saWN5XShodHRwczovL2xvb3BiYWNrLmlvL2RvYy9lbi9jb250cmliL0xvbmctdGVybS1zdXBwb3J0Lmh0bWwpCmZvciBtb3JlIGRldGFpbHMuCgojIyBJbnN0YWxsYXRpb24KCk1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIGluc3RhbGxlZDoKCnwgUGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2lvbi8tcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExpbmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOb3RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgW05vZGUuanNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9kb3dubG9hZC8pIHwgTWFpbnRlbmFuY2UgTFRTIChfdjE2XykgPGJyLz4gQWN0aXZlIExUUyAoX3YxOF8pIDxici8+IEN1cnJlbnQgKF92MjBfKSB8IGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9hYm91dC9yZWxlYXNlcy8gfCA8c3BhbiBzdHlsZT0iY29sb3I6IHllbGxvdzsiPlRoZSB1c2Ugb2YgdGhlIGN1cnJlbnQgdmVyc2lvbiBmb3IgcHJvZHVjdGlvbiBpcyBub3QgcmVjb21tZW5kZWQ8L3NwYW4+LiB8CgpZb3UgY2FuIGdlbmVyYXRlIGEgcHJvamVjdCB3aXRoIG91ciBnZW5lcmF0b3Igb3Igd2l0aCB0aGUgQ0xJIGFzIGZvbGxvd3M6CgpgYGBzaGVsbApucG0gY3JlYXRlIGxvb3BiYWNrCm5weCAtcCBAbG9vcGJhY2svY2xpIGxiIGFwcApgYGAKClRvIGNyZWF0ZSB5b3VyIGZpcnN0IExvb3BCYWNrIDQgYXBwbGljYXRpb24sIHNlZQpbR2V0dGluZyBTdGFydGVkXShodHRwOi8vbG9vcGJhY2suaW8vZG9jL2VuL2xiNC9HZXR0aW5nLXN0YXJ0ZWQuaHRtbCkuCgojIyBEb2N1bWVudGF0aW9uCgotIFtPZmZpY2lhbCBkb2N1bWVudGF0aW9uXShodHRwOi8vbG9vcGJhY2suaW8vZG9jL2VuL2xiNC8pCi0gW0FQSSBkb2N1bWVudGF0aW9uXShodHRwczovL2xvb3BiYWNrLmlvL2RvYy9lbi9sYjQvYXBpZG9jcy5pbmRleC5odG1sKQotIFtGQVFdKGh0dHA6Ly9sb29wYmFjay5pby9kb2MvZW4vbGI0L0ZBUS5odG1sKQotIFtMb29wQmFjayAzIHZzIExvb3BCYWNrIDRdKGh0dHA6Ly9sb29wYmFjay5pby9kb2MvZW4vbGI0L21pZ3JhdGlvbi1vdmVydmlldy5odG1sKQotIFtUdXRvcmlhbHNdKGh0dHA6Ly9sb29wYmFjay5pby9kb2MvZW4vbGI0L1R1dG9yaWFscy5odG1sKQotIFtFeGFtcGxlc10oaHR0cDovL2xvb3BiYWNrLmlvL2RvYy9lbi9sYjQvRXhhbXBsZXMuaHRtbCkKCiMjIENvbnRyaWJ1dGluZwoKU2VlIHRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzIHRvIGdldCB5b3Ugc3RhcnRlZDoKCi0gW0NvbnRyaWJ1dGluZyBHdWlkZWxpbmVzXSguL2RvY3MvQ09OVFJJQlVUSU5HLm1kKQotIFtNb25vcmVwbyBvdmVydmlld10oLi9kb2NzL3NpdGUvTU9OT1JFUE8ubWQpCi0gW0RldmVsb3BpbmcgTG9vcEJhY2tdKC4vZG9jcy9zaXRlL0RFVkVMT1BJTkcubWQpCgpZb3UgY2FuIGpvaW4gdGhlIHRlYW0gYnkgcG9zdGluZyBhIGNvbW1lbnQgdG8KW2lzc3VlICMxMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb29wYmFja2lvL2xvb3BiYWNrLW5leHQvaXNzdWVzLzExMCkuCgojIyMgU2VjdXJpdHkKCklmIHlvdSB0aGluayB5b3UgaGF2ZSBkaXNjb3ZlcmVkIGEgbmV3IHNlY3VyaXR5IGlzc3VlIHdpdGggYW55IExvb3BCYWNrIHBhY2thZ2UsCioqcGxlYXNlIGRvIG5vdCByZXBvcnQgaXQgb24gR2l0SHViKiouIEluc3RlYWQsIHNlbmQgYW4gZW1haWwgdG8KW3NlY3VyaXR5QGxvb3BiYWNrLmlvXShtYWlsdG86c2VjdXJpdHlAbG9vcGJhY2suaW8pIHdpdGggYSBmdWxsIGRlc2NyaXB0aW9uIGFuZApzdGVwcyB0byByZXByb2R1Y2UuCgpTZWUgW1NFQ1VSSVRZLm1kXShTRUNVUklUWS5tZCkgZm9yIG1vcmUgZGV0YWlscy4KCiMjIFRlYW0KCiMjIyBQcm9qZWN0IEFyY2hpdGVjdAoKfCAgICAgICAgICAgICAgICAgIFJheW1vbmQgRmVuZyAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfAp8IFshW3JheW1vbmRmZW5nXV0oaHR0cDovL2dpdGh1Yi5jb20vcmF5bW9uZGZlbmcpIHwKCiMjIyBUZWNobmljYWwgU3RlZXJpbmcgQ29tbWl0dGVlCgp8ICAgICAgICAgICAgICAgICAgUmF5bW9uZCBGZW5nICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBEaWFuYSBMYXUgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBNYXJpbyBFc3RyYWRhICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIFJpZmEgQWNocmluemEgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgRnJhbmNpc2NvIEJ1Y2V0YSAgICAgICAgICAgICAgfCAgICAgICAgICAgIFNhbWFycGFuIEJoYXR0YWNoYXJ5YSAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwKfCBbIVtyYXltb25kZmVuZ11dKGh0dHA6Ly9naXRodWIuY29tL3JheW1vbmRmZW5nKSB8IFshW2RobWxhdV1dKGh0dHA6Ly9naXRodWIuY29tL2RobWxhdSkgfCBbIVttYXJpb2VzdHJhZGFyb3NhXV0oaHR0cHM6Ly9naXRodWIuY29tL21hcmlvZXN0cmFkYXJvc2EpIHwgWyFbYWNocmluemFdXShodHRwczovL2dpdGh1Yi5jb20vYWNocmluemEpIHwgWyFbZnJidWNldGFdXShodHRwczovL2dpdGh1Yi5jb20vZnJidWNldGEpIHwgWyFbc2FtYXJwYW5CXV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbWFycGFuQikgfAoKIyMjIE90aGVyIFByb2plY3QgTWFpbnRhaW5lcnMKCnwgICAgICAgICAgICAgICAgIE5vcmEgQWJkZWxnYWRpciAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBNYXR0aGV3IFNjaG5lZSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIEhhZ2UgWWFhcGEgICAgICAgICAgICAgICAgICAgIHwKfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfAp8IFshW25hYmRlbGdhZGlyXV0oaHR0cHM6Ly9naXRodWIuY29tL25hYmRlbGdhZGlyKSB8ICBbIVttc2NobmVlXV0oaHR0cHM6Ly9naXRodWIuY29tL21zY2huZWUpICB8IFshW2hhY2tzcGFycm93XV0oaHR0cHM6Ly9naXRodWIuY29tL2hhY2tzcGFycm93KSB8CnwgICAgICAgICAgICAgICAgICAqKkFnbmVzIExpbioqICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICoqTWFkYWt5KiogICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICoqSHVnbyBEYSBSb2l0KiogICAgICAgICAgICAgICAgIHwKfCAgICBbIVthZ25lczUxMl1dKGh0dHBzOi8vZ2l0aHViLmNvbS9hZ25lczUxMikgICAgfCAgIFshW21hZGFreV1dKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWRha3kpICAgfCAgICAgICAgWyFbeWF0eV1dKGh0dHBzOi8vZ2l0aHViLmNvbS95YXR5KSAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgKipOaWNvIEZsYWlnKiogICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICoqRGVubnkgQmFydGVsdCoqICAgICAgICAgICAgICB8ICAgICAgICAgICAgICoqRG91Z2xhcyBNY0Nvbm5hY2hpZSoqICAgICAgICAgICAgICB8CnwgICAgICBbIVtuZmxhaWddXShodHRwczovL2dpdGh1Yi5jb20vbmZsYWlnKSAgICAgIHwgIFshW2RlcmRla2FdXShodHRwczovL2dpdGh1Yi5jb20vZGVyZGVrYSkgIHwgICAgWyFbZG91Z2FsODNdXShodHRwczovL2dpdGh1Yi5jb20vZG91Z2FsODMpICAgIHwKfCAgICAgICAgICAgICoqU2FtYXJwYW4gQmhhdHRhY2hhcnlhKiogICAgICAgICAgICAgfCAgICAgICAgICAgICAqKk11aGFtbWFkIEFhcWlsKiogICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgWyFbc2FtYXJwYW5CXV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbWFycGFuQikgICB8IFshW2FhcWlsbml6XV0oaHR0cHM6Ly9naXRodWIuY29tL2FhcWlsbml6KSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgpTZWUKW2FsbCBjb250cmlidXRvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb29wYmFja2lvL2xvb3BiYWNrLW5leHQvZ3JhcGhzL2NvbnRyaWJ1dG9ycykuCgojIyMgQWx1bW5pCgotIFtAcml0Y2hdKGh0dHA6Ly9naXRodWIuY29tL3JpdGNoKQotIFtAc3VwZXJraGF1XShodHRwczovL2dpdGh1Yi5jb20vc3VwZXJraGF1KQotIFtAcmFzaG1paHVudF0oaHR0cHM6Ly9naXRodWIuY29tL3Jhc2htaWh1bnQpCi0gW0BramRlbGlzbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ramRlbGlzbGUpCi0gW0B2aXJrdDI1XShodHRwczovL2dpdGh1Yi5jb20vdmlya3QyNSkKLSBbQHNoaW1rc10oaHR0cHM6Ly9naXRodWIuY29tL3NoaW1rcykKLSBbQGItYWRtaWtlXShodHRwczovL2dpdGh1Yi5jb20vYi1hZG1pa2UpCi0gW0BkZWVwYWtya3Jpc10oaHR0cHM6Ly9naXRodWIuY29tL2RlZXBha3JrcmlzKQotIFtAYmFqdG9zXShodHRwOi8vZ2l0aHViLmNvbS9iYWp0b3MpCi0gW0BqYW5ueWhvdV0oaHR0cDovL2dpdGh1Yi5jb20vamFubnlIb3UpCi0gW0BlbW9uZGRyXShodHRwczovL2dpdGh1Yi5jb20vZW1vbmRkcikKCiMjIExpY2Vuc2UKCltNSVRdKExJQ0VOU0UpCgpbcmF5bW9uZGZlbmddOiBodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU0MDg5Mj92PTMmcz02MApbcml0Y2hdOiBodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ2MjIyOD92PTMmcz02MApbZGhtbGF1XTogaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTQ4OTg5Nz92PTMmcz02MApbamFubnlob3VdOiBodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNTU0MTUzP3Y9MyZzPTYwCltoYWNrc3BhcnJvd106IGh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTUwMTEyP3Y9MyZzPTYwCltuYWJkZWxnYWRpcl06IGh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDI5ODU3NDk/dj0zJnM9NjAKW21hcmlvZXN0cmFkYXJvc2FdOiBodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ2MzM4MjM/dj0zJnM9NjAKW3lhdHldOiBodHRwczovL2F2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExOTgxODAzP3Y9MyZzPTYwCltlbW9uZGRyXTogaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS82ODY0NzM2Pz92PTMmcz02MApbYWduZXM1MTJdOiBodHRwczovL2F2YXRhcnMzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUwMzMxNzk2P3Y9MyZzPTYwCltkZWVwYWtya3Jpc106IGh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzY4ODMxNT92PTMmcz02MApbZGVyZGVrYV06IGh0dHBzOi8vYXZhdGFyczMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM2NDAxNjY/dj0zJnM9NjAKW2RvdWdhbDgzXTogaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNzM1ODgxP3Y9MyZzPTYwClthY2hyaW56YV06IGh0dHBzOi8vYXZhdGFyczMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjUxNDc4OTk/dj0zJnM9NjAKW2ZyYnVjZXRhXTogaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzgyMjQzOD92PTQmcz02MApbbXNjaG5lZV06IGh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM3NTMxNj92PTQmcz02MApbbWFkYWt5XTogaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzE3Mjk4OT92PTQmcz02MApbbmZsYWlnXTogaHR0cHM6Ly9hdmF0YXJzMy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODQzNjIyND92PTQmcz02MApbc2FtYXJwYW5iXTogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEzNjIwNDM1P3Y9NCZzPTYwClthYXFpbG5pel06IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTgwMjkwNj92PTQmcz02MAo= readmeEtag: '"9236cb3118da2b185d6df3b540e7aaf8f7e3bd5e"' readmeLastModified: Wed, 14 Aug 2024 18:25:18 GMT repositoryId: 78452015 description: >- LoopBack makes it easy to build modern API applications that require complex integrations. created: '2017-01-09T17:27:14Z' updated: '2024-09-05T13:50:36Z' language: TypeScript archived: false stars: 4922 watchers: 136 forks: 1060 owner: loopbackio logo: https://avatars.githubusercontent.com/u/22173486?v=4 license: NOASSERTION repoEtag: '"85caf114b85b93970de5f9092b8ca3534614a98bb86c62df83a5c49302278842"' repoLastModified: Thu, 05 Sep 2024 13:50:36 GMT foundInMaster: true id: 9132c25ad468bed25b9dbbe3a352abc2 v3: true oldLocations: - https://github.com/strongloop/loopback-next - source: https://openapi.tools/ name: Karate-IDE category: - Converters - Testing - Mock link: https://marketplace.visualstudio.com/items?itemName=KarateIDE.karate-ide repository: https://github.com/zenwave360/karate-ide language: VSCode Extension source_description: >- Generates KarateDSL Tests and Mocks from OpenAPI 3.0 documents and so you can quickly test/explore your API. v3: true v3_1: false id: 3f0c3a748d56c96cc857afa94b46a9e7 repositoryMetadata: base64Readme: >- IyBLYXJhdGUgSURFCgo+IEFmdGVyIG9uZSB5ZWFyICoqS2FyYXRlSURFIGhhdmUgcmVhY2hlZCBWZXJzaW9uIDEuMC4wKiouCj4gVGhlIGJlc3QgdXNlciBleHBlcmllbmNlIGZvciBLYXJhdGVEU0wsIGJ5IGZhciEhCgpLYXJhdGVJREUgaXM6CgotICAgQSAqKlRlc3QgUnVubmVyL0RlYnVnZ2VyKiogYW5kICoqUkVTVCBDbGllbnQqKiB0aGF0IHVzZXMgW0thcmF0ZURTTF0oaHR0cHM6Ly9naXRodWIuY29tL2thcmF0ZWxhYnMva2FyYXRlKSB0byBleHBsb3JlIHlvdXIgQVBJLCBpbXBvcnQvZXhwb3J0IGZyb20gY1VSTCBhbmQgZ2VuZXJhdGUgdGVzdHMvbW9ja3MgZnJvbSBPcGVuQVBJLgotICAgKipPcGVuQVBJIEdlbmVyYXRvcioqIHRoYXQgZ2VuZXJhdGVzOgogICAgLSAgICoqS2FyYXRlIFRlc3RzKiogeW91IGNhbiBpbW1lZGlhdGVseSBydW4sIHdpdGggdmFsaWRhdGlvbiwgaW5saW5lIHBheWxvYWQgZXhhbXBsZXMgYW5kIHNjZW5hcmlvIG91dGxpbmVzIGZvciBlYWNoIHJlc3BvbnNlIGNvZGUgb2YgeW91ciBBUEkuCiAgICAtICAgKipTdGF0ZWZ1bCBNb2NrcyoqOiBjb21iaW5pbmcgT3BlbkFQSSBzY2hlbWFzIGZvciB2YWxpZGF0aW9uIGFuZCBleGFtcGxlcyB0byBsb2FkIG1vY2sgZGF0YXNldHMuCiAgICAtICAgKipNb2NrIFZhbGlkYXRpb24gVGVzdHMqKjogc2ltcGxlciB0ZXN0cyB0byB2YWxpZGF0ZSB5b3VyIG1vY2tzLgogICAgLSAgICoqQnVzaW5lc3MgRmxvdyBUZXN0cyoqOiB5b3UgY2FuIGV2ZW4gZ2VuZXJhdGUgdGVzdHMgdGhhdCBzcGFucyBtdWx0aXBsZSBBUEkgY2FsbHMgcmV1c2luZyBnZW5lcmF0ZWQga2FyYXRlIHRlc3RzCgpLYXJhdGVJREUgaXMgYnkgZmFyIHRoZSBiZXN0IHVzZXIgZXhwZXJpZW5jZSBmb3IgS2FyYXRlRFNMIGFuZCBDb250cmFjdCBUZXN0aW5nISEKCkdldHRpbmcgU3RhcnRlZDoKCi0gICBba2FyYXRlLW9wZW5hcGktcGV0c3RvcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9aZW5XYXZlMzYwL2thcmF0ZS1vcGVuYXBpLXBldHN0b3JlLmdpdCkgY29tcGFuaW9uIHByb2plY3QgZm9yIGEgY29tcGxldGUgZXhhbXBsZSB3aXRoIGF1dG8tZ2VuZXJhdGVkIHRlc3RzLCBtb2NrcywgYnVzaW5lc3MgZmxvdyB0ZXN0cyBhbmQgSlVuaXQgdGVzdHMuCi0gICBLYXJhdGVJREUgW0NsYXNzcGF0aCBDb25maWd1cmF0aW9uXSgja2FyYXRlLWNsYXNzcGF0aCkgc2VjdGlvbiwgZm9yIGNvbmZpZ3VyaW5nIHRoaXMgdnNjb2RlIGV4dGVuc2lvbi4KLSAgIFdhdGNoIEdlbmVyYXRpbmcgS2FyYXRlRFNMIHRlc3RzIGZyb20gT3BlbkFQSSBkZWZpbml0aW9uCgpbIVtLYXJhdGVJREU6IEdlbmVyYXRlIEthcmF0ZURTTCBUZXN0cyBmcm9tIE9wZW5BUEkgaW4gVlNDb2RlXShyZXNvdXJjZXMvc2NyZWVuc2hvdHMvZ2VuZXJhdGluZy10ZXN0cy1mcm9tLW9wZW5hcGkteW91dHViZS1lbWJlZC5wbmcpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXBZeVJ2bHk0Y0c4KQoKSWYgeW91IGFyZSBpbnRlcmVzdGVkIG9uIGEgZGVlcCBkaXZlIGludG8gQ29udHJhY3QgVGVzdGluZyB3aXRoIEthcmF0ZURTTCwgY2hlY2tvdXQ6CgotICAgW0Zyb20gTWFudWFsIHRvIENvbnRyYWN0IFRlc3Rpbmcgd2l0aCBLYXJhdGVEU0wgYW5kIEthcmF0ZUlERV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BpdmFuZ3NhL2Zyb20tbWFudWFsLXRvLWNvbnRyYWN0LXRlc3Rpbmctd2l0aC1rYXJhdGVkc2wtYW5kLWthcmF0ZWlkZS1pLTU4ODRmMTczMjY4MCkgd2hpdGUgcGFwZXIgaW4gTWVkaXVtICgxNSBtaW4gcmVhZCkKLSAgIFtIaWdoIEZpZGVsaXR5IFN0YXRlZnVsIE1vY2tzIChDb25zdW1lciBDb250cmFjdHMpIHdpdGggT3BlbkFQSSBhbmQgS2FyYXRlRFNMXShodHRwczovL21lZGl1bS5jb20vQGl2YW5nc2EvaGlnaC1maWRlbGl0eS1zdGF0ZWZ1bC1tb2Nrcy1jb25zdW1lci1jb250cmFjdHMtd2l0aC1vcGVuYXBpLWFuZC1rYXJhdGVkc2wtODVhN2YzMWNmODRlKSBNZWRpdW0gYXJ0aWNsZSAoMTAgbWluIHJlYWQpLgoKPCEtLSBUT0MgLS0+CgotIFtLYXJhdGUgSURFXSgja2FyYXRlLWlkZSkKICAtIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQogICAgLSBbQmxhemluZyBGYXN0IHRlc3RzIFN0YXJ0dXBdKCNibGF6aW5nLWZhc3QtdGVzdHMtc3RhcnR1cCkKICAgIC0gW0dlbmVyYXRlIEthcmF0ZSBUZXN0cyBmcm9tIE9wZW5BUEkgZGVmaW5pdGlvbnNdKCNnZW5lcmF0ZS1rYXJhdGUtdGVzdHMtZnJvbS1vcGVuYXBpLWRlZmluaXRpb25zKQogICAgLSBbR2VuZXJhdGUgU3RhdGVmdWwgTW9ja3MgYW5kIFN0YXJ0IHRoZW0gZnJvbSB0aGUgRWRpdG9yIChvciBUZXN0cyBFeHBsb3JlciBzaWRlIGJhcildKCNnZW5lcmF0ZS1zdGF0ZWZ1bC1tb2Nrcy1hbmQtc3RhcnQtdGhlbS1mcm9tLXRoZS1lZGl0b3Itb3ItdGVzdHMtZXhwbG9yZXItc2lkZS1iYXIpCiAgICAtIFtHZW5lcmF0ZSBTaW1wbGVyIFRlc3RzIGZvciBNb2NrIFZhbGlkYXRpb25dKCNnZW5lcmF0ZS1zaW1wbGVyLXRlc3RzLWZvci1tb2NrLXZhbGlkYXRpb24pCiAgICAtIFtHZW5lcmF0ZSBUZXN0cyB0aGF0IHNwYW5zIG11bHRpcGxlIEFQSSBjYWxscyBzaW11bGF0aW5nIEJ1c2luZXNzIEZsb3dzXSgjZ2VuZXJhdGUtdGVzdHMtdGhhdC1zcGFucy1tdWx0aXBsZS1hcGktY2FsbHMtc2ltdWxhdGluZy1idXNpbmVzcy1mbG93cykKICAgIC0gW0dlbmVyYXRlIEthcmF0ZSBQcm9qZWN0XSgjZ2VuZXJhdGUta2FyYXRlLXByb2plY3QpCiAgICAtIFtTbWFydFBhc3RlIHNhbXBsZSBwYXlsb2FkIGludG8gbmV3IGZpbGVzIGluIHNjZW5hcmlvIG91dGxpbmUgZXhhbXBsZXNdKCNzbWFydHBhc3RlLXNhbXBsZS1wYXlsb2FkLWludG8tbmV3LWZpbGVzLWluLXNjZW5hcmlvLW91dGxpbmUtZXhhbXBsZXMpCiAgICAtIFtNYW55IG9wdGlvbnMgdG8gZXhwbG9yZSB5b3VyIGxvZ3MgYW5kIHJlc3BvbnNlIHBheWxvYWRzXSgjbWFueS1vcHRpb25zLXRvLWV4cGxvcmUteW91ci1sb2dzLWFuZC1yZXNwb25zZS1wYXlsb2FkcykKICAgIC0gW1JlcGxhY2luZyBvbGQgVGVzdHMgRXhwbG9yZXIgd2l0aCBuYXRpdmUgX1Rlc3QgQVBJXyBmcm9tIFZTQ29kZV0oI3JlcGxhY2luZy1vbGQtdGVzdHMtZXhwbG9yZXItd2l0aC1uYXRpdmUtdGVzdC1hcGktZnJvbS12c2NvZGUpCiAgICAtIFtBdXRvIENvbmZpZ3VyYXRpb25dKCNhdXRvLWNvbmZpZ3VyYXRpb24pCiAgICAtIFtPcGVuQVBJIHNjaGVtYXMgYW5kIGV4YW1wbGVzIG1lZXRzIEthcmF0ZSBNb2Nrc10oI29wZW5hcGktc2NoZW1hcy1hbmQtZXhhbXBsZXMtbWVldHMta2FyYXRlLW1vY2tzKQogICAgLSBbRGVidWcgS2FyYXRlIFNjcmlwdHNdKCNkZWJ1Zy1rYXJhdGUtc2NyaXB0cykKICAtIFtDb25maWd1cmF0aW9uIE9wdGlvbnNdKCNjb25maWd1cmF0aW9uLW9wdGlvbnMpCiAgICAtIFsudnNjb2RlL2xhdW5jaC5qc29uXSgjdnNjb2RlbGF1bmNoanNvbikKICAgIC0gW0thcmF0ZSBjbGFzc3BhdGhdKCNrYXJhdGUtY2xhc3NwYXRoKQogICAgICAtIFtNYW51YWwgY29uZmlndXJhdGlvbjogVXNpbmcga2FyYXRlLmphciAoS2FyYXRlIGZhdCBqYXIpXSgjbWFudWFsLWNvbmZpZ3VyYXRpb24tdXNpbmcta2FyYXRlamFyLWthcmF0ZS1mYXQtamFyKQogICAgICAtIFtNYW51YWwgY29uZmlndXJhdGlvbjogVXNpbmcgbWF2ZW4gcmVwb3NpdG9yeSBkZXBlbmRlbmNpZXNdKCNtYW51YWwtY29uZmlndXJhdGlvbi11c2luZy1tYXZlbi1yZXBvc2l0b3J5LWRlcGVuZGVuY2llcykKICAgIC0gW1J1bi9EZWJ1ZyBjb21tYW5kIHRlbXBsYXRlc10oI3J1bmRlYnVnLWNvbW1hbmQtdGVtcGxhdGVzKQogICAgLSBbTXVsdGltb2R1bGUgcHJvamVjdHNdKCNtdWx0aW1vZHVsZS1wcm9qZWN0cykKICAtIFtPdGhlciBmdW5jdGlvbmFsaXR5XSgjb3RoZXItZnVuY3Rpb25hbGl0eSkKICAgIC0gW0thcmF0ZS5lbnYgc3dpdGNoZXIsIEthcmF0ZSBPcHRpb25zIGFuZCBNb2NrU2VydmVyIE9wdGlvbnNdKCNrYXJhdGVlbnYtc3dpdGNoZXIta2FyYXRlLW9wdGlvbnMtYW5kLW1vY2tzZXJ2ZXItb3B0aW9ucykKICAgIC0gW1NtYXJ0UGFzdGUgZnJvbSBjVVJMIGluIEthcmF0ZSBmaWxlc10oI3NtYXJ0cGFzdGUtZnJvbS1jdXJsLWluLWthcmF0ZS1maWxlcykKICAgIC0gW0NvZGUgTmF2aWdhdGlvbiBhbmQgRGVmaW5pdGlvbiBQZWVrXSgjY29kZS1uYXZpZ2F0aW9uLWFuZC1kZWZpbml0aW9uLXBlZWspCiAgICAtIFtBdXRvLUNvbXBsZXRpb25dKCNhdXRvLWNvbXBsZXRpb24pCiAgICAtIFtLaWxsIHZzY29kZS5LYXJhdGVUZXN0UHJvY2VzcyBjb21tYW5kXSgja2lsbC12c2NvZGVrYXJhdGV0ZXN0cHJvY2Vzcy1jb21tYW5kKQoKPCEtLSAvVE9DIC0tPgoKIyMgRmVhdHVyZXMKCiMjIyBCbGF6aW5nIEZhc3QgdGVzdHMgU3RhcnR1cAoKU2F2ZSBhIGZldyBzZWNvbmRzIG9uIGVhY2ggdGVzdCBzdGFydHVwIHRpbWUuIFdpdGggYHZzY29kZS5LYXJhdGVUZXN0UHJvY2Vzc2Agd2UgcmV1c2UgdGhlIGphdmEgcHJvY2VzcyBmb3IgcnVubmluZyB5b3VyIEthcmF0ZSB0ZXN0cyBhbmQgZGVidWdnaW5nIHNlc3Npb25zLgoKV2hpbGUgZGV2ZWxvcGluZywgZGVidWdnaW5nIGFuZCBtYW51YWwgZXhwbG9yaW5nIHlvdXIgQVBJcyBzYXZpbmcgYSBmZXcgc2Vjb25kcyBvbiBlYWNoIHJ1biBtYWtlcyBhIGh1Z2UgZGlmZmVyZW5jZSEhCgohW0thcmF0ZS1JREVdKHJlc291cmNlcy9zY3JlZW5zaG90cy9LYXJhcmVJREUtQmxhemluZy1GYXN0LmdpZikKCioqUGxlYXNlIE5vdGU6KiogdGhhdCBjbGFzc3BhdGggcmVzb3VyY2VzIGxpa2UgY29tcGlsZWQgamF2YSBjbGFzc2VzIChhbmQgYWxzbyBsb2diYWNrLnhtbCkgYXJlIGNhY2hlZCBieSB0aGlzIGphdmEgcHJvY2Vzcy4gSWYgeW91IG5lZWQgdG8gcmVmcmVzaCBhbnkgb2YgdGhvc2UgY2FjaGVkIHJlc291Y2VzIGp1c3QgcnVuIGBLYXJhdGVJREU6IFN0b3AvS2lsbCBLYXJhdGUgVGVzdHMvRGVidWcgUHJvY2Vzc2AgZnJvbSBjb21tYW5kIHBhbGV0dGUuCgpJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbnkgdHJvdWJsZSBvciB3YW50IHRvIHJvbGxiYWNrIHRvIHN0YW5kYXJkIHByb2Nlc3MganVzdCBzZXQgYGthcmF0ZUlERS5rYXJhdGVDbGkudXNlS2FyYXRlVGVzdFNlcnZlcmAgc2V0dGluZyB0byBgZmFsc2VgLgoKIyMjIEdlbmVyYXRlIEthcmF0ZSBUZXN0cyBmcm9tIE9wZW5BUEkgZGVmaW5pdGlvbnMKCllvdSBjYW4gZ2VuZXJhdGUgS2FyYXRlIHRlc3RzIGZyb20gT3BlbkFQSSBkZWZpbml0aW9ucyBpbmNsdWRpbmcgb25lIGZlYXR1cmUgcGVyIE9wZW5BUEkgZW5kcG9pbnQuIEVhY2ggZmVhdHVyZSBpbmNsdWRlcyBmb3VyIHNjZW5hcmlvczogb25lIGZvciB2YWxpZGF0aW9uLCBvbmUgZm9yIGh0dHAgY2FsbCwgb25lIGlubGluZSBleGFtcGxlIHBheWxvYWQgeW91IGNhbiBlZGl0IGFuZCBydW4gaW1tZWRpYXRlbHkgYW5kIG9uZSBzY2VuYXJpbyBvdXRsaW5lIGZvciBlYWNoIHJlc3BvbnNlIGNvZGUuCgohW0thcmF0ZS1JREVdKHJlc291cmNlcy9zY3JlZW5zaG90cy9LYXJhdGVJREUtR2VuZXJhdGUtVGVzdHMuZ2lmKQoKVGhpcyBpcyBob3cgb25lIGF1dG9nZW5lcmF0ZWQgZmVhdHVyZSBsb29rcyBsaWtlOgoKIVtLYXJhdGUtSURFXShyZXNvdXJjZXMvc2NyZWVuc2hvdHMvYWRkUGV0LmZlYXR1cmUucG5nKQoKIyMjIEdlbmVyYXRlIFN0YXRlZnVsIE1vY2tzIGFuZCBTdGFydCB0aGVtIGZyb20gdGhlIEVkaXRvciAob3IgVGVzdHMgRXhwbG9yZXIgc2lkZSBiYXIpCgpZb3UgY2FuIGdlbmVyYXRlIHN0YXRlZnVsIG1vY2tzIGZyb20gT3BlbkFQSSBkZWZpbml0aW9uczoKCiFbS2FyYXRlLUlERV0ocmVzb3VyY2VzL3NjcmVlbnNob3RzL0thcmF0ZUlERS1HZW5lcmF0ZS1Nb2Nrcy5naWYpCgojIyMgR2VuZXJhdGUgU2ltcGxlciBUZXN0cyBmb3IgTW9jayBWYWxpZGF0aW9uCgpWYWxpZGF0ZSB5b3VyIG1vY2tzIHdpdGggYSBzZXQgb2Ygc2ltcGxlIGdlbmVyYXRlZCBLYXJhdGUgVGVzdHMuIEJlY2F1c2Ugd2UgZGVsZWdhdGUgcGF5bG9hZCB2YWxpZGF0aW9uIHRvIFtaZW5XYXZlIEFwaU1vY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9aZW5XYXZlMzYwL3plbndhdmUtYXBpbW9jaykgT3BlbkFQSSB3cmFwcGVyIHRoZXNlIHRlc3RzIGFyZSBtdWNoIHNpbXBsZXIgdGhhbiByZWd1bGFyIEUyRSB0ZXN0cy4KCllvdSBzaG91bGQgYWxzbyB2YWxpZGF0ZSB5b3VyIGxpdmUgQVBJIHdpdGggdGhpcyBzYW1lIHNldCBvZiB0ZXN0cyB0byBtYWtlIHN1cmUgeW91ciBtb2NrcyBhcmUgd29ya2luZyBhcyBleHBlY3RlZC4gU2VlIFtWZXJpZnlNb2Nrc1Rlc3QuamF2YV0oaHR0cHM6Ly9naXRodWIuY29tL1plbldhdmUzNjAva2FyYXRlLW9wZW5hcGktcGV0c3RvcmUvYmxvYi9tYXN0ZXIvc3JjL3Rlc3QvamF2YS9jb20vcGV0c3RvcmUva2FyYXRlL1ZlcmlmeU1vY2tzVGVzdC5qYXZhKSBmb3IgYSBKVW5pdCBleGFtcGxlIHlvdSBjYW4gdXNlIGluIHlvdXIgcGlwZWxpbmUuCgpUaGlzIGlzIGhvdyB5b3UgY2FuIGdlbmVyYXRlIHRoZW0gZnJvbSB5b3VyIE9wZW5BUEkgZGVmaW5pdGlvbjoKCiFbS2FyYXRlLUlERV0ocmVzb3VyY2VzL3NjcmVlbnNob3RzL0thcmF0ZUlERS1WYWxpZGF0ZS1Nb2Nrcy5naWYpCgojIyMgR2VuZXJhdGUgVGVzdHMgdGhhdCBzcGFucyBtdWx0aXBsZSBBUEkgY2FsbHMgc2ltdWxhdGluZyBCdXNpbmVzcyBGbG93cwoKQW5kIHllcywgeW91IGNhbiByZXVzZSB0aGVzZSBrYXJhdGUgZmVhdHVyZXMsIGdlbmVyYXRlZCBmcm9tIE9wZW5BUEksIGFuZCBjb21wb3NlIEJ1c2luZXNzIEZsb3cgdGVzdHMgd2l0aCB0aGVtLiBKdXN0IHNlbGVjdCBpbiBvcmRlciB0aGUgQVBJIGNhbGxzIHlvdSB3YW50IHRvIGNoYWluIGFuZCBSaWdodC1DbGljayB0byBzZWxlY3QgIkthcmF0ZUlERSBHZW5lcmF0ZSBCdXNpbmVzcyBGbG93IFRlc3RzIjoKCiFbS2FyYXRlLUlERV0ocmVzb3VyY2VzL3NjcmVlbnNob3RzL0thcmF0ZUlERS1HZW5lcmF0ZS1CdXNpbmVzc0Zsb3dUZXN0LmdpZikKClRoaXMgaXMgaG93IGFuIGF1dG9nZW5lcmF0ZWQgQ1JVRCB0ZXN0cyBsb29rcyBsaWtlICh3aXRoIHBheWxvYWRzIGNvbGxhcHNlZCBmb3Igc2ltcGxpY2l0eSkuIE5vdyB5b3Ugb25seSBuZWVkIGVkaXQgaG93IHlvdXIgZGF0YSBpcyBjaGFpbmVkIGZyb20gb25lIGNhbGwgdG8gdGhlIG90aGVyIChzZWUgYWxzbyBbUGV0Q1JVRC5mZWF0dXJlXShodHRwczovL2dpdGh1Yi5jb20vWmVuV2F2ZTM2MC9rYXJhdGUtb3BlbmFwaS1wZXRzdG9yZS9ibG9iL21hc3Rlci9zcmMvdGVzdC9yZXNvdXJjZXMvYXBpcy9QZXRBcGkvUGV0Q1JVRC5mZWF0dXJlKSBmb3IgaG93IGEgY29tcGxldGUgd29ya2luZyBleGFtcGxlIGNvbXBhcmVzIHRvIHRoaXMgb25lKToKCiFbS2FyYXRlLUlERV0ocmVzb3VyY2VzL3NjcmVlbnNob3RzL0NSVUQucG5nKQoKIyMjIEdlbmVyYXRlIEthcmF0ZSBQcm9qZWN0CgpJZiB5b3UgYXJlIHN0YXJ0aW5nIGZyb20gc2NyYXRjaCB5b3UgY2FuIGdlbmVyYXRlIGEgZnJlc2gga2FyYXRlIHByb2plY3QgYmFzZSBsaW5lOiB3aXRoIHBvbS54bWwsIGthcmF0ZS1jb25maWcuanMsIGVudmlyb25tZW50IHNwZWNpZmljIGFuZCBjcmVkZW50aWFscyBjb25maWcgZmlsZXMuLi4KCkp1c3QgcnVuIGBLYXJhdGVJREU6IEdlbmVyYXRlIEthcmF0ZSBQcm9qZWN0YCBmcm9tIFZpZXcgPiBDb21tYW5kIFBhbGV0dGUKCiMjIyBTbWFydFBhc3RlIHNhbXBsZSBwYXlsb2FkIGludG8gbmV3IGZpbGVzIGluIHNjZW5hcmlvIG91dGxpbmUgZXhhbXBsZXMKCkNvcHkgc2FtcGxlIHBheWxvYWRzIGFuZCBwYXN0ZSB3aXRoIEN0cmwrU2hpZnQrViBpbnRvIHNjZW5hcmlvIG91dGxpbmUgZXhhbXBsZXMgcm93IF9maWxlbmFtZSBsaWtlXyBjb2x1bW4gYW5kIGFuZCBpdCB3aWxsIGNyZWF0ZSBhIG5ldyBmaWxlICsgZXhhbXBsZSByb3cgZm9yIHlvdS4KCiFbS2FyYXRlLUlERV0ocmVzb3VyY2VzL3NjcmVlbnNob3RzL0thcmF0ZUlERS1QYXN0ZS1OZXdSb3cuZ2lmKQoKIyMjIE1hbnkgb3B0aW9ucyB0byBleHBsb3JlIHlvdXIgbG9ncyBhbmQgcmVzcG9uc2UgcGF5bG9hZHMKCkthcmF0ZUlERSBvZmZlcnMgeW91IG1hbnkgb3B0aW9ucyB0byBleHBsb3JlIHlvdXIgcmVzcG9uc2UgZGF0YSBhbmQgb3V0cHV0IGxvZ3MuIFVzZSBFeGVjdXRpb25zIGFuZCBOZXR3b3JrIExvZ3MgdHJlZSB2aWV3IHRvIGV4cGxvcmUgdGhlbS4KCiFbS2FyYXRlLUlERV0ocmVzb3VyY2VzL3NjcmVlbnNob3RzL0thcmF0ZS1JREUtZGF0YS1hdC15b3VyLWZpbmdlcnByaW50cy5naWYpCgojIyMgUmVwbGFjaW5nIG9sZCBUZXN0cyBFeHBsb3JlciB3aXRoIG5hdGl2ZSBfVGVzdCBBUElfIGZyb20gVlNDb2RlCgpXaXRoIHRoZSBuZXcgVGVzdHMgQVBJLCBWaXN1YWwgU3R1ZGlvIENvZGUgc3VwcG9ydHMgcmljaGVyIGRpc3BsYXlzIG9mIG91dHB1dHMgYW5kIGRpZmZzIHRoYW4gd2FzIHByZXZpb3VzbHkgcG9zc2libGUuIFRoaXMgYnJpbmdzIGEgbG90IG9mIGdvb2RpZXMgdG8geW91ciB1c2VyIGV4cGVyaWVuY2U6CgotICAgQmV0dGVyIGxvb2tpbmcgc3RhbmRhcmQgUnVuL0RlYnVnIHNob3dpbmcgaW4gdGhlIGd1dHRlciAocmVwbGFjaW5nIG9sZCBfY29kZSBsZW5zZXNfKQotICAgVGVzdCBFeHBsb3JlciB2aWV3IGFsbG93cyB5b3UgbmF2aWdhdGUgYW5kIGZpbHRlciB0ZXN0cyBieSBuYW1lLCB0YWdzLCBzdGF0dXMsIGV0Yy4uLiBUbyBmaWx0ZXIgYnkgdGFnIHVzZSBrYXJhdGUgcHJlZml4IGluIHRoaXMgd2F5IGBAa2FyYXRlOkB5b3VydGFnYAotICAgRmFpbGluZyB0ZXN0cyBlcnJvciBtZXNzYWdlcyBhcmUgcHJlc2VudGVkIGluIG11bHRpcGxlIGFuZCB1c2VmdWwgd2F5cyAoYSB0b29sdGlwcywgaW4gdGhlIGd1dHRlciwgaW4gdGhlIHRlc3RzIGV4cGxvcmVyLi4uKQotICAgU3RhcnQgeW91ciBNb2NrIFNlcnZlciBmcm9tIEVkaXRvciBhbmQgVGVzdHMgRXhwbG9yZXIgc2lkZWJhcgoKV2UgYWxzbyBoYXZlIHJlcGxhY2VkIF9nb29kIG9sZF8gdGVybWluYWwgd2l0aCBPdXRwdXQgQ2hhbm5lbHMgZm9yIGdyZWF0ZXIgZGlzcGxheSBmbGV4aWJpbGl0eSBvZiBvdXRwdXQgbG9ncyBhbmQgcmVzcG9uc2UgcGF5bG9hZC4KCiFbS2FyYXRlLUlERV0ocmVzb3VyY2VzL3NjcmVlbnNob3RzL0FQSS1UZXN0cy1FeHBsb3Jlci5naWYpCgojIyMgQXV0byBDb25maWd1cmF0aW9uCgpZb3UgY2FuIGNvbmZpZ3VyZSB0aGlzIGV4dGVuc2lvbiBgY2xhc3NwYXRoIHNldHRpbmdgIGluc3RhbGxpbmcgW0thcmF0ZUlERSBDbGFzc3BhdGggSmFyXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9S2FyYXRlSURFLmthcmF0ZS1jbGFzc3BhdGgtamFyKSBhbmQgcnVubmluZyBgS2FyYXRlSURFOiBDb25maWd1cmUgQ2xhc3NwYXRoYCBmcm9tIENvbW1hbmQgUGFsZXR0ZSAoVmlldyA+IENvbW1hbmQgUGFsZXR0ZSBvciBDdHJsK1NoaWZ0K1ApLgoKS2FyYXRlIElERSBDbGFzc3BhdGggSmFyIHdpbGwgdXBkYXRlIGF1dG9tYXRpY2FsbHkgdG8gbGF0ZXN0IEthcmF0ZSB2ZXJzaW9uLgoKIVtLYXJhdGUtSURFXShyZXNvdXJjZXMvc2NyZWVuc2hvdHMvS2FyYXRlSmFyLWNsYXNzcGF0aC1jb25maWcuZ2lmKQoKRm9yIGZ1cnRoZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIHNlZSBbQ29uZmlndXJhdGlvbiBTZWN0aW9uXSgjY29uZmlndXJhdGlvbi1vcHRpb25zKQoKIyMjIE9wZW5BUEkgc2NoZW1hcyBhbmQgZXhhbXBsZXMgbWVldHMgS2FyYXRlIE1vY2tzCgpZb3UgY2FuIG5vdzoKCi0gICBMZXZlcmFnZSBPcGVuQVBJIHNjaGVtYXMgYW5kIGV4YW1wbGVzIGZvciByZXF1ZXN0L3Jlc3BvbnNlIHZhbGlkYXRpb24gYW5kIGRlY2xhcmF0aXZlIHN0YXRlbGVzcyBtb2Nrcy4KLSAgIFVzZSBLYXJhdGVEU0wgZm9yIHBvd2VyZnVsIHlldCBzaW1wbGUgc3RhdGVmdWwgbW9ja3MuCi0gICBVc2Ugb3BlbmFwaSBleGFtcGxlcyB0byBwb3B1bGF0ZSB5b3VyIGthcmF0ZSBtb2NrcyBpbml0aWFsIGRhdGEuCgpOYXZpZ2F0ZSB0byBbWmVuV2F2ZSBBcGlNb2NrXShodHRwczovL2dpdGh1Yi5jb20vWmVuV2F2ZTM2MC96ZW53YXZlLWFwaW1vY2spIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgdGhpcyBpbnRlZ3JhdGlvbi4KCiMjIyBEZWJ1ZyBLYXJhdGUgU2NyaXB0cwoKWW91IGNhbiBhbHNvIERlYnVnIEthcmF0ZSBzY3JpcHRzIGluc2lkZSBLYXJhdGVJREUuIEthcmF0ZSBEZWJ1ZyBTZXJ2ZXIgaXMgKipwcm92aWRlZCBieSBrYXJhdGUtY29yZSoqIGFuZCB3ZSBhcmUgYWxzbyBjb250cmlidXRvcnMgdG8uCgpZb3UgY2FuOgoKLSAgIHNldCBicmVha3BvaW50cwotICAgc3RlcC1ieS1zdGVwIGRlYnVnZ2luZwotICAgbmF2aWdhdGUgc2NlbmFyaW8gY2FsbCBzdGFjayB3aXRoIHRoZWlyIHZhcmlhYmxlcwotICAgaW5zcGVjdCBhbmQgY29weSB2YXJpYWJsZXMsIHZhbHVlcyBvciB0aGVpciBqc29uIHBhdGggZXhwcmVzc2lvbgotICAgaW50ZXJhY3RpdmUgZGVidWcgY29uc29sZSB3aGVyZSB5b3UgY2FuIHByaW50LCB1cGRhdGUgdmFyaWFibGUgdmFsdWVzIG9yIHRlc3QganNvblBhdGggZXhwcmVzc2lvbnMKLSAgIGhvdCByZWxvYWRpbmcgKHdpdGggY2F2ZWF0cykKCmh0dHBzOi8vdHdpdHRlci5jb20vS2FyYXRlRFNML3N0YXR1cy8xMTY3NTMzNDg0NTYwMTQyMzM2CgojIyBDb25maWd1cmF0aW9uIE9wdGlvbnMKCiMjIyAudnNjb2RlL2xhdW5jaC5qc29uCgpXaGVuIHlvdSBjbGljayBgS2FyYXRlIERlYnVnYCBmb3IgdGhlIGZpcnN0IHRpbWUgaWYgYC52c2NvZGUvbGF1bmNoLmpzYCBkb2VzIG5vdCBleGlzdCBvbmUgd2lsbCBiZSBjcmVhdGVkIGZvciB5b3Ugd2l0aCB0aGlzIGNvbnRlbnRzLiBUaGlzIGlzIGEgb25lIHRpbWUgc3RlcCwgYWZ0ZXIgdGhpcyBmaWxlIGlzIGNyZWF0ZWQgeW91IGNhbiBzdGFydCBkZWJ1Z2dpbmcgbm9ybWFsbHkuCgpgYGBqc29uCnsKICAgICJ2ZXJzaW9uIjogIjAuMi4wIiwKICAgICJjb25maWd1cmF0aW9ucyI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJ0eXBlIjogImthcmF0ZS1pZGUiLAogICAgICAgICAgICAibmFtZSI6ICJLYXJhdGUgSURFIChkZWJ1ZykiLAogICAgICAgICAgICAicmVxdWVzdCI6ICJsYXVuY2giCiAgICAgICAgfQogICAgXQp9CmBgYAoKIyMjIEthcmF0ZSBjbGFzc3BhdGgKCllvdSBoYXZlIGN1cnJlbnRseSB0aHJlZSBvcHRpb25zOiBJbnN0YWxsIFtLYXJhdGVJREUgQ2xhc3NwYXRoIEphciBleHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1LYXJhdGVJREUua2FyYXRlLWNsYXNzcGF0aC1qYXIpLCBtYW51YWxseSBkb3dubG9hZCBLYXJhdGUgImZhdCIgamFyIGZyb20gW0thcmF0ZSBSZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vaW50dWl0L2thcmF0ZS9yZWxlYXNlcykgb3IgcmV1c2UgbG9jYWwgbWF2ZW4gcmVwbyBhcnRpZmFjdHMuCgpJZiB1bnN1cmUganVzdCBpbnN0YWxsIFtLYXJhdGVJREUgQ2xhc3NwYXRoIEphciBleHRlbnNpb25dKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1LYXJhdGVJREUua2FyYXRlLWNsYXNzcGF0aC1qYXIpIGFzIGl0IHdpbGwgYXV0b21hdGljYWxseSB1cGdyYWRlIHRvIGVhY2ggbGF0ZXN0IGthcmF0ZSB2ZXJzaW9uLgoKUGxlYXNlIHVzZSBgS2FyYXRlSURFOiBDb25maWd1cmUgQ2xhc3NwYXRoYCBjb21tYW5kIGZyb20gQ29tbWFuZCBQYWxldHRlIChWaWV3ID4gQ29tbWFuZCBQYWxldHRlIG9yIEN0cmwrU2hpZnQrUCkgZm9yIGNvbmZpZ3VyaW5nIHlvdXIgY2xhc3NwYXRoLgoKS2FyYXRlLUlERSB3aWxsIGhvbm9yIHlvdXIgY2xhc3NwYXRoIHNldHRpbmdzIHdoZW4gYXV0b2NvbXBsZXRpb24gYW5kIG5hdmlnYXRpbmcvcGVla2luZyBjb2RlIHdpdGggYGNsYXNzcGF0aDpgIHByZWZpeC4KCiMjIyMgTWFudWFsIGNvbmZpZ3VyYXRpb246IFVzaW5nIGthcmF0ZS5qYXIgKEthcmF0ZSBmYXQgamFyKQoKYGBganNvbgp7CiAgICAia2FyYXRlSURFLmthcmF0ZUNsaS5jbGFzc3BhdGgiOiAic3JjL3Rlc3QvcmVzb3VyY2VzOzxwYXRoIHRvIHlvdXIgZmlsZT4va2FyYXRlLmphciIKfQpgYGAKCiMjIyMgTWFudWFsIGNvbmZpZ3VyYXRpb246IFVzaW5nIG1hdmVuIHJlcG9zaXRvcnkgZGVwZW5kZW5jaWVzCgpJZiB5b3UgYXJlIGFscmVhZHkgdXNpbmcgbWF2ZW4gYW5kIGthcmF0ZSBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgcHJlc2VudCBpbiB5b3VyIG1hdmVuIGxvY2FsIHJlcG9zaXRvcnkuIEthcmF0ZUlERSB3aWxsIHJlcGxhY2UgYCR7bTIucmVwb31gIHdpdGggdGhlIHZhbHVlIG9mIGAke2hvbWV9Ly5tMi9yZXBvc2l0b3J5YCBvciBgJHtNQVZFTl9IT01FfS8ubTIvcmVwb3NpdG9yeWAgaWYgYE1BVkVOX0hPTUVgIGVudiB2YXJpYWJsZSBpcyBhdmFpbGFibGUsIGJ1dCB5b3UgY2FuIGNvbmZpZ3VyZSBga2FyYXRlSURFLmthcmF0ZUNsaS5tMlJlcG9gIHNldHRpbmcgdG8gYSBkaWZmZXJlbnQgZm9sZGVyLgoKYGBganNvbgp7CiAgICAvLyBmdWxsIGNsYXNzcGF0aCBleGFtcGxlIGZvciBmb3Iga2FyYXRlIDEuMS4wIHZlcnNpb24gaW4gd2luZG93cwogICAgImthcmF0ZUlERS5rYXJhdGVDbGkuY2xhc3NwYXRoIjogInNyYy90ZXN0L2phdmE7c3JjL3Rlc3QvcmVzb3VyY2VzO3RhcmdldC9jbGFzc2VzO3RhcmdldC90ZXN0LWNsYXNzZXM7JHttMi5yZXBvfS9jb20vaW50dWl0L2thcmF0ZS9rYXJhdGUtY29yZS8xLjEuMC9rYXJhdGUtY29yZS0xLjEuMC5qYXI7JHttMi5yZXBvfS9vcmcvZ3JhYWx2bS9qcy9qcy1zY3JpcHRlbmdpbmUvMjEuMi4wL2pzLXNjcmlwdGVuZ2luZS0yMS4yLjAuamFyOyR7bTIucmVwb30vb3JnL2dyYWFsdm0vc2RrL2dyYWFsLXNkay8yMS4yLjAvZ3JhYWwtc2RrLTIxLjIuMC5qYXI7JHttMi5yZXBvfS9vcmcvZ3JhYWx2bS9qcy9qcy8yMS4yLjAvanMtMjEuMi4wLmphcjske20yLnJlcG99L29yZy9ncmFhbHZtL3JlZ2V4L3JlZ2V4LzIxLjIuMC9yZWdleC0yMS4yLjAuamFyOyR7bTIucmVwb30vb3JnL2dyYWFsdm0vdHJ1ZmZsZS90cnVmZmxlLWFwaS8yMS4yLjAvdHJ1ZmZsZS1hcGktMjEuMi4wLmphcjske20yLnJlcG99L2NvbS9pYm0vaWN1L2ljdTRqLzY5LjEvaWN1NGotNjkuMS5qYXI7JHttMi5yZXBvfS9jaC9xb3MvbG9nYmFjay9sb2diYWNrLWNsYXNzaWMvMS4yLjMvbG9nYmFjay1jbGFzc2ljLTEuMi4zLmphcjske20yLnJlcG99L2NoL3Fvcy9sb2diYWNrL2xvZ2JhY2stY29yZS8xLjIuMy9sb2diYWNrLWNvcmUtMS4yLjMuamFyOyR7bTIucmVwb30vb3JnL3NsZjRqL3NsZjRqLWFwaS8xLjcuMjUvc2xmNGotYXBpLTEuNy4yNS5qYXI7JHttMi5yZXBvfS9vcmcvc2xmNGovamNsLW92ZXItc2xmNGovMS43LjI1L2pjbC1vdmVyLXNsZjRqLTEuNy4yNS5qYXI7JHttMi5yZXBvfS9jb20vamF5d2F5L2pzb25wYXRoL2pzb24tcGF0aC8yLjYuMC9qc29uLXBhdGgtMi42LjAuamFyOyR7bTIucmVwb30vbmV0L21pbmlkZXYvanNvbi1zbWFydC8yLjQuNy9qc29uLXNtYXJ0LTIuNC43Lmphcjske20yLnJlcG99L25ldC9taW5pZGV2L2FjY2Vzc29ycy1zbWFydC8yLjQuNy9hY2Nlc3NvcnMtc21hcnQtMi40LjcuamFyOyR7bTIucmVwb30vb3JnL293Mi9hc20vYXNtLzkuMS9hc20tOS4xLmphcjske20yLnJlcG99L2luZm8vY3VrZXMvY3VjdW1iZXItamF2YS8xLjIuNS9jdWN1bWJlci1qYXZhLTEuMi41Lmphcjske20yLnJlcG99L2luZm8vY3VrZXMvY3VjdW1iZXItY29yZS8xLjIuNS9jdWN1bWJlci1jb3JlLTEuMi41Lmphcjske20yLnJlcG99L29yZy95YW1sL3NuYWtleWFtbC8xLjI5L3NuYWtleWFtbC0xLjI5Lmphcjske20yLnJlcG99L2RlL3NpZWdtYXIvZmFzdGNzdi8yLjAuMC9mYXN0Y3N2LTIuMC4wLmphcjske20yLnJlcG99L2luZm8vcGljb2NsaS9waWNvY2xpLzQuNi4xL3BpY29jbGktNC42LjEuamFyIgp9CmBgYAoKSWYgeW91IG5lZWQgdG8gYWRkICoqZXh0cmEgY2xhc3NwYXRoIGphcnMqKiB5b3UgY2FuIHVzZSBgbXZuIGRlcGVuZGVuY3k6YnVpbGQtY2xhc3NwYXRoYCBmb3IgZ2VuZXJhdGluZyBhIGNvbXBhdGlibGUgZXh0ZW5kZWQgY2xhc3NwYXRoLgoKIyMjIFJ1bi9EZWJ1ZyBjb21tYW5kIHRlbXBsYXRlcwoKRm9yIGFkdmFuY2VkIHVzZXJzLCBLYXJhdGUtSURFIG9mZmVycyBfdGVtcGxhdGVfIGJhc2VkIGNvbmZpZ3VyYXRpb25zIGZvciBib3RoIFJ1biBhbmQgRGVidWcgY29tbWFuZHMuIFZhcmlhYmxlcyB3aXRoIF8ke31fIHdpbGwgYmUgcmVwbGFjZWQgYnkgS2FyYXRlSURFIHJ1bnRpbWUgd2l0aCBhY3R1YWwgdmFsdWVzLgoKYGBganNvbgp7CiAgICAia2FyYXRlSURFLmthcmF0ZUNsaS5ydW5Db21tYW5kVGVtcGxhdGUiOiAiamF2YSAnLURrYXJhdGUuZW52PSR7a2FyYXRlRW52fScgJy1EdnNjb2RlLnBvcnQ9JHt2c2NvZGVQb3J0fScgLWNwICcke2NsYXNzcGF0aH0nIGNvbS5pbnR1aXQua2FyYXRlLk1haW4gJHtrYXJhdGVPcHRpb25zfSAnJHtmZWF0dXJlfSciLAogICAgImthcmF0ZUlERS5rYXJhdGVDbGkuZGVidWdDb21tYW5kVGVtcGxhdGUiOiAiamF2YSAnLURrYXJhdGUuZW52PSR7a2FyYXRlRW52fScgJy1EdnNjb2RlLnBvcnQ9JHt2c2NvZGVQb3J0fScgLWNwICcke2NsYXNzcGF0aH0nIGNvbS5pbnR1aXQua2FyYXRlLk1haW4gLWQiCn0KYGBgCgojIyMgTXVsdGltb2R1bGUgcHJvamVjdHMKCkZvciBtdWx0aW1vZHVsZSBwcm9qZWN0LCB5b3UgbWF5IG5lZWQgdG8gY29uZmlndXJlIGBrYXJhdGVJREUubXVsdGltb2R1bGUucm9vdE1vZHVsZU1hcmtlckZpbGVgLiBVc2UgcG9tLnhtbCwgYnVpbGQuZ3JhZGxlLCBwYWNrYWdlLmpzb24gb3IgYW55IG90aGVyIGZpbGUgdGhhdCBzaXRzIG9uIHRoZSByb290IG9mIGVhY2ggbW9kdWxlLgoKS2FyYXRlIGphdmEgcHJvY2VzcyB3aWxsIGJlIHN0YXJ0ZWQgb24gdGhhdCBmb2xkZXIgKGZpcnN0IHBhcmVudCBmb2xkZXIgb2YgY3VycmVudCBmZWF0dXJlIGZpbGUgY29udGFpbmluZyBhIG1hcmtlciBmaWxlKSBzbyBjbGFzc3BhdGggd2lsbCBiZSByZWxhdGl2ZSB0byB0aGF0IGZvbGRlci4KCiMjIE90aGVyIGZ1bmN0aW9uYWxpdHkKCiMjIyBLYXJhdGUuZW52IHN3aXRjaGVyLCBLYXJhdGUgT3B0aW9ucyBhbmQgTW9ja1NlcnZlciBPcHRpb25zCgpZb3UgY2FuIHN3aXRjaCBga2FyYXRlLmVudmAsIEthcmF0ZSBvcHRpb25zIGFuZCBNb2NrU2VydmVyIG9wdGlvbnMgZnJvbSBFeGVjdXRpb25zIFZpZXcgdGl0bGUgYmFyLiBXaGVuIHVzaW5nIEthcmF0ZS1JREUgZm9yIG1hbnVhbCB0ZXN0aW5nIG9yIGV4cGxvcmluZyBBUElzIHlvdSB3aWxsIGZpbmQgdmVyeSBoYW5keSB0aGlzIG9wdGlvbnMgc3dpdGNoZXIuCgohW0thcmF0ZS1JREUgT3B0aW9ucyBCdXR0b25zXShyZXNvdXJjZXMvc2NyZWVuc2hvdHMvb3B0aW9ucy5wbmcpCgojIyMgU21hcnRQYXN0ZSBmcm9tIGNVUkwgaW4gS2FyYXRlIGZpbGVzCgohW0thcmF0ZS1JREVdKHJlc291cmNlcy9zY3JlZW5zaG90cy9LYXJhdGVJREUtU21hcnRQYXN0ZV9Gcm9tX0N1cmwuZ2lmKQoKIyMjIENvZGUgTmF2aWdhdGlvbiBhbmQgRGVmaW5pdGlvbiBQZWVrCgpZb3UgY2FuIG5hdmlnYXRlIGJldHdlZW4gZmlsZXMsIGZlYXR1cmVzIGFuZCBzY2VuYXJpbyBAdGFncyB1c2luZyBgQ29udHJvbC1DbGlja2Agb3IgX3BlZWtfIGRlZmluaXRpb25zIHdpdGggYEFsdCtGMTJgCgpZb3UgY2FuIGFsc28gbmF2aWdhdGUgdG8gc2NlbmFyaW9zIGJ5IF9AdGFnXyBpbiB0aGUgc2FtZSBvciBpbiBkaWZmZXJlbnQgZmVhdHVyZSBmaWxlLgoKSXQgaG9ub3JzIHlvdXIgW2NsYXNzcGF0aF0oI2thcmF0ZS1jbGFzc3BhdGgpIHNldHRpbmcgd2hlbiBuYXZpZ2F0aW5nIHRvIGZpbGVzIHdpdGggYGNsYXNzcGF0aDpgIHByZWZpeC4KCiMjIyBBdXRvLUNvbXBsZXRpb24KCldoZW4gcmVhZGluZyB5bWwvanNvbiBmaWxlcyBhcmUgY2FsbGluZyBvdGhlciBmZWF0dXJlcyB5b3UgY2FuIGF1dG9jb21wbGV0ZSB0aGVpciBuYW1lcyB3aXRoIHRlaCBsaXN0IG9mIGxvY2FsIGFuZCBjbGFzc3BhdGggZmlsZXMuCgpJdCBob25vcnMgeW91ciBbY2xhc3NwYXRoXSgja2FyYXRlLWNsYXNzcGF0aCkgc2V0dGluZyB3aGVuIG5hdmlnYXRpbmcgdG8gZmlsZXMgd2l0aCBgY2xhc3NwYXRoOmAgcHJlZml4LgoKIyMjIEtpbGwgdnNjb2RlLkthcmF0ZVRlc3RQcm9jZXNzIGNvbW1hbmQKCklmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIHRyb3VibGUgd2l0aCB2c2NvZGUuS2FyYXRlVGVzdFByb2Nlc3MgeW91IGNhbiBhbHdheXMgcnVuIGNvbW1hbmQgYFN0b3AvS2lsbCBLYXJhdGUgVGVzdHMvRGVidWcgUHJvY2Vzc2AgdG8gc3RvcCBhIG1pc2JlaGF2aW5nIHByb2Nlc3MsIGZyb20gYFZpZXcgPiBDb21tYW5kIFBhbGV0dGVgIG9yIGp1c3QgYEN0cmwrUGAuCgoqKkVuam95ISoqCg== readmeEtag: '"a7710b0d11187d4baaf42b075671319a77d88c75"' readmeLastModified: Wed, 14 Aug 2024 09:23:39 GMT repositoryId: 318240592 description: The Best OpenSource IDE for KarateDSL. created: '2020-12-03T15:41:05Z' updated: '2024-08-14T09:24:11Z' language: TypeScript archived: false stars: 9 watchers: 3 forks: 4 owner: ZenWave360 logo: https://avatars.githubusercontent.com/u/93670347?v=4 license: NOASSERTION repoEtag: '"ecaf4476a14a5311b4803ca42aee02df5ffbef3c734e41f5e809f384b16623ae"' repoLastModified: Wed, 14 Aug 2024 09:24:11 GMT foundInMaster: true oldLocations: - https://github.com/ivangsa/karate-ide - source: https://openapi.tools/ name: RESTler category: - Security - Testing language: Any repository: https://github.com/microsoft/restler-fuzzer source_description: >- RESTler is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services. RESTler analyzes the OpenAPI description of a cloud service, and then generates and executes tests that exercise the service through its REST API. During testing, it checks for specific classes of bugs and dynamically learns how the service behaves from prior service responses. v2: true v3: true id: 90727a339634b533b35035d035eb4316 repositoryMetadata: base64Readme: >- IyBSRVNUbGVyCgojIyBXaGF0IGlzIFJFU1RsZXI/CgpSRVNUbGVyIGlzIHRoZSAqZmlyc3Qgc3RhdGVmdWwgUkVTVCBBUEkgZnV6emluZyB0b29sKiBmb3IgYXV0b21hdGljYWxseQp0ZXN0aW5nIGNsb3VkIHNlcnZpY2VzIHRocm91Z2ggdGhlaXIgUkVTVCBBUElzIGFuZCBmaW5kaW5nIHNlY3VyaXR5IGFuZApyZWxpYWJpbGl0eSBidWdzIGluIHRoZXNlIHNlcnZpY2VzLiBGb3IgYSBnaXZlbiBjbG91ZCBzZXJ2aWNlCndpdGggYW4gT3BlbkFQSSAoZm9ybWVybHkgU3dhZ2dlcikgc3BlY2lmaWNhdGlvbiwgUkVTVGxlciBhbmFseXplcyBpdHMgZW50aXJlIHNwZWNpZmljYXRpb24sCmFuZCB0aGVuIGdlbmVyYXRlcyBhbmQgZXhlY3V0ZXMgdGVzdHMgdGhhdCBleGVyY2lzZSB0aGUgc2VydmljZSB0aHJvdWdoIGl0cyBSRVNUIEFQSS4KClJFU1RsZXIgaW50ZWxsaWdlbnRseSBpbmZlcnMgcHJvZHVjZXItY29uc3VtZXIgZGVwZW5kZW5jaWVzIGFtb25nIHJlcXVlc3QgdHlwZXMgZnJvbSB0aGUgT3BlbkFQSSBkZWZpbml0aW9uLgpEdXJpbmcgdGVzdGluZywgaXQgY2hlY2tzIGZvciBzcGVjaWZpYyBjbGFzc2VzIG9mIGJ1Z3MKYW5kIGR5bmFtaWNhbGx5IGxlYXJucyBob3cgdGhlIHNlcnZpY2UgYmVoYXZlcyBmcm9tIHByaW9yIHNlcnZpY2UgcmVzcG9uc2VzLgpUaGlzIGludGVsbGlnZW5jZSBhbGxvd3MgUkVTVGxlciB0byBleHBsb3JlIGRlZXBlciBzZXJ2aWNlIHN0YXRlcwpyZWFjaGFibGUgb25seSB0aHJvdWdoIHNwZWNpZmljIHJlcXVlc3Qgc2VxdWVuY2VzIGFuZCB0byBmaW5kIG1vcmUgYnVncy4KClJFU1RsZXIgaXMgZGVzY3JpYmVkIGluIHRoZXNlIHBlZXItcmV2aWV3ZWQgcmVzZWFyY2ggcGFwZXJzOgoKMS4gW1JFU1RsZXI6IFN0YXRlZnVsIFJFU1QgQVBJIEZ1enppbmddKGh0dHBzOi8vcGF0cmljZWdvZGVmcm9pZC5naXRodWIuaW8vcHVibGljX3BzZmlsZXMvaWNzZTIwMTkucGRmKSAoSUNTRScyMDE5KQoyLiBbQ2hlY2tpbmcgU2VjdXJpdHkgUHJvcGVydGllcyBvZiBDbG91ZCBTZXJ2aWNlIFJFU1QgQVBJc10oaHR0cHM6Ly9wYXRyaWNlZ29kZWZyb2lkLmdpdGh1Yi5pby9wdWJsaWNfcHNmaWxlcy9pY3N0MjAyMC5wZGYpIChJQ1NUJzIwMjApCjMuIFtEaWZmZXJlbnRpYWwgUmVncmVzc2lvbiBUZXN0aW5nIGZvciBSRVNUIEFQSXPigItdKGh0dHBzOi8vcGF0cmljZWdvZGVmcm9pZC5naXRodWIuaW8vcHVibGljX3BzZmlsZXMvaXNzdGEyMDIwLnBkZikgKElTU1RBJzIwMjApCjQuIFtJbnRlbGxpZ2VudCBSRVNUIEFQSSBEYXRhIEZ1enppbmfigIvigItdKGh0dHBzOi8vcGF0cmljZWdvZGVmcm9pZC5naXRodWIuaW8vcHVibGljX3BzZmlsZXMvZnNlMjAyMC5wZGYpIChGU0UnMjAyMCkKCklmIHlvdSB1c2UgUkVTVGxlciBpbiB5b3VyIHJlc2VhcmNoLCBwbGVhc2UgY2l0ZSB0aGUgKGRlZmF1bHQpIElDU0UnMjAxOSBwYXBlciAoW0JpYlRlWF0oLi9kb2NzL3VzZXItZ3VpZGUvaWNzZTIwMTkuYmliKSkuCgpSRVNUbGVyIGluY2x1ZGVzIG11bHRpcGxlIHRlc3QgZ2VuZXJhdGlvbiBzdHJhdGVnaWVzLiAgSW4gb3JkZXIgdG8gZ2V0IGEgY29tcHJlaGVuc2l2ZSBjb21wYXJhdGl2ZSB2aWV3IHcuci50LiB0byAoaSkgZWZmaWNpZW5jeSAKKGkuZS4sIGhvdyBxdWlja2x5IGNhbiBSRVNUbGVyIGZpbmQgY3Jhc2hlcykgYW5kIChpaSkgZWZmZWN0aXZlbmVzcyAKKGkuZS4sIGhvdyBtYW55IGNyYXNoZXMgY2FuIFJFU1RsZXIgZmluZCBpbiBhIGdpdmUgdGltZSBmcmFtZSksIAp3ZSByZWNvbW1lbmQgY29tcGFyaW5nIGFnYWluc3QgYWxsIGRvY3VtZW50ZWQgYGZ1enppbmdfbW9kZShzKWAKYmVjYXVzZSBlYWNoIG9uZSBwcm92aWRlcyBhIGRpZmZlcmVudCB0cmFkZS1vZmYgYmV0d2VlbiBicmVhZHRoIGFuZCBkZXB0aCBvZiBzdGF0ZSBzcGFjZSBleHBsb3JhdGlvbi4KV2UgYWxzbyByZWNvbW1lbmQgcnVubmluZyBgdGVzdGAgbW9kZSBiZWZvcmUgYW55IGZ1enppbmcsIGFzIGRlc2NyaWJlZCBiZWxvdywgCnRvIGRpc2NvdmVyIGFuZCBmaXggc2V0dXAgaXNzdWVzIChlLmcuIGFkZGluZyByZXF1aXJlZCBwcmUtcmVxdWlzaXRlIHBhcmFtZXRlciB2YWx1ZXMgdG8gdGhlIGRpY3Rpb25hcnkpIHByaW9yIHRvIGZ1enppbmcuCgpSRVNUbGVyIHdhcyBjcmVhdGVkIGF0IE1pY3Jvc29mdCBSZXNlYXJjaCBhbmQgaXMgc3RpbGwgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50LgoKRm9yIGFuIG92ZXJ2aWV3IGFuZCBkZW1vIG9uIGhvdyB0byBnZXQgc3RhcnRlZCwgc2VlIFtXZWJpbmFyIC0gRnV6emluZyB0byBJbXByb3ZlIHRoZSBTZWN1cml0eSBhbmQgUmVsaWFiaWxpdHkgb2YgQ2xvdWQgU2VydmljZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RlltaVBvUndFYkUpLgoKIVtSRVNUbGVyIGFyY2hpdGVjdHVyZV0oLi9kb2NzL3VzZXItZ3VpZGUvUkVTVGxlci1hcmNoLnBuZykKCiMjIEJ1aWxkIFN0YXR1cwoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2Rldi5henVyZS5jb20vbXMvcmVzdGxlci1mdXp6ZXIvX2FwaXMvYnVpbGQvc3RhdHVzL3Jlc3RsZXItYnVpbGQtdmFsaWRhdGlvbj9icmFuY2hOYW1lPW1haW4pXShodHRwczovL2Rldi5henVyZS5jb20vbXMvcmVzdGxlci1mdXp6ZXIvX2J1aWxkL2xhdGVzdD9kZWZpbml0aW9uSWQ9NDIyJmJyYW5jaE5hbWU9bWFpbikKCgojIyBTZXR0aW5nIHVwIFJFU1RsZXIKClJFU1RsZXIgd2FzIGRlc2lnbmVkIHRvIHJ1biBvbiA2NC1iaXQgbWFjaGluZXMgd2l0aCBXaW5kb3dzIG9yIExpbnV4LiAgRXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIG1hY09TIGlzIGFsc28gZW5hYmxlZC4KCiMjIyAqKkJ1aWxkIGluc3RydWN0aW9ucyoqCgojIyMjIERvY2tlcgoKSW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvLCBydW4KCmBgYHNoZWxsCmRvY2tlciBidWlsZCAtdCByZXN0bGVyIC4KYGBgCgpUaGUgcmVzdWx0aW5nIGRvY2tlciBjb250YWluZXIgd2lsbCBoYXZlIFJFU1RsZXIgYXZhaWxhYmxlIGluIGRpcmVjdG9yeSBgL1JFU1RsZXIvcmVzdGxlcmAgd2l0aCBtYWluIGJpbmFyeSBgUmVzdGxlcmAuIAoKWW91IGNhbiB0aGVuIHVzZSB0aGlzIGRvY2tlciBpbWFnZSBhcyBiYXNpcyB0byBhZGQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QgdG8gZXhlY3V0ZSBmdXp6aW5nIGluc2lkZSBpc29sYXRlZCBkb2NrZXIgY29udGFpbmVycy4KCiMjIyMgTG9jYWwKClByZXJlcXVpc2l0ZXM6IEluc3RhbGwgW1B5dGhvbiAzLjguMl0oaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kb3dubG9hZHMvKSBhbmQKWy5ORVQgNi4wXShodHRwczovL2RvdG5ldC5taWNyb3NvZnQuY29tL2Rvd25sb2FkL2RvdG5ldC1jb3JlP3V0bV9zb3VyY2U9Z2V0ZG90bmV0Y29yZWNsaSZ1dG1fbWVkaXVtPXJlZmVycmFsKSwgZm9yIHlvdXIgYXBwcm9wcmlhdGUgT1MuCgpDcmVhdGUgYSBkaXJlY3Rvcnkgd2hlcmUgeW91J2QgbGlrZSB0byBwbGFjZSB0aGUgUkVTVGxlciBiaW5hcmllczoKCmBgYG1rZGlyIHJlc3RsZXJfYmluYGBgCgpTd2l0Y2ggdG8gdGhlIHJlcG8gcm9vdCBkaXJlY3RvcnkgYW5kIHJ1biB0aGUgZm9sbG93aW5nIFB5dGhvbiBzY3JpcHQ6CgpgYGBweXRob24gLi9idWlsZC1yZXN0bGVyLnB5IC0tZGVzdF9kaXIgPGZ1bGwgcGF0aCB0byByZXN0bGVyX2JpbiBhYm92ZT5gYGAKCk5vdGU6IGlmIHlvdSBnZXQgbnVnZXQgZXJyb3IgTlUxNDAzIHdoZW4gYnVpbGRpbmcsIGEgcXVpY2sgd29ya2Fyb3VuZCBpcyB0byBjbGVhciB5b3VyIGNhY2hlIHdpdGggdGhpcyBjb21tYW5kCgpgYGBkb3RuZXQgbnVnZXQgbG9jYWxzIGFsbCAtLWNsZWFyYGBgCgoKIyMgVXNpbmcgUkVTVGxlcgoKUkVTVGxlciBydW5zIGluIDQgbWFpbiBtb2RlcyAoaW4gb3JkZXIpOgoKMS4gKipDb21waWxlOioqIGZyb20gYW4gT3BlbkFQSSBKU09OIG9yIFlBTUwgZGVmaW5pdGlvbiAoYW5kIG9wdGlvbmFsbHkgZXhhbXBsZXMpLCBnZW5lcmF0ZSBhIFJFU1RsZXIgZ3JhbW1hci4gU2VlIFtDb21waWxpbmddKC4vZG9jcy91c2VyLWd1aWRlL0NvbXBpbGluZy5tZCkuCjIuICoqVGVzdDoqKiBleGVjdXRlIHF1aWNrbHkgYWxsIG9mIHRoZSBlbmRwb2ludHMrbWV0aG9kcyBpbiBhIGNvbXBpbGVkIFJFU1RsZXIgZ3JhbW1hciBmb3IgZGVidWdnaW5nIHRoZSB0ZXN0IHNldHVwIGFuZCBjb21wdXRlIHdoYXQgcGFydHMgb2YgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbiBhcmUgY292ZXJlZC4gVGhpcyBtb2RlIGlzIGFsc28gY2FsbGVkIGEgKnNtb2tldGVzdCouClNlZSBbVGVzdGluZ10oLi9kb2NzL3VzZXItZ3VpZGUvVGVzdGluZy5tZCkuIFRvIHVzZSBjdXN0b20gdGVzdCBlbmdpbmUgc2V0dGluZ3MsIHNlZSBbVGVzdCBFbmdpbmUgU2V0dGluZ3NdKC4vZG9jcy91c2VyLWd1aWRlL1NldHRpbmdzRmlsZS5tZCkuCjMuICoqRnV6ei1sZWFuOioqIGV4ZWN1dGUgb25jZSBldmVyeSBlbmRwb2ludCttZXRob2QgaW4gYSBjb21waWxlZCBSRVNUbGVyIGdyYW1tYXIgd2l0aCBhIGRlZmF1bHQgc2V0IG9mIGNoZWNrZXJzIHRvIHNlZSBpZiBidWdzIGNhbiBiZSBmb3VuZCBxdWlja2x5LiBTZWUgW0Z1enppbmddKC4vZG9jcy91c2VyLWd1aWRlL0Z1enppbmcubWQpLgo0LiAqKkZ1eno6KiogYnVnIGh1bnRpbmcgLSBleHBsb3JlIGEgUkVTVGxlciBmdXp6aW5nIGdyYW1tYXIgaW4gc21hcnQgYnJlYWR0aC1maXJzdC1zZWFyY2ggbW9kZSAoZGVlcGVyIHNlYXJjaCBtb2RlKSBmb3IgZmluZGluZyBtb3JlIGJ1Z3MuCioqV2FybmluZzoqKiBUaGlzIHR5cGUgb2YgZnV6emluZyBpcyBtb3JlIGFnZ3Jlc3NpdmUgYW5kIG1heSBjcmVhdGUgb3V0YWdlcyBpbiB0aGUgc2VydmljZSB1bmRlciB0ZXN0IGlmIHRoZSBzZXJ2aWNlIGlzIHBvb3JseSBpbXBsZW1lbnRlZCAoZS5nLiwgZnV6emluZyBtaWdodCBjcmVhdGUgcmVzb3VyY2UgbGVha3MsIHBlcmYgZGVncmFkYXRpb24sIGJhY2tlbmQgY29ycnVwdGlvbnMsIGV0Yy4pLgpTZWUgW0Z1enppbmddKC4vZG9jcy91c2VyLWd1aWRlL0Z1enppbmcubWQpLgoKIyMgUXVpY2sgU3RhcnQKCkZvciBhIHF1aWNrIGludHJvIHdpdGggc2ltcGxlIGV4YW1wbGVzLCBzZWUgdGhpcyBbVHV0b3JpYWxdKC4vZG9jcy91c2VyLWd1aWRlL1R1dG9yaWFsRGVtb1NlcnZlci5tZCkuCgpUbyBxdWlja2x5IHRyeSBSRVNUbGVyIG9uIHlvdXIgQVBJLCBzZWUgW1F1aWNrIFN0YXJ0XSguL2RvY3MvdXNlci1ndWlkZS9RdWlja1N0YXJ0Lm1kKS4KCiMjIEJ1Z3MgZm91bmQgYnkgUkVTVGxlcgpUaGVyZSBhcmUgY3VycmVudGx5IHR3byBjYXRlZ29yaWVzIG9mIGJ1Z3MgZm91bmQgYnkgUkVTVGxlci4KCi0gKipFcnJvciBjb2RlKio6IGN1cnJlbnRseSwgYW55IHRpbWUgYSByZXNwb25zZSB3aXRoIHN0YXR1cyBjb2RlIGBgYDUwMGBgYCAoIkludGVybmFsIFNlcnZlciBFcnJvciIpIGlzIHJlY2VpdmVkLCBhIGJ1ZyBpcyByZXBvcnRlZC4KLSAqKkNoZWNrZXJzKio6IGVhY2ggY2hlY2tlciB0cmllcyB0byB0cmlnZ2VyIHNwZWNpZmljIGJ1Z3MgYnkgZXhlY3V0aW5nIHRhcmdldGVkIGFkZGl0aW9uYWwgcmVxdWVzdHMgb3Igc2VxdWVuY2VzIG9mIHJlcXVlc3RzIGF0IGNlcnRhaW4gcG9pbnRzIGR1cmluZyBmdXp6aW5nLCBkZXRlcm1pbmVkIGJ5IGNvbnRleHQuICBTb21lIGNoZWNrZXJzIHRyeSB0byBmaW5kIGFkZGl0aW9uYWwgNTAwcywgd2hpbGUgb3RoZXIgY2hlY2tlcnMgdHJ5IHRvIGZpbmQgc3BlY2lmaWMgbG9naWMgYnVncyBzdWNoIGFzIHJlc291cmNlIGxlYWtzIG9yIGhpZXJhcmNoeSB2aW9sYXRpb25zLiAgRm9yIGEgZnVsbCBkZXNjcmlwdGlvbiBvZiBjaGVja2Vycywgc2VlIFtDaGVja2Vyc10oLi9kb2NzL3VzZXItZ3VpZGUvQ2hlY2tlcnMubWQpLgoKV2hlbiBhIGJ1ZyBpcyBmb3VuZCwgUkVTVGxlciByZXBvcnRzIGJ1Z3MgdHJpYWdlZCBpbiBidWcgYnVja2V0cywgYW5kIHByb3ZpZGVzIGEgcmVwbGF5IGxvZyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcHJvZHVjZSB0aGUgYnVnIChzZWUgW1JlcGxheV0oLi9kb2NzL3VzZXItZ3VpZGUvUmVwbGF5Lm1kKSkuCgoKIyMgQWR2YW5jZWQgVG9waWNzCgpGb3IgdGlwcyBvbiB1c2luZyBSRVNUbGVyIGVmZmVjdGl2ZWx5LCBwbGVhc2Ugc2VlIFtCZXN0IFByYWN0aWNlc10oLi9kb2NzL3VzZXItZ3VpZGUvQmVzdFByYWN0aWNlcy5tZCkgYW5kIFtJbXByb3ZpbmcgQVBJIENvdmVyYWdlXSguL2RvY3MvdXNlci1ndWlkZS9JbXByb3ZpbmdDb3ZlcmFnZS5tZCkuCgpTZWUgYWxzbyB0aGVzZSBbRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnNdKC4vZG9jcy91c2VyLWd1aWRlL0ZBUS5tZCkuCgpJZiB5b3UncmUgaW50ZXJlc3RlZCBpbiB1c2luZyBSRVNUbGVyIGF0IHNjYWxlIGFzIHBhcnQgb2YgeW91ciBDSS9DRCBwaXBlbGluZSwgY2hlY2sgb3V0CnRoZSBbUkVTVCBBUEkgRnV6eiBUZXN0aW5nIHNlbGYtaG9zdGVkIHNlcnZpY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvcmVzdC1hcGktZnV6ei10ZXN0aW5nKS4KCiMjIFF1ZXN0aW9ucwoKSWYgeW91IGhhdmUgYSByZXF1ZXN0L3N1Z2dlc3Rpb24vcXVlc3Rpb24sIHBsZWFzZSBmaWxlIGFuIGlzc3VlLgpTZWUgW0NvbnRyaWJ1dGluZy5tZF0oLi9kb2NzL2NvbnRyaWJ1dG9yLWd1aWRlL0NvbnRyaWJ1dGluZy5tZCkgZm9yIGluc3RydWN0aW9ucy4KCiMjIENvbnRyaWJ1dGluZwoKVGhpcyBwcm9qZWN0IHdlbGNvbWVzIGNvbnRyaWJ1dGlvbnMgYW5kIHN1Z2dlc3Rpb25zLiBNb3N0IGNvbnRyaWJ1dGlvbnMgcmVxdWlyZSB5b3UgdG8KYWdyZWUgdG8gYSBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudCAoQ0xBKSBkZWNsYXJpbmcgdGhhdCB5b3UgaGF2ZSB0aGUgcmlnaHQgdG8sCmFuZCBhY3R1YWxseSBkbywgZ3JhbnQgdXMgdGhlIHJpZ2h0cyB0byB1c2UgeW91ciBjb250cmlidXRpb24uIEZvciBkZXRhaWxzLCB2aXNpdApodHRwczovL2NsYS5taWNyb3NvZnQuY29tLgoKV2hlbiB5b3Ugc3VibWl0IGEgcHVsbCByZXF1ZXN0LCBhIENMQS1ib3Qgd2lsbCBhdXRvbWF0aWNhbGx5IGRldGVybWluZSB3aGV0aGVyIHlvdSBuZWVkCnRvIHByb3ZpZGUgYSBDTEEgYW5kIGRlY29yYXRlIHRoZSBQUiBhcHByb3ByaWF0ZWx5IChlLmcuLCBsYWJlbCwgY29tbWVudCkuIFNpbXBseSBmb2xsb3cgdGhlCmluc3RydWN0aW9ucyBwcm92aWRlZCBieSB0aGUgYm90LiBZb3Ugd2lsbCBvbmx5IG5lZWQgdG8gZG8gdGhpcyBvbmNlIGFjcm9zcyBhbGwgcmVwb3NpdG9yaWVzIHVzaW5nIG91ciBDTEEuCgpUaGlzIHByb2plY3QgaGFzIGFkb3B0ZWQgdGhlIFtNaWNyb3NvZnQgT3BlbiBTb3VyY2UgQ29kZSBvZiBDb25kdWN0XShodHRwczovL29wZW5zb3VyY2UubWljcm9zb2Z0LmNvbS9jb2Rlb2Zjb25kdWN0LykuCkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgW0NvZGUgb2YgQ29uZHVjdCBGQVFdKGh0dHBzOi8vb3BlbnNvdXJjZS5taWNyb3NvZnQuY29tL2NvZGVvZmNvbmR1Y3QvZmFxLykKb3IgY29udGFjdCBbb3BlbmNvZGVAbWljcm9zb2Z0LmNvbV0obWFpbHRvOm9wZW5jb2RlQG1pY3Jvc29mdC5jb20pIHdpdGggYW55IGFkZGl0aW9uYWwgcXVlc3Rpb25zIG9yIGNvbW1lbnRzLgoKRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29udHJpYnV0aW5nLm1kXSguL2RvY3MvY29udHJpYnV0b3ItZ3VpZGUvQ29udHJpYnV0aW5nLm1kKS4KCiMjIFRyYWRlbWFya3MKClRoaXMgcHJvamVjdCBtYXkgY29udGFpbiB0cmFkZW1hcmtzIG9yIGxvZ29zIGZvciBwcm9qZWN0cywgcHJvZHVjdHMsIG9yIHNlcnZpY2VzLiBBdXRob3JpemVkIHVzZSBvZiBNaWNyb3NvZnQgdHJhZGVtYXJrcyBvciBsb2dvcyBpcyBzdWJqZWN0IHRvIGFuZCBtdXN0IGZvbGxvdyBNaWNyb3NvZnQncyBUcmFkZW1hcmsgJiBCcmFuZCBHdWlkZWxpbmVzLiBVc2Ugb2YgTWljcm9zb2Z0IHRyYWRlbWFya3Mgb3IgbG9nb3MgaW4gbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhpcyBwcm9qZWN0IG11c3Qgbm90IGNhdXNlIGNvbmZ1c2lvbiBvciBpbXBseSBNaWNyb3NvZnQgc3BvbnNvcnNoaXAuIEFueSB1c2Ugb2YgdGhpcmQtcGFydHkgdHJhZGVtYXJrcyBvciBsb2dvcyBhcmUgc3ViamVjdCB0byB0aG9zZSB0aGlyZC1wYXJ0eSdzIHBvbGljaWVzLgoKIyMgRGF0YSBjb2xsZWN0aW9uCgpUaGUgc29mdHdhcmUgbWF5IGNvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgeW91IGFuZCB5b3VyIHVzZSBvZiB0aGUgc29mdHdhcmUgYW5kIHNlbmQgaXQgdG8gTWljcm9zb2Z0LiBNaWNyb3NvZnQgbWF5IHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIHByb3ZpZGUgc2VydmljZXMgYW5kIGltcHJvdmUgb3VyIHByb2R1Y3RzIGFuZCBzZXJ2aWNlcy4gWW91IG1heSB0dXJuIG9mZiB0aGUgdGVsZW1ldHJ5IGFzIGRlc2NyaWJlZCBpbiB0aGUgcmVwb3NpdG9yeS4gVGhlcmUgYXJlIGFsc28gc29tZSBmZWF0dXJlcyBpbiB0aGUgc29mdHdhcmUgdGhhdCBtYXkgZW5hYmxlIHlvdSBhbmQgTWljcm9zb2Z0IHRvIGNvbGxlY3QgZGF0YSBmcm9tIHVzZXJzIG9mIHlvdXIgYXBwbGljYXRpb25zLiBJZiB5b3UgdXNlIHRoZXNlIGZlYXR1cmVzLCB5b3UgbXVzdCBjb21wbHkgd2l0aCBhcHBsaWNhYmxlIGxhdywgaW5jbHVkaW5nIHByb3ZpZGluZyBhcHByb3ByaWF0ZSBub3RpY2VzIHRvIHVzZXJzIG9mIHlvdXIgYXBwbGljYXRpb25zIHRvZ2V0aGVyIHdpdGggYSBjb3B5IG9mIE1pY3Jvc29mdCdzIHByaXZhY3kgc3RhdGVtZW50LiBPdXIgcHJpdmFjeSBzdGF0ZW1lbnQgaXMgbG9jYXRlZCBhdCBodHRwczovL2dvLm1pY3Jvc29mdC5jb20vZndsaW5rLz9MaW5rSUQ9ODI0NzA0LiBZb3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgZGF0YSBjb2xsZWN0aW9uIGFuZCB1c2UgaW4gdGhlIGhlbHAgZG9jdW1lbnRhdGlvbiBhbmQgb3VyIHByaXZhY3kgc3RhdGVtZW50LiBZb3VyIHVzZSBvZiB0aGUgc29mdHdhcmUgb3BlcmF0ZXMgYXMgeW91ciBjb25zZW50IHRvIHRoZXNlIHByYWN0aWNlcy4KCkZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1RlbGVtZXRyeS5tZF0oLi9kb2NzL3VzZXItZ3VpZGUvVGVsZW1ldHJ5Lm1kKS4KCiMjIFJlcG9ydGluZyBTZWN1cml0eSBJc3N1ZXMKClNlY3VyaXR5IGlzc3VlcyBhbmQgYnVncyBzaG91bGQgYmUgcmVwb3J0ZWQgcHJpdmF0ZWx5LCB2aWEgZW1haWwsIHRvIHRoZQpNaWNyb3NvZnQgU2VjdXJpdHkgUmVzcG9uc2UgQ2VudGVyIChNU1JDKSBhdApbc2VjdXJlQG1pY3Jvc29mdC5jb21dKG1haWx0bzpzZWN1cmVAbWljcm9zb2Z0LmNvbSkuIFlvdSBzaG91bGQgcmVjZWl2ZSBhCnJlc3BvbnNlIHdpdGhpbiAyNCBob3Vycy4gSWYgZm9yIHNvbWUgcmVhc29uIHlvdSBkbyBub3QsIHBsZWFzZSBmb2xsb3cgdXAgdmlhCmVtYWlsIHRvIGVuc3VyZSB3ZSByZWNlaXZlZCB5b3VyIG9yaWdpbmFsIG1lc3NhZ2UuIEZ1cnRoZXIgaW5mb3JtYXRpb24sCmluY2x1ZGluZyB0aGUgW01TUkMgUEdQXShodHRwczovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9zZWN1cml0eS9kbjYwNjE1NSkKa2V5LCBjYW4gYmUgZm91bmQgaW4gdGhlIFtTZWN1cml0eSBUZWNoQ2VudGVyXShodHRwczovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9zZWN1cml0eS9kZWZhdWx0KS4KCkZvciBhZGRpdGlvbmFsIGRldGFpbHMsIHNlZSBbU2VjdXJpdHkubWRdKFNFQ1VSSVRZLm1kKS4KCgojIFByaXZhY3kgJiBDb29raWVzCgpodHRwczovL2dvLm1pY3Jvc29mdC5jb20vZndsaW5rLz9MaW5rSWQ9NTIxODM5Cg== readmeEtag: '"8b20811b87008199b752cf464094cf01c0c681c2"' readmeLastModified: Tue, 04 Jun 2024 00:17:51 GMT repositoryId: 282320787 description: >- RESTler is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services. created: '2020-07-24T21:40:11Z' updated: '2024-09-03T06:47:15Z' language: Python archived: false stars: 2555 watchers: 35 forks: 291 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT repoEtag: '"09cb72193068afdebb6296df709657671f471887e1df539af43d8b141676847d"' repoLastModified: Tue, 03 Sep 2024 06:47:15 GMT foundInMaster: true oldLocations: - https://github.com/microsoft/restler - source: openapi3 tags repository: https://github.com/xiaoymin/swagger-bootstrap-ui v3: true id: 0ccf3516a99b6fdb818a427fe48ed72c repositoryMetadata: base64Readme: >- Cgpgc3dhZ2dlci1ib290c3RyYXAtdWlg6aG555uu5bey57uP5pu05ZCN5Li6S25pZmU0au+8jOWkp+WutuWOu+aWsOS7k+W6k+iOt+WPluacgOaWsOS7o+egge+8jOaIluiAheaPkGlzc3Vlc+OAgXByIAoK5paw5LuT5bqT5Zyw5Z2A77yaW2h0dHBzOi8vZ2l0aHViLmNvbS94aWFveW1pbi9rbmlmZTRqXShodHRwczovL2dpdGh1Yi5jb20veGlhb3ltaW4va25pZmU0aikgCg== readmeEtag: '"0a2482f90afe381c6c63863e71c415e3dd5f4b97"' readmeLastModified: Fri, 24 Feb 2023 06:40:18 GMT repositoryId: 528459414 description: Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution created: '2022-08-24T14:26:52Z' updated: '2024-08-16T01:58:48Z' language: HTML archived: false stars: 88 watchers: 2 forks: 19 owner: xiaoymin logo: https://avatars.githubusercontent.com/u/7894406?v=4 license: Apache-2.0 repoEtag: '"47002b73294ece96f984d7677ae17626da08e94205ee55297073a5c9f1ebc94f"' repoLastModified: Fri, 16 Aug 2024 01:58:48 GMT category: - Low-level Tooling - SDK foundInMaster: true - source: openapi3 tags repository: https://github.com/specify/open_api_tools v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIFRlc3RpbmcgRnJhbWV3b3JrCgpBIGZyYW1ld29yayBmb3IgdGVzdGluZyBhbiBBUEkgYmFzZWQgb24gaXRzIE9wZW5BUEkgc2NoZW1hLgoKVGhpcyBmcmFtZXdvcmsgYWxsb3dzIHRvIGNyZWF0ZSBhbnl0aGluZyBiZXR3ZWVuIGEgbWFudWFsIHRlc3QgYW5kIGEgZnVsbHkKYXV0b21hdGVkIHRlc3QuCgojIyBJbnN0YWxsYXRpb24KCkluc3RhbGwgUHl0aG9uICh2ZXJzaW9ucyAzLjYtMy45IHdoZXJlIHRlc3RlZCB0byB3b3JrKQoKQ2xvbmUgdGhpcyByZXBvc2l0b3J5CgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vc3BlY2lmeS9vcGVuX2FwaV90b29scwpjZCBvcGVuX2FwaV90b29scwpgYGAKCkNvbmZpZ3VyZSBhIHZpcnR1YWwgZW52aXJvbm1lbnQKCmBgYGJhc2gKcHl0aG9uIC1tIHZlbnYgdmVudgpgYGAKCkluc3RhbGwgdGhlIGRlcGVuZGVuY2llcwoKYGBgYmFzaAouL3ZlbnYvYmluL3BpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQKYGBgCgpJbnN0YWxsIHRoaXMgcGFja2FnZSBsb2NhbGx5CgpgYGBiYXNoCnBpcCBpbnN0YWxsIC1lIC4KYGBgCgojIyBVc2FnZQoKVGhlcmUgYXJlIHRocmVlIG1haW4gdXNlIGNhc2VzLCBlYWNoIGdvaW5nIGZyb20gbW9yZSBhdXRvbWF0ZWQgdG8gbW9yZSBtYW51YWwuCgpUaGUgbW9zdCBhdXRvbWF0ZWQgaXMgdGhlIGBmdWxsX3Rlc3RgLCB3aGljaCwgYnkgZGVmYXVsdCwgZ2VuZXJhdGVzIHRlc3QgVVJMcwp3aXRoIHNvbWUgcGFyYW1ldGVycyBiYXNlZCBvbiBPcGVuQVBJIHNjaGVtYSwgdGhlbiBzZW5kcyB0aG9zZSByZXF1ZXN0cyBhbmQKbWFrZXMgc3VyZSB0aGF0IHJlc3BvbnNlcyBtYXRjaCB0aGUgc2NoZW1hIGRlZmluaXRpb24uIEJ5IGRlZmF1bHQsIHRoaXMgbWV0aG9kCm9ubHkgdGVzdHMgYEdFVGAgZW5kcG9pbnRzIGFuZCBpdCBkb2VzIG5vdCBnZW5lcmF0ZSByZXF1ZXN0IGJvZHkgb2JqZWN0LgpIb3dldmVyLCB0aGlzIGNhbiBiZSBjaGFuZ2VkIGJ5IHByb3ZpZGluZyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMuIEFsc28sIHlvdSBjYW4KZGVmaW5lIHBhcmFtZXRlciBjb25zdHJhaW50cyAoZS54IGlmICdhJyBpcyBzZXQgdG8gVHJ1ZSwgdGhlbiByZXNwb25zZSBtdXN0CmNvbnRhaW4gJ2InKSB0byBmdXJ0aGVyIGltcHJvdmUgdGhlIHF1YWxpdHkgb2YgdGhpcyB0ZXN0LgoKTmV4dCwgdGhlcmUgaXMgYSBDaGFpbiB0ZXN0IHRoYXQgYWxsb3dzIHRvIHRlc3QgYSBjaGFpbiBvZiByZXF1ZXN0cyBhbmQgbWFrZQpzdXJlIHRoYXQgZWFjaCByZXF1ZXN0IGNvcnJlY3RseSBpbmZsdWVuY2VkIHRoZSByZXNwb25zZSBvZiB0aGUgbmV4dCByZXF1ZXN0LgoKRmluYWxseSwgZm9yIHRob3NlIHRoYXQgbmVlZCBjb21wbGV0ZSBjb250cm9sLCB0aGVyZSBpcyBhIGBtYWtlX3JlcXVlc3RgIG1ldGhvZAp3aGljaCBmYWNpbGl0YXRlcyB2YWxpZGF0aW5nIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMsIHNlbmRpbmcgYSBzaW5nbGUgcmVxdWVzdCwKdmFsaWRhdGluZyB0aGUgcmVzcG9uc2UgcGFyYW1ldGVycyBhbmQgcmV0dXJuaW5nIHRoZSByZXN1bHQuCgojIyBGdWxsIHRlc3QKClRoZSBoYW5kbGVyIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBib29sZWFuIHZhbHVlIHNheWluZyB2YWxpZGF0aW5nCndoZXRoZXIgdGhlIHJlc3BvbnNlIG9iamVjdCBpcyBhcyBleHBlY3RlZAoKIyMjIEJhc2ljIHVzYWdlCgpSdW4gdGhlIHRlc3QKCmBgYHB5dGhvbgpmcm9tIG9wZW5fYXBpX3Rvb2xzLnRlc3QuZnVsbF90ZXN0IGltcG9ydCBmdWxsX3Rlc3QKZnJvbSBvcGVuX2FwaV90b29scy5jb21tb24ubG9hZF9zY2hlbWEgaW1wb3J0IGxvYWRfc2NoZW1hCgpzY2hlbWEgPSBsb2FkX3NjaGVtYSgnb3Blbl9hcGkueWFtbCcpCgojIEVycm9yIG1lc3NhZ2Ugc2NoZW1hIGlzIGRlZmluZWQgaW4gb3Blbl9hcGlfdG9vbHMudmFsaWRhdGUuaW5kZXgKZGVmIGFmdGVyX2Vycm9yX29jY3VycmVkKCplcnJvcl9tZXNzYWdlKToKICAgIHByaW50KGVycm9yX21lc3NhZ2UpCgpmdWxsX3Rlc3QoCiAgICBzY2hlbWE9c2NoZW1hLAogICAgbWF4X3VybHNfcGVyX2VuZHBvaW50PTUwLAogICAgZmFpbGVkX3JlcXVlc3RfbGltaXQ9MTAsCiAgICBhZnRlcl9lcnJvcl9vY2N1cnJlZD1hZnRlcl9lcnJvcl9vY2N1cnJlZCwKKQpgYGAKClRoaXMgc2NyaXB0IHdvdWxkIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgdGVzdCBVUkxzIGJhc2VkIG9uCnlvdXIgQVBJIHNjaGVtYS4KCkFsbCByZXF1ZXN0cyB3b3VsZCBiZSBzZW50IHRvIHRoZSBmaXJzdCBzZXJ2ZXIKc3BlY2lmaWVkIGluIHRoZSBgc2VydmVyc2AgcGFydCBvZiB0aGUgQVBJIHNjaGVtYS4KCmBtYXhfdXJsc19wZXJfZW5kcG9pbnRgIHBhcmFtZXRlciBkZWZpbmVzIHRoZSBsaW1pdCBvZiBxdWVyaWVzIHRvIHNlbmQgdG8gYQpzaW5nbGUgZW5kcG9pbnQuCgpgZmFpbGVkX3JlcXVlc3RfbGltaXRgIG1ha2VzIHN1cmUgdGhhdCB0aGUgYGZ1bGxfdGVzdGAgZnVuY3Rpb24gcXVpdHMgd2l0aCBhbgpleGNlcHRpb24gaWYgYSBjZXJ0YWluIG51bWJlciBvZiByZXF1ZXN0cyBmYWlsZWQgdmFsaWRhdGlvbi4gVGhpcyBpcyB1c2VmdWwgZm9yCnByZXZlbnRpbmcgbmVlZGxlc3Mgc2VydmVyIGxvYWQgd2hlbiBhbGwgcmVxdWVzdHMgYXJlIGZhaWxpbmcgZm9yIHRoZSBzYW1lCnJlYXNvbi4KCiMjIyBTdXBwbHlpbmcgdGVzdCB2YWx1ZXMgZm9yIHBhcmFtZXRlcnMKCkJ5IGRlZmF1bHQsIHRoZSB0ZXN0IHJlYWRzIHRoZSBgZXhhbXBsZXNgIG9iamVjdApbaW4gdGhlIHNjaGVtYV0oaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2V4YW1wbGUtb2JqZWN0KSB0byBnZW5lcmF0ZQpyZXF1ZXN0IHBhcmFtZXRlcnMuIElmIGBleGFtcGxlc2Agd2VyZW4ndCBwcm92aWRlZCwgaXQgd291bGQgdHJ5IHRvIGNyZWF0ZSBzb21lCnRlc3QgdmFsdWVzIGJhc2VkIG9uIHRoZSBwYXJhbWV0ZXIgdHlwZS4KCklmIHlvdSB3b3VsZCBsaWtlIG1vcmUgY3VzdG9taXphdGlvbiwgYW4gb3B0aW9uYWwgYGFmdGVyX2V4YW1wbGVzX2dlbmVyYXRlZGAKaG9vayBjYW4gYmUgcHJvdmlkZWQgdG8gdGhlIGBmdWxsX3Rlc3RgIG1ldGhvZC4KCmBhZnRlcl9leGFtcGxlc19nZW5lcmF0ZWRgIG11c3QgYmUgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgYW4gZW5kcG9pbnQgbmFtZSBhcwp0aGUgZmlyc3QgcGFyYW1ldGVyIGFuZApbdGhlIHBhcmFtZXRlciBvYmplY3RdKGh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNwYXJhbWV0ZXItb2JqZWN0KQphcyB0aGUgc2Vjb25kIHBhcmFtZXRlciAodGhlIHBhcmFtZXRlciBvYmplY3Qgd291bGQgdmFyeSBkZXBlbmRpbmcgb24gaG93IGl0IGlzCmRlZmluZWQgaW4geW91ciBzY2hlbWEpLiBJbiB0dXJuLCB0aGUgZnVuY3Rpb24gbXVzdCByZXR1cm4gYSBsaXN0IG9mIHZhbGlkCmV4YW1wbGVzLgoKRXhhbXBsZSB1c2FnZToKCmBgYHB5dGhvbgpmcm9tIG9wZW5fYXBpX3Rvb2xzLnRlc3QuZnVsbF90ZXN0IGltcG9ydCBmdWxsX3Rlc3QKZnJvbSBvcGVuX2FwaV90b29scy5jb21tb24ubG9hZF9zY2hlbWEgaW1wb3J0IGxvYWRfc2NoZW1hCgpzY2hlbWEgPSBsb2FkX3NjaGVtYSgnb3Blbl9hcGkueWFtbCcpCgpkZWYgYWZ0ZXJfZXJyb3Jfb2NjdXJyZWQoKmVycm9yX21lc3NhZ2UpOgogICAgcHJpbnQoZXJyb3JfbWVzc2FnZSkKCmRlZiBhZnRlcl9leGFtcGxlc19nZW5lcmF0ZWQoCiAgICBlbmRwb2ludF9uYW1lLAogICAgcGFyYW1ldGVyLAogICAgYXV0b2dlbmVyYXRlZF9leGFtcGxlcwopOgogICAgaWYgZW5kcG9pbnRfbmFtZSA9PSAnL2FwaS9wb3N0cy8nIGFuZCBwYXJhbWV0ZXIubmFtZSA9PSAncG9zdF9pZCc6CiAgICAgICAgcmV0dXJuIFsxLCAyLCAzLCA0LCA1XQogICAgZWxpZiBwYXJhbWV0ZXIuc2NoZW1hLnR5cGUgPT0gJ3N0cmluZyc6CiAgICAgICAgIyBTb21lIG5hdWdodHkgc3RyaW5ncwogICAgICAgIHJldHVybiBbIsOFw43DjsOPy53Dk8OU76O/w5LDmsOG4piDIiwgIs6p4omIw6fiiJriiKvLnMK14omk4omlw7ciLCAi4oWb4oWc4oWd4oWeIl0KICAgIGVsc2U6CiAgICAgICAgcmV0dXJuIGF1dG9nZW5lcmF0ZWRfZXhhbXBsZXMKCmZ1bGxfdGVzdCgKICAgIHNjaGVtYT1zY2hlbWEsCiAgICBtYXhfdXJsc19wZXJfZW5kcG9pbnQ9NTAsCiAgICBmYWlsZWRfcmVxdWVzdF9saW1pdD0xMCwKICAgIGFmdGVyX2Vycm9yX29jY3VycmVkPWFmdGVyX2Vycm9yX29jY3VycmVkLAogICAgYWZ0ZXJfZXhhbXBsZXNfZ2VuZXJhdGVkPWFmdGVyX2V4YW1wbGVzX2dlbmVyYXRlZAopCmBgYAoKVGhlIHRoaXJkIHBhcmFtZXRlciBpbiBgYWZ0ZXJfZXhhbXBsZXNfZ2VuZXJhdGVkYCBpcyB0aGUgbGlzdCBvZiBleGFtcGxlcyB0aGF0CndlcmUgZ2VuZXJhdGVkIGJ5IHRoaXMgZnJhbWV3b3JrLiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhlIGdlbmVyYXRlZApleGFtcGxlcywgdGhlIGZ1bmN0aW9uIGNhbiByZXR1cm4gYmFjayB0aGlzIHZhbHVlLgoKTm90ZSB0aGF0IGBhZnRlcl9leGFtcGxlc19nZW5lcmF0ZWRgIHdvdWxkIGFsc28gZ2V0IGNhbGxlZCB3aXRoCmByZXF1ZXN0Qm9keWAgYXMgYSBwYXJhbWV0ZXIubmFtZS4gVGhpcyBhbGxvd3MgeW91IHRvIHRvIHByb3ZpZGUgYSBsaXN0IG9mCnJlcXVlc3Qgb2JqZWN0cyB0aGF0IHdvdWxkIGJlIHVzZWQgaW4gdGVzdGluZy4gRWFjaCByZXF1ZXN0IG9iamVjdCBzaG91bGQgYmUgb2YKdHlwZSBgKHN0ciwgc3RyKWAsIHdoZXJlIHRoZSBmaXJzdCBzdHJpbmcgaXMgdGhlIE1JTUUgdHlwZSBhbmQgdGhlIHNlY29uZCBvbmUgaXMKdGhlIHNlcmlhbGl6ZWQgcGF5bG9hZCB0aGF0IHdvdWxkIGJlIHNlbmQgd2l0aCB0aGUgcmVxdWVzdC4KCiMjIyBIYW5kbGluZyBhdXRoZW50aWNhdGlvbiBhbmQgYW1lbmRpbmcgdGhlIHJlcXVlc3Qgb2JqZWN0CgpgZnVsbF90ZXN0YCBhbHNvIHN1cHBvcnRzIGEgYGJlZm9yZV9yZXF1ZXN0X3NlbmRgIGhvb2sgdGhhdCBhbGxvd3MgeW91IHRvIG1vZGlmeQp0aGUgcmVxdWVzdCBvYmplY3QgYmVmb3JlIGEgcmVxdWVzdCBpcyBzZW50LiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBlZGl0CnRoZSBoZWFkZXJzIG9yIGFkZCBhdXRoZW50aWNhdGlvbiBjb29raWVzLgoKRXhhbXBsZSB1c2FnZToKCmBgYHB5dGhvbgpmcm9tIG9wZW5fYXBpX3Rvb2xzLnRlc3QuZnVsbF90ZXN0IGltcG9ydCBmdWxsX3Rlc3QKZnJvbSBvcGVuX2FwaV90b29scy5jb21tb24ubG9hZF9zY2hlbWEgaW1wb3J0IGxvYWRfc2NoZW1hCgpzY2hlbWEgPSBsb2FkX3NjaGVtYSgnb3Blbl9hcGkueWFtbCcpCgpkZWYgYmVmb3JlX3JlcXVlc3Rfc2VuZChlbmRwb2ludF9uYW1lLCByZXF1ZXN0X29iamVjdCk6CiAgICBpZiBlbmRwb2ludF9uYW1lID09ICcvYXBpL21haW4ve2lkfS8nOgogICAgICAgIGlmIHJlcXVlc3Rfb2JqZWN0LmhlYWRlcnMgaXMgTm9uZToKICAgICAgICAgICAgcmVxdWVzdF9vYmplY3QuaGVhZGVycyA9IHt9CiAgICAgICAgcmVxdWVzdF9vYmplY3QuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddPSdCYXNpYyBZV3hoWkdScGJqcHZjR1Z1YzJWellXMWwnCiAgICByZXR1cm4gcmVxdWVzdF9vYmplY3QKCmZ1bGxfdGVzdCgKICAgIHNjaGVtYT1zY2hlbWEsCiAgICBtYXhfdXJsc19wZXJfZW5kcG9pbnQ9NTAsCiAgICBmYWlsZWRfcmVxdWVzdF9saW1pdD0xMCwKICAgIGJlZm9yZV9yZXF1ZXN0X3NlbmQ9YmVmb3JlX3JlcXVlc3Rfc2VuZAopCmBgYAoKVGhlIHNjaGVtYSBmb3IgdGhlIHJlcXVlc3Qgb2JqZWN0IFtpcyBkZWZpbmVkCmhlcmVdKGh0dHBzOi8vZG9jcy5weXRob24tcmVxdWVzdHMub3JnL2VuL21hc3Rlci9hcGkvKS4KCiMjIyBEZWZpbmluZyBwYXJhbWV0ZXIgY29uc3RyYWlucwoKSWYgcmVzcG9uc2Ugb2JqZWN0IGRlcGVuZHMgb24gdGhlIHF1ZXJ5IHBhcmFtZXRlcnMsIHlvdSBjYW4KdGVzdCBmb3IgdGhlc2UgcmVsYXRpb25zaGlwcyBieSBhZGRpbmcgeW91ciBwYXJhbWV0ZXIgbmFtZXMKYW5kIGhhbmRsZXIgZnVuY3Rpb25zIHRvIHRoZSBgcGFyYW1ldGVyX2NvbnN0cmFpbnRzYCBkaWN0aW9uYXJ5IGFuZCBwYXNzaW5nIGl0CnRvIGBmdWxsX3Rlc3RgLgoKRWFjaCBoYW5kbGVyIGZ1bmN0aW9uIHdvdWxkIHJlY2VpdmUgdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6CgoqIHBhcmFtZXRlcl92YWx1ZSAoYW55KTogdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgdGhpcyBoYW5kbGVyCiAgd29ya3Mgd2l0aAoqIHBhdGggKHN0cik6IG5hbWUgb2YgdGhlIGN1cnJlbnQgZW5kcG9pbnQgKHVzZWZ1bCBpZiB0aGUgc2FtZQogIHBhcmFtZXRlciBpcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBlbmRwb2ludHMpCiogcmVzcG9uc2UgKGFueSk6IFtyZXNwb25zZQogIG9iamVjdF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi1yZXF1ZXN0cy5vcmcvZW4vbWFzdGVyL2FwaS8jcmVxdWVzdHMuUmVzcG9uc2UpLgoKRXhhbXBsZSB1c2FnZToKCmBgYHB5dGhvbgpmcm9tIG9wZW5fYXBpX3Rvb2xzLnRlc3QuZnVsbF90ZXN0IGltcG9ydCBmdWxsX3Rlc3QKZnJvbSBvcGVuX2FwaV90b29scy5jb21tb24ubG9hZF9zY2hlbWEgaW1wb3J0IGxvYWRfc2NoZW1hCgpzY2hlbWEgPSBsb2FkX3NjaGVtYSgnb3Blbl9hcGkueWFtbCcpCgpkZWYgZ2V0X3BvcHVsYXJfcG9zdHMoCiAgICBwYXJhbWV0ZXJfdmFsdWU6IGludCwKICAgIGVuZHBvaW50OiBzdHIsCiAgICByZXNwb25zZTogb2JqZWN0Cik6CiAgICBmb3IgcG9zdCBpbiByZXNwb25zZS5qc29uKCk6CiAgICAgICAgaWYgcG9zdC5wb3B1bGFyaXR5IDwgcGFyYW1ldGVyX3ZhbHVlOgogICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCiAgICAgICAgICAgICAgICBmJ3tlbmRwb2ludH0gZmFpbGVkIHRvIGZpbHRlciB0aGUgcG9zdHMgYnkgcG9wdWxhcml0eScKICAgICAgICAgICAgKQoKZnVsbF90ZXN0KAogICAgc2NoZW1hPXNjaGVtYSwKICAgIG1heF91cmxzX3Blcl9lbmRwb2ludD01MCwKICAgIGZhaWxlZF9yZXF1ZXN0X2xpbWl0PTEwLAogICAgcGFyYW1ldGVyX2NvbnN0cmFpbnRzPXsKCiAgICB9LAopCmBgYAoKIyMgQ2hhaW4gdGVzdAoKRm9yIG1vcmUgZmluZS1ncmFpbmVkIHRlc3RpbmcsIHRoZXJlIGlzIGEgYGNoYWluYCBtZXRob2QgdGhhdCBhbGxvd3MgdG8gdGVzdAphIGNoYWluIG9mIHJlcXVlc3QgVVJMcyB3aXRoIHJlcXVlc3QvcmVzcG9uc2Ugb2JqZWN0IHZhbGlkYXRpb24gYW5kIGFzc3VyYW5jZQp0aGF0IGVhY2ggcmVxdWVzdCBwcm9kdWNlZCBleHBlY3RlZCByZXN1bHRzLgoKRXhhbXBsZSB1c2FnZToKCmBgYHB5dGhvbgpmcm9tIG9wZW5fYXBpX3Rvb2xzLnRlc3QuY2hhaW4gaW1wb3J0IGNoYWluLCBSZXF1ZXN0LCBWYWxpZGF0ZQpmcm9tIG9wZW5fYXBpX3Rvb2xzLmNvbW1vbi5sb2FkX3NjaGVtYSBpbXBvcnQgbG9hZF9zY2hlbWEKaW1wb3J0IGpzb24KCnNjaGVtYSA9IGxvYWRfc2NoZW1hKCdvcGVuX2FwaS55YW1sJykKCnBvc3RfaWQgPSAzNDUKCmRlZiBjcmVhdGVfcG9zdChfYXJndW1lbnRzLCBfcmVzcG9uc2UsIF9wcmV2aW91c192YWx1ZXMpOgogICAgcmV0dXJuIHsKICAgICAgICAicmVxdWVzdEJvZHkiOiBbCiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICAgICAganNvbi5kdW1wcyhkaWN0KAogICAgICAgICAgICAgICAgaWQ9cG9zdF9pZCwKICAgICAgICAgICAgICAgIG5hbWU9J1Bvc3QgTmFtZScsCiAgICAgICAgICAgICAgICBib2R5PSdQb3N0IGNvbnRlbnQnCiAgICAgICAgICAgICkpCiAgICAgICAgXQogICAgfQoKY2hhaW4oCiAgICBzY2hlbWE9c2NoZW1hLAogICAgZGVmaW5pdGlvbj1bCiAgICAgICAgUmVxdWVzdChtZXRob2Q9J0dFVCcsIGVuZHBvaW50PScvYXBpL3Bvc3RzLycpLAogICAgICAgIFZhbGlkYXRlKAogICAgICAgICAgICB2YWxpZGF0ZT1cCiAgICAgICAgICAgICAgICBsYW1iZGEgcmVzcG9uc2U6IHBvc3RfaWQgbm90IGluIHJlc3BvbnNlLmpzb24oKS5wb3N0cwogICAgICAgICksCiAgICAgICAgUmVxdWVzdCgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgZW5kcG9pbnQ9Jy9hcGkvcG9zdHMvJywKICAgICAgICAgICAgcGFyYW1ldGVycz1jcmVhdGVfcG9zdAogICAgICAgICksCiAgICAgICAgVmFsaWRhdGUoCiAgICAgICAgICAgIHZhbGlkYXRlPWxhbWJkYSByZXNwb25zZTogcG9zdF9pZCBpbiByZXNwb25zZS5qc29uKCkucG9zdHMKICAgICAgICApLAogICAgICAgIFJlcXVlc3QoCiAgICAgICAgICAgIG1ldGhvZD0nREVMRVRFJywKICAgICAgICAgICAgZW5kcG9pbnQ9Jy9hcGkvcG9zdHMvJywKICAgICAgICAgICAgcGFyYW1ldGVycz17J2lkJzogcG9zdF9pZH0KICAgICAgICApLAogICAgICAgIFZhbGlkYXRlKAogICAgICAgICAgICB2YWxpZGF0ZT0gXAogICAgICAgICAgICAgICAgbGFtYmRhIHJlc3BvbnNlOiBwb3N0X2lkIG5vdCBpbiByZXNwb25zZS5qc29uKCkucG9zdHMKICAgICAgICApLAogICAgXSwKKQpgYGAKClRoZSByZXNwb25zZSBvYmplY3QgZm9yIHRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIFtpcyBkZXNjcmliZWQKaGVyZV0oaHR0cHM6Ly9kb2NzLnB5dGhvbi1yZXF1ZXN0cy5vcmcvZW4vbWFzdGVyL2FwaS8jcmVxdWVzdHMuUmVzcG9uc2UpLgoKS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGBlbmRwb2ludGAgc3RyaW5nIGluIHRoZSBgUmVxdWVzdGAgY2xhc3Mgc2hvdWxkIGJlCmlkZW50aWNhbCB0byBvbmUgb2YgdGhlIGVuZHBvaW50cyBpbiB5b3VyIE9wZW5BUEkgc2NoZW1hLiBGb3IgZXhhbXBsZSwgeW91CnNob3VsZCBzcGVjaWZ5IGAvYXBpL3VzZXIve3VzZXJfaWR9L2AgaW5zdGVhZCBvZiBgL2FwaS91c2VyLzEvYC4gQm90aCBwYXRoCnBhcmFtZXRlcnMgYW5kIHF1ZXJ5IHBhcmFtZXRlcnMgc2hvdWxkIGJlIHN1cHBsaWVkIGluIHRoZSBgcGFyYW1ldGVyc2AKZGljdGlvbmFyeSBvciByZXR1cm5lZCBieSB0aGUgYHBhcmFtZXRlcnNgIGZ1bmN0aW9uLiBJZiBgcGFyYW1ldGVyc2AgaXMgYQpmdW5jdGlvbiwgaXQgd291bGQgZ2V0IGNhbGxlZCB3aXRoIHRoZXNlIGFyZ3VtZW50czoKKGxpc3Rfb2ZfcGFyYW1ldGVyX29iamVjdHMsIHByZXZpb3VzX3Jlc3BvbnNlLCBwcmV2aW91c19wYXJhbWV0ZXJfdmFsdWVzKS4KQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBvbWl0IHRoZSBgcGFyYW1ldGVyc2Aga2V5IGFsdG9nZXRoZXIgaWYgdGhlIGVuZHBvaW50CmRvZXNuJ3QgZXhwZWN0IGFueS4KCkFsc28sIGBSZXF1ZXN0YCBjYW4gb21pdCBgcGFyYW1ldGVyc2AgaWYgdGhlcmUgYXJlbid0IGFueSB0byBkZWZpbmUuCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3VwcGx5IGEgZGljdGlvbmFyeSwgb3IgYSBmdW5jdGlvbiB0aGF0IHdvdWxkIGdldCBjYWxsZWQKd2l0aCB0aHJlZSBhcmd1bWVudHM6CihsaXN0X29mX3BhcmFtZXRlcl9vYmplY3RzLCBwcmV2aW91c19yZXNwb25zZSwgcHJldmlvdXNfcGFyYW1ldGVyX3ZhbHVlcykuCgpBZGRpdGlvbmFsbHksIHlvdSBjYW4Kc3VwcGx5IGEgYHJlcXVlc3RCb2R5YCBwYXJhbWV0ZXIuIFVubGlrZSBtb3N0IHBhcmFtZXRlcnMsIGByZXF1ZXN0Qm9keWAgbXVzdCBiZQphIGBUdXBsZVtzdHIsc3RyXWAgd2hlcmUgdGhlIGZpcnN0IHN0cmluZyBpcyBhIE1JTUUgdHlwZSBhbmQgdGhlIHNlY29uZCBzdHJpbmcKaXMgYSBzZXJpYWxpemVkIHZlcnNpb24gb2YgdGhlIHJlcXVlc3QgYm9keS4KClRoZSBgVmFsaWRhdGVgIGNsYXNzIGV4cGVjdHMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcmVzcG9uc2Ugb2JqZWN0IGFuZApyZXR1cm5zIGEgYm9vbGVhbiBzYXlpbmcgd2hldGhlciBhIHZhbHVlIGlzIHZhbGlkLiBPbiBmYWxzZSwgdGhlIGNoYWluIHN0b3BzLgpOb3RlLCBpZiBgVmFsaWRhdGVgIHJldHVybmVkIGZhbHNlLCBhbiBleGNlcHRpb24gaXMgbm90IHRocm93biwgYnV0IHlvdSBjYW4KdGhyb3cgb25lIG9uIHlvdXIgb3duIGlmIHlvdSBuZWVkIHRvLgoKVGhlIGBjaGFpbmAgbWV0aG9kIGFsc28gYWNjZXB0cyBhIGBiZWZvcmVfcmVxdWVzdF9zZW5kYCBwYXJhbWV0ZXIsIHdoaWNoIGlzCmRlc2NyaWJlZCBpbiBkZXRhaWwgaW4gW3RoZSBwcmV2aW91cyBzZWN0aW9uCl0oI2hhbmRsaW5nLWF1dGhlbnRpY2F0aW9uLWFuZC1hbWVuZGluZy10aGUtcmVxdWVzdC1vYmplY3QpCgojIyBNYW51YWwgdGVzdAoKYG1ha2VfcmVxdWVzdGAgbWV0aG9kIGlzIG1vc3QgdXNlZnVsIHdoZW4geW91IG5lZWQgY29tcGxldGUgY29udHJvbCBvdmVyIHRoZQpyZXF1ZXN0cyB0aGF0IGdldCBzZW5kLCBidXQgc3RpbGwgbmVlZCB0aGUgYXNzdXJhbmNlIHRoYXQgcmVxdWVzdC9yZXNwb25zZQpvYmplY3RzIGNvbmZpcm0gdG8gc2NoZW1hLgoKRXhhbXBsZSB1c2FnZToKCmBgYHB5dGhvbgpmcm9tIG9wZW5fYXBpX3Rvb2xzLnZhbGlkYXRlLmluZGV4IGltcG9ydCBtYWtlX3JlcXVlc3QKZnJvbSBvcGVuX2FwaV90b29scy5jb21tb24ubG9hZF9zY2hlbWEgaW1wb3J0IGxvYWRfc2NoZW1hCmltcG9ydCBqc29uCgpzY2hlbWEgPSBsb2FkX3NjaGVtYSgnb3Blbl9hcGkueWFtbCcpCgpyZXNwb25zZSA9IG1ha2VfcmVxdWVzdCgKICBzY2hlbWE9c2NoZW1hLAogIHJlcXVlc3RfdXJsPSdodHRwOi8vbG9jYWxob3N0L2FwaS9wb3N0cy8xLz91cGRhdGVfaW5kZXhlcz10cnVlJywKICBlbmRwb2ludF9uYW1lPScvYXBpL3Bvc3RzLzxwb3N0X2lkPicsCiAgbWV0aG9kPSdQT1NUJywKICBib2R5PSgnYXBwbGljYXRpb24vanNvbicsIGpzb24uZHVtcHMoeyJuYW1lIjogJ05ldyBwb3N0IG5hbWUnfSkpLAopCgpgYGAKCkZvciBhZGRpdGlvbmFsIGNvbnRyb2wsIHRoZSBgbWFrZV9yZXF1ZXN0YCBtZXRob2QgYWxzbyBhY2NlcHRzIGEKYGJlZm9yZV9yZXF1ZXN0X3NlbmRgIHBhcmFtZXRlciwgd2hpY2ggaXMgZGVzY3JpYmVkIGluIGRldGFpbCBpbiBbdGhlIHByZXZpb3VzCnNlY3Rpb25dKCNoYW5kbGluZy1hdXRoZW50aWNhdGlvbi1hbmQtYW1lbmRpbmctdGhlLXJlcXVlc3Qtb2JqZWN0KS4KCklmIHlvdSB3YW50IHRvIG9ubHkgdmVyaWZ5IHRoZSByZXF1ZXN0IG9iamVjdCwgb3Igd2FudCB0byBleGVjdXRlIHNvbWUKYWRkaXRpb25hbCBjb2RlIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlcXVlc3QsIHRoZSBgbWFrZV9yZXF1ZXN0YCBjYW4gYmUKYnJva2VuIGRvd24gaW50byBgcHJlcGFyZV9yZXF1ZXN0YCBhbmQgYGZpbGVfcmVxdWVzdGAgbWV0aG9kcy4gVGhleSBhcmUgZGVmaW5lZAppbiBgb3Blbl9hcGlfdG9vbHMvdmFsaWRhdGUvaW5kZXgucHlgLgo= readmeEtag: '"a7af0734c202b1529b5714e250e6704e83ad128d"' readmeLastModified: Sun, 03 Dec 2023 21:12:15 GMT repositoryId: 348397827 description: 'A collection of useful tools powered by Open API schema ' created: '2021-03-16T15:25:48Z' updated: '2023-10-09T03:36:20Z' language: Python archived: false stars: 0 watchers: 3 forks: 0 owner: specify logo: https://avatars.githubusercontent.com/u/2906014?v=4 license: MIT repoEtag: '"d4e8b747ee97e57a52c952ff79d9ebffcf9f8455a08dcae6b21b536721264a1e"' repoLastModified: Mon, 09 Oct 2023 03:36:20 GMT foundInMaster: true category: Server Implementations id: c1acd58744726314a1310f44952bae71 - source: openapi3 tags repository: https://github.com/cmwylie19/gloo-portal-demo v3: true repositoryMetadata: base64Readme: >- IyBJbnN0YWxsIEdsb28gUG9ydGFsCgojIyBBZGQgdGhlIGhlbG0gcmVwbwpgYGAKaGVsbSByZXBvIGFkZCBkZXYtcG9ydGFsIGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9kZXYtcG9ydGFsLWhlbG0KaGVsbSByZXBvIHVwZGF0ZQpgYGAKCiMjIENyZWF0ZSBoZWxtIHZhbHVlcyBvdmVycmlkZQpgYGAKY2F0IDw8IEVPRiA+IGdsb28tdmFsdWVzLnlhbWwKZ2xvbzoKICBlbmFibGVkOiB0cnVlICMgRW5hYmxlcyBpbnRlZ3JhdGlvbiB3aXRoIEdsb28gRWRnZSBFbnRlcnByaXNlCmxpY2Vuc2VLZXk6CiAgc2VjcmV0UmVmOgogICAgbmFtZTogbGljZW5zZQogICAgbmFtZXNwYWNlOiBnbG9vLXN5c3RlbQogICAga2V5OiBsaWNlbnNlLWtleQpFT0YKYGBgCgojIyBDcmVhdGUgdGhlIG5hbWVzcGFjZSBhbmQgaW5zdGFsbCB0aGUgaGVsbSBjaGFydApgYGAKayBjcmVhdGUgbnMgZGV2LXBvcnRhbApoZWxtIGluc3RhbGwgZGV2LXBvcnRhbCBkZXYtcG9ydGFsL2Rldi1wb3J0YWwgLW4gZGV2LXBvcnRhbCAtLXZhbHVlcyBnbG9vLXZhbHVlcy55YW1sCmBgYA== readmeEtag: '"b96bbff7b3b3226566129df502833bc7785e80bf"' readmeLastModified: Wed, 30 Jun 2021 13:16:07 GMT repositoryId: 381358694 description: >- Tasks backend service with OpenAPI v3 doc that stores tasks in NoSQL database. created: '2021-06-29T12:34:52Z' updated: '2021-06-30T13:16:16Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: cmwylie19 logo: https://avatars.githubusercontent.com/u/1096507?v=4 repoEtag: '"83a6296a6e24bcd878d500ef4de8092f8dc33cb1e3de56691f209143f90d6c00"' repoLastModified: Wed, 30 Jun 2021 13:16:16 GMT foundInMaster: true category: Documentation id: bca57bb7f6cf16e67cd66a8722405ea1 - source: openapi3 tags repository: https://github.com/satabratapaul-gitac/managex v3: true repositoryMetadata: base64Readme: >- IyBNYW5hZ2VYCkFwcGxpY2F0aW9uIHdoaWNoIGhlbHBzIGFuIEhSIG9yIE1hbmFnZXIgLCB0byBtYW5hZ2UgdGhlIGRldGFpbHMgYW5kIGluZm9ybWF0aW9uIGZvciB2YXJpb3VzIGVtcGxveWVlcyBvZiBhbiBvcmdhbml6YXRpb24KCkl0IHByb3ZpZGVzIHRoZXNlIGZ1bmN0aW9uYWxpdGllczoKClJlZ2lzdHJhdGlvbiBvZiBhIFVzZXIgKEhSIG9yIE1hbmFnZXIpPGJyIC8+CkxvZ2dpbmcgSW4gdGhlIHVzZXI8YnIgLz4KRmV0Y2hpbmcgYWxsIEVtcGxveWVlIERldGFpbHM8YnIgLz4KQWRkaW5nIGEgTmV3IEVtcGxveWVlIHRvIHRoZSBzeXN0ZW08YnIgLz4KVXBkYXRpbmcgYW4gRXhpc3RpbmcgRW1wbG95ZWUncyBkZXRhaWxzPGJyIC8+CkRlbGV0aW5nIGFuIEV4aXN0aW5nIEVtcGxveWVlPGJyIC8+CkxvZ2lnbmcgT3V0IHRoZSBVc2VyPGJyIC8+Cg== readmeEtag: '"5025a0e7c38052d84dffac24d4d085a19209be01"' readmeLastModified: Sat, 29 Jan 2022 09:44:14 GMT repositoryId: 452796275 description: >- Application which helps an HR or Manager , to manage the details and information for various employees of an organization created: '2022-01-27T18:22:35Z' updated: '2022-02-11T08:36:53Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 2 owner: SatabrataPaul-GitAc logo: https://avatars.githubusercontent.com/u/69891965?v=4 repoEtag: '"1b23d1cf22a29c16b89a3108c4536ee7c23d69ed156a461b5a8bb811a5bb275b"' repoLastModified: Fri, 11 Feb 2022 08:36:53 GMT foundInMaster: true category: - Parsers - Server Implementations id: 377aa09b014636fdf56671807bdf027b - source: openapi3 tags repository: https://github.com/brand4impact/brand4impact-java-sdk v3: true repositoryMetadata: base64Readme: >- IyBicmFuZDRpbXBhY3QtamF2YS1jbGllbnQKClRvdGFsIEFQSSBSZWZlcmVuY2UKLSBBUEkgdmVyc2lvbjogMC4wLjEKICAtIEJ1aWxkIGRhdGU6IDIwMjItMDMtMzFUMTU6MzU6NDMuOTA5KzAyOjAwW0V1cm9wZS9QYXJpc10KCkVzdGUgY29udHJhdG8gc2UgdXNhcmEgcGFyYSBnZW5lcmFyIGxvcyBjbGllbnRlcyBjb24gdG9kb3MgbG9zIHNlcnZpY2lvcyBuZWNlc2FyaW9zLgoKYCFVc28gZXhjbHVzaXZvIGludGVybm8hYAogICAgICAgICAgICAgCi0tLQoKCiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBbaHR0cDovL3d3dy5icmFuZDRpbXBhY3QuY29tXShodHRwOi8vd3d3LmJyYW5kNGltcGFjdC5jb20pCgoqQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKSoKCgojIyBSZXF1aXJlbWVudHMKCkJ1aWxkaW5nIHRoZSBBUEkgY2xpZW50IGxpYnJhcnkgcmVxdWlyZXM6CjEuIEphdmEgMS44KwoyLiBNYXZlbi9HcmFkbGUKCiMjIEluc3RhbGxhdGlvbgoKVG8gaW5zdGFsbCB0aGUgQVBJIGNsaWVudCBsaWJyYXJ5IHRvIHlvdXIgbG9jYWwgTWF2ZW4gcmVwb3NpdG9yeSwgc2ltcGx5IGV4ZWN1dGU6CgpgYGBzaGVsbAptdm4gY2xlYW4gaW5zdGFsbApgYGAKClRvIGRlcGxveSBpdCB0byBhIHJlbW90ZSBNYXZlbiByZXBvc2l0b3J5IGluc3RlYWQsIGNvbmZpZ3VyZSB0aGUgc2V0dGluZ3Mgb2YgdGhlIHJlcG9zaXRvcnkgYW5kIGV4ZWN1dGU6CgpgYGBzaGVsbAptdm4gY2xlYW4gZGVwbG95CmBgYAoKUmVmZXIgdG8gdGhlIFtPU1NSSCBHdWlkZV0oaHR0cDovL2NlbnRyYWwuc29uYXR5cGUub3JnL3BhZ2VzL29zc3JoLWd1aWRlLmh0bWwpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIE1hdmVuIHVzZXJzCgpBZGQgdGhpcyBkZXBlbmRlbmN5IHRvIHlvdXIgcHJvamVjdCdzIFBPTToKCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICA8Z3JvdXBJZD5jb20uYnJhbmQ0aW1wYWN0PC9ncm91cElkPgogIDxhcnRpZmFjdElkPmJyYW5kNGltcGFjdC1qYXZhLWNsaWVudDwvYXJ0aWZhY3RJZD4KICA8dmVyc2lvbj4wLjAuMTwvdmVyc2lvbj4KICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyMgR3JhZGxlIHVzZXJzCgpBZGQgdGhpcyBkZXBlbmRlbmN5IHRvIHlvdXIgcHJvamVjdCdzIGJ1aWxkIGZpbGU6CgpgYGBncm9vdnkKY29tcGlsZSAiY29tLmJyYW5kNGltcGFjdDpicmFuZDRpbXBhY3QtamF2YS1jbGllbnQ6MC4wLjEiCmBgYAoKIyMjIE90aGVycwoKQXQgZmlyc3QgZ2VuZXJhdGUgdGhlIEpBUiBieSBleGVjdXRpbmc6CgpgYGBzaGVsbAptdm4gY2xlYW4gcGFja2FnZQpgYGAKClRoZW4gbWFudWFsbHkgaW5zdGFsbCB0aGUgZm9sbG93aW5nIEpBUnM6CgoqIGB0YXJnZXQvYnJhbmQ0aW1wYWN0LWphdmEtY2xpZW50LTAuMC4xLmphcmAKKiBgdGFyZ2V0L2xpYi8qLmphcmAKCiMjIEdldHRpbmcgU3RhcnRlZAoKUGxlYXNlIGZvbGxvdyB0aGUgW2luc3RhbGxhdGlvbl0oI2luc3RhbGxhdGlvbikgaW5zdHJ1Y3Rpb24gYW5kIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBKYXZhIGNvZGU6CgpgYGBqYXZhCgovLyBJbXBvcnQgY2xhc3NlczoKaW1wb3J0IGNvbS5icmFuZDRpbXBhY3QuY2xpZW50Lmludm9rZXIuQXBpQ2xpZW50OwppbXBvcnQgY29tLmJyYW5kNGltcGFjdC5jbGllbnQuaW52b2tlci5BcGlFeGNlcHRpb247CmltcG9ydCBjb20uYnJhbmQ0aW1wYWN0LmNsaWVudC5pbnZva2VyLkNvbmZpZ3VyYXRpb247CmltcG9ydCBjb20uYnJhbmQ0aW1wYWN0LmNsaWVudC5pbnZva2VyLmF1dGguKjsKaW1wb3J0IGNvbS5icmFuZDRpbXBhY3QuY2xpZW50Lmludm9rZXIubW9kZWxzLio7CmltcG9ydCBjb20uYnJhbmQ0aW1wYWN0LmNsaWVudC5hcGkuQXNzZXRBcGk7CgpwdWJsaWMgY2xhc3MgRXhhbXBsZSB7CiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgQXBpQ2xpZW50IGRlZmF1bHRDbGllbnQgPSBDb25maWd1cmF0aW9uLmdldERlZmF1bHRBcGlDbGllbnQoKTsKICAgIGRlZmF1bHRDbGllbnQuc2V0QmFzZVBhdGgoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9iYWNrZW5kIik7CiAgICAKICAgIC8vIENvbmZpZ3VyZSBIVFRQIGJlYXJlciBhdXRob3JpemF0aW9uOiBCZWFyZXJBdXRoZW50aWNhdGlvbgogICAgSHR0cEJlYXJlckF1dGggQmVhcmVyQXV0aGVudGljYXRpb24gPSAoSHR0cEJlYXJlckF1dGgpIGRlZmF1bHRDbGllbnQuZ2V0QXV0aGVudGljYXRpb24oIkJlYXJlckF1dGhlbnRpY2F0aW9uIik7CiAgICBCZWFyZXJBdXRoZW50aWNhdGlvbi5zZXRCZWFyZXJUb2tlbigiQkVBUkVSIFRPS0VOIik7CgogICAgQXNzZXRBcGkgYXBpSW5zdGFuY2UgPSBuZXcgQXNzZXRBcGkoZGVmYXVsdENsaWVudCk7CiAgICBTdHJpbmcgdG9rZW4gPSAidG9rZW5fZXhhbXBsZSI7IC8vIFN0cmluZyB8IFRoZSB1bmlxdWUgdG9rZW4gZm9yIHRoZSBhc3NldC4KICAgIHRyeSB7CiAgICAgIFBsYXRmb3JtQXNzZXQgcmVzdWx0ID0gYXBpSW5zdGFuY2UuZ2V0QXNzZXQodG9rZW4pOwogICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0KTsKICAgIH0gY2F0Y2ggKEFwaUV4Y2VwdGlvbiBlKSB7CiAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBBc3NldEFwaSNnZXRBc3NldCIpOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlN0YXR1cyBjb2RlOiAiICsgZS5nZXRDb2RlKCkpOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlYXNvbjogIiArIGUuZ2V0UmVzcG9uc2VCb2R5KCkpOwogICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlc3BvbnNlIGhlYWRlcnM6ICIgKyBlLmdldFJlc3BvbnNlSGVhZGVycygpKTsKICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKICAgIH0KICB9Cn0KCmBgYAoKIyMgRG9jdW1lbnRhdGlvbiBmb3IgQVBJIEVuZHBvaW50cwoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwOi8vbG9jYWxob3N0OjgwODAvYmFja2VuZCoKCkNsYXNzIHwgTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCipBc3NldEFwaSogfCBbKipnZXRBc3NldCoqXShkb2NzL0Fzc2V0QXBpLm1kI2dldEFzc2V0KSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vYXNzZXQve3Rva2VufSB8IEdldCBhIHNpbmdsZSBhc3NldAoqQXNzZXRBcGkqIHwgWyoqZ2V0QXNzZXRzKipdKGRvY3MvQXNzZXRBcGkubWQjZ2V0QXNzZXRzKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vYXNzZXQgfCBHZXQgYSBzZXQgb2YgYXNzZXRzCipDYW1wYWlnbkFwaSogfCBbKipjcmVhdGVDYW1wYWlnbioqXShkb2NzL0NhbXBhaWduQXBpLm1kI2NyZWF0ZUNhbXBhaWduKSB8ICoqUE9TVCoqIC9yZXN0L3BsYXRmb3JtL2NhbXBhaWduIHwgQ3JlYXRlIGEgbmV3IGNhbXBhaWduCipDYW1wYWlnbkFwaSogfCBbKipnZXRDYW1wYWlnbioqXShkb2NzL0NhbXBhaWduQXBpLm1kI2dldENhbXBhaWduKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vY2FtcGFpZ24ve3Rva2VufSB8IEdldCBhIHNpbmdsZSBjYW1wYWlnbgoqQ2FtcGFpZ25BcGkqIHwgWyoqZ2V0Q2FtcGFpZ25zKipdKGRvY3MvQ2FtcGFpZ25BcGkubWQjZ2V0Q2FtcGFpZ25zKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vY2FtcGFpZ24gfCBHZXQgYSBzZXQgb2YgY2FtcGFpZ25zCipDYW1wYWlnbkFwaSogfCBbKipzd2l0Y2hDYW1wYWlnbioqXShkb2NzL0NhbXBhaWduQXBpLm1kI3N3aXRjaENhbXBhaWduKSB8ICoqUFVUKiogL3Jlc3QvcGxhdGZvcm0vY2FtcGFpZ24ve3Rva2VufS9zd2l0Y2ggfCBTd2l0Y2ggY2FtcGFpZ24gc3RhdHVzCipDYW1wYWlnbkFwaSogfCBbKip1cGRhdGVDYW1wYWlnbioqXShkb2NzL0NhbXBhaWduQXBpLm1kI3VwZGF0ZUNhbXBhaWduKSB8ICoqUFVUKiogL3Jlc3QvcGxhdGZvcm0vY2FtcGFpZ24ve3Rva2VufSB8IFVwZGF0ZSBhIGNhbXBhaWduCipDb21wYW55QXBpKiB8IFsqKmNyZWF0ZUNvbXBhbnkqKl0oZG9jcy9Db21wYW55QXBpLm1kI2NyZWF0ZUNvbXBhbnkpIHwgKipQT1NUKiogL3Jlc3QvcGxhdGZvcm0vY29tcGFueSB8IENyZWF0ZSBhIG5ldyBDb21wYW55CipDb21wYW55QXBpKiB8IFsqKmdldENvbXBhbnkqKl0oZG9jcy9Db21wYW55QXBpLm1kI2dldENvbXBhbnkpIHwgKipHRVQqKiAvcmVzdC9wbGF0Zm9ybS9jb21wYW55IHwgR2V0IHlvdXIgQ29tcGFueQoqQ29tcGFueUFwaSogfCBbKip1cGRhdGVDb21wYW55KipdKGRvY3MvQ29tcGFueUFwaS5tZCN1cGRhdGVDb21wYW55KSB8ICoqUFVUKiogL3Jlc3QvcGxhdGZvcm0vY29tcGFueSB8IFVwZGF0ZSBDb21wYW55IGRhdGEKKkNvbXBhbnlBcGkqIHwgWyoqdXBkYXRlQ29tcGFueUxlZ2FsKipdKGRvY3MvQ29tcGFueUFwaS5tZCN1cGRhdGVDb21wYW55TGVnYWwpIHwgKipQVVQqKiAvcmVzdC9wbGF0Zm9ybS9jb21wYW55L2xlZ2FsIHwgVXBkYXRlIGxlZ2FsIENvbXBhbnkgaW5mbwoqQ29tcGFueUFwaSogfCBbKip1cGRhdGVDb21wYW55VG9waWMqKl0oZG9jcy9Db21wYW55QXBpLm1kI3VwZGF0ZUNvbXBhbnlUb3BpYykgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL2NvbXBhbnkvdG9waWMgfCBVcGRhdGUgc2VsZWN0ZWQgdG9waWNzIGZvciB5b3VyIENvbXBhbnkKKkludm9pY2VBcGkqIHwgWyoqZ2V0SW52b2ljZSoqXShkb2NzL0ludm9pY2VBcGkubWQjZ2V0SW52b2ljZSkgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL2ludm9pY2Uve3Rva2VufSB8IEdldCBhIHNpbmdsZSBpbnZvaWNlCipJbnZvaWNlQXBpKiB8IFsqKmdldEludm9pY2VzKipdKGRvY3MvSW52b2ljZUFwaS5tZCNnZXRJbnZvaWNlcykgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL2ludm9pY2UgfCBHZXQgYSBzZXQgb2YgaW52b2ljZXMKKk5nb0FwaSogfCBbKipjcmVhdGVOZ28qKl0oZG9jcy9OZ29BcGkubWQjY3JlYXRlTmdvKSB8ICoqUE9TVCoqIC9yZXN0L3BsYXRmb3JtL25nbyB8IENyZWF0ZSBhIG5ldyBOR08KKk5nb0FwaSogfCBbKipnZXROZ28qKl0oZG9jcy9OZ29BcGkubWQjZ2V0TmdvKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vbmdvIHwgR2V0IHlvdXIgTkdPCipOZ29BcGkqIHwgWyoqdXBkYXRlTmdvKipdKGRvY3MvTmdvQXBpLm1kI3VwZGF0ZU5nbykgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL25nbyB8IFVwZGF0ZSBOR08gZGF0YQoqTmdvQXBpKiB8IFsqKnVwZGF0ZU5nb0JhbmsqKl0oZG9jcy9OZ29BcGkubWQjdXBkYXRlTmdvQmFuaykgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL25nby9iYW5rIHwgVXBkYXRlIGJhbmsgTkdPIGluZm8KKk5nb0FwaSogfCBbKip1cGRhdGVOZ29MZWdhbCoqXShkb2NzL05nb0FwaS5tZCN1cGRhdGVOZ29MZWdhbCkgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL25nby9sZWdhbCB8IFVwZGF0ZSBsZWdhbCBOR08gaW5mbwoqTmdvQXBpKiB8IFsqKnVwbG9hZE5nb0ZpbGVzKipdKGRvY3MvTmdvQXBpLm1kI3VwbG9hZE5nb0ZpbGVzKSB8ICoqUFVUKiogL3Jlc3QvcGxhdGZvcm0vbmdvL3VwbG9hZCB8IFVwbG9hZCBOR08gZmlsZXMKKlByb2plY3RBcGkqIHwgWyoqY3JlYXRlUHJvamVjdCoqXShkb2NzL1Byb2plY3RBcGkubWQjY3JlYXRlUHJvamVjdCkgfCAqKlBPU1QqKiAvcmVzdC9wbGF0Zm9ybS9wcm9qZWN0IHwgQ3JlYXRlIGEgbmV3IHByb2plY3QKKlByb2plY3RBcGkqIHwgWyoqZ2V0UHJvamVjdCoqXShkb2NzL1Byb2plY3RBcGkubWQjZ2V0UHJvamVjdCkgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3Byb2plY3Qve3Rva2VufSB8IEdldCBhIHNpbmdsZSBwcm9qZWN0CipQcm9qZWN0QXBpKiB8IFsqKmdldFByb2plY3RzKipdKGRvY3MvUHJvamVjdEFwaS5tZCNnZXRQcm9qZWN0cykgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3Byb2plY3QgfCBHZXQgYSBzZXQgb2YgcHJvamVjdHMKKlByb2plY3RBcGkqIHwgWyoqc3dpdGNoUHJvamVjdCoqXShkb2NzL1Byb2plY3RBcGkubWQjc3dpdGNoUHJvamVjdCkgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL3Byb2plY3Qve3Rva2VufS9zd2l0Y2ggfCBTd2l0Y2ggcHJvamVjdCBzdGF0dXMKKlByb2plY3RBcGkqIHwgWyoqdXBkYXRlUHJvamVjdCoqXShkb2NzL1Byb2plY3RBcGkubWQjdXBkYXRlUHJvamVjdCkgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL3Byb2plY3Qve3Rva2VufSB8IFVwZGF0ZSBhIHByb2plY3QKKlNlY3RvckFwaSogfCBbKipnZXRTZWN0b3IqKl0oZG9jcy9TZWN0b3JBcGkubWQjZ2V0U2VjdG9yKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vc2VjdG9yL3t0b2tlbn0gfCBHZXQgYSBzaW5nbGUgc2VjdG9yCipTZWN0b3JBcGkqIHwgWyoqZ2V0U2VjdG9ycyoqXShkb2NzL1NlY3RvckFwaS5tZCNnZXRTZWN0b3JzKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vc2VjdG9yIHwgR2V0IGEgc2V0IG9mIHNlY3RvcnMKKlNlY3VyaXR5QXBpKiB8IFsqKmdldEpXVFRva2VuKipdKGRvY3MvU2VjdXJpdHlBcGkubWQjZ2V0SldUVG9rZW4pIHwgKipHRVQqKiAvc2VjdXJpdHkvand0IHwgZ2V0IEpXVCB0b2tlbgoqVG9waWNBcGkqIHwgWyoqZ2V0VG9waWMqKl0oZG9jcy9Ub3BpY0FwaS5tZCNnZXRUb3BpYykgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3RvcGljL3t0b2tlbn0gfCBHZXQgYSBzaW5nbGUgdG9waWMKKlRvcGljQXBpKiB8IFsqKmdldFRvcGljcyoqXShkb2NzL1RvcGljQXBpLm1kI2dldFRvcGljcykgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3RvcGljIHwgR2V0IGEgc2V0IG9mIHRvcGljcwoqVXNlckFwaSogfCBbKipjaGFuZ2VVc2VyUGFzc3dvcmQqKl0oZG9jcy9Vc2VyQXBpLm1kI2NoYW5nZVVzZXJQYXNzd29yZCkgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL3VzZXIve3Rva2VufS9jaGFuZ2VwYXNzd29yZCB8IENoYW5nZSB1c2VyJiMzOTtzIHBhc3N3b3JkCipVc2VyQXBpKiB8IFsqKmNvbmZpcm1Vc2VyKipdKGRvY3MvVXNlckFwaS5tZCNjb25maXJtVXNlcikgfCAqKlBPU1QqKiAvcmVzdC9wbGF0Zm9ybS91c2VyL3t0b2tlbn0gfCBBY3RpdmF0ZSBhIHVzZXIKKlVzZXJBcGkqIHwgWyoqZ2V0VXNlcioqXShkb2NzL1VzZXJBcGkubWQjZ2V0VXNlcikgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3VzZXIve3Rva2VufSB8IEdldCBhIHNpbmdsZSB1c2VyCipVc2VyQXBpKiB8IFsqKmdldFVzZXJzKipdKGRvY3MvVXNlckFwaS5tZCNnZXRVc2VycykgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3VzZXIgfCBHZXQgYSBzZXQgb2YgdXNlcnMKKlVzZXJBcGkqIHwgWyoqaW52aXRlVXNlcioqXShkb2NzL1VzZXJBcGkubWQjaW52aXRlVXNlcikgfCAqKlBPU1QqKiAvcmVzdC9wbGF0Zm9ybS91c2VyL2ludml0ZSB8IEludml0ZSBhIG5ldyB1c2VyCipVc2VyQXBpKiB8IFsqKnJlc2V0VXNlclBhc3N3b3JkKipdKGRvY3MvVXNlckFwaS5tZCNyZXNldFVzZXJQYXNzd29yZCkgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL3VzZXIvcmVzZXRwYXNzd29yZCB8IFJlc2V0IHVzZXImIzM5O3MgcGFzc3dvcmQKKlVzZXJBcGkqIHwgWyoqc3dpdGNoVXNlcioqXShkb2NzL1VzZXJBcGkubWQjc3dpdGNoVXNlcikgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL3VzZXIve3Rva2VufS9zd2l0Y2ggfCBTd2l0Y2ggdXNlciYjMzk7cyBzdGF0dXMKKlVzZXJBcGkqIHwgWyoqdXBkYXRlVXNlcioqXShkb2NzL1VzZXJBcGkubWQjdXBkYXRlVXNlcikgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL3VzZXIve3Rva2VufSB8IFVwZGF0ZSB1c2VyIGRhdGEKKlVzZXJBcGkqIHwgWyoqdXBkYXRlVXNlckV4dCoqXShkb2NzL1VzZXJBcGkubWQjdXBkYXRlVXNlckV4dCkgfCAqKlBVVCoqIC9yZXN0L3BsYXRmb3JtL3VzZXIve3Rva2VufS9leHQgfCBVcGRhdGUgc2Vuc2l0aXZlIHVzZXIgZGF0YQoqVXRpbHNBcGkqIHwgWyoqZ2V0Q291bnRyaWVzKipdKGRvY3MvVXRpbHNBcGkubWQjZ2V0Q291bnRyaWVzKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vdXRpbHMvY291bnRyeSB8IEdldCBjb3VudHJpZXMKKlV0aWxzQXBpKiB8IFsqKmdldEN1cnJlbmNpZXMqKl0oZG9jcy9VdGlsc0FwaS5tZCNnZXRDdXJyZW5jaWVzKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vdXRpbHMvY3VycmVuY3kgfCBHZXQgY3VycmVuY2llcwoqVXRpbHNBcGkqIHwgWyoqZ2V0TGFuZ3VhZ2VzKipdKGRvY3MvVXRpbHNBcGkubWQjZ2V0TGFuZ3VhZ2VzKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vdXRpbHMvbGFuZ3VhZ2UgfCBHZXQgbGFuZ3VhZ2VzCipVdGlsc0FwaSogfCBbKipnZXRSb2xlcyoqXShkb2NzL1V0aWxzQXBpLm1kI2dldFJvbGVzKSB8ICoqR0VUKiogL3Jlc3QvcGxhdGZvcm0vdXRpbHMvcm9sZXMgfCBHZXQgcm9sZXMKKlV0aWxzQXBpKiB8IFsqKmdldFpvbmVzKipdKGRvY3MvVXRpbHNBcGkubWQjZ2V0Wm9uZXMpIHwgKipHRVQqKiAvcmVzdC9wbGF0Zm9ybS91dGlscy96b25lIHwgR2V0IHpvbmVzCipWb3VjaGVyQXBpKiB8IFsqKmRvd25sb2FkVm91Y2hlclFyKipdKGRvY3MvVm91Y2hlckFwaS5tZCNkb3dubG9hZFZvdWNoZXJRcikgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3ZvdWNoZXIve3Rva2VufS9xciB8IERvd25sb2FkIHRoZSB2b3VjaGVyIFFSIGltYWdlCipWb3VjaGVyQXBpKiB8IFsqKmRvd25sb2FkVm91Y2hlcnNGaWxlKipdKGRvY3MvVm91Y2hlckFwaS5tZCNkb3dubG9hZFZvdWNoZXJzRmlsZSkgfCAqKkdFVCoqIC9yZXN0L3BsYXRmb3JtL3ZvdWNoZXIvY2FtcGFpZ24ve2NhbXBhaWduVG9rZW59L2ZpbGUgfCBEb3dubG9hZCBhIHNldCBvZiB2b3VjaGVyJiMzOTtzIGxpbmtzIGZpbGUKKlZvdWNoZXJBcGkqIHwgWyoqZG93bmxvYWRWb3VjaGVyc1FyKipdKGRvY3MvVm91Y2hlckFwaS5tZCNkb3dubG9hZFZvdWNoZXJzUXIpIHwgKipHRVQqKiAvcmVzdC9wbGF0Zm9ybS92b3VjaGVyL2NhbXBhaWduL3tjYW1wYWlnblRva2VufS9xciB8IERvd25sb2FkIGEgc2V0IG9mIHZvdWNoZXIgUVIgaW1hZ2VzCipWb3VjaGVyQXBpKiB8IFsqKmdldFZvdWNoZXIqKl0oZG9jcy9Wb3VjaGVyQXBpLm1kI2dldFZvdWNoZXIpIHwgKipHRVQqKiAvcmVzdC9wbGF0Zm9ybS92b3VjaGVyL3t0b2tlbn0gfCBHZXQgYSBzaW5nbGUgdm91Y2hlcgoqVm91Y2hlckFwaSogfCBbKipnZXRWb3VjaGVycyoqXShkb2NzL1ZvdWNoZXJBcGkubWQjZ2V0Vm91Y2hlcnMpIHwgKipHRVQqKiAvcmVzdC9wbGF0Zm9ybS92b3VjaGVyL2NhbXBhaWduL3tjYW1wYWlnblRva2VufSB8IEdldCBhIHNldCBvZiB2b3VjaGVycwoKCiMjIERvY3VtZW50YXRpb24gZm9yIE1vZGVscwoKIC0gW0FwaVNvcnRdKGRvY3MvQXBpU29ydC5tZCkKIC0gW1BhZ2luYXRpb25dKGRvY3MvUGFnaW5hdGlvbi5tZCkKIC0gW1BsYXRmb3JtQXNzZXRdKGRvY3MvUGxhdGZvcm1Bc3NldC5tZCkKIC0gW1BsYXRmb3JtQXNzZXRJdGVtXShkb2NzL1BsYXRmb3JtQXNzZXRJdGVtLm1kKQogLSBbUGxhdGZvcm1Bc3NldEl0ZW1XcmFwcGVyXShkb2NzL1BsYXRmb3JtQXNzZXRJdGVtV3JhcHBlci5tZCkKIC0gW1BsYXRmb3JtQ2FtcGFpZ25dKGRvY3MvUGxhdGZvcm1DYW1wYWlnbi5tZCkKIC0gW1BsYXRmb3JtQ2FtcGFpZ25JdGVtXShkb2NzL1BsYXRmb3JtQ2FtcGFpZ25JdGVtLm1kKQogLSBbUGxhdGZvcm1DYW1wYWlnbkl0ZW1XcmFwcGVyXShkb2NzL1BsYXRmb3JtQ2FtcGFpZ25JdGVtV3JhcHBlci5tZCkKIC0gW1BsYXRmb3JtQ29tcGFueV0oZG9jcy9QbGF0Zm9ybUNvbXBhbnkubWQpCiAtIFtQbGF0Zm9ybUNvbXBhbnlBZGRyZXNzXShkb2NzL1BsYXRmb3JtQ29tcGFueUFkZHJlc3MubWQpCiAtIFtQbGF0Zm9ybUNvbXBhbnlMZWdhbF0oZG9jcy9QbGF0Zm9ybUNvbXBhbnlMZWdhbC5tZCkKIC0gW1BsYXRmb3JtQ29tcGFueUxlZ2FsQWRkcmVzc10oZG9jcy9QbGF0Zm9ybUNvbXBhbnlMZWdhbEFkZHJlc3MubWQpCiAtIFtQbGF0Zm9ybUNvdW50cnldKGRvY3MvUGxhdGZvcm1Db3VudHJ5Lm1kKQogLSBbUGxhdGZvcm1DdXJyZW5jeV0oZG9jcy9QbGF0Zm9ybUN1cnJlbmN5Lm1kKQogLSBbUGxhdGZvcm1JbnZvaWNlXShkb2NzL1BsYXRmb3JtSW52b2ljZS5tZCkKIC0gW1BsYXRmb3JtSW52b2ljZUVudHJ5XShkb2NzL1BsYXRmb3JtSW52b2ljZUVudHJ5Lm1kKQogLSBbUGxhdGZvcm1JbnZvaWNlRW50cnlCYXNlXShkb2NzL1BsYXRmb3JtSW52b2ljZUVudHJ5QmFzZS5tZCkKIC0gW1BsYXRmb3JtSW52b2ljZUl0ZW1dKGRvY3MvUGxhdGZvcm1JbnZvaWNlSXRlbS5tZCkKIC0gW1BsYXRmb3JtSW52b2ljZUl0ZW1XcmFwcGVyXShkb2NzL1BsYXRmb3JtSW52b2ljZUl0ZW1XcmFwcGVyLm1kKQogLSBbUGxhdGZvcm1MYW5ndWFnZV0oZG9jcy9QbGF0Zm9ybUxhbmd1YWdlLm1kKQogLSBbUGxhdGZvcm1OZ29dKGRvY3MvUGxhdGZvcm1OZ28ubWQpCiAtIFtQbGF0Zm9ybU5nb0FkZHJlc3NdKGRvY3MvUGxhdGZvcm1OZ29BZGRyZXNzLm1kKQogLSBbUGxhdGZvcm1OZ29MZWdhbF0oZG9jcy9QbGF0Zm9ybU5nb0xlZ2FsLm1kKQogLSBbUGxhdGZvcm1OZ29MZWdhbEFkZHJlc3NdKGRvY3MvUGxhdGZvcm1OZ29MZWdhbEFkZHJlc3MubWQpCiAtIFtQbGF0Zm9ybVByb2plY3RdKGRvY3MvUGxhdGZvcm1Qcm9qZWN0Lm1kKQogLSBbUGxhdGZvcm1Qcm9qZWN0SXRlbV0oZG9jcy9QbGF0Zm9ybVByb2plY3RJdGVtLm1kKQogLSBbUGxhdGZvcm1Qcm9qZWN0SXRlbVdyYXBwZXJdKGRvY3MvUGxhdGZvcm1Qcm9qZWN0SXRlbVdyYXBwZXIubWQpCiAtIFtQbGF0Zm9ybVJvbGVdKGRvY3MvUGxhdGZvcm1Sb2xlLm1kKQogLSBbUGxhdGZvcm1TZWN0b3JdKGRvY3MvUGxhdGZvcm1TZWN0b3IubWQpCiAtIFtQbGF0Zm9ybVNlY3Rvckl0ZW1dKGRvY3MvUGxhdGZvcm1TZWN0b3JJdGVtLm1kKQogLSBbUGxhdGZvcm1TZWN0b3JJdGVtV3JhcHBlcl0oZG9jcy9QbGF0Zm9ybVNlY3Rvckl0ZW1XcmFwcGVyLm1kKQogLSBbUGxhdGZvcm1Ub3BpY10oZG9jcy9QbGF0Zm9ybVRvcGljLm1kKQogLSBbUGxhdGZvcm1Ub3BpY0l0ZW1dKGRvY3MvUGxhdGZvcm1Ub3BpY0l0ZW0ubWQpCiAtIFtQbGF0Zm9ybVRvcGljSXRlbVdyYXBwZXJdKGRvY3MvUGxhdGZvcm1Ub3BpY0l0ZW1XcmFwcGVyLm1kKQogLSBbUGxhdGZvcm1Vc2VyXShkb2NzL1BsYXRmb3JtVXNlci5tZCkKIC0gW1BsYXRmb3JtVXNlckl0ZW1dKGRvY3MvUGxhdGZvcm1Vc2VySXRlbS5tZCkKIC0gW1BsYXRmb3JtVXNlckl0ZW1XcmFwcGVyXShkb2NzL1BsYXRmb3JtVXNlckl0ZW1XcmFwcGVyLm1kKQogLSBbUGxhdGZvcm1Wb3VjaGVyXShkb2NzL1BsYXRmb3JtVm91Y2hlci5tZCkKIC0gW1BsYXRmb3JtVm91Y2hlckl0ZW1dKGRvY3MvUGxhdGZvcm1Wb3VjaGVySXRlbS5tZCkKIC0gW1BsYXRmb3JtVm91Y2hlckl0ZW1XcmFwcGVyXShkb2NzL1BsYXRmb3JtVm91Y2hlckl0ZW1XcmFwcGVyLm1kKQogLSBbUGxhdGZvcm1ab25lXShkb2NzL1BsYXRmb3JtWm9uZS5tZCkKIC0gW1Jlc3RFcnJvcl0oZG9jcy9SZXN0RXJyb3IubWQpCiAtIFtTZWN1cml0eVVzZXJdKGRvY3MvU2VjdXJpdHlVc2VyLm1kKQoKCiMjIERvY3VtZW50YXRpb24gZm9yIEF1dGhvcml6YXRpb24KCkF1dGhlbnRpY2F0aW9uIHNjaGVtZXMgZGVmaW5lZCBmb3IgdGhlIEFQSToKIyMjIEJhc2ljQXV0aGVudGljYXRpb24KCi0gKipUeXBlKio6IEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24KCiMjIyBCZWFyZXJBdXRoZW50aWNhdGlvbgoKLSAqKlR5cGUqKjogSFRUUCBiYXNpYyBhdXRoZW50aWNhdGlvbgoKCiMjIFJlY29tbWVuZGF0aW9uCgpJdCdzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXBpQ2xpZW50YCBwZXIgdGhyZWFkIGluIGEgbXVsdGl0aHJlYWRlZCBlbnZpcm9ubWVudCB0byBhdm9pZCBhbnkgcG90ZW50aWFsIGlzc3Vlcy4KCiMjIEF1dGhvcgoKc3VwcG9ydEBicmFuZDRpbXBhY3QuY29tCgo= readmeEtag: '"d361bd65cb18c1dc36a09ac700cf6f62a2a04c2f"' readmeLastModified: Thu, 31 Mar 2022 13:41:47 GMT repositoryId: 476279326 description: Java SDK for Brand4Impact created: '2022-03-31T11:39:27Z' updated: '2022-03-31T13:45:36Z' language: Java archived: false stars: 0 watchers: 0 forks: 0 owner: brand4impact logo: https://avatars.githubusercontent.com/u/84772494?v=4 license: MIT repoEtag: '"ad65fc19053b9b71b70c47ca10ded31fe8a15f6ee5e271a1e4cc30bba0e3d331"' repoLastModified: Thu, 31 Mar 2022 13:45:36 GMT foundInMaster: true category: Parsers id: 60f07a9f76c063ea69d87c169c111ff6 - source: openapi3 tags repository: https://github.com/weikangchia/op-converter v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIDMuMCB0byBQb3N0bWFuIDIuMSBDb2xsZWN0aW9ucyBDb252ZXJ0ZXIKCioqb3AtY29udmVydGVyKiogaXMgYSBjdXN0b21pemFibGUgY29udmVydGVyIGZvciBPcGVuQVBJIDMuMCB0byBQb3N0bWFuIDIuMSBDb2xsZWN0aW9ucy4KCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIFByZS1yZXF1aXNpdGVzCgotIEluc3RhbGwgW25vZGVdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9kb3dubG9hZC8pCi0gSW5zdGFsbCBvcC1jb252ZXJ0ZXIKICBgYGAKICBucG0gaW5zdGFsbCAtZyBvcC1jb252ZXJ0ZXIKICBgYGAKCiMjIyBVc2FnZQpgYGBzaC1zZXNzaW9uClVTQUdFOgogICAgb3AtY29udmVydGVyCgpPUFRJT05TOgogICAgLSBmLCAtLW9wZW5BcGlGaWxlPW9wZW5BcGlGaWxlICAgIHBhdGggdG8geW91ciBPcGVuQVBJIDMuMCBKU09OIGZpbGUKICAgIC0gaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICBzaG93IENMSSBoZWxwCiAgICAtIG4sIC0tbmFtZT1uYW1lICAgICAgICAgICAgICAgICAgbmFtZSBmb3IgeW91ciBwb3N0bWFuIGNvbGxlY3Rpb24KICAgIC0tYmFzZVVybD1iYXNlVXJsICAgICAgICAgICAgICAgICBiYXNlIHVybAogICAgLS1jb25maWc9Y29uZmlnICAgICAgICAgICAgICAgICAgIGN1c3RvbSBjb25maWcgZmlsZSBuYW1lIChkZWZhdWx0IGlzIGNvbmZpZy5qc29uKQpgYGAKCioqRXhhbXBsZXMqKgpgYGAKb3AtY29udmVydGVyIC1mIC4vb3BlbmFwaS5qc29uIC1uICJNeSBDb2xsZWN0aW9uIiAtLWJhc2VVcmw9Imh0dHA6Ly9sb2NhbGhvc3QiID4gcG9zdG1hbi5qc29uCmBgYAoKIyMgQ29uZmlndXJhdGlvbiBPcHRpb25zCgpCeSBkZWZhdWx0ICoqb3AtY29udmVydGVyKiogcmVhZHMgYWxsIGNvbmZpZ3VyYWJsZSBvcHRpb25zIGZyb20gYGNvbmZpZy5qc29uYCBhdCB0aGUgZm9sbG93aW5nIGxvY2F0aW9uCgpgYGAKVW5peDogfi8uY29uZmlnL29wLWNvbnZlcnRlcgpXaW5kb3dzOiAlTE9DQUxBUFBEQVRBJVxnaXRjZwpgYGAKCkJlbG93IGFyZSB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYWJsZSBvcHRpb25zLgoKLSBbcGF0aF0oI3BhdGgpCiAgLSBbZW5hYmxlUmVwbGFjZVByZWZpeF0oI2VuYWJsZVJlcGxhY2VQcmVmaXgpCiAgLSBbcmVwbGFjZVByZWZpeF0oI3JlcGxhY2VQcmVmaXgpCiAgLSBbcmVwbGFjZVByZWZpeFdpdGhdKCNyZXBsYWNlUHJlZml4V2l0aCkKLSBbYXV0aF0oI2F1dGgpCi0gW2V2ZW50c10oI2V2ZW50cykKCiMjIyBwYXRoCgp8IE5hbWUgICAgICAgIHwgVmFsdWUgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tIHwtLS0tLS0tLS0tLS0tfAp8IHR5cGUgICAgICB8IG9iamVjdCB8CnwgbWFuZGF0b3J5IHwgZmFsc2UgfAoKRXhhbXBsZQpgYGBqc29uCnsKICAicGF0aCI6IHt9Cn0KYGBgCgojIyMjIGVuYWJsZVJlcGxhY2VQcmVmaXgKCgp8IE5hbWUgICAgICAgIHwgVmFsdWUgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tIHwtLS0tLS0tLS0tLS0tfAp8IHR5cGUgICAgICB8IGJvb2xlYW4gfAp8IHBhcmVudCAgICB8IHBhdGggfAp8IG1hbmRhdG9yeSB8IGZhbHNlIHwKfCBtYW5kYXRvcnkgc2libGluZ3MgfCByZXBsYWNlUHJlZml4LCByZXBsYWNlUHJlZml4V2l0aCB8CgpFeGFtcGxlCmBgYGpzb24KewogICJwYXRoIjogewogICAgImVuYWJsZVJlcGxhY2VQcmVmaXgiOiB0cnVlLAogICAgInJlcGxhY2VQcmVmaXgiOiAiL3YxIiwKICAgICJyZXBsYWNlUHJlZml4V2l0aCI6ICIiCiAgfQp9CmBgYAoKIyMjIyByZXBsYWNlUHJlZml4CgoKfCBOYW1lICAgICAgICB8IFZhbHVlICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLXwKfCB0eXBlICAgICAgfCBzdHJpbmcgfAp8IHBhcmVudCAgICB8IHBhdGggfAp8IG1hbmRhdG9yeSB8IGZhbHNlIHwKfCBtYW5kYXRvcnkgc2libGluZ3MgfCBlbmFibGVSZXBsYWNlUHJlZml4LCByZXBsYWNlUHJlZml4V2l0aCB8CgpFeGFtcGxlCmBgYGpzb24KewogICJwYXRoIjogewogICAgImVuYWJsZVJlcGxhY2VQcmVmaXgiOiB0cnVlLAogICAgInJlcGxhY2VQcmVmaXgiOiAiL3YxIiwKICAgICJyZXBsYWNlUHJlZml4V2l0aCI6ICIiCiAgfQp9CmBgYAoKIyMjIyByZXBsYWNlUHJlZml4V2l0aAoKCnwgTmFtZSAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0gfC0tLS0tLS0tLS0tLS18CnwgdHlwZSAgICAgIHwgc3RyaW5nIHwKfCBwYXJlbnQgICAgfCBwYXRoIHwKfCBtYW5kYXRvcnkgfCBmYWxzZSB8CnwgbWFuZGF0b3J5IHNpYmxpbmdzIHwgZW5hYmxlUmVwbGFjZVByZWZpeCwgcmVwbGFjZVByZWZpeCB8CgpFeGFtcGxlCmBgYGpzb24KewogICJwYXRoIjogewogICAgImVuYWJsZVJlcGxhY2VQcmVmaXgiOiB0cnVlLAogICAgInJlcGxhY2VQcmVmaXgiOiAiL3YxIiwKICAgICJyZXBsYWNlUHJlZml4V2l0aCI6ICIiCiAgfQp9CmBgYAoKIyMjIGF1dGgKClBvc3RtYW4gQXV0aCBmaWVsZAoKfCBOYW1lICAgICAgICB8IFZhbHVlICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLXwKfCB0eXBlICAgICAgfCBvYmplY3QgfAp8IG1hbmRhdG9yeSB8IGZhbHNlIHwKCkV4YW1wbGUKYGBganNvbgp7CiAgImF1dGgiOiB7CiAgICAidHlwZSI6ICJiZWFyZXIiLAogICAgImJlYXJlciI6IFsKICAgICAgewogICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICJ2YWx1ZSI6ICJ7e0NVUlJFTlRfQUNDRVNTX1RPS0VOfX0iLAogICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgfQogICAgXQogIH0KfQpgYGAKCiMjIyBldmVudHMKClBvc3RtYW4gZXZlbnQgZmllbGQKCnwgTmFtZSAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0gfC0tLS0tLS0tLS0tLS18CnwgdHlwZSAgICAgIHwgYXJyYXkgfAp8IG1hbmRhdG9yeSB8IGZhbHNlIHwKCkV4YW1wbGUKYGBganNvbgp7CiAgImV2ZW50cyI6IFsKICAgIHsKICAgICAgImxpc3RlbiI6ICJ0ZXN0IiwKICAgICAgInNjcmlwdCI6IHsKICAgICAgICAiZXhlYyI6IFsKICAgICAgICAgICIiCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCiAgICAgIH0KICAgIH0KICBdCn0KYGBgCgojIyBMaWNlbnNlCgpEaXN0cmlidXRlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBbTElDRU5TRV0obGljZW5zZSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyBDb250cmlidXRpbmcKQ29udHJpYnV0aW9ucyBhcmUgd2hhdCBtYWtlIHRoZSBvcGVuIHNvdXJjZSBjb21tdW5pdHkgc3VjaCBhbiBhbWF6aW5nIHBsYWNlIHRvIGJlIGxlYXJuLCBpbnNwaXJlLCBhbmQgY3JlYXRlLiBBbnkgY29udHJpYnV0aW9ucyB5b3UgbWFrZSBhcmUgZ3JlYXRseSBhcHByZWNpYXRlZC4KCiMjIENvbnRhY3QKCldlaSBLYW5nIC0gd2Vpa2FuZ2NoaWFbQF1nbWFpbC5jb20K readmeEtag: '"3f1969736fa631639b4b6f1f49b0fb3f9518e7a2"' readmeLastModified: Sun, 24 Apr 2022 11:05:58 GMT repositoryId: 392223452 description: Customizable Converter for OpenAPI 3.0 to Postman 2.1 Collections created: '2021-08-03T07:04:49Z' updated: '2021-11-20T15:06:15Z' language: TypeScript archived: false stars: 0 watchers: 3 forks: 0 owner: weikangchia logo: https://avatars.githubusercontent.com/u/2174882?v=4 license: MIT repoEtag: '"a409e9e91cc09e42055b86ad5d8cd50b9449bcc3795c9ba34d1fe3dc39935ec3"' repoLastModified: Sat, 20 Nov 2021 15:06:15 GMT foundInMaster: true category: - Description Validators - Parsers id: 90a8911f0b5f8cc9b0cb4c10ffc39819 - source: openapi3 tags repository: https://github.com/midouest/curdle v3: true id: cc9688d1cc4322f8aa6fadf53aadbcd9 repositoryMetadata: base64Readme: >- IyBjdXJkbGUKCkEgY2hlZXN5IHdvcmQgZ2FtZSBidWlsdCB0byBkZW1vbnN0cmF0ZSBEamFuZ28gUkVTVCBGcmFtZXdvcmsgYW5kIFJlZHV4IGNvZGUgZ2VuZXJhdGlvbgoKIVtdKC9pbWFnZXMvc2NyZWVuc2hvdC5wbmcpCgojIyBSZXF1aXJlbWVudHMKCi0gUHl0aG9uIDMuMTAKLSBQaXBlbnYKLSBOb2RlLmpzIDE4LjguMAotIG5wbSA4LjE5LjEKCiMjIFNldHVwCgojIyMgQ2hlY2sgb3V0IHRoZSByZXBvc2l0b3J5CgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vbWlkb3Vlc3QvY3VyZGxlLmdpdApjZCBjdXJkbGUKYGBgCgojIyMgSW5zdGFsbCBQeXRob24gZGVwZW5kZW5jaWVzCgpgYGBiYXNoCnBpcGVudiBpbnN0YWxsIC0tZGV2CnBpcGVudiBzaGVsbApgYGAKCiMjIyBJbml0aWFsaXplIERqYW5nbyBkYXRhYmFzZQoKYGBgYmFzaApweXRob24gbWFuYWdlLnB5IG1pZ3JhdGUKcHl0aG9uIG1hbmFnZS5weSBjcmVhdGVzdXBlcnVzZXIKcHl0aG9uIG1hbmFnZS5weSBsb2FkX3dvcmRzIGRhdGEvYW5zd2Vycy50eHQgZGF0YS9ndWVzc2VzLnR4dApgYGAKCiMjIyBJbnN0YWxsIEphdmFTY3JpcHQgZGVwZW5kZW5jaWVzCgpgYGBiYXNoCmNkIHdlYgpucG0gaW5zdGFsbApgYGAKCiMjIExhdW5jaAoKIyMjIEJhY2tlbmQKCmBgYGJhc2gKcHl0aG9uIG1hbmFnZS5weSBydW5zZXJ2ZXIgODAwMApgYGAKCk9wZW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwL2RvY3MvIHRvIHZpZXcgdGhlIE9wZW5BUEkgc2NoZW1hCgojIyMgRnJvbnRlbmQKCmBgYGJhc2gKY2Qgd2ViCm5wbSBzdGFydApgYGAKCk9wZW4gaHR0cDovL2xvY2FsaG9zdDozMDAwIHRvIHZpZXcgdGhlIGFwcAoKIyMgQ29tbW9uIERldmVsb3BtZW50IFRhc2tzCgojIyMgQ29kZSBHZW5lcmF0aW9uCgpUbyByZWdlbmVyYXRlIHRoZSBPcGVuQVBJIHNjaGVtYSBhbmQgUmVkdXggQVBJIHNsaWNlLCBydW4gdGhlIFtjb2RlZ2VuXSgvc2NyaXB0cy9jb2RlZ2VuLnNoKSBzY3JpcHQgaW4gdGhlIHJvb3Qgb2YgdGhlIHJlcG9zaXRvcnk6CgpgYGBiYXNoCi4vc2NyaXB0cy9jb2RlZ2VuLnNoCmBgYAoKIyMjIFJlc2V0IEdhbWUgRGF0YQoKVG8gY2xlYXIgYWxsIGdhbWUgZGF0YSBhbmQgcmVsb2FkIHRoZSB3b3JkIGRhdGFiYXNlLCBydW4gdGhlIFtyZXNldF0oL3NjcmlwdHMvcmVzZXQuc2gpIHNjcmlwdCBpbiB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeToKCmBgYGJhc2gKLi9zY3JpcHRzL3Jlc2V0LnNoCmBgYAo= readmeEtag: '"8382f75ca2bef8fc0ce8d2409259392dbf1d48d5"' readmeLastModified: Mon, 26 Sep 2022 00:46:21 GMT repositoryId: 534877345 description: >- A cheesy word game built to demonstrate Django REST Framework and Redux code generation created: '2022-09-10T03:18:17Z' updated: '2022-09-10T16:03:37Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: midouest logo: https://avatars.githubusercontent.com/u/67558040?v=4 repoEtag: '"741c0bd2eb17def7ceef6bac4789abe8ad206de4fa108166de70460cd93a0757"' repoLastModified: Sat, 10 Sep 2022 16:03:37 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/erickyudha/car-rental-backend-api_tdd v3: true id: 28f91e549f3517bccca172feb0674357 repositoryMetadata: base64Readme: >- IyBCQ1IgQmFja2VuZCBBUEkgKFRlc3QgRHJpdmVuIERldmVsb3BtZW50ICYgRGVwbG95bWVudCBDaGFsbGVuZ2UpCgpUaGlzIHByb2plY3QgaXMgYW4gaW5kaXZpZHVhbCBjaGFsbGVuZ2UgdG8gYnVpbGQgdW5pdCBhbmQgaW50ZWdyYXRpb24gdGVzdHMgZnJvbSBhIGdpdmVuIFtleHByZXNzIGJhY2tlbmQgYXBpIHByb2plY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9lcmlja3l1ZGhhL2Nhci1yZW50YWwtYmFja2VuZC1hcGlfcmF3KSBhbmQgZGVwbG95aW5nIHRoaXMgYXBwIHVzaW5nIFtyYWlsd2F5LmFwcF0ocmFpbHdheS5hcHApLiAgCgpVbml0IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgdGhpcyBwcm9qZWN0IGlzIGJ1aWx0IHVzaW5nIGBqZXN0YCBhbmQgYHN1cGVydGVzdGAuIFRlc3QgY292ZXJhZ2UgZGV0YWlscyBjYW4gYmUgc2VlbiBbaGVyZV0oI3Rlc3QtY292ZXJhZ2UpLiAgClN0eWxpbmcgZm9yIHRoaXMgamF2YXNjcmlwdCBwcm9qZWN0IGlzIGVuZm9yY2VkIHVzaW5nIEVTTGludCBbR29vZ2xlIEphdmFzY3JpcHQgc3R5bGUgZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZXNsaW50LWNvbmZpZy1nb29nbGUpLgoKVGhpcyBwcm9qZWN0IGlzIG1hZGUgYXMgcGFydCBvZiBCaW5hciBBY2FkZW15IGZ1bGxzdGFjayB3ZWIgZGV2ZWxvcG1lbnQgY291cnNlLgoKIyMgTGl2ZSBBcHBsaWNhdGlvbgoKVGhpcyBhcHBsaWNhdGlvbiBpcyBjdXJyZW50bHkgZGVwbG95ZWQgdXNpbmcgW3JhaWx3YXkuYXBwXShyYWlsd2F5LmFwcCkuICAKWW91IGNhbiBhY2Nlc3MgdGhpcyBhcHBsaWNhdGlvbiBvbiBbaHR0cHM6Ly9lcmljay1yZW50YWwudXAucmFpbHdheS5hcHAvXShodHRwczovL2VyaWNrLXJlbnRhbC51cC5yYWlsd2F5LmFwcC8pICAKICAKSW5mb3JtYXRpb24gYWJvdXQgc2VydmVyIHJvdXRlcyBhbmQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgc2VlbiBbaGVyZV0oI3JvdXRlcy1hbmQtZG9jdW1lbnRhdGlvbikuCgojIyBSdW5uaW5nIExvY2FsIEFwcAoKVG8gcnVuIHRoaXMgYXBwbGljYXRpb24gaW4geW91ciBjb21wdXRlciB5b3UgY2FuIGZvbGxvdyB0aGVzZSBzdGVwcyBiZWxvdy4KCiMjIyBTZXR1cCBMb2NhbCBTZXJ2ZXIgYW5kIERhdGFiYXNlCgogICAgbnBtIGluc3RhbGwKClJ1biB0aGlzIGNvbW1hbmQgdG8gaW5zdGFsbCBhbGwgZGVwZW5kZW5jaWVzIG5lZWRlZCBieSB0aGlzIHByb2plY3QuCgogICAgbnBtIHJ1biBkYjpzZXR1cAoKQWZ0ZXIgdGhhdCwgcnVuIHRoaXMgY29tbWFuZCB0byBzZXR1cCBkYXRhYmFzZSB3aXRoIHNlcXVlbGl6ZS4gUmVtZW1iZXIgdG8gc2V0dXAgYC5lbnZgIGZpbGUgb24gdGhpcyBwcm9qZWN0IGZpcnN0IHdpdGggeW91ciBwb3N0Z3JlcyBkYXRhYmFzZSBkYXRhLCB5b3UgY2FuIGZvbGxvdyB0aGlzIGV4YW1wbGUgZmlsZSBbaGVyZV0oLmVudi5leGFtcGxlKS4gUmVtZW1iZXIgdG8gaGF2ZSB5b3VyIHBvc3RncmVzIGRhdGFiYXNlIGluc3RhbGxlZCBhbmQgcnVubmluZyBmaXJzdC4gCgoqKlJ1biB0aGlzIGRhdGFiYXNlIHNldHVwIGNvbW1hbmQgdHdpY2UsIHdpdGggZGlmZmVyZW50IGBOT0RFX0VOVmAgc2V0dGluZ3MgaW4gYC5lbnZgIGZpbGUuKiogICAKCjEuIGBOT0RFX0VOVj1kZXZlbG9wbWVudGAgKHRoaXMgaXMgdGhlIGRlZmF1bHQgc2V0dGluZyksIHVuaXQgdGVzdHMgaXMgdXNpbmcgZGF0YWJhc2UgaW4gdGhpcyBlbnZpcm9ubWVudC4KMi4gYE5PREVfRU5WPXRlc3RgLCBpbnRlZ3JhdGlvbiB0ZXN0cyBpcyB1c2luZyBkYXRhYmFzZSBpbiB0aGlzIGVudmlyb25tZW50LgoKKlRoaXMgaGF2ZSB0byBiZSBkb25lIHRvIGVuc3VyZSBib3RoIHVuaXQgYW5kIGludGVncmF0aW9uIHRlc3RzIHdvcmtpbmcgY29ycmVjdGx5KiAgCgojIyMgUnVubmluZyBTZXJ2ZXIKCiAgICBucG0gc3RhcnQKCnJ1biB0aGlzIGNvbW1hbmQgdG8gc3RhcnQgZXhwcmVzcyBzZXJ2ZXIgbm9ybWFsbHkuIFRvIHJ1biB0aGUgc2VydmVyIGluIGRldmVsb3BtZW50IG1vZGUsIHVzZSB0aGlzIGNvbW1hbmQgaW5zdGVhZDoKCiAgICBucG0gcnVuIGRldmVsb3AKClRvIHJ1biBib3RoIHVuaXQgYW5kIGludGVncmF0aW9uIHRlc3RzLCB1c2UgdGhpcyBjb21tYW5kOgoKICAgIG5wbSB0ZXN0CgojIyBSb3V0ZXMsIERvY3VtZW50YXRpb24sIGFuZCBUZXN0IENvdmVyYWdlCgojIyMgUm91dGVzIGFuZCBEb2N1bWVudGF0aW9uCgpEb2N1bWVudGF0aW9uIGFib3V0IEFQSSBpcyBhdmFpbGFibGUgaGVyZToKCnwgUm91dGUgfCBEZWZhdWx0IExvY2FsIExpbmsgfCBMaXZlIExpbmsgfAp8LS18LS18LS18CnwgYC9kb2N1bWVudGF0aW9uYCB8IGxvY2FsaG9zdDo4MDAwL2RvY3VtZW50YXRpb24gfCBodHRwczovL2VyaWNrLXJlbnRhbC51cC5yYWlsd2F5LmFwcC9kb2N1bWVudGF0aW9uLyB8CgpEZWZhdWx0IGFkbWluIGFjY291bnQgZGF0YSBpcyBhdmFpbGFibGUgYW5kIGNhbiBiZSBjaGFuZ2VkIGluIGxvY2FsIG9uIFtgY29uZmlnL2FkbWluLmpzYF0oY29uZmlnL2FkbWluLmpzKSB3aXRoIHRoaXMgYXMgZGVmYXVsdCBzZXR0aW5nczoKCiAgICB7CiAgICAgIG5hbWU6ICdtci5hZG1pbicsCiAgICAgIGVtYWlsOiAnYWRtaW5AYmluYXIuY28uaWQnLAogICAgICBwYXNzd29yZDogJ2FkbWluJywKICAgIH0KCiMjIyBUZXN0IENvdmVyYWdlCgpVbml0IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0cyBjb3ZlcmFnZSBvZiB0aGlzIHByb2plY3QgaXMgKioqPjk3LjclKioqLCBkZXRhaWxzIGNhbiBiZSBzZWVuIG9uIHRoaXMgaW1hZ2UgYmVsb3cuCgohW2NvdmVyYWdlIHRlc3QgZGV0YWlsc10oZG9jcy9jb3ZlcmFnZS10ZXN0LnBuZykKCiFbY292ZXJhZ2UgdGVzdCBjb25zb2xlXShkb2NzL2NvdmVyYWdlLXRlc3QtY29uc29sZS5wbmcpCg== readmeEtag: '"9effb2962159e3313705293ef3b8a787fc1f93b5"' readmeLastModified: Thu, 17 Nov 2022 14:06:47 GMT repositoryId: 566986244 description: >- Test driven development and deployment challenge. Making unit and integration tests for an express backend api project using jest and supertest. Deployment using railway app. created: '2022-11-16T20:42:20Z' updated: '2022-11-17T05:32:47Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 1 owner: erickyudha logo: https://avatars.githubusercontent.com/u/72851075?v=4 license: MIT repoEtag: '"22979b077ddbfadb61f4f07f15463e223d3d3ef00d1cf5f8330a9d602be07b5a"' repoLastModified: Thu, 17 Nov 2022 05:32:47 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags repository: https://github.com/api-stuff/master-exploder v3: true id: b9307621f36f0c545fa02028ca188d86 repositoryMetadata: base64Readme: >- IyBNYXN0ZXIgRXhwbG9kZXIgKE9wZW5BUEkgZG9jdW1lbnQgdG8gInN0dWZmIikKClRoaXMgdXRpbGl0eSB0YWtlcyBhbiBPcGVuQVBJIGRvY3VtZW50IGFzIGlucHV0IGFuZCBkZXJlZmVyZW5jZXMgaXQsIGFuZCB0aGVuIHdyaXRlcyBhIGxvYWQgb2YgZGF0YSB0byBhbm90aGVyIGZvcm1hdC4KClJpZ2h0IG5vdyB0aGUgb25seSBzdXBwb3J0ZWQgZm9ybWF0IGlzIGRlbGltaXRlZCBkYXRhIHlvdSBjYW4gY29weSBpbnRvIGEgc3ByZWFkc2hlZXQgZXRjLCBidXQgaXQnbGwgZ2V0IGJldHRlciA6d2luazouCgojIyBJbnN0YWxsCgpUaGlzIGlzIGEgcHVibGljIE5QTSBwYWNrYWdlIG9uIHRoZSBHaXRIdWIgcmVnaXN0cnkuIFlvdSdsbCBuZWVkIGEgbmljZSBzZXR0aW5nIGluIHlvdXIgaG9tZSBgLm5wbXJjYCBmaWxlIGFzIGZvbGxvd3M6CgpgYGBiYXNoCkBhcGktc3R1ZmY6cmVnaXN0cnk9aHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb20KLy9ucG0ucGtnLmdpdGh1Yi5jb20vOl9hdXRoVG9rZW49JHtHSVRIVUJfTlBNX1RPS0VOfQpgYGAKCldpdGggdGhhdCBpbiBoYW5kIHlvdSBjYW4gZG86CgpgYGBiYXNoCm5wbSBpbnN0YWxsIC1nIEBhcGktc3R1ZmYvbWFzdGVyLWV4cGxvZGVyQDEuMS4wCmBgYAoKYW5kIEJvYiBpcyB5b3VyIG1vdGhlcidzIGJyb3RoZXIuCgojIyBFeGVjdXRpb24KClRoZSBzY3JpcHQgdGFrZXMgYSBsaXN0IG9mIE9wZW5BUEkgZGVzY3JpcHRpb24gZG9jdW1lbnRzIGFuZCBsb29wcyBvdmVyIHRoZSBjb250ZW50cywgZ2VuZXJhdGluZyBvbmUgb3V0cHV0IGZvciB0aGUgc2NyaXB0OgoKYGBgYmFzaAptYXN0ZXItZXhwbG9kZXIgXAotLW91dHB1dCBleHBsb2RlZC50eHQgXAotLXJlcXVlc3QtY29udGVudC10eXBlICJhcHBsaWNhdGlvbi9qc29uIiBcCi0tcmVzcG9uc2UtY29udGVudC10eXBlICJhcHBsaWNhdGlvbi9qc29uIiBcCn4vRG93bmxvYWRzL2FjY291bnQtaW5mby1vcGVuYXBpLmpzb24KYGBgCgpUaGUgbG9nZ2luZyBpcyBgcGlub2AgZm9ybWF0dGluZywgc28gaWYgd2FudCBpdCBwcmV0dGllciB0aGVuIHBpcGUgdG8gYHBpbm8tcHJldHR5YCBpLmUuIGB8IG5weCBwaW5vLXByZXR0eWAuCgo6dGh1bWJzdXA6Cg== readmeEtag: '"ebb51ad35c33b516f0ee2c9c7a4d105c97897ba0"' readmeLastModified: Thu, 25 Jul 2024 11:52:10 GMT repositoryId: 503245695 description: >- A tool for exploding OpenAPI documents into various different formats (CSV, Gherkin, etc.) created: '2022-06-14T07:03:11Z' updated: '2024-07-25T11:52:14Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: api-stuff logo: https://avatars.githubusercontent.com/u/68026188?v=4 repoEtag: '"81baf4afd49a9cb8275eae6ff79874b0458d069504381ae0e31eaad0924ad059"' repoLastModified: Thu, 25 Jul 2024 11:52:14 GMT category: Parsers foundInMaster: true - source: https://openapi.tools/ name: Kusk link: https://kusk.io repository: https://github.com/kubeshop/kusk language: Kubernetes source_description: >- Kusk makes your OpenAPI definition the source of truth for API resources in your cluster. v3: true repositoryMetadata: base64Readme: >- IyBLdXNrIENMSSAoYXJjaGl2ZWQpCgoqKlRoaXMgcmVwb3NpdG9yeSBpcyBub3cgZGVwcmVjYXRlZCoqIGFuZCBoYXZlIG1vdmVkIHRvIFtLdXNrIEdhdGV3YXkncyByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20va3ViZXNob3Ava3Vzay1nYXRld2F5KS4KCi0tLS0KCkt1c2sgaXMgYSBDTEkgdG9vbCBkZXNpZ25lZCB0byBoZWxwIHlvdSBtYW5hZ2UgY29tbW9uIHRhc2tzIHJlcXVpcmVkIHdoZW4gcnVubmluZyBLdXNrIEdhdGV3YXkuCgpDdXJyZW50bHkgd2Ugc3VwcG9ydCB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgoKLSBgaW5zdGFsbGAgLSBpbnN0YWxscyBLdXNrIEdhdGV3YXkgYW5kIGFsbCBpdHMgY29tcG9uZW50cyB3aXRoIGEgc2luZ2xlIGNvbW1hbmQuIChSZXF1aXJlcyBhIGhlbG0gaW5zdGFsbGF0aW9uKQotIGBhcGkgZ2VuZXJhdGVgIC0gZm9yIGNyZWF0aW5nIEt1c2sgR2F0ZXdheSBBUEkgcmVzb3VyY2VzIGZyb20geW91ciBPcGVuQVBJIHNwZWNpZmljYXRpb24gZG9jdW1lbnQuCgotLS0KCiMgVGFibGUgb2YgY29udGVudHMKCi0gW1VzYWdlXSgjdXNhZ2UpCiAgLSBbaW5zdGFsbF0oI2luc3RhbGwpCiAgLSBbYXBpIGdlbmVyYXRlXSgjYXBpLWdlbmVyYXRlKQogIC0gW2Rhc2hib2FyZF0oI2Rhc2hib2FyZCkKLSBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQotIFtVcGRhdGluZ10oI3VwZGF0aW5nKQotIFtVbmluc3RhbGxhdGlvbl0oI3VuaW5zdGFsbGF0aW9uKQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyBVc2FnZQoKIyMgSW5zdGFsbAoKIyMjIEZsYWdzCgp8ICAgICAgICAgRmxhZyAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJlcXVpcmVkPyB8CnwgOi0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS06IHwKfCAgICAgICBgLS1uYW1lYCAgICAgICB8IHRoZSBwcmVmaXggb2YgdGhlIG5hbWUgdG8gZ2l2ZSB0byB0aGUgaGVsbSByZWxlYXNlcyBmb3IgZWFjaCBvZiB0aGUga3VzayBnYXRld2F5IGNvbXBvbmVudHMgKGRlZmF1bHQ6IGt1c2stZ2F0ZXdheSkgfCAgICAg4p2MICAgICB8CnwgYC0tbmFtZXNwYWNlYCAvIGAtbmAgfCAgdGhlIG5hbWVzcGFjZSB0byBpbnN0YWxsIGt1c2sgZ2F0ZXdheSBpbnRvLiBXaWxsIGNyZWF0ZSB0aGUgbmFtZXNwYWNlIGlmIGl0IGRvZXNuJ3QgZXhpc3QgKGRlZmF1bHQ6IGt1c2stc3lzdGVtKSAgIHwgICAgIOKdjCAgICAgfAp8ICAgYC0tbm8tZGFzaGJvYXJkYCAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBzZXQsIHdpbGwgbm90IGluc3RhbGwgdGhlIGt1c2sgZ2F0ZXdheSBkYXNoYm9hcmQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICDinYwgICAgIHwKfCAgICAgIGAtLW5vLWFwaWAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHdoZW4gc2V0LCB3aWxsIG5vdCBpbnN0YWxsIHRoZSBrdXNrIGdhdGV3YXkgYXBpLiBpbXBsaWVzIC0tbm8tZGFzaGJvYXJkLiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg4p2MICAgICB8CnwgIGAtLW5vLWVudm95LWZsZWV0YCAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHNldCwgd2lsbCBub3QgaW5zdGFsbCBhbnkgZW52b3kgZmxlZXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIOKdjCAgICAgfAoKIyMjIEV4YW1wbGVzCgpgYGBzaAokIGt1c2sgaW5zdGFsbAoKV2lsbCBpbnN0YWxsIGt1c2stZ2F0ZXdheSwgYSBwdWJsaWMgKGZvciB5b3VyIEFQSVMpIGFuZCBwcml2YXRlIChmb3IgdGhlIGt1c2sgZGFzaGJvYXJkIGFuZCBhcGkpCmVudm95LWZsZWV0LCBhcGksIGFuZCBkYXNoYm9hcmQgaW4gdGhlIGt1c2stc3lzdGVtIG5hbWVzcGFjZSB1c2luZyBoZWxtLgoKJCBrdXNrIGluc3RhbGwgLS1uYW1lPW15LXJlbGVhc2UgLS1uYW1lc3BhY2U9bXktbmFtZXNwYWNlCgpXaWxsIGNyZWF0ZSBhIGhlbG0gcmVsZWFzZSBuYW1lZCB3aXRoIC0tbmFtZSBpbiB0aGUgbmFtZXNwYWNlIHNwZWNpZmllZCBieSAtLW5hbWVzcGFjZS4KCiQga3VzayBpbnN0YWxsIC0tbm8tZGFzaGJvYXJkIC0tbm8tYXBpIC0tbm8tZW52b3ktZmxlZXQKCldpbGwgaW5zdGFsbCBrdXNrLWdhdGV3YXksIGJ1dCBub3QgdGhlIGRhc2hib2FyZCwgYXBpLCBvciBlbnZveS1mbGVldC4KYGBgCgojIyBBcGkgZ2VuZXJhdGUKCkdlbmVyYXRlIGFjY2VwdHMgeW91ciBPcGVuQVBJIHNwZWMgZmlsZSBhcyBpbnB1dCBlaXRoZXIgYXMgYSBsb2NhbCBmaWxlIG9yIGEgVVJMIHBvaW50aW5nIHRvIHlvdXIgZmlsZQphbmQgZ2VuZXJhdGVzIGEgS3VzayBHYXRld2F5IGNvbXBhdGlibGUgQVBJIHJlc291cmNlIHRoYXQgeW91IGNhbiBhcHBseSBkaXJlY3RseSBpbnRvIHlvdXIgY2x1c3Rlci4KCkNvbmZpZ3VyYXRpb24gb2YgdGhlIEFQSSByZXNvdXJjZSBpcyBkb25lIHZpYSB0aGUgeC1rdXNrIGV4dGVuc2lvbi4KCklmIHRoZSBPcGVuQVBJIHNwZWMgZG9lc24ndCBoYXZlIGEgdG9wLWxldmVsIHgta3VzayBhbm5vdGF0aW9uIHNldCwgaXQgd2lsbCBhZGQgdGhlbSBmb3IgeW91IGFuZCBzZXQKdGhlIHVwc3RyZWFtIHNlcnZpY2UsIG5hbWVzcGFjZSBhbmQgcG9ydCB0byB0aGUgZmxhZyB2YWx1ZXMgcGFzc2VkIGluIHJlc3BlY3RpdmVseSBhbmQgc2V0IHRoZSByZXN0IG9mIHRoZSBzZXR0aW5ncyB0byBkZWZhdWx0cy4KVGhpcyBpcyBlbm91Z2ggdG8gZ2V0IHlvdSBzdGFydGVkCgpJZiB0aGUgeC1rdXNrIGV4dGVuc2lvbiBpcyBhbHJlYWR5IHByZXNlbnQsIGl0IHdpbGwgb3ZlcnJpZGUgdGhlIHRoZSB1cHN0cmVhbSBzZXJ2aWNlLCBuYW1lc3BhY2UgYW5kIHBvcnQgdG8gdGhlIGZsYWcgdmFsdWVzIHBhc3NlZCBpbiByZXNwZWN0aXZlbHkKYW5kIGxlYXZlIHRoZSByZXN0IG9mIHRoZSBzZXR0aW5ncyBhcyB0aGV5IGFyZS4KCllvdSBtdXN0IHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGVudm95ZmxlZXQgeW91IHdpc2ggdG8gdXNlIHRvIGV4cG9zZSB5b3VyIEFQSS4gVGhpcyBpcyBiZWNhdXNlIEt1c2sgR2F0ZXdheSBjb3VsZCBiZSBtYW5hZ2luZyBtb3JlIHRoYW4gb25lLgpJbiB0aGUgZnV0dXJlLCB3ZSB3aWxsIGFkZCB0aGUgbm90aW9uIG9mIGEgZGVmYXVsdCBlbnZveWZsZWV0IHdoaWNoIGt1c2sgZ2F0ZXdheSB3aWxsIHVzZSB3aGVuIG5vbmUgaXMgc3BlY2lmaWVkLiBpLmUuIGt1c2stZ2F0ZXdheS1lbnZveS1mbGVldC4KCklmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGUgZW52b3lmbGVldCBuYW1lc3BhY2UsIGl0IHdpbGwgZGVmYXVsdCB0byBrdXNrLXN5c3RlbS4KClNhbXBsZSB1c2FnZQoKTm8gbmFtZSBzcGVjaWZpZWQKCmBgYHNoCmt1c2sgYXBpIGdlbmVyYXRlIFwKICAtaSBzcGVjLnlhbWwgXAogIC0tZW52b3lmbGVldC5uYW1lIGt1c2stZ2F0ZXdheS1lbnZveS1mbGVldCBcCiAgLS1lbnZveWZsZWV0Lm5hbWVzcGFjZSBrdXNrLXN5c3RlbQpgYGAKCkluIHRoZSBhYm92ZSBleGFtcGxlLCBrdXNrIHdpbGwgdXNlIHRoZSBvcGVuYXBpIHNwZWMgaW5mby50aXRsZSB0byBnZW5lcmF0ZSBhIG1hbmlmZXN0IG5hbWUgYW5kIGxlYXZlIHRoZSBleGlzdGluZwp4LWt1c2sgZXh0ZW5zaW9uIHNldHRpbmdzCgpObyBhcGkgbmFtZXNwYWNlIHNwZWNpZmllZAoKYGBgc2gKa3VzayBhcGkgZ2VuZXJhdGUgXAogIC1pIHNwZWMueWFtbCBcCiAgLS1uYW1lIGh0dHBiaW4tYXBpIFwKICAtLXVwc3RyZWFtLnNlcnZpY2UgaHR0cGJpbiBcCiAgLS11cHN0cmVhbS5wb3J0IDgwODAgXAogIC0tZW52b3lmbGVldC5uYW1lIGt1c2stZ2F0ZXdheS1lbnZveS1mbGVldApgYGAKCkluIHRoZSBhYm92ZSBleGFtcGxlLCBhcyAtLW5hbWVzcGFjZSBpc24ndCBkZWZpbmVkLCBpdCB3aWxsIGFzc3VtZSB0aGUgZGVmYXVsdCBuYW1lc3BhY2UuCgpOYW1lc3BhY2Ugc3BlY2lmaWVkCgpgYGBzaAprdXNrIGFwaSBnZW5lcmF0ZSBcCiAgLWkgc3BlYy55YW1sIFwKICAtLW5hbWUgaHR0cGJpbi1hcGkgXAogIC0tdXBzdHJlYW0uc2VydmljZSBodHRwYmluIFwKICAtLXVwc3RyZWFtLm5hbWVzcGFjZSBteS1uYW1lc3BhY2UgXAogIC0tdXBzdHJlYW0ucG9ydCA4MDgwIFwKICAtLWVudm95ZmxlZXQubmFtZSBrdXNrLWdhdGV3YXktZW52b3ktZmxlZXQKYGBgCgpPcGVuQVBJIHNwZWMgYXQgVVJMCgpgYGBzaAprdXNrIGFwaSBnZW5lcmF0ZSBcCiAgICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vJE9SR19PUl9VU0VSLyRSRVBPL215c3BlYy55YW1sIFwKICAgIC0tbmFtZSBodHRwYmluLWFwaSBcCiAgICAtLXVwc3RyZWFtLnNlcnZpY2UgaHR0cGJpbiBcCiAgICAtLXVwc3RyZWFtLm5hbWVzcGFjZSBteS1uYW1lc3BhY2UgXAogICAgLS11cHN0cmVhbS5wb3J0IDgwODAgXAogICAgLS1lbnZveWZsZWV0Lm5hbWUga3Vzay1nYXRld2F5LWVudm95LWZsZWV0CmBgYAoKVGhpcyB3aWxsIGZldGNoIHRoZSBPcGVuQVBJIGRvY3VtZW50IGZyb20gdGhlIHByb3ZpZGVkIFVSTCBhbmQgZ2VuZXJhdGUgYSBLdXNrIEdhdGV3YXkgQVBJIHJlc291cmNlCgojIyMgRmxhZ3MKCnwgICAgICAgICAgRmxhZyAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJlcXVpcmVkPyB8CnwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tOiB8CnwgICAgICAgIGAtLW5hbWVgICAgICAgICB8IHRoZSBuYW1lIHRvIGdpdmUgdGhlIEFQSSByZXNvdXJjZSBlLmcuIC0tbmFtZSBteS1hcGkuIE90aGVyd2lzZSB0YWtlbiBmcm9tIE9wZW5BUEkgaW5mbyB0aXRsZSBmaWVsZCB8ICAgICDinYwgICAgIHwKfCAgYC0tbmFtZXNwYWNlYCAvIGAtbmAgIHwgdGhlIG5hbWVzcGFjZSBvZiB0aGUgQVBJIHJlc291cmNlIGUuZy4gLS1uYW1lc3BhY2UgbXktbmFtZXNwYWNlLCAtbiBteS1uYW1lc3BhY2UgKGRlZmF1bHQ6IGRlZmF1bHQpIHwgICAgIOKdjCAgICAgfAp8ICAgICBgLS1pbmAgLyBgLWlgICAgICAgfCAgICAgICBmaWxlIHBhdGggb3IgVVJMIHRvIE9wZW5BUEkgc3BlYyBmaWxlIHRvIGdlbmVyYXRlIG1hcHBpbmdzIGZyb20uIGUuZy4gLS1pbiBhcGlzcGVjLnlhbWwgICAgICAgfCAgICAg4pyFICAgICB8CnwgIGAtLXVwc3RyZWFtLnNlcnZpY2VgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiB1cHN0cmVhbSBLdWJlcm5ldGVzIHNlcnZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICDinYwgICAgIHwKfCBgLS11cHN0cmVhbS5uYW1lc3BhY2VgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSBvZiB1cHN0cmVhbSBzZXJ2aWNlIChkZWZhdWx0OiBkZWZhdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIOKdjCAgICAgfAp8ICAgYC0tdXBzdHJlYW0ucG9ydGAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgcG9ydCB0aGF0IHVwc3RyZWFtIHNlcnZpY2UgaXMgZXhwb3NlZCBvbiAoZGVmYXVsdDogODApICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg4p2MICAgICB8CnwgIGAtLWVudm95ZmxlZXQubmFtZWAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZW52b3lmbGVldCB0byB1c2UgZm9yIHRoaXMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICDinIUgICAgIHwKfCBgZW52b3lmbGVldC5uYW1lc3BhY2VgIHwgICAgICAgICAgICAgICAgICBuYW1lc3BhY2Ugb2YgZW52b3lmbGVldCB0byB1c2UgZm9yIHRoaXMgQVBJLiBEZWZhdWx0OiBrdXNrLXN5c3RlbSAgICAgICAgICAgICAgICAgIHwgICAgIOKdjCAgICAgfAoKIyMjIEV4YW1wbGUKClRha2UgYSBsb29rIGF0IHRoZSBbYC4vZXhhbXBsZXMvaHR0cGJpbi1zcGVjLnlhbWxgXSguL2V4YW1wbGVzL2h0dHBiaW4tc3BlYy55YW1sKQoKYGBgc2gKa3VzayBhcGkgZ2VuZXJhdGUgLWkgLi9leGFtcGxlcy9odHRwYmluLXNwZWMueWFtbCAtLW5hbWUgaHR0cGJpbi1hcGkgLS11cHN0cmVhbS5zZXJ2aWNlIGh0dHBiaW4gLS11cHN0cmVhbS5wb3J0IDgwODAgLS1lbnZveWZsZWV0Lm5hbWUga3Vzay1nYXRld2F5LWVudm95LWZsZWV0CmBgYAoKVGhlIG91dHB1dCBzaG91bGQgY29udGFpbiB0aGUgZm9sbG93aW5nIHgta3VzayBleHRlbnNpb24gYXQgdGhlIHRvcCBsZXZlbAoKYGBgc2gKLi4uCngta3VzazoKICBjb3JzOiB7fQogIHBhdGg6CiAgICByZXdyaXRlOgogICAgICBwYXR0ZXJuOiAiIgogICAgICBzdWJzdGl0dXRpb246ICIiCiAgdXBzdHJlYW06CiAgICBzZXJ2aWNlOgoJbmFtZTogaHR0cGJpbgoJbmFtZXNwYWNlOiBkZWZhdWx0Cglwb3J0OiA4MDgwCmBgYAoKIyMgZGFzaGJvYXJkCkFjY2VzcyB0aGUga3VzayBkYXNoYm9hcmQuIGt1c2sgZGFzaGJvYXJkIHdpbGwgc3RhcnQgYSBwb3J0LWZvcndhcmQgc2Vzc2lvbiBvbiBwb3J0IDgwODAgdG8gdGhlIGVudm95ZmxlZXQKc2VydmluZyB0aGUgZGFzaGJvYXJkIGFuZCB3aWxsIG9wZW4gdGhlIGRhc2hib2FyZCBpbiB0aGUgYnJvd3Nlci4gQnkgZGVmYXVsdCB0aGlzIGlzIGt1c2stZ2F0ZXdheS1wcml2YXRlLWVudm95LWZsZWV0Lmt1c2stc3lzdGVtLgoKVGhlIGZsYWdzIC0tZW52b3lmbGVldC5uYW1lc3BhY2UgYW5kIC0tZW52b3lmbGVldC5uYW1lIGNhbiBiZSB1c2VkIHRvIGNoYW5nZSB0aGUgZW52b3lmbGVldC4KCiMjIyBGbGFncwp8ICAgICAgICAgICBGbGFnICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVxdWlyZWQ/IHwKfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tOiB8CnwgICAgICBgLS1rdWJlY29uZmlnYCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNvbHV0ZSBwYXRoIHRvIGt1YmUgY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg4p2MICAgICB8CnwgICBgLS1lbnZveWZsZWV0Lm5hbWVgICAgIHwga3VzayBnYXRld2F5IGRhc2hib2FyZCBlbnZveSBmbGVldCBzZXJ2aWNlIG5hbWUuIChkZWZhdWx0OiBrdXNrLWdhdGV3YXktcHJpdmF0ZS1lbnZveS1mbGVldCkgfCAgICAg4p2MICAgICB8CnwgYC0tZW52b3lmbGVldC5uYW1lc3BhY2VgIHwgICAgICAgICBrdXNrIGdhdGV3YXkgZGFzaGJvYXJkIGVudm95IGZsZWV0IHNlcnZpY2UgbmFtZXNwYWNlLiAoZGVmYXVsdDoga3Vzay1zeXN0ZW0pICAgICAgICAgfCAgICAg4p2MICAgICB8CnwgICAgYC0tZXh0ZXJuYWwtcG9ydGAgICAgIHwgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsIHBvcnQgdG8gYWNjZXNzIGRhc2hib2FyZCBhdC4gKGRlZmF1bHQ6IDgwODApICAgICAgICAgICAgICAgICAgICAgfCAgICAg4p2MICAgICB8CgojIyMgRXhhbXBsZXMKCmBgYHNoCiQga3VzayBkYXNoYm9hcmQKYGBgCgpPcGVucyB0aGUga3VzayBnYXRld2F5IGRhc2hib2FyZCBpbiB0aGUgYnJvd3NlciBieSBleHBvc2luZyB0aGUgZGVmYXVsdCBwcml2YXRlIGVudm95IGZsZWV0IG9uIHBvcnQgODA4MAoKYGBgc2gKJCBrdXNrIGRhc2hib2FyZCAtLWVudm95ZmxlZXQubmFtZXNwYWNlPW90aGVyLW5hbWVzcGFjZSAtLWVudm95ZmxlZXQubmFtZT1vdGhlci1lbnZveS1mbGVldApgYGAKClNwZWNpZnkgb3RoZXIgZW52b3lmbGVldCBhbmQgbmFtZXNwYWNlIHRoYXQgaXMgc2VydmluZyB0aGUgZGFzaGJvYXJkCgpgYGBzaAokIGt1c2sgZGFzaGJvYXJkIC0tZXh0ZXJuYWwtcG9ydD05MDkwCmBgYAoKRXhwb3NlIGRhc2hib2FyZCBvbiBwb3J0IDkwOTAKCmBgYHNoCiQga3VzayBkYXNoYm9hcmQgLS1rdWJlY29uZmlnPS9wYXRoL3RvL2t1YmUvY29uZmlnCmBgYAoKU3BlY2lmeSBwYXRoIHRvIGt1YmUgY29uZmlnLiAkSE9NRS8ua3ViZS9jb25maWcgaXMgdXNlZCBieSBkZWZhdWx0LgoKIyBJbnN0YWxsYXRpb24KCiMjIEhvbWVicmV3CgpgYGBzaApicmV3IGluc3RhbGwga3ViZXNob3Ava3Vzay9rdXNrCmBgYAoKIyMgR28gaW5zdGFsbCB0aGUgbGF0ZXN0IHJlbGVhc2Ugb24gR2l0aHViCgpgYGBzaApnbyBpbnN0YWxsIGdpdGh1Yi5jb20va3ViZXNob3Ava3Vza0BsYXRlc3QKYGBgCgpUbyBpbnN0YWxsIGEgcGFydGljdWxhciB2ZXJzaW9uOiByZXBsYWNlIGBsYXRlc3RgIHdpdGggdGhlIHZlcnNpb24gbnVtYmVyCgpZb3UgY2FuIGdldCBhIGxpc3Qgb2YgdGhlIGF2YWlsYWJsZSBrdXNrIHZlcnNpb25zIGZyb20gb3VyIFtyZWxlYXNlcyBwYWdlXShodHRwczovL2dpdGh1Yi5jb20va3ViZXNob3Ava3Vzay9yZWxlYXNlcykKCiMjIEVhc3kgaW5zdGFsbCBzY3JpcHQKClRoaXMgd2lsbCBpbnN0YWxsIGBrdXNrYCBpbnRvIGAvdXNyL2xvY2FsL2Jpbi9rdXNrYAoKYGBgc2gKJCBjdXJsIC1zU0xmIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9rdWJlc2hvcC9rdXNrL21haW4vc2NyaXB0cy9pbnN0YWxsLnNoIHwgc2gKLi4uCmt1c2sgaW5zdGFsbGVkIGluIC91c3IvbG9jYWwvYmluL2t1c2sKYGBgCgojIyBGcm9tIHNvdXJjZQoKYGBgc2gKZ2l0IGNsb25lIGdpdEBnaXRodWIuY29tOmt1YmVzaG9wL2t1c2suZ2l0ICYmIFwKICBjZCBrdXNrICYmIFwKICBnbyBpbnN0YWxsCmBgYAoKIyMgQWx0ZXJuYXRpdmUgaW5zdGFsbGF0aW9uIG1ldGhvZCAobWFudWFsKQoKSWYgeW91IGRvbid0IGxpa2UgYXV0b21hdGljIHNjcmlwdHMgeW91IGNhbiBhbHdheXMgdXNlIHRoZSBtYW51YWwgaW5zdGFsbDoKCjEuIERvd25sb2FkIGJpbmFyeSB3aXRoIHZlcnNpb24gb2YgeW91ciBjaG9pY2UgKHJlY2VudCBvbmUgaXMgcmVjb21tZW5kZWQpLgoyLiBVbnBhY2sgaXQgKGB0YXIgLXp4dmYga3Vza18wLjEuMF9MaW51eF9hcm02NC50YXIuZ3pgKS4KMy4gTW92ZSBpdCB0byBhIGxvY2F0aW9uIGluIHRoZSBgUEFUSGAuIEZvciBleGFtcGxlIGBtdiBrdXNrXzAuMS4wX0xpbnV4X2FybTY0L2t1c2sgL3Vzci9sb2NhbC9iaW4va3Vza2AuCgpGb3IgV2luZG93cywgZG93bmxvYWQgdGhlIGJpbmFyeSBmcm9tIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20va3ViZXNob3Ava3Vzay9yZWxlYXNlcyksIHVucGFjayB0aGUgYmluYXJ5IGFuZCBhZGQgaXQgdG8gYCVQQVRIJWAuCgojIFVwZGF0aW5nCgojIyBIb21lYnJldwoKYGBgc2gKYnJldyB1cGdyYWRlIGt1YmVzaG9wL2t1c2sva3VzawpgYGAKCiMjIExhdGVzdCByZWxlYXNlIG9uIEdpdGh1YgoKYGBgc2gKZ28gaW5zdGFsbCBnaXRodWIuY29tL2t1YmVzaG9wL2t1c2tAbGF0ZXN0CmBgYAoKIyMgRnJvbSBzb3VyY2UKCkluc2lkZSBvZiB0aGUga3VzayByZXBvc2l0b3J5IGRpcmVjdG9yeQoKYGBgc2gKZ2l0IHB1bGwgJiYgZ28gaW5zdGFsbApgYGAKCiMgQ0xJIFJlZmVyZW5jZSAKCkZvciBkZXRhaWxlZCBjb21tYW5kIGxpbmUgcmVmZXJlbmNlIHZpc2l0IFtkb2NzXShkb2NzL2t1c2subWQpCiMgQ29udHJpYnV0aW5nCgpZb3VyIGNvbnRyaWJ1dGlvbnMgYXJlIGFsd2F5cyB3ZWxjb21lISBQbGVhc2UgaGF2ZSBhIGxvb2sgYXQgW0hvdyB0byBjb250cmlidXRlXShodHRwczovL2dpdGh1Yi5jb20va3ViZXNob3AvLmdpdGh1Yi9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKSBmaXJzdC4KCiMjIyBEZXZlbG9wbWVudAoKYGBgc2gKbWFrZQouL2t1c2sgLS1oZWxwCmBgYAoKIyBMaWNlbnNlCgpbVGhlIE1JVCBMaWNlbnNlXShodHRwczovL21pdC1saWNlbnNlLm9yZy8pLgoKUGxlYXNlIGhhdmUgYSBsb29rIGF0IHRoZSBbYC4vTElDRU5TRWBdKC4vTElDRU5TRSkgZm9yIG1vcmUgZGV0YWlscy4K readmeEtag: '"b3b36f64d95a7b67e18e776f08517bd167f37126"' readmeLastModified: Wed, 12 Oct 2022 11:05:43 GMT repositoryId: 425900868 description: CLI for Kusk Gateway related functionality created: '2021-11-08T15:54:35Z' updated: '2024-02-24T22:05:47Z' language: Go archived: false stars: 7 watchers: 14 forks: 1 owner: kubeshop logo: https://avatars.githubusercontent.com/u/82541796?v=4 license: MIT repoEtag: '"0d2d1112f4f08594c422f620bdd68bbbc2b7fb6735d0bf3688e85a29a3cb78b7"' repoLastModified: Sat, 24 Feb 2024 22:05:47 GMT foundInMaster: true id: 5a0e82ad543d0aaa0ce624ce0a747f6b category: Server Implementations - source: openapi3 tags repository: https://github.com/yoaquim/zemi v3: true id: b1513f51d7a1d3ba8db7b3fb1d92c0d7 repositoryMetadata: base64Readme: >- IyB6ZW1pCgpbIVtidWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL3lvYXF1aW0vemVtaS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL3lvYXF1aW0vemVtaS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwpClshW0NvZGUgQ2xpbWF0ZSBDb3ZlcmFnZV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL3lvYXF1aW0vemVtaS9iYWRnZXMvY292ZXJhZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL3lvYXF1aW0vemVtaS9jb3ZlcmFnZSkKWyFbQ29kZSBDbGltYXRlIE1haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL3lvYXF1aW0vemVtaS9iYWRnZXMvZ3BhLnN2ZyldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi95b2FxdWltL3plbWkpClshW1NueWsuaW8gVnVsbmVyYWJpbGl0aWVzXShodHRwczovL3NueWsuaW8vdGVzdC9naXRodWIveW9hcXVpbS96ZW1pL2JhZGdlLnN2Zz90YXJnZXRGaWxlPXBhY2thZ2UuanNvbildKGh0dHBzOi8vc255ay5pby90ZXN0L2dpdGh1Yi95b2FxdWltL3plbWk/dGFyZ2V0RmlsZT1wYWNrYWdlLmpzb24pCgpbIVtucG0gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi96ZW1pP2NvbG9yPTEzN2RjMiZsb2dvPW5wbSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3plbWkpClshW1R5cGVzXShodHRwczovL2JhZGdlbi5uZXQvbnBtL3R5cGVzL3plbWkpXShodHRwczovL2dpdGh1Yi5jb20veW9hcXVpbS96ZW1pL3RyZWUvbWFpbi9zcmMvdHlwZXMpClshW0RlcGVuZGVuY2llc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kZXBlbmRlbmNpZXMtMi1ibHVlKV0oaHR0cHM6Ly9naXRodWIuY29tL3lvYXF1aW0vemVtaS9ibG9iL21haW4vcGFja2FnZS5qc29uI0wyNy1MMzApClshW0luc3RhbGwgU2l6ZV0oaHR0cHM6Ly9wYWNrYWdlcGhvYmlhLmNvbS9iYWRnZT9wPXplbWkpXShodHRwczovL3BhY2thZ2VwaG9iaWEuY29tL3Jlc3VsdD9wPXplbWkpClshW0xpY2Vuc2VdKGh0dHBzOi8vYmFkZ2VuLm5ldC9ucG0vbGljZW5zZS96ZW1pKV0oaHR0cHM6Ly9naXRodWIuY29tL3lvYXF1aW0vemVtaS9ibG9iL21haW4vTElDRU5TRS5tZCkKCjxicj4KCnplbWkgaXMgYSBbZGF0YS1kcml2ZW5dKCNkYXRhLWRyaXZlbikgcm91dGluZyBsaWJyYXJ5IGZvciBbRXhwcmVzc10oaHR0cHM6Ly9leHByZXNzanMuY29tLyksIGJ1aWx0IHdpdGggVHlwZXNjcmlwdC4KCkZlYXR1cmVzOgoKLSBbcmV2ZXJzZS1yb3V0aW5nXSgjcmV2ZXJzZS1yb3V0aW5nKQotIFtwYXRoLXBhcmFtZXRlciBpbmhlcml0YW5jZV0oI3BhcmFtZXRlci1pbmhlcml0YW5jZSkKLSByb3V0ZS1sZXZlbCBbbWlkZGxld2FyZSBzdXBwb3J0XSgjbWlkZGxld2FyZSkKCjxicj4KCiMgVGFibGUgb2YgQ29udGVudHMKCjEuIFtSb3V0aW5nXSgjcm91dGluZykKICAgIDEuIFtEYXRhLWRyaXZlbl0oI2RhdGEtZHJpdmVuKQogICAgMi4gW1JldmVyc2Utcm91dGluZ10oI3JldmVyc2Utcm91dGluZykKICAgIDMuIFtNaWRkbGV3YXJlXSgjbWlkZGxld2FyZSkKICAgIDQuIFtQYXJhbWV0ZXIgSW5oZXJpdGFuY2VdKCNwYXJhbWV0ZXItaW5oZXJpdGFuY2UpCjIuIFtUeXBlc10oI3R5cGVzKQogICAgMS4gW1plbWlNZXRob2RdKCN6ZW1pbWV0aG9kKQogICAgMi4gW1plbWlSZXF1ZXN0SGFuZGxlcl0oI3plbWlyZXF1ZXN0aGFuZGxlcikKICAgIDMuIFtaZW1pUmVxdWVzdF0oI3plbWlyZXF1ZXN0KQogICAgNC4gW1plbWlSZXNwb25zZV0oI3plbWlyZXNwb25zZSkKICAgIDUuIFtaZW1pUm91dGVEZWZpbml0aW9uXSgjemVtaXJvdXRlZGVmaW5pdGlvbikKICAgIDYuIFtaZW1pUm91dGVdKCN6ZW1pcm91dGUpCjMuIFtFeGFtcGxlc10oI2V4YW1wbGVzKQogICAxLiBbU2ltcGxlXShodHRwczovL2dpdGh1Yi5jb20veW9hcXVpbS96ZW1pL2Jsb2IvbWFpbi9leGFtcGxlcy9zaW1wbGUudHMpCiAgIDIuIFtXaXRoIE1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS95b2FxdWltL3plbWkvYmxvYi9tYWluL2V4YW1wbGVzL3dpdGgtbWlkZGxld2FyZS50cykKICAgMy4gW1VzaW5nIE5hbWVkIFJvdXRlcyBGb3IgUmVkaXJlY3RzXShodHRwczovL2dpdGh1Yi5jb20veW9hcXVpbS96ZW1pL2Jsb2IvbWFpbi9leGFtcGxlcy91c2luZy1uYW1lZC1yb3V0ZXMtZm9yLXJlZGlyZWN0LnRzKQogICA0LiBbVXNpbmcgUmV2ZXJzZSBSb3V0aW5nXShodHRwczovL2dpdGh1Yi5jb20veW9hcXVpbS96ZW1pL2Jsb2IvbWFpbi9leGFtcGxlcy91c2luZy1yZXZlcnNlLXJvdXRpbmcudHMpCiAgIDUuIFtXaXRoIFBhcmFtIEluaGVyaXRhbmNlIGZyb20gUGFyZW50IFJvdXRlc10oaHR0cHM6Ly9naXRodWIuY29tL3lvYXF1aW0vemVtaS9ibG9iL21haW4vZXhhbXBsZXMvbmVzdGVkLXJvdXRlLXBhcmFtLWluaGVyaXRhbmNlLnRzKQo0LiBbTGltaXRhdGlvbnNdKCNsaW1pdGF0aW9ucykKCjxicj4KCiMjIFJvdXRpbmcKCiMjIyBEYXRhLWRyaXZlbgoKQXNzdW1lIHlvdSBoYXZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGRlZmluZWQ6IGBwZXRzSGFuZGxlcmAsIGBkb2dCcmVlZEhhbmRsZXJgLCBgZG9nQnJlZWRzSWRIYW5kbGVyYCwgYGNhdHNCeUlkSGFuZGxlcmAgOyBlLmcuOgoKYGBgdHMKY29uc3QgcGV0c0hhbmRsZXIgPSAocmVxdWVzdDogWmVtaVJlcXVlc3QsIHJlc3BvbnNlOiBaZW1pUmVzcG9uc2UpID0+IHsKICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGlzIHJlcXVlc3QgYW5kIHJlc3BvbmQKICByZXNwb25zZS5zdGF0dXMoMjAwKS5qc29uKHsgcGV0czogWyJkb2dzIiwgImNhdHMiXSB9KTsKfTsKCmNvbnN0IGRvZ0JyZWVkSGFuZGxlciA9IChyZXF1ZXN0OiBaZW1pUmVxdWVzdCwgcmVzcG9uc2U6IFplbWlSZXNwb25zZSkgPT4gewogICAvLy4uLgp9OwoKY29uc3QgZG9nQnJlZWRzSWRIYW5kbGVyID0gKHJlcXVlc3Q6IFplbWlSZXF1ZXN0LCByZXNwb25zZTogWmVtaVJlc3BvbnNlKSA9PiB7CiAgIC8vLi4uCn07Cgpjb25zdCBjYXRzQnlJZEhhbmRsZXIgPSAocmVxdWVzdDogWmVtaVJlcXVlc3QsIHJlc3BvbnNlOiBaZW1pUmVzcG9uc2UpID0+IHsKICAgLy8uLi4KfTsKYGBgCgpUaGVuIHRoZSBmb2xsb3dpbmcgY29kZToKCmBgYHRzCmltcG9ydCBleHByZXNzIGZyb20gImV4cHJlc3MiOwppbXBvcnQgemVtaSwgeyBaZW1pUm91dGUsIFplbWlNZXRob2QgfSBmcm9tICJ6ZW1pIjsKCmNvbnN0IHsgR0VUIH0gPSBaZW1pTWV0aG9kOwoKY29uc3Qgcm91dGVzOiBBcnJheTxaZW1pUm91dGU+ID0gWwogIHsKICAgIG5hbWU6ICJwZXRzIiwKICAgIHBhdGg6ICIvcGV0cyIsCiAgICBbR0VUXTogcGV0c0hhbmRsZXIsCiAgICByb3V0ZXM6IFsKICAgICAgewogICAgICAgIG5hbWU6ICJkb2dCcmVlZHMiLAogICAgICAgIHBhdGg6ICIvZG9ncy86YnJlZWQiLAogICAgICAgIFtHRVRdOiBkb2dCcmVlZEhhbmRsZXIsCiAgICAgICAgcm91dGVzOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIG5hbWU6ICJkb2dzQnlCcmVlZEJ5SWQiLAogICAgICAgICAgICBwYXRoOiAiLzppZCIsCiAgICAgICAgICAgIFtHRVRdOiBkb2dCcmVlZHNJZEhhbmRsZXIKICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBuYW1lOiAiY2F0c0J5SWQiLAogICAgICAgIHBhdGg6ICIvY2F0cy86aWQiLAogICAgICAgIFtHRVRdOiBjYXRzQnlJZEhhbmRsZXIKICAgICAgfQogICAgXQogIH0KXTsKCmNvbnN0IGFwcCA9IGV4cHJlc3MoKTsKYXBwLnVzZShleHByZXNzLmpzb24oKSk7CmFwcC51c2UoIi8iLCB6ZW1pKHJvdXRlcykpOwphcHAubGlzdGVuKDMwMDApOwpgYGAKCkdlbmVyYXRlcyBhbiBBUEkgbGlrZToKCnwgcm91dGVzICAgICAgICAgICAgICAgICAgfCByZXNwb25zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBgL3BldHNgICAgICAgICAgICAgICAgICB8IGB7cGV0czogWydkb2dzJywgJ2NhdHMnLCAncmFiYml0cyddfWAgICAgICAgICAgICAgICB8CnwgYC9wZXRzL2RvZ3NgICAgICAgICAgICAgfCBgQ2Fubm90IEdFVCAvcGV0cy9kb2dzL2AgKHNpbmNlIGl0IHdhcyBub3QgZGVmaW5lZCkgfAp8IGAvcGV0cy9kb2dzL2xhYnJhZG9yYCAgIHwgYHsicmVzdWx0IjpbIkZyZWQiLCJCYXJuZXkiLCJXaWxtYSJdfWAgICAgICAgICAgICAgIHwKfCBgL3BldHMvZG9ncy9sYWJyYWRvci8xYCB8IGB7InJlc3VsdCI6IkJhcm5leSJ9YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYC9wZXRzL2NhdHNgICAgICAgICAgICAgfCBgQ2Fubm90IEdFVCAvcGV0cy9jYXRzL2AgKHNpbmNlIGl0IHdhcyBub3QgZGVmaW5lZCkgfAp8IGAvcGV0cy9jYXRzLzJgICAgICAgICAgIHwgYHsicmVzdWx0IjoiRGFwaG5lIn1gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCjxicj4KCiMjIyBSZXZlcnNlLXJvdXRpbmcKCnplbWkgYnVpbGRzIHJvdXRlLWRlZmluaXRpb25zIGZvciBhbGwgcm91dGVzIGFuZCBhZGRzIHRoZW0gdG8gdGhlIFtgWmVtaVJlcXVlc3RgXSgjemVtaXJlcXVlc3QpIHBhc3NlZCB0byB0aGUgaGFuZGxlciBmdW5jdGlvbi4KCkFsbCByb3V0ZS1kZWZpbml0aW9ucyBhcmUgbmFtZWQgKGluZGV4LWFjY2Vzc2libGUpIGFuZCBmb2xsb3cgdGhlIHNhbWUgbmFtaW5nIGNvbnZlbnRpb246IGBbYW5jZXN0b3Igcm91dGUgbmFtZXNdLVtwYXJlbnQgcm91dGUgbmFtZV0tW3JvdXRlIG5hbWVdYCwgZS5nLiBgYmFzZVBhdGgtZ3JlYXRHcmFuZHBhcmVudC1ncmFuZHBhcmVudC1wYXJlbnQtbXlSb3V0ZWAsIGBwZXRzLWRvZ3NCcmVlZHMtZG9nc0J5QnJlZWRCeUlkYC4KCkVhY2ggcm91dGUtZGVmaW5pdGlvbiBjb250YWlucyB0aGUgbmFtZSwgcGF0aCwgYW5kIHBhdGgtcGFyYW1ldGVycyAoaWYgcHJlc2VudCkgb2YgdGhlIHJvdXRlLgpJdCBhbHNvIGNvbnRhaW5zIGEgcmV2ZXJzZSBmdW5jdGlvbiB3aGljaCDigJQgd2hlbiBpbnZva2VkIHdpdGggYW4gb2JqZWN0IG1hcHBpbmcgcGF0aC1wYXJhbWV0ZXJzIHRvIHZhbHVlcyDigJQgd2lsbCByZXR1cm4gdGhlIGludGVycG9sYXRlZCBwYXRoIHdpdGggdmFsdWVzLgoKRS5nLiBhIGhhbmRsZXIgbGlrZSB0aGlzOgoKYGBgdHMKaW1wb3J0IHsgWmVtaVJlcXVlc3QsIFplbWlSZXNwb25zZSwgWmVtaVJvdXRlRGVmaW5pdGlvbiB9IGZyb20gInplbWkiOwoKY29uc3QgcGV0c0hhbmRsZXIgPSAocmVxdWVzdDogWmVtaVJlcXVlc3QsIHJlc3BvbnNlOiBaZW1pUmVzcG9uc2UpID0+IHsKICBjb25zdCByb3V0ZURlZmluaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBaZW1pUm91dGVEZWZpbml0aW9uPiA9IHJlcXVlc3Qucm91dGVEZWZpbml0aW9uczsKICBjb25zdCB7IHBhdGgsIG5hbWUsIHBhcmFtZXRlcnMsIHJldmVyc2UgfSA9IHJvdXRlRGVmaW5pdGlvbnNbInBldHMtZG9nQnJlZWRzLWRvZ3NCeUJyZWVkQnlJZCJdOwogIHJlc3BvbnNlLnN0YXR1cygyMDApLmpzb24oeyBwYXRoLCBuYW1lLCBwYXJhbWV0ZXJzLCByZXZlcnNlOiByZXZlcnNlKHsgYnJlZWQ6ICdDb3JnaScsIGlkOiAnOTknIH0pIH0pOwp9OwpgYGAKClJldHVybnM6CgpgYGBqc29uCiAgewogICJwYXRoIjogIi9wZXRzL2RvZ3MvOmJyZWVkLzppZCIsCiAgIm5hbWUiOiAicGV0cy1kb2dCcmVlZHMtZG9nc0J5QnJlZWRCeUlkIiwKICAicGFyYW1ldGVycyI6IFsKICAgICJicmVlZCIsCiAgICAiaWQiCiAgXSwKICAicmV2ZXJzZSI6ICIvcGV0cy9kb2dzL2NvcmdpLzk5Igp9CmBgYAoKVGhpcyBhbGxvd3MgeW91IHRvIGdlbmVyYXRlIGxpbmtzLCByZWRpcmVjdCwgYW5kIGNoYW5nZSBwYXRoIHZhbHVlcyB3aXRob3V0IGhhdmluZyB0byBoYXJkY29kZSBzdHJpbmdzIGFuZCBjaGFuZ2UgdGhlbSBsYXRlci4KCjxicj4KCiMjIyBNaWRkbGV3YXJlCgp6ZW1pIGxldHMgeW91IGRlZmluZSBtaWRkbGV3YXJlIGZ1bmN0aW9ucyBhdCB0aGUgcm91dGUgbGV2ZWw6CgpSZXRha2luZyBhbmQgdHdlYWtpbmcgb3VyIGV4YW1wbGUgZnJvbSB0aGUgYmVnaW5uaW5nOgoKYGBgdHMKaW1wb3J0IHsgWmVtaVJlcXVlc3QsIFplbWlSZXNwb25zZSB9IGZyb20gInplbWkiOwppbXBvcnQgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICJleHByZXNzIjsKCmNvbnN0IHJvdXRlczogQXJyYXk8WmVtaVJvdXRlPiA9IFsKICB7CiAgICBuYW1lOiAicGV0cyIsCiAgICBwYXRoOiAiL3BldHMiLAogICAgW0dFVF06IHBldHNIYW5kbGVyLAogICAgcm91dGVzOiBbCiAgICAgIHsKICAgICAgICBuYW1lOiAiZG9nQnJlZWRzIiwKICAgICAgICBwYXRoOiAiL2RvZ3MvOmJyZWVkIiwKICAgICAgICBbR0VUXTogZG9nQnJlZWRIYW5kbGVyLAogICAgICAgIG1pZGRsZXdhcmU6IFsKICAgICAgICAgIGZ1bmN0aW9uIGxvZ1JvdXRlRGVmcyhyZXF1ZXN0OiBaZW1pUmVxdWVzdCwgcmVzcG9uc2U6IFplbWlSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlcXVlc3Qucm91dGVEZWZpbml0aW9ucykpOwogICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgbmFtZTogImRvZ3NCeUJyZWVkQnlJZCIsCiAgICAgICAgICAgIHBhdGg6ICIvOmlkIiwKICAgICAgICAgICAgW0dFVF06IGRvZ0JyZWVkc0lkSGFuZGxlcgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfSwKICAgICAgewogICAgICAgIG5hbWU6ICJjYXRzQnlJZCIsCiAgICAgICAgcGF0aDogIi9jYXRzLzppZCIsCiAgICAgICAgW0dFVF06IHsgaGFuZGxlcjogY2F0c0J5SWRIYW5kbGVyIH0KICAgICAgfQogICAgXQogIH0KXTsKYGBgCgpUaGUgbWlkZGxld2FyZSBmdW5jdGlvbiBgbG9nUm91dGVEZWZzYCBkZWZpbmVkIGF0IHRoZSBgZG9nQnJlZWRzYCBsZXZlbCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIHRoZSBtZXRob2RzIGF0IHRoYXQgbGV2ZWwgYW5kIGFsbCBuZXN0ZWQgcm91dGVzIOKAlCB3aGljaCBtZWFucyBvdXIgYGRvZ3NCeUJyZWVkQnlJZGAgcm91dGUgd2lsbCBnYWluIHRoYXQgZnVuY3Rpb25hbGl0eSBhbHNvLgoKPGJyPgoKIyMjIFBhcmFtZXRlciBJbmhlcml0YW5jZQoKQXMgc2hvdyBpbiBwcmV2aW91cyBleGFtcGxlcywgcGFyYW1ldGVycyBkZWZpbmVkIGF0IHBhcmVudCByb3V0ZXMgYXJlIHBhc3NlZCBhbmQgYXZhaWxhYmxlIHRvIG5lc3RlZCByb3V0ZXMuCgpFLmcuIGluIHRoaXMgcHVycG9zZWZ1bGx5IGNvbnZvbHV0ZWQgZXhhbXBsZToKCmBgYHRzCmNvbnN0IHJvdXRlczogQXJyYXk8WmVtaVJvdXRlPiA9IFsKICB7CiAgICBuYW1lOiAicGV0cyIsCiAgICBwYXRoOiAiL3BldHMiLAogICAgW0dFVF06IHBldHNIYW5kbGVyLAogICAgcm91dGVzOiBbCiAgICAgIHsKICAgICAgICBuYW1lOiAiZG9nQnJlZWRzIiwKICAgICAgICBwYXRoOiAiL2RvZ3MvOmJyZWVkIiwKICAgICAgICBbR0VUXTogZG9nQnJlZWRIYW5kbGVyLAogICAgICAgIHJvdXRlczogWwogICAgICAgICAgewogICAgICAgICAgICBuYW1lOiAiZG9nc0J5QnJlZWRCeUlkIiwKICAgICAgICAgICAgcGF0aDogIi86aWQiLAogICAgICAgICAgICBbR0VUXTogZG9nQnJlZWRzSWRIYW5kbGVyLAogICAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuYW1lOiAiZG9nc0J5QnJlZWRCeUlkRGV0YWlsc1NlY3Rpb24iLAogICAgICAgICAgICAgICAgcGF0aDogIi9kZXRhaWxzLzpzZWN0aW9uIiwKICAgICAgICAgICAgICAgIFtHRVRdOiBkb2dCcmVlZHNJZERldGFpbHNTZWN0aW9uSGFuZGxlciwKICAgICAgICAgICAgICAgIHJvdXRlczogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbmFtZTogIm5ld0RvZ3NCeUJyZWVkQnlJZERldGFpbHNTZWN0aW9uIiwKICAgICAgICAgICAgICAgICAgICBwYXRoOiAiL25ldyIsCiAgICAgICAgICAgICAgICAgICAgW1BPU1RdOiBuZXdEb2dzQnlCcmVlZEJ5SWREZXRhaWxzU2VjdGlvbkhhbmRsZXIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgXQogIH0KXTsKYGBgCgpUaGUgYG5ld0RvZ3NCeUJyZWVkQnlJZERldGFpbHNTZWN0aW9uYCByb3V0ZSAocGF0aDogYC9wZXRzL2RvZ3MvOmJyZWVkLzppZC9kZXRhaWxzLzpzZWN0aW9uL25ld2ApIHdpbGwgaGF2ZSBgYnJlZWRgLCBgaWRgLCBhbmQgYHNlY3Rpb25gIGF2YWlsYWJsZSBhcyByZXF1ZXN0IHBhcmFtZXRlcnMgaW4gdGhlIFplbWlSZXF1ZXN0IG9iamVjdC4KCjxicj4KCiMjIFR5cGVzCgojIyMgYFplbWlNZXRob2RgCgoqRW51bSoKClRoZSBIVFRQIG1ldGhvZHMgc3VwcG9ydGVkIGJ5IFtgWmVtaVJvdXRlYF0oI3plbWlyb3V0ZSkuCgp8IE1lbWJlciAgICB8IFZhbHVlICAgICB8CnwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBgR0VUYCAgICAgfCBgZ2V0YCAgICAgfAp8IGBQT1NUYCAgICB8IGBwb3N0YCAgICB8CnwgYFBVVGAgICAgIHwgYHB1dGAgICAgIHwKfCBgREVMRVRFYCAgfCBgZGVsZXRlYCAgfAp8IGBPUFRJT05TYCB8IGBvcHRpb25zYCB8Cgo8YnI+CgojIyMgYFplbWlSZXF1ZXN0SGFuZGxlcmAKCkhvdyB0byBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHRoaXMgcm91dGUgbWV0aG9kOyBiYXNpY2FsbHkgYGV4cHJlc3MuUmVxdWVzdEhhbmRsZXJgLCBidXQgZ2V0cyBwYXNzZWQgaXRzIG93biByZXF1ZXN0IGFuZCByZXNwb25zZSB2ZXJzaW9ucywgcGx1cyBhZGRzIHRoYXQgcm91dGVzIFtgWmVtaVJvdXRlRGVmaW5pdGlvbmBdKCN6ZW1pcm91dGVkZWZpbml0aW9uKSBhcyBhbiBvcHRpb25hbCBmb3VydGggcGFyYW0uCgpgYGB0cwooCiAgcmVxdWVzdDogWmVtaVJlcXVlc3QsCiAgcmVzcG9uc2U6IFplbWlSZXNwb25zZSwKICBuZXh0OiBleHByZXNzLk5leHRGdW5jdGlvbiwKICByb3V0ZURlZjogWmVtaVJvdXRlRGVmaW5pdGlvbgopID0+IHZvaWQKYGBgCgo8YnI+CgojIyMgYFplbWlSZXF1ZXN0YAoKKmV4dGVuZHMgYGV4cHJlc3MuUmVxdWVzdGAqCgpBIHdyYXBwZXIgZm9yIGBleHByZXNzLlJlcXVlc3RgOyBhZGRzIGByb3V0ZURlZmluaXRpb25zYCBhbmQgYGFsbG93ZWRSZXNwb25zZUh0dHBDb2Rlc2AgdG8gaXQuCgpgYGB0cwp7CiAgcm91dGVEZWZpbml0aW9uczogUmVjb3JkPHN0cmluZywgWmVtaVJvdXRlRGVmaW5pdGlvbj47CiAgLy8gYWxsIG90aGVyIG1lbWJlcnMgZnJvbSBleHByZXNzLlJlcXVlc3QKfQoKYGBgCgo8YnI+CgojIyMgYFplbWlSZXNwb25zZWAKCipleHRlbmRzIGBleHByZXNzLlJlc3BvbnNlYCoKCkp1c3QgYSB3cmFwcGVyIGZvciBmdXR1cmUtcHJvb2Zpbmc7IHNhbWUgYXMgYGV4cHJlc3MuUmVzcG9uc2VgLgoKPGJyPgoKIyMjIGBaZW1pUm91dGVEZWZpbml0aW9uYAoKUm91dGUgZGVmaW5pdGlvbiBmb3IgYSBnaXZlbiBbYFplbWlSb3V0ZWBdKCN6ZW1pcm91dGUpLgpDb250YWlucyB0aGUgbmFtZSwgcGF0aCwgYW5kIHBhdGgtcGFyYW1ldGVycyAoaWYgcHJlc2VudCkgb2YgdGhlIHJvdXRlIGl0J3MgZGVmaW5pbmcuCkFsc28gcHJvdmlkZXMgYSBgcmV2ZXJzZWAgZnVuY3Rpb24gdGhhdCwgd2hlbiBpbnZva2VkIHdpdGggYW4gb2JqZWN0IHRoYXQgaGFzIHBhcmFtZXRlci12YWx1ZXMsIHdpbGwgcmV0dXJuIHRoZSByZXNvbHZlZCBwYXRoLgoKYGBgdHMKewogIG5hbWU6IHN0cmluZzsKICBwYXRoOiBzdHJpbmc7CiAgcGFyYW1ldGVyczogQXJyYXk8c3RyaW5nPjsKICByZXZlcnNlOiAocGFyYW1ldGVyVmFsdWVzOiBvYmplY3QpID0+IHN0cmluZzsKfQpgYGAKCjxicj4KCiMjIyBgWmVtaVJvdXRlYAoKSXQgbXVzdCBiZSBwcm92aWRlZCBhIGBuYW1lOiBzdHJpbmdgIGFuZCBgcGF0aDogc3RyaW5nYDsgYSBbW2BaZW1pTWV0aG9kYF0oI3plbWltZXRob2QpXTpbYFplbWlSZXF1ZXN0SGFuZGxlcmBdKCN6ZW1pcmVxdWVzdGhhbmRsZXIpIG5lZWRzIHRvIGJlIHByb3ZpZGVkIGlmIHRoYXQgcGF0aCBzaG91bGQgaGF2ZSBmdW5jdGlvbmFsaXR5LCBidXQgZG9lc24ndCBuZWVkIHRvIGJlIGlmIHRoZSBwYXRoIGlzIGp1c3QgcHJlc2VudCBhcyBhIHBhdGgtcHJlZml4IGZvciBuZXN0ZWQgcm91dGVzLgoKYGBgCnsKICAgW1plbWlNZXRob2RdOiBaZW1pUmVxdWVzdEhhbmRsZXI7CiAgIG5hbWU6IHN0cmluZzsKICAgcGF0aDogc3RyaW5nOwogICBtaWRkbGV3YXJlPzogQXJyYXk8UmVxdWVzdEhhbmRsZXI+OwogICByb3V0ZXM/OiBBcnJheTxaZW1pUm91dGU+Owp9CmBgYAoKPGJyPgoKIyMgRXhhbXBsZXMKCkV4YW1wbGVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIFtleGFtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL3lvYXF1aW0vemVtaS9ibG9iL21haW4vZXhhbXBsZXMpIGRpcjoKCjEuIFtTaW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS95b2FxdWltL3plbWkvYmxvYi9tYWluL2V4YW1wbGVzL3NpbXBsZS50cykKCjIuIFtXaXRoIE1pZGRsZXdhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS95b2FxdWltL3plbWkvYmxvYi9tYWluL2V4YW1wbGVzL3dpdGgtbWlkZGxld2FyZS50cykKCjMuIFtVc2luZyBOYW1lZCBSb3V0ZXMgRm9yIFJlZGlyZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL3lvYXF1aW0vemVtaS9ibG9iL21haW4vZXhhbXBsZXMvdXNpbmctbmFtZWQtcm91dGVzLWZvci1yZWRpcmVjdC50cykKIAo0LiBbVXNpbmcgUmV2ZXJzZSBSb3V0aW5nXShodHRwczovL2dpdGh1Yi5jb20veW9hcXVpbS96ZW1pL2Jsb2IvbWFpbi9leGFtcGxlcy91c2luZy1yZXZlcnNlLXJvdXRpbmcudHMpCgo1LiBbV2l0aCBQYXJhbSBJbmhlcml0YW5jZSBmcm9tIFBhcmVudCBSb3V0ZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS95b2FxdWltL3plbWkvYmxvYi9tYWluL2V4YW1wbGVzL25lc3RlZC1yb3V0ZS1wYXJhbS1pbmhlcml0YW5jZS50cykKCjxicj4KCiMjIExpbWl0YXRpb25zCgp6ZW1pIGlzIGEgcmVjdXJzaXZlIGxpYnJhcnk6IGl0IHVzZXMgcmVjdXJzaW9uIGFjcm9zcyBhIG51bWJlciBvZiBvcGVyYXRpb25zIGluIG9yZGVyIHRvIGZhY2lsaXRhdGUgYSBsb3cgZm9vdHByaW50IGFuZCBzdHJhaWdodGZvcndhcmQsIGRlY2xhcmF0aXZlIGRlZmluaXRpb25zLgoKUmVjdXJzaXZlIG9wZXJhdGlvbnMgY2FuIGJyZWFrIHRoZSBjYWxsLXN0YWNrIGJ5IGdvaW5nIG92ZXIgaXRzIGxpbWl0LCBnZW5lcmF0aW5nIGBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZGAgZXJyb3JzLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHJlY3Vyc2l2ZSBmdW5jdGlvbiB3YXMgY2FsbGVkIHRvbyBtYW55IHRpbWVzLCBhbmQgZXhjZWVkZWQgdGhlIGxpbWl0IHBsYWNlZCBvbiBpdCBieSBOb2RlLgoKV2hpbGUgcmVjdXJzaXZlIGZ1bmN0aW9ucyBfY2FuXyBiZSBvcHRpbWl6ZWQgdmlhIFt0YWlsIGNhbGwgb3B0aW1pemF0aW9uXShodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NzQvd2hhdC1pcy10YWlsLWNhbGwtb3B0aW1pemF0aW9uKSAoVENPKSwgdGhhdCBmZWF0dXJlIF9oYXNfIHRvIGJlIHByZXNlbnQgaW4gdGhlIGVudmlyb25tZW50IGJlaW5nIHJ1biBmb3Igb3B0aW1pemF0aW9uIHRvIHdvcmsuCgpVbmZvcnR1bmF0ZWx5IOKAlCBhcyBvZiBOb2RlIDgueCDigJQgVENPIGlzIFtub10oaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjMyNjAzOTAvbm9kZS1qcy10YWlsLWNhbGwtb3B0aW1pemF0aW9uLXBvc3NpYmxlLW9yLW5vdCkgW2xvbmdlcl0oaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDI3ODgxMzkvZXM2LXRhaWwtcmVjdXJzaW9uLW9wdGltaXNhdGlvbi1zdGFjay1vdmVyZmxvdy80Mjc4ODI4NiM0Mjc4ODI4NikgW3N1cHBvcnRlZF0oaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDY5OCkuCgpUaGlzIG1lYW5zIHRoYXQsIGRlcGVuZGluZyBvbiB3aGF0IHlvdSdyZSBidWlsZGluZyBhbmQgdGhlIHNpemUgb2YgeW91ciBBUEksIHplbWkgbWlnaHQgbm90IGJlIHRoZSByaWdodCBmaXQgZm9yIHlvdS4gemVtaSB1c2VzIHJlY3Vyc2lvbiB3aGVuIGRlYWxpbmcgd2l0aCBuZXN0ZWQgcm91dGVzLCBzbyBpZiB5b3VyIGFwcGxpY2F0aW9uIGhhcyBhIHZlcnkgaGlnaCBudW1iZXIgb2YgbmVzdGVkLXJvdXRlcyB3aXRoaW4gbmVzdGVkLXJvdXRlcywgY2hhbmNlcyBhcmUgeW91IG1pZ2h0IGV4Y2VlZCB0aGUgY2FsbCBzdGFjay4K readmeEtag: '"aad25ee30ed3e6bcf649789d5afe288234cc13bd"' readmeLastModified: Sat, 13 Jan 2024 12:49:58 GMT repositoryId: 512997745 description: zemi is a data-driven and reverse-routing library for Express JS. created: '2022-07-12T04:26:47Z' updated: '2023-11-13T16:03:31Z' language: TypeScript archived: false stars: 6 watchers: 2 forks: 0 owner: yoaquim logo: https://avatars.githubusercontent.com/u/702200?v=4 license: ISC repoEtag: '"ea0d8dea40131b80f8aa663ec152663e2a6589f6a5c98d0a49a1d283ea070d14"' repoLastModified: Mon, 13 Nov 2023 16:03:31 GMT category: Parsers foundInMaster: true - source: openapi3 tags repository: https://github.com/rpstreef/openapi-node-example v3: true repositoryMetadata: base64Readme: >- IyBPcGVuQVBJIE5vZGUgY29kZSBleGFtcGxlCgojIEFib3V0OgoKVGhpcyByZXBvIGdvZXMgdG9nZXRoZXIgd2l0aCB0aGUgW09wZW5BUEkgVGVycmFmb3JtIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9ycHN0cmVlZi9vcGVuYXBpLXRmLWV4YW1wbGUpLgoKVGhpcyBqdXN0IGhvbGRzIHRoZSBOb2RlSlMgY29kZSB0aGF0IGdldHMgZGVwbG95ZWQgd2l0aCB0aGUgQ29kZVBpcGVsaW5lIHNldHVwLg== readmeEtag: '"cd3f3ed1687207a83b1b87b52a0e85d7c6094cce"' readmeLastModified: Thu, 27 Aug 2020 05:57:04 GMT repositoryId: 244096270 description: OpenAPI Node code example created: '2020-03-01T06:02:39Z' updated: '2020-08-27T05:57:07Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 2 owner: rpstreef logo: https://avatars.githubusercontent.com/u/15830262?v=4 license: Apache-2.0 repoEtag: '"d86276ebd8ae487393f7aeb94fd2de1966b91f969d64b8db0cb3d025eb6b2be1"' repoLastModified: Thu, 27 Aug 2020 05:57:07 GMT foundInMaster: true category: - Server - Server Implementations id: f1f8b2f0640eb6e3b082bdd243da2680 - source: openapi3 tags repository: https://github.com/reekoheek/xin-openapi v3: true repositoryMetadata: base64Readme: >- IyB4aW4tZXhhbXBsZQoKU3RhcnQgdG8gZGV2ZWxvcCBpcyBlYXN5LCBkb3dubG9hZCBleGFtcGxlIGZyb20gYGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrb2hlZWsveGluLWV4YW1wbGVgIG9yIGNsb25lLgoKYGBgYmFzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3JlZWtvaGVlay94aW4tZXhhbXBsZS5naXQgbXktYXBwCmNkIG15LWFwcApucG0gcnVuIGRldgpgYGAKCiMjIFJFRkVSRU5DRVMKCi0gaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vCi0gaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vdHJlZS9PcGVuQVBJLm5leHQvZXhhbXBsZXMvdjMuMAotIGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZwotIGh0dHBzOi8va291bW91bC5jb20vb3BlbmFwaS12aWV3ZXIvP2NvbmZpZz1odHRwczovL2tvdW1vdWwuY29tL3MvZ2VvY29kZXIvYXBpL3YyL2FwaS1kb2NzLmpzb24KLSBodHRwczovL29wZW5hcGktZ3VpLmhlcm9rdWFwcC5jb20vCi0gaHR0cHM6Ly90ZW1hbmRvLmdpdGh1Yi5pby9vcGVuLWFwaS1yZW5kZXJlci9kZW1vLz91cmw9aHR0cHM6Ly90ZW1hbmRvLmdpdGh1Yi5pby9vcGVuLWFwaS1yZW5kZXJlci9wZXRzdG9yZS1vcGVuLWFwaS12My4wLjAtUkMyLmpzb24jL3BldC9wdXQKLSBodHRwczovL21pa2VyYWxwaHNvbi5naXRodWIuaW8vaW9kb2N0b3IvCgojIyBUT0RPCgotIFNob3cgcm91dGUgZGF0YSBmcm9tIHNwZWMK readmeEtag: '"cfbae69f75fc2686de3b5d005bb569329a91fa59"' readmeLastModified: Mon, 17 Jul 2017 11:48:15 GMT repositoryId: 96982618 description: null created: '2017-07-12T08:15:16Z' updated: '2017-07-12T08:24:59Z' language: JavaScript archived: false stars: 0 watchers: 2 forks: 0 owner: reekoheek logo: https://avatars.githubusercontent.com/u/299394?v=4 license: MIT repoEtag: '"c052156f2f46809c60e033224fb6bf4b63fd23e8ee6dad356197604abc3d8d42"' repoLastModified: Wed, 12 Jul 2017 08:24:59 GMT foundInMaster: true category: Code Generators id: 89a09d094b623be98be9de35f0c24ddb - source: openapi3 tags repository: https://github.com/aristat/http-server v3: true repositoryMetadata: base64Readme: >- IyBIdHRwIFNlcnZlcgoKSXQncyBzbWFsbCBleGFtcGxlIGh0dHAgc2VydmVyIGJhc2VkIG9uIG9wZW5hcGkuIE5vdCBzdWl0YWJsZSBmb3IgbWljcm9zZXJ2aWNlcywgaXQncyBiZXR0ZXIgdG8gbG9vayB0byB0aGUgW2tpdF0oaHR0cHM6Ly9naXRodWIuY29tL2dvLWtpdC9raXQpIAoKIyBHZW5lcmF0ZSBhcGkuZ2VuLmdvCgpgYGAKb2FwaS1jb2RlZ2VuIC1wYWNrYWdlIGFwaSAtZ2VuZXJhdGUgdHlwZXMsY2hpLXNlcnZlcixzcGVjIC1vIGludGVybmFsL2FwcC9hcGkvYXBpLmdlbi5nbyBvcGVuYXBpLnlhbWwKYGBgCgojIFJ1bgoKYGBgCmdvIG1vZCBkb3dubG9hZApnbyBydW4gbWFpbi5nbyBzCmN1cmwgbG9jYWxob3N0OjMwMDAvYXBpL3YxL3Byb2R1Y3RzLzEKYGBgCg== readmeEtag: '"6790e11e256924c464b88c11c4bfe59c53592e85"' readmeLastModified: Sun, 28 Mar 2021 08:22:29 GMT repositoryId: 352156965 description: Example http server created: '2021-03-27T19:16:25Z' updated: '2021-10-06T23:45:40Z' language: Go archived: false stars: 0 watchers: 2 forks: 0 owner: Aristat logo: https://avatars.githubusercontent.com/u/4936284?v=4 repoEtag: '"3d06d74e9d78e32ed29701785b1cad80cc7eebf360a7b997e6e9d2b59ba161b2"' repoLastModified: Wed, 06 Oct 2021 23:45:40 GMT foundInMaster: true category: - Code Generators - Server Implementations id: c3ba39fc99eb3dedefa20d63a670abc0 - source: openapi3 tags repository: https://github.com/thavorath/oas v3: true repositoryMetadata: base64Readme: >- IyMgRXhwZXJpbWVudGFsIE9wZW5BUEkgMyBkb2N1bWVudGF0aW9uIGdlbmVyYXRvcgoKIyMjIFVzYWdlCgpTaW1wbHkgZ28gZ2V0IGFuZCBydW4gdGhpcyBpbiB5b3VyIHByb2plY3QgZm9sZGVyLiBJdCB3aWxsIGdlbmVyYXRlIGEgYXBpLnNwZWMgZmlsZS4gVXNlIHRoaXMgZmlsZSBpbiB5b3VyIFN3YWdnZXIzIFVJLgoKYGBgCmdvIGdldCBnaXRodWIuY29tL3RoYXZvcmF0aC9vYXMKZ28gaW5zdGFsbCBnaXRodWIuY29tL3RoYXZvcmF0aC9vYXMKY2Qgfi9nby9zcmMvZ2l0aHViLmNvbS90aGF2b3JhdGgvbXktcHJvamVjdApvYXMKYGBgCgo= readmeEtag: '"75b5f9b61f96f2fa9d69f30359b2983bfda0fed9"' readmeLastModified: Wed, 23 Jan 2019 05:55:49 GMT repositoryId: 163516751 description: An experimental OpenAPI 3 spec generator created: '2018-12-29T14:20:42Z' updated: '2019-01-23T05:56:11Z' language: Go archived: false stars: 0 watchers: 1 forks: 0 owner: thavorath logo: https://avatars.githubusercontent.com/u/4705578?v=4 license: MIT repoEtag: '"a4ba4b6d7a5b1b200212a445c3a24c2a1abcd103d0a93fa0f52ee5b578faf5a2"' repoLastModified: Wed, 23 Jan 2019 05:56:11 GMT foundInMaster: true category: - SDK - Parsers id: f92bfce6656d9a106c977eb131d93178 - source: openapi3 tags repository: https://github.com/wa-craft/generator-deno v3: true id: 9d24f32b166443ca6d133c30fe8f0838 repositoryMetadata: base64Readme: >- IyBnZW5lcmF0b3IKQW4gb3BlbmFwaSBnZW5lcmF0b3IgZm9yIHdhLWNyYWZ0L2VkaXRvciB3cml0dGVuIGluIERlbm8gdGhhdCBpbiByZXBsYWNlIG9mIHRoZSBvZmZpY2lhbCBvcGVuYXBpLWdlbmVyYXRvci4KCiMgV2FybmluZwpUaGlzIHJlcG9zaXRvcnkgaXMgc3RpbGwgdW5kZXIgZGV2ZWxvcGluZywgRE8gTk9UIHRyeSB0byB1c2UgaXQgaW4gYSByZWFsIHByb2plY3QhCklmIHlvdSBoYXZlIGFueSBxdWVzdGlvbiBwbGVhc2UgY3JlYXRlIGEgbmV3IGlzc3VlLg== readmeEtag: '"7ac9ace8daba83d6f26f76d764c5265966155bb4"' readmeLastModified: Thu, 02 Jun 2022 06:32:05 GMT repositoryId: 458208409 description: >- An openapi generator for wa-craft/editor written in Deno that in replace of the official openapi-generator. created: '2022-02-11T13:58:45Z' updated: '2022-08-14T06:52:48Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: wa-craft logo: https://avatars.githubusercontent.com/u/99487287?v=4 license: MIT repoEtag: '"9979e82974f40d8827a5e0b46b0007ae9200b2472cd565697a9c47e24d32452a"' repoLastModified: Sun, 14 Aug 2022 06:52:48 GMT category: - Parsers - Server Implementations foundInMaster: true oldLocations: - https://github.com/wa-craft/generator - source: openapi3 tags repository: https://github.com/neo-f/soda v3: true id: 207bdae87d0101f1d3d6c8b7ef8a7dd6 repositoryMetadata: base64Readme: >- IyBTb2RhCgpbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL25lby1mL3NvZGEvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmc/dG9rZW49dVlIWTlEQ2JOZSldKGh0dHBzOi8vY29kZWNvdi5pby9naXRodWIvbmVvLWYvc29kYSkKCnNvZGEgOj0gW09wZW5BUEkzXShodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbikgKyBbZmliZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb2ZpYmVyL2ZpYmVyKQo= readmeEtag: '"9080419a8dbe44b0fc05809db4d15c425d39a4c4"' readmeLastModified: Wed, 31 Jul 2024 05:40:27 GMT repositoryId: 581433714 description: null created: '2022-12-23T07:08:24Z' updated: '2024-09-05T03:42:10Z' language: Go archived: false stars: 5 watchers: 3 forks: 2 owner: neo-f logo: https://avatars.githubusercontent.com/u/20187646?v=4 license: MIT repoEtag: '"cfb8eaa1fa0033948f5aa1587650229853161ce7ccbaffdcd495bd62b6ce3c4c"' repoLastModified: Thu, 05 Sep 2024 03:42:10 GMT category: Parsers foundInMaster: true oldLocations: - https://github.com/captain-neo/soda - source: openapi3 tags repository: https://github.com/jonatandb/weatherapp_api v3: true repositoryMetadata: base64Readme: >- IyMjIENhcmFjdGVyw61zdGljYXMgZ2VuZXJhbGVzIHkgdMOpY25pY2FzOgoKLSBEZXNhcnJvbGxhZG8gY29uIEphdmFTY3JpcHQgdXRpbGl6YW5kbyBOb2RlLmpzLgotIFNlIHV0aWxpemEgZWwgQVBJIGRlbCBzZXJ2aWNpbyBkZSBjbGltYSBbT3BlbiBXZWF0aGVyIE1hcF0oaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvKS4KLSBMYSBjaXVkYWQgYWN0dWFsIHNlIGRldGVjdGEgY29uIGxhIElQIGRlbCB1c3VhcmlvLCB1dGlsaXphbmRvIGVsIHNlcnZpY2lvIGRlIFtJUC1BUEldKGh0dHBzOi8vaXAtYXBpLmNvbS8pLgoKLS0tCgo8Y2VudGVyPgoKIVtkZXNrdG9wXShPcGVuQXBpX1NjcmVlbnNob3QucG5nKQoKPC9jZW50ZXI+CgotLS0KCiMjIyBFc3RhIEFQSSBwcm92ZWUgZW4gZm9ybWF0byBKU09OIGVsIGVzdGFkbyBkZWwgdGllbXBvIHBvciBtZWRpbyBkZSBkaWZlcmVudGVzIGVuZHBvaW50czoKCi0gUnV0YSBiYXNlOgogIC0gKiovdjEqKgotIEVuZHBvaW50czoKCiAgLSAqKi9sb2NhdGlvbioqIChfRGV2dWVsdmUgbm9tYnJlIGRlIGxhIGNpdWRhZCBhY3R1YWwgc2Vnw7puIGxhIElQIGRlbCB1c3VhcmlvLl8pCiAgLSAqKi9jdXJyZW50L19jaXR5XyoqIChfRGV2dWVsdmUgY2xpbWEgc2Vnw7puICJjaXR5IiwgbyBkZSBsYSBjaXVkYWQgYWN0dWFsIHNpIG5vIHNlIGVzcGVjaWZpY8OzIHVuYS5fKQogIC0gKiovZm9yZWNhc3QvX2NpdHlfKiogKF9EZXZ1ZWx2ZSBwcm9uw7NzdGljbyBhIDUgZMOtYXMgc2Vnw7puICJjaXR5IiwgbyBkZSBsYSBjaXVkYWQgYWN0dWFsIHNpIG5vIHNlIGVzcGVjaWZpY8OzIHVuYS5fKQoKICAgIC0gKipOb3RhKio6IF9FbCBwYXLDoW1ldHJvICJjaXR5IiBlcyBvcGNpb25hbC4gU2kgbm8gZXN0w6EgcHJlc2VudGUgc2UgdXNhIGxhIGN1aWRhZCBjb3JyZXNwb25kaWVudGUgYSBsYSBJUCBkZWwgdXN1YXJpby5fCgogIC0gKiovb3BlbmFwaSoqIChfU3dhZ2dlciAob3BlbmFwaSk6IEludGVyZmF6IHdlYiBxdWUgbXVlc3RyYSBkb2N1bWVudGFjacOzbiBkZSBsYSBBUEkgeSBwZXJtaXRlIGludGVyYWN0dWFyIGNvbiBsb3MgZW5kcG9pbnRzXykKCi0tLQoKIyMjIFJlcXVlcmltaWVudG9zOgoKLSBbTm9kZUpzIHYuMTZdKGh0dHBzOi8vbm9kZWpzLm9yZy9lcy8pCi0gQVBJIEtFWSBkZSBbT3BlbiBXZWF0aGVyIE1hcF0oaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvKSAoX1JlcXVpZXJlIGNyZWFyIGN1ZW50YSBncmF0dWl0YV8pCgotLS0KCiMjIyBNaXNjZWxhbmVvczoKCi0gVXRpbGl6YXIgZWwgYXJjaGl2byAqKl8uZW52LmV4YW1wbGVfKiogY29tbyBtb2RlbG8gcGFyYSBjcmVhciB1biBhcmNoaXZvIGxsYW1hZG8gKipfLmVudl8qKiBxdWUgdGVuZ2EgZWwgc2lndWllbnRlIGNvbnRlbmlkbzoKICAtIGBQT1JUYCAoX0VzcGVjaWZpY2EgZWwgcHVlcnRvIGVuIHF1ZSBzZSBkZXNlYSBxdWUgc2UgZWplY3V0ZSBsYSBBUEkuXykKICAtIGBJUF9BUElfU0VSVklDRV9CQVNFX1VSTGAgXyhFc3BlY2lmaWNhIGxhIHVybCBkZSBsYSBBUEkgcXVlIHByb3ZlZSBpbmZvcm1hY2nDs24gc29icmUgbGEgdWJpY2FjacOzbiBzZWfDum4gbGEgSVAgcHJvcG9yY2lvbmFkYSwgdmllbmUgcHJlLWNvbmZpZ3VyYWRhLilfCiAgLSBgV0VBVEhFUl9TRVJWSUNFX0FQSV9LRVlgIF8oRXNwZWNpZmljYSBsYSBBUEkgS0VZIGRlIE9wZW4gV2VhdGhlciBNYXAuIFJlcXVpZXJlIHJlZ2lzdHJvIGdyYXR1aXRvLilfCgotLS0KCiMjIyBFamVjdWNpw7NuOgoKPiAtIG5wbSBpbnN0YWxsCj4gLSBucG0gc3RhcnQKPiAtIE5hdmVnYXIgYSBodHRwOi8vbG9jYWxob3N0OjMwMDEvdjEvb3BlbmFwaSBzaSBzZSBkZXNlYSB2ZXIgZSBpbnRlcmFjdHVhciBjb24gbGEgbGlzdGEgZGUgZW5kcG9pbnRzIChfKiozMDAxKiogZXMgZWwgcHVlcnRvIHN1Z2VyaWRvLCBzZSBkZWJlIGNvbmZpZ3VyYXIgZW4gZWwgYXJjaGl2byAuZW52IC0+ICoqUE9SVCoqXykKCi0tLQoKIyMjIFRlc3RzL0NvdmVyYWdlOgoKPiAtIG5wbSB0ZXN0Cj4gLSBucG0gcnVuIHRlc3Q6Y292ZXJhZ2UgKF9MdWVnbyBhYnJpciBlbCBhcmNoaXZvOiAqKmJhY2tlbmRcY292ZXJhZ2VcbGNvdi1yZXBvcnRcaW5kZXguaHRtbCoqXykKPiAtIH5+KipOT1RBKiogRGViaWRvIGEgcXVlIHR1dmUgcHJvYmxlbWFzIHBhcmEgZWplY3V0YXIgbG9zIHRlc3RzLCB5YSBxdWUgZXN0b3kgdXNhbmRvIG3Ds2R1bG9zIGRlIEVTIGNvbiBbX0R5bmFtaWMgaW1wb3J0c19dKGh0dHBzOi8vamF2YXNjcmlwdC5pbmZvL21vZHVsZXMtZHluYW1pYy1pbXBvcnRzKSBlbiB1biBwcm95ZWN0byBDb21tb25KUywgdHV2ZSBxdWUgY3JlYXIgZG9zIG51ZXZvcyBzY3JpcHRzIHBhcmEgY29ycmVyIGxvcyB0ZXN0cywgbG9zIGN1YWxlcyB1dGlsaXphbiBjYXJhY3RlcsOtc3RpY2FzIGV4cGVyaW1lbnRhbGVzIGRlIE5vZGUgSlMuIChfW0Z1ZW50ZV0oaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzYxNjUzMTA0LzEwNzUyMTk4KV8pLiBMb3MgbnVldm9zIHNjcmlwdHMgc29uIGxvcyBzaWd1aWVudGVzOn5+Cj4gICAtIH5+X25wbSBydW4gdGVzdDpleHBlcmltZW50YWxffn4KPiAgIC0gfn5fbnBtIHJ1biB0ZXN0OmNvdmVyYWdlOmV4cGVyaW1lbnRhbF9+fgo+ICAgICAtIF8oU29sdWNpb25hZG8gaW5zdGFsYW5kbyB2ZXJzaW9uZXMgYW50ZXJpb3JlcyBkZSBub2RlLWZldGNoIHkgcHVibGljLWlwIHRvdGFsbWVudGUgY29tcGF0aWJsZXMgY29uIENvbW1vbkpTKV8KCi0tLQoKIyMjIFBlbmRpZW50ZXMvQnVnczoKCi0gW2h0dHBzOi8vZ2l0aHViLmNvbS9Kb25hdGFuZGIvd2VhdGhlci1hcHAtd2l0aC1mYXN0aWZ5L2lzc3Vlc10oaHR0cHM6Ly9naXRodWIuY29tL0pvbmF0YW5kYi93ZWF0aGVyLWFwcC13aXRoLWZhc3RpZnkvaXNzdWVzKQoKLS0tCgojIyMgU2l0aW9zIGludmVzdGlnYWRvczoKCi0gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDUwNTM5NzQvcmVxdWlyaW5nLWFuLWFzeW5jLWZ1bmN0aW9uLWluLW5vZGVqcwotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUwOTc0MzEzL25vZGUtanMtYXN5bmMtbW9kdWxlLXJlcXVpcmUKLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5L2lzc3Vlcy8yNjcgV2VpcmQgYmVoYXZpb3Igd2l0aCBmYXN0aWZ5LnJlZ2lzdGVyLCBhc3luYy9hd2FpdAotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI3OTA2NTUxL25vZGUtanMtbG9nZ2luZy11c2UtbW9yZ2FuLWFuZC13aW5zdG9uCi0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9kb2NzL2xhdGVzdC9SZWZlcmVuY2UvUGx1Z2lucy8KLSBodHRwczovL3d3dy5mYXN0aWZ5LmlvL2RvY3MvbGF0ZXN0L0d1aWRlcy9HZXR0aW5nLVN0YXJ0ZWQvI3lvdXItZmlyc3QtcGx1Z2luCi0gaHR0cHM6Ly9mdXR1cmVzdHVkLmlvL3R1dG9yaWFscy9yZXRyaWV2ZS1hLXJlcXVlc3RzLWlwLWFkZHJlc3MtaW4tbm9kZS1qcwotIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnL2FwaS9vbmUtY2FsbC1hcGkKLSBodHRwczovL29wZW53ZWF0aGVybWFwLm9yZy9mYXEjOn46dGV4dD1PcGVuV2VhdGhlciUyMHVzZXMlMjBVbml4JTIwdGltZSUyMGFuZCxmb3JlY2FzdCUyMGFuZCUyMGhpc3RvcmljYWwlMjB3ZWF0aGVyJTIwZGF0YQotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYyMzc2MTE1L2hvdy10by1vYnRhaW4tb3Blbi13ZWF0aGVyLWFwaS1kYXRlLXRpbWUtZnJvbS1jaXR5LWJlaW5nLWZldGNoZWQKLSBodHRwczovL2dpdGh1Yi5jb20vdGVzdGluZy1saWJyYXJ5L2VzbGludC1wbHVnaW4tdGVzdGluZy1saWJyYXJ5L2Jsb2IvbWFpbi9kb2NzL3J1bGVzL3ByZWZlci1zY3JlZW4tcXVlcmllcy5tZAotIGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9S1lqanRSZ2dfSDAmYWJfY2hhbm5lbD1taWR1ZGV2IFRFU1RJTkcgZW4gUkVBQ1Qg8J+nqiDCoUFwcmVuZGUgREVTREUgQ0VSTyEgQ29uIHJlYWN0LXRlc3RpbmctbGlicmFyeSB5IEplc3QgKEZ1bGxTdGFjayBCb290Y2FtcCBKUykKLSBodHRwczovL2NvZGUudmlzdWFsc3R1ZGlvLmNvbS9kb2NzL2xhbmd1YWdlcy9qc2NvbmZpZyBXaGF0IGlzIGpzY29uZmlnLmpzb24/Ci0gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy80NjcwMCNpc3N1ZWNvbW1lbnQtOTY4MDg0MzI5IEF1dG8gaW1wb3J0IGRvZXNuJ3Qgd29yayB1bmxlc3MgaXQgYWxyZWFkeSBpbXBvcnRlZCBmcm9tIGFub3RoZXIgZmlsZSAjNDY3MDAKLSBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L3ZzY29kZS9pc3N1ZXMvMTMyMjk5IEF1dG8gSW1wb3J0IG5vdCB3b3JraW5nIChUeXBlc2NyaXB0ICkgYWZ0ZXIgbGF0ZXN0IHVwZGF0ZQotIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnL3dlYXRoZXItY29uZGl0aW9ucwotIGh0dHBzOi8vd3d3LmZyZWVjb2RlY2FtcC5vcmcvbmV3cy9ob3ctdG8tY3JlYXRlLWEtcmVhY3QtYXBwLXdpdGgtYS1ub2RlLWJhY2tlbmQtdGhlLWNvbXBsZXRlLWd1aWRlLwotIGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0aWZ5L2Zhc3RpZnktY29ycwotIGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2lzc3Vlcy85MyAtIE9wdGlvbmFsIHBhdGggcGFyYW1ldGVycyDwn5KUCi0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9kb2NzL2xhdGVzdC9SZWZlcmVuY2UvVmFsaWRhdGlvbi1hbmQtU2VyaWFsaXphdGlvbi8KLSBodHRwczovL2VkaXRvci5zd2FnZ2VyLmlvLwotIGh0dHBzOi8vc3dhZ2dlci5pby9kb2NzL3NwZWNpZmljYXRpb24vMi0wL2Rlc2NyaWJpbmctcGFyYW1ldGVycy8KLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5L3B1bGwvMjYwNyNkaXNjdXNzaW9uX3I1MDExMjAyOTggLSBUaGUgb3B0aW9uYWwgY2hhaW4gb3BlcmF0b3IgLzpvcHQ/Ci0gaHR0cHM6Ly9hanYuanMub3JnL2pzb24tc2NoZW1hLmh0bWwKLSBodHRwczovL3d3dy5mYXN0aWZ5LmlvL2RvY3MvbGF0ZXN0L1JlZmVyZW5jZS9WYWxpZGF0aW9uLWFuZC1TZXJpYWxpemF0aW9uLyN2YWxpZGF0aW9uCi0gaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS9ibG9iL21haW4vZG9jcy9SZWZlcmVuY2UvUmVxdWVzdC5tZAotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYwMzcyNzkwL25vZGUtdjEzLWplc3QtZXM2LW5hdGl2ZS1zdXBwb3J0LWZvci1tb2R1bGVzLXdpdGhvdXQtYmFiZWwtb3ItZXNtCi0gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzE2MjkzODkvaG93LXRvLXVzZS1lc2xpbnQtd2l0aC1qZXN0Ci0gaHR0cHM6Ly9qYWNrZmlhbGxvcy5jb20vZW50ZW5kaWVuZG8tY29kZS1jb3ZlcmVhZ2UtdXNhbmRvLWplc3QKLSBodHRwczovL2plc3Rqcy5pby9lcy1FUy9zZWFyY2g/cT1jb3ZlcmFnZQotIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hdGNoL21pY3JvbWF0Y2gKLSBodHRwczovL2plc3Rqcy5pby9kb2NzL2NvbmZpZ3VyYXRpb24jY29sbGVjdGNvdmVyYWdlZnJvbS1hcnJheQotIGh0dHBzOi8vam9zaHRyb25pYy5jb20vMjAxNy8xMC8yNC9jb25maWd1cmluZy1qZXN0LXRvLXNob3ctY29kZS1jb3ZlcmFnZS1mb3ItYWxsLW9mLXlvdXItZmlsZXMvCi0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9kb2NzL2xhdGVzdC9HdWlkZXMvVGVzdGluZy8jYmVuZWZpdHMtb2YtdXNpbmctZmFzdGlmeWluamVjdAotIGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0aWZ5L2Zhc3RpZnkvYmxvYi9tYWluL3Rlc3QvbGlzdGVuLnRlc3QuanMKLSBodHRwczovL3d3dy5mYXN0aWZ5LmlvL2RvY3MvbGF0ZXN0L1JlZmVyZW5jZS9TZXJ2ZXIvI3NlcnZlcgotIGh0dHBzOi8vamVzdGpzLmlvL2VzLUVTL2RvY3MvZ2V0dGluZy1zdGFydGVkCi0gaHR0cHM6Ly9naXRodWIuY29tL3plbnRlcmVkL2RlbW8tYXN5bmMtZmFzdGlmeS13aXRoLWplc3Qg4pmlCi0gaHR0cHM6Ly96ZW50ZXJlZC5jby9hcnRpY2xlcy9zZXR1cC1hc3luYy1mYXN0aWZ5LXdpdGgtamVzdC10ZXN0LyDimaXimaUKLSBodHRwczovL2phdmFzY3JpcHQucGxhaW5lbmdsaXNoLmlvL2hvdy10by1idWlsZC1hLXJlbGlhYmxlLWF1dGhlbnRpY2F0aW9uLWFwaS13aXRoLWZhc3RpZnktYzVhMjRiZjhjZDQxIG1vbmdvZGIgand0IGJjcnlwdAotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zL3RhZ2dlZC9mYXN0aWZ5K2plc3Rqcz90YWI9TmV3ZXN0Ci0gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzE1NDU4ODMvaG93LXRvLXNldHVwLWFuZC10ZWFyZG93bi1hLXdlYi1zZXJ2ZXItd2l0aC1qZXN0Ci0gaHR0cHM6Ly9mZXR0YmxvZy5ldS92b2lkLWluLWphdmFzY3JpcHQtYW5kLXR5cGVzY3JpcHQvCi0gaHR0cHM6Ly9kYWlseS1kZXYtdGlwcy5jb20vcG9zdHMvY29tbW9uLWplc3QtbWF0Y2hlcnMvCi0gaHR0cHM6Ly9kZXYudG8vd29sZmVqdzg2L3NldHVwLWEtZmFzdGlmeS1hcHAtd2l0aC1qZXN0LXRlc3RzLXRoZS1yaWdodC13YXktNDNpaAotIGh0dHBzOi8vZGV2LnRvL2l0c3Jlbm55bWFuL2hvdy1pLXN0cnVjdHVyZS1teS1mYXN0aWZ5LWFwcGxpY2F0aW9uLTFqOTMjZmlmdGgtdW5pdC10ZXN0aW5nCi0gaHR0cHM6Ly9ub2RlLXRhcC5vcmcvZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvCi0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9kb2NzL2xhdGVzdC9HdWlkZXMvVGVzdGluZy8jdGVzdGluZy13aXRoLWEtcnVubmluZy1zZXJ2ZXIKLSBodHRwczovL2Fqdi5qcy5vcmcvanNvbi1zY2hlbWEuaHRtbCN0eXBlCi0gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzg5MzM5NzMvaG93LXRvLXByb3ZpZGUtZXhhbXBsZS12YWx1ZS10by1hLXJlc3BvbnNlLWJvZHktb2YtY29udGVudC10eXBlLXRleHQtaHRtbC1pbi1zdwotIGh0dHBzOi8vZ2l0aHViLmNvbS90ZXN0ZG91YmxlL3RlZW55dGVzdAotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQwNzk1ODM2L2hvdy1kby15b3UtdXNlLXRoZS1maWxlcy1hbmQtZGlyZWN0b3JpZXMtcHJvcGVydGllcy1pbi1wYWNrYWdlLWpzb24KLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zODAwOTMxNS9yZWRpcmVjdGluZy1mcm9tLWF3cy1hcGktZ2F0ZXdheS11c2luZy1yZXNwb25zZS0zMDIKLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDMzMjY4Ny9ob3ctdG8tZGVmaW5lLXR3by1kaWZmZXJlbnQtcmVzcG9uc2VzLWZvci1zYW1lLXJlc3BvbnNlLWNvZGUtd2l0aC0zMDItcmVkaXJlY3QKLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5LXN3YWdnZXIKLSBodHRwczovL2xlbmd1YWplanMuY29tL2F1dG9tYXRpemFkb3Jlcy9pbnRyb2R1Y2Npb24vY29tbW9uanMtdnMtZXMtbW9kdWxlcy8KLSBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUpENlZOUmRHbDk4JmFiX2NoYW5uZWw9TGVvbmFyZG9LdWZmbyBSRVNUIHkgUkVTVGZ1bCBBUElzIHwgVGUgbG8gZXhwbGljbyBlbiA1IG1pbnV0b3MhCi0gaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj05OVlNZUNCazNqdyZhYl9jaGFubmVsPUxhenlMb2FkaW5nIEFycXVpdGVjdHVyYSBtb25vbMOtdGljYSB2cyBtaWNyb3NlcnZpY2lvcwotIGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UURYTW9EYk9kNXMmYWJfY2hhbm5lbD1NYWtlaXRSZWFsIE1pY3Jvc2VydmljaW9zIHZzIE1vbm9saXRvCi0gaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1FS3NlQUFtNHB2WSBDcmVhbmRvIGFwbGljYWNpb25lcyB3ZWIgY29uIE5vZGUuanMgeSBGYXN0aWZ5Ci0gaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1ZZk45aEVsZWt1TSZhYl9jaGFubmVsPUxlaWZlck1lbmRleiBDT1JTCi0gaHR0cHM6Ly9lc2xpbnQub3JnL2RvY3MvdXNlci1ndWlkZS9nZXR0aW5nLXN0YXJ0ZWQKLSBodHRwczovL2dpdGh1Yi5jb20vcHJldHRpZXIvZXNsaW50LWNvbmZpZy1wcmV0dGllcgotIGh0dHBzOi8vbGVuZ3VhamVqcy5jb20vamF2YXNjcmlwdC9jYXJhY3RlcmlzdGljYXMvZXNsaW50LwotIGh0dHBzOi8vZ2l0aHViLmNvbS9DcmlzdGlhbmRpL2RlbW8tZmFzdGlmeS9ibG9iL21hc3Rlci9zcmMvZW52aXJvbm1lbnQuanMgLS0tLS0tLS0tIEludGVyZXNhbnRlIG1hbmVqbyBkZSBkaWZlcmVudGVzIC5lbnYgKGxvY2FsLCBkZXZlbG9wbWVudCwgZXRjKQotIGh0dHBzOi8vcGxhdHppLmNvbS90dXRvcmlhbGVzLzEzMzktZnVuZGFtZW50b3MtamF2YXNjcmlwdC8yMTgxLWNvbW8tdXNhci1lc2xpbnQteS1wcmV0dGllci1wYXJhLW1lam9yYXItdHUtY29kaWdvLWphdmFzY3JpcHQvCi0gaHR0cHM6Ly9kYWlseS1kZXYtdGlwcy5jb20vcG9zdHMvbGV0cy10YWxrLWFib3V0LXNvZnR3YXJlLXRlc3RpbmcvCi0gaHR0cHM6Ly9kYWlseS1kZXYtdGlwcy5jb20vcG9zdHMvYWRkaW5nLWplc3QtdGVzdC10by1hLXByb2plY3QvP3V0bV9zb3VyY2U9RGFpbHkrRGV2K1RpcHMmdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249bWFpbGluZ2xpc3QKLSBodHRwczovL3d3dy5jb252ZW50aW9uYWxjb21taXRzLm9yZy9lcy92MS4wLjAvI2VzcGVjaWZpY2FjaSVjMyViM24KLSBodHRwczovL2dpdGh1Yi5jb20vcGV0ZXJ2YW5kZXJkb2VzL2dpdGZsb3ctYXZoI2dpdC1mbG93LXVzYWdlCi0gaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZXMvZ2V0LXN0YXJ0ZWQvcXVpY2tzdGFydC9naXRodWItZmxvdwotIGh0dHBzOi8vdGVjaC13aWtpLm9ubGluZS9lcy9ub2RlLXNldGltbWVkaWF0ZS5odG1sCi0gaHR0cHM6Ly93d3cuY3VhbC1lcy1taS1pcC5uZXQvCi0gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvaXAtYWRkcmVzcwotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMxNjI0NTcvaG93LXRvLWNoZWNrLXdpdGgtamF2YXNjcmlwdC1pZi1jb25uZWN0aW9uLWlzLWxvY2FsLWhvc3QKLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMDU1MzU1NC9ub2RlLWpzLXJldHVybi1ob3N0bmFtZQotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIxOTg3MzExL2NoZWNrLWlzLW5vZGVqcy1jb25uZWN0aW9uLWNvbWUtZnJvbS1sb2NhbGhvc3QKLSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9pcy1sb2NhbGhvc3QtdXJsCi0gaHR0cHM6Ly9ibG9nLmRldmdlbml1cy5pby9zZXJ2ZXItc2lkZS1kZXZlbG9wbWVudC13aXRoLWZhc3RpZnktYXN5bmMtYW5kLWF3YWl0LWFuZC1yb3V0ZS1wcmVmaXhlcy1kNTcwNGViNTIwNgotIGh0dHBzOi8vamF5d29sZmUuZGV2L3JhcGlkbHktYnVpbGQtYS1ub2RlanMtcmVzdC1hcGktd2l0aC1mYXN0aWZ5LXBvc3RncmVzcWwtYW5kLXN3YWdnZXItZG9jdW1lbnRhdGlvbi8KLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9leGFtcGxlIC0tLS0tLS0tLS0tLS0tIENvbGxlY3Rpb24gb2YgRmFzdGlmeSBwcm9qZWN0cwotIGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0aWZ5L2Zhc3RpZnkKLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83MDQ3ODgyMC91bmFibGUtdG8tZGVwbG95LW5vZGVqcy1mYXN0aWZ5LWFwcC1pbi1henVyZS1hcHAtc2VydmljZS1saW51eAotIGh0dHBzOi8vZGV2LnRvL3J1YW5tYXJ0aW5lbGxpL2hvdy10by11c2Utc2NoZW1hcy1vbi1mYXN0aWZ5LWZvci1mdW4tYW5kLXByb2ZpdC0yNWU5Ci0gaHR0cHM6Ly9kZXYudG8vZHNhbGluYXNnYXJkb24vdGhlLTYtYmVzdC1qYXZhc2NyaXB0LWZyYW1ld29ya3MtdG8tdXNlLWluLTIwMjItNGs1awotIGh0dHBzOi8vZGV2LnRvL2VvbW0vd2h5LXNob3VsZC1pLXByZWZlci1mYXN0aWZ5LXRvLWV4cHJlc3Nqcy00NGM0Ci0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9kb2NzL2xhdGVzdC9SZWZlcmVuY2UvUm91dGVzLyNyb3V0ZS1wcmVmaXhpbmcKLSBodHRwczovL2dpdGh1Yi5jb20vdXNlYXVyb3JhL2FwaS9ibG9iL21haW4vYXBwLmpzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCdWVuYSBkaXZpc2nDs24gZW50cmUgYXBwLmpzIHkgc2VydmVyLmpzIFwqXCoKLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5LWF1dG9sb2FkCi0gaHR0cHM6Ly9kZXYudG8vaXRzcmVubnltYW4vaG93LWktc3RydWN0dXJlLW15LWZhc3RpZnktYXBwbGljYXRpb24tMWo5MwotIGh0dHBzOi8vZGV2LnRvL3Rob21hc2JudC9wZXJzcGVjdGl2ZS1hcGktMjBhbAotIGh0dHBzOi8vZGV2LnRvL3Rob21hc2JudC9jcmVhdGUtYS1mYXN0aWZ5LXNlcnZlci0yM2xnCi0gaHR0cHM6Ly9kZXYudG8vaHlwZWRkZXYvZXMtbW9kdWxlcy1pbi1mYXN0aWZ5LTM0OWYKLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5LWV4cHJlc3MKLSBodHRwczovL2pzb24tc2NoZW1hLm9yZy9sZWFybi9nZXR0aW5nLXN0YXJ0ZWQtc3RlcC1ieS1zdGVwCi0gaHR0cHM6Ly9kZXYudG8vY3Jpc3RpYW5kaS9kZW1vLWFwaS11c2luZy1mYXN0aWZ5LTQ4am8KLSBodHRwczovL2Rldi50by93aGl0ZXA0bnRoM3IvaG93LWktbWFzc2l2ZWx5LWltcHJvdmVkLW15LXdlYnNpdGUtcGVyZm9ybWFuY2UtYnktdXNpbmctdGhlLXJpZ2h0LXRvb2wtZm9yLXRoZS1qb2ItMjNjbAotIGh0dHBzOi8vd3d3LmZyZWVjb2RlY2FtcC5vcmcvZXNwYW5vbC9uZXdzL3F1ZS1lcy1qYW1zdGFjay8KLSBodHRwczovL2Rldi50by9kYWlseWRldnRpcHMxL2J1aWxkaW5nLWEtZmFzdGlmeS1ub2RlanMtc2VydmVyLTI5NmcKLSBodHRwczovL3d3dy5mYXN0aWZ5LmlvL2RvY3MvbGF0ZXN0L0d1aWRlcy9QbHVnaW5zLUd1aWRlLwotIGh0dHBzOi8vZ2l0aHViLmNvbS9ncXVpdHRldC9ncmFjZWZ1bC1zZXJ2ZXIKLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5LXNlbnNpYmxlCi0gaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS1uZXh0anMKLSBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5LWhlbG1ldAotIGh0dHBzOi8vZ2l0aHViLmNvbS9mYXN0aWZ5L2Zhc3RpZnktZW52Ci0gaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS1zd2FnZ2VyCi0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9lY29zeXN0ZW0vCi0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby9kb2NzL2xhdGVzdC9HdWlkZXMvVGVzdGluZy8KLSBodHRwczovL3d3dy5mYXN0aWZ5LmlvL2RvY3MvdjMuMC54L1JvdXRlcy8KLSBodHRwczovL3d3dy5mYXN0aWZ5LmlvL2RvY3MvbGF0ZXN0L0d1aWRlcy9HZXR0aW5nLVN0YXJ0ZWQvCi0gaHR0cHM6Ly93d3cuZmFzdGlmeS5pby8KLSBodHRwczovL3hwMTIzLmNvbS9hcnRpY2xlcy8zYS1hcnJhbmdlLWFjdC1hc3NlcnQvCi0gaHR0cHM6Ly9tYXJ0aW5mb3dsZXIuY29tL2JsaWtpL0dpdmVuV2hlblRoZW4uaHRtbAotIGh0dHBzOi8vZGV2LnRvL3N0ZWFsdGhtdXNpYy9ldmVyeXRoaW5nLXRoYXRzLW5vdC10ZXN0ZWQtd2lsbC1icmVhay0xYWRnCi0gaHR0cHM6Ly9kZXYudG8vY29kaW5ncGl6emEvd2hhdC1pcy1hLXVuaXQtdGVzdC0xZTFtCi0gaHR0cHM6Ly9naXRodWIuY29tL0h1YWNoYW8vdnNjb2RlLXJlc3RjbGllbnQKLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82OTA2MzA3NC9yZXN0LWNsaWVudC12c2NvZGUtZXh0ZW50aW9uLWlzLW5vdC1zZW5kaW5nLWpzb24tZGF0YQotIGh0dHBzOi8vZGV2LnRvL3R1c2hhcnBhbmRleTEzL2dldHRpbmctb24td2l0aC1lczYtbm9kZWpzLWVzbGludC13aXRob3V0LWJhYmVsLTRpcDcKLSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tb3JnYW4KLSBodHRwczovL2ljaGkucHJvL2VzL2Z1bmNpb25lcy1lbW9jaW9uYW50ZXMtZGUtamF2YXNjcmlwdC1lczIwMjEtMzI4ODUxODgyMjAxNzEKLSBodHRwczovL2JhYmVsanMuaW8vZG9jcy9lbi9iYWJlbC1jbGkKLSBodHRwczovL3d3dy5mcmVlY29kZWNhbXAub3JnL25ld3Mvc2V0dXAtYmFiZWwtaW4tbm9kZWpzLwotIGh0dHBzOi8vd3d3LmZyZWVjb2RlY2FtcC5vcmcvZXNwYW5vbC9uZXdzL3F1ZS1lcy1iYWJlbC8KLSBodHRwczovL2hhY2tzLm1vemlsbGEub3JnLzIwMTUvMDgvZXM2LWluLWRlcHRoLW1vZHVsZXMvCi0gaHR0cHM6Ly9ibG9nLmxvZ3JvY2tldC5jb20vaG93LXRvLXVzZS1lY21hc2NyaXB0LW1vZHVsZXMtd2l0aC1ub2RlLWpzLwotIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzY5MDQxNDU0L2Vycm9yLXJlcXVpcmUtb2YtZXMtbW9kdWxlcy1pcy1ub3Qtc3VwcG9ydGVkLXdoZW4taW1wb3J0aW5nLW5vZGUtZmV0Y2gKLSBodHRwczovL2VzLnN0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80ODQ5NDkvcHJvYmxlbWEtY29uLWZldGNoLWVuLW5vZGUKLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82Nzg0NzUzL3Bhc3Npbmctcm91dGUtY29udHJvbC13aXRoLW9wdGlvbmFsLXBhcmFtZXRlci1hZnRlci1yb290LWluLWV4cHJlc3MKLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDIwNTg5MS9pbXBvcnQtanNvbi1leHRlbnNpb24taW4tZXM2LW5vZGUtanMtdGhyb3dzLWFuLWVycm9yCi0gaHR0cHM6Ly9raW5zdGEuY29tL2VzL2Jhc2UtZGUtY29ub2NpbWllbnRvL2h0dHAtMzA0LwotIGh0dHBzOi8vZXMuc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE5OTEwOS9vYnRlbmVyLWxhLWlwLWRlbC1jbGllbnRlLWVuLW5vZGUtanMKLSBodHRwczovL2V4cHJlc3Nqcy5jb20vZW4vNHgvYXBpLmh0bWwjdHJ1c3QucHJveHkub3B0aW9ucy50YWJsZQotIGh0dHBzOi8vd3d3Lm1pY2twYXR0ZXJzb24uY29tLmF1L2Jsb2cvYXBpLXZlcnNpb25pbmctd2l0aC1ub2RlanMtYW5kLWV4cHJlc3MvCi0gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTE1MTM3MTUvbm9kZS1qcy1yZXN0LWFwaS12ZXJzaW9uaW5nLXRoZS1yaWdodC13YXkvNTE1MTQxODQjNTE1MTQxODQKLSBodHRwczovL3d3dy5hdGxhc3NpYW4uY29tL2VzL2dpdC90dXRvcmlhbHMvY29tcGFyaW5nLXdvcmtmbG93cy9naXRmbG93LXdvcmtmbG93Cg== readmeEtag: '"1b28795dd53d40f74fa1de911a8b366dea9c458a"' readmeLastModified: Mon, 05 Jun 2023 03:58:31 GMT repositoryId: 479925177 description: API of https://github.com/Jonatandb/weatherapp_frontend created: '2022-04-10T05:46:27Z' updated: '2022-04-13T23:06:43Z' language: JavaScript archived: false stars: 0 watchers: 1 forks: 0 owner: Jonatandb logo: https://avatars.githubusercontent.com/u/8082172?v=4 repoEtag: '"3dab0e04257ef2aba2c01f759e6f2e4e91fe0129c77fb3b243139128a60e63b9"' repoLastModified: Wed, 13 Apr 2022 23:06:43 GMT foundInMaster: true category: Testing id: d3f2cdb54b053544ddcfca6ed3337e13 - source: openapi3 tags repository: https://github.com/manju4ever/fastity-swagger-generate v3: true repositoryMetadata: base64Readme: >- IyBmYXN0aWZ5LXN3YWdnZXItZ2VuZXJhdGUKCkdlbmVyYXRlIFN3YWdnZXIvT3BlbkFQSSBkZWZpbml0aW9ucyB3aXRob3V0IHJ1bm5pbmcgZmFzdGlmeSBhcHAgIQoKPCEtLSB0b2MgLS0+CgotIFtmYXN0aWZ5LXN3YWdnZXItZ2VuZXJhdGVdKCNmYXN0aWZ5LXN3YWdnZXItZ2VuZXJhdGUpCiAgLSBbSW5zdGFsbF0oI2luc3RhbGwpCiAgLSBbRGlzY2xhaW1lcl0oI2Rpc2NsYWltZXIpCiAgLSBbVXNhZ2VdKCN1c2FnZSkKICAtIFtBUEldKCNhcGkpCiAgICAtIFtPcHRpb25zXSgjb3B0aW9ucykKCjwhLS0gdG9jc3RvcCAtLT4KCiMjIEluc3RhbGwKCmBucG0gaSBmYXN0aWZ5LXN3YWdnZXItZ2VuZXJhdGVgCgojIyBEaXNjbGFpbWVyCgotIE9ubHkgc3VwcG9ydHMgY29uZmlndXJhdGlvbiBiYXNlZCByb3V0ZXMsIGkuZSBjb2xsZWN0aW9uIG9mIHJvdXRlIGRlZmluaXRpb25zCi0gVGhpcyBsaWJyYXJ5IGhhcyBubyBuZXcgY29udGVudCBhZGRlZAotIFRoaXMgbGlicmFyeSBoYXMganVzdCB0d2Vha2VkIHRoZSBvcmlnaW5hbCBbZmFzdGlmeS1zd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9mYXN0aWZ5LXN3YWdnZXIpCgojIyBVc2FnZQoKMS4gQ3JlYXRlIGEgYGdlbmVyYXRlLmpzYCBmaWxlIHdoaWNoIGxvb2tzIGxpa2UKCmBgYGphdmFzY3JpcHQKY29uc3QgZmFzdGlmeVN3YWdHZW4gPSByZXF1aXJlKCJmYXN0aWZ5LXN3YWdnZXItZ2VuZXJhdGUiKTsKY29uc3QgUm91dGVzID0gcmVxdWlyZSgiLi9yb3V0ZXMiKTsKY29uc3Qgb3B0cyA9IHt9OwoKLy8gZ2VuZXJhdGUgc3dhZ2dlciBkZWZpbml0aW9ucwpmYXN0aWZ5U3dhZ0dlbihvcHRzLCBSb3V0ZXMsIChlcnIsIGRlZmluaXRpb25zKSA9PiB7CiAgLy8gV3JpdGUgdG8gYSBmaWxlCiAgcmVxdWlyZSgiZnMiKQogICAgLmNyZWF0ZVdyaXRlU3RyZWFtKCIuL2FwcC5zd2FnLmpzb24iKQogICAgLndyaXRlKEpTT04uc3RyaW5naWZ5KGRlZmluaXRpb25zKSk7Cn0pOwpgYGAKCjIuIExldCdzIHNheSB5b3UgaGF2ZSByb3V0ZXMgZGVmaW5lZCBpbiBgcm91dGVzLmpzYAoKYGBgamF2YXNjcmlwdApjb25zdCByb3V0ZXMgPSBbCiAgewogICAgdXJsOiAiL3VzZXJzLzppZCIsCiAgICBtZXRob2Q6ICJHRVQiLAogICAgc2NoZW1hOiB7CiAgICAgIHBhcmFtczogewogICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgIGlkOiB7CiAgICAgICAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9LApdOwoKbW9kdWxlLmV4cG9ydHMgPSByb3V0ZXM7IC8vIHNob3VsZCBiZSBhbiBpdGVyYWJsZSByb3V0ZXMKYGBgCgojIyBBUEkKCiMjIyBPcHRpb25zCgpbUmVmZXIgaGVyZSBmb3IgbW9yZV0oaHR0cHM6Ly9naXRodWIuY29tL2Zhc3RpZnkvZmFzdGlmeS1zd2FnZ2VyI3JlZ2lzdGVyLW9wdGlvbnMpCg== readmeEtag: '"b7f266e89a466436937bac711a6b40b680145d91"' readmeLastModified: Thu, 22 Dec 2022 14:50:27 GMT repositoryId: 475559400 description: >- Generate Swagger or OpenAPI Specification (JSON/YML) for Fastify server routes without running the server created: '2022-03-29T17:56:37Z' updated: '2023-12-30T08:19:11Z' language: JavaScript archived: false stars: 2 watchers: 2 forks: 0 owner: manju4ever logo: https://avatars.githubusercontent.com/u/9355984?v=4 license: MIT repoEtag: '"5dcb3a4b3043313571a87f172a455175267c89741d0b5060d9904badff3f2efa"' repoLastModified: Sat, 30 Dec 2023 08:19:11 GMT foundInMaster: true category: Parsers id: ddff5eb57bb20f920637d0ffcb74b972 oldLocations: - https://github.com/manju4ever/fastify-swagger-generate - source: https://openapi.tools/ name: Bump category: Documentation link: https://bump.sh language: SaaS source_description: >- Bump generates elegant documentation and changelogs from your OpenAPI specifications. Git diff, for your API. v2: true v3: true v3_1: true foundInMaster: true id: aa06bbbc595e3401e9dd7b0a8ac92d63 - source: https://openapi.tools/ name: RepreZen API Studio category: GUI Editors language: Java link: https://www.reprezen.com/ repository: null source_description: > RepreZen API Studio is an integrated workbench that brings API-first design into focus for your whole team, harmonizes your API designs, and generates APIs that click into client apps. v2: true v3: true foundInMaster: true id: 824559c965aaed65843131864b0adb5d - source: https://openapi.tools/ name: APIGit category: - Documentation - Mock language: SaaS link: https://apigit.com source_description: >- native Git based collaboration platform for API document, Design, Mock and Sharing! v2: true v3: true v3_1: true id: 15353b0357b3f4e9edd7657cd4dd73e3 foundInMaster: true - source: openapi3 tags repository: https://github.com/boro23-wq/case-manager-api v3: true id: 35c8cc9043f70001d15390bc18b7b21f repositoryMetadata: base64Readme: >- IyMgQ2FzZSBNYW5hZ2VyIEFQSQoKQVBJIGJ1aWx0IHVzaW5nICoqTmVzdC5qcyoqLCAqKlR5cGVzY3JpcHQqKiwgKipQcmlzbWEqKiBmb3IgT1JNLCBhbmQgKipQbGFuZXRTY2FsZSoqIChNeVNRTCkgdGhhdCBwZXJmb3JtcyBvcGVyYXRpb24gb24gY2FzZSBtYW5hZ2VycywgY2FzZXMsIGFuZCByZWxhdGVkIGNhc2Ugbm90ZXMuIFRoaXMgQVBJIGlzIGEgcGFydCBvZiB0aGUgcHJvamVjdCBDUyA2NzMgLSBDYXJlIE1hbmFnZW1lbnQgYW5kIENvLW9yZGluYXRpb24uCgoKPHAgIGFsaWduPSJjZW50ZXIiPgogIDxhICBocmVmPSJodHRwOi8vbmVzdGpzLmNvbS8iICB0YXJnZXQ9ImJsYW5rIj48aW1nICAJc3JjPSJodHRwczovL25lc3Rqcy5jb20vaW1nL2xvZ29fdGV4dC5zdmciICB3aWR0aD0iMzIwIiAgYWx0PSJOZXN0IExvZ28iIC8+PC9hPgo8L3A+CgpOZXN0LmpzIGlzIGEgcHJvZ3Jlc3NpdmUgPGEgIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnIiAgdGFyZ2V0PSJfYmxhbmsiPk5vZGUuanM8L2E+IGZyYW1ld29yayBmb3IgYnVpbGRpbmcgZWZmaWNpZW50IGFuZCBzY2FsYWJsZSBzZXJ2ZXItc2lkZSBhcHBsaWNhdGlvbnMuCgojIyBBY3RpdmUgUmVjb3JkIFBhdHRlcm4KVGhlIENhc2UgTWFuYWdlciBBUEkgaXMgYnVpbHQgdXNpbmcgdGhlIEFjdGl2ZSBSZWNvcmQgUGF0dGVybi4KClVzaW5nIHRoZSBBY3RpdmUgUmVjb3JkIGFwcHJvYWNoLCBvbmUgY2FuIGRlZmluZSBhbGwgdGhlaXIgcXVlcnkgbWV0aG9kcyBpbnNpZGUgdGhlIG1vZGVsIGl0c2VsZiwgYW5kICBzYXZlLCByZW1vdmUsIGFuZCBsb2FkIG9iamVjdHMgdXNpbmcgbW9kZWwgbWV0aG9kcy4KClNpbXBseSwgdGhlIEFjdGl2ZSBSZWNvcmQgcGF0dGVybiBpcyBhbiBhcHByb2FjaCB0byBhY2Nlc3MgZGF0YWJhc2Ugd2l0aGluIHRoZSBkZWZpbmVkIG1vZGVscy4gWW91IGNhbiByZWFkIG1vcmUgYWJvdXQgdGhlIEFjdGl2ZSBSZWNvcmQgcGF0dGVybiBvbiBbV2lraXBlZGlhXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BY3RpdmVfcmVjb3JkX3BhdHRlcm4pLgoKIyMgSW5zdGFsbGF0aW9uCgoxLiBDbG9uZSB0aGUgcmVwb3NpdG9yeSB0byB5b3VyIGxvY2FsIG1hY2hpbmUuCmBgYGJhc2gKJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL0Jvcm8yMy13cS9jYXNlLW1hbmFnZXItYXBpLmdpdApgYGAKMi4gQ2hhbmdlIGRpcmVjdG9yeSBpbnRvIHRoZSByZXBvc2l0b3J5IHlvdSBqdXN0IGNsb25lZC4KYGBgYmFzaAokIGNkIGNhc2UtbWFuYWdlci1hcGkKYGBgCjMuIE9wZW4gdGhlIHJlcG9zaXRvcnkgaW4geW91ciBmYXZvcml0ZSBjb2RlIGVkaXRvci4gSSdtIHVzaW5nIFZTQ29kZS4gVGhlIHNob3J0Y3V0IHRvIG9wZW4gYSBkaXJlY3RvcnkgaW4gVlNDb2RlIGlzOgpgYGBiYXNoCiQgY29kZSAuCmBgYApQbGVhc2UgbWFrZSBzdXJlIHlvdSBhcmUgaW5zaWRlIHRoZSBkaXJlY3RvcnkuCgo0LiBGaW5hbGx5LCBydW4gdGhlIGNvbW1hbmQgYmVsb3cgYmFzZWQgb24geW91ciBwYWNrYWdlIG1hbmFnZXI6CmBgYGJhc2gKIyB5YXJuIAokIHlhcm4KT1IKIyBucG0KJCBucG0gaW5zdGFsbApgYGAKCiMjIEVudmlyb25tZW50IHZhcmlhYmxlcwoKUGxlYXNlIGNyZWF0ZSBhIGAuZW52YCBvciBgLmVudi5sb2NhbGAgZmlsZSB0byBzZXQgdGhlIFtQbGFuZXRTY2FsZV0oaHR0cHM6Ly9wbGFuZXRzY2FsZS5jb20vKSBkYXRhYmFzZSBzdHJpbmcuIFRoZSBzdHJpbmcgd291bGQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOgoKYGBgYmFzaApEQVRBQkFTRV9VUkw9J215c3FsOioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKicKYGBgCgojIyBSdW5uaW5nIHRoZSBhcHAKYGBgYmFzaAojIGRldmVsb3BtZW50CiQgbnBtIHJ1biBzdGFydAoKIyB3YXRjaCBtb2RlCiMgV2F0Y2ggbW9kZSB3aWxsIGJhc2ljYWxseSB3YXRjaCBmb3IgYW55IGNoYW5nZXMgdG8geW91ciBjb2RlIGFuZCByZXN0YXJ0IHRoZSBzZXJ2ZXIgYWNjb3JkaW5nbHkgd2hpY2ggaXMgdmVyeSBjb252ZW5pZW50LgokIG5wbSBydW4gc3RhcnQ6ZGV2CgojIHByb2R1Y3Rpb24gbW9kZQokIG5wbSBydW4gc3RhcnQ6cHJvZApgYGAKCiMjIFRlc3QKSSBoYXZlbid0IGltcGxlbWVudGVkIGFueSB0ZXN0cyB5ZXQsIGJ1dCBvbmNlIHRoZSB0ZXN0cyBhcmUgYWRkZWQgeW91J2QgaGF2ZSBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0byBydW4gaXQuCiAgCgpgYGBiYXNoCiMgdW5pdCB0ZXN0cwokIG5wbSBydW4gdGVzdAoKIyBlMmUgdGVzdHMKJCBucG0gcnVuIHRlc3Q6ZTJlCgojIHRlc3QgY292ZXJhZ2UKJCBucG0gcnVuIHRlc3Q6Y292CmBgYAoKIyMgUmVzb3VyY2VzCjEuIFtOZXN0LmpzIERvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5uZXN0anMuY29tLykKMi4gW1ByaXNtYSBEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5wcmlzbWEuaW8vZG9jcy8pCjMuIFtQbGFuZXRTY2FsZSBEb2N1bWVudGF0aW9uXShodHRwczovL3BsYW5ldHNjYWxlLmNvbS9kb2NzKQoKIyMgU3RheSBpbiB0b3VjaAoKLSBBdXRob3IgLSBbU2ludHUgQm9yb10oaHR0cHM6Ly9zYm9yby52ZXJjZWwuYXBwLykKLSBCbG9nIC0gW2h0dHBzOi8vc2Jvcm8udmVyY2VsLmFwcC9ibG9nXShodHRwczovL3Nib3JvLnZlcmNlbC5hcHAvYmxvZykKLSBMaW5rZWRpbiAtIFtTaW50dSBCb3JvXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vc2ludHUtYm9yby8pCgojIyBMaWNlbnNlClRoaXMgcHJvamVjdCBpcyBbTUlUIGxpY2Vuc2VkXShMSUNFTlNFKS4= readmeEtag: '"f8457def7596468713b8073dbfa3c42c62cb052e"' readmeLastModified: Thu, 03 Nov 2022 18:57:37 GMT repositoryId: 560106244 description: >- Implementation of the REST API using Nest.js, Typescript, Prisma, and PlanetScale that performs operation on case managers, cases, and related case notes, for the project CS 673 - Care Management and Co-ordination. created: '2022-10-31T18:46:18Z' updated: '2022-11-04T04:04:24Z' language: TypeScript archived: false stars: 0 watchers: 1 forks: 0 owner: Boro23-wq logo: https://avatars.githubusercontent.com/u/62204944?v=4 license: MIT repoEtag: '"d720b55ea75c79ace990aa5bf3087893e7d2b482deeacd4f525fba1fb321b342"' repoLastModified: Fri, 04 Nov 2022 04:04:24 GMT category: - Code Generators - Server Implementations foundInMaster: true - source: https://openapi.tools/ name: MicroTS category: - Server - Server Implementations language: Node.js link: https://www.npmjs.com/package/microts repository: https://github.com/tomi-vanek/microts source_description: Take an OpenAPI description and generate TypeScript projects via Docker. v2: true v3: false repositoryMetadata: base64Readme: >- IyBNaWNyb1RTIGNvZGUgZ2VuZXJhdG9yIGZvciBtaWNyb3NlcnZpY2VzCgpNaWNyb3NlcnZpY2UgY29kZSBnZW5lcmF0b3Igd2l0aCBpbnRlcmZhY2UtZmlyc3QgYXBwcm9hY2g6IGZyb20gKipPcGVuQVBJIC0gU3dhZ2dlcioqIFJFU1QgQVBJIHNwZWNpZmljYXRpb24gaXMgZ2VuZXJhdGVkIGNvbXBsZXRlIHByb2plY3Qgc2tlbGV0b24gd2l0aCBfVHlwZVNjcmlwdF8gY29kZSwgdGVzdHMgYW5kIF9Eb2NrZXJfIGNvbmZpZ3VyYXRpb24uCgpHZW5lcmF0ZWQgY29kZSBoYXMgdGhlIGFtYml0aW9uIHRvIG1pbmltaXplIGltcGxlbWVudGF0aW9uIHRpbWUgZm9yIG5ldyBtaWNyb3NlcnZpY2VzLgoKVGhlIF9vcGVuYXBpLW1pY3JvLXRzXyBnZW5lcmF0b3IgaXMgYSBzaW1wbGUgIm9uZS1zaG90IiBwcm9qZWN0IGluaXRpYWxpemF0aW9uIHRvb2wgLSBhZnRlciB0aGUgY29kZSBpcyBnZW5lcmF0ZWQsIHRoZSBzZXJ2aWNlIGZ1bmN0aW9uYWxpdHkgaXMgaW1wbGVtZW50ZWQgd2l0aCB0cmFkaXRpb25hbCBtYW51YWwgY29kaW5nLgoKIyMgUXVpY2sgc3RhcnQKCjEuIEluc3RhbGwgdGhlIGdlbmVyYXRvciB3aXRoIGBucG0gaSAtZyBtaWNyb3RzYAoxLiBDcmVhdGUgYSBuZXcgcHJvamVjdCBkaXJlY3RvcnkuIEdvIHRvIHRoZSBuZXcgcHJvamVjdCB3b3JrIGRpcmVjdG9yeSB3aXRoIGBjZCBbTkVXLVBST0pFQ1RdYC4KMS4gQ3JlYXRlIG5ldyBtaWNyb3NlcnZpY2Ugc2NoZW1hIHdpdGggZGVmYXVsdCBuYW1lIGBzd2FnZ2VyLnlhbWxgIGluIHJvb3Qgb2YgdGhlIHByb2plY3QuCjEuIEdlbmVyYXRlIG1pY3Jvc2VydmljZSBjb2RlIHdpdGggY29tbWFuZCBgbWljcm90c2Agd2l0aCBkZWZhdWx0IHBvcnQgMzAwMC4KMS4gTnN0YWxsIGRlcGVuZGVuY2llcyB3aXRoIGBucG0gaWAgYW5kIHN0YXJ0IHRoZSBtaWNyb3NlcnZpY2Ugd2l0aCBgbnBtIHN0YXJ0YC4KMS4gT3BlbiB0aGUgbWljcm9zZXJ2aWNlIGRlYnVnZ2luZyB1c2VyIGludGVyZmFjZSBpbiBicm93c2VyIHdpdGggVVJMIGBsb2NhbGhvc3Q6MzAwMC9bYmFzZS1wYXRoXS91aWAgKGJhc2UgcGF0aCBpcyBkZWZpbmVkIGJ5IHNjaGVtYSkuCgojIyBDb2RlIGdlbmVyYXRpb24gaW4gZGV0YWlsCgoxLiBDcmVhdGUgYSBuZXcgcHJvamVjdCBkaXJlY3RvcnkgKGNyZWF0ZSBhIHByb2plY3QgaW4gR2l0SHViIG9yIG90aGVyIFZDUyBhbmQgY2xvbmUpLiBHbyB0byB0aGUgbmV3IHByb2plY3Qgd29yayBkaXJlY3Rvcnkgd2l0aCBgY2QgW05FVy1QUk9KRUNUXWAuCjEuIENyZWF0ZSBuZXcgbWljcm9zZXJ2aWNlIHNjaGVtYSBpbiByb290IG9mIHRoZSBwcm9qZWN0LiBTdXBwcm90ZWQgc2NoZW1hIGZvcm1hdHMgYXJlIFtPcGVuQVBJIDIuMF0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMi4wLm1kKSBpbiBib3RoIFlBTUwgYW5kIEpTT04gZm9ybWF0LgoxLiBHZW5lcmF0ZSBtaWNyb3NlcnZpY2UgY29kZSB3aXRoIGNvbW1hbmQgYG1pY3JvdHMgLXAgUE9SVCAtcyBTQ0hFTUFgLiBQYXJhbWV0ZXIgUE9SVCBkZWZpbmVzIHRoZSBkZWZhdWx0IHBvcnQgb24gd2hpY2ggdGhlIHNlcnZlciB3aWxsIGxpc3RlbiAoaWYgbm90IHNldCwgZGVmYXVsdCBwb3J0IDMwMDAgd2lsbCBiZSB1c2VkIGZvciBjb2RlIGdlbmVyYXRpb24pLiBQYXJhbWV0ZXIgU0NIRU1BIGlzIHRoZSBuYW1lIG9mIHRoZSBzY2hlbWEgLSBtYXkgYmUgd2l0aCBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoLCBpZiBzY2hlbWEgaXMgbm90IGluIHdvcmtpbmcgZGlyZWN0b3J5LiBJZiBzY2hlbWEgaXMgbm90IHNldCwgZ2VuZXJhdG9yIHRyaWVzIHRvIG9wZW4gYHN3YWdnZXIueWFtbGAgZmlsZSBmb3IgQVBJIGRlZmluaXRpb24uCjEuIFJlYWQgdGhlIF9OZXh0IHN0ZXBzXyBpbiB0aGUgY29uc29sZSBhbmQgZmFtaWxpYXJpemUgd2l0aCB0aGUgZ2VuZXJhdGVkIG1pY3Jvc2VydmljZSBzZXJ2ZXIuCjEuIE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1pY3Jvc2VydmljZSBpcyBpbiB0aGUgZ2VuZXJhdGVkIGBSRUFETUUubWRgIGZpbGUuCjEuIEFkZCByZXBvc2l0b3J5IGFuZCBsaWNlbnNlIGZpZWxkcyB0byB0aGUgZ2VuZXJhdGVkIGBwYWNrYWdlLmpzb25gLgoxLiBUaGUgc291cmNlIHNjaGVtYSB3YXMgY29waWVkIChhbmQgaWYgbmVlZGVkIC0gY29udmVydGVkKSB0byBgc3JjL2NvbmYvc3dhZ2dlci55YW1sYCBmaWxlLiBUaGUgc291cmNlIHNjaGVtYSBjYW4gYmUgZGVsZXRlZCAtIGFzIGl0IGlzIG5vdCB1c2VkIGJ5IHRoZSBzZXJ2ZXIuCjEuIFNlYXJjaCBmb3IgYFRPRE9gIGluIGNvZGUsIGFuZCBpbXBsZW1lbnQgdGhlIGZ1bmN0aW9uYWxpdHkuCgpGb3IgYWxsIGNvbW1hbmQgbGluZSBwcm9wZXJ0aWVzIG9mIHRoZSBgbWljcm90c2AgY29kZSBnZW5lcmF0b3IgdXNlIHRoZSBjb21tYW5kIGBtaWNyb3RzIC1oYC4KCiMjIE1pY3Jvc2VydmljZSBkZXZlbG9wbWVudAoKMS4gRm9yIGRlYnVnZ2luZyBydW4gdGhlIG1pY3Jvc2VydmljZSB3aXRoIGBucG0gcnVuIGRldmAuCjEuIEFmdGVyIHNhdmluZyBhbnkgY2hhbmdlIHRoZSBzb3VyY2UgY29kZSBpcyBjb21waWxlZCB0byBydW50aW1lIGZvcm0gaW4gYC9kaXN0YCBkaXJlY3RvcnkgYW5kIHRoZSBzZXJ2ZXIgaXMgcmVzdGFydGVkLgoxLiBUaGUgbWljcm9zZXJ2aWNlIFVJIGhlbHBzIGJ5IGRlYnVnZ2luZyB0aGUgc2VydmljZS4gSXQgc2hvd3MgYWxzbyBgY3VybGAgY29tbWFuZHMgdG8gY2FsbCB0aGUgYWN0aW9ucyBpbiB0aGUgc2VydmljZS4KCiMjIE9wZW5BUEkgLyBTd2FnZ2VyIHNjaGVtYSBhdXRob3JpbmcKCk1pY3Jvc2VydmljZSBpcyBkZWNsYXJlZCB3aXRoIE9wZW5BUEkgMi4wIChTd2FnZ2VyKSBgc3dhZ2dlci55YW1sYCBzY2hlbWEgd2l0aCBBUEkgZGVmaW5pdGlvbiAtIHlvdSBjYW4gdXNlIFN3Z2dlciBlZGl0b3IgZm9yIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIGRlc2lnbiBzdGVwIGlzIGNydWNpYWwgZm9yIGZ1cnRoZXIgcXVhbGl0eSBhbmQgdXNhZ2Ugc2ltcGxpY2l0eSBvZiB0aGUgbmV3IEFQSS4gRGVzaWduIGlzIGJlc3QgbWFkZSBpbiBkaXNjdXNzaW9uLiBJdCBtYXkgYmUgdXNlZnVsIHRvIGF1dGhvciB0aGUgc2NoZW1hIHdpdGggW09ubGluZSBTd2FnZ2VyIEVkaXRvcl0oaHR0cHM6Ly9lZGl0b3Iuc3dhZ2dlci5pby8pLgoKRm9yIGNsb3VkIGRlcGxveW1lbnRzIGNvZGUgZ2VuZXJhdG9yIGdlbmVyYXRlcyBjb2RlIGZvciBoZWFsdGggY2hlY2ssIGlmIGluIHNjaGVtYSBpcyBkZWZpbmVkIGFjdGlvbiBgR0VUIC9oZWFsdGhgLgoKIyMgR2VuZXJhdG9yIGNvZGUgZnJvbSBHaXRIdWIKCjEuIERvd25sb2FkIHRoZSBnZW5lcmF0b3Igd2l0aCBgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS90b21pLXZhbmVrL29wZW5hcGktbWljcm8tdHMuZ2l0YCBhbmQgZ28gdG8gcHJvamVjdCByZXBvc2l0b3J5IHdpdGggYGNkIG1pY3JvdHNgCjEuIERvd25sb2FkIGdlbmVyYXRvciBkZXBlbmRlbmNpZXMgYW5kIHRvb2xzIHdpdGggYG5wbSBpYC4KMS4gUmVnaXN0ZXIgdGhlIHRvb2wgaW4gbG9jYWwgTlBNIHdpdGggYG5wbSBsaW5rYCBjb21tYW5kLCBzbyB5b3UgY2FuIHVzZSBpdCBmcm9tIGNvbW1hbmQgbGluZSBpbiBhbnkgZGlyZWN0b3J5IHdpdGggY29tbWFuZCBgbWljcm90c2AuCgojIyBHZW5lcmF0b3IgaW4gZGV0YWlsCgpUaGUgbWljcm9zZXJ2aWNlIGludGVyZmFjZSBpcyBkZWZpbmVkIGluIGZvcm0gb2YgW09wZW5BUEkgMi4wXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci92ZXJzaW9ucy8yLjAubWQpIHNjaGVtYSwgYXMgdGhlIGxpYnJhcmllcyAvIHRvb2xzIHVzZWQgaW4gZ2VuZXJhdGVkIGNvZGUgZG8gbm90IHN1cHBvcnQgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBPcGVuQVBJIHlldC4KCkdlbmVyYXRlZCBhcHBsaWNhdGlvbiBjb2RlIGlzIGluIFR5cGVTY3JpcHQgbGFuZ3VhZ2UuCgpCYXNpYyBmZWF0dXJlcyBvZiB0aGUgZ2VuZXJhdGVkIGNvZGU6CgoqIFR5cGVTY3JpcHQgbGFuZ3VhZ2UKKiBBcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIGluIGRpcmVjdG9yeSBgL3NyYy9jb25mYAoqIE5vZGUgJiBFeHByZXNzIHNlcnZlciBzZXR1cCBpbiBgL3NyY2AKKiBDb252ZW50aW9uLWJhc2VkIHJvdXRpbmcgYW5kIHJlcXVlc3QgaGFuZGxlcnMgaW4gYC9zcmMvaGFuZGxlcnNgIC0gcmVxdWVzdCBwYXRoIGNvcnJlc3BvbmRzIHRoZSBkaXJlY3RvcnkgcGF0aCwgbm8gZXhwbGljaXQgcm91dGluZyBsb2dpYyBpcyBuZWVkZWQKKiBaZXJvLWNvZGUgYXV0b21hdGljIGlucHV0IHZhbGlkYXRpb24gZGVmaW5lZCBieSBydWxlcyBpbiBPcGVuQVBJIC8gU3dhZ2dlciBzY2hlbWEKKiBVc2VyIGludGVyZmFjZSBmb3IgbWljcm9zZXJ2aWNlIHRlc3RpbmcgYW5kIGFkbWluaXN0cmF0aW9uIGluIGAvc3JjL3VpYAoqIGBEb2NrZXJmaWxlYCBmb3IgZGVwbG95bWVudCBpbWFnZSBhbmQgYGRvY2tlci1jb21wb3NlLnlhbWxgIGFzIGFuIGV4YW1wbGUgdXNhZ2UgaW4gYXBwbGljYXRpb24gaW50ZWdyYXRpb24KKiBFbmQtdG8tZW5kIHRlc3RzICBpbiBgL3Rlc3RgCgojIyBBcmNoaXRlY3R1cmUgc2hhcGUKCkdlbmVyYXRvciBkb2VzIG5vdCBvZmZlciByaWNoIHNldCBvZiBvcHRpb25zIHRvIHRhaWxvciB0aGUgcmVzdWx0IGludG8gZGlmZmVyZW50IGZvcm1zLiBUaGlzIGFwcHJvYWNoIGV4cHJlc3NlcyBhdXRob3IncyBhcmNoaXRlY3R1cmUgZXhwZXJpZW5jZTogZ2VuZXJhdG9yIGlzIGEgd2F5IHRvIGRlZmluZSBhcmNoaXRlY3R1cmUgd2l0aG91dCBjb21wbGV4IGRvY3VtZW50YXRpb24sIHRoYXQgZ2VudGx5IGRpcmVjdHMgZGV2ZWxvcGVycyBpbiB0aGUgYXJjaGl0ZWN0dXJlLWVudmlzaW9uZWQgZGlyZWN0aW9uOgoKKiBEZXZlbG9wZXJzIGFyZSBpbXBsZW1lbnRpbmcgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIGluIHJlcXVlc3QgaGFuZGxlcnMgYW5kIHRlc3RzLgoqIE5vbi1mdW5jdGlvbmFsIGNvbmNlcm5zIGFyZSBoaWRkZW4gaW4gdGhlIGdlbmVyYXRlZCBjb2RlLgoqIEltcGxlbWVudGF0aW9uIG9mIG1pY3Jvc2VydmljZSAiZnJvbSB6ZXJvIiBpcyB2ZXJ5IGZhc3QgLSByZW1vdmVzIHRpbWUgJiBlZmZvcnQgY29uY2VybnMgYnkgaW50cm9kdWNpbmcgbmV3IG9yIHJhZGljYWwgcmVmYWN0b3Jpbmcgb2YgZXhpc3Rpbmcgc2VydmljZXMgaW4gc3lzdGVtIGVjb3N5c3RlbS4KCkdlbmVyYXRvciBpbiBhcmNoaXRlY3R1cmU6CgoqIE9wZXJhdGlvbmFsIGRlZmluaXRpb24gb2YgdGhlIGFyY2hpdGVjdHVyZSAoYXMgYSByZXBsYWNlbWVudCBvZiB3cml0ZS1vbmx5IG9ic29sZXRlIGRvY3VtZW50YXRpb24gOi0pCiogQ29uc2lzdGVuY3kgb2YgcHJvamVjdCBzdHJ1Y3R1cmUgLSBzaW1wbGUgZ2xvYmFsIHJlZmFjdG9yaW5nIGJ5IGNoYW5nZXMgb2YgdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQKKiBEZXZlbG9wZXIgZm9jdXMgb24gYXBwbGljYXRpb24gY29kZSAobWluaW1pemVzIGRldmVsb3BlcidzIGNyZWF0aXZpdHkgaW4gbm9uLWZ1bmN0aW9uYWwgcnVudGltZSBhbmQgc2VjdXJpdHkgY29uY2VybnMpCgpBcyBhbiBhcmNoaXRlY3QgeW91IGhhdmUgeW91ciBvd24gdGVjaG5pY2FsIG9waW5pb24sIHRlY2hub2xvZ3kgY29uc3RyYWludHMgLyBwcmVmZXJlbmNlcyBhbmQgaW5mcmFzdHJ1Y3R1cmUgJsKgc2VjdXJpdHkgc2VydmljZXMgdGhhdCBoYXZlIHRvIGJlIGludGVncmF0ZWQgaW50byB0aGUgKG1pY3JvKXNlcnZpY2Ugc2VydmVycy4KCkp1c3QgZm9yayB0aGlzIHByb2plY3QsIG9yIHRha2UgYW4gaW5zcGlyYXRpb24gYW5kIGJ1aWxkIHlvdXIgb3duIGdlbmVyYXRvciBmcm9tIGFuIHByb29mLW9mLWNvbmNlcHQgc2VydmljZSB0aGF0IGJlc3QgZml0cyB5b3VyIGV4cGVjdGF0aW9ucy4K readmeEtag: '"0b3e48e33f2a2d147ea9a0419cf01a632d968170"' readmeLastModified: Sun, 30 Apr 2023 06:19:22 GMT repositoryId: 165400292 description: >- Microservice code generator: from OpenAPI (Swagger) REST API specification to TypeScript project with Docker. created: '2019-01-12T15:00:44Z' updated: '2024-06-04T23:53:24Z' language: JavaScript archived: false stars: 29 watchers: 3 forks: 3 owner: tomi-vanek logo: https://avatars.githubusercontent.com/u/10799822?v=4 license: MIT repoEtag: '"790031466b0a81e6c3e6fbd01816be58d022515d5a1d0adba852d9d44f027f9a"' repoLastModified: Tue, 04 Jun 2024 23:53:24 GMT foundInMaster: true id: 87f9aea977df5e49cac64a831bd0299b - source: https://openapi.tools/ name: Meeshkan category: - Learning - Mock - Server Implementations language: Python link: https://github.com/meeshkan/meeshkan repository: https://github.com/meeshkan/meeshkan source_description: >- Mock HTTP APIs through a combination of API definitions, recorded traffic and code. Used for sandboxes, as well as automated and exploratory testing. v2: false v3: true repositoryMetadata: base64Readme: >- IyBNZWVzaGthbiDigJQgdGhlIGZyb250ZW5kIG1vbm8tcmVwbwoKVGhpcyByZXBvIGNvbnRhaW5zIDQgYXBwcyB0aGF0IGhhdmUgc29tZSAnZnJvbnRlbmQnIHV0aWxpdHkgdG8gdGhlIGNvbXBhbnkuCgoxLiBgY3VzdG9tLWdyYXBocWxgIHRoaXMgaXMgd2hlcmUgb3VyIDhiYXNlIGN1c3RvbSBsb2dpYyBsaXZlcy4gWzhiYXNlIGxvZ2ljXShodHRwczovL2RvY3MuOGJhc2UuY29tL2RvY3MvOGJhc2UtY29uc29sZS9wbGF0Zm9ybS10b29scy9mdW5jdGlvbnMvKSBhbGxvd3MgeW91IHRvIGRlcGxveSBjdXN0b20gZnVuY3Rpb25hbGl0eSBhbmQgaXMgdGhlIGJhc2VsaW5lIGZvciBjb21taXR0aW5nIGRhdGFiYXNlIG1pZ3JhdGlvbnMuIEluIG91ciBjYXNlIHdlIGhhdmUgYW4gaW52aXRlIGxpbmsgW3RyaWdnZXIgYW5kIHVwZGF0ZXJdKC9Vc2Vycy9tYWtlbm5hc211dHovRG9jdW1lbnRzL0dpdEh1Yi9tZWVzaGthbi9hcHBzL2N1c3RvbS1ncmFwaHFsLzhiYXNlLnltbCkuIEluIG9yZGVyIHRvIHVzZSB0aGlzIHJlcG8sIHlvdSdsbCBuZWVkIHRvIGJlIGZhbWlsaWFyIHdpdGggdGhlIFs4YmFzZSBDTEldKGh0dHBzOi8vZG9jcy44YmFzZS5jb20vZG9jcy9kZXZlbG9wbWVudC10b29scy9jbGkpLgoyLiBgb2ctY2FyZHNgIGlzIGEgZnJvbnRlbmQgbWljcm8tc2VydmljZSB0aGF0IGdlbmVyYXRlcyBkeW5hbWljIGltYWdlcyBmb3IgdGhlIHNoYXJpbmcgY2FyZHMgc2hvd24gb24gc29jaWFscyBmb3Igb3VyIHdlYnNpdGUuIEl0IGlzIGRlcGxveWVkIG9uIFZlcmNlbCBhbmQgc28gZmFyIGhhcyBuZWVkZWQgbGl0dGxlIHRvIG5vIG1haW50YWluYW5jZS4KMy4gYHdlYmFwcGAgdGhpcyBpcyB0aGUgbW9zdCBhY3RpdmUgYXBwIGluIHRoaXMgcmVwby4gSXQgaXMgdGhlIG1lZXNoa2FuIHdlYmFwcCAoaHR0cHM6Ly9hcHAubWVlc2hrYW4uY29tKSB3aGljaCBpcyBkZXBsb3llZCBvbiBWZXJjZWwuCjQuIGB3ZWJzaXRlYCB0aGlzIGlzIGhlcmUgaW4gYSBob3BlZnVsIG1lYXN1cmUgYnV0IG5vdCBjdXJyZW50bHkgaW4gdXNlLiBDdXJyZW50bHkgb3VyIGxpdmUgd2Vic2l0ZSByZXBvIGlzIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWVzaGthbi93ZWJzaXRlLiBXZSdkIGxpa2UgdG8gdHJhbnNpdGlvbiB0aGlzIGhlcmUgdG8gc2hhcmUgdGhlIGNoYWtyYS11aSBsaWJyYXJ5LgoKVGhpcyByZXBvIGFsc28gY29udGFpbnMgMyBgbGlic2Agb3IgTlggbGlicmFyaWVzIHdoaWNoIGFyZSBzaGFyZWQgY29kZSBiZXR3ZWVuIGFsbCBvZiB0aGUgZnJvbnRlbmQgcHJvamVjdHMuCgoxLiBgY2hha3JhLXRoZW1lYCBzZXJ2ZXMgYXMgdGhlIGN1c3RvbSBbQ2hha3JhIFVJXShodHRwczovL2NoYWtyYS11aS5jb20vKSBzZXR1cCB0aGF0IHdlIHVzZSBhY2Nyb3NzIGFueSBmcm9udGVuZCBwcm9qZWN0cy4KMi4gYGRvd25sb2FkYWJsZS1zY3JpcHRgIGlzIHRoZSBtaWNyb3NlcnZpY2UgdGhhdCBjb252ZXJ0cyB0aGUgdXNlciBzdG9yeSBldmVudHMvY29tbWFuZHMgaW4gOGJhc2UgaW50byBhIFB1cHBldGVlciBzY3JpcHQuCjMuIGBtZWVzaGthbi10eXBlc2AgaXMgYSBjZW50cmFsaXplZCBwbGFjZSBmb3IgY3VzdG9tIFR5cGVTY3JpcHQgaW50ZXJmYWNlcyB3ZSB1c2UuIFNvbWUgYXJlIGJ1aWx0IGN1c3RvbSBidXQgbW9zdCBjb21lIGZyb20gOGJhc2UgdXNpbmcgYSBwYWNrYWdlIGNhbGxlZCBgZ3JhcGhxbC1jb2RlLWdlbmAuCgojIyBHZXR0aW5nIHRoZSBgd2ViYXBwYCBwcm9qZWN0IHdvcmtpbmcgbG9jYWxseQoKVGhpcyBndWlkZSB3aWxsIHVzZSBgeWFybmAuIEZlZWwgZnJlZSB0byB1c2UgdGhlIGBucG1gIGVxdWl2YWxlbnQgdG8gbXkgaW5zdHJ1Y3Rpb25zIGlmIHRoYXQgd29ya3MgYmV0dGVyIGZvciB5b3UhCgoxLiBBZnRlciBjbG9uaW5nIHRoaXMgcmVwbyB0byB5b3VyIGNvbXB1dGVyIOKAlCBgY2RgIGludG8gdGhlIGJhc2UgcmVwb3NpdG9yeSAoYG1lZXNoa2FuYCkuCjIuIER1cGxpY2F0ZSB0aGUgYC5lbnYudGVtcGxhdGVgIGZpbGUsIHJlbmFtaW5nIGl0IHRvIGAuZW52YC4KICAgLSBgQVVUSDBfQ0xJRU5UX0lEYCwgYEFVVEgwX0NMSUVOVF9TRUNSRVRgLCBhbmQgYFNFU1NJT05fQ09PS0lFX1NFQ1JFVGAgY2FuIGFsbCBiZSBmb3VuZCBpbiBBdXRoMC4gSWYgeW91IGRvIG5vdCBoYXZlIGFjY2VzcyB0byBBdXRoMCwgY29udGFjdCBAazRtNCBvciBAS2Vuem9CZW56byB0byBnZXQgeW91IHRoZSB0b2tlbnMuIFRoZSB2YWx1ZSBvZiBgQVVUSDBfRE9NQUlOYCBpcyAibWVlc2hrYW4uZXUuYXV0aDAuY29tIi4KICAgLSBUaGUgdG9rZW4gYE5FWFRfUFVCTElDX0VJR0hUQkFTRV9FTkRQT0lOVGAgY2hhbmdlcyB0aGUgOGJhc2UgZW52aXJvbm1lbnQgYmV0d2VlbiBgc3RhZ2luZ2AgImh0dHBzOi8vYXBpLjhiYXNlLmNvbS9ja2hxZHo1bXUwMXIzMDdtbjZzemNiZGtlX3N0YWdpbmciIGFuZCBgTWFzdGVyYCAiaHR0cHM6Ly9hcGkuOGJhc2UuY29tL2NraHFkejVtdTAxcjMwN21uNnN6Y2Jka2UiLgogICAtIFRoZSB0b2tlbiBgRUlHSFRfQkFTRV9BVVRIX1BST0ZJTEVfSURgIGNhbiBiZSBmb3VuZCBpbiA4YmFzZSAobG9nIGluIGZvdW5kIGluIDFwdykuCiAgIC0gVGhlIGBURVNUX1VSTGAgZGVwZW5kcyBvbiBob3cgeW91IHNlcnZlIHlvdXIgd2ViYXBwIGxvY2FsbHkuIElmIHlvdSB1c2UgdGhlIGNvbW1hbmQgYHlhcm4gc3RhcnQgd2ViYXBwYCB0aGUgdmFsdWUgd2lsbCBiZSAibG9jYWxob3N0OjMwMDAiLiBDaGFuZ2UgYWNjb3JkaW5nbHkgZm9yIGEgZGlmZmVyZW50IHBvcnQuCiAgIC0gVGhlIGBDT09LSUVgIHRva2VuIGNhbiBiZSBmb3VuZCBpbiBBdXRoMCwgb3IgaHR0cHM6Ly9hcHAubWVlc2hrYW4uY29tIHVuZGVyIG91ciBpbnRlcm5hbCBgTWVlc2hrYW4gd2ViYXBwYCBwcm9qZWN0LCBhdXRoIHRva2Vucy4KICAgLSBUaGUgYE1JWFBBTkVMX1RPS0VOYCBjYW4gYmUgZm91bmQgaW4gTWl4cGFuZWwsIGJ1dCBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQgKHRvIG5vdCBwb2xsdXRlIHByb2R1Y3Rpb24gYW5hbHl0aWNzKSBJJ2Qgc3VnZ2VzdCB5b3UgdXNlIHRoZSBgVGVzdCBkYXRhYCBwcm9qZWN0IHRva2VuIG9mICJkZDdmZWJjOGMyNjk3ZmNhOGVkMmQ1NTIzNDA5YTI4MSIuCjMuIFdoaWxlIHN0aWxsIGluIHRoZSBiYXNlIHJlcG9zaXRvcnksIGluc3RhbGwgdGhlIHByb2plY3QgZGVwZW5kZW5jaWVzIHdpdGggYHlhcm5gLgo0LiBTdGFydCBhIGRldmVsb3BtZW50IHNlcnZlciBvZiB0aGUgd2ViYXBwIHVzaW5nIHRoZSBjb21tYW5kIGB5YXJuIHN0YXJ0IHdlYmFwcGAuIFlvdSBzaG91bGQgdGhlbiBzZWUgYSBtZXNzYWdlIHRoYXQgdGhlIHBvcnQgMzAwMCBpcyBub3cgb3BlbiBhbmQgeW91IGNhbiB2aXNpdCBgbG9jYWxob3N0OjMwMDBgLgo= readmeEtag: '"e02599f5aa9525c9d2b715310334bcd13631cc2b"' readmeLastModified: Sun, 05 Sep 2021 00:37:40 GMT repositoryId: 312140836 description: The Meeshkan frontend stack monorepo. created: '2020-11-12T02:01:32Z' updated: '2023-01-27T19:33:58Z' language: TypeScript archived: true stars: 2 watchers: 3 forks: 1 owner: meeshkan logo: https://avatars.githubusercontent.com/u/32298527?v=4 repoEtag: '"512ba8d868e69d5aac982ca9c61a3b144afd87c6052ad202e79e3ef749ff8761"' repoLastModified: Fri, 27 Jan 2023 19:33:58 GMT foundInMaster: true id: 7e8e0d0c7a10ec695d4736865a7f573b - source: https://openapi.tools/ name: Vert.x Web API Service category: Server language: Java link: https://vertx.io/docs/vertx-web-api-service/java/ repository: https://github.com/vert-x3/vertx-web/ source_description: Create API service proxies using event bus with request/response validation v2: false v3: true repositoryMetadata: base64Readme: >- PSBWZXJ0LngtV2ViCgppbWFnZTpodHRwczovL2dpdGh1Yi5jb20vdmVydC14My92ZXJ0eC13ZWIvYWN0aW9ucy93b3JrZmxvd3MvY2ktNS54LnltbC9iYWRnZS5zdmdbIkJ1aWxkIFN0YXR1cyAoNS54KSIsbGluaz0iaHR0cHM6Ly9naXRodWIuY29tL3ZlcnQteDMvdmVydHgtd2ViL2FjdGlvbnMvd29ya2Zsb3dzL2NpLTUueC55bWwiXQppbWFnZTpodHRwczovL2dpdGh1Yi5jb20vdmVydC14My92ZXJ0eC13ZWIvYWN0aW9ucy93b3JrZmxvd3MvY2ktNC54LnltbC9iYWRnZS5zdmdbIkJ1aWxkIFN0YXR1cyAoNC54KSIsbGluaz0iaHR0cHM6Ly9naXRodWIuY29tL3ZlcnQteDMvdmVydHgtd2ViL2FjdGlvbnMvd29ya2Zsb3dzL2NpLTQueC55bWwiXQppbWFnZTpodHRwczovL2ltZy5zaGllbGRzLmlvL21hdmVuLWNlbnRyYWwvdi9pby52ZXJ0eC92ZXJ0eC13ZWIuc3ZnWyJNYXZlbiBDZW50cmFsIl0KaW1hZ2U6aHR0cHM6Ly9iZXN0cHJhY3RpY2VzLmNvcmVpbmZyYXN0cnVjdHVyZS5vcmcvcHJvamVjdHMvNTQwL2JhZGdlWyJDSUkgQmVzdCBQcmFjdGljZXMiLGxpbms9Imh0dHBzOi8vYmVzdHByYWN0aWNlcy5jb3JlaW5mcmFzdHJ1Y3R1cmUub3JnL3Byb2plY3RzLzU0MCJdCgpWZXJ0LngtV2ViIGlzIGEgc2V0IG9mIGJ1aWxkaW5nIGJsb2NrcyBmb3IgYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucyB3aXRoIFZlcnQueC4gVGhpbmsgb2YgaXQgYXMgYSBTd2lzcyBBcm15IEtuaWZlIGZvciBidWlsZGluZwptb2Rlcm4sIHNjYWxhYmxlLCB3ZWIgYXBwcy4KClBsZWFzZSBzZWUgdGhlIG1haW4gZG9jdW1lbnRhdGlvbiBvbiB0aGUgd2ViLXNpdGUgZm9yIGEgZnVsbCBkZXNjcmlwdGlvbjoKCiogaHR0cHM6Ly92ZXJ0eC5pby9kb2NzLyN3ZWJbV2ViLXNpdGUgZG9jdW1lbnRhdGlvbl0KCj09IFRlbXBsYXRlIGVuZ2luZXMKClRlbXBsYXRlIGVuZ2luZSBpbXBsZW1lbnRhdGlvbnMgYXJlIGluIHRoZSB0ZW1wbGF0ZSBlbmdpbmUgc3ViLXByb2plY3QuCg== readmeEtag: '"269b52e98cea5813787f90c67bef329932b70760"' readmeLastModified: Fri, 16 Aug 2024 21:55:56 GMT repositoryId: 26628954 description: HTTP web applications for Vert.x created: '2014-11-14T08:15:20Z' updated: '2024-09-05T14:48:11Z' language: Java archived: false stars: 1105 watchers: 82 forks: 532 owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 repoEtag: '"d63c40405c7c36a6470b5059d16f2c05482a1d683b40046af540c5f1a4ed999d"' repoLastModified: Thu, 05 Sep 2024 14:48:11 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872 id: 649e1f8cd9ccaccf681527e6984f2785 v3_1_link: https://github.com/vert-x3/vertx-web/issues/1872 - source: https://openapi.tools/ name: Mayhem for API category: Testing link: https://forallsecure.com/mayhem-for-api language: Any source_description: >- Probe your REST API with an infinite stream of test cases generated automatically from your OpenAPI specification. v2: true v3: true foundInMaster: true id: f0d53d8ed081f28f47065108d2abdf80 - source: openapi3 tags repository: https://github.com/unionj-cloud/go-doudou v3: true repositoryMetadata: base64Readme: >- PHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9nby1kb3Vkb3UuZ2l0aHViLmlvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj4KICAgIDxpbWcgd2lkdGg9IjE4MCIgc3JjPSJodHRwczovL2dvLWRvdWRvdS5naXRodWIuaW8vaGVyby5wbmciIGFsdD0iVml0ZSBsb2dvIj4KICA8L2E+CjwvcD4KPGJyLz4KPHAgYWxpZ249ImNlbnRlciI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2F2ZWxpbm8vYXdlc29tZS1nbyI+PGltZyBzcmM9Imh0dHBzOi8vYXdlc29tZS5yZS9tZW50aW9uZWQtYmFkZ2Uuc3ZnIiBhbHQ9Ik1lbnRpb25lZCBpbiBBd2Vzb21lIEdvIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS91bmlvbmotY2xvdWQvZ28tZG91ZG91Ij48aW1nIHNyYz0iaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS91bmlvbmotY2xvdWQvZ28tZG91ZG91P3N0YXR1cy5wbmciIGFsdD0iR29Eb2MiPjwvYT4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdW5pb25qLWNsb3VkL2dvLWRvdWRvdS9hY3Rpb25zL3dvcmtmbG93cy9nby55bWwiPjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vdW5pb25qLWNsb3VkL2dvLWRvdWRvdS9hY3Rpb25zL3dvcmtmbG93cy9nby55bWwvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluIiBhbHQ9IkdvIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9jb2RlY292LmlvL2doL3VuaW9uai1jbG91ZC9nby1kb3Vkb3UiPjxpbWcgc3JjPSJodHRwczovL2NvZGVjb3YuaW8vZ2gvdW5pb25qLWNsb3VkL2dvLWRvdWRvdS9icmFuY2gvbWFpbi9ncmFwaC9iYWRnZS5zdmc/dG9rZW49UVJMUFJBWDg4NSIgYWx0PSJjb2RlY292Ij48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL3VuaW9uai1jbG91ZC9nby1kb3Vkb3UiPjxpbWcgc3JjPSJodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS91bmlvbmotY2xvdWQvZ28tZG91ZG91IiBhbHQ9IkdvIFJlcG9ydCBDYXJkIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3VuaW9uai1jbG91ZC9nby1kb3Vkb3UiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi92L3JlbGVhc2UvdW5pb25qLWNsb3VkL2dvLWRvdWRvdT9zdHlsZT1mbGF0LXNxdWFyZSIgYWx0PSJSZWxlYXNlIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtTUlULXllbGxvdy5zdmciIGFsdD0iTGljZW5zZTogTUlUIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly93YWthdGltZS5jb20vYmFkZ2UvdXNlci84NTJiY2YyMi04YTM3LTQ2MGEtYThlMi0xMTU4MzMxNzRlYmEvcHJvamVjdC81N2M4MzBmNy1lNTA3LTRjYjEtOWZkMS1mZWVkZDk2Njg1ZjYiPjxpbWcgc3JjPSJodHRwczovL3dha2F0aW1lLmNvbS9iYWRnZS91c2VyLzg1MmJjZjIyLThhMzctNDYwYS1hOGUyLTExNTgzMzE3NGViYS9wcm9qZWN0LzU3YzgzMGY3LWU1MDctNGNiMS05ZmQxLWZlZWRkOTY2ODVmNi5zdmciIGFsdD0iTGljZW5zZTogTUlUIj48L2E+CjwvcD4KPGJyLz4KCiMgZ28tZG91ZG91Cgo+IExpZ2h0d2VpZ2h0IEdvbGFuZyBNaWNyb3NlcnZpY2UgRnJhbWV3b3JrCgotIPCfkqEgU3RhcnRzIGZyb20gZ29sYW5nIGludGVyZmFjZSwgbm8gbmVlZCB0byBsZWFybiBuZXcgSURMKGludGVyZmFjZSBkZWZpbml0aW9uIGxhbmd1YWdlKS4KLSDwn5SpIFBvd2VyZnVsIGNvZGUgZ2VuZXJhdG9yIGNsaSBidWlsdC1pbi4gQWZ0ZXIgZGVmaW5pbmcgeW91ciBpbnRlcmZhY2UgbWV0aG9kcywgeW91ciBvbmx5IGpvYiBpcyBpbXBsZW1lbnRpbmcgeW91ciBhd2Vzb21lIGlkZWEuCi0g4pqhIEJvcm4gZnJvbSB0aGUgY2xvdWQtbmF0aXZlIGVyYS4gQnVpbHQtaW4gQ0xJIGNhbiBzcGVlZCB1cCB5b3VyIHByb2R1Y3QgaXRlcmF0aW9uLgotIPCflJEgQnVpbHQtaW4gc2VydmljZSBnb3Zlcm5hbmNlIHN1cHBvcnQgaW5jbHVkaW5nIHJlbW90ZSBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQsIGNsaWVudC1zaWRlIGxvYWQgYmFsYW5jZXIsIHJhdGUgbGltaXRlciwgY2lyY3VpdCBicmVha2VyLCBidWxraGVhZCwgdGltZW91dCwgcmV0cnkgYW5kIG1vcmUuCi0g8J+Tpu+4jyBTdXBwb3J0aW5nIGJvdGggbW9ub2xpdGggYW5kIG1pY3Jvc2VydmljZSBhcmNoaXRlY3R1cmVzIGdpdmVzIHlvdSBmbGV4aWJpbGl0eSB0byBkZXNpZ24geW91ciBzeXN0ZW0uCgpHby1kb3Vkb3XvvIhkb3Vkb3UgcHJvbm91bmNlIC9kyZl1ZMmZdS/vvIlpcyBPcGVuQVBJIDMuMCAoZm9yIFJFU1QpIHNwZWMgYW5kIFByb3RvYnVmIHYzIChmb3IgZ3JwYykgYmFzZWQgbGlnaHR3ZWlnaHQgbWljcm9zZXJ2aWNlIGZyYW1ld29yay4gSXQgc3VwcG9ydHMgbW9ub2xpdGggc2VydmljZSBhcHBsaWNhdGlvbiBhcyB3ZWxsLiAgCgpSZWFkIHRoZSBEb2NzIFtodHRwczovL2dvLWRvdWRvdS5naXRodWIuaW8vZ3VpZGVdKGh0dHBzOi8vZ28tZG91ZG91LmdpdGh1Yi5pby9ndWlkZSkgdG8gTGVhcm4gTW9yZS4KCiMjIEJlbmNobWFyawoKIVtiZW5jaG1hcmtdKC4vYmVuY2htYXJrLnBuZykKCk1hY2hpbmU6IGBNYWNCb29rIFBybyAoMTYtaW5jaCwgMjAxOSlgICAKQ1BVOiBgMi4zIEdIeiA4IGNvcmVzIEludGVsIENvcmUgaTlgICAKTWVtb3J5OiBgMTYgR0IgMjY2NyBNSHogRERSNGAgIApQcm9jZXNzaW5nVGltZTogYDBtcywgMTBtcywgMTAwbXMsIDUwMG1zYCAgCkNvbmN1cnJlbmN5OiBgMTAwMGAgIApEdXJhdGlvbjogYDMwc2AgIApnby1kb3Vkb3UgVmVyc2lvbjogYHYxLjMuN2AgIAoKW0NoZWNrb3V0IHRoZSB0ZXN0IGNvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS93dWJpbjE5ODkvZ28td2ViLWZyYW1ld29yay1iZW5jaG1hcmspCgojIyBDcmVkaXRzCgpHaXZlIGNyZWRpdHMgdG8gZm9sbG93aW5nIHJlcG9zaXRvcmllcyBhbmQgYWxsIHRoZWlyIGNvbnRyaWJ1dG9yczoKLSBbZ28tcmVkaXMvcmVkaXNfcmF0ZV0oZ2l0aHViLmNvbS9nby1yZWRpcy9yZWRpc19yYXRlKTogZ28tZG91ZG91IGlzIHJlbHlpbmcgb24gaXQgdG8gaW1wbGVtZW50IHJlZGlzIGJhc2VkIHJhdGUgbGltaXQgZmVhdHVyZQotIFthcG9sbG9jb25maWcvYWdvbGxvXShodHRwczovL2dpdGh1Yi5jb20vYXBvbGxvY29uZmlnL2Fnb2xsbyk6IGdvLWRvdWRvdSBpcyByZWx5aW5nIG9uIGl0IHRvIGltcGxlbWVudCByZW1vdGUgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHN1cHBvcnQgZm9yIFtBcG9sbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcG9sbG9jb25maWcvYXBvbGxvKQotIFtuYWNvcy1ncm91cC9uYWNvcy1zZGstZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9uYWNvcy1ncm91cC9uYWNvcy1zZGstZ28pOiBnby1kb3Vkb3UgaXMgcmVseWluZyBvbiBpdCB0byBpbXBsZW1lbnQgc2VydmljZSBkaXNjb3ZlcnkgYW5kIHJlbW90ZSBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQgc3VwcG9ydCBmb3IgW05hY29zXShodHRwczovL2dpdGh1Yi5jb20vYWxpYmFiYS9uYWNvcykKCiMjIENvbW11bml0eQoKV2VsY29tZSB0byBjb250cmlidXRlIHRvIGdvLWRvdWRvdSBieSBmb3JraW5nIGl0IGFuZCBzdWJtaXR0aW5nIHByIG9yIGlzc3Vlcy4gSWYgeW91IGxpa2UgZ28tZG91ZG91LCBwbGVhc2UgZ2l2ZSBpdCBhCnN0YXIhCgpXZWxjb21lIHRvIGNvbnRhY3QgbWUgZnJvbQoKLSBGYWNlYm9vazogW2h0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9iaW4ud3UuOTQ2MTc5OTkvXShodHRwczovL3d3dy5mYWNlYm9vay5jb20vYmluLnd1Ljk0NjE3OTk5LykKLSBUd2l0dGVyOiBbaHR0cHM6Ly90d2l0dGVyLmNvbS9CSU5XVTQ5MjA1NTEzXShodHRwczovL3R3aXR0ZXIuY29tL0JJTldVNDkyMDU1MTMpCi0gRW1haWw6IDMyODQ1NDUwNUBxcS5jb20KLSBXZUNoYXQ6ICAKICA8aW1nIHNyYz0iLi9xcmNvZGUucG5nIiBhbHQ9IndlY2hhdC1ncm91cCIgd2lkdGg9IjI0MCI+Ci0gV2VDaGF0IEdyb3VwOiAgCiAgPGltZyBzcmM9Ii4vZ28tZG91ZG91LXdlY2hhdC1ncm91cC5wbmciIGFsdD0id2VjaGF0LWdyb3VwIiB3aWR0aD0iMjQwIj4KLSBRUSBncm91cDogIAogIDxpbWcgc3JjPSIuL2dvLWRvdWRvdS1xcS1ncm91cC5wbmciIGFsdD0icXEtZ3JvdXAiIHdpZHRoPSIyNDAiPgoKIyMg8J+UiyBKZXRCcmFpbnMgT3BlbiBTb3VyY2UgTGljZW5zZQoKR28tZG91ZG91IGhhcyBiZWVuIGJlaW5nIGRldmVsb3BlZCB3aXRoIEdvTGFuZCB1bmRlciB0aGUgKipmcmVlIEpldEJyYWlucyBPcGVuIFNvdXJjZSBsaWNlbnNlKHMpKiogZ3JhbnRlZCBieSBKZXRCcmFpbnMgcy5yLm8uLCBoZW5jZSBJIHdvdWxkIGxpa2UgdG8gZXhwcmVzcyBteSBncmF0aXR1ZGUgaGVyZS4KCjxhIGhyZWY9Imh0dHBzOi8vamIuZ2cvT3BlblNvdXJjZVN1cHBvcnQiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9yZXNvdXJjZXMuamV0YnJhaW5zLmNvbS9zdG9yYWdlL3Byb2R1Y3RzL2NvbXBhbnkvYnJhbmQvbG9nb3MvamJfYmVhbS5wbmciIGFsdD0iSmV0QnJhaW5zIExvZ28gKE1haW4pIGxvZ28uIiB3aWR0aD0iMzAwIj48L2E+CgojIyBMaWNlbnNlCgpNSVQK readmeEtag: '"c5717e52cb52d29d98515fcc4aefed1bd696629c"' readmeLastModified: Sun, 11 Aug 2024 06:39:27 GMT repositoryId: 341813963 description: >- go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well. created: '2021-02-24T07:21:40Z' updated: '2024-09-02T13:58:59Z' language: Go archived: false stars: 1428 watchers: 95 forks: 250 owner: unionj-cloud logo: https://avatars.githubusercontent.com/u/79033021?v=4 license: MIT repoEtag: '"692751230d863851c6e7c504950bc72618a679fa80f6bc4260528810a79ff663"' repoLastModified: Mon, 02 Sep 2024 13:58:59 GMT foundInMaster: true category: SDK id: aab01f8bda6c542fdacf9ee8dfa7d20d - source: https://openapi.tools/ name: pyswagger category: - Converters - Server Implementations repository: https://github.com/pyopenapi/pyswagger language: Python source_description: Client & converter in Python, which is type-safe, dynamic, spec-compliant. v2: true v3_progress_link: https://github.com/mission-liao/pyswagger/blob/develop/docs/md/news.md repositoryMetadata: base64Readme: >- cHlzd2FnZ2VyCj09PT09PT09PQoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvbWlzc2lvbi1saWFvL3B5c3dhZ2dlci5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9taXNzaW9uLWxpYW8vcHlzd2FnZ2VyKQpbIVtDb3ZlcmFnZSBTdGF0dXNdKGh0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL21pc3Npb24tbGlhby9weXN3YWdnZXIvYmFkZ2Uuc3ZnP2JyYW5jaD1tYXN0ZXImc3R5bGU9ZmxhdCldKGh0dHBzOi8vY292ZXJhbGxzLmlvL3IvbWlzc2lvbi1saWFvL3B5c3dhZ2dlcj9icmFuY2g9bWFzdGVyKQoKQSBweXRob24gY2xpZW50IGZvciBbU3dhZ2dlcl0oaHR0cHM6Ly9oZWxsb3JldmVyYi5jb20vZGV2ZWxvcGVycy9zd2FnZ2VyKSBlbmFibGVkIFJFU1QgQVBJLiBJdCB3b3VsZG4ndCBiZSBlYXNpZXIgdG8KdHJ5IFN3YWdnZXIgUkVTVCBBUEkgYnkgW1N3YWdnZXItVUldKGh0dHBzOi8vZ2l0aHViLmNvbS93b3JkbmlrL3N3YWdnZXItdWkpLiBIb3dldmVyLCB3aGVuIGl0J3MgdGltZSB0byAqKnVuaXR0ZXN0KioKeW91ciBBUEksIHRoZSBmaXJzdCBvcHRpb24geW91IGZpbmQgd291bGQgYmUgW1N3YWdnZXItY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3dvcmRuaWsvc3dhZ2dlci1jb2RlZ2VuKSwgYnV0IHRoZSBiZXR0ZXIgb3B0aW9uIGlzIHVzLgoKVGhpcyBwcm9qZWN0IGlzIGRldmVsb3BlZCBhZnRlciBbc3dhZ2dlci1weV0oaHR0cHM6Ly9naXRodWIuY29tL2RpZ2l1bS9zd2FnZ2VyLXB5KSwgd2hpY2ggaXMgYSBuaWNlbHkgaW1wbGVtZW50ZWQgb25lLCBhbmQgaW5zcGlyZWQgbWFueSBhc3BlY3RzIG9mIHRoaXMgcHJvamVjdC4gQW5vdGhlciBwcm9qZWN0IGlzIFtmbGV4XShodHRwczovL2dpdGh1Yi5jb20vcGlwZXJtZXJyaWFtL2ZsZXgpLCB3aGljaCBmb2N1c2VzIG9uIHBhcmFtZXRlciB2YWxpZGF0aW9uLCB0cnkgaXQgaWYgeW91IGNhbiBoYW5kbGUgb3RoZXIgcGFydHMgYnkgeW91cnNlbHZlcy4gRm9yIG90aGVyIHByb2plY3RzIHJlbGF0ZWQgdG8gU3dhZ2dlciB0b29scyBpbiBweXRob24sIGNoZWNrIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1zcGVjI3B5dGhvbikuCgoqKnB5c3dhZ2dlcioqIGlzIG11Y2ggZWFzaWVyIHRvIHVzZSAoY29tcGFyZWQgdG8gc3dhZ2dlci1jb2RlZ2VuLCB5b3UgZG9uJ3QgbmVlZCB0byBwcmVwYXJlIGEgc2NhbGEgZW52aXJvbm1lbnQpIGFuZCB0cmllcyBoYXJkIHRvICoqZnVsbHkgc3VwcG9ydHMqKiBbU3dhZ2dlciBTcGVjXShodHRwczovL2hlbGxvcmV2ZXJiLmNvbS9kZXZlbG9wZXJzL3N3YWdnZXIpIGluIGFsbCBhc3BlY3RzLgoKLSBbTkVXczogdXBjb21pbmcgc3VwcG9ydCBmb3IgT3BlbkFQSSAzLjBdKGRvY3MvbWQvbmV3cy5tZCkKLSBbRmVhdHVyZXNdKFJFQURNRS5tZCNmZWF0dXJlcykKLSBbVHV0b3JpYWxdKFJFQURNRS5tZCN0dXRvcmlhbCkKLSBbUXVpY2sgU3RhcnRdKFJFQURNRS5tZCNxdWljay1zdGFydCkKLSBbSW5zdGFsbGF0aW9uXShSRUFETUUubWQjaW5zdGFsbGF0aW9uKQotIFtSZWZlcmVuY2VdKFJFQURNRS5tZCNyZWZlcmVuY2UpCi0gW0NvbnRyaWJ1dG9yc10oUkVBRE1FLm1kI2NvbnRyaWJ1dG9ycykKLSBbQ29udHJpYnV0aW9uIEd1aWRlbGluZV0oUkVBRE1FLm1kI2NvbnRyaWJ1dGlvbi1ndWlsZGVsaW5lKQotIFtGQVFdKGRvY3MvbWQvZmFxLm1kKQotIFtDaGFuZ2VzXShDSEFOR0VTLm1kKQoKLS0tLS0tLS0tCgojIyBGZWF0dXJlcwotIGNvbnZlcnQgU3dhZ2dlciBEb2N1bWVudCBmcm9tIG9sZGVyIHZlcnNpb24gdG8gbmV3ZXIgb25lLiAoZXguIGNvbnZlcnQgZnJvbSAxLjIgdG8gMi4wKQotIHN1cHBvcnQgU3dhZ2dlciAqKjEuMioqLCAqKjIuMCoqIG9uIHB5dGhvbiB+fjIuNn5+LCAqKjIuNyoqLCAqKjMuMyoqLCAqKjMuNSoqLCAqKjMuNioqCi0gc3VwcG9ydCBZQU1MIHZpYSBbUHJldHR5LVlBTUxdKGh0dHBzOi8vZ2l0aHViLmNvbS9tay1mZy9wcmV0dHkteWFtbCkKLSBzdXBwb3J0ICRyZWYgdG8gKipFeHRlcm5hbCBEb2N1bWVudCoqLCBtdWx0aXBsZSBzd2FnZ2VyLmpzb24gd2lsbCBiZSBvcmdhbml6ZWQgaW50byBhIGdyb3VwIG9mIEFwcC4gQW5kIGV4dGVybmFsIGRvY3VtZW50IHdpdGggc2VsZi1kZXNjcmliaW5nIHJlc291cmNlIGlzIGFsc28gc3VwcG9ydGVkIChyZWZlciB0byBbaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXNwZWMvaXNzdWVzLzIxOSkpLgotIHR5cGUgc2FmZSwgaW5wdXQvb3V0cHV0IGFyZSBjb252ZXJ0ZWQgdG8gcHl0aG9uIHR5cGVzIGFjY29yZGluZyB0byBbRGF0YSBUeXBlXShodHRwczovL2dpdGh1Yi5jb20vd29yZG5pay9zd2FnZ2VyLXNwZWMvYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMS4yLm1kIzQzLWRhdGEtdHlwZXMpIGRlc2NyaWJlZCBpbiBTd2FnZ2VyLiBZb3UgZG9uJ3QgbmVlZCB0byB0b3VjaCBhbnkganNvbiBzY2hlbWEgd2hlbiB1c2luZyBweXN3YWdnZXIuIExpbWl0YXRpb25zIGxpa2UgKiptaW5pbXVtL21heGltdW0qKiBvciAqKmVudW0qKiBhcmUgYWxzbyBjaGVja2VkLiAqKk1vZGVsIGluaGVyaXRhbmNlKiogYWxzbyBzdXBwb3J0ZWQuCi0gcHJvdmlkZSBmdW5jdGlvbiAqKkFwcC52YWxpZGF0ZSoqIHRvIGNoZWNrIHZhbGlkaXR5IG9mIHRoZSBsb2FkZWQgQVBJIGRlZmluaXRpb24gYWNjb3JkaW5nIHRvIHNwZWMuCi0gYnVpbHRpbiBjbGllbnQgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gdmFyaW91cyBodHRwIGNsaWVudHMgaW4gcHl0aG9uLiBGb3IgdXNhZ2Ugb2YgdGhlc2UgY2xpZW50cywgcGxlYXNlIHJlZmVyIHRvIGBweXN3YWdnZXIudGVzdHMuY29udHJpYi5jbGllbnRgIGZvciBkZXRhaWxzCiAgLSBbcmVxdWVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9rZW5uZXRocmVpdHovcmVxdWVzdHMpCiAgLSBbdG9ybmFkby5odHRwY2xpZW50LkFzeW5jSFRUUENsaWVudF0oaHR0cDovL3Rvcm5hZG8ucmVhZHRoZWRvY3Mub3JnL2VuL2xhdGVzdC9odHRwY2xpZW50Lmh0bWwpCiAgLSBbZmxhc2sudGVzdGluZy5GbGFza0NsaWVudF0oaHR0cDovL2ZsYXNrLnBvY29vLm9yZy9kb2NzLzAuMTAvYXBpLyNmbGFzay50ZXN0aW5nLkZsYXNrQ2xpZW50KQogIC0gW3dlYmFwcDJdKGh0dHA6Ly93ZWJhcHAyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9ndWlkZS90ZXN0aW5nLmh0bWwpCi0gbm90IGltcGxlbWVudGVkIHBhcnRzLCBmaXJlIG1lIGEgYnVnIGlmIHlvdSBuZWVkIGl0CiAgLSBbIF0gU3dhZ2dlciAyLjAKICAgIC0gWyBdIFNjaGVtYS5wYXR0ZXJuCiAgICAtIFsgXSBTY2hlbWUucGF0dGVyblByb3BlcnRpZXMKICAgIC0gWyBdIFNjaGVtYS5yZWFkb25seQogICAgLSBbIF0gU2NoZW1hLmFsbG93RW1wdHlWYWx1ZQogICAgLSBbIF0gQSBzY2FubmVyIHRvIHZhbGlkYXRlIHNjaGVtYQogIC0gWyBdIEEgV2ViU29ja2V0IGNsaWVudAogIC0gWyBdIGR1bXAgZXh0ZW5zaW9uIGZpZWxkCgotLS0tLS0tLS0KCiMjIFR1dG9yaWFsCgotIFtJbml0aWFsaXphdGlvbl0oZG9jcy9tZC90dXRvcmlhbC9pbml0Lm1kKQotIFtNYWtpbmcgYSBSZXF1ZXN0XShkb2NzL21kL3R1dG9yaWFsL3JlcXVlc3QubWQpCi0gW0FjY2VzcyB0aGUgUmVzcG9uc2VdKGRvY3MvbWQvdHV0b3JpYWwvcmVzcG9uc2UubWQpCi0gW1Rlc3RpbmcgYSBMb2NhbCBTZXJ2ZXJdKGRvY3MvbWQvdHV0b3JpYWwvbG9jYWwubWQpCi0gW0NvbnZlcnRpbmcgRG9jdW1lbnQgaW50byBhbm90aGVyIHZlcnNpb25dKGRvY3MvbWQvdHV0b3JpYWwvY29udmVydGVyLm1kKQotIFtFeG50ZW5kaW5nIFByaW1pdGl2ZSBGYWN0b3J5IGZvciB1c2VyLWRlZmluZWQgcHJpbWl0aXZlc10oZG9jcy9tZC90dXRvcmlhbC9leHRlbmRfcHJpbS5tZCkKLSBbUmVuZGVyaW5nIFJhbmRvbSBSZXF1ZXN0cyBmb3IgQmxhY2tCb3ggVGVzdGluZ10oZG9jcy9tZC90dXRvcmlhbC9yZW5kZXIubWQpCi0gW09wZXJhdGlvbiBNSU1FIFN1cHBvcnRdKGRvY3MvbWQvdHV0b3JpYWwvbWltZS5tZCkKLSBbVGVzdCB3aXRoIEludmFsaWQgSW5wdXRdKGRvY3MvbWQvdHV0b3JpYWwvaW52YWxpZC5tZCkKLSBbTG9hZCBTcGVjIGZyb20gYSBSZXN0cmljdGVkIFNlcnZpY2VdKGRvY3MvbWQvdHV0b3JpYWwvcmVzdHJpY3RlZF9zZXJ2aWNlLm1kKQotIFtDdXN0b21pemVkIEhlYWRlcnNdKGRvY3MvbWQvdHV0b3JpYWwvY3VzdG9taXplZF9oZWFkZXJzLm1kKQoKLS0tLS0tLS0tCgojIyBRdWljayBTdGFydAoKQmVmb3JlIHJ1bm5pbmcgdGhpcyBzY3JpcHQsIHBsZWFzZSBtYWtlIHN1cmUgW3JlcXVlc3RzXShodHRwczovL2dpdGh1Yi5jb20va2VubmV0aHJlaXR6L3JlcXVlc3RzKSBpcyBpbnN0YWxsZWQgb24geW91ciBlbnZpcm9ubWVudC4KCmBgYHB5dGhvbgpmcm9tIHB5c3dhZ2dlciBpbXBvcnQgQXBwLCBTZWN1cml0eQpmcm9tIHB5c3dhZ2dlci5jb250cmliLmNsaWVudC5yZXF1ZXN0cyBpbXBvcnQgQ2xpZW50CmZyb20gcHlzd2FnZ2VyLnV0aWxzIGltcG9ydCBqcF9jb21wb3NlCgojIGxvYWQgU3dhZ2dlciByZXNvdXJjZSBmaWxlIGludG8gQXBwIG9iamVjdAphcHAgPSBBcHAuX2NyZWF0ZV8oJ2h0dHA6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbicpCgphdXRoID0gU2VjdXJpdHkoYXBwKQphdXRoLnVwZGF0ZV93aXRoKCdhcGlfa2V5JywgJzEyMzEyMzEyMzEyMzEyMzEyMzEzcScpICMgYXBpIGtleQphdXRoLnVwZGF0ZV93aXRoKCdwZXRzdG9yZV9hdXRoJywgJzEyMzM0NTQ2NTU2NTIxMTIzZnNmc3MnKSAjIG9hdXRoMgoKIyBpbml0IHN3YWdnZXIgY2xpZW50CmNsaWVudCA9IENsaWVudChhdXRoKQoKIyBhIGRpY3QgaXMgZW5vdWdoIGZvciByZXByZXNlbnRpbmcgYSBNb2RlbCBpbiBTd2FnZ2VyCnBldF9Ub209ZGljdChpZD0xLCBuYW1lPSdUb20nLCBwaG90b1VybHM9WydodHRwOi8vdGVzdCddKSAKIyBhIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHBldApjbGllbnQucmVxdWVzdChhcHAub3BbJ2FkZFBldCddKGJvZHk9cGV0X1RvbSkpCgojIC0gYWNjZXNzIGFuIE9wZXJhdGlvbiBvYmplY3QgdmlhIEFwcC5vcCB3aGVuIG9wZXJhdGlvbklkIGlzIGRlZmluZWQKIyAtIGEgcmVxdWVzdCB0byBnZXQgdGhlIHBldCBiYWNrCnJlcSwgcmVzcCA9IGFwcC5vcFsnZ2V0UGV0QnlJZCddKHBldElkPTEpCiMgcHJlZmVyIGpzb24gYXMgcmVzcG9uc2UKcmVxLnByb2R1Y2UoJ2FwcGxpY2F0aW9uL2pzb24nKQpwZXQgPSBjbGllbnQucmVxdWVzdCgocmVxLCByZXNwKSkuZGF0YQphc3NlcnQgcGV0LmlkID09IDEKYXNzZXJ0IHBldC5uYW1lID09ICdUb20nCgojIG5ldyB3YXlzIHRvIGdldCBPcGVyYXRpb24gb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gJ2dldFBldEJ5SWQnLgojICdqcF9jb21wb3NlJyBzdGFuZHMgZm9yIEpTT04tUG9pbnRlciBjb21wb3NpdGlvbgpyZXEsIHJlc3AgPSBhcHAucmVzb2x2ZShqcF9jb21wb3NlKCcvcGV0L3twZXRJZH0nLCBiYXNlPScjL3BhdGhzJykpLmdldChwZXRJZD0xKQpyZXEucHJvZHVjZSgnYXBwbGljYXRpb24vanNvbicpCnBldCA9IGNsaWVudC5yZXF1ZXN0KChyZXEsIHJlc3ApKS5kYXRhCmFzc2VydCBwZXQuaWQgPT0gMQpgYGAKCi0tLS0tLS0tLQoKIyMgSW5zdGFsbGF0aW9uCldlIHN1cHBvcnQgcGlwIGluc3RhbGx0aW9uLgpgYGBiYXNoCnBpcCBpbnN0YWxsIHB5c3dhZ2dlcgpgYGAKCkFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIG11c3QgYmUgcHJlcGFyZWQgYmVmb3JlIGZpcmluZyBhIHJlcXVlc3QuIElmIHlvdSBhcmUgZ29pbmcgdG8gYWNjZXNzIGEgcmVtb3RlL2xvY2FsIHdlYiBzZXJ2ZXIsIHlvdSBtdXN0IGluc3RhbGwgW3JlcXVlc3RzXShodHRwczovL2dpdGh1Yi5jb20va2VubmV0aHJlaXR6L3JlcXVlc3RzKSBmaXJzdC4KYGBgYmFzaApwaXAgaW5zdGFsbCByZXF1ZXN0cwpgYGAKCklmIHlvdSB3YW50IHRvIHRlc3QgYSBsb2NhbCB0b3JuYWRvIHNlcnZlciwgcGxlYXNlIG1ha2Ugc3VyZSB0b3JuYWRvIGlzIHJlYWR5IG9uIHlvdXIgZW52aXJvbm1lbnQKYGBgIGJhc2gKcGlwIGluc3RhbGwgdG9ybmFkbwpgYGAKCldlIGFsc28gcHJvdmlkZSBuYXRpdmUgY2xpZW50IGZvciBmbGFzayBhcHAsIGJ1dCB0byB1c2UgaXQsIGZsYXNrIGlzIGFsc28gcmVxdWlyZWQKYGBgIGJhc2gKcGlwIGluc3RhbGwgZmxhc2sKYGBgCgoKLS0tLS0tLS0tCgojIyBSZWZlcmVuY2UKQWxsIGV4cG9ydGVkIEFQSSBhcmUgZGVzY3JpYmVkIGluIGZvbGxvd2luZyBzZWN0aW9ucy4gIVtBIGRpYWdyYW0gYWJvdXQgcmVsYXRpb25zIGJldHdlZW4gY29tcG9uZW50c10oaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZHJhd2luZ3MvZC8xRFppSmdsNGk5TDAzOFVKSnAza3B3a1dSdmNOUWt0ZjVoLWU0bTk2X0Mtay9wdWI/dz04NDkmaD01MzApCgotIFtBcHBdKGRvY3MvbWQvcmVmL2FwcC5tZCkKLSBbU3dhZ2dlckNsaWVudF0oZG9jcy9tZC9yZWYvY2xpZW50Lm1kKQotIFtTZWN1cml0eV0oZG9jcy9tZC9yZWYvc2VjdXJpdHkubWQpCgotLS0tLS0tLS0KCiMjIENvbnRyaWJ1dG9ycwotIFtNYXJjaW4gR29sacWEc2tpXShodHRwczovL2dpdGh1Yi5jb20vbWpnb2xpbnNraSkKLSBbQW5kcmV5IE1pa2hhaWxvdl0oaHR0cHM6Ly9naXRodWIuY29tL3psb3ZyZWQpCi0gW1RlbGVwZW5pbiBOaWtvbGF5XShodHRwczovL2dpdGh1Yi5jb20vcHJlZmVyKQotIFtXYW5nSmlhbm5hbl0oaHR0cHM6Ly9naXRodWIuY29tL1dhbmdKaWFubmFuKQoKLS0tLS0tLS0tCgojIyBDb250cmlidXRpb24gR3VpbGRlbGluZQoKIyMjIyByZXBvcnQgYW4gaXNzdWU6Ci0gaXNzdWVzIGNhbiBiZSByZXBvcnRlZCBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL21pc3Npb24tbGlhby9weXN3YWdnZXIvaXNzdWVzKQotIGluY2x1ZGUgc3dhZ2dlci5qc29uIGlmIHBvc3NpYmxlCi0gdHVybiBvbiBsb2dnaW5nIGFuZCByZXBvcnQgd2l0aCBtZXNzYWdlcyBvbiBjb25zb2xlCmBgYHB5dGhvbgppbXBvcnQgbG9nZ2luZwpsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigncHlzd2FnZ2VyJykKCmZvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKCclKGFzY3RpbWUpcyAtICUobmFtZSlzIC0gJShsZXZlbG5hbWUpcyAtICUobWVzc2FnZSlzJykKCmNvbnNvbGUgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKQpjb25zb2xlLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCmNvbnNvbGUuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKCmxvZ2dlci5hZGRIYW5kbGVyKGNvbnNvbGUpCmxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQoKLi4uIHlvdXIgc3R1ZmYKCmBgYAoKLSBkZXNjcmliZSBleHBlY3RlZCBiZWhhdmlvciwgb3IgbW9yZSBzcGVjaWZpYywgdGhlIGlucHV0L291dHB1dAoKIyMjIyBzdWJtaXQgYSBQUgotIHRlc3QgaW5jbHVkZWQKLSBvbmx5IFBSIHRvIGBkZXZlbG9wYCB3b3VsZCBiZSBhY2NlcHRlZAoKZW52IHByZXBhcmF0aW9uCmBgYGJhc2gKcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnQtZGV2LnR4dApgYGAKCnVuaXQgdGVzdGluZwpgYGBiYXNoCnB5dGhvbiAtbSBweXRlc3QgLXMgLXYgLS1jb3Y9cHlzd2FnZ2VyIC0tY292LWNvbmZpZz0uY292ZXJhZ2VyYyBweXN3YWdnZXIvdGVzdHMKYGBgCgo= readmeEtag: '"048a9c7059dbcfa9cf05a33ad2a1e65643ed48bf"' readmeLastModified: Mon, 20 Aug 2018 13:44:49 GMT repositoryId: 22305196 description: >- An OpenAPI (fka Swagger) client & converter in python, which is type-safe, dynamic, spec-compliant. created: '2014-07-27T06:47:30Z' updated: '2024-08-26T20:32:49Z' language: Python archived: false stars: 383 watchers: 14 forks: 88 owner: pyopenapi logo: https://avatars.githubusercontent.com/u/35984678?v=4 license: MIT repoEtag: '"3ed596de47d61cd5d8d804d7343d7abb9f94d401572d350fa1cf29a81907a93d"' repoLastModified: Mon, 26 Aug 2024 20:32:49 GMT foundInMaster: true v3_link: https://github.com/mission-liao/pyswagger/blob/develop/docs/md/news.md id: 83585666ce7c5a42bc3e5463ac9b3c47 oldLocations: - https://github.com/mission-liao/pyswagger - source: https://openapi.tools/ name: JSON Designer category: GUI Editors link: http://jsondesigner.com language: - iOS - Swift source_description: >- Visualize JSON models from imported OpenAPI YAML. Edit models and export OpenAPI YAML. v3: true foundInMaster: true id: 9440025e6c756188ef68d4f144bd42bb - source: openapi3 tags repository: https://github.com/gomarag/siphoon-note v3: true id: 89de05b5bf22f09b2fca45404443c647 repositoryMetadata: base64Readme: >- IyBJbnRybwohWzEw67aE64W47Yq4XShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS84NjEzOTAxMy8xNjI3MTQ3NjUtNzNkZTZkZTItZGE2NC00MjAyLWE1NzItNTE0MzBlYWMxMjczLmdpZikKCj4g4pyP77iPICoq7ZSE66Gc7KCd7Yq466qFKiogOiBgU2lwaG9vbiBOb3RlYAo+IAoKPiDwn5OU77iPICoq7ZSE66Gc7KCd7Yq4IO2Yle2DnCoqIDrrtoDtirjsuqDtlIQg7YyM7J2064SQIO2UhOuhnOygne2KuAo+IAoKPiDwn4yQICoq67Cw7Y+sIOunge2BrCA6IFvwn5Od77iPXShodHRwOi8vZGV2LWRpYXJ5LWJ1Y2tldC5zMy13ZWJzaXRlLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20vKSoqW1NpcGhvb24gTm90ZeuhnCDsoJHsho3tlZjquLBdKGh0dHBzOi8vd3d3LnNpcGhvb24tbm90ZS5hcHAvKQo+IAoKPiDwn5GA77iPICoq6riw7ZqN7J2Y64+EKiogOiDquIDsk7DquLDqsIAg7KKL7J2AIOqxtCDslYzqsqDripTrjbAsIOq4tCDquIDsnYQg7JOw64qUIOqyg+ydtCDrtoDri7TsiqTrn6zsm4wg7Iuc7J6R7J20IOyWtOugpOyatCDsgqzrnozrk6TsnYQg7JyE7ZWcIDEw67aEIO2DgOydtOuouCDrhbjtirguCj4KCiMg8J+Tne+4j1NpcGhvb24gTm90ZSDquLDriqUg7IaM6rCcCgrij7DvuI8g6riA7JOw6riwIOuqsOyeheydhCDrj5XripQgKirtg4DsnbTrqLjsmYAg7J6Q64+ZIOyggOyepSDquLDriqUqKuydhCDsoJzqs7XtlbTsmpQhCgrwn5eT77iPIOuFuO2KuOulvCDsnpHshLHtlZwg64Kg7Kec7JeQIOyXsO2VhCDsiqTtg6ztlITrpbwg7LCN7Ja0ICoq7Iq16rSAIOuLrOyEseydvCoq7J2EIO2VnCDriIjsl5Ag7JWMIOyImCDsnojslrTsmpQhCgrwn6WHIOyekeyEsSDquIDsnZgg6rCc7IiY66GcICoq7J20IOyjvOydmCDrnq3tgrkg7Jyg7KCAKirrpbwg7ISg67Cc7ZW07IScIOuztOyXrOykmOyalCEKCvCfjoHvuI8g6riA6rCQ7J20IOuWoOyYpOultOyngCDslYrripQg64Kg7J2EIOychO2VtCAqKuyYpOuKmOydmCDtgqTsm4zrk5wqKuulvCDsoJzqs7XtlbTsmpQhCgrinKjvuI8g6rO16rCcIOyEpOygleycvOuhnCDsnpHshLHtlZwg64W47Yq466W8ICoq66mU7J247Y6Y7J207KeA7JeQIOyGjOqwnCoq7ZWgIOyImCDsnojslrTsmpQhCgrwn5GA77iPIOuFuO2KuOydmCDquIDqsJDsnYQg6rSA66as7ZWY64qUICoq7YOc6re4IOq4sOuKpSoq7J2EIOygnOqzte2VtOyalCEKCiMg8J+boO+4jyDsgqzsmqkg7Iqk7YOdIOuwjyDsi5zsiqTthZwg7JWE7YKk7YWN7LKYCiFbaW1hZ2VdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzIyNDYxMTA4OS1mZDBlNzJiYS1mZjc5LTRmZGUtYTg5ZS1mYWNjMTMwZTFiYmIucG5nKQoKIyDwn5SO77iPIOyjvOyalCDquLDriqUg7Iuc7JewIEdJRgojIOuenOuUqSDtjpjsnbTsp4AKIVvrnpzrlKntjpjsnbTsp4AxXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS84NjEzOTAxMy8xNjQxNzQ0MzMtYjNiMGIxNGYtMWFiYi00YWJjLTg5OWEtYmY3MmI0ZGQ5MTJkLmdpZikKCiMg656c65SpIO2OmOydtOyngCAo7Iqk7YGs66Gk64uk7Jq0KQohW+yKpO2BrOuhpOuLpOyatF0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc1NzE0LTk2NjdkOGU3LWI0OTAtNDI2MS1hNTQ4LWYyN2Q5YTMxYTgxOC5naWYpCgojIOq4gOyTsOq4sCDsg4HsnIQg656t7YK5IOycoOyggCDshozqsJwKIVvsg4HsnITrnq3tgrldKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE3NzMxOC01ZDUxOGQwNy0zMzBhLTQ2ODItYWE2MC03ZWVlNjhhN2Q3ZWEuZ2lmKQoKIyDqs7XqsJzrhbjtirggCiFb6rO16rCc6riAIDRdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE3NzY0NS05YzQ1YmNiZS0xMjM4LTQ1YTItODlkMC00M2MyMTc5MTljODUuZ2lmKQoKIyDrhbjtirgg7Y6Y7J207KeACiFb66mU7J24LSDrhbjtirhdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE3NzczNi04MjY3YzUxMS1hMWM0LTQ0YmMtOTc2Ni00ZThiMjE5ZmVjMmQuZ2lmKQoKIyDsu6zrn6wg7YWM66eIIDXsooUKIVsxOCAg7Lus65+s7YWM66eIIOuzgOqyvV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc4NDIyLTA4MzkwNWJiLWY2OTQtNGMyNC1hZGQ3LTUzMDg4MjMxNWM3Ny5naWYpCgojIOq4gOyTsOq4sCDsirXqtIDrtoTshJ0g7Y6Y7J207KeACiFb64us66ClIOyKpO2DrO2UhF0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc3ODcwLTUwYjBkNjMyLWE2MmYtNDI0MC1iMDQ0LWNhYWY4Y2VhM2Y4YS5naWYpCgojIOuFuO2KuCDstpzroKXssL0gKOyVnuuptC/rkrfrqbQpCiFbNyDsubTrk5zruJTroZ0g6re466as65OcXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS84NjEzOTAxMy8xNjQxNzgxMTgtNWM1NTE5M2UtZTliMS00Y2YwLTllNGItZjUyNjczYzA2NzM1LmdpZikKIVsxNSDsubTrk5wg65Kk7KeR6riwXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS84NjEzOTAxMy8xNjQxNzg3MTEtMzFkNjlmZGMtZGI5Ny00NWRlLTk1ZDUtM2FhMDM5NDUwYjE5LmdpZikKCiMg64W47Yq4IOyeheugpeywvQohWzkg7YOA7J2066i4IOyLnOyekV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc4MTUxLTNmZjZjYmM2LTEyMWItNGIwOS1iNWU4LTM3NWE1Y2EwMWZmYS5naWYpCgojIO2DgOydtOuouCDquLDriqUo64W47Yq4IOyekOuPmeyggOyepSkKIVsxMSDquIAg7J6Q64+ZIOyggOyepV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc4MjE1LWRhMWU4ZjM4LWQzNmMtNDUwYS05MDI2LTNiY2QzZmEyMTVhYy5naWYpCgojIO2DgOydtOuouCDslYjrgrQg66eQ7ZKN7ISgCiFbMTAg7YOA7J2066i4IO2ItO2MgV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc5NjY1LTQ4NzM1ZjFiLTg0MjgtNDQ0YS04M2FlLWM2NGNmNzc0NDAzZi5naWYpCgojIOyYpOuKmOydmCDtgqTsm4zrk5wgCiFbMTMg7Jik64qY7J2YIO2CpOybjOuTnF0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc4Mjg0LTdiODlmNDgzLTAwYzAtNGUwMy1iN2Q5LThkMTM0MDM0MTliMS5naWYpCgojIOuFuO2KuCDsl5DrlJTthLAv7KCE7LK067O06riwCiFbMTYg6riAIOyImOyglV0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc4MzY3LWRkOWM1ZTEwLTQ1NjEtNDkwMC1hMmJiLTM4YjE4NGQ4NzhmMi5naWYpCiFbMTQg642U67O06riwXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS84NjEzOTAxMy8xNjQxNzgzOTUtMTdjMjIzYTgtNzRiMy00NzU2LWEzY2UtOTVjY2Q3Zjc4Njk3LmdpZikKCiMg7Zy07KeA7Ya1CiFbMTcg6riAIOyCreygnF0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc4NTIwLTE5MWYxYTllLTkwNmYtNDkxNy1iZGVhLWM2ZDgyMGQ3MmMzNS5naWYpCgojIOqygOyDieywvQohWzIwIOqygOyDieuwlF0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vODYxMzkwMTMvMTY0MTc4NTUxLTQ0YzRjYWY0LTM1YTAtNGNkOC1iMTk0LThkZjNhN2QyMjNkOC5naWYpCgojIO2DnOq3uCDqtIDrpqwKIVsxOSDtg5zqt7hdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE3ODYwNy0yZmM2ZjEzZi04YzMyLTQyN2ItYjhkNC0wYWNlMDE4OTUxN2UuZ2lmKQoKIyDtmozsm5Ag6rSA66asIO2OmOydtOyngAojIyDtmozsm5Dsmqkg65Oc66Gt64uk7Jq0CiFb656c65SpKOuhnOq3uOyduCldKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE3NTAyNy00MTg2NjE5Yi0yY2UwLTQ1MzAtYTY5ZS01MDlhMWYzODdkMDAuZ2lmKQojIyDroZzqt7jsnbgKIVvroZzqt7jsnbhdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE4MTU1MS01MzdhZTdlZC0yMTM4LTQ2NWEtYTQ1YS1lOTUzOWE0ZjU2NDMuZ2lmKQojIyDtmozsm5DqsIDsnoUKIVvtmozsm5DqsIDsnoVdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE4MTU2NS1mNmQ5NmE4OC1mYTVlLTQ1YTMtYmQwMy00ZDg3NDc1YTlkNGUuZ2lmKQoKIyDsl5Drn6ztjpjsnbTsp4AKIVsyMiDsv6DtgqRdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg2MTM5MDEzLzE2NDE3ODc2Ny1jMmY3MDA4NS04MmU2LTQ1YWMtYmEwOC01YzAxMWE5MmQxOGMuZ2lmKQoKCiMg8J+MnSDrp4zrk6Ag7IKs656M65OkCnwg7J2066aEKOq5g+2Xmeunge2BrCkgfCBQb3NpdGlvbiAmIFJvbGV8CnwgLS0tLS0tLSB8IC0tLS0tIHwKfCBb7JWI6rCA656MXShodHRwczovL2dpdGh1Yi5jb20vZ29tYXJhZykgfCDwn5K7IEJhY2stZW5kLCDwn4yfIFRlYW0gbWVtYmVyfAp8IFvsnbTsooXsl7RdKGh0dHBzOi8vZ2l0aHViLmNvbS9qb25neWVvbDEyKSB8IPCfkrsgRnJvbnQtZW5kLCDij7AgVGVhbSBsZWFkZXIgfAp8IFvsnbTqsr3rr7hdKGh0dHBzOi8vZ2l0aHViLmNvbS9MZWVreWVvbmdtaSkgfCDwn5K7IEZyb250LWVuZCwg8J+TnSBUZWFtIG1lbWJlciB8CnwgW+yghOykgO2YlV0oaHR0cHM6Ly9naXRodWIuY29tL2xpbmRpc3QxMikgfCDwn5K7IEZyb250LWVuZCwg8J+XoyBUZWFtIG1lbWJlciB8CgoKCgoK readmeEtag: '"3e324c7bb715543159196f2ccd7a06a42f22b003"' readmeLastModified: Wed, 05 Jul 2023 13:25:51 GMT repositoryId: 470622280 description: 하루 10분! 글쓰기 앱 🚀 10분 노트 created: '2022-03-16T14:37:35Z' updated: '2023-07-07T19:27:17Z' language: JavaScript archived: false stars: 0 watchers: 0 forks: 0 owner: gomarag logo: https://avatars.githubusercontent.com/u/66699849?v=4 repoEtag: '"8622b0917b74e87636e97f2711c820516bf89e7345dadfb4edcd4895798ed927"' repoLastModified: Fri, 07 Jul 2023 19:27:17 GMT category: Parsers foundInMaster: true - source: https://openapi.tools/ name: Stoplight Docs category: Documentation link: https://stoplight.io/docs/ language: SaaS source_description: >- Create beautiful, customizable, interactive API documentation generated from OpenAPI, integrated with Stoplight Studio. v2: true v3: true v3_1: true foundInMaster: true id: 96eb5e8de02914d4daa8d3910533aa63 - source: openapi3 tags repository: https://github.com/charlyjazz/prettyrestdoc v3: true repositoryMetadata: base64Readme: >- IyBQcmV0dHlSZXN0RG9jCgpbQ2hlY2sgaXQgb3V0IHRoZSBkZW1vIV0oaHR0cHM6Ly9jaGFybHlqYXp6LmdpdGh1Yi5pby9wcmV0dHlyZXN0ZG9jLyNVc2VyKQoKVGhpcyBpcyBhIHRlbXBsYXRlIGNyZWF0ZWQgaW4gUmVhY3QgdG8gZWFzaWx5IGN1c3RvbWl6ZSBhbmQgYnVpbGQgYSBSRVNUIEFQSSBEb2N1bWVudGF0aW9uIGZvciBjb21tZXJjaWFsIG9yIGRldmVsb3BtZW50IHB1cnBvc2VzLiBQcm9qZWN0IGNyZWF0ZWQgdXNpbmcgdXNpbmcgY3JlYXRlLXJlYWN0LWFwcCB3dGggdGhlIHR5cGVzY3JpcHQgdGVtcGxhdGUKCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvbGVzIGFuZCBQZXJtaXNzaW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJldmlldyBTY2hlbWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOiB8CnwgIVtdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzEyNDg5MzMzLzEyNDAxMzk5MS01OTk0NGIwMC1kOWI5LTExZWItODI1ZS01YTAyYTliOTk0ODcuanBlZykgfCAhW10oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTI0ODkzMzMvMTI0MDEzOTgzLTU3Y2E4NzgwLWQ5YjktMTFlYi05MGI2LTZhMDIyN2U4YmFjMy5qcGVnKSB8Cgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kcG9pbnQgU2VjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTogfAp8ICFbXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xMjQ4OTMzMy8xMjQwMTQwMDItNWI1ZTBlODAtZDliOS0xMWViLTkwYWUtOTBlNDJmNzk4MTQ5LmpwZWcpIHwgIVtdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzEyNDg5MzMzLzEyNDAxNDY5OC0zYTQ5ZWQ4MC1kOWJhLTExZWItOTM1Ny00Njc4ZTRlYmUxN2MuanBlZykgfAoKIyMjIE1lcmdlIEJldHdlZW4gY3VzdG9tIGNvbnRlbnQgYW5kIHlvdXIgQVBJIGNvbnRyYWN0CgpZb3UgY2FuIGVhc2lseSBzeW5jIHlvdSBPcGVuQVBJIDMgSlNPTiBGaWxlIHVzaW5nIHRoZSAiU2VjdGlvbkl0ZW0iIHN0cnVjdHVyZS4gSW4gdGhlIG5leHQgZXhhbXBsZSB5b3UgY2FuIHNlZSBhIFNlY3Rpb25JdGVtIGNyZWF0ZSBmb3IgdGhlIFN0b3JlIHRhZyBmcm9tIHRoZSBQZXRTdG9yZSBTd2FnZ2VyIGV4YW1wbGUuIFRoaXMgd2F5IGNhbiBhZGQgaW1hZ2VzLCBkZXNjcmlwdGlvbnMsIGFuZCBpbnRyb2R1Y3Rvcnkgc2VjdGlvbnMgbGlrZSAiR2V0dGluZyBTdGFydGVkIgoKYGBgamF2YXNjcmlwdApjb25zdCBkb2N1bWVudGF0aW9uOiBTZWN0aW9uSXRlbSA9IHsKICBpZDogInN0b3JlIiwKICB0YWc6ICJzdG9yZSIsCiAgc2NoZW1hOiAiT3JkZXIiLAogIHRpdGxlOiAiU3RvcmUiLAogIGNvbnRlbnQ6IHsKICAgIGxlZnRfc2VjdGlvbl90aXRsZTogIlN0b3JlcyIsCiAgICBsZWZ0X3NlY3Rpb25fcGFyYWdyYXBoczogWyJUaGlzIGlzIGEgU3RvcmUgcmVsYXRlZCBvcGVyYXRpb24iXSwKICAgIHJpZ2h0X2JveF9zbmlwcGV0X3doaXRlOiB0cnVlLAogICAgcmlnaHRfYm94X3NuaXBwZXRfdGl0bGU6ICJFeGFtcGxlIG9mIGEgT3JkZXIgb2JqZWN0IiwKICB9LAogIGlzX2NvcmVfcmVzb3VyY2U6IHRydWUsCn07CmBgYAoKU3RydWN0dXJlIG9mIGEgYFNlY3Rpb25JdGVtYDoKCmBpZGA6IEFuY2hvciBmb3IgVVJMCgpgdGFnYDogVGFnIHRvIGZvdW5kIGNvbnRlbnQgaW5zaWRlIHRoZSBPcGVuQVBJMyBKU09OIGZpbGUKCmB0aXRsZWA6IFRpdGxlIGZvciBVSQoKYGNvbnRlbnRgOiBUaXRsZXMgYW5kIGRlc2NyaXB0aW9ucy4gQWxzbyB5b3UgY2FuIGNyZWF0ZSBhIG9iamVjdCBsaWtlIGEgZXhhbXBsZSBvZiBhIHJlc3BvbnNlL3JlcXVlc3QuCgpgaXNfY29yZV9yZXNvdXJjZWA6IFRoaXMgYm9vbGVhbiBwYXJhbWV0ZXIgaGVscCB0byBzcGxpdCB0aGUgY29udGVudCBiZXR3ZWVuIHNlY3Rpb25zIGxpa2UgYSAiR2V0dGluZyBTdGFydGVkIiBhbmQgdGhlIEFQSSBlbmRwb2ludHMKCldpdGggYSBBcnJheSBvZiBTZWN0aW9uSXRlbXMgYW5kIHRoZSBKU09OIG9mIHRoZSBPcGVuQVBJIFNjaGVtYSB5b3UgY2FuIHJlbmRlciB0aGUgZG9jdW1lbnRhdGlvbjoKCmBgYGphdmFzY3JpcHQKaW1wb3J0IGRvY1N3YWdnZXIgZnJvbSAiLi9wZXRzdG9yZS5qc29uIjsgLy8gT3BlbkFQSSBKU09OCmltcG9ydCBBUElEb2MgZnJvbSAiLi9kb2MiOyAvLyBBcnJheSBvZiBTZWN0aW9uSXRlbQoKPFByZXR0eVJlc3REb2MgZG9jQ3VzdG9tPXtBUElEb2N9IGRvY1N3YWdnZXI9e2RvY1N3YWdnZXJ9IC8+OwpgYGAKCiMjIyBTZWN0aW9uIGZvciBSb2xlcyBhbmQgUGVybWlzc2lvbnMKCllvdSBjYW4gY3JlYXRlIGVhc2lseSBhIHRhYmxlIGZvciByb2xlcyBhbmQgcGVybWlzc2lvbnMgc2VuZGluZyB0aGUgcHJvcCByb2xlcyB0byB0aGUgY29tcG9uZW50LiAqKlRoZSBgU2VjdGlvbkl0ZW1gIG5lZWQgdGhlIGByb2xlcy1wZXJtaXNzaW9uc2AgaWQgZm9yIHRoaXMgc3BlY2lhbCBjYXNlLioqCgpgYGB4bWwKPFByZXR0eVJlc3REb2MKICBkb2NDdXN0b209e0FQSURvY30KICBkb2NTd2FnZ2VyPXtkb2NTd2FnZ2VyIGFzIHVua25vd24gYXMgT3BlbkFQSVYzLkRvY3VtZW50fQogIHJvbGVzPXtbCiAgICB7CiAgICAgIGxhYmVsOiAiQ2xpZW50IiwKICAgICAgdmFsdWU6ICdjbGllbnQnCiAgICB9LAogICAgewogICAgICBsYWJlbDogIkFkbWluIiwKICAgICAgdmFsdWU6ICdhZG1pbicKICAgIH1dfQovPgpgYGAKClRoZW4geW91IHdpbGwgbmVlZCBzZXQgdGhlIHJvbGVzIHRvIGVhY2ggZW5kcG9pbnQgaW4gdGhlIE9wZW5BUEkzIEpTT04uCgpgYGBqc29uCnsKICAicHV0IjogewogICAgInRhZ3MiOiBbInVzZXIiXSwKICAgICJyb2xlcyI6IFsiYWRtaW4iXSwKICAgICJzdW1tYXJ5IjogIlVwZGF0ZSB1c2VyIiwKICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLiIsCiAgICAib3BlcmF0aW9uSWQiOiAidXBkYXRlVXNlciIKICB9Cn0KYGBgCgojIyMgQ3VzdG9taXphdGlvbiBhbmQgU3R5bGVzCgpUaGUgc3RydWN0dXJlIG9mIHRoZSBwcm9qZWN0IGlzIHZlcnkgZWFzeSB0byB1bmRlcnN0YW5kLiBUaGUgY29kZSBvZiB0aGUgZG9jdW1lbnRhdGlvbiBpcyBpbnNpZGUgdGhlIGBzcmMvbGliYCBmb2xkZXI6CgotIGBzcmMvbGliL2FkYXB0ZXItYW8zYDogTG9naWMgdG8gZ2V0IGNvbnRlbnQgZnJvbSBPcGVuQVBJMwotIGBzcmMvbGliL2NvbXBvbmVudHNgOiBBbGwgVUkgY29tcG9uZW50cywgeW91IGNhbiBjaGFuZ2Ugc3R5bGVzIG9yIGxvZ2ljIGVhc2lseSAoTW9kdWxlcyBDU1MgaW1wbGVtZW50ZWQpCi0gYHNyYy9saWIvaG9va3NgOiBIb29rcyEKLSBgc3JjL2xpYi9QcmV0dHlSZXN0RG9jLmpzeGA6IFJvb3QgQ29tcG9uZW50CgojIyMgQ3VycmVudCBleGFtcGxlIGluIHRoaXMgUmVwb3NpdG9yeQoKVGhpcyBSZXBvc2l0b3J5IGhhdmUgYSBleGFtcGxlIHVzaW5nIHRoZSBQZXRTdG9yZSBmcm9tIFN3YWdnZXIgd2l0aCB0aGUgc2VjdGlvbnMgUGV0LCBTdG9yZSBhbmQgVXNlci4gQnV0IHdpdGggdGhyZWUgc2VjdGlvbnMgaW50cm9kdWN0b3JpZXMgdXNpbmcgdGhlIHBvd2VyIG9mIGBTZWN0aW9uc0l0ZW1gIHN0cnVjdHVyZXMuIEFsc28gdGhlcmUgYXJlIGEgc2VjdGlvbiBmb3IgKipSb2xlcyBhbmQgUGVybWlzc2lvbnMqKgoKIyMjIFJ1biBEb2N1bWVudGF0aW9uIGluIHlvdXIgbG9jYWwgQnJvd3NlcgoKYGBgYmFzaApucG0gaW5zdGFsbCAmJiBucG0gcnVuIHN0YXJ0CmBgYAoKIyMjIFJ1biBUZXN0cwoKYGBgYmFzaApucG0gaW5zdGFsbCAmJiBucG0gcnVuIHRlc3QKYGBgCgojIyMgQ2hyb21lIEV4dGVuc2lvbgoKIyMjIENyZWRpdHMKCi0gW1N3YWdnZXJdKGh0dHBzOi8vc3dhZ2dlci5pby8pCi0gW09wZW5BUEldKGh0dHBzOi8vd3d3Lm9wZW5hcGlzLm9yZy8pCg== readmeEtag: '"5038875ae95281b144709eeffe468707ff6aa3a3"' readmeLastModified: Mon, 22 Jan 2024 00:49:03 GMT repositoryId: 381797429 description: >- A chrome extension and also a web app. Swagger UI Alternative. Get a pretty rest documentation app easily cloning this stuff :book: created: '2021-06-30T18:26:03Z' updated: '2024-07-22T02:57:19Z' language: TypeScript archived: false stars: 12 watchers: 1 forks: 0 owner: CharlyJazz logo: https://avatars.githubusercontent.com/u/12489333?v=4 license: Apache-2.0 repoEtag: '"ac29202c48e6bd2271a0cc0806143ae175e000c39ecc291adcd0d3d8bcfbbefb"' repoLastModified: Mon, 22 Jul 2024 02:57:19 GMT foundInMaster: true category: Parsers id: 8c3f8ed37b463f0b95c1e3f78a9bc2c2 - source: https://openapi.tools/ name: odata2openapi category: Converters repository: https://github.com/elasticio/odata2openapi language: Node.js source_description: OData 4.0 to OpenAPI v2.0 converter v2: true repositoryMetadata: base64Readme: >- IyBPRGF0YSB0byBPcGVuQVBJIGNvbnZlcnRlcgoKVGhpcyBub2RlIG1vZHVsZSBjb252ZXJ0cyBhbiBleGlzdGluZyBPRGF0YSBtZXRhZGF0YSB0byBPcGVuQVBJIGZvcm1hdC4KCiMjIEluc3RhbGwKClJ1biBgbnBtIGluc3RhbGwgLS1zYXZlIG9kYXRhMm9wZW5hcGlgCgojIyBVc2FnZQoKIyMjIENvbnZlcnRpbmcgZXhpc3RpbmcgWE1MIHN0cmluZwoKVXNlIHRoZSBgcGFyc2VgIGFuZCBgY29udmVydGAgbWV0aG9kcyBpZiB5b3UgaGF2ZSB0aGUgbWV0YWRhdGEgYXMgWE1MLgoKIyMjIyBKYXZhU2NyaXB0CgpgYGBqcwpjb25zdCB7IHBhcnNlLCBjb252ZXJ0IH0gPSByZXF1aXJlKCdvZGF0YTJvcGVuYXBpJyk7CgovLyBHZXQgdGhlIE9EYXRhIG1ldGFkYXRhIGFzIGEgc3RyaW5nLgpjb25zdCB4bWwgPSAnJzsKCmNvbnN0IG9wdGlvbnMgPSB7CiAgaG9zdDogJ3NlcnZpY2VzLm9kYXRhLm9yZycsCiAgcGF0aDogJy9WNC9Ob3J0aHdpbmQvTm9ydGh3aW5kLnN2YycKfTsKCnBhcnNlKHhtbCkKICAudGhlbihzZXJ2aWNlID0+IGNvbnZlcnQoc2VydmljZS5lbnRpdHlTZXRzLCBvcHRpb25zLCBzZXJ2aWNlLnZlcnNpb24pKQogIC50aGVuKHN3YWdnZXIgPT4gY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoc3dhZ2dlciwgbnVsbCwgMikpKQogIC5jYXRjaChlcnJvciA9PiBjb25zb2xlLmVycm9yKGVycm9yKSkKYGBgCgojIyMjIFR5cGVTY3JpcHQKYGBgVHlwZVNjcmlwdAppbXBvcnQgeyBwYXJzZSwgY29udmVydCwgT3B0aW9ucyB9IGZyb20gJ29kYXRhMm9wZW5hcGknOwoKY29uc3Qgb3B0aW9uczogT3B0aW9ucyA9IHsKICBob3N0OiAnc2VydmljZXMub2RhdGEub3JnJywKICBwYXRoOiAnL1Y0L05vcnRod2luZC9Ob3J0aHdpbmQuc3ZjJwp9OwoKLy8gR2V0IHRoZSBPRGF0YSBtZXRhZGF0YSBhcyBhIHN0cmluZy4KY29uc3QgeG1sID0gJyc7CgpwYXJzZSh4bWwpCiAgLnRoZW4oc2VydmljZSA9PiBjb252ZXJ0KHNlcnZpY2UuZW50aXR5U2V0cywgb3B0aW9ucywgc2VydmljZS52ZXJzaW9uKSkKICAudGhlbihzd2FnZ2VyID0+IGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHN3YWdnZXIsIG51bGwsIDIpKSkKICAuY2F0Y2goZXJyb3IgPT4gY29uc29sZS5lcnJvcihlcnJvcikpCmBgYAo= readmeEtag: '"4923b5af883d3513a48dedd1723c91524b5b1fca"' readmeLastModified: Thu, 20 Feb 2020 13:38:58 GMT repositoryId: 64212637 description: OData to OpenAPI Converter created: '2016-07-26T10:29:14Z' updated: '2024-07-09T14:57:25Z' language: TypeScript archived: false stars: 32 watchers: 13 forks: 23 owner: elasticio logo: https://avatars.githubusercontent.com/u/1560253?v=4 license: MIT repoEtag: '"711c8f8984a250208010dd1748db85c96ade1241898633815c3f429347989bf3"' repoLastModified: Tue, 09 Jul 2024 14:57:25 GMT foundInMaster: true id: deb9defcd95175a7029de6b81cf1ca78